diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 4dfa55a79231..ed94643dbe36 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -24,8 +24,14 @@ /tools/docker/ @Fira /Dockerfile @Fira +# Nanu + +/maps @Nanu308 + # Zonespace -/code/modules/gear_presets/survivors.dm @zonespace27 +/code/datums/tutorial/ @Zonespace27 +/code/modules/admin/verbs/SDQL2/ @Zonespace27 +/maps/tutorial/ @Zonespace27 # MULTIPLE OWNERS diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index c66b16031c63..cfe94738eebf 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -159,6 +159,10 @@ There is no strict process when it comes to merging pull requests. Pull requests * After leaving reviews on an open pull request, maintainers should convert it to a draft. Once you have addressed all their comments to the best of your ability, feel free to mark the pull as `Ready for Review` again. +* We ask that you refrain from pinging staff about getting your pull request reviewed until after it is automatically marked stale pending review. If it ends up stale exempt, give it a week, but usually this situation will be explained such as when a relevant maintainer is currently unavailable. + +* Whenever sprites are added, please include screenshots or video(s) of them in game in the pull request description. + ### A note on balance impacting PRs Certain PRs, such as those which directly change number values (i.e. health, recoil, damage) or add large pieces of content to the game (i.e. a new gun, a new dropship weapon, or a new xeno structure) can have the potential to highly impact game balance or gameflow. @@ -174,7 +178,7 @@ If you are porting features/tools from other codebases, you must give them credi Regarding sprites & sounds, you must credit the artist and possibly the codebase. ## Things you can work on -The following list is non-exhaustive, but should give you a good idea of what the dev team would like to see in Pull Requests. +The following list is non-exhaustive, but should give you a good idea of what we would like to see in Pull Requests. ### Spriting @@ -199,7 +203,7 @@ The following list is non-exhaustive, but should give you a good idea of what th - Bug fixes and inconsistency fixes **A note on new maps.** -Entirely new maps are generally considered to be stepping stones into the Development team’s mapping dept. proper. However, making a new map is a months long process that requires dedication and constant communication and oversight from mappers on the Maintainer team. Mapping, like spriting and coding is an acquired skill, and it is highly likely your first map is going to suck. Maps are fluid entities that are never absolutely complete, don’t wed yourself to your initial layout, always be prepared to remap half the project when going in. +Entirely new maps are generally considered to be stepping stones into the maintainers’ mapping dept. proper. However, making a new map is a months long process that requires dedication and constant communication and oversight from mappers on the Maintainer team. Mapping, like spriting and coding is an acquired skill, and it is highly likely your first map is going to suck. Maps are fluid entities that are never absolutely complete, don’t wed yourself to your initial layout, always be prepared to remap half the project when going in. ### Coding @@ -216,7 +220,7 @@ Entirely new maps are generally considered to be stepping stones into the Develo - New TGUI ## What we don't want -The following list is non-exhaustive, but should give you a good idea of what the dev team don't want to see in Pull Requests. +The following list is non-exhaustive, but should give you a good idea of what we don't want to see in Pull Requests. ### Spriting - Resprites of recently updated content, such as uniforms, guns, marine armor @@ -236,7 +240,10 @@ The following list is non-exhaustive, but should give you a good idea of what th - Player-facing HTML UIs - Prior denied content/PRs (without approval) -Remember that the following lists are not exhaustive. And you can freely contribute an PR with content that can be shuffled into the “What we don’t want” category, and still get it merged. It is just unlikely without prior talk/approval from a maintainer. +### Frozen +- See pinned [issues](https://github.com/cmss13-devs/cmss13/issues) for anything that requires explicit permission. + +Remember that the list is not exhaustive. And you can freely contribute an PR with content that can be shuffled into the “What we don’t want” category, and still get it merged. It is just unlikely without prior talk/approval from a maintainer. ## Banned content Do not add any of the following in a Pull Request or risk getting the PR closed: diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index cb1790053744..14cf6001058f 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -16,6 +16,9 @@ Remember: something that is self-evident to you might not be to others. Explain # Testing Photographs and Procedure + + +
Screenshots & Videos diff --git a/.github/add_labels.py b/.github/add_labels.py index 3e903c362d82..764f90df0c50 100644 --- a/.github/add_labels.py +++ b/.github/add_labels.py @@ -1,19 +1,19 @@ import os, re -from github import Github +from github import Github, GithubException # Format - Key: Array[Label, [StringsToIgnore]] changelogToPrefix = { - 'fix': ["Fix", ["fixed a few things"]], - 'qol': ["Quality of Life", ["made something easier to use"]], - 'add': ["Feature", ["Added new mechanics or gameplay changes", "Added more things"]], - 'del': ["Removal", ["Removed old things"]], - 'spellcheck': ["Grammar and Formatting", ["fixed a few typos"]], - 'balance': ["Balance", ["rebalanced something"]], - 'code': ["Code Improvement", ["changed some code"]], - 'refactor': ["Refactor", ["refactored some code"]], - 'config': ["Config", ["changed some config setting"]], - 'admin': ["Admin", ["messed with admin stuff"]], - 'server': ["Server", ["something server ops should know"]], + 'fix': ["Fix", ["fixed a few things"]], + 'qol': ["Quality of Life", ["made something easier to use"]], + 'add': ["Feature", ["Added new mechanics or gameplay changes", "Added more things"]], + 'del': ["Removal", ["Removed old things"]], + 'spellcheck': ["Grammar and Formatting", ["fixed a few typos"]], + 'balance': ["Balance", ["rebalanced something"]], + 'code': ["Code Improvement", ["changed some code"]], + 'refactor': ["Refactor", ["refactored some code"]], + 'config': ["Config", ["changed some config setting"]], + 'admin': ["Admin", ["messed with admin stuff"]], + 'server': ["Server", ["something server ops should know"]], 'soundadd': ["Sound", ["added a new sound thingy"]], 'sounddel': ["Sound", ["removed an old sound thingy"]], 'imageadd': ["Sprites", ["added some icons and images"]], @@ -24,78 +24,96 @@ } fileToPrefix = { - 'wav': 'Sound', - 'ogg': 'Sound', + 'wav': 'Sound', + 'ogg': 'Sound', 'mp3': 'Sound', ## Can't believe they forgot about the best sound format - 'dmm': 'Mapping', + 'dmm': 'Mapping', - 'js': 'UI', - 'tsx': 'UI', - 'ts': 'UI', - 'jsx': 'UI', - 'scss': 'UI', + 'js': 'UI', + 'tsx': 'UI', + 'ts': 'UI', + 'jsx': 'UI', + 'scss': 'UI', - 'dmi': "Sprites", + 'dmi': "Sprites", } githubLabel = "Github" +missingLogLabel = "Missing Changelog" def get_labels(pr): - labels = {} - - files = pr.get_files() - for file in files: - prefix = file.filename.split(".")[-1] - if file.filename.startswith(".github"): - labels[githubLabel] = True - if not prefix in fileToPrefix: - continue - labels[fileToPrefix[prefix]] = True - - changelog_match = re.search(r"🆑(.*)/🆑", pr.body, re.S | re.M) - if changelog_match is None: - changelog_match = re.search(r":cl:(.*)/:cl:", pr.body, re.S | re.M) - if changelog_match is None: - return labels - lines = changelog_match.group(1).split('\n') - for line in lines: - line = line.strip() - if not line: - continue - - contentSplit = line.split(":") - - key = contentSplit.pop(0).strip() - content = ":".join(contentSplit).strip() - - if not key in changelogToPrefix: - continue - - if content in changelogToPrefix[key][1]: - continue - - labels[changelogToPrefix[key][0]] = True - - return list(labels) + labels = {} + failed = False + + files = pr.get_files() + for file in files: + prefix = file.filename.split(".")[-1] + if file.filename.startswith(".github"): + labels[githubLabel] = True + if not prefix in fileToPrefix: + continue + labels[fileToPrefix[prefix]] = True + + changelog_match = re.search(r"🆑(.*)/🆑", pr.body, re.S | re.M) + if changelog_match is None: + changelog_match = re.search(r":cl:(.*)/:cl:", pr.body, re.S | re.M) + if changelog_match is None: + print("::warning ::No changelog detected.") + labels[missingLogLabel] = True + return labels, False + + lines = changelog_match.group(1).split('\n') + failed = len(lines) <= 2 # Make sure its not an empty changelog + if failed: + print("::error ::Empty changelog.") + + for line in lines[1:-1]: # Skip first line with authors and last + line = line.strip() + if not line: + continue + + contentSplit = line.split(":") + + key = contentSplit.pop(0).strip() + content = ":".join(contentSplit).strip() + + if not key in changelogToPrefix: # Some key that we didn't expect + print(f"::error ::Invalid changelog entry: {line}") + failed = True + continue + + if content in changelogToPrefix[key][1]: # They left the template entry in + print(f"::error ::Invalid changelog entry: {line}") + failed = True + continue + + labels[changelogToPrefix[key][0]] = True + + return list(labels), failed def main(): - g = Github(os.environ["TOKEN"]) - repo = g.get_repo(os.environ['REPO']) + g = Github(os.environ["TOKEN"]) + repo = g.get_repo(os.environ['REPO']) - pr = repo.get_pull(int(os.environ["PR_NUMBER"])) - if not pr: - print("Not a PR.") - return + pr = repo.get_pull(int(os.environ["PR_NUMBER"])) + if not pr: + print("::warning ::Not a PR.") + return - labels = get_labels(pr) + labels, failed = get_labels(pr) - if labels is None: # no labels to add - print("No labels to add.") - return + if not missingLogLabel in labels: + try: + pr.remove_from_labels(missingLogLabel) + except GithubException as e: + if e.status == 404: + pass # 404 if we try to remove a label that isn't set - for label in labels: - pr.add_to_labels(label) + for label in labels: + pr.add_to_labels(label) + if failed: + exit(1) if __name__ == '__main__': - main() + main() diff --git a/.github/alternate_byond_versions.txt b/.github/alternate_byond_versions.txt index 005803964cca..7b50af46885e 100644 --- a/.github/alternate_byond_versions.txt +++ b/.github/alternate_byond_versions.txt @@ -5,5 +5,3 @@ # Format is version: map # Example: # 500.1337: runtimestation - -515.1610: lv624 diff --git a/.github/assets/discord-dark.png b/.github/assets/discord-dark.png new file mode 100644 index 000000000000..cd5fc2aadb22 Binary files /dev/null and b/.github/assets/discord-dark.png differ diff --git a/.github/assets/discord-light.png b/.github/assets/discord-light.png new file mode 100644 index 000000000000..2094d01a4757 Binary files /dev/null and b/.github/assets/discord-light.png differ diff --git a/.github/assets/docs-dark.png b/.github/assets/docs-dark.png new file mode 100644 index 000000000000..8efc14d0ba02 Binary files /dev/null and b/.github/assets/docs-dark.png differ diff --git a/.github/assets/docs-light.png b/.github/assets/docs-light.png new file mode 100644 index 000000000000..25ad91545a85 Binary files /dev/null and b/.github/assets/docs-light.png differ diff --git a/.github/assets/logo.png b/.github/assets/logo.png new file mode 100644 index 000000000000..78036c2601b7 Binary files /dev/null and b/.github/assets/logo.png differ diff --git a/.github/assets/website-dark.png b/.github/assets/website-dark.png new file mode 100644 index 000000000000..c80cd0e90fcd Binary files /dev/null and b/.github/assets/website-dark.png differ diff --git a/.github/assets/website-light.png b/.github/assets/website-light.png new file mode 100644 index 000000000000..96dee1b838ee Binary files /dev/null and b/.github/assets/website-light.png differ diff --git a/.github/assets/wiki-dark.png b/.github/assets/wiki-dark.png new file mode 100644 index 000000000000..a1438c4d1b67 Binary files /dev/null and b/.github/assets/wiki-dark.png differ diff --git a/.github/assets/wiki-light.png b/.github/assets/wiki-light.png new file mode 100644 index 000000000000..89e6972fd6aa Binary files /dev/null and b/.github/assets/wiki-light.png differ diff --git a/.github/guides/AUTODOC.md b/.github/guides/AUTODOC.md index dd2f30627b7d..90e5b2d1ac66 100644 --- a/.github/guides/AUTODOC.md +++ b/.github/guides/AUTODOC.md @@ -1,9 +1,9 @@ # dmdoc -[DOCUMENTATION]: **PUT DOCUMENTATION LINK HERE** +[DOCUMENTATION]: https://docs.cm-ss13.com/ [BYOND]: https://secure.byond.com/ -[DMDOC]: https://github.com/SpaceManiac/SpacemanDMM/tree/master/src/dmdoc +[DMDOC]: https://github.com/SpaceManiac/SpacemanDMM/tree/master/crates/dmdoc [DMDOC] is a documentation generator for DreamMaker, the scripting language of the [BYOND] game engine. It produces simple static HTML files based on @@ -13,9 +13,9 @@ We use **dmdoc** to generate [DOCUMENTATION] for our code, and that documentatio is automatically generated and built on every new commit to the master branch This gives new developers a clickable reference [DOCUMENTATION] they can browse to better help -gain understanding of the /tg/station codebase structure and api reference. +gain understanding of the CM-SS13 codebase structure and api reference. -## Documenting code on /tg/station +## Documenting code on CM-SS13 We use block comments to document procs and classes, and we use `///` line comments when documenting individual variables. diff --git a/.github/workflows/ci_suite.yml b/.github/workflows/ci_suite.yml index 0488055312f7..e76e224522a0 100644 --- a/.github/workflows/ci_suite.yml +++ b/.github/workflows/ci_suite.yml @@ -63,30 +63,16 @@ jobs: odlint: name: Lint with OpenDream - runs-on: ubuntu-20.04 + runs-on: ubuntu-22.04 steps: - - uses: actions/checkout@v3 - - name: Get OpenDream Version - run: | - source dependencies.sh - echo "OPENDREAM_VERSION=$OPENDREAM_VERSION" >> $GITHUB_ENV - - name: Restore OpenDream cache - uses: actions/cache@v3 - id: cache-od + - uses: actions/checkout@v4 + - uses: robinraju/release-downloader@v1.9 with: - path: ~/OpenDream - key: ${{ runner.os }}-opendream-${{ env.OPENDREAM_VERSION }} - - name: Download OpenDream - if: steps.cache-od.outputs.cache-hit != 'true' - run: | - bash tools/ci/download_od.sh - - name: Setup OpenDream - if: steps.cache-od.outputs.cache-hit != 'true' - run: | - bash tools/ci/setup_od.sh - - name: Run OpenDream - run: | - bash tools/ci/run_od.sh + repository: "OpenDreamProject/OpenDream" + tag: "latest" + fileName: "DMCompiler_linux-x64.tar.gz" + extract: true + - run: ./DMCompiler_linux-x64/DMCompiler --suppress-unimplemented colonialmarines.dme compile_all_maps: if: "!contains(github.event.head_commit.message, '[ci skip]')" diff --git a/.github/workflows/labeler.yml b/.github/workflows/labeler.yml index 8a688f207f11..fb924fe250a0 100644 --- a/.github/workflows/labeler.yml +++ b/.github/workflows/labeler.yml @@ -1,7 +1,7 @@ -name: Labeling +name: Labeling and Verification on: pull_request_target: - types: [opened] + types: [opened, reopened, synchronize, edited] jobs: label: runs-on: ubuntu-latest @@ -13,7 +13,7 @@ jobs: run: | unset SECRET_EXISTS if [ -n "$ENABLER_SECRET" ]; then SECRET_EXISTS=true ; fi - echo "::set-output name=ACTIONS_ENABLED::$SECRET_EXISTS" + echo "ACTIONS_ENABLED=$SECRET_EXISTS" >> $GITHUB_OUTPUT - name: Get The Script if: steps.value_holder.outputs.ACTIONS_ENABLED run: | @@ -29,7 +29,7 @@ jobs: python -m pip install --upgrade pip python -m pip install pygithub sudo apt-get install dos2unix - - name: Add Labels + - name: Add and verify labels if: steps.value_holder.outputs.ACTIONS_ENABLED run: | python add_labels.py diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 000000000000..2b7500b2316b --- /dev/null +++ b/.prettierignore @@ -0,0 +1,5 @@ +# We don't want prettier to run on anything outside of the TGUI folder, so we have to do this. +/* + +# We want it to run into the TGUI folder, however. +!/tgui diff --git a/.tgs.yml b/.tgs.yml index ba3fc6b26c66..ed84385e3c36 100644 --- a/.tgs.yml +++ b/.tgs.yml @@ -1,5 +1,5 @@ version: 1 -byond: "514.1588" +byond: "515.1627" static_files: - name: config - name: data diff --git a/.vscode/settings.json b/.vscode/settings.json index 201562aaf7c7..d29a55ea060c 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,7 +1,7 @@ { "eslint.nodePath": "./tgui/.yarn/sdks", "eslint.workingDirectories": ["./tgui"], - "prettier.prettierPath": "./tgui/.yarn/sdks/prettier/index.js", + "prettier.prettierPath": "./tgui/.yarn/sdks/prettier/index.cjs", "typescript.tsdk": "./tgui/.yarn/sdks/typescript/lib", "typescript.enablePromptUseWorkspaceTsdk": true, "search.exclude": { @@ -9,11 +9,12 @@ "**/.pnp.*": true }, "editor.codeActionsOnSave": { - "source.fixAll.eslint": true + "source.fixAll.eslint": "explicit" }, "files.eol": "\n", "files.insertFinalNewline": true, "gitlens.advanced.blame.customArguments": ["-w"], + "tgstationTestExplorer.project.resultsType": "json", "[javascript]": { "editor.rulers": [80], "editor.defaultFormatter": "esbenp.prettier-vscode", diff --git a/.vscode/tasks.json b/.vscode/tasks.json index 8d7b4133840c..e2390c9fe817 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -89,6 +89,19 @@ ], "group": "build", "label": "tgui: sonar" + }, + { + "type": "shell", + "command": "bin/tgfont", + "windows": { + "command": ".\\bin\\tgfont.cmd" + }, + "problemMatcher": [ + "$tsc", + "$eslint-stylish" + ], + "group": "build", + "label": "tgui: rebuild tgfont" } ] } diff --git a/LICENSE b/LICENSE deleted file mode 100644 index 6b3d081017db..000000000000 --- a/LICENSE +++ /dev/null @@ -1,661 +0,0 @@ - GNU AFFERO GENERAL PUBLIC LICENSE - Version 3, 19 November 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The GNU Affero General Public License is a free, copyleft license for -software and other kinds of works, specifically designed to ensure -cooperation with the community in the case of network server software. - - The licenses for most software and other practical works are designed -to take away your freedom to share and change the works. By contrast, -our General Public Licenses are intended to guarantee your freedom to -share and change all versions of a program--to make sure it remains free -software for all its users. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -them if you wish), that you receive source code or can get it if you -want it, that you can change the software or use pieces of it in new -free programs, and that you know you can do these things. - - Developers that use our General Public Licenses protect your rights -with two steps: (1) assert copyright on the software, and (2) offer -you this License which gives you legal permission to copy, distribute -and/or modify the software. - - A secondary benefit of defending all users' freedom is that -improvements made in alternate versions of the program, if they -receive widespread use, become available for other developers to -incorporate. Many developers of free software are heartened and -encouraged by the resulting cooperation. However, in the case of -software used on network servers, this result may fail to come about. -The GNU General Public License permits making a modified version and -letting the public access it on a server without ever releasing its -source code to the public. - - The GNU Affero General Public License is designed specifically to -ensure that, in such cases, the modified source code becomes available -to the community. It requires the operator of a network server to -provide the source code of the modified version running there to the -users of that server. Therefore, public use of a modified version, on -a publicly accessible server, gives the public access to the source -code of the modified version. - - An older license, called the Affero General Public License and -published by Affero, was designed to accomplish similar goals. This is -a different license, not a version of the Affero GPL, but Affero has -released a new version of the Affero GPL which permits relicensing under -this license. - - The precise terms and conditions for copying, distribution and -modification follow. - - TERMS AND CONDITIONS - - 0. Definitions. - - "This License" refers to version 3 of the GNU Affero General Public License. - - "Copyright" also means copyright-like laws that apply to other kinds of -works, such as semiconductor masks. - - "The Program" refers to any copyrightable work licensed under this -License. Each licensee is addressed as "you". "Licensees" and -"recipients" may be individuals or organizations. - - To "modify" a work means to copy from or adapt all or part of the work -in a fashion requiring copyright permission, other than the making of an -exact copy. The resulting work is called a "modified version" of the -earlier work or a work "based on" the earlier work. - - A "covered work" means either the unmodified Program or a work based -on the Program. - - To "propagate" a work means to do anything with it that, without -permission, would make you directly or secondarily liable for -infringement under applicable copyright law, except executing it on a -computer or modifying a private copy. Propagation includes copying, -distribution (with or without modification), making available to the -public, and in some countries other activities as well. - - To "convey" a work means any kind of propagation that enables other -parties to make or receive copies. Mere interaction with a user through -a computer network, with no transfer of a copy, is not conveying. - - An interactive user interface displays "Appropriate Legal Notices" -to the extent that it includes a convenient and prominently visible -feature that (1) displays an appropriate copyright notice, and (2) -tells the user that there is no warranty for the work (except to the -extent that warranties are provided), that licensees may convey the -work under this License, and how to view a copy of this License. If -the interface presents a list of user commands or options, such as a -menu, a prominent item in the list meets this criterion. - - 1. Source Code. - - The "source code" for a work means the preferred form of the work -for making modifications to it. "Object code" means any non-source -form of a work. - - A "Standard Interface" means an interface that either is an official -standard defined by a recognized standards body, or, in the case of -interfaces specified for a particular programming language, one that -is widely used among developers working in that language. - - The "System Libraries" of an executable work include anything, other -than the work as a whole, that (a) is included in the normal form of -packaging a Major Component, but which is not part of that Major -Component, and (b) serves only to enable use of the work with that -Major Component, or to implement a Standard Interface for which an -implementation is available to the public in source code form. A -"Major Component", in this context, means a major essential component -(kernel, window system, and so on) of the specific operating system -(if any) on which the executable work runs, or a compiler used to -produce the work, or an object code interpreter used to run it. - - The "Corresponding Source" for a work in object code form means all -the source code needed to generate, install, and (for an executable -work) run the object code and to modify the work, including scripts to -control those activities. However, it does not include the work's -System Libraries, or general-purpose tools or generally available free -programs which are used unmodified in performing those activities but -which are not part of the work. For example, Corresponding Source -includes interface definition files associated with source files for -the work, and the source code for shared libraries and dynamically -linked subprograms that the work is specifically designed to require, -such as by intimate data communication or control flow between those -subprograms and other parts of the work. - - The Corresponding Source need not include anything that users -can regenerate automatically from other parts of the Corresponding -Source. - - The Corresponding Source for a work in source code form is that -same work. - - 2. Basic Permissions. - - All rights granted under this License are granted for the term of -copyright on the Program, and are irrevocable provided the stated -conditions are met. This License explicitly affirms your unlimited -permission to run the unmodified Program. The output from running a -covered work is covered by this License only if the output, given its -content, constitutes a covered work. This License acknowledges your -rights of fair use or other equivalent, as provided by copyright law. - - You may make, run and propagate covered works that you do not -convey, without conditions so long as your license otherwise remains -in force. You may convey covered works to others for the sole purpose -of having them make modifications exclusively for you, or provide you -with facilities for running those works, provided that you comply with -the terms of this License in conveying all material for which you do -not control copyright. Those thus making or running the covered works -for you must do so exclusively on your behalf, under your direction -and control, on terms that prohibit them from making any copies of -your copyrighted material outside their relationship with you. - - Conveying under any other circumstances is permitted solely under -the conditions stated below. Sublicensing is not allowed; section 10 -makes it unnecessary. - - 3. Protecting Users' Legal Rights From Anti-Circumvention Law. - - No covered work shall be deemed part of an effective technological -measure under any applicable law fulfilling obligations under article -11 of the WIPO copyright treaty adopted on 20 December 1996, or -similar laws prohibiting or restricting circumvention of such -measures. - - When you convey a covered work, you waive any legal power to forbid -circumvention of technological measures to the extent such circumvention -is effected by exercising rights under this License with respect to -the covered work, and you disclaim any intention to limit operation or -modification of the work as a means of enforcing, against the work's -users, your or third parties' legal rights to forbid circumvention of -technological measures. - - 4. Conveying Verbatim Copies. - - You may convey verbatim copies of the Program's source code as you -receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice; -keep intact all notices stating that this License and any -non-permissive terms added in accord with section 7 apply to the code; -keep intact all notices of the absence of any warranty; and give all -recipients a copy of this License along with the Program. - - You may charge any price or no price for each copy that you convey, -and you may offer support or warranty protection for a fee. - - 5. Conveying Modified Source Versions. - - You may convey a work based on the Program, or the modifications to -produce it from the Program, in the form of source code under the -terms of section 4, provided that you also meet all of these conditions: - - a) The work must carry prominent notices stating that you modified - it, and giving a relevant date. - - b) The work must carry prominent notices stating that it is - released under this License and any conditions added under section - 7. This requirement modifies the requirement in section 4 to - "keep intact all notices". - - c) You must license the entire work, as a whole, under this - License to anyone who comes into possession of a copy. This - License will therefore apply, along with any applicable section 7 - additional terms, to the whole of the work, and all its parts, - regardless of how they are packaged. This License gives no - permission to license the work in any other way, but it does not - invalidate such permission if you have separately received it. - - d) If the work has interactive user interfaces, each must display - Appropriate Legal Notices; however, if the Program has interactive - interfaces that do not display Appropriate Legal Notices, your - work need not make them do so. - - A compilation of a covered work with other separate and independent -works, which are not by their nature extensions of the covered work, -and which are not combined with it such as to form a larger program, -in or on a volume of a storage or distribution medium, is called an -"aggregate" if the compilation and its resulting copyright are not -used to limit the access or legal rights of the compilation's users -beyond what the individual works permit. Inclusion of a covered work -in an aggregate does not cause this License to apply to the other -parts of the aggregate. - - 6. Conveying Non-Source Forms. - - You may convey a covered work in object code form under the terms -of sections 4 and 5, provided that you also convey the -machine-readable Corresponding Source under the terms of this License, -in one of these ways: - - a) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by the - Corresponding Source fixed on a durable physical medium - customarily used for software interchange. - - b) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by a - written offer, valid for at least three years and valid for as - long as you offer spare parts or customer support for that product - model, to give anyone who possesses the object code either (1) a - copy of the Corresponding Source for all the software in the - product that is covered by this License, on a durable physical - medium customarily used for software interchange, for a price no - more than your reasonable cost of physically performing this - conveying of source, or (2) access to copy the - Corresponding Source from a network server at no charge. - - c) Convey individual copies of the object code with a copy of the - written offer to provide the Corresponding Source. This - alternative is allowed only occasionally and noncommercially, and - only if you received the object code with such an offer, in accord - with subsection 6b. - - d) Convey the object code by offering access from a designated - place (gratis or for a charge), and offer equivalent access to the - Corresponding Source in the same way through the same place at no - further charge. You need not require recipients to copy the - Corresponding Source along with the object code. If the place to - copy the object code is a network server, the Corresponding Source - may be on a different server (operated by you or a third party) - that supports equivalent copying facilities, provided you maintain - clear directions next to the object code saying where to find the - Corresponding Source. Regardless of what server hosts the - Corresponding Source, you remain obligated to ensure that it is - available for as long as needed to satisfy these requirements. - - e) Convey the object code using peer-to-peer transmission, provided - you inform other peers where the object code and Corresponding - Source of the work are being offered to the general public at no - charge under subsection 6d. - - A separable portion of the object code, whose source code is excluded -from the Corresponding Source as a System Library, need not be -included in conveying the object code work. - - A "User Product" is either (1) a "consumer product", which means any -tangible personal property which is normally used for personal, family, -or household purposes, or (2) anything designed or sold for incorporation -into a dwelling. In determining whether a product is a consumer product, -doubtful cases shall be resolved in favor of coverage. For a particular -product received by a particular user, "normally used" refers to a -typical or common use of that class of product, regardless of the status -of the particular user or of the way in which the particular user -actually uses, or expects or is expected to use, the product. A product -is a consumer product regardless of whether the product has substantial -commercial, industrial or non-consumer uses, unless such uses represent -the only significant mode of use of the product. - - "Installation Information" for a User Product means any methods, -procedures, authorization keys, or other information required to install -and execute modified versions of a covered work in that User Product from -a modified version of its Corresponding Source. The information must -suffice to ensure that the continued functioning of the modified object -code is in no case prevented or interfered with solely because -modification has been made. - - If you convey an object code work under this section in, or with, or -specifically for use in, a User Product, and the conveying occurs as -part of a transaction in which the right of possession and use of the -User Product is transferred to the recipient in perpetuity or for a -fixed term (regardless of how the transaction is characterized), the -Corresponding Source conveyed under this section must be accompanied -by the Installation Information. But this requirement does not apply -if neither you nor any third party retains the ability to install -modified object code on the User Product (for example, the work has -been installed in ROM). - - The requirement to provide Installation Information does not include a -requirement to continue to provide support service, warranty, or updates -for a work that has been modified or installed by the recipient, or for -the User Product in which it has been modified or installed. Access to a -network may be denied when the modification itself materially and -adversely affects the operation of the network or violates the rules and -protocols for communication across the network. - - Corresponding Source conveyed, and Installation Information provided, -in accord with this section must be in a format that is publicly -documented (and with an implementation available to the public in -source code form), and must require no special password or key for -unpacking, reading or copying. - - 7. Additional Terms. - - "Additional permissions" are terms that supplement the terms of this -License by making exceptions from one or more of its conditions. -Additional permissions that are applicable to the entire Program shall -be treated as though they were included in this License, to the extent -that they are valid under applicable law. If additional permissions -apply only to part of the Program, that part may be used separately -under those permissions, but the entire Program remains governed by -this License without regard to the additional permissions. - - When you convey a copy of a covered work, you may at your option -remove any additional permissions from that copy, or from any part of -it. (Additional permissions may be written to require their own -removal in certain cases when you modify the work.) You may place -additional permissions on material, added by you to a covered work, -for which you have or can give appropriate copyright permission. - - Notwithstanding any other provision of this License, for material you -add to a covered work, you may (if authorized by the copyright holders of -that material) supplement the terms of this License with terms: - - a) Disclaiming warranty or limiting liability differently from the - terms of sections 15 and 16 of this License; or - - b) Requiring preservation of specified reasonable legal notices or - author attributions in that material or in the Appropriate Legal - Notices displayed by works containing it; or - - c) Prohibiting misrepresentation of the origin of that material, or - requiring that modified versions of such material be marked in - reasonable ways as different from the original version; or - - d) Limiting the use for publicity purposes of names of licensors or - authors of the material; or - - e) Declining to grant rights under trademark law for use of some - trade names, trademarks, or service marks; or - - f) Requiring indemnification of licensors and authors of that - material by anyone who conveys the material (or modified versions of - it) with contractual assumptions of liability to the recipient, for - any liability that these contractual assumptions directly impose on - those licensors and authors. - - All other non-permissive additional terms are considered "further -restrictions" within the meaning of section 10. If the Program as you -received it, or any part of it, contains a notice stating that it is -governed by this License along with a term that is a further -restriction, you may remove that term. If a license document contains -a further restriction but permits relicensing or conveying under this -License, you may add to a covered work material governed by the terms -of that license document, provided that the further restriction does -not survive such relicensing or conveying. - - If you add terms to a covered work in accord with this section, you -must place, in the relevant source files, a statement of the -additional terms that apply to those files, or a notice indicating -where to find the applicable terms. - - Additional terms, permissive or non-permissive, may be stated in the -form of a separately written license, or stated as exceptions; -the above requirements apply either way. - - 8. Termination. - - You may not propagate or modify a covered work except as expressly -provided under this License. Any attempt otherwise to propagate or -modify it is void, and will automatically terminate your rights under -this License (including any patent licenses granted under the third -paragraph of section 11). - - However, if you cease all violation of this License, then your -license from a particular copyright holder is reinstated (a) -provisionally, unless and until the copyright holder explicitly and -finally terminates your license, and (b) permanently, if the copyright -holder fails to notify you of the violation by some reasonable means -prior to 60 days after the cessation. - - Moreover, your license from a particular copyright holder is -reinstated permanently if the copyright holder notifies you of the -violation by some reasonable means, this is the first time you have -received notice of violation of this License (for any work) from that -copyright holder, and you cure the violation prior to 30 days after -your receipt of the notice. - - Termination of your rights under this section does not terminate the -licenses of parties who have received copies or rights from you under -this License. If your rights have been terminated and not permanently -reinstated, you do not qualify to receive new licenses for the same -material under section 10. - - 9. Acceptance Not Required for Having Copies. - - You are not required to accept this License in order to receive or -run a copy of the Program. Ancillary propagation of a covered work -occurring solely as a consequence of using peer-to-peer transmission -to receive a copy likewise does not require acceptance. However, -nothing other than this License grants you permission to propagate or -modify any covered work. These actions infringe copyright if you do -not accept this License. Therefore, by modifying or propagating a -covered work, you indicate your acceptance of this License to do so. - - 10. Automatic Licensing of Downstream Recipients. - - Each time you convey a covered work, the recipient automatically -receives a license from the original licensors, to run, modify and -propagate that work, subject to this License. You are not responsible -for enforcing compliance by third parties with this License. - - An "entity transaction" is a transaction transferring control of an -organization, or substantially all assets of one, or subdividing an -organization, or merging organizations. If propagation of a covered -work results from an entity transaction, each party to that -transaction who receives a copy of the work also receives whatever -licenses to the work the party's predecessor in interest had or could -give under the previous paragraph, plus a right to possession of the -Corresponding Source of the work from the predecessor in interest, if -the predecessor has it or can get it with reasonable efforts. - - You may not impose any further restrictions on the exercise of the -rights granted or affirmed under this License. For example, you may -not impose a license fee, royalty, or other charge for exercise of -rights granted under this License, and you may not initiate litigation -(including a cross-claim or counterclaim in a lawsuit) alleging that -any patent claim is infringed by making, using, selling, offering for -sale, or importing the Program or any portion of it. - - 11. Patents. - - A "contributor" is a copyright holder who authorizes use under this -License of the Program or a work on which the Program is based. The -work thus licensed is called the contributor's "contributor version". - - A contributor's "essential patent claims" are all patent claims -owned or controlled by the contributor, whether already acquired or -hereafter acquired, that would be infringed by some manner, permitted -by this License, of making, using, or selling its contributor version, -but do not include claims that would be infringed only as a -consequence of further modification of the contributor version. For -purposes of this definition, "control" includes the right to grant -patent sublicenses in a manner consistent with the requirements of -this License. - - Each contributor grants you a non-exclusive, worldwide, royalty-free -patent license under the contributor's essential patent claims, to -make, use, sell, offer for sale, import and otherwise run, modify and -propagate the contents of its contributor version. - - In the following three paragraphs, a "patent license" is any express -agreement or commitment, however denominated, not to enforce a patent -(such as an express permission to practice a patent or covenant not to -sue for patent infringement). To "grant" such a patent license to a -party means to make such an agreement or commitment not to enforce a -patent against the party. - - If you convey a covered work, knowingly relying on a patent license, -and the Corresponding Source of the work is not available for anyone -to copy, free of charge and under the terms of this License, through a -publicly available network server or other readily accessible means, -then you must either (1) cause the Corresponding Source to be so -available, or (2) arrange to deprive yourself of the benefit of the -patent license for this particular work, or (3) arrange, in a manner -consistent with the requirements of this License, to extend the patent -license to downstream recipients. "Knowingly relying" means you have -actual knowledge that, but for the patent license, your conveying the -covered work in a country, or your recipient's use of the covered work -in a country, would infringe one or more identifiable patents in that -country that you have reason to believe are valid. - - If, pursuant to or in connection with a single transaction or -arrangement, you convey, or propagate by procuring conveyance of, a -covered work, and grant a patent license to some of the parties -receiving the covered work authorizing them to use, propagate, modify -or convey a specific copy of the covered work, then the patent license -you grant is automatically extended to all recipients of the covered -work and works based on it. - - A patent license is "discriminatory" if it does not include within -the scope of its coverage, prohibits the exercise of, or is -conditioned on the non-exercise of one or more of the rights that are -specifically granted under this License. You may not convey a covered -work if you are a party to an arrangement with a third party that is -in the business of distributing software, under which you make payment -to the third party based on the extent of your activity of conveying -the work, and under which the third party grants, to any of the -parties who would receive the covered work from you, a discriminatory -patent license (a) in connection with copies of the covered work -conveyed by you (or copies made from those copies), or (b) primarily -for and in connection with specific products or compilations that -contain the covered work, unless you entered into that arrangement, -or that patent license was granted, prior to 28 March 2007. - - Nothing in this License shall be construed as excluding or limiting -any implied license or other defenses to infringement that may -otherwise be available to you under applicable patent law. - - 12. No Surrender of Others' Freedom. - - If conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot convey a -covered work so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you may -not convey it at all. For example, if you agree to terms that obligate you -to collect a royalty for further conveying from those to whom you convey -the Program, the only way you could satisfy both those terms and this -License would be to refrain entirely from conveying the Program. - - 13. Remote Network Interaction; Use with the GNU General Public License. - - Notwithstanding any other provision of this License, if you modify the -Program, your modified version must prominently offer all users -interacting with it remotely through a computer network (if your version -supports such interaction) an opportunity to receive the Corresponding -Source of your version by providing access to the Corresponding Source -from a network server at no charge, through some standard or customary -means of facilitating copying of software. This Corresponding Source -shall include the Corresponding Source for any work covered by version 3 -of the GNU General Public License that is incorporated pursuant to the -following paragraph. - - Notwithstanding any other provision of this License, you have -permission to link or combine any covered work with a work licensed -under version 3 of the GNU General Public License into a single -combined work, and to convey the resulting work. The terms of this -License will continue to apply to the part which is the covered work, -but the work with which it is combined will remain governed by version -3 of the GNU General Public License. - - 14. Revised Versions of this License. - - The Free Software Foundation may publish revised and/or new versions of -the GNU Affero General Public License from time to time. Such new versions -will be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - - Each version is given a distinguishing version number. If the -Program specifies that a certain numbered version of the GNU Affero General -Public License "or any later version" applies to it, you have the -option of following the terms and conditions either of that numbered -version or of any later version published by the Free Software -Foundation. If the Program does not specify a version number of the -GNU Affero General Public License, you may choose any version ever published -by the Free Software Foundation. - - If the Program specifies that a proxy can decide which future -versions of the GNU Affero General Public License can be used, that proxy's -public statement of acceptance of a version permanently authorizes you -to choose that version for the Program. - - Later license versions may give you additional or different -permissions. However, no additional obligations are imposed on any -author or copyright holder as a result of your choosing to follow a -later version. - - 15. Disclaimer of Warranty. - - THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY -APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT -HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY -OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM -IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF -ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. Limitation of Liability. - - IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS -THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY -GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE -USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF -DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD -PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), -EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF -SUCH DAMAGES. - - 17. Interpretation of Sections 15 and 16. - - If the disclaimer of warranty and limitation of liability provided -above cannot be given local legal effect according to their terms, -reviewing courts shall apply local law that most closely approximates -an absolute waiver of all civil liability in connection with the -Program, unless a warranty or assumption of liability accompanies a -copy of the Program in return for a fee. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -state the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - ColonialMarines - Copyright (C) 2020 CM Devs - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU Affero General Public License as published - by the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Affero General Public License for more details. - - You should have received a copy of the GNU Affero General Public License - along with this program. If not, see . - -Also add information on how to contact you by electronic and paper mail. - - If your software can interact with users remotely through a computer -network, you should also make sure that it provides a way for users to -get its source. For example, if your program is a web application, its -interface could display a "Source" link that leads users to an archive -of the code. There are many ways you could offer source, and different -solutions will be better for different programs; see section 13 for the -specific requirements. - - You should also get your employer (if you work as a programmer) or school, -if any, to sign a "copyright disclaimer" for the program, if necessary. -For more information on this, and how to apply and follow the GNU AGPL, see -. diff --git a/LICENSE-AGPL3 b/LICENSE-AGPLv3.txt similarity index 100% rename from LICENSE-AGPL3 rename to LICENSE-AGPLv3.txt diff --git a/LICENSE-CC-BY-NC-SA-3.0.txt b/LICENSE-CC-BY-NC-SA-3.0.txt new file mode 100644 index 000000000000..a50eacf98c56 --- /dev/null +++ b/LICENSE-CC-BY-NC-SA-3.0.txt @@ -0,0 +1,360 @@ +Creative Commons Legal Code + +Attribution-NonCommercial-ShareAlike 3.0 Unported + + CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE + LEGAL SERVICES. DISTRIBUTION OF THIS LICENSE DOES NOT CREATE AN + ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS + INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES + REGARDING THE INFORMATION PROVIDED, AND DISCLAIMS LIABILITY FOR + DAMAGES RESULTING FROM ITS USE. + +License + +THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE +COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY +COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS +AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED. + +BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE +TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS LICENSE MAY +BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU THE RIGHTS +CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND +CONDITIONS. + +1. Definitions + + a. "Adaptation" means a work based upon the Work, or upon the Work and + other pre-existing works, such as a translation, adaptation, + derivative work, arrangement of music or other alterations of a + literary or artistic work, or phonogram or performance and includes + cinematographic adaptations or any other form in which the Work may be + recast, transformed, or adapted including in any form recognizably + derived from the original, except that a work that constitutes a + Collection will not be considered an Adaptation for the purpose of + this License. For the avoidance of doubt, where the Work is a musical + work, performance or phonogram, the synchronization of the Work in + timed-relation with a moving image ("synching") will be considered an + Adaptation for the purpose of this License. + b. "Collection" means a collection of literary or artistic works, such as + encyclopedias and anthologies, or performances, phonograms or + broadcasts, or other works or subject matter other than works listed + in Section 1(g) below, which, by reason of the selection and + arrangement of their contents, constitute intellectual creations, in + which the Work is included in its entirety in unmodified form along + with one or more other contributions, each constituting separate and + independent works in themselves, which together are assembled into a + collective whole. A work that constitutes a Collection will not be + considered an Adaptation (as defined above) for the purposes of this + License. + c. "Distribute" means to make available to the public the original and + copies of the Work or Adaptation, as appropriate, through sale or + other transfer of ownership. + d. "License Elements" means the following high-level license attributes + as selected by Licensor and indicated in the title of this License: + Attribution, Noncommercial, ShareAlike. + e. "Licensor" means the individual, individuals, entity or entities that + offer(s) the Work under the terms of this License. + f. "Original Author" means, in the case of a literary or artistic work, + the individual, individuals, entity or entities who created the Work + or if no individual or entity can be identified, the publisher; and in + addition (i) in the case of a performance the actors, singers, + musicians, dancers, and other persons who act, sing, deliver, declaim, + play in, interpret or otherwise perform literary or artistic works or + expressions of folklore; (ii) in the case of a phonogram the producer + being the person or legal entity who first fixes the sounds of a + performance or other sounds; and, (iii) in the case of broadcasts, the + organization that transmits the broadcast. + g. "Work" means the literary and/or artistic work offered under the terms + of this License including without limitation any production in the + literary, scientific and artistic domain, whatever may be the mode or + form of its expression including digital form, such as a book, + pamphlet and other writing; a lecture, address, sermon or other work + of the same nature; a dramatic or dramatico-musical work; a + choreographic work or entertainment in dumb show; a musical + composition with or without words; a cinematographic work to which are + assimilated works expressed by a process analogous to cinematography; + a work of drawing, painting, architecture, sculpture, engraving or + lithography; a photographic work to which are assimilated works + expressed by a process analogous to photography; a work of applied + art; an illustration, map, plan, sketch or three-dimensional work + relative to geography, topography, architecture or science; a + performance; a broadcast; a phonogram; a compilation of data to the + extent it is protected as a copyrightable work; or a work performed by + a variety or circus performer to the extent it is not otherwise + considered a literary or artistic work. + h. "You" means an individual or entity exercising rights under this + License who has not previously violated the terms of this License with + respect to the Work, or who has received express permission from the + Licensor to exercise rights under this License despite a previous + violation. + i. "Publicly Perform" means to perform public recitations of the Work and + to communicate to the public those public recitations, by any means or + process, including by wire or wireless means or public digital + performances; to make available to the public Works in such a way that + members of the public may access these Works from a place and at a + place individually chosen by them; to perform the Work to the public + by any means or process and the communication to the public of the + performances of the Work, including by public digital performance; to + broadcast and rebroadcast the Work by any means including signs, + sounds or images. + j. "Reproduce" means to make copies of the Work by any means including + without limitation by sound or visual recordings and the right of + fixation and reproducing fixations of the Work, including storage of a + protected performance or phonogram in digital form or other electronic + medium. + +2. Fair Dealing Rights. Nothing in this License is intended to reduce, +limit, or restrict any uses free from copyright or rights arising from +limitations or exceptions that are provided for in connection with the +copyright protection under copyright law or other applicable laws. + +3. License Grant. Subject to the terms and conditions of this License, +Licensor hereby grants You a worldwide, royalty-free, non-exclusive, +perpetual (for the duration of the applicable copyright) license to +exercise the rights in the Work as stated below: + + a. to Reproduce the Work, to incorporate the Work into one or more + Collections, and to Reproduce the Work as incorporated in the + Collections; + b. to create and Reproduce Adaptations provided that any such Adaptation, + including any translation in any medium, takes reasonable steps to + clearly label, demarcate or otherwise identify that changes were made + to the original Work. For example, a translation could be marked "The + original work was translated from English to Spanish," or a + modification could indicate "The original work has been modified."; + c. to Distribute and Publicly Perform the Work including as incorporated + in Collections; and, + d. to Distribute and Publicly Perform Adaptations. + +The above rights may be exercised in all media and formats whether now +known or hereafter devised. The above rights include the right to make +such modifications as are technically necessary to exercise the rights in +other media and formats. Subject to Section 8(f), all rights not expressly +granted by Licensor are hereby reserved, including but not limited to the +rights described in Section 4(e). + +4. Restrictions. The license granted in Section 3 above is expressly made +subject to and limited by the following restrictions: + + a. You may Distribute or Publicly Perform the Work only under the terms + of this License. You must include a copy of, or the Uniform Resource + Identifier (URI) for, this License with every copy of the Work You + Distribute or Publicly Perform. You may not offer or impose any terms + on the Work that restrict the terms of this License or the ability of + the recipient of the Work to exercise the rights granted to that + recipient under the terms of the License. You may not sublicense the + Work. You must keep intact all notices that refer to this License and + to the disclaimer of warranties with every copy of the Work You + Distribute or Publicly Perform. When You Distribute or Publicly + Perform the Work, You may not impose any effective technological + measures on the Work that restrict the ability of a recipient of the + Work from You to exercise the rights granted to that recipient under + the terms of the License. This Section 4(a) applies to the Work as + incorporated in a Collection, but this does not require the Collection + apart from the Work itself to be made subject to the terms of this + License. If You create a Collection, upon notice from any Licensor You + must, to the extent practicable, remove from the Collection any credit + as required by Section 4(d), as requested. If You create an + Adaptation, upon notice from any Licensor You must, to the extent + practicable, remove from the Adaptation any credit as required by + Section 4(d), as requested. + b. You may Distribute or Publicly Perform an Adaptation only under: (i) + the terms of this License; (ii) a later version of this License with + the same License Elements as this License; (iii) a Creative Commons + jurisdiction license (either this or a later license version) that + contains the same License Elements as this License (e.g., + Attribution-NonCommercial-ShareAlike 3.0 US) ("Applicable License"). + You must include a copy of, or the URI, for Applicable License with + every copy of each Adaptation You Distribute or Publicly Perform. You + may not offer or impose any terms on the Adaptation that restrict the + terms of the Applicable License or the ability of the recipient of the + Adaptation to exercise the rights granted to that recipient under the + terms of the Applicable License. You must keep intact all notices that + refer to the Applicable License and to the disclaimer of warranties + with every copy of the Work as included in the Adaptation You + Distribute or Publicly Perform. When You Distribute or Publicly + Perform the Adaptation, You may not impose any effective technological + measures on the Adaptation that restrict the ability of a recipient of + the Adaptation from You to exercise the rights granted to that + recipient under the terms of the Applicable License. This Section 4(b) + applies to the Adaptation as incorporated in a Collection, but this + does not require the Collection apart from the Adaptation itself to be + made subject to the terms of the Applicable License. + c. You may not exercise any of the rights granted to You in Section 3 + above in any manner that is primarily intended for or directed toward + commercial advantage or private monetary compensation. The exchange of + the Work for other copyrighted works by means of digital file-sharing + or otherwise shall not be considered to be intended for or directed + toward commercial advantage or private monetary compensation, provided + there is no payment of any monetary compensation in con-nection with + the exchange of copyrighted works. + d. If You Distribute, or Publicly Perform the Work or any Adaptations or + Collections, You must, unless a request has been made pursuant to + Section 4(a), keep intact all copyright notices for the Work and + provide, reasonable to the medium or means You are utilizing: (i) the + name of the Original Author (or pseudonym, if applicable) if supplied, + and/or if the Original Author and/or Licensor designate another party + or parties (e.g., a sponsor institute, publishing entity, journal) for + attribution ("Attribution Parties") in Licensor's copyright notice, + terms of service or by other reasonable means, the name of such party + or parties; (ii) the title of the Work if supplied; (iii) to the + extent reasonably practicable, the URI, if any, that Licensor + specifies to be associated with the Work, unless such URI does not + refer to the copyright notice or licensing information for the Work; + and, (iv) consistent with Section 3(b), in the case of an Adaptation, + a credit identifying the use of the Work in the Adaptation (e.g., + "French translation of the Work by Original Author," or "Screenplay + based on original Work by Original Author"). The credit required by + this Section 4(d) may be implemented in any reasonable manner; + provided, however, that in the case of a Adaptation or Collection, at + a minimum such credit will appear, if a credit for all contributing + authors of the Adaptation or Collection appears, then as part of these + credits and in a manner at least as prominent as the credits for the + other contributing authors. For the avoidance of doubt, You may only + use the credit required by this Section for the purpose of attribution + in the manner set out above and, by exercising Your rights under this + License, You may not implicitly or explicitly assert or imply any + connection with, sponsorship or endorsement by the Original Author, + Licensor and/or Attribution Parties, as appropriate, of You or Your + use of the Work, without the separate, express prior written + permission of the Original Author, Licensor and/or Attribution + Parties. + e. For the avoidance of doubt: + + i. Non-waivable Compulsory License Schemes. In those jurisdictions in + which the right to collect royalties through any statutory or + compulsory licensing scheme cannot be waived, the Licensor + reserves the exclusive right to collect such royalties for any + exercise by You of the rights granted under this License; + ii. Waivable Compulsory License Schemes. In those jurisdictions in + which the right to collect royalties through any statutory or + compulsory licensing scheme can be waived, the Licensor reserves + the exclusive right to collect such royalties for any exercise by + You of the rights granted under this License if Your exercise of + such rights is for a purpose or use which is otherwise than + noncommercial as permitted under Section 4(c) and otherwise waives + the right to collect royalties through any statutory or compulsory + licensing scheme; and, + iii. Voluntary License Schemes. The Licensor reserves the right to + collect royalties, whether individually or, in the event that the + Licensor is a member of a collecting society that administers + voluntary licensing schemes, via that society, from any exercise + by You of the rights granted under this License that is for a + purpose or use which is otherwise than noncommercial as permitted + under Section 4(c). + f. Except as otherwise agreed in writing by the Licensor or as may be + otherwise permitted by applicable law, if You Reproduce, Distribute or + Publicly Perform the Work either by itself or as part of any + Adaptations or Collections, You must not distort, mutilate, modify or + take other derogatory action in relation to the Work which would be + prejudicial to the Original Author's honor or reputation. Licensor + agrees that in those jurisdictions (e.g. Japan), in which any exercise + of the right granted in Section 3(b) of this License (the right to + make Adaptations) would be deemed to be a distortion, mutilation, + modification or other derogatory action prejudicial to the Original + Author's honor and reputation, the Licensor will waive or not assert, + as appropriate, this Section, to the fullest extent permitted by the + applicable national law, to enable You to reasonably exercise Your + right under Section 3(b) of this License (right to make Adaptations) + but not otherwise. + +5. Representations, Warranties and Disclaimer + +UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN WRITING AND TO THE +FULLEST EXTENT PERMITTED BY APPLICABLE LAW, LICENSOR OFFERS THE WORK AS-IS +AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND CONCERNING THE +WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, INCLUDING, WITHOUT +LIMITATION, WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR +PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF LATENT OR OTHER DEFECTS, +ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS, WHETHER OR NOT +DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF IMPLIED +WARRANTIES, SO THIS EXCLUSION MAY NOT APPLY TO YOU. + +6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE +LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR +ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES +ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS +BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +7. Termination + + a. This License and the rights granted hereunder will terminate + automatically upon any breach by You of the terms of this License. + Individuals or entities who have received Adaptations or Collections + from You under this License, however, will not have their licenses + terminated provided such individuals or entities remain in full + compliance with those licenses. Sections 1, 2, 5, 6, 7, and 8 will + survive any termination of this License. + b. Subject to the above terms and conditions, the license granted here is + perpetual (for the duration of the applicable copyright in the Work). + Notwithstanding the above, Licensor reserves the right to release the + Work under different license terms or to stop distributing the Work at + any time; provided, however that any such election will not serve to + withdraw this License (or any other license that has been, or is + required to be, granted under the terms of this License), and this + License will continue in full force and effect unless terminated as + stated above. + +8. Miscellaneous + + a. Each time You Distribute or Publicly Perform the Work or a Collection, + the Licensor offers to the recipient a license to the Work on the same + terms and conditions as the license granted to You under this License. + b. Each time You Distribute or Publicly Perform an Adaptation, Licensor + offers to the recipient a license to the original Work on the same + terms and conditions as the license granted to You under this License. + c. If any provision of this License is invalid or unenforceable under + applicable law, it shall not affect the validity or enforceability of + the remainder of the terms of this License, and without further action + by the parties to this agreement, such provision shall be reformed to + the minimum extent necessary to make such provision valid and + enforceable. + d. No term or provision of this License shall be deemed waived and no + breach consented to unless such waiver or consent shall be in writing + and signed by the party to be charged with such waiver or consent. + e. This License constitutes the entire agreement between the parties with + respect to the Work licensed here. There are no understandings, + agreements or representations with respect to the Work not specified + here. Licensor shall not be bound by any additional provisions that + may appear in any communication from You. This License may not be + modified without the mutual written agreement of the Licensor and You. + f. The rights granted under, and the subject matter referenced, in this + License were drafted utilizing the terminology of the Berne Convention + for the Protection of Literary and Artistic Works (as amended on + September 28, 1979), the Rome Convention of 1961, the WIPO Copyright + Treaty of 1996, the WIPO Performances and Phonograms Treaty of 1996 + and the Universal Copyright Convention (as revised on July 24, 1971). + These rights and subject matter take effect in the relevant + jurisdiction in which the License terms are sought to be enforced + according to the corresponding provisions of the implementation of + those treaty provisions in the applicable national law. If the + standard suite of rights granted under applicable copyright law + includes additional rights not granted under this License, such + additional rights are deemed to be included in the License; this + License is not intended to restrict the license of any rights under + applicable law. + + +Creative Commons Notice + + Creative Commons is not a party to this License, and makes no warranty + whatsoever in connection with the Work. Creative Commons will not be + liable to You or any party on any legal theory for any damages + whatsoever, including without limitation any general, special, + incidental or consequential damages arising in connection to this + license. Notwithstanding the foregoing two (2) sentences, if Creative + Commons has expressly identified itself as the Licensor hereunder, it + shall have all rights and obligations of Licensor. + + Except for the limited purpose of indicating to the public that the + Work is licensed under the CCPL, Creative Commons does not authorize + the use by either party of the trademark "Creative Commons" or any + related trademark or logo of Creative Commons without the prior + written consent of Creative Commons. Any permitted use will be in + compliance with Creative Commons' then-current trademark usage + guidelines, as may be published on its website or otherwise made + available upon request from time to time. For the avoidance of doubt, + this trademark restriction does not form part of this License. + + Creative Commons may be contacted at https://creativecommons.org/. diff --git a/LICENSE-GPL3 b/LICENSE-GPLv3.txt similarity index 100% rename from LICENSE-GPL3 rename to LICENSE-GPLv3.txt diff --git a/README.md b/README.md index abac21f624f0..80f166648aa1 100644 --- a/README.md +++ b/README.md @@ -1,37 +1,85 @@ -## CM-SS13 codebase - - [![forinfinityandbyond](https://user-images.githubusercontent.com/5211576/29499758-4efff304-85e6-11e7-8267-62919c3688a9.gif)](https://www.reddit.com/r/SS13/comments/5oplxp/what_is_the_main_problem_with_byond_as_an_engine/dclbu1a) - -[![Build Status](https://github.com/cmss13-devs/cmss13/workflows/CI%20Suite/badge.svg)](https://github.com/cmss13-devs/cmss13/actions?query=workflow%3A%22CI+Suite%22) -* **Website:** https://forum.cm-ss13.com/ -* **Code:** https://github.com/cmss13-devs/cmss13 -* **Wiki:** https://cm-ss13.com/wiki/Main_Page - -This is the codebase for the CM-SS13 flavoured fork of SpaceStation 13 - -Space Station 13 is a paranoia-laden round-based roleplaying game set against the backdrop of a nonsensical, metal death trap masquerading as a space station, with charming spritework designed to represent the sci-fi setting and its dangerous undertones. Have fun, and survive! CM-SS13 has wildly adapted this idea into a strategic roleplay-based team deathmatch game. - -## :exclamation: How to compile :exclamation: - -On **2022-04-06** we have changed the way to compile the codebase. - -**The quick way**. Find `bin/server.cmd` in this folder and double click it to automatically build and host the server on port 1337. - -**The long way**. Find `bin/build.cmd` in this folder, and double click it to initiate the build. It consists of multiple steps and might take around 1-5 minutes to compile. If it closes, it means it has finished its job. You can then set up the server normally by opening `colonialmarines.dmb` in DreamDaemon. - -**Building colonialmarines in DreamMaker directly is now deprecated and might produce errors**, such as `'tgui.bundle.js': cannot find file`. - -**[How to compile in VSCode and other build options](tools/build/README.md).** - -## Contributors -[Guides for Contributors](.github/CONTRIBUTING.md) - -[Setting up a Development Environment](https://cm-ss13.com/wiki/Guide_to_Git) - -## LICENSE - -The code for CM-SS13 is licensed under the [GNU Affero General Public License v3](http://www.gnu.org/licenses/agpl.html), which can be found in full in [/LICENSE-AGPL3](/LICENSE-AGPL3). - -Assets including icons and sound are under the [Creative Commons 3.0 BY-SA license](https://creativecommons.org/licenses/by-sa/3.0/) unless otherwise indicated. Authorship for assets including art and sound under the CC BY-SA license is defined as the active development team of CM-SS13 unless stated otherwise (by author of the commit). - -All code is assumed to be licensed under AGPL v3 unless stated otherwise by file header. Commits before 9a001bf520f889b434acd295253a1052420860af are assumed to be licensed under GPLv3 and can be used in closed source repo. +

+ CM-SS13 +

+
+ +

+ + +

+ +

+ + + +

+ +

+ + + + + Discord + + + + + + + Code docs + + + + + + + Website + + + + + + + Game Wiki + + +

+
+ +> [!IMPORTANT] +> CM-SS13 cannot be compiled exclusively using BYOND - **you must use our build tool**. +> Firstly, you need to install [BYOND](https://www.byond.com/download/), and run the `bin/server.cmd` file to start the server. +> You can learn more in our [Installation Guide](tools/build/README.md). **Building colonialmarines in DreamMaker directly is now deprecated and will cause errors.** + +CM-SS13 is a game based on [Space Station 13](https://spacestation13.com), made in [BYOND](https://www.byond.com). CM-SS13 has wildly adapted the SS13 model into a strategic roleplay-based team deathmatch game. + +# Useful Links + +- ## [Setting up a Development Environment](https://cm-ss13.com/wiki/Guide_to_Git) +> [!TIP] +> Want to contribute for the first time but unsure where to start? Take a look at our community maintained [Guide to Contributing](https://cm-ss13.com/wiki/Contributing_to_the_Game)! + +This guide will get you set up with a Visual Studio Code development environment, complete with BYOND debugger, which will allow you to contribute back to this repository. + +- ## [Contributing Rules](.github/CONTRIBUTING.md) +This is our canonical, maintainer-maintained contributing guide, which contains information on our maintainer team structure and pull request rules. + +- ## [Code Standards](.github/guides/STANDARDS.md) +Our standards documents details how to structure your code to comply with CM-SS13 code standards, and provides some information on DreamMaker quirks. + +- ## [Code Style](.github/guides/STYLES.md) +The styles document tells you how to style your code to match the rest of the code in our codebase. + +- ## [tgui README](tgui/README.md) +All new interfaces in CM must be created using tgui - this document will help get you set up for tgui development. + +# Licenses + +### AGPLv3 license +> The code for CM-SS13 is licensed under the [GNU Affero General Public License v3](http://www.gnu.org/licenses/agpl.html). All code is assumed to be licensed under AGPL v3 unless stated otherwise by file header, or this document. + +### Creative Commons 3.0 BY-SA +> Assets including icons and sound are under the [Creative Commons 3.0 BY-SA license](https://creativecommons.org/licenses/by-sa/3.0/) unless otherwise indicated. Authorship for assets including art and sound under the CC BY-SA license is defined as the active development team of CM-SS13 unless stated otherwise (by author of the commit). + +### GPLv3 license +> Commits before [9a001bf520f889b434acd295253a1052420860af on Mon, 14 Sep 2020 09:13:32 +0000](https://github.com/cmss13-devs/cmss13/commit/9a001bf520f889b434acd295253a1052420860af) are assumed to be licensed under [GNU General Public License v3](https://www.gnu.org/licenses/gpl-3.0.html) and can be used in closed source repositories. diff --git a/bin/tgfont.cmd b/bin/tgfont.cmd new file mode 100644 index 000000000000..b768c81d653a --- /dev/null +++ b/bin/tgfont.cmd @@ -0,0 +1,2 @@ +@echo off +call "%~dp0\..\tools\build\build.bat" --wait-on-error tg-font %* diff --git a/code/__DEFINES/ARES.dm b/code/__DEFINES/ARES.dm index a1b82af25821..55aa68f97309 100644 --- a/code/__DEFINES/ARES.dm +++ b/code/__DEFINES/ARES.dm @@ -1,21 +1,22 @@ +#define ARES_ACCESS_LOGOUT 0 /// Generic access for 1:1 conversations with ARES and unrestricted commands. -#define ARES_ACCESS_BASIC 0 +#define ARES_ACCESS_BASIC 1 /// Secure Access, can read ARES Announcements and Bioscans. -#define ARES_ACCESS_COMMAND 1 -#define ARES_ACCESS_JOE 2 +#define ARES_ACCESS_COMMAND 2 +#define ARES_ACCESS_JOE 3 /// CL, can read Apollo Log and also Delete Announcements. -#define ARES_ACCESS_CORPORATE 3 +#define ARES_ACCESS_CORPORATE 4 /// Senior Command, can Delete Bioscans. -#define ARES_ACCESS_SENIOR 4 +#define ARES_ACCESS_SENIOR 5 /// Synth, CE & Commanding Officer, can read the access log. -#define ARES_ACCESS_CE 5 -#define ARES_ACCESS_SYNTH 6 -#define ARES_ACCESS_CO 7 +#define ARES_ACCESS_CE 6 +#define ARES_ACCESS_SYNTH 7 +#define ARES_ACCESS_CO 8 /// High Command, can read the deletion log. -#define ARES_ACCESS_HIGH 8 -#define ARES_ACCESS_WY_COMMAND 9 -/// Debugging. Allows me to view everything without using a high command rank. Unlikely to stay in a full merge. -#define ARES_ACCESS_DEBUG 10 +#define ARES_ACCESS_HIGH 9 +#define ARES_ACCESS_WY_COMMAND 10 +/// Debugging. Allows me to view everything without using a high command rank. +#define ARES_ACCESS_DEBUG 11 #define ARES_RECORD_ANNOUNCE "Announcement Record" #define ARES_RECORD_ANTIAIR "AntiAir Control Log" @@ -27,6 +28,7 @@ #define ARES_RECORD_MAINTENANCE "Maintenance Ticket" #define ARES_RECORD_ACCESS "Access Ticket" #define ARES_RECORD_FLIGHT "Flight Record" +#define ARES_RECORD_TECH "Tech Control Record" /// Not by ARES logged through marine_announcement() #define ARES_LOG_NONE 0 @@ -67,6 +69,16 @@ #define TICKET_OPEN "OPEN" #define TICKET_CLOSED "CLOSED" +// Priority status changes. +/// Upgraded to Priority +#define TICKET_PRIORITY "priority" +/// Downgraded from Priority +#define TICKET_NON_PRIORITY "non-priority" + /// Cooldowns #define COOLDOWN_ARES_SENSOR 60 SECONDS #define COOLDOWN_ARES_ACCESS_CONTROL 20 SECONDS +#define COOLDOWN_ARES_VENT 60 SECONDS + +/// Time until someone can respawn as Working Joe +#define JOE_JOIN_DEAD_TIME (15 MINUTES) diff --git a/code/__DEFINES/__game.dm b/code/__DEFINES/__game.dm index 765603df629c..e667ccf6db3f 100644 --- a/code/__DEFINES/__game.dm +++ b/code/__DEFINES/__game.dm @@ -1,9 +1,3 @@ -#define RANGE_TURFS(RADIUS, CENTER) \ -block( \ - locate(max(CENTER.x-(RADIUS),1), max(CENTER.y-(RADIUS),1), CENTER.z), \ - locate(min(CENTER.x+(RADIUS),world.maxx), min(CENTER.y+(RADIUS),world.maxy), CENTER.z) \ -) - //Admin perms are in global.dm. /// To make it even more clear that something is a bitfield. @@ -84,6 +78,8 @@ block( \ #define SEE_INVISIBLE_LEVEL_TWO 45 //Used by some other stuff in code. It's really poorly organized. #define INVISIBILITY_LEVEL_TWO 45 //Used by some other stuff in code. It's really poorly organized. +#define HIDE_INVISIBLE_OBSERVER 59 // define for when we want to hide all observer mobs. + #define INVISIBILITY_OBSERVER 60 #define SEE_INVISIBLE_OBSERVER 60 @@ -108,6 +104,8 @@ block( \ #define SOUND_ADMIN_MEME (1<<6) #define SOUND_ADMIN_ATMOSPHERIC (1<<7) #define SOUND_ARES_MESSAGE (1<<8) +#define SOUND_OBSERVER_ANNOUNCEMENTS (1<<9) +#define SOUND_FAX_MACHINE (1<<10) //toggles_chat #define CHAT_OOC (1<<0) @@ -124,6 +122,7 @@ block( \ #define CHAT_FFATTACKLOGS (1<<11) #define CHAT_GHOSTHIVEMIND (1<<12) #define CHAT_NICHELOGS (1<<13) +#define CHAT_LISTENINGBUG (1<<14) //toggles_ghost #define GHOST_HEALTH_SCAN (1<<0) @@ -151,6 +150,7 @@ block( \ //toggles_admin /// Splits admin tabs in Statpanel #define SPLIT_ADMIN_TABS (1<<0) +#define ADMIN_STEALTHMODE (1<<1) //================================================= @@ -160,7 +160,7 @@ block( \ #define TOGGLES_LANGCHAT_DEFAULT (LANGCHAT_SEE_EMOTES) -#define TOGGLES_SOUND_DEFAULT (SOUND_ADMINHELP|SOUND_MIDI|SOUND_AMBIENCE|SOUND_LOBBY|SOUND_INTERNET|SOUND_ADMIN_MEME|SOUND_ADMIN_ATMOSPHERIC) +#define TOGGLES_SOUND_DEFAULT (SOUND_ADMINHELP|SOUND_MIDI|SOUND_AMBIENCE|SOUND_LOBBY|SOUND_INTERNET|SOUND_ADMIN_MEME|SOUND_ADMIN_ATMOSPHERIC|SOUND_OBSERVER_ANNOUNCEMENTS|SOUND_FAX_MACHINE) #define TOGGLES_FLASHING_DEFAULT (FLASH_ROUNDSTART|FLASH_ROUNDEND|FLASH_CORPSEREVIVE|FLASH_ADMINPM|FLASH_UNNEST) @@ -281,7 +281,7 @@ block( \ // Helpers /// Only use the CEILING_PROTECTION_TIER_X defines for `protection_level` -#define CEILING_IS_PROTECTED(ceiling, protection_level) (ceiling >= protection_level) +#define CEILING_IS_PROTECTED(ceiling, protection_level) ((ceiling) >= (protection_level)) // Default font settings #define FONT_SIZE "5pt" @@ -377,6 +377,7 @@ block( \ #define WALL_DEVWALL "devwall" #define WALL_DEVWALL_R "devwall_r" #define WALL_HUNTERSHIP "metal"//DMI specific name +#define WALL_AICORE "aiwall" //Defines for dropship weapon gimbals #define GIMBAL_LEFT -1 @@ -391,6 +392,7 @@ block( \ #define FIRE_MISSION_WEAPON_REMOVED 8 #define FIRE_MISSION_WEAPON_UNUSABLE 16 #define FIRE_MISSION_WEAPON_OUT_OF_AMMO 32 +#define FIRE_MISSION_BAD_DIRECTION 64 #define FIRE_MISSION_NOT_EXECUTABLE -1 //Defines for firemission state @@ -533,7 +535,7 @@ block( \ /// `amount` - The number to get per time /// `time` - The time period in which to gain this amount /// To be used with delta_time. Multiplied by 10 to convert from deciseconds to seconds -#define AMOUNT_PER_TIME(amount, time) ((amount / (time))*10) +#define AMOUNT_PER_TIME(amount, time) (((amount) / (time))*10) // Local message mode. Used to decide wheter message should be dispatched on the radio. #define MESSAGE_MODE_LOCAL 1 diff --git a/code/__DEFINES/__spacemandmm.dm b/code/__DEFINES/__spacemandmm.dm index b62bbee4259a..9a044949db3e 100644 --- a/code/__DEFINES/__spacemandmm.dm +++ b/code/__DEFINES/__spacemandmm.dm @@ -40,5 +40,5 @@ /world/Del() var/debug_server = world.GetConfig("env", "AUXTOOLS_DEBUG_DLL") if (debug_server) - LIBCALL(debug_server, "auxtools_shutdown")() + call_ext(debug_server, "auxtools_shutdown")() . = ..() diff --git a/code/__DEFINES/_macros.dm b/code/__DEFINES/_macros.dm index 31f4b2aca084..07c3eb664e61 100644 --- a/code/__DEFINES/_macros.dm +++ b/code/__DEFINES/_macros.dm @@ -8,17 +8,8 @@ #define subtypesof(A) (typesof(A) - A) -#ifdef EXPERIMENT_515_DONT_CACHE_REF /// Takes a datum as input, returns its ref string #define text_ref(datum) ref(datum) -#else -/// Takes a datum as input, returns its ref string, or a cached version of it -/// This allows us to cache \ref creation, which ensures it'll only ever happen once per datum, saving string tree time -/// It is slightly less optimal then a []'d datum, but the cost is massively outweighed by the potential savings -/// It will only work for datums mind, for datum reasons -/// : because of the embedded typecheck -#define text_ref(datum) (isdatum(datum) ? (datum:cached_ref ||= "\ref[datum]") : ("\ref[datum]")) -#endif #define addToListNoDupe(L, index) if(L) L[index] = null; else L = list(index) diff --git a/code/__DEFINES/_math.dm b/code/__DEFINES/_math.dm index 7f19c95b2bcf..0f471ec70bad 100644 --- a/code/__DEFINES/_math.dm +++ b/code/__DEFINES/_math.dm @@ -9,43 +9,22 @@ #define CARDINAL_DIRS list(1,2,4,8) #define CARDINAL_ALL_DIRS list(1,2,4,5,6,8,9,10) -//some colors -#define COLOR_RED "#FF0000" -#define COLOR_GREEN "#00FF00" -#define COLOR_BLUE "#0000FF" -#define COLOR_CYAN "#00FFFF" -#define COLOR_PINK "#FF00FF" -#define COLOR_YELLOW "#FFFF00" -#define COLOR_ORANGE "#FF9900" -#define COLOR_WHITE "#FFFFFF" -#define COLOR_BLACK "#000000" -#define COLOR_OIL "#030303" - -//Grass Colors -#define COLOR_G_ICE "#C7EDDE" //faded cyan -#define COLOR_G_DES "#FF7C1C" //bright orange -#define COLOR_G_JUNG "#64AA6E" //faded green - #define LEFT 1 #define RIGHT 2 -#define CEILING(x, y) ( -round(-(x) / (y)) * (y) ) +#define CEILING(x, y) ( ceil((x) / (y)) * (y) ) // round() acts like floor(x, 1) by default but can't handle other values -#define FLOOR(x, y) ( round((x) / (y)) * (y) ) - -// Real modulus that handles decimals -#define MODULUS(x, y) ( (x) - (y) * round((x) / (y)) ) +#define FLOOR(x, y) ( floor((x) / (y)) * (y) ) // Returns true if val is from min to max, inclusive. -#define ISINRANGE(val, min, max) (min <= val && val <= max) +#define ISINRANGE(val, min, max) ((min) <= (val) && (val) <= (max)) // Same as above, exclusive. -#define ISINRANGE_EX(val, min, max) (min < val && val < max) - -// Will filter out extra rotations and negative rotations -// E.g: 540 becomes 180. -180 becomes 180. -#define SIMPLIFY_DEGREES(degrees) (MODULUS((degrees), 360)) +#define ISINRANGE_EX(val, min, max) ((min) < (val) && (val) < (max)) /// Gets the sign of x, returns -1 if negative, 0 if 0, 1 if positive #define SIGN(x) ( ((x) > 0) - ((x) < 0) ) + +/// Performs a linear interpolation between a and b. Note that amount=0 returns a, amount=1 returns b, and amount=0.5 returns the mean of a and b. +#define LERP(a, b, amount) ( (amount) ? ((a) + ((b) - (a)) * (amount)) : (a) ) diff --git a/code/__DEFINES/access.dm b/code/__DEFINES/access.dm index 97e4b0dbd1e8..71b2b6f4b6ac 100644 --- a/code/__DEFINES/access.dm +++ b/code/__DEFINES/access.dm @@ -88,7 +88,7 @@ most of them are tied into map-placed objects. This should be reworked in the fu #define ACCESS_WY_ARMORY 212 ///Secret research or other projects with highly restricted access #define ACCESS_WY_SECRETS 213 - +#define ACCESS_WY_DATABASE 214 #define ACCESS_WY_LEADERSHIP 215 ///Senior leadership, the highest ranks #define ACCESS_WY_SENIOR_LEAD 216 @@ -152,6 +152,8 @@ most of them are tied into map-placed objects. This should be reworked in the fu /// Ancients only #define ACCESS_YAUTJA_ANCIENT 392 +/// Anything in a tutorial sequence that shouldn't be accessed +#define ACCESS_TUTORIAL_LOCKED 998 ///Temporary, just so I can flag places I need to change #define ACCESS_COME_BACK_TO_ME 999 diff --git a/code/__DEFINES/admin.dm b/code/__DEFINES/admin.dm index 31103fee93ee..29895088200c 100644 --- a/code/__DEFINES/admin.dm +++ b/code/__DEFINES/admin.dm @@ -17,12 +17,10 @@ #define NOTE_ADMIN 1 ///This note is used by staff for positive record keeping. #define NOTE_MERIT 2 -///These notes are used by respective whitelist councils for record keeping. -#define NOTE_COMMANDER 3 -#define NOTE_SYNTHETIC 4 -#define NOTE_YAUTJA 5 +///These notes are automatically applied by the Whitelist Panel. +#define NOTE_WHITELIST 3 ///Note categories in text form, in order of their numerical #defines. -GLOBAL_LIST_INIT(note_categories, list("Admin", "Merit", "Commanding Officer", "Synthetic", "Yautja")) +GLOBAL_LIST_INIT(note_categories, list("Admin", "Merit", "Whitelist")) #define ADMIN_FLW(user) "(FLW)" #define ADMIN_PP(user) "(PP)" @@ -50,6 +48,7 @@ GLOBAL_LIST_INIT(note_categories, list("Admin", "Merit", "Commanding Officer", " #define OBSERVER_JMP(observer, atom) atom ? "(JMP)" : "" #define ARES_MARK(user) "(MARK)" #define ARES_REPLY(user, ref) "(RPLY)" +#define ADMIN_VIEW_BUG_REPORT(datum) "VIEW REPORT" /atom/proc/Admin_Coordinates_Readable(area_name, admin_jump_ref) var/turf/T = get_turf(src) diff --git a/code/__DEFINES/alerts.dm b/code/__DEFINES/alerts.dm new file mode 100644 index 000000000000..b4fc5e04c9c7 --- /dev/null +++ b/code/__DEFINES/alerts.dm @@ -0,0 +1,7 @@ +#define ALERT_BUCKLED "buckled" +#define ALERT_HANDCUFFED "handcuffed" +#define ALERT_LEGCUFFED "legcuffed" +#define ALERT_FLOORED "floored" +#define ALERT_INCAPACITATED "incapacitated" +#define ALERT_KNOCKEDOUT "knockedout" +#define ALERT_IMMOBILIZED "immobilized" diff --git a/code/__DEFINES/autofire.dm b/code/__DEFINES/autofire.dm index 934cdcd7dc79..f276f487b666 100644 --- a/code/__DEFINES/autofire.dm +++ b/code/__DEFINES/autofire.dm @@ -1,4 +1,4 @@ // Controls how many buckets should be kept, each representing a tick. Max is ten seconds, to have better perf. #define AUTOFIRE_BUCKET_LEN (world.fps * 10) /// Helper for getting the correct bucket -#define AUTOFIRE_BUCKET_POS(next_fire) (((round((next_fire - SSautomatedfire.head_offset) / world.tick_lag) + 1) % AUTOFIRE_BUCKET_LEN) || AUTOFIRE_BUCKET_LEN) +#define AUTOFIRE_BUCKET_POS(next_fire) (((floor((next_fire - SSautomatedfire.head_offset) / world.tick_lag) + 1) % AUTOFIRE_BUCKET_LEN) || AUTOFIRE_BUCKET_LEN) diff --git a/code/__DEFINES/camera.dm b/code/__DEFINES/camera.dm index 9d797b964d61..f50d7d8e2c72 100644 --- a/code/__DEFINES/camera.dm +++ b/code/__DEFINES/camera.dm @@ -16,6 +16,7 @@ #define CAMERA_NET_VEHICLE "Vehicle" #define CAMERA_NET_LANDING_ZONES "Landing Zones" #define CAMERA_NET_LASER_TARGETS "Laser Targets" +#define CAMERA_NET_CORRESPONDENT "Combat Correspondent Live" #define CAMERA_NET_POWER_ALARMS "Power Alarms" #define CAMERA_NET_ATMOSPHERE_ALARMS "Atmosphere Alarms" diff --git a/code/__DEFINES/chat.dm b/code/__DEFINES/chat.dm index 85966e4032e2..1edc2bd7b5a1 100644 --- a/code/__DEFINES/chat.dm +++ b/code/__DEFINES/chat.dm @@ -6,6 +6,7 @@ #define MESSAGE_TYPE_SYSTEM "system" #define MESSAGE_TYPE_LOCALCHAT "localchat" #define MESSAGE_TYPE_RADIO "radio" +#define MESSAGE_TYPE_HIVEMIND "hivemind" #define MESSAGE_TYPE_INFO "info" #define MESSAGE_TYPE_WARNING "warning" #define MESSAGE_TYPE_DEADCHAT "deadchat" @@ -20,6 +21,7 @@ #define MESSAGE_TYPE_ADMINLOG "adminlog" #define MESSAGE_TYPE_ATTACKLOG "attacklog" #define MESSAGE_TYPE_DEBUG "debug" +#define MESSAGE_TYPE_NICHE "niche" /// Adds a generic box around whatever message you're sending in chat. Really makes things stand out. #define examine_block(str) ("
" + str + "
") diff --git a/code/__DEFINES/chemistry.dm b/code/__DEFINES/chemistry.dm index 078ccbdc2d94..35e040654881 100644 --- a/code/__DEFINES/chemistry.dm +++ b/code/__DEFINES/chemistry.dm @@ -187,6 +187,7 @@ #define PROPERTY_NEUROSHIELDING "neuroshielding" #define PROPERTY_ANTIADDICTIVE "anti-addictive" #define PROPERTY_ADDICTIVE "addictive" +#define PROPERTY_ENCEPHALOPHRASIVE "encephalophrasive" //Legendary, only in gen_tier 3+ #define PROPERTY_HYPERGENETIC "hypergenetic" #define PROPERTY_BOOSTING "boosting" diff --git a/code/__DEFINES/client_prefs.dm b/code/__DEFINES/client_prefs.dm index 5337f64d9e46..56775bea8888 100644 --- a/code/__DEFINES/client_prefs.dm +++ b/code/__DEFINES/client_prefs.dm @@ -24,6 +24,7 @@ #define TOGGLE_START_JOIN_CURRENT_SLOT (1<<16) // Whether joining at roundstart ignores assigned character slot for the job and uses currently selected slot. #define TOGGLE_LATE_JOIN_CURRENT_SLOT (1<<17) //Whether joining during the round ignores assigned character slot for the job and uses currently selected slot. #define TOGGLE_ABILITY_DEACTIVATION_OFF (1<<18) // This toggles whether selecting the same ability again can toggle it off +#define TOGGLE_AMMO_DISPLAY_TYPE (1<<19)/// limit how often the ammo is displayed when using semi-automatic fire #define JOB_SLOT_RANDOMISED_SLOT -1 #define JOB_SLOT_CURRENT_SLOT 0 diff --git a/code/__DEFINES/colours.dm b/code/__DEFINES/colours.dm index 5fa106715f39..e9a03a6382da 100644 --- a/code/__DEFINES/colours.dm +++ b/code/__DEFINES/colours.dm @@ -1,214 +1,152 @@ // tg port thing -//different types of atom colourations -/// Only used by rare effects like greentext colouring mobs and when admins varedit color -#define ADMIN_COLOUR_PRIORITY 1 +//different types of atom colorations +/// Only used by rare effects like greentext coloring mobs and when admins varedit color +#define ADMIN_COLOR_PRIORITY 1 /// e.g. purple effect of the revenant on a mob, black effect when mob electrocuted -#define TEMPORARY_COLOUR_PRIORITY 2 -/// Colour splashed onto an atom (e.g. paint on turf) -#define WASHABLE_COLOUR_PRIORITY 3 -/// Colour inherent to the atom (e.g. blob color) -#define FIXED_COLOUR_PRIORITY 4 +#define TEMPORARY_COLOR_PRIORITY 2 +/// Color splashed onto an atom (e.g. paint on turf) +#define WASHABLE_COLOR_PRIORITY 3 +/// Color inherent to the atom (e.g. blob color) +#define FIXED_COLOR_PRIORITY 4 ///how many color priority levels there are. -#define COLOUR_PRIORITY_AMOUNT 4 - -#define COLOUR_DARKMODE_BACKGROUND "#202020" -#define COLOUR_DARKMODE_DARKBACKGROUND "#171717" -#define COLOUR_DARKMODE_TEXT "#a4bad6" - -#define COLOUR_WHITE "#FFFFFF" -#define COLOUR_VERY_LIGHT_GRAY "#EEEEEE" -#define COLOUR_SILVER "#C0C0C0" -#define COLOUR_GRAY "#808080" -#define COLOUR_FLOORTILE_GRAY "#8D8B8B" -#define COLOUR_DARK "#454545" -#define COLOUR_ALMOST_BLACK "#333333" -#define COLOUR_BLACK "#000000" -#define COLOUR_HALF_TRANSPARENT_BLACK "#0000007A" - -#define COLOUR_RED "#FF0000" -#define COLOUR_MOSTLY_PURE_RED "#FF3300" -#define COLOUR_DARK_RED "#A50824" -#define COLOUR_RED_LIGHT "#FF3333" -#define COLOUR_MAROON "#800000" -#define COLOUR_VIVID_RED "#FF3232" -#define COLOUR_LIGHT_GRAYISH_RED "#E4C7C5" -#define COLOUR_SOFT_RED "#FA8282" -#define COLOUR_CULT_RED "#960000" -#define COLOUR_BUBBLEGUM_RED "#950A0A" - -#define COLOUR_YELLOW "#FFFF00" -#define COLOUR_VIVID_YELLOW "#FBFF23" -#define COLOUR_VERY_SOFT_YELLOW "#FAE48E" - -#define COLOUR_OLIVE "#808000" -#define COLOUR_VIBRANT_LIME "#00FF00" -#define COLOUR_LIME "#32CD32" -#define COLOUR_DARK_LIME "#00aa00" -#define COLOUR_VERY_PALE_LIME_GREEN "#DDFFD3" -#define COLOUR_VERY_DARK_LIME_GREEN "#003300" -#define COLOUR_GREEN "#008000" -#define COLOUR_DARK_MODERATE_LIME_GREEN "#44964A" - -#define COLOUR_CYAN "#00FFFF" -#define COLOUR_DARK_CYAN "#00A2FF" -#define COLOUR_TEAL "#008080" -#define COLOUR_BLUE "#0000FF" -#define COLOUR_STRONG_BLUE "#1919c8" -#define COLOUR_BRIGHT_BLUE "#2CB2E8" -#define COLOUR_MODERATE_BLUE "#555CC2" -#define COLOUR_AMETHYST "#822BFF" -#define COLOUR_BLUE_LIGHT "#33CCFF" -#define COLOUR_NAVY "#000080" -#define COLOUR_BLUE_GRAY "#75A2BB" - -#define COLOUR_PINK "#FFC0CB" -#define COLOUR_LIGHT_PINK "#ff3cc8" -#define COLOUR_MOSTLY_PURE_PINK "#E4005B" -#define COLOUR_BLUSH_PINK "#DE5D83" -#define COLOUR_MAGENTA "#FF00FF" -#define COLOUR_STRONG_MAGENTA "#B800B8" -#define COLOUR_PURPLE "#800080" -#define COLOUR_VIOLET "#B900F7" -#define COLOUR_STRONG_VIOLET "#6927c5" - -#define COLOUR_ORANGE "#FF9900" -#define COLOUR_MOSTLY_PURE_ORANGE "#ff8000" -#define COLOUR_TAN_ORANGE "#FF7B00" -#define COLOUR_BRIGHT_ORANGE "#E2853D" -#define COLOUR_LIGHT_ORANGE "#ffc44d" -#define COLOUR_PALE_ORANGE "#FFBE9D" -#define COLOUR_BEIGE "#CEB689" -#define COLOUR_DARK_ORANGE "#C3630C" -#define COLOUR_DARK_MODERATE_ORANGE "#8B633B" - -#define COLOUR_BROWN "#BA9F6D" -#define COLOUR_DARK_BROWN "#997C4F" -#define COLOUR_ORANGE_BROWN "#a9734f" - -//Colour defines used by the soapstone (based on readability against grey tiles) -#define COLOUR_SOAPSTONE_PLASTIC "#a19d94" -#define COLOUR_SOAPSTONE_IRON "#b2b2b2" -#define COLOUR_SOAPSTONE_BRONZE "#FE8001" -#define COLOUR_SOAPSTONE_SILVER "#FFFFFF" -#define COLOUR_SOAPSTONE_GOLD "#FFD900" -#define COLOUR_SOAPSTONE_DIAMOND "#00ffee" - -#define COLOUR_GREEN_GRAY "#99BB76" -#define COLOUR_RED_GRAY "#B4696A" -#define COLOUR_PALE_BLUE_GRAY "#98C5DF" -#define COLOUR_PALE_GREEN_GRAY "#B7D993" -#define COLOUR_PALE_RED_GRAY "#D59998" -#define COLOUR_PALE_PURPLE_GRAY "#CBB1CA" -#define COLOUR_PURPLE_GRAY "#AE8CA8" - -//Colour defines used by the assembly detailer. -#define COLOUR_ASSEMBLY_BLACK "#545454" -#define COLOUR_ASSEMBLY_BGRAY "#9497AB" -#define COLOUR_ASSEMBLY_WHITE "#E2E2E2" -#define COLOUR_ASSEMBLY_RED "#CC4242" -#define COLOUR_ASSEMBLY_ORANGE "#E39751" -#define COLOUR_ASSEMBLY_BEIGE "#AF9366" -#define COLOUR_ASSEMBLY_BROWN "#97670E" -#define COLOUR_ASSEMBLY_GOLD "#AA9100" -#define COLOUR_ASSEMBLY_YELLOW "#CECA2B" -#define COLOUR_ASSEMBLY_GURKHA "#999875" -#define COLOUR_ASSEMBLY_LGREEN "#789876" -#define COLOUR_ASSEMBLY_GREEN "#44843C" -#define COLOUR_ASSEMBLY_LBLUE "#5D99BE" -#define COLOUR_ASSEMBLY_BLUE "#38559E" -#define COLOUR_ASSEMBLY_PURPLE "#6F6192" - -///Colours for xenobiology vatgrowing -#define COLOUR_SAMPLE_YELLOW "#c0b823" -#define COLOUR_SAMPLE_PURPLE "#342941" -#define COLOUR_SAMPLE_GREEN "#98b944" -#define COLOUR_SAMPLE_BROWN "#91542d" -#define COLOUR_SAMPLE_GRAY "#5e5856" - -///Main colours for UI themes -#define COLOUR_THEME_MIDNIGHT "#6086A0" -#define COLOUR_THEME_PLASMAFIRE "#FFB200" -#define COLOUR_THEME_RETRO "#24CA00" -#define COLOUR_THEME_SLIMECORE "#4FB259" -#define COLOUR_THEME_OPERATIVE "#B8221F" -#define COLOUR_THEME_GLASS "#75A4C4" -#define COLOUR_THEME_CLOCKWORK "#CFBA47" - -///Colours for eigenstates -#define COLOUR_PERIWINKLEE "#9999FF" +#define COLOR_PRIORITY_AMOUNT 4 + +// BLACK AND WHITE COLOR DEFINE. + +/// White rgb(255, 255, 255) +#define COLOR_WHITE "#FFFFFF" +/// Black rgb(0, 0, 0) +#define COLOR_BLACK "#000000" + +// THE THREE PRIMARIES COLORS DEFINES. + +/// Red rgb(255, 0, 0) +#define COLOR_RED "#FF0000" +/// Green rgb(0, 255, 0) +#define COLOR_GREEN "#00FF00" +/// Blue rgb(0, 0, 255) +#define COLOR_BLUE "#0000FF" + +//mix of two full primary colors + +/// Cyan rgb(0, 255, 255) B + G +#define COLOR_CYAN "#00FFFF" +/// Magenta rgb(255, 0, 255) R+B +#define COLOR_MAGENTA "#FF00FF" +/// Yellow rgb(255, 255, 0) R+G +#define COLOR_YELLOW "#FFFF00" + +// colors define in use bellow + +/// Olive rgb(128, 128, 0) +#define COLOR_OLIVE "#808000" +/// Silver rgb(192, 192, 192) shade of grey +#define COLOR_SILVER "#C0C0C0" +/// Gray rgb(128, 128, 128) +#define COLOR_GRAY "#808080" + +#define COLOR_FLOORTILE_GRAY "#8D8B8B" + +#define COLOR_HALF_TRANSPARENT_BLACK "#0000007A" + +#define COLOR_DARK_RED "#A50824" + +/// Maroon rgb(128, 0, 0) shade of red +#define COLOR_MAROON "#800000" + +#define COLOR_VIVID_RED "#FF3232" +#define COLOR_LIGHT_GRAYISH_RED "#E4C7C5" +#define COLOR_SOFT_RED "#FA8282" + +#define COLOR_VERY_SOFT_YELLOW "#FAE48E" + +///light green rgb( 0, 128, 0) +#define COLOR_LIGHT_GREEN "#008000" +#define COLOR_DARK_MODERATE_LIME_GREEN "#44964A" + +#define COLOR_TEAL "#008080" + +#define COLOR_MODERATE_BLUE "#555CC2" +/// Purple rgb( 128, 0, 128) +#define COLOR_PURPLE "#800080" +#define COLOR_STRONG_VIOLET "#6927c5" + +#define LIGHT_BEIGE "#CEB689" +#define COLOR_DARK_MODERATE_ORANGE "#8B633B" + +#define COLOR_BROWN "#BA9F6D" +#define COLOR_DARK_BROWN "#997C4F" + /** - * Some defines to generalise colours used in lighting. + * Some defines to generalise Colors used in lighting. * - * Important note: colours can end up significantly different from the basic html picture, especially when saturated + * Important note: Colors can end up significantly different from the basic html picture, especially when saturated */ -/// Full white. rgb(255, 255, 255) -#define LIGHT_COLOR_WHITE "#FFFFFF" /// Bright but quickly dissipating neon green. rgb(100, 200, 100) -#define LIGHT_COLOUR_GREEN "#64C864" -/// Electric green. rgb(0, 255, 0) -#define LIGHT_COLOUR_ELECTRIC_GREEN "#00FF00" +#define LIGHT_COLOR_GREEN "#64C864" /// Cold, diluted blue. rgb(100, 150, 250) -#define LIGHT_COLOUR_BLUE "#6496FA" +#define LIGHT_COLOR_BLUE "#6496FA" /// Light blueish green. rgb(125, 225, 175) -#define LIGHT_COLOUR_BLUEGREEN "#7DE1AF" +#define LIGHT_COLOR_BLUEGREEN "#7DE1AF" /// Diluted cyan. rgb(125, 225, 225) -#define LIGHT_COLOUR_CYAN "#7DE1E1" -/// Electric cyan rgb(0, 255, 255) -#define LIGHT_COLOUR_ELECTRIC_CYAN "#00FFFF" +#define LIGHT_COLOR_CYAN "#7DE1E1" /// More-saturated cyan. rgb(64, 206, 255) -#define LIGHT_COLOUR_LIGHT_CYAN "#40CEFF" +#define LIGHT_COLOR_LIGHT_CYAN "#40CEFF" /// Saturated blue. rgb(51, 117, 248) -#define LIGHT_COLOUR_DARK_BLUE "#6496FA" +#define LIGHT_COLOR_DARK_BLUE "#3375F8" /// Diluted, mid-warmth pink. rgb(225, 125, 225) -#define LIGHT_COLOUR_PINK "#E17DE1" +#define LIGHT_COLOR_PINK "#E17DE1" /// Dimmed yellow, leaning kaki. rgb(225, 225, 125) -#define LIGHT_COLOUR_YELLOW "#E1E17D" +#define LIGHT_COLOR_YELLOW "#E1E17D" /// Clear brown, mostly dim. rgb(150, 100, 50) -#define LIGHT_COLOUR_BROWN "#966432" +#define LIGHT_COLOR_BROWN "#966432" /// Mostly pure orange. rgb(250, 150, 50) -#define LIGHT_COLOUR_ORANGE "#FA9632" +#define LIGHT_COLOR_ORANGE "#FA9632" /// Light Purple. rgb(149, 44, 244) -#define LIGHT_COLOUR_PURPLE "#952CF4" +#define LIGHT_COLOR_PURPLE "#952CF4" /// Less-saturated light purple. rgb(155, 81, 255) -#define LIGHT_COLOUR_LAVENDER "#9B51FF" +#define LIGHT_COLOR_LAVENDER "#9B51FF" ///slightly desaturated bright yellow. -#define LIGHT_COLOUR_HOLY_MAGIC "#FFF743" +#define LIGHT_COLOR_HOLY_MAGIC "#FFF743" /// deep crimson -#define LIGHT_COLOUR_BLOOD_MAGIC "#D00000" +#define LIGHT_COLOR_BLOOD_MAGIC "#D00000" /* These ones aren't a direct color like the ones above, because nothing would fit */ /// Warm orange color, leaning strongly towards yellow. rgb(250, 160, 25) -#define LIGHT_COLOUR_FIRE "#FAA019" +#define LIGHT_COLOR_FIRE "#FAA019" /// Very warm yellow, leaning slightly towards orange. rgb(196, 138, 24) -#define LIGHT_COLOUR_LAVA "#C48A18" +#define LIGHT_COLOR_LAVA "#C48A18" /// Bright, non-saturated red. Leaning slightly towards pink for visibility. rgb(250, 100, 75) -#define LIGHT_COLOUR_FLARE "#FA644B" +#define LIGHT_COLOR_FLARE "#FA644B" /// Weird color, between yellow and green, very slimy. rgb(175, 200, 75) -#define LIGHT_COLOUR_SLIME_LAMP "#AFC84B" +#define LIGHT_COLOR_SLIME_LAMP "#AFC84B" /// Extremely diluted yellow, close to skin color (for some reason). rgb(250, 225, 175) -#define LIGHT_COLOUR_TUNGSTEN "#FAE1AF" +#define LIGHT_COLOR_TUNGSTEN "#FAE1AF" /// Barely visible cyan-ish hue, as the doctor prescribed. rgb(240, 250, 250) -#define LIGHT_COLOUR_HALOGEN "#F0FAFA" - -//The GAGS greyscale_colours for each department's computer/machine circuits -#define CIRCUIT_COLOUR_GENERIC "#1A7A13" -#define CIRCUIT_COLOUR_COMMAND "#1B4594" -#define CIRCUIT_COLOUR_SECURITY "#9A151E" -#define CIRCUIT_COLOUR_SCIENCE "#BC4A9B" -#define CIRCUIT_COLOUR_SERVICE "#92DCBA" -#define CIRCUIT_COLOUR_MEDICAL "#00CCFF" -#define CIRCUIT_COLOUR_ENGINEERING "#F8D700" -#define CIRCUIT_COLOUR_SUPPLY "#C47749" +#define LIGHT_COLOR_HALOGEN "#F0FAFA" /// The default color for admin say, used as a fallback when the preference is not enabled -#define DEFAULT_ASAY_COLOUR COLOUR_MOSTLY_PURE_RED -#define DEFAULT_HEX_COLOUR_LEN 6 +#define COLOR_MOSTLY_PURE_RED "#FF3300" +#define DEFAULT_ASAY_COLOR COLOR_MOSTLY_PURE_RED + +#define DEFAULT_HEX_COLOR_LEN 6 -// Colour filters +// Color filters /// Icon filter that creates ambient occlusion #define AMBIENT_OCCLUSION filter(type="drop_shadow", x=0, y=-2, size=4, border=4, color="#04080FAA") /// Icon filter that creates gaussian blur #define GAUSSIAN_BLUR(filter_size) filter(type="blur", size=filter_size) + +//some colors coming from _math.dm + +#define COLOR_ORANGE "#FF9900" +#define COLOR_OIL "#030303" + +//Grass Colors coming from _math.dm + +#define COLOR_G_ICE "#C7EDDE" //faded cyan +#define COLOR_G_DES "#FF7C1C" //bright orange +#define COLOR_G_JUNG "#64AA6E" //faded green diff --git a/code/__DEFINES/conflict.dm b/code/__DEFINES/conflict.dm index d69f0891ffa0..a6a7aa53f182 100644 --- a/code/__DEFINES/conflict.dm +++ b/code/__DEFINES/conflict.dm @@ -141,8 +141,8 @@ #define WIELD_DELAY_VERY_SLOW 10 #define WIELD_DELAY_HORRIBLE 12 -///This is how long you must wait after throwing something to throw again -#define THROW_DELAY (0.4 SECONDS) +///This is how long you must wait to throw again after throwing two things +#define THROW_DELAY (1.5 SECONDS) //Explosion level thresholds. Upper bounds #define EXPLOSION_THRESHOLD_VLOW 50 diff --git a/code/__DEFINES/dcs/signals/atom/mob/living/signals_human.dm b/code/__DEFINES/dcs/signals/atom/mob/living/signals_human.dm index 6614272d33e5..2e247cdccc73 100644 --- a/code/__DEFINES/dcs/signals/atom/mob/living/signals_human.dm +++ b/code/__DEFINES/dcs/signals/atom/mob/living/signals_human.dm @@ -67,3 +67,6 @@ #define COMSIG_HUMAN_SURGERY_APPLY_MODIFIERS "human_surgery_apply_modifiers" /// From /mob/living/carbon/human/proc/get_flags_cold_protection() #define COMSIG_HUMAN_COLD_PROTECTION_APPLY_MODIFIERS "human_cold_protection_apply_modifiers" + +/// From /obj/item/proc/dig_out_shrapnel() : () +#define COMSIG_HUMAN_SHRAPNEL_REMOVED "human_shrapnel_removed" diff --git a/code/__DEFINES/dcs/signals/atom/mob/living/signals_living.dm b/code/__DEFINES/dcs/signals/atom/mob/living/signals_living.dm index 56cd4dd8cd8e..cea905dd1011 100644 --- a/code/__DEFINES/dcs/signals/atom/mob/living/signals_living.dm +++ b/code/__DEFINES/dcs/signals/atom/mob/living/signals_living.dm @@ -23,18 +23,25 @@ #define COMSIG_LIVING_SPEAK "living_speak" #define COMPONENT_OVERRIDE_SPEAK (1<<0) -#define COMSIG_LIVING_APPLY_EFFECT "living_apply_effect" -#define COMSIG_LIVING_ADJUST_EFFECT "living_adjust_effect" -#define COMSIG_LIVING_SET_EFFECT "living_set_effect" - #define COMPONENT_CANCEL_EFFECT (1<<0) - /// From /obj/structure/proc/do_climb(var/mob/living/user, mods) #define COMSIG_LIVING_CLIMB_STRUCTURE "climb_over_structure" /// From /mob/living/Collide(): (atom/A) #define COMSIG_LIVING_PRE_COLLIDE "living_pre_collide" #define COMPONENT_LIVING_COLLIDE_HANDLED (1<<0) +/// From /mob/living/proc/do_ghost() : (mob/dead/observer/ghost) +#define COMSIG_LIVING_GHOSTED "living_ghosted" + +/// From /mob/living/carbon/human/attack_hand() : (mob/living/carbon/human/attacked_mob) +#define COMSIG_LIVING_ATTACKHAND_HUMAN "living_attackhand_human" + +/// From /obj/item/reagent_container/hypospray/attack() : (obj/item/reagent_container/hypospray/injector) +#define COMSIG_LIVING_HYPOSPRAY_INJECTED "living_hypospray_injected" + ///from base of mob/living/set_buckled(): (new_buckled) #define COMSIG_LIVING_SET_BUCKLED "living_set_buckled" ///from base of mob/living/set_body_position() #define COMSIG_LIVING_SET_BODY_POSITION "living_set_body_position" + +/// from base of /mob/living/apply_status_effect(): (datum/status_effect/new_effect) +#define COMSIG_LIVING_APPLY_EFFECT "living_apply_effect" diff --git a/code/__DEFINES/dcs/signals/atom/mob/living/signals_xeno.dm b/code/__DEFINES/dcs/signals/atom/mob/living/signals_xeno.dm index e9862be49dd5..ab233e9cf82c 100644 --- a/code/__DEFINES/dcs/signals/atom/mob/living/signals_xeno.dm +++ b/code/__DEFINES/dcs/signals/atom/mob/living/signals_xeno.dm @@ -62,3 +62,22 @@ /// For any additional things that should happen when a xeno's melee_attack_additional_effects_self() proc is called #define COMSIG_XENO_SLASH_ADDITIONAL_EFFECTS_SELF "xeno_slash_additional_effects_self" + +/// From /datum/action/xeno_action/onclick/plant_weeds/use_ability(): (atom/A) +#define COMSIG_XENO_PLANT_RESIN_NODE "xeno_plant_resin_node" + +/// From //mob/living/carbon/xenomorph/proc/emit_pheromones(): (pheromone, emit_cost) +#define COMSIG_XENO_START_EMIT_PHEROMONES "xeno_start_emit_pheromones" + +/// From /obj/effect/alien/resin/special/eggmorph/attack_alien: (mob/living/carbon/xenomorph/M) +#define COMSIG_XENO_TAKE_HUGGER_FROM_MORPHER "xeno_take_hugger_from_morpher" + +/// From /mob/living/carbon/xenomorph/proc/handle_crit() +#define COMSIG_XENO_ENTER_CRIT "xeno_entering_critical" + +/// From /mob/living/carbon/xenomorph/proc/hivemind_talk(): (message) +#define COMSIG_XENO_TRY_HIVEMIND_TALK "xeno_try_hivemind_talk" + #define COMPONENT_OVERRIDE_HIVEMIND_TALK (1<<0) + +/// used in /datum/component/status_effect/cleanse() +#define COMSIG_XENO_DEBUFF_CLEANSE "xeno_debuff_cleanse" diff --git a/code/__DEFINES/dcs/signals/atom/mob/signals_mind.dm b/code/__DEFINES/dcs/signals/atom/mob/signals_mind.dm new file mode 100644 index 000000000000..2cca5fe18c0d --- /dev/null +++ b/code/__DEFINES/dcs/signals/atom/mob/signals_mind.dm @@ -0,0 +1,2 @@ +///from mind/transfer_to. Sent after the mind has been transferred to a different body: (mob/previous_body) +#define COMSIG_MIND_TRANSFERRED "mind_transferred" diff --git a/code/__DEFINES/dcs/signals/atom/mob/signals_mob.dm b/code/__DEFINES/dcs/signals/atom/mob/signals_mob.dm index f4beec321c9e..f4df347c62db 100644 --- a/code/__DEFINES/dcs/signals/atom/mob/signals_mob.dm +++ b/code/__DEFINES/dcs/signals/atom/mob/signals_mob.dm @@ -59,6 +59,9 @@ #define COMSIG_MOB_WEED_SLOWDOWN "mob_weeds_slowdown" #define COMSIG_MOB_TAKE_DAMAGE "mob_take_damage" // TODO: move COMSIG_XENO_TAKE_DAMAGE & COMSIG_HUMAN_TAKE_DAMAGE to this + +///From /mob/living/carbon/human/attack_alien(): (mob/living/carbon/xenomorph/M, dam_bonus) +#define COMSIG_MOB_TACKLED_DOWN "mob_tackled_down" ///called in /client/change_view() #define COMSIG_MOB_CHANGE_VIEW "mob_change_view" #define COMPONENT_OVERRIDE_VIEW (1<<0) @@ -72,11 +75,18 @@ #define COMSIG_MOB_PRE_CLICK "mob_pre_click" #define COMPONENT_INTERRUPT_CLICK (1<<0) -///from base of /mob/Login(): () +/// From base of /mob/Login(), called when a client logs into this mob: () +/// Not to be confused with [COMSIG_MOB_LOGGED_IN] #define COMSIG_MOB_LOGIN "mob_login" -///from base of /mob/Logout(): () +/// From base of /mob/Login(), called after a client logs into this mob: () +/// Not to be confused with [COMSIG_MOB_LOGIN] +#define COMSIG_MOB_LOGGED_IN "mob_logged_in" +/// From base of /mob/Logout(): () #define COMSIG_MOB_LOGOUT "mob_logout" +/// From /mob/proc/change_real_name(): (old_name, new_name) +#define COMSIG_MOB_REAL_NAME_CHANGED "mob_real_name_changed" + //from /mob/proc/on_deafness_gain() #define COMSIG_MOB_DEAFENED "mob_deafened" //from /mob/proc/on_deafness_loss() @@ -95,11 +105,20 @@ #define COMSIG_MOB_MOVE_OR_LOOK "mob_move_or_look" #define COMPONENT_OVERRIDE_MOB_MOVE_OR_LOOK (1<<0) +///from rejuv +#define COMSIG_LIVING_POST_FULLY_HEAL "living_post_fully_heal" + ///from /mob/living/emote(): () #define COMSIG_MOB_EMOTE "mob_emote" #define COMSIG_MOB_EMOTED(emote_key) "mob_emoted_[emote_key]" +#define COMSIG_MOB_TRY_EMOTE "mob_try_emote" + #define COMPONENT_OVERRIDE_EMOTE (1<<0) + +#define COMSIG_MOB_TRY_POINT "mob_try_point" + #define COMPONENT_OVERRIDE_POINT (1<<0) + //from /mob/living/set_stat() #define COMSIG_MOB_STAT_SET_ALIVE "mob_stat_set_alive" //from /mob/living/set_stat() @@ -125,5 +144,44 @@ /// From /obj/item/proc/pickup() : (obj/item/picked_up) #define COMSIG_MOB_PICKUP_ITEM "mob_pickup_item" +/// From /obj/item/proc/attack_self() : (obj/item/used) +#define COMSIG_MOB_ITEM_ATTACK_SELF "mob_item_attack_self" + +/// From /obj/item/proc/dropped() : (obj/item/dropped) +#define COMSIG_MOB_ITEM_DROPPED "mob_item_dropped" + + +/// From /obj/item/reagent_container/food/snacks/proc/on_Consume() : (obj/item/reagent_container/food/snacks/eaten_food) +#define COMSIG_MOB_EATEN_SNACK "mob_eaten_snack" + +/// From /atom/proc/attackby() : (atom/attacked, obj/item/attacked_with) +#define COMSIG_MOB_PARENT_ATTACKBY "mob_parent_attackby" + +/// From /obj/item/weapon/gun/proc/reload_into_chamber() : (obj/item/weapon/gun/empty_gun) +#define COMSIG_MOB_GUN_EMPTY "mob_gun_empty" + +/// From /obj/item/weapon/gun/proc/reload() : (obj/item/weapon/gun/reloaded) +#define COMSIG_MOB_RELOADED_GUN "mob_reloaded_gun" + +/// From /mob/proc/get_status_tab_items() : (list/status_list) +#define COMSIG_MOB_GET_STATUS_TAB_ITEMS "mob_get_status_tab_items" + +/// From /datum/tutorial/proc/update_objective() : (new_objective) +#define COMSIG_MOB_TUTORIAL_UPDATE_OBJECTIVE "mob_tutorial_update_objective" + +/// From /mob/proc/swap_hand() : () +#define COMSIG_MOB_SWAPPED_HAND "mob_swapped_hand" + +/// From /mob/proc/a_intent_change() : (new_intent) +#define COMSIG_MOB_INTENT_CHANGE "mob_intent_change" + +/// From /obj/item/grab/proc/progress_passive() : (mob/living/carbon/human/grabber) +#define COMSIG_MOB_AGGRESSIVELY_GRABBED "mob_aggressively_grabbed" + #define COMSIG_MOB_AGGRESIVE_GRAB_CANCEL (1<<0) + /// Cancels all running cloaking effects on target #define COMSIG_MOB_EFFECT_CLOAK_CANCEL "mob_effect_cloak_cancel" + +#define COMSIG_MOB_END_TUTORIAL "mob_end_tutorial" + +#define COMSIG_MOB_NESTED "mob_nested" diff --git a/code/__DEFINES/dcs/signals/atom/signals_atom.dm b/code/__DEFINES/dcs/signals/atom/signals_atom.dm index d9bd1202c159..4e4458232669 100644 --- a/code/__DEFINES/dcs/signals/atom/signals_atom.dm +++ b/code/__DEFINES/dcs/signals/atom/signals_atom.dm @@ -1,6 +1,7 @@ /// From /atom/proc/Decorate #define COMSIG_ATOM_DECORATED "atom_decorated" - +//from SSatoms InitAtom - Only if the atom was not deleted or failed initialization and has a loc +#define COMSIG_ATOM_AFTER_SUCCESSFUL_INITIALIZED_ON "atom_init_success_on" ///from base of atom/setDir(): (old_dir, new_dir). Called before the direction changes. #define COMSIG_ATOM_DIR_CHANGE "atom_dir_change" diff --git a/code/__DEFINES/dcs/signals/atom/signals_item.dm b/code/__DEFINES/dcs/signals/atom/signals_item.dm index 6024c0524992..5ba79960657b 100644 --- a/code/__DEFINES/dcs/signals/atom/signals_item.dm +++ b/code/__DEFINES/dcs/signals/atom/signals_item.dm @@ -29,6 +29,11 @@ #define COMSIG_ITEM_PICKUP "item_pickup" +///from /obj/item/device/camera/broadcasting +#define COMSIG_BROADCAST_GO_LIVE "broadcast_live" +#define COMSIG_BROADCAST_HEAR_TALK "broadcast_hear_talk" +#define COMSIG_BROADCAST_SEE_EMOTE "broadcast_see_emote" + /// from /obj/item/proc/mob_can_equip #define COMSIG_ITEM_ATTEMPTING_EQUIP "item_attempting_equip" ///Return this in response if you don't want items equipped @@ -68,3 +73,13 @@ //from /datum/authority/branch/role/proc/equip_role() #define COMSIG_POST_SPAWN_UPDATE "post_spawn_update" + +#define COMSIG_CAMERA_MAPNAME_ASSIGNED "camera_manager_mapname_assigned" +#define COMSIG_CAMERA_REGISTER_UI "camera_manager_register_ui" +#define COMSIG_CAMERA_UNREGISTER_UI "camera_manager_unregister_ui" +#define COMSIG_CAMERA_SET_NVG "camera_manager_set_nvg" +#define COMSIG_CAMERA_CLEAR_NVG "camera_manager_clear_nvg" +#define COMSIG_CAMERA_SET_TARGET "camera_manager_set_target" +#define COMSIG_CAMERA_SET_AREA "camera_manager_set_area" +#define COMSIG_CAMERA_CLEAR "camera_manager_clear_target" +#define COMSIG_CAMERA_REFRESH "camera_manager_refresh" diff --git a/code/__DEFINES/dcs/signals/atom/signals_obj.dm b/code/__DEFINES/dcs/signals/atom/signals_obj.dm index 93579e068ec7..c850b2a52e03 100644 --- a/code/__DEFINES/dcs/signals/atom/signals_obj.dm +++ b/code/__DEFINES/dcs/signals/atom/signals_obj.dm @@ -25,9 +25,31 @@ /// from /obj/structure/transmitter/update_icon() #define COMSIG_TRANSMITTER_UPDATE_ICON "transmitter_update_icon" +#define COMSIG_STRUCTURE_WRENCHED "structure_wrenched" +#define COMSIG_STRUCTURE_UNWRENCHED "structure_unwrenched" #define COMSIG_TENT_COLLAPSING "tent_collapsing" /// from /obj/proc/afterbuckle() -#define COSMIG_OBJ_AFTER_BUCKLE "signal_obj_after_buckle" +#define COMSIG_OBJ_AFTER_BUCKLE "signal_obj_after_buckle" + +/// from /datum/cm_objective/retrieve_data/disk/process() +#define COMSIG_INTEL_DISK_LOST_POWER "intel_disk_lost_power" + +/// from /datum/cm_objective/retrieve_data/disk/complete() +#define COMSIG_INTEL_DISK_COMPLETED "intel_disk_completed" + +/// from /obj/vehicle/multitile/arc/toggle_antenna() +#define COMSIG_ARC_ANTENNA_TOGGLED "arc_antenna_toggled" +/// from /obj/structure/machinery/cryopod/go_out() +#define COMSIG_CRYOPOD_GO_OUT "cryopod_go_out" + +/// from /proc/vendor_successful_vend() : (obj/structure/machinery/cm_vending/vendor, list/itemspec, mob/living/carbon/human/user) +#define COMSIG_VENDOR_SUCCESSFUL_VEND "vendor_successful_vend" + +/// from /obj/limb/proc/remove_all_bleeding() : (external, internal) +#define COMSIG_LIMB_STOP_BLEEDING "limb_stop_bleeding" + +#define COMSIG_DROPSHIP_ADD_EQUIPMENT "dropship_add_equipment" +#define COMSIG_DROPSHIP_REMOVE_EQUIPMENT "dropship_remove_equipment" #define COMSIG_STRUCTURE_CRATE_SQUAD_LAUNCHED "structure_crate_squad_launched" diff --git a/code/__DEFINES/dcs/signals/atom/signals_turf.dm b/code/__DEFINES/dcs/signals/atom/signals_turf.dm index 6a0788bcf871..881ffc3ee139 100644 --- a/code/__DEFINES/dcs/signals/atom/signals_turf.dm +++ b/code/__DEFINES/dcs/signals/atom/signals_turf.dm @@ -19,3 +19,6 @@ ///from /turf/closed/wall/proc/place_poster #define COMSIG_POSTER_PLACED "poster_placed" + +///from base of /datum/turf_reservation/proc/Release: (datum/turf_reservation/reservation) +#define COMSIG_TURF_RESERVATION_RELEASED "turf_reservation_released" diff --git a/code/__DEFINES/dcs/signals/signals_client.dm b/code/__DEFINES/dcs/signals/signals_client.dm index 6733e0703514..36a60c153d0f 100644 --- a/code/__DEFINES/dcs/signals/signals_client.dm +++ b/code/__DEFINES/dcs/signals/signals_client.dm @@ -19,14 +19,11 @@ /// Called after one or more verbs are added: (list of verbs added) #define COMSIG_CLIENT_VERB_REMOVED "client_verb_removed" -/// Called after a client logs into a mob: (mob) -#define COMSIG_CLIENT_MOB_LOGIN "client_mob_changed" +/// Called from /mob/Login() after a client logs into a mob: (mob) +#define COMSIG_CLIENT_MOB_LOGGED_IN "client_mob_logged_in" /// Called when something is added to a client's screen : /client/proc/add_to_screen(screen_add) #define COMSIG_CLIENT_SCREEN_ADD "client_screen_add" /// Called when something is removed from a client's screen : /client/proc/remove_from_screen(screen_remove) #define COMSIG_CLIENT_SCREEN_REMOVE "client_screen_remove" - -/// When a mind is transfered to another mob at /datum/mind/proc/transfer_to() -#define COMSIG_CLIENT_MIND_TRANSFER "mind_transfer" diff --git a/code/__DEFINES/dcs/signals/signals_datum.dm b/code/__DEFINES/dcs/signals/signals_datum.dm index 7696d8ad6037..b798d510763e 100644 --- a/code/__DEFINES/dcs/signals/signals_datum.dm +++ b/code/__DEFINES/dcs/signals/signals_datum.dm @@ -64,3 +64,6 @@ // from /proc/update_living_queens() : /mob/living/carbon/xenomorph/queen #define COMSIG_HIVE_NEW_QUEEN "hive_new_queen" + +/// Fired on the lazy template datum when the template is finished loading. (list/loaded_atom_movables, list/loaded_turfs, list/loaded_areas) +#define COMSIG_LAZY_TEMPLATE_LOADED "lazy_template_loaded" diff --git a/code/__DEFINES/dcs/signals/signals_global.dm b/code/__DEFINES/dcs/signals/signals_global.dm index dc5e70fcd5ec..306f37deb8cb 100644 --- a/code/__DEFINES/dcs/signals/signals_global.dm +++ b/code/__DEFINES/dcs/signals/signals_global.dm @@ -8,6 +8,8 @@ ///from base of datum/controller/subsystem/mapping/proc/add_new_zlevel(): (list/args) #define COMSIG_GLOB_NEW_Z "!new_z" +/// sent after world.maxx and/or world.maxy are expanded: (has_exapnded_world_maxx, has_expanded_world_maxy) +#define COMSIG_GLOB_EXPANDED_WORLD_BOUNDS "!expanded_world_bounds" ///from base of datum/controller/subsystem/mapping/proc/add_new_zlevel(): (list/args) #define COMSIG_GLOB_VEHICLE_ORDERED "!vehicle_ordered" /// from /datum/controller/subsystem/ticker/fire @@ -32,9 +34,11 @@ #define COMSIG_GLOB_REMOVE_VOTE_BUTTON "!remove_vote_button" -#define COMSIG_GLOB_CLIENT_LOGIN "!client_login" +/// Called from /client/New() when a client logs in to the game: (client) +#define COMSIG_GLOB_CLIENT_LOGGED_IN "!client_logged_in" -#define COMSIG_GLOB_MOB_LOGIN "!mob_login" +/// Called from /mob/Login() when a client logs into a mob: (mob) +#define COMSIG_GLOB_MOB_LOGGED_IN "!mob_logged_in" ///from /datum/controller/subsystem/ticker/PostSetup #define COMSIG_GLOB_POST_SETUP "!post_setup" @@ -65,6 +69,15 @@ /// From /proc/biohazard_lockdown() #define COMSIG_GLOB_RESEARCH_LOCKDOWN "!research_lockdown_closed" #define COMSIG_GLOB_RESEARCH_LIFT "!research_lockdown_opened" +/// From /proc/aicore_lockdown() +#define COMSIG_GLOB_AICORE_LOCKDOWN "!aicore_lockdown_closed" +#define COMSIG_GLOB_AICORE_LIFT "!aicore_lockdown_opened" -/// From /obj/structure/machinery/power/fusion_engine/proc/set_overloading() : (set_overloading) +/// From /obj/structure/machinery/power/reactor/proc/set_overloading() : (set_overloading) #define COMSIG_GLOB_GENERATOR_SET_OVERLOADING "!generator_set_overloading" + +#define COMSIG_GLOB_HIJACK_IMPACTED "!hijack_impacted" +#define COMSIG_GLOB_HIJACK_LANDED "!hijack_landed" + +/// From /datum/controller/subsystem/hijack/fire() +#define COMSIG_GLOB_FUEL_PUMP_UPDATE "!fuel_pump_update" diff --git a/code/__DEFINES/defenses.dm b/code/__DEFINES/defenses.dm index db615c2a0c78..a45802bc3f9e 100644 --- a/code/__DEFINES/defenses.dm +++ b/code/__DEFINES/defenses.dm @@ -22,6 +22,12 @@ #define DEFENSE_BELL_TOWER 4 #define DEFENSE_TESLA_COIL 5 +// Defines for /obj/structure/machinery/defenses/sentry/premade/deployable/colony/landing_zone +#define TURRET_BATTERY_STATE_OK 0 +#define TURRET_BATTERY_STATE_LOW 1 +#define TURRET_BATTERY_STATE_CRITICAL 2 +#define TURRET_BATTERY_STATE_DEAD 3 + // What range the generator has to be in or defenses has to be in. #define GEN_SEARCH_RANGE 5 #define GEN_PLASTEEL_COST 10 diff --git a/code/__DEFINES/dropships.dm b/code/__DEFINES/dropships.dm index f7df570a2864..d53e7c68d8db 100644 --- a/code/__DEFINES/dropships.dm +++ b/code/__DEFINES/dropships.dm @@ -10,3 +10,8 @@ #define DROPSHIP_MIN_AUTO_DELAY 10 SECONDS #define DROPSHIP_AUTO_RETRY_COOLDOWN 20 SECONDS #define DROPSHIP_MEDEVAC_COOLDOWN 20 SECONDS + +//Hatches states +#define SHUTTLE_DOOR_BROKEN -1 +#define SHUTTLE_DOOR_UNLOCKED 0 +#define SHUTTLE_DOOR_LOCKED 1 diff --git a/code/__DEFINES/equipment.dm b/code/__DEFINES/equipment.dm index f0688282572d..a420ae5fd365 100644 --- a/code/__DEFINES/equipment.dm +++ b/code/__DEFINES/equipment.dm @@ -44,6 +44,10 @@ #define USES_HEARING (1<<17) /// Should we use the initial icon for display? Mostly used by overlay only objects #define HTML_USE_INITAL_ICON (1<<18) +// Whether or not the object sees emotes +#define USES_SEEING (1<<19) +// Can be quick drawn +#define QUICK_DRAWABLE (1<<20) //========================================================================================== @@ -82,6 +86,10 @@ #define ANIMATED_SURGICAL_TOOL (1<<12) /// Has heat source but isn't 'on fire' and thus can be stored #define IGNITING_ITEM (1<<13) +/// Overrides NODROP in some cases (stripping) +#define FORCEDROP_CONDITIONAL (1<<14) +/// Overrides smartgunner not being able to wear backpacks +#define SMARTGUNNER_BACKPACK_OVERRIDE (1<<15) //========================================================================================== @@ -194,11 +202,11 @@ //=========================================================================================== //Marine armor only, use for flags_marine_armor. -#define ARMOR_SQUAD_OVERLAY 1 -#define ARMOR_LAMP_OVERLAY 2 -#define ARMOR_LAMP_ON 4 -#define ARMOR_IS_REINFORCED 8 -#define SYNTH_ALLOWED 16 +#define ARMOR_SQUAD_OVERLAY (1<<0) +#define ARMOR_LAMP_OVERLAY (1<<1) +#define ARMOR_LAMP_ON (1<<2) +#define ARMOR_IS_REINFORCED (1<<3) +#define SYNTH_ALLOWED (1<<4) //=========================================================================================== //=========================================================================================== diff --git a/code/__DEFINES/flags.dm b/code/__DEFINES/flags.dm index e790bddb233c..fc3772e66ff2 100644 --- a/code/__DEFINES/flags.dm +++ b/code/__DEFINES/flags.dm @@ -33,3 +33,9 @@ #define EMOTE_IMPORTANT (1<<2) /// Does the emote not have a message? #define EMOTE_NO_MESSAGE (1<<3) + +// Bitflags for Working Joe emotes +/// Working Joe emote +#define WORKING_JOE_EMOTE (1<<0) +/// Hazard Joe emote +#define HAZARD_JOE_EMOTE (1<<1) diff --git a/code/__DEFINES/human.dm b/code/__DEFINES/human.dm index ebf08f495752..f2d60983b74c 100644 --- a/code/__DEFINES/human.dm +++ b/code/__DEFINES/human.dm @@ -182,11 +182,12 @@ //Synthetic Defines #define SYNTH_COLONY "Third Generation Colonial Synthetic" -#define SYNTH_COLONY_GEN_TWO "First Generation Colonial Synthetic" -#define SYNTH_COLONY_GEN_ONE "Second Generation Colonial Synthetic" +#define SYNTH_COLONY_GEN_TWO "Second Generation Colonial Synthetic" +#define SYNTH_COLONY_GEN_ONE "First Generation Colonial Synthetic" #define SYNTH_COMBAT "Combat Synthetic" #define SYNTH_INFILTRATOR "Infiltrator Synthetic" #define SYNTH_WORKING_JOE "Working Joe" +#define SYNTH_HAZARD_JOE "Hazard Joe" #define SYNTH_GEN_ONE "First Generation Synthetic" #define SYNTH_GEN_TWO "Second Generation Synthetic" #define SYNTH_GEN_THREE "Third Generation Synthetic" diff --git a/code/__DEFINES/job.dm b/code/__DEFINES/job.dm index ad3b9fe3af32..79f40c89bb53 100644 --- a/code/__DEFINES/job.dm +++ b/code/__DEFINES/job.dm @@ -12,6 +12,7 @@ #define SQUAD_MARINE_INTEL "Intel" #define SQUAD_SOF "SOF" #define SQUAD_CBRN "CBRN" +#define SQUAD_FORECON "FORECON" // Job name defines #define JOB_SQUAD_MARINE "Rifleman" @@ -75,14 +76,15 @@ GLOBAL_LIST_INIT(job_squad_roles, JOB_SQUAD_ROLES_LIST) GLOBAL_LIST_INIT(job_command_roles, JOB_COMMAND_ROLES_LIST) #define JOB_AUXILIARY_OFFICER "Auxiliary Support Officer" -#define JOB_PILOT "Pilot Officer" +#define JOB_CAS_PILOT "Gunship Pilot" +#define JOB_DROPSHIP_PILOT "Dropship Pilot" +#define JOB_TANK_CREW "Tank Crew" #define JOB_DROPSHIP_CREW_CHIEF "Dropship Crew Chief" -#define JOB_CREWMAN "Vehicle Crewman" #define JOB_INTEL "Intelligence Officer" #define JOB_DROPSHIP_ROLES /datum/timelock/dropship -#define JOB_DROPSHIP_ROLES_LIST list(JOB_DROPSHIP_CREW_CHIEF, JOB_PILOT) +#define JOB_DROPSHIP_ROLES_LIST list(JOB_DROPSHIP_CREW_CHIEF, JOB_CAS_PILOT, JOB_DROPSHIP_PILOT) #define JOB_AUXILIARY_ROLES /datum/timelock/auxiliary -#define JOB_AUXILIARY_ROLES_LIST list(JOB_PILOT, JOB_DROPSHIP_CREW_CHIEF, JOB_CREWMAN, JOB_INTEL) +#define JOB_AUXILIARY_ROLES_LIST list(JOB_CAS_PILOT, JOB_DROPSHIP_PILOT, JOB_DROPSHIP_CREW_CHIEF, JOB_INTEL, JOB_TANK_CREW) #define JOB_POLICE "Military Police" #define JOB_WARDEN "Military Warden" @@ -118,6 +120,7 @@ GLOBAL_LIST_INIT(job_command_roles, JOB_COMMAND_ROLES_LIST) #define JOB_MARINE "USCM Marine" //generic marine #define JOB_COLONEL "USCM Colonel" +#define JOB_USCM_OBSV "USCM Observer" #define JOB_GENERAL "USCM General" #define JOB_ACMC "Assistant Commandant of the Marine Corps" #define JOB_CMC "Commandant of the Marine Corps" @@ -170,25 +173,25 @@ GLOBAL_LIST_INIT(job_command_roles, JOB_COMMAND_ROLES_LIST) //------------------------------------ //-------- PMC --------// -#define JOB_PMC_STANDARD "Weyland-Yutani PMC (Standard)" +#define JOB_PMC_STANDARD "PMC Operator" #define JOB_PMC_ENGINEER "PMC Corporate Technician" #define JOB_PMC_MEDIC "PMC Corporate Medic" #define JOB_PMC_DOCTOR "PMC Trauma Surgeon" #define JOB_PMC_INVESTIGATOR "PMC Medical Investigator" -#define JOB_PMC_DETAINER "Weyland-Yutani PMC (Detainer)" -#define JOB_PMC_ELITE "PMC Elite" +#define JOB_PMC_DETAINER "PMC Security Enforcer" #define JOB_PMC_GUNNER "PMC Support Weapons Specialist" //Renamed from Specialist to Support Specialist as it only has SG skills. #define JOB_PMC_SNIPER "PMC Weapons Specialist" //Renamed from Sharpshooter to specialist as it uses specialist skills. -#define JOB_PMC_CREWMAN "Weyland-Yutani PMC (Crewman)" -#define JOB_PMC_NINJA "PMC Ninja" +#define JOB_PMC_CREWMAN "PMC Vehicle Crewman" #define JOB_PMC_XENO_HANDLER "PMC Xeno Handler" -#define JOB_PMC_COMMANDO "PMC Commando" #define JOB_PMC_LEADER "PMC Leader" #define JOB_PMC_LEAD_INVEST "PMC Lead Investigator" #define JOB_PMC_DIRECTOR "PMC Site Director" #define JOB_PMC_SYNTH "PMC Support Synthetic" -#define JOB_PMC_GRUNT_LIST list(JOB_PMC_STANDARD, JOB_PMC_ENGINEER, JOB_PMC_MEDIC, JOB_PMC_INVESTIGATOR, JOB_PMC_DETAINER, JOB_PMC_ELITE, JOB_PMC_GUNNER, JOB_PMC_SNIPER, JOB_PMC_CREWMAN, JOB_PMC_NINJA, JOB_PMC_XENO_HANDLER, JOB_PMC_COMMANDO, JOB_PMC_LEADER, JOB_PMC_LEAD_INVEST) +#define ROLES_WY_PMC list(JOB_PMC_LEADER, JOB_PMC_SNIPER, JOB_PMC_GUNNER, JOB_PMC_ENGINEER, JOB_PMC_MEDIC, JOB_PMC_STANDARD) +#define ROLES_WY_PMC_AUX list(JOB_PMC_SYNTH, JOB_PMC_CREWMAN, JOB_PMC_XENO_HANDLER, JOB_PMC_DOCTOR) +#define ROLES_WY_PMC_INSPEC list(JOB_PMC_LEAD_INVEST, JOB_PMC_INVESTIGATOR, JOB_PMC_DETAINER) +#define ROLES_WY_PMC_ALL ROLES_WY_PMC + ROLES_WY_PMC_AUX + ROLES_WY_PMC_INSPEC //-------- WY --------// @@ -203,12 +206,16 @@ GLOBAL_LIST_INIT(job_command_roles, JOB_COMMAND_ROLES_LIST) #define JOB_CHIEF_EXECUTIVE "Corporate Chief Executive" #define JOB_DIRECTOR "W-Y Director" +#define ROLES_WY_CORPORATE list(JOB_EXECUTIVE_SUPERVISOR, JOB_EXECUTIVE_SPECIALIST, JOB_SENIOR_EXECUTIVE, JOB_EXECUTIVE, JOB_JUNIOR_EXECUTIVE, JOB_TRAINEE) +#define ROLES_WY_LEADERSHIP list(JOB_DIRECTOR, JOB_PMC_DIRECTOR, JOB_CHIEF_EXECUTIVE, JOB_DIVISION_MANAGER, JOB_ASSISTANT_MANAGER) + //-------- WY Goons --------// #define JOB_WY_GOON "WY Corporate Security" +#define JOB_WY_GOON_TECH "WY Corporate Security Technician" #define JOB_WY_GOON_LEAD "WY Corporate Security Lead" #define JOB_WY_GOON_RESEARCHER "WY Research Consultant" -#define JOB_WY_GOON_LIST list(JOB_WY_GOON, JOB_WY_GOON_LEAD) +#define ROLES_WY_GOONS list(JOB_WY_GOON_LEAD, JOB_WY_GOON_TECH, JOB_WY_GOON) //---- Contractors ----// #define JOB_CONTRACTOR "VAIPO Mercenary" @@ -383,4 +390,4 @@ GLOBAL_LIST_INIT(job_command_roles, JOB_COMMAND_ROLES_LIST) ///For denying certain traits being applied to people. ie. bad leg ///'Grunt' lists are for people who wouldn't logically get the bad leg trait, ie. UPP marine counterparts. -#define JOB_ERT_GRUNT_LIST list(DUTCH_JOB_LIST, RIOT_JOB_LIST, PROVOST_JOB_LIST, CMB_GRUNT_LIST, CLF_JOB_LIST, UPP_JOB_GRUNT_LIST, UPP_COMMANDO_JOB_LIST, CONTRACTOR_JOB_LIST, JOB_WY_GOON_LIST, JOB_PMC_GRUNT_LIST) +#define JOB_ERT_GRUNT_LIST list(DUTCH_JOB_LIST, RIOT_JOB_LIST, PROVOST_JOB_LIST, CMB_GRUNT_LIST, CLF_JOB_LIST, UPP_JOB_GRUNT_LIST, UPP_COMMANDO_JOB_LIST, CONTRACTOR_JOB_LIST, ROLES_WY_GOONS, ROLES_WY_PMC_ALL) diff --git a/code/__DEFINES/keybinding.dm b/code/__DEFINES/keybinding.dm index 764282d59765..4b8fd9bd58b3 100644 --- a/code/__DEFINES/keybinding.dm +++ b/code/__DEFINES/keybinding.dm @@ -165,13 +165,14 @@ #define COMSIG_KB_XENO_HIVE_STATUS "keybinding_hive_status" #define COMSIG_KB_XENO_HIDE "keybinding_hide" #define COMSIG_KB_XENO_EVOLVE "keybinding_evolve" +#define COMSIG_KB_XENO_PURCHASE_STRAIN "keybinding_purchase_strain" + // Yautja #define COMSIG_KB_YAUTJA_BUTCHER "keybinding_yautja_butcher" #define COMSIG_KB_YAUTJA_PRED_BUY "keybinding_yautja_pred_buy" #define COMSIG_KB_YAUTJA_MARK_PANEL "keybinding_yautja_mark_panel" -#define COMSIG_KB_YAUTJA_MARK_FOR_HUNT "keybinding_yautja_mark_for_hunt" -#define COMSIG_KB_YAUTJA_REMOVE_FROM_HUNT "keybinding_yautja_remove_from_hunt" +#define COMSIG_KB_YAUTJA_TOGGLE_MARK_FOR_HUNT "keybinding_yautja_toggle_mark_for_hunt" // Yautja Bracer #define COMSIG_KB_YAUTJA_TOGGLE_NOTIFICATION_SOUND "keybinding_yautja_toggle_notification_sound" @@ -192,6 +193,7 @@ #define COMSIG_KB_YAUTJA_BRACERNAME "keybinding_yautja_bracername" #define COMSIG_KB_YAUTJA_IDCHIP "keybinding_yautja_idchip" #define COMSIG_KB_YAUTJA_LINK_BRACER "keybinding_yautja_link_bracer" +#define COMSIG_KB_YAUTJA_CONTROL_FALCON "keybinding_yautja_control_falcon" //mask #define COMSIG_KB_YAUTJA_MASK_TOGGLE_ZOOM "keybinding_yautja_mask_toggle_zoom" diff --git a/code/__DEFINES/layers.dm b/code/__DEFINES/layers.dm index c0ccd5164b0b..ee958d87f580 100644 --- a/code/__DEFINES/layers.dm +++ b/code/__DEFINES/layers.dm @@ -11,6 +11,9 @@ //#define AREA_LAYER 1 +#define DISPLACEMENT_PLATE_RENDER_LAYER 1 +#define DISPLACEMENT_PLATE_RENDER_TARGET "*DISPLACEMENT_PLATE_RENDER_TARGET" + #define UNDER_TURF_LAYER 1.99 #define TURF_LAYER 2 @@ -219,6 +222,8 @@ #define FLOOR_PLANE -7 /// Game Plane, where most of the game objects reside #define GAME_PLANE -6 +/// Above Game Plane. For things which are above game objects, but below screen effects. +#define ABOVE_GAME_PLANE -5 /// Roof plane, disappearing when entering buildings #define ROOF_PLANE -4 @@ -230,6 +235,7 @@ ///--------------- FULLSCREEN RUNECHAT BUBBLES ------------ #define LIGHTING_PLANE 100 #define EXTERIOR_LIGHTING_PLANE 101 +#define NVG_PLANE 110 ///Popup Chat Messages #define RUNECHAT_PLANE 501 diff --git a/code/__DEFINES/lighting.dm b/code/__DEFINES/lighting.dm index 097a0f5d5e71..3fd2e3caa64b 100644 --- a/code/__DEFINES/lighting.dm +++ b/code/__DEFINES/lighting.dm @@ -49,7 +49,7 @@ GLOBAL_LIST_INIT(emissive_color, EMISSIVE_COLOR) GLOBAL_LIST_INIT(em_block_color, EM_BLOCK_COLOR) /// A set of appearance flags applied to all emissive and emissive blocker overlays. #define EMISSIVE_APPEARANCE_FLAGS (KEEP_APART|KEEP_TOGETHER|RESET_COLOR|RESET_TRANSFORM) -/// The color matrix used to mask out emissive blockers on the emissive plane. Alpha should default to zero, be solely dependent on the RGB value of [EMISSIVE_COLOR], and be independant of the RGB value of [EM_BLOCK_COLOR]. +/// The color matrix used to mask out emissive blockers on the emissive plane. Alpha should default to zero, be solely dependent on the RGB value of [EMISSIVE_COLOR], and be independent of the RGB value of [EM_BLOCK_COLOR]. #define EM_MASK_MATRIX list(0,0,0,1/3, 0,0,0,1/3, 0,0,0,1/3, 0,0,0,0, 1,1,1,0) /// A globaly cached version of [EM_MASK_MATRIX] for quick access. GLOBAL_LIST_INIT(em_mask_matrix, EM_MASK_MATRIX) diff --git a/code/__DEFINES/maps.dm b/code/__DEFINES/maps.dm index 3f6a4a44ee07..ef3d17572f0d 100644 --- a/code/__DEFINES/maps.dm +++ b/code/__DEFINES/maps.dm @@ -32,6 +32,7 @@ require only minor tweaks. #define ZTRAIT_FOG "Fog" #define ZTRAIT_LOCKDOWN "Lockdown" #define ZTRAIT_BASIC_RT "BasicRT" +#define ZTRAIT_IN_SPACE "InSpace" // Is our ground_level considered in space or on a space station // boolean - weather types that occur on the level #define ZTRAIT_SNOWSTORM "weather_snowstorm" @@ -117,8 +118,5 @@ require only minor tweaks. #define MAP_ARMOR_STYLE_JUNGLE "jungle" #define MAP_ARMOR_STYLE_PRISON "prison" -//turf-only flags -#define NOJAUNT_1 (1<<0) -#define UNUSED_RESERVATION_TURF (1<<1) -/// If a turf can be made dirty at roundstart. This is also used in areas. -#define CAN_BE_DIRTY_1 (1<<2) +/// A map key that corresponds to being one exclusively for Space. +#define SPACE_KEY "space" diff --git a/code/__DEFINES/minimap.dm b/code/__DEFINES/minimap.dm index 003d723600c4..57c5ffeba38a 100644 --- a/code/__DEFINES/minimap.dm +++ b/code/__DEFINES/minimap.dm @@ -71,7 +71,6 @@ GLOBAL_LIST_INIT(all_minimap_flags, bitfield2list(MINIMAP_FLAG_ALL)) #define MINIMAP_ICON_COLOR_COMMANDER "#c6fcfc" #define MINIMAP_ICON_COLOR_HEAD "#F0C542" -#define MINIMAP_ICON_COLOR_SILVER "#c0c0c0" #define MINIMAP_ICON_COLOR_BRONZE "#eb9545" #define MINIMAP_ICON_COLOR_DOCTOR "#b83737" diff --git a/code/__DEFINES/misc.dm b/code/__DEFINES/misc.dm index b024f22ebfff..cf6d6c64d9a9 100644 --- a/code/__DEFINES/misc.dm +++ b/code/__DEFINES/misc.dm @@ -25,6 +25,7 @@ #define SMOKE_RANK_MED 3 #define SMOKE_RANK_HIGH 4 #define SMOKE_RANK_BOILER 5 +#define SMOKE_RANK_MAX 6 // What kind of function to use for Explosions falling off. @@ -98,10 +99,9 @@ #define INTERRUPT_MIDDLECLICK (1<<15) #define INTERRUPT_DAZED (1<<16) #define INTERRUPT_EMOTE (1<<17) -// By default not in INTERRUPT_ALL (too niche) #define INTERRUPT_CHANGED_LYING (1<<18) -#define INTERRUPT_ALL (INTERRUPT_DIFF_LOC|INTERRUPT_DIFF_TURF|INTERRUPT_UNCONSCIOUS|INTERRUPT_KNOCKED_DOWN|INTERRUPT_STUNNED|INTERRUPT_NEEDHAND|INTERRUPT_RESIST) +#define INTERRUPT_ALL (INTERRUPT_DIFF_LOC|INTERRUPT_DIFF_TURF|INTERRUPT_UNCONSCIOUS|INTERRUPT_KNOCKED_DOWN|INTERRUPT_STUNNED|INTERRUPT_NEEDHAND|INTERRUPT_RESIST|INTERRUPT_CHANGED_LYING) #define INTERRUPT_ALL_OUT_OF_RANGE (INTERRUPT_ALL & (~INTERRUPT_DIFF_TURF)|INTERRUPT_OUT_OF_RANGE) #define INTERRUPT_MOVED (INTERRUPT_DIFF_LOC|INTERRUPT_DIFF_TURF|INTERRUPT_RESIST) #define INTERRUPT_NO_NEEDHAND (INTERRUPT_ALL & (~INTERRUPT_NEEDHAND)) @@ -124,7 +124,6 @@ #define MATERIAL_METAL "metal" #define MATERIAL_PLASTEEL "plasteel" #define MATERIAL_WOOD "wood plank" -#define MATERIAL_CRYSTAL "plasmagas" // SIZES FOR ITEMS, use it for w_class @@ -157,11 +156,38 @@ #define ASSEMBLY_UNLOCKED 1 #define ASSEMBLY_LOCKED 2 +// RESEARCH UPGRADES DEFINES // + // Matrix CAS Upgrades #define MATRIX_DEFAULT 0 #define MATRIX_NVG 1 #define MATRIX_WIDE 2 +#define RESEARCH_UPGRADE_NOTHING_TO_PASS null +#define RESEARCH_UPGRADE_EXCLUDE_BUY -2 +#define RESEARCH_UPGRADE_CATEGORY -1 //lord forgive me +#define RESEARCH_UPGRADE_ITEM 1 +#define RESEARCH_UPGRADE_TIER_1 1 +#define RESEARCH_UPGRADE_TIER_2 2 +#define RESEARCH_UPGRADE_TIER_3 3 +#define RESEARCH_UPGRADE_TIER_4 4 +#define RESEARCH_UPGRADE_TIER_5 5 +//Value define + +#define ITEM_MACHINERY_UPGRADE "Machinery" //*must* be same as category name. +#define ITEM_ACCESSORY_UPGRADE "Items" +#define ITEM_ARMOR_UPGRADE "Armor" + +//injector plate stuff +#define EMERGENCY_PLATE_OD_PROTECTION_OFF 0 +#define EMERGENCY_PLATE_OD_PROTECTION_STRICT 1 +#define EMERGENCY_PLATE_OD_PROTECTION_DYNAMIC 2 +#define EMERGENCY_PLATE_OD_WARNING 1 +#define EMERGENCY_PLATE_ADJUSTED_WARNING 2 + + +// RESEARCH UPGRADES DEFINES END + // Statistics defines #define STATISTIC_XENO "xeno" #define STATISTIC_HUMAN "human" diff --git a/code/__DEFINES/mob.dm b/code/__DEFINES/mob.dm new file mode 100644 index 000000000000..7f9f33ea483c --- /dev/null +++ b/code/__DEFINES/mob.dm @@ -0,0 +1 @@ +#define DEFAULT_MOB_STATUS_FLAGS CANKNOCKDOWN|CANPUSH|STATUS_FLAGS_DEBILITATE diff --git a/code/__DEFINES/mob_hud.dm b/code/__DEFINES/mob_hud.dm index 02f992694832..97cbe0281924 100644 --- a/code/__DEFINES/mob_hud.dm +++ b/code/__DEFINES/mob_hud.dm @@ -13,6 +13,7 @@ #define XENO_HOSTILE_SLOW "13" // xeno-inflicted slow. used by a bunch of MOBA xenos stuff #define XENO_HOSTILE_TAG "14" // dancer prae 'tag' #define XENO_HOSTILE_FREEZE "15" // Any xeno-inflifcted root +#define XENO_EXECUTE "28" // Execute thershold, vampire #define HEALTH_HUD_XENO "16" // health HUD for xenos #define PLASMA_HUD "17" // indicates the plasma level of xenos. @@ -25,6 +26,7 @@ #define STATUS_HUD_XENO_CULTIST "24" // Whether they are a xeno cultist or not #define HUNTER_CLAN "25" //Displays a colored icon to represent ingame Hunter Clans #define HUNTER_HUD "26" //Displays various statuses on mobs for Hunters to identify targets +#define HOLOCARD_HUD "27" //Displays the holocards set by medical personnel //data HUD (medhud, sechud) defines #define MOB_HUD_SECURITY_BASIC 1 @@ -35,7 +37,7 @@ #define MOB_HUD_XENO_INFECTION 6 #define MOB_HUD_XENO_STATUS 7 #define MOB_HUD_XENO_HOSTILE 8 -#define MOB_HUD_FACTION_USCM 9 +#define MOB_HUD_FACTION_MARINE 9 #define MOB_HUD_FACTION_OBSERVER 10 #define MOB_HUD_FACTION_UPP 11 #define MOB_HUD_FACTION_WY 12 @@ -44,6 +46,7 @@ #define MOB_HUD_FACTION_PMC 15 #define MOB_HUD_HUNTER 16 #define MOB_HUD_HUNTER_CLAN 17 +#define MOB_HUD_EXECUTE 18 //for SL/FTL/LZ targeting on locator huds #define TRACKER_SL "track_sl" @@ -51,6 +54,7 @@ #define TRACKER_LZ "track_lz" #define TRACKER_CO "track_co" #define TRACKER_XO "track_xo" +#define TRACKER_CMP "track_cmp" #define TRACKER_CL "track_cl" #define TRACKER_ASL "_asl" // Alpha Squad Leader diff --git a/code/__DEFINES/mobs.dm b/code/__DEFINES/mobs.dm index 0dcd26de3e3a..77f2393e6542 100644 --- a/code/__DEFINES/mobs.dm +++ b/code/__DEFINES/mobs.dm @@ -1,3 +1,6 @@ +/// Multiplier for Stun/KD/KO/etc durations in new backend, due to old system being based on life ticks +#define GLOBAL_STATUS_MULTIPLIER 20 // each in-code unit is worth 20ds of duration + #define HEALTH_THRESHOLD_DEAD -100 #define HEALTH_THRESHOLD_CRIT -50 @@ -44,9 +47,7 @@ //disabilities #define NEARSIGHTED (1<<0) -#define EPILEPSY (1<<1) -#define COUGHING (1<<2) -#define TOURETTES (1<<3) + #define NERVOUS (1<<4) #define OPIATE_RECEPTOR_DEFICIENCY (1<<5) //================================================= @@ -88,6 +89,8 @@ #define DAZE "daze" #define SLOW "slow" #define SUPERSLOW "superslow" +#define ROOT "root" + //================================================= //I hate adding defines like this but I'd much rather deal with bitflags than lists and string searches @@ -99,7 +102,7 @@ //Bitflags defining which status effects could be or are inflicted on a mob -#define STATUS_FLAGS_DEBILITATE (CANSTUN|CANKNOCKOUT|CANDAZE|CANSLOW) +#define STATUS_FLAGS_DEBILITATE (CANSTUN|CANKNOCKOUT|CANDAZE|CANSLOW|CANROOT) #define CANSTUN (1<<0) #define CANKNOCKDOWN (1<<1) @@ -107,6 +110,7 @@ #define CANPUSH (1<<3) #define LEAPING (1<<4) #define PASSEMOTES (1<<5) //holders inside of mob that need to see emotes. +#define CANROOT (1<<6) #define GODMODE (1<<12) #define FAKEDEATH (1<<13) //Replaces stuff like changeling.changeling_fakedeath #define DISFIGURED (1<<14) //I'll probably move this elsewhere if I ever get wround to writing a bitflag mob-damage system @@ -116,6 +120,7 @@ #define CANDAZE (1<<18) #define CANSLOW (1<<19) #define NO_PERMANENT_DAMAGE (1<<20) +#define CORRUPTED_ALLY (1<<21) // ============================= // hive types @@ -133,7 +138,9 @@ #define XENO_HIVE_YAUTJA "xeno_hive_yautja" #define XENO_HIVE_RENEGADE "xeno_hive_renegade" -#define ALL_XENO_HIVES list(XENO_HIVE_NORMAL, XENO_HIVE_CORRUPTED, XENO_HIVE_ALPHA, XENO_HIVE_BRAVO, XENO_HIVE_CHARLIE, XENO_HIVE_DELTA, XENO_HIVE_FERAL, XENO_HIVE_TAMED, XENO_HIVE_MUTATED, XENO_HIVE_FORSAKEN, XENO_HIVE_YAUTJA, XENO_HIVE_RENEGADE) +#define XENO_HIVE_TUTORIAL "xeno_hive_tutorial" + +#define ALL_XENO_HIVES list(XENO_HIVE_NORMAL, XENO_HIVE_CORRUPTED, XENO_HIVE_ALPHA, XENO_HIVE_BRAVO, XENO_HIVE_CHARLIE, XENO_HIVE_DELTA, XENO_HIVE_FERAL, XENO_HIVE_TAMED, XENO_HIVE_MUTATED, XENO_HIVE_FORSAKEN, XENO_HIVE_YAUTJA, XENO_HIVE_RENEGADE, XENO_HIVE_TUTORIAL) //================================================= @@ -194,22 +201,22 @@ //================================================= //Species flags. -#define NO_BLOOD (1<<0) -#define NO_BREATHE (1<<1) +#define NO_BLOOD (1<<0) +#define NO_BREATHE (1<<1) #define NO_CLONE_LOSS (1<<2) -#define NO_SLIP (1<<3) +#define NO_SLIP (1<<3) #define NO_POISON (1<<4) -#define NO_CHEM_METABOLIZATION (1<<5) //Prevents reagents from acting on_mob_life(). +#define NO_CHEM_METABOLIZATION (1<<5) //Prevents reagents from acting on_mob_life(). #define HAS_SKIN_TONE (1<<6) -#define HAS_SKIN_COLOR (1<<7) -#define HAS_LIPS (1<<8) +#define HAS_SKIN_COLOR (1<<7) +#define HAS_LIPS (1<<8) #define HAS_UNDERWEAR (1<<9) -#define IS_WHITELISTED (1<<10) -#define IS_SYNTHETIC (1<<11) -#define NO_NEURO (1<<12) +#define IS_WHITELISTED (1<<10) +#define IS_SYNTHETIC (1<<11) +#define NO_NEURO (1<<12) #define SPECIAL_BONEBREAK (1<<13) //species do not get their bonebreak chance modified by endurance -#define NO_SHRAPNEL (1<<14) -#define HAS_HARDCRIT (1<<15) +#define NO_SHRAPNEL (1<<14) +#define HAS_HARDCRIT (1<<15) //================================================= @@ -303,77 +310,6 @@ #define CAN_HOLD_TWO_HANDS 1 #define CAN_HOLD_ONE_HAND 2 -// ------------ // -// STRAIN FLAGS // -// ------------ // - -// Queen strain flags -#define QUEEN_NORMAL "Normal" - -// Facehugger strain flags -#define FACEHUGGER_NORMAL "Normal" -#define FACEHUGGER_WATCHER "Watcher" - -// Drone strain flags -#define DRONE_NORMAL "Normal" -#define DRONE_HEALER "Healer" -#define DRONE_GARDENER "Gardener" - -// Hivelord strain flags -#define HIVELORD_NORMAL "Normal" -#define HIVELORD_RESIN_WHISPERER "Resin Whisperer" - -// Carrier strain flags -#define CARRIER_NORMAL "Normal" -#define CARRIER_EGGSAC "Eggsac" - -// Burrower strain flags -#define BURROWER_NORMAL "Normal" -#define BURROWER_TREMOR "Tremor" - -// Sentinel strain flags -#define SENTINEL_NORMAL "Normal" - -// Spitter strain flags -#define SPITTER_NORMAL "Normal" - -// Boiler strain flags -#define BOILER_NORMAL "Normal" -#define BOILER_TRAPPER "Trapper" - -// Runner strain flags -#define RUNNER_NORMAL "Normal" -#define RUNNER_ACIDER "Acider" - -// Lurker strain flags -#define LURKER_NORMAL "Normal" -#define LURKER_VAMPIRE "Vampire" -// Ravager strain flags -#define RAVAGER_NORMAL "Normal" -#define RAVAGER_HEDGEHOG "Hedgehog" -#define RAVAGER_BERSERKER "Berserker" - -// Defender strain flags -#define DEFENDER_NORMAL "Normal" -#define DEFENDER_STEELCREST "Steelcrest" - -// Warrior strain flags -#define WARRIOR_NORMAL "Normal" - -// Crusher strain flags -#define CRUSHER_NORMAL "Normal" -#define CRUSHER_CHARGER "Charger" - -// Praetorian strain flags -#define PRAETORIAN_NORMAL "Normal" -#define PRAETORIAN_VANGUARD "Vanguard" -#define PRAETORIAN_DANCER "Dancer" -#define PRAETORIAN_WARDEN "Warden" -#define PRAETORIAN_OPPRESSOR "Oppressor" - -// Hellhound strain flags -#define HELLHOUND_NORMAL "Normal" - GLOBAL_LIST_INIT(default_onmob_icons, list( WEAR_L_HAND = 'icons/mob/humans/onmob/items_lefthand_0.dmi', WEAR_R_HAND = 'icons/mob/humans/onmob/items_righthand_0.dmi', @@ -444,6 +380,6 @@ GLOBAL_LIST_INIT(default_xeno_onmob_icons, list( #define MOBILITY_LIEDOWN (1<<8) #define MOBILITY_FLAGS_DEFAULT (MOBILITY_MOVE | MOBILITY_STAND) +#define MOBILITY_FLAGS_LYING_CAPABLE_DEFAULT (MOBILITY_MOVE | MOBILITY_STAND | MOBILITY_LIEDOWN) #define MOBILITY_FLAGS_CARBON_DEFAULT (MOBILITY_MOVE | MOBILITY_STAND | MOBILITY_REST | MOBILITY_LIEDOWN) #define MOBILITY_FLAGS_REST_CAPABLE_DEFAULT (MOBILITY_MOVE | MOBILITY_STAND | MOBILITY_REST | MOBILITY_LIEDOWN) - diff --git a/code/__DEFINES/mode.dm b/code/__DEFINES/mode.dm index 94428ba7d9b3..4c3a658ff421 100644 --- a/code/__DEFINES/mode.dm +++ b/code/__DEFINES/mode.dm @@ -72,10 +72,12 @@ #define MODE_HARDCORE_PERMA (1<<9) /// Toggles Hardcore for all marines, meaning they instantly perma upon death #define MODE_DISPOSABLE_MOBS (1<<10) // Toggles if mobs fit in disposals or not. Off by default. #define MODE_BYPASS_JOE (1<<11) // Toggles if ghosts can bypass Working Joe spawn limitations, does NOT bypass WL requirement. Off by default. +#define MODE_DISABLE_JOE_RESPAWN (1<<12) // Toggles if ghosts can respawn as Working Joes after dying as one when 15 minutes have passed. Off by default #define ROUNDSTATUS_FOG_DOWN 1 #define ROUNDSTATUS_PODDOORS_OPEN 2 +#define LATEJOIN_MARINES_PER_LATEJOIN_LARVA_EARLY 4 #define LATEJOIN_MARINES_PER_LATEJOIN_LARVA 2.5 //================================================= @@ -90,6 +92,15 @@ #define PAIN_OVERLAY_LEGACY 2 //Creates a legacy blurring effect over your screen if you have any eye_blur at all. Not recommended. //================================================= +//================================================= +#define FLASH_OVERLAY_WHITE 0 //Flashes your screen white. +#define FLASH_OVERLAY_DARK 1 //Flashes your screen a dark grey. +//================================================= + +//================================================= +#define CRIT_OVERLAY_WHITE 0 //Overlays your screen white. +#define CRIT_OVERLAY_DARK 1 //Overlays your screen a dark grey. +//================================================= /// Number of weighted marine players for 1 gear_scale. gear_scale is clamped to 1 minimum #define MARINE_GEAR_SCALING_NORMAL 50 @@ -109,12 +120,12 @@ //================================================= //Role defines, specifically lists of roles for job bans, crew manifests and the like. -GLOBAL_LIST_INIT(ROLES_COMMAND, list(JOB_CO, JOB_XO, JOB_SO, JOB_AUXILIARY_OFFICER, JOB_INTEL, JOB_PILOT, JOB_DROPSHIP_CREW_CHIEF, JOB_CREWMAN, JOB_POLICE, JOB_CORPORATE_LIAISON, JOB_COMBAT_REPORTER, JOB_CHIEF_REQUISITION, JOB_CHIEF_ENGINEER, JOB_CMO, JOB_CHIEF_POLICE, JOB_SEA, JOB_SYNTH, JOB_WARDEN)) +GLOBAL_LIST_INIT(ROLES_COMMAND, list(JOB_CO, JOB_XO, JOB_SO, JOB_AUXILIARY_OFFICER, JOB_INTEL, JOB_CAS_PILOT, JOB_DROPSHIP_PILOT, JOB_TANK_CREW, JOB_DROPSHIP_CREW_CHIEF, JOB_POLICE, JOB_CORPORATE_LIAISON, JOB_COMBAT_REPORTER, JOB_CHIEF_REQUISITION, JOB_CHIEF_ENGINEER, JOB_CMO, JOB_CHIEF_POLICE, JOB_SEA, JOB_SYNTH, JOB_WARDEN)) //Marine roles -#define ROLES_OFFICERS list(JOB_CO, JOB_XO, JOB_SO, JOB_AUXILIARY_OFFICER, JOB_INTEL, JOB_PILOT, JOB_DROPSHIP_CREW_CHIEF, JOB_SEA, JOB_CORPORATE_LIAISON, JOB_COMBAT_REPORTER, JOB_SYNTH, JOB_CHIEF_POLICE, JOB_WARDEN, JOB_POLICE) +#define ROLES_OFFICERS list(JOB_CO, JOB_XO, JOB_SO, JOB_AUXILIARY_OFFICER, JOB_INTEL, JOB_CAS_PILOT, JOB_DROPSHIP_PILOT, JOB_TANK_CREW, JOB_DROPSHIP_CREW_CHIEF, JOB_SEA, JOB_CORPORATE_LIAISON, JOB_COMBAT_REPORTER, JOB_SYNTH, JOB_CHIEF_POLICE, JOB_WARDEN, JOB_POLICE) GLOBAL_LIST_INIT(ROLES_CIC, list(JOB_CO, JOB_XO, JOB_SO, JOB_WO_CO, JOB_WO_XO)) -GLOBAL_LIST_INIT(ROLES_AUXIL_SUPPORT, list(JOB_AUXILIARY_OFFICER, JOB_INTEL, JOB_PILOT, JOB_DROPSHIP_CREW_CHIEF, JOB_WO_CHIEF_POLICE, JOB_WO_SO, JOB_WO_CREWMAN, JOB_WO_POLICE, JOB_WO_PILOT)) +GLOBAL_LIST_INIT(ROLES_AUXIL_SUPPORT, list(JOB_AUXILIARY_OFFICER, JOB_INTEL, JOB_CAS_PILOT, JOB_DROPSHIP_PILOT, JOB_DROPSHIP_CREW_CHIEF, JOB_TANK_CREW, JOB_WO_CHIEF_POLICE, JOB_WO_SO, JOB_WO_CREWMAN, JOB_WO_POLICE, JOB_WO_PILOT)) GLOBAL_LIST_INIT(ROLES_MISC, list(JOB_SYNTH, JOB_WORKING_JOE, JOB_SEA, JOB_CORPORATE_LIAISON, JOB_COMBAT_REPORTER, JOB_MESS_SERGEANT, JOB_WO_CORPORATE_LIAISON, JOB_WO_SYNTH)) GLOBAL_LIST_INIT(ROLES_POLICE, list(JOB_CHIEF_POLICE, JOB_WARDEN, JOB_POLICE)) GLOBAL_LIST_INIT(ROLES_ENGINEERING, list(JOB_CHIEF_ENGINEER, JOB_ORDNANCE_TECH, JOB_MAINT_TECH, JOB_WO_CHIEF_ENGINEER, JOB_WO_ORDNANCE_TECH)) @@ -140,9 +151,9 @@ GLOBAL_LIST_INIT(ROLES_UNASSIGNED, list(JOB_SQUAD_MARINE)) //Role lists used for switch() checks in show_blurb_uscm(). Cosmetic, determines ex. "Engineering, USS Almayer", "2nd Bat. 'Falling Falcons'" etc. #define BLURB_USCM_COMBAT JOB_CO, JOB_XO, JOB_SO, JOB_WO_CO, JOB_WO_XO, JOB_WO_CHIEF_POLICE, JOB_WO_SO, JOB_WO_CREWMAN, JOB_WO_POLICE, JOB_SEA,\ JOB_SQUAD_LEADER, JOB_SQUAD_TEAM_LEADER, JOB_SQUAD_SPECIALIST, JOB_SQUAD_SMARTGUN, JOB_SQUAD_MEDIC, JOB_SQUAD_ENGI, JOB_SQUAD_MARINE -#define BLURB_USCM_FLIGHT JOB_PILOT, JOB_DROPSHIP_CREW_CHIEF +#define BLURB_USCM_FLIGHT JOB_CAS_PILOT, JOB_DROPSHIP_PILOT, JOB_DROPSHIP_CREW_CHIEF #define BLURB_USCM_MP JOB_CHIEF_POLICE, JOB_WARDEN, JOB_POLICE -#define BLURB_USCM_ENGI JOB_CHIEF_ENGINEER, JOB_ORDNANCE_TECH, JOB_MAINT_TECH, JOB_WO_CHIEF_ENGINEER, JOB_WO_ORDNANCE_TECH, JOB_WO_PILOT +#define BLURB_USCM_ENGI JOB_CHIEF_ENGINEER, JOB_ORDNANCE_TECH, JOB_MAINT_TECH, JOB_WO_CHIEF_ENGINEER, JOB_WO_ORDNANCE_TECH, JOB_TANK_CREW, JOB_WO_PILOT #define BLURB_USCM_MEDICAL JOB_CMO, JOB_RESEARCHER, JOB_DOCTOR, JOB_NURSE, JOB_WO_CMO, JOB_WO_RESEARCHER, JOB_WO_DOCTOR #define BLURB_USCM_REQ JOB_CHIEF_REQUISITION, JOB_CARGO_TECH, JOB_WO_CHIEF_REQUISITION, JOB_WO_REQUISITION #define BLURB_USCM_WY JOB_CORPORATE_LIAISON @@ -156,6 +167,7 @@ GLOBAL_LIST_INIT(ROLES_UNASSIGNED, list(JOB_SQUAD_MARINE)) GLOBAL_LIST_INIT(whitelist_hierarchy, list(WHITELIST_NORMAL, WHITELIST_COUNCIL, WHITELIST_LEADER)) //================================================= + #define WHITELIST_YAUTJA (1<<0) ///Old holders of YAUTJA_ELDER #define WHITELIST_YAUTJA_LEGACY (1<<1) @@ -170,15 +182,20 @@ GLOBAL_LIST_INIT(whitelist_hierarchy, list(WHITELIST_NORMAL, WHITELIST_COUNCIL, ///Old holders of COMMANDER_COUNCIL for 3 months #define WHITELIST_COMMANDER_COUNCIL_LEGACY (1<<7) #define WHITELIST_COMMANDER_LEADER (1<<8) +///Former CO senator/whitelist overseer award +#define WHITELIST_COMMANDER_COLONEL (1<<9) -#define WHITELIST_JOE (1<<9) -#define WHITELIST_SYNTHETIC (1<<10) -#define WHITELIST_SYNTHETIC_COUNCIL (1<<11) +#define WHITELIST_JOE (1<<10) +#define WHITELIST_SYNTHETIC (1<<11) +#define WHITELIST_SYNTHETIC_COUNCIL (1<<12) ///Old holders of SYNTHETIC_COUNCIL for 3 months -#define WHITELIST_SYNTHETIC_COUNCIL_LEGACY (1<<12) -#define WHITELIST_SYNTHETIC_LEADER (1<<13) +#define WHITELIST_SYNTHETIC_COUNCIL_LEGACY (1<<13) +#define WHITELIST_SYNTHETIC_LEADER (1<<14) + +///Senior Enlisted Advisor, auto granted by R_MENTOR +#define WHITELIST_MENTOR (1<<15) + -#define WHITELIST_MENTOR (1<<14) #define WHITELISTS_GENERAL (WHITELIST_YAUTJA|WHITELIST_COMMANDER|WHITELIST_SYNTHETIC|WHITELIST_MENTOR|WHITELIST_JOE) #define WHITELISTS_COUNCIL (WHITELIST_YAUTJA_COUNCIL|WHITELIST_COMMANDER_COUNCIL|WHITELIST_SYNTHETIC_COUNCIL) #define WHITELISTS_LEGACY_COUNCIL (WHITELIST_YAUTJA_COUNCIL_LEGACY|WHITELIST_COMMANDER_COUNCIL_LEGACY|WHITELIST_SYNTHETIC_COUNCIL_LEGACY) @@ -186,7 +203,29 @@ GLOBAL_LIST_INIT(whitelist_hierarchy, list(WHITELIST_NORMAL, WHITELIST_COUNCIL, #define WHITELIST_EVERYTHING (WHITELISTS_GENERAL|WHITELISTS_COUNCIL|WHITELISTS_LEADER) -#define isCouncil(A) (GLOB.RoleAuthority.roles_whitelist[A.ckey] & WHITELIST_YAUTJA_COUNCIL) || (GLOB.RoleAuthority.roles_whitelist[A.ckey] & WHITELIST_SYNTHETIC_COUNCIL) || (GLOB.RoleAuthority.roles_whitelist[A.ckey] & WHITELIST_COMMANDER_COUNCIL) +#define COUNCIL_LIST list(WHITELIST_COMMANDER_COUNCIL, WHITELIST_SYNTHETIC_COUNCIL, WHITELIST_YAUTJA_COUNCIL) +#define SENATOR_LIST list(WHITELIST_COMMANDER_LEADER, WHITELIST_SYNTHETIC_LEADER, WHITELIST_YAUTJA_LEADER) +#define isCouncil(A) (A.check_whitelist_status_list(COUNCIL_LIST)) +#define isSenator(A) (A.check_whitelist_status_list(SENATOR_LIST)) + +DEFINE_BITFIELD(whitelist_status, list( + "WHITELIST_YAUTJA" = WHITELIST_YAUTJA, + "WHITELIST_YAUTJA_LEGACY" = WHITELIST_YAUTJA_LEGACY, + "WHITELIST_YAUTJA_COUNCIL" = WHITELIST_YAUTJA_COUNCIL, + "WHITELIST_YAUTJA_COUNCIL_LEGACY" = WHITELIST_YAUTJA_COUNCIL_LEGACY, + "WHITELIST_YAUTJA_LEADER" = WHITELIST_YAUTJA_LEADER, + "WHITELIST_COMMANDER" = WHITELIST_COMMANDER, + "WHITELIST_COMMANDER_COUNCIL" = WHITELIST_COMMANDER_COUNCIL, + "WHITELIST_COMMANDER_COUNCIL_LEGACY" = WHITELIST_COMMANDER_COUNCIL_LEGACY, + "WHITELIST_COMMANDER_COLONEL" = WHITELIST_COMMANDER_COLONEL, + "WHITELIST_COMMANDER_LEADER" = WHITELIST_COMMANDER_LEADER, + "WHITELIST_JOE" = WHITELIST_JOE, + "WHITELIST_SYNTHETIC" = WHITELIST_SYNTHETIC, + "WHITELIST_SYNTHETIC_COUNCIL" = WHITELIST_SYNTHETIC_COUNCIL, + "WHITELIST_SYNTHETIC_COUNCIL_LEGACY" = WHITELIST_SYNTHETIC_COUNCIL_LEGACY, + "WHITELIST_SYNTHETIC_LEADER" = WHITELIST_SYNTHETIC_LEADER, + "WHITELIST_MENTOR" = WHITELIST_MENTOR, +)) //================================================= @@ -241,8 +280,17 @@ GLOBAL_LIST_INIT(whitelist_hierarchy, list(WHITELIST_NORMAL, WHITELIST_COUNCIL, #define FACTION_LIST_MARINE list(FACTION_MARINE) #define FACTION_LIST_HUMANOID list(FACTION_MARINE, FACTION_PMC, FACTION_WY, FACTION_WY_DEATHSQUAD, FACTION_CLF, FACTION_CONTRACTOR, FACTION_MARSHAL, FACTION_UPP, FACTION_FREELANCER, FACTION_SURVIVOR, FACTION_NEUTRAL, FACTION_COLONIST, FACTION_MERCENARY, FACTION_DUTCH, FACTION_HEFA, FACTION_GLADIATOR, FACTION_PIRATE, FACTION_PIZZA, FACTION_SOUTO, FACTION_YAUTJA, FACTION_ZOMBIE, FACTION_TWE) -#define FACTION_LIST_ERT list(FACTION_PMC, FACTION_WY_DEATHSQUAD, FACTION_CLF, FACTION_CONTRACTOR, FACTION_UPP, FACTION_FREELANCER, FACTION_MERCENARY, FACTION_DUTCH, FACTION_HEFA, FACTION_GLADIATOR, FACTION_PIRATE, FACTION_PIZZA, FACTION_SOUTO, FACTION_MARSHAL, FACTION_TWE) +#define FACTION_LIST_ERT list(FACTION_HEFA, FACTION_GLADIATOR, FACTION_PIRATE, FACTION_PIZZA, FACTION_SOUTO) #define FACTION_LIST_WY list(FACTION_PMC, FACTION_WY_DEATHSQUAD, FACTION_WY) +#define FACTION_LIST_UPP list(FACTION_UPP) +#define FACTION_LIST_CLF list(FACTION_CLF) +#define FACTION_LIST_TWE list(FACTION_TWE) +#define FACTION_LIST_FREELANCER list(FACTION_FREELANCER) +#define FACTION_LIST_CONTRACTOR list(FACTION_CONTRACTOR) +#define FACTION_LIST_MERCENARY list(FACTION_MERCENARY) +#define FACTION_LIST_MARSHAL list(FACTION_MARSHAL) +#define FACTION_LIST_DUTCH list(FACTION_DUTCH) +#define FACTION_LIST_SURVIVOR_WY list(FACTION_SURVIVOR, FACTION_PMC, FACTION_WY_DEATHSQUAD, FACTION_WY) #define FACTION_LIST_MARINE_WY list(FACTION_MARINE, FACTION_PMC, FACTION_WY_DEATHSQUAD, FACTION_WY) #define FACTION_LIST_MARINE_UPP list(FACTION_MARINE, FACTION_UPP) #define FACTION_LIST_MARINE_TWE list(FACTION_MARINE, FACTION_TWE) diff --git a/code/__DEFINES/objects.dm b/code/__DEFINES/objects.dm index 292b315360c5..26db2f3d2254 100644 --- a/code/__DEFINES/objects.dm +++ b/code/__DEFINES/objects.dm @@ -86,6 +86,7 @@ GLOBAL_LIST_INIT(RESTRICTED_CAMERA_NETWORKS, list( //Those networks can only be CAMERA_NET_LADDER, CAMERA_NET_COLONY, CAMERA_NET_OVERWATCH, + CAMERA_NET_ARES, )) #define STASIS_IN_BAG 1 @@ -155,7 +156,9 @@ GLOBAL_LIST_INIT(RESTRICTED_CAMERA_NETWORKS, list( //Those networks can only be #define RESULT_REQUIRES_SNOW (1<<0) +/// Reaction type from touching it #define TOUCH 1 +/// Reaction type from eating it #define INGEST 2 /// Marks an object as organic. Used for alien structures and any other organic material @@ -175,3 +178,8 @@ GLOBAL_LIST_INIT(RESTRICTED_CAMERA_NETWORKS, list( //Those networks can only be #define CHECKS_PASSED 1 #define STILL_ON_COOLDOWN 2 #define NO_LIGHT_STATE_CHANGE 3 + +//tool capabilities or something i don't know +#define REMOVE_CROWBAR (1<<0) +#define BREAK_CROWBAR (1<<1) +#define REMOVE_SCREWDRIVER (1<<2) diff --git a/code/__DEFINES/paygrade_defs/civilian.dm b/code/__DEFINES/paygrade_defs/civilian.dm index ed99a363dedd..ed25a3f50af5 100644 --- a/code/__DEFINES/paygrade_defs/civilian.dm +++ b/code/__DEFINES/paygrade_defs/civilian.dm @@ -19,9 +19,12 @@ /// SYN, Synthetic #define PAY_SHORT_SYN "SYN" -/// OPR, Operative +/// OPR, Operator #define PAY_SHORT_OPR "OPR" +/// CDNM, Operative (intended for codenamed people IE Operative Theta) +#define PAY_SHORT_CDNM "CDNM" + /// CPO, Officer #define PAY_SHORT_CPO "CPO" diff --git a/code/__DEFINES/paygrade_defs/mercs.dm b/code/__DEFINES/paygrade_defs/mercs.dm new file mode 100644 index 000000000000..4cad90496e24 --- /dev/null +++ b/code/__DEFINES/paygrade_defs/mercs.dm @@ -0,0 +1,45 @@ +// Paygrade shorthand defines, to allow clearer designation. + +// MERCENARIES +/// FL-S, Standard +#define PAY_SHORT_FL_S "FL-S" + +/// FL-M, Medic +#define PAY_SHORT_FL_M "FL-M" + +/// FL-WL, Warlord +#define PAY_SHORT_FL_WL "FL-WL" + +/// EFL-S, Elite Standard +#define PAY_SHORT_EFL_S "EFL-S" + +/// EFL-M, Elite Medic +#define PAY_SHORT_EFL_M "EFL-M" + +/// EFL-E, Elite Engineer +#define PAY_SHORT_EFL_E "EFL-E" + +/// EFL-H, Elite Heavy +#define PAY_SHORT_EFL_H "EFL-H" + +/// EFL-WL, Elite Warlord +#define PAY_SHORT_EFL_TL "EFL-TL" + +// VANGUARD'S ARROW INC +/// VAI-S, Standard +#define PAY_SHORT_VAI_S "VAI-S" + +/// VAI-M, Medic +#define PAY_SHORT_VAI_M "VAI-M" + +/// VAI-E, Engineer +#define PAY_SHORT_VAI_E "VAI-E" + +/// VAI-G, Machinegunner +#define PAY_SHORT_VAI_G "VAI-G" + +/// VAI-SN, Synthetic +#define PAY_SHORT_VAI_SN "VAI-SN" + +/// VAI-L, Team Leader +#define PAY_SHORT_VAI_L "VAI-L" diff --git a/code/__DEFINES/paygrade_defs/paygrade.dm b/code/__DEFINES/paygrade_defs/paygrade.dm new file mode 100644 index 000000000000..5bf9a58d7447 --- /dev/null +++ b/code/__DEFINES/paygrade_defs/paygrade.dm @@ -0,0 +1,6 @@ +/// Paygrade is equivalent to or is an enlisted position. +#define GRADE_ENLISTED 0 +/// Paygrade is equivalent to or is an officer. +#define GRADE_OFFICER 1 +/// Paygrade is for high command or senior leadership. Military flag officers. +#define GRADE_FLAG 2 diff --git a/code/__DEFINES/paygrade_defs/twe.dm b/code/__DEFINES/paygrade_defs/twe.dm new file mode 100644 index 000000000000..da1c6a5fa4fb --- /dev/null +++ b/code/__DEFINES/paygrade_defs/twe.dm @@ -0,0 +1,38 @@ +// Paygrade shorthand defines, to allow clearer designation. + +// THREE WORLD EMPIRE +/// RMC1, Heitai-Marine +#define PAY_SHORT_RMC1 "RMC1" + +/// RMC2, Santo-Lance Corporal +#define PAY_SHORT_RMC2 "RMC2" + +/// RMC3, Nito-Corporal +#define PAY_SHORT_RMC3 "RMC3" + +/// RMC4, Itto-Sergeant +#define PAY_SHORT_RMC4 "RMC4" + +/// RNOW, Warrant Officer +#define PAY_SHORT_RNOW "RNOW" + +/// RNO1, Second Lieutenant +#define PAY_SHORT_RNO1 "RNO1" + +/// RNO2, First Lieutenant +#define PAY_SHORT_RNO2 "RNO2" + +/// RNO3, Standing Officer +#define PAY_SHORT_RNO3 "RNO3" + +/// RNO4, Captain +#define PAY_SHORT_RNO4 "RNO4" + +/// RNO5, Admiral +#define PAY_SHORT_RNO5 "RNO5" + +/// RNO6, Grand Admiral +#define PAY_SHORT_RNO6 "RNO6" + +/// EMP, Emperor +#define PAY_SHORT_EMP "EMP" diff --git a/code/__DEFINES/paygrade_defs/weyland.dm b/code/__DEFINES/paygrade_defs/weyland.dm index 1b6c168e9b6e..dd65caa6db00 100644 --- a/code/__DEFINES/paygrade_defs/weyland.dm +++ b/code/__DEFINES/paygrade_defs/weyland.dm @@ -1,6 +1,6 @@ // Paygrade shorthand defines, to allow clearer designation. -// Weyland Yutani +// Weyland Yutani Corporate /// WYC1, Trainee #define PAY_SHORT_WYC1 "WYC1" @@ -30,3 +30,49 @@ /// WYC10, Director #define PAY_SHORT_WYC10 "WYC10" + +// Weyland Yutani Private Military +/// PMC-OP, Operator, standard PMC. +#define PAY_SHORT_PMC_OP "PMC-OP" + +/// PMC-EN, Enforcer +#define PAY_SHORT_PMC_EN "PMC-EN" + +/// PMC-SS, Support Specialist +#define PAY_SHORT_PMC_SS "PMC-SS" + +/// PMC-MS, Medical Specialist +#define PAY_SHORT_PMC_MS "PMC-MS" + +/// PMC-WS, Weapons Specialist +#define PAY_SHORT_PMC_WS "PMC-WS" + +/// PMC-VS, Vehicle Specialist +#define PAY_SHORT_PMC_VS "PMC-VS" + +/// PMC-XS, Xeno Specialist (Handler) +#define PAY_SHORT_PMC_XS "PMC-XS" + +/// PMC-TL, Team Leader +#define PAY_SHORT_PMC_TL "PMC-TL" + +/// PMC-DOC, Trauma Surgeon +#define PAY_SHORT_PMC_DOC "PMC-DOC" + +/// PMC-ENG, Technician +#define PAY_SHORT_PMC_TEC "PMC-TEC" + +/// PMC-ELR, Elite Responder +#define PAY_SHORT_PMC_ELR "PMC-ELR" + +/// PMC-ELM, Elite Medic +#define PAY_SHORT_PMC_ELM "PMC-ELM" + +/// PMC-ELG, Elite Gunner +#define PAY_SHORT_PMC_ELG "PMC-ELG" + +/// PMC-ETL, Elite Team Leader +#define PAY_SHORT_PMC_ETL "PMC-ETL" + +/// PMC-DIR, PMC Director +#define PAY_SHORT_PMC_DIR "PMC-DIR" diff --git a/code/__DEFINES/sentry_laptop_configurations.dm b/code/__DEFINES/sentry_laptop_configurations.dm index 8626ba2cfaee..86c7e646c38a 100644 --- a/code/__DEFINES/sentry_laptop_configurations.dm +++ b/code/__DEFINES/sentry_laptop_configurations.dm @@ -1,7 +1,6 @@ -#define FACTION_USCM "USCM" -#define FACTION_WEYLAND "WY" -#define FACTION_HUMAN "HUMAN" -#define FACTION_COLONY "COLONY" +#define SENTRY_FACTION_WEYLAND "WY" +#define SENTRY_FACTION_HUMAN "HUMAN" +#define SENTRY_FACTION_COLONY "COLONY" #define ROF_SINGLE "SINGLE" #define ROF_BURST "BURST" diff --git a/code/__DEFINES/shuttles.dm b/code/__DEFINES/shuttles.dm index a3299184e4ef..af3e164deb71 100644 --- a/code/__DEFINES/shuttles.dm +++ b/code/__DEFINES/shuttles.dm @@ -41,7 +41,7 @@ #define TRANSIT_REQUEST 1 #define TRANSIT_READY 2 -#define SHUTTLE_TRANSIT_BORDER 8 +#define SHUTTLE_TRANSIT_BORDER 16 #define PARALLAX_LOOP_TIME 25 #define HYPERSPACE_END_TIME 5 @@ -96,8 +96,8 @@ #define MOBILE_SHUTTLE_ID_ERT2 "ert_pmc_shuttle" #define MOBILE_SHUTTLE_ID_ERT3 "ert_upp_shuttle" #define MOBILE_SHUTTLE_ID_ERT4 "ert_twe_shuttle" -#define MOBILE_SHUTTLE_ID_ERT_SMALL "ert_rescue_shuttle" -#define MOBILE_SHUTTLE_ID_ERT_BIG "ert_boarding_shuttle" +#define MOBILE_SHUTTLE_ID_ERT_SMALL "ert_small_shuttle_north" +#define MOBILE_SHUTTLE_ID_ERT_BIG "ert_shuttle_big" #define MOBILE_TRIJENT_ELEVATOR "trijentshuttle2" #define STAT_TRIJENT_EMPTY "trijent_empty" @@ -134,3 +134,11 @@ #define ESCAPE_SHUTTLE_SOUTH_PREFIX "escape_shuttle_s" #define ESCAPE_SHUTTLE_DOCK_PREFIX "almayer-hangar-escape-shuttle-" + +#define ERT_SHUTTLE_DEFAULT_RECHARGE 90 SECONDS + +#define ADMIN_LANDING_PAD_1 "base-ert1" +#define ADMIN_LANDING_PAD_2 "base-ert2" +#define ADMIN_LANDING_PAD_3 "base-ert3" +#define ADMIN_LANDING_PAD_4 "base-ert4" +#define ADMIN_LANDING_PAD_5 "base-ert5" diff --git a/code/__DEFINES/sounds.dm b/code/__DEFINES/sounds.dm index 541d95d28189..807305174b34 100644 --- a/code/__DEFINES/sounds.dm +++ b/code/__DEFINES/sounds.dm @@ -60,6 +60,9 @@ #define SOUND_ENVIRONMENT_DIZZY 24 #define SOUND_ENVIRONMENT_PSYCHOTIC 25 +#define SOUND_ECHO_REVERB_ON list(0, 0, 0, 0, 0, 0.0, 0, 0.25, 1.5, 1.0, 0, 1.0, 0, 0.0, 0.0, 0.0, 1.0, 0) +#define SOUND_ECHO_REVERB_OFF list(0, 0, -10000, -10000, 0, 0.0, 0, 0.25, 1.5, 1.0, 0, 1.0, 0, 0.0, 0.0, 0.0, 1.0, 0) //-10000 to Room & RoomHF makes enviromental reverb effectively inaudible + #define AMBIENCE_SHIP 'sound/ambience/shipambience.ogg' #define AMBIENCE_JUNGLE 'sound/ambience/ambienceLV624.ogg' #define AMBIENCE_RIVER 'sound/ambience/ambienceriver.ogg' diff --git a/code/__DEFINES/status_effects.dm b/code/__DEFINES/status_effects.dm new file mode 100644 index 000000000000..ecccbd40abeb --- /dev/null +++ b/code/__DEFINES/status_effects.dm @@ -0,0 +1,25 @@ +///if it allows multiple instances of the effect +#define STATUS_EFFECT_MULTIPLE 0 +///if it allows only one, preventing new instances +#define STATUS_EFFECT_UNIQUE 1 +///if it allows only one, but new instances replace +#define STATUS_EFFECT_REPLACE 2 +/// if it only allows one, and new instances just instead refresh the timer +#define STATUS_EFFECT_REFRESH 3 + +///Processing flags - used to define the speed at which the status will work +///This is fast - 0.2s between ticks (I believe!) +#define STATUS_EFFECT_FAST_PROCESS 0 +///This is slower and better for more intensive status effects - 1s between ticks +#define STATUS_EFFECT_NORMAL_PROCESS 1 + +//Incapacitated status effect flags +/// If the incapacitated status effect will ignore a mob in restraints (handcuffs) +#define IGNORE_RESTRAINTS (1<<0) +/// If the incapacitated status effect will ignore a mob in stasis (stasis beds) +#define IGNORE_STASIS (1<<1) +/// If the incapacitated status effect will ignore a mob being agressively grabbed +#define IGNORE_GRAB (1<<2) + +/// Time threshold after which we launch ending timer - this should be higher than the slowest processing rate +#define STATUS_EFFECT_TIME_THRESHOLD (2 SECONDS) diff --git a/code/__DEFINES/strippable.dm b/code/__DEFINES/strippable.dm new file mode 100644 index 000000000000..f62c4d6c1b76 --- /dev/null +++ b/code/__DEFINES/strippable.dm @@ -0,0 +1,30 @@ +// All of these must be matched in StripMenu.js. +#define STRIPPABLE_ITEM_HEAD "head" +#define STRIPPABLE_ITEM_BACK "back" +#define STRIPPABLE_ITEM_MASK "wear_mask" +#define STRIPPABLE_ITEM_EYES "glasses" +#define STRIPPABLE_ITEM_L_EAR "wear_l_ear" +#define STRIPPABLE_ITEM_R_EAR "wear_r_ear" +#define STRIPPABLE_ITEM_JUMPSUIT "w_uniform" +#define STRIPPABLE_ITEM_SUIT "wear_suit" +#define STRIPPABLE_ITEM_GLOVES "gloves" +#define STRIPPABLE_ITEM_FEET "shoes" +#define STRIPPABLE_ITEM_SUIT_STORAGE "j_store" +#define STRIPPABLE_ITEM_ID "id" +#define STRIPPABLE_ITEM_BELT "belt" +#define STRIPPABLE_ITEM_LPOCKET "l_store" +#define STRIPPABLE_ITEM_RPOCKET "r_store" +#define STRIPPABLE_ITEM_LHAND "l_hand" +#define STRIPPABLE_ITEM_RHAND "r_hand" +#define STRIPPABLE_ITEM_HANDCUFFS "handcuffs" +#define STRIPPABLE_ITEM_LEGCUFFS "legcuffs" + + +/// This slot is not obscured. +#define STRIPPABLE_OBSCURING_NONE 0 + +/// This slot is completely obscured, and cannot be accessed. +#define STRIPPABLE_OBSCURING_COMPLETELY 1 + +/// This slot can't be seen, but can be accessed. +#define STRIPPABLE_OBSCURING_HIDDEN 2 diff --git a/code/__DEFINES/subsystems.dm b/code/__DEFINES/subsystems.dm index 6af4a3585e29..47aa0e732c76 100644 --- a/code/__DEFINES/subsystems.dm +++ b/code/__DEFINES/subsystems.dm @@ -89,13 +89,13 @@ //! ### SS initialization hints /** * Negative values incidate a failure or warning of some kind, positive are good. - * 0 and 1 are unused so that TRUE and FALSE are guarenteed to be invalid values. + * 0 and 1 are unused so that TRUE and FALSE are guaranteed to be invalid values. */ /// Subsystem failed to initialize entirely. Print a warning, log, and disable firing. #define SS_INIT_FAILURE -2 -/// The default return value which must be overriden. Will succeed with a warning. +/// The default return value which must be overridden. Will succeed with a warning. #define SS_INIT_NONE -1 /// Subsystem initialized sucessfully. @@ -146,8 +146,9 @@ #define SS_INIT_DATABASE -27 #define SS_INIT_ENTITYMANAGER -28 #define SS_INIT_PLAYTIME -29 -#define SS_INIT_PREDSHIPS -30 -#define SS_INIT_OBJECTIVES -31 +#define SS_INIT_STICKY -30 +#define SS_INIT_PREDSHIPS -31 +#define SS_INIT_OBJECTIVES -32 #define SS_INIT_MINIMAP -34 #define SS_INIT_STATPANELS -98 #define SS_INIT_CHAT -100 //Should be last to ensure chat remains smooth during init. @@ -179,9 +180,11 @@ #define SS_PRIORITY_FAST_OBJECTS 105 #define SS_PRIORITY_OBJECTS 104 #define SS_PRIORITY_DECORATOR 99 +#define SS_PRIORITY_EFFECTS 97 +#define SS_PRIORITY_FASTEFFECTS 96 #define SS_PRIORITY_HIJACK 97 #define SS_PRIORITY_POWER 95 -#define SS_PRIORITY_EFFECTS 92 +#define SS_PRIORITY_OLDEFFECTS 92 #define SS_PRIORITY_MACHINERY 90 #define SS_PRIORITY_FZ_TRANSITIONS 88 #define SS_PRIORITY_ROUND_RECORDING 83 diff --git a/code/__DEFINES/surgery.dm b/code/__DEFINES/surgery.dm index 9257172eeee5..d63c6da26ac6 100644 --- a/code/__DEFINES/surgery.dm +++ b/code/__DEFINES/surgery.dm @@ -38,6 +38,15 @@ unless the surgical tool is completely unsuited to what it's being used for.*/ ///A tool that's perfect for the surgery. #define SURGERY_TOOL_MULT_IDEAL 1 +///The (no) chance of failure for surgery because the correct tools/conditions are used or skill compensates +#define SURGERY_FAILURE_IMPOSSIBLE 0 +///The chance of failure for surgery because the the tool/ground is SURGERY_TOOL_MULT_BAD_SUBSTITUTE/SURGERY_SURFACE_MULT_UNSUITED and skill can't compensate enough +#define SURGERY_FAILURE_UNLIKELY 5 +///The chance of failure for surgery because the the tool/ground is SURGERY_TOOL_MULT_AWFUL/SURGERY_SURFACE_MULT_AWFUL and skill can't compensate enough +#define SURGERY_FAILURE_POSSIBLE 25 +///The chance of failure for surgery because the the tool and ground is some combination worse than awful and skill can't compensate enough +#define SURGERY_FAILURE_LIKELY 50 + //When initiating surgeries, these define their order when listed in initiation selector or 'you can't use this tool for anything, but could x, y, or z' messages. ///Appears first in lists. Ex. larva surgery, opening incision. Immediately life-threatening or initiation surgeries. #define SURGERY_PRIORITY_MAXIMUM 5 diff --git a/code/__DEFINES/text.dm b/code/__DEFINES/text.dm index 0ce7e508daac..26567be26255 100644 --- a/code/__DEFINES/text.dm +++ b/code/__DEFINES/text.dm @@ -23,4 +23,4 @@ #define MAX_EMOTE_LEN 256 #define MAX_PAPER_MESSAGE_LEN 3072 #define MAX_BOOK_MESSAGE_LEN 9216 -#define MAX_NAME_LEN 26 +#define MAX_NAME_LEN 28 diff --git a/code/__DEFINES/tgs.config.dm b/code/__DEFINES/tgs.config.dm index e0d5f1baac92..bd30a6707966 100644 --- a/code/__DEFINES/tgs.config.dm +++ b/code/__DEFINES/tgs.config.dm @@ -8,5 +8,5 @@ #define TGS_WARNING_LOG(message) log_world("TGS Warn: [##message]") #define TGS_ERROR_LOG(message) log_world("TGS Error: [##message]") #define TGS_NOTIFY_ADMINS(event) message_admins(##event) -#define TGS_CLIENT_COUNT GLOB.clients.len +#define TGS_CLIENT_COUNT length(GLOB.clients) #define TGS_PROTECT_DATUM(Path) GENERAL_PROTECT_DATUM(##Path) diff --git a/code/__DEFINES/tgs.dm b/code/__DEFINES/tgs.dm index b0e97e05e9b2..e2c89df90e9b 100644 --- a/code/__DEFINES/tgs.dm +++ b/code/__DEFINES/tgs.dm @@ -1,6 +1,6 @@ // tgstation-server DMAPI -#define TGS_DMAPI_VERSION "6.7.0" +#define TGS_DMAPI_VERSION "7.1.2" // All functions and datums outside this document are subject to change with any version and should not be relied on. @@ -50,6 +50,13 @@ #endif +#ifndef TGS_FILE2TEXT_NATIVE +#ifdef file2text +#error Your codebase is re-defining the BYOND proc file2text. The DMAPI requires the native version to read the result of world.Export(). You can fix this by adding "#define TGS_FILE2TEXT_NATIVE file2text" before your override of file2text to allow the DMAPI to use the native version. This will only be used for world.Export(), not regular file accesses +#endif +#define TGS_FILE2TEXT_NATIVE file2text +#endif + // EVENT CODES /// Before a reboot mode change, extras parameters are the current and new reboot mode enums. @@ -73,12 +80,12 @@ #define TGS_EVENT_REPO_MERGE_PULL_REQUEST 3 /// Before the repository makes a sychronize operation. Parameters: Absolute repostiory path. #define TGS_EVENT_REPO_PRE_SYNCHRONIZE 4 -/// Before a BYOND install operation begins. Parameters: [/datum/tgs_version] of the installing BYOND. -#define TGS_EVENT_BYOND_INSTALL_START 5 -/// When a BYOND install operation fails. Parameters: Error message -#define TGS_EVENT_BYOND_INSTALL_FAIL 6 -/// When the active BYOND version changes. Parameters: (Nullable) [/datum/tgs_version] of the current BYOND, [/datum/tgs_version] of the new BYOND. -#define TGS_EVENT_BYOND_ACTIVE_VERSION_CHANGE 7 +/// Before a engine install operation begins. Parameters: Version string of the installing engine. +#define TGS_EVENT_ENGINE_INSTALL_START 5 +/// When a engine install operation fails. Parameters: Error message +#define TGS_EVENT_ENGINE_INSTALL_FAIL 6 +/// When the active engine version changes. Parameters: (Nullable) Version string of the current engine, version string of the new engine. +#define TGS_EVENT_ENGINE_ACTIVE_VERSION_CHANGE 7 /// When the compiler starts running. Parameters: Game directory path, origin commit SHA. #define TGS_EVENT_COMPILE_START 8 /// When a compile is cancelled. No parameters. @@ -108,7 +115,7 @@ // #define TGS_EVENT_DREAM_DAEMON_LAUNCH 22 /// After a single submodule update is performed. Parameters: Updated submodule name. #define TGS_EVENT_REPO_SUBMODULE_UPDATE 23 -/// After CodeModifications are applied, before DreamMaker is run. Parameters: Game directory path, origin commit sha, byond version. +/// After CodeModifications are applied, before DreamMaker is run. Parameters: Game directory path, origin commit sha, version string of the used engine. #define TGS_EVENT_PRE_DREAM_MAKER 24 /// Whenever a deployment folder is deleted from disk. Parameters: Game directory path. #define TGS_EVENT_DEPLOYMENT_CLEANUP 25 @@ -122,6 +129,7 @@ /// The watchdog will restart on reboot. #define TGS_REBOOT_MODE_RESTART 2 +// Note that security levels are currently meaningless in OpenDream /// DreamDaemon Trusted security level. #define TGS_SECURITY_TRUSTED 0 /// DreamDaemon Safe security level. @@ -136,6 +144,11 @@ /// DreamDaemon invisible visibility level. #define TGS_VISIBILITY_INVISIBLE 2 +/// The Build Your Own Net Dream engine. +#define TGS_ENGINE_TYPE_BYOND 0 +/// The OpenDream engine. +#define TGS_ENGINE_TYPE_OPENDREAM 1 + //REQUIRED HOOKS /** @@ -299,6 +312,7 @@ var/datum/tgs_chat_embed/structure/embed /datum/tgs_message_content/New(text) + ..() if(!istext(text)) TGS_ERROR_LOG("[/datum/tgs_message_content] created with no text!") text = null @@ -341,6 +355,7 @@ var/proxy_url /datum/tgs_chat_embed/media/New(url) + ..() if(!istext(url)) CRASH("[/datum/tgs_chat_embed/media] created with no url!") @@ -354,6 +369,7 @@ var/proxy_icon_url /datum/tgs_chat_embed/footer/New(text) + ..() if(!istext(text)) CRASH("[/datum/tgs_chat_embed/footer] created with no text!") @@ -370,6 +386,7 @@ var/proxy_icon_url /datum/tgs_chat_embed/provider/author/New(name) + ..() if(!istext(name)) CRASH("[/datum/tgs_chat_embed/provider/author] created with no name!") @@ -382,6 +399,7 @@ var/is_inline /datum/tgs_chat_embed/field/New(name, value) + ..() if(!istext(name)) CRASH("[/datum/tgs_chat_embed/field] created with no name!") @@ -420,6 +438,7 @@ /** * Send a message to connected chats. This function may sleep! + * If TGS is offline when called, the message may be placed in a queue to be sent and this function will return immediately. Your message will be sent when TGS reconnects to the game. * * message - The [/datum/tgs_message_content] to send. * admin_only: If [TRUE], message will be sent to admin connected chats. Vice-versa applies. @@ -429,6 +448,7 @@ /** * Send a private message to a specific user. This function may sleep! + * If TGS is offline when called, the message may be placed in a queue to be sent and this function will return immediately. Your message will be sent when TGS reconnects to the game. * * message - The [/datum/tgs_message_content] to send. * user: The [/datum/tgs_chat_user] to PM. @@ -438,6 +458,7 @@ /** * Send a message to connected chats that are flagged as game-related in TGS. This function may sleep! + * If TGS is offline when called, the message may be placed in a queue to be sent and this function will return immediately. Your message will be sent when TGS reconnects to the game. * * message - The [/datum/tgs_message_content] to send. * channels - Optional list of [/datum/tgs_chat_channel]s to restrict the message to. @@ -449,6 +470,10 @@ /world/proc/TgsVersion() return +/// Returns the running engine type +/world/proc/TgsEngine() + return + /// Returns the current [/datum/tgs_version] of the DMAPI being used if it was activated, null otherwise. This function may sleep if the call to [/world/proc/TgsNew] is sleeping! /world/proc/TgsApiVersion() return @@ -477,10 +502,20 @@ /world/proc/TgsChatChannelInfo() return +/** + * Trigger an event in TGS. Requires TGS version >= 6.3.0. Returns [TRUE] if the event was triggered successfully, [FALSE] otherwise. This function may sleep! + * + * event_name - The name of the event to trigger + * parameters - Optional list of string parameters to pass as arguments to the event script. The first parameter passed to a script will always be the running game's directory followed by these parameters. + * wait_for_completion - If set, this function will not return until the event has run to completion. + */ +/world/proc/TgsTriggerEvent(event_name, list/parameters, wait_for_completion = FALSE) + return + /* The MIT License -Copyright (c) 2017-2023 Jordan Brown +Copyright (c) 2017-2024 Jordan Brown Permission is hereby granted, free of charge, to any person obtaining a copy of this software and diff --git a/code/__DEFINES/tgui.dm b/code/__DEFINES/tgui.dm index ca6408961eab..cf04ef686bf9 100644 --- a/code/__DEFINES/tgui.dm +++ b/code/__DEFINES/tgui.dm @@ -37,6 +37,12 @@ "%7b%22type%22%3a%22[type]%22%2c%22payload%22%3a[url_encode(json_encode(payload))]%7d" \ ) +/// Creates a message packet for sending via output() specifically for opening tgsay using an embedded winget +// This is {"type":"open","payload":{"channel":channel,"mapfocus":[[map.focus]]}}, but pre-encoded. +#define TGUI_CREATE_OPEN_MESSAGE(channel) ( \ + "%7b%22type%22%3a%22open%22%2c%22payload%22%3a%7B%22channel%22%3a%22[channel]%22%2c%22mapfocus%22%3a\[\[map.focus\]\]%7d%7d" \ +) + /* *Defines for the TGUI health analyser interface *The higher the level, the more information you can see diff --git a/code/__DEFINES/traits.dm b/code/__DEFINES/traits.dm index 8962230946c8..964e77402655 100644 --- a/code/__DEFINES/traits.dm +++ b/code/__DEFINES/traits.dm @@ -155,8 +155,12 @@ #define TRAIT_FORCED_STANDING "forcedstanding" /// Stuns preventing movement and using objects but without further impairement #define TRAIT_INCAPACITATED "incapacitated" +/// Disoriented. Unable to talk properly, and unable to use some skills as Xeno +#define TRAIT_DAZED "dazed" /// Apply this to identify a mob as merged with weeds #define TRAIT_MERGED_WITH_WEEDS "merged_with_weeds" +/// Apply this to identify a mob as temporarily muted +#define TRAIT_TEMPORARILY_MUTED "temporarily_muted" // SPECIES TRAITS /// Knowledge of Yautja technology @@ -167,7 +171,7 @@ #define TRAIT_FOREIGN_BIO "t_foreign_bio" /// Eye color changes on intent. (G1 Synths and WJs) #define TRAIT_INTENT_EYES "t_intent_eyes" -/// Masked synthetic biology. Basic medHUDs will percieve the mob as human. (Infiltrator Synths) +/// Masked synthetic biology. Basic medHUDs will perceive the mob as human. (Infiltrator Synths) #define TRAIT_INFILTRATOR_SYNTH "t_infiltrator_synth" /// Makes it impossible to strip the inventory of this mob. #define TRAIT_UNSTRIPPABLE "t_unstrippable" @@ -175,7 +179,11 @@ // HIVE TRAITS /// If the Hive is a Xenonid Hive #define TRAIT_XENONID "t_xenonid" -/// If the Hive delays round end (this is overriden for some hives). Does not occur naturally. Must be applied in events. +/// if the xeno's connection to the hivemind is cut +#define TRAIT_HIVEMIND_INTERFERENCE "t_interference" +/// If the hive or xeno can use objects. +#define TRAIT_OPPOSABLE_THUMBS "t_thumbs" +/// If the Hive delays round end (this is overridden for some hives). Does not occur naturally. Must be applied in events. #define TRAIT_NO_HIVE_DELAY "t_no_hive_delay" /// If the Hive uses it's colors on the mobs. Does not occur naturally, excepting the Mutated hive. #define TRAIT_NO_COLOR "t_no_color" @@ -221,8 +229,12 @@ #define TRAIT_HARDCORE "t_hardcore" /// If the mob is able to use the vulture rifle or spotting scope #define TRAIT_VULTURE_USER "t_vulture_user" +/// If the mob is currently loading a tutorial +#define TRAIT_IN_TUTORIAL "t_IN_TUTORIAL" /// If the mob is cloaked in any form #define TRAIT_CLOAKED "t_cloaked" +/// If the mob won't drop items held in face slot when downed +#define TRAIT_IRON_TEETH "t_iron_teeth" // -- ability traits -- /// Xenos with this trait cannot have plasma transfered to them @@ -259,7 +271,10 @@ #define TRAIT_GUN_BIPODDED "t_gun_bipodded" -#define TRAIT_GUN_LIGHT_DEACTIVATED "t_gun_light_deactivated" +#define TRAIT_GUN_LIGHT_FORCE_DEACTIVATED "t_gun_light_deactivated" + +/// If this ID belongs to an ERT member +#define TRAIT_ERT_ID "ert_id" // Miscellaneous item traits. // Do NOT bloat this category, if needed make a new category (like shoe traits, xeno item traits...) @@ -297,6 +312,7 @@ GLOBAL_LIST_INIT(mob_traits, list( TRAIT_REAGENT_SCANNER, TRAIT_ABILITY_BURROWED, TRAIT_VULTURE_USER, + TRAIT_IN_TUTORIAL, )) /* @@ -310,6 +326,7 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_IMMOBILIZED" = TRAIT_IMMOBILIZED, "TRAIT_INCAPACITATED" = TRAIT_INCAPACITATED, "TRAIT_FLOORED" = TRAIT_FLOORED, + "TRAIT_DAZED" = TRAIT_DAZED, "TRAIT_UNDENSE" = TRAIT_UNDENSE, "TRAIT_YAUTJA_TECH" = TRAIT_YAUTJA_TECH, "TRAIT_SUPER_STRONG" = TRAIT_SUPER_STRONG, @@ -336,9 +353,13 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_VULTURE_USER" = TRAIT_VULTURE_USER, "TRAIT_CLOAKED" = TRAIT_CLOAKED, ), +// /mob/living/carbon/human = list( +// ), /mob/living/carbon/xenomorph = list( "TRAIT_ABILITY_NO_PLASMA_TRANSFER" = TRAIT_ABILITY_NO_PLASMA_TRANSFER, "TRAIT_ABILITY_OVIPOSITOR" = TRAIT_ABILITY_OVIPOSITOR, + "TRAIT_OPPOSABLE_THUMBS" = TRAIT_OPPOSABLE_THUMBS, + "TRAIT_INTERFERENCE" = TRAIT_HIVEMIND_INTERFERENCE, ), /datum/hive_status = list( "TRAIT_XENONID" = TRAIT_XENONID, @@ -403,6 +424,8 @@ GLOBAL_LIST(trait_name_map) #define TRAIT_SOURCE_JOB "t_s_job" ///Status trait forced by staff #define TRAIT_SOURCE_ADMIN "t_s_admin" +/// Status trait coming from a tutorial +#define TRAIT_SOURCE_TUTORIAL "t_s_tutorials" ///Status trait coming from equipment #define TRAIT_SOURCE_EQUIPMENT(slot) "t_s_equipment_[slot]" ///Status trait coming from skill @@ -411,10 +434,17 @@ GLOBAL_LIST(trait_name_map) #define TRAIT_SOURCE_ATTACHMENT(slot) "t_s_attachment_[slot]" ///Status trait coming from ability #define TRAIT_SOURCE_ABILITY(ability) "t_s_ability_[ability]" +#define TRAIT_SOURCE_LIMB(limb) "t_s_limb_[limb]" +///Status trait coming from temporary_mute +#define TRAIT_SOURCE_TEMPORARY_MUTE "t_s_temporary_mute" ///Status trait forced by the xeno action charge #define TRAIT_SOURCE_XENO_ACTION_CHARGE "t_s_xeno_action_charge" +///Status trait coming from hivemind interference +#define TRAIT_SOURCE_HIVEMIND_INTERFERENCE "t_s_hivemind_interference" ///Status trait coming from a xeno nest #define XENO_NEST_TRAIT "xeno_nest" +///Status trait from a generic throw by xeno abilities +#define XENO_THROW_TRAIT "xeno_throw_trait" //-- structure traits -- ///Status trait coming from being flipped or unflipped. #define TRAIT_SOURCE_FLIP_TABLE "t_s_flip_table" @@ -449,6 +479,8 @@ GLOBAL_LIST(trait_name_map) #define XENO_WEED_TRAIT "xeno_weed" /// traits associated with actively interacted machinery #define INTERACTION_TRAIT "interaction" +/// traits associated with interacting with a dropship +#define TRAIT_SOURCE_DROPSHIP_INTERACTION "dropship_interaction" /// traits bound by stunned status effects #define STUNNED_TRAIT "stunned" /// traits bound by knocked_down status effect diff --git a/code/__DEFINES/turf_flags.dm b/code/__DEFINES/turf_flags.dm index d7b3e90811d8..19dc17191d7c 100644 --- a/code/__DEFINES/turf_flags.dm +++ b/code/__DEFINES/turf_flags.dm @@ -1,3 +1,12 @@ +//turf_flags values +/// Marks a turf as organic. Used for alien wall and membranes. +#define TURF_ORGANIC (1<<0) +/// If a turf is an usused reservation turf awaiting assignment +#define UNUSED_RESERVATION_TURF (1<<1) +/// If a turf is a reserved turf +#define RESERVATION_TURF (1<<2) + +//ChangeTurf options to change its behavior #define CHANGETURF_DEFER_CHANGE (1<<0) /// This flag prevents changeturf from gathering air from nearby turfs to fill the new turf with an approximation of local air #define CHANGETURF_IGNORE_AIR (1<<1) @@ -5,12 +14,3 @@ /// A flag for PlaceOnTop to just instance the new turf instead of calling ChangeTurf. Used for uninitialized turfs NOTHING ELSE #define CHANGETURF_SKIP (1<<3) -#define IS_OPAQUE_TURF(turf) (turf.directional_opacity == ALL_CARDINALS) - -/// Marks a turf as organic. Used for alien wall and membranes. -#define TURF_ORGANIC (1<<0) - - -#define REMOVE_CROWBAR (1<<0) -#define BREAK_CROWBAR (1<<1) -#define REMOVE_SCREWDRIVER (1<<2) diff --git a/code/__DEFINES/turfs.dm b/code/__DEFINES/turfs.dm new file mode 100644 index 000000000000..158c66754e18 --- /dev/null +++ b/code/__DEFINES/turfs.dm @@ -0,0 +1,33 @@ +#define RANGE_TURFS(RADIUS, CENTER) \ + block( \ + (CENTER).x-(RADIUS), (CENTER).y-(RADIUS), (CENTER).z, \ + (CENTER).x+(RADIUS), (CENTER).y+(RADIUS), (CENTER).z \ + ) + +#define RECT_TURFS(H_RADIUS, V_RADIUS, CENTER) \ + block( \ + (CENTER).x-(H_RADIUS), (CENTER).y-(V_RADIUS), (CENTER).z, \ + (CENTER).x+(H_RADIUS), (CENTER).y+(V_RADIUS), (CENTER).z \ + ) + +///Returns all turfs in a zlevel +#define Z_TURFS(ZLEVEL) block(1, 1, (ZLEVEL), world.maxx, world.maxy, (ZLEVEL)) + +/// Returns a list of turfs in the rectangle specified by BOTTOM LEFT corner and height/width +#define CORNER_BLOCK(corner, width, height) CORNER_BLOCK_OFFSET(corner, width, height, 0, 0) + +/// Returns a list of turfs similar to CORNER_BLOCK but with offsets +#define CORNER_BLOCK_OFFSET(corner, width, height, offset_x, offset_y) \ + block( \ + (corner).x + (offset_x), (corner).y + (offset_y), (corner).z, \ + (corner).x + ((width) - 1) + (offset_x), (corner).y + ((height) - 1) + (offset_y), (corner).z \ + ) + +/// Returns an outline (neighboring turfs) of the given block +#define CORNER_OUTLINE(corner, width, height) ( \ + CORNER_BLOCK_OFFSET(corner, width + 2, 1, -1, -1) + \ + CORNER_BLOCK_OFFSET(corner, width + 2, 1, -1, height) + \ + CORNER_BLOCK_OFFSET(corner, 1, height, -1, 0) + \ + CORNER_BLOCK_OFFSET(corner, 1, height, width, 0)) + +#define TURF_FROM_COORDS_LIST(List) (locate(List[1], List[2], List[3])) diff --git a/code/__DEFINES/tutorial.dm b/code/__DEFINES/tutorial.dm new file mode 100644 index 000000000000..75dc7f6da21f --- /dev/null +++ b/code/__DEFINES/tutorial.dm @@ -0,0 +1,6 @@ +#define TUTORIAL_ATOM_FROM_TRACKING(path, varname) var##path/##varname = tracking_atoms[##path] + +#define TUTORIAL_CATEGORY_BASE "Base" // Shouldn't be used outside of base types +#define TUTORIAL_CATEGORY_SS13 "Space Station 13" +#define TUTORIAL_CATEGORY_MARINE "Marine" +#define TUTORIAL_CATEGORY_XENO "Xenomorph" diff --git a/code/__DEFINES/typecheck/generic_types.dm b/code/__DEFINES/typecheck/generic_types.dm index d9fa3df55430..587108d5b5e6 100644 --- a/code/__DEFINES/typecheck/generic_types.dm +++ b/code/__DEFINES/typecheck/generic_types.dm @@ -11,6 +11,7 @@ #define ismovableatom(A) (ismovable(A)) #define isatom(A) (isloc(A)) #define isfloorturf(A) (istype(A, /turf/open/floor)) +#define isclosedturf(A) (istype(A, /turf/closed)) #define isweakref(D) (istype(D, /datum/weakref)) #define isgenerator(A) (istype(A, /generator)) diff --git a/code/__DEFINES/typecheck/humanoids.dm b/code/__DEFINES/typecheck/humanoids.dm index 7076cf67c95c..76f561e5fa1f 100644 --- a/code/__DEFINES/typecheck/humanoids.dm +++ b/code/__DEFINES/typecheck/humanoids.dm @@ -14,7 +14,8 @@ #define isSEA(A) (ishuman(A) && A.job == "Senior Enlisted Advisor") #define issynth(A) (ishuman(A) && istype(A?:species, /datum/species/synthetic)) #define iscolonysynthetic(A) (ishuman(A) && istype(A?:species, /datum/species/synthetic/colonial)) -#define isworkingjoe(A) (iscolonysynthetic(A) && A.job == JOB_WORKING_JOE) +#define isworkingjoe(A) (ishuman(A) && istype(A?:species, /datum/species/synthetic/colonial/working_joe)) +#define ishazardjoe(A) (ishuman(A) && istype(A?:species, /datum/species/synthetic/colonial/working_joe/hazard)) #define isinfiltratorsynthetic(A) (ishuman(A) && istype(A?:species, /datum/species/synthetic/infiltrator)) //Specic group checks, use instead of typechecks (but use traits instead) diff --git a/code/__DEFINES/typecheck/mobs_generic.dm b/code/__DEFINES/typecheck/mobs_generic.dm index 1d848decda4e..aed270cdca25 100644 --- a/code/__DEFINES/typecheck/mobs_generic.dm +++ b/code/__DEFINES/typecheck/mobs_generic.dm @@ -1,11 +1,8 @@ -#define isAI(A) (istype(A, /mob/living/silicon/ai)) #define isARES(A) (istype(A, /mob/living/silicon/decoy/ship_ai)) #define isSilicon(A) (istype(A, /mob/living/silicon)) #define isRemoteControlling(M) (M && M.client && M.client.remote_control) -#define isRemoteControllingOrAI(M) ((M && M.client && M.client.remote_control) || (istype(M, /mob/living/silicon/ai))) #define isbrain(A) (istype(A, /mob/living/brain)) -#define isrobot(A) (istype(A, /mob/living/silicon/robot)) #define isanimal(A) (istype(A, /mob/living/simple_animal)) #define isanimalhostile(A) (istype(A, /mob/living/simple_animal/hostile)) #define isanimalretaliate(A) (istype(A, /mob/living/simple_animal/hostile/retaliate)) @@ -17,12 +14,9 @@ #define iscarp(A) (istype(A, /mob/living/simple_animal/hostile/carp)) #define isclown(A) (istype(A, /mob/living/simple_animal/hostile/retaliate/clown)) #define iscarbon(A) (istype(A, /mob/living/carbon)) -#define isborg(A) (isrobot(A) && !ismaintdrone(A)) -#define ishighersilicon(A) (isborg(A) || isRemoteControllingOrAI(A)) #define isliving(A) (istype(A, /mob/living)) #define isobserver(A) (istype(A, /mob/dead/observer)) #define isorgan(A) (istype(A, /obj/limb)) #define isnewplayer(A) (istype(A, /mob/new_player)) -#define ismaintdrone(A) (istype(A,/mob/living/silicon/robot/drone)) #define isHellhound(A) (istype(A, /mob/living/carbon/xenomorph/hellhound)) #define isaghost(A) (copytext(A.key, 1, 2) == "@") diff --git a/code/__DEFINES/vehicle.dm b/code/__DEFINES/vehicle.dm index 8a1617229926..5eb6a824d8ac 100644 --- a/code/__DEFINES/vehicle.dm +++ b/code/__DEFINES/vehicle.dm @@ -7,7 +7,7 @@ #define HDPT_TURRET "turret" #define HDPT_SPECIAL "special" //special pre-installed hardpoints with unique behaviour -#define HDPT_LAYER_WHEELS 1 +#define HDPT_LAYER_WHEELS 0.01 // so it appears below xenomorphs and other mobs #define HDPT_LAYER_SUPPORT 2 #define HDPT_LAYER_ARMOR 3 #define HDPT_LAYER_TURRET 4 diff --git a/code/__DEFINES/vendors.dm b/code/__DEFINES/vendors.dm index 086b70a92428..70e30edddf24 100644 --- a/code/__DEFINES/vendors.dm +++ b/code/__DEFINES/vendors.dm @@ -19,6 +19,8 @@ #define MARINE_CAN_BUY_COMBAT_ARMOR "combat_armor" #define MARINE_CAN_BUY_KIT "kit" #define MARINE_CAN_BUY_DRESS "dress" +#define CIVILIAN_CAN_BUY_BACKPACK "civilian_backpack" +#define CIVILIAN_CAN_BUY_UTILITY "civilian_utility" #define MARINE_CAN_BUY_ALL list(MARINE_CAN_BUY_UNIFORM = 1, MARINE_CAN_BUY_SHOES = 1, MARINE_CAN_BUY_HELMET = 1, MARINE_CAN_BUY_ARMOR = 1, MARINE_CAN_BUY_GLOVES = 1, MARINE_CAN_BUY_EAR = 1, MARINE_CAN_BUY_BACKPACK = 1, MARINE_CAN_BUY_POUCH = 2, MARINE_CAN_BUY_BELT = 1, MARINE_CAN_BUY_GLASSES = 1, MARINE_CAN_BUY_MASK = 1, MARINE_CAN_BUY_ESSENTIALS = 1, MARINE_CAN_BUY_SECONDARY = 1, MARINE_CAN_BUY_ATTACHMENT = 1, MARINE_CAN_BUY_MRE = 1, MARINE_CAN_BUY_ACCESSORY = 1, MARINE_CAN_BUY_COMBAT_SHOES = 1, MARINE_CAN_BUY_COMBAT_HELMET = 1, MARINE_CAN_BUY_COMBAT_ARMOR = 1, MARINE_CAN_BUY_KIT = 1, MARINE_CAN_BUY_DRESS = 99) @@ -70,6 +72,8 @@ /// Vendors with this flag will fill retroactively based on latejoining players, /// and expect a scale multiplier instead of amount of items #define VEND_STOCK_DYNAMIC (1<<10) +/// Vends props looking like the items instead of the actual items. Basically for tutorials. +#define VEND_PROPS (1<<11) // Redemption Tokens #define VEND_TOKEN_ENGINEER "Engineer" diff --git a/code/__DEFINES/weapon_stats.dm b/code/__DEFINES/weapon_stats.dm index 3a69002a3b93..1c3c09e9b28d 100644 --- a/code/__DEFINES/weapon_stats.dm +++ b/code/__DEFINES/weapon_stats.dm @@ -136,7 +136,9 @@ As such, don't expect any values assigned to common firearms to even consider ho //How many ticks you have to wait between firing. Burst delay uses the same variable! */ +#define FIRE_DELAY_TIER_AMR 30 #define FIRE_DELAY_TIER_VULTURE 20 +#define FIRE_DELAY_TIER_SNIPER 15 #define FIRE_DELAY_TIER_1 12 #define FIRE_DELAY_TIER_2 10 #define FIRE_DELAY_TIER_3 9 diff --git a/code/__DEFINES/xeno.dm b/code/__DEFINES/xeno.dm index a0a4c927d3d9..18d4908c9df7 100644 --- a/code/__DEFINES/xeno.dm +++ b/code/__DEFINES/xeno.dm @@ -62,6 +62,9 @@ #define ACID_SPRAY_LINE 0 #define ACID_SPRAY_CONE 1 +/// Defines for Abomination ability /datum/action/xeno_action/activable/feralfrenzy +#define SINGLETARGETGUT 0 +#define AOETARGETGUT 1 #define WARDEN_HEAL_SHIELD 0 #define WARDEN_HEAL_HP 1 @@ -177,6 +180,20 @@ /// The time until you can re-corrupt a comms relay after the last pylon was destroyed #define XENO_PYLON_DESTRUCTION_DELAY (5 MINUTES) +/// Evolution boost during hijack +#define XENO_HIJACK_EVILUTION_BUFF 10 + +/// For how long the buff lasts +#define XENO_HIJACK_EVILUTION_TIME (3 MINUTES) + +/// If this is marine to xeno ratio during hijack, xenos see marines on tacmap +#define HIJACK_RATIO_FOR_TACMAP 0.8 + +/// Xenos need to have their number to marines ratio lower than this to get larvae from pylons +#define ENDGAME_LARVA_CAP_MULTIPLIER 0.5 + +/// What percent of their numbers xeno get from pylons +#define LARVA_ADDITION_MULTIPLIER 0.10 /// The time against away_timer when an AFK xeno larva can be replaced #define XENO_LEAVE_TIMER_LARVA 80 //80 seconds @@ -250,11 +267,6 @@ #define XENO_PLASMA_TIER_8 800 * XENO_UNIVERSAL_PLASMAMULT #define XENO_PLASMA_TIER_10 1000 * XENO_UNIVERSAL_PLASMAMULT -// Resource stockpile bands -#define XENO_CRYSTAL_LOW 50 -#define XENO_CRYSTAL_MEDIUM 100 -#define XENO_CRYSTAL_HIGH 150 - // Plasma gain bands #define XENO_PLASMA_GAIN_TIER_1 1 #define XENO_PLASMA_GAIN_TIER_2 1.5 @@ -352,6 +364,48 @@ #define RESIN_CONSTRUCTION_NO_MAX -1 +// -------------- // +// STRAIN DEFINES // +// -------------- // + +// Facehugger strain flags +#define FACEHUGGER_WATCHER "Watcher" + +// Drone strain flags +#define DRONE_HEALER "Healer" +#define DRONE_GARDENER "Gardener" + +// Hivelord strain flags +#define HIVELORD_RESIN_WHISPERER "Resin Whisperer" + +// Carrier strain flags +#define CARRIER_EGGSAC "Eggsac" + +// Boiler strain flags +#define BOILER_TRAPPER "Trapper" + +// Runner strain flags +#define RUNNER_ACIDER "Acider" + +// Lurker strain flags +#define LURKER_VAMPIRE "Vampire" + +// Ravager strain flags +#define RAVAGER_HEDGEHOG "Hedgehog" +#define RAVAGER_BERSERKER "Berserker" + +// Defender strain flags +#define DEFENDER_STEELCREST "Steelcrest" + +// Crusher strain flags +#define CRUSHER_CHARGER "Charger" + +// Praetorian strain flags +#define PRAETORIAN_VANGUARD "Vanguard" +#define PRAETORIAN_DANCER "Dancer" +#define PRAETORIAN_WARDEN "Warden" +#define PRAETORIAN_OPPRESSOR "Oppressor" + ///////////////////////////////////////////////////////////////////////////////////// // // Modifiers @@ -580,9 +634,7 @@ #define XENO_STRUCTURE_CORE "hive core" #define XENO_STRUCTURE_CLUSTER "hive cluster" #define XENO_STRUCTURE_PYLON "hive pylon" -#define XENO_STRUCTURE_POOL "spawn pool" #define XENO_STRUCTURE_EGGMORPH "egg morpher" -#define XENO_STRUCTURE_EVOPOD "evolution pod" #define XENO_STRUCTURE_RECOVERY "recovery node" #define XENO_STRUCTURE_NEST "thick resin nest" @@ -653,9 +705,9 @@ // PARAMETERS: // source_hive integer the hive to check the alliance of // target_hive integer the target hive to see if the source_hive is allied to it. -#define HIVE_ALLIED_TO_HIVE(source_hive, target_hive) (source_hive == target_hive || GLOB.hive_datum[source_hive]?.faction_is_ally(GLOB.hive_datum[target_hive]?.internal_faction)) +#define HIVE_ALLIED_TO_HIVE(source_hive, target_hive) ((source_hive) == (target_hive) || GLOB.hive_datum[source_hive]?.faction_is_ally(GLOB.hive_datum[target_hive]?.internal_faction)) -#define QUEEN_SPAWN_TIMEOUT (2 MINUTES) +#define QUEEN_SPAWN_TIMEOUT (1 MINUTES) #define FIRE_IMMUNITY_NONE 0 #define FIRE_IMMUNITY_NO_DAMAGE (1<<0) diff --git a/code/__HELPERS/#maths.dm b/code/__HELPERS/#maths.dm index ccd077003e62..076d96e0126d 100644 --- a/code/__HELPERS/#maths.dm +++ b/code/__HELPERS/#maths.dm @@ -8,62 +8,43 @@ GLOBAL_LIST_INIT(sqrtTable, list(1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 4, // MATH DEFINES -#define Atan2(x, y) (!x && !y ? 0 : \ - (y >= 0 ? \ - arccos(x / sqrt(x*x + y*y)) : \ - -(arccos(x / sqrt(x*x + y*y))) \ - ) \ - ) -#define Ceiling(x) (-round(-x)) -#define Clamp(val, min_val, max_val) (max(min_val, min(val, max_val))) -#define CLAMP01(x) (clamp(x, 0, 1)) +#define CLAMP01(x) (clamp((x), 0, 1)) // cotangent -#define Cot(x) (1 / Tan(x)) +#define Cot(x) (1 / tan(x)) // cosecant #define Csc(x) (1 / sin(x)) -#define Default(a, b) (a ? a : b) -#define Floor(x) (round(x)) - -//Finds nearest integer to x, above or below -//something.5 or higher, round up, else round down -#define roundNearest(x) (((Ceiling(x) - x) <= (x - Floor(x))) ? Ceiling(x) : Floor(x)) +#define Default(a, b) ((a) ? (a) : (b)) // Greatest Common Divisor - Euclid's algorithm -#define Gcd(a, b) (b ? Gcd(b, a % b) : a) - -#define Inverse(x) (1 / x) -#define IsEven(x) (x % 2 == 0) +#define Gcd(a, b) ((b) ? Gcd((b), (a) % (b)) : (a)) -// Returns true if val is from min to max, inclusive. -#define IsInRange(val, min, max) (min <= val && val <= max) +#define Inverse(x) (1 / (x)) +#define IsEven(x) ((x) % 2 == 0) -#define IsInteger(x) (Floor(x) == x) +#define IsInteger(x) (floor(x) == (x)) #define IsOdd(x) (!IsEven(x)) -#define IsMultiple(x, y) (x % y == 0) +#define IsMultiple(x, y) ((x) % (y) == 0) // Least Common Multiple -#define Lcm(a, b) (abs(a) / Gcd(a, b) * abs(b)) +#define Lcm(a, b) (abs(a) / Gcd((a), (b)) * abs(b)) // Returns the nth root of x. -#define Root(n, x) (x ** (1 / n)) +#define NRoot(n, x) ((x) ** (1 / (n))) // secant #define Sec(x) (1 / cos(x)) -// tangent -#define Tan(x) (sin(x) / cos(x)) - // 57.2957795 = 180 / Pi -#define ToDegrees(radians) (radians * 57.2957795) +#define ToDegrees(radians) ((radians) * 57.2957795) // 0.0174532925 = Pi / 180 -#define ToRadians(degrees) (degrees * 0.0174532925) +#define ToRadians(degrees) ((degrees) * 0.0174532925) // min is inclusive, max is exclusive -#define WRAP(val, min, max) clamp(( min == max ? min : (val) - (round(((val) - (min))/((max) - (min))) * ((max) - (min))) ),min,max) +#define WRAP(val, min, max) clamp(( (min) == (max) ? (min) : (val) - (floor(((val) - (min))/((max) - (min))) * ((max) - (min))) ),(min),(max)) // MATH PROCS @@ -78,7 +59,7 @@ GLOBAL_LIST_INIT(sqrtTable, list(1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 4, // Convert to polar coordinates var/radius = sqrt(relative_coords[1]**2 + relative_coords[2]**2) - var/phi = Atan2(relative_coords[1], relative_coords[2]) + var/phi = arctan(relative_coords[1], relative_coords[2]) // Rotate the point around the axis phi += degrees @@ -91,11 +72,6 @@ GLOBAL_LIST_INIT(sqrtTable, list(1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 4, return rotated_point -// Round up -/proc/n_ceil(num) - if(isnum(num)) - return round(num)+1 - ///Format a power value in W, kW, MW, or GW. /proc/display_power(powerused) if(powerused < 1000) //Less than a kW @@ -106,89 +82,6 @@ GLOBAL_LIST_INIT(sqrtTable, list(1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 4, return "[round((powerused * 0.000001),0.001)] MW" return "[round((powerused * 0.000000001),0.0001)] GW" -///Calculate the angle between two movables and the west|east coordinate -/proc/get_angle(atom/movable/start, atom/movable/end)//For beams. - if(!start || !end) - return 0 - var/dy =(32 * end.y + end.pixel_y) - (32 * start.y + start.pixel_y) - var/dx =(32 * end.x + end.pixel_x) - (32 * start.x + start.pixel_x) - if(!dy) - return (dx >= 0) ? 90 : 270 - . = arctan(dx/dy) - if(dy < 0) - . += 180 - else if(dx < 0) - . += 360 - -/// Angle between two arbitrary points and horizontal line same as [/proc/get_angle] -/proc/get_angle_raw(start_x, start_y, start_pixel_x, start_pixel_y, end_x, end_y, end_pixel_x, end_pixel_y) - var/dy = (32 * end_y + end_pixel_y) - (32 * start_y + start_pixel_y) - var/dx = (32 * end_x + end_pixel_x) - (32 * start_x + start_pixel_x) - if(!dy) - return (dx >= 0) ? 90 : 270 - . = arctan(dx/dy) - if(dy < 0) - . += 180 - else if(dx < 0) - . += 360 - -///for getting the angle when animating something's pixel_x and pixel_y -/proc/get_pixel_angle(y, x) - if(!y) - return (x >= 0) ? 90 : 270 - . = arctan(x/y) - if(y < 0) - . += 180 - else if(x < 0) - . += 360 - -/** - * Get a list of turfs in a line from `starting_atom` to `ending_atom`. - * - * Uses the ultra-fast [Bresenham Line-Drawing Algorithm](https://en.wikipedia.org/wiki/Bresenham%27s_line_algorithm). - */ -/proc/get_line(atom/starting_atom, atom/ending_atom) - var/current_x_step = starting_atom.x//start at x and y, then add 1 or -1 to these to get every turf from starting_atom to ending_atom - var/current_y_step = starting_atom.y - var/starting_z = starting_atom.z - - var/list/line = list(get_turf(starting_atom))//get_turf(atom) is faster than locate(x, y, z) - - var/x_distance = ending_atom.x - current_x_step //x distance - var/y_distance = ending_atom.y - current_y_step - - var/abs_x_distance = abs(x_distance)//Absolute value of x distance - var/abs_y_distance = abs(y_distance) - - var/x_distance_sign = SIGN(x_distance) //Sign of x distance (+ or -) - var/y_distance_sign = SIGN(y_distance) - - var/x = abs_x_distance >> 1 //Counters for steps taken, setting to distance/2 - var/y = abs_y_distance >> 1 //Bit-shifting makes me l33t. It also makes get_line() unnessecarrily fast. - - if(abs_x_distance >= abs_y_distance) //x distance is greater than y - for(var/distance_counter in 0 to (abs_x_distance - 1))//It'll take abs_x_distance steps to get there - y += abs_y_distance - - if(y >= abs_x_distance) //Every abs_y_distance steps, step once in y direction - y -= abs_x_distance - current_y_step += y_distance_sign - - current_x_step += x_distance_sign //Step on in x direction - line += locate(current_x_step, current_y_step, starting_z)//Add the turf to the list - else - for(var/distance_counter in 0 to (abs_y_distance - 1)) - x += abs_x_distance - - if(x >= abs_y_distance) - x -= abs_y_distance - current_x_step += x_distance_sign - - current_y_step += y_distance_sign - line += locate(current_x_step, current_y_step, starting_z) - return line - - ///chances are 1:value. anyprob(1) will always return true /proc/anyprob(value) return (rand(1,value)==value) @@ -204,7 +97,7 @@ GLOBAL_LIST_INIT(sqrtTable, list(1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 4, var/static/list/units_prefix = list("", "un", "duo", "tre", "quattuor", "quin", "sex", "septen", "octo", "novem") var/static/list/tens_prefix = list("", "decem", "vigin", "trigin", "quadragin", "quinquagin", "sexagin", "septuagin", "octogin", "nongen") var/static/list/one_to_nine = list("monuple", "double", "triple", "quadruple", "quintuple", "sextuple", "septuple", "octuple", "nonuple") - number = round(number) + number = floor(number) switch(number) if(0) return "empty tuple" @@ -213,7 +106,7 @@ GLOBAL_LIST_INIT(sqrtTable, list(1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 4, if(10 to 19) return "[units_prefix[(number%10)+1]]decuple" if(20 to 99) - return "[units_prefix[(number%10)+1]][tens_prefix[round((number % 100)/10)+1]]tuple" + return "[units_prefix[(number%10)+1]][tens_prefix[floor((number % 100)/10)+1]]tuple" if(100) return "centuple" else //It gets too tedious to use latin prefixes from here. diff --git a/code/__HELPERS/_lists.dm b/code/__HELPERS/_lists.dm index fe15e6d84c79..e46c92df543a 100644 --- a/code/__HELPERS/_lists.dm +++ b/code/__HELPERS/_lists.dm @@ -103,7 +103,7 @@ /proc/bitfield_to_list(bitfield = 0, list/wordlist) var/list/return_list = list() if(islist(wordlist)) - var/max = min(wordlist.len, 24) + var/max = min(length(wordlist), 24) var/bit = 1 for(var/i in 1 to max) if(bitfield & bit) @@ -148,10 +148,10 @@ * Returns TRUE if the list had nulls, FALSE otherwise **/ /proc/list_clear_nulls(list/list_to_clear) - var/start_len = list_to_clear.len + var/start_len = length(list_to_clear) var/list/new_list = new(start_len) list_to_clear -= new_list - return list_to_clear.len < start_len + return length(list_to_clear) < start_len ///Return a list with no duplicate entries /proc/unique_list(list/inserted_list) @@ -174,5 +174,6 @@ if(!inserted_list) return - for(var/i in 1 to inserted_list.len - 1) - inserted_list.Swap(i, rand(i, inserted_list.len)) + for(var/i in 1 to length(inserted_list) - 1) + inserted_list.Swap(i, rand(i, length(inserted_list))) + diff --git a/code/__HELPERS/_time.dm b/code/__HELPERS/_time.dm index 8386feff41c2..5ed4fbcb7d84 100644 --- a/code/__HELPERS/_time.dm +++ b/code/__HELPERS/_time.dm @@ -48,7 +48,7 @@ GLOBAL_VAR_INIT(rollovercheck_last_timeofday, 0) return gameTimestamp("mm:ss", time) /proc/time_left_until(target_time, current_time, time_unit) - return CEILING(target_time - current_time, 1) / time_unit + return ceil(target_time - current_time) / time_unit /proc/text2duration(text = "00:00") // Attempts to convert time text back to time value var/split_text = splittext(text, ":") @@ -91,22 +91,22 @@ GLOBAL_VAR_INIT(rollovercheck_last_timeofday, 0) return "right now" if(second < 60) return "[second] second[(second != 1)? "s":""]" - var/minute = FLOOR(second / 60, 1) - second = FLOOR(MODULUS(second, 60), round_seconds_to) + var/minute = floor(second / 60) + second = FLOOR(second %% 60, round_seconds_to) var/secondT if(second) secondT = " and [second] second[(second != 1)? "s":""]" if(minute < 60) return "[minute] minute[(minute != 1)? "s":""][secondT]" - var/hour = FLOOR(minute / 60, 1) - minute = MODULUS(minute, 60) + var/hour = floor(minute / 60) + minute %%= 60 var/minuteT if(minute) minuteT = " and [minute] minute[(minute != 1)? "s":""]" if(hour < 24) return "[hour] hour[(hour != 1)? "s":""][minuteT][secondT]" - var/day = FLOOR(hour / 24, 1) - hour = MODULUS(hour, 24) + var/day = floor(hour / 24) + hour %%= 24 var/hourT if(hour) hourT = " and [hour] hour[(hour != 1)? "s":""]" diff --git a/code/__HELPERS/chat.dm b/code/__HELPERS/chat.dm index 20d1a45b31cc..4629c699636a 100644 --- a/code/__HELPERS/chat.dm +++ b/code/__HELPERS/chat.dm @@ -22,7 +22,7 @@ if((!admin_only || channel.is_admin_channel) && (channel_tag in applicable_tags)) channels_to_use += channel - if(channels_to_use.len) + if(length(channels_to_use)) world.TgsChatBroadcast(message, channels_to_use) /** diff --git a/code/__HELPERS/files.dm b/code/__HELPERS/files.dm index 54bb438cd167..c974980bbe84 100644 --- a/code/__HELPERS/files.dm +++ b/code/__HELPERS/files.dm @@ -48,7 +48,7 @@ /client/proc/file_spam_check() var/time_to_wait = GLOB.fileaccess_timer - world.time if(time_to_wait > 0) - to_chat(src, "Error: file_spam_check(): Spam. Please wait [round(time_to_wait/10)] seconds.") + to_chat(src, "Error: file_spam_check(): Spam. Please wait [floor(time_to_wait/10)] seconds.") return 1 GLOB.fileaccess_timer = world.time + FTPDELAY return 0 diff --git a/code/__HELPERS/filters.dm b/code/__HELPERS/filters.dm index aa8d77c81d3a..29e3ec9efb1e 100644 --- a/code/__HELPERS/filters.dm +++ b/code/__HELPERS/filters.dm @@ -46,7 +46,7 @@ GLOBAL_LIST_INIT(master_filter_info, list( "y" = -1, "size" = 1, "offset" = 0, - "color" = COLOUR_HALF_TRANSPARENT_BLACK + "color" = COLOR_HALF_TRANSPARENT_BLACK ) ), "blur" = list( diff --git a/code/__HELPERS/game.dm b/code/__HELPERS/game.dm index 5ef9ff7e35c3..5bf36f785746 100644 --- a/code/__HELPERS/game.dm +++ b/code/__HELPERS/game.dm @@ -58,7 +58,7 @@ /proc/recursive_mob_check(atom/O, list/L = list(), recursion_limit = 3, client_check = 1, sight_check = 1, include_radio = 1) - //debug_mob += O.contents.len + //debug_mob += length(O.contents) if(!recursion_limit) return L for(var/atom/A in O.contents) @@ -151,16 +151,6 @@ var/list/speaker_coverage = list() for(var/obj/item/device/radio/R in radios) if(R) - //Cyborg checks. Receiving message uses a bit of cyborg's charge. - var/obj/item/device/radio/borg/BR = R - if(istype(BR) && BR.myborg) - var/mob/living/silicon/robot/borg = BR.myborg - var/datum/robot_component/CO = borg.get_component("radio") - if(!CO) - continue //No radio component (Shouldn't happen) - if(!borg.is_component_functioning("radio") || !borg.cell_use_power(CO.active_usage)) - continue //No power. - var/turf/speaker = get_turf(R) if(speaker) for(var/turf/T in hear(R.canhear_range,speaker)) @@ -200,7 +190,7 @@ if(X1 1 || swapped) swapped = 0 if(gap > 1) - gap = round(gap / 1.3) // 1.3 is the emperic comb sort coefficient + gap = floor(gap / 1.3) // 1.3 is the emperic comb sort coefficient if(gap < 1) gap = 1 - for(var/i = 1; gap + i <= result.len; i++) + for(var/i = 1; gap + i <= length(result); i++) var/atom/l = result[i] //Fucking hate var/atom/r = result[gap+i] //how lists work here if(l.layer > r.layer) //no "result[i].layer" for me @@ -919,8 +919,9 @@ world // From /datum/preferences/proc/copy_appearance_to body.age = original.age body.gender = original.gender - body.ethnicity = original.ethnicity + body.skin_color = original.skin_color body.body_type = original.body_type + body.body_size = original.body_size body.r_eyes = original.r_eyes body.g_eyes = original.g_eyes diff --git a/code/__HELPERS/job.dm b/code/__HELPERS/job.dm index 220236c6f7e3..51cc496feeae 100644 --- a/code/__HELPERS/job.dm +++ b/code/__HELPERS/job.dm @@ -31,8 +31,10 @@ JOB_XO, JOB_SO, JOB_INTEL, - JOB_PILOT, + JOB_CAS_PILOT, + JOB_DROPSHIP_PILOT, JOB_DROPSHIP_CREW_CHIEF, + JOB_TANK_CREW, JOB_CORPORATE_LIAISON, JOB_COMBAT_REPORTER, JOB_CHIEF_ENGINEER, diff --git a/code/__HELPERS/lazy_templates.dm b/code/__HELPERS/lazy_templates.dm new file mode 100644 index 000000000000..1a5dcf27f996 --- /dev/null +++ b/code/__HELPERS/lazy_templates.dm @@ -0,0 +1,10 @@ +GLOBAL_LIST_INIT(lazy_templates, generate_lazy_template_map()) + +/** + * Iterates through all lazy template datums that exist and returns a list of them as an associative list of type -> instance. + * */ +/proc/generate_lazy_template_map() + . = list() + for(var/datum/lazy_template/template as anything in subtypesof(/datum/lazy_template)) + .[template] = new template + return . diff --git a/code/__HELPERS/level_traits.dm b/code/__HELPERS/level_traits.dm index 01a972485fa2..8b3d1b0a3809 100644 --- a/code/__HELPERS/level_traits.dm +++ b/code/__HELPERS/level_traits.dm @@ -1,4 +1,3 @@ - #define is_admin_level(z) SSmapping.level_trait(z, ZTRAIT_ADMIN) #define is_ground_level(z) SSmapping.level_trait(z, ZTRAIT_GROUND) diff --git a/code/__HELPERS/lighting.dm b/code/__HELPERS/lighting.dm index 08c360849b58..e768d9d1255c 100644 --- a/code/__HELPERS/lighting.dm +++ b/code/__HELPERS/lighting.dm @@ -1,3 +1,5 @@ +#define IS_OPAQUE_TURF(turf) (turf.directional_opacity == ALL_CARDINALS) + /// Produces a mutable appearance glued to the [EMISSIVE_PLANE] dyed to be the [EMISSIVE_COLOR]. /proc/emissive_appearance(icon, icon_state = "", layer = FLOAT_LAYER, alpha = 255, appearance_flags = NONE) var/mutable_appearance/appearance = mutable_appearance(icon, icon_state, layer, EMISSIVE_PLANE, alpha, appearance_flags | EMISSIVE_APPEARANCE_FLAGS) diff --git a/code/__HELPERS/lists.dm b/code/__HELPERS/lists.dm index 830e612712e2..d5212611a04b 100644 --- a/code/__HELPERS/lists.dm +++ b/code/__HELPERS/lists.dm @@ -12,7 +12,7 @@ //Returns a list in plain english as a string /proc/english_list(list/input, nothing_text = "nothing", and_text = " and ", comma_text = ", ", final_comma_text = "" ) - var/total = input.len + var/total = length(input) if (!total) return "[nothing_text]" else if (total == 1) @@ -33,9 +33,9 @@ //Returns list element or null. Should prevent "index out of bounds" error. /proc/listgetindex(list/list,index) - if(istype(list) && list.len) + if(istype(list) && length(list)) if(isnum(index)) - if(InRange(index,1,list.len)) + if(ISINRANGE(index,1,length(list))) return list[index] else if(list[index]) return list[index] @@ -106,35 +106,35 @@ /// Pick a random element from the list and remove it from the list. /proc/pick_n_take(list/L) RETURN_TYPE(L[_].type) - if(L.len) - var/picked = rand(1,L.len) + if(length(L)) + var/picked = rand(1,length(L)) . = L[picked] L.Cut(picked,picked+1) //Cut is far more efficient that Remove() //Returns the top(last) element from the list and removes it from the list (typical stack function) /proc/pop(list/L) - if(L.len) - . = L[L.len] + if(length(L)) + . = L[length(L)] L.len-- /proc/popleft(list/L) - if(L.len) + if(length(L)) . = L[1] L.Cut(1,2) //Returns the next element in parameter list after first appearance of parameter element. If it is the last element of the list or not present in list, returns first element. /proc/next_in_list(element, list/L) - for(var/i=1, i1, i--) + for(var/i=length(L), i>1, i--) if(L[i] == element) return L[i-1] - return L[L.len] + return L[length(L)] /* * Sorting @@ -144,7 +144,7 @@ /proc/reverselist(list/L) var/list/output = list() if(L) - for(var/i = L.len; i >= 1; i--) + for(var/i = length(L); i >= 1; i--) output += L[i] return output @@ -155,7 +155,7 @@ . = L_n var/L_o[] = L.Copy() var/i - while(L_o.len) + while(length(L_o)) i = pick(L_o) if(!ref) L_n += i else L_n[i] = L_o[i] @@ -171,9 +171,9 @@ //Mergesort: divides up the list into halves to begin the sort /proc/sortKey(list/client/L, order = 1) - if(isnull(L) || L.len < 2) + if(isnull(L) || length(L) < 2) return L - var/middle = L.len / 2 + 1 + var/middle = length(L) / 2 + 1 return mergeKey(sortKey(L.Copy(0,middle)), sortKey(L.Copy(middle)), order) //Mergsort: does the actual sorting and returns the results back to sortAtom @@ -181,7 +181,7 @@ var/Li=1 var/Ri=1 var/list/result = new() - while(Li <= L.len && Ri <= R.len) + while(Li <= length(L) && Ri <= length(R)) var/client/rL = L[Li] var/client/rR = R[Ri] if(sorttext(rL.ckey, rR.ckey) == order) @@ -189,20 +189,20 @@ else result += R[Ri++] - if(Li <= L.len) + if(Li <= length(L)) return (result + L.Copy(Li, 0)) return (result + R.Copy(Ri, 0)) // Quicksort implementation /proc/sortAtom(list/atom/L, order = 1) - if(isnull(L) || L.len < 2) + if(isnull(L) || length(L) < 2) return L var/startIndex = 1 var/list/atom/M = new/list() for(var/atom/mob in L) if(istype(mob)) M.Add(mob) - var/endIndex = M.len - 1 + var/endIndex = length(M) - 1 var/top = 0 var/list/stack[endIndex*2] stack[++top] = startIndex @@ -241,9 +241,9 @@ /proc/sortRecord(list/datum/data/record/L, field = "name", order = 1) if(isnull(L)) return list() - if(L.len < 2) + if(length(L) < 2) return L - var/middle = L.len / 2 + 1 + var/middle = length(L) / 2 + 1 return mergeRecordLists(sortRecord(L.Copy(0, middle), field, order), sortRecord(L.Copy(middle), field, order), field, order) //Mergsort: does the actual sorting and returns the results back to sortRecord @@ -252,7 +252,7 @@ var/Ri=1 var/list/result = new() if(!isnull(L) && !isnull(R)) - while(Li <= L.len && Ri <= R.len) + while(Li <= length(L) && Ri <= length(R)) var/datum/data/record/rL = L[Li] if(isnull(rL)) L -= rL @@ -266,7 +266,7 @@ else result += R[Ri++] - if(Li <= L.len) + if(Li <= length(L)) return (result + L.Copy(Li, 0)) return (result + R.Copy(Ri, 0)) @@ -285,9 +285,9 @@ RETURN_TYPE(/list) if(!istype(L)) return - if(L.len < 2) + if(length(L) < 2) return L - var/middle = L.len / 2 + 1 // Copy is first,second-1 + var/middle = length(L) / 2 + 1 // Copy is first,second-1 return mergeLists(sortList(L.Copy(0,middle)), sortList(L.Copy(middle))) //second parameter null = to end of list //Mergsorge: uses sortList() but uses the var's name specifically. This should probably be using mergeAtom() instead @@ -301,13 +301,13 @@ var/Li=1 var/Ri=1 var/list/result = new() - while(Li <= L.len && Ri <= R.len) + while(Li <= length(L) && Ri <= length(R)) if(sorttext(L[Li], R[Ri]) < 1) result += R[Ri++] else result += L[Li++] - if(Li <= L.len) + if(Li <= length(L)) return (result + L.Copy(Li, 0)) return (result + R.Copy(Ri, 0)) @@ -322,68 +322,68 @@ // List of lists, sorts by element[key] - for things like crew monitoring computer sorting records by name. /proc/sortByKey(list/L, key) - if(L.len < 2) + if(length(L) < 2) return L - var/middle = L.len / 2 + 1 + var/middle = length(L) / 2 + 1 return mergeKeyedLists(sortByKey(L.Copy(0, middle), key), sortByKey(L.Copy(middle), key), key) /proc/mergeKeyedLists(list/L, list/R, key) var/Li=1 var/Ri=1 var/list/result = new() - while(Li <= L.len && Ri <= R.len) + while(Li <= length(L) && Ri <= length(R)) if(sorttext(L[Li][key], R[Ri][key]) < 1) // Works around list += list2 merging lists; it's not pretty but it works result += "temp item" - result[result.len] = R[Ri++] + result[length(result)] = R[Ri++] else result += "temp item" - result[result.len] = L[Li++] + result[length(result)] = L[Li++] - if(Li <= L.len) + if(Li <= length(L)) return (result + L.Copy(Li, 0)) return (result + R.Copy(Ri, 0)) //Mergesort: any value in a list, preserves key=value structure /proc/sortAssoc(list/L) - if(L.len < 2) + if(length(L) < 2) return L - var/middle = L.len / 2 + 1 // Copy is first,second-1 + var/middle = length(L) / 2 + 1 // Copy is first,second-1 return mergeAssoc(sortAssoc(L.Copy(0,middle)), sortAssoc(L.Copy(middle))) //second parameter null = to end of list /proc/mergeAssoc(list/L, list/R) var/Li=1 var/Ri=1 var/list/result = new() - while(Li <= L.len && Ri <= R.len) + while(Li <= length(L) && Ri <= length(R)) if(sorttext(L[Li], R[Ri]) < 1) result += R&R[Ri++] else result += L&L[Li++] - if(Li <= L.len) + if(Li <= length(L)) return (result + L.Copy(Li, 0)) return (result + R.Copy(Ri, 0)) // Same as sortAssoc but rather than creating a whole new list keeps the original list ref and just returns that list modified /proc/sortAssocKeepList(list/L) - if(L.len < 2) + if(length(L) < 2) return L - var/middle = L.len / 2 + 1 // Copy is first,second-1 + var/middle = length(L) / 2 + 1 // Copy is first,second-1 return mergeAssocKeepList(sortAssoc(L.Copy(0,middle)), sortAssoc(L.Copy(middle)), L) //second parameter null = to end of list /proc/mergeAssocKeepList(list/L, list/R, list/original) var/Li=1 var/Ri=1 var/list/result = new() - while(Li <= L.len && Ri <= R.len) + while(Li <= length(L) && Ri <= length(R)) if(sorttext(L[Li], R[Ri]) < 1) result += R&R[Ri++] else result += L&L[Li++] - if(Li <= L.len) + if(Li <= length(L)) result += L.Copy(Li, 0) else result += R.Copy(Ri, 0) @@ -391,11 +391,24 @@ original += result return original +/// Returns a list of atoms sorted by each entry's distance to `target`. +/proc/sort_list_dist(list/atom/list_to_sort, atom/target) + var/list/distances = list() + for(var/atom/A as anything in list_to_sort) + // Just in case this happens anyway. + if(!istype(A)) + stack_trace("sort_list_dist() was called with a list containing a non-atom object. ([A.type])") + return list_to_sort + + distances[A] = get_dist_sqrd(A, target) + + return sortTim(distances, GLOBAL_PROC_REF(cmp_numeric_asc), TRUE) + //Converts a bitfield to a list of numbers (or words if a wordlist is provided) /proc/bitfield2list(bitfield = 0, list/wordlist) var/list/r = list() if(islist(wordlist)) - var/max = min(wordlist.len,16) + var/max = min(length(wordlist),16) var/bit = 1 for(var/i=1, i<=max, i++) if(bitfield & bit) @@ -417,9 +430,9 @@ //Move a single element from position fromIndex within a list, to position toIndex //All elements in the range [1,toIndex) before the move will be before the pivot afterwards -//All elements in the range [toIndex, L.len+1) before the move will be after the pivot afterwards +//All elements in the range [toIndex, length(L)+1) before the move will be after the pivot afterwards //In other words, it's as if the range [fromIndex,toIndex) have been rotated using a <<< operation common to other languages. -//fromIndex and toIndex must be in the range [1,L.len+1] +//fromIndex and toIndex must be in the range [1,length(L)+1] //This will preserve associations ~Carnie /proc/moveElement(list/L, fromIndex, toIndex) if(fromIndex == toIndex || fromIndex+1 == toIndex) //no need to move @@ -480,13 +493,13 @@ //replaces reverseList ~Carnie /proc/reverseRange(list/L, start=1, end=0) - if(L.len) - start = start % L.len - end = end % (L.len+1) + if(length(L)) + start = start % length(L) + end = end % (length(L)+1) if(start <= 0) - start += L.len + start += length(L) if(end <= 0) - end += L.len + 1 + end += length(L) + 1 --end while(start < end) @@ -505,13 +518,13 @@ ///replaces reverseList ~Carnie /proc/reverse_range(list/inserted_list, start = 1, end = 0) - if(inserted_list.len) - start = start % inserted_list.len - end = end % (inserted_list.len + 1) + if(length(inserted_list)) + start = start % length(inserted_list) + end = end % (length(inserted_list) + 1) if(start <= 0) - start += inserted_list.len + start += length(inserted_list) if(end <= 0) - end += inserted_list.len + 1 + end += length(inserted_list) + 1 --end while(start < end) @@ -521,7 +534,7 @@ //Copies a list, and all lists inside it recusively //Does not copy any other reference type -/proc/deepCopyList(list/L) +/proc/deep_copy_list(list/L) if(!islist(L)) return L . = L.Copy() @@ -532,10 +545,10 @@ continue var/value = .[key] if(islist(value)) - value = deepCopyList(value) + value = deep_copy_list(value) .[key] = value if(islist(key)) - key = deepCopyList(key) + key = deep_copy_list(key) .[i] = key .[key] = value @@ -561,7 +574,7 @@ var/list/found = list() for(var/atom/A in contents) found += A - if(A.contents.len) + if(length(A.contents)) found += A.contents_recursive() return found @@ -569,7 +582,7 @@ var/list/found = list() for(var/atom/A in contents) found += A - if(A.contents.len) + if(length(A.contents)) found += A.contents return found @@ -581,15 +594,15 @@ if(!sort) return L - if(L.len <= 1) + if(length(L) <= 1) return L - var/middle = Floor(L.len / 2) + var/middle = floor(length(L) / 2) var/list/left = custom_mergesort(L.Copy(1, middle + 1)) var/list/right = custom_mergesort(L.Copy(middle + 1)) var/list/result = list() - while(left.len > 0 && right.len > 0) + while(length(left) > 0 && length(right) > 0) var/a = left[1] var/b = right[1] @@ -600,11 +613,11 @@ result += b right.Cut(1,2) - while(left.len > 0) + while(length(left) > 0) result += left[1] left.Cut(1,2) - while(right.len > 0) + while(length(right) > 0) result += right[1] right.Cut(1,2) diff --git a/code/__HELPERS/logging.dm b/code/__HELPERS/logging.dm index c20db3da303f..7075b4084fd4 100644 --- a/code/__HELPERS/logging.dm +++ b/code/__HELPERS/logging.dm @@ -90,9 +90,10 @@ GLOBAL_VAR_INIT(log_end, world.system_type == UNIX ? ascii2text(13) : "") GLOB.STUI?.debug.Add("\[[time]]DEBUG: [text]") GLOB.STUI?.processing |= STUI_LOG_DEBUG - for(var/client/C in GLOB.admins) - if(C.prefs.toggles_chat & CHAT_DEBUGLOGS) - to_chat(C, "DEBUG: [text]", type = MESSAGE_TYPE_DEBUG) + for(var/client/client in GLOB.admins) + if(CLIENT_IS_STAFF(client)) + if(client.prefs.toggles_chat & CHAT_DEBUGLOGS) + to_chat(client, "DEBUG: [text]", type = MESSAGE_TYPE_DEBUG) /proc/log_game(text) @@ -125,11 +126,11 @@ GLOBAL_VAR_INIT(log_end, world.system_type == UNIX ? ascii2text(13) : "") GLOB.STUI.admin.Add("\[[time]]OVERWATCH: [text]") GLOB.STUI.processing |= STUI_LOG_ADMIN -/proc/log_idmod(obj/item/card/id/target_id, msg) +/proc/log_idmod(obj/item/card/id/target_id, msg, changer) var/time = time_stamp() if (CONFIG_GET(flag/log_idmod)) - WRITE_LOG(GLOB.world_game_log, "ID MOD: [msg]") - LOG_REDIS("idmod", "\[[time]\] [msg]") + WRITE_LOG(GLOB.world_game_log, "ID MOD: ([changer]) [msg]") + LOG_REDIS("idmod", "\[[time]\] ([changer]) [msg]") target_id.modification_log += "\[[time]]: [msg]" /proc/log_vote(text) @@ -209,10 +210,10 @@ GLOBAL_VAR_INIT(log_end, world.system_type == UNIX ? ascii2text(13) : "") WRITE_LOG(GLOB.world_game_log, "MISC: [text]") GLOB.STUI?.debug.Add("\[[time]]MISC: [text]") -/proc/log_mutator(text) - if(!GLOB.mutator_logs) +/proc/log_strain(text) + if(!GLOB.strain_logs) return - WRITE_LOG(GLOB.mutator_logs, "[text]") + WRITE_LOG(GLOB.strain_logs, "[text]") /proc/log_hiveorder(text) var/time = time_stamp() @@ -286,6 +287,16 @@ GLOBAL_PROTECT(config_error_log) WRITE_LOG(GLOB.config_error_log, text) SEND_TEXT(world.log, text) +/// Logging for mapping errors +/proc/log_mapping(text, skip_world_log) +#ifdef UNIT_TESTS + GLOB.unit_test_mapping_logs += text +#endif + if(skip_world_log) + return + WRITE_LOG(GLOB.mapping_log, text) + SEND_TEXT(world.log, text) + /proc/log_admin_private(text) log_admin(text) diff --git a/code/__HELPERS/mobs.dm b/code/__HELPERS/mobs.dm index 55b234b1e419..1d123b3a8e00 100644 --- a/code/__HELPERS/mobs.dm +++ b/code/__HELPERS/mobs.dm @@ -1,11 +1,14 @@ #define isdeaf(A) (ismob(A) && ((A?:sdisabilities & DISABILITY_DEAF) || A?:ear_deaf)) #define xeno_hivenumber(A) (isxeno(A) ? A?:hivenumber : FALSE) -/proc/random_ethnicity() - return pick(GLOB.ethnicities_list) +/proc/random_skin_color() + return pick(GLOB.skin_color_list) /proc/random_body_type() - return pick(GLOB.body_types_list) + return pick(GLOB.body_type_list) + +/proc/random_body_size() + return pick(GLOB.body_size_list) /proc/random_hair_style(gender, species = "Human") var/h_style = "Crewcut" @@ -23,7 +26,7 @@ continue valid_hairstyles[hairstyle] = GLOB.hair_styles_list[hairstyle] - if(valid_hairstyles.len) + if(length(valid_hairstyles)) h_style = pick(valid_hairstyles) return h_style @@ -45,7 +48,7 @@ continue valid_facialhairstyles[facialhairstyle] = GLOB.facial_hair_styles_list[facialhairstyle] - if(valid_facialhairstyles.len) + if(length(valid_facialhairstyles)) f_style = pick(valid_facialhairstyles) return f_style @@ -73,6 +76,7 @@ /mob/proc/change_real_name(mob/M, new_name) if(!new_name) return FALSE + var/old_name = M.real_name M.real_name = new_name M.name = new_name @@ -83,6 +87,7 @@ // If we are humans, we need to update our voice as well M.change_mob_voice(new_name) + SEND_SIGNAL(src, COMSIG_MOB_REAL_NAME_CHANGED, old_name, new_name) return TRUE /mob/proc/change_mind_name(new_mind_name) diff --git a/code/__HELPERS/nameof.dm b/code/__HELPERS/nameof.dm index 7cd5777f4652..5a2fd60e7100 100644 --- a/code/__HELPERS/nameof.dm +++ b/code/__HELPERS/nameof.dm @@ -8,8 +8,4 @@ /** * NAMEOF that actually works in static definitions because src::type requires src to be defined */ -#if DM_VERSION >= 515 #define NAMEOF_STATIC(datum, X) (nameof(type::##X)) -#else -#define NAMEOF_STATIC(datum, X) (#X || ##datum.##X) -#endif diff --git a/code/__HELPERS/sanitize_values.dm b/code/__HELPERS/sanitize_values.dm index 85e102a3c1ac..291246e621a0 100644 --- a/code/__HELPERS/sanitize_values.dm +++ b/code/__HELPERS/sanitize_values.dm @@ -1,7 +1,7 @@ //general stuff /proc/sanitize_integer(number, min=0, max=1, default=0) if(isnum(number)) - number = round(number) + number = floor(number) if(min <= number && number <= max) return number return default @@ -20,7 +20,7 @@ /proc/sanitize_inlist(value, list/List, default) if(value in List) return value if(default) return default - if(List && List.len)return List[1] + if(LAZYLEN(List))return List[1] /proc/sanitize_list(list/List, list/filter = list(null), default = list()) if(!islist(List)) @@ -45,18 +45,24 @@ else return default return default -/proc/sanitize_ethnicity(ethnicity, default = "Western") - if (ethnicity in GLOB.ethnicities_list) - return ethnicity +/proc/sanitize_skin_color(skin_color, default = "Pale 2") + if(skin_color in GLOB.skin_color_list) + return skin_color return default -/proc/sanitize_body_type(body_type, default = "Mesomorphic (Average)") - if (body_type in GLOB.body_types_list) +/proc/sanitize_body_type(body_type, default = "Lean") + if(body_type in GLOB.body_type_list) return body_type return default +/proc/sanitize_body_size(body_size, default = "Average") + if(body_size in GLOB.body_size_list) + return body_size + + return default + /proc/sanitize_hexcolor(color, default="#000000") if(!istext(color)) return default var/len = length(color) diff --git a/code/__HELPERS/shell.dm b/code/__HELPERS/shell.dm index 35a8e4635b41..a165a7981fe8 100644 --- a/code/__HELPERS/shell.dm +++ b/code/__HELPERS/shell.dm @@ -20,7 +20,7 @@ shelleo_id = "[seo_id]" break if(!shelleo_id) - shelleo_id = "[shelleo_ids.len + 1]" + shelleo_id = "[length(shelleo_ids) + 1]" shelleo_ids += shelleo_id shelleo_ids[shelleo_id] = TRUE out_file = "[SHELLEO_NAME][shelleo_id][SHELLEO_OUT]" diff --git a/code/__HELPERS/sorts/TimSort.dm b/code/__HELPERS/sorts/TimSort.dm index ae83bd9b0682..89a93802edee 100644 --- a/code/__HELPERS/sorts/TimSort.dm +++ b/code/__HELPERS/sorts/TimSort.dm @@ -1,12 +1,12 @@ //TimSort interface /proc/sortTim(list/L, cmp=/proc/cmp_numeric_asc, associative, fromIndex=1, toIndex=0) - if(L && L.len >= 2) - fromIndex = fromIndex % L.len - toIndex = toIndex % (L.len+1) + if(length(L) >= 2) + fromIndex = fromIndex % length(L) + toIndex = toIndex % (length(L)+1) if(fromIndex <= 0) - fromIndex += L.len + fromIndex += length(L) if(toIndex <= 0) - toIndex += L.len + 1 + toIndex += length(L) + 1 var/datum/sortInstance/sort_instance = GLOB.sortInstance if(!sort_instance) diff --git a/code/__HELPERS/sorts/_Main.dm b/code/__HELPERS/sorts/_Main.dm index 5d6f5210be47..4caf2c4c068e 100644 --- a/code/__HELPERS/sorts/_Main.dm +++ b/code/__HELPERS/sorts/_Main.dm @@ -76,7 +76,7 @@ GLOBAL_DATUM_INIT(sortInstance, /datum/sortInstance, new()) //Merge all remaining runs to complete sort //ASSERT(start == end) mergeForceCollapse(); - //ASSERT(runBases.len == 1) + //ASSERT(length(runBases) == 1) //reset minGallop, for successive calls minGallop = MIN_GALLOP @@ -113,7 +113,7 @@ GLOBAL_DATUM_INIT(sortInstance, /datum/sortInstance, new()) //[lo, left) elements <= pivot < [right, start) elements //in other words, find where the pivot element should go using bisection search while(left < right) - var/mid = (left + right) >> 1 //round((left+right)/2) + var/mid = (left + right) >> 1 //floor((left+right)/2) if(call(cmp)(fetchElement(L,mid), pivot) > 0) right = mid else @@ -178,8 +178,8 @@ GLOBAL_DATUM_INIT(sortInstance, /datum/sortInstance, new()) //This method is called each time a new run is pushed onto the stack. //So the invariants are guaranteed to hold for i= 2) - var/n = runBases.len - 1 + while(length(runBases) >= 2) + var/n = length(runBases) - 1 if(n > 1 && runLens[n-1] <= runLens[n] + runLens[n+1]) if(runLens[n-1] < runLens[n+1]) --n @@ -193,8 +193,8 @@ GLOBAL_DATUM_INIT(sortInstance, /datum/sortInstance, new()) //Merges all runs on the stack until only one remains. //Called only once, to finalise the sort /datum/sortInstance/proc/mergeForceCollapse() - while(runBases.len >= 2) - var/n = runBases.len - 1 + while(length(runBases) >= 2) + var/n = length(runBases) - 1 if(n > 1 && runLens[n-1] < runLens[n+1]) --n mergeAt(n) @@ -204,9 +204,9 @@ GLOBAL_DATUM_INIT(sortInstance, /datum/sortInstance, new()) //Run i must be the penultimate or antepenultimate run on the stack //In other words, i must be equal to stackSize-2 or stackSize-3 /datum/sortInstance/proc/mergeAt(i) - //ASSERT(runBases.len >= 2) + //ASSERT(length(runBases) >= 2) //ASSERT(i >= 1) - //ASSERT(i == runBases.len - 1 || i == runBases.len - 2) + //ASSERT(i == length(runBases) - 1 || i == length(runBases) - 2) var/base1 = runBases[i] var/base2 = runBases[i+1] @@ -393,7 +393,7 @@ GLOBAL_DATUM_INIT(sortInstance, /datum/sortInstance, new()) var/count1 = 0 //# of times in a row that first run won var/count2 = 0 // " " " " " " second run won - //do the straightfoward thin until one run starts winning consistently + //do the straightforward thin until one run starts winning consistently do //ASSERT(len1 > 1 && len2 > 0) @@ -493,7 +493,7 @@ GLOBAL_DATUM_INIT(sortInstance, /datum/sortInstance, new()) var/count1 = 0 //# of times in a row that first run won var/count2 = 0 // " " " " " " second run won - //do the straightfoward thing until one run starts winning consistently + //do the straightforward thing until one run starts winning consistently do //ASSERT(len1 > 0 && len2 > 1) if(call(cmp)(fetchElement(L,cursor2), fetchElement(L,cursor1)) < 0) @@ -596,8 +596,8 @@ GLOBAL_DATUM_INIT(sortInstance, /datum/sortInstance, new()) while(remaining > 0) - while(runBases.len >= 2) - var/n = runBases.len - 1 + while(length(runBases) >= 2) + var/n = length(runBases) - 1 if(n > 1 && runLens[n-1] <= runLens[n] + runLens[n+1]) if(runLens[n-1] < runLens[n+1]) --n @@ -607,8 +607,8 @@ GLOBAL_DATUM_INIT(sortInstance, /datum/sortInstance, new()) else break //Invariant is established - while(runBases.len >= 2) - var/n = runBases.len - 1 + while(length(runBases) >= 2) + var/n = length(runBases) - 1 if(n > 1 && runLens[n-1] < runLens[n+1]) --n mergeAt2(n) diff --git a/code/__HELPERS/string_lists.dm b/code/__HELPERS/string_lists.dm new file mode 100644 index 000000000000..076bbf642756 --- /dev/null +++ b/code/__HELPERS/string_lists.dm @@ -0,0 +1,23 @@ +GLOBAL_LIST_EMPTY(string_lists) + +/** + * Caches lists with non-numeric stringify-able values (text or typepath). + */ +/proc/string_list(list/values) + var/string_id = values.Join("-") + + . = GLOB.string_lists[string_id] + + if(.) + return . + + return GLOB.string_lists[string_id] = values + +///A wrapper for baseturf string lists, to offer support of non list values, and a stack_trace if we have major issues +/proc/baseturfs_string_list(list/values, turf/baseturf_holder) + if(!islist(values)) + return values //baseturf things + // return values + if(length(values) > 10) + return string_list(list(/turf/closed/cordon/debug)) + return string_list(values) diff --git a/code/__HELPERS/text.dm b/code/__HELPERS/text.dm index 967967790b28..7396e8624ba9 100644 --- a/code/__HELPERS/text.dm +++ b/code/__HELPERS/text.dm @@ -201,6 +201,24 @@ return "" +//Returns a string with reserved characters and spaces after the first and last letters removed +//Like trim(), but very slightly faster. worth it for niche usecases +/proc/trim_reduced(text) + var/starting_coord = 1 + var/text_len = length(text) + for (var/i in 1 to text_len) + if (text2ascii(text, i) > 32) + starting_coord = i + break + + for (var/i = text_len, i >= starting_coord, i--) + if (text2ascii(text, i) > 32) + return copytext(text, starting_coord, i + 1) + + if(starting_coord > 1) + return copytext(text, starting_coord) + return "" + //Returns a string with reserved characters and spaces before the first word and after the last word removed. /proc/trim(text) return trim_left(trim_right(text)) @@ -381,3 +399,7 @@ if(.) return return 0 + +/// Check if the string `haystack` begins with the string `needle`. +/proc/string_starts_with(haystack, needle) + return (copytext(haystack, 1, length(needle) + 1) == needle) diff --git a/code/__HELPERS/type2type.dm b/code/__HELPERS/type2type.dm index 5d0d113b0c55..e1d53e0a81d0 100644 --- a/code/__HELPERS/type2type.dm +++ b/code/__HELPERS/type2type.dm @@ -60,7 +60,7 @@ var/power = null power = i - 1 while(power >= 0) - var/val = round(num / 16 ** power) + var/val = floor(num / 16 ** power) num -= val * 16 ** power switch(val) if(9.0, 8.0, 7.0, 6.0, 5.0, 4.0, 3.0, 2.0, 1.0, 0.0) diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm index 0782826a4dc9..d8eebf79bca6 100644 --- a/code/__HELPERS/unsorted.dm +++ b/code/__HELPERS/unsorted.dm @@ -3,8 +3,6 @@ */ // GLOBAL DEFINES // -#define is_hot(I) (I?:heat_source) - //Whether or not the given item counts as sharp in terms of dealing damage #define is_sharp(I) (isitem(I) && I?:sharp && I?:edge) @@ -17,38 +15,35 @@ HAS_TRAIT(W, TRAIT_TOOL_SCREWDRIVER) || istype(W, /obj/item/tool/pen ) || istype(W, /obj/item/tool/shovel)) \ ) -//Makes sure MIDDLE is between LOW and HIGH. If not, it adjusts it. Returns the adjusted value. -#define between(low, middle, high) (max(min(middle, high), low)) - //Offuscate x for coord system -#define obfuscate_x(x) (x + GLOB.obfs_x) +#define obfuscate_x(x) ((x) + GLOB.obfs_x) //Offuscate y for coord system -#define obfuscate_y(y) (y + GLOB.obfs_y) +#define obfuscate_y(y) ((y) + GLOB.obfs_y) //Deoffuscate x for coord system -#define deobfuscate_x(x) (x - GLOB.obfs_x) +#define deobfuscate_x(x) ((x) - GLOB.obfs_x) //Deoffuscate y for coord system -#define deobfuscate_y(y) (y - GLOB.obfs_y) +#define deobfuscate_y(y) ((y) - GLOB.obfs_y) #define can_xeno_build(T) (!T.density && !(locate(/obj/structure/fence) in T) && !(locate(/obj/structure/tunnel) in T) && (locate(/obj/effect/alien/weeds) in T)) // For the purpose of a skillcheck, not having a skillset counts as being skilled in everything (!user.skills check) // Note that is_skilled() checks if the skillset contains the skill internally, so a has_skill check is unnecessary -#define skillcheck(user, skill, req_level) ((!user.skills || user.skills.is_skilled(skill, req_level))) -#define skillcheckexplicit(user, skill, req_level) ((!user.skills || user.skills.is_skilled(skill, req_level, TRUE))) +#define skillcheck(user, skill, req_level) ((!user.skills || user.skills.is_skilled((skill), (req_level)))) +#define skillcheckexplicit(user, skill, req_level) ((!user.skills || user.skills.is_skilled((skill), (req_level), TRUE))) // Ensure the frequency is within bounds of what it should be sending/receiving at -// Sets f within bounds via `Clamp(round(f), 1441, 1489)` +// Sets f within bounds via `clamp(floor(f), 1441, 1489)` // If f is even, adds 1 to its value to make it odd -#define sanitize_frequency(f) ((Clamp(round(f), 1441, 1489) % 2) == 0 ? \ - Clamp(round(f), 1441, 1489) + 1 : \ - Clamp(round(f), 1441, 1489) \ +#define sanitize_frequency(f) ((clamp(floor(f), 1441, 1489) % 2) == 0 ? \ + clamp(floor(f), 1441, 1489) + 1 : \ + clamp(floor(f), 1441, 1489) \ ) //Turns 1479 into 147.9 -#define format_frequency(f) "[round(f / 10)].[f % 10]" +#define format_frequency(f) "[floor((f) / 10)].[(f) % 10]" #define reverse_direction(direction) ( \ ( dir & (NORTH|SOUTH) ? ~dir & (NORTH|SOUTH) : 0 ) | \ @@ -61,16 +56,6 @@ // GLOBAL PROCS // -//Returns the middle-most value -/proc/dd_range(low, high, num) - return max(low,min(high,num)) - -//Returns whether or not A is the middle most value -/proc/InRange(A, lower, upper) - if(A < lower) return 0 - if(A > upper) return 0 - return 1 - /// Gives X position on pixel grid of an object, accounting for offsets /proc/get_pixel_position_x(atom/subject, relative = FALSE) . = subject.pixel_x + subject.base_pixel_x @@ -99,38 +84,29 @@ var/atom/movable/big_subject = subject . += (big_subject.bound_height - world.icon_size) / 2 -/proc/Get_Angle(atom/start,atom/end, tile_bound = FALSE)//For beams. - if(!start || !end) return 0 - if(!start.z || !end.z) return 0 //Atoms are not on turfs. - var/dx - var/dy - if(tile_bound) - dy=end.y-start.y - dx=end.x-start.x - else - dy = get_pixel_position_y(end) - get_pixel_position_y(start) - dx = get_pixel_position_x(end) - get_pixel_position_x(start) - if(!dy) - return (dx>=0)?90:270 - .=arctan(dx/dy) - if(dy<0) - .+=180 - else if(dx<0) - .+=360 - -/proc/Get_Compass_Dir(atom/start,atom/end)//get_dir() only considers an object to be north/south/east/west if there is zero deviation. This uses rounding instead. - if(!start || !end) return 0 - if(!start.z || !end.z) return 0 //Atoms are not on turfs. - var/dy=end.y-start.y - var/dx=end.x-start.x - if(!dy) - return (dx>=0)?4:8 - var/angle=arctan(dx/dy) - if(dy<0) - angle+=180 - else if(dx<0) - angle+=360 - +/// Calculate the angle between two atoms. Uses north-clockwise convention: NORTH = 0, EAST = 90, etc. +/proc/Get_Angle(atom/start, atom/end)//For beams. + if(!start || !end) + return 0 + if(!start.z) + start = get_turf(start) + if(!start) + return 0 //Atoms are not on turfs. + if(!end.z) + end = get_turf(end) + if(!end) + return 0 //Atoms are not on turfs. + var/dy = get_pixel_position_y(end) - get_pixel_position_y(start) + var/dx = get_pixel_position_x(end) - get_pixel_position_x(start) + return delta_to_angle(dx, dy) + +/// Calculate the angle produced by a pair of x and y deltas. Uses north-clockwise convention: NORTH = 0, EAST = 90, etc. +/proc/delta_to_angle(dx, dy) + . = arctan(dy, dx) //y-then-x results in north-clockwise convention: https://en.wikipedia.org/wiki/Atan2#East-counterclockwise,_north-clockwise_and_south-clockwise_conventions,_etc. + if(. < 0) + . += 360 + +/proc/angle_to_dir(angle) switch(angle) //diagonal directions get priority over straight directions in edge cases if (22.5 to 67.5) return NORTHEAST @@ -151,6 +127,8 @@ else return NORTH +/proc/Get_Compass_Dir(atom/start, atom/end)//get_dir() only considers an object to be north/south/east/west if there is zero deviation. This uses rounding instead. + return angle_to_dir(Get_Angle(get_turf(start), get_turf(end))) // Among other things, used by flamethrower and boiler spray to calculate if flame/spray can pass through. // Returns an atom for specific effects (primarily flames and acid spray) that damage things upon contact @@ -252,9 +230,6 @@ -/proc/sign(x) - return x!=0?x/abs(x):0 - //Returns whether or not a player is a guest using their ckey as an input /proc/IsGuestKey(key) if (findtext(key, "Guest-", 1, 7) != 1) //was findtextEx @@ -302,101 +277,6 @@ search_id = 0 return 1 - - -//Generalised helper proc for letting mobs rename themselves. Used to be clname() and ainame() -//Last modified by Carn -/mob/proc/rename_self(role, allow_numbers=0) - var/oldname = real_name - var/time_passed = world.time - - var/newname - for(var/i=1,i<=3,i++) //we get 3 attempts to pick a suitable name. - newname = input(src,"You are a [role]. Would you like to change your name to something else?", "Name change",oldname) as text - if((world.time-time_passed)>300) - return //took too long - newname = reject_bad_name(newname,allow_numbers) //returns null if the name doesn't meet some basic requirements. Tidies up a few other things like bad-characters. - for(var/mob/living/M in GLOB.alive_mob_list) - if(M == src) - continue - - if(!newname || M.real_name == newname) - newname = null - break - - if(newname) - break //That's a suitable name! - to_chat(src, "Sorry, that [role]-name wasn't appropriate, please try another. It's possibly too long/short, has bad characters or is already taken.") - - if(!newname) //we'll stick with the oldname then - return - - if(cmptext("ai",role)) - if(isAI(src)) - var/mob/living/silicon/ai/A = src - oldname = null//don't bother with the records update crap - A.SetName(newname) - - fully_replace_character_name(oldname,newname) - - - -//When a borg is activated, it can choose which AI it wants to be slaved to -/proc/active_ais() - . = list() - for(var/mob/living/silicon/ai/A in GLOB.alive_mob_list) - if(A.stat == DEAD) - continue - if(A.control_disabled == 1) - continue - . += A - return . - -//Find an active ai with the least borgs. VERBOSE PROCNAME HUH! -/proc/select_active_ai_with_fewest_borgs() - var/mob/living/silicon/ai/selected - var/list/active = active_ais() - for(var/mob/living/silicon/ai/A in active) - if(!selected || (selected.connected_robots > A.connected_robots)) - selected = A - - return selected - -/proc/select_active_ai(mob/user) - var/list/ais = active_ais() - if(ais.len) - if(user) . = tgui_input_list(usr,"AI signals detected:", "AI selection", ais) - else . = pick(ais) - return . - -/proc/get_sorted_mobs() - var/list/old_list = getmobs() - var/list/AI_list = list() - var/list/Dead_list = list() - var/list/keyclient_list = list() - var/list/key_list = list() - var/list/logged_list = list() - for(var/named in old_list) - var/mob/M = old_list[named] - if(isSilicon(M)) - AI_list |= M - else if(isobserver(M) || M.stat == 2) - Dead_list |= M - else if(M.key && M.client) - keyclient_list |= M - else if(M.key) - key_list |= M - else - logged_list |= M - old_list.Remove(named) - var/list/new_list = list() - new_list += AI_list - new_list += keyclient_list - new_list += key_list - new_list += logged_list - new_list += Dead_list - return new_list - //Returns a list of all mobs with their name /proc/getmobs() var/list/mobs = sortmobs() @@ -425,150 +305,6 @@ return creatures -/proc/getxenos() - var/list/mobs = sortxenos() - var/list/names = list() - var/list/creatures = list() - var/list/namecounts = list() - for(var/mob/M in mobs) - var/name = M.name - if (name in names) - namecounts[name]++ - name = "[name] ([namecounts[name]])" - else - names.Add(name) - namecounts[name] = 1 - if(isobserver(M)) - name += " \[ghost\]" - else if(M.stat == DEAD) - name += " \[dead\]" - creatures[name] = M - return creatures - -/proc/getpreds() - var/list/mobs = sortpreds() - var/list/names = list() - var/list/creatures = list() - var/list/namecounts = list() - for(var/mob/M in mobs) - if(!isyautja(M)) continue - var/name = M.name - if (name in names) - namecounts[name]++ - name = "[name] ([namecounts[name]])" - else - names.Add(name) - namecounts[name] = 1 - if (M.real_name && M.real_name != M.name) - name += " \[[M.real_name]\]" - if (M.stat == 2) - name += " \[dead\]" - if(istype(M, /mob/dead/observer/)) - name += " \[ghost\]" - creatures[name] = M - - return creatures - -/proc/gethumans() - var/list/mobs = sorthumans() - var/list/names = list() - var/list/creatures = list() - var/list/namecounts = list() - for(var/mob/M in mobs) - if(isyautja(M)) continue - if(iszombie(M)) continue - var/name = M.name - if (name in names) - namecounts[name]++ - name = "[name] ([namecounts[name]])" - else - names.Add(name) - namecounts[name] = 1 - if (M.real_name && M.real_name != M.name) - name += " \[[M.real_name]\]" - if (M.stat == 2) - name += " \[dead\]" - if(istype(M, /mob/dead/observer/)) - name += " \[ghost\]" - creatures[name] = M - - return creatures - -/proc/getsurvivors() - var/list/mobs = sortsurvivors() - var/list/names = list() - var/list/creatures = list() - var/list/namecounts = list() - for(var/mob/M in mobs) - if(isyautja(M)) continue - if(iszombie(M)) continue - var/name = M.name - if (name in names) - namecounts[name]++ - name = "[name] ([namecounts[name]])" - else - names.Add(name) - namecounts[name] = 1 - if (M.real_name && M.real_name != M.name) - name += " \[[M.real_name]\]" - if (M.stat == 2) - name += " \[dead\]" - if(istype(M, /mob/dead/observer/)) - name += " \[ghost\]" - creatures[name] = M - - return creatures - -/proc/getertmembers() - var/list/mobs = sortertmembers() - var/list/names = list() - var/list/creatures = list() - var/list/namecounts = list() - for(var/mob/M in mobs) - if(isyautja(M)) continue - if(iszombie(M)) continue - var/name = M.name - if (name in names) - namecounts[name]++ - name = "[name] ([namecounts[name]])" - else - names.Add(name) - namecounts[name] = 1 - if (M.real_name && M.real_name != M.name) - name += " \[[M.real_name]\]" - if (M.stat == 2) - name += " \[dead\]" - if(istype(M, /mob/dead/observer/)) - name += " \[ghost\]" - creatures[name] = M - - return creatures - -/proc/getsynths() - var/list/mobs = sortsynths() - var/list/names = list() - var/list/creatures = list() - var/list/namecounts = list() - for(var/mob/M in mobs) - if(isyautja(M)) continue - if(iszombie(M)) continue - var/name = M.name - if (name in names) - namecounts[name]++ - name = "[name] ([namecounts[name]])" - else - names.Add(name) - namecounts[name] = 1 - if (M.real_name && M.real_name != M.name) - name += " \[[M.real_name]\]" - if (M.stat == 2) - name += " \[dead\]" - if(istype(M, /mob/dead/observer/)) - name += " \[ghost\]" - creatures[name] = M - - return creatures - /proc/get_multi_vehicles() var/list/multi_vehicles = GLOB.all_multi_vehicles.Copy() var/list/names = list() @@ -595,22 +331,6 @@ return vehicles -/proc/get_holograms() - var/list/holograms = list() - var/list/namecounts = list() - for(var/i in GLOB.hologram_list) - var/mob/hologram/H = i - var/name = H.name - if(name in namecounts) - namecounts[name]++ - name = "[name] #([namecounts[name]])" - else - namecounts[name] = 1 - - holograms[name] = H - - return holograms - //Orders mobs by type then by name /proc/sortmobs() var/list/moblist = list() @@ -637,62 +357,6 @@ moblist += friend return moblist -/proc/sortxenos() - var/list/xenolist = list() - var/list/sortmob = sortAtom(GLOB.xeno_mob_list) - for(var/mob/living/carbon/xenomorph/M in sortmob) - if(!M.client) - continue - xenolist.Add(M) - return xenolist - -/proc/sortpreds() - var/list/predlist = list() - var/list/sortmob = sortAtom(GLOB.human_mob_list) - for(var/mob/living/carbon/human/M in sortmob) - if(!M.client || !M.species.name == "Yautja") - continue - predlist.Add(M) - return predlist - -/proc/sorthumans() - var/list/humanlist = list() - var/list/sortmob = sortAtom(GLOB.human_mob_list) - for(var/mob/living/carbon/human/M in sortmob) - if(!M.client || M.species.name == "Yautja") - continue - humanlist.Add(M) - return humanlist - -/proc/sortsurvivors() - var/list/survivorlist = list() - var/list/sortmob = sortAtom(GLOB.human_mob_list) - for(var/mob/living/carbon/human/M in sortmob) - if(!M.client || M.species.name == "Yautja") - continue - if(M.faction == FACTION_SURVIVOR) - survivorlist.Add(M) - return survivorlist - -/proc/sortertmembers() - var/list/ertmemberlist = list() - var/list/sortmob = sortAtom(GLOB.human_mob_list) - for(var/mob/living/carbon/human/M in sortmob) - if(!M.client) - continue - if(M.faction in FACTION_LIST_ERT) - ertmemberlist.Add(M) - return ertmemberlist - -/proc/sortsynths() - var/list/synthlist = list() - var/list/sortmob = sortAtom(GLOB.human_mob_list) - for(var/mob/living/carbon/human/M in sortmob) - if(!M.client || !issynth(M)) - continue - synthlist.Add(M) - return synthlist - /proc/key_name(whom, include_link = null, include_name = 1, highlight_special_characters = 1) var/mob/M var/client/C @@ -776,8 +440,7 @@ if(orange) turfs -= get_turf(center) . = list() - for(var/V in turfs) - var/turf/T = V + for(var/turf/T as anything in turfs) . += T . += T.contents if(areas) @@ -867,14 +530,24 @@ animation.master = target flick(flick_anim, animation) -//Will return the contents of an atom recursivly to a depth of 'searchDepth' +///Will return the contents of an atom recursivly to a depth of 'searchDepth', not including starting atom /atom/proc/GetAllContents(searchDepth = 5, list/toReturn = list()) for(var/atom/part as anything in contents) toReturn += part - if(part.contents.len && searchDepth) + if(length(part.contents) && searchDepth) part.GetAllContents(searchDepth - 1, toReturn) return toReturn +///Returns the src and all recursive contents as a list. Includes the starting atom. +/atom/proc/get_all_contents(ignore_flag_1) + . = list(src) + var/i = 0 + while(i < length(.)) + var/atom/checked_atom = .[++i] + if(checked_atom.flags_atom & ignore_flag_1) + continue + . += checked_atom.contents + /// Returns list of contents of a turf recursively, much like GetAllContents /// We only get containing atoms in the turf, excluding multitiles bordering on it /turf/proc/GetAllTurfStrictContents(searchDepth = 5, list/toReturn = list()) @@ -882,7 +555,7 @@ if(part.loc != src) // That's a multitile atom, and it's not actually here stricto sensu continue toReturn += part - if(part.contents.len && searchDepth) + if(length(part.contents) && searchDepth) part.GetAllContents(searchDepth - 1, toReturn) return toReturn @@ -940,86 +613,103 @@ GLOBAL_DATUM(action_purple_power_up, /image) if(!GLOB.busy_indicator_clock) GLOB.busy_indicator_clock = image('icons/mob/mob.dmi', null, "busy_generic", "pixel_y" = 22) GLOB.busy_indicator_clock.layer = FLY_LAYER + GLOB.busy_indicator_clock.plane = ABOVE_GAME_PLANE return GLOB.busy_indicator_clock else if(busy_type == BUSY_ICON_MEDICAL) if(!GLOB.busy_indicator_medical) GLOB.busy_indicator_medical = image('icons/mob/mob.dmi', null, "busy_medical", "pixel_y" = 0) //This shows directly on top of the mob, no offset! GLOB.busy_indicator_medical.layer = FLY_LAYER + GLOB.busy_indicator_medical.plane = ABOVE_GAME_PLANE return GLOB.busy_indicator_medical else if(busy_type == BUSY_ICON_BUILD) if(!GLOB.busy_indicator_build) GLOB.busy_indicator_build = image('icons/mob/mob.dmi', null, "busy_build", "pixel_y" = 22) GLOB.busy_indicator_build.layer = FLY_LAYER + GLOB.busy_indicator_build.plane = ABOVE_GAME_PLANE return GLOB.busy_indicator_build else if(busy_type == BUSY_ICON_FRIENDLY) if(!GLOB.busy_indicator_friendly) GLOB.busy_indicator_friendly = image('icons/mob/mob.dmi', null, "busy_friendly", "pixel_y" = 22) GLOB.busy_indicator_friendly.layer = FLY_LAYER + GLOB.busy_indicator_friendly.plane = ABOVE_GAME_PLANE return GLOB.busy_indicator_friendly else if(busy_type == BUSY_ICON_HOSTILE) if(!GLOB.busy_indicator_hostile) GLOB.busy_indicator_hostile = image('icons/mob/mob.dmi', null, "busy_hostile", "pixel_y" = 22) GLOB.busy_indicator_hostile.layer = FLY_LAYER + GLOB.busy_indicator_hostile.plane = ABOVE_GAME_PLANE return GLOB.busy_indicator_hostile else if(busy_type == EMOTE_ICON_HIGHFIVE) if(!GLOB.emote_indicator_highfive) GLOB.emote_indicator_highfive = image('icons/mob/mob.dmi', null, "emote_highfive", "pixel_y" = 22) GLOB.emote_indicator_highfive.layer = FLY_LAYER + GLOB.emote_indicator_highfive.plane = ABOVE_GAME_PLANE return GLOB.emote_indicator_highfive else if(busy_type == EMOTE_ICON_FISTBUMP) if(!GLOB.emote_indicator_fistbump) GLOB.emote_indicator_fistbump = image('icons/mob/mob.dmi', null, "emote_fistbump", "pixel_y" = 22) GLOB.emote_indicator_fistbump.layer = FLY_LAYER + GLOB.emote_indicator_fistbump.plane = ABOVE_GAME_PLANE return GLOB.emote_indicator_fistbump else if(busy_type == EMOTE_ICON_ROCK_PAPER_SCISSORS) if(!GLOB.emote_indicator_rock_paper_scissors) GLOB.emote_indicator_rock_paper_scissors = image('icons/mob/mob.dmi', null, "emote_rps", "pixel_y" = 22) GLOB.emote_indicator_rock_paper_scissors.layer = FLY_LAYER + GLOB.emote_indicator_rock_paper_scissors.plane = ABOVE_GAME_PLANE return GLOB.emote_indicator_rock_paper_scissors else if(busy_type == EMOTE_ICON_ROCK) if(!GLOB.emote_indicator_rock) GLOB.emote_indicator_rock = image('icons/mob/mob.dmi', null, "emote_rock", "pixel_y" = 22) GLOB.emote_indicator_rock.layer = FLY_LAYER + GLOB.emote_indicator_rock.plane = ABOVE_GAME_PLANE return GLOB.emote_indicator_rock else if(busy_type == EMOTE_ICON_PAPER) if(!GLOB.emote_indicator_paper) GLOB.emote_indicator_paper = image('icons/mob/mob.dmi', null, "emote_paper", "pixel_y" = 22) GLOB.emote_indicator_paper.layer = FLY_LAYER + GLOB.emote_indicator_paper.plane = ABOVE_GAME_PLANE return GLOB.emote_indicator_paper else if(busy_type == EMOTE_ICON_SCISSORS) if(!GLOB.emote_indicator_scissors) GLOB.emote_indicator_scissors = image('icons/mob/mob.dmi', null, "emote_scissors", "pixel_y" = 22) GLOB.emote_indicator_scissors.layer = FLY_LAYER + GLOB.emote_indicator_scissors.plane = ABOVE_GAME_PLANE return GLOB.emote_indicator_scissors else if(busy_type == EMOTE_ICON_HEADBUTT) if(!GLOB.emote_indicator_headbutt) GLOB.emote_indicator_headbutt = image('icons/mob/mob.dmi', null, "emote_headbutt", "pixel_y" = 22) GLOB.emote_indicator_headbutt.layer = FLY_LAYER + GLOB.emote_indicator_headbutt.plane = ABOVE_GAME_PLANE return GLOB.emote_indicator_headbutt else if(busy_type == EMOTE_ICON_TAILSWIPE) if(!GLOB.emote_indicator_tailswipe) GLOB.emote_indicator_tailswipe = image('icons/mob/mob.dmi', null, "emote_tailswipe", "pixel_y" = 22) GLOB.emote_indicator_tailswipe.layer = FLY_LAYER + GLOB.emote_indicator_tailswipe.plane = ABOVE_GAME_PLANE return GLOB.emote_indicator_tailswipe else if(busy_type == ACTION_RED_POWER_UP) if(!GLOB.action_red_power_up) GLOB.action_red_power_up = image('icons/effects/effects.dmi', null, "anger", "pixel_x" = 16) GLOB.action_red_power_up.layer = FLY_LAYER + GLOB.action_red_power_up.plane = ABOVE_GAME_PLANE return GLOB.action_red_power_up else if(busy_type == ACTION_GREEN_POWER_UP) if(!GLOB.action_green_power_up) GLOB.action_green_power_up = image('icons/effects/effects.dmi', null, "vitality", "pixel_x" = 16) GLOB.action_green_power_up.layer = FLY_LAYER + GLOB.action_green_power_up.plane = ABOVE_GAME_PLANE return GLOB.action_green_power_up else if(busy_type == ACTION_BLUE_POWER_UP) if(!GLOB.action_blue_power_up) GLOB.action_blue_power_up = image('icons/effects/effects.dmi', null, "shock", "pixel_x" = 16) GLOB.action_blue_power_up.layer = FLY_LAYER + GLOB.action_blue_power_up.plane = ABOVE_GAME_PLANE return GLOB.action_blue_power_up else if(busy_type == ACTION_PURPLE_POWER_UP) if(!GLOB.action_purple_power_up) GLOB.action_purple_power_up = image('icons/effects/effects.dmi', null, "pain", "pixel_x" = 16) GLOB.action_purple_power_up.layer = FLY_LAYER + GLOB.action_purple_power_up.plane = ABOVE_GAME_PLANE return GLOB.action_purple_power_up @@ -1080,7 +770,7 @@ GLOBAL_DATUM(action_purple_power_up, /image) var/cur_user_zone_sel = busy_user.zone_selected var/cur_target_zone_sel - var/delayfraction = Ceiling(delay/numticks) + var/delayfraction = ceil(delay/numticks) var/user_orig_loc = busy_user.loc var/user_orig_turf = get_turf(busy_user) var/target_orig_loc @@ -1132,7 +822,7 @@ GLOBAL_DATUM(action_purple_power_up, /image) ) . = FALSE break - if(user_flags & INTERRUPT_DAZED && busy_user.dazed) + if(user_flags & INTERRUPT_DAZED && HAS_TRAIT(busy_user, TRAIT_DAZED)) . = FALSE break if(user_flags & INTERRUPT_EMOTE && !busy_user.flags_emote) @@ -1392,7 +1082,7 @@ GLOBAL_DATUM(action_purple_power_up, /image) var/list/doors = new/list() - if(toupdate.len) + if(length(toupdate)) for(var/turf/T1 in toupdate) for(var/obj/structure/machinery/door/D2 in T1) doors += D2 @@ -1401,7 +1091,7 @@ GLOBAL_DATUM(action_purple_power_up, /image) else air_master.tiles_to_update += T1*/ - if(fromupdate.len) + if(length(fromupdate)) for(var/turf/T2 in fromupdate) for(var/obj/structure/machinery/door/D2 in T2) doors += D2 @@ -1524,88 +1214,47 @@ GLOBAL_LIST_INIT(WALLITEMS, list( /proc/format_text(text) return replacetext(replacetext(text,"\proper ",""),"\improper ","") -/proc/getline(atom/M, atom/N, include_from_atom = TRUE)//Ultra-Fast Bresenham Line-Drawing Algorithm - var/px=M.x //starting x - var/py=M.y - var/line[] = list(locate(px,py,M.z)) - var/dx=N.x-px //x distance - var/dy=N.y-py - var/dxabs=abs(dx)//Absolute value of x distance - var/dyabs=abs(dy) - var/sdx=sign(dx) //Sign of x distance (+ or -) - var/sdy=sign(dy) - var/x=dxabs>>1 //Counters for steps taken, setting to distance/2 - var/y=dyabs>>1 //Bit-shifting makes me l33t. It also makes getline() unnessecarrily fast. - var/j //Generic integer for counting - if(dxabs>=dyabs) //x distance is greater than y - for(j=0;j=dxabs) //Every dyabs steps, step once in y direction - y-=dxabs - py+=sdy - px+=sdx //Step on in x direction - if(j > 0 || include_from_atom) - line+=locate(px,py,M.z)//Add the turf to the list - else - for(j=0;j=dyabs) - x-=dyabs - px+=sdx - py+=sdy - if(j > 0 || include_from_atom) - line+=locate(px,py,M.z) - return line +/** + * Get a list of turfs in a line from `start_atom` to `end_atom`. + * + * Based on a linear interpolation method from [Red Blob Games](https://www.redblobgames.com/grids/line-drawing/#optimization). + * + * Arguments: + * * start_atom - starting point of the line + * * end_atom - ending point of the line + * * include_start_atom - when truthy includes start_atom in the list, default TRUE + * + * Returns: + * list - turfs from start_atom (in/exclusive) to end_atom (inclusive) + */ +/proc/get_line(atom/start_atom, atom/end_atom, include_start_atom = TRUE) + var/turf/start_turf = get_turf(start_atom) + var/turf/end_turf = get_turf(end_atom) + var/start_z = start_turf.z -//Bresenham's algorithm. This one deals efficiently with all 8 octants. -//Just don't ask me how it works. -/proc/getline2(atom/from_atom, atom/to_atom, include_from_atom = TRUE) - if(!from_atom || !to_atom) return 0 - var/list/turf/turfs = list() - - var/cur_x = from_atom.x - var/cur_y = from_atom.y - - var/w = to_atom.x - from_atom.x - var/h = to_atom.y - from_atom.y - var/dx1 = 0 - var/dx2 = 0 - var/dy1 = 0 - var/dy2 = 0 - if(w < 0) - dx1 = -1 - dx2 = -1 - else if(w > 0) - dx1 = 1 - dx2 = 1 - if(h < 0) dy1 = -1 - else if(h > 0) dy1 = 1 - var/longest = abs(w) - var/shortest = abs(h) - if(!(longest > shortest)) - longest = abs(h) - shortest = abs(w) - if(h < 0) dy2 = -1 - else if (h > 0) dy2 = 1 - dx2 = 0 - - var/numerator = longest >> 1 - var/i - for(i = 0; i <= longest; i++) - if(i > 0 || include_from_atom) - turfs += locate(cur_x,cur_y,from_atom.z) - numerator += shortest - if(!(numerator < longest)) - numerator -= longest - cur_x += dx1 - cur_y += dy1 - else - cur_x += dx2 - cur_y += dy2 + var/list/line = list() + if(include_start_atom) + line += start_turf + var/step_count = get_dist(start_turf, end_turf) + if(!step_count) + return line - return turfs + //as step_count and step size (1) are known can pre-calculate a lerp step, tiny number (1e-5) for rounding consistency + var/step_x = (end_turf.x - start_turf.x) / step_count + 1e-5 + var/step_y = (end_turf.y - start_turf.y) / step_count + 1e-5 + + //locate() truncates the fraction, adding 0.5 so its effectively rounding to nearest coords for free + var/x = start_turf.x + 0.5 + var/y = start_turf.y + 0.5 + for(var/step in 1 to (step_count - 1)) //increment then locate() skips start_turf (in 1), since end_turf is known can skip that step too (step_count - 1) + x += step_x + y += step_y + line += locate(x, y, start_z) + line += end_turf + + return line //Key thing that stops lag. Cornerstone of performance in ss13, Just sitting here, in unsorted.dm. @@ -1623,7 +1272,7 @@ GLOBAL_LIST_INIT(WALLITEMS, list( . = 0 var/i = DS2TICKS(initial_delay) do - . += CEILING(i*DELTA_CALC, 1) + . += ceil(i*DELTA_CALC) sleep(i*world.tick_lag*DELTA_CALC) i *= 2 while (TICK_USAGE > min(TICK_LIMIT_TO_RUN, Master.current_ticklimit)) @@ -1638,7 +1287,7 @@ GLOBAL_LIST_INIT(WALLITEMS, list( for(var/turf/T in orange(origin, outer_range)) if(!inner_range || get_dist(origin, T) >= inner_range) turfs += T - if(turfs.len) + if(length(turfs)) return pick(turfs) // Returns true if arming a given explosive might be considered grief @@ -1651,8 +1300,8 @@ GLOBAL_LIST_INIT(WALLITEMS, list( /proc/explosive_antigrief_check(obj/item/explosive/explosive, mob/user) var/turf/Turf = get_turf(explosive) if(!(Turf.loc.type in GLOB.explosive_antigrief_exempt_areas)) - var/crash_occured = (SSticker?.mode?.is_in_endgame) - if((Turf.z in SSmapping.levels_by_any_trait(list(ZTRAIT_MARINE_MAIN_SHIP, ZTRAIT_RESERVED))) && (GLOB.security_level < SEC_LEVEL_RED) && !crash_occured) + var/crash_occurred = (SSticker?.mode?.is_in_endgame) + if((Turf.z in SSmapping.levels_by_any_trait(list(ZTRAIT_MARINE_MAIN_SHIP, ZTRAIT_RESERVED))) && (GLOB.security_level < SEC_LEVEL_RED) && !crash_occurred) switch(CONFIG_GET(number/explosive_antigrief)) if(ANTIGRIEF_DISABLED) return FALSE @@ -1663,22 +1312,6 @@ GLOBAL_LIST_INIT(WALLITEMS, list( return TRUE return FALSE -// Returns only the perimeter of the block given by the min and max turfs -/proc/blockhollow(turf/min, turf/max) - var/list/perimeter_turfs = list() - - // Upper/lower perimeters - for(var/x_coord = min.x to max.x) - perimeter_turfs += locate(x_coord, min.y, min.z) - perimeter_turfs += locate(x_coord, max.y, min.z) - - // Left/right perimeters - for(var/y_coord = min.y + 1 to max.y - 1) - perimeter_turfs += locate(min.x, y_coord, min.z) - perimeter_turfs += locate(max.x, y_coord, min.z) - - return perimeter_turfs - /proc/flick_overlay(atom/target, overlay, time) target.overlays += overlay addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(remove_timed_overlay), target, overlay), time) @@ -1686,67 +1319,6 @@ GLOBAL_LIST_INIT(WALLITEMS, list( /proc/remove_timed_overlay(atom/target, overlay) target.overlays -= overlay -/* - Returns a list of random-looking, zero-sum variances. - - Imagine a straight line divided up into n segments, - then divide each segment into 2 subsegments again, so each original segment gets "its own point" that divides the subsegments - Then displace the first segment's dividing point by e.g. 5. - Then displace the second segment's dividing point by -5. - Then displace the third segment's dividing point by 5, and so on, alternating between a displacement of 5 and -5 - (If there's an odd number of segments just don't displace the last point at all) - - At the end, you'll have a zig-zaggy line. You then go through each segment end and - take away/add some random amount of displacement from its point. If you keep track of how much - net displacement has been added/removed, you can distribute it among other points - and end up with net 0 displacement (i.e. 0 total variance) - - Basically, this is what happens: https://i.imgur.com/AuY7HHd.png -*/ -/proc/get_random_zero_sum_variances(amount, max_variance) - // Displace each "point" to max variance - var/list/variances[amount] - for(var/i in 1 to variances.len) - if(i == variances.len && (variances.len % 2)) - variances[i] = 0 - else - variances[i] = (i % 2 ? 1 : -1) * max_variance - - // Jiggle each variance a random amount towards the "center line"/0 variance - var/net_displacement = 0 - for(var/i in 1 to variances.len) - var/to_redistribute = (i % 2 ? -1 : 1) * rand(0, max_variance/2) - - net_displacement += to_redistribute - variances[i] += to_redistribute - - // Lucky! Everything jiggled towards 0 in a way that left 0 net displacement - if(!net_displacement) - return variances - - // Redistribute the net displacement evenly on the side of the center line that needs it - // Only half the points are gonna be affected. - var/to_redistribute = abs(Ceiling(net_displacement / (variances.len/2))) - for(var/i in 1 to variances.len) - if(!net_displacement) - break - - // Positive net displacement, only distribute to points that were given negative variance to begin with - if(net_displacement > 0 && !(i % 2)) - variances[i] -= min(abs(net_displacement), to_redistribute) - net_displacement -= to_redistribute - // Negative net displacement, only distribute to points that were given positive variance to begin with - else if(net_displacement < 0 && i % 2) - variances[i] += min(abs(net_displacement), to_redistribute) - net_displacement += to_redistribute - - return variances - -/proc/check_bitflag(flag, bit) - if(flag & bit) - return TRUE - return FALSE - // A proc purely for a callback that returns TRUE (and does nothing else) /proc/_callback_true() return TRUE @@ -1828,8 +1400,8 @@ GLOBAL_DATUM_INIT(dview_mob, /mob/dview, new) pixel_y_offset += ((AMiconheight/world.icon_size)-1)*(world.icon_size*0.5) //DY and DX - var/rough_x = round(round(pixel_x_offset,world.icon_size)/world.icon_size) - var/rough_y = round(round(pixel_y_offset,world.icon_size)/world.icon_size) + var/rough_x = floor(round(pixel_x_offset,world.icon_size)/world.icon_size) + var/rough_y = floor(round(pixel_y_offset,world.icon_size)/world.icon_size) //Find coordinates var/turf/T = get_turf(AM) //use AM's turfs, as it's coords are the same as AM's AND AM's coords are lost if it is inside another atom @@ -1929,10 +1501,21 @@ GLOBAL_DATUM_INIT(dview_mob, /mob/dview, new) #define UNTIL(X) while(!(X)) stoplag() -/proc/IsValidSrc(datum/D) - if(istype(D)) - return !QDELETED(D) - return FALSE +/// Macro for cases where an UNTIL() may go on forever (such as for an http request) +#define UNTIL_OR_TIMEOUT(X, __time) \ + do { \ + if(__time <= 0) {; \ + CRASH("UNTIL_OR_TIMEOUT given invalid time"); \ + } \ + var/__start_time = world.time; \ + do { \ + if(__start_time + __time <= world.time) {; \ + CRASH("UNTIL_OR_TIMEOUT hit timeout limit of [__time]"); \ + } else { \ + stoplag(); \ + } \ + } while(!(X)) \ + } while(FALSE) //Repopulates sortedAreas list /proc/repopulate_sorted_areas() @@ -1948,7 +1531,7 @@ GLOBAL_DATUM_INIT(dview_mob, /mob/dview, new) return GetAllContents() var/list/processing = list(src) var/list/assembled = list() - while(processing.len) + while(length(processing)) var/atom/A = processing[1] processing.Cut(1,2) if(!ignore_typecache[A.type]) @@ -1976,8 +1559,6 @@ GLOBAL_DATUM_INIT(dview_mob, /mob/dview, new) return list(region_x1 & region_x2, region_y1 & region_y2) -#define TURF_FROM_COORDS_LIST(List) (locate(List[1], List[2], List[3])) - //Vars that will not be copied when using /DuplicateObject GLOBAL_LIST_INIT(duplicate_forbidden_vars,list( "tag", "datum_components", "area", "type", "loc", "locs", "vars", "parent", "parent_type", "verbs", "ckey", "key", @@ -2014,12 +1595,6 @@ GLOBAL_LIST_INIT(duplicate_forbidden_vars,list( M.regenerate_icons() return O -/proc/convert_to_json_text(json_file_string) - var/json_file = file(json_file_string) - json_file = file2text(json_file) - json_file = json_decode(json_file) - return json_file - ///Returns a list of all items of interest with their name /proc/getpois(mobs_only = FALSE, skip_mindless = FALSE, specify_dead_role = TRUE) var/list/mobs = sortmobs() @@ -2095,3 +1670,15 @@ GLOBAL_LIST_INIT(duplicate_forbidden_vars,list( if(NORTHWEST) return list(NORTHWEST, NORTH, WEST) + +/// Returns TRUE if the target is somewhere that the game should not interact with if possible +/// In this case, admin Zs and tutorial areas +/proc/should_block_game_interaction(atom/target) + if(is_admin_level(target.z)) + return TRUE + + var/area/target_area = get_area(target) + if(target_area?.block_game_interaction) + return TRUE + + return FALSE diff --git a/code/__pragmas.dm b/code/__pragmas.dm index 39c14e1bbc95..309883fbda20 100644 --- a/code/__pragmas.dm +++ b/code/__pragmas.dm @@ -12,7 +12,6 @@ #pragma SoftReservedKeyword error #pragma DuplicateVariable error #pragma DuplicateProcDefinition error -#pragma TooManyArguments error #pragma PointlessParentCall error #pragma PointlessBuiltinCall error #pragma SuspiciousMatrixCall error @@ -22,6 +21,7 @@ #pragma InvalidOverride error #pragma DanglingVarType error #pragma MissingInterpolatedExpression error +#pragma InvalidIndexOperation error //3000-3999 #pragma EmptyBlock error diff --git a/code/_byond_version_compat.dm b/code/_byond_version_compat.dm index 26968f0f837c..c41fdc830e6e 100644 --- a/code/_byond_version_compat.dm +++ b/code/_byond_version_compat.dm @@ -1,56 +1,17 @@ // This file contains defines allowing targeting byond versions newer than the supported //Update this whenever you need to take advantage of more recent byond features -#define MIN_COMPILER_VERSION 514 -#define MIN_COMPILER_BUILD 1588 +#define MIN_COMPILER_VERSION 515 +#define MIN_COMPILER_BUILD 1627 #if (DM_VERSION < MIN_COMPILER_VERSION || DM_BUILD < MIN_COMPILER_BUILD) && !defined(SPACEMAN_DMM) && !defined(OPENDREAM) //Don't forget to update this part -#error Your version of BYOND is too out-of-date to compile this project. Go to https://secure.byond.com/download and update. -#error You need version 514.1588 or higher -#endif - -/* -#if (DM_VERSION == 514 && DM_BUILD > 1575 && DM_BUILD <= 1577) -#error Your version of BYOND currently has a crashing issue that will prevent you from running Dream Daemon test servers. -#error We require developers to test their content, so an inability to test means we cannot allow the compile. -#error Please consider downgrading to 514.1575 or lower. -#endif -*/ - -/* -// Keep savefile compatibilty at minimum supported level -#if DM_VERSION >= 515 -/savefile/byond_version = MIN_COMPILER_VERSION -#endif -*/ - -// 515 split call for external libraries into call_ext -#if DM_VERSION < 515 -#define LIBCALL call -#else -#define LIBCALL call_ext +#error Your version of BYOND is too out-of-date to compile this project. Go to https://www.byond.com/download and update. +#error You need version 515.1627 or higher #endif // So we want to have compile time guarantees these methods exist on local type, unfortunately 515 killed the .proc/procname and .verb/verbname syntax so we have to use nameof() // For the record: GLOBAL_VERB_REF would be useless as verbs can't be global. -#if DM_VERSION < 515 - -/// Call by name proc references, checks if the proc exists on either this type or as a global proc. -#define PROC_REF(X) (.proc/##X) -/// Call by name verb references, checks if the verb exists on either this type or as a global verb. -#define VERB_REF(X) (.verb/##X) - -/// Call by name proc reference, checks if the proc exists on either the given type or as a global proc -#define TYPE_PROC_REF(TYPE, X) (##TYPE.proc/##X) -/// Call by name verb reference, checks if the verb exists on either the given type or as a global verb -#define TYPE_VERB_REF(TYPE, X) (##TYPE.verb/##X) - -/// Call by name proc reference, checks if the proc is an existing global proc -#define GLOBAL_PROC_REF(X) (/proc/##X) - -#else - /// Call by name proc references, checks if the proc exists on either this type or as a global proc. #define PROC_REF(X) (nameof(.proc/##X)) /// Call by name verb references, checks if the verb exists on either this type or as a global verb. @@ -64,16 +25,4 @@ /// Call by name proc reference, checks if the proc is an existing global proc #define GLOBAL_PROC_REF(X) (/proc/##X) -#endif - -#if (DM_VERSION == 515) -/// fcopy will crash on 515 linux if given a non-existant file, instead of returning 0 like on 514 linux or 515 windows -/// var case matches documentation for fcopy. -/world/proc/__fcopy(Src, Dst) - if (istext(Src) && !fexists(Src)) - return 0 - return fcopy(Src, Dst) -#define fcopy(Src, Dst) world.__fcopy(Src, Dst) - -#endif diff --git a/code/_experiments.dm b/code/_experiments.dm index 6e5addb5f992..39c4c45e7eda 100644 --- a/code/_experiments.dm +++ b/code/_experiments.dm @@ -3,29 +3,7 @@ // Any flag you see here can be flipped with the `-D` CLI argument. // For example, if you want to enable EXPERIMENT_MY_COOL_FEATURE, compile with -DEXPERIMENT_MY_COOL_FEATURE -// EXPERIMENT_515_QDEL_HARD_REFERENCE -// - Hold a hard reference for qdeleted items, and check ref_count, rather than using refs. Requires 515+. - -// EXPERIMENT_515_DONT_CACHE_REF -// - Avoids `text_ref` caching, aided by improvements to ref() speed in 515. - -#if DM_VERSION < 515 - -// You can't X-macro custom names :( -#ifdef EXPERIMENT_515_QDEL_HARD_REFERENCE -#warn EXPERIMENT_515_QDEL_HARD_REFERENCE is only available on 515+ -#undef EXPERIMENT_515_QDEL_HARD_REFERENCE -#endif - -#ifdef EXPERIMENT_515_DONT_CACHE_REF -#warn EXPERIMENT_515_DONT_CACHE_REF is only available on 515+ -#undef EXPERIMENT_515_DONT_CACHE_REF -#endif - -#elif defined(UNIT_TESTS) - -//#define EXPERIMENT_515_QDEL_HARD_REFERENCE -#define EXPERIMENT_515_DONT_CACHE_REF +#if defined(UNIT_TESTS) #endif diff --git a/code/_globalvars/bitfields.dm b/code/_globalvars/bitfields.dm index d302191c67eb..facc2b951ad3 100644 --- a/code/_globalvars/bitfields.dm +++ b/code/_globalvars/bitfields.dm @@ -87,6 +87,7 @@ DEFINE_BITFIELD(flags_ammo_behaviour, list( "AMMO_IGNORE_RESIST" = AMMO_IGNORE_RESIST, "AMMO_BALLISTIC" = AMMO_BALLISTIC, "AMMO_IGNORE_COVER" = AMMO_IGNORE_COVER, + "AMMO_ANTIVEHICLE" = AMMO_ANTIVEHICLE, "AMMO_STOPPED_BY_COVER" = AMMO_STOPPED_BY_COVER, "AMMO_SPECIAL_EMBED" = AMMO_SPECIAL_EMBED, "AMMO_STRIKES_SURFACE" = AMMO_STRIKES_SURFACE, @@ -97,7 +98,6 @@ DEFINE_BITFIELD(flags_ammo_behaviour, list( "AMMO_FLAME" = AMMO_FLAME, )) - DEFINE_BITFIELD(projectile_flags, list( "PROJECTILE_SHRAPNEL" = PROJECTILE_SHRAPNEL, "PROJECTILE_BULLSEYE" = PROJECTILE_BULLSEYE, @@ -120,6 +120,7 @@ DEFINE_BITFIELD(flags_gun_features, list( "GUN_ANTIQUE" = GUN_ANTIQUE, "GUN_RECOIL_BUILDUP" = GUN_RECOIL_BUILDUP, "GUN_SUPPORT_PLATFORM" = GUN_SUPPORT_PLATFORM, + "GUN_NO_DESCRIPTION" = GUN_NO_DESCRIPTION, )) DEFINE_BITFIELD(flags_magazine, list( @@ -150,6 +151,14 @@ DEFINE_BITFIELD(flags_atom, list( "INITIALIZED" = INITIALIZED, "ATOM_DECORATED" = ATOM_DECORATED, "USES_HEARING" = USES_HEARING, + "HTML_USE_INITAL_ICON" = HTML_USE_INITAL_ICON, + "QUICK_DRAWABLE" = QUICK_DRAWABLE, +)) + +DEFINE_BITFIELD(turf_flags, list( + "TURF_ORGANIC" = TURF_ORGANIC, + "UNUSED_RESERVATION_TURF" = UNUSED_RESERVATION_TURF, + "RESERVATION_TURF" = RESERVATION_TURF, )) DEFINE_BITFIELD(flags_item, list( @@ -181,7 +190,7 @@ DEFINE_BITFIELD(flags_inv_hide, list( "HIDETOPHAIR" = HIDETOPHAIR, "HIDEALLHAIR" = HIDEALLHAIR, "HIDETAIL" = HIDETAIL, - "HIDEFACE" = HIDEFACE + "HIDEFACE" = HIDEFACE, )) DEFINE_BITFIELD(flags_inventory, list( @@ -327,9 +336,6 @@ DEFINE_BITFIELD(flags_area, list( DEFINE_BITFIELD(disabilities, list( "NEARSIGHTED" = NEARSIGHTED, - "EPILEPSY" = EPILEPSY, - "COUGHING" = COUGHING, - "TOURETTES" = TOURETTES, "NERVOUS" = NERVOUS, "OPIATE_RECEPTOR_DEFICIENCY" = OPIATE_RECEPTOR_DEFICIENCY, )) @@ -423,8 +429,10 @@ DEFINE_BITFIELD(toggleable_flags, list( "MODE_NO_COMBAT_CAS" = MODE_NO_COMBAT_CAS, "MODE_LZ_PROTECTION" = MODE_LZ_PROTECTION, "MODE_SHIPSIDE_SD" = MODE_SHIPSIDE_SD, + "MODE_HARDCORE_PERMA" = MODE_HARDCORE_PERMA, "MODE_DISPOSABLE_MOBS" = MODE_DISPOSABLE_MOBS, "MODE_BYPASS_JOE" = MODE_BYPASS_JOE, + "MODE_DISABLE_JOE_RESPAWN" = MODE_DISABLE_JOE_RESPAWN, )) DEFINE_BITFIELD(state, list( @@ -456,7 +464,9 @@ DEFINE_BITFIELD(fire_immunity, list( "FIRE_IMMUNITY_NO_DAMAGE" = FIRE_IMMUNITY_NO_DAMAGE, "FIRE_IMMUNITY_NO_IGNITE" = FIRE_IMMUNITY_NO_IGNITE, "FIRE_IMMUNITY_XENO_FRENZY" = FIRE_IMMUNITY_XENO_FRENZY, + "FIRE_VULNERABILITY" = FIRE_VULNERABILITY, )) + DEFINE_BITFIELD(vend_flags, list( "VEND_TO_HAND" = VEND_TO_HAND, "VEND_UNIFORM_RANKS" = VEND_UNIFORM_RANKS, @@ -478,3 +488,122 @@ DEFINE_BITFIELD(vehicle_flags, list( "VEHICLE_CLASS_HEAVY" = VEHICLE_CLASS_HEAVY, "VEHICLE_BYPASS_BLOCKERS" = VEHICLE_BYPASS_BLOCKERS, )) + +DEFINE_BITFIELD(flags_pass, list( + "PASS_THROUGH" = PASS_THROUGH, + "PASS_AROUND" = PASS_AROUND, + "PASS_OVER_THROW_ITEM" = PASS_OVER_THROW_ITEM, + "PASS_OVER_THROW_MOB" = PASS_OVER_THROW_MOB, + "PASS_OVER_FIRE" = PASS_OVER_FIRE, + "PASS_OVER_ACID_SPRAY" = PASS_OVER_ACID_SPRAY, + "PASS_UNDER" = PASS_UNDER, + "PASS_GLASS" = PASS_GLASS, + "PASS_MOB_IS_XENO" = PASS_MOB_IS_XENO, + "PASS_MOB_IS_HUMAN" = PASS_MOB_IS_HUMAN, + "PASS_MOB_IS_OTHER" = PASS_MOB_IS_OTHER, + "PASS_MOB_THRU_XENO" = PASS_MOB_THRU_XENO, + "PASS_MOB_THRU_HUMAN" = PASS_MOB_THRU_HUMAN, + "PASS_MOB_THRU_OTHER" = PASS_MOB_THRU_OTHER, + "PASS_TYPE_CRAWLER" = PASS_TYPE_CRAWLER, + "PASS_HIGH_OVER_ONLY" = PASS_HIGH_OVER_ONLY, + "PASS_BUILDING_ONLY" = PASS_BUILDING_ONLY, + "PASS_CRUSHER_CHARGE" = PASS_CRUSHER_CHARGE, +)) + +DEFINE_BITFIELD(flags_can_pass_all, list( + "PASS_THROUGH" = PASS_THROUGH, + "PASS_AROUND" = PASS_AROUND, + "PASS_OVER_THROW_ITEM" = PASS_OVER_THROW_ITEM, + "PASS_OVER_THROW_MOB" = PASS_OVER_THROW_MOB, + "PASS_OVER_FIRE" = PASS_OVER_FIRE, + "PASS_OVER_ACID_SPRAY" = PASS_OVER_ACID_SPRAY, + "PASS_UNDER" = PASS_UNDER, + "PASS_GLASS" = PASS_GLASS, + "PASS_MOB_IS_XENO" = PASS_MOB_IS_XENO, + "PASS_MOB_IS_HUMAN" = PASS_MOB_IS_HUMAN, + "PASS_MOB_IS_OTHER" = PASS_MOB_IS_OTHER, + "PASS_MOB_THRU_XENO" = PASS_MOB_THRU_XENO, + "PASS_MOB_THRU_HUMAN" = PASS_MOB_THRU_HUMAN, + "PASS_MOB_THRU_OTHER" = PASS_MOB_THRU_OTHER, + "PASS_TYPE_CRAWLER" = PASS_TYPE_CRAWLER, + "PASS_HIGH_OVER_ONLY" = PASS_HIGH_OVER_ONLY, + "PASS_BUILDING_ONLY" = PASS_BUILDING_ONLY, + "PASS_CRUSHER_CHARGE" = PASS_CRUSHER_CHARGE, +)) + +DEFINE_BITFIELD(flags_can_pass_front, list( + "PASS_THROUGH" = PASS_THROUGH, + "PASS_AROUND" = PASS_AROUND, + "PASS_OVER_THROW_ITEM" = PASS_OVER_THROW_ITEM, + "PASS_OVER_THROW_MOB" = PASS_OVER_THROW_MOB, + "PASS_OVER_FIRE" = PASS_OVER_FIRE, + "PASS_OVER_ACID_SPRAY" = PASS_OVER_ACID_SPRAY, + "PASS_UNDER" = PASS_UNDER, + "PASS_GLASS" = PASS_GLASS, + "PASS_MOB_IS_XENO" = PASS_MOB_IS_XENO, + "PASS_MOB_IS_HUMAN" = PASS_MOB_IS_HUMAN, + "PASS_MOB_IS_OTHER" = PASS_MOB_IS_OTHER, + "PASS_MOB_THRU_XENO" = PASS_MOB_THRU_XENO, + "PASS_MOB_THRU_HUMAN" = PASS_MOB_THRU_HUMAN, + "PASS_MOB_THRU_OTHER" = PASS_MOB_THRU_OTHER, + "PASS_TYPE_CRAWLER" = PASS_TYPE_CRAWLER, + "PASS_HIGH_OVER_ONLY" = PASS_HIGH_OVER_ONLY, + "PASS_BUILDING_ONLY" = PASS_BUILDING_ONLY, + "PASS_CRUSHER_CHARGE" = PASS_CRUSHER_CHARGE, +)) + +DEFINE_BITFIELD(flags_can_pass_behind, list( + "PASS_THROUGH" = PASS_THROUGH, + "PASS_AROUND" = PASS_AROUND, + "PASS_OVER_THROW_ITEM" = PASS_OVER_THROW_ITEM, + "PASS_OVER_THROW_MOB" = PASS_OVER_THROW_MOB, + "PASS_OVER_FIRE" = PASS_OVER_FIRE, + "PASS_OVER_ACID_SPRAY" = PASS_OVER_ACID_SPRAY, + "PASS_UNDER" = PASS_UNDER, + "PASS_GLASS" = PASS_GLASS, + "PASS_MOB_IS_XENO" = PASS_MOB_IS_XENO, + "PASS_MOB_IS_HUMAN" = PASS_MOB_IS_HUMAN, + "PASS_MOB_IS_OTHER" = PASS_MOB_IS_OTHER, + "PASS_MOB_THRU_XENO" = PASS_MOB_THRU_XENO, + "PASS_MOB_THRU_HUMAN" = PASS_MOB_THRU_HUMAN, + "PASS_MOB_THRU_OTHER" = PASS_MOB_THRU_OTHER, + "PASS_TYPE_CRAWLER" = PASS_TYPE_CRAWLER, + "PASS_HIGH_OVER_ONLY" = PASS_HIGH_OVER_ONLY, + "PASS_BUILDING_ONLY" = PASS_BUILDING_ONLY, + "PASS_CRUSHER_CHARGE" = PASS_CRUSHER_CHARGE, +)) + +DEFINE_BITFIELD(sight, list( + "BLIND" = BLIND, + "SEE_BLACKNESS" = SEE_BLACKNESS, + "SEE_INFRA" = SEE_INFRA, + "SEE_MOBS" = SEE_MOBS, + "SEE_OBJS" = SEE_OBJS, + "SEE_PIXELS" = SEE_PIXELS, + "SEE_SELF" = SEE_SELF, + "SEE_THRU" = SEE_THRU, + "SEE_TURFS" = SEE_TURFS, +)) + +DEFINE_BITFIELD(vision_flags, list( + "BLIND" = BLIND, + "SEE_BLACKNESS" = SEE_BLACKNESS, + "SEE_INFRA" = SEE_INFRA, + "SEE_MOBS" = SEE_MOBS, + "SEE_OBJS" = SEE_OBJS, + "SEE_PIXELS" = SEE_PIXELS, + "SEE_SELF" = SEE_SELF, + "SEE_THRU" = SEE_THRU, + "SEE_TURFS" = SEE_TURFS, +)) + +DEFINE_BITFIELD(vis_flags, list( + "VIS_HIDE" = VIS_HIDE, + "VIS_INHERIT_DIR" = VIS_INHERIT_DIR, + "VIS_INHERIT_ICON" = VIS_INHERIT_ICON, + "VIS_INHERIT_ICON_STATE" = VIS_INHERIT_ICON_STATE, + "VIS_INHERIT_ID" = VIS_INHERIT_ID, + "VIS_INHERIT_LAYER" = VIS_INHERIT_LAYER, + "VIS_INHERIT_PLANE" = VIS_INHERIT_PLANE, + "VIS_UNDERLAY" = VIS_UNDERLAY, +)) diff --git a/code/_globalvars/global_lists.dm b/code/_globalvars/global_lists.dm index 6e1b229e562f..c6957eefd22c 100644 --- a/code/_globalvars/global_lists.dm +++ b/code/_globalvars/global_lists.dm @@ -3,9 +3,15 @@ GLOBAL_LIST_EMPTY(WYFaxes) //Departmental faxes GLOBAL_LIST_EMPTY(USCMFaxes) GLOBAL_LIST_EMPTY(ProvostFaxes) GLOBAL_LIST_EMPTY(CMBFaxes) +GLOBAL_LIST_EMPTY(UPPFaxes) +GLOBAL_LIST_EMPTY(TWEFaxes) +GLOBAL_LIST_EMPTY(CLFFaxes) GLOBAL_LIST_EMPTY(GeneralFaxes) //Inter-machine faxes GLOBAL_LIST_EMPTY(fax_contents) //List of fax contents to maintain it even if source paper is deleted +// for all of our various bugs and runtimes +GLOBAL_LIST_EMPTY(bug_reports) + //datum containing a reference to the flattend map png url, the actual png is stored in the user's cache. GLOBAL_LIST_EMPTY(uscm_flat_tacmap_data) GLOBAL_LIST_EMPTY(xeno_flat_tacmap_data) @@ -34,6 +40,9 @@ GLOBAL_LIST_EMPTY(minimap_icons) GLOBAL_LIST_EMPTY(mainship_pipes) +/// List of all the maps that have been cached for /proc/load_map +GLOBAL_LIST_EMPTY(cached_maps) + /proc/initiate_minimap_icons() var/list/icons = list() for(var/iconstate in icon_states('icons/UI_icons/map_blips.dmi')) @@ -110,6 +119,34 @@ GLOBAL_LIST(chemical_reactions_filtered_list) //List of all /datum/chemical_reac GLOBAL_LIST(chemical_reactions_list) //List of all /datum/chemical_reaction datums indexed by reaction id. Used to search for the result instead of the components. GLOBAL_LIST(chemical_reagents_list) //List of all /datum/reagent datums indexed by reagent id. Used by chemistry stuff GLOBAL_LIST(chemical_properties_list) //List of all /datum/chem_property datums indexed by property name +//list of all properties that conflict with each other. +GLOBAL_LIST_INIT_TYPED(conflicting_properties, /list, list( PROPERTY_NUTRITIOUS = PROPERTY_HEMORRAGING, PROPERTY_NUTRITIOUS = PROPERTY_HEMOLYTIC, PROPERTY_TOXIC = PROPERTY_ANTITOXIC,\ + PROPERTY_CORROSIVE = PROPERTY_ANTICORROSIVE, PROPERTY_BIOCIDIC = PROPERTY_NEOGENETIC, PROPERTY_HYPERTHERMIC = PROPERTY_HYPOTHERMIC,\ + PROPERTY_NUTRITIOUS = PROPERTY_KETOGENIC, PROPERTY_PAINING = PROPERTY_PAINKILLING, PROPERTY_HALLUCINOGENIC = PROPERTY_ANTIHALLUCINOGENIC,\ + PROPERTY_HEPATOTOXIC = PROPERTY_HEPATOPEUTIC, PROPERTY_NEPHROTOXIC = PROPERTY_NEPHROPEUTIC, PROPERTY_PNEUMOTOXIC = PROPERTY_PNEUMOPEUTIC,\ + PROPERTY_OCULOTOXIC = PROPERTY_OCULOPEUTIC, PROPERTY_CARDIOTOXIC = PROPERTY_CARDIOPEUTIC, PROPERTY_NEUROTOXIC = PROPERTY_NEUROPEUTIC,\ + PROPERTY_FLUXING = PROPERTY_REPAIRING, PROPERTY_RELAXING = PROPERTY_MUSCLESTIMULATING, PROPERTY_HEMOGENIC = PROPERTY_HEMOLYTIC,\ + PROPERTY_HEMOGENIC = PROPERTY_HEMORRAGING, PROPERTY_NUTRITIOUS = PROPERTY_EMETIC,\ + PROPERTY_HYPERGENETIC = PROPERTY_NEOGENETIC, PROPERTY_HYPERGENETIC = PROPERTY_HEPATOPEUTIC, PROPERTY_HYPERGENETIC = PROPERTY_NEPHROPEUTIC,\ + PROPERTY_HYPERGENETIC = PROPERTY_PNEUMOPEUTIC, PROPERTY_HYPERGENETIC = PROPERTY_OCULOPEUTIC, PROPERTY_HYPERGENETIC = PROPERTY_CARDIOPEUTIC,\ + PROPERTY_HYPERGENETIC = PROPERTY_NEUROPEUTIC, PROPERTY_ADDICTIVE = PROPERTY_ANTIADDICTIVE, PROPERTY_NEUROSHIELDING = PROPERTY_NEUROTOXIC,\ + PROPERTY_HYPOMETABOLIC = PROPERTY_HYPERMETABOLIC, PROPERTY_HYPERTHROTTLING = PROPERTY_NEUROINHIBITING, + PROPERTY_FOCUSING = PROPERTY_NERVESTIMULATING, PROPERTY_THERMOSTABILIZING = PROPERTY_HYPERTHERMIC, PROPERTY_THERMOSTABILIZING = PROPERTY_HYPOTHERMIC, + PROPERTY_AIDING = PROPERTY_NEUROINHIBITING, PROPERTY_OXYGENATING = PROPERTY_HYPOXEMIC, PROPERTY_ANTICARCINOGENIC = PROPERTY_CARCINOGENIC, \ + PROPERTY_CIPHERING = PROPERTY_CIPHERING_PREDATOR, PROPERTY_TRANSFORMATIVE = PROPERTY_ANTITOXIC, PROPERTY_MUSCLESTIMULATING = PROPERTY_NERVESTIMULATING)) +//list of all properties that combine into something else, now featured in global list +GLOBAL_LIST_INIT_TYPED(combining_properties, /list, list( PROPERTY_DEFIBRILLATING = list(PROPERTY_MUSCLESTIMULATING, PROPERTY_CARDIOPEUTIC),\ + PROPERTY_THANATOMETABOL = list(PROPERTY_HYPOXEMIC, PROPERTY_CRYOMETABOLIZING, PROPERTY_NEUROCRYOGENIC),\ + PROPERTY_HYPERDENSIFICATING = list(PROPERTY_MUSCLESTIMULATING, PROPERTY_BONEMENDING, PROPERTY_CARCINOGENIC),\ + PROPERTY_HYPERTHROTTLING = list(PROPERTY_PSYCHOSTIMULATING, PROPERTY_HALLUCINOGENIC),\ + PROPERTY_NEUROSHIELDING = list(PROPERTY_ALCOHOLIC, PROPERTY_BALDING),\ + PROPERTY_ANTIADDICTIVE = list(PROPERTY_PSYCHOSTIMULATING, PROPERTY_ANTIHALLUCINOGENIC),\ + PROPERTY_ADDICTIVE = list(PROPERTY_PSYCHOSTIMULATING, PROPERTY_NEUROTOXIC),\ + PROPERTY_CIPHERING_PREDATOR = list(PROPERTY_CIPHERING, PROPERTY_CROSSMETABOLIZING),\ + PROPERTY_FIRE_PENETRATING = list(PROPERTY_OXYGENATING, PROPERTY_VISCOUS),\ + PROPERTY_BONEMENDING = list(PROPERTY_HYPERDENSIFICATING, PROPERTY_NUTRITIOUS),\ + PROPERTY_BONEMENDING = list(PROPERTY_HYPERDENSIFICATING, PROPERTY_NUTRITIOUS),\ + PROPERTY_ENCEPHALOPHRASIVE = list(PROPERTY_NERVESTIMULATING, PROPERTY_PSYCHOSTIMULATING))) //List of all id's from classed /datum/reagent datums indexed by class or tier. Used by chemistry generator and chem spawners. GLOBAL_LIST_INIT_TYPED(chemical_gen_classes_list, /list, list("C" = list(),"C1" = list(),"C2" = list(),"C3" = list(),"C4" = list(),"C5" = list(),"C6" = list(),"T1" = list(),"T2" = list(),"T3" = list(),"T4" = list(),"tau", list())) //properties generated in chemicals, helps to make sure the same property doesn't show up 10 times @@ -163,9 +200,6 @@ GLOBAL_LIST_INIT(language_keys, setup_language_keys()) //table of say codes for GLOBAL_REFERENCE_LIST_INDEXED(origins, /datum/origin, name) GLOBAL_LIST_INIT(player_origins, USCM_ORIGINS) -//Xeno mutators -GLOBAL_REFERENCE_LIST_INDEXED_SORTED(xeno_mutator_list, /datum/xeno_mutator, name) - //Xeno hives GLOBAL_LIST_INIT_TYPED(hive_datum, /datum/hive_status, list( XENO_HIVE_NORMAL = new /datum/hive_status(), @@ -180,6 +214,7 @@ GLOBAL_LIST_INIT_TYPED(hive_datum, /datum/hive_status, list( XENO_HIVE_FORSAKEN = new /datum/hive_status/forsaken(), XENO_HIVE_YAUTJA = new /datum/hive_status/yautja(), XENO_HIVE_RENEGADE = new /datum/hive_status/corrupted/renegade(), + XENO_HIVE_TUTORIAL = new /datum/hive_status/tutorial() )) GLOBAL_LIST_INIT(xeno_evolve_times, setup_xeno_evolve_times()) @@ -194,10 +229,11 @@ GLOBAL_LIST_INIT(custom_event_info_list, setup_custom_event_info()) GLOBAL_LIST_INIT(poster_designs, subtypesof(/datum/poster)) //Preferences stuff - // Ethnicities -GLOBAL_REFERENCE_LIST_INDEXED(ethnicities_list, /datum/ethnicity, name) // Stores /datum/ethnicity indexed by name - // Body Types -GLOBAL_REFERENCE_LIST_INDEXED(body_types_list, /datum/body_type, name) // Stores /datum/body_type indexed by name + // Skin colors +GLOBAL_REFERENCE_LIST_INDEXED(skin_color_list, /datum/skin_color, name) // Stores /datum/skin_color indexed by name + // Body +GLOBAL_REFERENCE_LIST_INDEXED(body_type_list, /datum/body_type, name) // Stores /datum/body_type indexed by name +GLOBAL_REFERENCE_LIST_INDEXED(body_size_list, /datum/body_size, name) // Stores /datum/body_size indexed by name //Hairstyles GLOBAL_REFERENCE_LIST_INDEXED(hair_styles_list, /datum/sprite_accessory/hair, name) //stores /datum/sprite_accessory/hair indexed by name GLOBAL_REFERENCE_LIST_INDEXED(facial_hair_styles_list, /datum/sprite_accessory/facial_hair, name) //stores /datum/sprite_accessory/facial_hair indexed by name @@ -272,6 +308,15 @@ GLOBAL_LIST_INIT(typecache_living, typecacheof(/mob/living)) GLOBAL_LIST_INIT(emote_list, init_emote_list()) +/// list of categories for working joes +GLOBAL_LIST_EMPTY(wj_categories) +/// dict ("category" : (emotes)) of every wj emote typepath +GLOBAL_LIST_INIT(wj_emotes, setup_working_joe_emotes()) +/// list of categories for hazard joes +GLOBAL_LIST_EMPTY(hj_categories) +/// dict ("category" : (emotes)) of every hj emote typepath +GLOBAL_LIST_INIT(hj_emotes, setup_hazard_joe_emotes()) + /proc/cached_params_decode(params_data, decode_proc) . = GLOB.paramslist_cache[params_data] if(!.) @@ -286,7 +331,7 @@ GLOBAL_LIST_INIT(emote_list, init_emote_list()) /proc/number_list_decode(number_list_data) var/list/L = params2list(number_list_data) - for(var/i in 1 to L.len) + for(var/i in 1 to length(L)) L[i] = text2num(L[i]) return L @@ -297,6 +342,9 @@ GLOBAL_LIST_INIT(emote_list, init_emote_list()) rkey++ var/datum/species/S = new T S.race_key = rkey //Used in mob icon caching. + var/datum/species/existing = all_species[S.name] + if(existing) + stack_trace("[S.name] from [T] overlaps with [existing.type]! It must have a unique name for lookup!") all_species[S.name] = S return all_species @@ -339,6 +387,9 @@ GLOBAL_LIST_INIT(emote_list, init_emote_list()) if (!initial(EP.flags)) continue EP = new T + var/datum/equipment_preset/existing = gear_path_presets_list[EP.name] + if(existing) + stack_trace("[EP.name] from [T] overlaps with [existing.type]! It must have a unique name for lookup!") gear_path_presets_list[EP.name] = EP return sortAssoc(gear_path_presets_list) @@ -362,7 +413,7 @@ GLOBAL_LIST_INIT(emote_list, init_emote_list()) while(gap > 1 || swapped) swapped = 0 if(gap > 1) - gap = round(gap / 1.247330950103979) + gap = floor(gap / 1.247330950103979) if(gap < 1) gap = 1 for(var/i = 1; gap + i <= length(surgeries); i++) @@ -450,7 +501,11 @@ GLOBAL_LIST_INIT(emote_list, init_emote_list()) /proc/setup_yautja_capes() var/list/cape_list = list() for(var/obj/item/clothing/yautja_cape/cape_type as anything in typesof(/obj/item/clothing/yautja_cape)) - cape_list[initial(cape_type.name)] = cape_type + var/cape_name = initial(cape_type.name) + var/obj/item/clothing/yautja_cape/existing = cape_list[cape_name] + if(existing) + stack_trace("[cape_name] from [cape_type] overlaps with [existing.type]! It must have a unique name for lookup!") + cape_list[cape_name] = cape_type return cape_list @@ -477,6 +532,7 @@ GLOBAL_LIST_EMPTY(timelocks) GLOBAL_LIST_INIT(available_specialist_sets, list( "Scout Set", "Sniper Set", + "Anti-materiel Sniper Set", "Demolitionist Set", "Heavy Grenadier Set", "Pyro Set" @@ -489,6 +545,7 @@ GLOBAL_LIST_INIT(available_specialist_kit_boxes, list( "Sniper" = 2, "Scout" = 2, "Demo" = 2, + "Anti-materiel Sniper" = 2, )) /proc/init_global_referenced_datums() @@ -513,6 +570,32 @@ GLOBAL_LIST_INIT(available_specialist_kit_boxes, list( else .[E.key_third_person] |= E +/// Setup for Working joe emotes and category list, returns data for wj_emotes +/proc/setup_working_joe_emotes() + var/list/emotes_to_add = list() + for(var/datum/emote/living/carbon/human/synthetic/working_joe/emote as anything in subtypesof(/datum/emote/living/carbon/human/synthetic/working_joe)) + if(!(initial(emote.joe_flag) & WORKING_JOE_EMOTE) || !initial(emote.key) || !initial(emote.say_message)) + continue + + if(!(initial(emote.category) in GLOB.wj_categories)) + GLOB.wj_categories += initial(emote.category) + + emotes_to_add += emote + return emotes_to_add + +/// Setup for Hazard joe emotes and category list, returns data for hj_emotes +/proc/setup_hazard_joe_emotes() + var/list/emotes_to_add = list() + for(var/datum/emote/living/carbon/human/synthetic/working_joe/emote as anything in subtypesof(/datum/emote/living/carbon/human/synthetic/working_joe)) + if(!(initial(emote.joe_flag) & HAZARD_JOE_EMOTE) || !initial(emote.key) || !initial(emote.say_message)) + continue + + if(!(initial(emote.category) in GLOB.hj_categories)) + GLOB.hj_categories += initial(emote.category) + + emotes_to_add += emote + return emotes_to_add + GLOBAL_LIST_EMPTY(topic_tokens) GLOBAL_PROTECT(topic_tokens) diff --git a/code/_globalvars/lists/client.dm b/code/_globalvars/lists/client.dm index 78f3a20da424..404e8a662e80 100644 --- a/code/_globalvars/lists/client.dm +++ b/code/_globalvars/lists/client.dm @@ -6,20 +6,42 @@ GLOBAL_LIST_EMPTY(keybindings_by_name) // This is a mapping from JS keys to Byond - ref: https://keycode.info/ GLOBAL_LIST_INIT(_kbMap, list( "UP" = "North", + "ARROWUP" = "North", "RIGHT" = "East", + "ARROWRIGHT" = "East", "DOWN" = "South", + "ARROWDOWN" = "South", "LEFT" = "West", + "ARROWLEFT" = "West", "INSERT" = "Insert", "HOME" = "Northwest", "PAGEUP" = "Northeast", - "DEL" = "Delete", + "DEL" = "Delete", // Unlikely this is correct now + "DELETE" = "Delete", "END" = "Southwest", "PAGEDOWN" = "Southeast", "SPACEBAR" = "Space", "ENTER" = "Return", "ALT" = "Alt", "SHIFT" = "Shift", - "CONTROL" = "Ctrl" + "CONTROL" = "Ctrl", + "MULTIPLY" = "Multiply", + "DIVIDE" = "Divide", + "SUBTRACT" = "Subtract", + "ADD" = "Add", + "DECIMAL" = "Decimal", + "CLEAR" = "Center", + "PAUSE" = "Pause", + "CONTEXTMENU" = "Apps", + "NUMLOCK" = "Numlock", + "SCROLLLOCK" = "Scroll", + "MEDIANEXTTRACK" = "MediaNext", + "MEDIAPLAYPAUSE" = "MediaPlayPause", + "MEDIASTOP" = "MediaStop", + "MEDIAPREVIOUSTRACK" = "MediaPrev", + "VOLUMEMUTE" = "VolumeMute", + "VOLUMEUP" = "VolumeUp", + "VOLUMEDOWN" = "VolumeDown", )) ///List of ckeys that have seen a blurb of a given key. diff --git a/code/_globalvars/lists/mapping_globals.dm b/code/_globalvars/lists/mapping_globals.dm index 47cc22dae5e1..772561dbf4a6 100644 --- a/code/_globalvars/lists/mapping_globals.dm +++ b/code/_globalvars/lists/mapping_globals.dm @@ -53,6 +53,7 @@ GLOBAL_LIST_EMPTY(teleporter_landmarks) GLOBAL_LIST_INIT(cardinals, list(NORTH, SOUTH, EAST, WEST)) GLOBAL_LIST_EMPTY(nightmare_landmarks) +GLOBAL_LIST_EMPTY(nightmare_landmark_tags_removed) GLOBAL_LIST_EMPTY(ship_areas) diff --git a/code/_globalvars/lists/object_lists.dm b/code/_globalvars/lists/object_lists.dm index 3db9bd28cbfe..5cfd0653c24a 100644 --- a/code/_globalvars/lists/object_lists.dm +++ b/code/_globalvars/lists/object_lists.dm @@ -23,10 +23,6 @@ GLOBAL_LIST_EMPTY_TYPED(disposal_retrieval_list, /obj/structure/disposaloutlet/r GLOBAL_LIST_EMPTY_TYPED(disposalpipe_up_list, /obj/structure/disposalpipe/up/almayer) GLOBAL_LIST_EMPTY_TYPED(disposalpipe_down_list, /obj/structure/disposalpipe/down/almayer) -GLOBAL_LIST_EMPTY_TYPED(hijack_bustable_windows, /obj/structure/window) -GLOBAL_LIST_EMPTY_TYPED(hijack_deletable_windows, /obj/structure/machinery/door/window/ultra) -GLOBAL_LIST_EMPTY_TYPED(hijack_bustable_ladders, /obj/structure/ladder/fragile_almayer) - GLOBAL_LIST_EMPTY_TYPED(all_multi_vehicles, /obj/vehicle/multitile) GLOBAL_LIST_EMPTY_TYPED(lifeboat_almayer_docks, /obj/docking_port/stationary/lifeboat_dock) diff --git a/code/_globalvars/misc.dm b/code/_globalvars/misc.dm index 0b7a4af0f05f..5d7955d85013 100644 --- a/code/_globalvars/misc.dm +++ b/code/_globalvars/misc.dm @@ -35,10 +35,6 @@ GLOBAL_LIST_INIT(reverse_dir, list(2, 1, 3, 8, 10, 9, 11, 4, 6, 5, 7, 12, 14, 13 GLOBAL_VAR(join_motd) GLOBAL_VAR(current_tms) -GLOBAL_LIST_INIT(BorgWireColorToFlag, RandomBorgWires()) -GLOBAL_LIST(BorgIndexToFlag) -GLOBAL_LIST(BorgIndexToWireColor) -GLOBAL_LIST(BorgWireColorToIndex) GLOBAL_LIST_INIT(AAlarmWireColorToFlag, RandomAAlarmWires()) GLOBAL_LIST(AAlarmIndexToFlag) GLOBAL_LIST(AAlarmIndexToWireColor) diff --git a/code/_macros.dm b/code/_macros.dm index e8a97cbada83..abfa83df7d36 100644 --- a/code/_macros.dm +++ b/code/_macros.dm @@ -67,9 +67,14 @@ #define LAZYREMOVEASSOC(L, K, V) if(L) { if(L[K]) { L[K] -= V; if(!length(L[K])) L -= K; } if(!length(L)) L = null; } ///Accesses an associative list, returns null if nothing is found #define LAZYACCESSASSOC(L, I, K) L ? L[I] ? L[I][K] ? L[I][K] : null : null : null +///Performs an insertion on the given lazy list with the given key and value. If the value already exists, a new one will not be made. +#define LAZYORASSOCLIST(lazy_list, key, value) \ + LAZYINITLIST(lazy_list); \ + LAZYINITLIST(lazy_list[key]); \ + lazy_list[key] |= value; // Insert an object A into a sorted list using cmp_proc (/code/_helpers/cmp.dm) for comparison. -#define ADD_SORTED(list, A, cmp_proc) if(!list.len) {list.Add(A)} else {list.Insert(FindElementIndex(A, list, cmp_proc), A)} +#define ADD_SORTED(list, A, cmp_proc) if(!length(list)) {list.Add(A)} else {list.Insert(FindElementIndex(A, list, cmp_proc), A)} //Currently used in SDQL2 stuff #define send_output(target, msg, control) target << output(msg, control) @@ -78,14 +83,14 @@ // Spawns multiple objects of the same type #define cast_new(type, num, args...) if((num) == 1) { new type(args) } else { for(var/i=0;i<(num),i++) { new type(args) } } -#define FLAGS_EQUALS(flag, flags) ((flag & (flags)) == (flags)) +#define FLAGS_EQUALS(flag, flags) (((flag) & (flags)) == (flags)) #define IS_DIAGONAL_DIR(dir) (dir & ~(NORTH|SOUTH)) // Inverse direction, taking into account UP|DOWN if necessary. -#define REVERSE_DIR(dir) ( ((dir & 85) << 1) | ((dir & 170) >> 1) ) +#define REVERSE_DIR(dir) ( (((dir) & 85) << 1) | (((dir) & 170) >> 1) ) -#define POSITIVE(val) max(val, 0) +#define POSITIVE(val) max((val), 0) #define GENERATE_DEBUG_ID "[rand(0, 9)][rand(0, 9)][rand(0, 9)][rand(0, 9)][pick(alphabet_lowercase)][pick(alphabet_lowercase)][pick(alphabet_lowercase)][pick(alphabet_lowercase)]" diff --git a/code/_onclick/adjacent.dm b/code/_onclick/adjacent.dm index 6504db0d9f0c..af0882d6a9df 100644 --- a/code/_onclick/adjacent.dm +++ b/code/_onclick/adjacent.dm @@ -25,7 +25,7 @@ * If you are diagonally adjacent, ensure you can pass through at least one of the mutually adjacent square. * Passing through in this case ignores anything with the throwpass flag, such as tables, racks, and morgue trays. */ -/turf/Adjacent(atom/neighbor, atom/target = null) +/turf/Adjacent(atom/neighbor, atom/target = null, list/ignore_list) var/turf/T0 = get_turf(neighbor) if(T0 == src) return TRUE @@ -34,7 +34,7 @@ if(T0.x == x || T0.y == y) // Check for border blockages - return T0.ClickCross(get_dir(T0,src), border_only = 1) && src.ClickCross(get_dir(src,T0), border_only = 1, target_atom = target) + return T0.ClickCross(get_dir(T0,src), border_only = 1, ignore_list = ignore_list) && src.ClickCross(get_dir(src,T0), border_only = 1, target_atom = target, ignore_list = ignore_list) // Not orthagonal var/in_dir = get_dir(neighbor,src) // eg. northwest (1+8) @@ -42,14 +42,14 @@ var/d2 = in_dir - d1 // eg north (1+8) - 8 = 1 for(var/d in list(d1,d2)) - if(!T0.ClickCross(d, border_only = 1)) + if(!T0.ClickCross(d, border_only = 1, ignore_list = ignore_list)) continue // could not leave T0 in that direction var/turf/T1 = get_step(T0,d) - if(!T1 || T1.density || !T1.ClickCross(get_dir(T1,T0)|get_dir(T1,src), border_only = 0)) + if(!T1 || T1.density || !T1.ClickCross(get_dir(T1,T0)|get_dir(T1,src), border_only = 0, ignore_list = ignore_list)) continue // couldn't enter or couldn't leave T1 - if(!src.ClickCross(get_dir(src,T1), border_only = 1, target_atom = target)) + if(!src.ClickCross(get_dir(src,T1), border_only = 1, target_atom = target, ignore_list = ignore_list)) continue // could not enter src return TRUE // we don't care about our own density @@ -131,8 +131,11 @@ Quick adjacency (to turf): This is defined as any dense ON_BORDER object, or any dense object without throwpass. The border_only flag allows you to not objects (for source and destination squares) */ -/turf/proc/ClickCross(target_dir, border_only, target_atom = null) +/turf/proc/ClickCross(target_dir, border_only, target_atom = null, list/ignore_list) for(var/obj/O in src) + if(O in ignore_list) + continue + if(!O.density || O == target_atom || O.throwpass) continue // throwpass is used for anything you can click through @@ -259,10 +262,10 @@ Quick adjacency (to turf): // Make sure pass flags are removed A.remove_temp_pass_flags(pass_flags) - if ((fd1 && !blockers["fd1"].len) || (fd2 && !blockers["fd2"].len)) // This means that for a given direction it did not have a blocker + if ((fd1 && !length(blockers["fd1"])) || (fd2 && !length(blockers["fd2"]))) // This means that for a given direction it did not have a blocker return src - if (blockers["fd1"].len || blockers["fd2"].len) + if (length(blockers["fd1"]) || length(blockers["fd2"])) var/guaranteed_hit = 0 // indicates whether there is a guaranteed hit (aka there is not chance to bypass blocker). 0 = nothing var/list/cur_dense_blockers = list() for (var/atom/blocker in blockers["fd1"]) @@ -294,7 +297,7 @@ Quick adjacency (to turf): var/turf/curT = get_turf(A) var/is_turf = isturf(A) - for(var/turf/T in getline2(A, src)) + for(var/turf/T in get_line(A, src)) if(curT == T) continue if(T.density) diff --git a/code/_onclick/click.dm b/code/_onclick/click.dm index b99d52086e36..a5d07ec060cb 100644 --- a/code/_onclick/click.dm +++ b/code/_onclick/click.dm @@ -199,7 +199,7 @@ if (mods["alt"]) var/turf/T = get_turf(src) - if(T && user.TurfAdjacent(T) && T.contents.len) + if(T && user.TurfAdjacent(T) && length(T.contents)) user.set_listed_turf(T) return TRUE @@ -376,8 +376,8 @@ var/shiftX = C.pixel_x / world.icon_size var/shiftY = C.pixel_y / world.icon_size var/list/actual_view = getviewsize(C ? C.view : GLOB.world_view_size) - tX = Clamp(origin.x + text2num(tX) + shiftX - round(actual_view[1] / 2) - 1, 1, world.maxx) - tY = Clamp(origin.y + text2num(tY) + shiftY - round(actual_view[2] / 2) - 1, 1, world.maxy) + tX = clamp(origin.x + text2num(tX) + shiftX - floor(actual_view[1] / 2) - 1, 1, world.maxx) + tY = clamp(origin.y + text2num(tY) + shiftY - floor(actual_view[2] / 2) - 1, 1, world.maxy) return locate(tX, tY, tZ) diff --git a/code/_onclick/click_hold.dm b/code/_onclick/click_hold.dm index 996f7ed2bf3b..1d6c25619e5e 100644 --- a/code/_onclick/click_hold.dm +++ b/code/_onclick/click_hold.dm @@ -88,18 +88,17 @@ if(mods["left"]) SEND_SIGNAL(src, COMSIG_CLIENT_LMB_DRAG, src_obj, over_obj, params) - var/atom/last_atom = LAZYACCESS(mouse_trace_history, mouse_trace_history.len) + var/atom/last_atom = LAZYACCESS(mouse_trace_history, length(mouse_trace_history)) if(over_obj == last_atom) return // Add the hovered atom to the trace LAZYADD(mouse_trace_history, over_obj) -/client/MouseDrop(datum/over_object, datum/src_location, over_location, src_control, over_control, params) +/client/MouseDrop(datum/src_object, datum/over_object, src_location, over_location, src_control, over_control, params) . = ..() - - if(src_location) - SEND_SIGNAL(src_location, COMSIG_ATOM_DROPPED_ON, over_object, src) - if(over_object) - SEND_SIGNAL(over_object, COMSIG_ATOM_DROP_ON, src_location, src) + SEND_SIGNAL(over_object, COMSIG_ATOM_DROPPED_ON, src_object, src) + + if(src_object) + SEND_SIGNAL(src_object, COMSIG_ATOM_DROP_ON, over_object, src) diff --git a/code/_onclick/cyborg.dm b/code/_onclick/cyborg.dm deleted file mode 100644 index c3056ed5af5f..000000000000 --- a/code/_onclick/cyborg.dm +++ /dev/null @@ -1,143 +0,0 @@ -/* - Cyborg ClickOn() - - Cyborgs have no range restriction on attack_robot(), because it is basically an AI click. - However, they do have a range restriction on item use, so they cannot do without the - adjacency code. -*/ - -/mob/living/silicon/robot/click(atom/A, mods) - if(lockcharge || is_mob_incapacitated(TRUE)) - return 1 - - if(mods["middle"]) - cycle_modules() - return 1 - - if (mods["ctrl"] && mods["shift"]) - if (!A.BorgCtrlShiftClick(src)) - return 1 - - else if (mods["ctrl"]) - if (!A.BorgCtrlClick(src)) - return 1 - - else if(mods["shift"]) - return A.BorgShiftClick(src) - - if(mods["alt"]) // alt and alt-gr (rightalt) - if (!A.BorgAltClick(src)) - return 1 - - - if(aiCamera.in_camera_mode) - aiCamera.camera_mode_off() - if(is_component_functioning("camera")) - aiCamera.captureimage(A, usr) - else - to_chat(src, SPAN_DANGER("Your camera isn't functional.")) - return 1 - - face_atom(A) - if (world.time <= next_move) return - var/obj/item/W = get_active_hand() - - // Cyborgs have no range-checking unless there is item use - if(!W) - A.add_hiddenprint(src) - A.attack_robot(src) - return 1 - - // buckled cannot prevent machine interlinking but stops arm movement - if( buckled ) - return 1 - - if(W == A) - next_move = world.time + 8 - - W.attack_self(src) - return 1 - - // cyborgs are prohibited from using storage items so we can I think safely remove (A.loc in contents) - if(A == loc || (A in loc) || (A in contents)) - // No adjacency checks - next_move = world.time + 8 - - var/resolved = A.attackby(W,src) - if(!resolved && A && W) - W.afterattack(A, src, 1, mods) - return 1 - - if(!isturf(loc)) - return 1 - - // cyborgs are prohibited from using storage items so we can I think safely remove (A.loc && isturf(A.loc.loc)) - if(isturf(A) || isturf(A.loc)) - if(A.Adjacent(src)) // see adjacent.dm - next_move = world.time + 10 - - var/resolved = A.attackby(W, src) - if(!resolved && A && W) - W.afterattack(A, src, 1, mods) - return 1 - else - next_move = world.time + 10 - W.afterattack(A, src, 0, mods) - return 1 - return 0 - - - -//Give cyborgs hotkey clicks without breaking existing uses of hotkey clicks -// for non-doors/apcs - -/atom/proc/BorgCtrlShiftClick(mob/living/silicon/robot/user) //forward to human click if not overriden - return 1 - -/obj/structure/machinery/door/airlock/BorgCtrlShiftClick() - AICtrlShiftClick() - -/atom/proc/BorgShiftClick(mob/living/silicon/robot/user) //this should only return 1 if it is not overridden. this prevents things like examining objects also clicking them with an activated module. - return 1 - -/obj/structure/machinery/door/airlock/BorgShiftClick() // Opens and closes doors! Forwards to AI code. - AIShiftClick() - - -/atom/proc/BorgCtrlClick(mob/living/silicon/robot/user) //forward to human click if not overriden - return 1 - -/obj/structure/machinery/door/airlock/BorgCtrlClick() // Bolts doors. Forwards to AI code. - AICtrlClick() - -/obj/structure/machinery/power/apc/BorgCtrlClick() // turns off/on APCs. Forwards to AI code. - AICtrlClick() - -/obj/structure/machinery/turretid/BorgCtrlClick() //turret control on/off. Forwards to AI code. - AICtrlClick() - -/atom/proc/BorgAltClick(mob/living/silicon/robot/user) - return 1 - -/obj/structure/machinery/door/airlock/BorgAltClick() // Eletrifies doors. Forwards to AI code. - AIAltClick() - -/obj/structure/machinery/turretid/BorgAltClick() //turret lethal on/off. Forwards to AI code. - AIAltClick() - -/* - As with AI, these are not used in click code, - because the code for robots is specific, not generic. - - If you would like to add advanced features to robot - clicks, you can do so here, but you will have to - change attack_robot() above to the proper function -*/ -/mob/living/silicon/robot/UnarmedAttack(atom/A) - A.attack_robot(src) -/mob/living/silicon/robot/RangedAttack(atom/A) - A.attack_robot(src) - -/atom/proc/attack_robot(mob/user as mob) - attack_remote(user) - return diff --git a/code/_onclick/drag_drop.dm b/code/_onclick/drag_drop.dm index fff5e9200de7..4dcc0d646816 100644 --- a/code/_onclick/drag_drop.dm +++ b/code/_onclick/drag_drop.dm @@ -7,6 +7,7 @@ */ /atom/MouseDrop(atom/over) if(!usr || !over) return + if(!Adjacent(usr) || !over.Adjacent(usr)) return // should stop you from dragging through windows spawn(0) diff --git a/code/_onclick/hud/fullscreen.dm b/code/_onclick/hud/fullscreen.dm index 0bd2206091ba..505b1876e3af 100644 --- a/code/_onclick/hud/fullscreen.dm +++ b/code/_onclick/hud/fullscreen.dm @@ -108,6 +108,9 @@ icon_state = "passage" layer = FULLSCREEN_CRIT_LAYER +/atom/movable/screen/fullscreen/crit/dark + color = COLOR_GRAY + /atom/movable/screen/fullscreen/blind icon_state = "blackimageoverlay" layer = FULLSCREEN_BLIND_LAYER @@ -127,6 +130,9 @@ screen_loc = "WEST,SOUTH to EAST,NORTH" icon_state = "noise" +/atom/movable/screen/fullscreen/flash/dark + icon_state = "black" + /atom/movable/screen/fullscreen/high icon = 'icons/mob/hud/screen1.dmi' screen_loc = "WEST,SOUTH to EAST,NORTH" diff --git a/code/_onclick/hud/hud.dm b/code/_onclick/hud/hud.dm index 215e228fdd9d..2d49abb52012 100644 --- a/code/_onclick/hud/hud.dm +++ b/code/_onclick/hud/hud.dm @@ -46,7 +46,7 @@ var/atom/movable/screen/toggle_burst var/atom/movable/screen/unique_action - var/atom/movable/screen/zone_sel + var/atom/movable/screen/zone_sel/zone_sel var/atom/movable/screen/pull_icon var/atom/movable/screen/throw_icon var/atom/movable/screen/oxygen_icon @@ -91,19 +91,19 @@ /datum/hud/Destroy() if(mymob.hud_used == src) mymob.hud_used = null - if(static_inventory.len) + if(length(static_inventory)) for(var/thing in static_inventory) qdel(thing) static_inventory.Cut() - if(toggleable_inventory.len) + if(length(toggleable_inventory)) for(var/thing in toggleable_inventory) qdel(thing) toggleable_inventory.Cut() - if(hotkeybuttons.len) + if(length(hotkeybuttons)) for(var/thing in hotkeybuttons) qdel(thing) hotkeybuttons.Cut() - if(infodisplay.len) + if(length(infodisplay)) for(var/thing in infodisplay) qdel(thing) infodisplay.Cut() @@ -188,24 +188,24 @@ switch(display_hud_version) if(HUD_STYLE_STANDARD) //Default HUD hud_shown = 1 //Governs behavior of other procs - if(static_inventory.len) + if(length(static_inventory)) screenmob.client.add_to_screen(static_inventory) - if(toggleable_inventory.len && inventory_shown) + if(length(toggleable_inventory) && inventory_shown) screenmob.client.add_to_screen(toggleable_inventory) - if(hotkeybuttons.len && !hotkey_ui_hidden) + if(length(hotkeybuttons) && !hotkey_ui_hidden) screenmob.client.add_to_screen(hotkeybuttons) - if(infodisplay.len) + if(length(infodisplay)) screenmob.client.add_to_screen(infodisplay) if(HUD_STYLE_REDUCED) //Reduced HUD hud_shown = 0 //Governs behavior of other procs - if(static_inventory.len) + if(length(static_inventory)) screenmob.client.remove_from_screen(static_inventory) - if(toggleable_inventory.len) + if(length(toggleable_inventory)) screenmob.client.remove_from_screen(toggleable_inventory) - if(hotkeybuttons.len) + if(length(hotkeybuttons)) screenmob.client.remove_from_screen(hotkeybuttons) - if(infodisplay.len) + if(length(infodisplay)) screenmob.client.add_to_screen(infodisplay) //These ones are a part of 'static_inventory', 'toggleable_inventory' or 'hotkeybuttons' but we want them to stay @@ -218,18 +218,19 @@ if(HUD_STYLE_NOHUD) //No HUD hud_shown = 0 //Governs behavior of other procs - if(static_inventory.len) + if(length(static_inventory)) screenmob.client.remove_from_screen(static_inventory) - if(toggleable_inventory.len) + if(length(toggleable_inventory)) screenmob.client.remove_from_screen(toggleable_inventory) - if(hotkeybuttons.len) + if(length(hotkeybuttons)) screenmob.client.remove_from_screen(hotkeybuttons) - if(infodisplay.len) + if(length(infodisplay)) screenmob.client.remove_from_screen(infodisplay) hud_version = display_hud_version persistent_inventory_update(screenmob) mymob.update_action_buttons(TRUE) + reorganize_alerts(screenmob) mymob.reload_fullscreens() // ensure observers get an accurate and up-to-date view diff --git a/code/_onclick/hud/human.dm b/code/_onclick/hud/human.dm index 37a858d76699..bbdfaa25b92f 100644 --- a/code/_onclick/hud/human.dm +++ b/code/_onclick/hud/human.dm @@ -120,7 +120,7 @@ if(!screenmob?.client) return - if(!gear.len) + if(!length(gear)) inventory_shown = FALSE return //species without inv slots don't show items. @@ -272,18 +272,14 @@ static_inventory += using /datum/hud/human/proc/draw_hand_equip(datum/custom_hud/ui_datum, ui_alpha, ui_color) - var/atom/movable/screen/using = new /atom/movable/screen() - using.name = "equip" - using.icon = ui_datum.ui_style_icon - using.icon_state = "act_equip" - using.screen_loc = ui_datum.ui_equip - using.layer = ABOVE_HUD_LAYER - using.plane = ABOVE_HUD_PLANE + var/atom/movable/screen/equip/equip_button = new() + equip_button.icon = ui_datum.ui_style_icon + equip_button.screen_loc = ui_datum.ui_equip if(ui_color) - using.color = ui_color + equip_button.color = ui_color if(ui_alpha) - using.alpha = ui_alpha - static_inventory += using + equip_button.alpha = ui_alpha + static_inventory += equip_button /datum/hud/human/proc/draw_oxygen(datum/custom_hud/ui_datum) oxygen_icon = new /atom/movable/screen/oxygen() @@ -312,38 +308,28 @@ infodisplay += locate_leader /datum/hud/human/proc/draw_gun_related(datum/custom_hud/ui_datum, ui_alpha) - use_attachment = new /atom/movable/screen() + use_attachment = new /atom/movable/screen/gun/attachment() use_attachment.icon = ui_datum.ui_style_icon - use_attachment.icon_state = "gun_attach" - use_attachment.name = "Activate weapon attachment" use_attachment.screen_loc = ui_datum.ui_gun_attachment static_inventory += use_attachment - toggle_raillight = new /atom/movable/screen() + toggle_raillight = new /atom/movable/screen/gun/rail_light() toggle_raillight.icon = ui_datum.ui_style_icon - toggle_raillight.icon_state = "gun_raillight" - toggle_raillight.name = "Toggle Rail Flashlight" toggle_raillight.screen_loc = ui_datum.ui_gun_railtoggle static_inventory += toggle_raillight - eject_mag = new /atom/movable/screen() + eject_mag = new /atom/movable/screen/gun/eject_magazine() eject_mag.icon = ui_datum.ui_style_icon - eject_mag.icon_state = "gun_loaded" - eject_mag.name = "Eject magazine" eject_mag.screen_loc = ui_datum.ui_gun_eject static_inventory += eject_mag - toggle_burst = new /atom/movable/screen() + toggle_burst = new /atom/movable/screen/gun/toggle_firemode() toggle_burst.icon = ui_datum.ui_style_icon - toggle_burst.icon_state = "gun_burst" - toggle_burst.name = "Toggle burst fire" toggle_burst.screen_loc = ui_datum.ui_gun_burst static_inventory += toggle_burst - unique_action = new /atom/movable/screen() + unique_action = new /atom/movable/screen/gun/unique_action() unique_action.icon = ui_datum.ui_style_icon - unique_action.icon_state = "gun_unique" - unique_action.name = "Use unique action" unique_action.screen_loc = ui_datum.ui_gun_unique static_inventory += unique_action diff --git a/code/_onclick/hud/map_popups.dm b/code/_onclick/hud/map_popups.dm index aed6b46a7905..26dc93bbff2b 100644 --- a/code/_onclick/hud/map_popups.dm +++ b/code/_onclick/hud/map_popups.dm @@ -118,10 +118,11 @@ * anyway. they're effectively qdel'd. */ /client/proc/clear_map(map_name) - if(!map_name || !(map_name in screen_maps)) + if(!map_name || !screen_maps[map_name]) return FALSE for(var/atom/movable/screen/screen_obj in screen_maps[map_name]) screen_maps[map_name] -= screen_obj + remove_from_screen(screen_obj) if(screen_obj.del_on_map_removal) qdel(screen_obj) screen_maps -= map_name diff --git a/code/_onclick/hud/radial.dm b/code/_onclick/hud/radial.dm index 4a23ebd882d3..244e79e583f6 100644 --- a/code/_onclick/hud/radial.dm +++ b/code/_onclick/hud/radial.dm @@ -142,10 +142,10 @@ GLOBAL_LIST_EMPTY(radial_menus) else zone = 360 - starting_angle + ending_angle - max_elements = round(zone / min_angle) - var/paged = max_elements < choices.len - if(elements.len < max_elements) - var/elements_to_add = max_elements - elements.len + max_elements = floor(zone / min_angle) + var/paged = max_elements < length(choices) + if(length(elements) < max_elements) + var/elements_to_add = max_elements - length(elements) for(var/i in 1 to elements_to_add) //Create all elements var/atom/movable/screen/radial/slice/new_element = new /atom/movable/screen/radial/slice new_element.tooltips = use_tooltips @@ -177,7 +177,7 @@ GLOBAL_LIST_EMPTY(radial_menus) /datum/radial_menu/proc/update_screen_objects(anim = FALSE) var/list/page_choices = page_data[current_page] - var/angle_per_element = round(zone / length(page_choices)) + var/angle_per_element = floor(zone / length(page_choices)) for(var/i in 1 to length(elements)) var/atom/movable/screen/radial/E = elements[i] var/angle = WRAP(starting_angle + (i - 1) * angle_per_element,0,360) @@ -197,8 +197,8 @@ GLOBAL_LIST_EMPTY(radial_menus) /datum/radial_menu/proc/SetElement(atom/movable/screen/radial/slice/E,choice_id,angle,anim,anim_order) //Position - var/py = round(cos(angle) * radius) + py_shift - var/px = round(sin(angle) * radius) + var/py = floor(cos(angle) * radius) + py_shift + var/px = floor(sin(angle) * radius) if(anim) var/timing = anim_order * 0.5 var/matrix/starting = matrix() @@ -246,7 +246,7 @@ GLOBAL_LIST_EMPTY(radial_menus) selected_choice = choices_values[choice_id] /datum/radial_menu/proc/get_next_id() - return "c_[choices.len]" + return "c_[length(choices)]" /datum/radial_menu/proc/set_choices(list/new_choices, use_tooltips, use_labels) if(length(choices)) @@ -271,8 +271,8 @@ GLOBAL_LIST_EMPTY(radial_menus) if(use_labels) MA.maptext_width = 64 MA.maptext_height = 64 - MA.maptext_x = -round(MA.maptext_width / 2) + 16 - MA.maptext_y = -round(MA.maptext_height / 2) + 16 + MA.maptext_x = -floor(MA.maptext_width / 2) + 16 + MA.maptext_y = -floor(MA.maptext_height / 2) + 16 MA.maptext = SMALL_FONTS_CENTRED(7, label) return MA diff --git a/code/_onclick/hud/rendering/plane_master.dm b/code/_onclick/hud/rendering/plane_master.dm index 91c0e24fae1f..c4f070bdd842 100644 --- a/code/_onclick/hud/rendering/plane_master.dm +++ b/code/_onclick/hud/rendering/plane_master.dm @@ -49,6 +49,12 @@ if(istype(mymob) && mymob?.client?.prefs?.toggle_prefs & TOGGLE_AMBIENT_OCCLUSION) add_filter("AO", 1, drop_shadow_filter(x = 0, y = -2, size = 4, color = "#04080FAA")) +/atom/movable/screen/plane_master/game_world_above + name = "above game world plane master" + plane = ABOVE_GAME_PLANE + appearance_flags = PLANE_MASTER //should use client color + blend_mode = BLEND_OVERLAY + /atom/movable/screen/plane_master/ghost name = "ghost plane master" plane = GHOST_PLANE @@ -149,6 +155,14 @@ remove_filter("AO") add_filter("AO", 1, drop_shadow_filter(x = 0, y = -2, size = 4, color = "#04080FAA")) +/atom/movable/screen/plane_master/nvg_plane + name = "NVG plane" + plane = NVG_PLANE + render_relay_plane = RENDER_PLANE_GAME + blend_mode_override = BLEND_MULTIPLY + //icon = 'icons/mob/hud/screen1.dmi' + //icon_state = "noise" + /atom/movable/screen/plane_master/fullscreen name = "fullscreen alert plane" plane = FULLSCREEN_PLANE @@ -175,3 +189,10 @@ plane = ESCAPE_MENU_PLANE appearance_flags = PLANE_MASTER|NO_CLIENT_COLOR render_relay_plane = RENDER_PLANE_MASTER + +/atom/movable/screen/plane_master/displacement + name = "displacement plane" + mouse_opacity = MOUSE_OPACITY_TRANSPARENT + plane = DISPLACEMENT_PLATE_RENDER_LAYER + render_target = DISPLACEMENT_PLATE_RENDER_TARGET + render_relay_plane = null diff --git a/code/_onclick/hud/rendering/plane_master_controller.dm b/code/_onclick/hud/rendering/plane_master_controller.dm index 3548f22497d0..6b2f276ce744 100644 --- a/code/_onclick/hud/rendering/plane_master_controller.dm +++ b/code/_onclick/hud/rendering/plane_master_controller.dm @@ -51,11 +51,11 @@ INITIALIZE_IMMEDIATE(/atom/movable/plane_master_controller) . += pm_iterator.get_filter(name) ///Transitions all filters owned by this plane master controller -/atom/movable/plane_master_controller/transition_filter(name, time, list/new_params, easing, loop) +/atom/movable/plane_master_controller/transition_filter(name, list/new_params, time, easing, loop) . = ..() for(var/i in controlled_planes) var/atom/movable/screen/plane_master/pm_iterator = controlled_planes[i] - pm_iterator.transition_filter(name, time, new_params, easing, loop) + pm_iterator.transition_filter(name, new_params, time, easing, loop) /atom/movable/plane_master_controller/game diff --git a/code/_onclick/hud/rendering/render_plate.dm b/code/_onclick/hud/rendering/render_plate.dm index 18236c6ee759..cb579eb4ff6a 100644 --- a/code/_onclick/hud/rendering/render_plate.dm +++ b/code/_onclick/hud/rendering/render_plate.dm @@ -39,6 +39,10 @@ plane = RENDER_PLANE_GAME render_relay_plane = RENDER_PLANE_MASTER +/atom/movable/screen/plane_master/rendering_plate/game_world/Initialize(mapload, datum/hud/hud_owner) + . = ..() + add_filter("displacer", 1, displacement_map_filter(render_source = DISPLACEMENT_PLATE_RENDER_TARGET, size = 10)) + ///render plate for OOC stuff like ghosts, hud-screen effects, etc /atom/movable/screen/plane_master/rendering_plate/non_game name = "non-game rendering plate" diff --git a/code/_onclick/hud/robot.dm b/code/_onclick/hud/robot.dm deleted file mode 100644 index af961f82bab2..000000000000 --- a/code/_onclick/hud/robot.dm +++ /dev/null @@ -1,151 +0,0 @@ -/datum/hud/robot - var/datum/custom_hud/robot/ui_robot_datum - -/datum/hud/robot/New(mob/living/silicon/robot/owner) - ..() - var/atom/movable/screen/using - - ui_robot_datum = GLOB.custom_huds_list[HUD_ROBOT] - -//Radio - using = new /atom/movable/screen() - using.name = "radio" - using.setDir(SOUTHWEST) - using.icon = ui_robot_datum.ui_style_icon - using.icon_state = "radio" - using.screen_loc = ui_robot_datum.ui_movi - using.layer = ABOVE_HUD_LAYER - using.plane = ABOVE_HUD_PLANE - static_inventory += using - -//Module select - - using = new /atom/movable/screen() - using.name = "module1" - using.setDir(SOUTHWEST) - using.icon = ui_robot_datum.ui_style_icon - using.icon_state = "inv1" - using.screen_loc = ui_robot_datum.ui_inv1 - using.layer = ABOVE_HUD_LAYER - using.plane = ABOVE_HUD_PLANE - owner.inv1 = using - static_inventory += using - - using = new /atom/movable/screen() - using.name = "module2" - using.setDir(SOUTHWEST) - using.icon = ui_robot_datum.ui_style_icon - using.icon_state = "inv2" - using.screen_loc = ui_robot_datum.ui_inv2 - using.layer = ABOVE_HUD_LAYER - using.plane = ABOVE_HUD_PLANE - owner.inv2 = using - static_inventory += using - - using = new /atom/movable/screen() - using.name = "module3" - using.setDir(SOUTHWEST) - using.icon = ui_robot_datum.ui_style_icon - using.icon_state = "inv3" - using.screen_loc = ui_robot_datum.ui_inv3 - using.layer = ABOVE_HUD_LAYER - using.plane = ABOVE_HUD_PLANE - owner.inv3 = using - static_inventory += using - -//End of module select - -//Intent - using = new /atom/movable/screen/act_intent() - using.icon = ui_robot_datum.ui_style_icon - using.icon_state = "intent_"+ intent_text(owner.a_intent) - static_inventory += using - action_intent = using - -//Cell - owner.cells = new /atom/movable/screen() - owner.cells.icon = ui_robot_datum.ui_style_icon - owner.cells.icon_state = "charge-empty" - owner.cells.name = "cell" - owner.cells.screen_loc = ui_robot_datum.ui_toxin - infodisplay += owner.cells - -//Health - healths = new /atom/movable/screen/healths() - healths.icon = ui_robot_datum.ui_style_icon - healths.screen_loc = ui_robot_datum.ui_borg_health - infodisplay += healths - -//Installed Module - owner.hands = new /atom/movable/screen() - owner.hands.icon = ui_robot_datum.ui_style_icon - owner.hands.icon_state = "nomod" - owner.hands.name = "module" - owner.hands.screen_loc = ui_robot_datum.ui_borg_module - static_inventory += owner.hands - -//Module Panel - using = new /atom/movable/screen() - using.name = "panel" - using.icon = ui_robot_datum.ui_style_icon - using.icon_state = "panel" - using.screen_loc = ui_robot_datum.ui_borg_panel - using.layer = HUD_LAYER - static_inventory += using - -//Store - module_store_icon = new /atom/movable/screen() - module_store_icon.icon = ui_robot_datum.ui_style_icon - module_store_icon.icon_state = "store" - module_store_icon.name = "store" - module_store_icon.screen_loc = ui_robot_datum.ui_borg_store - static_inventory += module_store_icon - -//Temp - bodytemp_icon = new /atom/movable/screen/bodytemp() - bodytemp_icon.screen_loc = ui_robot_datum.ui_borg_temp - infodisplay += bodytemp_icon - - oxygen_icon = new /atom/movable/screen/oxygen() - oxygen_icon.icon = ui_robot_datum.ui_style_icon - oxygen_icon.screen_loc = ui_robot_datum.UI_OXYGEN_LOC - infodisplay += oxygen_icon - - pull_icon = new /atom/movable/screen/pull() - pull_icon.icon = ui_robot_datum.ui_style_icon - pull_icon.screen_loc = ui_robot_datum.ui_borg_pull - static_inventory += pull_icon - - zone_sel = new /atom/movable/screen/zone_sel/robot() - zone_sel.screen_loc = ui_robot_datum.ui_zonesel - zone_sel.update_icon(owner) - static_inventory += zone_sel - -/mob/living/silicon/robot/create_hud() - if(!hud_used) - hud_used = new /datum/hud/robot(src) - - - -/datum/hud/robot/persistent_inventory_update() - if(!mymob || !ui_robot_datum) - return - var/mob/living/silicon/robot/R = mymob - if(hud_shown) - if(R.module_state_1) - R.module_state_1.screen_loc = ui_robot_datum.ui_inv1 - R.client.add_to_screen(R.module_state_1) - if(R.module_state_2) - R.module_state_2.screen_loc = ui_robot_datum.ui_inv2 - R.client.add_to_screen(R.module_state_2) - if(R.module_state_3) - R.module_state_3.screen_loc = ui_robot_datum.ui_inv3 - R.client.add_to_screen(R.module_state_3) - else - if(R.module_state_1) - R.module_state_1.screen_loc = null - if(R.module_state_2) - R.module_state_2.screen_loc = null - if(R.module_state_3) - R.module_state_3.screen_loc = null - diff --git a/code/_onclick/hud/screen_objects.dm b/code/_onclick/hud/screen_objects.dm index d114aff6b7cb..a8162911804b 100644 --- a/code/_onclick/hud/screen_objects.dm +++ b/code/_onclick/hud/screen_objects.dm @@ -59,9 +59,11 @@ /atom/movable/screen/action_button/attack_ghost(mob/dead/observer/user) return -/atom/movable/screen/action_button/clicked(mob/user) +/atom/movable/screen/action_button/clicked(mob/user, list/mods) if(!user || !source_action) return TRUE + if(source_action.owner != user) + return TRUE if(source_action.can_use_action()) source_action.action_activate() @@ -73,7 +75,7 @@ return ..() /atom/movable/screen/action_button/proc/get_button_screen_loc(button_number) - var/row = round((button_number-1)/13) //13 is max amount of buttons per row + var/row = floor((button_number-1)/13) //13 is max amount of buttons per row var/col = ((button_number - 1)%(13)) + 1 var/coord_col = "+[col-1]" var/coord_col_offset = 4+2*col @@ -97,7 +99,7 @@ icon_state = "hide" var/hidden = 0 -/atom/movable/screen/action_button/hide_toggle/clicked(mob/user, mods) +/atom/movable/screen/action_button/hide_toggle/clicked(mob/user, list/mods) user.hud_used.action_buttons_hidden = !user.hud_used.action_buttons_hidden hidden = user.hud_used.action_buttons_hidden if(hidden) @@ -107,7 +109,7 @@ name = "Hide Buttons" icon_state = "hide" user.update_action_buttons() - return 1 + return TRUE /atom/movable/screen/action_button/ghost/minimap/get_button_screen_loc(button_number) return "SOUTH:6,CENTER+1:24" @@ -117,7 +119,7 @@ layer = HUD_LAYER /atom/movable/screen/storage/proc/update_fullness(obj/item/storage/master_storage) - if(!master_storage.contents.len) + if(!length(master_storage.contents)) color = null else var/total_w = 0 @@ -127,9 +129,9 @@ //Calculate fullness for etiher max storage, or for storage slots if the container has them var/fullness = 0 if (master_storage.storage_slots == null) - fullness = round(10*total_w/master_storage.max_storage_space) + fullness = floor(10*total_w/master_storage.max_storage_space) else - fullness = round(10*master_storage.contents.len/master_storage.storage_slots) + fullness = floor(10*length(master_storage.contents)/master_storage.storage_slots) switch(fullness) if(10) color = "#ff0000" @@ -146,7 +148,6 @@ /atom/movable/screen/zone_sel/update_icon(mob/living/user) overlays.Cut() overlays += image('icons/mob/hud/zone_sel.dmi', "[selecting]") - user.zone_selected = selecting /atom/movable/screen/zone_sel/clicked(mob/user, list/mods) if (..()) @@ -208,96 +209,57 @@ selecting = "eyes" if(old_selecting != selecting) + user.zone_selected = selecting update_icon(user) return 1 -/atom/movable/screen/zone_sel/robot - icon = 'icons/mob/hud/screen1_robot.dmi' +/atom/movable/screen/gun + /// The proc/verb which should be called on the gun. + var/gun_proc_ref -/atom/movable/screen/clicked(mob/user) +/atom/movable/screen/gun/clicked(mob/user, list/mods) + . = ..() + if(.) + return + // If the user has a gun in their active hand, call `gun_proc_ref` on it. + var/obj/item/weapon/gun/held_item = user.get_held_item() + if(istype(held_item)) + INVOKE_ASYNC(held_item, gun_proc_ref) + +/atom/movable/screen/gun/attachment + name = "Activate weapon attachment" + icon_state = "gun_attach" + gun_proc_ref = TYPE_VERB_REF(/obj/item/weapon/gun, activate_attachment_verb) + +/atom/movable/screen/gun/rail_light + name = "Toggle rail flashlight" + icon_state = "gun_raillight" + gun_proc_ref = TYPE_VERB_REF(/obj/item/weapon/gun, activate_rail_attachment_verb) + +/atom/movable/screen/gun/eject_magazine + name = "Eject magazine" + icon_state = "gun_loaded" + gun_proc_ref = TYPE_VERB_REF(/obj/item/weapon/gun, empty_mag) + +/atom/movable/screen/gun/toggle_firemode + name = "Toggle firemode" + icon_state = "gun_burst" + gun_proc_ref = TYPE_VERB_REF(/obj/item/weapon/gun, use_toggle_burst) + +/atom/movable/screen/gun/unique_action + name = "Use unique action" + icon_state = "gun_unique" + gun_proc_ref = TYPE_VERB_REF(/obj/item/weapon/gun, use_unique_action) + + +/atom/movable/screen/clicked(mob/user, list/mods) if(!user) return TRUE if(isobserver(user)) return TRUE - switch(name) - if("equip") - if(ishuman(user)) - var/mob/living/carbon/human/human = user - human.quick_equip() - return 1 - - if("Reset Machine") - user.unset_interaction() - return 1 - - if("module") - if(isSilicon(user)) - if(user:module) - return 1 - user:pick_module() - return 1 - - if("radio") - if(isSilicon(user)) - user:radio_menu() - return 1 - if("panel") - if(isSilicon(user)) - user:installed_modules() - return 1 - - if("store") - if(isSilicon(user)) - user:uneq_active() - return 1 - - if("module1") - if(isrobot(user)) - user:toggle_module(1) - return 1 - - if("module2") - if(isrobot(user)) - user:toggle_module(2) - return 1 - - if("module3") - if(isrobot(user)) - user:toggle_module(3) - return 1 - - if("Activate weapon attachment") - var/obj/item/weapon/gun/held_item = user.get_held_item() - if(istype(held_item)) - held_item.activate_attachment_verb() - return 1 - - if("Toggle Rail Flashlight") - var/obj/item/weapon/gun/held_item = user.get_held_item() - if(istype(held_item)) - held_item.activate_rail_attachment_verb() - return 1 - - if("Eject magazine") - var/obj/item/weapon/gun/held_item = user.get_held_item() - if(istype(held_item)) - held_item.empty_mag() - return 1 - - if("Toggle burst fire") - var/obj/item/weapon/gun/held_item = user.get_held_item() - if(istype(held_item)) - held_item.use_toggle_burst() - return 1 - - if("Use unique action") - var/obj/item/weapon/gun/held_item = user.get_held_item() - if(istype(held_item)) - held_item.use_unique_action() - return 1 - return 0 + return FALSE /atom/movable/screen/inventory/clicked(mob/user) @@ -523,17 +485,17 @@ if(user.observed_xeno == user.tracked_marker) user.overwatch(user.tracked_marker, TRUE) //passing in an obj/effect into a proc that expects mob/xenomorph B) else - to_chat(user, SPAN_XENONOTICE("You psychically observe the [user.tracked_marker.mark_meaning.name] resin mark in [get_area_name(user.tracked_marker)].")) + to_chat(user, SPAN_XENONOTICE("We psychically observe the [user.tracked_marker.mark_meaning.name] resin mark in [get_area_name(user.tracked_marker)].")) user.overwatch(user.tracked_marker) //this is so scuffed, sorry if this causes errors return if(mods["alt"] && user.tracked_marker) user.stop_tracking_resin_mark() return if(!user.hive) - to_chat(user, SPAN_WARNING("You don't belong to a hive!")) + to_chat(user, SPAN_WARNING("We don't belong to a hive!")) return FALSE if(!user.hive.living_xeno_queen) - to_chat(user, SPAN_WARNING("Without a queen your psychic link is broken!")) + to_chat(user, SPAN_WARNING("Without a queen our psychic link is broken!")) return FALSE if(HAS_TRAIT(user, TRAIT_ABILITY_BURROWED) || user.is_mob_incapacitated() || user.buckled) return FALSE @@ -544,49 +506,58 @@ name = "queen locator" icon = 'icons/mob/hud/alien_standard.dmi' icon_state = "trackoff" - var/list/track_state = list(TRACKER_QUEEN, 0) + /// A weak reference to the atom currently being tracked. + /// (Note: This is null for `TRACKER_QUEEN` and `TRACKER_HIVE`, as those are accessed through the user's hive datum.) + var/datum/weakref/tracking_ref = null + /// The 'category' of the atom currently being tracked. (Defaults to `TRACKER_QUEEN`) + var/tracker_type = TRACKER_QUEEN /atom/movable/screen/queen_locator/clicked(mob/living/carbon/xenomorph/user, mods) if(!istype(user)) return FALSE if(mods["shift"]) var/area/current_area = get_area(user) - to_chat(user, SPAN_NOTICE("You are currently at: [current_area.name].")) + to_chat(user, SPAN_NOTICE("We are currently at: [current_area.name].")) return if(!user.hive) - to_chat(user, SPAN_WARNING("You don't belong to a hive!")) + to_chat(user, SPAN_WARNING("We don't belong to a hive!")) return FALSE if(mods["alt"]) var/list/options = list() if(user.hive.living_xeno_queen) - options["Queen"] = list(TRACKER_QUEEN, 0) + // Don't need weakrefs to this or the hive core, since there's only one possible target. + options["Queen"] = list(null, TRACKER_QUEEN) if(user.hive.hive_location) - options["Hive Core"] = list(TRACKER_HIVE, 0) + options["Hive Core"] = list(null, TRACKER_HIVE) - var/xeno_leader_index = 1 - for(var/xeno in user.hive.xeno_leader_list) - var/mob/living/carbon/xenomorph/xeno_lead = user.hive.xeno_leader_list[xeno_leader_index] - if(xeno_lead) - options["Xeno Leader [xeno_lead]"] = list(TRACKER_LEADER, xeno_leader_index) - xeno_leader_index++ + for(var/mob/living/carbon/xenomorph/leader in user.hive.xeno_leader_list) + options["Xeno Leader [leader]"] = list(leader, TRACKER_LEADER) - var/tunnel_index = 1 - for(var/obj/structure/tunnel/tracked_tunnel in user.hive.tunnels) - options["Tunnel [tracked_tunnel.tunnel_desc]"] = list(TRACKER_TUNNEL, tunnel_index) - tunnel_index++ + var/list/sorted_tunnels = sort_list_dist(user.hive.tunnels, get_turf(user)) + for(var/obj/structure/tunnel/tunnel as anything in sorted_tunnels) + options["Tunnel [tunnel.tunnel_desc]"] = list(tunnel, TRACKER_TUNNEL) - var/selected = tgui_input_list(user, "Select what you want the locator to track.", "Locator Options", options) + var/list/selected = tgui_input_list(user, "Select what you want the locator to track.", "Locator Options", options) if(selected) - track_state = options[selected] + var/selected_data = options[selected] + tracking_ref = WEAKREF(selected_data[1]) // Weakref to the tracked atom (or null) + tracker_type = selected_data[2] // Tracker category return + if(!user.hive.living_xeno_queen) - to_chat(user, SPAN_WARNING("Your hive doesn't have a living queen!")) + to_chat(user, SPAN_WARNING("Our hive doesn't have a living queen!")) return FALSE if(HAS_TRAIT(user, TRAIT_ABILITY_BURROWED) || user.is_mob_incapacitated() || user.buckled) return FALSE user.overwatch(user.hive.living_xeno_queen) +// Reset to the defaults +/atom/movable/screen/queen_locator/proc/reset_tracking() + icon_state = "trackoff" + tracking_ref = null + tracker_type = TRACKER_QUEEN + /atom/movable/screen/xenonightvision icon = 'icons/mob/hud/alien_standard.dmi' name = "toggle night vision" @@ -615,6 +586,19 @@ vision_define = XENO_VISION_LEVEL_NO_NVG to_chat(owner, SPAN_NOTICE("Night vision mode switched to [vision_define].")) +/atom/movable/screen/equip + name = "equip" + icon_state = "act_equip" + layer = ABOVE_HUD_LAYER + plane = ABOVE_HUD_PLANE + +/atom/movable/screen/equip/clicked(mob/user) + . = ..() + if(. || !ishuman(user)) + return TRUE + var/mob/living/carbon/human/human_user = user + human_user.quick_equip() + /atom/movable/screen/bodytemp name = "body temperature" icon_state = "temp0" diff --git a/code/_onclick/item_attack.dm b/code/_onclick/item_attack.dm index c6052da33199..1a3c279db8b3 100644 --- a/code/_onclick/item_attack.dm +++ b/code/_onclick/item_attack.dm @@ -3,6 +3,7 @@ /obj/item/proc/attack_self(mob/user) SHOULD_CALL_PARENT(TRUE) SEND_SIGNAL(src, COMSIG_ITEM_ATTACK_SELF, user) + SEND_SIGNAL(user, COMSIG_MOB_ITEM_ATTACK_SELF, src) if(flags_item & CAN_DIG_SHRAPNEL && ishuman(user)) dig_out_shrapnel(user) @@ -11,10 +12,12 @@ /atom/proc/attackby(obj/item/W, mob/living/user,list/mods) if(SEND_SIGNAL(src, COMSIG_PARENT_ATTACKBY, W, user, mods) & COMPONENT_NO_AFTERATTACK) return TRUE + SEND_SIGNAL(user, COMSIG_MOB_PARENT_ATTACKBY, src, W) return FALSE /atom/movable/attackby(obj/item/W, mob/living/user) - if(W) + . = ..() + if(W && !.) if(!(W.flags_item & NOBLUDGEON)) visible_message(SPAN_DANGER("[src] has been hit by [user] with [W]."), null, null, 5, CHAT_TYPE_MELEE_HIT) user.animation_attack_on(src) @@ -84,10 +87,10 @@ var/power = force if(user.skills) - power = round(power * (1 + 0.25 * user.skills.get_skill_level(SKILL_MELEE_WEAPONS))) //25% bonus per melee level + power = floor(power * (1 + 0.25 * user.skills.get_skill_level(SKILL_MELEE_WEAPONS))) //25% bonus per melee level if(!ishuman(M)) var/used_verb = "attacked" - if(attack_verb && attack_verb.len) + if(LAZYLEN(attack_verb)) used_verb = pick(attack_verb) user.visible_message(SPAN_DANGER("[M] has been [used_verb] with [src][showname]."), \ SPAN_DANGER("You [used_verb] [M == user ? "yourself":M] with [src]."), null, 5, CHAT_TYPE_MELEE_HIT) diff --git a/code/_onclick/observer.dm b/code/_onclick/observer.dm index f87778355755..04c70bbe1112 100644 --- a/code/_onclick/observer.dm +++ b/code/_onclick/observer.dm @@ -29,7 +29,7 @@ if(ismob(target) || isVehicle(target)) if(isxeno(target) && SSticker.mode.check_xeno_late_join(src)) //if it's a xeno and all checks are alright, we are gonna try to take their body var/mob/living/carbon/xenomorph/xeno = target - if(xeno.stat == DEAD || is_admin_level(xeno.z) || xeno.aghosted) + if(xeno.stat == DEAD || should_block_game_interaction(xeno) || xeno.aghosted) to_chat(src, SPAN_WARNING("You cannot join as [xeno].")) do_observe(xeno) return FALSE @@ -49,7 +49,7 @@ var/message = "You have been dead for [DisplayTimeText(deathtime)]." message = SPAN_WARNING("[message]") to_chat(src, message) - to_chat(src, SPAN_WARNING("You must wait atleast 2.5 minutes before rejoining the game!")) + to_chat(src, SPAN_WARNING("You must wait at least 2.5 minutes before rejoining the game!")) do_observe(target) return FALSE diff --git a/code/_onclick/other_mobs.dm b/code/_onclick/other_mobs.dm index 0bfa0a759287..8176f9e5247c 100644 --- a/code/_onclick/other_mobs.dm +++ b/code/_onclick/other_mobs.dm @@ -11,7 +11,10 @@ if (mods["middle"]) if (isStructure(A) && get_dist(src, A) <= 1) var/obj/structure/S = A - S.do_climb(src, mods) + if(S.climbable) + S.do_climb(src, mods) + else if(S.can_buckle) + S.buckle_mob(src, src) return TRUE else if(!(isitem(A) && get_dist(src, A) <= 1) && (client && (client.prefs.toggle_prefs & TOGGLE_MIDDLE_MOUSE_SWAP_HANDS))) swap_hand() diff --git a/code/_onclick/ventcrawl.dm b/code/_onclick/ventcrawl.dm index 51afbc139fdd..72fe31f35cdc 100644 --- a/code/_onclick/ventcrawl.dm +++ b/code/_onclick/ventcrawl.dm @@ -7,7 +7,7 @@ return for(var/atom/A as anything in src) if(!(is_type_in_list(A, canEnterVentWith))) - to_chat(src, SPAN_WARNING("You can't be carrying items or have items equipped when vent crawling!")) + to_chat(src, SPAN_WARNING("We cannot be carrying items or have items equipped when vent crawling!")) return FALSE /mob/living/click(atom/A, list/mods) @@ -24,10 +24,10 @@ for(var/obj/structure/pipes/vents/V in range(1)) if(Adjacent(V) && !V.welded) pipes |= V - if(!pipes || !pipes.len) - to_chat(src, SPAN_WARNING("There are no pipes that you can ventcrawl into within range!")) + if(!LAZYLEN(pipes)) + to_chat(src, SPAN_WARNING("There are no pipes that we can ventcrawl into within range!")) return - if(pipes.len == 1) + if(length(pipes) == 1) pipe = pipes[1] else pipe = tgui_input_list(usr, "Crawl Through Vent", "Pick a pipe", pipes) @@ -42,11 +42,11 @@ /mob/living/proc/handle_ventcrawl(atom/clicked_on) if(stat) - to_chat(src, SPAN_WARNING("You must be conscious to do this!")) + to_chat(src, SPAN_WARNING("We must be conscious to do this!")) return if(is_mob_incapacitated()) - to_chat(src, SPAN_WARNING("You can't vent crawl while you're stunned!")) + to_chat(src, SPAN_WARNING("We can't vent crawl while we are stunned!")) return var/obj/structure/pipes/vents/vent_found @@ -59,11 +59,11 @@ vent_found = locate(/obj/structure/pipes/vents/) in range(1, src) if(!vent_found) - to_chat(src, SPAN_WARNING("You must be standing on or beside an air vent to enter it.")) + to_chat(src, SPAN_WARNING("We must be standing on or beside an air vent to enter it.")) return if(vent_found.welded) - to_chat(src, SPAN_WARNING("This vent is closed off, you cannot climb through it.")) + to_chat(src, SPAN_WARNING("This vent is closed off, we cannot climb through it.")) return if(!ventcrawl_carry()) @@ -78,10 +78,10 @@ if(length(vent_found.connected_to)) if(src.action_busy) - to_chat(src, SPAN_WARNING("You are already busy with something.")) + to_chat(src, SPAN_WARNING("We are already busy with something.")) return - visible_message(SPAN_NOTICE("[src] begins climbing into [vent_found]."), SPAN_NOTICE("You begin climbing into [vent_found].")) + visible_message(SPAN_NOTICE("[src] begins climbing into [vent_found]."), SPAN_NOTICE("We begin climbing into [vent_found].")) vent_found.animate_ventcrawl() if(!do_after(src, 45, INTERRUPT_NO_NEEDHAND, BUSY_ICON_GENERIC)) vent_found.animate_ventcrawl_reset() diff --git a/code/_onclick/xeno.dm b/code/_onclick/xeno.dm index abb76ded498b..3bb69fe05419 100644 --- a/code/_onclick/xeno.dm +++ b/code/_onclick/xeno.dm @@ -13,6 +13,7 @@ if(isturf(target) && tile_attack) //Attacks on turfs must be done indirectly through directional attacks or clicking own sprite. var/turf/T = target + var/mob/living/non_xeno_target for(var/mob/living/L in T) if (!iscarbon(L)) if (!alt) @@ -21,13 +22,19 @@ if (!L.is_xeno_grabbable() || L == src) //Xenos never attack themselves. continue + var/isxeno = isxeno(L) + if(!isxeno) + non_xeno_target = L if (L.body_position == LYING_DOWN) alt = L continue + else if (!isxeno) + break target = L - break if (target == T && alt) target = alt + if(non_xeno_target) + target = non_xeno_target if (T && ignores_resin) // Will not target resin walls and doors if this is set to true. This is normally only set to true through a directional attack. if(istype(T, /obj/structure/mineral_door/resin)) var/obj/structure/mineral_door/resin/attacked_door = T @@ -54,6 +61,9 @@ var/turf/target_turf = target for(var/obj/flamer_fire/fire in target_turf) firepatted = TRUE + if(!(caste.fire_immunity & FIRE_IMMUNITY_NO_DAMAGE) || fire.tied_reagent?.fire_penetrating) + var/firedamage = max(fire.burnlevel - check_fire_intensity_resistance(), 0) * 0.5 + apply_damage(firedamage, BURN, fire) if((fire.firelevel > fire_level_to_extinguish) && (!fire.fire_variant)) //If fire_variant = 0, default fire extinguish behavior. fire.firelevel -= fire_level_to_extinguish fire.update_flame() @@ -73,10 +83,10 @@ playsound(loc, 'sound/weapons/alien_claw_swipe.ogg', 10, 1) //Quiet to limit spam/nuisance. if(firepatted) src.visible_message(SPAN_DANGER("\The [src] pats at the fire!"), \ - SPAN_DANGER("You pat the fire!"), null, 5, CHAT_TYPE_XENO_COMBAT) + SPAN_DANGER("We pat the fire!"), null, 5, CHAT_TYPE_XENO_COMBAT) else src.visible_message(SPAN_DANGER("\The [src] swipes at \the [target]!"), \ - SPAN_DANGER("You swipe at \the [target]!"), null, 5, CHAT_TYPE_XENO_COMBAT) + SPAN_DANGER("We swipe at \the [target]!"), null, 5, CHAT_TYPE_XENO_COMBAT) return TRUE /mob/living/carbon/xenomorph/RangedAttack(atom/A) @@ -88,7 +98,7 @@ return UnarmedAttack(get_step(src, Get_Compass_Dir(src, A)), tile_attack = TRUE, ignores_resin = TRUE) return FALSE -/**The parent proc, will default to UnarmedAttack behaviour unless overriden +/**The parent proc, will default to UnarmedAttack behaviour unless overridden Return XENO_ATTACK_ACTION if it does something and the attack should have full attack delay. Return XENO_NONCOMBAT_ACTION if it did something and should have some delay. Return XENO_NO_DELAY_ACTION if it gave an error message or should have no delay at all, ex. "You can't X that, it's Y!" @@ -111,7 +121,7 @@ so that it doesn't double up on the delays) so that it applies the delay immedia if(alt_pressed && shift_pressed) if(istype(target, /mob/living/carbon/xenomorph)) var/mob/living/carbon/xenomorph/xeno = target - if(!QDELETED(xeno) && xeno.stat != DEAD && !is_admin_level(xeno.z) && xeno.check_state(TRUE) && xeno.hivenumber == hivenumber) + if(!QDELETED(xeno) && xeno.stat != DEAD && !should_block_game_interaction(xeno) && xeno.check_state(TRUE) && xeno.hivenumber == hivenumber) overwatch(xeno) next_move = world.time + 3 // Some minimal delay so this isn't crazy spammy return TRUE @@ -131,6 +141,6 @@ so that it doesn't double up on the delays) so that it applies the delay immedia return ..() -//Larva attack, will default to attack_alien behaviour unless overriden +//Larva attack, will default to attack_alien behaviour unless overridden /atom/proc/attack_larva(mob/living/carbon/xenomorph/larva/user) return attack_alien(user) diff --git a/code/controllers/configuration/config_entry.dm b/code/controllers/configuration/config_entry.dm index c47531f5fc45..49dae4c2ff38 100644 --- a/code/controllers/configuration/config_entry.dm +++ b/code/controllers/configuration/config_entry.dm @@ -4,6 +4,7 @@ #define KEY_MODE_TEXT 0 #define KEY_MODE_TYPE 1 +#define KEY_MODE_TEXT_UNALTERED 2 /datum/config_entry var/name //read-only, this is determined by the last portion of the derived entry type @@ -79,7 +80,7 @@ return FALSE var/temp = text2num(trim(str_val)) if(!isnull(temp)) - config_entry_value = clamp(integer ? round(temp) : temp, min_val, max_val) + config_entry_value = clamp(integer ? floor(temp) : temp, min_val, max_val) if(config_entry_value != temp && !(datum_flags & DF_VAR_EDITED)) log_config("Changing [name] from [temp] to [config_entry_value]!") return TRUE @@ -124,7 +125,7 @@ if(isnull(temp)) return FALSE new_list += temp - if(!new_list.len) + if(!length(new_list)) return FALSE config_entry_value = new_list return TRUE @@ -153,7 +154,9 @@ var/key_value = null if(key_pos || value_mode == VALUE_MODE_FLAG) - key_name = lowertext(copytext(str_val, 1, key_pos)) + key_name = copytext(str_val, 1, key_pos) + if(key_mode != KEY_MODE_TEXT_UNALTERED) + key_name = lowertext(key_name) if(key_pos) key_value = copytext(str_val, key_pos + length(str_val[key_pos])) var/new_key @@ -161,7 +164,7 @@ var/continue_check_value var/continue_check_key switch(key_mode) - if(KEY_MODE_TEXT) + if(KEY_MODE_TEXT, KEY_MODE_TEXT_UNALTERED) new_key = key_name continue_check_key = new_key if(KEY_MODE_TYPE) diff --git a/code/controllers/configuration/configuration.dm b/code/controllers/configuration/configuration.dm index 147f57fcb1aa..7207f878614a 100644 --- a/code/controllers/configuration/configuration.dm +++ b/code/controllers/configuration/configuration.dm @@ -329,7 +329,7 @@ continue in_character_filter += REGEX_QUOTE(line) - ic_filter_regex = in_character_filter.len ? regex("\\b([jointext(in_character_filter, "|")])\\b", "i") : null + ic_filter_regex = length(in_character_filter) ? regex("\\b([jointext(in_character_filter, "|")])\\b", "i") : null //Message admins when you can. /datum/controller/configuration/proc/DelayedMessageAdmins(text) diff --git a/code/controllers/configuration/entries/general.dm b/code/controllers/configuration/entries/general.dm index 385cbcb8d446..627859369231 100644 --- a/code/controllers/configuration/entries/general.dm +++ b/code/controllers/configuration/entries/general.dm @@ -491,8 +491,6 @@ This maintains a list of ip addresses that are able to bypass topic filtering. /datum/config_entry/flag/respawn -/datum/config_entry/flag/ToRban - /datum/config_entry/flag/ooc_country_flags /datum/config_entry/flag/record_rounds @@ -533,6 +531,8 @@ This maintains a list of ip addresses that are able to bypass topic filtering. /datum/config_entry/string/round_results_webhook_url +/datum/config_entry/string/important_log_channel + /// InfluxDB v2 Host to connect to for sending statistics (over HTTP API) /datum/config_entry/string/influxdb_host /// InfluxDB v2 Bucket to send staistics to @@ -629,3 +629,46 @@ This maintains a list of ip addresses that are able to bypass topic filtering. /datum/config_entry/flag/guest_ban /datum/config_entry/flag/auto_profile + +/// Relay Ping Browser configuration +/datum/config_entry/keyed_list/connection_relay_ping + splitter = "|" + key_mode = KEY_MODE_TEXT_UNALTERED + value_mode = VALUE_MODE_TEXT + +/datum/config_entry/keyed_list/connection_relay_con + splitter = "|" + key_mode = KEY_MODE_TEXT_UNALTERED + value_mode = VALUE_MODE_TEXT + +/datum/config_entry/number/client_warn_version + default = null + min_val = 500 + +/datum/config_entry/number/client_warn_build + default = null + min_val = 0 + +/datum/config_entry/string/client_warn_message + default = "Your version of BYOND may have issues or be blocked from accessing this server in the future." + +/datum/config_entry/flag/client_warn_popup + +/datum/config_entry/number/client_error_version + default = null + min_val = 500 + +/datum/config_entry/number/client_error_build + default = null + min_val = 0 + +/datum/config_entry/string/client_error_message + default = "Your version of BYOND is too old, may have issues, and is blocked from accessing this server." + +// GitHub API, used for anonymous bug report handling. +/datum/config_entry/string/github_app_api + protection = CONFIG_ENTRY_LOCKED | CONFIG_ENTRY_HIDDEN + +/datum/config_entry/string/repo_name + +/datum/config_entry/string/org diff --git a/code/controllers/mc/failsafe.dm b/code/controllers/mc/failsafe.dm index a352b84a8d27..f38b5da2cf76 100644 --- a/code/controllers/mc/failsafe.dm +++ b/code/controllers/mc/failsafe.dm @@ -155,7 +155,7 @@ GLOBAL_REAL(Failsafe, /datum/controller/failsafe) if (. == 1) //We were able to create a new master SSticker.Recover(); //Recover the ticket system so the Masters runlevel gets set Master.Initialize(10, FALSE, TRUE) //Need to manually start the MC, normally world.new would do this - to_chat(GLOB.admins, SPAN_ADMINNOTICE("MC successfully recreated after recovering all subsystems!")) + message_admins(SPAN_ADMINNOTICE("MC successfully recreated after recovering all subsystems!")) else message_admins(SPAN_BOLDANNOUNCE("Failed to create new MC!")) @@ -169,7 +169,7 @@ GLOBAL_REAL(Failsafe, /datum/controller/failsafe) if (. == 1) //We were able to create a new master SSticker.Recover(); //Recover the ticket system so the Masters runlevel gets set Master.Initialize(10, FALSE, TRUE) //Need to manually start the MC, normally world.new would do this - to_chat(GLOB.admins, SPAN_ADMINNOTICE("MC successfully recreated after deleting and recreating all subsystems!")) + message_admins(SPAN_ADMINNOTICE("MC successfully recreated after deleting and recreating all subsystems!")) else message_admins(SPAN_BOLDANNOUNCE("Failed to create new MC!")) diff --git a/code/controllers/mc/globals.dm b/code/controllers/mc/globals.dm index 7b5cc94d3620..59b96c017d10 100644 --- a/code/controllers/mc/globals.dm +++ b/code/controllers/mc/globals.dm @@ -13,10 +13,14 @@ GLOBAL_REAL(GLOB, /datum/controller/global_vars) GLOB = src var/datum/controller/exclude_these = new - gvars_datum_in_built_vars = exclude_these.vars + list(NAMEOF(src, gvars_datum_protected_varlist), NAMEOF(src, gvars_datum_in_built_vars), NAMEOF(src, gvars_datum_init_order)) + // I know this is dumb but the nested vars list hangs a ref to the datum. This fixes that + var/list/controller_vars = exclude_these.vars.Copy() + controller_vars["vars"] = null + gvars_datum_in_built_vars = controller_vars + list(NAMEOF(src, gvars_datum_protected_varlist), NAMEOF(src, gvars_datum_in_built_vars), NAMEOF(src, gvars_datum_init_order)) + QDEL_IN(exclude_these, 0) //signal logging isn't ready - log_world("[vars.len - gvars_datum_in_built_vars.len] global variables") + log_world("[length(vars) - length(gvars_datum_in_built_vars)] global variables") Initialize() @@ -38,10 +42,10 @@ GLOBAL_REAL(GLOB, /datum/controller/global_vars) gvars_datum_init_order = list() gvars_datum_protected_varlist = list(NAMEOF(src, gvars_datum_protected_varlist) = TRUE) var/list/global_procs = typesof(/datum/controller/global_vars/proc) - var/expected_len = vars.len - gvars_datum_in_built_vars.len - if(global_procs.len != expected_len) - warning("Unable to detect all global initialization procs! Expected [expected_len] got [global_procs.len]!") - if(global_procs.len) + var/expected_len = length(vars) - length(gvars_datum_in_built_vars) + if(length(global_procs) != expected_len) + warning("Unable to detect all global initialization procs! Expected [expected_len] got [length(global_procs)]!") + if(length(global_procs)) var/list/expected_global_procs = vars - gvars_datum_in_built_vars for(var/I in global_procs) expected_global_procs -= replacetext("[I]", "InitGlobal", "") diff --git a/code/controllers/mc/master.dm b/code/controllers/mc/master.dm index 530078e4c432..740e29949418 100644 --- a/code/controllers/mc/master.dm +++ b/code/controllers/mc/master.dm @@ -194,7 +194,7 @@ GLOBAL_REAL(Master, /datum/controller/master) = new msg = "The [BadBoy.name] subsystem seems to be destabilizing the MC and will be put offline." BadBoy.flags |= SS_NO_FIRE if(msg) - to_chat(GLOB.admins, SPAN_BOLDANNOUNCE("[msg]")) + message_admins(SPAN_BOLDANNOUNCE("[msg]")) log_world(msg) if (istype(Master.subsystems)) @@ -232,7 +232,7 @@ GLOBAL_REAL(Master, /datum/controller/master) = new for (var/datum/controller/subsystem/subsystem as anything in subsystems) var/subsystem_init_stage = subsystem.init_stage - if (!isnum(subsystem_init_stage) || subsystem_init_stage < 1 || subsystem_init_stage > INITSTAGE_MAX || round(subsystem_init_stage) != subsystem_init_stage) + if (!isnum(subsystem_init_stage) || subsystem_init_stage < 1 || subsystem_init_stage > INITSTAGE_MAX || floor(subsystem_init_stage) != subsystem_init_stage) stack_trace("ERROR: MC: subsystem `[subsystem.type]` has invalid init_stage: `[subsystem_init_stage]`. Setting to `[INITSTAGE_MAX]`") subsystem_init_stage = subsystem.init_stage = INITSTAGE_MAX stage_sorted_subsystems[subsystem_init_stage] += subsystem @@ -415,9 +415,9 @@ GLOBAL_REAL(Master, /datum/controller/master) = new var/ss_runlevels = SS.runlevels var/added_to_any = FALSE - for(var/I in 1 to GLOB.bitflags.len) + for(var/I in 1 to length(GLOB.bitflags)) if(ss_runlevels & GLOB.bitflags[I]) - while(runlevel_sorted_subsystems.len < I) + while(length(runlevel_sorted_subsystems) < I) runlevel_sorted_subsystems += list(list()) runlevel_sorted_subsystems[I] += SS added_to_any = TRUE @@ -668,7 +668,7 @@ GLOBAL_REAL(Master, /datum/controller/master) = new tick_precentage = max(tick_precentage*0.5, tick_precentage-queue_node.tick_overrun) - current_ticklimit = round(TICK_USAGE + tick_precentage) + current_ticklimit = floor(TICK_USAGE + tick_precentage) ran = TRUE diff --git a/code/controllers/mc/subsystem.dm b/code/controllers/mc/subsystem.dm index 24af320aeb62..e25402c28610 100644 --- a/code/controllers/mc/subsystem.dm +++ b/code/controllers/mc/subsystem.dm @@ -260,7 +260,7 @@ /datum/controller/subsystem/proc/OnConfigLoad() /** - * Used to initialize the subsystem. This is expected to be overriden by subtypes. + * Used to initialize the subsystem. This is expected to be overridden by subtypes. */ /datum/controller/subsystem/Initialize() return SS_INIT_NONE diff --git a/code/controllers/shuttle_controller.dm b/code/controllers/shuttle_controller.dm index 35031cf7334f..fb0cb1ff7637 100644 --- a/code/controllers/shuttle_controller.dm +++ b/code/controllers/shuttle_controller.dm @@ -215,7 +215,7 @@ dock_controller_map[shuttle.docking_controller_tag] = shuttle //search for the controllers, if we have one. - if(dock_controller_map.len) + if(length(dock_controller_map)) for(var/obj/structure/machinery/embedded_controller/radio/C in GLOB.machines) //only radio controllers are supported at the moment if (istype(C.program, /datum/computer/file/embedded_program/docking)) if(dock_controller_map[C.id_tag]) @@ -226,7 +226,7 @@ //sanity check //NO SANITY -// if (dock_controller_map.len || dock_controller_map_station.len || dock_controller_map_offsite.len) +// if (length(dock_controller_map) || length(dock_controller_map_station) || length(dock_controller_map_offsite)) // var/dat = "" // for (var/dock_tag in dock_controller_map + dock_controller_map_station + dock_controller_map_offsite) // dat += "\"[dock_tag]\", " diff --git a/code/controllers/subsystem/acid_pillar.dm b/code/controllers/subsystem/acid_pillar.dm index aaa38834667f..70994e641503 100644 --- a/code/controllers/subsystem/acid_pillar.dm +++ b/code/controllers/subsystem/acid_pillar.dm @@ -11,8 +11,8 @@ SUBSYSTEM_DEF(acid_pillar) if (!resumed) currentrun = queuedrun.Copy() - while (currentrun.len) - var/hash = currentrun[currentrun.len] + while (length(currentrun)) + var/hash = currentrun[length(currentrun)] var/datum/acid_spray_info/data = currentrun[hash] currentrun.len-- diff --git a/code/controllers/subsystem/atoms.dm b/code/controllers/subsystem/atoms.dm index 3d544dca1390..dbe2f1a39c6b 100644 --- a/code/controllers/subsystem/atoms.dm +++ b/code/controllers/subsystem/atoms.dm @@ -9,7 +9,7 @@ SUBSYSTEM_DEF(atoms) flags = SS_NO_FIRE var/old_initialized - /// A count of how many initalize changes we've made. We want to prevent old_initialize being overriden by some other value, breaking init code + /// A count of how many initalize changes we've made. We want to prevent old_initialize being overridden by some other value, breaking init code var/initialized_changed = 0 var/init_start_time var/processing_late_loaders = FALSE @@ -19,6 +19,9 @@ SUBSYSTEM_DEF(atoms) var/list/BadInitializeCalls = list() + ///initAtom() adds the atom its creating to this list iff InitializeAtoms() has been given a list to populate as an argument + var/list/created_atoms + initialized = INITIALIZATION_INSSATOMS /datum/controller/subsystem/atoms/Initialize(timeofday) @@ -34,7 +37,7 @@ SUBSYSTEM_DEF(atoms) populate_seed_list() return SS_INIT_SUCCESS -/datum/controller/subsystem/atoms/proc/InitializeAtoms(list/atoms) +/datum/controller/subsystem/atoms/proc/InitializeAtoms(list/atoms, list/atoms_to_return) if(initialized == INITIALIZATION_INSSATOMS) return @@ -59,7 +62,7 @@ SUBSYSTEM_DEF(atoms) processing_late_loaders = TRUE - for(var/I = 1; I <= late_loaders.len; I++) + for(var/I = 1; I <= length(late_loaders); I++) var/atom/A = late_loaders[I] //I hate that we need this if(QDELETED(A)) @@ -67,13 +70,16 @@ SUBSYSTEM_DEF(atoms) A.LateInitialize() #ifdef TESTING - testing("Late initialized [late_loaders.len] atoms") + testing("Late initialized [length(late_loaders)] atoms") #endif late_loaders.Cut() processing_late_loaders = FALSE /// Actually creates the list of atoms. Exists soley so a runtime in the creation logic doesn't cause initalized to totally break -/datum/controller/subsystem/atoms/proc/CreateAtoms(list/atoms) +/datum/controller/subsystem/atoms/proc/CreateAtoms(list/atoms, list/atoms_to_return = null) + if (atoms_to_return) + LAZYINITLIST(created_atoms) + #ifdef TESTING var/count #endif @@ -81,10 +87,10 @@ SUBSYSTEM_DEF(atoms) var/list/mapload_arg = list(TRUE) if(atoms) #ifdef TESTING - count = atoms.len + count = length(atoms) #endif - for(var/I in 1 to atoms.len) + for(var/I in 1 to length(atoms)) var/atom/A = atoms[I] if(!(A.flags_atom & INITIALIZED)) CHECK_TICK @@ -152,12 +158,10 @@ SUBSYSTEM_DEF(atoms) qdeleted = TRUE else if(!(A.flags_atom & INITIALIZED)) BadInitializeCalls[the_type] |= BAD_INIT_DIDNT_INIT - /* else - SEND_SIGNAL(A,COMSIG_ATOM_AFTER_SUCCESSFUL_INITIALIZE) + SEND_SIGNAL(A, COMSIG_ATOM_AFTER_SUCCESSFUL_INITIALIZED_ON) if(created_atoms && from_template && ispath(the_type, /atom/movable))//we only want to populate the list with movables created_atoms += A.get_all_contents() - */ return qdeleted || QDELING(A) @@ -183,7 +187,7 @@ SUBSYSTEM_DEF(atoms) /datum/controller/subsystem/atoms/proc/map_loader_stop() clear_tracked_initalize() -/// Use this to set initialized to prevent error states where old_initialized is overriden. It keeps happening and it's cheesing me off +/// Use this to set initialized to prevent error states where old_initialized is overridden. It keeps happening and it's cheesing me off /datum/controller/subsystem/atoms/proc/set_tracked_initalized(value) if(!initialized_changed) old_initialized = initialized diff --git a/code/controllers/subsystem/cellauto.dm b/code/controllers/subsystem/cellauto.dm index b543ddd43c26..983d168d61a1 100644 --- a/code/controllers/subsystem/cellauto.dm +++ b/code/controllers/subsystem/cellauto.dm @@ -9,15 +9,15 @@ SUBSYSTEM_DEF(cellauto) var/list/currentrun = list() /datum/controller/subsystem/cellauto/stat_entry(msg) - msg = "C: [GLOB.cellauto_cells.len]" + msg = "C: [length(GLOB.cellauto_cells)]" return ..() /datum/controller/subsystem/cellauto/fire(resumed = FALSE) if (!resumed) currentrun = GLOB.cellauto_cells.Copy() - while(currentrun.len) - var/datum/automata_cell/C = currentrun[currentrun.len] + while(length(currentrun)) + var/datum/automata_cell/C = currentrun[length(currentrun)] currentrun.len-- if (!C || QDELETED(C)) diff --git a/code/controllers/subsystem/communications.dm b/code/controllers/subsystem/communications.dm index b8b037c33381..7397d98a0d52 100644 --- a/code/controllers/subsystem/communications.dm +++ b/code/controllers/subsystem/communications.dm @@ -66,6 +66,8 @@ Frequency range: 1200 to 1600 Radiochat range: 1441 to 1489 (most devices refuse to be tune to other frequency, even during mapmaking) */ +#define UNIVERSAL_FREQ 1 + #define MIN_FREE_FREQ 1201 // ------------------------------------------------- //Misc channels @@ -113,6 +115,7 @@ Radiochat range: 1441 to 1489 (most devices refuse to be tune to other frequency #define SOF_FREQ 1472 #define PVST_FREQ 1473 #define CBRN_FREQ 1474 +#define FORECON_FREQ 1475 //Ship department channels #define SENTRY_FREQ 1480 @@ -169,6 +172,7 @@ GLOBAL_LIST_INIT(radiochannels, list( SQUAD_MARINE_CRYO = CRYO_FREQ, SQUAD_SOF = SOF_FREQ, SQUAD_CBRN = CBRN_FREQ, + SQUAD_FORECON = FORECON_FREQ, RADIO_CHANNEL_ALAMO = DS1_FREQ, RADIO_CHANNEL_NORMANDY = DS2_FREQ, @@ -276,6 +280,7 @@ SUBSYSTEM_DEF(radio) "[ECHO_FREQ]" = "echoradio", "[CRYO_FREQ]" = "cryoradio", "[CBRN_FREQ]" = "hcradio", + "[FORECON_FREQ]" = "hcradio", "[SOF_FREQ]" = "hcradio", "[HC_FREQ]" = "hcradio", "[PVST_FREQ]" = "pvstradio", @@ -327,11 +332,11 @@ SUBSYSTEM_DEF(radio) if(length(extra_zs)) target_zs += extra_zs for(var/obj/structure/machinery/telecomms/T as anything in tcomm_machines_ground) - if(!length(T.freq_listening) || (frequency in T.freq_listening)) + if((UNIVERSAL_FREQ in T.freq_listening) || (frequency in T.freq_listening)) target_zs += SSmapping.levels_by_trait(ZTRAIT_GROUND) break for(var/obj/structure/machinery/telecomms/T as anything in tcomm_machines_almayer) - if(!length(T.freq_listening) || (frequency in T.freq_listening)) + if((UNIVERSAL_FREQ in T.freq_listening) || (frequency in T.freq_listening)) target_zs += SSmapping.levels_by_trait(ZTRAIT_MARINE_MAIN_SHIP) target_zs += SSmapping.levels_by_trait(ZTRAIT_RESERVED) break diff --git a/code/controllers/subsystem/decorator.dm b/code/controllers/subsystem/decorator.dm index e0e2c91022bc..ac63fca47ac5 100644 --- a/code/controllers/subsystem/decorator.dm +++ b/code/controllers/subsystem/decorator.dm @@ -1,4 +1,4 @@ -// our atom declaration should not be hardcoded for this SS existance. +// our atom declaration should not be hardcoded for this SS existence. // if this subsystem is deleted, stuff still works // That's why we define this here /atom/proc/Decorate(deferable = FALSE) @@ -35,7 +35,7 @@ SUBSYSTEM_DEF(decorator) if(!decor.is_active_decor()) continue var/list/applicable_types = decor.get_decor_types() - if(!applicable_types || !applicable_types.len) + if(!LAZYLEN(applicable_types)) continue active_decorators |= decor for(var/app_type in applicable_types) @@ -64,7 +64,7 @@ SUBSYSTEM_DEF(decorator) currentrun = swap while(length(currentrun)) - var/datum/weakref/ref = currentrun[currentrun.len] + var/datum/weakref/ref = currentrun[length(currentrun)] currentrun.len-- var/atom/A = ref?.resolve() if(A) A.Decorate(deferable = FALSE) @@ -80,7 +80,7 @@ SUBSYSTEM_DEF(decorator) // DECORATOR IS ENABLED FORCEFULLY var/list/applicable_types = decor.get_decor_types() - if(!applicable_types || !applicable_types.len) + if(!LAZYLEN(applicable_types)) return active_decorators |= decor for(var/app_type in applicable_types) @@ -100,7 +100,7 @@ SUBSYSTEM_DEF(decorator) /datum/controller/subsystem/decorator/stat_entry(msg) if(registered_decorators && decoratable) - msg = "D:[registered_decorators.len],P:[decoratable.len]" + msg = "D:[length(registered_decorators)],P:[length(decoratable)]" return ..() /datum/controller/subsystem/decorator/proc/decorate(atom/o) @@ -118,25 +118,25 @@ SUBSYSTEM_DEF(decorator) /datum/controller/subsystem/decorator/proc/sortDecorators(list/datum/decorator/L) if(!istype(L)) return null - if(L.len < 2) + if(length(L) < 2) return L - var/middle = L.len / 2 + 1 + var/middle = length(L) / 2 + 1 return mergeDecoratorLists(sortDecorators(L.Copy(0, middle)), sortDecorators(L.Copy(middle))) /datum/controller/subsystem/decorator/proc/mergeDecoratorLists(list/datum/decorator/L, list/datum/decorator/R) var/Li=1 var/Ri=1 var/list/result = new() - while(Li <= L.len && Ri <= R.len) + while(Li <= length(L) && Ri <= length(R)) if(sorttext(L[Li].priority, R[Ri].priority) < 1) // Works around list += list2 merging lists; it's not pretty but it works result += "temp item" - result[result.len] = R[Ri++] + result[length(result)] = R[Ri++] else result += "temp item" - result[result.len] = L[Li++] + result[length(result)] = L[Li++] - if(Li <= L.len) + if(Li <= length(L)) return (result + L.Copy(Li, 0)) return (result + R.Copy(Ri, 0)) diff --git a/code/controllers/subsystem/disease.dm b/code/controllers/subsystem/disease.dm index b98187ca252c..342a6b28906b 100644 --- a/code/controllers/subsystem/disease.dm +++ b/code/controllers/subsystem/disease.dm @@ -8,15 +8,15 @@ SUBSYSTEM_DEF(disease) var/list/datum/disease/currentrun = list() /datum/controller/subsystem/disease/stat_entry(msg) - msg = "P:[all_diseases.len]" + msg = "P:[length(all_diseases)]" return ..() /datum/controller/subsystem/disease/fire(resumed = FALSE) if (!resumed) currentrun = all_diseases.Copy() - while (currentrun.len) - var/datum/disease/D = currentrun[currentrun.len] + while (length(currentrun)) + var/datum/disease/D = currentrun[length(currentrun)] currentrun.len-- if (!D || QDELETED(D)) diff --git a/code/controllers/subsystem/events.dm b/code/controllers/subsystem/events.dm index 83cd822725ca..db1b07475489 100644 --- a/code/controllers/subsystem/events.dm +++ b/code/controllers/subsystem/events.dm @@ -9,7 +9,7 @@ SUBSYSTEM_DEF(events) var/list/running = list() var/list/currentrun = list() - ///The next world.time that a naturally occuring random event can be selected. + ///The next world.time that a naturally occurring random event can be selected. var/scheduled = 0 ///Lower bound for how frequently events will occur var/frequency_lower = 5 MINUTES @@ -35,8 +35,8 @@ SUBSYSTEM_DEF(events) //cache for sanic speed (lists are references anyways) var/list/currentrun = src.currentrun - while(currentrun.len) - var/datum/thing = currentrun[currentrun.len] + while(length(currentrun)) + var/datum/thing = currentrun[length(currentrun)] currentrun.len-- if(thing) thing.process() diff --git a/code/controllers/subsystem/fz_transitions.dm b/code/controllers/subsystem/fz_transitions.dm index d12ab1358535..5a6db625145c 100644 --- a/code/controllers/subsystem/fz_transitions.dm +++ b/code/controllers/subsystem/fz_transitions.dm @@ -10,7 +10,7 @@ SUBSYSTEM_DEF(fz_transitions) flags = SS_KEEP_TIMING /datum/controller/subsystem/fz_transitions/stat_entry(msg) - msg = "P:[GLOB.projectors.len]|C:[GLOB.clones.len]|T:[GLOB.clones_t.len]" + msg = "P:[length(GLOB.projectors)]|C:[length(GLOB.clones)]|T:[length(GLOB.clones_t)]" return ..() /datum/controller/subsystem/fz_transitions/Initialize() diff --git a/code/controllers/subsystem/garbage.dm b/code/controllers/subsystem/garbage.dm index e94d6b1aff1d..072419df2cbd 100644 --- a/code/controllers/subsystem/garbage.dm +++ b/code/controllers/subsystem/garbage.dm @@ -139,13 +139,6 @@ SUBSYSTEM_DEF(garbage) pass_counts[i] = 0 fail_counts[i] = 0 -#ifdef EXPERIMENT_515_QDEL_HARD_REFERENCE -// 1 from the hard reference in the queue, and 1 from the variable used before this -#define IS_DELETED(datum, _) (refcount(##datum) == 2) -#else -#define IS_DELETED(datum, gcd_at_time) (isnull(##datum) || ##datum.gc_destroyed != gcd_at_time) -#endif - /datum/controller/subsystem/garbage/proc/HandleQueue(level = GC_QUEUE_FILTER) if (level == GC_QUEUE_FILTER) delslasttick = 0 @@ -162,7 +155,7 @@ SUBSYSTEM_DEF(garbage) lastlevel = level - //We do this rather then for(var/refID in queue) because that sort of for loop copies the whole list. + //We do this rather then for(var/list/ref_info in queue) because that sort of for loop copies the whole list. //Normally this isn't expensive, but the gc queue can grow to 40k items, and that gets costly/causes overrun. for (var/i in 1 to length(queue)) var/list/L = queue[i] @@ -173,21 +166,15 @@ SUBSYSTEM_DEF(garbage) continue var/queued_at_time = L[GC_QUEUE_ITEM_QUEUE_TIME] - if(queued_at_time > cut_off_time) break // Everything else is newer, skip them count++ -#ifdef EXPERIMENT_515_QDEL_HARD_REFERENCE var/datum/D = L[GC_QUEUE_ITEM_REF] -#else - var/GCd_at_time = L[GC_QUEUE_ITEM_GCD_DESTROYED] - var/refID = L[GC_QUEUE_ITEM_REF] - var/datum/D - D = locate(refID) -#endif - - if (IS_DELETED(D, GCd_at_time)) // So if something else coincidently gets the same ref, it's not deleted by mistake + + // 1 from the hard reference in the queue, and 1 from the variable used before this + // If that's all we've got, send er off + if (refcount(D) == 2) ++gcedlasttick ++totalgcs pass_counts[level]++ @@ -221,11 +208,7 @@ SUBSYSTEM_DEF(garbage) var/type = D.type var/datum/qdel_item/I = items[type] - var/message = "## TESTING: GC: -- [text_ref(D)] | [type] was unable to be GC'd --" -#if DM_VERSION >= 515 - message = "[message] (ref count of [refcount(D)])" -#endif - log_world(message) + log_world("## TESTING: GC: -- [text_ref(D)] | [type] was unable to be GC'd -- (ref count of [refcount(D)])") #ifdef TESTING for(var/c in GLOB.admins) //Using testing() here would fill the logs with ADMIN_VV garbage @@ -261,8 +244,6 @@ SUBSYSTEM_DEF(garbage) queue.Cut(1,count+1) count = 0 -#undef IS_DELETED - /datum/controller/subsystem/garbage/proc/Queue(datum/D, level = GC_QUEUE_FILTER) if (isnull(D)) return @@ -271,20 +252,11 @@ SUBSYSTEM_DEF(garbage) return var/queue_time = world.time -#ifdef EXPERIMENT_515_QDEL_HARD_REFERENCE - var/refid = D -#else - var/refid = text_ref(D) -#endif - - var/static/uid = 0 - uid = WRAP(uid+1, 1, SHORT_REAL_LIMIT - 1) if (D.gc_destroyed <= 0) - D.gc_destroyed = uid + D.gc_destroyed = queue_time var/list/queue = queues[level] - - queue[++queue.len] = list(queue_time, refid, D.gc_destroyed) // not += for byond reasons + queue[++queue.len] = list(queue_time, D, D.gc_destroyed) // not += for byond reasons //this is mainly to separate things profile wise. /datum/controller/subsystem/garbage/proc/HardDelete(datum/D, force) @@ -325,7 +297,7 @@ SUBSYSTEM_DEF(garbage) /datum/controller/subsystem/garbage/Recover() InitQueues() //We first need to create the queues before recovering data if (istype(SSgarbage.queues)) - for (var/i in 1 to SSgarbage.queues.len) + for (var/i in 1 to length(SSgarbage.queues)) queues[i] |= SSgarbage.queues[i] /// Qdel Item: Holds statistics on each type that passes thru qdel diff --git a/code/controllers/subsystem/hijack.dm b/code/controllers/subsystem/hijack.dm index ee3e86e6095e..6a2f63023ca2 100644 --- a/code/controllers/subsystem/hijack.dm +++ b/code/controllers/subsystem/hijack.dm @@ -105,6 +105,7 @@ SUBSYSTEM_DEF(hijack) if(hijack_status < HIJACK_OBJECTIVES_STARTED) hijack_status = HIJACK_OBJECTIVES_STARTED + SEND_GLOBAL_SIGNAL(COMSIG_GLOB_FUEL_PUMP_UPDATE) if(current_progress >= required_progress) if(hijack_status < HIJACK_OBJECTIVES_COMPLETE) @@ -157,6 +158,7 @@ SUBSYSTEM_DEF(hijack) if(current_progress >= announce_checkpoint) announce_progress() announce_checkpoint += initial(announce_checkpoint) + SEND_GLOBAL_SIGNAL(COMSIG_GLOB_FUEL_PUMP_UPDATE) current_run_progress_additive = 0 current_run_progress_multiplicative = 1 @@ -299,7 +301,7 @@ SUBSYSTEM_DEF(hijack) sd_unlocked = TRUE marine_announcement("Fuel reserves full. Manual detonation of fuel reserves by overloading the on-board fusion reactors now possible.", HIJACK_ANNOUNCE) -/datum/controller/subsystem/hijack/proc/on_generator_overload(obj/structure/machinery/power/fusion_engine/source, new_overloading) +/datum/controller/subsystem/hijack/proc/on_generator_overload(obj/structure/machinery/power/reactor/source, new_overloading) SIGNAL_HANDLER if(!generator_ever_overloaded) @@ -325,22 +327,22 @@ SUBSYSTEM_DEF(hijack) /datum/controller/subsystem/hijack/proc/heat_engine_room() engine_room_heated = TRUE - var/area/engine_room = GLOB.areas_by_type[/area/almayer/engineering/engine_core] + var/area/engine_room = GLOB.areas_by_type[/area/almayer/engineering/lower/engine_core] engine_room.firealert() engine_room.temperature = T90C for(var/mob/current_mob as anything in GLOB.mob_list) var/area/mob_area = get_area(current_mob) - if(istype(mob_area, /area/almayer/engineering/engine_core)) + if(istype(mob_area, /area/almayer/engineering/lower/engine_core)) to_chat(current_mob, SPAN_BOLDWARNING("You feel the heat of the room increase as the fusion engines whirr louder.")) /datum/controller/subsystem/hijack/proc/superheat_engine_room() engine_room_superheated = TRUE - var/area/engine_room = GLOB.areas_by_type[/area/almayer/engineering/engine_core] + var/area/engine_room = GLOB.areas_by_type[/area/almayer/engineering/lower/engine_core] engine_room.firealert() engine_room.temperature = T120C //slowly deals burn at this temp for(var/mob/current_mob as anything in GLOB.mob_list) var/area/mob_area = get_area(current_mob) - if(istype(mob_area, /area/almayer/engineering/engine_core)) + if(istype(mob_area, /area/almayer/engineering/lower/engine_core)) to_chat(current_mob, SPAN_BOLDWARNING("The room feels incredibly hot, you can't take much more of this!")) /datum/controller/subsystem/hijack/proc/announce_sd_halfway() diff --git a/code/controllers/subsystem/human.dm b/code/controllers/subsystem/human.dm index ffbbb7aa9240..3bc67c48a2be 100644 --- a/code/controllers/subsystem/human.dm +++ b/code/controllers/subsystem/human.dm @@ -10,15 +10,15 @@ SUBSYSTEM_DEF(human) /datum/controller/subsystem/human/stat_entry(msg) - msg = "P:[processable_human_list.len]" + msg = "P:[length(processable_human_list)]" return ..() /datum/controller/subsystem/human/fire(resumed = FALSE) if (!resumed) currentrun = processable_human_list.Copy() - while (currentrun.len) - var/mob/living/carbon/human/M = currentrun[currentrun.len] + while (length(currentrun)) + var/mob/living/carbon/human/M = currentrun[length(currentrun)] currentrun.len-- if (!M || QDELETED(M)) diff --git a/code/controllers/subsystem/init/landmarks.dm b/code/controllers/subsystem/init/landmarks.dm index 31b71c074a5d..1fdf83083833 100644 --- a/code/controllers/subsystem/init/landmarks.dm +++ b/code/controllers/subsystem/init/landmarks.dm @@ -47,14 +47,14 @@ SUBSYSTEM_DEF(landmark_init) message_admins("Item pool [pool.pool_name] has no master landmark, aborting item spawns. Tell the devs. Code: ITEM_POOL_3") continue - if (pool.quota > pool.turfs.len) - log_debug("Item pool [pool.pool_name] wants to spawn more items than it has landmarks for. Spawning [pool.turfs.len] instances of [pool.type_to_spawn] instead. Code: ITEM_POOL_4") - message_admins("Item pool [pool.pool_name] wants to spawn more items than it has landmarks for. Spawning [pool.turfs.len] instances of [pool.type_to_spawn] instead. Tell the devs. Code: ITEM_POOL_4") - pool.quota = pool.turfs.len + if (pool.quota > length(pool.turfs)) + log_debug("Item pool [pool.pool_name] wants to spawn more items than it has landmarks for. Spawning [length(pool.turfs)] instances of [pool.type_to_spawn] instead. Code: ITEM_POOL_4") + message_admins("Item pool [pool.pool_name] wants to spawn more items than it has landmarks for. Spawning [length(pool.turfs)] instances of [pool.type_to_spawn] instead. Tell the devs. Code: ITEM_POOL_4") + pool.quota = length(pool.turfs) // Quota times, pick a random turf, spawn an item there, then remove that turf from the list. for (var/i in 1 to pool.quota) - var/turf/T = pool.turfs[rand(1, pool.turfs.len)] + var/turf/T = pool.turfs[rand(1, length(pool.turfs))] var/atom/movable/newly_spawned = new pool.type_to_spawn() newly_spawned.forceMove(T) diff --git a/code/controllers/subsystem/input.dm b/code/controllers/subsystem/input.dm index 26d393d197b7..5dfd7bc5bbac 100644 --- a/code/controllers/subsystem/input.dm +++ b/code/controllers/subsystem/input.dm @@ -33,7 +33,7 @@ SUBSYSTEM_DEF(input) // Badmins just wanna have fun ♪ /datum/controller/subsystem/input/proc/refresh_client_macro_sets() var/list/clients = GLOB.clients - for(var/i in 1 to clients.len) + for(var/i in 1 to length(clients)) var/client/user = clients[i] INVOKE_ASYNC(user, /client/proc/set_macros) diff --git a/code/controllers/subsystem/interior.dm b/code/controllers/subsystem/interior.dm index 8abc3179f191..b0bacc7d2b72 100644 --- a/code/controllers/subsystem/interior.dm +++ b/code/controllers/subsystem/interior.dm @@ -15,14 +15,13 @@ SUBSYSTEM_DEF(interior) var/height_to_request = template.height + INTERIOR_BORDER_SIZE var/width_to_request = template.width + INTERIOR_BORDER_SIZE - var/datum/turf_reservation/reserved_area = SSmapping.RequestBlockReservation(width_to_request, height_to_request, type = /datum/turf_reservation/interior) + var/datum/turf_reservation/reserved_area = SSmapping.request_turf_block_reservation(width_to_request, height_to_request, reservation_type = /datum/turf_reservation/interior) - var/list/bottom_left = reserved_area.bottom_left_coords + var/turf/bottom_left = reserved_area.bottom_left_turfs[1] - var/list/bounds = template.load(locate(bottom_left[1] + (INTERIOR_BORDER_SIZE / 2), bottom_left[2] + (INTERIOR_BORDER_SIZE / 2), bottom_left[3]), centered = FALSE) + var/list/bounds = template.load(locate(bottom_left.x + (INTERIOR_BORDER_SIZE / 2), bottom_left.y + (INTERIOR_BORDER_SIZE / 2), bottom_left.z), centered = FALSE) - var/list/turfs = block( locate(bounds[MAP_MINX], bounds[MAP_MINY], bounds[MAP_MINZ]), - locate(bounds[MAP_MAXX], bounds[MAP_MAXY], bounds[MAP_MAXZ])) + var/list/turfs = block(bounds[MAP_MINX], bounds[MAP_MINY], bounds[MAP_MINZ], bounds[MAP_MAXX], bounds[MAP_MAXY], bounds[MAP_MAXZ]) var/list/areas = list() for(var/turf/current_turf as anything in turfs) @@ -51,12 +50,7 @@ SUBSYSTEM_DEF(interior) if(!isturf(loc)) loc = get_turf(loc) - var/datum/weakref/reservation_weakref = SSmapping.used_turfs[loc] - - if(!reservation_weakref) - return - - var/datum/turf_reservation/interior/reservation = reservation_weakref.resolve() + var/datum/turf_reservation/interior/reservation = SSmapping.used_turfs[loc] if(!istype(reservation)) return FALSE diff --git a/code/controllers/subsystem/item_cleanup.dm b/code/controllers/subsystem/item_cleanup.dm index 26958eb8742b..85c25e4712d3 100644 --- a/code/controllers/subsystem/item_cleanup.dm +++ b/code/controllers/subsystem/item_cleanup.dm @@ -18,9 +18,9 @@ SUBSYSTEM_DEF(item_cleanup) //Do nothing for the first 35 minutes to preserve the colony look for the first drop return - var/to_delete = items_to_clean_up.len * percentage_of_garbage_to_delete + var/to_delete = length(items_to_clean_up) * percentage_of_garbage_to_delete var/deleted = 0 - var/total_items = items_to_clean_up.len //save total before we start deleting stuff + var/total_items = length(items_to_clean_up) //save total before we start deleting stuff for (var/atom/o in items_to_clean_up) if(QDELETED(o)) items_to_clean_up -= o @@ -34,9 +34,9 @@ SUBSYSTEM_DEF(item_cleanup) break //We transfer items from the global garbage list onto the next iteration list - while(!isnull(GLOB.item_cleanup_list) && GLOB.item_cleanup_list.len > 0) - addToListNoDupe(items_to_clean_up, GLOB.item_cleanup_list[GLOB.item_cleanup_list.len]) - GLOB.item_cleanup_list -= GLOB.item_cleanup_list[GLOB.item_cleanup_list.len] + while(!isnull(GLOB.item_cleanup_list) && length(GLOB.item_cleanup_list) > 0) + addToListNoDupe(items_to_clean_up, GLOB.item_cleanup_list[length(GLOB.item_cleanup_list)]) + GLOB.item_cleanup_list -= GLOB.item_cleanup_list[length(GLOB.item_cleanup_list)] log_debug("item_cleanup deleted [deleted] garbage out of total [total_items]") diff --git a/code/controllers/subsystem/lighting.dm b/code/controllers/subsystem/lighting.dm index 3c3d14468bc2..f8c6b14e6bf7 100644 --- a/code/controllers/subsystem/lighting.dm +++ b/code/controllers/subsystem/lighting.dm @@ -27,7 +27,7 @@ SUBSYSTEM_DEF(lighting) /datum/controller/subsystem/lighting/stat_entry() - . = ..("ShCalcs:[total_shadow_calculations]|SourcQ:[static_sources_queue.len]|CcornQ:[corners_queue.len]|ObjQ:[objects_queue.len]|HybrQ:[mask_queue.len]") + . = ..("ShCalcs:[total_shadow_calculations]|SourcQ:[length(static_sources_queue)]|CcornQ:[length(corners_queue)]|ObjQ:[length(objects_queue)]|HybrQ:[length(mask_queue)]") /datum/controller/subsystem/lighting/fire(resumed, init_tick_checks) MC_SPLIT_TICK_INIT(3) diff --git a/code/controllers/subsystem/machinery.dm b/code/controllers/subsystem/machinery.dm index 6a0f938475a1..a2860615274f 100644 --- a/code/controllers/subsystem/machinery.dm +++ b/code/controllers/subsystem/machinery.dm @@ -19,15 +19,15 @@ SUBSYSTEM_DEF(machinery) return SS_INIT_SUCCESS /datum/controller/subsystem/machinery/stat_entry(msg) - msg = "M:[GLOB.processing_machines.len]" + msg = "M:[length(GLOB.processing_machines)]" return ..() /datum/controller/subsystem/machinery/fire(resumed = FALSE) if (!resumed) currentrunmachines = GLOB.processing_machines.Copy() - while (currentrunmachines.len) - var/obj/structure/machinery/M = currentrunmachines[currentrunmachines.len] + while (length(currentrunmachines)) + var/obj/structure/machinery/M = currentrunmachines[length(currentrunmachines)] currentrunmachines.len-- if (!M || QDELETED(M)) diff --git a/code/controllers/subsystem/mapping.dm b/code/controllers/subsystem/mapping.dm index 0f4a63ff65e8..0d8848217d4f 100644 --- a/code/controllers/subsystem/mapping.dm +++ b/code/controllers/subsystem/mapping.dm @@ -1,7 +1,7 @@ SUBSYSTEM_DEF(mapping) name = "Mapping" init_order = SS_INIT_MAPPING - flags = SS_NO_FIRE + runlevels = ALL var/list/datum/map_config/configs var/list/datum/map_config/next_map_configs @@ -19,16 +19,27 @@ SUBSYSTEM_DEF(mapping) var/list/turf/unused_turfs = list() //Not actually unused turfs they're unused but reserved for use for whatever requests them. "[zlevel_of_turf]" = list(turfs) var/list/datum/turf_reservations //list of turf reservations var/list/used_turfs = list() //list of turf = datum/turf_reservation + /// List of lists of turfs to reserve + var/list/lists_to_reserve = list() var/list/reservation_ready = list() var/clearing_reserved_turfs = FALSE // Z-manager stuff var/ground_start // should only be used for maploading-related tasks - var/list/z_list + ///list of all z level datums in the order of their z (z level 1 is at index 1, etc.) + var/list/datum/space_level/z_list var/datum/space_level/transit var/num_of_res_levels = 1 + /// True when in the process of adding a new Z-level, global locking + var/adding_new_zlevel = FALSE + /// list of traits and their associated z leves + var/list/z_trait_levels = list() + + /// list of lazy templates that have been loaded + var/list/loaded_lazy_templates + //dlete dis once #39770 is resolved /datum/controller/subsystem/mapping/proc/HACK_LoadMapConfig() if(!configs) @@ -52,14 +63,10 @@ SUBSYSTEM_DEF(mapping) loadWorld() repopulate_sorted_areas() preloadTemplates() - // Add the transit level - transit = add_new_zlevel("Transit/Reserved", list(ZTRAIT_RESERVED = TRUE)) - initialize_reserved_level(transit.z_value) + // Add the first transit level + var/datum/space_level/base_transit = add_reservation_zlevel() + initialize_reserved_level(base_transit.z_value) repopulate_sorted_areas() - for(var/maptype as anything in configs) - var/datum/map_config/MC = configs[maptype] - if(MC.perf_mode) - GLOB.perf_flags |= MC.perf_mode if(configs[GROUND_MAP]) send2chat(new /datum/tgs_message_content("<@&[CONFIG_GET(string/new_round_alert_role_id)]> Round restarted! Map is [configs[GROUND_MAP].map_name]"), CONFIG_GET(string/new_round_alert_channel)) @@ -68,21 +75,60 @@ SUBSYSTEM_DEF(mapping) return SS_INIT_SUCCESS +/datum/controller/subsystem/mapping/fire(resumed) + // Cache for sonic speed + var/list/unused_turfs = src.unused_turfs + // CM TODO: figure out if these 2 are needed. Might be required by updated versions of map reader + //var/list/world_contents = GLOB.areas_by_type[world.area].contents + //var/list/world_turf_contents = GLOB.areas_by_type[world.area].contained_turfs + var/list/lists_to_reserve = src.lists_to_reserve + var/index = 0 + while(index < length(lists_to_reserve)) + var/list/packet = lists_to_reserve[index + 1] + var/packetlen = length(packet) + while(packetlen) + if(MC_TICK_CHECK) + if(index) + lists_to_reserve.Cut(1, index) + return + var/turf/T = packet[packetlen] + T.empty(RESERVED_TURF_TYPE, RESERVED_TURF_TYPE, null, TRUE) + LAZYINITLIST(unused_turfs["[T.z]"]) + unused_turfs["[T.z]"] |= T + //var/area/old_area = T.loc + //old_area.turfs_to_uncontain += T + T.turf_flags = UNUSED_RESERVATION_TURF + //world_contents += T + //world_turf_contents += T + packet.len-- + packetlen = length(packet) + + index++ + lists_to_reserve.Cut(1, index) + /datum/controller/subsystem/mapping/proc/wipe_reservations(wipe_safety_delay = 100) if(clearing_reserved_turfs || !initialized) //in either case this is just not needed. return clearing_reserved_turfs = TRUE message_admins("Clearing dynamic reservation space.") + // /tg/ Shuttles have extra handling here to avoid them being desallocated do_wipe_turf_reservations() clearing_reserved_turfs = FALSE +/datum/controller/subsystem/mapping/proc/get_reservation_from_turf(turf/T) + RETURN_TYPE(/datum/turf_reservation) + return used_turfs[T] + /datum/controller/subsystem/mapping/Recover() flags |= SS_NO_INIT initialized = SSmapping.initialized map_templates = SSmapping.map_templates + + shuttle_templates = SSmapping.shuttle_templates unused_turfs = SSmapping.unused_turfs turf_reservations = SSmapping.turf_reservations used_turfs = SSmapping.used_turfs + areas_in_z = SSmapping.areas_in_z configs = SSmapping.configs next_map_configs = SSmapping.next_map_configs @@ -115,29 +161,44 @@ SUBSYSTEM_DEF(mapping) if (!length(traits)) // null or empty - default for (var/i in 1 to total_z) traits += list(default_traits) - else if (total_z != traits.len) // mismatch - INIT_ANNOUNCE("WARNING: [traits.len] trait sets specified for [total_z] z-levels in [path]!") - if (total_z < traits.len) // ignore extra traits + else if (total_z != length(traits)) // mismatch + INIT_ANNOUNCE("WARNING: [length(traits)] trait sets specified for [total_z] z-levels in [path]!") + if (total_z < length(traits)) // ignore extra traits traits.Cut(total_z + 1) - while (total_z > traits.len) // fall back to defaults on extra levels + while (total_z > length(traits)) // fall back to defaults on extra levels traits += list(default_traits) // preload the relevant space_level datums var/start_z = world.maxz + 1 var/i = 0 for (var/level in traits) - add_new_zlevel("[name][i ? " [i + 1]" : ""]", level) + add_new_zlevel("[name][i ? " [i + 1]" : ""]", level, contain_turfs = FALSE) ++i + // ================== CM Change ================== + // For some reason /tg/ SSmapping attempts to center the map in new Z-Level + // but because it's done before loading, it's calculated before performing + // X/Y world expansion. When loading a map bigger than world, this results + // in a negative offset and the start of the map to not be loaded. + // load the maps for (var/datum/parsed_map/pm as anything in parsed_maps) - var/cur_z = start_z + parsed_maps[pm] - if (!pm.load(1, 1, cur_z, no_changeturf = TRUE)) + var/bounds = pm.bounds + var/x_offset = 1 + var/y_offset = 1 + if(bounds && world.maxx > bounds[MAP_MAXX]) + x_offset = floor(world.maxx / 2 - bounds[MAP_MAXX] / 2) + 1 + if(bounds && world.maxy > bounds[MAP_MAXY]) + y_offset = floor(world.maxy / 2 - bounds[MAP_MAXY] / 2) + 1 + if (!pm.load(x_offset, y_offset, start_z + parsed_maps[pm], no_changeturf = TRUE, new_z = TRUE)) errorList |= pm.original_path - if(istype(z_list[cur_z], /datum/space_level)) - var/datum/space_level/cur_level = z_list[cur_z] - cur_level.x_bounds = pm.bounds[MAP_MAXX] - cur_level.y_bounds = pm.bounds[MAP_MAXY] + // CM Snowflake for Mass Screenshot dimensions auto detection + for(var/z in bounds[MAP_MINZ] to bounds[MAP_MAXZ]) + var/datum/space_level/zlevel = z_list[start_z + z - 1] + zlevel.bounds = list(bounds[MAP_MINX], bounds[MAP_MINY], z, bounds[MAP_MAXX], bounds[MAP_MAXY], z) + + // =============== END CM Change ================= + if(!silent) INIT_ANNOUNCE("Loaded [name] in [(REALTIMEOFDAY - start_time)/10]s!") return parsed_maps @@ -175,8 +236,8 @@ SUBSYSTEM_DEF(mapping) 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(FailedZs.len > 1) - for(var/I in 2 to FailedZs.len) + if(length(FailedZs) > 1) + for(var/I in 2 to length(FailedZs)) msg += ", [FailedZs[I]]" msg += ". Yell at your server host!" INIT_ANNOUNCE(msg) @@ -215,7 +276,7 @@ SUBSYSTEM_DEF(mapping) . = list() var/list/Lines = file2list(filename) - if(!Lines.len) + if(!length(Lines)) return for (var/t in Lines) if (!t) @@ -256,66 +317,76 @@ SUBSYSTEM_DEF(mapping) var/datum/map_template/tent/new_tent = new template() tent_type_templates[new_tent.map_id] = new_tent -/datum/controller/subsystem/mapping/proc/RequestBlockReservation(width, height, z, type = /datum/turf_reservation, turf_type_override) - UNTIL(initialized && !clearing_reserved_turfs) - var/datum/turf_reservation/reserve = new type - if(turf_type_override) +/// Adds a new reservation z level. A bit of space that can be handed out on request +/// Of note, reservations default to transit turfs, to make their most common use, shuttles, faster +/datum/controller/subsystem/mapping/proc/add_reservation_zlevel(for_shuttles) + num_of_res_levels++ + return add_new_zlevel("Transit/Reserved #[num_of_res_levels]", list(ZTRAIT_RESERVED = TRUE)) + +/// Requests a /datum/turf_reservation based on the given width, height, and z_size. You can specify a z_reservation to use a specific z level, or leave it null to use any z level. +/datum/controller/subsystem/mapping/proc/request_turf_block_reservation( + width, + height, + z_size = 1, + z_reservation = null, + reservation_type = /datum/turf_reservation, + turf_type_override = null, +) + UNTIL((!z_reservation || reservation_ready["[z_reservation]"]) && !clearing_reserved_turfs) + var/datum/turf_reservation/reserve = new reservation_type + if(!isnull(turf_type_override)) reserve.turf_type = turf_type_override - if(!z) + if(!z_reservation) for(var/i in levels_by_trait(ZTRAIT_RESERVED)) - if(reserve.Reserve(width, height, i)) + if(reserve.reserve(width, height, z_size, i)) return reserve //If we didn't return at this point, theres a good chance we ran out of room on the exisiting reserved z levels, so lets try a new one - log_debug("Ran out of space in existing transit levels, adding a new one") - num_of_res_levels++ - var/datum/space_level/newReserved = add_new_zlevel("Transit/Reserved [num_of_res_levels]", list(ZTRAIT_RESERVED = TRUE)) + var/datum/space_level/newReserved = add_reservation_zlevel() initialize_reserved_level(newReserved.z_value) - for(var/i in levels_by_trait(ZTRAIT_RESERVED)) - if(reserve.Reserve(width, height, i)) - return reserve - CRASH("Despite adding a fresh reserved zlevel still failed to get a reservation") + if(reserve.reserve(width, height, z_size, newReserved.z_value)) + return reserve else - if(!level_trait(z, ZTRAIT_RESERVED)) - log_debug("Cannot block reserve on a non-ZTRAIT_RESERVED level") + if(!level_trait(z_reservation, ZTRAIT_RESERVED)) qdel(reserve) return else - if(reserve.Reserve(width, height, z)) + if(reserve.reserve(width, height, z_size, z_reservation)) return reserve - log_debug("unknown reservation failure") QDEL_NULL(reserve) -//This is not for wiping reserved levels, use wipe_reservations() for that. +///Sets up a z level as reserved +///This is not for wiping reserved levels, use wipe_reservations() for that. +///If this is called after SSatom init, it will call Initialize on all turfs on the passed z, as its name promises /datum/controller/subsystem/mapping/proc/initialize_reserved_level(z) UNTIL(!clearing_reserved_turfs) //regardless, lets add a check just in case. clearing_reserved_turfs = TRUE //This operation will likely clear any existing reservations, so lets make sure nothing tries to make one while we're doing it. if(!level_trait(z,ZTRAIT_RESERVED)) clearing_reserved_turfs = FALSE CRASH("Invalid z level prepared for reservations.") - var/turf/A = get_turf(locate(8,8,z)) - var/turf/B = get_turf(locate(world.maxx - 8,world.maxy - 8,z)) - var/block = block(A, B) - for(var/t in block) - // No need to empty() these, because it's world init and they're - // already /turf/open/space/basic. - var/turf/T = t - T.flags_atom |= UNUSED_RESERVATION_TURF + var/block = block(SHUTTLE_TRANSIT_BORDER, SHUTTLE_TRANSIT_BORDER, z, world.maxx - SHUTTLE_TRANSIT_BORDER, world.maxy - SHUTTLE_TRANSIT_BORDER, z) + for(var/turf/T as anything in block) + // No need to empty() these, because they just got created and are already /turf/open/space/basic. + T.turf_flags = UNUSED_RESERVATION_TURF + CHECK_TICK + + // Gotta create these suckers if we've not done so already + if(SSatoms.initialized) + SSatoms.InitializeAtoms(Z_TURFS(z)) + unused_turfs["[z]"] = block reservation_ready["[z]"] = TRUE clearing_reserved_turfs = FALSE -/datum/controller/subsystem/mapping/proc/reserve_turfs(list/turfs) - for(var/i in turfs) - var/turf/T = i - T.empty(RESERVED_TURF_TYPE, RESERVED_TURF_TYPE, null, TRUE) - LAZYINITLIST(unused_turfs["[T.z]"]) - unused_turfs["[T.z]"] |= T - T.flags_atom |= UNUSED_RESERVATION_TURF - GLOB.areas_by_type[world.area].contents += T - CHECK_TICK +/// Schedules a group of turfs to be handed back to the reservation system's control +/// If await is true, will sleep until the turfs are finished work +/datum/controller/subsystem/mapping/proc/reserve_turfs(list/turfs, await = FALSE) + lists_to_reserve += list(turfs) + if(await) + UNTIL(!length(turfs)) //DO NOT CALL THIS PROC DIRECTLY, CALL wipe_reservations(). /datum/controller/subsystem/mapping/proc/do_wipe_turf_reservations() + PRIVATE_PROC(TRUE) UNTIL(initialized) //This proc is for AFTER init, before init turf reservations won't even exist and using this will likely break things. for(var/i in turf_reservations) var/datum/turf_reservation/TR = i @@ -323,19 +394,28 @@ SUBSYSTEM_DEF(mapping) qdel(TR, TRUE) UNSETEMPTY(turf_reservations) var/list/clearing = list() - for(var/l in unused_turfs) //unused_turfs is a assoc list by z = list(turfs) + for(var/l in unused_turfs) //unused_turfs is an assoc list by z = list(turfs) if(islist(unused_turfs[l])) clearing |= unused_turfs[l] clearing |= used_turfs //used turfs is an associative list, BUT, reserve_turfs() can still handle it. If the code above works properly, this won't even be needed as the turfs would be freed already. unused_turfs.Cut() used_turfs.Cut() - reserve_turfs(clearing) + reserve_turfs(clearing, await = TRUE) /datum/controller/subsystem/mapping/proc/reg_in_areas_in_z(list/areas) for(var/B in areas) var/area/A = B A.reg_in_areas_in_z() +/// Takes a z level datum, and tells the mapping subsystem to manage it +/// Also handles things like plane offset generation, and other things that happen on a z level to z level basis +/datum/controller/subsystem/mapping/proc/manage_z_level(datum/space_level/new_z, filled_with_space, contain_turfs = TRUE) + // First, add the z + z_list += new_z + // Then we build our lookup lists + //var/z_value = new_z.z_value + //TODO: All the Z-plane init stuff goes below here normally, we don't have that yet + /// Gets a name for the marine ship as per the enabled ship map configuration /datum/controller/subsystem/mapping/proc/get_main_ship_name() if(!configs) @@ -344,3 +424,28 @@ SUBSYSTEM_DEF(mapping) if(!MC) return MAIN_SHIP_DEFAULT_NAME return MC.map_name + +/datum/controller/subsystem/mapping/proc/lazy_load_template(datum/lazy_template/template_to_load, force = FALSE) + RETURN_TYPE(/datum/turf_reservation) + + UNTIL(initialized) + var/static/lazy_loading = FALSE + UNTIL(!lazy_loading) + + lazy_loading = TRUE + . = _lazy_load_template(template_to_load, force) + lazy_loading = FALSE + return . + +/datum/controller/subsystem/mapping/proc/_lazy_load_template(datum/lazy_template/template_to_load, force = FALSE) + PRIVATE_PROC(TRUE) + + if(LAZYACCESS(loaded_lazy_templates, template_to_load) && !force) + var/datum/lazy_template/template = GLOB.lazy_templates[template_to_load] + return template.reservations[1] + LAZYSET(loaded_lazy_templates, template_to_load, TRUE) + + var/datum/lazy_template/target = GLOB.lazy_templates[template_to_load] + if(!target) + CRASH("Attempted to lazy load a template key that does not exist: '[template_to_load]'") + return target.lazy_load() diff --git a/code/controllers/subsystem/minimap.dm b/code/controllers/subsystem/minimap.dm index 64f4b92a1edd..8c2cbc7c5ee7 100644 --- a/code/controllers/subsystem/minimap.dm +++ b/code/controllers/subsystem/minimap.dm @@ -1,3 +1,6 @@ +#define CANVAS_COOLDOWN_TIME 4 MINUTES +#define FLATTEN_MAP_COOLDOWN_TIME 3 MINUTES + /** * # Minimaps subsystem * @@ -85,8 +88,8 @@ SUBSYSTEM_DEF(minimaps) else if(yval < smallest_y) smallest_y = yval - minimaps_by_z["[level]"].x_offset = FLOOR((SCREEN_PIXEL_SIZE-largest_x-smallest_x) / MINIMAP_SCALE, 1) - minimaps_by_z["[level]"].y_offset = FLOOR((SCREEN_PIXEL_SIZE-largest_y-smallest_y) / MINIMAP_SCALE, 1) + minimaps_by_z["[level]"].x_offset = floor((SCREEN_PIXEL_SIZE-largest_x-smallest_x) / MINIMAP_SCALE) + minimaps_by_z["[level]"].y_offset = floor((SCREEN_PIXEL_SIZE-largest_y-smallest_y) / MINIMAP_SCALE) icon_gen.Shift(EAST, minimaps_by_z["[level]"].x_offset) icon_gen.Shift(NORTH, minimaps_by_z["[level]"].y_offset) @@ -179,7 +182,7 @@ SUBSYSTEM_DEF(minimaps) * the raw lists are to speed up the Fire() of the subsystem so we dont have to filter through * WARNING! * There is a byond bug: http://www.byond.com/forum/post/2661309 - * That that forces us to use a seperate list ref when accessing the lists of this datum + * That that forces us to use a separate list ref when accessing the lists of this datum * Yea it hurts me too */ /datum/hud_displays @@ -438,11 +441,11 @@ SUBSYSTEM_DEF(minimaps) if(faction == FACTION_MARINE) if(!COOLDOWN_FINISHED(GLOB, uscm_flatten_map_icon_cooldown)) return FALSE - COOLDOWN_START(GLOB, uscm_flatten_map_icon_cooldown, flatten_map_cooldown_time) + COOLDOWN_START(GLOB, uscm_flatten_map_icon_cooldown, FLATTEN_MAP_COOLDOWN_TIME) else if(faction == XENO_HIVE_NORMAL) if(!COOLDOWN_FINISHED(GLOB, xeno_flatten_map_icon_cooldown)) return FALSE - COOLDOWN_START(GLOB, xeno_flatten_map_icon_cooldown, flatten_map_cooldown_time) + COOLDOWN_START(GLOB, xeno_flatten_map_icon_cooldown, FLATTEN_MAP_COOLDOWN_TIME) else return FALSE @@ -500,6 +503,8 @@ SUBSYSTEM_DEF(minimaps) qdel(svg_store_overlay) debug_log("SVG coordinates for [faction] are not implemented!") +#define can_draw(faction, user) ((faction == FACTION_MARINE && skillcheck(user, SKILL_LEADERSHIP, SKILL_LEAD_EXPERT)) || (faction == XENO_HIVE_NORMAL && isqueen(user))) + /datum/controller/subsystem/minimaps/proc/fetch_tacmap_datum(zlevel, flags) var/hash = "[zlevel]-[flags]" if(hashed_tacmaps[hash]) @@ -580,6 +585,8 @@ SUBSYSTEM_DEF(minimaps) owner?.client?.remove_from_screen(map) minimap_displayed = FALSE + UnregisterSignal(target, COMSIG_MOVABLE_Z_CHANGED) + /** * Updates the map when the owner changes zlevel */ @@ -625,9 +632,6 @@ SUBSYSTEM_DEF(minimaps) var/toolbar_color_selection = "black" var/toolbar_updated_selection = "black" - var/canvas_cooldown_time = 4 MINUTES - var/flatten_map_cooldown_time = 3 MINUTES - /// boolean value to keep track if the canvas has been updated or not, the value is used in tgui state. var/updated_canvas = FALSE /// current flattend map @@ -681,6 +685,7 @@ SUBSYSTEM_DEF(minimaps) user.client.register_map_obj(map_holder.map) ui = new(user, src, "TacticalMap") ui.open() + RegisterSignal(user.mind, COMSIG_MIND_TRANSFERRED, PROC_REF(on_mind_transferred)) /datum/tacmap/drawing/tgui_interact(mob/user, datum/tgui/ui) var/mob/living/carbon/xenomorph/xeno = user @@ -689,6 +694,11 @@ SUBSYSTEM_DEF(minimaps) if(faction == FACTION_NEUTRAL && isobserver(user)) faction = allowed_flags == MINIMAP_FLAG_XENO ? XENO_HIVE_NORMAL : FACTION_MARINE + if(is_xeno && xeno.hive.see_humans_on_tacmap && targeted_ztrait != ZTRAIT_MARINE_MAIN_SHIP) + allowed_flags |= MINIMAP_FLAG_USCM|MINIMAP_FLAG_PMC|MINIMAP_FLAG_UPP|MINIMAP_FLAG_CLF + targeted_ztrait = ZTRAIT_MARINE_MAIN_SHIP + map_holder = null + new_current_map = get_unannounced_tacmap_data_png(faction) old_map = get_tacmap_data_png(faction) current_svg = get_tacmap_data_svg(faction) @@ -719,6 +729,7 @@ SUBSYSTEM_DEF(minimaps) tacmap_ready_time = SSminimaps.next_fire + 2 SECONDS addtimer(CALLBACK(src, PROC_REF(on_tacmap_fire), faction), SSminimaps.next_fire - world.time + 1 SECONDS) user.client.register_map_obj(map_holder.map) + RegisterSignal(user.mind, COMSIG_MIND_TRANSFERRED, PROC_REF(on_mind_transferred)) ui = new(user, src, "TacticalMap") ui.open() @@ -740,7 +751,6 @@ SUBSYSTEM_DEF(minimaps) else data["canvasCooldown"] = max(GLOB.uscm_canvas_cooldown - world.time, 0) - data["nextCanvasTime"] = canvas_cooldown_time data["updatedCanvas"] = updated_canvas data["lastUpdateTime"] = last_update_time @@ -750,17 +760,19 @@ SUBSYSTEM_DEF(minimaps) /datum/tacmap/ui_static_data(mob/user) var/list/data = list() + data["mapRef"] = map_holder?.map_ref data["canDraw"] = FALSE data["canViewTacmap"] = TRUE data["canViewCanvas"] = FALSE - data["isXeno"] = FALSE + data["isxeno"] = FALSE return data /datum/tacmap/drawing/ui_static_data(mob/user) var/list/data = list() + data["canvasCooldownDuration"] = CANVAS_COOLDOWN_TIME data["mapRef"] = map_holder?.map_ref data["canDraw"] = FALSE data["mapFallback"] = wiki_map_fallback @@ -769,11 +781,11 @@ SUBSYSTEM_DEF(minimaps) var/is_xeno = istype(xeno) var/faction = is_xeno ? xeno.hivenumber : user.faction - data["isXeno"] = is_xeno + data["isxeno"] = is_xeno data["canViewTacmap"] = is_xeno data["canViewCanvas"] = faction == FACTION_MARINE || faction == XENO_HIVE_NORMAL - if(faction == FACTION_MARINE && skillcheck(user, SKILL_LEADERSHIP, SKILL_LEAD_EXPERT) || faction == XENO_HIVE_NORMAL && isqueen(user)) + if(can_draw(faction, user)) data["canDraw"] = TRUE data["canViewTacmap"] = TRUE @@ -781,24 +793,31 @@ SUBSYSTEM_DEF(minimaps) /datum/tacmap/drawing/status_tab_view/ui_static_data(mob/user) var/list/data = list() + + data["canvasCooldownDuration"] = CANVAS_COOLDOWN_TIME data["mapFallback"] = wiki_map_fallback data["canDraw"] = FALSE data["canViewTacmap"] = FALSE data["canViewCanvas"] = TRUE - data["isXeno"] = FALSE + data["isxeno"] = FALSE return data /datum/tacmap/drawing/status_tab_view/xeno/ui_static_data(mob/user) var/list/data = list() + + data["canvasCooldownDuration"] = CANVAS_COOLDOWN_TIME data["mapFallback"] = wiki_map_fallback data["canDraw"] = FALSE data["canViewTacmap"] = FALSE data["canViewCanvas"] = TRUE - data["isXeno"] = TRUE + data["isxeno"] = TRUE return data +/datum/tacmap/ui_close(mob/user) + UnregisterSignal(user.mind, COMSIG_MIND_TRANSFERRED) + /datum/tacmap/drawing/ui_close(mob/user) . = ..() action_queue_change = 0 @@ -814,16 +833,21 @@ SUBSYSTEM_DEF(minimaps) var/mob/user = ui.user var/mob/living/carbon/xenomorph/xeno = user var/faction = istype(xeno) ? xeno.hivenumber : user.faction - if(faction == FACTION_NEUTRAL && isobserver(user)) + var/is_observer = isobserver(user) + if(faction == FACTION_NEUTRAL && is_observer) faction = allowed_flags == MINIMAP_FLAG_XENO ? XENO_HIVE_NORMAL : FACTION_MARINE + var/drawing_allowed = !is_observer && can_draw(faction, user) switch (action) if ("menuSelect") - if(params["selection"] != "new canvas") + if(params["selection"] != "Canvas") if(updated_canvas) updated_canvas = FALSE toolbar_updated_selection = toolbar_color_selection // doing this if it == canvas can cause a latency issue with the stroke. else + if(!drawing_allowed) + msg_admin_niche("[key_name(user)] made an unauthorized attempt to 'menuSelect' the 'new canvas' panel of the [faction] tacmap!") + return FALSE distribute_current_map_png(faction) last_update_time = world.time // An attempt to get the image to load on first try in the interface, but doesn't seem always reliable @@ -832,60 +856,68 @@ SUBSYSTEM_DEF(minimaps) old_map = get_tacmap_data_png(faction) current_svg = get_tacmap_data_svg(faction) - if ("updateCanvas") - // forces state change, this will export the svg. + if("updateCanvas") toolbar_updated_selection = "export" updated_canvas = TRUE action_queue_change += 1 - if ("clearCanvas") + if("clearCanvas") toolbar_updated_selection = "clear" updated_canvas = FALSE action_queue_change += 1 - if ("undoChange") + if("undoChange") toolbar_updated_selection = "undo" updated_canvas = FALSE action_queue_change += 1 - if ("selectColor") + if("selectColor") var/newColor = params["color"] if(newColor) toolbar_color_selection = newColor toolbar_updated_selection = newColor action_queue_change += 1 - if ("onDraw") + if("onDraw") updated_canvas = FALSE - if ("selectAnnouncement") + if("selectAnnouncement") + if(!drawing_allowed) + msg_admin_niche("[key_name(user)] made an unauthorized attempt to 'selectAnnouncement' the [faction] tacmap!") + return FALSE + if(!istype(params["image"], /list)) // potentially very serious? return FALSE + var/cooldown_satisfied = FALSE if(faction == FACTION_MARINE) - GLOB.uscm_flat_tacmap_data += new_current_map + cooldown_satisfied = COOLDOWN_FINISHED(GLOB, uscm_canvas_cooldown) else if(faction == XENO_HIVE_NORMAL) - GLOB.xeno_flat_tacmap_data += new_current_map - - store_current_svg_coords(faction, params["image"], user) - current_svg = get_tacmap_data_svg(faction) - old_map = get_tacmap_data_png(faction) + cooldown_satisfied = COOLDOWN_FINISHED(GLOB, xeno_canvas_cooldown) + if(!cooldown_satisfied) + msg_admin_niche("[key_name(user)] attempted to 'selectAnnouncement' the [faction] tacmap while it is still on cooldown!") + return FALSE if(faction == FACTION_MARINE) - COOLDOWN_START(GLOB, uscm_canvas_cooldown, canvas_cooldown_time) - var/mob/living/carbon/human/human_leader = user + GLOB.uscm_flat_tacmap_data += new_current_map + COOLDOWN_START(GLOB, uscm_canvas_cooldown, CANVAS_COOLDOWN_TIME) for(var/datum/squad/current_squad in GLOB.RoleAuthority.squads) current_squad.send_maptext("Tactical map update in progress...", "Tactical Map:") + var/mob/living/carbon/human/human_leader = user human_leader.visible_message(SPAN_BOLDNOTICE("Tactical map update in progress...")) - playsound_client(human_leader.client, "sound/effects/sos-morse-code.ogg") - notify_ghosts(header = "Tactical Map", message = "The USCM tactical map has been updated.", ghost_sound = "sound/effects/sos-morse-code.ogg", notify_volume = 80, action = NOTIFY_USCM_TACMAP, enter_link = "uscm_tacmap=1", enter_text = "View", source = owner) - + playsound_client(human_leader.client, "sound/effects/data-transmission.ogg") + notify_ghosts(header = "Tactical Map", message = "The USCM tactical map has been updated.", ghost_sound = "sound/effects/data-transmission.ogg", notify_volume = 80, action = NOTIFY_USCM_TACMAP, enter_link = "uscm_tacmap=1", enter_text = "View", source = owner) else if(faction == XENO_HIVE_NORMAL) + GLOB.xeno_flat_tacmap_data += new_current_map + COOLDOWN_START(GLOB, xeno_canvas_cooldown, CANVAS_COOLDOWN_TIME) + xeno_maptext("The Queen has updated our hive mind map", "We sense something unusual...", faction) var/mutable_appearance/appearance = mutable_appearance(icon('icons/mob/hud/actions_xeno.dmi'), "toggle_queen_zoom") - COOLDOWN_START(GLOB, xeno_canvas_cooldown, canvas_cooldown_time) - xeno_maptext("The Queen has updated your hive mind map", "You sense something unusual...", faction) notify_ghosts(header = "Tactical Map", message = "The Xenomorph tactical map has been updated.", ghost_sound = "sound/voice/alien_distantroar_3.ogg", notify_volume = 50, action = NOTIFY_XENO_TACMAP, enter_link = "xeno_tacmap=1", enter_text = "View", source = user, alert_overlay = appearance) + store_current_svg_coords(faction, params["image"], user) + current_svg = get_tacmap_data_svg(faction) + old_map = get_tacmap_data_png(faction) + toolbar_updated_selection = toolbar_color_selection message_admins("[key_name(user)] has updated the tactical map for [faction].") updated_canvas = FALSE @@ -914,6 +946,11 @@ SUBSYSTEM_DEF(minimaps) return UI_INTERACTIVE +// This gets removed when the player changes bodies (i.e. xeno evolution), so re-register it when that happens. +/datum/tacmap/proc/on_mind_transferred(datum/mind/source, mob/previous_body) + SIGNAL_HANDLER + source.current.client.register_map_obj(map_holder.map) + /datum/tacmap_holder var/map_ref var/atom/movable/screen/minimap/map @@ -995,3 +1032,7 @@ SUBSYSTEM_DEF(minimaps) if(XENO_HIVE_RENEGADE) return MINIMAP_FLAG_XENO_RENEGADE return 0 + +#undef CANVAS_COOLDOWN_TIME +#undef FLATTEN_MAP_COOLDOWN_TIME +#undef can_draw diff --git a/code/controllers/subsystem/mob.dm b/code/controllers/subsystem/mob.dm index 60e7476da89b..3596b17e5d16 100644 --- a/code/controllers/subsystem/mob.dm +++ b/code/controllers/subsystem/mob.dm @@ -8,7 +8,7 @@ SUBSYSTEM_DEF(mob) var/list/living_misc_mobs = list() /datum/controller/subsystem/mob/stat_entry(msg) - msg = "P:[living_misc_mobs.len]" + msg = "P:[length(living_misc_mobs)]" return ..() @@ -16,8 +16,8 @@ SUBSYSTEM_DEF(mob) if (!resumed) currentrun = living_misc_mobs.Copy() - while (currentrun.len) - var/mob/living/M = currentrun[currentrun.len] + while (length(currentrun)) + var/mob/living/M = currentrun[length(currentrun)] currentrun.len-- if (!M || QDELETED(M)) diff --git a/code/controllers/subsystem/nanoui.dm b/code/controllers/subsystem/nanoui.dm index 85ad0d32aaf4..b0117016e38b 100644 --- a/code/controllers/subsystem/nanoui.dm +++ b/code/controllers/subsystem/nanoui.dm @@ -13,15 +13,15 @@ SUBSYSTEM_DEF(nano) nanomanager = new() /datum/controller/subsystem/nano/stat_entry(msg) - msg = "P:[nanomanager.processing_uis.len]" + msg = "P:[length(nanomanager.processing_uis)]" return ..() /datum/controller/subsystem/nano/fire(resumed = FALSE) if (!resumed) currentrun = nanomanager.processing_uis.Copy() - while (currentrun.len) - var/datum/nanoui/UI = currentrun[currentrun.len] + while (length(currentrun)) + var/datum/nanoui/UI = currentrun[length(currentrun)] currentrun.len-- if (!UI || QDELETED(UI)) diff --git a/code/controllers/subsystem/objectives_controller.dm b/code/controllers/subsystem/objectives_controller.dm index a858dff07475..38accda46004 100644 --- a/code/controllers/subsystem/objectives_controller.dm +++ b/code/controllers/subsystem/objectives_controller.dm @@ -96,6 +96,7 @@ SUBSYSTEM_DEF(objectives) ai_silent_announcement(message, ":v", TRUE) ai_silent_announcement(message, ":t", TRUE) + log_ares_tech(MAIN_AI_SYSTEM, FALSE, "TECH REPORT", "[round(tree.points, 0.1)] points available.", 0) tree.total_points_last_sitrep = tree.total_points next_sitrep = world.time + SITREP_INTERVAL diff --git a/code/controllers/subsystem/perf_logging.dm b/code/controllers/subsystem/perf_logging.dm index 5ca98ad10dd0..4a3066b758ba 100644 --- a/code/controllers/subsystem/perf_logging.dm +++ b/code/controllers/subsystem/perf_logging.dm @@ -26,8 +26,8 @@ SUBSYSTEM_DEF(perf_logging) if(SS?.cost > 0.1) currentrun += SS - while(currentrun.len) - var/datum/controller/subsystem/SS = currentrun[currentrun.len] + while(length(currentrun)) + var/datum/controller/subsystem/SS = currentrun[length(currentrun)] currentrun.len-- var/datum/entity/mc_controller/C = controller_assoc[SS.type] new_record(SS, C) diff --git a/code/controllers/subsystem/ping.dm b/code/controllers/subsystem/ping.dm index c813081ed526..5d413c128684 100644 --- a/code/controllers/subsystem/ping.dm +++ b/code/controllers/subsystem/ping.dm @@ -14,7 +14,7 @@ SUBSYSTEM_DEF(ping) var/list/currentrun = list() /datum/controller/subsystem/ping/stat_entry() - ..("P:[GLOB.clients.len]") + ..("P:[length(GLOB.clients)]") /datum/controller/subsystem/ping/fire(resumed = FALSE) // Prepare the new batch of clients @@ -24,8 +24,8 @@ SUBSYSTEM_DEF(ping) // De-reference the list for sanic speeds var/list/currentrun = src.currentrun - while (currentrun.len) - var/client/client = currentrun[currentrun.len] + while (length(currentrun)) + var/client/client = currentrun[length(currentrun)] currentrun.len-- if (client?.tgui_panel?.is_ready()) diff --git a/code/controllers/subsystem/playtime.dm b/code/controllers/subsystem/playtime.dm index 7a6d3b97a036..6813c4fabd78 100644 --- a/code/controllers/subsystem/playtime.dm +++ b/code/controllers/subsystem/playtime.dm @@ -12,8 +12,8 @@ SUBSYSTEM_DEF(playtime) var/list/currentrun = src.currentrun - while (currentrun.len) - var/client/C = currentrun[currentrun.len] + while (length(currentrun)) + var/client/C = currentrun[length(currentrun)] currentrun.len-- var/mob/M = C.mob diff --git a/code/controllers/subsystem/police_clues.dm b/code/controllers/subsystem/police_clues.dm index 134eae9bca9e..0d39c72c874d 100644 --- a/code/controllers/subsystem/police_clues.dm +++ b/code/controllers/subsystem/police_clues.dm @@ -8,15 +8,15 @@ SUBSYSTEM_DEF(clues) var/list/prints_list = list() /datum/controller/subsystem/clues/stat_entry(msg) - msg = "P:[prints_list.len]" + msg = "P:[length(prints_list)]" return ..() /datum/controller/subsystem/clues/fire(resumed = FALSE) if(!resumed && length(prints_list)) currentrun = prints_list.Copy() - while(currentrun.len) - var/obj/effect/decal/prints/P = currentrun[currentrun.len] + while(length(currentrun)) + var/obj/effect/decal/prints/P = currentrun[length(currentrun)] currentrun.len-- if(!P || QDELETED(P)) diff --git a/code/controllers/subsystem/power.dm b/code/controllers/subsystem/power.dm index 9908a60420b2..08668e5fc564 100644 --- a/code/controllers/subsystem/power.dm +++ b/code/controllers/subsystem/power.dm @@ -12,7 +12,7 @@ SUBSYSTEM_DEF(power) var/list/currentrun_areas = list() /datum/controller/subsystem/power/stat_entry(msg) - msg = "PN:[GLOB.powernets.len]|PM:[GLOB.power_machines.len]|A:[GLOB.active_areas.len]" + msg = "PN:[length(GLOB.powernets)]|PM:[length(GLOB.power_machines)]|A:[length(GLOB.active_areas)]" return ..() @@ -29,8 +29,8 @@ SUBSYSTEM_DEF(power) // First we reset the powernets. // This is done first because we want the power machinery to have acted last on the powernet between intervals. - while(currentrun_powerents.len) - var/datum/powernet/Powernet = currentrun_powerents[currentrun_powerents.len] + while(length(currentrun_powerents)) + var/datum/powernet/Powernet = currentrun_powerents[length(currentrun_powerents)] currentrun_powerents.len-- if(Powernet) Powernet.process() @@ -39,8 +39,8 @@ SUBSYSTEM_DEF(power) // Next we let the power machines operate, this way until the next tick it will be as if they have all done their work. - while (currentrun_power_machines.len) - var/datum/X = currentrun_power_machines[currentrun_power_machines.len] + while (length(currentrun_power_machines)) + var/datum/X = currentrun_power_machines[length(currentrun_power_machines)] currentrun_power_machines.len-- if (!X || QDELETED(X)) continue diff --git a/code/controllers/subsystem/processing/effects.dm b/code/controllers/subsystem/processing/effects.dm index 5dc9c5f7b9c2..095d557c1ad3 100644 --- a/code/controllers/subsystem/processing/effects.dm +++ b/code/controllers/subsystem/processing/effects.dm @@ -1,5 +1,4 @@ PROCESSING_SUBSYSTEM_DEF(effects) name = "Effects" wait = 1 SECONDS - flags = SS_NO_INIT | SS_KEEP_TIMING priority = SS_PRIORITY_EFFECTS diff --git a/code/controllers/subsystem/processing/fasteffects.dm b/code/controllers/subsystem/processing/fasteffects.dm new file mode 100644 index 000000000000..29d3857916f9 --- /dev/null +++ b/code/controllers/subsystem/processing/fasteffects.dm @@ -0,0 +1,4 @@ +PROCESSING_SUBSYSTEM_DEF(fasteffects) + name = "Fast Effects" + wait = 0.2 SECONDS + priority = SS_PRIORITY_FASTEFFECTS diff --git a/code/controllers/subsystem/processing/obj_tab_items.dm b/code/controllers/subsystem/processing/obj_tab_items.dm index 53786daf0117..6be6bceab1eb 100644 --- a/code/controllers/subsystem/processing/obj_tab_items.dm +++ b/code/controllers/subsystem/processing/obj_tab_items.dm @@ -12,8 +12,8 @@ PROCESSING_SUBSYSTEM_DEF(obj_tab_items) //cache for sanic speed (lists are references anyways) var/list/current_run = currentrun - while(current_run.len) - var/datum/thing = current_run[current_run.len] + while(length(current_run)) + var/datum/thing = current_run[length(current_run)] if(QDELETED(thing)) processing -= thing else if(thing.process(wait * 0.1) == PROCESS_KILL) diff --git a/code/controllers/subsystem/processing/oldeffects.dm b/code/controllers/subsystem/processing/oldeffects.dm new file mode 100644 index 000000000000..d2b217f5fc9d --- /dev/null +++ b/code/controllers/subsystem/processing/oldeffects.dm @@ -0,0 +1,5 @@ +PROCESSING_SUBSYSTEM_DEF(oldeffects) + name = "Old Effects" + wait = 1 SECONDS + flags = SS_NO_INIT | SS_KEEP_TIMING + priority = SS_PRIORITY_OLDEFFECTS diff --git a/code/controllers/subsystem/processing/processing.dm b/code/controllers/subsystem/processing/processing.dm index 73a5db433dc8..c2736528df86 100644 --- a/code/controllers/subsystem/processing/processing.dm +++ b/code/controllers/subsystem/processing/processing.dm @@ -20,8 +20,8 @@ SUBSYSTEM_DEF(processing) //cache for sanic speed (lists are references anyways) var/list/current_run = currentrun - while(current_run.len) - var/datum/thing = current_run[current_run.len] + while(length(current_run)) + var/datum/thing = current_run[length(current_run)] current_run.len-- if(QDELETED(thing)) processing -= thing diff --git a/code/controllers/subsystem/projectiles.dm b/code/controllers/subsystem/projectiles.dm index a23303ea282d..da3b5a7b9c71 100644 --- a/code/controllers/subsystem/projectiles.dm +++ b/code/controllers/subsystem/projectiles.dm @@ -28,7 +28,7 @@ SUBSYSTEM_DEF(projectiles) */ /datum/controller/subsystem/projectiles/stat_entry(msg) - msg = " | #Proj: [projectiles.len]" + msg = " | #Proj: [length(projectiles)]" return ..() /datum/controller/subsystem/projectiles/Initialize(start_timeofday) @@ -41,8 +41,8 @@ SUBSYSTEM_DEF(projectiles) if(!resumed) flying = projectiles.Copy() flying -= sleepers - while(flying.len) - var/obj/projectile/projectile = flying[flying.len] + while(length(flying)) + var/obj/projectile/projectile = flying[length(flying)] flying.len-- var/delta_time = wait * world.tick_lag * (1 SECONDS) handle_projectile_flight(projectile, delta_time) diff --git a/code/controllers/subsystem/quadtrees.dm b/code/controllers/subsystem/quadtrees.dm index da217cb58cee..8c55cb8f1c50 100644 --- a/code/controllers/subsystem/quadtrees.dm +++ b/code/controllers/subsystem/quadtrees.dm @@ -24,17 +24,17 @@ SUBSYSTEM_DEF(quadtree) if(!resumed) player_feed = GLOB.clients.Copy() cur_quadtrees = new_quadtrees.Copy() - if(new_quadtrees.len < world.maxz) + if(length(new_quadtrees) < world.maxz) new_quadtrees.len = world.maxz for(var/i in 1 to world.maxz) new_quadtrees[i] = QTREE(RECT(world.maxx/2,world.maxy/2, world.maxx, world.maxy), i) while(length(player_feed)) - var/client/C = player_feed[player_feed.len] + var/client/C = player_feed[length(player_feed)] player_feed.len-- if(!C) continue var/turf/T = get_turf(C.mob) - if(!T?.z || new_quadtrees.len < T.z) + if(!T?.z || length(new_quadtrees) < T.z) continue var/datum/coords/qtplayer/p_coords = new p_coords.player = C @@ -52,7 +52,7 @@ SUBSYSTEM_DEF(quadtree) var/list/players = list() if(!cur_quadtrees) return players - if(z_level && cur_quadtrees.len >= z_level) + if(z_level && length(cur_quadtrees) >= z_level) var/datum/quadtree/Q = cur_quadtrees[z_level] if(!Q) return players diff --git a/code/controllers/subsystem/round_recording.dm b/code/controllers/subsystem/round_recording.dm index f1244d386d10..e45854ac5730 100644 --- a/code/controllers/subsystem/round_recording.dm +++ b/code/controllers/subsystem/round_recording.dm @@ -35,8 +35,8 @@ SUBSYSTEM_DEF(round_recording) return currentrun = recorder.tracked_players.Copy() - while(currentrun.len) - var/mob/M = currentrun[currentrun.len] + while(length(currentrun)) + var/mob/M = currentrun[length(currentrun)] currentrun.len-- // Try to stop the tracking diff --git a/code/controllers/subsystem/shuttles.dm b/code/controllers/subsystem/shuttles.dm index 34104736949a..d400e02f3bae 100644 --- a/code/controllers/subsystem/shuttles.dm +++ b/code/controllers/subsystem/shuttles.dm @@ -1,65 +1,78 @@ #define MAX_TRANSIT_REQUEST_RETRIES 10 -#define SHUTTLE_SPAWN_BUFFER SSshuttle.wait * 10 /// Give a shuttle 10 "fires" (~10 seconds) to spawn before it can be cleaned up. +/// How many turfs to allow before we stop blocking transit requests +#define MAX_TRANSIT_TILE_COUNT (150 ** 2) +/// How many turfs to allow before we start freeing up existing "soft reserved" transit docks +/// If we're under load we want to allow for cycling, but if not we want to preserve already generated docks for use +#define SOFT_TRANSIT_RESERVATION_THRESHOLD (100 ** 2) +/// Give a shuttle 10 "fires" (~10 seconds) to spawn before it can be cleaned up. +#define SHUTTLE_SPAWN_BUFFER SSshuttle.wait * 10 SUBSYSTEM_DEF(shuttle) name = "Shuttle" - wait = 10 + wait = 1 SECONDS init_order = SS_INIT_SHUTTLE flags = SS_KEEP_TIMING + /// A list of all the mobile docking ports. var/list/mobile = list() + /// A list of all the stationary docking ports. var/list/stationary = list() + /// A list of all the transit docking ports. var/list/transit = list() - /// For ID generation + /// Now it's only for ID generation in /obj/docking_port/mobile/register() var/list/assoc_mobile = list() - /// For ID generation + /// Now it's only for ID generation in /obj/docking_port/stationary/register() var/list/assoc_stationary = list() + /// A list of all the mobile docking ports currently requesting a spot in hyperspace. var/list/transit_requesters = list() + /// An associative list of the mobile docking ports that have failed a transit request, with the amount of times they've actually failed that transit request, up to MAX_TRANSIT_REQUEST_RETRIES var/list/transit_request_failures = list() + /// How many turfs our shuttles are currently utilizing in reservation space + var/transit_utilized = 0 var/obj/docking_port/mobile/vehicle_elevator/vehicle_elevator var/list/hidden_shuttle_turfs = list() //all turfs hidden from navigation computers associated with a list containing the image hiding them and the type of the turf they are pretending to be var/list/hidden_shuttle_turf_images = list() //only the images from the above list - var/lockdown = FALSE //disallow transit after nuke goes off + /// Disallow transit after nuke goes off + var/lockdown = FALSE + /// The currently selected shuttle map_template in the shuttle manipulator's template viewer. var/datum/map_template/shuttle/selected + /// The existing shuttle associated with the selected shuttle map_template. var/obj/docking_port/mobile/existing_shuttle - var/obj/docking_port/mobile/preview_shuttle + /// The shuttle map_template of the shuttle we want to preview. var/datum/map_template/shuttle/preview_template + /// The docking port associated to the preview_template that's currently being previewed. + var/obj/docking_port/mobile/preview_shuttle + /// The turf reservation for the current previewed shuttle. var/datum/turf_reservation/preview_reservation - /// safety to stop shuttles loading over each other + /// Are we currently in the process of loading a shuttle? Useful to ensure we don't load more than one at once, to avoid weird inconsistencies and possible runtimes. var/loading_shuttle = FALSE /datum/controller/subsystem/shuttle/Initialize(timeofday) - if(GLOB.perf_flags & PERF_TOGGLE_SHUTTLES) - can_fire = FALSE - return initial_load() return SS_INIT_SUCCESS /datum/controller/subsystem/shuttle/proc/initial_load() - for(var/s in stationary) - var/obj/docking_port/stationary/S = s - S.load_roundstart() + for(var/obj/docking_port/stationary/port as anything in stationary) + port.load_roundstart() CHECK_TICK /datum/controller/subsystem/shuttle/fire(resumed = FALSE) - if(!resumed && (GLOB.perf_flags & PERF_TOGGLE_SHUTTLES)) - return for(var/thing in mobile) if(!thing) mobile.Remove(thing) continue - var/obj/docking_port/mobile/P = thing - P.check() + var/obj/docking_port/mobile/port = thing + port.check() for(var/thing in transit) var/obj/docking_port/stationary/transit/T = thing if(!T.owner) @@ -67,6 +80,11 @@ SUBSYSTEM_DEF(shuttle) // This next one removes transit docks/zones that aren't // immediately being used. This will mean that the zone creation // code will be running a lot. + + // If we're below the soft reservation threshold, don't clear the old space + // We're better off holding onto it for now + if(transit_utilized < SOFT_TRANSIT_RESERVATION_THRESHOLD) + continue var/obj/docking_port/mobile/owner = T.owner if(owner && (world.time > T.spawn_time + SHUTTLE_SPAWN_BUFFER)) var/idle = owner.mode == SHUTTLE_IDLE @@ -76,9 +94,12 @@ SUBSYSTEM_DEF(shuttle) qdel(T, force=TRUE) if(!SSmapping.clearing_reserved_turfs) - while(transit_requesters.len) + while(length(transit_requesters)) var/requester = popleft(transit_requesters) - var/success = generate_transit_dock(requester) + var/success = null + // Do not try and generate any transit if we're using more then our max already + if(transit_utilized < MAX_TRANSIT_TILE_COUNT) + success = generate_transit_dock(requester) if(!success) // BACK OF THE QUEUE transit_request_failures[requester]++ if(transit_request_failures[requester] < MAX_TRANSIT_REQUEST_RETRIES) @@ -90,69 +111,74 @@ SUBSYSTEM_DEF(shuttle) if(MC_TICK_CHECK) break -/datum/controller/subsystem/shuttle/proc/hasShuttle(id) - for(var/obj/docking_port/mobile/M in mobile) - if(M.id == id) - return TRUE - return FALSE - -/datum/controller/subsystem/shuttle/proc/getShuttle(id) - for(var/obj/docking_port/mobile/M in mobile) - if(M.id == id) - return M +/datum/controller/subsystem/shuttle/proc/getShuttle(id, warn = TRUE) + for(var/obj/docking_port/mobile/shuttle in mobile) + if(shuttle.id == id) + return shuttle + if(!warn) + return null WARNING("couldn't find shuttle with id: [id]") +/// Tries to get a shuttle based on its original template id (rather than one that may have an additional identifier) +/datum/controller/subsystem/shuttle/proc/get_template_shuttle(id, warn = TRUE) + for(var/obj/docking_port/mobile/shuttle in mobile) + if(shuttle.template_id == id) + return shuttle + if(!warn) + return null + WARNING("couldn't find template shuttle with id: [id]") + /datum/controller/subsystem/shuttle/proc/getDock(id) for(var/obj/docking_port/stationary/S in stationary) if(S.id == id) return S WARNING("couldn't find dock with id: [id]") -//try to move/request to dockHome if possible, otherwise dockAway. Mainly used for admin buttons -/datum/controller/subsystem/shuttle/proc/toggleShuttle(shuttleId, dockHome, dockAway, timed) - var/obj/docking_port/mobile/M = getShuttle(shuttleId) - if(!M) +//try to move/request to dock_home if possible, otherwise dock_away. Mainly used for admin buttons +/datum/controller/subsystem/shuttle/proc/toggleShuttle(id, dock_home, dock_away, timed) + var/obj/docking_port/mobile/shuttle_port = getShuttle(id) + if(!shuttle_port) return DOCKING_BLOCKED - var/obj/docking_port/stationary/dockedAt = M.get_docked() - var/destination = dockHome - if(dockedAt && dockedAt.id == dockHome) - destination = dockAway + var/obj/docking_port/stationary/docked_at = shuttle_port.get_docked() + var/destination = dock_home + if(docked_at && docked_at.id == dock_home) + destination = dock_away if(timed) - if(M.request(getDock(destination))) + if(shuttle_port.request(getDock(destination))) return DOCKING_IMMOBILIZED else - if(M.initiate_docking(getDock(destination)) != DOCKING_SUCCESS) + if(shuttle_port.initiate_docking(getDock(destination)) != DOCKING_SUCCESS) return DOCKING_IMMOBILIZED - return DOCKING_SUCCESS //dock successful + return DOCKING_SUCCESS //dock successful /** * Moves a shuttle to a new location * * Arguments: - * * shuttle_id - The ID of the shuttle (mobile docking port) to move + * * id - The ID of the shuttle (mobile docking port) to move * * dock_id - The ID of the destination (stationary docking port) to move to * * timed - If true, have the shuttle follow normal spool-up, jump, dock process. If false, immediately move to the new location. */ -/datum/controller/subsystem/shuttle/proc/moveShuttle(shuttleId, dockId, timed) - var/obj/docking_port/stationary/D = getDock(dockId) - var/obj/docking_port/mobile/M = getShuttle(shuttleId) +/datum/controller/subsystem/shuttle/proc/moveShuttle(id, dock_id, timed) + var/obj/docking_port/mobile/shuttle_port = getShuttle(id) + var/obj/docking_port/stationary/docking_target = getDock(dock_id) - return moveShuttleToDock(M, D, timed) + return moveShuttleToDock(shuttle_port, docking_target, timed) -/datum/controller/subsystem/shuttle/proc/moveShuttleToDock(obj/docking_port/mobile/M, obj/docking_port/stationary/D, timed) - if(!M) +/datum/controller/subsystem/shuttle/proc/moveShuttleToDock(obj/docking_port/mobile/shuttle_port, obj/docking_port/stationary/docking_target, timed) + if(!shuttle_port) return DOCKING_NULL_SOURCE if(timed) - if(M.request(D)) + if(shuttle_port.request(docking_target)) return DOCKING_IMMOBILIZED else - if(M.initiate_docking(D) != DOCKING_SUCCESS) + if(shuttle_port.initiate_docking(docking_target) != DOCKING_SUCCESS) return DOCKING_IMMOBILIZED - return DOCKING_SUCCESS //dock successful + return DOCKING_SUCCESS //dock successful /datum/controller/subsystem/shuttle/proc/request_transit_dock(obj/docking_port/mobile/M) if(!istype(M)) - throw EXCEPTION("[M] is not a mobile docking port") + CRASH("[M] is not a mobile docking port") if(M.assigned_transit) return @@ -164,7 +190,7 @@ SUBSYSTEM_DEF(shuttle) // First, determine the size of the needed zone // Because of shuttle rotation, the "width" of the shuttle is not // always x. - var/travel_dir = M.preferred_direction + //var/travel_dir = M.preferred_direction // Remember, the direction is the direction we appear to be // coming from var/dock_angle = dir2angle(M.preferred_direction) + dir2angle(M.port_direction) + 180 @@ -188,31 +214,28 @@ SUBSYSTEM_DEF(shuttle) [transit_height] in height. The travel dir is [travel_dir]." */ - var/transit_path = /turf/open/space/transit - switch(travel_dir) - if(NORTH) - transit_path = /turf/open/space/transit/north - if(SOUTH) - transit_path = /turf/open/space/transit/south - if(EAST) - transit_path = /turf/open/space/transit/east - if(WEST) - transit_path = /turf/open/space/transit/west + var/transit_path = M.get_transit_path_type() - var/datum/turf_reservation/proposal = SSmapping.RequestBlockReservation(transit_width, transit_height, null, /datum/turf_reservation/transit, transit_path) + var/datum/turf_reservation/proposal = SSmapping.request_turf_block_reservation( + transit_width, + transit_height, + z_size = 1, //if this is changed the turf uncontain code below has to be updated to support multiple zs + reservation_type = /datum/turf_reservation/transit, + turf_type_override = transit_path, + ) if(!istype(proposal)) log_debug("generate_transit_dock() failed to get a block reservation from mapping system") return FALSE - var/turf/bottomleft = locate(proposal.bottom_left_coords[1], proposal.bottom_left_coords[2], proposal.bottom_left_coords[3]) + var/turf/bottomleft = proposal.bottom_left_turfs[1] // Then create a transit docking port in the middle var/coords = M.return_coords(0, 0, dock_dir) - /* 0------2 - | | - | | - | x | - 3------1 + /* 0------2 + * | | + * | | + * | x | + * 3------1 */ var/x0 = coords[1] @@ -229,23 +252,32 @@ SUBSYSTEM_DEF(shuttle) var/turf/midpoint = locate(transit_x, transit_y, bottomleft.z) if(!midpoint) - log_debug("generate_transit_dock() failed to get a midpoint") + log_mapping("generate_transit_dock() failed to get a midpoint") return FALSE - var/area/shuttle/transit/A = new() - //A.parallax_movedir = travel_dir - A.contents = proposal.reserved_turfs + var/area/shuttle/transit/new_area = new() + //new_area.parallax_movedir = travel_dir + new_area.contents = proposal.reserved_turfs var/obj/docking_port/stationary/transit/new_transit_dock = new(midpoint) new_transit_dock.reserved_area = proposal new_transit_dock.name = "Transit for [M.id]/[M.name]" new_transit_dock.owner = M - new_transit_dock.assigned_area = A + new_transit_dock.assigned_area = new_area // Add 180, because ports point inwards, rather than outwards new_transit_dock.setDir(angle2dir(dock_angle)) + // Proposals use 2 extra hidden tiles of space, from the cordons that surround them + transit_utilized += (proposal.width + 2) * (proposal.height + 2) M.assigned_transit = new_transit_dock + RegisterSignal(proposal, COMSIG_PARENT_QDELETING, PROC_REF(transit_space_clearing)) + return new_transit_dock +/// Gotta manage our space brother +/datum/controller/subsystem/shuttle/proc/transit_space_clearing(datum/turf_reservation/source) + SIGNAL_HANDLER + transit_utilized -= (source.width + 2) * (source.height + 2) + /datum/controller/subsystem/shuttle/Recover() if (istype(SSshuttle.mobile)) mobile = SSshuttle.mobile @@ -269,7 +301,6 @@ SUBSYSTEM_DEF(shuttle) preview_reservation = SSshuttle.preview_reservation - /datum/controller/subsystem/shuttle/proc/is_in_shuttle_bounds(atom/A) var/area/current = get_area(A) if(istype(current, /area/shuttle) && !istype(current, /area/shuttle/transit)) @@ -280,7 +311,7 @@ SUBSYSTEM_DEF(shuttle) /datum/controller/subsystem/shuttle/proc/get_containing_shuttle(atom/A) var/list/mobile_cache = mobile - for(var/i in 1 to mobile_cache.len) + for(var/i in 1 to length(mobile_cache)) var/obj/docking_port/port = mobile_cache[i] if(port.is_in_shuttle_bounds(A)) return port @@ -288,7 +319,7 @@ SUBSYSTEM_DEF(shuttle) /datum/controller/subsystem/shuttle/proc/get_containing_dock(atom/A) . = list() var/list/stationary_cache = stationary - for(var/i in 1 to stationary_cache.len) + for(var/i in 1 to length(stationary_cache)) var/obj/docking_port/port = stationary_cache[i] if(port.is_in_shuttle_bounds(A)) . += port @@ -296,7 +327,7 @@ SUBSYSTEM_DEF(shuttle) /datum/controller/subsystem/shuttle/proc/get_dock_overlap(x0, y0, x1, y1, z) . = list() var/list/stationary_cache = stationary - for(var/i in 1 to stationary_cache.len) + for(var/i in 1 to length(stationary_cache)) var/obj/docking_port/port = stationary_cache[i] if(!port || port.z != z) continue @@ -304,7 +335,7 @@ SUBSYSTEM_DEF(shuttle) var/list/overlap = get_overlap(x0, y0, x1, y1, bounds[1], bounds[2], bounds[3], bounds[4]) var/list/xs = overlap[1] var/list/ys = overlap[2] - if(xs.len && ys.len) + if(length(xs) && length(ys)) .[port] = overlap /datum/controller/subsystem/shuttle/proc/update_hidden_docking_ports(list/remove_turfs, list/add_turfs) @@ -322,7 +353,7 @@ SUBSYSTEM_DEF(shuttle) for(var/V in add_turfs) var/turf/T = V var/image/I - if(remove_images.len) + if(length(remove_images)) //we can just reuse any images we are about to delete instead of making new ones I = remove_images[1] remove_images.Cut(1, 2) @@ -374,7 +405,15 @@ SUBSYSTEM_DEF(shuttle) return shuttle -/datum/controller/subsystem/shuttle/proc/action_load(datum/map_template/shuttle/loading_template, obj/docking_port/stationary/destination_port) +/** + * Loads a shuttle template and sends it to a given destination port, optionally replacing the existing shuttle + * + * Arguments: + * * loading_template - The shuttle template to load + * * destination_port - The station docking port to send the shuttle to once loaded + * * to_replace - A shuttle to replace, otherwise we create a new one +*/ +/datum/controller/subsystem/shuttle/proc/action_load(datum/map_template/shuttle/loading_template, obj/docking_port/stationary/destination_port, obj/docking_port/mobile/to_replace) // Check for an existing preview if(preview_shuttle && (loading_template != preview_template)) preview_shuttle.jumpToNullSpace() @@ -383,56 +422,53 @@ SUBSYSTEM_DEF(shuttle) QDEL_NULL(preview_reservation) if(!preview_shuttle) - if(load_template(loading_template)) - preview_shuttle.linkup(loading_template, destination_port) + load_template(loading_template) preview_template = loading_template // get the existing shuttle information, if any var/timer = 0 var/mode = SHUTTLE_IDLE - var/obj/docking_port/stationary/D + var/obj/docking_port/stationary/dest_dock if(istype(destination_port)) - D = destination_port - else if(existing_shuttle) - timer = existing_shuttle.timer - mode = existing_shuttle.mode - D = existing_shuttle.get_docked() + dest_dock = destination_port + else if(to_replace) + timer = to_replace.timer + mode = to_replace.mode + dest_dock = to_replace.get_docked() - if(!D) - D = generate_transit_dock(preview_shuttle) + if(!dest_dock) + dest_dock = generate_transit_dock(preview_shuttle) - if(!D) - preview_shuttle.jumpToNullSpace() + if(!dest_dock) CRASH("No dock found for preview shuttle ([preview_template.name]), aborting.") - var/result = preview_shuttle.canDock(D) + var/result = preview_shuttle.canDock(dest_dock) // truthy value means that it cannot dock for some reason // but we can ignore the someone else docked error because we'll // be moving into their place shortly if((result != SHUTTLE_CAN_DOCK) && (result != SHUTTLE_SOMEONE_ELSE_DOCKED)) - WARNING("Template shuttle [preview_shuttle] cannot dock at [D] ([result]).") + WARNING("Template shuttle [preview_shuttle] cannot dock at [dest_dock] ([result]).") return - if(existing_shuttle) - existing_shuttle.jumpToNullSpace() - - for(var/area/A as anything in preview_shuttle.shuttle_areas) - for(var/turf/T as anything in A) - // turfs inside the shuttle are not available for shuttles - T.flags_atom &= ~UNUSED_RESERVATION_TURF + if(to_replace) + to_replace.jumpToNullSpace() + for(var/area/cur_area as anything in preview_shuttle.shuttle_areas) + for(var/turf/cur_turf as anything in cur_area) // update underlays - if(istype(T, /turf/closed/shuttle)) - var/dx = T.x - preview_shuttle.x - var/dy = T.y - preview_shuttle.y - var/turf/target_lz = locate(D.x + dx, D.y + dy, D.z) - T.underlays.Cut() - T.underlays += mutable_appearance(target_lz.icon, target_lz.icon_state, TURF_LAYER, FLOOR_PLANE) - + if(istype(cur_turf, /turf/closed/shuttle)) + var/dx = cur_turf.x - preview_shuttle.x + var/dy = cur_turf.y - preview_shuttle.y + var/turf/target_lz = locate(dest_dock.x + dx, dest_dock.y + dy, dest_dock.z) + cur_turf.underlays.Cut() + cur_turf.underlays += mutable_appearance(target_lz.icon, target_lz.icon_state, TURF_LAYER, FLOOR_PLANE) + + preview_shuttle.register(to_replace != null) var/list/force_memory = preview_shuttle.movement_force preview_shuttle.movement_force = list("KNOCKDOWN" = 0, "THROW" = 0) - preview_shuttle.initiate_docking(D) + preview_shuttle.mode = SHUTTLE_PREARRIVAL//No idle shuttle moving. Transit dock get removed if shuttle moves too long. + preview_shuttle.initiate_docking(dest_dock) preview_shuttle.movement_force = force_memory . = preview_shuttle @@ -442,7 +478,7 @@ SUBSYSTEM_DEF(shuttle) preview_shuttle.timer = timer preview_shuttle.mode = mode - preview_shuttle.register() + preview_shuttle.postregister(to_replace != null) // TODO indicate to the user that success happened, rather than just // blanking the modification tab @@ -452,16 +488,28 @@ SUBSYSTEM_DEF(shuttle) selected = null QDEL_NULL(preview_reservation) -/datum/controller/subsystem/shuttle/proc/load_template(datum/map_template/shuttle/S) +/** + * Loads a shuttle template into the transit Z level, usually referred to elsewhere in the code as a shuttle preview. + * Does not register the shuttle so it can't be used yet, that's handled in action_load() + * + * Arguments: + * * loading_template - The shuttle template to load + */ +/datum/controller/subsystem/shuttle/proc/load_template(datum/map_template/shuttle/loading_template) . = FALSE - // load shuttle template, centred at shuttle import landmark, - preview_reservation = SSmapping.RequestBlockReservation(S.width, S.height, SSmapping.transit.z_value, /datum/turf_reservation/transit) + // Load shuttle template to a fresh block reservation. + preview_reservation = SSmapping.request_turf_block_reservation( + loading_template.width, + loading_template.height, + 1, + reservation_type = /datum/turf_reservation/transit, + ) if(!preview_reservation) CRASH("failed to reserve an area for shuttle template loading") - var/turf/BL = TURF_FROM_COORDS_LIST(preview_reservation.bottom_left_coords) - S.load(BL, centered = FALSE, register = FALSE) + var/turf/bottom_left = preview_reservation.bottom_left_turfs[1] + loading_template.load(bottom_left, centered = FALSE, register = FALSE) - var/affected = S.get_affected_turfs(BL, centered=FALSE) + var/affected = loading_template.get_affected_turfs(bottom_left, centered=FALSE) var/found = 0 // Search the turfs for docking ports @@ -469,65 +517,86 @@ SUBSYSTEM_DEF(shuttle) // the shuttle. // - We need to check that no additional ports have slipped in from the // template, because that causes unintended behaviour. - for(var/T in affected) - for(var/obj/docking_port/P in T) - if(istype(P, /obj/docking_port/mobile)) + for(var/affected_turfs in affected) + for(var/obj/docking_port/port in affected_turfs) + if(istype(port, /obj/docking_port/mobile)) found++ if(found > 1) - qdel(P, force=TRUE) - log_world("Map warning: Shuttle Template [S.mappath] has multiple mobile docking ports.") + qdel(port, force=TRUE) + log_mapping("Shuttle Template [loading_template.mappath] has multiple mobile docking ports.") else - preview_shuttle = P - if(istype(P, /obj/docking_port/stationary)) - log_world("Map warning: Shuttle Template [S.mappath] has a stationary docking port.") + preview_shuttle = port + if(istype(port, /obj/docking_port/stationary)) + log_mapping("Shuttle Template [loading_template.mappath] has a stationary docking port.") if(!found) - var/msg = "load_template(): Shuttle Template [S.mappath] has no mobile docking port. Aborting import." - for(var/T in affected) - var/turf/T0 = T + var/msg = "load_template(): Shuttle Template [loading_template.mappath] has no mobile docking port. Aborting import." + for(var/affected_turfs in affected) + var/turf/T0 = affected_turfs T0.empty() message_admins(msg) WARNING(msg) return //Everything fine - S.post_load(preview_shuttle) + loading_template.post_load(preview_shuttle) return TRUE +/** + * Removes the preview_shuttle from the transit Z-level + */ /datum/controller/subsystem/shuttle/proc/unload_preview() if(preview_shuttle) preview_shuttle.jumpToNullSpace() preview_shuttle = null + if(preview_reservation) + QDEL_NULL(preview_reservation) /datum/controller/subsystem/shuttle/ui_status(mob/user, datum/ui_state/state) return UI_INTERACTIVE +/datum/controller/subsystem/shuttle/ui_state(mob/user) + return GLOB.admin_state + /datum/controller/subsystem/shuttle/tgui_interact(mob/user, datum/tgui/ui) ui = SStgui.try_update_ui(user, src, ui) if(!ui) - ui = new(user, src, "ShuttleManipulator", name, 800, 600) + ui = new(user, src, "ShuttleManipulator", name, 900, 600) ui.open() - /datum/controller/subsystem/shuttle/ui_data(mob/user) var/list/data = list() // Templates panel - data["selected"] = list() + data["templates"] = list() + var/list/templates = data["templates"] + //data["templates_tabs"] = list() + data["selected"] = null - data["template_data"] = list() - for(var/shuttle_id in SSmapping.shuttle_templates) - var/datum/map_template/shuttle/S = SSmapping.shuttle_templates[shuttle_id] - var/list/template_data = list() - template_data["name"] = S.name - template_data["shuttle_id"] = S.shuttle_id - template_data["description"] = S.description - template_data["admin_notes"] = S.admin_notes + for(var/id in SSmapping.shuttle_templates) + var/datum/map_template/shuttle/S = SSmapping.shuttle_templates[id] + + if(!templates[S.port_id]) + //data["templates_tabs"] += S.port_id + templates[S.port_id] = list( + "port_id" = S.port_id, + "templates" = list()) + + var/list/L = list() + L["name"] = S.name + L["id"] = S.shuttle_id + L["port_id"] = S.port_id + L["description"] = S.description + L["admin_notes"] = S.admin_notes if(selected == S) - data["selected"] = template_data - data["template_data"] += list(template_data) + data["selected"] = L + + templates[S.port_id]["templates"] += list(L) + + //data["templates_tabs"] = sort_list(data["templates_tabs"]) data["existing_shuttle"] = null + // Status panel data["shuttles"] = list() for(var/i in mobile) @@ -556,92 +625,118 @@ SUBSYSTEM_DEF(shuttle) L["status"] = M.getDbgStatusText() if(M == existing_shuttle) data["existing_shuttle"] = L - L["hijack"] = "N/A" data["shuttles"] += list(L) return data -/datum/controller/subsystem/shuttle/ui_act(action, params) - if(..()) +/datum/controller/subsystem/shuttle/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) + . = ..() + if(.) return - var/mob/user = usr + var/mob/user = ui.user // Preload some common parameters - var/shuttle_id = params["shuttle_id"] - var/datum/map_template/shuttle/S = SSmapping.shuttle_templates[shuttle_id] + var/id = params["id"] + var/datum/map_template/shuttle/template = SSmapping.shuttle_templates[id] + var/obj/docking_port/mobile/shuttle = getShuttle(id, warn = FALSE) switch(action) if("select_template") - if(S) - if(hasShuttle(S.shuttle_id)) - existing_shuttle = getShuttle(S.shuttle_id) - else - existing_shuttle = null - selected = S + if(template) + existing_shuttle = shuttle + selected = template + if(!existing_shuttle) + existing_shuttle = get_template_shuttle(template.shuttle_id) . = TRUE + if("jump_to") - if(params["type"] == "mobile") - for(var/i in mobile) - var/obj/docking_port/mobile/M = i - if(M.id == params["id"]) - user.forceMove(get_turf(M)) - . = TRUE - break + if(shuttle) + user.client?.jump_to_object(shuttle) + . = TRUE + if("lock") - for(var/i in mobile) - var/obj/docking_port/mobile/M = i - if(M.id == params["id"]) - . = TRUE - var/obj/structure/machinery/computer/shuttle/console = M.getControlConsole() - console.disable() - message_admins("[key_name_admin(user)] set [M.id]'s disabled to TRUE.") - break + if(shuttle) + . = TRUE + var/obj/structure/machinery/computer/shuttle/console = shuttle.getControlConsole() + console.disable() + message_admins("[key_name_admin(user)] set [id]'s disabled to TRUE.") + if("unlock") - for(var/i in mobile) - var/obj/docking_port/mobile/M = i - if(M.id == params["id"]) - . = TRUE - var/obj/structure/machinery/computer/shuttle/console = M.getControlConsole() - console.enable() - message_admins("[key_name_admin(user)] set [M.id]'s disabled to FALSE.") - break + if(shuttle) + . = TRUE + var/obj/structure/machinery/computer/shuttle/console = shuttle.getControlConsole() + console.enable() + message_admins("[key_name_admin(user)] set [id]'s disabled to FALSE.") + if("fly") - for(var/i in mobile) - var/obj/docking_port/mobile/M = i - if(M.id == params["id"]) - . = TRUE - M.admin_fly_shuttle(user) - break + if(shuttle) + . = TRUE + shuttle.admin_fly_shuttle(user) if("fast_travel") - for(var/i in mobile) - var/obj/docking_port/mobile/M = i - if(M.id == params["id"] && M.timer && M.timeLeft(1) >= 50) - M.setTimer(50) - . = TRUE - message_admins("[key_name_admin(usr)] fast travelled [M]") - log_admin("[key_name(usr)] fast travelled [M]") - break + if(shuttle && shuttle.timer && shuttle.timeLeft(1) >= 50) + shuttle.setTimer(5 SECONDS) + . = TRUE + message_admins("[key_name_admin(user)] fast travelled [shuttle]") + + if("load") + if(template) + if(loading_shuttle) + to_chat(user, SPAN_WARNING("Busy! Please wait...")) + return + . = TRUE + loading_shuttle = TRUE + // If successful, returns the mobile docking port + var/obj/docking_port/mobile/mdp = action_load(template) + if(mdp) + user.client?.jump_to_object(mdp) + message_admins("[key_name_admin(user)] loaded [mdp] with the shuttle manipulator.") + else + to_chat(user, SPAN_WARNING("Something went wrong. Check logs/STUI for more details.")) + loading_shuttle = FALSE if("preview") - if(S) + if(template) + if(loading_shuttle) + to_chat(user, SPAN_WARNING("Busy! Please wait...")) + return . = TRUE + loading_shuttle = TRUE unload_preview() - load_template(S) + load_template(template) if(preview_shuttle) - preview_template = S - user.forceMove(get_turf(preview_shuttle)) - if("load") - if(S) + preview_template = template + user.client?.jump_to_object(preview_shuttle) + loading_shuttle = FALSE + + if("replace") + if(template) + if(loading_shuttle) + to_chat(user, SPAN_WARNING("Busy! Please wait...")) + return . = TRUE + loading_shuttle = TRUE + var/to_replace = existing_shuttle + if(!existing_shuttle || tgui_alert(user, "Replace existing shuttle '[existing_shuttle.name]'?", "Replace shuttle?", list("Yes", "No")) != "Yes") + var/list/options = list() + for(var/obj/docking_port/mobile/option in mobile) + options["[option.name] ([option.id])"] = option + var/selection = tgui_input_list(user, "Replace some other shuttle instead?", "Replace shuttle?", options) + if(!selection) + loading_shuttle = FALSE + return + to_replace = options[selection] // If successful, returns the mobile docking port - var/obj/docking_port/mobile/mdp = action_load(S) + var/obj/docking_port/mobile/mdp = action_load(template, to_replace = to_replace) if(mdp) - user.forceMove(get_turf(mdp)) - message_admins("[key_name_admin(usr)] loaded [mdp] with the shuttle manipulator.") - log_admin("[key_name(usr)] loaded [mdp] with the shuttle manipulator.") - + user.client?.jump_to_object(mdp) + message_admins("[key_name_admin(user)] replaced [to_replace] with [mdp] with the shuttle manipulator.") + else + to_chat(user, SPAN_WARNING("Something went wrong. Check logs/STUI for more details.")) + loading_shuttle = FALSE -#undef SHUTTLE_SPAWN_BUFFER +#undef MAX_TRANSIT_REQUEST_RETRIES +#undef MAX_TRANSIT_TILE_COUNT +#undef SOFT_TRANSIT_RESERVATION_THRESHOLD diff --git a/code/controllers/subsystem/sound.dm b/code/controllers/subsystem/sound.dm index 4fdfd7935349..024df7cc45ad 100644 --- a/code/controllers/subsystem/sound.dm +++ b/code/controllers/subsystem/sound.dm @@ -24,7 +24,7 @@ SUBSYSTEM_DEF(sound) if(MC_TICK_CHECK) return while(length(run_hearers)) // Output sound to hearers - var/client/C = run_hearers[run_hearers.len] + var/client/C = run_hearers[length(run_hearers)] run_hearers.len-- if(C && C.soundOutput) C.soundOutput.process_sound(run_template) @@ -40,6 +40,6 @@ SUBSYSTEM_DEF(sound) for(var/datum/interior/VI in extra_interiors) if(VI?.ready) var/list/bounds = VI.get_middle_coords() - if(bounds.len >= 2) + if(length(bounds) >= 2) hearers |= SSquadtree.players_in_range(RECT(bounds[1], bounds[2], VI.map_template.width, VI.map_template.height), bounds[3]) template_queue[template] = hearers diff --git a/code/controllers/subsystem/soundscape.dm b/code/controllers/subsystem/soundscape.dm index 2219a0b35c86..432166e06be9 100644 --- a/code/controllers/subsystem/soundscape.dm +++ b/code/controllers/subsystem/soundscape.dm @@ -15,8 +15,8 @@ SUBSYSTEM_DEF(soundscape) if(!resumed) currentrun = GLOB.clients.Copy() - while(currentrun.len) - var/client/C = currentrun[currentrun.len] + while(length(currentrun)) + var/client/C = currentrun[length(currentrun)] currentrun.len-- if(!C || !C.soundOutput) diff --git a/code/controllers/subsystem/statpanel.dm b/code/controllers/subsystem/statpanel.dm index b65ca1e758a2..613c8df5850f 100644 --- a/code/controllers/subsystem/statpanel.dm +++ b/code/controllers/subsystem/statpanel.dm @@ -108,7 +108,7 @@ SUBSYSTEM_DEF(statpanels) target.stat_panel.send_message("update_stat", list( "global_data" = global_data, - //"ping_str" = "Ping: [round(target.lastping, 1)]ms (Average: [round(target.avgping, 1)]ms)", + //"ping_str" = "Ping: [floor(target.lastping, 1)]ms (Average: [floor(target.avgping, 1)]ms)", "other_str" = target.mob?.get_status_tab_items(), )) @@ -197,7 +197,7 @@ SUBSYSTEM_DEF(statpanels) /datum/controller/subsystem/statpanels/proc/generate_mc_data() mc_data = list( list("CPU:", world.cpu), - list("Instances:", "[num2text(world.contents.len, 10)]"), + list("Instances:", "[num2text(length(world.contents), 10)]"), list("World Time:", "[world.time]"), list("Globals:", GLOB.stat_entry(), "\ref[GLOB]"), list("[config]:", config.stat_entry(), "\ref[config]"), @@ -212,17 +212,23 @@ SUBSYSTEM_DEF(statpanels) /// Sets the current tab to the SDQL tab /datum/controller/subsystem/statpanels/proc/set_SDQL2_tab(client/target) + if(!target) + return + var/list/sdql2_initial = list() - //sdql2_initial[length(sdql2_initial)++] = list("", "Access Global SDQL2 List", REF(GLOB.sdql2_vv_statobj)) + sdql2_initial[++sdql2_initial.len] = list("", "Access Global SDQL2 List", REF(GLOB.sdql2_vv_statobj)) var/list/sdql2_querydata = list() - //for(var/datum/sdql2_query/query as anything in GLOB.sdql2_queries) - //sdql2_querydata = query.generate_stat() + for(var/datum/sdql2_query/query as anything in GLOB.sdql2_queries) + sdql2_querydata += query.generate_stat() sdql2_initial += sdql2_querydata target.stat_panel.send_message("update_sdql2", sdql2_initial) ///immediately update the active statpanel tab of the target client /datum/controller/subsystem/statpanels/proc/immediate_send_stat_data(client/target) + if(!target) + return FALSE + if(!target.stat_panel.is_ready()) return FALSE diff --git a/code/controllers/subsystem/stickyban.dm b/code/controllers/subsystem/stickyban.dm new file mode 100644 index 000000000000..48e934addc1a --- /dev/null +++ b/code/controllers/subsystem/stickyban.dm @@ -0,0 +1,284 @@ +SUBSYSTEM_DEF(stickyban) + name = "Sticky Ban" + init_order = SS_INIT_STICKY + flags = SS_NO_FIRE + +/datum/controller/subsystem/stickyban/Initialize() + var/list/all_bans = world.GetConfig("ban") + + for(var/existing_ban in all_bans) + var/list/ban_data = params2list(world.GetConfig("ban", existing_ban)) + INVOKE_ASYNC(src, PROC_REF(import_sticky), existing_ban, ban_data) + + return SS_INIT_SUCCESS + +/** + * Returns a list of [/datum/view_record/stickyban]s, or null, if no stickybans are found. All arguments are optional, but you should pass at least one if you want any results. + */ +/datum/controller/subsystem/stickyban/proc/check_for_sticky_ban(ckey, address, computer_id) + var/list/stickyban_ids = list() + + for(var/datum/view_record/stickyban_matched_ckey/matched_ckey as anything in get_impacted_ckey_records(ckey)) + stickyban_ids += matched_ckey.linked_stickyban + + for(var/datum/view_record/stickyban_matched_cid/matched_cid as anything in get_impacted_cid_records(computer_id)) + stickyban_ids += matched_cid.linked_stickyban + + for(var/datum/view_record/stickyban_matched_ip/matched_ip as anything in get_impacted_ip_records(address)) + stickyban_ids += matched_ip.linked_stickyban + + if(!length(stickyban_ids)) + return FALSE + + var/list/datum/view_record/stickyban/stickies = DB_VIEW(/datum/view_record/stickyban, + DB_AND( + DB_COMP("id", DB_IN, stickyban_ids), + DB_COMP("active", DB_EQUALS, TRUE) + ) + ) + + for(var/datum/view_record/stickyban/current_sticky in stickies) + if(length(get_whitelisted_ckey_records(current_sticky.id, ckey))) + stickies -= current_sticky + + if(!length(stickies)) + return FALSE + + return stickies + +/** + * Associates an existing stickyban with a new match, either of a ckey, address, or computer_id. Or all three. + * + * Arguments: + * - existing_ban_id, int, required + * - ckey, string, optional + * - address, string, optional + * - computer_id, string, optional + */ +/datum/controller/subsystem/stickyban/proc/match_sticky(existing_ban_id, ckey, address, computer_id) + if(!existing_ban_id) + return + + if(ckey) + add_matched_ckey(existing_ban_id, ckey) + + if(address) + add_matched_ip(existing_ban_id, address) + + if(computer_id) + add_matched_cid(existing_ban_id, computer_id) + +/** + * Adds a new tracked stickyban, and returns a [/datum/entity/stickyban] if it was successful. Blocking, sleeps. + */ +/datum/controller/subsystem/stickyban/proc/add_stickyban(identifier, reason, message, datum/entity/player/banning_admin, override_date) + var/datum/entity/stickyban/new_sticky = DB_ENTITY(/datum/entity/stickyban) + new_sticky.identifier = identifier + new_sticky.reason = reason + new_sticky.message = message + + if(banning_admin) + new_sticky.adminid = banning_admin.id + + new_sticky.date = override_date ? override_date : "[time2text(world.realtime, "YYYY-MM-DD hh:mm:ss")]" + new_sticky.save() + new_sticky.sync() + + return new_sticky + +/// Adds a ckey match to the specified sticky ban. +/datum/controller/subsystem/stickyban/proc/add_matched_ckey(existing_ban_id, key) + key = ckey(key) + + if(length(DB_VIEW(/datum/view_record/stickyban_matched_ckey, + DB_AND( + DB_COMP("linked_stickyban", DB_EQUALS, existing_ban_id), + DB_COMP("ckey", DB_EQUALS, key) + ) + ))) + return + + var/datum/entity/stickyban_matched_ckey/matched_ckey = DB_ENTITY(/datum/entity/stickyban_matched_ckey) + + matched_ckey.ckey = key + matched_ckey.linked_stickyban = existing_ban_id + + matched_ckey.save() + +/// Adds an IP match to the specified stickyban. +/datum/controller/subsystem/stickyban/proc/add_matched_ip(existing_ban_id, ip) + if(length(DB_VIEW(/datum/view_record/stickyban_matched_ip, + DB_AND( + DB_COMP("linked_stickyban", DB_EQUALS, existing_ban_id), + DB_COMP("ip", DB_EQUALS, ip) + ) + ))) + return + + var/datum/entity/stickyban_matched_ip/matched_ip = DB_ENTITY(/datum/entity/stickyban_matched_ip) + + matched_ip.ip = ip + matched_ip.linked_stickyban = existing_ban_id + + matched_ip.save() + +/// Adds a CID match to the specified stickyban. +/datum/controller/subsystem/stickyban/proc/add_matched_cid(existing_ban_id, cid) + if(length(DB_VIEW(/datum/view_record/stickyban_matched_cid, + DB_AND( + DB_COMP("linked_stickyban", DB_EQUALS, existing_ban_id), + DB_COMP("cid", DB_EQUALS, cid) + ) + ))) + return + + + var/datum/entity/stickyban_matched_cid/matched_cid = DB_ENTITY(/datum/entity/stickyban_matched_cid) + + matched_cid.cid = cid + matched_cid.linked_stickyban = existing_ban_id + + matched_cid.save() + +/// Whitelists a specific CKEY to the specified stickyban, which will allow connection, even with matching CIDs and IPs. +/datum/controller/subsystem/stickyban/proc/whitelist_ckey(existing_ban_id, key) + key = ckey(key) + + if(!key) + return + + var/id_to_select + + var/list/datum/view_record/stickyban_matched_ckey/existing_matches = DB_VIEW(/datum/view_record/stickyban_matched_ckey, + DB_AND( + DB_COMP("linked_stickyban", DB_EQUALS, existing_ban_id), + DB_COMP("ckey", DB_EQUALS, key) + ) + ) + + if(length(existing_matches)) + var/datum/view_record/stickyban_matched_ckey/match = existing_matches[1] + id_to_select = match.id + + var/datum/entity/stickyban_matched_ckey/whitelisted_ckey = DB_ENTITY(/datum/entity/stickyban_matched_ckey, id_to_select) + + whitelisted_ckey.ckey = key + whitelisted_ckey.linked_stickyban = existing_ban_id + whitelisted_ckey.whitelisted = TRUE + + whitelisted_ckey.save() + +/** + * Returns a [/list] of [/datum/view_record/stickyban_matched_ckey] where the ckey provided has not been + * whitelisted from the stickyban, and would be prevented from joining - provided that the stickyban itself + * remains active. + */ +/datum/controller/subsystem/stickyban/proc/get_impacted_ckey_records(key) + key = ckey(key) + + return DB_VIEW(/datum/view_record/stickyban_matched_ckey, + DB_AND( + DB_COMP("ckey", DB_EQUALS, key), + DB_COMP("whitelisted", DB_EQUALS, FALSE) + ) + ) + +/** + * Returns a [/list] of [/datum/view_record/stickyban_matched_ckey] which have been manually whitelisted by an admin and matches the provided existing_ban_id and key. + */ +/datum/controller/subsystem/stickyban/proc/get_whitelisted_ckey_records(existing_ban_id, key) + key = ckey(key) + + return DB_VIEW(/datum/view_record/stickyban_matched_ckey, + DB_AND( + DB_COMP("linked_stickyban", DB_EQUALS, existing_ban_id), + DB_COMP("ckey", DB_EQUALS, key), + DB_COMP("whitelisted", DB_EQUALS, TRUE), + ) + ) + +/** + * Returns a [/list] of [/datum/view_record/stickyban_matched_cid] where the impacted CID matches the CID provided. + * Connections matching this CID will be blocked - provided the linked stickyban is active. + */ +/datum/controller/subsystem/stickyban/proc/get_impacted_cid_records(cid) + return DB_VIEW(/datum/view_record/stickyban_matched_cid, + DB_COMP("cid", DB_EQUALS, cid) + ) + +/** + * Returns a [/list] of [/datum/view_record/stickyban_matched_ip] where the impacted IP matches the IP provided. + * Connections matchin this IP will be blocked - provided the linked stickyban is active. + */ +/datum/controller/subsystem/stickyban/proc/get_impacted_ip_records(ip) + return DB_VIEW(/datum/view_record/stickyban_matched_ip, + DB_COMP("ip", DB_EQUALS, ip) + ) + +/// Legacy import from pager bans to database bans. +/datum/controller/subsystem/stickyban/proc/import_sticky(identifier, list/ban_data) + WAIT_DB_READY + + if(ban_data["type"] != "sticky") + handle_old_perma(identifier, ban_data) + return + + if(!ban_data["message"]) + ban_data["message"] = "Evasion" + + add_stickyban(identifier, ban_data["reason"], ban_data["message"], override_date = "LEGACY") + +/** + * We abuse the on_insert from ndatabase here to ensure we have the synced ID of the new stickyban when applying a *lot* of associated bans. If we don't have a matching pager ban with the new sticky's identifier, we stop. + */ +/datum/entity_meta/stickyban/on_insert(datum/entity/stickyban/new_sticky) + var/list/ban_data = params2list(world.GetConfig("ban", new_sticky.identifier)) + + if(!length(ban_data)) + return + + var/list/whitelisted = list() + if(ban_data["whitelist"]) + whitelisted = splittext(ban_data["whitelist"], ",") + for(var/key in whitelisted) + SSstickyban.whitelist_ckey(new_sticky.id, key) + + if(ban_data["keys"]) + var/list/keys = splittext(ban_data["keys"], ",") + keys -= whitelisted + for(var/key in keys) + SSstickyban.add_matched_ckey(new_sticky.id, key) + + if(ban_data["computer_id"]) + var/list/cids = splittext(ban_data["computer_id"], ",") + for(var/cid in cids) + SSstickyban.add_matched_cid(new_sticky.id, cid) + + if(ban_data["IP"]) + var/list/ips = splittext(ban_data["IP"], ",") + for(var/ip in ips) + SSstickyban.add_matched_ip(new_sticky.id, ip) + + world.SetConfig("ban", new_sticky.identifier, null) + +/// Imports permabans from the old ban.txt, and does *not* ban people that have been whitelisted. +/datum/controller/subsystem/stickyban/proc/handle_old_perma(identifier, list/ban_data) + var/list/keys_to_ban = list() + + keys_to_ban += splittext(ban_data["keys"], ",") + + for(var/x in 1 to length(keys_to_ban)) + keys_to_ban[x] = ckey(keys_to_ban[x]) + + var/list/keys = splittext(ban_data["whitelist"], ",") + for(var/key in keys) + keys_to_ban -= ckey(key) + + for(var/key in keys_to_ban) + var/datum/entity/player/player_entity = get_player_from_key(key) + if(!player_entity) + continue + + INVOKE_ASYNC(player_entity, TYPE_PROC_REF(/datum/entity/player, add_perma_ban), ban_data["message"]) + + world.SetConfig("ban", identifier, null) diff --git a/code/controllers/subsystem/techtree.dm b/code/controllers/subsystem/techtree.dm index 04ac2591bc15..5f22373228f0 100644 --- a/code/controllers/subsystem/techtree.dm +++ b/code/controllers/subsystem/techtree.dm @@ -34,17 +34,6 @@ SUBSYSTEM_DEF(techtree) var/datum/space_level/zpos = SSmapping.add_new_zlevel(tree.name, list(ZTRAIT_TECHTREE)) tree.zlevel = zpos - var/zlevel = zpos.z_value - var/turf/z_min = locate(1, 1, zlevel) - var/turf/z_max = locate(world.maxx, world.maxy, zlevel) - - - - for(var/t in block(z_min, z_max)) - var/turf/Tu = t - Tu.ChangeTurf(/turf/closed/void, list(/turf/closed/void)) - new /area/techtree(Tu) - for(var/tier in tree.tree_tiers) tree.unlocked_techs += tier tree.all_techs += tier diff --git a/code/controllers/subsystem/tgui.dm b/code/controllers/subsystem/tgui.dm index 0bd0c29e450a..a3ef03f3e397 100644 --- a/code/controllers/subsystem/tgui.dm +++ b/code/controllers/subsystem/tgui.dm @@ -45,8 +45,8 @@ SUBSYSTEM_DEF(tgui) src.current_run = open_uis.Copy() // Cache for sanic speed (lists are references anyways) var/list/current_run = src.current_run - while(current_run.len) - var/datum/tgui/ui = current_run[current_run.len] + while(length(current_run)) + var/datum/tgui/ui = current_run[length(current_run)] current_run.len-- // TODO: Move user/src_object check to process() if(ui?.user && ui.src_object) diff --git a/code/controllers/subsystem/ticker.dm b/code/controllers/subsystem/ticker.dm index 4b4468c08429..1a6f98ee4cca 100644 --- a/code/controllers/subsystem/ticker.dm +++ b/code/controllers/subsystem/ticker.dm @@ -8,6 +8,10 @@ SUBSYSTEM_DEF(ticker) var/current_state = GAME_STATE_STARTUP //State of current round used by process() var/force_ending = FALSE //Round was ended by admin intervention + + /// If TRUE, there is no lobby phase, the game starts immediately. + var/start_immediately = FALSE + var/bypass_checks = FALSE //Bypass mode init checks var/setup_failed = FALSE //If the setup has failed at any point var/setup_started = FALSE @@ -46,6 +50,7 @@ SUBSYSTEM_DEF(ticker) var/totalPlayers = 0 //used for pregame stats on statpanel var/totalPlayersReady = 0 //used for pregame stats on statpanel + var/tutorial_disabled = FALSE /datum/controller/subsystem/ticker/Initialize(timeofday) load_mode() @@ -64,7 +69,7 @@ SUBSYSTEM_DEF(ticker) if(isnull(start_at)) start_at = time_left || world.time + (CONFIG_GET(number/lobby_countdown) * 10) to_chat_spaced(world, type = MESSAGE_TYPE_SYSTEM, margin_top = 2, margin_bottom = 0, html = SPAN_ROUNDHEADER("Welcome to the pre-game lobby of [CONFIG_GET(string/servername)]!")) - to_chat_spaced(world, type = MESSAGE_TYPE_SYSTEM, margin_top = 0, html = SPAN_ROUNDBODY("Please, setup your character and select ready. Game will start in [round(time_left / 10) || CONFIG_GET(number/lobby_countdown)] seconds.")) + to_chat_spaced(world, type = MESSAGE_TYPE_SYSTEM, margin_top = 0, html = SPAN_ROUNDBODY("Please, setup your character and select ready. Game will start in [floor(time_left / 10) || CONFIG_GET(number/lobby_countdown)] seconds.")) SEND_GLOBAL_SIGNAL(COMSIG_GLOB_MODE_PREGAME_LOBBY) current_state = GAME_STATE_PREGAME fire() @@ -79,6 +84,10 @@ SUBSYSTEM_DEF(ticker) var/mob/new_player/player = i if(player.ready) // TODO: port this == PLAYER_READY_TO_PLAY) ++totalPlayersReady + + if(start_immediately) + time_left = 0 + if(time_left < 0 || delay_start) return @@ -171,7 +180,27 @@ SUBSYSTEM_DEF(ticker) CHECK_TICK if(!mode.can_start(bypass_checks)) - to_chat(world, "Reverting to pre-game lobby.") + to_chat(world, "Requirements to start [GLOB.master_mode] not met. Reverting to pre-game lobby.") + // Make only one more attempt + if(world.time - 2 * wait > CONFIG_GET(number/lobby_countdown) SECONDS) + flash_clients() + delay_start = TRUE + var/active_admins = 0 + for(var/client/admin_client in GLOB.admins) + if(!admin_client.is_afk() && check_client_rights(admin_client, R_SERVER, FALSE)) + active_admins = TRUE + break + if(active_admins) + to_chat(world, SPAN_CENTERBOLD("The game start has been delayed.")) + message_admins(SPAN_ADMINNOTICE("Alert: Insufficent players ready to start [GLOB.master_mode].\nEither change mode and map or start round and bypass checks.")) + else + var/fallback_mode = CONFIG_GET(string/gamemode_default) + SSticker.save_mode(fallback_mode) + GLOB.master_mode = fallback_mode + to_chat(world, SPAN_BOLDNOTICE("Notice: The Gamemode for next round has been set to [fallback_mode]")) + handle_map_reboot() + else + to_chat(world, "Attempting again...") QDEL_NULL(mode) GLOB.RoleAuthority.reset_roles() return FALSE @@ -186,7 +215,7 @@ SUBSYSTEM_DEF(ticker) CHECK_TICK mode.announce() if(mode.taskbar_icon) - RegisterSignal(SSdcs, COMSIG_GLOB_CLIENT_LOGIN, PROC_REF(handle_mode_icon)) + RegisterSignal(SSdcs, COMSIG_GLOB_CLIENT_LOGGED_IN, PROC_REF(handle_mode_icon)) set_clients_taskbar_icon(mode.taskbar_icon) if(GLOB.perf_flags & PERF_TOGGLE_LAZYSS) @@ -317,8 +346,8 @@ SUBSYSTEM_DEF(ticker) /datum/controller/subsystem/ticker/proc/GetTimeLeft() if(isnull(SSticker.time_left)) - return round(max(0, start_at - world.time) / 10) - return round(time_left / 10) + return floor(max(0, start_at - world.time) / 10) + return floor(time_left / 10) /datum/controller/subsystem/ticker/proc/SetTimeLeft(newtime) @@ -478,7 +507,6 @@ SUBSYSTEM_DEF(ticker) winset(C, null, "mainwindow.icon=[SSticker.mode.taskbar_icon]") - /datum/controller/subsystem/ticker/proc/hijack_ocurred() if(mode) mode.is_in_endgame = TRUE diff --git a/code/controllers/subsystem/timer.dm b/code/controllers/subsystem/timer.dm index e7e17876d9db..8d819fa3282e 100644 --- a/code/controllers/subsystem/timer.dm +++ b/code/controllers/subsystem/timer.dm @@ -1,7 +1,7 @@ /// Controls how many buckets should be kept, each representing a tick. (1 minutes worth) #define BUCKET_LEN (world.fps*1*60) /// Helper for getting the correct bucket for a given timer -#define BUCKET_POS(timer) (((round((timer.timeToRun - timer.timer_subsystem.head_offset) / world.tick_lag)+1) % BUCKET_LEN)||BUCKET_LEN) +#define BUCKET_POS(timer) (((floor((timer.timeToRun - timer.timer_subsystem.head_offset) / world.tick_lag)+1) % BUCKET_LEN)||BUCKET_LEN) /// Gets the maximum time at which timers will be invoked from buckets, used for deferring to secondary queue #define TIMER_MAX(timer_ss) (timer_ss.head_offset + TICKS2DS(BUCKET_LEN + timer_ss.practical_offset - 1)) /// Max float with integer precision @@ -411,7 +411,7 @@ SUBSYSTEM_DEF(timer) if (flags & TIMER_STOPPABLE) id = num2text(nextid, 100) if (nextid >= SHORT_REAL_LIMIT) - nextid += min(1, 2 ** round(nextid / SHORT_REAL_LIMIT)) + nextid += min(1, 2 ** floor(nextid / SHORT_REAL_LIMIT)) else nextid++ timer_subsystem.timer_id_dict[id] = src @@ -583,7 +583,7 @@ SUBSYSTEM_DEF(timer) be supported and may refuse to run or run with a 0 wait") if (flags & TIMER_CLIENT_TIME) // REALTIMEOFDAY has a resolution of 1 decisecond - wait = max(CEILING(wait, 1), 1) // so if we use tick_lag timers may be inserted in the "past" + wait = max(ceil(wait), 1) // so if we use tick_lag timers may be inserted in the "past" else wait = max(CEILING(wait, world.tick_lag), world.tick_lag) diff --git a/code/controllers/subsystem/tracking.dm b/code/controllers/subsystem/tracking.dm index 3955ace8da09..4dcc5d5c4e29 100644 --- a/code/controllers/subsystem/tracking.dm +++ b/code/controllers/subsystem/tracking.dm @@ -98,7 +98,7 @@ SUBSYSTEM_DEF(tracking) /datum/controller/subsystem/tracking/proc/setup_trackers(mob/mob, tracked_group) if(!tracked_group) - tracked_group = "tracked_[tracked_mobs.len]" + tracked_group = "tracked_[length(tracked_mobs)]" tracked_mobs[tracked_group] = list() leaders[tracked_group] = mob diff --git a/code/controllers/subsystem/vote.dm b/code/controllers/subsystem/vote.dm index 79bd10c65736..85e2a57cc6d6 100644 --- a/code/controllers/subsystem/vote.dm +++ b/code/controllers/subsystem/vote.dm @@ -36,7 +36,7 @@ SUBSYSTEM_DEF(vote) /datum/controller/subsystem/vote/fire() if(mode) - time_remaining = round((started_time + CONFIG_GET(number/vote_period) - world.time)/10) + time_remaining = floor((started_time + CONFIG_GET(number/vote_period) - world.time)/10) if(time_remaining < 0) result() @@ -59,7 +59,7 @@ SUBSYSTEM_DEF(vote) voting.Cut() remove_action_buttons() - UnregisterSignal(SSdcs, COMSIG_GLOB_CLIENT_LOGIN) + UnregisterSignal(SSdcs, COMSIG_GLOB_CLIENT_LOGGED_IN) for(var/c in GLOB.player_list) update_static_data(c) @@ -273,12 +273,14 @@ SUBSYSTEM_DEF(vote) question = "Gamemode vote" randomize_entries = TRUE for(var/mode_type in config.gamemode_cache) - var/datum/game_mode/M = mode_type - if(initial(M.config_tag)) - var/vote_cycle_met = !initial(M.vote_cycle) || (text2num(SSperf_logging?.round?.id) % initial(M.vote_cycle) == 0) - var/min_players_met = length(GLOB.clients) >= M.required_players - if(initial(M.votable) && vote_cycle_met && min_players_met) - choices += initial(M.config_tag) + var/datum/game_mode/cur_mode = mode_type + if(initial(cur_mode.config_tag)) + cur_mode = new mode_type + var/vote_cycle_met = !initial(cur_mode.vote_cycle) || (text2num(SSperf_logging?.round?.id) % initial(cur_mode.vote_cycle) == 0) + var/min_players_met = length(GLOB.clients) >= cur_mode.required_players + if(initial(cur_mode.votable) && vote_cycle_met && min_players_met) + choices += initial(cur_mode.config_tag) + qdel(cur_mode) if("groundmap") question = "Ground map vote" vote_sound = 'sound/voice/start_your_voting.ogg' @@ -360,8 +362,8 @@ SUBSYSTEM_DEF(vote) log_vote(text) var/vp = CONFIG_GET(number/vote_period) SEND_SOUND(world, sound(vote_sound, channel = SOUND_CHANNEL_VOX, volume = vote_sound_vol)) - to_chat(world, SPAN_CENTERBOLD("

[text]
Type vote or click here to place your votes.
You have [DisplayTimeText(vp)] to vote.


")) - time_remaining = round(vp/10) + to_chat(world, SPAN_CENTERBOLD("

[text]
Type vote or click here to place your votes.
You have [DisplayTimeText(vp)] to vote.


")) + time_remaining = floor(vp/10) for(var/c in GLOB.clients) var/client/C = c var/datum/action/innate/vote/V = give_action(C.mob, /datum/action/innate/vote) @@ -371,14 +373,14 @@ SUBSYSTEM_DEF(vote) if(send_clients_vote) C.mob.vote() - RegisterSignal(SSdcs, COMSIG_GLOB_CLIENT_LOGIN, PROC_REF(handle_client_joining)) + RegisterSignal(SSdcs, COMSIG_GLOB_CLIENT_LOGGED_IN, PROC_REF(handle_client_joining)) SStgui.update_uis(src) return TRUE return FALSE /datum/controller/subsystem/vote/proc/map_vote_adjustment(current_votes, carry_over, total_votes) // Get 10% of the total map votes and remove them from the pool - var/total_vote_adjustment = round(total_votes * CONFIG_GET(number/vote_adjustment_callback)) + var/total_vote_adjustment = floor(total_votes * CONFIG_GET(number/vote_adjustment_callback)) // Do not remove more votes than were made for the map return -(min(current_votes, total_vote_adjustment)) @@ -523,7 +525,7 @@ GLOBAL_LIST_INIT(possible_vote_types, list( if(!(params["vote_type"] in GLOB.possible_vote_types)) return - if(!check_rights(R_ADMIN)) + if(!check_rights(R_MOD)) var/list/vote_type = GLOB.possible_vote_types[params["vote_type"]] if(vote_type["admin_only"]) return diff --git a/code/controllers/subsystem/x_evolution.dm b/code/controllers/subsystem/x_evolution.dm index be787b37de80..857af8117df2 100644 --- a/code/controllers/subsystem/x_evolution.dm +++ b/code/controllers/subsystem/x_evolution.dm @@ -11,6 +11,7 @@ SUBSYSTEM_DEF(xevolution) var/time_ratio_modifier = 0.4 var/list/boost_power = list() + var/list/overridden_power = list() var/force_boost_power = FALSE // Debugging only /datum/controller/subsystem/xevolution/Initialize(start_timeofday) @@ -18,6 +19,7 @@ SUBSYSTEM_DEF(xevolution) for(var/hivenumber in GLOB.hive_datum) HS = GLOB.hive_datum[hivenumber] boost_power[HS.hivenumber] = 1 + overridden_power[HS.hivenumber] = FALSE return SS_INIT_SUCCESS /datum/controller/subsystem/xevolution/fire(resumed = FALSE) @@ -27,6 +29,9 @@ SUBSYSTEM_DEF(xevolution) if(!HS) continue + if(overridden_power[HS.hivenumber]) + continue + if(!HS.dynamic_evolution) boost_power[HS.hivenumber] = HS.evolution_rate + HS.evolution_bonus HS.hive_ui.update_burrowed_larva() @@ -42,7 +47,7 @@ SUBSYSTEM_DEF(xevolution) //Add on any bonuses from thie hivecore after applying upgrade progress boost_power_new += (0.5 * HS.has_special_structure(XENO_STRUCTURE_CORE)) - boost_power_new = Clamp(boost_power_new, BOOST_POWER_MIN, BOOST_POWER_MAX) + boost_power_new = clamp(boost_power_new, BOOST_POWER_MIN, BOOST_POWER_MAX) boost_power_new += HS.evolution_bonus if(!force_boost_power) @@ -54,6 +59,12 @@ SUBSYSTEM_DEF(xevolution) /datum/controller/subsystem/xevolution/proc/get_evolution_boost_power(hivenumber) return boost_power[hivenumber] +/datum/controller/subsystem/xevolution/proc/override_power(hivenumber, power, override) + var/datum/hive_status/hive_status = GLOB.hive_datum[hivenumber] + boost_power[hivenumber] = power + overridden_power[hivenumber] = override + hive_status.hive_ui.update_burrowed_larva() + #undef EVOLUTION_INCREMENT_TIME #undef BOOST_POWER_MIN #undef BOOST_POWER_MAX diff --git a/code/controllers/subsystem/xeno.dm b/code/controllers/subsystem/xeno.dm index 0623da804254..df711fd90366 100644 --- a/code/controllers/subsystem/xeno.dm +++ b/code/controllers/subsystem/xeno.dm @@ -7,7 +7,7 @@ SUBSYSTEM_DEF(xeno) var/list/currentrun = list() /datum/controller/subsystem/xeno/stat_entry(msg) - msg = "P:[GLOB.xeno_mob_list.len]" + msg = "P:[length(GLOB.xeno_mob_list)]" return ..() @@ -15,8 +15,8 @@ SUBSYSTEM_DEF(xeno) if (!resumed) currentrun = GLOB.xeno_mob_list.Copy() - while (currentrun.len) - var/mob/living/carbon/xenomorph/M = currentrun[currentrun.len] + while (length(currentrun)) + var/mob/living/carbon/xenomorph/M = currentrun[length(currentrun)] currentrun.len-- if (!M || QDELETED(M)) diff --git a/code/datums/ASRS.dm b/code/datums/ASRS.dm index 57eff892fa58..dc5ebc362fd1 100644 --- a/code/datums/ASRS.dm +++ b/code/datums/ASRS.dm @@ -66,6 +66,14 @@ reference_package = /datum/supply_packs/ammo_shell_box_flechette cost = ASRS_VERY_LOW_WEIGHT +/datum/supply_packs_asrs/ammo_shell_box_breaching + reference_package = /datum/supply_packs/ammo_shell_box_breaching + cost = ASRS_VERY_LOW_WEIGHT + +/datum/supply_packs_asrs/ammo_xm51 + reference_package = /datum/supply_packs/ammo_xm51 + cost = ASRS_VERY_LOW_WEIGHT + /datum/supply_packs_asrs/ammo_smartgun reference_package = /datum/supply_packs/ammo_smartgun diff --git a/code/datums/_ndatabase/code/brsql_adapter.dm b/code/datums/_ndatabase/code/brsql_adapter.dm index 251267a04fdb..2362572f588a 100644 --- a/code/datums/_ndatabase/code/brsql_adapter.dm +++ b/code/datums/_ndatabase/code/brsql_adapter.dm @@ -103,7 +103,7 @@ /datum/db/adapter/brsql_adapter/insert_table(table_name, list/values, datum/callback/CB, sync = FALSE) set waitfor = FALSE - var/length = values.len + var/length = length(values) var/list/qpars = list() var/query_inserttable = getquery_insert_table(table_name, values, qpars) var/datum/callback/callback = CALLBACK(src, TYPE_PROC_REF(/datum/db/adapter/brsql_adapter, after_insert_table), CB, length, table_name) @@ -150,7 +150,7 @@ if(table_meta.status != DB_QUERY_FINISHED) issue_log += "Unable to access system table, error: '[table_meta.error]'" return FALSE // OH SHIT OH FUCK - if(!table_meta.results.len) // Table doesn't exist + if(!length(table_meta.results)) // Table doesn't exist return internal_create_table(table_name, field_types) && internal_record_table_in_sys(type_name, table_name, field_types) var/id = table_meta.results[1][DB_DEFAULT_ID_FIELD] @@ -178,7 +178,7 @@ if(index_meta.status != DB_QUERY_FINISHED) issue_log += "Unable to access system index table, error: '[index_meta.error]'" return FALSE // OH SHIT OH FUCK - if(!index_meta.results.len) // Index doesn't exist + if(!length(index_meta.results)) // Index doesn't exist return internal_create_index(index_name, table_name, fields, unique, cluster) && internal_record_index_in_sys(index_name, table_name, fields) var/id = index_meta.results[1][DB_DEFAULT_ID_FIELD] diff --git a/code/datums/_ndatabase/code/native_adapter.dm b/code/datums/_ndatabase/code/native_adapter.dm index 1c23a6ceab8f..d5956ca8d85f 100644 --- a/code/datums/_ndatabase/code/native_adapter.dm +++ b/code/datums/_ndatabase/code/native_adapter.dm @@ -92,7 +92,7 @@ /datum/db/adapter/native_adapter/insert_table(table_name, list/values, datum/callback/CB, sync = FALSE) set waitfor = 0 - var/length = values.len + var/length = length(values) var/startid = internal_request_insert_allocation(table_name, length) var/list/qpars = list() var/query_inserttable = getquery_insert_table(table_name, values, startid, qpars) @@ -138,7 +138,7 @@ if(table_meta.status != DB_QUERY_FINISHED) issue_log += "Unable to access system table, error: '[table_meta.error]'" return FALSE // OH SHIT OH FUCK - if(!table_meta.results.len) // Table doesn't exist + if(!length(table_meta.results)) // Table doesn't exist return internal_create_table(table_name, field_types) && internal_record_table_in_sys(type_name, table_name, field_types) var/id = table_meta.results[1][DB_DEFAULT_ID_FIELD] diff --git a/code/datums/_ndatabase/code/native_persistent_query.dm b/code/datums/_ndatabase/code/native_persistent_query.dm index 15e505d578d7..39025aa1fd93 100644 --- a/code/datums/_ndatabase/code/native_persistent_query.dm +++ b/code/datums/_ndatabase/code/native_persistent_query.dm @@ -29,7 +29,7 @@ /datum/db/query/native/read_single() if(status >= DB_QUERY_FINISHED || completed) //broken or finished return - + if(!completed) completed = TRUE var/status = query.Execute(db) @@ -41,9 +41,9 @@ if(!results) results = list() var/list/cols = query.Columns() - if(cols && cols.len>0) + if(LAZYLEN(cols)>0) while(query.NextRow()) var/list/current_row = query.GetRowData() results += list(current_row) - affected_rows = query.RowsAffected() + affected_rows = query.RowsAffected() status = DB_QUERY_FINISHED diff --git a/code/datums/_ndatabase/subsystems/database_query_manager.dm b/code/datums/_ndatabase/subsystems/database_query_manager.dm index 596d55121920..5a68c4e349c1 100644 --- a/code/datums/_ndatabase/subsystems/database_query_manager.dm +++ b/code/datums/_ndatabase/subsystems/database_query_manager.dm @@ -62,7 +62,7 @@ GLOBAL_REAL(SSdatabase, /datum/controller/subsystem/database_query_manager) /datum/controller/subsystem/database_query_manager/stat_entry(msg) var/text = (connection && connection.status == DB_CONNECTION_READY) ? ("READY") : ("PREPPING") - msg = "[text], AQ:[queries_active.len]; SQ:[queries_standby.len]; P:[queries_current.len]; C:[in_callback]" + msg = "[text], AQ:[length(queries_active)]; SQ:[length(queries_standby)]; P:[length(queries_current)]; C:[in_callback]" return ..() /datum/controller/subsystem/database_query_manager/fire(resumed = FALSE) diff --git a/code/datums/_ndatabase/subsystems/entity_manager.dm b/code/datums/_ndatabase/subsystems/entity_manager.dm index 833bc6926e09..2ef5da2b22dd 100644 --- a/code/datums/_ndatabase/subsystems/entity_manager.dm +++ b/code/datums/_ndatabase/subsystems/entity_manager.dm @@ -102,8 +102,8 @@ GLOBAL_REAL(SSentity_manager, /datum/controller/subsystem/entity_manager) currentrun = tables_unsorted.Copy() if(!SSdatabase.connection.connection_ready()) return - while (currentrun.len) - var/datum/entity_meta/Q = currentrun[currentrun.len] + while (length(currentrun)) + var/datum/entity_meta/Q = currentrun[length(currentrun)] do_select(Q) do_insert(Q) do_update(Q) diff --git a/code/datums/_ndatabase/tests/test_entity.dm b/code/datums/_ndatabase/tests/test_entity.dm index de1942eec7d3..3bc9cc829bf4 100644 --- a/code/datums/_ndatabase/tests/test_entity.dm +++ b/code/datums/_ndatabase/tests/test_entity.dm @@ -50,7 +50,7 @@ SSentity_manager.filter_then(/datum/entity/test_entity, DB_COMP("value", DB_EQUALS, value), CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(log_filter))) /proc/log_filter(list/datum/entity/elist) - to_world("got [elist.len] items") + to_world("got [length(elist)] items") /proc/log_sync(datum/entity/test_entity/ET) to_world("id:[ET.id] = name: [ET.name], description: [ET.description], value: [ET.value]") diff --git a/code/datums/action.dm b/code/datums/action.dm index 0510a43415a7..d1768655a2da 100644 --- a/code/datums/action.dm +++ b/code/datums/action.dm @@ -11,9 +11,9 @@ var/cost = 0 // By default an action has no cost -> will be utilized by skill actions/xeno actions var/action_flags = 0 // Check out __game.dm for flags /// Whether the action is hidden from its owner - /// Useful for when you want to preserve action state while preventing - /// a mob from using said action - var/hidden = FALSE + var/hidden = FALSE //Preserve action state while preventing mob from using action + ///Hide the action from the owner without preventing them from using it (incase of keybind listen_signal) + var/player_hidden = FALSE var/unique = TRUE /// A signal on the mob that will cause the action to activate var/listen_signal @@ -191,6 +191,8 @@ var/mob/living/carbon/human/human = owner if(human.body_position == STANDING_UP) return TRUE + if((HAS_TRAIT(owner, TRAIT_OPPOSABLE_THUMBS)) && !owner.is_mob_incapacitated()) + return TRUE /datum/action/item_action/update_button_icon() button.overlays.Cut() @@ -227,7 +229,7 @@ var/atom/movable/screen/action_button/B = A.button if(reload_screen) client.add_to_screen(B) - if(A.hidden) + if(A.hidden || A.player_hidden) B.screen_loc = null continue button_number++ diff --git a/code/datums/agents/tools/stunbaton.dm b/code/datums/agents/tools/stunbaton.dm index b00f4e56f846..5e020aea8114 100644 --- a/code/datums/agents/tools/stunbaton.dm +++ b/code/datums/agents/tools/stunbaton.dm @@ -5,14 +5,3 @@ hitcost = 500 stunforce = 40 has_user_lock = FALSE - -/obj/item/weapon/baton/antag/check_user_auth(mob/user) - if(!skillcheckexplicit(user, SKILL_ANTAG, SKILL_ANTAG_AGENT)) - user.visible_message(SPAN_NOTICE("[src] beeps as [user] picks it up"), SPAN_DANGER("WARNING: Unauthorized user detected. Denying access...")) - user.apply_effect(10, DAZE) - user.visible_message(SPAN_WARNING("[src] beeps and sends a shock through [user]'s body!")) - deductcharge(hitcost) - - return FALSE - - return TRUE diff --git a/code/datums/ammo/ammo.dm b/code/datums/ammo/ammo.dm index cff78f5fb553..022909691cfc 100644 --- a/code/datums/ammo/ammo.dm +++ b/code/datums/ammo/ammo.dm @@ -84,7 +84,7 @@ /// that will be given to a projectile with the current ammo datum var/list/list/traits_to_give - var/flamer_reagent_type = /datum/reagent/napalm/ut + var/flamer_reagent_id = "utnapthal" /// The flicker that plays when a bullet hits a target. Usually red. Can be nulled so it doesn't show up at all. var/hit_effect_color = "#FF0000" @@ -106,7 +106,7 @@ SHOULD_NOT_SLEEP(TRUE) return -/datum/ammo/proc/on_embed(mob/embedded_mob, obj/limb/target_organ) +/datum/ammo/proc/on_embed(mob/embedded_mob, obj/limb/target_organ, silent = FALSE) return /datum/ammo/proc/do_at_max_range(obj/projectile/P) @@ -164,7 +164,8 @@ /datum/ammo/proc/knockback_effects(mob/living/living_mob, obj/projectile/fired_projectile) if(iscarbonsizexeno(living_mob)) var/mob/living/carbon/xenomorph/target = living_mob - target.apply_effect(0.7, WEAKEN) // 0.9 seconds of stun, per agreement from Balance Team when switched from MC stuns to exact stuns + target.Stun(0.7) // Previous comment said they believed 0.7 was 0.9s and that the balance team approved this. Geez... + target.KnockDown(0.7) target.apply_effect(1, SUPERSLOW) target.apply_effect(2, SLOW) to_chat(target, SPAN_XENODANGER("You are shaken by the sudden impact!")) @@ -211,7 +212,7 @@ M.apply_damage(damage,damage_type) - if(XNO && XNO.xeno_shields.len) + if(XNO && length(XNO.xeno_shields)) P.play_shielded_hit_effect(M) else P.play_hit_effect(M) @@ -227,8 +228,9 @@ var/obj/projectile/P = new /obj/projectile(curloc, original_P.weapon_cause_data) P.generate_bullet(GLOB.ammo_list[bonus_projectiles_type]) //No bonus damage or anything. - P.accuracy = round(P.accuracy * original_P.accuracy/initial(original_P.accuracy)) //if the gun changes the accuracy of the main projectile, it also affects the bonus ones. + P.accuracy = floor(P.accuracy * original_P.accuracy/initial(original_P.accuracy)) //if the gun changes the accuracy of the main projectile, it also affects the bonus ones. original_P.give_bullet_traits(P) + P.bonus_projectile_check = 2 //It's a bonus projectile! var/total_scatter_angle = P.scatter final_angle += rand(-total_scatter_angle, total_scatter_angle) @@ -236,11 +238,12 @@ P.fire_at(new_target, original_P.firer, original_P.shot_from, P.ammo.max_range, P.ammo.shell_speed, original_P.original) //Fire! -/datum/ammo/proc/drop_flame(turf/T, datum/cause_data/cause_data) // ~Art updated fire 20JAN17 - if(!istype(T)) +/datum/ammo/proc/drop_flame(turf/turf, datum/cause_data/cause_data) // ~Art updated fire 20JAN17 + if(!istype(turf)) return - if(locate(/obj/flamer_fire) in T) + if(locate(/obj/flamer_fire) in turf) return - var/datum/reagent/R = new flamer_reagent_type() - new /obj/flamer_fire(T, cause_data, R) + var/datum/reagent/chemical = GLOB.chemical_reagents_list[flamer_reagent_id] + + new /obj/flamer_fire(turf, cause_data, chemical) diff --git a/code/datums/ammo/bullet/arc.dm b/code/datums/ammo/bullet/arc.dm new file mode 100644 index 000000000000..277cda59bedf --- /dev/null +++ b/code/datums/ammo/bullet/arc.dm @@ -0,0 +1,14 @@ +/datum/ammo/bullet/re700 + name = "rotary cannon bullet" + icon_state = "autocannon" + damage_falloff = 0 + flags_ammo_behavior = AMMO_BALLISTIC + + accuracy = HIT_ACCURACY_TIER_7 + scatter = 0 + damage = 30 + damage_var_high = PROJECTILE_VARIANCE_TIER_8 + penetration = ARMOR_PENETRATION_TIER_3 + accurate_range = 10 + max_range = 12 + shell_speed = AMMO_SPEED_TIER_6 diff --git a/code/datums/ammo/bullet/pistol.dm b/code/datums/ammo/bullet/pistol.dm index 8be63b0a15af..ced951241754 100644 --- a/code/datums/ammo/bullet/pistol.dm +++ b/code/datums/ammo/bullet/pistol.dm @@ -62,11 +62,11 @@ /datum/ammo/bullet/pistol/ap/toxin/on_hit_mob(mob/M, obj/projectile/P) . = ..() - M.AddComponent(/datum/component/toxic_buildup, acid_per_hit) + M.AddComponent(/datum/component/status_effect/toxic_buildup, acid_per_hit) /datum/ammo/bullet/pistol/ap/toxin/on_hit_turf(turf/T, obj/projectile/P) . = ..() - if(T.flags_turf & TURF_ORGANIC) + if(T.turf_flags & TURF_ORGANIC) P.damage *= organic_damage_mult /datum/ammo/bullet/pistol/ap/toxin/on_hit_obj(obj/O, obj/projectile/P) @@ -180,6 +180,7 @@ headshot_state = HEADSHOT_OVERLAY_MEDIUM debilitate = list(0,0,0,0,0,0,0,2) + effective_range_max = 3 accuracy = HIT_ACCURACY_TIER_4 damage = 45 penetration= ARMOR_PENETRATION_TIER_6 @@ -193,11 +194,11 @@ /datum/ammo/bullet/pistol/squash/toxin/on_hit_mob(mob/M, obj/projectile/P) . = ..() - M.AddComponent(/datum/component/toxic_buildup, acid_per_hit) + M.AddComponent(/datum/component/status_effect/toxic_buildup, acid_per_hit) /datum/ammo/bullet/pistol/squash/toxin/on_hit_turf(turf/T, obj/projectile/P) . = ..() - if(T.flags_turf & TURF_ORGANIC) + if(T.turf_flags & TURF_ORGANIC) P.damage *= organic_damage_mult /datum/ammo/bullet/pistol/squash/toxin/on_hit_obj(obj/O, obj/projectile/P) diff --git a/code/datums/ammo/bullet/revolver.dm b/code/datums/ammo/bullet/revolver.dm index 633bf3e2f7ff..f9ab0b12d34e 100644 --- a/code/datums/ammo/bullet/revolver.dm +++ b/code/datums/ammo/bullet/revolver.dm @@ -7,14 +7,13 @@ /datum/ammo/bullet/revolver name = "revolver bullet" headshot_state = HEADSHOT_OVERLAY_MEDIUM - - damage = 55 + damage = 72 penetration = ARMOR_PENETRATION_TIER_1 accuracy = HIT_ACCURACY_TIER_1 /datum/ammo/bullet/revolver/marksman name = "marksman revolver bullet" - + damage = 55 shrapnel_chance = 0 damage_falloff = 0 accurate_range = 12 @@ -48,11 +47,11 @@ /datum/ammo/bullet/revolver/marksman/toxin/on_hit_mob(mob/M, obj/projectile/P) . = ..() - M.AddComponent(/datum/component/toxic_buildup, acid_per_hit) + M.AddComponent(/datum/component/status_effect/toxic_buildup, acid_per_hit) /datum/ammo/bullet/revolver/marksman/toxin/on_hit_turf(turf/T, obj/projectile/P) . = ..() - if(T.flags_turf & TURF_ORGANIC) + if(T.turf_flags & TURF_ORGANIC) P.damage *= organic_damage_mult /datum/ammo/bullet/revolver/marksman/toxin/on_hit_obj(obj/O, obj/projectile/P) diff --git a/code/datums/ammo/bullet/rifle.dm b/code/datums/ammo/bullet/rifle.dm index b6085572e3b9..e127a2ba2663 100644 --- a/code/datums/ammo/bullet/rifle.dm +++ b/code/datums/ammo/bullet/rifle.dm @@ -21,11 +21,16 @@ /datum/ammo/bullet/rifle/holo_target name = "holo-targeting rifle bullet" damage = 30 + /// inflicts this many holo stacks per bullet hit var/holo_stacks = 10 + /// modifies the default cap limit of 100 by this amount + var/bonus_damage_cap_increase = 0 + /// multiplies the default drain of 5 holo stacks per second by this amount + var/stack_loss_multiplier = 1 -/datum/ammo/bullet/rifle/holo_target/on_hit_mob(mob/M, obj/projectile/P) +/datum/ammo/bullet/rifle/holo_target/on_hit_mob(mob/hit_mob, obj/projectile/bullet) . = ..() - M.AddComponent(/datum/component/bonus_damage_stack, holo_stacks, world.time) + hit_mob.AddComponent(/datum/component/bonus_damage_stack, holo_stacks, world.time, bonus_damage_cap_increase, stack_loss_multiplier) /datum/ammo/bullet/rifle/holo_target/hunting name = "holo-targeting hunting bullet" @@ -65,11 +70,11 @@ /datum/ammo/bullet/rifle/ap/toxin/on_hit_mob(mob/M, obj/projectile/P) . = ..() - M.AddComponent(/datum/component/toxic_buildup, acid_per_hit) + M.AddComponent(/datum/component/status_effect/toxic_buildup, acid_per_hit) /datum/ammo/bullet/rifle/ap/toxin/on_hit_turf(turf/T, obj/projectile/P) . = ..() - if(T.flags_turf & TURF_ORGANIC) + if(T.turf_flags & TURF_ORGANIC) P.damage *= organic_damage_mult /datum/ammo/bullet/rifle/ap/toxin/on_hit_obj(obj/O, obj/projectile/P) @@ -169,15 +174,16 @@ shell_speed = AMMO_SPEED_TIER_6 /datum/ammo/bullet/rifle/m4ra/impact/on_hit_mob(mob/M, obj/projectile/P) - knockback(M, P, 32) // Can knockback basically at max range + knockback(M, P, 32) // Can knockback basically at max range max range is 24 tiles... /datum/ammo/bullet/rifle/m4ra/impact/knockback_effects(mob/living/living_mob, obj/projectile/fired_projectile) if(iscarbonsizexeno(living_mob)) var/mob/living/carbon/xenomorph/target = living_mob to_chat(target, SPAN_XENODANGER("You are shaken and slowed by the sudden impact!")) - target.apply_effect(0.5, WEAKEN) - target.apply_effect(2, SUPERSLOW) - target.apply_effect(5, SLOW) + target.KnockDown(0.5-fired_projectile.distance_travelled/100) // purely for visual effect, noone actually cares + target.Stun(0.5-fired_projectile.distance_travelled/100) + target.apply_effect(2-fired_projectile.distance_travelled/20, SUPERSLOW) + target.apply_effect(5-fired_projectile.distance_travelled/10, SLOW) else if(!isyautja(living_mob)) //Not predators. living_mob.apply_effect(1, SUPERSLOW) diff --git a/code/datums/ammo/bullet/shotgun.dm b/code/datums/ammo/bullet/shotgun.dm index 77e1e6401472..e71114dc24de 100644 --- a/code/datums/ammo/bullet/shotgun.dm +++ b/code/datums/ammo/bullet/shotgun.dm @@ -25,7 +25,8 @@ if(iscarbonsizexeno(living_mob)) var/mob/living/carbon/xenomorph/target = living_mob to_chat(target, SPAN_XENODANGER("You are shaken and slowed by the sudden impact!")) - target.apply_effect(0.5, WEAKEN) + target.KnockDown(0.5) // If you ask me the KD should be left out, but players like their visual cues + target.Stun(0.5) target.apply_effect(1, SUPERSLOW) target.apply_effect(3, SLOW) else @@ -249,7 +250,8 @@ if(iscarbonsizexeno(living_mob)) var/mob/living/carbon/xenomorph/target = living_mob to_chat(target, SPAN_XENODANGER("You are shaken and slowed by the sudden impact!")) - target.apply_effect(0.5, WEAKEN) + target.KnockDown(0.5) // If you ask me the KD should be left out, but players like their visual cues + target.Stun(0.5) target.apply_effect(2, SUPERSLOW) target.apply_effect(5, SLOW) else @@ -309,6 +311,32 @@ penetration = ARMOR_PENETRATION_TIER_10 scatter = SCATTER_AMOUNT_TIER_4 +/* + 16 GAUGE SHOTGUN AMMO +*/ + +/datum/ammo/bullet/shotgun/light/breaching + name = "light breaching shell" + icon_state = "flechette" + handful_state = "breaching_shell" + multiple_handful_name = TRUE + bonus_projectiles_type = /datum/ammo/bullet/shotgun/light/breaching/spread + + accuracy_var_low = PROJECTILE_VARIANCE_TIER_6 + accuracy_var_high = PROJECTILE_VARIANCE_TIER_6 + damage = 55 + max_range = 5 + bonus_projectiles_amount = EXTRA_PROJECTILES_TIER_3 + penetration = ARMOR_PENETRATION_TIER_1 + +/datum/ammo/bullet/shotgun/light/breaching/spread + name = "additional light breaching fragments" + bonus_projectiles_amount = 0 + accuracy_var_low = PROJECTILE_VARIANCE_TIER_6 + accuracy_var_high = PROJECTILE_VARIANCE_TIER_6 + scatter = SCATTER_AMOUNT_TIER_3 + damage = 10 + //Enormous shell for Van Bandolier's superheavy double-barreled hunting gun. /datum/ammo/bullet/shotgun/twobore name = "two bore bullet" @@ -338,7 +366,8 @@ return shake_camera(M, 3, 4) - M.apply_effect(2, WEAKEN) + M.KnockDown(2) // If you ask me the KD should be left out, but players like their visual cues + M.Stun(2) M.apply_effect(4, SLOW) if(iscarbonsizexeno(M)) to_chat(M, SPAN_XENODANGER("The impact knocks you off your feet!")) @@ -351,7 +380,8 @@ if(iscarbonsizexeno(living_mob)) var/mob/living/carbon/xenomorph/target = living_mob to_chat(target, SPAN_XENODANGER("You are shaken and slowed by the sudden impact!")) - target.apply_effect(0.5, WEAKEN) + target.KnockDown(0.5) // If you ask me the KD should be left out, but players like their visual cues + target.Stun(0.5) target.apply_effect(2, SUPERSLOW) target.apply_effect(5, SLOW) else diff --git a/code/datums/ammo/bullet/smg.dm b/code/datums/ammo/bullet/smg.dm index e24b3021da97..0e8983a33a87 100644 --- a/code/datums/ammo/bullet/smg.dm +++ b/code/datums/ammo/bullet/smg.dm @@ -47,11 +47,11 @@ /datum/ammo/bullet/smg/ap/toxin/on_hit_mob(mob/M, obj/projectile/P) . = ..() - M.AddComponent(/datum/component/toxic_buildup, acid_per_hit) + M.AddComponent(/datum/component/status_effect/toxic_buildup, acid_per_hit) /datum/ammo/bullet/smg/ap/toxin/on_hit_turf(turf/T, obj/projectile/P) . = ..() - if(T.flags_turf & TURF_ORGANIC) + if(T.turf_flags & TURF_ORGANIC) P.damage *= organic_damage_mult /datum/ammo/bullet/smg/ap/toxin/on_hit_obj(obj/O, obj/projectile/P) diff --git a/code/datums/ammo/bullet/sniper.dm b/code/datums/ammo/bullet/sniper.dm index a82f00631608..eceea9f36fd3 100644 --- a/code/datums/ammo/bullet/sniper.dm +++ b/code/datums/ammo/bullet/sniper.dm @@ -106,20 +106,167 @@ accuracy = HIT_ACCURACY_TIER_8 damage = 125 shell_speed = AMMO_SPEED_TIER_6 + penetration = ARMOR_PENETRATION_TIER_10 + ARMOR_PENETRATION_TIER_5 + +/datum/ammo/bullet/sniper/anti_materiel/proc/stopping_power_knockback(mob/living/living_mob, obj/projectile/fired_projectile) + var/stopping_power = min(CEILING((fired_projectile.damage/30), 1), 5) // This is from bullet damage, and does not take Aimed Shot into account. + + if(!living_mob || living_mob == fired_projectile.firer) + return stopping_power + + if(stopping_power > 2) + + // Depending on target size and damage, may apply a mini-stun to interrupt channels. Support your allies! + // For reference: Scout Impact stuns for up to 1s and slows for up to 10s, Shotgun stuns for 1.4s and slows for 4s + if(living_mob.mob_size >= MOB_SIZE_BIG) + // If above 90 damage, screenshake. This maxes out at (2,3), weaker than other impact rounds. + if(stopping_power > 3) + shake_camera(living_mob, (stopping_power - 3), (stopping_power - 2)) + if(HAS_TRAIT(living_mob, TRAIT_CHARGING) && isxeno(living_mob)) + to_chat(living_mob, SPAN_WARNING("A sudden massive impact strikes you, but your charge will not be stopped!")) + return stopping_power + if(stopping_power >= 4) + to_chat(living_mob, SPAN_XENOHIGHDANGER("You are knocked off-balance by the sudden massive impact!")) + if(living_mob.mob_size >= MOB_SIZE_IMMOBILE && !((fired_projectile.projectile_flags & PROJECTILE_BULLSEYE) && living_mob == fired_projectile.original)) // Queens and Crushers + return stopping_power // For Crushers and Queens, must be aimed at them. + living_mob.KnockDown(0.05) // Must deal more than 90 damage to mini-stun big mobs for 0.1s + // Can't interrupt a big mob unless it's completely alone with nothing blocking the shot. + else + to_chat(living_mob, SPAN_XENODANGER("You are shaken by the sudden heavy impact!")) + else + // If above 60 damage, screenshake. This maxes out at (3,4) like buckshot and heavy rounds. (1,2) (2,3) or (3,4) + shake_camera(living_mob, (stopping_power - 2), (stopping_power - 1)) + if(living_mob.body_position != LYING_DOWN) + to_chat(living_mob, SPAN_XENOHIGHDANGER("You are thrown back by the sudden massive force!")) + slam_back(living_mob, fired_projectile) + else + to_chat(living_mob, SPAN_XENODANGER("You are shaken by the sudden heavy impact!")) + + if(isxeno(living_mob)) + living_mob.KnockDown((stopping_power - 2)*0.05) // Up to 0.3s on a solo target. + else + if(living_mob.stamina) + living_mob.apply_stamina_damage(fired_projectile.ammo.damage, fired_projectile.def_zone, ARMOR_BULLET) + // Not sure what this comes out to exactly, but follows the example of other heavy ammo like slugs of applying full base damage as stamina damage. + else + living_mob.KnockDown((stopping_power - 2)*0.3) // Rare exception of up to 1.8s on non-xenos without stamina. + + return stopping_power + +/datum/ammo/bullet/sniper/anti_materiel/on_hit_mob(mob/target_mob,obj/projectile/aimed_projectile) + + var/mob/living/living_target = target_mob + + var/stopping_power = stopping_power_knockback(living_target, aimed_projectile) + + if((aimed_projectile.projectile_flags & PROJECTILE_BULLSEYE) && target_mob == aimed_projectile.original) + + var/amr_counter = 0 + var/datum/weakref/old_target = null // This is used to let xenos know when they're no longer targeted. + + var/mob/living/carbon/human/human_firer + var/image/focused_fire_marker_temp = image('icons/mob/hud/hud.dmi', target_mob, "hudeye") + + if(istype(aimed_projectile.firer, /mob/living/carbon/human)) // Preps the Focused Fire marker. + human_firer = aimed_projectile.firer + focused_fire_marker_temp.color = human_firer.assigned_squad?.chat_color + + if(target_mob.icon_size > world.icon_size) // Centers marker on their tile. + focused_fire_marker_temp.pixel_x = (target_mob.icon_size / 4) + + if(istype(aimed_projectile.shot_from, /obj/item/weapon/gun/rifle/sniper/XM43E1)) // Calculates the Focus Counter. + var/obj/item/weapon/gun/rifle/sniper/XM43E1/amr = aimed_projectile.shot_from + + old_target = amr.focused_fire_target + + if(target_mob == (amr.focused_fire_target?.resolve())) + if(amr.focused_fire_counter < 3) // Can stack up to twice. + amr.focused_fire_counter += 1 + else + amr.focused_fire_counter = 0 + else // If it's a new target + amr.focused_fire_counter = 0 // Stacks to 0 + if(human_firer && !(target_mob.is_dead())) + human_firer.client?.images -= human_firer.focused_fire_marker // Remove old marker + qdel(human_firer.focused_fire_marker) + human_firer.focused_fire_marker = focused_fire_marker_temp // Store new marker ref + human_firer.client?.images += focused_fire_marker_temp // Add new marker + + amr_counter = min(amr.focused_fire_counter + 1, 3) + amr.focused_fire_target = WEAKREF(target_mob) + + var/size_damage_mod = 0.8 // 1.8x vs Non-Xenos (225) + var/size_current_health_damage = 0 // % Current Health calculation, only used for Xeno calculations at the moment. + var/focused_fire_active = 0 // Whether to try and use focused fire calculations or not, for that kind of target. + var/slow_duration = stopping_power // Based on damage dealt. + + if(slow_duration <= 2) // Must be over 60 base damage. + slow_duration = 0 + + if(isxeno(target_mob)) + var/mob/living/carbon/xenomorph/target = target_mob + size_damage_mod -= 0.2 // Down to 1.6x damage, 200. + size_current_health_damage = 0.1 // 1.6x Damage + 10% current health (200 + 10%, 223 vs Runners) -/datum/ammo/bullet/sniper/anti_materiel/on_hit_mob(mob/M,obj/projectile/P) - if((P.projectile_flags & PROJECTILE_BULLSEYE) && M == P.original) - var/mob/living/L = M - var/size_damage_mod = 0.8 - if(isxeno(M)) - var/mob/living/carbon/xenomorph/target = M if(target.mob_size >= MOB_SIZE_XENO) - size_damage_mod += 0.6 + size_current_health_damage += 0.1 // 1.6x Damage + 20% current health + focused_fire_active = 1 // Focus Fire Required. Only deals 50% bonus damage on a first Aimed Shot, then 75%, then 100%. Resets with a successful aimed shot on another target. + slow_duration = max(slow_duration-1, 0) + if(target.mob_size >= MOB_SIZE_BIG) - size_damage_mod += 0.6 - L.apply_armoured_damage(damage*size_damage_mod, ARMOR_BULLET, BRUTE, null, penetration) - // 180% damage to all targets (225), 240% (300) against non-Runner xenos, and 300% against Big xenos (375). -Kaga - to_chat(P.firer, SPAN_WARNING("Bullseye!")) + size_damage_mod -= 0.6 // Down to 1x Damage. + size_current_health_damage += 0.1 // 1x Damage + 30% current health. + focused_fire_active = 1 + slow_duration = max(slow_duration-1, 0) + // Most T3s have around 650 to 700 HP, meaning the health modifier grants a MAXIMUM of around 195-210 damage for a total max of 320-335. This is fully focused (3 shots) and at max HP. + // Queen takes around 275 at max health and unfocused, 425 fully focused. + // At low health, does little more than a normal shot. Does WORSE than a normal shot if unfocused and hitting through blockers, all of which stack to reduce it. + + var/final_xeno_damage = ((damage * size_damage_mod) + ((target.health + damage) * size_current_health_damage)) + + if(focused_fire_active && amr_counter) // If this is a target that needs to be focus-fired and the gun supports it, reduce bonus damage to 50%, then 75%, then 100% + // If amr_counter is 0, then the gun likely doesn't have the tracker functions, so skip this and deal normal damage. + final_xeno_damage *= (0.25 + (0.25 * amr_counter)) + slow_duration *= (0.25 + (0.25 * amr_counter)) // 0-3s slow on Big mobs, based on Focus and falloff. + + living_target.apply_armoured_damage((final_xeno_damage), ARMOR_BULLET, BRUTE, null, penetration) + + else + living_target.apply_armoured_damage((damage*size_damage_mod), ARMOR_BULLET, BRUTE, null, penetration) + + if(slow_duration && (living_target.mob_size != MOB_SIZE_XENO_SMALL) && !(HAS_TRAIT(living_target, TRAIT_CHARGING))) // Runners and Charging Crushers are not slowed. + living_target.Slow((slow_duration / 2)) + if(slow_duration >= 2) + living_target.Superslow((slow_duration / 4)) + if(stopping_power > 3) + living_target.Daze(0.1) // Visual cue that you got hit by something HARD. + + // Base 1.8x damage to non-xeno targets (225), 1.6x + 10% current against Runners (223), 1.6x + 20% current health against most non-Runner xenos, and 1x + 30% current health against Big xenos. -Kaga + // This applies after pen reductions. After hitting 1 other thing, it deals 80% damage, or 40% after hitting a dense wall or big xeno. + + if((focused_fire_active || isxeno(target_mob)) && !(target_mob.is_dead())) + switch(amr_counter) + if(1) + to_chat(aimed_projectile.firer, SPAN_WARNING("One hit! You begin to carefully track the target's movements.")) + if(isxeno(target_mob) && isxeno(old_target?.resolve())) + var/mob/living/carbon/xenomorph/old_xeno = old_target.resolve() + var/mob/living/carbon/xenomorph/new_xeno = target_mob + if((old_xeno.hive == new_xeno.hive) && !(old_xeno.stat)) // Must be in same hive and conscious + to_chat(old_xeno,SPAN_XENOLEADER("The feeling of looming danger fades as we sense that another sister has been targeted instead.")) + if(2) + to_chat(aimed_projectile.firer, SPAN_WARNING("Two hits! You're starting to get a good read on the target's patterns.")) + if(3) + to_chat(aimed_projectile.firer, SPAN_WARNING("Bullseye! You're fully focused on the target. You notice they are starting to change their patterns.")) + else + to_chat(aimed_projectile.firer, SPAN_WARNING("Bullseye!")) + else + to_chat(aimed_projectile.firer, SPAN_WARNING("Bullseye!")) + +/datum/ammo/bullet/sniper/anti_materiel/set_bullet_traits() + . = ..() + LAZYADD(traits_to_give, list( + BULLET_TRAIT_ENTRY(/datum/element/bullet_trait_penetrating/weak) + )) /datum/ammo/bullet/sniper/anti_materiel/vulture damage = 400 // Fully intended to vaporize anything smaller than a mini cooper @@ -139,6 +286,28 @@ BULLET_TRAIT_ENTRY(/datum/element/bullet_trait_penetrating/heavy) )) +/datum/ammo/bullet/sniper/anti_materiel/vulture/holo_target + name = "holo-targeting anti-materiel sniper bullet" + damage = 60 // it's a big bullet but its purpose is to support marines, not to kill enemies by itself + /// inflicts this many holo stacks per bullet hit + var/holo_stacks = 333 + /// modifies the default cap limit of 100 by this amount + var/bonus_damage_cap_increase = 233 + /// multiplies the default drain of 5 holo stacks per second by this amount + var/stack_loss_multiplier = 2 + +/datum/ammo/bullet/sniper/anti_materiel/vulture/holo_target/on_hit_mob(mob/hit_mob, obj/projectile/bullet) + hit_mob.AddComponent(/datum/component/bonus_damage_stack, holo_stacks, world.time, bonus_damage_cap_increase, stack_loss_multiplier) + playsound(hit_mob, 'sound/weapons/gun_vulture_mark.ogg', 40) + to_chat(hit_mob, isxeno(hit_mob) ? SPAN_XENOHIGHDANGER("It feels as if we were MARKED FOR DEATH!") : SPAN_HIGHDANGER("It feels as if you were MARKED FOR DEATH!")) + hit_mob.balloon_alert_to_viewers("marked for death!") + +// the effect should be limited to one target, with IFF to compensate how hard it will be to hit these shots +/datum/ammo/bullet/sniper/anti_materiel/vulture/holo_target/set_bullet_traits() + LAZYADD(traits_to_give, list( + BULLET_TRAIT_ENTRY(/datum/element/bullet_trait_iff) + )) + /datum/ammo/bullet/sniper/elite name = "supersonic sniper bullet" @@ -146,6 +315,7 @@ accuracy = HIT_ACCURACY_TIER_8 damage = 150 shell_speed = AMMO_SPEED_TIER_6 + AMMO_SPEED_TIER_2 + penetration = ARMOR_PENETRATION_TIER_10 + ARMOR_PENETRATION_TIER_5 /datum/ammo/bullet/sniper/elite/set_bullet_traits() . = ..() diff --git a/code/datums/ammo/bullet/special_ammo.dm b/code/datums/ammo/bullet/special_ammo.dm index cdf30b1af7fe..97c1bf5735f9 100644 --- a/code/datums/ammo/bullet/special_ammo.dm +++ b/code/datums/ammo/bullet/special_ammo.dm @@ -46,12 +46,16 @@ /datum/ammo/bullet/smartgun/holo_target //Royal marines smartgun bullet has only diff between regular ammo is this one does holostacks name = "holo-targeting smartgun bullet" damage = 30 - ///Stuff for the HRP holotargetting stacks + /// inflicts this many holo stacks per bullet hit var/holo_stacks = 15 + /// modifies the default cap limit of 100 by this amount + var/bonus_damage_cap_increase = 0 + /// multiplies the default drain of 5 holo stacks per second by this amount + var/stack_loss_multiplier = 1 -/datum/ammo/bullet/smartgun/holo_target/on_hit_mob(mob/M, obj/projectile/P) +/datum/ammo/bullet/smartgun/holo_target/on_hit_mob(mob/hit_mob, obj/projectile/bullet) . = ..() - M.AddComponent(/datum/component/bonus_damage_stack, holo_stacks, world.time) + hit_mob.AddComponent(/datum/component/bonus_damage_stack, holo_stacks, world.time, bonus_damage_cap_increase, stack_loss_multiplier) /datum/ammo/bullet/smartgun/holo_target/ap name = "armor-piercing smartgun bullet" @@ -108,6 +112,9 @@ BULLET_TRAIT_ENTRY(/datum/element/bullet_trait_iff) )) +/datum/ammo/bullet/machinegun/doorgun + flags_ammo_behavior = AMMO_BALLISTIC | AMMO_IGNORE_COVER + /datum/ammo/bullet/machinegun/auto // for M2C, automatic variant for M56D, stats for bullet should always be moderately overtuned to fulfill its ultra-offense + flank-push purpose name = "heavy machinegun bullet" diff --git a/code/datums/ammo/energy.dm b/code/datums/ammo/energy.dm index 01c69ffa0015..3ddd11eedf55 100644 --- a/code/datums/ammo/energy.dm +++ b/code/datums/ammo/energy.dm @@ -28,16 +28,16 @@ icon_state = "stun" damage_type = OXY flags_ammo_behavior = AMMO_ENERGY|AMMO_IGNORE_RESIST|AMMO_ALWAYS_FF //Not that ignoring will do much right now. - stamina_damage = 45 accuracy = HIT_ACCURACY_TIER_8 shell_speed = AMMO_SPEED_TIER_1 // Slightly faster hit_effect_color = "#FFFF00" -/datum/ammo/energy/taser/on_hit_mob(mob/M, obj/projectile/P) - if(ishuman(M)) - var/mob/living/carbon/human/H = M - H.disable_special_items() // Disables scout cloak +/datum/ammo/energy/taser/on_hit_mob(mob/mobs, obj/projectile/P) + if(ishuman(mobs)) + var/mob/living/carbon/human/humanus = mobs + humanus.disable_special_items() // Disables scout cloak + humanus.make_jittery(40) /datum/ammo/energy/taser/precise name = "precise taser bolt" @@ -103,8 +103,8 @@ icon_state = "shrapnel_plasma" damage_type = BURN -/datum/ammo/bullet/shrapnel/plasma/on_hit_mob(mob/hit_mob, obj/projectile/hit_projectile) - hit_mob.apply_effect(2, WEAKEN) +/datum/ammo/bullet/shrapnel/plasma/on_hit_mob(mob/living/hit_mob, obj/projectile/hit_projectile) + hit_mob.Stun(2) /datum/ammo/energy/yautja/caster name = "root caster bolt" @@ -141,12 +141,8 @@ log_attack("[key_name(C)] was stunned by a high power stun bolt from [key_name(P.firer)] at [get_area(P)]") if(ishuman(C)) - var/mob/living/carbon/human/H = C stun_time++ - H.apply_effect(stun_time, WEAKEN) - else - M.apply_effect(stun_time, WEAKEN) - + C.apply_effect(stun_time, WEAKEN) C.apply_effect(stun_time, STUN) ..() @@ -217,12 +213,7 @@ continue to_chat(M, SPAN_DANGER("A powerful electric shock ripples through your body, freezing you in place!")) M.apply_effect(stun_time, STUN) - - if (ishuman(M)) - var/mob/living/carbon/human/H = M - H.apply_effect(stun_time, WEAKEN) - else - M.apply_effect(stun_time, WEAKEN) + M.apply_effect(stun_time, WEAKEN) /datum/ammo/energy/yautja/rifle/bolt name = "plasma rifle bolt" @@ -238,4 +229,11 @@ if(isxeno(hit_mob)) var/mob/living/carbon/xenomorph/xeno = hit_mob xeno.apply_damage(damage * 0.75, BURN) - xeno.interference = 30 + xeno.AddComponent(/datum/component/status_effect/interference, 30, 30) + +/datum/ammo/energy/yautja/rifle/bolt/set_bullet_traits() + . = ..() + LAZYADD(traits_to_give, list( + BULLET_TRAIT_ENTRY(/datum/element/bullet_trait_incendiary) + )) + diff --git a/code/datums/ammo/misc.dm b/code/datums/ammo/misc.dm index 607a6e517a7c..9a9ed2fb505b 100644 --- a/code/datums/ammo/misc.dm +++ b/code/datums/ammo/misc.dm @@ -49,11 +49,13 @@ drop_flame(get_turf(P), P.weapon_cause_data) /datum/ammo/flamethrower/tank_flamer - flamer_reagent_type = /datum/reagent/napalm/blue + flamer_reagent_id = "napalmx" + + max_range = 8 /datum/ammo/flamethrower/sentry_flamer flags_ammo_behavior = AMMO_IGNORE_ARMOR|AMMO_IGNORE_COVER|AMMO_FLAME - flamer_reagent_type = /datum/reagent/napalm/blue + flamer_reagent_id = "napalmx" accuracy = HIT_ACCURACY_TIER_8 accurate_range = 6 @@ -95,6 +97,15 @@ R.durationfire = BURN_TIME_INSTANT new /obj/flamer_fire(T, cause_data, R, 0) +/datum/ammo/flamethrower/sentry_flamer/wy + name = "sticky fire" + flamer_reagent_id = "stickynapalm" + shell_speed = AMMO_SPEED_TIER_4 + +/datum/ammo/flamethrower/sentry_flamer/upp + name = "gel fire" + flamer_reagent_id = "napalmgel" + /datum/ammo/flare name = "flare" ping = null //no bounce off. @@ -113,7 +124,7 @@ /datum/ammo/flare/set_bullet_traits() . = ..() LAZYADD(traits_to_give, list( - BULLET_TRAIT_ENTRY(/datum/element/bullet_trait_incendiary) + BULLET_TRAIT_ENTRY(/datum/element/bullet_trait_incendiary, stacks = 2.5) )) /datum/ammo/flare/on_hit_mob(mob/M,obj/projectile/P) @@ -156,11 +167,13 @@ name = "starshell ash" icon_state = "starshell_bullet" max_range = 5 + damage = 2.5 flare_type = /obj/item/device/flashlight/flare/on/starshell_ash /datum/ammo/flare/starshell/set_bullet_traits() LAZYADD(traits_to_give, list( - BULLET_TRAIT_ENTRY(/datum/element/bullet_trait_iff, /datum/element/bullet_trait_incendiary) + BULLET_TRAIT_ENTRY(/datum/element/bullet_trait_iff), + BULLET_TRAIT_ENTRY(/datum/element/bullet_trait_incendiary, stacks = 1) )) /datum/ammo/souto @@ -178,7 +191,7 @@ accurate_range = 12 shell_speed = AMMO_SPEED_TIER_1 -/datum/ammo/souto/on_embed(mob/embedded_mob, obj/limb/target_organ) +/datum/ammo/souto/on_embed(mob/embedded_mob, obj/limb/target_organ, silent = FALSE) if(ishuman(embedded_mob) && !isyautja(embedded_mob)) if(istype(target_organ)) target_organ.embed(new can_type) @@ -187,7 +200,7 @@ if(!M || M == P.firer) return if(M.throw_mode && !M.get_active_hand()) //empty active hand and we're in throw mode. If so we catch the can. if(!M.is_mob_incapacitated()) // People who are not able to catch cannot catch. - if(P.contents.len == 1) + if(length(P.contents) == 1) for(var/obj/item/reagent_container/food/drinks/cans/souto/S in P.contents) M.put_in_active_hand(S) for(var/mob/O in viewers(GLOB.world_view_size, P)) //find all people in view. @@ -201,7 +214,7 @@ H.apply_effect(15, DAZE) H.apply_effect(15, SLOW) shake_camera(H, 2, 1) - if(P.contents.len) + if(length(P.contents)) drop_can(P.loc, P) //We make a can at the location. /datum/ammo/souto/on_hit_obj(obj/O,obj/projectile/P) @@ -217,7 +230,7 @@ drop_can(P.loc, P) //We make a can at the location. /datum/ammo/souto/proc/drop_can(loc, obj/projectile/P) - if(P.contents.len) + if(length(P.contents)) for(var/obj/item/I in P.contents) I.forceMove(loc) randomize_projectile(P) @@ -265,6 +278,9 @@ nade_type = /obj/item/explosive/grenade/smokebomb icon_state = "smoke_shell" +/datum/ammo/grenade_container/tank_glauncher + max_range = 8 + /datum/ammo/hugger_container name = "hugger shell" ping = null diff --git a/code/datums/ammo/rocket.dm b/code/datums/ammo/rocket.dm index 52914f745110..83a94b2d8c5f 100644 --- a/code/datums/ammo/rocket.dm +++ b/code/datums/ammo/rocket.dm @@ -28,26 +28,26 @@ smoke = null . = ..() -/datum/ammo/rocket/on_hit_mob(mob/M, obj/projectile/P) - cell_explosion(get_turf(M), 150, 50, EXPLOSION_FALLOFF_SHAPE_LINEAR, null, P.weapon_cause_data) - smoke.set_up(1, get_turf(M)) - if(ishuman_strict(M)) // No yautya or synths. Makes humans gib on direct hit. - M.ex_act(350, P.dir, P.weapon_cause_data, 100) +/datum/ammo/rocket/on_hit_mob(mob/mob, obj/projectile/projectile) + cell_explosion(get_turf(mob), 150, 50, EXPLOSION_FALLOFF_SHAPE_LINEAR, null, projectile.weapon_cause_data) + smoke.set_up(1, get_turf(mob)) + if(ishuman_strict(mob)) // No yautya or synths. Makes humans gib on direct hit. + mob.ex_act(350, projectile.dir, projectile.weapon_cause_data, 100) smoke.start() -/datum/ammo/rocket/on_hit_obj(obj/O, obj/projectile/P) - cell_explosion(get_turf(O), 150, 50, EXPLOSION_FALLOFF_SHAPE_LINEAR, null, P.weapon_cause_data) - smoke.set_up(1, get_turf(O)) +/datum/ammo/rocket/on_hit_obj(obj/object, obj/projectile/projectile) + cell_explosion(get_turf(object), 150, 50, EXPLOSION_FALLOFF_SHAPE_LINEAR, null, projectile.weapon_cause_data) + smoke.set_up(1, get_turf(object)) smoke.start() -/datum/ammo/rocket/on_hit_turf(turf/T, obj/projectile/P) - cell_explosion(T, 150, 50, EXPLOSION_FALLOFF_SHAPE_LINEAR, null, P.weapon_cause_data) - smoke.set_up(1, T) +/datum/ammo/rocket/on_hit_turf(turf/turf, obj/projectile/projectile) + cell_explosion(turf, 150, 50, EXPLOSION_FALLOFF_SHAPE_LINEAR, null, projectile.weapon_cause_data) + smoke.set_up(1, turf) smoke.start() -/datum/ammo/rocket/do_at_max_range(obj/projectile/P) - cell_explosion(get_turf(P), 150, 50, EXPLOSION_FALLOFF_SHAPE_LINEAR, null, P.weapon_cause_data) - smoke.set_up(1, get_turf(P)) +/datum/ammo/rocket/do_at_max_range(obj/projectile/projectile) + cell_explosion(get_turf(projectile), 150, 50, EXPLOSION_FALLOFF_SHAPE_LINEAR, null, projectile.weapon_cause_data) + smoke.set_up(1, get_turf(projectile)) smoke.start() /datum/ammo/rocket/ap @@ -62,64 +62,65 @@ damage = 10 penetration= ARMOR_PENETRATION_TIER_10 -/datum/ammo/rocket/ap/on_hit_mob(mob/M, obj/projectile/P) - var/turf/T = get_turf(M) - M.ex_act(150, P.dir, P.weapon_cause_data, 100) - M.apply_effect(2, WEAKEN) - M.apply_effect(2, PARALYZE) - if(ishuman_strict(M)) // No yautya or synths. Makes humans gib on direct hit. - M.ex_act(300, P.dir, P.weapon_cause_data, 100) - cell_explosion(T, 100, 50, EXPLOSION_FALLOFF_SHAPE_LINEAR, null, P.weapon_cause_data) - smoke.set_up(1, T) + +/datum/ammo/rocket/ap/on_hit_mob(mob/mob, obj/projectile/projectile) + var/turf/turf = get_turf(mob) + mob.ex_act(150, projectile.dir, projectile.weapon_cause_data, 100) + mob.apply_effect(3, WEAKEN) + mob.apply_effect(3, PARALYZE) + if(ishuman_strict(mob)) // No yautya or synths. Makes humans gib on direct hit. + mob.ex_act(300, projectile.dir, projectile.weapon_cause_data, 100) + cell_explosion(turf, 100, 50, EXPLOSION_FALLOFF_SHAPE_LINEAR, null, projectile.weapon_cause_data) + smoke.set_up(1, turf) smoke.start() -/datum/ammo/rocket/ap/on_hit_obj(obj/O, obj/projectile/P) - var/turf/T = get_turf(O) - O.ex_act(150, P.dir, P.weapon_cause_data, 100) - cell_explosion(T, 100, 50, EXPLOSION_FALLOFF_SHAPE_LINEAR, null, P.weapon_cause_data) - smoke.set_up(1, T) +/datum/ammo/rocket/ap/on_hit_obj(obj/object, obj/projectile/projectile) + var/turf/turf = get_turf(object) + object.ex_act(150, projectile.dir, projectile.weapon_cause_data, 100) + cell_explosion(turf, 100, 50, EXPLOSION_FALLOFF_SHAPE_LINEAR, null, projectile.weapon_cause_data) + smoke.set_up(1, turf) smoke.start() -/datum/ammo/rocket/ap/on_hit_turf(turf/T, obj/projectile/P) +/datum/ammo/rocket/ap/on_hit_turf(turf/turf, obj/projectile/projectile) var/hit_something = 0 - for(var/mob/M in T) - M.ex_act(150, P.dir, P.weapon_cause_data, 100) - M.apply_effect(4, WEAKEN) - M.apply_effect(4, PARALYZE) + for(var/mob/mob in turf) + mob.ex_act(150, projectile.dir, projectile.weapon_cause_data, 100) + mob.apply_effect(3, WEAKEN) + mob.apply_effect(3, PARALYZE) hit_something = 1 continue if(!hit_something) - for(var/obj/O in T) - if(O.density) - O.ex_act(150, P.dir, P.weapon_cause_data, 100) + for(var/obj/object in turf) + if(object.density) + object.ex_act(150, projectile.dir, projectile.weapon_cause_data, 100) hit_something = 1 continue if(!hit_something) - T.ex_act(150, P.dir, P.weapon_cause_data, 200) + turf.ex_act(150, projectile.dir, projectile.weapon_cause_data, 200) - cell_explosion(T, 100, 50, EXPLOSION_FALLOFF_SHAPE_LINEAR, null, P.weapon_cause_data) - smoke.set_up(1, T) + cell_explosion(turf, 100, 50, EXPLOSION_FALLOFF_SHAPE_LINEAR, null, projectile.weapon_cause_data) + smoke.set_up(1, turf) smoke.start() -/datum/ammo/rocket/ap/do_at_max_range(obj/projectile/P) - var/turf/T = get_turf(P) +/datum/ammo/rocket/ap/do_at_max_range(obj/projectile/projectile) + var/turf/turf = get_turf(projectile) var/hit_something = 0 - for(var/mob/M in T) - M.ex_act(250, P.dir, P.weapon_cause_data, 100) - M.apply_effect(2, WEAKEN) - M.apply_effect(2, PARALYZE) + for(var/mob/mob in turf) + mob.ex_act(150, projectile.dir, projectile.weapon_cause_data, 100) + mob.apply_effect(3, WEAKEN) + mob.apply_effect(3, PARALYZE) hit_something = 1 - continue + break if(!hit_something) - for(var/obj/O in T) - if(O.density) - O.ex_act(250, P.dir, P.weapon_cause_data, 100) + for(var/obj/object in turf) + if(object.density) + object.ex_act(150, projectile.dir, projectile.weapon_cause_data, 100) hit_something = 1 - continue + break if(!hit_something) - T.ex_act(250, P.dir, P.weapon_cause_data) - cell_explosion(T, 100, 50, EXPLOSION_FALLOFF_SHAPE_LINEAR, null, P.weapon_cause_data) - smoke.set_up(1, T) + turf.ex_act(150, projectile.dir, projectile.weapon_cause_data) + cell_explosion(turf, 100, 50, EXPLOSION_FALLOFF_SHAPE_LINEAR, null, projectile.weapon_cause_data) + smoke.set_up(1, turf) smoke.start() /datum/ammo/rocket/ap/anti_tank @@ -129,20 +130,22 @@ shrapnel_chance = 5 shrapnel_type = /obj/item/large_shrapnel/at_rocket_dud -/datum/ammo/rocket/ap/anti_tank/on_hit_obj(obj/O, obj/projectile/P) - if(istype(O, /obj/vehicle/multitile)) - var/obj/vehicle/multitile/M = O - M.next_move = world.time + vehicle_slowdown_time - playsound(M, 'sound/effects/meteorimpact.ogg', 35) - M.at_munition_interior_explosion_effect(cause_data = create_cause_data("Anti-Tank Rocket")) - M.interior_crash_effect() - var/turf/T = get_turf(M.loc) - M.ex_act(150, P.dir, P.weapon_cause_data, 100) - smoke.set_up(1, T) +/datum/ammo/rocket/ap/anti_tank/on_hit_obj(obj/object, obj/projectile/projectile) + if(istype(object, /obj/vehicle/multitile)) + var/obj/vehicle/multitile/mob = object + mob.next_move = world.time + vehicle_slowdown_time + playsound(mob, 'sound/effects/meteorimpact.ogg', 35) + mob.at_munition_interior_explosion_effect(cause_data = create_cause_data("Anti-Tank Rocket")) + mob.interior_crash_effect() + var/turf/turf = get_turf(mob.loc) + mob.ex_act(150, projectile.dir, projectile.weapon_cause_data, 100) + smoke.set_up(1, turf) smoke.start() return return ..() +/datum/ammo/rocket/ap/tank_towlauncher + max_range = 8 /datum/ammo/rocket/ltb name = "cannon round" @@ -155,21 +158,21 @@ damage = 25 shell_speed = AMMO_SPEED_TIER_3 -/datum/ammo/rocket/ltb/on_hit_mob(mob/M, obj/projectile/P) - cell_explosion(get_turf(M), 220, 50, EXPLOSION_FALLOFF_SHAPE_LINEAR, null, P.weapon_cause_data) - cell_explosion(get_turf(M), 200, 100, EXPLOSION_FALLOFF_SHAPE_LINEAR, null, P.weapon_cause_data) +/datum/ammo/rocket/ltb/on_hit_mob(mob/mob, obj/projectile/projectile) + cell_explosion(get_turf(mob), 220, 50, EXPLOSION_FALLOFF_SHAPE_LINEAR, null, projectile.weapon_cause_data) + cell_explosion(get_turf(mob), 200, 100, EXPLOSION_FALLOFF_SHAPE_LINEAR, null, projectile.weapon_cause_data) -/datum/ammo/rocket/ltb/on_hit_obj(obj/O, obj/projectile/P) - cell_explosion(get_turf(O), 220, 50, EXPLOSION_FALLOFF_SHAPE_LINEAR, null, P.weapon_cause_data) - cell_explosion(get_turf(O), 200, 100, EXPLOSION_FALLOFF_SHAPE_LINEAR, null, P.weapon_cause_data) +/datum/ammo/rocket/ltb/on_hit_obj(obj/object, obj/projectile/projectile) + cell_explosion(get_turf(object), 220, 50, EXPLOSION_FALLOFF_SHAPE_LINEAR, null, projectile.weapon_cause_data) + cell_explosion(get_turf(object), 200, 100, EXPLOSION_FALLOFF_SHAPE_LINEAR, null, projectile.weapon_cause_data) -/datum/ammo/rocket/ltb/on_hit_turf(turf/T, obj/projectile/P) - cell_explosion(get_turf(T), 220, 50, EXPLOSION_FALLOFF_SHAPE_LINEAR, null, P.weapon_cause_data) - cell_explosion(get_turf(T), 200, 100, EXPLOSION_FALLOFF_SHAPE_LINEAR, null, P.weapon_cause_data) +/datum/ammo/rocket/ltb/on_hit_turf(turf/turf, obj/projectile/projectile) + cell_explosion(get_turf(turf), 220, 50, EXPLOSION_FALLOFF_SHAPE_LINEAR, null, projectile.weapon_cause_data) + cell_explosion(get_turf(turf), 200, 100, EXPLOSION_FALLOFF_SHAPE_LINEAR, null, projectile.weapon_cause_data) -/datum/ammo/rocket/ltb/do_at_max_range(obj/projectile/P) - cell_explosion(get_turf(P), 220, 50, EXPLOSION_FALLOFF_SHAPE_LINEAR, null, P.weapon_cause_data) - cell_explosion(get_turf(P), 200, 100, EXPLOSION_FALLOFF_SHAPE_LINEAR, null, P.weapon_cause_data) +/datum/ammo/rocket/ltb/do_at_max_range(obj/projectile/projectile) + cell_explosion(get_turf(projectile), 220, 50, EXPLOSION_FALLOFF_SHAPE_LINEAR, null, projectile.weapon_cause_data) + cell_explosion(get_turf(projectile), 200, 100, EXPLOSION_FALLOFF_SHAPE_LINEAR, null, projectile.weapon_cause_data) /datum/ammo/rocket/wp name = "white phosphorous rocket" @@ -187,30 +190,30 @@ BULLET_TRAIT_ENTRY(/datum/element/bullet_trait_incendiary) )) -/datum/ammo/rocket/wp/drop_flame(turf/T, datum/cause_data/cause_data) - playsound(T, 'sound/weapons/gun_flamethrower3.ogg', 75, 1, 7) - if(!istype(T)) return - smoke.set_up(1, T) +/datum/ammo/rocket/wp/drop_flame(turf/turf, datum/cause_data/cause_data) + playsound(turf, 'sound/weapons/gun_flamethrower3.ogg', 75, 1, 7) + if(!istype(turf)) return + smoke.set_up(1, turf) smoke.start() - var/datum/reagent/napalm/blue/R = new() - new /obj/flamer_fire(T, cause_data, R, 3) + var/datum/reagent/napalm/blue/reagent = new() + new /obj/flamer_fire(turf, cause_data, reagent, 3) var/datum/effect_system/smoke_spread/phosphorus/landingSmoke = new /datum/effect_system/smoke_spread/phosphorus - landingSmoke.set_up(3, 0, T, null, 6, cause_data) + landingSmoke.set_up(3, 0, turf, null, 6, cause_data) landingSmoke.start() landingSmoke = null -/datum/ammo/rocket/wp/on_hit_mob(mob/M, obj/projectile/P) - drop_flame(get_turf(M), P.weapon_cause_data) +/datum/ammo/rocket/wp/on_hit_mob(mob/mob, obj/projectile/projectile) + drop_flame(get_turf(mob), projectile.weapon_cause_data) -/datum/ammo/rocket/wp/on_hit_obj(obj/O, obj/projectile/P) - drop_flame(get_turf(O), P.weapon_cause_data) +/datum/ammo/rocket/wp/on_hit_obj(obj/object, obj/projectile/projectile) + drop_flame(get_turf(object), projectile.weapon_cause_data) -/datum/ammo/rocket/wp/on_hit_turf(turf/T, obj/projectile/P) - drop_flame(T, P.weapon_cause_data) +/datum/ammo/rocket/wp/on_hit_turf(turf/turf, obj/projectile/projectile) + drop_flame(turf, projectile.weapon_cause_data) -/datum/ammo/rocket/wp/do_at_max_range(obj/projectile/P) - drop_flame(get_turf(P), P.weapon_cause_data) +/datum/ammo/rocket/wp/do_at_max_range(obj/projectile/projectile) + drop_flame(get_turf(projectile), projectile.weapon_cause_data) /datum/ammo/rocket/wp/upp name = "extreme-intensity incendiary rocket" @@ -228,25 +231,25 @@ BULLET_TRAIT_ENTRY(/datum/element/bullet_trait_incendiary) )) -/datum/ammo/rocket/wp/upp/drop_flame(turf/T, datum/cause_data/cause_data) - playsound(T, 'sound/weapons/gun_flamethrower3.ogg', 75, 1, 7) - if(!istype(T)) return - smoke.set_up(1, T) +/datum/ammo/rocket/wp/upp/drop_flame(turf/turf, datum/cause_data/cause_data) + playsound(turf, 'sound/weapons/gun_flamethrower3.ogg', 75, 1, 7) + if(!istype(turf)) return + smoke.set_up(1, turf) smoke.start() - var/datum/reagent/napalm/upp/R = new() - new /obj/flamer_fire(T, cause_data, R, 3) + var/datum/reagent/napalm/upp/reagent = new() + new /obj/flamer_fire(turf, cause_data, reagent, 3) -/datum/ammo/rocket/wp/upp/on_hit_mob(mob/M, obj/projectile/P) - drop_flame(get_turf(M), P.weapon_cause_data) +/datum/ammo/rocket/wp/upp/on_hit_mob(mob/mob, obj/projectile/projectile) + drop_flame(get_turf(mob), projectile.weapon_cause_data) -/datum/ammo/rocket/wp/upp/on_hit_obj(obj/O, obj/projectile/P) - drop_flame(get_turf(O), P.weapon_cause_data) +/datum/ammo/rocket/wp/upp/on_hit_obj(obj/object, obj/projectile/projectile) + drop_flame(get_turf(object), projectile.weapon_cause_data) -/datum/ammo/rocket/wp/upp/on_hit_turf(turf/T, obj/projectile/P) - drop_flame(T, P.weapon_cause_data) +/datum/ammo/rocket/wp/upp/on_hit_turf(turf/turf, obj/projectile/projectile) + drop_flame(turf, projectile.weapon_cause_data) -/datum/ammo/rocket/wp/upp/do_at_max_range(obj/projectile/P) - drop_flame(get_turf(P), P.weapon_cause_data) +/datum/ammo/rocket/wp/upp/do_at_max_range(obj/projectile/projectile) + drop_flame(get_turf(projectile), projectile.weapon_cause_data) /datum/ammo/rocket/wp/quad name = "thermobaric rocket" @@ -256,45 +259,47 @@ max_range = 32 shell_speed = AMMO_SPEED_TIER_3 -/datum/ammo/rocket/wp/quad/on_hit_mob(mob/M, obj/projectile/P) - drop_flame(get_turf(M), P.weapon_cause_data) - explosion(P.loc, -1, 2, 4, 5, , , ,P.weapon_cause_data) +/datum/ammo/rocket/wp/quad/on_hit_mob(mob/mob, obj/projectile/projectile) + drop_flame(get_turf(mob), projectile.weapon_cause_data) + explosion(projectile.loc, -1, 2, 4, 5, , , ,projectile.weapon_cause_data) -/datum/ammo/rocket/wp/quad/on_hit_obj(obj/O, obj/projectile/P) - drop_flame(get_turf(O), P.weapon_cause_data) - explosion(P.loc, -1, 2, 4, 5, , , ,P.weapon_cause_data) +/datum/ammo/rocket/wp/quad/on_hit_obj(obj/object, obj/projectile/projectile) + drop_flame(get_turf(object), projectile.weapon_cause_data) + explosion(projectile.loc, -1, 2, 4, 5, , , ,projectile.weapon_cause_data) -/datum/ammo/rocket/wp/quad/on_hit_turf(turf/T, obj/projectile/P) - drop_flame(T, P.weapon_cause_data) - explosion(P.loc, -1, 2, 4, 5, , , ,P.weapon_cause_data) +/datum/ammo/rocket/wp/quad/on_hit_turf(turf/turf, obj/projectile/projectile) + drop_flame(turf, projectile.weapon_cause_data) + explosion(projectile.loc, -1, 2, 4, 5, , , ,projectile.weapon_cause_data) -/datum/ammo/rocket/wp/quad/do_at_max_range(obj/projectile/P) - drop_flame(get_turf(P), P.weapon_cause_data) - explosion(P.loc, -1, 2, 4, 5, , , ,P.weapon_cause_data) +/datum/ammo/rocket/wp/quad/do_at_max_range(obj/projectile/projectile) + drop_flame(get_turf(projectile), projectile.weapon_cause_data) + explosion(projectile.loc, -1, 2, 4, 5, , , ,projectile.weapon_cause_data) /datum/ammo/rocket/custom name = "custom rocket" + accurate_range = 8 + max_range = 8 -/datum/ammo/rocket/custom/proc/prime(atom/A, obj/projectile/P) - var/obj/item/weapon/gun/launcher/rocket/launcher = P.shot_from +/datum/ammo/rocket/custom/proc/prime(atom/atom, obj/projectile/projectile) + var/obj/item/weapon/gun/launcher/rocket/launcher = projectile.shot_from var/obj/item/ammo_magazine/rocket/custom/rocket = launcher.current_mag if(rocket.locked && rocket.warhead && rocket.warhead.detonator) if(rocket.fuel && rocket.fuel.reagents.get_reagent_amount(rocket.fuel_type) >= rocket.fuel_requirement) - rocket.forceMove(P.loc) - rocket.warhead.cause_data = P.weapon_cause_data + rocket.forceMove(projectile.loc) + rocket.warhead.cause_data = projectile.weapon_cause_data rocket.warhead.prime() qdel(rocket) - smoke.set_up(1, get_turf(A)) + smoke.set_up(1, get_turf(atom)) smoke.start() -/datum/ammo/rocket/custom/on_hit_mob(mob/M, obj/projectile/P) - prime(M, P) +/datum/ammo/rocket/custom/on_hit_mob(mob/mob, obj/projectile/projectile) + prime(mob, projectile) -/datum/ammo/rocket/custom/on_hit_obj(obj/O, obj/projectile/P) - prime(O, P) +/datum/ammo/rocket/custom/on_hit_obj(obj/object, obj/projectile/projectile) + prime(object, projectile) -/datum/ammo/rocket/custom/on_hit_turf(turf/T, obj/projectile/P) - prime(T, P) +/datum/ammo/rocket/custom/on_hit_turf(turf/turf, obj/projectile/projectile) + prime(turf, projectile) -/datum/ammo/rocket/custom/do_at_max_range(obj/projectile/P) - prime(null, P) +/datum/ammo/rocket/custom/do_at_max_range(obj/projectile/projectile) + prime(null, projectile) diff --git a/code/datums/ammo/shrapnel.dm b/code/datums/ammo/shrapnel.dm index e27caa4b277d..39b0813fad25 100644 --- a/code/datums/ammo/shrapnel.dm +++ b/code/datums/ammo/shrapnel.dm @@ -43,10 +43,17 @@ shrapnel_chance = 0 shell_speed = AMMO_SPEED_TIER_3//she fast af boi penetration = ARMOR_PENETRATION_TIER_5 - -/datum/ammo/bullet/shrapnel/hornet_rounds/on_hit_mob(mob/M, obj/projectile/P) + /// inflicts this many holo stacks per bullet hit + var/holo_stacks = 10 + /// modifies the default cap limit of 100 by this amount + var/bonus_damage_cap_increase = 0 + /// multiplies the default drain of 5 holo stacks per second by this amount + var/stack_loss_multiplier = 1 + +/datum/ammo/bullet/shrapnel/hornet_rounds/on_hit_mob(mob/hit_mob, obj/projectile/bullet) . = ..() - M.AddComponent(/datum/component/bonus_damage_stack, 10, world.time) + hit_mob.AddComponent(/datum/component/bonus_damage_stack, holo_stacks, world.time, bonus_damage_cap_increase, stack_loss_multiplier) + /datum/ammo/bullet/shrapnel/incendiary name = "flaming shrapnel" diff --git a/code/datums/ammo/xeno.dm b/code/datums/ammo/xeno.dm index 9ecc9ebf9321..7b5c8ee71257 100644 --- a/code/datums/ammo/xeno.dm +++ b/code/datums/ammo/xeno.dm @@ -49,8 +49,9 @@ if(!isxeno(M)) if(insta_neuro) - if(M.GetKnockDownValueNotADurationDoNotUse() < 3) // If they have less than somewhere random between 4 and 6 seconds KD left and assuming it doesnt get refreshed itnernally - M.adjust_effect(1 * power, WEAKEN) + if(M.GetKnockDownDuration() < 3) // Why are you not using KnockDown(3) ? Do you even know 3 is SIX seconds ? So many questions left unanswered. + M.KnockDown(power) + M.Stun(power) return if(ishuman(M)) @@ -65,8 +66,9 @@ no_clothes_neuro = TRUE if(no_clothes_neuro) - if(M.GetKnockDownValueNotADurationDoNotUse() < 5) // If they have less than somewhere random between 8 and 10 seconds KD left and assuming it doesnt get refreshed itnernally - M.adjust_effect(1 * power, WEAKEN) // KD them a bit more + if(M.GetKnockDownDuration() < 5) // Nobody actually knows what this means. Supposedly it means less than 10 seconds. Frankly if you get locked into 10s of knockdown to begin with there are bigger issues. + M.KnockDown(power) + M.Stun(power) M.visible_message(SPAN_DANGER("[M] falls prone.")) /proc/apply_scatter_neuro(mob/living/M) @@ -79,9 +81,9 @@ H.visible_message(SPAN_DANGER("[M] shrugs off the neurotoxin!")) return - if(M.GetKnockDownValueNotADurationDoNotUse() < 0.7) // basically (knocked_down && prob(90)) - M.apply_effect(0.7, WEAKEN) - M.visible_message(SPAN_DANGER("[M] falls prone.")) + M.KnockDown(0.7) // Completely arbitrary values from another time where stun timers incorrectly stacked. Kill as needed. + M.Stun(0.7) + M.visible_message(SPAN_DANGER("[M] falls prone.")) /datum/ammo/xeno/toxin/on_hit_mob(mob/M,obj/projectile/P) if(ishuman(M)) @@ -184,7 +186,7 @@ /datum/ammo/xeno/acid/prae_nade // Used by base prae's acid nade name = "acid scatter" - flags_ammo_behavior = AMMO_STOPPED_BY_COVER + flags_ammo_behavior = AMMO_ACIDIC|AMMO_XENO|AMMO_STOPPED_BY_COVER accuracy = HIT_ACCURACY_TIER_5 accurate_range = 32 max_range = 4 @@ -361,7 +363,7 @@ name = "tail hook" icon_state = "none" ping = null - flags_ammo_behavior = AMMO_XENO|AMMO_SKIPS_ALIENS|AMMO_STOPPED_BY_COVER|AMMO_IGNORE_ARMOR + flags_ammo_behavior = AMMO_XENO|AMMO_SKIPS_ALIENS|AMMO_STOPPED_BY_COVER damage_type = BRUTE damage = XENO_DAMAGE_TIER_5 @@ -384,7 +386,8 @@ target.overlays += tail_image new /datum/effects/xeno_slow(target, fired_proj.firer, ttl = 0.5 SECONDS) - target.apply_effect(0.5, STUN) + + target.apply_effect(0.5, ROOT) INVOKE_ASYNC(target, TYPE_PROC_REF(/atom/movable, throw_atom), fired_proj.firer, get_dist(fired_proj.firer, target)-1, SPEED_VERY_FAST) qdel(tail_beam) diff --git a/code/datums/autocells/explosion.dm b/code/datums/autocells/explosion.dm index 970e5618bae3..ecc6f9925800 100644 --- a/code/datums/autocells/explosion.dm +++ b/code/datums/autocells/explosion.dm @@ -23,7 +23,7 @@ That's it. There are some special rules, though, namely: - * If the explosion occured in a wall, the wave is strengthened + * If the explosion occurred in a wall, the wave is strengthened with power *= reflection_multiplier and reflected back in the direction it came from @@ -282,6 +282,9 @@ as having entered the turf. if(QDELETED(E)) return + if(power >= 150) //shockwave for anything over 150 power + new /obj/effect/shockwave(epicenter, power/60) + E.power = power E.power_falloff = falloff E.falloff_shape = falloff_shape diff --git a/code/datums/balloon_alerts/balloon_alerts.dm b/code/datums/balloon_alerts/balloon_alerts.dm index 8ef770fa9d7f..59f826fbe7d2 100644 --- a/code/datums/balloon_alerts/balloon_alerts.dm +++ b/code/datums/balloon_alerts/balloon_alerts.dm @@ -37,20 +37,15 @@ if (isnull(viewer_client)) return - var/bound_width = world.icon_size - if (ismovable(src)) - var/atom/movable/movable_source = src - bound_width = movable_source.bound_width - var/image/balloon_alert = image(loc = get_atom_on_turf(src), layer = ABOVE_MOB_LAYER) balloon_alert.plane = RUNECHAT_PLANE balloon_alert.alpha = 0 balloon_alert.color = text_color balloon_alert.appearance_flags = NO_CLIENT_COLOR|KEEP_APART|RESET_COLOR|RESET_TRANSFORM|RESET_ALPHA balloon_alert.maptext = MAPTEXT("[text]") - balloon_alert.maptext_x = (BALLOON_TEXT_WIDTH - bound_width) * -0.5 balloon_alert.maptext_height = WXH_TO_HEIGHT(viewer_client?.MeasureText(text, null, BALLOON_TEXT_WIDTH)) balloon_alert.maptext_width = BALLOON_TEXT_WIDTH + balloon_alert.maptext_x = get_maxptext_x_offset(balloon_alert) if(appearance_flags & PIXEL_SCALE) balloon_alert.appearance_flags |= PIXEL_SCALE //"[text]" diff --git a/code/datums/beam.dm b/code/datums/beam.dm index e51dcafa0218..4b024df585f9 100644 --- a/code/datums/beam.dm +++ b/code/datums/beam.dm @@ -82,7 +82,7 @@ /datum/beam/proc/Draw() if(always_turn) origin.setDir(get_dir(origin, target)) //Causes the source of the beam to rotate to continuosly face the BeamTarget. - var/Angle = round(Get_Angle(origin,target)) + var/Angle = floor(Get_Angle(origin,target)) var/matrix/rot_matrix = matrix() var/turf/origin_turf = get_turf(origin) rot_matrix.Turn(Angle) @@ -91,7 +91,7 @@ var/DX = get_pixel_position_x(target) - get_pixel_position_x(origin) var/DY = get_pixel_position_y(target) - get_pixel_position_y(origin) var/N = 0 - var/length = round(sqrt((DX)**2+(DY)**2)) //hypotenuse of the triangle formed by target and origin's displacement + var/length = floor(sqrt((DX)**2+(DY)**2)) //hypotenuse of the triangle formed by target and origin's displacement for(N in 0 to length-1 step world.icon_size)//-1 as we want < not <=, but we want the speed of X in Y to Z and step X if(QDELETED(src)) @@ -116,20 +116,20 @@ if(DX == 0) Pixel_x = 0 else - Pixel_x = round(sin(Angle) + world.icon_size*sin(Angle)*(N+world.icon_size/2) / world.icon_size) + Pixel_x = floor(sin(Angle) + world.icon_size*sin(Angle)*(N+world.icon_size/2) / world.icon_size) if(DY == 0) Pixel_y = 0 else - Pixel_y = round(cos(Angle) + world.icon_size*cos(Angle)*(N+world.icon_size/2) / world.icon_size) + Pixel_y = floor(cos(Angle) + world.icon_size*cos(Angle)*(N+world.icon_size/2) / world.icon_size) //Position the effect so the beam is one continous line var/a if(abs(Pixel_x)>world.icon_size) - a = Pixel_x > 0 ? round(Pixel_x/32) : CEILING(Pixel_x/world.icon_size, 1) + a = Pixel_x > 0 ? floor(Pixel_x/32) : ceil(Pixel_x/world.icon_size) X.x += a Pixel_x %= world.icon_size if(abs(Pixel_y)>world.icon_size) - a = Pixel_y > 0 ? round(Pixel_y/32) : CEILING(Pixel_y/world.icon_size, 1) + a = Pixel_y > 0 ? floor(Pixel_y/32) : ceil(Pixel_y/world.icon_size) X.y += a Pixel_y %= world.icon_size diff --git a/code/datums/browser.dm b/code/datums/browser.dm index 3b694e8f44bb..f7626214a73e 100644 --- a/code/datums/browser.dm +++ b/code/datums/browser.dm @@ -117,9 +117,9 @@ window_size = "size=[width]x[height];" common_asset.send(user) other_asset.send(user) - if (stylesheets.len) + if (length(stylesheets)) SSassets.transport.send_assets(user, stylesheets) - if (scripts.len) + if (length(scripts)) SSassets.transport.send_assets(user, scripts) user << browse(get_content(), "window=[window_id];[window_size][window_options]") diff --git a/code/datums/bug_report.dm b/code/datums/bug_report.dm new file mode 100644 index 000000000000..fd82d4950b91 --- /dev/null +++ b/code/datums/bug_report.dm @@ -0,0 +1,202 @@ +// Datum for handling bug reports +#define STATUS_SUCCESS 201 + +/datum/tgui_bug_report_form + /// contains all the body text for the bug report. + var/list/bug_report_data = null + + /// client of the bug report author, needed to create the ticket + var/client/initial_user = null + // ckey of the author + var/initial_key = null // just incase they leave after creating the bug report + + /// client of the admin who is accessing the report, we don't want multiple admins unknowingly making changes at the same time. + var/client/admin_user = null + + /// value to determine if the bug report is submitted and awaiting admin approval, used for state purposes in tgui. + var/awaiting_admin_approval = FALSE + + // for garbage collection purposes. + var/selected_confirm = FALSE + +/datum/tgui_bug_report_form/New(mob/user) + initial_user = user.client + initial_key = user.client.key + +/datum/tgui_bug_report_form/proc/external_link_prompt(client/user) + tgui_alert(user, "Unable to create a bug report at this time, please create the issue directly through our GitHub repository instead") + var/url = CONFIG_GET(string/githuburl) + if(!url) + to_chat(user, SPAN_WARNING("The configuration is not properly set, unable to open external link")) + return + + if(tgui_alert(user, "This will open the GitHub in your browser. Are you sure?", "Confirm", list("Yes", "No")) == "Yes") + user << link(url) + +/datum/tgui_bug_report_form/ui_state() + return GLOB.always_state + +/datum/tgui_bug_report_form/tgui_interact(mob/user, datum/tgui/ui) + ui = SStgui.try_update_ui(user, src, ui) + if(!ui) + ui = new(user, src, "BugReportForm") + ui.open() + +/datum/tgui_bug_report_form/ui_close(mob/user) + . = ..() + if(!admin_user && user.client == initial_user && !selected_confirm) // user closes the ui without selecting confirm or approve. + qdel(src) + return + admin_user = null + selected_confirm = FALSE + +/datum/tgui_bug_report_form/Destroy() + GLOB.bug_reports -= src + return ..() + +/datum/tgui_bug_report_form/proc/sanitize_payload(list/params) + for(var/param in params) + params[param] = sanitize(params[param], list("\t"=" ","�"=" ")) + + return params + +// whether or not an admin can access the record at a given time. +/datum/tgui_bug_report_form/proc/assign_admin(mob/user) + if(!initial_key) + to_chat(user, SPAN_WARNING("Unable to identify the author of the bug report.")) + return FALSE + if(admin_user) + if(user.client == admin_user) + to_chat(user, SPAN_WARNING("This bug report review is already opened and accessed by you.")) + else + to_chat(user, SPAN_WARNING("Another administrator is currently accessing this report, please wait for them to finish before making any changes.")) + return FALSE + if(!CLIENT_IS_STAFF(user.client)) + message_admins("[user.ckey] has attempted to review [initial_key]'s bug report titled [bug_report_data["title"]] without proper authorization at [time2text(world.timeofday, "YYYY-MM-DD hh:mm:ss")].") + return FALSE + + admin_user = user.client + return TRUE + +// returns the body payload +/datum/tgui_bug_report_form/proc/create_form() + var/datum/getrev/revdata = GLOB.revdata + var/test_merges + if(length(revdata.testmerge)) + test_merges = revdata.GetTestMergeInfo(header = FALSE) + + var/desc = {" +## Testmerges +[test_merges ? test_merges : "N/A"] + +## Round ID +[GLOB.round_id ? GLOB.round_id : "N/A"] + +## Description of the bug +[bug_report_data["description"]] + +## What's the difference with what should have happened? +[bug_report_data["expected_behavior"]] + +## How do we reproduce this bug? +[bug_report_data["steps"]] + +## Attached logs +``` +[bug_report_data["log"] ? bug_report_data["log"] : "N/A"] +``` + +## Additional details +- Author: [initial_key] +- Admin: [admin_user] +- Note: [bug_report_data["admin_note"] ? bug_report_data["admin_note"] : "None"] + "} + + return desc + +// the real deal, we are sending the request through the api. +/datum/tgui_bug_report_form/proc/send_request(payload_body, client/user) + // for any future changes see https://docs.github.com/en/rest/issues/issues + var/repo_name = CONFIG_GET(string/repo_name) + var/org = CONFIG_GET(string/org) + var/token = CONFIG_GET(string/github_app_api) + + if(!token || !org || !repo_name) + tgui_alert(user, "The configuration is not set for the external API.", "Issue not reported!") + external_link_prompt(user) + qdel(src) + return + + var/url = "https://api.github.com/repos/[org]/[repo_name]/issues" + var/list/headers = list() + headers["Authorization"] = "Bearer [token]" + headers["Content-Type"] = "text/markdown; charset=utf-8" + headers["Accept"] = "application/vnd.github+json" + + var/datum/http_request/request = new() + var/list/payload = list( + "title" = bug_report_data["title"], + "body" = payload_body, + "labels" = list("Bug") + ) + + request.prepare(RUSTG_HTTP_METHOD_POST, url, json_encode(payload), headers) + request.begin_async() + UNTIL_OR_TIMEOUT(request.is_complete(), 5 SECONDS) + + var/datum/http_response/response = request.into_response() + if(response.errored || response.status_code != STATUS_SUCCESS) + message_admins(SPAN_ADMINNOTICE("The GitHub API has failed to create the bug report titled [bug_report_data["title"]] approved by [admin_user], status code:[response.status_code]. Please paste this error code into the development channel on discord.")) + external_link_prompt(user) + else + message_admins("[user.ckey] has approved a bug report from [initial_key] titled [bug_report_data["title"]] at [time2text(world.timeofday, "YYYY-MM-DD hh:mm:ss")].") + to_chat(initial_user, SPAN_WARNING("An admin has successfully submitted your report and it should now be visible on GitHub. Thanks again!")) + qdel(src)// approved and submitted, we no longer need the datum. + +// proc that creates a ticket for an admin to approve or deny a bug report request +/datum/tgui_bug_report_form/proc/bug_report_request() + to_chat(initial_user, SPAN_WARNING("Your bug report has been submitted, thank you!")) + GLOB.bug_reports += src + + var/general_message = "[initial_key] has created a bug report, you may find this report directly in the ticket panel. Feel free modify the issue to your liking before submitting it to GitHub." + GLOB.admin_help_ui_handler.perform_adminhelp(initial_user, general_message, urgent = FALSE) + + var/href_message = ADMIN_VIEW_BUG_REPORT(src) + initial_user.current_ticket.AddInteraction(href_message) + +/datum/tgui_bug_report_form/ui_act(action, list/params, datum/tgui/ui) + . = ..() + if (.) + return + var/mob/user = ui.user + switch(action) + if("confirm") + if(selected_confirm) // prevent someone from spamming the approve button + to_chat(user, SPAN_WARNING("you have already confirmed the submission, please wait a moment for the API to process your submission.")) + return + bug_report_data = sanitize_payload(params) + selected_confirm = TRUE + // bug report request is now waiting for admin approval + if(!awaiting_admin_approval) + bug_report_request() + awaiting_admin_approval = TRUE + else // otherwise it's been approved + var/payload_body = create_form() + send_request(payload_body, user.client) + if("cancel") + if(awaiting_admin_approval) // admin has chosen to reject the bug report + reject(user.client) + qdel(src) + ui.close() + . = TRUE + +/datum/tgui_bug_report_form/ui_data(mob/user) + . = list() + .["report_details"] = bug_report_data // only filled out once the user as submitted the form + .["awaiting_admin_approval"] = awaiting_admin_approval + +/datum/tgui_bug_report_form/proc/reject(client/user) + message_admins("[user.ckey] has rejected a bug report from [initial_key] titled [bug_report_data["title"]] at [time2text(world.timeofday, "YYYY-MM-DD hh:mm:ss")].") + to_chat(initial_user, SPAN_WARNING("An admin has rejected your bug report, this can happen for several reasons. They will most likely get back to you shortly regarding your issue.")) + +#undef STATUS_SUCCESS diff --git a/code/datums/components/_component.dm b/code/datums/components/_component.dm index c998bd55257c..24cf93ed119f 100644 --- a/code/datums/components/_component.dm +++ b/code/datums/components/_component.dm @@ -102,7 +102,7 @@ components_of_type = test if(I == our_type) //exact match, take priority var/inserted = FALSE - for(var/J in 1 to components_of_type.len) + for(var/J in 1 to length(components_of_type)) var/datum/component/C = components_of_type[J] if(C.type != our_type) //but not over other exact matches components_of_type.Insert(J, I) @@ -127,13 +127,13 @@ var/list/components_of_type = dc[I] if(length(components_of_type)) // var/list/subtracted = components_of_type - src - if(subtracted.len == 1) //only 1 guy left + if(length(subtracted) == 1) //only 1 guy left dc[I] = subtracted[1] //make him special else dc[I] = subtracted else //just us dc -= I - if(!dc.len) + if(!length(dc)) P.datum_components = null UnregisterFromParent() @@ -243,7 +243,7 @@ lookup[sig] -= src signal_procs[target] -= sig_type_or_types - if(!signal_procs[target].len) + if(!length(signal_procs[target])) signal_procs -= target /** @@ -362,7 +362,8 @@ var/datum/component/C = dc[c_type] if(C) if(length(C)) - C = C[1] + var/list/component_list = C + C = component_list[1] if(C.type == c_type) return C return null diff --git a/code/datums/components/bonus_damage_stack.dm b/code/datums/components/bonus_damage_stack.dm index faf4813541b8..78da5e036ce4 100644 --- a/code/datums/components/bonus_damage_stack.dm +++ b/code/datums/components/bonus_damage_stack.dm @@ -15,15 +15,21 @@ var/bonus_damage_cap = 100 /// Last world.time that the afflicted was hit by a holo-targeting round. var/last_stack + /// extra cap limit added by more powerful bullets + var/bonus_damage_cap_increase = 0 + /// multiplies the BONUS_DAMAGE_STACK_LOSS_PER_SECOND calculation, modifying how fast we lose holo stacks + var/stack_loss_multiplier = 1 -/datum/component/bonus_damage_stack/Initialize(bonus_damage_stacks, time) +/datum/component/bonus_damage_stack/Initialize(bonus_damage_stacks, time, bonus_damage_cap_increase, stack_loss_multiplier) . = ..() src.bonus_damage_stacks = bonus_damage_stacks + src.stack_loss_multiplier = stack_loss_multiplier + src.bonus_damage_cap = initial(bonus_damage_cap) + bonus_damage_cap_increase // this way it will never increase over the intended limit if(!time) time = world.time src.last_stack = time -/datum/component/bonus_damage_stack/InheritComponent(datum/component/bonus_damage_stack/BDS, i_am_original, bonus_damage_stacks, time) +/datum/component/bonus_damage_stack/InheritComponent(datum/component/bonus_damage_stack/BDS, i_am_original, bonus_damage_stacks, time, bonus_damage_cap_increase, stack_loss_multiplier) . = ..() if(!BDS) src.bonus_damage_stacks += bonus_damage_stacks @@ -32,22 +38,32 @@ src.bonus_damage_stacks += BDS.bonus_damage_stacks src.last_stack = BDS.last_stack - src.bonus_damage_stacks = min(src.bonus_damage_stacks, bonus_damage_cap) + // if a different type of holo targetting bullet hits a mob and has a bigger bonus cap, it will get applied. + if(src.bonus_damage_cap_increase < bonus_damage_cap_increase) + src.bonus_damage_cap_increase = bonus_damage_cap_increase + src.bonus_damage_cap = initial(bonus_damage_cap) + src.bonus_damage_cap_increase + + // however, if it has a worse stack_loss_multiplier, it will get applied instead. + // this way, if a weapon is meant to have a big bonus cap but holo stacks that rapidly deplete, it will not be messed up by a weapon that a low stack_loss_multiplier. + if(src.stack_loss_multiplier < stack_loss_multiplier) + src.stack_loss_multiplier = stack_loss_multiplier + + src.bonus_damage_stacks = min(src.bonus_damage_stacks, src.bonus_damage_cap) /datum/component/bonus_damage_stack/process(delta_time) if(last_stack + 5 SECONDS < world.time) - bonus_damage_stacks = bonus_damage_stacks - BONUS_DAMAGE_STACK_LOSS_PER_SECOND * delta_time + bonus_damage_stacks = bonus_damage_stacks - BONUS_DAMAGE_STACK_LOSS_PER_SECOND * stack_loss_multiplier * delta_time if(bonus_damage_stacks <= 0) qdel(src) var/color = COLOR_BONUS_DAMAGE - var/intensity = bonus_damage_stacks / (bonus_damage_cap * 2) - color += num2text(BONUS_DAMAGE_MAX_ALPHA * intensity, 2, 16) - + var/intensity = bonus_damage_stacks / (initial(bonus_damage_cap) * 2) + // if intensity is too high of a value, the hex code will become invalid + color += num2text(BONUS_DAMAGE_MAX_ALPHA * clamp(intensity, 0, 0.5), 1, 16) if(parent) var/atom/A = parent - A.add_filter("bonus_damage_stacks", 2, list("type" = "outline", "color" = color, "size" = 1)) + A.add_filter("bonus_damage_stacks", 2, list("type" = "outline", "color" = color, "size" = 1 + clamp(intensity, 0, 1))) /datum/component/bonus_damage_stack/RegisterWithParent() START_PROCESSING(SSdcs, src) @@ -67,7 +83,7 @@ SIGNAL_HANDLER L += "Bonus Damage Taken: [bonus_damage_stacks * 0.1]%" -/datum/component/bonus_damage_stack/proc/get_bonus_damage(mob/M, list/damage_data) // 10% damage bonus at most +/datum/component/bonus_damage_stack/proc/get_bonus_damage(mob/M, list/damage_data) // 10% damage bonus in most instances SIGNAL_HANDLER damage_data["bonus_damage"] = damage_data["damage"] * (min(bonus_damage_stacks, bonus_damage_cap) / 1000) diff --git a/code/datums/components/cell.dm b/code/datums/components/cell.dm index 81ef3733e2e2..cf40caa41c73 100644 --- a/code/datums/components/cell.dm +++ b/code/datums/components/cell.dm @@ -71,7 +71,7 @@ /datum/component/cell/proc/on_emp(datum/source, severity) SIGNAL_HANDLER - use_charge(null, round(max_charge / severity)) + use_charge(null, floor(max_charge / severity)) /datum/component/cell/proc/start_drain(datum/source) SIGNAL_HANDLER @@ -92,7 +92,7 @@ if((charge_examine_range != UNLIMITED_DISTANCE) && get_dist(examiner, parent) > charge_examine_range) return - examine_text += "A small gauge in the corner reads \"Power: [round(100 * charge / max_charge)]%\"." + examine_text += "A small gauge in the corner reads \"Power: [floor(100 * charge / max_charge)]%\"." /datum/component/cell/proc/on_object_hit(datum/source, obj/item/cell/attack_obj, mob/living/attacker, params) SIGNAL_HANDLER @@ -154,7 +154,7 @@ var/to_transfer = min(max_recharge_tick, power_cell.charge, (max_charge - charge)) if(power_cell.use(to_transfer)) add_charge(null, to_transfer) - to_chat(user, "You transfer some power between [power_cell] and [parent]. The gauge now reads: [round(100 * charge / max_charge)]%.") + to_chat(user, "You transfer some power between [power_cell] and [parent]. The gauge now reads: [floor(100 * charge / max_charge)]%.") /datum/component/cell/proc/add_charge(datum/source, charge_add = 0) SIGNAL_HANDLER diff --git a/code/datums/components/connect_mob_behalf.dm b/code/datums/components/connect_mob_behalf.dm index 1c1a8a652342..2eeee78bf28b 100644 --- a/code/datums/components/connect_mob_behalf.dm +++ b/code/datums/components/connect_mob_behalf.dm @@ -1,6 +1,6 @@ /// This component behaves similar to connect_loc_behalf, but working off clients and mobs instead of loc /// To be clear, we hook into a signal on a tracked client's mob -/// We retain the ability to react to that signal on a seperate listener, which makes this quite powerful +/// We retain the ability to react to that signal on a separate listener, which makes this quite powerful /datum/component/connect_mob_behalf dupe_mode = COMPONENT_DUPE_UNIQUE diff --git a/code/datums/components/disk_reader.dm b/code/datums/components/disk_reader.dm new file mode 100644 index 000000000000..6292519893e9 --- /dev/null +++ b/code/datums/components/disk_reader.dm @@ -0,0 +1,87 @@ +/datum/component/disk_reader + dupe_mode = COMPONENT_DUPE_UNIQUE + /// Ref to the inserted disk + var/obj/item/disk/objective/disk + +/datum/component/disk_reader/Initialize() + . = ..() + if(!istype(parent, /obj/structure/machinery)) + return COMPONENT_INCOMPATIBLE + +/datum/component/disk_reader/Destroy(force, silent) + handle_qdel() + return ..() + +/datum/component/disk_reader/RegisterWithParent() + ..() + RegisterSignal(parent, COMSIG_PARENT_ATTACKBY, PROC_REF(on_disk_insert)) + RegisterSignal(parent, COMSIG_PARENT_QDELETING, PROC_REF(handle_qdel)) + RegisterSignal(parent, COMSIG_INTEL_DISK_COMPLETED, PROC_REF(on_disk_complete)) + RegisterSignal(parent, COMSIG_INTEL_DISK_LOST_POWER, PROC_REF(on_power_lost)) + +/datum/component/disk_reader/UnregisterFromParent() + ..() + handle_qdel() + +/datum/component/disk_reader/proc/handle_qdel() + SIGNAL_HANDLER + QDEL_NULL(disk) + +/datum/component/disk_reader/proc/on_disk_insert(datum/source, obj/item/disk/objective/potential_disk, mob/living/inserter, params) + SIGNAL_HANDLER + + if(!istype(potential_disk) || !potential_disk.objective) + return + + if(disk) + to_chat(inserter, SPAN_WARNING("There's already a disk inside [parent], wait for it to finish first!")) + return COMPONENT_NO_AFTERATTACK + + if(potential_disk.objective.state == OBJECTIVE_COMPLETE) + to_chat(inserter, SPAN_WARNING("The reader displays a message stating this disk has already been read and refuses to accept it.")) + return COMPONENT_NO_AFTERATTACK + + INVOKE_ASYNC(src, PROC_REF(handle_disk_insert), potential_disk, inserter) + return COMPONENT_NO_AFTERATTACK + +/datum/component/disk_reader/proc/handle_disk_insert(obj/item/disk/objective/potential_disk, mob/living/inserter) + if(tgui_input_text(inserter, "Enter the encryption key", "Decrypting [potential_disk]", "") != potential_disk.objective.decryption_password) + to_chat(inserter, SPAN_WARNING("The reader buzzes, ejecting the disk.")) + return + + if(disk) + to_chat(inserter, SPAN_WARNING("There's already a disk inside [parent], wait for it to finish first!")) + return + + if(!(potential_disk in inserter.contents)) + return + + potential_disk.objective.activate() + + inserter.drop_inv_item_to_loc(potential_disk, parent) + disk = potential_disk + to_chat(inserter, SPAN_NOTICE("You insert [potential_disk] and enter the decryption key.")) + inserter.count_niche_stat(STATISTICS_NICHE_DISK) + +/datum/component/disk_reader/proc/on_disk_complete(datum/source) + SIGNAL_HANDLER + var/atom/atom_parent = parent + + atom_parent.visible_message("[atom_parent] pings softly as the upload finishes and ejects [disk].") + playsound(atom_parent, 'sound/machines/screen_output1.ogg', 25, 1) + disk.forceMove(get_turf(atom_parent)) + disk.name = "[disk.name] (complete)" + disk.objective.award_points() + disk.retrieve_objective.state = OBJECTIVE_ACTIVE + disk.retrieve_objective.activate() + disk = null + +/datum/component/disk_reader/proc/on_power_lost(datum/source) + SIGNAL_HANDLER + var/atom/atom_parent = parent + + atom_parent.visible_message(SPAN_WARNING("[atom_parent] powers down mid-operation as the area loses power.")) + playsound(atom_parent, 'sound/machines/terminal_shutdown.ogg', 25, 1) + SSobjectives.stop_processing_objective(src) + disk.forceMove(get_turf(atom_parent)) + disk = null diff --git a/code/datums/components/healing_reduction.dm b/code/datums/components/healing_reduction.dm index 54ea02dc6b73..e61cbb9052a7 100644 --- a/code/datums/components/healing_reduction.dm +++ b/code/datums/components/healing_reduction.dm @@ -7,13 +7,13 @@ Healing above this strength will be reduced by the strength of the buildup. Humans will take continuous damage instead. */ -/datum/component/healing_reduction +/datum/component/status_effect/healing_reduction dupe_mode = COMPONENT_DUPE_UNIQUE_PASSARGS var/healing_reduction = 0 var/healing_reduction_dissipation = AMOUNT_PER_TIME(1, 5 SECONDS) var/max_buildup = 50 //up to 50 damage off of healing max by default -/datum/component/healing_reduction/Initialize(healing_reduction, healing_reduction_dissipation = AMOUNT_PER_TIME(1, 2.5 SECONDS), max_buildup = 50) +/datum/component/status_effect/healing_reduction/Initialize(healing_reduction, healing_reduction_dissipation = AMOUNT_PER_TIME(1, 2.5 SECONDS), max_buildup = 50) if(!isxeno_human(parent)) return COMPONENT_INCOMPATIBLE . = ..() @@ -21,7 +21,7 @@ Humans will take continuous damage instead. src.healing_reduction_dissipation = healing_reduction_dissipation src.max_buildup = max_buildup -/datum/component/healing_reduction/InheritComponent(datum/component/healing_reduction/inherit_component, i_am_original, healing_reduction) +/datum/component/status_effect/healing_reduction/InheritComponent(datum/component/status_effect/healing_reduction/inherit_component, i_am_original, healing_reduction) . = ..() if(!inherit_component) src.healing_reduction += healing_reduction @@ -30,7 +30,12 @@ Humans will take continuous damage instead. src.healing_reduction = min(src.healing_reduction, max_buildup) -/datum/component/healing_reduction/process(delta_time) +/datum/component/status_effect/healing_reduction/process(delta_time) + var/atom/parent_atom = parent + if(has_immunity) + parent_atom.remove_filter("healing_reduction") + return ..() + if(!parent) qdel(src) return @@ -49,10 +54,9 @@ Humans will take continuous damage instead. var/intensity = healing_reduction/max_buildup color += num2text(MAX_ALPHA*intensity, 2, 16) - var/atom/parent_atom = parent parent_atom.add_filter("healing_reduction", 2, list("type" = "outline", "color" = color, "size" = 1)) -/datum/component/healing_reduction/RegisterWithParent() +/datum/component/status_effect/healing_reduction/RegisterWithParent() START_PROCESSING(SSdcs, src) RegisterSignal(parent, list( COMSIG_XENO_ON_HEAL, @@ -60,7 +64,7 @@ Humans will take continuous damage instead. ), PROC_REF(apply_healing_reduction)) RegisterSignal(parent, COMSIG_XENO_APPEND_TO_STAT, PROC_REF(stat_append)) -/datum/component/healing_reduction/UnregisterFromParent() +/datum/component/status_effect/healing_reduction/UnregisterFromParent() STOP_PROCESSING(SSdcs, src) UnregisterSignal(parent, list( COMSIG_XENO_ON_HEAL, @@ -70,12 +74,17 @@ Humans will take continuous damage instead. var/atom/parent_atom = parent parent_atom.remove_filter("healing_reduction") -/datum/component/healing_reduction/proc/stat_append(mob/target_mob, list/stat_list) +/datum/component/status_effect/healing_reduction/proc/stat_append(mob/target_mob, list/stat_list) SIGNAL_HANDLER + if(has_immunity) + stat_list += "Healing Reduction Immunity: [grace_period]/[initial(grace_period)]" + return stat_list += "Healing Reduction: [healing_reduction]/[max_buildup]" -/datum/component/healing_reduction/proc/apply_healing_reduction(mob/living/carbon/xenomorph/xeno, list/healing) +/datum/component/status_effect/healing_reduction/proc/apply_healing_reduction(mob/living/carbon/xenomorph/xeno, list/healing) SIGNAL_HANDLER + if(has_immunity) + return healing["healing"] -= healing_reduction #undef MAX_ALPHA diff --git a/code/datums/components/overlay_lighting.dm b/code/datums/components/overlay_lighting.dm index 00a5e86b5d60..e7e8c2e9b984 100644 --- a/code/datums/components/overlay_lighting.dm +++ b/code/datums/components/overlay_lighting.dm @@ -175,7 +175,7 @@ LAZYINITLIST(affected_turfs) if(range <= 2) //Range here is 1 because actual range of lighting mask is 1 tile even if it says that range is 2 - for(var/turf/lit_turf in RANGE_TURFS(1, current_holder.loc)) + for(var/turf/lit_turf as anything in RANGE_TURFS(1, current_holder.loc)) lit_turf.dynamic_lumcount += lum_power affected_turfs += lit_turf else @@ -194,7 +194,7 @@ get_new_turfs() -///Adds the luminosity and source for the afected movable atoms to keep track of their visibility. +///Adds the luminosity and source for the affected movable atoms to keep track of their visibility. /datum/component/overlay_lighting/proc/add_dynamic_lumi() LAZYSET(current_holder.affected_movable_lights, src, lumcount_range + 1) current_holder.underlays += visible_mask @@ -202,7 +202,7 @@ if(directional) current_holder.underlays += cone -///Removes the luminosity and source for the afected movable atoms to keep track of their visibility. +///Removes the luminosity and source for the affected movable atoms to keep track of their visibility. /datum/component/overlay_lighting/proc/remove_dynamic_lumi() LAZYREMOVE(current_holder.affected_movable_lights, src) current_holder.underlays -= visible_mask @@ -262,6 +262,9 @@ ///Used to determine the new valid current_holder from the parent's loc. /datum/component/overlay_lighting/proc/check_holder() var/atom/movable/movable_parent = GET_PARENT + if(QDELETED(movable_parent)) + set_holder(null) + return if(isturf(movable_parent.loc)) set_holder(movable_parent) return @@ -270,13 +273,21 @@ set_holder(null) return if(isturf(inside.loc)) - set_holder(inside) + // storage items block light, also don't be moving into a qdeleted item + if(QDELETED(inside) || istype(inside, /obj/item/storage)) + set_holder(null) + else + set_holder(inside) return set_holder(null) ///Called when the current_holder is qdeleted, to remove the light effect. /datum/component/overlay_lighting/proc/on_holder_qdel(atom/movable/source, force) + SIGNAL_HANDLER + if(QDELETED(current_holder)) + set_holder(null) + return UnregisterSignal(current_holder, list(COMSIG_PARENT_QDELETING, COMSIG_MOVABLE_MOVED)) if(directional) UnregisterSignal(current_holder, COMSIG_ATOM_DIR_CHANGE) @@ -285,6 +296,7 @@ ///Called when current_holder changes loc. /datum/component/overlay_lighting/proc/on_holder_moved(atom/movable/source, OldLoc, Dir, Forced) + SIGNAL_HANDLER if(!(overlay_lighting_flags & LIGHTING_ON)) return make_luminosity_update() @@ -328,7 +340,7 @@ turn_off() range = clamp(CEILING(new_range, 0.5), 1, 7) var/pixel_bounds = ((range - 1) * 64) + 32 - lumcount_range = CEILING(range, 1) + lumcount_range = ceil(range) if(current_holder && overlay_lighting_flags & LIGHTING_ON) current_holder.underlays -= visible_mask visible_mask.icon = light_overlays["[pixel_bounds]"] @@ -344,7 +356,7 @@ if(current_holder && overlay_lighting_flags & LIGHTING_ON) current_holder.underlays += visible_mask if(directional) - cast_range = clamp(round(new_range * 0.5), 1, 3) + cast_range = clamp(floor(new_range * 0.5), 1, 3) if(overlay_lighting_flags & LIGHTING_ON) make_luminosity_update() @@ -443,8 +455,7 @@ . = lum_power lum_power = new_lum_power var/difference = . - lum_power - for(var/t in affected_turfs) - var/turf/lit_turf = t + for(var/turf/lit_turf as anything in affected_turfs) lit_turf.dynamic_lumcount -= difference ///Here we append the behavior associated to changing lum_power. diff --git a/code/datums/components/speed_modifier.dm b/code/datums/components/speed_modifier.dm index 3e96fbc56777..c19d85ffd38b 100644 --- a/code/datums/components/speed_modifier.dm +++ b/code/datums/components/speed_modifier.dm @@ -3,14 +3,14 @@ //Adjusts the speed of a xenomorph the component is on. Humans will take or heal stamina damage. -/datum/component/speed_modifier +/datum/component/status_effect/speed_modifier dupe_mode = COMPONENT_DUPE_UNIQUE_PASSARGS var/speed_modifier = 0 var/speed_modifier_dissipation = AMOUNT_PER_TIME(1, 2.5 SECONDS) var/max_buildup = 10 var/increase_speed = FALSE -/datum/component/speed_modifier/Initialize(speed_modifier, increase_speed = FALSE, speed_modifier_dissipation = AMOUNT_PER_TIME(1, 2.5 SECONDS), max_buildup = 10) +/datum/component/status_effect/speed_modifier/Initialize(speed_modifier, increase_speed = FALSE, speed_modifier_dissipation = AMOUNT_PER_TIME(1, 2.5 SECONDS), max_buildup = 10) if(!isxeno_human(parent)) return COMPONENT_INCOMPATIBLE . = ..() @@ -19,7 +19,7 @@ src.max_buildup = max_buildup src.increase_speed = increase_speed -/datum/component/speed_modifier/InheritComponent(datum/component/speed_modifier/C, i_am_original, speed_modifier) +/datum/component/status_effect/speed_modifier/InheritComponent(datum/component/status_effect/speed_modifier/C, i_am_original, speed_modifier) . = ..() if(!C) src.speed_modifier += speed_modifier @@ -28,7 +28,12 @@ src.speed_modifier = min(src.speed_modifier, max_buildup) -/datum/component/speed_modifier/process(delta_time) +/datum/component/status_effect/speed_modifier/process(delta_time) + var/atom/parent_atom = parent + if(has_immunity) + parent_atom.remove_filter("speed_modifier") + return ..() + if(!parent) qdel(src) speed_modifier = max(speed_modifier - speed_modifier_dissipation * delta_time, 0) @@ -47,15 +52,14 @@ var/intensity = speed_modifier/max_buildup color += num2text(MAX_ALPHA*intensity, 2, 16) - var/atom/A = parent - A.add_filter("speed_modifier", 2, list("type" = "outline", "color" = color, "size" = 1)) + parent_atom.add_filter("speed_modifier", 2, list("type" = "outline", "color" = color, "size" = 1)) -/datum/component/speed_modifier/RegisterWithParent() +/datum/component/status_effect/speed_modifier/RegisterWithParent() START_PROCESSING(SSdcs, src) RegisterSignal(parent, COMSIG_XENO_MOVEMENT_DELAY, PROC_REF(apply_speed_modifier)) RegisterSignal(parent, COMSIG_XENO_APPEND_TO_STAT, PROC_REF(stat_append)) -/datum/component/speed_modifier/UnregisterFromParent() +/datum/component/status_effect/speed_modifier/UnregisterFromParent() STOP_PROCESSING(SSdcs, src) UnregisterSignal(parent, list( COMSIG_XENO_MOVEMENT_DELAY, @@ -64,15 +68,20 @@ var/atom/A = parent A.remove_filter("speed_modifier") -/datum/component/speed_modifier/proc/stat_append(mob/M, list/L) +/datum/component/status_effect/speed_modifier/proc/stat_append(mob/M, list/L) SIGNAL_HANDLER + if(has_immunity) + L += "Slow immunity: [grace_period]/[initial(grace_period)]" + return if(!increase_speed) L += "Slow: [speed_modifier]/[max_buildup]" else L += "Speed Boost: [speed_modifier]/[max_buildup]" -/datum/component/speed_modifier/proc/apply_speed_modifier(mob/living/carbon/xenomorph/X, list/speeds) +/datum/component/status_effect/speed_modifier/proc/apply_speed_modifier(mob/living/carbon/xenomorph/X, list/speeds) SIGNAL_HANDLER + if(has_immunity) + return if(!increase_speed) speeds["speed"] += speed_modifier * 0.075 else //increasing speed is more effective than decreasing speed diff --git a/code/datums/components/status_effect_component.dm b/code/datums/components/status_effect_component.dm new file mode 100644 index 000000000000..34c077f61935 --- /dev/null +++ b/code/datums/components/status_effect_component.dm @@ -0,0 +1,23 @@ +//exists only to handle immunities for now + +/datum/component/status_effect + var/has_immunity = FALSE + var/grace_period = 30 + +/datum/component/status_effect/InheritComponent(datum/component/C, i_am_original) + if(has_immunity) + grace_period = min(grace_period + 1, initial(grace_period)) + +/datum/component/status_effect/Initialize() + . = ..() + RegisterSignal(parent, list(COMSIG_XENO_DEBUFF_CLEANSE, COMSIG_LIVING_REJUVENATED), PROC_REF(cleanse)) + +/datum/component/status_effect/proc/cleanse() + SIGNAL_HANDLER + has_immunity = TRUE + +/datum/component/status_effect/process(delta_time) + if(has_immunity) + grace_period -= 1 * delta_time + if(grace_period <= 0) + qdel(src) diff --git a/code/datums/components/temporary_mute.dm b/code/datums/components/temporary_mute.dm new file mode 100644 index 000000000000..a875287d487e --- /dev/null +++ b/code/datums/components/temporary_mute.dm @@ -0,0 +1,92 @@ +/datum/component/temporary_mute + dupe_mode = COMPONENT_DUPE_UNIQUE + /// A message to tell the user when they attempt to speak, if any + var/on_speak_message = "" + /// A message to tell the user when they attempt to emote, if any + var/on_emote_message = "" + /// A message to tell the user when they become no longer mute, if any + var/on_unmute_message = "" + /// How long after the component's initialization it should be deleted. -1 means it will never delete + var/time_until_unmute = 3 MINUTES + +/datum/component/temporary_mute/Initialize(on_speak_message = "", on_emote_message = "", on_unmute_message = "", time_until_unmute = 3 MINUTES) + . = ..() + if(!ismob(parent)) + return COMPONENT_INCOMPATIBLE + + src.on_speak_message = on_speak_message + src.on_emote_message = on_emote_message + src.on_unmute_message = on_unmute_message + src.time_until_unmute = time_until_unmute + if(time_until_unmute != -1) + QDEL_IN(src, time_until_unmute) + +/datum/component/temporary_mute/RegisterWithParent() + ..() + RegisterSignal(parent, COMSIG_LIVING_SPEAK, PROC_REF(on_speak)) + RegisterSignal(parent, COMSIG_XENO_TRY_HIVEMIND_TALK, PROC_REF(on_hivemind)) + RegisterSignal(parent, COMSIG_MOB_TRY_EMOTE, PROC_REF(on_emote)) + RegisterSignal(parent, COMSIG_MOB_TRY_POINT, PROC_REF(on_point)) + ADD_TRAIT(parent, TRAIT_TEMPORARILY_MUTED, TRAIT_SOURCE_TEMPORARY_MUTE) + +/datum/component/temporary_mute/UnregisterFromParent() + ..() + if(parent) + UnregisterSignal(parent, COMSIG_LIVING_SPEAK) + UnregisterSignal(parent, COMSIG_XENO_TRY_HIVEMIND_TALK) + UnregisterSignal(parent, COMSIG_MOB_TRY_EMOTE) + UnregisterSignal(parent, COMSIG_MOB_TRY_POINT) + if(on_unmute_message) + to_chat(parent, SPAN_NOTICE(on_unmute_message)) + REMOVE_TRAIT(parent, TRAIT_TEMPORARILY_MUTED, TRAIT_SOURCE_TEMPORARY_MUTE) + +/datum/component/temporary_mute/proc/on_speak( + mob/user, + message, + datum/language/speaking = null, + verb = "says", + alt_name = "", + italics = FALSE, + message_range = GLOB.world_view_size, + sound/speech_sound, + sound_vol, + nolog = FALSE, + message_mode = null +) + SIGNAL_HANDLER + + if(!nolog) + msg_admin_niche("[user.name != "Unknown" ? user.name : "([user.real_name])"] attempted to say the following before their spawn mute ended: [message] (CKEY: [user.key]) (JOB: [user.job]) (AREA: [get_area_name(user)])") + if(on_speak_message) + to_chat(parent, SPAN_BOLDNOTICE(on_speak_message)) + return COMPONENT_OVERRIDE_SPEAK + +/datum/component/temporary_mute/proc/on_hivemind(mob/user, message) + SIGNAL_HANDLER + + msg_admin_niche("[user.name != "Unknown" ? user.name : "([user.real_name])"] attempted to hivemind the following before their spawn mute ended: [message] (CKEY: [user.key]) (JOB: [user.job]) (AREA: [get_area_name(user)])") + if(on_speak_message) + to_chat(parent, SPAN_BOLDNOTICE(on_speak_message)) + return COMPONENT_OVERRIDE_HIVEMIND_TALK + +/datum/component/temporary_mute/proc/on_emote(mob/user, datum/emote/current_emote, act, m_type, param, intentional) + SIGNAL_HANDLER + + // Allow involuntary emotes or non-custom emotes + if(!intentional) + return + if(!param && !istype(current_emote, /datum/emote/custom)) + return + + msg_admin_niche("[user.name != "Unknown" ? user.name : "([user.real_name])"] attempted to emote the following before their spawn mute ended: [param] (CKEY: [user.key]) (JOB: [user.job]) (AREA: [get_area_name(user)])") + if(on_emote_message) + to_chat(parent, SPAN_BOLDNOTICE(on_emote_message)) + return COMPONENT_OVERRIDE_EMOTE + +/datum/component/temporary_mute/proc/on_point(mob/user, atom/target) + SIGNAL_HANDLER + + msg_admin_niche("[user.name != "Unknown" ? user.name : "([user.real_name])"] attempted to point at the following before their spawn mute ended: [target] (CKEY: [user.key]) (JOB: [user.job]) (AREA: [get_area_name(user)])") + if(on_emote_message) + to_chat(parent, SPAN_BOLDNOTICE(on_emote_message)) + return COMPONENT_OVERRIDE_POINT diff --git a/code/datums/components/toxin_buildup.dm b/code/datums/components/toxin_buildup.dm index a30f7397e9f6..d761a4b0297e 100644 --- a/code/datums/components/toxin_buildup.dm +++ b/code/datums/components/toxin_buildup.dm @@ -1,4 +1,4 @@ -/datum/component/toxic_buildup +/datum/component/status_effect/toxic_buildup dupe_mode = COMPONENT_DUPE_UNIQUE_PASSARGS var/toxic_buildup = 0 var/toxic_buildup_dissipation = AMOUNT_PER_TIME(5, 10 SECONDS) @@ -7,13 +7,14 @@ var/max_alpha = 35 var/glow_color = "#00ff00" -/datum/component/toxic_buildup/Initialize(toxic_buildup, toxic_buildup_dissipation = AMOUNT_PER_TIME(1, 3 SECONDS), max_buildup = 75) +/datum/component/status_effect/toxic_buildup/Initialize(toxic_buildup, toxic_buildup_dissipation = AMOUNT_PER_TIME(1, 3 SECONDS), max_buildup = 75) . = ..() src.toxic_buildup = toxic_buildup src.toxic_buildup_dissipation = toxic_buildup_dissipation src.max_buildup = max_buildup + to_chat(parent, SPAN_XENOHIGHDANGER("The toxic substance damages our armor!")) -/datum/component/toxic_buildup/InheritComponent(datum/component/toxic_buildup/C, i_am_original, toxic_buildup) +/datum/component/status_effect/toxic_buildup/InheritComponent(datum/component/status_effect/toxic_buildup/C, i_am_original, toxic_buildup) . = ..() if(!C) src.toxic_buildup += toxic_buildup @@ -22,7 +23,12 @@ src.toxic_buildup = min(src.toxic_buildup, max_buildup) -/datum/component/toxic_buildup/process(delta_time) +/datum/component/status_effect/toxic_buildup/process(delta_time) + var/atom/parent_atom = parent + if(has_immunity) + parent_atom.remove_filter("toxic_buildup") + return ..() + toxic_buildup = max(toxic_buildup - toxic_buildup_dissipation * delta_time, 0) if(ishuman(parent)) @@ -37,10 +43,9 @@ color += num2text(max_alpha*intensity, 2, 16) if(parent) - var/atom/A = parent - A.add_filter("toxic_buildup", 2, list("type" = "outline", "color" = color, "size" = 1)) + parent_atom.add_filter("toxic_buildup", 2, list("type" = "outline", "color" = color, "size" = 1)) -/datum/component/toxic_buildup/RegisterWithParent() +/datum/component/status_effect/toxic_buildup/RegisterWithParent() START_PROCESSING(SSdcs, src) RegisterSignal(parent, list( COMSIG_XENO_PRE_CALCULATE_ARMOURED_DAMAGE_PROJECTILE, @@ -48,7 +53,7 @@ ), PROC_REF(apply_toxic_buildup)) RegisterSignal(parent, COMSIG_XENO_APPEND_TO_STAT, PROC_REF(stat_append)) -/datum/component/toxic_buildup/UnregisterFromParent() +/datum/component/status_effect/toxic_buildup/UnregisterFromParent() STOP_PROCESSING(SSdcs, src) UnregisterSignal(parent, list( COMSIG_XENO_PRE_CALCULATE_ARMOURED_DAMAGE_PROJECTILE, @@ -58,10 +63,15 @@ var/atom/A = parent A.remove_filter("toxic_buildup") -/datum/component/toxic_buildup/proc/stat_append(mob/M, list/L) +/datum/component/status_effect/toxic_buildup/proc/stat_append(mob/M, list/L) SIGNAL_HANDLER + if(has_immunity) + L += "Toxin Buildup immunity [grace_period]/[initial(grace_period)]" + return L += "Toxin Buildup: [toxic_buildup]/[max_buildup]" -/datum/component/toxic_buildup/proc/apply_toxic_buildup(mob/living/carbon/xenomorph/X, list/damagedata) +/datum/component/status_effect/toxic_buildup/proc/apply_toxic_buildup(mob/living/carbon/xenomorph/X, list/damagedata) SIGNAL_HANDLER + if(has_immunity) + return damagedata["armor"] = max(damagedata["armor"] - toxic_buildup, 0) diff --git a/code/datums/components/tutorial_status.dm b/code/datums/components/tutorial_status.dm new file mode 100644 index 000000000000..97b8d408bcb5 --- /dev/null +++ b/code/datums/components/tutorial_status.dm @@ -0,0 +1,25 @@ +/datum/component/tutorial_status + dupe_mode = COMPONENT_DUPE_UNIQUE + /// What the mob's current tutorial status is, displayed in the status panel + var/tutorial_status = "" + +/datum/component/tutorial_status/Initialize() + . = ..() + if(!ismob(parent)) + return COMPONENT_INCOMPATIBLE + +/datum/component/tutorial_status/RegisterWithParent() + ..() + RegisterSignal(parent, COMSIG_MOB_TUTORIAL_UPDATE_OBJECTIVE, PROC_REF(update_objective)) + RegisterSignal(parent, COMSIG_MOB_GET_STATUS_TAB_ITEMS, PROC_REF(get_status_tab_item)) + +/datum/component/tutorial_status/proc/update_objective(datum/source, objective_text) + SIGNAL_HANDLER + + tutorial_status = objective_text + +/datum/component/tutorial_status/proc/get_status_tab_item(datum/source, list/status_tab_items) + SIGNAL_HANDLER + + if(tutorial_status) + status_tab_items += "Tutorial Objective: " + tutorial_status diff --git a/code/datums/components/weed_food.dm b/code/datums/components/weed_food.dm index 648478aa6140..ce6fe35e4a28 100644 --- a/code/datums/components/weed_food.dm +++ b/code/datums/components/weed_food.dm @@ -6,15 +6,19 @@ desc = "Weird black weeds in the shape of a body..." gender = PLURAL vis_flags = VIS_INHERIT_DIR|VIS_INHERIT_PLANE|VIS_INHERIT_LAYER + mouse_opacity = MOUSE_OPACITY_TRANSPARENT icon = 'icons/mob/xenos/weeds.dmi' - var/static/list/icon_states = list("human_1","human_2","human_3","human_4","human_5") - var/static/list/icon_states_flipped = list("human_1_f","human_2_f","human_3_f","human_4_f","human_5_f") + var/list/icon_states + var/list/icon_states_flipped var/icon_state_idx = 0 var/timer_id = null var/flipped = FALSE -/atom/movable/vis_obj/weed_food/Initialize(mapload, is_flipped, ...) +/atom/movable/vis_obj/weed_food/Initialize(mapload, is_flipped, weeds_icon, states, states_flipped, ...) flipped = is_flipped + icon = weeds_icon + icon_states = states + icon_states_flipped = states_flipped timer_id = addtimer(CALLBACK(src, PROC_REF(on_animation_timer)), WEED_FOOD_STATE_DELAY, TIMER_STOPPABLE|TIMER_UNIQUE|TIMER_LOOP|TIMER_DELETE_ME) on_animation_timer() return ..() @@ -22,6 +26,7 @@ /// Timer callback for changing the icon_state /atom/movable/vis_obj/weed_food/proc/on_animation_timer() icon_state_idx++ + // Assumption: Length of icon_states is the same as icon_states_flipped if(icon_state_idx > length(icon_states)) deltimer(timer_id) timer_id = null @@ -50,6 +55,8 @@ var/turf/parent_turf /// The obj that our parent is buckled to and we have registered a signal var/obj/parent_buckle + /// A nest our parent is buckled to and we have registered a signal + var/obj/structure/bed/nest/parent_nest /// The weeds that we are merging/merged with var/obj/effect/alien/weeds/absorbing_weeds /// The overlay image when merged @@ -57,10 +64,9 @@ /datum/component/weed_food/Initialize(...) parent_mob = parent - //if(!istype(parent_mob)) - //return COMPONENT_INCOMPATIBLE - if(!istype(parent_mob, /mob/living/carbon/human)) - return COMPONENT_INCOMPATIBLE // TODO: At the moment we only support humans + // At the moment we only support humans and xenos + if(!istype(parent_mob, /mob/living/carbon/human) && !istype(parent_mob, /mob/living/carbon/xenomorph)) + return COMPONENT_INCOMPATIBLE parent_turf = get_turf(parent_mob) if(parent_turf != parent_mob.loc) @@ -78,30 +84,37 @@ QDEL_NULL(weed_appearance) parent_mob = null parent_turf = null + parent_buckle = null /datum/component/weed_food/RegisterWithParent() - RegisterSignal(parent_mob, COMSIG_MOVABLE_MOVED, PROC_REF(on_move)) + RegisterSignal(parent_mob, COMSIG_MOVABLE_TURF_ENTERED, PROC_REF(on_move)) RegisterSignal(parent_mob, list(COMSIG_LIVING_REJUVENATED, COMSIG_HUMAN_REVIVED), PROC_REF(on_rejuv)) RegisterSignal(parent_mob, COMSIG_HUMAN_SET_UNDEFIBBABLE, PROC_REF(on_update)) + RegisterSignal(parent_mob, COMSIG_LIVING_PREIGNITION, PROC_REF(on_preignition)) + RegisterSignal(SSdcs, COMSIG_GLOB_GROUNDSIDE_FORSAKEN_HANDLING, PROC_REF(on_forsaken)) if(parent_turf) RegisterSignal(parent_turf, COMSIG_WEEDNODE_GROWTH, PROC_REF(on_update)) /datum/component/weed_food/UnregisterFromParent() if(parent_mob) UnregisterSignal(parent_mob, list( - COMSIG_MOVABLE_MOVED, + COMSIG_MOVABLE_TURF_ENTERED, COMSIG_LIVING_REJUVENATED, COMSIG_HUMAN_REVIVED, COMSIG_HUMAN_SET_UNDEFIBBABLE, + COMSIG_LIVING_PREIGNITION, )) if(absorbing_weeds) UnregisterSignal(absorbing_weeds, COMSIG_PARENT_QDELETING) if(parent_turf) UnregisterSignal(parent_turf, COMSIG_WEEDNODE_GROWTH) if(parent_buckle) - UnregisterSignal(parent_buckle, COSMIG_OBJ_AFTER_BUCKLE) + UnregisterSignal(parent_buckle, COMSIG_OBJ_AFTER_BUCKLE) + if(parent_nest) + UnregisterSignal(parent_nest, COMSIG_PARENT_QDELETING) + UnregisterSignal(SSdcs, COMSIG_GLOB_GROUNDSIDE_FORSAKEN_HANDLING) -/// SIGNAL_HANDLER for COMSIG_MOVABLE_MOVED +/// SIGNAL_HANDLER for COMSIG_MOVABLE_TURF_ENTERED /datum/component/weed_food/proc/on_move() SIGNAL_HANDLER @@ -135,7 +148,7 @@ qdel(src) -/// SIGNAL_HANDLER for COSMIG_OBJ_AFTER_BUCKLE +/// SIGNAL_HANDLER for COMSIG_OBJ_AFTER_BUCKLE /datum/component/weed_food/proc/on_after_buckle(obj/source, mob/buckled) SIGNAL_HANDLER @@ -160,6 +173,36 @@ unmerge_with_weeds() return +/// SIGNAL_HANDLER for COMSIG_PARENT_QDELETING of nest +/datum/component/weed_food/proc/on_nest_deletion() + SIGNAL_HANDLER + + if(merged) + parent_mob.plane = FLOOR_PLANE + UnregisterSignal(parent_nest, COMSIG_PARENT_QDELETING) + parent_nest = null + +/// SIGNAL_HANDLER for COMSIG_GLOB_GROUNDSIDE_FORSAKEN_HANDLING +/datum/component/weed_food/proc/on_forsaken() + SIGNAL_HANDLER + + UnregisterSignal(SSdcs, COMSIG_GLOB_GROUNDSIDE_FORSAKEN_HANDLING) + + if(!merged) + return + if(!is_ground_level(parent_mob.z)) + return + + var/datum/hive_status/hive = GLOB.hive_datum[XENO_HIVE_FORSAKEN] + weed_appearance.color = hive.color + +/// SIGNAL_HANDLER for COMSIG_LIVING_PREIGNITION of weeds +/datum/component/weed_food/proc/on_preignition() + SIGNAL_HANDLER + + if(merged) + return COMPONENT_CANCEL_IGNITION + /** * Try to start the process to turn into weeds * Returns TRUE if started successfully @@ -177,12 +220,12 @@ return FALSE // Still buckled to the same thing if(!istype(parent_mob.buckled, /obj/structure/bed/nest)) if(parent_buckle) // Still have a lingering reference somehow? - UnregisterSignal(parent_buckle, COSMIG_OBJ_AFTER_BUCKLE) + UnregisterSignal(parent_buckle, COMSIG_OBJ_AFTER_BUCKLE) parent_buckle = parent_mob.buckled - RegisterSignal(parent_mob.buckled, COSMIG_OBJ_AFTER_BUCKLE, PROC_REF(on_after_buckle)) + RegisterSignal(parent_mob.buckled, COMSIG_OBJ_AFTER_BUCKLE, PROC_REF(on_after_buckle)) return FALSE if(parent_buckle) - UnregisterSignal(parent_buckle, COSMIG_OBJ_AFTER_BUCKLE) + UnregisterSignal(parent_buckle, COMSIG_OBJ_AFTER_BUCKLE) parent_buckle = null if(parent_mob.is_xeno_grabbable()) @@ -239,12 +282,16 @@ return FALSE // Still buckled to the same thing somehow? if(!istype(parent_mob.buckled, /obj/structure/bed/nest)) if(parent_buckle) // Still have a lingering reference somehow? - UnregisterSignal(parent_buckle, COSMIG_OBJ_AFTER_BUCKLE) + UnregisterSignal(parent_buckle, COMSIG_OBJ_AFTER_BUCKLE) parent_buckle = parent_mob.buckled - RegisterSignal(parent_mob.buckled, COSMIG_OBJ_AFTER_BUCKLE, PROC_REF(on_after_buckle)) + RegisterSignal(parent_mob.buckled, COMSIG_OBJ_AFTER_BUCKLE, PROC_REF(on_after_buckle)) return FALSE + else + parent_nest = parent_mob.buckled + RegisterSignal(parent_nest, COMSIG_PARENT_QDELETING, PROC_REF(on_nest_deletion)) + if(parent_buckle) - UnregisterSignal(parent_buckle, COSMIG_OBJ_AFTER_BUCKLE) + UnregisterSignal(parent_buckle, COMSIG_OBJ_AFTER_BUCKLE) parent_buckle = null if(SEND_SIGNAL(parent_mob, COMSIG_ATTEMPT_MOB_PULL) & COMPONENT_CANCEL_MOB_PULL) @@ -263,16 +310,17 @@ ADD_TRAIT(parent_mob, TRAIT_MERGED_WITH_WEEDS, XENO_WEED_TRAIT) parent_mob.anchored = TRUE parent_mob.mouse_opacity = MOUSE_OPACITY_TRANSPARENT - parent_mob.plane = FLOOR_PLANE + if(!parent_nest) + parent_mob.plane = FLOOR_PLANE parent_mob.remove_from_all_mob_huds() + parent_mob.ExtinguishMob() if(!weed_appearance) // Make a new sprite if we aren't re-merging var/is_flipped = parent_mob.transform.b == -1 // Technically we should check if d is 1 too, but corpses can only be rotated 90 or 270 (1/-1 or -1/1) if(parent_mob.dir & WEST) is_flipped = !is_flipped // The direction reversed the effect of the flip! - weed_appearance = new(null, is_flipped) + weed_appearance = new(null, is_flipped, parent_mob.weed_food_icon, parent_mob.weed_food_states, parent_mob.weed_food_states_flipped) weed_appearance.color = absorbing_weeds.color - // TODO: For non-humans change the icon_state or something here parent_mob.vis_contents += weed_appearance return TRUE @@ -289,6 +337,10 @@ UnregisterSignal(absorbing_weeds, COMSIG_PARENT_QDELETING) absorbing_weeds = null + if(parent_nest) + UnregisterSignal(parent_nest, COMSIG_PARENT_QDELETING) + parent_nest = null + REMOVE_TRAIT(parent_mob, TRAIT_MERGED_WITH_WEEDS, XENO_WEED_TRAIT) parent_mob.anchored = FALSE parent_mob.mouse_opacity = MOUSE_OPACITY_ICON diff --git a/code/datums/components/xeno/hivemind_interference.dm b/code/datums/components/xeno/hivemind_interference.dm new file mode 100644 index 000000000000..9a8a0db25567 --- /dev/null +++ b/code/datums/components/xeno/hivemind_interference.dm @@ -0,0 +1,56 @@ +/datum/component/status_effect/interference + dupe_mode = COMPONENT_DUPE_UNIQUE_PASSARGS + var/interference = 0 + var/max_buildup = 100 + var/dissipation = AMOUNT_PER_TIME(2, 2 SECONDS) + +/datum/component/status_effect/interference/Initialize(interference, max_buildup = 100, dissipation = AMOUNT_PER_TIME(2, 2 SECONDS)) + . = ..() + if(!isxeno(parent)) + return COMPONENT_INCOMPATIBLE + ADD_TRAIT(parent, TRAIT_HIVEMIND_INTERFERENCE, TRAIT_SOURCE_HIVEMIND_INTERFERENCE) + src.interference = interference + src.max_buildup = max_buildup + src.dissipation = dissipation + to_chat(parent, SPAN_XENOHIGHDANGER("Our awareness dims to a small area!")) + +/datum/component/status_effect/interference/InheritComponent(datum/component/status_effect/interference/inter, i_am_original, amount, max_buildup) + . = ..() + + src.max_buildup = max(max_buildup, src.max_buildup) //if the new component's cap is higher, use that + + if(!inter) + interference += amount + else + interference += inter.interference + + interference = min(interference, max_buildup) + +/datum/component/status_effect/interference/process(delta_time) + if(has_immunity) + return ..() + + interference = clamp(interference - dissipation * delta_time, 0, max_buildup) + + if(interference <= 0) + REMOVE_TRAIT(parent, TRAIT_HIVEMIND_INTERFERENCE, TRAIT_SOURCE_HIVEMIND_INTERFERENCE) + qdel(src) + +/datum/component/status_effect/interference/RegisterWithParent() + START_PROCESSING(SSdcs, src) + RegisterSignal(parent, COMSIG_XENO_APPEND_TO_STAT, PROC_REF(stat_append)) + +/datum/component/status_effect/interference/UnregisterFromParent() + STOP_PROCESSING(SSdcs, src) + UnregisterSignal(parent, COMSIG_XENO_APPEND_TO_STAT) + +/datum/component/status_effect/interference/proc/stat_append(mob/M, list/L) + SIGNAL_HANDLER + if(has_immunity) + L += "Hivemind Interference immunity [grace_period]/[initial(grace_period)]" + return + L += "Hivemind Interference: [interference]/[max_buildup]" + +/datum/component/status_effect/interference/cleanse() + REMOVE_TRAIT(parent, TRAIT_HIVEMIND_INTERFERENCE, TRAIT_SOURCE_HIVEMIND_INTERFERENCE) + return ..() diff --git a/code/datums/components/xeno/xeno_daze.dm b/code/datums/components/xeno/xeno_daze.dm new file mode 100644 index 000000000000..1295950ad62d --- /dev/null +++ b/code/datums/components/xeno/xeno_daze.dm @@ -0,0 +1,58 @@ +//snowflake used only for warcrime's effects + +/datum/component/status_effect/daze + dupe_mode = COMPONENT_DUPE_UNIQUE_PASSARGS + var/daze = 0 + var/max_buildup = 20 + var/dissipation = AMOUNT_PER_TIME(2, 2 SECONDS) + +/datum/component/status_effect/daze/Initialize(daze, max_buildup = 30, dissipation = AMOUNT_PER_TIME(2, 2 SECONDS)) + . = ..() + if(!isxeno(parent)) + return COMPONENT_INCOMPATIBLE + ADD_TRAIT(parent, TRAIT_DAZED, TRAIT_STATUS_EFFECT("daze_warcrimes")) + src.daze = daze + src.max_buildup = max_buildup + src.dissipation = dissipation + to_chat(parent, SPAN_XENOHIGHDANGER("We feel weak and dazed!")) + +/datum/component/status_effect/daze/InheritComponent(datum/component/status_effect/daze/daze_new, i_am_original, amount, max_buildup) + . = ..() + + src.max_buildup = max(max_buildup, src.max_buildup) //if the new component's cap is higher, use that + + if(!daze_new) + daze += amount + else + daze += daze_new.daze + + daze = min(daze, max_buildup) + +/datum/component/status_effect/daze/process(delta_time) + if(has_immunity) + return ..() + + daze = clamp(daze - dissipation * delta_time, 0, max_buildup) + + if(daze <= 0) + REMOVE_TRAIT(parent, TRAIT_DAZED, TRAIT_STATUS_EFFECT("daze_warcrimes")) + qdel(src) + +/datum/component/status_effect/daze/RegisterWithParent() + START_PROCESSING(SSdcs, src) + RegisterSignal(parent, COMSIG_XENO_APPEND_TO_STAT, PROC_REF(stat_append)) + +/datum/component/status_effect/daze/UnregisterFromParent() + STOP_PROCESSING(SSdcs, src) + UnregisterSignal(parent, COMSIG_XENO_APPEND_TO_STAT) + +/datum/component/status_effect/daze/proc/stat_append(mob/M, list/L) + SIGNAL_HANDLER + if(has_immunity) + L += "Daze immunity [grace_period]/[initial(grace_period)]" + return + L += "Daze: [daze]/[max_buildup]" + +/datum/component/status_effect/daze/cleanse() + REMOVE_TRAIT(parent, TRAIT_DAZED, TRAIT_STATUS_EFFECT("daze_warcrimes")) + return ..() diff --git a/code/datums/construction/construction_template.dm b/code/datums/construction/construction_template.dm index 0b874def4495..37832327c381 100644 --- a/code/datums/construction/construction_template.dm +++ b/code/datums/construction/construction_template.dm @@ -14,8 +14,8 @@ var/pixel_y = -16 var/pixel_x = -16 - var/crystals_required = 0 - var/crystals_stored = 0 + var/plasma_required = 0 + var/plasma_stored = 0 var/materials_required = list() //Example resource requirements i.e. MATERIAL_METAL = 1 var/extras_required = list() //Example extra requirements i.e. /obj/item = 1 @@ -43,47 +43,23 @@ return if(!xeno.plasma_max) return - if(crystals_stored >= crystals_required) + if(plasma_stored >= plasma_required) to_chat(xeno, SPAN_WARNING("\The [name] does not require plasma.")) return - to_chat(xeno, SPAN_NOTICE("You begin adding \the plasma to \the [name].")) + to_chat(xeno, SPAN_NOTICE("We begin adding \the plasma to \the [name].")) xeno_attack_delay(xeno) if(!do_after(xeno, 40, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD)) return //double-check amount required - if(crystals_stored >= crystals_required) + if(plasma_stored >= plasma_required) to_chat(xeno, SPAN_WARNING("\The [name] has enough plasma.")) return - var/amount_to_use = min(xeno.plasma_stored, (crystals_required - crystals_stored)) - crystals_stored += amount_to_use + var/amount_to_use = min(xeno.plasma_stored, (plasma_required - plasma_stored)) + plasma_stored += amount_to_use xeno.plasma_stored -= amount_to_use - to_chat(xeno, SPAN_WARNING("\The [name] requires [crystals_required - crystals_stored] more plasma.")) + to_chat(xeno, SPAN_WARNING("\The [name] requires [plasma_required - plasma_stored] more plasma.")) check_completion() -// Xeno ressource collection -/* -/datum/construction_template/proc/add_crystal(mob/living/carbon/xenomorph/M) - if(!istype(M)) - return - if(!M.crystal_stored) - to_chat(M, SPAN_WARNING("You have no [MATERIAL_CRYSTAL] stored.")) - return - if(crystals_stored >= crystals_required) - to_chat(M, SPAN_WARNING("\The [name] does not require [MATERIAL_CRYSTAL].")) - return - to_chat(M, SPAN_NOTICE("You begin adding \the [MATERIAL_CRYSTAL] to \the [name].")) - if(!do_after(M, 40, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD)) - return - //double-check amount required - if(crystals_stored >= crystals_required) - to_chat(M, SPAN_WARNING("\The [name] has enough [MATERIAL_CRYSTAL].")) - return - var/amount_to_use = min(M.crystal_stored, (crystals_required - crystals_stored)) - crystals_stored += amount_to_use - M.crystal_stored -= amount_to_use - to_chat(M, SPAN_WARNING("\The [name] requires [crystals_required - crystals_stored] more [MATERIAL_CRYSTAL].")) - check_completion() */ - /datum/construction_template/proc/add_material(mob/user, obj/item/I) if(isStack(I)) var/obj/item/stack/S = I @@ -123,7 +99,7 @@ check_completion() /datum/construction_template/proc/check_completion() - if(crystals_stored < crystals_required) + if(plasma_stored < plasma_required) return FALSE for(var/material_req in materials_required) if(materials_required[material_req] > 0) diff --git a/code/datums/construction/xenomorph/construction_template_xenomorph.dm b/code/datums/construction/xenomorph/construction_template_xenomorph.dm index 46b7e797632f..94914eb1e9ce 100644 --- a/code/datums/construction/xenomorph/construction_template_xenomorph.dm +++ b/code/datums/construction/xenomorph/construction_template_xenomorph.dm @@ -3,8 +3,10 @@ /datum/construction_template/xenomorph name = "xenomorph structure" build_type = /obj/effect/alien/resin/special - crystals_required = 45 * XENO_STRUCTURE_PLASMA_MULTIPLIER - var/datum/hive_status/hive_ref //Who gets what we build + plasma_required = 45 * XENO_STRUCTURE_PLASMA_MULTIPLIER + /// The hive that this structure belongs to. + var/datum/hive_status/hive_ref + /// The range around this structure which needs to be clear for it to be constructed. var/block_range = 1 /datum/construction_template/xenomorph/set_structure_image() @@ -24,18 +26,20 @@ /datum/construction_template/xenomorph/core name = XENO_STRUCTURE_CORE + description = "Heart of the hive, grows hive weeds (which are necessary for other structures), stores larva, spawns lesser drones, and protects the hive from skyfire." build_type = /obj/effect/alien/resin/special/pylon/core build_icon_state = "core" - crystals_required = 100 * XENO_STRUCTURE_PLASMA_MULTIPLIER + plasma_required = 100 * XENO_STRUCTURE_PLASMA_MULTIPLIER block_range = 0 /datum/construction_template/xenomorph/cluster name = XENO_STRUCTURE_CLUSTER + description = "Remote section of the hive, grows hive weeds, and morphs into a hive pylon when placed near a communications tower." build_type = /obj/effect/alien/resin/special/cluster build_icon_state = "hive_cluster" pixel_y = -8 pixel_x = -8 - crystals_required = 50 * XENO_STRUCTURE_PLASMA_MULTIPLIER + plasma_required = 50 * XENO_STRUCTURE_PLASMA_MULTIPLIER block_range = 0 /datum/construction_template/xenomorph/cluster/set_structure_image() @@ -43,23 +47,27 @@ /datum/construction_template/xenomorph/pylon name = XENO_STRUCTURE_PYLON + description = "Remote section of the hive, grows hive weeds, spawns lesser drones, and protects sisters from air strikes." build_type = /obj/effect/alien/resin/special/pylon build_icon_state = "pylon" - crystals_required = 100 * XENO_STRUCTURE_PLASMA_MULTIPLIER + plasma_required = 100 * XENO_STRUCTURE_PLASMA_MULTIPLIER block_range = 0 /datum/construction_template/xenomorph/eggmorph name = XENO_STRUCTURE_EGGMORPH + description = "Processes hatched hosts into new facehuggers." build_type = /obj/effect/alien/resin/special/eggmorph build_icon_state = "eggmorph_preview" /datum/construction_template/xenomorph/recovery name = XENO_STRUCTURE_RECOVERY + description = "Hastily recovers the strength of sisters resting around it." build_type = /obj/effect/alien/resin/special/recovery build_icon_state = "recovery" /datum/construction_template/xenomorph/nest name = XENO_STRUCTURE_NEST + description = "Strong enough to secure a headhunter for indeterminate durations." build_type = /obj/effect/alien/resin/special/nest build_icon_state = "reinforced_nest" @@ -101,3 +109,5 @@ xeno_message(SPAN_XENOWARNING("This structure needs to be built directly next to an vertical surface."), 7, XENO_HIVE_NORMAL) qdel(owner) qdel(src) + +#undef XENO_STRUCTURE_PLASMA_MULTIPLIER diff --git a/code/datums/custom_hud.dm b/code/datums/custom_hud.dm index 62ae36aa7b89..c9894398477a 100644 --- a/code/datums/custom_hud.dm +++ b/code/datums/custom_hud.dm @@ -71,7 +71,7 @@ var/coord_col = "-[col-1]" var/coord_col_offset = "-[4+2*col]" - var/row = round((placement-1)/13) + var/row = floor((placement-1)/13) var/coord_row = "[-1 - row]" var/coord_row_offset = 26 return "EAST[coord_col]:[coord_col_offset],NORTH[coord_row]:[coord_row_offset]" @@ -126,7 +126,7 @@ var/coord_col = "-0" var/coord_col_offset = "-[24 * col + 2]" - var/row = round((placement-1)/6) + var/row = floor((placement-1)/6) var/coord_row = "[-1 - row]" var/coord_row_offset = -8 return "EAST[coord_col]:[coord_col_offset],NORTH[coord_row]:[coord_row_offset]" diff --git a/code/datums/datacore.dm b/code/datums/datacore.dm index 933b547aa1f2..ca4eca8a1a49 100644 --- a/code/datums/datacore.dm +++ b/code/datums/datacore.dm @@ -206,8 +206,8 @@ GLOBAL_DATUM_INIT(data_core, /datum/datacore, new) sleep(40) var/list/jobs_to_check = GLOB.ROLES_CIC + GLOB.ROLES_AUXIL_SUPPORT + GLOB.ROLES_MISC + GLOB.ROLES_POLICE + GLOB.ROLES_ENGINEERING + GLOB.ROLES_REQUISITION + GLOB.ROLES_MEDICAL + GLOB.ROLES_MARINES - for(var/mob/living/carbon/human/H in GLOB.human_mob_list) - if(is_admin_level(H.z)) + for(var/mob/living/carbon/human/H as anything in GLOB.human_mob_list) + if(should_block_game_interaction(H)) continue if(H.job in jobs_to_check) manifest_inject(H) @@ -351,31 +351,38 @@ GLOBAL_DATUM_INIT(data_core, /datum/datacore, new) var/icon/icobase = H.species.icobase var/icon/temp - var/datum/ethnicity/ET = GLOB.ethnicities_list[H.ethnicity] - var/datum/body_type/B = GLOB.body_types_list[H.body_type] + var/datum/skin_color/set_skin_color = GLOB.skin_color_list[H.skin_color] + var/datum/body_type/set_body_type = GLOB.body_type_list[H.body_type] + var/datum/body_size/set_body_size = GLOB.body_size_list[H.body_size] - var/e_icon - var/b_icon + var/skin_color_icon + var/body_type_icon + var/body_size_icon - if (!ET) - e_icon = "western" + if(!set_skin_color) + skin_color_icon = "pale2" else - e_icon = ET.icon_name + skin_color_icon = set_skin_color.icon_name - if (!B) - b_icon = "mesomorphic" + if(!set_body_type) + body_type_icon = "lean" else - b_icon = B.icon_name + body_type_icon = set_body_type.icon_name - preview_icon = new /icon(icobase, get_limb_icon_name(H.species, b_icon, H.gender, "torso", e_icon)) - temp = new /icon(icobase, get_limb_icon_name(H.species, b_icon, H.gender, "groin", e_icon)) + if(!set_body_size) + body_size_icon = "avg" + else + body_size_icon = set_body_size.icon_name + + preview_icon = new /icon(icobase, get_limb_icon_name(H.species, body_size_icon, body_type_icon, H.gender, "torso", skin_color_icon)) + temp = new /icon(icobase, get_limb_icon_name(H.species, body_size_icon, body_type_icon, H.gender, "groin", skin_color_icon)) preview_icon.Blend(temp, ICON_OVERLAY) - temp = new /icon(icobase, get_limb_icon_name(H.species, b_icon, H.gender, "head", e_icon)) + temp = new /icon(icobase, get_limb_icon_name(H.species, body_size_icon, body_type_icon, H.gender, "head", skin_color_icon)) preview_icon.Blend(temp, ICON_OVERLAY) for(var/obj/limb/E in H.limbs) if(E.status & LIMB_DESTROYED) continue - temp = new /icon(icobase, get_limb_icon_name(H.species, b_icon, H.gender, E.name, e_icon)) + temp = new /icon(icobase, get_limb_icon_name(H.species, body_size_icon, body_type_icon, H.gender, E.name, skin_color_icon)) if(E.status & LIMB_ROBOT) temp.MapColors(rgb(77,77,77), rgb(150,150,150), rgb(28,28,28), rgb(0,0,0)) preview_icon.Blend(temp, ICON_OVERLAY) diff --git a/code/datums/datum.dm b/code/datums/datum.dm index 7d497785a72a..e926dfd022ca 100644 --- a/code/datums/datum.dm +++ b/code/datums/datum.dm @@ -54,13 +54,6 @@ */ var/list/cooldowns -#ifndef EXPERIMENT_515_DONT_CACHE_REF - /// A cached version of our \ref - /// The brunt of \ref costs are in creating entries in the string tree (a tree of immutable strings) - /// This avoids doing that more then once per datum by ensuring ref strings always have a reference to them after they're first pulled - var/cached_ref -#endif - /// A weak reference to another datum var/datum/weakref/weak_reference @@ -126,7 +119,7 @@ var/datum/component/C = all_components qdel(C, FALSE, TRUE) if(datum_components) - debug_log("'[src]' datum_components was not null after removing all components! [datum_components.len] entries remained...") + debug_log("'[src]' datum_components was not null after removing all components! [length(datum_components)] entries remained...") datum_components.Cut() var/list/lookup = comp_lookup diff --git a/code/datums/diseases/advance/advance.dm b/code/datums/diseases/advance/advance.dm index d933b81eb620..41f1fe30e921 100644 --- a/code/datums/diseases/advance/advance.dm +++ b/code/datums/diseases/advance/advance.dm @@ -50,7 +50,7 @@ GLOBAL_LIST_INIT(advance_cures, list( /datum/disease/advance/New(process = 1, datum/disease/advance/D) // Setup our dictionary if it hasn't already. - if(!GLOB.dictionary_symptoms.len) + if(!length(GLOB.dictionary_symptoms)) for(var/symp in GLOB.list_symptoms) var/datum/symptom/S = new symp GLOB.dictionary_symptoms[S.id] = symp @@ -59,9 +59,9 @@ GLOBAL_LIST_INIT(advance_cures, list( D = null // Generate symptoms if we weren't given any. - if(!symptoms || !symptoms.len) + if(!LAZYLEN(symptoms)) - if(!D || !D.symptoms || !D.symptoms.len) + if(!D || !LAZYLEN(D.symptoms)) symptoms = GenerateSymptoms() else for(var/datum/symptom/S in D.symptoms) @@ -80,7 +80,7 @@ GLOBAL_LIST_INIT(advance_cures, list( // Randomly pick a symptom to activate. /datum/disease/advance/stage_act() ..() - if(symptoms && symptoms.len) + if(LAZYLEN(symptoms)) if(!processing) processing = 1 @@ -148,7 +148,7 @@ GLOBAL_LIST_INIT(advance_cures, list( if(!HasSymptom(S)) possible_symptoms += S - if(!possible_symptoms.len) + if(!length(possible_symptoms)) return //error("Advance Disease - We weren't able to get any possible symptoms in GenerateSymptoms([type_level_limit], [amount_get])") @@ -182,7 +182,7 @@ GLOBAL_LIST_INIT(advance_cures, list( //Generate disease properties based on the effects. Returns an associated list. /datum/disease/advance/proc/GenerateProperties() - if(!symptoms || !symptoms.len) + if(!LAZYLEN(symptoms)) CRASH("We did not have any symptoms before generating properties.") var/list/properties = list("resistance" = 1, "stealth" = 1, "stage_rate" = 1, "transmittable" = 1, "severity" = 1) @@ -200,13 +200,13 @@ GLOBAL_LIST_INIT(advance_cures, list( // Assign the properties that are in the list. /datum/disease/advance/proc/AssignProperties(list/properties = list()) - if(properties && properties.len) + if(LAZYLEN(properties)) hidden = list( (properties["stealth"] > 2), (properties["stealth"] > 3) ) // The more symptoms we have, the less transmittable it is but some symptoms can make up for it. - SetSpread(Clamp(properties["transmittable"] - symptoms.len, BLOOD, AIRBORNE)) - permeability_mod = max(Ceiling(0.4 * properties["transmittable"]), 1) - cure_chance = 15 - Clamp(properties["resistance"], -5, 5) // can be between 10 and 20 + SetSpread(clamp(properties["transmittable"] - length(symptoms), BLOOD, AIRBORNE)) + permeability_mod = max(ceil(0.4 * properties["transmittable"]), 1) + cure_chance = 15 - clamp(properties["resistance"], -5, 5) // can be between 10 and 20 stage_prob = max(properties["stage_rate"], 2) SetSeverity(properties["severity"]) GenerateCure(properties) @@ -253,8 +253,8 @@ GLOBAL_LIST_INIT(advance_cures, list( // Will generate a random cure, the less resistance the symptoms have, the harder the cure. /datum/disease/advance/proc/GenerateCure(list/properties = list()) - if(properties && properties.len) - var/res = Clamp(properties["resistance"] - (symptoms.len / 2), 1, GLOB.advance_cures.len) + if(LAZYLEN(properties)) + var/res = clamp(properties["resistance"] - (length(symptoms) / 2), 1, length(GLOB.advance_cures)) cure_id = GLOB.advance_cures[res] // Get the cure name from the cure_id @@ -274,7 +274,7 @@ GLOBAL_LIST_INIT(advance_cures, list( // Randomly remove a symptom. /datum/disease/advance/proc/Devolve() - if(symptoms.len > 1) + if(length(symptoms) > 1) var/s = SAFEPICK(symptoms) if(s) RemoveSymptom(s) @@ -305,7 +305,7 @@ GLOBAL_LIST_INIT(advance_cures, list( if(HasSymptom(S)) return - if(symptoms.len < 5 + rand(-1, 1)) + if(length(symptoms) < 5 + rand(-1, 1)) symptoms += S else RemoveSymptom(pick(symptoms)) @@ -331,14 +331,14 @@ GLOBAL_LIST_INIT(advance_cures, list( for(var/datum/disease/advance/A in D_list) diseases += A.Copy() - if(!diseases.len) + if(!length(diseases)) return null - if(diseases.len <= 1) + if(length(diseases) <= 1) return pick(diseases) // Just return the only entry. var/i = 0 // Mix our diseases until we are left with only one result. - while(i < 20 && diseases.len > 1) + while(i < 20 && length(diseases) > 1) i++ @@ -362,7 +362,7 @@ GLOBAL_LIST_INIT(advance_cures, list( R.data_properties = data.Copy() else R.data_properties = data - if(preserve.len) + if(length(preserve)) R.data_properties["viruses"] = preserve /proc/AdminCreateVirus(mob/user) @@ -385,7 +385,7 @@ GLOBAL_LIST_INIT(advance_cures, list( i-- while(i > 0) - if(D.symptoms.len > 0) + if(length(D.symptoms) > 0) var/new_name = input(user, "Name your new disease.", "New Name") D.AssignName(new_name) diff --git a/code/datums/diseases/advance/symptoms/cough.dm b/code/datums/diseases/advance/symptoms/cough.dm index 8b8d46c90a61..cd7f9a1b974e 100644 --- a/code/datums/diseases/advance/symptoms/cough.dm +++ b/code/datums/diseases/advance/symptoms/cough.dm @@ -3,7 +3,7 @@ Coughing - Noticable. + Noticeable. Little Resistance. Doesn't increase stage speed much. Transmittable. diff --git a/code/datums/diseases/advance/symptoms/hallucigen.dm b/code/datums/diseases/advance/symptoms/hallucigen.dm index f14f94dd2167..2802f6ebfaf2 100644 --- a/code/datums/diseases/advance/symptoms/hallucigen.dm +++ b/code/datums/diseases/advance/symptoms/hallucigen.dm @@ -3,7 +3,7 @@ Hallucigen - Very noticable. + Very noticeable. Lowers resistance considerably. Decreases stage speed. Reduced transmittable. diff --git a/code/datums/diseases/advance/symptoms/headache.dm b/code/datums/diseases/advance/symptoms/headache.dm index 169085fe5911..b4a3d5939962 100644 --- a/code/datums/diseases/advance/symptoms/headache.dm +++ b/code/datums/diseases/advance/symptoms/headache.dm @@ -3,7 +3,7 @@ Headache - Noticable. + Noticeable. Highly resistant. Increases stage speed. Not transmittable. diff --git a/code/datums/diseases/advance/symptoms/itching.dm b/code/datums/diseases/advance/symptoms/itching.dm index a8f9cb210396..8b79fd1d6052 100644 --- a/code/datums/diseases/advance/symptoms/itching.dm +++ b/code/datums/diseases/advance/symptoms/itching.dm @@ -3,7 +3,7 @@ Itching - Not noticable or unnoticable. + Not noticeable or unnoticeable. Resistant. Increases stage speed. Little transmittable. diff --git a/code/datums/diseases/advance/symptoms/sneeze.dm b/code/datums/diseases/advance/symptoms/sneeze.dm index 63f29eff93a4..74a6c3ab66c2 100644 --- a/code/datums/diseases/advance/symptoms/sneeze.dm +++ b/code/datums/diseases/advance/symptoms/sneeze.dm @@ -3,7 +3,7 @@ Sneezing - Very Noticable. + Very Noticeable. Increases resistance. Doesn't increase stage speed. Very transmittable. diff --git a/code/datums/diseases/advance/symptoms/symptoms.dm b/code/datums/diseases/advance/symptoms/symptoms.dm index 7746a03b4f89..8ddd5897f92a 100644 --- a/code/datums/diseases/advance/symptoms/symptoms.dm +++ b/code/datums/diseases/advance/symptoms/symptoms.dm @@ -17,7 +17,7 @@ GLOBAL_LIST_EMPTY(dictionary_symptoms) /datum/symptom/New() var/list/S = GLOB.list_symptoms - for(var/i = 1; i <= S.len; i++) + for(var/i = 1; i <= length(S); i++) if(src.type == S[i]) id = "[i]" return diff --git a/code/datums/diseases/advance/symptoms/voice_change.dm b/code/datums/diseases/advance/symptoms/voice_change.dm index e5af4a8eaab4..c5003ea772fb 100644 --- a/code/datums/diseases/advance/symptoms/voice_change.dm +++ b/code/datums/diseases/advance/symptoms/voice_change.dm @@ -3,7 +3,7 @@ Voice Change - Very Very noticable. + Very Very noticeable. Lowers resistance considerably. Decreases stage speed. Reduced transmittable. diff --git a/code/datums/diseases/advance/symptoms/vomit.dm b/code/datums/diseases/advance/symptoms/vomit.dm index cb30a2aff818..47ba6625c98b 100644 --- a/code/datums/diseases/advance/symptoms/vomit.dm +++ b/code/datums/diseases/advance/symptoms/vomit.dm @@ -3,7 +3,7 @@ Vomiting - Very Very Noticable. + Very Very Noticeable. Decreases resistance. Doesn't increase stage speed. Little transmittable. @@ -51,7 +51,7 @@ Bonus Vomiting Blood - Very Very Noticable. + Very Very Noticeable. Decreases resistance. Decreases stage speed. Little transmittable. diff --git a/code/datums/diseases/advance/symptoms/weight.dm b/code/datums/diseases/advance/symptoms/weight.dm index aebf8575e004..1e0dc978e392 100644 --- a/code/datums/diseases/advance/symptoms/weight.dm +++ b/code/datums/diseases/advance/symptoms/weight.dm @@ -3,7 +3,7 @@ Weight Gain - Very Very Noticable. + Very Very Noticeable. Decreases resistance. Decreases stage speed. Reduced transmittable. @@ -43,7 +43,7 @@ Bonus Weight Loss - Very Very Noticable. + Very Very Noticeable. Decreases resistance. Decreases stage speed. Reduced Transmittable. @@ -84,7 +84,7 @@ Bonus Weight Even - Very Noticable. + Very Noticeable. Decreases resistance. Decreases stage speed. Reduced transmittable. diff --git a/code/datums/diseases/black_goo.dm b/code/datums/diseases/black_goo.dm index d4d9b6f50996..6fb74bc82bd4 100644 --- a/code/datums/diseases/black_goo.dm +++ b/code/datums/diseases/black_goo.dm @@ -1,110 +1,155 @@ //Disease Datum +#define ZOMBIE_INFECTION_STAGE_ONE 1 +#define ZOMBIE_INFECTION_STAGE_TWO 2 +#define ZOMBIE_INFECTION_STAGE_THREE 3 +#define ZOMBIE_INFECTION_STAGE_FOUR 4 +#define SLOW_INFECTION_RATE 1 +#define FAST_INFECTION_RATE 7 +#define STAGE_LEVEL_THRESHOLD 360 +#define MESSAGE_COOLDOWN_TIME 1 MINUTES + /datum/disease/black_goo name = "Black Goo" - max_stages = 5 + max_stages = 4 cure = "Anti-Zed" cure_id = "antiZed" spread = "Bites" spread_type = SPECIAL affected_species = list("Human") - curable = 0 - cure_chance = 100 - desc = "" + cure_chance = 100 //meaning the cure will kill the virus asap severity = "Medium" agent = "Unknown Biological Organism X-65" hidden = list(1,0) //Hidden from med-huds, but not pandemic scanners. BLOOD TESTS FOR THE WIN permeability_mod = 2 - stage_prob = 4 - stage_minimum_age = 150 - survive_mob_death = TRUE //FALSE //switch to true to make dead infected humans still transform - longevity = 500 //should allow the dead to rise - var/zombie_transforming = 0 //whether we're currently transforming the host into a zombie. - var/goo_message_cooldown = 0 //to make sure we don't spam messages too often. - var/stage_counter = 0 // tells a dead infectee their stage, so they can know when-abouts they'll revive + survive_mob_death = TRUE //We want the dead to turn into zombie. + longevity = 500 //the virus tend to die before the dead is turn into zombie this should fix it. + stage_prob = 0//no randomness + + /// boolean value to determine if the mob is currently transforming into a zombie. + var/zombie_is_transforming = FALSE + + /// variable to keep track of the stage level, used to prevent the stage message from being displayed more than once for any given stage. + var/stage_counter = 0 + +//new variables to handle infection progression inside a stage. + + /// variable that contains accumulated virus progression for a host. Iterates to a value above 360 and is then reset. + var/stage_level = 0 + + /// variable that handles passive increase of the virus of a host. + var/infection_rate = SLOW_INFECTION_RATE + + /// cooldown for the living mob's symptom messages + COOLDOWN_DECLARE(goo_message_cooldown) /datum/disease/black_goo/stage_act() ..() - if(!ishuman(affected_mob)) return - var/mob/living/carbon/human/H = affected_mob + if(!ishuman_strict(affected_mob)) + return + var/mob/living/carbon/human/infected_mob = affected_mob + + if(iszombie(infected_mob)) + return + + // infection rate is faster for dead mobs + if(infected_mob.stat == DEAD) + infection_rate = FAST_INFECTION_RATE + + // standard infection rate for living mobs + if(infected_mob.stat != DEAD) + infection_rate = SLOW_INFECTION_RATE + + stage_level += infection_rate + + // resets the stage_level once it passes the threshold. + if(stage_level >= STAGE_LEVEL_THRESHOLD) + stage++ + stage_level = stage_level % STAGE_LEVEL_THRESHOLD - if(age > 1.5*stage_minimum_age) stage_prob = 100 //if it takes too long we force a stage increase - else stage_prob = initial(stage_prob) - if(H.stat == DEAD) stage_minimum_age = 75 //the virus progress faster when the host is dead. switch(stage) - if(1) - if(H.stat == DEAD && stage_counter != stage) - to_chat(H, SPAN_CENTERBOLD("Your zombie infection is now at Stage One! Zombie transformation begins at Stage Four.")) - stage_counter = stage - survive_mob_death = TRUE //changed because infection rate was REALLY horrible. - if(goo_message_cooldown < world.time ) - if(prob(3)) - to_chat(affected_mob, SPAN_DANGER("You feel really warm...")) - goo_message_cooldown = world.time + 100 - if(2) - if(H.stat == DEAD && stage_counter != stage) - to_chat(H, SPAN_CENTERBOLD("Your zombie infection is now at Stage Two! Zombie transformation begins at Stage Four.")) - stage_counter = stage - if(goo_message_cooldown < world.time) - if (prob(3)) to_chat(affected_mob, SPAN_DANGER("Your throat is really dry...")) - else if (prob(6)) to_chat(affected_mob, SPAN_DANGER("You feel really warm...")) - else if (prob(2)) H.vomit_on_floor() - goo_message_cooldown = world.time + 100 - if(3) - if(H.stat == DEAD && stage_counter != stage) - to_chat(H, SPAN_CENTERBOLD("Your zombie infection is now at Stage Three! Zombie transformation begins at Stage Four, which will be soon.")) - stage_counter = stage - hidden = list(0,0) - //survive_mob_death = TRUE //even if host dies now, the transformation will occur. - H.next_move_slowdown = max(H.next_move_slowdown, 1) - if(goo_message_cooldown < world.time) - if (prob(3)) - to_chat(affected_mob, SPAN_DANGER("You cough up some black fluid...")) - goo_message_cooldown = world.time + 100 - else if (prob(6)) - to_chat(affected_mob, SPAN_DANGER("Your throat is really dry...")) - goo_message_cooldown = world.time + 100 - else if (prob(9)) - to_chat(affected_mob, SPAN_DANGER("You feel really warm...")) - goo_message_cooldown = world.time + 100 - else if(prob(5)) - goo_message_cooldown = world.time + 100 - H.vomit_on_floor() - if(4) - if(H.stat == DEAD && stage_counter != stage) - to_chat(H, SPAN_CENTERBOLD("Your zombie infection is now at Stage Four! Your transformation will happen any moment now.")) + if(ZOMBIE_INFECTION_STAGE_ONE) + if(infected_mob.stat == DEAD && stage_counter != stage) + to_chat(infected_mob, SPAN_CENTERBOLD("Your zombie infection is now at stage one! Zombie transformation begins at stage three.")) stage_counter = stage - H.next_move_slowdown = max(H.next_move_slowdown, 2) - if(prob(5) || age >= stage_minimum_age-1) - if(!zombie_transforming) - zombie_transform(H) - else if(prob(5)) - H.vomit_on_floor() - if(5) - if(H.stat == DEAD && stage_counter != stage) + + // dead mobs should not have symptoms, because... they are dead. + if(infected_mob.stat != DEAD) + if (!COOLDOWN_FINISHED(src, goo_message_cooldown)) + return + COOLDOWN_START(src, goo_message_cooldown, MESSAGE_COOLDOWN_TIME) + + switch(rand(0, 100)) + if(0 to 25) + return + if(25 to 75) + to_chat(infected_mob, SPAN_DANGER("You feel warm...")) + stage_level += 9 + if(75 to 95) + to_chat(infected_mob, SPAN_DANGER("Your throat is really dry...")) + stage_level += 18 + if(95 to 100) + to_chat(infected_mob, SPAN_DANGER("You can't trust them...")) + stage_level += 36 + + if(ZOMBIE_INFECTION_STAGE_TWO) + if(infected_mob.stat == DEAD && stage_counter != stage) + to_chat(infected_mob, SPAN_CENTERBOLD("Your zombie infection is now at stage two! Zombie transformation begins at stage three.")) stage_counter = stage - if(H.species.name != SPECIES_ZOMBIE && !zombie_transforming) - to_chat(H, SPAN_CENTERBOLD("Your zombie infection is now at Stage Five! Your transformation should have happened already, but will be forced now.")) - zombie_transform(H) - if(!zombie_transforming && prob(50)) - if(H.stat != DEAD) - var/healamt = 2 - if(H.health < H.maxHealth) - H.apply_damage(-healamt, BURN) - H.apply_damage(-healamt, BRUTE) - H.apply_damage(-healamt, TOX) - H.apply_damage(-healamt, OXY) - H.nutrition = NUTRITION_MAX //never hungry + if(infected_mob.stat != DEAD) + if (!COOLDOWN_FINISHED(src, goo_message_cooldown)) + return + COOLDOWN_START(src, goo_message_cooldown, MESSAGE_COOLDOWN_TIME) + + switch(rand(0, 100)) + if(0 to 25) + return + if(25 to 50) + to_chat(infected_mob, SPAN_DANGER("You can't trust them...")) + stage_level += 5 + if(50 to 75) + to_chat(infected_mob, SPAN_DANGER("You feel really warm...")) + stage_level += 9 + if(75 to 85) + to_chat(infected_mob, SPAN_DANGER("Your throat is really dry...")) + stage_level += 18 + if(85 to 95) + infected_mob.vomit_on_floor() + stage_level += 36 + if(95 to 100) + to_chat(infected_mob, SPAN_DANGER("You cough up some black fluid...")) + stage_level += 42 + + if(ZOMBIE_INFECTION_STAGE_THREE) + // if zombie or transforming we upgrade it to stage four. + if(iszombie(infected_mob)) + stage++ + return + // if not a zombie(above check) and isn't transforming then we transform you into a zombie. + if(!zombie_is_transforming) + // if your dead we inform you that you're going to turn into a zombie. + if(infected_mob.stat == DEAD && stage_counter != stage) + to_chat(infected_mob, SPAN_CENTERBOLD("Your zombie infection is now at stage three! Zombie transformation begin!")) + stage_counter = stage + zombie_transform(infected_mob) + hidden = list(0,0) + infected_mob.next_move_slowdown = max(infected_mob.next_move_slowdown, 2) + + if(ZOMBIE_INFECTION_STAGE_FOUR) + return + // final stage of infection it's to avoid running the above test once you're a zombie for now. maybe more later. /datum/disease/black_goo/proc/zombie_transform(mob/living/carbon/human/human) set waitfor = 0 - zombie_transforming = TRUE + zombie_is_transforming = TRUE human.vomit_on_floor() human.adjust_effect(5, STUN) sleep(20) human.make_jittery(500) sleep(30) if(human && human.loc) + if(human.buckled) + human.buckled.unbuckle() if(human.stat == DEAD) human.revive(TRUE) human.remove_language(LANGUAGE_ENGLISH) // You lose the ability to understand english. Language processing is handled in the mind not the body. @@ -113,9 +158,9 @@ playsound(human.loc, 'sound/hallucinations/wail.ogg', 25, 1) human.jitteriness = 0 human.set_species(SPECIES_ZOMBIE) - stage = 5 + stage = 4 human.faction = FACTION_ZOMBIE - zombie_transforming = FALSE + zombie_is_transforming = FALSE /obj/item/weapon/zombie_claws @@ -214,7 +259,6 @@ /obj/item/reagent_container/glass/bottle/labeled_black_goo_cure name = "\"Pathogen\" cure bottle" desc = "The bottle has a biohazard symbol on the front, and has a label, designating its use against Agent A0-3959X.91–15, colloquially known as the \"Black Goo\"." - icon_state = "bottle20" /obj/item/reagent_container/glass/bottle/labeled_black_goo_cure/Initialize() . = ..() @@ -257,12 +301,12 @@ /obj/item/storage/fancy/blackgoo/get_examine_text(mob/user) . = ..() . += "A strange looking metal container..." - if(contents.len <= 0) + if(length(contents) <= 0) . += "There are no bottles left inside it." - else if(contents.len == 1) + else if(length(contents) == 1) . += "There is one bottle left inside it." else - . += "There are [src.contents.len] bottles inside the container." + . += "There are [length(src.contents)] bottles inside the container." /obj/item/storage/fancy/blackgoo/Initialize() @@ -270,3 +314,12 @@ for(var/i=1; i <= storage_slots; i++) new /obj/item/reagent_container/food/drinks/bottle/black_goo(src) return + +#undef ZOMBIE_INFECTION_STAGE_ONE +#undef ZOMBIE_INFECTION_STAGE_TWO +#undef ZOMBIE_INFECTION_STAGE_THREE +#undef ZOMBIE_INFECTION_STAGE_FOUR +#undef STAGE_LEVEL_THRESHOLD +#undef SLOW_INFECTION_RATE +#undef FAST_INFECTION_RATE +#undef MESSAGE_COOLDOWN_TIME diff --git a/code/datums/diseases/magnitis.dm b/code/datums/diseases/magnitis.dm index 4b6e685e447c..d4ba54597862 100644 --- a/code/datums/diseases/magnitis.dm +++ b/code/datums/diseases/magnitis.dm @@ -22,7 +22,6 @@ if(!M.anchored && (M.flags_atom & CONDUCT)) step_towards(M,affected_mob) for(var/mob/living/silicon/S in orange(2,affected_mob)) - if(isAI(S)) continue step_towards(S,affected_mob) /* if(M.x > affected_mob.x) @@ -47,7 +46,6 @@ for(i=0,i 19) // 4 ticks in smoke, neuro is affecting cereberal activity - affected_mob.eye_blind = max(affected_mob.eye_blind, round(strength/4)) + affected_mob.eye_blind = max(affected_mob.eye_blind, floor(strength/4)) if(duration >= 27) // 5+ ticks in smoke, you are ODing now affected_mob.apply_effect(1, DAZE) // Unable to talk and weldervision affected_mob.apply_damage(2,TOX) - affected_mob.SetEarDeafness(max(affected_mob.ear_deaf, round(strength*1.5))) //Paralysis of hearing system, aka deafness + affected_mob.SetEarDeafness(max(affected_mob.ear_deaf, floor(strength*1.5))) //Paralysis of hearing system, aka deafness if(duration >= 50) // 10+ ticks, apply some semi-perm damage and end their suffering if they are somehow still alive by now affected_mob.apply_internal_damage(10,"liver") @@ -150,7 +154,7 @@ victim.hallucination = 3 victim.druggy = 3 if(70 to 100) // sound based hallucination - playsound_client(victim.client,pick('sound/voice/alien_distantroar_3.ogg','sound/voice/xenos_roaring.ogg','sound/voice/alien_queen_breath1.ogg', 'sound/voice/4_xeno_roars.ogg','sound/misc/notice2.ogg',"bone_break","gun_pulse","metalbang","pry","shatter")) + playsound_client(client = victim.client, soundin = pick('sound/voice/alien_distantroar_3.ogg','sound/voice/xenos_roaring.ogg','sound/voice/alien_queen_breath1.ogg', 'sound/voice/4_xeno_roars.ogg','sound/misc/notice2.ogg',"bone_break","gun_pulse","metalbang","pry","shatter"),vol = 65) diff --git a/code/datums/effects/xeno_strains/xeno_buff.dm b/code/datums/effects/xeno_strains/xeno_buff.dm index ad39a61dd13e..16a4bb82113e 100644 --- a/code/datums/effects/xeno_strains/xeno_buff.dm +++ b/code/datums/effects/xeno_strains/xeno_buff.dm @@ -21,7 +21,7 @@ if(!isxeno(A)) qdel(src) - to_chat(A, SPAN_XENONOTICE("You feel empowered")) + to_chat(A, SPAN_XENONOTICE("We feel empowered")) var/mob/living/carbon/xenomorph/X = A X.melee_damage_lower += bonus_damage @@ -47,7 +47,7 @@ /datum/effects/xeno_buff/Destroy() if(affected_atom) - to_chat(affected_atom, SPAN_XENONOTICE("You no longer feel empowered")) + to_chat(affected_atom, SPAN_XENONOTICE("We no longer feel empowered")) var/mob/living/carbon/xenomorph/X = affected_atom X.melee_damage_lower -= bonus_damage X.melee_damage_upper -= bonus_damage diff --git a/code/datums/elements/bullet_trait/damage_boost.dm b/code/datums/elements/bullet_trait/damage_boost.dm index a0370f2d36b6..20175d11256a 100644 --- a/code/datums/elements/bullet_trait/damage_boost.dm +++ b/code/datums/elements/bullet_trait/damage_boost.dm @@ -1,5 +1,7 @@ GLOBAL_LIST_INIT(damage_boost_turfs, typecacheof(/turf)) +GLOBAL_LIST_INIT(damage_boost_turfs_xeno, typecacheof(/turf/closed/wall/resin)) + GLOBAL_LIST_INIT(damage_boost_breaching, typecacheof(list( /obj/structure/machinery/door, /obj/structure/mineral_door, @@ -26,17 +28,10 @@ GLOBAL_LIST_INIT(damage_boost_vehicles, typecacheof(/obj/vehicle/multitile)) /// A typecache of objs or turfs that, upon being hit, boost the damage of the attached projectile var/list/damage_boosted_atoms - //vars for dealing with interaction issues with the Penetrating trait - var/boosted_hits - var/last_damage_mult - //allows for nuance in Breaching-Resistant interactions var/active_damage_mult var/atom_type - //var for dealing with bonus projectiles - var/bonus_projectile_check - /** * vars: * * damage_mult - the damage multiplier to be applied if the bullet hits an atom whose type is in `breaching_objs` @@ -49,11 +44,8 @@ GLOBAL_LIST_INIT(damage_boost_vehicles, typecacheof(/obj/vehicle/multitile)) src.damage_mult = damage_mult src.damage_boosted_atoms = damage_boosted_atoms - src.boosted_hits = 0 - src.last_damage_mult = 1 src.active_damage_mult = 1 src.atom_type = 0 - src.bonus_projectile_check = 0 RegisterSignal(target, list( COMSIG_BULLET_PRE_HANDLE_OBJ, @@ -66,17 +58,17 @@ GLOBAL_LIST_INIT(damage_boost_vehicles, typecacheof(/obj/vehicle/multitile)) //add more cases for other interactions (switch doesn't seem to work with istype) else return 0 -/datum/element/bullet_trait_damage_boost/proc/handle_bullet(obj/projectile/P, atom/A) +/datum/element/bullet_trait_damage_boost/proc/handle_bullet(obj/projectile/boosted_projectile, atom/hit_atom) SIGNAL_HANDLER - atom_type = check_type(A) + atom_type = check_type(hit_atom) switch(atom_type) if("door") - var/obj/structure/machinery/door/D = A - if(D.masterkey_resist) - if(D.masterkey_mod) - active_damage_mult = damage_mult * D.masterkey_mod + var/obj/structure/machinery/door/hit_door = hit_atom + if(hit_door.masterkey_resist) + if(hit_door.masterkey_mod) + active_damage_mult = damage_mult * hit_door.masterkey_mod else active_damage_mult = 1 //no bonus damage else @@ -85,12 +77,22 @@ GLOBAL_LIST_INIT(damage_boost_vehicles, typecacheof(/obj/vehicle/multitile)) else active_damage_mult = damage_mult - if(boosted_hits > 0) - if(bonus_projectile_check == P.damage) - P.damage = P.damage / last_damage_mult - boosted_hits-- - if(damage_boosted_atoms[A.type]) - P.damage = round(P.damage * active_damage_mult) - last_damage_mult = active_damage_mult - boosted_hits++ - bonus_projectile_check = P.damage + + if(boosted_projectile.damage_boosted && ((boosted_projectile.last_atom_signaled?.resolve()) != hit_atom) && (!boosted_projectile.bonus_projectile_check)) + //If this is after a boosted hit, the last atom that procced this isn't the same as the current target, and this isn't a bonus projectile sharing the same damage_boost + if(!boosted_projectile.last_damage_mult) //Make sure stored mult isn't 0 + boosted_projectile.last_damage_mult = 1 + + boosted_projectile.damage = boosted_projectile.damage / boosted_projectile.last_damage_mult //Reduce the damage back to normal + boosted_projectile.damage_boosted-- //Mark that damage has been returned to normal. + + if(damage_boosted_atoms[hit_atom.type]) //If hitting a valid atom for damage boost + boosted_projectile.damage = floor(boosted_projectile.damage * active_damage_mult) //Modify Damage by multiplier + + if (active_damage_mult) + boosted_projectile.last_damage_mult = active_damage_mult //Save multiplier for next check + else + boosted_projectile.last_damage_mult = 1 + + boosted_projectile.damage_boosted++ //Mark that a boosted hit occurred. + boosted_projectile.last_atom_signaled = WEAKREF(hit_atom) //Save the current triggering atom to the projectile diff --git a/code/datums/elements/bullet_trait/iff.dm b/code/datums/elements/bullet_trait/iff.dm index ab48b29f4812..cee36acbed80 100644 --- a/code/datums/elements/bullet_trait/iff.dm +++ b/code/datums/elements/bullet_trait/iff.dm @@ -46,7 +46,7 @@ // The cache is reset when the user drops their ID /datum/element/bullet_trait_iff/proc/get_user_iff_group(mob/living/carbon/human/user) if(!ishuman(user)) - return user.faction_group + return user?.faction_group var/iff_group = LAZYACCESS(iff_group_cache, user) if(isnull(iff_group)) diff --git a/code/datums/elements/bullet_trait/incendiary.dm b/code/datums/elements/bullet_trait/incendiary.dm index 861e67651a53..74a7e32cc324 100644 --- a/code/datums/elements/bullet_trait/incendiary.dm +++ b/code/datums/elements/bullet_trait/incendiary.dm @@ -52,7 +52,7 @@ if(projectile_target.stat) to_chat(projectile_target, SPAN_AVOIDHARM("You shrug off some persistent flames.")) return - projectile_target.adjust_fire_stacks(burn_stacks/2 + round(damage_actual / 4), burn_reagent) + projectile_target.adjust_fire_stacks(burn_stacks/2 + floor(damage_actual / 4), burn_reagent) projectile_target.IgniteMob() projectile_target.visible_message( SPAN_DANGER("[projectile_target] bursts into flames!"), \ diff --git a/code/datums/elements/bullet_trait/penetrating/weak.dm b/code/datums/elements/bullet_trait/penetrating/weak.dm new file mode 100644 index 000000000000..99c94a9c90ba --- /dev/null +++ b/code/datums/elements/bullet_trait/penetrating/weak.dm @@ -0,0 +1,60 @@ +/datum/element/bullet_trait_penetrating/weak + // Generic bullet trait vars + element_flags = ELEMENT_DETACH|ELEMENT_BESPOKE + id_arg_index = 4 + + /// For each thing this hits, how much damage it loses normally. This can be modified by what it penetrates later. + var/damage_percent_lost_per_hit = 20 + // XM43E1 AMR: First target takes full damage, each subsequent target takes at least 20% less damage (increased for large mobs and dense turfs), 25 from base 125 damage. + + /// For each thing this hits, how much distance it loses normally. + distance_loss_per_hit = 4 + // XM43E1 AMR: Hits 7 things at most, at point blank, with no additional modifiers. This greatly increases at actual sniping ranges. + + /// How many times more effective turfs are at slowing down the projectile normally, reducing both range and damage. + var/turf_hit_slow_mult = 3 + // XM43E1 AMR: Unable to hit anything through more than 2 walls, less at maximum ranges. Pens 2 walls at 8 tiles or less, 1 at 20 tiles or less, and can't wallbang through normal walls at maximum range. + // Also loses 75 damage with each normal wall pen. + +/datum/element/bullet_trait_penetrating/weak/Attach(datum/target, distance_loss_per_hit = 4, damage_percent_lost_per_hit = 20, turf_hit_slow_mult = 3) + . = ..() + if(. == ELEMENT_INCOMPATIBLE) + return + + src.damage_percent_lost_per_hit = damage_percent_lost_per_hit + src.turf_hit_slow_mult = turf_hit_slow_mult + +/datum/element/bullet_trait_penetrating/weak/handle_passthrough_movables(obj/projectile/bullet, atom/movable/hit_movable, did_hit) + if(did_hit) + var/slow_mult = 1 + if(ismob(hit_movable)) + var/mob/mob = hit_movable + if(mob.mob_size >= MOB_SIZE_BIG) // Big Xenos (including fortified Defender) can soak hits and greatly reduce penetration. + slow_mult = 2 // 8 tiles of range lost per Big hit. At point blank, this comes out to only 3 targets. At sniping ranges, even a single one can stop the bullet dead. + + bullet.distance_travelled += (distance_loss_per_hit * slow_mult) + + bullet.damage -= (damage_percent_lost_per_hit * slow_mult) + + return COMPONENT_BULLET_PASS_THROUGH + + +/datum/element/bullet_trait_penetrating/weak/handle_passthrough_turf(obj/projectile/bullet, turf/closed/wall/hit_wall) + var/slow_mult = turf_hit_slow_mult + + // Better penetration against Membranes to still be able to counter Boilers at most ranges. Still loses 4 tiles of range and 25 damage per. + if(istype(hit_wall, /turf/closed/wall/resin/membrane)) + if(istype(hit_wall, /turf/closed/wall/resin/membrane/thick)) + slow_mult = 1.5 + else + slow_mult = 1 + + bullet.distance_travelled += (distance_loss_per_hit * slow_mult) + + bullet.damage *= (1 - (damage_percent_lost_per_hit * slow_mult * 0.01)) + + if(!istype(hit_wall)) + return COMPONENT_BULLET_PASS_THROUGH + + if(!hit_wall.hull) + return COMPONENT_BULLET_PASS_THROUGH diff --git a/code/datums/elements/mouth_drop_item.dm b/code/datums/elements/mouth_drop_item.dm index 7a546c6b3933..f27e1b928b7d 100644 --- a/code/datums/elements/mouth_drop_item.dm +++ b/code/datums/elements/mouth_drop_item.dm @@ -18,7 +18,7 @@ /datum/element/mouth_drop_item/proc/item_equipped(obj/item/I, mob/living/carbon/human/user, slot) SIGNAL_HANDLER - if(slot == WEAR_FACE) + if(slot == WEAR_FACE && !HAS_TRAIT(user, TRAIT_IRON_TEETH)) I.RegisterSignal(user, COMSIG_LIVING_SET_BODY_POSITION, TYPE_PROC_REF(/obj/item, drop_to_floor)) /datum/element/mouth_drop_item/proc/item_dropped(obj/item/I, mob/living/carbon/human/user) diff --git a/code/datums/elements/strippable.dm b/code/datums/elements/strippable.dm new file mode 100644 index 000000000000..e0daaee74a8c --- /dev/null +++ b/code/datums/elements/strippable.dm @@ -0,0 +1,536 @@ +/// An element for atoms that, when dragged and dropped onto a mob, opens a strip panel. +/datum/element/strippable + element_flags = ELEMENT_BESPOKE | ELEMENT_DETACH + id_arg_index = 2 + + /// An assoc list of keys to /datum/strippable_item + var/list/items + + /// A proc path that returns TRUE/FALSE if we should show the strip panel for this entity. + /// If it does not exist, the strip menu will always show. + /// Will be called with (mob/user). + var/should_strip_proc_path + + /// An existing strip menus + var/list/strip_menus + +/datum/element/strippable/Attach(datum/target, list/items, should_strip_proc_path) + . = ..() + if (!isatom(target)) + return ELEMENT_INCOMPATIBLE + + RegisterSignal(target, COMSIG_ATOM_DROP_ON, PROC_REF(mouse_drop_onto)) + + src.items = items + src.should_strip_proc_path = should_strip_proc_path + +/datum/element/strippable/Detach(datum/source, force) + . = ..() + + UnregisterSignal(source, COMSIG_ATOM_DROP_ON) + + if (!isnull(strip_menus)) + QDEL_NULL(strip_menus[source]) + +/datum/element/strippable/proc/mouse_drop_onto(datum/source, atom/over, mob/user) + SIGNAL_HANDLER + if (user == source) + return + + if (over == source) + return + + var/mob/overmob = over + if (!ishuman(overmob)) + return + + if (!overmob.Adjacent(source)) + return + + if (!overmob.client) + return + + if (overmob.client != user) + return + + if (!isnull(should_strip_proc_path) && !call(source, should_strip_proc_path)(overmob)) + return + + var/datum/strip_menu/strip_menu + + if (isnull(strip_menu)) + strip_menu = new(source, src) + LAZYSET(strip_menus, source, strip_menu) + + INVOKE_ASYNC(strip_menu, PROC_REF(tgui_interact), overmob) + +/// A representation of an item that can be stripped down +/datum/strippable_item + /// The STRIPPABLE_ITEM_* key + var/key + + /// Should we warn about dangerous clothing? + var/warn_dangerous_clothing = TRUE + +/// Gets the item from the given source. +/datum/strippable_item/proc/get_item(atom/source) + +/// Tries to equip the item onto the given source. +/// Returns TRUE/FALSE depending on if it is allowed. +/// This should be used for checking if an item CAN be equipped. +/// It should not perform the equipping itself. +/datum/strippable_item/proc/try_equip(atom/source, obj/item/equipping, mob/user) + if ((equipping.flags_item & ITEM_ABSTRACT)) + return FALSE + if ((equipping.flags_item & NODROP)) + to_chat(user, SPAN_WARNING("You can't put [equipping] on [source], it's stuck to your hand!")) + return FALSE + if (ishuman(source)) + var/mob/living/carbon/human/sourcehuman = source + if(HAS_TRAIT(sourcehuman, TRAIT_UNSTRIPPABLE) && !sourcehuman.is_mob_incapacitated()) + to_chat(src, SPAN_DANGER("[sourcehuman] is too strong to force [equipping] onto them!")) + return + return TRUE + +/// Start the equipping process. This is the proc you should yield in. +/// Returns TRUE/FALSE depending on if it is allowed. +/datum/strippable_item/proc/start_equip(atom/source, obj/item/equipping, mob/user) + source.visible_message( + SPAN_NOTICE("[user] tries to put [equipping] on [source]."), + SPAN_NOTICE("[user] tries to put [equipping] on you.") + ) + + if (ismob(source)) + var/mob/sourcemob = source + sourcemob.attack_log += text("\[[time_stamp()]\] [key_name(sourcemob)] is having [equipping] put on them by [key_name(user)]") + user.attack_log += text("\[[time_stamp()]\] [key_name(user)] is putting [equipping] on [key_name(sourcemob)]") + + return TRUE + +/// The proc that places the item on the source. This should not yield. +/datum/strippable_item/proc/finish_equip(atom/source, obj/item/equipping, mob/user) + SHOULD_NOT_SLEEP(TRUE) + +/// Tries to unequip the item from the given source. +/// Returns TRUE/FALSE depending on if it is allowed. +/// This should be used for checking if it CAN be unequipped. +/// It should not perform the unequipping itself. +/datum/strippable_item/proc/try_unequip(atom/source, mob/user) + SHOULD_NOT_SLEEP(TRUE) + + var/obj/item/item = get_item(source) + if (isnull(item)) + return FALSE + + if (user.action_busy && !skillcheck(user, SKILL_POLICE, SKILL_POLICE_SKILLED)) + to_chat(user, SPAN_WARNING("You can't do this right now.")) + return FALSE + + if ((item.flags_inventory & CANTSTRIP) || ((item.flags_item & NODROP) && !(item.flags_item & FORCEDROP_CONDITIONAL)) || (item.flags_item & ITEM_ABSTRACT)) + return FALSE + + if (ishuman(source)) + var/mob/living/carbon/human/sourcehuman = source + if(MODE_HAS_TOGGLEABLE_FLAG(MODE_NO_STRIPDRAG_ENEMY) && (sourcehuman.stat == DEAD || sourcehuman.health < HEALTH_THRESHOLD_CRIT) && !sourcehuman.get_target_lock(user.faction_group)) + to_chat(user, SPAN_WARNING("You can't strip items of a crit or dead member of another faction!")) + return FALSE + + if(HAS_TRAIT(sourcehuman, TRAIT_UNSTRIPPABLE) && !sourcehuman.is_mob_incapacitated()) + to_chat(src, SPAN_DANGER("[sourcehuman] has an unbreakable grip on their equipment!")) + return + + return TRUE + +/// Start the unequipping process. This is the proc you should yield in. +/// Returns TRUE/FALSE depending on if it is allowed. +/datum/strippable_item/proc/start_unequip(atom/source, mob/user) + var/obj/item/item = get_item(source) + if (isnull(item)) + return FALSE + + source.visible_message( + SPAN_WARNING("[user] tries to remove [source]'s [item]."), + SPAN_DANGER("[user] tries to remove your [item].") + ) + + if (ismob(source)) + var/mob/sourcemob = source + sourcemob.attack_log += text("\[[time_stamp()]\] [key_name(sourcemob)] is being stripped of [item] by [key_name(user)]") + user.attack_log += text("\[[time_stamp()]\] [key_name(user)] is stripping [key_name(sourcemob)] of [item]") + + item.add_fingerprint(user) + + return TRUE + +/// The proc that unequips the item from the source. This should not yield. +/datum/strippable_item/proc/finish_unequip(atom/source, mob/user) + +/// Returns a STRIPPABLE_OBSCURING_* define to report on whether or not this is obscured. +/datum/strippable_item/proc/get_obscuring(atom/source) + SHOULD_NOT_SLEEP(TRUE) + return STRIPPABLE_OBSCURING_NONE + +/// Returns the ID of this item's strippable action. +/// Return `null` if there is no alternate action. +/// Any return value of this must be in StripMenu. +/datum/strippable_item/proc/get_alternate_action(atom/source, mob/user) + return null + +/// Performs an alternative action on this strippable_item. +/// `has_alternate_action` needs to be TRUE. +/datum/strippable_item/proc/alternate_action(atom/source, mob/user) + +/// Returns whether or not this item should show. +/datum/strippable_item/proc/should_show(atom/source, mob/user) + return TRUE + +/// A preset for equipping items onto mob slots +/datum/strippable_item/mob_item_slot + /// The ITEM_SLOT_* to equip to. + var/item_slot + +/datum/strippable_item/proc/has_no_item_alt_action() + return FALSE + +/datum/strippable_item/mob_item_slot/get_item(atom/source) + if (!ismob(source)) + return null + + var/mob/mob_source = source + return mob_source.get_item_by_slot(key) + +/datum/strippable_item/mob_item_slot/try_equip(atom/source, obj/item/equipping, mob/user) + . = ..() + if (!.) + return + + if (!ismob(source)) + return FALSE + if (user.action_busy) + to_chat(user, SPAN_WARNING("You can't do this right now.")) + return FALSE + if (!equipping.mob_can_equip( + source, + key + )) + to_chat(user, SPAN_WARNING("\The [equipping] doesn't fit in that place!")) + return FALSE + if(equipping.flags_item & WIELDED) + equipping.unwield(user) + return TRUE + +/datum/strippable_item/mob_item_slot/start_equip(atom/source, obj/item/equipping, mob/user) + . = ..() + if (!.) + return + + if (!ismob(source)) + return FALSE + + var/time_to_strip = HUMAN_STRIP_DELAY + var/mob/sourcemob = source + + if (ishuman(sourcemob) && ishuman(user)) + var/mob/living/carbon/human/sourcehuman = sourcemob + var/mob/living/carbon/human/userhuman = user + time_to_strip = userhuman.get_strip_delay(userhuman, sourcehuman) + + if (!do_after(user, time_to_strip, INTERRUPT_ALL, BUSY_ICON_FRIENDLY, source, INTERRUPT_MOVED, BUSY_ICON_FRIENDLY)) + return FALSE + + if (!equipping.mob_can_equip( + sourcemob, + key + )) + return FALSE + + if (!user.temp_drop_inv_item(equipping)) + return FALSE + + return TRUE + +/datum/strippable_item/mob_item_slot/finish_equip(atom/source, obj/item/equipping, mob/user) + if (!ismob(source)) + return FALSE + + var/mob/sourcemob = source + sourcemob.equip_to_slot_if_possible(equipping, key) + +/datum/strippable_item/mob_item_slot/get_obscuring(atom/source) + return FALSE + +/datum/strippable_item/mob_item_slot/start_unequip(atom/source, mob/user) + . = ..() + if (!.) + return + + return start_unequip_mob(get_item(source), source, user) + +/datum/strippable_item/mob_item_slot/finish_unequip(atom/source, mob/user) + var/obj/item/item = get_item(source) + if (isnull(item)) + return FALSE + + if (!ismob(source)) + return FALSE + + return finish_unequip_mob(item, source, user) + +/// A utility function for `/datum/strippable_item`s to start unequipping an item from a mob. +/datum/strippable_item/mob_item_slot/proc/start_unequip_mob(obj/item/item, mob/living/carbon/human/source, mob/living/carbon/human/user) + var/time_to_strip = HUMAN_STRIP_DELAY + + if (istype(source) && istype(user)) + time_to_strip = user.get_strip_delay(user, source) + + if (!do_after(user, time_to_strip, INTERRUPT_ALL, BUSY_ICON_HOSTILE, source, INTERRUPT_MOVED, BUSY_ICON_HOSTILE)) + return FALSE + + return TRUE + +/// A utility function for `/datum/strippable_item`s to finish unequipping an item from a mob. +/datum/strippable_item/mob_item_slot/proc/finish_unequip_mob(obj/item/item, mob/source, mob/user) + if (!source.drop_inv_item_on_ground(item, force = (item.flags_item & FORCEDROP_CONDITIONAL))) //force if we can drop the item in this case + return FALSE + + if (ismob(source)) + var/mob/sourcemob = source + sourcemob.attack_log += text("\[[time_stamp()]\] [key_name(sourcemob)] has been stripped of [item] by [key_name(user)]") + user.attack_log += text("\[[time_stamp()]\] [key_name(user)] has been stripped of [key_name(sourcemob)] of [item]") + + // Updates speed in case stripped speed affecting item + source.recalculate_move_delay = TRUE + +/// A representation of the stripping UI +/datum/strip_menu + /// The owner who has the element /datum/element/strippable + var/atom/movable/owner + + /// The strippable element itself + var/datum/element/strippable/strippable + + /// A lazy list of user mobs to a list of strip menu keys that they're interacting with + var/list/interactions + +/datum/strip_menu/New(atom/movable/owner, datum/element/strippable/strippable) + . = ..() + src.owner = owner + src.strippable = strippable + +/datum/strip_menu/Destroy() + owner = null + strippable = null + + return ..() + +/datum/strip_menu/tgui_interact(mob/user, datum/tgui/ui) + . = ..() + ui = SStgui.try_update_ui(user, src, ui) + if (!ui) + ui = new(user, src, "StripMenu") + ui.open() + + +/datum/strip_menu/ui_assets(mob/user) + return list( + get_asset_datum(/datum/asset/simple/inventory), + ) + +/datum/strip_menu/ui_data(mob/user) + var/list/data = list() + + var/list/items = list() + + for (var/strippable_key in strippable.items) + var/datum/strippable_item/item_data = strippable.items[strippable_key] + + if (!item_data.should_show(owner, user)) + continue + + var/list/result + + if(strippable_key in LAZYACCESS(interactions, user)) + LAZYSET(result, "interacting", TRUE) + + var/obscuring = item_data.get_obscuring(owner) + if (obscuring != STRIPPABLE_OBSCURING_NONE) + LAZYSET(result, "obscured", obscuring) + items[strippable_key] = result + continue + + var/obj/item/item = item_data.get_item(owner) + if (isnull(item)) + if (item_data.has_no_item_alt_action()) + LAZYINITLIST(result) + result["no_item_action"] = item_data.get_alternate_action(owner, user) + items[strippable_key] = result + continue + + LAZYINITLIST(result) + + result["icon"] = icon2base64(icon(item.icon, item.icon_state, frame = 1)) + result["name"] = item.name + result["alternate"] = item_data.get_alternate_action(owner, user) + + items[strippable_key] = result + + data["items"] = items + + // While most `\the`s are implicit, this one is not. + // In this case, `\The` would otherwise be used. + // This doesn't match with what it's used for, which is to say "Stripping the alien drone", + // as opposed to "Stripping The alien drone". + // Human names will still show without "the", as they are proper nouns. + data["name"] = "\the [owner]" + + return data + +/datum/strip_menu/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) + . = ..() + if (.) + return + + . = TRUE + + var/mob/user = ui.user + + switch (action) + if ("equip") + var/key = params["key"] + var/datum/strippable_item/strippable_item = strippable.items[key] + + if (isnull(strippable_item)) + return + + if (!strippable_item.should_show(owner, user)) + return + + if (strippable_item.get_obscuring(owner) == STRIPPABLE_OBSCURING_COMPLETELY) + return + + var/item = strippable_item.get_item(owner) + if (!isnull(item)) + return + + var/obj/item/held_item = user.get_held_item() + if (isnull(held_item)) + return + + if (!strippable_item.try_equip(owner, held_item, user)) + return + + LAZYORASSOCLIST(interactions, user, key) + + // Yielding call + var/should_finish = strippable_item.start_equip(owner, held_item, user) + + LAZYREMOVEASSOC(interactions, user, key) + + if (!should_finish) + return + + if (QDELETED(src) || QDELETED(owner)) + return + + // They equipped an item in the meantime + if (!isnull(strippable_item.get_item(owner))) + return + + if (!user.Adjacent(owner)) + return + + strippable_item.finish_equip(owner, held_item, user) + if ("strip") + var/key = params["key"] + var/datum/strippable_item/strippable_item = strippable.items[key] + + if (isnull(strippable_item)) + return + + if (!strippable_item.should_show(owner, user)) + return + + if (strippable_item.get_obscuring(owner) == STRIPPABLE_OBSCURING_COMPLETELY) + return + + var/item = strippable_item.get_item(owner) + if (isnull(item)) + return + + if (!strippable_item.try_unequip(owner, user)) + return + + LAZYORASSOCLIST(interactions, user, key) + + var/should_unequip = strippable_item.start_unequip(owner, user) + + LAZYREMOVEASSOC(interactions, user, key) + + // Yielding call + if (!should_unequip) + return + + if (QDELETED(src) || QDELETED(owner)) + return + + // They changed the item in the meantime + if (strippable_item.get_item(owner) != item) + return + + if (!user.Adjacent(owner)) + return + + strippable_item.finish_unequip(owner, user) + if ("alt") + var/key = params["key"] + var/datum/strippable_item/strippable_item = strippable.items[key] + + if (isnull(strippable_item)) + return + + if (!strippable_item.should_show(owner, user)) + return + + if (strippable_item.get_obscuring(owner) == STRIPPABLE_OBSCURING_COMPLETELY) + return + + var/item = strippable_item.get_item(owner) + if (isnull(item) && !strippable_item.has_no_item_alt_action()) + return + + if (isnull(strippable_item.get_alternate_action(owner, user))) + return + + LAZYORASSOCLIST(interactions, user, key) + + // Potentially yielding + strippable_item.alternate_action(owner, user) + + LAZYREMOVEASSOC(interactions, user, key) + +/datum/strip_menu/ui_host(mob/user) + return owner + +/datum/strip_menu/ui_status(mob/user, datum/ui_state/state) + . = ..() + + if (isliving(user)) + var/mob/living/living_user = user + + if ( + . == UI_UPDATE \ + && user.stat == CONSCIOUS \ + && living_user.body_position == LYING_DOWN \ + && user.Adjacent(owner) + ) + return UI_INTERACTIVE + +/// Creates an assoc list of keys to /datum/strippable_item +/proc/create_strippable_list(types) + var/list/strippable_items = list() + + for (var/strippable_type in types) + var/datum/strippable_item/strippable_item = new strippable_type + strippable_items[strippable_item.key] = strippable_item + + return strippable_items diff --git a/code/datums/emergency_calls/cbrn.dm b/code/datums/emergency_calls/cbrn.dm index cee96e10137e..c5e97bfb2ccf 100644 --- a/code/datums/emergency_calls/cbrn.dm +++ b/code/datums/emergency_calls/cbrn.dm @@ -1,7 +1,8 @@ /datum/emergency_call/cbrn name = "CBRN (Squad)" - arrival_message = "A CBRN squad has been dispatched to your ship. Stand by." + arrival_message = "Attention, this is the USS Kurtz, we have dispatched a CBRN squad to your ship per your distress call. Stand by for arrival." objectives = "Handle the chemical, biological, radiological, or nuclear threat. Further orders may be provided." + home_base = /datum/lazy_template/ert/uscm_station mob_min = 3 mob_max = 5 max_heavies = 0 @@ -40,7 +41,7 @@ /datum/emergency_call/cbrn/ert name = "CBRN (Distress)" - arrival_message = "Your distress signal has been received and we are dispatching the nearest CBRN squad to board with you now. Stand by." + arrival_message = "Attention, this is the USS Kurtz, we have dispatched a CBRN squad to your ship per your distress call. Stand by for arrival." probability = 10 /datum/emergency_call/cbrn/ert/New() diff --git a/code/datums/emergency_calls/clf.dm b/code/datums/emergency_calls/clf.dm index 837ecb340dda..5441ba3103a7 100644 --- a/code/datums/emergency_calls/clf.dm +++ b/code/datums/emergency_calls/clf.dm @@ -8,6 +8,7 @@ objectives = "Assault the USCM, and sabotage as much as you can. Ensure any survivors escape in your custody." probability = 20 hostility = TRUE + home_base = /datum/lazy_template/ert/clf_station var/max_synths = 1 var/synths = 0 @@ -45,7 +46,7 @@ leader = H to_chat(H, SPAN_ROLE_HEADER("You are a Cell Leader of the local resistance group, the Colonial Liberation Front!")) arm_equipment(H, /datum/equipment_preset/clf/leader, TRUE, TRUE) - else if(synths < max_synths && HAS_FLAG(H.client.prefs.toggles_ert, PLAY_SYNTH) && GLOB.RoleAuthority.roles_whitelist[H.ckey] & WHITELIST_SYNTHETIC) + else if(synths < max_synths && HAS_FLAG(H.client.prefs.toggles_ert, PLAY_SYNTH) && H.client.check_whitelist_status(WHITELIST_SYNTHETIC)) synths++ to_chat(H, SPAN_ROLE_HEADER("You are a Multi-Purpose Synthetic for the local resistance group, the Colonial Liberation Front!")) arm_equipment(H, /datum/equipment_preset/clf/synth, TRUE, TRUE) diff --git a/code/datums/emergency_calls/cmb.dm b/code/datums/emergency_calls/cmb.dm index 5dba3ee8fc7d..bbe2e161842a 100644 --- a/code/datums/emergency_calls/cmb.dm +++ b/code/datums/emergency_calls/cmb.dm @@ -3,6 +3,7 @@ name = "CMB - Colonial Marshals Patrol Team (Friendly)" mob_max = 5 probability = 10 + home_base = /datum/lazy_template/ert/weyland_station var/max_synths = 1 var/synths = 0 @@ -35,7 +36,7 @@ leader = mob to_chat(mob, SPAN_ROLE_HEADER("You are the Colonial Marshal!")) arm_equipment(mob, /datum/equipment_preset/cmb/leader, TRUE, TRUE) - else if(synths < max_synths && HAS_FLAG(mob?.client.prefs.toggles_ert, PLAY_SYNTH) && GLOB.RoleAuthority.roles_whitelist[mob.ckey] & WHITELIST_SYNTHETIC) + else if(synths < max_synths && HAS_FLAG(mob?.client.prefs.toggles_ert, PLAY_SYNTH) && mob.client.check_whitelist_status(WHITELIST_SYNTHETIC)) synths++ to_chat(mob, SPAN_ROLE_HEADER("You are a CMB Investigative Synthetic!")) arm_equipment(mob, /datum/equipment_preset/cmb/synth, TRUE, TRUE) @@ -53,7 +54,7 @@ print_backstory(mob) - addtimer(CALLBACK(GLOBAL_PROC, PROC_REF(to_chat), mob, SPAN_BOLD("Objectives: [objectives]")), 1 SECONDS) + addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(to_chat), mob, SPAN_BOLD("Objectives: [objectives]")), 1 SECONDS) /datum/emergency_call/cmb/print_backstory(mob/living/carbon/human/M) @@ -159,7 +160,7 @@ print_backstory(mob) - addtimer(CALLBACK(GLOBAL_PROC, PROC_REF(to_chat), mob, SPAN_BOLD("Objectives: [objectives]")), 1 SECONDS) + addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(to_chat), mob, SPAN_BOLD("Objectives: [objectives]")), 1 SECONDS) /datum/emergency_call/cmb/anchorpoint/print_backstory(mob/living/carbon/human/M) diff --git a/code/datums/emergency_calls/contractor.dm b/code/datums/emergency_calls/contractor.dm index 0e0c975f0d13..6721abdf1862 100644 --- a/code/datums/emergency_calls/contractor.dm +++ b/code/datums/emergency_calls/contractor.dm @@ -29,7 +29,7 @@ leader = mob to_chat(mob, SPAN_ROLE_HEADER("You are a Contractor Team Leader of Vanguard's Arrow Incorporated!")) arm_equipment(mob, /datum/equipment_preset/contractor/duty/leader, TRUE, TRUE) - else if(synths < max_synths && HAS_FLAG(mob.client.prefs.toggles_ert, PLAY_SYNTH) && GLOB.RoleAuthority.roles_whitelist[mob.ckey] & WHITELIST_SYNTHETIC) + else if(synths < max_synths && HAS_FLAG(mob.client.prefs.toggles_ert, PLAY_SYNTH) && mob.client.check_whitelist_status(WHITELIST_SYNTHETIC)) synths++ to_chat(mob, SPAN_ROLE_HEADER("You are a Contractor Support Synthetic of Vanguard's Arrow Incorporated!")) arm_equipment(mob, /datum/equipment_preset/contractor/duty/synth, TRUE, TRUE) @@ -87,7 +87,7 @@ /datum/emergency_call/contractors/covert name = "Military Contractors (Covert) (Hostile to WY)" mob_max = 7 - probability = 0 + probability = 20 max_medics = 1 max_engineers = 1 max_heavies = 1 @@ -123,7 +123,7 @@ leader = H to_chat(H, SPAN_ROLE_HEADER("You are a Covert Contractor Team Leader of Vanguard's Arrow Incorporated!")) arm_equipment(H, /datum/equipment_preset/contractor/covert/leader, TRUE, TRUE) - else if(synths < max_synths && HAS_FLAG(H.client.prefs.toggles_ert, PLAY_SYNTH) && GLOB.RoleAuthority.roles_whitelist[H.ckey] & WHITELIST_SYNTHETIC) + else if(synths < max_synths && HAS_FLAG(H.client.prefs.toggles_ert, PLAY_SYNTH) && H.client.check_whitelist_status(WHITELIST_SYNTHETIC)) synths++ to_chat(H, SPAN_ROLE_HEADER("You are a Contractor Support Synthetic of Vanguard's Arrow Incorporated!")) arm_equipment(H, /datum/equipment_preset/contractor/covert/synth, TRUE, TRUE) diff --git a/code/datums/emergency_calls/custom.dm b/code/datums/emergency_calls/custom.dm index 0117c83fc19c..b62d984f6fe3 100644 --- a/code/datums/emergency_calls/custom.dm +++ b/code/datums/emergency_calls/custom.dm @@ -19,7 +19,7 @@ if(!istype(spawn_loc)) return //Didn't find a useable spawn point. - if(!players_to_offer.len) + if(!length(players_to_offer)) return // No more players var/mob/living/carbon/human/H = pick(players_to_offer) diff --git a/code/datums/emergency_calls/deathsquad.dm b/code/datums/emergency_calls/deathsquad.dm index 1cd5bdef6713..649f40c8cb83 100644 --- a/code/datums/emergency_calls/deathsquad.dm +++ b/code/datums/emergency_calls/deathsquad.dm @@ -9,7 +9,8 @@ arrival_message = "'!`2*%slau#*jer t*h$em a!l%. le&*ve n(o^ w&*nes%6es.*v$e %#d ou^'" objectives = "Whiteout protocol is in effect for the target. Ensure there are no traces of the infestation or any witnesses." probability = 0 - shuttle_id = "Distress_PMC" + shuttle_id = MOBILE_SHUTTLE_ID_ERT2 + home_base = /datum/lazy_template/ert/weyland_station name_of_spawn = /obj/effect/landmark/ert_spawns/distress_pmc item_spawn = /obj/effect/landmark/ert_spawns/distress_pmc/item max_medics = 1 @@ -87,82 +88,44 @@ //################################################################################################ // Marine commandos - USCM Deathsquad. Event only /datum/emergency_call/marsoc - name = "Marine Raider Strike Team (!DEATHSQUAD!)" + name = "Marine Raider Operatives (!DEATHSQUAD!)" mob_max = 8 mob_min = 5 probability = 0 - shuttle_id = "Distress_PMC" + shuttle_id = MOBILE_SHUTTLE_ID_ERT2 + home_base = /datum/lazy_template/ert/weyland_station name_of_spawn = /obj/effect/landmark/ert_spawns/distress_pmc + var/leader_preset = /datum/equipment_preset/uscm/marsoc/sl + var/member_preset = /datum/equipment_preset/uscm/marsoc -/datum/emergency_call/marsoc/create_member(datum/mind/M, turf/override_spawn_loc) +/datum/emergency_call/marsoc/create_member(datum/mind/player, turf/override_spawn_loc) var/turf/spawn_loc = override_spawn_loc ? override_spawn_loc : get_spawn_point() if(!istype(spawn_loc)) return //Didn't find a useable spawn point. - var/mob/living/carbon/human/H = new(spawn_loc) - M.transfer_to(H, TRUE) + var/mob/living/carbon/human/member = new(spawn_loc) + player.transfer_to(member, TRUE) - if(!leader && HAS_FLAG(H.client.prefs.toggles_ert, PLAY_LEADER) && check_timelock(H.client, JOB_SQUAD_LEADER, time_required_for_job)) //First one spawned is always the leader. - leader = H - to_chat(H, SPAN_WARNING(FONT_SIZE_BIG("You are a Marine Raider Team Leader, better than all the rest."))) - arm_equipment(H, /datum/equipment_preset/uscm/marsoc/sl, TRUE, TRUE) + if(!leader && HAS_FLAG(member.client.prefs.toggles_ert, PLAY_LEADER) && check_timelock(member.client, JOB_SQUAD_LEADER, time_required_for_job)) //First one spawned is always the leader. + leader = member + to_chat(member, SPAN_WARNING(FONT_SIZE_BIG("You are a Marine Raider Team Leader, better than all the rest."))) + arm_equipment(member, leader_preset, TRUE, TRUE) else - to_chat(H, SPAN_WARNING(FONT_SIZE_BIG("You are an elite Marine Raider Operative, the best of the best."))) - arm_equipment(H, /datum/equipment_preset/uscm/marsoc, TRUE, TRUE) - to_chat(H, SPAN_BOLDNOTICE("You are absolutely loyal to High Command and must follow their directives.")) - to_chat(H, SPAN_BOLDNOTICE("Execute the mission assigned to you with extreme prejudice!")) + to_chat(member, SPAN_WARNING(FONT_SIZE_BIG("You are an elite Marine Raider Operative, the best of the best."))) + arm_equipment(member, member_preset, TRUE, TRUE) + to_chat(member, SPAN_BOLDNOTICE("You are absolutely loyal to High Command and must follow their directives.")) + to_chat(member, SPAN_BOLDNOTICE("Execute the mission assigned to you with extreme prejudice!")) return -/datum/emergency_call/marsoc_covert +/datum/emergency_call/marsoc/covert name = "Marine Raider Operatives (!DEATHSQUAD! Covert)" - mob_max = 8 - mob_min = 5 - probability = 0 - shuttle_id = "Distress_PMC" - name_of_spawn = /obj/effect/landmark/ert_spawns/distress_pmc - -/datum/emergency_call/marsoc_covert/create_member(datum/mind/M) - - var/turf/spawn_loc = get_spawn_point() - - if(!istype(spawn_loc)) - return //Didn't find a useable spawn point. - - var/mob/living/carbon/human/H = new(spawn_loc) - M.transfer_to(H, TRUE) - if(!leader && HAS_FLAG(H.client.prefs.toggles_ert, PLAY_LEADER) && check_timelock(H.client, JOB_SQUAD_LEADER, time_required_for_job)) //First one spawned is always the leader. - leader = H - to_chat(H, SPAN_WARNING(FONT_SIZE_BIG("You are a Marine Raider Team Leader, better than all the rest."))) - arm_equipment(H, /datum/equipment_preset/uscm/marsoc/sl/covert, TRUE, TRUE) - else - to_chat(H, SPAN_WARNING(FONT_SIZE_BIG("You are an elite Marine Raider, the best of the best."))) - arm_equipment(H, /datum/equipment_preset/uscm/marsoc/covert, TRUE, TRUE) - to_chat(H, SPAN_BOLDNOTICE("You are absolutely loyal to High Command and must follow their directives.")) - to_chat(H, SPAN_BOLDNOTICE("Execute the mission assigned to you with extreme prejudice!")) - return + leader_preset = /datum/equipment_preset/uscm/marsoc/sl/covert + member_preset = /datum/equipment_preset/uscm/marsoc/covert /datum/emergency_call/marsoc/low_threat name = "Marine Raider Operatives" - -/datum/emergency_call/marsoc/low_threat/create_member(datum/mind/MIND) - - var/turf/spawn_loc = get_spawn_point() - - if(!istype(spawn_loc)) - return //Didn't find a useable spawn point. - - var/mob/living/carbon/human/player = new(spawn_loc) - MIND.transfer_to(player, TRUE) - if(!leader && HAS_FLAG(player.client.prefs.toggles_ert, PLAY_LEADER) && check_timelock(player.client, JOB_SQUAD_LEADER, time_required_for_job)) //First one spawned is always the leader. - leader = player - to_chat(player, SPAN_WARNING(FONT_SIZE_BIG("You are a Marine Raider Team Leader, better than all the rest."))) - arm_equipment(player, /datum/equipment_preset/uscm/marsoc/low_threat/sl, TRUE, TRUE) - else - to_chat(player, SPAN_WARNING(FONT_SIZE_BIG("You are an elite Marine Raider, the best of the best."))) - arm_equipment(player, /datum/equipment_preset/uscm/marsoc/low_threat, TRUE, TRUE) - to_chat(player, SPAN_BOLDNOTICE("You are absolutely loyal to High Command and must follow their directives.")) - to_chat(player, SPAN_BOLDNOTICE("Execute the mission assigned to you with extreme prejudice!")) - return + leader_preset = /datum/equipment_preset/uscm/marsoc/low_threat/sl + member_preset = /datum/equipment_preset/uscm/marsoc/low_threat diff --git a/code/datums/emergency_calls/emergency_call.dm b/code/datums/emergency_calls/emergency_call.dm index c6f71382b877..99b31ab41f19 100644 --- a/code/datums/emergency_calls/emergency_call.dm +++ b/code/datums/emergency_calls/emergency_call.dm @@ -28,9 +28,13 @@ var/mob_min = 3 var/dispatch_message = "An encrypted signal has been received from a nearby vessel. Stand by." //Msg to display when starting var/arrival_message = "" //Msg to display about when the shuttle arrives + /// Probability that the message will be replaced with static. - prob(chance_hidden) + var/chance_hidden = 20 + /// Message to display when distress beacon is hidden + var/static_message = "**STATIC** %$#&!- *!%^#$$ ^%%$# +_!@* &*%$## **STATIC** &%$#^*! @!*%$# ^%&$#@ *%&$#^ **STATIC** --SIGNAL LOST" var/objectives //Txt of objectives to display to joined. Todo: make this into objective notes var/objective_info //For additional info in the objectives txt - var/probability = 0 //Chance of it occurring. Total must equal 100% + var/probability = 0 var/hostility //For ERTs who are either hostile or friendly by random chance. var/list/datum/mind/members = list() //Currently-joined members. var/list/datum/mind/candidates = list() //Potential candidates for enlisting. @@ -46,19 +50,25 @@ var/max_heavies = 1 var/max_smartgunners = 1 var/shuttle_id = MOBILE_SHUTTLE_ID_ERT1 //Empty shuttle ID means we're not using shuttles (aka spawn straight into cryo) - var/auto_shuttle_launch = FALSE + var/auto_shuttle_launch = TRUE var/spawn_max_amount = FALSE var/ert_message = "An emergency beacon has been activated" var/time_required_for_job = 5 HOURS + /// the shuttle being used by this distress call + var/obj/docking_port/mobile/emergency_response/shuttle + + /// the [/datum/lazy_template] we should attempt to spawn in for the return journey + var/home_base = /datum/lazy_template/ert/freelancer_station + /datum/game_mode/proc/initialize_emergency_calls() - if(all_calls.len) //It's already been set up. + if(length(all_calls)) //It's already been set up. return var/list/total_calls = typesof(/datum/emergency_call) - if(!total_calls.len) + if(!length(total_calls)) to_world(SPAN_DANGER("\b Error setting up emergency calls, no datums found.")) return FALSE for(var/S in total_calls) @@ -92,12 +102,19 @@ return chosen_call /datum/game_mode/proc/get_specific_call(call_name, quiet_launch = FALSE, announce_incoming = TRUE, info = "") - for(var/datum/emergency_call/E in all_calls) //Loop through all potential candidates - if(E.name == call_name) - var/datum/emergency_call/em_call = new E.type() - em_call.objective_info = info - em_call.activate(quiet_launch, announce_incoming) - return + if(ispath(call_name, /datum/emergency_call)) + var/datum/emergency_call/em_call = new call_name + em_call.objective_info = info + em_call.activate(quiet_launch, announce_incoming) + return + + var/call_path = text2path(call_name) + if(ispath(call_path, /datum/emergency_call)) + var/datum/emergency_call/em_call = new call_path + em_call.objective_info = info + em_call.activate(quiet_launch, announce_incoming) + return + error("get_specific_call could not find emergency call '[call_name]'") return @@ -137,7 +154,7 @@ if(jobban_isbanned(src, "Syndicate") || jobban_isbanned(src, "Emergency Response Team")) to_chat(src, SPAN_DANGER("You are jobbanned from the emergency response team!")) return - if(!SSticker.mode || !SSticker.mode.picked_calls.len) + if(!SSticker.mode || !length(SSticker.mode.picked_calls)) to_chat(src, SPAN_WARNING("No distress beacons are active. You will be notified if this changes.")) return @@ -213,8 +230,8 @@ SEND_SIGNAL(src, COMSIG_ERT_SETUP) - if(candidates.len < mob_min && !spawn_max_amount) - message_admins("Aborting distress beacon, not enough candidates: found [candidates.len].") + if(length(candidates) < mob_min && !spawn_max_amount) + message_admins("Aborting distress beacon, not enough candidates: found [length(candidates)].") members = list() //Empty the members list. candidates = list() @@ -227,7 +244,7 @@ var/list/datum/mind/picked_candidates = list() if(mob_max > 0) var/mob_count = 0 - while (mob_count < mob_max && candidates.len) + while (mob_count < mob_max && length(candidates)) var/datum/mind/M = pick(candidates) //Get a random candidate, then remove it from the candidates list. if(!istype(M))//Something went horrifically wrong candidates.Remove(M) @@ -237,13 +254,13 @@ continue if(M.current && M.current.stat != DEAD) candidates.Remove(M) //Strip them from the list, they aren't dead anymore. - if(!candidates.len) + if(!length(candidates)) break //NO picking from empty lists continue picked_candidates.Add(M) candidates.Remove(M) mob_count++ - if(candidates.len) + if(length(candidates)) for(var/datum/mind/I in candidates) if(I.current) to_chat(I.current, SPAN_WARNING("You didn't get selected to join the distress team. Better luck next time!")) @@ -258,12 +275,15 @@ if(M.client) to_chat(M, SPAN_NOTICE("Distress beacon: [src.name] finalized.")) - var/obj/docking_port/mobile/shuttle = SSshuttle.getShuttle(shuttle_id) + if(shuttle_id && !override_spawn_loc) + if(!SSmapping.shuttle_templates[shuttle_id]) + message_admins("Distress beacon: [name] does not have a valid shuttle_id: [shuttle_id]") + CRASH("ert called with invalid shuttle_id") - if(!istype(shuttle)) - if(shuttle_id) //Cryo distress doesn't have a shuttle - message_admins("Warning: Distress shuttle not found.") - spawn_items() + var/datum/map_template/shuttle/new_shuttle = SSmapping.shuttle_templates[shuttle_id] + shuttle = SSshuttle.load_template_to_transit(new_shuttle) + shuttle.control_doors("force-lock", force = TRUE, external_only = TRUE) + shuttle.distress_beacon = src if(shuttle && auto_shuttle_launch) var/obj/structure/machinery/computer/shuttle/ert/comp = shuttle.getControlConsole() @@ -290,7 +310,7 @@ SSshuttle.moveShuttleToDock(shuttle, pick(active_lzs), TRUE) var/i = 0 - if(picked_candidates.len) + if(length(picked_candidates)) for(var/datum/mind/M in picked_candidates) members += M i++ @@ -305,7 +325,17 @@ candidates = list() if(arrival_message && announce_incoming) - marine_announcement(arrival_message, "Intercepted Transmission:") + if(prob(chance_hidden)) + marine_announcement(static_message, "Intercepted Transmission:") + else + marine_announcement(arrival_message, "Intercepted Transmission:") + + for(var/datum/mind/spawned as anything in members) + if(ishuman(spawned.current)) + var/mob/living/carbon/human/spawned_human = spawned.current + var/obj/item/card/id/id = spawned_human.get_idcard() + if(id) + ADD_TRAIT(id, TRAIT_ERT_ID, src) /datum/emergency_call/proc/add_candidate(mob/M) if(!M.client || (M.mind && (M.mind in candidates)) || istype(M, /mob/living/carbon/xenomorph)) @@ -321,6 +351,23 @@ /datum/emergency_call/proc/get_spawn_point(is_for_items) var/landmark + + if(shuttle) + if(is_for_items) + landmark = SAFEPICK(shuttle.local_landmarks[item_spawn]) + else + landmark = SAFEPICK(shuttle.local_landmarks[name_of_spawn]) + + if(landmark) + return get_turf(landmark) + + var/list/valid_turfs = list() + for(var/turf/open/floor/valid_turf in shuttle.return_turfs()) + valid_turfs += valid_turf + + if(length(valid_turfs)) + return pick(valid_turfs) + if(is_for_items) landmark = SAFEPICK(GLOB.ert_spawns[item_spawn]) else diff --git a/code/datums/emergency_calls/ert_stations.dm b/code/datums/emergency_calls/ert_stations.dm new file mode 100644 index 000000000000..5a129723bad0 --- /dev/null +++ b/code/datums/emergency_calls/ert_stations.dm @@ -0,0 +1,20 @@ +/datum/lazy_template/ert/clf_station + map_name = "clf_ert_station" + +/datum/lazy_template/ert/freelancer_station + map_name = "freelancer_ert_station" + +/datum/lazy_template/ert/twe_station + map_name = "twe_ert_station" + +/datum/lazy_template/ert/upp_station + map_name = "upp_ert_station" + +/datum/lazy_template/ert/weyland_station + map_name = "weyland_ert_station" + +/datum/lazy_template/ert/pizza_station + map_name = "pizza_ert_station" + +/datum/lazy_template/ert/uscm_station + map_name = "uscm_ert_station" diff --git a/code/datums/emergency_calls/feral_xenos.dm b/code/datums/emergency_calls/feral_xenos.dm index 5d9f14a4680c..ad1935ccefb9 100644 --- a/code/datums/emergency_calls/feral_xenos.dm +++ b/code/datums/emergency_calls/feral_xenos.dm @@ -39,7 +39,7 @@ else if(medics < max_medics) medics++ - var/picked = pick(/mob/living/carbon/xenomorph/drone, /mob/living/carbon/xenomorph/hivelord, /mob/living/carbon/xenomorph/burrower) + var/picked = pick(/mob/living/carbon/xenomorph/drone, /mob/living/carbon/xenomorph/hivelord) new_xeno = new picked(spawn_loc) else if(engineers < max_engineers) diff --git a/code/datums/emergency_calls/forecon.dm b/code/datums/emergency_calls/forecon.dm new file mode 100644 index 000000000000..98e6a1c27ec2 --- /dev/null +++ b/code/datums/emergency_calls/forecon.dm @@ -0,0 +1,62 @@ +/datum/emergency_call/forecon + name = "FORECON (Squad)" + arrival_message = "A Force Reconnaissance squad has been dispatched to your ship. Stand by." + objectives = "Handle whatever threat is present. Further orders may be provided." + home_base = /datum/lazy_template/ert/weyland_station + probability = 0 + mob_min = 3 + mob_max = 6 + + max_heavies = 1 + max_medics = 1 + max_smartgunners = 1 + +/datum/emergency_call/forecon/create_member(datum/mind/new_mind, turf/override_spawn_loc) + var/turf/spawn_loc = override_spawn_loc ? override_spawn_loc : get_spawn_point() + + if(!istype(spawn_loc)) + return //Didn't find a useable spawn point. + + var/mob/living/carbon/human/mob = new(spawn_loc) + new_mind.transfer_to(mob, TRUE) + + if(!leader && HAS_FLAG(mob.client.prefs.toggles_ert, PLAY_LEADER) && check_timelock(mob.client, JOB_SQUAD_LEADER, time_required_for_job)) + leader = mob + arm_equipment(mob, /datum/equipment_preset/uscm/forecon/squad_leader, TRUE, TRUE) + to_chat(mob, SPAN_ROLE_HEADER("You are the FORECON Squad Leader!")) + + else if(medics < max_medics && HAS_FLAG(mob.client.prefs.toggles_ert, PLAY_MEDIC) && check_timelock(mob.client, JOB_SQUAD_MEDIC, time_required_for_job)) + medics++ + arm_equipment(mob, /datum/equipment_preset/uscm/forecon/tech, TRUE, TRUE) + to_chat(mob, SPAN_ROLE_HEADER("You are the FORECON Support Technician!")) + + else if(smartgunners < max_smartgunners && HAS_FLAG(mob.client.prefs.toggles_ert, PLAY_SMARTGUNNER) && check_timelock(mob.client, JOB_SQUAD_SMARTGUN)) + smartgunners++ + to_chat(mob, SPAN_ROLE_HEADER("You are a FORECON Smartgunner!")) + arm_equipment(mob, /datum/equipment_preset/uscm/forecon/smartgunner, TRUE, TRUE) + + else if(heavies < max_heavies && HAS_FLAG(mob.client.prefs.toggles_ert, PLAY_HEAVY) && check_timelock(mob.client, JOB_SQUAD_SPECIALIST)) + heavies++ + to_chat(mob, SPAN_ROLE_HEADER("You are a FORECON Designated Marskman!")) + arm_equipment(mob, /datum/equipment_preset/uscm/forecon/marksman, TRUE, TRUE) + + else + arm_equipment(mob, /datum/equipment_preset/uscm/forecon/standard, TRUE, TRUE) + to_chat(mob, SPAN_ROLE_HEADER("You are a FORECON Rifleman!")) + + to_chat(mob, SPAN_ROLE_BODY("You are a member of the USCM's Force Reconnisance. FORECON is a force that specializes in special operations behind enemy lines, or conducting reconnisance in situations regular Marines are not expected to handle.")) + addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(to_chat), mob, SPAN_BOLD("Objectives: [objectives]")), 1 SECONDS) + +/datum/emergency_call/forecon/platoon + name = "FORECON (Platoon)" + mob_min = 6 + mob_max = 30 + probability = 0 + max_medics = 6 + max_heavies = 1 + max_smartgunners = 2 + +/datum/emergency_call/forecon/platoon/New() + ..() + arrival_message = "A Force Reconnaissance squad has been dispatched to your ship. Stand by." + objectives = "Handle whatever threat is present. Further orders may be provided." diff --git a/code/datums/emergency_calls/forsaken_xenos.dm b/code/datums/emergency_calls/forsaken_xenos.dm index d089830658d9..1c876d4d4d44 100644 --- a/code/datums/emergency_calls/forsaken_xenos.dm +++ b/code/datums/emergency_calls/forsaken_xenos.dm @@ -3,6 +3,7 @@ mob_min = 1 mob_max = 4 hostility = TRUE + shuttle_id = "" name_of_spawn = /obj/effect/landmark/ert_spawns/groundside_xeno objectives = "You have been left behind to safeguard the abandoned colony. Do not allow trespassers." diff --git a/code/datums/emergency_calls/goons.dm b/code/datums/emergency_calls/goons.dm index 8a0b00968807..edd3d05d1441 100644 --- a/code/datums/emergency_calls/goons.dm +++ b/code/datums/emergency_calls/goons.dm @@ -2,6 +2,7 @@ name = "Weyland-Yutani Corporate Security (Squad)" mob_max = 6 probability = 0 + home_base = /datum/lazy_template/ert/weyland_station /datum/emergency_call/goon/New() ..() @@ -96,6 +97,45 @@ to_chat(backstory_human, SPAN_BOLD("You heard about the original distress signal ages ago, but you have only just gotten permission from corporate to enter the area.")) to_chat(backstory_human, SPAN_BOLD("Ensure no damage is incurred against Weyland-Yutani. Make sure the researcher is kept safe and follow their instructions.")) +/datum/emergency_call/goon/bodyguard + name = "Weyland-Yutani Goon (Executive Bodyguard Detail)" + mob_max = 1 + mob_min = 1 + +/datum/emergency_call/goon/bodyguard/New() + ..() + dispatch_message = "[MAIN_SHIP_NAME], this is a Weyland-Yutani Corporate Security Protection Detail shuttle inbound to the Liaison's Beacon." + objectives = "Protect the Corporate Liaison and follow his commands, unless it goes against Company policy. Do not damage Wey-Yu property." + +/datum/emergency_call/goon/bodyguard/create_member(datum/mind/M, turf/override_spawn_loc) + var/turf/spawn_loc = override_spawn_loc ? override_spawn_loc : get_spawn_point() + + if(!istype(spawn_loc)) + return //Didn't find a useable spawn point. + + var/mob/living/carbon/human/mob = new(spawn_loc) + M.transfer_to(mob, TRUE) + + if(!leader && HAS_FLAG(mob.client.prefs.toggles_ert, PLAY_LEADER) && check_timelock(mob.client, JOB_SQUAD_LEADER, time_required_for_job)) + leader = mob + to_chat(mob, SPAN_ROLE_HEADER("You are a Weyland-Yutani Corporate Security Lead!")) + arm_equipment(mob, /datum/equipment_preset/goon/lead, TRUE, TRUE) + else + to_chat(mob, SPAN_ROLE_HEADER("You are a Weyland-Yutani Corporate Security Officer!")) + arm_equipment(mob, /datum/equipment_preset/goon/standard, TRUE, TRUE) + + print_backstory(mob) + + addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(to_chat), mob, SPAN_BOLD("Objectives: [objectives]")), 1 SECONDS) + +/datum/emergency_call/goon/bodyguard/print_backstory(mob/living/carbon/human/M) + to_chat(M, SPAN_BOLD("You were born [pick(75;"in Europe", 15;"in Asia", 10;"on Mars")] to a poor family.")) + to_chat(M, SPAN_BOLD("Joining the ranks of Weyland-Yutani was all you could do to keep yourself and your loved ones fed.")) + to_chat(M, SPAN_BOLD("You have no idea what a xenomorph is.")) + to_chat(M, SPAN_BOLD("You are a simple security officer employed by Weyland-Yutani to guard their Executives from all Divisions alike.")) + to_chat(M, SPAN_BOLD("You were sent to act as the Executives bodyguard on the [MAIN_SHIP_NAME], you have gotten permission from corporate to enter the area.")) + to_chat(M, SPAN_BOLD("Ensure no damage is incurred against Weyland-Yutani. Make sure the CL is safe.")) + /datum/emergency_call/goon/platoon name = "Weyland-Yutani Corporate Security (Platoon)" mob_min = 8 diff --git a/code/datums/emergency_calls/inspection.dm b/code/datums/emergency_calls/inspection.dm index 2cd121093ea4..e473466f4fb8 100644 --- a/code/datums/emergency_calls/inspection.dm +++ b/code/datums/emergency_calls/inspection.dm @@ -125,6 +125,7 @@ name = "Inspection - Corporate" mob_max = 2 mob_min = 1 + home_base = /datum/lazy_template/ert/weyland_station name_of_spawn = /obj/effect/landmark/ert_spawns/distress_pmc item_spawn = /obj/effect/landmark/ert_spawns/distress_pmc/item probability = 0 @@ -164,6 +165,42 @@ new /obj/item/storage/box/handcuffs(drop_spawn) new /obj/item/storage/box/handcuffs(drop_spawn) +/datum/emergency_call/inspection_wy/lawyer + name = "Lawyers - Corporate" + mob_max = 2 + mob_min = 1 + name_of_spawn = /obj/effect/landmark/ert_spawns/distress_pmc + item_spawn = /obj/effect/landmark/ert_spawns/distress_pmc/item + probability = 0 + +/datum/emergency_call/inspection_wy/lawyer/New() + ..() + objectives = "Make sure the crew of the [MAIN_SHIP_NAME] is aware of your presence. Investigate who the Corporate Liaison reported for breaking their contract and any review other Company assets and make sure they remain loyal to the Company. Make a detailed report back to Corporate." + +/datum/emergency_call/inspection_wy/lawyer/create_member(datum/mind/M, turf/override_spawn_loc) + var/turf/T = override_spawn_loc ? override_spawn_loc : get_spawn_point() + + if(!istype(T)) + return FALSE + + var/mob/living/carbon/human/H = new(T) + M.transfer_to(H, TRUE) + + if(!leader && HAS_FLAG(H.client.prefs.toggles_ert, PLAY_LEADER) && check_timelock(H.client, list(JOB_SQUAD_LEADER), time_required_for_job)) + leader = H + arm_equipment(H, /datum/equipment_preset/wy/exec_supervisor/lawyer, TRUE, TRUE) + to_chat(H, SPAN_ROLE_HEADER("You are a Weyland-Yutani Lead Corporate Attorney!")) + to_chat(H, SPAN_ROLE_BODY("While officially the Corporate Affairs Division does mundane paperwork for Weyland-Yutani, in practice you serve as both official and unofficial investigators into conduct of Company and non-Company personnel. You are being dispatched to the [MAIN_SHIP_NAME] to make sure that the USCM abides by it's signed contracts provided by the local Liaison and that they have not forgotten the real hand that feeds them.")) + to_chat(H, SPAN_ROLE_BODY("Remember the USCM personnel on the ship may not appreciate your presence there. Should the Liaison be in jail, you are to act as legal counsel in any way. Your basic duty is to make a detailed report of anything involving the Liaison, any other WY personnel and of course any contract violations on board the ship.")) + to_chat(H, SPAN_WARNING("You are to avoid open conflict with the Marines. Retreat and make a report if they are outright hostile. Ahelp if you have any more questions or wish to release this character for other players.")) + else + arm_equipment(H, /datum/equipment_preset/wy/exec_spec/lawyer, TRUE, TRUE) + to_chat(H, SPAN_ROLE_HEADER("You are a Weyland-Yutani Corporate Attorney!")) + to_chat(H, SPAN_ROLE_BODY("While officially the Corporate Affairs Division does mundane paperwork for Weyland-Yutani, in practice you serve as both official and unofficial investigators into conduct of Company and non-Company personnel. The Lead Attorney is in charge, your duty is to provide counsel and any other form of assistance you can render to make sure your mission is a success.")) + to_chat(H, SPAN_ROLE_BODY("Remember that the USCM, or at least some parts of it, may be hostile towards your presence on the ship. You and the Lead Attorney are to avoid open conflict with the Marines. Your main priority is making sure that you both survive to write the report the Company is due.")) + to_chat(H, SPAN_WARNING("You are to avoid open conflict with the Marines. Retreat and make a report if they are outright hostile. Ahelp if you have any more questions or wish to release this character for other players.")) + addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(to_chat), H, SPAN_BOLD("Objectives: [objectives]")), 1 SECONDS) + // Colonial Marshals - UA Law Enforcement / Investigative Federal Agents which usually watch over Colonies. Also a good option for prisoner transfers, investigating corporate corruption, survivor rescues, or illict trade practices(black market). /datum/emergency_call/inspection_cmb @@ -171,6 +208,7 @@ mob_max = 4 mob_min = 1 probability = 0 + home_base = /datum/lazy_template/ert/weyland_station var/max_synths = 1 var/synths = 0 @@ -202,7 +240,7 @@ leader = mob to_chat(mob, SPAN_ROLE_HEADER("You are the Colonial Marshal!")) arm_equipment(mob, /datum/equipment_preset/cmb/leader, TRUE, TRUE) - else if(synths < max_synths && HAS_FLAG(mob?.client.prefs.toggles_ert, PLAY_SYNTH) && GLOB.RoleAuthority.roles_whitelist[mob.ckey] & WHITELIST_SYNTHETIC) + else if(synths < max_synths && HAS_FLAG(mob?.client.prefs.toggles_ert, PLAY_SYNTH) && mob.client.check_whitelist_status(WHITELIST_SYNTHETIC)) synths++ to_chat(mob, SPAN_ROLE_HEADER("You are a CMB Investigative Synthetic!")) arm_equipment(mob, /datum/equipment_preset/cmb/synth, TRUE, TRUE) @@ -220,7 +258,7 @@ print_backstory(mob) - addtimer(CALLBACK(GLOBAL_PROC, PROC_REF(to_chat), mob, SPAN_BOLD("Objectives: [objectives]")), 1 SECONDS) + addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(to_chat), mob, SPAN_BOLD("Objectives: [objectives]")), 1 SECONDS) /datum/emergency_call/inspection_cmb/print_backstory(mob/living/carbon/human/M) @@ -268,7 +306,7 @@ name = "Inspection - Colonial Marshals Ledger Investigation Team" mob_max = 3 //Marshal, Deputy, ICC CL mob_min = 2 - shuttle_id = "Distress_PMC" + shuttle_id = MOBILE_SHUTTLE_ID_ERT2 max_synths = 0 will_spawn_icc_liaison = TRUE @@ -303,4 +341,4 @@ print_backstory(mob) - addtimer(CALLBACK(GLOBAL_PROC, PROC_REF(to_chat), mob, SPAN_BOLD("Objectives: [objectives]")), 1 SECONDS) + addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(to_chat), mob, SPAN_BOLD("Objectives: [objectives]")), 1 SECONDS) diff --git a/code/datums/emergency_calls/mercs.dm b/code/datums/emergency_calls/mercs.dm index 67e09e8992f0..33a261a1da5e 100644 --- a/code/datums/emergency_calls/mercs.dm +++ b/code/datums/emergency_calls/mercs.dm @@ -13,9 +13,9 @@ hostility = pick(75;FALSE,25;TRUE) arrival_message = "[MAIN_SHIP_NAME], this is Freelancer shuttle [pick(GLOB.alphabet_lowercase)][pick(GLOB.alphabet_lowercase)]-[rand(1, 99)] responding to your distress call. Prepare for boarding." if(hostility) - objectives = "Ransack the [MAIN_SHIP_NAME] and kill anyone who gets in your way. Do what your Captain says. Ensure your survival at all costs." + objectives = "Ransack the [MAIN_SHIP_NAME] and kill anyone who gets in your way. Do what your Warlord says. Ensure your survival at all costs." else - objectives = "Help the crew of the [MAIN_SHIP_NAME] in exchange for payment, and choose your payment well. Do what your Captain says. Ensure your survival at all costs." + objectives = "Help the crew of the [MAIN_SHIP_NAME] in exchange for payment, and choose your payment well. Do what your Warlord says. Ensure your survival at all costs." /datum/emergency_call/mercs/friendly //if admins want to specifically call in friendly ones name = "Friendly Freelancers (Squad)" @@ -26,7 +26,7 @@ . = ..() hostility = FALSE arrival_message = "[MAIN_SHIP_NAME], this is Freelancer shuttle [pick(GLOB.alphabet_lowercase)][pick(GLOB.alphabet_lowercase)]-[rand(1, 99)] responding to your distress call. Prepare for boarding." - objectives = "Help the crew of the [MAIN_SHIP_NAME] in exchange for payment, and choose your payment well. Do what your Captain says. Ensure your survival at all costs." + objectives = "Help the crew of the [MAIN_SHIP_NAME] in exchange for payment, and choose your payment well. Do what your Warlord says. Ensure your survival at all costs." /datum/emergency_call/mercs/hostile //ditto name = "Hostile Freelancers (Squad)" @@ -37,7 +37,7 @@ . = ..() hostility = TRUE arrival_message = "[MAIN_SHIP_NAME], this is Freelancer shuttle [pick(GLOB.alphabet_lowercase)][pick(GLOB.alphabet_lowercase)]-[rand(1, 99)] responding to your distress call. Prepare for boarding." - objectives = "Ransack the [MAIN_SHIP_NAME] and kill anyone who gets in your way. Do what your Captain says. Ensure your survival at all costs." + objectives = "Ransack the [MAIN_SHIP_NAME] and kill anyone who gets in your way. Do what your Warlord says. Ensure your survival at all costs." /datum/emergency_call/mercs/print_backstory(mob/living/carbon/human/H) to_chat(H, SPAN_BOLD("You started off in the Neroid Sector as a colonist seeking work at one of the established colonies.")) diff --git a/code/datums/emergency_calls/pizza.dm b/code/datums/emergency_calls/pizza.dm index a35ce584c68d..a0d710f455f9 100644 --- a/code/datums/emergency_calls/pizza.dm +++ b/code/datums/emergency_calls/pizza.dm @@ -6,9 +6,10 @@ mob_min = 1 arrival_message = "'That'll be... sixteen orders of cheesy fries, eight large double topping pizzas, nine bottles of Four Loko... hello? Is anyone on this ship? Your pizzas are getting cold.'" objectives = "Make sure you get a tip!" - shuttle_id = "Distress_Small" + shuttle_id = MOBILE_SHUTTLE_ID_ERT_SMALL name_of_spawn = /obj/effect/landmark/ert_spawns/distress_pizza - probability = 0 + home_base = /datum/lazy_template/ert/pizza_station + probability = 1 /datum/emergency_call/pizza/create_member(datum/mind/M, turf/override_spawn_loc) var/turf/spawn_loc = override_spawn_loc ? override_spawn_loc : get_spawn_point() @@ -32,7 +33,7 @@ name = "Pizza Delivery (Cryo)" probability = 0 name_of_spawn = /obj/effect/landmark/ert_spawns/distress_cryo - shuttle_id = "" + shuttle_id = MOBILE_SHUTTLE_ID_ERT_SMALL /obj/effect/landmark/ert_spawns/distress_pizza name = "Distress_Pizza" diff --git a/code/datums/emergency_calls/pmc.dm b/code/datums/emergency_calls/pmc.dm index 2d21dc768f4a..06a51c9869eb 100644 --- a/code/datums/emergency_calls/pmc.dm +++ b/code/datums/emergency_calls/pmc.dm @@ -4,7 +4,8 @@ name = "Weyland-Yutani PMC (Squad)" mob_max = 6 probability = 20 - shuttle_id = "Distress_PMC" + shuttle_id = MOBILE_SHUTTLE_ID_ERT2 + home_base = /datum/lazy_template/ert/weyland_station name_of_spawn = /obj/effect/landmark/ert_spawns/distress_pmc item_spawn = /obj/effect/landmark/ert_spawns/distress_pmc/item @@ -34,7 +35,7 @@ leader = mob to_chat(mob, SPAN_ROLE_HEADER("You are a Weyland-Yutani PMC Squad Leader!")) arm_equipment(mob, /datum/equipment_preset/pmc/pmc_leader, TRUE, TRUE) - else if(synths < max_synths && HAS_FLAG(mob.client.prefs.toggles_ert, PLAY_SYNTH) && GLOB.RoleAuthority.roles_whitelist[mob.ckey] & WHITELIST_SYNTHETIC) + else if(synths < max_synths && HAS_FLAG(mob.client.prefs.toggles_ert, PLAY_SYNTH) && mob.client.check_whitelist_status(WHITELIST_SYNTHETIC)) synths++ to_chat(mob, SPAN_ROLE_HEADER("You are a Weyland-Yutani PMC Support Synthetic!")) arm_equipment(mob, /datum/equipment_preset/pmc/synth, TRUE, TRUE) diff --git a/code/datums/emergency_calls/royal_marines.dm b/code/datums/emergency_calls/royal_marines.dm index b3feaccf87bb..a614d5a0c1c7 100644 --- a/code/datums/emergency_calls/royal_marines.dm +++ b/code/datums/emergency_calls/royal_marines.dm @@ -1,7 +1,9 @@ /datum/emergency_call/royal_marines name = "Royal Marines Commando (Squad) (Friendly)" mob_max = 7 - probability = 0 + probability = 15 + home_base = /datum/lazy_template/ert/twe_station + shuttle_id = MOBILE_SHUTTLE_ID_ERT4 name_of_spawn = /obj/effect/landmark/ert_spawns/distress_twe item_spawn = /obj/effect/landmark/ert_spawns/distress_twe/item max_engineers = 0 diff --git a/code/datums/emergency_calls/upp.dm b/code/datums/emergency_calls/upp.dm index 80ef111be3e4..cb5db1f0e3b9 100644 --- a/code/datums/emergency_calls/upp.dm +++ b/code/datums/emergency_calls/upp.dm @@ -5,7 +5,8 @@ name = "UPP Naval Infantry (Squad)" mob_max = 9 probability = 20 - shuttle_id = "Distress_UPP" + shuttle_id = MOBILE_SHUTTLE_ID_ERT3 + home_base = /datum/lazy_template/ert/upp_station name_of_spawn = /obj/effect/landmark/ert_spawns/distress_upp item_spawn = /obj/effect/landmark/ert_spawns/distress_upp/item //1 leader, 1 engineer, 2 medics, 1 specialist, 5 soldiers @@ -35,13 +36,16 @@ else to_chat(M, SPAN_BOLD("You were brought online in a UPP engineering facility, knowing only your engineers for the first few weeks for your pseudo-life.")) to_chat(M, SPAN_BOLD("You were programmed with all of the medical and combat experience a military fighting force support asset required.")) - to_chat(M, SPAN_BOLD("Throughout your career, your engineers, and later, your UPP compatriots, treated you like a tool, and only that.")) + to_chat(M, SPAN_BOLD("Throughout your career, your engineers, and later, your UPP compatriots, treated you like [pick(75;"a tool, and only that.", 25;"a person, despite your purpose.")]")) to_chat(M, SPAN_BOLD("Some weeks after your unit integration, you were assigned to the 17th 'Smoldering Sons' battalion (six hundred strong) under the command of Colonel Ganbaatar.")) to_chat(M, SPAN_BOLD("You were shipped off with the battalion to one of the UPP's most remote territories, a gas giant designated MV-35 in the Anglo-Japanese Arm, in the Neroid Sector.")) to_chat(M, SPAN_BOLD("For the past 14 months, you and the rest of the Smoldering Sons have been stationed at MV-35's only facility, the helium refinery, Altai Station.")) to_chat(M, SPAN_BOLD("As MV-35 and Altai Station are the only UPP-held zones in the Neroid Sector for many lightyears, you have spent most of your military career holed up in crammed quarters in near darkness, waiting for supply shipments and transport escort deployments.")) - to_chat(M, SPAN_BOLD("With the recent arrival of the enemy USCM battalion the 'Falling Falcons' and their flagship, the [MAIN_SHIP_NAME], the UPP has felt threatened in the sector.")) - to_chat(M, SPAN_BOLD("In an effort to protect the vulnerable MV-35 from the encroaching UA/USCM imperialists, the leadership of your battalion has opted this to be the best opportunity to strike at the Falling Falcons to catch them off guard.")) + to_chat(M, SPAN_BOLD("With the recent arrival of the USCM battalion the 'Falling Falcons' and their flagship, the [MAIN_SHIP_NAME], the UPP has felt threatened in the sector.")) + if(hostility) + to_chat(M, SPAN_BOLD("In an effort to protect the vulnerable MV-35 from the encroaching UA/USCM imperialists, the leadership of your battalion has opted this to be the best opportunity to strike at the Falling Falcons to catch them off guard.")) + else + to_chat(M, SPAN_BOLD("Despite this, the leadership of your battalion questions what may have prompted the distress signal from their rivals. Your squad is to find out why and to render aid to the beleaguered UA forces.")) to_chat(M, SPAN_WARNING(FONT_SIZE_BIG("Glory to Colonel Ganbaatar."))) to_chat(M, SPAN_WARNING(FONT_SIZE_BIG("Glory to the Smoldering Sons."))) to_chat(M, SPAN_WARNING(FONT_SIZE_BIG("Glory to the UPP."))) @@ -61,7 +65,7 @@ leader = H arm_equipment(H, /datum/equipment_preset/upp/leader, TRUE, TRUE) to_chat(H, SPAN_ROLE_HEADER("You are an Officer of the Union of Progressive People, a powerful socialist state that rivals the United Americas!")) - else if(synths < max_synths && HAS_FLAG(H.client.prefs.toggles_ert, PLAY_SYNTH) && GLOB.RoleAuthority.roles_whitelist[H.ckey] & WHITELIST_SYNTHETIC) + else if(synths < max_synths && HAS_FLAG(H.client.prefs.toggles_ert, PLAY_SYNTH) && H.client.check_whitelist_status(WHITELIST_SYNTHETIC)) synths++ to_chat(H, SPAN_ROLE_HEADER("You are a Combat Synthetic of the Union of Progressive People, a powerful socialist state that rivals the United Americas!")) arm_equipment(H, /datum/equipment_preset/upp/synth, TRUE, TRUE) @@ -96,18 +100,20 @@ addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(to_chat), H, SPAN_BOLD("Objectives: [objectives]")), 1 SECONDS) -/datum/emergency_call/upp/hostile +/datum/emergency_call/upp/hostile //if admins want to specifically call in friendly ones name = "UPP Naval Infantry (Squad) (Hostile)" hostility = TRUE + probability = 0 /datum/emergency_call/upp/hostile/New() ..() arrival_message = "[MAIN_SHIP_NAME] t*is i* UP* d^sp^*ch`. STr*&e teaM, #*u are cLe*% for a*pr*%^h. Pr*mE a*l wE*p^ns and pR*epr# t% r@nd$r a(tD." objectives = "Eliminate the UA Forces to ensure the UPP presence in this sector is continued. Listen to your superior officers and take over the [MAIN_SHIP_NAME] at all costs." -/datum/emergency_call/upp/friendly +/datum/emergency_call/upp/friendly //ditto name = "UPP Naval Infantry (Squad) (Friendly)" hostility = FALSE + probability = 0 /datum/emergency_call/upp/friendly/New() ..() diff --git a/code/datums/emergency_calls/upp_commando.dm b/code/datums/emergency_calls/upp_commando.dm index 1bc2b59ba08c..53f117c26127 100644 --- a/code/datums/emergency_calls/upp_commando.dm +++ b/code/datums/emergency_calls/upp_commando.dm @@ -5,7 +5,7 @@ mob_max = 6 probability = 0 objectives = "Stealthily assault the ship. Use your silenced weapons, tranquilizers, and night vision to get the advantage on the enemy. Take out the power systems, comms and engine. Stick together and keep a low profile." - shuttle_id = "Distress_UPP" + shuttle_id = MOBILE_SHUTTLE_ID_ERT3 name_of_spawn = /obj/effect/landmark/ert_spawns/distress_upp item_spawn = /obj/effect/landmark/ert_spawns/distress_upp/item hostility = TRUE diff --git a/code/datums/emergency_calls/xeno_cultists.dm b/code/datums/emergency_calls/xeno_cultists.dm index 5da5c9c17e59..5a69c4002105 100644 --- a/code/datums/emergency_calls/xeno_cultists.dm +++ b/code/datums/emergency_calls/xeno_cultists.dm @@ -25,7 +25,7 @@ leader = H to_chat(H, SPAN_ROLE_HEADER("You are the leader of this xeno cult! Bring glory to Queen Mother!")) arm_equipment(H, /datum/equipment_preset/other/xeno_cultist/leader, TRUE, TRUE) - else if(synths < max_synths && HAS_FLAG(H.client.prefs.toggles_ert, PLAY_SYNTH) && GLOB.RoleAuthority.roles_whitelist[H.ckey] & WHITELIST_SYNTHETIC) + else if(synths < max_synths && HAS_FLAG(H.client.prefs.toggles_ert, PLAY_SYNTH) && H.client.check_whitelist_status(WHITELIST_SYNTHETIC)) synths++ to_chat(H, SPAN_ROLE_HEADER("You are the xeno cult's synthetic! Tend to the Hive and the captured hosts, make sure the Hive grows!")) arm_equipment(H, /datum/equipment_preset/synth/survivor/cultist_synth, TRUE, TRUE) @@ -34,4 +34,4 @@ arm_equipment(H, /datum/equipment_preset/other/xeno_cultist, TRUE, TRUE) print_backstory(H) - addtimer(CALLBACK(GLOBAL_PROC, PROC_REF(to_chat), H, SPAN_BOLD("Objectives: [objectives]")), 1 SECONDS) + addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(to_chat), H, SPAN_BOLD("Objectives: [objectives]")), 1 SECONDS) diff --git a/code/datums/emotes.dm b/code/datums/emotes.dm index b691d87a2169..6e84052720d4 100644 --- a/code/datums/emotes.dm +++ b/code/datums/emotes.dm @@ -112,6 +112,7 @@ var/paygrade = user.get_paygrade() var/formatted_message = "[paygrade][user] [msg]" var/user_turf = get_turf(user) + var/list/seeing_obj = list() if (user.client) for(var/mob/ghost as anything in GLOB.dead_mob_list) if(!ghost.client || isnewplayer(ghost)) @@ -132,12 +133,18 @@ if(emote_type & EMOTE_VISIBLE) var/list/viewers = get_mobs_in_view(7, user) for(var/mob/current_mob in viewers) + for(var/obj/object in current_mob.contents) + if((object.flags_atom & USES_SEEING)) + seeing_obj |= object if(!(current_mob.client?.prefs.toggles_langchat & LANGCHAT_SEE_EMOTES)) viewers -= current_mob run_langchat(user, viewers) else if(emote_type & EMOTE_AUDIBLE) var/list/heard = get_mobs_in_view(7, user) for(var/mob/current_mob in heard) + for(var/obj/object in current_mob.contents) + if((object.flags_atom & USES_HEARING)) + seeing_obj |= object if(current_mob.ear_deaf) heard -= current_mob continue @@ -145,6 +152,9 @@ heard -= current_mob run_langchat(user, heard) + for(var/obj/object as anything in seeing_obj) + object.see_emote(user, msg, (emote_type & EMOTE_AUDIBLE)) + SEND_SIGNAL(user, COMSIG_MOB_EMOTED(key)) diff --git a/code/datums/entities/player.dm b/code/datums/entities/player.dm index e5fa811002a2..fbdcc11e1037 100644 --- a/code/datums/entities/player.dm +++ b/code/datums/entities/player.dm @@ -5,6 +5,9 @@ var/last_known_ip var/last_known_cid + var/whitelist_status + var/whitelist_flags + var/discord_link_id var/last_login @@ -26,6 +29,9 @@ var/stickyban_whitelisted = FALSE + var/byond_account_age + var/first_join_date + // UNTRACKED FIELDS var/name // Used for NanoUI statistics menu @@ -63,6 +69,7 @@ BSQL_PROTECT_DATUM(/datum/entity/player) "is_permabanned" = DB_FIELDTYPE_INT, "permaban_reason" = DB_FIELDTYPE_STRING_MAX, "permaban_date" = DB_FIELDTYPE_STRING_LARGE, + "whitelist_status" = DB_FIELDTYPE_STRING_MAX, "discord_link_id" = DB_FIELDTYPE_BIGINT, "permaban_admin_id" = DB_FIELDTYPE_BIGINT, "is_time_banned" = DB_FIELDTYPE_INT, @@ -74,6 +81,8 @@ BSQL_PROTECT_DATUM(/datum/entity/player) "migrated_bans" = DB_FIELDTYPE_INT, "migrated_jobbans" = DB_FIELDTYPE_INT, "stickyban_whitelisted" = DB_FIELDTYPE_INT, + "byond_account_age" = DB_FIELDTYPE_STRING_MEDIUM, + "first_join_date" = DB_FIELDTYPE_STRING_MEDIUM, ) // NOTE: good example of database operations using NDatabase, so it is well commented @@ -81,11 +90,12 @@ BSQL_PROTECT_DATUM(/datum/entity/player) /datum/entity/player/proc/add_note(note_text, is_confidential, note_category = NOTE_ADMIN, is_ban = FALSE, duration = null) var/client/admin = usr.client // do all checks here, especially for sensitive stuff like this - if(!admin || !admin.player_data) - return FALSE - if(note_category == NOTE_ADMIN || is_confidential) - if (!AHOLD_IS_MOD(admin.admin_holder)) + if(!(note_category == NOTE_WHITELIST)) + if(!admin || !admin.player_data) return FALSE + if(note_category == NOTE_ADMIN || is_confidential) + if (!AHOLD_IS_MOD(admin.admin_holder)) + return FALSE // this is here for a short transition period when we still are testing DB notes and constantly deleting the file if(CONFIG_GET(flag/duplicate_notes_to_file)) @@ -110,7 +120,7 @@ BSQL_PROTECT_DATUM(/datum/entity/player) note.note_category = note_category note.is_ban = is_ban note.ban_time = duration - note.admin_rank = admin.admin_holder.rank + note.admin_rank = admin.admin_holder ? admin.admin_holder.rank : "Non-Staff" // since admin is in game, their player_data has to be populated. This is also checked above note.admin_id = admin.player_data.id note.admin = admin.player_data @@ -125,13 +135,17 @@ BSQL_PROTECT_DATUM(/datum/entity/player) notes.Add(note) return TRUE -/datum/entity/player/proc/remove_note(note_id) +/datum/entity/player/proc/remove_note(note_id, whitelist = FALSE) + if(IsAdminAdvancedProcCall()) + return PROC_BLOCKED var/client/admin = usr.client // do all checks here, especially for sensitive stuff like this if(!admin || !admin.player_data) return FALSE - if (!AHOLD_IS_MOD(admin.admin_holder)) + if((!AHOLD_IS_MOD(admin.admin_holder)) && !whitelist) + return FALSE + if(whitelist && !(isSenator(admin) || CLIENT_HAS_RIGHTS(admin, R_PERMISSIONS))) return FALSE // this is here for a short transition period when we still are testing DB notes and constantly deleting the file @@ -301,6 +315,36 @@ BSQL_PROTECT_DATUM(/datum/entity/player) return TRUE +/// Permanently bans this user, with the provided reason. The banner ([/datum/entity/player]) argument is optional, as this can be done without admin intervention. +/datum/entity/player/proc/add_perma_ban(reason, internal_reason, datum/entity/player/banner) + if(is_permabanned) + return FALSE + + is_permabanned = TRUE + permaban_date = "[time2text(world.realtime, "YYYY-MM-DD hh:mm:ss")]" + permaban_reason = reason + + if(banner) + permaban_admin_id = banner.id + message_admins("[key_name_admin(banner.owning_client)] has permanently banned [ckey] for '[reason]'.") + var/datum/tgs_chat_embed/field/reason_embed + if(internal_reason) + reason_embed = new("Permaban Reason", internal_reason) + important_message_external("[banner.owning_client] has permanently banned [ckey] for '[reason]'.", "Permaban Placed", reason_embed ? list(reason_embed) : null) + + add_note("Permanently banned | [reason]", FALSE, NOTE_ADMIN, TRUE) + if(internal_reason) + add_note("Internal reason: [internal_reason]", TRUE, NOTE_ADMIN) + + if(owning_client) + to_chat_forced(owning_client, SPAN_LARGE("You have been permanently banned by [banner.ckey].\nReason: [reason].")) + to_chat_forced(owning_client, SPAN_LARGE("This is a permanent ban. It will not be removed.")) + QDEL_NULL(owning_client) + + save() + + return TRUE + /datum/entity/player/proc/auto_unban() if(!is_time_banned) return @@ -321,20 +365,6 @@ BSQL_PROTECT_DATUM(/datum/entity/player) value.delete() job_bans -= value -/datum/entity/player/proc/load_refs() - if(refs_loaded) - return - while(!notes_loaded || !jobbans_loaded) - stoplag() - for(var/key in job_bans) - var/datum/entity/player_job_ban/value = job_bans[key] - if(istype(value)) - value.load_refs() - for(var/datum/entity/player_note/note in notes) - if(istype(note)) - note.load_refs() - refs_loaded = TRUE - /datum/entity_meta/player/on_read(datum/entity/player/player) player.job_bans = list() player.notes = list() @@ -391,7 +421,12 @@ BSQL_PROTECT_DATUM(/datum/entity/player) if(discord_link_id) discord_link = DB_ENTITY(/datum/entity/discord_link, discord_link_id) + if(whitelist_status) + var/list/whitelists = splittext(whitelist_status, "|") + for(var/whitelist in whitelists) + if(whitelist in GLOB.bitfields["whitelist_status"]) + whitelist_flags |= GLOB.bitfields["whitelist_status"]["[whitelist]"] /datum/entity/player/proc/on_read_notes(list/datum/entity/player_note/_notes) notes_loaded = TRUE @@ -424,6 +459,35 @@ BSQL_PROTECT_DATUM(/datum/entity/player) for(var/datum/entity/player_stat/S as anything in _stat) LAZYSET(stats, S.stat_id, S) +/datum/entity/player/proc/load_byond_account_age() + var/list/http_request = world.Export("http://byond.com/members/[ckey]?format=text") + if(!http_request) + log_admin("Could not check BYOND account age for [ckey] - no response from server.") + return + + var/body = file2text(http_request["CONTENT"]) + if(!body) + log_admin("Could not check BYOND account age for [ckey] - invalid response.") + return + + var/static/regex/regex = regex("joined = \"(\\d{4}-\\d{2}-\\d{2})\"") + if(!regex.Find(body)) + log_admin("Could not check BYOND account age for [ckey] - no valid date in response.") + return + + byond_account_age = regex.group[1] + +/datum/entity/player/proc/find_first_join_date() + var/list/triplets = search_login_triplet_by_ckey(ckey) + + if(!length(triplets)) + first_join_date = "UNKNOWN" + return + + var/datum/view_record/login_triplet/first_triplet = triplets[1] + first_join_date = first_triplet.login_date + + /proc/get_player_from_key(key) var/safe_key = ckey(key) if(!safe_key) @@ -445,61 +509,58 @@ BSQL_PROTECT_DATUM(/datum/entity/player) error("ALARM: MISMATCH. Loaded player data for client [ckey], player data ckey is [player.ckey], id: [player.id]") player_data = player player_data.owning_client = src + if(!player_data.last_login) + player_data.first_join_date = "[time2text(world.realtime, "YYYY-MM-DD hh:mm:ss")]" + if(!player_data.first_join_date) + player_data.find_first_join_date() player_data.last_login = "[time2text(world.realtime, "YYYY-MM-DD hh:mm:ss")]" player_data.last_known_ip = address player_data.last_known_cid = computer_id + if(!player_data.byond_account_age) + player_data.load_byond_account_age() player_data.save() record_login_triplet(player.ckey, address, computer_id) player_data.sync() -/datum/entity/player/proc/check_ban(computer_id, address) +/datum/entity/player/proc/check_ban(computer_id, address, is_telemetry) . = list() - var/list/linked_bans = check_for_sticky_ban(address, computer_id) - if(islist(linked_bans)) - var/datum/view_record/stickyban_list_view/SLW = LAZYACCESS(linked_bans, 1) - if(SLW) - var/reason = "" - - if(SLW.address == address) - reason += "IP Address Matches; " - if(SLW.computer_id == computer_id) - reason += "CID Matches; " - if(SLW.ckey == ckey) - reason += "Ckey Matches; " - - var/source_id = SLW.linked_stickyban - var/source_reason = SLW.linked_reason - var/source_ckey = SLW.linked_ckey - if(!source_id) - source_id = "[SLW.entry_id]" - source_reason = SLW.reason - source_ckey = SLW.ckey - - log_access("Failed Login: [ckey] [last_known_cid] [last_known_ip] - Stickybanned (Linked to [source_ckey]; Reason: [source_reason])") - message_admins("Failed Login: [ckey] (IP: [last_known_ip], CID: [last_known_cid]) - Stickybanned (Linked to ckey [source_ckey]; Reason: [source_reason])") - - DB_FILTER(/datum/entity/player_sticky_ban, - DB_AND( - DB_COMP("ckey", DB_EQUALS, ckey), - DB_COMP("address", DB_EQUALS, address), - DB_COMP("computer_id", DB_EQUALS, computer_id) - ), CALLBACK(src, PROC_REF(process_stickyban), address, computer_id, source_id, reason, null)) - - .["desc"] = "\nReason: Stickybanned\nExpires: PERMANENT" - .["reason"] = "ckey/id" - return . + var/list/datum/view_record/stickyban/all_stickies = SSstickyban.check_for_sticky_ban(ckey, address, computer_id) + + if(length(all_stickies)) + var/datum/view_record/stickyban/sticky = all_stickies[1] + + if(!is_telemetry) + log_access("Failed Login: [ckey] [last_known_cid] [last_known_ip] - Stickybanned (Reason: [sticky.reason])") + message_admins("Failed Login: [ckey] (IP: [last_known_ip], CID: [last_known_cid]) - Stickybanned (Reason: [sticky.reason])") + + var/appeal + if(CONFIG_GET(string/banappeals)) + appeal = "\nFor more information on your ban, or to appeal, head to [CONFIG_GET(string/banappeals)]" + + .["desc"] = "\nReason: Stickybanned - [sticky.message] Identifier: [sticky.identifier]\n[appeal]" + .["reason"] = "ckey/id" + + if(!is_telemetry) + SSstickyban.match_sticky(sticky.id, ckey, address, computer_id) + return + if(!is_time_banned && !is_permabanned) return null + var/appeal if(CONFIG_GET(string/banappeals)) appeal = "\nFor more information on your ban, or to appeal, head to [CONFIG_GET(string/banappeals)]" if(is_permabanned) - permaban_admin.sync() - log_access("Failed Login: [ckey] [last_known_cid] [last_known_ip] - Banned [permaban_reason]") - message_admins("Failed Login: [ckey] id:[last_known_cid] ip:[last_known_ip] - Banned [permaban_reason]") - .["desc"] = "\nReason: [permaban_reason]\nExpires: PERMANENT\nBy: [permaban_admin.ckey][appeal]" + var/banner = "Host" + if(permaban_admin_id) + var/datum/view_record/players/banning_admin = locate() in DB_VIEW(/datum/view_record/players, DB_COMP("id", DB_EQUALS, permaban_admin_id)) + banner = banning_admin.ckey + if(!is_telemetry) + log_access("Failed Login: [ckey] [last_known_cid] [last_known_ip] - Banned [permaban_reason]") + message_admins("Failed Login: [ckey] id:[last_known_cid] ip:[last_known_ip] - Banned [permaban_reason]") + .["desc"] = "\nReason: [permaban_reason]\nExpires: PERMANENT\nBy: [banner][appeal]" .["reason"] = "ckey/id" return . if(is_time_banned) @@ -514,8 +575,9 @@ BSQL_PROTECT_DATUM(/datum/entity/player) timeleftstring = "[round(time_left / 60, 0.1)] Hours" else timeleftstring = "[time_left] Minutes" - log_access("Failed Login: [ckey] [last_known_cid] [last_known_ip] - Banned [time_ban_reason]") - message_admins("Failed Login: [ckey] id:[last_known_cid] ip:[last_known_ip] - Banned [time_ban_reason]") + if(!is_telemetry) + log_access("Failed Login: [ckey] [last_known_cid] [last_known_ip] - Banned [time_ban_reason]") + message_admins("Failed Login: [ckey] id:[last_known_cid] ip:[last_known_ip] - Banned [time_ban_reason]") .["desc"] = "\nReason: [time_ban_reason]\nExpires: [timeleftstring]\nBy: [time_ban_admin.ckey][appeal]" .["reason"] = "ckey/id" return . @@ -544,14 +606,14 @@ BSQL_PROTECT_DATUM(/datum/entity/player) note.admin_rank = "N/A" note.date = I.timestamp var/list/splitting = splittext(I.content, "|") - if(splitting.len == 1) + if(length(splitting) == 1) note.text = I.content note.is_ban = FALSE - if(splitting.len == 3) + if(length(splitting) == 3) note.text = splitting[3] note.ban_time = text2num(replacetext(replacetext(splitting[2],"Duration: ","")," minutes","")) note.is_ban = TRUE - if(splitting.len == 2) + if(length(splitting) == 2) note.text = I.content note.is_ban = TRUE @@ -657,6 +719,23 @@ BSQL_PROTECT_DATUM(/datum/entity/player) stat.stat_number += num stat.save() +/datum/entity/player/proc/check_whitelist_status(flag_to_check) + if(whitelist_flags & flag_to_check) + return TRUE + + return FALSE + +/datum/entity/player/proc/set_whitelist_status(field_to_set) + whitelist_flags = field_to_set + + var/list/output = list() + for(var/bitfield in GLOB.bitfields["whitelist_status"]) + if(field_to_set & GLOB.bitfields["whitelist_status"]["[bitfield]"]) + output += bitfield + whitelist_status = output.Join("|") + + save() + /datum/entity_link/player_to_banning_admin parent_entity = /datum/entity/player child_entity = /datum/entity/player @@ -669,7 +748,6 @@ BSQL_PROTECT_DATUM(/datum/entity/player) parent_entity = /datum/entity/player child_entity = /datum/entity/player child_field = "permaban_admin_id" - parent_name = "permabanning_admin" /datum/view_record/players @@ -685,6 +763,7 @@ BSQL_PROTECT_DATUM(/datum/entity/player) var/last_known_cid var/last_known_ip var/discord_link_id + var/whitelist_status /datum/entity_view_meta/players root_record_type = /datum/entity/player @@ -702,4 +781,5 @@ BSQL_PROTECT_DATUM(/datum/entity/player) "last_known_ip", "last_known_cid", "discord_link_id", + "whitelist_status" ) diff --git a/code/datums/entities/player_sticky_ban.dm b/code/datums/entities/player_sticky_ban.dm index d79befddb04e..70715d1ce2f0 100644 --- a/code/datums/entities/player_sticky_ban.dm +++ b/code/datums/entities/player_sticky_ban.dm @@ -1,94 +1,133 @@ -/datum/entity/player_sticky_ban - var/player_id - var/admin_id +BSQL_PROTECT_DATUM(/datum/entity/stickyban) + +/datum/entity/stickyban + var/identifier var/reason + var/message var/date - var/ckey - var/address - var/computer_id - - var/linked_stickyban - -BSQL_PROTECT_DATUM(/datum/entity/player_sticky_ban) + var/active = TRUE + var/adminid -/datum/entity_meta/player_sticky_ban - entity_type = /datum/entity/player_sticky_ban - table_name = "player_sticky_bans" +/datum/entity_meta/stickyban + entity_type = /datum/entity/stickyban + table_name = "stickyban" field_types = list( - "player_id"=DB_FIELDTYPE_BIGINT, - "admin_id"=DB_FIELDTYPE_BIGINT, - "reason"=DB_FIELDTYPE_STRING_MAX, - "date"=DB_FIELDTYPE_STRING_LARGE, - "address"=DB_FIELDTYPE_STRING_LARGE, - "ckey" = DB_FIELDTYPE_STRING_LARGE, - "computer_id"=DB_FIELDTYPE_STRING_LARGE, - "linked_stickyban"=DB_FIELDTYPE_BIGINT, + "identifier" = DB_FIELDTYPE_STRING_LARGE, + "reason" = DB_FIELDTYPE_STRING_MAX, + "message" = DB_FIELDTYPE_STRING_MAX, + "date" = DB_FIELDTYPE_STRING_LARGE, + "active" = DB_FIELDTYPE_INT, + "adminid" = DB_FIELDTYPE_BIGINT, ) +/datum/view_record/stickyban + var/id + var/identifier + var/reason + var/message + var/date + var/active + var/admin -/datum/entity_link/linked_sticky_bans - parent_entity = /datum/entity/player_sticky_ban - child_entity = /datum/entity/player_sticky_ban - child_field = "linked_stickyban" - - parent_name = "linked_ban" - child_name = "linked_bans" - -/datum/entity_link/player_to_player_sticky_bans - parent_entity = /datum/entity/player - child_entity = /datum/entity/player_sticky_ban - child_field = "player_id" - - parent_name = "player" - child_name = "stickybans" +/datum/entity_view_meta/stickyban + root_record_type = /datum/entity/stickyban + destination_entity = /datum/view_record/stickyban + fields = list( + "id", + "identifier", + "reason", + "message", + "date", + "active", + "admin" = DB_CASE(DB_COMP("adminid", DB_ISNOT), "stickybanning_admin.ckey", DB_CONST("AdminBot")) + ) -/datum/entity_link/admin_to_player_sticky_bans +/datum/entity_link/stickyban_to_banning_admin parent_entity = /datum/entity/player - child_entity = /datum/entity/player_sticky_ban - child_field = "admin_id" + child_entity = /datum/entity/stickyban + child_field = "adminid" + parent_name = "stickybanning_admin" - parent_name = "admin" +/datum/entity/stickyban_matched_ckey + var/ckey + var/linked_stickyban + var/whitelisted = FALSE -/datum/view_record/stickyban_list_view - var/entry_id - var/player_id - var/admin_id +/datum/entity_meta/stickyban_matched_ckey + entity_type = /datum/entity/stickyban_matched_ckey + table_name = "stickyban_matched_ckey" + field_types = list( + "ckey" = DB_FIELDTYPE_STRING_LARGE, + "linked_stickyban" = DB_FIELDTYPE_BIGINT, + "whitelisted" = DB_FIELDTYPE_INT, + ) - var/reason - var/date - var/address - var/computer_id +/datum/view_record/stickyban_matched_ckey + var/id var/ckey + var/linked_stickyban var/whitelisted +/datum/entity_view_meta/stickyban_matched_ckey + root_record_type = /datum/entity/stickyban_matched_ckey + destination_entity = /datum/view_record/stickyban_matched_ckey + fields = list( + "id", + "ckey", + "linked_stickyban", + "whitelisted", + ) + + +/datum/entity/stickyban_matched_cid + var/cid var/linked_stickyban - var/linked_ckey - var/linked_reason - var/admin_ckey - var/linked_admin_ckey +/datum/entity_meta/stickyban_matched_cid + entity_type = /datum/entity/stickyban_matched_cid + table_name = "stickyban_matched_cid" + field_types = list( + "cid" = DB_FIELDTYPE_STRING_LARGE, + "linked_stickyban" = DB_FIELDTYPE_BIGINT, + ) +/datum/view_record/stickyban_matched_cid + var/id + var/cid + var/linked_stickyban -/datum/entity_view_meta/stickyban_list_view - root_record_type = /datum/entity/player_sticky_ban - destination_entity = /datum/view_record/stickyban_list_view +/datum/entity_view_meta/stickyban_matched_cid + root_record_type = /datum/entity/stickyban_matched_cid + destination_entity = /datum/view_record/stickyban_matched_cid fields = list( - "entry_id" = "id", - "player_id", - "admin_id", + "id", + "cid", + "linked_stickyban", + ) - "reason", - "date", - "address", - "computer_id", - "ckey" = "player.ckey", - "whitelisted" = "player.stickyban_whitelisted", - "linked_stickyban", - "linked_ckey" = "linked_ban.player.ckey", - "linked_reason" = "linked_ban.reason", +/datum/entity/stickyban_matched_ip + var/ip + var/linked_stickyban - "admin_ckey" = "admin.ckey", - "linked_admin_ckey" = "linked_ban.admin.ckey" +/datum/entity_meta/stickyban_matched_ip + entity_type = /datum/entity/stickyban_matched_ip + table_name = "stickyban_matched_ip" + field_types = list( + "ip" = DB_FIELDTYPE_STRING_LARGE, + "linked_stickyban" = DB_FIELDTYPE_BIGINT, + ) + +/datum/view_record/stickyban_matched_ip + var/id + var/ip + var/linked_stickyban + +/datum/entity_view_meta/stickyban_matched_ip + root_record_type = /datum/entity/stickyban_matched_ip + destination_entity = /datum/view_record/stickyban_matched_ip + fields = list( + "id", + "ip", + "linked_stickyban", ) - order_by = list("entry_id" = DB_ORDER_BY_DESC) diff --git a/code/datums/entities/player_times.dm b/code/datums/entities/player_times.dm index 2bbd4a3bc39e..4fc28ba2fa5e 100644 --- a/code/datums/entities/player_times.dm +++ b/code/datums/entities/player_times.dm @@ -61,7 +61,7 @@ BSQL_PROTECT_DATUM(/datum/entity/player_time) return list( "job" = role_id, "playtime" = round(total_minutes MINUTES_TO_HOURS, 0.1), - "bgcolor" = "rgb(0, [Floor(128 * playtime_percentage)], [Floor(255 * playtime_percentage)])", + "bgcolor" = "rgb(0, [floor(128 * playtime_percentage)], [floor(255 * playtime_percentage)])", "textcolor" = "#FFFFFF", "icondisplay" = icon_display ) diff --git a/code/datums/event_info_text.dm b/code/datums/event_info_text.dm index 5336c5abed9d..21469ed379cd 100644 --- a/code/datums/event_info_text.dm +++ b/code/datums/event_info_text.dm @@ -15,7 +15,6 @@ return if(msg == "") - to_chat(user, SPAN_WARNING("No [faction] custom event message has been found. Either no custom event is taking place, admin hasn't properly set this or deemed it unnecessary to be set.")) return var/dat diff --git a/code/datums/factions/uscm.dm b/code/datums/factions/uscm.dm index 0a9b0cff40b9..f7c49321f305 100644 --- a/code/datums/factions/uscm.dm +++ b/code/datums/factions/uscm.dm @@ -22,10 +22,11 @@ if(JOB_XO) marine_rk = "xo" if(JOB_CO) marine_rk = "co" if(JOB_GENERAL) marine_rk = "general" - if(JOB_PILOT) marine_rk = "po" + if(JOB_CAS_PILOT) marine_rk = "gp" + if(JOB_DROPSHIP_PILOT) marine_rk = "dp" + if(JOB_TANK_CREW) marine_rk = "tc" if(JOB_INTEL) marine_rk = "io" if(JOB_DROPSHIP_CREW_CHIEF) marine_rk = "dcc" - if(JOB_CREWMAN) marine_rk = "tc" if(JOB_MARINE_RAIDER) marine_rk = "soc" if(JOB_MARINE_RAIDER_SL) marine_rk = "soctl" if(JOB_MARINE_RAIDER_CMD) marine_rk = "soccmd" @@ -74,6 +75,9 @@ if(JOB_CO) marine_rk = "co" border_rk = "command" + if(JOB_USCM_OBSV) + marine_rk = "vo" + border_rk = "command" if(JOB_SO) marine_rk = "so" border_rk = "command" @@ -85,8 +89,10 @@ border_rk = "command" if(JOB_INTEL) marine_rk = "io" - if(JOB_PILOT) - marine_rk = "po" + if(JOB_CAS_PILOT) + marine_rk = "gp" + if(JOB_DROPSHIP_PILOT) + marine_rk = "dp" if(JOB_DROPSHIP_CREW_CHIEF) marine_rk = "dcc" if(JOB_CHIEF_POLICE) @@ -94,6 +100,8 @@ border_rk = "command" if(JOB_POLICE) marine_rk = "mp" + if(JOB_TANK_CREW) + marine_rk = "tc" if(JOB_WARDEN) marine_rk = "warden" border_rk = "command" diff --git a/code/datums/global_variables.dm b/code/datums/global_variables.dm index 953f42f1723f..24d32bbf3552 100644 --- a/code/datums/global_variables.dm +++ b/code/datums/global_variables.dm @@ -118,15 +118,11 @@ /client/proc/debug_global_variable(name, value, level) var/html = "" - var/change = 0 //to make the value bold if changed if(!(admin_holder.rights & R_DEBUG)) return html html += "
  • EC " - if(value != initial(global.vars[name])) - html += "" - change = 1 if (isnull(value)) html += "[name] = null" @@ -158,9 +154,9 @@ else if (istype(value, /list)) var/list/L = value - html += "[name] = /list ([L.len])" + html += "[name] = /list ([length(L)])" - if (L.len > 0 && !(name == "underlays" || name == "overlays" || name == "vars" || L.len > 500)) + if (length(L) > 0 && !(name == "underlays" || name == "overlays" || name == "vars" || length(L) > 500)) // not sure if this is completely right... html += "
      " var/index = 1 @@ -175,8 +171,6 @@ else html += "[name] = [value]" - if(change) - html += "" html += "" @@ -353,7 +347,6 @@ if(admin_holder && admin_holder.marked_datum) possible_classes += "marked datum" possible_classes += "edit referenced object" - possible_classes += "restore to default" class = tgui_input_list(usr, "What kind of variable?","Variable Type", possible_classes) if(!class) @@ -365,9 +358,6 @@ mod_list(global.vars[variable]) return - if("restore to default") - global.vars[variable] = initial(global.vars[variable]) - if("edit referenced object") return .(global.vars[variable]) diff --git a/code/datums/helper_datums/getrev.dm b/code/datums/helper_datums/getrev.dm index b7d528380a42..aa4665bda652 100644 --- a/code/datums/helper_datums/getrev.dm +++ b/code/datums/helper_datums/getrev.dm @@ -41,7 +41,7 @@ GLOBAL_DATUM_INIT(revdata, /datum/getrev, new) return msg.Join("\n") /datum/getrev/proc/GetTestMergeInfo(header = TRUE) - if(!testmerge.len) + if(!length(testmerge)) return "" . = header ? "The following pull requests are currently test merged:
      " : "" for(var/line in testmerge) @@ -70,7 +70,7 @@ GLOBAL_DATUM_INIT(revdata, /datum/getrev, new) var/pc = revdata.originmastercommit if(pc) msg += "Master commit: [pc]" - if(revdata.testmerge.len) + if(length(revdata.testmerge)) msg += revdata.GetTestMergeInfo() if(revdata.commit && revdata.commit != revdata.originmastercommit) msg += "Local commit: [revdata.commit]" diff --git a/code/datums/helper_datums/teleport.dm b/code/datums/helper_datums/teleport.dm index 207310ac34c5..2b283c978c3a 100644 --- a/code/datums/helper_datums/teleport.dm +++ b/code/datums/helper_datums/teleport.dm @@ -157,8 +157,8 @@ precision = rand(1,100) var/list/bagholding = teleatom.search_contents_for(/obj/item/storage/backpack/holding) - if(bagholding.len) - precision = max(rand(1,100)*bagholding.len,100) + if(length(bagholding)) + precision = max(rand(1,100)*length(bagholding),100) if(istype(teleatom, /mob/living)) var/mob/living/MM = teleatom to_chat(MM, SPAN_WARNING("The Bluespace interface on your Bag of Holding interferes with the teleport!")) @@ -177,7 +177,7 @@ teleatom.visible_message(SPAN_DANGER("[teleatom] bounces off of the portal!")) return 0 - if(is_admin_level(destination.z)) + if(should_block_game_interaction(destination)) if(length(teleatom.search_contents_for(/obj/item/storage/backpack/holding))) teleatom.visible_message(SPAN_DANGER("The Bag of Holding bounces off of the portal!")) return 0 diff --git a/code/datums/keybinding/human.dm b/code/datums/keybinding/human.dm index 6d7037eac398..810ee828880b 100644 --- a/code/datums/keybinding/human.dm +++ b/code/datums/keybinding/human.dm @@ -120,11 +120,18 @@ if(.) return + // Get the user's marine helmet (if they're wearing one) var/mob/living/carbon/human/human_user = user.mob - var/obj/item/clothing/head/helmet/marine/marine_helmet = human_user?.head - var/cycled_hud = marine_helmet?.cycle_huds(human_user) + var/obj/item/clothing/head/helmet/marine/marine_helmet = human_user.head + if(!istype(marine_helmet)) + // If their hat isn't a marine helmet, or is null, return. + return + + // Cycle the HUD on the helmet. + var/cycled_hud = marine_helmet.cycle_huds(human_user) + // Update the helmet's 'cycle hud' action button var/datum/action/item_action/cycle_helmet_huds/cycle_action = locate() in marine_helmet.actions - cycle_action.set_action_overlay(cycled_hud) + cycle_action?.set_action_overlay(cycled_hud) return TRUE diff --git a/code/datums/keybinding/mob.dm b/code/datums/keybinding/mob.dm index b7b83249b335..100f546ba590 100644 --- a/code/datums/keybinding/mob.dm +++ b/code/datums/keybinding/mob.dm @@ -2,16 +2,6 @@ category = CATEGORY_HUMAN weight = WEIGHT_MOB -/datum/keybinding/mob/down(client/user) - . = ..() - if(isobserver(user.mob)) - return TRUE - -/datum/keybinding/mob/up(client/user) - . = ..() - if(isobserver(user.mob)) - return TRUE - /datum/keybinding/mob/stop_pulling hotkey_keys = list("H", "Delete") classic_keys = list("Delete") @@ -83,7 +73,22 @@ user.mob.drop_held_item(I) return TRUE -/datum/keybinding/mob/target_head_cycle +// Parent type of the bodypart targeting keybinds +/datum/keybinding/mob/target + +/datum/keybinding/mob/target/down(client/user) + . = ..() + if(. || !user.mob) + return + + user.mob.select_body_zone(get_target_zone(user)) + return TRUE + +/// Returns the body zone which should be targeted when pressing this keybind. +/datum/keybinding/mob/target/proc/get_target_zone(client/user) + return + +/datum/keybinding/mob/target/head_cycle hotkey_keys = list("Numpad8") classic_keys = list("Numpad8") name = "target_head_cycle" @@ -91,14 +96,16 @@ description = "Pressing this key targets the head, and continued presses will cycle to the eyes and mouth. This will impact where you hit people, and can be used for surgery." keybind_signal = COMSIG_KB_MOB_TARGETCYCLEHEAD_DOWN -/datum/keybinding/mob/target_head_cycle/down(client/user) - . = ..() - if(.) - return - user.mob.a_select_zone("head", user) - return TRUE +/datum/keybinding/mob/target/head_cycle/get_target_zone(client/user) + switch(user.mob.zone_selected) + if("head") + return "eyes" + if("eyes") + return "mouth" + else // including if("mouth") + return "head" -/datum/keybinding/mob/target_r_arm +/datum/keybinding/mob/target/r_arm hotkey_keys = list("Numpad4") classic_keys = list("Numpad4") name = "target_r_arm" @@ -106,14 +113,12 @@ description = "Pressing this key targets the right arm. This will impact where you hit people, and can be used for surgery." keybind_signal = COMSIG_KB_MOB_TARGETRIGHTARM_DOWN -/datum/keybinding/mob/target_r_arm/down(client/user) - . = ..() - if(.) - return - user.mob.a_select_zone("rarm", user) - return TRUE +/datum/keybinding/mob/target/r_arm/get_target_zone(client/user) + if(user.mob.zone_selected == "r_arm") + return "r_hand" + return "r_arm" -/datum/keybinding/mob/target_body_chest +/datum/keybinding/mob/target/body_chest hotkey_keys = list("Numpad5") classic_keys = list("Numpad5") name = "target_body_chest" @@ -121,14 +126,10 @@ description = "Pressing this key targets the body. This will impact where you hit people, and can be used for surgery." keybind_signal = COMSIG_KB_MOB_TARGETBODYCHEST_DOWN -/datum/keybinding/mob/target_body_chest/down(client/user) - . = ..() - if(.) - return - user.mob.a_select_zone("chest", user) - return TRUE +/datum/keybinding/mob/target/body_chest/get_target_zone(client/user) + return "chest" -/datum/keybinding/mob/target_left_arm +/datum/keybinding/mob/target/left_arm hotkey_keys = list("Numpad6") classic_keys = list("Numpad6") name = "target_left_arm" @@ -136,14 +137,12 @@ description = "Pressing this key targets the body. This will impact where you hit people, and can be used for surgery." keybind_signal = COMSIG_KB_MOB_TARGETLEFTARM_DOWN -/datum/keybinding/mob/target_left_arm/down(client/user) - . = ..() - if(.) - return - user.mob.a_select_zone("larm", user) - return TRUE +/datum/keybinding/mob/target/left_arm/get_target_zone(client/user) + if(user.mob.zone_selected == "l_arm") + return "l_hand" + return "l_arm" -/datum/keybinding/mob/target_right_leg +/datum/keybinding/mob/target/right_leg hotkey_keys = list("Numpad1") classic_keys = list("Numpad1") name = "target_right_leg" @@ -151,14 +150,12 @@ description = "Pressing this key targets the right leg. This will impact where you hit people, and can be used for surgery." keybind_signal = COMSIG_KB_MOB_TARGETRIGHTLEG_DOWN -/datum/keybinding/mob/target_right_leg/down(client/user) - . = ..() - if(.) - return - user.mob.a_select_zone("rleg", user) - return TRUE +/datum/keybinding/mob/target/right_leg/get_target_zone(client/user) + if(user.mob.zone_selected == "r_leg") + return "r_foot" + return "r_leg" -/datum/keybinding/mob/target_body_groin +/datum/keybinding/mob/target/body_groin hotkey_keys = list("Numpad2") classic_keys = list("Numpad2") name = "target_body_groin" @@ -166,14 +163,10 @@ description = "Pressing this key targets the groin. This will impact where you hit people, and can be used for surgery." keybind_signal = COMSIG_KB_MOB_TARGETBODYGROIN_DOWN -/datum/keybinding/mob/target_body_groin/down(client/user) - . = ..() - if(.) - return - user.mob.a_select_zone("groin", user) - return TRUE +/datum/keybinding/mob/target/body_groin/get_target_zone(client/user) + return "groin" -/datum/keybinding/mob/target_left_leg +/datum/keybinding/mob/target/left_leg hotkey_keys = list("Numpad3") classic_keys = list("Numpad3") name = "target_left_leg" @@ -181,14 +174,12 @@ description = "Pressing this key targets the left leg. This will impact where you hit people, and can be used for surgery." keybind_signal = COMSIG_KB_MOB_TARGETLEFTLEG_DOWN -/datum/keybinding/mob/target_left_leg/down(client/user) - . = ..() - if(.) - return - user.mob.a_select_zone("lleg", user) - return TRUE +/datum/keybinding/mob/target/left_leg/get_target_zone(client/user) + if(user.mob.zone_selected == "l_leg") + return "l_foot" + return "l_leg" -/datum/keybinding/mob/target_next +/datum/keybinding/mob/target/next hotkey_keys = list("Numpad7") classic_keys = list("Numpad7") name = "target_next" @@ -196,14 +187,10 @@ description = "Pressing this key targets the next body part, cycling forward through all of them. This will impact where you hit people, and can be used for surgery." keybind_signal = COMSIG_KB_MOB_TARGETNEXT_DOWN -/datum/keybinding/mob/target_next/down(client/user) - . = ..() - if(.) - return - user.mob.a_select_zone("next", user) - return TRUE +/datum/keybinding/mob/target/next/get_target_zone(client/user) + return next_in_list(user.mob.zone_selected, DEFENSE_ZONES_LIVING) -/datum/keybinding/mob/target_prev +/datum/keybinding/mob/target/prev hotkey_keys = list("Numpad9") classic_keys = list("Numpad9") name = "target_prev" @@ -211,12 +198,8 @@ description = "Pressing this key targets the previous body part, cycling backward through all of them. This will impact where you hit people, and can be used for surgery." keybind_signal = COMSIG_KB_MOB_TARGETPREV_DOWN -/datum/keybinding/mob/target_prev/down(client/user) - . = ..() - if(.) - return - user.mob.a_select_zone("prev", user) - return TRUE +/datum/keybinding/mob/target/prev/get_target_zone(client/user) + return prev_in_list(user.mob.zone_selected, DEFENSE_ZONES_LIVING) /datum/keybinding/mob/prevent_movement hotkey_keys = list("Ctrl", "Alt") diff --git a/code/datums/keybinding/xenomorph.dm b/code/datums/keybinding/xenomorph.dm index 431b0a1e987f..64acd876b49f 100644 --- a/code/datums/keybinding/xenomorph.dm +++ b/code/datums/keybinding/xenomorph.dm @@ -189,21 +189,9 @@ . = ..() if(.) return - - var/mob/living/carbon/xenomorph/current_xeno = user?.mob - - if(!current_xeno?.hive) - return - - if((!current_xeno.hive.living_xeno_queen || SSmapping.configs[GROUND_MAP].map_name == MAP_WHISKEY_OUTPOST) && !current_xeno.hive.allow_no_queen_actions) //No Hive status on WO - to_chat(current_xeno, SPAN_WARNING("There is no Queen. You are alone.")) - return - - if(current_xeno.interference) - to_chat(current_xeno, SPAN_WARNING("A headhunter temporarily cut off your psychic connection!")) - return - - current_xeno.hive.hive_ui.open_hive_status(current_xeno) + var/mob/living/carbon/xenomorph/xeno = user.mob + xeno.hive_status() + return TRUE /datum/keybinding/xenomorph/hide hotkey_keys = list("Unbound") @@ -218,3 +206,18 @@ name = "evolve" full_name = "Evolve" keybind_signal = COMSIG_KB_XENO_EVOLVE + +/datum/keybinding/xenomorph/purchase_strain + hotkey_keys = list("Unbound") + classic_keys = list("Unbound") + name = "purchase_strain" + full_name = "Purchase Strain" + keybind_signal = COMSIG_KB_XENO_PURCHASE_STRAIN + +/datum/keybinding/xenomorph/purchase_strain/down(client/user) + . = ..() + if(.) + return + + var/mob/living/carbon/xenomorph/current_xeno = user?.mob + current_xeno.purchase_strain() diff --git a/code/datums/keybinding/yautja.dm b/code/datums/keybinding/yautja.dm index 4729db004582..c79788df49a3 100644 --- a/code/datums/keybinding/yautja.dm +++ b/code/datums/keybinding/yautja.dm @@ -30,16 +30,7 @@ classic_keys = list("Unbound") name = "pred_buy" full_name = "Claim equipment" - keybind_signal = COMSIG_KB_YAUTJA_BUTCHER - -/datum/keybinding/yautja/pred_buy/down(client/user) - . = ..() - if(.) - return - var/mob/living/carbon/human/H = user.mob - if(!isyautja(H)) - return - H.pred_buy() + keybind_signal = COMSIG_KB_YAUTJA_PRED_BUY /datum/keybinding/yautja/mark_panel hotkey_keys = list("Unbound") @@ -48,46 +39,12 @@ full_name = "Mark panel" keybind_signal = COMSIG_KB_YAUTJA_MARK_PANEL -/datum/keybinding/yautja/mark_panel/down(client/user) - . = ..() - if(.) - return - var/mob/living/carbon/human/H = user.mob - if(!isyautja(H)) - return - H.mark_panel() - /datum/keybinding/yautja/mark_for_hunt hotkey_keys = list("Unbound") classic_keys = list("Unbound") name = "mark_for_hunt" - full_name = "Mark for hunt" - keybind_signal = COMSIG_KB_YAUTJA_MARK_FOR_HUNT - -/datum/keybinding/yautja/mark_for_hunt/down(client/user) - . = ..() - if(.) - return - var/mob/living/carbon/human/H = user.mob - if(!isyautja(H)) - return - H.mark_for_hunt() - -/datum/keybinding/yautja/remove_from_hunt - hotkey_keys = list("Unbound") - classic_keys = list("Unbound") - name = "remove_from_hunt" - full_name = "Remove from hunt" - keybind_signal = COMSIG_KB_YAUTJA_REMOVE_FROM_HUNT - -/datum/keybinding/yautja/remove_from_hunt/down(client/user) - . = ..() - if(.) - return - var/mob/living/carbon/human/H = user.mob - if(!isyautja(H)) - return - H.remove_from_hunt() + full_name = "Toggle mark for hunt" + keybind_signal = COMSIG_KB_YAUTJA_TOGGLE_MARK_FOR_HUNT // BRACER SPECIFIC \\ @@ -168,22 +125,6 @@ full_name = "Toggle wristblades" keybind_signal = COMSIG_KB_YAUTJA_WRISTBLADES -/datum/keybinding/yautja/bracer_hunter/wristblades/down(client/user) - . = ..() - if(.) - return - var/mob/living/carbon/human/H = user.mob - - var/obj/item/clothing/gloves/yautja/hunter/gloves = H.gloves - if(istype(gloves)) - gloves.wristblades() - return TRUE - - var/obj/item/clothing/gloves/yautja/hunter/held = H.get_held_item() - if(istype(held)) - held.wristblades() - return TRUE - /datum/keybinding/yautja/bracer_hunter/track_gear hotkey_keys = list("Unbound") classic_keys = list("Unbound") @@ -214,22 +155,6 @@ full_name = "Toggle cloak" keybind_signal = COMSIG_KB_YAUTJA_CLOAKER -/datum/keybinding/yautja/bracer_hunter/cloaker/down(client/user) - . = ..() - if(.) - return - var/mob/living/carbon/human/H = user.mob - - var/obj/item/clothing/gloves/yautja/hunter/gloves = H.gloves - if(istype(gloves)) - gloves.cloaker() - return TRUE - - var/obj/item/clothing/gloves/yautja/hunter/held = H.get_held_item() - if(istype(held)) - held.cloaker() - return TRUE - /datum/keybinding/yautja/bracer_hunter/caster hotkey_keys = list("Unbound") classic_keys = list("Unbound") @@ -237,22 +162,6 @@ full_name = "Toggle plasma caster" keybind_signal = COMSIG_KB_YAUTJA_CASTER -/datum/keybinding/yautja/bracer_hunter/caster/down(client/user) - . = ..() - if(.) - return - var/mob/living/carbon/human/H = user.mob - - var/obj/item/clothing/gloves/yautja/hunter/gloves = H.gloves - if(istype(gloves)) - gloves.caster() - return TRUE - - var/obj/item/clothing/gloves/yautja/hunter/held = H.get_held_item() - if(istype(held)) - held.caster() - return TRUE - /datum/keybinding/yautja/bracer_hunter/change_explosion_type hotkey_keys = list("Unbound") classic_keys = list("Unbound") @@ -283,22 +192,6 @@ full_name = "Self-destruct" keybind_signal = COMSIG_KB_YAUTJA_ACTIVATE_SUICIDE -/datum/keybinding/yautja/bracer_hunter/activate_suicide/down(client/user) - . = ..() - if(.) - return - var/mob/living/carbon/human/H = user.mob - - var/obj/item/clothing/gloves/yautja/hunter/gloves = H.gloves - if(istype(gloves)) - gloves.activate_suicide() - return TRUE - - var/obj/item/clothing/gloves/yautja/hunter/held = H.get_held_item() - if(istype(held)) - held.activate_suicide() - return TRUE - /datum/keybinding/yautja/bracer_hunter/injectors hotkey_keys = list("Unbound") classic_keys = list("Unbound") @@ -306,21 +199,6 @@ full_name = "Create Stabilising Crystal" keybind_signal = COMSIG_KB_YAUTJA_INJECTORS -/datum/keybinding/yautja/bracer_hunter/injectors/down(client/user) - . = ..() - if(.) - return - var/mob/living/carbon/human/H = user.mob - - var/obj/item/clothing/gloves/yautja/hunter/gloves = H.gloves - if(istype(gloves)) - gloves.injectors() - return TRUE - - var/obj/item/clothing/gloves/yautja/hunter/held = H.get_held_item() - if(istype(held)) - held.injectors() - return TRUE /datum/keybinding/yautja/bracer_hunter/healing_capsule hotkey_keys = list("Unbound") classic_keys = list("Unbound") @@ -328,22 +206,6 @@ full_name = "Create Healing Capsule" keybind_signal = COMSIG_KB_YAUTJA_CAPSULE -/datum/keybinding/yautja/bracer_hunter/healing_capsule/down(client/user) - . = ..() - if(.) - return - var/mob/living/carbon/human/H = user.mob - - var/obj/item/clothing/gloves/yautja/hunter/gloves = H.gloves - if(istype(gloves)) - gloves.healing_capsule() - return TRUE - - var/obj/item/clothing/gloves/yautja/hunter/held = H.get_held_item() - if(istype(held)) - held.healing_capsule() - return TRUE - /datum/keybinding/yautja/bracer_hunter/call_disc hotkey_keys = list("Unbound") classic_keys = list("Unbound") @@ -351,22 +213,6 @@ full_name = "Call smart-disc" keybind_signal = COMSIG_KB_YAUTJA_CALL_DISC -/datum/keybinding/yautja/bracer_hunter/call_disc/down(client/user) - . = ..() - if(.) - return - var/mob/living/carbon/human/H = user.mob - - var/obj/item/clothing/gloves/yautja/hunter/gloves = H.gloves - if(istype(gloves)) - gloves.call_disc() - return TRUE - - var/obj/item/clothing/gloves/yautja/hunter/held = H.get_held_item() - if(istype(held)) - held.call_disc() - return TRUE - /datum/keybinding/yautja/bracer_hunter/remove_tracked_item hotkey_keys = list("Unbound") classic_keys = list("Unbound") @@ -420,22 +266,6 @@ full_name = "Yank combi-stick" keybind_signal = COMSIG_KB_YAUTJA_CALL_COMBI -/datum/keybinding/yautja/bracer_hunter/call_combi/down(client/user) - . = ..() - if(.) - return - var/mob/living/carbon/human/H = user.mob - - var/obj/item/clothing/gloves/yautja/hunter/gloves = H.gloves - if(istype(gloves)) - gloves.call_combi() - return TRUE - - var/obj/item/clothing/gloves/yautja/hunter/held = H.get_held_item() - if(istype(held)) - held.call_combi() - return TRUE - /datum/keybinding/yautja/bracer_hunter/translate hotkey_keys = list("Unbound") classic_keys = list("Unbound") @@ -443,22 +273,6 @@ full_name = "Translator" keybind_signal = COMSIG_KB_YAUTJA_TRANSLATE -/datum/keybinding/yautja/bracer_hunter/translate/down(client/user) - . = ..() - if(.) - return - var/mob/living/carbon/human/H = user.mob - - var/obj/item/clothing/gloves/yautja/hunter/gloves = H.gloves - if(istype(gloves)) - gloves.translate() - return TRUE - - var/obj/item/clothing/gloves/yautja/hunter/held = H.get_held_item() - if(istype(held)) - held.translate() - return TRUE - /datum/keybinding/yautja/bracer_hunter/bracername hotkey_keys = list("Unbound") classic_keys = list("Unbound") @@ -528,6 +342,13 @@ held.link_bracer() return TRUE +/datum/keybinding/yautja/bracer_hunter/control_falcon_drone + hotkey_keys = list("Unbound") + classic_keys = list("Unbound") + name = "control_falcon" + full_name = "Control falcon drone" + keybind_signal = COMSIG_KB_YAUTJA_CONTROL_FALCON + // Misc stuff - mask, teleporter \\ // mask @@ -545,32 +366,14 @@ classic_keys = list("Unbound") name = "toggle_zoom" full_name = "Toggle mask zoom" - keybind_signal = COMSIG_KB_YAUTJA_LINK_BRACER - -/datum/keybinding/yautja/mask/toggle_zoom/down(client/user) - . = ..() - if(.) - return - var/mob/living/carbon/human/H = user.mob - var/obj/item/clothing/mask/gas/yautja/mask = H.wear_mask - mask.toggle_zoom() - return TRUE + keybind_signal = COMSIG_KB_YAUTJA_MASK_TOGGLE_ZOOM /datum/keybinding/yautja/mask/togglesight hotkey_keys = list("Unbound") classic_keys = list("Unbound") name = "togglesight" full_name = "Toggle mask visors" - keybind_signal = COMSIG_KB_YAUTJA_LINK_BRACER - -/datum/keybinding/yautja/mask/togglesight/down(client/user) - . = ..() - if(.) - return - var/mob/living/carbon/human/H = user.mob - var/obj/item/clothing/mask/gas/yautja/mask = H.wear_mask - mask.togglesight() - return TRUE + keybind_signal = COMSIG_KB_YAUTJA_MASK_TOGGLESIGHT // teleporter diff --git a/code/datums/langchat/langchat.dm b/code/datums/langchat/langchat.dm index 83b9be0ac053..b82b03b51774 100644 --- a/code/datums/langchat/langchat.dm +++ b/code/datums/langchat/langchat.dm @@ -47,12 +47,12 @@ M.client.images -= langchat_image langchat_listeners = null -/atom/proc/langchat_set_x_offset() - langchat_image.maptext_x = world.icon_size / 2 - langchat_image.maptext_width / 2 -/atom/movable/langchat_set_x_offset() - langchat_image.maptext_x = bound_width / 2 - langchat_image.maptext_width / 2 -/mob/langchat_set_x_offset() - langchat_image.maptext_x = icon_size / 2 - langchat_image.maptext_width / 2 +/atom/proc/get_maxptext_x_offset(image/maptext_image) + return (world.icon_size / 2) - (maptext_image.maptext_width / 2) +/atom/movable/get_maxptext_x_offset(image/maptext_image) + return (bound_width / 2) - (maptext_image.maptext_width / 2) +/mob/get_maxptext_x_offset(image/maptext_image) + return (icon_size / 2) - (maptext_image.maptext_width / 2) ///Creates the image if one does not exist, resets settings that are modified by speech procs. /atom/proc/langchat_make_image(override_color = null) @@ -64,7 +64,7 @@ langchat_image.maptext_y = langchat_height langchat_image.maptext_height = 64 langchat_image.maptext_y -= LANGCHAT_MESSAGE_POP_Y_SINK - langchat_set_x_offset() + langchat_image.maptext_x = get_maxptext_x_offset(langchat_image) langchat_image.pixel_y = 0 langchat_image.alpha = 0 @@ -109,7 +109,7 @@ langchat_image.maptext = text_to_display langchat_image.maptext_width = LANGCHAT_WIDTH - langchat_set_x_offset() + langchat_image.maptext_x = get_maxptext_x_offset(langchat_image) langchat_listeners = listeners for(var/mob/M in langchat_listeners) @@ -156,7 +156,7 @@ langchat_image.maptext = text_to_display langchat_image.maptext_width = LANGCHAT_WIDTH * 2 - langchat_set_x_offset() + langchat_image.maptext_x = get_maxptext_x_offset(langchat_image) langchat_listeners = listeners for(var/mob/M in langchat_listeners) diff --git a/code/datums/lazy_template.dm b/code/datums/lazy_template.dm new file mode 100644 index 000000000000..03715cbd80b8 --- /dev/null +++ b/code/datums/lazy_template.dm @@ -0,0 +1,98 @@ + +/** + * Datum used to designate certain areas that do not need to exist nor be loaded at world start + * but do want to be loaded under certain circumstances. Use this for stuff like the nukie base or wizden, aka stuff that only matters when their antag is rolled. + */ +/datum/lazy_template + var/list/datum/turf_reservation/reservations = list() + + /// If this is true each load will increment an index keyed to the type and it will load [map_name]_[index] + var/uses_multiple_allocations = FALSE + + /// Directory of maps to prefix to the filename + var/map_dir = "maps/templates/lazy_templates" + + /// The filename (without extension) of the map to load + var/map_name + +/datum/lazy_template/New() + reservations = list() + ..() + +/datum/lazy_template/Destroy(force) + if(!force) + stack_trace("Something is trying to delete [type]") + return QDEL_HINT_LETMELIVE + + QDEL_LIST(reservations) + GLOB.lazy_templates -= type + return ..() + +/** + * Does the grunt work of loading the template. + */ +/datum/lazy_template/proc/lazy_load() + RETURN_TYPE(/datum/turf_reservation) + // This is a static assosciative list that is used to ensure maps that have variations are correctly varied when spawned + // I want to make it to where you can make a range and it'll randomly pick'n'take from the available versions at random + // But that can be done later when I have the time + var/static/list/multiple_allocation_hash = list() + + var/load_path = "[map_dir]/[map_name].dmm" + if(uses_multiple_allocations) + var/times = multiple_allocation_hash[type] || 0 + times += 1 + multiple_allocation_hash[type] = times + load_path = "[map_dir]/[map_name]_[times].dmm" + + if(!load_path || !fexists(load_path)) + CRASH("lazy template [type] has an invalid load_path: '[load_path]', check directory and map name!") + + var/datum/parsed_map/parsed_template = load_map( + file(load_path), + measure_only = TRUE, + ) + if(isnull(parsed_template.parsed_bounds)) + CRASH("Failed to cache lazy template for loading: '[type]'") + + var/width = parsed_template.parsed_bounds[MAP_MAXX] - parsed_template.parsed_bounds[MAP_MINX] + 1 + var/height = parsed_template.parsed_bounds[MAP_MAXY] - parsed_template.parsed_bounds[MAP_MINY] + 1 + var/datum/turf_reservation/reservation = SSmapping.request_turf_block_reservation( + width, + height, + parsed_template.parsed_bounds[MAP_MAXZ], + ) + if(!reservation) + CRASH("Failed to reserve a block for lazy template: '[type]'") + + // lists kept for overall loading + var/list/loaded_atom_movables = list() + var/list/loaded_turfs = list() + var/list/loaded_areas = list() + + for(var/z_idx in parsed_template.parsed_bounds[MAP_MAXZ] to 1 step -1) + var/turf/bottom_left = reservation.bottom_left_turfs[z_idx] + var/turf/top_right = reservation.top_right_turfs[z_idx] + + load_map( + file(load_path), + bottom_left.x, + bottom_left.y, + bottom_left.z, + z_upper = z_idx, + z_lower = z_idx, + ) + for(var/turf/turf as anything in block(bottom_left, top_right)) + loaded_turfs += turf + loaded_areas |= get_area(turf) + + // atoms can actually be in the contents of two or more turfs based on its icon/bound size + // see https://www.byond.com/docs/ref/index.html#/atom/var/contents + for(var/thing in (turf.get_all_contents() - turf)) + loaded_atom_movables |= thing + + SSatoms.InitializeAtoms(loaded_areas + loaded_atom_movables + loaded_turfs) + + SEND_SIGNAL(src, COMSIG_LAZY_TEMPLATE_LOADED, loaded_atom_movables, loaded_turfs, loaded_areas) + reservations += reservation + return reservation diff --git a/code/datums/map_config.dm b/code/datums/map_config.dm index 3bf5c601cec9..fc527f07a9e0 100644 --- a/code/datums/map_config.dm +++ b/code/datums/map_config.dm @@ -65,7 +65,7 @@ var/nightmare_path - /// If truthy this is config for a round overriden map: search for override maps in data/, instead of using a path in maps/ + /// If truthy this is config for a round overridden map: search for override maps in data/, instead of using a path in maps/ var/override_map /datum/map_config/New() @@ -83,18 +83,20 @@ /datum/equipment_preset/synth/survivor/medical_synth, /datum/equipment_preset/synth/survivor/emt_synth, /datum/equipment_preset/synth/survivor/scientist_synth, + /datum/equipment_preset/synth/survivor/archaeologist_synth, /datum/equipment_preset/synth/survivor/engineer_synth, - /datum/equipment_preset/synth/survivor/janitor_synth, /datum/equipment_preset/synth/survivor/chef_synth, /datum/equipment_preset/synth/survivor/teacher_synth, + /datum/equipment_preset/synth/survivor/surveyor_synth, /datum/equipment_preset/synth/survivor/freelancer_synth, /datum/equipment_preset/synth/survivor/trucker_synth, /datum/equipment_preset/synth/survivor/bartender_synth, - /datum/equipment_preset/synth/survivor/detective_synth, + /datum/equipment_preset/synth/survivor/atc_synth, /datum/equipment_preset/synth/survivor/cmb_synth, /datum/equipment_preset/synth/survivor/wy/security_synth, /datum/equipment_preset/synth/survivor/wy/protection_synth, /datum/equipment_preset/synth/survivor/wy/corporate_synth, + /datum/equipment_preset/synth/survivor/icc_synth, /datum/equipment_preset/synth/survivor/radiation_synth, ) diff --git a/code/datums/matrix_editor.dm b/code/datums/matrix_editor.dm index 8e064d76db7b..c31720014d45 100644 --- a/code/datums/matrix_editor.dm +++ b/code/datums/matrix_editor.dm @@ -72,11 +72,11 @@ if(!elements_str) return var/list/elements = splittext(elements_str, ",") - if(elements.len != 6) - to_chat(usr, "When creating a custom matrix, explicitly provide all 6 elements! Only [elements.len] were provided.") + if(length(elements) != 6) + to_chat(usr, "When creating a custom matrix, explicitly provide all 6 elements! Only [length(elements)] were provided.") return - for(var/i = 1 to elements.len) + for(var/i = 1 to length(elements)) var/num_ver = text2num(elements[i]) if(isnull(num_ver)) to_chat(usr, "Failed to convert element #[i] ([elements[i]]) to a number.") diff --git a/code/datums/medal_awards.dm b/code/datums/medal_awards.dm index 54af48fd3345..15152a8179a4 100644 --- a/code/datums/medal_awards.dm +++ b/code/datums/medal_awards.dm @@ -11,6 +11,7 @@ GLOBAL_LIST_EMPTY(medal_awards) GLOBAL_LIST_EMPTY(jelly_awards) +GLOBAL_LIST_EMPTY(medal_recommendations) /datum/recipient_awards var/list/medal_names @@ -35,6 +36,7 @@ GLOBAL_LIST_EMPTY(jelly_awards) giver_mob = list() giver_ckey = list() +GLOBAL_LIST_INIT(human_medals, list(MARINE_CONDUCT_MEDAL, MARINE_BRONZE_HEART_MEDAL, MARINE_VALOR_MEDAL, MARINE_HEROISM_MEDAL)) /proc/give_medal_award(medal_location, as_admin = FALSE) if(as_admin && !check_rights(R_ADMIN)) @@ -52,7 +54,7 @@ GLOBAL_LIST_EMPTY(jelly_awards) return FALSE // Pick a medal - var/medal_type = tgui_input_list(usr, "What type of medal do you want to award?", "Medal Type", list(MARINE_CONDUCT_MEDAL, MARINE_BRONZE_HEART_MEDAL, MARINE_VALOR_MEDAL, MARINE_HEROISM_MEDAL)) + var/medal_type = tgui_input_list(usr, "What type of medal do you want to award?", "Medal Type", GLOB.human_medals) if(!medal_type) return FALSE @@ -129,16 +131,17 @@ GLOBAL_LIST_EMPTY(jelly_awards) // Create an actual medal item if(medal_location) + var/turf/turf_location = get_turf(medal_location) var/obj/item/clothing/accessory/medal/medal switch(medal_type) if(MARINE_CONDUCT_MEDAL) - medal = new /obj/item/clothing/accessory/medal/bronze/conduct(medal_location) + medal = new /obj/item/clothing/accessory/medal/bronze/conduct(turf_location) if(MARINE_BRONZE_HEART_MEDAL) - medal = new /obj/item/clothing/accessory/medal/bronze/heart(medal_location) + medal = new /obj/item/clothing/accessory/medal/bronze/heart(turf_location) if(MARINE_VALOR_MEDAL) - medal = new /obj/item/clothing/accessory/medal/silver/valor(medal_location) + medal = new /obj/item/clothing/accessory/medal/silver/valor(turf_location) if(MARINE_HEROISM_MEDAL) - medal = new /obj/item/clothing/accessory/medal/gold/heroism(medal_location) + medal = new /obj/item/clothing/accessory/medal/gold/heroism(turf_location) else return FALSE medal.recipient_name = chosen_recipient @@ -159,13 +162,106 @@ GLOBAL_LIST_EMPTY(jelly_awards) return TRUE -/proc/print_medal(mob/living/carbon/human/user, obj/printer) - var/obj/item/card/id/card = user.wear_id +/proc/give_medal_award_prefilled(medal_location, mob/giving_mob, chosen_recipient, recipient_rank, recipient_ckey, reason, _medal_type) + var/list/recipient_ranks = list() + for(var/datum/data/record/record in GLOB.data_core.general) + var/recipient_name = record.fields["name"] + recipient_ranks[recipient_name] = record.fields["rank"] + + if(!chosen_recipient) + return FALSE + + // Pick a medal + var/medal_type = _medal_type + if(!medal_type) + return FALSE + + // Write a citation + var/citation = strip_html(reason) + if(!citation) + return FALSE + + // Get mob information + var/posthumous = TRUE + var/mob/recipient_mob + var/found_other = FALSE + + for(var/mob/mob in GLOB.mob_list) + if(mob.real_name == chosen_recipient) + // Recipient: Check if they are dead, and get some info + // We might not get this info if gibbed, so we'd need to refactor again and find another way if we want stats always correct + if(isliving(mob) && mob.stat != DEAD) + posthumous = FALSE + recipient_mob = mob + if(found_other) + break + found_other = TRUE + if(!recipient_mob) + for(var/mob/mob in GLOB.dead_mob_list) + if(mob.real_name == chosen_recipient) + // Recipient: Check if they are dead?, and get some info + // We might not get this info if gibbed, so we'd need to refactor again and find another way if we want stats always correct + if(isliving(mob) && mob.stat != DEAD) + posthumous = FALSE + recipient_mob = mob + break + + // Create the recipient_award + if(!GLOB.medal_awards[chosen_recipient]) + GLOB.medal_awards[chosen_recipient] = new /datum/recipient_awards() + var/datum/recipient_awards/recipient_award = GLOB.medal_awards[chosen_recipient] + recipient_award.recipient_rank = recipient_rank + recipient_award.recipient_ckey = recipient_ckey + recipient_award.recipient_mob = recipient_mob + recipient_award.giver_mob += giving_mob + recipient_award.medal_names += medal_type + recipient_award.medal_citations += citation + recipient_award.posthumous += posthumous + recipient_award.giver_ckey += giving_mob.ckey + + recipient_award.giver_rank += recipient_ranks[giving_mob.real_name] // Currently not used in marine award message + recipient_award.giver_name += giving_mob.real_name // Currently not used in marine award message + + // Create an actual medal item + if(medal_location) + var/turf/turf_location = get_turf(medal_location) + var/obj/item/clothing/accessory/medal/medal + switch(medal_type) + if(MARINE_CONDUCT_MEDAL) + medal = new /obj/item/clothing/accessory/medal/bronze/conduct(turf_location) + if(MARINE_BRONZE_HEART_MEDAL) + medal = new /obj/item/clothing/accessory/medal/bronze/heart(turf_location) + if(MARINE_VALOR_MEDAL) + medal = new /obj/item/clothing/accessory/medal/silver/valor(turf_location) + if(MARINE_HEROISM_MEDAL) + medal = new /obj/item/clothing/accessory/medal/gold/heroism(turf_location) + else + return FALSE + medal.recipient_name = chosen_recipient + medal.medal_citation = citation + medal.recipient_rank = recipient_rank + recipient_award.medal_items += medal + else + recipient_award.medal_items += null + + // Recipient: Add the medal to the player's stats + if(recipient_ckey) + var/datum/entity/player_entity/recipient_player = setup_player_entity(recipient_ckey) + if(recipient_player) + recipient_player.track_medal_earned(medal_type, recipient_mob, recipient_rank, citation, giving_mob) + + // Inform staff of success + message_admins("[key_name_admin(giving_mob)] awarded a [medal_type] to [chosen_recipient] for: \'[citation]\'.") + + return TRUE + +/proc/open_medal_panel(mob/living/carbon/human/user, obj/printer) + var/obj/item/card/id/card = user?.get_idcard() if(!card) to_chat(user, SPAN_WARNING("You must have an authenticated ID Card to award medals.")) return - if(!((card.paygrade in GLOB.co_paygrades) || (card.paygrade in GLOB.highcom_paygrades))) + if(!((card.paygrade in GLOB.co_paygrades) || (card.paygrade in GLOB.uscm_highcom_paygrades))) to_chat(user, SPAN_WARNING("Only a Senior Officer can award medals!")) return @@ -173,14 +269,15 @@ GLOBAL_LIST_EMPTY(jelly_awards) user.visible_message("ERROR: ID card not registered in USCM registry. Potential medal fraud detected.") return - var/real_owner_ref = card.registered_ref - - if(real_owner_ref != WEAKREF(user)) + if(!card.check_biometrics(user)) user.visible_message("ERROR: ID card not registered for [user.real_name] in USCM registry. Potential medal fraud detected.") return - if(give_medal_award(get_turf(printer))) - user.visible_message(SPAN_NOTICE("[printer] prints a medal.")) + GLOB.ic_medals_panel.user_locs[WEAKREF(user)] = WEAKREF(printer) + GLOB.ic_medals_panel.tgui_interact(user) + + +GLOBAL_LIST_INIT(xeno_medals, list(XENO_SLAUGHTER_MEDAL, XENO_RESILIENCE_MEDAL, XENO_SABOTAGE_MEDAL, XENO_PROLIFERATION_MEDAL, XENO_REJUVENATION_MEDAL)) /proc/give_jelly_award(datum/hive_status/hive, as_admin = FALSE) if(!hive) @@ -194,23 +291,21 @@ GLOBAL_LIST_EMPTY(jelly_awards) var/list/recipient_castes = list() var/list/recipient_mobs = list() for(var/mob/living/carbon/xenomorph/xeno in hive.totalXenos) - if (xeno.persistent_ckey == usr.persistent_ckey) // Don't award self - continue - if (xeno.tier == 0) // Don't award larva or facehuggers - continue - if (!as_admin && istype(xeno.caste, /datum/caste_datum/queen)) // Don't award queens unless admin + if(xeno.persistent_ckey == usr.persistent_ckey) // Don't award self continue + if(xeno.tier == 0) // Don't award larva or facehuggers + if(!as_admin || !isqueen(xeno)) // Don't award queens unless admin (She is tier 0 for whatever reason) + continue var/recipient_name = xeno.real_name recipient_castes[recipient_name] = xeno.caste_type recipient_mobs[recipient_name] = xeno possible_recipients += recipient_name for(var/mob/living/carbon/xenomorph/xeno in hive.total_dead_xenos) - if (xeno.persistent_ckey == usr.persistent_ckey) // Don't award previous selves - continue - if (xeno.tier == 0) // Don't award larva or facehuggers - continue - if (!as_admin && istype(xeno.caste, /datum/caste_datum/queen)) // Don't award previous queens unless admin + if(xeno.persistent_ckey == usr.persistent_ckey) // Don't award previous selves continue + if(xeno.tier == 0) // Don't award larva or facehuggers + if(!as_admin || !isqueen(xeno)) // Don't award queens unless admin (She is tier 0 for whatever reason) + continue var/recipient_name = xeno.real_name recipient_castes[recipient_name] = xeno.caste_type recipient_mobs[recipient_name] = xeno @@ -220,7 +315,7 @@ GLOBAL_LIST_EMPTY(jelly_awards) return FALSE // Pick a jelly - var/medal_type = tgui_input_list(usr, "What type of jelly do you want to award?", "Jelly Type", list(XENO_SLAUGHTER_MEDAL, XENO_RESILIENCE_MEDAL, XENO_SABOTAGE_MEDAL, XENO_PROLIFERATION_MEDAL, XENO_REJUVENATION_MEDAL), theme="hive_status") + var/medal_type = tgui_input_list(usr, "What type of jelly do you want to award?", "Jelly Type", GLOB.xeno_medals, theme="hive_status") if(!medal_type) return FALSE @@ -307,7 +402,7 @@ GLOBAL_LIST_EMPTY(jelly_awards) to_chat(usr, "Error: Could not find the [is_marine_medal ? "marine" : "xeno"] awards for '[recipient_name]'!") return FALSE - if(index < 1 || index > recipient_award.medal_names.len) + if(index < 1 || index > length(recipient_award.medal_names)) to_chat(usr, "Error: Index [index] is out of bounds!") return FALSE @@ -334,7 +429,7 @@ GLOBAL_LIST_EMPTY(jelly_awards) // Either entirely delete the award from the list, or just remove the entry if there are multiple var/medal_type = recipient_award.medal_names[index] var/citation = recipient_award.medal_citations[index] - if(recipient_award.medal_names.len == 1) + if(length(recipient_award.medal_names) == 1) if(is_marine_medal) GLOB.medal_awards.Remove(recipient_name) else @@ -363,3 +458,204 @@ GLOBAL_LIST_EMPTY(jelly_awards) message_admins("[key_name_admin(usr)] deleted [recipient_name]'s [medal_type] for: \'[citation]\'.") return TRUE + +/datum/medal_recommendation + var/recipient_rank + var/recipient_ckey + var/recipient_name + var/recommended_by_name + var/recommended_by_ckey + var/reason + var/recommended_by_rank + + +/proc/add_medal_recommendation(mob/recommendation_giver) + // Pick a marine + var/list/possible_recipients = list() + var/list/recipient_ranks = list() + for(var/datum/data/record/record in GLOB.data_core.general) + var/recipient_name = record.fields["name"] + if(recipient_name == recommendation_giver.real_name) + continue + recipient_ranks[recipient_name] = record.fields["rank"] + possible_recipients += recipient_name + if(length(possible_recipients) == 0) + to_chat(recommendation_giver, SPAN_WARNING("It's not possible to give medals when the ship is empty. Tough luck, partner...")) + return FALSE + + var/chosen_recipient = tgui_input_list(recommendation_giver, "Who do you want to recommend a medal for?", "Medal Recommendation", possible_recipients) + if(!chosen_recipient) + return FALSE + + // Write a citation + var/reason = strip_html(tgui_input_text(recommendation_giver, "Why does this person deserve a medal?", "Medal Recommendation", null, MAX_PAPER_MESSAGE_LEN, TRUE), MAX_PAPER_MESSAGE_LEN) + if(!reason) + return FALSE + + // Get mob information + var/recipient_rank = recipient_ranks[chosen_recipient] + var/recipient_ckey + var/mob/recipient_mob + var/found_other = FALSE + + for(var/mob/mob in GLOB.mob_list) + if(mob.real_name == chosen_recipient) + // We might not get this info if gibbed, so we'd need to refactor again and find another way if we want stats always correct + recipient_ckey = mob.persistent_ckey + recipient_mob = mob + if(found_other) + break + found_other = TRUE + if(!recipient_mob) + for(var/mob/mob in GLOB.dead_mob_list) + if(mob.real_name == chosen_recipient) + // Recipient: Check if they are dead?, and get some info + // We might not get this info if gibbed, so we'd need to refactor again and find another way if we want stats always correct + recipient_ckey = mob.persistent_ckey + recipient_mob = mob + break + + // Create the recipient_award + var/datum/medal_recommendation/recommendation = new /datum/medal_recommendation() + GLOB.medal_recommendations += recommendation + + recommendation.recipient_rank = recipient_rank + recommendation.recipient_ckey = recipient_ckey + recommendation.recipient_name = recipient_mob.real_name + recommendation.recommended_by_name = recommendation_giver.real_name + recommendation.recommended_by_ckey = recommendation_giver.ckey + recommendation.recommended_by_rank = recipient_ranks[recommendation_giver.real_name] + + + recommendation.reason = reason + + return TRUE + + +GLOBAL_DATUM_INIT(ic_medals_panel, /datum/ic_medal_panel, new) + +/datum/ic_medal_panel + var/name = "Medals Panel" + var/list/datum/weakref/user_locs = list() + +/datum/ic_medal_panel/tgui_interact(mob/user, datum/tgui/ui) + ui = SStgui.try_update_ui(user, src, ui) + if(!ui) + ui = new(user, src, "IcMedalsPanel", "Medals Panel") + ui.open() + ui.set_autoupdate(FALSE) + +/datum/ic_medal_panel/ui_state(mob/user) + var/datum/weakref/user_reference = WEAKREF(user) + var/datum/weakref/loc_reference = user_locs[user_reference] + if(istype(loc_reference?.resolve(), /obj/item)) + return GLOB.not_incapacitated_and_inventory_state + else + return GLOB.not_incapacitated_and_adjacent_state + +/datum/ic_medal_panel/ui_host(mob/user) + . = ..() + var/datum/weakref/user_reference = WEAKREF(user) + var/datum/weakref/loc_reference = user_locs[user_reference] + . = loc_reference?.resolve() + +/datum/ic_medal_panel/ui_data(mob/user) + var/list/data = list() + data["recommendations"] = list() + + for(var/datum/medal_recommendation/recommendation in GLOB.medal_recommendations) + var/recommendation_list = list() + + recommendation_list["rank"] = recommendation.recipient_rank + recommendation_list["name"] = recommendation.recipient_name + recommendation_list["ref"] = REF(recommendation) + recommendation_list["recommender_name"] = recommendation.recommended_by_name + recommendation_list["reason"] = recommendation.reason + recommendation_list["recommender_rank"] = recommendation.recommended_by_rank + + data["recommendations"] += list(recommendation_list) + return data + +/datum/ic_medal_panel/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) + . = ..() + if(.) + return + var/mob/living/carbon/human/user = ui.user + var/obj/item/card/id/card = user?.get_idcard() + if(!card) + to_chat(user, SPAN_WARNING("You must have an authenticated ID Card to award medals.")) + return + + if(!((card.paygrade in GLOB.co_paygrades) || (card.paygrade in GLOB.uscm_highcom_paygrades))) + to_chat(user, SPAN_WARNING("Only a Senior Officer can award medals!")) + return + + if(!card.registered_ref) + user.visible_message("ERROR: ID card not registered in USCM registry. Potential medal fraud detected.") + return + + var/real_owner_ref = card.registered_ref + + if(real_owner_ref != WEAKREF(user)) + user.visible_message("ERROR: ID card not registered for [user.real_name] in USCM registry. Potential medal fraud detected.") + return + + var/datum/weakref/user_ref = WEAKREF(user) + var/datum/weakref/loc_ref = user_locs[user_ref] + var/atom/actual_loc = loc_ref?.resolve() + if(!actual_loc) + return + + switch(action) + if("grant_new_medal") + if(give_medal_award(actual_loc)) + actual_loc.visible_message(SPAN_NOTICE("[actual_loc] prints a medal.")) + . = TRUE + + if("approve_medal") + var/recommendation_ref = params["ref"] + var/medal_type = params["medal_type"] + if(!(medal_type in GLOB.human_medals)) + return + var/datum/medal_recommendation/recommendation = locate(recommendation_ref) in GLOB.medal_recommendations + if(!recommendation) + return + if(recommendation.recipient_name == user.real_name) + to_chat(user, SPAN_WARNING("You cannot give medals to yourself!")) + return + + var/choice = tgui_alert(user, "Would you like to change the medal text?", "Medal Citation", list("Yes", "No")) + var/medal_citation = recommendation.reason + if(choice == "Yes") + medal_citation = strip_html(tgui_input_text(user, "What should the medal citation read?", "Medal Citation", null, MAX_PAPER_MESSAGE_LEN, TRUE), MAX_PAPER_MESSAGE_LEN) + + var/confirm_choice = tgui_alert(user, "Are you sure you want to give a medal to [recommendation.recipient_name]?", "Medal Confirmation", list("Yes", "No")) + if(confirm_choice != "Yes") + return + + if(give_medal_award_prefilled(actual_loc, user, recommendation.recipient_name, recommendation.recipient_rank, recommendation.recipient_ckey, medal_citation, medal_type, recommendation.recommended_by_ckey, recommendation.recommended_by_name)) + GLOB.medal_recommendations -= recommendation + qdel(recommendation) + user.visible_message(SPAN_NOTICE("[actual_loc] prints a medal.")) + . = TRUE + + if("deny_medal") + var/recommendation_ref = params["ref"] + var/datum/medal_recommendation/recommendation = locate(recommendation_ref) in GLOB.medal_recommendations + if(!recommendation) + return + var/confirm = tgui_alert(user, "Are you sure you want to deny this medal recommendation?", "Medal Confirmation", list("Yes", "No")) + if(confirm != "Yes") + return + GLOB.medal_recommendations -= recommendation + qdel(recommendation) + . = TRUE + +/datum/ic_medal_panel/ui_close(mob/user) + . = ..() + user_locs -= WEAKREF(user) + +/datum/ic_medal_panel/ui_assets(mob/user) + return list( + get_asset_datum(/datum/asset/spritesheet/medal) + ) diff --git a/code/datums/mind.dm b/code/datums/mind.dm index 205032f46a97..945f4d0a5351 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -44,11 +44,11 @@ msg_admin_niche("[key]/[ckey] has tried to transfer to deleted [new_character].") return - SEND_SIGNAL(current.client, COMSIG_CLIENT_MIND_TRANSFER, new_character) - + var/mob/old_current = current if(current) current.mind = null //remove ourself from our old body's mind variable SSnano.nanomanager.user_transferred(current, new_character) // transfer active NanoUI instances to new user + SStgui.on_transfer(current, new_character) // and active TGUI instances if(key) if(new_character.key != key) @@ -78,6 +78,7 @@ continue player_entity = setup_player_entity(ckey) + SEND_SIGNAL(src, COMSIG_MIND_TRANSFERRED, old_current) SEND_SIGNAL(new_character, COMSIG_MOB_NEW_MIND, current.client) new_character.refresh_huds(current) //inherit the HUDs from the old body diff --git a/code/datums/mob_hud.dm b/code/datums/mob_hud.dm index e4ec3acc1410..603f9a05d702 100644 --- a/code/datums/mob_hud.dm +++ b/code/datums/mob_hud.dm @@ -10,7 +10,7 @@ GLOBAL_LIST_INIT_TYPED(huds, /datum/mob_hud, list( MOB_HUD_XENO_INFECTION = new /datum/mob_hud/xeno_infection(), MOB_HUD_XENO_STATUS = new /datum/mob_hud/xeno(), MOB_HUD_XENO_HOSTILE = new /datum/mob_hud/xeno_hostile(), - MOB_HUD_FACTION_USCM = new /datum/mob_hud/faction(), + MOB_HUD_FACTION_MARINE = new /datum/mob_hud/faction(), MOB_HUD_FACTION_OBSERVER = new /datum/mob_hud/faction/observer(), MOB_HUD_FACTION_UPP = new /datum/mob_hud/faction/upp(), MOB_HUD_FACTION_WY = new /datum/mob_hud/faction/wy(), @@ -18,7 +18,8 @@ GLOBAL_LIST_INIT_TYPED(huds, /datum/mob_hud, list( MOB_HUD_FACTION_CLF = new /datum/mob_hud/faction/clf(), MOB_HUD_FACTION_PMC = new /datum/mob_hud/faction/pmc(), MOB_HUD_HUNTER = new /datum/mob_hud/hunter_hud(), - MOB_HUD_HUNTER_CLAN = new /datum/mob_hud/hunter_clan() + MOB_HUD_HUNTER_CLAN = new /datum/mob_hud/hunter_clan(), + MOB_HUD_EXECUTE = new /datum/mob_hud/execute_hud(), )) /datum/mob_hud @@ -33,10 +34,8 @@ GLOBAL_LIST_INIT_TYPED(huds, /datum/mob_hud, list( /datum/mob_hud/proc/remove_hud_from(mob/user, source) if(length(hudusers[user]) && (source in hudusers[user])) hudusers[user] -= source - if(length(hudusers[user])) return FALSE - for(var/mob/target in hudmobs) remove_from_single_hud(user, target) @@ -169,6 +168,9 @@ GLOBAL_LIST_INIT_TYPED(huds, /datum/mob_hud, list( /datum/mob_hud/xeno_hostile hud_icons = list(XENO_HOSTILE_ACID, XENO_HOSTILE_SLOW, XENO_HOSTILE_TAG, XENO_HOSTILE_FREEZE) +/datum/mob_hud/execute_hud + hud_icons = list(XENO_EXECUTE) + /datum/mob_hud/hunter_clan hud_icons = list(HUNTER_CLAN) @@ -187,7 +189,7 @@ GLOBAL_LIST_INIT_TYPED(huds, /datum/mob_hud, list( //Factions /datum/mob_hud/faction - hud_icons = list(FACTION_HUD, ORDER_HUD) + hud_icons = list(FACTION_HUD, ORDER_HUD, HOLOCARD_HUD) var/faction_to_check = FACTION_MARINE /datum/mob_hud/faction/add_to_single_hud(mob/user, mob/target) @@ -211,7 +213,7 @@ GLOBAL_LIST_INIT_TYPED(huds, /datum/mob_hud, list( faction_to_check = FACTION_PMC /datum/mob_hud/faction/observer - hud_icons = list(FACTION_HUD, ORDER_HUD, HUNTER_CLAN) + hud_icons = list(FACTION_HUD, ORDER_HUD, HUNTER_CLAN, HOLOCARD_HUD) ///////// MOB PROCS //////////////////////////////: @@ -261,6 +263,11 @@ GLOBAL_LIST_INIT_TYPED(huds, /datum/mob_hud, list( var/datum/mob_hud/hostile_hud = GLOB.huds[MOB_HUD_XENO_HOSTILE] hostile_hud.remove_hud_from(src, src) + if (execute_hud) + execute_hud = FALSE + var/datum/mob_hud/execute = GLOB.huds[MOB_HUD_EXECUTE] + execute.remove_hud_from(src, src) + /mob/proc/refresh_huds(mob/source_mob) @@ -372,6 +379,9 @@ GLOBAL_LIST_INIT_TYPED(huds, /datum/mob_hud, list( holder3.color = null holder4.color = null + holder2.alpha = alpha + holder3.alpha = alpha + holder4.icon_state = "hudblank" if(species && species.flags & IS_SYNTHETIC) @@ -424,6 +434,14 @@ GLOBAL_LIST_INIT_TYPED(huds, /datum/mob_hud, list( if(hive && hive.color) holder3.color = hive.color + if(stat == DEAD || status_flags & FAKEDEATH) + holder2.alpha = 100 + holder3.alpha = 100 + + if(status_flags & CORRUPTED_ALLY) + holder4.color = "#80ff80" + holder4.icon_state = "hudalien_ally" + if(stat == DEAD || status_flags & FAKEDEATH) if(revive_enabled) if(!client) @@ -755,7 +773,23 @@ GLOBAL_DATUM(hud_icon_hudfocus, /image) holder.overlays += GLOB.hud_icon_hudfocus hud_list[ORDER_HUD] = holder +/mob/proc/hud_set_holocard() + return + +// HOLOCARD HUD +/mob/living/carbon/human/hud_set_holocard() + var/image/holder = hud_list[HOLOCARD_HUD] + holder.icon_state = holo_card_color ? "holo_card_[holo_card_color]" : "hudblank" + +// Vampire Execute HUD +/mob/living/carbon/human/proc/update_execute_hud() + var/image/execute_holder = hud_list[XENO_EXECUTE] + + execute_holder.icon_state = "hudblank" + execute_holder.overlays.Cut() + if(stat == UNCONSCIOUS || (stat != DEAD && HAS_TRAIT(src, TRAIT_KNOCKEDOUT))) + execute_holder.overlays += image('icons/mob/hud/hud.dmi', src, "prae_tag") // Xeno "hostile" HUD /mob/living/carbon/human/proc/update_xeno_hostile_hud() diff --git a/code/datums/pain/_pain.dm b/code/datums/pain/_pain.dm index b99927ac596e..fd4dfbf0bbb3 100644 --- a/code/datums/pain/_pain.dm +++ b/code/datums/pain/_pain.dm @@ -82,7 +82,7 @@ if(current_pain - new_pain_reduction > max_pain) return 100 - var/percentage = round(((current_pain - new_pain_reduction) / max_pain) * 100) + var/percentage = floor(((current_pain - new_pain_reduction) / max_pain) * 100) if(percentage < 0) return 0 else diff --git a/code/datums/paygrades/factions/other/civilian.dm b/code/datums/paygrades/factions/other/civilian.dm index 6587a82a54d6..95213542f33b 100644 --- a/code/datums/paygrades/factions/other/civilian.dm +++ b/code/datums/paygrades/factions/other/civilian.dm @@ -23,6 +23,7 @@ name = "Professor" prefix = "Prof." pay_multiplier = 1 + officer_grade = GRADE_OFFICER /datum/paygrade/civillian/representative paygrade = PAY_SHORT_CREP @@ -41,6 +42,7 @@ name = "Senior Officer" prefix = "Sr. Off." pay_multiplier = 0.8 + officer_grade = GRADE_OFFICER /datum/paygrade/civilian/rebel paygrade = PAY_SHORT_REB @@ -50,3 +52,4 @@ paygrade = PAY_SHORT_REBC name = "Rebel Commander" prefix = "CMDR." + officer_grade = GRADE_OFFICER diff --git a/code/datums/paygrades/factions/other/cmb.dm b/code/datums/paygrades/factions/other/cmb.dm index eeeb061ea335..88af3f9ef78c 100644 --- a/code/datums/paygrades/factions/other/cmb.dm +++ b/code/datums/paygrades/factions/other/cmb.dm @@ -11,6 +11,7 @@ paygrade = PAY_SHORT_CMBM name = "CMB Marshal" prefix = "Marshal" + officer_grade = GRADE_OFFICER /datum/paygrade/cmb/syn paygrade = PAY_SHORT_CMBS diff --git a/code/datums/paygrades/factions/other/contractors.dm b/code/datums/paygrades/factions/other/contractors.dm index c83a5cb10870..a63e46bb47f2 100644 --- a/code/datums/paygrades/factions/other/contractors.dm +++ b/code/datums/paygrades/factions/other/contractors.dm @@ -1,38 +1,39 @@ /datum/paygrade/contractors name = "Contractor Paygrade" + fprefix = "VAI" pay_multiplier = 1.5 /datum/paygrade/contractors/standard - paygrade = "VAI" + paygrade = PAY_SHORT_VAI_S name = "VAI Mercenary" - prefix = "VAI" + prefix = "Merc." /datum/paygrade/contractors/med - paygrade = "VAI-M" + paygrade = PAY_SHORT_VAI_M name = "VAI Medical Specialist" - prefix = "VAI MED" + prefix = "Med." pay_multiplier = 1.75 /datum/paygrade/contractors/mg - paygrade = "VAI-G" + paygrade = PAY_SHORT_VAI_G name = "VAI Machinegunner" - prefix = "VAI MG" + prefix = "MG." pay_multiplier = 1.75 /datum/paygrade/contractors/engi - paygrade = "VAI-E" + paygrade = PAY_SHORT_VAI_E name = "VAI Engineering Specialist" - prefix = "VAI ENG" + prefix = "Eng." pay_multiplier = 1.75 /datum/paygrade/contractors/syn - paygrade = "VAI-S" + paygrade = PAY_SHORT_VAI_SN name = "VAI Synthetic" - prefix = "VAI Syn" pay_multiplier = 0 /datum/paygrade/contractors/lead - paygrade = "VAI-L" + paygrade = PAY_SHORT_VAI_L name = "VAI Team Leader" - prefix = "VAI TL" + prefix = "TL." pay_multiplier = 2.25 + officer_grade = GRADE_OFFICER diff --git a/code/datums/paygrades/factions/other/dutch_dozen.dm b/code/datums/paygrades/factions/other/dutch_dozen.dm index 8877bd11afbb..2927d6b80d29 100644 --- a/code/datums/paygrades/factions/other/dutch_dozen.dm +++ b/code/datums/paygrades/factions/other/dutch_dozen.dm @@ -30,4 +30,5 @@ name = "Major" prefix = "LDR." pay_multiplier = 9 + officer_grade = GRADE_OFFICER diff --git a/code/datums/paygrades/factions/other/freelancer.dm b/code/datums/paygrades/factions/other/freelancer.dm index 6de82b5bb344..2d7db7b0e042 100644 --- a/code/datums/paygrades/factions/other/freelancer.dm +++ b/code/datums/paygrades/factions/other/freelancer.dm @@ -1,49 +1,53 @@ /datum/paygrade/freelancer name = "Freelancer Paygrade" + fprefix = "Frl." pay_multiplier = 0.75 //these are shitty mercs. /datum/paygrade/freelancer/standard - paygrade = "Freelancer Standard" - name = "Freelancer Standard" + name = "Freelancer" + paygrade = PAY_SHORT_FL_S prefix = "Merc." /datum/paygrade/freelancer/medic - paygrade = "Freelancer Medic" name = "Freelancer Medic" + paygrade = PAY_SHORT_FL_M prefix = "Med." /datum/paygrade/freelancer/leader - paygrade = "Freelancer Leader" name = "Freelancer Leader" + paygrade = PAY_SHORT_FL_WL prefix = "Warlord" pay_multiplier = 1 + officer_grade = GRADE_OFFICER /datum/paygrade/freelancer/elite name = "Elite Freelancer Paygrade" + fprefix = "Elt." pay_multiplier = 1.25 /datum/paygrade/freelancer/elite/standard - paygrade = "Elite Freelancer Standard" - name = "Elite Freelancer Standard" - prefix = "MRC." + name = "Elite Freelancer" + paygrade = PAY_SHORT_EFL_S + prefix = "Merc." /datum/paygrade/freelancer/elite/heavy - paygrade = "Elite Freelancer Heavy" name = "Elite Freelancer Heavy" - prefix = "HVY." + paygrade = PAY_SHORT_EFL_H + prefix = "Hvy." /datum/paygrade/freelancer/elite/engineer - paygrade = "Elite Freelancer Engineer" name = "Elite Freelancer Engineer" - prefix = "ENGI." + paygrade = PAY_SHORT_EFL_E + prefix = "Eng." /datum/paygrade/freelancer/elite/medic - paygrade = "Elite Freelancer Medic" name = "Elite Freelancer Medic" - prefix = "MED." + paygrade = PAY_SHORT_EFL_M + prefix = "Med." /datum/paygrade/freelancer/elite/leader - paygrade = "Elite Freelancer Leader" name = "Elite Freelancer Leader" + paygrade = PAY_SHORT_EFL_TL prefix = "Warlord" pay_multiplier = 1.5 + officer_grade = GRADE_OFFICER diff --git a/code/datums/paygrades/factions/other/misc.dm b/code/datums/paygrades/factions/other/misc.dm index 04e522580b50..cc07e97b94da 100644 --- a/code/datums/paygrades/factions/other/misc.dm +++ b/code/datums/paygrades/factions/other/misc.dm @@ -1,8 +1,14 @@ /datum/paygrade/misc/operative - name = "Operative" + name = "Operator" + prefix = "OPR." paygrade = PAY_SHORT_OPR pay_multiplier = 1 //???? +/datum/paygrade/misc/codenamed + name = "Operative" + paygrade = PAY_SHORT_CDNM + pay_multiplier = 1 //???? + /datum/paygrade/misc/synth name = "Synthetic" paygrade = PAY_SHORT_SYN diff --git a/code/datums/paygrades/factions/twe/twe.dm b/code/datums/paygrades/factions/twe/twe.dm index 9707e89e6171..582030f9f80a 100644 --- a/code/datums/paygrades/factions/twe/twe.dm +++ b/code/datums/paygrades/factions/twe/twe.dm @@ -1,85 +1,86 @@ /datum/paygrade/twe name = "TWE Paygrade" pay_multiplier = 2 // less people = more to pay them + default_faction = FACTION_TWE //RMC Emlisted /datum/paygrade/twe/e1 - paygrade = "RMC E1" + paygrade = PAY_SHORT_RMC1 name = "Heitai-Marine" prefix = "Hti-Mne." /datum/paygrade/twe/e2 - paygrade = "RMC E2" + paygrade = PAY_SHORT_RMC2 name = "Santo-Lance Corporal" prefix = "St-LCpl." pay_multiplier = 2.1 /datum/paygrade/twe/e3 - paygrade = "RMC E3" + paygrade = PAY_SHORT_RMC3 name = "Nito-Corporal" prefix = "Nt-Cpl." pay_multiplier = 2.2 /datum/paygrade/twe/e4 - paygrade = "RMC E4" + paygrade = PAY_SHORT_RMC4 name = "Itto-Sergeant" prefix = "Sgt." pay_multiplier = 2.3 -//RMC Officer - -/datum/paygrade/twe/o1/rmc - paygrade = "RMC O1" - name = "Second Lieutenant" - prefix = "2nd LT." - pay_multiplier = 3 - //TWE Warrent Officer /datum/paygrade/twe/wo1 - paygrade = "TWE WO." + paygrade = PAY_SHORT_RNOW name = "Warrant Officer" prefix = "WO." pay_multiplier = 3.5 + officer_grade = GRADE_OFFICER //TWE Naval Officers /datum/paygrade/twe/o1 - paygrade = "TWE O1" + paygrade = PAY_SHORT_RNO1 name = "Second Lieutenant" prefix = "2nd LT" pay_multiplier = 3 + officer_grade = GRADE_OFFICER /datum/paygrade/twe/o2 - paygrade = "RMC O2" + paygrade = PAY_SHORT_RNO2 name = "First Lieutenant" prefix = "1st LT" pay_multiplier = 3.25 + officer_grade = GRADE_OFFICER /datum/paygrade/twe/o3 - paygrade = "TO3" - name = "Standing Officer" - prefix = "SO." + paygrade = PAY_SHORT_RNO3 + name = "Commander" + prefix = "Cdr." pay_multiplier = 3.5 + officer_grade = GRADE_OFFICER /datum/paygrade/twe/o4 - paygrade = "TO4" + paygrade = PAY_SHORT_RNO4 name = "Captain" prefix = "Cpt." pay_multiplier = 5 + officer_grade = GRADE_OFFICER /datum/paygrade/twe/o5 - paygrade = "TO5" + paygrade = PAY_SHORT_RNO5 name = "Admiral" - prefix = "ADM." + prefix = "Adm." pay_multiplier = 7 + officer_grade = GRADE_FLAG /datum/paygrade/twe/o6 - paygrade = "TO6" + paygrade = PAY_SHORT_RNO6 name = "Grand Admiral" - prefix = "GADM." + prefix = "GAdm." pay_multiplier = 9 + officer_grade = GRADE_FLAG /datum/paygrade/twe/o7 - paygrade = "TO7" + paygrade = PAY_SHORT_EMP name = "Emperor" - prefix = "ER." + prefix = "HRH." pay_multiplier = 1000 + officer_grade = GRADE_FLAG diff --git a/code/datums/paygrades/factions/upp/upp.dm b/code/datums/paygrades/factions/upp/upp.dm index 8670f99269dc..b9ce691fdb8d 100644 --- a/code/datums/paygrades/factions/upp/upp.dm +++ b/code/datums/paygrades/factions/upp/upp.dm @@ -1,6 +1,7 @@ /datum/paygrade/upp name = "UPP Paygrade" pay_multiplier = 0.1 //lol. lmao + default_faction = FACTION_UPP //UPP Enlisted @@ -56,12 +57,14 @@ name = "2nd Kommando" prefix = "2ndKdo." pay_multiplier = 2 + officer_grade = GRADE_OFFICER /datum/paygrade/upp/uc3 paygrade = PAY_SHORT_UC3 name = "1st Kommando" prefix = "1stKdo." pay_multiplier = 2.5 + officer_grade = GRADE_OFFICER //UPP Officers /datum/paygrade/upp/uo1 @@ -69,51 +72,60 @@ name = "Leytenant" prefix = "Lt." pay_multiplier = 1.25 + officer_grade = GRADE_OFFICER /datum/paygrade/upp/uo2 paygrade = PAY_SHORT_UO2 name = "Senior Leytenant" prefix = "Sr. LT." pay_multiplier = 1.5 + officer_grade = GRADE_OFFICER /datum/paygrade/upp/uo3 paygrade = PAY_SHORT_UO3 name = "Kapitan" prefix = "Kpt." pay_multiplier = 2 + officer_grade = GRADE_OFFICER /datum/paygrade/upp/uo4 paygrade = PAY_SHORT_UO4 name = "Mayjor" prefix = "May." pay_multiplier = 2.5 + officer_grade = GRADE_OFFICER /datum/paygrade/upp/uo5 paygrade = PAY_SHORT_UO5 name = "Leytenant Kolonel" prefix = "Lt. Kol." pay_multiplier = 3 + officer_grade = GRADE_OFFICER /datum/paygrade/upp/uo6 paygrade = PAY_SHORT_UO6 name = "Kolonel" prefix = "Kol." pay_multiplier = 4 + officer_grade = GRADE_OFFICER /datum/paygrade/upp/uo7 paygrade = PAY_SHORT_UO7 name = "Mayjor General" prefix = "May. Gen." pay_multiplier = 5 + officer_grade = GRADE_FLAG /datum/paygrade/upp/uo8 paygrade = PAY_SHORT_UO8 name = "Leytenant General" prefix = "Lt. Gen." pay_multiplier = 6 + officer_grade = GRADE_FLAG /datum/paygrade/upp/uo9 paygrade = PAY_SHORT_UO9 name = "Army General" prefix = "Gen." pay_multiplier = 7 + officer_grade = GRADE_FLAG diff --git a/code/datums/paygrades/factions/uscm/marine.dm b/code/datums/paygrades/factions/uscm/marine.dm index 7d315f364025..6a1446dd6b60 100644 --- a/code/datums/paygrades/factions/uscm/marine.dm +++ b/code/datums/paygrades/factions/uscm/marine.dm @@ -2,6 +2,7 @@ name = "Marine Paygrade" rank_pin = /obj/item/clothing/accessory/ranks/marine pay_multiplier = 1.6 + default_faction = FACTION_MARINE // ENLISTED PAYGRADES @@ -110,6 +111,7 @@ rank_pin = /obj/item/clothing/accessory/ranks/marine/o1 ranking = 12 pay_multiplier = 3 + officer_grade = GRADE_OFFICER /datum/paygrade/marine/o2 paygrade = PAY_SHORT_MO2 @@ -118,6 +120,7 @@ rank_pin = /obj/item/clothing/accessory/ranks/marine/o2 ranking = 13 pay_multiplier = 3.2 + officer_grade = GRADE_OFFICER /datum/paygrade/marine/o3 paygrade = PAY_SHORT_MO3 @@ -126,6 +129,7 @@ rank_pin = /obj/item/clothing/accessory/ranks/marine/o3 ranking = 14 pay_multiplier = 4 + officer_grade = GRADE_OFFICER /datum/paygrade/marine/o4 paygrade = PAY_SHORT_MO4 @@ -134,6 +138,7 @@ rank_pin = /obj/item/clothing/accessory/ranks/marine/o4 ranking = 15 pay_multiplier = 4 + officer_grade = GRADE_OFFICER /datum/paygrade/marine/o5 paygrade = PAY_SHORT_MO5 @@ -142,6 +147,7 @@ rank_pin = /obj/item/clothing/accessory/ranks/marine/o5 ranking = 16 pay_multiplier = 4.2 + officer_grade = GRADE_OFFICER //Platoon Commander /datum/paygrade/marine/o6 @@ -151,6 +157,7 @@ rank_pin = /obj/item/clothing/accessory/ranks/marine/o6 ranking = 17 pay_multiplier = 4.4 + officer_grade = GRADE_OFFICER /datum/paygrade/marine/o6e paygrade = PAY_SHORT_MO6E @@ -159,6 +166,7 @@ rank_pin = /obj/item/clothing/accessory/ranks/marine/o6e ranking = 18 pay_multiplier = 4.6 + officer_grade = GRADE_OFFICER /datum/paygrade/marine/o6c paygrade = PAY_SHORT_MO6C @@ -167,6 +175,7 @@ rank_pin = /obj/item/clothing/accessory/ranks/marine/o6c ranking = 19 pay_multiplier = 4.8 + officer_grade = GRADE_OFFICER //High Command /datum/paygrade/marine/o7 @@ -176,6 +185,7 @@ rank_pin = /obj/item/clothing/accessory/ranks/marine/o7 ranking = 20 pay_multiplier = 6 + officer_grade = GRADE_FLAG /datum/paygrade/marine/o8 paygrade = PAY_SHORT_MO8 @@ -184,6 +194,7 @@ rank_pin = /obj/item/clothing/accessory/ranks/marine/o8 ranking = 21 pay_multiplier = 6.2 + officer_grade = GRADE_FLAG /datum/paygrade/marine/o9 paygrade = PAY_SHORT_MO9 @@ -192,6 +203,7 @@ rank_pin = /obj/item/clothing/accessory/ranks/marine/o9 ranking = 22 pay_multiplier = 6.4 + officer_grade = GRADE_FLAG /datum/paygrade/marine/o10 paygrade = PAY_SHORT_MO10 @@ -200,6 +212,7 @@ rank_pin = /obj/item/clothing/accessory/ranks/marine/o10 ranking = 23 pay_multiplier = 6.6 + officer_grade = GRADE_FLAG /datum/paygrade/marine/o10c paygrade = PAY_SHORT_MO10C @@ -208,6 +221,7 @@ rank_pin = /obj/item/clothing/accessory/ranks/marine/o10c ranking = 24 pay_multiplier = 6.8 + officer_grade = GRADE_FLAG /datum/paygrade/marine/o10s paygrade = PAY_SHORT_MO10S @@ -216,3 +230,4 @@ rank_pin = /obj/item/clothing/accessory/ranks/marine/o10c ranking = 25 pay_multiplier = 7 + officer_grade = GRADE_FLAG diff --git a/code/datums/paygrades/factions/uscm/navy.dm b/code/datums/paygrades/factions/uscm/navy.dm index 9e22c72fe566..69fb63676bce 100644 --- a/code/datums/paygrades/factions/uscm/navy.dm +++ b/code/datums/paygrades/factions/uscm/navy.dm @@ -1,6 +1,7 @@ /datum/paygrade/navy name = "Navy Paygrade" rank_pin = /obj/item/clothing/accessory/ranks/navy + default_faction = FACTION_MARINE //someone else can do the multipliers for this one // ENLISTED PAYGRADES @@ -90,6 +91,7 @@ prefix = "ENS." rank_pin = /obj/item/clothing/accessory/ranks/navy/o1 ranking = 11 + officer_grade = GRADE_OFFICER /datum/paygrade/navy/o2 paygrade = PAY_SHORT_NO2 @@ -97,6 +99,7 @@ prefix = "LTJG." rank_pin = /obj/item/clothing/accessory/ranks/navy/o2 ranking = 12 + officer_grade = GRADE_OFFICER /datum/paygrade/navy/o3 paygrade = PAY_SHORT_NO3 @@ -104,6 +107,7 @@ prefix = "LT." rank_pin = /obj/item/clothing/accessory/ranks/navy/o3 ranking = 13 + officer_grade = GRADE_OFFICER /datum/paygrade/navy/o4 paygrade = PAY_SHORT_NO4 @@ -111,6 +115,7 @@ prefix = "LCDR." rank_pin = /obj/item/clothing/accessory/ranks/navy/o4 ranking = 14 + officer_grade = GRADE_OFFICER /datum/paygrade/navy/o5 paygrade = PAY_SHORT_NO5 @@ -118,6 +123,7 @@ prefix = "CDR." rank_pin = /obj/item/clothing/accessory/ranks/navy/o5 ranking = 15 + officer_grade = GRADE_OFFICER /datum/paygrade/navy/o6 paygrade = PAY_SHORT_NO6 @@ -125,6 +131,7 @@ prefix = "CAPT." rank_pin = /obj/item/clothing/accessory/ranks/navy/o6 ranking = 16 + officer_grade = GRADE_OFFICER /datum/paygrade/navy/o6e paygrade = PAY_SHORT_NO6E @@ -132,6 +139,7 @@ prefix = "CDRE." rank_pin = /obj/item/clothing/accessory/ranks/navy/o6e ranking = 17 + officer_grade = GRADE_OFFICER /datum/paygrade/navy/o6c paygrade = PAY_SHORT_NO6C @@ -139,6 +147,7 @@ prefix = "Snr CDRE." rank_pin = /obj/item/clothing/accessory/ranks/navy/o6e ranking = 18 + officer_grade = GRADE_OFFICER /datum/paygrade/navy/o7 paygrade = PAY_SHORT_NO7 @@ -146,6 +155,7 @@ prefix = "RDML." rank_pin = /obj/item/clothing/accessory/ranks/navy/o7 ranking = 19 + officer_grade = GRADE_FLAG /datum/paygrade/navy/o8 paygrade = PAY_SHORT_NO8 @@ -153,6 +163,7 @@ prefix = "RADM." rank_pin = /obj/item/clothing/accessory/ranks/navy/o8 ranking = 20 + officer_grade = GRADE_FLAG /datum/paygrade/navy/o9 paygrade = PAY_SHORT_NO9 @@ -160,6 +171,7 @@ prefix = "VADM." rank_pin = /obj/item/clothing/accessory/ranks/navy/o9 ranking = 21 + officer_grade = GRADE_FLAG /datum/paygrade/navy/o10 paygrade = PAY_SHORT_NO10 @@ -167,6 +179,7 @@ prefix = "ADM." rank_pin = /obj/item/clothing/accessory/ranks/navy/o10 ranking = 22 + officer_grade = GRADE_FLAG /datum/paygrade/navy/o10c paygrade = PAY_SHORT_NO10C @@ -174,3 +187,4 @@ prefix = "CNO." rank_pin = /obj/item/clothing/accessory/ranks/navy/o10c ranking = 23 + officer_grade = GRADE_FLAG diff --git a/code/datums/paygrades/factions/uscm/provost.dm b/code/datums/paygrades/factions/uscm/provost.dm index e378bd7beb61..c7e529d9fcb4 100644 --- a/code/datums/paygrades/factions/uscm/provost.dm +++ b/code/datums/paygrades/factions/uscm/provost.dm @@ -1,24 +1,29 @@ /datum/paygrade/provost name = "Provost Paygrade" pay_multiplier = 2 + default_faction = FACTION_MARINE /datum/paygrade/provost/inspector paygrade = PAY_SHORT_PVI name = "Provost Inspector" prefix = "Insp." rank_pin = /obj/item/clothing/accessory/ranks/special/insp + officer_grade = GRADE_FLAG //Not really a flag officer, but they have special access to things for their job. /datum/paygrade/provost/marshal paygrade = PAY_SHORT_PVM name = "Provost Marshal" prefix = "Marshal" + officer_grade = GRADE_FLAG /datum/paygrade/provost/sectormarshal paygrade = PAY_SHORT_PVSM name = "Provost Sector Marshal" prefix = "S. Marshal" + officer_grade = GRADE_FLAG /datum/paygrade/provost/chiefmarshal paygrade = PAY_SHORT_PVCM name = "Provost Chief Marshal" prefix = "Chief Marshal" + officer_grade = GRADE_FLAG diff --git a/code/datums/paygrades/factions/wy/pmc.dm b/code/datums/paygrades/factions/wy/pmc.dm index fc8e55f5eee2..b6acf2864578 100644 --- a/code/datums/paygrades/factions/wy/pmc.dm +++ b/code/datums/paygrades/factions/wy/pmc.dm @@ -2,96 +2,106 @@ name = "PMC Paygrade" fprefix = "PMC." pay_multiplier = 2.5 // they have money. but they sold their soul to the company. is it really worth it + default_faction = FACTION_PMC //Standard PMCs /datum/paygrade/pmc/standard - paygrade = "PMC-OP" + paygrade = PAY_SHORT_PMC_OP name = "Operator" prefix = "OPR." /datum/paygrade/pmc/enforcer - paygrade = "PMC-EN" + paygrade = PAY_SHORT_PMC_EN name = "Enforcer" prefix = "ENF." pay_multiplier = 2.6 //PMC Field Specialists /datum/paygrade/pmc/vehicle - paygrade = "PMC-VS" + paygrade = PAY_SHORT_PMC_VS name = "Vehicle Specialist" - prefix = "CRW." + prefix = "SPV." pay_multiplier = 2.8 /datum/paygrade/pmc/support - paygrade = "PMC-SS" + paygrade = PAY_SHORT_PMC_SS name = "Support Specialist" prefix = "SPS." pay_multiplier = 2.8 /datum/paygrade/pmc/medic - paygrade = "PMC-MS" + paygrade = PAY_SHORT_PMC_MS name = "Medical Specialist" prefix = "SPM." pay_multiplier = 2.8 /datum/paygrade/pmc/spec - paygrade = "PMC-WS" + paygrade = PAY_SHORT_PMC_WS name = "Weapon Specialist" prefix = "SPW." pay_multiplier = 3 /datum/paygrade/pmc/handler - paygrade = "PMC-XS" + paygrade = PAY_SHORT_PMC_XS name = "Xeno Specialist" prefix = "SPX." pay_multiplier = 4 + officer_grade = GRADE_OFFICER + +//PMC Support Staff +/datum/paygrade/pmc/doctor + paygrade = PAY_SHORT_PMC_DOC + name = "Trauma Surgeon" + prefix = "Dr." + pay_multiplier = 4 + officer_grade = GRADE_OFFICER + +/datum/paygrade/pmc/engineer + paygrade = PAY_SHORT_PMC_TEC + name = "Corporate Technician" + prefix = "TEC." + pay_multiplier = 4 //PMC Elite /datum/paygrade/pmc/elite - paygrade = "PMC-ELR" + paygrade = PAY_SHORT_PMC_ELR name = "Elite Responder" prefix = "ELR." pay_multiplier = 4 + officer_grade = GRADE_OFFICER /datum/paygrade/pmc/medic/elite - paygrade = "PMC-ELM" + paygrade = PAY_SHORT_PMC_ELM name = "Elite Medic" prefix = "ELM." pay_multiplier = 4.5 + officer_grade = GRADE_OFFICER /datum/paygrade/pmc/spec/elite - paygrade = "PMC-ELG" + paygrade = PAY_SHORT_PMC_ELG name = "Elite Gunner" prefix = "ELG." pay_multiplier = 5 + officer_grade = GRADE_OFFICER //PMC Command /datum/paygrade/pmc/teamlead - paygrade = "PMC-TL" + paygrade = PAY_SHORT_PMC_TL name = "Team Leader" prefix = "TML." pay_multiplier = 3.5 + officer_grade = GRADE_OFFICER /datum/paygrade/pmc/elitelead - paygrade = "PMC-ETL" + paygrade = PAY_SHORT_PMC_ETL name = "Elite Team Leader" prefix = "ETML." pay_multiplier = 5.5 - -/datum/paygrade/pmc/doctor - paygrade = "PMC-DOC" - name = "Trauma Surgeon" - prefix = "TRI." - pay_multiplier = 4 - -/datum/paygrade/pmc/engineer - paygrade = "PMC-TECH" - name = "Corporate Technician" - prefix = "TEC." - pay_multiplier = 4 + officer_grade = GRADE_OFFICER /datum/paygrade/pmc/director - paygrade = "PMC-DIR" + paygrade = PAY_SHORT_PMC_DIR name = "Site Director" prefix = "DIR." pay_multiplier = 10 //it's a corpo director. money is what they care about. + officer_grade = GRADE_FLAG diff --git a/code/datums/paygrades/factions/wy/wy.dm b/code/datums/paygrades/factions/wy/wy.dm index 58ec9eb3f197..17b46ff5790e 100644 --- a/code/datums/paygrades/factions/wy/wy.dm +++ b/code/datums/paygrades/factions/wy/wy.dm @@ -1,6 +1,7 @@ /datum/paygrade/wy_ranks name = "WYC Paygrade" pay_multiplier = 1 + default_faction = FACTION_WY /datum/paygrade/wy_ranks/wyc1 paygrade = PAY_SHORT_WYC1 @@ -35,6 +36,7 @@ prefix = "Exec. Spc." ranking = 4 pay_multiplier = 5 + officer_grade = GRADE_OFFICER /datum/paygrade/wy_ranks/wyc6 paygrade = PAY_SHORT_WYC6 @@ -42,6 +44,7 @@ prefix = "Exec. Suvp." ranking = 5 pay_multiplier = 6 + officer_grade = GRADE_OFFICER /datum/paygrade/wy_ranks/wyc7 paygrade = PAY_SHORT_WYC7 @@ -49,6 +52,7 @@ prefix = "Assis. Mng." ranking = 6 pay_multiplier = 7 + officer_grade = GRADE_OFFICER /datum/paygrade/wy_ranks/wyc8 paygrade = PAY_SHORT_WYC8 @@ -56,6 +60,7 @@ prefix = "Div. Mng." ranking = 7 pay_multiplier = 8 + officer_grade = GRADE_FLAG /datum/paygrade/wy_ranks/wyc9 paygrade = PAY_SHORT_WYC9 @@ -63,6 +68,7 @@ prefix = "Chief. Exec." ranking = 8 pay_multiplier = 9 + officer_grade = GRADE_FLAG /datum/paygrade/wy_ranks/wyc10 paygrade = PAY_SHORT_WYC10 @@ -70,3 +76,4 @@ prefix = "Director" ranking = 9 pay_multiplier = 10 + officer_grade = GRADE_FLAG diff --git a/code/datums/paygrades/paygrade.dm b/code/datums/paygrades/paygrade.dm index cc336319278a..3befc979f2d2 100644 --- a/code/datums/paygrades/paygrade.dm +++ b/code/datums/paygrades/paygrade.dm @@ -1,10 +1,13 @@ +GLOBAL_LIST_EMPTY(uscm_highcom_paygrades) +GLOBAL_LIST_EMPTY(uscm_officer_paygrades) +GLOBAL_LIST_EMPTY(wy_highcom_paygrades) GLOBAL_LIST_INIT_TYPED(paygrades, /datum/paygrade, setup_paygrades()) /datum/paygrade var/paygrade var/name var/prefix - ///Factional prefix, currently only used by PMCs. In essence, a pre-prefix. + /// Factional prefix, currently only used by PMCs. In essence, a pre-prefix. var/fprefix var/rank_pin @@ -13,33 +16,10 @@ GLOBAL_LIST_INIT_TYPED(paygrades, /datum/paygrade, setup_paygrades()) /// Actually gives you the fucking money from your paygrade in your ATM account. Multiplier of 1 equals PFC pay. var/pay_multiplier = 1 -/proc/setup_paygrades() - . = list() - for(var/I in subtypesof(/datum/paygrade)) - var/datum/paygrade/PG = I - var/pg_id = initial(PG.paygrade) - if(pg_id) - if(pg_id in .) - log_debug("Duplicate paygrade: '[pg_id]'.") - else - .[pg_id] = new PG - -GLOBAL_LIST_INIT(highcom_paygrades, list( - "PvI", - PAY_SHORT_NO7, - PAY_SHORT_MO7, - PAY_SHORT_NO8, - PAY_SHORT_MO8, - PAY_SHORT_NO9, - PAY_SHORT_MO9, - PAY_SHORT_NO10, - PAY_SHORT_MO10, - PAY_SHORT_NO10C, - PAY_SHORT_MO10C, - "PvO8", - "PvO9", - "PvCM" -)) + /// The faction this paygrade is usually assigned to. + var/default_faction + /// If the grade refers to an officer equivalent or not. + var/officer_grade = GRADE_ENLISTED GLOBAL_LIST_INIT(co_paygrades, list( PAY_SHORT_NO6, @@ -54,8 +34,24 @@ GLOBAL_LIST_INIT(co_paygrades, list( PAY_SHORT_MO4 )) -GLOBAL_LIST_INIT(wy_paygrades, list( - PAY_SHORT_WYC8, - PAY_SHORT_WYC9, - PAY_SHORT_WYC10 -)) +/datum/paygrade/New() + . = ..() + switch(default_faction) + if(FACTION_MARINE) + if(officer_grade) + GLOB.uscm_officer_paygrades += paygrade + if(officer_grade >= GRADE_FLAG) + GLOB.uscm_highcom_paygrades += paygrade + if(FACTION_WY,FACTION_PMC) + if(officer_grade >= GRADE_FLAG) + GLOB.wy_highcom_paygrades += paygrade + +/proc/setup_paygrades() + . = list() + for(var/datum/paygrade/PG as anything in subtypesof(/datum/paygrade)) + var/pg_id = initial(PG.paygrade) + if(pg_id) + if(pg_id in .) + log_debug("Duplicate paygrade: '[pg_id]'.") + else + .[pg_id] = new PG diff --git a/code/datums/quadtree.dm b/code/datums/quadtree.dm index 2b0360152997..5e5b27d57330 100644 --- a/code/datums/quadtree.dm +++ b/code/datums/quadtree.dm @@ -103,7 +103,7 @@ player_coords = list(p_coords) return TRUE - else if(!final_divide && player_coords.len >= QUADTREE_CAPACITY) + else if(!final_divide && length(player_coords) >= QUADTREE_CAPACITY) if(!is_divided) subdivide() if(nw_branch.insert_player(p_coords)) diff --git a/code/datums/recipe.dm b/code/datums/recipe.dm index 47752fd59400..68c036ff71df 100644 --- a/code/datums/recipe.dm +++ b/code/datums/recipe.dm @@ -49,7 +49,7 @@ . = -1 else return 0 - if ((reagents?(reagents.len):(0)) < avail_reagents.reagent_list.len) + if ((LAZYLEN(reagents) || 0) < length(avail_reagents.reagent_list)) return -1 return . @@ -70,7 +70,7 @@ break if (!found) . = -1 - if (checklist.len) + if (length(checklist)) return 0 return . @@ -107,17 +107,17 @@ for (var/datum/recipe/recipe in available_recipes) if (recipe.check_reagents(obj.reagents)==exact && recipe.check_items(obj)==exact) possible_recipes+=recipe - if (possible_recipes.len==0) + if (length(possible_recipes)==0) return null - else if (possible_recipes.len==1) + else if (length(possible_recipes)==1) return possible_recipes[1] else //okay, let's select the most complicated recipe var/r_count = 0 var/i_count = 0 . = possible_recipes[1] for (var/datum/recipe/recipe in possible_recipes) - var/N_i = (recipe.items)?(recipe.items.len):0 - var/N_r = (recipe.reagents)?(recipe.reagents.len):0 + var/N_i = LAZYLEN(recipe.items) || 0 + var/N_r = LAZYLEN(recipe.reagents) || 0 if (N_i > i_count || (N_i== i_count && N_r > r_count )) r_count = N_r i_count = N_i @@ -184,13 +184,6 @@ ) result = /obj/item/reagent_container/food/snacks/roburger -/datum/recipe/roburger_unsafe - items = list( - /obj/item/reagent_container/food/snacks/bun, - /obj/item/robot_parts/head, - ) - result = /obj/item/reagent_container/food/snacks/roburger/unsafe - /datum/recipe/clownburger items = list( /obj/item/reagent_container/food/snacks/bun, diff --git a/code/datums/redis/callbacks/_redis_callback.dm b/code/datums/redis/callbacks/_redis_callback.dm index fd786db056c3..af63f53bd0b3 100644 --- a/code/datums/redis/callbacks/_redis_callback.dm +++ b/code/datums/redis/callbacks/_redis_callback.dm @@ -19,7 +19,7 @@ * * message - The message received on the redis channel. */ /datum/redis_callback/proc/on_message(message) - CRASH("on_message not overriden for [type]!") + CRASH("on_message not overridden for [type]!") /datum/redis_callback/vv_edit_var(var_name, var_value) return FALSE diff --git a/code/datums/research_upgrade_datum.dm b/code/datums/research_upgrade_datum.dm new file mode 100644 index 000000000000..fd571afdfcf0 --- /dev/null +++ b/code/datums/research_upgrade_datum.dm @@ -0,0 +1,211 @@ +/datum/research_upgrades + ///unique to every upgrade. not the name of the item. name of the upgrade + var/name = "Upgrade." + ///name of upgrades, not items. Items are at research_upgrades.dm somewhere in item folder. + var/desc = "something is broken. yippee!!" + ///which behavior should this type follow. Should this be completely excluded from the buy menu? should it be one of the dropdown options? or a normal item? + var/behavior = RESEARCH_UPGRADE_EXCLUDE_BUY // should this be on the list? + //This is what gets passed to the initizialize of an item, RESEARCH_UPGRADE_NOTHING_TO_PASS to not pass anything. + var/on_init_argument = RESEARCH_UPGRADE_NOTHING_TO_PASS + /// the price of the upgrade, refer to this: 500 is a runner, 8k is queen. T3 is usually 3k, woyer is 2k. + var/value_upgrade = 1000 + /// actual path to the item.(upgrade) + var/item_reference + ///In which tab the upgrade should be. + var/upgrade_type + ///Clearance requirment to buy this upgrade. 5x is level 6. Why is it not that way? no one knows. + var/clearance_req = 5 + ///The change of price for item per purchase, recommended for mass producing stuff or limited upgrade. + var/change_purchase = 0 + ///the minimum price which we cant go any cheaper usually dont need to set this if change price is 0 or positive + var/minimum_price = 0 + ///the maximum price which we cant go any more expensive, usually dont need to set this if change price is 0 or negative + var/maximum_price = INFINITY + +/datum/research_upgrades/machinery + name = "Machinery" + behavior = RESEARCH_UPGRADE_CATEGORY // one on the dropdown choices you get + +/datum/research_upgrades/machinery/autodoc + name = "AutoDoc Upgrade" + behavior = RESEARCH_UPGRADE_EXCLUDE_BUY + item_reference = /obj/item/research_upgrades/autodoc + upgrade_type = ITEM_MACHINERY_UPGRADE + +/datum/research_upgrades/machinery/autodoc/internal_bleed + name = "AutoDoc Internal Bleeding Repair" + desc = "A data and instruction set for the AutoDoc, making it capable of rapidly fixing internal bleeding." + on_init_argument = RESEARCH_UPGRADE_TIER_1 + behavior = RESEARCH_UPGRADE_ITEM + value_upgrade = 200 + clearance_req = 1 + +/datum/research_upgrades/machinery/autodoc/broken_bone + name = "AutoDoc Bone Fracture Repair" + desc = "A data instruction set for the AutoDoc, making it capable of setting fractures and applying bonegel." + on_init_argument = RESEARCH_UPGRADE_TIER_2 + behavior = RESEARCH_UPGRADE_ITEM + value_upgrade = 2000 + clearance_req = 3 + +/datum/research_upgrades/machinery/autodoc/organ_damage + name = "AutoDoc Broken Organ Repair" + desc = "A data and instruction set for the AutoDoc, making it capable of fixing organ damage." + on_init_argument = RESEARCH_UPGRADE_TIER_3 + behavior = RESEARCH_UPGRADE_ITEM + value_upgrade = 1500 + clearance_req = 2 + +/datum/research_upgrades/machinery/autodoc/larva_removal + name = "AutoDoc Embryo Removal" + desc = "Data and instruction set for AutoDoc making it mildly proficient in removing parasites left by unknown organism." + on_init_argument = RESEARCH_UPGRADE_TIER_4 + behavior = RESEARCH_UPGRADE_ITEM + value_upgrade = 4000 + clearance_req = 6 + + +/datum/research_upgrades/machinery/sleeper + name = "Sleeper Upgrade" + desc = "Research upgrade for Sleeper system, technology on this disk is used on a sleeper to allow wider spectrum of chemicals to be administered, as well as upgrading dialysis software." + on_init_argument = RESEARCH_UPGRADE_NOTHING_TO_PASS + behavior = RESEARCH_UPGRADE_ITEM + value_upgrade = 500 + item_reference = /obj/item/research_upgrades/sleeper + upgrade_type = ITEM_MACHINERY_UPGRADE + clearance_req = 1 + +/datum/research_upgrades/item + name = "Items" + behavior = RESEARCH_UPGRADE_CATEGORY + +/datum/research_upgrades/item/research_credits + name = "Research Credits" + desc = "Sell the data acquired to the nearest Weyland-Yutani Science division team for 8 or 9 points." + value_upgrade = 2000 + item_reference = /obj/item/research_upgrades/credits + on_init_argument = RESEARCH_UPGRADE_NOTHING_TO_PASS + behavior = RESEARCH_UPGRADE_ITEM + upgrade_type = ITEM_ACCESSORY_UPGRADE + change_purchase = 500 + maximum_price = 5000 + clearance_req = 5 + +/datum/research_upgrades/item/laser_scalpel + name = "Laser Scalpel" + desc = "An advanced, robust version of the normal scalpel, allowing it to pierce through thick skin and chitin alike with extreme ease." + value_upgrade = 3000 + item_reference = /obj/item/tool/surgery/scalpel/laser/advanced + on_init_argument = RESEARCH_UPGRADE_NOTHING_TO_PASS + behavior = RESEARCH_UPGRADE_ITEM + upgrade_type = ITEM_ACCESSORY_UPGRADE + clearance_req = 3 + +/datum/research_upgrades/item/incision_management + name = "Incision Management System" + desc = "A true extension of the surgeon's body, this marvel instantly and completely prepares an incision, allowing for the immediate commencement of therapeutic steps." + value_upgrade = 3000 + item_reference = /obj/item/tool/surgery/scalpel/manager + on_init_argument = RESEARCH_UPGRADE_NOTHING_TO_PASS + behavior = RESEARCH_UPGRADE_ITEM + upgrade_type = ITEM_ACCESSORY_UPGRADE + clearance_req = 4 + +/datum/research_upgrades/item/nanosplints + name = "Reinforced Fiber Splints" + desc = "A set of splints made from durable carbon fiber sheets reinforced with flexible titanium lattice, comes in a stack of five." + value_upgrade = 800 + clearance_req = 3 + change_purchase = -200 + minimum_price = 200 + item_reference = /obj/item/stack/medical/splint/nano/research + on_init_argument = RESEARCH_UPGRADE_TIER_5 //adjust this to change amount of nanosplints in a stack, cant be higher than five, go change max_amount in the nanosplint itself, then change it. + behavior = RESEARCH_UPGRADE_ITEM + upgrade_type = ITEM_ACCESSORY_UPGRADE + +/datum/research_upgrades/item/flamer_tank + name = "Upgraded Incinerator Tank" + desc = "An upgraded incinerator tank, with larger capacity and able to handle stronger fuels." + value_upgrade = 300 + clearance_req = 1 + change_purchase = 100 + minimum_price = 100 + maximum_price = 1000 + item_reference = /obj/item/ammo_magazine/flamer_tank/custom/upgraded + on_init_argument = RESEARCH_UPGRADE_NOTHING_TO_PASS + behavior = RESEARCH_UPGRADE_ITEM + upgrade_type = ITEM_ACCESSORY_UPGRADE + +/datum/research_upgrades/item/flamer_tank/smoke + name = "Upgraded Incinerator Smoke Tank" + desc = "An upgraded incinerator smoke tank with a larger capacity." + value_upgrade = 100 //not useful enough to be expensive + clearance_req = 1 + item_reference = /obj/item/ammo_magazine/flamer_tank/smoke/upgraded + change_purchase = 50 + minimum_price = 100 + maximum_price = 500 + +/datum/research_upgrades/armor + name = "Armor" + behavior = RESEARCH_UPGRADE_CATEGORY + +/datum/research_upgrades/armor/translator + name = "Universal Translator Plate" + desc = "A uniform-attachable plate capable of translating any unknown language heard by the wearer." + value_upgrade = 2000 + on_init_argument = RESEARCH_UPGRADE_NOTHING_TO_PASS + behavior = RESEARCH_UPGRADE_ITEM + clearance_req = 6 + upgrade_type = ITEM_ARMOR_UPGRADE + item_reference = /obj/item/clothing/accessory/health/research_plate/translator + + +/datum/research_upgrades/armor/coagulator + name = "Active Blood Coagulator Plate" + desc = "A uniform-attachable plate capable of coagulating any bleeding wounds the user possesses." + value_upgrade = 1200 + on_init_argument = RESEARCH_UPGRADE_NOTHING_TO_PASS + behavior = RESEARCH_UPGRADE_ITEM + clearance_req = 2 + change_purchase = -200 + minimum_price = 200 + upgrade_type = ITEM_ARMOR_UPGRADE + item_reference = /obj/item/clothing/accessory/health/research_plate/coagulator + +/datum/research_upgrades/armor/emergency_injector + name = "Medical Emergency Injector" + desc = "A medical plate with two buttons on the sides and a hefty chemical tank. Attached to a uniform and on a simultaneous press, it injects an emergency dose of medical chemicals much larger than a normal emergency autoinjector. Single time use and is recycled in biomass printer. Features overdose protection." + value_upgrade = 250 + clearance_req = 1 + on_init_argument = RESEARCH_UPGRADE_NOTHING_TO_PASS + behavior = RESEARCH_UPGRADE_ITEM + change_purchase = -100 + minimum_price = 100 + upgrade_type = ITEM_ARMOR_UPGRADE + item_reference = /obj/item/clothing/accessory/health/research_plate/emergency_injector + +/datum/research_upgrades/armor/ceramic + name = "Ceramic Armor Plate" + desc = "A strong trauma plate, able to protect the user from a large amount of bullets. Completely useless against sharp objects." + value_upgrade = 500 + clearance_req = 4 + on_init_argument = RESEARCH_UPGRADE_NOTHING_TO_PASS + behavior = RESEARCH_UPGRADE_ITEM + upgrade_type = ITEM_ARMOR_UPGRADE + change_purchase = -50 + minimum_price = 200 + item_reference = /obj/item/clothing/accessory/health/ceramic_plate + +/datum/research_upgrades/armor/preservation + name = "Death Preservation Plate" + desc = "Preservation plate which activates once the user is dead, uses variety of different substances and sensors to slow down the decay and increase the time before the user is permanently dead, due to small tank of preservatives, it needs to be replaced on each death. Extends time to permadeath by around four minutes." + value_upgrade = 500 + clearance_req = 4 + on_init_argument = RESEARCH_UPGRADE_NOTHING_TO_PASS + behavior = RESEARCH_UPGRADE_ITEM + upgrade_type = ITEM_ARMOR_UPGRADE + change_purchase = -100 + minimum_price = 100 + item_reference = /obj/item/clothing/accessory/health/research_plate/anti_decay + diff --git a/code/datums/shuttles.dm b/code/datums/shuttles.dm index 98bcf296755b..dc3c5c4d8a5b 100644 --- a/code/datums/shuttles.dm +++ b/code/datums/shuttles.dm @@ -58,48 +58,30 @@ . = ..() if(!.) return - var/list/turfs = block( locate(.[MAP_MINX], .[MAP_MINY], .[MAP_MINZ]), - locate(.[MAP_MAXX], .[MAP_MAXY], .[MAP_MAXZ])) - for(var/i in 1 to turfs.len) - var/turf/place = turfs[i] + for(var/turf/place as anything in block(.[MAP_MINX], .[MAP_MINY], .[MAP_MINZ], .[MAP_MAXX], .[MAP_MAXY], .[MAP_MAXZ])) + // ================== CM Change ================== + // We perform atom initialization of the docking_ports BEFORE skipping space, + // because our lifeboats have their corners as object props and still + // reside on space turfs. Notably the bottom left corner, which also contains + // the docking port. + + for(var/obj/docking_port/mobile/port in place) + SSatoms.InitializeAtoms(list(port)) + if(register) + port.register() + if(istype(place, /turf/open/space)) // This assumes all shuttles are loaded in a single spot then moved to their real destination. continue if(length(place.baseturfs) < 2) // Some snowflake shuttle shit continue place.baseturfs.Insert(3, /turf/baseturf_skipover/shuttle) - - for(var/obj/docking_port/mobile/port in place) - if(register) - port.register() - if(isnull(port_x_offset)) - continue - switch(port.dir) // Yeah this looks a little ugly but mappers had to do this in their head before - if(NORTH) - port.width = width - port.height = height - port.dwidth = port_x_offset - 1 - port.dheight = port_y_offset - 1 - if(EAST) - port.width = height - port.height = width - port.dwidth = height - port_y_offset - port.dheight = port_x_offset - 1 - if(SOUTH) - port.width = width - port.height = height - port.dwidth = width - port_x_offset - port.dheight = height - port_y_offset - if(WEST) - port.width = height - port.height = width - port.dwidth = port_y_offset - 1 - port.dheight = width - port_x_offset + // =============== END CM Change ================= //Whatever special stuff you want -/datum/map_template/shuttle/proc/post_load(obj/docking_port/mobile/M) +/datum/map_template/shuttle/post_load(obj/docking_port/mobile/M) if(movement_force) M.movement_force = movement_force.Copy() - + M.linkup(src) /datum/map_template/shuttle/vehicle shuttle_id = MOBILE_SHUTTLE_VEHICLE_ELEVATOR @@ -115,3 +97,9 @@ /datum/map_template/shuttle/trijent_elevator/B elevator_network = "B" + +/datum/map_template/shuttle/trijent_elevator/post_load(obj/docking_port/mobile/M) + . = ..() + var/obj/docking_port/mobile/trijent_elevator/elev = M + elev.elevator_network = elevator_network + log_debug("Adding network [elevator_network] to [M.id]") diff --git a/code/datums/skills/civilian.dm b/code/datums/skills/civilian.dm index 9b55adc9b1f4..0ff13ae67225 100644 --- a/code/datums/skills/civilian.dm +++ b/code/datums/skills/civilian.dm @@ -29,6 +29,7 @@ CIVILIAN name = "ICC CL - Black Market ERT" skills = list( SKILL_CQC = SKILL_CQC_DEFAULT, + SKILL_FIREMAN = SKILL_FIREMAN_TRAINED, SKILL_ENDURANCE = SKILL_ENDURANCE_TRAINED, SKILL_ENGINEER = SKILL_ENGINEER_ENGI, //The ASRS consoles SKILL_FIREARMS = SKILL_FIREARMS_CIVILIAN, @@ -57,11 +58,13 @@ CIVILIAN skills = list( SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_TRAINED, SKILL_ENDURANCE = SKILL_ENDURANCE_SURVIVOR, + SKILL_FIREMAN = SKILL_FIREMAN_TRAINED, ) /datum/skills/civilian/survivor/manager name = "Weyland-Yutani Manager" skills = list( + SKILL_FIREMAN = SKILL_FIREMAN_TRAINED, SKILL_LEADERSHIP = SKILL_LEAD_MASTER, SKILL_OVERWATCH = SKILL_OVERWATCH_TRAINED, SKILL_MEDICAL = SKILL_MEDICAL_TRAINED, @@ -70,7 +73,7 @@ CIVILIAN /datum/skills/civilian/survivor/goon name = "Survivor Goon" - skills = list( + additional_skills = list( SKILL_CQC = SKILL_CQC_TRAINED, SKILL_POLICE = SKILL_POLICE_SKILLED, SKILL_FIREMAN = SKILL_FIREMAN_SKILLED, @@ -120,6 +123,7 @@ CIVILIAN /datum/skills/civilian/survivor/doctor name = "Survivor Doctor" additional_skills = list( + SKILL_FIREMAN = SKILL_FIREMAN_TRAINED, SKILL_MEDICAL = SKILL_MEDICAL_DOCTOR, SKILL_SURGERY = SKILL_SURGERY_TRAINED, ) @@ -136,6 +140,7 @@ CIVILIAN /datum/skills/civilian/survivor/scientist name = "Survivor Scientist" additional_skills = list( + SKILL_FIREMAN = SKILL_FIREMAN_TRAINED, SKILL_MEDICAL = SKILL_MEDICAL_DOCTOR, SKILL_SURGERY = SKILL_SURGERY_TRAINED, SKILL_RESEARCH = SKILL_RESEARCH_TRAINED, @@ -144,6 +149,7 @@ CIVILIAN /datum/skills/civilian/survivor/chef name = "Survivor Chef" additional_skills = list( + SKILL_FIREMAN = SKILL_FIREMAN_TRAINED, SKILL_MELEE_WEAPONS = SKILL_MELEE_SUPER, SKILL_DOMESTIC = SKILL_DOMESTIC_TRAINED, ) @@ -151,6 +157,7 @@ CIVILIAN /datum/skills/civilian/survivor/miner name = "Survivor Miner" additional_skills = list( + SKILL_FIREMAN = SKILL_FIREMAN_TRAINED, SKILL_ENGINEER = SKILL_ENGINEER_TRAINED, SKILL_POWERLOADER = SKILL_POWERLOADER_MASTER, SKILL_VEHICLE = SKILL_VEHICLE_SMALL, @@ -159,13 +166,16 @@ CIVILIAN /datum/skills/civilian/survivor/trucker name = "Survivor Trucker" additional_skills = list( + SKILL_FIREMAN = SKILL_FIREMAN_TRAINED, SKILL_ENGINEER = SKILL_ENGINEER_ENGI, + SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, SKILL_VEHICLE = SKILL_VEHICLE_CREWMAN, ) /datum/skills/civilian/survivor/engineer name = "Survivor Engineer" additional_skills = list( + SKILL_FIREMAN = SKILL_FIREMAN_TRAINED, SKILL_ENGINEER = SKILL_ENGINEER_ENGI, SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, SKILL_POWERLOADER = SKILL_POWERLOADER_MASTER, @@ -175,6 +185,7 @@ CIVILIAN /datum/skills/civilian/survivor/chaplain name = "Survivor Chaplain" additional_skills = list( + SKILL_FIREMAN = SKILL_FIREMAN_TRAINED, SKILL_LEADERSHIP = SKILL_LEAD_TRAINED, ) @@ -198,6 +209,7 @@ CIVILIAN /datum/skills/civilian/survivor/prisoner name = "Survivor Prisoner" additional_skills = list( + SKILL_FIREMAN = SKILL_FIREMAN_TRAINED, SKILL_CQC = SKILL_CQC_SKILLED, SKILL_FIREARMS = SKILL_FIREARMS_TRAINED, SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED, @@ -207,6 +219,7 @@ CIVILIAN /datum/skills/civilian/survivor/gangleader name = "Survivor Gang Leader" additional_skills = list( + SKILL_FIREMAN = SKILL_FIREMAN_TRAINED, SKILL_CQC = SKILL_CQC_SKILLED, SKILL_FIREARMS = SKILL_FIREARMS_TRAINED, SKILL_LEADERSHIP = SKILL_LEAD_TRAINED, diff --git a/code/datums/skills/clf.dm b/code/datums/skills/clf.dm index 6042febb6b48..88aa14a41f79 100644 --- a/code/datums/skills/clf.dm +++ b/code/datums/skills/clf.dm @@ -10,7 +10,7 @@ COLONIAL LIBERATION FRONT SKILL_FIREARMS = SKILL_FIREARMS_TRAINED, SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED, SKILL_POLICE = SKILL_POLICE_SKILLED, - SKILL_FIREMAN = SKILL_FIREMAN_SKILLED, + SKILL_FIREMAN = SKILL_FIREMAN_TRAINED, SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_TRAINED, SKILL_ENGINEER = SKILL_ENGINEER_TRAINED, SKILL_MEDICAL = SKILL_MEDICAL_TRAINED, @@ -22,6 +22,7 @@ COLONIAL LIBERATION FRONT /datum/skills/clf/combat_engineer name = "CLF Engineer" skills = list( + SKILL_FIREMAN = SKILL_FIREMAN_TRAINED, SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, SKILL_ENGINEER = SKILL_ENGINEER_ENGI, SKILL_MEDICAL = SKILL_MEDICAL_TRAINED, @@ -34,6 +35,7 @@ COLONIAL LIBERATION FRONT /datum/skills/clf/combat_medic name = "CLF Medic" skills = list( + SKILL_FIREMAN = SKILL_FIREMAN_TRAINED, SKILL_MEDICAL = SKILL_MEDICAL_MEDIC, SKILL_SURGERY = SKILL_SURGERY_TRAINED, SKILL_VEHICLE = SKILL_VEHICLE_SMALL, diff --git a/code/datums/skills/commando.dm b/code/datums/skills/commando.dm index dabae682bd0b..ed5e5ee086e4 100644 --- a/code/datums/skills/commando.dm +++ b/code/datums/skills/commando.dm @@ -8,6 +8,7 @@ SPEC-OPS name = "Commando" skills = list( SKILL_CQC = SKILL_CQC_EXPERT, + SKILL_FIREMAN = SKILL_FIREMAN_SKILLED, SKILL_ENGINEER = SKILL_ENGINEER_ENGI, SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, SKILL_FIREARMS = SKILL_FIREARMS_EXPERT, @@ -22,6 +23,7 @@ SPEC-OPS name = "Commando Medic" skills = list( SKILL_CQC = SKILL_CQC_EXPERT, + SKILL_FIREMAN = SKILL_FIREMAN_SKILLED, SKILL_ENGINEER = SKILL_ENGINEER_ENGI, SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, SKILL_FIREARMS = SKILL_FIREARMS_EXPERT, @@ -37,6 +39,7 @@ SPEC-OPS name = "Commando Leader" skills = list( SKILL_CQC = SKILL_CQC_EXPERT, + SKILL_FIREMAN = SKILL_FIREMAN_SKILLED, SKILL_ENGINEER = SKILL_ENGINEER_ENGI, SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, SKILL_FIREARMS = SKILL_FIREARMS_EXPERT, @@ -52,6 +55,7 @@ SPEC-OPS name = "Deathsquad" skills = list( SKILL_CQC = SKILL_CQC_MASTER, + SKILL_FIREMAN = SKILL_FIREMAN_SKILLED, SKILL_ENGINEER = SKILL_ENGINEER_ENGI, SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, SKILL_FIREARMS = SKILL_FIREARMS_EXPERT, @@ -66,6 +70,7 @@ SPEC-OPS name = "Deathsquad Leader" skills = list( SKILL_CQC = SKILL_CQC_MASTER, + SKILL_FIREMAN = SKILL_FIREMAN_MASTER, SKILL_ENGINEER = SKILL_ENGINEER_ENGI, SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, SKILL_FIREARMS = SKILL_FIREARMS_EXPERT, @@ -81,6 +86,7 @@ SPEC-OPS name = "Deathsquad Officer" skills = list( SKILL_CQC = SKILL_CQC_MASTER, + SKILL_FIREMAN = SKILL_FIREMAN_MASTER, SKILL_ENGINEER = SKILL_ENGINEER_ENGI, SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, SKILL_FIREARMS = SKILL_FIREARMS_EXPERT, @@ -97,6 +103,7 @@ SPEC-OPS name = "Spy" skills = list( SKILL_CQC = SKILL_CQC_TRAINED, + SKILL_FIREMAN = SKILL_FIREMAN_TRAINED, SKILL_FIREARMS = SKILL_FIREARMS_EXPERT, SKILL_ENGINEER = SKILL_ENGINEER_ENGI, SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, @@ -109,6 +116,7 @@ SPEC-OPS name = "Ninja" skills = list( SKILL_CQC = SKILL_CQC_MASTER, + SKILL_FIREMAN = SKILL_FIREMAN_TRAINED, SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_TRAINED, SKILL_MEDICAL = SKILL_MEDICAL_TRAINED, SKILL_MELEE_WEAPONS = SKILL_MELEE_SUPER, diff --git a/code/datums/skills/dutch.dm b/code/datums/skills/dutch.dm index 5c2c63a8c463..4f19233e66d0 100644 --- a/code/datums/skills/dutch.dm +++ b/code/datums/skills/dutch.dm @@ -2,6 +2,7 @@ name = "Dutch" skills = list( SKILL_CQC = SKILL_CQC_MASTER, + SKILL_FIREMAN = SKILL_FIREMAN_MAX, SKILL_MELEE_WEAPONS = SKILL_MELEE_MAX, SKILL_ENGINEER = SKILL_ENGINEER_ENGI, SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, diff --git a/code/datums/skills/forecon.dm b/code/datums/skills/forecon.dm index 4799dd68d617..724a49ee98ca 100644 --- a/code/datums/skills/forecon.dm +++ b/code/datums/skills/forecon.dm @@ -12,6 +12,7 @@ MILITARY SURVIVORS SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_DEFAULT, SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED, SKILL_CQC = SKILL_CQC_TRAINED, + SKILL_FIREMAN = SKILL_FIREMAN_TRAINED, SKILL_FIREARMS = SKILL_FIREARMS_TRAINED, SKILL_MEDICAL = SKILL_MEDICAL_TRAINED, SKILL_ENDURANCE = SKILL_ENDURANCE_SURVIVOR, @@ -27,6 +28,7 @@ MILITARY SURVIVORS SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED, SKILL_CQC = SKILL_CQC_TRAINED, + SKILL_FIREMAN = SKILL_FIREMAN_TRAINED, SKILL_FIREARMS = SKILL_FIREARMS_TRAINED, SKILL_MEDICAL = SKILL_MEDICAL_MEDIC, SKILL_SURGERY = SKILL_SURGERY_NOVICE, @@ -43,6 +45,7 @@ MILITARY SURVIVORS SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_DEFAULT, SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED, SKILL_CQC = SKILL_CQC_TRAINED, + SKILL_FIREMAN = SKILL_FIREMAN_TRAINED, SKILL_FIREARMS = SKILL_FIREARMS_TRAINED, SKILL_SPEC_WEAPONS = SKILL_SPEC_SCOUT, SKILL_MEDICAL = SKILL_MEDICAL_TRAINED, @@ -59,6 +62,7 @@ MILITARY SURVIVORS SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_DEFAULT, SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED, SKILL_CQC = SKILL_CQC_TRAINED, + SKILL_FIREMAN = SKILL_FIREMAN_TRAINED, SKILL_FIREARMS = SKILL_FIREARMS_TRAINED, SKILL_SPEC_WEAPONS = SKILL_SPEC_SMARTGUN, SKILL_MEDICAL = SKILL_MEDICAL_TRAINED, @@ -75,6 +79,7 @@ MILITARY SURVIVORS SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_DEFAULT, SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED, SKILL_CQC = SKILL_CQC_TRAINED, + SKILL_FIREMAN = SKILL_FIREMAN_TRAINED, SKILL_FIREARMS = SKILL_FIREARMS_TRAINED, SKILL_SPEC_WEAPONS = SKILL_SPEC_SNIPER, SKILL_MEDICAL = SKILL_MEDICAL_TRAINED, @@ -91,6 +96,7 @@ MILITARY SURVIVORS SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_DEFAULT, SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED, SKILL_CQC = SKILL_CQC_SKILLED, + SKILL_FIREMAN = SKILL_FIREMAN_SKILLED, SKILL_FIREARMS = SKILL_FIREARMS_TRAINED, SKILL_POLICE = SKILL_POLICE_SKILLED, SKILL_JTAC = SKILL_JTAC_TRAINED, diff --git a/code/datums/skills/freelancer.dm b/code/datums/skills/freelancer.dm index 7f7256318edb..09df9f32369c 100644 --- a/code/datums/skills/freelancer.dm +++ b/code/datums/skills/freelancer.dm @@ -9,6 +9,7 @@ FREELANCERS /datum/skills/freelancer name = "Freelancer Private" skills = list( + SKILL_FIREMAN = SKILL_FIREMAN_TRAINED, SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, SKILL_ENGINEER = SKILL_ENGINEER_ENGI, SKILL_ENDURANCE = SKILL_ENDURANCE_TRAINED, @@ -17,6 +18,7 @@ FREELANCERS /datum/skills/freelancer/combat_medic name = "Freelancer Medic" skills = list( + SKILL_FIREMAN = SKILL_FIREMAN_TRAINED, SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, SKILL_ENGINEER = SKILL_ENGINEER_ENGI, SKILL_ENDURANCE = SKILL_ENDURANCE_TRAINED, @@ -27,6 +29,7 @@ FREELANCERS /datum/skills/freelancer/SL name = "Freelancer Leader" skills = list( + SKILL_FIREMAN = SKILL_FIREMAN_SKILLED, SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, SKILL_ENGINEER = SKILL_ENGINEER_ENGI, SKILL_ENDURANCE = SKILL_ENDURANCE_TRAINED, diff --git a/code/datums/skills/gladiator.dm b/code/datums/skills/gladiator.dm index 7ba2c9eff455..7757fd928972 100644 --- a/code/datums/skills/gladiator.dm +++ b/code/datums/skills/gladiator.dm @@ -2,6 +2,7 @@ name = "Gladiator" skills = list( SKILL_CQC = SKILL_CQC_SKILLED, + SKILL_FIREMAN = SKILL_FIREMAN_SKILLED, SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED, SKILL_FIREARMS = SKILL_FIREARMS_CIVILIAN, SKILL_LEADERSHIP = SKILL_LEAD_NOVICE, @@ -13,6 +14,7 @@ name = "Gladiator Champion" skills = list( SKILL_CQC = SKILL_CQC_MASTER, + SKILL_FIREMAN = SKILL_FIREMAN_MAX, SKILL_MELEE_WEAPONS = SKILL_MELEE_SUPER, SKILL_LEADERSHIP = SKILL_LEAD_TRAINED, SKILL_MEDICAL = SKILL_MEDICAL_MEDIC, @@ -24,6 +26,7 @@ name = "Gladiator Leader" skills = list( SKILL_CQC = SKILL_CQC_MASTER, + SKILL_FIREMAN = SKILL_FIREMAN_MAX, SKILL_MELEE_WEAPONS = SKILL_MELEE_SUPER, SKILL_MEDICAL = SKILL_MEDICAL_MEDIC, SKILL_LEADERSHIP = SKILL_LEAD_MASTER, //Spartacus! diff --git a/code/datums/skills/mercenary.dm b/code/datums/skills/mercenary.dm index 8d842ea30dd2..1dc18eaa2fbc 100644 --- a/code/datums/skills/mercenary.dm +++ b/code/datums/skills/mercenary.dm @@ -2,6 +2,7 @@ name = "Mercenary" skills = list( SKILL_CQC = SKILL_CQC_SKILLED, + SKILL_FIREMAN = SKILL_FIREMAN_SKILLED, SKILL_ENGINEER = SKILL_ENGINEER_ENGI, SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, SKILL_FIREARMS = SKILL_FIREARMS_EXPERT, @@ -14,6 +15,7 @@ name = "Elite Mercenary" skills = list( SKILL_CQC = SKILL_CQC_SKILLED, + SKILL_FIREMAN = SKILL_FIREMAN_SKILLED, SKILL_ENGINEER = SKILL_ENGINEER_ENGI, SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, SKILL_FIREARMS = SKILL_FIREARMS_MAX, @@ -28,6 +30,7 @@ name = "Elite Mercenary Medic" skills = list( SKILL_CQC = SKILL_CQC_SKILLED, + SKILL_FIREMAN = SKILL_FIREMAN_SKILLED, SKILL_ENGINEER = SKILL_ENGINEER_ENGI, SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, SKILL_FIREARMS = SKILL_FIREARMS_MAX, @@ -42,6 +45,7 @@ name = "Elite Mercenary Engineer" skills = list( SKILL_CQC = SKILL_CQC_SKILLED, + SKILL_FIREMAN = SKILL_FIREMAN_SKILLED, SKILL_ENGINEER = SKILL_ENGINEER_MASTER, SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_MASTER, SKILL_FIREARMS = SKILL_FIREARMS_MAX, @@ -57,6 +61,7 @@ name = "Elite Mercenary Heavy" skills = list( SKILL_CQC = SKILL_CQC_SKILLED, + SKILL_FIREMAN = SKILL_FIREMAN_SKILLED, SKILL_ENGINEER = SKILL_ENGINEER_ENGI, SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, SKILL_FIREARMS = SKILL_FIREARMS_MAX, @@ -72,6 +77,7 @@ name = "Elite Mercenary Leader" skills = list( SKILL_CQC = SKILL_CQC_SKILLED, + SKILL_FIREMAN = SKILL_FIREMAN_SKILLED, SKILL_ENGINEER = SKILL_ENGINEER_ENGI, SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, SKILL_FIREARMS = SKILL_FIREARMS_MAX, diff --git a/code/datums/skills/misc.dm b/code/datums/skills/misc.dm index e4f78219b5c6..0f0ca657f995 100644 --- a/code/datums/skills/misc.dm +++ b/code/datums/skills/misc.dm @@ -12,6 +12,7 @@ MISCELLANEOUS SKILL_OVERWATCH = SKILL_OVERWATCH_TRAINED, SKILL_POWERLOADER = SKILL_POWERLOADER_MASTER, SKILL_ENGINEER = SKILL_ENGINEER_ENGI, + SKILL_FIREMAN = SKILL_FIREMAN_TRAINED, SKILL_LEADERSHIP = SKILL_LEAD_TRAINED, SKILL_JTAC = SKILL_JTAC_EXPERT, ) @@ -36,6 +37,7 @@ MISCELLANEOUS skills = list( SKILL_FIREARMS = SKILL_FIREARMS_CIVILIAN, SKILL_CQC = SKILL_CQC_MASTER, + SKILL_FIREMAN = SKILL_FIREMAN_TRAINED, SKILL_MELEE_WEAPONS = SKILL_MELEE_SUPER, SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_MASTER, SKILL_ENGINEER = SKILL_ENGINEER_MASTER, diff --git a/code/datums/skills/upp.dm b/code/datums/skills/upp.dm index 77401ab62878..e367372719d6 100644 --- a/code/datums/skills/upp.dm +++ b/code/datums/skills/upp.dm @@ -37,6 +37,7 @@ UNITED PROGRESSIVE PEOPLES SKILL_SURGERY = SKILL_SURGERY_TRAINED, SKILL_ENDURANCE = SKILL_ENDURANCE_TRAINED, SKILL_CQC = SKILL_CQC_DEFAULT, + SKILL_FIREMAN = SKILL_FIREMAN_TRAINED, SKILL_FIREARMS = SKILL_FIREARMS_TRAINED, ) @@ -47,6 +48,7 @@ UNITED PROGRESSIVE PEOPLES SKILL_ENGINEER = SKILL_ENGINEER_TRAINED, SKILL_ENDURANCE = SKILL_ENDURANCE_MASTER, SKILL_CQC = SKILL_CQC_TRAINED, + SKILL_FIREMAN = SKILL_FIREMAN_TRAINED, SKILL_LEADERSHIP = SKILL_LEAD_TRAINED, SKILL_JTAC = SKILL_JTAC_TRAINED, SKILL_SPEC_WEAPONS = SKILL_SPEC_UPP, @@ -61,6 +63,7 @@ UNITED PROGRESSIVE PEOPLES SKILL_ENGINEER = SKILL_ENGINEER_ENGI, SKILL_ENDURANCE = SKILL_ENDURANCE_MASTER, SKILL_CQC = SKILL_CQC_TRAINED, + SKILL_FIREMAN = SKILL_FIREMAN_SKILLED, SKILL_LEADERSHIP = SKILL_LEAD_EXPERT, SKILL_OVERWATCH = SKILL_OVERWATCH_TRAINED, SKILL_MEDICAL = SKILL_MEDICAL_MEDIC, @@ -162,6 +165,7 @@ UNITED PROGRESSIVE PEOPLES SKILL_MEDICAL = SKILL_MEDICAL_TRAINED, SKILL_ENDURANCE = SKILL_ENDURANCE_TRAINED, SKILL_CQC = SKILL_CQC_TRAINED, + SKILL_FIREMAN = SKILL_FIREMAN_TRAINED, SKILL_FIREARMS = SKILL_FIREARMS_TRAINED, SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED, SKILL_VEHICLE = SKILL_VEHICLE_DEFAULT, @@ -178,6 +182,7 @@ UNITED PROGRESSIVE PEOPLES SKILL_ENDURANCE = SKILL_ENDURANCE_TRAINED, SKILL_FIREARMS = SKILL_FIREARMS_TRAINED, SKILL_CQC = SKILL_CQC_TRAINED, + SKILL_FIREMAN = SKILL_FIREMAN_TRAINED, SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED, SKILL_VEHICLE = SKILL_VEHICLE_DEFAULT, SKILL_JTAC = SKILL_JTAC_TRAINED, @@ -197,6 +202,7 @@ UNITED PROGRESSIVE PEOPLES SKILL_FIREARMS = SKILL_FIREARMS_TRAINED, SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED, SKILL_CQC = SKILL_CQC_TRAINED, + SKILL_FIREMAN = SKILL_FIREMAN_TRAINED, SKILL_VEHICLE = SKILL_VEHICLE_LARGE, ) @@ -209,6 +215,7 @@ UNITED PROGRESSIVE PEOPLES SKILL_SPEC_WEAPONS = SKILL_SPEC_UPP, SKILL_FIREARMS = SKILL_FIREARMS_TRAINED, SKILL_CQC = SKILL_CQC_TRAINED, + SKILL_FIREMAN = SKILL_FIREMAN_SKILLED, SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED, SKILL_LEADERSHIP = SKILL_LEAD_EXPERT, SKILL_OVERWATCH = SKILL_OVERWATCH_TRAINED, diff --git a/code/datums/skills/uscm.dm b/code/datums/skills/uscm.dm index 8a6d2fd2c8c2..f694e8789dcd 100644 --- a/code/datums/skills/uscm.dm +++ b/code/datums/skills/uscm.dm @@ -18,6 +18,7 @@ United States Colonial Marines /datum/skills/combat_medic name = "Combat Medic" skills = list( + SKILL_FIREMAN = SKILL_FIREMAN_TRAINED, SKILL_MEDICAL = SKILL_MEDICAL_MEDIC, SKILL_SURGERY = SKILL_SURGERY_NOVICE, SKILL_JTAC = SKILL_JTAC_BEGINNER, @@ -33,6 +34,7 @@ United States Colonial Marines /datum/skills/combat_engineer name = "Combat Engineer" skills = list( + SKILL_FIREMAN = SKILL_FIREMAN_TRAINED, SKILL_ENGINEER = SKILL_ENGINEER_ENGI, SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, SKILL_VEHICLE = SKILL_VEHICLE_SMALL, @@ -42,6 +44,7 @@ United States Colonial Marines /datum/skills/smartgunner name = "Squad Smartgunner" skills = list( + SKILL_FIREMAN = SKILL_FIREMAN_TRAINED, SKILL_SPEC_WEAPONS = SKILL_SPEC_SMARTGUN, SKILL_JTAC = SKILL_JTAC_BEGINNER, ) @@ -49,6 +52,7 @@ United States Colonial Marines /datum/skills/specialist name = "Squad Weapons Specialist" skills = list( + SKILL_FIREMAN = SKILL_FIREMAN_TRAINED, SKILL_CQC = SKILL_CQC_TRAINED, SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_TRAINED, SKILL_ENGINEER = SKILL_ENGINEER_TRAINED, //to use c4 in demo set. @@ -61,6 +65,7 @@ United States Colonial Marines /datum/skills/tl name = "Fireteam Leader" skills = list( + SKILL_FIREMAN = SKILL_FIREMAN_TRAINED, SKILL_ENGINEER = SKILL_ENGINEER_ENGI, SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, SKILL_JTAC = SKILL_JTAC_EXPERT, @@ -84,6 +89,7 @@ United States Colonial Marines /datum/skills/intel name = "Intelligence Officer" skills = list( + SKILL_FIREMAN = SKILL_FIREMAN_TRAINED, SKILL_ENGINEER = SKILL_ENGINEER_ENGI, SKILL_LEADERSHIP = SKILL_LEAD_TRAINED, SKILL_OVERWATCH = SKILL_OVERWATCH_TRAINED, @@ -103,6 +109,7 @@ MILITARY NONCOMBATANT /datum/skills/doctor name = "Doctor" skills = list( + SKILL_FIREMAN = SKILL_FIREMAN_TRAINED, SKILL_FIREARMS = SKILL_FIREARMS_CIVILIAN, SKILL_MEDICAL = SKILL_MEDICAL_DOCTOR, SKILL_SURGERY = SKILL_SURGERY_TRAINED, @@ -133,6 +140,7 @@ MILITARY NONCOMBATANT SKILL_POWERLOADER = SKILL_POWERLOADER_MASTER, SKILL_LEADERSHIP = SKILL_LEAD_TRAINED, SKILL_OVERWATCH = SKILL_OVERWATCH_TRAINED, + SKILL_FIREMAN = SKILL_FIREMAN_TRAINED, SKILL_MEDICAL = SKILL_MEDICAL_MEDIC, SKILL_SURGERY = SKILL_SURGERY_NOVICE, SKILL_JTAC = SKILL_JTAC_TRAINED, @@ -145,6 +153,7 @@ MILITARY NONCOMBATANT SKILL_PILOT = SKILL_PILOT_TRAINED, SKILL_POWERLOADER = SKILL_POWERLOADER_MASTER, SKILL_LEADERSHIP = SKILL_LEAD_TRAINED, + SKILL_FIREMAN = SKILL_FIREMAN_TRAINED, SKILL_MEDICAL = SKILL_MEDICAL_MEDIC, SKILL_SURGERY = SKILL_SURGERY_NOVICE, SKILL_JTAC = SKILL_JTAC_TRAINED, @@ -187,6 +196,7 @@ MILITARY NONCOMBATANT /datum/skills/OT name = "Ordnance Technician" skills = list( + SKILL_FIREMAN = SKILL_FIREMAN_TRAINED, SKILL_ENGINEER = SKILL_ENGINEER_MASTER, SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_MASTER, SKILL_POWERLOADER = SKILL_POWERLOADER_MASTER, @@ -195,6 +205,7 @@ MILITARY NONCOMBATANT /datum/skills/MT name = "Maintenance Technician" skills = list( + SKILL_FIREMAN = SKILL_FIREMAN_TRAINED, SKILL_ENGINEER = SKILL_ENGINEER_MASTER, SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_MASTER, SKILL_POWERLOADER = SKILL_POWERLOADER_MASTER, @@ -206,6 +217,7 @@ MILITARY NONCOMBATANT skills = list( SKILL_FIREARMS = SKILL_FIREARMS_EXPERT, // need to hunt food somehow SKILL_ENGINEER = SKILL_ENGINEER_TRAINED, + SKILL_FIREMAN = SKILL_FIREMAN_TRAINED, SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_TRAINED, SKILL_DOMESTIC = SKILL_DOMESTIC_MASTER ) @@ -213,6 +225,7 @@ MILITARY NONCOMBATANT /datum/skills/CT name = "Cargo Technician" skills = list( + SKILL_FIREMAN = SKILL_FIREMAN_TRAINED, SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_TRAINED, SKILL_POWERLOADER = SKILL_POWERLOADER_MASTER, ) @@ -239,7 +252,8 @@ COMMAND STAFF SKILL_JTAC = SKILL_JTAC_MASTER, SKILL_SPEC_WEAPONS = SKILL_SPEC_ALL, SKILL_EXECUTION = SKILL_EXECUTION_TRAINED, //can BE people - SKILL_INTEL = SKILL_INTEL_EXPERT + SKILL_INTEL = SKILL_INTEL_EXPERT, + SKILL_VEHICLE = SKILL_VEHICLE_LARGE, ) /datum/skills/commander @@ -261,7 +275,8 @@ COMMAND STAFF SKILL_JTAC = SKILL_JTAC_MASTER, SKILL_EXECUTION = SKILL_EXECUTION_TRAINED, //can BE people SKILL_INTEL = SKILL_INTEL_EXPERT, - SKILL_NAVIGATIONS = SKILL_NAVIGATIONS_TRAINED //can change ship alt + SKILL_NAVIGATIONS = SKILL_NAVIGATIONS_TRAINED, //can change ship alt + SKILL_VEHICLE = SKILL_VEHICLE_LARGE, ) /datum/skills/XO @@ -282,6 +297,7 @@ COMMAND STAFF SKILL_JTAC = SKILL_JTAC_MASTER, SKILL_INTEL = SKILL_INTEL_EXPERT, SKILL_NAVIGATIONS = SKILL_NAVIGATIONS_TRAINED, + SKILL_VEHICLE = SKILL_VEHICLE_LARGE, ) /datum/skills/SO @@ -292,12 +308,14 @@ COMMAND STAFF SKILL_LEADERSHIP = SKILL_LEAD_EXPERT, SKILL_OVERWATCH = SKILL_OVERWATCH_TRAINED, SKILL_MEDICAL = SKILL_MEDICAL_MEDIC, + SKILL_SURGERY = SKILL_SURGERY_NOVICE, SKILL_POLICE = SKILL_POLICE_FLASH, SKILL_FIREMAN = SKILL_FIREMAN_TRAINED, SKILL_VEHICLE = SKILL_VEHICLE_SMALL, SKILL_POWERLOADER = SKILL_POWERLOADER_TRAINED, SKILL_JTAC = SKILL_JTAC_EXPERT, SKILL_INTEL = SKILL_INTEL_TRAINED, + SKILL_VEHICLE = SKILL_VEHICLE_LARGE, ) /datum/skills/SEA diff --git a/code/datums/skills/wygoons.dm b/code/datums/skills/wygoons.dm new file mode 100644 index 000000000000..2d2c247bd1ea --- /dev/null +++ b/code/datums/skills/wygoons.dm @@ -0,0 +1,36 @@ +/datum/skills/wy_goon + name = "Corporate Security" + skills = list( + SKILL_CQC = SKILL_CQC_SKILLED, + SKILL_POLICE = SKILL_POLICE_SKILLED, + SKILL_FIREMAN = SKILL_FIREMAN_SKILLED, + SKILL_ENDURANCE = SKILL_ENDURANCE_TRAINED, + SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED, + ) + +/datum/skills/wy_goon_tech + name = "Corporate Security Support Technician" + skills = list( + SKILL_CQC = SKILL_CQC_SKILLED, + SKILL_POLICE = SKILL_POLICE_SKILLED, + SKILL_FIREMAN = SKILL_FIREMAN_TRAINED, + SKILL_ENDURANCE = SKILL_ENDURANCE_TRAINED, + SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED, + SKILL_MEDICAL = SKILL_MEDICAL_TRAINED, + SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, + SKILL_ENGINEER = SKILL_ENGINEER_ENGI, + ) + +/datum/skills/wy_goon_lead + name = "Corporate Security Leader" + skills = list( + SKILL_CQC = SKILL_CQC_SKILLED, + SKILL_POLICE = SKILL_POLICE_SKILLED, + SKILL_FIREMAN = SKILL_FIREMAN_SKILLED, + SKILL_ENDURANCE = SKILL_ENDURANCE_TRAINED, + SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED, + SKILL_MEDICAL = SKILL_MEDICAL_TRAINED, + SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, + SKILL_ENGINEER = SKILL_ENGINEER_ENGI, + SKILL_LEADERSHIP = SKILL_LEAD_TRAINED, + ) diff --git a/code/datums/soundOutput.dm b/code/datums/soundOutput.dm index 1f4512b28d59..6ebc32c7e41f 100644 --- a/code/datums/soundOutput.dm +++ b/code/datums/soundOutput.dm @@ -4,13 +4,25 @@ var/list/soundscape_playlist = list() //Updated on changing areas var/ambience = null //The file currently being played as ambience var/status_flags = 0 //For things like ear deafness, psychodelic effects, and other things that change how all sounds behave - var/list/echo -/datum/soundOutput/New(client/C) - if(!C) + + /// Currently applied environmental reverb. + VAR_PROTECTED/owner_environment = SOUND_ENVIRONMENT_NONE + +/datum/soundOutput/New(client/client) + if(!client) qdel(src) return - owner = C - . = ..() + owner = client + RegisterSignal(owner.mob, COMSIG_MOVABLE_MOVED, PROC_REF(on_mob_moved)) + RegisterSignal(owner.mob, COMSIG_MOB_LOGOUT, PROC_REF(on_mob_logout)) + RegisterSignal(owner, COMSIG_CLIENT_MOB_LOGGED_IN, PROC_REF(on_client_mob_logged_in)) + return ..() + +/datum/soundOutput/Destroy() + UnregisterSignal(owner.mob, list(COMSIG_MOVABLE_MOVED, COMSIG_MOB_LOGOUT)) + UnregisterSignal(owner, COMSIG_CLIENT_MOB_LOGGED_IN) + owner = null + return ..() /datum/soundOutput/proc/process_sound(datum/sound_template/T) var/sound/S = sound(T.file, T.wait, T.repeat) @@ -22,7 +34,6 @@ S.frequency = T.frequency S.falloff = T.falloff S.status = T.status - S.echo = T.echo if(T.x && T.y && T.z) var/turf/owner_turf = get_turf(owner.mob) if(owner_turf) @@ -38,16 +49,12 @@ S.x = T.x - owner_turf.x S.y = 0 S.z = T.y - owner_turf.y - var/area/A = owner_turf.loc - S.environment = A.sound_environment S.y += T.y_s_offset S.x += T.x_s_offset + S.echo = SOUND_ECHO_REVERB_ON //enable environment reverb for positional sounds if(owner.mob.ear_deaf > 0) S.status |= SOUND_MUTE - if(owner.mob.sound_environment_override != SOUND_ENVIRONMENT_NONE) - S.environment = owner.mob.sound_environment_override - sound_to(owner,S) /datum/soundOutput/proc/update_ambience(area/target_area, ambience_override, force_update = FALSE) @@ -84,7 +91,6 @@ S.status = status_flags if(target_area) - S.environment = target_area.sound_environment var/muffle if(target_area.ceiling_muffle) switch(target_area.ceiling) @@ -104,7 +110,7 @@ /datum/soundOutput/proc/update_soundscape() scape_cooldown-- if(scape_cooldown <= 0) - if(soundscape_playlist.len) + if(length(soundscape_playlist)) var/sound/S = sound() S.file = pick(soundscape_playlist) S.volume = 100 * owner.volume_preferences[VOLUME_AMB] @@ -128,6 +134,51 @@ S.status = SOUND_UPDATE sound_to(owner, S) +/// Pulls mob's area's sound_environment and applies if necessary and not overridden. +/datum/soundOutput/proc/update_area_environment() + var/area/owner_area = get_area(owner.mob) + var/new_environment = owner_area.sound_environment + + if(owner.mob.sound_environment_override != SOUND_ENVIRONMENT_NONE) //override in effect, can't apply + return + + set_owner_environment(new_environment) + +/// Pulls mob's sound_environment_override and applies if necessary. +/datum/soundOutput/proc/update_mob_environment_override() + var/new_environment_override = owner.mob.sound_environment_override + + if(new_environment_override == SOUND_ENVIRONMENT_NONE) //revert to area environment + update_area_environment() + return + + set_owner_environment(new_environment_override) + +/// Pushes new_environment to owner and updates owner_environment var. +/datum/soundOutput/proc/set_owner_environment(new_environment = SOUND_ENVIRONMENT_NONE) + if(new_environment ~= src.owner_environment) //no need to change + return + + var/sound/sound = sound() + sound.environment = new_environment + sound_to(owner, sound) + + src.owner_environment = new_environment + +/datum/soundOutput/proc/on_mob_moved(datum/source, atom/oldloc, direction, Forced) + SIGNAL_HANDLER //COMSIG_MOVABLE_MOVED + update_area_environment() + +/datum/soundOutput/proc/on_mob_logout(datum/source) + SIGNAL_HANDLER //COMSIG_MOB_LOGOUT + UnregisterSignal(owner.mob, list(COMSIG_MOVABLE_MOVED, COMSIG_MOB_LOGOUT)) + +/datum/soundOutput/proc/on_client_mob_logged_in(datum/source, mob/new_mob) + SIGNAL_HANDLER //COMSIG_CLIENT_MOB_LOGGED_IN + RegisterSignal(owner.mob, COMSIG_MOVABLE_MOVED, PROC_REF(on_mob_moved)) + RegisterSignal(owner.mob, COMSIG_MOB_LOGOUT, PROC_REF(on_mob_logout)) + update_mob_environment_override() + /client/proc/adjust_volume_prefs(volume_key, prompt = "", channel_update = 0) volume_preferences[volume_key] = (tgui_input_number(src, prompt, "Volume", volume_preferences[volume_key]*100)) / 100 if(volume_preferences[volume_key] > 1) diff --git a/code/datums/stamina/_stamina.dm b/code/datums/stamina/_stamina.dm index e233aaa81676..80e7df74e86b 100644 --- a/code/datums/stamina/_stamina.dm +++ b/code/datums/stamina/_stamina.dm @@ -34,7 +34,7 @@ if(!has_stamina) return - current_stamina = Clamp(current_stamina - amount, 0, max_stamina) + current_stamina = clamp(current_stamina - amount, 0, max_stamina) if(current_stamina < max_stamina) START_PROCESSING(SSobj, src) diff --git a/code/datums/statistics/entities/death_stats.dm b/code/datums/statistics/entities/death_stats.dm index 76e3605c157f..18751ba604a1 100644 --- a/code/datums/statistics/entities/death_stats.dm +++ b/code/datums/statistics/entities/death_stats.dm @@ -113,13 +113,13 @@ cause_mob.life_kills_total += life_value if(getBruteLoss()) - new_death.total_brute = round(getBruteLoss()) + new_death.total_brute = floor(getBruteLoss()) if(getFireLoss()) - new_death.total_burn = round(getFireLoss()) + new_death.total_burn = floor(getFireLoss()) if(getOxyLoss()) - new_death.total_oxy = round(getOxyLoss()) + new_death.total_oxy = floor(getOxyLoss()) if(getToxLoss()) - new_death.total_tox = round(getToxLoss()) + new_death.total_tox = floor(getToxLoss()) new_death.time_of_death = world.time diff --git a/code/datums/statistics/entities/medal_stats.dm b/code/datums/statistics/entities/medal_stats.dm index 8a428e2d3cf4..c5684e3cd9a4 100644 --- a/code/datums/statistics/entities/medal_stats.dm +++ b/code/datums/statistics/entities/medal_stats.dm @@ -57,7 +57,7 @@ return var/datum/entity/statistic/medal/new_medal = DB_ENTITY(/datum/entity/statistic/medal) - var/datum/entity/player/player_entity = get_player_from_key(new_recipient.ckey) + var/datum/entity/player/player_entity = get_player_from_key(new_recipient.persistent_ckey) if(player_entity) new_medal.player_id = player_entity.id diff --git a/code/datums/statistics/entities/panel_stats.dm b/code/datums/statistics/entities/panel_stats.dm index 5cfb888b8ea1..c62925673622 100644 --- a/code/datums/statistics/entities/panel_stats.dm +++ b/code/datums/statistics/entities/panel_stats.dm @@ -463,7 +463,7 @@ total_deaths_list += list(list("name" = S.name, "value" = S.value)) for(var/datum/entity/statistic/death/S in death_stats_list) - if(new_death_stats_list.len >= STATISTICS_DEATH_LIST_LEN) + if(length(new_death_stats_list) >= STATISTICS_DEATH_LIST_LEN) break var/list/damage_list = list() if(S.total_brute) @@ -496,7 +496,7 @@ "y" = S.y, "z" = S.z )) - if(new_death_stats_list.len < STATISTICS_DEATH_LIST_LEN) + if(length(new_death_stats_list) < STATISTICS_DEATH_LIST_LEN) new_death_stats_list += death for(var/iteration in weapon_stats_list) diff --git a/code/datums/statistics/entities/round_stats.dm b/code/datums/statistics/entities/round_stats.dm index 25543dff22b1..10ec04c6da0e 100644 --- a/code/datums/statistics/entities/round_stats.dm +++ b/code/datums/statistics/entities/round_stats.dm @@ -300,8 +300,8 @@ if(death_data["death_stats_list"]) new_death_list = death_data["death_stats_list"] new_death_list.Insert(1, death) - if(new_death_list.len > STATISTICS_DEATH_LIST_LEN) - new_death_list.Cut(STATISTICS_DEATH_LIST_LEN+1, new_death_list.len) + if(length(new_death_list) > STATISTICS_DEATH_LIST_LEN) + new_death_list.Cut(STATISTICS_DEATH_LIST_LEN+1, length(new_death_list)) death_data["death_stats_list"] = new_death_list track_dead_participant(new_death.faction_name) diff --git a/code/datums/status_effects/_status_effect.dm b/code/datums/status_effects/_status_effect.dm new file mode 100644 index 000000000000..ddbd6366d98c --- /dev/null +++ b/code/datums/status_effects/_status_effect.dm @@ -0,0 +1,277 @@ +/// Status effects are used to apply temporary or permanent effects to mobs. +/// This file contains their code, plus code for applying and removing them. +/datum/status_effect + /// The ID of the effect. ID is used in adding and removing effects to check for duplicates, among other things. + var/id = "effect" + /// When set initially / in on_creation, this is how long the status effect lasts in deciseconds. + /// While processing, this becomes the world.time when the status effect will expire. + /// -1 = infinite duration. + VAR_PROTECTED/duration = -1 + /// Truthy once duration is initialized + VAR_PRIVATE/duration_set = FALSE + /// When set initially / in on_creation, this is how long between [proc/tick] calls in deciseconds. + /// Note that this cannot be faster than the processing subsystem you choose to fire the effect on. (See: [var/processing_speed]) + /// While processing, this becomes the world.time when the next tick will occur. + /// -1 = will prevent ticks, and if duration is also unlimited (-1), stop processing wholesale. + var/tick_interval = 1 SECONDS + /// The mob affected by the status effect. + var/mob/living/owner + /// How many of the effect can be on one mob, and/or what happens when you try to add a duplicate. + var/status_type = STATUS_EFFECT_UNIQUE + /// If TRUE, we call [proc/on_remove] when owner is deleted. Otherwise, we call [proc/be_replaced]. + var/on_remove_on_mob_delete = FALSE + /// The typepath to the alert thrown by the status effect when created. + /// Status effect "name"s and "description"s are shown to the owner here. + var/alert_type = /atom/movable/screen/alert/status_effect + /// The alert itself, created in [proc/on_creation] (if alert_type is specified). + var/atom/movable/screen/alert/status_effect/linked_alert + /// Used to define if the status effect should be using SSfasteffects or SSeffects + var/processing_speed = STATUS_EFFECT_FAST_PROCESS + /// Do we self-terminate when a fullheal is called? // CM note: this is rejuvenate + var/remove_on_fullheal = FALSE + + /* Unimplemented feature: Our Rejuv needs refactoring to work with this + /// If remove_on_fullheal is TRUE, what flag do we need to be removed? + var/heal_flag_necessary = HEAL_STATUS + */ + + /* Particle effects feature was cut due to lacking backend, feel free to add when we have backend */ + + /// Timer ID for triggering the effect end precisely + var/timerid + +/datum/status_effect/New(list/arguments) + on_creation(arglist(arguments)) + +/// Called from New() with any supplied status effect arguments. +/// Not guaranteed to exist by the end. +/// Returning FALSE from on_apply will stop on_creation and self-delete the effect. +/datum/status_effect/proc/on_creation(mob/living/new_owner, ...) + SHOULD_NOT_SLEEP(TRUE) // Don't sleep between duration_set and update_timer + if(new_owner) + owner = new_owner + if(QDELETED(owner) || !on_apply()) + qdel(src) + return + if(owner) + LAZYADD(owner.status_effects, src) + RegisterSignal(owner, COMSIG_LIVING_REJUVENATED, PROC_REF(remove_effect_on_heal)) + + if(duration != -1) + duration = world.time + duration + duration_set = TRUE + if(tick_interval != -1) + tick_interval = world.time + tick_interval + + if(alert_type) + var/atom/movable/screen/alert/status_effect/new_alert = owner.throw_alert(id, alert_type) + new_alert.attached_effect = src //so the alert can reference us, if it needs to + linked_alert = new_alert //so we can reference the alert, if we need to + + if(duration > world.time || tick_interval > world.time) //don't process if we don't care + switch(processing_speed) + if(STATUS_EFFECT_FAST_PROCESS) + START_PROCESSING(SSfasteffects, src) + if(STATUS_EFFECT_NORMAL_PROCESS) + START_PROCESSING(SSeffects, src) + update_timer() + + update_particles() + + return TRUE + +/datum/status_effect/Destroy() + if(timerid) + deltimer(timerid) + switch(processing_speed) + if(STATUS_EFFECT_FAST_PROCESS) + STOP_PROCESSING(SSfasteffects, src) + if(STATUS_EFFECT_NORMAL_PROCESS) + STOP_PROCESSING(SSeffects, src) + if(owner) + linked_alert = null + owner.clear_alert(id) + LAZYREMOVE(owner.status_effects, src) + on_remove() + UnregisterSignal(owner, COMSIG_LIVING_REJUVENATED) + owner = null + return ..() + +// Status effect process. Handles adjusting its duration and ticks. +// If you're adding processed effects, put them in [proc/tick] +// instead of extending / overriding the process() proc. +/datum/status_effect/process(seconds_per_tick) + SHOULD_NOT_OVERRIDE(TRUE) + if(QDELETED(owner)) + qdel(src) + return + if(tick_interval != -1 && tick_interval < world.time) + var/tick_length = initial(tick_interval) + tick(tick_length / (1 SECONDS)) + tick_interval = world.time + tick_length + if(QDELING(src)) + // tick deleted us, no need to continue + return + + // Timer and update procs should basically always handle this, it's a safety net + if(!timerid && duration != -1 && duration < world.time) + qdel(src) + else + update_timer() // Attempt to start up end timer + +/// Updates the timer used for precisely ending the effect +/// We force_refresh if the duration changed otherwise than ticking down +/datum/status_effect/proc/update_timer(force_refresh = FALSE) + if(duration == -1 || duration <= world.time) // infinite or expired + return + else if(duration - world.time <= STATUS_EFFECT_TIME_THRESHOLD) + if(!timerid || force_refresh) + timerid = addtimer(CALLBACK(src, PROC_REF(timer_callback)), duration - world.time, TIMER_OVERRIDE|TIMER_UNIQUE|TIMER_STOPPABLE|TIMER_NO_HASH_WAIT) + else if(timerid) + deltimer(timerid) + timerid = null + +/// Timer invocation callback to end the effect +/datum/status_effect/proc/timer_callback() + if(timerid) + timerid = null + qdel(src) // shrimple as that + +/// Called when the effect is applied in on_created +/// Returning FALSE will cause it to delete itself during creation instead. +/datum/status_effect/proc/on_apply() + return TRUE + +/// Gets and formats examine text associated with our status effect. +/// Return 'null' to have no examine text appear (default behavior). +/datum/status_effect/proc/get_examine_text() + return null + +/** + * Called every tick from process(). + * This is only called of tick_interval is not -1. + * + * Note that every tick =/= every processing cycle. + * + * * seconds_between_ticks = This is how many SECONDS that elapse between ticks. + * This is a constant value based upon the initial tick interval set on the status effect. + * It is similar to seconds_per_tick, from processing itself, but adjusted to the status effect's tick interval. + */ +/datum/status_effect/proc/tick(seconds_between_ticks) + return + +/// Called whenever the buff expires or is removed (qdeleted) +/// Note that at the point this is called, it is out of the +/// owner's status_effects list, but owner is not yet null +/datum/status_effect/proc/on_remove() + return + +/// Called instead of on_remove when a status effect +/// of status_type STATUS_EFFECT_REPLACE is replaced by itself, +/// or when a status effect with on_remove_on_mob_delete +/// set to FALSE has its mob deleted +/datum/status_effect/proc/be_replaced() + linked_alert = null + owner.clear_alert(id) + LAZYREMOVE(owner.status_effects, src) + owner = null + qdel(src) + +/// Called before being fully removed (before on_remove) +/// Returning FALSE will cancel removal +/datum/status_effect/proc/before_remove() + return TRUE + +/// Called when a status effect of status_type STATUS_EFFECT_REFRESH +/// has its duration refreshed in apply_status_effect - is passed New() args +/datum/status_effect/proc/refresh(effect, ...) + var/original_duration = initial(duration) + if(original_duration == -1) + return + duration = world.time + original_duration + update_timer(force_refresh = TRUE) + +/// Adds nextmove modifier multiplicatively to the owner while applied +/datum/status_effect/proc/nextmove_modifier() + return 1 + +/// Adds nextmove adjustment additiviely to the owner while applied +/datum/status_effect/proc/nextmove_adjust() + return 0 + +/// Signal proc for [COMSIG_LIVING_REJUVENATED] to remove us on fullheal +/datum/status_effect/proc/remove_effect_on_heal(datum/source, heal_flags) + SIGNAL_HANDLER + + if(!remove_on_fullheal) + return + +// if(!heal_flag_necessary || (heal_flags & heal_flag_necessary)) +// qdel(src) + qdel(src) + +/// Updates the duration of the status effect to the given [amount] of deciseconds from now, qdeling / ending if we eclipse the current world time. +/// If increment is truthy, we only update if the resulting amount is higher. +/datum/status_effect/proc/update_duration(amount, increment = FALSE) + if(!duration_set) // Barebones setter for before we start everything up + if(increment) + duration = max(duration, amount) + else + duration = amount + return FALSE + if(duration == -1) // Infinite duration + return FALSE + var/new_duration = world.time + amount + if(increment && duration >= new_duration) + return FALSE + duration = new_duration + if(duration <= world.time) + qdel(src) + return TRUE + update_timer(force_refresh = TRUE) + return FALSE + +/// Updates the duration of the status effect to the given [amount] of deciseconds from its current set ending +/datum/status_effect/proc/adjust_duration(amount) + if(!duration_set) + duration += amount + return FALSE + if(duration == -1) + return FALSE + var/remaining = duration - world.time + remaining += amount + return update_duration(remaining) + +/// Remove [amount] of duration (in deciseconds) from the status effect. Compatibility handler with /tg/. +/datum/status_effect/proc/remove_duration(amount) + adjust_duration(-amount) + +/// Get duration left on the effect +/datum/status_effect/proc/get_duration_left() + if(!duration_set) + return -1 + var/remaining = duration - world.time + if(remaining < 0) + return -1 + return remaining + + +/** + * Updates the particles for the status effects + * Should be handled by subtypes! + */ + +/datum/status_effect/proc/update_particles() + SHOULD_CALL_PARENT(FALSE) + +/// Alert base type for status effect alerts +/atom/movable/screen/alert/status_effect + name = "Curse of Mundanity" + desc = "You don't feel any different..." + /// The status effect we're linked to + var/datum/status_effect/attached_effect + +/atom/movable/screen/alert/status_effect/Destroy() + attached_effect = null //Don't keep a ref now + return ..() + diff --git a/code/datums/status_effects/_status_effect_helpers.dm b/code/datums/status_effects/_status_effect_helpers.dm new file mode 100644 index 000000000000..02a4f9a5ccea --- /dev/null +++ b/code/datums/status_effects/_status_effect_helpers.dm @@ -0,0 +1,137 @@ + +// Status effect helpers for living mobs + +/** + * Applies a given status effect to this mob. + * + * new_effect - TYPEPATH of a status effect to apply. + * Additional status effect arguments can be passed. + * + * Returns the instance of the created effected, if successful. + * Returns 'null' if unsuccessful. + */ +/mob/living/proc/apply_status_effect(datum/status_effect/new_effect, ...) + RETURN_TYPE(/datum/status_effect) + + // The arguments we pass to the start effect. The 1st argument is this mob. + var/list/arguments = args.Copy() + arguments[1] = src + + // If the status effect we're applying doesn't allow multiple effects, we need to handle it + if(initial(new_effect.status_type) != STATUS_EFFECT_MULTIPLE) + for(var/datum/status_effect/existing_effect as anything in status_effects) + if(existing_effect.id != initial(new_effect.id)) + continue + + switch(existing_effect.status_type) + // Multiple are allowed, continue as normal. (Not normally reachable) + if(STATUS_EFFECT_MULTIPLE) + break + // Only one is allowed of this type - early return + if(STATUS_EFFECT_UNIQUE) + return + // Replace the existing instance (deletes it). + if(STATUS_EFFECT_REPLACE) + existing_effect.be_replaced() + // Refresh the existing type, then early return + if(STATUS_EFFECT_REFRESH) + existing_effect.refresh(arglist(arguments)) + return + + // Create the status effect with our mob + our arguments + var/datum/status_effect/new_instance = new new_effect(arguments) + SEND_SIGNAL(src, COMSIG_LIVING_APPLY_EFFECT, new_instance) + if(!QDELETED(new_instance)) + return new_instance + +/** + * Removes all instances of a given status effect from this mob + * + * removed_effect - TYPEPATH of a status effect to remove. + * Additional status effect arguments can be passed - these are passed into before_remove. + * + * Returns TRUE if at least one was removed. + */ +/mob/living/proc/remove_status_effect(datum/status_effect/removed_effect, ...) + var/list/arguments = args.Copy(2) + + . = FALSE + for(var/datum/status_effect/existing_effect as anything in status_effects) + if(existing_effect.id == initial(removed_effect.id) && existing_effect.before_remove(arguments)) + qdel(existing_effect) + . = TRUE + + return . + +/** + * Checks if this mob has a status effect that shares the passed effect's ID + * + * checked_effect - TYPEPATH of a status effect to check for. Checks for its ID, not it's typepath + * + * Returns an instance of a status effect, or NULL if none were found. + */ +/mob/proc/has_status_effect(datum/status_effect/checked_effect) + // Yes I'm being cringe and putting this on the mob level even though status effects only apply to the living level + // There's quite a few places (namely examine and, bleh, cult code) where it's easier to not need to cast to living before checking + // for an effect such as blindness + return null + +/mob/living/has_status_effect(datum/status_effect/checked_effect) + RETURN_TYPE(/datum/status_effect) + + for(var/datum/status_effect/present_effect as anything in status_effects) + if(present_effect.id == initial(checked_effect.id)) + return present_effect + + return null + +/** + * Checks if this mob has a status effect that shares the passed effect's ID + * and has the passed sources are in its list of sources (ONLY works for grouped efects!) + * + * checked_effect - TYPEPATH of a status effect to check for. Checks for its ID, not it's typepath + * + * Returns an instance of a status effect, or NULL if none were found. + */ +/mob/proc/has_status_effect_from_source(datum/status_effect/grouped/checked_effect, sources) + // See [/mob/proc/has_status_effect] for reason behind having this on the mob level + return null + +/mob/living/has_status_effect_from_source(datum/status_effect/grouped/checked_effect, sources) + RETURN_TYPE(/datum/status_effect) + + if(!ispath(checked_effect)) + CRASH("has_status_effect_from_source passed with an improper status effect path.") + + if(!islist(sources)) + sources = list(sources) + + for(var/datum/status_effect/grouped/present_effect in status_effects) + if(present_effect.id != initial(checked_effect.id)) + continue + var/list/matching_sources = present_effect.sources & sources + if(length(matching_sources)) + return present_effect + + return null + +/** + * Returns a list of all status effects that share the passed effect type's ID + * + * checked_effect - TYPEPATH of a status effect to check for. Checks for its ID, not it's typepath + * + * Returns a list + */ +/mob/proc/has_status_effect_list(datum/status_effect/checked_effect) + // See [/mob/proc/has_status_effect] for reason behind having this on the mob level + return null + +/mob/living/has_status_effect_list(datum/status_effect/checked_effect) + RETURN_TYPE(/list) + + var/list/effects_found = list() + for(var/datum/status_effect/present_effect as anything in status_effects) + if(present_effect.id == initial(checked_effect.id)) + effects_found += present_effect + + return effects_found diff --git a/code/datums/status_effects/debuffs/debuffs.dm b/code/datums/status_effects/debuffs/debuffs.dm new file mode 100644 index 000000000000..0ecfead05615 --- /dev/null +++ b/code/datums/status_effects/debuffs/debuffs.dm @@ -0,0 +1,120 @@ +//Largely negative status effects go here, even if they have small benificial effects +//STUN EFFECTS +/datum/status_effect/incapacitating + tick_interval = -1 + status_type = STATUS_EFFECT_REPLACE + alert_type = null + remove_on_fullheal = TRUE +// heal_flag_necessary = HEAL_CC_STATUS + var/needs_update_stat = FALSE + +/datum/status_effect/incapacitating/on_creation(mob/living/new_owner, set_duration) + if(isnum(set_duration)) + update_duration(set_duration) + . = ..() + if(. && needs_update_stat) + owner.update_stat() + + +/datum/status_effect/incapacitating/on_remove() + if(needs_update_stat ) //silicons need stat updates in addition to normal canmove updates + owner.update_stat() + return ..() + +//STUN +/datum/status_effect/incapacitating/stun + id = "stun" +// alert_type = /atom/movable/screen/alert/status_effect/stun + +/datum/status_effect/incapacitating/stun/on_apply() + . = ..() + if(!.) + return + owner.add_traits(list(TRAIT_INCAPACITATED, TRAIT_IMMOBILIZED /*, TRAIT_HANDS_BLOCKED*/), TRAIT_STATUS_EFFECT(id)) + +/datum/status_effect/incapacitating/stun/on_remove() + owner.remove_traits(list(TRAIT_INCAPACITATED, TRAIT_IMMOBILIZED /*, TRAIT_HANDS_BLOCKED*/), TRAIT_STATUS_EFFECT(id)) + return ..() + +/atom/movable/screen/alert/status_effect/stun + name = "Stunned" + desc = "You are incapacitated. You may not move or act." + icon_state = ALERT_INCAPACITATED + + +//KNOCKDOWN +/datum/status_effect/incapacitating/knockdown + id = "knockdown" +// alert_type = /atom/movable/screen/alert/status_effect/knockdown + +/datum/status_effect/incapacitating/knockdown/on_apply() + . = ..() + if(!.) + return + owner.add_traits(list(TRAIT_FLOORED, TRAIT_IMMOBILIZED), TRAIT_STATUS_EFFECT(id)) + +/datum/status_effect/incapacitating/knockdown/on_remove() + owner.remove_traits(list(TRAIT_FLOORED, TRAIT_IMMOBILIZED), TRAIT_STATUS_EFFECT(id)) + return ..() + +/atom/movable/screen/alert/status_effect/knockdown + name = "Floored" + desc = "You can't stand up!" + icon_state = ALERT_FLOORED + +//IMMOBILIZED +/datum/status_effect/incapacitating/immobilized + id = "immobilized" +// alert_type = /atom/movable/screen/alert/status_effect/immobilized + +/datum/status_effect/incapacitating/immobilized/on_apply() + . = ..() + if(!.) + return + ADD_TRAIT(owner, TRAIT_IMMOBILIZED, TRAIT_STATUS_EFFECT(id)) + +/datum/status_effect/incapacitating/immobilized/on_remove() + REMOVE_TRAIT(owner, TRAIT_IMMOBILIZED, TRAIT_STATUS_EFFECT(id)) + return ..() + +/atom/movable/screen/alert/status_effect/immobilized + name = "Immobilized" + desc = "You can't move." + icon_state = ALERT_IMMOBILIZED + +//UNCONSCIOUS +/datum/status_effect/incapacitating/unconscious + id = "unconscious" + needs_update_stat = TRUE +// alert_type = /atom/movable/screen/alert/status_effect/unconscious + +/datum/status_effect/incapacitating/unconscious/on_apply() + . = ..() + if(!.) + return + ADD_TRAIT(owner, TRAIT_KNOCKEDOUT, TRAIT_STATUS_EFFECT(id)) + +/datum/status_effect/incapacitating/unconscious/on_remove() + REMOVE_TRAIT(owner, TRAIT_KNOCKEDOUT, TRAIT_STATUS_EFFECT(id)) + return ..() + +/atom/movable/screen/alert/status_effect/unconscious + name = "Unconscious" + desc = "You've been knocked out." + icon_state = ALERT_KNOCKEDOUT + +/// DAZED: +/// This prevents talking as human or using abilities as Xenos, mainly +/datum/status_effect/incapacitating/dazed + id = "dazed" + needs_update_stat = TRUE + +/datum/status_effect/incapacitating/dazed/on_apply() + . = ..() + if(!.) + return + ADD_TRAIT(owner, TRAIT_DAZED, TRAIT_STATUS_EFFECT(id)) + +/datum/status_effect/incapacitating/dazed/on_remove() + REMOVE_TRAIT(owner, TRAIT_DAZED, TRAIT_STATUS_EFFECT(id)) + return ..() diff --git a/code/datums/status_effects/grouped_effect.dm b/code/datums/status_effects/grouped_effect.dm new file mode 100644 index 000000000000..ade0a187e0db --- /dev/null +++ b/code/datums/status_effects/grouped_effect.dm @@ -0,0 +1,20 @@ +/// Status effect from multiple sources, when all sources are removed, so is the effect +/datum/status_effect/grouped + // Grouped effects adds itself to [var/sources] and destroys itself if one exists already, there are never actually multiple + status_type = STATUS_EFFECT_MULTIPLE + /// A list of all sources applying this status effect. Sources are a list of keys + var/list/sources = list() + +/datum/status_effect/grouped/on_creation(mob/living/new_owner, source) + var/datum/status_effect/grouped/existing = new_owner.has_status_effect(type) + if(existing) + existing.sources |= source + qdel(src) + return FALSE + + sources |= source + return ..() + +/datum/status_effect/grouped/before_remove(source) + sources -= source + return !length(sources) diff --git a/code/datums/status_effects/limited_effect.dm b/code/datums/status_effects/limited_effect.dm new file mode 100644 index 000000000000..0f56e72da52f --- /dev/null +++ b/code/datums/status_effects/limited_effect.dm @@ -0,0 +1,20 @@ +/// These effects reapply their on_apply() effect when refreshed while stacks < max_stacks. +/datum/status_effect/limited_buff + id = "limited_buff" + duration = -1 + status_type = STATUS_EFFECT_REFRESH + ///How many stacks we currently have + var/stacks = 1 + ///How many stacks we can have maximum + var/max_stacks = 3 + +/datum/status_effect/limited_buff/refresh(effect) + if(stacks < max_stacks) + on_apply() + stacks++ + else + maxed_out() + +/// Called whenever the buff is refreshed when there are more stacks than max_stacks. +/datum/status_effect/limited_buff/proc/maxed_out() + return diff --git a/code/datums/status_effects/stacking_effect.dm b/code/datums/status_effects/stacking_effect.dm new file mode 100644 index 000000000000..5812bcaacd48 --- /dev/null +++ b/code/datums/status_effects/stacking_effect.dm @@ -0,0 +1,101 @@ +/// Status effects that can stack. +/datum/status_effect/stacking + id = "stacking_base" + duration = -1 // Only removed under specific conditions. + tick_interval = 1 SECONDS // Deciseconds between decays, once decay starts + alert_type = null + /// How many stacks are currently accumulated. + /// Also, the default stacks number given on application. + var/stacks = 0 + // Deciseconds until ticks start occurring, which removes stacks + /// (first stack will be removed at this time plus tick_interval) + var/delay_before_decay + /// How many stacks are lost per tick (decay trigger) + var/stack_decay = 1 + /// The threshold for having special effects occur when a certain stack number is reached + var/stack_threshold + /// The maximum number of stacks that can be applied + var/max_stacks + /// If TRUE, the status effect is consumed / removed when stack_threshold is met + var/consumed_on_threshold = TRUE + /// Set to true once the stack_threshold is crossed, and false once it falls back below + var/threshold_crossed = FALSE + +/* This implementation is missing effects overlays because we did not have + /tg/ overlays backend available at the time. Feel free to add them when we do! */ + +/// Effects that occur when the stack count crosses stack_threshold +/datum/status_effect/stacking/proc/threshold_cross_effect() + return + +/// Effects that occur if the status effect is removed due to the stack_threshold being crossed +/datum/status_effect/stacking/proc/stacks_consumed_effect() + return + +/// Effects that occur if the status is removed due to being under 1 remaining stack +/datum/status_effect/stacking/proc/fadeout_effect() + return + +/// Runs every time tick(), causes stacks to decay over time +/datum/status_effect/stacking/proc/stack_decay_effect() + return + +/// Called when the stack_threshold is crossed (stacks go over the threshold) +/datum/status_effect/stacking/proc/on_threshold_cross() + threshold_cross_effect() + if(consumed_on_threshold) + stacks_consumed_effect() + qdel(src) + +/// Called when the stack_threshold is uncrossed / dropped (stacks go under the threshold after being over it) +/datum/status_effect/stacking/proc/on_threshold_drop() + return + +/// Whether the owner can have the status effect. +/// Return FALSE if the owner is not in a valid state (self-deletes the effect), or TRUE otherwise +/datum/status_effect/stacking/proc/can_have_status() + return owner.stat != DEAD + +/// Whether the owner can currently gain stacks or not +/// Return FALSE if the owner is not in a valid state, or TRUE otherwise +/datum/status_effect/stacking/proc/can_gain_stacks() + return owner.stat != DEAD + +/datum/status_effect/stacking/tick(seconds_between_ticks) + if(!can_have_status()) + qdel(src) + else + add_stacks(-stack_decay) + stack_decay_effect() + +/// Add (or remove) [stacks_added] stacks to our current stack count. +/datum/status_effect/stacking/proc/add_stacks(stacks_added) + if(stacks_added > 0 && !can_gain_stacks()) + return FALSE + stacks += stacks_added + if(stacks > 0) + if(stacks >= stack_threshold && !threshold_crossed) //threshold_crossed check prevents threshold effect from occurring if changing from above threshold to still above threshold + threshold_crossed = TRUE + on_threshold_cross() + if(consumed_on_threshold) + return + else if(stacks < stack_threshold && threshold_crossed) + threshold_crossed = FALSE //resets threshold effect if we fall below threshold so threshold effect can trigger again + on_threshold_drop() + if(stacks_added > 0) + tick_interval += delay_before_decay //refreshes time until decay + stacks = min(stacks, max_stacks) + else + fadeout_effect() + qdel(src) //deletes status if stacks fall under one + +/datum/status_effect/stacking/on_creation(mob/living/new_owner, stacks_to_apply) + . = ..() + if(.) + add_stacks(stacks_to_apply) + +/datum/status_effect/stacking/on_apply() + if(!can_have_status()) + return FALSE + return ..() + diff --git a/code/datums/supply_packs/ammo.dm b/code/datums/supply_packs/ammo.dm index 164511c25cc0..2e81d8fed164 100644 --- a/code/datums/supply_packs/ammo.dm +++ b/code/datums/supply_packs/ammo.dm @@ -135,7 +135,7 @@ group = "Ammo" /datum/supply_packs/ammo_m4ra_mag_box_ap - name = "Magazine box (MRRA, 16x AP mags)" + name = "Magazine box (M4RA, 16x AP mags)" contains = list( /obj/item/ammo_box/magazine/m4ra/ap, ) @@ -240,6 +240,16 @@ containername = "\improper shotgun flechette crate" group = "Ammo" +/datum/supply_packs/ammo_shell_box_breaching + name = "Shell box (16g) (120x breaching shells)" + contains = list( + /obj/item/ammo_box/magazine/shotgun/light/breaching, + ) + cost = 40 + containertype = /obj/structure/closet/crate/ammo + containername = "\improper shotgun breaching crate" + group = "Ammo" + //------------------------For 88M4 ---------------- /datum/supply_packs/ammo_mod88_mag_box_ap @@ -296,6 +306,18 @@ containername = "\improper M41AE2 HPR holo-target magazines crate" group = "Ammo" +/datum/supply_packs/ammo_xm51 + contains = list( + /obj/item/ammo_magazine/rifle/xm51, + /obj/item/ammo_magazine/rifle/xm51, + /obj/item/ammo_magazine/shotgun/light/breaching, + ) + name = "XM51 Ammo (2x mags) (1x small breaching shell box)" + cost = 20 + containertype = /obj/structure/closet/crate/ammo + containername = "\improper XM51 ammo crate" + group = "Ammo" + //------------------------Smartgunner stuff---------------- /datum/supply_packs/ammo_smartgun_battery_pack @@ -324,15 +346,15 @@ //------------------------Sentries Ammo---------------- -/datum/supply_packs/ammo_sentry - name = "UA 571-C sentry ammunition (x2)" +/datum/supply_packs/ammo_sentry_shotgun + name = "UA 12-G sentry shotgun ammunition (x2)" contains = list( - /obj/item/ammo_magazine/sentry, - /obj/item/ammo_magazine/sentry, + /obj/item/ammo_magazine/sentry/shotgun, + /obj/item/ammo_magazine/sentry/shotgun, ) cost = 40 containertype = /obj/structure/closet/crate/ammo - containername = "\improper sentry ammo crate" + containername = "\improper sentry shotgun ammo crate" group = "Ammo" /datum/supply_packs/ammo_sentry_flamer @@ -346,15 +368,37 @@ containername = "\improper sentry flamer ammo crate" group = "Ammo" -/datum/supply_packs/ammo_sentry_shotgun - name = "UA 12-G sentry shotgun ammunition (x2)" +/datum/supply_packs/ammo_mini_sentry_flamer + name = "UA 45-F mini sentry flamer ammunition (x2)" contains = list( - /obj/item/ammo_magazine/sentry/shotgun, - /obj/item/ammo_magazine/sentry/shotgun, + /obj/item/ammo_magazine/sentry_flamer/mini, + /obj/item/ammo_magazine/sentry_flamer/mini, ) cost = 40 containertype = /obj/structure/closet/crate/ammo - containername = "\improper sentry shotgun ammo crate" + containername = "\improper mini sentry flamer ammo crate" + group = "Ammo" + +/datum/supply_packs/ammo_glob_sentry_flamer + name = "UA 60-FP sentry plasma incinerator tank (x2)" + contains = list( + /obj/item/ammo_magazine/sentry_flamer/glob, + /obj/item/ammo_magazine/sentry_flamer/glob, + ) + cost = 40 + containertype = /obj/structure/closet/crate/ammo + containername = "\improper sentry plasma incinerator ammo crate" + group = "Ammo" + +/datum/supply_packs/ammo_sentry + name = "UA 571-C sentry ammunition (x2)" + contains = list( + /obj/item/ammo_magazine/sentry, + /obj/item/ammo_magazine/sentry, + ) + cost = 40 + containertype = /obj/structure/closet/crate/ammo + containername = "\improper sentry ammo crate" group = "Ammo" //------------------------M240 flamer tanks---------------- @@ -397,6 +441,28 @@ containertype = /obj/structure/closet/crate/ammo/alt/flame group = "Ammo" +//------------------------Mounted guns ammo---------------- +/datum/supply_packs/ammo_m2c + name = "M2C ammunition crate (x2)" + contains = list( + /obj/item/ammo_magazine/m2c, + /obj/item/ammo_magazine/m2c, + ) + cost = 25 + containertype = /obj/structure/closet/crate/ammo + containername = "\improper m2c ammunition crate" + group = "Ammo" + +/datum/supply_packs/ammo_m56d + name = "M56D drum magazine crate (x1)" + contains = list( + /obj/item/ammo_magazine/m56d, + ) + cost = 25 + containertype = /obj/structure/closet/crate/ammo + containername = "\improper m56d drum magazine crate" + group = "Ammo" + //This crate has a little bit of everything, mostly okay stuff, but it does have some really unique picks. /datum/supply_packs/ammo_surplus name = "Surplus ammo crate (various USCM magazines x10)" diff --git a/code/datums/supply_packs/black_market.dm b/code/datums/supply_packs/black_market.dm index 36d890e2b3d5..aeede447e0f9 100644 --- a/code/datums/supply_packs/black_market.dm +++ b/code/datums/supply_packs/black_market.dm @@ -101,7 +101,7 @@ Non-USCM items, from CLF, UPP, colonies, etc. Mostly combat-related. new /obj/item/clothing/head/helmet/marine/veteran/UPP(src) new /obj/item/clothing/under/marine/veteran/UPP(src) new /obj/item/clothing/suit/storage/marine/faction/UPP(src) - new /obj/item/clothing/shoes/marine/upp(src) + new /obj/item/clothing/shoes/marine/upp/knife(src) new /obj/item/clothing/gloves/marine/veteran(src) new /obj/item/storage/backpack/lightpack/five_slot(src) if(5) //freelancer @@ -642,7 +642,7 @@ USCM spare items, miscellaneous gear that's too niche and distant (or restricted . = ..() var/obj/item/paper/nope = new(src) nope.name = "automated ASRS note" - nope.info = "Sorry! Your requested order of USCM PONCHO (X2) was not succesfully delivered because: 'No items of that type found in storage.'" + nope.info = "Sorry! Your requested order of USCM PONCHO (X2) was not successfully delivered because: 'No items of that type found in storage.'" nope.color = "green" nope.update_icon() @@ -656,7 +656,7 @@ USCM spare items, miscellaneous gear that's too niche and distant (or restricted . = ..() var/obj/item/paper/nope = new(src) nope.name = "automated ASRS note" - nope.info = "Sorry! Your requested order of HIGH-EXPLOSIVE ARMOR-PIERCING M41A MAGAZINE (X3) was not succesfully delivered because: 'ERROR: UNABLE TO ENTER COMPARTMENT EXIT CODE 2342: EXPLOSION HAZARD'" + nope.info = "Sorry! Your requested order of HIGH-EXPLOSIVE ARMOR-PIERCING M41A MAGAZINE (X3) was not successfully delivered because: 'ERROR: UNABLE TO ENTER COMPARTMENT EXIT CODE 2342: EXPLOSION HAZARD'" nope.color = "green" nope.update_icon() @@ -722,6 +722,143 @@ USCM spare items, miscellaneous gear that's too niche and distant (or restricted contains = list(/obj/item/storage/box/guncase/m1911/socom) containertype = /obj/structure/largecrate/black_market +/* --- AMMO --- */ + +/datum/supply_packs/contraband/ammo + group = "Contraband Ammo" + +/datum/supply_packs/contraband/ammo/r4t + name = "45-70 bullet box crate (x300 rounds)" + dollar_cost = 135 + contains = list(/obj/item/ammo_box/magazine/lever_action) + containertype = /obj/structure/largecrate/black_market + +/datum/supply_packs/contraband/ammo/r4t/training + name = "45-70 bullet box crate (x300 training rounds)" + dollar_cost = 35 + contains = list(/obj/item/ammo_box/magazine/lever_action/training) + containertype = /obj/structure/largecrate/black_market + +/datum/supply_packs/contraband/ammo/m16 + name = "Magazine box (M16, 12x regular mags)" + dollar_cost = 100 + contains = list(/obj/item/ammo_box/magazine/M16) + containertype = /obj/structure/largecrate/black_market + +/datum/supply_packs/contraband/ammo/ar10 + name = "Magazine box (AR10, 12x regular mags)" + dollar_cost = 115 + contains = list(/obj/item/ammo_box/magazine/ar10) + containertype = /obj/structure/largecrate/black_market + +/datum/supply_packs/contraband/ammo/deagle + name = "Magazine box (Desert Eagle, 16x regular mags)" + dollar_cost = 180 + contains = list(/obj/item/ammo_box/magazine/deagle) + containertype = /obj/structure/largecrate/black_market + +/datum/supply_packs/contraband/ammo/deagle/hiap + name = "Magazine box (Desert Eagle, 16x HIAP mags)" + dollar_cost = 260 + contains = list(/obj/item/ammo_box/magazine/deagle/super/highimpact/ap/empty) + containertype = /obj/structure/largecrate/black_market + +/datum/supply_packs/contraband/ammo/type73 + name = "Magazine box (Type 73, 16x regular mags)" + dollar_cost = 60 + contains = list(/obj/item/ammo_box/magazine/type73) + containertype = /obj/structure/largecrate/black_market + +/datum/supply_packs/contraband/ammo/nsg + name = "Magazine box (NSG-23, 16x regular mags)" + dollar_cost = 140 + contains = list(/obj/item/ammo_box/magazine/nsg23) + containertype = /obj/structure/largecrate/black_market +/datum/supply_packs/contraband/ammo/mar30 + name = "Magazines box (MAR30, 10x regular mags)" + dollar_cost = 60 + contains = list(/obj/item/ammo_box/magazine/mar30) + containertype = /obj/structure/largecrate/black_market + +/datum/supply_packs/contraband/ammo/fp9000 + name = "Magazines box (FN FP9000, 10x mags)" + dollar_cost = 35 + contains = list(/obj/item/ammo_box/magazine/fp9000) + containertype = /obj/structure/largecrate/black_market + +/datum/supply_packs/contraband/ammo/mp27 + name = "Magazines box (MP-27, 12x mags)" + dollar_cost = 45 + contains = list(/obj/item/ammo_box/magazine/mp27) + containertype = /obj/structure/largecrate/black_market + +/datum/supply_packs/contraband/ammo/uzi + name = "Magazines box (UZI, 12x mags)" + dollar_cost = 25 + contains = list(/obj/item/ammo_box/magazine/uzi) + containertype = /obj/structure/largecrate/black_market + +/datum/supply_packs/contraband/ammo/mac15 + name = "Magazines box (MAC-15, 12x mags)" + dollar_cost = 15 + contains = list(/obj/item/ammo_box/magazine/mac15) + containertype = /obj/structure/largecrate/black_market + +/datum/supply_packs/contraband/ammo/pps43 + name = "Magazines box (Type-19, 10x regular mags)" + dollar_cost = 40 + contains = list(/obj/item/ammo_box/magazine/type19) + containertype = /obj/structure/largecrate/black_market + +/datum/supply_packs/contraband/ammo/b92fs + name = "Magazines box (Beretta 92FS, 16x mags)" + dollar_cost = 30 + contains = list(/obj/item/ammo_box/magazine/b92fs) + containertype = /obj/structure/largecrate/black_market + +/datum/supply_packs/contraband/ammo/kt42 + name = "Magazines box (KT-42, 16x mags)" + dollar_cost = 45 + contains = list(/obj/item/ammo_box/magazine/kt42) + containertype = /obj/structure/largecrate/black_market + +/datum/supply_packs/contraband/ammo/bizon + name = "Magazines box (Type 64, 10x mags)" + dollar_cost = 40 + contains = list(/obj/item/ammo_box/magazine/type64) + containertype = /obj/structure/largecrate/black_market + +/datum/supply_packs/contraband/ammo/m1911 + name = "Magazines box (M1911, 16x mags)" + dollar_cost = 40 + contains = list(/obj/item/ammo_box/magazine/m1911) + containertype = /obj/structure/largecrate/black_market + +/datum/supply_packs/contraband/ammo/mk45 + name = "Magazines box (MK-45 Automagnum, 16x mags)" + dollar_cost = 80 + contains = list(/obj/item/ammo_box/magazine/mk45) + containertype = /obj/structure/largecrate/black_market + +/datum/supply_packs/contraband/ammo/cmb + name = "Speed loaders box (CMB Spearhead, 16x HP loaders)" + dollar_cost = 70 + contains = list(/obj/item/ammo_box/magazine/spearhead) + containertype = /obj/structure/largecrate/black_market + +/datum/supply_packs/contraband/ammo/smw + name = "Speed loaders box (Smith and Wesson revolver, 12x loaders)" + dollar_cost = 30 + contains = list(/obj/item/ammo_box/magazine/snw) + containertype = /obj/structure/largecrate/black_market + +/datum/supply_packs/contraband/ammo/zhnk + name = "Speed loaders box (ZHNK-72, 12x loaders)" + dollar_cost = 30 + contains = list(/obj/item/ammo_box/magazine/zhnk) + containertype = /obj/structure/largecrate/black_market + + /* --- DEEP STORAGE --- */ /* diff --git a/code/datums/supply_packs/explosives.dm b/code/datums/supply_packs/explosives.dm index 22458ef3fa6b..032ef047c78a 100644 --- a/code/datums/supply_packs/explosives.dm +++ b/code/datums/supply_packs/explosives.dm @@ -1,7 +1,7 @@ // Group to populate with all the explosives exept OB and mortar shell /datum/supply_packs/explosives - name = "surplus explosives crate (claymore mine x5, M40 HIDP x2, M40 HEDP x2, M15 Frag x2, M12 Blast x2)" + name = "surplus explosives crate (claymore mine x5, M40 HIDP x2, M40 HEDP x2, M15 Frag x2, M12 Blast x2, M40 MFHS x2)" contains = list( /obj/item/storage/box/explosive_mines, /obj/item/explosive/grenade/high_explosive, @@ -12,6 +12,8 @@ /obj/item/explosive/grenade/high_explosive/m15, /obj/item/explosive/grenade/high_explosive/pmc, /obj/item/explosive/grenade/high_explosive/pmc, + /obj/item/explosive/grenade/metal_foam, + /obj/item/explosive/grenade/metal_foam, ) cost = 40 containertype = /obj/structure/closet/crate/explosives diff --git a/code/datums/supply_packs/gear.dm b/code/datums/supply_packs/gear.dm index 54a2ae221c9d..5343b93dabbd 100644 --- a/code/datums/supply_packs/gear.dm +++ b/code/datums/supply_packs/gear.dm @@ -63,3 +63,32 @@ containertype = /obj/structure/closet/crate/ammo containername = "fulton recovery device crate" group = "Gear" + +/datum/supply_packs/parachute + name = "parachute crate (x20)" + contains = list( + /obj/item/parachute, + /obj/item/parachute, + /obj/item/parachute, + /obj/item/parachute, + /obj/item/parachute, + /obj/item/parachute, + /obj/item/parachute, + /obj/item/parachute, + /obj/item/parachute, + /obj/item/parachute, + /obj/item/parachute, + /obj/item/parachute, + /obj/item/parachute, + /obj/item/parachute, + /obj/item/parachute, + /obj/item/parachute, + /obj/item/parachute, + /obj/item/parachute, + /obj/item/parachute, + /obj/item/parachute, + ) + cost = 40 + containertype = /obj/structure/closet/crate/supply + containername = "parachute crate" + group = "Gear" diff --git a/code/datums/supply_packs/medical.dm b/code/datums/supply_packs/medical.dm index 05cb4d2f34c0..acfb9fe1793d 100644 --- a/code/datums/supply_packs/medical.dm +++ b/code/datums/supply_packs/medical.dm @@ -17,13 +17,58 @@ /obj/item/storage/pill_bottle/peridaxon, /obj/item/storage/box/pillbottles, ) + cost = 15 + containertype = /obj/structure/closet/crate/medical + containername = "medical crate" + group = "Medical" + +/datum/supply_packs/medical_restock_cart + name = "medical restock cart" + contains = list( + /obj/structure/restock_cart/medical, + ) cost = 20 + containertype = null + containername = "medical restock cart" + group = "Medical" + +/datum/supply_packs/medical_reagent_cart + name = "medical reagent restock cart" + contains = list( + /obj/structure/restock_cart/medical/reagent, + ) + cost = 20 + containertype = null + containername = "medical reagent restock cart" + group = "Medical" + +/datum/supply_packs/pillbottle + name = "pill bottle crate (x2 each)" + contains = list( + /obj/item/storage/pill_bottle/inaprovaline, + /obj/item/storage/pill_bottle/antitox, + /obj/item/storage/pill_bottle/bicaridine, + /obj/item/storage/pill_bottle/dexalin, + /obj/item/storage/pill_bottle/kelotane, + /obj/item/storage/pill_bottle/tramadol, + /obj/item/storage/pill_bottle/peridaxon, + /obj/item/storage/pill_bottle/inaprovaline, + /obj/item/storage/pill_bottle/antitox, + /obj/item/storage/pill_bottle/bicaridine, + /obj/item/storage/pill_bottle/dexalin, + /obj/item/storage/pill_bottle/kelotane, + /obj/item/storage/pill_bottle/tramadol, + /obj/item/storage/pill_bottle/peridaxon, + /obj/item/storage/box/pillbottles, + /obj/item/storage/box/pillbottles, + ) + cost = 15 containertype = /obj/structure/closet/crate/medical containername = "medical crate" group = "Medical" /datum/supply_packs/firstaid - name = "first aid kit crate (2x each)" + name = "first aid kit crate (x2 each)" contains = list( /obj/item/storage/firstaid/regular, /obj/item/storage/firstaid/regular, @@ -36,7 +81,7 @@ /obj/item/storage/firstaid/adv, /obj/item/storage/firstaid/adv, ) - cost = 20 + cost = 11 containertype = /obj/structure/closet/crate/medical containername = "medical crate" group = "Medical" @@ -49,7 +94,7 @@ /obj/item/storage/box/bodybags, /obj/item/storage/box/bodybags, ) - cost = 20 + cost = 7 containertype = /obj/structure/closet/crate/medical containername = "body bag crate" group = "Medical" @@ -61,7 +106,7 @@ /obj/item/bodybag/cryobag, /obj/item/bodybag/cryobag, ) - cost = 40 + cost = 15 containertype = /obj/structure/closet/crate/medical containername = "stasis bag crate" group = "Medical" @@ -76,7 +121,7 @@ /obj/item/storage/box/masks, /obj/item/storage/box/gloves, ) - cost = 30 + cost = 25 containertype = /obj/structure/closet/crate/secure/surgery containername = "surgery crate" access = ACCESS_MARINE_MEDBAY diff --git a/code/datums/supply_packs/operations.dm b/code/datums/supply_packs/operations.dm index e5525504716a..fd715cddce95 100644 --- a/code/datums/supply_packs/operations.dm +++ b/code/datums/supply_packs/operations.dm @@ -10,18 +10,12 @@ /obj/structure/ob_ammo/ob_fuel, /obj/structure/ob_ammo/ob_fuel, /obj/structure/ob_ammo/warhead/incendiary, - /obj/structure/ob_ammo/ob_fuel, - /obj/structure/ob_ammo/ob_fuel, - /obj/structure/ob_ammo/ob_fuel, - /obj/structure/ob_ammo/ob_fuel, - /obj/structure/ob_ammo/ob_fuel, - /obj/structure/ob_ammo/warhead/incendiary, ) name = "OB Incendiary Crate" cost = 0 containertype = /obj/structure/closet/crate/secure/ob - containername = "OB Ammo Crate (Incendiary x2)" + containername = "OB Ammo Crate (Incendiary)" buyable = 0 group = "Operations" @@ -33,18 +27,12 @@ /obj/structure/ob_ammo/ob_fuel, /obj/structure/ob_ammo/ob_fuel, /obj/structure/ob_ammo/warhead/explosive, - /obj/structure/ob_ammo/ob_fuel, - /obj/structure/ob_ammo/ob_fuel, - /obj/structure/ob_ammo/ob_fuel, - /obj/structure/ob_ammo/ob_fuel, - /obj/structure/ob_ammo/ob_fuel, - /obj/structure/ob_ammo/warhead/explosive, ) name = "OB HE Crate" cost = 0 containertype = /obj/structure/closet/crate/secure/ob - containername = "OB Ammo Crate (HE x2)" + containername = "OB Ammo Crate (HE)" buyable = 0 group = "Operations" @@ -56,18 +44,12 @@ /obj/structure/ob_ammo/ob_fuel, /obj/structure/ob_ammo/ob_fuel, /obj/structure/ob_ammo/warhead/cluster, - /obj/structure/ob_ammo/ob_fuel, - /obj/structure/ob_ammo/ob_fuel, - /obj/structure/ob_ammo/ob_fuel, - /obj/structure/ob_ammo/ob_fuel, - /obj/structure/ob_ammo/ob_fuel, - /obj/structure/ob_ammo/warhead/cluster, ) name = "OB Cluster Crate" cost = 0 containertype = /obj/structure/closet/crate/secure/ob - containername = "OB Ammo Crate (Cluster x2)" + containername = "OB Ammo Crate (Cluster)" buyable = 0 group = "Operations" diff --git a/code/datums/supply_packs/restricted_equipment.dm b/code/datums/supply_packs/restricted_equipment.dm index 452ef313908a..bc13d0fbd610 100644 --- a/code/datums/supply_packs/restricted_equipment.dm +++ b/code/datums/supply_packs/restricted_equipment.dm @@ -4,7 +4,7 @@ name = "B12 pattern marine armor crate (x1 helmet, x1 armor)" contains = list( /obj/item/clothing/head/helmet/marine/leader, - /obj/item/clothing/suit/storage/marine/leader, + /obj/item/clothing/suit/storage/marine/medium/leader, ) cost = 20 containertype = /obj/structure/closet/crate @@ -15,9 +15,29 @@ name = "M4 pattern marine armor crate (x1 helmet, x1 armor)" contains = list( /obj/item/clothing/head/helmet/marine/rto, - /obj/item/clothing/suit/storage/marine/rto, + /obj/item/clothing/suit/storage/marine/medium/rto, ) cost = 20 containertype = /obj/structure/closet/crate containername = "M4 pattern marine armor crate" group = "Restricted Equipment" + +/datum/supply_packs/intel_kit + name = "Field Intelligence Support Kit crate (x1 fulton pack, x1 data detector, x1 intel pamphlet, x1 large document pouch, 1x intel radio key)" + contains = list( + /obj/item/storage/box/kit/mini_intel, + ) + cost = 20 + containertype = /obj/structure/closet/crate + containername = "Field Intelligence Support Kit crate" + group = "Restricted Equipment" + +/datum/supply_packs/jtac_kit + name = "JTAC Radio Kit crate (x1 full flare gun belt, x2 M89-S signal flare packs, 1x laser designator, 1x jtac radio key, 1x radiopack)" + contains = list( + /obj/item/storage/box/kit/mini_jtac, + ) + cost = 30 + containertype = /obj/structure/closet/crate + containername = "JTAC Radio Kit crate" + group = "Restricted Equipment" diff --git a/code/datums/supply_packs/spec_ammo.dm b/code/datums/supply_packs/spec_ammo.dm index e20a5de865a3..889d2e25b8af 100644 --- a/code/datums/supply_packs/spec_ammo.dm +++ b/code/datums/supply_packs/spec_ammo.dm @@ -109,8 +109,6 @@ containername = "M42A Incendiary Magazine Crate" group = "Weapons Specialist Ammo" -//XM43E1 - Disabled during testing per request. -/* /datum/supply_packs/ammo_amr_marksman name = "XM43E1 anti-materiel rifle marksman magazines crate (x5)" contains = list( @@ -122,9 +120,9 @@ ) cost = 30 containertype = /obj/structure/closet/crate/ammo - containername = "XM43E1 Anti-Materiel Magazine Crate" - group = "Specialist Ammo" -*/ + containername = "XM43E1 Marksman Magazine Crate" + group = "Weapons Specialist Ammo" + //M4RA /datum/supply_packs/ammo_scout_mix @@ -157,13 +155,11 @@ group = "Weapons Specialist Ammo" /datum/supply_packs/ammo_scout_incendiary - name = "M4RA Scout Incendiary Magazine Crate (x5)" + name = "M4RA Scout Incendiary Magazine Crate (x3)" contains = list( /obj/item/ammo_magazine/rifle/m4ra/custom/incendiary, /obj/item/ammo_magazine/rifle/m4ra/custom/incendiary, /obj/item/ammo_magazine/rifle/m4ra/custom/incendiary, - /obj/item/ammo_magazine/rifle/m4ra/custom/incendiary, - /obj/item/ammo_magazine/rifle/m4ra/custom/incendiary, ) cost = 30 containertype = /obj/structure/closet/crate/ammo @@ -171,13 +167,11 @@ group = "Weapons Specialist Ammo" /datum/supply_packs/ammo_scout_impact - name = "M4RA Scout Impact Magazine Crate (x5)" + name = "M4RA Scout Impact Magazine Crate (x3)" contains = list( /obj/item/ammo_magazine/rifle/m4ra/custom/impact, /obj/item/ammo_magazine/rifle/m4ra/custom/impact, /obj/item/ammo_magazine/rifle/m4ra/custom/impact, - /obj/item/ammo_magazine/rifle/m4ra/custom/impact, - /obj/item/ammo_magazine/rifle/m4ra/custom/impact, ) cost = 30 containertype = /obj/structure/closet/crate/ammo diff --git a/code/datums/supply_packs/vehicle_ammo.dm b/code/datums/supply_packs/vehicle_ammo.dm index 5dad91d27ed4..43ce36ec2b64 100644 --- a/code/datums/supply_packs/vehicle_ammo.dm +++ b/code/datums/supply_packs/vehicle_ammo.dm @@ -148,3 +148,15 @@ containertype = /obj/structure/closet/crate/ammo containername = "M-87F Flare Launcher ammo crate" group = "Vehicle Ammo" + +/datum/supply_packs/ammo_arcsentry + name = "RE700 Rotary Cannon magazines (x3)" + contains = list( + /obj/item/ammo_magazine/hardpoint/arc_sentry, + /obj/item/ammo_magazine/hardpoint/arc_sentry, + /obj/item/ammo_magazine/hardpoint/arc_sentry, + ) + cost = 20 + containertype = /obj/structure/closet/crate/ammo + containername = "RE700 Rotary Cannon ammo crate" + group = "Vehicle Ammo" diff --git a/code/datums/supply_packs/vehicle_equipment.dm b/code/datums/supply_packs/vehicle_equipment.dm new file mode 100644 index 000000000000..df106761d467 --- /dev/null +++ b/code/datums/supply_packs/vehicle_equipment.dm @@ -0,0 +1,9 @@ +/datum/supply_packs/arcsentry_replacement + name = "Replacement RE700 Rotary Cannon (x1)" + contains = list( + /obj/item/hardpoint/primary/arc_sentry, + ) + cost = 25 + containertype = /obj/structure/closet/crate/weapon + containername = "RE700 Rotary Cannon crate" + group = "Vehicle Equipment" diff --git a/code/datums/supply_packs/weapons.dm b/code/datums/supply_packs/weapons.dm index 927db853e9fd..8939b80e52d6 100644 --- a/code/datums/supply_packs/weapons.dm +++ b/code/datums/supply_packs/weapons.dm @@ -60,7 +60,18 @@ ) cost = 30 containertype = /obj/structure/closet/crate/weapon - containername = "MOU-53 Breack Action Shotgun Crate" + containername = "MOU-53 Break Action Shotgun Crate" + group = "Weapons" + +/datum/supply_packs/xm51 + name = "XM51 Breaching Scattergun Crate (x2)" + contains = list( + /obj/item/storage/box/guncase/xm51, + /obj/item/storage/box/guncase/xm51, + ) + cost = 30 + containertype = /obj/structure/closet/crate/weapon + containername = "XM51 Breaching Scattergun Crate" group = "Weapons" /datum/supply_packs/smartpistol diff --git a/code/datums/tgs_event_handler.dm b/code/datums/tgs_event_handler.dm index a47d1e95af00..072a0f4d605c 100644 --- a/code/datums/tgs_event_handler.dm +++ b/code/datums/tgs_event_handler.dm @@ -14,21 +14,13 @@ message_admins("TGS: Instance renamed to from [world.TgsInstanceName()] to [args[2]]") if(TGS_EVENT_COMPILE_START) message_admins("TGS: Deployment started, new game version incoming...") - if(world.system_type == UNIX && SSredis.connected) - SSredis.disconnect(TGS_COMPILE) if(TGS_EVENT_COMPILE_CANCELLED) message_admins("TGS: Deployment cancelled!") - if(world.system_type == UNIX && CONFIG_GET(flag/redis_enabled) && !SSredis.connected) - SSredis.reconnect() if(TGS_EVENT_COMPILE_FAILURE) message_admins("TGS: Deployment failed!") - if(world.system_type == UNIX && CONFIG_GET(flag/redis_enabled) && !SSredis.connected) - SSredis.reconnect() if(TGS_EVENT_DEPLOYMENT_COMPLETE) message_admins("TGS: Deployment complete!") to_chat(world, SPAN_BOLDANNOUNCE("Server updated, changes will be applied on the next round...")) - if(world.system_type == UNIX && CONFIG_GET(flag/redis_enabled) && !SSredis.connected) - SSredis.reconnect() if(TGS_EVENT_WATCHDOG_DETACH) message_admins("TGS restarting...") reattach_timer = addtimer(CALLBACK(src, PROC_REF(LateOnReattach)), 1 MINUTES, TIMER_STOPPABLE) diff --git a/code/datums/tutorial/_tutorial.dm b/code/datums/tutorial/_tutorial.dm new file mode 100644 index 000000000000..ddeddddd0407 --- /dev/null +++ b/code/datums/tutorial/_tutorial.dm @@ -0,0 +1,256 @@ +GLOBAL_LIST_EMPTY_TYPED(ongoing_tutorials, /datum/tutorial) + +/// A tutorial datum contains a set of instructions for a player tutorial, such as what to spawn, what's scripted to occur, and so on. +/datum/tutorial + /// What the tutorial is called, is player facing + var/name = "Base" + /// Internal ID of the tutorial, kept for save files + var/tutorial_id = "base" + /// A short 1-2 sentence description of the tutorial itself + var/desc = "" + /// What the tutorial's icon in the UI should look like + var/icon_state = "" + /// What category the tutorial should be under + var/category = TUTORIAL_CATEGORY_BASE + /// Ref to the bottom-left corner tile of the tutorial room + var/turf/bottom_left_corner + /// Ref to the turf reservation for this tutorial + var/datum/turf_reservation/reservation + /// Ref to the player who is doing the tutorial + var/mob/tutorial_mob + /// If the tutorial will be ending soon + var/tutorial_ending = FALSE + /// A dict of type:atom ref for some important junk that should be trackable + var/list/tracking_atoms = list() + /// What map template should be used for the tutorial + var/datum/map_template/tutorial/tutorial_template = /datum/map_template/tutorial/s12x12 + /// What is the parent path of this, to exclude from the tutorial menu + var/parent_path = /datum/tutorial + /// A dictionary of "bind_name" : "keybind_button". The inverse of `key_bindings` on a client's prefs + var/list/player_bind_dict = list() + /// If the tutorial has been completed. This doesn't need to be modified if you call end_tutorial() with a param of TRUE + var/completion_marked = FALSE + +/datum/tutorial/Destroy(force, ...) + GLOB.ongoing_tutorials -= src + QDEL_NULL(reservation) // Its Destroy() handles releasing reserved turfs + + tutorial_mob = null // We don't delete it because the turf reservation will typically clean it up + + QDEL_LIST_ASSOC_VAL(tracking_atoms) + + return ..() + +/// The proc to begin doing everything related to the tutorial +/datum/tutorial/proc/start_tutorial(mob/starting_mob) + SHOULD_CALL_PARENT(TRUE) + + if(!starting_mob?.client) + return FALSE + + ADD_TRAIT(starting_mob, TRAIT_IN_TUTORIAL, TRAIT_SOURCE_TUTORIAL) + + tutorial_mob = starting_mob + + reservation = SSmapping.request_turf_block_reservation(initial(tutorial_template.width), initial(tutorial_template.height), 1) + if(!reservation) + abort_tutorial() + return FALSE + + var/turf/bottom_left_corner_reservation = reservation.bottom_left_turfs[1] + var/datum/map_template/tutorial/template = new tutorial_template + template.load(bottom_left_corner_reservation, FALSE, TRUE) + var/obj/landmark = locate(/obj/effect/landmark/tutorial_bottom_left) in GLOB.landmarks_list + bottom_left_corner = get_turf(landmark) + qdel(landmark) + + if(!verify_template_loaded()) + abort_tutorial() + return FALSE + + generate_binds() + + GLOB.ongoing_tutorials |= src + var/area/tutorial_area = get_area(bottom_left_corner) + tutorial_area.update_base_lighting() // this will be entirely dark otherwise + init_map() + if(!tutorial_mob) + end_tutorial() + + return TRUE + +/// The proc used to end and clean up the tutorial +/datum/tutorial/proc/end_tutorial(completed = FALSE) + SHOULD_CALL_PARENT(TRUE) + + if(tutorial_mob) + remove_action(tutorial_mob, /datum/action/tutorial_end) // Just in case to make sure the client can't try and leave the tutorial while it's mid-cleanup + if(tutorial_mob.client?.prefs && (completed || completion_marked)) + tutorial_mob.client.prefs.completed_tutorials |= tutorial_id + tutorial_mob.client.prefs.save_character() + var/mob/new_player/new_player = new + if(!tutorial_mob.mind) + tutorial_mob.mind_initialize() + + tutorial_mob.mind.transfer_to(new_player) + + if(!QDELETED(src)) + qdel(src) + +/// Verify the template loaded fully and without error. +/datum/tutorial/proc/verify_template_loaded() + // We subtract 1 from x and y because the bottom left corner doesn't start at the walls. + var/turf/true_bottom_left_corner = reservation.bottom_left_turfs[1] + for(var/turf/tile as anything in CORNER_BLOCK(true_bottom_left_corner, initial(tutorial_template.width), initial(tutorial_template.height))) + // For some reason I'm unsure of, the template will not always fully load, leaving some tiles to be space tiles. So, we check all tiles in the (small) tutorial area + // and tell start_tutorial to abort if there's any space tiles. + if(istype(tile, /turf/open/space)) + return FALSE + + return TRUE + +/// Something went very, very wrong during load so let's abort +/datum/tutorial/proc/abort_tutorial() + to_chat(tutorial_mob, SPAN_BOLDWARNING("Something went wrong during tutorial load, please try again!")) + end_tutorial(FALSE) + +/datum/tutorial/proc/add_highlight(atom/target, color = "#d19a02") + target.add_filter("tutorial_highlight", 2, list("type" = "outline", "color" = color, "size" = 1)) + +/datum/tutorial/proc/remove_highlight(atom/target) + target.remove_filter("tutorial_highlight") + +/datum/tutorial/proc/add_to_tracking_atoms(atom/reference) + tracking_atoms[reference.type] = reference + +/datum/tutorial/proc/remove_from_tracking_atoms(atom/reference) + tracking_atoms -= reference.type + +/// Broadcast a message to the player's screen +/datum/tutorial/proc/message_to_player(message) + playsound_client(tutorial_mob.client, 'sound/effects/radiostatic.ogg', tutorial_mob.loc, 25, FALSE) + tutorial_mob.play_screen_text(message, /atom/movable/screen/text/screen_text/command_order/tutorial, rgb(103, 214, 146)) + to_chat(tutorial_mob, SPAN_NOTICE(message)) + +/// Updates a player's objective in their status tab +/datum/tutorial/proc/update_objective(message) + SEND_SIGNAL(tutorial_mob, COMSIG_MOB_TUTORIAL_UPDATE_OBJECTIVE, message) + +/// Initialize the tutorial mob. +/datum/tutorial/proc/init_mob() + tutorial_mob.AddComponent(/datum/component/tutorial_status) + give_action(tutorial_mob, /datum/action/tutorial_end, null, null, src) + ADD_TRAIT(tutorial_mob, TRAIT_IN_TUTORIAL, TRAIT_SOURCE_TUTORIAL) + +/// Ends the tutorial after a certain amount of time. +/datum/tutorial/proc/tutorial_end_in(time = 5 SECONDS, completed = TRUE) + tutorial_ending = TRUE + addtimer(CALLBACK(src, PROC_REF(end_tutorial), completed), time) + +/// Initialize any objects that need to be in the tutorial area from the beginning. +/datum/tutorial/proc/init_map() + return + +/// Returns a turf offset by offset_x (left-to-right) and offset_y (up-to-down) +/datum/tutorial/proc/loc_from_corner(offset_x = 0, offset_y = 0) + RETURN_TYPE(/turf) + return locate(bottom_left_corner.x + offset_x, bottom_left_corner.y + offset_y, bottom_left_corner.z) + +/// Handle the player ghosting out +/datum/tutorial/proc/on_ghost(datum/source, mob/dead/observer/ghost) + SIGNAL_HANDLER + + var/mob/new_player/new_player = new + if(!ghost.mind) + ghost.mind_initialize() + + ghost.mind.transfer_to(new_player) + + end_tutorial(FALSE) + +/// A wrapper for signals to call end_tutorial() +/datum/tutorial/proc/signal_end_tutorial(datum/source) + SIGNAL_HANDLER + + end_tutorial(FALSE) + +/// Called whenever the tutorial_mob logs out +/datum/tutorial/proc/on_logout(datum/source) + SIGNAL_HANDLER + + if(tutorial_mob.aghosted) + return + + end_tutorial(FALSE) + +/// Generate a dictionary of button : action for use of referencing what keys to press +/datum/tutorial/proc/generate_binds() + if(!tutorial_mob.client?.prefs) + return + + for(var/bind in tutorial_mob.client.prefs.key_bindings) + var/action = tutorial_mob.client.prefs.key_bindings[bind] + // We presume the first action under a certain binding is the one we want. + if(action[1] in player_bind_dict) + player_bind_dict[action[1]] += bind + else + player_bind_dict[action[1]] = list(bind) + +/// Getter for player_bind_dict. Provide an action name like "North" or "quick_equip" +/datum/tutorial/proc/retrieve_bind(action_name) + if(!action_name) + return + + if(!(action_name in player_bind_dict)) + return "Undefined" + + return player_bind_dict[action_name][1] + +/// When called, will make anything that ends the tutorial mark it as completed. Does not need to be called if end_tutorial(TRUE) is called instead +/datum/tutorial/proc/mark_completed() + completion_marked = TRUE + +/datum/action/tutorial_end + name = "Stop Tutorial" + action_icon_state = "hologram_exit" + /// Weakref to the tutorial this is related to + var/datum/weakref/tutorial + +/datum/action/tutorial_end/New(Target, override_icon_state, datum/tutorial/selected_tutorial) + . = ..() + tutorial = WEAKREF(selected_tutorial) + +/datum/action/tutorial_end/action_activate() + if(!tutorial) + return + + var/datum/tutorial/selected_tutorial = tutorial.resolve() + if(selected_tutorial.tutorial_ending) + return + + selected_tutorial.end_tutorial() + + +/datum/map_template/tutorial + name = "Tutorial Zone (12x12)" + mappath = "maps/tutorial/tutorial_12x12.dmm" + width = 12 + height = 12 + +/datum/map_template/tutorial/s12x12 + +/datum/map_template/tutorial/s8x9 + name = "Tutorial Zone (8x9)" + mappath = "maps/tutorial/tutorial_8x9.dmm" + width = 8 + height = 9 + +/datum/map_template/tutorial/s8x9/no_baselight + name = "Tutorial Zone (8x9) (No Baselight)" + mappath = "maps/tutorial/tutorial_8x9_nb.dmm" + +/datum/map_template/tutorial/s7x7 + name = "Tutorial Zone (7x7)" + mappath = "maps/tutorial/tutorial_7x7.dmm" + width = 7 + height = 7 diff --git a/code/datums/tutorial/_tutorial_menu.dm b/code/datums/tutorial/_tutorial_menu.dm new file mode 100644 index 000000000000..3c7a28e77b92 --- /dev/null +++ b/code/datums/tutorial/_tutorial_menu.dm @@ -0,0 +1,84 @@ +/datum/tutorial_menu + /// List of ["name" = name, "tutorials" = ["name" = name, "path" = "path", "id" = tutorial_id]] + var/static/list/categories = list() + + +/datum/tutorial_menu/New() + if(!length(categories)) + var/list/categories_2 = list() + for(var/datum/tutorial/tutorial as anything in subtypesof(/datum/tutorial)) + if(initial(tutorial.parent_path) == tutorial) + continue + + if(!(initial(tutorial.category) in categories_2)) + categories_2[initial(tutorial.category)] = list() + + categories_2[initial(tutorial.category)] += list(list( + "name" = initial(tutorial.name), + "path" = "[tutorial]", + "id" = initial(tutorial.tutorial_id), + "description" = initial(tutorial.desc), + "image" = initial(tutorial.icon_state), + )) + + for(var/category in categories_2) + categories += list(list( + "name" = category, + "tutorials" = categories_2[category], + )) + + +/datum/tutorial_menu/proc/ui_interact(mob/user, datum/tgui/ui) + ui = SStgui.try_update_ui(user, src, ui) + if(!ui) + ui = new(user, src, "TutorialMenu") + ui.open() + +/datum/tutorial_menu/ui_assets(mob/user) + return list( + get_asset_datum(/datum/asset/spritesheet/tutorial), + ) + +/datum/tutorial_menu/ui_state(mob/user) + if(istype(get_area(user), /area/misc/tutorial)) + return GLOB.never_state + + return GLOB.new_player_state + + +/datum/tutorial_menu/ui_static_data(mob/user) + var/list/data = list() + + data["tutorial_categories"] = categories + if(user.client?.prefs) + data["completed_tutorials"] = user.client.prefs.completed_tutorials + else + data["completed_tutorials"] = list() + + return data + + +/datum/tutorial_menu/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) + . = ..() + if(.) + return + + switch(action) + if("select_tutorial") + var/datum/tutorial/path + if(!params["tutorial_path"]) + return + + path = text2path(params["tutorial_path"]) + + if(!ispath(path, /datum/tutorial) || !isnewplayer(usr)) + return + + if(HAS_TRAIT(usr, TRAIT_IN_TUTORIAL) || istype(get_area(usr), /area/misc/tutorial)) + to_chat(usr, SPAN_NOTICE("You are currently in a tutorial, or one is loading. Please be patient.")) + return + + path = new path + if(path.start_tutorial(usr)) + ui.close() + return TRUE diff --git a/code/datums/tutorial/creating_a_tutorial.md b/code/datums/tutorial/creating_a_tutorial.md new file mode 100644 index 000000000000..4ed1a379f348 --- /dev/null +++ b/code/datums/tutorial/creating_a_tutorial.md @@ -0,0 +1,112 @@ +# Tutorial Creation + +## Step 1: Identifying the Goal + +Your first objective when making a tutorial should be to have a clear and concise vision of what you want the tutorial to convey to the user. People absorb information better in smaller chunks, so you should ideally keep a tutorial to one section of information at a time. + +For example, if you are making a tutorial for new CM players, it should be split into multiple parts like: + +- Basics +- Medical +- Weaponry +- Requisitions/Communication + +## Step 2: Coding + +For an example of the current code standards for tutorials, see [this](https://github.com/cmss13-devs/cmss13/pull/4442/files#diff-843b2f84360b9b932dfc960027992f2b5117667962bfa8da14f9a35f0179a926) file. + +The API for tutorials is designed to be very simple, so I'll go over all the base `/datum/tutorial` procs and some vars here: + +### Variables + +- `name` + - This is the player-facing name of the tutorial. +- `tutorial_id` + - This is the back-end ID of the tutorial, used for save files. Try not to change a tutorial's ID after it's on the live server. +- `category` + - This is what category the tutorial should be under. Use the `TUTORIAL_CATEGORY_XXXX` macros. +- `tutorial_template` + - This is what type the map template of the tutorial should be. The default space is 12x12; ideally make it so it fits the given scale of the tutorial with some wiggle room for the player to move around. +- `parent_path` + - This is the top-most parent `/datum/tutorial` path, used to exclude abstract parents from the tutorial menu. For example, `/datum/tutorial/marine/basic` would have a `parent_path` of `/datum/tutorial/marine`, since that path is the top-most abstract path. +- `completion_marked` + - If this is `TRUE`, the tutorial will be marked as completed if ended in any way. You can modify this with `mark_completed()` but is not necessary if `end_tutorial(TRUE)` is called. + +### Procs + +- `start_tutorial(mob/starting_mob)` + - This proc starts the tutorial, setting up the map template and player. This should be overridden with a parent call before any overridden code. +- `end_tutorial(completed = FALSE)` + - This proc ends the tutorial, sending the player back to the lobby and deleting the tutorial itself. A parent call on any subtypes should be at the end of the overridden segment. If `completed` is `TRUE`, then the tutorial will save as a completed one for the user. If `mark_completed()` was called previously, the tutorial will count as completed regardless of if this is called with an argument of `TRUE` or `FALSE`. +- `add_highlight(atom/target, color = "#d19a02")` + - This proc adds a highlight filter around an atom, by default this color. Successive calls of highlight on the same atom will override the last. +- `remove_highlight(atom/target)` + - This proc removes the tutorial highlight from a target. +- `add_to_tracking_atoms(atom/reference)` + - This proc will add a reference to the tutorial's tracked atom dictionary. For what a tracked atom is, see Step 2.1. +- `remove_from_tracking_atoms(atom/reference)` + - This proc will remove a reference from the tutorial's tracked atom dictionary. For what a tracked atom is, see Step 2.1. +- `message_to_player(message)` + - This proc is the ideal way to communicate to a player. It is visually similar to overwatch messages or weather alerts, but appears and disappears much faster. The messages sent should be consise, but can have a degree of dialogue to them. +- `update_objective(message)` + - This proc is used to update the player's objective in their status panel. This should be only what is required and how to do it without any dialogue or extra text. +- `init_mob()` + - This proc is used to initialize the mob and set them up correctly. +- `init_map()` + - This proc does nothing by default, but can be overriden to spawn any atoms necessary for the tutorial from the very start. +- `tutorial_end_in(time = 5 SECONDS, completed = TRUE)` + - This proc will end the tutorial in the given time, defaulting to 5 seconds. Once the proc is called, the player will be booted back to the menu screen after the time is up. Will mark the tutorial as completed if `completed` is `TRUE` +- `loc_from_corner(offset_x = 0, offset_y = 0)` + - This proc will return a turf offset from the bottom left corner of the tutorial zone. Keep in mind, the bottom left corner is NOT on a wall, it is on the first floor on the bottom left corner. `offset_x` and `offset_y` are used to offset what turf you want to get, and should never be negative. +- `on_ghost(datum/source, mob/dead/observer/ghost)` + - This proc is used to properly end and clean up the tutorial should a player ghost out. You shouldn't need to override or modify this when making a tutorial. +- `signal_end_tutorial(datum/source)` + - This proc is used to call `end_tutorial()` via signals. If something (e.g. a player dying) should send a signal that ends the tutorial, have the signal call this proc. +- `on_logout(datum/source)` + - This proc is called when a player logs out, disconnecting their client from the server. As with `on_ghost()` and similar procs, it cleans up and ends the tutorial. +- `generate_binds()` + - This proc generates a dictionary of the player's keybinds, in the form of {"action_name" : "key_to_press"}. This is used for the `retrieve_bind()` proc to be able to tell the user what buttons to press. +- `retrieve_bind(action_name)` + - This proc will be one you'll get a fair amount of use from. Whenever you tell the user to do something like "drop an item", you should tell them what button to press by calling `retrieve_bind("drop_item")` in the string telling them to drop an item. +- `mark_completed()` + - This proc can be used as an alternative to calling `end_tutorial(TRUE)`. Calling this proc means any method of exiting the tutorial (ghosting, dying, pressing the exit button) will mark the tutorial as completed. + +## Step 2.1: Tracking Atoms + +Naturally, you will need to keep track of certain objects or mobs for signal purposes, so the tracking system exists to fill that purpose. When you add a reference to the tracking atom list with `add_to_tracking_atoms()`, it gets put into a dictionary of `{path : reference}`. Because of this limitation, you should not track more than 1 object of the same type. To get a tracked atom, use of the `TUTORIAL_ATOM_FROM_TRACKING(path, varname)` macro is recommended. `path` should be replaced with the precise typepath of the tracked atom, and `varname` should be replaced with the variable name you wish to use. If an object is going to be deleted, remove it with `remove_from_tracking_atoms()` first. + +## Step 2.2: Scripting Format + +Any proc whose main purpose is to advance the tutorial will be hereon referred to as a "script proc", as part of the entire "script". In the vast majority of cases, a script proc should hand off to the next using signals. Here is an example from `basic_marine.dm`: + +```javascript +/datum/tutorial/marine/basic/proc/on_cryopod_exit() + SIGNAL_HANDLER + + UnregisterSignal(tracking_atoms[/obj/structure/machinery/cryopod/tutorial], COMSIG_CRYOPOD_GO_OUT) + message_to_player("Good. You may notice the yellow \"food\" icon on the right side of your screen. Proceed to the outlined Food Vendor and vend the USCM Protein Bar.") + update_objective("Vend a USCM Protein Bar from the outlined ColMarTech Food Vendor.") + TUTORIAL_ATOM_FROM_TRACKING(/obj/structure/machinery/cm_vending/sorted/marine_food/tutorial, food_vendor) + add_highlight(food_vendor) + food_vendor.req_access = list() + RegisterSignal(food_vendor, COMSIG_VENDOR_SUCCESSFUL_VEND, PROC_REF(on_food_vend)) + +``` + +Line-by-line: +- `SIGNAL_HANDLER` is necessary as this proc was called via signal. +- Here we are unregistering the signal we registered in the previous proc to call this one, which inthis case was waiting for the player to leave the tracked cryopod. +- Now, we tell the user the next step in the script, which is sent to their screen. +- Here we update the player's status panel with similar info to the above line, but far morecondensed. +- Since we need to access the food vendor, we use the `TUTORIAL_ATOM_FROM_TRACKING()` macro to get aref to it. +- We add a yellow outline to the food vendor to make it more clear what is wanted of the player +- The tutorial food vendors are locked to `ACCESS_TUTORIAL_LOCKED` by default, so here we remove thataccess requirement +- And finally, we register a signal for the next script proc, waiting for the user to vend something from the food vendor. + +## Step 2.3: Quirks & Tips + +- Generally speaking, you will want to create `/tutorial` subtypes of anything you add in the tutorial, should it need any special functions or similar. +- Restrict access from players as much as possible. As seen in the example above, restricting access to vendors and similar machines is recommended to prevent sequence breaking. Additionally, avoid adding anything that detracts from the tutorial itself. +- Attempt to avoid softlocks when possible. If someone could reasonably do something (e.g. firing every bullet they have at a ranged target and missing, now unable to kill them and progress) that could softlock them, then there should be a fallback of some sort. However, accomodations don't need to be made for people who purposefully cause a softlock; there's a "stop tutorial" button for a reason. +- When calling `message_to_player()` or `update_objective()`, **bold** the names of objects, items, and keybinds. +- Attempt to bind as many scripting signals to the `tutorial_mob` as possible. The nature of SS13 means something as sequence-heavy as this will always be fragile, so keeping the fragility we can affect to a minimum is imperative. diff --git a/code/datums/tutorial/marine/_marine.dm b/code/datums/tutorial/marine/_marine.dm new file mode 100644 index 000000000000..ceb0ba8ab550 --- /dev/null +++ b/code/datums/tutorial/marine/_marine.dm @@ -0,0 +1,21 @@ +/datum/tutorial/marine + category = TUTORIAL_CATEGORY_MARINE + parent_path = /datum/tutorial/marine + icon_state = "marine" + +/datum/tutorial/marine/init_mob() + var/mob/living/carbon/human/new_character = new(bottom_left_corner) + new_character.lastarea = get_area(bottom_left_corner) + + setup_human(new_character, tutorial_mob) + + //SSround_recording.recorder.track_player(new_character) //zonenote: check if necessary + + new_character.marine_snowflake_points = MARINE_TOTAL_SNOWFLAKE_POINTS + new_character.marine_buyable_categories = MARINE_CAN_BUY_ALL + + tutorial_mob = new_character + RegisterSignal(tutorial_mob, COMSIG_LIVING_GHOSTED, PROC_REF(on_ghost)) + RegisterSignal(tutorial_mob, list(COMSIG_PARENT_QDELETING, COMSIG_MOB_DEATH, COMSIG_MOB_END_TUTORIAL), PROC_REF(signal_end_tutorial)) + RegisterSignal(tutorial_mob, COMSIG_MOB_LOGOUT, PROC_REF(on_logout)) + return ..() diff --git a/code/datums/tutorial/marine/basic_marine.dm b/code/datums/tutorial/marine/basic_marine.dm new file mode 100644 index 000000000000..af9d2eaf18dd --- /dev/null +++ b/code/datums/tutorial/marine/basic_marine.dm @@ -0,0 +1,208 @@ +/datum/tutorial/marine/basic + name = "Marine - Basic" + desc = "A tutorial to get you acquainted with the very basics of how to play a groundside marine role." + tutorial_id = "marine_basic_1" + tutorial_template = /datum/map_template/tutorial/s8x9/no_baselight + /// How many items need to be vended from the clothing vendor for the script to continue, if something vends 2 items (for example), increase this number by 2. + var/clothing_items_to_vend = 8 + /// How many items need to be vended from the gun vendor to continue + var/gun_items_to_vend = 2 + +// START OF SCRIPTING + +/datum/tutorial/marine/basic/start_tutorial(mob/starting_mob) + . = ..() + if(!.) + return + + var/obj/item/device/flashlight/flashlight = new(loc_from_corner(2, 3)) + flashlight.anchored = TRUE + flashlight.set_light_power(4) + flashlight.set_light_range(12) + flashlight.icon = null + flashlight.set_light_on(TRUE) + add_to_tracking_atoms(flashlight) + + init_mob() + message_to_player("This is the tutorial for marine rifleman. Leave the cryopod by pressing [retrieve_bind("North")] or [retrieve_bind("East")] to continue.") + update_objective("Exit the cryopod by pressing [retrieve_bind("North")] or [retrieve_bind("East")].") + RegisterSignal(tracking_atoms[/obj/structure/machinery/cryopod/tutorial], COMSIG_CRYOPOD_GO_OUT, PROC_REF(on_cryopod_exit)) + +/datum/tutorial/marine/basic/proc/on_cryopod_exit() + SIGNAL_HANDLER + + UnregisterSignal(tracking_atoms[/obj/structure/machinery/cryopod/tutorial], COMSIG_CRYOPOD_GO_OUT) + message_to_player("Good. You may notice the yellow \"food\" icon on the right side of your screen. Proceed to the outlined Food Vendor and vend the USCM Protein Bar.") + update_objective("Vend a USCM Protein Bar from the outlined ColMarTech Food Vendor.") + TUTORIAL_ATOM_FROM_TRACKING(/obj/structure/machinery/cm_vending/sorted/marine_food/tutorial, food_vendor) + add_highlight(food_vendor) + food_vendor.req_access = list() + RegisterSignal(food_vendor, COMSIG_VENDOR_SUCCESSFUL_VEND, PROC_REF(on_food_vend)) + +/datum/tutorial/marine/basic/proc/on_food_vend(datum/source, obj/structure/machinery/cm_vending/vendor, list/itemspec, mob/living/carbon/human/user) + SIGNAL_HANDLER + + TUTORIAL_ATOM_FROM_TRACKING(/obj/structure/machinery/cm_vending/sorted/marine_food/tutorial, food_vendor) + UnregisterSignal(food_vendor, COMSIG_VENDOR_SUCCESSFUL_VEND) + remove_highlight(food_vendor) + food_vendor.req_access = list(ACCESS_TUTORIAL_LOCKED) + message_to_player("Now click on your character with the USCM Protein Bar in-hand until it is fully eaten. If you accidentally switched hands, switch back with [retrieve_bind("swap_hands")].") + update_objective("Eat the USCM Protein Bar by clicking on yourself while holding it, until it is gone.") + RegisterSignal(tutorial_mob, COMSIG_MOB_EATEN_SNACK, PROC_REF(on_foodbar_eaten)) + +/datum/tutorial/marine/basic/proc/on_foodbar_eaten(datum/source, obj/item/reagent_container/food/snacks/eaten_food) + SIGNAL_HANDLER + + if(!istype(eaten_food, /obj/item/reagent_container/food/snacks/protein_pack) || eaten_food.reagents.total_volume) + return + + UnregisterSignal(source, COMSIG_MOB_EATEN_SNACK) + message_to_player("Good. Now move to the outlined vendor and vend everything inside.") + update_objective("Vend everything inside the ColMarTech Automated Closet.") + TUTORIAL_ATOM_FROM_TRACKING(/obj/structure/machinery/cm_vending/clothing/tutorial, clothing_vendor) + add_highlight(clothing_vendor) + clothing_vendor.req_access = list() + RegisterSignal(clothing_vendor, COMSIG_VENDOR_SUCCESSFUL_VEND, PROC_REF(on_clothing_vend)) + +/datum/tutorial/marine/basic/proc/on_clothing_vend(datum/source) + SIGNAL_HANDLER + + clothing_items_to_vend-- + if(clothing_items_to_vend <= 0) + TUTORIAL_ATOM_FROM_TRACKING(/obj/structure/machinery/cm_vending/clothing/tutorial, clothing_vendor) + UnregisterSignal(clothing_vendor, COMSIG_VENDOR_SUCCESSFUL_VEND) + clothing_vendor.req_access = list(ACCESS_TUTORIAL_LOCKED) + remove_highlight(clothing_vendor) + message_to_player("Now, the room will darken. Take a flare out of your flare pouch by clicking on it with an empty hand, and then light it by using it in-hand with [retrieve_bind("activate_inhand")].") + update_objective("Click on your flare pouch to remove a flare before using it in-hand.") + var/obj/item/storage/pouch/flare/flare_pouch = locate(/obj/item/storage/pouch/flare) in tutorial_mob.contents + if(flare_pouch) + add_highlight(flare_pouch) + RegisterSignal(tutorial_mob, COMSIG_MOB_ITEM_ATTACK_SELF, PROC_REF(on_flare_light)) + addtimer(CALLBACK(src, PROC_REF(dim_room)), 2.5 SECONDS) + +/datum/tutorial/marine/basic/proc/on_flare_light(datum/source, obj/item/used) + SIGNAL_HANDLER + + if(!istype(used, /obj/item/device/flashlight/flare)) + return + + UnregisterSignal(tutorial_mob, COMSIG_MOB_ITEM_ATTACK_SELF) + var/obj/item/storage/pouch/flare/flare_pouch = locate(/obj/item/storage/pouch/flare) in tutorial_mob.contents + if(flare_pouch) + remove_highlight(flare_pouch) + + message_to_player("Now throw the flare by clicking on a nearby tile, or dropping it with [retrieve_bind("drop_item")].") + update_objective("Throw the flare by clicking on a nearby tile, or dropping it with [retrieve_bind("drop_item")].") + RegisterSignal(tutorial_mob, COMSIG_MOB_ITEM_DROPPED, PROC_REF(on_flare_throw)) + +/datum/tutorial/marine/basic/proc/on_flare_throw(datum/source, obj/item/thrown) + SIGNAL_HANDLER + + if(!istype(thrown, /obj/item/device/flashlight/flare)) + return + + UnregisterSignal(tutorial_mob, COMSIG_MOB_ITEM_DROPPED) + message_to_player("Good. Now, the room will brighten again. Proceed to the highlighted vendor and vend a M41A Pulse Rifle MK2, along with a magazine.") + update_objective("Vend everything from the ColMarTech Automated Weapons Rack.") + addtimer(CALLBACK(src, PROC_REF(brighten_room)), 1.5 SECONDS) + TUTORIAL_ATOM_FROM_TRACKING(/obj/structure/machinery/cm_vending/sorted/cargo_guns/squad_prep/tutorial, gun_vendor) + gun_vendor.req_access = list() + add_highlight(gun_vendor) + RegisterSignal(gun_vendor, COMSIG_VENDOR_SUCCESSFUL_VEND, PROC_REF(on_gun_vend)) + +/datum/tutorial/marine/basic/proc/on_gun_vend(datum/source) + SIGNAL_HANDLER + + gun_items_to_vend-- + if(gun_items_to_vend <= 0) + TUTORIAL_ATOM_FROM_TRACKING(/obj/structure/machinery/cm_vending/sorted/cargo_guns/squad_prep/tutorial, gun_vendor) + gun_vendor.req_access = list(ACCESS_TUTORIAL_LOCKED) + remove_highlight(gun_vendor) + UnregisterSignal(gun_vendor, COMSIG_VENDOR_SUCCESSFUL_VEND) + message_to_player("Now insert the magazine into the M41A Pulse Rifle by having the magazine in your active hand and hitting the Pulse Rifle with it. If it is in the off-hand, switch with [retrieve_bind("swap_hands")].") + update_objective("Insert the M41A magazine by hitting the M41A Pulse Rifle with it.") + RegisterSignal(tutorial_mob, COMSIG_MOB_RELOADED_GUN, PROC_REF(on_magazine_insert)) + +/datum/tutorial/marine/basic/proc/on_magazine_insert(datum/source, atom/attacked, obj/item/attacked_with) + SIGNAL_HANDLER + + UnregisterSignal(tutorial_mob, COMSIG_MOB_RELOADED_GUN) + message_to_player("Good. Now wield your gun by using it in-hand with [retrieve_bind("activate_inhand")].") + update_objective("Wield your gun with two hands by pressing [retrieve_bind("activate_inhand")] with the gun in your main hand.") + RegisterSignal(tutorial_mob, COMSIG_MOB_ITEM_ATTACK_SELF, PROC_REF(on_gun_wield)) + +/datum/tutorial/marine/basic/proc/on_gun_wield(datum/source, obj/item/used) + SIGNAL_HANDLER + + if(!istype(used, /obj/item/weapon/gun/rifle/m41a)) + return + + UnregisterSignal(tutorial_mob, COMSIG_MOB_ITEM_ATTACK_SELF) + message_to_player("Now, shoot at the highlighted Xenomorph until it dies.") + update_objective("Shoot at the Xenomorph until it dies.") + var/mob/living/carbon/xenomorph/drone/tutorial/xeno_dummy = new(loc_from_corner(4, 5)) + add_to_tracking_atoms(xeno_dummy) + add_highlight(xeno_dummy, COLOR_VIVID_RED) + RegisterSignal(xeno_dummy, COMSIG_MOB_DEATH, PROC_REF(on_xeno_death)) + RegisterSignal(tutorial_mob, COMSIG_MOB_GUN_EMPTY, PROC_REF(on_magazine_empty)) // I'd like to prevent unwilling softlocks as much as I can + +/// Non-contiguous part of the script, called if the user manages to run out of ammo in the gun without the xeno dying +/datum/tutorial/marine/basic/proc/on_magazine_empty(obj/item/weapon/gun/empty_gun) + SIGNAL_HANDLER + + UnregisterSignal(tutorial_mob, COMSIG_MOB_GUN_EMPTY) + message_to_player("Your gun's out of ammo. Go grab some more from the Weaponry Vendor and kill the Xenomorph.") + TUTORIAL_ATOM_FROM_TRACKING(/obj/structure/machinery/cm_vending/sorted/cargo_guns/squad_prep/tutorial, gun_vendor) + gun_vendor.req_access = list() + gun_vendor.load_ammo() // 99 magazines, to make sure that the xeno dies + +/datum/tutorial/marine/basic/proc/on_xeno_death(datum/source) + SIGNAL_HANDLER + + TUTORIAL_ATOM_FROM_TRACKING(/mob/living/carbon/xenomorph/drone/tutorial, xeno_dummy) + UnregisterSignal(xeno_dummy, COMSIG_MOB_DEATH) + UnregisterSignal(tutorial_mob, COMSIG_MOB_GUN_EMPTY) + remove_highlight(xeno_dummy) + addtimer(CALLBACK(src, PROC_REF(disappear_xeno)), 2.5 SECONDS) + message_to_player("Very good. This is the end of the tutorial, proceed to the next one to learn the basics of Medical. You will be sent back to the lobby screen momentarily.") + update_objective("") + tutorial_end_in(7.5 SECONDS, TRUE) + + +// END OF SCRIPTING +// START OF SCRIPT HELPERS + +/datum/tutorial/marine/basic/proc/dim_room() + TUTORIAL_ATOM_FROM_TRACKING(/obj/item/device/flashlight, flashlight) + flashlight.set_light_on(FALSE) + +/datum/tutorial/marine/basic/proc/brighten_room() + TUTORIAL_ATOM_FROM_TRACKING(/obj/item/device/flashlight, flashlight) + flashlight.set_light_on(TRUE) + +/datum/tutorial/marine/basic/proc/disappear_xeno() + TUTORIAL_ATOM_FROM_TRACKING(/mob/living/carbon/xenomorph/drone/tutorial, xeno_dummy) + animate(xeno_dummy, time = 5 SECONDS, alpha = 0) + remove_from_tracking_atoms(xeno_dummy) + QDEL_IN(xeno_dummy, 5.5 SECONDS) + +// END OF SCRIPT HELPERS + +/datum/tutorial/marine/basic/init_mob() + . = ..() + arm_equipment(tutorial_mob, /datum/equipment_preset/tutorial) + + TUTORIAL_ATOM_FROM_TRACKING(/obj/structure/machinery/cryopod/tutorial, tutorial_pod) + tutorial_pod.go_in_cryopod(tutorial_mob, TRUE, FALSE) + + +/datum/tutorial/marine/basic/init_map() + var/obj/structure/machinery/cryopod/tutorial/tutorial_pod = new(bottom_left_corner) + add_to_tracking_atoms(tutorial_pod) + var/obj/structure/machinery/cm_vending/sorted/marine_food/tutorial/food_vendor = new(loc_from_corner(0, 2)) + add_to_tracking_atoms(food_vendor) + var/obj/structure/machinery/cm_vending/clothing/tutorial/clothing_vendor = new(loc_from_corner(0, 4)) + add_to_tracking_atoms(clothing_vendor) + var/obj/structure/machinery/cm_vending/sorted/cargo_guns/squad_prep/tutorial/gun_vendor = new(loc_from_corner(0, 5)) + add_to_tracking_atoms(gun_vendor) diff --git a/code/datums/tutorial/marine/medical_basic.dm b/code/datums/tutorial/marine/medical_basic.dm new file mode 100644 index 000000000000..3a42a6d2ecc2 --- /dev/null +++ b/code/datums/tutorial/marine/medical_basic.dm @@ -0,0 +1,174 @@ +/datum/tutorial/marine/medical_basic + name = "Marine - Medical (Basic)" + desc = "Learn how to treat common injuries you may face as a marine." + tutorial_id = "marine_medical_1" + tutorial_template = /datum/map_template/tutorial/s7x7 + +// START OF SCRIPTING + +/datum/tutorial/marine/medical_basic/start_tutorial(mob/starting_mob) + . = ..() + if(!.) + return + + init_mob() + message_to_player("This is the tutorial for the basics of medical that you will need to know for playing a marine role.") + addtimer(CALLBACK(src, PROC_REF(brute_tutorial)), 4 SECONDS) + +/datum/tutorial/marine/medical_basic/proc/brute_tutorial() + message_to_player("The first kind of damage is Brute, the most common kind. It represents physical trauma from things like punches, weapons, or guns.") + var/mob/living/living_mob = tutorial_mob + living_mob.adjustBruteLoss(10) + addtimer(CALLBACK(src, PROC_REF(brute_tutorial_2)), 4 SECONDS) + +/datum/tutorial/marine/medical_basic/proc/brute_tutorial_2() + message_to_player("You can observe if you have Brute or Burn damage by clicking on yourself with an empty hand on help intent.") + update_objective("Click on yourself with an empty hand.") + RegisterSignal(tutorial_mob, COMSIG_LIVING_ATTACKHAND_HUMAN, PROC_REF(on_health_examine)) + +/datum/tutorial/marine/medical_basic/proc/on_health_examine(datum/source, mob/living/carbon/human/attacked_mob) + SIGNAL_HANDLER + + if(attacked_mob != tutorial_mob) + return + + UnregisterSignal(tutorial_mob, COMSIG_LIVING_ATTACKHAND_HUMAN) + message_to_player("Good. Now, you have taken some brute damage. Bicaridine is used to fix brute over time. Pick up the bicaridine EZ autoinjector and use it in-hand.") + update_objective("Inject yourself with the bicaridine injector.") + var/obj/item/reagent_container/hypospray/autoinjector/bicaridine/skillless/one_use/brute_injector = new(loc_from_corner(0, 4)) + add_to_tracking_atoms(brute_injector) + add_highlight(brute_injector) + RegisterSignal(tutorial_mob, COMSIG_LIVING_HYPOSPRAY_INJECTED, PROC_REF(on_brute_inject)) + +/datum/tutorial/marine/medical_basic/proc/on_brute_inject(datum/source, obj/item/reagent_container/hypospray/injector) + SIGNAL_HANDLER + + if(!istype(injector, /obj/item/reagent_container/hypospray/autoinjector/bicaridine/skillless/one_use)) + return + + UnregisterSignal(tutorial_mob, COMSIG_LIVING_HYPOSPRAY_INJECTED) + TUTORIAL_ATOM_FROM_TRACKING(/obj/item/reagent_container/hypospray/autoinjector/bicaridine/skillless/one_use, brute_injector) + remove_highlight(brute_injector) + message_to_player("All medicines take time to work after injection. Next is Burn damage. It is obtained from things like acid or being set on fire.") + update_objective("") + var/mob/living/living_mob = tutorial_mob + living_mob.adjustFireLoss(10) + addtimer(CALLBACK(src, PROC_REF(burn_tutorial)), 4 SECONDS) + +/datum/tutorial/marine/medical_basic/proc/burn_tutorial() + message_to_player("Kelotane is used to fix burn over time. Inject yourself with the kelotane EZ autoinjector.") + update_objective("Inject yourself with the kelotane injector.") + var/obj/item/reagent_container/hypospray/autoinjector/kelotane/skillless/one_use/burn_injector = new(loc_from_corner(0, 4)) + add_to_tracking_atoms(burn_injector) + add_highlight(burn_injector) + RegisterSignal(tutorial_mob, COMSIG_LIVING_HYPOSPRAY_INJECTED, PROC_REF(on_burn_inject)) + + +/datum/tutorial/marine/medical_basic/proc/on_burn_inject(datum/source, obj/item/reagent_container/hypospray/injector) + SIGNAL_HANDLER + + if(!istype(injector, /obj/item/reagent_container/hypospray/autoinjector/kelotane/skillless/one_use)) + return + + UnregisterSignal(tutorial_mob, COMSIG_LIVING_HYPOSPRAY_INJECTED) + TUTORIAL_ATOM_FROM_TRACKING(/obj/item/reagent_container/hypospray/autoinjector/kelotane/skillless/one_use, burn_injector) + remove_highlight(burn_injector) + message_to_player("Good. Now, when you normally take damage, you will also feel pain. Pain slows you down and can knock you out if left unchecked.") + update_objective("") + var/mob/living/living_mob = tutorial_mob + living_mob.pain.apply_pain(PAIN_CHESTBURST_STRONG) + addtimer(CALLBACK(src, PROC_REF(pain_tutorial)), 4 SECONDS) + +/datum/tutorial/marine/medical_basic/proc/pain_tutorial() + message_to_player("Tramadol is used to reduce your pain. Inject yourself with the tramadol EZ autoinjector.") + update_objective("Inject yourself with the tramadol injector.") + var/obj/item/reagent_container/hypospray/autoinjector/tramadol/skillless/one_use/pain_injector = new(loc_from_corner(0, 4)) + add_to_tracking_atoms(pain_injector) + add_highlight(pain_injector) + RegisterSignal(tutorial_mob, COMSIG_LIVING_HYPOSPRAY_INJECTED, PROC_REF(on_pain_inject)) + +/datum/tutorial/marine/medical_basic/proc/on_pain_inject(datum/source, obj/item/reagent_container/hypospray/injector) + SIGNAL_HANDLER + + if(!istype(injector, /obj/item/reagent_container/hypospray/autoinjector/tramadol/skillless/one_use)) + return + + UnregisterSignal(tutorial_mob, COMSIG_LIVING_HYPOSPRAY_INJECTED) + TUTORIAL_ATOM_FROM_TRACKING(/obj/item/reagent_container/hypospray/autoinjector/tramadol/skillless/one_use, pain_injector) + remove_highlight(pain_injector) + message_to_player("Good. Keep in mind that you can overdose on chemicals, so don't inject yourself with the same chemical too much too often. In the field, injectors have 3 uses.") + update_objective("Don't overdose! Generally, 3 injections of a chemical will overdose you.") + var/mob/living/living_mob = tutorial_mob + living_mob.pain.apply_pain(-PAIN_CHESTBURST_STRONG) // just to make sure + addtimer(CALLBACK(src, PROC_REF(bleed_tutorial)), 4 SECONDS) + +/datum/tutorial/marine/medical_basic/proc/bleed_tutorial() + message_to_player("You can sometimes start bleeding from things like bullets or slashes. Losing blood will accumulate oxygen damage, eventually causing death.") + update_objective("") + var/mob/living/carbon/human/human_mob = tutorial_mob + var/obj/limb/chest/mob_chest = locate(/obj/limb/chest) in human_mob.limbs + mob_chest.add_bleeding(damage_amount = 15) + addtimer(CALLBACK(src, PROC_REF(bleed_tutorial_2)), 4 SECONDS) + +/datum/tutorial/marine/medical_basic/proc/bleed_tutorial_2() + message_to_player("Bleeding wounds can clot themselves over time, or you can fix it quickly with gauze. Pick up the gauze and click on yourself while targeting your chest.") + update_objective("Gauze your chest, or let it clot on its own.") + var/obj/item/stack/medical/bruise_pack/two/bandage = new(loc_from_corner(0, 4)) + add_to_tracking_atoms(bandage) + add_highlight(bandage) + var/mob/living/carbon/human/human_mob = tutorial_mob + var/obj/limb/chest/mob_chest = locate(/obj/limb/chest) in human_mob.limbs + RegisterSignal(mob_chest, COMSIG_LIMB_STOP_BLEEDING, PROC_REF(on_chest_bleed_stop)) + +/datum/tutorial/marine/medical_basic/proc/on_chest_bleed_stop(datum/source, external, internal) + SIGNAL_HANDLER + + // If you exit on this step, your limbs get deleted, which stops the bleeding, which progresses the tutorial despite it ending + if(!tutorial_mob || QDELETED(src)) + return + + var/mob/living/carbon/human/human_mob = tutorial_mob + var/obj/limb/chest/mob_chest = locate(/obj/limb/chest) in human_mob.limbs + UnregisterSignal(mob_chest, COMSIG_LIMB_STOP_BLEEDING) + + TUTORIAL_ATOM_FROM_TRACKING(/obj/item/stack/medical/bruise_pack/two, bandage) + remove_from_tracking_atoms(bandage) + remove_highlight(bandage) + qdel(bandage) + + message_to_player("Good. Sometimes, a bullet or bone shard can result in you getting shrapnel, dealing damage over time. Pick up the knife and use it in-hand to remove the shrapnel.") + update_objective("Remove your shrapnel by using the knife in-hand.") + var/mob/living/living_mob = tutorial_mob + living_mob.pain.feels_pain = FALSE + + var/obj/item/attachable/bayonet/knife = new(loc_from_corner(0, 4)) + add_to_tracking_atoms(knife) + add_highlight(knife) + + var/obj/item/shard/shrapnel/tutorial/shrapnel = new + shrapnel.on_embed(tutorial_mob, mob_chest, TRUE) + + RegisterSignal(tutorial_mob, COMSIG_HUMAN_SHRAPNEL_REMOVED, PROC_REF(on_shrapnel_removed)) + +/datum/tutorial/marine/medical_basic/proc/on_shrapnel_removed() + SIGNAL_HANDLER + + UnregisterSignal(tutorial_mob, COMSIG_HUMAN_SHRAPNEL_REMOVED) + TUTORIAL_ATOM_FROM_TRACKING(/obj/item/attachable/bayonet, knife) + remove_highlight(knife) + message_to_player("Good. This is the end of the basic marine medical tutorial. The tutorial will end shortly.") + update_objective("Tutorial completed.") + tutorial_end_in(5 SECONDS) + +// END OF SCRIPTING +// START OF SCRIPT HELPERS + +// END OF SCRIPT HELPERS + +/datum/tutorial/marine/medical_basic/init_mob() + . = ..() + arm_equipment(tutorial_mob, /datum/equipment_preset/tutorial/fed) + + +/datum/tutorial/marine/medical_basic/init_map() + new /obj/structure/surface/table/almayer(loc_from_corner(0, 4)) diff --git a/code/datums/tutorial/marine/reqs_line.dm b/code/datums/tutorial/marine/reqs_line.dm new file mode 100644 index 000000000000..5b63af30720e --- /dev/null +++ b/code/datums/tutorial/marine/reqs_line.dm @@ -0,0 +1,484 @@ +/* List of Reqs Line tutorial stages */ +#define TUTORIAL_REQS_LINE_STAGE_STARTING 0 //! Reqs Tutorial Stage 0: Get in position +#define TUTORIAL_REQS_LINE_STAGE_ATTACHIES 1 //! Reqs Tutorial Stage 1: Give me some attachies +#define TUTORIAL_REQS_LINE_STAGE_GEARBOX 2 //! Reqs Tutorial Stage 2: I would like an HPR +#define TUTORIAL_REQS_LINE_STAGE_MIXED 3 //! Reqs Tutorial Stage 3: Multiple items. Also toss something over.. +#define TUTORIAL_REQS_LINE_STAGE_SURVIVAL 4 //! Reqs Tutorial Stage 4: SURVIVAL MODE, random requests in a loop + +/// How fast to increase difficulty in survival mode (amount of items/agents) +#define TUTORIAL_REQS_LINE_SURVIVAL_DIFFICULTY (1/3) + +/// Simulates the Requisitions Line experience for newcomers +/datum/tutorial/marine/reqs_line + name = "Marine - Requistions Line" + desc = "Learn how to tend to the requisitions line as a Cargo Technician." + icon_state = "cargotech" + tutorial_id = "requisitions_line" + tutorial_template = /datum/map_template/tutorial/reqs_line + + /// Current step of the tutorial we're at + var/stage = TUTORIAL_REQS_LINE_STAGE_STARTING + /// Current "remind" timer after which the agent will remind player of its request + var/remind_timer + /// Current "hint" timer after which we display visual cues like highlights + var/hint_timer + + /// List of line 'agents', aka the dummies requesting items, sorted by line order + /// During normal stages there is one per stage (except for Forgot stage), + /// During Survival mode there would usually be two: one at the counter, and one moving. + /// The agents are mapped to a list of item types requested. + var/list/mob/living/carbon/human/agents = list() + + /// Active agent currently at the line + var/mob/living/carbon/human/active_agent + /// Specifically for [TUTORIAL_REQS_LINE_STAGE_MIXED], the agent that forgot an item + var/mob/living/carbon/human/loser_agent + + /// Cooldown of confusion if an incorrect item is presented + COOLDOWN_DECLARE(confused_cooldown) + /// Crutch for confusion feedback to work with vending new()ing directly to table - only act surprised once per item type + var/list/confused_types = list() + + /// Max amount of agents per survival wave + var/max_survival_agents = 5 + /// Current survival wave + var/survival_wave = 0 + /// Difficulty factor per survival wave, increasing both the amount of agents and requested items + var/survival_difficulty = 1 + /// Max factor of additional items requested per agent in survival mode. 0.5 = 50% added maximum + var/survival_request_random_factor = 0.5 + + /* + * REQUESTS LISTS + * Maps item types to their names, used for building the requests + */ + var/static/shopping_catalogue = list( + /* ATTACHIES */ + /obj/item/attachable/extended_barrel = list("EB", "EB", "Extended", "Extended Barrel", "Extendo", "Ext Barrel"), + /obj/item/attachable/magnetic_harness = list("MH", "MH", "Magharn", "Mag Harn", "Mag Harness", "Harness", "Magnetic Harness"), + /obj/item/attachable/reddot = list("RDS", "Red Dot", "S5", "Red Dot Sight", "reddot"), + /obj/item/attachable/reflex = list("Reflex", "S6", "Reflex Sight", "S6"), + /obj/item/attachable/scope = list("S8", "S8", "4x", "4x sight", "4x scope", "S8 scope"), + /obj/item/attachable/angledgrip = list("AG", "agrip", "Agrip", "Angled", "angled grip"), + /obj/item/attachable/gyro = list("Gyro"), + /obj/item/attachable/lasersight = list("Laser", "Laser sight", "LS"), + /obj/item/attachable/attached_gun/shotgun = list("U7", "Underbarrel", "Underbarrel Shotgun", "Mini Shotgun"), + /obj/item/attachable/verticalgrip = list("VG", "Vert Grip", "Vertical Grip"), + /obj/item/attachable/stock/rifle = list("Solid Stock", "M41 stock", "M41 Solid Stock"), + /obj/item/attachable/stock/shotgun = list("M37 Stock", "Wooden stock"), + /* GEAR */ + /obj/item/weapon/gun/rifle/m41a = list("M41", "M41", "M41A", "Mk2", "M4 rifle"), + /obj/item/weapon/gun/shotgun/pump = list("M37", "shotgun"), + /obj/item/storage/box/guncase/mou53 = list("MOU", "MOU53", "MOU-53", "Mouse"), + /obj/item/storage/box/guncase/lmg = list("HPR", "HPR kit", "heavy pulse rifle"), + /obj/item/storage/box/guncase/m41aMK1 = list("MK1", "M41 Mk1", "MK1 Kit", "M41A MK1 Kit"), + /obj/item/storage/box/guncase/m56d = list("M56D", "HMG", "M56"), + /obj/item/storage/box/guncase/m2c = list("M2C"), + /obj/item/storage/box/guncase/flamer = list("Flamer", "Flamer kit", "Incinerator"), + /obj/item/storage/box/guncase/m79 = list("GL", "Grenade launcher", "M79", "M79 Grenade launcher"), + /obj/item/clothing/accessory/storage/black_vest = list("Black webbing", "Black webbing vest"), + /obj/item/clothing/accessory/storage/black_vest/brown_vest = list("Brown webbing", "Brown webbing vest"), + /obj/item/clothing/accessory/storage/webbing = list("Webbing", "normal webbing", "web"), + /obj/item/storage/backpack/marine/engineerpack/flamethrower/kit = list("pyro pack", "pyro backpack", "g4-1 pack", "flamer backpack"), + /obj/item/storage/backpack/marine/satchel/rto = list("phone pack", "phone backpack", "radio pack"), + /obj/item/storage/backpack/general_belt = list("G8", "G8 belt"), + /obj/item/storage/pouch/magazine/large = list("Large mag pouch", "Large magazine pouch"), + /obj/item/storage/pouch/shotgun/large = list("Shotgun pouch", "Shotgun shells pouch", "Shells pouch", "Large shells pouch"), + /obj/item/storage/box/m94/signal = list("Signal flares", "box of signals", "CAS flares"), + /obj/item/device/motiondetector = list("MD", "Motion Detector"), + /obj/item/device/binoculars = list("Binos", "Binoculars"), + /obj/item/device/binoculars/range/designator = list("LD", "Designator", "Laser Designator", "Tac Binos"), + /obj/item/pamphlet/skill/jtac = list("JTAC Pamphlet"), + /* Explosives */ + /obj/item/explosive/grenade/high_explosive = list("M40 HEDP", "HEDP"), + /obj/item/explosive/grenade/incendiary = list("M40 HIDP", "Incendiary nade", "Incendiary grenade", "HIDP", "Fire grenade"), + /obj/item/explosive/plastic = list("C4", "C4", "plastic", "plastic explosives"), + /obj/item/explosive/plastic/breaching_charge = list("Breaching", "breach charge", "breaching charge"), + /* AMMO */ + /obj/item/ammo_magazine/rifle/extended = list("Extended", "MK2 Extended", "Extended MK2 Mags"), + /obj/item/ammo_magazine/smg/m39/ap = list("M39 AP", "M39 AP", "SMG AP"), + /obj/item/ammo_magazine/smartgun = list("Smartgun drum", "SG drum"), + ) + +/datum/tutorial/marine/reqs_line/Destroy(force) + STOP_PROCESSING(SSfastobj, src) + kill_timers() + active_agent = null + loser_agent = null + QDEL_LIST(agents) + var/obj/effect/landmark/tutorial/reqs_line_cleaner/line_cleaner = locate() in GLOB.landmarks_list + qdel(line_cleaner) + return ..() + +/datum/tutorial/marine/reqs_line/init_map() + var/obj/structure/machinery/cm_vending/sorted/attachments/blend/tutorial/attachies_vendor = new(loc_from_corner(2, 7)) + add_to_tracking_atoms(attachies_vendor) + var/obj/structure/machinery/cm_vending/sorted/cargo_guns/cargo/blend/tutorial/guns_vendor = new(loc_from_corner(3, 7)) + add_to_tracking_atoms(guns_vendor) + var/obj/structure/machinery/cm_vending/sorted/cargo_ammo/cargo/blend/tutorial/ammo_vendor = new(loc_from_corner(4, 7)) + add_to_tracking_atoms(ammo_vendor) + restock_vendors() + + var/turf/asker_turf = loc_from_corner(1, 6) + RegisterSignal(asker_turf, COMSIG_TURF_ENTERED, PROC_REF(a_new_challenger_appears)) + var/turf/trade_turf = loc_from_corner(2, 6) + RegisterSignal(trade_turf, COMSIG_TURF_ENTERED, PROC_REF(item_offered)) + var/turf/loser_turf = loc_from_corner(0, 6) + RegisterSignal(loser_turf, COMSIG_TURF_ENTERED, PROC_REF(loser_got_the_item)) + + // Crutch to be able to detect items that are spawned directly on the table + RegisterSignal(attachies_vendor, COMSIG_VENDOR_SUCCESSFUL_VEND, PROC_REF(scan_table_for_items)) + RegisterSignal(guns_vendor, COMSIG_VENDOR_SUCCESSFUL_VEND, PROC_REF(scan_table_for_items)) + RegisterSignal(ammo_vendor, COMSIG_VENDOR_SUCCESSFUL_VEND, PROC_REF(scan_table_for_items)) + +/datum/tutorial/marine/reqs_line/init_mob() + . = ..() + arm_equipment(tutorial_mob, /datum/equipment_preset/uscm_ship/cargo) + // Remove their radio from CT preset + var/mob/living/carbon/human/user = tutorial_mob + var/obj/item/device/radio/headset/headset = user.wear_l_ear + user.drop_inv_item_on_ground(headset) + QDEL_NULL(headset) + +/// Refills all the vendors on stage updates so the player shouldn't run out of stock +/datum/tutorial/marine/reqs_line/proc/restock_vendors() + TUTORIAL_ATOM_FROM_TRACKING(/obj/structure/machinery/cm_vending/sorted/attachments/blend/tutorial, attachies_vendor) + restock_one_vendor(attachies_vendor) + TUTORIAL_ATOM_FROM_TRACKING(/obj/structure/machinery/cm_vending/sorted/cargo_guns/cargo/blend/tutorial, cargo_vendor) + restock_one_vendor(cargo_vendor) + TUTORIAL_ATOM_FROM_TRACKING(/obj/structure/machinery/cm_vending/sorted/cargo_ammo/cargo/blend/tutorial, ammo_vendor) + restock_one_vendor(ammo_vendor) + +/// Refills a specific vendor to 99 items across the board +/datum/tutorial/marine/reqs_line/proc/restock_one_vendor(obj/structure/machinery/cm_vending/vendor) + for(var/list/vendspec in vendor.listed_products) + if(vendspec[2] >= 0) + vendspec[2] = 99 + +/datum/tutorial/marine/reqs_line/process(delta_time) + if(stage == TUTORIAL_REQS_LINE_STAGE_SURVIVAL && !length(agents)) + spawn_survival_wave() + + for(var/mob/living/carbon/human/agent as anything in agents) + if(agent == loser_agent) + continue + if(agent == active_agent) + agent.face_dir(EAST) + else if(!agent_step(agent, NORTH)) + agent_step(agent, EAST) + +/// Makes agents move on processing tick if they can. They check surroundings to ensure proper movement flow. +/datum/tutorial/marine/reqs_line/proc/agent_step(mob/living/carbon/human/agent, dir) + var/turf/target_turf = get_step(agent, dir) + if(target_turf.density) + return FALSE + if(locate(/mob/living) in target_turf) + return FALSE + // Don't try to step back through the turnstile + if(dir == EAST && locate(/obj/structure/machinery/line_nexter) in target_turf) + return FALSE + . = TRUE + agent.Move(target_turf, dir) + +/// Creates a new agent with the given request list to queue in the line +/datum/tutorial/marine/reqs_line/proc/spawn_agent(list/request = list(), name_prefix) + var/turf/target_turf = loc_from_corner(1, 2) + var/mob/living/carbon/human/dummy/agent = new(target_turf) + var/mob_name = "[name_prefix][random_name(agent.gender)]" + agent.change_real_name(agent, mob_name) + arm_equipment(agent, /datum/equipment_preset/uscm/tutorial_rifleman) + agents[agent] = request + RegisterSignal(agent, COMSIG_PARENT_QDELETING, PROC_REF(clean_agent)) + +/// Called to generate a new survival wave of agents +/datum/tutorial/marine/reqs_line/proc/spawn_survival_wave() + survival_wave++ + message_to_player("Wave [survival_wave]") + var/agents_to_spawn = min(max_survival_agents, 1 + survival_wave * TUTORIAL_REQS_LINE_SURVIVAL_DIFFICULTY * survival_difficulty) + for(var/agent_i in 1 to agents_to_spawn) + var/items_requested = 1 + survival_wave * survival_difficulty * 0.5 + items_requested *= (1 + survival_request_random_factor * rand()) + spawn_survival_agent(round(items_requested)) + +/// Called to generate a single agent and request +/datum/tutorial/marine/reqs_line/proc/spawn_survival_agent(items_to_request) + var/list/request = list() + var/list/catalogue = list() + // We make a custom catalogue copy to increase weighting of already requested items; + // this avoids getting huge lists too quickly + for(var/typepath in shopping_catalogue) + catalogue += typepath + for(var/i in 1 to items_to_request) + request += pick(catalogue) + if(i < 6) // Only telescope catalogues the first 5 times as the chances compound + catalogue += request + spawn_agent(request, "Lv [survival_wave]. ") + +/// Called when an agent presents at the line window and needs to make a request +/datum/tutorial/marine/reqs_line/proc/a_new_challenger_appears(turf/source, mob/living/carbon/human/challenger) + SIGNAL_HANDLER + if(!(challenger in agents)) // Bob Vancelave NOT allowed + return + active_agent = challenger + confused_types.Cut() + var/list/request = agents[challenger] + if(!length(request)) + make_agent_leave() + return + restock_vendors() + var/speech = verbalize_request(request) + var/greeting = pick("Hello! ", "hi, ", "hey, ", "Good day. ", "I need ", "Please give me ", "", "") // Yes, no greeting is a greeting option for real world accuracy + var/trailing = pick("", "", ", please.", " - please and thank you", ", thanks.", ", hurry") + challenger.say("[greeting][speech][trailing]") // Pleasantries for the first exchange only + remind_timer = addtimer(CALLBACK(src, PROC_REF(remind_request)), 15 SECONDS, TIMER_STOPPABLE) + hint_timer = addtimer(CALLBACK(src, PROC_REF(send_hints)), 3 SECONDS, TIMER_STOPPABLE) + +/// Called when we need to remind the user of what we want served +/datum/tutorial/marine/reqs_line/proc/remind_request() + var/list/request = agents[active_agent] + var/speech = verbalize_request(request) + active_agent.say(speech) + remind_timer = addtimer(CALLBACK(src, PROC_REF(remind_request)), 15 SECONDS, TIMER_STOPPABLE) + +/// Transforms the list of required items by the agent into a string request for the user +/datum/tutorial/marine/reqs_line/proc/verbalize_request(list/original_request) + var/list/request = shuffle(original_request) + var/output_string = "" + var/counts = list() // Assoc list of how many are needed of each item + for(var/item in request) + if(item in counts) + counts[item]++ + else + counts[item] = 1 + var/first = TRUE + for(var/item in counts) + var/list/info = shopping_catalogue[item] + var/word = pick(info) // Pick one of the coded in designations for the item + if(!first) // Join list with commas + output_string += ", " + first = FALSE + if(counts[item] > 1) + output_string += "[counts[item]] " + output_string += word + return output_string + +/// Triggered when an object is put on the table. The agent evaluates if that's something they want and reacts appropriately. +/datum/tutorial/marine/reqs_line/proc/item_offered(turf/source, obj/item/item) + SIGNAL_HANDLER + if(!active_agent) + return + var/list/request = agents[active_agent] + + var/item_type = item.type + if(istype(item, /obj/item/prop/replacer)) + var/obj/item/prop/replacer/prop = item + item_type = prop.original_type + + if(!(item_type in request)) // Wrong item + if(item_type in confused_types) + return + confused_types |= item_type + if(COOLDOWN_FINISHED(src, confused_cooldown)) + COOLDOWN_START(src, confused_cooldown, 5 SECONDS) + active_agent.say("Huh?") + QDEL_IN(item, 30 SECONDS) + return + + request -= item_type + agent_pick_up(active_agent, item) + + // If there's nothing left to pick up, we leave + if(loser_agent) + return // Still blocking the way. Wait here. + if(!length(request)) + make_agent_leave(success = TRUE) + +/// Re-scan the table/trade turf for any present items. We have to do this because items vended to the table do not move onto it. +/datum/tutorial/marine/reqs_line/proc/scan_table_for_items(datum/source) + SIGNAL_HANDLER + var/turf/trade_turf = loc_from_corner(2, 6) + for(var/obj/item/item in trade_turf) + item_offered(source, item) + +/datum/tutorial/marine/reqs_line/proc/agent_pick_up(mob/agent, obj/item/item) + // Actually pick the item up for the animation + agent.put_in_hands(item, drop_on_fail = FALSE) + playsound(agent, "rustle", 30) + // Now delete it + agent.temp_drop_inv_item(item) + qdel(item) + +/datum/tutorial/marine/reqs_line/proc/make_agent_leave(success = FALSE) + switch(stage) + if(TUTORIAL_REQS_LINE_STAGE_ATTACHIES) + INVOKE_ASYNC(src, PROC_REF(continue_stage_gearbox)) + if(TUTORIAL_REQS_LINE_STAGE_GEARBOX) + INVOKE_ASYNC(src, PROC_REF(continue_stage_mixed)) + if(TUTORIAL_REQS_LINE_STAGE_MIXED) + INVOKE_ASYNC(src, PROC_REF(continue_stage_survival)) + // Wave handling for Survival is in process + clean_items() + kill_timers() + + if(!active_agent) + return // Nani? + + if(success && prob(80)) + var/speech = pick("Thanks!", "Thanks", "Thanks bro", "Thank you.", "Bye", "Nice.") + active_agent.say(speech) + + // Immediately step the agent through the turnstile and towards exit + var/turf/target_turf = get_step(active_agent, WEST) + active_agent.Move(target_turf, WEST) + active_agent = null + +/// Cleanup when an agent reaches the exit +/datum/tutorial/marine/reqs_line/proc/clean_agent(datum/source) + SIGNAL_HANDLER + agents -= source + if(active_agent == source) + active_agent = null + +/// Cleanup the table and ground contents when an agent leaves the line +/datum/tutorial/marine/reqs_line/proc/clean_items() + var/turf/trade_turf = loc_from_corner(2, 6) + for(var/obj/item/item in trade_turf) + qdel(item) + var/turf/forgot_turf = loc_from_corner(0, 6) + for(var/obj/item/item in forgot_turf) + qdel(item) + +/// Kills active timers to reset state +/datum/tutorial/marine/reqs_line/proc/kill_timers() + if(remind_timer) + deltimer(remind_timer) + remind_timer = null + if(hint_timer) // User was just that fast + deltimer(hint_timer) + hint_timer = null + +/// Displays appropriate hints for the user based on tutorial stage +/datum/tutorial/marine/reqs_line/proc/send_hints() + switch(stage) + if(TUTORIAL_REQS_LINE_STAGE_ATTACHIES) + TUTORIAL_ATOM_FROM_TRACKING(/obj/structure/machinery/cm_vending/sorted/attachments/blend/tutorial, attachies_vendor) + add_highlight(attachies_vendor) + message_to_player("This marine wants 'attachies' for their weapon. You can find them in the leftmost vendor.") + update_objective("Serve the marine's request using the vendors.") + if(TUTORIAL_REQS_LINE_STAGE_GEARBOX) + TUTORIAL_ATOM_FROM_TRACKING(/obj/structure/machinery/cm_vending/sorted/cargo_guns/cargo/blend/tutorial, gear_vendor) + add_highlight(gear_vendor) + message_to_player("This marine wants items from the gear vendor in the middle. You can use the search function at top right to find things more easily.") + update_objective("Serve the marine's request using the middle vendor. This one has a lot of things, you might want to use the search bar.") + if(TUTORIAL_REQS_LINE_STAGE_MIXED) + TUTORIAL_ATOM_FROM_TRACKING(/obj/structure/machinery/cm_vending/sorted/cargo_ammo/cargo/blend/tutorial, ammo_vendor) + add_highlight(ammo_vendor) + add_highlight(loser_agent) + loser_agent.say("Wait! I really NEED a Mk2 Extended Mag. Throw me one!") + message_to_player("Seems the marine wanted ammo too. Grab some and high-toss it over to him, with [retrieve_bind("toggle_high_throw_mode")].") + update_objective("Get the M41 Extended magazine and perform a high toss to give it to the forgetful marine.") + +/datum/tutorial/marine/reqs_line/start_tutorial(mob/starting_mob) + . = ..() + if(!.) + return + + init_mob() + START_PROCESSING(SSfastobj, src) + + message_to_player("Welcome to Requisitions Line tutorial. Come in and have a seat.") + update_objective("Reach the line window to begin!") + var/turf/target_turf = loc_from_corner(3, 6) + RegisterSignal(target_turf, COMSIG_TURF_ENTERED, PROC_REF(user_in_position)) + + +/// Called when the player is in position to start handling the line +/datum/tutorial/marine/reqs_line/proc/user_in_position(turf/source, atom/movable/mover) + SIGNAL_HANDLER + if(mover != tutorial_mob) + return + UnregisterSignal(source, COMSIG_TURF_ENTERED) + stage = TUTORIAL_REQS_LINE_STAGE_ATTACHIES + var/list/request = list(/obj/item/attachable/magnetic_harness, /obj/item/attachable/extended_barrel) + spawn_agent(request) + +/datum/tutorial/marine/reqs_line/proc/continue_stage_gearbox() + TUTORIAL_ATOM_FROM_TRACKING(/obj/structure/machinery/cm_vending/sorted/attachments/blend/tutorial, attachies_vendor) + remove_highlight(attachies_vendor) + message_to_player("Success!") + stage = TUTORIAL_REQS_LINE_STAGE_GEARBOX + var/list/request = list(/obj/item/storage/box/guncase/lmg, /obj/item/explosive/grenade/high_explosive) + spawn_agent(request) + +/datum/tutorial/marine/reqs_line/proc/continue_stage_mixed() + loser_agent = active_agent + TUTORIAL_ATOM_FROM_TRACKING(/obj/structure/machinery/cm_vending/sorted/cargo_guns/cargo/blend/tutorial, gear_vendor) + remove_highlight(gear_vendor) + message_to_player("Success!") + stage = TUTORIAL_REQS_LINE_STAGE_MIXED + var/list/request = list(/obj/item/attachable/gyro, /obj/item/storage/box/guncase/m41aMK1, /obj/item/explosive/grenade/high_explosive) + spawn_agent(request) + +/datum/tutorial/marine/reqs_line/proc/loser_got_the_item(turf/source, atom/movable/passer) + SIGNAL_HANDLER + var/obj/item/prop/replacer/prop = passer + if(!istype(prop)) + return + if(prop.original_type != /obj/item/ammo_magazine/rifle/extended) + return + qdel(prop) + loser_agent.say("Nice.") + remove_highlight(loser_agent) + TUTORIAL_ATOM_FROM_TRACKING(/obj/structure/machinery/cm_vending/sorted/cargo_ammo/cargo/blend/tutorial, ammo_vendor) + remove_highlight(ammo_vendor) + + loser_agent = null // Resumes moving + // Unstucks the guy at line to move on too if he's already been served + if(active_agent) + var/list/request = agents[active_agent] + if(!length(request)) + make_agent_leave(TRUE) + +/datum/tutorial/marine/reqs_line/proc/continue_stage_survival() + mark_completed() + message_to_player("Success! You have completed the tutorial!") + update_objective("You have finished the tutorial! But there's more if you want to practice.") + addtimer(CALLBACK(src, PROC_REF(message_to_player), "You may stay to practice with random orders, or quit with the button at top left."), 3 SECONDS) + addtimer(CALLBACK(src, PROC_REF(engage_survival_mode)), 12 SECONDS) + +/datum/tutorial/marine/reqs_line/proc/engage_survival_mode() + update_objective("Keep practicing with increasingly complex orders, or leave at any time with the button at top left.") + stage = TUTORIAL_REQS_LINE_STAGE_SURVIVAL + +/datum/map_template/tutorial/reqs_line + name = "Reqs Line Tutorial (8x11)" + mappath = "maps/tutorial/tutorial_reqs_line.dmm" + width = 8 + height = 11 + +/* === ITEMS USED IN THE TUTORIAL === */ + +/// Deletes dummies coming onto it, purely and simply +/obj/effect/landmark/tutorial/reqs_line_cleaner/Crossed(atom/movable/passer) + if(istype(passer, /mob/living/carbon/human)) + qdel(passer) + +/* === VENDORS USED IN THE TUTORIAL === */ + +/obj/structure/machinery/cm_vending/sorted/cargo_guns/cargo/blend/tutorial + vend_flags = VEND_CLUTTER_PROTECTION | VEND_LIMITED_INVENTORY | VEND_LOAD_AMMO_BOXES | VEND_PROPS + +/obj/structure/machinery/cm_vending/sorted/cargo_ammo/cargo/blend/tutorial + vend_flags = VEND_CLUTTER_PROTECTION | VEND_LIMITED_INVENTORY | VEND_LOAD_AMMO_BOXES | VEND_PROPS + +/obj/structure/machinery/cm_vending/sorted/attachments/blend/tutorial + vend_flags = VEND_CLUTTER_PROTECTION | VEND_LIMITED_INVENTORY | VEND_LOAD_AMMO_BOXES | VEND_PROPS + + +#undef TUTORIAL_REQS_LINE_STAGE_STARTING +#undef TUTORIAL_REQS_LINE_STAGE_ATTACHIES +#undef TUTORIAL_REQS_LINE_STAGE_GEARBOX +#undef TUTORIAL_REQS_LINE_STAGE_MIXED +#undef TUTORIAL_REQS_LINE_STAGE_SURVIVAL + +#undef TUTORIAL_REQS_LINE_SURVIVAL_DIFFICULTY diff --git a/code/datums/tutorial/ss13/_ss13.dm b/code/datums/tutorial/ss13/_ss13.dm new file mode 100644 index 000000000000..53cf5c918ee9 --- /dev/null +++ b/code/datums/tutorial/ss13/_ss13.dm @@ -0,0 +1,41 @@ +/datum/tutorial/ss13 + category = TUTORIAL_CATEGORY_SS13 + parent_path = /datum/tutorial/ss13 + icon_state = "ss13" + +/datum/tutorial/ss13/init_mob() + tutorial_mob.close_spawn_windows() + + var/mob/living/carbon/human/new_character = new(bottom_left_corner) + new_character.lastarea = get_area(bottom_left_corner) + + tutorial_mob.client.prefs.copy_all_to(new_character) + + if(tutorial_mob.client.prefs.be_random_body) + var/datum/preferences/rand_prefs = new() + rand_prefs.randomize_appearance(new_character) + + new_character.job = tutorial_mob.job + new_character.name = tutorial_mob.real_name + new_character.voice = tutorial_mob.real_name + + new_character.sec_hud_set_ID() + new_character.hud_set_squad() + + SSround_recording.recorder.track_player(new_character) + + if(tutorial_mob.mind) + tutorial_mob.mind_initialize() + tutorial_mob.mind.transfer_to(new_character, TRUE) + tutorial_mob.mind.setup_human_stats() + + INVOKE_ASYNC(new_character, TYPE_PROC_REF(/mob/living/carbon/human, regenerate_icons)) + INVOKE_ASYNC(new_character, TYPE_PROC_REF(/mob/living/carbon/human, update_body), 1, 0) + INVOKE_ASYNC(new_character, TYPE_PROC_REF(/mob/living/carbon/human, update_hair)) + + tutorial_mob = new_character + RegisterSignal(tutorial_mob, COMSIG_LIVING_GHOSTED, PROC_REF(on_ghost)) + RegisterSignal(tutorial_mob, list(COMSIG_PARENT_QDELETING, COMSIG_MOB_DEATH, COMSIG_MOB_END_TUTORIAL), PROC_REF(signal_end_tutorial)) + RegisterSignal(tutorial_mob, COMSIG_MOB_LOGOUT, PROC_REF(on_logout)) + arm_equipment(tutorial_mob, /datum/equipment_preset/tutorial/fed) + return ..() diff --git a/code/datums/tutorial/ss13/basic_ss13.dm b/code/datums/tutorial/ss13/basic_ss13.dm new file mode 100644 index 000000000000..65bb0cac94f4 --- /dev/null +++ b/code/datums/tutorial/ss13/basic_ss13.dm @@ -0,0 +1,84 @@ +/datum/tutorial/ss13/basic + name = "Space Station 13 - Basic" + desc = "Learn the very basics of Space Station 13. Recommended if you haven't played before." + tutorial_id = "ss13_basic_1" + tutorial_template = /datum/map_template/tutorial/s7x7 + +// START OF SCRIPTING + +/datum/tutorial/ss13/basic/start_tutorial(mob/starting_mob) + . = ..() + if(!.) + return + + init_mob() + message_to_player("This is the tutorial for the basics of Space Station 13. Any current instructions can be found in the top-right corner, in the status panel.") + update_objective("Here's where it'll be!") + + addtimer(CALLBACK(src, PROC_REF(require_move)), 4 SECONDS) // check if this is a good amount of time + +/datum/tutorial/ss13/basic/proc/require_move() + message_to_player("Now, move in any direction using [retrieve_bind("North")], [retrieve_bind("West")], [retrieve_bind("South")], or [retrieve_bind("East")].") + update_objective("Move in any direction using the [retrieve_bind("North")][retrieve_bind("West")][retrieve_bind("South")][retrieve_bind("East")] keys.") + + RegisterSignal(tutorial_mob, COMSIG_MOB_MOVE_OR_LOOK, PROC_REF(on_move)) + +/datum/tutorial/ss13/basic/proc/on_move(datum/source, actually_moving, direction, specific_direction) + SIGNAL_HANDLER + + if(!actually_moving) // The mob just looked in a different dir instead of moving + return + + UnregisterSignal(tutorial_mob, COMSIG_MOB_MOVE_OR_LOOK) + + message_to_player("Good. Now, switch hands with [retrieve_bind("swap_hands")].") + update_objective("Switch hands with [retrieve_bind("swap_hands")].") + + RegisterSignal(tutorial_mob, COMSIG_MOB_SWAPPED_HAND, PROC_REF(on_hand_swap)) + +/datum/tutorial/ss13/basic/proc/on_hand_swap(datum/source) + SIGNAL_HANDLER + + UnregisterSignal(tutorial_mob, COMSIG_MOB_SWAPPED_HAND) + + message_to_player("Good. Now, pick up the satchel that just spawned and equip it with [retrieve_bind("quick_equip")].") + update_objective("Pick up the satchel and equip it with [retrieve_bind("quick_equip")].") + + var/obj/item/storage/backpack/marine/satchel/satchel = new(loc_from_corner(2, 2)) + add_to_tracking_atoms(satchel) + add_highlight(satchel) + + RegisterSignal(tutorial_mob, COMSIG_HUMAN_EQUIPPED_ITEM, PROC_REF(on_satchel_equip)) + +/datum/tutorial/ss13/basic/proc/on_satchel_equip(datum/source, obj/item/equipped, slot) + SIGNAL_HANDLER + + if(!istype(equipped, /obj/item/storage/backpack/marine/satchel) || (slot != WEAR_BACK)) + return + + UnregisterSignal(tutorial_mob, COMSIG_HUMAN_EQUIPPED_ITEM) + TUTORIAL_ATOM_FROM_TRACKING(/obj/item/storage/backpack/marine/satchel, satchel) + remove_highlight(satchel) + message_to_player("Now, say anything by pressing [retrieve_bind("Say")].") + update_objective("Speak using [retrieve_bind("Say")].") + + RegisterSignal(tutorial_mob, COMSIG_LIVING_SPEAK, PROC_REF(on_speak)) + +/datum/tutorial/ss13/basic/proc/on_speak(datum/source) + SIGNAL_HANDLER + + UnregisterSignal(tutorial_mob, COMSIG_LIVING_SPEAK) + message_to_player("Excellent. The next tutorial will cover intents. The tutorial will end shortly.") + update_objective("") + tutorial_end_in(5 SECONDS, TRUE) + +// END OF SCRIPTING +// START OF SCRIPT HELPERS + + + +// END OF SCRIPT HELPERS + +/datum/tutorial/ss13/basic/init_mob() + . = ..() + tutorial_mob.forceMove(loc_from_corner(2, 1)) diff --git a/code/datums/tutorial/ss13/intents.dm b/code/datums/tutorial/ss13/intents.dm new file mode 100644 index 000000000000..d67b2ac1b4a1 --- /dev/null +++ b/code/datums/tutorial/ss13/intents.dm @@ -0,0 +1,113 @@ +/datum/tutorial/ss13/intents + name = "Space Station 13 - Intents" + desc = "Learn how the intent interaction system works." + icon_state = "intents" + tutorial_id = "ss13_intents_1" + tutorial_template = /datum/map_template/tutorial/s7x7 + +// START OF SCRIPTING + +/datum/tutorial/ss13/intents/start_tutorial(mob/starting_mob) + . = ..() + if(!.) + return + + init_mob() + message_to_player("This is the tutorial for the intents system of Space Station 13. The highlighted UI element in the bottom-right corner is your current intent.") + var/datum/hud/human/human_hud = tutorial_mob.hud_used + add_highlight(human_hud.action_intent) + + addtimer(CALLBACK(src, PROC_REF(require_help)), 4.5 SECONDS) + +/datum/tutorial/ss13/intents/proc/require_help() + tutorial_mob.a_intent_change(INTENT_DISARM) + message_to_player("Your intent has been changed off of help. Change back to it by pressing [retrieve_bind("select_help_intent")].") + update_objective("Change to help intent by pressing [retrieve_bind("select_help_intent")].") + + RegisterSignal(tutorial_mob, COMSIG_MOB_INTENT_CHANGE, PROC_REF(on_help_intent)) + +/datum/tutorial/ss13/intents/proc/on_help_intent(datum/source, new_intent) + SIGNAL_HANDLER + + if(new_intent != INTENT_HELP) + return + + UnregisterSignal(tutorial_mob, COMSIG_MOB_INTENT_CHANGE) + + var/mob/living/carbon/human/dummy/tutorial/tutorial_dummy = new(loc_from_corner(2, 3)) + add_to_tracking_atoms(tutorial_dummy) + + message_to_player("The first of the intents is help intent. It is used to harmlessly touch others, put out fire, give CPR, and similar. Click on the Test Dummy to give them a pat on the back.") + update_objective("Click on the dummy on help intent.") + + RegisterSignal(tutorial_mob, COMSIG_LIVING_ATTACKHAND_HUMAN, PROC_REF(on_help_attack)) + +/datum/tutorial/ss13/intents/proc/on_help_attack(datum/source, mob/living/carbon/human/attacked_mob) + SIGNAL_HANDLER + + if((attacked_mob == src) || (tutorial_mob.a_intent != INTENT_HELP)) + return + + UnregisterSignal(tutorial_mob, COMSIG_LIVING_ATTACKHAND_HUMAN) + TUTORIAL_ATOM_FROM_TRACKING(/mob/living/carbon/human/dummy/tutorial, tutorial_dummy) + tutorial_dummy.status_flags = DEFAULT_MOB_STATUS_FLAGS + REMOVE_TRAIT(tutorial_dummy, TRAIT_IMMOBILIZED, TRAIT_SOURCE_TUTORIAL) + tutorial_dummy.anchored = FALSE + + message_to_player("The second intent is disarm, selectable with [retrieve_bind("select_disarm_intent")]. Disarm is used to shove people, which can make them drop items or fall to the ground. Shove the Test Dummy until it falls over.") + update_objective("Switch to disarm intent by pressing [retrieve_bind("select_disarm_intent")] and shove the dummy to the ground.") + + RegisterSignal(tutorial_dummy, COMSIG_LIVING_APPLY_EFFECT, PROC_REF(on_shove_down)) + +/datum/tutorial/ss13/intents/proc/on_shove_down(datum/source, datum/status_effect/new_effect) + SIGNAL_HANDLER + + if(!istype(new_effect, /datum/status_effect/incapacitating/knockdown)) + return + + TUTORIAL_ATOM_FROM_TRACKING(/mob/living/carbon/human/dummy/tutorial, tutorial_dummy) + UnregisterSignal(tutorial_dummy, COMSIG_LIVING_APPLY_EFFECT) + tutorial_dummy.rejuvenate() + + message_to_player("The third intent is grab. Grab is used to grab people in either a passive, aggressive, or chokehold grab. Grab successively to \"upgrade\" your grab. Aggressively grab the Test Dummy.") + update_objective("Aggressively grab the dummy by grabbing them twice.") + + + RegisterSignal(tutorial_dummy, COMSIG_MOB_AGGRESSIVELY_GRABBED, PROC_REF(on_aggrograb)) + +/datum/tutorial/ss13/intents/proc/on_aggrograb(datum/source, mob/living/carbon/human/choker) + SIGNAL_HANDLER + + TUTORIAL_ATOM_FROM_TRACKING(/mob/living/carbon/human/dummy/tutorial, tutorial_dummy) + UnregisterSignal(tutorial_dummy, COMSIG_MOB_AGGRESSIVELY_GRABBED) + + message_to_player("The final intent is harm. Harm is used to injure people with your fists or a melee weapon. Punch the Test Dummy with an empty hand.") + update_objective("Attack the dummy with an empty hand.") + + RegisterSignal(tutorial_mob, COMSIG_LIVING_ATTACKHAND_HUMAN, PROC_REF(on_harm_attack)) + +/datum/tutorial/ss13/intents/proc/on_harm_attack(datum/source, mob/living/carbon/human/attacked_mob) + SIGNAL_HANDLER + + if((attacked_mob == src) || (tutorial_mob.a_intent != INTENT_HARM)) + return + + UnregisterSignal(tutorial_mob, COMSIG_LIVING_ATTACKHAND_HUMAN) + TUTORIAL_ATOM_FROM_TRACKING(/mob/living/carbon/human/dummy/tutorial, tutorial_dummy) + tutorial_dummy.status_flags = GODMODE + + message_to_player("Excellent. Those are the basics of the intent system. The tutorial will end shortly.") + update_objective("") + + tutorial_end_in(5 SECONDS, TRUE) + +// END OF SCRIPTING +// START OF SCRIPT HELPERS + + + +// END OF SCRIPT HELPERS + +/datum/tutorial/ss13/intents/init_mob() + . = ..() + tutorial_mob.forceMove(loc_from_corner(2, 0)) diff --git a/code/datums/tutorial/tutorial_example.dm b/code/datums/tutorial/tutorial_example.dm new file mode 100644 index 000000000000..9042346f8d39 --- /dev/null +++ b/code/datums/tutorial/tutorial_example.dm @@ -0,0 +1,74 @@ +/datum/tutorial/marine/example + name = "Example Tutorial" + tutorial_id = "example" // This won't show up in the list, so this'll be irrelevant anyway. + category = TUTORIAL_CATEGORY_BASE + parent_path = /datum/tutorial/marine/example + +// START OF SCRIPTING + +/datum/tutorial/marine/example/start_tutorial(mob/starting_mob) + // Here, we're calling parent and checking its return value. If it has a falsey one (as done by !.), then something went wrong and we should abort + // There isn't really a reason that you _shouldn't_ have this + . = ..() + if(!.) + return + + // Init_mob() isn't called by default, so we call it here + init_mob() + // As is standard, we give a message to the player and update their status panel with what we want done. + message_to_player("This is an example tutorial. Perform any emote to continue.") + update_objective("Do any emote.") + // This makes the player (tutorial_mob) listen for the COMSIG_MOB_EMOTE event, which will then call on_emote() when it hears it. + RegisterSignal(tutorial_mob, COMSIG_MOB_EMOTE, PROC_REF(on_emote)) + +/datum/tutorial/marine/example/proc/on_emote(datum/source) + // With any proc called via signal (see the RegisterSignal line above for details), we add SIGNAL_HANDLER to it. + SIGNAL_HANDLER + + // Now that we've gotten the signal and started the script, we want to immediately stop listening for it. + UnregisterSignal(tutorial_mob, COMSIG_MOB_EMOTE) + message_to_player("Good. Now, pick up that can of Weyland-Yutani Aspen Beer.") + update_objective("Pick up that can.") + // This macro takes a specific type path (the same used in init_map()) and a variable name to retrieve an object from the tracked object list + TUTORIAL_ATOM_FROM_TRACKING(/obj/item/reagent_container/food/drinks/cans/aspen, beer_can) + // Now we're adding a yellow highlight around the can to make sure people know what we're talking about + add_highlight(beer_can) + // Now, we always prefer to register signals on the tutorial_mob (as opposed to the beer_can) whenever possible + RegisterSignal(tutorial_mob, COMSIG_MOB_PICKUP_ITEM, PROC_REF(on_can_pickup)) + +/// We get these arguments from the signal's definition. If you have VSC, ctrl+click on COMSIG_MOB_PICKUP_ITEM above. When dealing with a signal proc, `datum/source` is always the first argument, then any added ones +/datum/tutorial/marine/example/proc/on_can_pickup(datum/source, obj/item/picked_up) + SIGNAL_HANDLER + + // Since we're just listening for the mob picking anything up, we want to confirm that the picked up item is the can before continuing. If it's not, then we return and keep listening. + if(!istype(picked_up, /obj/item/reagent_container/food/drinks/cans/aspen)) + // If we hit this return here, then the picked up item wasn't the can, so we abort and keep listening. + return + + // Since we passed the above if statement, stop listening for item pickups. + UnregisterSignal(tutorial_mob, COMSIG_MOB_PICKUP_ITEM) + // Let's get the tracked beer can again. + TUTORIAL_ATOM_FROM_TRACKING(/obj/item/reagent_container/food/drinks/cans/aspen, beer_can) + // And remove the highlight now that it's picked up + remove_highlight(beer_can) + message_to_player("Very good. This is the end of the example tutorial. You will be sent back to the lobby screen momentarily.") + // 7.5 seconds after the above message is sent, kick the player out and end the tutorial. + tutorial_end_in(7.5 SECONDS, TRUE) + + +// END OF SCRIPTING +// START OF SCRIPT HELPERS + +// END OF SCRIPT HELPERS + +/datum/tutorial/marine/example/init_mob() + . = ..() + // We give the tutorial mob a basic ID so they can use general vendors and etc. This is here because not all marine tutorials may want to use a naked equipment preset. + arm_equipment(tutorial_mob, /datum/equipment_preset/tutorial) + + +/datum/tutorial/marine/example/init_map() + // Here we're initializing a new can that we want to track, so we spawn it 2 tiles to the left and up from the bottom left corner of the tutorial zone + var/obj/item/reagent_container/food/drinks/cans/aspen/the_can = new(loc_from_corner(2, 2)) + // Now we start tracking it + add_to_tracking_atoms(the_can) diff --git a/code/datums/tutorial/xenomorph/_xenomorph.dm b/code/datums/tutorial/xenomorph/_xenomorph.dm new file mode 100644 index 000000000000..caa33d8eed43 --- /dev/null +++ b/code/datums/tutorial/xenomorph/_xenomorph.dm @@ -0,0 +1,35 @@ +/datum/tutorial/xenomorph + category = TUTORIAL_CATEGORY_XENO + parent_path = /datum/tutorial/xenomorph + icon_state = "xeno" + ///Starting xenomorph type (caste) of type /mob/living/carbon/xenomorph/... + var/mob/living/carbon/xenomorph/starting_xenomorph_type = /mob/living/carbon/xenomorph/drone + ///Reference to the actual xenomorph mob + var/mob/living/carbon/xenomorph/xeno + ///If TRUE remove all actions from the tutorial xenomorph. If FALSE none will be removed. You can give actions back in the tutorial with give_action() + var/remove_all_actions = TRUE + +/datum/tutorial/xenomorph/init_mob() + var/mob/living/carbon/xenomorph/new_character = new starting_xenomorph_type(bottom_left_corner, null, XENO_HIVE_TUTORIAL) + new_character.lastarea = get_area(bottom_left_corner) + + //Remove all actions from the tutorial xenomorph if remove_all_actions is TRUE + if(remove_all_actions) + for(var/datum/action/action_path as anything in new_character.base_actions) + remove_action(new_character, action_path) + + setup_xenomorph(new_character, tutorial_mob, is_late_join = FALSE) + + // We don't want people talking to other xenomorphs across tutorials + new_character.can_hivemind_speak = FALSE + // No age prefix or HUD element + new_character.age = XENO_NO_AGE + new_character.show_age_prefix = FALSE + new_character.generate_name() + + tutorial_mob = new_character + xeno = new_character + RegisterSignal(tutorial_mob, COMSIG_LIVING_GHOSTED, PROC_REF(on_ghost)) + RegisterSignal(tutorial_mob, list(COMSIG_PARENT_QDELETING, COMSIG_MOB_DEATH, COMSIG_MOB_END_TUTORIAL), PROC_REF(signal_end_tutorial)) + RegisterSignal(tutorial_mob, COMSIG_MOB_LOGOUT, PROC_REF(on_logout)) + return ..() diff --git a/code/datums/tutorial/xenomorph/xenomorph_basic.dm b/code/datums/tutorial/xenomorph/xenomorph_basic.dm new file mode 100644 index 000000000000..ad51756ecb25 --- /dev/null +++ b/code/datums/tutorial/xenomorph/xenomorph_basic.dm @@ -0,0 +1,251 @@ +#define WAITING_HEALTH_THRESHOLD 300 + +/datum/tutorial/xenomorph/basic + name = "Xenomorph - Basic" + desc = "A tutorial to get you acquainted with the very basics of how to play a xenomorph." + icon_state = "xeno" + tutorial_id = "xeno_basic_1" + tutorial_template = /datum/map_template/tutorial/s12x12 + starting_xenomorph_type = /mob/living/carbon/xenomorph/drone + +// START OF SCRITPING + +/datum/tutorial/xenomorph/basic/start_tutorial(mob/starting_mob) + . = ..() + if(!.) + return + + init_mob() + + xeno.plasma_stored = 0 + xeno.plasma_max = 0 + xeno.melee_damage_lower = 40 + xeno.melee_damage_upper = 40 + xeno.lock_evolve = TRUE + + message_to_player("Welcome to the Xenomorph basic tutorial. You are [xeno.name], a drone, the workhorse of the hive.") + + addtimer(CALLBACK(src, PROC_REF(on_stretch_legs)), 10 SECONDS) + +/datum/tutorial/xenomorph/basic/proc/on_stretch_legs() + message_to_player("As a drone you can perform most basic functions of the Xenomorph Hive. Such as weeding, building, planting eggs and nesting captured humans.") + addtimer(CALLBACK(src, PROC_REF(on_inform_health)), 5 SECONDS) + +/datum/tutorial/xenomorph/basic/proc/on_inform_health() + message_to_player("The green icon on the right of your screen and green bar next to your character represents your health.") + addtimer(CALLBACK(src, PROC_REF(on_give_plasma)), 10 SECONDS) + +/datum/tutorial/xenomorph/basic/proc/on_give_plasma() + message_to_player("You have been given plasma, a resource used for casting your abilities. This is represented by the blue icon at the right of your screen and the blue bar next to your character.") + xeno.plasma_max = 200 + xeno.plasma_stored = 200 + addtimer(CALLBACK(src, PROC_REF(on_damage_xenomorph)), 15 SECONDS) + +/datum/tutorial/xenomorph/basic/proc/on_damage_xenomorph() + xeno.apply_damage(350) + xeno.emote("hiss") + message_to_player("Oh no! You've been damaged. Notice your green health bars have decreased. Xenomorphs can recover their health by standing or resting on weeds.") + addtimer(CALLBACK(src, PROC_REF(request_player_plant_weed)), 10 SECONDS) + +/datum/tutorial/xenomorph/basic/proc/request_player_plant_weed() + update_objective("Plant a weed node using the new ability Plant Weeds you've just been given.") + give_action(xeno, /datum/action/xeno_action/onclick/plant_weeds) + message_to_player("Plant a weed node to spread weeds using your new ability at the top of the screen. Weeds heal xenomorphs and regenerate their plasma. They also slow humans, making them easier to fight.") + RegisterSignal(xeno, COMSIG_XENO_PLANT_RESIN_NODE, PROC_REF(on_plant_resinode)) + +/datum/tutorial/xenomorph/basic/proc/on_plant_resinode() + SIGNAL_HANDLER + UnregisterSignal(xeno, COMSIG_XENO_PLANT_RESIN_NODE) + message_to_player("Well done. You can rest on the weeds to heal faster using the Rest ability or with the [retrieve_bind("rest")] key.") + message_to_player("We have increased your plasma reserves. Notice also your plasma will regenerate while you are on weeds.") + give_action(xeno, /datum/action/xeno_action/onclick/xeno_resting) + update_objective("Rest or wait until you are at least [WAITING_HEALTH_THRESHOLD] health.") + xeno.plasma_max = 500 + RegisterSignal(xeno, COMSIG_XENO_ON_HEAL_WOUNDS, PROC_REF(on_xeno_gain_health)) + +/datum/tutorial/xenomorph/basic/proc/on_xeno_gain_health() + SIGNAL_HANDLER + UnregisterSignal(xeno, COMSIG_XENO_ON_HEAL_WOUNDS) + message_to_player("Even on weeds. Healing is a slow process. This can be sped up using pheromones. Emit \"Recovery\" pheromones now using your new ability to speed up your healing.") + give_action(xeno, /datum/action/xeno_action/onclick/emit_pheromones) + update_objective("Emit recovery pheromones.") + RegisterSignal(xeno, COMSIG_XENO_START_EMIT_PHEROMONES, PROC_REF(on_xeno_emit_pheromone)) + +/datum/tutorial/xenomorph/basic/proc/on_xeno_emit_pheromone(emitter, pheromone) + SIGNAL_HANDLER + if(!(pheromone == "recovery")) + message_to_player("These are not recovery pheromones. Click your ability again to stop emitting, and choose Recovery instead.") + else if(xeno.health > WAITING_HEALTH_THRESHOLD) + reach_health_threshold() + UnregisterSignal(xeno, COMSIG_XENO_START_EMIT_PHEROMONES) + else + UnregisterSignal(xeno, COMSIG_XENO_START_EMIT_PHEROMONES) + message_to_player("Well done. Recovery Pheromones will significantly speed up your health regeneration. Rest or wait until your health is at least [WAITING_HEALTH_THRESHOLD].") + message_to_player("Pheromones also provide their effects to other xenomorph sisters nearby!") + RegisterSignal(xeno, COMSIG_XENO_ON_HEAL_WOUNDS, PROC_REF(reach_health_threshold)) + +/datum/tutorial/xenomorph/basic/proc/reach_health_threshold() + SIGNAL_HANDLER + if(xeno.health < WAITING_HEALTH_THRESHOLD) + return + + UnregisterSignal(xeno, COMSIG_XENO_ON_HEAL_WOUNDS) + + message_to_player("Good. Well done.") + message_to_player("A hostile human or \"tallhost\" has appeared. Use your harm intent to kill it in melee!") + update_objective("Kill the human!") + + var/mob/living/carbon/human/human_dummy = new(loc_from_corner(7,7)) + add_to_tracking_atoms(human_dummy) + add_highlight(human_dummy, COLOR_RED) + RegisterSignal(human_dummy, COMSIG_MOB_DEATH, PROC_REF(on_human_death_phase_one)) + +/datum/tutorial/xenomorph/basic/proc/on_human_death_phase_one() + SIGNAL_HANDLER + + TUTORIAL_ATOM_FROM_TRACKING(/mob/living/carbon/human, human_dummy) + + UnregisterSignal(human_dummy, COMSIG_MOB_DEATH) + message_to_player("Well done. Killing humans is one of many ways to help the hive.") + message_to_player("Another way is to capture them. This will grow a new xenomorph inside them which will eventually burst into a new playable xenomorph!") + update_objective("") + addtimer(CALLBACK(human_dummy, TYPE_PROC_REF(/mob/living, rejuvenate)), 8 SECONDS) + addtimer(CALLBACK(src, PROC_REF(proceed_to_tackle_phase)), 10 SECONDS) + +/datum/tutorial/xenomorph/basic/proc/proceed_to_tackle_phase() + TUTORIAL_ATOM_FROM_TRACKING(/mob/living/carbon/human, human_dummy) + remove_highlight(human_dummy) + RegisterSignal(human_dummy, COMSIG_MOB_TAKE_DAMAGE, PROC_REF(on_tackle_phase_human_damage)) + RegisterSignal(human_dummy, COMSIG_MOB_TACKLED_DOWN, PROC_REF(proceed_to_cap_phase)) + message_to_player("Tackle the human to the ground using your disarm intent. This can take up to four tries as a drone.") + update_objective("Tackle the human to the ground!") + +/datum/tutorial/xenomorph/basic/proc/on_tackle_phase_human_damage(source, damagedata) + SIGNAL_HANDLER + if(damagedata["damage"] <= 0) + return + TUTORIAL_ATOM_FROM_TRACKING(/mob/living/carbon/human, human_dummy) + // Rejuvenate the dummy if it's less than half health so our player can't kill it and softlock themselves. + if(human_dummy.health < (human_dummy.maxHealth / 2)) + message_to_player("Don't harm the human!") + human_dummy.rejuvenate() + +/datum/tutorial/xenomorph/basic/proc/proceed_to_cap_phase() + TUTORIAL_ATOM_FROM_TRACKING(/mob/living/carbon/human, human_dummy) + + UnregisterSignal(human_dummy, COMSIG_MOB_TACKLED_DOWN) + + ADD_TRAIT(human_dummy, TRAIT_KNOCKEDOUT, TRAIT_SOURCE_TUTORIAL) + ADD_TRAIT(human_dummy, TRAIT_FLOORED, TRAIT_SOURCE_TUTORIAL) + xeno.melee_damage_lower = 0 + xeno.melee_damage_upper = 0 + message_to_player("Well done. Under normal circumstances, you would have to keep tackling the human to keep them down, but for the purposes of this tutorial they will stay down forever.") + update_objective("") + addtimer(CALLBACK(src, PROC_REF(cap_phase)), 10 SECONDS) + +/datum/tutorial/xenomorph/basic/proc/cap_phase() + var/obj/effect/alien/resin/special/eggmorph/morpher = new(loc_from_corner(2,2), GLOB.hive_datum[XENO_HIVE_TUTORIAL]) + morpher.stored_huggers = 1 + add_to_tracking_atoms(morpher) + add_highlight(morpher, COLOR_YELLOW) + message_to_player("In the south west is an egg morpher. Click the egg morpher to take a facehugger.") + update_objective("Take a facehugger from the eggmorpher.") + RegisterSignal(xeno, COMSIG_XENO_TAKE_HUGGER_FROM_MORPHER, PROC_REF(take_facehugger_phase)) + +/datum/tutorial/xenomorph/basic/proc/take_facehugger_phase(source, hugger) + SIGNAL_HANDLER + UnregisterSignal(xeno, COMSIG_XENO_TAKE_HUGGER_FROM_MORPHER) + TUTORIAL_ATOM_FROM_TRACKING(/obj/effect/alien/resin/special/eggmorph, morpher) + TUTORIAL_ATOM_FROM_TRACKING(/mob/living/carbon/human, human_dummy) + add_to_tracking_atoms(hugger) + remove_highlight(morpher) + + add_highlight(hugger, COLOR_YELLOW) + message_to_player("This is a facehugger, highlighted in yellow. Pick up the facehugger by clicking it.") + message_to_player("Stand next to the downed human and click them to apply the facehugger. Or drop the facehugger near them to see it leap onto their face automatically.") + update_objective("Apply the facehugger to the human.") + RegisterSignal(hugger, COMSIG_PARENT_QDELETING, PROC_REF(on_hugger_deletion)) + RegisterSignal(human_dummy, COMSIG_HUMAN_IMPREGNATE, PROC_REF(nest_cap_phase), override = TRUE) + +/datum/tutorial/xenomorph/basic/proc/on_hugger_deletion(hugger) + SIGNAL_HANDLER + TUTORIAL_ATOM_FROM_TRACKING(/obj/effect/alien/resin/special/eggmorph, morpher) + morpher.stored_huggers = 1 + add_highlight(morpher, COLOR_YELLOW) + message_to_player("Click the egg morpher to take a facehugger.") + update_objective("Take a facehugger from the eggmorpher.") + RegisterSignal(xeno, COMSIG_XENO_TAKE_HUGGER_FROM_MORPHER, PROC_REF(take_facehugger_phase)) + +/datum/tutorial/xenomorph/basic/proc/nest_cap_phase() + SIGNAL_HANDLER + TUTORIAL_ATOM_FROM_TRACKING(/mob/living/carbon/human, human_dummy) + TUTORIAL_ATOM_FROM_TRACKING(/obj/item/clothing/mask/facehugger, hugger) + UnregisterSignal(human_dummy, COMSIG_MOB_TAKE_DAMAGE) + UnregisterSignal(human_dummy, COMSIG_HUMAN_IMPREGNATE) + UnregisterSignal(hugger, COMSIG_PARENT_QDELETING) + remove_highlight(hugger) + + message_to_player("We should nest the infected human to make sure they don't get away.") + message_to_player("Humans cannot escape nests without help, and the nest will keep them alive long enough for our new sister to burst forth.") + update_objective("") + addtimer(CALLBACK(src, PROC_REF(nest_cap_phase_two)), 10 SECONDS) + +/datum/tutorial/xenomorph/basic/proc/nest_cap_phase_two() + + loc_from_corner(8,0).ChangeTurf(/turf/closed/wall/resin/tutorial) + loc_from_corner(8,1).ChangeTurf(/turf/closed/wall/resin/tutorial) + loc_from_corner(9,1).ChangeTurf(/turf/closed/wall/resin/tutorial) + + addtimer(CALLBACK(src, PROC_REF(nest_cap_phase_three)), 5 SECONDS) + +/datum/tutorial/xenomorph/basic/proc/nest_cap_phase_three() + TUTORIAL_ATOM_FROM_TRACKING(/mob/living/carbon/human, human_dummy) + message_to_player("Grab the human using your grab intent. Or use control + click.") + update_objective("Grab the human using grab intent or ctrl-click.") + RegisterSignal(human_dummy, COMSIG_MOVABLE_XENO_START_PULLING, PROC_REF(nest_cap_phase_four)) + +/datum/tutorial/xenomorph/basic/proc/nest_cap_phase_four() + SIGNAL_HANDLER + TUTORIAL_ATOM_FROM_TRACKING(/mob/living/carbon/human, human_dummy) + UnregisterSignal(human_dummy, COMSIG_MOVABLE_XENO_START_PULLING) + message_to_player("Well done. Now devour the human by clicking on your character with the grab selected in your hand. You must not move during this process.") + update_objective("Devour the grabbed human by clicking on them with the grab in-hand.") + RegisterSignal(human_dummy, COMSIG_MOB_DEVOURED, PROC_REF(nest_cap_phase_five)) + +/datum/tutorial/xenomorph/basic/proc/nest_cap_phase_five() + SIGNAL_HANDLER + message_to_player("Well done, you can reguritate the human using the new ability you have gained.") + message_to_player("Be careful. Real humans may put up a fight and can try to cut out of you from inside!") + give_action(xeno, /datum/action/xeno_action/onclick/regurgitate) + addtimer(CALLBACK(src, PROC_REF(nest_cap_phase_six)), 15 SECONDS) + +/datum/tutorial/xenomorph/basic/proc/nest_cap_phase_six() + message_to_player("Humans can only be nested on hive weeds. These are special weeds created by structures such as the hive core, or hive clusters.") + message_to_player("We have set up hive weeds and walls for you in the south east.") + addtimer(CALLBACK(src, PROC_REF(nest_cap_phase_seven)), 10 SECONDS) + +/datum/tutorial/xenomorph/basic/proc/nest_cap_phase_seven() + TUTORIAL_ATOM_FROM_TRACKING(/mob/living/carbon/human, human_dummy) + UnregisterSignal(human_dummy, COMSIG_MOB_DEVOURED) + RegisterSignal(human_dummy, COMSIG_MOB_NESTED, PROC_REF(on_mob_nested)) + message_to_player("Nest the captive human!") + update_objective("Nest the captive human!") + message_to_player("Drag the human next to the wall so both you and human are directly adjacent to the wall.") + message_to_player("With the grab selected in your hand. Click on the wall. Or click and drag the mouse from the human onto the wall. You must not move during this process.") + new /obj/effect/alien/resin/special/cluster(loc_from_corner(9,0), GLOB.hive_datum[XENO_HIVE_TUTORIAL]) + +/datum/tutorial/xenomorph/basic/proc/on_mob_nested() + SIGNAL_HANDLER + TUTORIAL_ATOM_FROM_TRACKING(/mob/living/carbon/human, human_dummy) + UnregisterSignal(human_dummy, COMSIG_MOB_NESTED) + + message_to_player("Well done, this concludes the basic Xenomorph tutorial.") + message_to_player("This tutorial will end shortly.") + tutorial_end_in(10 SECONDS) + +// END OF SCRIPTING + +/datum/tutorial/xenomorph/basic/init_map() + loc_from_corner(9,0).ChangeTurf(/turf/closed/wall/resin/tutorial) + +#undef WAITING_HEALTH_THRESHOLD diff --git a/code/datums/vehicles.dm b/code/datums/vehicles.dm index 36ac96938c6b..67070dd04c0b 100644 --- a/code/datums/vehicles.dm +++ b/code/datums/vehicles.dm @@ -37,3 +37,7 @@ /datum/map_template/interior/van name = "Van" interior_id = "van" + +/datum/map_template/interior/arc + name = "ARC" + interior_id = "arc" diff --git a/code/datums/weather/weather_map_holder.dm b/code/datums/weather/weather_map_holder.dm index c72925399a85..eb3458d70a25 100644 --- a/code/datums/weather/weather_map_holder.dm +++ b/code/datums/weather/weather_map_holder.dm @@ -33,7 +33,7 @@ // Return a type that can be initialized into the next weather event. // Feel free to override this /datum/weather_ss_map_holder/proc/get_new_event() - if (potential_weather_events && potential_weather_events.len != 0) + if (LAZYLEN(potential_weather_events) != 0) return pick(potential_weather_events) else log_debug("Weather subsystem map holder [src] is improperly configured. Code: WSSMH03") diff --git a/code/datums/xeno_shields/shield_types/vanguard_shield.dm b/code/datums/xeno_shields/shield_types/vanguard_shield.dm index 5b9eebc04ab8..21d9fb12cfd7 100644 --- a/code/datums/xeno_shields/shield_types/vanguard_shield.dm +++ b/code/datums/xeno_shields/shield_types/vanguard_shield.dm @@ -50,7 +50,6 @@ if (!istype(linked_xeno)) return - if (linked_xeno.mutation_type == PRAETORIAN_VANGUARD) - var/datum/behavior_delegate/praetorian_vanguard/BD = linked_xeno.behavior_delegate - if (istype(BD)) - BD.last_combat_time = world.time + var/datum/behavior_delegate/praetorian_vanguard/behavior = linked_xeno.behavior_delegate + if (istype(behavior)) + behavior.last_combat_time = world.time diff --git a/code/defines/procs/AStar.dm b/code/defines/procs/AStar.dm index fad263aea42b..b4baef969815 100644 --- a/code/defines/procs/AStar.dm +++ b/code/defines/procs/AStar.dm @@ -46,13 +46,13 @@ length to avoid portals or something i guess?? Not that they're counted right no cmp = compare /PriorityQueue/proc/IsEmpty() - return !L.len + return !length(L) /PriorityQueue/proc/Enqueue(d) var/i var/j L.Add(d) - i = L.len + i = length(L) j = i>>1 while(i > 1 && call(cmp)(L[j],L[i]) > 0) L.Swap(i,j) @@ -60,22 +60,22 @@ length to avoid portals or something i guess?? Not that they're counted right no j >>= 1 /PriorityQueue/proc/Dequeue() - if(!L.len) return 0 + if(!length(L)) return 0 . = L[1] Remove(1) /PriorityQueue/proc/Remove(i) - if(i > L.len) return 0 - L.Swap(i,L.len) - L.Cut(L.len) - if(i < L.len) + if(i > length(L)) return 0 + L.Swap(i,length(L)) + L.Cut(length(L)) + if(i < length(L)) _Fix(i) /PriorityQueue/proc/_Fix(i) var/child = i + i var/item = L[i] - while(child <= L.len) - if(child + 1 <= L.len && call(cmp)(L[child],L[child + 1]) > 0) + while(child <= length(L)) + if(child + 1 <= length(L) && call(cmp)(L[child],L[child + 1]) > 0) child++ if(call(cmp)(item,L[child]) > 0) L[i] = L[child] @@ -159,7 +159,7 @@ length to avoid portals or something i guess?? Not that they're counted right no var/ng = cur.g + call(cur.source,dist)(d) if(d.bestF) if(ng + call(d,dist)(end) < d.bestF) - for(var/i = 1; i <= open.L.len; i++) + for(var/i = 1; i <= length(open.L); i++) var/PathNode/n = open.L[i] if(n.source == d) open.Remove(i) @@ -168,21 +168,21 @@ length to avoid portals or something i guess?? Not that they're counted right no continue open.Enqueue(new /PathNode(d,cur,ng,call(d,dist)(end),cur.nt+1)) - if(maxnodes && open.L.len > maxnodes) - open.L.Cut(open.L.len) + if(maxnodes && length(open.L) > maxnodes) + open.L.Cut(length(open.L)) } var/PathNode/temp while(!open.IsEmpty()) temp = open.Dequeue() temp.source.bestF = 0 - while(closed.len) - temp = closed[closed.len] + while(length(closed)) + temp = closed[length(closed)] temp.bestF = 0 - closed.Cut(closed.len) + closed.Cut(length(closed)) if(path) - for(var/i = 1; i <= path.len/2; i++) - path.Swap(i,path.len-i+1) + for(var/i = 1; i <= length(path)/2; i++) + path.Swap(i,length(path)-i+1) return path diff --git a/code/defines/procs/admin.dm b/code/defines/procs/admin.dm index 1e4f02e95cc0..d48c02127ea9 100644 --- a/code/defines/procs/admin.dm +++ b/code/defines/procs/admin.dm @@ -1,3 +1,15 @@ -/proc/log_and_message_admins(message as text) - log_admin("[key_name(usr)] [message]") - message_admins("[key_name(usr)] [message]") +/proc/important_message_external(message, title, list/datum/tgs_chat_embed/field/fields) + if(CONFIG_GET(string/important_log_channel)) + var/datum/tgs_message_content/to_send = new("") + + var/datum/tgs_chat_embed/structure/embed = new() + embed.title = title ? title : "Important Log" + embed.description = message + embed.timestamp = time2text(world.timeofday, "YYYY-MM-DD hh:mm:ss") + embed.colour = "#ED2939" + if(length(fields)) + embed.fields = fields + + to_send.embed = embed + + send2chat(to_send, CONFIG_GET(string/important_log_channel)) diff --git a/code/defines/procs/announcement.dm b/code/defines/procs/announcement.dm index 3dd918abbc6b..250c81dfc3dc 100644 --- a/code/defines/procs/announcement.dm +++ b/code/defines/procs/announcement.dm @@ -42,14 +42,20 @@ continue if(is_mainship_level(H.z)) // People on ship see everything continue + + // If they have iff AND a marine headset they will recieve announcements + var/obj/item/card/id/card = H.get_idcard() + if ((FACTION_MARINE in card?.faction_group) && (istype(H.wear_l_ear, /obj/item/device/radio/headset/almayer) || istype(H.wear_r_ear, /obj/item/device/radio/headset/almayer))) + continue + if((H.faction != faction_to_display && !add_PMCs) || (H.faction != faction_to_display && add_PMCs && !(H.faction in FACTION_LIST_WY)) && !(faction_to_display in H.faction_group)) //faction checks targets.Remove(H) switch(logging) if(ARES_LOG_MAIN) - log_ares_announcement(title, message) + log_ares_announcement(title, message, signature) if(ARES_LOG_SECURITY) - log_ares_security(title, message) + log_ares_security(title, message, signature) else if(faction_to_display == "Everyone (-Yautja)") for(var/mob/M in targets) @@ -90,7 +96,7 @@ //AI announcement that uses talking into comms /proc/ai_announcement(message, sound_to_play = sound('sound/misc/interference.ogg'), logging = ARES_LOG_MAIN) for(var/mob/M in (GLOB.human_mob_list + GLOB.dead_mob_list)) - if(isobserver(M) || ishuman(M) && is_mainship_level(M.z)) + if((isobserver(M) && M.client?.prefs?.toggles_sound & SOUND_OBSERVER_ANNOUNCEMENTS) || ishuman(M) && is_mainship_level(M.z)) playsound_client(M.client, sound_to_play, M, vol = 45) for(var/mob/living/silicon/decoy/ship_ai/AI in GLOB.ai_mob_list) @@ -98,9 +104,9 @@ switch(logging) if(ARES_LOG_MAIN) - log_ares_announcement("[MAIN_AI_SYSTEM] Comms Update", message) + log_ares_announcement("Comms Update", message, MAIN_AI_SYSTEM) if(ARES_LOG_SECURITY) - log_ares_security("[MAIN_AI_SYSTEM] Security Update", message) + log_ares_security("Security Update", message, MAIN_AI_SYSTEM) /proc/ai_silent_announcement(message, channel_prefix, bypass_cooldown = FALSE) if(!message) @@ -133,9 +139,9 @@ message += "

      Signed by,
      [signature]
      " switch(ares_logging) if(ARES_LOG_MAIN) - log_ares_announcement(title, message) + log_ares_announcement(title, message, signature) if(ARES_LOG_SECURITY) - log_ares_security(title, message) + log_ares_security(title, message, signature) announcement_helper(message, title, targets, sound_to_play) @@ -145,10 +151,10 @@ for(var/mob/T in targets) if(isobserver(T)) continue - if(!ishuman(T) || isyautja(T) || !is_mainship_level(T.z)) + if(!ishuman(T) || isyautja(T) || !is_mainship_level((get_turf(T))?.z)) targets.Remove(T) - log_ares_announcement("[title] Shipwide Update", message) + log_ares_announcement("Shipwide Update", message, title) announcement_helper(message, title, targets, sound_to_play) @@ -161,4 +167,6 @@ continue to_chat_spaced(T, html = "[SPAN_ANNOUNCEMENT_HEADER(title)]

      [SPAN_ANNOUNCEMENT_BODY(message)]", type = MESSAGE_TYPE_RADIO) + if(isobserver(T) && !(T.client?.prefs?.toggles_sound & SOUND_OBSERVER_ANNOUNCEMENTS)) + continue playsound_client(T.client, sound_to_play, T, vol = 45) diff --git a/code/defines/procs/records.dm b/code/defines/procs/records.dm index a9d40f993629..33a11e98cfaf 100644 --- a/code/defines/procs/records.dm +++ b/code/defines/procs/records.dm @@ -7,7 +7,7 @@ general_record.fields["real_rank"] = "Unassigned" general_record.fields["sex"] = "Male" general_record.fields["age"] = "Unknown" - general_record.fields["ethnicity"] = "Unknown" + general_record.fields["skin_color"] = "Unknown" general_record.fields["p_stat"] = "Active" general_record.fields["m_stat"] = "Stable" general_record.fields["species"] = "Human" diff --git a/code/game/area/BigRed.dm b/code/game/area/BigRed.dm index 57e062195a3c..c5e96c78175a 100644 --- a/code/game/area/BigRed.dm +++ b/code/game/area/BigRed.dm @@ -1,4 +1,5 @@ //Areas for BigRed - Minijar +// old icon state no longer in use. ("hydro","heads_quarters") /area/bigred can_build_special = TRUE powernet_name = "ground" @@ -251,44 +252,50 @@ name = "\improper Corporate Saferoom" icon_state = "vault" -/area/bigred/uground/lambda_labs/ - minimap_color = MINIMAP_AREA_RESEARCH_CAVE -/area/bigred/uground/lambda_labs/airlock - name = "\improper Lambda Labs Airlock" - icon_state = "decontamination" - -/area/bigred/uground/lambda_labs/lobby - name = "\improper Lambda Labs Reception" - icon_state = "bluenew" - -/area/bigred/uground/lambda_labs/office - name = "\improper Lambda Labs Administration" - icon_state = "heads_quarters" +// Lambda areas below: -/area/bigred/uground/lambda_labs/laser_lab - name = "\improper Lambda Laser Laboratory" - icon_state = "toxmisc" +// Laboratory proper +/area/bigredv2/caves/lambda + ceiling = CEILING_UNDERGROUND_METAL_BLOCK_CAS + ceiling_muffle = FALSE + ambience_exterior = AMBIENCE_ALMAYER + sound_environment = SOUND_ENVIRONMENT_ROOM + soundscape_playlist = list() + minimap_color = MINIMAP_AREA_RESEARCH -/area/bigred/uground/lambda_labs/hydro_office - name = "\improper Lambda Labs Bio-Dome" - icon_state = "hydro" +/area/bigredv2/caves/lambda/virology + name = "\improper Lambda Virology" + icon_state = "lam_virology" -/area/bigred/uground/lambda_labs/hydro_lab - name = "\improper Lambda Labs Hydrophonics" - icon_state = "garden" +/area/bigredv2/caves/lambda/research + name = "\improper Lambda Research" + icon_state = "lam_research" -/area/bigred/uground/lambda_labs/fridge - name = "\improper Lambda Labs Refrigeration" - icon_state = "kitchen" +/area/bigredv2/caves/lambda/breakroom + name = "\improper Lambda Breakroom" + icon_state = "lam_break" -/area/bigred/uground/lambda_labs/maintenance - name = "\improper Unknown Area" - icon_state = "yellow" +/area/bigredv2/caves/lambda/xenobiology + name = "\improper Lambda Xenobiology" + icon_state = "lam_xeno" -/area/bigred/uground/lambda_labs/maintenance2 - name = "\improper Unknown Area" - icon_state = "blue" +// cave around the laboratory. +/area/bigredv2/caves_lambda + name = "\improper Lambda Lab Caves" + icon_state = "caves_lambda" + ceiling = CEILING_UNDERGROUND_BLOCK_CAS + sound_environment = SOUND_ENVIRONMENT_AUDITORIUM + ceiling_muffle = FALSE + ambience_exterior = AMBIENCE_CAVE + soundscape_playlist = SCAPE_PL_CAVE + base_muffle = MUFFLE_HIGH +// serve for the security checkpoint. +/area/bigredv2/outside/lambda_cave_cas + name = "\improper Lambda Lockdown Caves Entrance" + icon_state = "decontamination" + ceiling = CEILING_UNDERGROUND_ALLOW_CAS + minimap_color = MINIMAP_AREA_SEC //Big Red V2 /area/bigredv2 @@ -508,27 +515,35 @@ is_resin_allowed = FALSE ceiling_muffle = FALSE base_muffle = MUFFLE_LOW + is_landing_zone = TRUE /area/bigredv2/outside/telecomm/lz2_cave name = "\improper Central Grounds Communications Relay" + is_landing_zone = FALSE /area/bigredv2/outside/telecomm/n_cave name = "\improper North Cave Communications Relay" + is_landing_zone = FALSE /area/bigredv2/outside/telecomm/warehouse name = "\improper Warehouse Communications Relay" + is_landing_zone = FALSE /area/bigredv2/outside/telecomm/security name = "\improper Security Communications Relay" + is_landing_zone = FALSE /area/bigredv2/outside/telecomm/store name = "\improper General Store Communications Relay" + is_landing_zone = FALSE /area/bigredv2/outside/telecomm/admin name = "\improper Administrative Communications Relay" + is_landing_zone = FALSE /area/bigredv2/outside/telecomm/engi name = "\improper Engineering Communications Relay" + is_landing_zone = FALSE /area/bigredv2/outside/engineering @@ -551,29 +566,6 @@ icon_state = "party" ceiling = CEILING_METAL -/area/bigredv2/caves/lambda - ceiling = CEILING_UNDERGROUND_METAL_BLOCK_CAS - ceiling_muffle = FALSE - ambience_exterior = AMBIENCE_ALMAYER - sound_environment = SOUND_ENVIRONMENT_ROOM - soundscape_playlist = list() - -/area/bigredv2/caves/lambda/virology - name = "\improper Lambda Virology" - icon_state = "lam_virology" - -/area/bigredv2/caves/lambda/research - name = "\improper Lambda Research" - icon_state = "lam_research" - -/area/bigredv2/caves/lambda/breakroom - name = "\improper Lambda Breakroom" - icon_state = "lam_break" - -/area/bigredv2/caves/lambda/xenobiology - name = "\improper Lambda Xenobiology" - icon_state = "lam_xeno" - /area/bigredv2/outside/general_offices name = "\improper General Offices" icon_state = "storage" @@ -630,16 +622,6 @@ soundscape_playlist = SCAPE_PL_CAVE base_muffle = MUFFLE_HIGH -/area/bigredv2/caves_lambda - name = "\improper Lambda Lab Caves" - icon_state = "caves_lambda" - ceiling = CEILING_UNDERGROUND_BLOCK_CAS - sound_environment = SOUND_ENVIRONMENT_AUDITORIUM - ceiling_muffle = FALSE - ambience_exterior = AMBIENCE_CAVE - soundscape_playlist = SCAPE_PL_CAVE - base_muffle = MUFFLE_HIGH - /area/bigredv2/caves_north name = "\improper Northern Caves" icon_state = "caves_north" @@ -688,8 +670,3 @@ name = "\improper Filtration Lockdown Caves Entrance" icon_state = "garden" ceiling = CEILING_UNDERGROUND_ALLOW_CAS - -/area/bigredv2/outside/lambda_cave_cas - name = "\improper Lambda Lockdown Caves Entrance" - icon_state = "garden" - ceiling = CEILING_UNDERGROUND_ALLOW_CAS diff --git a/code/game/area/Corsat.dm b/code/game/area/Corsat.dm index f93745c3055c..7d2a55fac97f 100644 --- a/code/game/area/Corsat.dm +++ b/code/game/area/Corsat.dm @@ -523,7 +523,6 @@ /area/corsat/omega/hangar name = "\improper Landing Bay Omega" icon_state = "omega_hangar" - is_landing_zone = TRUE /area/corsat/omega/hangar/office name = "\improper Omega Hangar Office" diff --git a/code/game/area/DesertDam.dm b/code/game/area/DesertDam.dm index 96e5eb1f62e5..9f53494b1bbf 100644 --- a/code/game/area/DesertDam.dm +++ b/code/game/area/DesertDam.dm @@ -216,6 +216,7 @@ /area/desert_dam/building/substation/northwest name = "Command Substation" icon_state = "northewestern_ss" + is_landing_zone = TRUE /area/desert_dam/building/substation/northeast name = "Command Substation" icon_state = "northeastern_ss" diff --git a/code/game/area/LV522_Chances_Claim.dm b/code/game/area/LV522_Chances_Claim.dm index ffd6a5897e4e..c3e5c96ad4d7 100644 --- a/code/game/area/LV522_Chances_Claim.dm +++ b/code/game/area/LV522_Chances_Claim.dm @@ -48,6 +48,11 @@ name = "Chance's Claim - Landing Zone One Tunnels" ceiling = CEILING_METAL +/area/lv522/landing_zone_1/tunnel/far + name = "Chance's Claim - Landing Zone One Tunnels" + ceiling = CEILING_METAL + is_landing_zone = FALSE + /area/shuttle/drop1/lv522 name = "Chance's Claim - Dropship Alamo Landing Zone" icon_state = "shuttle" diff --git a/code/game/area/LV624.dm b/code/game/area/LV624.dm index 505387f8e52b..464067e827d3 100644 --- a/code/game/area/LV624.dm +++ b/code/game/area/LV624.dm @@ -37,6 +37,7 @@ name ="\improper Western Jungle" icon_state = "west" //ambience = list('sound/ambience/jungle_amb1.ogg') + is_resin_allowed = FALSE /area/lv624/ground/jungle/west_jungle/ceiling ceiling = CEILING_GLASS @@ -382,10 +383,12 @@ /area/lv624/lazarus/engineering name = "\improper Engineering" icon_state = "engine_smes" + minimap_color = MINIMAP_AREA_ENGI /area/lv624/lazarus/comms name = "\improper Communications Relay" icon_state = "tcomsatcham" + minimap_color = MINIMAP_AREA_ENGI /area/lv624/lazarus/secure_storage name = "\improper Secure Storage" @@ -400,6 +403,7 @@ /area/lv624/lazarus/research name = "\improper Research Lab" icon_state = "toxlab" + minimap_color = MINIMAP_AREA_RESEARCH /area/lv624/lazarus/fitness name = "\improper Fitness Room" diff --git a/code/game/area/Prison_Station_FOP.dm b/code/game/area/Prison_Station_FOP.dm index 0edc23556bf5..b1bfbc093c16 100644 --- a/code/game/area/Prison_Station_FOP.dm +++ b/code/game/area/Prison_Station_FOP.dm @@ -90,6 +90,7 @@ /area/prison/security/checkpoint/hangar name = "\improper Main Hangar Traffic Control" is_resin_allowed = FALSE + is_landing_zone = TRUE /area/prison/storage icon_state = "engine_storage" @@ -211,6 +212,7 @@ name = "\improper Hangar-Barracks Maintenance" icon_state = "maint_e_shuttle" is_resin_allowed = FALSE + is_landing_zone = TRUE /area/prison/canteen name = "\improper Canteen" @@ -457,6 +459,7 @@ /area/prison/monorail/east name = "\improper East Monorail Station" is_resin_allowed = FALSE + is_landing_zone = TRUE /area/prison/monorail/west name = "\improper West Monorail Station" @@ -467,10 +470,12 @@ /area/prison/hanger/main name = "\improper Main Hanger" icon_state = "hangar_alpha" + is_landing_zone = TRUE /area/prison/hanger/research name = "\improper Research Hanger" icon_state = "hangar_beta" + is_landing_zone = TRUE /area/prison/hangar_storage/main name = "\improper Main Hangar Storage" @@ -480,9 +485,11 @@ name = "\improper Research Hangar Storage" icon_state = "toxstorage" is_resin_allowed = FALSE + is_landing_zone = TRUE /area/prison/hangar_storage/research/shuttle name = "Corporate Shuttle" + is_landing_zone = FALSE /area/prison/telecomms name = "\improper Telecommunications" diff --git a/code/game/area/Sulaco.dm b/code/game/area/Sulaco.dm index ae197537143a..a3d02b78636c 100644 --- a/code/game/area/Sulaco.dm +++ b/code/game/area/Sulaco.dm @@ -14,6 +14,7 @@ flags_area = AREA_NOTUNNEL is_landing_zone = TRUE ceiling = CEILING_REINFORCED_METAL + base_lighting_alpha = 0 /area/shuttle/drop1/Enter(atom/movable/O, atom/oldloc) if(istype(O, /obj/structure/barricade)) @@ -24,6 +25,7 @@ name = "\improper Dropship Alamo" icon_state = "shuttlered" base_muffle = MUFFLE_HIGH + base_lighting_alpha = 255 /area/shuttle/drop1/LV624 name = "\improper Dropship Alamo" @@ -71,11 +73,13 @@ flags_area = AREA_NOTUNNEL is_landing_zone = TRUE ceiling = CEILING_REINFORCED_METAL + base_lighting_alpha = 0 /area/shuttle/drop2/sulaco name = "\improper Dropship Normandy" icon_state = "shuttle" base_muffle = MUFFLE_HIGH + base_lighting_alpha = 255 /area/shuttle/drop2/LV624 name = "\improper Dropship Normandy" diff --git a/code/game/area/admin_level.dm b/code/game/area/admin_level.dm index 00b408c04adf..9dc43256f4de 100644 --- a/code/game/area/admin_level.dm +++ b/code/game/area/admin_level.dm @@ -113,6 +113,10 @@ name = "UPP Station" icon_state = "green" +/area/adminlevel/ert_station/pizza_station + name = "Pizza Galaxy" + icon_state = "red" + /area/adminlevel/ert_station/clf_station name = "CLF Station" icon_state = "white" @@ -121,6 +125,10 @@ name = "Weyland-Yutani Station" icon_state = "red" +/area/adminlevel/ert_station/uscm_station + name = "USCM Station" + icon_state = "green" + /area/adminlevel/ert_station/freelancer_station name = "Freelancer Station" icon_state = "yellow" @@ -141,6 +149,28 @@ requires_power = 0 flags_area = AREA_NOTUNNEL +/area/misc + weather_enabled = FALSE + /area/misc/testroom requires_power = FALSE name = "Test Room" + +/area/misc/tutorial + name = "Tutorial Zone" + icon_state = "tutorial" + requires_power = FALSE + flags_area = AREA_NOTUNNEL|AREA_AVOID_BIOSCAN + statistic_exempt = TRUE + ceiling = CEILING_METAL + block_game_interaction = TRUE + unique = TRUE + + base_lighting_alpha = 255 + +/area/misc/tutorial/Initialize(mapload, ...) + . = ..() + update_base_lighting() + +/area/misc/tutorial/no_baselight + base_lighting_alpha = 0 diff --git a/code/game/area/almayer.dm b/code/game/area/almayer.dm index d9ff42f4f55c..b75baccd7353 100644 --- a/code/game/area/almayer.dm +++ b/code/game/area/almayer.dm @@ -1,15 +1,17 @@ //ALMAYER AREAS--------------------------------------// // Fore = West | Aft = East // // Port = South | Starboard = North // +// Bow = Western|Stern = Eastern //(those are the front and back small sections) +// Naming convention is to start by port or starboard then put eitheir (bow,fore,midship,aft,stern) /area/almayer icon = 'icons/turf/area_almayer.dmi' - //ambience = list('sound/ambience/shipambience.ogg') + // ambience = list('sound/ambience/shipambience.ogg') icon_state = "almayer" ceiling = CEILING_METAL powernet_name = "almayer" sound_environment = SOUND_ENVIRONMENT_ROOM soundscape_interval = 30 - //soundscape_playlist = list('sound/effects/xylophone1.ogg', 'sound/effects/xylophone2.ogg', 'sound/effects/xylophone3.ogg') + // soundscape_playlist = list('sound/effects/xylophone1.ogg', 'sound/effects/xylophone2.ogg', 'sound/effects/xylophone3.ogg') ambience_exterior = AMBIENCE_ALMAYER ceiling_muffle = FALSE @@ -28,26 +30,6 @@ if(hijack_evacuation_area) SShijack.progress_areas[src] = power_equip -/area/shuttle/almayer/elevator_maintenance/upperdeck - name = "\improper Upper Deck Maintenance Elevator" - icon_state = "shuttle" - fake_zlevel = 1 - -/area/shuttle/almayer/elevator_maintenance/lowerdeck - name = "\improper Lower Deck Maintenance Elevator" - icon_state = "shuttle" - fake_zlevel = 2 - -/area/shuttle/almayer/elevator_hangar/lowerdeck - name = "\improper Hangar Elevator" - icon_state = "shuttle" - fake_zlevel = 2 // lowerdeck - -/area/shuttle/almayer/elevator_hangar/underdeck - name = "\improper Hangar Elevator" - icon_state = "shuttle" - fake_zlevel = 3 - /obj/structure/machinery/computer/shuttle_control/almayer/hangar name = "Elevator Console" icon = 'icons/obj/structures/machinery/computer.dmi' @@ -119,7 +101,7 @@ fake_zlevel = 1 // upperdeck flags_area = AREA_NOTUNNEL -/area/almayer/command/corporateliason +/area/almayer/command/corporateliaison name = "\improper Corporate Liaison Office" icon_state = "corporatespace" fake_zlevel = 1 // upperdeck @@ -129,9 +111,40 @@ icon_state = "selfdestruct" fake_zlevel = 1 // upperdeck +// engineering + /area/almayer/engineering minimap_color = MINIMAP_AREA_ENGI +// lower deck + +/area/almayer/engineering/lower + name = "\improper Lower Deck Engineering" + icon_state = "lowerengineering" + fake_zlevel = 2 // lowerdeck + +/area/almayer/engineering/lower/engine_monitoring//this is not used so could be remove? + name = "\improper Lower Deck Engine Reactor Monitoring" + icon_state = "lowermonitoring" + +/area/almayer/engineering/lower/workshop + name = "\improper Lower Deck Engineering Workshop" + icon_state = "workshop" + +/area/almayer/engineering/lower/workshop/hangar + name = "\improper Ordnance workshop" + +/area/almayer/engineering/lower/engine_core + name = "\improper Engine Reactor Core Room" + icon_state = "coreroom" + soundscape_playlist = SCAPE_PL_ENG + soundscape_interval = 15 + hijack_evacuation_area = TRUE + hijack_evacuation_weight = 0.2 + hijack_evacuation_type = EVACUATION_TYPE_ADDITIVE + +// upper deck + /area/almayer/engineering/upper_engineering name = "\improper Upper Deck Engineering" icon_state = "upperengineering" @@ -151,34 +164,6 @@ icon_state = "ceroom" fake_zlevel = 1 // upperdeck -/area/almayer/engineering/lower_engine_monitoring - name = "\improper Lower Deck Engine Reactor Monitoring" - icon_state = "lowermonitoring" - fake_zlevel = 2 // lowerdeck - -/area/almayer/engineering/lower_engineering - name = "\improper Lower Deck Engineering" - icon_state = "lowerengineering" - fake_zlevel = 2 // lowerdeck - -/area/almayer/engineering/engineering_workshop - name = "\improper Lower Deck Engineering Workshop" - icon_state = "workshop" - fake_zlevel = 2 // lowerdeck - -/area/almayer/engineering/engineering_workshop/hangar - name = "\improper Ordnance workshop" - -/area/almayer/engineering/engine_core - name = "\improper Engine Reactor Core Room" - icon_state = "coreroom" - fake_zlevel = 2 // lowerdeck - soundscape_playlist = SCAPE_PL_ENG - soundscape_interval = 15 - hijack_evacuation_area = TRUE - hijack_evacuation_weight = 0.2 - hijack_evacuation_type = EVACUATION_TYPE_ADDITIVE - /area/almayer/engineering/starboard_atmos name = "\improper Upper Deck Starboard Atmospherics" icon_state = "starboardatmos" @@ -238,6 +223,13 @@ icon_state = "portpd" fake_zlevel = 2 // lowerdeck +/area/almayer/shipboard/stern_point_defense + name = "\improper Lower Deck Stern Point Defense" + icon_state = "portpd" + fake_zlevel = 2 // lowerdeck + +// brig + /area/almayer/shipboard/brig name = "\improper Brig" icon_state = "brig" @@ -245,51 +237,48 @@ /area/almayer/shipboard/brig/lobby name = "\improper Brig Lobby" - icon_state = "brig" /area/almayer/shipboard/brig/armory name = "\improper Brig Armory" - icon_state = "brig" -/area/almayer/shipboard/brig/main_office - name = "\improper Brig Main Office" - icon_state = "brig" +/area/almayer/shipboard/brig/mp_bunks + name = "\improper Brig MP Bunks" + +/area/almayer/shipboard/brig/starboard_hallway + name = "\improper Brig Starboard Hallway" /area/almayer/shipboard/brig/perma name = "\improper Brig Perma Cells" - icon_state = "brig" /area/almayer/shipboard/brig/cryo name = "\improper Brig Cryo Pods" - icon_state = "brig" -/area/almayer/shipboard/brig/surgery - name = "\improper Brig Surgery" - icon_state = "brig" +/area/almayer/shipboard/brig/medical + name = "\improper Brig Medical" + +/area/almayer/shipboard/brig/interrogation + name = "\improper Brig Interrogation Room" /area/almayer/shipboard/brig/general_equipment name = "\improper Brig General Equipment" - icon_state = "brig" /area/almayer/shipboard/brig/evidence_storage name = "\improper Brig Evidence Storage" - icon_state = "brig" /area/almayer/shipboard/brig/execution name = "\improper Brig Execution Room" - icon_state = "brig" + +/area/almayer/shipboard/brig/execution_storage + name = "\improper Brig Execution Storage" /area/almayer/shipboard/brig/cic_hallway name = "\improper Brig CiC Hallway" - icon_state = "brig" /area/almayer/shipboard/brig/dress name = "\improper CIC Dress Uniform Room" - icon_state = "brig" /area/almayer/shipboard/brig/processing name = "\improper Brig Processing and Holding" - icon_state = "brig" /area/almayer/shipboard/brig/cells name = "\improper Brig Cells" @@ -299,6 +288,10 @@ name = "\improper Brig Chief MP Office" icon_state = "chiefmpoffice" +/area/almayer/shipboard/brig/warden_office + name = "\improper Brig Warden Office" + icon_state = "chiefmpoffice" + /area/almayer/shipboard/sea_office name = "\improper Lower Deck Senior Enlisted Advisor Office" icon_state = "chiefmpoffice" @@ -314,10 +307,6 @@ icon_state = "firingrange" fake_zlevel = 2 // lowerdeck -/area/almayer/shipboard/sensors - name = "\improper Sensor Room" - icon_state = "sensor" - /area/almayer/hallways/hangar name = "\improper Hangar" icon_state = "hangar" @@ -325,74 +314,75 @@ soundscape_playlist = SCAPE_PL_HANGAR soundscape_interval = 50 -/area/almayer/hallways/vehiclehangar +/area/almayer/hallways/lower + fake_zlevel = 2 // lowerdeck + +/area/almayer/hallways/lower/vehiclehangar name = "\improper Lower Deck Vehicle Storage" icon_state = "exoarmor" - fake_zlevel = 2 -/area/almayer/living - minimap_color = MINIMAP_AREA_COLONY - -/area/almayer/living/tankerbunks - name = "\improper Lower Deck Vehicle Crew Bunks" - icon_state = "livingspace" - fake_zlevel = 2 - -/area/almayer/living/auxiliary_officer_office - name = "\improper Lower Deck Auxiliary Support Officer office" - icon_state = "livingspace" - fake_zlevel = 2 - -/area/almayer/squads/tankdeliveries - name = "\improper Lower Deck Vehicle ASRS" - icon_state = "req" - fake_zlevel = 2 - -/area/almayer/hallways/exoarmor - name = "\improper Lower Deck Vehicle Armor Storage" - icon_state = "exoarmor" - fake_zlevel = 2 // lowerdeck - -/area/almayer/hallways/repair_bay +/area/almayer/hallways/lower/repair_bay name = "\improper Lower Deck Deployment Workshop" icon_state = "dropshiprepair" - fake_zlevel = 2 // lowerdeck - -/area/almayer/hallways/mission_planner - name = "\improper Lower Deck Dropship Central Computer Room" - icon_state = "missionplanner" - fake_zlevel = 2 // lowerdeck -/area/almayer/hallways/starboard_umbilical +/area/almayer/hallways/lower/starboard_umbilical name = "\improper Lower Deck Starboard Umbilical Hallway" icon_state = "starboardumbilical" - fake_zlevel = 2 // lowerdeck -/area/almayer/hallways/port_umbilical +/area/almayer/hallways/lower/port_umbilical name = "\improper Lower Deck Port Umbilical Hallway" icon_state = "portumbilical" - fake_zlevel = 2 // lowerdeck -/area/almayer/hallways/aft_hallway +//port +/area/almayer/hallways/lower/port_fore_hallway + name = "\improper Lower Deck Port-Fore Hallway" + icon_state = "port" + +/area/almayer/hallways/lower/port_midship_hallway + name = "\improper Lower Deck Port-Midship Hallway" + icon_state = "port" + +/area/almayer/hallways/lower/port_aft_hallway + name = "\improper Lower Deck Port-Aft Hallway" + icon_state = "port" + +//starboard +/area/almayer/hallways/lower/starboard_fore_hallway + name = "\improper Lower Deck Starboard-Fore Hallway" + icon_state = "starboard" + +/area/almayer/hallways/lower/starboard_midship_hallway + name = "\improper Lower Deck Starboard-Midship Hallway" + icon_state = "starboard" + +/area/almayer/hallways/lower/starboard_aft_hallway + name = "\improper Lower Deck Starboard-Aft Hallway" + icon_state = "starboard" + +/area/almayer/hallways/upper + fake_zlevel = 1 // upperdeck + +/area/almayer/hallways/upper/aft_hallway name = "\improper Upper Deck Aft Hallway" icon_state = "aft" - fake_zlevel = 1 // upperdeck -/area/almayer/hallways/stern_hallway - name = "\improper Upper Deck Stern Hallway" +/area/almayer/hallways/upper/fore_hallway + name = "\improper Upper Deck Fore Hallway" icon_state = "stern" - fake_zlevel = 1 // upperdeck -/area/almayer/hallways/port_hallway - name = "\improper Lower Deck Port Hallway" +/area/almayer/hallways/upper/midship_hallway + name = "\improper Upper Deck Midship Hallway" + icon_state = "stern" + +/area/almayer/hallways/upper/port + name = "\improper Upper Deck Port Hallway" icon_state = "port" - fake_zlevel = 2 // lowerdeck -/area/almayer/hallways/starboard_hallway - name = "\improper Lower Deck Starboard Hallway" +/area/almayer/hallways/upper/starboard + name = "\improper Upper Deck Starboard Hallway" icon_state = "starboard" - fake_zlevel = 2 // lowerdeck +//area that are used for transition between decks. /area/almayer/stair_clone name = "\improper Lower Deck Stairs" icon_state = "stairs_lowerdeck" @@ -404,63 +394,146 @@ icon_state = "stairs_upperdeck" fake_zlevel = 1 // upperdeck -/area/almayer/hull/lower_hull - name = "\improper Lower Deck Hull" +// maintenance areas + +/area/almayer/maint + +//lower maintenance areas + +/area/almayer/maint/lower + name = "\improper Lower Deck Maintenance" icon_state = "lowerhull" fake_zlevel = 2 // lowerdeck -/area/almayer/hull/upper_hull - name = "\improper Upper Deck Hull" +/area/almayer/maint/lower/constr + name = "\improper Lower Deck Construction Site" + +/area/almayer/maint/lower/s_bow + name = "\improper Lower Deck Starboard-Bow Maintenance" + +/area/almayer/maint/lower/cryo_cells + name = "\improper Lower Deck Cryo Cells Maintenance" + +// Upper maintainance areas +/area/almayer/maint/upper + name = "\improper Upper Deck Maintenance" icon_state = "upperhull" fake_zlevel = 1 // upperdeck -/area/almayer/hull/upper_hull/u_f_s - name = "\improper Upper Deck Fore-Starboard Hull" - icon_state = "upperhull" +/area/almayer/maint/upper/mess + name = "\improper Upper Deck Mess Maintenance" -/area/almayer/hull/upper_hull/u_m_s - name = "\improper Upper Deck Starboard-Midship Hull" - icon_state = "upperhull" +/area/almayer/maint/upper/u_m_p + name = "\improper Upper Deck Port-Midship Maintenance" -/area/almayer/hull/upper_hull/u_a_s - name = "\improper Upper Deck Starboard-Aft Hull" - icon_state = "upperhull" +/area/almayer/maint/upper/u_m_s + name = "\improper Upper Deck Starboard-Midship Maintenance" -/area/almayer/hull/upper_hull/u_f_p - name = "\improper Upper Deck Port-Fore Hull" - icon_state = "upperhull" +/area/almayer/maint/upper/u_f_p + name = "\improper Upper Deck Port-Fore Maintenance" -/area/almayer/hull/upper_hull/u_m_p - name = "\improper Upper Deck Port-Midship Hull" - icon_state = "upperhull" +/area/almayer/maint/upper/u_f_s + name = "\improper Upper Deck Starboard-Fore Maintenance" -/area/almayer/hull/upper_hull/u_a_p - name = "\improper Upper Deck Port-Aft Hull" - icon_state = "upperhull" +/area/almayer/maint/upper/u_a_p + name = "\improper Upper Deck Port-Aft Maintenance" + +/area/almayer/maint/upper/u_a_s + name = "\improper Upper Deck Starboard-Aft Maintenance" + +// hull areas +/area/almayer/maint/hull -/area/almayer/hull/lower_hull/l_f_s +// lower deck hull areas +/area/almayer/maint/hull/lower + name = "\improper Lower Deck Hull" + icon_state = "lowerhull" + fake_zlevel = 2 // lowerdeck +// stairs. + +/area/almayer/maint/hull/lower/stairs + name = "\improper Lower Deck Stairs Hull" + +/area/almayer/maint/hull/lower/stern + name = "\improper Lower Deck Stern Hull" + +/area/almayer/maint/hull/lower/p_bow + name = "\improper Lower Deck Port-Bow Hull" + +/area/almayer/maint/hull/lower/s_bow + name = "\improper Lower Deck Starboard-Bow Hull" + +/area/almayer/maint/hull/lower/l_f_s name = "\improper Lower Deck Starboard-Fore Hull" - icon_state = "upperhull" -/area/almayer/hull/lower_hull/l_m_s +/area/almayer/maint/hull/lower/l_m_s name = "\improper Lower Deck Starboard-Midship Hull" - icon_state = "upperhull" -/area/almayer/hull/lower_hull/l_a_s - name = "\improper Lower Deck Starboard Hull" - icon_state = "upperhull" +/area/almayer/maint/hull/lower/l_a_s + name = "\improper Lower Deck Starboard-Aft Hull" -/area/almayer/hull/lower_hull/l_f_p +/area/almayer/maint/hull/lower/l_f_p name = "\improper Lower Deck Port-Fore Hull" - icon_state = "upperhull" -/area/almayer/hull/lower_hull/l_m_p +/area/almayer/maint/hull/lower/l_m_p name = "\improper Lower Deck Port-Midship Hull" - icon_state = "upperhull" -/area/almayer/hull/lower_hull/l_a_p +/area/almayer/maint/hull/lower/l_a_p name = "\improper Lower Deck Port-Aft Hull" + +// upper deck hull areas + +/area/almayer/maint/hull/upper + name = "\improper Upper Deck Hull" icon_state = "upperhull" + fake_zlevel = 1 // upperdeck + +// Stairs. +/area/almayer/maint/hull/upper/stairs + name = "\improper Upper Deck Stairs Hull" + +/area/almayer/maint/hull/upper/p_bow + name = "\improper Upper Deck Port-Bow Hull" + +/area/almayer/maint/hull/upper/s_bow + name = "\improper Upper Deck Starboard-Bow Hull" + +/area/almayer/maint/hull/upper/p_stern + name = "\improper Upper Deck Port-Stern Hull" + +/area/almayer/maint/hull/upper/s_stern + name = "\improper Upper Deck Starboard-Stern Hull" + +/area/almayer/maint/hull/upper/u_f_s + name = "\improper Upper Deck Starboard-Fore Hull" + +/area/almayer/maint/hull/upper/u_m_s + name = "\improper Upper Deck Starboard-Midship Hull" + +/area/almayer/maint/hull/upper/u_a_s + name = "\improper Upper Deck Starboard-Aft Hull" + +/area/almayer/maint/hull/upper/u_f_p + name = "\improper Upper Deck Port-Fore Hull" + +/area/almayer/maint/hull/upper/u_m_p + name = "\improper Upper Deck Port-Midship Hull" + +/area/almayer/maint/hull/upper/u_a_p + name = "\improper Upper Deck Port-Aft Hull" + +/area/almayer/living + minimap_color = MINIMAP_AREA_COLONY + +/area/almayer/living/tankerbunks + name = "\improper Lower Deck Vehicle Crew Bunks" + icon_state = "livingspace" + fake_zlevel = 2 + +/area/almayer/living/auxiliary_officer_office + name = "\improper Lower Deck Auxiliary Support Officer office" + icon_state = "livingspace" + fake_zlevel = 2 /area/almayer/living/cryo_cells name = "\improper Lower Deck Cryo Cells" @@ -635,11 +708,6 @@ icon_state = "science" fake_zlevel = 1 // upperdeck -/area/almayer/medical/testlab - name = "\improper Medical Research workshop" - icon_state = "science" - fake_zlevel = 1 // upperdeck - /area/almayer/medical/containment name = "\improper Medical Research containment" icon_state = "science" @@ -739,27 +807,22 @@ hijack_evacuation_type = EVACUATION_TYPE_ADDITIVE /area/almayer/lifeboat_pumps/north1 - name = "Starboard Fore Lifeboat Fuel Pump" + name = "Starboard-Fore Lifeboat Fuel Pump" /area/almayer/lifeboat_pumps/north2 - name = "Starboard Aft Lifeboat Fuel Pump" + name = "Starboard-Aft Lifeboat Fuel Pump" /area/almayer/lifeboat_pumps/south1 - name = "Port Fore Lifeboat Fuel Pump" + name = "Port-Fore Lifeboat Fuel Pump" /area/almayer/lifeboat_pumps/south2 - name = "Port Aft Lifeboat Fuel Pump" + name = "Port-Aft Lifeboat Fuel Pump" /area/almayer/command/lifeboat name = "\improper Lifeboat Docking Port" icon_state = "selfdestruct" fake_zlevel = 1 // upperdeck -/area/almayer/ert_port - name = "\improper ERT Docking Port" - icon_state = "lifeboat" - flags_area = AREA_NOTUNNEL - /area/space/almayer/lifeboat_dock name = "\improper Port Lifeboat Docking" icon_state = "lifeboat" diff --git a/code/game/area/areas.dm b/code/game/area/areas.dm index 536e29599597..be7037295497 100644 --- a/code/game/area/areas.dm +++ b/code/game/area/areas.dm @@ -66,7 +66,7 @@ var/powernet_name = "default" //Default powernet name. Change to something else to make completely separate powernets var/requires_power = 1 var/unlimited_power = 0 - var/always_unpowered = 0 //this gets overriden to 1 for space in area/New() + var/always_unpowered = 0 //this gets overridden to 1 for space in area/New() //which channels are powered var/power_equip = TRUE @@ -79,6 +79,10 @@ var/used_environ = 0 var/used_oneoff = 0 //one-off power usage + /// If this area is outside the game's normal interactivity and should be excluded from things like EOR reports and crew monitors. + /// Doesn't need to be set for areas/Z levels that are marked as admin-only + var/block_game_interaction = FALSE + /area/New() // This interacts with the map loader, so it needs to be set immediately @@ -100,12 +104,6 @@ if(is_mainship_level(z)) GLOB.ship_areas += src - if(base_lighting_alpha) - return INITIALIZE_HINT_ROUNDSTART - -/area/LateInitialize() - . = ..() - update_base_lighting() /area/proc/initialize_power(override_power) @@ -138,12 +136,6 @@ C.network.Remove(CAMERA_NET_POWER_ALARMS) else C.network.Add(CAMERA_NET_POWER_ALARMS) - for (var/mob/living/silicon/aiPlayer in GLOB.ai_mob_list) - if(aiPlayer.z == source.z) - if (state == 1) - aiPlayer.cancelAlarm("Power", src, source) - else - aiPlayer.triggerAlarm("Power", src, cameras, source) for(var/obj/structure/machinery/computer/station_alert/a in GLOB.machines) if(a.z == source.z) if(state == 1) @@ -169,8 +161,6 @@ if (danger_level < 2 && atmosalm >= 2) for(var/obj/structure/machinery/camera/C in src) C.network.Remove(CAMERA_NET_ATMOSPHERE_ALARMS) - for(var/mob/living/silicon/aiPlayer in GLOB.ai_mob_list) - aiPlayer.cancelAlarm("Atmosphere", src, src) for(var/obj/structure/machinery/computer/station_alert/a in GLOB.machines) a.cancelAlarm("Atmosphere", src, src) @@ -180,8 +170,6 @@ for(var/obj/structure/machinery/camera/C in src) cameras += C C.network.Add(CAMERA_NET_ATMOSPHERE_ALARMS) - for(var/mob/living/silicon/aiPlayer in GLOB.ai_mob_list) - aiPlayer.triggerAlarm("Atmosphere", src, cameras, src) for(var/obj/structure/machinery/computer/station_alert/a in GLOB.machines) a.triggerAlarm("Atmosphere", src, cameras, src) air_doors_close() @@ -231,8 +219,6 @@ for (var/obj/structure/machinery/camera/C in src) cameras.Add(C) C.network.Add(CAMERA_NET_FIRE_ALARMS) - for (var/mob/living/silicon/ai/aiPlayer in GLOB.ai_mob_list) - aiPlayer.triggerAlarm("Fire", src, cameras, src) for (var/obj/structure/machinery/computer/station_alert/a in GLOB.machines) a.triggerAlarm("Fire", src, cameras, src) @@ -249,8 +235,6 @@ INVOKE_ASYNC(D, TYPE_PROC_REF(/obj/structure/machinery/door, open)) for (var/obj/structure/machinery/camera/C in src) C.network.Remove(CAMERA_NET_FIRE_ALARMS) - for (var/mob/living/silicon/ai/aiPlayer in GLOB.ai_mob_list) - aiPlayer.cancelAlarm("Fire", src, src) for (var/obj/structure/machinery/computer/station_alert/a in GLOB.machines) a.cancelAlarm("Fire", src, src) diff --git a/code/game/area/kutjevo.dm b/code/game/area/kutjevo.dm index a5a12cd5b999..d0a4a30118b0 100644 --- a/code/game/area/kutjevo.dm +++ b/code/game/area/kutjevo.dm @@ -203,12 +203,14 @@ icon_state = "Colony_int" ceiling = CEILING_METAL is_resin_allowed = FALSE + is_landing_zone = TRUE /area/kutjevo/interior/complex/Northwest_Flight_Control name = "Kutjevo Complex - Northwest Flight Control Room" icon_state = "Colony_int" ceiling = CEILING_METAL is_resin_allowed = FALSE + is_landing_zone = TRUE /area/kutjevo/interior/complex/Northwest_Security_Checkpoint name = "Kutjevo Complex - Northwest Security Checkpoint" @@ -216,6 +218,7 @@ ceiling = CEILING_METAL is_resin_allowed = FALSE minimap_color = MINIMAP_AREA_SEC + is_landing_zone = TRUE //Out buildings + foremans /area/kutjevo/interior/power diff --git a/code/game/area/prison.dm b/code/game/area/prison.dm index e22581658ee5..3ee209a6940b 100644 --- a/code/game/area/prison.dm +++ b/code/game/area/prison.dm @@ -57,6 +57,7 @@ name = "\improper control room" icon_state = "bridge" minimap_color = MINIMAP_AREA_COMMAND + is_landing_zone = TRUE /area/prison/hallway/central_ring name = "\improper central ring" diff --git a/code/game/area/prison_v3_fiorina.dm b/code/game/area/prison_v3_fiorina.dm index 9c60f8173ab8..c02ed0310816 100644 --- a/code/game/area/prison_v3_fiorina.dm +++ b/code/game/area/prison_v3_fiorina.dm @@ -183,6 +183,7 @@ /area/fiorina/station/telecomm/lz1_tram name = "Fiorina - LZ1 Aux Port Communications Relay" + is_landing_zone = TRUE /area/fiorina/station/telecomm/lz1_engineering name = "Fiorina - Engineering Primary Communications Relay" diff --git a/code/game/area/shiva.dm b/code/game/area/shiva.dm index e4939cd67e1e..fc7424f8146b 100644 --- a/code/game/area/shiva.dm +++ b/code/game/area/shiva.dm @@ -239,6 +239,10 @@ name = "Shiva's Snowball - Blue Warehouse" icon_state = "hangars1" +/area/shiva/interior/warehouse/caves + name = "Shiva's Snowball - Blue Warehouse Ice Cave" + icon_state = "caves1" + /area/shiva/interior/valley_huts name = "Shiva's Snowball - Valley Bunker 1" icon_state = "hangars1" @@ -251,10 +255,6 @@ name = "Shiva's Snowball - Valley Disposals" icon_state = "hangars3" -/area/shiva/interior/warehouse/caves - name = "Shiva's Snowball - Blue Warehouse Ice Cave" - icon_state = "caves1" - /area/shiva/interior/garage name = "Shiva's Snowball - Cargo Tug Repair Station" icon_state = "hangars2" @@ -262,3 +262,8 @@ /area/shiva/interior/lz2_habs name = "Shiva's Snowball - Argentinian Research Headquarters" icon_state = "bar1" + is_landing_zone = TRUE + +/area/shiva/interior/aux_power + name = "Shiva's Snowball - Auxiliary Generator Station" + icon_state = "hangars0" diff --git a/code/game/area/shuttles.dm b/code/game/area/shuttles.dm index 62c42406e795..3a8d53ab30b7 100644 --- a/code/game/area/shuttles.dm +++ b/code/game/area/shuttles.dm @@ -81,4 +81,4 @@ /area/shuttle/lifeboat icon = 'icons/turf/area_almayer.dmi' icon_state = "lifeboat" - flags_atom = AREA_NOTUNNEL + flags_area = AREA_NOTUNNEL diff --git a/code/game/area/varadero.dm b/code/game/area/varadero.dm index 682f3ded1c66..aac37bdf942a 100644 --- a/code/game/area/varadero.dm +++ b/code/game/area/varadero.dm @@ -84,6 +84,7 @@ requires_power = FALSE is_resin_allowed = FALSE minimap_color = MINIMAP_AREA_LZ + is_landing_zone = TRUE /area/varadero/exterior/lz1_console/two name = "New Varadero - Palm Airfield" @@ -98,12 +99,14 @@ icon_state = "lz1" is_resin_allowed = FALSE minimap_color = MINIMAP_AREA_LZ + is_landing_zone = TRUE /area/varadero/exterior/lz2_near name = "New Varadero - Palm Airfield" icon_state = "lz2" is_resin_allowed = FALSE minimap_color = MINIMAP_AREA_LZ + is_landing_zone = TRUE /area/varadero/exterior/pontoon_beach name = "New Varadero - Rockabilly Beach" @@ -111,6 +114,9 @@ is_resin_allowed = FALSE minimap_color = MINIMAP_AREA_JUNGLE +/area/varadero/exterior/pontoon_beach/lz + is_landing_zone = TRUE + /area/varadero/exterior/eastbeach name = "New Varadero - East Beach" is_resin_allowed = FALSE @@ -157,6 +163,7 @@ is_resin_allowed = FALSE minimap_color = MINIMAP_AREA_JUNGLE sound_environment = SOUND_ENVIRONMENT_ROOM + is_landing_zone = TRUE /area/varadero/interior/cargo name = "New Varadero - Cargo" diff --git a/code/game/atoms.dm b/code/game/atoms.dm index 5f36b3b8b390..bc0e41a338e3 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -238,7 +238,7 @@ directive is properly returned. pass |= istype(A, type) if(!pass) continue - if(A.contents.len) + if(length(A.contents)) found += A.search_contents_for(path,filter_path) return found @@ -503,7 +503,7 @@ Parameters are passed from New. onclose(usr, "[name]") ///This proc is called on atoms when they are loaded into a shuttle -/atom/proc/connect_to_shuttle(obj/docking_port/mobile/port, obj/docking_port/stationary/dock, idnum, override=FALSE) +/atom/proc/connect_to_shuttle(mapload, obj/docking_port/mobile/port, obj/docking_port/stationary/dock) return /** @@ -534,7 +534,17 @@ Parameters are passed from New. filters += filter(arglist(arguments)) UNSETEMPTY(filter_data) -/atom/proc/transition_filter(name, time, list/new_params, easing, loop) +/** Update a filter's parameter and animate this change. If the filter doesnt exist we won't do anything. + * Basically a [datum/proc/modify_filter] call but with animations. Unmodified filter parameters are kept. + * + * Arguments: + * * name - Filter name + * * new_params - New parameters of the filter + * * time - time arg of the BYOND animate() proc. + * * easing - easing arg of the BYOND animate() proc. + * * loop - loop arg of the BYOND animate() proc. + */ +/atom/proc/transition_filter(name, list/new_params, time, easing, loop) var/filter = get_filter(name) if(!filter) return diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm index 21f7b6b0a9be..52a35b715b1a 100644 --- a/code/game/atoms_movable.dm +++ b/code/game/atoms_movable.dm @@ -45,7 +45,10 @@ if(orbiting) orbiting.end_orbit(src) orbiting = null - vis_contents.Cut() + + vis_locs = null //clears this atom out of all viscontents + if(length(vis_contents)) + vis_contents.Cut() . = ..() moveToNullspace() //so we move into null space. Must be after ..() b/c atom's Dispose handles deleting our lighting stuff diff --git a/code/game/bioscans.dm b/code/game/bioscans.dm index ff6e00ec430e..edd0b174212d 100644 --- a/code/game/bioscans.dm +++ b/code/game/bioscans.dm @@ -111,7 +111,7 @@ GLOBAL_DATUM_INIT(bioscan_data, /datum/bioscan_data, new) /datum/bioscan_data/proc/ares_can_bioscan() var/datum/ares_link/link = GLOB.ares_link - if(!istype(link)) + if(!istype(link) || !ares_is_active()) return FALSE if(link.processor_bioscan && !link.processor_bioscan.inoperable()) return TRUE @@ -123,8 +123,8 @@ GLOBAL_DATUM_INIT(bioscan_data, /datum/bioscan_data, new) message_admins("An ARES Bioscan has failed.") var/name = "[MAIN_AI_SYSTEM] Bioscan Status" var/input = "Bioscan failed. \n\nInvestigation into Bioscan subsystem recommended." - log_ares_bioscan(name, input) - if(ares_can_interface()) + log_ares_bioscan(name, input, forced) + if(ares_can_interface() || forced) marine_announcement(input, name, 'sound/misc/interference.ogg', logging = ARES_LOG_NONE) return //Adjust the randomness there so everyone gets the same thing @@ -151,7 +151,7 @@ GLOBAL_DATUM_INIT(bioscan_data, /datum/bioscan_data, new) var/planet_location = "[marines_on_planet && marine_planet_location ? ", including one in [marine_planet_location]" : ""]" var/title = SPAN_XENOANNOUNCE("The Queen Mother reaches into your mind from worlds away.") - var/content = SPAN_XENOANNOUNCE("To my children and their Queen. I sense [metalhive_hosts] host[plural] in the metal hive [metalhive_location] and [planet_hosts] scattered elsewhere[planet_location].") + var/content = SPAN_XENOANNOUNCE("To my children and their Queen: I sense [metalhive_hosts] host[plural] in the metal hive[metalhive_location] and [planet_hosts] scattered elsewhere[planet_location].") log_game("BIOSCAN: Queen Mother bioscan completed. [content]") /// Shout it at everyone diff --git a/code/game/camera_manager/camera_manager.dm b/code/game/camera_manager/camera_manager.dm new file mode 100644 index 000000000000..9f111b0f8ec6 --- /dev/null +++ b/code/game/camera_manager/camera_manager.dm @@ -0,0 +1,246 @@ +#define DEFAULT_MAP_SIZE 15 + +#define RENDER_MODE_TARGET 1 +#define RENDER_MODE_AREA 2 + +/datum/component/camera_manager + var/map_name + var/obj/structure/machinery/camera/current + var/datum/shape/rectangle/current_area + var/atom/movable/screen/map_view/cam_screen + var/atom/movable/screen/background/cam_background + var/list/range_turfs = list() + /// The turf where the camera was last updated. + var/turf/last_camera_turf + var/target_x + var/target_y + var/target_z + var/target_width + var/target_height + var/list/cam_plane_masters + var/isXRay = FALSE + var/render_mode = RENDER_MODE_TARGET + +/datum/component/camera_manager/Initialize() + . = ..() + map_name = "camera_manager_[REF(src)]_map" + cam_screen = new + cam_screen.icon = null + cam_screen.name = "screen" + cam_screen.assigned_map = map_name + cam_screen.del_on_map_removal = FALSE + cam_screen.screen_loc = "[map_name]:1,1" + cam_screen.appearance_flags |= TILE_BOUND + cam_background = new + cam_background.assigned_map = map_name + cam_background.del_on_map_removal = FALSE + cam_background.appearance_flags |= TILE_BOUND + + cam_plane_masters = list() + for(var/plane in subtypesof(/atom/movable/screen/plane_master) - /atom/movable/screen/plane_master/blackness) + var/atom/movable/screen/plane_master/instance = new plane() + add_plane(instance) + +/datum/component/camera_manager/Destroy(force, ...) + . = ..() + range_turfs = null + current_area = null + QDEL_LIST_ASSOC_VAL(cam_plane_masters) + QDEL_NULL(cam_background) + QDEL_NULL(cam_screen) + if(current) + UnregisterSignal(current, COMSIG_PARENT_QDELETING) + current = null + last_camera_turf = null + +/datum/component/camera_manager/proc/add_plane(atom/movable/screen/plane_master/instance) + instance.assigned_map = map_name + instance.appearance_flags |= TILE_BOUND + instance.del_on_map_removal = FALSE + if(instance.blend_mode_override) + instance.blend_mode = instance.blend_mode_override + instance.screen_loc = "[map_name]:CENTER" + cam_plane_masters["[instance.plane]"] = instance + +/datum/component/camera_manager/proc/register(source, mob/user) + SIGNAL_HANDLER + var/client/user_client = user.client + if(!user_client) + return + user_client.register_map_obj(cam_screen) + user_client.register_map_obj(cam_background) + for(var/plane_id in cam_plane_masters) + user_client.register_map_obj(cam_plane_masters[plane_id]) + +/datum/component/camera_manager/proc/unregister(source, mob/user) + SIGNAL_HANDLER + var/client/user_client = user.client + if(!user_client) + return + user_client.clear_map(map_name) + +/datum/component/camera_manager/RegisterWithParent() + . = ..() + SEND_SIGNAL(parent, COMSIG_CAMERA_MAPNAME_ASSIGNED, map_name) + RegisterSignal(parent, COMSIG_CAMERA_REGISTER_UI, PROC_REF(register)) + RegisterSignal(parent, COMSIG_CAMERA_UNREGISTER_UI, PROC_REF(unregister)) + RegisterSignal(parent, COMSIG_CAMERA_SET_NVG, PROC_REF(enable_nvg)) + RegisterSignal(parent, COMSIG_CAMERA_CLEAR_NVG, PROC_REF(disable_nvg)) + RegisterSignal(parent, COMSIG_CAMERA_SET_AREA, PROC_REF(set_camera_rect)) + RegisterSignal(parent, COMSIG_CAMERA_SET_TARGET, PROC_REF(set_camera)) + RegisterSignal(parent, COMSIG_CAMERA_CLEAR, PROC_REF(clear_camera)) + RegisterSignal(parent, COMSIG_CAMERA_REFRESH, PROC_REF(refresh_camera)) + +/datum/component/camera_manager/UnregisterFromParent() + . = ..() + UnregisterSignal(parent, COMSIG_CAMERA_REGISTER_UI) + UnregisterSignal(parent, COMSIG_CAMERA_UNREGISTER_UI) + UnregisterSignal(parent, COMSIG_CAMERA_SET_NVG) + UnregisterSignal(parent, COMSIG_CAMERA_CLEAR_NVG) + UnregisterSignal(parent, COMSIG_CAMERA_SET_AREA) + UnregisterSignal(parent, COMSIG_CAMERA_SET_TARGET) + UnregisterSignal(parent, COMSIG_CAMERA_CLEAR) + UnregisterSignal(parent, COMSIG_CAMERA_REFRESH) + +/datum/component/camera_manager/proc/clear_camera() + SIGNAL_HANDLER + if(current) + UnregisterSignal(current, COMSIG_PARENT_QDELETING) + current_area = null + current = null + target_x = null + target_y = null + target_z = null + target_width = null + target_height = null + show_camera_static() + +/datum/component/camera_manager/proc/refresh_camera() + SIGNAL_HANDLER + if(render_mode == RENDER_MODE_AREA) + update_area_camera() + return + update_target_camera() + +/datum/component/camera_manager/proc/set_camera(source, atom/target, w, h) + SIGNAL_HANDLER + render_mode = RENDER_MODE_TARGET + if(current) + UnregisterSignal(current, COMSIG_PARENT_QDELETING) + current = target + target_width = w + target_height = h + RegisterSignal(current, COMSIG_PARENT_QDELETING, PROC_REF(show_camera_static)) + update_target_camera() + +/datum/component/camera_manager/proc/set_camera_rect(source, x, y, z, w, h) + SIGNAL_HANDLER + render_mode = RENDER_MODE_AREA + if(current) + UnregisterSignal(current, COMSIG_PARENT_QDELETING) + current = null + current_area = RECT(x, y, w, h) + target_x = x + target_y = y + target_z = z + target_width = w + target_height = h + update_area_camera() + +/datum/component/camera_manager/proc/enable_nvg(source, power, matrixcol) + SIGNAL_HANDLER + for(var/plane_id in cam_plane_masters) + var/atom/movable/screen/plane_master/plane = cam_plane_masters["[plane_id]"] + plane.add_filter("nvg", 1, color_matrix_filter(color_matrix_from_string(matrixcol))) + sync_lighting_plane_alpha(LIGHTING_PLANE_ALPHA_MOSTLY_INVISIBLE) + +/datum/component/camera_manager/proc/disable_nvg() + SIGNAL_HANDLER + for(var/plane_id in cam_plane_masters) + var/atom/movable/screen/plane_master/plane = cam_plane_masters["[plane_id]"] + plane.remove_filter("nvg") + sync_lighting_plane_alpha(LIGHTING_PLANE_ALPHA_VISIBLE) + +/datum/component/camera_manager/proc/sync_lighting_plane_alpha(lighting_alpha) + var/atom/movable/screen/plane_master/lighting/lighting = cam_plane_masters["[LIGHTING_PLANE]"] + if(lighting) + lighting.alpha = lighting_alpha + var/atom/movable/screen/plane_master/lighting/exterior_lighting = cam_plane_masters["[EXTERIOR_LIGHTING_PLANE]"] + if(exterior_lighting) + exterior_lighting.alpha = min(GLOB.minimum_exterior_lighting_alpha, lighting_alpha) + +/** + * Set the displayed camera to the static not-connected. + */ +/datum/component/camera_manager/proc/show_camera_static() + cam_screen.vis_contents.Cut() + last_camera_turf = null + cam_background.icon_state = "scanline2" + cam_background.fill_rect(1, 1, DEFAULT_MAP_SIZE, DEFAULT_MAP_SIZE) + +/datum/component/camera_manager/proc/update_target_camera() + // Show static if can't use the camera + if(!current?.can_use()) + show_camera_static() + return + + // Is this camera located in or attached to a living thing, Vehicle or helmet? If so, assume the camera's loc is the living (or non) thing. + var/cam_location = current + if(isliving(current.loc) || isVehicle(current.loc)) + cam_location = current.loc + else if(istype(current.loc, /obj/item/clothing)) + var/obj/item/clothing/clothing = current.loc + cam_location = clothing.loc + + // If we're not forcing an update for some reason and the cameras are in the same location, + // we don't need to update anything. + // Most security cameras will end here as they're not moving. + var/newturf = get_turf(cam_location) + if(last_camera_turf == newturf) + return + + // Cameras that get here are moving, and are likely attached to some moving atom such as cyborgs. + last_camera_turf = get_turf(cam_location) + + var/list/visible_things = current.isXRay() ? range(current.view_range, cam_location) : view(current.view_range, cam_location) + render_objects(visible_things) + +/datum/component/camera_manager/proc/update_area_camera() + // Show static if can't use the camera + if(!current_area || !target_z) + show_camera_static() + return + + // If we're not forcing an update for some reason and the cameras are in the same location, + // we don't need to update anything. + // Most security cameras will end here as they're not moving. + var/turf/new_location = locate(target_x, target_y, target_z) + if(last_camera_turf == new_location) + return + + // Cameras that get here are moving, and are likely attached to some moving atom such as cyborgs. + last_camera_turf = new_location + + var/x_size = current_area.width + var/y_size = current_area.height + var/turf/target = locate(current_area.center_x, current_area.center_y, target_z) + + var/list/visible_things = isXRay ? range("[x_size]x[y_size]", target) : view("[x_size]x[y_size]", target) + render_objects(visible_things) + +/datum/component/camera_manager/proc/render_objects(list/visible_things) + var/list/visible_turfs = list() + for(var/turf/visible_turf in visible_things) + visible_turfs += visible_turf + + var/list/bbox = get_bbox_of_atoms(visible_turfs) + var/size_x = bbox[3] - bbox[1] + 1 + var/size_y = bbox[4] - bbox[2] + 1 + + cam_screen.vis_contents = visible_turfs + cam_background.icon_state = "clear" + cam_background.fill_rect(1, 1, size_x, size_y) + +#undef DEFAULT_MAP_SIZE +#undef RENDER_MODE_TARGET +#undef RENDER_MODE_AREA diff --git a/code/game/cas_manager/datums/cas_fire_envelope.dm b/code/game/cas_manager/datums/cas_fire_envelope.dm index 330521f34e36..864d7f23a3e8 100644 --- a/code/game/cas_manager/datums/cas_fire_envelope.dm +++ b/code/game/cas_manager/datums/cas_fire_envelope.dm @@ -1,10 +1,12 @@ /datum/cas_fire_envelope var/obj/structure/machinery/computer/dropship_weapons/linked_console var/list/datum/cas_fire_mission/missions - var/max_mission_len = 5 var/fire_length var/grace_period //how much time you have after initiating fire mission and before you can't change firemissions - var/flyto_period //how much time it takes from sound alarm start to first hit. CAS is vulnerable here + var/first_warning + var/second_warning + var/third_warning + var/execution_start var/flyoff_period //how much time it takes after shots fired to get off the map. CAS is vulnerable here var/cooldown_period //how much time you have to wait before new Fire Mission run var/soundeffect //what sound effect to play @@ -20,7 +22,7 @@ var/datum/cas_signal/recorded_loc = null var/obj/effect/firemission_guidance/guidance - + var/atom/tracked_object /datum/cas_fire_envelope/New() ..() @@ -28,37 +30,35 @@ /datum/cas_fire_envelope/Destroy(force, ...) linked_console = null + untrack_object() return ..() -/datum/cas_fire_envelope/proc/get_total_duration() - return grace_period+flyto_period+flyoff_period +/datum/cas_fire_envelope/ui_data(mob/user) + . = list() + .["missions"] = list() + for(var/datum/cas_fire_mission/mission in missions) + .["missions"] += list(mission.ui_data(user)) + +/datum/cas_fire_envelope/proc/update_weapons(list/obj/structure/dropship_equipment/weapon/weapons) + for(var/datum/cas_fire_mission/mission in missions) + mission.update_weapons(weapons, fire_length) /datum/cas_fire_envelope/proc/generate_mission(firemission_name, length) - if(!missions || !linked_console || missions.len>max_mission_len || !fire_length) + if(!missions || !linked_console || !fire_length) return null - var/list/obj/structure/dropship_equipment/weapons = list() - for(var/X in linked_console.shuttle_equipments) - var/obj/structure/dropship_equipment/E = X - if(E.is_weapon) - weapons += E + var/shuttle_tag = linked_console.shuttle_tag + var/obj/docking_port/mobile/marine_dropship/dropship = SSshuttle.getShuttle(shuttle_tag) + for(var/obj/structure/dropship_equipment/equipment as anything in dropship.equipments) + if(equipment.is_weapon) + weapons += equipment var/datum/cas_fire_mission/fm = new() - - if(weapons.len==0) - return null //why bother? - for(var/obj/structure/dropship_equipment/weapon/wp in weapons) - var/datum/cas_fire_mission_record/record = new() - record.weapon = wp - record.offsets = new /list(fire_length) - for(var/idx = 1; idx<=fire_length; idx++) - record.offsets[idx] = "-" - fm.records += record + fm.build_new_record(wp, fire_length) fm.name = firemission_name fm.mission_length = length - missions += fm return fm @@ -67,67 +67,61 @@ mission_error = null if(stat > FIRE_MISSION_STATE_IN_TRANSIT && stat < FIRE_MISSION_STATE_COOLDOWN) mission_error = "Fire Mission is under way already." - return 0 + return FIRE_MISSION_NOT_EXECUTABLE if(!missions[mission_id]) - return -1 + return FIRE_MISSION_NOT_EXECUTABLE var/datum/cas_fire_mission/mission = missions[mission_id] if(!mission) - return -1 - if(!mission.records[weapon_id]) - return -1 - var/datum/cas_fire_mission_record/fmr = mission.records[weapon_id] + return FIRE_MISSION_NOT_EXECUTABLE + + var/datum/cas_fire_mission_record/fmr = mission.record_for_weapon(weapon_id) + if(!fmr) + return FIRE_MISSION_NOT_EXECUTABLE if(!fmr.offsets || isnull(fmr.offsets[offset_step])) - return -1 + return FIRE_MISSION_NOT_EXECUTABLE var/old_offset = fmr.offsets[offset_step] + if(offset == null) + offset = "-" fmr.offsets[offset_step] = offset var/check_result = mission.check(linked_console) if(check_result == FIRE_MISSION_CODE_ERROR) - return -1 + return FIRE_MISSION_NOT_EXECUTABLE if(check_result == FIRE_MISSION_ALL_GOOD) - return 1 + return FIRE_MISSION_ALL_GOOD if(check_result == FIRE_MISSION_WEAPON_OUT_OF_AMMO) - return 1 + return FIRE_MISSION_ALL_GOOD mission_error = mission.error_message(check_result) if(skip_checks) - return 0 + return FIRE_MISSION_ALL_GOOD //we have mission error. Fill the thing and restore previous state fmr.offsets[offset_step] = old_offset - return 0 + return FIRE_MISSION_ALL_GOOD -/datum/cas_fire_envelope/proc/execute_firemission(datum/cas_signal/target_turf, offset, dir, mission_id) - if(!istype(target_turf)) - mission_error = "No target." - return 0 +/datum/cas_fire_envelope/proc/execute_firemission(datum/cas_signal/signal, target_turf,dir, mission_id) if(stat != FIRE_MISSION_STATE_IDLE) mission_error = "Fire Mission is under way already." - return 0 + return FIRE_MISSION_NOT_EXECUTABLE if(!missions[mission_id]) - return -1 - if(offset<0) - mission_error = "Can't have negative offsets." - return 0 - if(offset>max_offset) - mission_error = "[max_offset] is the maximum possible offset." - return 0 + return FIRE_MISSION_NOT_EXECUTABLE if(dir!=NORTH && dir!=SOUTH && dir!=WEST && dir!=EAST) mission_error = "Incorrect direction." - return 0 + return FIRE_MISSION_BAD_DIRECTION mission_error = null var/datum/cas_fire_mission/mission = missions[mission_id] var/check_result = mission.check(linked_console) if(check_result == FIRE_MISSION_CODE_ERROR) - return -1 + return FIRE_MISSION_CODE_ERROR if(check_result != FIRE_MISSION_ALL_GOOD) mission_error = mission.error_message(check_result) - return 0 + return FIRE_MISSION_CODE_ERROR //actual firemission code - execute_firemission_unsafe(target_turf, offset, dir, mission) - return 1 + execute_firemission_unsafe(signal, target_turf, dir, mission) + return FIRE_MISSION_ALL_GOOD /datum/cas_fire_envelope/proc/firemission_status_message() switch(stat) @@ -157,7 +151,9 @@ recorded_loc = marker return TRUE -/datum/cas_fire_envelope/proc/change_current_loc(location) +/datum/cas_fire_envelope/proc/change_current_loc(location, atom/object) + if(object) + untrack_object() if(!location && guidance) for(var/mob/M in guidance.users) if(istype(M) && M.client) @@ -167,6 +163,22 @@ if(!guidance) guidance = new /obj/effect/firemission_guidance() guidance.forceMove(location) + guidance.updateCameras(linked_console) + if(object) + tracked_object = object + RegisterSignal(tracked_object, COMSIG_PARENT_QDELETING, PROC_REF(on_tracked_object_del)) + +/// Call to unregister the on_tracked_object_del behavior +/datum/cas_fire_envelope/proc/untrack_object() + if(tracked_object) + UnregisterSignal(tracked_object, COMSIG_PARENT_QDELETING) + tracked_object = null + +/// Signal handler for when we are viewing a object in cam is qdel'd (but camera actually is actually some other obj) +/datum/cas_fire_envelope/proc/on_tracked_object_del(atom/target) + SIGNAL_HANDLER + tracked_object = null + change_current_loc() /datum/cas_fire_envelope/proc/user_is_guided(user) return guidance && (user in guidance.users) @@ -183,7 +195,6 @@ guidance.users += user RegisterSignal(user, COMSIG_MOB_RESISTED, PROC_REF(exit_cam_resist)) - /datum/cas_fire_envelope/proc/apply_upgrade(user) var/mob/M = user if(linked_console.upgraded == MATRIX_NVG) @@ -193,8 +204,6 @@ M.overlay_fullscreen("matrix", /atom/movable/screen/fullscreen/flash/noise/nvg) M.lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_INVISIBLE M.sync_lighting_plane_alpha() - else if (linked_console.upgraded == MATRIX_WIDE) - M.client?.change_view(linked_console.power + 5, M) /datum/cas_fire_envelope/proc/remove_upgrades(user) @@ -221,6 +230,7 @@ remove_upgrades(user) guidance.users -= user UnregisterSignal(user, COMSIG_MOB_RESISTED) + guidance.clearCameras(linked_console) /datum/cas_fire_envelope/proc/exit_cam_resist(mob/user) SIGNAL_HANDLER @@ -231,54 +241,93 @@ /datum/cas_fire_envelope/proc/check_firemission_loc(datum/cas_signal/target_turf) return TRUE //redefined in child class -/datum/cas_fire_envelope/proc/execute_firemission_unsafe(datum/cas_signal/target_turf, offset, dir, datum/cas_fire_mission/mission) - var/sx = 0 - var/sy = 0 +/// Step 1: Sets the stat to FIRE_MISSION_STATE_ON_TARGET and starts the sound effect for the fire mission. +/datum/cas_fire_envelope/proc/play_sound(atom/target_turf) + stat = FIRE_MISSION_STATE_ON_TARGET + change_current_loc(target_turf) + playsound(target_turf, soundeffect, vol = 70, vary = TRUE, sound_range = 50, falloff = 8) + +/// Step 2, 3, 4: Warns nearby mobs of the incoming fire mission. Warning as 1 is non-precise, whereas 2 and 3 are precise. +/datum/cas_fire_envelope/proc/chat_warning(atom/target_turf, range = 10, warning_number = 1) + var/ds_identifier = "LARGE BIRD" + var/fm_identifier = "SPIT FIRE" + var/relative_dir + for(var/mob/mob in range(15, target_turf)) + if (mob.mob_flags & KNOWS_TECHNOLOGY) + ds_identifier = "DROPSHIP" + fm_identifier = "FIRE" + if(get_turf(mob) == target_turf) + relative_dir = 0 + else + relative_dir = Get_Compass_Dir(mob, target_turf) + switch(warning_number) + if(1) + mob.show_message( \ + SPAN_HIGHDANGER("YOU HEAR THE [ds_identifier] ROAR AS IT PREPARES TO [fm_identifier] NEAR YOU!"),SHOW_MESSAGE_VISIBLE, \ + SPAN_HIGHDANGER("YOU HEAR SOMETHING FLYING CLOSER TO YOU!") , SHOW_MESSAGE_AUDIBLE \ + ) + if(2) + mob.show_message( \ + SPAN_HIGHDANGER("A [ds_identifier] FLIES [SPAN_UNDERLINE(relative_dir ? uppertext(("TO YOUR " + dir2text(relative_dir))) : uppertext("right above you"))]!"), SHOW_MESSAGE_VISIBLE, \ + SPAN_HIGHDANGER("YOU HEAR SOMETHING GO [SPAN_UNDERLINE(relative_dir ? uppertext(("TO YOUR " + dir2text(relative_dir))) : uppertext("right above you"))]!"), SHOW_MESSAGE_AUDIBLE \ + ) + if(3) + mob.show_message( \ + SPAN_HIGHDANGER("A [ds_identifier] FLIES [SPAN_UNDERLINE(relative_dir ? uppertext(("TO YOUR " + dir2text(relative_dir))) : uppertext("right above you"))]!"), SHOW_MESSAGE_VISIBLE, \ + SPAN_HIGHDANGER("YOU HEAR SOMETHING GO [SPAN_UNDERLINE(relative_dir ? uppertext(("TO YOUR " + dir2text(relative_dir))) : uppertext("right above you"))]!"), SHOW_MESSAGE_AUDIBLE \ + ) + +/// Step 5: Actually executes the fire mission updating stat to FIRE_MISSION_STATE_FIRING and then FIRE_MISSION_STATE_OFF_TARGET +/datum/cas_fire_envelope/proc/open_fire(atom/target_turf,datum/cas_fire_mission/mission,dir) + stat = FIRE_MISSION_STATE_FIRING + mission.execute_firemission(linked_console, target_turf, dir, fire_length, step_delay, src) + stat = FIRE_MISSION_STATE_OFF_TARGET - recorded_dir = dir - recorded_offset = offset +/// Step 6: Sets the fire mission stat to FIRE_MISSION_STATE_COOLDOWN +/datum/cas_fire_envelope/proc/flyoff() + stat = FIRE_MISSION_STATE_COOLDOWN +/// Step 7: Sets the fire mission stat to FIRE_MISSION_STATE_IDLE +/datum/cas_fire_envelope/proc/end_cooldown() + stat = FIRE_MISSION_STATE_IDLE + + +/datum/cas_fire_envelope/proc/execute_firemission_unsafe(datum/cas_signal/signal, turf/target_turf, dir, datum/cas_fire_mission/mission) stat = FIRE_MISSION_STATE_IN_TRANSIT - sleep(grace_period) - stat = FIRE_MISSION_STATE_ON_TARGET - switch(recorded_dir) - if(NORTH) //default direction - sx = 0 - sy = 1 - if(SOUTH) - sx = 0 - sy = -1 - if(EAST) - sx = 1 - sy = 0 - if(WEST) - sx = -1 - sy = 0 + to_chat(usr, SPAN_ALERT("Firemission underway!")) if(!target_turf) stat = FIRE_MISSION_STATE_IDLE mission_error = "Target Lost." return - var/turf/tt_turf = get_turf(target_turf.signal_loc) - if(!tt_turf || !check_firemission_loc(target_turf)) + if(!target_turf || !check_firemission_loc(signal)) stat = FIRE_MISSION_STATE_IDLE mission_error = "Target is off bounds or obstructed." return - var/turf/shootloc = locate(tt_turf.x + sx*recorded_offset, tt_turf.y + sy*recorded_offset,tt_turf.z) - if(!shootloc || !istype(shootloc)) - stat = FIRE_MISSION_STATE_IDLE - mission_error = "Target is off bounds." - return - change_current_loc(shootloc) - playsound(shootloc, soundeffect, 70, TRUE, 50) - sleep(flyto_period) - stat = FIRE_MISSION_STATE_FIRING - mission.execute_firemission(linked_console, shootloc, recorded_dir, fire_length, step_delay, src) - stat = FIRE_MISSION_STATE_OFF_TARGET - sleep(flyoff_period) - stat = FIRE_MISSION_STATE_COOLDOWN - sleep(cooldown_period) - stat = FIRE_MISSION_STATE_IDLE + var/obj/effect/firemission_effect = new(target_turf) + + firemission_effect.icon = 'icons/obj/items/weapons/projectiles.dmi' + firemission_effect.icon_state = "laser_target2" + firemission_effect.mouse_opacity = MOUSE_OPACITY_TRANSPARENT + firemission_effect.invisibility = INVISIBILITY_MAXIMUM + QDEL_IN(firemission_effect, 12 SECONDS) + + + notify_ghosts(header = "CAS Fire Mission", message = "[usr ? usr : "Someone"] is launching Fire Mission '[mission.name]' at [get_area(target_turf)].", source = firemission_effect) + msg_admin_niche("[usr ? key_name(usr) : "Someone"] is launching Fire Mission '[mission.name]' at ([target_turf.x],[target_turf.y],[target_turf.z]) [ADMIN_JMP(target_turf)]") + + + addtimer(CALLBACK(src, PROC_REF(play_sound), target_turf), grace_period) + addtimer(CALLBACK(src, PROC_REF(chat_warning), target_turf, 15, 1), first_warning) + addtimer(CALLBACK(src, PROC_REF(chat_warning), target_turf, 15, 2), second_warning) + addtimer(CALLBACK(src, PROC_REF(chat_warning), target_turf, 10, 3), third_warning) + addtimer(CALLBACK(src, PROC_REF(open_fire), target_turf, mission,dir), execution_start) + addtimer(CALLBACK(src, PROC_REF(flyoff)), flyoff_period) + addtimer(CALLBACK(src, PROC_REF(end_cooldown)), cooldown_period) + +/** + * Change attack vector for firemission + */ /datum/cas_fire_envelope/proc/change_direction(new_dir) if(stat > FIRE_MISSION_STATE_IN_TRANSIT) mission_error = "Fire Mission is under way already." @@ -318,10 +367,13 @@ /datum/cas_fire_envelope/uscm_dropship fire_length = 12 - grace_period = 50 //5 seconds - flyto_period = 50 //five seconds - flyoff_period = 50 //FIVE seconds - cooldown_period = 100 //f~ I mean, 10 seconds + grace_period = 5 SECONDS + first_warning = 6 SECONDS + second_warning = 8 SECONDS + third_warning = 9 SECONDS + execution_start = 10 SECONDS + flyoff_period = 15 SECONDS + cooldown_period = 25 SECONDS soundeffect = 'sound/weapons/dropship_sonic_boom.ogg' //BOOM~WOOOOOSH~HSOOOOOW~BOOM step_delay = 3 max_offset = 12 @@ -346,13 +398,13 @@ /obj/structure/machinery/computer/dropship_weapons/proc/update_mission(mission_id, weapon_id, offset_step, offset) var/result = firemission_envelope.update_mission(mission_id, weapon_id, offset_step, offset) - if(result<1) + if(result != FIRE_MISSION_ALL_GOOD) return firemission_envelope.mission_error return "OK" // Used in the simulation room for firemission testing. /obj/structure/machinery/computer/dropship_weapons/proc/execute_firemission(obj/location, offset, dir, mission_id) var/result = firemission_envelope.execute_firemission(get_turf(location), offset, dir, mission_id) - if(result<1) + if(result != FIRE_MISSION_ALL_GOOD) return firemission_envelope.mission_error return "OK" diff --git a/code/game/cas_manager/datums/cas_fire_mission.dm b/code/game/cas_manager/datums/cas_fire_mission.dm index cb43caec30bb..f672dffed83a 100644 --- a/code/game/cas_manager/datums/cas_fire_mission.dm +++ b/code/game/cas_manager/datums/cas_fire_mission.dm @@ -1,20 +1,86 @@ /obj/effect/firemission_guidance invisibility = 101 - var/list/users + var/list/mob/users + var/camera_width = 11 + var/camera_height = 11 + var/view_range = 7 /obj/effect/firemission_guidance/New() ..() users = list() +/obj/effect/firemission_guidance/Destroy(force) + . = ..() + users = null + +/obj/effect/firemission_guidance/proc/can_use() + return TRUE + +/obj/effect/firemission_guidance/proc/isXRay() + return FALSE + +/obj/effect/firemission_guidance/proc/updateCameras(atom/target) + SEND_SIGNAL(target, COMSIG_CAMERA_SET_TARGET, src, camera_width, camera_height) + +/obj/effect/firemission_guidance/proc/clearCameras(atom/target) + SEND_SIGNAL(target, COMSIG_CAMERA_CLEAR) + /datum/cas_fire_mission var/mission_length = 3 //can be 3,4,6 or 12 var/list/datum/cas_fire_mission_record/records = list() var/obj/structure/dropship_equipment/weapon/error_weapon var/name = "Unnamed Firemission" +/datum/cas_fire_mission/ui_data(mob/user) + . = list() + .["name"] = sanitize(copytext(name, 1, MAX_MESSAGE_LEN)) + .["records"] = list() + for(var/datum/cas_fire_mission_record/record as anything in records) + .["records"] += list(record.ui_data(user)) + +/datum/cas_fire_mission/proc/build_new_record(obj/structure/dropship_equipment/weapon/weapon, fire_length) + var/datum/cas_fire_mission_record/record = new() + record.weapon = weapon + record.offsets = new /list(fire_length) + for(var/idx = 1; idx<=fire_length; idx++) + record.offsets[idx] = "-" + records += record + +/datum/cas_fire_mission/proc/update_weapons(list/obj/structure/dropship_equipment/weapon/weapons, fire_length) + var/list/datum/cas_fire_mission_record/bad_records = list() + var/list/obj/structure/dropship_equipment/weapon/missing_weapons = list() + for(var/datum/cas_fire_mission_record/record in records) + // if weapon appears in weapons list but not in record + // > add empty record for new weapon + var/found = FALSE + for(var/obj/structure/dropship_equipment/weapon/weapon in weapons) + if(record.weapon == weapon) + found=TRUE + break + if(!found) + bad_records.Add(record) + for(var/obj/structure/dropship_equipment/weapon/weapon in weapons) + var/found = FALSE + for(var/datum/cas_fire_mission_record/record in records) + if(record.weapon == weapon) + found=TRUE + break + if(!found) + missing_weapons.Add(weapon) + for(var/datum/cas_fire_mission_record/record in bad_records) + records -= record + for(var/obj/structure/dropship_equipment/weapon/weapon in missing_weapons) + build_new_record(weapon, fire_length) + +/datum/cas_fire_mission/proc/record_for_weapon(weapon_id) + for(var/datum/cas_fire_mission_record/record as anything in records) + if(record.weapon.ship_base.attach_id == weapon_id) + return record + return null + /datum/cas_fire_mission/proc/check(obj/structure/machinery/computer/dropship_weapons/linked_console) error_weapon = null - if(records.len == 0) + if(length(records) == 0) return FIRE_MISSION_ALL_GOOD //I mean yes... but why? for(var/datum/cas_fire_mission_record/record in records) @@ -39,7 +105,7 @@ var/i if(!record.offsets) continue - for(i=1,i<=record.offsets.len,i++) + for(i=1,i<=length(record.offsets),i++) if(cd > 0) cd-- if(record.offsets[i] == null || record.offsets[i] == "-") @@ -98,51 +164,6 @@ if(initial_turf == null || check(linked_console) != FIRE_MISSION_ALL_GOOD) return FIRE_MISSION_NOT_EXECUTABLE - var/obj/effect/firemission_effect = new(initial_turf) - - firemission_effect.icon = 'icons/obj/items/weapons/projectiles.dmi' - firemission_effect.icon_state = "laser_target2" - firemission_effect.mouse_opacity = MOUSE_OPACITY_TRANSPARENT - firemission_effect.invisibility = INVISIBILITY_MAXIMUM - QDEL_IN(firemission_effect, 5 SECONDS) - - notify_ghosts(header = "CAS Fire Mission", message = "[usr ? usr : "Someone"] is launching Fire Mission '[name]' at [get_area(initial_turf)].", source = firemission_effect) - msg_admin_niche("[usr ? key_name(usr) : "Someone"] is launching Fire Mission '[name]' at ([initial_turf.x],[initial_turf.y],[initial_turf.z]) [ADMIN_JMP(initial_turf)]") - - var/relative_dir - for(var/mob/M in range(15, initial_turf)) - if(get_turf(M) == initial_turf) - relative_dir = 0 - else - relative_dir = Get_Compass_Dir(M, initial_turf) - - var/ds_identifier = "LARGE BIRD" - if (M.mob_flags & KNOWS_TECHNOLOGY) - ds_identifier = "DROPSHIP" - - M.show_message( \ - SPAN_HIGHDANGER("A [ds_identifier] FLIES [SPAN_UNDERLINE(relative_dir ? uppertext(("TO YOUR " + dir2text(relative_dir))) : uppertext("right above you"))]!"), SHOW_MESSAGE_VISIBLE, \ - SPAN_HIGHDANGER("YOU HEAR SOMETHING GO [SPAN_UNDERLINE(relative_dir ? uppertext(("TO YOUR " + dir2text(relative_dir))) : uppertext("right above you"))]!"), SHOW_MESSAGE_AUDIBLE \ - ) - - // Xenos have time to react to the first message - sleep(0.5 SECONDS) - - for(var/mob/M in range(10, initial_turf)) - if(get_turf(M) == initial_turf) - relative_dir = 0 - else - relative_dir = Get_Compass_Dir(M, initial_turf) - - var/ds_identifier = "LARGE BIRD" - if (M.mob_flags & KNOWS_TECHNOLOGY) - ds_identifier = "DROPSHIP" - - M.show_message( \ - SPAN_HIGHDANGER("A [ds_identifier] FIRES [SPAN_UNDERLINE(relative_dir ? uppertext(("TO YOUR " + dir2text(relative_dir))) : uppertext("right above you"))]!"), 1, \ - SPAN_HIGHDANGER("YOU HEAR SOMETHING FIRE [SPAN_UNDERLINE(relative_dir ? uppertext(("TO YOUR " + dir2text(relative_dir))) : uppertext("right above you"))]!"), 2 \ - ) - var/turf/current_turf = initial_turf var/tally_step = steps / mission_length //how much shots we need before moving to next turf var/next_step = tally_step //when we move to next turf @@ -165,20 +186,20 @@ var/step = 1 for(step = 1; step<=steps; step++) if(step > next_step) - current_turf = get_step(current_turf,direction) + current_turf = get_step(current_turf, direction) next_step += tally_step if(envelope) envelope.change_current_loc(current_turf) var/datum/cas_fire_mission_record/item for(item in records) - if(item.offsets.len < step || item.offsets[step] == null || item.offsets[step]=="-") + if(length(item.offsets) < step || item.offsets[step] == null || item.offsets[step]=="-") continue var/offset = item.offsets[step] if (current_turf == null) return -1 var/turf/shootloc = locate(current_turf.x + sx*offset, current_turf.y + sy*offset, current_turf.z) - var/area/A = get_area(shootloc) - if(shootloc && !CEILING_IS_PROTECTED(A?.ceiling, CEILING_PROTECTION_TIER_3) && !protected_by_pylon(TURF_PROTECTION_CAS, shootloc)) + var/area/area = get_area(shootloc) + if(shootloc && !CEILING_IS_PROTECTED(area?.ceiling, CEILING_PROTECTION_TIER_3) && !protected_by_pylon(TURF_PROTECTION_CAS, shootloc)) item.weapon.open_fire_firemission(shootloc) sleep(step_delay) if(envelope) diff --git a/code/game/gamemodes/cm_initialize.dm b/code/game/gamemodes/cm_initialize.dm index 55452972cc3f..4a208b00a796 100644 --- a/code/game/gamemodes/cm_initialize.dm +++ b/code/game/gamemodes/cm_initialize.dm @@ -74,6 +74,7 @@ Additional game mode variables. var/monkey_amount = 0 //How many monkeys do we spawn on this map ? var/list/monkey_types = list() //What type of monkeys do we spawn var/latejoin_tally = 0 //How many people latejoined Marines + var/latejoin_larva_drop_early = LATEJOIN_MARINES_PER_LATEJOIN_LARVA_EARLY var/latejoin_larva_drop = LATEJOIN_MARINES_PER_LATEJOIN_LARVA //A larva will spawn in once the tally reaches this level. If set to 0, no latejoin larva drop /// Amount of latejoin_tally already awarded as larvas var/latejoin_larva_used = 0 @@ -117,7 +118,7 @@ Additional game mode variables. /datum/game_mode/proc/initialize_special_clamps() xeno_starting_num = clamp((GLOB.readied_players/CONFIG_GET(number/xeno_number_divider)), xeno_required_num, INFINITY) //(n, minimum, maximum) surv_starting_num = clamp((GLOB.readied_players/CONFIG_GET(number/surv_number_divider)), 2, 8) //this doesnt run - marine_starting_num = GLOB.player_list.len - xeno_starting_num - surv_starting_num + marine_starting_num = length(GLOB.player_list) - xeno_starting_num - surv_starting_num for(var/datum/squad/sq in GLOB.RoleAuthority.squads) if(sq) sq.max_engineers = engi_slot_formula(marine_starting_num) @@ -155,7 +156,7 @@ Additional game mode variables. else if(!istype(player,/mob/dead)) continue //Otherwise we just want to grab the ghosts. - if(GLOB.RoleAuthority.roles_whitelist[player.ckey] & WHITELIST_PREDATOR) //Are they whitelisted? + if(player?.client.check_whitelist_status(WHITELIST_PREDATOR)) //Are they whitelisted? if(!player.client.prefs) player.client.prefs = new /datum/preferences(player.client) //Somehow they don't have one. @@ -175,43 +176,46 @@ Additional game mode variables. if(pred_candidate) pred_candidate.moveToNullspace() //Nullspace it for garbage collection later. -#define calculate_pred_max (Floor(length(GLOB.player_list) / pred_per_players) + pred_additional_max + pred_start_count) - -/datum/game_mode/proc/check_predator_late_join(mob/pred_candidate, show_warning = 1) +/datum/game_mode/proc/calculate_pred_max() + return floor(length(GLOB.player_list) / pred_per_players) + pred_additional_max + pred_start_count +/datum/game_mode/proc/check_predator_late_join(mob/pred_candidate, show_warning = TRUE) if(!pred_candidate.client) return - var/datum/job/J = GLOB.RoleAuthority.roles_by_name[JOB_PREDATOR] + var/datum/job/pred_job = GLOB.RoleAuthority.roles_by_name[JOB_PREDATOR] - if(!J) - if(show_warning) to_chat(pred_candidate, SPAN_WARNING("Something went wrong!")) - return + if(!pred_job) + if(show_warning) + to_chat(pred_candidate, SPAN_WARNING("Something went wrong!")) + return FALSE - if(!(GLOB.RoleAuthority.roles_whitelist[pred_candidate.ckey] & WHITELIST_PREDATOR)) - if(show_warning) to_chat(pred_candidate, SPAN_WARNING("You are not whitelisted! You may apply on the forums to be whitelisted as a predator.")) - return + if(!(pred_candidate?.client.check_whitelist_status(WHITELIST_PREDATOR))) + if(show_warning) + to_chat(pred_candidate, SPAN_WARNING("You are not whitelisted! You may apply on the forums to be whitelisted as a predator.")) + return FALSE if(!(flags_round_type & MODE_PREDATOR)) - if(show_warning) to_chat(pred_candidate, SPAN_WARNING("There is no Hunt this round! Maybe the next one.")) - return + if(show_warning) + to_chat(pred_candidate, SPAN_WARNING("There is no Hunt this round! Maybe the next one.")) + return FALSE if(pred_candidate.ckey in predators) if(show_warning) to_chat(pred_candidate, SPAN_WARNING("You already were a Yautja! Give someone else a chance.")) - return + return FALSE - if(show_warning && tgui_alert(pred_candidate, "Confirm joining the hunt. You will join as \a [lowertext(J.get_whitelist_status(GLOB.RoleAuthority.roles_whitelist, pred_candidate.client))] predator", "Confirmation", list("Yes", "No"), 10 SECONDS) != "Yes") - return - if(J.get_whitelist_status(GLOB.RoleAuthority.roles_whitelist, pred_candidate.client) == WHITELIST_NORMAL) - var/pred_max = calculate_pred_max - if(pred_current_num >= pred_max) - if(show_warning) to_chat(pred_candidate, SPAN_WARNING("Only [pred_max] predators may spawn this round, but Councillors and Ancients do not count.")) - return + if(show_warning && tgui_alert(pred_candidate, "Confirm joining the hunt. You will join as \a [lowertext(pred_job.get_whitelist_status(pred_candidate.client))] predator", "Confirmation", list("Yes", "No"), 10 SECONDS) != "Yes") + return FALSE - return 1 + if(pred_job.get_whitelist_status(pred_candidate.client) == WHITELIST_NORMAL) + var/pred_max = calculate_pred_max() + if(pred_current_num >= pred_max) + if(show_warning) + to_chat(pred_candidate, SPAN_WARNING("Only [pred_max] predators may spawn this round, but Councillors and Ancients do not count.")) + return FALSE -#undef calculate_pred_max + return TRUE /datum/game_mode/proc/transform_predator(mob/pred_candidate) set waitfor = FALSE @@ -259,10 +263,10 @@ Additional game mode variables. //If we are selecting xenomorphs, we NEED them to play the round. This is the expected behavior. //If this is an optional behavior, just override this proc or make an override here. -/datum/game_mode/proc/initialize_starting_xenomorph_list(list/hives = list(XENO_HIVE_NORMAL), force_xenos = FALSE) +/datum/game_mode/proc/initialize_starting_xenomorph_list(list/hives = list(XENO_HIVE_NORMAL), bypass_checks = FALSE) var/list/datum/mind/possible_xenomorphs = get_players_for_role(JOB_XENOMORPH) var/list/datum/mind/possible_queens = get_players_for_role(JOB_XENOMORPH_QUEEN) - if(possible_xenomorphs.len < xeno_required_num) //We don't have enough aliens, we don't consider people rolling for only Queen. + if(length(possible_xenomorphs) < xeno_required_num && !bypass_checks) //We don't have enough aliens, we don't consider people rolling for only Queen. to_world("

      Not enough players have chosen to be a xenomorph in their character setup. Aborting.

      ") return @@ -309,14 +313,14 @@ Additional game mode variables. xenomorphs[hive] += new_xeno else //Out of candidates, fill the xeno hive with burrowed larva - remaining_slots = round((xeno_starting_num - i)) + remaining_slots = floor((xeno_starting_num - i)) break current_index++ if(remaining_slots) - var/larva_per_hive = round(remaining_slots / LAZYLEN(hives)) + var/larva_per_hive = floor(remaining_slots / LAZYLEN(hives)) for(var/hivenumb in hives) var/datum/hive_status/hive = GLOB.hive_datum[hivenumb] hive.stored_larva = larva_per_hive @@ -325,11 +329,11 @@ Additional game mode variables. Our list is empty. This can happen if we had someone ready as alien and predator, and predators are picked first. So they may have been removed from the list, oh well. */ - if(LAZYLEN(xenomorphs) < xeno_required_num && LAZYLEN(picked_queens) != LAZYLEN(hives)) + if(LAZYLEN(xenomorphs) < xeno_required_num && LAZYLEN(picked_queens) != LAZYLEN(hives) && !bypass_checks) to_world("

      Could not find any candidates after initial alien list pass. Aborting.

      ") return - return 1 + return TRUE // Helper proc to set some constants /proc/setup_new_xeno(datum/mind/new_xeno) @@ -350,7 +354,7 @@ Additional game mode variables. if(cur_xeno.aghosted) continue //aghosted xenos don't count var/area/area = get_area(cur_xeno) - if(is_admin_level(cur_xeno.z) && (!area || !(area.flags_area & AREA_ALLOW_XENO_JOIN))) + if(should_block_game_interaction(cur_xeno) && (!area || !(area.flags_area & AREA_ALLOW_XENO_JOIN))) continue //xenos on admin z level don't count if(!istype(cur_xeno)) continue @@ -384,35 +388,50 @@ Additional game mode variables. available_xenos += larva_option available_xenos[larva_option] = list(hive) - if(!available_xenos.len || (instant_join && !available_xenos_non_ssd.len)) - if(!xeno_candidate.client || !xeno_candidate.client.prefs || !(xeno_candidate.client.prefs.be_special & BE_ALIEN_AFTER_DEATH)) - to_chat(xeno_candidate, SPAN_WARNING("There aren't any available xenomorphs or burrowed larvae. You can try getting spawned as a chestburster larva by toggling your Xenomorph candidacy in Preferences -> Toggle SpecialRole Candidacy.")) + if(!length(available_xenos) || (instant_join && !length(available_xenos_non_ssd))) + if(!xeno_candidate.client?.prefs || !(xeno_candidate.client.prefs.be_special & BE_ALIEN_AFTER_DEATH)) + to_chat(xeno_candidate, SPAN_WARNING("There aren't any available xenomorphs or burrowed larvae. \ + You can try getting spawned as a chestburster larva by toggling your Xenomorph candidacy in \ + Preferences -> Toggle SpecialRole Candidacy.")) return FALSE to_chat(xeno_candidate, SPAN_WARNING("There aren't any available xenomorphs or burrowed larvae.")) - // Give the player a cached message of their queue status if they are an observer + if(!isobserver(xeno_candidate)) + return FALSE var/mob/dead/observer/candidate_observer = xeno_candidate - if(istype(candidate_observer)) - if(candidate_observer.larva_queue_cached_message) - to_chat(xeno_candidate, SPAN_XENONOTICE(candidate_observer.larva_queue_cached_message)) - return FALSE - // No cache, lets check now then - message_alien_candidates(get_alien_candidates(), dequeued = 0, cache_only = TRUE) - if(candidate_observer.larva_queue_cached_message) - var/datum/hive_status/cur_hive - for(var/hive_num in GLOB.hive_datum) - cur_hive = GLOB.hive_datum[hive_num] - for(var/mob_name in cur_hive.banished_ckeys) - if(cur_hive.banished_ckeys[mob_name] == xeno_candidate.ckey) - candidate_observer.larva_queue_cached_message += "\nNOTE: You are banished from the [cur_hive] and you may not rejoin unless the Queen re-admits you or dies. Your queue number won't update until there is a hive you aren't banished from." - break - to_chat(xeno_candidate, SPAN_XENONOTICE(candidate_observer.larva_queue_cached_message)) - return FALSE + // If an observing mod wants to join as a xeno, disable their larva protection so that they can enter the queue. + if(check_client_rights(candidate_observer.client, R_MOD, FALSE)) + candidate_observer.admin_larva_protection = FALSE + + // Give the player a cached message of their queue status if they are an observer + if(candidate_observer.larva_queue_cached_message) + to_chat(candidate_observer, SPAN_XENONOTICE(candidate_observer.larva_queue_cached_message)) + return FALSE - // We aren't in queue yet, lets teach them about the queue then - candidate_observer.larva_queue_cached_message = "You are currently awaiting assignment in the larva queue. The ordering is based on your time of death or the time you joined. When you have been dead long enough and are not inactive, you will periodically receive messages where you are in the queue relative to other currently valid xeno candidates. Your current position will shift as others change their preferences or go inactive, but your relative position compared to all observers is the same. Note: Playing as a facehugger or in the thunderdome will not alter your time of death. This means you won't lose your relative place in queue if you step away, disconnect, play as a facehugger, or play in the thunderdome." - to_chat(xeno_candidate, SPAN_XENONOTICE(candidate_observer.larva_queue_cached_message)) + // No cache, lets check now then + message_alien_candidates(get_alien_candidates(), dequeued = 0, cache_only = TRUE) + + // If we aren't in the queue yet, let's teach them about the queue + if(!candidate_observer.larva_queue_cached_message) + candidate_observer.larva_queue_cached_message = "You are currently awaiting assignment in the larva queue. \ + The ordering is based on your time of death or the time you joined. When you have been dead long enough and are not inactive, \ + you will periodically receive messages where you are in the queue relative to other currently valid xeno candidates. \ + Your current position will shift as others change their preferences or go inactive, but your relative position compared to all observers is the same. \ + Note: Playing as a facehugger or in the thunderdome will not alter your time of death. \ + This means you won't lose your relative place in queue if you step away, disconnect, play as a facehugger, or play in the thunderdome." + to_chat(candidate_observer, SPAN_XENONOTICE(candidate_observer.larva_queue_cached_message)) + return FALSE + + var/datum/hive_status/cur_hive + for(var/hive_num in GLOB.hive_datum) + cur_hive = GLOB.hive_datum[hive_num] + for(var/mob_name in cur_hive.banished_ckeys) + if(cur_hive.banished_ckeys[mob_name] == candidate_observer.ckey) + candidate_observer.larva_queue_cached_message += "\nNOTE: You are banished from the [cur_hive] and you may not rejoin unless \ + the Queen re-admits you or dies. Your queue number won't update until there is a hive you aren't banished from." + break + to_chat(candidate_observer, SPAN_XENONOTICE(candidate_observer.larva_queue_cached_message)) return FALSE var/mob/living/carbon/xenomorph/new_xeno @@ -505,16 +524,16 @@ Additional game mode variables. var/last_active_hive = 0 for(var/hivenumber in GLOB.hive_datum) hive = GLOB.hive_datum[hivenumber] - if(hive.totalXenos.len <= 0) + if(length(hive.totalXenos) <= 0) continue active_hives[hive.name] = hive.hivenumber last_active_hive = hive.hivenumber - if(active_hives.len <= 0) + if(length(active_hives) <= 0) to_chat(xeno_candidate, SPAN_WARNING("There aren't any Hives active at this point for you to join.")) return FALSE - if(active_hives.len > 1) + if(length(active_hives) > 1) var/hive_picked = tgui_input_list(xeno_candidate, "Select which Hive to attempt joining.", "Hive Choice", active_hives, theme="hive_status") if(!hive_picked) to_chat(xeno_candidate, SPAN_ALERT("Hive choice error. Aborting.")) @@ -539,7 +558,7 @@ Additional game mode variables. var/descriptive_name = "[morpher.name] in [area_name]" available_facehugger_sources[descriptive_name] = morpher - if(available_facehugger_sources.len <= 0) + if(length(available_facehugger_sources) <= 0) to_chat(xeno_candidate, SPAN_WARNING("There aren't any Carriers or Egg Morphers with available Facehuggers for you to join. Please try again later!")) return FALSE @@ -571,16 +590,16 @@ Additional game mode variables. var/last_active_hive = 0 for(var/hivenumber in GLOB.hive_datum) hive = GLOB.hive_datum[hivenumber] - if(hive.totalXenos.len <= 0) + if(length(hive.totalXenos) <= 0) continue active_hives[hive.name] = hive.hivenumber last_active_hive = hive.hivenumber - if(active_hives.len <= 0) + if(length(active_hives) <= 0) to_chat(xeno_candidate, SPAN_WARNING("There aren't any Hives active at this point for you to join.")) return FALSE - if(active_hives.len > 1) + if(length(active_hives) > 1) var/hive_picked = tgui_input_list(xeno_candidate, "Select which Hive to attempt joining.", "Hive Choice", active_hives, theme="hive_status") if(!hive_picked) to_chat(xeno_candidate, SPAN_ALERT("Hive choice error. Aborting.")) @@ -672,9 +691,9 @@ Additional game mode variables. return TRUE /// Pick and setup a queen spawn from landmarks, then spawns the player there alongside any required setup -/datum/game_mode/proc/pick_queen_spawn(datum/mind/ghost_mind, hivenumber = XENO_HIVE_NORMAL) +/datum/game_mode/proc/pick_queen_spawn(mob/player, hivenumber = XENO_HIVE_NORMAL) RETURN_TYPE(/turf) - + var/datum/mind/ghost_mind = player.mind var/mob/living/original = ghost_mind.current var/datum/hive_status/hive = GLOB.hive_datum[hivenumber] if(hive.living_xeno_queen || !original || !original.client) @@ -695,6 +714,9 @@ Additional game mode variables. spawn_list_map[spawn_name] = T var/selected_spawn = tgui_input_list(original, "Where do you want you and your hive to spawn?", "Queen Spawn", spawn_list_map, QUEEN_SPAWN_TIMEOUT, theme="hive_status") + if(hive.living_xeno_queen) + to_chat(original, SPAN_XENOANNOUNCE("You have taken too long to pick a spawn location, a queen has already evolved before you.")) + player.send_to_lobby() if(!selected_spawn) selected_spawn = pick(spawn_list_map) to_chat(original, SPAN_XENOANNOUNCE("You have taken too long to pick a spawn location, one has been chosen for you.")) @@ -734,8 +756,6 @@ Additional game mode variables. to_chat(new_queen, "You should start by building a hive core.") to_chat(new_queen, "Talk in Hivemind using ; (e.g. ';Hello my children!')") - // Xeno ressource collection - //new_queen.crystal_stored = XENO_STARTING_CRYSTAL new_queen.update_icons() //===================================================\\ @@ -806,7 +826,7 @@ Additional game mode variables. H.name = H.get_visible_name() if(!H.first_xeno) //Only give objectives/back-stories to uninfected survivors - if(spawner.intro_text && spawner.intro_text.len) + if(LAZYLEN(spawner.intro_text)) spawn(4) for(var/line in spawner.intro_text) to_chat(H, line) @@ -873,7 +893,7 @@ Additional game mode variables. var/story //The actual story they will get to read. var/random_name var/datum/mind/survivor - while(current_survivors.len) + while(length(current_survivors)) survivor = pick(current_survivors) if(!istype(survivor)) current_survivors -= survivor @@ -885,8 +905,8 @@ Additional game mode variables. current_survivors -= survivor continue - if(current_survivors.len > 1) //If we have another survivor to pick from. - if(survivor_multi_story.len) //Unlikely. + if(length(current_survivors) > 1) //If we have another survivor to pick from. + if(length(survivor_multi_story)) //Unlikely. var/datum/mind/another_survivor = pick(current_survivors - survivor) // We don't want them to be picked twice. current_survivors -= another_survivor if(!istype(another_survivor)) continue//If somehow this thing screwed up, we're going to run another pass. @@ -901,7 +921,7 @@ Additional game mode variables. to_chat(another_survivor.current, temp_story) another_survivor.memory += temp_story else - if(survivor_story.len) //Shouldn't happen, but technically possible. + if(length(survivor_story)) //Shouldn't happen, but technically possible. story = pick(survivor_story) survivor_story -= story spawn(6) @@ -928,7 +948,7 @@ Additional game mode variables. CVS.populate_product_list_and_boxes(gear_scale) //Scale the amount of cargo points through a direct multiplier - GLOB.supply_controller.points += round(GLOB.supply_controller.points_scale * gear_scale) + GLOB.supply_controller.points += floor(GLOB.supply_controller.points_scale * gear_scale) ///Returns a multiplier to the amount of gear that is to be distributed roundstart, stored in [/datum/game_mode/var/gear_scale] /datum/game_mode/proc/init_gear_scale() @@ -936,7 +956,7 @@ Additional game mode variables. var/marine_pop_size = 0 var/uscm_personnel_count = 0 for(var/mob/living/carbon/human/human as anything in GLOB.alive_human_list) - if(human.faction == FACTION_USCM) + if(human.faction == FACTION_MARINE) uscm_personnel_count++ var/datum/job/job = GET_MAPPED_ROLE(human.job) marine_pop_size += GLOB.RoleAuthority.calculate_role_weight(job) @@ -956,7 +976,7 @@ Additional game mode variables. gear_scale_max = gear_scale for(var/obj/structure/machinery/cm_vending/sorted/vendor as anything in GLOB.cm_vending_vendors) vendor.update_dynamic_stock(gear_scale_max) - GLOB.supply_controller.points += round(gear_delta * GLOB.supply_controller.points_scale) + GLOB.supply_controller.points += floor(gear_delta * GLOB.supply_controller.points_scale) /// Updates [var/latejoin_tally] and [var/gear_scale] based on role weights of latejoiners/cryoers. Delta is the amount of role positions added/removed /datum/game_mode/proc/latejoin_update(role, delta = 1) @@ -1003,18 +1023,22 @@ Additional game mode variables. to_chat(joe_candidate, SPAN_WARNING("Something went wrong!")) return - if(!(GLOB.RoleAuthority.roles_whitelist[joe_candidate.ckey] & WHITELIST_JOE)) + if(!joe_job.check_whitelist_status(joe_candidate)) if(show_warning) to_chat(joe_candidate, SPAN_WARNING("You are not whitelisted! You may apply on the forums to be whitelisted as a synth.")) return - if((joe_candidate.ckey in joes) && !MODE_HAS_TOGGLEABLE_FLAG(MODE_BYPASS_JOE)) - if(show_warning) - to_chat(joe_candidate, SPAN_WARNING("You already were a Working Joe this round!")) - return + if(MODE_HAS_TOGGLEABLE_FLAG(MODE_DISABLE_JOE_RESPAWN) && (joe_candidate.ckey in joes)) // No joe respawns if already a joe before + to_chat(joe_candidate, SPAN_WARNING("Working Joe respawns are disabled!")) + return FALSE + + var/deathtime = world.time - joe_candidate.timeofdeath + if((deathtime < JOE_JOIN_DEAD_TIME && (joe_candidate.ckey in joes)) && !MODE_HAS_TOGGLEABLE_FLAG(MODE_BYPASS_JOE)) + to_chat(joe_candidate, SPAN_WARNING("You have been dead for [DisplayTimeText(deathtime)]. You need to wait [DisplayTimeText(JOE_JOIN_DEAD_TIME - deathtime)] before rejoining as a Working Joe!")) + return FALSE // council doesn't count towards this conditional. - if(joe_job.get_whitelist_status(GLOB.RoleAuthority.roles_whitelist, joe_candidate.client) == WHITELIST_NORMAL) + if(joe_job.get_whitelist_status(joe_candidate.client) == WHITELIST_NORMAL) var/joe_max = joe_job.total_positions if((joe_job.current_positions >= joe_max) && !MODE_HAS_TOGGLEABLE_FLAG(MODE_BYPASS_JOE)) if(show_warning) diff --git a/code/game/gamemodes/cm_process.dm b/code/game/gamemodes/cm_process.dm index 462f82e99cec..d6519bbcd887 100644 --- a/code/game/gamemodes/cm_process.dm +++ b/code/game/gamemodes/cm_process.dm @@ -40,12 +40,12 @@ of predators), but can be added to include variant game modes (like humans vs. h set waitfor = 0 sleep(2 SECONDS) GLOB.fallen_list += GLOB.fallen_list_cross - if(GLOB.fallen_list.len) + if(length(GLOB.fallen_list)) var/dat = "
      " dat += SPAN_ROUNDBODY("In Flanders fields...
      ") dat += SPAN_CENTERBOLD("In memoriam of our fallen soldiers:
      ") - for(var/i = 1 to GLOB.fallen_list.len) - if(i != GLOB.fallen_list.len) + for(var/i = 1 to length(GLOB.fallen_list)) + if(i != length(GLOB.fallen_list)) dat += "[GLOB.fallen_list[i]], " else dat += "[GLOB.fallen_list[i]].
      " @@ -87,20 +87,20 @@ of predators), but can be added to include variant game modes (like humans vs. h /datum/game_mode/proc/declare_completion_announce_medal_awards() set waitfor = 0 sleep(2 SECONDS) - if(GLOB.medal_awards.len) + if(length(GLOB.medal_awards)) var/dat = "
      " dat += SPAN_ROUNDBODY("
      Medal Awards:") for(var/recipient in GLOB.medal_awards) var/datum/recipient_awards/recipient_award = GLOB.medal_awards[recipient] - for(var/i in 1 to recipient_award.medal_names.len) + for(var/i in 1 to length(recipient_award.medal_names)) dat += "
      [recipient_award.recipient_rank] [recipient] is awarded [recipient_award.posthumous[i] ? "posthumously " : ""]the [recipient_award.medal_names[i]]: \'[recipient_award.medal_citations[i]]\'." to_world(dat) - if(GLOB.jelly_awards.len) + if(length(GLOB.jelly_awards)) var/dat = "
      " dat += SPAN_ROUNDBODY("
      Royal Jelly Awards:") for(var/recipient in GLOB.jelly_awards) var/datum/recipient_awards/recipient_award = GLOB.jelly_awards[recipient] - for(var/i in 1 to recipient_award.medal_names.len) + for(var/i in 1 to length(recipient_award.medal_names)) dat += "
      [recipient] is awarded [recipient_award.posthumous[i] ? "posthumously " : ""]a [recipient_award.medal_names[i]]: \'[recipient_award.medal_citations[i]]\'[recipient_award.giver_rank[i] ? " by [recipient_award.giver_rank[i]]" : ""][recipient_award.giver_name[i] ? " ([recipient_award.giver_name[i]])" : ""]." to_world(dat) diff --git a/code/game/gamemodes/colonialmarines/colonialmarines.dm b/code/game/gamemodes/colonialmarines/colonialmarines.dm index bc5d6b69228c..14f5397b1f91 100644 --- a/code/game/gamemodes/colonialmarines/colonialmarines.dm +++ b/code/game/gamemodes/colonialmarines/colonialmarines.dm @@ -1,5 +1,6 @@ #define HIJACK_EXPLOSION_COUNT 5 -#define MARINE_MAJOR_ROUND_END_DELAY 3 MINUTES +#define MARINE_MAJOR_ROUND_END_DELAY (3 MINUTES) +#define LZ_HAZARD_START (3 MINUTES) /datum/game_mode/colonialmarines name = "Distress Signal" @@ -16,12 +17,13 @@ var/next_research_allocation = 0 var/next_stat_check = 0 var/list/running_round_stats = list() + var/list/lz_smoke = list() //////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////// /* Pre-pre-startup */ -/datum/game_mode/colonialmarines/can_start() +/datum/game_mode/colonialmarines/can_start(bypass_checks = FALSE) initialize_special_clamps() return TRUE @@ -87,7 +89,7 @@ new type_to_spawn(T) //desert river test - if(!round_toxic_river.len) + if(!length(round_toxic_river)) round_toxic_river = null //No tiles? else round_time_river = rand(-100,100) @@ -98,7 +100,7 @@ var/obj/structure/tunnel/T var/i = 0 var/turf/t - while(GLOB.xeno_tunnels.len && i++ < 3) + while(length(GLOB.xeno_tunnels) && i++ < 3) t = get_turf(pick_n_take(GLOB.xeno_tunnels)) T = new(t) T.id = "hole[i]" @@ -120,9 +122,122 @@ addtimer(CALLBACK(src, PROC_REF(ares_online)), 5 SECONDS) addtimer(CALLBACK(src, PROC_REF(map_announcement)), 20 SECONDS) + addtimer(CALLBACK(src, PROC_REF(start_lz_hazards)), LZ_HAZARD_START) return ..() +/datum/game_mode/colonialmarines/ds_first_landed(obj/docking_port/stationary/marine_dropship) + . = ..() + clear_lz_hazards() // This shouldn't normally do anything, but is here just in case + + // Assumption: Shuttle origin is its center + // Assumption: dwidth is atleast 2 and dheight is atleast 4 otherwise there will be overlap + var/list/options = list() + var/list/structures_to_break = list(/obj/structure/barricade, /obj/structure/surface/table, /obj/structure/bed) + var/bottom = marine_dropship.y - marine_dropship.dheight - 2 + var/top = marine_dropship.y + marine_dropship.dheight + 2 + var/left = marine_dropship.x - marine_dropship.dwidth - 2 + var/right = marine_dropship.x + marine_dropship.dwidth + 2 + var/z = marine_dropship.z + + // Bottom left + options += get_valid_sentry_turfs(left, bottom, z, width=5, height=2, structures_to_ignore=structures_to_break) + options += get_valid_sentry_turfs(left, bottom + 2, z, width=2, height=6, structures_to_ignore=structures_to_break) + spawn_lz_sentry(pick(options), structures_to_break) + + // Bottom right + options.Cut() + options += get_valid_sentry_turfs(right-4, bottom, z, width=5, height=2, structures_to_ignore=structures_to_break) + options += get_valid_sentry_turfs(right-1, bottom + 2, z, width=2, height=6, structures_to_ignore=structures_to_break) + spawn_lz_sentry(pick(options), structures_to_break) + + // Top left + options.Cut() + options += get_valid_sentry_turfs(left, top-1, z, width=5, height=2, structures_to_ignore=structures_to_break) + options += get_valid_sentry_turfs(left, top-7, z, width=2, height=6, structures_to_ignore=structures_to_break) + spawn_lz_sentry(pick(options), structures_to_break) + + // Top right + options.Cut() + options += get_valid_sentry_turfs(right-4, top-1, z, width=5, height=2, structures_to_ignore=structures_to_break) + options += get_valid_sentry_turfs(right-1, top-7, z, width=2, height=6, structures_to_ignore=structures_to_break) + spawn_lz_sentry(pick(options), structures_to_break) + +///Returns a list of non-dense turfs using the given block arguments ignoring the provided structure types +/datum/game_mode/colonialmarines/proc/get_valid_sentry_turfs(left, bottom, z, width, height, list/structures_to_ignore) + var/valid_turfs = list() + for(var/turf/turf as anything in block(left, bottom, z, left+width-1, bottom+height-1)) + if(turf.density) + continue + var/structure_blocking = FALSE + for(var/obj/structure/existing_structure in turf) + if(!existing_structure.density) + continue + if(!is_type_in_list(existing_structure, structures_to_ignore)) + structure_blocking = TRUE + break + if(structure_blocking) + continue + valid_turfs += turf + return valid_turfs + +///Spawns a droppod with a temporary defense sentry at the given turf +/datum/game_mode/colonialmarines/proc/spawn_lz_sentry(turf/target, list/structures_to_break) + var/obj/structure/droppod/equipment/sentry_holder/droppod = new(target, /obj/structure/machinery/sentry_holder/landing_zone) + droppod.special_structures_to_damage = structures_to_break + droppod.special_structure_damage = 500 + droppod.drop_time = 0 + droppod.launch(target) + +///Creates an OB warning at each LZ to warn of the miasma and then spawns the miasma +/datum/game_mode/colonialmarines/proc/start_lz_hazards() + if(SSobjectives.first_drop_complete) + return // Just for sanity + INVOKE_ASYNC(src, PROC_REF(warn_lz_hazard), locate(/obj/structure/machinery/computer/shuttle/dropship/flight/lz1)) + INVOKE_ASYNC(src, PROC_REF(warn_lz_hazard), locate(/obj/structure/machinery/computer/shuttle/dropship/flight/lz2)) + addtimer(CALLBACK(src, PROC_REF(spawn_lz_hazards)), OB_TRAVEL_TIMING + 1 SECONDS) + +///Creates an OB warning at each LZ to warn of the incoming miasma +/datum/game_mode/colonialmarines/proc/warn_lz_hazard(lz) + if(!lz) + return + var/turf/target = get_turf(lz) + if(!target) + return + var/obj/structure/ob_ammo/warhead/explosive/warhead = new + warhead.name = "\improper CN20-X miasma warhead" + warhead.clear_power = 0 + warhead.clear_falloff = 400 + warhead.standard_power = 0 + warhead.standard_falloff = 30 + warhead.clear_delay = 3 + warhead.double_explosion_delay = 6 + warhead.warhead_impact(target) // This is a blocking call + playsound(target, 'sound/effects/smoke.ogg', vol=50, vary=1, sound_range=75) + +///Spawns miasma smoke in landing zones +/datum/game_mode/colonialmarines/proc/spawn_lz_hazards() + var/datum/cause_data/new_cause_data = create_cause_data("CN20-X miasma") + for(var/area/area in GLOB.all_areas) + if(!area.is_landing_zone) + continue + if(!is_ground_level(area.z)) + continue + for(var/turf/turf in area) + if(turf.density) + if(!istype(turf, /turf/closed/wall)) + continue + var/turf/closed/wall/wall = turf + if(wall.hull) + continue + lz_smoke += new /obj/effect/particle_effect/smoke/miasma(turf, null, new_cause_data) + +///Clears miasma smoke in landing zones +/datum/game_mode/colonialmarines/proc/clear_lz_hazards() + for(var/obj/effect/particle_effect/smoke/miasma/smoke as anything in lz_smoke) + smoke.time_to_live = rand(1, 5) + lz_smoke.Cut() + #define MONKEYS_TO_TOTAL_RATIO 1/32 /datum/game_mode/colonialmarines/proc/spawn_smallhosts() @@ -134,7 +249,7 @@ if(!length(monkey_types)) return - var/amount_to_spawn = round(GLOB.players_preassigned * MONKEYS_TO_TOTAL_RATIO) + var/amount_to_spawn = floor(GLOB.players_preassigned * MONKEYS_TO_TOTAL_RATIO) for(var/i in 0 to min(amount_to_spawn, length(GLOB.monkey_spawns))) var/turf/T = get_turf(pick_n_take(GLOB.monkey_spawns)) @@ -265,7 +380,7 @@ continue if(groundside_humans > (groundside_xenos * GROUNDSIDE_XENO_MULTIPLIER)) - SSticker.mode.get_specific_call("Xenomorphs Groundside (Forsaken)", TRUE, FALSE) + SSticker.mode.get_specific_call(/datum/emergency_call/forsaken_xenos, TRUE, FALSE) // "Xenomorphs Groundside (Forsaken)" TIMER_COOLDOWN_START(src, COOLDOWN_HIJACK_GROUND_CHECK, 1 MINUTES) @@ -289,6 +404,7 @@ /datum/game_mode/colonialmarines/ds_first_drop(obj/docking_port/mobile/marine_dropship) addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(show_blurb_uscm)), DROPSHIP_DROP_MSG_DELAY) add_current_round_status_to_end_results("First Drop") + clear_lz_hazards() /////////////////////////// //Checks to see who won/// @@ -329,10 +445,13 @@ var/datum/hive_status/HS for(var/HN in GLOB.hive_datum) HS = GLOB.hive_datum[HN] - if(HS.living_xeno_queen && !is_admin_level(HS.living_xeno_queen.loc.z)) + if(HS.living_xeno_queen && !should_block_game_interaction(HS.living_xeno_queen.loc)) //Some Queen is alive, we shouldn't end the game yet return - round_finished = MODE_INFESTATION_M_MINOR + if(length(HS.totalXenos) <= 3) + round_finished = MODE_INFESTATION_M_MAJOR + else + round_finished = MODE_INFESTATION_M_MINOR /////////////////////////////// //Checks if the round is over// @@ -369,10 +488,16 @@ var/living = headcount["total_headcount"] if ((headcount["WY_headcount"] / living) > MAJORITY) musical_track = pick('sound/theme/lastmanstanding_wy.ogg') + log_game("3rd party victory: Weyland-Yutani") + message_admins("3rd party victory: Weyland-Yutani") else if ((headcount["UPP_headcount"] / living) > MAJORITY) musical_track = pick('sound/theme/lastmanstanding_upp.ogg') + log_game("3rd party victory: Union of Progressive Peoples") + message_admins("3rd party victory: Union of Progressive Peoples") else if ((headcount["CLF_headcount"] / living) > MAJORITY) musical_track = pick('sound/theme/lastmanstanding_clf.ogg') + log_game("3rd party victory: Colonial Liberation Front") + message_admins("3rd party victory: Colonial Liberation Front") else if ((headcount["marine_headcount"] / living) > MAJORITY) musical_track = pick('sound/theme/neutral_melancholy2.ogg') //This is the theme song for Colonial Marines the game, fitting else @@ -397,7 +522,7 @@ GLOB.round_statistics.game_mode = name GLOB.round_statistics.round_length = world.time GLOB.round_statistics.round_result = round_finished - GLOB.round_statistics.end_round_player_population = GLOB.clients.len + GLOB.round_statistics.end_round_player_population = length(GLOB.clients) GLOB.round_statistics.log_round_statistics() @@ -516,7 +641,7 @@ total_marines += squad_marines_job_report[job_type] total_squad_marines += squad_marines_job_report[job_type] incrementer++ - if(incrementer < squad_marines_job_report.len) + if(incrementer < length(squad_marines_job_report)) squad_marine_job_text += ", " var/auxiliary_marine_job_text = "" @@ -526,7 +651,7 @@ auxiliary_marine_job_text += "[job_type]: [auxiliary_marines_job_report[job_type]]" total_marines += auxiliary_marines_job_report[job_type] incrementer++ - if(incrementer < auxiliary_marines_job_report.len) + if(incrementer < length(auxiliary_marines_job_report)) auxiliary_marine_job_text += ", " var/total_non_standard = 0 @@ -537,7 +662,7 @@ non_standard_job_text += "[job_type]: [non_standard_job_report[job_type]]" total_non_standard += non_standard_job_report[job_type] incrementer++ - if(incrementer < non_standard_job_report.len) + if(incrementer < length(non_standard_job_report)) non_standard_job_text += ", " var/list/hive_xeno_numbers = list() @@ -551,7 +676,7 @@ hive_caste_text += "[hive_caste]: [per_hive_status[hive_caste]]" hive_amount += per_hive_status[hive_caste] incrementer++ - if(incrementer < per_hive_status.len) + if(incrementer < length(per_hive_status)) hive_caste_text += ", " if(hive_amount) hive_xeno_numbers[hive] = hive_amount diff --git a/code/game/gamemodes/colonialmarines/huntergames.dm b/code/game/gamemodes/colonialmarines/huntergames.dm index aad0f9ba5787..23344ee9e8f0 100644 --- a/code/game/gamemodes/colonialmarines/huntergames.dm +++ b/code/game/gamemodes/colonialmarines/huntergames.dm @@ -212,10 +212,10 @@ var/mob/living/carbon/human/H var/turf/picked - if(GLOB.hunter_primaries.len) + if(length(GLOB.hunter_primaries)) picked = get_turf(pick_n_take(GLOB.hunter_primaries)) else - if(GLOB.hunter_secondaries.len) + if(length(GLOB.hunter_secondaries)) picked = get_turf(pick_n_take(GLOB.hunter_secondaries)) else message_admins("There were no spawn points available for a contestant.") @@ -226,7 +226,7 @@ if(istype(M,/mob/living/carbon/human)) //somehow? H = M - if(H.contents.len) + if(length(H.contents)) for(var/obj/item/I in H.contents) qdel(I) H.forceMove(picked) @@ -244,7 +244,8 @@ H.skills = null //no restriction on what the contestants can do - H.apply_effect(15, WEAKEN) + H.KnockDown(15) + H.Stun(15) H.nutrition = NUTRITION_NORMAL var/randjob = rand(0,10) @@ -314,7 +315,7 @@ last_drop = world.time waiting_for_drop_votes = 1 sleep(600) - if(!supply_votes.len) + if(!length(supply_votes)) to_world(SPAN_ROUNDBODY("Nobody got anything! .. weird.")) waiting_for_drop_votes = 0 supply_votes = list() diff --git a/code/game/gamemodes/colonialmarines/whiskey_outpost.dm b/code/game/gamemodes/colonialmarines/whiskey_outpost.dm index 6ebda633a19b..b3fd079d638c 100644 --- a/code/game/gamemodes/colonialmarines/whiskey_outpost.dm +++ b/code/game/gamemodes/colonialmarines/whiskey_outpost.dm @@ -18,9 +18,9 @@ /datum/job/civilian/synthetic/whiskey = JOB_SYNTH, /datum/job/command/warrant/whiskey = JOB_CHIEF_POLICE, /datum/job/command/bridge/whiskey = JOB_SO, - /datum/job/command/tank_crew/whiskey = JOB_CREWMAN, + /datum/job/command/tank_crew/whiskey = JOB_TANK_CREW, /datum/job/command/police/whiskey = JOB_POLICE, - /datum/job/command/pilot/whiskey = JOB_PILOT, + /datum/job/command/pilot/whiskey = JOB_CAS_PILOT, /datum/job/logistics/requisition/whiskey = JOB_CHIEF_REQUISITION, /datum/job/civilian/professor/whiskey = JOB_CMO, /datum/job/civilian/doctor/whiskey = JOB_DOCTOR, @@ -194,16 +194,16 @@ announce_xeno_wave(wave) if(xeno_wave == 7) //Wave when Marines get reinforcements! - get_specific_call("Marine Reinforcements (Squad)", FALSE, TRUE) + get_specific_call(/datum/emergency_call/wo, FALSE, TRUE) // "Marine Reinforcements (Squad)" xeno_wave = min(xeno_wave + 1, WO_MAX_WAVE) /datum/game_mode/whiskey_outpost/proc/announce_xeno_wave(datum/whiskey_outpost_wave/wave_data) if(!istype(wave_data)) return - if(wave_data.command_announcement.len > 0) + if(length(wave_data.command_announcement) > 0) marine_announcement(wave_data.command_announcement[1], wave_data.command_announcement[2]) - if(wave_data.sound_effect.len > 0) + if(length(wave_data.sound_effect) > 0) playsound_z(SSmapping.levels_by_trait(ZTRAIT_GROUND), pick(wave_data.sound_effect)) //CHECK WIN @@ -262,7 +262,7 @@ GLOB.round_statistics.track_round_end() if(finished == 1) log_game("Round end result - xenos won") - to_world(SPAN_ROUND_HEADER("The Xenos have succesfully defended their hive from colonization.")) + to_world(SPAN_ROUND_HEADER("The Xenos have successfully defended their hive from colonization.")) to_world(SPAN_ROUNDBODY("Well done, you've secured LV-624 for the hive!")) to_world(SPAN_ROUNDBODY("It will be another five years before the USCM returns to the Neroid Sector, with the arrival of the 2nd 'Falling Falcons' Battalion and the USS Almayer.")) to_world(SPAN_ROUNDBODY("The xenomorph hive on LV-624 remains unthreatened until then...")) @@ -297,7 +297,7 @@ if(GLOB.round_statistics) GLOB.round_statistics.game_mode = name GLOB.round_statistics.round_length = world.time - GLOB.round_statistics.end_round_player_population = GLOB.clients.len + GLOB.round_statistics.end_round_player_population = length(GLOB.clients) GLOB.round_statistics.log_round_statistics() @@ -485,7 +485,7 @@ if(crate) crate.storage_capacity = 60 - if(randomitems.len) + if(length(randomitems)) for(var/i = 0; i < choosemax; i++) var/path = pick(randomitems) var/obj/I = new path(crate) @@ -520,8 +520,7 @@ return if(user.is_mob_incapacitated()) return - if(ismaintdrone(usr) || \ - istype(usr, /mob/living/carbon/xenomorph)) + if(istype(usr, /mob/living/carbon/xenomorph)) to_chat(usr, SPAN_DANGER("You don't have the dexterity to do this!")) return if(working) @@ -537,7 +536,7 @@ for(var/obj/O in T) if(istype(O,/obj/structure/closet/crate)) var/obj/structure/closet/crate/C = O - if(C.contents.len) + if(length(C.contents)) to_chat(user, SPAN_DANGER("[O] must be emptied before it can be recycled")) continue new /obj/item/stack/sheet/metal(get_step(src,dir)) @@ -779,7 +778,7 @@ return /obj/item/storage/box/attachments/update_icon() - if(!contents.len) + if(!length(contents)) var/turf/T = get_turf(src) if(T) new /obj/item/paper/crumpled(T) diff --git a/code/game/gamemodes/colonialmarines/whiskey_outpost/equipping.dm b/code/game/gamemodes/colonialmarines/whiskey_outpost/equipping.dm index eb3e46a2686b..d5ff07391b5e 100644 --- a/code/game/gamemodes/colonialmarines/whiskey_outpost/equipping.dm +++ b/code/game/gamemodes/colonialmarines/whiskey_outpost/equipping.dm @@ -76,7 +76,7 @@ You must lead his Honor guard, his elite unit of marines, to protect the command gear_preset = /datum/equipment_preset/wo/vhg /datum/job/command/bridge/whiskey/generate_entry_message(mob/living/carbon/human/H) - . = {"You were assigned to guard the commander in this hostile enviroment; that hasn't changed. Ensure your extra training and equipment isn't wasted! + . = {"You were assigned to guard the commander in this hostile environment; that hasn't changed. Ensure your extra training and equipment isn't wasted! You've survived through enough battles that you've been entrusted with more training, and can use overwatch consoles, as well as give orders. You're expected to defend not only the commander, but the bunker at large; leave the outside defenses to the marines. Glory to the commander. Glory to the USCM."} @@ -90,7 +90,7 @@ Glory to the commander. Glory to the USCM."} gear_preset = /datum/equipment_preset/wo/hgs /datum/job/command/tank_crew/whiskey/generate_entry_message(mob/living/carbon/human/H) - . = {"You were assigned to guard the commander in this hostile enviroment; that hasn't changed. Ensure your extra training and equipment isn't wasted! + . = {"You were assigned to guard the commander in this hostile environment; that hasn't changed. Ensure your extra training and equipment isn't wasted! You're expected to defend not only the commander, but the bunker at large; leave the outside defenses to the marines. You've been through much, and as such, have been given special-weapons training. Use it well. Glory to the commander. Glory to the USCM."} @@ -104,7 +104,7 @@ Glory to the commander. Glory to the USCM."} gear_preset = /datum/equipment_preset/wo/hg /datum/job/command/police/whiskey/generate_entry_message(mob/living/carbon/human/H) - . = {"You were assigned to guard the commander in this hostile enviroment; that hasn't changed. Ensure your extra training and equipment isn't wasted! + . = {"You were assigned to guard the commander in this hostile environment; that hasn't changed. Ensure your extra training and equipment isn't wasted! You're expected to defend not only the commander, but the bunker at large; leave the outside defenses to the marines. Glory to the commander. Glory to the USCM."} diff --git a/code/game/gamemodes/colonialmarines/whiskey_outpost/whiskey_output_waves.dm b/code/game/gamemodes/colonialmarines/whiskey_outpost/whiskey_output_waves.dm index 6e2738a83788..68b2a51e76e7 100644 --- a/code/game/gamemodes/colonialmarines/whiskey_outpost/whiskey_output_waves.dm +++ b/code/game/gamemodes/colonialmarines/whiskey_outpost/whiskey_output_waves.dm @@ -32,7 +32,7 @@ for(var/mob/living/carbon/xenomorph/X as anything in GLOB.living_xeno_list) var/area/A = get_area(X) - if(is_admin_level(X.z) && (!A || !(A.flags_area & AREA_ALLOW_XENO_JOIN)) || X.aghosted) continue //xenos on admin z level and aghosted ones don't count + if(should_block_game_interaction(X) && (!A || !(A.flags_area & AREA_ALLOW_XENO_JOIN)) || X.aghosted) continue //xenos on admin z level and aghosted ones don't count if(istype(X) && !X.client) if((X.away_timer >= XENO_LEAVE_TIMER) || (islarva(X) && X.away_timer >= XENO_LEAVE_TIMER_LARVA)) available_xenos += X @@ -43,7 +43,7 @@ available_xenos += unique_xenos - if(!available_xenos.len) + if(!length(available_xenos)) to_chat(xeno_candidate, SPAN_WARNING("There aren't any available xenomorphs.")) return FALSE @@ -198,7 +198,7 @@ wave_castes = list(XENO_CASTE_BURROWER) wave_type = WO_STATIC_WAVE number_of_xenos = 3 - command_announcement = list("First Lieutenant Ike Saker, Executive Officer of Captain Naiche, speaking. The Captain is still trying to try and get off world contact. An engineer platoon managed to destroy the main entrance into this valley this should give you a short break while the aliens find another way in. We are receiving reports of seismic waves occuring nearby, there might be creatures burrowing underground, keep an eye on your defenses. I have also received word that marines from an overrun outpost are evacuating to you and will help you. I used to be stationed with them, they are top notch!", "First Lieutenant Ike Saker, 3rd Battalion Command, LV-624 Garrison") + command_announcement = list("First Lieutenant Ike Saker, Executive Officer of Captain Naiche, speaking. The Captain is still trying to try and get off world contact. An engineer platoon managed to destroy the main entrance into this valley this should give you a short break while the aliens find another way in. We are receiving reports of seismic waves occurring nearby, there might be creatures burrowing underground, keep an eye on your defenses. I have also received word that marines from an overrun outpost are evacuating to you and will help you. I used to be stationed with them, they are top notch!", "First Lieutenant Ike Saker, 3rd Battalion Command, LV-624 Garrison") /datum/whiskey_outpost_wave/wave8 wave_number = 8 diff --git a/code/game/gamemodes/colonialmarines/xenovsxeno.dm b/code/game/gamemodes/colonialmarines/xenovsxeno.dm index a9ad48196257..e1672f362731 100644 --- a/code/game/gamemodes/colonialmarines/xenovsxeno.dm +++ b/code/game/gamemodes/colonialmarines/xenovsxeno.dm @@ -24,14 +24,14 @@ votable = FALSE // broken /* Pre-pre-startup */ -/datum/game_mode/xenovs/can_start() +/datum/game_mode/xenovs/can_start(bypass_checks = FALSE) for(var/hivename in SSmapping.configs[GROUND_MAP].xvx_hives) if(GLOB.readied_players > SSmapping.configs[GROUND_MAP].xvx_hives[hivename]) hives += hivename xeno_starting_num = GLOB.readied_players - if(!initialize_starting_xenomorph_list(hives, TRUE)) + if(!initialize_starting_xenomorph_list(hives, bypass_checks)) hives.Cut() - return + return FALSE return TRUE /datum/game_mode/xenovs/announce() @@ -44,8 +44,8 @@ /datum/game_mode/xenovs/pre_setup() monkey_types = SSmapping.configs[GROUND_MAP].monkey_types if(monkey_amount) - if(monkey_types.len) - for(var/i = min(round(monkey_amount*GLOB.clients.len), GLOB.monkey_spawns.len), i > 0, i--) + if(length(monkey_types)) + for(var/i = min(floor(monkey_amount*length(GLOB.clients)), length(GLOB.monkey_spawns)), i > 0, i--) var/turf/T = get_turf(pick_n_take(GLOB.monkey_spawns)) var/monkey_to_spawn = pick(monkey_types) @@ -154,7 +154,7 @@ var/mob/living/carbon/xenomorph/larva/L = new(xeno_turf, null, hivenumber) ghost_mind.transfer_to(L) -/datum/game_mode/xenovs/pick_queen_spawn(datum/mind/ghost_mind, hivenumber = XENO_HIVE_NORMAL) +/datum/game_mode/xenovs/pick_queen_spawn(mob/player, hivenumber = XENO_HIVE_NORMAL) . = ..() if(!.) return // Spawn additional hive structures @@ -265,7 +265,7 @@ if(GLOB.round_statistics) GLOB.round_statistics.game_mode = name GLOB.round_statistics.round_length = world.time - GLOB.round_statistics.end_round_player_population = GLOB.clients.len + GLOB.round_statistics.end_round_player_population = length(GLOB.clients) GLOB.round_statistics.log_round_statistics() diff --git a/code/game/gamemodes/events/power_failure.dm b/code/game/gamemodes/events/power_failure.dm index 5ebedd8fd26d..c8b80efe9b7f 100644 --- a/code/game/gamemodes/events/power_failure.dm +++ b/code/game/gamemodes/events/power_failure.dm @@ -74,16 +74,15 @@ if(announce) marine_announcement("Power has been restored. Reason: Unknown.", "Power Systems Nominal", 'sound/AI/poweron.ogg') -/proc/power_restore_ship_reactors(announce = 1) - for(var/obj/structure/machinery/power/fusion_engine/FE in GLOB.machines) - FE.buildstate = 0 - FE.is_on = 1 - FE.fusion_cell = new - FE.power_gen_percent = 98 - FE.update_icon() - FE.start_processing() - FE.power_change() +/proc/power_restore_ship_reactors(announce = TRUE) + for(var/obj/structure/machinery/power/reactor/reactor in GLOB.machines) + if(!is_mainship_level(reactor.z)) //Only ship reactors should be repaired + continue + reactor.buildstate = 0 + if(reactor.require_fusion_cell && !reactor.fusion_cell) + reactor.fusion_cell = new + reactor.power_gen_percent = 98 + reactor.start_functioning(TRUE) - sleep(100) if(announce) - marine_announcement("Power has been restored. Reason: Unknown.", "Power Systems Nominal", 'sound/AI/poweron.ogg') + addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(marine_announcement), "Power has been restored. Reason: Unknown.", "Power Systems Nominal", 'sound/AI/poweron.ogg'), 10 SECONDS) diff --git a/code/game/gamemodes/extended/extended.dm b/code/game/gamemodes/extended/extended.dm index 72512a7e77ff..f5b64571f98c 100644 --- a/code/game/gamemodes/extended/extended.dm +++ b/code/game/gamemodes/extended/extended.dm @@ -42,7 +42,7 @@ if(GLOB.round_statistics) GLOB.round_statistics.game_mode = name GLOB.round_statistics.round_length = world.time - GLOB.round_statistics.end_round_player_population = GLOB.clients.len + GLOB.round_statistics.end_round_player_population = length(GLOB.clients) GLOB.round_statistics.log_round_statistics() calculate_end_statistics() diff --git a/code/game/gamemodes/extended/infection.dm b/code/game/gamemodes/extended/infection.dm index 1e0032a8e6fa..1f641917d53f 100644 --- a/code/game/gamemodes/extended/infection.dm +++ b/code/game/gamemodes/extended/infection.dm @@ -45,9 +45,9 @@ if(transform_survivor(survivor) == 1) survivors -= survivor -/datum/game_mode/infection/can_start() +/datum/game_mode/infection/can_start(bypass_checks = FALSE) initialize_starting_survivor_list() - return 1 + return TRUE //We don't actually need survivors to play, so long as aliens are present. /datum/game_mode/infection/proc/initialize_starting_survivor_list() @@ -61,7 +61,7 @@ possible_synth_survivors -= A continue - if(GLOB.RoleAuthority.roles_whitelist[ckey(A.key)] & WHITELIST_SYNTHETIC) + if(A.current.client?.check_whitelist_status(WHITELIST_SYNTHETIC)) if(A in possible_survivors) continue //they are already applying to be a survivor else @@ -71,16 +71,16 @@ possible_synth_survivors -= A possible_survivors = shuffle(possible_survivors) //Shuffle them up a bit - if(possible_survivors.len) //We have some, it looks like. + if(length(possible_survivors)) //We have some, it looks like. for(var/datum/mind/A in possible_survivors) //Strip out any xenos first so we don't double-dip. if(A.roundstart_picked) possible_survivors -= A - if(possible_survivors.len) //We may have stripped out all the contendors, so check again. + if(length(possible_survivors)) //We may have stripped out all the contendors, so check again. var/i = surv_starting_num var/datum/mind/new_survivor while(i > 0) - if(!possible_survivors.len) + if(!length(possible_survivors)) break //Ran out of candidates! Can't have a null pick(), so just stick with what we have. new_survivor = pick(possible_survivors) if(!new_survivor) @@ -123,7 +123,7 @@ if(GLOB.round_statistics) GLOB.round_statistics.game_mode = name GLOB.round_statistics.round_length = world.time - GLOB.round_statistics.end_round_player_population = GLOB.clients.len + GLOB.round_statistics.end_round_player_population = length(GLOB.clients) GLOB.round_statistics.log_round_statistics() declare_completion_announce_xenomorphs() diff --git a/code/game/gamemodes/game_mode.dm b/code/game/gamemodes/game_mode.dm index 3bb8c2d80123..603f0313f840 100644 --- a/code/game/gamemodes/game_mode.dm +++ b/code/game/gamemodes/game_mode.dm @@ -50,19 +50,20 @@ GLOBAL_VAR_INIT(cas_tracking_id_increment, 0) //this var used to assign unique t ///can_start() ///Checks to see if the game can be setup and ran with the current number of players or whatnot. -/datum/game_mode/proc/can_start() - var/playerC = 0 +/datum/game_mode/proc/can_start(bypass_checks = FALSE) + if(bypass_checks) + return TRUE + var/players = 0 for(var/mob/new_player/player in GLOB.new_player_list) - if((player.client)&&(player.ready)) - playerC++ - - if(GLOB.master_mode=="secret") - if(playerC >= required_players_secret) - return 1 + if(player.client && player.ready) + players++ + if(GLOB.master_mode == "secret") + if(players >= required_players_secret) + return TRUE else - if(playerC >= required_players) - return 1 - return 0 + if(players >= required_players) + return TRUE + return FALSE ///pre_setup() @@ -107,7 +108,7 @@ GLOBAL_VAR_INIT(cas_tracking_id_increment, 0) //this var used to assign unique t log_game("Round started at [time2text(world.realtime)]") log_game("Operation time at round start is [worldtime2text()]") if(SSticker.mode) - log_game("Game mode set to [SSticker.mode]") + log_game("Game mode set to [SSticker.mode] on the [SSmapping.configs[GROUND_MAP].map_name] map") log_game("Server IP: [world.internet_address]:[world.port]") return TRUE diff --git a/code/game/jobs/access.dm b/code/game/jobs/access.dm index 0d10b06d5fef..5c10e8e7d934 100644 --- a/code/game/jobs/access.dm +++ b/code/game/jobs/access.dm @@ -61,7 +61,7 @@ gen_access() if(!islist(req_access)) return 1//something's very wrong var/L[] = req_access - if(!L.len && (!req_one_access || !req_one_access.len)) return 1//no requirements + if(!length(L) && !LAZYLEN(req_one_access)) return 1//no requirements if(!I) return var/list/A = I.GetAccess() @@ -69,7 +69,7 @@ if(!(i in A)) return FALSE//doesn't have this access - if(req_one_access && req_one_access.len) + if(LAZYLEN(req_one_access)) for(var/i in req_one_access) if(i in A) return TRUE//has an access from the single access list @@ -80,14 +80,14 @@ gen_access() if(!req_access && !req_one_access) return 1 if(!islist(req_access)) return 1 - if(!req_access.len && !islist(req_one_access)) + if(!length(req_access) && !islist(req_one_access)) return TRUE - if(!req_access.len && (!req_one_access || !req_one_access.len)) return 1 + if(!length(req_access) && !LAZYLEN(req_one_access)) return 1 if(!islist(L)) return var/i for(i in req_access) if(!(i in L)) return //doesn't have this access - if(req_one_access && req_one_access.len) + if(LAZYLEN(req_one_access)) for(i in req_one_access) if(i in L) return 1//has an access from the single access list return @@ -212,6 +212,7 @@ ACCESS_WY_PMC_TL, ACCESS_WY_ARMORY, ACCESS_WY_SECRETS, + ACCESS_WY_DATABASE, ACCESS_WY_LEADERSHIP, ACCESS_WY_SENIOR_LEAD, ) + get_access(ACCESS_LIST_COLONIAL_ALL) @@ -236,6 +237,7 @@ ACCESS_WY_PMC, ACCESS_WY_PMC_TL, ACCESS_WY_ARMORY, + ACCESS_WY_DATABASE, ACCESS_WY_LEADERSHIP, ACCESS_WY_SENIOR_LEAD, ) + get_access(ACCESS_LIST_COLONIAL_ALL) @@ -446,6 +448,40 @@ if(ACCESS_ARES_DEBUG) return "AI Debug" +/proc/get_region_accesses_wy(code) + switch(code) + if(0)//Everything + return get_access(ACCESS_LIST_WY_ALL) + if(1)//Corporate General + return list(ACCESS_WY_GENERAL, ACCESS_WY_COLONIAL, ACCESS_WY_EXEC) + if(2)//Corporate Security + return list(ACCESS_WY_SECURITY, ACCESS_WY_ARMORY) + if(3)//Corporate Departments + return list(ACCESS_WY_MEDICAL, ACCESS_WY_ENGINEERING, ACCESS_WY_FLIGHT, ACCESS_WY_RESEARCH) + if(4)//Corporate Leadership + return list(ACCESS_WY_LEADERSHIP, ACCESS_WY_SENIOR_LEAD, ACCESS_WY_SECRETS, ACCESS_WY_DATABASE) + if(5)//PMCs + return list(ACCESS_WY_PMC, ACCESS_WY_PMC_TL, ACCESS_WY_ARMORY) + if(6)//Civilian + return get_access(ACCESS_LIST_COLONIAL_ALL) + +/proc/get_region_accesses_name_wy(code) + switch(code) + if(0) + return "All" + if(1) + return "Corporate" // Security + if(2) + return "Corporate Security" // Medbay + if(3) + return "Corporate Departments" // Research + if(4) + return "Corporate Leadership" // Engineering + if(5) + return "Corporate PMCs" // Command + if(6) + return "Civilian" // Civilian + /proc/get_weyland_access_desc(A) switch(A) if(ACCESS_WY_GENERAL) @@ -463,7 +499,7 @@ if(ACCESS_WY_RESEARCH) return "Wey-Yu Research" if(ACCESS_WY_EXEC) - return "Wey-Yu Corporate" + return "Wey-Yu Executive" if(ACCESS_WY_PMC) return "Wey-Yu PMC" if(ACCESS_WY_PMC_TL) @@ -472,7 +508,23 @@ return "Wey-Yu Armory" if(ACCESS_WY_SECRETS) return "Wey-Yu HighSec" + if(ACCESS_WY_DATABASE) + return "Wey-Yu Database" if(ACCESS_WY_LEADERSHIP) return "Wey-Yu Leadership" if(ACCESS_WY_SENIOR_LEAD) return "Wey-Yu Senior Leadership" + if(ACCESS_CIVILIAN_RESEARCH) + return "Civilian Research" + if(ACCESS_CIVILIAN_COMMAND) + return "Civilian Command" + if(ACCESS_CIVILIAN_MEDBAY) + return "Civilian Medbay" + if(ACCESS_CIVILIAN_LOGISTICS) + return "Civilian Logistics" + if(ACCESS_CIVILIAN_ENGINEERING) + return "Civilian Engineering" + if(ACCESS_CIVILIAN_BRIG) + return "Civilian Brig" + if(ACCESS_CIVILIAN_PUBLIC) + return "Civilian" diff --git a/code/game/jobs/job/antag/other/pred.dm b/code/game/jobs/job/antag/other/pred.dm index 77439276d04a..967ef73a7d1f 100644 --- a/code/game/jobs/job/antag/other/pred.dm +++ b/code/game/jobs/job/antag/other/pred.dm @@ -22,7 +22,7 @@ ) /datum/job/antag/predator/set_spawn_positions(count) - spawn_positions = max((round(count * PREDATOR_TO_TOTAL_SPAWN_RATIO)), 4) + spawn_positions = max((floor(count * PREDATOR_TO_TOTAL_SPAWN_RATIO)), 4) total_positions = spawn_positions /datum/job/antag/predator/spawn_and_equip(mob/new_player/player) @@ -31,11 +31,7 @@ SSticker.mode.attempt_to_join_as_predator(player) -/datum/job/antag/predator/get_whitelist_status(list/roles_whitelist, client/player) // Might be a problem waiting here, but we've got no choice - . = ..() - if(!.) - return - +/datum/job/antag/predator/get_whitelist_status(client/player) // Might be a problem waiting here, but we've got no choice if(!player.clan_info) return CLAN_RANK_BLOODED @@ -49,10 +45,7 @@ if(!("[JOB_PREDATOR][rank]" in gear_preset_whitelist)) return CLAN_RANK_BLOODED - if(\ - (roles_whitelist[player.ckey] & (WHITELIST_YAUTJA_LEADER|WHITELIST_YAUTJA_COUNCIL|WHITELIST_YAUTJA_COUNCIL_LEGACY)) &&\ - get_desired_status(player.prefs.yautja_status, WHITELIST_COUNCIL) == WHITELIST_NORMAL\ - ) + if(player.check_whitelist_status(WHITELIST_YAUTJA_LEADER|WHITELIST_YAUTJA_COUNCIL|WHITELIST_YAUTJA_COUNCIL_LEGACY) && get_desired_status(player.prefs.yautja_status, WHITELIST_COUNCIL) == WHITELIST_NORMAL) return CLAN_RANK_BLOODED return rank diff --git a/code/game/jobs/job/antag/xeno/queen.dm b/code/game/jobs/job/antag/xeno/queen.dm index 5702f9b1a671..144f8e42e6ad 100644 --- a/code/game/jobs/job/antag/xeno/queen.dm +++ b/code/game/jobs/job/antag/xeno/queen.dm @@ -9,8 +9,8 @@ /datum/job/antag/xenos/queen/set_spawn_positions(count) return spawn_positions -/datum/job/antag/xenos/queen/transform_to_xeno(mob/new_player/NP, hive_index) - SSticker.mode.pick_queen_spawn(NP.mind, hive_index) +/datum/job/antag/xenos/queen/transform_to_xeno(mob/living/carbon/human/human_to_transform, hive_index) + SSticker.mode.pick_queen_spawn(human_to_transform, hive_index) /datum/job/antag/xenos/queen/announce_entry_message(mob/new_queen, account, whitelist_status) to_chat(new_queen, "You are now the alien queen!") diff --git a/code/game/jobs/job/antag/xeno/xenomorph.dm b/code/game/jobs/job/antag/xeno/xenomorph.dm index 78b6ab7e3ab2..eeca16bc7f90 100644 --- a/code/game/jobs/job/antag/xeno/xenomorph.dm +++ b/code/game/jobs/job/antag/xeno/xenomorph.dm @@ -13,10 +13,10 @@ total_positions = -1 /datum/job/antag/xenos/proc/calculate_extra_spawn_positions(count) - return max((round(count * XENO_TO_TOTAL_SPAWN_RATIO)), 0) + return max((floor(count * XENO_TO_TOTAL_SPAWN_RATIO)), 0) /datum/job/antag/xenos/set_spawn_positions(count) - spawn_positions = max((round(count * XENO_TO_TOTAL_SPAWN_RATIO)), 1) + spawn_positions = max((floor(count * XENO_TO_TOTAL_SPAWN_RATIO)), 1) total_positions = spawn_positions /datum/job/antag/xenos/spawn_in_player(mob/new_player/NP) diff --git a/code/game/jobs/job/civilians/other/survivors.dm b/code/game/jobs/job/civilians/other/survivors.dm index 23097e139eda..87b7fcb2b18f 100644 --- a/code/game/jobs/job/civilians/other/survivors.dm +++ b/code/game/jobs/job/civilians/other/survivors.dm @@ -14,7 +14,7 @@ var/hostile = FALSE /datum/job/civilian/survivor/set_spawn_positions(count) - spawn_positions = Clamp((round(count * SURVIVOR_TO_TOTAL_SPAWN_RATIO)), 2, 8) + spawn_positions = clamp((floor(count * SURVIVOR_TO_TOTAL_SPAWN_RATIO)), 2, 8) total_positions = spawn_positions /datum/job/civilian/survivor/equip_job(mob/living/survivor) @@ -85,6 +85,8 @@ if(hostile) to_chat(survivor, SPAN_HIGHDANGER("You are HOSTILE to the USCM!")) + else if(survivor.faction == FACTION_CLF) + to_chat(survivor, SPAN_HIGHDANGER("You are HOSTILE to the USCM, but NOT to other survivors!")) else to_chat(survivor, SPAN_XENOHIGHDANGER("You are NON-HOSTILE to the USCM!")) @@ -185,7 +187,7 @@ AddTimelock(/datum/job/civilian/survivor, list( /datum/job/civilian/survivor/commanding_officer/set_spawn_positions() var/list/CO_survivor_types = SSmapping.configs[GROUND_MAP].CO_survivor_types - if(CO_survivor_types.len) + if(length(CO_survivor_types)) total_positions = 1 spawn_positions = 1 return spawn_positions diff --git a/code/game/jobs/job/civilians/support/cmo.dm b/code/game/jobs/job/civilians/support/cmo.dm index 835f16f7d814..b75f840ac895 100644 --- a/code/game/jobs/job/civilians/support/cmo.dm +++ b/code/game/jobs/job/civilians/support/cmo.dm @@ -6,7 +6,7 @@ selection_class = "job_cmo" flags_startup_parameters = ROLE_ADD_TO_DEFAULT gear_preset = /datum/equipment_preset/uscm_ship/uscm_medical/cmo - entry_message_body = "You're a commissioned officer of the USCM. You have authority over everything related to Medbay and Research, only able to be overriden by the XO and CO. You are in charge of medical staff, surgery, chemistry, stimulants and keeping the marines healthy overall." + entry_message_body = "You're a commissioned officer of the USCM. You have authority over everything related to Medbay and Research, only able to be overridden by the XO and CO. You are in charge of medical staff, surgery, chemistry, stimulants and keeping the marines healthy overall." AddTimelock(/datum/job/civilian/professor, list( JOB_MEDIC_ROLES = 10 HOURS diff --git a/code/game/jobs/job/civilians/support/synthetic.dm b/code/game/jobs/job/civilians/support/synthetic.dm index 70060fb36a15..12e50ef6c809 100644 --- a/code/game/jobs/job/civilians/support/synthetic.dm +++ b/code/game/jobs/job/civilians/support/synthetic.dm @@ -19,16 +19,16 @@ "[JOB_SYNTH][WHITELIST_LEADER]" = /datum/equipment_preset/synth/uscm/councillor ) -/datum/job/civilian/synthetic/get_whitelist_status(list/roles_whitelist, client/player) +/datum/job/civilian/synthetic/get_whitelist_status(client/player) . = ..() if(!.) return - if(roles_whitelist[player.ckey] & WHITELIST_SYNTHETIC_LEADER) + if(player.check_whitelist_status(WHITELIST_SYNTHETIC_LEADER)) return get_desired_status(player.prefs.synth_status, WHITELIST_LEADER) - else if(roles_whitelist[player.ckey] & (WHITELIST_SYNTHETIC_COUNCIL|WHITELIST_SYNTHETIC_COUNCIL_LEGACY)) + if(player.check_whitelist_status(WHITELIST_SYNTHETIC_COUNCIL|WHITELIST_SYNTHETIC_COUNCIL_LEGACY)) return get_desired_status(player.prefs.synth_status, WHITELIST_COUNCIL) - else if(roles_whitelist[player.ckey] & WHITELIST_SYNTHETIC) + if(player.check_whitelist_status(WHITELIST_SYNTHETIC)) return get_desired_status(player.prefs.synth_status, WHITELIST_NORMAL) /datum/job/civilian/synthetic/set_spawn_positions(count) diff --git a/code/game/jobs/job/civilians/support/working_joe.dm b/code/game/jobs/job/civilians/support/working_joe.dm index bc8f8c439900..d890b3684084 100644 --- a/code/game/jobs/job/civilians/support/working_joe.dm +++ b/code/game/jobs/job/civilians/support/working_joe.dm @@ -17,6 +17,12 @@ job_options = list(STANDARD_VARIANT = "JOE", HAZMAT_VARIANT = "HAZ") var/standard = TRUE +/datum/job/civilian/working_joe/check_whitelist_status(mob/user) + if(user.client.check_whitelist_status(WHITELIST_SYNTHETIC)) + return TRUE + + return ..() + /datum/job/civilian/working_joe/handle_job_options(option) if(option != HAZMAT_VARIANT) standard = TRUE diff --git a/code/game/jobs/job/command/auxiliary/cas_pilot.dm b/code/game/jobs/job/command/auxiliary/cas_pilot.dm new file mode 100644 index 000000000000..083766576ad4 --- /dev/null +++ b/code/game/jobs/job/command/auxiliary/cas_pilot.dm @@ -0,0 +1,24 @@ +/datum/job/command/pilot/cas_pilot + title = JOB_CAS_PILOT + total_positions = 1 + spawn_positions = 1 + allow_additional = TRUE + scaled = TRUE + supervisors = "the auxiliary support officer" + flags_startup_parameters = ROLE_ADD_TO_DEFAULT + gear_preset = /datum/equipment_preset/uscm_ship/gp + entry_message_body = "Your job is to fly, protect, and maintain the ship's gunship. While you are an officer, your authority is limited to the dropship, where you have authority over the enlisted personnel." + +/datum/job/command/pilot/whiskey + total_positions = 2 + spawn_positions = 2 + +// Dropship Roles is both DP, GP and DCC combined to not force people to backtrack +AddTimelock(/datum/job/command/pilot/cas_pilot, list( + JOB_DROPSHIP_ROLES = 2 HOURS +)) + +/obj/effect/landmark/start/pilot/cas_pilot + name = JOB_CAS_PILOT + icon_state = "po_spawn" + job = /datum/job/command/pilot/cas_pilot diff --git a/code/game/jobs/job/command/auxiliary/crew_chief.dm b/code/game/jobs/job/command/auxiliary/crew_chief.dm index 0770bcd60ffa..2608d8847966 100644 --- a/code/game/jobs/job/command/auxiliary/crew_chief.dm +++ b/code/game/jobs/job/command/auxiliary/crew_chief.dm @@ -10,7 +10,8 @@ entry_message_body = "Your job is to assist the pilot officer maintain the ship's dropship. You have authority only on the dropship, but you are expected to maintain order, as not to disrupt the pilot." AddTimelock(/datum/job/command/crew_chief, list( - JOB_SQUAD_ROLES = 5 HOURS + JOB_SQUAD_ROLES = 5 HOURS, + JOB_MEDIC_ROLES = 1 HOURS )) /obj/effect/landmark/start/crew_chief diff --git a/code/game/jobs/job/command/auxiliary/dropship_pilot.dm b/code/game/jobs/job/command/auxiliary/dropship_pilot.dm new file mode 100644 index 000000000000..2fda9a680094 --- /dev/null +++ b/code/game/jobs/job/command/auxiliary/dropship_pilot.dm @@ -0,0 +1,20 @@ +/datum/job/command/pilot/dropship_pilot + title = JOB_DROPSHIP_PILOT + total_positions = 1 + spawn_positions = 1 + allow_additional = TRUE + scaled = TRUE + supervisors = "the auxiliary support officer" + flags_startup_parameters = ROLE_ADD_TO_DEFAULT + gear_preset = /datum/equipment_preset/uscm_ship/dp + entry_message_body = "Your job is to fly, protect, and maintain the ship's transport dropship. While you are an officer, your authority is limited to the dropship, where you have authority over the enlisted personnel. If you are not piloting, there is an autopilot fallback for command, but don't leave the dropship without reason." + +// Dropship Roles is both DP, GP and DCC combined to not force people to backtrack +AddTimelock(/datum/job/command/pilot/dropship_pilot, list( + JOB_DROPSHIP_ROLES = 2 HOURS +)) + +/obj/effect/landmark/start/pilot/dropship_pilot + name = JOB_DROPSHIP_PILOT + icon_state = "po_spawn" + job = /datum/job/command/pilot/dropship_pilot diff --git a/code/game/jobs/job/command/auxiliary/pilot.dm b/code/game/jobs/job/command/auxiliary/pilot.dm deleted file mode 100644 index 1a7a7c21d5a0..000000000000 --- a/code/game/jobs/job/command/auxiliary/pilot.dm +++ /dev/null @@ -1,20 +0,0 @@ -/datum/job/command/pilot - title = JOB_PILOT - total_positions = 2 - spawn_positions = 2 - allow_additional = TRUE - scaled = TRUE - supervisors = "the auxiliary support officer" - flags_startup_parameters = ROLE_ADD_TO_DEFAULT - gear_preset = /datum/equipment_preset/uscm_ship/po - entry_message_body = "Your job is to fly, protect, and maintain the ship's dropship. While you are an officer, your authority is limited to the dropship, where you have authority over the enlisted personnel. If you are not piloting, there is an autopilot fallback for command, but don't leave the dropship without reason." - -// Dropship Roles is both PO and DCC combined to not force people to backtrack -AddTimelock(/datum/job/command/pilot, list( - JOB_DROPSHIP_ROLES = 2 HOURS -)) - -/obj/effect/landmark/start/pilot - name = JOB_PILOT - icon_state = "po_spawn" - job = /datum/job/command/pilot diff --git a/code/game/jobs/job/command/auxiliary/tank_crew.dm b/code/game/jobs/job/command/auxiliary/tank_crew.dm new file mode 100644 index 000000000000..88b289d48ace --- /dev/null +++ b/code/game/jobs/job/command/auxiliary/tank_crew.dm @@ -0,0 +1,28 @@ +/datum/job/command/tank_crew + title = JOB_TANK_CREW + total_positions = 2 + spawn_positions = 2 + allow_additional = TRUE + scaled = TRUE + supervisors = "the acting commanding officer" + flags_startup_parameters = ROLE_ADD_TO_DEFAULT + gear_preset = /datum/equipment_preset/uscm/tank + entry_message_body = "Your job is to operate and maintain the ship's armored vehicles. You are in charge of representing the armored presence amongst the marines during the operation, as well as maintaining and repairing your own vehicles." + +/datum/job/command/tank_crew/set_spawn_positions(count) + if (length(GLOB.clients) >= 200) + spawn_positions = 2 + else + spawn_positions = 0 + +/datum/job/command/tank_crew/get_total_positions(latejoin = FALSE) + if(SStechtree.trees[TREE_MARINE].get_node(/datum/tech/arc).unlocked) + return 0 + if(length(GLOB.clients) >= 200 || total_positions_so_far > 0) + return 2 + + return 0 + +/obj/effect/landmark/start/tank_crew + name = JOB_TANK_CREW + job = /datum/job/command/tank_crew diff --git a/code/game/jobs/job/command/cic/captain.dm b/code/game/jobs/job/command/cic/captain.dm index 72f861351912..30fa455beeee 100644 --- a/code/game/jobs/job/command/cic/captain.dm +++ b/code/game/jobs/job/command/cic/captain.dm @@ -19,16 +19,16 @@ entry_message_body = "You are the Commanding Officer of the [MAIN_SHIP_NAME] as well as the operation. Your goal is to lead the Marines on their mission as well as protect and command the ship and her crew. Your job involves heavy roleplay and requires you to behave like a high-ranking officer and to stay in character at all times. As the Commanding Officer your only superior is High Command itself. You must abide by the Commanding Officer Code of Conduct. Failure to do so may result in punitive action against you. Godspeed." return ..() -/datum/job/command/commander/get_whitelist_status(list/roles_whitelist, client/player) +/datum/job/command/commander/get_whitelist_status(client/player) . = ..() if(!.) return - if(roles_whitelist[player.ckey] & WHITELIST_COMMANDER_LEADER) + if(player.check_whitelist_status(WHITELIST_COMMANDER_LEADER|WHITELIST_COMMANDER_COLONEL)) return get_desired_status(player.prefs.commander_status, WHITELIST_LEADER) - else if(roles_whitelist[player.ckey] & (WHITELIST_COMMANDER_COUNCIL|WHITELIST_COMMANDER_COUNCIL_LEGACY)) + if(player.check_whitelist_status(WHITELIST_COMMANDER_COUNCIL|WHITELIST_COMMANDER_COUNCIL_LEGACY)) return get_desired_status(player.prefs.commander_status, WHITELIST_COUNCIL) - else if(roles_whitelist[player.ckey] & WHITELIST_COMMANDER) + if(player.check_whitelist_status(WHITELIST_COMMANDER)) return get_desired_status(player.prefs.commander_status, WHITELIST_NORMAL) /datum/job/command/commander/announce_entry_message(mob/living/carbon/human/H) diff --git a/code/game/jobs/job/command/cic/staffofficer.dm b/code/game/jobs/job/command/cic/staffofficer.dm index 94769de2158f..c73270944c3a 100644 --- a/code/game/jobs/job/command/cic/staffofficer.dm +++ b/code/game/jobs/job/command/cic/staffofficer.dm @@ -23,8 +23,17 @@ total_positions_so_far = positions return positions -/datum/job/command/bridge/generate_entry_message(mob/living/carbon/human/H) - return ..() + +/datum/job/command/bridge/generate_entry_conditions(mob/living/M, whitelist_status) + . = ..() + if(!islist(GLOB.marine_leaders[JOB_SO])) + GLOB.marine_leaders[JOB_SO] = list() + GLOB.marine_leaders[JOB_SO] += M + RegisterSignal(M, COMSIG_PARENT_QDELETING, PROC_REF(cleanup_leader_candidate)) + +/datum/job/command/bridge/proc/cleanup_leader_candidate(mob/M) + SIGNAL_HANDLER + GLOB.marine_leaders[JOB_SO] -= M AddTimelock(/datum/job/command/bridge, list( JOB_SQUAD_LEADER = 1 HOURS, diff --git a/code/game/jobs/job/command/police/chief_police.dm b/code/game/jobs/job/command/police/chief_police.dm index 63e6d8023f17..ecc8af38526c 100644 --- a/code/game/jobs/job/command/police/chief_police.dm +++ b/code/game/jobs/job/command/police/chief_police.dm @@ -5,6 +5,16 @@ flags_startup_parameters = ROLE_ADD_TO_DEFAULT gear_preset = /datum/equipment_preset/uscm_ship/uscm_police/cmp entry_message_body = "You are held by a higher standard and are required to obey not only the server rules but the Marine Law. Failure to do so may result in a job ban or server ban. You lead the Military Police, ensure your officers maintain peace and stability aboard the ship. Marines can get rowdy after a few weeks of cryosleep! In addition, you are tasked with the security of high-ranking personnel, including the command staff. Keep them safe!" + var/mob/living/carbon/human/active_cmp + +/datum/job/command/warrant/generate_entry_conditions(mob/living/cmp, whitelist_status) + . = ..() + active_cmp = cmp + RegisterSignal(cmp, COMSIG_PARENT_QDELETING, PROC_REF(cleanup_active_cmp)) + +/datum/job/command/warrant/proc/cleanup_active_cmp(mob/cmp) + SIGNAL_HANDLER + active_cmp = null AddTimelock(/datum/job/command/warrant, list( JOB_POLICE_ROLES = 15 HOURS, diff --git a/code/game/jobs/job/job.dm b/code/game/jobs/job/job.dm index 56decd8f0c02..0af315fc3b9d 100644 --- a/code/game/jobs/job/job.dm +++ b/code/game/jobs/job/job.dm @@ -66,10 +66,7 @@ return "" return "[CONFIG_GET(string/wikiarticleurl)]/[replacetext(title, " ", "_")]" -/datum/job/proc/get_whitelist_status(list/roles_whitelist, client/player) - if(!roles_whitelist) - return FALSE - +/datum/job/proc/get_whitelist_status(client/player) return WHITELIST_NORMAL /datum/timelock @@ -179,7 +176,7 @@ var/datum/money_account/generated_account //Give them an account in the database. if(!(flags_startup_parameters & ROLE_NO_ACCOUNT)) - var/obj/item/card/id/card = account_user.wear_id + var/obj/item/card/id/card = account_user.get_idcard() var/user_has_preexisting_account = account_user.mind?.initial_account if(card && !user_has_preexisting_account) var/datum/paygrade/account_paygrade = GLOB.paygrades[card.paygrade] @@ -191,7 +188,7 @@ remembered_info += "Your account pin is: [generated_account.remote_access_pin]
      " remembered_info += "Your account funds are: $[generated_account.money]
      " - if(generated_account.transaction_log.len) + if(length(generated_account.transaction_log)) var/datum/transaction/T = generated_account.transaction_log[1] remembered_info += "Your account was created: [T.time], [T.date] at [T.source_terminal]
      " account_user.mind.store_memory(remembered_info) @@ -237,32 +234,10 @@ if(!istype(NP)) return - NP.spawning = TRUE - NP.close_spawn_windows() - var/mob/living/carbon/human/new_character = new(NP.loc) new_character.lastarea = get_area(NP.loc) - NP.client.prefs.copy_all_to(new_character, title) - - if (NP.client.prefs.be_random_body) - var/datum/preferences/TP = new() - TP.randomize_appearance(new_character) - - new_character.job = NP.job - new_character.name = NP.real_name - new_character.voice = NP.real_name - - if(NP.mind) - NP.mind_initialize() - NP.mind.transfer_to(new_character, TRUE) - NP.mind.setup_human_stats() - - // Update the character icons - // This is done in set_species when the mob is created as well, but - INVOKE_ASYNC(new_character, TYPE_PROC_REF(/mob/living/carbon/human, regenerate_icons)) - INVOKE_ASYNC(new_character, TYPE_PROC_REF(/mob/living/carbon/human, update_body), 1, 0) - INVOKE_ASYNC(new_character, TYPE_PROC_REF(/mob/living/carbon/human, update_hair)) + setup_human(new_character, NP) return new_character @@ -274,7 +249,7 @@ var/mob/living/carbon/human/human = M var/job_whitelist = title - var/whitelist_status = get_whitelist_status(GLOB.RoleAuthority.roles_whitelist, human.client) + var/whitelist_status = get_whitelist_status(human.client) if(whitelist_status) job_whitelist = "[title][whitelist_status]" @@ -336,3 +311,10 @@ /// Intended to be overwritten to handle any requirements for specific job variations that can be selected /datum/job/proc/filter_job_option(mob/job_applicant) return job_options + +/datum/job/proc/check_whitelist_status(mob/user) + if(!(flags_startup_parameters & ROLE_WHITELISTED)) + return TRUE + + if(user.client.check_whitelist_status(flags_whitelist)) + return TRUE diff --git a/code/game/jobs/job/marine/squad/standard.dm b/code/game/jobs/job/marine/squad/standard.dm index 2fcd8a3cdd28..a926c3370a4b 100644 --- a/code/game/jobs/job/marine/squad/standard.dm +++ b/code/game/jobs/job/marine/squad/standard.dm @@ -12,7 +12,7 @@ return ..() /datum/job/marine/standard/set_spawn_positions(count) - spawn_positions = max((round(count * STANDARD_MARINE_TO_TOTAL_SPAWN_RATIO)), 8) + spawn_positions = max((floor(count * STANDARD_MARINE_TO_TOTAL_SPAWN_RATIO)), 8) /datum/job/marine/standard/whiskey title = JOB_WO_SQUAD_MARINE diff --git a/code/game/jobs/job/marine/squad_info.dm b/code/game/jobs/job/marine/squad_info.dm index 7e7dfcc0229a..37db48c3116e 100644 --- a/code/game/jobs/job/marine/squad_info.dm +++ b/code/game/jobs/job/marine/squad_info.dm @@ -9,7 +9,7 @@ return GLOB.not_incapacitated_state /datum/squad/ui_data(mob/user) - if(!squad_info_data.len) //initial first update of data + if(!length(squad_info_data)) //initial first update of data update_all_squad_info() if(squad_info_data["total_mar"] != count) //updates for new marines update_free_mar() @@ -130,7 +130,7 @@ //fireteam and TL update /datum/squad/proc/update_fireteam(team) - squad_info_data["fireteams"][team]["total"] = fireteams[team].len + squad_info_data["fireteams"][team]["total"] = length(fireteams[team]) if(squad_info_data["fireteams"][team]["total"] < 1) squad_info_data["fireteams"][team]["tl"] = list() squad_info_data["fireteams"][team]["mar"] = list() @@ -197,7 +197,7 @@ squad_info_data["total_kia"] = 0 var/mar_free = count for(var/team in fireteams) - mar_free -= fireteams[team].len + mar_free -= length(fireteams[team]) if(squad_leader) mar_free-- for(var/list/freeman in squad_info_data["mar_free"]) diff --git a/code/game/jobs/job/marine/squads.dm b/code/game/jobs/job/marine/squads.dm index 5eac0586eb34..75f6622506a9 100644 --- a/code/game/jobs/job/marine/squads.dm +++ b/code/game/jobs/job/marine/squads.dm @@ -34,11 +34,11 @@ /// If uses the overlay var/use_stripe_overlay = TRUE /// Color for the squad marines gear overlays - var/equipment_color = "#FFFFFF" + var/equipment_color = COLOR_WHITE /// The alpha for the armor overlay used by equipment color var/armor_alpha = 125 /// Color for the squad marines langchat - var/chat_color = "#FFFFFF" + var/chat_color = COLOR_WHITE /// Which special access do we grant them var/list/access = list() /// Can use any squad vendor regardless of squad connection @@ -221,6 +221,18 @@ roundstart = FALSE locked = TRUE +/datum/squad/marine/forecon + name = SQUAD_FORECON + equipment_color = "#32CD32" + chat_color = "#32CD32" + radio_freq = FORECON_FREQ + minimap_color = "#32CD32" + + active = FALSE + roundstart = FALSE + locked = TRUE + + //############################### UPP Squads /datum/squad/upp name = "Root" @@ -400,17 +412,17 @@ /// Displays a message to squad members directly on the game map /datum/squad/proc/send_maptext(text = "", title_text = "", only_leader = 0) - var/message_colour = chat_color + var/message_color = chat_color if(only_leader) if(squad_leader) if(!squad_leader.stat && squad_leader.client) playsound_client(squad_leader.client, 'sound/effects/radiostatic.ogg', squad_leader.loc, 25, FALSE) - squad_leader.play_screen_text("[title_text]
      " + text, /atom/movable/screen/text/screen_text/command_order, message_colour) + squad_leader.play_screen_text("[title_text]
      " + text, /atom/movable/screen/text/screen_text/command_order, message_color) else for(var/mob/living/carbon/human/marine in marines_list) if(!marine.stat && marine.client) //Only living and connected people in our squad playsound_client(marine.client, 'sound/effects/radiostatic.ogg', marine.loc, 25, FALSE) - marine.play_screen_text("[title_text]
      " + text, /atom/movable/screen/text/screen_text/command_order, message_colour) + marine.play_screen_text("[title_text]
      " + text, /atom/movable/screen/text/screen_text/command_order, message_color) /// Displays a message to the squad members in chat /datum/squad/proc/send_message(text = "", plus_name = 0, only_leader = 0) @@ -452,7 +464,7 @@ var/obj/item/card/id/C = ID if(!C) - C = M.wear_id + C = M.get_idcard() if(!C) C = M.get_active_hand() if(!istype(C)) @@ -554,7 +566,7 @@ return //not assigned to the correct squad var/obj/item/card/id/C = ID if(!istype(C)) - C = M.wear_id + C = M.get_idcard() if(!istype(C)) return FALSE //Abort, no ID found @@ -637,9 +649,9 @@ R.keys -= key qdel(key) R.recalculateChannels() - if(istype(old_lead.wear_id, /obj/item/card/id)) - var/obj/item/card/id/ID = old_lead.wear_id - ID.access -= ACCESS_MARINE_LEADER + var/obj/item/card/id/card = old_lead.get_idcard() + if(card) + card.access -= ACCESS_MARINE_LEADER REMOVE_TRAITS_IN(old_lead, TRAIT_SOURCE_SQUAD_LEADER) old_lead.hud_set_squad() old_lead.update_inv_head() //updating marine helmet leader overlays @@ -649,7 +661,7 @@ //Not a safe proc. Returns null if squads or jobs aren't set up. //Mostly used in the marine squad console in marine_consoles.dm. /proc/get_squad_by_name(text) - if(!GLOB.RoleAuthority || GLOB.RoleAuthority.squads.len == 0) + if(!GLOB.RoleAuthority || length(GLOB.RoleAuthority.squads) == 0) return null var/datum/squad/S for(S in GLOB.RoleAuthority.squads) diff --git a/code/game/jobs/job/special/uscm.dm b/code/game/jobs/job/special/uscm.dm index 2308c5af2961..751322539f77 100644 --- a/code/game/jobs/job/special/uscm.dm +++ b/code/game/jobs/job/special/uscm.dm @@ -1,5 +1,7 @@ /datum/job/special/uscm/colonel title = JOB_COLONEL +/datum/job/special/uscm/observer + title = JOB_USCM_OBSV /datum/job/special/uscm/general title = JOB_GENERAL /datum/job/special/uscm/acmc diff --git a/code/game/jobs/job/special/weyland_yutani.dm b/code/game/jobs/job/special/weyland_yutani.dm new file mode 100644 index 000000000000..d5f47331ca29 --- /dev/null +++ b/code/game/jobs/job/special/weyland_yutani.dm @@ -0,0 +1,110 @@ +/datum/job/special/wey_yu + supervisors = "Weyland-Yutani Corporate Office" + title = "Weyland-Yutani Representative" + selection_class = "job_cl" + flags_startup_parameters = ROLE_CUSTOM_SPAWN + gear_preset = /datum/equipment_preset/wy/trainee + +/datum/job/special/wey_yu/corporate/trainee + title = JOB_TRAINEE + gear_preset = /datum/equipment_preset/wy/trainee + +/datum/job/special/wey_yu/corporate/junior_exec + title = JOB_JUNIOR_EXECUTIVE + gear_preset = /datum/equipment_preset/wy/junior_exec + +/datum/job/special/wey_yu/corporate/exec + title = JOB_EXECUTIVE + gear_preset = /datum/equipment_preset/wy/exec + +/datum/job/special/wey_yu/corporate/senior_exec + title = JOB_SENIOR_EXECUTIVE + gear_preset = /datum/equipment_preset/wy/senior_exec + +/datum/job/special/wey_yu/corporate/exec_spec + title = JOB_EXECUTIVE_SPECIALIST + gear_preset = /datum/equipment_preset/wy/exec_spec + +/datum/job/special/wey_yu/corporate/exec_supr + title = JOB_EXECUTIVE_SUPERVISOR + gear_preset = /datum/equipment_preset/wy/exec_supervisor + +/datum/job/special/wey_yu/corporate/assist_man + title = JOB_ASSISTANT_MANAGER + gear_preset = /datum/equipment_preset/wy/manager/assistant_manager + +/datum/job/special/wey_yu/corporate/div_man + title = JOB_DIVISION_MANAGER + gear_preset = /datum/equipment_preset/wy/manager/division_manager + supervisors = "Weyland-Yutani Directorate" + +/datum/job/special/wey_yu/corporate/chief_exec + title = JOB_CHIEF_EXECUTIVE + gear_preset = /datum/equipment_preset/wy/manager/chief_executive + supervisors = "Weyland-Yutani Directorate" + +/datum/job/special/wey_yu/corporate/director + title = JOB_DIRECTOR + gear_preset = /datum/equipment_preset/wy/manager/director + supervisors = "Weyland-Yutani Directorate" + + +// PMCS // +/datum/job/special/wey_yu/pmc + supervisors = "Weyland-Yutani PMC Dispatch" + +/datum/job/special/wey_yu/pmc/standard + title = JOB_PMC_STANDARD + gear_preset = /datum/equipment_preset/pmc/pmc_standard + +/datum/job/special/wey_yu/pmc/medic + title = JOB_PMC_MEDIC + gear_preset = /datum/equipment_preset/pmc/pmc_medic + +/datum/job/special/wey_yu/pmc/engineer + title = JOB_PMC_ENGINEER + gear_preset = /datum/equipment_preset/pmc/technician + +/datum/job/special/wey_yu/pmc/gunner + title = JOB_PMC_GUNNER + gear_preset = /datum/equipment_preset/pmc/pmc_gunner + +/datum/job/special/wey_yu/pmc/sniper + title = JOB_PMC_SNIPER + gear_preset = /datum/equipment_preset/pmc/pmc_sniper + +/datum/job/special/wey_yu/pmc/leader + title = JOB_PMC_LEADER + gear_preset = /datum/equipment_preset/pmc/pmc_leader + +/datum/job/special/wey_yu/pmc/investigator + title = JOB_PMC_INVESTIGATOR + gear_preset = /datum/equipment_preset/pmc/pmc_med_investigator + +/datum/job/special/wey_yu/pmc/lead_invest + title = JOB_PMC_LEAD_INVEST + gear_preset = /datum/equipment_preset/pmc/pmc_lead_investigator + +/datum/job/special/wey_yu/pmc/detainer + title = JOB_PMC_DETAINER + gear_preset = /datum/equipment_preset/pmc/pmc_detainer + +/datum/job/special/wey_yu/pmc/crewman + title = JOB_PMC_CREWMAN + gear_preset = /datum/equipment_preset/pmc/pmc_crewman + +/datum/job/special/wey_yu/pmc/doctor + title = JOB_PMC_DOCTOR + gear_preset = /datum/equipment_preset/pmc/doctor + +/datum/job/special/wey_yu/pmc/handler + title = JOB_PMC_XENO_HANDLER + gear_preset = /datum/equipment_preset/pmc/xeno_handler + +/datum/job/special/wey_yu/pmc/synth + title = JOB_PMC_SYNTH + gear_preset = /datum/equipment_preset/pmc/synth + +/datum/job/special/wey_yu/pmc/director + title = JOB_PMC_DIRECTOR + gear_preset = /datum/equipment_preset/pmc/director diff --git a/code/game/jobs/role_authority.dm b/code/game/jobs/role_authority.dm index 37131451ca07..b4894eda4d24 100644 --- a/code/game/jobs/role_authority.dm +++ b/code/game/jobs/role_authority.dm @@ -36,7 +36,6 @@ GLOBAL_VAR_INIT(players_preassigned, 0) var/list/roles_by_path //Master list generated when role aithority is created, listing every role by path, including variable roles. Great for manually equipping with. var/list/roles_by_name //Master list generated when role authority is created, listing every default role by name, including those that may not be regularly selected. var/list/roles_for_mode //Derived list of roles only for the game mode, generated when the round starts. - var/list/roles_whitelist //Associated list of lists, by ckey. Checks to see if a person is whitelisted for a specific role. var/list/castes_by_path //Master list generated when role aithority is created, listing every caste by path. var/list/castes_by_name //Master list generated when role authority is created, listing every default caste by name. @@ -62,7 +61,6 @@ GLOBAL_VAR_INIT(players_preassigned, 0) /datum/job/special/uaac, /datum/job/special/uaac/tis, /datum/job/special/uscm, - /datum/job/command/tank_crew //Rip VC ) var/squads_all[] = typesof(/datum/squad) - /datum/squad var/castes_all[] = subtypesof(/datum/caste_datum) @@ -116,57 +114,6 @@ GLOBAL_VAR_INIT(players_preassigned, 0) squads += S squads_by_type[S.type] = S - load_whitelist() - - -/datum/authority/branch/role/proc/load_whitelist(filename = "config/role_whitelist.txt") - var/L[] = file2list(filename) - var/P[] - var/W[] = new //We want a temporary whitelist list, in case we need to reload. - - var/i - var/r - var/ckey - var/role - roles_whitelist = list() - for(i in L) - if(!i) continue - i = trim(i) - if(!length(i)) continue - else if (copytext(i, 1, 2) == "#") continue - - P = splittext(i, "+") - if(!P.len) continue - ckey = ckey(P[1]) //Converting their key to canonical form. ckey() does this by stripping all spaces, underscores and converting to lower case. - - role = NO_FLAGS - r = 1 - while(++r <= P.len) - switch(ckey(P[r])) - if("yautja") role |= WHITELIST_YAUTJA - if("yautjalegacy") role |= WHITELIST_YAUTJA_LEGACY - if("yautjacouncil") role |= WHITELIST_YAUTJA_COUNCIL - if("yautjacouncillegacy") role |= WHITELIST_YAUTJA_COUNCIL_LEGACY - if("yautjaleader") role |= WHITELIST_YAUTJA_LEADER - if("commander") role |= WHITELIST_COMMANDER - if("commandercouncil") role |= WHITELIST_COMMANDER_COUNCIL - if("commandercouncillegacy") role |= WHITELIST_COMMANDER_COUNCIL_LEGACY - if("commanderleader") role |= WHITELIST_COMMANDER_LEADER - if("workingjoe") role |= WHITELIST_JOE - if("synthetic") role |= (WHITELIST_SYNTHETIC|WHITELIST_JOE) - if("syntheticcouncil") role |= WHITELIST_SYNTHETIC_COUNCIL - if("syntheticcouncillegacy") role |= WHITELIST_SYNTHETIC_COUNCIL_LEGACY - if("syntheticleader") role |= WHITELIST_SYNTHETIC_LEADER - if("advisor") role |= WHITELIST_MENTOR - if("allgeneral") role |= WHITELISTS_GENERAL - if("allcouncil") role |= (WHITELISTS_COUNCIL|WHITELISTS_GENERAL) - if("alllegacycouncil") role |= (WHITELISTS_LEGACY_COUNCIL|WHITELISTS_GENERAL) - if("everything", "allleader") role |= WHITELIST_EVERYTHING - - W[ckey] = role - - roles_whitelist = W - //#undef FACTION_TO_JOIN /* @@ -268,6 +215,7 @@ I hope it's easier to tell what the heck this proc is even doing, unlike previou var/datum/job/PJ = temp_roles_for_mode[JOB_PREDATOR] if(istype(PJ)) PJ.set_spawn_positions(GLOB.players_preassigned) + REDIS_PUBLISH("byond.round", "type" = "predator-round", "map" = SSmapping.configs[GROUND_MAP].map_name) // Assign the roles, this time for real, respecting limits we have established. var/list/roles_left = assign_roles(temp_roles_for_mode, unassigned_players) @@ -383,7 +331,7 @@ I hope it's easier to tell what the heck this proc is even doing, unlike previou var/i = 0 var/j while(++i < 3) //Get two passes. - if(!roles_to_iterate.len || prob(65)) break //Base chance to become a marine when being assigned randomly, or there are no roles available. + if(!length(roles_to_iterate) || prob(65)) break //Base chance to become a marine when being assigned randomly, or there are no roles available. j = pick(roles_to_iterate) J = roles_to_iterate[j] @@ -414,7 +362,7 @@ I hope it's easier to tell what the heck this proc is even doing, unlike previou return FALSE if(!J.can_play_role(M.client)) return FALSE - if(J.flags_startup_parameters & ROLE_WHITELISTED && !(roles_whitelist[M.ckey] & J.flags_whitelist)) + if(!J.check_whitelist_status(M)) return FALSE if(J.total_positions != -1 && J.get_total_positions(latejoin) <= J.current_positions) return FALSE @@ -517,7 +465,7 @@ I hope it's easier to tell what the heck this proc is even doing, unlike previou new_job.handle_job_options(new_human.client.prefs.pref_special_job_options[new_job.title]) var/job_whitelist = new_job.title - var/whitelist_status = new_job.get_whitelist_status(roles_whitelist, new_human.client) + var/whitelist_status = new_job.get_whitelist_status(new_human.client) if(whitelist_status) job_whitelist = "[new_job.title][whitelist_status]" @@ -585,7 +533,7 @@ I hope it's easier to tell what the heck this proc is even doing, unlike previou //Find which squad has the least population. If all 4 squads are equal it should just use a random one /datum/authority/branch/role/proc/get_lowest_squad(mob/living/carbon/human/H) - if(!squads.len) //Something went wrong, our squads aren't set up. + if(!length(squads)) //Something went wrong, our squads aren't set up. to_world("Warning, something messed up in get_lowest_squad(). No squads set up!") return null @@ -594,7 +542,7 @@ I hope it's easier to tell what the heck this proc is even doing, unlike previou var/list/squads_copy = squads.Copy() var/list/mixed_squads = list() - for(var/i= 1 to squads_copy.len) + for(var/i= 1 to length(squads_copy)) var/datum/squad/S = pick_n_take(squads_copy) if (S.roundstart && S.usable && S.faction == H.faction && S.name != "Root") mixed_squads += S @@ -638,7 +586,7 @@ I hope it's easier to tell what the heck this proc is even doing, unlike previou if(!H) return - if(!squads.len) + if(!length(squads)) to_chat(H, "Something went wrong with your squad randomizer! Tell a coder!") return //Shit, where's our squad data @@ -649,7 +597,7 @@ I hope it's easier to tell what the heck this proc is even doing, unlike previou var/list/squads_copy = squads.Copy() var/list/mixed_squads = list() // The following code removes non useable squads from the lists of squads we assign marines too. - for(var/i= 1 to squads_copy.len) + for(var/i= 1 to length(squads_copy)) var/datum/squad/S = pick_n_take(squads_copy) if (S.roundstart && S.usable && S.faction == H.faction && S.name != "Root") mixed_squads += S diff --git a/code/game/jobs/slot_scaling.dm b/code/game/jobs/slot_scaling.dm index 2d444d06e5ab..8c8568130763 100644 --- a/code/game/jobs/slot_scaling.dm +++ b/code/game/jobs/slot_scaling.dm @@ -10,7 +10,7 @@ /proc/job_slot_formula(marine_count, factor, c, min, max) if(marine_count <= factor) return min - return round(Clamp((marine_count/factor)+c, min, max)) + return floor(clamp((marine_count/factor)+c, min, max)) /proc/medic_slot_formula(playercount) return job_slot_formula(playercount,40,1,3,5) diff --git a/code/game/jobs/whitelist.dm b/code/game/jobs/whitelist.dm index 3a4b94145ca1..8cd91a494c83 100644 --- a/code/game/jobs/whitelist.dm +++ b/code/game/jobs/whitelist.dm @@ -1,12 +1,3 @@ -#define WHITELISTFILE "data/whitelist.txt" - -GLOBAL_LIST_FILE_LOAD(whitelist, WHITELISTFILE) - -/proc/check_whitelist(mob/M /*, rank*/) - if(!CONFIG_GET(flag/usewhitelist) || !GLOB.whitelist) - return 0 - return ("[M.ckey]" in GLOB.whitelist) - /proc/can_play_special_job(client/client, job) if(client.admin_holder && (client.admin_holder.rights & R_ADMIN)) return TRUE @@ -18,35 +9,213 @@ GLOBAL_LIST_FILE_LOAD(whitelist, WHITELISTFILE) return J.can_play_role(client) return TRUE -GLOBAL_LIST_FILE_LOAD(alien_whitelist, "config/alienwhitelist.txt") - -//todo: admin aliens -/proc/is_alien_whitelisted(mob/M, species) - if(!CONFIG_GET(flag/usealienwhitelist)) //If there's not config to use the whitelist. - return 1 - if(species == "human" || species == "Human") - return 1 -// if(check_rights(R_ADMIN, 0)) //Admins are not automatically considered to be whitelisted anymore. ~N -// return 1 //This actually screwed up a bunch of procs, but I only noticed it with the wrong spawn point. - if(!CONFIG_GET(flag/usealienwhitelist) || !GLOB.alien_whitelist) - return 0 - if(M && species) - for (var/s in GLOB.alien_whitelist) - if(findtext(lowertext(s),"[lowertext(M.key)] - [species]")) - return 1 - //if(findtext(lowertext(s),"[lowertext(M.key)] - [species] Elder")) //Unnecessary. - // return 1 - if(findtext(lowertext(s),"[lowertext(M.key)] - All")) - return 1 - return 0 - /// returns a list of strings containing the whitelists held by a specific ckey /proc/get_whitelisted_roles(ckey) - if(GLOB.RoleAuthority.roles_whitelist[ckey] & WHITELIST_PREDATOR) + var/datum/entity/player/player = get_player_from_key(ckey) + if(player.check_whitelist_status(WHITELIST_YAUTJA)) LAZYADD(., "predator") - if(GLOB.RoleAuthority.roles_whitelist[ckey] & WHITELIST_COMMANDER) + if(player.check_whitelist_status(WHITELIST_COMMANDER)) LAZYADD(., "commander") - if(GLOB.RoleAuthority.roles_whitelist[ckey] & WHITELIST_SYNTHETIC) + if(player.check_whitelist_status(WHITELIST_SYNTHETIC)) LAZYADD(., "synthetic") -#undef WHITELISTFILE +/client/load_player_data_info(datum/entity/player/player) + . = ..() + + if(isSenator(src)) + add_verb(src, /client/proc/whitelist_panel) + if(isCouncil(src)) + add_verb(src, /client/proc/other_records) + +/client + var/datum/whitelist_panel/wl_panel + +/client/proc/whitelist_panel() + set name = "Whitelist Panel" + set category = "Admin.Panels" + + if(wl_panel) + qdel(wl_panel) + wl_panel = new + wl_panel.tgui_interact(mob) + +#define WL_PANEL_RIGHT_CO (1<<0) +#define WL_PANEL_RIGHT_SYNTH (1<<1) +#define WL_PANEL_RIGHT_YAUTJA (1<<2) +#define WL_PANEL_RIGHT_MENTOR (1<<3) +#define WL_PANEL_RIGHT_OVERSEER (1<<4) +#define WL_PANEL_ALL_COUNCILS (WL_PANEL_RIGHT_CO|WL_PANEL_RIGHT_SYNTH|WL_PANEL_RIGHT_YAUTJA) +#define WL_PANEL_ALL_RIGHTS (WL_PANEL_RIGHT_CO|WL_PANEL_RIGHT_SYNTH|WL_PANEL_RIGHT_YAUTJA|WL_PANEL_RIGHT_MENTOR|WL_PANEL_RIGHT_OVERSEER) + +/datum/whitelist_panel + var/viewed_player = list() + var/current_menu = "Panel" + var/user_rights = 0 + var/target_rights = 0 + var/new_rights = 0 + +/datum/whitelist_panel/proc/get_user_rights(mob/user) + if(!user.client) + return + var/client/person = user.client + if(CLIENT_HAS_RIGHTS(person, R_PERMISSIONS)) + return WL_PANEL_ALL_RIGHTS + var/rights + if(person.check_whitelist_status(WHITELIST_COMMANDER_LEADER)) + rights |= WL_PANEL_RIGHT_CO + if(person.check_whitelist_status(WHITELIST_SYNTHETIC_LEADER)) + rights |= WL_PANEL_RIGHT_SYNTH + if(person.check_whitelist_status(WHITELIST_YAUTJA_LEADER)) + rights |= WL_PANEL_RIGHT_YAUTJA + if(rights == WL_PANEL_ALL_COUNCILS) + return WL_PANEL_ALL_RIGHTS + return rights + +/datum/whitelist_panel/tgui_interact(mob/user, datum/tgui/ui) + ui = SStgui.try_update_ui(user, src, ui) + if(!ui) + ui = new(user, src, "WhitelistPanel", "Whitelist Panel") + ui.open() + +/datum/whitelist_panel/ui_state(mob/user) + return GLOB.always_state + +/datum/whitelist_panel/ui_close(mob/user) + . = ..() + if(user?.client.wl_panel) + qdel(user.client.wl_panel) + +/datum/whitelist_panel/vv_edit_var(var_name, var_value) + return FALSE + +/datum/whitelist_panel/ui_data(mob/user) + var/list/data = list() + + data["current_menu"] = current_menu + data["user_rights"] = user_rights + data["viewed_player"] = viewed_player + data["target_rights"] = target_rights + data["new_rights"] = new_rights + + return data + +GLOBAL_LIST_INIT(co_flags, list( + list(name = "Commander", bitflag = WHITELIST_COMMANDER, permission = WL_PANEL_RIGHT_CO), + list(name = "Council", bitflag = WHITELIST_COMMANDER_COUNCIL, permission = WL_PANEL_RIGHT_CO), + list(name = "Legacy Council", bitflag = WHITELIST_COMMANDER_COUNCIL_LEGACY, permission = WL_PANEL_RIGHT_CO), + list(name = "Senator", bitflag = WHITELIST_COMMANDER_LEADER, permission = WL_PANEL_RIGHT_OVERSEER), + list(name = "Colonel", bitflag = WHITELIST_COMMANDER_COLONEL, permission = WL_PANEL_RIGHT_OVERSEER) +)) +GLOBAL_LIST_INIT(syn_flags, list( + list(name = "Synthetic", bitflag = WHITELIST_SYNTHETIC, permission = WL_PANEL_RIGHT_SYNTH), + list(name = "Council", bitflag = WHITELIST_SYNTHETIC_COUNCIL, permission = WL_PANEL_RIGHT_SYNTH), + list(name = "Legacy Council", bitflag = WHITELIST_SYNTHETIC_COUNCIL_LEGACY, permission = WL_PANEL_RIGHT_SYNTH), + list(name = "Senator", bitflag = WHITELIST_SYNTHETIC_LEADER, permission = WL_PANEL_RIGHT_OVERSEER) +)) +GLOBAL_LIST_INIT(yaut_flags, list( + list(name = "Yautja", bitflag = WHITELIST_YAUTJA, permission = WL_PANEL_RIGHT_YAUTJA), + list(name = "Legacy Holder", bitflag = WHITELIST_YAUTJA_LEGACY, permission = WL_PANEL_RIGHT_OVERSEER), + list(name = "Council", bitflag = WHITELIST_YAUTJA_COUNCIL, permission = WL_PANEL_RIGHT_YAUTJA), + list(name = "Legacy Council", bitflag = WHITELIST_YAUTJA_COUNCIL_LEGACY, permission = WL_PANEL_RIGHT_YAUTJA), + list(name = "Senator", bitflag = WHITELIST_YAUTJA_LEADER, permission = WL_PANEL_RIGHT_OVERSEER) +)) +GLOBAL_LIST_INIT(misc_flags, list( + list(name = "Senior Enlisted Advisor", bitflag = WHITELIST_MENTOR, permission = WL_PANEL_RIGHT_MENTOR), + list(name = "Working Joe", bitflag = WHITELIST_JOE, permission = WL_PANEL_RIGHT_SYNTH), +)) + +/datum/whitelist_panel/ui_static_data(mob/user) + . = list() + .["co_flags"] = GLOB.co_flags + .["syn_flags"] = GLOB.syn_flags + .["yaut_flags"] = GLOB.yaut_flags + .["misc_flags"] = GLOB.misc_flags + + var/list/datum/view_record/players/players_view = DB_VIEW(/datum/view_record/players, DB_COMP("whitelist_status", DB_NOTEQUAL, "")) + + var/list/whitelisted_players = list() + for(var/datum/view_record/players/whitelistee in players_view) + var/list/current_player = list() + current_player["ckey"] = whitelistee.ckey + var/list/unreadable_list = splittext(whitelistee.whitelist_status, "|") + var/readable_list = unreadable_list.Join(" | ") + current_player["status"] = readable_list + whitelisted_players += list(current_player) + .["whitelisted_players"] = whitelisted_players + +/datum/whitelist_panel/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) + . = ..() + if(.) + return FALSE + var/mob/user = ui.user + if(!isSenator(user.client) && !CLIENT_HAS_RIGHTS(user.client, R_PERMISSIONS)) + return FALSE + switch(action) + if("go_back") + go_back() + if("select_player") + select_player(user, params["player"]) + return + if("add_player") + select_player(user, TRUE) + return + if("update_number") + new_rights = text2num(params["wl_flag"]) + return + if("update_perms") + var/player_key = params["player"] + var/reason = tgui_input_text(user, "What is the reason for this change?", "Update Reason") + if(!reason) + return + var/datum/entity/player/player = get_player_from_key(player_key) + player.set_whitelist_status(new_rights) + player.add_note("Whitelists updated by [user.key]. Reason: '[reason]'.", FALSE, NOTE_WHITELIST) + to_chat(user, SPAN_HELPFUL("Whitelists for [player_key] updated.")) + message_admins("Whitelists for [player_key] updated by [key_name(user)]. Reason: '[reason]'.") + log_admin("WHITELISTS: Flags for [player_key] changed from [target_rights] to [new_rights]. Reason: '[reason]'.") + go_back() + update_static_data(user, ui) + return + if("refresh_data") + update_static_data(user, ui) + to_chat(user, SPAN_NOTICE("Whitelist data refreshed.")) + +/datum/whitelist_panel/proc/select_player(mob/user, player_key) + var/target_key = player_key + if(IsAdminAdvancedProcCall()) + return PROC_BLOCKED + if(!target_key) + return FALSE + + if(target_key == TRUE) + var/new_player = tgui_input_text(user, "Enter the new ckey you wish to add. Do not include spaces or special characters.", "New Whitelistee") + if(!new_player) + return FALSE + target_key = new_player + + var/datum/entity/player/player = get_player_from_key(target_key) + var/list/current_player = list() + current_player["ckey"] = target_key + current_player["status"] = player.whitelist_status + + target_rights = player.whitelist_flags + new_rights = player.whitelist_flags + viewed_player = current_player + current_menu = "Update" + user_rights = get_user_rights(user) + return + +/datum/whitelist_panel/proc/go_back() + viewed_player = list() + user_rights = 0 + current_menu = "Panel" + target_rights = 0 + new_rights = 0 + + +#undef WL_PANEL_RIGHT_CO +#undef WL_PANEL_RIGHT_SYNTH +#undef WL_PANEL_RIGHT_YAUTJA +#undef WL_PANEL_RIGHT_MENTOR +#undef WL_PANEL_RIGHT_OVERSEER +#undef WL_PANEL_ALL_RIGHTS diff --git a/code/game/machinery/ARES/ARES_interface.dm b/code/game/machinery/ARES/ARES_interface.dm index aa1cd92547ec..0316274774be 100644 --- a/code/game/machinery/ARES/ARES_interface.dm +++ b/code/game/machinery/ARES/ARES_interface.dm @@ -9,10 +9,10 @@ var/current_menu = "login" var/last_menu = "" - var/authentication = ARES_ACCESS_BASIC + var/authentication = ARES_ACCESS_LOGOUT /// The last person to login. - var/last_login + var/last_login = "No User" /// The person pretending to be last_login var/sudo_holder @@ -24,6 +24,8 @@ /// The datacore storing all the information. var/datum/ares_datacore/datacore + COOLDOWN_DECLARE(printer_cooldown) + /obj/structure/machinery/computer/ares_console/proc/link_systems(datum/ares_link/new_link = GLOB.ares_link, override) if(link && !override) return FALSE @@ -94,6 +96,8 @@ data["nuketimelock"] = NUCLEAR_TIME_LOCK data["nuke_available"] = datacore.nuke_available + data["printer_cooldown"] = !COOLDOWN_FINISHED(src, printer_cooldown) + var/list/logged_announcements = list() for(var/datum/ares_record/announcement/broadcast as anything in datacore.records_announcement) var/list/current_broadcast = list() @@ -183,6 +187,17 @@ logged_orders += list(current_order) data["records_requisition"] = logged_orders + var/list/logged_techs = list() + for(var/datum/ares_record/tech/tech_unlock as anything in datacore.records_tech) + var/list/current_tech = list() + current_tech["time"] = tech_unlock.time + current_tech["details"] = tech_unlock.details + current_tech["user"] = tech_unlock.user + current_tech["tier_changer"] = tech_unlock.is_tier + current_tech["ref"] = "\ref[tech_unlock]" + logged_techs += list(current_tech) + data["records_tech"] = logged_techs + var/list/logged_convos = list() var/list/active_convo = list() var/active_ref @@ -203,6 +218,8 @@ data["active_ref"] = active_ref data["conversations"] = logged_convos + data["security_vents"] = link.get_ares_vents() + return data /obj/structure/machinery/computer/ares_console/ui_status(mob/user, datum/ui_state/state) @@ -216,30 +233,30 @@ . = ..() if(.) return - - playsound(src, "keyboard_alt", 15, 1) + var/mob/user = ui.user + var/playsound = TRUE switch (action) if("go_back") if(!last_menu) - return to_chat(usr, SPAN_WARNING("Error, no previous page detected.")) + return to_chat(user, SPAN_WARNING("Error, no previous page detected.")) var/temp_holder = current_menu current_menu = last_menu last_menu = temp_holder if("login") - var/mob/living/carbon/human/operator = usr + var/mob/living/carbon/human/operator = user var/obj/item/card/id/idcard = operator.get_active_hand() if(istype(idcard)) authentication = get_ares_access(idcard) last_login = idcard.registered_name else if(operator.wear_id) - idcard = operator.wear_id - if(istype(idcard)) + idcard = operator.get_idcard() + if(idcard) authentication = get_ares_access(idcard) last_login = idcard.registered_name else - to_chat(usr, SPAN_WARNING("You require an ID card to access this terminal!")) + to_chat(user, SPAN_WARNING("You require an ID card to access this terminal!")) playsound(src, 'sound/machines/buzz-two.ogg', 15, 1) return FALSE if(authentication) @@ -247,14 +264,14 @@ current_menu = "main" if("sudo") - var/new_user = tgui_input_text(usr, "Enter Sudo Username", "Sudo User", encode = FALSE) + var/new_user = tgui_input_text(user, "Enter Sudo Username", "Sudo User", encode = FALSE) if(new_user) if(new_user == sudo_holder) last_login = sudo_holder sudo_holder = null return FALSE if(new_user == last_login) - to_chat(usr, SPAN_WARNING("Already remote logged in as this user.")) + to_chat(user, SPAN_WARNING("Already remote logged in as this user.")) playsound(src, 'sound/machines/buzz-two.ogg', 15, 1) return FALSE sudo_holder = last_login @@ -275,6 +292,8 @@ last_login = sudo_holder sudo_holder = null datacore.interface_access_list += "[last_login] logged out at [worldtime2text()]." + last_login = "No User" + authentication = ARES_ACCESS_LOGOUT if("home") last_menu = current_menu @@ -315,10 +334,84 @@ if("page_deleted_1to1") last_menu = current_menu current_menu = "deleted_talks" + if("page_tech") + last_menu = current_menu + current_menu = "tech_log" + if("page_core_sec") + last_menu = current_menu + current_menu = "core_security" + + // -- Print ASRS Audit Log -- // + if("print_req") + playsound = FALSE + if(!COOLDOWN_FINISHED(src, printer_cooldown)) + playsound(src, 'sound/machines/buzz-two.ogg', 15, 1) + return FALSE + if(!length(datacore.records_asrs)) + to_chat(user, SPAN_WARNING("There are no records to print!")) + playsound(src, 'sound/machines/buzz-two.ogg', 15, 1) + return FALSE + COOLDOWN_START(src, printer_cooldown, 20 SECONDS) + playsound(src, 'sound/machines/fax.ogg', 15, 1) + sleep(3.4 SECONDS) + var/contents = {" +
      \ +
      \ +

      A.S.R.S.

      \ +

      Automatic Storage Retrieval System

      \ +

      Audit Log

      \ +

      + Printed By: [last_login]
      + Print Time: [worldtime2text()]
      +
      +
      + + + + + + + + + + + "} + + for(var/datum/ares_record/requisition_log/req_order as anything in datacore.records_asrs) + + contents += {" + + + + + + + "} + + contents += "
      TimeUserSourceOrder
      [req_order.time][req_order.user][req_order.title][req_order.details]
      " + + var/obj/item/paper/log = new(loc) + log.name = "ASRS Audit Log" + log.info += contents + log.icon_state = "paper_uscm_words" + visible_message(SPAN_NOTICE("[src] prints out a paper.")) // -- Delete Button -- // if("delete_record") var/datum/ares_record/record = locate(params["record"]) + if(!istype(record)) + return FALSE if(record.record_name == ARES_RECORD_DELETED) return FALSE var/datum/ares_record/deletion/new_delete = new @@ -341,6 +434,14 @@ new_title = "[record.title] at [record.time]" new_details = "[record.details] Launched by [record.user]." datacore.records_bombardment -= record + if(ARES_RECORD_TECH) + new_title = "[record.title] at [record.time]" + new_details = record.details + datacore.records_tech -= record + if(ARES_RECORD_FLIGHT) + new_title = "[record.title] at [record.time]" + new_details = record.details + datacore.records_flight -= record new_delete.details = new_details new_delete.user = last_login @@ -366,12 +467,14 @@ datacore.records_talking -= conversation if("message_ares") - var/message = tgui_input_text(usr, "What do you wish to say to ARES?", "ARES Message", encode = FALSE) + var/message = tgui_input_text(user, "What do you wish to say to ARES?", "ARES Message", encode = FALSE) if(message) - message_ares(message, usr, params["active_convo"]) + message_ares(message, user, params["active_convo"]) if("read_record") var/datum/ares_record/deleted_talk/conversation = locate(params["record"]) + if(!istype(conversation)) + return FALSE deleted_1to1 = conversation.conversation last_menu = current_menu current_menu = "read_deleted" @@ -379,64 +482,64 @@ // -- Emergency Buttons -- // if("general_quarters") if(!COOLDOWN_FINISHED(datacore, ares_quarters_cooldown)) - to_chat(usr, SPAN_WARNING("It has not been long enough since the last General Quarters call!")) + to_chat(user, SPAN_WARNING("It has not been long enough since the last General Quarters call!")) playsound(src, 'sound/machines/buzz-two.ogg', 15, 1) return FALSE if(GLOB.security_level < SEC_LEVEL_RED) set_security_level(SEC_LEVEL_RED, no_sound = TRUE, announce = FALSE) shipwide_ai_announcement("ATTENTION! GENERAL QUARTERS. ALL HANDS, MAN YOUR BATTLESTATIONS.", MAIN_AI_SYSTEM, 'sound/effects/GQfullcall.ogg') - log_game("[key_name(usr)] has called for general quarters via ARES.") - message_admins("[key_name_admin(usr)] has called for general quarters via ARES.") - log_ares_security("General Quarters", "[last_login] has called for general quarters via ARES.") + log_game("[key_name(user)] has called for general quarters via ARES.") + message_admins("[key_name_admin(user)] has called for general quarters via ARES.") + log_ares_security("General Quarters", "Called for general quarters via ARES.", last_login) COOLDOWN_START(datacore, ares_quarters_cooldown, 10 MINUTES) . = TRUE if("evacuation_start") if(GLOB.security_level < SEC_LEVEL_RED) - to_chat(usr, SPAN_WARNING("The ship must be under red alert in order to enact evacuation procedures.")) + to_chat(user, SPAN_WARNING("The ship must be under red alert in order to enact evacuation procedures.")) playsound(src, 'sound/machines/buzz-two.ogg', 15, 1) return FALSE if(SShijack.evac_admin_denied) - to_chat(usr, SPAN_WARNING("The USCM has placed a lock on deploying the evacuation pods.")) + to_chat(user, SPAN_WARNING("The USCM has placed a lock on deploying the evacuation pods.")) playsound(src, 'sound/machines/buzz-two.ogg', 15, 1) return FALSE if(!SShijack.initiate_evacuation()) - to_chat(usr, SPAN_WARNING("You are unable to initiate an evacuation procedure right now!")) + to_chat(user, SPAN_WARNING("You are unable to initiate an evacuation procedure right now!")) playsound(src, 'sound/machines/buzz-two.ogg', 15, 1) return FALSE - log_game("[key_name(usr)] has called for an emergency evacuation via ARES.") - message_admins("[key_name_admin(usr)] has called for an emergency evacuation via ARES.") - log_ares_security("Initiate Evacuation", "[last_login] has called for an emergency evacuation via ARES.") + log_game("[key_name(user)] has called for an emergency evacuation via ARES.") + message_admins("[key_name_admin(user)] has called for an emergency evacuation via ARES.") + log_ares_security("Initiate Evacuation", "Called for an emergency evacuation via ARES.", last_login) . = TRUE if("distress") if(!SSticker.mode) return FALSE //Not a game mode? if(world.time < DISTRESS_TIME_LOCK) - to_chat(usr, SPAN_WARNING("You have been here for less than six minutes... what could you possibly have done!")) + to_chat(user, SPAN_WARNING("You have been here for less than six minutes... what could you possibly have done!")) playsound(src, 'sound/machines/buzz-two.ogg', 15, 1) return FALSE if(!COOLDOWN_FINISHED(datacore, ares_distress_cooldown)) - to_chat(usr, SPAN_WARNING("The distress launcher is cooling down!")) + to_chat(user, SPAN_WARNING("The distress launcher is cooling down!")) playsound(src, 'sound/machines/buzz-two.ogg', 15, 1) return FALSE if(GLOB.security_level == SEC_LEVEL_DELTA) - to_chat(usr, SPAN_WARNING("The ship is already undergoing self destruct procedures!")) + to_chat(user, SPAN_WARNING("The ship is already undergoing self destruct procedures!")) playsound(src, 'sound/machines/buzz-two.ogg', 15, 1) return FALSE if(GLOB.security_level < SEC_LEVEL_RED) - to_chat(usr, SPAN_WARNING("The ship must be under red alert to launch a distress beacon!")) + to_chat(user, SPAN_WARNING("The ship must be under red alert to launch a distress beacon!")) playsound(src, 'sound/machines/buzz-two.ogg', 15, 1) return FALSE for(var/client/admin in GLOB.admins) if((R_ADMIN|R_MOD) & admin.admin_holder.rights) playsound_client(admin,'sound/effects/sos-morse-code.ogg',10) - SSticker.mode.request_ert(usr, TRUE) - to_chat(usr, SPAN_NOTICE("A distress beacon request has been sent to USCM High Command.")) + SSticker.mode.request_ert(user, TRUE) + to_chat(user, SPAN_NOTICE("A distress beacon request has been sent to USCM High Command.")) COOLDOWN_START(datacore, ares_distress_cooldown, COOLDOWN_COMM_REQUEST) return TRUE @@ -444,28 +547,57 @@ if(!SSticker.mode) return FALSE //Not a game mode? if(world.time < NUCLEAR_TIME_LOCK) - to_chat(usr, SPAN_WARNING("It is too soon to request Nuclear Ordnance!")) + to_chat(user, SPAN_WARNING("It is too soon to request Nuclear Ordnance!")) playsound(src, 'sound/machines/buzz-two.ogg', 15, 1) return FALSE if(!COOLDOWN_FINISHED(datacore, ares_nuclear_cooldown)) - to_chat(usr, SPAN_WARNING("The ordnance request frequency is garbled, wait for reset!")) + to_chat(user, SPAN_WARNING("The ordnance request frequency is garbled, wait for reset!")) playsound(src, 'sound/machines/buzz-two.ogg', 15, 1) return FALSE if(GLOB.security_level == SEC_LEVEL_DELTA || SSticker.mode.is_in_endgame) - to_chat(usr, SPAN_WARNING("The mission has failed catastrophically, what do you want a nuke for?!")) + to_chat(user, SPAN_WARNING("The mission has failed catastrophically, what do you want a nuke for?!")) playsound(src, 'sound/machines/buzz-two.ogg', 15, 1) return FALSE - var/reason = tgui_input_text(usr, "Please enter reason nuclear ordnance is required.", "Reason for Nuclear Ordnance") + var/reason = tgui_input_text(user, "Please enter reason nuclear ordnance is required.", "Reason for Nuclear Ordnance") if(!reason) return FALSE for(var/client/admin in GLOB.admins) if((R_ADMIN|R_MOD) & admin.admin_holder.rights) playsound_client(admin,'sound/effects/sos-morse-code.ogg',10) - message_admins("[key_name(usr)] has requested use of Nuclear Ordnance (via ARES)! Reason: [reason] [CC_MARK(usr)] (APPROVE) (DENY) [ADMIN_JMP_USER(usr)] [CC_REPLY(usr)]") - to_chat(usr, SPAN_NOTICE("A nuclear ordnance request has been sent to USCM High Command for the following reason: [reason]")) - log_ares_security("Nuclear Ordnance Request", "[last_login] has sent a request for nuclear ordnance for the following reason: [reason]") + message_admins("[key_name(user)] has requested use of Nuclear Ordnance (via ARES)! Reason: [reason] [CC_MARK(user)] (APPROVE) (DENY) [ADMIN_JMP_USER(user)] [CC_REPLY(user)]") + to_chat(user, SPAN_NOTICE("A nuclear ordnance request has been sent to USCM High Command for the following reason: [reason]")) + log_ares_security("Nuclear Ordnance Request", "Sent a request for nuclear ordnance for the following reason: [reason]", last_login) if(ares_can_interface()) ai_silent_announcement("[last_login] has sent a request for nuclear ordnance to USCM High Command.", ".V") ai_silent_announcement("Reason given: [reason].", ".V") COOLDOWN_START(datacore, ares_nuclear_cooldown, COOLDOWN_COMM_DESTRUCT) return TRUE + + if("trigger_vent") + playsound = FALSE + var/obj/structure/pipes/vents/pump/no_boom/gas/sec_vent = locate(params["vent"]) + if(!istype(sec_vent) || sec_vent.welded) + to_chat(user, SPAN_WARNING("ERROR: Gas release failure.")) + playsound(src, 'sound/machines/buzz-two.ogg', 15, 1) + return FALSE + if(!COOLDOWN_FINISHED(sec_vent, vent_trigger_cooldown)) + to_chat(user, SPAN_WARNING("ERROR: Insufficient gas reserve for this vent.")) + playsound(src, 'sound/machines/buzz-two.ogg', 15, 1) + return FALSE + to_chat(user, SPAN_WARNING("Initiating gas release from [sec_vent.vent_tag].")) + playsound(src, 'sound/machines/chime.ogg', 15, 1) + COOLDOWN_START(sec_vent, vent_trigger_cooldown, COOLDOWN_ARES_VENT) + ares_apollo_talk("Nerve Gas release imminent from [sec_vent.vent_tag].") + log_ares_security("Nerve Gas Release", "Released Nerve Gas from Vent '[sec_vent.vent_tag]'.", last_login) + sec_vent.create_gas(VENT_GAS_CN20_XENO, 6, 5 SECONDS) + log_admin("[key_name(user)] released nerve gas from Vent '[sec_vent.vent_tag]' via ARES.") + + if("security_lockdown") + if(!COOLDOWN_FINISHED(datacore, aicore_lockdown)) + to_chat(user, SPAN_BOLDWARNING("AI Core Lockdown procedures are on cooldown! They will be ready in [COOLDOWN_SECONDSLEFT(datacore, aicore_lockdown)] seconds!")) + return FALSE + aicore_lockdown(user) + return TRUE + + if(playsound) + playsound(src, "keyboard_alt", 15, 1) diff --git a/code/game/machinery/ARES/ARES_interface_admin.dm b/code/game/machinery/ARES/ARES_interface_admin.dm new file mode 100644 index 000000000000..758ba9fbb5e7 --- /dev/null +++ b/code/game/machinery/ARES/ARES_interface_admin.dm @@ -0,0 +1,516 @@ +/client/proc/cmd_admin_open_ares() + set name = "Open ARES Interface" + set category = "Admin.Factions" + + var/mob/user = usr + if(!check_rights(R_MOD)) + to_chat(user, SPAN_WARNING("You do not have access to this command.")) + return FALSE + + if(!SSticker.mode) + to_chat(user, SPAN_WARNING("The round has not started yet.")) + return FALSE + + if(!GLOB.ares_link || !GLOB.ares_link.admin_interface || !GLOB.ares_link.interface) + to_chat(usr, SPAN_BOLDWARNING("ERROR: ARES Link or Interface not found!")) + return FALSE + GLOB.ares_link.tgui_interact(user) + var/log = "[key_name(user)] opened the remote ARES Interface." + if(user.job) + log = "[key_name(user)] ([user.job]) opened the remote ARES Interface." + log_admin(log) + +/datum/ares_console_admin + var/current_menu = "login" + var/last_menu = "" + + var/authentication = ARES_ACCESS_BASIC + + /// The last admin to login. + var/last_login + /// The currently logged in admin. + var/logged_in + /// A record of who logged in and when. + var/list/access_list = list() + var/list/deleted_1to1 = list() + + +/datum/ares_link/tgui_interact(mob/user, datum/tgui/ui) + if(!interface || !admin_interface) + to_chat(user, SPAN_WARNING("ARES ADMIN DATA LINK FAILED")) + return FALSE + ui = SStgui.try_update_ui(user, GLOB.ares_link, ui) + if(!ui) + ui = new(user, GLOB.ares_link, "AresAdmin", "ARES Admin Interface") + ui.open() + +/datum/ares_link/ui_data(mob/user) + if(!interface) + to_chat(user, SPAN_WARNING("ARES ADMIN DATA LINK FAILED")) + return FALSE + var/list/data = list() + + data["admin_login"] = "[admin_interface.logged_in], [user.client.admin_holder?.rank]" + data["admin_access_log"] = list(admin_interface.access_list) + + data["current_menu"] = admin_interface.current_menu + data["last_page"] = admin_interface.last_menu + + data["logged_in"] = interface.last_login + data["sudo"] = interface.sudo_holder ? TRUE : FALSE + + data["access_text"] = "[interface.sudo_holder ? "(SUDO)," : ""] access level [interface.authentication], [interface.ares_auth_to_text(interface.authentication)]." + data["access_level"] = interface.authentication + + data["alert_level"] = GLOB.security_level + data["evac_status"] = SShijack.evac_status + data["worldtime"] = world.time + + data["access_log"] = datacore.interface_access_list + data["apollo_log"] = datacore.apollo_log + + data["deleted_conversation"] = admin_interface.deleted_1to1 + + data["distresstime"] = datacore.ares_distress_cooldown + data["distresstimelock"] = DISTRESS_TIME_LOCK + data["mission_failed"] = SSticker.mode.is_in_endgame + data["nuketimelock"] = NUCLEAR_TIME_LOCK + data["nuke_available"] = datacore.nuke_available + + var/list/logged_announcements = list() + for(var/datum/ares_record/announcement/broadcast in datacore.records_announcement) + var/list/current_broadcast = list() + current_broadcast["time"] = broadcast.time + current_broadcast["title"] = broadcast.title + current_broadcast["details"] = broadcast.details + current_broadcast["ref"] = "\ref[broadcast]" + logged_announcements += list(current_broadcast) + data["records_announcement"] = logged_announcements + + var/list/logged_alerts = list() + for(var/datum/ares_record/security/security_alert in datacore.records_security) + var/list/current_alert = list() + current_alert["time"] = security_alert.time + current_alert["title"] = security_alert.title + current_alert["details"] = security_alert.details + current_alert["ref"] = "\ref[security_alert]" + logged_alerts += list(current_alert) + data["records_security"] = logged_alerts + + var/list/logged_flights = list() + for(var/datum/ares_record/flight/flight_log in datacore.records_flight) + var/list/current_flight = list() + current_flight["time"] = flight_log.time + current_flight["title"] = flight_log.title + current_flight["details"] = flight_log.details + current_flight["user"] = flight_log.user + current_flight["ref"] = "\ref[flight_log]" + logged_flights += list(current_flight) + data["records_flight"] = logged_flights + + var/list/logged_bioscans = list() + for(var/datum/ares_record/bioscan/scan in datacore.records_bioscan) + var/list/current_scan = list() + current_scan["time"] = scan.time + current_scan["title"] = scan.title + current_scan["details"] = scan.details + current_scan["ref"] = "\ref[scan]" + logged_bioscans += list(current_scan) + data["records_bioscan"] = logged_bioscans + + var/list/logged_bombs = list() + for(var/datum/ares_record/bombardment/bomb in datacore.records_bombardment) + var/list/current_bomb = list() + current_bomb["time"] = bomb.time + current_bomb["title"] = bomb.title + current_bomb["details"] = bomb.details + current_bomb["user"] = bomb.user + current_bomb["ref"] = "\ref[bomb]" + logged_bombs += list(current_bomb) + data["records_bombardment"] = logged_bombs + + var/list/logged_deletes = list() + for(var/datum/ares_record/deletion/deleted in datacore.records_deletion) + var/list/current_delete = list() + current_delete["time"] = deleted.time + current_delete["title"] = deleted.title + current_delete["details"] = deleted.details + current_delete["user"] = deleted.user + current_delete["ref"] = "\ref[deleted]" + logged_deletes += list(current_delete) + data["records_deletion"] = logged_deletes + + var/list/logged_discussions = list() + for(var/datum/ares_record/deleted_talk/deleted_convo in datacore.records_deletion) + var/list/deleted_disc = list() + deleted_disc["time"] = deleted_convo.time + deleted_disc["title"] = deleted_convo.title + deleted_disc["ref"] = "\ref[deleted_convo]" + logged_discussions += list(deleted_disc) + data["deleted_discussions"] = logged_discussions + + var/list/logged_orders = list() + for(var/datum/ares_record/requisition_log/req_order in datacore.records_asrs) + var/list/current_order = list() + current_order["time"] = req_order.time + current_order["details"] = req_order.details + current_order["title"] = req_order.title + current_order["user"] = req_order.user + current_order["ref"] = "\ref[req_order]" + logged_orders += list(current_order) + data["records_requisition"] = logged_orders + + var/list/logged_techs = list() + for(var/datum/ares_record/tech/tech_unlock as anything in datacore.records_tech) + var/list/current_tech = list() + current_tech["time"] = tech_unlock.time + current_tech["details"] = tech_unlock.details + current_tech["user"] = tech_unlock.user + current_tech["tier_changer"] = tech_unlock.is_tier + current_tech["ref"] = "\ref[tech_unlock]" + logged_techs += list(current_tech) + data["records_tech"] = logged_techs + + var/list/logged_convos = list() + var/list/active_convo = list() + var/active_ref + for(var/datum/ares_record/talk_log/log in datacore.records_talking) + if(log.user == interface.last_login) + active_convo = log.conversation + active_ref = "\ref[log]" + + var/list/current_convo = list() + current_convo["user"] = log.user + current_convo["ref"] = "\ref[log]" + current_convo["conversation"] = log.conversation + logged_convos += list(current_convo) + + data["active_convo"] = active_convo + data["active_ref"] = active_ref + data["conversations"] = logged_convos + + var/list/logged_maintenance = list() + for(var/datum/ares_ticket/maintenance/maint_ticket in tickets_maintenance) + var/lock_status = TICKET_OPEN + switch(maint_ticket.ticket_status) + if(TICKET_REJECTED, TICKET_CANCELLED, TICKET_COMPLETED) + lock_status = TICKET_CLOSED + + var/list/current_maint = list() + current_maint["id"] = maint_ticket.ticket_id + current_maint["time"] = maint_ticket.ticket_time + current_maint["priority_status"] = maint_ticket.ticket_priority + current_maint["category"] = maint_ticket.ticket_name + current_maint["details"] = maint_ticket.ticket_details + current_maint["status"] = maint_ticket.ticket_status + current_maint["submitter"] = maint_ticket.ticket_submitter + current_maint["assignee"] = maint_ticket.ticket_assignee + current_maint["lock_status"] = lock_status + current_maint["ref"] = "\ref[maint_ticket]" + logged_maintenance += list(current_maint) + data["maintenance_tickets"] = logged_maintenance + + var/list/logged_access = list() + for(var/datum/ares_ticket/access/access_ticket in tickets_access) + var/lock_status = TICKET_OPEN + switch(access_ticket.ticket_status) + if(TICKET_REJECTED, TICKET_CANCELLED, TICKET_REVOKED) + lock_status = TICKET_CLOSED + + var/list/current_ticket = list() + current_ticket["id"] = access_ticket.ticket_id + current_ticket["time"] = access_ticket.ticket_time + current_ticket["priority_status"] = access_ticket.ticket_priority + current_ticket["title"] = access_ticket.ticket_name + current_ticket["details"] = access_ticket.ticket_details + current_ticket["status"] = access_ticket.ticket_status + current_ticket["submitter"] = access_ticket.ticket_submitter + current_ticket["assignee"] = access_ticket.ticket_assignee + current_ticket["lock_status"] = lock_status + current_ticket["ref"] = "\ref[access_ticket]" + logged_access += list(current_ticket) + data["access_tickets"] = logged_access + + data["security_vents"] = get_ares_vents() + + return data + + +/datum/ares_link/ui_state(mob/user) + return GLOB.admin_state + +/datum/ares_link/ui_close(mob/user) + . = ..() + if(admin_interface.logged_in && (user.ckey == admin_interface.logged_in)) + admin_interface.current_menu = "login" + admin_interface.last_menu = "login" + admin_interface.access_list += "[admin_interface.logged_in] logged out at [worldtime2text()]." + admin_interface.last_login = admin_interface.logged_in + admin_interface.logged_in = null + +/datum/ares_link/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) + . = ..() + if(.) + return + var/mob/user = ui.user + if(!check_rights_for(user.client, R_MOD)) + to_chat(user, SPAN_WARNING("You require staff identification to access this terminal!")) + return FALSE + switch (action) + if("go_back") + if(!admin_interface.last_menu) + to_chat(user, SPAN_WARNING("Error, no previous page detected.")) + return FALSE + var/temp_holder = admin_interface.current_menu + admin_interface.current_menu = admin_interface.last_menu + admin_interface.last_menu = temp_holder + + if("login") + admin_interface.logged_in = user.client.ckey + admin_interface.access_list += "[user.client.ckey] at [worldtime2text()], Access Level '[user.client.admin_holder?.rank]'." + admin_interface.current_menu = "main" + + // -- Page Changers -- // + if("logout") + admin_interface.current_menu = "login" + admin_interface.last_menu = "login" + admin_interface.access_list += "[admin_interface.logged_in] logged out at [worldtime2text()]. (UI Termination)" + admin_interface.last_login = admin_interface.logged_in + admin_interface.logged_in = null + + if("home") + admin_interface.last_menu = admin_interface.current_menu + admin_interface.current_menu = "main" + if("page_1to1") + admin_interface.last_menu = admin_interface.current_menu + admin_interface.current_menu = "talking" + if("page_announcements") + admin_interface.last_menu = admin_interface.current_menu + admin_interface.current_menu = "announcements" + if("page_bioscans") + admin_interface.last_menu = admin_interface.current_menu + admin_interface.current_menu = "bioscans" + if("page_bombardments") + admin_interface.last_menu = admin_interface.current_menu + admin_interface.current_menu = "bombardments" + if("page_apollo") + admin_interface.last_menu = admin_interface.current_menu + admin_interface.current_menu = "apollo" + if("page_access") + admin_interface.last_menu = admin_interface.current_menu + admin_interface.current_menu = "access_log" + if("page_admin_list") + admin_interface.last_menu = admin_interface.current_menu + admin_interface.current_menu = "admin_access_log" + if("page_security") + admin_interface.last_menu = admin_interface.current_menu + admin_interface.current_menu = "security" + if("page_requisitions") + admin_interface.last_menu = admin_interface.current_menu + admin_interface.current_menu = "requisitions" + if("page_flight") + admin_interface.last_menu = admin_interface.current_menu + admin_interface.current_menu = "flight_log" + if("page_emergency") + admin_interface.last_menu = admin_interface.current_menu + admin_interface.current_menu = "emergency" + if("page_deleted") + admin_interface.last_menu = admin_interface.current_menu + admin_interface.current_menu = "delete_log" + if("page_deleted_1to1") + admin_interface.last_menu = admin_interface.current_menu + admin_interface.current_menu = "deleted_talks" + if("page_tech") + admin_interface.last_menu = admin_interface.current_menu + admin_interface.current_menu = "tech_log" + if("page_core_sec") + admin_interface.last_menu = admin_interface.current_menu + admin_interface.current_menu = "core_security" + if("page_access_management") + admin_interface.last_menu = admin_interface.current_menu + admin_interface.current_menu = "access_management" + if("page_maint_management") + admin_interface.last_menu = admin_interface.current_menu + admin_interface.current_menu = "maintenance_management" + + // -- 1:1 Conversation -- // + if("new_conversation") + var/datum/ares_record/talk_log/convo = new(interface.last_login) + convo.conversation += "[MAIN_AI_SYSTEM] at [worldtime2text()], 'New 1:1 link initiated. Greetings, [interface.last_login].'" + datacore.records_talking += convo + + if("clear_conversation") + var/datum/ares_record/talk_log/conversation = locate(params["active_convo"]) + if(!istype(conversation)) + return FALSE + var/datum/ares_record/deleted_talk/deleted = new + deleted.title = conversation.title + deleted.conversation = conversation.conversation + deleted.user = MAIN_AI_SYSTEM + datacore.records_deletion += deleted + datacore.records_talking -= conversation + + if("fake_message_ares") + var/message = tgui_input_text(user, "What do you wish to say to ARES?", "ARES Message", encode = FALSE) + if(message) + interface.message_ares(message, user, params["active_convo"], TRUE) + if("ares_reply") + var/message = tgui_input_text(user, "What do you wish to reply with?", "ARES Response", encode = FALSE) + if(message) + interface.response_from_ares(message, params["active_convo"]) + var/datum/ares_record/talk_log/conversation = locate(params["active_convo"]) + if(!istype(conversation)) + return FALSE + var/admin_log = SPAN_STAFF_IC("ADMINS/MODS: [SPAN_RED("[key_name(user)] replied to [conversation.user]'s ARES message")] [SPAN_GREEN("via Remote Interface")] with: [SPAN_BLUE(message)] ") + for(var/client/admin in GLOB.admins) + if((R_ADMIN|R_MOD) & admin.admin_holder.rights) + to_chat(admin, admin_log) + + if("read_record") + var/datum/ares_record/deleted_talk/conversation = locate(params["record"]) + if(!istype(conversation)) + return FALSE + admin_interface.deleted_1to1 = conversation.conversation + admin_interface.last_menu = admin_interface.current_menu + admin_interface.current_menu = "read_deleted" + + if("claim_ticket") + var/datum/ares_ticket/ticket = locate(params["ticket"]) + if(!istype(ticket)) + return FALSE + var/claim = TRUE + var/assigned = ticket.ticket_assignee + if(assigned) + if(assigned == MAIN_AI_SYSTEM) + var/prompt = tgui_alert(user, "ARES already claimed this ticket! Do you wish to drop the claim?", "Unclaim ticket", list("Yes", "No")) + if(prompt != "Yes") + return FALSE + /// set ticket back to pending + ticket.ticket_assignee = null + ticket.ticket_status = TICKET_PENDING + return claim + var/choice = tgui_alert(user, "This ticket has already been claimed by [assigned]! Do you wish to override their claim?", "Claim Override", list("Yes", "No")) + if(choice != "Yes") + claim = FALSE + if(claim) + ticket.ticket_assignee = MAIN_AI_SYSTEM + ticket.ticket_status = TICKET_ASSIGNED + return claim + + if("auth_access") + var/datum/ares_ticket/access/access_ticket = locate(params["ticket"]) + if(!istype(access_ticket)) + return FALSE + for(var/obj/item/card/id/identification in waiting_ids) + if(identification.registered_gid != access_ticket.user_id_num) + continue + identification.handle_ares_access(MAIN_AI_SYSTEM, user) + access_ticket.ticket_status = TICKET_GRANTED + ares_apollo_talk("Access Ticket [access_ticket.ticket_id]: [access_ticket.ticket_submitter] granted core access.") + return TRUE + for(var/obj/item/card/id/identification in active_ids) + if(identification.registered_gid != access_ticket.user_id_num) + continue + identification.handle_ares_access(MAIN_AI_SYSTEM, user) + access_ticket.ticket_status = TICKET_REVOKED + ares_apollo_talk("Access Ticket [access_ticket.ticket_id]: core access for [access_ticket.ticket_submitter] revoked.") + return TRUE + return FALSE + + if("reject_access") + var/datum/ares_ticket/access/access_ticket = locate(params["ticket"]) + if(!istype(access_ticket)) + return FALSE + access_ticket.ticket_status = TICKET_REJECTED + to_chat(user, SPAN_NOTICE("[access_ticket.ticket_type] [access_ticket.ticket_id] marked as rejected.")) + ares_apollo_talk("Access Ticket [access_ticket.ticket_id] rejected.") + return TRUE + + if("new_report") + var/priority_report = FALSE + var/maint_type = tgui_input_list(user, "What is the type of maintenance item you wish to report?", "Report Category", GLOB.maintenance_categories, 30 SECONDS) + switch(maint_type) + if("Major Structural Damage", "Fire", "Communications Failure", "Power Generation Failure") + priority_report = TRUE + + if(!maint_type) + return FALSE + var/details = tgui_input_text(user, "What are the details for this report?", "Ticket Details", encode = FALSE) + if(!details) + return FALSE + + if(!priority_report) + var/is_priority = tgui_alert(user, "Is this a priority report?", "Priority designation", list("Yes", "No")) + if(is_priority == "Yes") + priority_report = TRUE + + var/confirm = alert(user, "Please confirm the submission of your maintenance report. \n\n Priority: [priority_report ? "Yes" : "No"]\n Category: '[maint_type]'\n Details: '[details]'\n\n Is this correct?", "Confirmation", "Yes", "No") + if(confirm == "Yes") + var/datum/ares_ticket/maintenance/maint_ticket = new(MAIN_AI_SYSTEM, maint_type, details, priority_report) + tickets_maintenance += maint_ticket + if(priority_report) + ares_apollo_talk("Priority Maintenance Report: [maint_type] - ID [maint_ticket.ticket_id]. Seek and resolve.") + log_game("ARES: Maintenance Ticket '\ref[maint_ticket]' created by [key_name(user)] as [MAIN_AI_SYSTEM] with Category '[maint_type]' and Details of '[details]'.") + return TRUE + return FALSE + + if("cancel_ticket") + var/datum/ares_ticket/ticket = locate(params["ticket"]) + if(!istype(ticket)) + return FALSE + if(ticket.ticket_submitter != MAIN_AI_SYSTEM) + to_chat(user, SPAN_WARNING("You cannot cancel a ticket that does not belong to [MAIN_AI_SYSTEM]!")) + return FALSE + to_chat(user, SPAN_WARNING("[ticket.ticket_type] [ticket.ticket_id] has been cancelled.")) + ticket.ticket_status = TICKET_CANCELLED + if(ticket.ticket_priority) + ares_apollo_talk("Priority [ticket.ticket_type] [ticket.ticket_id] has been cancelled.") + return TRUE + + if("mark_ticket") + var/datum/ares_ticket/ticket = locate(params["ticket"]) + if(!istype(ticket)) + return FALSE + var/options_list = list(TICKET_COMPLETED, TICKET_REJECTED) + if(ticket.ticket_priority) + options_list += TICKET_NON_PRIORITY + else + options_list += TICKET_PRIORITY + var/choice = tgui_alert(user, "What do you wish to mark the ticket as?", "Mark", options_list, 20 SECONDS) + switch(choice) + if(TICKET_PRIORITY) + ticket.ticket_priority = TRUE + ares_apollo_talk("[ticket.ticket_type] [ticket.ticket_id] upgraded to Priority.") + return TRUE + if(TICKET_NON_PRIORITY) + ticket.ticket_priority = FALSE + ares_apollo_talk("[ticket.ticket_type] [ticket.ticket_id] downgraded from Priority.") + return TRUE + if(TICKET_COMPLETED) + ticket.ticket_status = TICKET_COMPLETED + if(TICKET_REJECTED) + ticket.ticket_status = TICKET_REJECTED + else + return FALSE + if(ticket.ticket_priority) + ares_apollo_talk("Priority [ticket.ticket_type] [ticket.ticket_id] has been [choice] by [MAIN_AI_SYSTEM].") + to_chat(user, SPAN_NOTICE("[ticket.ticket_type] [ticket.ticket_id] marked as [choice].")) + return TRUE + + if("trigger_vent") + var/obj/structure/pipes/vents/pump/no_boom/gas/sec_vent = locate(params["vent"]) + if(!istype(sec_vent) || sec_vent.welded) + to_chat(user, SPAN_WARNING("ERROR: Gas release failure.")) + playsound(src, 'sound/machines/buzz-two.ogg', 15, 1) + return FALSE + if(!COOLDOWN_FINISHED(sec_vent, vent_trigger_cooldown)) + to_chat(user, SPAN_WARNING("ERROR: Insufficient gas reserve for this vent.")) + playsound(src, 'sound/machines/buzz-two.ogg', 15, 1) + return FALSE + to_chat(user, SPAN_WARNING("Initiating gas release from [sec_vent.vent_tag].")) + playsound(src, 'sound/machines/chime.ogg', 15, 1) + COOLDOWN_START(sec_vent, vent_trigger_cooldown, COOLDOWN_ARES_VENT) + ares_apollo_talk("Nerve Gas release imminent from [sec_vent.vent_tag].") + log_ares_security("Nerve Gas Release", "Released Nerve Gas from Vent '[sec_vent.vent_tag]'.", MAIN_AI_SYSTEM) + sec_vent.create_gas(VENT_GAS_CN20_XENO, 6, 5 SECONDS) + log_admin("[key_name(user)] released nerve gas from Vent '[sec_vent.vent_tag]' via ARES.") diff --git a/code/game/machinery/ARES/ARES_interface_apollo.dm b/code/game/machinery/ARES/ARES_interface_apollo.dm index 56283417ae05..93637f39d1a7 100644 --- a/code/game/machinery/ARES/ARES_interface_apollo.dm +++ b/code/game/machinery/ARES/ARES_interface_apollo.dm @@ -18,6 +18,9 @@ /// The last person to login. var/last_login + /// Notification sound + var/notify_sounds = TRUE + /obj/structure/machinery/computer/working_joe/proc/link_systems(datum/ares_link/new_link = GLOB.ares_link, override) if(link && !override) @@ -34,6 +37,16 @@ link_systems(override = FALSE) . = ..() +/obj/structure/machinery/computer/working_joe/proc/notify() + if(notify_sounds) + playsound(src, 'sound/machines/pda_ping.ogg', 25, 0) + +/obj/structure/machinery/computer/working_joe/proc/send_notifcation() + for(var/obj/structure/machinery/computer/working_joe/ticketer as anything in link.ticket_computers) + if(ticketer == src) + continue + ticketer.notify() + /obj/structure/machinery/computer/working_joe/proc/delink() if(link) link.ticket_computers -= src @@ -76,8 +89,9 @@ data["access_log"] = list() data["access_log"] += datacore.apollo_login_list - data["apollo_log"] = list() - data["apollo_log"] += datacore.apollo_log + data["apollo_log"] = datacore.apollo_log + + data["notify_sounds"] = notify_sounds var/list/logged_maintenance = list() for(var/datum/ares_ticket/maintenance/maint_ticket as anything in link.tickets_maintenance) @@ -127,6 +141,8 @@ requesting_access += access_ticket.ticket_name data["access_tickets"] = logged_access + data["security_vents"] = link.get_ares_vents() + return data /obj/structure/machinery/computer/working_joe/ui_status(mob/user, datum/ui_state/state) @@ -142,29 +158,29 @@ return var/playsound = TRUE - var/mob/living/carbon/human/operator = usr + var/mob/living/carbon/human/user = ui.user switch (action) if("go_back") if(!last_menu) - return to_chat(usr, SPAN_WARNING("Error, no previous page detected.")) + return to_chat(user, SPAN_WARNING("Error, no previous page detected.")) var/temp_holder = current_menu current_menu = last_menu last_menu = temp_holder if("login") - var/obj/item/card/id/idcard = operator.get_active_hand() + var/obj/item/card/id/idcard = user.get_active_hand() if(istype(idcard)) authentication = get_ares_access(idcard) last_login = idcard.registered_name - else if(operator.wear_id) - idcard = operator.wear_id - if(istype(idcard)) + else if(user.wear_id) + idcard = user.get_idcard() + if(idcard) authentication = get_ares_access(idcard) last_login = idcard.registered_name else - to_chat(operator, SPAN_WARNING("You require an ID card to access this terminal!")) + to_chat(user, SPAN_WARNING("You require an ID card to access this terminal!")) playsound(src, 'sound/machines/buzz-two.ogg', 15, 1) return FALSE if(authentication) @@ -197,33 +213,41 @@ if("page_maintenance") last_menu = current_menu current_menu = "maint_claim" + if("page_core_gas") + last_menu = current_menu + current_menu = "core_security_gas" + + if("toggle_sound") + notify_sounds = !notify_sounds if("new_report") var/priority_report = FALSE - var/maint_type = tgui_input_list(operator, "What is the type of maintenance item you wish to report?", "Report Category", GLOB.maintenance_categories, 30 SECONDS) + var/maint_type = tgui_input_list(user, "What is the type of maintenance item you wish to report?", "Report Category", GLOB.maintenance_categories, 30 SECONDS) switch(maint_type) if("Major Structural Damage", "Fire", "Communications Failure", "Power Generation Failure") priority_report = TRUE if(!maint_type) return FALSE - var/details = tgui_input_text(operator, "What are the details for this report?", "Ticket Details", encode = FALSE) + var/details = tgui_input_text(user, "What are the details for this report?", "Ticket Details", encode = FALSE) if(!details) return FALSE if((authentication >= APOLLO_ACCESS_REPORTER) && !priority_report) - var/is_priority = tgui_alert(operator, "Is this a priority report?", "Priority designation", list("Yes", "No")) + var/is_priority = tgui_alert(user, "Is this a priority report?", "Priority designation", list("Yes", "No")) if(is_priority == "Yes") priority_report = TRUE - var/confirm = alert(operator, "Please confirm the submission of your maintenance report. \n\n Priority: [priority_report ? "Yes" : "No"]\n Category: '[maint_type]'\n Details: '[details]'\n\n Is this correct?", "Confirmation", "Yes", "No") + var/confirm = alert(user, "Please confirm the submission of your maintenance report. \n\n Priority: [priority_report ? "Yes" : "No"]\n Category: '[maint_type]'\n Details: '[details]'\n\n Is this correct?", "Confirmation", "Yes", "No") if(confirm == "Yes") if(link) var/datum/ares_ticket/maintenance/maint_ticket = new(last_login, maint_type, details, priority_report) link.tickets_maintenance += maint_ticket if(priority_report) ares_apollo_talk("Priority Maintenance Report: [maint_type] - ID [maint_ticket.ticket_id]. Seek and resolve.") - log_game("ARES: Maintenance Ticket '\ref[maint_ticket]' created by [key_name(operator)] as [last_login] with Category '[maint_type]' and Details of '[details]'.") + else + send_notifcation() + log_game("ARES: Maintenance Ticket '\ref[maint_ticket]' created by [key_name(user)] as [last_login] with Category '[maint_type]' and Details of '[details]'.") return TRUE return FALSE @@ -235,14 +259,14 @@ var/assigned = ticket.ticket_assignee if(assigned) if(assigned == last_login) - var/prompt = tgui_alert(usr, "You already claimed this ticket! Do you wish to drop your claim?", "Unclaim ticket", list("Yes", "No")) + var/prompt = tgui_alert(user, "You already claimed this ticket! Do you wish to drop your claim?", "Unclaim ticket", list("Yes", "No")) if(prompt != "Yes") return FALSE /// set ticket back to pending ticket.ticket_assignee = null ticket.ticket_status = TICKET_PENDING return claim - var/choice = tgui_alert(usr, "This ticket has already been claimed by [assigned]! Do you wish to override their claim?", "Claim Override", list("Yes", "No")) + var/choice = tgui_alert(user, "This ticket has already been claimed by [assigned]! Do you wish to override their claim?", "Claim Override", list("Yes", "No")) if(choice != "Yes") claim = FALSE if(claim) @@ -255,12 +279,14 @@ if(!istype(ticket)) return FALSE if(ticket.ticket_submitter != last_login) - to_chat(usr, SPAN_WARNING("You cannot cancel a ticket that does not belong to you!")) + to_chat(user, SPAN_WARNING("You cannot cancel a ticket that does not belong to you!")) return FALSE - to_chat(usr, SPAN_WARNING("[ticket.ticket_type] [ticket.ticket_id] has been cancelled.")) + to_chat(user, SPAN_WARNING("[ticket.ticket_type] [ticket.ticket_id] has been cancelled.")) ticket.ticket_status = TICKET_CANCELLED if(ticket.ticket_priority) ares_apollo_talk("Priority [ticket.ticket_type] [ticket.ticket_id] has been cancelled.") + else + send_notifcation() return TRUE if("mark_ticket") @@ -268,9 +294,9 @@ if(!istype(ticket)) return FALSE if(ticket.ticket_assignee != last_login && ticket.ticket_assignee) //must be claimed by you or unclaimed.) - to_chat(usr, SPAN_WARNING("You cannot update a ticket that is not assigned to you!")) + to_chat(user, SPAN_WARNING("You cannot update a ticket that is not assigned to you!")) return FALSE - var/choice = tgui_alert(usr, "What do you wish to mark the ticket as?", "Mark", list(TICKET_COMPLETED, TICKET_REJECTED), 20 SECONDS) + var/choice = tgui_alert(user, "What do you wish to mark the ticket as?", "Mark", list(TICKET_COMPLETED, TICKET_REJECTED), 20 SECONDS) switch(choice) if(TICKET_COMPLETED) ticket.ticket_status = TICKET_COMPLETED @@ -280,39 +306,41 @@ return FALSE if(ticket.ticket_priority) ares_apollo_talk("Priority [ticket.ticket_type] [ticket.ticket_id] has been [choice] by [last_login].") - to_chat(usr, SPAN_NOTICE("[ticket.ticket_type] [ticket.ticket_id] marked as [choice].")) + else + send_notifcation() + to_chat(user, SPAN_NOTICE("[ticket.ticket_type] [ticket.ticket_id] marked as [choice].")) return TRUE if("new_access") - var/obj/item/card/id/idcard = operator.get_active_hand() + var/obj/item/card/id/idcard = user.get_active_hand() var/has_id = FALSE if(istype(idcard)) has_id = TRUE - else if(operator.wear_id) - idcard = operator.wear_id - if(istype(idcard)) + else if(user.wear_id) + idcard = user.get_idcard() + if(idcard) has_id = TRUE if(!has_id) - to_chat(operator, SPAN_WARNING("You require an ID card to request an access ticket!")) + to_chat(user, SPAN_WARNING("You require an ID card to request an access ticket!")) playsound(src, 'sound/machines/buzz-two.ogg', 15, 1) return FALSE if(idcard.registered_name != last_login) - to_chat(operator, SPAN_WARNING("This ID card does not match the active login!")) + to_chat(user, SPAN_WARNING("This ID card does not match the active login!")) playsound(src, 'sound/machines/buzz-two.ogg', 15, 1) return FALSE - var/details = tgui_input_text(operator, "What is the purpose of this access ticket?", "Ticket Details", encode = FALSE) + var/details = tgui_input_text(user, "What is the purpose of this access ticket?", "Ticket Details", encode = FALSE) if(!details) return FALSE - var/confirm = alert(operator, "Please confirm the submission of your access ticket request.\n\nHolder: '[last_login]'\nDetails: '[details]'\n\nIs this correct?", "Confirmation", "Yes", "No") + var/confirm = alert(user, "Please confirm the submission of your access ticket request.\n\nHolder: '[last_login]'\nDetails: '[details]'\n\nIs this correct?", "Confirmation", "Yes", "No") if(confirm != "Yes" || !link) return FALSE var/datum/ares_ticket/access/access_ticket = new(last_login, details, FALSE, idcard.registered_gid) link.waiting_ids += idcard link.tickets_access += access_ticket - log_game("ARES: Access Ticket '\ref[access_ticket]' created by [key_name(operator)] as [last_login] with Details of '[details]'.") - message_admins(SPAN_STAFF_IC("[key_name_admin(operator)] created a new ARES Access Ticket."), 1) + log_game("ARES: Access Ticket '\ref[access_ticket]' created by [key_name(user)] as [last_login] with Details of '[details]'.") + message_admins(SPAN_STAFF_IC("[key_name_admin(user)] created a new ARES Access Ticket."), 1) ares_apollo_talk("Access Ticket [access_ticket.ticket_id]: [access_ticket.ticket_submitter] requesting access for '[details].") return TRUE @@ -328,16 +356,14 @@ break for(var/obj/item/card/id/identification in link.active_ids) - if(!istype(identification)) - continue if(identification.registered_gid != access_ticket.user_id_num) continue access_ticket.ticket_status = TICKET_RETURNED identification.access -= ACCESS_MARINE_AI_TEMP - identification.modification_log += "Temporary AI Access self-returned by [key_name(operator)]." + identification.modification_log += "Temporary AI Access self-returned by [key_name(user)]." - to_chat(operator, SPAN_NOTICE("Temporary Access Ticket surrendered.")) + to_chat(user, SPAN_NOTICE("Temporary Access Ticket surrendered.")) playsound(src, 'sound/machines/chime.ogg', 15, 1) ares_apollo_talk("Access Ticket [access_ticket.ticket_id]: [access_ticket.ticket_submitter] surrendered their access.") @@ -346,31 +372,27 @@ datacore.apollo_login_list += "[last_login] at [worldtime2text()], Surrendered Temporary Access Ticket." return TRUE - to_chat(operator, SPAN_WARNING("This ID card does not have an access ticket!")) + to_chat(user, SPAN_WARNING("This ID card does not have an access ticket!")) playsound(src, 'sound/machines/buzz-two.ogg', 15, 1) return FALSE if("auth_access") playsound = FALSE var/datum/ares_ticket/access/access_ticket = locate(params["ticket"]) - if(!access_ticket) + if(!istype(access_ticket)) return FALSE for(var/obj/item/card/id/identification in link.waiting_ids) - if(!istype(identification)) - continue if(identification.registered_gid != access_ticket.user_id_num) continue - identification.handle_ares_access(last_login, operator) + identification.handle_ares_access(last_login, user) access_ticket.ticket_status = TICKET_GRANTED playsound(src, 'sound/machines/chime.ogg', 15, 1) ares_apollo_talk("Access Ticket [access_ticket.ticket_id]: [access_ticket.ticket_submitter] was granted access by [last_login].") return TRUE for(var/obj/item/card/id/identification in link.active_ids) - if(!istype(identification)) - continue if(identification.registered_gid != access_ticket.user_id_num) continue - identification.handle_ares_access(last_login, operator) + identification.handle_ares_access(last_login, user) access_ticket.ticket_status = TICKET_REVOKED playsound(src, 'sound/machines/chime.ogg', 15, 1) ares_apollo_talk("Access Ticket [access_ticket.ticket_id]: [access_ticket.ticket_submitter] had access revoked by [last_login].") @@ -382,33 +404,72 @@ if(!istype(access_ticket)) return FALSE if(access_ticket.ticket_assignee != last_login && access_ticket.ticket_assignee) //must be claimed by you or unclaimed.) - to_chat(usr, SPAN_WARNING("You cannot update a ticket that is not assigned to you!")) + to_chat(user, SPAN_WARNING("You cannot update a ticket that is not assigned to you!")) return FALSE access_ticket.ticket_status = TICKET_REJECTED - to_chat(usr, SPAN_NOTICE("[access_ticket.ticket_type] [access_ticket.ticket_id] marked as rejected.")) + to_chat(user, SPAN_NOTICE("[access_ticket.ticket_type] [access_ticket.ticket_id] marked as rejected.")) ares_apollo_talk("Access Ticket [access_ticket.ticket_id]: [access_ticket.ticket_submitter] was rejected access by [last_login].") + for(var/obj/item/card/id/identification in link.waiting_ids) + if(identification.registered_gid != access_ticket.user_id_num) + continue + var/mob/living/carbon/human/id_owner = identification.registered_ref?.resolve() + if(id_owner) + to_chat(id_owner, SPAN_WARNING("AI visitation access rejected.")) + playsound_client(id_owner?.client, 'sound/machines/pda_ping.ogg', src, 25, 0) + return TRUE + + if("trigger_vent") + playsound = FALSE + var/obj/structure/pipes/vents/pump/no_boom/gas/sec_vent = locate(params["vent"]) + if(!istype(sec_vent) || sec_vent.welded) + to_chat(user, SPAN_WARNING("ERROR: Gas release failure.")) + playsound(src, 'sound/machines/buzz-two.ogg', 15, 1) + return FALSE + if(!COOLDOWN_FINISHED(sec_vent, vent_trigger_cooldown)) + to_chat(user, SPAN_WARNING("ERROR: Insufficient gas reserve for this vent.")) + playsound(src, 'sound/machines/buzz-two.ogg', 15, 1) + return FALSE + to_chat(user, SPAN_WARNING("Initiating gas release from [sec_vent.vent_tag].")) + playsound(src, 'sound/machines/chime.ogg', 15, 1) + COOLDOWN_START(sec_vent, vent_trigger_cooldown, COOLDOWN_ARES_VENT) + ares_apollo_talk("Nerve Gas release imminent from [sec_vent.vent_tag].") + log_ares_security("Nerve Gas Release", "Released Nerve Gas from Vent '[sec_vent.vent_tag]'.", last_login) + sec_vent.create_gas(VENT_GAS_CN20_XENO, 6, 5 SECONDS) + log_admin("[key_name(user)] released nerve gas from Vent '[sec_vent.vent_tag]' via ARES.") + + if("security_lockdown") + if(!COOLDOWN_FINISHED(datacore, aicore_lockdown)) + to_chat(user, SPAN_BOLDWARNING("AI Core Lockdown procedures are on cooldown! They will be ready in [COOLDOWN_SECONDSLEFT(datacore, aicore_lockdown)] seconds!")) + return FALSE + aicore_lockdown(user) return TRUE if(playsound) playsound(src, "keyboard_alt", 15, 1) -/obj/item/card/id/proc/handle_ares_access(logged_in, mob/user) - var/operator = key_name(user) +/obj/item/card/id/proc/handle_ares_access(logged_in = MAIN_AI_SYSTEM, mob/user) + var/changer = logged_in + if(user) + changer = key_name(user) var/datum/ares_link/link = GLOB.ares_link - if(logged_in == MAIN_AI_SYSTEM) - if(!user) - operator = "[MAIN_AI_SYSTEM] (Sensor Trip)" - else - operator = "[user.ckey]/([MAIN_AI_SYSTEM])" + if(ACCESS_MARINE_AI_TEMP in access) access -= ACCESS_MARINE_AI_TEMP link.active_ids -= src - modification_log += "Temporary AI access revoked by [operator]" + log_idmod(src, "Temporary AI access revoked by [logged_in]", changer) to_chat(user, SPAN_NOTICE("Access revoked from [registered_name].")) + var/mob/living/carbon/human/id_owner = registered_ref?.resolve() + if(id_owner) + to_chat(id_owner, SPAN_WARNING("AI visitation access revoked.")) + playsound_client(id_owner?.client, 'sound/machines/pda_ping.ogg', src, 25, 0) else access += ACCESS_MARINE_AI_TEMP - modification_log += "Temporary AI access granted by [operator]" + log_idmod(src, "Temporary AI access granted by [logged_in]", changer) to_chat(user, SPAN_NOTICE("Access granted to [registered_name].")) link.waiting_ids -= src link.active_ids += src + var/mob/living/carbon/human/id_owner = registered_ref?.resolve() + if(id_owner) + to_chat(id_owner, SPAN_HELPFUL("AI visitation access granted.")) + playsound_client(id_owner?.client, 'sound/machines/pda_ping.ogg', src, 25, 0) return TRUE diff --git a/code/game/machinery/ARES/ARES_procs.dm b/code/game/machinery/ARES/ARES_procs.dm index 06b082e3c5e2..ef1b836a3d4b 100644 --- a/code/game/machinery/ARES/ARES_procs.dm +++ b/code/game/machinery/ARES/ARES_procs.dm @@ -1,5 +1,5 @@ -GLOBAL_DATUM_INIT(ares_link, /datum/ares_link, new) GLOBAL_DATUM_INIT(ares_datacore, /datum/ares_datacore, new) +GLOBAL_DATUM_INIT(ares_link, /datum/ares_link, new) GLOBAL_LIST_INIT(maintenance_categories, list( "Broken Light", "Shattered Glass", @@ -25,7 +25,14 @@ GLOBAL_LIST_INIT(maintenance_categories, list( var/obj/structure/machinery/ares/processor/apollo/processor_apollo var/obj/structure/machinery/ares/processor/bioscan/processor_bioscan var/obj/structure/machinery/computer/ares_console/interface + var/datum/ares_console_admin/admin_interface + var/datum/ares_datacore/datacore + var/list/obj/structure/machinery/computer/working_joe/ticket_computers = list() + /// Linked security gas vents. + var/list/linked_vents = list() + /// The tag number for generated vent labels, if none is manually set. + var/tag_num = 1 /// Working Joe stuff var/list/tickets_maintenance = list() @@ -33,6 +40,42 @@ GLOBAL_LIST_INIT(maintenance_categories, list( var/list/waiting_ids = list() var/list/active_ids = list() +/datum/ares_link/New() + admin_interface = new + datacore = GLOB.ares_datacore + +/datum/ares_link/Destroy() + qdel(admin_interface) + for(var/obj/structure/machinery/ares/link in linked_systems) + link.delink() + for(var/obj/structure/machinery/computer/ares_console/interface in linked_systems) + interface.delink() + for(var/obj/effect/step_trigger/ares_alert/alert in linked_alerts) + alert.delink() + ..() + +/datum/ares_link/proc/get_ares_vents() + var/list/security_vents = list() + var/datum/ares_link/link = GLOB.ares_link + for(var/obj/structure/pipes/vents/pump/no_boom/gas/vent in link.linked_vents) + if(!vent.vent_tag) + vent.vent_tag = "Security Vent #[link.tag_num]" + link.tag_num++ + + var/list/current_vent = list() + var/is_available = COOLDOWN_FINISHED(vent, vent_trigger_cooldown) + current_vent["vent_tag"] = vent.vent_tag + current_vent["ref"] = "\ref[vent]" + current_vent["available"] = is_available + security_vents += list(current_vent) + return security_vents + + +/* BELOW ARE IN AdminAres.dm +/datum/ares_link/tgui_interact(mob/user, datum/tgui/ui) +/datum/ares_link/ui_data(mob/user) +*/ + /datum/ares_datacore /// A record of who logged in and when. var/list/interface_access_list = list() @@ -58,25 +101,26 @@ GLOBAL_LIST_INIT(maintenance_categories, list( var/list/records_security = list() /// Holds all (/datum/ares_record/flight)s var/list/records_flight = list() + /// Holds all (/datum/ares_record/tech)s + var/list/records_tech = list() /// Is nuke request usable or not? var/nuke_available = TRUE + /// Status of the AI Core Lockdown + var/ai_lockdown_active = FALSE COOLDOWN_DECLARE(ares_distress_cooldown) COOLDOWN_DECLARE(ares_nuclear_cooldown) COOLDOWN_DECLARE(ares_quarters_cooldown) - -/datum/ares_link/Destroy() - for(var/obj/structure/machinery/ares/link in linked_systems) - link.delink() - for(var/obj/structure/machinery/computer/ares_console/interface in linked_systems) - interface.delink() - for(var/obj/effect/step_trigger/ares_alert/alert in linked_alerts) - alert.delink() - ..() - + COOLDOWN_DECLARE(aicore_lockdown) // ------ ARES Logging Procs ------ // +/proc/ares_is_active() + for(var/mob/living/silicon/decoy/ship_ai/ai in GLOB.ai_mob_list) + if(ai.stat == DEAD) + return FALSE //ARES dead, most other systems also die with it + return TRUE + /proc/ares_apollo_talk(broadcast_message) var/datum/language/apollo/apollo = GLOB.all_languages[LANGUAGE_APOLLO] for(var/mob/living/silicon/decoy/ship_ai/ai in GLOB.ai_mob_list) @@ -89,48 +133,56 @@ GLOBAL_LIST_INIT(maintenance_categories, list( /proc/ares_can_interface() var/obj/structure/machinery/ares/processor/interface/processor = GLOB.ares_link.processor_interface - if(!istype(GLOB.ares_link)) + if(!istype(GLOB.ares_link) || !ares_is_active()) return FALSE if(processor && !processor.inoperable()) return TRUE return FALSE //interface processor not found or is broken /proc/ares_can_log() - if(!istype(GLOB.ares_link) || !istype(GLOB.ares_datacore)) + if(!istype(GLOB.ares_link) || !istype(GLOB.ares_datacore) || !ares_is_active()) return FALSE var/obj/structure/machinery/ares/cpu/central_processor = GLOB.ares_link.central_processor if(central_processor && !central_processor.inoperable()) return TRUE return FALSE //CPU not found or is broken -/proc/log_ares_apollo(speaker, message) - if(!ares_can_log()) +/proc/ares_can_apollo() + if(!istype(GLOB.ares_link) || !istype(GLOB.ares_datacore) || !ares_is_active()) return FALSE var/datum/ares_link/link = GLOB.ares_link if(!link.processor_apollo || link.processor_apollo.inoperable()) return FALSE + return TRUE + +/proc/log_ares_apollo(speaker, message) + if(!ares_can_log() || !ares_can_apollo()) + return FALSE if(!speaker) speaker = "Unknown" var/datum/ares_datacore/datacore = GLOB.ares_datacore datacore.apollo_log.Add("[worldtime2text()]: [speaker], '[message]'") -/proc/log_ares_bioscan(title, input) - if(!ares_can_log()) +/proc/log_ares_bioscan(title, input, forced = FALSE) + if(!ares_can_log() && !forced) return FALSE var/datum/ares_datacore/datacore = GLOB.ares_datacore datacore.records_bioscan.Add(new /datum/ares_record/bioscan(title, input)) -/proc/log_ares_bombardment(user_name, ob_name, coordinates) +/proc/log_ares_bombardment(user_name, ob_name, message) if(!ares_can_log()) return FALSE var/datum/ares_datacore/datacore = GLOB.ares_datacore - datacore.records_bombardment.Add(new /datum/ares_record/bombardment(ob_name, "Bombardment fired at [coordinates].", user_name)) + datacore.records_bombardment.Add(new /datum/ares_record/bombardment(ob_name, message, user_name)) -/proc/log_ares_announcement(title, message) +/proc/log_ares_announcement(title, message, signature) if(!ares_can_log()) return FALSE + var/final_msg = message + if(signature) + final_msg = "[signature]: - [final_msg]" var/datum/ares_datacore/datacore = GLOB.ares_datacore - datacore.records_announcement.Add(new /datum/ares_record/announcement(title, message)) + datacore.records_announcement.Add(new /datum/ares_record/announcement(title, final_msg)) /proc/log_ares_requisition(source, details, user_name) if(!ares_can_log()) @@ -138,11 +190,14 @@ GLOBAL_LIST_INIT(maintenance_categories, list( var/datum/ares_datacore/datacore = GLOB.ares_datacore datacore.records_asrs.Add(new /datum/ares_record/requisition_log(source, details, user_name)) -/proc/log_ares_security(title, details) +/proc/log_ares_security(title, details, signature) if(!ares_can_log()) return FALSE + var/final_msg = details + if(signature) + final_msg = "[signature]: - [final_msg]" var/datum/ares_datacore/datacore = GLOB.ares_datacore - datacore.records_security.Add(new /datum/ares_record/security(title, details)) + datacore.records_security.Add(new /datum/ares_record/security(title, final_msg)) /proc/log_ares_antiair(details) if(!ares_can_log()) @@ -155,6 +210,16 @@ GLOBAL_LIST_INIT(maintenance_categories, list( return FALSE var/datum/ares_datacore/datacore = GLOB.ares_datacore datacore.records_flight.Add(new /datum/ares_record/flight(details, user_name)) + +/proc/log_ares_tech(user_name, tier_tech = FALSE, title, details, point_cost, current_points) + if(!ares_can_log()) + return FALSE + var/new_details = "[title] - [details]" + if(point_cost) + new_details += " - Used [point_cost] INT of [current_points]." + var/datum/ares_datacore/datacore = GLOB.ares_datacore + datacore.records_tech.Add(new /datum/ares_record/tech(title, new_details, user_name, tier_tech)) + // ------ End ARES Logging Procs ------ // // ------ ARES Interface Procs ------ // @@ -168,9 +233,9 @@ GLOBAL_LIST_INIT(maintenance_categories, list( return ARES_ACCESS_CE if(JOB_SYNTH) return ARES_ACCESS_SYNTH - if(card.paygrade in GLOB.wy_paygrades) + if(card.paygrade in GLOB.wy_highcom_paygrades) return ARES_ACCESS_WY_COMMAND - if(card.paygrade in GLOB.highcom_paygrades) + if(card.paygrade in GLOB.uscm_highcom_paygrades) return ARES_ACCESS_HIGH if(card.paygrade in GLOB.co_paygrades) return ARES_ACCESS_CO @@ -185,46 +250,68 @@ GLOBAL_LIST_INIT(maintenance_categories, list( /obj/structure/machinery/computer/proc/ares_auth_to_text(access_level) switch(access_level) - if(ARES_ACCESS_BASIC)//0 + if(ARES_ACCESS_LOGOUT) + return "Logged Out" + if(ARES_ACCESS_BASIC) return "Authorized" - if(ARES_ACCESS_COMMAND)//1 + if(ARES_ACCESS_COMMAND) return "[MAIN_SHIP_NAME] Command" - if(ARES_ACCESS_JOE)//2 + if(ARES_ACCESS_JOE) return "Working Joe" - if(ARES_ACCESS_CORPORATE)//3 + if(ARES_ACCESS_CORPORATE) return "Weyland-Yutani" - if(ARES_ACCESS_SENIOR)//4 + if(ARES_ACCESS_SENIOR) return "[MAIN_SHIP_NAME] Senior Command" - if(ARES_ACCESS_CE)//5 + if(ARES_ACCESS_CE) return "Chief Engineer" - if(ARES_ACCESS_SYNTH)//6 + if(ARES_ACCESS_SYNTH) return "USCM Synthetic" - if(ARES_ACCESS_CO)//7 + if(ARES_ACCESS_CO) return "[MAIN_SHIP_NAME] Commanding Officer" - if(ARES_ACCESS_HIGH)//8 + if(ARES_ACCESS_HIGH) return "USCM High Command" - if(ARES_ACCESS_WY_COMMAND)//9 + if(ARES_ACCESS_WY_COMMAND) return "Weyland-Yutani Directorate" - if(ARES_ACCESS_DEBUG)//10 + if(ARES_ACCESS_DEBUG) return "AI Service Technician" -/obj/structure/machinery/computer/ares_console/proc/message_ares(text, mob/Sender, ref) - var/msg = SPAN_STAFF_IC("ARES: [key_name(Sender, 1)] [ARES_MARK(Sender)] [ADMIN_PP(Sender)] [ADMIN_VV(Sender)] [ADMIN_SM(Sender)] [ADMIN_JMP_USER(Sender)] [ARES_REPLY(Sender, ref)]: [text]") +/obj/structure/machinery/computer/ares_console/proc/message_ares(text, mob/Sender, ref, fake = FALSE) var/datum/ares_record/talk_log/conversation = locate(ref) + if(!istype(conversation)) + return + var/msg = SPAN_STAFF_IC("ARES: [key_name(Sender, 1)] [ARES_MARK(Sender)] [ADMIN_PP(Sender)] [ADMIN_VV(Sender)] [ADMIN_SM(Sender)] [ADMIN_JMP_USER(Sender)] [ARES_REPLY(Sender, ref)]: [text]") conversation.conversation += "[last_login] at [worldtime2text()], '[text]'" + if(fake) + log_say("[key_name(Sender)] faked the message '[text]' from [last_login] in ARES 1:1.") + msg = SPAN_STAFF_IC("ARES: [key_name(Sender, 1)] faked a message from '[last_login]': [text]") + else + log_say("[key_name(Sender)] sent '[text]' to ARES 1:1.") + for(var/client/admin in GLOB.admins) + if(admin.prefs.toggles_sound & SOUND_ARES_MESSAGE) + playsound_client(admin, 'sound/machines/chime.ogg', vol = 25) + for(var/client/admin in GLOB.admins) if((R_ADMIN|R_MOD) & admin.admin_holder.rights) to_chat(admin, msg) - if(admin.prefs.toggles_sound & SOUND_ARES_MESSAGE) - playsound_client(admin, 'sound/machines/chime.ogg', vol = 25) - log_say("[key_name(Sender)] sent '[text]' to ARES 1:1.") + var/admin_user = GLOB.ares_link.admin_interface.logged_in + if(admin_user && !fake) + to_chat(admin, SPAN_STAFF_IC("ADMINS/MODS: [SPAN_RED("[admin_user] is logged in to ARES Remote Interface! They may be replying to this message!")]")) /obj/structure/machinery/computer/ares_console/proc/response_from_ares(text, ref) var/datum/ares_record/talk_log/conversation = locate(ref) + if(!istype(conversation)) + return conversation.conversation += "[MAIN_AI_SYSTEM] at [worldtime2text()], '[text]'" // ------ End ARES Interface Procs ------ // +/proc/ares_final_words() + //APOLLO + ares_apollo_talk("APOLLO sub-system shutting down. STOP CODE: 0x000000f4|CRITICAL_PROCESS_DIED") + + //GENERAL CREW + shipwide_ai_announcement("A Problem has been detected and the [MAIN_AI_SYSTEM] system has been shutdown. \nTechnical Information: \n\n*** STOP CODE: 0x000000f4|CRITICAL_PROCESS_DIED\n\nPossible caused by: Rapid Unscheduled Disassembly\nContact an AI Service Technician for further assistance.", title = ":(", ares_logging = null) + /obj/structure/machinery/computer/working_joe/get_ares_access(obj/item/card/id/card) if(ACCESS_ARES_DEBUG in card.access) return APOLLO_ACCESS_DEBUG diff --git a/code/game/machinery/ARES/ARES_records.dm b/code/game/machinery/ARES/ARES_records.dm index f89b2c120e05..5bfe50dce068 100644 --- a/code/game/machinery/ARES/ARES_records.dm +++ b/code/game/machinery/ARES/ARES_records.dm @@ -45,7 +45,7 @@ /datum/ares_record/flight/New(details, user) time = worldtime2text() - src.title = "Flight Log" + title = "Flight Log" src.details = details src.user = user @@ -58,6 +58,18 @@ src.details = details src.user = user +/datum/ares_record/tech + record_name = ARES_RECORD_TECH + /// If this tech unlock changed the tier. + var/is_tier = FALSE + +/datum/ares_record/tech/New(title, details, user, tier_tech) + time = worldtime2text() + src.title = title + src.details = details + src.user = user + is_tier = tier_tech + /datum/ares_record/deletion record_name = ARES_RECORD_DELETED diff --git a/code/game/machinery/ARES/ARES_step_triggers.dm b/code/game/machinery/ARES/ARES_step_triggers.dm index fdf7b26b2e65..77a53200ddd3 100644 --- a/code/game/machinery/ARES/ARES_step_triggers.dm +++ b/code/game/machinery/ARES/ARES_step_triggers.dm @@ -33,9 +33,10 @@ return FALSE if(ishuman(passer)) var/mob/living/carbon/human/trespasser = passer - if(pass_accesses && (trespasser.wear_id)) + var/obj/item/card/id/card = trespasser.get_idcard() + if(pass_accesses && card) for(var/tag in pass_accesses) - if(tag in trespasser.wear_id.access) + if(tag in card.access) return FALSE Trigger(passer) return TRUE @@ -69,7 +70,7 @@ broadcast_message = "ALERT: Unauthorized movement detected in [area_name]!" var/datum/ares_link/link = GLOB.ares_link - if(link.processor_apollo.inoperable()) + if(!ares_can_apollo()) return FALSE to_chat(passer, SPAN_BOLDWARNING("You hear a soft beeping sound as you cross the threshold.")) @@ -123,11 +124,9 @@ var/check_contents = TRUE if(ishuman(passer)) var/mob/living/carbon/human/human_passer = passer - idcard = human_passer.wear_id - if(istype(idcard)) + idcard = human_passer.get_idcard() + if(idcard) check_contents = FALSE - else - idcard = null if(istype(passer, /obj/item/card/id)) idcard = passer @@ -154,7 +153,7 @@ var/broadcast_message = get_broadcast(passer, idcard, failure) var/datum/ares_link/link = GLOB.ares_link - if(link.processor_apollo.inoperable()) + if(!ares_can_apollo()) return FALSE to_chat(passer, SPAN_BOLDWARNING("You hear a harsh buzzing sound as you cross the threshold!")) diff --git a/code/game/machinery/ARES/apollo_pda.dm b/code/game/machinery/ARES/apollo_pda.dm index 8df3faf79260..7b92b869daeb 100644 --- a/code/game/machinery/ARES/apollo_pda.dm +++ b/code/game/machinery/ARES/apollo_pda.dm @@ -19,6 +19,9 @@ /// The last person to login. var/last_login + /// Notification sound + var/notify_sounds = TRUE + /obj/item/device/working_joe_pda/proc/link_systems(datum/ares_link/new_link = GLOB.ares_link, override) if(link && !override) @@ -35,6 +38,16 @@ link_systems(override = FALSE) . = ..() +/obj/item/device/working_joe_pda/proc/notify() + if(notify_sounds) + playsound(src, 'sound/machines/pda_ping.ogg', 25, 0) + +/obj/item/device/working_joe_pda/proc/send_notifcation() + for(var/obj/item/device/working_joe_pda/ticketer as anything in link.ticket_computers) + if(ticketer == src) + continue + ticketer.notify() + /obj/item/device/working_joe_pda/proc/delink() if(link) link.ticket_computers -= src @@ -103,6 +116,8 @@ data["apollo_log"] = list() data["apollo_log"] += datacore.apollo_log + data["notify_sounds"] = notify_sounds + var/list/logged_maintenance = list() for(var/datum/ares_ticket/maintenance/maint_ticket as anything in link.tickets_maintenance) if(!istype(maint_ticket)) @@ -151,6 +166,8 @@ requesting_access += access_ticket.ticket_name data["access_tickets"] = logged_access + data["security_vents"] = link.get_ares_vents() + return data /obj/item/device/working_joe_pda/ui_status(mob/user, datum/ui_state/state) @@ -164,29 +181,29 @@ return var/playsound = TRUE - var/mob/living/carbon/human/operator = usr + var/mob/living/carbon/human/user = ui.user switch (action) if("go_back") if(!last_menu) - return to_chat(usr, SPAN_WARNING("Error, no previous page detected.")) + return to_chat(user, SPAN_WARNING("Error, no previous page detected.")) var/temp_holder = current_menu current_menu = last_menu last_menu = temp_holder if("login") - var/obj/item/card/id/idcard = operator.get_active_hand() + var/obj/item/card/id/idcard = user.get_active_hand() if(istype(idcard)) authentication = get_ares_access(idcard) last_login = idcard.registered_name - else if(operator.wear_id) - idcard = operator.wear_id - if(istype(idcard)) + else if(user.wear_id) + idcard = user.get_idcard() + if(idcard) authentication = get_ares_access(idcard) last_login = idcard.registered_name else - to_chat(operator, SPAN_WARNING("You require an ID card to access this terminal!")) + to_chat(user, SPAN_WARNING("You require an ID card to access this terminal!")) playsound(src, 'sound/machines/buzz-two.ogg', 15, 1) return FALSE if(authentication) @@ -222,33 +239,41 @@ if("page_maintenance") last_menu = current_menu current_menu = "maint_claim" + if("page_core_gas") + last_menu = current_menu + current_menu = "core_security_gas" + + if("toggle_sound") + notify_sounds = !notify_sounds if("new_report") var/priority_report = FALSE - var/maint_type = tgui_input_list(operator, "What is the type of maintenance item you wish to report?", "Report Category", GLOB.maintenance_categories, 30 SECONDS) + var/maint_type = tgui_input_list(user, "What is the type of maintenance item you wish to report?", "Report Category", GLOB.maintenance_categories, 30 SECONDS) switch(maint_type) if("Major Structural Damage", "Fire", "Communications Failure", "Power Generation Failure") priority_report = TRUE if(!maint_type) return FALSE - var/details = tgui_input_text(operator, "What are the details for this report?", "Ticket Details", encode = FALSE) + var/details = tgui_input_text(user, "What are the details for this report?", "Ticket Details", encode = FALSE) if(!details) return FALSE if((authentication >= APOLLO_ACCESS_REPORTER) && !priority_report) - var/is_priority = tgui_alert(operator, "Is this a priority report?", "Priority designation", list("Yes", "No")) + var/is_priority = tgui_alert(user, "Is this a priority report?", "Priority designation", list("Yes", "No")) if(is_priority == "Yes") priority_report = TRUE - var/confirm = alert(operator, "Please confirm the submission of your maintenance report. \n\n Priority: [priority_report ? "Yes" : "No"]\n Category: '[maint_type]'\n Details: '[details]'\n\n Is this correct?", "Confirmation", "Yes", "No") + var/confirm = alert(user, "Please confirm the submission of your maintenance report. \n\n Priority: [priority_report ? "Yes" : "No"]\n Category: '[maint_type]'\n Details: '[details]'\n\n Is this correct?", "Confirmation", "Yes", "No") if(confirm == "Yes") if(link) var/datum/ares_ticket/maintenance/maint_ticket = new(last_login, maint_type, details, priority_report) link.tickets_maintenance += maint_ticket if(priority_report) ares_apollo_talk("Priority Maintenance Report: [maint_type] - ID [maint_ticket.ticket_id]. Seek and resolve.") - log_game("ARES: Maintenance Ticket '\ref[maint_ticket]' created by [key_name(operator)] as [last_login] with Category '[maint_type]' and Details of '[details]'.") + else + send_notifcation() + log_game("ARES: Maintenance Ticket '\ref[maint_ticket]' created by [key_name(user)] as [last_login] with Category '[maint_type]' and Details of '[details]'.") return TRUE return FALSE @@ -260,14 +285,14 @@ var/assigned = ticket.ticket_assignee if(assigned) if(assigned == last_login) - var/prompt = tgui_alert(usr, "You already claimed this ticket! Do you wish to drop your claim?", "Unclaim ticket", list("Yes", "No")) + var/prompt = tgui_alert(user, "You already claimed this ticket! Do you wish to drop your claim?", "Unclaim ticket", list("Yes", "No")) if(prompt != "Yes") return FALSE /// set ticket back to pending ticket.ticket_assignee = null ticket.ticket_status = TICKET_PENDING return claim - var/choice = tgui_alert(usr, "This ticket has already been claimed by [assigned]! Do you wish to override their claim?", "Claim Override", list("Yes", "No")) + var/choice = tgui_alert(user, "This ticket has already been claimed by [assigned]! Do you wish to override their claim?", "Claim Override", list("Yes", "No")) if(choice != "Yes") claim = FALSE if(claim) @@ -280,12 +305,14 @@ if(!istype(ticket)) return FALSE if(ticket.ticket_submitter != last_login) - to_chat(usr, SPAN_WARNING("You cannot cancel a ticket that does not belong to you!")) + to_chat(user, SPAN_WARNING("You cannot cancel a ticket that does not belong to you!")) return FALSE - to_chat(usr, SPAN_WARNING("[ticket.ticket_type] [ticket.ticket_id] has been cancelled.")) + to_chat(user, SPAN_WARNING("[ticket.ticket_type] [ticket.ticket_id] has been cancelled.")) ticket.ticket_status = TICKET_CANCELLED if(ticket.ticket_priority) ares_apollo_talk("Priority [ticket.ticket_type] [ticket.ticket_id] has been cancelled.") + else + send_notifcation() return TRUE if("mark_ticket") @@ -293,9 +320,9 @@ if(!istype(ticket)) return FALSE if(ticket.ticket_assignee != last_login && ticket.ticket_assignee) //must be claimed by you or unclaimed.) - to_chat(usr, SPAN_WARNING("You cannot update a ticket that is not assigned to you!")) + to_chat(user, SPAN_WARNING("You cannot update a ticket that is not assigned to you!")) return FALSE - var/choice = tgui_alert(usr, "What do you wish to mark the ticket as?", "Mark", list(TICKET_COMPLETED, TICKET_REJECTED), 20 SECONDS) + var/choice = tgui_alert(user, "What do you wish to mark the ticket as?", "Mark", list(TICKET_COMPLETED, TICKET_REJECTED), 20 SECONDS) switch(choice) if(TICKET_COMPLETED) ticket.ticket_status = TICKET_COMPLETED @@ -305,39 +332,41 @@ return FALSE if(ticket.ticket_priority) ares_apollo_talk("Priority [ticket.ticket_type] [ticket.ticket_id] has been [choice] by [last_login].") - to_chat(usr, SPAN_NOTICE("[ticket.ticket_type] [ticket.ticket_id] marked as [choice].")) + else + send_notifcation() + to_chat(user, SPAN_NOTICE("[ticket.ticket_type] [ticket.ticket_id] marked as [choice].")) return TRUE if("new_access") - var/obj/item/card/id/idcard = operator.get_active_hand() + var/obj/item/card/id/idcard = user.get_active_hand() var/has_id = FALSE if(istype(idcard)) has_id = TRUE - else if(operator.wear_id) - idcard = operator.wear_id - if(istype(idcard)) + else if(user.wear_id) + idcard = user.get_idcard() + if(idcard) has_id = TRUE if(!has_id) - to_chat(operator, SPAN_WARNING("You require an ID card to request an access ticket!")) + to_chat(user, SPAN_WARNING("You require an ID card to request an access ticket!")) playsound(src, 'sound/machines/buzz-two.ogg', 15, 1) return FALSE if(idcard.registered_name != last_login) - to_chat(operator, SPAN_WARNING("This ID card does not match the active login!")) + to_chat(user, SPAN_WARNING("This ID card does not match the active login!")) playsound(src, 'sound/machines/buzz-two.ogg', 15, 1) return FALSE - var/details = tgui_input_text(operator, "What is the purpose of this access ticket?", "Ticket Details", encode = FALSE) + var/details = tgui_input_text(user, "What is the purpose of this access ticket?", "Ticket Details", encode = FALSE) if(!details) return FALSE - var/confirm = alert(operator, "Please confirm the submission of your access ticket request.\n\nHolder: '[last_login]'\nDetails: '[details]'\n\nIs this correct?", "Confirmation", "Yes", "No") + var/confirm = alert(user, "Please confirm the submission of your access ticket request.\n\nHolder: '[last_login]'\nDetails: '[details]'\n\nIs this correct?", "Confirmation", "Yes", "No") if(confirm != "Yes" || !link) return FALSE var/datum/ares_ticket/access/access_ticket = new(last_login, details, FALSE, idcard.registered_gid) link.waiting_ids += idcard link.tickets_access += access_ticket - log_game("ARES: Access Ticket '\ref[access_ticket]' created by [key_name(operator)] as [last_login] with Details of '[details]'.") - message_admins(SPAN_STAFF_IC("[key_name_admin(operator)] created a new ARES Access Ticket."), 1) + log_game("ARES: Access Ticket '\ref[access_ticket]' created by [key_name(user)] as [last_login] with Details of '[details]'.") + message_admins(SPAN_STAFF_IC("[key_name_admin(user)] created a new ARES Access Ticket."), 1) ares_apollo_talk("Access Ticket [access_ticket.ticket_id]: [access_ticket.ticket_submitter] requesting access for '[details].") return TRUE @@ -353,16 +382,14 @@ break for(var/obj/item/card/id/identification in link.active_ids) - if(!istype(identification)) - continue if(identification.registered_gid != access_ticket.user_id_num) continue access_ticket.ticket_status = TICKET_RETURNED identification.access -= ACCESS_MARINE_AI_TEMP - identification.modification_log += "Temporary AI Access self-returned by [key_name(operator)]." + identification.modification_log += "Temporary AI Access self-returned by [key_name(user)]." - to_chat(operator, SPAN_NOTICE("Temporary Access Ticket surrendered.")) + to_chat(user, SPAN_NOTICE("Temporary Access Ticket surrendered.")) playsound(src, 'sound/machines/chime.ogg', 15, 1) ares_apollo_talk("Access Ticket [access_ticket.ticket_id]: [access_ticket.ticket_submitter] surrendered their access.") @@ -371,7 +398,7 @@ datacore.apollo_login_list += "[last_login] at [worldtime2text()], Surrendered Temporary Access Ticket." return TRUE - to_chat(operator, SPAN_WARNING("This ID card does not have an access ticket!")) + to_chat(user, SPAN_WARNING("This ID card does not have an access ticket!")) playsound(src, 'sound/machines/buzz-two.ogg', 15, 1) return FALSE @@ -381,21 +408,17 @@ if(!access_ticket) return FALSE for(var/obj/item/card/id/identification in link.waiting_ids) - if(!istype(identification)) - continue if(identification.registered_gid != access_ticket.user_id_num) continue - identification.handle_ares_access(last_login, operator) + identification.handle_ares_access(last_login, user) access_ticket.ticket_status = TICKET_GRANTED playsound(src, 'sound/machines/chime.ogg', 15, 1) ares_apollo_talk("Access Ticket [access_ticket.ticket_id]: [access_ticket.ticket_submitter] was granted access by [last_login].") return TRUE for(var/obj/item/card/id/identification in link.active_ids) - if(!istype(identification)) - continue if(identification.registered_gid != access_ticket.user_id_num) continue - identification.handle_ares_access(last_login, operator) + identification.handle_ares_access(last_login, user) access_ticket.ticket_status = TICKET_REVOKED playsound(src, 'sound/machines/chime.ogg', 15, 1) ares_apollo_talk("Access Ticket [access_ticket.ticket_id]: [access_ticket.ticket_submitter] had access revoked by [last_login].") @@ -407,11 +430,44 @@ if(!istype(access_ticket)) return FALSE if(access_ticket.ticket_assignee != last_login && access_ticket.ticket_assignee) //must be claimed by you or unclaimed.) - to_chat(usr, SPAN_WARNING("You cannot update a ticket that is not assigned to you!")) + to_chat(user, SPAN_WARNING("You cannot update a ticket that is not assigned to you!")) return FALSE access_ticket.ticket_status = TICKET_REJECTED - to_chat(usr, SPAN_NOTICE("[access_ticket.ticket_type] [access_ticket.ticket_id] marked as rejected.")) + to_chat(user, SPAN_NOTICE("[access_ticket.ticket_type] [access_ticket.ticket_id] marked as rejected.")) ares_apollo_talk("Access Ticket [access_ticket.ticket_id]: [access_ticket.ticket_submitter] was rejected access by [last_login].") + for(var/obj/item/card/id/identification in link.waiting_ids) + if(identification.registered_gid != access_ticket.user_id_num) + continue + var/mob/living/carbon/human/id_owner = identification.registered_ref?.resolve() + if(id_owner) + to_chat(id_owner, SPAN_WARNING("AI visitation access rejected.")) + playsound_client(id_owner?.client, 'sound/machines/pda_ping.ogg', src, 25, 0) + return TRUE + + if("trigger_vent") + playsound = FALSE + var/obj/structure/pipes/vents/pump/no_boom/gas/sec_vent = locate(params["vent"]) + if(!istype(sec_vent) || sec_vent.welded) + to_chat(user, SPAN_WARNING("ERROR: Gas release failure.")) + playsound(src, 'sound/machines/buzz-two.ogg', 15, 1) + return FALSE + if(!COOLDOWN_FINISHED(sec_vent, vent_trigger_cooldown)) + to_chat(user, SPAN_WARNING("ERROR: Insufficient gas reserve for this vent.")) + playsound(src, 'sound/machines/buzz-two.ogg', 15, 1) + return FALSE + to_chat(user, SPAN_WARNING("Initiating gas release from [sec_vent.vent_tag].")) + playsound(src, 'sound/machines/chime.ogg', 15, 1) + COOLDOWN_START(sec_vent, vent_trigger_cooldown, COOLDOWN_ARES_VENT) + ares_apollo_talk("Nerve Gas release imminent from [sec_vent.vent_tag].") + log_ares_security("Nerve Gas Release", "Released Nerve Gas from Vent '[sec_vent.vent_tag]'.", last_login) + sec_vent.create_gas(VENT_GAS_CN20_XENO, 6, 5 SECONDS) + log_admin("[key_name(user)] released nerve gas from Vent '[sec_vent.vent_tag]' via ARES.") + + if("security_lockdown") + if(!COOLDOWN_FINISHED(datacore, aicore_lockdown)) + to_chat(user, SPAN_BOLDWARNING("AI Core Lockdown procedures are on cooldown! They will be ready in [COOLDOWN_SECONDSLEFT(datacore, aicore_lockdown)] seconds!")) + return FALSE + aicore_lockdown(user) return TRUE if(playsound) diff --git a/code/game/machinery/OpTable.dm b/code/game/machinery/OpTable.dm index 03c013703b07..1b27ddc9bd6b 100644 --- a/code/game/machinery/OpTable.dm +++ b/code/game/machinery/OpTable.dm @@ -196,7 +196,7 @@ // Check for blood if(H.blood_volume < BLOOD_VOLUME_SAFE) if(!(patient_exam & PATIENT_LOW_BLOOD)) - visible_message("[icon2html(src, viewers(src))] The [src] beeps, Warning: Patient has a dangerously low blood level: [round(H.blood_volume / BLOOD_VOLUME_NORMAL * 100)]%. Type: [H.blood_type].") + visible_message("[icon2html(src, viewers(src))] The [src] beeps, Warning: Patient has a dangerously low blood level: [floor(H.blood_volume / BLOOD_VOLUME_NORMAL * 100)]%. Type: [H.blood_type].") patient_exam |= PATIENT_LOW_BLOOD else patient_exam &= ~PATIENT_LOW_BLOOD @@ -204,7 +204,7 @@ // Check for nutrition if(H.nutrition < NUTRITION_LOW) if(!(patient_exam & PATIENT_LOW_NUTRITION)) - visible_message("[icon2html(src, viewers(src))] The [src] beeps, Warning: Patient has a dangerously low nutrition level: [round(H.nutrition / NUTRITION_MAX * 100)]%.") + visible_message("[icon2html(src, viewers(src))] The [src] beeps, Warning: Patient has a dangerously low nutrition level: [floor(H.nutrition / NUTRITION_MAX * 100)]%.") patient_exam |= PATIENT_LOW_NUTRITION else patient_exam &= ~PATIENT_LOW_NUTRITION diff --git a/code/game/machinery/aicore_lockdown.dm b/code/game/machinery/aicore_lockdown.dm new file mode 100644 index 000000000000..8120e98977dc --- /dev/null +++ b/code/game/machinery/aicore_lockdown.dm @@ -0,0 +1,119 @@ +/obj/structure/machinery/aicore_lockdown + name = "AI Core Lockdown" + icon_state = "big_red_button_tablev" + unslashable = TRUE + unacidable = TRUE + +/obj/structure/machinery/aicore_lockdown/ex_act(severity) + return FALSE + +/obj/structure/machinery/aicore_lockdown/attack_remote(mob/user as mob) + return FALSE + +/obj/structure/machinery/aicore_lockdown/attack_alien(mob/user as mob) + return FALSE + +/obj/structure/machinery/aicore_lockdown/attackby(obj/item/attacking_item, mob/user) + return attack_hand(user) + +/obj/structure/machinery/aicore_lockdown/attack_hand(mob/living/user) + if(isxeno(user)) + return FALSE + if(!allowed(user)) + to_chat(user, SPAN_DANGER("Access Denied")) + flick(initial(icon_state) + "-denied", src) + return FALSE + + if(!COOLDOWN_FINISHED(GLOB.ares_datacore, aicore_lockdown)) + to_chat(user, SPAN_BOLDWARNING("AI Core Lockdown procedures are on cooldown! They will be ready in [COOLDOWN_SECONDSLEFT(GLOB.ares_datacore, aicore_lockdown)] seconds!")) + return FALSE + + add_fingerprint(user) + aicore_lockdown(user) + +/obj/structure/machinery/door/poddoor/almayer/blended/ai_lockdown + name = "ARES Emergency Lockdown Shutter" + density = FALSE + open_layer = 1.9 + plane = FLOOR_PLANE + +/obj/structure/machinery/door/poddoor/almayer/blended/ai_lockdown/aicore + icon_state = "aidoor1" + base_icon_state = "aidoor" + +/obj/structure/machinery/door/poddoor/almayer/blended/ai_lockdown/aicore/white + icon_state = "w_aidoor1" + base_icon_state = "w_aidoor" + +/obj/structure/machinery/door/poddoor/almayer/blended/ai_lockdown/white + icon_state = "w_almayer_pdoor1" + base_icon_state = "w_almayer_pdoor" + +/obj/structure/machinery/door/poddoor/almayer/blended/ai_lockdown/Initialize() + . = ..() + RegisterSignal(SSdcs, COMSIG_GLOB_AICORE_LOCKDOWN, PROC_REF(close)) + RegisterSignal(SSdcs, COMSIG_GLOB_AICORE_LIFT, PROC_REF(open)) + + +/client/proc/admin_aicore_alert() + set name = "AI Core Lockdown" + set category = "Admin.Ship" + + if(!admin_holder ||!check_rights(R_EVENT)) + return FALSE + + var/prompt = "Are you sure you want to trigger an AI Core lockdown? This will raise to red alert, and lockdown the AI Core." + + if(GLOB.ares_datacore.ai_lockdown_active == TRUE) + prompt = "Are you sure you want to lift the AI Core lockdown? This will lower to blue alert." + + var/choice = tgui_alert(src, prompt, "Choose.", list("Yes", "No"), 20 SECONDS) + if(choice != "Yes") + return FALSE + + choice = tgui_alert(src, "Do you want to use a custom announcement?", "Choose.", list("Yes", "No"), 20 SECONDS) + if(choice == "Yes") + var/message = tgui_input_text(src, "Please enter announcement text.", "what?") + aicore_lockdown(usr, message, admin = TRUE) + else + aicore_lockdown(usr, admin = TRUE) + return TRUE + +/proc/aicore_lockdown(mob/user, message, admin = FALSE) + if(IsAdminAdvancedProcCall()) + return PROC_BLOCKED + + var/log = "[key_name(user)] triggered AI core lockdown!" + var/ares_log = "Triggered triggered AI Core Emergency Lockdown." + var/person = user.name + if(message) + log = "[key_name(user)] triggered AI core emergency lockdown! (Using a custom announcement)." + if(admin) + log += " (Admin Triggered)." + person = MAIN_AI_SYSTEM + + if(GLOB.ares_datacore.ai_lockdown_active) + GLOB.ares_datacore.ai_lockdown_active = FALSE + if(!message) + message = "ATTENTION! \n\nAI CORE EMERGENCY LOCKDOWN LIFTED." + log = "[key_name(user)] lifted AI core lockdown!" + ares_log = "Lifted AI Core Emergency Lockdown." + if(admin) + log += " (Admin Triggered)." + person = MAIN_AI_SYSTEM + + if(GLOB.security_level > SEC_LEVEL_GREEN) + set_security_level(SEC_LEVEL_BLUE, TRUE, FALSE) + SEND_GLOBAL_SIGNAL(COMSIG_GLOB_AICORE_LIFT) + else + GLOB.ares_datacore.ai_lockdown_active = TRUE + if(!message) + message = "ATTENTION! \n\nCORE SECURITY ALERT. \n\nAI CORE UNDER LOCKDOWN." + if(GLOB.security_level < SEC_LEVEL_RED) + set_security_level(SEC_LEVEL_RED, TRUE, FALSE) + SEND_GLOBAL_SIGNAL(COMSIG_GLOB_AICORE_LOCKDOWN) + + COOLDOWN_START(GLOB.ares_datacore, aicore_lockdown, 2 MINUTES) + shipwide_ai_announcement(message, MAIN_AI_SYSTEM, 'sound/effects/biohazard.ogg') + message_admins(log) + log_ares_security("AI Core Lockdown", ares_log, person) diff --git a/code/game/machinery/air_alarm.dm b/code/game/machinery/air_alarm.dm index 88b4ab899112..3efb579ceadc 100644 --- a/code/game/machinery/air_alarm.dm +++ b/code/game/machinery/air_alarm.dm @@ -264,10 +264,10 @@ /obj/structure/machinery/alarm/proc/register_env_machine(m_id, device_type) var/new_name if (device_type=="AVP") - new_name = "[alarm_area.name] Vent Pump #[alarm_area.air_vent_names.len+1]" + new_name = "[alarm_area.name] Vent Pump #[length(alarm_area.air_vent_names)+1]" alarm_area.air_vent_names[m_id] = new_name else if (device_type=="AScr") - new_name = "[alarm_area.name] Air Scrubber #[alarm_area.air_scrub_names.len+1]" + new_name = "[alarm_area.name] Air Scrubber #[length(alarm_area.air_scrub_names)+1]" alarm_area.air_scrub_names[m_id] = new_name else return @@ -572,14 +572,14 @@ var/pressure_dangerlevel = get_danger_level(environment_pressure, current_settings) current_settings = TLV["temperature"] - var/enviroment_temperature = location.return_temperature() - var/temperature_dangerlevel = get_danger_level(enviroment_temperature, current_settings) + var/environment_temperature = location.return_temperature() + var/temperature_dangerlevel = get_danger_level(environment_temperature, current_settings) output += {" Pressure: [environment_pressure]kPa
      "} - output += "Temperature: [enviroment_temperature]K ([round(enviroment_temperature - T0C, 0.1)]C)
      " + output += "Temperature: [environment_temperature]K ([round(environment_temperature - T0C, 0.1)]C)
      " //'Local Status' should report the LOCAL status, damnit. output += "Local Status: " @@ -648,7 +648,7 @@ Pressure: [environment_pressure]kP if (AALARM_SCREEN_VENT) var/sensor_data = "" - if(alarm_area.air_vent_names.len) + if(length(alarm_area.air_vent_names)) for(var/id_tag in alarm_area.air_vent_names) var/long_name = alarm_area.air_vent_names[id_tag] var/list/data = alarm_area.air_vent_info[id_tag] @@ -690,7 +690,7 @@ siphoning output = {"Main menu
      [sensor_data]"} if (AALARM_SCREEN_SCRUB) var/sensor_data = "" - if(alarm_area.air_scrub_names.len) + if(length(alarm_area.air_scrub_names)) for(var/id_tag in alarm_area.air_scrub_names) var/long_name = alarm_area.air_scrub_names[id_tag] var/list/data = alarm_area.air_scrub_info[id_tag] @@ -735,7 +735,7 @@ Nitrous Oxide AALARM_MODE_FILL = SET_CLASS("Fill - Shuts off scrubbers and opens vents", INTERFACE_GREEN),\ AALARM_MODE_OFF = SET_CLASS("Off - Shuts off vents and scrubbers", INTERFACE_BLUE) ) - for (var/m=1,m<=modes.len,m++) + for (var/m=1,m<=length(modes),m++) if (mode==m) output += "
    • [modes[m]] (selected)
    • " else diff --git a/code/game/machinery/atmoalter/canister.dm b/code/game/machinery/atmoalter/canister.dm index d62d688fcfc5..1cdc2e0a49fb 100644 --- a/code/game/machinery/atmoalter/canister.dm +++ b/code/game/machinery/atmoalter/canister.dm @@ -92,7 +92,7 @@ update_flag /obj/structure/machinery/portable_atmospherics/canister/bullet_act(obj/projectile/Proj) if(Proj.ammo.damage) - update_health(round(Proj.ammo.damage / 2)) + update_health(floor(Proj.ammo.damage / 2)) ..() return 1 diff --git a/code/game/machinery/autolathe.dm b/code/game/machinery/autolathe.dm index 6ccb0b5b18f7..4150aead979e 100644 --- a/code/game/machinery/autolathe.dm +++ b/code/game/machinery/autolathe.dm @@ -78,8 +78,8 @@ if(istype(I,/obj/item/stack/sheet)) recipe.resources[material] = I.matter[material] //Doesn't take more if it's just a sheet or something. Get what you put in. else - recipe.resources[material] = round(I.matter[material]*1.25) // More expensive to produce than they are to recycle. - qdel(I) + recipe.resources[material] = floor(I.matter[material]*1.25) // More expensive to produce than they are to recycle. + QDEL_NULL(I) //Create parts for lathe. for(var/component in components) @@ -106,7 +106,7 @@ /obj/structure/machinery/autolathe/ui_data(mob/user) var/list/data = list() - if(queue.len) + if(length(queue)) var/list/queue_list = list() var/i = 0 for(var/params in queue) @@ -119,7 +119,7 @@ else data["queued"] = null - if(currently_making_data.len) + if(length(currently_making_data)) data["currently_making"] = currently_making_data else data["currently_making"] = null @@ -129,7 +129,7 @@ var/list/wire_descriptions = get_wire_descriptions() var/list/panel_wires = list() - for(var/wire = 1 to wire_descriptions.len) + for(var/wire = 1 to length(wire_descriptions)) panel_wires += list(list("desc" = wire_descriptions[wire], "cut" = isWireCut(wire))) data["electrical"] = list( @@ -164,7 +164,7 @@ switch(action) if("cancel") var/index = params["index"] - if(index < 1 || index > queue.len) + if(index < 1 || index > length(queue)) return var/list/to_del = queue[index] @@ -198,7 +198,7 @@ if(!initial(make_loc)) make_loc = get_step(loc, get_dir(src,usr)) - if(index > 0 && index <= recipes.len) + if(index > 0 && index <= length(recipes)) making = recipes[index] //Exploit detection, not sure if necessary after rewrite. @@ -339,7 +339,7 @@ if(istype(eating,/obj/item/stack)) var/obj/item/stack/stack = eating - stack.use(max(1,round(total_used/mass_per_sheet))) // Always use at least 1 to prevent infinite materials. + stack.use(max(1,floor(total_used/mass_per_sheet))) // Always use at least 1 to prevent infinite materials. else if(user.temp_drop_inv_item(O)) qdel(O) @@ -358,7 +358,7 @@ storage_capacity[material] = tot_rating * 30000 /obj/structure/machinery/autolathe/proc/try_queue(mob/living/carbon/human/user, datum/autolathe/recipe/making, turf/make_loc, multiplier = 1) - if(queue.len >= queue_max) + if(length(queue) >= queue_max) to_chat(usr, SPAN_DANGER("The [name] has queued the maximum number of operations. Please wait for completion of current operation.")) return AUTOLATHE_FAILED @@ -392,7 +392,7 @@ busy = TRUE - while (queue.len) + while (length(queue)) print_params = queue[1] queue -= list(print_params) print_item(arglist(print_params)) @@ -419,11 +419,16 @@ ) SStgui.update_uis(src) + //Print speed based on w_class. + var/obj/item/item = making.path + var/size = initial(item.w_class) + var/print_speed = clamp(size, 2, 5) SECONDS + //Fancy autolathe animation. icon_state = "[base_state]_n" playsound(src, 'sound/machines/print.ogg', 25) - sleep(5 SECONDS) + sleep(print_speed) playsound(src, 'sound/machines/print_off.ogg', 25) icon_state = "[base_state]" @@ -521,7 +526,7 @@ max_print_amt = -1 - if(!R.resources || !R.resources.len) + if(!LAZYLEN(R.resources)) print_data["materials"] = "No resources required" else //Make sure it's buildable and list requires resources. @@ -530,7 +535,7 @@ print_data["can_make"] = FALSE max_print_amt = 0 else - print_amt = round(projected_stored_material[material]/R.resources[material]) + print_amt = floor(projected_stored_material[material]/R.resources[material]) if(print_data["can_make"] && max_print_amt < 0 || max_print_amt > print_amt) max_print_amt = print_amt diff --git a/code/game/machinery/autolathe_datums.dm b/code/game/machinery/autolathe_datums.dm index fa6fec094c59..78a8e46b64aa 100644 --- a/code/game/machinery/autolathe_datums.dm +++ b/code/game/machinery/autolathe_datums.dm @@ -269,7 +269,7 @@ /datum/autolathe/recipe/handcuffs name = "handcuffs" - path = /obj/item/handcuffs + path = /obj/item/restraint/handcuffs hidden = TRUE category = AUTOLATHE_CATEGORY_GENERAL @@ -331,6 +331,11 @@ path = /obj/item/ammo_magazine/flamer_tank/custom/large category = AUTOLATHE_CATEGORY_EXPLOSIVES +/datum/autolathe/recipe/armylathe/smoke_tank + name = "Custom M240A1 Smoke Tank" + path = /obj/item/ammo_magazine/flamer_tank/smoke + category = AUTOLATHE_CATEGORY_EXPLOSIVES + //Medilathe recipes /datum/autolathe/recipe/medilathe category = AUTOLATHE_CATEGORY_MEDICAL @@ -409,17 +414,13 @@ path = /obj/item/reagent_container/blood /datum/autolathe/recipe/medilathe/bluespace - name = "bluespace beaker" + name = "high-capacity beaker" path = /obj/item/reagent_container/glass/beaker/bluespace /datum/autolathe/recipe/medilathe/bonesetter name = "bonesetter" path = /obj/item/tool/surgery/bonesetter -/datum/autolathe/recipe/medilathe/bonegel - name = "bone gel" - path = /obj/item/tool/surgery/bonegel - /datum/autolathe/recipe/medilathe/fixovein name = "FixOVein" path = /obj/item/tool/surgery/FixOVein diff --git a/code/game/machinery/biohazard_lockdown.dm b/code/game/machinery/biohazard_lockdown.dm index 2e3cbf6de234..bb2674ccca6f 100644 --- a/code/game/machinery/biohazard_lockdown.dm +++ b/code/game/machinery/biohazard_lockdown.dm @@ -1,6 +1,6 @@ #define LOCKDOWN_READY 0 #define LOCKDOWN_ACTIVE 1 -GLOBAL_VAR_INIT(lockdown_state, LOCKDOWN_READY) +GLOBAL_VAR_INIT(med_lockdown_state, LOCKDOWN_READY) /obj/structure/machinery/biohazard_lockdown name = "Emergency Containment Breach" @@ -51,7 +51,7 @@ GLOBAL_VAR_INIT(lockdown_state, LOCKDOWN_READY) base_icon_state = "w_almayer_pdoor" /client/proc/admin_biohazard_alert() - set name = "Containment Breach Alert" + set name = "Research Containment Lockdown" set category = "Admin.Ship" if(!admin_holder ||!check_rights(R_EVENT)) @@ -63,8 +63,8 @@ GLOBAL_VAR_INIT(lockdown_state, LOCKDOWN_READY) prompt = tgui_alert(src, "Do you want to use a custom announcement?", "Choose.", list("Yes", "No"), 20 SECONDS) if(prompt == "Yes") - var/whattoannounce = tgui_input_text(src, "Please enter announcement text.", "what?") - biohazard_lockdown(usr, whattoannounce, TRUE) + var/message = tgui_input_text(src, "Please enter announcement text.", "what?") + biohazard_lockdown(usr, message, admin = TRUE) else biohazard_lockdown(usr, admin = TRUE) return TRUE @@ -74,35 +74,38 @@ GLOBAL_VAR_INIT(lockdown_state, LOCKDOWN_READY) return PROC_BLOCKED var/log = "[key_name(user)] triggered research bio lockdown!" - var/ares_log = "[user.name] triggered Medical Research Biohazard Containment Lockdown." + var/ares_log = "Triggered Medical Research Biohazard Containment Lockdown." + var/person = user.name if(!message) message = "ATTENTION! \n\nBIOHAZARD CONTAINMENT BREACH. \n\nRESEARCH DEPARTMENT UNDER LOCKDOWN." else log = "[key_name(user)] triggered research bio lockdown! (Using a custom announcement)." if(admin) log += " (Admin Triggered)." - ares_log = "[MAIN_AI_SYSTEM] triggered Medical Research Biohazard Containment Lockdown." + person = MAIN_AI_SYSTEM - switch(GLOB.lockdown_state) + switch(GLOB.med_lockdown_state) if(LOCKDOWN_READY) - GLOB.lockdown_state = LOCKDOWN_ACTIVE - set_security_level(SEC_LEVEL_RED, TRUE, FALSE) + GLOB.med_lockdown_state = LOCKDOWN_ACTIVE + if(GLOB.security_level < SEC_LEVEL_RED) + set_security_level(SEC_LEVEL_RED, TRUE, FALSE) SEND_GLOBAL_SIGNAL(COMSIG_GLOB_RESEARCH_LOCKDOWN) if(LOCKDOWN_ACTIVE) - GLOB.lockdown_state = LOCKDOWN_READY + GLOB.med_lockdown_state = LOCKDOWN_READY message = "ATTENTION! \n\nBIOHAZARD CONTAINMENT LOCKDOWN LIFTED." log = "[key_name(user)] lifted research bio lockdown!" - ares_log = "[user.name] lifted Medical Research Biohazard Containment Lockdown." + ares_log = "Lifted Medical Research Biohazard Containment Lockdown." if(admin) log += " (Admin Triggered)." - ares_log = "[MAIN_AI_SYSTEM] lifted Medical Research Biohazard Containment Lockdown." + person = MAIN_AI_SYSTEM - set_security_level(SEC_LEVEL_BLUE, TRUE, FALSE) + if(GLOB.security_level > SEC_LEVEL_GREEN) + set_security_level(SEC_LEVEL_BLUE, TRUE, FALSE) SEND_GLOBAL_SIGNAL(COMSIG_GLOB_RESEARCH_LIFT) shipwide_ai_announcement(message, MAIN_AI_SYSTEM, 'sound/effects/biohazard.ogg') message_admins(log) - log_ares_security("Containment Lockdown", ares_log) + log_ares_security("Containment Lockdown", ares_log, person) #undef LOCKDOWN_READY #undef LOCKDOWN_ACTIVE diff --git a/code/game/machinery/bots/bots.dm b/code/game/machinery/bots/bots.dm index 46050d2705b3..1f82d28dbbf8 100644 --- a/code/game/machinery/bots/bots.dm +++ b/code/game/machinery/bots/bots.dm @@ -84,9 +84,9 @@ if(hasvar(W,"force") && hasvar(W,"damtype")) switch(W.damtype) if("fire") - src.health -= W.force * fire_dam_coeff + health -= W.force * W.demolition_mod * fire_dam_coeff if("brute") - src.health -= W.force * brute_dam_coeff + health -= W.force * W.demolition_mod * brute_dam_coeff ..() healthcheck() else diff --git a/code/game/machinery/bots/cleanbot.dm b/code/game/machinery/bots/cleanbot.dm index c21a7a854bc3..cd93ce513972 100644 --- a/code/game/machinery/bots/cleanbot.dm +++ b/code/game/machinery/bots/cleanbot.dm @@ -180,7 +180,7 @@ text("[src.oddbutton ? "Yes" : "No" if (!should_patrol) return - if (!patrol_path || patrol_path.len < 1) + if (LAZYLEN(patrol_path) < 1) var/datum/radio_frequency/frequency = SSradio.return_frequency(beacon_freq) if(!frequency) return @@ -204,20 +204,20 @@ text("[src.oddbutton ? "Yes" : "No" return - if(target && path.len == 0) + if(target && length(path) == 0) spawn(0) if(!src || !target) return src.path = AStar(src.loc, src.target.loc, /turf/proc/CardinalTurfsWithAccess, /turf/proc/Distance, 0, 30, id=botcard) if (!path) path = list() - if(src.path.len == 0) + if(length(src.path) == 0) src.oldtarget = src.target target.targeted_by = null src.target = null return - if(src.path.len > 0 && src.target && (src.target != null)) + if(length(src.path) > 0 && src.target && (src.target != null)) step_to(src, src.path[1]) src.path -= src.path[1] - else if(src.path.len == 1) + else if(length(src.path) == 1) step_to(src, target) if(src.target && (src.target != null)) @@ -231,7 +231,7 @@ text("[src.oddbutton ? "Yes" : "No" src.oldloc = src.loc /obj/structure/machinery/bot/cleanbot/proc/patrol_move() - if (src.patrol_path.len <= 0) + if (length(src.patrol_path) <= 0) return var/next = src.patrol_path[1] diff --git a/code/game/machinery/bots/floorbot.dm b/code/game/machinery/bots/floorbot.dm index be8ec5aa8574..85f6d580cec7 100644 --- a/code/game/machinery/bots/floorbot.dm +++ b/code/game/machinery/bots/floorbot.dm @@ -199,21 +199,21 @@ src.oldtarget = null return - if(src.target && (src.target != null) && src.path.len == 0) + if(src.target && (src.target != null) && length(src.path) == 0) spawn(0) if(!istype(src.target, /turf/)) src.path = AStar(src.loc, src.target.loc, /turf/proc/AdjacentTurfsSpace, /turf/proc/Distance, 0, 30, id=botcard) else src.path = AStar(src.loc, src.target, /turf/proc/AdjacentTurfsSpace, /turf/proc/Distance, 0, 30, id=botcard) if (!src.path) src.path = list() - if(src.path.len == 0) + if(length(src.path) == 0) src.oldtarget = src.target src.target = null return - if(src.path.len > 0 && src.target && (src.target != null)) + if(length(src.path) > 0 && src.target && (src.target != null)) step_to(src, src.path[1]) src.path -= src.path[1] - else if(src.path.len == 1) + else if(length(src.path) == 1) step_to(src, target) src.path = new() @@ -342,7 +342,7 @@ if(!istype(T, /obj/item/stack/tile/plasteel)) ..() return - if(src.contents.len >= 1) + if(length(src.contents) >= 1) to_chat(user, SPAN_NOTICE("That won't fit, there's already stuff inside.")) return for(var/mob/M in content_watchers) diff --git a/code/game/machinery/bots/medbot.dm b/code/game/machinery/bots/medbot.dm index 77e890d88d34..5193b1b7cddd 100644 --- a/code/game/machinery/bots/medbot.dm +++ b/code/game/machinery/bots/medbot.dm @@ -62,7 +62,7 @@ src.overlays += image('icons/obj/structures/machinery/aibots.dmi', "medskin_[src.skin]") src.botcard = new /obj/item/card/id(src) - if(isnull(src.botcard_access) || (src.botcard_access.len < 1)) + if(!LAZYLEN(src.botcard_access)) var/datum/job/J = GLOB.RoleAuthority ? GLOB.RoleAuthority.roles_by_path[/datum/job/civilian/doctor] : new /datum/job/civilian/doctor botcard.access = J.get_access() else @@ -278,31 +278,31 @@ src.medicate_patient(src.patient) return - else if(src.patient && (src.path.len) && (get_dist(src.patient,src.path[src.path.len]) > 2)) + else if(src.patient && (length(src.path)) && (get_dist(src.patient,src.path[length(src.path)]) > 2)) src.path = new() src.currently_healing = 0 src.last_found = world.time - if(src.patient && src.path.len == 0 && (get_dist(src,src.patient) > 1)) + if(src.patient && length(src.path) == 0 && (get_dist(src,src.patient) > 1)) spawn(0) src.path = AStar(src.loc, get_turf(src.patient), /turf/proc/CardinalTurfsWithAccess, /turf/proc/Distance, 0, 30,id=botcard) if (!path) path = list() - if(src.path.len == 0) + if(length(src.path) == 0) src.oldpatient = src.patient src.patient = null src.currently_healing = 0 src.last_found = world.time return - if(src.path.len > 0 && src.patient) + if(length(src.path) > 0 && src.patient) step_to(src, src.path[1]) src.path -= src.path[1] spawn(3) - if(src.path.len) + if(length(src.path)) step_to(src, src.path[1]) src.path -= src.path[1] - if(src.path.len > 8 && src.patient) + if(length(src.path) > 8 && src.patient) src.frustration++ return @@ -487,7 +487,7 @@ return //Making a medibot! - if(src.contents.len >= 1) + if(length(src.contents) >= 1) to_chat(user, SPAN_NOTICE("You need to empty [src] out first.")) return diff --git a/code/game/machinery/bots/mulebot.dm b/code/game/machinery/bots/mulebot.dm index 08437d35a8e3..563c4b89c590 100644 --- a/code/game/machinery/bots/mulebot.dm +++ b/code/game/machinery/bots/mulebot.dm @@ -105,12 +105,12 @@ var/list/orders = list("0","1","2","3","4","5","6","7","8","9") wire_text = list() wire_order = list() - while(colours.len > 0) - var/color = colours[ rand(1,colours.len) ] + while(length(colours) > 0) + var/color = colours[ rand(1,length(colours)) ] wire_text += color colours -= color - var/order = orders[ rand(1,orders.len) ] + var/order = orders[ rand(1,length(orders)) ] wire_order += text2num(order) orders -= order @@ -284,7 +284,7 @@ return if (usr.stat) return - if ((in_range(src, usr) && istype(src.loc, /turf)) || (ishighersilicon(usr))) + if ((in_range(src, usr) && istype(src.loc, /turf)) || (isSilicon(usr))) usr.set_interaction(src) switch(href_list["op"]) @@ -584,7 +584,7 @@ at_target() return - else if(path.len > 0 && target) // valid path + else if(length(path) > 0 && target) // valid path var/turf/next = path[1] reached_target = 0 @@ -645,7 +645,7 @@ spawn(2) calc_path(next) - if(path.len > 0) + if(length(path) > 0) src.visible_message("[src] makes a delighted ping!", "You hear a ping.") playsound(src.loc, 'sound/machines/ping.ogg', 25, 0) mode = 4 @@ -667,7 +667,7 @@ calc_path() - if(path.len > 0) + if(length(path) > 0) blockcount = 0 mode = 4 src.visible_message("[src] makes a delighted ping!", "You hear a ping.") @@ -756,13 +756,10 @@ if(!(wires & WIRE_MOBAVOID)) //usually just bumps, but if avoidance disabled knock over mobs var/mob/M = A if(ismob(M)) - if(isborg(M)) - src.visible_message(SPAN_DANGER("[src] bumps into [M]!")) - else - src.visible_message(SPAN_DANGER("[src] knocks over [M]!")) - M.stop_pulling() - M.apply_effect(8, STUN) - M.apply_effect(5, WEAKEN) + src.visible_message(SPAN_DANGER("[src] knocks over [M]!")) + M.stop_pulling() + M.apply_effect(8, STUN) + M.apply_effect(5, WEAKEN) ..() /obj/structure/machinery/bot/mulebot/alter_health() diff --git a/code/game/machinery/camera/camera.dm b/code/game/machinery/camera/camera.dm index acb6d26bf0d5..4f6b40968bdb 100644 --- a/code/game/machinery/camera/camera.dm +++ b/code/game/machinery/camera/camera.dm @@ -10,7 +10,6 @@ var/list/network = list(CAMERA_NET_MILITARY) var/c_tag = null - var/c_tag_order = 999 var/status = 1 anchored = TRUE var/panel_open = FALSE // 0 = Closed / 1 = Open @@ -38,8 +37,14 @@ /// If this camera should have innate EMP-proofing var/emp_proof = FALSE + ///Autonaming + var/autoname = FALSE + var/autonumber = 0 //camera number in area + +GLOBAL_LIST_EMPTY_TYPED(all_cameras, /obj/structure/machinery/camera) /obj/structure/machinery/camera/Initialize(mapload, ...) . = ..() + GLOB.all_cameras += src WireColorToFlag = randomCameraWires() assembly = new(src) assembly.state = 4 @@ -47,24 +52,50 @@ if(colony_camera_mapload && mapload && is_ground_level(z)) network = list(CAMERA_NET_COLONY) - if(!src.network || src.network.len < 1) + if(LAZYLEN(src.network) < 1) if(loc) error("[src.name] in [get_area(src)] (x:[src.x] y:[src.y] z:[src.z]) has errored. [src.network?"Empty network list":"Null network list"]") else error("[src.name] in [get_area(src)]has errored. [src.network?"Empty network list":"Null network list"]") ASSERT(src.network) - ASSERT(src.network.len > 0) + ASSERT(length(src.network) > 0) set_pixel_location() update_icon() + //This camera automatically sets it's name to whatever the area that it's in is called. + if(autoname) + autonumber = 1 + var/area/my_area = get_area(src) + if(my_area) + for(var/obj/structure/machinery/camera/autoname/current_camera in GLOB.machines) + if(current_camera == src) + continue + var/area/current_camera_area = get_area(current_camera) + if(current_camera_area.type != my_area.type) + continue + + if(!current_camera.autonumber) + continue + + autonumber = max(autonumber, current_camera.autonumber + 1) + c_tag = "[my_area.name] #[autonumber]" + /obj/structure/machinery/camera/Destroy() + GLOB.all_cameras -= src . = ..() QDEL_NULL(assembly) /obj/structure/machinery/camera/update_icon() . = ..() - if(icon_state == "autocam_editor") + // If the camera has been EMPed. + if(stat & EMPED) + icon_state = "cameraemp" + // If the camera isn't EMPed, but is disabled. + else if(!status) + icon_state = "camera1" + // Otherwise, just give it the normal animated `icon_state`. + else icon_state = "camera" /obj/structure/machinery/camera/set_pixel_location() @@ -76,24 +107,27 @@ /obj/structure/machinery/camera/emp_act(severity) . = ..() - if(!isEmpProof()) - if(prob(100/severity)) - icon_state = "[initial(icon_state)]emp" - var/list/previous_network = network - network = list() - GLOB.cameranet.removeCamera(src) - stat |= EMPED - set_light(0) - triggerCameraAlarm() - spawn(900) - network = previous_network - icon_state = initial(icon_state) - stat &= ~EMPED - cancelCameraAlarm() - if(can_use()) - GLOB.cameranet.addCamera(src) - kick_viewers() + // If the camera is EMP proof, or it passed the RNG check. + if(isEmpProof() || !prob(100 / severity)) + return + + var/list/previous_network = network + network = list() + GLOB.all_cameras -= src + stat |= EMPED + update_icon() + set_light(0) + triggerCameraAlarm() + kick_viewers() + addtimer(CALLBACK(src, PROC_REF(undo_emp), previous_network), 90 SECONDS) +/obj/structure/machinery/camera/proc/undo_emp(previous_network) + network = previous_network + stat &= ~EMPED + update_icon() + cancelCameraAlarm() + if(can_use()) + GLOB.all_cameras += src /obj/structure/machinery/camera/ex_act(severity) if(src.invuln) @@ -104,7 +138,6 @@ /obj/structure/machinery/camera/proc/setViewRange(num = 7) src.view_range = num - GLOB.cameranet.updateVisibility(src, 0) /obj/structure/machinery/camera/attack_hand(mob/living/carbon/human/user as mob) @@ -166,16 +199,6 @@ if (S.current == src) to_chat(O, "[U] holds \a [itemname] up to one of the cameras ...") show_browser(O, info, itemname, itemname) - else if (istype(W, /obj/item/device/camera_bug)) - if (!src.can_use()) - to_chat(user, SPAN_NOTICE(" Camera non-functional")) - return - if (src.bugged) - to_chat(user, SPAN_NOTICE(" Camera bug removed.")) - src.bugged = 0 - else - to_chat(user, SPAN_NOTICE(" Camera bugged.")) - src.bugged = 1 else ..() return @@ -189,10 +212,7 @@ visible_message(SPAN_WARNING("[user] has reactivated [src]!")) else visible_message(SPAN_WARNING("[user] has deactivated [src]!")) - if(status) - icon_state = "camera" - else - icon_state = "camera1" + update_icon() // now disconnect anyone using the camera //Apparently, this will disconnect anyone even if the camera was re-activated. //I guess that doesn't matter since they can't use it anyway? @@ -209,15 +229,10 @@ to_chat(O, "The screen bursts into static.") /obj/structure/machinery/camera/proc/triggerCameraAlarm() - alarm_on = 1 - for(var/mob/living/silicon/S in GLOB.mob_list) - S.triggerAlarm("Camera", get_area(src), list(src), src) - + alarm_on = TRUE /obj/structure/machinery/camera/proc/cancelCameraAlarm() - alarm_on = 0 - for(var/mob/living/silicon/S in GLOB.mob_list) - S.cancelAlarm("Camera", get_area(src), src) + alarm_on = FALSE /obj/structure/machinery/camera/proc/can_use() if(!status) @@ -284,6 +299,22 @@ return 1 return 0 +/obj/structure/machinery/camera/correspondent + network = list(CAMERA_NET_CORRESPONDENT) + invisibility = INVISIBILITY_ABSTRACT + invuln = TRUE + unslashable = TRUE + unacidable = TRUE + colony_camera_mapload = FALSE + var/obj/item/device/camera/broadcasting/linked_broadcasting + +/obj/structure/machinery/camera/correspondent/Initialize(mapload, obj/item/device/camera/broadcasting/camera_item) + . = ..() + if(!camera_item) + return INITIALIZE_HINT_QDEL + linked_broadcasting = camera_item + c_tag = linked_broadcasting.get_broadcast_name() + /obj/structure/machinery/camera/mortar alpha = 0 mouse_opacity = MOUSE_OPACITY_TRANSPARENT diff --git a/code/game/machinery/camera/motion.dm b/code/game/machinery/camera/motion.dm index 5a0a41fdc9bf..498984a48736 100644 --- a/code/game/machinery/camera/motion.dm +++ b/code/game/machinery/camera/motion.dm @@ -23,7 +23,6 @@ // If not detecting with motion camera... /obj/structure/machinery/camera/proc/newTarget(mob/target) - if (isAI(target)) return 0 if (detectTime == 0) detectTime = world.time // start the clock if (!(target in motionTargets)) @@ -33,15 +32,12 @@ /obj/structure/machinery/camera/proc/lostTarget(mob/target) if (target in motionTargets) motionTargets -= target - if (motionTargets.len == 0) + if (length(motionTargets) == 0) cancelAlarm() /obj/structure/machinery/camera/proc/cancelAlarm() if (!status || (stat & NOPOWER)) return 0 - if (detectTime == -1) - for (var/mob/living/silicon/aiPlayer in GLOB.ai_mob_list) - aiPlayer.cancelAlarm("Motion", get_area(src), src) detectTime = 0 return 1 @@ -49,7 +45,5 @@ if (!status || (stat & NOPOWER)) return 0 if (!detectTime) return 0 - for (var/mob/living/silicon/aiPlayer in GLOB.ai_mob_list) - aiPlayer.triggerAlarm("Motion", get_area(src), list(src), src) detectTime = -1 return 1 diff --git a/code/game/machinery/camera/presets.dm b/code/game/machinery/camera/presets.dm index 1f680ad76712..a1d7f00cf94a 100644 --- a/code/game/machinery/camera/presets.dm +++ b/code/game/machinery/camera/presets.dm @@ -70,21 +70,7 @@ // AUTONAME /obj/structure/machinery/camera/autoname - var/number = 0 //camera number in area - -//This camera type automatically sets it's name to whatever the area that it's in is called. -/obj/structure/machinery/camera/autoname/Initialize(mapload, ...) - . = ..() - number = 1 - var/area/A = get_area(src) - if(A) - for(var/obj/structure/machinery/camera/autoname/C in GLOB.machines) - if(C == src) continue - var/area/CA = get_area(C) - if(CA.type == A.type) - if(C.number) - number = max(number, C.number+1) - c_tag = "[A.name] #[number]" + autoname = TRUE //cameras installed inside the dropships, accessible via both cockpit monitor and Almayer camera computers /obj/structure/machinery/camera/autoname/almayer/dropship_one @@ -111,7 +97,7 @@ /obj/structure/machinery/camera/autoname/almayer/containment/ares name = "ares core camera" - network = list(CAMERA_NET_ALMAYER, CAMERA_NET_ARES) + network = list(CAMERA_NET_ARES) //used by the landing camera dropship equipment. Do not place them right under where the dropship lands. //Should place them near each corner of your LZs. diff --git a/code/game/machinery/camera/tracking.dm b/code/game/machinery/camera/tracking.dm deleted file mode 100644 index b9ea018ba98f..000000000000 --- a/code/game/machinery/camera/tracking.dm +++ /dev/null @@ -1,247 +0,0 @@ -/mob/living/silicon/ai/var/max_locations = 10 -/mob/living/silicon/ai/var/stored_locations[0] - -/mob/living/silicon/ai/proc/InvalidTurf(turf/T as turf) - if(!T) - return 1 - if(is_admin_level(T.z)) - return 1 - if(T.z > 6) - return 1 - return 0 - -/mob/living/silicon/ai/proc/get_camera_list() - - if(src.stat == 2) - return - - var/list/L = list() - for (var/obj/structure/machinery/camera/C in GLOB.cameranet.cameras) - L.Add(C) - - camera_sort(L) - - var/list/T = list() - T["Cancel"] = "Cancel" - for (var/obj/structure/machinery/camera/C in L) - T[text("[][]", C.c_tag, (C.can_use() ? null : " (Deactivated)"))] = C - - track = new() - track.cameras = T - return T - - -/mob/living/silicon/ai/proc/ai_camera_list(camera in get_camera_list()) - set category = "AI Commands" - set name = "Show Camera List" - - if(src.stat == 2) - to_chat(src, "You can't list the cameras because you are dead!") - return - - if (!camera || camera == "Cancel") - return 0 - - var/obj/structure/machinery/camera/C = track.cameras[camera] - src.eyeobj.setLoc(C) - - return - -/mob/living/silicon/ai/proc/ai_store_location(newloc as text) - set category = "AI Commands" - set name = "Store Camera Location" - set desc = "Stores your current camera location by the given name" - - newloc = copytext(sanitize(loc), 1, MAX_MESSAGE_LEN) - if(!newloc) - to_chat(src, SPAN_DANGER("Must supply a location name")) - return - - if(stored_locations.len >= max_locations) - to_chat(src, SPAN_DANGER("Cannot store additional locations. Remove one first")) - return - - if(newloc in stored_locations) - to_chat(src, SPAN_DANGER("There is already a stored location by this name")) - return - - var/L = src.eyeobj.getLoc() - if (InvalidTurf(get_turf(L))) - to_chat(src, SPAN_DANGER("Unable to store this location")) - return - - stored_locations[newloc] = L - to_chat(src, "Location '[newloc]' stored") - -/mob/living/silicon/ai/proc/sorted_stored_locations() - return sortList(stored_locations) - -/mob/living/silicon/ai/proc/ai_goto_location(loc in sorted_stored_locations()) - set category = "AI Commands" - set name = "Goto Camera Location" - set desc = "Returns to the selected camera location" - - if (!(loc in stored_locations)) - to_chat(src, SPAN_DANGER("Location [loc] not found")) - return - - var/L = stored_locations[loc] - src.eyeobj.setLoc(L) - -/mob/living/silicon/ai/proc/ai_remove_location(loc in sorted_stored_locations()) - set category = "AI Commands" - set name = "Delete Camera Location" - set desc = "Deletes the selected camera location" - - if (!(loc in stored_locations)) - to_chat(src, SPAN_DANGER("Location [loc] not found")) - return - - stored_locations.Remove(loc) - to_chat(src, "Location [loc] removed") - -// Used to allow the AI is write in mob names/camera name from the CMD line. -/datum/trackable - var/list/names = list() - var/list/namecounts = list() - var/list/humans = list() - var/list/others = list() - var/list/cameras = list() - -/mob/living/silicon/ai/proc/trackable_mobs() - - if(usr.stat == 2) - return list() - - var/datum/trackable/TB = new() - for(var/i in GLOB.living_mob_list) - var/mob/living/M = i - // Easy checks first. - // Don't detect mobs on Centcom. Since the wizard den is on Centcomm, we only need this. - if(InvalidTurf(get_turf(M))) - continue - if(M == usr) - continue - if(M.invisibility)//cloaked - continue - - // Human check - var/human = 0 - if(istype(M, /mob/living/carbon/human)) - human = 1 - var/mob/living/carbon/human/H = M - //Cameras can't track people wearing an agent card or a ninja hood. - if(H.wear_id && istype(H.wear_id.GetID(), /obj/item/card/id/syndicate)) - continue - - // Now, are they viewable by a camera? (This is last because it's the most intensive check) - if(!near_camera(M)) - continue - - var/name = M.name - if (name in TB.names) - TB.namecounts[name]++ - name = text("[] ([])", name, TB.namecounts[name]) - else - TB.names.Add(name) - TB.namecounts[name] = 1 - if(human) - TB.humans[name] = M - else - TB.others[name] = M - - var/list/targets = sortList(TB.humans) + sortList(TB.others) - src.track = TB - return targets - -/mob/living/silicon/ai/proc/ai_camera_track(target_name in trackable_mobs()) - set category = "AI Commands" - set name = "Track With Camera" - set desc = "Select who you would like to track." - - if(src.stat == 2) - to_chat(src, "You can't track with camera because you are dead!") - return - if(!target_name) - src.cameraFollow = null - - var/mob/target = (isnull(track.humans[target_name]) ? track.others[target_name] : track.humans[target_name]) - src.track = null - ai_actual_track(target) - -/mob/living/silicon/ai/proc/ai_cancel_tracking(forced = 0) - if(!cameraFollow) - return - - to_chat(src, "Follow camera mode [forced ? "terminated" : "ended"].") - cameraFollow = null - -/mob/living/silicon/ai/proc/ai_actual_track(mob/living/target as mob) - if(!istype(target)) return - var/mob/living/silicon/ai/U = usr - - U.cameraFollow = target - //U << text("Now tracking [] on camera.", target.name) - //if (U.interactee == null) - // U.set_interaction(U) - to_chat(U, "Now tracking [target.name] on camera.") - - spawn (0) - while (U.cameraFollow == target) - if (U.cameraFollow == null) - return - if (istype(target, /mob/living/carbon/human)) - var/mob/living/carbon/human/H = target - if(H.wear_id && istype(H.wear_id.GetID(), /obj/item/card/id/syndicate)) - U.ai_cancel_tracking(1) - return - - if (!near_camera(target)) - to_chat(U, "Target is not near any active cameras.") - sleep(100) - continue - - if(U.eyeobj) - U.eyeobj.setLoc(get_turf(target), 0) - else - view_core() - return - sleep(10) - -/proc/near_camera(mob/living/M) - if (!isturf(M.loc)) - return 0 - if(isrobot(M)) - var/mob/living/silicon/robot/R = M - if(!(R.camera && R.camera.can_use()) && !GLOB.cameranet.checkCameraVis(M)) - return 0 - else if(!GLOB.cameranet.checkCameraVis(M)) - return 0 - return 1 - -/obj/structure/machinery/camera/attack_remote(mob/living/silicon/ai/user as mob) - if (!istype(user)) - return - if (!src.can_use()) - return - user.eyeobj.setLoc(get_turf(src)) - - -/mob/living/silicon/ai/attack_remote(mob/user as mob) - ai_camera_list() - -/proc/camera_sort(list/L) // TODO: replace this bubblesort with a mergesort - spookydonut - var/obj/structure/machinery/camera/a - var/obj/structure/machinery/camera/b - - for (var/i = L.len, i > 0, i--) - for (var/j = 1 to i - 1) - a = L[j] - b = L[j + 1] - if (a.c_tag_order != b.c_tag_order) - if (a.c_tag_order > b.c_tag_order) - L.Swap(j, j + 1) - else - if (sorttext(a.c_tag, b.c_tag) < 0) - L.Swap(j, j + 1) - return L diff --git a/code/game/machinery/cell_charger.dm b/code/game/machinery/cell_charger.dm index eb7a501fa078..528d90f4b4b9 100644 --- a/code/game/machinery/cell_charger.dm +++ b/code/game/machinery/cell_charger.dm @@ -16,7 +16,7 @@ if(charging && !(inoperable()) ) - var/newlevel = round(charging.percent() * 4 / 99) + var/newlevel = floor(charging.percent() * 4 / 99) if(chargelevel != newlevel) diff --git a/code/game/machinery/cloning.dm b/code/game/machinery/cloning.dm index 4973eda8c71a..de2522d921bf 100644 --- a/code/game/machinery/cloning.dm +++ b/code/game/machinery/cloning.dm @@ -35,7 +35,7 @@ else if(isliving(src.implanted)) var/mob/living/L = src.implanted - src.healthstring = "[round(L.getOxyLoss())] - [round(L.getFireLoss())] - [round(L.getToxLoss())] - [round(L.getBruteLoss())]" + src.healthstring = "[floor(L.getOxyLoss())] - [floor(L.getFireLoss())] - [floor(L.getToxLoss())] - [floor(L.getBruteLoss())]" if (!src.healthstring) src.healthstring = "ERROR" return src.healthstring diff --git a/code/game/machinery/colony_floodlights.dm b/code/game/machinery/colony_floodlights.dm new file mode 100644 index 000000000000..0267c7e95487 --- /dev/null +++ b/code/game/machinery/colony_floodlights.dm @@ -0,0 +1,316 @@ +//Putting these here since it's power-related +/obj/structure/machinery/colony_floodlight_switch + name = "colony floodlight switch" + icon = 'icons/obj/structures/machinery/power.dmi' + icon_state = "panelnopower" + desc = "This switch controls the floodlights surrounding the archaeology complex. It only functions when there is power." + density = FALSE + anchored = TRUE + use_power = USE_POWER_IDLE + unslashable = TRUE + unacidable = TRUE + power_machine = TRUE + var/ispowered = FALSE + var/turned_on = FALSE //has to be toggled in engineering + ///All floodlights under our control + var/list/floodlist = list() + +/obj/structure/machinery/colony_floodlight_switch/Initialize(mapload, ...) + . = ..() + return INITIALIZE_HINT_LATELOAD + +/obj/structure/machinery/colony_floodlight_switch/LateInitialize() + . = ..() + for(var/obj/structure/machinery/colony_floodlight/floodlight in GLOB.machines) + floodlist += floodlight + floodlight.fswitch = src + start_processing() + +/obj/structure/machinery/colony_floodlight_switch/Destroy() + for(var/obj/structure/machinery/colony_floodlight/floodlight as anything in floodlist) + floodlight.fswitch = null + floodlist = null + return ..() + +/obj/structure/machinery/colony_floodlight_switch/update_icon() + if(!ispowered) + icon_state = "panelnopower" + else if(turned_on) + icon_state = "panelon" + else + icon_state = "paneloff" + +/obj/structure/machinery/colony_floodlight_switch/process() + var/lightpower = 0 + for(var/obj/structure/machinery/colony_floodlight/floodlight as anything in floodlist) + if(!floodlight.is_lit) + continue + lightpower += floodlight.power_tick + use_power(lightpower) + +/obj/structure/machinery/colony_floodlight_switch/power_change() + ..() + if((stat & NOPOWER)) + if(ispowered && turned_on) + toggle_lights() + ispowered = FALSE + turned_on = FALSE + update_icon() + else + ispowered = TRUE + update_icon() + +/obj/structure/machinery/colony_floodlight_switch/proc/toggle_lights() + for(var/obj/structure/machinery/colony_floodlight/floodlight as anything in floodlist) + addtimer(CALLBACK(floodlight, TYPE_PROC_REF(/obj/structure/machinery/colony_floodlight, toggle_light)), rand(0, 5 SECONDS)) + +/obj/structure/machinery/colony_floodlight_switch/attack_hand(mob/user as mob) + if(!ishuman(user)) + to_chat(user, "Nice try.") + return FALSE + if(!ispowered) + to_chat(user, "Nothing happens.") + return FALSE + playsound(src,'sound/items/Deconstruct.ogg', 30, 1) + use_power(5) + toggle_lights() + turned_on = !turned_on + update_icon() + return TRUE + + +#define FLOODLIGHT_REPAIR_UNSCREW 0 +#define FLOODLIGHT_REPAIR_CROWBAR 1 +#define FLOODLIGHT_REPAIR_WELD 2 +#define FLOODLIGHT_REPAIR_CABLE 3 +#define FLOODLIGHT_REPAIR_SCREW 4 + +/obj/structure/machinery/colony_floodlight + name = "colony floodlight" + icon = 'icons/obj/structures/machinery/big_floodlight.dmi' + icon_state = "flood_s_off" + density = TRUE + anchored = TRUE + layer = ABOVE_XENO_LAYER + unslashable = TRUE + unacidable = TRUE + use_power = USE_POWER_NONE //It's the switch that uses the actual power, not the lights + needs_power = FALSE + ///Whether it has been smashed by xenos + var/damaged = FALSE + ///Whether the floodlight is switched to on or off. Does not necessarily mean it emits light. + var/is_lit = FALSE + ///The power each floodlight takes up per process + var/power_tick = 50 + ///Reverse lookup for power grabbing in area + var/obj/structure/machinery/colony_floodlight_switch/fswitch = null + var/lum_value = 7 + var/repair_state = FLOODLIGHT_REPAIR_UNSCREW + health = 150 + +/obj/structure/machinery/colony_floodlight/Destroy() + if(fswitch) + fswitch.floodlist -= src + fswitch = null + . = ..() + +/obj/structure/machinery/colony_floodlight/update_icon() + if(damaged) + icon_state = "flood_s_dmg" + else if(is_lit) + icon_state = "flood_s_on" + else + icon_state = "flood_s_off" + +/obj/structure/machinery/colony_floodlight/attackby(obj/item/I, mob/user) + if(damaged) + if(HAS_TRAIT(I, TRAIT_TOOL_SCREWDRIVER)) + if(!skillcheck(user, SKILL_ENGINEER, SKILL_ENGINEER_ENGI)) + to_chat(user, SPAN_WARNING("You have no clue how to repair [src].")) + return FALSE + + if(repair_state == FLOODLIGHT_REPAIR_UNSCREW) + playsound(loc, 'sound/items/Screwdriver.ogg', 25, 1) + user.visible_message(SPAN_NOTICE("[user] starts unscrewing [src]'s maintenance hatch."), \ + SPAN_NOTICE("You start unscrewing [src]'s maintenance hatch.")) + if(do_after(user, 2 SECONDS, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD)) + if(QDELETED(src) || repair_state != FLOODLIGHT_REPAIR_UNSCREW) + return + playsound(loc, 'sound/items/Screwdriver.ogg', 25, 1) + repair_state = FLOODLIGHT_REPAIR_CROWBAR + user.visible_message(SPAN_NOTICE("[user] unscrews [src]'s maintenance hatch."), \ + SPAN_NOTICE("You unscrew [src]'s maintenance hatch.")) + + else if(repair_state == FLOODLIGHT_REPAIR_SCREW) + playsound(loc, 'sound/items/Screwdriver.ogg', 25, 1) + user.visible_message(SPAN_NOTICE("[user] starts screwing [src]'s maintenance hatch closed."), \ + SPAN_NOTICE("You start screwing [src]'s maintenance hatch closed.")) + if(do_after(user, 2 SECONDS, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD)) + if(QDELETED(src) || repair_state != FLOODLIGHT_REPAIR_SCREW) + return + playsound(loc, 'sound/items/Screwdriver.ogg', 25, 1) + damaged = FALSE + repair_state = FLOODLIGHT_REPAIR_UNSCREW + health = initial(health) + user.visible_message(SPAN_NOTICE("[user] screws [src]'s maintenance hatch closed."), \ + SPAN_NOTICE("You screw [src]'s maintenance hatch closed.")) + if(is_lit) + set_light(lum_value) + update_icon() + return TRUE + + else if(HAS_TRAIT(I, TRAIT_TOOL_CROWBAR)) + if(!skillcheck(user, SKILL_ENGINEER, SKILL_ENGINEER_ENGI)) + to_chat(user, SPAN_WARNING("You have no clue how to repair [src].")) + return FALSE + + if(repair_state == FLOODLIGHT_REPAIR_CROWBAR) + playsound(loc, 'sound/items/Crowbar.ogg', 25, 1) + user.visible_message(SPAN_NOTICE("[user] starts prying [src]'s damaged lighting assembly out."),\ + SPAN_NOTICE("You start prying [src]'s damaged lighting assembly out.")) + if(do_after(user, 2 SECONDS, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD)) + if(QDELETED(src) || repair_state != FLOODLIGHT_REPAIR_CROWBAR) + return + playsound(loc, 'sound/items/Crowbar.ogg', 25, 1) + repair_state = FLOODLIGHT_REPAIR_WELD + user.visible_message(SPAN_NOTICE("[user] pries [src]'s damaged lighting assembly out."),\ + SPAN_NOTICE("You pry [src]'s damaged lighting assembly out.")) + return TRUE + + else if(iswelder(I)) + if(!HAS_TRAIT(I, TRAIT_TOOL_BLOWTORCH)) + to_chat(user, SPAN_WARNING("You need a stronger blowtorch!")) + return + var/obj/item/tool/weldingtool/welder = I + + if(!skillcheck(user, SKILL_ENGINEER, SKILL_ENGINEER_ENGI)) + to_chat(user, SPAN_WARNING("You have no clue how to repair [src].")) + return FALSE + + if(repair_state == FLOODLIGHT_REPAIR_WELD) + if(welder.remove_fuel(1, user)) + playsound(loc, 'sound/items/weldingtool_weld.ogg', 25) + user.visible_message(SPAN_NOTICE("[user] starts welding [src]'s damage."), + SPAN_NOTICE("You start welding [src]'s damage.")) + if(do_after(user, 4 SECONDS, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD)) + if(QDELETED(src) || !welder.isOn() || repair_state != FLOODLIGHT_REPAIR_WELD) + return + playsound(loc, 'sound/items/Welder2.ogg', 25, 1) + repair_state = FLOODLIGHT_REPAIR_CABLE + user.visible_message(SPAN_NOTICE("[user] welds [src]'s damage."), + SPAN_NOTICE("You weld [src]'s damage.")) + return TRUE + else + to_chat(user, SPAN_WARNING("You need more welding fuel to complete this task.")) + return TRUE + + else if(iscoil(I)) + var/obj/item/stack/cable_coil/coil = I + if(!skillcheck(user, SKILL_ENGINEER, SKILL_ENGINEER_ENGI)) + to_chat(user, SPAN_WARNING("You have no clue how to repair [src].")) + return FALSE + + if(repair_state == FLOODLIGHT_REPAIR_CABLE) + if(coil.get_amount() < 2) + to_chat(user, SPAN_WARNING("You need two coils of wire to replace the damaged cables.")) + return + playsound(loc, 'sound/items/Deconstruct.ogg', 25, 1) + user.visible_message(SPAN_NOTICE("[user] starts replacing [src]'s damaged cables."),\ + SPAN_NOTICE("You start replacing [src]'s damaged cables.")) + if(do_after(user, 2 SECONDS, INTERRUPT_ALL, BUSY_ICON_GENERIC)) + if(QDELETED(src) || repair_state != FLOODLIGHT_REPAIR_CABLE) + return + if(coil.use(2)) + playsound(loc, 'sound/items/Deconstruct.ogg', 25, 1) + repair_state = FLOODLIGHT_REPAIR_SCREW + user.visible_message(SPAN_NOTICE("[user] replaces [src]'s damaged cables."),\ + SPAN_NOTICE("You replace [src]'s damaged cables.")) + return TRUE + + else if(istype(I, /obj/item/device/lightreplacer)) + if(!skillcheck(user, SKILL_ENGINEER, SKILL_ENGINEER_ENGI)) + to_chat(user, SPAN_WARNING("You have no clue how to repair [src].")) + return FALSE + + if(repair_state == FLOODLIGHT_REPAIR_UNSCREW) + to_chat(user, SPAN_WARNING("You need to unscrew [src]'s maintenance hatch.")) + return FALSE + if(repair_state == FLOODLIGHT_REPAIR_SCREW) + to_chat(user, SPAN_WARNING("You need to screw [src]'s maintenance hatch.")) + return FALSE + + var/obj/item/device/lightreplacer/replacer = I + if(!replacer.CanUse(user)) + to_chat(user, replacer.failmsg) + return FALSE + playsound(loc, 'sound/items/Crowbar.ogg', 25, 1) + user.visible_message(SPAN_NOTICE("[user] starts replacing [src]'s damaged lighting assembly."),\ + SPAN_NOTICE("You start replacing [src]'s damaged lighting assembly.")) + if(do_after(user, 2 SECONDS, INTERRUPT_ALL, BUSY_ICON_GENERIC)) + if(QDELETED(src) || repair_state == FLOODLIGHT_REPAIR_SCREW) + return + replacer.Use(user) + repair_state = FLOODLIGHT_REPAIR_SCREW + user.visible_message(SPAN_NOTICE("[user] replaces [src]'s damaged lighting assembly."),\ + SPAN_NOTICE("You replace [src]'s damaged lighting assembly.")) + return TRUE + + return ..() + +/obj/structure/machinery/colony_floodlight/attack_hand(mob/user) + if(ishuman(user)) + if(damaged) + to_chat(user, SPAN_WARNING("[src] is damaged.")) + else if(!is_lit) + to_chat(user, SPAN_WARNING("Nothing happens. Looks like it's powered elsewhere.")) + return FALSE + return ..() + +/obj/structure/machinery/colony_floodlight/get_examine_text(mob/user) + . = ..() + if(ishuman(user)) + if(damaged) + . += SPAN_WARNING("It is damaged.") + if(skillcheck(user, SKILL_ENGINEER, SKILL_ENGINEER_ENGI)) + switch(repair_state) + if(FLOODLIGHT_REPAIR_UNSCREW) . += SPAN_INFO("You must first unscrew its maintenance hatch.") + if(FLOODLIGHT_REPAIR_CROWBAR) . += SPAN_INFO("You must crowbar its lighting assembly out or use a light replacer.") + if(FLOODLIGHT_REPAIR_WELD) . += SPAN_INFO("You must weld the damage to it.") + if(FLOODLIGHT_REPAIR_CABLE) . += SPAN_INFO("You must replace its damaged cables.") + if(FLOODLIGHT_REPAIR_SCREW) . += SPAN_INFO("You must screw its maintenance hatch closed.") + else if(!is_lit) + . += SPAN_INFO("It doesn't seem powered.") + +/obj/structure/machinery/colony_floodlight/ex_act(severity) + switch(severity) + if(0 to EXPLOSION_THRESHOLD_LOW) + if(prob(25)) + set_damaged() + return + if(EXPLOSION_THRESHOLD_LOW to EXPLOSION_THRESHOLD_MEDIUM) + if(prob(50)) + set_damaged() + return + if(EXPLOSION_THRESHOLD_MEDIUM to INFINITY) + set_damaged() + return + +/obj/structure/machinery/colony_floodlight/proc/set_damaged() + playsound(src, "glassbreak", 70, 1) + damaged = TRUE + if(is_lit) + set_light(0) + update_icon() + +/obj/structure/machinery/colony_floodlight/proc/toggle_light() + is_lit = !is_lit + if(!damaged) + set_light(is_lit ? lum_value : 0) + update_icon() + return is_lit + +#undef FLOODLIGHT_REPAIR_UNSCREW +#undef FLOODLIGHT_REPAIR_CROWBAR +#undef FLOODLIGHT_REPAIR_WELD +#undef FLOODLIGHT_REPAIR_CABLE +#undef FLOODLIGHT_REPAIR_SCREW diff --git a/code/game/machinery/computer/HolodeckControl.dm b/code/game/machinery/computer/HolodeckControl.dm index 55df45c70ccc..9288033d61d5 100644 --- a/code/game/machinery/computer/HolodeckControl.dm +++ b/code/game/machinery/computer/HolodeckControl.dm @@ -14,6 +14,12 @@ /turf/open/floor/holofloor/attackby(obj/item/W as obj, mob/user as mob) return +/turf/open/floor/holofloor/cult + icon_state = "cult" + +/turf/open/floor/holofloor/cult/south + dir = SOUTH + /turf/open/floor/holofloor/grass name = "lush grass" icon_state = "grass1" @@ -77,9 +83,6 @@ to_chat(user, "It's a holotable! There are no bolts!") return - if(isborg(user)) - return - ..() /obj/structure/surface/table/holotable/wood diff --git a/code/game/machinery/computer/ai_core.dm b/code/game/machinery/computer/ai_core.dm deleted file mode 100644 index bb6972a58ac3..000000000000 --- a/code/game/machinery/computer/ai_core.dm +++ /dev/null @@ -1,256 +0,0 @@ -/obj/structure/AIcore - density = TRUE - anchored = FALSE - name = "AI core" - icon = 'icons/obj/structures/machinery/AI.dmi' - icon_state = "hydra-off" - var/state = 0 - var/obj/item/circuitboard/aicore/circuit = null - var/obj/item/device/mmi/brain = null - - -/obj/structure/AIcore/attackby(obj/item/P as obj, mob/user as mob) - switch(state) - if(0) - if(HAS_TRAIT(P, TRAIT_TOOL_WRENCH)) - playsound(loc, 'sound/items/Ratchet.ogg', 25, 1) - if(do_after(user, 20, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD)) - to_chat(user, SPAN_NOTICE(" You wrench the frame into place.")) - anchored = TRUE - state = 1 - if(iswelder(P)) - var/obj/item/tool/weldingtool/WT = P - if(!HAS_TRAIT(P, TRAIT_TOOL_BLOWTORCH)) - to_chat(user, SPAN_WARNING("You need a stronger blowtorch!")) - return - if(!WT.isOn()) - to_chat(user, "The welder must be on for this task.") - return - playsound(loc, 'sound/items/Welder.ogg', 25, 1) - if(do_after(user, 20, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD)) - if(!src || !WT.remove_fuel(0, user)) return - to_chat(user, SPAN_NOTICE(" You deconstruct the frame.")) - new /obj/item/stack/sheet/plasteel( loc, 4) - qdel(src) - if(1) - if(HAS_TRAIT(P, TRAIT_TOOL_WRENCH)) - playsound(loc, 'sound/items/Ratchet.ogg', 25, 1) - if(do_after(user, 20, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD)) - to_chat(user, SPAN_NOTICE(" You unfasten the frame.")) - anchored = FALSE - state = 0 - if(istype(P, /obj/item/circuitboard/aicore) && !circuit) - if(user.drop_held_item()) - playsound(loc, 'sound/items/Deconstruct.ogg', 25, 1) - to_chat(user, SPAN_NOTICE(" You place the circuit board inside the frame.")) - icon_state = "1" - circuit = P - P.forceMove(src) - if(HAS_TRAIT(P, TRAIT_TOOL_SCREWDRIVER) && circuit) - playsound(loc, 'sound/items/Screwdriver.ogg', 25, 1) - to_chat(user, SPAN_NOTICE(" You screw the circuit board into place.")) - state = 2 - icon_state = "2" - if(HAS_TRAIT(P, TRAIT_TOOL_CROWBAR) && circuit) - playsound(loc, 'sound/items/Crowbar.ogg', 25, 1) - to_chat(user, SPAN_NOTICE(" You remove the circuit board.")) - state = 1 - icon_state = "0" - circuit.forceMove(loc) - circuit = null - if(2) - if(HAS_TRAIT(P, TRAIT_TOOL_SCREWDRIVER) && circuit) - playsound(loc, 'sound/items/Screwdriver.ogg', 25, 1) - to_chat(user, SPAN_NOTICE(" You unfasten the circuit board.")) - state = 1 - icon_state = "1" - if(istype(P, /obj/item/stack/cable_coil)) - var/obj/item/stack/cable_coil/C = P - if (C.get_amount() < 5) - to_chat(user, SPAN_WARNING("You need five coils of wire to add them to the frame.")) - return - to_chat(user, SPAN_NOTICE("You start to add cables to the frame.")) - playsound(loc, 'sound/items/Deconstruct.ogg', 25, 1) - if (do_after(user, 20, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD) && state == 2) - if (C.use(5)) - state = 3 - icon_state = "3" - to_chat(user, SPAN_NOTICE("You add cables to the frame.")) - return - if(3) - if(HAS_TRAIT(P, TRAIT_TOOL_WIRECUTTERS)) - if (brain) - to_chat(user, "Get that brain out of there first") - else - playsound(loc, 'sound/items/Wirecutter.ogg', 25, 1) - to_chat(user, SPAN_NOTICE(" You remove the cables.")) - state = 2 - icon_state = "2" - var/obj/item/stack/cable_coil/A = new /obj/item/stack/cable_coil( loc ) - A.amount = 5 - - if(istype(P, /obj/item/stack/sheet/glass/reinforced)) - var/obj/item/stack/sheet/glass/reinforced/RG = P - if (RG.get_amount() < 2) - to_chat(user, SPAN_WARNING("You need two sheets of glass to put in the glass panel.")) - return - to_chat(user, SPAN_NOTICE("You start to put in the glass panel.")) - playsound(loc, 'sound/items/Deconstruct.ogg', 25, 1) - if (do_after(user, 20, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD) && state == 3) - if(RG.use(2)) - to_chat(user, SPAN_NOTICE("You put in the glass panel.")) - state = 4 - icon_state = "4" - - if(istype(P, /obj/item/device/mmi)) - var/obj/item/device/mmi/mmi - if(!mmi.brainmob) - to_chat(user, SPAN_DANGER("Sticking an empty [mmi] into the frame would sort of defeat the purpose.")) - return - if(mmi.brainmob.stat == 2) - to_chat(user, SPAN_DANGER("Sticking a dead [mmi] into the frame would sort of defeat the purpose.")) - return - - if(jobban_isbanned(mmi.brainmob, "AI")) - to_chat(user, SPAN_DANGER("This [mmi] does not seem to fit.")) - return - - if(user.drop_held_item()) - mmi.forceMove(src) - brain = mmi - to_chat(usr, "Added [mmi].") - icon_state = "3b" - - if(HAS_TRAIT(P, TRAIT_TOOL_CROWBAR) && brain) - playsound(loc, 'sound/items/Crowbar.ogg', 25, 1) - to_chat(user, SPAN_NOTICE(" You remove the brain.")) - brain.forceMove(loc) - brain = null - icon_state = "3" - - if(4) - if(HAS_TRAIT(P, TRAIT_TOOL_CROWBAR)) - playsound(loc, 'sound/items/Crowbar.ogg', 25, 1) - to_chat(user, SPAN_NOTICE(" You remove the glass panel.")) - state = 3 - if (brain) - icon_state = "3b" - else - icon_state = "3" - new /obj/item/stack/sheet/glass/reinforced( loc, 2 ) - return - - if(HAS_TRAIT(P, TRAIT_TOOL_SCREWDRIVER)) - playsound(loc, 'sound/items/Screwdriver.ogg', 25, 1) - to_chat(user, SPAN_NOTICE(" You connect the monitor.")) - var/mob/living/silicon/ai/A = new /mob/living/silicon/ai (loc, brain) - if(A) //if there's no brain, the mob is deleted and a structure/AIcore is created - A.rename_self("ai", 1) - qdel(src) - -/obj/structure/AIcore/deactivated - name = "Inactive AI" - icon = 'icons/obj/structures/machinery/AI.dmi' - icon_state = "hydra-off" - anchored = TRUE - state = 20//So it doesn't interact based on the above. Not really necessary. - -/obj/structure/AIcore/deactivated/attackby(obj/item/device/aicard/A as obj, mob/user as mob) - if(istype(A, /obj/item/device/aicard))//Is it? - A.transfer_ai("INACTIVE","AICARD",src,user) - return - -/* -This is a good place for AI-related object verbs so I'm sticking it here. -If adding stuff to this, don't forget that an AI need to cancel_camera() whenever it physically moves to a different location. -That prevents a few funky behaviors. -*/ -//What operation to perform based on target, what ineraction to perform based on object used, target itself, user. The object used is src and calls this proc. -/obj/item/proc/transfer_ai(choice as text, interaction as text, target, mob/U as mob) - if(!src:flush) - switch(choice) - if("AICORE")//AI mob. - var/mob/living/silicon/ai/T = target - switch(interaction) - if("AICARD") - var/obj/item/device/aicard/C = src - if(C.contents.len)//If there is an AI on card. - to_chat(U, SPAN_WARNING("Transfer failed: \black Existing AI found on this terminal. Remove existing AI to install a new one.")) - else - new /obj/structure/AIcore/deactivated(T.loc)//Spawns a deactivated terminal at AI location. - T.aiRestorePowerRoutine = 0//So the AI initially has power. - T.control_disabled = 1//Can't control things remotely if you're stuck in a card! - T.forceMove(C)//Throw AI into the card. - C.name = "inteliCard - [T.name]" - if (T.stat == 2) - C.icon_state = "aicard-404" - else - C.icon_state = "aicard-full" - T.cancel_camera() - to_chat(T, "You have been downloaded to a mobile storage device. Remote device connection severed.") - to_chat(U, SPAN_NOTICE(" Transfer successful: \black [T.name] ([rand(1000,9999)].exe) removed from host terminal and stored within local memory.")) - - if("INACTIVE")//Inactive AI object. - var/obj/structure/AIcore/deactivated/T = target - switch(interaction) - if("AICARD") - var/obj/item/device/aicard/C = src - var/mob/living/silicon/ai/A = locate() in C//I love locate(). Best proc ever. - if(A)//If AI exists on the card. Else nothing since both are empty. - A.control_disabled = 0 - A.aiRadio.disabledAi = 0 - A.forceMove(T.loc)//To replace the terminal. - C.icon_state = "aicard" - C.name = "inteliCard" - C.overlays.Cut() - A.cancel_camera() - to_chat(A, "You have been uploaded to a stationary terminal. Remote device connection restored.") - to_chat(U, SPAN_NOTICE(" Transfer successful: \black [A.name] ([rand(1000,9999)].exe) installed and executed succesfully. Local copy has been removed.")) - qdel(T) - if("AIFIXER")//AI Fixer terminal. - var/obj/structure/machinery/computer/aifixer/T = target - switch(interaction) - if("AICARD") - var/obj/item/device/aicard/C = src - if(!T.contents.len) - if (!C.contents.len) - to_chat(U, "No AI to copy over!")//Well duh - else for(var/mob/living/silicon/ai/A in C) - C.icon_state = "aicard" - C.name = "inteliCard" - C.overlays.Cut() - A.forceMove(T) - T.occupant = A - A.control_disabled = 1 - if (A.stat == 2) - T.overlays += image('icons/obj/structures/machinery/computer.dmi', "ai-fixer-404") - else - T.overlays += image('icons/obj/structures/machinery/computer.dmi', "ai-fixer-full") - T.overlays -= image('icons/obj/structures/machinery/computer.dmi', "ai-fixer-empty") - A.cancel_camera() - to_chat(A, "You have been uploaded to a stationary terminal. Sadly, there is no remote access from here.") - to_chat(U, SPAN_NOTICE(" Transfer successful: \black [A.name] ([rand(1000,9999)].exe) installed and executed successfully. Local copy has been removed.")) - else - if(!C.contents.len && T.occupant && !T.active) - C.name = "inteliCard - [T.occupant.name]" - T.overlays += image('icons/obj/structures/machinery/computer.dmi', "ai-fixer-empty") - if (T.occupant.stat == 2) - C.icon_state = "aicard-404" - T.overlays -= image('icons/obj/structures/machinery/computer.dmi', "ai-fixer-404") - else - C.icon_state = "aicard-full" - T.overlays -= image('icons/obj/structures/machinery/computer.dmi', "ai-fixer-full") - to_chat(T.occupant, "You have been downloaded to a mobile storage device. Still no remote access.") - to_chat(U, SPAN_NOTICE(" Transfer successful: \black [T.occupant.name] ([rand(1000,9999)].exe) removed from host terminal and stored within local memory.")) - T.occupant.forceMove(C) - T.occupant.cancel_camera() - T.occupant = null - else if (C.contents.len) - to_chat(U, SPAN_WARNING("ERROR: \black Artificial intelligence detected on terminal.")) - else if (T.active) - to_chat(U, SPAN_WARNING("ERROR: \black Reconstruction in progress.")) - else if (!T.occupant) - to_chat(U, SPAN_WARNING("ERROR: \black Unable to locate artificial intelligence.")) - else - to_chat(U, SPAN_WARNING("ERROR: \black AI flush is in progress, cannot execute transfer protocol.")) - return diff --git a/code/game/machinery/computer/aifixer.dm b/code/game/machinery/computer/aifixer.dm deleted file mode 100644 index 3a809620d7e6..000000000000 --- a/code/game/machinery/computer/aifixer.dm +++ /dev/null @@ -1,103 +0,0 @@ -/obj/structure/machinery/computer/aifixer - name = "AI System Integrity Restorer" - icon = 'icons/obj/structures/machinery/computer.dmi' - icon_state = "ai-fixer" - circuit = /obj/item/circuitboard/computer/aifixer - req_one_access = list(ACCESS_CIVILIAN_ENGINEERING) - var/mob/living/silicon/ai/occupant = null - var/active = 0 - processing = TRUE - -/obj/structure/machinery/computer/aifixer/New() - ..() - src.overlays += image('icons/obj/structures/machinery/computer.dmi', "ai-fixer-empty") - - -/obj/structure/machinery/computer/aifixer/attackby(I as obj, user as mob) - if(istype(I, /obj/item/device/aicard)) - if(inoperable()) - to_chat(user, "This terminal isn't functioning right now, get it working!") - return - I:transfer_ai("AIFIXER","AICARD",src,user) - - ..() - return - -/obj/structure/machinery/computer/aifixer/attack_remote(mob/user as mob) - return attack_hand(user) - -/obj/structure/machinery/computer/aifixer/attack_hand(mob/user as mob) - if(..()) - return - - user.set_interaction(src) - var/dat - - if (src.occupant) - dat += "Stored AI: [src.occupant.name]
      System integrity: [(src.occupant.health+100)/2]%
      " - - if (src.occupant.stat == 2) - dat += "AI nonfunctional" - else - dat += "AI functional" - if (!src.active) - dat += {"

      Begin Reconstruction"} - else - dat += "

      Reconstruction in process, please wait.
      " - dat += {" Close"} - - show_browser(user, dat, "AI System Integrity Restorer", "computer", "size=400x500") - return - -/obj/structure/machinery/computer/aifixer/process() - if(..()) - src.updateDialog() - return - -/obj/structure/machinery/computer/aifixer/Topic(href, href_list) - if(..()) - return - if (href_list["fix"]) - src.active = 1 - src.overlays += image('icons/obj/structures/machinery/computer.dmi', "ai-fixer-on") - while (src.occupant.health < 100) - src.occupant.apply_damage(-1, OXY) - src.occupant.apply_damage(-1, BURN) - src.occupant.apply_damage(-1, TOX) - src.occupant.apply_damage(-1, BRUTE) - src.occupant.updatehealth() - if (src.occupant.health >= 0 && src.occupant.stat == DEAD) - src.occupant.set_stat(CONSCIOUS) - GLOB.dead_mob_list -= src.occupant - GLOB.alive_mob_list += src.occupant - occupant.reload_fullscreens() - src.overlays -= image('icons/obj/structures/machinery/computer.dmi', "ai-fixer-404") - src.overlays += image('icons/obj/structures/machinery/computer.dmi', "ai-fixer-full") - src.occupant.add_ai_verbs() - src.updateUsrDialog() - sleep(10) - src.active = 0 - src.overlays -= image('icons/obj/structures/machinery/computer.dmi', "ai-fixer-on") - - - src.add_fingerprint(usr) - src.updateUsrDialog() - return - - -/obj/structure/machinery/computer/aifixer/update_icon() - ..() - // Broken / Unpowered - if(inoperable()) - overlays.Cut() - - // Working / Powered - else - if (occupant) - switch (occupant.stat) - if (0) - overlays += image('icons/obj/structures/machinery/computer.dmi', "ai-fixer-full") - if (2) - overlays += image('icons/obj/structures/machinery/computer.dmi', "ai-fixer-404") - else - overlays += image('icons/obj/structures/machinery/computer.dmi', "ai-fixer-empty") diff --git a/code/game/machinery/computer/almayer_control.dm b/code/game/machinery/computer/almayer_control.dm index 2b54d2e1df5b..3d3c0fdbe4df 100644 --- a/code/game/machinery/computer/almayer_control.dm +++ b/code/game/machinery/computer/almayer_control.dm @@ -85,7 +85,7 @@ if(SShijack.evac_status == EVACUATION_STATUS_INITIATED) data["evac_eta"] = SShijack.get_evac_eta() - if(!messagetitle.len) + if(!length(messagetitle)) data["messages"] = null else for(var/i in 1 to length(messagetitle)) @@ -108,39 +108,53 @@ . = ..() if(.) return + var/mob/user = ui.user switch(action) if("award") - print_medal(usr, src) + open_medal_panel(user, src) . = TRUE // evac stuff start \\ if("evacuation_start") if(GLOB.security_level < SEC_LEVEL_RED) - to_chat(usr, SPAN_WARNING("The ship must be under red alert in order to enact evacuation procedures.")) + to_chat(user, SPAN_WARNING("The ship must be under red alert in order to enact evacuation procedures.")) return FALSE if(SShijack.evac_admin_denied) - to_chat(usr, SPAN_WARNING("The USCM has placed a lock on deploying the evacuation pods.")) + to_chat(user, SPAN_WARNING("The USCM has placed a lock on deploying the evacuation pods.")) return FALSE if(!SShijack.initiate_evacuation()) - to_chat(usr, SPAN_WARNING("You are unable to initiate an evacuation procedure right now!")) + to_chat(user, SPAN_WARNING("You are unable to initiate an evacuation procedure right now!")) return FALSE - log_game("[key_name(usr)] has called for an emergency evacuation.") - message_admins("[key_name_admin(usr)] has called for an emergency evacuation.") - log_ares_security("Initiate Evacuation", "[usr] has called for an emergency evacuation.") + log_game("[key_name(user)] has called for an emergency evacuation.") + message_admins("[key_name_admin(user)] has called for an emergency evacuation.") + log_ares_security("Initiate Evacuation", "Called for an emergency evacuation.", user) . = TRUE if("evacuation_cancel") + var/mob/living/carbon/human/human_user = user + var/obj/item/card/id/idcard = human_user.get_active_hand() + var/bio_fail = FALSE + if(!istype(idcard)) + idcard = human_user.get_idcard() + if(!istype(idcard)) + bio_fail = TRUE + else if(!idcard.check_biometrics(human_user)) + bio_fail = TRUE + if(bio_fail) + to_chat(human_user, SPAN_WARNING("Biometrics failure! You require an authenticated ID card to perform this action!")) + return FALSE + if(!SShijack.cancel_evacuation()) - to_chat(usr, SPAN_WARNING("You are unable to cancel the evacuation right now!")) + to_chat(user, SPAN_WARNING("You are unable to cancel the evacuation right now!")) return FALSE - log_game("[key_name(usr)] has canceled the emergency evacuation.") - message_admins("[key_name_admin(usr)] has canceled the emergency evacuation.") - log_ares_security("Cancel Evacuation", "[usr] has cancelled the emergency evacuation.") + log_game("[key_name(user)] has canceled the emergency evacuation.") + message_admins("[key_name_admin(user)] has canceled the emergency evacuation.") + log_ares_security("Cancel Evacuation", "Cancelled the emergency evacuation.", user) . = TRUE // evac stuff end \\ @@ -155,77 +169,86 @@ if(SEC_LEVEL_DELTA) return - var/level_selected = tgui_input_list(usr, "What alert would you like to set it as?", "Alert Level", alert_list) + var/level_selected = tgui_input_list(user, "What alert would you like to set it as?", "Alert Level", alert_list) if(!level_selected) return set_security_level(seclevel2num(level_selected), log = ARES_LOG_NONE) - log_game("[key_name(usr)] has changed the security level to [get_security_level()].") - message_admins("[key_name_admin(usr)] has changed the security level to [get_security_level()].") - log_ares_security("Manual Security Update", "[usr] has changed the security level to [get_security_level()].") + log_game("[key_name(user)] has changed the security level to [get_security_level()].") + message_admins("[key_name_admin(user)] has changed the security level to [get_security_level()].") + log_ares_security("Manual Security Update", "Changed the security level to [get_security_level()].", user) . = TRUE if("messageUSCM") if(!COOLDOWN_FINISHED(src, cooldown_central)) - to_chat(usr, SPAN_WARNING("Arrays are re-cycling. Please stand by.")) + to_chat(user, SPAN_WARNING("Arrays are re-cycling. Please stand by.")) return FALSE - var/input = stripped_input(usr, "Please choose a message to transmit to USCM. Please be aware that this process is very expensive, and abuse will lead to termination. Transmission does not guarantee a response. There is a small delay before you may send another message. Be clear and concise.", "To abort, send an empty message.", "") - if(!input || !(usr in view(1,src)) || !COOLDOWN_FINISHED(src, cooldown_central)) + var/input = stripped_input(user, "Please choose a message to transmit to USCM. Please be aware that this process is very expensive, and abuse will lead to termination. Transmission does not guarantee a response. There is a small delay before you may send another message. Be clear and concise.", "To abort, send an empty message.", "") + if(!input || !(user in view(1,src)) || !COOLDOWN_FINISHED(src, cooldown_central)) return FALSE - high_command_announce(input, usr) - to_chat(usr, SPAN_NOTICE("Message transmitted.")) - log_announcement("[key_name(usr)] has made an USCM announcement: [input]") + high_command_announce(input, user) + to_chat(user, SPAN_NOTICE("Message transmitted.")) + log_announcement("[key_name(user)] has made an USCM announcement: [input]") COOLDOWN_START(src, cooldown_central, COOLDOWN_COMM_CENTRAL) . = TRUE if("ship_announce") + var/mob/living/carbon/human/human_user = user + var/obj/item/card/id/idcard = human_user.get_active_hand() + var/bio_fail = FALSE + if(!istype(idcard)) + idcard = human_user.get_idcard() + if(!idcard) + bio_fail = TRUE + else if(!idcard.check_biometrics(human_user)) + bio_fail = TRUE + if(bio_fail) + to_chat(human_user, SPAN_WARNING("Biometrics failure! You require an authenticated ID card to perform this action!")) + return FALSE + if(!COOLDOWN_FINISHED(src, cooldown_message)) - to_chat(usr, SPAN_WARNING("Please allow at least [COOLDOWN_TIMELEFT(src, cooldown_message)/10] second\s to pass between announcements.")) + to_chat(user, SPAN_WARNING("Please allow at least [COOLDOWN_TIMELEFT(src, cooldown_message)/10] second\s to pass between announcements.")) return FALSE - var/input = stripped_multiline_input(usr, "Please write a message to announce to the station crew.", "Priority Announcement", "") - if(!input || !COOLDOWN_FINISHED(src, cooldown_message) || !(usr in view(1,src))) + var/input = stripped_multiline_input(user, "Please write a message to announce to the station crew.", "Priority Announcement", "") + if(!input || !COOLDOWN_FINISHED(src, cooldown_message) || !(user in view(1,src))) return FALSE var/signed = null - if(ishuman(usr)) - var/mob/living/carbon/human/human_user = usr - var/obj/item/card/id/id = human_user.wear_id - if(istype(id)) - var/paygrade = get_paygrades(id.paygrade, FALSE, human_user.gender) - signed = "[paygrade] [id.registered_name]" + var/paygrade = get_paygrades(idcard.paygrade, FALSE, human_user.gender) + signed = "[paygrade] [idcard.registered_name]" COOLDOWN_START(src, cooldown_message, COOLDOWN_COMM_MESSAGE) shipwide_ai_announcement(input, COMMAND_SHIP_ANNOUNCE, signature = signed) - message_admins("[key_name(usr)] has made a shipwide annoucement.") - log_announcement("[key_name(usr)] has announced the following to the ship: [input]") + message_admins("[key_name(user)] has made a shipwide annoucement.") + log_announcement("[key_name(user)] has announced the following to the ship: [input]") . = TRUE if("distress") if(world.time < DISTRESS_TIME_LOCK) - to_chat(usr, SPAN_WARNING("The distress beacon cannot be launched this early in the operation. Please wait another [time_left_until(DISTRESS_TIME_LOCK, world.time, 1 MINUTES)] minutes before trying again.")) + to_chat(user, SPAN_WARNING("The distress beacon cannot be launched this early in the operation. Please wait another [time_left_until(DISTRESS_TIME_LOCK, world.time, 1 MINUTES)] minutes before trying again.")) return FALSE if(!SSticker.mode) return FALSE //Not a game mode? if(SSticker.mode.force_end_at == 0) - to_chat(usr, SPAN_WARNING("ARES has denied your request for operational security reasons.")) + to_chat(user, SPAN_WARNING("ARES has denied your request for operational security reasons.")) return FALSE if(!COOLDOWN_FINISHED(src, cooldown_request)) - to_chat(usr, SPAN_WARNING("The distress beacon has recently broadcast a message. Please wait.")) + to_chat(user, SPAN_WARNING("The distress beacon has recently broadcast a message. Please wait.")) return FALSE if(GLOB.security_level == SEC_LEVEL_DELTA) - to_chat(usr, SPAN_WARNING("The ship is already undergoing self-destruct procedures!")) + to_chat(user, SPAN_WARNING("The ship is already undergoing self-destruct procedures!")) return FALSE for(var/client/admin_client as anything in GLOB.admins) if((R_ADMIN|R_MOD) & admin_client.admin_holder.rights) admin_client << 'sound/effects/sos-morse-code.ogg' - SSticker.mode.request_ert(usr) - to_chat(usr, SPAN_NOTICE("A distress beacon request has been sent to USCM Central Command.")) + SSticker.mode.request_ert(user) + to_chat(user, SPAN_NOTICE("A distress beacon request has been sent to USCM Central Command.")) COOLDOWN_START(src, cooldown_request, COOLDOWN_COMM_REQUEST) . = TRUE @@ -234,29 +257,29 @@ if("destroy") if(world.time < DISTRESS_TIME_LOCK) - to_chat(usr, SPAN_WARNING("The self-destruct cannot be activated this early in the operation. Please wait another [time_left_until(DISTRESS_TIME_LOCK, world.time, 1 MINUTES)] minutes before trying again.")) + to_chat(user, SPAN_WARNING("The self-destruct cannot be activated this early in the operation. Please wait another [time_left_until(DISTRESS_TIME_LOCK, world.time, 1 MINUTES)] minutes before trying again.")) return FALSE if(!SSticker.mode) return FALSE //Not a game mode? if(SSticker.mode.force_end_at == 0) - to_chat(usr, SPAN_WARNING("ARES has denied your request for operational security reasons.")) + to_chat(user, SPAN_WARNING("ARES has denied your request for operational security reasons.")) return FALSE if(!COOLDOWN_FINISHED(src, cooldown_destruct)) - to_chat(usr, SPAN_WARNING("A self-destruct request has already been sent to high command. Please wait.")) + to_chat(user, SPAN_WARNING("A self-destruct request has already been sent to high command. Please wait.")) return FALSE if(get_security_level() == "delta") - to_chat(usr, SPAN_WARNING("The [MAIN_SHIP_NAME]'s self-destruct is already activated.")) + to_chat(user, SPAN_WARNING("The [MAIN_SHIP_NAME]'s self-destruct is already activated.")) return FALSE for(var/client/admin_client as anything in GLOB.admins) if((R_ADMIN|R_MOD) & admin_client.admin_holder.rights) admin_client << 'sound/effects/sos-morse-code.ogg' - message_admins("[key_name(usr)] has requested Self-Destruct! [CC_MARK(usr)] (GRANT) (DENY) [ADMIN_JMP_USER(usr)] [CC_REPLY(usr)]") - to_chat(usr, SPAN_NOTICE("A self-destruct request has been sent to USCM Central Command.")) + message_admins("[key_name(user)] has requested Self-Destruct! [CC_MARK(user)] (GRANT) (DENY) [ADMIN_JMP_USER(user)] [CC_REPLY(user)]") + to_chat(user, SPAN_NOTICE("A self-destruct request has been sent to USCM Central Command.")) COOLDOWN_START(src, cooldown_destruct, COOLDOWN_COMM_DESTRUCT) . = TRUE diff --git a/code/game/machinery/computer/arcade.dm b/code/game/machinery/computer/arcade.dm index 1ac5a06738d5..ff8f3959d64e 100644 --- a/code/game/machinery/computer/arcade.dm +++ b/code/game/machinery/computer/arcade.dm @@ -122,7 +122,7 @@ src.gameover = 1 src.temp = "[src.enemy_name] has fallen! Rejoice!" - if(!contents.len) + if(!length(contents)) var/prizeselect = pickweight(prizes) new prizeselect(src.loc) diff --git a/code/game/machinery/computer/atmos_alert.dm b/code/game/machinery/computer/atmos_alert.dm index 9a17449b9e47..8ce8248b07a2 100644 --- a/code/game/machinery/computer/atmos_alert.dm +++ b/code/game/machinery/computer/atmos_alert.dm @@ -62,10 +62,10 @@ ..() if(inoperable()) return - if(priority_alarms.len) + if(length(priority_alarms)) icon_state = "alert:2" - else if(minor_alarms.len) + else if(length(minor_alarms)) icon_state = "alert:1" else @@ -77,13 +77,13 @@ var/priority_text var/minor_text - if(priority_alarms.len) + if(length(priority_alarms)) for(var/zone in priority_alarms) priority_text += "[zone] X
      " else priority_text = "No priority alerts detected.
      " - if(minor_alarms.len) + if(length(minor_alarms)) for(var/zone in minor_alarms) minor_text += "[zone] X
      " else diff --git a/code/game/machinery/computer/camera_console.dm b/code/game/machinery/computer/camera_console.dm index ca8c8b2f1a34..c818df9fbfb9 100644 --- a/code/game/machinery/computer/camera_console.dm +++ b/code/game/machinery/computer/camera_console.dm @@ -13,65 +13,41 @@ var/list/concurrent_users = list() // Stuff needed to render the map - var/map_name - var/atom/movable/screen/map_view/cam_screen - var/atom/movable/screen/background/cam_background + var/camera_map_name var/colony_camera_mapload = TRUE var/admin_console = FALSE - - /// All the plane masters that need to be applied. - var/list/cam_plane_masters + var/stay_connected = FALSE /obj/structure/machinery/computer/cameras/Initialize(mapload) . = ..() - // Map name has to start and end with an A-Z character, - // and definitely NOT with a square bracket or even a number. - // I wasted 6 hours on this. :agony: - map_name = "camera_console_[REF(src)]_map" + + RegisterSignal(src, COMSIG_CAMERA_MAPNAME_ASSIGNED, PROC_REF(camera_mapname_update)) + + // camera setup + AddComponent(/datum/component/camera_manager) + SEND_SIGNAL(src, COMSIG_CAMERA_CLEAR) if(colony_camera_mapload && mapload && is_ground_level(z)) network = list(CAMERA_NET_COLONY) - cam_plane_masters = list() - for(var/plane in subtypesof(/atom/movable/screen/plane_master) - /atom/movable/screen/plane_master/blackness) - var/atom/movable/screen/plane_master/instance = new plane() - instance.assigned_map = map_name - instance.del_on_map_removal = FALSE - if(instance.blend_mode_override) - instance.blend_mode = instance.blend_mode_override - if(istype(instance, /atom/movable/screen/plane_master/lighting)) - instance.add_filter("awooga", 1, color_matrix_filter(color_matrix_from_string("#90ee90"))) - instance.screen_loc = "[map_name]:CENTER" - cam_plane_masters += instance - - // Initialize map objects - cam_screen = new - cam_screen.icon = null - cam_screen.name = "screen" - cam_screen.assigned_map = map_name - cam_screen.del_on_map_removal = FALSE - cam_screen.screen_loc = "[map_name]:1,1" - cam_background = new - cam_background.assigned_map = map_name - cam_background.del_on_map_removal = FALSE /obj/structure/machinery/computer/cameras/Destroy() SStgui.close_uis(src) - QDEL_NULL(current) - QDEL_NULL(cam_screen) - qdel(cam_screen) - QDEL_NULL(cam_background) - qdel(cam_background) + current = null + UnregisterSignal(src, COMSIG_CAMERA_MAPNAME_ASSIGNED) last_camera_turf = null concurrent_users = null return ..() +/obj/structure/machinery/computer/cameras/proc/camera_mapname_update(source, value) + camera_map_name = value + /obj/structure/machinery/computer/cameras/attack_remote(mob/user as mob) return attack_hand(user) /obj/structure/machinery/computer/cameras/attack_hand(mob/user) - if(!admin_console && is_admin_level(z)) + if(!admin_console && should_block_game_interaction(src)) to_chat(user, SPAN_DANGER("Unable to establish a connection: \black You're too far away from the ship!")) return if(inoperable()) @@ -93,8 +69,7 @@ // Update UI ui = SStgui.try_update_ui(user, src, ui) - // Update the camera, showing static if necessary and updating data if the location has moved. - update_active_camera_screen() + SEND_SIGNAL(src, COMSIG_CAMERA_REFRESH) if(!ui) var/user_ref = WEAKREF(user) @@ -106,11 +81,9 @@ // Turn on the console if(length(concurrent_users) == 1 && is_living) update_use_power(USE_POWER_ACTIVE) - // Register map objects - user.client.register_map_obj(cam_screen) - user.client.register_map_obj(cam_background) - for(var/plane in cam_plane_masters) - user.client.register_map_obj(plane) + + SEND_SIGNAL(src, COMSIG_CAMERA_REGISTER_UI, user) + // Open UI ui = new(user, src, "CameraConsole", name) ui.open() @@ -128,7 +101,7 @@ /obj/structure/machinery/computer/cameras/ui_static_data() var/list/data = list() - data["mapRef"] = map_name + data["mapRef"] = camera_map_name var/list/cameras = get_available_cameras() data["cameras"] = list() for(var/i in cameras) @@ -162,47 +135,10 @@ if(!selected_camera) return TRUE - update_active_camera_screen() + SEND_SIGNAL(src, COMSIG_CAMERA_SET_TARGET, selected_camera, selected_camera.view_range, selected_camera.view_range) return TRUE -/obj/structure/machinery/computer/cameras/proc/update_active_camera_screen() - // Show static if can't use the camera - if(!current?.can_use()) - show_camera_static() - return - - // Is this camera located in or attached to a living thing, Vehicle or helmet? If so, assume the camera's loc is the living (or non) thing. - var/cam_location = current - if(isliving(current.loc) || isVehicle(current.loc)) - cam_location = current.loc - else if(istype(current.loc, /obj/item/clothing/head/helmet/marine)) - var/obj/item/clothing/head/helmet/marine/helmet = current.loc - cam_location = helmet.loc - - // If we're not forcing an update for some reason and the cameras are in the same location, - // we don't need to update anything. - // Most security cameras will end here as they're not moving. - var/newturf = get_turf(cam_location) - if(last_camera_turf == newturf) - return - - // Cameras that get here are moving, and are likely attached to some moving atom such as cyborgs. - last_camera_turf = get_turf(cam_location) - - var/list/visible_things = current.isXRay() ? range(current.view_range, cam_location) : view(current.view_range, cam_location) - - var/list/visible_turfs = list() - for(var/turf/visible_turf in visible_things) - visible_turfs += visible_turf - - var/list/bbox = get_bbox_of_atoms(visible_turfs) - var/size_x = bbox[3] - bbox[1] + 1 - var/size_y = bbox[4] - bbox[2] + 1 - - cam_screen.vis_contents = visible_turfs - cam_background.icon_state = "clear" - cam_background.fill_rect(1, 1, size_x, size_y) /obj/structure/machinery/computer/cameras/ui_close(mob/user) var/user_ref = WEAKREF(user) @@ -210,25 +146,20 @@ // Living creature or not, we remove you anyway. concurrent_users -= user_ref // Unregister map objects - user.client.clear_map(map_name) + SEND_SIGNAL(src, COMSIG_CAMERA_UNREGISTER_UI, user) // Turn off the console - if(length(concurrent_users) == 0 && is_living) + if(length(concurrent_users) == 0 && is_living && !stay_connected) current = null + SEND_SIGNAL(src, COMSIG_CAMERA_CLEAR) last_camera_turf = null if(use_power) update_use_power(USE_POWER_IDLE) user.unset_interaction() -/obj/structure/machinery/computer/cameras/proc/show_camera_static() - cam_screen.vis_contents.Cut() - last_camera_turf = null - cam_background.icon_state = "scanline2" - cam_background.fill_rect(1, 1, DEFAULT_MAP_SIZE, DEFAULT_MAP_SIZE) - // Returns the list of cameras accessible from this computer /obj/structure/machinery/computer/cameras/proc/get_available_cameras() var/list/D = list() - for(var/obj/structure/machinery/camera/C in GLOB.cameranet.cameras) + for(var/obj/structure/machinery/camera/C in GLOB.all_cameras) if(!C.network) stack_trace("Camera in a cameranet has no camera network") continue @@ -236,7 +167,7 @@ stack_trace("Camera in a cameranet has a non-list camera network") continue var/list/tempnetwork = C.network & network - if(tempnetwork.len) + if(length(tempnetwork)) D["[C.c_tag]"] = C return D @@ -272,10 +203,88 @@ name = "Ship Security Cameras" network = list(CAMERA_NET_ALMAYER) -/obj/structure/machinery/computer/cameras/wooden_tv/prop +/obj/structure/machinery/computer/cameras/wooden_tv/broadcast name = "Television Set" desc = "An old TV hooked up to a video cassette recorder, you can even use it to time shift WOW." - network = null + network = list(CAMERA_NET_CORRESPONDENT) + stay_connected = TRUE + circuit = /obj/item/circuitboard/computer/cameras/tv + var/obj/item/device/camera/broadcasting/broadcastingcamera = null + +/obj/structure/machinery/computer/cameras/wooden_tv/broadcast/Destroy() + broadcastingcamera = null + return ..() + +/obj/structure/machinery/computer/cameras/wooden_tv/broadcast/ui_state(mob/user) + return GLOB.in_view + +/obj/structure/machinery/computer/cameras/wooden_tv/broadcast/ui_act(action, params) + . = ..() + if(action != "switch_camera") + return + if(broadcastingcamera) + clear_camera() + if(!istype(current, /obj/structure/machinery/camera/correspondent)) + return + var/obj/structure/machinery/camera/correspondent/corr_cam = current + if(!corr_cam.linked_broadcasting) + return + broadcastingcamera = corr_cam.linked_broadcasting + RegisterSignal(broadcastingcamera, COMSIG_BROADCAST_GO_LIVE, PROC_REF(go_back_live)) + RegisterSignal(broadcastingcamera, COMSIG_COMPONENT_ADDED, PROC_REF(handle_rename)) + RegisterSignal(broadcastingcamera, COMSIG_PARENT_QDELETING, PROC_REF(clear_camera)) + RegisterSignal(broadcastingcamera, COMSIG_BROADCAST_HEAR_TALK, PROC_REF(transfer_talk)) + RegisterSignal(broadcastingcamera, COMSIG_BROADCAST_SEE_EMOTE, PROC_REF(transfer_emote)) + +/obj/structure/machinery/computer/cameras/wooden_tv/broadcast/ui_close(mob/user) + . = ..() + if(!broadcastingcamera) + return + if(!current) + clear_camera() + +/obj/structure/machinery/computer/cameras/wooden_tv/broadcast/proc/clear_camera() + SIGNAL_HANDLER + UnregisterSignal(broadcastingcamera, list(COMSIG_BROADCAST_GO_LIVE, COMSIG_PARENT_QDELETING, COMSIG_COMPONENT_ADDED, COMSIG_BROADCAST_HEAR_TALK, COMSIG_BROADCAST_SEE_EMOTE)) + broadcastingcamera = null + +/obj/structure/machinery/computer/cameras/wooden_tv/broadcast/proc/go_back_live(obj/item/device/camera/broadcasting/broadcastingcamera) + SIGNAL_HANDLER + if(current.c_tag == broadcastingcamera.get_broadcast_name()) + current = broadcastingcamera.linked_cam + SEND_SIGNAL(src, COMSIG_CAMERA_SET_TARGET, broadcastingcamera.linked_cam, broadcastingcamera.linked_cam.view_range, broadcastingcamera.linked_cam.view_range) + +/obj/structure/machinery/computer/cameras/wooden_tv/broadcast/proc/transfer_talk(obj/item/camera, mob/living/sourcemob, message, verb = "says", datum/language/language, italics = FALSE, show_message_above_tv = FALSE) + SIGNAL_HANDLER + if(inoperable()) + return + if(show_message_above_tv) + langchat_speech(message, get_mobs_in_view(7, src), language, sourcemob.langchat_color, FALSE, LANGCHAT_FAST_POP, list(sourcemob.langchat_styles)) + for(var/datum/weakref/user_ref in concurrent_users) + var/mob/user = user_ref.resolve() + if(user?.client?.prefs && !user.client.prefs.lang_chat_disabled && !user.ear_deaf && user.say_understands(sourcemob, language)) + sourcemob.langchat_display_image(user) + +/obj/structure/machinery/computer/cameras/wooden_tv/broadcast/proc/transfer_emote(obj/item/camera, mob/living/sourcemob, emote, audible = FALSE, show_message_above_tv = FALSE) + SIGNAL_HANDLER + if(inoperable()) + return + if(show_message_above_tv) + langchat_speech(emote, get_mobs_in_view(7, src), null, null, TRUE, LANGCHAT_FAST_POP, list("emote")) + for(var/datum/weakref/user_ref in concurrent_users) + var/mob/user = user_ref.resolve() + if(user?.client?.prefs && (user.client.prefs.toggles_langchat & LANGCHAT_SEE_EMOTES) && (!audible || !user.ear_deaf)) + sourcemob.langchat_display_image(user) + +/obj/structure/machinery/computer/cameras/wooden_tv/broadcast/examine(mob/user) + . = ..() + attack_hand(user) //watch tv on examine + +/obj/structure/machinery/computer/cameras/wooden_tv/broadcast/proc/handle_rename(obj/item/camera, datum/component/label) + SIGNAL_HANDLER + if(!istype(label, /datum/component/label)) + return + current.c_tag = broadcastingcamera.get_broadcast_name() /obj/structure/machinery/computer/cameras/wooden_tv/ot name = "Mortar Monitoring Set" diff --git a/code/game/machinery/computer/communications.dm b/code/game/machinery/computer/communications.dm index 7a51539b8888..2e6922e43a85 100644 --- a/code/game/machinery/computer/communications.dm +++ b/code/game/machinery/computer/communications.dm @@ -81,8 +81,8 @@ if(ACCESS_MARINE_SENIOR in I.access) authenticated = 2 else - I = C.wear_id - if(istype(I)) + I = C.get_idcard() + if(I) if(check_access(I)) authenticated = 1 if(ACCESS_MARINE_SENIOR in I.access) authenticated = 2 @@ -113,6 +113,19 @@ if("announce") if(authenticated == 2) + var/mob/living/carbon/human/human_user = usr + var/obj/item/card/id/idcard = human_user.get_active_hand() + var/bio_fail = FALSE + if(!istype(idcard)) + idcard = human_user.get_idcard() + if(idcard) + bio_fail = TRUE + else if(!idcard.check_biometrics(human_user)) + bio_fail = TRUE + if(bio_fail) + to_chat(human_user, SPAN_WARNING("Biometrics failure! You require an authenticated ID card to perform this action!")) + return FALSE + if(usr.client.prefs.muted & MUTE_IC) to_chat(usr, SPAN_DANGER("You cannot send Announcements (muted).")) return @@ -130,7 +143,7 @@ cooldown_message = world.time if("award") - print_medal(usr, src) + open_medal_panel(usr, src) if("evacuation_start") if(state == STATE_EVACUATION) @@ -148,12 +161,25 @@ log_game("[key_name(usr)] has called for an emergency evacuation.") message_admins("[key_name_admin(usr)] has called for an emergency evacuation.") - log_ares_security("Initiate Evacuation", "[usr] has called for an emergency evacuation.") + log_ares_security("Initiate Evacuation", "Called for an emergency evacuation.", usr) return TRUE state = STATE_EVACUATION if("evacuation_cancel") + var/mob/living/carbon/human/human_user = usr + var/obj/item/card/id/idcard = human_user.get_active_hand() + var/bio_fail = FALSE + if(!istype(idcard)) + idcard = human_user.get_idcard() + if(!idcard) + bio_fail = TRUE + else if(!idcard.check_biometrics(human_user)) + bio_fail = TRUE + if(bio_fail) + to_chat(human_user, SPAN_WARNING("Biometrics failure! You require an authenticated ID card to perform this action!")) + return FALSE + if(state == STATE_EVACUATION_CANCEL) if(!SShijack.cancel_evacuation()) to_chat(usr, SPAN_WARNING("You are unable to cancel the evacuation right now!")) @@ -161,7 +187,7 @@ log_game("[key_name(usr)] has canceled the emergency evacuation.") message_admins("[key_name_admin(usr)] has canceled the emergency evacuation.") - log_ares_security("Cancel Evacuation", "[usr] has cancelled the emergency evacuation.") + log_ares_security("Cancel Evacuation", "Cancelled the emergency evacuation.", usr) return TRUE state = STATE_EVACUATION_CANCEL @@ -340,7 +366,7 @@ dat += "
      Select primary LZ" dat += "

      " dat += "
      Make an announcement" - dat += GLOB.admins.len > 0 ? "
      Send a message to USCM" : "
      USCM communication offline" + dat += length(GLOB.admins) > 0 ? "
      Send a message to USCM" : "
      USCM communication offline" dat += "
      Award a medal" dat += "
      Send Distress Beacon" dat += "
      Activate Self-Destruct" @@ -367,7 +393,7 @@ if(STATE_MESSAGELIST) dat += "Messages:" - for(var/i = 1; i<=messagetitle.len; i++) + for(var/i = 1; i<=length(messagetitle); i++) dat += "
      [messagetitle[i]]" if(STATE_VIEWMESSAGE) @@ -440,7 +466,7 @@ if(STATE_MESSAGELIST) dat += "Messages:" - for(var/i = 1; i<=messagetitle.len; i++) + for(var/i = 1; i<=length(messagetitle); i++) dat += "
      [messagetitle[i]]" if(STATE_VIEWMESSAGE) diff --git a/code/game/machinery/computer/computer.dm b/code/game/machinery/computer/computer.dm index c33517796271..bfa64ab174ed 100644 --- a/code/game/machinery/computer/computer.dm +++ b/code/game/machinery/computer/computer.dm @@ -60,7 +60,7 @@ visible_message("[Proj] ricochets off [src]!") return 0 else - if(prob(round(Proj.ammo.damage /2))) + if(prob(floor(Proj.ammo.damage /2))) set_broken() ..() return 1 @@ -126,7 +126,7 @@ src.attack_alien(user) return src.attack_hand(user) - return + return ..() /obj/structure/machinery/computer/attack_hand() . = ..() diff --git a/code/game/machinery/computer/demo_sim.dm b/code/game/machinery/computer/demo_sim.dm index 15261cfc8f4b..f633e8f351d4 100644 --- a/code/game/machinery/computer/demo_sim.dm +++ b/code/game/machinery/computer/demo_sim.dm @@ -55,7 +55,6 @@ var/list/data = list() data["configuration"] = configuration - data["looking"] = simulation.looking_at_simulation data["dummy_mode"] = simulation.dummy_mode data["worldtime"] = world.time @@ -104,8 +103,7 @@ /obj/structure/machinery/computer/demo_sim/ui_close(mob/user) . = ..() - if(simulation.looking_at_simulation) - simulation.stop_watching(user) + simulation.stop_watching(user) // DEMOLITIONS TGUI SHIT END \\ diff --git a/code/game/machinery/computer/dropship_weapons.dm b/code/game/machinery/computer/dropship_weapons.dm index d86b9fc28a28..e07b415ed233 100644 --- a/code/game/machinery/computer/dropship_weapons.dm +++ b/code/game/machinery/computer/dropship_weapons.dm @@ -11,7 +11,6 @@ exproof = TRUE var/shuttle_tag // Used to know which shuttle we're linked to. var/obj/structure/dropship_equipment/selected_equipment //the currently selected equipment installed on the shuttle this console controls. - var/list/shuttle_equipments = list() //list of the equipments on the shuttle this console controls var/cavebreaker = FALSE //ignore caves and other restrictions? var/datum/cas_fire_envelope/firemission_envelope var/datum/cas_fire_mission/selected_firemission @@ -25,168 +24,101 @@ var/datum/simulator/simulation var/datum/cas_fire_mission/configuration + // groundside maps + var/datum/tacmap/tacmap + var/minimap_type = MINIMAP_FLAG_USCM + + // Cameras + var/camera_target_id + var/camera_width = 11 + var/camera_height = 11 + var/camera_map_name + ///Tracks equipment with a camera that is deployed and we are viewing + var/obj/structure/dropship_equipment/camera_area_equipment = null + + var/registered = FALSE + /obj/structure/machinery/computer/dropship_weapons/Initialize() . = ..() simulation = new() + tacmap = new(src, minimap_type) + + RegisterSignal(src, COMSIG_CAMERA_MAPNAME_ASSIGNED, PROC_REF(camera_mapname_update)) + + // camera setup + AddComponent(/datum/component/camera_manager) + SEND_SIGNAL(src, COMSIG_CAMERA_CLEAR) /obj/structure/machinery/computer/dropship_weapons/New() ..() if(firemission_envelope) firemission_envelope.linked_console = src +/obj/structure/machinery/computer/dropship_weapons/proc/camera_mapname_update(source, value) + camera_map_name = value + +/obj/structure/machinery/computer/dropship_weapons/Destroy() + . = ..() + UnregisterSignal(src, COMSIG_CAMERA_MAPNAME_ASSIGNED) + /obj/structure/machinery/computer/dropship_weapons/attack_hand(mob/user) if(..()) return - if(!allowed(user)) + if(!allowed(user)) + // TODO: Restore cas simulator + to_chat(user, SPAN_WARNING("Weapons modification access denied.")) + return TRUE // everyone can access the simulator, requested feature. - to_chat(user, SPAN_WARNING("Weapons modification access denied, attempting to launch simulation.")) + /*to_chat(user, SPAN_WARNING("Weapons modification access denied, attempting to launch simulation.")) if(!selected_firemission) - to_chat(usr, SPAN_WARNING("Firemission must be selected before attempting to run the simulation")) - return + to_chat(user, SPAN_WARNING("Firemission must be selected before attempting to run the simulation")) + return TRUE tgui_interact(user) - return 1 + return FALSE*/ user.set_interaction(src) ui_interact(user) /obj/structure/machinery/computer/dropship_weapons/attackby(obj/item/W, mob/user as mob) if(istype(W, /obj/item/frame/matrix_frame)) - var/obj/item/frame/matrix_frame/MATRIX = W - if(MATRIX.state == ASSEMBLY_LOCKED) + var/obj/item/frame/matrix_frame/matrix = W + if(matrix.state == ASSEMBLY_LOCKED) user.drop_held_item(W, src) W.forceMove(src) to_chat(user, SPAN_NOTICE("You swap the matrix in the dropship guidance camera system, destroying the older part in the process")) - upgraded = MATRIX.upgrade - matrixcol = MATRIX.matrixcol - power = MATRIX.power + upgraded = matrix.upgrade + matrixcol = matrix.matrixcol + power = matrix.power else to_chat(user, SPAN_WARNING("Matrix is not complete!")) +/obj/structure/machinery/computer/dropship_weapons/proc/equipment_update(obj/docking_port/mobile/marine_dropship/dropship) + SIGNAL_HANDLER + var/list/obj/structure/dropship_equipment/weapons = list() + for(var/obj/structure/dropship_equipment/weapon/weap as anything in dropship.equipments) + weapons.Add(weap) + firemission_envelope.update_weapons(weapons) + /obj/structure/machinery/computer/dropship_weapons/ui_interact(mob/user, ui_key = "main", datum/nanoui/ui = null, force_open = 0) - var/data[0] var/obj/docking_port/mobile/marine_dropship/dropship = SSshuttle.getShuttle(shuttle_tag) - if (!istype(dropship)) + if(!istype(dropship)) return - var/shuttle_state - switch(dropship.mode) - if(SHUTTLE_IDLE) - shuttle_state = "idle" - if(SHUTTLE_IGNITING) - shuttle_state = "warmup" - if(SHUTTLE_CALL) - shuttle_state = "in_transit" - if(SHUTTLE_CRASHED) - shuttle_state = "crashed" - - - var/list/equipment_data = list() - var/list/targets_data = list() - var/list/firemission_data = list() - var/list/firemission_edit_data = list() - var/list/firemission_edit_timeslices = list() - - for(var/ts = 1; ts<=firemission_envelope.fire_length; ts++) - firemission_edit_timeslices += ts - - var/current_mission_error = null - if(!faction) - return //no faction, no weapons - - var/datum/cas_iff_group/cas_group = GLOB.cas_groups[faction] - - if(!cas_group) - return //broken group. No fighting - - for(var/X in cas_group.cas_signals) - var/datum/cas_signal/LT = X - if(!istype(LT) || !LT.valid_signal()) - continue - var/area/laser_area = get_area(LT.signal_loc) - targets_data += list(list("target_name" = "[LT.name] ([laser_area.name])", "target_tag" = LT.target_id)) - shuttle_equipments = dropship.equipments - var/element_nbr = 1 - for(var/X in dropship.equipments) - var/obj/structure/dropship_equipment/E = X - equipment_data += list(list("name"= sanitize(copytext(E.name,1,MAX_MESSAGE_LEN)), "eqp_tag" = element_nbr, "is_weapon" = E.is_weapon, "is_interactable" = E.is_interactable)) - element_nbr++ - E.linked_console = src - - - var/selected_eqp_name = "" - var/selected_eqp_ammo_name = "" - var/selected_eqp_ammo_amt = 0 - var/selected_eqp_max_ammo_amt = 0 var/screen_mode = 0 - var/fm_length = 0 - var/fm_offset = 0 - var/fm_direction = "" - var/fm_step_text = "" - var/firemission_signal - var/firemission_stat = 0 - if(selected_equipment) - selected_eqp_name = sanitize(copytext(selected_equipment.name,1,MAX_MESSAGE_LEN)) - if(selected_equipment.ammo_equipped) - selected_eqp_ammo_name = sanitize(copytext(selected_equipment.ammo_equipped.name,1,MAX_MESSAGE_LEN)) - selected_eqp_ammo_amt = selected_equipment.ammo_equipped.ammo_count - selected_eqp_max_ammo_amt = selected_equipment.ammo_equipped.max_ammo_count - screen_mode = selected_equipment.screen_mode - - var/firemission_id = 1 - var/found_selected = FALSE if(firemission_envelope) - firemission_stat = firemission_envelope.stat - fm_step_text = firemission_envelope.firemission_status_message() - for(var/datum/cas_fire_mission/X in firemission_envelope.missions) - if(!istype(X)) - continue //the fuck - var/error_code = X.check(src) - - var/selected = X == selected_firemission - if(error_code != FIRE_MISSION_ALL_GOOD && selected) - selected = FALSE - selected_firemission = null - var/can_edit = error_code != FIRE_MISSION_CODE_ERROR && !selected - - if(selected) - found_selected = TRUE - var/can_interact = firemission_envelope.stat == FIRE_MISSION_STATE_IDLE && error_code == FIRE_MISSION_ALL_GOOD - firemission_data += list(list("name"= sanitize(copytext(X.name,1,MAX_MESSAGE_LEN)), "mission_tag" = firemission_id, "can_edit" = can_edit, "can_interact" = can_interact, "selected" = selected)) - firemission_id++ - if(!istype(editing_firemission)) editing_firemission = null - //the fuck if(editing_firemission) var/error_code = editing_firemission.check(src) var/can_edit = error_code != FIRE_MISSION_CODE_ERROR - if(error_code != FIRE_MISSION_ALL_GOOD) - current_mission_error = editing_firemission.error_message(error_code) - else - current_mission_error = null if(!can_edit) editing_firemission = null //abort - else - screen_mode = 2 - for(var/datum/cas_fire_mission_record/firerec in editing_firemission.records) - var/gimbal = firerec.get_offsets() - var/ammo = firerec.get_ammo() - var/offsets = new /list(firerec.offsets.len) - for(var/idx = 1; idx < firerec.offsets.len; idx++) - offsets[idx] = firerec.offsets[idx] == null ? "-" : firerec.offsets[idx] - firemission_edit_data += list(list("name" = sanitize(copytext(firerec.weapon.name, 1, 50)), "ammo" = ammo, "gimbal" = gimbal, "offsets" = firerec.offsets)) - - if(!found_selected) - selected_firemission = null - - if(editing_firemission) - fm_length = editing_firemission.mission_length if((screen_mode != 0 && in_firemission_mode) || !selected_firemission) in_firemission_mode = FALSE @@ -196,497 +128,726 @@ selected_firemission = null if(selected_firemission && in_firemission_mode) screen_mode = 3 - fm_offset = firemission_envelope.recorded_offset - fm_direction = dir2text(firemission_envelope.recorded_dir) if(firemission_envelope.recorded_loc && (!firemission_envelope.recorded_loc.signal_loc || !firemission_envelope.recorded_loc.signal_loc:loc)) firemission_envelope.recorded_loc = null - firemission_signal = firemission_envelope.recorded_loc?firemission_envelope.recorded_loc.get_name() : "NOT SELECTED" - if(!fm_direction) - fm_direction = "NOT SELECTED" - - if(screen_mode != 3 || !selected_firemission || shuttle_state != "in_transit") - update_location(null) - // /if(firemission_envelope) - - data = list( - "shuttle_state" = shuttle_state, - "fire_mission_enabled" = dropship.in_flyby, - "equipment_data" = equipment_data, - "targets_data" = targets_data, - "selected_eqp" = selected_eqp_name, - "selected_eqp_ammo_name" = selected_eqp_ammo_name, - "selected_eqp_ammo_amt" = selected_eqp_ammo_amt, - "selected_eqp_max_ammo_amt" = selected_eqp_max_ammo_amt, - "screen_mode" = screen_mode, - "firemission_data" = firemission_data, - "editing_firemission" = editing_firemission, - "editing_firemission_length" = fm_length, - "firemission_edit_data" = firemission_edit_data, - "current_mission_error" = current_mission_error, - "firemission_edit_timeslices" = firemission_edit_timeslices, - "has_firemission" = !!firemission_envelope, - "can_firemission" = !!selected_firemission && shuttle_state == "in_transit", - "can_launch_firemission" = !!selected_firemission && shuttle_state == "in_transit" && firemission_stat != FIRE_MISSION_STATE_IDLE, - //firemission related stuff - "firemission_name" = (selected_firemission ? selected_firemission.name : ""), - "firemission_selected_laser" = firemission_signal, - "firemission_offset" = fm_offset, - "firemission_direction" = fm_direction, - "firemission_message" = fm_step_text, - "firemission_step" = firemission_stat, - ) + if(screen_mode != 3 || !selected_firemission || dropship.mode != SHUTTLE_CALL) + update_location(user, null) + + tgui_interact(user) + +/obj/structure/machinery/computer/dropship_weapons/tgui_interact(mob/user, datum/tgui/ui) + if(!registered) + var/obj/docking_port/mobile/marine_dropship/dropship = SSshuttle.getShuttle(shuttle_tag) + RegisterSignal(dropship, COMSIG_DROPSHIP_ADD_EQUIPMENT, PROC_REF(equipment_update)) + RegisterSignal(dropship, COMSIG_DROPSHIP_REMOVE_EQUIPMENT, PROC_REF(equipment_update)) + registered = TRUE - ui = SSnano.nanomanager.try_update_ui(user, src, ui_key, ui, data, force_open) + if(!tacmap.map_holder) + var/level = SSmapping.levels_by_trait(tacmap.targeted_ztrait) + tacmap.map_holder = SSminimaps.fetch_tacmap_datum(level[1], tacmap.allowed_flags) - if (!ui) - ui = new(user, src, ui_key, "dropship_weapons_console.tmpl", "Weapons Control", 800, 600) - ui.set_initial_data(data) + ui = SStgui.try_update_ui(user, src, ui) + if(!ui) + user.client.register_map_obj(tacmap.map_holder.map) + SEND_SIGNAL(src, COMSIG_CAMERA_REGISTER_UI, user) + ui = new(user, src, "DropshipWeaponsConsole", "Weapons Console") ui.open() - ui.set_auto_update(1) -/obj/structure/machinery/computer/dropship_weapons/Topic(href, href_list) - if(..()) - return +/obj/structure/machinery/computer/dropship_weapons/ui_close(mob/user) + . = ..() + SEND_SIGNAL(src, COMSIG_CAMERA_UNREGISTER_UI, user) + simulation.stop_watching(user) + +/obj/structure/machinery/computer/dropship_weapons/ui_status(mob/user, datum/ui_state/state) + . = ..() + if(inoperable()) + return UI_CLOSE + if(!faction) + return UI_CLOSE + + var/datum/cas_iff_group/cas_group = GLOB.cas_groups[faction] + if(!cas_group) + return UI_CLOSE + +/obj/structure/machinery/computer/dropship_weapons/ui_state(mob/user) + return GLOB.not_incapacitated_and_adjacent_strict_state - add_fingerprint(usr) +/obj/structure/machinery/computer/dropship_weapons/ui_static_data(mob/user) + . = list() + .["tactical_map_ref"] = tacmap.map_holder.map_ref + .["camera_map_ref"] = camera_map_name +/obj/structure/machinery/computer/dropship_weapons/ui_data(mob/user) + . = list() var/obj/docking_port/mobile/marine_dropship/dropship = SSshuttle.getShuttle(shuttle_tag) if (!istype(dropship)) return - if(href_list["equip_interact"]) - var/base_tag = text2num(href_list["equip_interact"]) - var/obj/structure/dropship_equipment/E = shuttle_equipments[base_tag] - E.linked_console = src - E.equipment_interact(usr) - - if(href_list["open_fire"]) - var/targ_id = text2num(href_list["open_fire"]) - var/mob/M = usr - if(ishuman(M)) - var/mob/living/carbon/human/H = M - if(!H.allow_gun_usage) - to_chat(H, SPAN_WARNING("Your programming prevents you from operating dropship weaponry!")) - return - var/obj/structure/dropship_equipment/weapon/DEW = selected_equipment - if(!selected_equipment || !selected_equipment.is_weapon) - to_chat(usr, SPAN_WARNING("No weapon selected.")) - return - if(!skillcheck(M, SKILL_PILOT, DEW.skill_required)) //only pilots can fire dropship weapons. - to_chat(usr, SPAN_WARNING("You don't have the training to fire this weapon!")) - return - - if(!faction) - return //no faction, no weapons - - var/datum/cas_iff_group/cas_group = GLOB.cas_groups[faction] - - if(!cas_group) - return //broken group. No fighting - - for(var/X in cas_group.cas_signals) - var/datum/cas_signal/LT = X - if(LT.target_id == targ_id && LT.valid_signal()) - if(dropship.mode != SHUTTLE_CALL) - to_chat(usr, SPAN_WARNING("Dropship can only fire while in flight.")) - return - if(dropship.door_override) - return - if(!selected_equipment || !selected_equipment.is_weapon) - to_chat(usr, SPAN_WARNING("No weapon selected.")) - return - DEW = selected_equipment // for if the weapon somehow changes - if(!skillcheck(M, SKILL_PILOT, DEW.skill_required)) //only pilots can fire dropship weapons. - to_chat(usr, SPAN_WARNING("You don't have the training to fire this weapon!")) - return - if(!dropship.in_flyby && DEW.fire_mission_only) - to_chat(usr, SPAN_WARNING("[DEW] requires a fire mission flight type to be fired.")) - return - - if(!DEW.ammo_equipped || DEW.ammo_equipped.ammo_count <= 0) - to_chat(usr, SPAN_WARNING("[DEW] has no ammo.")) - return - if(DEW.last_fired > world.time - DEW.firing_delay) - to_chat(usr, SPAN_WARNING("[DEW] just fired, wait for it to cool down.")) - return - if(!LT.signal_loc) - return - var/turf/TU = get_turf(LT.signal_loc) - var/area/targ_area = get_area(LT.signal_loc) - var/is_outside = FALSE - if(is_ground_level(TU.z)) - switch(targ_area.ceiling) - if(CEILING_NONE) - is_outside = TRUE - if(CEILING_GLASS) - is_outside = TRUE - if(!is_outside && !cavebreaker) //cavebreaker doesn't care - to_chat(usr, SPAN_WARNING("INVALID TARGET: target must be visible from high altitude.")) - return - if (protected_by_pylon(TURF_PROTECTION_CAS, TU)) - to_chat(usr, SPAN_WARNING("INVALID TARGET: biological-pattern interference with signal.")) - return - if(!DEW.ammo_equipped.can_fire_at(TU, usr)) - return - - DEW.open_fire(LT.signal_loc) - break - - if(href_list["deselect"]) - var/mob/M = usr - if(!skillcheck(M, SKILL_PILOT, SKILL_PILOT_TRAINED)) //only pilots can fire dropship weapons. - to_chat(usr, SPAN_WARNING("A screen with graphics and walls of physics and engineering values open, you immediately force it closed.")) - return - selected_equipment = null - - if(href_list["create_mission"]) - var/mob/M = usr - if(!skillcheck(M, SKILL_PILOT, SKILL_PILOT_TRAINED)) //only pilots can fire dropship weapons. - to_chat(usr, SPAN_WARNING("A screen with graphics and walls of physics and engineering values open, you immediately force it closed.")) - return - if(firemission_envelope.max_mission_len <= firemission_envelope.missions.len) - to_chat(usr, SPAN_WARNING("Cannot store more than [firemission_envelope.max_mission_len] Fire Missions.")) - return - var/fm_name = stripped_input(usr, "", "Enter Fire Mission Name", "Fire Mission [firemission_envelope.missions.len+1]", 50) - if(!fm_name || length(fm_name) < 5) - to_chat(usr, SPAN_WARNING("Name too short (at least 5 symbols).")) - return - var/fm_length = stripped_input(usr, "Enter length of the Fire Mission. Has to be less than [firemission_envelope.fire_length]. Use something that divides [firemission_envelope.fire_length] for optimal performance.", "Fire Mission Length (in tiles)", "[firemission_envelope.fire_length]", 5) - var/fm_length_n = text2num(fm_length) - if(!fm_length_n) - to_chat(usr, SPAN_WARNING("Incorrect input format.")) - return - if(fm_length_n > firemission_envelope.fire_length) - to_chat(usr, SPAN_WARNING("Fire Mission is longer than allowed by this vehicle.")) - return - if(firemission_envelope.stat != FIRE_MISSION_STATE_IDLE) - to_chat(usr, SPAN_WARNING("Vehicle has to be idle to allow Fire Mission editing and creation.")) - return - //everything seems to be fine now - firemission_envelope.generate_mission(fm_name, fm_length_n) - - if(href_list["mission_tag_delete"]) - var/ref = text2num(href_list["mission_tag_delete"]) - var/mob/M = usr - if(!skillcheck(M, SKILL_PILOT, SKILL_PILOT_TRAINED)) //only pilots can fire dropship weapons. - to_chat(usr, SPAN_WARNING("A screen with graphics and walls of physics and engineering values open, you immediately force it closed.")) - return - if(ref>firemission_envelope.missions.len) - to_chat(usr, SPAN_WARNING("Fire Mission ID corrupted or already deleted.")) - return - if(selected_firemission == firemission_envelope.missions[ref]) - to_chat(usr, SPAN_WARNING("Can't delete selected Fire Mission.")) - return - var/result = firemission_envelope.delete_firemission(ref) - if(result != 1) - to_chat(usr, SPAN_WARNING("Unable to delete Fire Mission while in combat.")) - return - - if(href_list["mission_tag"]) - var/ref = text2num(href_list["mission_tag"]) - var/mob/M = usr - if(!skillcheck(M, SKILL_PILOT, SKILL_PILOT_TRAINED)) //only pilots can fire dropship weapons. - to_chat(usr, SPAN_WARNING("A screen with graphics and walls of physics and engineering values open, you immediately force it closed.")) - return - if(ref>firemission_envelope.missions.len) - to_chat(usr, SPAN_WARNING("Fire Mission ID corrupted or deleted.")) - return - if(firemission_envelope.stat > FIRE_MISSION_STATE_IN_TRANSIT && firemission_envelope.stat < FIRE_MISSION_STATE_COOLDOWN) - to_chat(usr, SPAN_WARNING("Fire Mission already underway.")) - return - if(selected_firemission == firemission_envelope.missions[ref]) - selected_firemission = null - else - selected_firemission = firemission_envelope.missions[ref] - - if(href_list["mission_tag_edit"]) - var/ref = text2num(href_list["mission_tag_edit"]) - var/mob/M = usr - if(!skillcheck(M, SKILL_PILOT, SKILL_PILOT_TRAINED)) //only pilots can fire dropship weapons. - to_chat(usr, SPAN_WARNING("A screen with graphics and walls of physics and engineering values open, you immediately force it closed.")) - return - if(ref>firemission_envelope.missions.len) - to_chat(usr, SPAN_WARNING("Fire Mission ID corrupted or deleted.")) - return - if(selected_firemission == firemission_envelope.missions[ref]) - to_chat(usr, SPAN_WARNING("Can't edit selected Fire Mission.")) - return - if(firemission_envelope.stat > FIRE_MISSION_STATE_IN_TRANSIT && firemission_envelope.stat < FIRE_MISSION_STATE_COOLDOWN) - to_chat(usr, SPAN_WARNING("Fire Mission already underway.")) - return - editing_firemission = firemission_envelope.missions[ref] - - if(href_list["leave_firemission_editing"]) - editing_firemission = null - - if(href_list["switch_to_firemission"]) - var/mob/M = usr - if(!skillcheck(M, SKILL_PILOT, SKILL_PILOT_TRAINED)) //only pilots can fire dropship weapons. - to_chat(usr, SPAN_WARNING("A screen with graphics and walls of physics and engineering values open, you immediately force it closed.")) - return - in_firemission_mode = TRUE - - if(href_list["switch_to_simulation"]) - if(!selected_firemission) - to_chat(usr, SPAN_WARNING("Select a firemission before attempting to run the simulation")) - return - - configuration = selected_firemission - - // simulation mode - tgui_interact(usr) - - if(href_list["leave_firemission_execution"]) - var/mob/M = usr - if(!skillcheck(M, SKILL_PILOT, SKILL_PILOT_TRAINED)) //only pilots can fire dropship weapons. - to_chat(usr, SPAN_WARNING("A screen with graphics and walls of physics and engineering values open, you immediately force it closed.")) - return - firemission_envelope.remove_user_from_tracking(usr) - in_firemission_mode = FALSE - - if(href_list["change_direction"]) - var/mob/M = usr - if(!skillcheck(M, SKILL_PILOT, SKILL_PILOT_TRAINED)) //only pilots can fire dropship weapons. - to_chat(usr, SPAN_WARNING("A screen with graphics and walls of physics and engineering values open, you immediately force it closed.")) - return - var/list/directions = list(dir2text(NORTH), dir2text(SOUTH), dir2text(EAST), dir2text(WEST)) - var/chosen = tgui_input_list(usr, "Select new Direction for the strafing run", "Select Direction", directions) - - var/chosen_dir = text2dir(chosen) - if(!chosen_dir) - to_chat(usr, SPAN_WARNING("Error with direction detected.")) - return - - update_direction(chosen_dir) - - if(href_list["change_offset"]) - var/mob/M = usr - if(!skillcheck(M, SKILL_PILOT, SKILL_PILOT_TRAINED)) //only pilots can fire dropship weapons. - to_chat(usr, SPAN_WARNING("A screen with graphics and walls of physics and engineering values open, you immediately force it closed.")) - return - - var/chosen = stripped_input(usr, "Select Fire Mission length, from 0 to [firemission_envelope.max_offset]", "Select Offset", "[firemission_envelope.recorded_offset]", 2) - var/chosen_offset = text2num(chosen) - - if(chosen_offset == null) - to_chat(usr, SPAN_WARNING("Error with offset detected.")) - return - - update_offset(chosen_offset) - - if(href_list["select_laser_firemission"]) - var/mob/M = usr - var/targ_id = text2num(href_list["select_laser_firemission"]) - if(!targ_id) - to_chat(usr, SPAN_WARNING("Bad Target.")) - return - if(!skillcheck(M, SKILL_PILOT, SKILL_PILOT_TRAINED)) //only pilots can fire dropship weapons. - to_chat(usr, SPAN_WARNING("A screen with graphics and walls of physics and engineering values open, you immediately force it closed.")) - return - if(firemission_envelope.stat > FIRE_MISSION_STATE_IN_TRANSIT && firemission_envelope.stat < FIRE_MISSION_STATE_COOLDOWN) - to_chat(usr, SPAN_WARNING("Fire Mission already underway.")) - return - if(dropship.mode != SHUTTLE_CALL) - to_chat(usr, SPAN_WARNING("Shuttle has to be in orbit.")) - return - var/datum/cas_iff_group/cas_group = GLOB.cas_groups[faction] - var/datum/cas_signal/cas_sig - for(var/X in cas_group.cas_signals) - var/datum/cas_signal/LT = X - if(LT.target_id == targ_id && LT.valid_signal()) - cas_sig = LT - if(!cas_sig) - to_chat(usr, SPAN_WARNING("Target lost or obstructed.")) - return - - update_location(cas_sig) - - if(href_list["execute_firemission"]) - var/mob/M = usr - if(ishuman(M)) - var/mob/living/carbon/human/H = M - if(!H.allow_gun_usage) - to_chat(H, SPAN_WARNING("Your programming prevents you from operating dropship weaponry!")) + var/datum/cas_signal/sig = get_cas_signal(camera_target_id) + if(camera_target_id && !sig) + set_camera_target(null) + + .["screen_mode"] = get_screen_mode() + + // dropship info + .["shuttle_state"] = dropship.mode + .["fire_mission_enabled"] = dropship.in_flyby + + // equipment info + .["equipment_data"] = get_sanitised_equipment(user, dropship) + + // medevac targets + .["medevac_targets"] = list() + for(var/obj/structure/dropship_equipment/equipment as anything in dropship.equipments) + if (istype(equipment, /obj/structure/dropship_equipment/medevac_system)) + var/obj/structure/dropship_equipment/medevac_system/medevac = equipment + .["medevac_targets"] += medevac.ui_data(user) + // fultons + + .["fulton_targets"] = list() + for(var/obj/structure/dropship_equipment/equipment as anything in dropship.equipments) + if (istype(equipment, /obj/structure/dropship_equipment/fulton_system)) + var/obj/structure/dropship_equipment/fulton_system/fult = equipment + .["fulton_targets"] += fult.ui_data(user) + + .["targets_data"] = get_targets() + .["camera_target"] = camera_target_id + + if(selected_equipment) + .["selected_eqp"] = selected_equipment.ship_base.attach_id + if(selected_equipment.ammo_equipped) + var/obj/structure/ship_ammo/ammo_equipped = selected_equipment.ammo_equipped + .["selected_eqp_ammo_name"] = sanitize(copytext(ammo_equipped.name, 1, MAX_MESSAGE_LEN)) + .["selected_eqp_ammo_amt"] = ammo_equipped.ammo_count + .["selected_eqp_max_ammo_amt"] = ammo_equipped.max_ammo_count + + // firemission info + .["has_firemission"] = !!firemission_envelope + .["can_firemission"] = !!selected_firemission && dropship.mode == SHUTTLE_CALL + if(editing_firemission) + .["editing_firemission"] = editing_firemission + .["editing_firemission_length"] = editing_firemission ? editing_firemission.mission_length : 0 + var/error_code = editing_firemission.check(src) + .["current_mission_error"] = error_code != FIRE_MISSION_ALL_GOOD ? editing_firemission.error_message(error_code) : null + .["firemission_edit_data"] = get_edit_firemission_data() + + if(firemission_envelope) + .["can_launch_firemission"] = !!selected_firemission && dropship.mode == SHUTTLE_CALL && firemission_envelope.stat != FIRE_MISSION_STATE_IDLE + .["firemission_data"] = get_firemission_data(user) + .["firemission_state"] = firemission_envelope.stat + .["firemission_offset"] = firemission_envelope.recorded_offset + .["firemission_message"] = firemission_envelope.firemission_status_message() + .["firemission_name"] = selected_firemission ? selected_firemission.name : "" + .["firemission_step"] = firemission_envelope.stat + .["firemission_selected_laser"] = firemission_envelope.recorded_loc ? firemission_envelope.recorded_loc.get_name() : "NOT SELECTED" + + .["configuration"] = configuration + .["dummy_mode"] = simulation.dummy_mode + .["worldtime"] = world.time + .["nextdetonationtime"] = simulation.detonation_cooldown + .["detonation_cooldown"] = simulation.detonation_cooldown_time + +/obj/structure/machinery/computer/dropship_weapons/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) + . = ..() + if(.) + return + var/obj/docking_port/mobile/marine_dropship/shuttle = SSshuttle.getShuttle(shuttle_tag) + if(shuttle.is_hijacked) + return + + var/mob/user = ui.user + switch(action) + if("button_push") + playsound(src, get_sfx("terminal_button"), 25, FALSE) + return FALSE + + if("select_equipment") + var/base_tag = params["equipment_id"] + ui_equip_interact(user, base_tag) + return TRUE + + if("start_watching") + simulation.start_watching(user) + . = TRUE + + if("stop_watching") + simulation.stop_watching(user) + . = TRUE + + if("execute_simulated_firemission") + if(!configuration) + to_chat(user, SPAN_WARNING("No configured firemission")) return - if(!skillcheck(M, SKILL_PILOT, SKILL_PILOT_TRAINED)) //only pilots can fire dropship weapons. - to_chat(usr, SPAN_WARNING("A screen with graphics and walls of physics and engineering values open, you immediately force it closed.")) - return - if(firemission_envelope.stat != FIRE_MISSION_STATE_IDLE) - to_chat(usr, SPAN_WARNING("Fire Mission already underway.")) - return - if(dropship.mode != SHUTTLE_CALL) - to_chat(usr, SPAN_WARNING("Shuttle has to be in orbit.")) - return - if(!firemission_envelope.recorded_loc) - to_chat(usr, SPAN_WARNING("Target is not selected or lost.")) - return - - initiate_firemission() - - if(href_list["fm_weapon_id"]) - var/weap_ref = text2num(href_list["fm_weapon_id"])+1 - var/offset_ref = text2num(href_list["fm_offset_id"])+1 - var/mob/M = usr - if(!skillcheck(M, SKILL_PILOT, SKILL_PILOT_TRAINED)) //only pilots can fire dropship weapons. - to_chat(usr, SPAN_WARNING("A screen with graphics and walls of physics and engineering values open, you immediately force it closed.")) - return - if(!editing_firemission) - to_chat(usr, SPAN_WARNING("You are no longer editing Fire Mission.")) - return - if(!editing_firemission.records || editing_firemission.records.len FIRE_MISSION_STATE_IN_TRANSIT && firemission_envelope.stat < FIRE_MISSION_STATE_COOLDOWN) - to_chat(usr, SPAN_WARNING("Fire Mission already underway.")) - return - var/list/gimb = record.get_offsets() - var/min = gimb["min"] - var/max = gimb["max"] - var/offset_value = stripped_input(usr, "Enter offset for the [record.weapon.name]. It has to be between [min] and [max]. Enter '-' to remove fire order on this time stamp.", "Firing offset", "[record.offsets[offset_ref]]", 2) - if(offset_value == null) - return - if(offset_value == "-") - offset_value = "-" - else - offset_value = text2num(offset_value) - if(offset_value == null) - to_chat(usr, SPAN_WARNING("Incorrect offset value.")) + simulate_firemission(user) + . = TRUE + + if("switch_firemission") + configuration = tgui_input_list(user, "Select firemission to simulate", "Select firemission", firemission_envelope.missions, 30 SECONDS) + if(!selected_firemission) + to_chat(user, SPAN_WARNING("No configured firemission")) return - var/result = firemission_envelope.update_mission(firemission_envelope.missions.Find(editing_firemission), weap_ref, offset_ref, offset_value, TRUE) - if(result == 0) - to_chat(usr, SPAN_WARNING("Update caused an error: [firemission_envelope.mission_error]")) - if(result == -1) - to_chat(usr, SPAN_WARNING("System Error. Delete this Fire Mission.")) - - if(href_list["firemission_camera"]) - if(dropship.mode != SHUTTLE_CALL) - to_chat(usr, SPAN_WARNING("Shuttle has to be in orbit.")) - return - - if(!firemission_envelope.guidance) - to_chat(usr, SPAN_WARNING("Guidance is not selected or lost.")) - return - - firemission_envelope.add_user_to_tracking(usr) - - to_chat(usr, "You peek through the guidance camera.") - - if(href_list["cas_camera"]) - if(!ishuman(usr)) - to_chat(usr, SPAN_WARNING("You have no idea how to do that!")) - return - if(dropship.mode != SHUTTLE_CALL) - to_chat(usr, SPAN_WARNING("Shuttle has to be in orbit.")) - return - - if(!faction) - to_chat(usr, SPAN_DANGER("Bug encountered, this console doesn't have a faction set, report this to a coder!")) - return - - var/datum/cas_iff_group/cas_group = GLOB.cas_groups[faction] - if(!cas_group) - to_chat(usr, SPAN_DANGER("Bug encountered, no CAS group exists for this console, report this to a coder!")) - return - - var/targ_id = text2num(href_list["cas_camera"]) - - var/datum/cas_signal/new_signal - for(var/datum/cas_signal/LT as anything in cas_group.cas_signals) - if(LT.target_id == targ_id && LT.valid_signal()) - new_signal = LT - break - - if(!new_signal) - to_chat(usr, SPAN_WARNING("Target lost or obstructed.")) - return - - if(usr in selected_cas_signal?.linked_cam?.viewing_users) // Reset previous cam - remove_from_view(usr) - - selected_cas_signal = new_signal - if(selected_cas_signal && selected_cas_signal.linked_cam) - selected_cas_signal.linked_cam.view_directly(usr) - else - to_chat(usr, SPAN_WARNING("Error!")) - return - give_action(usr, /datum/action/human_action/cancel_view) - RegisterSignal(usr, COMSIG_MOB_RESET_VIEW, PROC_REF(remove_from_view)) - RegisterSignal(usr, COMSIG_MOB_RESISTED, PROC_REF(remove_from_view)) - firemission_envelope.apply_upgrade(usr) - to_chat(usr, SPAN_NOTICE("You peek through the guidance camera.")) - - ui_interact(usr) - -/obj/structure/machinery/computer/dropship_weapons/proc/remove_from_view(mob/living/carbon/human/user) - UnregisterSignal(user, COMSIG_MOB_RESET_VIEW) - UnregisterSignal(user, COMSIG_MOB_RESISTED) - if(selected_cas_signal && selected_cas_signal.linked_cam) - selected_cas_signal.linked_cam.remove_from_view(user) - firemission_envelope.remove_upgrades(user) - -/obj/structure/machinery/computer/dropship_weapons/proc/initiate_firemission() - set waitfor = 0 - var/obj/docking_port/mobile/marine_dropship/dropship = SSshuttle.getShuttle(shuttle_tag) - if (!istype(dropship)) + if(!configuration) + configuration = selected_firemission + . = TRUE + + if("switchmode") + simulation.dummy_mode = tgui_input_list(user, "Select target type to simulate", "Target type", simulation.target_types, 30 SECONDS) + if(!simulation.dummy_mode) + simulation.dummy_mode = CLF_MODE + . = TRUE + + if("set-camera") + var/target_camera = params["equipment_id"] + set_camera_target(target_camera) + return TRUE + + if("set-camera-sentry") + var/equipment_tag = params["equipment_id"] + for(var/obj/structure/dropship_equipment/equipment as anything in shuttle.equipments) + var/mount_point = equipment.ship_base.attach_id + if(mount_point != equipment_tag) + continue + if(istype(equipment, /obj/structure/dropship_equipment/sentry_holder)) + var/obj/structure/dropship_equipment/sentry_holder/sentry = equipment + var/obj/structure/machinery/defenses/sentry/defense = sentry.deployed_turret + if(defense.has_camera) + defense.set_range() + var/datum/shape/rectangle/current_bb = defense.range_bounds + camera_area_equipment = sentry + SEND_SIGNAL(src, COMSIG_CAMERA_SET_AREA, current_bb.center_x, current_bb.center_y, defense.loc.z, current_bb.width, current_bb.height) + return TRUE + + if("clear-camera") + set_camera_target(null) + return TRUE + + if("medevac-target") + var/equipment_tag = params["equipment_id"] + for(var/obj/structure/dropship_equipment/equipment as anything in shuttle.equipments) + var/mount_point = equipment.ship_base.attach_id + if(mount_point != equipment_tag) + continue + if (istype(equipment, /obj/structure/dropship_equipment/medevac_system)) + var/obj/structure/dropship_equipment/medevac_system/medevac = equipment + var/target_ref = params["ref"] + medevac.automate_interact(user, target_ref) + if(medevac.linked_stretcher) + SEND_SIGNAL(src, COMSIG_CAMERA_SET_TARGET, medevac.linked_stretcher, 5, 5) + return TRUE + + if("fulton-target") + var/equipment_tag = params["equipment_id"] + for(var/obj/structure/dropship_equipment/equipment as anything in shuttle.equipments) + var/mount_point = equipment.ship_base.attach_id + if(mount_point != equipment_tag) + continue + if (istype(equipment, /obj/structure/dropship_equipment/fulton_system)) + var/obj/structure/dropship_equipment/fulton_system/fulton = equipment + var/target_ref = params["ref"] + fulton.automate_interact(user, target_ref) + return TRUE + + if("fire-weapon") + var/weapon_tag = params["eqp_tag"] + var/obj/structure/dropship_equipment/weapon/DEW = get_weapon(weapon_tag) + if(!DEW) + return FALSE + + var/datum/cas_signal/sig = get_cas_signal(camera_target_id) + if(!sig) + return FALSE + + selected_equipment = DEW + if(ui_open_fire(user, shuttle, camera_target_id)) + if(firemission_envelope) + firemission_envelope.untrack_object() + return TRUE + + if("deploy-equipment") + var/equipment_tag = params["equipment_id"] + for(var/obj/structure/dropship_equipment/equipment as anything in shuttle.equipments) + var/mount_point = equipment.ship_base.attach_id + if(mount_point != equipment_tag) + continue + if(camera_area_equipment == equipment) + set_camera_target(null) + equipment.equipment_interact(user) + return TRUE + + if("firemission-create") + var/name = params["firemission_name"] + var/length = params["firemission_length"] + var/length_n = text2num(length) + if(!length_n) + to_chat(user, SPAN_WARNING("Incorrect input format.")) + return FALSE + ui_create_firemission(user, name, length_n) + return TRUE + + if("firemission-delete") + var/name = params["firemission_name"] + ui_delete_firemission(user, name) + return TRUE + + if("firemission-dual-offset-camera") + var/target_id = params["target_id"] + + var/x_offset_value = params["x_offset_value"] + var/y_offset_value = params["y_offset_value"] + + camera_target_id = target_id + var/datum/cas_signal/cas_sig = get_cas_signal(camera_target_id, valid_only = TRUE) + // we don't want rapid offset changes to trigger admin warnings + // and block the user from accessing TGUI + // we change the minute_count + user.client.reduce_minute_count() + if(!cas_sig) + return TRUE + + // find position of cas_sig with offset dir and value applied + var/dx = text2num(x_offset_value) + var/dy = text2num(y_offset_value) + + var/obj/current = cas_sig.signal_loc + var/obj/new_target = locate( + current.x + dx, + current.y + dy, + current.z) + + camera_area_equipment = null + firemission_envelope.change_current_loc(new_target, cas_sig) + return TRUE + + if("nvg-enable") + SEND_SIGNAL(src, COMSIG_CAMERA_SET_NVG, 5, "#7aff7a") + return TRUE + + if("nvg-disable") + SEND_SIGNAL(src, COMSIG_CAMERA_CLEAR_NVG) + return TRUE + + if("firemission-edit") + var/fm_tag = text2num(params["tag"]) + var/weapon_id = text2num(params["weapon_id"]) + var/offset_id = text2num(params["offset_id"]) + var/offset_value = text2num(params["offset_value"]) + return ui_firemission_change_offset(user, fm_tag, weapon_id, offset_id + 1, offset_value) + + if("firemission-execute") + var/fm_tag = text2num(params["tag"]) + var/direction = params["direction"] + var/target_id = params["target_id"] + var/offset_x_value = params["offset_x_value"] + var/offset_y_value = params["offset_y_value"] + + if(!ui_select_firemission(user, fm_tag)) + playsound(src, 'sound/machines/terminal_error.ogg', 5, 1) + return FALSE + if(!update_direction(user, text2num(direction))) + playsound(src, 'sound/machines/terminal_error.ogg', 5, 1) + return FALSE + if(!ui_select_laser_firemission(user, shuttle, target_id)) + playsound(src, 'sound/machines/terminal_error.ogg', 5, 1) + return FALSE + + initiate_firemission(user, fm_tag, direction, text2num(offset_x_value), text2num(offset_y_value)) + return TRUE + if("paradrop-lock") + var/obj/docking_port/mobile/marine_dropship/linked_shuttle = SSshuttle.getShuttle(shuttle_tag) + if(!linked_shuttle) + return FALSE + if(linked_shuttle.mode != SHUTTLE_CALL) + return FALSE + if(linked_shuttle.paradrop_signal) + clear_locked_turf_and_lock_aft() + return TRUE + var/datum/cas_signal/sig = get_cas_signal(camera_target_id) + if(!sig) + to_chat(user, SPAN_WARNING("No signal chosen.")) + return FALSE + var/turf/location = get_turf(sig.signal_loc) + var/area/location_area = get_area(location) + if(CEILING_IS_PROTECTED(location_area.ceiling, CEILING_PROTECTION_TIER_1)) + to_chat(user, SPAN_WARNING("Target is obscured.")) + return FALSE + var/equipment_tag = params["equipment_id"] + for(var/obj/structure/dropship_equipment/equipment as anything in shuttle.equipments) + var/mount_point = equipment.ship_base.attach_id + if(mount_point != equipment_tag) + continue + if(istype(equipment, /obj/structure/dropship_equipment/paradrop_system)) + var/obj/structure/dropship_equipment/paradrop_system/paradrop_system = equipment + if(paradrop_system.system_cooldown > world.time) + to_chat(user, SPAN_WARNING("You toggled the system too recently.")) + return + paradrop_system.system_cooldown = world.time + 5 SECONDS + paradrop_system.visible_message(SPAN_NOTICE("[equipment] hums as it locks to a signal.")) + break + linked_shuttle.paradrop_signal = sig + addtimer(CALLBACK(src, PROC_REF(open_aft_for_paradrop)), 2 SECONDS) + RegisterSignal(linked_shuttle.paradrop_signal, COMSIG_PARENT_QDELETING, PROC_REF(clear_locked_turf_and_lock_aft)) + RegisterSignal(linked_shuttle, COMSIG_SHUTTLE_SETMODE, PROC_REF(clear_locked_turf_and_lock_aft)) + return TRUE + +/obj/structure/machinery/computer/dropship_weapons/proc/open_aft_for_paradrop() + var/obj/docking_port/mobile/marine_dropship/shuttle = SSshuttle.getShuttle(shuttle_tag) + if(!shuttle || !shuttle.paradrop_signal || shuttle.mode != SHUTTLE_CALL) return - if (dropship.timer && dropship.timeLeft(1) < firemission_envelope.get_total_duration()) - to_chat(usr, "Not enough time to complete the Fire Mission") + shuttle.door_control.control_doors("force-unlock", "aft", TRUE) + +/obj/structure/machinery/computer/dropship_weapons/proc/clear_locked_turf_and_lock_aft() + SIGNAL_HANDLER + var/obj/docking_port/mobile/marine_dropship/shuttle = SSshuttle.getShuttle(shuttle_tag) + if(!shuttle) return - if (!dropship.in_flyby || dropship.mode != SHUTTLE_CALL) - to_chat(usr, "Has to be in Fly By mode") + shuttle.door_control.control_doors("force-lock", "aft", TRUE) + visible_message(SPAN_WARNING("[src] displays an alert as it loses the paradrop target.")) + for(var/obj/structure/dropship_equipment/paradrop_system/parad in shuttle.equipments) + parad.visible_message(SPAN_WARNING("[parad] displays an alert as it loses the paradrop target.")) + UnregisterSignal(shuttle.paradrop_signal, COMSIG_PARENT_QDELETING) + UnregisterSignal(shuttle, COMSIG_SHUTTLE_SETMODE) + shuttle.paradrop_signal = null + +/obj/structure/machinery/computer/dropship_weapons/proc/get_weapon(eqp_tag) + var/obj/docking_port/mobile/marine_dropship/dropship = SSshuttle.getShuttle(shuttle_tag) + var/obj/structure/dropship_equipment/equipment = dropship.equipments[eqp_tag] + if(istype(equipment, /obj/structure/dropship_equipment/weapon)) + //is weapon + return equipment + return + +/obj/structure/machinery/computer/dropship_weapons/proc/get_cas_signal(target_ref, valid_only = FALSE) + if(!target_ref) return - var/fmid = firemission_envelope.missions.Find(selected_firemission) - if(!fmid) - to_chat(usr, "No Firemission selected") + var/datum/cas_iff_group/cas_group = GLOB.cas_groups[faction] + for(var/datum/cas_signal/sig in cas_group.cas_signals) + if(sig.target_id == target_ref) + if(valid_only && !sig.valid_signal()) + continue + return sig + +/obj/structure/machinery/computer/dropship_weapons/proc/set_camera_target(target_ref) + camera_area_equipment = null + if(firemission_envelope) + firemission_envelope.untrack_object() + + var/datum/cas_signal/target = get_cas_signal(target_ref) + camera_target_id = target_ref + if(!target) + SEND_SIGNAL(src, COMSIG_CAMERA_CLEAR) return - var/result = firemission_envelope.execute_firemission(firemission_envelope.recorded_loc, firemission_envelope.recorded_offset, firemission_envelope.recorded_dir, fmid) - if(result<1) - to_chat(usr, "Screen beeps with an error: "+ firemission_envelope.mission_error) - else - update_trace_loc() + var/cam_width = camera_width + var/cam_height = camera_height + if(upgraded == MATRIX_WIDE) + cam_width = cam_width * 1.5 + cam_height = cam_height * 1.5 -/obj/structure/machinery/computer/dropship_weapons/proc/update_offset(new_offset) - var/result = firemission_envelope.change_offset(new_offset) - if(result<1) - to_chat(usr, "Screen beeps with an error: "+ firemission_envelope.mission_error) + SEND_SIGNAL(src, COMSIG_CAMERA_SET_TARGET, target.linked_cam, cam_width, cam_height) + +/obj/structure/machinery/computer/dropship_weapons/proc/get_screen_mode() + . = 0 + if(selected_equipment) + . = selected_equipment.screen_mode + if(editing_firemission && editing_firemission.check(src) != FIRE_MISSION_CODE_ERROR) + . = 2 + if(selected_firemission && in_firemission_mode) + . = 3 +/obj/structure/machinery/computer/dropship_weapons/proc/get_firemission_data(mob/user) + . = list() + var/firemission_id = 1 + for(var/datum/cas_fire_mission/firemission in firemission_envelope.missions) + var/error_code = firemission.check(src) + + var/selected = firemission == selected_firemission + var/can_edit = error_code != FIRE_MISSION_CODE_ERROR && !selected + + var/can_interact = firemission_envelope.stat == FIRE_MISSION_STATE_IDLE && error_code == FIRE_MISSION_ALL_GOOD + var/list/fm_data = firemission.ui_data(user) + fm_data["mission_tag"] = firemission_id + fm_data["can_edit"] = can_edit + fm_data["can_interact"] = can_interact + fm_data["selected"] = selected + . += list(fm_data) + + firemission_id++ + +/obj/structure/machinery/computer/dropship_weapons/proc/get_edit_firemission_data() + . = list() + if(!editing_firemission) + return + for(var/datum/cas_fire_mission_record/firerec as anything in editing_firemission.records) + var/gimbal = firerec.get_offsets() + var/ammo = firerec.get_ammo() + var/offsets = new /list(length(firerec.offsets)) + for(var/idx = 1; idx < length(firerec.offsets); idx++) + offsets[idx] = firerec.offsets[idx] == null ? "-" : firerec.offsets[idx] + . += list( + "name" = sanitize(copytext(firerec.weapon.name, 1, 50)), + "ammo" = ammo, + "gimbal" = gimbal, + "offsets" = firerec.offsets + ) + +/obj/structure/machinery/computer/dropship_weapons/proc/get_sanitised_equipment(mob/user, obj/docking_port/mobile/marine_dropship/dropship) + . = list() + var/element_nbr = 1 + for(var/obj/structure/dropship_equipment/equipment in dropship.equipments) + var/list/data = list( + "name"= equipment.name, + "shorthand" = equipment.shorthand, + "eqp_tag" = element_nbr, + "is_weapon" = equipment.is_weapon, + "is_interactable" = equipment.is_interactable, + "mount_point" = equipment.ship_base.attach_id, + "is_missile" = istype(equipment, /obj/structure/dropship_equipment/weapon/rocket_pod), + "ammo_name" = equipment.ammo_equipped?.name, + "ammo" = equipment.ammo_equipped?.ammo_count, + "max_ammo" = equipment.ammo_equipped?.max_ammo_count, + "firemission_delay" = equipment.ammo_equipped?.fire_mission_delay, + "burst" = equipment.ammo_equipped?.ammo_used_per_firing, + "data" = equipment.ui_data(user) + ) + + . += list(data) + + element_nbr++ + equipment.linked_console = src + + +/obj/structure/machinery/computer/dropship_weapons/proc/get_targets() + . = list() + var/datum/cas_iff_group/cas_group = GLOB.cas_groups[faction] + for(var/datum/cas_signal/LT as anything in cas_group.cas_signals) + var/obj/object = LT.signal_loc + if(!istype(LT) || !LT.valid_signal() || !is_ground_level(object.z)) + continue + var/area/laser_area = get_area(LT.signal_loc) + . += list( + list( + "target_name" = "[LT.name] ([laser_area.name])", + "target_tag" = LT.target_id + ) + ) + +/obj/structure/machinery/computer/dropship_weapons/proc/ui_equip_interact(mob/user, base_tag) + var/obj/docking_port/mobile/marine_dropship/shuttle = SSshuttle.getShuttle(shuttle_tag) + var/obj/structure/dropship_equipment/E = shuttle.equipments[base_tag] + E.linked_console = src + E.equipment_interact(user) + +/obj/structure/machinery/computer/dropship_weapons/proc/ui_open_fire(mob/weapon_operator, obj/docking_port/mobile/marine_dropship/dropship, targ_id) + if(ishuman(weapon_operator)) + var/mob/living/carbon/human/human_operator = weapon_operator + if(!human_operator.allow_gun_usage) + to_chat(human_operator, SPAN_WARNING("Your programming prevents you from operating dropship weaponry!")) + return FALSE + var/obj/structure/dropship_equipment/weapon/DEW = selected_equipment + if(!selected_equipment || !selected_equipment.is_weapon) + to_chat(weapon_operator, SPAN_WARNING("No weapon selected.")) + return FALSE + if(!skillcheck(weapon_operator, SKILL_PILOT, DEW.skill_required)) //only pilots can fire dropship weapons. + to_chat(weapon_operator, SPAN_WARNING("You don't have the training to fire this weapon!")) + return FALSE + if(dropship.mode != SHUTTLE_CALL) + to_chat(weapon_operator, SPAN_WARNING("Dropship can only fire while in flight.")) + return FALSE + if(!faction) + return FALSE//no faction, no weapons + if(!selected_equipment || !selected_equipment.is_weapon) + to_chat(weapon_operator, SPAN_WARNING("No weapon selected.")) + return FALSE + if(dropship.door_override) + return FALSE + if(!skillcheck(weapon_operator, SKILL_PILOT, DEW.skill_required)) //only pilots can fire dropship weapons. + to_chat(weapon_operator, SPAN_WARNING("You don't have the training to fire this weapon!")) + return FALSE + if(!dropship.in_flyby && DEW.fire_mission_only) + to_chat(weapon_operator, SPAN_WARNING("[DEW] requires a fire mission flight type to be fired.")) + return FALSE + + if(!DEW.ammo_equipped || DEW.ammo_equipped.ammo_count <= 0) + to_chat(weapon_operator, SPAN_WARNING("[DEW] has no ammo.")) + return FALSE + if(DEW.last_fired > world.time - DEW.firing_delay) + to_chat(weapon_operator, SPAN_WARNING("[DEW] just fired, wait for it to cool down.")) + return FALSE + + var/datum/cas_iff_group/cas_group = GLOB.cas_groups[faction] + + if(!cas_group) + return FALSE//broken group. No fighting + + for(var/datum/cas_signal/LT in cas_group.cas_signals) + if(LT.target_id != targ_id || !LT.valid_signal()) + continue + if(!LT.signal_loc) + return FALSE + var/turf/TU = get_turf(LT.signal_loc) + var/area/targ_area = get_area(LT.signal_loc) + var/is_outside = FALSE + if(is_ground_level(TU.z)) + switch(targ_area.ceiling) + if(CEILING_NONE) + is_outside = TRUE + if(CEILING_GLASS) + is_outside = TRUE + if(!is_outside && !cavebreaker) //cavebreaker doesn't care + to_chat(weapon_operator, SPAN_WARNING("INVALID TARGET: target must be visible from high altitude.")) + return FALSE + if (protected_by_pylon(TURF_PROTECTION_CAS, TU)) + to_chat(weapon_operator, SPAN_WARNING("INVALID TARGET: biological-pattern interference with signal.")) + return FALSE + if(!DEW.ammo_equipped.can_fire_at(TU, weapon_operator)) + return FALSE + + DEW.open_fire(LT.signal_loc) + return TRUE + return FALSE + +/obj/structure/machinery/computer/dropship_weapons/proc/ui_create_firemission(mob/weapon_operator, firemission_name, firemission_length) + if(!skillcheck(weapon_operator, SKILL_PILOT, SKILL_PILOT_TRAINED)) //only pilots can fire dropship weapons. + to_chat(weapon_operator, SPAN_WARNING("A screen with graphics and walls of physics and engineering values open, you immediately force it closed.")) + return FALSE + // Check name + if(!firemission_name || length(firemission_name) < 1) + to_chat(weapon_operator, SPAN_WARNING("Name too short (at least 1 symbols).")) + return FALSE + // Check length + if(!firemission_length) + to_chat(weapon_operator, SPAN_WARNING("Incorrect input format.")) + return FALSE + if(firemission_length > firemission_envelope.fire_length) + to_chat(weapon_operator, SPAN_WARNING("Fire Mission is longer than allowed by this vehicle.")) + return FALSE + if(firemission_envelope.stat != FIRE_MISSION_STATE_IDLE) + to_chat(weapon_operator, SPAN_WARNING("Vehicle has to be idle to allow Fire Mission editing and creation.")) + return FALSE + + for(var/datum/cas_fire_mission/mission in firemission_envelope.missions) + if(firemission_name == mission.name) + to_chat(weapon_operator, SPAN_WARNING("Fire Mission name must be unique.")) + return FALSE + //everything seems to be fine now + firemission_envelope.generate_mission(firemission_name, firemission_length) + return TRUE + +/obj/structure/machinery/computer/dropship_weapons/proc/ui_delete_firemission(mob/weapon_operator, firemission_tag) + if(!skillcheck(weapon_operator, SKILL_PILOT, SKILL_PILOT_TRAINED)) //only pilots can fire dropship weapons. + to_chat(weapon_operator, SPAN_WARNING("A screen with graphics and walls of physics and engineering values open, you immediately force it closed.")) + return FALSE + if(firemission_tag > length(firemission_envelope.missions)) + to_chat(weapon_operator, SPAN_WARNING("Fire Mission ID corrupted or already deleted.")) + return FALSE + if(selected_firemission == firemission_envelope.missions[firemission_tag]) + to_chat(weapon_operator, SPAN_WARNING("Can't delete selected Fire Mission.")) + return FALSE + var/result = firemission_envelope.delete_firemission(firemission_tag) + if(result != 1) + to_chat(weapon_operator, SPAN_WARNING("Unable to delete Fire Mission while in combat.")) + return FALSE + return TRUE + +/obj/structure/machinery/computer/dropship_weapons/proc/ui_select_firemission(mob/weapon_operator, firemission_tag) + if(!skillcheck(weapon_operator, SKILL_PILOT, SKILL_PILOT_TRAINED)) //only pilots can fire dropship weapons. + to_chat(weapon_operator, SPAN_WARNING("A screen with graphics and walls of physics and engineering values open, you immediately force it closed.")) + return FALSE + if(firemission_envelope.stat > FIRE_MISSION_STATE_IN_TRANSIT && firemission_envelope.stat < FIRE_MISSION_STATE_COOLDOWN) + to_chat(weapon_operator, SPAN_WARNING("Fire Mission already underway.")) + return FALSE + if(firemission_tag > length(firemission_envelope.missions)) + to_chat(weapon_operator, SPAN_WARNING("Fire Mission ID corrupted or deleted.")) + return FALSE + if(selected_firemission == firemission_envelope.missions[firemission_tag]) + selected_firemission = null else - update_trace_loc() + selected_firemission = firemission_envelope.missions[firemission_tag] + return TRUE + +/obj/structure/machinery/computer/dropship_weapons/proc/ui_firemission_change_offset(mob/weapons_operator, fm_tag, weapon_id, offset_id, offset_value) + if(!skillcheck(weapons_operator, SKILL_PILOT, SKILL_PILOT_TRAINED)) //only pilots can fire dropship weapons. + to_chat(weapons_operator, SPAN_WARNING("A screen with graphics and walls of physics and engineering values open, you immediately force it closed.")) + return FALSE + + var/result = firemission_envelope.update_mission(fm_tag, weapon_id, offset_id, offset_value) + if(result != FIRE_MISSION_ALL_GOOD) + playsound(src, 'sound/machines/terminal_error.ogg', 5, 1) + return TRUE + +/obj/structure/machinery/computer/dropship_weapons/proc/ui_select_laser_firemission(mob/weapons_operator, obj/docking_port/mobile/marine_dropship/dropship, laser) + if(!laser) + to_chat(weapons_operator, SPAN_WARNING("Bad Target.")) + return FALSE + if(!skillcheck(weapons_operator, SKILL_PILOT, SKILL_PILOT_TRAINED)) //only pilots can fire dropship weapons. + to_chat(weapons_operator, SPAN_WARNING("A screen with graphics and walls of physics and engineering values open, you immediately force it closed.")) + return FALSE + if(firemission_envelope.stat > FIRE_MISSION_STATE_IN_TRANSIT && firemission_envelope.stat < FIRE_MISSION_STATE_COOLDOWN) + to_chat(weapons_operator, SPAN_WARNING("Fire Mission already underway.")) + return FALSE + if(dropship.mode != SHUTTLE_CALL) + to_chat(weapons_operator, SPAN_WARNING("Shuttle has to be in orbit.")) + return FALSE + var/datum/cas_iff_group/cas_group = GLOB.cas_groups[faction] + var/datum/cas_signal/cas_sig + for(var/X in cas_group.cas_signals) + var/datum/cas_signal/LT = X + if(LT.target_id == laser && LT.valid_signal()) + cas_sig = LT + if(!cas_sig) + to_chat(weapons_operator, SPAN_WARNING("Target lost or obstructed.")) + return FALSE + + update_location(weapons_operator, cas_sig) + return TRUE -/obj/structure/machinery/computer/dropship_weapons/proc/update_location(new_location) +/obj/structure/machinery/computer/dropship_weapons/proc/initiate_firemission(mob/user, fmId, dir, offset_x, offset_y) + set waitfor = 0 + var/obj/docking_port/mobile/marine_dropship/dropship = SSshuttle.getShuttle(shuttle_tag) + if (!istype(dropship)) + return FALSE + if (!dropship.in_flyby || dropship.mode != SHUTTLE_CALL) + to_chat(user, SPAN_WARNING("Has to be in Fly By mode")) + return FALSE + if (dropship.timer && dropship.timeLeft(1) < firemission_envelope.flyoff_period) + to_chat(user, SPAN_WARNING("Not enough time to complete the Fire Mission")) + return FALSE + var/datum/cas_signal/recorded_loc = firemission_envelope.recorded_loc + var/obj/source = recorded_loc.signal_loc + var/turf/target = locate( + source.x + offset_x, + source.y + offset_y, + source.z + ) + var/result = firemission_envelope.execute_firemission(recorded_loc, target, dir, fmId) + if(result != FIRE_MISSION_ALL_GOOD) + to_chat(user, SPAN_WARNING("Screen beeps with an error: [firemission_envelope.mission_error]")) + return TRUE + +/obj/structure/machinery/computer/dropship_weapons/proc/update_location(mob/user, new_location) var/result = firemission_envelope.change_target_loc(new_location) if(result<1) - to_chat(usr, "Screen beeps with an error: "+ firemission_envelope.mission_error) - else - update_trace_loc() + to_chat(user, SPAN_WARNING("Screen beeps with an error: [firemission_envelope.mission_error]")) + return FALSE + return TRUE -/obj/structure/machinery/computer/dropship_weapons/proc/update_direction(new_direction) +/obj/structure/machinery/computer/dropship_weapons/proc/update_direction(mob/user, new_direction) var/result = firemission_envelope.change_direction(new_direction) if(result<1) - to_chat(usr, "Screen beeps with an error: " + firemission_envelope.mission_error) - else - update_trace_loc() - -/obj/structure/machinery/computer/dropship_weapons/on_unset_interaction(mob/user) - ..() - if(firemission_envelope && firemission_envelope.guidance) - firemission_envelope.remove_user_from_tracking(user) + to_chat(user, SPAN_WARNING("Screen beeps with an error: [firemission_envelope.mission_error]")) + return FALSE + return TRUE -/obj/structure/machinery/computer/dropship_weapons/proc/update_trace_loc() +/obj/structure/machinery/computer/dropship_weapons/proc/update_trace_loc(mob/user) if(!firemission_envelope) return if(firemission_envelope.recorded_loc == null || firemission_envelope.recorded_dir == null || firemission_envelope.recorded_offset == null) return if(firemission_envelope.recorded_loc.obstructed_signal()) - if(firemission_envelope.user_is_guided(usr)) - to_chat(usr, SPAN_WARNING("Signal Obstructed. You have to go in blind.")) + if(firemission_envelope.user_is_guided(user)) + to_chat(user, SPAN_WARNING("Signal Obstructed. You have to go in blind.")) return var/sx = 0 var/sy = 0 @@ -711,108 +872,29 @@ return var/area/laser_area = get_area(shootloc) if(!istype(laser_area) || CEILING_IS_PROTECTED(laser_area.ceiling, CEILING_PROTECTION_TIER_1)) - if(firemission_envelope.user_is_guided(usr)) - to_chat(usr, SPAN_WARNING("Vision Obstructed. You have to go in blind.")) + if(firemission_envelope.user_is_guided(user)) + to_chat(user, SPAN_WARNING("Vision Obstructed. You have to go in blind.")) firemission_envelope.change_current_loc() else firemission_envelope.change_current_loc(shootloc) + return TRUE /obj/structure/machinery/computer/dropship_weapons/dropship1 name = "\improper 'Alamo' weapons controls" req_one_access = list(ACCESS_MARINE_LEADER, ACCESS_MARINE_DROPSHIP, ACCESS_WY_FLIGHT) firemission_envelope = new /datum/cas_fire_envelope/uscm_dropship() - -/obj/structure/machinery/computer/dropship_weapons/dropship1/New() - ..() shuttle_tag = DROPSHIP_ALAMO /obj/structure/machinery/computer/dropship_weapons/dropship2 name = "\improper 'Normandy' weapons controls" req_one_access = list(ACCESS_MARINE_LEADER, ACCESS_MARINE_DROPSHIP, ACCESS_WY_FLIGHT) firemission_envelope = new /datum/cas_fire_envelope/uscm_dropship() - -/obj/structure/machinery/computer/dropship_weapons/dropship2/New() - ..() shuttle_tag = DROPSHIP_NORMANDY /obj/structure/machinery/computer/dropship_weapons/Destroy() . = ..() - QDEL_NULL(firemission_envelope) - -// CAS TGUI SHIT \\ - -/obj/structure/machinery/computer/dropship_weapons/tgui_interact(mob/user, datum/tgui/ui) - ui = SStgui.try_update_ui(user, src, ui) - if(!ui) - ui = new(user, src, "CasSim", "[src.name]") - ui.open() - -/obj/structure/machinery/computer/dropship_weapons/ui_state(mob/user) // we gotta do custom shit here so that it always closes instead of suspending - return GLOB.not_incapacitated_and_adjacent_strict_state - -/obj/structure/machinery/computer/dropship_weapons/ui_status(mob/user, datum/ui_state/state) - . = ..() - if(inoperable()) - return UI_CLOSE - -/obj/structure/machinery/computer/dropship_weapons/ui_data(mob/user) - var/list/data = list() - - data["configuration"] = configuration - data["looking"] = simulation.looking_at_simulation - data["dummy_mode"] = simulation.dummy_mode - - data["worldtime"] = world.time - data["nextdetonationtime"] = simulation.detonation_cooldown - data["detonation_cooldown"] = simulation.detonation_cooldown_time - - return data - -/obj/structure/machinery/computer/dropship_weapons/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) - . = ..() - if(.) - return - - var/user = ui.user - - switch(action) - if("start_watching") - simulation.start_watching(user) - . = TRUE - - if("stop_watching") - simulation.stop_watching(user) - . = TRUE - - if("execute_simulated_firemission") - if(!configuration) - to_chat(user, SPAN_WARNING("No configured firemission")) - return - simulate_firemission(user) - . = TRUE - - if("switch_firemission") - configuration = tgui_input_list(user, "Select firemission to simulate", "Select firemission", firemission_envelope.missions, 30 SECONDS) - if(!selected_firemission) - to_chat(user, SPAN_WARNING("No configured firemission")) - return - if(!configuration) - configuration = selected_firemission - . = TRUE - - if("switchmode") - simulation.dummy_mode = tgui_input_list(user, "Select target type to simulate", "Target type", simulation.target_types, 30 SECONDS) - if(!simulation.dummy_mode) - simulation.dummy_mode = CLF_MODE - . = TRUE - -/obj/structure/machinery/computer/dropship_weapons/ui_close(mob/user) - . = ..() - if(simulation.looking_at_simulation) - simulation.stop_watching(user) - -// CAS TGUI SHIT END \\ + QDEL_NULL(tacmap) /obj/structure/machinery/computer/dropship_weapons/proc/simulate_firemission(mob/living/user) diff --git a/code/game/machinery/computer/groundside_operations.dm b/code/game/machinery/computer/groundside_operations.dm index 7b4c2d5df771..591c63a76bee 100644 --- a/code/game/machinery/computer/groundside_operations.dm +++ b/code/game/machinery/computer/groundside_operations.dm @@ -1,3 +1,5 @@ +#define COMMAND_SQUAD "Command" + /obj/structure/machinery/computer/groundside_operations name = "groundside operations console" desc = "This can be used for various important functions." @@ -19,6 +21,7 @@ var/lz_selection = TRUE var/has_squad_overwatch = TRUE var/faction = FACTION_MARINE + var/show_command_squad = FALSE /obj/structure/machinery/computer/groundside_operations/Initialize() if(SSticker.mode && MODE_HAS_FLAG(MODE_FACTION_CLASH)) @@ -69,8 +72,11 @@ dat += "

      " if(has_squad_overwatch) - dat += "Current Squad: [!isnull(current_squad) ? "[current_squad.name]" : "----------"]
      " - if(current_squad) + if(show_command_squad) + dat += "Current Squad: Command
      " + else + dat += "Current Squad: [!isnull(current_squad) ? "[current_squad.name]" : "----------"]
      " + if(current_squad || show_command_squad) dat += get_overwatch_info() dat += "
      Close" @@ -104,93 +110,93 @@ "} - if(!current_squad) - dat += "No Squad selected!
      " + if(show_command_squad) + dat += format_list_of_marines(list(GLOB.marine_leaders[JOB_CO], GLOB.marine_leaders[JOB_XO]) + GLOB.marine_leaders[JOB_SO], list(JOB_CO, JOB_XO, JOB_SO)) + else if(current_squad) + dat += format_list_of_marines(current_squad.marines_list, list(JOB_SQUAD_LEADER, JOB_SQUAD_SPECIALIST, JOB_SQUAD_MEDIC, JOB_SQUAD_ENGI, JOB_SQUAD_SMARTGUN, JOB_SQUAD_MARINE)) else - var/leader_text = "" - var/spec_text = "" - var/medic_text = "" - var/engi_text = "" - var/smart_text = "" - var/marine_text = "" - var/misc_text = "" - var/living_count = 0 - var/almayer_count = 0 - var/SSD_count = 0 - var/helmetless_count = 0 - - for(var/X in current_squad.marines_list) - if(!X) - continue //just to be safe - var/mob_name = "unknown" - var/mob_state = "" - var/role = "unknown" - var/act_sl = "" - var/area_name = "???" - var/mob/living/carbon/human/H - if(ishuman(X)) - H = X - mob_name = H.real_name - var/area/A = get_area(H) - var/turf/M_turf = get_turf(H) - if(A) - area_name = sanitize_area(A.name) - - if(H.job) - role = H.job - else if(istype(H.wear_id, /obj/item/card/id)) //decapitated marine is mindless, - var/obj/item/card/id/ID = H.wear_id //we use their ID to get their role. - if(ID.rank) - role = ID.rank - - switch(H.stat) - if(CONSCIOUS) - mob_state = "Conscious" - living_count++ - if(UNCONSCIOUS) - mob_state = "Unconscious" - living_count++ - else - continue - - if(!is_ground_level(M_turf.z)) - almayer_count++ - continue + dat += "No Squad selected!
      " + dat += "

      " + dat += "Refresh
      " + return dat - if(!istype(H.head, /obj/item/clothing/head/helmet/marine)) - helmetless_count++ +/obj/structure/machinery/computer/groundside_operations/proc/format_list_of_marines(list/mob/living/carbon/human/marine_list, list/jobs_in_order) + var/dat = "" + var/list/job_order = list() + + for(var/job in jobs_in_order) + job_order[job] = "" + + var/misc_text = "" + + var/living_count = 0 + var/almayer_count = 0 + var/SSD_count = 0 + var/helmetless_count = 0 + var/total_count = 0 + + for(var/X in marine_list) + if(!X) + continue //just to be safe + total_count++ + var/mob_name = "unknown" + var/mob_state = "" + var/role = "unknown" + var/area_name = "???" + var/mob/living/carbon/human/H + var/act_sl = "" + if(ishuman(X)) + H = X + mob_name = H.real_name + var/area/A = get_area(H) + var/turf/M_turf = get_turf(H) + if(A) + area_name = sanitize_area(A.name) + + var/obj/item/card/id/card = H.get_idcard() + if(H.job) + role = H.job + else if(card?.rank) //decapitated marine is mindless, + role = card.rank + + switch(H.stat) + if(CONSCIOUS) + mob_state = "Conscious" + living_count++ + if(UNCONSCIOUS) + mob_state = "Unconscious" + living_count++ + else continue - if(!H.key || !H.client) - SSD_count++ - continue + if(!is_ground_level(M_turf.z)) + almayer_count++ + continue - var/marine_infos = "[mob_name][role][act_sl][mob_state][area_name]" - switch(role) - if(JOB_SQUAD_LEADER) - leader_text += marine_infos - if(JOB_SQUAD_SPECIALIST) - spec_text += marine_infos - if(JOB_SQUAD_MEDIC) - medic_text += marine_infos - if(JOB_SQUAD_ENGI) - engi_text += marine_infos - if(JOB_SQUAD_SMARTGUN) - smart_text += marine_infos - if(JOB_SQUAD_MARINE) - marine_text += marine_infos - else - misc_text += marine_infos - - dat += "Total: [current_squad.marines_list.len] Deployed
      " - dat += "Marines detected: [living_count] ([helmetless_count] no helmet, [SSD_count] SSD, [almayer_count] on Almayer)
      " - dat += "
      Search:
      " - dat += "" - dat += "" - dat += leader_text + spec_text + medic_text + engi_text + smart_text + marine_text + misc_text - dat += "
      NameRoleStateLocation
      " - dat += "

      " - dat += "Refresh
      " + if(!istype(H.head, /obj/item/clothing/head/helmet/marine)) + helmetless_count++ + continue + + if(!H.key || !H.client) + SSD_count++ + continue + if(current_squad) + if(H == current_squad.squad_leader && role != JOB_SQUAD_LEADER) + act_sl = " (ASL)" + var/marine_infos = "[mob_name][role][act_sl][mob_state][area_name]" + if(role in job_order) + job_order[role] += marine_infos + else + misc_text += marine_infos + dat += "Total: [total_count] Deployed
      " + dat += "Marines detected: [living_count] ([helmetless_count] no helmet, [SSD_count] SSD, [almayer_count] on Almayer)
      " + dat += "
      Search:
      " + dat += "" + dat += "" + for(var/job in job_order) + dat += job_order[job] + dat += misc_text + dat += "
      NameRoleStateLocation
      " return dat /obj/structure/machinery/computer/groundside_operations/Topic(href, href_list) @@ -205,6 +211,19 @@ return if("announce") + var/mob/living/carbon/human/human_user = usr + var/obj/item/card/id/idcard = human_user.get_active_hand() + var/bio_fail = FALSE + if(!istype(idcard)) + idcard = human_user.get_idcard() + if(!idcard) + bio_fail = TRUE + else if(!idcard.check_biometrics(human_user)) + bio_fail = TRUE + if(bio_fail) + to_chat(human_user, SPAN_WARNING("Biometrics failure! You require an authenticated ID card to perform this action!")) + return FALSE + if(usr.client.prefs.muted & MUTE_IC) to_chat(usr, SPAN_DANGER("You cannot send Announcements (muted).")) return @@ -224,8 +243,8 @@ var/signed = null if(ishuman(usr)) var/mob/living/carbon/human/H = usr - var/obj/item/card/id/id = H.wear_id - if(istype(id)) + var/obj/item/card/id/id = H.get_idcard() + if(id) var/paygrade = get_paygrades(id.paygrade, FALSE, H.gender) signed = "[paygrade] [id.registered_name]" @@ -235,7 +254,7 @@ log_announcement("[key_name(usr)] has announced the following: [input]") if("award") - print_medal(usr, src) + open_medal_panel(usr, src) if("selectlz") if(SSticker.mode.active_lz) @@ -254,23 +273,31 @@ for(var/datum/squad/S in GLOB.RoleAuthority.squads) if(S.active && S.faction == faction) squad_list += S.name + squad_list += COMMAND_SQUAD var/name_sel = tgui_input_list(usr, "Which squad would you like to look at?", "Pick Squad", squad_list) if(!name_sel) return - var/datum/squad/selected = get_squad_by_name(name_sel) - if(selected) - current_squad = selected + if(name_sel == COMMAND_SQUAD) + show_command_squad = TRUE + current_squad = null + else - to_chat(usr, "[icon2html(src, usr)] [SPAN_WARNING("Invalid input. Aborting.")]") + show_command_squad = FALSE + + var/datum/squad/selected = get_squad_by_name(name_sel) + if(selected) + current_squad = selected + else + to_chat(usr, "[icon2html(src, usr)] [SPAN_WARNING("Invalid input. Aborting.")]") if("use_cam") if(isRemoteControlling(usr)) to_chat(usr, "[icon2html(src, usr)] [SPAN_WARNING("Unable to override console camera viewer. Track with camera instead. ")]") return - if(current_squad) + if(current_squad || show_command_squad) var/mob/cam_target = locate(href_list["cam_target"]) var/obj/structure/machinery/camera/new_cam = get_camera_from_target(cam_target) if(!new_cam || !new_cam.can_use()) @@ -290,6 +317,19 @@ usr.RegisterSignal(cam, COMSIG_PARENT_QDELETING, TYPE_PROC_REF(/mob, reset_observer_view_on_deletion)) if("activate_echo") + var/mob/living/carbon/human/human_user = usr + var/obj/item/card/id/idcard = human_user.get_active_hand() + var/bio_fail = FALSE + if(!istype(idcard)) + idcard = human_user.get_idcard() + if(!idcard) + bio_fail = TRUE + else if(!idcard.check_biometrics(human_user)) + bio_fail = TRUE + if(bio_fail) + to_chat(human_user, SPAN_WARNING("Biometrics failure! You require an authenticated ID card to perform this action!")) + return FALSE + var/reason = strip_html(input(usr, "What is the purpose of Echo Squad?", "Activation Reason")) if(!reason) return @@ -321,7 +361,7 @@ //returns the helmet camera the human is wearing /obj/structure/machinery/computer/groundside_operations/proc/get_camera_from_target(mob/living/carbon/human/H) - if(current_squad) + if(current_squad || show_command_squad) if(H && istype(H) && istype(H.head, /obj/item/clothing/head/helmet/marine)) var/obj/item/clothing/head/helmet/marine/helm = H.head return helm.camera @@ -348,3 +388,9 @@ lz_selection = FALSE has_squad_overwatch = FALSE minimap_type = MINIMAP_FLAG_PMC + +/obj/structure/machinery/computer/groundside_operations/arc + icon = 'icons/obj/vehicles/interiors/arc.dmi' + icon_state = "groundsideop_computer" + +#undef COMMAND_SQUAD diff --git a/code/game/machinery/computer/guestpass.dm b/code/game/machinery/computer/guestpass.dm index 5204b53e20ee..20a7260320f2 100644 --- a/code/game/machinery/computer/guestpass.dm +++ b/code/game/machinery/computer/guestpass.dm @@ -165,7 +165,7 @@ if (giver) var/number = add_zero("[rand(0,9999)]", 4) var/entry = "\[[worldtime2text()]\] Pass #[number] issued by [giver.registered_name] ([giver.assignment]) to [giv_name]. Reason: [reason]. Grants access to following areas: " - for (var/i=1 to accesses.len) + for (var/i=1 to length(accesses)) var/A = accesses[i] if (A) var/area = get_access_desc(A) diff --git a/code/game/machinery/computer/medical.dm b/code/game/machinery/computer/medical.dm index 20aa6925d0b4..40b23667636f 100644 --- a/code/game/machinery/computer/medical.dm +++ b/code/game/machinery/computer/medical.dm @@ -182,14 +182,6 @@ src.rank = "AI" src.screen = 1 - else if (isrobot(usr)) - src.active1 = null - src.active2 = null - src.authenticated = usr.name - var/mob/living/silicon/robot/R = usr - src.rank = "[R.modtype] [R.braintype]" - src.screen = 1 - else if (istype(src.scan, /obj/item/card/id)) src.active1 = null src.active2 = null diff --git a/code/game/machinery/computer/research.dm b/code/game/machinery/computer/research.dm index 1ba696eeee9c..b51da245844e 100644 --- a/code/game/machinery/computer/research.dm +++ b/code/game/machinery/computer/research.dm @@ -53,6 +53,12 @@ var/obj/item/paper/research_report/CR = P.convert_to_chem_report() GLOB.chemical_data.save_document(CR, response, CR.name) return + //biomass credits rewards + if(istype(B, /obj/item/research_upgrades/credits)) + var/obj/item/research_upgrades/credits/cred = B + GLOB.chemical_data.update_credits(cred.credit_value) + visible_message(SPAN_NOTICE("[user] inserts [cred] in [src], collecting [cred.credit_value] points from sales.")) + qdel(cred) //Clearance Updating if(!istype(B, /obj/item/card/id)) return @@ -162,7 +168,6 @@ visible_message(SPAN_NOTICE("Clearance access increased to level [GLOB.chemical_data.clearance_level] for [cost] credits.")) msg_admin_niche("[key_name(user)] traded research credits to upgrade the clearance to level [GLOB.chemical_data.clearance_level].") if(max_clearance < GLOB.chemical_data.clearance_level) - GLOB.chemical_data.update_income(1) //Bonus income and a paper for buying clearance instead of swiping it up switch(GLOB.chemical_data.clearance_level) if(2) new /obj/item/paper/research_notes/unique/tier_two/(photocopier.loc) @@ -179,7 +184,7 @@ if("purchase_document") if(!photocopier) return - var/purchase_tier = FLOOR(text2num(params["purchase_document"]), 1) + var/purchase_tier = floor(text2num(params["purchase_document"])) if(purchase_tier <= 0 || purchase_tier > 5) return if(purchase_tier > GLOB.chemical_data.clearance_level) diff --git a/code/game/machinery/computer/robot.dm b/code/game/machinery/computer/robot.dm index 19e3ac900af6..1a8dcf2efdf8 100644 --- a/code/game/machinery/computer/robot.dm +++ b/code/game/machinery/computer/robot.dm @@ -8,207 +8,3 @@ icon_state = "robot" req_access = list(ACCESS_MARINE_RESEARCH) circuit = /obj/item/circuitboard/computer/robotics - - var/id = 0 - var/temp = null - var/status = 0 - var/timeleft = 60 - var/stop = 0 - var/screen = 0 // 0 - Main Menu, 1 - Cyborg Status, 2 - Kill 'em All! -- In text - - -/obj/structure/machinery/computer/robotics/attack_remote(mob/user as mob) - return src.attack_hand(user) - -/obj/structure/machinery/computer/robotics/attack_hand(mob/user as mob) - if(..()) - return - if (src.z > 6) - to_chat(user, SPAN_DANGER("Unable to establish a connection: \black You're too far away from the station!")) - return - user.set_interaction(src) - var/dat - if (src.temp) - dat = "[src.temp]

      Clear Screen" - else - if(screen == 0) - dat += "

      Cyborg Control Console


      " - dat += "1. Cyborg Status
      " - dat += "2. Emergency Full Destruct
      " - if(screen == 1) - for(var/mob/living/silicon/robot/R in GLOB.mob_list) - if(istype(R, /mob/living/silicon/robot/drone)) - continue //There's a specific console for drones. - if(isRemoteControlling(user)) - if (R.connected_ai != user) - continue - if(isrobot(user)) - if (R != user) - continue - if(R.scrambledcodes) - continue - - dat += "[R.name] |" - if(R.stat) - dat += " Not Responding |" - else if (HAS_TRAIT_FROM(R, TRAIT_IMMOBILIZED, HACKED_TRAIT)) - dat += " Locked Down |" - else - dat += " Operating Normally |" - if(R.cell) - dat += " Battery Installed ([R.cell.charge]/[R.cell.maxcharge]) |" - else - dat += " No Cell Installed |" - if(R.module) - dat += " Module Installed ([R.module.name]) |" - else - dat += " No Module Installed |" - if(R.connected_ai) - dat += " Slaved to [R.connected_ai.name] |" - else - dat += " Independent from AI |" - if (isRemoteControlling(user)) - if((user.mind.original == user)) - dat += "(Hack) " - var/canmove = HAS_TRAIT_FROM(src, TRAIT_IMMOBILIZED, HACKED_TRAIT) - dat += "([canmove ? "Lockdown" : "Release"]) " - dat += "(Destroy)" - dat += "
      " - dat += "(Return to Main Menu)
      " - if(screen == 2) - if(!src.status) - dat += {"
      Emergency Robot Self-Destruct
      \nStatus: Off
      - \n
      - \nCountdown: [src.timeleft]/60 \[Reset\]
      - \n
      - \nStart Sequence
      - \n
      - \nClose"} - else - dat = {"Emergency Robot Self-Destruct
      \nStatus: Activated
      - \n
      - \nCountdown: [src.timeleft]/60 \[Reset\]
      - \n
      \nStop Sequence
      - \n
      - \nClose"} - dat += "(Return to Main Menu)
      " - - user << browse(dat, "window=computer;size=400x500") - onclose(user, "computer") - return - -/obj/structure/machinery/computer/robotics/Topic(href, href_list) - if(..()) - return - if ((usr.contents.Find(src) || (in_range(src, usr) && istype(src.loc, /turf))) || (isRemoteControlling(usr))) - usr.set_interaction(src) - - if (href_list["eject"]) - src.temp = {"Destroy Robots?
      -
      \[Swipe ID to initiate destruction sequence\]
      - Cancel"} - - else if (href_list["eject2"]) - var/obj/item/card/id/I = usr.get_active_hand() - if (istype(I)) - if(src.check_access(I)) - if (!status) - message_admins("[key_name_admin(usr)] has initiated the global cyborg killswitch!") - log_game(SPAN_NOTICE("[key_name(usr)] has initiated the global cyborg killswitch!")) - src.status = 1 - src.start_sequence() - src.temp = null - - else - to_chat(usr, SPAN_DANGER("Access Denied.")) - - else if (href_list["stop"]) - src.temp = {" - Stop Robot Destruction Sequence?
      -
      Yes
      - No"} - - else if (href_list["stop2"]) - src.stop = 1 - src.temp = null - src.status = 0 - - else if (href_list["reset"]) - src.timeleft = 60 - - else if (href_list["temp"]) - src.temp = null - else if (href_list["screen"]) - switch(href_list["screen"]) - if("0") - screen = 0 - if("1") - screen = 1 - if("2") - screen = 2 - else if (href_list["killbot"]) - if(src.allowed(usr)) - var/mob/living/silicon/robot/R = locate(href_list["killbot"]) - if(R) - var/choice = tgui_input_list(usr, "Are you certain you wish to detonate [R.name]?", "Hack machine", list("Confirm", "Abort")) - if(choice == "Confirm") - if(R && istype(R)) - message_admins("[key_name_admin(usr)] detonated [R.name]!") - log_game(SPAN_NOTICE("[key_name_admin(usr)] detonated [R.name]!")) - R.self_destruct() - else - to_chat(usr, SPAN_DANGER("Access Denied.")) - - else if (href_list["stopbot"]) - if(src.allowed(usr)) - var/mob/living/silicon/robot/R = locate(href_list["stopbot"]) - var/canmove = HAS_TRAIT_FROM(src, TRAIT_IMMOBILIZED, HACKED_TRAIT) - if(R && istype(R)) // Extra sancheck because of input var references - var/choice = tgui_input_list(usr, "Are you certain you wish to [canmove ? "lock down" : "release"] [R.name]?", "Hack machine", list("Confirm", "Abort")) - if(choice == "Confirm") - if(R && istype(R)) - message_admins("[key_name_admin(usr)] [canmove ? "locked down" : "released"] [R.name]!") - log_game("[key_name(usr)] [canmove ? "locked down" : "released"] [R.name]!") - if(canmove) - ADD_TRAIT(src, TRAIT_IMMOBILIZED, HACKED_TRAIT) - else - REMOVE_TRAIT(src, TRAIT_IMMOBILIZED, HACKED_TRAIT) - if (R.lockcharge) - R.lockcharge = !R.lockcharge - to_chat(R, "Your lockdown has been lifted!") - else - R.lockcharge = !R.lockcharge - to_chat(R, "You have been locked down!") - - else - to_chat(usr, SPAN_DANGER("Access Denied.")) - - else if (href_list["magbot"]) - if(src.allowed(usr)) - var/mob/living/silicon/robot/R = locate(href_list["magbot"]) - - // whatever weirdness this is supposed to be, but that is how the href gets added, so here it is again - if(istype(R) && isRemoteControlling(usr) && (usr.mind.original == usr)) - - var/choice = tgui_input_list(usr, "Are you certain you wish to hack [R.name]?", "Hack machine", list("Confirm", "Abort")) - if(choice == "Confirm") - if(R && istype(R)) - log_game("[key_name(usr)] emagged [R.name] using robotic console!") - add_verb(R, /mob/living/silicon/robot/proc/ResetSecurityCodes) - - src.add_fingerprint(usr) - src.updateUsrDialog() - return - -/obj/structure/machinery/computer/robotics/proc/start_sequence() - while(src.timeleft) - if(src.stop) - src.stop = 0 - return - src.timeleft-- - sleep(10) - for(var/mob/living/silicon/robot/R in GLOB.mob_list) - if(!R.scrambledcodes && !istype(R, /mob/living/silicon/robot/drone)) - R.self_destruct() - - return diff --git a/code/game/machinery/computer/robots_props.dm b/code/game/machinery/computer/robots_props.dm new file mode 100644 index 000000000000..cac77f9bdbec --- /dev/null +++ b/code/game/machinery/computer/robots_props.dm @@ -0,0 +1,19 @@ +/obj/structure/machinery/computer/aifixer + name = "AI System Integrity Restorer" + icon = 'icons/obj/structures/machinery/computer.dmi' + icon_state = "ai-fixer" + circuit = /obj/item/circuitboard/computer/aifixer + req_one_access = list(ACCESS_CIVILIAN_ENGINEERING) + processing = TRUE + +/obj/structure/machinery/computer/aifixer/New() + ..() + src.overlays += image('icons/obj/structures/machinery/computer.dmi', "ai-fixer-empty") + +/obj/structure/machinery/computer/drone_control + name = "Maintenance Drone Control" + desc = "Used to monitor the station's drone population and the assembler that services them." + icon = 'icons/obj/structures/machinery/computer.dmi' + icon_state = "power" + circuit = /obj/item/circuitboard/computer/drone_control + diff --git a/code/game/machinery/computer/security.dm b/code/game/machinery/computer/security.dm index 8090f802b1d0..b3892de24413 100644 --- a/code/game/machinery/computer/security.dm +++ b/code/game/machinery/computer/security.dm @@ -95,7 +95,7 @@ if("Released") background = "'background-color:#2981b3;'" if("Suspect") - background = "'background-color:#008743;'" + background = "'background-color:#686A6C;'" if("NJP") background = "'background-color:#faa20a;'" if("None") @@ -155,7 +155,7 @@ dat += text("New Security Record

      ", src) dat += text("\nPrint Record
      \nBack
      ", src, src) if(4.0) - if(!Perp.len) + if(!length(Perp)) dat += text("ERROR. String could not be located.

      Back", src) else dat += {" @@ -172,7 +172,7 @@ Rank Criminal Status "} - for(var/i=1, i<=Perp.len, i += 2) + for(var/i=1, i<=length(Perp), i += 2) var/crimstat = "" var/datum/data/record/R = Perp[i] if(istype(Perp[i+1],/datum/data/record/)) @@ -187,7 +187,7 @@ if("Released") background = "'background-color:#3BB9FF;'" if("Suspect") - background = "'background-color:#1AAFFF;'" + background = "'background-color:#686A6C;'" if("NJP") background = "'background-color:#faa20a;'" if("None") @@ -217,7 +217,7 @@ What a mess.*/ active1 = null if (!( GLOB.data_core.security.Find(active2) )) active2 = null - if ((usr.contents.Find(src) || (in_range(src, usr) && istype(loc, /turf))) || (ishighersilicon(usr))) + if ((usr.contents.Find(src) || (in_range(src, usr) && istype(loc, /turf))) || (isSilicon(usr))) usr.set_interaction(src) switch(href_list["choice"]) // SORTING! @@ -271,16 +271,16 @@ What a mess.*/ Perp = new/list() t1 = lowertext(t1) var/list/components = splittext(t1, " ") - if(components.len > 5) + if(length(components) > 5) return //Lets not let them search too greedily. for(var/datum/data/record/R in GLOB.data_core.general) var/temptext = R.fields["name"] + " " + R.fields["id"] + " " + R.fields["rank"] - for(var/i = 1, i<=components.len, i++) + for(var/i = 1, i<=length(components), i++) if(findtext(temptext,components[i])) var/prelist = new/list(2) prelist[1] = R Perp += prelist - for(var/i = 1, i<=Perp.len, i+=2) + for(var/i = 1, i<=length(Perp), i+=2) for(var/datum/data/record/E in GLOB.data_core.security) var/datum/data/record/R = Perp[i] if ((E.fields["name"] == R.fields["name"] && E.fields["id"] == R.fields["id"])) @@ -361,16 +361,13 @@ What a mess.*/ return var/a2 = active2 var/t1 = copytext(trim(strip_html(input("Your name and time will be added to this new comment.", "Add a comment", null, null) as message)),1,MAX_MESSAGE_LEN) - if((!t1 || usr.stat || usr.is_mob_restrained() || (!in_range(src, usr) && (!ishighersilicon(usr))) || active2 != a2)) + if((!t1 || usr.stat || usr.is_mob_restrained() || (!in_range(src, usr) && (!isSilicon(usr))) || active2 != a2)) return var/created_at = text("[]  []  []", time2text(world.realtime, "MMM DD"), time2text(world.time, "[worldtime2text()]:ss"), GLOB.game_year) var/new_comment = list("entry" = t1, "created_by" = list("name" = "", "rank" = ""), "deleted_by" = null, "deleted_at" = null, "created_at" = created_at) if(istype(usr,/mob/living/carbon/human)) var/mob/living/carbon/human/U = usr new_comment["created_by"] = list("name" = U.get_authentification_name(), "rank" = U.get_assignment()) - else if(istype(usr,/mob/living/silicon/robot)) - var/mob/living/silicon/robot/U = usr - new_comment["created_by"] = list("name" = U.name, "rank" = "[U.modtype] [U.braintype]") if(!islist(active2.fields["comments"])) active2.fields["comments"] = list("1" = new_comment) else @@ -387,9 +384,6 @@ What a mess.*/ if(istype(usr,/mob/living/carbon/human)) var/mob/living/carbon/human/U = usr deleter = "[U.get_authentification_name()] ([U.get_assignment()])" - else if(istype(usr,/mob/living/silicon/robot)) - var/mob/living/silicon/robot/U = usr - deleter = "[U.name] ([U.modtype] [U.braintype])" updated_comments[href_list["del_c"]]["deleted_by"] = deleter updated_comments[href_list["del_c"]]["deleted_at"] = text("[]  []  []", time2text(world.realtime, "MMM DD"), time2text(world.time, "[worldtime2text()]:ss"), GLOB.game_year) active2.fields["comments"] = updated_comments @@ -442,7 +436,7 @@ What a mess.*/ temp += "
    " if("rank") //This was so silly before the change. Now it actually works without beating your head against the keyboard. /N - if (istype(active1, /datum/data/record) && GLOB.highcom_paygrades.Find(rank)) + if (istype(active1, /datum/data/record) && GLOB.uscm_highcom_paygrades.Find(rank)) temp = "
    Occupation:
    " temp += "
      " for(var/rank in GLOB.joblist) @@ -511,17 +505,12 @@ What a mess.*/ return dat /obj/structure/machinery/computer/secure_data/proc/is_not_allowed(mob/user) - return user.stat || user.is_mob_restrained() || (!in_range(src, user) && (!ishighersilicon(user))) + return user.stat || user.is_mob_restrained() || (!in_range(src, user) && (!isSilicon(user))) /obj/structure/machinery/computer/secure_data/proc/get_photo(mob/user) if(istype(user.get_active_hand(), /obj/item/photo)) var/obj/item/photo/photo = user.get_active_hand() return photo.img - if(ishighersilicon(user)) - var/mob/living/silicon/tempAI = usr - var/datum/picture/selection = tempAI.GetPicture() - if (selection) - return selection.fields["img"] /obj/structure/machinery/computer/secure_data/emp_act(severity) . = ..() @@ -540,7 +529,7 @@ What a mess.*/ if(4) R.fields["criminal"] = pick("None", "*Arrest*", "Incarcerated", "Released", "Suspect", "NJP") if(5) - R.fields["p_stat"] = pick("*Unconcious*", "Active", "Physically Unfit") + R.fields["p_stat"] = pick("*Unconscious*", "Active", "Physically Unfit") if(6) R.fields["m_stat"] = pick("*Insane*", "*Unstable*", "*Watch*", "Stable") continue diff --git a/code/game/machinery/computer/skills.dm b/code/game/machinery/computer/skills.dm index 6e35d147ff38..cba8d50791f9 100644 --- a/code/game/machinery/computer/skills.dm +++ b/code/game/machinery/computer/skills.dm @@ -97,7 +97,7 @@ dat += "General Record Lost!
      " dat += "\nDelete Record (ALL)

      \nPrint Record
      \nBack
      " if(4.0) - if(!Perp.len) + if(!length(Perp)) dat += "ERROR. String could not be located.

      Back" else dat += {" @@ -114,7 +114,7 @@ Rank Fingerprints "} - for(var/i=1, i<=Perp.len, i += 2) + for(var/i=1, i<=length(Perp), i += 2) var/crimstat = "" var/datum/data/record/R = Perp[i] if(istype(Perp[i+1],/datum/data/record/)) @@ -188,12 +188,6 @@ What a mess.*/ src.authenticated = usr.name src.rank = "AI" src.screen = 1 - else if (isborg(usr)) - src.active1 = null - src.authenticated = usr.name - var/mob/living/silicon/robot/R = usr - src.rank = R.braintype - src.screen = 1 else if (istype(scan, /obj/item/card/id)) active1 = null if(check_access(scan)) @@ -208,16 +202,16 @@ What a mess.*/ Perp = new/list() t1 = lowertext(t1) var/list/components = splittext(t1, " ") - if(components.len > 5) + if(length(components) > 5) return //Lets not let them search too greedily. for(var/datum/data/record/R in GLOB.data_core.general) var/temptext = R.fields["name"] + " " + R.fields["id"] + " " + R.fields["rank"] - for(var/i = 1, i<=components.len, i++) + for(var/i = 1, i<=length(components), i++) if(findtext(temptext,components[i])) var/prelist = new/list(2) prelist[1] = R Perp += prelist - for(var/i = 1, i<=Perp.len, i+=2) + for(var/i = 1, i<=length(Perp), i+=2) for(var/datum/data/record/E in GLOB.data_core.security) var/datum/data/record/R = Perp[i] if ((E.fields["name"] == R.fields["name"] && E.fields["id"] == R.fields["id"])) @@ -307,7 +301,7 @@ What a mess.*/ active1.fields["age"] = t1 if("rank") //This was so silly before the change. Now it actually works without beating your head against the keyboard. /N - if(istype(active1, /datum/data/record) && GLOB.highcom_paygrades.Find(rank)) + if(istype(active1, /datum/data/record) && GLOB.uscm_highcom_paygrades.Find(rank)) temp = "
      Occupation:
      " temp += "
        " for(var/rank in GLOB.joblist) @@ -363,7 +357,7 @@ What a mess.*/ if(4) R.fields["criminal"] = pick("None", "*Arrest*", "Incarcerated", "Released") if(5) - R.fields["p_stat"] = pick("*Unconcious*", "Active", "Physically Unfit") + R.fields["p_stat"] = pick("*Unconscious*", "Active", "Physically Unfit") if(6) R.fields["m_stat"] = pick("*Insane*", "*Unstable*", "*Watch*", "Stable") continue diff --git a/code/game/machinery/computer/station_alert.dm b/code/game/machinery/computer/station_alert.dm index d262caf47859..ddce92c966fb 100644 --- a/code/game/machinery/computer/station_alert.dm +++ b/code/game/machinery/computer/station_alert.dm @@ -55,7 +55,7 @@ var/list/CL = null if(O && islist(O)) CL = O - if (CL.len == 1) + if (length(CL) == 1) C = CL[1] else if(O && istype(O, /obj/structure/machinery/camera)) C = O @@ -73,7 +73,7 @@ var/list/srcs = alarm[3] if (origin in srcs) srcs -= origin - if (srcs.len == 0) + if (length(srcs) == 0) cleared = 1 L -= I return !cleared @@ -85,7 +85,7 @@ var/active_alarms = 0 for (var/cat in src.alarms) var/list/L = src.alarms[cat] - if(L.len) active_alarms = 1 + if(length(L)) active_alarms = 1 if(active_alarms) icon_state = "alert:2" else diff --git a/code/game/machinery/constructable_frame.dm b/code/game/machinery/constructable_frame.dm index 357ef48fff37..0c8cc62c3f87 100644 --- a/code/game/machinery/constructable_frame.dm +++ b/code/game/machinery/constructable_frame.dm @@ -124,7 +124,7 @@ state = CONSTRUCTION_STATE_BEGIN circuit.forceMove(loc) circuit = null - if(components.len == 0) + if(length(components) == 0) to_chat(user, SPAN_NOTICE("You remove the circuit board.")) else to_chat(user, SPAN_NOTICE("You remove the circuit board and other components.")) diff --git a/code/game/machinery/cryo.dm b/code/game/machinery/cryo.dm index afcc9686cff5..70c4a175489c 100644 --- a/code/game/machinery/cryo.dm +++ b/code/game/machinery/cryo.dm @@ -1,4 +1,8 @@ #define HEAT_CAPACITY_HUMAN 100 //249840 J/K, for a 72 kg person. +#define DEATH_STAGE_NONE 0 +#define DEATH_STAGE_EARLY 1 +#define DEATH_STAGE_WARNING 2 +#define DEATH_STAGE_CRITICAL 3 /obj/structure/machinery/cryo_cell name = "cryo cell" @@ -19,6 +23,7 @@ var/mob/living/carbon/occupant = null var/obj/item/reagent_container/glass/beaker = null + var/occupant_death_stage = DEATH_STAGE_NONE /obj/structure/machinery/cryo_cell/Initialize() . = ..() @@ -28,19 +33,18 @@ QDEL_NULL(beaker) . = ..() - /obj/structure/machinery/cryo_cell/process() if(!on) updateUsrDialog() return if(occupant) - if(occupant.stat != DEAD) - process_occupant() - else + var/mob/living/carbon/human/human_occupant = occupant + if(occupant.stat == DEAD && (!istype(human_occupant) || human_occupant.undefibbable)) go_out(TRUE, TRUE) //Whether auto-eject is on or not, we don't permit literal deadbeats to hang around. - playsound(src.loc, 'sound/machines/ping.ogg', 25, 1) - visible_message("[icon2html(src, viewers(src))] [SPAN_WARNING("\The [src] pings: Patient is dead!")]") + display_message("Patient is dead!", warning = TRUE) + else + process_occupant() updateUsrDialog() return TRUE @@ -106,23 +110,24 @@ else data["occupant"]["temperaturestatus"] = "bad" - data["cellTemperature"] = round(temperature) + data["cellTemperature"] = floor(temperature) data["isBeakerLoaded"] = beaker ? TRUE : FALSE var/beakerContents = list() - if(beaker && beaker.reagents && beaker.reagents.reagent_list.len) + if(beaker && beaker.reagents && length(beaker.reagents.reagent_list)) for(var/datum/reagent/R in beaker.reagents.reagent_list) beakerContents += list(list("name" = R.name, "volume" = R.volume)) data["beakerContents"] = beakerContents return data -/obj/structure/machinery/cryo_cell/ui_act(action, list/params) +/obj/structure/machinery/cryo_cell/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) . = ..() if(.) return switch(action) if("power") on = !on + update_use_power(on ? USE_POWER_ACTIVE : USE_POWER_IDLE) update_icon() . = TRUE if("eject") @@ -143,7 +148,8 @@ if("notice") release_notice = !release_notice . = TRUE - updateUsrDialog() + + updateUsrDialog(ui.user) /obj/structure/machinery/cryo_cell/attackby(obj/item/W, mob/living/user) if(istype(W, /obj/item/reagent_container/glass)) @@ -158,34 +164,64 @@ beaker = W var/reagentnames = "" - for(var/datum/reagent/R in beaker.reagents.reagent_list) - reagentnames += ";[R.name]" + for(var/datum/reagent/cur_reagent in beaker.reagents.reagent_list) + reagentnames += ";[cur_reagent.name]" - msg_admin_niche("[key_name(user)] put \a [beaker] into \the [src], containing [reagentnames] at ([src.loc.x],[src.loc.y],[src.loc.z]) [ADMIN_JMP(src.loc)].", 1) + msg_admin_niche("[key_name(user)] put \a [beaker] into [src], containing [reagentnames] at ([src.loc.x],[src.loc.y],[src.loc.z]) [ADMIN_JMP(src.loc)].", 1) if(user.drop_inv_item_to_loc(W, src)) - user.visible_message("[user] adds \a [W] to \the [src]!", "You add \a [W] to \the [src]!") + user.visible_message("[user] adds \a [W] to [src]!", "You add \a [W] to [src]!") else if(istype(W, /obj/item/grab)) - if(isxeno(user)) return - var/obj/item/grab/G = W - if(!ismob(G.grabbed_thing)) + if(isxeno(user)) return - var/mob/M = G.grabbed_thing - put_mob(M) + var/obj/item/grab/grabber = W + if(!ismob(grabber.grabbed_thing)) + return + var/mob/grabbed_mob = grabber.grabbed_thing + put_mob(grabbed_mob) - updateUsrDialog() + updateUsrDialog(user) +/obj/structure/machinery/cryo_cell/power_change(area/master_area) + . = ..() + if((occupant || on) && operable()) + update_use_power(USE_POWER_ACTIVE) + update_icon() /obj/structure/machinery/cryo_cell/update_icon() icon_state = initial(icon_state) - icon_state = "[icon_state]-[on ? "on" : "off"]-[occupant ? "occupied" : "empty"]" + var/is_on = on && operable() + icon_state = "[icon_state]-[is_on ? "on" : "off"]-[occupant ? "occupied" : "empty"]" -/obj/structure/machinery/cryo_cell/proc/process_occupant() +/obj/structure/machinery/cryo_cell/Destroy() if(occupant) - if(occupant.stat == DEAD) - return - occupant.bodytemperature += 2*(temperature - occupant.bodytemperature) - occupant.bodytemperature = max(occupant.bodytemperature, temperature) // this is so ugly i'm sorry for doing it i'll fix it later i promise + go_out() + . = ..() + +/obj/structure/machinery/cryo_cell/proc/process_occupant() + if(!occupant) + return + if(!operable()) + return + + occupant.bodytemperature += 2*(temperature - occupant.bodytemperature) + occupant.bodytemperature = max(occupant.bodytemperature, temperature) // this is so ugly i'm sorry for doing it i'll fix it later i promise + + // Warnings if dead + if(occupant.stat == DEAD && ishuman(occupant)) + var/mob/living/carbon/human/human_occupant = occupant + var/old_state = occupant_death_stage + if(world.time > occupant.timeofdeath + human_occupant.revive_grace_period - 1 MINUTES) + occupant_death_stage = DEATH_STAGE_CRITICAL + else if(world.time > occupant.timeofdeath + human_occupant.revive_grace_period - 2.5 MINUTES) + occupant_death_stage = DEATH_STAGE_WARNING + else + occupant_death_stage = DEATH_STAGE_EARLY + if(old_state != occupant_death_stage) + display_message("Patient is critical!", warning = TRUE) + + // Passive healing if alive and cold enough + if(occupant.stat != DEAD) occupant.recalculate_move_delay = TRUE occupant.set_stat(UNCONSCIOUS) if(occupant.bodytemperature < T0C) @@ -202,22 +238,39 @@ var/heal_brute = occupant.getBruteLoss() ? min(1, 20/occupant.getBruteLoss()) : 0 var/heal_fire = occupant.getFireLoss() ? min(1, 20/occupant.getFireLoss()) : 0 occupant.heal_limb_damage(heal_brute,heal_fire) - var/has_cryo = occupant.reagents.get_reagent_amount("cryoxadone") >= 1 - var/has_clonexa = occupant.reagents.get_reagent_amount("clonexadone") >= 1 - var/has_cryo_medicine = has_cryo || has_clonexa - if(beaker && !has_cryo_medicine) - beaker.reagents.trans_to(occupant, 1, 10) - beaker.reagents.reaction(occupant) - if(!occupant.getBruteLoss(TRUE) && !occupant.getFireLoss(TRUE) && !occupant.getCloneLoss() && autoeject) //release the patient automatically when brute and burn are handled on non-robotic limbs - display_message("external wounds are") + + // Chemical healing if cryo meds are involved + if(beaker && occupant.reagents && beaker.reagents) + var/occupant_has_cryo_meds = occupant.reagents.get_reagent_amount("cryoxadone") >= 1 || occupant.reagents.get_reagent_amount("clonexadone") >= 1 + var/beaker_has_cryo_meds = beaker.reagents.get_reagent_amount("cryoxadone") >= 1 || beaker.reagents.get_reagent_amount("clonexadone") >= 1 + + // To administer, either the occupant has cryo meds and the beaker doesn't or vice versa (not both) + var/can_administer = (occupant_has_cryo_meds ^ beaker_has_cryo_meds) && length(beaker.reagents.reagent_list) + if(can_administer && occupant_has_cryo_meds) + // If its the case of the occupant has cryo meds and not the beaker, we need to pace out the dosage + // So lets make sure they don't already have some of the beaker drugs + for(var/datum/reagent/cur_beaker_reagent in beaker.reagents.reagent_list) + for(var/datum/reagent/cur_occupant_reagent in occupant.reagents.reagent_list) + if(cur_beaker_reagent.id == cur_occupant_reagent.id) + can_administer = FALSE + break + + if(can_administer) + beaker.reagents.trans_to(occupant, 5) + beaker.reagents.reaction(occupant, permeable_in_mobs = FALSE) + + if(autoeject) + //release the patient automatically when brute and burn are handled on non-robotic limbs + if(!occupant.getBruteLoss(TRUE) && !occupant.getFireLoss(TRUE) && !occupant.getCloneLoss()) + display_message("Patient's external wounds are healed.") go_out(TRUE) return - if(occupant.health >= 100 && autoeject) - display_message("external wounds are") + if(occupant.health >= occupant.maxHealth) + display_message("Patient's external wounds are healed.") go_out(TRUE) return -/obj/structure/machinery/cryo_cell/proc/go_out(auto_eject = null, dead = null) +/obj/structure/machinery/cryo_cell/proc/go_out(auto_eject = FALSE, dead = FALSE) if(!(occupant)) return if(occupant.client) @@ -235,66 +288,72 @@ if(occupant.bodytemperature < 261 && occupant.bodytemperature >= 70) occupant.bodytemperature = 261 occupant.recalculate_move_delay = TRUE - occupant = null if(auto_eject) //Turn off and announce if auto-ejected because patient is recovered or dead. on = FALSE if(release_notice) //If auto-release notices are on as it should be, let the doctors know what's up - playsound(src.loc, 'sound/machines/ping.ogg', 100, 14) - var/reason = "Reason for release: Patient recovery." + var/reason = "Reason for release: Patient recovery." if(dead) - reason = "Reason for release: Patient death." - ai_silent_announcement("Patient [occupant] has been automatically released from \the [src] at: [get_area(occupant)]. [reason]", MED_FREQ) + reason = "Reason for release: Patient death." + ai_silent_announcement("Patient [occupant] has been automatically released from [src] at: [sanitize_area((get_area(occupant))?.name)]. [reason]", ":m") + occupant = null update_use_power(USE_POWER_IDLE) update_icon() return -/obj/structure/machinery/cryo_cell/proc/put_mob(mob/living/carbon/M as mob) +/obj/structure/machinery/cryo_cell/proc/put_mob(mob/living/carbon/cur_mob) if(inoperable()) to_chat(usr, SPAN_DANGER("The cryo cell is not functioning.")) return - if(!istype(M) || isxeno(M)) - to_chat(usr, SPAN_DANGER("The cryo cell cannot handle such a lifeform!")) + if(!istype(cur_mob) || isxeno(cur_mob)) + to_chat(usr, SPAN_DANGER("The cryo cell cannot handle such a lifeform!")) return if(occupant) - to_chat(usr, SPAN_DANGER("The cryo cell is already occupied!")) + to_chat(usr, SPAN_DANGER("The cryo cell is already occupied!")) return - if(M.abiotic()) + if(cur_mob.abiotic()) to_chat(usr, SPAN_DANGER("Subject may not have abiotic items on.")) return - if(do_after(usr, 20, INTERRUPT_NO_NEEDHAND, BUSY_ICON_GENERIC)) - to_chat(usr, SPAN_NOTICE("You move [M.name] inside the cryo cell.")) - M.forceMove(src) - if(M.health >= -100 && (M.health <= 0 || M.sleeping)) - to_chat(M, SPAN_NOTICE("You feel cold liquid surround you. Your skin starts to freeze up.")) - occupant = M + if(do_after(usr, 2 SECONDS, INTERRUPT_NO_NEEDHAND, BUSY_ICON_GENERIC)) + visible_message(SPAN_NOTICE("[usr] moves [usr == cur_mob ? "" : "[cur_mob] "]inside the cryo cell.")) + cur_mob.forceMove(src) + if(cur_mob.health >= HEALTH_THRESHOLD_DEAD && (cur_mob.health <= 0 || cur_mob.sleeping)) + to_chat(cur_mob, SPAN_NOTICE("You feel cold liquid surround you. Your skin starts to freeze up.")) + occupant = cur_mob + occupant_death_stage = DEATH_STAGE_NONE update_use_power(USE_POWER_ACTIVE) update_icon() return TRUE -/obj/structure/machinery/cryo_cell/proc/display_message(msg) - playsound(src.loc, 'sound/machines/ping.ogg', 25, 1) - visible_message("[icon2html(src, viewers(src))] [SPAN_NOTICE("\The [src] pings: Patient's " + msg + " healed.")]") +/obj/structure/machinery/cryo_cell/proc/display_message(msg, silent = FALSE, warning = FALSE) + if(!silent) + if(warning) + playsound(loc, 'sound/machines/twobeep.ogg', 40) + else + playsound(loc, 'sound/machines/ping.ogg', 25, 1) + visible_message("[icon2html(src, viewers(src))] [SPAN_NOTICE("[src] [warning ? "beeps" : "pings"]: [msg]")]") /obj/structure/machinery/cryo_cell/verb/move_eject() set name = "Eject occupant" set category = "Object" set src in oview(1) if(usr == occupant)//If the user is inside the tube... - if(usr.stat == 2)//and he's not dead.... + if(usr.stat == DEAD)//and he's not dead.... return - if(alert(usr, "Would you like to activate the ejection sequence of the cryo cell? Healing may be in progress.", "Confirm", "Yes", "No") == "Yes") + if(tgui_alert(usr, "Would you like to activate the ejection sequence of the cryo cell? Healing may be in progress.", "Confirm", list("Yes", "No")) == "Yes") to_chat(usr, SPAN_NOTICE("Cryo cell release sequence activated. This will take thirty seconds.")) - visible_message(SPAN_WARNING ("The cryo cell's tank starts draining as its ejection lights blare!")) - sleep(300) - if(!src || !usr || !occupant || (occupant != usr)) //Check if someone's released/replaced/bombed him already - return - go_out()//and release him from the eternal prison. - else - if(usr.stat != 0) - return - go_out() - return + visible_message(SPAN_WARNING("The cryo cell's tank starts draining as its ejection lights blare!")) + addtimer(CALLBACK(src, PROC_REF(finish_eject), usr), 30 SECONDS, TIMER_UNIQUE|TIMER_NO_HASH_WAIT) + else + if(usr.stat != CONSCIOUS) + return + go_out() + +/obj/structure/machinery/cryo_cell/proc/finish_eject(mob/original) + //Check if someone's released/replaced/bombed him already + if(QDELETED(src) || QDELETED(original) || !occupant || occupant != original) + return + go_out()//and release him from the eternal prison. /obj/structure/machinery/cryo_cell/verb/move_inside() set name = "Move Inside" @@ -309,8 +368,8 @@ //clickdrag code - "resist to get out" code is in living_verbs.dm /obj/structure/machinery/cryo_cell/MouseDrop_T(mob/target, mob/user) . = ..() - var/mob/living/H = user - if(!istype(H) || target != user) //cant make others get in. grab-click for this + var/mob/living/living_mob = user + if(!istype(living_mob) || target != user) //cant make others get in. grab-click for this return put_mob(target) @@ -324,3 +383,8 @@ /datum/data/function/proc/display() return + +#undef DEATH_STAGE_NONE +#undef DEATH_STAGE_EARLY +#undef DEATH_STAGE_WARNING +#undef DEATH_STAGE_CRITICAL diff --git a/code/game/machinery/cryopod.dm b/code/game/machinery/cryopod.dm index 53bf82c93925..658e2aa150f3 100644 --- a/code/game/machinery/cryopod.dm +++ b/code/game/machinery/cryopod.dm @@ -103,7 +103,7 @@ GLOBAL_LIST_INIT(frozen_items, list(SQUAD_MARINE_1 = list(), SQUAD_MARINE_2 = li else if(href_list["item"]) - if(frozen_items_for_type.len == 0) + if(length(frozen_items_for_type) == 0) to_chat(user, SPAN_WARNING("There is nothing to recover from storage.")) return @@ -122,7 +122,7 @@ GLOBAL_LIST_INIT(frozen_items, list(SQUAD_MARINE_1 = list(), SQUAD_MARINE_2 = li else if(href_list["allitems"]) - if(frozen_items_for_type.len == 0) + if(length(frozen_items_for_type) == 0) to_chat(user, SPAN_WARNING("There is nothing to recover from storage.")) return @@ -342,6 +342,7 @@ GLOBAL_LIST_INIT(frozen_items, list(SQUAD_MARINE_1 = list(), SQUAD_MARINE_2 = li set_name = "Scout Set" if(SKILL_SPEC_SNIPER) set_name = "Sniper Set" + GLOB.available_specialist_sets += "Anti-materiel Sniper Set" if(set_name && !GLOB.available_specialist_sets.Find(set_name)) GLOB.available_specialist_sets += set_name @@ -386,34 +387,35 @@ GLOBAL_LIST_INIT(frozen_items, list(SQUAD_MARINE_1 = list(), SQUAD_MARINE_2 = li stop_processing() /obj/structure/machinery/cryopod/attackby(obj/item/W, mob/living/user) - + if(isxeno(user)) + return FALSE if(istype(W, /obj/item/grab)) - if(isxeno(user)) return var/obj/item/grab/G = W if(occupant) to_chat(user, SPAN_WARNING("[src] is occupied.")) - return + return FALSE if(!isliving(G.grabbed_thing)) - return + return FALSE - var/willing = null //We don't want to allow people to be forced into despawning. + var/willing = FALSE //We don't want to allow people to be forced into despawning. var/mob/living/M = G.grabbed_thing if(M.stat == DEAD) //This mob is dead to_chat(user, SPAN_WARNING("[src] immediately rejects [M]. \He passed away!")) - return + return FALSE if(isxeno(M)) to_chat(user, SPAN_WARNING("There is no way [src] will accept [M]!")) - return + return FALSE if(M.client) if(alert(M,"Would you like to enter cryosleep?", , "Yes", "No") == "Yes") - if(!M || !G || !G.grabbed_thing) return - willing = 1 + if(!M || !G || !G.grabbed_thing) + return FALSE + willing = TRUE else - willing = 1 + willing = TRUE if(willing) @@ -424,7 +426,7 @@ GLOBAL_LIST_INIT(frozen_items, list(SQUAD_MARINE_1 = list(), SQUAD_MARINE_2 = li if(!M || !G || !G.grabbed_thing) return if(occupant) to_chat(user, SPAN_WARNING("[src] is occupied.")) - return + return FALSE go_in_cryopod(M) @@ -434,6 +436,7 @@ GLOBAL_LIST_INIT(frozen_items, list(SQUAD_MARINE_1 = list(), SQUAD_MARINE_2 = li //Despawning occurs when process() is called with an occupant without a client. add_fingerprint(user) + return TRUE /obj/structure/machinery/cryopod/relaymove(mob/user) if(user.is_mob_incapacitated(TRUE)) @@ -517,7 +520,7 @@ GLOBAL_LIST_INIT(frozen_items, list(SQUAD_MARINE_1 = list(), SQUAD_MARINE_2 = li if(mob.client) to_chat(mob, SPAN_NOTICE("You feel cool air surround you. You go numb as your senses turn inward.")) to_chat(mob, SPAN_BOLDNOTICE("If you log out or close your client now, your character will permanently removed from the round in 10 minutes. If you ghost, timer will be decreased to 2 minutes.")) - if(!is_admin_level(src.z)) // Set their queue time now because the client has to actually leave to despawn and at that point the client is lost + if(!should_block_game_interaction(src)) // Set their queue time now because the client has to actually leave to despawn and at that point the client is lost mob.client.player_details.larva_queue_time = max(mob.client.player_details.larva_queue_time, world.time) var/area/location = get_area(src) if(mob.job != GET_MAPPED_ROLE(JOB_SQUAD_MARINE)) @@ -534,6 +537,7 @@ GLOBAL_LIST_INIT(frozen_items, list(SQUAD_MARINE_1 = list(), SQUAD_MARINE_2 = li icon_state = "body_scanner_open" set_light(0) playsound(src, 'sound/machines/pod_open.ogg', 30) + SEND_SIGNAL(src, COMSIG_CRYOPOD_GO_OUT) #ifdef OBJECTS_PROXY_SPEECH // Transfers speech to occupant @@ -552,3 +556,40 @@ GLOBAL_LIST_INIT(frozen_items, list(SQUAD_MARINE_1 = list(), SQUAD_MARINE_2 = li return move_inside(target) + + +/obj/structure/machinery/cryopod/tutorial + silent_exit = TRUE + +/obj/structure/machinery/cryopod/tutorial/process() + return + +/obj/structure/machinery/cryopod/tutorial/go_in_cryopod(mob/mob, silent = FALSE, del_them = TRUE) + if(occupant) + return + mob.forceMove(src) + occupant = mob + icon_state = "body_scanner_closed" + set_light(2) + time_entered = world.time + if(del_them) + despawn_occupant() + +/obj/structure/machinery/cryopod/tutorial/despawn_occupant() + SSminimaps.remove_marker(occupant) + + if(ishuman(occupant)) + var/mob/living/carbon/human/man = occupant + man.species.handle_cryo(man) + + icon_state = "body_scanner_open" + set_light(0) + + + var/mob/new_player/new_player = new + + if(!occupant.mind) + occupant.mind_initialize() + + occupant.mind.transfer_to(new_player) + SEND_SIGNAL(occupant, COMSIG_MOB_END_TUTORIAL) diff --git a/code/game/machinery/deployable.dm b/code/game/machinery/deployable.dm index 687882d9d7ae..7907c9f28985 100644 --- a/code/game/machinery/deployable.dm +++ b/code/game/machinery/deployable.dm @@ -51,11 +51,11 @@ else switch(W.damtype) if("fire") - src.health -= W.force * 0.75 + health -= W.force * W.demolition_mod * 0.75 if("brute") - src.health -= W.force * 0.5 - if (src.health <= 0) - src.explode() + health -= W.force * W.demolition_mod * 0.5 + if (health <= 0) + explode() ..() /obj/structure/machinery/deployable/barrier/ex_act(severity) diff --git a/code/game/machinery/door_control.dm b/code/game/machinery/door_control.dm index 545d4c35bb5a..3f5e78dfc39f 100644 --- a/code/game/machinery/door_control.dm +++ b/code/game/machinery/door_control.dm @@ -176,9 +176,9 @@ flick(initial(icon_state) + "-denied",src) return - // safety first - if(!is_mainship_level(SSshuttle.vehicle_elevator.z)) - flick(initial(icon_state) + "-denied",src) + // If someone's trying to lower the railings but the elevator isn't in the vehicle bay. + if(!desiredstate && !is_mainship_level(SSshuttle.vehicle_elevator.z)) + flick(initial(icon_state) + "-denied", src) // Safety first! return use_power(5) diff --git a/code/game/machinery/door_display/door_display.dm b/code/game/machinery/door_display/door_display.dm index 3f0c53ada18e..4624ba5f1bd2 100644 --- a/code/game/machinery/door_display/door_display.dm +++ b/code/game/machinery/door_display/door_display.dm @@ -35,7 +35,7 @@ if (D.id == id) targets += D - if(targets.len == 0) + if(length(targets) == 0) stat |= BROKEN update_icon() diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index b03ba1e8e195..84f02f0a5bbd 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -76,7 +76,7 @@ GLOBAL_LIST_INIT(airlock_wire_descriptions, list( /obj/structure/machinery/door/airlock/Destroy() QDEL_NULL_LIST(attached_signallers) - QDEL_NULL(closeOther) + closeOther = null QDEL_NULL(electronics) return ..() @@ -677,9 +677,9 @@ GLOBAL_LIST_INIT(airlock_wire_descriptions, list( airlock_electronics = new/obj/item/circuitboard/airlock(loc) if(!req_access || !req_one_access) check_access() - if(req_access.len) + if(length(req_access)) airlock_electronics.conf_access = req_access - else if(req_one_access.len) + else if(length(req_one_access)) airlock_electronics.conf_access = req_one_access airlock_electronics.one_access = TRUE else @@ -754,9 +754,7 @@ GLOBAL_LIST_INIT(airlock_wire_descriptions, list( for(var/turf/turf in locs) for(var/mob/living/M in turf) - if(isborg(M)) - M.apply_damage(DOOR_CRUSH_DAMAGE, BRUTE) - else if(HAS_TRAIT(M, TRAIT_SUPER_STRONG)) + if(HAS_TRAIT(M, TRAIT_SUPER_STRONG)) M.apply_damage(DOOR_CRUSH_DAMAGE, BRUTE) else M.apply_damage(DOOR_CRUSH_DAMAGE, BRUTE) @@ -858,7 +856,8 @@ GLOBAL_LIST_INIT(airlock_wire_descriptions, list( var/datum/effect_system/spark_spread/sparks = new /datum/effect_system/spark_spread sparks.set_up(5, 1, src) sparks.start() - xeno.apply_effect(1, WEAKEN) + xeno.KnockDown(1) + xeno.Stun(1) playsound(src, 'sound/effects/metalhit.ogg', 50, TRUE) xeno.visible_message(SPAN_XENOWARNING("\The [xeno] strikes \the [src] with its tail!"), SPAN_XENOWARNING("You strike \the [src] with your tail!")) diff --git a/code/game/machinery/doors/airlock_control.dm b/code/game/machinery/doors/airlock_control.dm index 57e27cc60d91..b656250dabeb 100644 --- a/code/game/machinery/doors/airlock_control.dm +++ b/code/game/machinery/doors/airlock_control.dm @@ -123,14 +123,16 @@ radio_connection.post_signal(src, signal, range = AIRLOCK_CONTROL_RANGE, filter = RADIO_AIRLOCK) -/obj/structure/machinery/door/airlock/open(surpress_send) +/obj/structure/machinery/door/airlock/open(forced) . = ..() - if(!surpress_send) send_status() + if(!forced) + send_status() -/obj/structure/machinery/door/airlock/close(surpress_send) +/obj/structure/machinery/door/airlock/close(forced) . = ..() - if(!surpress_send) send_status() + if(!forced) + send_status() /obj/structure/machinery/door/airlock/proc/set_frequency(new_frequency) diff --git a/code/game/machinery/doors/brig_system.dm b/code/game/machinery/doors/brig_system.dm index 56cc55828171..74792a610b72 100644 --- a/code/game/machinery/doors/brig_system.dm +++ b/code/game/machinery/doors/brig_system.dm @@ -279,7 +279,7 @@ var/obj/item/card/id/id_card = human.get_idcard() if (id_card) - if ((id_card.paygrade in GLOB.co_paygrades) || (id_card.paygrade in GLOB.highcom_paygrades) || (id_card.paygrade == "PvI")) + if ((id_card.paygrade in GLOB.co_paygrades) || (id_card.paygrade in GLOB.uscm_highcom_paygrades)) return TRUE return FALSE @@ -390,6 +390,14 @@ name = "Cell 4" id = "Cell 4" +/obj/structure/machinery/brig_cell/cell_5 + name = "Cell 5" + id = "Cell 5" + +/obj/structure/machinery/brig_cell/cell_6 + name = "Cell 6" + id = "Cell 6" + /obj/structure/machinery/brig_cell/perma_1 name = "Perma 1" id = "Perma 1" diff --git a/code/game/machinery/doors/door.dm b/code/game/machinery/doors/door.dm index 021cb60769f9..27bb58397956 100644 --- a/code/game/machinery/doors/door.dm +++ b/code/game/machinery/doors/door.dm @@ -214,7 +214,7 @@ flick("door_deny", src) return -/obj/structure/machinery/door/proc/open(forced=0) +/obj/structure/machinery/door/proc/open(forced) if(!density) return TRUE if(operating || !loc) diff --git a/code/game/machinery/doors/firedoor.dm b/code/game/machinery/doors/firedoor.dm index cddd67c7e2b2..f3fba382fb04 100644 --- a/code/game/machinery/doors/firedoor.dm +++ b/code/game/machinery/doors/firedoor.dm @@ -75,7 +75,7 @@ . += SPAN_WARNING("WARNING: Current pressure differential is [pdiff]kPa! Opening door may result in injury!") . += "Sensor readings:" - for(var/index = 1; index <= tile_info.len; index++) + for(var/index = 1; index <= length(tile_info); index++) var/o = "  " switch(index) if(1) @@ -101,10 +101,10 @@ o += "[pressure]kPa" . += o - if(islist(users_to_open) && users_to_open.len) + if(islist(users_to_open) && length(users_to_open)) var/users_to_open_string = users_to_open[1] - if(users_to_open.len >= 2) - for(var/i = 2 to users_to_open.len) + if(length(users_to_open) >= 2) + for(var/i = 2 to length(users_to_open)) users_to_open_string += ", [users_to_open[i]]" . += "These people have opened \the [src] during an alert: [users_to_open_string]." @@ -275,7 +275,7 @@ if(dir_alerts) for(var/d=1;d<=4;d++) var/cdir = GLOB.cardinals[d] - for(var/i=1;i<=ALERT_STATES.len;i++) + for(var/i=1;i<=length(ALERT_STATES);i++) if(dir_alerts[d] & (1<<(i-1))) overlays += new/icon(icon,"alert_[ALERT_STATES[i]]", dir=cdir) else diff --git a/code/game/machinery/doors/multi_tile.dm b/code/game/machinery/doors/multi_tile.dm index 0a179af27803..f95ef09e812f 100644 --- a/code/game/machinery/doors/multi_tile.dm +++ b/code/game/machinery/doors/multi_tile.dm @@ -241,13 +241,46 @@ no_panel = 1 not_weldable = 1 var/queen_pryable = TRUE + var/obj/docking_port/mobile/marine_dropship/linked_dropship + /obj/structure/machinery/door/airlock/multi_tile/almayer/dropshiprear/ex_act(severity) return +/obj/structure/machinery/door/airlock/multi_tile/almayer/dropshiprear/attackby(obj/item/item, mob/user) + if(HAS_TRAIT(item, TRAIT_TOOL_MULTITOOL)) + var/direction + switch(id) + if("starboard_door") + direction = "starboard" + if("port_door") + direction = "port" + if("aft_door") + direction = "aft" + if(!linked_dropship || !linked_dropship.door_control.door_controllers[direction]) + return ..() + var/datum/door_controller/single/control = linked_dropship.door_control.door_controllers[direction] + if (control.status != SHUTTLE_DOOR_BROKEN) + return ..() + if(!skillcheck(user, SKILL_ENGINEER, SKILL_ENGINEER_ENGI) && !skillcheck(user, SKILL_PILOT, SKILL_PILOT_TRAINED)) + to_chat(user, SPAN_WARNING("You don't seem to understand how to restore a remote connection to [src].")) + return + if(user.action_busy) + return + + to_chat(user, SPAN_WARNING("You begin to restore the remote connection to [src].")) + if(!do_after(user, (skillcheck(user, SKILL_ENGINEER, SKILL_ENGINEER_ENGI) ? 5 SECONDS : 8 SECONDS), INTERRUPT_ALL, BUSY_ICON_BUILD)) + to_chat(user, SPAN_WARNING("You fail to restore a remote connection to [src].")) + return + unlock(TRUE) + close(FALSE) + control.status = SHUTTLE_DOOR_UNLOCKED + to_chat(user, SPAN_WARNING("You successfully restored the remote connection to [src].")) + return + ..() -/obj/structure/machinery/door/airlock/multi_tile/almayer/dropshiprear/unlock() - if(is_reserved_level(z)) +/obj/structure/machinery/door/airlock/multi_tile/almayer/dropshiprear/unlock(forced=FALSE) + if(is_reserved_level(z) && !forced) return // in orbit ..() @@ -258,13 +291,34 @@ if(!queen_pryable) return ..() - if(!locked) - return ..() - - to_chat(xeno, SPAN_NOTICE("You try and force the doors open")) + if(xeno.action_busy) + return + + if(is_reserved_level(z)) //no prying in space even though it's funny + return + + var/direction + switch(id) + if("starboard_door") + direction = "starboard" + if("port_door") + direction = "port" + if("aft_door") + direction = "aft" + var/datum/door_controller/single/control + if(linked_dropship && linked_dropship.door_control.door_controllers[direction]) + control = linked_dropship.door_control.door_controllers[direction] + + if(control && control.status == SHUTTLE_DOOR_BROKEN) + to_chat(xeno, SPAN_NOTICE("The door is already disabled.")) + return + + to_chat(xeno, SPAN_WARNING("You try and force the doors open!")) if(do_after(xeno, 3 SECONDS, INTERRUPT_ALL, BUSY_ICON_HOSTILE)) + if(control) + control.status = SHUTTLE_DOOR_BROKEN unlock(TRUE) - open(1) + open(TRUE) lock(TRUE) /obj/structure/machinery/door/airlock/multi_tile/almayer/dropshiprear/ds1 @@ -336,7 +390,7 @@ continue INVOKE_ASYNC(atom_movable, TYPE_PROC_REF(/atom/movable, throw_atom), projected, 1, SPEED_FAST, null, FALSE) -/obj/structure/machinery/door/airlock/multi_tile/almayer/dropshiprear/lifeboat/connect_to_shuttle(obj/docking_port/mobile/port, obj/docking_port/stationary/dock, idnum, override) +/obj/structure/machinery/door/airlock/multi_tile/almayer/dropshiprear/lifeboat/connect_to_shuttle(mapload, obj/docking_port/mobile/port, obj/docking_port/stationary/dock) . = ..() if(istype(port, /obj/docking_port/mobile/crashable/lifeboat)) var/obj/docking_port/mobile/crashable/lifeboat/lifeboat = port @@ -569,4 +623,3 @@ icon = 'icons/obj/structures/doors/2x1almayerdoor_glass.dmi' opacity = FALSE glass = TRUE - diff --git a/code/game/machinery/doors/poddoor.dm b/code/game/machinery/doors/poddoor.dm deleted file mode 100644 index 0a3b873ce385..000000000000 --- a/code/game/machinery/doors/poddoor.dm +++ /dev/null @@ -1,319 +0,0 @@ - -/obj/structure/machinery/door/poddoor - name = "\improper Podlock" - desc = "That looks like it doesn't open easily." - icon = 'icons/obj/structures/doors/rapid_pdoor.dmi' - icon_state = "pdoor1" - var/base_icon_state = "pdoor" - id = 1 - dir = NORTH - unslashable = TRUE - health = 0 - layer = PODDOOR_CLOSED_LAYER - open_layer = PODDOOR_OPEN_LAYER - closed_layer = PODDOOR_CLOSED_LAYER - -/obj/structure/machinery/door/poddoor/Initialize() - . = ..() - if(density) - set_opacity(1) - else - set_opacity(0) - update_icon() - -/obj/structure/machinery/door/poddoor/update_icon() - if(density) - icon_state = "[base_icon_state]1" - else - icon_state = "[base_icon_state]0" - -/obj/structure/machinery/door/poddoor/Collided(atom/movable/AM) - if(!density) - return ..() - else - return 0 - -/obj/structure/machinery/door/poddoor/attackby(obj/item/W, mob/user) - add_fingerprint(user) - if(!W.pry_capable) - return - if(density && (stat & NOPOWER) && !operating && !unacidable) - spawn(0) - operating = 1 - flick("[base_icon_state]c0", src) - icon_state = "[base_icon_state]0" - set_opacity(0) - sleep(15) - density = FALSE - operating = 0 - -/obj/structure/machinery/door/poddoor/attack_alien(mob/living/carbon/xenomorph/X) - if((stat & NOPOWER) && density && !operating && !unacidable) - INVOKE_ASYNC(src, PROC_REF(pry_open), X) - return XENO_ATTACK_ACTION - -/obj/structure/machinery/door/poddoor/proc/pry_open(mob/living/carbon/xenomorph/X, time = 4 SECONDS) - X.visible_message(SPAN_DANGER("[X] begins prying [src] open."),\ - SPAN_XENONOTICE("You start prying [src] open."), max_distance = 3) - - playsound(loc, 'sound/effects/metal_creaking.ogg', 25, TRUE) - - if(!do_after(X, time, INTERRUPT_ALL, BUSY_ICON_HOSTILE, src, INTERRUPT_ALL)) - to_chat(X, "You stop prying [src] open.") - return - - X.visible_message(SPAN_DANGER("[X] pries open [src]."), \ - SPAN_XENONOTICE("You pry open [src]."), max_distance = 3) - - open() - return TRUE - - -/obj/structure/machinery/door/poddoor/try_to_activate_door(mob/user) - return - -/obj/structure/machinery/door/poddoor/open() - if(operating) //doors can still open when emag-disabled - return - - if(!opacity) - return TRUE - - operating = TRUE - - playsound(loc, 'sound/machines/blastdoor.ogg', 20, 0) - flick("[base_icon_state]c0", src) - icon_state = "[base_icon_state]0" - set_opacity(0) - - addtimer(CALLBACK(src, PROC_REF(finish_open)), openspeed) - return TRUE - -/obj/structure/machinery/door/poddoor/close() - if(operating) - return - if(opacity == initial(opacity)) - return - - operating = TRUE - playsound(loc, 'sound/machines/blastdoor.ogg', 20, 0) - - layer = closed_layer - flick("[base_icon_state]c1", src) - icon_state = "[base_icon_state]1" - density = TRUE - set_opacity(initial(opacity)) - - addtimer(CALLBACK(src, PROC_REF(finish_close)), openspeed) - return - -/obj/structure/machinery/door/poddoor/finish_close() - operating = FALSE - -/obj/structure/machinery/door/poddoor/two_tile/open() - if(operating) //doors can still open when emag-disabled - return - - operating = TRUE - start_opening() - - addtimer(CALLBACK(src, PROC_REF(open_fully)), openspeed) - return TRUE - -/obj/structure/machinery/door/poddoor/two_tile/proc/start_opening() - flick("[base_icon_state]c0", src) - icon_state = "[base_icon_state]0" - set_opacity(0) - f1.set_opacity(0) - f2.set_opacity(0) - -/obj/structure/machinery/door/poddoor/two_tile/four_tile/start_opening() - f3.set_opacity(0) - f4.set_opacity(0) - ..() - -/obj/structure/machinery/door/poddoor/two_tile/proc/open_fully() - density = FALSE - f1.density = FALSE - f2.density = FALSE - - if(operating == 1) //emag again - operating = 0 - if(autoclose) - addtimer(CALLBACK(src, PROC_REF(autoclose)), 15 SECONDS) - -/obj/structure/machinery/door/poddoor/two_tile/four_tile/open_fully() - f3.density = FALSE - f4.density = FALSE - ..() - -/obj/structure/machinery/door/poddoor/two_tile/close() - if(operating) - return - start_closing() - addtimer(CALLBACK(src, PROC_REF(close_fully)), openspeed) - return - -/obj/structure/machinery/door/poddoor/two_tile/proc/start_closing() - operating = 1 - flick("[base_icon_state]c1", src) - icon_state = "[base_icon_state]1" - - density = TRUE - f1.density = TRUE - f2.density = TRUE - -/obj/structure/machinery/door/poddoor/two_tile/four_tile/start_closing() - f3.density = TRUE - f4.density = TRUE - ..() - -/obj/structure/machinery/door/poddoor/two_tile/proc/close_fully() - set_opacity(initial(opacity)) - f1.set_opacity(initial(opacity)) - f2.set_opacity(initial(opacity)) - operating = 0 - -/obj/structure/machinery/door/poddoor/two_tile/four_tile/close_fully() - f3.set_opacity(initial(opacity)) - f4.set_opacity(initial(opacity)) - ..() - -/obj/structure/machinery/door/poddoor/two_tile - dir = EAST - icon = 'icons/obj/structures/doors/1x2blast_hor.dmi' - var/obj/structure/machinery/door/poddoor/filler_object/f1 - var/obj/structure/machinery/door/poddoor/filler_object/f2 - -/obj/structure/machinery/door/poddoor/two_tile/opened - density = FALSE - -/obj/structure/machinery/door/poddoor/two_tile/Initialize() - . = ..() - f1 = new/obj/structure/machinery/door/poddoor/filler_object (loc) - f2 = new/obj/structure/machinery/door/poddoor/filler_object (get_step(src,dir)) - f1.density = density - f2.density = density - f1.set_opacity(opacity) - f2.set_opacity(opacity) - -/obj/structure/machinery/door/poddoor/two_tile/Destroy() - QDEL_NULL(f1) - QDEL_NULL(f2) - return ..() - -/obj/structure/machinery/door/poddoor/two_tile/vertical - dir = NORTH - icon = 'icons/obj/structures/doors/1x2blast_vert.dmi' - -/obj/structure/machinery/door/poddoor/two_tile/vertical/open - density = FALSE - -/obj/structure/machinery/door/poddoor/two_tile/four_tile - icon = 'icons/obj/structures/doors/1x4blast_hor.dmi' - var/obj/structure/machinery/door/poddoor/filler_object/f3 - var/obj/structure/machinery/door/poddoor/filler_object/f4 - -/obj/structure/machinery/door/poddoor/two_tile/four_tile/open - density = FALSE - -/obj/structure/machinery/door/poddoor/two_tile/four_tile/Initialize() - . = ..() - f3 = new/obj/structure/machinery/door/poddoor/filler_object (get_step(f2,dir)) - f4 = new/obj/structure/machinery/door/poddoor/filler_object (get_step(f3,dir)) - f3.density = density - f4.density = density - f3.set_opacity(opacity) - f4.set_opacity(opacity) - -/obj/structure/machinery/door/poddoor/two_tile/four_tile/Destroy() - QDEL_NULL(f3) - QDEL_NULL(f4) - return ..() - -/obj/structure/machinery/door/poddoor/two_tile/four_tile/vertical - dir = NORTH - icon = 'icons/obj/structures/doors/1x4blast_vert.dmi' - -/obj/structure/machinery/door/poddoor/two_tile/four_tile/vertical/opened - density = FALSE - -/obj/structure/machinery/door/poddoor/filler_object - name = "" - icon = null - icon_state = "" - unslashable = TRUE - unacidable = TRUE - -/obj/structure/machinery/door/poddoor/two_tile/four_tile/secure - icon = 'icons/obj/structures/doors/1x4blast_hor_secure.dmi' - openspeed = 17 - unslashable = TRUE - unacidable = TRUE - -/obj/structure/machinery/door/poddoor/two_tile/four_tile/secure/opened - density = FALSE - -/obj/structure/machinery/door/poddoor/two_tile/four_tile/vertical/secure - icon = 'icons/obj/structures/doors/1x4blast_vert_secure.dmi' - openspeed = 17 - unslashable = TRUE - unacidable = TRUE - -/obj/structure/machinery/door/poddoor/two_tile/four_tile/vertical/secure/open - density = FALSE - -/obj/structure/machinery/door/poddoor/two_tile/secure - icon = 'icons/obj/structures/doors/1x2blast_hor.dmi' - openspeed = 17 - unslashable = TRUE - unacidable = TRUE - -/obj/structure/machinery/door/poddoor/two_tile/vertical/secure - icon = 'icons/obj/structures/doors/1x2blast_vert.dmi' - openspeed = 17 - unacidable = TRUE - -/obj/structure/machinery/door/poddoor/almayer - icon = 'icons/obj/structures/doors/blastdoors_shutters.dmi' - openspeed = 4 //shorter open animation. - var/vehicle_resistant = FALSE - tiles_with = list( - /obj/structure/window/framed/almayer, - /obj/structure/machinery/door/airlock, - ) - -/obj/structure/machinery/door/poddoor/almayer/open - density = FALSE -/obj/structure/machinery/door/poddoor/almayer/blended - icon_state = "almayer_pdoor1" - base_icon_state = "almayer_pdoor" -/obj/structure/machinery/door/poddoor/almayer/blended/open - density = FALSE -/obj/structure/machinery/door/poddoor/almayer/blended/white - icon_state = "w_almayer_pdoor1" - base_icon_state = "w_almayer_pdoor" -/obj/structure/machinery/door/poddoor/almayer/blended/white/open - density = FALSE - -/obj/structure/machinery/door/poddoor/almayer/Initialize() - . = ..() - addtimer(CALLBACK(src, TYPE_PROC_REF(/atom, relativewall_neighbours)), 10) - -/obj/structure/machinery/door/poddoor/almayer/locked - unslashable = TRUE - unacidable = TRUE - -/obj/structure/machinery/door/poddoor/almayer/locked/attackby(obj/item/C as obj, mob/user as mob) - if(HAS_TRAIT(C, TRAIT_TOOL_CROWBAR)) - return - ..() - -/obj/structure/machinery/door/poddoor/almayer/closed - density = TRUE - opacity = TRUE - -/obj/structure/machinery/door/poddoor/almayer/planet_side_blastdoor - density = TRUE - opacity = TRUE - vehicle_resistant = TRUE diff --git a/code/game/machinery/doors/poddoor/almayer.dm b/code/game/machinery/doors/poddoor/almayer.dm new file mode 100644 index 000000000000..2b296412df7d --- /dev/null +++ b/code/game/machinery/doors/poddoor/almayer.dm @@ -0,0 +1,65 @@ +/obj/structure/machinery/door/poddoor/almayer + icon = 'icons/obj/structures/doors/blastdoors_shutters.dmi' + openspeed = 4 //shorter open animation. + var/vehicle_resistant = FALSE + tiles_with = list( + /obj/structure/window/framed/almayer, + /obj/structure/machinery/door/airlock, + ) + +/obj/structure/machinery/door/poddoor/almayer/Initialize() + . = ..() + return INITIALIZE_HINT_LATELOAD + +/obj/structure/machinery/door/poddoor/almayer/LateInitialize() + . = ..() + relativewall_neighbours() + +/obj/structure/machinery/door/poddoor/almayer/open + density = FALSE + +/obj/structure/machinery/door/poddoor/almayer/blended + icon_state = "almayer_pdoor1" + base_icon_state = "almayer_pdoor" + +/obj/structure/machinery/door/poddoor/almayer/blended/open + density = FALSE + +/obj/structure/machinery/door/poddoor/almayer/blended/white + icon_state = "w_almayer_pdoor1" + base_icon_state = "w_almayer_pdoor" + +/obj/structure/machinery/door/poddoor/almayer/blended/white/open + density = FALSE + +/obj/structure/machinery/door/poddoor/almayer/blended/aicore + icon_state = "aidoor1" + base_icon_state = "aidoor" + +/obj/structure/machinery/door/poddoor/almayer/blended/aicore/open + density = FALSE + +/obj/structure/machinery/door/poddoor/almayer/blended/white_aicore + icon_state = "w_aidoor1" + base_icon_state = "w_aidoor" + +/obj/structure/machinery/door/poddoor/almayer/blended/white_aicore/open + density = FALSE + +/obj/structure/machinery/door/poddoor/almayer/locked + unslashable = TRUE + unacidable = TRUE + +/obj/structure/machinery/door/poddoor/almayer/locked/attackby(obj/item/C as obj, mob/user as mob) + if(HAS_TRAIT(C, TRAIT_TOOL_CROWBAR)) + return + ..() + +/obj/structure/machinery/door/poddoor/almayer/closed + density = TRUE + opacity = TRUE + +/obj/structure/machinery/door/poddoor/almayer/planet_side_blastdoor + density = TRUE + opacity = TRUE + vehicle_resistant = TRUE diff --git a/code/game/machinery/doors/poddoor/poddoor.dm b/code/game/machinery/doors/poddoor/poddoor.dm new file mode 100644 index 000000000000..84bc8d91cd69 --- /dev/null +++ b/code/game/machinery/doors/poddoor/poddoor.dm @@ -0,0 +1,117 @@ +/obj/structure/machinery/door/poddoor + name = "\improper Podlock" + desc = "That looks like it doesn't open easily." + icon = 'icons/obj/structures/doors/rapid_pdoor.dmi' + icon_state = "pdoor1" + var/base_icon_state = "pdoor" + id = 1 + dir = NORTH + unslashable = TRUE + health = 0 + layer = PODDOOR_CLOSED_LAYER + open_layer = PODDOOR_OPEN_LAYER + closed_layer = PODDOOR_CLOSED_LAYER + +/obj/structure/machinery/door/poddoor/Initialize() + . = ..() + if(density) + set_opacity(1) + else + set_opacity(0) + update_icon() + +/obj/structure/machinery/door/poddoor/update_icon() + if(density) + icon_state = "[base_icon_state]1" + else + icon_state = "[base_icon_state]0" + +/obj/structure/machinery/door/poddoor/Collided(atom/movable/AM) + if(!density) + return ..() + else + return 0 + +/obj/structure/machinery/door/poddoor/attackby(obj/item/W, mob/user) + add_fingerprint(user) + if(!W.pry_capable) + return + if(density && (stat & NOPOWER) && !operating && !unacidable) + spawn(0) + operating = 1 + flick("[base_icon_state]c0", src) + icon_state = "[base_icon_state]0" + set_opacity(0) + sleep(15) + density = FALSE + operating = 0 + +/obj/structure/machinery/door/poddoor/attack_alien(mob/living/carbon/xenomorph/X) + if((stat & NOPOWER) && density && !operating && !unacidable) + INVOKE_ASYNC(src, PROC_REF(pry_open), X) + return XENO_ATTACK_ACTION + +/obj/structure/machinery/door/poddoor/proc/pry_open(mob/living/carbon/xenomorph/X, time = 4 SECONDS) + X.visible_message(SPAN_DANGER("[X] begins prying [src] open."),\ + SPAN_XENONOTICE("You start prying [src] open."), max_distance = 3) + + playsound(loc, 'sound/effects/metal_creaking.ogg', 25, TRUE) + + if(!do_after(X, time, INTERRUPT_ALL, BUSY_ICON_HOSTILE, src, INTERRUPT_ALL)) + to_chat(X, "You stop prying [src] open.") + return + + X.visible_message(SPAN_DANGER("[X] pries open [src]."), \ + SPAN_XENONOTICE("You pry open [src]."), max_distance = 3) + + open() + return TRUE + + +/obj/structure/machinery/door/poddoor/try_to_activate_door(mob/user) + return + +/obj/structure/machinery/door/poddoor/open() + if(operating) //doors can still open when emag-disabled + return + + if(!opacity) + return TRUE + + operating = TRUE + + playsound(loc, 'sound/machines/blastdoor.ogg', 20, 0) + flick("[base_icon_state]c0", src) + icon_state = "[base_icon_state]0" + set_opacity(0) + + addtimer(CALLBACK(src, PROC_REF(finish_open)), openspeed) + return TRUE + +/obj/structure/machinery/door/poddoor/close() + if(operating) + return + if(opacity == initial(opacity)) + return + + operating = TRUE + playsound(loc, 'sound/machines/blastdoor.ogg', 20, 0) + + layer = closed_layer + flick("[base_icon_state]c1", src) + icon_state = "[base_icon_state]1" + density = TRUE + set_opacity(initial(opacity)) + + addtimer(CALLBACK(src, PROC_REF(finish_close)), openspeed) + return + +/obj/structure/machinery/door/poddoor/finish_close() + operating = FALSE + +/obj/structure/machinery/door/poddoor/filler_object + name = "" + icon = null + icon_state = "" + unslashable = TRUE + unacidable = TRUE diff --git a/code/game/machinery/doors/shutters.dm b/code/game/machinery/doors/poddoor/shutters/shutters.dm similarity index 88% rename from code/game/machinery/doors/shutters.dm rename to code/game/machinery/doors/poddoor/shutters/shutters.dm index 2cc85ce53ac8..f91f1f48cade 100644 --- a/code/game/machinery/doors/shutters.dm +++ b/code/game/machinery/doors/poddoor/shutters/shutters.dm @@ -156,9 +156,30 @@ return ..() +/obj/structure/machinery/door/poddoor/shutters/almayer/uniform_vendors/antitheft + name = "Anti-Theft Shutters" + desc = "Secure Storage shutters, they're reinforced against entry attempts." + var/req_level = SEC_LEVEL_RED + +/obj/structure/machinery/door/poddoor/shutters/almayer/uniform_vendors/antitheft/Initialize() + . = ..() + if(is_mainship_level(z)) + RegisterSignal(SSdcs, COMSIG_GLOB_SECURITY_LEVEL_CHANGED, PROC_REF(sec_changed)) + +/obj/structure/machinery/door/poddoor/shutters/almayer/uniform_vendors/antitheft/proc/sec_changed(datum/source, new_sec) + SIGNAL_HANDLER + if(new_sec < req_level) + if(density) + return + close() + else + if(!density) + return + open() + //make a subtype for CL office so it as a proper name. /obj/structure/machinery/door/poddoor/shutters/almayer/cl - name = "\improper Corporate Liason Privacy Shutters" + name = "\improper Corporate Liaison Privacy Shutters" //adding a subtype for CL office to use to secure access to cl office. /obj/structure/machinery/door/poddoor/shutters/almayer/cl/office /obj/structure/machinery/door/poddoor/shutters/almayer/cl/office/door diff --git a/code/game/machinery/doors/poddoor/two_tile.dm b/code/game/machinery/doors/poddoor/two_tile.dm new file mode 100644 index 000000000000..f04435bbe2ae --- /dev/null +++ b/code/game/machinery/doors/poddoor/two_tile.dm @@ -0,0 +1,156 @@ +/obj/structure/machinery/door/poddoor/two_tile + dir = EAST + icon = 'icons/obj/structures/doors/1x2blast_hor.dmi' + var/obj/structure/machinery/door/poddoor/filler_object/f1 + var/obj/structure/machinery/door/poddoor/filler_object/f2 + +/obj/structure/machinery/door/poddoor/two_tile/opened + density = FALSE + +/obj/structure/machinery/door/poddoor/two_tile/Initialize() + . = ..() + f1 = new/obj/structure/machinery/door/poddoor/filler_object (loc) + f2 = new/obj/structure/machinery/door/poddoor/filler_object (get_step(src,dir)) + f1.density = density + f2.density = density + f1.set_opacity(opacity) + f2.set_opacity(opacity) + +/obj/structure/machinery/door/poddoor/two_tile/Destroy() + QDEL_NULL(f1) + QDEL_NULL(f2) + return ..() + +/obj/structure/machinery/door/poddoor/two_tile/open() + if(operating) //doors can still open when emag-disabled + return + + operating = TRUE + start_opening() + + addtimer(CALLBACK(src, PROC_REF(open_fully)), openspeed) + return TRUE + +/obj/structure/machinery/door/poddoor/two_tile/proc/start_opening() + flick("[base_icon_state]c0", src) + icon_state = "[base_icon_state]0" + set_opacity(0) + f1.set_opacity(0) + f2.set_opacity(0) + +/obj/structure/machinery/door/poddoor/two_tile/four_tile/start_opening() + f3.set_opacity(0) + f4.set_opacity(0) + ..() + +/obj/structure/machinery/door/poddoor/two_tile/proc/open_fully() + density = FALSE + f1.density = FALSE + f2.density = FALSE + + if(operating == 1) //emag again + operating = 0 + if(autoclose) + addtimer(CALLBACK(src, PROC_REF(autoclose)), 15 SECONDS) + +/obj/structure/machinery/door/poddoor/two_tile/four_tile/open_fully() + f3.density = FALSE + f4.density = FALSE + ..() + +/obj/structure/machinery/door/poddoor/two_tile/close() + if(operating) + return + start_closing() + addtimer(CALLBACK(src, PROC_REF(close_fully)), openspeed) + return + +/obj/structure/machinery/door/poddoor/two_tile/proc/start_closing() + operating = 1 + flick("[base_icon_state]c1", src) + icon_state = "[base_icon_state]1" + + density = TRUE + f1.density = TRUE + f2.density = TRUE + +/obj/structure/machinery/door/poddoor/two_tile/four_tile/start_closing() + f3.density = TRUE + f4.density = TRUE + ..() + +/obj/structure/machinery/door/poddoor/two_tile/proc/close_fully() + set_opacity(initial(opacity)) + f1.set_opacity(initial(opacity)) + f2.set_opacity(initial(opacity)) + operating = 0 + +/obj/structure/machinery/door/poddoor/two_tile/four_tile/close_fully() + f3.set_opacity(initial(opacity)) + f4.set_opacity(initial(opacity)) + ..() + +/obj/structure/machinery/door/poddoor/two_tile/vertical + dir = NORTH + icon = 'icons/obj/structures/doors/1x2blast_vert.dmi' + +/obj/structure/machinery/door/poddoor/two_tile/vertical/open + density = FALSE + +/obj/structure/machinery/door/poddoor/two_tile/four_tile + icon = 'icons/obj/structures/doors/1x4blast_hor.dmi' + var/obj/structure/machinery/door/poddoor/filler_object/f3 + var/obj/structure/machinery/door/poddoor/filler_object/f4 + +/obj/structure/machinery/door/poddoor/two_tile/four_tile/open + density = FALSE + +/obj/structure/machinery/door/poddoor/two_tile/four_tile/Initialize() + . = ..() + f3 = new/obj/structure/machinery/door/poddoor/filler_object (get_step(f2,dir)) + f4 = new/obj/structure/machinery/door/poddoor/filler_object (get_step(f3,dir)) + f3.density = density + f4.density = density + f3.set_opacity(opacity) + f4.set_opacity(opacity) + +/obj/structure/machinery/door/poddoor/two_tile/four_tile/Destroy() + QDEL_NULL(f3) + QDEL_NULL(f4) + return ..() + +/obj/structure/machinery/door/poddoor/two_tile/four_tile/vertical + dir = NORTH + icon = 'icons/obj/structures/doors/1x4blast_vert.dmi' + +/obj/structure/machinery/door/poddoor/two_tile/four_tile/vertical/opened + density = FALSE + +/obj/structure/machinery/door/poddoor/two_tile/four_tile/secure + icon = 'icons/obj/structures/doors/1x4blast_hor_secure.dmi' + openspeed = 17 + unslashable = TRUE + unacidable = TRUE + +/obj/structure/machinery/door/poddoor/two_tile/four_tile/secure/opened + density = FALSE + +/obj/structure/machinery/door/poddoor/two_tile/four_tile/vertical/secure + icon = 'icons/obj/structures/doors/1x4blast_vert_secure.dmi' + openspeed = 17 + unslashable = TRUE + unacidable = TRUE + +/obj/structure/machinery/door/poddoor/two_tile/four_tile/vertical/secure/open + density = FALSE + +/obj/structure/machinery/door/poddoor/two_tile/secure + icon = 'icons/obj/structures/doors/1x2blast_hor.dmi' + openspeed = 17 + unslashable = TRUE + unacidable = TRUE + +/obj/structure/machinery/door/poddoor/two_tile/vertical/secure + icon = 'icons/obj/structures/doors/1x2blast_vert.dmi' + openspeed = 17 + unacidable = TRUE diff --git a/code/game/machinery/doors/windowdoor.dm b/code/game/machinery/doors/windowdoor.dm index bd544c5c3f5a..61727d1fa471 100644 --- a/code/game/machinery/doors/windowdoor.dm +++ b/code/game/machinery/doors/windowdoor.dm @@ -15,7 +15,7 @@ /obj/structure/machinery/door/window/Initialize() . = ..() addtimer(CALLBACK(src, PROC_REF(update_icon)), 1) - if (src.req_access && src.req_access.len) + if (LAZYLEN(src.req_access)) src.icon_state = "[src.icon_state]" src.base_state = src.icon_state @@ -105,9 +105,9 @@ ae = new/obj/item/circuitboard/airlock( src.loc ) if(!src.req_access) src.check_access() - if(src.req_access.len) + if(length(src.req_access)) ae.conf_access = src.req_access - else if (src.req_one_access && src.req_one_access.len) + else if (LAZYLEN(src.req_one_access)) ae.conf_access = src.req_one_access ae.one_access = 1 else @@ -125,7 +125,7 @@ /obj/structure/machinery/door/window/bullet_act(obj/projectile/Proj) bullet_ping(Proj) if(Proj.ammo.damage) - take_damage(round(Proj.ammo.damage / 2)) + take_damage(floor(Proj.ammo.damage / 2)) if(Proj.ammo.damage_type == BRUTE) playsound(src.loc, 'sound/effects/Glasshit.ogg', 25, 1) return 1 @@ -189,9 +189,9 @@ ae = new/obj/item/circuitboard/airlock( src.loc ) if(!src.req_access) src.check_access() - if(src.req_access.len) + if(length(src.req_access)) ae.conf_access = src.req_access - else if (src.req_one_access.len) + else if (length(src.req_one_access)) ae.conf_access = src.req_one_access ae.one_access = 1 else @@ -295,12 +295,12 @@ /obj/structure/machinery/door/window/ultra/Initialize(mapload, ...) . = ..() - GLOB.hijack_deletable_windows += src - -/obj/structure/machinery/door/window/ultra/Destroy() - GLOB.hijack_deletable_windows -= src - return ..() + if(is_mainship_level(z)) + RegisterSignal(SSdcs, COMSIG_GLOB_HIJACK_IMPACTED, PROC_REF(impact)) // No damage taken. /obj/structure/machinery/door/window/ultra/attackby(obj/item/I, mob/user) return try_to_activate_door(user) + +/obj/structure/machinery/door/window/ultra/proc/impact() + qdel(src) diff --git a/code/game/machinery/fax_machine.dm b/code/game/machinery/fax_machine.dm index 4a5c62b1f9a0..b15117bb2554 100644 --- a/code/game/machinery/fax_machine.dm +++ b/code/game/machinery/fax_machine.dm @@ -6,7 +6,10 @@ GLOBAL_LIST_EMPTY(alldepartments) #define DEPARTMENT_CMB "CMB Incident Command Center, Local Operations" #define DEPARTMENT_PROVOST "USCM Provost Office" #define DEPARTMENT_PRESS "Various Press Organizations" -#define HIGHCOM_DEPARTMENTS list(DEPARTMENT_WY, DEPARTMENT_HC, DEPARTMENT_CMB, DEPARTMENT_PROVOST, DEPARTMENT_PRESS) +#define DEPARTMENT_TWE "Three World Empire" +#define DEPARTMENT_UPP "Union of Progress Peoples" +#define DEPARTMENT_CLF "Colonial Liberation Front" +#define HIGHCOM_DEPARTMENTS list(DEPARTMENT_WY, DEPARTMENT_HC, DEPARTMENT_CMB, DEPARTMENT_PROVOST, DEPARTMENT_PRESS, DEPARTMENT_TWE, DEPARTMENT_UPP, DEPARTMENT_CLF) /obj/structure/machinery/faxmachine // why not fax_machine? name = "\improper General Purpose Fax Machine" @@ -84,7 +87,7 @@ GLOBAL_LIST_EMPTY(alldepartments) else to_chat(user, SPAN_NOTICE("\The [src] jammed! It can only accept up to five papers at once.")) playsound(src, "sound/machines/terminal_insert_disc.ogg", 50, TRUE) - flick("faxsend", src) + flick("[initial(icon_state)]send", src) updateUsrDialog() return @@ -138,6 +141,13 @@ GLOBAL_LIST_EMPTY(alldepartments) GLOB.alldepartments += DEPARTMENT_CMB if(!(DEPARTMENT_PRESS in GLOB.alldepartments)) GLOB.alldepartments += DEPARTMENT_PRESS + if(!(DEPARTMENT_TWE in GLOB.alldepartments)) + GLOB.alldepartments += DEPARTMENT_TWE + if(!(DEPARTMENT_UPP in GLOB.alldepartments)) + GLOB.alldepartments += DEPARTMENT_UPP + if(!(DEPARTMENT_CLF in GLOB.alldepartments)) + GLOB.alldepartments += DEPARTMENT_CLF + // TGUI SHIT \\ /obj/structure/machinery/faxmachine/tgui_interact(mob/user, datum/tgui/ui) @@ -235,7 +245,7 @@ GLOBAL_LIST_EMPTY(alldepartments) else to_chat(ui.user, SPAN_NOTICE("\The [src] jammed! It can only accept up to five papers at once.")) playsound(src, "sound/machines/terminal_insert_disc.ogg", 50, TRUE) - flick("faxsend", src) + flick("[initial(icon_state)]send", src) . = TRUE if("ejectid") @@ -277,9 +287,12 @@ GLOBAL_LIST_EMPTY(alldepartments) . = ..() . += "" . += "" - . += "" + . += "" . += "" . += "" + . += "" + . += "" + . += "" // converting whatever type the fax is into a single paper with all the information on it. /obj/structure/machinery/faxmachine/proc/copy_fax_paper(mob/living/user) @@ -339,13 +352,22 @@ GLOBAL_LIST_EMPTY(alldepartments) GLOB.CMBFaxes.Add("\['[original_fax.name]' from [key_name(usr)], [scan] at [time2text(world.timeofday, "hh:mm:ss")]\] REPLY") msg_admin += "(RPLY): " if(DEPARTMENT_WY) - GLOB.WYFaxes.Add("\['[original_fax.name]' from [key_name(usr)], [scan] at [time2text(world.timeofday, "hh:mm:ss")]\] REPLY") - msg_admin += "(RPLY): " + GLOB.WYFaxes.Add("\['[original_fax.name]' from [key_name(usr)], [scan] at [time2text(world.timeofday, "hh:mm:ss")]\] REPLY") + msg_admin += "(RPLY): " if(DEPARTMENT_PRESS) GLOB.PressFaxes.Add("\['[original_fax.name]' from [key_name(usr)], [scan] at [time2text(world.timeofday, "hh:mm:ss")]\] REPLY") msg_admin += "(RPLY): " + if(DEPARTMENT_TWE) + GLOB.TWEFaxes.Add("\['[original_fax.name]' from [key_name(usr)], [scan] at [time2text(world.timeofday, "hh:mm:ss")]\] REPLY") + msg_admin += "(RPLY): " + if(DEPARTMENT_UPP) + GLOB.UPPFaxes.Add("\['[original_fax.name]' from [key_name(usr)], [scan] at [time2text(world.timeofday, "hh:mm:ss")]\] REPLY") + msg_admin += "(RPLY): " + if(DEPARTMENT_CLF) + GLOB.CLFFaxes.Add("\['[original_fax.name]' from [key_name(usr)], [scan] at [time2text(world.timeofday, "hh:mm:ss")]\] REPLY") + msg_admin += "(RPLY): " else - GLOB.GeneralFaxes.Add("\['[original_fax.name]' from [key_name(usr)], [scan] at [time2text(world.timeofday, "hh:mm:ss")]\] REPLY") + GLOB.GeneralFaxes.Add("\['[original_fax.name]' from [key_name(usr)], [scan] at [time2text(world.timeofday, "hh:mm:ss")]\] REPLY") msg_admin += "(RPLY): " msg_admin += SPAN_STAFF_IC("Receiving fax via secure connection ... view message") @@ -365,7 +387,8 @@ GLOBAL_LIST_EMPTY(alldepartments) to_chat(C, msg_admin) else to_chat(C, msg_ghost) - C << 'sound/effects/sos-morse-code.ogg' + if(C.prefs?.toggles_sound & SOUND_FAX_MACHINE) + C << 'sound/effects/incoming-fax.ogg' if(msg_ghost) for(var/i in GLOB.observer_list) var/mob/dead/observer/g = i @@ -376,7 +399,8 @@ GLOBAL_LIST_EMPTY(alldepartments) if((R_ADMIN|R_MOD) & C.admin_holder.rights) //staff don't need to see the fax twice continue to_chat(C, msg_ghost) - C << 'sound/effects/sos-morse-code.ogg' + if(C.prefs?.toggles_sound & SOUND_FAX_MACHINE) + C << 'sound/effects/incoming-fax.ogg' /obj/structure/machinery/faxmachine/proc/send_fax(datum/fax/faxcontents) @@ -386,10 +410,10 @@ GLOBAL_LIST_EMPTY(alldepartments) return if(! (F.inoperable() ) ) - flick("faxreceive", F) + flick("[initial(icon_state)]receive", F) // give the sprite some time to flick - spawn(20) + spawn(30) var/obj/item/paper/P = new(F.loc,faxcontents.photo_list) P.name = "faxed message" P.info = "[faxcontents.data]" @@ -416,6 +440,30 @@ GLOBAL_LIST_EMPTY(alldepartments) P.stamped += /obj/item/tool/stamp P.overlays += stampoverlay P.stamps += "
        This paper has been stamped and encrypted by the Weyland-Yutani Quantum Relay (tm)." + if("TWE Royal Marines Commando Quantum Relay") + var/image/stampoverlay = image('icons/obj/items/paper.dmi') + stampoverlay.icon_state = "paper_stamp-twe" + if(!P.stamped) + P.stamped = new + P.stamped += /obj/item/tool/stamp + P.overlays += stampoverlay + P.stamps += "
        This paper has been stamped by the TWE Royal Marines Commando Quantum Relay." + if("UPP High Kommand Quantum Relay") + var/image/stampoverlay = image('icons/obj/items/paper.dmi') + stampoverlay.icon_state = "paper_stamp-upp" + if(!P.stamped) + P.stamped = new + P.stamped += /obj/item/tool/stamp + P.overlays += stampoverlay + P.stamps += "
        This paper has been stamped by the UPP High Kommand Quantum Relay." + if("CLF Gureilla Command Quantum Relay") + var/image/stampoverlay = image('icons/obj/items/paper.dmi') + stampoverlay.icon_state = "paper_stamp-clf" + if(!P.stamped) + P.stamped = new + P.stamped += /obj/item/tool/stamp + P.overlays += stampoverlay + P.stamps += "
        This paper has been stamped and encrypted by the CLF Gureilla Command Quantum Relay." playsound(F.loc, "sound/items/polaroid1.ogg", 15, 1) qdel(faxcontents) @@ -469,6 +517,85 @@ GLOBAL_LIST_EMPTY(alldepartments) target_department = "Brig" network = "USCM High Command Quantum Relay" + +///The deployed fax machine backpack +/obj/structure/machinery/faxmachine/backpack + name = "\improper Portable Press Fax Machine" + desc = "A standard issue portable fax machine for civilian reporters. Functions off of an internal battery. Cannot receive faxes while being worn. It is currently deployed. Click-drag the device towards you to pick it up." + icon_state = "fax_backpack" + needs_power = FALSE + use_power = USE_POWER_NONE + health = 150 + +///The wearable and deployable part of the fax machine backpack +/obj/item/device/fax_backpack + name = "\improper Portable Press Fax Machine" + desc = "A standard issue portable fax machine for civilian reporters. Functions off of an internal battery. Cannot receive faxes while being worn. It is currently undeployed. Activate the device inhand to deploy it." + icon = 'icons/obj/structures/machinery/library.dmi' + icon_state = "fax_backpack" + item_state = "fax_backpack" + w_class = SIZE_HUGE + flags_equip_slot = SLOT_BACK + flags_item = ITEM_OVERRIDE_NORTHFACE + +/obj/item/device/fax_backpack/attack_self(mob/user) //activate item version fax inhand to deploy + if(!ishuman(user)) + return + var/turf/deployturf = get_turf(user) + if(istype(deployturf, /turf/open)) + var/turf/open/floor = deployturf + if(!floor.allow_construction) + to_chat(user, SPAN_WARNING("You cannot deploy [src] here, find a more secure surface!")) + return FALSE + var/fail = FALSE + if(deployturf.density) + fail = TRUE + else + var/static/list/blocking_types = typecacheof(list( + /obj/structure/machinery/defenses, + /obj/structure/window, + /obj/structure/windoor_assembly, + /obj/structure/machinery/door, + )) + for(var/obj/blockingobj in deployturf.contents) + if(blockingobj.density && !(blockingobj.flags_atom & ON_BORDER)) + fail = TRUE + break + if(is_type_in_typecache(blockingobj, blocking_types)) + fail = TRUE + break + if(fail) + to_chat(user, SPAN_WARNING("You can't deploy [src] here, something is in the way.")) + return + to_chat(user, SPAN_NOTICE("You begin to deploy [src]...")) + if(do_after(user, 4.5 SECONDS, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD)) + to_chat(user, SPAN_NOTICE("You deploy [src].")) + var/obj/structure/machinery/faxmachine/backpack/deployedfax = new(deployturf) + transfer_label_component(deployedfax) + playsound(src.loc, 'sound/machines/print.ogg', 40, 1) + qdel(src) + return + return ..() + +/obj/structure/machinery/faxmachine/backpack/MouseDrop(over_object, src_location, over_location) //Drag the deployed fax onto you to pick it up. + if(!ishuman(usr)) + return + var/mob/living/carbon/human/user = usr + if(over_object == user && in_range(src, user)) + if(original_fax || scan) + to_chat(user, SPAN_NOTICE("There is still something in [src]. Remove it before you pick it up.")) + return + to_chat(user, SPAN_NOTICE("You begin to pick up [src]...")) + if(do_after(user, 4.5 SECONDS, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD)) + playsound(src.loc, 'sound/items/Ratchet.ogg', 25, 1) + to_chat(user, SPAN_NOTICE("You pick up [src].")) + var/obj/item/device/fax_backpack/faxbag = new(loc) + transfer_label_component(faxbag) + user.put_in_hands(faxbag) + qdel(src) + return + return ..() + /datum/fax var/data var/list/photo_list diff --git a/code/game/machinery/flasher.dm b/code/game/machinery/flasher.dm index fc2cf5a6320c..437ef7b067ea 100644 --- a/code/game/machinery/flasher.dm +++ b/code/game/machinery/flasher.dm @@ -60,7 +60,7 @@ src.last_flash = world.time use_power(1500) - for (var/mob/O in viewers(src, null)) + for (var/mob/living/O in viewers(src, null)) if (get_dist(src, O) > src.range) continue @@ -72,7 +72,9 @@ if (istype(O, /mob/living/carbon/xenomorph))//So aliens don't get flashed (they have no external eyes)/N continue - O.apply_effect(strength, WEAKEN) + O.KnockDown(strength) + O.Stun(strength) + if (istype(O, /mob/living/carbon/human)) var/mob/living/carbon/human/H = O var/datum/internal_organ/eyes/E = H.internal_organs_by_name["eyes"] diff --git a/code/game/machinery/floodlight.dm b/code/game/machinery/floodlight.dm index 580fea644eec..b90f8adbbb3f 100644 --- a/code/game/machinery/floodlight.dm +++ b/code/game/machinery/floodlight.dm @@ -2,7 +2,7 @@ name = "emergency floodlight" desc = "A powerful light usually stationed near landing zones to provide better visibility." icon = 'icons/obj/structures/machinery/floodlight.dmi' - icon_state = "flood00" + icon_state = "flood_0" density = TRUE anchored = TRUE light_power = 2 @@ -11,13 +11,14 @@ idle_power_usage = 0 active_power_usage = 100 + ///How far the light will go when the floodlight is on var/on_light_range = 6 - ///Whether or not the floodlight can be toggled on or off var/toggleable = TRUE - ///Whether or not the floodlight is turned on, disconnected from whether it has power or is lit var/turned_on = FALSE + ///base state + var/base_icon_state = "flood" /obj/structure/machinery/floodlight/Initialize(mapload, ...) . = ..() @@ -60,7 +61,7 @@ /obj/structure/machinery/floodlight/update_icon() . = ..() - icon_state = "flood0[light_on]" + icon_state = "[base_icon_state]_[light_on]" /obj/structure/machinery/floodlight/power_change(area/master_area = null) . = ..() @@ -71,7 +72,7 @@ /obj/structure/machinery/floodlight/landing name = "landing light" desc = "A powerful light usually stationed near landing zones to provide better visibility. This one seems to have been bolted down and is unable to be moved." - icon_state = "flood01" + icon_state = "flood_1" use_power = USE_POWER_NONE needs_power = FALSE unslashable = TRUE @@ -81,5 +82,6 @@ turned_on = TRUE /obj/structure/machinery/floodlight/landing/floor - icon_state = "floor_flood01" + icon_state = "floor_flood_1" + base_icon_state = "floor_flood" density = FALSE diff --git a/code/game/machinery/fuelcell_recycler.dm b/code/game/machinery/fuelcell_recycler.dm index 697d7385a012..12ae7c40f80f 100644 --- a/code/game/machinery/fuelcell_recycler.dm +++ b/code/game/machinery/fuelcell_recycler.dm @@ -1,144 +1,219 @@ /obj/structure/machinery/fuelcell_recycler - name = "fuel cell recycler" + name = "\improper fuel cell recycler" desc = "A large machine with whirring fans and two cylindrical holes in the top. Used to regenerate fuel cells." icon = 'icons/obj/structures/machinery/fusion_eng.dmi' icon_state = "recycler" - anchored = TRUE - density = TRUE - idle_power_usage = 5 active_power_usage = 15000 - bound_height = 32 - bound_width = 32 - var/obj/item/fuelCell/cell_left = null - var/obj/item/fuelCell/cell_right = null unslashable = TRUE unacidable = TRUE + indestructible = TRUE -/obj/structure/machinery/fuelcell_recycler/attackby(obj/item/I, mob/user) - if(istype(I, /obj/item/fuelCell)) - if(!cell_left) - if(user.drop_inv_item_to_loc(I, src)) - cell_left = I - start_processing() - else if(!cell_right) - if(user.drop_inv_item_to_loc(I, src)) - cell_right = I - start_processing() - else - to_chat(user, SPAN_NOTICE("The recycler is full!")) - return - update_icon() - else - to_chat(user, SPAN_NOTICE("You can't see how you'd use [I] with [src]...")) + ///How much to recharge the cells per process + var/recharge_amount = 5 + ///A fuel cell in the recycler + var/obj/item/fuel_cell/cell_left + ///A fuel cell in the recycler + var/obj/item/fuel_cell/cell_right + +/obj/structure/machinery/fuelcell_recycler/Destroy() + . = ..() + QDEL_NULL(cell_left) + QDEL_NULL(cell_right) + +/obj/structure/machinery/fuelcell_recycler/ex_act(severity) + if(indestructible) + return + . = ..() + +/obj/structure/machinery/fuelcell_recycler/get_examine_text(mob/user) + . = ..() + . += SPAN_INFO("It is [machine_processing ? "online" : "offline"].") + if(!ishuman(user)) + return + + if(cell_left) + . += SPAN_INFO("The left cell is at [cell_left.get_fuel_percent()]%.") + if(cell_right) + . += SPAN_INFO("The right cell is at [cell_right.get_fuel_percent()]%.") + +/obj/structure/machinery/fuelcell_recycler/attackby(obj/item/attacking_item, mob/user) + if(!istype(attacking_item, /obj/item/fuel_cell)) + to_chat(user, SPAN_NOTICE("[src] rejects [attacking_item]. It can only regenerate fuel cells.")) + return + var/obj/item/fuel_cell/cell = attacking_item + + if(cell_left && cell_right) + to_chat(user, SPAN_NOTICE("[src] cannot regenerate any more fuel cells. Remove [cell_left] or [cell_right] first.")) + return + + if(cell.get_fuel_percent() == 100) + to_chat(user, SPAN_NOTICE("[cell] is already full and does not need to be regenerated.")) return -/obj/structure/machinery/fuelcell_recycler/attack_hand(mob/M) - if(cell_left == null && cell_right == null) - to_chat(M, SPAN_NOTICE("The recycler is empty.")) + if(!user.drop_inv_item_to_loc(cell, src)) + to_chat(user, SPAN_WARNING("You fail to insert [cell] into [src].")) return - add_fingerprint(M) + add_fingerprint(user) + var/inserted_to_left = TRUE + if(!cell_left) + cell_left = cell + else if(!cell_right) + inserted_to_left = FALSE + cell_right = cell + + to_chat(user, SPAN_NOTICE("You insert [cell] into the [inserted_to_left ? "left" : "right"] fuel cell receptacle.")) + update_icon() + if(!machine_processing) + visible_message(SPAN_NOTICE("[src] starts whirring as it turns on.")) + update_use_power(USE_POWER_ACTIVE) + start_processing() - if(cell_right == null) - cell_left.update_icon() - M.put_in_hands(cell_left) +/obj/structure/machinery/fuelcell_recycler/attack_hand(mob/user) + if(!cell_left && !cell_right) + to_chat(user, SPAN_NOTICE("[src] is empty.")) + return + + add_fingerprint(user) + cell_left?.update_icon() + cell_right?.update_icon() + + if(cell_left && cell_right) + if(cell_left.get_fuel_percent() >= cell_right.get_fuel_percent()) + user.put_in_hands(cell_left) + cell_left = null + else + user.put_in_hands(cell_right) + cell_right = null + update_icon() + return + + if(cell_left) + user.put_in_hands(cell_left) cell_left = null update_icon() - else if(cell_left == null) - cell_right.update_icon() - M.put_in_hands(cell_right) + return + + if(cell_right) + user.put_in_hands(cell_right) cell_right = null update_icon() - else - if(cell_left.get_fuel_percent() > cell_right.get_fuel_percent()) - cell_left.update_icon() - M.put_in_hands(cell_left) - cell_left = null - update_icon() - else - cell_right.update_icon() - M.put_in_hands(cell_right) - cell_right = null - update_icon() /obj/structure/machinery/fuelcell_recycler/process() if(inoperable()) - update_use_power(USE_POWER_NONE) - update_icon() + turn_off() return + if(!cell_left && !cell_right) - update_use_power(USE_POWER_IDLE) - update_icon() - stop_processing() + balloon_alert_to_viewers("no cells detected.") + turn_off() return - else - var/active = FALSE - if(cell_left != null) - if(!cell_left.is_regenerated()) - active = TRUE - cell_left.give(active_power_usage*(CELLRATE * 0.1)) - if(cell_right != null) - if(!cell_right.is_regenerated()) - active = TRUE - cell_right.give(active_power_usage*(CELLRATE * 0.1)) - if(active) - update_use_power(USE_POWER_ACTIVE) - else - update_use_power(USE_POWER_IDLE) - stop_processing() - update_icon() + if((!cell_right && cell_left?.is_regenerated()) || (!cell_left && cell_right?.is_regenerated()) || (cell_left?.is_regenerated() && cell_right?.is_regenerated())) + balloon_alert_to_viewers("all cells charged.") + turn_off() + return + + if(cell_left && !cell_left.is_regenerated()) + recharge_cell(cell_left) + + if(cell_right && !cell_right.is_regenerated()) + recharge_cell(cell_right) + + update_icon() /obj/structure/machinery/fuelcell_recycler/power_change() ..() update_icon() /obj/structure/machinery/fuelcell_recycler/update_icon() - src.overlays.Cut() + overlays.Cut() + + if(cell_left) + overlays += "overlay_left_cell" + if(cell_right) + overlays += "overlay_right_cell" if(inoperable()) - icon_state = "recycler0" - if(cell_left != null) - src.overlays += "recycler-left-cell" - if(cell_right != null) - src.overlays += "recycler-right-cell" - return - else icon_state = "recycler" - - var/overlay_builder = "recycler-" - if(cell_left == null && cell_right == null) return - if(cell_right == null) + + if(cell_left) if(cell_left.is_regenerated()) - overlay_builder += "left-charged" + overlays += "overlay_left_charged" else - overlay_builder += "left-charging" + overlays += "overlay_left_charging" - src.overlays += overlay_builder - src.overlays += "recycler-left-cell" - return - else if(cell_left == null) + if(cell_right) if(cell_right.is_regenerated()) - overlay_builder += "right-charged" + overlays += "overlay_right_charged" else - overlay_builder += "right-charging" + overlays += "overlay_right_charging" - src.overlays += overlay_builder - src.overlays += "recycler-right-cell" + if(!machine_processing) + icon_state = "recycler" return - else // both left and right cells are there - if(cell_left.is_regenerated()) - overlay_builder += "left-charged" - else - overlay_builder += "left-charging" + icon_state = "recycler_on" - if(cell_right.is_regenerated()) - overlay_builder += "-right-charged" - else - overlay_builder += "-right-charging" +/obj/structure/machinery/fuelcell_recycler/proc/turn_off() + visible_message(SPAN_NOTICE("[src] stops whirring as it turns off.")) + stop_processing() + update_icon() + update_use_power(USE_POWER_NONE) - src.overlays += overlay_builder - src.overlays += "recycler-left-cell" - src.overlays += "recycler-right-cell" - return +/obj/structure/machinery/fuelcell_recycler/proc/recharge_cell(obj/item/fuel_cell/cell) + cell.modify_fuel(recharge_amount) + if(!cell.new_cell) + cell.new_cell = TRUE + +/obj/structure/machinery/fuelcell_recycler/full/Initialize(mapload, ...) + . = ..() + cell_left = new(src) + cell_right = new(src) + update_icon() + +//reactor full cells +/obj/item/fuel_cell + name = "\improper WL-6 universal fuel cell" + icon = 'icons/obj/structures/machinery/shuttle-parts.dmi' + icon_state = "cell-full" + desc = "A rechargeable fuel cell designed to work as a power source for the Cheyenne-Class transport or for Westingland S-52 Reactors." + ///How much fuel is in the reactor + var/fuel_amount = 100 + ///Max amount that the cell can hold + var/max_fuel_amount = 100 + ///If the fuel cell has been used since last recharge + var/new_cell = TRUE + +/obj/item/fuel_cell/update_icon() + switch(get_fuel_percent()) + if(-INFINITY to 0) + icon_state = "cell-empty" + if(0 to 25) + icon_state = "cell-low" + if(25 to 75) + icon_state = "cell-medium" + if(75 to 99) + icon_state = "cell-high" + if(100 to INFINITY) + icon_state = "cell-full" + +/obj/item/fuel_cell/get_examine_text(mob/user) + . = ..() + if(ishuman(user)) + . += "The fuel indicator reads: [get_fuel_percent()]%" + +///Percentage of fuel left in the cell +/obj/item/fuel_cell/proc/get_fuel_percent() + return floor(100 * fuel_amount/max_fuel_amount) + +///Whether the fuel cell is full +/obj/item/fuel_cell/proc/is_regenerated() + return (fuel_amount == max_fuel_amount) + +/// increase or decrease fuel, making sure it cannot go above the max +/obj/item/fuel_cell/proc/modify_fuel(amount) + fuel_amount = clamp(fuel_amount + amount, 0, max_fuel_amount) + +/obj/item/fuel_cell/used + new_cell = FALSE diff --git a/code/game/machinery/fusion_engine.dm b/code/game/machinery/fusion_engine.dm index 0e5f8142c2be..72f836717b0f 100644 --- a/code/game/machinery/fusion_engine.dm +++ b/code/game/machinery/fusion_engine.dm @@ -1,417 +1,463 @@ -//Experimental engine for the Almayer. Should be fancier. I expect I'll eventually make it totally separate from the Geothermal as I don't like the procs... - Apop +//Reactor damage states +#define BUILDSTATE_FUNCTIONAL 0 +#define BUILDSTATE_DAMAGE_WRENCH 1 +#define BUILDSTATE_DAMAGE_WIRE 2 +#define BUILDSTATE_DAMAGE_WELD 3 +//How often it checks if the reactor has failed +#define REACTOR_FAIL_CHECK_TICKS 100 -#define FUSION_ENGINE_MAX_POWER_GEN 50000 //Full capacity - -#define FUSION_ENGINE_FAIL_CHECK_TICKS 100 //Check for failure every this many ticks - -/obj/structure/machinery/power/fusion_engine +/obj/structure/machinery/power/reactor name = "\improper S-52 fusion reactor" icon = 'icons/obj/structures/machinery/fusion_eng.dmi' - icon_state = "off-0" - desc = "A Westingland S-52 Fusion Reactor. Takes fuels cells and converts them to power for the ship. Also produces a large amount of heat." - directwired = 0 //Requires a cable directly underneath + icon_state = "off" + desc = "A Westingland S-52 Fusion Reactor." + directwired = FALSE //Requires a cable directly underneath unslashable = TRUE - unacidable = TRUE //NOPE.jpg + unacidable = TRUE anchored = TRUE density = TRUE power_machine = TRUE - - var/power_gen_percent = 0 //50,000W at full capacity - var/buildstate = 0 //What state of building it are we on, 0-3, 1 is "broken", the default - var/is_on = TRUE //Is this damn thing on or what? - var/fail_rate = FALSE //% chance of failure each fail_tick check + throwpass = FALSE + + ///Whether the reactor is functional + var/is_on = TRUE + ///Whether the reactor is on the ship + var/is_ship_reactor = FALSE + ///If the generator is overloaded + var/overloaded = FALSE //Only possible during hijack once fuel is at 100% + + ///How damaged the reactor is + var/buildstate = BUILDSTATE_FUNCTIONAL + + ///Original fail rate of the reactor + var/original_fail_rate = 0 + ///% chance of the reactor failing every check_failure + var/fail_rate = 0 + ///How often the reactor checks if it can fail + var/fail_check_ticks = REACTOR_FAIL_CHECK_TICKS + ///How many ticks since last fail check var/cur_tick = 0 //Tick updater - var/obj/item/fuelCell/fusion_cell = new //Starts with a fuel cell loaded in. Maybe replace with the plasma tanks in the future and have it consume plasma? Possibly remove this later if it's irrelevent... - var/fuel_rate = 0 //Rate at which fuel is used. Based mostly on how long the generator has been running. - /// If the generator is overloaded. Only possible during hijack once fuel is at 100%. - var/overloaded = FALSE + ///% of power produced, increases to 100% over time + var/power_gen_percent = 0 + ///How much the reactor will generate at max power_gen_percent + var/power_generation_max = 50000 //50,000W + ///All icon states split by power_gen_percent + var/list/power_percent_states = list(10, 25, 50, 75, 100) //Easier to add more icon states to one without also adding them to the other -/obj/structure/machinery/power/fusion_engine/Initialize(mapload, ...) + ///Whether the reactor requires a fusion cell + var/require_fusion_cell = TRUE + ///The reactors fuel cell, fail rate increases if empty + var/obj/item/fuel_cell/fusion_cell + +/obj/structure/machinery/power/reactor/Initialize(mapload, ...) . = ..() - fusion_cell.fuel_amount = 100 + if(is_mainship_level(z)) //Only ship reactors can overload + is_ship_reactor = TRUE + + if(!buildstate && is_ground_level(z)) //Colony reactors start damaged + switch(rand(1, 6)) + if(1 to 3) //50% + buildstate = BUILDSTATE_DAMAGE_WELD + if(4 to 5) //34% + buildstate = BUILDSTATE_DAMAGE_WIRE + if(6) //16% + buildstate = BUILDSTATE_DAMAGE_WRENCH + + if(require_fusion_cell) //Set up fuel cell if needed + fusion_cell = new /obj/item/fuel_cell/used(src) + fusion_cell.fuel_amount = fusion_cell.max_fuel_amount + + fail_rate = original_fail_rate update_icon() - connect_to_network() //Should start with a cable piece underneath, if it doesn't, something's messed up in mapping - start_processing() -/obj/structure/machinery/power/fusion_engine/Destroy() + if(is_on) + start_processing() + + return INITIALIZE_HINT_ROUNDSTART + +/obj/structure/machinery/power/reactor/LateInitialize() //Need to wait for powernets to start existing first + . = ..() + + if(QDELETED(src)) + return + if(powernet) + return + + if(!connect_to_network()) //Make sure its connected to a powernet + CRASH("[src] has failed to connect to a power network. Check that it has been mapped correctly.") + +/obj/structure/machinery/power/reactor/Destroy() QDEL_NULL(fusion_cell) return ..() -/obj/structure/machinery/power/fusion_engine/attack_alien(mob/living/carbon/xenomorph/xeno) - if(!overloaded) - to_chat(xeno, SPAN_WARNING("You see no reason to attack [src].")) - return XENO_NO_DELAY_ACTION +/obj/structure/machinery/power/reactor/get_examine_text(mob/user) + . = ..() - xeno.animation_attack_on(src) - playsound(src, 'sound/effects/metalhit.ogg', 25, 1) - xeno.visible_message(SPAN_DANGER("[xeno] [xeno.slashes_verb] [src], stopping its overload process!"), \ - SPAN_DANGER("You [xeno.slash_verb] [src], stopping its overload process!"), null, 5, CHAT_TYPE_XENO_COMBAT) - set_overloading(FALSE) - return XENO_ATTACK_ACTION + if(!is_on) + . += SPAN_INFO("It is offline.") + + if(!ishuman(user)) + return + if(is_on) + . += SPAN_INFO("The power gauge reads: [power_gen_percent]%") + + switch(buildstate) + if(BUILDSTATE_DAMAGE_WELD) + . += SPAN_INFO(SPAN_BOLD("Use a blowtorch to repair it.")) + if(BUILDSTATE_DAMAGE_WIRE) + . += SPAN_INFO(SPAN_BOLD("Use wirecutters to repair it.")) + if(BUILDSTATE_DAMAGE_WRENCH) + . += SPAN_INFO(SPAN_BOLD("Use a wrench to repair it.")) + + if(buildstate || require_fusion_cell && (!fusion_cell || fusion_cell.fuel_amount <= 0)) + if(is_on) + . += SPAN_INFO("The emergency shutdown button is visible.") + else + . += SPAN_INFO("The emergency start lever is visible.") + + if(!fusion_cell) + . += SPAN_INFO("There is no fuel cell in it.") + else + switch(fusion_cell.get_fuel_percent()) + if(-INFINITY to 0) + . += SPAN_INFO("[fusion_cell] is empty.") + if(1 to 9) + . += SPAN_INFO("[fusion_cell] is critically low.") + if(10 to 24) + . += SPAN_INFO("[fusion_cell] is low.") + if(25 to 49) + . += SPAN_INFO("[fusion_cell] is less than half full.") + if(50 to 74) + . += SPAN_INFO("[fusion_cell] is over half full.") + if(75 to 99) + . += SPAN_INFO("[fusion_cell] is nearly full.") + if(99 to INFINITY) + . += SPAN_INFO("[fusion_cell] is full.") + + if(is_ship_reactor && SShijack.sd_unlocked) + if(overloaded) + . += SPAN_INFO("It is overloaded.") + return + if(skillcheck(user, SKILL_ENGINEER, SKILL_ENGINEER_ENGI)) + . += SPAN_INFO("You could overload its safeties with a multitool.") -/obj/structure/machinery/power/fusion_engine/power_change() +/obj/structure/machinery/power/reactor/power_change() . = ..() if(overloaded) set_overloading(FALSE) - visible_message("[icon2html(src, viewers(src))] [src]'s overload suddenly ceases as primary power is lost.") + visible_message(SPAN_NOTICE("[src]'s overload suddenly ceases as primary power is lost.")) -/obj/structure/machinery/power/fusion_engine/process() - if(!is_on || buildstate || !anchored || !powernet || !fusion_cell) //Default logic checking - if(is_on) - is_on = FALSE - power_gen_percent = 0 - update_icon() - stop_processing() - return 0 - if (fusion_cell.fuel_amount <= 0) - visible_message("[icon2html(src, viewers(src))] [src] flashes that the fuel cell is empty as the engine seizes.") - fuel_rate = 0 - buildstate = 2 //No fuel really fucks it. - is_on = 0 - power_gen_percent = 0 - fail_rate+=2 //Each time the engine is allowed to seize up it's fail rate for the future increases because reasons. - update_icon() - stop_processing() - return FALSE +/obj/structure/machinery/power/reactor/process() + if(!is_on) //if off, turn off + start_functioning(FALSE) + return + + if(buildstate) + if(require_fusion_cell) //if broken and fuel cell, lose fuel + if(fusion_cell && fusion_cell.fuel_amount) + fusion_cell.modify_fuel(rand(-5, -20)) + visible_message(SPAN_DANGER("[src] hisses as fuel starts to pool around it.")) + else //Otherwise just start to break down faster + visible_message(SPAN_DANGER("[src] sparks and seizes.")) + fail_rate += 2.5 + + if(require_fusion_cell && (!fusion_cell || fusion_cell.fuel_amount <= 0)) //empty fuel + if(prob(20)) + visible_message(SPAN_DANGER("[src] flashes that the fuel cell is [fusion_cell ? "empty" : "missing"] as the engine seizes.")) + fail_rate += 2.5 if(overloaded && prob(1)) // up to 18 generators at 1% every 3.5 seconds means that every ~21 seconds or so, one generator will make noise assuming all are overloaded - switch(rand(1, 2)) - if(1) - visible_message("[icon2html(src, viewers(src))] [SPAN_NOTICE("[src] loudly hums.")]") - playsound(src, 'sound/machines/resource_node/node_idle.ogg', 60, TRUE) - if(2) - visible_message("[icon2html(src, viewers(src))] [SPAN_NOTICE("[src] makes a worrying hiss.")]") - playsound(src, 'sound/machines/hiss.ogg', 60, TRUE) - - if(!check_failure()) - if(power_gen_percent < 100) - power_gen_percent++ - - switch(power_gen_percent) //Flavor text! - if(10) - visible_message("[icon2html(src, viewers(src))] [SPAN_NOTICE("[src] begins to whirr as it powers up.")]") - fuel_rate = 0.025 - if(50) - visible_message("[icon2html(src, viewers(src))] [SPAN_NOTICE("[src] begins to hum loudly as it reaches half capacity.")]") - fuel_rate = 0.05 - if(99) - visible_message("[icon2html(src, viewers(src))] [SPAN_NOTICE("[src] rumbles loudly as the combustion and thermal chambers reach full strength.")]") - fuel_rate = 0.1 - - add_avail(FUSION_ENGINE_MAX_POWER_GEN * (power_gen_percent / 100) ) //Nope, all good, just add the power + if(prob(50)) + visible_message(SPAN_NOTICE("[src] loudly hums.")) + playsound(src, 'sound/machines/resource_node/node_idle.ogg', 60, TRUE) + else + visible_message(SPAN_NOTICE("[src] makes a worrying hiss.")) + playsound(src, 'sound/machines/hiss.ogg', 60, TRUE) - update_icon() + if(power_gen_percent < 100) + power_gen_percent = min(power_gen_percent + 1, 100) + add_avail(power_generation_max * (power_gen_percent / 100)) + check_failure(buildstate > BUILDSTATE_DAMAGE_WIRE || require_fusion_cell && (!fusion_cell || fusion_cell.fuel_amount <= 0)) + update_icon() -/obj/structure/machinery/power/fusion_engine/attack_hand(mob/user) - if(!ishuman(user)) - to_chat(user, SPAN_WARNING("You have no idea how to use that.")) //No ayylamos +/obj/structure/machinery/power/reactor/proc/check_failure(damaged_reactor = FALSE) + if(cur_tick < fail_check_ticks) //Nope, not time for it yet + cur_tick++ + if(damaged_reactor) + cur_tick += fail_check_ticks/5 //fail much faster if damaged + return + cur_tick = 0 //reset the timer + + fail_rate = clamp(fail_rate, 0, 100) + if(!prob(fail_rate)) //Oh snap, we failed! Shut it down! + return + + visible_message(SPAN_DANGER("[src] seizes and breaks down.")) + if(buildstate >= BUILDSTATE_DAMAGE_WELD) + start_functioning(FALSE) + buildstate = clamp(buildstate + 1, BUILDSTATE_FUNCTIONAL, BUILDSTATE_DAMAGE_WELD) + +/obj/structure/machinery/power/reactor/attack_hand(mob/user) + . = TRUE + if(overloaded) + to_chat(user, SPAN_DANGER("[src] is not responding to your attempt to shut the reactor down.")) return FALSE add_fingerprint(user) - switch(buildstate) - if(1) - to_chat(user, SPAN_INFO("Use a blowtorch, then wirecutters, then wrench to repair it.")) - return FALSE - if(2) - to_chat(user, SPAN_NOTICE("Use a wirecutters, then wrench to repair it.")) - return FALSE - if(3) - to_chat(user, SPAN_NOTICE("Use a wrench to repair it.")) + + if(buildstate || require_fusion_cell && (!fusion_cell || fusion_cell.fuel_amount <= 0)) + if(is_on) + to_chat(user, SPAN_NOTICE("You press [src]'s emergency shutdown button.")) + visible_message(SPAN_NOTICE("[user] presses [src]'s emergency shutdown button.")) + start_functioning(FALSE) + return + + visible_message(SPAN_NOTICE("[user] starts to hold [src]'s emergency start lever.")) + if(!do_after(user, 3 SECONDS, INTERRUPT_ALL, BUSY_ICON_BUILD, src)) + to_chat(user, SPAN_NOTICE("You let go of the emergency start lever.")) return FALSE + start_functioning(TRUE) + return + if(is_on) - if(overloaded) - to_chat(user, SPAN_WARNING("You can't shut off [src] while it's overloaded!")) - return + visible_message(SPAN_WARNING("[src] beeps softly and stops humming as [user] shuts off the generator.")) + start_functioning(FALSE) + return - visible_message("[icon2html(src, viewers(src))] [SPAN_WARNING("[src] beeps softly and the humming stops as [usr] shuts off the generator.")]") - is_on = 0 - power_gen_percent = 0 - cur_tick = 0 + visible_message(SPAN_NOTICE("[src] beeps loudly as [user] starts the reactor.")) + start_functioning(TRUE) + +/obj/structure/machinery/power/reactor/attack_alien(mob/living/carbon/xenomorph/xeno) + . = XENO_NONCOMBAT_ACTION + if(buildstate >= BUILDSTATE_DAMAGE_WELD) + to_chat(xeno, SPAN_WARNING("You see no reason to attack [src].")) + return + + if(xeno.action_busy) + to_chat(xeno, SPAN_WARNING("You cannot damage [src] while doing something else.")) + return + + if(overloaded) + xeno.animation_attack_on(src) + playsound(src, 'sound/effects/metalhit.ogg', 25, 1) + xeno.visible_message(SPAN_DANGER("[xeno] [xeno.slashes_verb] [src], stopping its overload process!"), \ + SPAN_DANGER("You [xeno.slash_verb] [src], stopping its overload process!"), null, 5, CHAT_TYPE_XENO_COMBAT) + set_overloading(FALSE) + return + + var/looping = FALSE + while(buildstate < BUILDSTATE_DAMAGE_WELD) + to_chat(xeno, SPAN_NOTICE("You [looping ? "continue damaging" : "start to damage"] [src].")) + if(!do_after(xeno, 10 SECONDS, INTERRUPT_ALL, BUSY_ICON_HOSTILE, src)) + to_chat(xeno, SPAN_DANGER("You stop damaging [src].")) + break + xeno.animation_attack_on(src) + playsound(src, 'sound/effects/metalhit.ogg', 25, 1) + xeno.visible_message(SPAN_DANGER("[xeno] [xeno.slashes_verb] [src], [is_on ? "disabling" : "damaging"] it!")) + switch(buildstate) + if(BUILDSTATE_FUNCTIONAL) + visible_message(SPAN_DANGER("[src] starts to fall apart!")) + if(BUILDSTATE_DAMAGE_WRENCH) + visible_message(SPAN_DANGER("[src] sparks as wires fall out!")) + if(BUILDSTATE_DAMAGE_WIRE) + visible_message(SPAN_DANGER("[src] gets torn apart!")) + buildstate = clamp(buildstate + 1, BUILDSTATE_FUNCTIONAL, BUILDSTATE_DAMAGE_WELD) update_icon() - stop_processing() - return TRUE + looping = TRUE - if(!fusion_cell) - to_chat(user, SPAN_NOTICE("The reactor requires a fuel cell before you can turn it on.")) - return FALSE +/obj/structure/machinery/power/reactor/attackby(obj/item/attacking_item, mob/user) + //Fuel Cells + if(user.action_busy) + return - if(!powernet) - if(!connect_to_network()) - to_chat(user, SPAN_WARNING("Power network not found, make sure the engine is connected to a cable.")) - return FALSE + if(istype(attacking_item, /obj/item/fuel_cell)) + var/obj/item/fuel_cell/cell = attacking_item + if(fusion_cell) + to_chat(user, SPAN_WARNING("[src] already has [fusion_cell]. Before you can replace it with [cell] you need to remove it with a crowbar.")) + return - if(fusion_cell.fuel_amount <= 10) - to_chat(user, "[icon2html(src, user)] [SPAN_WARNING("[src]: Fuel levels critically low.")]") - visible_message("[icon2html(src, viewers(src))] [SPAN_WARNING("[src] beeps loudly as [user] turns the generator on and begins the process of fusion...")]") - fuel_rate = 0.01 - is_on = 1 - cur_tick = 0 - update_icon() - start_processing() - return TRUE + to_chat(user, SPAN_NOTICE("You start inserting [cell] into [src].")) + if(!do_after(user, 10 SECONDS * user.get_skill_duration_multiplier(SKILL_ENGINEER), INTERRUPT_ALL, BUSY_ICON_BUILD, src)) + return + if(!user.drop_inv_item_to_loc(cell, src)) + to_chat(user, SPAN_NOTICE("You fail to insert [cell] into [src].")) + return + to_chat(user, SPAN_NOTICE("You insert [cell] into [src].")) + fusion_cell = cell + update_icon() + if(cell.new_cell) + fail_rate = original_fail_rate + cell.new_cell = FALSE + return -/obj/structure/machinery/power/fusion_engine/attackby(obj/item/O, mob/user) - if(istype(O, /obj/item/fuelCell)) - if(is_on) - to_chat(user, SPAN_WARNING("[src] needs to be turned off first.")) - return TRUE + if(HAS_TRAIT(attacking_item, TRAIT_TOOL_CROWBAR)) if(!fusion_cell) - if(user.drop_inv_item_to_loc(O, src)) - fusion_cell = O - update_icon() - to_chat(user, SPAN_NOTICE("You load [src] with [O].")) - return TRUE - else - to_chat(user, SPAN_WARNING("You need to remove the fuel cell from [src] first.")) - return TRUE - else if(iswelder(O)) - if(!HAS_TRAIT(O, TRAIT_TOOL_BLOWTORCH)) - to_chat(user, SPAN_WARNING("You need a stronger blowtorch!")) + to_chat(user, SPAN_WARNING("There is no fuel cell to remove from [src].")) return - if(buildstate == 1) - var/obj/item/tool/weldingtool/WT = O - if(WT.remove_fuel(1, user)) - if(!skillcheck(user, SKILL_ENGINEER, SKILL_ENGINEER_ENGI)) - user.visible_message(SPAN_NOTICE("[user] fumbles around figuring out [src]'s internals."), - SPAN_NOTICE("You fumble around figuring out [src]'s internals.")) - var/fumbling_time = 50 - if(!do_after(user, fumbling_time, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD)) return - playsound(loc, 'sound/items/weldingtool_weld.ogg', 25) - user.visible_message(SPAN_NOTICE("[user] starts welding [src]'s internal damage."), - SPAN_NOTICE("You start welding [src]'s internal damage.")) - if(do_after(user, 200 * user.get_skill_duration_multiplier(SKILL_ENGINEER), INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD)) - if(buildstate != 1 || is_on || !WT.isOn()) - return FALSE - playsound(loc, 'sound/items/Welder2.ogg', 25, 1) - buildstate = 2 - user.visible_message(SPAN_NOTICE("[user] welds [src]'s internal damage."), - SPAN_NOTICE("You weld [src]'s internal damage.")) - update_icon() - return TRUE - else - to_chat(user, SPAN_WARNING("You need more welding fuel to complete this task.")) - return FALSE - else if(HAS_TRAIT(O, TRAIT_TOOL_WIRECUTTERS)) - if(buildstate == 2 && !is_on) - if(!skillcheck(user, SKILL_ENGINEER, SKILL_ENGINEER_ENGI)) - user.visible_message(SPAN_NOTICE("[user] fumbles around figuring out [src]'s wiring."), - SPAN_NOTICE("You fumble around figuring out [src]'s wiring.")) - var/fumbling_time = 50 - if(!do_after(user, fumbling_time, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD)) return - playsound(loc, 'sound/items/Wirecutter.ogg', 25, 1) - user.visible_message(SPAN_NOTICE("[user] starts securing [src]'s wiring."), - SPAN_NOTICE("You start securing [src]'s wiring.")) - if(do_after(user, 120 * user.get_skill_duration_multiplier(SKILL_ENGINEER), INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD, numticks = 12)) - if(buildstate != 2 || is_on) - return FALSE - playsound(loc, 'sound/items/Wirecutter.ogg', 25, 1) - buildstate = 3 - user.visible_message(SPAN_NOTICE("[user] secures [src]'s wiring."), - SPAN_NOTICE("You secure [src]'s wiring.")) - update_icon() - return TRUE - else if(HAS_TRAIT(O, TRAIT_TOOL_WRENCH)) - if(buildstate == 3 && !is_on) - if(!skillcheck(user, SKILL_ENGINEER, SKILL_ENGINEER_ENGI)) - user.visible_message(SPAN_NOTICE("[user] fumbles around figuring out [src]'s tubing and plating."), - SPAN_NOTICE("You fumble around figuring out [src]'s tubing and plating.")) - var/fumbling_time = 50 - if(!do_after(user, fumbling_time, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD)) return - playsound(loc, 'sound/items/Ratchet.ogg', 25, 1) - user.visible_message(SPAN_NOTICE("[user] starts repairing [src]'s tubing and plating."), - SPAN_NOTICE("You start repairing [src]'s tubing and plating.")) - if(do_after(user, 150 * user.get_skill_duration_multiplier(SKILL_ENGINEER), INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD)) - if(buildstate != 3 || is_on) - return FALSE - playsound(loc, 'sound/items/Ratchet.ogg', 25, 1) - buildstate = 0 - user.count_niche_stat(STATISTICS_NICHE_REPAIR_GENERATOR) - user.visible_message(SPAN_NOTICE("[user] repairs [src]'s tubing and plating."), - SPAN_NOTICE("You repair [src]'s tubing and plating.")) - update_icon() - return TRUE - else if(HAS_TRAIT(O, TRAIT_TOOL_CROWBAR)) - if(buildstate) - to_chat(user, SPAN_WARNING("You must repair the generator before working with its fuel cell.")) + + to_chat(user, SPAN_NOTICE("You start prying [fusion_cell] out of [src].")) + if(!do_after(user, 10 SECONDS * user.get_skill_duration_multiplier(SKILL_ENGINEER), INTERRUPT_ALL, BUSY_ICON_BUILD, src)) return - if(overloaded) - to_chat(user, SPAN_WARNING("You must restore the safeties on the generator before working with its fuel cell.")) + to_chat(user, SPAN_NOTICE("You remove [fusion_cell] from [src].")) + fusion_cell.update_icon() + user.put_in_hands(fusion_cell) + fusion_cell = null + update_icon() + return + + //Repairing + if(HAS_TRAIT(attacking_item, TRAIT_TOOL_BLOWTORCH)) + if(!attempt_repair(attacking_item, BUILDSTATE_DAMAGE_WELD, user)) + return + var/obj/item/tool/weldingtool/welder = attacking_item + if(!welder.remove_fuel(1, user)) return + playsound(loc, 'sound/items/Welder2.ogg', 25, 1) + buildstate = BUILDSTATE_DAMAGE_WIRE + update_icon() + return - if(is_on) - to_chat(user, SPAN_WARNING("You must turn off the generator before working with its fuel cell.")) + if(HAS_TRAIT(attacking_item, TRAIT_TOOL_WIRECUTTERS)) + if(!attempt_repair(attacking_item, BUILDSTATE_DAMAGE_WIRE, user)) return + playsound(loc, 'sound/items/Wirecutter.ogg', 25, 1) + buildstate = BUILDSTATE_DAMAGE_WRENCH + update_icon() + return - if(!fusion_cell) - to_chat(user, SPAN_WARNING("There is no cell to remove.")) + if(HAS_TRAIT(attacking_item, TRAIT_TOOL_WRENCH)) + if(!attempt_repair(attacking_item, BUILDSTATE_DAMAGE_WRENCH, user)) + return + playsound(loc, 'sound/items/Ratchet.ogg', 25, 1) + buildstate = BUILDSTATE_FUNCTIONAL + update_icon() + return + + //Self Destruct + if(HAS_TRAIT(attacking_item, TRAIT_TOOL_MULTITOOL)) + if(!SShijack.sd_unlocked) + return + if(!is_ship_reactor) + return - else - if(!skillcheck(user, SKILL_ENGINEER, SKILL_ENGINEER_ENGI)) - user.visible_message(SPAN_WARNING("[user] fumbles around figuring out [src]'s fuel receptacle."), - SPAN_WARNING("You fumble around figuring out [src]'s fuel receptacle.")) - var/fumbling_time = 50 - if(!do_after(user, fumbling_time, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD)) return - playsound(loc, 'sound/items/Crowbar.ogg', 25, 1) - user.visible_message(SPAN_NOTICE("[user] starts prying [src]'s fuel receptacle open."), - SPAN_NOTICE("You start prying [src]'s fuel receptacle open.")) - if(do_after(user, 100 * user.get_skill_duration_multiplier(SKILL_ENGINEER), INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD)) - if(buildstate != 0 || is_on || !fusion_cell) - return FALSE - user.visible_message(SPAN_NOTICE("[user] pries [src]'s fuel receptacle open and removes the cell."), - SPAN_NOTICE("You pry [src]'s fuel receptacle open and remove the cell.")) - fusion_cell.update_icon() - user.put_in_hands(fusion_cell) - fusion_cell = null - update_icon() - return TRUE - - else if(HAS_TRAIT(O, TRAIT_TOOL_MULTITOOL)) if(!skillcheck(user, SKILL_ENGINEER, SKILL_ENGINEER_ENGI)) - to_chat(user, SPAN_WARNING("You have no idea what to do with [src].")) return - if(!overloaded) - if(!SShijack.sd_unlocked) - to_chat(user, SPAN_WARNING("You consider overloading [src]'s safeties, but you decide against it.")) - return + to_chat(user, SPAN_WARNING("You start [overloaded ? "overloading" : "restoring"] the safeties on [src].")) + if(!do_after(user, 2 SECONDS, INTERRUPT_ALL, BUSY_ICON_BUILD)) + return - if(inoperable()) - to_chat(user, SPAN_WARNING("[src] needs to be working and have external power in order to overload it!")) - return + if(inoperable()) + to_chat(user, SPAN_WARNING("[src] needs to be working and have external power in order to be overloaded.")) + return - to_chat(user, SPAN_WARNING("You start overloading the safeties on [src]...")) - if(!do_after(user, 1.5 SECONDS, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD)) - return + set_overloading(!overloaded) + to_chat(user, SPAN_WARNING("You finish [overloaded ? "overloading" : "restoring"] the safeties on [src].")) + log_game("[key_name(user)] has [overloaded ? "overloaded" : "restored the safeties of"] a generator.") + return - if(inoperable()) - return + . = ..() - to_chat(user, SPAN_WARNING("You finish overloading the safeties on [src].")) - set_overloading(TRUE) - log_game("[key_name(user)] has overloaded a generator.") +/obj/structure/machinery/power/reactor/update_icon() + switch(buildstate) + if(BUILDSTATE_DAMAGE_WELD) + icon_state = "weld" + if(BUILDSTATE_DAMAGE_WIRE) + icon_state = "wire" + if(BUILDSTATE_DAMAGE_WRENCH) + icon_state = "wrench" + if(buildstate) + return - else - to_chat(user, SPAN_WARNING("You start restoring the safeties on [src]...")) - if(!do_after(user, 1.5 SECONDS, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD)) - return + if(!is_on) + icon_state = "off" + return + + if(require_fusion_cell && !fusion_cell) + icon_state = "cell_missing" + return - if(inoperable()) - return + if(overloaded) + icon_state = "overloaded" + return - to_chat(user, SPAN_WARNING("You finish restoring the safeties on [src].")) - log_game("[key_name(user)] has restored the safeties of a generator.") - set_overloading(FALSE) + var/abs_percent = 100 + var/closest_percent + for(var/current_percent in power_percent_states) + if(abs(current_percent-power_gen_percent) >= abs_percent) + continue + abs_percent = abs(current_percent-power_gen_percent) + closest_percent = current_percent + if(!abs_percent) + break + icon_state = "on-[closest_percent]" + +/obj/structure/machinery/power/reactor/ex_act(severity) + . = FALSE + if(severity <= EXPLOSION_THRESHOLD_MLOW) + return - return TRUE + var/datum/effect_system/spark_spread/sparks = new + sparks.set_up(7, FALSE, loc) + buildstate = clamp(buildstate + 1, BUILDSTATE_FUNCTIONAL, BUILDSTATE_DAMAGE_WELD) + sparks.start() - else - return ..() + if(!overloaded) + return + set_overloading(FALSE) -/obj/structure/machinery/power/fusion_engine/get_examine_text(mob/user) +/obj/structure/machinery/power/reactor/bullet_act(obj/projectile/bullet) . = ..() - if(isxeno(user)) - if(overloaded) - . += SPAN_INFO("You could attack this to stop the overload process.") - - else if(ishuman(user)) - if(buildstate) - . += SPAN_INFO("It's broken.") - switch(buildstate) - if(1) - . += SPAN_INFO("Use a blowtorch, then wirecutters, then wrench to repair it.") - if(2) - . += SPAN_INFO("Use a wirecutters, then wrench to repair it.") - if(3) - . += SPAN_INFO("Use a wrench to repair it.") - return FALSE + if(buildstate >= BUILDSTATE_DAMAGE_WELD) + return + if(!prob(5)) + return - if(SShijack.sd_unlocked && skillcheck(user, SKILL_ENGINEER, SKILL_ENGINEER_ENGI)) - if(!overloaded) - . += SPAN_INFO("You could overload this with a multitool.") - else - . += SPAN_INFO("You could restore its safeties with a multitool.") + var/datum/effect_system/spark_spread/sparks = new + sparks.set_up(7, FALSE, loc) + buildstate = clamp(buildstate + 1, BUILDSTATE_FUNCTIONAL, BUILDSTATE_DAMAGE_WELD) + sparks.start() - if(!is_on) - . += SPAN_INFO("It looks offline.") - else - . += SPAN_INFO("The power gauge reads: [power_gen_percent]%") - if(fusion_cell) - . += SPAN_INFO("You can see a fuel cell in the receptacle.") - if(skillcheck(user, SKILL_ENGINEER, SKILL_ENGINEER_ENGI)) - switch(fusion_cell.get_fuel_percent()) - if(0 to 10) - . += SPAN_DANGER("The fuel cell is critically low.") - if(10 to 25) - . += SPAN_WARNING("The fuel cell is running low.") - if(25 to 50) - . += SPAN_INFO("The fuel cell is a little under halfway.") - if(50 to 75) - . += SPAN_INFO("The fuel cell is a little above halfway.") - if(75 to INFINITY) - . += SPAN_INFO("The fuel cell is nearly full.") - else - . += SPAN_INFO("There is no fuel cell in the receptacle.") +/obj/structure/machinery/power/reactor/proc/start_functioning(enabling) + if(enabling) + is_on = TRUE + start_processing() + update_icon() + return + is_on = FALSE + power_gen_percent = 0 + cur_tick = 0 + set_overloading(FALSE) + update_icon() -/obj/structure/machinery/power/fusion_engine/ex_act(severity) - if(overloaded && severity >= EXPLOSION_THRESHOLD_MLOW) - set_overloading(FALSE) - return +/obj/structure/machinery/power/reactor/proc/attempt_repair(obj/item/tool, repair_type, mob/user) + if(!tool || !repair_type) + return + if(!buildstate) + to_chat(user, SPAN_NOTICE("[src] does not need repairs.")) + return + if(buildstate != repair_type) + to_chat(user, SPAN_WARNING("You need a different tool to repair [src].")) + return -/obj/structure/machinery/power/fusion_engine/update_icon() - switch(buildstate) - if(0) - if(fusion_cell) - if(overloaded) - icon_state = "overloaded" - else - var/pstatus = is_on ? "on" : "off" - switch(fusion_cell.get_fuel_percent()) - if(0 to 10) - icon_state = "[pstatus]-10" - if(10 to 25) - icon_state = "[pstatus]-25" - if(25 to 50) - icon_state = "[pstatus]-50" - if(50 to 75) - icon_state = "[pstatus]-75" - if(75 to INFINITY) - icon_state = "[pstatus]-100" - else - icon_state = "off" - - if(1) - icon_state = "weld" - if(2) - icon_state = "wire" - if(3) - icon_state = "wrench" + var/repair_time = 20 SECONDS + repair_time *= user.get_skill_duration_multiplier(SKILL_ENGINEER) + if(!skillcheck(user, SKILL_ENGINEER, SKILL_ENGINEER_ENGI)) + repair_time += 5 SECONDS + to_chat(user, SPAN_NOTICE("You start repairing [src] with [tool].")) + if(!do_after(user, repair_time, INTERRUPT_ALL, BUSY_ICON_BUILD, src)) + return -/obj/structure/machinery/power/fusion_engine/proc/check_failure() - if(cur_tick < FUSION_ENGINE_FAIL_CHECK_TICKS) //Nope, not time for it yet - cur_tick++ - return 0 - cur_tick = 0 //reset the timer - if(rand(1,100) < fail_rate) //Oh snap, we failed! Shut it down! - if(prob(25)) - visible_message("[icon2html(src, viewers(src))] [SPAN_NOTICE("[src] beeps wildly and a fuse blows! Use wirecutters, then a wrench to repair it.")]") - buildstate = 2 - else - visible_message("[icon2html(src, viewers(src))] [SPAN_NOTICE("[src] beeps wildly and sprays random pieces everywhere! Use a wrench to repair it.")]") - buildstate = 3 - is_on = 0 - power_gen_percent = 0 - update_icon() - stop_processing() - return 1 - else - return 0 + return TRUE -/obj/structure/machinery/power/fusion_engine/proc/set_overloading(new_overloading) +/obj/structure/machinery/power/reactor/proc/set_overloading(new_overloading) + if(!is_ship_reactor) + return if(overloaded == new_overloading) return @@ -419,42 +465,17 @@ SEND_GLOBAL_SIGNAL(COMSIG_GLOB_GENERATOR_SET_OVERLOADING, overloaded) update_icon() +/obj/structure/machinery/power/reactor/colony + name = "\improper G-11 geothermal generator" + icon = 'icons/obj/structures/machinery/geothermal.dmi' + desc = "A thermoelectric generator sitting atop a plasma-filled borehole." + is_on = FALSE + power_generation_max = 100000 //100,000W at full capacity + original_fail_rate = 10 -//FUEL CELL -/obj/item/fuelCell - name = "\improper WL-6 universal fuel cell" - icon = 'icons/obj/structures/machinery/shuttle-parts.dmi' - icon_state = "cell-full" - desc = "A rechargeable fuel cell designed to work as a power source for the Cheyenne-Class transport or for Westingland S-52 Reactors." - var/fuel_amount = 100 - var/max_fuel_amount = 100 - -/obj/item/fuelCell/update_icon() - switch(get_fuel_percent()) - if(-INFINITY to 0) - icon_state = "cell-empty" - if(0 to 25) - icon_state = "cell-low" - if(25 to 75) - icon_state = "cell-medium" - if(75 to 99) - icon_state = "cell-high" - else - icon_state = "cell-full" - -/obj/item/fuelCell/get_examine_text(mob/user) - . = ..() - if(ishuman(user)) - . += "The fuel indicator reads: [get_fuel_percent()]%" - -/obj/item/fuelCell/proc/get_fuel_percent() - return round(100*fuel_amount/max_fuel_amount) - -/obj/item/fuelCell/proc/is_regenerated() - return (fuel_amount == max_fuel_amount) - -/obj/item/fuelCell/proc/give(amount) - fuel_amount += amount - if(fuel_amount > max_fuel_amount) - fuel_amount = max_fuel_amount +#undef BUILDSTATE_FUNCTIONAL +#undef BUILDSTATE_DAMAGE_WELD +#undef BUILDSTATE_DAMAGE_WIRE +#undef BUILDSTATE_DAMAGE_WRENCH +#undef REACTOR_FAIL_CHECK_TICKS diff --git a/code/game/machinery/groundmap_geothermal.dm b/code/game/machinery/groundmap_geothermal.dm deleted file mode 100644 index 087facdbf5ee..000000000000 --- a/code/game/machinery/groundmap_geothermal.dm +++ /dev/null @@ -1,468 +0,0 @@ -/obj/structure/machinery/power/geothermal - name = "\improper G-11 geothermal generator" - icon = 'icons/obj/structures/machinery/geothermal.dmi' - icon_state = "weld" - desc = "A thermoelectric generator sitting atop a plasma-filled borehole. This one is heavily damaged. Use a blowtorch, wirecutters, then wrench to repair it." - anchored = TRUE - density = TRUE - directwired = 0 //Requires a cable directly underneath - unslashable = TRUE - unacidable = TRUE //NOPE.jpg - var/power_gen_percent = 0 //100,000W at full capacity - var/power_generation_max = 100000 //Full capacity - var/powernet_connection_failed = 0 //Logic checking for powernets - var/buildstate = 1 //What state of building it are we on, 0-3, 1 is "broken", the default - var/is_on = 0 //Is this damn thing on or what? - var/fail_rate = 10 //% chance of failure each fail_tick check - var/fail_check_ticks = 100 //Check for failure every this many ticks - var/cur_tick = 0 //Tick updater - power_machine = TRUE - -//We don't want to cut/update the power overlays every single proc. Just when it actually changes. This should save on CPU cycles. Efficiency! -/obj/structure/machinery/power/geothermal/update_icon() - ..() - if(!buildstate && is_on) - desc = "A thermoelectric generator sitting atop a borehole dug deep in the planet's surface. It generates energy by boiling the plasma steam that rises from the well.\nIt is old technology and has a large failure rate, and must be repaired frequently.\nIt is currently on, and beeping randomly amid faint hisses of steam." - switch(power_gen_percent) - if(25) icon_state = "on[power_gen_percent]" - if(50) icon_state = "on[power_gen_percent]" - if(75) icon_state = "on[power_gen_percent]" - if(100) icon_state = "on[power_gen_percent]" - - - else if (!buildstate && !is_on) - icon_state = "off" - desc = "A thermoelectric generator sitting atop a borehole dug deep in the planet's surface. It generates energy by boiling the plasma steam that rises from the well.\nIt is old technology and has a large failure rate, and must be repaired frequently.\nIt is currently turned off and silent." - else - if(buildstate == 1) - icon_state = "weld" - desc = "A thermoelectric generator sitting atop a plasma-filled borehole. This one is heavily damaged. Use a blowtorch, wirecutters, then wrench to repair it." - else if(buildstate == 2) - icon_state = "wire" - desc = "A thermoelectric generator sitting atop a plasma-filled borehole. This one is damaged. Use a wirecutters, then wrench to repair it." - else - icon_state = "wrench" - desc = "A thermoelectric generator sitting atop a plasma-filled borehole. This one is lightly damaged. Use a wrench to repair it." - -/obj/structure/machinery/power/geothermal/Initialize(mapload, ...) - . = ..() - if(!connect_to_network()) //Should start with a cable piece underneath, if it doesn't, something's messed up in mapping - powernet_connection_failed = 1 - -/obj/structure/machinery/power/geothermal/power_change() - return - -/obj/structure/machinery/power/geothermal/process() - if(!is_on || buildstate || !anchored) //Default logic checking - return 0 - - if(!powernet && !powernet_connection_failed) //Powernet checking, make sure there's valid cables & powernets - if(!connect_to_network()) - powernet_connection_failed = 1 //God damn it, where'd our network go - is_on = 0 - stop_processing() - // Error! Check again in 15 seconds. Someone could have blown/acided or snipped a cable - addtimer(VARSET_CALLBACK(src, powernet_connection_failed, FALSE), 15 SECONDS) - else if(powernet) //All good! Let's fire it up! - if(!check_failure()) //Wait! Check to see if it breaks during processing - update_icon() - if(power_gen_percent < 100) power_gen_percent++ - switch(power_gen_percent) - if(10) visible_message("[icon2html(src, viewers(src))] [SPAN_NOTICE("[src] begins to whirr as it powers up.")]") - if(50) visible_message("[icon2html(src, viewers(src))] [SPAN_NOTICE("[src] begins to hum loudly as it reaches half capacity.")]") - if(99) visible_message("[icon2html(src, viewers(src))] [SPAN_NOTICE("[src] rumbles loudly as the combustion and thermal chambers reach full strength.")]") - add_avail(power_generation_max * (power_gen_percent / 100) ) //Nope, all good, just add the power - -/obj/structure/machinery/power/geothermal/proc/check_failure() - cur_tick++ - if(cur_tick < fail_check_ticks) //Nope, not time for it yet - return 0 - else if(cur_tick > fail_check_ticks) //Went past with no fail, reset the timer - cur_tick = 0 - if(rand(1,100) < fail_rate) //Oh snap, we failed! Shut it down! - if(rand(0,3) == 0) - visible_message("[icon2html(src, viewers(src))] [SPAN_NOTICE("[src] beeps wildly and a fuse blows! Use wirecutters, then a wrench to repair it.")]") - buildstate = 2 - icon_state = "wire" - else - visible_message("[icon2html(src, viewers(src))] [SPAN_NOTICE("[src] beeps wildly and sprays random pieces everywhere! Use a wrench to repair it.")]") - buildstate = 3 - icon_state = "wrench" - is_on = 0 - power_gen_percent = 0 - update_icon() - cur_tick = 0 - stop_processing() - return 1 - return 0 //Nope, all fine - -/obj/structure/machinery/power/geothermal/attack_hand(mob/user as mob) - if(!anchored) return 0 //Shouldn't actually be possible - if(user.is_mob_incapacitated()) return 0 - if(!ishuman(user)) - to_chat(user, SPAN_DANGER("You have no idea how to use that.")) //No xenos or mankeys - return 0 - - add_fingerprint(user) - - if(!skillcheck(user, SKILL_ENGINEER, SKILL_ENGINEER_ENGI)) - to_chat(user, SPAN_WARNING("You have no clue how this thing works...")) - return 0 - - if(buildstate == 1) - to_chat(usr, SPAN_INFO("Use a blowtorch, then wirecutters, then wrench to repair it.")) - return 0 - else if (buildstate == 2) - to_chat(usr, SPAN_INFO("Use a wirecutters, then wrench to repair it.")) - return 0 - else if (buildstate == 3) - to_chat(usr, SPAN_INFO("Use a wrench to repair it.")) - return 0 - if(is_on) - visible_message("[icon2html(src, viewers(src))] [SPAN_WARNING("[src] beeps softly and the humming stops as [usr] shuts off the turbines.")]") - is_on = 0 - power_gen_percent = 0 - cur_tick = 0 - icon_state = "off" - stop_processing() - return 1 - visible_message("[icon2html(src, viewers(src))] [SPAN_WARNING("[src] beeps loudly as [usr] turns on the turbines and the generator begins spinning up.")]") - icon_state = "on10" - is_on = 1 - cur_tick = 0 - start_processing() - return 1 - -/obj/structure/machinery/power/geothermal/attackby(obj/item/O as obj, mob/user as mob) - if(iswelder(O)) - if(!HAS_TRAIT(O, TRAIT_TOOL_BLOWTORCH)) - to_chat(user, SPAN_WARNING("You need a stronger blowtorch!")) - return - if(buildstate == 1 && !is_on) - if(!skillcheck(user, SKILL_ENGINEER, SKILL_ENGINEER_ENGI)) - to_chat(user, SPAN_WARNING("You have no clue how to repair this thing.")) - return 0 - var/obj/item/tool/weldingtool/WT = O - if(WT.remove_fuel(1, user)) - - playsound(loc, 'sound/items/weldingtool_weld.ogg', 25) - user.visible_message(SPAN_NOTICE("[user] starts welding [src]'s internal damage."), - SPAN_NOTICE("You start welding [src]'s internal damage.")) - if(do_after(user, 200 * user.get_skill_duration_multiplier(SKILL_ENGINEER), INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD)) - if(buildstate != 1 || is_on || !WT.isOn()) - return FALSE - playsound(loc, 'sound/items/Welder2.ogg', 25, 1) - buildstate = 2 - user.visible_message(SPAN_NOTICE("[user] welds [src]'s internal damage."), - SPAN_NOTICE("You weld [src]'s internal damage.")) - update_icon() - return TRUE - else - to_chat(user, SPAN_WARNING("You need more welding fuel to complete this task.")) - return - else if(HAS_TRAIT(O, TRAIT_TOOL_WIRECUTTERS)) - if(buildstate == 2 && !is_on) - if(!skillcheck(user, SKILL_ENGINEER, SKILL_ENGINEER_ENGI)) - to_chat(user, SPAN_WARNING("You have no clue how to repair this thing.")) - return 0 - playsound(loc, 'sound/items/Wirecutter.ogg', 25, 1) - user.visible_message(SPAN_NOTICE("[user] starts securing [src]'s wiring."), - SPAN_NOTICE("You start securing [src]'s wiring.")) - if(do_after(user, 120 * user.get_skill_duration_multiplier(SKILL_ENGINEER), INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD, numticks = 12)) - if(buildstate != 2 || is_on) - return FALSE - playsound(loc, 'sound/items/Wirecutter.ogg', 25, 1) - buildstate = 3 - user.visible_message(SPAN_NOTICE("[user] secures [src]'s wiring."), - SPAN_NOTICE("You secure [src]'s wiring.")) - update_icon() - return TRUE - else if(HAS_TRAIT(O, TRAIT_TOOL_WRENCH)) - if(buildstate == 3 && !is_on) - if(!skillcheck(user, SKILL_ENGINEER, SKILL_ENGINEER_ENGI)) - to_chat(user, SPAN_WARNING("You have no clue how to repair this thing.")) - return 0 - playsound(loc, 'sound/items/Ratchet.ogg', 25, 1) - user.visible_message(SPAN_NOTICE("[user] starts repairing [src]'s tubing and plating."), - SPAN_NOTICE("You start repairing [src]'s tubing and plating.")) - if(do_after(user, 150 * user.get_skill_duration_multiplier(SKILL_ENGINEER), INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD)) - if(buildstate != 3 || is_on) - return FALSE - playsound(loc, 'sound/items/Ratchet.ogg', 25, 1) - buildstate = 0 - user.count_niche_stat(STATISTICS_NICHE_REPAIR_GENERATOR) - user.visible_message(SPAN_NOTICE("[user] repairs [src]'s tubing and plating."), - SPAN_NOTICE("You repair [src]'s tubing and plating.")) - update_icon() - return TRUE - else - return ..() //Deal with everything else, like hitting with stuff - -/obj/structure/machinery/power/geothermal/ex_act(severity, direction) - return FALSE //gameplay-wise these should really never go away - -//Putting these here since it's power-related -/obj/structure/machinery/colony_floodlight_switch - name = "Colony Floodlight Switch" - icon = 'icons/obj/structures/machinery/power.dmi' - icon_state = "panelnopower" - desc = "This switch controls the floodlights surrounding the archaeology complex. It only functions when there is power." - density = FALSE - anchored = TRUE - var/ispowered = FALSE - var/turned_on = 0 //has to be toggled in engineering - use_power = USE_POWER_IDLE - unslashable = TRUE - unacidable = TRUE - var/list/floodlist = list() // This will save our list of floodlights on the map - power_machine = TRUE - -/obj/structure/machinery/colony_floodlight_switch/Initialize(mapload, ...) - . = ..() - return INITIALIZE_HINT_LATELOAD - -/obj/structure/machinery/colony_floodlight_switch/LateInitialize() - . = ..() - for(var/obj/structure/machinery/colony_floodlight/F in GLOB.machines) - floodlist += F - F.fswitch = src - start_processing() - -/obj/structure/machinery/colony_floodlight_switch/Destroy() - for(var/obj/structure/machinery/colony_floodlight/floodlight as anything in floodlist) - floodlight.fswitch = null - floodlist = null - return ..() - - -/obj/structure/machinery/colony_floodlight_switch/update_icon() - if(!ispowered) - icon_state = "panelnopower" - else if(turned_on) - icon_state = "panelon" - else - icon_state = "paneloff" - -/obj/structure/machinery/colony_floodlight_switch/process() - var/lightpower = 0 - for(var/obj/structure/machinery/colony_floodlight/C in floodlist) - if(!C.is_lit) - continue - lightpower += C.power_tick - use_power(lightpower) - -/obj/structure/machinery/colony_floodlight_switch/power_change() - ..() - if((stat & NOPOWER)) - if(ispowered && turned_on) - toggle_lights() - ispowered = FALSE - turned_on = 0 - update_icon() - else - ispowered = TRUE - update_icon() - -/obj/structure/machinery/colony_floodlight_switch/proc/toggle_lights() - for(var/obj/structure/machinery/colony_floodlight/F in floodlist) - spawn(rand(0,50)) - F.is_lit = !F.is_lit - if(!F.damaged) - if(F.is_lit) //Shut it down - F.set_light(F.lum_value) - else - F.set_light(0) - F.update_icon() - return 0 - -/obj/structure/machinery/colony_floodlight_switch/attack_hand(mob/user as mob) - if(!ishuman(user)) - to_chat(user, "Nice try.") - return 0 - if(!ispowered) - to_chat(user, "Nothing happens.") - return 0 - playsound(src,'sound/items/Deconstruct.ogg', 30, 1) - use_power(5) - toggle_lights() - turned_on = !(src.turned_on) - update_icon() - return 1 - - -#define FLOODLIGHT_REPAIR_UNSCREW 0 -#define FLOODLIGHT_REPAIR_CROWBAR 1 -#define FLOODLIGHT_REPAIR_WELD 2 -#define FLOODLIGHT_REPAIR_CABLE 3 -#define FLOODLIGHT_REPAIR_SCREW 4 - -/obj/structure/machinery/colony_floodlight - name = "Colony Floodlight" - icon = 'icons/obj/structures/machinery/big_floodlight.dmi' - icon_state = "flood_s_off" - density = TRUE - anchored = TRUE - layer = ABOVE_XENO_LAYER - var/damaged = 0 //Can be smashed by xenos - var/is_lit = 0 //whether the floodlight is switched to on or off. Does not necessarily mean it emits light. - unslashable = TRUE - unacidable = TRUE - var/power_tick = 50 // power each floodlight takes up per process - use_power = USE_POWER_NONE //It's the switch that uses the actual power, not the lights - var/obj/structure/machinery/colony_floodlight_switch/fswitch = null //Reverse lookup for power grabbing in area - var/lum_value = 7 - var/repair_state = 0 - health = 150 - -/obj/structure/machinery/colony_floodlight/Destroy() - if(fswitch) - fswitch.floodlist -= src - fswitch = null - . = ..() - -/obj/structure/machinery/colony_floodlight/update_icon() - if(damaged) - icon_state = "flood_s_dmg" - else if(is_lit) - icon_state = "flood_s_on" - else - icon_state = "flood_s_off" - -/obj/structure/machinery/colony_floodlight/attackby(obj/item/I, mob/user) - if(damaged) - if(HAS_TRAIT(I, TRAIT_TOOL_SCREWDRIVER)) - if(!skillcheck(user, SKILL_ENGINEER, SKILL_ENGINEER_ENGI)) - to_chat(user, SPAN_WARNING("You have no clue how to repair [src].")) - return 0 - - if(repair_state == FLOODLIGHT_REPAIR_UNSCREW) - playsound(loc, 'sound/items/Screwdriver.ogg', 25, 1) - user.visible_message(SPAN_NOTICE("[user] starts unscrewing [src]'s maintenance hatch."), \ - SPAN_NOTICE("You start unscrewing [src]'s maintenance hatch.")) - if(do_after(user, 20, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD)) - if(QDELETED(src) || repair_state != FLOODLIGHT_REPAIR_UNSCREW) - return - playsound(loc, 'sound/items/Screwdriver.ogg', 25, 1) - repair_state = FLOODLIGHT_REPAIR_CROWBAR - user.visible_message(SPAN_NOTICE("[user] unscrews [src]'s maintenance hatch."), \ - SPAN_NOTICE("You unscrew [src]'s maintenance hatch.")) - - else if(repair_state == FLOODLIGHT_REPAIR_SCREW) - playsound(loc, 'sound/items/Screwdriver.ogg', 25, 1) - user.visible_message(SPAN_NOTICE("[user] starts screwing [src]'s maintenance hatch closed."), \ - SPAN_NOTICE("You start screwing [src]'s maintenance hatch closed.")) - if(do_after(user, 20, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD)) - if(QDELETED(src) || repair_state != FLOODLIGHT_REPAIR_SCREW) - return - playsound(loc, 'sound/items/Screwdriver.ogg', 25, 1) - damaged = 0 - repair_state = FLOODLIGHT_REPAIR_UNSCREW - health = initial(health) - user.visible_message(SPAN_NOTICE("[user] screws [src]'s maintenance hatch closed."), \ - SPAN_NOTICE("You screw [src]'s maintenance hatch closed.")) - if(is_lit) - set_light(lum_value) - update_icon() - return TRUE - - else if(HAS_TRAIT(I, TRAIT_TOOL_CROWBAR)) - if(!skillcheck(user, SKILL_ENGINEER, SKILL_ENGINEER_ENGI)) - to_chat(user, SPAN_WARNING("You have no clue how to repair [src].")) - return 0 - - if(repair_state == FLOODLIGHT_REPAIR_CROWBAR) - playsound(src.loc, 'sound/items/Crowbar.ogg', 25, 1) - user.visible_message(SPAN_NOTICE("[user] starts prying [src]'s maintenance hatch open."),\ - SPAN_NOTICE("You start prying [src]'s maintenance hatch open.")) - if(do_after(user, 20, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD)) - if(QDELETED(src) || repair_state != FLOODLIGHT_REPAIR_CROWBAR) - return - playsound(src.loc, 'sound/items/Crowbar.ogg', 25, 1) - repair_state = FLOODLIGHT_REPAIR_WELD - user.visible_message(SPAN_NOTICE("[user] pries [src]'s maintenance hatch open."),\ - SPAN_NOTICE("You pry [src]'s maintenance hatch open.")) - return TRUE - - else if(iswelder(I)) - if(!HAS_TRAIT(I, TRAIT_TOOL_BLOWTORCH)) - to_chat(user, SPAN_WARNING("You need a stronger blowtorch!")) - return - var/obj/item/tool/weldingtool/WT = I - - if(!skillcheck(user, SKILL_ENGINEER, SKILL_ENGINEER_ENGI)) - to_chat(user, SPAN_WARNING("You have no clue how to repair [src].")) - return 0 - - if(repair_state == FLOODLIGHT_REPAIR_WELD) - if(WT.remove_fuel(1, user)) - playsound(loc, 'sound/items/weldingtool_weld.ogg', 25) - user.visible_message(SPAN_NOTICE("[user] starts welding [src]'s damage."), - SPAN_NOTICE("You start welding [src]'s damage.")) - if(do_after(user, 40, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD)) - if(QDELETED(src) || !WT.isOn() || repair_state != FLOODLIGHT_REPAIR_WELD) - return - playsound(loc, 'sound/items/Welder2.ogg', 25, 1) - repair_state = FLOODLIGHT_REPAIR_CABLE - user.visible_message(SPAN_NOTICE("[user] welds [src]'s damage."), - SPAN_NOTICE("You weld [src]'s damage.")) - return 1 - else - to_chat(user, SPAN_WARNING("You need more welding fuel to complete this task.")) - return TRUE - - else if(iscoil(I)) - var/obj/item/stack/cable_coil/C = I - if(!skillcheck(user, SKILL_ENGINEER, SKILL_ENGINEER_ENGI)) - to_chat(user, SPAN_WARNING("You have no clue how to repair [src].")) - return 0 - - if(repair_state == FLOODLIGHT_REPAIR_CABLE) - if(C.get_amount() < 2) - to_chat(user, SPAN_WARNING("You need two coils of wire to replace the damaged cables.")) - return - playsound(loc, 'sound/items/Deconstruct.ogg', 25, 1) - user.visible_message(SPAN_NOTICE("[user] starts replacing [src]'s damaged cables."),\ - SPAN_NOTICE("You start replacing [src]'s damaged cables.")) - if(do_after(user, 20, INTERRUPT_ALL, BUSY_ICON_GENERIC)) - if(QDELETED(src) || repair_state != FLOODLIGHT_REPAIR_CABLE) - return - if(C.use(2)) - playsound(loc, 'sound/items/Deconstruct.ogg', 25, 1) - repair_state = FLOODLIGHT_REPAIR_SCREW - user.visible_message(SPAN_NOTICE("[user] starts replaces [src]'s damaged cables."),\ - SPAN_NOTICE("You replace [src]'s damaged cables.")) - return TRUE - - - ..() - return 0 - -/obj/structure/machinery/colony_floodlight/attack_hand(mob/user) - if(ishuman(user)) - if(damaged) - to_chat(user, SPAN_WARNING("[src] is damaged.")) - else if(!is_lit) - to_chat(user, SPAN_WARNING("Nothing happens. Looks like it's powered elsewhere.")) - return 0 - ..() - -/obj/structure/machinery/colony_floodlight/get_examine_text(mob/user) - . = ..() - if(ishuman(user)) - if(damaged) - . += SPAN_WARNING("It is damaged.") - if(skillcheck(user, SKILL_ENGINEER, SKILL_ENGINEER_ENGI)) - switch(repair_state) - if(FLOODLIGHT_REPAIR_UNSCREW) . += SPAN_INFO("You must first unscrew its maintenance hatch.") - if(FLOODLIGHT_REPAIR_CROWBAR) . += SPAN_INFO("You must crowbar its maintenance hatch open.") - if(FLOODLIGHT_REPAIR_WELD) . += SPAN_INFO("You must weld the damage to it.") - if(FLOODLIGHT_REPAIR_CABLE) . += SPAN_INFO("You must replace its damaged cables.") - if(FLOODLIGHT_REPAIR_SCREW) . += SPAN_INFO("You must screw its maintenance hatch closed.") - else if(!is_lit) - . += SPAN_INFO("It doesn't seem powered.") - -#undef FLOODLIGHT_REPAIR_UNSCREW -#undef FLOODLIGHT_REPAIR_CROWBAR -#undef FLOODLIGHT_REPAIR_WELD -#undef FLOODLIGHT_REPAIR_CABLE -#undef FLOODLIGHT_REPAIR_SCREW diff --git a/code/game/machinery/hologram.dm b/code/game/machinery/hologram.dm index 9ce3cb89bf79..fe8243704a72 100644 --- a/code/game/machinery/hologram.dm +++ b/code/game/machinery/hologram.dm @@ -45,157 +45,12 @@ * Holopad */ -/* -Revised. Original based on space ninja hologram code. Which is also mine. /N -How it works: -AI clicks on holopad in camera view. View centers on holopad. -AI clicks again on the holopad to display a hologram. Hologram stays as long as AI is looking at the pad and it (the hologram) is in range of the pad. -AI can use the directional keys to move the hologram around, provided the above conditions are met and the AI in question is the holopad's master. -Only one AI may project from a holopad at any given time. -AI may cancel the hologram at any time by clicking on the holopad once more. - -Possible to do for anyone motivated enough: - Give an AI variable for different hologram icons. - Itegrate EMP effect to disable the unit. -*/ - /obj/structure/machinery/hologram/holopad name = "\improper AI holopad" desc = "It's a floor-mounted device for projecting holographic images. It is activated remotely." icon_state = "holopad0" layer = TURF_LAYER+0.1 //Preventing mice and drones from sneaking under them. - - var/mob/living/silicon/ai/master //Which AI, if any, is controlling the object? Only one AI may control a hologram at any time. - var/last_request = 0 //to prevent request spam. ~Carn - var/holo_range = 5 // Change to change how far the AI can move away from the holopad before deactivating. - -/obj/structure/machinery/hologram/holopad/Initialize() - . = ..() - flags_atom |= USES_HEARING - -/obj/structure/machinery/hologram/holopad/Destroy() - QDEL_NULL(master) - . = ..() - -/obj/structure/machinery/hologram/holopad/attack_hand(mob/living/carbon/human/user) //Carn: Hologram requests. - if(!istype(user)) - return - if(alert(user,"Would you like to request an AI's presence?",,"Yes","No") == "Yes") - if(last_request + 200 < world.time) //don't spam the AI with requests you jerk! - last_request = world.time - to_chat(user, SPAN_NOTICE("You request an AI's presence.")) - var/area/area = get_area(src) - for(var/mob/living/silicon/ai/AI in GLOB.alive_mob_list) - if(!AI.client) continue - to_chat(AI, SPAN_INFO("Your presence is requested at \the [area].")) - else - to_chat(user, SPAN_NOTICE("A request for AI presence was already sent recently.")) - -/obj/structure/machinery/hologram/holopad/attack_remote(mob/living/silicon/ai/user) - if (!istype(user)) - return - /*There are pretty much only three ways to interact here. - I don't need to check for client since they're clicking on an object. - This may change in the future but for now will suffice.*/ - if(user.eyeobj.loc != src.loc)//Set client eye on the object if it's not already. - user.eyeobj.setLoc(get_turf(src)) - else if(!hologram)//If there is no hologram, possibly make one. - activate_holo(user) - else if(master==user)//If there is a hologram, remove it. But only if the user is the master. Otherwise do nothing. - clear_holo() - return - -/obj/structure/machinery/hologram/holopad/proc/activate_holo(mob/living/silicon/ai/user) - if(!(stat & NOPOWER) && user.eyeobj.loc == src.loc)//If the projector has power and client eye is on it. - if(!hologram)//If there is not already a hologram. - create_holo(user)//Create one. - src.visible_message("A holographic image of [user] flicks to life right before your eyes!") - else - to_chat(user, SPAN_DANGER("ERROR: \black Image feed in progress.")) - else - to_chat(user, SPAN_DANGER("ERROR: \black Unable to project hologram.")) - return - -/*This is the proc for special two-way communication between AI and holopad/people talking near holopad. -For the other part of the code, check silicon say.dm. Particularly robot talk.*/ -/obj/structure/machinery/hologram/holopad/hear_talk(mob/living/M, text, verb) - if(M&&hologram&&master)//Master is mostly a safety in case lag hits or something. - if(!master.say_understands(M))//The AI will be able to understand most mobs talking through the holopad. - text = stars(text) - var/name_used = M.GetVoice() - //This communication is imperfect because the holopad "filters" voices and is only designed to connect to the master only. - var/rendered = "Holopad received, [name_used] [verb], \"[text]\"" - master.show_message(rendered, SHOW_MESSAGE_AUDIBLE) - return - -/obj/structure/machinery/hologram/holopad/proc/create_holo(mob/living/silicon/ai/A, turf/T = loc) - hologram = new(T)//Spawn a blank effect at the location. - hologram.icon = A.holo_icon - hologram.mouse_opacity = MOUSE_OPACITY_TRANSPARENT//So you can't click on it. - hologram.layer = FLY_LAYER//Above all the other objects/mobs. Or the vast majority of them. - hologram.anchored = TRUE//So space wind cannot drag it. - hologram.name = "[A.name] (Hologram)"//If someone decides to right click. - hologram.set_light(2) //hologram lighting - set_light(2) //pad lighting - icon_state = "holopad1" - A.holo = src - master = A//AI is the master. - use_power = USE_POWER_ACTIVE//Active power usage. - return 1 - -/obj/structure/machinery/hologram/holopad/clear_holo() -// hologram.set_light(0)//Clear lighting. //handled by the lighting controller when its ower is deleted - if(hologram) - qdel(hologram)//Get rid of hologram. - hologram = null - if(master.holo == src) - master.holo = null - master = null//Null the master, since no-one is using it now. - set_light(0) //pad lighting (hologram lighting will be handled automatically since its owner was deleted) - icon_state = "holopad0" - use_power = USE_POWER_IDLE//Passive power usage. - return 1 - -/obj/structure/machinery/hologram/holopad/process() - if(hologram)//If there is a hologram. - if(master && !master.stat && master.client && master.eyeobj)//If there is an AI attached, it's not incapacitated, it has a client, and the client eye is centered on the projector. - if(!(stat & NOPOWER))//If the machine has power. - if(get_dist(master.eyeobj, src) <= holo_range) - return 1 - - clear_holo()//If not, we want to get rid of the hologram. - return 1 - -/obj/structure/machinery/hologram/holopad/proc/move_hologram() - if(hologram) - step_to(hologram, master.eyeobj) // So it turns. - hologram.forceMove(get_turf(master.eyeobj)) - - return 1 - - -/* -Holographic project of everything else. - -/mob/verb/hologram_test() - set name = "Hologram Debug New" - set category = "CURRENT DEBUG" - - var/obj/effect/overlay/hologram = new(loc)//Spawn a blank effect at the location. - var/icon/flat_icon = icon(getFlatIcon(src,0))//Need to make sure it's a new icon so the old one is not reused. - flat_icon.ColorTone(rgb(125,180,225))//Let's make it bluish. - flat_icon.ChangeOpacity(0.5)//Make it half transparent. - var/input = input("Select what icon state to use in effect.",,"") - if(input) - var/icon/alpha_mask = new('icons/effects/effects.dmi', "[input]") - flat_icon.AddAlphaMask(alpha_mask)//Finally, let's mix in a distortion effect. - hologram.icon = flat_icon - - to_world("Your icon should appear now.") - return -*/ - /* * Other Stuff: Is this even used? */ diff --git a/code/game/machinery/iv_drip.dm b/code/game/machinery/iv_drip.dm index e16d2cacf63b..f4a3a9f25cc3 100644 --- a/code/game/machinery/iv_drip.dm +++ b/code/game/machinery/iv_drip.dm @@ -27,7 +27,7 @@ if(reagents.total_volume) var/image/filling = image('icons/obj/structures/machinery/iv_drip.dmi', src, "reagent") - var/percent = round((reagents.total_volume / beaker.volume) * 100) + var/percent = floor((reagents.total_volume / beaker.volume) * 100) switch(percent) if(0 to 9) filling.icon_state = "reagent0" if(10 to 24) filling.icon_state = "reagent10" @@ -190,7 +190,7 @@ . += "The IV drip is [mode ? "injecting" : "taking blood"]." if(beaker) - if(beaker.reagents && beaker.reagents.reagent_list.len) + if(beaker.reagents && length(beaker.reagents.reagent_list)) . += SPAN_NOTICE(" Attached is \a [beaker] with [beaker.reagents.total_volume] units of liquid.") else . += SPAN_NOTICE(" Attached is an empty [beaker].") diff --git a/code/game/machinery/kitchen/gibber.dm b/code/game/machinery/kitchen/gibber.dm index 3fa96ca0bc3a..b71fb51a49de 100644 --- a/code/game/machinery/kitchen/gibber.dm +++ b/code/game/machinery/kitchen/gibber.dm @@ -105,15 +105,28 @@ to_chat(user, SPAN_WARNING("You need a better grip to do that!")) return - if(victim.abiotic(1)) + if(victim.abiotic(TRUE)) to_chat(user, SPAN_WARNING("Subject may not have abiotic items on.")) return user.visible_message(SPAN_DANGER("[user] starts to put [victim] into the gibber!")) add_fingerprint(user) + ///If synth is getting gibbed, we will 'soft gib' them, but this is still pretty LRP so let admin know. + if(issynth(victim) && ishuman_strict(user) && !occupant) + var/turf/turf_ref = get_turf(user) + var/area/area = get_area(user) + message_admins("ALERT: [user] ([user.key]) is trying to shove [victim] in a gibber! (They are a synth, so this will delimb them) ([victim.key]) in [area.name] [ADMIN_JMP(turf_ref)]") + log_attack("[key_name(user)] tried to delimb [victim] using a gibber ([victim.key]) in [area.name]") + to_chat(user, SPAN_DANGER("What are you doing...")) + if(do_after(user, 30 SECONDS, INTERRUPT_ALL, BUSY_ICON_HOSTILE && grabbed && grabbed.grabbed_thing && !occupant)) + user.visible_message(SPAN_DANGER("[user] stuffs [victim] into the gibber!")) + victim.forceMove(src) + occupant = victim + update_icon() + ///If someone's being LRP and doing funny chef shit, this lets admins know. This *shouldn't* flag preds, though. - if(ishuman(victim) && ishuman_strict(user) && !occupant) + else if(ishuman(victim) && ishuman_strict(user) && !occupant) var/turf/turf_ref = get_turf(user) var/area/area = get_area(user) message_admins("ALERT: [user] ([user.key]) is trying to gib [victim] ([victim.key]) in [area.name] [ADMIN_JMP(turf_ref)]") @@ -142,18 +155,23 @@ add_fingerprint(usr) return -/obj/structure/machinery/gibber/proc/go_out() +/obj/structure/machinery/gibber/proc/go_out(launch = FALSE) if (!occupant) - return + return FALSE for(var/obj/O in src) O.forceMove(loc) if (occupant.client) occupant.client.eye = occupant.client.mob occupant.client.perspective = MOB_PERSPECTIVE occupant.forceMove(loc) + if(launch) + // yeet them out of the gibber + visible_message(SPAN_DANGER("[occupant] suddenly is launched out of the [src]!")) + var/turf/Tx = locate(x - 3, y, z) + occupant.throw_atom(Tx, 3, SPEED_FAST, src, TRUE) occupant = null update_icon() - return + return TRUE /obj/structure/machinery/gibber/proc/startgibbing(mob/user as mob) @@ -162,13 +180,18 @@ if(!occupant) visible_message(SPAN_DANGER("You hear a loud metallic grinding sound.")) return + var/synthetic = issynth(occupant) use_power(1000) - visible_message(SPAN_DANGER("You hear a loud squelchy grinding sound.")) - operating = 1 + if(synthetic) + visible_message(SPAN_BOLDWARNING("[src] begins to emitt sparks out the top as a banging noise can be heard!"), SPAN_BOLDWARNING("You hear a myriad of loud bangs!")) + else + visible_message(SPAN_DANGER("You hear a loud squelchy grinding sound.")) + operating = TRUE update_icon() var/totalslabs = 2 + var/obj/item/reagent_container/food/snacks/meat/meat_template = /obj/item/reagent_container/food/snacks/meat/monkey if(istype(occupant, /mob/living/carbon/xenomorph)) var/mob/living/carbon/xenomorph/X = occupant @@ -186,6 +209,35 @@ meat_template = /obj/item/reagent_container/food/snacks/meat/human totalslabs = 3 + // Synths only get delimbed from this. 1 meat per limb + if(synthetic) + meat_template = /obj/item/reagent_container/food/snacks/meat/synthmeat/synthflesh + totalslabs = 0 + var/mob/living/carbon/human/victim = occupant + + // Remove all limbs to allow synth to park closer at the supermarket + var/obj/limb/limb + + if(victim.has_limb("l_leg")) + limb = victim.get_limb("r_leg") + totalslabs += 1 + limb.droplimb(FALSE, TRUE, "gibber") + + if(victim.has_limb("l_leg")) + limb = victim.get_limb("l_leg") + totalslabs += 1 + limb.droplimb(FALSE, TRUE, "gibber") + + if(victim.has_limb("r_arm")) + limb = victim.get_limb("r_arm") + totalslabs += 1 + limb.droplimb(FALSE, TRUE, "gibber") + + if(victim.has_limb("l_arm")) + limb = victim.get_limb("l_arm") + totalslabs += 1 + limb.droplimb(FALSE, TRUE, "gibber") + var/obj/item/reagent_container/food/snacks/meat/allmeat[totalslabs] for(var/i in 1 to totalslabs) var/obj/item/reagent_container/food/snacks/meat/newmeat @@ -194,26 +246,37 @@ newmeat.name = newmeat.made_from_player + newmeat.name allmeat[i] = newmeat - if(src.occupant.client) // Gibbed a cow with a client in it? log that shit - src.occupant.attack_log += "\[[time_stamp()]\] Was gibbed by [key_name(user)]" + // Synths wont die to this (on it's own at least), dont log as a gib + if(synthetic) + if(occupant.client) // Log still + occupant.attack_log += "\[[time_stamp()]\] Was delimbed by [key_name(user)]" + user.attack_log += "\[[time_stamp()]\] delimbed [key_name(occupant)]" + msg_admin_attack("[key_name(user)] delimbed [key_name(occupant)] with a gibber in [user.loc.name]([user.x], [user.y], [user.z]).", user.x, user.y, user.z) + continue + + if(occupant.client) // Gibbed a cow with a client in it? log that shit + occupant.attack_log += "\[[time_stamp()]\] Was gibbed by [key_name(user)]" user.attack_log += "\[[time_stamp()]\] Gibbed [key_name(occupant)]" msg_admin_attack("[key_name(user)] gibbed [key_name(occupant)] in [user.loc.name] ([user.x], [user.y], [user.z]).", user.x, user.y, user.z) - src.occupant.death(create_cause_data("gibber", user), TRUE) - src.occupant.ghostize() - - QDEL_NULL(occupant) + occupant.death(create_cause_data("gibber", user), TRUE) + occupant.ghostize() addtimer(CALLBACK(src, PROC_REF(create_gibs), totalslabs, allmeat), gibtime) + if(synthetic) + to_chat(occupant, SPAN_HIGHDANGER("You can detect your limbs being ripped off your body, but it begins to malfunction as it reaches your torso!")) + addtimer(CALLBACK(src, PROC_REF(go_out), TRUE), gibtime) + else + QDEL_NULL(occupant) /obj/structure/machinery/gibber/proc/create_gibs(totalslabs, list/obj/item/reagent_container/food/snacks/allmeat) playsound(loc, 'sound/effects/splat.ogg', 25, 1) operating = FALSE + var/turf/Tx = locate(x - 1, y, z) for (var/i in 1 to totalslabs) var/obj/item/meatslab = allmeat[i] - var/turf/Tx = locate(x - i, y, z) meatslab.forceMove(loc) - meatslab.throw_atom(Tx, i, SPEED_FAST, src) + meatslab.throw_atom(Tx, 1, SPEED_FAST, src) if (!Tx.density) if(istype(meatslab, /obj/item/reagent_container/food/snacks/meat/xenomeat)) new /obj/effect/decal/cleanable/blood/gibs/xeno(Tx) diff --git a/code/game/machinery/kitchen/juicer.dm b/code/game/machinery/kitchen/juicer.dm index 0a15c1bcf5ec..e538ad1185db 100644 --- a/code/game/machinery/kitchen/juicer.dm +++ b/code/game/machinery/kitchen/juicer.dm @@ -141,7 +141,7 @@ else if (O.potency == -1) return 5 else - return round(5*sqrt(O.potency)) + return floor(5*sqrt(O.potency)) /obj/structure/machinery/juicer/proc/juice() power_change() //it is a portable machine diff --git a/code/game/machinery/kitchen/microwave.dm b/code/game/machinery/kitchen/microwave.dm index 220772e98b17..dbb93a0e30c1 100644 --- a/code/game/machinery/kitchen/microwave.dm +++ b/code/game/machinery/kitchen/microwave.dm @@ -42,7 +42,7 @@ for (var/reagent in recipe.reagents) acceptable_reagents |= reagent if (recipe.items) - max_n_of_items = max(max_n_of_items,recipe.items.len) + max_n_of_items = max(max_n_of_items,length(recipe.items)) // This will do until I can think of a fun recipe to use dionaea in - // will also allow anything using the holder item to be microwaved into @@ -115,7 +115,7 @@ else if(operating) to_chat(user, SPAN_DANGER("It's running!")) else if(is_type_in_list(O,acceptable_items)) - if (contents.len>=max_n_of_items) + if (length(contents)>=max_n_of_items) to_chat(user, SPAN_DANGER("This [src] is full of ingredients, you cannot put more.")) return 1 if(istype(O, /obj/item/stack) && O:get_amount() > 1) // This is bad, but I can't think of how to change it @@ -229,8 +229,9 @@ //************************************/ /obj/structure/machinery/microwave/proc/cook(time_multiplier = 1) - if(inoperable()) + if(inoperable() || operating) return + start() if (reagents.total_volume==0 && !(locate(/obj) in contents)) //dry run if (!wzhzhzh(10 * time_multiplier)) @@ -270,7 +271,7 @@ cooked.forceMove(src.loc) return else - var/halftime = round(recipe.time/10/2) + var/halftime = floor(recipe.time/10/2) if (!wzhzhzh(halftime * time_multiplier)) abort() return diff --git a/code/game/machinery/kitchen/processor.dm b/code/game/machinery/kitchen/processor.dm index a18f5db8af43..62455d770539 100644 --- a/code/game/machinery/kitchen/processor.dm +++ b/code/game/machinery/kitchen/processor.dm @@ -19,15 +19,44 @@ /datum/food_processor_process/process(loc, what) if (src.output && loc) - new src.output(loc) + var/obj/item/reagent_container/food/snacks/created_food = new src.output(loc) + var/obj/item/reagent_container/food/snacks/original_food = what + if(original_food.made_from_player) + created_food.made_from_player = original_food.made_from_player + created_food.name = (created_food.made_from_player + created_food.name) if (what) qdel(what) +/datum/food_processor_process/proc/can_use(mob/user) + // By default, anyone can do it. + return TRUE + /* objs */ + +/datum/food_processor_process/xenomeat + input = /obj/item/reagent_container/food/snacks/meat/xenomeat + output = /obj/item/reagent_container/food/snacks/meat/xenomeat/processed + +/datum/food_processor_process/xenomeat/can_use(mob/user) + if(!skillcheck(user, SKILL_DOMESTIC, SKILL_DOMESTIC_MASTER)) + to_chat(user, SPAN_DANGER("You aren't trained to remove dangerous substances from food!")) + return FALSE + return TRUE + /datum/food_processor_process/meat input = /obj/item/reagent_container/food/snacks/meat output = /obj/item/reagent_container/food/snacks/rawmeatball +/datum/food_processor_process/carpmeat + input = /obj/item/reagent_container/food/snacks/carpmeat + output = /obj/item/reagent_container/food/snacks/carpmeat/processed + +/datum/food_processor_process/carpmeat/can_use(mob/user) + if(!skillcheck(user, SKILL_DOMESTIC, SKILL_DOMESTIC_MASTER)) + to_chat(user, SPAN_DANGER("You aren't trained to remove dangerous substances from food!")) + return FALSE + return TRUE + /datum/food_processor_process/potato input = /obj/item/reagent_container/food/snacks/grown/potato output = /obj/item/reagent_container/food/snacks/rawsticks @@ -73,7 +102,7 @@ if(processing) to_chat(user, SPAN_DANGER("The processor is in the process of processing.")) return 1 - if(contents.len > 0) //TODO: several items at once? several different items? + if(length(contents) > 0) //TODO: several items at once? several different items? to_chat(user, SPAN_DANGER("Something is already in the processing chamber.")) return 1 if(HAS_TRAIT(O, TRAIT_TOOL_WRENCH)) @@ -88,6 +117,8 @@ if (!P) to_chat(user, SPAN_DANGER("That probably won't blend.")) return 1 + if(!P.can_use(user)) + return 1 user.visible_message("[user] put [what] into [src].", \ "You put [what] into [src].") user.drop_held_item() @@ -99,7 +130,7 @@ if(src.processing) to_chat(user, SPAN_DANGER("The processor is in the process of processing.")) return 1 - if(src.contents.len == 0) + if(length(src.contents) == 0) to_chat(user, SPAN_DANGER("The processor is empty.")) return 1 for(var/O in src.contents) diff --git a/code/game/machinery/kitchen/smartfridge.dm b/code/game/machinery/kitchen/smartfridge.dm index 6d3e18933457..774153316baa 100644 --- a/code/game/machinery/kitchen/smartfridge.dm +++ b/code/game/machinery/kitchen/smartfridge.dm @@ -125,7 +125,7 @@ user.visible_message( \ SPAN_NOTICE("[user] loads \the [src] with \the [P]."), \ SPAN_NOTICE("You load \the [src] with \the [P].")) - if(P.contents.len > 0) + if(length(P.contents) > 0) to_chat(user, SPAN_NOTICE("Some items are refused.")) else if(!(O.flags_item & NOBLUDGEON)) //so we can spray, scan, c4 the machine. @@ -186,7 +186,7 @@ var/list/wire_descriptions = get_wire_descriptions() var/list/panel_wires = list() - for(var/wire = 1 to wire_descriptions.len) + for(var/wire = 1 to length(wire_descriptions)) panel_wires += list(list("desc" = wire_descriptions[wire], "cut" = isWireCut(wire))) .["electrical"] = list( diff --git a/code/game/machinery/machinery.dm b/code/game/machinery/machinery.dm index c5eaa14e05b5..f835ecaa424c 100644 --- a/code/game/machinery/machinery.dm +++ b/code/game/machinery/machinery.dm @@ -247,19 +247,17 @@ Class Procs: return (user.IsAdvancedToolUser(user) || isRemoteControlling(user)) /obj/structure/machinery/attack_remote(mob/user as mob) - if(isrobot(user)) - // For some reason attack_robot doesn't work - // This is to stop robots from using cameras to remotely control machines. - if(user.client && user.client.eye == user) - return src.attack_hand(user) - else - return src.attack_hand(user) + return src.attack_hand(user) /obj/structure/machinery/attack_hand(mob/living/user as mob) if(inoperable(MAINT)) return TRUE if(user.is_mob_incapacitated()) return TRUE + if(!(istype(user, /mob/living/carbon/human) || isRemoteControlling(user) || istype(user, /mob/living/carbon/xenomorph))) + if(!HAS_TRAIT(user, TRAIT_OPPOSABLE_THUMBS)) + to_chat(usr, SPAN_DANGER("You don't have the dexterity to do this!")) + return TRUE if(!is_valid_user(user)) to_chat(usr, SPAN_DANGER("You don't have the dexterity to do this!")) return TRUE @@ -327,3 +325,102 @@ Class Procs: /obj/structure/machinery/ui_state(mob/user) return GLOB.not_incapacitated_and_adjacent_state + +//made into "prop" from an old destilery project abandon 9 year ago. + +/obj/structure/machinery/mill + name = "\improper Mill" + desc = "It is a machine that grinds produce." + icon_state = "autolathe" + density = TRUE + anchored = TRUE + +/obj/structure/machinery/fermenter + name = "\improper Fermenter" + desc = "It is a machine that ferments produce into alcoholic drinks." + icon_state = "autolathe" + density = TRUE + anchored = TRUE + +/obj/structure/machinery/still + name = "\improper Still" + desc = "It is a machine that produces hard liquor from alcoholic drinks." + icon_state = "autolathe" + density = TRUE + anchored = TRUE + +/obj/structure/machinery/squeezer + name = "\improper Squeezer" + desc = "It is a machine that squeezes extracts from produce." + icon_state = "autolathe" + density = TRUE + anchored = TRUE + +/obj/structure/machinery/fuelpump + name = "\improper Fuel Pump" + layer = ABOVE_MOB_LAYER + desc = "It is a machine that pumps fuel around the ship." + icon = 'icons/obj/structures/machinery/fuelpump.dmi' + icon_state = "fuelpump_off" + health = null + indestructible = TRUE + density = TRUE + anchored = TRUE + unslashable = TRUE + unacidable = TRUE + wrenchable = FALSE + +/obj/structure/machinery/fuelpump/ex_act(severity) + return + +/obj/structure/machinery/fuelpump/Initialize(mapload, ...) + . = ..() + RegisterSignal(SSdcs, COMSIG_GLOB_FUEL_PUMP_UPDATE, PROC_REF(on_pump_update)) + +/obj/structure/machinery/fuelpump/proc/on_pump_update() + SIGNAL_HANDLER + playsound(src, 'sound/machines/resource_node/node_idle.ogg', 60, TRUE) + update_icon() + +/obj/structure/machinery/fuelpump/update_icon() + if(stat & NOPOWER) + icon_state = "fuelpump_off" + return + if(SShijack.hijack_status < HIJACK_OBJECTIVES_STARTED) + icon_state = "fuelpump_on" + return + switch(SShijack.current_progress) + if(-INFINITY to 24) + icon_state = "fuelpump_0" + if(25 to 49) + icon_state = "fuelpump_25" + if(50 to 74) + icon_state = "fuelpump_50" + if(75 to 99) + icon_state = "fuelpump_75" + if(100 to INFINITY) + icon_state = "fuelpump_100" + else + icon_state = "fuelpump_on" // Never should happen + +/obj/structure/machinery/fuelpump/get_examine_text(mob/user) + . = ..() + if(get_dist(user, src) > 2 && user != loc) + return + if(inoperable()) + return + if(SShijack.hijack_status < HIJACK_OBJECTIVES_STARTED) + return + switch(SShijack.current_progress) + if(-INFINITY to 24) + . += SPAN_NOTICE("It looks like it barely has any fuel yet.") + if(25 to 49) + . += SPAN_NOTICE("It looks like it has accumulated some fuel.") + if(50 to 74) + . += SPAN_NOTICE("It looks like the fuel tank is a little over half full.") + if(75 to 99) + . += SPAN_NOTICE("It looks like the fuel tank is almost full.") + if(100 to INFINITY) + . += SPAN_NOTICE("It looks like the fuel tank is full.") + else + . += SPAN_NOTICE("It looks like something is wrong!") // Never should happen diff --git a/code/game/machinery/medical_pod/autodoc.dm b/code/game/machinery/medical_pod/autodoc.dm index 7049df4c661c..ef335c6841e6 100644 --- a/code/game/machinery/medical_pod/autodoc.dm +++ b/code/game/machinery/medical_pod/autodoc.dm @@ -109,7 +109,7 @@ /obj/structure/machinery/medical_pod/autodoc/proc/heal_limb(mob/living/carbon/human/human, brute, burn) var/list/obj/limb/parts = human.get_damaged_limbs(brute,burn) - if(!parts.len) return + if(!length(parts)) return var/obj/limb/picked = pick(parts) if(picked.status & (LIMB_ROBOT|LIMB_SYNTHSKIN)) picked.heal_damage(brute, burn, TRUE) @@ -248,7 +248,7 @@ if(L.status & LIMB_DESTROYED) if(!(L.parent.status & LIMB_DESTROYED) && L.name != "head") surgery_list += create_autodoc_surgery(L,LIMB_SURGERY,"missing") - if(L.implants.len) + if(length(L.implants)) for(var/I in L.implants) if(!is_type_in_list(I,known_implants)) surgery_list += create_autodoc_surgery(L,LIMB_SURGERY,"shrapnel") @@ -294,7 +294,7 @@ var/list/surgery_todo_list = N.fields["autodoc_manual"] - if(!surgery_todo_list.len) + if(!length(surgery_todo_list)) visible_message("\The [src] buzzes, no surgical procedures were queued.") return @@ -320,7 +320,7 @@ surgery_todo_list -= A var/currentsurgery = 1 - while(surgery_todo_list.len > 0) + while(length(surgery_todo_list) > 0) if(!surgery) break; sleep(-1) @@ -331,10 +331,11 @@ if(ORGAN_SURGERY) switch(S.surgery_procedure) if("damage") - if(prob(30)) visible_message("[icon2html(src, viewers(src))] \The [src] speaks: Beginning organ restoration."); + if(prob(30)) + visible_message("[icon2html(src, viewers(src))] \The [src] speaks: Beginning organ restoration.") if(S.unneeded) sleep(UNNEEDED_DELAY) - visible_message("[icon2html(src, viewers(src))] \The [src] speaks: Procedure has been deemed unnecessary."); + visible_message("[icon2html(src, viewers(src))] \The [src] speaks: Procedure has been deemed unnecessary.") surgery_todo_list -= S continue open_incision(H,S.limb_ref) @@ -352,7 +353,7 @@ if(istype(S.organ_ref,/datum/internal_organ)) S.organ_ref.rejuvenate() else - visible_message("[icon2html(src, viewers(src))] \The [src] speaks: Organ is missing."); + visible_message("[icon2html(src, viewers(src))] \The [src] speaks: Organ is missing.") // close them if(S.limb_ref.name != "groin") // TODO: fix brute damage before closing @@ -360,10 +361,11 @@ close_incision(H,S.limb_ref) if("eyes") - if(prob(30)) visible_message("[icon2html(src, viewers(src))] \The [src] speaks: Beginning corrective eye surgery."); + if(prob(30)) + visible_message("[icon2html(src, viewers(src))] \The [src] speaks: Beginning corrective eye surgery.") if(S.unneeded) sleep(UNNEEDED_DELAY) - visible_message("[icon2html(src, viewers(src))] \The [src] speaks: Procedure has been deemed unnecessary."); + visible_message("[icon2html(src, viewers(src))] \The [src] speaks: Procedure has been deemed unnecessary.") surgery_todo_list -= S continue if(istype(S.organ_ref,/datum/internal_organ/eyes)) @@ -392,22 +394,40 @@ H.sdisabilities &= ~DISABILITY_BLIND E.heal_damage(E.damage) E.eye_surgery_stage = 0 + if("larva") + if(prob(30)) + visible_message("[icon2html(src, viewers(src))] \The [src]beeps: Removing unknown parasites.") + if(!locate(/obj/item/alien_embryo) in occupant) + sleep(UNNEEDED_DELAY) + visible_message("[icon2html(src, viewers(src))] [src] speaks: Procedure has been deemed unnecessary.")// >:) + surgery_todo_list -= S + continue + sleep(SCALPEL_MAX_DURATION + HEMOSTAT_MAX_DURATION + REMOVE_OBJECT_MAX_DURATION) + var/obj/item/alien_embryo/alien_larva = locate() in occupant + var/mob/living/carbon/xenomorph/larva/living_xeno = locate() in occupant + if(living_xeno) + living_xeno.forceMove(get_turf(occupant)) //funny stealth larva bursts incoming + qdel(alien_larva) + else + alien_larva.forceMove(get_turf(occupant)) + occupant.status_flags &= ~XENO_HOST if(LIMB_SURGERY) switch(S.surgery_procedure) if("internal") - if(prob(30)) visible_message("[icon2html(src, viewers(src))] \The [src] speaks: Beginning internal bleeding procedure."); + if(prob(30)) + visible_message("[icon2html(src, viewers(src))] \The [src] speaks: Beginning internal bleeding procedure.") if(S.unneeded) sleep(UNNEEDED_DELAY) - visible_message("[icon2html(src, viewers(src))] \The [src] speaks: Procedure has been deemed unnecessary."); + visible_message("[icon2html(src, viewers(src))] \The [src] speaks: Procedure has been deemed unnecessary.") surgery_todo_list -= S continue open_incision(H,S.limb_ref) for(var/datum/wound/W in S.limb_ref.wounds) if(!surgery) break if(W.internal) - sleep(FIXVEIN_MAX_DURATION*surgery_mod) + sleep(FIXVEIN_MIN_DURATION-30) S.limb_ref.wounds -= W S.limb_ref.remove_all_bleeding(FALSE, TRUE) qdel(W) @@ -415,15 +435,15 @@ close_incision(H,S.limb_ref) if("broken") - if(prob(30)) visible_message("[icon2html(src, viewers(src))] \The [src] speaks: Beginning broken bone procedure."); + if(prob(30)) + visible_message("[icon2html(src, viewers(src))] \The [src] speaks: Beginning broken bone procedure.") if(S.unneeded) sleep(UNNEEDED_DELAY) - visible_message("[icon2html(src, viewers(src))] \The [src] speaks: Procedure has been deemed unnecessary."); + visible_message("[icon2html(src, viewers(src))] \The [src] speaks: Procedure has been deemed unnecessary.") surgery_todo_list -= S continue open_incision(H,S.limb_ref) - sleep(BONEGEL_REPAIR_MAX_DURATION*surgery_mod) - sleep(BONESETTER_MAX_DURATION*surgery_mod) + sleep(BONEGEL_REPAIR_MAX_DURATION*surgery_mod+20) if(S.limb_ref.brute_dam > 20) sleep(((S.limb_ref.brute_dam - 20)/2)*surgery_mod) if(!surgery) break @@ -437,10 +457,11 @@ close_incision(H,S.limb_ref) if("missing") - if(prob(30)) visible_message("[icon2html(src, viewers(src))] \The [src] speaks: Beginning limb replacement."); + if(prob(30)) + visible_message("[icon2html(src, viewers(src))] \The [src] speaks: Beginning limb replacement.") if(S.unneeded) sleep(UNNEEDED_DELAY) - visible_message("[icon2html(src, viewers(src))] \The [src] speaks: Procedure has been deemed unnecessary."); + visible_message("[icon2html(src, viewers(src))] \The [src] speaks: Procedure has been deemed unnecessary.") surgery_todo_list -= S continue @@ -487,7 +508,7 @@ open_incision(H,S.limb_ref) if(S.limb_ref.name == "chest" || S.limb_ref.name == "head") open_encased(H,S.limb_ref) - if(S.limb_ref.implants.len) + if(length(S.limb_ref.implants)) for(var/obj/item/I in S.limb_ref.implants) if(!surgery) break if(!is_type_in_list(I,known_implants)) @@ -519,6 +540,7 @@ close_encased(H,S.limb_ref) close_incision(H,S.limb_ref) + if(prob(30)) visible_message("[icon2html(src, viewers(src))] \The [src] speaks: Procedure complete."); surgery_todo_list -= S continue @@ -590,6 +612,8 @@ unslashable = TRUE use_power = USE_POWER_IDLE idle_power_usage = 40 + /// What kind of upgrade do we have in this console? used by research upgrades. 1 is IB. 2 is bone frac. 3 is organ damage. 4 is larva removal + var/list/upgrades = list() /obj/structure/machinery/autodoc_console/Initialize() . = ..() @@ -629,6 +653,18 @@ /obj/structure/machinery/autodoc_console/process() updateUsrDialog() +/obj/structure/machinery/autodoc_console/attackby(obj/item/with, mob/user) + if(istype(with, /obj/item/research_upgrades/autodoc)) + var/obj/item/research_upgrades/autodoc/upgrd = with + for(var/iter in upgrades) + if(iter == upgrd.value) + to_chat(user, SPAN_NOTICE("This data is already present in [src]!")) + return + if(!user.drop_inv_item_to_loc(with, src)) + return + to_chat(user, SPAN_NOTICE("You insert the data into [src] and the drive whirrs to life, reading the data.")) + upgrades += upgrd.value + /obj/structure/machinery/autodoc_console/attack_hand(mob/living/user) if(..()) return @@ -700,6 +736,9 @@ if("eyes") surgeryqueue["eyes"] = 1 dat += "Corrective Eye Surgery" + if("larva") + surgeryqueue["larva"] = 1 + dat += "Experimental Parasite Surgery" if(LIMB_SURGERY) switch(A.surgery_procedure) if("internal") @@ -720,6 +759,7 @@ if("open") surgeryqueue["open"] = 1 dat += "Close Open Incisions" + dat += "
        " dat += "
        Begin Surgery - Refresh Menu - Clear Queue
        " @@ -743,6 +783,22 @@ if(isnull(surgeryqueue["toxin"])) dat += "Bloodstream Toxin Removal
        " dat += "
        " + if(length(upgrades)) + dat += "Orthopedic Surgeries" + for(var/iter in upgrades) + switch(iter) + if(RESEARCH_UPGRADE_TIER_2) + if(isnull(surgeryqueue["broken"])) + dat += "Broken Bone Surgery
        " + if(RESEARCH_UPGRADE_TIER_1) + if(isnull(surgeryqueue["internal"])) + dat += "Internal Bleeding Surgery
        " + if(RESEARCH_UPGRADE_TIER_3) + if(isnull(surgeryqueue["organdamage"])) + dat += "Organ Damage Treatment
        " + if(RESEARCH_UPGRADE_TIER_4) + if(isnull(surgeryqueue["larva"])) + dat += "Experimental Parasite Exctraction
        " else dat += "The autodoc is empty." dat += text("Close", user) @@ -797,7 +853,9 @@ if(!needed) N.fields["autodoc_manual"] += create_autodoc_surgery(null,ORGAN_SURGERY,"damage",1) updateUsrDialog() - + if(href_list["larva"]) + N.fields["autodoc_manual"] += create_autodoc_surgery("chest",ORGAN_SURGERY,"larva",0) + updateUsrDialog() if(href_list["internal"]) for(var/obj/limb/L in connected.occupant.limbs) if(L) @@ -835,7 +893,7 @@ var/known_implants = list(/obj/item/implant/chem, /obj/item/implant/death_alarm, /obj/item/implant/loyalty, /obj/item/implant/tracking, /obj/item/implant/neurostim) for(var/obj/limb/L in connected.occupant.limbs) if(L) - if(L.implants.len) + if(length(L.implants)) for(var/I in L.implants) if(!is_type_in_list(I,known_implants)) N.fields["autodoc_manual"] += create_autodoc_surgery(L,LIMB_SURGERY,"shrapnel") diff --git a/code/game/machinery/medical_pod/bodyscanner.dm b/code/game/machinery/medical_pod/bodyscanner.dm index bbc3be7d5aae..54b454f945a8 100644 --- a/code/game/machinery/medical_pod/bodyscanner.dm +++ b/code/game/machinery/medical_pod/bodyscanner.dm @@ -204,7 +204,7 @@ "toxloss" = H.getToxLoss(), "cloneloss" = H.getCloneLoss(), "brainloss" = H.getBrainLoss(), - "knocked_out" = H.GetKnockOutValueNotADurationDoNotUse(), + "knocked_out" = H.GetKnockOutDuration(), "bodytemp" = H.bodytemperature, "inaprovaline_amount" = H.reagents.get_reagent_amount("inaprovaline"), "dexalin_amount" = H.reagents.get_reagent_amount("dexalin"), @@ -263,7 +263,7 @@ s_class = occ["brainloss"] < 1 ? INTERFACE_GOOD : INTERFACE_BAD dat += "[SET_CLASS("  Approx. Brain Damage:", INTERFACE_PINK)] [SET_CLASS("[occ["brainloss"]]%", s_class)]

        " - dat += "[SET_CLASS("Knocked Out Summary:", "#40628a")] [occ["knocked_out"]]% (approximately [round(occ["knocked_out"] / 5)] seconds left!)
        " + dat += "[SET_CLASS("Knocked Out Summary:", "#40628a")] [occ["knocked_out"]]% (approximately [floor(occ["knocked_out"] * GLOBAL_STATUS_MULTIPLIER / (1 SECONDS))] seconds left!)
        " dat += "[SET_CLASS("Body Temperature:", "#40628a")] [occ["bodytemp"]-T0C]°C ([occ["bodytemp"]*1.8-459.67]°F)

        " s_class = occ["blood_amount"] > 448 ? INTERFACE_OKAY : INTERFACE_BAD @@ -333,7 +333,7 @@ open = "Open
        " var/unknown_body = 0 - if (e.implants.len) + if (length(e.implants)) for(var/I in e.implants) if(is_type_in_list(I,known_implants)) imp += "[I] implanted
        " diff --git a/code/game/machinery/medical_pod/bone_gel_refill.dm b/code/game/machinery/medical_pod/bone_gel_refill.dm new file mode 100644 index 000000000000..caf25ac438ec --- /dev/null +++ b/code/game/machinery/medical_pod/bone_gel_refill.dm @@ -0,0 +1,12 @@ +/obj/structure/machinery/gel_refiller + name = "osteomimetic lattice fabricator" + desc = "Often called the bone gel refiller by those unable to pronounce its full name, this machine synthesizes and stores bone gel for later use. A slot in the front allows you to insert a bone gel bottle to refill it." + desc_lore = "In an attempt to prevent counterfeit bottles of bone gel not created by Weyland-Yutani, also known as a regular bottle, from being refilled, there is a chip reader in the fabricator and a chip in each bottle to make sure it is genuine. However, due to a combination of quality issues and being unmaintainable from proprietary parts, the machine often has problems. One such problem is in the chip reader, resulting in the fabricator being unable to detect a bottle directly on it, and such fails to activate, resulting in a person having to stand there and manually hold a bottle at the correct height to fill it." + icon_state = "bone_gel_vendor" + density = TRUE + +/obj/structure/machinery/gel_refiller/attackby(obj/item/attacking_item, mob/user) + if(!istype(attacking_item, /obj/item/tool/surgery/bonegel)) + return ..() + var/obj/item/tool/surgery/bonegel/gel = attacking_item + gel.refill_gel(src, user) diff --git a/code/game/machinery/medical_pod/sleeper.dm b/code/game/machinery/medical_pod/sleeper.dm index fe2b698caed0..34da9a8128f0 100644 --- a/code/game/machinery/medical_pod/sleeper.dm +++ b/code/game/machinery/medical_pod/sleeper.dm @@ -59,6 +59,20 @@ // tgui \\ +/obj/structure/machinery/sleep_console/attackby(obj/item/with, mob/user) + if(!istype(with, /obj/item/research_upgrades/sleeper)) + return + if(connected.upgraded) + return + if(!user.drop_inv_item_to_loc(with, src)) + return + to_chat(user, SPAN_NOTICE("As you insert [with] into the console, you hear it whir to life as [src] reads it.")) + connected.upgraded = TRUE + connected.available_chemicals = connected.upgraded_chemicals + connected.emergency_chems = connected.upgraded_emergency_chems + connected.reagent_removed_per_second = connected.reagent_removed_per_second_upgraded + + /obj/structure/machinery/sleep_console/attack_hand(mob/living/user) if(..()) return @@ -152,7 +166,7 @@ if(!(NO_BLOOD in human_occupant.species.flags)) occupantData["pulse"] = human_occupant.get_pulse(GETPULSE_TOOL) occupantData["hasBlood"] = 1 - occupantData["bloodLevel"] = round(occupant.blood_volume) + occupantData["bloodLevel"] = floor(occupant.blood_volume) occupantData["bloodMax"] = occupant.max_blood occupantData["bloodPercent"] = round(100*(occupant.blood_volume/occupant.max_blood), 0.01) @@ -208,6 +222,14 @@ var/amount = text2num(params["amount"]) if(!length(chemical) || amount <= 0) return + if(!(amount in connected.amounts)) + log_debug("[amount] is an invalid amount to inject in [src]!") + return + if(!(chemical in connected.available_chemicals)) + log_debug("[chemical] is not available to inject in [src]!") + return + if(connected.occupant.reagents && connected.occupant.reagents.get_reagent_amount(chemical) + amount > connected.max_chem) + return if(connected.occupant.health > connected.min_health || (chemical in connected.emergency_chems)) connected.inject_chemical(usr, chemical, amount) else @@ -235,16 +257,21 @@ entry_timer = 2 SECONDS - var/available_chemicals = list("inaprovaline", "paracetamol", "anti_toxin", "dexalin", "tricordrazine") - var/emergency_chems = list("inaprovaline", "paracetamol", "anti_toxin", "dexalin", "tricordrazine", "oxycodone", "bicaridine", "kelotane") - var/amounts = list(5, 10) + var/list/available_chemicals = list("inaprovaline", "paracetamol", "anti_toxin", "dexalin", "tricordrazine") + var/list/upgraded_chemicals = list("inaprovaline", "tramadol", "anti_toxin", "dexalinp", "tricordrazine", "alkysine", "imidazoline") + var/list/emergency_chems = list("inaprovaline", "paracetamol", "anti_toxin", "dexalin", "tricordrazine", "oxycodone", "bicaridine", "kelotane") + var/list/upgraded_emergency_chems = list("inaprovaline", "tramadol", "anti_toxin", "dexalinp", "tricordrazine", "oxycodone", "bicaridine", "kelotane", "meralyne", "dermaline", "alkysine", "imidazoline") + var/list/amounts = list(5, 10) var/filtering = FALSE var/obj/structure/machinery/sleep_console/connected var/min_health = 10 var/max_chem = 40 var/auto_eject_dead = FALSE var/reagent_removed_per_second = AMOUNT_PER_TIME(3, 1 SECONDS) + var/reagent_removed_per_second_upgraded = AMOUNT_PER_TIME(8, 1 SECONDS) var/dialysis_started_reagent_vol = null // how many reagents the occupant had in them when we STARTED dialysis + ///is it already upgraded by research disc and do we have upgraded chemicals? + var/upgraded = FALSE use_power = USE_POWER_IDLE idle_power_usage = 15 @@ -391,7 +418,7 @@ to_chat(user, "[]\t -Toxin Content %: []", (occupant.getToxLoss() < 60 ? SPAN_NOTICE("") : SPAN_DANGER("")), occupant.getToxLoss()) to_chat(user, "[]\t -Burn Severity %: []", (occupant.getFireLoss() < 60 ? SPAN_NOTICE("") : SPAN_DANGER("")), occupant.getFireLoss()) to_chat(user, SPAN_NOTICE(" Expected time till occupant can safely awake: (note: These times are always inaccurate)")) - to_chat(user, SPAN_NOTICE(" \t [occupant.GetKnockOutValueNotADurationDoNotUse() / 5] second\s (if around 1 or 2 the sleeper is keeping them asleep.)")) + to_chat(user, SPAN_NOTICE(" \t [occupant.GetKnockOutDuration() * GLOBAL_STATUS_MULTIPLIER / (1 SECONDS)] second\s (if around 1 or 2 the sleeper is keeping them asleep.)")) else to_chat(user, SPAN_NOTICE(" There is no one inside!")) return diff --git a/code/game/machinery/newscaster.dm b/code/game/machinery/newscaster.dm index 9bd7e5f5e965..96e1635bb0b8 100644 --- a/code/game/machinery/newscaster.dm +++ b/code/game/machinery/newscaster.dm @@ -1,751 +1,12 @@ -//############################################## -//################### NEWSCASTERS BE HERE! #### -//###-Agouri################################### - -/datum/feed_message - var/author ="" - var/body ="" - var/message_type ="Story" - //var/parent_channel - var/backup_body ="" - var/backup_author ="" - var/is_admin_message = 0 - var/icon/img = null - var/icon/backup_img - -/datum/feed_channel - var/channel_name="" - var/list/datum/feed_message/messages = list() - //var/message_count = 0 - var/locked=0 - var/author="" - var/backup_author="" - var/censored=0 - var/is_admin_channel=0 - //var/page = null //For newspapers - -/datum/feed_message/proc/clear() - src.author = "" - src.body = "" - src.backup_body = "" - src.backup_author = "" - src.img = null - src.backup_img = null - -/datum/feed_channel/proc/clear() - src.channel_name = "" - src.messages = list() - src.locked = 0 - src.author = "" - src.backup_author = "" - src.censored = 0 - src.is_admin_channel = 0 - -/datum/feed_network - var/list/datum/feed_channel/network_channels = list() - var/datum/feed_message/wanted_issue - -GLOBAL_DATUM_INIT(news_network, /datum/feed_network, new()) //The global news-network, which is coincidentally a global list. - -GLOBAL_LIST_INIT_TYPED(allCasters, /obj/structure/machinery/newscaster, list()) //Global list that will contain reference to all newscasters in existence. - /obj/structure/machinery/newscaster name = "newscaster" desc = "A standard Weyland-Yutani-licensed newsfeed handler for use in commercial space stations. All the news you absolutely have no use for, in one place!" icon = 'icons/obj/structures/machinery/terminals.dmi' icon_state = "newscaster_normal" - var/isbroken = FALSE //1 if someone banged it with something heavy - var/ispowered = TRUE //starts powered, changes with power_change() - //var/list/datum/feed_channel/channel_list = list() //This list will contain the names of the feed channels. Each name will refer to a data region where the messages of the feed channels are stored. - //OBSOLETE: We're now using a global news network - var/screen = 0 //Or maybe I'll make it into a list within a list afterwards... whichever I prefer, go fuck yourselves :3 - // 0 = welcome screen - main menu - // 1 = view feed channels - // 2 = create feed channel - // 3 = create feed story - // 4 = feed story submited sucessfully - // 5 = feed channel created successfully - // 6 = ERROR: Cannot create feed story - // 7 = ERROR: Cannot create feed channel - // 8 = print newspaper - // 9 = viewing channel feeds - // 10 = censor feed story - // 11 = censor feed channel - //Holy shit this is outdated, made this when I was still starting newscasters :3 - var/paper_remaining = 0 - var/securityCaster = 0 - // 0 = Caster cannot be used to issue wanted posters - // 1 = the opposite - var/unit_no = 0 //Each newscaster has a unit number - //var/datum/feed_message/wanted //We're gonna use a feed_message to store data of the wanted person because fields are similar - //var/wanted_issue = 0 //OBSOLETE - // 0 = there's no WANTED issued, we don't need a special icon_state - // 1 = Guess what. - var/alert_delay = 500 - var/alert = 0 - // 0 = there hasn't been a news/wanted update in the last alert_delay - // 1 = there has - var/scanned_user = "Unknown" //Will contain the name of the person who currently uses the newscaster - var/msg = ""; //Feed message - var/obj/item/photo/photo = null - var/channel_name = ""; //the feed channel which will be receiving the feed, or being created - var/c_locked=0; //Will our new channel be locked to public submissions? - var/hitstaken = 0 //Death at 3 hits from an item with force>=15 - var/datum/feed_channel/viewing_channel = null anchored = TRUE - -/obj/structure/machinery/newscaster/security_unit //Security unit +/obj/structure/machinery/newscaster/security_unit name = "Security Newscaster" - securityCaster = 1 - -/obj/structure/machinery/newscaster/security_unit/New() //Constructor, ho~ - GLOB.allCasters += src - src.paper_remaining = 15 // Will probably change this to something better - for(var/obj/structure/machinery/newscaster/NEWSCASTER in GLOB.allCasters) // Let's give it an appropriate unit number - src.unit_no++ - src.update_icon() //for any custom ones on the map... - ..() //I just realised the newscasters weren't in the global machines list. The superconstructor call will tend to that - -/obj/structure/machinery/newscaster/security_unit/Destroy() - GLOB.allCasters -= src - return ..() - -/obj/structure/machinery/newscaster/update_icon() - if(!ispowered || isbroken) - icon_state = "newscaster_off" - if(isbroken) //If the thing is smashed, add crack overlay on top of the unpowered sprite. - src.overlays.Cut() - src.overlays += image(src.icon, "crack3") - return - - src.overlays.Cut() //reset overlays - - if(GLOB.news_network.wanted_issue) //wanted icon state, there can be no overlays on it as it's a priority message - icon_state = "newscaster_wanted" - return - - if(alert) //new message alert overlay - src.overlays += "newscaster_alert" - - if(hitstaken > 0) //Cosmetic damage overlay - src.overlays += image(src.icon, "crack[hitstaken]") - - icon_state = "newscaster_normal" - return - -/obj/structure/machinery/newscaster/power_change() - if(isbroken) //Broken shit can't be powered. - return - ..() - if( !(stat & NOPOWER) ) - src.ispowered = TRUE - src.update_icon() - else - spawn(rand(0, 15)) - src.ispowered = FALSE - src.update_icon() - - -/obj/structure/machinery/newscaster/ex_act(severity) - switch(severity) - if(0 to EXPLOSION_THRESHOLD_LOW) - if(prob(50)) - src.isbroken=1 - src.update_icon() - return - if(EXPLOSION_THRESHOLD_LOW to EXPLOSION_THRESHOLD_MEDIUM) - src.isbroken=1 - if(prob(50)) - deconstruct(FALSE) - else - src.update_icon() //can't place it above the return and outside the if-else. or we might get runtimes of null.update_icon() if(prob(50)) goes in. - return - if(EXPLOSION_THRESHOLD_MEDIUM to INFINITY) - deconstruct(FALSE) - return - return - -/obj/structure/machinery/newscaster/attack_remote(mob/user as mob) - return src.attack_hand(user) - -/obj/structure/machinery/newscaster/attack_hand(mob/user as mob) //########### THE MAIN BEEF IS HERE! And in the proc below this...############ - if(!src.ispowered || src.isbroken) - return - if(istype(user, /mob/living/carbon/human) || istype(user,/mob/living/silicon) ) - var/mob/living/human_or_robot_user = user - var/dat - dat = text("Newscaster

        Newscaster Unit #[src.unit_no]

        ") - - src.scan_user(human_or_robot_user) //Newscaster scans you - - switch(screen) - if(0) - dat += "Welcome to Newscasting Unit #[src.unit_no].
        Interface & News networks Operational." - dat += "
        Property of Weyland-Yutani" - if(GLOB.news_network.wanted_issue) - dat+= "
        Read Wanted Issue" - dat+= "

        Create Feed Channel" - dat+= "
        View Feed Channels" - dat+= "
        Submit new Feed story" - dat+= "
        Print newspaper" - dat+= "
        Re-scan User" - dat+= "

        Exit" - if(src.securityCaster) - var/wanted_already = 0 - if(GLOB.news_network.wanted_issue) - wanted_already = 1 - - dat+="
        Feed Security functions:
        " - dat+="
        [(wanted_already) ? ("Manage") : ("Publish")] \"Wanted\" Issue" - dat+="
        Censor Feed Stories" - dat+="
        Mark Feed Channel with Weyland-Yutani D-Notice" - dat+="

        The newscaster recognises you as: [src.scanned_user]" - if(1) - dat+= "Station Feed Channels
        " - if(!length(GLOB.news_network.network_channels) ) - dat+="No active channels found..." - else - for(var/datum/feed_channel/CHANNEL in GLOB.news_network.network_channels) - if(CHANNEL.is_admin_channel) - dat+="[CHANNEL.channel_name]
        " - else - dat+="[CHANNEL.channel_name] [(CHANNEL.censored) ? ("***") : null]
        " - /*for(var/datum/feed_channel/CHANNEL in src.channel_list) - dat+="[CHANNEL.channel_name]:
        \[created by: [CHANNEL.author]\]

        " - if(!length(CHANNEL.messages) ) - dat+="No feed messages found in channel...

        " - else - for(var/datum/feed_message/MESSAGE in CHANNEL.messages) - dat+="-[MESSAGE.body]
        \[[MESSAGE.message_type] by [MESSAGE.author]\]
        "*/ - - dat+="

        Refresh" - dat+="
        Back" - if(2) - dat+="Creating new Feed Channel..." - dat+="
        Channel Name: [src.channel_name]
        " - dat+="Channel Author: [src.scanned_user]
        " - dat+="Will Accept Public Feeds: [(src.c_locked) ? ("NO") : ("YES")]

        " - dat+="
        Submit

        Cancel
        " - if(3) - dat+="Creating new Feed Message..." - dat+="
        Receiving Channel: [src.channel_name]
        " //MARK - dat+="Message Author: [src.scanned_user]
        " - dat+="Message Body: [src.msg]
        " - dat+="Attach Photo: [(src.photo ? "Photo Attached" : "No Photo")]
        " - dat+="
        Submit

        Cancel
        " - if(4) - dat+="Feed story successfully submitted to [src.channel_name].

        " - dat+="
        Return
        " - if(5) - dat+="Feed Channel [src.channel_name] created successfully.

        " - dat+="
        Return
        " - if(6) - dat+="ERROR: Could not submit Feed story to Network.

        " - if(src.channel_name=="") - dat+="�Invalid receiving channel name.
        " - if(src.scanned_user=="Unknown") - dat+="�Channel author unverified.
        " - if(src.msg == "" || src.msg == "\[REDACTED\]") - dat+="�Invalid message body.
        " - - dat+="
        Return
        " - if(7) - dat+="ERROR: Could not submit Feed Channel to Network.

        " - //var/list/existing_channels = list() //Let's get dem existing channels - OBSOLETE - var/list/existing_authors = list() - for(var/datum/feed_channel/FC in GLOB.news_network.network_channels) - //existing_channels += FC.channel_name //OBSOLETE - if(FC.author == "\[REDACTED\]") - existing_authors += FC.backup_author - else - existing_authors += FC.author - if(src.scanned_user in existing_authors) - dat+="�There already exists a Feed channel under your name.
        " - if(src.channel_name=="" || src.channel_name == "\[REDACTED\]") - dat+="�Invalid channel name.
        " - var/check = 0 - for(var/datum/feed_channel/FC in GLOB.news_network.network_channels) - if(FC.channel_name == src.channel_name) - check = 1 - break - if(check) - dat+="�Channel name already in use.
        " - if(src.scanned_user=="Unknown") - dat+="�Channel author unverified.
        " - dat+="
        Return
        " - if(8) - var/total_num=length(GLOB.news_network.network_channels) - var/active_num=total_num - var/message_num=0 - for(var/datum/feed_channel/FC in GLOB.news_network.network_channels) - if(!FC.censored) - message_num += length(FC.messages) //Dont forget, datum/feed_channel's var messages is a list of datum/feed_message - else - active_num-- - dat+="Network currently serves a total of [total_num] Feed channels, [active_num] of which are active, and a total of [message_num] Feed Stories." //TODO: CONTINUE - dat+="

        Liquid Paper remaining: [(src.paper_remaining) *100 ] cm^3" - dat+="

        Print Paper" - dat+="
        Cancel" - if(9) - dat+="[src.viewing_channel.channel_name]: \[created by: [src.viewing_channel.author]\]
        " - if(src.viewing_channel.censored) - dat+="ATTENTION: This channel has been deemed as threatening to the welfare of the station, and marked with a Weyland-Yutani D-Notice.
        " - dat+="No further feed story additions are allowed while the D-Notice is in effect.

        " - else - if(!length(src.viewing_channel.messages) ) - dat+="No feed messages found in channel...
        " - else - var/i = 0 - for(var/datum/feed_message/MESSAGE in src.viewing_channel.messages) - i++ - dat+="-[MESSAGE.body]
        " - if(MESSAGE.img) - usr << browse_rsc(MESSAGE.img, "tmp_photo[i].png") - dat+="

        " - dat+="\[[MESSAGE.message_type] by [MESSAGE.author]\]
        " - dat+="

        Refresh" - dat+="
        Back" - if(10) - dat+="Weyland-Yutani Feed Censorship Tool
        " - dat+="NOTE: Due to the nature of news Feeds, total deletion of a Feed Story is not possible.
        " - dat+="Keep in mind that users attempting to view a censored feed will instead see the \[REDACTED\] tag above it.
        " - dat+="
        Select Feed channel to get Stories from:
        " - if(!length(GLOB.news_network.network_channels)) - dat+="No feed channels found active...
        " - else - for(var/datum/feed_channel/CHANNEL in GLOB.news_network.network_channels) - dat+="[CHANNEL.channel_name] [(CHANNEL.censored) ? ("***") : null]
        " - dat+="
        Cancel" - if(11) - dat+="Weyland-Yutani D-Notice Handler
        " - dat+="A D-Notice is to be bestowed upon the channel if the handling Authority deems it as harmful for the station's" - dat+="morale, integrity or disciplinary behaviour. A D-Notice will render a channel unable to be updated by anyone, without deleting any feed" - dat+="stories it might contain at the time. You can lift a D-Notice if you have the required access at any time.
        " - if(!length(GLOB.news_network.network_channels)) - dat+="No feed channels found active...
        " - else - for(var/datum/feed_channel/CHANNEL in GLOB.news_network.network_channels) - dat+="[CHANNEL.channel_name] [(CHANNEL.censored) ? ("***") : null]
        " - - dat+="
        Back" - if(12) - dat+="[src.viewing_channel.channel_name]: \[ created by: [src.viewing_channel.author] \]
        " - dat+="[(src.viewing_channel.author=="\[REDACTED\]") ? ("Undo Author censorship") : ("Censor channel Author")]
        " - - - if(!length(src.viewing_channel.messages) ) - dat+="No feed messages found in channel...
        " - else - for(var/datum/feed_message/MESSAGE in src.viewing_channel.messages) - dat+="-[MESSAGE.body]
        \[[MESSAGE.message_type] by [MESSAGE.author]\]
        " - dat+="[(MESSAGE.body == "\[REDACTED\]") ? ("Undo story censorship") : ("Censor story")] - [(MESSAGE.author == "\[REDACTED\]") ? ("Undo Author Censorship") : ("Censor message Author")]
        " - dat+="
        Back" - if(13) - dat+="[src.viewing_channel.channel_name]: \[ created by: [src.viewing_channel.author] \]
        " - dat+="Channel messages listed below. If you deem them dangerous to the station, you can Bestow a D-Notice upon the channel.
        " - if(src.viewing_channel.censored) - dat+="ATTENTION: This channel has been deemed as threatening to the welfare of the station, and marked with a Weyland-Yutani D-Notice.
        " - dat+="No further feed story additions are allowed while the D-Notice is in effect.

        " - else - if(!length(src.viewing_channel.messages) ) - dat+="No feed messages found in channel...
        " - else - for(var/datum/feed_message/MESSAGE in src.viewing_channel.messages) - dat+="-[MESSAGE.body]
        \[[MESSAGE.message_type] by [MESSAGE.author]\]
        " - - dat+="
        Back" - if(14) - dat+="Wanted Issue Handler:" - var/wanted_already = 0 - var/end_param = 1 - if(GLOB.news_network.wanted_issue) - wanted_already = 1 - end_param = 2 - - if(wanted_already) - dat+="
        A wanted issue is already in Feed Circulation. You can edit or cancel it below.
        " - dat+="
        " - dat+="Criminal Name: [src.channel_name]
        " - dat+="Description: [src.msg]
        " - dat+="Attach Photo: [(src.photo ? "Photo Attached" : "No Photo")]
        " - if(wanted_already) - dat+="Wanted Issue created by: [GLOB.news_network.wanted_issue.backup_author]
        " - else - dat+="Wanted Issue will be created under prosecutor: [src.scanned_user]
        " - dat+="
        [(wanted_already) ? ("Edit Issue") : ("Submit")]" - if(wanted_already) - dat+="
        Take down Issue" - dat+="
        Cancel" - if(15) - dat+="Wanted issue for [src.channel_name] is now in Network Circulation.

        " - dat+="
        Return
        " - if(16) - dat+="ERROR: Wanted Issue rejected by Network.

        " - if(src.channel_name=="" || src.channel_name == "\[REDACTED\]") - dat+="�Invalid name for person wanted.
        " - if(src.scanned_user=="Unknown") - dat+="�Issue author unverified.
        " - if(src.msg == "" || src.msg == "\[REDACTED\]") - dat+="�Invalid description.
        " - dat+="
        Return
        " - if(17) - dat+="Wanted Issue successfully deleted from Circulation
        " - dat+="
        Return
        " - if(18) - dat+="-- STATIONWIDE WANTED ISSUE --
        \[Submitted by: [GLOB.news_network.wanted_issue.backup_author]\]
        " - dat+="Criminal: [GLOB.news_network.wanted_issue.author]
        " - dat+="Description: [GLOB.news_network.wanted_issue.body]
        " - dat+="Photo:: " - if(GLOB.news_network.wanted_issue.img) - usr << browse_rsc(GLOB.news_network.wanted_issue.img, "tmp_photow.png") - dat+="
        " - else - dat+="None" - dat+="

        Back
        " - if(19) - dat+="Wanted issue for [src.channel_name] successfully edited.

        " - dat+="
        Return
        " - if(20) - dat+="Printing successful. Please receive your newspaper from the bottom of the machine.

        " - dat+="Return" - if(21) - dat+="Unable to print newspaper. Insufficient paper. Please notify maintenance personnel to refill machine storage.

        " - dat+="Return" - else - dat+="I'm sorry to break your immersion. This shit's bugged. Report this bug to Agouri, polyxenitopalidou@gmail.com" - - - human_or_robot_user << browse(dat, "window=newscaster_main;size=400x600") - onclose(human_or_robot_user, "newscaster_main") - - /*if(src.isbroken) //debugging shit - return - src.hitstaken++ - if(src.hitstaken==3) - src.isbroken = TRUE - src.update_icon()*/ - - -/obj/structure/machinery/newscaster/Topic(href, href_list) - if(..()) - return - if ((usr.contents.Find(src) || ((get_dist(src, usr) <= 1) && istype(src.loc, /turf))) || (isRemoteControlling(usr))) - usr.set_interaction(src) - if(href_list["set_channel_name"]) - src.channel_name = strip_html(input(usr, "Provide a Feed Channel Name", "Network Channel Handler", "")) - while (findtext(src.channel_name," ") == 1) - src.channel_name = copytext(src.channel_name,2,length(src.channel_name)+1) - src.updateUsrDialog() - //src.update_icon() - - else if(href_list["set_channel_lock"]) - src.c_locked = !src.c_locked - src.updateUsrDialog() - //src.update_icon() - - else if(href_list["submit_new_channel"]) - //var/list/existing_channels = list() //OBSOLETE - var/list/existing_authors = list() - for(var/datum/feed_channel/FC in GLOB.news_network.network_channels) - //existing_channels += FC.channel_name - if(FC.author == "\[REDACTED\]") - existing_authors += FC.backup_author - else - existing_authors +=FC.author - var/check = 0 - for(var/datum/feed_channel/FC in GLOB.news_network.network_channels) - if(FC.channel_name == src.channel_name) - check = 1 - break - if(src.channel_name == "" || src.channel_name == "\[REDACTED\]" || src.scanned_user == "Unknown" || check || (src.scanned_user in existing_authors) ) - src.screen=7 - else - var/choice = alert("Please confirm Feed channel creation","Network Channel Handler","Confirm","Cancel") - if(choice=="Confirm") - var/datum/feed_channel/newChannel = new /datum/feed_channel - newChannel.channel_name = src.channel_name - newChannel.author = src.scanned_user - newChannel.locked = c_locked - GLOB.news_network.network_channels += newChannel //Adding channel to the global network - src.screen=5 - src.updateUsrDialog() - //src.update_icon() - - else if(href_list["set_channel_receiving"]) - //var/list/datum/feed_channel/available_channels = list() - var/list/available_channels = list() - for(var/datum/feed_channel/F in GLOB.news_network.network_channels) - if( (!F.locked || F.author == scanned_user) && !F.censored) - available_channels += F.channel_name - src.channel_name = strip_html(tgui_input_list(usr, "Choose receiving Feed Channel", "Network Channel Handler", available_channels )) - src.updateUsrDialog() - - else if(href_list["set_new_message"]) - src.msg = strip_html(input(usr, "Write your Feed story", "Network Channel Handler", "")) - while (findtext(src.msg," ") == 1) - src.msg = copytext(src.msg,2,length(src.msg)+1) - src.updateUsrDialog() - - else if(href_list["set_attachment"]) - AttachPhoto(usr) - src.updateUsrDialog() - - else if(href_list["submit_new_message"]) - if(src.msg =="" || src.msg=="\[REDACTED\]" || src.scanned_user == "Unknown" || src.channel_name == "" ) - src.screen=6 - else - var/datum/feed_message/newMsg = new /datum/feed_message - newMsg.author = src.scanned_user - newMsg.body = src.msg - if(photo) - newMsg.img = photo.img - for(var/datum/feed_channel/FC in GLOB.news_network.network_channels) - if(FC.channel_name == src.channel_name) - FC.messages += newMsg //Adding message to the network's appropriate feed_channel - break - src.screen=4 - for(var/obj/structure/machinery/newscaster/NEWSCASTER in GLOB.allCasters) - NEWSCASTER.newsAlert(src.channel_name) - - src.updateUsrDialog() - - else if(href_list["create_channel"]) - src.screen=2 - src.updateUsrDialog() - - else if(href_list["create_feed_story"]) - src.screen=3 - src.updateUsrDialog() - - else if(href_list["menu_paper"]) - src.screen=8 - src.updateUsrDialog() - else if(href_list["print_paper"]) - if(!src.paper_remaining) - src.screen=21 - else - src.print_paper() - src.screen = 20 - src.updateUsrDialog() - - else if(href_list["menu_censor_story"]) - src.screen=10 - src.updateUsrDialog() - - else if(href_list["menu_censor_channel"]) - src.screen=11 - src.updateUsrDialog() - - else if(href_list["menu_wanted"]) - var/already_wanted = 0 - if(GLOB.news_network.wanted_issue) - already_wanted = 1 - - if(already_wanted) - src.channel_name = GLOB.news_network.wanted_issue.author - src.msg = GLOB.news_network.wanted_issue.body - src.screen = 14 - src.updateUsrDialog() - - else if(href_list["set_wanted_name"]) - src.channel_name = strip_html(input(usr, "Provide the name of the Wanted person", "Network Security Handler", "")) - while (findtext(src.channel_name," ") == 1) - src.channel_name = copytext(src.channel_name,2,length(src.channel_name)+1) - src.updateUsrDialog() - - else if(href_list["set_wanted_desc"]) - src.msg = strip_html(input(usr, "Provide the a description of the Wanted person and any other details you deem important", "Network Security Handler", "")) - while (findtext(src.msg," ") == 1) - src.msg = copytext(src.msg,2,length(src.msg)+1) - src.updateUsrDialog() - - else if(href_list["submit_wanted"]) - var/input_param = text2num(href_list["submit_wanted"]) - if(src.msg == "" || src.channel_name == "" || src.scanned_user == "Unknown") - src.screen = 16 - else - var/choice = alert("Please confirm Wanted Issue [(input_param==1) ? ("creation.") : ("edit.")]","Network Security Handler","Confirm","Cancel") - if(choice=="Confirm") - if(input_param==1) //If input_param == 1 we're submitting a new wanted issue. At 2 we're just editing an existing one. See the else below - var/datum/feed_message/WANTED = new /datum/feed_message - WANTED.author = src.channel_name - WANTED.body = src.msg - WANTED.backup_author = src.scanned_user //I know, a bit wacky - if(photo) - WANTED.img = photo.img - GLOB.news_network.wanted_issue = WANTED - for(var/obj/structure/machinery/newscaster/NEWSCASTER in GLOB.allCasters) - NEWSCASTER.newsAlert() - NEWSCASTER.update_icon() - src.screen = 15 - else - if(GLOB.news_network.wanted_issue.is_admin_message) - alert("The wanted issue has been distributed by a Weyland-Yutani higherup. You cannot edit it.","Ok") - return - GLOB.news_network.wanted_issue.author = src.channel_name - GLOB.news_network.wanted_issue.body = src.msg - GLOB.news_network.wanted_issue.backup_author = src.scanned_user - if(photo) - GLOB.news_network.wanted_issue.img = photo.img - src.screen = 19 - - src.updateUsrDialog() - - else if(href_list["cancel_wanted"]) - if(GLOB.news_network.wanted_issue.is_admin_message) - alert("The wanted issue has been distributed by a Weyland-Yutani higherup. You cannot take it down.","Ok") - return - var/choice = alert("Please confirm Wanted Issue removal","Network Security Handler","Confirm","Cancel") - if(choice=="Confirm") - GLOB.news_network.wanted_issue = null - for(var/obj/structure/machinery/newscaster/NEWSCASTER in GLOB.allCasters) - NEWSCASTER.update_icon() - src.screen=17 - src.updateUsrDialog() - - else if(href_list["view_wanted"]) - src.screen=18 - src.updateUsrDialog() - else if(href_list["censor_channel_author"]) - var/datum/feed_channel/FC = locate(href_list["censor_channel_author"]) - if(FC.is_admin_channel) - alert("This channel was created by a Weyland-Yutani Officer. You cannot censor it.","Ok") - return - if(FC.author != "\[REDACTED\]") - FC.backup_author = FC.author - FC.author = "\[REDACTED\]" - else - FC.author = FC.backup_author - src.updateUsrDialog() - - else if(href_list["censor_channel_story_author"]) - var/datum/feed_message/MSG = locate(href_list["censor_channel_story_author"]) - if(MSG.is_admin_message) - alert("This message was created by a Weyland-Yutani Officer. You cannot censor its author.","Ok") - return - if(MSG.author != "\[REDACTED\]") - MSG.backup_author = MSG.author - MSG.author = "\[REDACTED\]" - else - MSG.author = MSG.backup_author - src.updateUsrDialog() - - else if(href_list["censor_channel_story_body"]) - var/datum/feed_message/MSG = locate(href_list["censor_channel_story_body"]) - if(MSG.is_admin_message) - alert("This channel was created by a Weyland-Yutani Officer. You cannot censor it.","Ok") - return - if(MSG.img != null) - MSG.backup_img = MSG.img - MSG.img = null - else - MSG.img = MSG.backup_img - if(MSG.body != "\[REDACTED\]") - MSG.backup_body = MSG.body - MSG.body = "\[REDACTED\]" - else - MSG.body = MSG.backup_body - src.updateUsrDialog() - - else if(href_list["pick_d_notice"]) - var/datum/feed_channel/FC = locate(href_list["pick_d_notice"]) - src.viewing_channel = FC - src.screen=13 - src.updateUsrDialog() - - else if(href_list["toggle_d_notice"]) - var/datum/feed_channel/FC = locate(href_list["toggle_d_notice"]) - if(FC.is_admin_channel) - alert("This channel was created by a Weyland-Yutani Officer. You cannot place a D-Notice upon it.","Ok") - return - FC.censored = !FC.censored - src.updateUsrDialog() - - else if(href_list["view"]) - src.screen=1 - src.updateUsrDialog() - - else if(href_list["setScreen"]) //Brings us to the main menu and resets all fields~ - src.screen = text2num(href_list["setScreen"]) - if (src.screen == 0) - src.scanned_user = "Unknown"; - msg = ""; - src.c_locked=0; - channel_name=""; - src.viewing_channel = null - src.updateUsrDialog() - - else if(href_list["show_channel"]) - var/datum/feed_channel/FC = locate(href_list["show_channel"]) - src.viewing_channel = FC - src.screen = 9 - src.updateUsrDialog() - - else if(href_list["pick_censor_channel"]) - var/datum/feed_channel/FC = locate(href_list["pick_censor_channel"]) - src.viewing_channel = FC - src.screen = 12 - src.updateUsrDialog() - - else if(href_list["refresh"]) - src.updateUsrDialog() - - -/obj/structure/machinery/newscaster/attackby(obj/item/I as obj, mob/user as mob) - - if (src.isbroken) - playsound(src.loc, 'sound/effects/hit_on_shattered_glass.ogg', 25, 1) - for (var/mob/O in hearers(5, src.loc)) - O.show_message("[user.name] further abuses the shattered [src.name].", SHOW_MESSAGE_VISIBLE) - else - if(!(I.flags_item & NOBLUDGEON) && I.force) - if(I.force <15) - for (var/mob/O in hearers(5, src.loc)) - O.show_message("[user.name] hits the [src.name] with the [I.name] with no visible effect.", SHOW_MESSAGE_VISIBLE) - playsound(src.loc, 'sound/effects/Glasshit.ogg', 25, 1) - else - src.hitstaken++ - if(src.hitstaken==3) - for (var/mob/O in hearers(5, src.loc)) - O.show_message("[user.name] smashes the [src.name]!", SHOW_MESSAGE_VISIBLE) - src.isbroken=1 - playsound(src.loc, 'sound/effects/Glassbr3.ogg', 50, 1) - else - for (var/mob/O in hearers(5, src.loc)) - O.show_message("[user.name] forcefully slams the [src.name] with the [I.name]!", SHOW_MESSAGE_VISIBLE) - playsound(src.loc, 'sound/effects/Glasshit.ogg', 25, 1) - else - to_chat(user, "This does nothing.") - src.update_icon() - -/obj/structure/machinery/newscaster/attack_remote(mob/user as mob) - return src.attack_hand(user) //or maybe it'll have some special functions? No idea. - -/obj/structure/machinery/newscaster/proc/AttachPhoto(mob/user as mob) - if(photo) - if(!isRemoteControlling(user)) - photo.forceMove(loc) - user.put_in_inactive_hand(photo) - photo = null - var/obj/item/photo/PH = user.get_active_hand() - if(istype(PH)) - if(user.drop_inv_item_to_loc(photo, src)) - photo = PH - else if(istype(user,/mob/living/silicon)) - var/mob/living/silicon/tempAI = user - var/datum/picture/selection = tempAI.GetPicture() - if (!selection) - return - - var/obj/item/photo/P = new/obj/item/photo() - P.construct(selection) - photo = P - - -//######################################################################################################################## -//###################################### NEWSPAPER! ###################################################################### -//######################################################################################################################## /obj/item/newspaper name = "newspaper" @@ -754,191 +15,3 @@ GLOBAL_LIST_INIT_TYPED(allCasters, /obj/structure/machinery/newscaster, list()) icon_state = "newspaper" w_class = SIZE_TINY //Let's make it fit in trashbags! attack_verb = list("bapped") - var/screen = 0 - var/pages = 0 - var/curr_page = 0 - var/list/datum/feed_channel/news_content = list() - var/datum/feed_message/important_message = null - var/scribble="" - var/scribble_page = null - -/obj/item/newspaper/attack_self(mob/user as mob) - ..() - if(!ishuman(user)) - to_chat(user, "The paper is full of intelligible symbols!") - return - - var/mob/living/carbon/human/human_user = user - var/dat - src.pages = 0 - switch(screen) - if(0) //Cover - dat+="
        The Griffon
        " - dat+="
        Weyland-Yutani-standard newspaper, for use on Weyland-Yutani� Space Facilities

        " - if(!length(src.news_content)) - if(src.important_message) - dat+="Contents:
          **Important Security Announcement** \[page [src.pages+2]\]
        " - else - dat+="Other than the title, the rest of the newspaper is unprinted..." - else - dat+="Contents:
          " - for(var/datum/feed_channel/NP in src.news_content) - src.pages++ - if(src.important_message) - dat+="**Important Security Announcement** \[page [src.pages+2]\]
          " - var/temp_page=0 - for(var/datum/feed_channel/NP in src.news_content) - temp_page++ - dat+="[NP.channel_name] \[page [temp_page+1]\]
          " - dat+="
        " - if(scribble_page==curr_page) - dat+="
        There is a small scribble near the end of this page... It reads: \"[src.scribble]\"" - dat+= "
        " - if(1) // X channel pages inbetween. - for(var/datum/feed_channel/NP in src.news_content) - src.pages++ //Let's get it right again. - var/datum/feed_channel/C = src.news_content[src.curr_page] - dat+="[C.channel_name] \[created by: [C.author]\]

        " - if(C.censored) - dat+="This channel was deemed dangerous to the general welfare of the station and therefore marked with a D-Notice. Its contents were not transferred to the newspaper at the time of printing." - else - if(!length(C.messages)) - dat+="No Feed stories stem from this channel..." - else - dat+="
          " - var/i = 0 - for(var/datum/feed_message/MESSAGE in C.messages) - i++ - dat+="-[MESSAGE.body]
          " - if(MESSAGE.img) - user << browse_rsc(MESSAGE.img, "tmp_photo[i].png") - dat+="
          " - dat+="\[[MESSAGE.message_type] by [MESSAGE.author]\]

          " - dat+="
        " - if(scribble_page==curr_page) - dat+="
        There is a small scribble near the end of this page... It reads: \"[src.scribble]\"" - dat+= "

        " - if(2) //Last page - for(var/datum/feed_channel/NP in src.news_content) - src.pages++ - if(src.important_message!=null) - dat+="
        Wanted Issue:


        " - dat+="Criminal name: [important_message.author]
        " - dat+="Description: [important_message.body]
        " - dat+="Photo:: " - if(important_message.img) - user << browse_rsc(important_message.img, "tmp_photow.png") - dat+="
        " - else - dat+="None" - else - dat+="Apart from some uninteresting Classified ads, there's nothing on this page..." - if(scribble_page==curr_page) - dat+="
        There is a small scribble near the end of this page... It reads: \"[src.scribble]\"" - dat+= "
        " - else - dat+="I'm sorry to break your immersion. This shit's bugged. Report this bug to Agouri, polyxenitopalidou@gmail.com" - - dat+="

        [src.curr_page+1]
        " - human_user << browse(dat, "window=newspaper_main;size=300x400") - onclose(human_user, "newspaper_main") - - -/obj/item/newspaper/Topic(href, href_list) - var/mob/living/U = usr - ..() - if ((src in U.contents) || ( istype(loc, /turf) && in_range(src, U) )) - U.set_interaction(src) - if(href_list["next_page"]) - if(curr_page==src.pages+1) - return //Don't need that at all, but anyway. - if(src.curr_page == src.pages) //We're at the middle, get to the end - src.screen = 2 - else - if(curr_page == 0) //We're at the start, get to the middle - src.screen=1 - src.curr_page++ - playsound(src.loc, "pageturn", 15, 1) - - else if(href_list["prev_page"]) - if(curr_page == 0) - return - if(curr_page == 1) - src.screen = 0 - - else - if(curr_page == src.pages+1) //we're at the end, let's go back to the middle. - src.screen = 1 - src.curr_page-- - playsound(src.loc, "pageturn", 15, 1) - - if (istype(src.loc, /mob)) - src.attack_self(src.loc) - - -/obj/item/newspaper/attackby(obj/item/W as obj, mob/user as mob) - if(HAS_TRAIT(W, TRAIT_TOOL_PEN)) - if(src.scribble_page == src.curr_page) - to_chat(user, "There's already a scribble in this page... You wouldn't want to make things too cluttered, would you?") - else - var/s = strip_html( input(user, "Write something", "Newspaper", "") ) - s = strip_html(s) - if (!s) - return - if (!in_range(src, usr) && src.loc != usr) - return - src.scribble_page = src.curr_page - src.scribble = s - src.attack_self(user) - return - - -////////////////////////////////////helper procs - - -/obj/structure/machinery/newscaster/proc/scan_user(mob/living/user as mob) - if(istype(user,/mob/living/carbon/human)) //User is a human - var/mob/living/carbon/human/human_user = user - if(human_user.wear_id) //Newscaster scans you - if(istype(human_user.wear_id, /obj/item/card/id) ) - var/obj/item/card/id/ID = human_user.wear_id - src.scanned_user ="[ID.registered_name] ([ID.assignment])" - else - src.scanned_user ="Unknown" - else - src.scanned_user ="Unknown" - else - var/mob/living/silicon/ai_user = user - src.scanned_user = "[ai_user.name] ([ai_user.job])" - - -/obj/structure/machinery/newscaster/proc/print_paper() - var/obj/item/newspaper/NEWSPAPER = new /obj/item/newspaper - for(var/datum/feed_channel/FC in GLOB.news_network.network_channels) - NEWSPAPER.news_content += FC - if(GLOB.news_network.wanted_issue) - NEWSPAPER.important_message = GLOB.news_network.wanted_issue - NEWSPAPER.forceMove(get_turf(src)) - src.paper_remaining-- - return - -//Removed for now so these aren't even checked every tick. Left this here in-case Agouri needs it later. -///obj/structure/machinery/newscaster/process() //Was thinking of doing the icon update through process, but multiple iterations per second does not -// return //bode well with a newscaster network of 10+ machines. Let's just return it, as it's added in the machines list. - -/obj/structure/machinery/newscaster/proc/newsAlert(channel) //This isn't Agouri's work, for it is ugly and vile. - var/turf/T = get_turf(src) //Who the fuck uses spawn(600) anyway, jesus christ - if(channel) - for(var/mob/O in hearers(GLOB.world_view_size-1, T)) - O.show_message(SPAN_NEWSCASTER("[src.name] beeps, \"Breaking news from [channel]!\""), SHOW_MESSAGE_AUDIBLE) - src.alert = 1 - src.update_icon() - spawn(30 SECONDS) - src.alert = 0 - src.update_icon() - playsound(src.loc, 'sound/machines/twobeep.ogg', 25, 1) - else - for(var/mob/O in hearers(GLOB.world_view_size-1, T)) - O.show_message(SPAN_NEWSCASTER("[src.name] beeps, \"Attention! Wanted issue distributed!\""), SHOW_MESSAGE_AUDIBLE) - playsound(src.loc, 'sound/machines/warning-buzzer.ogg', 25, 1) - return diff --git a/code/game/machinery/nuclearbomb.dm b/code/game/machinery/nuclearbomb.dm index 369953788ae1..42b5d95694cb 100644 --- a/code/game/machinery/nuclearbomb.dm +++ b/code/game/machinery/nuclearbomb.dm @@ -111,7 +111,7 @@ GLOBAL_VAR_INIT(bomb_set, FALSE) if(isqueen(user)) if(timing && GLOB.bomb_set) - user.visible_message(SPAN_INFO("[user] begins to defuse \the [src]."), SPAN_INFO("You begin to defuse \the [src]. This will take some time...")) + user.visible_message(SPAN_INFO("[user] begins engulfing \the [src] with resin."), SPAN_INFO("You start regurgitating and engulfing the \the [src] with resin... stopping the electronics from working, this will take some time...")) if(do_after(user, 5 SECONDS, INTERRUPT_NO_NEEDHAND, BUSY_ICON_HOSTILE)) disable() return @@ -151,7 +151,7 @@ GLOBAL_VAR_INIT(bomb_set, FALSE) data["command_lockout"] = command_lockout data["allowed"] = allowed data["being_used"] = being_used - data["decryption_complete"] = TRUE //this is overriden by techweb nuke UI_data later, this just makes it default to true + data["decryption_complete"] = TRUE //this is overridden by techweb nuke UI_data later, this just makes it default to true return data @@ -329,45 +329,45 @@ GLOBAL_VAR_INIT(bomb_set, FALSE) humans_other -= current_mob if(timer_warning) //we check for timer warnings first - announcement_helper("WARNING.\n\nDETONATION IN [round(timeleft/10)] SECONDS.", "[MAIN_AI_SYSTEM] Nuclear Tracker", humans_uscm, 'sound/misc/notice1.ogg') - announcement_helper("WARNING.\n\nDETONATION IN [round(timeleft/10)] SECONDS.", "HQ Intel Division", humans_other, 'sound/misc/notice1.ogg') + announcement_helper("WARNING.\n\nDETONATION IN [floor(timeleft/10)] SECONDS.", "[MAIN_AI_SYSTEM] Nuclear Tracker", humans_uscm, 'sound/misc/notice1.ogg') + announcement_helper("WARNING.\n\nDETONATION IN [floor(timeleft/10)] SECONDS.", "HQ Intel Division", humans_other, 'sound/misc/notice1.ogg') //preds part - var/t_left = duration2text_sec(round(rand(timeleft - timeleft / 10, timeleft + timeleft / 10))) - yautja_announcement(SPAN_YAUTJABOLDBIG("WARNING!\n\nYou have approximately [t_left] seconds to abandon the hunting grounds before activation of human Purification Device.")) + var/t_left = duration2text_sec(floor(rand(timeleft - timeleft / 10, timeleft + timeleft / 10))) + yautja_announcement(SPAN_YAUTJABOLDBIG("WARNING!\n\nYou have approximately [t_left] seconds to abandon the hunting grounds before activation of the human purification device.")) //xenos part var/warning if(timer_warning & NUKE_SHOW_TIMER_HALF) - warning = "Hive killer is halfway through preparation cycle!" + warning = "A shiver goes down our carapace as we feel the approaching end... the hive killer is halfway through its preparation cycle!" else if(timer_warning & NUKE_SHOW_TIMER_MINUTE) - warning = "Hive killer is almost ready to trigger!" + warning = "Every sense in our form is screaming... the hive killer is almost ready to trigger!" else warning = "DISABLE IT! NOW!" var/datum/hive_status/hive for(var/hivenumber in GLOB.hive_datum) hive = GLOB.hive_datum[hivenumber] - if(!hive.totalXenos.len) + if(!length(hive.totalXenos)) return xeno_announcement(SPAN_XENOANNOUNCE(warning), hive.hivenumber, XENO_GENERAL_ANNOUNCE) return var/datum/hive_status/hive if(timing) - announcement_helper("ALERT.\n\nNUCLEAR EXPLOSIVE ORDNANCE ACTIVATED.\n\nDETONATION IN [round(timeleft/10)] SECONDS.", "[MAIN_AI_SYSTEM] Nuclear Tracker", humans_uscm, 'sound/misc/notice1.ogg') - announcement_helper("ALERT.\n\nNUCLEAR EXPLOSIVE ORDNANCE ACTIVATED.\n\nDETONATION IN [round(timeleft/10)] SECONDS.", "HQ Nuclear Tracker", humans_other, 'sound/misc/notice1.ogg') - var/t_left = duration2text_sec(round(rand(timeleft - timeleft / 10, timeleft + timeleft / 10))) - yautja_announcement(SPAN_YAUTJABOLDBIG("WARNING!
        A human Purification Device has been detected. You have approximately [t_left] to abandon the hunting grounds before it activates.")) + announcement_helper("ALERT.\n\nNUCLEAR EXPLOSIVE ORDNANCE ACTIVATED.\n\nDETONATION IN [floor(timeleft/10)] SECONDS.", "[MAIN_AI_SYSTEM] Nuclear Tracker", humans_uscm, 'sound/misc/notice1.ogg') + announcement_helper("ALERT.\n\nNUCLEAR EXPLOSIVE ORDNANCE ACTIVATED.\n\nDETONATION IN [floor(timeleft/10)] SECONDS.", "HQ Nuclear Tracker", humans_other, 'sound/misc/notice1.ogg') + var/t_left = duration2text_sec(floor(rand(timeleft - timeleft / 10, timeleft + timeleft / 10))) + yautja_announcement(SPAN_YAUTJABOLDBIG("WARNING!
        A human purification device has been detected. You have approximately [t_left] to abandon the hunting grounds before it activates.")) for(var/hivenumber in GLOB.hive_datum) hive = GLOB.hive_datum[hivenumber] - if(!hive.totalXenos.len) + if(!length(hive.totalXenos)) continue xeno_announcement(SPAN_XENOANNOUNCE("The tallhosts have deployed a hive killer at [get_area_name(loc)]! Stop it at all costs!"), hive.hivenumber, XENO_GENERAL_ANNOUNCE) else announcement_helper("ALERT.\n\nNUCLEAR EXPLOSIVE ORDNANCE DEACTIVATED.", "[MAIN_AI_SYSTEM] Nuclear Tracker", humans_uscm, 'sound/misc/notice1.ogg') announcement_helper("ALERT.\n\nNUCLEAR EXPLOSIVE ORDNANCE DEACTIVATED.", "HQ Intel Division", humans_other, 'sound/misc/notice1.ogg') - yautja_announcement(SPAN_YAUTJABOLDBIG("WARNING!
        The human Purification Device's signature has disappeared.")) + yautja_announcement(SPAN_YAUTJABOLDBIG("WARNING!
        The human purification device's signature has disappeared.")) for(var/hivenumber in GLOB.hive_datum) hive = GLOB.hive_datum[hivenumber] - if(!hive.totalXenos.len) + if(!length(hive.totalXenos)) continue xeno_announcement(SPAN_XENOANNOUNCE("The hive killer has been disabled! Rejoice!"), hive.hivenumber, XENO_GENERAL_ANNOUNCE) return @@ -396,45 +396,39 @@ GLOBAL_VAR_INIT(bomb_set, FALSE) playsound(src, 'sound/machines/Alarm.ogg', 75, 0, 30) world << pick('sound/theme/nuclear_detonation1.ogg','sound/theme/nuclear_detonation2.ogg') - var/list/alive_mobs = list() //Everyone who will be destroyed on the zlevel(s). - var/list/dead_mobs = list() //Everyone who only needs to see the cinematic. for(var/mob/current_mob as anything in GLOB.mob_list) - if(!current_mob?.loc) - continue - if(current_mob.stat == DEAD) - dead_mobs |= current_mob - continue var/turf/current_turf = get_turf(current_mob) - if(z == current_turf.z) - alive_mobs |= current_mob + if(current_turf?.z == z && current_mob.stat != DEAD) shake_camera(current_mob, 110, 4) + sleep(10 SECONDS) + + var/list/mob/alive_mobs = list() //Everyone who will be destroyed on the zlevel(s). + var/list/mob/dead_mobs = list() //Everyone that needs embryos cleared + for(var/mob/current_mob as anything in GLOB.mob_list) + var/turf/current_turf = get_turf(current_mob) + if(current_turf?.z == z) + if(current_mob.stat == DEAD) + dead_mobs |= current_mob + continue + alive_mobs |= current_mob + for(var/mob/current_mob in alive_mobs) - if(current_mob && current_mob.loc) - var/turf/current_mob_turf = get_turf(current_mob) - if(z == current_mob_turf.z) - if(istype(current_mob.loc, /obj/structure/closet/secure_closet/freezer/fridge)) - continue - current_mob.death(create_cause_data("nuclear explosion")) - - for(var/mob/current_mob in (alive_mobs + dead_mobs)) - if(current_mob && current_mob.loc) - var/turf/current_mob_turf = get_turf(current_mob) - if(z == current_mob_turf.z) - if(istype(current_mob.loc, /obj/structure/closet/secure_closet/freezer/fridge)) - continue - for(var/obj/item/alien_embryo/embryo in current_mob) - qdel(embryo) - - sleep(100) + if(istype(current_mob.loc, /obj/structure/closet/secure_closet/freezer/fridge)) + continue + current_mob.death(create_cause_data("nuclear explosion")) + + for(var/mob/living/current_mob in (alive_mobs + dead_mobs)) + if(istype(current_mob.loc, /obj/structure/closet/secure_closet/freezer/fridge)) + continue + for(var/obj/item/alien_embryo/embryo in current_mob) + qdel(embryo) + cell_explosion(loc, 500, 150, EXPLOSION_FALLOFF_SHAPE_LINEAR, null, create_cause_data(initial(name))) qdel(src) return TRUE /obj/structure/machinery/nuclearbomb/Destroy() - if(timing != -1) - message_admins("\The [src] has been unexpectedly deleted at ([x],[y],[x]). [ADMIN_JMP(src)]") - log_game("\The [src] has been unexpectedly deleted at ([x],[y],[x]).") GLOB.bomb_set = FALSE SSminimaps.remove_marker(src) return ..() @@ -575,42 +569,42 @@ GLOBAL_VAR_INIT(bomb_set, FALSE) announcement_helper("DECRYPTION COMPLETE", "[MAIN_AI_SYSTEM] Nuclear Tracker", humans_uscm, 'sound/misc/notice1.ogg') announcement_helper("DECRYPTION COMPLETE", "HQ Intel Division", humans_other, 'sound/misc/notice1.ogg') - yautja_announcement(SPAN_YAUTJABOLDBIG("WARNING!\n\nThe human Purification Device is able to be activated.")) + yautja_announcement(SPAN_YAUTJABOLDBIG("WARNING!\n\nThe human purification device is able to be activated.")) var/datum/hive_status/hive for(var/hivenumber in GLOB.hive_datum) hive = GLOB.hive_datum[hivenumber] if(!length(hive.totalXenos)) return - xeno_announcement(SPAN_XENOANNOUNCE("The hive killer is ready to be activated! Assault at once!"), hive.hivenumber, XENO_GENERAL_ANNOUNCE) + xeno_announcement(SPAN_XENOANNOUNCE("We get a sense of impending doom... the hive killer is ready to be activated."), hive.hivenumber, XENO_GENERAL_ANNOUNCE) return - announcement_helper("DECRYPTION IN [round(decryption_time/10)] SECONDS.", "[MAIN_AI_SYSTEM] Nuclear Tracker", humans_uscm, 'sound/misc/notice1.ogg') - announcement_helper("DECRYPTION IN [round(decryption_time/10)] SECONDS.", "HQ Intel Division", humans_other, 'sound/misc/notice1.ogg') + announcement_helper("DECRYPTION IN [floor(decryption_time/10)] SECONDS.", "[MAIN_AI_SYSTEM] Nuclear Tracker", humans_uscm, 'sound/misc/notice1.ogg') + announcement_helper("DECRYPTION IN [floor(decryption_time/10)] SECONDS.", "HQ Intel Division", humans_other, 'sound/misc/notice1.ogg') //preds part - var/time_left = duration2text_sec(round(rand(decryption_time - decryption_time / 10, decryption_time + decryption_time / 10))) - yautja_announcement(SPAN_YAUTJABOLDBIG("WARNING!\n\nYou have approximately [time_left] seconds to abandon the hunting grounds before human Purification Device is able to be activated.")) + var/time_left = duration2text_sec(floor(rand(decryption_time - decryption_time / 10, decryption_time + decryption_time / 10))) + yautja_announcement(SPAN_YAUTJABOLDBIG("WARNING!\n\nYou have approximately [time_left] seconds to abandon the hunting grounds before the human purification device is able to be activated.")) //xenos part - var/warning = "Hive killer is almost prepared to be activated!" + var/warning = "We are almost out of time, STOP THEM." if(timer_warning & NUKE_DECRYPT_SHOW_TIMER_HALF) - warning = "Hive killer is halfway through its initial phase!" + warning = "The Hive grows restless! it's halfway done..." var/datum/hive_status/hive for(var/hivenumber in GLOB.hive_datum) hive = GLOB.hive_datum[hivenumber] - if(!hive.totalXenos.len) + if(!length(hive.totalXenos)) return xeno_announcement(SPAN_XENOANNOUNCE(warning), hive.hivenumber, XENO_GENERAL_ANNOUNCE) return var/datum/hive_status/hive if(decrypting) - announcement_helper("ALERT.\n\nNUCLEAR EXPLOSIVE ORDNANCE DECRYPTION STARTED.\n\nDECRYPTION IN [round(decryption_time/10)] SECONDS.", "[MAIN_AI_SYSTEM] Nuclear Tracker", humans_uscm, 'sound/misc/notice1.ogg') - announcement_helper("ALERT.\n\nNUCLEAR EXPLOSIVE ORDNANCE DECRYPTION STARTED.\n\nDECRYPTION IN [round(decryption_time/10)] SECONDS.", "HQ Nuclear Tracker", humans_other, 'sound/misc/notice1.ogg') - var/time_left = duration2text_sec(round(rand(decryption_time - decryption_time / 10, decryption_time + decryption_time / 10))) - yautja_announcement(SPAN_YAUTJABOLDBIG("WARNING!
        A human Purification Device has been detected. You have approximately [time_left] before it finishes its initial phase.")) + announcement_helper("ALERT.\n\nNUCLEAR EXPLOSIVE ORDNANCE DECRYPTION STARTED.\n\nDECRYPTION IN [floor(decryption_time/10)] SECONDS.", "[MAIN_AI_SYSTEM] Nuclear Tracker", humans_uscm, 'sound/misc/notice1.ogg') + announcement_helper("ALERT.\n\nNUCLEAR EXPLOSIVE ORDNANCE DECRYPTION STARTED.\n\nDECRYPTION IN [floor(decryption_time/10)] SECONDS.", "HQ Nuclear Tracker", humans_other, 'sound/misc/notice1.ogg') + var/time_left = duration2text_sec(floor(rand(decryption_time - decryption_time / 10, decryption_time + decryption_time / 10))) + yautja_announcement(SPAN_YAUTJABOLDBIG("WARNING!
        A human purification device has been detected. You have approximately [time_left] before it finishes its initial phase.")) for(var/hivenumber in GLOB.hive_datum) hive = GLOB.hive_datum[hivenumber] if(!length(hive.totalXenos)) @@ -620,7 +614,7 @@ GLOBAL_VAR_INIT(bomb_set, FALSE) announcement_helper("ALERT.\n\nNUCLEAR EXPLOSIVE DECRYPTION HALTED.", "[MAIN_AI_SYSTEM] Nuclear Tracker", humans_uscm, 'sound/misc/notice1.ogg') announcement_helper("ALERT.\n\nNUCLEAR EXPLOSIVE DECRYPTION HALTED.", "HQ Intel Division", humans_other, 'sound/misc/notice1.ogg') - yautja_announcement(SPAN_YAUTJABOLDBIG("WARNING!
        The human Purification Device's signature has disappeared.")) + yautja_announcement(SPAN_YAUTJABOLDBIG("WARNING!
        The human purification device's signature has disappeared.")) for(var/hivenumber in GLOB.hive_datum) hive = GLOB.hive_datum[hivenumber] if(!length(hive.totalXenos)) diff --git a/code/game/machinery/rechargestation.dm b/code/game/machinery/rechargestation.dm index 56b782cd77a4..536ad72557d9 100644 --- a/code/game/machinery/rechargestation.dm +++ b/code/game/machinery/rechargestation.dm @@ -8,14 +8,23 @@ use_power = USE_POWER_IDLE idle_power_usage = 50 active_power_usage = 50 + can_buckle = TRUE + /// the borg inside var/mob/living/occupant = null - var/max_internal_charge = 15000 // Two charged borgs in a row with default cell - var/current_internal_charge = 15000 // Starts charged, to prevent power surges on round start - var/charging_cap_active = 25000 // Active Cap - When cyborg is inside - var/charging_cap_passive = 2500 // Passive Cap - Recharging internal capacitor when no cyborg is inside - var/icon_update_tick = 0 // Used to update icon only once every 10 ticks + /// Two charged borgs in a row with default cell + var/max_internal_charge = 15000 + /// Starts charged, to prevent power surges on round start + var/current_internal_charge = 15000 + /// Active Cap - When cyborg is inside + var/charging_cap_active = 25000 + /// Passive Cap - Recharging internal capacitor when no cyborg is inside + var/charging_cap_passive = 2500 + /// Used to update icon only once every 10 ticks + var/icon_update_tick = 0 + /// implants to not remove var/known_implants = list(/obj/item/implant/chem, /obj/item/implant/death_alarm, /obj/item/implant/loyalty, /obj/item/implant/tracking, /obj/item/implant/neurostim) - can_buckle = TRUE + ///stun time upon exiting, if at all + var/exit_stun = 2 /obj/structure/machinery/recharge_station/Initialize(mapload, ...) @@ -64,9 +73,9 @@ var/charge_diff = max_internal_charge - current_internal_charge // OK we have charge differences charge_diff = charge_diff / CELLRATE // Deconvert from Charge to Joules if(chargemode) // Decide if use passive or active power - charge_diff = between(0, charge_diff, charging_cap_active) // Trim the values to limits + charge_diff = clamp(charge_diff, 0, charging_cap_active) // Trim the values to limits else // We should have load for this tick in Watts - charge_diff = between(0, charge_diff, charging_cap_passive) + charge_diff = clamp(charge_diff, 0, charging_cap_passive) charge_diff += 50 // 50W for circuitry @@ -97,7 +106,7 @@ /obj/structure/machinery/recharge_station/get_examine_text(mob/user) . = ..() - . += "The charge meter reads: [round(chargepercentage())]%" + . += "The charge meter reads: [floor(chargepercentage())]%" /obj/structure/machinery/recharge_station/proc/chargepercentage() return ((current_internal_charge / max_internal_charge) * 100) @@ -126,7 +135,7 @@ else icon_state = "borgcharger0" overlays.Cut() - switch(round(chargepercentage())) + switch(floor(chargepercentage())) if(1 to 20) overlays += image('icons/obj/objects.dmi', "statn_c0") if(21 to 40) @@ -143,21 +152,6 @@ /obj/structure/machinery/recharge_station/proc/process_occupant() if(src.occupant) var/doing_stuff = FALSE - if (isrobot(occupant)) - var/mob/living/silicon/robot/R = occupant - if(R.module) - R.module.respawn_consumable(R) - if(!R.cell) - return - if(!R.cell.fully_charged()) - var/diff = min(R.cell.maxcharge - R.cell.charge, 500) // 500 charge / tick is about 2% every 3 seconds - diff = min(diff, current_internal_charge) // No over-discharging - R.cell.give(diff) - current_internal_charge = max(current_internal_charge - diff, 0) - to_chat(occupant, "Recharging...") - doing_stuff = TRUE - else - update_use_power(USE_POWER_IDLE) if (issynth(occupant)) var/mob/living/carbon/human/humanoid_occupant = occupant //for special synth surgeries if(occupant.getBruteLoss() > 0 || occupant.getFireLoss() > 0 || occupant.getBrainLoss() > 0) @@ -173,7 +167,7 @@ doing_stuff = TRUE if(!doing_stuff) for(var/obj/limb/current_limb in humanoid_occupant.limbs) - if(current_limb.implants.len) + if(length(current_limb.implants)) doing_stuff = TRUE to_chat(occupant, "Foreign material detected. Beginning removal process...") for(var/obj/item/current_implant in current_limb.implants) @@ -198,18 +192,23 @@ /obj/structure/machinery/recharge_station/proc/go_out() - if(!( src.occupant )) + if(!occupant) return - //for(var/obj/O in src) - // O.forceMove(src.loc) - if (src.occupant.client) - src.occupant.client.eye = src.occupant.client.mob - src.occupant.client.perspective = MOB_PERSPECTIVE - src.occupant.forceMove(loc) - src.occupant = null + var/mob/living/synth = occupant + + if(synth.client) + synth.client.eye = synth.client.mob + synth.client.perspective = MOB_PERSPECTIVE + + synth.forceMove(loc) + if(exit_stun) + synth.Stun(exit_stun) //Action delay when going out of a closet + if(synth.mobility_flags & MOBILITY_MOVE) + synth.visible_message(SPAN_WARNING("[synth] suddenly gets out of [src]!"), SPAN_WARNING("You get out of [src] and get your bearings!")) + + occupant = null update_icon() update_use_power(USE_POWER_IDLE) - return /obj/structure/machinery/recharge_station/verb/move_eject() set category = "Object" @@ -226,14 +225,10 @@ return move_mob_inside(target) /obj/structure/machinery/recharge_station/verb/move_mob_inside(mob/living/M) - if (!isrobot(M) && !issynth(M)) + if (!issynth(M)) return FALSE if (occupant) return FALSE - if (isrobot(M)) - var/mob/living/silicon/robot/R = M - if(QDELETED(R.cell)) - return FALSE M.stop_pulling() if(M && M.client) M.client.perspective = EYE_PERSPECTIVE @@ -254,18 +249,12 @@ if (usr.stat == 2) //Whoever had it so that a borg with a dead cell can't enter this thing should be shot. --NEO return - if (!isrobot(usr) && !issynth(usr)) + if (!issynth(usr)) to_chat(usr, SPAN_NOTICE(" Only non-organics may enter the recharge and repair station!")) return if (src.occupant) to_chat(usr, SPAN_NOTICE(" The cell is already occupied!")) return - if (isrobot(usr)) - var/mob/living/silicon/robot/R = usr - if(QDELETED(R.cell)) - to_chat(usr, SPAN_NOTICE("Without a powercell, you can't be recharged.")) - //Make sure they actually HAVE a cell, now that they can get in while powerless. --NEO - return move_mob_inside(usr) return @@ -275,7 +264,7 @@ var/obj/item/grab/G = W if(!ismob(G.grabbed_thing)) return - if(!issynth(G.grabbed_thing) && !isrobot(G.grabbed_thing)) + if(!issynth(G.grabbed_thing)) return if(occupant) diff --git a/code/game/machinery/scoreboard.dm b/code/game/machinery/scoreboard.dm index 8740bed6dcfb..0810ae26cbf4 100644 --- a/code/game/machinery/scoreboard.dm +++ b/code/game/machinery/scoreboard.dm @@ -16,14 +16,13 @@ update_display() /obj/structure/machinery/scoreboard/proc/update_display() - if(overlays.len) - overlays.Cut() + LAZYCLEARLIST(overlays) - var/score_state = "s[( round(scoreleft/10) > scoreleft/10 ? round(scoreleft/10)-1 : round(scoreleft/10) )]a" + var/score_state = "s[( floor(scoreleft/10) > scoreleft/10 ? floor(scoreleft/10)-1 : floor(scoreleft/10) )]a" overlays += image('icons/obj/structures/machinery/scoreboard.dmi', icon_state=score_state) score_state = "s[scoreleft%10]b" overlays += image('icons/obj/structures/machinery/scoreboard.dmi', icon_state=score_state) - score_state = "s[( round(scoreright/10) > scoreright/10 ? round(scoreright/10)-1 : round(scoreright/10) )]c" + score_state = "s[( floor(scoreright/10) > scoreright/10 ? floor(scoreright/10)-1 : floor(scoreright/10) )]c" overlays += image('icons/obj/structures/machinery/scoreboard.dmi', icon_state=score_state) score_state = "s[scoreright%10]d" overlays += image('icons/obj/structures/machinery/scoreboard.dmi', icon_state=score_state) diff --git a/code/game/machinery/sentry_holder.dm b/code/game/machinery/sentry_holder.dm index fe676e9103d2..27cfe0cfcec8 100644 --- a/code/game/machinery/sentry_holder.dm +++ b/code/game/machinery/sentry_holder.dm @@ -16,6 +16,7 @@ var/ox = 0 var/oy = 0 var/require_red_alert = FALSE + var/base_icon_state = "sentry_system" /obj/structure/machinery/sentry_holder/Initialize() . = ..() @@ -76,13 +77,14 @@ deployment_cooldown = world.time + 50 deployed_turret.turned_on = TRUE deployed_turret.forceMove(loc) - icon_state = "sentry_system_deployed" + icon_state = "[base_icon_state]_deployed" - for(var/mob/M in deployed_turret.loc) - if(deployed_turret.loc == src.loc) - step(M, deployed_turret.dir) - else - step(M, get_dir(src,deployed_turret)) + if(deployed_turret.density) + for(var/mob/blocking_mob in deployed_turret.loc) + if(deployed_turret.loc == loc) + step(blocking_mob, deployed_turret.dir) + else + step(blocking_mob, get_dir(src, deployed_turret)) deployed_turret.setDir(dir) deployed_turret.pixel_x = 0 @@ -103,7 +105,7 @@ deployed_turret.unset_range() pixel_x = ox pixel_y = oy - icon_state = "sentry_system_installed" + icon_state = "[base_icon_state]_installed" /obj/structure/machinery/sentry_holder/Destroy() QDEL_NULL(deployed_turret) @@ -114,6 +116,73 @@ desc = "A box that deploys a sentry turret for protection of the residents in the area." turret_path = /obj/structure/machinery/defenses/sentry/premade/deployable/colony +/obj/structure/machinery/sentry_holder/wy + health = 200 + desc = "A box that deploys a sentry turret for protecting Weyland-Yutani personnel" + turret_path = /obj/structure/machinery/defenses/sentry/premade/deployable/wy + /obj/structure/machinery/sentry_holder/almayer + icon_state = "floor_sentry_installed" turret_path = /obj/structure/machinery/defenses/sentry/premade/deployable/almayer + base_icon_state = "floor_sentry" require_red_alert = TRUE + +/obj/structure/machinery/sentry_holder/almayer/mini + turret_path = /obj/structure/machinery/defenses/sentry/premade/deployable/almayer/mini + +/obj/structure/machinery/sentry_holder/almayer/mini/aicore + +/obj/structure/machinery/sentry_holder/almayer/mini/aicore/Initialize() + . = ..() + RegisterSignal(SSdcs, COMSIG_GLOB_AICORE_LOCKDOWN, PROC_REF(auto_deploy)) + RegisterSignal(SSdcs, COMSIG_GLOB_AICORE_LIFT, PROC_REF(undeploy_sentry)) + +/obj/structure/machinery/sentry_holder/almayer/mini/aicore/proc/auto_deploy() + if(deployed_turret.loc == src) //not deployed + if(stat & NOPOWER) + return FALSE + + deploy_sentry() + return TRUE + +/obj/structure/machinery/sentry_holder/almayer/mini/aicore/attack_hand(mob/user) + to_chat(user, SPAN_WARNING("[src] can only be deployed remotely.")) + return + +/obj/structure/machinery/sentry_holder/landing_zone + icon_state = "floor_sentry_installed" // TODO: More appropriate sprites + turret_path = /obj/structure/machinery/defenses/sentry/premade/deployable/colony/landing_zone + base_icon_state = "floor_sentry" // TODO: More appropriate sprites + layer = HATCH_LAYER // Needs to not hide barricades + +/obj/structure/machinery/sentry_holder/landing_zone/attack_hand(mob/user) + var/obj/structure/machinery/defenses/sentry/premade/deployable/colony/landing_zone/turret = deployed_turret + if(!istype(turret)) + to_chat(user, SPAN_WARNING("[src] is unresponsive.")) + return + + if(deployment_cooldown > world.time) + to_chat(user, SPAN_WARNING("[src] is busy.")) + return + + if(deployed_turret.loc == src) //not deployed + if(turret.battery_state == TURRET_BATTERY_STATE_DEAD) + to_chat(user, SPAN_WARNING("[src] is non-functional.")) + return + + if(require_red_alert && (seclevel2num(get_security_level()) < SEC_LEVEL_RED)) + to_chat(user, SPAN_WARNING("[src] can only be activated in emergencies.")) + return + + to_chat(user, SPAN_NOTICE("You deploy [src].")) + deploy_sentry() + msg_admin_niche("[key_name(user)] deployed [turret] at [get_location_in_text(src)] [ADMIN_JMP(loc)]") + return + + to_chat(user, SPAN_NOTICE("You retract [src].")) + msg_admin_niche("[key_name(user)] retracted [turret] at [get_location_in_text(src)] [ADMIN_JMP(loc)]") + undeploy_sentry() + return + +/obj/structure/machinery/sentry_holder/landing_zone/update_use_power(new_use_power) + return diff --git a/code/game/machinery/spaceheater.dm b/code/game/machinery/spaceheater.dm index 69b21964a4f4..64c0023e6a09 100644 --- a/code/game/machinery/spaceheater.dm +++ b/code/game/machinery/spaceheater.dm @@ -127,7 +127,7 @@ var/value = text2num(href_list["val"]) // limit to 0-90 degC - set_temperature = dd_range(T0C, T0C + 90, set_temperature + value) + set_temperature = clamp(set_temperature + value, T0C, T0C + 90) if("cellremove") if(open && cell && !usr.get_active_hand()) @@ -162,7 +162,7 @@ if(isturf(loc) && cell && cell.charge) for(var/mob/living/carbon/human/H in range(2, src)) if(H.bodytemperature < T20C) - H.bodytemperature += min(round(T20C - H.bodytemperature)*0.7, 25) + H.bodytemperature += min(floor(T20C - H.bodytemperature)*0.7, 25) H.recalculate_move_delay = TRUE diff --git a/code/game/machinery/status_display.dm b/code/game/machinery/status_display.dm index 547dbba68e4f..db2e58cf325b 100644 --- a/code/game/machinery/status_display.dm +++ b/code/game/machinery/status_display.dm @@ -158,8 +158,7 @@ return "" /obj/structure/machinery/status_display/proc/remove_display() - if(overlays.len) - overlays.Cut() + LAZYCLEARLIST(overlays) if(maptext) maptext = "" @@ -241,8 +240,7 @@ /obj/structure/machinery/ai_status_display/proc/set_picture(state) picture_state = state - if(overlays.len) - overlays.Cut() + LAZYCLEARLIST(overlays) overlays += image('icons/obj/structures/machinery/status_display.dmi', icon_state=picture_state) #undef DEFAULT_FONT_COLOR diff --git a/code/game/machinery/telecomms/broadcaster.dm b/code/game/machinery/telecomms/broadcaster.dm index f8250fad271c..bf3ab569e9da 100644 --- a/code/game/machinery/telecomms/broadcaster.dm +++ b/code/game/machinery/telecomms/broadcaster.dm @@ -83,7 +83,7 @@ vmask, vmessage, obj/item/device/radio/radio, message, name, job, realname, vname, data, compression, list/level, freq, verbage = "says", - datum/language/speaking = null, volume = RADIO_VOLUME_QUIET) + datum/language/speaking = null, volume = RADIO_VOLUME_QUIET, listening_device = FALSE) /* ###### Prepare the radio connection ###### */ var/display_freq = freq @@ -150,8 +150,6 @@ var/list/heard_gibberish= list() // completely screwed over message (ie "F%! (O*# *#!<>&**%!") if(M) - if(isAI(M)) - volume = RADIO_VOLUME_CRITICAL if(ishuman(M)) var/mob/living/carbon/human/H = M if(skillcheck(H, SKILL_LEADERSHIP, SKILL_LEAD_EXPERT)) @@ -175,13 +173,16 @@ volume = RADIO_VOLUME_CRITICAL for (var/mob/R in receive) + var/is_ghost = istype(R, /mob/dead/observer) /* --- Loop through the receivers and categorize them --- */ if (R.client && !(R.client.prefs.toggles_chat & CHAT_RADIO)) //Adminning with 80 people on can be fun when you're trying to talk and all you can hear is radios. continue if(istype(R, /mob/new_player)) // we don't want new players to hear messages. rare but generates runtimes. continue // Ghosts hearing all radio chat don't want to hear syndicate intercepts, they're duplicates - if(data == 3 && istype(R, /mob/dead/observer) && R.client && (R.client.prefs.toggles_chat & CHAT_GHOSTRADIO)) + if(data == 3 && is_ghost && R.client && (R.client.prefs.toggles_chat & CHAT_GHOSTRADIO)) + continue + if(is_ghost && listening_device && !(R.client.prefs.toggles_chat & CHAT_LISTENINGBUG)) continue // --- Check for compression --- if(compression > 0) diff --git a/code/game/machinery/telecomms/machine_interactions.dm b/code/game/machinery/telecomms/machine_interactions.dm index 942d70f80705..9bffa8ebe450 100644 --- a/code/game/machinery/telecomms/machine_interactions.dm +++ b/code/game/machinery/telecomms/machine_interactions.dm @@ -69,7 +69,7 @@ to_chat(user, "You finish prying out the components.") // Drop all the component stuff - if(contents.len > 0) + if(length(contents) > 0) for(var/obj/x in src) x.forceMove(user.loc) else @@ -102,7 +102,7 @@ /obj/structure/machinery/telecomms/attack_hand(mob/user as mob) // You need a multitool to use this, or be silicon - if(!ishighersilicon(user)) + if(!isSilicon(user)) if(!skillcheck(user, SKILL_ENGINEER, SKILL_ENGINEER_ENGI)) to_chat(user, SPAN_WARNING("You stare at \the [src] cluelessly...")) return @@ -125,7 +125,7 @@ else dat += "
        Identification String: NULL" dat += "
        Network: [network]" - dat += "
        Prefabrication: [autolinkers.len ? "TRUE" : "FALSE"]" + dat += "
        Prefabrication: [length(autolinkers) ? "TRUE" : "FALSE"]" if(hide) dat += "
        Shadow Link: ACTIVE" //Show additional options for certain GLOB.machines. @@ -160,7 +160,7 @@ dat += "" temp = "" show_browser(user, dat, "[src] Access", "tcommachine", "size=520x500;can_resize=0") - onclose(user, "dormitory") + onclose(user, "tcommachine") // Off-Site Relays @@ -177,29 +177,11 @@ if(src.listening_level == TELECOMM_GROUND_Z) // equals the station src.listening_level = position.z return 1 - else if(is_admin_level(position.z)) + else if(should_block_game_interaction(position)) src.listening_level = TELECOMM_GROUND_Z return 1 return 0 -// Returns a multitool from a user depending on their mobtype. - -/obj/structure/machinery/telecomms/proc/get_multitool(mob/user as mob) - - var/obj/item/device/multitool/P = null - // Let's double check - var/obj/item/held_item = user.get_active_hand() - if(!ishighersilicon(user) && held_item && HAS_TRAIT(held_item, TRAIT_TOOL_MULTITOOL)) - P = user.get_active_hand() - else if(isAI(user)) - var/mob/living/silicon/ai/U = user - P = U.aiMulti - else if(isborg(user) && in_range(user, src)) - var/obj/item/borg_held_item = user.get_active_hand() - if(held_item && HAS_TRAIT(borg_held_item, TRAIT_TOOL_MULTITOOL)) - P = user.get_active_hand() - return P - // Additional Options for certain GLOB.machines. Use this when you want to add an option to a specific machine. // Example of how to use below. @@ -229,7 +211,7 @@ /obj/structure/machinery/telecomms/relay/Options_Menu() var/dat = "" - if(is_admin_level(z)) + if(should_block_game_interaction(src)) dat += "
        Signal Locked to Station: [listening_level == TELECOMM_GROUND_Z ? "TRUE" : "FALSE"]" dat += "
        Broadcasting: [broadcasting ? "YES" : "NO"]" dat += "
        Receiving: [receiving ? "YES" : "NO"]" @@ -279,7 +261,7 @@ . = ..() if(.) return - if(!ishighersilicon(usr)) + if(!isSilicon(usr)) var/obj/item/held_item = usr.get_held_item() if (!held_item || !HAS_TRAIT(held_item, TRAIT_TOOL_MULTITOOL)) return diff --git a/code/game/machinery/telecomms/portable_comms.dm b/code/game/machinery/telecomms/portable_comms.dm index f8f34133750f..c2a9bb1072ac 100644 --- a/code/game/machinery/telecomms/portable_comms.dm +++ b/code/game/machinery/telecomms/portable_comms.dm @@ -18,9 +18,9 @@ is_wired = 1 break if(components) - switch(components.len) + switch(length(components)) if(0 to 8) - icon_state = "construct_[contents.len]_[is_wired]" + icon_state = "construct_[length(contents)]_[is_wired]" else icon_state = "construct_8_1" else if(state) diff --git a/code/game/machinery/telecomms/presets.dm b/code/game/machinery/telecomms/presets.dm index 7621d55e3645..0c9e875534da 100644 --- a/code/game/machinery/telecomms/presets.dm +++ b/code/game/machinery/telecomms/presets.dm @@ -81,7 +81,7 @@ else if(P.ammo.flags_ammo_behavior & AMMO_ANTISTRUCT) update_health(P.damage*ANTISTRUCT_DMG_MULT_BARRICADES) - update_health(round(P.damage/2)) + update_health(floor(P.damage/2)) return TRUE /obj/structure/machinery/telecomms/relay/preset/tower/update_health(damage = 0) @@ -91,7 +91,7 @@ return // Leave the poor thing alone health -= damage - health = Clamp(health, 0, initial(health)) + health = clamp(health, 0, initial(health)) if(health <= 0) toggled = FALSE // requires flipping on again once repaired @@ -147,7 +147,7 @@ else return ..() /obj/structure/machinery/telecomms/relay/preset/tower/attack_hand(mob/user) - if(ishighersilicon(user)) + if(isSilicon(user)) return ..() if(on) to_chat(user, SPAN_WARNING("\The [src.name] blinks and beeps incomprehensibly as it operates, better not touch this...")) @@ -155,7 +155,7 @@ toggle_state(user) // just flip dat switch /obj/structure/machinery/telecomms/relay/preset/tower/all - freq_listening = list() + freq_listening = list(UNIVERSAL_FREQ) /obj/structure/machinery/telecomms/relay/preset/tower/faction name = "UPP telecommunications relay" @@ -267,8 +267,8 @@ GLOBAL_LIST_EMPTY(all_static_telecomms_towers) to_chat(user, SPAN_WARNING("\The [src.name] needs repairs to have frequencies added to its software!")) return var/choice = tgui_input_list(user, "What do you wish to do?", "TC-3T comms tower", list("Wipe communication frequencies", "Add your faction's frequencies")) - if(choice == "Wipe frequencies") - freq_listening = null + if(choice == "Wipe communication frequencies") + freq_listening.Cut() to_chat(user, SPAN_NOTICE("You wipe the preexisting frequencies from \the [src].")) return else if(choice == "Add your faction's frequencies") @@ -277,12 +277,16 @@ GLOBAL_LIST_EMPTY(all_static_telecomms_towers) switch(user.faction) if(FACTION_SURVIVOR) freq_listening |= COLONY_FREQ + if(FACTION_MARINE in user.faction_group) //FORECON survivors + freq_listening |= SOF_FREQ if(FACTION_CLF) freq_listening |= CLF_FREQS if(FACTION_UPP) freq_listening |= UPP_FREQS if(FACTION_WY,FACTION_PMC) freq_listening |= PMC_FREQS + if(FACTION_TWE) + freq_listening |= RMC_FREQ if(FACTION_YAUTJA) to_chat(user, SPAN_WARNING("You decide to leave the human machine alone.")) return @@ -302,6 +306,11 @@ GLOBAL_LIST_EMPTY(all_static_telecomms_towers) else update_icon() +/obj/structure/machinery/telecomms/relay/preset/tower/mapcomms/update_state() + ..() + if(inoperable()) + handle_xeno_acquisition(get_turf(src)) + /// Handles xenos corrupting the tower when weeds touch the turf it is located on /obj/structure/machinery/telecomms/relay/preset/tower/mapcomms/proc/handle_xeno_acquisition(turf/weeded_turf) SIGNAL_HANDLER @@ -324,12 +333,15 @@ GLOBAL_LIST_EMPTY(all_static_telecomms_towers) if(SSticker.mode.is_in_endgame) return + if(operable()) + return + if(ROUND_TIME < XENO_COMM_ACQUISITION_TIME) - addtimer(CALLBACK(src, PROC_REF(handle_xeno_acquisition), weeded_turf), (XENO_COMM_ACQUISITION_TIME - ROUND_TIME)) + addtimer(CALLBACK(src, PROC_REF(handle_xeno_acquisition), weeded_turf), (XENO_COMM_ACQUISITION_TIME - ROUND_TIME), TIMER_UNIQUE|TIMER_OVERRIDE|TIMER_NO_HASH_WAIT) return if(!COOLDOWN_FINISHED(src, corruption_delay)) - addtimer(CALLBACK(src, PROC_REF(handle_xeno_acquisition), weeded_turf), (COOLDOWN_TIMELEFT(src, corruption_delay))) + addtimer(CALLBACK(src, PROC_REF(handle_xeno_acquisition), weeded_turf), (COOLDOWN_TIMELEFT(src, corruption_delay)), TIMER_UNIQUE|TIMER_OVERRIDE|TIMER_NO_HASH_WAIT) return var/obj/effect/alien/weeds/node/pylon/cluster/parent_node = weeded_turf.weeds.parent @@ -446,7 +458,7 @@ GLOBAL_LIST_EMPTY(all_static_telecomms_towers) id = "CentComm Receiver" network = "tcommsat" autolinkers = list("receiverCent") - freq_listening = list(WY_WO_FREQ, PMC_FREQ, DUT_FREQ, YAUT_FREQ, HC_FREQ, PVST_FREQ, SOF_FREQ, CBRN_FREQ) + freq_listening = list(WY_WO_FREQ, PMC_FREQ, DUT_FREQ, YAUT_FREQ, HC_FREQ, PVST_FREQ, SOF_FREQ, CBRN_FREQ, FORECON_FREQ) //Buses diff --git a/code/game/machinery/telecomms/telecomunications.dm b/code/game/machinery/telecomms/telecomunications.dm index 8b8b12dfd170..7652ac601f56 100644 --- a/code/game/machinery/telecomms/telecomunications.dm +++ b/code/game/machinery/telecomms/telecomunications.dm @@ -26,7 +26,7 @@ GLOBAL_LIST_EMPTY_TYPED(telecomms_list, /obj/structure/machinery/telecomms) var/traffic = 0 // value increases as traffic increases var/netspeed = 5 // how much traffic to lose per tick (50 gigabytes/second * netspeed) var/list/autolinkers = list() // list of text/number values to link with - var/list/freq_listening = list() // list of frequencies to tune into: if none, will listen to all + var/list/freq_listening = list(UNIVERSAL_FREQ) // list of frequencies to tune into: if universal frequency is included, will listen to all var/machinetype = 0 // just a hacky way of preventing alike machines from pairing var/delay = 10 // how many process() ticks to delay per heat var/long_range_link = 0 // Can you link it across Z levels or on the otherside of the map? (Relay & Hub) diff --git a/code/game/machinery/teleporter.dm b/code/game/machinery/teleporter.dm index 8ea00ce4061d..8b6622121b86 100644 --- a/code/game/machinery/teleporter.dm +++ b/code/game/machinery/teleporter.dm @@ -98,7 +98,7 @@ var/turf/T = get_turf(R) if (!T) continue - if(is_admin_level(T.z)) + if(should_block_game_interaction(T)) continue var/tmpname = T.loc.name if(areaindex[tmpname]) @@ -118,7 +118,7 @@ continue var/turf/T = get_turf(M) if(T) continue - if(is_admin_level(T.z)) continue + if(should_block_game_interaction(T)) continue var/tmpname = M.real_name if(areaindex[tmpname]) tmpname = "[tmpname] ([++areaindex[tmpname]])" diff --git a/code/game/machinery/vending/cm_vending.dm b/code/game/machinery/vending/cm_vending.dm index 02b602cc8e07..db173e7b1608 100644 --- a/code/game/machinery/vending/cm_vending.dm +++ b/code/game/machinery/vending/cm_vending.dm @@ -46,7 +46,11 @@ /// Direction to adjacent user from which we're allowed to do offset vending var/list/vend_dir_whitelist + /// The actual inventory for this vendor as a list of lists + /// 1: name 2: amount 3: type 4: flag var/list/listed_products = list() + /// Partial stacks to hold on to as an associated list of type : amount + var/list/partial_product_stacks = list() // Are points associated with this vendor tied to its instance? var/instanced_vendor_points = FALSE @@ -195,7 +199,7 @@ GLOBAL_LIST_EMPTY(vending_products) for(var/list/product in topic_listed_products) if(product[3] == item_box_pairing.box) //We recalculate the amount of boxes we ought to have based on how many magazines we have - product[2] = round(base_ammo_item[2] / item_box_pairing.items_in_box) + product[2] = floor(base_ammo_item[2] / item_box_pairing.items_in_box) break /obj/structure/machinery/cm_vending/proc/update_derived_from_boxes(obj/item/box_being_added_or_removed, add_box = FALSE) @@ -243,7 +247,7 @@ GLOBAL_LIST_EMPTY(vending_products) //M94 flare packs handling else if(istype(item_to_stock, /obj/item/storage/box/m94)) var/obj/item/storage/box/m94/flare_pack = item_to_stock - if(flare_pack.contents.len < flare_pack.max_storage_space) + if(length(flare_pack.contents) < flare_pack.max_storage_space) to_chat(user, SPAN_WARNING("\The [item_to_stock] is not full.")) return var/flare_type @@ -268,7 +272,7 @@ GLOBAL_LIST_EMPTY(vending_products) //Machete holsters handling else if(istype(item_to_stock, /obj/item/clothing/suit/storage/marine)) var/obj/item/clothing/suit/storage/marine/AR = item_to_stock - if(AR.pockets && AR.pockets.contents.len) + if(AR.pockets && length(AR.pockets.contents)) if(user) to_chat(user, SPAN_WARNING("\The [AR] has something inside it. Empty it before restocking.")) return FALSE @@ -296,7 +300,7 @@ GLOBAL_LIST_EMPTY(vending_products) if(AM.current_rounds != AM.max_rounds) to_chat(user, SPAN_WARNING("\The [A] isn't full. You need to fill it before you can restock it.")) return - else if(A.contents.len < A.num_of_magazines) + else if(length(A.contents) < A.num_of_magazines) to_chat(user, SPAN_WARNING("[A] is not full.")) return else @@ -313,14 +317,14 @@ GLOBAL_LIST_EMPTY(vending_products) //Marine armor handling else if(istype(item_to_stock, /obj/item/clothing/suit/storage/marine)) var/obj/item/clothing/suit/storage/marine/AR = item_to_stock - if(AR.pockets && AR.pockets.contents.len) + if(AR.pockets && length(AR.pockets.contents)) if(user) to_chat(user, SPAN_WARNING("\The [AR] has something inside it. Empty it before restocking.")) return FALSE //Marine helmet handling else if(istype(item_to_stock, /obj/item/clothing/head/helmet/marine)) var/obj/item/clothing/head/helmet/marine/H = item_to_stock - if(H.pockets && H.pockets.contents.len) + if(H.pockets && length(H.pockets.contents)) if(user) to_chat(user, SPAN_WARNING("\The [H] has something inside it. Empty it before restocking.")) return FALSE @@ -373,41 +377,49 @@ GLOBAL_LIST_EMPTY(vending_products) //------------INTERACTION PROCS--------------- -/obj/structure/machinery/cm_vending/attack_alien(mob/living/carbon/xenomorph/M) +/obj/structure/machinery/cm_vending/attack_alien(mob/living/carbon/xenomorph/user) if(stat & TIPPED_OVER || indestructible) - to_chat(M, SPAN_WARNING("There's no reason to bother with that old piece of trash.")) + to_chat(user, SPAN_WARNING("There's no reason to bother with that old piece of trash.")) return XENO_NO_DELAY_ACTION - if(M.a_intent == INTENT_HARM && !unslashable) - M.animation_attack_on(src) - if(prob(M.melee_damage_lower)) + if(user.a_intent == INTENT_HARM && !unslashable) + user.animation_attack_on(src) + if(prob(user.melee_damage_lower)) playsound(loc, 'sound/effects/metalhit.ogg', 25, 1) - M.visible_message(SPAN_DANGER("[M] smashes [src] beyond recognition!"), \ + user.visible_message(SPAN_DANGER("[user] smashes [src] beyond recognition!"), \ SPAN_DANGER("You enter a frenzy and smash [src] apart!"), null, 5, CHAT_TYPE_XENO_COMBAT) malfunction() tip_over() else - M.visible_message(SPAN_DANGER("[M] slashes [src]!"), \ + user.visible_message(SPAN_DANGER("[user] slashes [src]!"), \ SPAN_DANGER("You slash [src]!"), null, 5, CHAT_TYPE_XENO_COMBAT) playsound(loc, 'sound/effects/metalhit.ogg', 25, 1) return XENO_ATTACK_ACTION - if(M.action_busy) + if(user.action_busy) return XENO_NO_DELAY_ACTION - - M.visible_message(SPAN_WARNING("[M] begins to lean against [src]."), \ + if(user.a_intent == INTENT_HELP && user.IsAdvancedToolUser()) + user.set_interaction(src) + tgui_interact(user) + if(!hacked) + to_chat(user, SPAN_WARNING("You slash open [src]'s front panel, revealing the items within.")) + var/datum/effect_system/spark_spread/spark_system = new + spark_system.set_up(5, 5, get_turf(src)) + hacked = TRUE + return XENO_ATTACK_ACTION + user.visible_message(SPAN_WARNING("[user] begins to lean against [src]."), \ SPAN_WARNING("You begin to lean against [src]."), null, 5, CHAT_TYPE_XENO_COMBAT) var/shove_time = 80 - if(M.mob_size >= MOB_SIZE_BIG) + if(user.mob_size >= MOB_SIZE_BIG) shove_time = 30 - if(istype(M,/mob/living/carbon/xenomorph/crusher)) + if(istype(user,/mob/living/carbon/xenomorph/crusher)) shove_time = 15 - xeno_attack_delay(M) //Adds delay here and returns nothing because otherwise it'd cause lag *after* finishing the shove. + xeno_attack_delay(user) //Adds delay here and returns nothing because otherwise it'd cause lag *after* finishing the shove. - if(do_after(M, shove_time, INTERRUPT_ALL, BUSY_ICON_HOSTILE)) - M.animation_attack_on(src) - M.visible_message(SPAN_DANGER("[M] knocks [src] down!"), \ + if(do_after(user, shove_time, INTERRUPT_ALL, BUSY_ICON_HOSTILE)) + user.animation_attack_on(src) + user.visible_message(SPAN_DANGER("[user] knocks [src] down!"), \ SPAN_DANGER("You knock [src] down!"), null, 5, CHAT_TYPE_XENO_COMBAT) tip_over() return XENO_NO_DELAY_ACTION @@ -508,7 +520,12 @@ GLOBAL_LIST_EMPTY(vending_products) if(.) return - var/mob/living/carbon/human/user = usr + var/mob/living/carbon/human/human_user + var/mob/living/carbon/user = ui.user + + if(ishuman(user)) + human_user = usr + switch (action) if ("vend") if(stat & IN_USE) @@ -524,12 +541,15 @@ GLOBAL_LIST_EMPTY(vending_products) var/turf/target_turf = get_appropriate_vend_turf(user) if(vend_flags & VEND_CLUTTER_PROTECTION) - if(target_turf.contents.len > 25) + if(length(target_turf.contents) > 25) to_chat(usr, SPAN_WARNING("The floor is too cluttered, make some space.")) vend_fail() return FALSE - - if((!user.assigned_squad && squad_tag) || (!user.assigned_squad?.omni_squad_vendor && (squad_tag && user.assigned_squad.name != squad_tag))) + if(HAS_TRAIT(user,TRAIT_OPPOSABLE_THUMBS)) // the big monster 7 ft with thumbs does not care for squads + vendor_successful_vend(itemspec, usr) + add_fingerprint(usr) + return TRUE + if((!human_user.assigned_squad && squad_tag) || (!human_user.assigned_squad?.omni_squad_vendor && (squad_tag && human_user.assigned_squad.name != squad_tag))) to_chat(user, SPAN_WARNING("This machine isn't for your squad.")) vend_fail() return FALSE @@ -554,8 +574,8 @@ GLOBAL_LIST_EMPTY(vending_products) to_chat(user, SPAN_WARNING("That set is already taken.")) vend_fail() return FALSE - var/obj/item/card/id/ID = user.wear_id - if(!istype(ID) || ID.registered_ref != WEAKREF(usr)) + var/obj/item/card/id/card = human_user.get_idcard() + if(!card?.check_biometrics(user)) to_chat(user, SPAN_WARNING("You must be wearing your [SPAN_INFO("dog tags")] to select a specialization!")) return FALSE var/specialist_assignment @@ -566,6 +586,11 @@ GLOBAL_LIST_EMPTY(vending_products) if("Sniper Set") user.skills.set_skill(SKILL_SPEC_WEAPONS, SKILL_SPEC_SNIPER) specialist_assignment = "Sniper" + GLOB.available_specialist_sets -= "Anti-materiel Sniper Set" + if("Anti-materiel Sniper Set") + user.skills.set_skill(SKILL_SPEC_WEAPONS, SKILL_SPEC_SNIPER) + specialist_assignment = "Heavy Sniper" + GLOB.available_specialist_sets -= "Sniper Set" if("Demolitionist Set") user.skills.set_skill(SKILL_SPEC_WEAPONS, SKILL_SPEC_ROCKET) specialist_assignment = "Demo" @@ -576,11 +601,11 @@ GLOBAL_LIST_EMPTY(vending_products) user.skills.set_skill(SKILL_SPEC_WEAPONS, SKILL_SPEC_PYRO) specialist_assignment = "Pyro" else - to_chat(user, SPAN_WARNING("Something bad occured with [src], tell a Dev.")) + to_chat(user, SPAN_WARNING("Something bad occurred with [src], tell a Dev.")) vend_fail() return FALSE - ID.set_assignment((user.assigned_squad ? (user.assigned_squad.name + " ") : "") + JOB_SQUAD_SPECIALIST + " ([specialist_assignment])") - GLOB.data_core.manifest_modify(user.real_name, WEAKREF(user), ID.assignment) + card.set_assignment((human_user.assigned_squad ? (human_user.assigned_squad.name + " ") : "") + JOB_SQUAD_SPECIALIST + " ([specialist_assignment])") + GLOB.data_core.manifest_modify(user.real_name, WEAKREF(user), card.assignment) GLOB.available_specialist_sets -= p_name else if(vendor_role.Find(JOB_SYNTH)) if(user.job != JOB_SYNTH) @@ -772,6 +797,8 @@ GLOBAL_LIST_EMPTY(vending_products) return listed_products /obj/structure/machinery/cm_vending/proc/can_access_to_vend(mob/user, display = TRUE, ignore_hack = FALSE) + if(HAS_TRAIT(user, TRAIT_OPPOSABLE_THUMBS)) // We're just going to skip the mess of access checks assuming xenos with thumbs are human and just allow them to access because it's funny + return TRUE if(!hacked || ignore_hack) if(!allowed(user)) if(display) @@ -779,15 +806,15 @@ GLOBAL_LIST_EMPTY(vending_products) vend_fail() return FALSE - var/mob/living/carbon/human/H = user - var/obj/item/card/id/I = H.wear_id - if(!istype(I)) + var/mob/living/carbon/human/human_user = user + var/obj/item/card/id/idcard = human_user.get_idcard() + if(!idcard) if(display) to_chat(user, SPAN_WARNING("Access denied. No ID card detected")) vend_fail() return FALSE - if(I.registered_name != user.real_name) + if(!idcard.check_biometrics(human_user)) if(display) to_chat(user, SPAN_WARNING("Wrong ID card owner detected.")) vend_fail() @@ -877,9 +904,17 @@ GLOBAL_LIST_EMPTY(vending_products) ///this here is made to provide ability to restock vendors with different subtypes of same object, like handmade and manually filled ammo boxes. var/list/corresponding_types_list - ///If using [VEND_STOCK_DYNAMIC], assoc list of product entry to list of (product multiplier, awarded objects) - as seen in [/obj/structure/machinery/cm_vending/sorted/proc/populate_product_list] - ///This allows us to backtrack and refill the stocks when new players latejoin + /** + * If using [VEND_STOCK_DYNAMIC], assoc list of product entry to list of (1.0 scale product multiplier, awarded objects) - as seen in [/obj/structure/machinery/cm_vending/sorted/proc/populate_product_list] + * This allows us to backtrack and refill the stocks when new players latejoin. + * + * If NOT using [VEND_STOCK_DYNAMIC], assoc list of product entry to list of (estimated 1.0 scale product multiplier, scaled product multiplier) - as seen in [/obj/structure/machinery/cm_vending/sorted/proc/populate_product_list] + * This allows us to know the original amounts to know if the vendor is full of an item. + * The 1.0 scale is estimated because it is a divided by the scale rather than repopulating the list at 1.0 scale - anything that is a fixed amount won't necessarily be correct. + */ var/list/list/dynamic_stock_multipliers + ///indicates someone is performing a restock that isn't instant + var/being_restocked = FALSE /obj/structure/machinery/cm_vending/sorted/Initialize() . = ..() @@ -894,22 +929,33 @@ GLOBAL_LIST_EMPTY(vending_products) ///this proc, well, populates product list based on roundstart amount of players /obj/structure/machinery/cm_vending/sorted/proc/populate_product_list_and_boxes(scale) + dynamic_stock_multipliers = list() if(vend_flags & VEND_STOCK_DYNAMIC) populate_product_list(1.0) - dynamic_stock_multipliers = list() for(var/list/vendspec in listed_products) var/multiplier = vendspec[2] if(multiplier > 0) - var/awarded = round(vendspec[2] * scale) // Starting amount + var/awarded = round(multiplier * scale, 1) // Starting amount //Record the multiplier and how many have actually been given out - dynamic_stock_multipliers[vendspec] = list(vendspec[2], awarded) + dynamic_stock_multipliers[vendspec] = list(multiplier, awarded) vendspec[2] = awarded // Override starting amount else populate_product_list(scale) + for(var/list/vendspec in listed_products) + var/amount = vendspec[2] + if(amount > -1) + var/multiplier = ceil(amount / scale) + //Record the multiplier and how many have actually been given out + dynamic_stock_multipliers[vendspec] = list(multiplier, amount) if(vend_flags & VEND_LOAD_AMMO_BOXES) populate_ammo_boxes() - return + + partial_product_stacks = list() + for(var/list/vendspec in listed_products) + var/current_type = vendspec[3] + if(ispath(current_type, /obj/item/stack)) + partial_product_stacks[current_type] = 0 ///Updates the vendor stock when the [/datum/game_mode/var/marine_tally] has changed and we're using [VEND_STOCK_DYNAMIC] ///Assumes the scale can only increase!!! Don't take their items away! @@ -920,8 +966,8 @@ GLOBAL_LIST_EMPTY(vending_products) var/list/metadata = dynamic_stock_multipliers[vendspec] var/multiplier = metadata[1] // How much do we multiply scales by var/previous_max_amount = metadata[2] // How many we already handed out at old scale - var/projected_max_amount = round(new_scale * multiplier) // How much we would have had total now in total - var/amount_to_add = round(projected_max_amount - previous_max_amount) // Rounding just in case + var/projected_max_amount = round(new_scale * multiplier, 1) // How much we would have had total now in total + var/amount_to_add = round(projected_max_amount - previous_max_amount, 1) // Rounding just in case if(amount_to_add > 0) metadata[2] += amount_to_add vendspec[2] += amount_to_add @@ -942,12 +988,26 @@ GLOBAL_LIST_EMPTY(vending_products) if(!IMBP) continue for(var/datum/item_box_pairing/IBP as anything in IMBP.item_box_pairings) - tmp_list += list(list(initial(IBP.box.name), round(L[2] / IBP.items_in_box), IBP.box, VENDOR_ITEM_REGULAR)) - - //Putting Ammo and other boxes on the bottom of the list as per player preferences - if(tmp_list.len > 0) + tmp_list += list(list(initial(IBP.box.name), floor(L[2] / IBP.items_in_box), IBP.box, VENDOR_ITEM_REGULAR)) + + //For every item that goes into a box, check if the box is already listed in the vendor and if so, update its amount + var/list/box_list = list() + if(length(tmp_list)) + for(var/list/tmp_item as anything in tmp_list) + var/item_found = FALSE + for(var/list/product as anything in listed_products) + if(tmp_item[3] == product[3]) //We found a box we already have! + product[2] = tmp_item[2] //Update box amount + item_found = TRUE + break + if(!item_found) + //We will be adding this box item at the end of the list + box_list += list(tmp_item) + + //Putting Ammo and other boxes on the bottom of the list if they haven't been accounted for already + if(length(box_list)) listed_products += list(list("BOXES", -1, null, null)) - for(var/list/L as anything in tmp_list) + for(var/list/L as anything in box_list) listed_products += list(L) /obj/structure/machinery/cm_vending/sorted/ui_static_data(mob/user) @@ -956,40 +1016,80 @@ GLOBAL_LIST_EMPTY(vending_products) .["displayed_categories"] = vendor_user_inventory_list(user, null, 4) /obj/structure/machinery/cm_vending/sorted/MouseDrop_T(atom/movable/A, mob/user) - if(inoperable()) return - if(user.stat || user.is_mob_restrained()) return - if(get_dist(user, src) > 1 || get_dist(src, A) > 1) return + if(!ishuman(user)) + return + + // Try to bulk restock using a container + if(istype(A, /obj/item/storage)) + var/obj/item/storage/container = A + if(!length(container.contents)) + return + if(being_restocked) + to_chat(user, SPAN_WARNING("[src] is already being restocked, you will get in the way!")) + return + + user.visible_message(SPAN_NOTICE("[user] starts stocking a bunch of supplies into [src]."), \ + SPAN_NOTICE("You start stocking a bunch of supplies into [src].")) + being_restocked = TRUE + + for(var/obj/item/item in container.contents) + if(!do_after(user, 1 SECONDS, INTERRUPT_ALL, BUSY_ICON_GENERIC, src)) + being_restocked = FALSE + user.visible_message(SPAN_NOTICE("[user] stopped stocking [src] with supplies."), \ + SPAN_NOTICE("You stop stocking [src] with supplies.")) + return + if(QDELETED(item) || item.loc != container) + being_restocked = FALSE + user.visible_message(SPAN_NOTICE("[user] stopped stocking [src] with supplies."), \ + SPAN_NOTICE("You stop stocking [src] with supplies.")) + return + stock(item, user) + + being_restocked = FALSE + user.visible_message(SPAN_NOTICE("[user] finishes stocking [src] with supplies."), \ + SPAN_NOTICE("You finish stocking [src] with supplies.")) + return if(istype(A, /obj/item)) - var/obj/item/I = A - stock(I, user) + stock(A, user) /obj/structure/machinery/cm_vending/sorted/proc/stock(obj/item/item_to_stock, mob/user) - var/list/R + if(istype(item_to_stock, /obj/item/storage)) + return FALSE + var/list/stock_listed_products = get_listed_products(user) - for(R in (stock_listed_products)) - if(item_to_stock.type == R[3] && !istype(item_to_stock,/obj/item/storage)) + for(var/list/vendspec as anything in stock_listed_products) + if(item_to_stock.type == vendspec[3]) + var/partial_stacks = 0 if(istype(item_to_stock, /obj/item/device/defibrillator)) - var/obj/item/device/defibrillator/D = item_to_stock - if(!D.dcell) - to_chat(user, SPAN_WARNING("\The [item_to_stock] needs a cell in it to be restocked!")) - return - if(D.dcell.charge < D.dcell.maxcharge) - to_chat(user, SPAN_WARNING("\The [item_to_stock] needs to be fully charged to restock it!")) - return + var/obj/item/device/defibrillator/defib = item_to_stock + if(!defib.dcell) + to_chat(user, SPAN_WARNING("[item_to_stock] needs a cell in it to be restocked!")) + return FALSE + if(defib.dcell.charge < defib.dcell.maxcharge) + to_chat(user, SPAN_WARNING("[item_to_stock] needs to be fully charged to restock it!")) + return FALSE - if(istype(item_to_stock, /obj/item/cell)) - var/obj/item/cell/C = item_to_stock - if(C.charge < C.maxcharge) - to_chat(user, SPAN_WARNING("\The [item_to_stock] needs to be fully charged to restock it!")) - return + else if(istype(item_to_stock, /obj/item/cell)) + var/obj/item/cell/cell = item_to_stock + if(cell.charge < cell.maxcharge) + to_chat(user, SPAN_WARNING("[item_to_stock] needs to be fully charged to restock it!")) + return FALSE + + else if(istype(item_to_stock, /obj/item/stack)) + var/obj/item/stack/item_stack = item_to_stock + partial_stacks = item_stack.amount % item_stack.max_amount + + if(!additional_restock_checks(item_to_stock, user, vendspec)) + // the error message needs to go in the proc + return FALSE if(item_to_stock.loc == user) //Inside the mob's inventory if(item_to_stock.flags_item & WIELDED) @@ -997,16 +1097,45 @@ GLOBAL_LIST_EMPTY(vending_products) user.temp_drop_inv_item(item_to_stock) if(isstorage(item_to_stock.loc)) //inside a storage item - var/obj/item/storage/S = item_to_stock.loc - S.remove_from_storage(item_to_stock, user.loc) + var/obj/item/storage/container = item_to_stock.loc + container.remove_from_storage(item_to_stock, user.loc) qdel(item_to_stock) - user.visible_message(SPAN_NOTICE("[user] stocks [src] with \a [R[1]]."), - SPAN_NOTICE("You stock [src] with \a [R[1]].")) - R[2]++ - update_derived_ammo_and_boxes_on_add(R) + user.visible_message(SPAN_NOTICE("[user] stocks [src] with \a [vendspec[1]]."), \ + SPAN_NOTICE("You stock [src] with \a [vendspec[1]].")) + if(partial_stacks) + var/obj/item/stack/item_stack = item_to_stock + var/existing_stacks = partial_product_stacks[item_to_stock.type] + var/combined_stacks = existing_stacks + partial_stacks + if(existing_stacks == 0 || combined_stacks > item_stack.max_amount) + vendspec[2]++ + partial_product_stacks[item_to_stock.type] = combined_stacks % item_stack.max_amount + else + vendspec[2]++ + update_derived_ammo_and_boxes_on_add(vendspec) updateUsrDialog() - return //We found our item, no reason to go on. + return TRUE //We found our item, no reason to go on. + + return FALSE + +/// additional restocking checks for individual vendor subtypes. Parse in item, do checks, return FALSE to fail. Include error message. +/obj/structure/machinery/cm_vending/sorted/proc/additional_restock_checks(obj/item/item_to_stock, mob/user, list/vendspec) + var/dynamic_metadata = dynamic_stock_multipliers[vendspec] + if(dynamic_metadata) + if(vendspec[2] >= dynamic_metadata[2]) + if(!istype(item_to_stock, /obj/item/stack)) + to_chat(user, SPAN_WARNING("[src] is already full of [vendspec[1]]!")) + return FALSE + var/obj/item/stack/item_stack = item_to_stock + if(partial_product_stacks[item_to_stock.type] == 0) + to_chat(user, SPAN_WARNING("[src] is already full of [vendspec[1]]!")) + return FALSE // No partial stack to fill + if((partial_product_stacks[item_to_stock.type] + item_stack.amount) > item_stack.max_amount) + to_chat(user, SPAN_WARNING("[src] is already full of [vendspec[1]]!")) + return FALSE // Exceeds partial stack to fill + else + stack_trace("[src] could not find dynamic_stock_multipliers for [vendspec[1]]!") + return TRUE //sending an /empty ammo box type path here will return corresponding regular (full) type of this box //if there is one set in corresponding_box_types or will return FALSE otherwise @@ -1178,7 +1307,8 @@ GLOBAL_LIST_INIT(cm_vending_gear_corresponding_types_list, list( var/obj/item/item_ref = myprod[3] var/priority = myprod[priority_index] if(islist(item_ref)) // multi-vending - item_ref = item_ref[1] + var/list/ref_list = item_ref + item_ref = ref_list[1] var/is_category = item_ref == null @@ -1212,14 +1342,20 @@ GLOBAL_LIST_INIT(cm_vending_gear_corresponding_types_list, list( /obj/structure/machinery/cm_vending/proc/vendor_inventory_ui_data(mob/user) . = list() - var/list/ui_listed_products = get_listed_products(user) - var/list/ui_categories = list() - - for (var/i in 1 to length(ui_listed_products)) - var/list/myprod = ui_listed_products[i] //we take one list from listed_products - var/p_amount = myprod[2] //amount left - ui_categories += list(p_amount) - .["stock_listing"] = ui_categories + var/list/products = get_listed_products(user) + var/list/product_amounts = list() + var/list/product_partials = list() + + for(var/i in 1 to length(products)) + var/list/cur_prod = products[i] //we take one list from listed_products + product_amounts += list(cur_prod[2]) //amount left + var/cur_type = cur_prod[3] + var/cur_amount_partial = 0 + if(cur_type in partial_product_stacks) + cur_amount_partial = partial_product_stacks[cur_type] + product_partials += list(cur_amount_partial) + .["stock_listing"] = product_amounts + .["stock_listing_partials"] = product_partials /obj/structure/machinery/cm_vending/proc/vendor_successful_vend(list/itemspec, mob/living/carbon/human/user) if(stat & IN_USE) @@ -1236,17 +1372,23 @@ GLOBAL_LIST_INIT(cm_vending_gear_corresponding_types_list, list( sleep(vend_delay) var/prod_type = itemspec[3] - if(islist(prod_type)) - for(var/each_type in prod_type) - vendor_successful_vend_one(each_type, user, target_turf, itemspec[4] == MARINE_CAN_BUY_UNIFORM) - else - vendor_successful_vend_one(prod_type, user, target_turf, itemspec[4] == MARINE_CAN_BUY_UNIFORM) - + var/stack_amount = 0 if(vend_flags & VEND_LIMITED_INVENTORY) itemspec[2]-- + if(itemspec[2] == 0) + stack_amount = partial_product_stacks[prod_type] + partial_product_stacks[prod_type] = 0 if(vend_flags & VEND_LOAD_AMMO_BOXES) update_derived_ammo_and_boxes(itemspec) + if(islist(prod_type)) + for(var/each_type in prod_type) + vendor_successful_vend_one(each_type, user, target_turf, itemspec[4] == MARINE_CAN_BUY_UNIFORM, stack_amount) + SEND_SIGNAL(src, COMSIG_VENDOR_SUCCESSFUL_VEND, src, itemspec, user) + else + vendor_successful_vend_one(prod_type, user, target_turf, itemspec[4] == MARINE_CAN_BUY_UNIFORM, stack_amount) + SEND_SIGNAL(src, COMSIG_VENDOR_SUCCESSFUL_VEND, src, itemspec, user) + else to_chat(user, SPAN_WARNING("ERROR: itemspec is missing. Please report this to admins.")) sleep(15) @@ -1255,9 +1397,11 @@ GLOBAL_LIST_INIT(cm_vending_gear_corresponding_types_list, list( icon_state = initial(icon_state) update_icon() -/obj/structure/machinery/cm_vending/proc/vendor_successful_vend_one(prod_type, mob/living/carbon/human/user, turf/target_turf, insignas_override) +/obj/structure/machinery/cm_vending/proc/vendor_successful_vend_one(prod_type, mob/living/carbon/human/user, turf/target_turf, insignas_override, stack_amount) var/obj/item/new_item - if(ispath(prod_type, /obj/item)) + if(vend_flags & VEND_PROPS) + new_item = new /obj/item/prop/replacer(target_turf, prod_type) + else if(ispath(prod_type, /obj/item)) if(ispath(prod_type, /obj/item/weapon/gun)) new_item = new prod_type(target_turf, TRUE) else @@ -1265,7 +1409,11 @@ GLOBAL_LIST_INIT(cm_vending_gear_corresponding_types_list, list( prod_type = headset_type else if(prod_type == /obj/item/clothing/gloves/marine) prod_type = gloves_type - new_item = new prod_type(target_turf) + if(stack_amount > 0 && ispath(prod_type, /obj/item/stack)) + new_item = new prod_type(target_turf, stack_amount) + else + new_item = new prod_type(target_turf) + new_item.add_fingerprint(user) else new_item = new prod_type(target_turf) @@ -1273,12 +1421,16 @@ GLOBAL_LIST_INIT(cm_vending_gear_corresponding_types_list, list( if(vend_flags & VEND_UNIFORM_RANKS) if(insignas_override) var/obj/item/clothing/under/underclothes = new_item + var/obj/item/card/id/card = user.get_idcard() + //Gives ranks to the ranked - if(istype(underclothes) && user.wear_id && user.wear_id.paygrade) - var/rankpath = get_rank_pins(user.wear_id.paygrade) + if(istype(underclothes) && card?.paygrade) + var/rankpath = get_rank_pins(card.paygrade) if(rankpath) var/obj/item/clothing/accessory/ranks/rank_insignia = new rankpath() + var/obj/item/clothing/accessory/patch/uscmpatch = new() underclothes.attach_accessory(user, rank_insignia) + underclothes.attach_accessory(user, uscmpatch) if(vend_flags & VEND_UNIFORM_AUTOEQUIP) // autoequip @@ -1318,17 +1470,22 @@ GLOBAL_LIST_INIT(cm_vending_gear_corresponding_types_list, list( while(i <= length(products)) sleep(0.5) var/list/itemspec = products[i] + var/itemspec_item = itemspec[3] if(!itemspec[2] || itemspec[2] <= 0) i++ continue - itemspec[2] -= 1 + itemspec[2]-- var/list/spawned = list() - if(islist(itemspec[3])) - for(var/path in itemspec[3]) + if(islist(itemspec_item)) + for(var/path in itemspec_item) spawned += new path(loc) - else if(itemspec[3]) - var/path = itemspec[3] - spawned += new path(loc) + else if(itemspec_item) + if(itemspec[2] == 0 && partial_product_stacks[itemspec_item] > 0 && ispath(itemspec_item, /obj/item/stack)) + var/stack_amount = partial_product_stacks[itemspec_item] + partial_product_stacks[itemspec_item] = 0 + spawned += new itemspec_item(loc, stack_amount) + else + spawned += new itemspec_item(loc) if(throw_objects) for(var/atom/movable/spawned_atom in spawned) INVOKE_ASYNC(spawned_atom, TYPE_PROC_REF(/atom/movable, throw_atom), pick(orange(src, 4)), 4, SPEED_FAST) diff --git a/code/game/machinery/vending/vending.dm b/code/game/machinery/vending/vending.dm index 8629ce2bb2be..a05245e4b185 100644 --- a/code/game/machinery/vending/vending.dm +++ b/code/game/machinery/vending/vending.dm @@ -728,7 +728,7 @@ GLOBAL_LIST_EMPTY_TYPED(total_vending_machines, /obj/structure/machinery/vending var/list/wire_descriptions = get_wire_descriptions() var/list/panel_wires = list() - for(var/wire = 1 to wire_descriptions.len) + for(var/wire = 1 to length(wire_descriptions)) panel_wires += list(list("desc" = wire_descriptions[wire], "cut" = isWireCut(wire))) .["electrical"] = list( @@ -898,7 +898,7 @@ GLOBAL_LIST_EMPTY_TYPED(total_vending_machines, /obj/structure/machinery/vending seconds_electrified-- //Pitch to the people! Really sell it! - if(((last_slogan + slogan_delay) <= world.time) && (slogan_list.len > 0) && (!shut_up) && prob(5)) + if(((last_slogan + slogan_delay) <= world.time) && (length(slogan_list) > 0) && (!shut_up) && prob(5)) var/slogan = pick(slogan_list) speak(slogan) last_slogan = world.time diff --git a/code/game/machinery/vending/vending_types.dm b/code/game/machinery/vending/vending_types.dm index 36b0b6e44df6..85d08641bfdf 100644 --- a/code/game/machinery/vending/vending_types.dm +++ b/code/game/machinery/vending/vending_types.dm @@ -200,25 +200,30 @@ /obj/item/storage/fancy/cigarettes/arcturian_ace = 15, /obj/item/storage/fancy/cigarettes/emeraldgreen = 15, /obj/item/storage/fancy/cigarettes/wypacket = 15, + /obj/item/storage/fancy/cigarettes/trading_card = 15, /obj/item/storage/fancy/cigarettes/lady_finger = 15, /obj/item/storage/fancy/cigarettes/blackpack = 10, /obj/item/storage/fancy/cigar/tarbacks = 5, + /obj/item/storage/box/matches = 10, /obj/item/tool/lighter/random = 20, /obj/item/tool/lighter/zippo = 5, + ) prices = list( /obj/item/storage/fancy/cigarettes/kpack = 40, /obj/item/storage/fancy/cigarettes/arcturian_ace = 25, /obj/item/storage/fancy/cigarettes/emeraldgreen = 35, - /obj/item/storage/fancy/cigarettes/wypacket = 35, + /obj/item/storage/fancy/cigarettes/wypacket = 30, + /obj/item/storage/fancy/cigarettes/trading_card = 35, /obj/item/storage/fancy/cigarettes/lady_finger = 30, /obj/item/storage/fancy/cigarettes/blackpack = 75, /obj/item/storage/fancy/cigar/tarbacks = 35, /obj/item/storage/box/matches = 1, /obj/item/tool/lighter/random = 10, /obj/item/tool/lighter/zippo = 25, + ) /obj/structure/machinery/vending/security @@ -229,8 +234,9 @@ icon_deny = "sec-deny" req_access = list(ACCESS_MARINE_BRIG) products = list( - /obj/item/handcuffs = 8, - /obj/item/handcuffs/zip = 10, + /obj/item/restraint/handcuffs = 8, + /obj/item/restraint/handcuffs/zip = 10, + /obj/item/restraint/legcuffs = 3, /obj/item/explosive/grenade/flashbang = 4, /obj/item/weapon/gun/energy/taser = 4, /obj/item/reagent_container/spray/pepper = 4, @@ -252,6 +258,24 @@ ) contraband = list(/obj/item/clothing/glasses/sunglasses = 2,/obj/item/storage/donut_box = 2) +/obj/structure/machinery/vending/security/riot + name = "\improper RiotTech" + desc = "A security riot equipment vendor." + hacking_safety = TRUE + wrenchable = FALSE + products = list( + /obj/item/restraint/handcuffs/zip = 40, + /obj/item/explosive/grenade/flashbang = 20, + /obj/item/explosive/grenade/custom/teargas = 40, + /obj/item/ammo_magazine/smg/m39/rubber = 40, + /obj/item/ammo_magazine/pistol/rubber = 40, + /obj/item/ammo_magazine/pistol/mod88/rubber = 40, + /obj/item/ammo_magazine/rifle/rubber = 40, + /obj/item/ammo_magazine/rifle/m4ra/rubber = 40, + /obj/item/clothing/head/helmet/marine/MP = 8, + /obj/item/explosive/plastic/breaching_charge/rubber = 6, + ) + /obj/structure/machinery/vending/sea name = "\improper SeaTech" desc = "An equipment vendor designed to save lives" @@ -272,6 +296,7 @@ /obj/item/storage/firstaid/fire = 2, /obj/item/storage/firstaid/rad = 1, /obj/item/device/radio/headset = 6, + /obj/item/tool/crew_monitor = 1, ) contraband = list(/obj/item/storage/fancy/cigar = 2,/obj/item/tool/lighter/zippo = 2) @@ -389,7 +414,7 @@ name = "\improper Rec-Vend" desc = "Contains Weyland-Yutani approved recreational items, like Walkmans and Cards." icon_state = "walkman" - product_ads = "The only place to have fun in the entire Marine Corps!;You'll find no better music from here to Arcturus!;Instructions not included with decks of cards!;No volume controls - you don't need them!;All products responsibly made by people having just as much fun as you will be!" + product_ads = "The only place to have fun in the entire Marine Corps!;You'll find no better music from here to Arcturus!;Instructions not included with decks of cards!;No volume controls - you don't need them!;All products responsibly made by people having just as much fun as you will be!;Say goodbye to the lucky strike military tobacco monopoly, with the new Weyland Yutani Military Trading Card Gold cigarette pack!" vend_delay = 0.5 SECONDS idle_power_usage = 200 @@ -418,6 +443,10 @@ /obj/item/tool/pen/blue = 10, /obj/item/tool/pen/red = 10, /obj/item/tool/pen/fountain = 3, + /obj/item/storage/fancy/cigarettes/trading_card = 20, + /obj/item/storage/fancy/trading_card = 20, + /obj/item/toy/trading_card = 50, + ) contraband = list(/obj/item/toy/sword = 2) @@ -445,6 +474,10 @@ /obj/item/tool/pen/blue = 2, /obj/item/tool/pen/red = 2, /obj/item/tool/pen/fountain = 30, + /obj/item/storage/fancy/cigarettes/trading_card = 30, + /obj/item/storage/fancy/trading_card = 20, + /obj/item/toy/trading_card = 5, + ) product_type = VENDOR_PRODUCT_TYPE_RECREATIONAL diff --git a/code/game/machinery/vending/vendor_types/crew/combat_correspondent.dm b/code/game/machinery/vending/vendor_types/crew/combat_correspondent.dm new file mode 100644 index 000000000000..b0894ca2a5a2 --- /dev/null +++ b/code/game/machinery/vending/vendor_types/crew/combat_correspondent.dm @@ -0,0 +1,51 @@ +//------------ CC CLOTHING VENDOR--------------- + +GLOBAL_LIST_INIT(cm_vending_clothing_combat_correspondent, list( + list("STANDARD EQUIPMENT (TAKE ALL)", 0, null, null, null), + list("Essential Reporter's Set", 0, /obj/effect/essentials_set/cc, MARINE_CAN_BUY_ESSENTIALS, VENDOR_ITEM_MANDATORY), + list("Portable Press Fax Machine", 0, /obj/item/device/fax_backpack, CIVILIAN_CAN_BUY_BACKPACK, VENDOR_ITEM_RECOMMENDED), + list("Press Broadcasting Camera", 0, /obj/item/device/camera/broadcasting, CIVILIAN_CAN_BUY_UTILITY, VENDOR_ITEM_RECOMMENDED), + list("Leather Satchel", 0, /obj/item/storage/backpack/satchel, MARINE_CAN_BUY_BACKPACK, VENDOR_ITEM_REGULAR), + + list("UNIFORM (CHOOSE 1)", 0, null, null, null), + list("Black Uniform", 0, /obj/item/clothing/under/marine/reporter/black, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_REGULAR), + list("Orange Uniform", 0, /obj/item/clothing/under/marine/reporter/orange, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_REGULAR), + list("Red Uniform", 0, /obj/item/clothing/under/marine/reporter/red, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_REGULAR), + + list("ARMOR (CHOOSE 1)", 0, null, null, null), + list("Combat Correspondent's Armor", 0, /obj/item/clothing/suit/storage/marine/light/reporter, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_RECOMMENDED), + list("Blue Vest", 0, /obj/item/clothing/suit/storage/jacket/marine/reporter/blue, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_REGULAR), + list("Black Vest", 0, /obj/item/clothing/suit/storage/hazardvest/black, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_REGULAR), + list("Black Coat", 0, /obj/item/clothing/suit/storage/jacket/marine/reporter/black, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_REGULAR), + list("Green Coat", 0, /obj/item/clothing/suit/storage/jacket/marine/reporter/green, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_REGULAR), + + list("HELMET (CHOOSE 1)", 0, null, null, null), + list("Combat Correspondent's Helmet", 0, /obj/item/clothing/head/helmet/marine/reporter, MARINE_CAN_BUY_HELMET, VENDOR_ITEM_RECOMMENDED), + list("Combat Correspondent's Cap", 0, /obj/item/clothing/head/cmcap/reporter, MARINE_CAN_BUY_HELMET, VENDOR_ITEM_REGULAR), + list("Fedora", 0, /obj/item/clothing/head/fedora, MARINE_CAN_BUY_HELMET, VENDOR_ITEM_REGULAR), + + list("REFILLS", 0, null, null, null), + list("Camera", 10, /obj/item/device/camera, null, VENDOR_ITEM_REGULAR), + list("Camera Film", 5, /obj/item/device/camera_film, null, VENDOR_ITEM_REGULAR), + list("Toner", 5, /obj/item/device/toner, null, VENDOR_ITEM_REGULAR), + list("Regulation Tapes", 15, /obj/item/storage/box/tapes, null, VENDOR_ITEM_REGULAR), + list("Paper Bin", 10, /obj/item/paper_bin/uscm, null, VENDOR_ITEM_REGULAR), + )) + +/obj/structure/machinery/cm_vending/clothing/combat_correspondent + name = "\improper ColMarTech Combat Correspondent Equipment Rack" + desc = "An automated rack hooked up to a colossal storage of Reporter standard-issue equipment." + req_access = list(ACCESS_PRESS) + vendor_role = list(JOB_COMBAT_REPORTER) + +/obj/structure/machinery/cm_vending/clothing/combat_correspondent/get_listed_products(mob/user) + return GLOB.cm_vending_clothing_combat_correspondent + +/obj/effect/essentials_set/cc + spawned_gear_list = list( + /obj/item/device/flashlight, + /obj/item/tool/pen, + /obj/item/device/binoculars, + /obj/item/notepad, + /obj/item/device/taperecorder, + ) diff --git a/code/game/machinery/vending/vendor_types/crew/engineering.dm b/code/game/machinery/vending/vendor_types/crew/engineering.dm new file mode 100644 index 000000000000..9d5a809e52f7 --- /dev/null +++ b/code/game/machinery/vending/vendor_types/crew/engineering.dm @@ -0,0 +1,74 @@ +//------------ MT CLOTHING VENDOR--------------- + +GLOBAL_LIST_INIT(cm_vending_clothing_maintenance_technician, list( + list("MAINTENANCE SET (MANDATORY)", 0, null, null, null), + list("Essential Maintenance Set", 0, /obj/effect/essentials_set/maintenance, MARINE_CAN_BUY_ESSENTIALS, VENDOR_ITEM_MANDATORY), + + list("STANDARD EQUIPMENT (TAKE ALL)", 0, null, null, null), + list("Insulated Gloves", 0, /obj/item/clothing/gloves/yellow, MARINE_CAN_BUY_GLOVES, VENDOR_ITEM_MANDATORY), + list("Headset", 0, /obj/item/device/radio/headset/almayer/mt, MARINE_CAN_BUY_EAR, VENDOR_ITEM_MANDATORY), + list("MRE", 0, /obj/item/storage/box/MRE, MARINE_CAN_BUY_MRE, VENDOR_ITEM_MANDATORY), + list("Map", 0, /obj/item/map/current_map, MARINE_CAN_BUY_KIT, VENDOR_ITEM_MANDATORY), + + list("HELMET (CHOOSE 1)", 0, null, null, null), + list("Beret, Engineering", 0, /obj/item/clothing/head/beret/eng, MARINE_CAN_BUY_HELMET, VENDOR_ITEM_REGULAR), + list("White Hardhat", 0, /obj/item/clothing/head/hardhat/white, MARINE_CAN_BUY_HELMET, VENDOR_ITEM_REGULAR), + list("Orange Hardhat", 0, /obj/item/clothing/head/hardhat/orange, MARINE_CAN_BUY_HELMET, VENDOR_ITEM_REGULAR), + list("Blue Hardhat", 0, /obj/item/clothing/head/hardhat/dblue, MARINE_CAN_BUY_HELMET, VENDOR_ITEM_REGULAR), + list("Welding Helmet", 0, /obj/item/clothing/head/welding, MARINE_CAN_BUY_HELMET, VENDOR_ITEM_REGULAR), + + list("SUIT (CHOOSE 1)", 0, null, null, null), + list("Black Hazard Vest", 0, /obj/item/clothing/suit/storage/hazardvest/black, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_REGULAR), + list("Blue Hazard Vest", 0, /obj/item/clothing/suit/storage/hazardvest/blue, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_REGULAR), + list("Orange Hazard Vest", 0, /obj/item/clothing/suit/storage/hazardvest, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_REGULAR), + list("Yellow Hazard Vest", 0, /obj/item/clothing/suit/storage/hazardvest/yellow, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_REGULAR), + + list("BACKPACK (CHOOSE 1)", 0, null, null, null), + list("Technician Backpack", 0, /obj/item/storage/backpack/marine/tech, MARINE_CAN_BUY_BACKPACK, VENDOR_ITEM_REGULAR), + list("Technician Satchel", 0, /obj/item/storage/backpack/marine/satchel/tech, MARINE_CAN_BUY_BACKPACK, VENDOR_ITEM_REGULAR), + list("Technician Welderpack", 0, /obj/item/storage/backpack/marine/engineerpack, MARINE_CAN_BUY_BACKPACK, VENDOR_ITEM_REGULAR), + list("Technician Welder-Satchel", 0, /obj/item/storage/backpack/marine/engineerpack/satchel, MARINE_CAN_BUY_BACKPACK, VENDOR_ITEM_RECOMMENDED), + list("Technician Welder Chestrig", 0, /obj/item/storage/backpack/marine/engineerpack/welder_chestrig, MARINE_CAN_BUY_BACKPACK, VENDOR_ITEM_REGULAR), + + list("BELT (CHOOSE 1)", 0, null, null, null), + list("G8-A General Utility Pouch", 0, /obj/item/storage/backpack/general_belt, MARINE_CAN_BUY_BELT, VENDOR_ITEM_REGULAR), + list("M276 Toolbelt Rig (Full)", 0, /obj/item/storage/belt/utility/full, MARINE_CAN_BUY_BELT, VENDOR_ITEM_MANDATORY), + + list("POUCHES (CHOOSE 2)", 0, null, null, null), + list("Medium General Pouch", 0, /obj/item/storage/pouch/general/medium, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), + list("First-Aid Pouch (Refillable Injectors)", 0, /obj/item/storage/pouch/firstaid/full, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_RECOMMENDED), + list("First-Aid Pouch (Splints, Gauze, Ointment)", 0, /obj/item/storage/pouch/firstaid/full/alternate, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_RECOMMENDED), + list("First-Aid Pouch (Pill Packets)", 0, /obj/item/storage/pouch/firstaid/full/pills, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_RECOMMENDED), + list("Construction Pouch", 0, /obj/item/storage/pouch/construction, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_RECOMMENDED), + list("Electronics Pouch (Full)", 0, /obj/item/storage/pouch/electronics/full, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), + list("Tools Pouch (Full)", 0, /obj/item/storage/pouch/tools/full, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), + list("Flare Pouch (Full)", 0, /obj/item/storage/pouch/flare/full, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), + + list("MASK (CHOOSE 1)", 0, null, null, null), + list("Gas Mask", 0, /obj/item/clothing/mask/gas, MARINE_CAN_BUY_MASK, VENDOR_ITEM_REGULAR), + list("Heat Absorbent Coif", 0, /obj/item/clothing/mask/rebreather/scarf, MARINE_CAN_BUY_MASK, VENDOR_ITEM_REGULAR), + list("Rebreather", 0, /obj/item/clothing/mask/rebreather, MARINE_CAN_BUY_MASK, VENDOR_ITEM_REGULAR), + + list("ACCESSORIES (CHOOSE 1)", 0, null, null, null), + list("Brown Webbing Vest", 0, /obj/item/clothing/accessory/storage/black_vest/brown_vest, MARINE_CAN_BUY_ACCESSORY, VENDOR_ITEM_RECOMMENDED), + list("Black Webbing Vest", 0, /obj/item/clothing/accessory/storage/black_vest, MARINE_CAN_BUY_ACCESSORY, VENDOR_ITEM_REGULAR), + list("Webbing", 0, /obj/item/clothing/accessory/storage/webbing, MARINE_CAN_BUY_ACCESSORY, VENDOR_ITEM_REGULAR), + )) + +/obj/structure/machinery/cm_vending/clothing/maintenance_technician + name = "\improper ColMarTech Maintenance Technician Equipment Rack" + desc = "An automated rack hooked up to a colossal storage of Maintenance Technician standard-issue equipment." + req_access = list(ACCESS_MARINE_ENGINEERING) + vendor_role = list(JOB_MAINT_TECH) + +/obj/structure/machinery/cm_vending/clothing/maintenance_technician/get_listed_products(mob/user) + return GLOB.cm_vending_clothing_maintenance_technician + +/obj/effect/essentials_set/maintenance + spawned_gear_list = list( + /obj/item/device/lightreplacer, + /obj/item/device/demo_scanner, + /obj/item/storage/bag/trash, + /obj/item/storage/toolbox/mechanical, + /obj/item/device/flashlight, + ) diff --git a/code/game/machinery/vending/vendor_types/crew/medical.dm b/code/game/machinery/vending/vendor_types/crew/medical.dm index 5dfb6b347b5d..fe9b7b06648e 100644 --- a/code/game/machinery/vending/vendor_types/crew/medical.dm +++ b/code/game/machinery/vending/vendor_types/crew/medical.dm @@ -32,28 +32,41 @@ GLOBAL_LIST_INIT(cm_vending_clothing_doctor, list( list("MEDICAL SET (MANDATORY)", 0, null, null, null), list("Essential Medical Set", 0, /obj/effect/essentials_set/medical/doctor, MARINE_CAN_BUY_ESSENTIALS, VENDOR_ITEM_MANDATORY), - list("STANDARD EQUIPMENT (TAKE ALL)", 0, null, null, null), + list("STANDARD EQUIPMENT", 0, null, null, null), list("Gloves", 0, /obj/item/clothing/gloves/latex, MARINE_CAN_BUY_GLOVES, VENDOR_ITEM_MANDATORY), list("Headset", 0, /obj/item/device/radio/headset/almayer/doc, MARINE_CAN_BUY_EAR, VENDOR_ITEM_MANDATORY), + + list("EYEWEAR (CHOOSE 1)", 0, null, null, null), list("Medical HUD Glasses", 0, /obj/item/clothing/glasses/hud/health, MARINE_CAN_BUY_GLASSES, VENDOR_ITEM_MANDATORY), + list("Prescription Medical HUD Glasses", 0, /obj/item/clothing/glasses/hud/health/prescription, MARINE_CAN_BUY_GLASSES, VENDOR_ITEM_MANDATORY), list("UNIFORM (CHOOSE 1)", 0, null, null, null), list("Green Scrubs", 0, /obj/item/clothing/under/rank/medical/green, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_RECOMMENDED), list("Blue Scrubs", 0, /obj/item/clothing/under/rank/medical/blue, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_REGULAR), + list("Light Blue Scrubs", 0, /obj/item/clothing/under/rank/medical/lightblue, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_REGULAR), list("Purple Scrubs", 0, /obj/item/clothing/under/rank/medical/purple, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_REGULAR), + list("Olive Scrubs", 0, /obj/item/clothing/under/rank/medical/olive, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_REGULAR), + list("Grey Scrubs", 0, /obj/item/clothing/under/rank/medical/grey, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_REGULAR), + + list("SUIT (CHOOSE 1)", 0, null, null, null), + list("Labcoat", 0, /obj/item/clothing/suit/storage/labcoat, MARINE_CAN_BUY_MRE, VENDOR_ITEM_REGULAR), + list("Medical's apron", 0, /obj/item/clothing/suit/chef/classic/medical, MARINE_CAN_BUY_MRE, VENDOR_ITEM_REGULAR), - list("ARMOR (CHOOSE 1)", 0, null, null, null), - list("Labcoat", 0, /obj/item/clothing/suit/storage/labcoat, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_REGULAR), - list("Snowcoat", 0, /obj/item/clothing/suit/storage/snow_suit/doctor, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_RECOMMENDED), + list("SNOW GEAR (SNOW USE ONLY)", 0, null, null, null), + list("Snowcoat", 0, /obj/item/clothing/suit/storage/snow_suit/doctor, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_MANDATORY), + list("Balaclava", 0, /obj/item/clothing/mask/balaclava, MARINE_CAN_BUY_MASK, VENDOR_ITEM_MANDATORY), + list("Snow Scarf", 0, /obj/item/clothing/mask/tornscarf, MARINE_CAN_BUY_MASK, VENDOR_ITEM_MANDATORY), - list("HELMET", 0, null, null, null), + list("HEADWEAR (CHOOSE 1)", 0, null, null, null), list("Surgical Cap, Blue", 0, /obj/item/clothing/head/surgery/blue, MARINE_CAN_BUY_HELMET, VENDOR_ITEM_REGULAR), list("Surgical Cap, Purple", 0, /obj/item/clothing/head/surgery/purple, MARINE_CAN_BUY_HELMET, VENDOR_ITEM_REGULAR), list("Surgical Cap, Green", 0, /obj/item/clothing/head/surgery/green, MARINE_CAN_BUY_HELMET, VENDOR_ITEM_REGULAR), list("BAG (CHOOSE 1)", 0, null, null, null), + list("Standard Satchel", 0, /obj/item/storage/backpack/marine/satchel, MARINE_CAN_BUY_BACKPACK, VENDOR_ITEM_REGULAR), + list("Standard Backpack", 0, /obj/item/storage/backpack/marine, MARINE_CAN_BUY_BACKPACK, VENDOR_ITEM_REGULAR), list("Medical Satchel", 0, /obj/item/storage/backpack/marine/satchel/medic, MARINE_CAN_BUY_BACKPACK, VENDOR_ITEM_RECOMMENDED), - list("Medical Backpack", 0, /obj/item/storage/backpack/marine/medic, MARINE_CAN_BUY_BACKPACK, VENDOR_ITEM_REGULAR), + list("Medical Backpack", 0, /obj/item/storage/backpack/marine/medic, MARINE_CAN_BUY_BACKPACK, VENDOR_ITEM_RECOMMENDED), list("BELT (CHOOSE 1)", 0, null, null, null), list("M276 Lifesaver Bag (Full)", 0, /obj/item/storage/belt/medical/lifesaver/full, MARINE_CAN_BUY_BELT, VENDOR_ITEM_RECOMMENDED), @@ -87,29 +100,42 @@ GLOBAL_LIST_INIT(cm_vending_clothing_nurse, list( list("MEDICAL SET (MANDATORY)", 0, null, null, null), list("Essential Medical Set", 0, /obj/effect/essentials_set/medical, MARINE_CAN_BUY_ESSENTIALS, VENDOR_ITEM_MANDATORY), - list("STANDARD EQUIPMENT (TAKE ALL)", 0, null, null, null), + list("STANDARD EQUIPMENT", 0, null, null, null), list("Gloves", 0, /obj/item/clothing/gloves/latex, MARINE_CAN_BUY_GLOVES, VENDOR_ITEM_MANDATORY), list("Headset", 0, /obj/item/device/radio/headset/almayer/doc, MARINE_CAN_BUY_EAR, VENDOR_ITEM_MANDATORY), + + list("EYEWEAR (CHOOSE 1)", 0, null, null, null), list("Medical HUD Glasses", 0, /obj/item/clothing/glasses/hud/health, MARINE_CAN_BUY_GLASSES, VENDOR_ITEM_MANDATORY), + list("Prescription Medical HUD Glasses", 0, /obj/item/clothing/glasses/hud/health/prescription, MARINE_CAN_BUY_GLASSES, VENDOR_ITEM_MANDATORY), list("UNIFORM (CHOOSE 1)", 0, null, null, null), + list("Light Blue Scrubs", 0, /obj/item/clothing/under/rank/medical/lightblue, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_MANDATORY), list("Green Scrubs", 0, /obj/item/clothing/under/rank/medical/green, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_RECOMMENDED), list("Blue Scrubs", 0, /obj/item/clothing/under/rank/medical/blue, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_REGULAR), list("Purple Scrubs", 0, /obj/item/clothing/under/rank/medical/purple, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_REGULAR), - list("Medical Nurse Scrubs", 0, /obj/item/clothing/under/rank/medical/nurse, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_MANDATORY), + list("Olive Scrubs", 0, /obj/item/clothing/under/rank/medical/olive, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_REGULAR), + list("Grey Scrubs", 0, /obj/item/clothing/under/rank/medical/grey, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_REGULAR), - list("ARMOR (CHOOSE 1)", 0, null, null, null), - list("Labcoat", 0, /obj/item/clothing/suit/storage/labcoat, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_REGULAR), - list("Snowcoat", 0, /obj/item/clothing/suit/storage/snow_suit/doctor, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_RECOMMENDED), + list("SUIT (CHOOSE 1)", 0, null, null, null), + list("Medical's apron", 0, /obj/item/clothing/suit/chef/classic/medical, MARINE_CAN_BUY_MRE, VENDOR_ITEM_REGULAR), - list("HELMET", 0, null, null, null), + list("SNOW GEAR (SNOW USE ONLY)", 0, null, null, null), + list("Snowcoat", 0, /obj/item/clothing/suit/storage/snow_suit/doctor, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_MANDATORY), + list("Balaclava", 0, /obj/item/clothing/mask/balaclava, MARINE_CAN_BUY_MASK, VENDOR_ITEM_MANDATORY), + list("Snow Scarf", 0, /obj/item/clothing/mask/tornscarf, MARINE_CAN_BUY_MASK, VENDOR_ITEM_MANDATORY), + + list("HEADWEAR (CHOOSE 1)", 0, null, null, null), + + list("Surgical Cap, Orange", 0, /obj/item/clothing/head/surgery/orange, MARINE_CAN_BUY_HELMET, VENDOR_ITEM_RECOMMENDED), list("Surgical Cap, Blue", 0, /obj/item/clothing/head/surgery/blue, MARINE_CAN_BUY_HELMET, VENDOR_ITEM_REGULAR), list("Surgical Cap, Purple", 0, /obj/item/clothing/head/surgery/purple, MARINE_CAN_BUY_HELMET, VENDOR_ITEM_REGULAR), list("Surgical Cap, Green", 0, /obj/item/clothing/head/surgery/green, MARINE_CAN_BUY_HELMET, VENDOR_ITEM_REGULAR), list("BAG (CHOOSE 1)", 0, null, null, null), + list("Standard Satchel", 0, /obj/item/storage/backpack/marine/satchel, MARINE_CAN_BUY_BACKPACK, VENDOR_ITEM_REGULAR), + list("Standard Backpack", 0, /obj/item/storage/backpack/marine, MARINE_CAN_BUY_BACKPACK, VENDOR_ITEM_REGULAR), list("Medical Satchel", 0, /obj/item/storage/backpack/marine/satchel/medic, MARINE_CAN_BUY_BACKPACK, VENDOR_ITEM_RECOMMENDED), - list("Medical Backpack", 0, /obj/item/storage/backpack/marine/medic, MARINE_CAN_BUY_BACKPACK, VENDOR_ITEM_REGULAR), + list("Medical Backpack", 0, /obj/item/storage/backpack/marine/medic, MARINE_CAN_BUY_BACKPACK, VENDOR_ITEM_RECOMMENDED), list("BELT (CHOOSE 1)", 0, null, null, null), list("M276 Lifesaver Bag (Full)", 0, /obj/item/storage/belt/medical/lifesaver/full, MARINE_CAN_BUY_BELT, VENDOR_ITEM_RECOMMENDED), @@ -143,30 +169,44 @@ GLOBAL_LIST_INIT(cm_vending_clothing_researcher, list( list("MEDICAL SET (MANDATORY)", 0, null, null, null), list("Essential Medical Set", 0, /obj/effect/essentials_set/medical/doctor, MARINE_CAN_BUY_ESSENTIALS, VENDOR_ITEM_MANDATORY), - list("STANDARD EQUIPMENT (TAKE ALL)", 0, null, null, null), + list("STANDARD EQUIPMENT", 0, null, null, null), list("Gloves", 0, /obj/item/clothing/gloves/latex, MARINE_CAN_BUY_GLOVES, VENDOR_ITEM_MANDATORY), list("Headset", 0, /obj/item/device/radio/headset/almayer/research, MARINE_CAN_BUY_EAR, VENDOR_ITEM_MANDATORY), - list("Medical HUD Glasses", 0, /obj/item/clothing/glasses/hud/health, MARINE_CAN_BUY_GLASSES, VENDOR_ITEM_MANDATORY), - list("Reagent Scanner HUD Goggles", 0, /obj/item/clothing/glasses/science, MARINE_CAN_BUY_GLASSES, VENDOR_ITEM_RECOMMENDED), + + list("EYEWEAR (CHOOSE 1)", 0, null, null, null), + list("Medical HUD Glasses", 0, /obj/item/clothing/glasses/hud/health, MARINE_CAN_BUY_GLASSES, VENDOR_ITEM_RECOMMENDED), + list("Prescription Medical HUD Glasses", 0, /obj/item/clothing/glasses/hud/health/prescription, MARINE_CAN_BUY_GLASSES, VENDOR_ITEM_RECOMMENDED), + list("Reagent Scanner HUD Goggles", 0, /obj/item/clothing/glasses/science, MARINE_CAN_BUY_GLASSES, VENDOR_ITEM_MANDATORY), + list("Prescription Reagent Scanner HUD Goggles", 0, /obj/item/clothing/glasses/science/prescription, MARINE_CAN_BUY_GLASSES, VENDOR_ITEM_MANDATORY), list("UNIFORM (CHOOSE 1)", 0, null, null, null), + list("Researcher Uniform", 0, /obj/item/clothing/under/marine/officer/researcher, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_MANDATORY), list("Green Scrubs", 0, /obj/item/clothing/under/rank/medical/green, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_RECOMMENDED), list("Blue Scrubs", 0, /obj/item/clothing/under/rank/medical/blue, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_REGULAR), + list("Light Blue Scrubs", 0, /obj/item/clothing/under/rank/medical/lightblue, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_REGULAR), list("Purple Scrubs", 0, /obj/item/clothing/under/rank/medical/purple, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_REGULAR), - list("Researcher Uniform", 0, /obj/item/clothing/under/marine/officer/researcher, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_MANDATORY), + list("Olive Scrubs", 0, /obj/item/clothing/under/rank/medical/olive, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_REGULAR), + list("Grey Scrubs", 0, /obj/item/clothing/under/rank/medical/grey, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_REGULAR), - list("ARMOR (CHOOSE 1)", 0, null, null, null), - list("Labcoat", 0, /obj/item/clothing/suit/storage/labcoat/researcher, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_RECOMMENDED), - list("Snowcoat", 0, /obj/item/clothing/suit/storage/snow_suit/doctor, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_RECOMMENDED), + list("SUIT (CHOOSE 1)", 0, null, null, null), + list("Labcoat", 0, /obj/item/clothing/suit/storage/labcoat/researcher, MARINE_CAN_BUY_MRE, VENDOR_ITEM_RECOMMENDED), - list("HELMET", 0, null, null, null), + list("SNOW GEAR (SNOW USE ONLY)", 0, null, null, null), + list("Snowcoat", 0, /obj/item/clothing/suit/storage/snow_suit/doctor, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_MANDATORY), + list("Balaclava", 0, /obj/item/clothing/mask/balaclava, MARINE_CAN_BUY_MASK, VENDOR_ITEM_MANDATORY), + list("Snow Scarf", 0, /obj/item/clothing/mask/tornscarf, MARINE_CAN_BUY_MASK, VENDOR_ITEM_MANDATORY), + + list("HEADWEAR (CHOOSE 1)", 0, null, null, null), + list("Surgical Cap, Orange", 0, /obj/item/clothing/head/surgery/orange, MARINE_CAN_BUY_HELMET, VENDOR_ITEM_REGULAR), list("Surgical Cap, Blue", 0, /obj/item/clothing/head/surgery/blue, MARINE_CAN_BUY_HELMET, VENDOR_ITEM_REGULAR), list("Surgical Cap, Purple", 0, /obj/item/clothing/head/surgery/purple, MARINE_CAN_BUY_HELMET, VENDOR_ITEM_REGULAR), list("Surgical Cap, Green", 0, /obj/item/clothing/head/surgery/green, MARINE_CAN_BUY_HELMET, VENDOR_ITEM_REGULAR), list("BAG (CHOOSE 1)", 0, null, null, null), + list("Standard Satchel", 0, /obj/item/storage/backpack/marine/satchel, MARINE_CAN_BUY_BACKPACK, VENDOR_ITEM_REGULAR), + list("Standard Backpack", 0, /obj/item/storage/backpack/marine, MARINE_CAN_BUY_BACKPACK, VENDOR_ITEM_REGULAR), list("Medical Satchel", 0, /obj/item/storage/backpack/marine/satchel/medic, MARINE_CAN_BUY_BACKPACK, VENDOR_ITEM_RECOMMENDED), - list("Medical Backpack", 0, /obj/item/storage/backpack/marine/medic, MARINE_CAN_BUY_BACKPACK, VENDOR_ITEM_REGULAR), + list("Medical Backpack", 0, /obj/item/storage/backpack/marine/medic, MARINE_CAN_BUY_BACKPACK, VENDOR_ITEM_RECOMMENDED), list("BELT (CHOOSE 1)", 0, null, null, null), list("M276 Lifesaver Bag (Full)", 0, /obj/item/storage/belt/medical/lifesaver/full, MARINE_CAN_BUY_BELT, VENDOR_ITEM_RECOMMENDED), @@ -203,6 +243,9 @@ GLOBAL_LIST_INIT(cm_vending_clothing_researcher, list( /obj/item/device/healthanalyzer, /obj/item/tool/surgery/surgical_line, /obj/item/tool/surgery/synthgraft, + /obj/item/storage/syringe_case, + /obj/item/storage/surgical_case/regular, + ) /obj/effect/essentials_set/medical/doctor @@ -214,4 +257,5 @@ GLOBAL_LIST_INIT(cm_vending_clothing_researcher, list( /obj/item/tool/surgery/synthgraft, /obj/item/device/flashlight/pen, /obj/item/clothing/accessory/stethoscope, + /obj/item/storage/syringe_case, ) diff --git a/code/game/machinery/vending/vendor_types/crew/pilot_officer.dm b/code/game/machinery/vending/vendor_types/crew/pilot_officer.dm index 027c9bec2d13..8f9ac837cb6a 100644 --- a/code/game/machinery/vending/vendor_types/crew/pilot_officer.dm +++ b/code/game/machinery/vending/vendor_types/crew/pilot_officer.dm @@ -5,7 +5,7 @@ desc = "An automated weapon rack hooked up to a small storage of standard-issue weapons. Can be accessed only by the dropship crew." icon_state = "guns" req_access = list(ACCESS_MARINE_PILOT) - vendor_role = list(JOB_PILOT, JOB_DROPSHIP_CREW_CHIEF) + vendor_role = list(JOB_CAS_PILOT, JOB_DROPSHIP_PILOT, JOB_DROPSHIP_CREW_CHIEF) vend_flags = VEND_CLUTTER_PROTECTION | VEND_LIMITED_INVENTORY | VEND_TO_HAND listed_products = list( @@ -242,7 +242,7 @@ GLOBAL_LIST_INIT(cm_vending_clothing_dropship_crew_chief, list( name = "\improper ColMarTech Dropship Crew Equipment Rack" desc = "An automated rack hooked up to a colossal storage of Dropship Crew standard-issue equipment." req_access = list(ACCESS_MARINE_PILOT) - vendor_role = list(JOB_PILOT, JOB_DROPSHIP_CREW_CHIEF) + vendor_role = list(JOB_CAS_PILOT, JOB_DROPSHIP_PILOT, JOB_DROPSHIP_CREW_CHIEF) /obj/structure/machinery/cm_vending/clothing/pilot_officer/get_listed_products(mob/user) if(!user) @@ -252,6 +252,8 @@ GLOBAL_LIST_INIT(cm_vending_clothing_dropship_crew_chief, list( return combined if(user.job == JOB_DROPSHIP_CREW_CHIEF) return GLOB.cm_vending_clothing_dropship_crew_chief - if(user.job == JOB_PILOT) + if(user.job == JOB_CAS_PILOT) + return GLOB.cm_vending_clothing_pilot_officer + if(user.job == JOB_DROPSHIP_PILOT) return GLOB.cm_vending_clothing_pilot_officer return ..() diff --git a/code/game/machinery/vending/vendor_types/crew/sea.dm b/code/game/machinery/vending/vendor_types/crew/sea.dm index cb6698c6f714..37cacfd14a6f 100644 --- a/code/game/machinery/vending/vendor_types/crew/sea.dm +++ b/code/game/machinery/vending/vendor_types/crew/sea.dm @@ -29,17 +29,20 @@ GLOBAL_LIST_INIT(cm_vending_gear_sea, list( GLOBAL_LIST_INIT(cm_vending_clothing_sea, list( list("STANDARD EQUIPMENT (TAKE ALL)", 0, null, null, null), list("Officer Uniform", 0, /obj/item/clothing/under/marine/dress, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_MANDATORY), - list("Marine Combat Gloves", 0, /obj/item/clothing/gloves/marine, MARINE_CAN_BUY_GLOVES, VENDOR_ITEM_MANDATORY), list("Headset", 0, /obj/item/device/radio/headset/almayer/mcom/cdrcom, MARINE_CAN_BUY_EAR, VENDOR_ITEM_MANDATORY), list("Satchel", 0, /obj/item/storage/backpack/satchel/lockable, MARINE_CAN_BUY_BACKPACK, VENDOR_ITEM_MANDATORY), list("MRE", 0, /obj/item/storage/box/MRE, MARINE_CAN_BUY_MRE, VENDOR_ITEM_MANDATORY), list("Marine Combat Boots", 0, /obj/item/clothing/shoes/marine/knife, MARINE_CAN_BUY_SHOES, VENDOR_ITEM_MANDATORY), + list("GLOVES (CHOOSE 1)", 0, null, null, null), + list("Insulated Gloves", 0, /obj/item/clothing/gloves/yellow, MARINE_CAN_BUY_GLOVES, VENDOR_ITEM_REGULAR), + list("Marine Combat Gloves", 0, /obj/item/clothing/gloves/marine, MARINE_CAN_BUY_GLOVES, VENDOR_ITEM_REGULAR), + list("BELT (CHOOSE 1)", 0, null, null, null), list("G8-A General Utility Pouch", 0, /obj/item/storage/backpack/general_belt, MARINE_CAN_BUY_BELT, VENDOR_ITEM_REGULAR), list("M276 Lifesaver Bag (Full)", 0, /obj/item/storage/belt/medical/lifesaver/full, MARINE_CAN_BUY_BELT, VENDOR_ITEM_RECOMMENDED), list("M276 Toolbelt Rig (Full)", 0, /obj/item/storage/belt/utility/full, MARINE_CAN_BUY_BELT, VENDOR_ITEM_REGULAR), - list("M276 Combat Toolbelt Rig (Full)", 0, /obj/item/storage/belt/gun/utility, MARINE_CAN_BUY_BELT, VENDOR_ITEM_REGULAR), + list("M276 Combat Toolbelt Rig (Full)", 0, /obj/item/storage/belt/gun/utility/full, MARINE_CAN_BUY_BELT, VENDOR_ITEM_REGULAR), list("POUCHES (CHOOSE 2)", 0, null, null, null), list("Autoinjector Pouch", 0, /obj/item/storage/pouch/autoinjector/full, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), @@ -54,10 +57,16 @@ GLOBAL_LIST_INIT(cm_vending_clothing_sea, list( list("COMBAT ARMOR (CHOOSE 1)", 0, null, null, null), list("M3-VL Pattern Ballistics Vest", 0, /obj/item/clothing/suit/storage/marine/light/vest, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_REGULAR), list("M3-L Pattern Light Armor", 0, /obj/item/clothing/suit/storage/marine/light, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_RECOMMENDED), - list("M3 Pattern Padded Armor", 0, /obj/item/clothing/suit/storage/marine/padded, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_REGULAR), + list("M3 Pattern Padded Armor", 0, /obj/item/clothing/suit/storage/marine/medium/padded, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_REGULAR), list("Bulletproof Vest", 0, /obj/item/clothing/suit/armor/bulletproof, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_REGULAR), list("USCM Service Jacket", 0, /obj/item/clothing/suit/storage/jacket/marine/service, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_REGULAR), + list("EYEWEAR (CHOOSE 1)", 0, null, null, null), + list("Welding Goggles", 0, /obj/item/clothing/glasses/welding, MARINE_CAN_BUY_GLASSES, VENDOR_ITEM_REGULAR), + list("Medical HUD Glasses", 0, /obj/item/clothing/glasses/hud/health, MARINE_CAN_BUY_GLASSES, VENDOR_ITEM_REGULAR), + list("Prescription Medical HUD Glasses", 0, /obj/item/clothing/glasses/hud/health/prescription, MARINE_CAN_BUY_GLASSES, VENDOR_ITEM_REGULAR), + list("Sunglasses", 0, /obj/item/clothing/glasses/sunglasses, MARINE_CAN_BUY_GLASSES, VENDOR_ITEM_REGULAR), + list("ACCESSORIES (CHOOSE 1)", 0, null, null, null), list("Brown Webbing Vest", 0, /obj/item/clothing/accessory/storage/black_vest/brown_vest, MARINE_CAN_BUY_ACCESSORY, VENDOR_ITEM_REGULAR), list("Black Webbing Vest", 0, /obj/item/clothing/accessory/storage/black_vest, MARINE_CAN_BUY_ACCESSORY, VENDOR_ITEM_REGULAR), @@ -68,9 +77,6 @@ GLOBAL_LIST_INIT(cm_vending_clothing_sea, list( list("HEADWEAR (CHOOSE 1)", 0, null, null, null), list("Drill Hat", 0, /obj/item/clothing/head/drillhat, MARINE_CAN_BUY_MASK, VENDOR_ITEM_RECOMMENDED), list("M10 Helmet", 0, /obj/item/clothing/head/helmet/marine, MARINE_CAN_BUY_HELMET, VENDOR_ITEM_REGULAR), - - list("TOOLS OF THE TRADE", 0, null, null, null), - list("CPR Dummy", 5, /obj/item/cpr_dummy, null, VENDOR_ITEM_REGULAR) )) /obj/structure/machinery/cm_vending/clothing/sea diff --git a/code/game/machinery/vending/vendor_types/crew/senior_officers.dm b/code/game/machinery/vending/vendor_types/crew/senior_officers.dm index d5b12a264665..c43d7e730d89 100644 --- a/code/game/machinery/vending/vendor_types/crew/senior_officers.dm +++ b/code/game/machinery/vending/vendor_types/crew/senior_officers.dm @@ -162,6 +162,9 @@ GLOBAL_LIST_INIT(cm_vending_clothing_chief_engineer, list( list("M41A Pulse Rifle MK2", 0, /obj/item/storage/box/guncase/m41a, MARINE_CAN_BUY_ESSENTIALS, VENDOR_ITEM_REGULAR), list("M240 Incinerator Unit", 0, /obj/item/storage/box/guncase/flamer, MARINE_CAN_BUY_ESSENTIALS, VENDOR_ITEM_REGULAR), + list("Spare Equipment", 0, null, null, null), + list("Technician's Headset", 15, /obj/item/device/radio/headset/almayer/mt, null, VENDOR_ITEM_REGULAR), + )) @@ -210,36 +213,65 @@ GLOBAL_LIST_INIT(cm_vending_clothing_req_officer, list( //------------ CHIEF MEDICAL OFFICER --------------- GLOBAL_LIST_INIT(cm_vending_clothing_cmo, list( - list("STANDARD EQUIPMENT (TAKE ALL)", 0, null, null, null), + list("MEDICAL SET (MANDATORY)", 0, null, null, null), + list("Essential Medical Set", 0, /obj/effect/essentials_set/medical/doctor/cmo, MARINE_CAN_BUY_ESSENTIALS, VENDOR_ITEM_MANDATORY), + + list("STANDARD EQUIPMENT", 0, null, null, null), list("Gloves", 0, /obj/item/clothing/gloves/latex, MARINE_CAN_BUY_GLOVES, VENDOR_ITEM_MANDATORY), list("Headset", 0, /obj/item/device/radio/headset/almayer/cmo, MARINE_CAN_BUY_EAR, VENDOR_ITEM_MANDATORY), - list("Labcoat", 0, /obj/item/clothing/suit/storage/labcoat, MARINE_CAN_BUY_MRE, VENDOR_ITEM_MANDATORY), - list("EYEWARE (CHOOSE 1)", 0, null, null, null), + list("EYEWEAR (CHOOSE 1)", 0, null, null, null), list("Medical HUD Glasses", 0, /obj/item/clothing/glasses/hud/health, MARINE_CAN_BUY_GLASSES, VENDOR_ITEM_MANDATORY), - list("Reagent Scanner HUD Goggles", 0, /obj/item/clothing/glasses/science, MARINE_CAN_BUY_GLASSES, VENDOR_ITEM_REGULAR), + list("Prescription Medical HUD Glasses", 0, /obj/item/clothing/glasses/hud/health/prescription, MARINE_CAN_BUY_GLASSES, VENDOR_ITEM_MANDATORY), + list("Reagent Scanner HUD Goggles", 0, /obj/item/clothing/glasses/science, MARINE_CAN_BUY_GLASSES, VENDOR_ITEM_RECOMMENDED), + list("Prescription Reagent Scanner HUD Goggles", 0, /obj/item/clothing/glasses/science/prescription, MARINE_CAN_BUY_GLASSES, VENDOR_ITEM_RECOMMENDED), list("UNIFORM (CHOOSE 1)", 0, null, null, null), - list("Green Scrubs", 0, /obj/item/clothing/under/rank/medical/green, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_RECOMMENDED), + list("Chief Medical Officer's Uniform", 0, /obj/item/clothing/under/rank/chief_medical_officer, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_RECOMMENDED), + list("Doctor Uniform", 0, /obj/item/clothing/under/rank/medical, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_REGULAR), + list("Green Scrubs", 0, /obj/item/clothing/under/rank/medical/green, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_REGULAR), list("Blue Scrubs", 0, /obj/item/clothing/under/rank/medical/blue, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_REGULAR), + list("Light Blue Scrubs", 0, /obj/item/clothing/under/rank/medical/lightblue, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_REGULAR), list("Purple Scrubs", 0, /obj/item/clothing/under/rank/medical/purple, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_REGULAR), - list("Doctor Uniform", 0, /obj/item/clothing/under/rank/medical, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_REGULAR), + list("Olive Scrubs", 0, /obj/item/clothing/under/rank/medical/olive, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_REGULAR), + list("Grey Scrubs", 0, /obj/item/clothing/under/rank/medical/grey, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_REGULAR), + + list("SUIT (CHOOSE 1)", 0, null, null, null), + list("Labcoat", 0, /obj/item/clothing/suit/storage/labcoat, MARINE_CAN_BUY_MRE, VENDOR_ITEM_RECOMMENDED), + list("Medical's apron", 0, /obj/item/clothing/suit/chef/classic/medical, MARINE_CAN_BUY_MRE, VENDOR_ITEM_REGULAR), + + list("SNOW GEAR (SNOW USE ONLY)", 0, null, null, null), + list("Snowcoat", 0, /obj/item/clothing/suit/storage/snow_suit/doctor, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_MANDATORY), + list("Balaclava", 0, /obj/item/clothing/mask/balaclava, MARINE_CAN_BUY_MASK, VENDOR_ITEM_MANDATORY), + list("Snow Scarf", 0, /obj/item/clothing/mask/tornscarf, MARINE_CAN_BUY_MASK, VENDOR_ITEM_MANDATORY), + + list("HEADWEAR (CHOOSE 1)", 0, null, null, null), + list("Chief Medical Officer's Peaked Cap", 0, /obj/item/clothing/head/cmo, MARINE_CAN_BUY_HELMET, VENDOR_ITEM_RECOMMENDED), + list("Surgical Cap, Orange", 0, /obj/item/clothing/head/surgery/orange, MARINE_CAN_BUY_HELMET, VENDOR_ITEM_REGULAR), + list("Surgical Cap, Blue", 0, /obj/item/clothing/head/surgery/blue, MARINE_CAN_BUY_HELMET, VENDOR_ITEM_REGULAR), + list("Surgical Cap, Purple", 0, /obj/item/clothing/head/surgery/purple, MARINE_CAN_BUY_HELMET, VENDOR_ITEM_REGULAR), + list("Surgical Cap, Green", 0, /obj/item/clothing/head/surgery/green, MARINE_CAN_BUY_HELMET, VENDOR_ITEM_REGULAR), list("BAG (CHOOSE 1)", 0, null, null, null), + + list("Standard Satchel", 0, /obj/item/storage/backpack/marine/satchel, MARINE_CAN_BUY_BACKPACK, VENDOR_ITEM_REGULAR), + list("Standard Backpack", 0, /obj/item/storage/backpack/marine, MARINE_CAN_BUY_BACKPACK, VENDOR_ITEM_REGULAR), list("Medical Satchel", 0, /obj/item/storage/backpack/marine/satchel/medic, MARINE_CAN_BUY_BACKPACK, VENDOR_ITEM_RECOMMENDED), - list("Medical Backpack", 0, /obj/item/storage/backpack/marine/medic, MARINE_CAN_BUY_BACKPACK, VENDOR_ITEM_REGULAR), - list("USCM Satchel", 0, /obj/item/storage/backpack/marine/satchel, MARINE_CAN_BUY_BACKPACK, VENDOR_ITEM_REGULAR), - list("USCM Backpack", 0, /obj/item/storage/backpack/marine, MARINE_CAN_BUY_BACKPACK, VENDOR_ITEM_REGULAR), + list("Medical Backpack", 0, /obj/item/storage/backpack/marine/medic, MARINE_CAN_BUY_BACKPACK, VENDOR_ITEM_RECOMMENDED), + + list("BELT (CHOOSE 1)", 0, null, null, null), + list("M276 Lifesaver Bag (Full)", 0, /obj/item/storage/belt/medical/lifesaver/full, MARINE_CAN_BUY_BELT, VENDOR_ITEM_RECOMMENDED), + list("M276 Medical Storage Rig (Full)", 0, /obj/item/storage/belt/medical/full, MARINE_CAN_BUY_BELT, VENDOR_ITEM_RECOMMENDED), list("PERSONAL SIDEARM (CHOOSE 1)", 0, null, null, null), list("M4A3 Service Pistol", 0, /obj/item/storage/belt/gun/m4a3/full, MARINE_CAN_BUY_SECONDARY, VENDOR_ITEM_REGULAR), list("Mod 88 Pistol", 0, /obj/item/storage/belt/gun/m4a3/mod88, MARINE_CAN_BUY_SECONDARY, VENDOR_ITEM_REGULAR), list("M44 Revolver", 0, /obj/item/storage/belt/gun/m44/mp, MARINE_CAN_BUY_SECONDARY, VENDOR_ITEM_RECOMMENDED), - list("COMBAT EQUIPMENT (TAKE ALL)", 0, null, null, null), - list("Officer M3 Armor", 0, /obj/item/clothing/suit/storage/marine/MP/SO, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_MANDATORY), - list("Officer M10 Helmet", 0, /obj/item/clothing/head/helmet/marine/MP/SO, MARINE_CAN_BUY_HELMET, VENDOR_ITEM_MANDATORY), - list("Marine Combat Boots", 0, /obj/item/clothing/shoes/marine/knife, MARINE_CAN_BUY_SHOES, VENDOR_ITEM_MANDATORY), + list("COMBAT EQUIPMENT (COMBAT USE ONLY)", 0, null, null, null), + list("Officer M3 Armor", 0, /obj/item/clothing/suit/storage/marine/MP/SO, MARINE_CAN_BUY_COMBAT_ARMOR, VENDOR_ITEM_MANDATORY), + list("Officer M10 Helmet", 0, /obj/item/clothing/head/helmet/marine/MP/SO, MARINE_CAN_BUY_COMBAT_HELMET, VENDOR_ITEM_MANDATORY), + list("Marine Combat Boots", 0, /obj/item/clothing/shoes/marine/knife, MARINE_CAN_BUY_COMBAT_SHOES, VENDOR_ITEM_MANDATORY), list("POUCHES (CHOOSE 2)", 0, null, null, null), list("Autoinjector Pouch", 0, /obj/item/storage/pouch/autoinjector, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), @@ -261,13 +293,89 @@ GLOBAL_LIST_INIT(cm_vending_clothing_cmo, list( list("Black Webbing Vest", 0, /obj/item/clothing/accessory/storage/black_vest, MARINE_CAN_BUY_ACCESSORY, VENDOR_ITEM_REGULAR), list("Brown Webbing Vest", 0, /obj/item/clothing/accessory/storage/black_vest/brown_vest, MARINE_CAN_BUY_ACCESSORY, VENDOR_ITEM_REGULAR), list("Webbing", 0, /obj/item/clothing/accessory/storage/webbing, MARINE_CAN_BUY_ACCESSORY, VENDOR_ITEM_REGULAR), + + list("Spare Equipment", 0, null, null, null), + list("Doctor's Headset", 15, /obj/item/device/radio/headset/almayer/doc, null, VENDOR_ITEM_REGULAR), + list("Researcher's Headset", 15, /obj/item/device/radio/headset/almayer/research, null, VENDOR_ITEM_REGULAR), )) +/obj/effect/essentials_set/medical/doctor/cmo + spawned_gear_list = list( + /obj/item/device/defibrillator, + /obj/item/storage/firstaid/adv, + /obj/item/device/healthanalyzer, + /obj/item/tool/surgery/surgical_line, + /obj/item/tool/surgery/synthgraft, + /obj/item/device/flashlight/pen, + /obj/item/clothing/accessory/stethoscope, + /obj/item/storage/syringe_case, + ) //------------ EXECUTIVE OFFFICER --------------- + +//------------WEAPON VENDOR--------------- +GLOBAL_LIST_INIT(cm_vending_gear_xo, list( + list("CAPTAIN'S PRIMARY (CHOOSE 1)", 0, null, null, null), + list("M41A MK1 Pulse Rifle", 0, /obj/item/storage/box/guncase/m41aMK1AP, MARINE_CAN_BUY_KIT, VENDOR_ITEM_MANDATORY), + list("MK221 Tactical Shotgun", 0, /obj/effect/essentials_set/xo/shotgunpreset, MARINE_CAN_BUY_KIT, VENDOR_ITEM_MANDATORY), + + list("PRIMARY AMMUNITION", 0, null, null, null), + list("M41A MK1 Magazine", 40, /obj/item/ammo_magazine/rifle/m41aMK1, null, VENDOR_ITEM_RECOMMENDED), + list("M41A MK1 AP Magazine", 60, /obj/item/ammo_magazine/rifle/m41aMK1/ap, null, VENDOR_ITEM_RECOMMENDED), + list("Buckshot Shells", 20, /obj/item/ammo_magazine/shotgun/buckshot, null, VENDOR_ITEM_REGULAR), + list("Shotgun Slugs", 20, /obj/item/ammo_magazine/shotgun/slugs, null, VENDOR_ITEM_REGULAR), + list("Flechette Shells", 20, /obj/item/ammo_magazine/shotgun/flechette, null, VENDOR_ITEM_REGULAR), + + list("EXPLOSIVES", 0, null, null, null), + list("HEDP Grenade Pack", 15, /obj/item/storage/box/packet/high_explosive, null, VENDOR_ITEM_REGULAR), + list("HEFA Grenade Pack", 15, /obj/item/storage/box/packet/hefa, null, VENDOR_ITEM_REGULAR), + list("WP Grenade Pack", 15, /obj/item/storage/box/packet/phosphorus, null, VENDOR_ITEM_REGULAR), + + list("RAIL ATTACHMENTS", 0, null, null, null), + list("Red-Dot Sight", 15, /obj/item/attachable/reddot, null, VENDOR_ITEM_REGULAR), + list("Reflex Sight", 15, /obj/item/attachable/reflex, null, VENDOR_ITEM_REGULAR), + list("S4 2x Telescopic Mini-Scope", 15, /obj/item/attachable/scope/mini, null, VENDOR_ITEM_REGULAR), + + list("Helmet Visors", 0, null, null, null), + list("Welding Visor", 5, /obj/item/device/helmet_visor/welding_visor, null, VENDOR_ITEM_RECOMMENDED), + + list("UNDERBARREL ATTACHMENTS", 0, null, null, null), + list("Laser Sight", 15, /obj/item/attachable/lasersight, null, VENDOR_ITEM_REGULAR), + list("Angled Grip", 15, /obj/item/attachable/angledgrip, null, VENDOR_ITEM_REGULAR), + list("Vertical Grip", 15, /obj/item/attachable/verticalgrip, null, VENDOR_ITEM_REGULAR), + list("Underbarrel Shotgun", 15, /obj/item/attachable/attached_gun/shotgun, null, VENDOR_ITEM_REGULAR), + list("Underbarrel Extinguisher", 15, /obj/item/attachable/attached_gun/extinguisher, null, VENDOR_ITEM_REGULAR), + list("Underbarrel Flamethrower", 15, /obj/item/attachable/attached_gun/flamer, null, VENDOR_ITEM_REGULAR), + list("Underbarrel Grenade Launcher", 5, /obj/item/attachable/attached_gun/grenade, null, VENDOR_ITEM_REGULAR), + + list("BARREL ATTACHMENTS", 0, null, null, null), + list("Extended Barrel", 15, /obj/item/attachable/extended_barrel, null, VENDOR_ITEM_REGULAR), + list("Recoil Compensator", 15, /obj/item/attachable/compensator, null, VENDOR_ITEM_REGULAR), + list("Suppressor", 15, /obj/item/attachable/suppressor, null, VENDOR_ITEM_REGULAR), + )) + +/obj/effect/essentials_set/xo/shotgunpreset + spawned_gear_list = list( + /obj/item/weapon/gun/shotgun/combat, + /obj/item/ammo_magazine/shotgun/buckshot, + /obj/item/ammo_magazine/shotgun/slugs, + ) + +/obj/structure/machinery/cm_vending/gear/executive_officer + name = "\improper ColMarTech Executive Officer Weapon Rack" + desc = "An automated weapons rack for the Executive Officer. It features a decent selection of weaponry meant only for the second in command of a ship." + req_access = list(ACCESS_MARINE_SENIOR) + vendor_role = list(JOB_XO) + icon_state = "guns" + use_snowflake_points = TRUE + +/obj/structure/machinery/cm_vending/gear/executive_officer/get_listed_products(mob/user) + return GLOB.cm_vending_gear_xo + +//------------UNIFORM/GEAR VENDOR--------------- GLOBAL_LIST_INIT(cm_vending_clothing_xo, list( list("STANDARD EQUIPMENT (TAKE ALL)", 0, null, null, null), @@ -285,6 +393,14 @@ GLOBAL_LIST_INIT(cm_vending_clothing_xo, list( list("Mod 88 Pistol", 0, /obj/item/storage/belt/gun/m4a3/mod88, MARINE_CAN_BUY_SECONDARY, VENDOR_ITEM_REGULAR), list("M44 Revolver", 0, /obj/item/storage/belt/gun/m44/mp, MARINE_CAN_BUY_SECONDARY, VENDOR_ITEM_REGULAR), + list("BELTS (CHOOSE 1)", 0, null, null, null), + list("G8-A General Utility Pouch", 0, /obj/item/storage/backpack/general_belt, MARINE_CAN_BUY_BELT, VENDOR_ITEM_RECOMMENDED), + list("Military Police Belt", 0, /obj/item/storage/belt/security/MP/full, MARINE_CAN_BUY_BELT, VENDOR_ITEM_RECOMMENDED), + list("M276 Medical Storage Rig", 0, /obj/item/storage/belt/medical/full, MARINE_CAN_BUY_BELT, VENDOR_ITEM_RECOMMENDED), + list("M276 Ammo Load Rig", 0, /obj/item/storage/belt/marine, MARINE_CAN_BUY_BELT, VENDOR_ITEM_RECOMMENDED), + list("M276 Holster Toolrig", 0, /obj/item/storage/belt/gun/utility/full, MARINE_CAN_BUY_BELT, VENDOR_ITEM_RECOMMENDED), + list("M276 M82F Holster Rig", 0, /obj/item/storage/belt/gun/flaregun, MARINE_CAN_BUY_BELT, VENDOR_ITEM_REGULAR), + list("COMBAT EQUIPMENT (TAKE ALL)", 0, null, null, null), list("Officer M3 Armor", 0, /obj/item/clothing/suit/storage/marine/MP/SO, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_MANDATORY), list("Officer M10 Helmet", 0, /obj/item/clothing/head/helmet/marine/MP/SO, MARINE_CAN_BUY_HELMET, VENDOR_ITEM_MANDATORY), @@ -312,7 +428,6 @@ GLOBAL_LIST_INIT(cm_vending_clothing_xo, list( list("Document Pouch", 0, /obj/item/storage/pouch/document, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), list("Shotgun Shell Pouch", 0, /obj/item/storage/pouch/shotgun, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), - list("ACCESSORIES (CHOOSE 1)", 0, null, null, null), list("Shoulder Holster", 0, /obj/item/clothing/accessory/storage/holster, MARINE_CAN_BUY_ACCESSORY, VENDOR_ITEM_REGULAR), list("Black Webbing Vest", 0, /obj/item/clothing/accessory/storage/black_vest, MARINE_CAN_BUY_ACCESSORY, VENDOR_ITEM_REGULAR), diff --git a/code/game/machinery/vending/vendor_types/crew/staff_officer_armory.dm b/code/game/machinery/vending/vendor_types/crew/staff_officer_armory.dm index ac7b22b4e0a0..1e21f2f7256d 100644 --- a/code/game/machinery/vending/vendor_types/crew/staff_officer_armory.dm +++ b/code/game/machinery/vending/vendor_types/crew/staff_officer_armory.dm @@ -18,6 +18,7 @@ GLOBAL_LIST_INIT(cm_vending_clothing_staff_officer_armory, list( list("Marine Combat Gloves", 0, /obj/item/clothing/gloves/marine, MARINE_CAN_BUY_GLOVES, VENDOR_ITEM_MANDATORY), list("MRE", 0, /obj/item/storage/box/MRE, MARINE_CAN_BUY_MRE, VENDOR_ITEM_MANDATORY), list("Aviator Shades", 0, /obj/item/clothing/glasses/sunglasses/aviator, MARINE_CAN_BUY_GLASSES, VENDOR_ITEM_REGULAR), + list("Bayonet", 0, /obj/item/attachable/bayonet, null, VENDOR_ITEM_REGULAR), list("SPECIALISATION KIT (CHOOSE 1)", 0, null, null, null), list("Essential Engineer Set", 0, /obj/effect/essentials_set/engi, MARINE_CAN_BUY_ESSENTIALS, VENDOR_ITEM_RECOMMENDED), @@ -68,6 +69,7 @@ GLOBAL_LIST_INIT(cm_vending_clothing_staff_officer_armory, list( list("OTHER SUPPLIES", 0, null, null, null), list("Medical Helmet Optic", 5, /obj/item/device/helmet_visor/medical, null, VENDOR_ITEM_REGULAR), + list("Welding Visor", 5, /obj/item/device/helmet_visor/welding_visor, null, VENDOR_ITEM_REGULAR), list("Magnetic Harness", 12, /obj/item/attachable/magnetic_harness, null, VENDOR_ITEM_REGULAR), list("Radio Telephone Pack", 15, /obj/item/storage/backpack/marine/satchel/rto, null, VENDOR_ITEM_RECOMMENDED), list("Binoculars", 5,/obj/item/device/binoculars, null, VENDOR_ITEM_REGULAR), @@ -78,6 +80,10 @@ GLOBAL_LIST_INIT(cm_vending_clothing_staff_officer_armory, list( list("Fulton Recovery Device", 5, /obj/item/stack/fulton, null, VENDOR_ITEM_REGULAR), list("Motion Detector", 5, /obj/item/device/motiondetector, null, VENDOR_ITEM_REGULAR), list("Space Cleaner", 2, /obj/item/reagent_container/spray/cleaner, null, VENDOR_ITEM_REGULAR), + list("Blowtorch", 5, /obj/item/tool/weldingtool, null, VENDOR_ITEM_REGULAR), + list("Wrench", 1, /obj/item/tool/wrench, null, VENDOR_ITEM_REGULAR), + list("Crowbar", 1, /obj/item/tool/crowbar, null, VENDOR_ITEM_REGULAR), + list("Entrenching Tool", 1, /obj/item/tool/shovel/etool, null, VENDOR_ITEM_REGULAR), list("Whistle", 5, /obj/item/device/whistle, null, VENDOR_ITEM_REGULAR), list("Machete Scabbard (Full)", 5, /obj/item/storage/large_holster/machete/full, null, VENDOR_ITEM_REGULAR) )) diff --git a/code/game/machinery/vending/vendor_types/crew/synthetic.dm b/code/game/machinery/vending/vendor_types/crew/synthetic.dm index ecef3ed622d9..7fbe39480999 100644 --- a/code/game/machinery/vending/vendor_types/crew/synthetic.dm +++ b/code/game/machinery/vending/vendor_types/crew/synthetic.dm @@ -5,7 +5,7 @@ desc = "An automated gear rack hooked up to a colossal storage of various medical and engineering supplies. Can be accessed only by synthetic units." icon_state = "gear" req_access = list(ACCESS_MARINE_SYNTH) - vendor_role = list(JOB_SYNTH, JOB_SYNTH_SURVIVOR) + vendor_role = list(JOB_SYNTH, JOB_SYNTH_SURVIVOR, JOB_UPP_SUPPORT_SYNTH, JOB_CMB_SYN, JOB_PMC_SYNTH) listed_products = list( list("ENGINEER SUPPLIES", 0, null, null, null), @@ -21,6 +21,7 @@ list("Plastic Explosive", 3, /obj/item/explosive/plastic, null, VENDOR_ITEM_REGULAR), list("ES-11 Mobile Fuel Canister", 4, /obj/item/tool/weldpack/minitank, null, VENDOR_ITEM_REGULAR), list("Engineer Kit", 1, /obj/item/storage/toolkit/empty, null, VENDOR_ITEM_REGULAR), + list("Tactical Prybar", 5, /obj/item/tool/crowbar/tactical, null, VENDOR_ITEM_REGULAR), list("FIRSTAID KITS", 0, null, null, null), list("Advanced Firstaid Kit", 12, /obj/item/storage/firstaid/adv, null, VENDOR_ITEM_REGULAR), @@ -38,6 +39,9 @@ list("Roller Bed", 4, /obj/item/roller, null, VENDOR_ITEM_REGULAR), list("Stasis Bag", 6, /obj/item/bodybag/cryobag, null, VENDOR_ITEM_REGULAR), list("MS-11 Smart Refill Tank", 6, /obj/item/reagent_container/glass/minitank, null, VENDOR_ITEM_REGULAR), + list("Blood", 5, /obj/item/reagent_container/blood/OMinus, null, VENDOR_ITEM_REGULAR), + list("Surgical Bed", 10, /obj/structure/bed/portable_surgery, null, VENDOR_ITEM_REGULAR), + list("Surgical Kit", 30, /obj/item/storage/surgical_tray, null, VENDOR_ITEM_REGULAR), list("Pillbottle (Bicaridine)", 5, /obj/item/storage/pill_bottle/bicaridine, null, VENDOR_ITEM_RECOMMENDED), list("Pillbottle (Dexalin)", 5, /obj/item/storage/pill_bottle/dexalin, null, VENDOR_ITEM_REGULAR), @@ -87,7 +91,7 @@ GLOBAL_LIST_INIT(cm_vending_clothing_synth, list( list("Experimental Tool Vendor Token", 0, /obj/item/coin/marine/synth, MARINE_CAN_BUY_ESSENTIALS, VENDOR_ITEM_MANDATORY), list("RADIO (TAKE ALL)", 0, null, null, null), - list("Headset", 0, /obj/item/device/radio/headset/almayer/mcom/cdrcom, MARINE_CAN_BUY_EAR, VENDOR_ITEM_MANDATORY), + list("Headset", 0, /obj/item/device/radio/headset/almayer/mcom/synth, MARINE_CAN_BUY_EAR, VENDOR_ITEM_MANDATORY), list("UNIFORM (CHOOSE 1)", 0, null, null, null), list("Uniform, Outdated Synth", 0, /obj/item/clothing/under/rank/synthetic/old, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_REGULAR), @@ -136,6 +140,7 @@ GLOBAL_LIST_INIT(cm_vending_clothing_synth, list( list("Smartpack, White", 0, /obj/item/storage/backpack/marine/smartpack/white, MARINE_CAN_BUY_BACKPACK, VENDOR_ITEM_REGULAR), list("Smartpack, Black", 0, /obj/item/storage/backpack/marine/smartpack/black, MARINE_CAN_BUY_BACKPACK, VENDOR_ITEM_REGULAR), list("Logistics IMP Backpack", 0, /obj/item/storage/backpack/marine/satchel/big, MARINE_CAN_BUY_BACKPACK, VENDOR_ITEM_REGULAR), + list("Expedition Chestrig", 0, /obj/item/storage/backpack/marine/satchel/intel/chestrig, MARINE_CAN_BUY_BACKPACK, VENDOR_ITEM_REGULAR), list("BELT (CHOOSE 1)", 0, null, null, null), list("G8-A General Utility Pouch", 0, /obj/item/storage/backpack/general_belt, MARINE_CAN_BUY_BELT, VENDOR_ITEM_REGULAR), @@ -173,7 +178,7 @@ GLOBAL_LIST_INIT(cm_vending_clothing_synth, list( name = "\improper ColMarTech Synthetic Equipment Rack" desc = "An automated rack hooked up to a colossal storage of various equipment. Can be accessed only by synthetic units." req_access = list(ACCESS_MARINE_SYNTH) - vendor_role = list(JOB_SYNTH, JOB_SYNTH_SURVIVOR) + vendor_role = list(JOB_SYNTH, JOB_SYNTH_SURVIVOR, JOB_UPP_SUPPORT_SYNTH, JOB_CMB_SYN, JOB_PMC_SYNTH) /obj/structure/machinery/cm_vending/clothing/synth/get_listed_products(mob/user) return GLOB.cm_vending_clothing_synth @@ -183,10 +188,14 @@ GLOBAL_LIST_INIT(cm_vending_clothing_synth, list( GLOBAL_LIST_INIT(cm_vending_clothing_synth_snowflake, list( list("USCM UNIFORMS", 0, null, null, null), list("Medical Scrubs, Blue", 12, /obj/item/clothing/under/rank/medical/blue, null, VENDOR_ITEM_REGULAR), + list("Medical Scrubs, Light Blue", 0, /obj/item/clothing/under/rank/medical/lightblue, null, VENDOR_ITEM_REGULAR), list("Medical Scrubs, Green", 12, /obj/item/clothing/under/rank/medical/green, null, VENDOR_ITEM_REGULAR), list("Medical Scrubs, Purple", 12, /obj/item/clothing/under/rank/medical/purple, null, VENDOR_ITEM_REGULAR), + list("Medical Scrubs, Olive", 12, /obj/item/clothing/under/rank/medical/olive, null, VENDOR_ITEM_REGULAR), + list("Medical Scrubs, Grey", 12, /obj/item/clothing/under/rank/medical/grey, null, VENDOR_ITEM_REGULAR), list("Medical Scrubs, White", 12, /obj/item/clothing/under/rank/medical, null, VENDOR_ITEM_REGULAR), - list("USCM Service Uniform", 12, /obj/item/clothing/under/marine/officer/bridge, null, VENDOR_ITEM_REGULAR), + list("USCM Service Uniform, Tan", 12, /obj/item/clothing/under/marine/officer/bridge, null, VENDOR_ITEM_REGULAR), + list("USCM Service Uniform, White", 12, /obj/item/clothing/under/marine/dress, null, VENDOR_ITEM_REGULAR), list("USCM Flightsuit", 12, /obj/item/clothing/under/rank/synthetic/flight, null, VENDOR_ITEM_REGULAR), list("USCM Engineers Uniform", 12, /obj/item/clothing/under/marine/engineer/standard, null, VENDOR_ITEM_REGULAR), list("USCM Engineers Uniform (Darker)", 12, /obj/item/clothing/under/marine/engineer/darker, null, VENDOR_ITEM_REGULAR), @@ -205,8 +214,12 @@ GLOBAL_LIST_INIT(cm_vending_clothing_synth_snowflake, list( list("Grey Utilities", 12, /obj/item/clothing/under/rank/synthetic/utility/yellow, null, VENDOR_ITEM_REGULAR), list("Grey Utilities and Blue Jeans", 12, /obj/item/clothing/under/rank/synthetic/utility/red, null, VENDOR_ITEM_REGULAR), list("Blue Utilities and Brown Jeans", 12, /obj/item/clothing/under/rank/synthetic/utility/blue, null, VENDOR_ITEM_REGULAR), + list("White Service Uniform", 12, /obj/item/clothing/under/colonist/white_service, null, VENDOR_ITEM_REGULAR), list("Steward Clothes", 12, /obj/item/clothing/under/colonist/wy_joliet_shopsteward, null, VENDOR_ITEM_REGULAR), list("Red Dress Skirt", 12, /obj/item/clothing/under/blackskirt, null, VENDOR_ITEM_REGULAR), + list("Blue Suit Pants", 12, /obj/item/clothing/under/liaison_suit/blue, null, VENDOR_ITEM_REGULAR), + list("Brown Suit Pants", 12, /obj/item/clothing/under/liaison_suit/brown, null, VENDOR_ITEM_REGULAR), + list("White Suit Pants", 12, /obj/item/clothing/under/liaison_suit/corporate_formal, null, VENDOR_ITEM_REGULAR), list("Working Joe Uniform", 36, /obj/item/clothing/under/rank/synthetic/joe, null, VENDOR_ITEM_REGULAR), list("GLASSES", 0, null, null, null), @@ -237,6 +250,7 @@ GLOBAL_LIST_INIT(cm_vending_clothing_synth_snowflake, list( list("Beret, Red", 12, /obj/item/clothing/head/beret/cm/red, null, VENDOR_ITEM_REGULAR), list("Beret, Standard", 12, /obj/item/clothing/head/beret/cm, null, VENDOR_ITEM_REGULAR), list("Beret, Tan", 12, /obj/item/clothing/head/beret/cm/tan, null, VENDOR_ITEM_REGULAR), + list("Beret, Green", 12, /obj/item/clothing/head/beret/cm, MARINE_CAN_BUY_HELMET, VENDOR_ITEM_REGULAR), list("Beret, Black", 12, /obj/item/clothing/head/beret/cm/black, null, VENDOR_ITEM_REGULAR), list("Beret, White", 12, /obj/item/clothing/head/beret/cm/white, null, VENDOR_ITEM_REGULAR), list("Surgical Cap, Blue", 12, /obj/item/clothing/head/surgery/blue, null, VENDOR_ITEM_REGULAR), @@ -249,6 +263,7 @@ GLOBAL_LIST_INIT(cm_vending_clothing_synth_snowflake, list( list("Req Cap", 12, /obj/item/clothing/head/cmcap/req, null, VENDOR_ITEM_REGULAR), list("Officer Cap", 12, /obj/item/clothing/head/cmcap/bridge, null, VENDOR_ITEM_REGULAR), list("Bio Hood", 12, /obj/item/clothing/head/bio_hood/synth, null, VENDOR_ITEM_REGULAR), + list("Fedora", 12, /obj/item/clothing/head/fedora, null, VENDOR_ITEM_REGULAR), list("HELMET", 0, null, null, null), list("Marine Helmet (Mission-Specific Camo)", 12, /obj/item/clothing/head/helmet/marine, null, VENDOR_ITEM_REGULAR), @@ -258,8 +273,30 @@ GLOBAL_LIST_INIT(cm_vending_clothing_synth_snowflake, list( list("Marine Helmet (Desert)", 12, /obj/item/clothing/head/helmet/marine/desert, null, VENDOR_ITEM_REGULAR), list("Technician Helmet", 12, /obj/item/clothing/head/helmet/marine/tech, null, VENDOR_ITEM_REGULAR), list("Corpsman Helmet", 12, /obj/item/clothing/head/helmet/marine/medic, null, VENDOR_ITEM_REGULAR), + list("White Corpsman Helmet", 12, /obj/item/clothing/head/helmet/marine/medic/white, null, VENDOR_ITEM_REGULAR), list("Attachable Helmet Shield", 12, /obj/item/prop/helmetgarb/riot_shield, null, VENDOR_ITEM_REGULAR), + list("MASK", 0, null, null, null), + list("Surgical Mask", 12, /obj/item/clothing/mask/surgical, null, VENDOR_ITEM_REGULAR), + list("Rebreather", 12, /obj/item/clothing/mask/rebreather, null, VENDOR_ITEM_REGULAR), + list("Skull Balaclava, Blue", 12, /obj/item/clothing/mask/rebreather/skull, null, VENDOR_ITEM_REGULAR), + list("Skull balaclava, Black", 12, /obj/item/clothing/mask/rebreather/skull/black, null, VENDOR_ITEM_REGULAR), + list("Balaclava", 12, /obj/item/clothing/mask/rebreather/scarf, null, VENDOR_ITEM_REGULAR), + list("Balaclava (Green)", 12, /obj/item/clothing/mask/rebreather/scarf/green, null, VENDOR_ITEM_REGULAR), + list("Balaclava (Tan)", 12, /obj/item/clothing/mask/rebreather/scarf/tan, null, VENDOR_ITEM_REGULAR), + list("Balaclava (Grey)", 12, /obj/item/clothing/mask/rebreather/scarf/gray, null, VENDOR_ITEM_REGULAR), + list("Wrap (Grey)", 12, /obj/item/clothing/mask/rebreather/scarf/tacticalmask, null, VENDOR_ITEM_REGULAR), + list("Wrap (Red)", 12, /obj/item/clothing/mask/rebreather/scarf/tacticalmask/red, null, VENDOR_ITEM_REGULAR), + list("Wrap (Green)", 12, /obj/item/clothing/mask/rebreather/scarf/tacticalmask/green, null, VENDOR_ITEM_REGULAR), + list("Wrap (Tan)", 12, /obj/item/clothing/mask/rebreather/scarf/tacticalmask/tan, null, VENDOR_ITEM_REGULAR), + list("Wrap (Black)", 12, /obj/item/clothing/mask/rebreather/scarf/tacticalmask/black, null, VENDOR_ITEM_REGULAR), + list("Scarf", 12, /obj/item/clothing/mask/tornscarf, null, VENDOR_ITEM_REGULAR), + list("Scarf (Green)", 12, /obj/item/clothing/mask/tornscarf/green, null, VENDOR_ITEM_REGULAR), + list("Scarf (Snow)", 12, /obj/item/clothing/mask/tornscarf/snow, null, VENDOR_ITEM_REGULAR), + list("Scarf (Desert)", 12, /obj/item/clothing/mask/tornscarf/desert, null, VENDOR_ITEM_REGULAR), + list("Scarf (Urban)", 12, /obj/item/clothing/mask/tornscarf/urban, null, VENDOR_ITEM_REGULAR), + list("Scarf (Black)", 12, /obj/item/clothing/mask/tornscarf/black, null, VENDOR_ITEM_REGULAR), + list("SUIT", 0, null, null, null), list("Bomber Jacket, Brown", 12, /obj/item/clothing/suit/storage/bomber, null, VENDOR_ITEM_REGULAR), list("Bomber Jacket, Black", 12, /obj/item/clothing/suit/storage/bomber/alt, null, VENDOR_ITEM_REGULAR), @@ -281,6 +318,12 @@ GLOBAL_LIST_INIT(cm_vending_clothing_synth_snowflake, list( list("Labcoat, Researcher", 12, /obj/item/clothing/suit/storage/labcoat/researcher, null, VENDOR_ITEM_REGULAR), list("Quartermaster Jacket", 12, /obj/item/clothing/suit/storage/RO, null, VENDOR_ITEM_REGULAR), list("Bio Suit", 12, /obj/item/clothing/suit/storage/synthbio, null, VENDOR_ITEM_REGULAR), + list("Black Suit Jacket", 12, /obj/item/clothing/suit/storage/jacket/marine/corporate/black, null, VENDOR_ITEM_REGULAR), + list("Brown Suit Jacket", 12, /obj/item/clothing/suit/storage/jacket/marine/corporate/brown, null, VENDOR_ITEM_REGULAR), + list("Blue Suit Jacket", 12, /obj/item/clothing/suit/storage/jacket/marine/corporate/blue, null, VENDOR_ITEM_REGULAR), + list("Brown Vest", 12, /obj/item/clothing/suit/storage/jacket/marine/vest, null, VENDOR_ITEM_REGULAR), + list("Tan Vest", 12, /obj/item/clothing/suit/storage/jacket/marine/vest/tan, null, VENDOR_ITEM_REGULAR), + list("Grey Vest", 12, /obj/item/clothing/suit/storage/jacket/marine/vest/grey, null, VENDOR_ITEM_REGULAR), list("USCM Poncho (Mission-Specific Camo)", 12, /obj/item/clothing/accessory/poncho, null, VENDOR_ITEM_REGULAR), list("USCM Poncho (Green)", 12, /obj/item/clothing/accessory/poncho/green, null, VENDOR_ITEM_REGULAR), list("USCM Poncho (Brown)", 12, /obj/item/clothing/accessory/poncho/brown, null, VENDOR_ITEM_REGULAR), @@ -303,8 +346,10 @@ GLOBAL_LIST_INIT(cm_vending_clothing_synth_snowflake, list( list("OTHER", 0, null, null, null), list("Red Armband", 6, /obj/item/clothing/accessory/armband, null, VENDOR_ITEM_REGULAR), + list("Purple Armband", 6, /obj/item/clothing/accessory/armband/science, null, VENDOR_ITEM_REGULAR), list("Yellow Armband", 6, /obj/item/clothing/accessory/armband/engine, null, VENDOR_ITEM_REGULAR), list("Green Armband", 6, /obj/item/clothing/accessory/armband/medgreen, null, VENDOR_ITEM_REGULAR), + list("Dress Gloves", 6, /obj/item/clothing/gloves/marine/dress, null, VENDOR_ITEM_REGULAR), )) @@ -316,7 +361,7 @@ GLOBAL_LIST_INIT(cm_vending_clothing_synth_snowflake, list( use_snowflake_points = TRUE vendor_theme = VENDOR_THEME_COMPANY req_access = list(ACCESS_MARINE_SYNTH) - vendor_role = list(JOB_SYNTH, JOB_SYNTH_SURVIVOR, JOB_WORKING_JOE) + vendor_role = list(JOB_SYNTH, JOB_SYNTH_SURVIVOR, JOB_WORKING_JOE, JOB_UPP_SUPPORT_SYNTH, JOB_CMB_SYN, JOB_PMC_SYNTH) vend_delay = 1 SECONDS @@ -345,18 +390,20 @@ GLOBAL_LIST_INIT(cm_vending_clothing_synth_snowflake, list( return ..() /obj/structure/machinery/cm_vending/own_points/experimental_tools/get_listed_products(mob/user) - return list( - list("Autocompressor", 15, /obj/item/clothing/suit/auto_cpr, null, VENDOR_ITEM_REGULAR), - list("Backpack Firefighting Watertank", 15, /obj/item/reagent_container/glass/watertank/atmos, null, VENDOR_ITEM_REGULAR), - list("Breaching Hammer", 15, /obj/item/weapon/twohanded/breacher/synth, null, VENDOR_ITEM_REGULAR), - list("Compact Defibrillator", 15, /obj/item/device/defibrillator/compact, null, VENDOR_ITEM_REGULAR), - list("Compact Nailgun kit", 15, /obj/effect/essentials_set/cnailgun, null, VENDOR_ITEM_REGULAR), - list("Crew Monitor", 15, /obj/item/tool/crew_monitor, null, VENDOR_ITEM_REGULAR), - list("Experimental Meson Goggles", 15, /obj/item/clothing/glasses/night/experimental_mesons, null, VENDOR_ITEM_REGULAR), - list("Maintenance Jack", 15, /obj/item/maintenance_jack, null, VENDOR_ITEM_REGULAR), - list("Portable Dialysis Machine", 15, /obj/item/tool/portadialysis, null, VENDOR_ITEM_REGULAR), - list("Telescopic Baton", 15, /obj/item/weapon/telebaton, null, VENDOR_ITEM_REGULAR), - ) + return GLOB.cm_vending_synth_tools + +GLOBAL_LIST_INIT(cm_vending_synth_tools, list( + list("Autocompressor", 15, /obj/item/clothing/suit/auto_cpr, null, VENDOR_ITEM_REGULAR), + list("Backpack Firefighting Watertank", 15, /obj/item/reagent_container/glass/watertank/atmos, null, VENDOR_ITEM_REGULAR), + list("Breaching Hammer", 15, /obj/item/weapon/twohanded/breacher/synth, null, VENDOR_ITEM_REGULAR), + list("Compact Defibrillator", 15, /obj/item/device/defibrillator/compact, null, VENDOR_ITEM_REGULAR), + list("Compact Nailgun kit", 15, /obj/effect/essentials_set/cnailgun, null, VENDOR_ITEM_REGULAR), + list("Crew Monitor", 15, /obj/item/tool/crew_monitor, null, VENDOR_ITEM_REGULAR), + list("Experimental Meson Goggles", 15, /obj/item/clothing/glasses/night/experimental_mesons, null, VENDOR_ITEM_REGULAR), + list("Maintenance Jack", 15, /obj/item/maintenance_jack, null, VENDOR_ITEM_REGULAR), + list("Portable Dialysis Machine", 15, /obj/item/tool/portadialysis, null, VENDOR_ITEM_REGULAR), + list("Telescopic Baton", 15, /obj/item/weapon/telebaton, null, VENDOR_ITEM_REGULAR), +)) //------------EXPERIMENTAL TOOL KITS--------------- /obj/effect/essentials_set/cnailgun @@ -364,4 +411,5 @@ GLOBAL_LIST_INIT(cm_vending_clothing_synth_snowflake, list( /obj/item/weapon/gun/smg/nailgun/compact, /obj/item/ammo_magazine/smg/nailgun, /obj/item/ammo_magazine/smg/nailgun, + /obj/item/storage/belt/gun/m4a3/nailgun, ) diff --git a/code/game/machinery/vending/vendor_types/crew/vehicle_crew.dm b/code/game/machinery/vending/vendor_types/crew/vehicle_crew.dm index 6877c2b4b5b3..53853f7d4e8b 100644 --- a/code/game/machinery/vending/vendor_types/crew/vehicle_crew.dm +++ b/code/game/machinery/vending/vendor_types/crew/vehicle_crew.dm @@ -7,7 +7,7 @@ icon_state = "vehicle_gear" req_access = list(ACCESS_MARINE_CREWMAN) - vendor_role = list(JOB_CREWMAN) + vendor_role = list(JOB_TANK_CREW) bound_width = 64 unslashable = TRUE @@ -56,27 +56,27 @@ UnregisterSignal(SSdcs, COMSIG_GLOB_VEHICLE_ORDERED) if(!selected_vehicle) - selected_vehicle = "APC" // The whole thing seems to be based upon the assumption you unlock tank as an override, defaulting to APC - if(selected_vehicle == "APC") - available_categories &= ~(VEHICLE_ARMOR_AVAILABLE|VEHICLE_INTEGRAL_AVAILABLE) //APC lacks these, so we need to remove these flags to be able to access spare parts section + selected_vehicle = "TANK" // The whole thing seems to be based upon the assumption you unlock tank as an override, defaulting to APC + if(selected_vehicle == "TANK") + available_categories &= ~(VEHICLE_INTEGRAL_AVAILABLE) //APC lacks these, so we need to remove these flags to be able to access spare parts section + marine_announcement("A tank is being sent up to reinforce this operation.") /obj/structure/machinery/cm_vending/gear/vehicle_crew/get_listed_products(mob/user) var/list/display_list = list() if(!user) display_list += GLOB.cm_vending_vehicle_crew_tank - display_list += GLOB.cm_vending_vehicle_crew_tank_spare display_list += GLOB.cm_vending_vehicle_crew_apc - display_list += GLOB.cm_vending_vehicle_crew_apc_spare return display_list if(selected_vehicle == "TANK") if(available_categories) display_list = GLOB.cm_vending_vehicle_crew_tank - else - display_list = GLOB.cm_vending_vehicle_crew_tank_spare - else if(selected_vehicle == "APC") + else if(selected_vehicle == "ARC") + display_list = GLOB.cm_vending_vehicle_crew_arc + + else if(selected_vehicle == "TANK") if(available_categories) display_list = GLOB.cm_vending_vehicle_crew_apc else //APC stuff costs more to prevent 4000 points spent on shitton of ammunition @@ -147,64 +147,11 @@ GLOBAL_LIST_INIT(cm_vending_vehicle_crew_tank, list( list("Overdrive Enhancer", 0, /obj/item/hardpoint/support/overdrive_enhancer, VEHICLE_SUPPORT_AVAILABLE, VENDOR_ITEM_RECOMMENDED), list("ARMOR", 0, null, null, null), - list("Ballistic Armor", 0, /obj/item/hardpoint/armor/ballistic, VEHICLE_ARMOR_AVAILABLE, VENDOR_ITEM_RECOMMENDED), - list("Caustic Armor", 0, /obj/item/hardpoint/armor/caustic, VEHICLE_ARMOR_AVAILABLE, VENDOR_ITEM_REGULAR), - list("Concussive Armor", 0, /obj/item/hardpoint/armor/concussive, VEHICLE_ARMOR_AVAILABLE, VENDOR_ITEM_REGULAR), - list("Paladin Armor", 0, /obj/item/hardpoint/armor/paladin, VEHICLE_ARMOR_AVAILABLE, VENDOR_ITEM_REGULAR), list("Snowplow", 0, /obj/item/hardpoint/armor/snowplow, VEHICLE_ARMOR_AVAILABLE, VENDOR_ITEM_REGULAR), list("TREADS", 0, null, null, null), list("Reinforced Treads", 0, /obj/item/hardpoint/locomotion/treads/robust, VEHICLE_TREADS_AVAILABLE, VENDOR_ITEM_REGULAR), - list("Treads", 0, /obj/item/hardpoint/locomotion/treads, VEHICLE_TREADS_AVAILABLE, VENDOR_ITEM_RECOMMENDED))) - -GLOBAL_LIST_INIT(cm_vending_vehicle_crew_tank_spare, list( - list("SPARE PARTS SELECTION:", 0, null, null, null), - - list("INTEGRAL PARTS", 0, null, null, null), - list("M34A2-A Multipurpose Turret", 500, /obj/item/hardpoint/holder/tank_turret, null, VENDOR_ITEM_REGULAR), - - list("SUPPORT AMMUNITION", 0, null, null, null), - list("Turret Smoke Screen Magazine", 50, /obj/item/ammo_magazine/hardpoint/turret_smoke, null, VENDOR_ITEM_REGULAR), - - list("PRIMARY WEAPON", 0, null, null, null), - list("AC3-E Autocannon", 200, /obj/item/hardpoint/primary/autocannon, null, VENDOR_ITEM_REGULAR), - list("DRG-N Offensive Flamer Unit", 200, /obj/item/hardpoint/primary/flamer, null, VENDOR_ITEM_REGULAR), - list("LTAA-AP Minigun", 200, /obj/item/hardpoint/primary/minigun, null, VENDOR_ITEM_REGULAR), - list("LTB Cannon", 400, /obj/item/hardpoint/primary/cannon, null, VENDOR_ITEM_RECOMMENDED), - - list("PRIMARY AMMUNITION", 0, null, null, null), - list("AC3-E Autocannon Magazine", 100, /obj/item/ammo_magazine/hardpoint/ace_autocannon, null, VENDOR_ITEM_REGULAR), - list("DRG-N Offensive Flamer Unit Fuel Tank", 100, /obj/item/ammo_magazine/hardpoint/primary_flamer, null, VENDOR_ITEM_REGULAR), - list("LTAA-AP Minigun Magazine", 100, /obj/item/ammo_magazine/hardpoint/ltaaap_minigun, null, VENDOR_ITEM_REGULAR), - list("LTB Cannon Magazine", 100, /obj/item/ammo_magazine/hardpoint/ltb_cannon, null, VENDOR_ITEM_REGULAR), - - list("SECONDARY WEAPON", 0, null, null, null), - list("M92T Grenade Launcher", 200, /obj/item/hardpoint/secondary/grenade_launcher, null, VENDOR_ITEM_REGULAR), - list("M56 Cupola", 200, /obj/item/hardpoint/secondary/m56cupola, null, VENDOR_ITEM_REGULAR), - list("LZR-N Flamer Unit", 200, /obj/item/hardpoint/secondary/small_flamer, null, VENDOR_ITEM_REGULAR), - list("TOW Launcher", 300, /obj/item/hardpoint/secondary/towlauncher, null, VENDOR_ITEM_REGULAR), - - list("SECONDARY AMMUNITION", 0, null, null, null), - list("M92T Grenade Launcher Magazine", 50, /obj/item/ammo_magazine/hardpoint/tank_glauncher, null, VENDOR_ITEM_REGULAR), - list("M56 Cupola Magazine", 50, /obj/item/ammo_magazine/hardpoint/m56_cupola, null, VENDOR_ITEM_REGULAR), - list("LZR-N Flamer Unit Fuel Tank", 50, /obj/item/ammo_magazine/hardpoint/secondary_flamer, null, VENDOR_ITEM_REGULAR), - list("TOW Launcher Magazine", 50, /obj/item/ammo_magazine/hardpoint/towlauncher, null, VENDOR_ITEM_REGULAR), - - list("SUPPORT MODULE", 0, null, null, null), - list("Artillery Module", 300, /obj/item/hardpoint/support/artillery_module, null, VENDOR_ITEM_REGULAR), - list("Integrated Weapons Sensor Array", 200, /obj/item/hardpoint/support/weapons_sensor, null, VENDOR_ITEM_REGULAR), - list("Overdrive Enhancer", 200, /obj/item/hardpoint/support/overdrive_enhancer, null, VENDOR_ITEM_REGULAR), - - list("ARMOR", 0, null, null, null), - list("Ballistic Armor", 300, /obj/item/hardpoint/armor/ballistic, null, VENDOR_ITEM_REGULAR), - list("Caustic Armor", 300, /obj/item/hardpoint/armor/caustic, null, VENDOR_ITEM_REGULAR), - list("Concussive Armor", 300, /obj/item/hardpoint/armor/concussive, null, VENDOR_ITEM_REGULAR), - list("Paladin Armor", 300, /obj/item/hardpoint/armor/paladin, null, VENDOR_ITEM_REGULAR), - list("Snowplow", 200, /obj/item/hardpoint/armor/snowplow, null, VENDOR_ITEM_REGULAR), - - list("TREADS", 0, null, null, null), - list("Reinforced Treads", 200, /obj/item/hardpoint/locomotion/treads/robust, null, VENDOR_ITEM_REGULAR), - list("Treads", 200, /obj/item/hardpoint/locomotion/treads, null, VENDOR_ITEM_REGULAR))) + list("Treads", 0, /obj/item/hardpoint/locomotion/treads, VEHICLE_TREADS_AVAILABLE, VENDOR_ITEM_REGULAR))) GLOBAL_LIST_INIT(cm_vending_vehicle_crew_apc, list( list("STARTING KIT SELECTION:", 0, null, null, null), @@ -245,6 +192,11 @@ GLOBAL_LIST_INIT(cm_vending_vehicle_crew_apc_spare, list( list("WHEELS", 0, null, null, null), list("APC Wheels", 200, /obj/item/hardpoint/locomotion/apc_wheels, null, VENDOR_ITEM_REGULAR))) +GLOBAL_LIST_INIT(cm_vending_vehicle_crew_arc, list( + list("STARTING KIT SELECTION:", 0, null, null, null), + + list("WHEELS", 0, null, null, null), + list("Replacement ARC Wheels", 0, /obj/item/hardpoint/locomotion/arc_wheels, VEHICLE_TREADS_AVAILABLE, VENDOR_ITEM_MANDATORY))) //------------WEAPONS RACK--------------- @@ -253,7 +205,7 @@ GLOBAL_LIST_INIT(cm_vending_vehicle_crew_apc_spare, list( desc = "An automated weapon rack hooked up to a small storage of standard-issue weapons. Can be accessed only by the Vehicle Crewmen." icon_state = "guns" req_access = list(ACCESS_MARINE_CREWMAN) - vendor_role = list(JOB_CREWMAN) + vendor_role = list(JOB_TANK_CREW) vend_flags = VEND_CLUTTER_PROTECTION | VEND_LIMITED_INVENTORY | VEND_TO_HAND listed_products = list( @@ -392,7 +344,7 @@ GLOBAL_LIST_INIT(cm_vending_clothing_vehicle_crew, list( name = "\improper ColMarTech Vehicle Crewman Equipment Rack" desc = "An automated rack hooked up to a colossal storage of Vehicle Crewmen standard-issue equipment." req_access = list(ACCESS_MARINE_CREWMAN) - vendor_role = list(JOB_CREWMAN) + vendor_role = list(JOB_TANK_CREW) /obj/structure/machinery/cm_vending/clothing/vehicle_crew/get_listed_products(mob/user) return GLOB.cm_vending_clothing_vehicle_crew diff --git a/code/game/machinery/vending/vendor_types/dress.dm b/code/game/machinery/vending/vendor_types/dress.dm index d49361d912a0..6a4e76cda49c 100644 --- a/code/game/machinery/vending/vendor_types/dress.dm +++ b/code/game/machinery/vending/vendor_types/dress.dm @@ -45,11 +45,11 @@ return var/mob/living/carbon/human/H = user - var/obj/item/card/id/id_card = H.wear_id + var/obj/item/card/id/id_card = H.get_idcard() var/list/role_specific_uniforms var/list/vended_items var/list/display_list = list() - if(istype(id_card)) + if(id_card) role_specific_uniforms = id_card.uniform_sets vended_items = id_card.vended_items for(var/category_type in GLOB.uniform_categories) @@ -83,9 +83,9 @@ /obj/structure/machinery/cm_vending/clothing/dress/ui_data(mob/user) var/mob/living/carbon/human/H = user - var/obj/item/card/id/id_card = H.wear_id + var/obj/item/card/id/id_card = H.get_idcard() var/list/vended_items - if(istype(id_card)) + if(id_card) vended_items = id_card.vended_items var/list/data = list() @@ -120,9 +120,9 @@ var/item_path = L[3] - var/obj/item/card/id/id_card = H.wear_id + var/obj/item/card/id/id_card = H.get_idcard() - if(!istype(id_card)) //not wearing an ID + if(!id_card) //not wearing an ID to_chat(H, SPAN_WARNING("Access denied. No ID card detected")) return @@ -197,11 +197,11 @@ if(findtext("[path]", item)) matches += path - if(matches.len==0) + if(length(matches)==0) return var/obj/item/chosen - if(matches.len==1) + if(length(matches)==1) chosen = matches[1] else //If we have multiple options, let them select which one they meant diff --git a/code/game/machinery/vending/vendor_types/engineering.dm b/code/game/machinery/vending/vendor_types/engineering.dm index 2275656d7a30..6da719e883ba 100644 --- a/code/game/machinery/vending/vendor_types/engineering.dm +++ b/code/game/machinery/vending/vendor_types/engineering.dm @@ -19,28 +19,28 @@ /obj/structure/machinery/cm_vending/sorted/tech/tool_storage/populate_product_list(scale) listed_products = list( list("EQUIPMENT", -1, null, null), - list("Combat Flashlight", round(scale * 2), /obj/item/device/flashlight/combat, VENDOR_ITEM_REGULAR), - list("Hardhat", round(scale * 2), /obj/item/clothing/head/hardhat, VENDOR_ITEM_REGULAR), - list("Insulated Gloves", round(scale * 2), /obj/item/clothing/gloves/yellow, VENDOR_ITEM_REGULAR), - list("Utility Tool Belt", round(scale * 2), /obj/item/storage/belt/utility, VENDOR_ITEM_REGULAR), - list("Welding Goggles", round(scale * 2), /obj/item/clothing/glasses/welding, VENDOR_ITEM_REGULAR), - list("Welding Helmet", round(scale * 2), /obj/item/clothing/head/welding, VENDOR_ITEM_REGULAR), - list("Engineer Kit", round(scale * 2), /obj/item/storage/toolkit/empty, VENDOR_ITEM_REGULAR), + list("Combat Flashlight", floor(scale * 2), /obj/item/device/flashlight/combat, VENDOR_ITEM_REGULAR), + list("Hardhat", floor(scale * 2), /obj/item/clothing/head/hardhat, VENDOR_ITEM_REGULAR), + list("Insulated Gloves", floor(scale * 2), /obj/item/clothing/gloves/yellow, VENDOR_ITEM_REGULAR), + list("Utility Tool Belt", floor(scale * 2), /obj/item/storage/belt/utility, VENDOR_ITEM_REGULAR), + list("Welding Goggles", floor(scale * 2), /obj/item/clothing/glasses/welding, VENDOR_ITEM_REGULAR), + list("Welding Helmet", floor(scale * 2), /obj/item/clothing/head/welding, VENDOR_ITEM_REGULAR), + list("Engineer Kit", floor(scale * 2), /obj/item/storage/toolkit/empty, VENDOR_ITEM_REGULAR), list("SCANNERS", -1, null, null), - list("Atmos Scanner", round(scale * 2), /obj/item/device/analyzer, VENDOR_ITEM_REGULAR), - list("Demolitions Scanner", round(scale * 1), /obj/item/device/demo_scanner, VENDOR_ITEM_REGULAR), - list("Meson Scanner", round(scale * 2), /obj/item/clothing/glasses/meson, VENDOR_ITEM_REGULAR), - list("Reagent Scanner", round(scale * 2), /obj/item/device/reagent_scanner, VENDOR_ITEM_REGULAR), - list("T-Ray Scanner", round(scale * 2), /obj/item/device/t_scanner, VENDOR_ITEM_REGULAR), + list("Atmos Scanner", floor(scale * 2), /obj/item/device/analyzer, VENDOR_ITEM_REGULAR), + list("Demolitions Scanner", floor(scale * 1), /obj/item/device/demo_scanner, VENDOR_ITEM_REGULAR), + list("Meson Scanner", floor(scale * 2), /obj/item/clothing/glasses/meson, VENDOR_ITEM_REGULAR), + list("Reagent Scanner", floor(scale * 2), /obj/item/device/reagent_scanner, VENDOR_ITEM_REGULAR), + list("T-Ray Scanner", floor(scale * 2), /obj/item/device/t_scanner, VENDOR_ITEM_REGULAR), list("TOOLS", -1, null, null), - list("Blowtorch", round(scale * 4), /obj/item/tool/weldingtool, VENDOR_ITEM_REGULAR), - list("Crowbar", round(scale * 4), /obj/item/tool/crowbar, VENDOR_ITEM_REGULAR), - list("ME3 Hand Welder", round(scale * 2), /obj/item/tool/weldingtool/simple, VENDOR_ITEM_REGULAR), - list("Screwdriver", round(scale * 4), /obj/item/tool/screwdriver, VENDOR_ITEM_REGULAR), - list("Wirecutters", round(scale * 4), /obj/item/tool/wirecutters, VENDOR_ITEM_REGULAR), - list("Wrench", round(scale * 4), /obj/item/tool/wrench, VENDOR_ITEM_REGULAR) + list("Blowtorch", floor(scale * 4), /obj/item/tool/weldingtool, VENDOR_ITEM_REGULAR), + list("Crowbar", floor(scale * 4), /obj/item/tool/crowbar, VENDOR_ITEM_REGULAR), + list("ME3 Hand Welder", floor(scale * 2), /obj/item/tool/weldingtool/simple, VENDOR_ITEM_REGULAR), + list("Screwdriver", floor(scale * 4), /obj/item/tool/screwdriver, VENDOR_ITEM_REGULAR), + list("Wirecutters", floor(scale * 4), /obj/item/tool/wirecutters, VENDOR_ITEM_REGULAR), + list("Wrench", floor(scale * 4), /obj/item/tool/wrench, VENDOR_ITEM_REGULAR) ) /obj/structure/machinery/cm_vending/sorted/tech/comtech_tools @@ -52,19 +52,19 @@ /obj/structure/machinery/cm_vending/sorted/tech/comtech_tools/populate_product_list(scale) listed_products = list( list("EQUIPMENT", -1, null, null), - list("Utility Tool Belt", round(scale * 4), /obj/item/storage/belt/utility, VENDOR_ITEM_REGULAR), - list("Cable Coil", round(scale * 4), /obj/item/stack/cable_coil/random, VENDOR_ITEM_REGULAR), - list("Welding Goggles", round(scale * 2), /obj/item/clothing/glasses/welding, VENDOR_ITEM_REGULAR), - list("Engineer Kit", round(scale * 2), /obj/item/storage/toolkit/empty, VENDOR_ITEM_REGULAR), + list("Utility Tool Belt", floor(scale * 4), /obj/item/storage/belt/utility, VENDOR_ITEM_REGULAR), + list("Cable Coil", floor(scale * 4), /obj/item/stack/cable_coil/random, VENDOR_ITEM_REGULAR), + list("Welding Goggles", floor(scale * 2), /obj/item/clothing/glasses/welding, VENDOR_ITEM_REGULAR), + list("Engineer Kit", floor(scale * 2), /obj/item/storage/toolkit/empty, VENDOR_ITEM_REGULAR), list("TOOLS", -1, null, null), - list("Blowtorch", round(scale * 4), /obj/item/tool/weldingtool, VENDOR_ITEM_REGULAR), - list("Crowbar", round(scale * 4), /obj/item/tool/crowbar, VENDOR_ITEM_REGULAR), - list("Screwdriver", round(scale * 4), /obj/item/tool/screwdriver, VENDOR_ITEM_REGULAR), - list("Wirecutters", round(scale * 4), /obj/item/tool/wirecutters, VENDOR_ITEM_REGULAR), - list("Wrench", round(scale * 4), /obj/item/tool/wrench, VENDOR_ITEM_REGULAR), - list("Multitool", round(scale * 4), /obj/item/device/multitool, VENDOR_ITEM_REGULAR), - list("ME3 Hand Welder", round(scale * 2), /obj/item/tool/weldingtool/simple, VENDOR_ITEM_REGULAR), + list("Blowtorch", floor(scale * 4), /obj/item/tool/weldingtool, VENDOR_ITEM_REGULAR), + list("Crowbar", floor(scale * 4), /obj/item/tool/crowbar, VENDOR_ITEM_REGULAR), + list("Screwdriver", floor(scale * 4), /obj/item/tool/screwdriver, VENDOR_ITEM_REGULAR), + list("Wirecutters", floor(scale * 4), /obj/item/tool/wirecutters, VENDOR_ITEM_REGULAR), + list("Wrench", floor(scale * 4), /obj/item/tool/wrench, VENDOR_ITEM_REGULAR), + list("Multitool", floor(scale * 4), /obj/item/device/multitool, VENDOR_ITEM_REGULAR), + list("ME3 Hand Welder", floor(scale * 2), /obj/item/tool/weldingtool/simple, VENDOR_ITEM_REGULAR), list("UTILITY", -1, null, null), list("Sentry Gun Network Laptop", 4, /obj/item/device/sentry_computer, VENDOR_ITEM_REGULAR), @@ -90,6 +90,12 @@ list("Research Data Terminal", 2, /obj/item/circuitboard/computer/research_terminal, VENDOR_ITEM_REGULAR), list("P.A.C.M.A.N Generator", 1, /obj/item/circuitboard/machine/pacman, VENDOR_ITEM_REGULAR), list("Auxiliar Power Storage Unit", 2, /obj/item/circuitboard/machine/ghettosmes, VENDOR_ITEM_REGULAR), + list("Air Alarm Electronics", 2, /obj/item/circuitboard/airalarm, VENDOR_ITEM_REGULAR), + list("Security Camera Monitor", 2, /obj/item/circuitboard/computer/cameras, VENDOR_ITEM_REGULAR), + list("Television Set", 4, /obj/item/circuitboard/computer/cameras/tv, VENDOR_ITEM_REGULAR), + list("Station Alerts", 2, /obj/item/circuitboard/computer/stationalert, VENDOR_ITEM_REGULAR), + list("Arcade", 2, /obj/item/circuitboard/computer/arcade, VENDOR_ITEM_REGULAR), + list("Atmospheric Monitor", 2, /obj/item/circuitboard/computer/air_management, VENDOR_ITEM_REGULAR), ) /obj/structure/machinery/cm_vending/sorted/tech/tool_storage/antag @@ -104,16 +110,16 @@ /obj/structure/machinery/cm_vending/sorted/tech/electronics_storage/populate_product_list(scale) listed_products = list( list("TOOLS", -1, null, null), - list("Cable Coil", round(scale * 3), /obj/item/stack/cable_coil/random, VENDOR_ITEM_REGULAR), - list("Multitool", round(scale * 2), /obj/item/device/multitool, VENDOR_ITEM_REGULAR), + list("Cable Coil", floor(scale * 3), /obj/item/stack/cable_coil/random, VENDOR_ITEM_REGULAR), + list("Multitool", floor(scale * 2), /obj/item/device/multitool, VENDOR_ITEM_REGULAR), list("CIRCUITBOARDS", -1, null, null), - list("Airlock Circuit Board", round(scale * 4), /obj/item/circuitboard/airlock, VENDOR_ITEM_REGULAR), - list("APC Circuit Board", round(scale * 4), /obj/item/circuitboard/apc, VENDOR_ITEM_REGULAR), + list("Airlock Circuit Board", floor(scale * 4), /obj/item/circuitboard/airlock, VENDOR_ITEM_REGULAR), + list("APC Circuit Board", floor(scale * 4), /obj/item/circuitboard/apc, VENDOR_ITEM_REGULAR), list("BATTERIES", -1, null, null), - list("High-Capacity Power Cell", round(scale * 3), /obj/item/cell/high, VENDOR_ITEM_REGULAR), - list("Low-Capacity Power Cell", round(scale * 7), /obj/item/cell, VENDOR_ITEM_REGULAR), + list("High-Capacity Power Cell", floor(scale * 3), /obj/item/cell/high, VENDOR_ITEM_REGULAR), + list("Low-Capacity Power Cell", floor(scale * 7), /obj/item/cell, VENDOR_ITEM_REGULAR), ) /obj/structure/machinery/cm_vending/sorted/tech/electronics_storage/antag @@ -128,22 +134,22 @@ /obj/structure/machinery/cm_vending/sorted/tech/comp_storage/populate_product_list(scale) listed_products = list( list("ASSEMBLY COMPONENTS", -1, null, null), - list("Igniter", round(scale * 8), /obj/item/device/assembly/igniter, VENDOR_ITEM_REGULAR), - list("Timer", round(scale * 4), /obj/item/device/assembly/timer, VENDOR_ITEM_REGULAR), - list("Proximity Sensor", round(scale * 4), /obj/item/device/assembly/prox_sensor, VENDOR_ITEM_REGULAR), - list("Signaller", round(scale * 4), /obj/item/device/assembly/signaller, VENDOR_ITEM_REGULAR), + list("Igniter", floor(scale * 8), /obj/item/device/assembly/igniter, VENDOR_ITEM_REGULAR), + list("Timer", floor(scale * 4), /obj/item/device/assembly/timer, VENDOR_ITEM_REGULAR), + list("Proximity Sensor", floor(scale * 4), /obj/item/device/assembly/prox_sensor, VENDOR_ITEM_REGULAR), + list("Signaller", floor(scale * 4), /obj/item/device/assembly/signaller, VENDOR_ITEM_REGULAR), list("CONTAINERS", -1, null, null), - list("Bucket", round(scale * 6), /obj/item/reagent_container/glass/bucket, VENDOR_ITEM_REGULAR), - list("Mop Bucket", round(scale * 2), /obj/item/reagent_container/glass/bucket/mopbucket, VENDOR_ITEM_REGULAR), + list("Bucket", floor(scale * 6), /obj/item/reagent_container/glass/bucket, VENDOR_ITEM_REGULAR), + list("Mop Bucket", floor(scale * 2), /obj/item/reagent_container/glass/bucket/mopbucket, VENDOR_ITEM_REGULAR), list("STOCK PARTS", -1, null, null), - list("Console Screen", round(scale * 4), /obj/item/stock_parts/console_screen, VENDOR_ITEM_REGULAR), - list("Matter Bin", round(scale * 4), /obj/item/stock_parts/matter_bin, VENDOR_ITEM_REGULAR), - list("Micro Laser", round(scale * 4), /obj/item/stock_parts/micro_laser , VENDOR_ITEM_REGULAR), - list("Micro Manipulator", round(scale * 4), /obj/item/stock_parts/manipulator, VENDOR_ITEM_REGULAR), - list("Scanning Module", round(scale * 4), /obj/item/stock_parts/scanning_module, VENDOR_ITEM_REGULAR), - list("Capacitor", round(scale * 3), /obj/item/stock_parts/capacitor, VENDOR_ITEM_REGULAR) + list("Console Screen", floor(scale * 4), /obj/item/stock_parts/console_screen, VENDOR_ITEM_REGULAR), + list("Matter Bin", floor(scale * 4), /obj/item/stock_parts/matter_bin, VENDOR_ITEM_REGULAR), + list("Micro Laser", floor(scale * 4), /obj/item/stock_parts/micro_laser , VENDOR_ITEM_REGULAR), + list("Micro Manipulator", floor(scale * 4), /obj/item/stock_parts/manipulator, VENDOR_ITEM_REGULAR), + list("Scanning Module", floor(scale * 4), /obj/item/stock_parts/scanning_module, VENDOR_ITEM_REGULAR), + list("Capacitor", floor(scale * 3), /obj/item/stock_parts/capacitor, VENDOR_ITEM_REGULAR) ) /obj/structure/machinery/cm_vending/sorted/tech/comp_storage/antag @@ -166,11 +172,11 @@ list("Scientist's Jumpsuit", 2, /obj/item/clothing/under/rank/scientist, VENDOR_ITEM_REGULAR), list("ASSEMBLY COMPONENTS", -1, null, null), - list("Igniter", round(scale * 8), /obj/item/device/assembly/igniter, VENDOR_ITEM_REGULAR), - list("Proximity Sensor", round(scale * 4), /obj/item/device/assembly/prox_sensor, VENDOR_ITEM_REGULAR), - list("Signaller", round(scale * 4), /obj/item/device/assembly/signaller, VENDOR_ITEM_REGULAR), - list("Tank Transfer Valve", round(scale * 4), /obj/item/device/transfer_valve, VENDOR_ITEM_REGULAR), - list("Timer", round(scale * 4), /obj/item/device/assembly/timer, VENDOR_ITEM_REGULAR), + list("Igniter", floor(scale * 8), /obj/item/device/assembly/igniter, VENDOR_ITEM_REGULAR), + list("Proximity Sensor", floor(scale * 4), /obj/item/device/assembly/prox_sensor, VENDOR_ITEM_REGULAR), + list("Signaller", floor(scale * 4), /obj/item/device/assembly/signaller, VENDOR_ITEM_REGULAR), + list("Tank Transfer Valve", floor(scale * 4), /obj/item/device/transfer_valve, VENDOR_ITEM_REGULAR), + list("Timer", floor(scale * 4), /obj/item/device/assembly/timer, VENDOR_ITEM_REGULAR), ) /obj/structure/machinery/cm_vending/sorted/tech/robotics diff --git a/code/game/machinery/vending/vendor_types/food.dm b/code/game/machinery/vending/vendor_types/food.dm index 51749ab2a010..62ed5124727e 100644 --- a/code/game/machinery/vending/vendor_types/food.dm +++ b/code/game/machinery/vending/vendor_types/food.dm @@ -25,6 +25,27 @@ list("W-Y Flask", 5, /obj/item/reagent_container/food/drinks/flask/weylandyutani, VENDOR_ITEM_REGULAR) ) +/obj/structure/machinery/cm_vending/sorted/marine_food/tutorial + hackable = FALSE + wrenchable = FALSE + req_access = list(ACCESS_TUTORIAL_LOCKED) + +/obj/structure/machinery/cm_vending/sorted/marine_food/tutorial/populate_product_list(scale) + listed_products = list( + list("PREPARED MEALS", -1, null, null), + list("USCM Prepared Meal (Chicken)", 0, /obj/item/reagent_container/food/snacks/mre_pack/meal5, VENDOR_ITEM_REGULAR), + list("USCM Prepared Meal (Cornbread)", 0, /obj/item/reagent_container/food/snacks/mre_pack/meal1, VENDOR_ITEM_REGULAR), + list("USCM Prepared Meal (Pasta)", 0, /obj/item/reagent_container/food/snacks/mre_pack/meal3, VENDOR_ITEM_REGULAR), + list("USCM Prepared Meal (Pizza)", 0, /obj/item/reagent_container/food/snacks/mre_pack/meal4, VENDOR_ITEM_REGULAR), + list("USCM Prepared Meal (Pork)", 0, /obj/item/reagent_container/food/snacks/mre_pack/meal2, VENDOR_ITEM_REGULAR), + list("USCM Prepared Meal (Tofu)", 0, /obj/item/reagent_container/food/snacks/mre_pack/meal6, VENDOR_ITEM_REGULAR), + list("USCM Protein Bar", 1, /obj/item/reagent_container/food/snacks/protein_pack, VENDOR_ITEM_RECOMMENDED), + list("FLASKS", -1, null, null), + list("Canteen", 0, /obj/item/reagent_container/food/drinks/flask/canteen, VENDOR_ITEM_REGULAR), + list("Metal Flask", 0, /obj/item/reagent_container/food/drinks/flask, VENDOR_ITEM_REGULAR), + list("USCM Flask", 0, /obj/item/reagent_container/food/drinks/flask/marine, VENDOR_ITEM_REGULAR), + list("W-Y Flask", 0, /obj/item/reagent_container/food/drinks/flask/weylandyutani, VENDOR_ITEM_REGULAR) + ) //------------BOOZE-O-MAT VENDOR--------------- /obj/structure/machinery/cm_vending/sorted/boozeomat @@ -38,8 +59,8 @@ unslashable = FALSE wrenchable = TRUE -/obj/structure/machinery/cm_vending/sorted/boozeomat/get_listed_products(mob/user) - return list( +/obj/structure/machinery/cm_vending/sorted/boozeomat/populate_product_list(scale) + listed_products = list( list("ALCOHOL", -1, null, null), list("Ale", 6, /obj/item/reagent_container/food/drinks/cans/ale, VENDOR_ITEM_REGULAR), list("Beer", 6, /obj/item/reagent_container/food/drinks/cans/beer, VENDOR_ITEM_REGULAR), @@ -97,8 +118,8 @@ unslashable = FALSE wrenchable = TRUE -/obj/structure/machinery/cm_vending/sorted/boozeomat/chess/get_listed_products(mob/user) - return list( +/obj/structure/machinery/cm_vending/sorted/boozeomat/chess/populate_product_list(scale) + listed_products = list( list("White Pieces", -1, null, null), list("Pawn", 2, /obj/item/reagent_container/food/drinks/bottle/vodka/chess/w_pawn, VENDOR_ITEM_REGULAR), list("Bishop", 2, /obj/item/reagent_container/food/drinks/bottle/vodka/chess/w_bishop, VENDOR_ITEM_REGULAR), diff --git a/code/game/machinery/vending/vendor_types/intelligence_officer.dm b/code/game/machinery/vending/vendor_types/intelligence_officer.dm index 93d31fe13253..73d54cbbffca 100644 --- a/code/game/machinery/vending/vendor_types/intelligence_officer.dm +++ b/code/game/machinery/vending/vendor_types/intelligence_officer.dm @@ -18,9 +18,15 @@ GLOBAL_LIST_INIT(cm_vending_gear_intelligence_officer, list( list("SIDEARM AMMUNITION", 0, null, null, null), list("M44 Heavy Speed Loader (.44)", 10, /obj/item/ammo_magazine/revolver/heavy, null, VENDOR_ITEM_REGULAR), + list("M44 Marksman Speed Loader (.44)", 10, /obj/item/ammo_magazine/revolver/marksman, null, VENDOR_ITEM_REGULAR), list("M4A3 HP Magazine", 5, /obj/item/ammo_magazine/pistol/hp, null, VENDOR_ITEM_REGULAR), list("M4A3 AP Magazine", 5, /obj/item/ammo_magazine/pistol/ap, null, VENDOR_ITEM_REGULAR), list("VP78 Magazine", 5, /obj/item/ammo_magazine/pistol/vp78, null, VENDOR_ITEM_REGULAR), + list("SU-6 Smartpistol Magazine (.45)", 10, /obj/item/ammo_magazine/pistol/smart, null, VENDOR_ITEM_REGULAR), + + list("RESTRICTED FIREARMS", 0, null, null, null), + list("VP78 Pistol", 15, /obj/item/storage/box/guncase/vp78, null, VENDOR_ITEM_REGULAR), + list("SU-6 Smart Pistol", 15, /obj/item/storage/box/guncase/smartpistol, null, VENDOR_ITEM_REGULAR), list("POUCHES", 0, null, null, null), list("Large Magazine Pouch", 10, /obj/item/storage/pouch/magazine/large, null, VENDOR_ITEM_REGULAR), @@ -36,6 +42,8 @@ GLOBAL_LIST_INIT(cm_vending_gear_intelligence_officer, list( list("BINOCULARS", 0, null, null, null), list("Binoculars", 5, /obj/item/device/binoculars, null, VENDOR_ITEM_REGULAR), + list("Range Finder", 10, /obj/item/device/binoculars/range, null, VENDOR_ITEM_REGULAR), + list("Laser Designator", 15, /obj/item/device/binoculars/range/designator, null, VENDOR_ITEM_REGULAR), list("HELMET OPTICS", 0, null, null, null), list("Medical Helmet Optic", 5, /obj/item/device/helmet_visor/medical, null, VENDOR_ITEM_REGULAR), @@ -44,6 +52,9 @@ GLOBAL_LIST_INIT(cm_vending_gear_intelligence_officer, list( list("RADIO KEYS", 0, null, null, null), list("Intel Radio Encryption Key", 5, /obj/item/device/encryptionkey/intel, null, VENDOR_ITEM_REGULAR), + + list("SPARE INTEL KIT", 0, null, null, null), + list("Field Intelligence Support Kit (For untrained personnel)", 20, /obj/item/storage/box/kit/mini_intel, null, VENDOR_ITEM_REGULAR), )) /obj/structure/machinery/cm_vending/gear/intelligence_officer @@ -65,11 +76,13 @@ GLOBAL_LIST_INIT(cm_vending_clothing_intelligence_officer, list( list("MRE", 0, /obj/item/storage/box/MRE, MARINE_CAN_BUY_MRE, VENDOR_ITEM_MANDATORY), list("ARMOR (CHOOSE 1)", 0, null, null, null), - list("XM4 Pattern Intel Armor", 0, /obj/item/clothing/suit/storage/marine/rto/intel, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_MANDATORY), + list("XM4 Pattern Intel Armor", 0, /obj/item/clothing/suit/storage/marine/medium/rto/intel, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_MANDATORY), + list("M3-L Pattern Light Armor", 0, /obj/item/clothing/suit/storage/marine/light, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_MANDATORY), list("Service Jacket", 0, /obj/item/clothing/suit/storage/jacket/marine/service, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_MANDATORY), list("BACKPACK (CHOOSE 1)", 0, null, null, null), list("Expedition Pack", 0, /obj/item/storage/backpack/marine/satchel/intel, MARINE_CAN_BUY_BACKPACK, VENDOR_ITEM_RECOMMENDED), + list("Expedition Chestrig", 0, /obj/item/storage/backpack/marine/satchel/intel/chestrig, MARINE_CAN_BUY_BACKPACK, VENDOR_ITEM_RECOMMENDED), list("Radio Telephone Pack", 0, /obj/item/storage/backpack/marine/satchel/rto/io, MARINE_CAN_BUY_BACKPACK, VENDOR_ITEM_REGULAR), list("HELMET (CHOOSE 1)", 0, null, null, null), diff --git a/code/game/machinery/vending/vendor_types/medical.dm b/code/game/machinery/vending/vendor_types/medical.dm index 7073dc383dcd..ab1df0b2abb7 100644 --- a/code/game/machinery/vending/vendor_types/medical.dm +++ b/code/game/machinery/vending/vendor_types/medical.dm @@ -1,10 +1,223 @@ -//------------SORTED MEDICAL VENDORS--------------- +//------------SUPPLY LINK FOR MEDICAL VENDORS------------ + +/obj/structure/medical_supply_link + name = "medilink supply port" + desc = "A complex network of pipes and machinery, linking to large storage systems below the deck. Medical vendors linked to this port will be able to infinitely restock supplies." + icon = 'icons/effects/warning_stripes.dmi' + icon_state = "medlink_unclamped" + var/base_state = "medlink" + plane = FLOOR_PLANE + layer = ABOVE_TURF_LAYER //It's the floor, man + + anchored = TRUE + density = FALSE + unslashable = TRUE + unacidable = TRUE + +/obj/structure/medical_supply_link/ex_act(severity, direction) + return FALSE + +/obj/structure/medical_supply_link/Initialize() + . = ..() + RegisterSignal(src, COMSIG_STRUCTURE_WRENCHED, PROC_REF(do_clamp_animation)) + RegisterSignal(src, COMSIG_STRUCTURE_UNWRENCHED, PROC_REF(do_unclamp_animation)) + update_icon() + +/// Performs the clamping animation when a structure is anchored in our loc +/obj/structure/medical_supply_link/proc/do_clamp_animation() + SIGNAL_HANDLER + flick("[base_state]_clamping", src) + addtimer(CALLBACK(src, PROC_REF(update_icon), 2.6 SECONDS)) + update_icon() + +/// Performs the unclamping animation when a structure is unanchored in our loc +/obj/structure/medical_supply_link/proc/do_unclamp_animation() + SIGNAL_HANDLER + flick("[base_state]_unclamping", src) + addtimer(CALLBACK(src, PROC_REF(update_icon), 2.6 SECONDS)) + update_icon() + +/obj/structure/medical_supply_link/update_icon() + var/obj/structure/machinery/cm_vending/sorted/medical/vendor = locate() in loc + if(vendor && vendor.anchored) + icon_state = "[base_state]_clamped" + else + icon_state = "[base_state]_unclamped" + +/obj/structure/medical_supply_link/green + icon_state = "medlink_green_unclamped" + base_state = "medlink_green" + + +//------------RESTOCK CARTS FOR MEDICAL VENDORS------------ + +/obj/structure/restock_cart + name = "restock cart" + desc = "A rather heavy cart filled with various supplies to restock a vendor with." + icon = 'icons/obj/objects.dmi' + icon_state = "tank_normal" // Temporary + var/overlay_color = rgb(252, 186, 3) // Temporary + + density = TRUE + anchored = FALSE + drag_delay = 2 + health = 100 // Can be destroyed in 2-4 slashes. + unslashable = FALSE + + ///The quantity of things this can restock + var/supplies_remaining = 20 + ///The max quantity of things this can restock + var/supplies_max = 20 + ///The descriptor for the kind of things being restocked + var/supply_descriptor = "supplies" + ///The sound to play when attacked + var/attacked_sound = 'sound/effects/metalhit.ogg' + ///The sound to play when destroyed + var/destroyed_sound = 'sound/effects/metalhit.ogg' + ///Random loot to spawn if destroyed as assoc list of type_path = max_quantity + var/list/destroyed_loot = list( + /obj/item/stack/sheet/metal = 2 + ) + +/obj/structure/restock_cart/medical + name = "\improper Wey-Yu restock cart" + desc = "A rather heavy cart filled with various supplies to restock a vendor with. Provided by Wey-Yu Pharmaceuticals Division(TM)." + icon = 'icons/obj/objects.dmi' + icon_state = "tank_normal" // Temporary + + supplies_remaining = 20 + supplies_max = 20 + supply_descriptor = "sets of medical supplies" + destroyed_loot = list( + /obj/item/stack/medical/advanced/ointment = 3, + /obj/item/stack/medical/advanced/bruise_pack = 2, + /obj/item/stack/medical/ointment = 3, + /obj/item/stack/medical/bruise_pack = 2, + /obj/item/stack/medical/splint = 2, + /obj/item/device/healthanalyzer = 1, + ) + +/obj/structure/restock_cart/medical/reagent + name = "\improper Wey-Yu reagent restock cart" + desc = "A rather heavy cart filled with various reagents to restock a vendor with. Provided by Wey-Yu Pharmaceuticals Division(TM)." + icon_state = "tank_normal" // Temporary + overlay_color = rgb(252, 115, 3) // Temporary + + supplies_remaining = 1200 + supplies_max = 1200 + supply_descriptor = "units of medical reagents" + destroyed_sound = 'sound/effects/slosh.ogg' + destroyed_loot = list() + +/obj/structure/restock_cart/Initialize(mapload, ...) + . = ..() + supplies_remaining = min(supplies_remaining, supplies_max) + update_icon() + +/obj/structure/restock_cart/update_icon() + . = ..() + var/image/overlay_image = image(icon, icon_state = "tn_color") // Temporary + overlay_image.color = overlay_color + overlays += overlay_image + +/obj/structure/restock_cart/get_examine_text(mob/user) + . = ..() + if(get_dist(user, src) > 2 && user != loc) + return + . += SPAN_NOTICE("It contains:") + if(supplies_remaining) + . += SPAN_NOTICE(" [supplies_remaining] [supply_descriptor].") + else + . += SPAN_NOTICE(" Nothing.") + +/obj/structure/restock_cart/deconstruct(disassembled) + if(!disassembled) + playsound(loc, destroyed_sound, 35, 1) + visible_message(SPAN_NOTICE("[src] falls apart as its contents spill everywhere!")) + + // Assumption: supplies_max is > 0 + if(supplies_remaining > 0 && length(destroyed_loot)) + var/spawned_any = FALSE + var/probability = (supplies_remaining / supplies_max) * 100 + for(var/type_path in destroyed_loot) + if(prob(probability)) + for(var/amount in 1 to rand(1, destroyed_loot[type_path])) + new type_path(loc) + spawned_any = TRUE + if(!spawned_any) // It wasn't empty so atleast drop something + var/type_path = pick(destroyed_loot) + for(var/amount in 1 to rand(1, destroyed_loot[type_path])) + new type_path(loc) + + return ..() + +/obj/structure/restock_cart/attackby(obj/item/W, mob/user) + if(HAS_TRAIT(W, TRAIT_TOOL_WRENCH)) + if(user.action_busy) + return + playsound(src, 'sound/items/Ratchet.ogg', 25, 1) + user.visible_message(SPAN_NOTICE("[user] starts to deconstruct [src]."), \ + SPAN_NOTICE("You start deconstructing [src].")) + if(!do_after(user, 5 SECONDS, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD, src)) + return + user.visible_message(SPAN_NOTICE("[user] deconstructs [src]."), \ + SPAN_NOTICE("You deconstruct [src].")) + playsound(src, 'sound/items/Crowbar.ogg', 25, 1) + new /obj/item/stack/sheet/metal(loc) + if(supplies_remaining) + msg_admin_niche("[key_name(user)] deconstructed [src] with [supplies_remaining] [supply_descriptor] remaining in [get_area(src)] [ADMIN_JMP(loc)]", loc.x, loc.y, loc.z) + deconstruct(TRUE) + return + + return ..() + +/obj/structure/restock_cart/proc/healthcheck(mob/user) + if(health <= 0) + if(supplies_remaining && ishuman(user)) + msg_admin_niche("[key_name(user)] destroyed [src] with [supplies_remaining] [supply_descriptor] remaining in [get_area(src)] [ADMIN_JMP(loc)]", loc.x, loc.y, loc.z) + deconstruct(FALSE) + +/obj/structure/restock_cart/bullet_act(obj/projectile/Proj) + health -= Proj.damage + playsound(src, attacked_sound, 25, 1) + healthcheck(Proj.firer) + return TRUE + +/obj/structure/restock_cart/attack_alien(mob/living/carbon/xenomorph/user) + if(unslashable) + return XENO_NO_DELAY_ACTION + user.animation_attack_on(src) + health -= (rand(user.melee_damage_lower, user.melee_damage_upper)) + playsound(src, attacked_sound, 25, 1) + user.visible_message(SPAN_DANGER("[user] slashes [src]!"), \ + SPAN_DANGER("You slash [src]!"), null, 5, CHAT_TYPE_XENO_COMBAT) + healthcheck(user) + return XENO_ATTACK_ACTION + +/obj/structure/restock_cart/ex_act(severity) + if(indestructible) + return + + switch(severity) + if(0 to EXPLOSION_THRESHOLD_LOW) + if(prob(5)) + deconstruct(FALSE) + return + if(EXPLOSION_THRESHOLD_LOW to EXPLOSION_THRESHOLD_MEDIUM) + if(prob(50)) + deconstruct(FALSE) + return + if(EXPLOSION_THRESHOLD_MEDIUM to INFINITY) + deconstruct(FALSE) + return + +//------------SORTED MEDICAL VENDORS------------ /obj/structure/machinery/cm_vending/sorted/medical name = "\improper Wey-Med Plus" - desc = "Medical Pharmaceutical dispenser. Provided by Wey-Yu Pharmaceuticals Division(TM)." + desc = "Medical pharmaceutical dispenser. Provided by Wey-Yu Pharmaceuticals Division(TM)." icon_state = "med" - req_access = list(ACCESS_MARINE_MEDBAY, ACCESS_MARINE_CHEMISTRY) + req_access = list(ACCESS_MARINE_MEDBAY) unacidable = TRUE unslashable = FALSE @@ -14,9 +227,18 @@ vendor_theme = VENDOR_THEME_COMPANY vend_delay = 0.5 SECONDS - var/datum/health_scan/last_health_display + /// Whether the vendor can use a medlink to be able to resupply automatically + var/allow_supply_link_restock = TRUE + /// Whether this vendor supports health scanning the user via mouse drop var/healthscan = TRUE + var/datum/health_scan/last_health_display + + /// The starting volume of the chem refill tank + var/chem_refill_volume = 600 + /// The maximum volume of the chem refill tank + var/chem_refill_volume_max = 600 + /// A list of item types that allow reagent refilling var/list/chem_refill = list( /obj/item/reagent_container/hypospray/autoinjector/bicaridine, /obj/item/reagent_container/hypospray/autoinjector/dexalinp, @@ -26,6 +248,7 @@ /obj/item/reagent_container/hypospray/autoinjector/oxycodone, /obj/item/reagent_container/hypospray/autoinjector/tramadol, /obj/item/reagent_container/hypospray/autoinjector/tricord, + /obj/item/reagent_container/hypospray/autoinjector/skillless, /obj/item/reagent_container/hypospray/autoinjector/skillless/tramadol, @@ -42,14 +265,7 @@ /obj/item/reagent_container/glass/bottle/oxycodone, /obj/item/reagent_container/glass/bottle/peridaxon, /obj/item/reagent_container/glass/bottle/tramadol, - ) - var/list/stack_refill = list( - /obj/item/stack/medical/advanced/ointment, - /obj/item/stack/medical/advanced/bruise_pack, - /obj/item/stack/medical/ointment, - /obj/item/stack/medical/bruise_pack, - /obj/item/stack/medical/splint - ) + ) /obj/structure/machinery/cm_vending/sorted/medical/Destroy() QDEL_NULL(last_health_display) @@ -58,10 +274,122 @@ /obj/structure/machinery/cm_vending/sorted/medical/get_examine_text(mob/living/carbon/human/user) . = ..() if(healthscan) - . += SPAN_NOTICE("The [src.name] offers assisted medical scan, for ease of usage with minimal training. Present the target in front of the scanner to scan.") + . += SPAN_NOTICE("[src] offers assisted medical scans, for ease of use with minimal training. Present the target in front of the scanner to scan.") + +/obj/structure/machinery/cm_vending/sorted/medical/ui_data(mob/user) + . = ..() + if(LAZYLEN(chem_refill)) + .["reagents"] = chem_refill_volume + .["reagents_max"] = chem_refill_volume_max + +/// checks if there is a supply link in our location and we are anchored to it +/obj/structure/machinery/cm_vending/sorted/medical/proc/get_supply_link() + if(!anchored) + return FALSE + var/obj/structure/medical_supply_link/linkpoint = locate() in loc + if(!linkpoint) + return FALSE + return TRUE + +/obj/structure/machinery/cm_vending/sorted/medical/additional_restock_checks(obj/item/item_to_stock, mob/user, list/vendspec) + var/dynamic_metadata = dynamic_stock_multipliers[vendspec] + if(dynamic_metadata) + if(vendspec[2] >= dynamic_metadata[2] && (!allow_supply_link_restock || !get_supply_link())) + if(!istype(item_to_stock, /obj/item/stack)) + to_chat(user, SPAN_WARNING("[src] is already full of [vendspec[1]]!")) + return FALSE + var/obj/item/stack/item_stack = item_to_stock + if(partial_product_stacks[item_to_stock.type] == 0) + to_chat(user, SPAN_WARNING("[src] is already full of [vendspec[1]]!")) + return FALSE // No partial stack to fill + if((partial_product_stacks[item_to_stock.type] + item_stack.amount) > item_stack.max_amount) + to_chat(user, SPAN_WARNING("[src] is already full of [vendspec[1]]!")) + return FALSE // Exceeds partial stack to fill + else + stack_trace("[src] could not find dynamic_stock_multipliers for [vendspec[1]]!") + + if(istype(item_to_stock, /obj/item/reagent_container)) + if(istype(item_to_stock, /obj/item/reagent_container/syringe) || istype(item_to_stock, /obj/item/reagent_container/dropper)) + var/obj/item/reagent_container/container = item_to_stock + if(container.reagents.total_volume != 0) + to_chat(user, SPAN_WARNING("[item_to_stock] needs to be empty to restock it!")) + return FALSE + else + return try_deduct_chem(item_to_stock, user) + + return TRUE + +/// Attempts to consume our reagents needed for the container (doesn't actually change the container) +/// Will return TRUE if reagents were deducated or no reagents were needed +/obj/structure/machinery/cm_vending/sorted/medical/proc/try_deduct_chem(obj/item/reagent_container/container, mob/user) + var/missing_reagents = container.reagents.maximum_volume - container.reagents.total_volume + if(missing_reagents <= 0) + return TRUE + if(!LAZYLEN(chem_refill) || !(container.type in chem_refill)) + if(container.reagents.total_volume == initial(container.reagents.total_volume)) + return TRUE + to_chat(user, SPAN_WARNING("[src] cannot refill [container].")) + return FALSE + if(chem_refill_volume < missing_reagents) + var/auto_refill = allow_supply_link_restock && get_supply_link() + to_chat(user, SPAN_WARNING("[src] blinks red and makes a buzzing noise as it rejects [container]. Looks like it doesn't have enough reagents [auto_refill ? "yet" : "left"].")) + playsound(src, 'sound/machines/buzz-sigh.ogg', 15, TRUE) + return FALSE + + chem_refill_volume -= missing_reagents + to_chat(user, SPAN_NOTICE("[src] makes a whirring noise as it refills your [container.name].")) + playsound(src, 'sound/effects/refill.ogg', 10, 1, 3) + return TRUE + +/// Performs automatic restocking via medical cart - will set being_restocked true during the action +/obj/structure/machinery/cm_vending/sorted/medical/proc/cart_restock(obj/structure/restock_cart/medical/cart, mob/user) + if(cart.supplies_remaining <= 0) + to_chat(user, SPAN_WARNING("[cart] is empty!")) + return + if(being_restocked) + to_chat(user, SPAN_WARNING("[src] is already being restocked, you will get in the way!")) + return + + var/restocking_reagents = istype(cart, /obj/structure/restock_cart/medical/reagent) + if(restocking_reagents && !LAZYLEN(chem_refill)) + to_chat(user, SPAN_WARNING("[src] doesn't use [cart.supply_descriptor]!")) + return + + user.visible_message(SPAN_NOTICE("[user] starts stocking [cart.supply_descriptor] supplies into [src]."), \ + SPAN_NOTICE("You start stocking [cart.supply_descriptor] into [src].")) + being_restocked = TRUE + + while(cart.supplies_remaining > 0) + if(!do_after(user, 1 SECONDS, INTERRUPT_ALL, BUSY_ICON_GENERIC, src)) + being_restocked = FALSE + user.visible_message(SPAN_NOTICE("[user] stopped stocking [src] with [cart.supply_descriptor]."), \ + SPAN_NOTICE("You stop stocking [src] with [cart.supply_descriptor].")) + return + if(QDELETED(cart) || get_dist(user, cart) > 1) + being_restocked = FALSE + user.visible_message(SPAN_NOTICE("[user] stopped stocking [src] with [cart.supply_descriptor]."), \ + SPAN_NOTICE("You stop stocking [src] with [cart.supply_descriptor].")) + return + + if(restocking_reagents) + var/reagent_added = restock_reagents(min(cart.supplies_remaining, 100)) + if(reagent_added <= 0 || chem_refill_volume == chem_refill_volume_max) + break // All done + cart.supplies_remaining -= reagent_added + else + if(!restock_supplies(prob_to_skip = 0, can_remove = FALSE)) + break // All done + cart.supplies_remaining-- + + being_restocked = FALSE + user.visible_message(SPAN_NOTICE("[user] finishes stocking [src] with [cart.supply_descriptor]."), \ + SPAN_NOTICE("You finish stocking [src] with [cart.supply_descriptor].")) /obj/structure/machinery/cm_vending/sorted/medical/attackby(obj/item/I, mob/user) - if(stat == WORKING && LAZYLEN(chem_refill) && (istype(I, /obj/item/reagent_container/hypospray/autoinjector) || istype(I, /obj/item/reagent_container/glass/bottle))) // only if we are completely fine and working + if(stat != WORKING) + return ..() + + if(istype(I, /obj/item/reagent_container)) if(!hacked) if(!allowed(user)) to_chat(user, SPAN_WARNING("Access denied.")) @@ -71,44 +399,37 @@ to_chat(user, SPAN_WARNING("This machine isn't for you.")) return - var/obj/item/reagent_container/C = I - if(!(C.type in chem_refill)) - to_chat(user, SPAN_WARNING("[src] cannot refill the [C.name].")) + var/obj/item/reagent_container/container = I + if(istype(I, /obj/item/reagent_container/syringe) || istype(I, /obj/item/reagent_container/dropper)) + if(!stock(container, user)) + return ..() return - if(C.reagents.total_volume == C.reagents.maximum_volume) - to_chat(user, SPAN_WARNING("[src] makes a warning noise. The [C.name] is currently full.")) + if(container.reagents.total_volume == container.reagents.maximum_volume) + if(!stock(container, user)) + return ..() return - to_chat(user, SPAN_NOTICE("[src] makes a whirring noise as it refills your [C.name].")) + if(!try_deduct_chem(container, user)) + return ..() + // Since the reagent is deleted on use it's easier to make a new one instead of snowflake checking - var/obj/item/reagent_container/new_container = new C.type(src) - qdel(C) + var/obj/item/reagent_container/new_container = new container.type(src) + qdel(container) user.put_in_hands(new_container) - else if(stat == WORKING && LAZYLEN(stack_refill) && (istype(I, /obj/item/stack))) - if(!hacked) - if(!allowed(user)) - to_chat(user, SPAN_WARNING("Access denied.")) - return - - if(LAZYLEN(vendor_role) && !vendor_role.Find(user.job)) - to_chat(user, SPAN_WARNING("This machine isn't for you.")) - return + return - var/obj/item/stack/S = I - if(!(S.type in stack_refill)) - to_chat(user, SPAN_WARNING("[src] cannot restock the [S.name].")) + if(ishuman(user) && istype(I, /obj/item/grab)) + var/obj/item/grab/grabbed = I + if(istype(grabbed.grabbed_thing, /obj/structure/restock_cart/medical)) + cart_restock(grabbed.grabbed_thing, user) return - if(S.amount == S.max_amount) - to_chat(user, SPAN_WARNING("[src] makes a warning noise. The [S.name] is currently fully stacked.")) + if(hacked || (allowed(user) && (!LAZYLEN(vendor_role) || vendor_role.Find(user.job)))) + if(stock(I, user)) return - to_chat(user, SPAN_NOTICE("[src] makes a whirring noise as it restocks your [S.name].")) - S.amount = S.max_amount - S.update_icon() - else - . = ..() + return ..() /obj/structure/machinery/cm_vending/sorted/medical/MouseDrop(obj/over_object as obj) if(stat == WORKING && over_object == usr && CAN_PICKUP(usr, src)) @@ -118,7 +439,7 @@ return if(!healthscan) - to_chat(user, SPAN_WARNING("\The [src] does not have health scanning function.")) + to_chat(user, SPAN_WARNING("[src] does not have health scanning function.")) return if (!last_health_display) @@ -129,62 +450,182 @@ last_health_display.look_at(user, DETAIL_LEVEL_HEALTHANALYSER, bypass_checks = TRUE) return +/obj/structure/machinery/cm_vending/sorted/medical/MouseDrop_T(atom/movable/A, mob/user) + if(inoperable()) + return + if(user.stat || user.is_mob_restrained()) + return + if(get_dist(user, src) > 1 || get_dist(user, A) > 1) // More lenient + return + if(!ishuman(user)) + return + + if(istype(A, /obj/structure/restock_cart/medical)) + cart_restock(A, user) + return + + return ..() + /obj/structure/machinery/cm_vending/sorted/medical/populate_product_list(scale) listed_products = list( list("FIELD SUPPLIES", -1, null, null), - list("Burn Kit", round(scale * 7), /obj/item/stack/medical/advanced/ointment, VENDOR_ITEM_REGULAR), - list("Trauma Kit", round(scale * 7), /obj/item/stack/medical/advanced/bruise_pack, VENDOR_ITEM_REGULAR), - list("Ointment", round(scale * 7), /obj/item/stack/medical/ointment, VENDOR_ITEM_REGULAR), - list("Roll of Gauze", round(scale * 7), /obj/item/stack/medical/bruise_pack, VENDOR_ITEM_REGULAR), - list("Splints", round(scale * 7), /obj/item/stack/medical/splint, VENDOR_ITEM_REGULAR), + list("Burn Kit", floor(scale * 10), /obj/item/stack/medical/advanced/ointment, VENDOR_ITEM_REGULAR), + list("Trauma Kit", floor(scale * 10), /obj/item/stack/medical/advanced/bruise_pack, VENDOR_ITEM_REGULAR), + list("Ointment", floor(scale * 10), /obj/item/stack/medical/ointment, VENDOR_ITEM_REGULAR), + list("Roll of Gauze", floor(scale * 10), /obj/item/stack/medical/bruise_pack, VENDOR_ITEM_REGULAR), + list("Splints", floor(scale * 10), /obj/item/stack/medical/splint, VENDOR_ITEM_REGULAR), list("AUTOINJECTORS", -1, null, null), - list("Autoinjector (Bicaridine)", round(scale * 5), /obj/item/reagent_container/hypospray/autoinjector/bicaridine, VENDOR_ITEM_REGULAR), - list("Autoinjector (Dexalin+)", round(scale * 5), /obj/item/reagent_container/hypospray/autoinjector/dexalinp, VENDOR_ITEM_REGULAR), - list("Autoinjector (Epinephrine)", round(scale * 5), /obj/item/reagent_container/hypospray/autoinjector/adrenaline, VENDOR_ITEM_REGULAR), - list("Autoinjector (Inaprovaline)", round(scale * 5), /obj/item/reagent_container/hypospray/autoinjector/inaprovaline, VENDOR_ITEM_REGULAR), - list("Autoinjector (Kelotane)", round(scale * 5), /obj/item/reagent_container/hypospray/autoinjector/kelotane, VENDOR_ITEM_REGULAR), - list("Autoinjector (Oxycodone)", round(scale * 5), /obj/item/reagent_container/hypospray/autoinjector/oxycodone, VENDOR_ITEM_REGULAR), - list("Autoinjector (Tramadol)", round(scale * 5), /obj/item/reagent_container/hypospray/autoinjector/tramadol, VENDOR_ITEM_REGULAR), - list("Autoinjector (Tricord)", round(scale * 5), /obj/item/reagent_container/hypospray/autoinjector/tricord, VENDOR_ITEM_REGULAR), + list("Autoinjector (Bicaridine)", floor(scale * 5), /obj/item/reagent_container/hypospray/autoinjector/bicaridine, VENDOR_ITEM_REGULAR), + list("Autoinjector (Dexalin+)", floor(scale * 5), /obj/item/reagent_container/hypospray/autoinjector/dexalinp, VENDOR_ITEM_REGULAR), + list("Autoinjector (Epinephrine)", floor(scale * 5), /obj/item/reagent_container/hypospray/autoinjector/adrenaline, VENDOR_ITEM_REGULAR), + list("Autoinjector (Inaprovaline)", floor(scale * 5), /obj/item/reagent_container/hypospray/autoinjector/inaprovaline, VENDOR_ITEM_REGULAR), + list("Autoinjector (Kelotane)", floor(scale * 5), /obj/item/reagent_container/hypospray/autoinjector/kelotane, VENDOR_ITEM_REGULAR), + list("Autoinjector (Oxycodone)", floor(scale * 5), /obj/item/reagent_container/hypospray/autoinjector/oxycodone, VENDOR_ITEM_REGULAR), + list("Autoinjector (Tramadol)", floor(scale * 5), /obj/item/reagent_container/hypospray/autoinjector/tramadol, VENDOR_ITEM_REGULAR), + list("Autoinjector (Tricord)", floor(scale * 5), /obj/item/reagent_container/hypospray/autoinjector/tricord, VENDOR_ITEM_REGULAR), list("LIQUID BOTTLES", -1, null, null), - list("Bottle (Bicaridine)", round(scale * 5), /obj/item/reagent_container/glass/bottle/bicaridine, VENDOR_ITEM_REGULAR), - list("Bottle (Dylovene)", round(scale * 5), /obj/item/reagent_container/glass/bottle/antitoxin, VENDOR_ITEM_REGULAR), - list("Bottle (Dexalin)", round(scale * 5), /obj/item/reagent_container/glass/bottle/dexalin, VENDOR_ITEM_REGULAR), - list("Bottle (Inaprovaline)", round(scale * 5), /obj/item/reagent_container/glass/bottle/inaprovaline, VENDOR_ITEM_REGULAR), - list("Bottle (Kelotane)", round(scale * 5), /obj/item/reagent_container/glass/bottle/kelotane, VENDOR_ITEM_REGULAR), - list("Bottle (Oxycodone)", round(scale * 5), /obj/item/reagent_container/glass/bottle/oxycodone, VENDOR_ITEM_REGULAR), - list("Bottle (Peridaxon)", round(scale * 5), /obj/item/reagent_container/glass/bottle/peridaxon, VENDOR_ITEM_REGULAR), - list("Bottle (Tramadol)", round(scale * 5), /obj/item/reagent_container/glass/bottle/tramadol, VENDOR_ITEM_REGULAR), + list("Bottle (Bicaridine)", floor(scale * 3), /obj/item/reagent_container/glass/bottle/bicaridine, VENDOR_ITEM_REGULAR), + list("Bottle (Dylovene)", floor(scale * 3), /obj/item/reagent_container/glass/bottle/antitoxin, VENDOR_ITEM_REGULAR), + list("Bottle (Dexalin)", floor(scale * 3), /obj/item/reagent_container/glass/bottle/dexalin, VENDOR_ITEM_REGULAR), + list("Bottle (Inaprovaline)", floor(scale * 3), /obj/item/reagent_container/glass/bottle/inaprovaline, VENDOR_ITEM_REGULAR), + list("Bottle (Kelotane)", floor(scale * 3), /obj/item/reagent_container/glass/bottle/kelotane, VENDOR_ITEM_REGULAR), + list("Bottle (Oxycodone)", floor(scale * 3), /obj/item/reagent_container/glass/bottle/oxycodone, VENDOR_ITEM_REGULAR), + list("Bottle (Peridaxon)", floor(scale * 3), /obj/item/reagent_container/glass/bottle/peridaxon, VENDOR_ITEM_REGULAR), + list("Bottle (Tramadol)", floor(scale * 3), /obj/item/reagent_container/glass/bottle/tramadol, VENDOR_ITEM_REGULAR), list("PILL BOTTLES", -1, null, null), - list("Pill Bottle (Bicaridine)", round(scale * 3), /obj/item/storage/pill_bottle/bicaridine, VENDOR_ITEM_REGULAR), - list("Pill Bottle (Dexalin)", round(scale * 3), /obj/item/storage/pill_bottle/dexalin, VENDOR_ITEM_REGULAR), - list("Pill Bottle (Dylovene)", round(scale * 3), /obj/item/storage/pill_bottle/antitox, VENDOR_ITEM_REGULAR), - list("Pill Bottle (Inaprovaline)", round(scale * 3), /obj/item/storage/pill_bottle/inaprovaline, VENDOR_ITEM_REGULAR), - list("Pill Bottle (Kelotane)", round(scale * 3), /obj/item/storage/pill_bottle/kelotane, VENDOR_ITEM_REGULAR), - list("Pill Bottle (Peridaxon)", round(scale * 2), /obj/item/storage/pill_bottle/peridaxon, VENDOR_ITEM_REGULAR), - list("Pill Bottle (Tramadol)", round(scale * 3), /obj/item/storage/pill_bottle/tramadol, VENDOR_ITEM_REGULAR), + list("Pill Bottle (Bicaridine)", floor(scale * 4), /obj/item/storage/pill_bottle/bicaridine, VENDOR_ITEM_REGULAR), + list("Pill Bottle (Dexalin)", floor(scale * 4), /obj/item/storage/pill_bottle/dexalin, VENDOR_ITEM_REGULAR), + list("Pill Bottle (Dylovene)", floor(scale * 4), /obj/item/storage/pill_bottle/antitox, VENDOR_ITEM_REGULAR), + list("Pill Bottle (Inaprovaline)", floor(scale * 4), /obj/item/storage/pill_bottle/inaprovaline, VENDOR_ITEM_REGULAR), + list("Pill Bottle (Kelotane)", floor(scale * 4), /obj/item/storage/pill_bottle/kelotane, VENDOR_ITEM_REGULAR), + list("Pill Bottle (Peridaxon)", floor(scale * 3), /obj/item/storage/pill_bottle/peridaxon, VENDOR_ITEM_REGULAR), + list("Pill Bottle (Tramadol)", floor(scale * 4), /obj/item/storage/pill_bottle/tramadol, VENDOR_ITEM_REGULAR), list("MEDICAL UTILITIES", -1, null, null), - list("Emergency Defibrillator", round(scale * 3), /obj/item/device/defibrillator, VENDOR_ITEM_REGULAR), - list("Surgical Line", round(scale * 2), /obj/item/tool/surgery/surgical_line, VENDOR_ITEM_REGULAR), - list("Synth-Graft", round(scale * 2), /obj/item/tool/surgery/synthgraft, VENDOR_ITEM_REGULAR), - list("Hypospray", round(scale * 2), /obj/item/reagent_container/hypospray/tricordrazine, VENDOR_ITEM_REGULAR), - list("Health Analyzer", round(scale * 5), /obj/item/device/healthanalyzer, VENDOR_ITEM_REGULAR), - list("M276 Pattern Medical Storage Rig", round(scale * 2), /obj/item/storage/belt/medical, VENDOR_ITEM_REGULAR), - list("Medical HUD Glasses", round(scale * 3), /obj/item/clothing/glasses/hud/health, VENDOR_ITEM_REGULAR), - list("Stasis Bag", round(scale * 2), /obj/item/bodybag/cryobag, VENDOR_ITEM_REGULAR), - list("Syringe", round(scale * 7), /obj/item/reagent_container/syringe, VENDOR_ITEM_REGULAR) + list("Emergency Defibrillator", floor(scale * 3), /obj/item/device/defibrillator, VENDOR_ITEM_REGULAR), + list("Surgical Line", floor(scale * 2), /obj/item/tool/surgery/surgical_line, VENDOR_ITEM_REGULAR), + list("Synth-Graft", floor(scale * 2), /obj/item/tool/surgery/synthgraft, VENDOR_ITEM_REGULAR), + list("Hypospray", floor(scale * 3), /obj/item/reagent_container/hypospray/tricordrazine, VENDOR_ITEM_REGULAR), + list("Health Analyzer", floor(scale * 5), /obj/item/device/healthanalyzer, VENDOR_ITEM_REGULAR), + list("M276 Pattern Medical Storage Rig", floor(scale * 2), /obj/item/storage/belt/medical, VENDOR_ITEM_REGULAR), + list("Medical HUD Glasses", floor(scale * 3), /obj/item/clothing/glasses/hud/health, VENDOR_ITEM_REGULAR), + list("Stasis Bag", floor(scale * 3), /obj/item/bodybag/cryobag, VENDOR_ITEM_REGULAR), + list("Syringe", floor(scale * 7), /obj/item/reagent_container/syringe, VENDOR_ITEM_REGULAR) ) +/obj/structure/machinery/cm_vending/sorted/medical/populate_product_list_and_boxes(scale) + . = ..() + + // If this is groundside and isn't dynamically changing we will spawn with stock randomly removed from it + if(vend_flags & VEND_STOCK_DYNAMIC) + return + if(Check_WO()) + return + var/turf/location = get_turf(src) + if(location && is_ground_level(location.z)) + random_unstock() + +/obj/structure/machinery/cm_vending/sorted/medical/Initialize() + . = ..() + + // If this is a medlinked vendor (that needs a link) and isn't dynamically changing it will periodically restock itself + if(vend_flags & VEND_STOCK_DYNAMIC) + return + if(!allow_supply_link_restock) + return + if(!get_supply_link()) + return + START_PROCESSING(SSslowobj, src) + +/obj/structure/machinery/cm_vending/sorted/medical/toggle_anchored(obj/item/W, mob/user) + . = ..() + + // If the anchor state changed, this is a vendor that needs a link, and isn't dynamically changing, update whether we automatically restock + if(. && !(vend_flags & VEND_STOCK_DYNAMIC) && allow_supply_link_restock) + if(get_supply_link()) + START_PROCESSING(SSslowobj, src) + else + STOP_PROCESSING(SSslowobj, src) + +/obj/structure/machinery/cm_vending/sorted/medical/process() + if(!get_supply_link()) + STOP_PROCESSING(SSslowobj, src) + return // Somehow we lost our link + if(inoperable()) + return + if(world.time - SSticker.mode.round_time_lobby > 20 MINUTES) + restock_supplies() + restock_reagents() + +/// Randomly (based on prob_to_skip) adjusts all amounts of listed_products towards their desired values by 1 +/// Returns the quantity of items added +/obj/structure/machinery/cm_vending/sorted/medical/proc/restock_supplies(prob_to_skip = 80, can_remove = TRUE) + . = 0 + for(var/list/vendspec as anything in listed_products) + if(vendspec[2] < 0) + continue // It's a section title, not an actual entry + var/dynamic_metadata = dynamic_stock_multipliers[vendspec] + if(!dynamic_metadata) + stack_trace("[src] could not find dynamic_stock_multipliers for [vendspec[1]]!") + continue + var/cur_type = vendspec[3] + if(vendspec[2] == dynamic_metadata[2]) + if((cur_type in partial_product_stacks) && partial_product_stacks[cur_type] > 0) + partial_product_stacks[cur_type] = 0 + .++ + continue // Already at desired value + if(vendspec[2] > dynamic_metadata[2]) + if(can_remove) + vendspec[2]-- + if(cur_type in partial_product_stacks) + partial_product_stacks[cur_type] = 0 + if(vend_flags & VEND_LOAD_AMMO_BOXES) + update_derived_ammo_and_boxes(vendspec) + continue // Returned some items to the void + if(prob(prob_to_skip)) + continue // 20% chance to restock per entry by default + vendspec[2]++ + if(vend_flags & VEND_LOAD_AMMO_BOXES) + update_derived_ammo_and_boxes_on_add(vendspec) + .++ + +/// Refills reagents towards chem_refill_volume_max +/// Returns the quantity of reagents added +/obj/structure/machinery/cm_vending/sorted/medical/proc/restock_reagents(additional_volume = 125) + var/old_value = chem_refill_volume + chem_refill_volume = min(chem_refill_volume + additional_volume, chem_refill_volume_max) + return chem_refill_volume - old_value + +/// Randomly removes amounts of listed_products and reagents +/obj/structure/machinery/cm_vending/sorted/medical/proc/random_unstock() + // Random interval of 25 for reagents + chem_refill_volume = rand(0, chem_refill_volume_max * 0.04) * 25 + + for(var/list/vendspec as anything in listed_products) + var/amount = vendspec[2] + if(amount <= 0) + continue + + // Chance to just be empty + if(prob(25)) + vendspec[2] = 0 + continue + + // Otherwise its some amount between 1 and the original amount + vendspec[2] = rand(1, amount) + /obj/structure/machinery/cm_vending/sorted/medical/chemistry name = "\improper Wey-Chem Plus" desc = "Medical chemistry dispenser. Provided by Wey-Yu Pharmaceuticals Division(TM)." icon_state = "chem" - + req_access = list(ACCESS_MARINE_CHEMISTRY) healthscan = FALSE + + chem_refill_volume = 1200 + chem_refill_volume_max = 1200 chem_refill = list( /obj/item/reagent_container/glass/bottle/bicaridine, /obj/item/reagent_container/glass/bottle/antitoxin, @@ -195,31 +636,33 @@ /obj/item/reagent_container/glass/bottle/peridaxon, /obj/item/reagent_container/glass/bottle/tramadol, ) - stack_refill = null /obj/structure/machinery/cm_vending/sorted/medical/chemistry/populate_product_list(scale) listed_products = list( list("LIQUID BOTTLES", -1, null, null), - list("Bicaridine Bottle", round(scale * 5), /obj/item/reagent_container/glass/bottle/bicaridine, VENDOR_ITEM_REGULAR), - list("Dylovene Bottle", round(scale * 5), /obj/item/reagent_container/glass/bottle/antitoxin, VENDOR_ITEM_REGULAR), - list("Dexalin Bottle", round(scale * 5), /obj/item/reagent_container/glass/bottle/dexalin, VENDOR_ITEM_REGULAR), - list("Inaprovaline Bottle", round(scale * 5), /obj/item/reagent_container/glass/bottle/inaprovaline, VENDOR_ITEM_REGULAR), - list("Kelotane Bottle", round(scale * 5), /obj/item/reagent_container/glass/bottle/kelotane, VENDOR_ITEM_REGULAR), - list("Oxycodone Bottle", round(scale * 5), /obj/item/reagent_container/glass/bottle/oxycodone, VENDOR_ITEM_REGULAR), - list("Peridaxon Bottle", round(scale * 5), /obj/item/reagent_container/glass/bottle/peridaxon, VENDOR_ITEM_REGULAR), - list("Tramadol Bottle", round(scale * 5), /obj/item/reagent_container/glass/bottle/tramadol, VENDOR_ITEM_REGULAR), + list("Bicaridine Bottle", floor(scale * 6), /obj/item/reagent_container/glass/bottle/bicaridine, VENDOR_ITEM_REGULAR), + list("Dylovene Bottle", floor(scale * 6), /obj/item/reagent_container/glass/bottle/antitoxin, VENDOR_ITEM_REGULAR), + list("Dexalin Bottle", floor(scale * 6), /obj/item/reagent_container/glass/bottle/dexalin, VENDOR_ITEM_REGULAR), + list("Inaprovaline Bottle", floor(scale * 6), /obj/item/reagent_container/glass/bottle/inaprovaline, VENDOR_ITEM_REGULAR), + list("Kelotane Bottle", floor(scale * 6), /obj/item/reagent_container/glass/bottle/kelotane, VENDOR_ITEM_REGULAR), + list("Oxycodone Bottle", floor(scale * 6), /obj/item/reagent_container/glass/bottle/oxycodone, VENDOR_ITEM_REGULAR), + list("Peridaxon Bottle", floor(scale * 6), /obj/item/reagent_container/glass/bottle/peridaxon, VENDOR_ITEM_REGULAR), + list("Tramadol Bottle", floor(scale * 6), /obj/item/reagent_container/glass/bottle/tramadol, VENDOR_ITEM_REGULAR), list("MISCELLANEOUS", -1, null, null), - list("Beaker (60 Units)", round(scale * 3), /obj/item/reagent_container/glass/beaker, VENDOR_ITEM_REGULAR), - list("Beaker, Large (120 Units)", round(scale * 3), /obj/item/reagent_container/glass/beaker/large, VENDOR_ITEM_REGULAR), - list("Box of Pill Bottles", round(scale * 2), /obj/item/storage/box/pillbottles, VENDOR_ITEM_REGULAR), - list("Dropper", round(scale * 3), /obj/item/reagent_container/dropper, VENDOR_ITEM_REGULAR), - list("Syringe", round(scale * 7), /obj/item/reagent_container/syringe, VENDOR_ITEM_REGULAR) + list("Beaker (60 Units)", floor(scale * 3), /obj/item/reagent_container/glass/beaker, VENDOR_ITEM_REGULAR), + list("Beaker, Large (120 Units)", floor(scale * 3), /obj/item/reagent_container/glass/beaker/large, VENDOR_ITEM_REGULAR), + list("Box of Pill Bottles", floor(scale * 2), /obj/item/storage/box/pillbottles, VENDOR_ITEM_REGULAR), + list("Dropper", floor(scale * 3), /obj/item/reagent_container/dropper, VENDOR_ITEM_REGULAR), + list("Syringe", floor(scale * 7), /obj/item/reagent_container/syringe, VENDOR_ITEM_REGULAR) ) /obj/structure/machinery/cm_vending/sorted/medical/no_access req_access = list() +/obj/structure/machinery/cm_vending/sorted/medical/bolted + wrenchable = FALSE + /obj/structure/machinery/cm_vending/sorted/medical/chemistry/no_access req_access = list() @@ -229,10 +672,11 @@ req_one_access = list(ACCESS_ILLEGAL_PIRATE, ACCESS_UPP_GENERAL, ACCESS_CLF_GENERAL) req_access = null vendor_theme = VENDOR_THEME_CLF + allow_supply_link_restock = FALSE /obj/structure/machinery/cm_vending/sorted/medical/marinemed name = "\improper ColMarTech MarineMed" - desc = "Medical Pharmaceutical dispenser with basic medical supplies for marines." + desc = "Medical pharmaceutical dispenser with basic medical supplies for marines." icon_state = "marinemed" req_access = list() req_one_access = list() @@ -242,26 +686,21 @@ /obj/item/reagent_container/hypospray/autoinjector/skillless, /obj/item/reagent_container/hypospray/autoinjector/skillless/tramadol, ) - stack_refill = list( - /obj/item/stack/medical/ointment, - /obj/item/stack/medical/bruise_pack, - /obj/item/stack/medical/splint, - ) /obj/structure/machinery/cm_vending/sorted/medical/marinemed/populate_product_list(scale) listed_products = list( list("AUTOINJECTORS", -1, null, null), - list("First-Aid Autoinjector", round(scale * 5), /obj/item/reagent_container/hypospray/autoinjector/skillless, VENDOR_ITEM_REGULAR), - list("Pain-Stop Autoinjector", round(scale * 5), /obj/item/reagent_container/hypospray/autoinjector/skillless/tramadol, VENDOR_ITEM_REGULAR), + list("First-Aid Autoinjector", floor(scale * 5), /obj/item/reagent_container/hypospray/autoinjector/skillless, VENDOR_ITEM_REGULAR), + list("Pain-Stop Autoinjector", floor(scale * 5), /obj/item/reagent_container/hypospray/autoinjector/skillless/tramadol, VENDOR_ITEM_REGULAR), list("DEVICES", -1, null, null), - list("Health Analyzer", round(scale * 3), /obj/item/device/healthanalyzer, VENDOR_ITEM_REGULAR), + list("Health Analyzer", floor(scale * 3), /obj/item/device/healthanalyzer, VENDOR_ITEM_REGULAR), list("FIELD SUPPLIES", -1, null, null), list("Fire Extinguisher (portable)", 5, /obj/item/tool/extinguisher/mini, VENDOR_ITEM_REGULAR), - list("Ointment", round(scale * 7), /obj/item/stack/medical/ointment, VENDOR_ITEM_REGULAR), - list("Roll of Gauze", round(scale * 7), /obj/item/stack/medical/bruise_pack, VENDOR_ITEM_REGULAR), - list("Splints", round(scale * 7), /obj/item/stack/medical/splint, VENDOR_ITEM_REGULAR) + list("Ointment", floor(scale * 8), /obj/item/stack/medical/ointment, VENDOR_ITEM_REGULAR), + list("Roll of Gauze", floor(scale * 8), /obj/item/stack/medical/bruise_pack, VENDOR_ITEM_REGULAR), + list("Splints", floor(scale * 8), /obj/item/stack/medical/splint, VENDOR_ITEM_REGULAR) ) /obj/structure/machinery/cm_vending/sorted/medical/marinemed/antag @@ -270,63 +709,69 @@ req_one_access = list(ACCESS_ILLEGAL_PIRATE, ACCESS_UPP_GENERAL, ACCESS_CLF_GENERAL) req_access = null vendor_theme = VENDOR_THEME_CLF + allow_supply_link_restock = FALSE /obj/structure/machinery/cm_vending/sorted/medical/blood name = "\improper MM Blood Dispenser" - desc = "The Marine Med Brand Blood Pack Dispensary is the premier, top-of-the-line blood dispenser of 2105! Get yours today!" //Don't update this year, the joke is it's old. + desc = "The MarineMed brand blood dispensary is the premier, top-of-the-line blood dispenser of 2105! Get yours today!" //Don't update this year, the joke is it's old. icon_state = "blood" wrenchable = TRUE hackable = TRUE + healthscan = FALSE + allow_supply_link_restock = FALSE + chem_refill = null +/obj/structure/machinery/cm_vending/sorted/medical/blood/bolted + wrenchable = FALSE + +/obj/structure/machinery/cm_vending/sorted/medical/blood/populate_product_list(scale) listed_products = list( list("BLOOD PACKS", -1, null, null), - list("A+ Blood Pack", 5, /obj/item/reagent_container/blood/APlus, VENDOR_ITEM_REGULAR), - list("A- Blood Pack", 5, /obj/item/reagent_container/blood/AMinus, VENDOR_ITEM_REGULAR), - list("B+ Blood Pack", 5, /obj/item/reagent_container/blood/BPlus, VENDOR_ITEM_REGULAR), - list("B- Blood Pack", 5, /obj/item/reagent_container/blood/BMinus, VENDOR_ITEM_REGULAR), - list("O+ Blood Pack", 5, /obj/item/reagent_container/blood/OPlus, VENDOR_ITEM_REGULAR), - list("O- Blood Pack", 5, /obj/item/reagent_container/blood/OMinus, VENDOR_ITEM_REGULAR), + list("A+ Blood Pack", floor(scale * 5), /obj/item/reagent_container/blood/APlus, VENDOR_ITEM_REGULAR), + list("A- Blood Pack", floor(scale * 5), /obj/item/reagent_container/blood/AMinus, VENDOR_ITEM_REGULAR), + list("B+ Blood Pack", floor(scale * 5), /obj/item/reagent_container/blood/BPlus, VENDOR_ITEM_REGULAR), + list("B- Blood Pack", floor(scale * 5), /obj/item/reagent_container/blood/BMinus, VENDOR_ITEM_REGULAR), + list("O+ Blood Pack", floor(scale * 5), /obj/item/reagent_container/blood/OPlus, VENDOR_ITEM_REGULAR), + list("O- Blood Pack", floor(scale * 5), /obj/item/reagent_container/blood/OMinus, VENDOR_ITEM_REGULAR), list("MISCELLANEOUS", -1, null, null), - list("Empty Blood Pack", 5, /obj/item/reagent_container/blood, VENDOR_ITEM_REGULAR) + list("Empty Blood Pack", floor(scale * 5), /obj/item/reagent_container/blood, VENDOR_ITEM_REGULAR) ) - healthscan = FALSE - chem_refill = null - stack_refill = null - -/obj/structure/machinery/cm_vending/sorted/medical/blood/populate_product_list(scale) - return - /obj/structure/machinery/cm_vending/sorted/medical/blood/antag req_one_access = list(ACCESS_ILLEGAL_PIRATE, ACCESS_UPP_GENERAL, ACCESS_CLF_GENERAL) req_access = null vendor_theme = VENDOR_THEME_CLF + allow_supply_link_restock = FALSE + + +//------------WALL MED VENDORS------------ /obj/structure/machinery/cm_vending/sorted/medical/wall_med name = "\improper NanoMed" - desc = "Wall-mounted Medical Equipment Dispenser." + desc = "A wall-mounted medical equipment dispenser." icon_state = "wallmed" - vend_delay = 0.7 SECONDS - + appearance_flags = TILE_BOUND req_access = list() - density = FALSE wrenchable = FALSE + vend_delay = 0.7 SECONDS + allow_supply_link_restock = FALSE + listed_products = list( list("SUPPLIES", -1, null, null), - list("First-Aid Autoinjector", 1, /obj/item/reagent_container/hypospray/autoinjector/skillless, VENDOR_ITEM_REGULAR), - list("Pain-Stop Autoinjector", 1, /obj/item/reagent_container/hypospray/autoinjector/skillless/tramadol, VENDOR_ITEM_REGULAR), - list("Roll Of Gauze", 2, /obj/item/stack/medical/bruise_pack, VENDOR_ITEM_REGULAR), - list("Ointment", 2, /obj/item/stack/medical/ointment, VENDOR_ITEM_REGULAR), - list("Medical Splints", 1, /obj/item/stack/medical/splint, VENDOR_ITEM_REGULAR), + list("First-Aid Autoinjector", 2, /obj/item/reagent_container/hypospray/autoinjector/skillless, VENDOR_ITEM_REGULAR), + list("Pain-Stop Autoinjector", 2, /obj/item/reagent_container/hypospray/autoinjector/skillless/tramadol, VENDOR_ITEM_REGULAR), + list("Roll Of Gauze", 4, /obj/item/stack/medical/bruise_pack, VENDOR_ITEM_REGULAR), + list("Ointment", 4, /obj/item/stack/medical/ointment, VENDOR_ITEM_REGULAR), + list("Medical Splints", 4, /obj/item/stack/medical/splint, VENDOR_ITEM_REGULAR), list("UTILITY", -1, null, null), - list("HF2 Health Analyzer", 1, /obj/item/device/healthanalyzer, VENDOR_ITEM_REGULAR) + list("HF2 Health Analyzer", 2, /obj/item/device/healthanalyzer, VENDOR_ITEM_REGULAR) ) - appearance_flags = TILE_BOUND - + chem_refill_volume = 250 + chem_refill_volume_max = 250 chem_refill = list( /obj/item/reagent_container/hypospray/autoinjector/skillless, /obj/item/reagent_container/hypospray/autoinjector/skillless/tramadol, @@ -335,29 +780,27 @@ /obj/item/reagent_container/hypospray/autoinjector/kelotane/skillless, /obj/item/reagent_container/hypospray/autoinjector/tramadol/skillless, ) - stack_refill = list( - /obj/item/stack/medical/bruise_pack, - /obj/item/stack/medical/splint, - /obj/item/stack/medical/ointment, - ) /obj/structure/machinery/cm_vending/sorted/medical/wall_med/limited - desc = "Wall-mounted Medical Equipment Dispenser. This version is more limited than standard USCM NanoMeds." + desc = "A wall-mounted medical equipment dispenser. This version is more limited than standard USCM NanoMeds." + chem_refill_volume = 150 + chem_refill_volume_max = 150 chem_refill = list( /obj/item/reagent_container/hypospray/autoinjector/skillless, /obj/item/reagent_container/hypospray/autoinjector/skillless/tramadol, ) - stack_refill = list( - /obj/item/stack/medical/bruise_pack, - /obj/item/stack/medical/ointment, - ) /obj/structure/machinery/cm_vending/sorted/medical/wall_med/lifeboat name = "Lifeboat Medical Cabinet" icon = 'icons/obj/structures/machinery/lifeboat.dmi' icon_state = "medcab" desc = "A wall-mounted cabinet containing medical supplies vital to survival. While better equipped, it can only refill basic supplies." + unacidable = TRUE + unslashable = TRUE + wrenchable = FALSE + hackable = FALSE + listed_products = list( list("AUTOINJECTORS", -1, null, null), list("First-Aid Autoinjector", 8, /obj/item/reagent_container/hypospray/autoinjector/skillless, VENDOR_ITEM_REGULAR), @@ -373,16 +816,9 @@ list("Roll of Gauze", 8, /obj/item/stack/medical/bruise_pack, VENDOR_ITEM_REGULAR), list("Splints", 8, /obj/item/stack/medical/splint, VENDOR_ITEM_REGULAR) ) - stack_refill = list( - /obj/item/stack/medical/ointment, - /obj/item/stack/medical/bruise_pack, - /obj/item/stack/medical/splint, - ) - unacidable = TRUE - unslashable = TRUE - wrenchable = FALSE - hackable = FALSE + chem_refill_volume = 500 + chem_refill_volume_max = 500 /obj/structure/machinery/cm_vending/sorted/medical/wall_med/populate_product_list(scale) return @@ -390,18 +826,19 @@ /obj/structure/machinery/cm_vending/sorted/medical/wall_med/souto name = "\improper SoutoMed" desc = "In Soutoland (Trademark pending), one is never more than 6ft away from canned Havana goodness. Drink a Souto today! For a full selection of Souto products please visit a licensed retailer or vending machine. Also doubles as basic first aid station." - icon_state = "soutomed" icon = 'icons/obj/structures/souto_land.dmi' + icon_state = "soutomed" + listed_products = list( list("FIRST AID SUPPLIES", -1, null, null), - list("First-Aid Autoinjector", 1, /obj/item/reagent_container/hypospray/autoinjector/skillless, VENDOR_ITEM_REGULAR), - list("Pain-Stop Autoinjector", 1, /obj/item/reagent_container/hypospray/autoinjector/skillless/tramadol, VENDOR_ITEM_REGULAR), - list("Roll Of Gauze", 2, /obj/item/stack/medical/bruise_pack, VENDOR_ITEM_REGULAR), - list("Ointment", 2, /obj/item/stack/medical/ointment, VENDOR_ITEM_REGULAR), - list("Medical Splints", 1, /obj/item/stack/medical/splint, VENDOR_ITEM_REGULAR), + list("First-Aid Autoinjector", 2, /obj/item/reagent_container/hypospray/autoinjector/skillless, VENDOR_ITEM_REGULAR), + list("Pain-Stop Autoinjector", 2, /obj/item/reagent_container/hypospray/autoinjector/skillless/tramadol, VENDOR_ITEM_REGULAR), + list("Roll Of Gauze", 4, /obj/item/stack/medical/bruise_pack, VENDOR_ITEM_REGULAR), + list("Ointment", 4, /obj/item/stack/medical/ointment, VENDOR_ITEM_REGULAR), + list("Medical Splints", 4, /obj/item/stack/medical/splint, VENDOR_ITEM_REGULAR), list("UTILITY", -1, null, null), - list("HF2 Health Analyzer", 1, /obj/item/device/healthanalyzer, VENDOR_ITEM_REGULAR), + list("HF2 Health Analyzer", 2, /obj/item/device/healthanalyzer, VENDOR_ITEM_REGULAR), list("SOUTO", -1, null, null), list("Souto Classic", 1, /obj/item/reagent_container/food/drinks/cans/souto/classic, VENDOR_ITEM_REGULAR), diff --git a/code/game/machinery/vending/vendor_types/requisitions.dm b/code/game/machinery/vending/vendor_types/requisitions.dm index b5ed2c19fb78..a8d44a8b5012 100644 --- a/code/game/machinery/vending/vendor_types/requisitions.dm +++ b/code/game/machinery/vending/vendor_types/requisitions.dm @@ -19,125 +19,147 @@ /obj/structure/machinery/cm_vending/sorted/cargo_guns/populate_product_list(scale) listed_products = list( list("PRIMARY FIREARMS", -1, null, null), - list("M37A2 Pump Shotgun", round(scale * 30), /obj/item/weapon/gun/shotgun/pump, VENDOR_ITEM_REGULAR), - list("M39 Submachinegun", round(scale * 60), /obj/item/weapon/gun/smg/m39, VENDOR_ITEM_REGULAR), - list("M41A Pulse Rifle MK2", round(scale * 60), /obj/item/weapon/gun/rifle/m41a, VENDOR_ITEM_REGULAR), - list("M4RA Battle Rifle", round(scale * 20), /obj/item/weapon/gun/rifle/m4ra, VENDOR_ITEM_REGULAR), + list("M37A2 Pump Shotgun", floor(scale * 30), /obj/item/weapon/gun/shotgun/pump, VENDOR_ITEM_REGULAR), + list("M39 Submachinegun", floor(scale * 60), /obj/item/weapon/gun/smg/m39, VENDOR_ITEM_REGULAR), + list("M41A Pulse Rifle MK2", floor(scale * 60), /obj/item/weapon/gun/rifle/m41a, VENDOR_ITEM_REGULAR), + list("M4RA Battle Rifle", floor(scale * 20), /obj/item/weapon/gun/rifle/m4ra, VENDOR_ITEM_REGULAR), list("SIDEARMS", -1, null, null), - list("88 Mod 4 Combat Pistol", round(scale * 50), /obj/item/weapon/gun/pistol/mod88, VENDOR_ITEM_REGULAR), - list("M44 Combat Revolver", round(scale * 50), /obj/item/weapon/gun/revolver/m44, VENDOR_ITEM_REGULAR), - list("M4A3 Service Pistol", round(scale * 50), /obj/item/weapon/gun/pistol/m4a3, VENDOR_ITEM_REGULAR), - list("M82F Flare Gun", round(scale * 20), /obj/item/weapon/gun/flare, VENDOR_ITEM_REGULAR), + list("88 Mod 4 Combat Pistol", floor(scale * 50), /obj/item/weapon/gun/pistol/mod88, VENDOR_ITEM_REGULAR), + list("M44 Combat Revolver", floor(scale * 50), /obj/item/weapon/gun/revolver/m44, VENDOR_ITEM_REGULAR), + list("M4A3 Service Pistol", floor(scale * 50), /obj/item/weapon/gun/pistol/m4a3, VENDOR_ITEM_REGULAR), + list("M82F Flare Gun", floor(scale * 20), /obj/item/weapon/gun/flare, VENDOR_ITEM_REGULAR), list("RESTRICTED FIREARMS", -1, null, null), - list("VP78 Pistol", round(scale * 4), /obj/item/storage/box/guncase/vp78, VENDOR_ITEM_REGULAR), - list("SU-6 Smart Pistol", round(scale * 3), /obj/item/storage/box/guncase/smartpistol, VENDOR_ITEM_REGULAR), - list("MOU-53 Shotgun", round(scale * 2), /obj/item/storage/box/guncase/mou53, VENDOR_ITEM_REGULAR), - list("XM88 Heavy Rifle", round(scale * 3), /obj/item/storage/box/guncase/xm88, VENDOR_ITEM_REGULAR), + list("VP78 Pistol", floor(scale * 4), /obj/item/storage/box/guncase/vp78, VENDOR_ITEM_REGULAR), + list("SU-6 Smart Pistol", floor(scale * 3), /obj/item/storage/box/guncase/smartpistol, VENDOR_ITEM_REGULAR), + list("MOU-53 Shotgun", floor(scale * 2), /obj/item/storage/box/guncase/mou53, VENDOR_ITEM_REGULAR), + list("XM88 Heavy Rifle", floor(scale * 3), /obj/item/storage/box/guncase/xm88, VENDOR_ITEM_REGULAR), list("M41AE2 Heavy Pulse Rifle", 2.5, /obj/item/storage/box/guncase/lmg, VENDOR_ITEM_REGULAR), - list("M41A Pulse Rifle MK1", round(scale * 3), /obj/item/storage/box/guncase/m41aMK1, VENDOR_ITEM_REGULAR), - list("M56D Heavy Machine Gun", round(scale * 2), /obj/item/storage/box/guncase/m56d, VENDOR_ITEM_REGULAR), - list("M2C Heavy Machine Gun", round(scale * 2), /obj/item/storage/box/guncase/m2c, VENDOR_ITEM_REGULAR), - list("M240 Incinerator Unit", round(scale * 2), /obj/item/storage/box/guncase/flamer, VENDOR_ITEM_REGULAR), - list("M79 Grenade Launcher", round(scale * 3), /obj/item/storage/box/guncase/m79, VENDOR_ITEM_REGULAR), + list("M41A Pulse Rifle MK1", floor(scale * 3), /obj/item/storage/box/guncase/m41aMK1, VENDOR_ITEM_REGULAR), + list("M56D Heavy Machine Gun", floor(scale * 2), /obj/item/storage/box/guncase/m56d, VENDOR_ITEM_REGULAR), + list("M2C Heavy Machine Gun", floor(scale * 2), /obj/item/storage/box/guncase/m2c, VENDOR_ITEM_REGULAR), + list("M240 Incinerator Unit", floor(scale * 2), /obj/item/storage/box/guncase/flamer, VENDOR_ITEM_REGULAR), + list("M79 Grenade Launcher", floor(scale * 3), /obj/item/storage/box/guncase/m79, VENDOR_ITEM_REGULAR), + list("XM51 Breaching Scattergun", floor(scale * 3), /obj/item/storage/box/guncase/xm51, VENDOR_ITEM_REGULAR), list("EXPLOSIVES", -1, null, null), - list("M15 Fragmentation Grenade", round(scale * 2), /obj/item/explosive/grenade/high_explosive/m15, VENDOR_ITEM_REGULAR), - list("M20 Claymore Anti-Personnel Mine", round(scale * 4), /obj/item/explosive/mine, VENDOR_ITEM_REGULAR), - list("M40 HEDP Grenade", round(scale * 25), /obj/item/explosive/grenade/high_explosive, VENDOR_ITEM_REGULAR), - list("M40 HIDP Incendiary Grenade", round(scale * 4), /obj/item/explosive/grenade/incendiary, VENDOR_ITEM_REGULAR), - list("M40 HPDP White Phosphorus Smoke Grenade", round(scale * 4), /obj/item/explosive/grenade/phosphorus, VENDOR_ITEM_REGULAR), - list("M40 HSDP Smoke Grenade", round(scale * 5), /obj/item/explosive/grenade/smokebomb, VENDOR_ITEM_REGULAR), - list("M74 AGM-Frag Airburst Grenade", round(scale * 4), /obj/item/explosive/grenade/high_explosive/airburst, VENDOR_ITEM_REGULAR), - list("M74 AGM-Icendiary Airburst Grenade", round(scale * 4), /obj/item/explosive/grenade/incendiary/airburst, VENDOR_ITEM_REGULAR), - list("M74 AGM-Smoke Airburst Grenade", round(scale * 4), /obj/item/explosive/grenade/smokebomb/airburst, VENDOR_ITEM_REGULAR), - list("M74 AGM-Star Shell", round(scale * 2), /obj/item/explosive/grenade/high_explosive/airburst/starshell, VENDOR_ITEM_REGULAR), - list("M74 AGM-Hornet Shell", round(scale * 4), /obj/item/explosive/grenade/high_explosive/airburst/hornet_shell, VENDOR_ITEM_REGULAR), - list("M40 HIRR Baton Slug", round(scale * 8), /obj/item/explosive/grenade/slug/baton, VENDOR_ITEM_REGULAR), - list("M40 MFHS Metal Foam Grenade", round(scale * 3), /obj/item/explosive/grenade/metal_foam, VENDOR_ITEM_REGULAR), - list("Plastic Explosives", round(scale * 3), /obj/item/explosive/plastic, VENDOR_ITEM_REGULAR), - list("Breaching Charge", round(scale * 2), /obj/item/explosive/plastic/breaching_charge, VENDOR_ITEM_REGULAR), + list("M15 Fragmentation Grenade", floor(scale * 2), /obj/item/explosive/grenade/high_explosive/m15, VENDOR_ITEM_REGULAR), + list("M20 Claymore Anti-Personnel Mine", floor(scale * 4), /obj/item/explosive/mine, VENDOR_ITEM_REGULAR), + list("M40 HEDP Grenade", floor(scale * 25), /obj/item/explosive/grenade/high_explosive, VENDOR_ITEM_REGULAR), + list("M40 HIDP Incendiary Grenade", floor(scale * 4), /obj/item/explosive/grenade/incendiary, VENDOR_ITEM_REGULAR), + list("M40 HPDP White Phosphorus Smoke Grenade", floor(scale * 4), /obj/item/explosive/grenade/phosphorus, VENDOR_ITEM_REGULAR), + list("M40 HSDP Smoke Grenade", floor(scale * 5), /obj/item/explosive/grenade/smokebomb, VENDOR_ITEM_REGULAR), + list("M74 AGM-Frag Airburst Grenade", floor(scale * 4), /obj/item/explosive/grenade/high_explosive/airburst, VENDOR_ITEM_REGULAR), + list("M74 AGM-Incendiary Airburst Grenade", floor(scale * 4), /obj/item/explosive/grenade/incendiary/airburst, VENDOR_ITEM_REGULAR), + list("M74 AGM-Smoke Airburst Grenade", floor(scale * 4), /obj/item/explosive/grenade/smokebomb/airburst, VENDOR_ITEM_REGULAR), + list("M74 AGM-Star Shell", floor(scale * 2), /obj/item/explosive/grenade/high_explosive/airburst/starshell, VENDOR_ITEM_REGULAR), + list("M74 AGM-Hornet Shell", floor(scale * 4), /obj/item/explosive/grenade/high_explosive/airburst/hornet_shell, VENDOR_ITEM_REGULAR), + list("M40 HIRR Baton Slug", floor(scale * 8), /obj/item/explosive/grenade/slug/baton, VENDOR_ITEM_REGULAR), + list("M40 MFHS Metal Foam Grenade", floor(scale * 6), /obj/item/explosive/grenade/metal_foam, VENDOR_ITEM_REGULAR), + list("Plastic Explosives", floor(scale * 3), /obj/item/explosive/plastic, VENDOR_ITEM_REGULAR), + list("Breaching Charge", floor(scale * 2), /obj/item/explosive/plastic/breaching_charge, VENDOR_ITEM_REGULAR), list("WEBBINGS", -1, null, null), - list("Black Webbing Vest", round(scale * 2), /obj/item/clothing/accessory/storage/black_vest, VENDOR_ITEM_REGULAR), - list("Brown Webbing Vest", round(scale * 2), /obj/item/clothing/accessory/storage/black_vest/brown_vest, VENDOR_ITEM_REGULAR), - list("Shoulder Holster", round(scale * 1.5), /obj/item/clothing/accessory/storage/holster, VENDOR_ITEM_REGULAR), - list("Webbing", round(scale * 5), /obj/item/clothing/accessory/storage/webbing, VENDOR_ITEM_REGULAR), - list("Knife Webbing", round(scale * 1), /obj/item/clothing/accessory/storage/knifeharness, VENDOR_ITEM_REGULAR), - list("Drop Pouch", round(scale * 2), /obj/item/clothing/accessory/storage/droppouch, VENDOR_ITEM_REGULAR), + list("Black Webbing Vest", floor(scale * 2), /obj/item/clothing/accessory/storage/black_vest, VENDOR_ITEM_REGULAR), + list("Brown Webbing Vest", floor(scale * 2), /obj/item/clothing/accessory/storage/black_vest/brown_vest, VENDOR_ITEM_REGULAR), + list("Shoulder Holster", floor(scale * 1.5), /obj/item/clothing/accessory/storage/holster, VENDOR_ITEM_REGULAR), + list("Webbing", floor(scale * 5), /obj/item/clothing/accessory/storage/webbing, VENDOR_ITEM_REGULAR), + list("Knife Webbing", floor(scale * 1), /obj/item/clothing/accessory/storage/knifeharness, VENDOR_ITEM_REGULAR), + list("Drop Pouch", floor(scale * 2), /obj/item/clothing/accessory/storage/droppouch, VENDOR_ITEM_REGULAR), list("BACKPACKS", -1, null, null), - list("Lightweight IMP Backpack", round(scale * 15), /obj/item/storage/backpack/marine, VENDOR_ITEM_REGULAR), - list("Shotgun Scabbard", round(scale * 10), /obj/item/storage/large_holster/m37, VENDOR_ITEM_REGULAR), - list("Pyrotechnician G4-1 Fueltank", round(scale * 2), /obj/item/storage/backpack/marine/engineerpack/flamethrower/kit, VENDOR_ITEM_REGULAR), - list("Technician Welderpack", round(scale * 2), /obj/item/storage/backpack/marine/engineerpack, VENDOR_ITEM_REGULAR), - list("Mortar Shell Backpack", round(scale * 1), /obj/item/storage/backpack/marine/mortarpack, VENDOR_ITEM_REGULAR), - list("Technician Welder-Satchel", round(scale * 5), /obj/item/storage/backpack/marine/engineerpack/satchel, VENDOR_ITEM_REGULAR), - list("IMP Ammo Rack", round(scale * 2), /obj/item/storage/backpack/marine/ammo_rack, VENDOR_ITEM_REGULAR), - list("Radio Telephone Pack", round(scale * 2), /obj/item/storage/backpack/marine/satchel/rto, VENDOR_ITEM_REGULAR), + list("Lightweight IMP Backpack", floor(scale * 15), /obj/item/storage/backpack/marine, VENDOR_ITEM_REGULAR), + list("Shotgun Scabbard", floor(scale * 10), /obj/item/storage/large_holster/m37, VENDOR_ITEM_REGULAR), + list("Pyrotechnician G4-1 Fueltank", floor(scale * 2), /obj/item/storage/backpack/marine/engineerpack/flamethrower/kit, VENDOR_ITEM_REGULAR), + list("Technician Welderpack", floor(scale * 2), /obj/item/storage/backpack/marine/engineerpack, VENDOR_ITEM_REGULAR), + list("Mortar Shell Backpack", floor(scale * 1), /obj/item/storage/backpack/marine/mortarpack, VENDOR_ITEM_REGULAR), + list("Technician Welder-Satchel", floor(scale * 5), /obj/item/storage/backpack/marine/engineerpack/satchel, VENDOR_ITEM_REGULAR), + list("IMP Ammo Rack", floor(scale * 2), /obj/item/storage/backpack/marine/ammo_rack, VENDOR_ITEM_REGULAR), + list("Radio Telephone Pack", floor(scale * 2), /obj/item/storage/backpack/marine/satchel/rto, VENDOR_ITEM_REGULAR), + list("Parachute", floor(scale * 20), /obj/item/parachute, VENDOR_ITEM_REGULAR), list("BELTS", -1, null, null), - list("G8-A General Utility Pouch", round(scale * 2), /obj/item/storage/backpack/general_belt, VENDOR_ITEM_REGULAR), - list("M276 Ammo Load Rig", round(scale * 15), /obj/item/storage/belt/marine, VENDOR_ITEM_REGULAR), - list("M276 General Pistol Holster Rig", round(scale * 10), /obj/item/storage/belt/gun/m4a3, VENDOR_ITEM_REGULAR), - list("M276 Knife Rig", round(scale * 5), /obj/item/storage/belt/knifepouch, VENDOR_ITEM_REGULAR), - list("M276 M39 Holster Rig", round(scale * 5), /obj/item/storage/belt/gun/m39, VENDOR_ITEM_REGULAR), - list("M276 M40 Grenade Rig", round(scale * 2), /obj/item/storage/belt/grenade, VENDOR_ITEM_REGULAR), - list("M276 M44 Holster Rig", round(scale * 5), /obj/item/storage/belt/gun/m44, VENDOR_ITEM_REGULAR), - list("M276 M82F Holster Rig", round(scale * 2), /obj/item/storage/belt/gun/flaregun, VENDOR_ITEM_REGULAR), - list("M276 Shotgun Shell Loading Rig", round(scale * 10), /obj/item/storage/belt/shotgun, VENDOR_ITEM_REGULAR), - list("M276 Mortar Operator Belt", round(scale * 2), /obj/item/storage/belt/gun/mortarbelt, VENDOR_ITEM_REGULAR), - list("Rappel Harness", round(scale * 20), /obj/item/rappel_harness, VENDOR_ITEM_REGULAR), + list("G8-A General Utility Pouch", floor(scale * 2), /obj/item/storage/backpack/general_belt, VENDOR_ITEM_REGULAR), + list("M276 Ammo Load Rig", floor(scale * 15), /obj/item/storage/belt/marine, VENDOR_ITEM_REGULAR), + list("M276 General Pistol Holster Rig", floor(scale * 10), /obj/item/storage/belt/gun/m4a3, VENDOR_ITEM_REGULAR), + list("M276 Knife Rig", floor(scale * 5), /obj/item/storage/belt/knifepouch, VENDOR_ITEM_REGULAR), + list("M276 M39 Holster Rig", floor(scale * 5), /obj/item/storage/belt/gun/m39, VENDOR_ITEM_REGULAR), + list("M276 M40 Grenade Rig", floor(scale * 2), /obj/item/storage/belt/grenade, VENDOR_ITEM_REGULAR), + list("M276 M44 Holster Rig", floor(scale * 5), /obj/item/storage/belt/gun/m44, VENDOR_ITEM_REGULAR), + list("M276 M82F Holster Rig", floor(scale * 2), /obj/item/storage/belt/gun/flaregun, VENDOR_ITEM_REGULAR), + list("M276 Shotgun Shell Loading Rig", floor(scale * 10), /obj/item/storage/belt/shotgun, VENDOR_ITEM_REGULAR), + list("M276 Mortar Operator Belt", floor(scale * 2), /obj/item/storage/belt/gun/mortarbelt, VENDOR_ITEM_REGULAR), list("POUCHES", -1, null, null), - list("Autoinjector Pouch", round(scale * 1), /obj/item/storage/pouch/autoinjector, VENDOR_ITEM_REGULAR), - list("Medical Kit Pouch", round(scale * 2), /obj/item/storage/pouch/medkit, VENDOR_ITEM_REGULAR), - list("First-Aid Pouch (Full)", round(scale * 5), /obj/item/storage/pouch/firstaid/full, VENDOR_ITEM_REGULAR), - list("First Responder Pouch", round(scale * 2), /obj/item/storage/pouch/first_responder, VENDOR_ITEM_REGULAR), - list("Syringe Pouch", round(scale * 2), /obj/item/storage/pouch/syringe, VENDOR_ITEM_REGULAR), - list("Tools Pouch (Full)", round(scale * 2), /obj/item/storage/pouch/tools/full, VENDOR_ITEM_REGULAR), - list("Construction Pouch", round(scale * 2), /obj/item/storage/pouch/construction, VENDOR_ITEM_REGULAR), - list("Electronics Pouch", round(scale * 2), /obj/item/storage/pouch/electronics, VENDOR_ITEM_REGULAR), - list("Explosive Pouch", round(scale * 2), /obj/item/storage/pouch/explosive, VENDOR_ITEM_REGULAR), - list("Flare Pouch (Full)", round(scale * 5), /obj/item/storage/pouch/flare/full, VENDOR_ITEM_REGULAR), - list("Document Pouch", round(scale * 2), /obj/item/storage/pouch/document/small, VENDOR_ITEM_REGULAR), - list("Sling Pouch", round(scale * 2), /obj/item/storage/pouch/sling, VENDOR_ITEM_REGULAR), + list("Autoinjector Pouch", floor(scale * 1), /obj/item/storage/pouch/autoinjector, VENDOR_ITEM_REGULAR), + list("Medical Kit Pouch", floor(scale * 2), /obj/item/storage/pouch/medkit, VENDOR_ITEM_REGULAR), + list("First-Aid Pouch (Full)", floor(scale * 5), /obj/item/storage/pouch/firstaid/full, VENDOR_ITEM_REGULAR), + list("First Responder Pouch", floor(scale * 2), /obj/item/storage/pouch/first_responder, VENDOR_ITEM_REGULAR), + list("Syringe Pouch", floor(scale * 2), /obj/item/storage/pouch/syringe, VENDOR_ITEM_REGULAR), + list("Tools Pouch (Full)", floor(scale * 2), /obj/item/storage/pouch/tools/full, VENDOR_ITEM_REGULAR), + list("Construction Pouch", floor(scale * 2), /obj/item/storage/pouch/construction, VENDOR_ITEM_REGULAR), + list("Electronics Pouch", floor(scale * 2), /obj/item/storage/pouch/electronics, VENDOR_ITEM_REGULAR), + list("Explosive Pouch", floor(scale * 2), /obj/item/storage/pouch/explosive, VENDOR_ITEM_REGULAR), + list("Flare Pouch (Full)", floor(scale * 5), /obj/item/storage/pouch/flare/full, VENDOR_ITEM_REGULAR), + list("Document Pouch", floor(scale * 2), /obj/item/storage/pouch/document/small, VENDOR_ITEM_REGULAR), + list("Sling Pouch", floor(scale * 2), /obj/item/storage/pouch/sling, VENDOR_ITEM_REGULAR), list("Machete Pouch (Full)", 1, /obj/item/storage/pouch/machete/full, VENDOR_ITEM_REGULAR), - list("Bayonet Pouch", round(scale * 2), /obj/item/storage/pouch/bayonet, VENDOR_ITEM_REGULAR), - list("Medium General Pouch", round(scale * 2), /obj/item/storage/pouch/general/medium, VENDOR_ITEM_REGULAR), - list("Magazine Pouch", round(scale * 5), /obj/item/storage/pouch/magazine, VENDOR_ITEM_REGULAR), - list("Shotgun Shell Pouch", round(scale * 5), /obj/item/storage/pouch/shotgun, VENDOR_ITEM_REGULAR), - list("Sidearm Pouch", round(scale * 5), /obj/item/storage/pouch/pistol, VENDOR_ITEM_REGULAR), - list("Large Pistol Magazine Pouch", round(scale * 5), /obj/item/storage/pouch/magazine/pistol/large, VENDOR_ITEM_REGULAR), - list("Fuel Tank Strap Pouch", round(scale * 4), /obj/item/storage/pouch/flamertank, VENDOR_ITEM_REGULAR), - list("Large General Pouch", round(scale * 1), /obj/item/storage/pouch/general/large, VENDOR_ITEM_REGULAR), - list("Large Magazine Pouch", round(scale * 1), /obj/item/storage/pouch/magazine/large, VENDOR_ITEM_REGULAR), - list("Large Shotgun Shell Pouch", round(scale * 1), /obj/item/storage/pouch/shotgun/large, VENDOR_ITEM_REGULAR), + list("Bayonet Pouch", floor(scale * 2), /obj/item/storage/pouch/bayonet, VENDOR_ITEM_REGULAR), + list("Medium General Pouch", floor(scale * 2), /obj/item/storage/pouch/general/medium, VENDOR_ITEM_REGULAR), + list("Magazine Pouch", floor(scale * 5), /obj/item/storage/pouch/magazine, VENDOR_ITEM_REGULAR), + list("Shotgun Shell Pouch", floor(scale * 5), /obj/item/storage/pouch/shotgun, VENDOR_ITEM_REGULAR), + list("Sidearm Pouch", floor(scale * 5), /obj/item/storage/pouch/pistol, VENDOR_ITEM_REGULAR), + list("Large Pistol Magazine Pouch", floor(scale * 5), /obj/item/storage/pouch/magazine/pistol/large, VENDOR_ITEM_REGULAR), + list("Fuel Tank Strap Pouch", floor(scale * 4), /obj/item/storage/pouch/flamertank, VENDOR_ITEM_REGULAR), + list("Large General Pouch", floor(scale * 1), /obj/item/storage/pouch/general/large, VENDOR_ITEM_REGULAR), + list("Large Magazine Pouch", floor(scale * 1), /obj/item/storage/pouch/magazine/large, VENDOR_ITEM_REGULAR), + list("Large Shotgun Shell Pouch", floor(scale * 1), /obj/item/storage/pouch/shotgun/large, VENDOR_ITEM_REGULAR), list("MISCELLANEOUS", -1, null, null), - list("Combat Flashlight", round(scale * 5), /obj/item/device/flashlight/combat, VENDOR_ITEM_REGULAR), - list("Entrenching Tool", round(scale * 4), /obj/item/tool/shovel/etool/folded, VENDOR_ITEM_REGULAR), - list("Gas Mask", round(scale * 10), /obj/item/clothing/mask/gas, VENDOR_ITEM_REGULAR), - list("M89-S Signal Flare Pack", round(scale * 2), /obj/item/storage/box/m94/signal, VENDOR_ITEM_REGULAR), - list("M94 Marking Flare Pack", round(scale * 10), /obj/item/storage/box/m94, VENDOR_ITEM_REGULAR), - list("Machete Scabbard (Full)", round(scale * 6), /obj/item/storage/large_holster/machete/full, VENDOR_ITEM_REGULAR), - list("MB-6 Folding Barricades (x3)", round(scale * 3), /obj/item/stack/folding_barricade/three, VENDOR_ITEM_REGULAR), - list("Motion Detector", round(scale * 4), /obj/item/device/motiondetector, VENDOR_ITEM_REGULAR), - list("Data Detector", round(scale * 4), /obj/item/device/motiondetector/intel, VENDOR_ITEM_REGULAR), - list("Binoculars", round(scale * 2), /obj/item/device/binoculars, VENDOR_ITEM_REGULAR), - list("Rangefinder", round(scale * 1), /obj/item/device/binoculars/range, VENDOR_ITEM_REGULAR), - list("Laser Designator", round(scale * 1), /obj/item/device/binoculars/range/designator, VENDOR_ITEM_REGULAR), - list("Welding Goggles", round(scale * 3), /obj/item/clothing/glasses/welding, VENDOR_ITEM_REGULAR), - list("Fire Extinguisher (Portable)", round(scale * 3), /obj/item/tool/extinguisher/mini, VENDOR_ITEM_REGULAR), - list("High-Capacity Power Cell", round(scale * 1), /obj/item/cell/high, VENDOR_ITEM_REGULAR), - list("Fulton Device Stack", round(scale * 1), /obj/item/stack/fulton, VENDOR_ITEM_REGULAR), + list("Combat Flashlight", floor(scale * 5), /obj/item/device/flashlight/combat, VENDOR_ITEM_REGULAR), + list("Entrenching Tool", floor(scale * 4), /obj/item/tool/shovel/etool/folded, VENDOR_ITEM_REGULAR), + list("Gas Mask", floor(scale * 10), /obj/item/clothing/mask/gas, VENDOR_ITEM_REGULAR), + list("M89-S Signal Flare Pack", floor(scale * 2), /obj/item/storage/box/m94/signal, VENDOR_ITEM_REGULAR), + list("M94 Marking Flare Pack", floor(scale * 10), /obj/item/storage/box/m94, VENDOR_ITEM_REGULAR), + list("Machete Scabbard (Full)", floor(scale * 6), /obj/item/storage/large_holster/machete/full, VENDOR_ITEM_REGULAR), + list("MB-6 Folding Barricades (x3)", floor(scale * 3), /obj/item/stack/folding_barricade/three, VENDOR_ITEM_REGULAR), + list("Motion Detector", floor(scale * 4), /obj/item/device/motiondetector, VENDOR_ITEM_REGULAR), + list("Data Detector", floor(scale * 4), /obj/item/device/motiondetector/intel, VENDOR_ITEM_REGULAR), + list("Binoculars", floor(scale * 2), /obj/item/device/binoculars, VENDOR_ITEM_REGULAR), + list("Rangefinder", floor(scale * 1), /obj/item/device/binoculars/range, VENDOR_ITEM_REGULAR), + list("Laser Designator", floor(scale * 1), /obj/item/device/binoculars/range/designator, VENDOR_ITEM_REGULAR), + list("Welding Goggles", floor(scale * 3), /obj/item/clothing/glasses/welding, VENDOR_ITEM_REGULAR), + list("Fire Extinguisher (Portable)", floor(scale * 3), /obj/item/tool/extinguisher/mini, VENDOR_ITEM_REGULAR), + list("High-Capacity Power Cell", floor(scale * 1), /obj/item/cell/high, VENDOR_ITEM_REGULAR), + list("Fulton Device Stack", floor(scale * 1), /obj/item/stack/fulton, VENDOR_ITEM_REGULAR), list("Sentry Gun Network Laptop", 4, /obj/item/device/sentry_computer, VENDOR_ITEM_REGULAR), - list("JTAC Pamphlet", round(scale * 1), /obj/item/pamphlet/skill/jtac, VENDOR_ITEM_REGULAR), - list("Engineering Pamphlet", round(scale * 1), /obj/item/pamphlet/skill/engineer, VENDOR_ITEM_REGULAR), + list("JTAC Pamphlet", floor(scale * 1), /obj/item/pamphlet/skill/jtac, VENDOR_ITEM_REGULAR), + list("Engineering Pamphlet", floor(scale * 1), /obj/item/pamphlet/skill/engineer, VENDOR_ITEM_REGULAR), list("Powerloader Certification", 0.75, /obj/item/pamphlet/skill/powerloader, VENDOR_ITEM_REGULAR), - list("Spare PDT/L Battle Buddy Kit", round(scale * 4), /obj/item/storage/box/pdt_kit, VENDOR_ITEM_REGULAR), - list("W-Y brand rechargeable mini-battery", round(scale * 3), /obj/item/cell/crap, VENDOR_ITEM_REGULAR) + list("Spare PDT/L Battle Buddy Kit", floor(scale * 4), /obj/item/storage/box/pdt_kit, VENDOR_ITEM_REGULAR), + list("W-Y brand rechargeable mini-battery", floor(scale * 3), /obj/item/cell/crap, VENDOR_ITEM_REGULAR), + + list("EXPLOSIVES BOXES", -1, null, null), + list("M15 Fragmentation Grenade Packet", 0, /obj/item/storage/box/packet/m15, VENDOR_ITEM_REGULAR), + list("M40 HEDP Grenade Packet", 0, /obj/item/storage/box/packet/high_explosive, VENDOR_ITEM_REGULAR), + list("M40 HEDP Grenade Box", 0, /obj/item/storage/box/nade_box, VENDOR_ITEM_REGULAR), + list("M40 HIDP Grenade Packet", 0, /obj/item/storage/box/packet/incendiary, VENDOR_ITEM_REGULAR), + list("M40 HPDP Grenade Box", 0, /obj/item/storage/box/nade_box/phophorus, VENDOR_ITEM_REGULAR), + list("M40 HSDP Grenade Packet", 0, /obj/item/storage/box/packet/smoke, VENDOR_ITEM_REGULAR), + list("M40 HIRR Baton Slug Packet", 0, /obj/item/storage/box/packet/baton_slug, VENDOR_ITEM_REGULAR), + list("M74 AGM-Airburst Grenade Packet", 0, /obj/item/storage/box/packet/airburst_he, VENDOR_ITEM_REGULAR), + list("M74 AGM-F grenade box", 0, /obj/item/storage/box/nade_box/airburst, VENDOR_ITEM_REGULAR), + list("M74 AGM-Airburst Incendiary Grenade Packet", 0, /obj/item/storage/box/packet/airburst_incen, VENDOR_ITEM_REGULAR), + list("M74 AGM-Airburst Smoke Grenade Packet", 0, /obj/item/storage/box/packet/airburst_smoke, VENDOR_ITEM_REGULAR), + list("M74 AGM-S Star Shell Packet", 0, /obj/item/storage/box/packet/flare, VENDOR_ITEM_REGULAR), + list("M74 AGM-H Hornet Shell Packet", 0, /obj/item/storage/box/packet/hornet, VENDOR_ITEM_REGULAR), + list("M20 mine box", 0, /obj/item/storage/box/explosive_mines, VENDOR_ITEM_REGULAR), + + list("OTHER BOXES", -1, null, null), + list("Box of M94 Marking Flare Packs", 0, /obj/item/ammo_box/magazine/misc/flares, VENDOR_ITEM_REGULAR), + list("Box of M89 Signal Flare Packs", 0, /obj/item/ammo_box/magazine/misc/flares/signal, VENDOR_ITEM_REGULAR), + list("Box of High-Capacity Power Cells", 0, /obj/item/ammo_box/magazine/misc/power_cell, VENDOR_ITEM_REGULAR) ) /obj/structure/machinery/cm_vending/sorted/cargo_guns/stock(obj/item/item_to_stock, mob/user) @@ -207,48 +229,76 @@ /obj/structure/machinery/cm_vending/sorted/cargo_ammo/populate_product_list(scale) listed_products = list( list("REGULAR AMMUNITION", -1, null, null), - list("Box Of Buckshot Shells", round(scale * 20), /obj/item/ammo_magazine/shotgun/buckshot, VENDOR_ITEM_REGULAR), - list("Box Of Flechette Shells", round(scale * 8), /obj/item/ammo_magazine/shotgun/flechette, VENDOR_ITEM_REGULAR), - list("Box Of Shotgun Slugs", round(scale * 20), /obj/item/ammo_magazine/shotgun/slugs, VENDOR_ITEM_REGULAR), - list("M4RA Magazine (10x24mm)", round(scale * 30), /obj/item/ammo_magazine/rifle/m4ra, VENDOR_ITEM_REGULAR), - list("M41A MK2 Magazine (10x24mm)", round(scale * 50), /obj/item/ammo_magazine/rifle, VENDOR_ITEM_REGULAR), - list("M39 HV Magazine (10x20mm)", round(scale * 50), /obj/item/ammo_magazine/smg/m39, VENDOR_ITEM_REGULAR), - list("M44 Speed Loader (.44)", round(scale * 40), /obj/item/ammo_magazine/revolver, VENDOR_ITEM_REGULAR), - list("M4A3 Magazine (9mm)", round(scale * 50), /obj/item/ammo_magazine/pistol, VENDOR_ITEM_REGULAR), + list("Box Of Buckshot Shells", floor(scale * 56), /obj/item/ammo_magazine/shotgun/buckshot, VENDOR_ITEM_REGULAR), + list("Box Of Flechette Shells", floor(scale * 56), /obj/item/ammo_magazine/shotgun/flechette, VENDOR_ITEM_REGULAR), + list("Box Of Shotgun Slugs", floor(scale * 56), /obj/item/ammo_magazine/shotgun/slugs, VENDOR_ITEM_REGULAR), + list("M4RA Magazine (10x24mm)", floor(scale * 60), /obj/item/ammo_magazine/rifle/m4ra, VENDOR_ITEM_REGULAR), + list("M41A MK2 Magazine (10x24mm)", floor(scale * 100), /obj/item/ammo_magazine/rifle, VENDOR_ITEM_REGULAR), + list("M39 HV Magazine (10x20mm)", floor(scale * 100), /obj/item/ammo_magazine/smg/m39, VENDOR_ITEM_REGULAR), + list("M44 Speed Loader (.44)", floor(scale * 80), /obj/item/ammo_magazine/revolver, VENDOR_ITEM_REGULAR), + list("M4A3 Magazine (9mm)", floor(scale * 100), /obj/item/ammo_magazine/pistol, VENDOR_ITEM_REGULAR), list("ARMOR-PIERCING AMMUNITION", -1, null, null), - list("88 Mod 4 AP Magazine (9mm)", round(scale * 50), /obj/item/ammo_magazine/pistol/mod88, VENDOR_ITEM_REGULAR), - list("M4RA AP Magazine (10x24mm)", round(scale * 16), /obj/item/ammo_magazine/rifle/m4ra/ap, VENDOR_ITEM_REGULAR), - list("M39 AP Magazine (10x20mm)", round(scale * 12), /obj/item/ammo_magazine/smg/m39/ap, VENDOR_ITEM_REGULAR), - list("M41A MK2 AP Magazine (10x24mm)", round(scale * 10), /obj/item/ammo_magazine/rifle/ap, VENDOR_ITEM_REGULAR), - list("M4A3 AP Magazine (9mm)", round(scale * 2), /obj/item/ammo_magazine/pistol/ap, VENDOR_ITEM_REGULAR), + list("88 Mod 4 AP Magazine (9mm)", floor(scale * 50), /obj/item/ammo_magazine/pistol/mod88, VENDOR_ITEM_REGULAR), + list("M4RA AP Magazine (10x24mm)", floor(scale * 16), /obj/item/ammo_magazine/rifle/m4ra/ap, VENDOR_ITEM_REGULAR), + list("M39 AP Magazine (10x20mm)", floor(scale * 12), /obj/item/ammo_magazine/smg/m39/ap, VENDOR_ITEM_REGULAR), + list("M41A MK2 AP Magazine (10x24mm)", floor(scale * 10), /obj/item/ammo_magazine/rifle/ap, VENDOR_ITEM_REGULAR), + list("M4A3 AP Magazine (9mm)", floor(scale * 2), /obj/item/ammo_magazine/pistol/ap, VENDOR_ITEM_REGULAR), list("EXTENDED AMMUNITION", -1, null, null), - list("M39 Extended Magazine (10x20mm)", round(scale * 10), /obj/item/ammo_magazine/smg/m39/extended, VENDOR_ITEM_REGULAR), - list("M41A MK2 Extended Magazine (10x24mm)", round(scale * 8), /obj/item/ammo_magazine/rifle/extended, VENDOR_ITEM_REGULAR), + list("M39 Extended Magazine (10x20mm)", floor(scale * 10), /obj/item/ammo_magazine/smg/m39/extended, VENDOR_ITEM_REGULAR), + list("M41A MK2 Extended Magazine (10x24mm)", floor(scale * 8), /obj/item/ammo_magazine/rifle/extended, VENDOR_ITEM_REGULAR), list("SPECIAL AMMUNITION", -1, null, null), - list("M56 Battery", 4, /obj/item/smartgun_battery, VENDOR_ITEM_REGULAR), + list("M56 DV9 Battery", 4, /obj/item/smartgun_battery, VENDOR_ITEM_REGULAR), list("M56 Smartgun Drum", 4, /obj/item/ammo_magazine/smartgun, VENDOR_ITEM_REGULAR), list("M44 Heavy Speed Loader (.44)", 10, /obj/item/ammo_magazine/revolver/heavy, VENDOR_ITEM_REGULAR), list("M44 Marksman Speed Loader (.44)", 6, /obj/item/ammo_magazine/revolver/marksman, VENDOR_ITEM_REGULAR), - list("M4A3 HP Magazine (9mm)", round(scale * 2), /obj/item/ammo_magazine/pistol/hp, VENDOR_ITEM_REGULAR), - list("M41AE2 Holo Target Rounds (10x24mm)", round(scale * 2), /obj/item/ammo_magazine/rifle/lmg/holo_target, VENDOR_ITEM_REGULAR), + list("M4A3 HP Magazine (9mm)", floor(scale * 2), /obj/item/ammo_magazine/pistol/hp, VENDOR_ITEM_REGULAR), + list("M41AE2 Holo Target Rounds (10x24mm)", floor(scale * 2), /obj/item/ammo_magazine/rifle/lmg/holo_target, VENDOR_ITEM_REGULAR), list("RESTRICTED FIREARM AMMUNITION", -1, null, null), list("VP78 Magazine", 11, /obj/item/ammo_magazine/pistol/vp78, VENDOR_ITEM_REGULAR), list("SU-6 Smartpistol Magazine (.45)", 13, /obj/item/ammo_magazine/pistol/smart, VENDOR_ITEM_REGULAR), - list("M240 Incinerator Tank", round(scale * 3), /obj/item/ammo_magazine/flamer_tank, VENDOR_ITEM_REGULAR), - list("M41AE2 Box Magazine (10x24mm)", round(scale * 3), /obj/item/ammo_magazine/rifle/lmg, VENDOR_ITEM_REGULAR), + list("M240 Incinerator Tank", floor(scale * 3), /obj/item/ammo_magazine/flamer_tank, VENDOR_ITEM_REGULAR), + list("M41AE2 Box Magazine (10x24mm)", floor(scale * 3), /obj/item/ammo_magazine/rifle/lmg, VENDOR_ITEM_REGULAR), list("M41A MK1 Magazine (10x24mm)", 4.5, /obj/item/ammo_magazine/rifle/m41aMK1, VENDOR_ITEM_REGULAR), - list("M41A MK1 AP Magazine (10x24mm)", round(scale * 2), /obj/item/ammo_magazine/rifle/m41aMK1/ap, VENDOR_ITEM_REGULAR), - list("M56D Drum Magazine", round(scale * 2), /obj/item/ammo_magazine/m56d, VENDOR_ITEM_REGULAR), - list("M2C Box Magazine", round(scale * 2), /obj/item/ammo_magazine/m2c, VENDOR_ITEM_REGULAR), - - list("SHOTGUN SHELL BOXES", -1, null, null), - list("Shotgun Shell Box (Buckshot x 100)", round(scale * 2), /obj/item/ammo_box/magazine/shotgun/buckshot, VENDOR_ITEM_REGULAR), - list("Shotgun Shell Box (Flechette x 100)", round(scale * 2), /obj/item/ammo_box/magazine/shotgun/flechette, VENDOR_ITEM_REGULAR), - list("Shotgun Shell Box (Slugs x 100)", round(scale * 2), /obj/item/ammo_box/magazine/shotgun, VENDOR_ITEM_REGULAR), + list("M41A MK1 AP Magazine (10x24mm)", floor(scale * 2), /obj/item/ammo_magazine/rifle/m41aMK1/ap, VENDOR_ITEM_REGULAR), + list("M56D Drum Magazine", floor(scale * 2), /obj/item/ammo_magazine/m56d, VENDOR_ITEM_REGULAR), + list("M2C Box Magazine", floor(scale * 2), /obj/item/ammo_magazine/m2c, VENDOR_ITEM_REGULAR), + list("XM51 Magazine (16g)", floor(scale * 3), /obj/item/ammo_magazine/rifle/xm51, VENDOR_ITEM_REGULAR), + + list("MAGAZINE BOXES", -1, null, null), + list("Magazine Box (M39 x 12)", 0, /obj/item/ammo_box/magazine/m39, VENDOR_ITEM_REGULAR), + list("Magazine Box (AP M39 x 12)", 0, /obj/item/ammo_box/magazine/m39/ap, VENDOR_ITEM_REGULAR), + list("Magazine Box (Ext M39 x 10)", 0, /obj/item/ammo_box/magazine/m39/ext, VENDOR_ITEM_REGULAR), + list("Magazine Box (M41A x 10)", 0, /obj/item/ammo_box/magazine, VENDOR_ITEM_REGULAR), + list("Magazine Box (AP M41A x 10)", 0, /obj/item/ammo_box/magazine/ap, VENDOR_ITEM_REGULAR), + list("Magazine Box (Ext M41A x 8)", 0, /obj/item/ammo_box/magazine/ext, VENDOR_ITEM_REGULAR), + list("Magazine Box (M4A3 x 16)", 0, /obj/item/ammo_box/magazine/m4a3, VENDOR_ITEM_REGULAR), + list("Magazine Box (AP M4A3 x 16)", 0, /obj/item/ammo_box/magazine/m4a3/ap, VENDOR_ITEM_REGULAR), + list("Magazine Box (HP M4A3 x 16)", 0, /obj/item/ammo_box/magazine/m4a3/hp, VENDOR_ITEM_REGULAR), + list("Magazine Box (M4RA x 16)", 0, /obj/item/ammo_box/magazine/m4ra, VENDOR_ITEM_REGULAR), + list("Magazine Box (AP M4RA x 16)", 0, /obj/item/ammo_box/magazine/m4ra/ap, VENDOR_ITEM_REGULAR), + list("Magazine Box (M41AE2 x 8)", 0, /obj/item/ammo_box/magazine/m41ae2, VENDOR_ITEM_REGULAR), + list("Magazine Box (M41AE2 Holo-Target x 8)", 0, /obj/item/ammo_box/magazine/m41ae2/holo, VENDOR_ITEM_REGULAR), + list("Magazine Box (M41A MK1 x 8)", 0, /obj/item/ammo_box/magazine/mk1, VENDOR_ITEM_REGULAR), + list("Magazine Box (M41A MK1 AP x 8)", 0, /obj/item/ammo_box/magazine/mk1/ap, VENDOR_ITEM_REGULAR), + list("Shotgun Shell Box (Buckshot x 100)", 0, /obj/item/ammo_box/magazine/shotgun/buckshot, VENDOR_ITEM_REGULAR), + list("Shotgun Shell Box (Flechette x 100)", 0, /obj/item/ammo_box/magazine/shotgun/flechette, VENDOR_ITEM_REGULAR), + list("Shotgun Shell Box (Slugs x 100)", 0, /obj/item/ammo_box/magazine/shotgun, VENDOR_ITEM_REGULAR), + list("Shotgun Shell Box (16g) (Breaching x 120)", 1, /obj/item/ammo_box/magazine/shotgun/light/breaching, VENDOR_ITEM_REGULAR), + list("Magazine Box (88 Mod 4 AP x 16)", 0, /obj/item/ammo_box/magazine/mod88, VENDOR_ITEM_REGULAR), + list("Magazine Box (SU-6 x 16)", 0, /obj/item/ammo_box/magazine/su6, VENDOR_ITEM_REGULAR), + list("Magazine Box (VP78 x 16)", 0, /obj/item/ammo_box/magazine/vp78, VENDOR_ITEM_REGULAR), + list("Magazine Box (XM51 x 8)", 0, /obj/item/ammo_box/magazine/xm51, VENDOR_ITEM_REGULAR), + list("Ammo Box (M2C x 8)", 0, /obj/item/ammo_box/magazine/m2c, VENDOR_ITEM_REGULAR), + list("Drum Box (M56B x 8)", 0, /obj/item/ammo_box/magazine/m56b, VENDOR_ITEM_REGULAR), + list("Drum Box (M56D x 8)", 0, /obj/item/ammo_box/magazine/m56d, VENDOR_ITEM_REGULAR), + list("Speed Loaders Box (M44 x 16)", 0, /obj/item/ammo_box/magazine/m44, VENDOR_ITEM_REGULAR), + list("Speed Loaders Box (Marksman M44 x 16)", 0, /obj/item/ammo_box/magazine/m44/marksman, VENDOR_ITEM_REGULAR), + list("Speed Loaders Box (Heavy M44 x 16)", 0, /obj/item/ammo_box/magazine/m44/heavy, VENDOR_ITEM_REGULAR), + list("Flamer Tank Box (UT-Napthal Fuel x 8)", 0, /obj/item/ammo_box/magazine/flamer, VENDOR_ITEM_REGULAR), ) /obj/structure/machinery/cm_vending/sorted/cargo_ammo/stock(obj/item/item_to_stock, mob/user) @@ -385,11 +435,11 @@ list("M10 Pattern Marine Helmet", 20, /obj/item/clothing/head/helmet/marine, VENDOR_ITEM_REGULAR), list("M10 Pattern Technician Helmet", 20, /obj/item/clothing/head/helmet/marine/tech, VENDOR_ITEM_REGULAR), list("M10 Pattern Corpman Helmet", 20, /obj/item/clothing/head/helmet/marine/medic, VENDOR_ITEM_REGULAR), - list("M3 Pattern Carrier Marine Armor", 20, /obj/item/clothing/suit/storage/marine/carrier, VENDOR_ITEM_REGULAR), - list("M3 Pattern Padded Marine Armor", 20, /obj/item/clothing/suit/storage/marine/padded, VENDOR_ITEM_REGULAR), - list("M3 Pattern Padless Marine Armor", 20, /obj/item/clothing/suit/storage/marine/padless, VENDOR_ITEM_REGULAR), - list("M3 Pattern Ridged Marine Armor", 20, /obj/item/clothing/suit/storage/marine/padless_lines, VENDOR_ITEM_REGULAR), - list("M3 Pattern Skull Marine Armor", 20, /obj/item/clothing/suit/storage/marine/skull, VENDOR_ITEM_REGULAR), + list("M3 Pattern Carrier Marine Armor", 20, /obj/item/clothing/suit/storage/marine/medium/carrier, VENDOR_ITEM_REGULAR), + list("M3 Pattern Padded Marine Armor", 20, /obj/item/clothing/suit/storage/marine/medium/padded, VENDOR_ITEM_REGULAR), + list("M3 Pattern Padless Marine Armor", 20, /obj/item/clothing/suit/storage/marine/medium/padless, VENDOR_ITEM_REGULAR), + list("M3 Pattern Ridged Marine Armor", 20, /obj/item/clothing/suit/storage/marine/medium/padless_lines, VENDOR_ITEM_REGULAR), + list("M3 Pattern Skull Marine Armor", 20, /obj/item/clothing/suit/storage/marine/medium/skull, VENDOR_ITEM_REGULAR), list("M3-EOD Pattern Heavy Armor", 10, /obj/item/clothing/suit/storage/marine/heavy, VENDOR_ITEM_REGULAR), list("M3-L Pattern Light Armor", 10, /obj/item/clothing/suit/storage/marine/light, VENDOR_ITEM_REGULAR), @@ -406,6 +456,7 @@ list("Engineering Radio Encryption Key", 5, /obj/item/device/encryptionkey/engi, VENDOR_ITEM_REGULAR), list("Intel Radio Encryption Key", 5, /obj/item/device/encryptionkey/intel, VENDOR_ITEM_REGULAR), list("JTAC Radio Encryption Key", 5, /obj/item/device/encryptionkey/jtac, VENDOR_ITEM_REGULAR), + list("Medical Radio Encryption Key", 5, /obj/item/device/encryptionkey/med, VENDOR_ITEM_REGULAR), list("Sentry Gun Network Encryption Key", 8, /obj/item/device/encryptionkey/sentry_laptop, VENDOR_ITEM_REGULAR), list("Marine Radio Headset", 5, /obj/item/device/radio/headset/almayer, VENDOR_ITEM_REGULAR), list("Supply Radio Encryption Key", 5, /obj/item/device/encryptionkey/req, VENDOR_ITEM_REGULAR), @@ -434,13 +485,13 @@ //Marine armor handling if(istype(item_to_stock, /obj/item/clothing/suit/storage/marine)) var/obj/item/clothing/suit/storage/marine/AR = item_to_stock - if(AR.pockets && AR.pockets.contents.len) + if(AR.pockets && length(AR.pockets.contents)) to_chat(user, SPAN_WARNING("\The [AR] has something inside it. Empty it before restocking.")) return //Marine helmet handling else if(istype(item_to_stock, /obj/item/clothing/head/helmet/marine)) var/obj/item/clothing/head/helmet/marine/H = item_to_stock - if(H.pockets && H.pockets.contents.len) + if(H.pockets && length(H.pockets.contents)) to_chat(user, SPAN_WARNING("\The [H] has something inside it. Empty it before restocking.")) return @@ -471,33 +522,33 @@ /obj/structure/machinery/cm_vending/sorted/cargo_guns/squad_prep/training/populate_product_list(scale) listed_products = list( list("PRIMARY FIREARMS", -1, null, null), - list("M4RA Battle Rifle", round(scale * 10), /obj/item/weapon/gun/rifle/m4ra, VENDOR_ITEM_REGULAR), - list("M37A2 Pump Shotgun", round(scale * 15), /obj/item/weapon/gun/shotgun/pump, VENDOR_ITEM_REGULAR), - list("M39 Submachine Gun", round(scale * 30), /obj/item/weapon/gun/smg/m39, VENDOR_ITEM_REGULAR), - list("M41A Pulse Rifle MK2", round(scale * 30), /obj/item/weapon/gun/rifle/m41a, VENDOR_ITEM_RECOMMENDED), + list("M4RA Battle Rifle", floor(scale * 10), /obj/item/weapon/gun/rifle/m4ra, VENDOR_ITEM_REGULAR), + list("M37A2 Pump Shotgun", floor(scale * 15), /obj/item/weapon/gun/shotgun/pump, VENDOR_ITEM_REGULAR), + list("M39 Submachine Gun", floor(scale * 30), /obj/item/weapon/gun/smg/m39, VENDOR_ITEM_REGULAR), + list("M41A Pulse Rifle MK2", floor(scale * 30), /obj/item/weapon/gun/rifle/m41a, VENDOR_ITEM_RECOMMENDED), list("PRIMARY NONLETHAL AMMUNITION", -1, null, null), - list("Box of Beanbag Shells (12g)", round(scale * 15), /obj/item/ammo_magazine/shotgun/beanbag, VENDOR_ITEM_REGULAR), - list("M4RA Rubber Magazine (10x24mm)", round(scale * 15), /obj/item/ammo_magazine/rifle/m4ra/rubber, VENDOR_ITEM_REGULAR), - list("M39 Rubber Magazine (10x20mm)", round(scale * 25), /obj/item/ammo_magazine/smg/m39/rubber, VENDOR_ITEM_REGULAR), - list("M41A Rubber Magazine (10x24mm)", round(scale * 25), /obj/item/ammo_magazine/rifle/rubber, VENDOR_ITEM_REGULAR), + list("Box of Beanbag Shells (12g)", floor(scale * 15), /obj/item/ammo_magazine/shotgun/beanbag, VENDOR_ITEM_REGULAR), + list("M4RA Rubber Magazine (10x24mm)", floor(scale * 15), /obj/item/ammo_magazine/rifle/m4ra/rubber, VENDOR_ITEM_REGULAR), + list("M39 Rubber Magazine (10x20mm)", floor(scale * 25), /obj/item/ammo_magazine/smg/m39/rubber, VENDOR_ITEM_REGULAR), + list("M41A Rubber Magazine (10x24mm)", floor(scale * 25), /obj/item/ammo_magazine/rifle/rubber, VENDOR_ITEM_REGULAR), list("SIDEARMS", -1, null, null), - list("88 Mod 4 Combat Pistol", round(scale * 25), /obj/item/weapon/gun/pistol/mod88, VENDOR_ITEM_REGULAR), - list("M4A3 Service Pistol", round(scale * 25), /obj/item/weapon/gun/pistol/m4a3, VENDOR_ITEM_REGULAR), + list("88 Mod 4 Combat Pistol", floor(scale * 25), /obj/item/weapon/gun/pistol/mod88, VENDOR_ITEM_REGULAR), + list("M4A3 Service Pistol", floor(scale * 25), /obj/item/weapon/gun/pistol/m4a3, VENDOR_ITEM_REGULAR), list("SIDEARM NONLETHAL AMMUNITION", -1, null, null), - list("88M4 Rubber Magazine (9mm)", round(scale * 25), /obj/item/ammo_magazine/pistol/mod88/rubber, VENDOR_ITEM_REGULAR), - list("M4A3 Rubber Magazine (9mm)", round(scale * 25), /obj/item/ammo_magazine/pistol/rubber, VENDOR_ITEM_REGULAR), + list("88M4 Rubber Magazine (9mm)", floor(scale * 25), /obj/item/ammo_magazine/pistol/mod88/rubber, VENDOR_ITEM_REGULAR), + list("M4A3 Rubber Magazine (9mm)", floor(scale * 25), /obj/item/ammo_magazine/pistol/rubber, VENDOR_ITEM_REGULAR), list("ATTACHMENTS", -1, null, null), - list("Rail Flashlight", round(scale * 25), /obj/item/attachable/flashlight, VENDOR_ITEM_RECOMMENDED), - list("Underbarrel Flashlight Grip", round(scale * 10), /obj/item/attachable/flashlight/grip, VENDOR_ITEM_RECOMMENDED), - list("Underslung Grenade Launcher", round(scale * 25), /obj/item/attachable/attached_gun/grenade, VENDOR_ITEM_REGULAR), //They already get these as on-spawns, might as well formalize some spares. + list("Rail Flashlight", floor(scale * 25), /obj/item/attachable/flashlight, VENDOR_ITEM_RECOMMENDED), + list("Underbarrel Flashlight Grip", floor(scale * 10), /obj/item/attachable/flashlight/grip, VENDOR_ITEM_RECOMMENDED), + list("Underslung Grenade Launcher", floor(scale * 25), /obj/item/attachable/attached_gun/grenade, VENDOR_ITEM_REGULAR), //They already get these as on-spawns, might as well formalize some spares. list("UTILITIES", -1, null, null), - list("M07 Training Grenade", round(scale * 15), /obj/item/explosive/grenade/high_explosive/training, VENDOR_ITEM_REGULAR), - list("M15 Rubber Pellet Grenade", round(scale * 10), /obj/item/explosive/grenade/high_explosive/m15/rubber, VENDOR_ITEM_REGULAR), - list("M5 Bayonet", round(scale * 25), /obj/item/attachable/bayonet, VENDOR_ITEM_REGULAR), - list("M94 Marking Flare Pack", round(scale * 10), /obj/item/storage/box/m94, VENDOR_ITEM_RECOMMENDED) + list("M07 Training Grenade", floor(scale * 15), /obj/item/explosive/grenade/high_explosive/training, VENDOR_ITEM_REGULAR), + list("M15 Rubber Pellet Grenade", floor(scale * 10), /obj/item/explosive/grenade/high_explosive/m15/rubber, VENDOR_ITEM_REGULAR), + list("M5 Bayonet", floor(scale * 25), /obj/item/attachable/bayonet, VENDOR_ITEM_REGULAR), + list("M94 Marking Flare Pack", floor(scale * 10), /obj/item/storage/box/m94, VENDOR_ITEM_RECOMMENDED) ) diff --git a/code/game/machinery/vending/vendor_types/squad_prep/squad_engineer.dm b/code/game/machinery/vending/vendor_types/squad_prep/squad_engineer.dm index f11d1fd48b87..aaf134c4a459 100644 --- a/code/game/machinery/vending/vendor_types/squad_prep/squad_engineer.dm +++ b/code/game/machinery/vending/vendor_types/squad_prep/squad_engineer.dm @@ -36,16 +36,24 @@ GLOBAL_LIST_INIT(cm_vending_gear_engi, list( list("M20 Mine Box (x4 mines)", 18, /obj/item/storage/box/explosive_mines, null, VENDOR_ITEM_REGULAR), list("M40 MFHS Metal Foam Grenade", 5, /obj/item/explosive/grenade/metal_foam, null, VENDOR_ITEM_REGULAR), - list("AMMUNITION", 0, null, null, null), + list("PRIMARY AMMUNITION", 0, null, null, null), list("M4RA AP Magazine (10x24mm)", 6, /obj/item/ammo_magazine/rifle/m4ra/ap, null, VENDOR_ITEM_REGULAR), list("M39 AP Magazine (10x20mm)", 6, /obj/item/ammo_magazine/smg/m39/ap , null, VENDOR_ITEM_REGULAR), list("M39 Extended Magazine (10x20mm)", 6, /obj/item/ammo_magazine/smg/m39/extended , null, VENDOR_ITEM_REGULAR), list("M41A AP Magazine (10x24mm)", 6, /obj/item/ammo_magazine/rifle/ap , null, VENDOR_ITEM_REGULAR), list("M41A Extended Magazine (10x24mm)", 6, /obj/item/ammo_magazine/rifle/extended , null, VENDOR_ITEM_REGULAR), + list("SIDEARM AMMUNITION", 0, null, null, null), + list("M44 Heavy Speed Loader (.44)", 6, /obj/item/ammo_magazine/revolver/heavy, null, VENDOR_ITEM_REGULAR), + list("M44 Marksman Speed Loader (.44)", 6, /obj/item/ammo_magazine/revolver/marksman, null, VENDOR_ITEM_REGULAR), + list("M4A3 HP Magazine", 3, /obj/item/ammo_magazine/pistol/hp, null, VENDOR_ITEM_REGULAR), + list("M4A3 AP Magazine", 3, /obj/item/ammo_magazine/pistol/ap, null, VENDOR_ITEM_REGULAR), + list("VP78 Magazine", 3, /obj/item/ammo_magazine/pistol/vp78, null, VENDOR_ITEM_REGULAR), + list("SU-6 Smartpistol Magazine (.45)", 6, /obj/item/ammo_magazine/pistol/smart, null, VENDOR_ITEM_REGULAR), + list("ARMORS", 0, null, null, null), - list("M3 B12 Pattern Marine Armor", 24, /obj/item/clothing/suit/storage/marine/leader, null, VENDOR_ITEM_REGULAR), - list("M4 Pattern Armor", 30, /obj/item/clothing/suit/storage/marine/rto, null, VENDOR_ITEM_REGULAR), + list("M3 B12 Pattern Marine Armor", 24, /obj/item/clothing/suit/storage/marine/medium/leader, null, VENDOR_ITEM_REGULAR), + list("M4 Pattern Armor", 16, /obj/item/clothing/suit/storage/marine/medium/rto, null, VENDOR_ITEM_REGULAR), list("RESTRICTED FIREARMS", 0, null, null, null), list("VP78 Pistol", 8, /obj/item/storage/box/guncase/vp78, null, VENDOR_ITEM_REGULAR), @@ -71,6 +79,7 @@ GLOBAL_LIST_INIT(cm_vending_gear_engi, list( list("Whistle", 3, /obj/item/device/whistle, null, VENDOR_ITEM_REGULAR), list("BINOCULARS", 0, null, null, null), + list("Binoculars", 5, /obj/item/device/binoculars, null, VENDOR_ITEM_REGULAR), list("Range Finder", 10, /obj/item/device/binoculars/range, null, VENDOR_ITEM_REGULAR), list("Laser Designator", 15, /obj/item/device/binoculars/range/designator, null, VENDOR_ITEM_REGULAR), @@ -196,7 +205,8 @@ GLOBAL_LIST_INIT(cm_vending_clothing_engi, list( /obj/item/explosive/plastic, /obj/item/stack/sandbags_empty = 25, /obj/item/stack/sheet/metal/large_stack, - /obj/item/stack/sheet/plasteel/medium_stack, + /obj/item/stack/sheet/plasteel/med_large_stack, + /obj/item/circuitboard/apc, /obj/item/cell/high, /obj/item/tool/shovel/etool/folded, /obj/item/device/lightreplacer, diff --git a/code/game/machinery/vending/vendor_types/squad_prep/squad_leader.dm b/code/game/machinery/vending/vendor_types/squad_prep/squad_leader.dm index fc9813f9b172..17d3419ac2f8 100644 --- a/code/game/machinery/vending/vendor_types/squad_prep/squad_leader.dm +++ b/code/game/machinery/vending/vendor_types/squad_prep/squad_leader.dm @@ -16,7 +16,7 @@ GLOBAL_LIST_INIT(cm_vending_gear_leader, list( list("Basic Engineering Supplies", 0, /obj/item/storage/box/kit/engineering_supply_kit, MARINE_CAN_BUY_KIT, VENDOR_ITEM_REGULAR), list("ARMORS", 0, null, null, null), - list("M4 Pattern Armor", 30, /obj/item/clothing/suit/storage/marine/rto, null, VENDOR_ITEM_REGULAR), + list("M4 Pattern Armor", 16, /obj/item/clothing/suit/storage/marine/medium/rto, null, VENDOR_ITEM_REGULAR), list("CLOTHING ITEMS", 0, null, null, null), list("Machete Scabbard (Full)", 4, /obj/item/storage/large_holster/machete/full, null, VENDOR_ITEM_REGULAR), @@ -79,12 +79,22 @@ GLOBAL_LIST_INIT(cm_vending_gear_leader, list( list("Health Analyzer", 4, /obj/item/device/healthanalyzer, null, VENDOR_ITEM_REGULAR), list("Roller Bed", 2, /obj/item/roller, null, VENDOR_ITEM_REGULAR), - list("SPECIAL AMMUNITION", 0, null, null, null), + list("PRIMARY AMMUNITION", 0, null, null, null), list("M4RA AP Magazine (10x24mm)", 6, /obj/item/ammo_magazine/rifle/m4ra/ap, null, VENDOR_ITEM_REGULAR), list("M39 AP Magazine (10x20mm)", 6, /obj/item/ammo_magazine/smg/m39/ap , null, VENDOR_ITEM_REGULAR), list("M39 Extended Magazine (10x20mm)", 6, /obj/item/ammo_magazine/smg/m39/extended , null, VENDOR_ITEM_REGULAR), list("M41A AP Magazine (10x24mm)", 6, /obj/item/ammo_magazine/rifle/ap , null, VENDOR_ITEM_REGULAR), list("M41A Extended Magazine (10x24mm)", 6, /obj/item/ammo_magazine/rifle/extended , null, VENDOR_ITEM_REGULAR), + + list("SIDEARM AMMUNITION", 0, null, null, null), + list("M44 Heavy Speed Loader (.44)", 6, /obj/item/ammo_magazine/revolver/heavy, null, VENDOR_ITEM_REGULAR), + list("M44 Marksman Speed Loader (.44)", 6, /obj/item/ammo_magazine/revolver/marksman, null, VENDOR_ITEM_REGULAR), + list("M4A3 HP Magazine", 3, /obj/item/ammo_magazine/pistol/hp, null, VENDOR_ITEM_REGULAR), + list("M4A3 AP Magazine", 3, /obj/item/ammo_magazine/pistol/ap, null, VENDOR_ITEM_REGULAR), + list("VP78 Magazine", 3, /obj/item/ammo_magazine/pistol/vp78, null, VENDOR_ITEM_REGULAR), + list("SU-6 Smartpistol Magazine (.45)", 6, /obj/item/ammo_magazine/pistol/smart, null, VENDOR_ITEM_REGULAR), + + list("SPECIAL AMMUNITION", 0, null, null, null), list("M240 Incinerator Tank (Napthal)", 3, /obj/item/ammo_magazine/flamer_tank, null, VENDOR_ITEM_REGULAR), list("M240 Incinerator Tank (B-Gel)", 3, /obj/item/ammo_magazine/flamer_tank/gellied, null, VENDOR_ITEM_REGULAR), @@ -117,7 +127,7 @@ GLOBAL_LIST_INIT(cm_vending_gear_leader, list( GLOBAL_LIST_INIT(cm_vending_clothing_leader, list( list("STANDARD EQUIPMENT (TAKE ALL)", 0, null, null, null), list("Standard Marine Apparel", 0, list(/obj/item/clothing/under/marine, /obj/item/clothing/shoes/marine/knife, /obj/item/clothing/gloves/marine, /obj/item/device/radio/headset/almayer/marine, /obj/item/clothing/head/helmet/marine/leader), MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_MANDATORY), - list("B12 Pattern Armor", 0, /obj/item/clothing/suit/storage/marine/leader, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_MANDATORY), + list("B12 Pattern Armor", 0, /obj/item/clothing/suit/storage/marine/medium/leader, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_MANDATORY), list("MRE", 0, /obj/item/storage/box/MRE, MARINE_CAN_BUY_MRE, VENDOR_ITEM_MANDATORY), list("Map", 0, /obj/item/map/current_map, MARINE_CAN_BUY_ATTACHMENT, VENDOR_ITEM_MANDATORY), diff --git a/code/game/machinery/vending/vendor_types/squad_prep/squad_medic.dm b/code/game/machinery/vending/vendor_types/squad_prep/squad_medic.dm index 21485f10c50f..a73df202d4ef 100644 --- a/code/game/machinery/vending/vendor_types/squad_prep/squad_medic.dm +++ b/code/game/machinery/vending/vendor_types/squad_prep/squad_medic.dm @@ -58,16 +58,24 @@ GLOBAL_LIST_INIT(cm_vending_gear_medic, list( list("M74 AGM-Hornet Airburst Packet (x3 airburst grenades", 20, /obj/item/storage/box/packet/hornet, null, VENDOR_ITEM_REGULAR), list("M20 Mine Box (x4 mines)", 20, /obj/item/storage/box/explosive_mines, null, VENDOR_ITEM_REGULAR), - list("AMMUNITION", 0, null, null, null), + list("PRIMARY AMMUNITION", 0, null, null, null), list("M4RA AP Magazine (10x24mm)", 6, /obj/item/ammo_magazine/rifle/m4ra/ap, null, VENDOR_ITEM_REGULAR), list("M39 AP Magazine (10x20mm)", 6, /obj/item/ammo_magazine/smg/m39/ap , null, VENDOR_ITEM_REGULAR), list("M39 Extended Magazine (10x20mm)", 6, /obj/item/ammo_magazine/smg/m39/extended , null, VENDOR_ITEM_REGULAR), list("M41A AP Magazine (10x24mm)", 6, /obj/item/ammo_magazine/rifle/ap , null, VENDOR_ITEM_REGULAR), list("M41A Extended Magazine (10x24mm)", 6, /obj/item/ammo_magazine/rifle/extended , null, VENDOR_ITEM_REGULAR), + list("SIDEARM AMMUNITION", 0, null, null, null), + list("M44 Heavy Speed Loader (.44)", 6, /obj/item/ammo_magazine/revolver/heavy, null, VENDOR_ITEM_REGULAR), + list("M44 Marksman Speed Loader (.44)", 6, /obj/item/ammo_magazine/revolver/marksman, null, VENDOR_ITEM_REGULAR), + list("M4A3 HP Magazine", 3, /obj/item/ammo_magazine/pistol/hp, null, VENDOR_ITEM_REGULAR), + list("M4A3 AP Magazine", 3, /obj/item/ammo_magazine/pistol/ap, null, VENDOR_ITEM_REGULAR), + list("VP78 Magazine", 3, /obj/item/ammo_magazine/pistol/vp78, null, VENDOR_ITEM_REGULAR), + list("SU-6 Smartpistol Magazine (.45)", 6, /obj/item/ammo_magazine/pistol/smart, null, VENDOR_ITEM_REGULAR), + list("ARMORS", 0, null, null, null), - list("M3 B12 Pattern Marine Armor", 28, /obj/item/clothing/suit/storage/marine/leader, null, VENDOR_ITEM_REGULAR), - list("M4 Pattern Armor", 28, /obj/item/clothing/suit/storage/marine/rto, null, VENDOR_ITEM_REGULAR), + list("M3 B12 Pattern Marine Armor", 24, /obj/item/clothing/suit/storage/marine/medium/leader, null, VENDOR_ITEM_REGULAR), + list("M4 Pattern Armor", 16, /obj/item/clothing/suit/storage/marine/medium/rto, null, VENDOR_ITEM_REGULAR), list("RESTRICTED FIREARMS", 0, null, null, null), list("VP78 Pistol", 8, /obj/item/storage/box/guncase/vp78, null, VENDOR_ITEM_REGULAR), @@ -86,8 +94,9 @@ GLOBAL_LIST_INIT(cm_vending_gear_medic, list( list("Whistle", 3, /obj/item/device/whistle, null, VENDOR_ITEM_REGULAR), list("BINOCULARS", 0, null, null, null), - list("Range Finder", 6, /obj/item/device/binoculars/range, null, VENDOR_ITEM_REGULAR), - list("Laser Designator", 8, /obj/item/device/binoculars/range/designator, null, VENDOR_ITEM_REGULAR), + list("Binoculars", 5, /obj/item/device/binoculars, null, VENDOR_ITEM_REGULAR), + list("Range Finder", 10, /obj/item/device/binoculars/range, null, VENDOR_ITEM_REGULAR), + list("Laser Designator", 15, /obj/item/device/binoculars/range/designator, null, VENDOR_ITEM_REGULAR), list("HELMET OPTICS", 0, null, null, null), list("Welding Visor", 5, /obj/item/device/helmet_visor/welding_visor, null, VENDOR_ITEM_REGULAR), @@ -118,8 +127,8 @@ GLOBAL_LIST_INIT(cm_vending_gear_medic, list( GLOBAL_LIST_INIT(cm_vending_clothing_medic, list( list("STANDARD EQUIPMENT (TAKE ALL)", 0, null, null, null), - list("Standard Marine Apparel", 0, list(/obj/item/clothing/under/marine/medic, /obj/item/clothing/shoes/marine/knife, /obj/item/clothing/gloves/marine, /obj/item/device/radio/headset/almayer/marine, /obj/item/clothing/head/helmet/marine/medic), MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_MANDATORY), - list("Combat Sterile Gloves", 0, /obj/item/clothing/gloves/marine/medical, MARINE_CAN_BUY_KIT, VENDOR_ITEM_REGULAR), + list("Standard Marine Apparel", 0, list(/obj/item/clothing/under/marine/medic, /obj/item/clothing/shoes/marine/knife, /obj/item/clothing/gloves/marine, /obj/item/device/radio/headset/almayer/marine), MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_MANDATORY), + list("Combat Sterile Gloves", 0, /obj/item/clothing/gloves/marine/medical, MARINE_CAN_BUY_GLOVES, VENDOR_ITEM_REGULAR), list("MRE", 0, /obj/item/storage/box/MRE, MARINE_CAN_BUY_MRE, VENDOR_ITEM_MANDATORY), list("Map", 0, /obj/item/map/current_map, MARINE_CAN_BUY_KIT, VENDOR_ITEM_MANDATORY), @@ -128,6 +137,10 @@ GLOBAL_LIST_INIT(cm_vending_clothing_medic, list( list("Medium Armor", 0, /obj/item/clothing/suit/storage/marine/medium, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_RECOMMENDED), list("Heavy Armor", 0, /obj/item/clothing/suit/storage/marine/heavy, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_REGULAR), + list("HELMET (CHOOSE 1)", 0, null, null, null), + list("M10 Corpsman Helmet", 0, /obj/item/clothing/head/helmet/marine/medic, MARINE_CAN_BUY_HELMET, VENDOR_ITEM_REGULAR), + list("M10 White Corpsman Helmet", 0, /obj/item/clothing/head/helmet/marine/medic/white, MARINE_CAN_BUY_HELMET, VENDOR_ITEM_REGULAR), + list("BACKPACK (CHOOSE 1)", 0, null, null, null), list("Medical Backpack", 0, /obj/item/storage/backpack/marine/medic, MARINE_CAN_BUY_BACKPACK, VENDOR_ITEM_REGULAR), list("Medical Satchel", 0, /obj/item/storage/backpack/marine/satchel/medic, MARINE_CAN_BUY_BACKPACK, VENDOR_ITEM_RECOMMENDED), diff --git a/code/game/machinery/vending/vendor_types/squad_prep/squad_prep.dm b/code/game/machinery/vending/vendor_types/squad_prep/squad_prep.dm index 299ef36ea7d2..35b059ac9611 100644 --- a/code/game/machinery/vending/vendor_types/squad_prep/squad_prep.dm +++ b/code/game/machinery/vending/vendor_types/squad_prep/squad_prep.dm @@ -7,7 +7,7 @@ desc = "An automated weapon rack hooked up to a big storage of standard-issue weapons." icon_state = "guns" req_access = list() - req_one_access = list(ACCESS_MARINE_DATABASE, ACCESS_MARINE_PREP, ACCESS_MARINE_CARGO) + req_one_access = list(ACCESS_MARINE_DATABASE, ACCESS_MARINE_PREP) hackable = TRUE vend_flags = VEND_CLUTTER_PROTECTION | VEND_LIMITED_INVENTORY | VEND_TO_HAND @@ -17,40 +17,68 @@ /obj/structure/machinery/cm_vending/sorted/cargo_guns/squad_prep/populate_product_list(scale) listed_products = list( list("PRIMARY FIREARMS", -1, null, null), - list("M4RA Battle Rifle", round(scale * 10), /obj/item/weapon/gun/rifle/m4ra, VENDOR_ITEM_REGULAR), - list("M37A2 Pump Shotgun", round(scale * 15), /obj/item/weapon/gun/shotgun/pump, VENDOR_ITEM_REGULAR), - list("M39 Submachine Gun", round(scale * 30), /obj/item/weapon/gun/smg/m39, VENDOR_ITEM_REGULAR), - list("M41A Pulse Rifle MK2", round(scale * 30), /obj/item/weapon/gun/rifle/m41a, VENDOR_ITEM_RECOMMENDED), + list("M4RA Battle Rifle", floor(scale * 10), /obj/item/weapon/gun/rifle/m4ra, VENDOR_ITEM_REGULAR), + list("M37A2 Pump Shotgun", floor(scale * 15), /obj/item/weapon/gun/shotgun/pump, VENDOR_ITEM_REGULAR), + list("M39 Submachine Gun", floor(scale * 30), /obj/item/weapon/gun/smg/m39, VENDOR_ITEM_REGULAR), + list("M41A Pulse Rifle MK2", floor(scale * 30), /obj/item/weapon/gun/rifle/m41a, VENDOR_ITEM_RECOMMENDED), list("PRIMARY AMMUNITION", -1, null, null), - list("Box of Flechette Shells (12g)", round(scale * 4), /obj/item/ammo_magazine/shotgun/flechette, VENDOR_ITEM_REGULAR), - list("Box of Buckshot Shells (12g)", round(scale * 10), /obj/item/ammo_magazine/shotgun/buckshot, VENDOR_ITEM_REGULAR), - list("Box of Shotgun Slugs (12g)", round(scale * 10), /obj/item/ammo_magazine/shotgun/slugs, VENDOR_ITEM_REGULAR), - list("M4RA Magazine (10x24mm)", round(scale * 15), /obj/item/ammo_magazine/rifle/m4ra, VENDOR_ITEM_REGULAR), - list("M39 HV Magazine (10x20mm)", round(scale * 25), /obj/item/ammo_magazine/smg/m39, VENDOR_ITEM_REGULAR), - list("M41A Magazine (10x24mm)", round(scale * 25), /obj/item/ammo_magazine/rifle, VENDOR_ITEM_REGULAR), + list("Box of Flechette Shells (12g)", floor(scale * 4), /obj/item/ammo_magazine/shotgun/flechette, VENDOR_ITEM_REGULAR), + list("Box of Buckshot Shells (12g)", floor(scale * 10), /obj/item/ammo_magazine/shotgun/buckshot, VENDOR_ITEM_REGULAR), + list("Box of Shotgun Slugs (12g)", floor(scale * 10), /obj/item/ammo_magazine/shotgun/slugs, VENDOR_ITEM_REGULAR), + list("M4RA Magazine (10x24mm)", floor(scale * 15), /obj/item/ammo_magazine/rifle/m4ra, VENDOR_ITEM_REGULAR), + list("M39 HV Magazine (10x20mm)", floor(scale * 25), /obj/item/ammo_magazine/smg/m39, VENDOR_ITEM_REGULAR), + list("M41A Magazine (10x24mm)", floor(scale * 25), /obj/item/ammo_magazine/rifle, VENDOR_ITEM_REGULAR), list("SIDEARMS", -1, null, null), - list("88 Mod 4 Combat Pistol", round(scale * 25), /obj/item/weapon/gun/pistol/mod88, VENDOR_ITEM_REGULAR), - list("M44 Combat Revolver", round(scale * 25), /obj/item/weapon/gun/revolver/m44, VENDOR_ITEM_REGULAR), - list("M4A3 Service Pistol", round(scale * 25), /obj/item/weapon/gun/pistol/m4a3, VENDOR_ITEM_REGULAR), - list("M82F Flare Gun", round(scale * 10), /obj/item/weapon/gun/flare, VENDOR_ITEM_REGULAR), + list("88 Mod 4 Combat Pistol", floor(scale * 25), /obj/item/weapon/gun/pistol/mod88, VENDOR_ITEM_REGULAR), + list("M44 Combat Revolver", floor(scale * 25), /obj/item/weapon/gun/revolver/m44, VENDOR_ITEM_REGULAR), + list("M4A3 Service Pistol", floor(scale * 25), /obj/item/weapon/gun/pistol/m4a3, VENDOR_ITEM_REGULAR), + list("M82F Flare Gun", floor(scale * 10), /obj/item/weapon/gun/flare, VENDOR_ITEM_REGULAR), list("SIDEARM AMMUNITION", -1, null, null), - list("88M4 AP Magazine (9mm)", round(scale * 25), /obj/item/ammo_magazine/pistol/mod88, VENDOR_ITEM_REGULAR), - list("M44 Speedloader (.44)", round(scale * 20), /obj/item/ammo_magazine/revolver, VENDOR_ITEM_REGULAR), - list("M4A3 Magazine (9mm)", round(scale * 25), /obj/item/ammo_magazine/pistol, VENDOR_ITEM_REGULAR), + list("88M4 AP Magazine (9mm)", floor(scale * 25), /obj/item/ammo_magazine/pistol/mod88, VENDOR_ITEM_REGULAR), + list("M44 Speedloader (.44)", floor(scale * 20), /obj/item/ammo_magazine/revolver, VENDOR_ITEM_REGULAR), + list("M4A3 Magazine (9mm)", floor(scale * 25), /obj/item/ammo_magazine/pistol, VENDOR_ITEM_REGULAR), list("ATTACHMENTS", -1, null, null), - list("M39 Folding Stock", round(scale * 10), /obj/item/attachable/stock/smg/collapsible, VENDOR_ITEM_REGULAR), - list("M41A Folding Stock", round(scale * 10), /obj/item/attachable/stock/rifle/collapsible, VENDOR_ITEM_REGULAR), - list("Rail Flashlight", round(scale * 25), /obj/item/attachable/flashlight, VENDOR_ITEM_RECOMMENDED), - list("Underbarrel Flashlight Grip", round(scale * 10), /obj/item/attachable/flashlight/grip, VENDOR_ITEM_RECOMMENDED), - list("Underslung Grenade Launcher", round(scale * 25), /obj/item/attachable/attached_gun/grenade, VENDOR_ITEM_REGULAR), //They already get these as on-spawns, might as well formalize some spares. + list("M39 Folding Stock", floor(scale * 10), /obj/item/attachable/stock/smg/collapsible, VENDOR_ITEM_REGULAR), + list("M41A Folding Stock", floor(scale * 10), /obj/item/attachable/stock/rifle/collapsible, VENDOR_ITEM_REGULAR), + list("Rail Flashlight", floor(scale * 25), /obj/item/attachable/flashlight, VENDOR_ITEM_RECOMMENDED), + list("Underbarrel Flashlight Grip", floor(scale * 10), /obj/item/attachable/flashlight/grip, VENDOR_ITEM_RECOMMENDED), + list("Underslung Grenade Launcher", floor(scale * 25), /obj/item/attachable/attached_gun/grenade, VENDOR_ITEM_REGULAR), //They already get these as on-spawns, might as well formalize some spares. list("UTILITIES", -1, null, null), - list("M5 Bayonet", round(scale * 25), /obj/item/attachable/bayonet, VENDOR_ITEM_REGULAR), - list("M94 Marking Flare Pack", round(scale * 10), /obj/item/storage/box/m94, VENDOR_ITEM_RECOMMENDED) + list("M5 Bayonet", floor(scale * 25), /obj/item/attachable/bayonet, VENDOR_ITEM_REGULAR), + list("M94 Marking Flare Pack", floor(scale * 10), /obj/item/storage/box/m94, VENDOR_ITEM_RECOMMENDED) + ) + +/obj/structure/machinery/cm_vending/sorted/cargo_guns/squad_prep/tutorial + name = "\improper ColMarTech Automated Weapons Rack" + desc = "An automated weapon rack hooked up to a big storage of standard-issue weapons." + icon_state = "guns" + req_access = list(ACCESS_TUTORIAL_LOCKED) + req_one_access = list() + hackable = FALSE + vend_flags = VEND_CLUTTER_PROTECTION | VEND_LIMITED_INVENTORY | VEND_TO_HAND + +/obj/structure/machinery/cm_vending/sorted/cargo_guns/squad_prep/tutorial/populate_product_list(scale) + listed_products = list( + list("PRIMARY FIREARMS", -1, null, null), + list("M41A Pulse Rifle MK2", 1, /obj/item/weapon/gun/rifle/m41a, VENDOR_ITEM_RECOMMENDED), + + list("PRIMARY AMMUNITION", -1, null, null), + list("M41A Magazine (10x24mm)", 1, /obj/item/ammo_magazine/rifle, VENDOR_ITEM_RECOMMENDED), + ) + +/// Called if the tutorial mob somehow uses an entire magazine without the xeno dying +/obj/structure/machinery/cm_vending/sorted/cargo_guns/squad_prep/tutorial/proc/load_ammo() + listed_products = list( + list("PRIMARY FIREARMS", -1, null, null), + list("M41A Pulse Rifle MK2", 0, /obj/item/weapon/gun/rifle/m41a, VENDOR_ITEM_RECOMMENDED), + + list("PRIMARY AMMUNITION", -1, null, null), + list("M41A Magazine (10x24mm)", 99, /obj/item/ammo_magazine/rifle, VENDOR_ITEM_RECOMMENDED), ) //------------SQUAD PREP UNIFORM VENDOR--------------- @@ -71,97 +99,104 @@ /obj/structure/machinery/cm_vending/sorted/uniform_supply/squad_prep/populate_product_list(scale) listed_products = list( list("STANDARD EQUIPMENT", -1, null, null, null), - list("Marine Combat Boots", round(scale * 15), /obj/item/clothing/shoes/marine, VENDOR_ITEM_REGULAR), - list("Marine Brown Combat Boots", round(scale * 15), /obj/item/clothing/shoes/marine/brown, VENDOR_ITEM_REGULAR), - list("USCM Uniform", round(scale * 15), /obj/item/clothing/under/marine, VENDOR_ITEM_REGULAR), - list("Marine Combat Gloves", round(scale * 15), /obj/item/clothing/gloves/marine, VENDOR_ITEM_REGULAR), - list("Marine Brown Combat Gloves", round(scale * 15), /obj/item/clothing/gloves/marine/brown, VENDOR_ITEM_REGULAR), - list("Marine Black Combat Gloves", round(scale * 15), /obj/item/clothing/gloves/marine/black, VENDOR_ITEM_REGULAR), - list("Marine Radio Headset", round(scale * 15), /obj/item/device/radio/headset/almayer, VENDOR_ITEM_REGULAR), - list("M10 Pattern Marine Helmet", round(scale * 15), /obj/item/clothing/head/helmet/marine, VENDOR_ITEM_REGULAR), + list("Marine Combat Boots", floor(scale * 15), /obj/item/clothing/shoes/marine, VENDOR_ITEM_REGULAR), + list("Marine Brown Combat Boots", floor(scale * 15), /obj/item/clothing/shoes/marine/brown, VENDOR_ITEM_REGULAR), + list("USCM Uniform", floor(scale * 15), /obj/item/clothing/under/marine, VENDOR_ITEM_REGULAR), + list("Marine Combat Gloves", floor(scale * 15), /obj/item/clothing/gloves/marine, VENDOR_ITEM_REGULAR), + list("Marine Brown Combat Gloves", floor(scale * 15), /obj/item/clothing/gloves/marine/brown, VENDOR_ITEM_REGULAR), + list("Marine Black Combat Gloves", floor(scale * 15), /obj/item/clothing/gloves/marine/black, VENDOR_ITEM_REGULAR), + list("Marine Radio Headset", floor(scale * 15), /obj/item/device/radio/headset/almayer, VENDOR_ITEM_REGULAR), + list("M10 Pattern Marine Helmet", floor(scale * 15), /obj/item/clothing/head/helmet/marine, VENDOR_ITEM_REGULAR), list("WEBBINGS", -1, null, null), list("Brown Webbing Vest", 1, /obj/item/clothing/accessory/storage/black_vest/brown_vest, VENDOR_ITEM_REGULAR), list("Black Webbing Vest", 1, /obj/item/clothing/accessory/storage/black_vest, VENDOR_ITEM_REGULAR), - list("Webbing", round(scale * 2), /obj/item/clothing/accessory/storage/webbing, VENDOR_ITEM_REGULAR), + list("Webbing", floor(scale * 2), /obj/item/clothing/accessory/storage/webbing, VENDOR_ITEM_REGULAR), list("Drop Pouch", 0.75, /obj/item/clothing/accessory/storage/droppouch, VENDOR_ITEM_REGULAR), list("Shoulder Holster", 0.75, /obj/item/clothing/accessory/storage/holster, VENDOR_ITEM_REGULAR), list("ARMOR", -1, null, null), - list("M3 Pattern Carrier Marine Armor", round(scale * 15), /obj/item/clothing/suit/storage/marine/carrier, VENDOR_ITEM_REGULAR), - list("M3 Pattern Padded Marine Armor", round(scale * 15), /obj/item/clothing/suit/storage/marine/padded, VENDOR_ITEM_REGULAR), - list("M3 Pattern Padless Marine Armor", round(scale * 15), /obj/item/clothing/suit/storage/marine/padless, VENDOR_ITEM_REGULAR), - list("M3 Pattern Ridged Marine Armor", round(scale * 15), /obj/item/clothing/suit/storage/marine/padless_lines, VENDOR_ITEM_REGULAR), - list("M3 Pattern Skull Marine Armor", round(scale * 15), /obj/item/clothing/suit/storage/marine/skull, VENDOR_ITEM_REGULAR), - list("M3 Pattern Smooth Marine Armor", round(scale * 15), /obj/item/clothing/suit/storage/marine/smooth, VENDOR_ITEM_REGULAR), - list("M3-EOD Pattern Heavy Armor", round(scale * 10), /obj/item/clothing/suit/storage/marine/heavy, VENDOR_ITEM_REGULAR), - list("M3-L Pattern Light Armor", round(scale * 10), /obj/item/clothing/suit/storage/marine/light, VENDOR_ITEM_REGULAR), + list("M3 Pattern Carrier Marine Armor", floor(scale * 15), /obj/item/clothing/suit/storage/marine/medium/carrier, VENDOR_ITEM_REGULAR), + list("M3 Pattern Padded Marine Armor", floor(scale * 15), /obj/item/clothing/suit/storage/marine/medium/padded, VENDOR_ITEM_REGULAR), + list("M3 Pattern Padless Marine Armor", floor(scale * 15), /obj/item/clothing/suit/storage/marine/medium/padless, VENDOR_ITEM_REGULAR), + list("M3 Pattern Ridged Marine Armor", floor(scale * 15), /obj/item/clothing/suit/storage/marine/medium/padless_lines, VENDOR_ITEM_REGULAR), + list("M3 Pattern Skull Marine Armor", floor(scale * 15), /obj/item/clothing/suit/storage/marine/medium/skull, VENDOR_ITEM_REGULAR), + list("M3 Pattern Smooth Marine Armor", floor(scale * 15), /obj/item/clothing/suit/storage/marine/medium/smooth, VENDOR_ITEM_REGULAR), + list("M3-EOD Pattern Heavy Armor", floor(scale * 10), /obj/item/clothing/suit/storage/marine/heavy, VENDOR_ITEM_REGULAR), + list("M3-L Pattern Light Armor", floor(scale * 10), /obj/item/clothing/suit/storage/marine/light, VENDOR_ITEM_REGULAR), list("BACKPACK", -1, null, null, null), - list("Lightweight IMP Backpack", round(scale * 15), /obj/item/storage/backpack/marine, VENDOR_ITEM_REGULAR), - list("Technician Backpack", round(scale * 15), /obj/item/storage/backpack/marine/tech, VENDOR_ITEM_REGULAR), - list("Medical Backpack", round(scale * 15), /obj/item/storage/backpack/marine/medic, VENDOR_ITEM_REGULAR), - list("USCM Satchel", round(scale * 15), /obj/item/storage/backpack/marine/satchel, VENDOR_ITEM_REGULAR), - list("USCM Technical Satchel", round(scale * 15), /obj/item/storage/backpack/marine/satchel/tech, VENDOR_ITEM_REGULAR), - list("USCM Technical Chestrig", round(scale * 15), /obj/item/storage/backpack/marine/engineerpack/welder_chestrig, VENDOR_ITEM_REGULAR), - list("Medical Satchel", round(scale * 15), /obj/item/storage/backpack/marine/satchel/medic, VENDOR_ITEM_REGULAR), - list("Shotgun Scabbard", round(scale * 5), /obj/item/storage/large_holster/m37, VENDOR_ITEM_REGULAR), + list("Lightweight IMP Backpack", floor(scale * 15), /obj/item/storage/backpack/marine, VENDOR_ITEM_REGULAR), + list("Technician Backpack", floor(scale * 15), /obj/item/storage/backpack/marine/tech, VENDOR_ITEM_REGULAR), + list("Medical Backpack", floor(scale * 15), /obj/item/storage/backpack/marine/medic, VENDOR_ITEM_REGULAR), + list("USCM Satchel", floor(scale * 15), /obj/item/storage/backpack/marine/satchel, VENDOR_ITEM_REGULAR), + list("USCM Chestrig", floor(scale * 15), /obj/item/storage/backpack/marine/satchel/chestrig, VENDOR_ITEM_REGULAR), + list("USCM Technical Satchel", floor(scale * 15), /obj/item/storage/backpack/marine/satchel/tech, VENDOR_ITEM_REGULAR), + list("USCM Technical Chestrig", floor(scale * 15), /obj/item/storage/backpack/marine/engineerpack/welder_chestrig, VENDOR_ITEM_REGULAR), + list("Medical Satchel", floor(scale * 15), /obj/item/storage/backpack/marine/satchel/medic, VENDOR_ITEM_REGULAR), + list("Shotgun Scabbard", floor(scale * 5), /obj/item/storage/large_holster/m37, VENDOR_ITEM_REGULAR), list("RESTRICTED BACKPACKS", -1, null, null), list("USCM Technician Welderpack", 1.25, /obj/item/storage/backpack/marine/engineerpack, VENDOR_ITEM_REGULAR), - list("Technician Welder-Satchel", round(scale * 2), /obj/item/storage/backpack/marine/engineerpack/satchel, VENDOR_ITEM_REGULAR), + list("Technician Welder-Satchel", floor(scale * 2), /obj/item/storage/backpack/marine/engineerpack/satchel, VENDOR_ITEM_REGULAR), list("Radio Telephone Backpack", 0.75, /obj/item/storage/backpack/marine/satchel/rto, VENDOR_ITEM_REGULAR), list("BELTS", -1, null, null), - list("M276 Pattern Ammo Load Rig", round(scale * 15), /obj/item/storage/belt/marine, VENDOR_ITEM_REGULAR), - list("M276 Pattern M40 Grenade Rig", round(scale * 10), /obj/item/storage/belt/grenade, VENDOR_ITEM_REGULAR), - list("M276 Pattern Shotgun Shell Loading Rig", round(scale * 15), /obj/item/storage/belt/shotgun, VENDOR_ITEM_REGULAR), - list("M276 Pattern General Pistol Holster Rig", round(scale * 15), /obj/item/storage/belt/gun/m4a3, VENDOR_ITEM_REGULAR), - list("M276 Pattern M39 Holster Rig", round(scale * 15), /obj/item/storage/large_holster/m39, VENDOR_ITEM_REGULAR), - list("M276 Pattern M39 Holster Rig And Pouch", round(scale * 10), /obj/item/storage/belt/gun/m39, VENDOR_ITEM_REGULAR), - list("M276 Pattern M44 Holster Rig", round(scale * 15), /obj/item/storage/belt/gun/m44, VENDOR_ITEM_REGULAR), - list("M276 Pattern M82F Holster Rig", round(scale * 5), /obj/item/storage/belt/gun/flaregun, VENDOR_ITEM_REGULAR), - list("M276 Knife Rig (Full)", round(scale * 15), /obj/item/storage/belt/knifepouch, VENDOR_ITEM_REGULAR), - list("M276 G8-A General Utility Pouch", round(scale * 15), /obj/item/storage/backpack/general_belt, VENDOR_ITEM_REGULAR), + list("M276 Pattern Ammo Load Rig", floor(scale * 15), /obj/item/storage/belt/marine, VENDOR_ITEM_REGULAR), + list("M276 Pattern M40 Grenade Rig", floor(scale * 10), /obj/item/storage/belt/grenade, VENDOR_ITEM_REGULAR), + list("M276 Pattern Shotgun Shell Loading Rig", floor(scale * 15), /obj/item/storage/belt/shotgun, VENDOR_ITEM_REGULAR), + list("M276 Pattern General Pistol Holster Rig", floor(scale * 15), /obj/item/storage/belt/gun/m4a3, VENDOR_ITEM_REGULAR), + list("M276 Pattern M39 Holster Rig", floor(scale * 15), /obj/item/storage/large_holster/m39, VENDOR_ITEM_REGULAR), + list("M276 Pattern M39 Holster Rig And Pouch", floor(scale * 10), /obj/item/storage/belt/gun/m39, VENDOR_ITEM_REGULAR), + list("M276 Pattern M44 Holster Rig", floor(scale * 15), /obj/item/storage/belt/gun/m44, VENDOR_ITEM_REGULAR), + list("M276 Pattern M82F Holster Rig", floor(scale * 5), /obj/item/storage/belt/gun/flaregun, VENDOR_ITEM_REGULAR), + list("M276 Knife Rig (Full)", floor(scale * 15), /obj/item/storage/belt/knifepouch, VENDOR_ITEM_REGULAR), + list("M276 G8-A General Utility Pouch", floor(scale * 15), /obj/item/storage/backpack/general_belt, VENDOR_ITEM_REGULAR), list("POUCHES", -1, null, null, null), - list("Bayonet Sheath (Full)",round(scale * 15), /obj/item/storage/pouch/bayonet, VENDOR_ITEM_REGULAR), - list("First-Aid Pouch (Splints, Gauze, Ointment)", round(scale * 15), /obj/item/storage/pouch/firstaid/full/alternate, VENDOR_ITEM_REGULAR), - list("First-Aid Pouch (Pill Packets)", round(scale * 15), /obj/item/storage/pouch/firstaid/full/pills, VENDOR_ITEM_REGULAR), - list("Flare Pouch (Full)", round(scale * 15), /obj/item/storage/pouch/flare/full, VENDOR_ITEM_REGULAR), - list("Small Document Pouch", round(scale * 15), /obj/item/storage/pouch/document/small, VENDOR_ITEM_REGULAR), - list("Magazine Pouch", round(scale * 15), /obj/item/storage/pouch/magazine, VENDOR_ITEM_REGULAR), - list("Shotgun Shell Pouch", round(scale * 15), /obj/item/storage/pouch/shotgun, VENDOR_ITEM_REGULAR), - list("Medium General Pouch", round(scale * 15), /obj/item/storage/pouch/general/medium, VENDOR_ITEM_REGULAR), - list("Pistol Magazine Pouch", round(scale * 15), /obj/item/storage/pouch/magazine/pistol, VENDOR_ITEM_REGULAR), - list("Pistol Pouch", round(scale * 15), /obj/item/storage/pouch/pistol, VENDOR_ITEM_REGULAR), + list("Bayonet Sheath (Full)",floor(scale * 15), /obj/item/storage/pouch/bayonet, VENDOR_ITEM_REGULAR), + list("First-Aid Pouch (Splints, Gauze, Ointment)", floor(scale * 15), /obj/item/storage/pouch/firstaid/full/alternate, VENDOR_ITEM_REGULAR), + list("First-Aid Pouch (Pill Packets)", floor(scale * 15), /obj/item/storage/pouch/firstaid/full/pills, VENDOR_ITEM_REGULAR), + list("Flare Pouch (Full)", floor(scale * 15), /obj/item/storage/pouch/flare/full, VENDOR_ITEM_REGULAR), + list("Small Document Pouch", floor(scale * 15), /obj/item/storage/pouch/document/small, VENDOR_ITEM_REGULAR), + list("Magazine Pouch", floor(scale * 15), /obj/item/storage/pouch/magazine, VENDOR_ITEM_REGULAR), + list("Shotgun Shell Pouch", floor(scale * 15), /obj/item/storage/pouch/shotgun, VENDOR_ITEM_REGULAR), + list("Medium General Pouch", floor(scale * 15), /obj/item/storage/pouch/general/medium, VENDOR_ITEM_REGULAR), + list("Pistol Magazine Pouch", floor(scale * 15), /obj/item/storage/pouch/magazine/pistol, VENDOR_ITEM_REGULAR), + list("Pistol Pouch", floor(scale * 15), /obj/item/storage/pouch/pistol, VENDOR_ITEM_REGULAR), list("RESTRICTED POUCHES", -1, null, null, null), list("Construction Pouch", 1.25, /obj/item/storage/pouch/construction, VENDOR_ITEM_REGULAR), list("Explosive Pouch", 1.25, /obj/item/storage/pouch/explosive, VENDOR_ITEM_REGULAR), list("First Responder Pouch (Empty)", 2.5, /obj/item/storage/pouch/first_responder, VENDOR_ITEM_REGULAR), - list("Large Pistol Magazine Pouch", round(scale * 2), /obj/item/storage/pouch/magazine/pistol/large, VENDOR_ITEM_REGULAR), + list("Large Pistol Magazine Pouch", floor(scale * 2), /obj/item/storage/pouch/magazine/pistol/large, VENDOR_ITEM_REGULAR), list("Tools Pouch", 1.25, /obj/item/storage/pouch/tools, VENDOR_ITEM_REGULAR), list("Sling Pouch", 1.25, /obj/item/storage/pouch/sling, VENDOR_ITEM_REGULAR), list("MASK", -1, null, null, null), - list("Gas Mask", round(scale * 15), /obj/item/clothing/mask/gas, VENDOR_ITEM_REGULAR), - list("Heat Absorbent Coif", round(scale * 10), /obj/item/clothing/mask/rebreather/scarf, VENDOR_ITEM_REGULAR), - list("Rebreather", round(scale * 10), /obj/item/clothing/mask/rebreather, MARINE_CAN_BUY_MASK, VENDOR_ITEM_REGULAR), + list("Gas Mask", floor(scale * 15), /obj/item/clothing/mask/gas, VENDOR_ITEM_REGULAR), + list("Heat Absorbent Coif", floor(scale * 10), /obj/item/clothing/mask/rebreather/scarf, VENDOR_ITEM_REGULAR), + list("Rebreather", floor(scale * 10), /obj/item/clothing/mask/rebreather, MARINE_CAN_BUY_MASK, VENDOR_ITEM_REGULAR), list("MISCELLANEOUS", -1, null, null, null), - list("Ballistic goggles", round(scale * 10), /obj/item/clothing/glasses/mgoggles, VENDOR_ITEM_REGULAR), - list("M1A1 Ballistic goggles", round(scale * 10), /obj/item/clothing/glasses/mgoggles/v2, VENDOR_ITEM_REGULAR), - list("Prescription ballistic goggles", round(scale * 10), /obj/item/clothing/glasses/mgoggles/prescription, VENDOR_ITEM_REGULAR), - list("Marine RPG glasses", round(scale * 10), /obj/item/clothing/glasses/regular, VENDOR_ITEM_REGULAR), - list("M5 Integrated Gas Mask", round(scale * 10), /obj/item/prop/helmetgarb/helmet_gasmask, VENDOR_ITEM_REGULAR), - list("M10 Helmet Netting", round(scale * 10), /obj/item/prop/helmetgarb/netting, VENDOR_ITEM_REGULAR), - list("M10 Helmet Rain Cover", round(scale * 10), /obj/item/prop/helmetgarb/raincover, VENDOR_ITEM_REGULAR), - list("Firearm Lubricant", round(scale * 15), /obj/item/prop/helmetgarb/gunoil, VENDOR_ITEM_REGULAR), - list("USCM Flair", round(scale * 15), /obj/item/prop/helmetgarb/flair_uscm, VENDOR_ITEM_REGULAR), - list("Falling Falcons Shoulder Patch", round(scale * 15), /obj/item/clothing/accessory/patch/falcon, VENDOR_ITEM_REGULAR), - list("USCM Shoulder Patch", round(scale * 15), /obj/item/clothing/accessory/patch, VENDOR_ITEM_REGULAR), - list("Bedroll", round(scale * 20), /obj/item/roller/bedroll, VENDOR_ITEM_REGULAR), + list("Ballistic goggles", floor(scale * 10), /obj/item/clothing/glasses/mgoggles, VENDOR_ITEM_REGULAR), + list("M1A1 Ballistic goggles", floor(scale * 10), /obj/item/clothing/glasses/mgoggles/v2, VENDOR_ITEM_REGULAR), + list("Prescription ballistic goggles", floor(scale * 10), /obj/item/clothing/glasses/mgoggles/prescription, VENDOR_ITEM_REGULAR), + list("Marine RPG glasses", floor(scale * 10), /obj/item/clothing/glasses/regular, VENDOR_ITEM_REGULAR), + list("M5 Integrated Gas Mask", floor(scale * 10), /obj/item/prop/helmetgarb/helmet_gasmask, VENDOR_ITEM_REGULAR), + list("M10 Helmet Netting", floor(scale * 10), /obj/item/prop/helmetgarb/netting, VENDOR_ITEM_REGULAR), + list("M10 Helmet Rain Cover", floor(scale * 10), /obj/item/prop/helmetgarb/raincover, VENDOR_ITEM_REGULAR), + list("Firearm Lubricant", floor(scale * 15), /obj/item/prop/helmetgarb/gunoil, VENDOR_ITEM_REGULAR), + list("Attachable Dogtags", floor(scale * 15), /obj/item/clothing/accessory/dogtags, VENDOR_ITEM_REGULAR), + list("USCM Flair", floor(scale * 15), /obj/item/prop/helmetgarb/flair_uscm, VENDOR_ITEM_REGULAR), + list("Falling Falcons Shoulder Patch", floor(scale * 15), /obj/item/clothing/accessory/patch/falcon, VENDOR_ITEM_REGULAR), + list("USCM Shoulder Patch", floor(scale * 15), /obj/item/clothing/accessory/patch, VENDOR_ITEM_REGULAR), + list("Bedroll", floor(scale * 20), /obj/item/roller/bedroll, VENDOR_ITEM_REGULAR), + + list("OPTICS", -1, null, null, null), + list("Advanced Medical Optic (CORPSMAN ONLY)", floor(scale * 4), /obj/item/device/helmet_visor/medical/advanced, VENDOR_ITEM_REGULAR), + list("Squad Optic", floor(scale * 15), /obj/item/device/helmet_visor, VENDOR_ITEM_REGULAR), + ) //--------------SQUAD SPECIFIC VERSIONS-------------- @@ -173,6 +208,7 @@ req_one_access = list(ACCESS_MARINE_ALPHA, ACCESS_MARINE_DATABASE, ACCESS_MARINE_CARGO) /obj/structure/machinery/cm_vending/sorted/uniform_supply/squad_prep/alpha/populate_product_list(scale) + ..() listed_products += list( list("HEADSET", -1, null, null), list("Marine Alpha Radio Headset", 10, /obj/item/device/radio/headset/almayer/marine/alpha, VENDOR_ITEM_REGULAR), @@ -183,6 +219,7 @@ req_one_access = list(ACCESS_MARINE_BRAVO, ACCESS_MARINE_DATABASE, ACCESS_MARINE_CARGO) /obj/structure/machinery/cm_vending/sorted/uniform_supply/squad_prep/bravo/populate_product_list(scale) + ..() listed_products += list( list("HEADSET", -1, null, null), list("Marine Bravo Radio Headset", 10, /obj/item/device/radio/headset/almayer/marine/bravo, VENDOR_ITEM_REGULAR), @@ -193,6 +230,7 @@ req_one_access = list(ACCESS_MARINE_CHARLIE, ACCESS_MARINE_DATABASE, ACCESS_MARINE_CARGO) /obj/structure/machinery/cm_vending/sorted/uniform_supply/squad_prep/charlie/populate_product_list(scale) + ..() listed_products += list( list("HEADSET", -1, null, null), list("Marine Charlie Radio Headset", 10, /obj/item/device/radio/headset/almayer/marine/charlie, VENDOR_ITEM_REGULAR), @@ -203,6 +241,7 @@ req_one_access = list(ACCESS_MARINE_DELTA, ACCESS_MARINE_DATABASE, ACCESS_MARINE_CARGO) /obj/structure/machinery/cm_vending/sorted/uniform_supply/squad_prep/delta/populate_product_list(scale) + ..() listed_products += list( list("HEADSET", -1, null, null), list("Marine Delta Radio Headset", 10, /obj/item/device/radio/headset/almayer/marine/delta, VENDOR_ITEM_REGULAR), @@ -228,8 +267,8 @@ listed_products = list( list("ARMOR-PIERCING AMMUNITION", -1, null, null), list("M4RA AP Magazine (10x24mm)", 3.5, /obj/item/ammo_magazine/rifle/m4ra/ap, VENDOR_ITEM_REGULAR), - list("M39 AP Magazine (10x20mm)", round(scale * 3), /obj/item/ammo_magazine/smg/m39/ap, VENDOR_ITEM_REGULAR), - list("M41A AP Magazine (10x24mm)", round(scale * 3), /obj/item/ammo_magazine/rifle/ap, VENDOR_ITEM_REGULAR), + list("M39 AP Magazine (10x20mm)", floor(scale * 3), /obj/item/ammo_magazine/smg/m39/ap, VENDOR_ITEM_REGULAR), + list("M41A AP Magazine (10x24mm)", floor(scale * 3), /obj/item/ammo_magazine/rifle/ap, VENDOR_ITEM_REGULAR), list("EXTENDED AMMUNITION", -1, null, null), list("M39 Extended Magazine (10x20mm)", 1.8, /obj/item/ammo_magazine/smg/m39/extended, VENDOR_ITEM_REGULAR), @@ -237,18 +276,19 @@ list("SPECIAL AMMUNITION", -1, null, null), list("M56 Smartgun Drum", 1, /obj/item/ammo_magazine/smartgun, VENDOR_ITEM_REGULAR), - list("M44 Heavy Speed Loader (.44)", round(scale * 2), /obj/item/ammo_magazine/revolver/heavy, VENDOR_ITEM_REGULAR), - list("M44 Marksman Speed Loader (.44)", round(scale * 2), /obj/item/ammo_magazine/revolver/marksman, VENDOR_ITEM_REGULAR), + list("M44 Heavy Speed Loader (.44)", floor(scale * 2), /obj/item/ammo_magazine/revolver/heavy, VENDOR_ITEM_REGULAR), + list("M44 Marksman Speed Loader (.44)", floor(scale * 2), /obj/item/ammo_magazine/revolver/marksman, VENDOR_ITEM_REGULAR), list("RESTRICTED FIREARM AMMUNITION", -1, null, null), - list("VP78 Magazine", round(scale * 5), /obj/item/ammo_magazine/pistol/vp78, VENDOR_ITEM_REGULAR), - list("SU-6 Smartpistol Magazine (.45)", round(scale * 5), /obj/item/ammo_magazine/pistol/smart, VENDOR_ITEM_REGULAR), - list("M240 Incinerator Tank", round(scale * 3), /obj/item/ammo_magazine/flamer_tank, VENDOR_ITEM_REGULAR), - list("M56D Drum Magazine", round(scale * 2), /obj/item/ammo_magazine/m56d, VENDOR_ITEM_REGULAR), - list("M2C Box Magazine", round(scale * 2), /obj/item/ammo_magazine/m2c, VENDOR_ITEM_REGULAR), - list("HIRR Baton Slugs", round(scale * 6), /obj/item/explosive/grenade/slug/baton, VENDOR_ITEM_REGULAR), - list("M74 AGM-S Star Shell", round(scale * 4), /obj/item/explosive/grenade/high_explosive/airburst/starshell, VENDOR_ITEM_REGULAR), - list("M74 AGM-S Hornet Shell", round(scale * 4), /obj/item/explosive/grenade/high_explosive/airburst/hornet_shell, VENDOR_ITEM_REGULAR), + list("VP78 Magazine", floor(scale * 5), /obj/item/ammo_magazine/pistol/vp78, VENDOR_ITEM_REGULAR), + list("SU-6 Smartpistol Magazine (.45)", floor(scale * 5), /obj/item/ammo_magazine/pistol/smart, VENDOR_ITEM_REGULAR), + list("M240 Incinerator Tank", floor(scale * 3), /obj/item/ammo_magazine/flamer_tank, VENDOR_ITEM_REGULAR), + list("M56D Drum Magazine", floor(scale * 2), /obj/item/ammo_magazine/m56d, VENDOR_ITEM_REGULAR), + list("M2C Box Magazine", floor(scale * 2), /obj/item/ammo_magazine/m2c, VENDOR_ITEM_REGULAR), + list("Box of Breaching Shells (16g)", floor(scale * 2), /obj/item/ammo_magazine/shotgun/light/breaching, VENDOR_ITEM_REGULAR), + list("HIRR Baton Slugs", floor(scale * 6), /obj/item/explosive/grenade/slug/baton, VENDOR_ITEM_REGULAR), + list("M74 AGM-S Star Shell", floor(scale * 4), /obj/item/explosive/grenade/high_explosive/airburst/starshell, VENDOR_ITEM_REGULAR), + list("M74 AGM-S Hornet Shell", floor(scale * 4), /obj/item/explosive/grenade/high_explosive/airburst/hornet_shell, VENDOR_ITEM_REGULAR), ) //--------------SQUAD ARMAMENTS VENDOR-------------- @@ -270,36 +310,36 @@ /obj/structure/machinery/cm_vending/sorted/cargo_guns/squad/populate_product_list(scale) listed_products = list( list("FOOD", -1, null, null), - list("MRE", round(scale * 5), /obj/item/storage/box/MRE, VENDOR_ITEM_REGULAR), - list("MRE Box", round(scale * 1), /obj/item/ammo_box/magazine/misc/mre, VENDOR_ITEM_REGULAR), + list("MRE", floor(scale * 5), /obj/item/storage/box/MRE, VENDOR_ITEM_REGULAR), + list("MRE Box", floor(scale * 1), /obj/item/ammo_box/magazine/misc/mre, VENDOR_ITEM_REGULAR), list("TOOLS", -1, null, null), - list("Entrenching Tool (ET)", round(scale * 2), /obj/item/tool/shovel/etool/folded, VENDOR_ITEM_REGULAR), - list("Screwdriver", round(scale * 5), /obj/item/tool/screwdriver, VENDOR_ITEM_REGULAR), - list("Wirecutters", round(scale * 5), /obj/item/tool/wirecutters, VENDOR_ITEM_REGULAR), - list("Crowbar", round(scale * 5), /obj/item/tool/crowbar, VENDOR_ITEM_REGULAR), - list("Wrench", round(scale * 5), /obj/item/tool/wrench, VENDOR_ITEM_REGULAR), - list("Multitool", round(scale * 1), /obj/item/device/multitool, VENDOR_ITEM_REGULAR), - list("ME3 hand welder", round(scale * 1), /obj/item/tool/weldingtool/simple, VENDOR_ITEM_REGULAR), + list("Entrenching Tool (ET)", floor(scale * 2), /obj/item/tool/shovel/etool/folded, VENDOR_ITEM_REGULAR), + list("Screwdriver", floor(scale * 5), /obj/item/tool/screwdriver, VENDOR_ITEM_REGULAR), + list("Wirecutters", floor(scale * 5), /obj/item/tool/wirecutters, VENDOR_ITEM_REGULAR), + list("Crowbar", floor(scale * 5), /obj/item/tool/crowbar, VENDOR_ITEM_REGULAR), + list("Wrench", floor(scale * 5), /obj/item/tool/wrench, VENDOR_ITEM_REGULAR), + list("Multitool", floor(scale * 1), /obj/item/device/multitool, VENDOR_ITEM_REGULAR), + list("ME3 hand welder", floor(scale * 1), /obj/item/tool/weldingtool/simple, VENDOR_ITEM_REGULAR), list("FLARE AND LIGHT", -1, null, null), - list("Combat Flashlight", round(scale * 5), /obj/item/device/flashlight/combat, VENDOR_ITEM_REGULAR), - list("Box of Flashlight", round(scale * 1), /obj/item/ammo_box/magazine/misc/flashlight, VENDOR_ITEM_REGULAR), - list("Box of Flares", round(scale * 1), /obj/item/ammo_box/magazine/misc/flares, VENDOR_ITEM_REGULAR), - list("M94 Marking Flare Pack", round(scale * 10), /obj/item/storage/box/m94, VENDOR_ITEM_REGULAR), - list("M89-S Signal Flare Pack", round(scale * 1), /obj/item/storage/box/m94/signal, VENDOR_ITEM_REGULAR), + list("Combat Flashlight", floor(scale * 5), /obj/item/device/flashlight/combat, VENDOR_ITEM_REGULAR), + list("Box of Flashlight", floor(scale * 1), /obj/item/ammo_box/magazine/misc/flashlight, VENDOR_ITEM_REGULAR), + list("Box of Flares", floor(scale * 1), /obj/item/ammo_box/magazine/misc/flares, VENDOR_ITEM_REGULAR), + list("M94 Marking Flare Pack", floor(scale * 10), /obj/item/storage/box/m94, VENDOR_ITEM_REGULAR), + list("M89-S Signal Flare Pack", floor(scale * 1), /obj/item/storage/box/m94/signal, VENDOR_ITEM_REGULAR), list("MISCELLANEOUS", -1, null, null), - list("Engineer Kit", round(scale * 1), /obj/item/storage/toolkit/empty, VENDOR_ITEM_REGULAR), - list("Map", round(scale * 5), /obj/item/map/current_map, VENDOR_ITEM_REGULAR), - list("Extinguisher", round(scale * 5), /obj/item/tool/extinguisher, VENDOR_ITEM_REGULAR), - list("Fire Extinguisher (Portable)", round(scale * 1), /obj/item/tool/extinguisher/mini, VENDOR_ITEM_REGULAR), - list("Roller Bed", round(scale * 1), /obj/item/roller, VENDOR_ITEM_REGULAR), - list("Machete Scabbard (Full)", round(scale * 5), /obj/item/storage/large_holster/machete/full, VENDOR_ITEM_REGULAR), - list("Binoculars", round(scale * 1), /obj/item/device/binoculars, VENDOR_ITEM_REGULAR), - list("MB-6 Folding Barricades (x3)", round(scale * 2), /obj/item/stack/folding_barricade/three, VENDOR_ITEM_REGULAR), - list("Spare PDT/L Battle Buddy Kit", round(scale * 3), /obj/item/storage/box/pdt_kit, VENDOR_ITEM_REGULAR), - list("W-Y brand rechargeable mini-battery", round(scale * 2.5), /obj/item/cell/crap, VENDOR_ITEM_REGULAR) + list("Engineer Kit", floor(scale * 1), /obj/item/storage/toolkit/empty, VENDOR_ITEM_REGULAR), + list("Map", floor(scale * 5), /obj/item/map/current_map, VENDOR_ITEM_REGULAR), + list("Extinguisher", floor(scale * 5), /obj/item/tool/extinguisher, VENDOR_ITEM_REGULAR), + list("Fire Extinguisher (Portable)", floor(scale * 1), /obj/item/tool/extinguisher/mini, VENDOR_ITEM_REGULAR), + list("Roller Bed", floor(scale * 1), /obj/item/roller, VENDOR_ITEM_REGULAR), + list("Machete Scabbard (Full)", floor(scale * 5), /obj/item/storage/large_holster/machete/full, VENDOR_ITEM_REGULAR), + list("Binoculars", floor(scale * 1), /obj/item/device/binoculars, VENDOR_ITEM_REGULAR), + list("MB-6 Folding Barricades (x3)", floor(scale * 2), /obj/item/stack/folding_barricade/three, VENDOR_ITEM_REGULAR), + list("Spare PDT/L Battle Buddy Kit", floor(scale * 3), /obj/item/storage/box/pdt_kit, VENDOR_ITEM_REGULAR), + list("W-Y brand rechargeable mini-battery", floor(scale * 2.5), /obj/item/cell/crap, VENDOR_ITEM_REGULAR) ) //--------------SQUAD ATTACHMENTS VENDOR-------------- @@ -372,3 +412,105 @@ /obj/item/clothing/suit/storage/marine/heavy/skull, /obj/item/clothing/suit/storage/marine/heavy/smooth, ) + +//------------MARINE CIVILIAN CLOTHING--------------- + +GLOBAL_LIST_INIT(cm_vending_clothing_marine_snowflake, list( + list("SHIRTS AND UNIFORMS", 0, null, null, null), + list("White T-Shirt and Brown Jeans", 12, /obj/item/clothing/under/tshirt/w_br, null, VENDOR_ITEM_REGULAR), + list("Gray T-Shirt and Blue Jeans", 12, /obj/item/clothing/under/tshirt/gray_blu, null, VENDOR_ITEM_REGULAR), + list("Red T-Shirt and Black Jeans", 12, /obj/item/clothing/under/tshirt/r_bla, null, VENDOR_ITEM_REGULAR), + list("Frontier Jumpsuit", 12, /obj/item/clothing/under/rank/synthetic/frontier, null, VENDOR_ITEM_REGULAR), + list("UA Grey Jumpsuit", 12, /obj/item/clothing/under/colonist/ua_civvies, null, VENDOR_ITEM_REGULAR), + list("UA Brown Jumpsuit", 12, /obj/item/clothing/under/colonist/wy_davisone, null, VENDOR_ITEM_REGULAR), + list("UA Green Utility Uniform", 12, /obj/item/clothing/under/rank/synthetic/utility, null, VENDOR_ITEM_REGULAR), + list("Grey Utilities", 12, /obj/item/clothing/under/rank/synthetic/utility/yellow, null, VENDOR_ITEM_REGULAR), + list("Grey Utilities and Blue Jeans", 12, /obj/item/clothing/under/rank/synthetic/utility/red, null, VENDOR_ITEM_REGULAR), + list("Blue Utilities and Brown Jeans", 12, /obj/item/clothing/under/rank/synthetic/utility/blue, null, VENDOR_ITEM_REGULAR), + list("White Service Uniform", 12, /obj/item/clothing/under/colonist/white_service, null, VENDOR_ITEM_REGULAR), + list("Steward Clothes", 12, /obj/item/clothing/under/colonist/wy_joliet_shopsteward, null, VENDOR_ITEM_REGULAR), + list("Red Dress Skirt", 12, /obj/item/clothing/under/blackskirt, null, VENDOR_ITEM_REGULAR), + list("Blue Suit Pants", 12, /obj/item/clothing/under/liaison_suit/blue, null, VENDOR_ITEM_REGULAR), + list("Brown Suit Pants", 12, /obj/item/clothing/under/liaison_suit/brown, null, VENDOR_ITEM_REGULAR), + list("White Suit Pants", 12, /obj/item/clothing/under/liaison_suit/corporate_formal, null, VENDOR_ITEM_REGULAR), + list("Working Joe Uniform", 36, /obj/item/clothing/under/rank/synthetic/joe, null, VENDOR_ITEM_REGULAR), + + list("GLASSES", 0, null, null, null), + list("Marine RPG Glasses", 12, /obj/item/clothing/glasses/regular, null, VENDOR_ITEM_REGULAR), + list("Sunglasses", 12, /obj/item/clothing/glasses/sunglasses, null, VENDOR_ITEM_REGULAR), + + list("SHOES", 0, null, null, null), + list("Boots", 12, /obj/item/clothing/shoes/marine, null, VENDOR_ITEM_REGULAR), + list("Shoes, Black", 12, /obj/item/clothing/shoes/black, null, VENDOR_ITEM_REGULAR), + list("Shoes, Blue", 12, /obj/item/clothing/shoes/blue, null, VENDOR_ITEM_REGULAR), + list("Shoes, Brown", 12, /obj/item/clothing/shoes/brown, null, VENDOR_ITEM_REGULAR), + list("Shoes, Green", 12, /obj/item/clothing/shoes/green, null, VENDOR_ITEM_REGULAR), + list("Shoes, Purple", 12, /obj/item/clothing/shoes/purple, null, VENDOR_ITEM_REGULAR), + list("Shoes, Red", 12, /obj/item/clothing/shoes/red, null, VENDOR_ITEM_REGULAR), + list("Shoes, White", 12, /obj/item/clothing/shoes/white, null, VENDOR_ITEM_REGULAR), + list("Shoes, Yellow", 12, /obj/item/clothing/shoes/yellow, null, VENDOR_ITEM_REGULAR), + + list("HEADWEAR", 0, null, null, null), + list("Beanie", 12, /obj/item/clothing/head/beanie, null, VENDOR_ITEM_REGULAR), + list("Beret, Engineering", 12, /obj/item/clothing/head/beret/eng, null, VENDOR_ITEM_REGULAR), + list("Beret, Purple", 12, /obj/item/clothing/head/beret/jan, null, VENDOR_ITEM_REGULAR), + list("Beret, Red", 12, /obj/item/clothing/head/beret/cm/red, null, VENDOR_ITEM_REGULAR), + list("Beret, Standard", 12, /obj/item/clothing/head/beret/cm, null, VENDOR_ITEM_REGULAR), + list("Beret, Tan", 12, /obj/item/clothing/head/beret/cm/tan, null, VENDOR_ITEM_REGULAR), + list("Beret, Green", 12, /obj/item/clothing/head/beret/cm, MARINE_CAN_BUY_HELMET, VENDOR_ITEM_REGULAR), + list("Beret, Black", 12, /obj/item/clothing/head/beret/cm/black, null, VENDOR_ITEM_REGULAR), + list("Beret, White", 12, /obj/item/clothing/head/beret/cm/white, null, VENDOR_ITEM_REGULAR), + list("Ushanka", 12, /obj/item/clothing/head/ushanka, null, VENDOR_ITEM_REGULAR), + list("Cap", 12, /obj/item/clothing/head/cmcap, null, VENDOR_ITEM_REGULAR), + list("Fedora", 12, /obj/item/clothing/head/fedora, null, VENDOR_ITEM_REGULAR), + + list("SUIT", 0, null, null, null), + list("Bomber Jacket, Brown", 12, /obj/item/clothing/suit/storage/bomber, null, VENDOR_ITEM_REGULAR), + list("Bomber Jacket, Black", 12, /obj/item/clothing/suit/storage/bomber/alt, null, VENDOR_ITEM_REGULAR), + list("External Webbing", 12, /obj/item/clothing/suit/storage/webbing, null, VENDOR_ITEM_REGULAR), + list("Utility Vest", 12, /obj/item/clothing/suit/storage/utility_vest, null, VENDOR_ITEM_REGULAR), + list("Hazard Vest(Orange)", 12, /obj/item/clothing/suit/storage/hazardvest, null, VENDOR_ITEM_REGULAR), + list("Hazard Vest(Blue)", 12, /obj/item/clothing/suit/storage/hazardvest/blue, null, VENDOR_ITEM_REGULAR), + list("Hazard Vest(Yellow)", 12, /obj/item/clothing/suit/storage/hazardvest/yellow, null, VENDOR_ITEM_REGULAR), + list("Hazard Vest(Black)", 12, /obj/item/clothing/suit/storage/hazardvest/black, null, VENDOR_ITEM_REGULAR), + list("USCM Service Jacket", 12, /obj/item/clothing/suit/storage/jacket/marine/service, null, VENDOR_ITEM_REGULAR), + list("Windbreaker, Brown", 12, /obj/item/clothing/suit/storage/windbreaker/windbreaker_brown, null, VENDOR_ITEM_REGULAR), + list("Windbreaker, Grey", 12, /obj/item/clothing/suit/storage/windbreaker/windbreaker_gray, null, VENDOR_ITEM_REGULAR), + list("Windbreaker, Green", 12, /obj/item/clothing/suit/storage/windbreaker/windbreaker_green, null, VENDOR_ITEM_REGULAR), + list("Windbreaker, First Responder", 12, /obj/item/clothing/suit/storage/windbreaker/windbreaker_fr, null, VENDOR_ITEM_REGULAR), + list("Windbreaker, Exploration", 12, /obj/item/clothing/suit/storage/windbreaker/windbreaker_covenant, null, VENDOR_ITEM_REGULAR), + list("Black Suit Jacket", 12, /obj/item/clothing/suit/storage/jacket/marine/corporate/black, null, VENDOR_ITEM_REGULAR), + list("Brown Suit Jacket", 12, /obj/item/clothing/suit/storage/jacket/marine/corporate/brown, null, VENDOR_ITEM_REGULAR), + list("Blue Suit Jacket", 12, /obj/item/clothing/suit/storage/jacket/marine/corporate/blue, null, VENDOR_ITEM_REGULAR), + list("Brown Vest", 12, /obj/item/clothing/suit/storage/jacket/marine/vest, null, VENDOR_ITEM_REGULAR), + list("Tan Vest", 12, /obj/item/clothing/suit/storage/jacket/marine/vest/tan, null, VENDOR_ITEM_REGULAR), + list("Grey Vest", 12, /obj/item/clothing/suit/storage/jacket/marine/vest/grey, null, VENDOR_ITEM_REGULAR), + + list("BACKPACK", 0, null, null, null), + list("Backpack, Industrial", 12, /obj/item/storage/backpack/industrial, null, VENDOR_ITEM_REGULAR), + list("Satchel, Leather", 12, /obj/item/storage/backpack/satchel, null, VENDOR_ITEM_REGULAR), + list("Satchel, Medical", 12, /obj/item/storage/backpack/satchel/med, null, VENDOR_ITEM_REGULAR), + + list("OTHER", 0, null, null, null), + list("Red Armband", 6, /obj/item/clothing/accessory/armband, null, VENDOR_ITEM_REGULAR), + list("Purple Armband", 6, /obj/item/clothing/accessory/armband/science, null, VENDOR_ITEM_REGULAR), + list("Yellow Armband", 6, /obj/item/clothing/accessory/armband/engine, null, VENDOR_ITEM_REGULAR), + list("Green Armband", 6, /obj/item/clothing/accessory/armband/medgreen, null, VENDOR_ITEM_REGULAR), + list("Dress Gloves", 6, /obj/item/clothing/gloves/marine/dress, null, VENDOR_ITEM_REGULAR), + +)) + +/obj/structure/machinery/cm_vending/clothing/marine/snowflake + name = "\improper Personal Civilian Clothing Storage Unit" + desc = "The vendor where all of your personal civilian clothing is stored while you are on-duty." + icon_state = "snowflake" + show_points = TRUE + use_snowflake_points = TRUE + vendor_theme = VENDOR_THEME_COMPANY + req_access = list() + vendor_role = list() + + vend_delay = 1 SECONDS + +/obj/structure/machinery/cm_vending/clothing/marine/snowflake/get_listed_products(mob/user) + return GLOB.cm_vending_clothing_marine_snowflake diff --git a/code/game/machinery/vending/vendor_types/squad_prep/squad_rifleman.dm b/code/game/machinery/vending/vendor_types/squad_prep/squad_rifleman.dm index 2e6f78f068f5..65066731070d 100644 --- a/code/game/machinery/vending/vendor_types/squad_prep/squad_rifleman.dm +++ b/code/game/machinery/vending/vendor_types/squad_prep/squad_rifleman.dm @@ -45,6 +45,12 @@ GLOBAL_LIST_INIT(cm_vending_clothing_marine, list( list("Heat Absorbent Coif", 0, /obj/item/clothing/mask/rebreather/scarf, MARINE_CAN_BUY_MASK, VENDOR_ITEM_REGULAR), list("Rebreather", 0, /obj/item/clothing/mask/rebreather, MARINE_CAN_BUY_MASK, VENDOR_ITEM_REGULAR), + list("ENGINEERING SUPPLIES", 0, null, null, null), + list("E-Tool", 5, /obj/item/tool/shovel/etool/folded, null, VENDOR_ITEM_REGULAR), + list("Sandbags", 20, /obj/item/stack/sandbags_empty/half, null, VENDOR_ITEM_REGULAR), + list("ES-11 Mobile Fuel Canister", 5, /obj/item/tool/weldpack/minitank, null, VENDOR_ITEM_REGULAR), + list("ME3 Hand Welder", 5, /obj/item/tool/weldingtool/simple, null, VENDOR_ITEM_REGULAR), + list("RESTRICTED FIREARMS", 0, null, null, null), list("VP78 Pistol", 15, /obj/item/storage/box/guncase/vp78, null, VENDOR_ITEM_REGULAR), list("SU-6 Smart Pistol", 15, /obj/item/storage/box/guncase/smartpistol, null, VENDOR_ITEM_REGULAR), @@ -61,23 +67,30 @@ GLOBAL_LIST_INIT(cm_vending_clothing_marine, list( list("M74 AGM-Hornet Airburst Packet (x3 airburst grenades", 15, /obj/item/storage/box/packet/hornet, null, VENDOR_ITEM_REGULAR), list("M20 Mine Box (x4 mines)", 20, /obj/item/storage/box/explosive_mines, null, VENDOR_ITEM_REGULAR), - list("AMMUNITION", 0, null, null, null), + list("PRIMARY AMMUNITION", 0, null, null, null), list("M4RA AP Magazine (10x24mm)", 10, /obj/item/ammo_magazine/rifle/m4ra/ap, null, VENDOR_ITEM_REGULAR), list("M39 AP Magazine (10x20mm)", 10, /obj/item/ammo_magazine/smg/m39/ap , null, VENDOR_ITEM_REGULAR), list("M39 Extended Magazine (10x20mm)", 10, /obj/item/ammo_magazine/smg/m39/extended , null, VENDOR_ITEM_REGULAR), list("M41A AP Magazine (10x24mm)", 10, /obj/item/ammo_magazine/rifle/ap , null, VENDOR_ITEM_REGULAR), list("M41A Extended Magazine (10x24mm)", 10, /obj/item/ammo_magazine/rifle/extended , null, VENDOR_ITEM_REGULAR), + + list("SIDEARM AMMUNITION", 0, null, null, null), list("M44 Heavy Speed Loader (.44)", 10, /obj/item/ammo_magazine/revolver/heavy, null, VENDOR_ITEM_REGULAR), + list("M44 Marksman Speed Loader (.44)", 10, /obj/item/ammo_magazine/revolver/marksman, null, VENDOR_ITEM_REGULAR), + list("M4A3 HP Magazine", 5, /obj/item/ammo_magazine/pistol/hp, null, VENDOR_ITEM_REGULAR), + list("M4A3 AP Magazine", 5, /obj/item/ammo_magazine/pistol/ap, null, VENDOR_ITEM_REGULAR), + list("VP78 Magazine", 5, /obj/item/ammo_magazine/pistol/vp78, null, VENDOR_ITEM_REGULAR), + list("SU-6 Smartpistol Magazine (.45)", 10, /obj/item/ammo_magazine/pistol/smart, null, VENDOR_ITEM_REGULAR), list("ARMORS", 0, null, null, null), - list("M3 B12 Pattern Marine Armor", 30, /obj/item/clothing/suit/storage/marine/leader, null, VENDOR_ITEM_REGULAR), - list("M4 Pattern Armor", 30, /obj/item/clothing/suit/storage/marine/rto, null, VENDOR_ITEM_REGULAR), + list("M3 B12 Pattern Marine Armor", 30, /obj/item/clothing/suit/storage/marine/medium/leader, null, VENDOR_ITEM_REGULAR), + list("M4 Pattern Armor", 20, /obj/item/clothing/suit/storage/marine/medium/rto, null, VENDOR_ITEM_REGULAR), list("CLOTHING ITEMS", 0, null, null, null), list("Webbing", 10, /obj/item/clothing/accessory/storage/webbing, null, VENDOR_ITEM_REGULAR), list("Brown Webbing Vest", 15, /obj/item/clothing/accessory/storage/black_vest/brown_vest, null, VENDOR_ITEM_REGULAR), list("Black Webbing Vest", 15, /obj/item/clothing/accessory/storage/black_vest, null, VENDOR_ITEM_REGULAR), - list("Drop Pouch", 15, /obj/item/clothing/accessory/storage/droppouch, null, VENDOR_ITEM_REGULAR), + list("Drop Pouch", 10, /obj/item/clothing/accessory/storage/droppouch, null, VENDOR_ITEM_REGULAR), list("Shoulder Holster", 15, /obj/item/clothing/accessory/storage/holster, null, VENDOR_ITEM_REGULAR), list("Machete Scabbard (Full)", 15, /obj/item/storage/large_holster/machete/full, null, VENDOR_ITEM_REGULAR), list("Machete Pouch (Full)", 15, /obj/item/storage/pouch/machete/full, null, VENDOR_ITEM_REGULAR), @@ -88,8 +101,6 @@ GLOBAL_LIST_INIT(cm_vending_clothing_marine, list( list("Large General Pouch", 15, /obj/item/storage/pouch/general/large, null, VENDOR_ITEM_REGULAR), list("UTILITIES", 0, null, null, null), - list("E-Tool", 5, /obj/item/tool/shovel/etool/folded, null, VENDOR_ITEM_REGULAR), - list("Sandbags", 20, /obj/item/stack/sandbags_empty/half, null, VENDOR_ITEM_REGULAR), list("Roller Bed", 5, /obj/item/roller, null, VENDOR_ITEM_REGULAR), list("Fulton Device Stack", 5, /obj/item/stack/fulton, null, VENDOR_ITEM_REGULAR), list("Fire Extinguisher (Portable)", 5, /obj/item/tool/extinguisher/mini, null, VENDOR_ITEM_REGULAR), @@ -98,6 +109,7 @@ GLOBAL_LIST_INIT(cm_vending_clothing_marine, list( list("Whistle", 5, /obj/item/device/whistle, null, VENDOR_ITEM_REGULAR), list("BINOCULARS", 0, null, null, null), + list("Binoculars", 5, /obj/item/device/binoculars, null, VENDOR_ITEM_REGULAR), list("Range Finder", 10, /obj/item/device/binoculars/range, null, VENDOR_ITEM_REGULAR), list("Laser Designator", 15, /obj/item/device/binoculars/range/designator, null, VENDOR_ITEM_REGULAR), diff --git a/code/game/machinery/vending/vendor_types/squad_prep/squad_smartgunner.dm b/code/game/machinery/vending/vendor_types/squad_prep/squad_smartgunner.dm index b67d11b3f487..60afed8b984d 100644 --- a/code/game/machinery/vending/vendor_types/squad_prep/squad_smartgunner.dm +++ b/code/game/machinery/vending/vendor_types/squad_prep/squad_smartgunner.dm @@ -4,9 +4,6 @@ GLOBAL_LIST_INIT(cm_vending_gear_smartgun, list( list("SMARTGUN SET (MANDATORY)", 0, null, null, null), list("Essential Smartgunner Set", 0, /obj/item/storage/box/m56_system, MARINE_CAN_BUY_ESSENTIALS, VENDOR_ITEM_MANDATORY), - list("SMARTGUN AMMUNITION", 0, null, null, null), - list("M56 Smartgun Drum", 15, /obj/item/ammo_magazine/smartgun, null, VENDOR_ITEM_RECOMMENDED), - list("GUN ATTACHMENTS (CHOOSE 1)", 0, null, null, null), list("Laser Sight", 0, /obj/item/attachable/lasersight, MARINE_CAN_BUY_ATTACHMENT, VENDOR_ITEM_REGULAR), list("Red-Dot Sight", 0, /obj/item/attachable/reddot, MARINE_CAN_BUY_ATTACHMENT, VENDOR_ITEM_REGULAR), @@ -23,6 +20,18 @@ GLOBAL_LIST_INIT(cm_vending_gear_smartgun, list( list("M74 AGM-Hornet Airburst Packet (x3 airburst grenades", 20, /obj/item/storage/box/packet/hornet, null, VENDOR_ITEM_REGULAR), list("M20 Mine Box (x4 mines)", 20, /obj/item/storage/box/explosive_mines, null, VENDOR_ITEM_REGULAR), + list("SIDEARM AMMUNITION", 0, null, null, null), + list("M44 Heavy Speed Loader (.44)", 10, /obj/item/ammo_magazine/revolver/heavy, null, VENDOR_ITEM_REGULAR), + list("M44 Marksman Speed Loader (.44)", 10, /obj/item/ammo_magazine/revolver/marksman, null, VENDOR_ITEM_REGULAR), + list("M4A3 HP Magazine", 5, /obj/item/ammo_magazine/pistol/hp, null, VENDOR_ITEM_REGULAR), + list("M4A3 AP Magazine", 5, /obj/item/ammo_magazine/pistol/ap, null, VENDOR_ITEM_REGULAR), + list("VP78 Magazine", 5, /obj/item/ammo_magazine/pistol/vp78, null, VENDOR_ITEM_REGULAR), + list("SU-6 Smartpistol Magazine (.45)", 10, /obj/item/ammo_magazine/pistol/smart, null, VENDOR_ITEM_REGULAR), + + list("RESTRICTED FIREARMS", 0, null, null, null), + list("VP78 Pistol", 15, /obj/item/storage/box/guncase/vp78, null, VENDOR_ITEM_REGULAR), + list("SU-6 Smart Pistol", 15, /obj/item/storage/box/guncase/smartpistol, null, VENDOR_ITEM_REGULAR), + list("CLOTHING ITEMS", 0, null, null, null), list("Machete Scabbard (Full)", 6, /obj/item/storage/large_holster/machete/full, null, VENDOR_ITEM_REGULAR), list("Fuel Tank Strap Pouch", 5, /obj/item/storage/pouch/flamertank, null, VENDOR_ITEM_REGULAR), @@ -33,8 +42,10 @@ GLOBAL_LIST_INIT(cm_vending_gear_smartgun, list( list("Whistle", 5, /obj/item/device/whistle, null, VENDOR_ITEM_REGULAR), list("Roller Bed", 5, /obj/item/roller, null, VENDOR_ITEM_REGULAR), list("Fulton Device Stack", 5, /obj/item/stack/fulton, null, VENDOR_ITEM_REGULAR), + list("Smartgun DV9 Battery", 15, /obj/item/smartgun_battery, null, VENDOR_ITEM_REGULAR), list("BINOCULARS", 0, null, null, null), + list("Binoculars", 5, /obj/item/device/binoculars, null, VENDOR_ITEM_REGULAR), list("Range Finder", 10, /obj/item/device/binoculars/range, null, VENDOR_ITEM_REGULAR), list("Laser Designator", 15, /obj/item/device/binoculars/range/designator, null, VENDOR_ITEM_REGULAR), diff --git a/code/game/machinery/vending/vendor_types/squad_prep/squad_specialist.dm b/code/game/machinery/vending/vendor_types/squad_prep/squad_specialist.dm index e800fc1efd56..4d14b7b89ccd 100644 --- a/code/game/machinery/vending/vendor_types/squad_prep/squad_specialist.dm +++ b/code/game/machinery/vending/vendor_types/squad_prep/squad_specialist.dm @@ -7,6 +7,7 @@ GLOBAL_LIST_INIT(cm_vending_gear_spec, list( list("Pyro Set", 0, /obj/item/storage/box/spec/pyro, MARINE_CAN_BUY_ESSENTIALS, VENDOR_ITEM_REGULAR), list("Scout Set", 0, /obj/item/storage/box/spec/scout, MARINE_CAN_BUY_ESSENTIALS, VENDOR_ITEM_REGULAR), list("Sniper Set", 0, /obj/item/storage/box/spec/sniper, MARINE_CAN_BUY_ESSENTIALS, VENDOR_ITEM_RECOMMENDED), + list("Anti-materiel Sniper Set", 0, /obj/item/storage/box/spec/sniper/anti_materiel, MARINE_CAN_BUY_ESSENTIALS, VENDOR_ITEM_RECOMMENDED), list("EXTRA SCOUT AMMUNITION", 0, null, null, null), list("A19 High Velocity Impact Magazine (10x24mm)", 40, /obj/item/ammo_magazine/rifle/m4ra/custom/impact, null, VENDOR_ITEM_REGULAR), @@ -17,6 +18,7 @@ GLOBAL_LIST_INIT(cm_vending_gear_spec, list( list("M42A Flak Magazine (10x28mm)", 40, /obj/item/ammo_magazine/sniper/flak, null, VENDOR_ITEM_REGULAR), list("M42A Incendiary Magazine (10x28mm)", 40, /obj/item/ammo_magazine/sniper/incendiary, null, VENDOR_ITEM_REGULAR), list("M42A Marksman Magazine (10x28mm Caseless)", 40, /obj/item/ammo_magazine/sniper, null, VENDOR_ITEM_REGULAR), + list("XM43E1 Marksman Magazine (10x99mm Caseless)", 40, /obj/item/ammo_magazine/sniper/anti_materiel, null, VENDOR_ITEM_REGULAR), list("EXTRA DEMOLITIONIST AMMUNITION", 0, null, null, null), list("84mm Anti-Armor Rocket", 40, /obj/item/ammo_magazine/rocket/ap, null, VENDOR_ITEM_REGULAR), @@ -96,6 +98,18 @@ GLOBAL_LIST_INIT(cm_vending_clothing_specialist, list( list("Gas Mask", 0, /obj/item/clothing/mask/gas, MARINE_CAN_BUY_MASK, VENDOR_ITEM_REGULAR), list("Heat Absorbent Coif", 0, /obj/item/clothing/mask/rebreather/scarf, MARINE_CAN_BUY_MASK, VENDOR_ITEM_REGULAR), + list("RESTRICTED FIREARMS", 0, null, null, null), + list("VP78 Pistol", 15, /obj/item/storage/box/guncase/vp78, null, VENDOR_ITEM_REGULAR), + list("SU-6 Smart Pistol", 15, /obj/item/storage/box/guncase/smartpistol, null, VENDOR_ITEM_REGULAR), + + list("SIDEARM AMMUNITION", 0, null, null, null), + list("M44 Heavy Speed Loader (.44)", 10, /obj/item/ammo_magazine/revolver/heavy, null, VENDOR_ITEM_REGULAR), + list("M44 Marksman Speed Loader (.44)", 10, /obj/item/ammo_magazine/revolver/marksman, null, VENDOR_ITEM_REGULAR), + list("M4A3 HP Magazine", 5, /obj/item/ammo_magazine/pistol/hp, null, VENDOR_ITEM_REGULAR), + list("M4A3 AP Magazine", 5, /obj/item/ammo_magazine/pistol/ap, null, VENDOR_ITEM_REGULAR), + list("VP78 Magazine", 5, /obj/item/ammo_magazine/pistol/vp78, null, VENDOR_ITEM_REGULAR), + list("SU-6 Smartpistol Magazine (.45)", 10, /obj/item/ammo_magazine/pistol/smart, null, VENDOR_ITEM_REGULAR), + list("CLOTHING ITEMS", 0, null, null, null), list("Machete Scabbard (Full)", 6, /obj/item/storage/large_holster/machete/full, null, VENDOR_ITEM_REGULAR), list("Machete Pouch (Full)", 15, /obj/item/storage/pouch/machete/full, null, VENDOR_ITEM_REGULAR), @@ -107,10 +121,17 @@ GLOBAL_LIST_INIT(cm_vending_clothing_specialist, list( list("Autoinjector Pouch (Full)", 15, /obj/item/storage/pouch/autoinjector/full, null, VENDOR_ITEM_REGULAR), list("UTILITIES", 0, null, null, null), - list("Fire Extinguisher (Portable)", 5, /obj/item/tool/extinguisher/mini, null, VENDOR_ITEM_REGULAR), list("Roller Bed", 5, /obj/item/roller, null, VENDOR_ITEM_REGULAR), list("Fulton Device Stack", 5, /obj/item/stack/fulton, null, VENDOR_ITEM_REGULAR), + list("Fire Extinguisher (Portable)", 5, /obj/item/tool/extinguisher/mini, null, VENDOR_ITEM_REGULAR), list("Motion Detector", 10, /obj/item/device/motiondetector, null, VENDOR_ITEM_REGULAR), + list("Data Detector", 10, /obj/item/device/motiondetector/intel, null, VENDOR_ITEM_REGULAR), + list("Whistle", 5, /obj/item/device/whistle, null, VENDOR_ITEM_REGULAR), + + list("BINOCULARS", 0, null, null, null), + list("Binoculars", 5, /obj/item/device/binoculars, null, VENDOR_ITEM_REGULAR), + list("Range Finder", 10, /obj/item/device/binoculars/range, null, VENDOR_ITEM_REGULAR), + list("Laser Designator", 15, /obj/item/device/binoculars/range/designator, null, VENDOR_ITEM_REGULAR), list("HELMET OPTICS", 0, null, null, null), list("Medical Helmet Optic", 15, /obj/item/device/helmet_visor/medical, null, VENDOR_ITEM_REGULAR), diff --git a/code/game/machinery/vending/vendor_types/squad_prep/squad_tl.dm b/code/game/machinery/vending/vendor_types/squad_prep/squad_tl.dm index 1c86a293772e..c37dd98ed263 100644 --- a/code/game/machinery/vending/vendor_types/squad_prep/squad_tl.dm +++ b/code/game/machinery/vending/vendor_types/squad_prep/squad_tl.dm @@ -1,17 +1,6 @@ //------------GEAR VENDOR--------------- GLOBAL_LIST_INIT(cm_vending_gear_tl, list( - - list("AMMUNITION", 0, null, null, null), - list("M4RA AP Magazine (10x24mm)", 10, /obj/item/ammo_magazine/rifle/m4ra/ap, null, VENDOR_ITEM_REGULAR), - list("M39 AP Magazine (10x20mm)", 10, /obj/item/ammo_magazine/smg/m39/ap , null, VENDOR_ITEM_REGULAR), - list("M39 Extended Magazine (10x20mm)", 10, /obj/item/ammo_magazine/smg/m39/extended , null, VENDOR_ITEM_REGULAR), - list("M41A AP Magazine (10x24mm)", 10, /obj/item/ammo_magazine/rifle/ap , null, VENDOR_ITEM_REGULAR), - list("M41A Extended Magazine (10x24mm)", 10, /obj/item/ammo_magazine/rifle/extended , null, VENDOR_ITEM_REGULAR), - list("M44 Heavy Speed Loader (.44)", 10, /obj/item/ammo_magazine/revolver/heavy, null, VENDOR_ITEM_REGULAR), - list("M4A3 HP Magazine", 5, /obj/item/ammo_magazine/pistol/hp, null, VENDOR_ITEM_REGULAR), - list("M4A3 AP Magazine", 5, /obj/item/ammo_magazine/pistol/ap, null, VENDOR_ITEM_REGULAR), - list("EXPLOSIVES", 0, null, null, null), list("M40 HEDP High Explosive Packet (x3 grenades)", 18, /obj/item/storage/box/packet/high_explosive, null, VENDOR_ITEM_REGULAR), list("M40 HIDP Incendiary Packet (x3 grenades)", 18, /obj/item/storage/box/packet/incendiary, null, VENDOR_ITEM_REGULAR), @@ -24,13 +13,28 @@ GLOBAL_LIST_INIT(cm_vending_gear_tl, list( list("M20 Mine Box (x4 mines)", 20, /obj/item/storage/box/explosive_mines, null, VENDOR_ITEM_REGULAR), list("M40 MFHS Metal Foam Grenade", 5, /obj/item/explosive/grenade/metal_foam, null, VENDOR_ITEM_REGULAR), + list("PRIMARY AMMUNITION", 0, null, null, null), + list("M4RA AP Magazine (10x24mm)", 10, /obj/item/ammo_magazine/rifle/m4ra/ap, null, VENDOR_ITEM_REGULAR), + list("M39 AP Magazine (10x20mm)", 10, /obj/item/ammo_magazine/smg/m39/ap , null, VENDOR_ITEM_REGULAR), + list("M39 Extended Magazine (10x20mm)", 10, /obj/item/ammo_magazine/smg/m39/extended , null, VENDOR_ITEM_REGULAR), + list("M41A AP Magazine (10x24mm)", 10, /obj/item/ammo_magazine/rifle/ap , null, VENDOR_ITEM_REGULAR), + list("M41A Extended Magazine (10x24mm)", 10, /obj/item/ammo_magazine/rifle/extended , null, VENDOR_ITEM_REGULAR), + + list("SIDEARM AMMUNITION", 0, null, null, null), + list("M44 Heavy Speed Loader (.44)", 10, /obj/item/ammo_magazine/revolver/heavy, null, VENDOR_ITEM_REGULAR), + list("M44 Marksman Speed Loader (.44)", 10, /obj/item/ammo_magazine/revolver/marksman, null, VENDOR_ITEM_REGULAR), + list("M4A3 HP Magazine", 5, /obj/item/ammo_magazine/pistol/hp, null, VENDOR_ITEM_REGULAR), + list("M4A3 AP Magazine", 5, /obj/item/ammo_magazine/pistol/ap, null, VENDOR_ITEM_REGULAR), + list("VP78 Magazine", 5, /obj/item/ammo_magazine/pistol/vp78, null, VENDOR_ITEM_REGULAR), + list("SU-6 Smartpistol Magazine (.45)", 10, /obj/item/ammo_magazine/pistol/smart, null, VENDOR_ITEM_REGULAR), + list("RESTRICTED FIREARMS", 0, null, null, null), list("VP78 Pistol", 10, /obj/item/storage/box/guncase/vp78, null, VENDOR_ITEM_REGULAR), list("SU-6 Smart Pistol", 15, /obj/item/storage/box/guncase/smartpistol, null, VENDOR_ITEM_REGULAR), list("M79 Grenade Launcher", 30, /obj/item/storage/box/guncase/m79, null, VENDOR_ITEM_REGULAR), list("ARMORS", 0, null, null, null), - list("M3 B12 Pattern Marine Armor", 30, /obj/item/clothing/suit/storage/marine/leader, null, VENDOR_ITEM_REGULAR), + list("M3 B12 Pattern Marine Armor", 30, /obj/item/clothing/suit/storage/marine/medium/leader, null, VENDOR_ITEM_REGULAR), list("CLOTHING ITEMS", 0, null, null, null), list("Machete Scabbard (Full)", 5, /obj/item/storage/large_holster/machete/full, null, VENDOR_ITEM_REGULAR), @@ -42,10 +46,14 @@ GLOBAL_LIST_INIT(cm_vending_gear_tl, list( list("Insulated Gloves", 3, /obj/item/clothing/gloves/yellow, null, VENDOR_ITEM_REGULAR), list("Night Vision Optic", 30, /obj/item/device/helmet_visor/night_vision, null, VENDOR_ITEM_RECOMMENDED), - list("UTILITIES", 0, null, null, null), - list("Motion Detector", 15, /obj/item/device/motiondetector, null, VENDOR_ITEM_RECOMMENDED), + list("ENGINEERING SUPPLIES", 0, null, null, null), list("Plastic Explosive", 10, /obj/item/explosive/plastic, null, VENDOR_ITEM_REGULAR), list("Breaching Charge", 10, /obj/item/explosive/plastic/breaching_charge, null, VENDOR_ITEM_REGULAR), + list("ES-11 Mobile Fuel Canister", 5, /obj/item/tool/weldpack/minitank, null, VENDOR_ITEM_REGULAR), + list("ME3 Hand Welder", 5, /obj/item/tool/weldingtool/simple, null, VENDOR_ITEM_REGULAR), + + list("UTILITIES", 0, null, null, null), + list("Motion Detector", 15, /obj/item/device/motiondetector, null, VENDOR_ITEM_RECOMMENDED), list("Roller Bed", 5, /obj/item/roller, null, VENDOR_ITEM_REGULAR), list("Fulton Device Stack", 5, /obj/item/stack/fulton, null, VENDOR_ITEM_REGULAR), list("Fire Extinguisher (Portable)", 5, /obj/item/tool/extinguisher/mini, null, VENDOR_ITEM_REGULAR), @@ -53,6 +61,8 @@ GLOBAL_LIST_INIT(cm_vending_gear_tl, list( list("BINOCULARS", 0, null, null, null), list("Binoculars", 5, /obj/item/device/binoculars, null, VENDOR_ITEM_REGULAR), + list("Range Finder", 10, /obj/item/device/binoculars/range, null, VENDOR_ITEM_REGULAR), + list("Laser Designator", 15, /obj/item/device/binoculars/range/designator, null, VENDOR_ITEM_REGULAR), list("HELMET OPTICS", 0, null, null, null), list("Medical Helmet Optic", 15, /obj/item/device/helmet_visor/medical, null, VENDOR_ITEM_REGULAR), @@ -81,7 +91,7 @@ GLOBAL_LIST_INIT(cm_vending_gear_tl, list( GLOBAL_LIST_INIT(cm_vending_clothing_tl, list( list("STANDARD EQUIPMENT (TAKE ALL)", 0, null, null, null), list("Standard Marine Apparel", 0, list(/obj/item/clothing/under/marine, /obj/item/clothing/shoes/marine/knife, /obj/item/clothing/gloves/marine, /obj/item/device/radio/headset/almayer/marine, /obj/item/clothing/head/helmet/marine/rto), MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_MANDATORY), - list("M4 Pattern Armor", 0, /obj/item/clothing/suit/storage/marine/rto, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_MANDATORY), + list("M4 Pattern Armor", 0, /obj/item/clothing/suit/storage/marine/medium/rto, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_MANDATORY), list("MRE", 0, /obj/item/storage/box/MRE, MARINE_CAN_BUY_MRE, VENDOR_ITEM_MANDATORY), list("Map", 0, /obj/item/map/current_map, MARINE_CAN_BUY_KIT, VENDOR_ITEM_MANDATORY), list("Essential Fireteam Leader Utilities", 0, /obj/effect/essentials_set/tl, MARINE_CAN_BUY_ESSENTIALS, VENDOR_ITEM_MANDATORY), diff --git a/code/game/machinery/vending/vendor_types/squad_prep/tutorial.dm b/code/game/machinery/vending/vendor_types/squad_prep/tutorial.dm new file mode 100644 index 000000000000..c1cedd85c7fc --- /dev/null +++ b/code/game/machinery/vending/vendor_types/squad_prep/tutorial.dm @@ -0,0 +1,30 @@ +GLOBAL_LIST_INIT(cm_vending_clothing_tutorial, list( + list("STANDARD EQUIPMENT (TAKE ALL)", 0, null, null, null), + list("Standard Marine Apparel", 0, list(/obj/item/clothing/under/marine, /obj/item/clothing/shoes/marine/knife, /obj/item/clothing/gloves/marine, /obj/item/clothing/head/helmet/marine), MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_MANDATORY), + + list("ARMOR (CHOOSE 1)", 0, null, null, null), + list("Medium Armor", 0, /obj/item/clothing/suit/storage/marine/medium, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_REGULAR), + + list("BACKPACK (CHOOSE 1)", 0, null, null, null), + list("Satchel", 0, /obj/item/storage/backpack/marine/satchel, MARINE_CAN_BUY_BACKPACK, VENDOR_ITEM_RECOMMENDED), + + list("BELT (CHOOSE 1)", 0, null, null, null), + list("M276 Ammo Load Rig", 0, /obj/item/storage/belt/marine, MARINE_CAN_BUY_BELT, VENDOR_ITEM_RECOMMENDED), + + list("POUCHES (CHOOSE 1)", 0, null, null, null), + list("Flare Pouch (Full)", 0, /obj/item/storage/pouch/flare/full, MARINE_CAN_BUY_GLASSES, VENDOR_ITEM_RECOMMENDED), + + )) // The pouch uses a different category so they only get one + +/obj/structure/machinery/cm_vending/clothing/tutorial + name = "\improper ColMarTech Automated Marine Equipment Rack" + desc = "An automated rack hooked up to a colossal storage of Marine Rifleman standard-issue equipment." + icon_state = "mar_rack" + show_points = TRUE + vendor_theme = VENDOR_THEME_USCM + req_access = list(ACCESS_TUTORIAL_LOCKED) + + vendor_role = list() + +/obj/structure/machinery/cm_vending/clothing/tutorial/get_listed_products(mob/user) + return GLOB.cm_vending_clothing_tutorial diff --git a/code/game/machinery/vending/vendor_types/supplies.dm b/code/game/machinery/vending/vendor_types/supplies.dm index 376edf7ffc5d..a363e2e03f64 100644 --- a/code/game/machinery/vending/vendor_types/supplies.dm +++ b/code/game/machinery/vending/vendor_types/supplies.dm @@ -28,6 +28,7 @@ list("M94 Marking Flare Pack", 5, /obj/item/storage/box/m94, VENDOR_ITEM_REGULAR), list("M5 Bayonet", 8, /obj/item/attachable/bayonet, VENDOR_ITEM_REGULAR), list("Handheld Radio", 5, /obj/item/device/radio, VENDOR_ITEM_REGULAR), + list("deck of UNO cards", 5, /obj/item/toy/deck/uno, VENDOR_ITEM_REGULAR), list("CLOTHING", -1, null, null), list("Gas Mask", 15, /obj/item/clothing/mask/gas, VENDOR_ITEM_REGULAR), diff --git a/code/game/machinery/vending/vendor_types/wo_vendors.dm b/code/game/machinery/vending/vendor_types/wo_vendors.dm index 46299ef19f4c..1d6ad60bb357 100644 --- a/code/game/machinery/vending/vendor_types/wo_vendors.dm +++ b/code/game/machinery/vending/vendor_types/wo_vendors.dm @@ -8,57 +8,108 @@ /obj/structure/machinery/cm_vending/sorted/uniform_supply/squad_prep/wo/populate_product_list(scale) listed_products = list( - list("UNIFORM", -1, null, null), - list("Lightweight IMP Backpack", 10, /obj/item/storage/backpack/marine, VENDOR_ITEM_REGULAR), - list("M276 Ammo Load Rig", 10, /obj/item/storage/belt/marine, VENDOR_ITEM_REGULAR), - list("M276 General Pistol Holster Rig", 10, /obj/item/storage/belt/gun/m4a3, VENDOR_ITEM_REGULAR), - list("M276 M39 Holster Rig", 10, /obj/item/storage/belt/gun/m39, VENDOR_ITEM_REGULAR), - list("M276 M44 Holster Rig", 10, /obj/item/storage/belt/gun/m44, VENDOR_ITEM_REGULAR), - list("M276 M82F Holster Rig", 10, /obj/item/storage/belt/gun/flaregun, VENDOR_ITEM_REGULAR), - list("M276 Shotgun Shell Loading Rig", 10, /obj/item/storage/belt/shotgun, VENDOR_ITEM_REGULAR), - list("Marine Combat Boots", 20, /obj/item/clothing/shoes/marine, VENDOR_ITEM_REGULAR), - list("USCM Satchel", 10, /obj/item/storage/backpack/marine/satchel, VENDOR_ITEM_REGULAR), - list("USCM Uniform", 20, /obj/item/clothing/under/marine, VENDOR_ITEM_REGULAR), - list("Technician Welder-Satchel", 10, /obj/item/storage/backpack/marine/engineerpack/satchel, VENDOR_ITEM_REGULAR), - - list("POUCHES", -1, null, null), - list("Construction Pouch", round(scale * 2), /obj/item/storage/pouch/construction, VENDOR_ITEM_REGULAR), - list("Explosive Pouch", round(scale * 2), /obj/item/storage/pouch/explosive, VENDOR_ITEM_REGULAR), - list("First-Aid Pouch (Full)", round(scale * 5), /obj/item/storage/pouch/firstaid/full, VENDOR_ITEM_REGULAR), - list("First Responder Pouch", round(scale * 2), /obj/item/storage/pouch/first_responder, VENDOR_ITEM_REGULAR), - list("Flare Pouch", round(scale * 5), /obj/item/storage/pouch/flare/full, VENDOR_ITEM_REGULAR), - list("Large Pistol Magazine Pouch", round(scale * 3), /obj/item/storage/pouch/magazine/pistol/large, VENDOR_ITEM_REGULAR), - list("Magazine Pouch", round(scale * 5), /obj/item/storage/pouch/magazine, VENDOR_ITEM_REGULAR), - list("Medical Pouch", round(scale * 2), /obj/item/storage/pouch/medical, VENDOR_ITEM_REGULAR), - list("Medium General Pouch", round(scale * 2), /obj/item/storage/pouch/general/medium, VENDOR_ITEM_REGULAR), - list("Medkit Pouch", round(scale * 2), /obj/item/storage/pouch/medkit, VENDOR_ITEM_REGULAR), - list("Sidearm Pouch", round(scale * 15), /obj/item/storage/pouch/pistol, VENDOR_ITEM_REGULAR), - list("Syringe Pouch", round(scale * 2), /obj/item/storage/pouch/syringe, VENDOR_ITEM_REGULAR), - list("Tools Pouch", round(scale * 2), /obj/item/storage/pouch/tools, VENDOR_ITEM_REGULAR), + list("STANDARD EQUIPMENT", -1, null, null, null), + list("Marine Combat Boots", floor(scale * 10), /obj/item/clothing/shoes/marine, VENDOR_ITEM_REGULAR), + list("Marine Brown Combat Boots", floor(scale * 2), /obj/item/clothing/shoes/marine/brown, VENDOR_ITEM_REGULAR), + list("USCM Uniform", floor(scale * 10), /obj/item/clothing/under/marine, VENDOR_ITEM_REGULAR), + list("Marine Combat Gloves", floor(scale * 10), /obj/item/clothing/gloves/marine, VENDOR_ITEM_REGULAR), + list("Marine Brown Combat Gloves", floor(scale * 2), /obj/item/clothing/gloves/marine/brown, VENDOR_ITEM_REGULAR), + list("Marine Black Combat Gloves", floor(scale * 2), /obj/item/clothing/gloves/marine/black, VENDOR_ITEM_REGULAR), + list("M10 Pattern Marine Helmet", floor(scale * 10), /obj/item/clothing/head/helmet/marine, VENDOR_ITEM_REGULAR), list("RADIO HEADSETS", -1, null, null), - list("Marine Alpha Radio Headset", 10, /obj/item/device/radio/headset/almayer/marine/alpha, VENDOR_ITEM_REGULAR), - list("Marine Bravo Radio Headset", 10, /obj/item/device/radio/headset/almayer/marine/bravo, VENDOR_ITEM_REGULAR), - list("Marine Charlie Radio Headset", 10, /obj/item/device/radio/headset/almayer/marine/charlie, VENDOR_ITEM_REGULAR), - list("Marine Delta Radio Headset", 10, /obj/item/device/radio/headset/almayer/marine/delta, VENDOR_ITEM_REGULAR), - - list("GLOVES", -1, null, null), - list("Marine Combat Gloves", 40, /obj/item/clothing/gloves/marine, VENDOR_ITEM_REGULAR), + list("Marine Alpha Radio Headset", floor(scale * 5), /obj/item/device/radio/headset/almayer/marine/alpha, VENDOR_ITEM_REGULAR), + list("Marine Bravo Radio Headset", floor(scale * 5), /obj/item/device/radio/headset/almayer/marine/bravo, VENDOR_ITEM_REGULAR), + list("Marine Charlie Radio Headset", floor(scale * 5), /obj/item/device/radio/headset/almayer/marine/charlie, VENDOR_ITEM_REGULAR), + list("Marine Delta Radio Headset", floor(scale * 5), /obj/item/device/radio/headset/almayer/marine/delta, VENDOR_ITEM_REGULAR), + list("Marine Radio Headset", floor(scale * 5), /obj/item/device/radio/headset/almayer, VENDOR_ITEM_REGULAR), + + list("WEBBINGS", -1, null, null), + list("Brown Webbing Vest", floor(scale * 1), /obj/item/clothing/accessory/storage/black_vest/brown_vest, VENDOR_ITEM_REGULAR), + list("Black Webbing Vest", floor(scale * 1), /obj/item/clothing/accessory/storage/black_vest, VENDOR_ITEM_REGULAR), + list("Webbing", floor(scale * 2), /obj/item/clothing/accessory/storage/webbing, VENDOR_ITEM_REGULAR), + list("Drop Pouch", floor(scale * 1), /obj/item/clothing/accessory/storage/droppouch, VENDOR_ITEM_REGULAR), + list("Shoulder Holster", floor(scale * 1), /obj/item/clothing/accessory/storage/holster, VENDOR_ITEM_REGULAR), list("ARMOR", -1, null, null), - list("M10 Pattern Marine Helmet", 20, /obj/item/clothing/head/helmet/marine, VENDOR_ITEM_REGULAR), - list("M3 Pattern Carrier Marine Armor", 20, /obj/item/clothing/suit/storage/marine/carrier, VENDOR_ITEM_REGULAR), - list("M3 Pattern Padded Marine Armor", 20, /obj/item/clothing/suit/storage/marine/padded, VENDOR_ITEM_REGULAR), - list("M3 Pattern Padless Marine Armor", 20, /obj/item/clothing/suit/storage/marine/padless, VENDOR_ITEM_REGULAR), - list("M3 Pattern Ridged Marine Armor", 20, /obj/item/clothing/suit/storage/marine/padless_lines, VENDOR_ITEM_REGULAR), - list("M3 Pattern Skull Marine Armor", 20, /obj/item/clothing/suit/storage/marine/skull, VENDOR_ITEM_REGULAR), - list("M3 Pattern Smooth Marine Armor", 20, /obj/item/clothing/suit/storage/marine/smooth, VENDOR_ITEM_REGULAR), - list("M3-EOD Pattern Heavy Armor", 10, /obj/item/clothing/suit/storage/marine/heavy, VENDOR_ITEM_REGULAR), - list("M3-L Pattern Light Armor", 10, /obj/item/clothing/suit/storage/marine/light, VENDOR_ITEM_REGULAR), - - list("MASKS", -1, null, null, null), - list("Gas Mask", 20, /obj/item/clothing/mask/gas, VENDOR_ITEM_REGULAR), - list("Heat Absorbent Coif", 10, /obj/item/clothing/mask/rebreather/scarf, VENDOR_ITEM_REGULAR), + list("M3 Pattern Carrier Marine Armor", floor(scale * 10), /obj/item/clothing/suit/storage/marine/medium/carrier, VENDOR_ITEM_REGULAR), + list("M3 Pattern Padded Marine Armor", floor(scale * 10), /obj/item/clothing/suit/storage/marine/medium/padded, VENDOR_ITEM_REGULAR), + list("M3 Pattern Padless Marine Armor", floor(scale * 10), /obj/item/clothing/suit/storage/marine/medium/padless, VENDOR_ITEM_REGULAR), + list("M3 Pattern Ridged Marine Armor", floor(scale * 10), /obj/item/clothing/suit/storage/marine/medium/padless_lines, VENDOR_ITEM_REGULAR), + list("M3 Pattern Skull Marine Armor", floor(scale * 10), /obj/item/clothing/suit/storage/marine/medium/skull, VENDOR_ITEM_REGULAR), + list("M3 Pattern Smooth Marine Armor", floor(scale * 10), /obj/item/clothing/suit/storage/marine/medium/smooth, VENDOR_ITEM_REGULAR), + list("M3-EOD Pattern Heavy Armor", floor(scale * 5), /obj/item/clothing/suit/storage/marine/heavy, VENDOR_ITEM_REGULAR), + list("M3-L Pattern Light Armor", floor(scale * 5), /obj/item/clothing/suit/storage/marine/light, VENDOR_ITEM_REGULAR), + + list("BACKPACK", -1, null, null, null), + list("Lightweight IMP Backpack", floor(scale * 10), /obj/item/storage/backpack/marine, VENDOR_ITEM_REGULAR), + list("Technician Backpack", floor(scale * 10), /obj/item/storage/backpack/marine/tech, VENDOR_ITEM_REGULAR), + list("Medical Backpack", floor(scale * 10), /obj/item/storage/backpack/marine/medic, VENDOR_ITEM_REGULAR), + list("USCM Satchel", floor(scale * 10), /obj/item/storage/backpack/marine/satchel, VENDOR_ITEM_REGULAR), + list("USCM Chestrig", floor(scale * 10), /obj/item/storage/backpack/marine/satchel/chestrig, VENDOR_ITEM_REGULAR), + list("USCM Technical Satchel", floor(scale * 10), /obj/item/storage/backpack/marine/satchel/tech, VENDOR_ITEM_REGULAR), + list("USCM Technical Chestrig", floor(scale * 10), /obj/item/storage/backpack/marine/engineerpack/welder_chestrig, VENDOR_ITEM_REGULAR), + list("Medical Satchel", floor(scale * 10), /obj/item/storage/backpack/marine/satchel/medic, VENDOR_ITEM_REGULAR), + list("Shotgun Scabbard", floor(scale * 10), /obj/item/storage/large_holster/m37, VENDOR_ITEM_REGULAR), + + list("RESTRICTED BACKPACKS", -1, null, null), + list("USCM Technician Welderpack", floor(scale * 1), /obj/item/storage/backpack/marine/engineerpack, VENDOR_ITEM_REGULAR), + list("Technician Welder-Satchel", floor(scale * 2), /obj/item/storage/backpack/marine/engineerpack/satchel, VENDOR_ITEM_REGULAR), + + list("BELTS", -1, null, null), + list("M276 Pattern Ammo Load Rig", floor(scale * 10), /obj/item/storage/belt/marine, VENDOR_ITEM_REGULAR), + list("M276 Pattern M40 Grenade Rig", floor(scale * 5), /obj/item/storage/belt/grenade, VENDOR_ITEM_REGULAR), + list("M276 Pattern Shotgun Shell Loading Rig", floor(scale * 10), /obj/item/storage/belt/shotgun, VENDOR_ITEM_REGULAR), + list("M276 Pattern General Pistol Holster Rig", floor(scale * 10), /obj/item/storage/belt/gun/m4a3, VENDOR_ITEM_REGULAR), + list("M276 Pattern M39 Holster Rig", floor(scale * 10), /obj/item/storage/large_holster/m39, VENDOR_ITEM_REGULAR), + list("M276 Pattern M39 Holster Rig And Pouch", floor(scale * 5), /obj/item/storage/belt/gun/m39, VENDOR_ITEM_REGULAR), + list("M276 Pattern M44 Holster Rig", floor(scale * 10), /obj/item/storage/belt/gun/m44, VENDOR_ITEM_REGULAR), + list("M276 Pattern M82F Holster Rig", floor(scale * 2), /obj/item/storage/belt/gun/flaregun, VENDOR_ITEM_REGULAR), + list("M276 Knife Rig (Full)", floor(scale * 10), /obj/item/storage/belt/knifepouch, VENDOR_ITEM_REGULAR), + list("M276 G8-A General Utility Pouch", floor(scale * 10), /obj/item/storage/backpack/general_belt, VENDOR_ITEM_REGULAR), + + list("POUCHES", -1, null, null, null), + list("Bayonet Sheath (Full)",floor(scale * 10), /obj/item/storage/pouch/bayonet, VENDOR_ITEM_REGULAR), + list("First-Aid Pouch (Splints, Gauze, Ointment)", floor(scale * 10), /obj/item/storage/pouch/firstaid/full/alternate, VENDOR_ITEM_REGULAR), + list("First-Aid Pouch (Pill Packets)", floor(scale * 10), /obj/item/storage/pouch/firstaid/full/pills, VENDOR_ITEM_REGULAR), + list("Flare Pouch (Full)", floor(scale * 10), /obj/item/storage/pouch/flare/full, VENDOR_ITEM_REGULAR), + list("Small Document Pouch", floor(scale * 10), /obj/item/storage/pouch/document/small, VENDOR_ITEM_REGULAR), + list("Magazine Pouch", floor(scale * 10), /obj/item/storage/pouch/magazine, VENDOR_ITEM_REGULAR), + list("Shotgun Shell Pouch", floor(scale * 10), /obj/item/storage/pouch/shotgun, VENDOR_ITEM_REGULAR), + list("Medium General Pouch", floor(scale * 10), /obj/item/storage/pouch/general/medium, VENDOR_ITEM_REGULAR), + list("Pistol Magazine Pouch", floor(scale * 10), /obj/item/storage/pouch/magazine/pistol, VENDOR_ITEM_REGULAR), + list("Pistol Pouch", floor(scale * 10), /obj/item/storage/pouch/pistol, VENDOR_ITEM_REGULAR), + + list("RESTRICTED POUCHES", -1, null, null, null), + list("Construction Pouch", floor(scale * 1), /obj/item/storage/pouch/construction, VENDOR_ITEM_REGULAR), + list("Explosive Pouch", floor(scale * 1), /obj/item/storage/pouch/explosive, VENDOR_ITEM_REGULAR), + list("First Responder Pouch (Empty)", floor(scale * 2), /obj/item/storage/pouch/first_responder, VENDOR_ITEM_REGULAR), + list("Large Pistol Magazine Pouch", floor(scale * 2), /obj/item/storage/pouch/magazine/pistol/large, VENDOR_ITEM_REGULAR), + list("Tools Pouch", floor(scale * 1), /obj/item/storage/pouch/tools, VENDOR_ITEM_REGULAR), + list("Sling Pouch", floor(scale * 1), /obj/item/storage/pouch/sling, VENDOR_ITEM_REGULAR), + + list("MASK", -1, null, null, null), + list("Gas Mask", floor(scale * 10), /obj/item/clothing/mask/gas, VENDOR_ITEM_REGULAR), + list("Heat Absorbent Coif", floor(scale * 5), /obj/item/clothing/mask/rebreather/scarf, VENDOR_ITEM_REGULAR), + list("Rebreather", floor(scale * 5), /obj/item/clothing/mask/rebreather, MARINE_CAN_BUY_MASK, VENDOR_ITEM_REGULAR), + + list("MISCELLANEOUS", -1, null, null, null), + list("Ballistic goggles", floor(scale * 5), /obj/item/clothing/glasses/mgoggles, VENDOR_ITEM_REGULAR), + list("M1A1 Ballistic goggles", floor(scale * 5), /obj/item/clothing/glasses/mgoggles/v2, VENDOR_ITEM_REGULAR), + list("Prescription ballistic goggles", floor(scale * 5), /obj/item/clothing/glasses/mgoggles/prescription, VENDOR_ITEM_REGULAR), + list("Marine RPG glasses", floor(scale * 5), /obj/item/clothing/glasses/regular, VENDOR_ITEM_REGULAR), + list("M5 Integrated Gas Mask", floor(scale * 5), /obj/item/prop/helmetgarb/helmet_gasmask, VENDOR_ITEM_REGULAR), + list("M10 Helmet Netting", floor(scale * 5), /obj/item/prop/helmetgarb/netting, VENDOR_ITEM_REGULAR), + list("M10 Helmet Rain Cover", floor(scale * 5), /obj/item/prop/helmetgarb/raincover, VENDOR_ITEM_REGULAR), + list("Firearm Lubricant", floor(scale * 10), /obj/item/prop/helmetgarb/gunoil, VENDOR_ITEM_REGULAR), + list("USCM Flair", floor(scale * 10), /obj/item/prop/helmetgarb/flair_uscm, VENDOR_ITEM_REGULAR), + list("Falling Falcons Shoulder Patch", floor(scale * 10), /obj/item/clothing/accessory/patch/falcon, VENDOR_ITEM_REGULAR), + list("USCM Shoulder Patch", floor(scale * 10), /obj/item/clothing/accessory/patch, VENDOR_ITEM_REGULAR), + list("Bedroll", floor(scale * 10), /obj/item/roller/bedroll, VENDOR_ITEM_REGULAR), + + list("OPTICS", -1, null, null, null), + list("Advanced Medical Optic (CORPSMAN ONLY)", floor(scale * 2), /obj/item/device/helmet_visor/medical/advanced, VENDOR_ITEM_REGULAR), + list("Squad Optic", floor(scale * 10), /obj/item/device/helmet_visor, VENDOR_ITEM_REGULAR), ) //------------WEAPON RACKS--------------- @@ -71,42 +122,43 @@ /obj/structure/machinery/cm_vending/sorted/cargo_guns/squad_prep/wo/populate_product_list(scale) listed_products = list( list("PRIMARY FIREARMS", -1, null, null), - list("M4RA Battle Rifle", round(scale * 10), /obj/item/weapon/gun/rifle/m4ra, VENDOR_ITEM_REGULAR), - list("M37A2 Pump Shotgun", round(scale * 15), /obj/item/weapon/gun/shotgun/pump, VENDOR_ITEM_REGULAR), - list("M39 Submachine Gun", round(scale * 30), /obj/item/weapon/gun/smg/m39, VENDOR_ITEM_REGULAR), - list("M41A Pulse Rifle MK1", round(scale * 30), /obj/item/weapon/gun/rifle/m41aMK1, VENDOR_ITEM_REGULAR), - list("M41A Pulse Rifle MK2", round(scale * 30), /obj/item/weapon/gun/rifle/m41a, VENDOR_ITEM_REGULAR), + list("M4RA Battle Rifle", floor(scale * 10), /obj/item/weapon/gun/rifle/m4ra, VENDOR_ITEM_REGULAR), + list("M37A2 Pump Shotgun", floor(scale * 15), /obj/item/weapon/gun/shotgun/pump, VENDOR_ITEM_REGULAR), + list("M39 Submachine Gun", floor(scale * 30), /obj/item/weapon/gun/smg/m39, VENDOR_ITEM_REGULAR), + list("M41A Pulse Rifle MK1", floor(scale * 30), /obj/item/weapon/gun/rifle/m41aMK1, VENDOR_ITEM_REGULAR), + list("M41A Pulse Rifle MK2", floor(scale * 30), /obj/item/weapon/gun/rifle/m41a, VENDOR_ITEM_REGULAR), list("PRIMARY AMMUNITION", -1, null, null), - list("Box of Buckshot Shells (12g)", round(scale * 10), /obj/item/ammo_magazine/shotgun/buckshot, VENDOR_ITEM_REGULAR), - list("Box of Flechette Shells (12g)", round(scale * 4), /obj/item/ammo_magazine/shotgun/flechette, VENDOR_ITEM_REGULAR), - list("Box of Shotgun Slugs (12g)", round(scale * 10), /obj/item/ammo_magazine/shotgun/slugs, VENDOR_ITEM_REGULAR), - list("M4RA Magazine (10x24mm)", round(scale * 15), /obj/item/ammo_magazine/rifle/m4ra, VENDOR_ITEM_REGULAR), - list("M39 HV Magazine (10x20mm)", round(scale * 25), /obj/item/ammo_magazine/smg/m39, VENDOR_ITEM_REGULAR), - list("M41A MK1 Magazine (10x24mm)", round(scale * 25), /obj/item/ammo_magazine/rifle/m41aMK1, VENDOR_ITEM_REGULAR), - list("M41A MK2 Magazine (10x24mm)", round(scale * 25), /obj/item/ammo_magazine/rifle, VENDOR_ITEM_REGULAR), + list("Box of Buckshot Shells (12g)", floor(scale * 10), /obj/item/ammo_magazine/shotgun/buckshot, VENDOR_ITEM_REGULAR), + list("Box of Flechette Shells (12g)", floor(scale * 4), /obj/item/ammo_magazine/shotgun/flechette, VENDOR_ITEM_REGULAR), + list("Box of Shotgun Slugs (12g)", floor(scale * 10), /obj/item/ammo_magazine/shotgun/slugs, VENDOR_ITEM_REGULAR), + list("M4RA Magazine (10x24mm)", floor(scale * 15), /obj/item/ammo_magazine/rifle/m4ra, VENDOR_ITEM_REGULAR), + list("M39 HV Magazine (10x20mm)", floor(scale * 25), /obj/item/ammo_magazine/smg/m39, VENDOR_ITEM_REGULAR), + list("M41A MK1 Magazine (10x24mm)", floor(scale * 25), /obj/item/ammo_magazine/rifle/m41aMK1, VENDOR_ITEM_REGULAR), + list("M41A MK2 Magazine (10x24mm)", floor(scale * 25), /obj/item/ammo_magazine/rifle, VENDOR_ITEM_REGULAR), list("SIDEARMS", -1, null, null), - list("88 Mod 4 Combat Pistol", round(scale * 25), /obj/item/weapon/gun/pistol/mod88, VENDOR_ITEM_REGULAR), - list("M44 Combat Revolver", round(scale * 25), /obj/item/weapon/gun/revolver/m44, VENDOR_ITEM_REGULAR), - list("M4A3 Service Pistol", round(scale * 25), /obj/item/weapon/gun/pistol/m4a3, VENDOR_ITEM_REGULAR), - list("M82F Flare Gun", round(scale * 5), /obj/item/weapon/gun/flare, VENDOR_ITEM_REGULAR), + list("88 Mod 4 Combat Pistol", floor(scale * 25), /obj/item/weapon/gun/pistol/mod88, VENDOR_ITEM_REGULAR), + list("M44 Combat Revolver", floor(scale * 25), /obj/item/weapon/gun/revolver/m44, VENDOR_ITEM_REGULAR), + list("M4A3 Service Pistol", floor(scale * 25), /obj/item/weapon/gun/pistol/m4a3, VENDOR_ITEM_REGULAR), + list("M82F Flare Gun", floor(scale * 5), /obj/item/weapon/gun/flare, VENDOR_ITEM_REGULAR), list("SIDEARM AMMUNITION", -1, null, null), - list("88M4 AP Magazine (9mm)", round(scale * 25), /obj/item/ammo_magazine/pistol/mod88, VENDOR_ITEM_REGULAR), - list("M44 Speedloader (.44)", round(scale * 20), /obj/item/ammo_magazine/revolver, VENDOR_ITEM_REGULAR), - list("M4A3 Magazine (9mm)", round(scale * 25), /obj/item/ammo_magazine/pistol, VENDOR_ITEM_REGULAR), + list("88M4 AP Magazine (9mm)", floor(scale * 25), /obj/item/ammo_magazine/pistol/mod88, VENDOR_ITEM_REGULAR), + list("M44 Speedloader (.44)", floor(scale * 20), /obj/item/ammo_magazine/revolver, VENDOR_ITEM_REGULAR), + list("M4A3 Magazine (9mm)", floor(scale * 25), /obj/item/ammo_magazine/pistol, VENDOR_ITEM_REGULAR), list("ATTACHMENTS", -1, null, null), - list("M39 Folding Stock", round(scale * 10), /obj/item/attachable/stock/smg/collapsible, VENDOR_ITEM_REGULAR), - list("Rail Flashlight", round(scale * 25), /obj/item/attachable/flashlight, VENDOR_ITEM_REGULAR), - list("Underbarrel Flashlight Grip", round(scale * 10), /obj/item/attachable/flashlight/grip, VENDOR_ITEM_REGULAR), - list("Underslung Grenade Launcher", round(scale * 25), /obj/item/attachable/attached_gun/grenade, VENDOR_ITEM_REGULAR), //They already get these as on-spawns, might as well formalize some spares. + list("M39 Folding Stock", floor(scale * 10), /obj/item/attachable/stock/smg/collapsible, VENDOR_ITEM_REGULAR), + list("Rail Flashlight", floor(scale * 25), /obj/item/attachable/flashlight, VENDOR_ITEM_REGULAR), + list("Underbarrel Flashlight Grip", floor(scale * 10), /obj/item/attachable/flashlight/grip, VENDOR_ITEM_REGULAR), + list("Underslung Grenade Launcher", floor(scale * 25), /obj/item/attachable/attached_gun/grenade, VENDOR_ITEM_REGULAR), //They already get these as on-spawns, might as well formalize some spares. list("UTILITIES", -1, null, null), - list("M5 Bayonet", round(scale * 25), /obj/item/attachable/bayonet, VENDOR_ITEM_REGULAR), - list("M11 Throwing Knife", round(scale * 10), /obj/item/weapon/throwing_knife, VENDOR_ITEM_REGULAR), - list("M94 Marking Flare Pack", round(scale * 10), /obj/item/storage/box/m94, VENDOR_ITEM_REGULAR) + list("M5 Bayonet", floor(scale * 25), /obj/item/attachable/bayonet, VENDOR_ITEM_REGULAR), + list("M11 Throwing Knife", floor(scale * 10), /obj/item/weapon/throwing_knife, VENDOR_ITEM_REGULAR), + list("M94 Marking Flare Pack", floor(scale * 10), /obj/item/storage/box/m94, VENDOR_ITEM_REGULAR), + list("Plastic Explosive", floor(scale * 2), /obj/item/explosive/plastic, VENDOR_ITEM_REGULAR), ) //------------REQ AMMUNITION VENDOR--------------- @@ -118,30 +170,30 @@ ..() listed_products += list( list("EXTRA SCOUT AMMUNITION", -1, null, null, null), - list("A19 High Velocity Impact Magazine (10x24mm)", round(scale * 1), /obj/item/ammo_magazine/rifle/m4ra/custom/impact, VENDOR_ITEM_REGULAR), - list("A19 High Velocity Incendiary Magazine (10x24mm)", round(scale * 1), /obj/item/ammo_magazine/rifle/m4ra/custom/incendiary, VENDOR_ITEM_REGULAR), - list("A19 High Velocity Magazine (10x24mm)", round(scale * 1.5), /obj/item/ammo_magazine/rifle/m4ra/custom, VENDOR_ITEM_REGULAR), + list("A19 High Velocity Impact Magazine (10x24mm)", floor(scale * 1), /obj/item/ammo_magazine/rifle/m4ra/custom/impact, VENDOR_ITEM_REGULAR), + list("A19 High Velocity Incendiary Magazine (10x24mm)", floor(scale * 1), /obj/item/ammo_magazine/rifle/m4ra/custom/incendiary, VENDOR_ITEM_REGULAR), + list("A19 High Velocity Magazine (10x24mm)", floor(scale * 1.5), /obj/item/ammo_magazine/rifle/m4ra/custom, VENDOR_ITEM_REGULAR), list("EXTRA SNIPER AMMUNITION", -1, null, null, null), - list("M42A Flak Magazine (10x28mm)", round(scale * 1), /obj/item/ammo_magazine/sniper/flak, VENDOR_ITEM_REGULAR), - list("M42A Incendiary Magazine (10x28mm)", round(scale * 1), /obj/item/ammo_magazine/sniper/incendiary, VENDOR_ITEM_REGULAR), - list("M42A Marksman Magazine (10x28mm Caseless)", round(scale * 1.5), /obj/item/ammo_magazine/sniper, VENDOR_ITEM_REGULAR), + list("M42A Flak Magazine (10x28mm)", floor(scale * 1), /obj/item/ammo_magazine/sniper/flak, VENDOR_ITEM_REGULAR), + list("M42A Incendiary Magazine (10x28mm)", floor(scale * 1), /obj/item/ammo_magazine/sniper/incendiary, VENDOR_ITEM_REGULAR), + list("M42A Marksman Magazine (10x28mm Caseless)", floor(scale * 1.5), /obj/item/ammo_magazine/sniper, VENDOR_ITEM_REGULAR), list("EXTRA DEMOLITIONIST AMMUNITION", -1, null, null, null), - list("84mm Anti-Armor Rocket", round(scale * 1), /obj/item/ammo_magazine/rocket/ap, VENDOR_ITEM_REGULAR), - list("84mm High-Explosive Rocket", round(scale * 1), /obj/item/ammo_magazine/rocket, VENDOR_ITEM_REGULAR), - list("84mm White-Phosphorus Rocket", round(scale * 1), /obj/item/ammo_magazine/rocket/wp, VENDOR_ITEM_REGULAR), + list("84mm Anti-Armor Rocket", floor(scale * 1), /obj/item/ammo_magazine/rocket/ap, VENDOR_ITEM_REGULAR), + list("84mm High-Explosive Rocket", floor(scale * 1), /obj/item/ammo_magazine/rocket, VENDOR_ITEM_REGULAR), + list("84mm White-Phosphorus Rocket", floor(scale * 1), /obj/item/ammo_magazine/rocket/wp, VENDOR_ITEM_REGULAR), list("EXTRA GRENADES", -1, null, null, null), - list("M40 HEDP Grenade Pack (x6)", round(scale * 1.5), /obj/effect/essentials_set/hedp_6_pack, VENDOR_ITEM_REGULAR), - list("M40 HIDP Grenade Pack (x6)", round(scale * 1.5), /obj/effect/essentials_set/hidp_6_pack, VENDOR_ITEM_REGULAR), - list("M74 AGM-F Grenade Pack (x6)", round(scale * 1.5), /obj/effect/essentials_set/agmf_6_pack, VENDOR_ITEM_REGULAR), - list("M74 AGM-I Grenade Pack (x6)", round(scale * 1.5), /obj/effect/essentials_set/agmi_6_pack, VENDOR_ITEM_REGULAR), + list("M40 HEDP Grenade Pack (x6)", floor(scale * 1.5), /obj/effect/essentials_set/hedp_6_pack, VENDOR_ITEM_REGULAR), + list("M40 HIDP Grenade Pack (x6)", floor(scale * 1.5), /obj/effect/essentials_set/hidp_6_pack, VENDOR_ITEM_REGULAR), + list("M74 AGM-F Grenade Pack (x6)", floor(scale * 1.5), /obj/effect/essentials_set/agmf_6_pack, VENDOR_ITEM_REGULAR), + list("M74 AGM-I Grenade Pack (x6)", floor(scale * 1.5), /obj/effect/essentials_set/agmi_6_pack, VENDOR_ITEM_REGULAR), list("EXTRA FLAMETHROWER TANKS", -1, null, null, null), - list("Large Incinerator Tank", round(scale * 1), /obj/item/ammo_magazine/flamer_tank/large, VENDOR_ITEM_REGULAR), - list("Large Incinerator Tank (B) (Green Flame)", round(scale * 1), /obj/item/ammo_magazine/flamer_tank/large/B, VENDOR_ITEM_REGULAR), - list("Large Incinerator Tank (X) (Blue Flame)", round(scale * 1), /obj/item/ammo_magazine/flamer_tank/large/X, VENDOR_ITEM_REGULAR), + list("Large Incinerator Tank", floor(scale * 1), /obj/item/ammo_magazine/flamer_tank/large, VENDOR_ITEM_REGULAR), + list("Large Incinerator Tank (B) (Green Flame)", floor(scale * 1), /obj/item/ammo_magazine/flamer_tank/large/B, VENDOR_ITEM_REGULAR), + list("Large Incinerator Tank (X) (Blue Flame)", floor(scale * 1), /obj/item/ammo_magazine/flamer_tank/large/X, VENDOR_ITEM_REGULAR), ) //------------ARMAMENTS VENDOR--------------- diff --git a/code/game/machinery/washing_machine.dm b/code/game/machinery/washing_machine.dm index e32d4091c16e..1214b141da15 100644 --- a/code/game/machinery/washing_machine.dm +++ b/code/game/machinery/washing_machine.dm @@ -131,7 +131,7 @@ to_chat(user, "This item does not fit.") return - if(contents.len < 5) + if(length(contents) < 5) if ( state in list(1, 3) ) if(user.drop_inv_item_to_loc(W, src)) state = 3 diff --git a/code/game/objects/effects/acid_hole.dm b/code/game/objects/effects/acid_hole.dm index a4db9ef5c0e0..db24c1c9c56a 100644 --- a/code/game/objects/effects/acid_hole.dm +++ b/code/game/objects/effects/acid_hole.dm @@ -40,7 +40,7 @@ /obj/effect/acid_hole/attack_alien(mob/living/carbon/xenomorph/user) - if (!holed_wall) + if(!holed_wall) qdel(src) //no wall?! then cease existence... return @@ -49,6 +49,9 @@ expand_hole(user) return XENO_NO_DELAY_ACTION +/obj/effect/acid_hole/attack_larva(mob/living/carbon/xenomorph/larva/M) + attack_alien(M) + /obj/effect/acid_hole/proc/expand_hole(mob/living/carbon/xenomorph/user) if(user.action_busy || user.is_mob_incapacitated()) return diff --git a/code/game/objects/effects/aliens.dm b/code/game/objects/effects/aliens.dm index 0b44c0bb4443..10d4e8d098fb 100644 --- a/code/game/objects/effects/aliens.dm +++ b/code/game/objects/effects/aliens.dm @@ -106,14 +106,16 @@ // Humans? if(isliving(atm)) //For extinguishing mobs on fire var/mob/living/M = atm - M.ExtinguishMob() + + if(M != cause_data.resolve_mob()) + M.ExtinguishMob() + if(M.stat == DEAD) // NO. DAMAGING. DEAD. MOBS. continue if (iscarbon(M)) var/mob/living/carbon/C = M if (C.ally_of_hivenumber(hivenumber)) continue - apply_spray(M) M.apply_armoured_damage(get_xeno_damage_acid(M, damage_amount), ARMOR_BIO, BURN) // Deal extra damage when first placing ourselves down. @@ -144,15 +146,15 @@ /obj/effect/xenomorph/spray/Crossed(AM as mob|obj) ..() - if(ishuman(AM)) - var/mob/living/carbon/human/H = AM - if(H.ally_of_hivenumber(hivenumber)) - return - apply_spray(AM) - else if (isxeno(AM)) - var/mob/living/carbon/xenomorph/X = AM - if (X.hivenumber != hivenumber) - apply_spray(AM) + if(AM == cause_data.resolve_mob()) + return + + if(isliving(AM)) + var/mob/living/living_mob = AM + if(living_mob.ally_of_hivenumber(hivenumber)) + living_mob.ExtinguishMob() + else + apply_spray(living_mob) else if(isVehicleMultitile(AM)) var/obj/vehicle/multitile/V = AM V.handle_acidic_environment(src) @@ -326,11 +328,11 @@ handle_weather() RegisterSignal(SSdcs, COMSIG_GLOB_WEATHER_CHANGE, PROC_REF(handle_weather)) RegisterSignal(acid_t, COMSIG_PARENT_QDELETING, PROC_REF(cleanup)) - START_PROCESSING(SSeffects, src) + START_PROCESSING(SSoldeffects, src) /obj/effect/xenomorph/acid/Destroy() acid_t = null - STOP_PROCESSING(SSeffects, src) + STOP_PROCESSING(SSoldeffects, src) . = ..() /obj/effect/xenomorph/acid/proc/cleanup() @@ -489,30 +491,33 @@ /obj/effect/xenomorph/xeno_telegraph name = "???" desc = "" - icon_state = "xeno_telegraph_red" + icon_state = "xeno_telegraph_base" mouse_opacity = MOUSE_OPACITY_TRANSPARENT -/obj/effect/xenomorph/xeno_telegraph/New(loc, ttl = 10) +/// Icon is by default a white sprite, provide an rgb hex code #RRGGBB argument to change. +/obj/effect/xenomorph/xeno_telegraph/New(loc, ttl = 10, color = null) ..(loc) + if(color) + src.color = color QDEL_IN(src, ttl) /obj/effect/xenomorph/xeno_telegraph/red - icon_state = "xeno_telegraph_red" + color = COLOR_DARK_RED /obj/effect/xenomorph/xeno_telegraph/brown - icon_state = "xeno_telegraph_brown" + color = COLOR_BROWN /obj/effect/xenomorph/xeno_telegraph/green - icon_state = "xeno_telegraph_green" + color = COLOR_LIGHT_GREEN -/obj/effect/xenomorph/xeno_telegraph/brown/abduct_hook +/// This has a brown icon state and does not have a color overlay by default. +/obj/effect/xenomorph/xeno_telegraph/abduct_hook icon_state = "xeno_telegraph_abduct_hook_anim" -/obj/effect/xenomorph/xeno_telegraph/brown/lash +/// This has a brown icon state and does not have a color overlay by default. +/obj/effect/xenomorph/xeno_telegraph/lash icon_state = "xeno_telegraph_lash" - - /obj/effect/xenomorph/acid_damage_delay name = "???" desc = "" diff --git a/code/game/objects/effects/decals/cleanable/blood/blood.dm b/code/game/objects/effects/decals/cleanable/blood/blood.dm index 918797608b7b..9fd5e79965af 100644 --- a/code/game/objects/effects/decals/cleanable/blood/blood.dm +++ b/code/game/objects/effects/decals/cleanable/blood/blood.dm @@ -112,7 +112,7 @@ /obj/effect/decal/cleanable/blood/writing/New() ..() - if(random_icon_states.len) + if(length(random_icon_states)) for(var/obj/effect/decal/cleanable/blood/writing/W in loc) random_icon_states.Remove(W.icon_state) icon_state = pick(random_icon_states) diff --git a/code/game/objects/effects/decals/cleanable/blood/robots.dm b/code/game/objects/effects/decals/cleanable/blood/robots.dm index 1bbadb1461b6..3ee3c9e07f9a 100644 --- a/code/game/objects/effects/decals/cleanable/blood/robots.dm +++ b/code/game/objects/effects/decals/cleanable/blood/robots.dm @@ -3,11 +3,11 @@ desc = "It's a useless heap of junk... or is it?" icon = 'icons/mob/robots.dmi' icon_state = "gib1" - basecolor="#030303" + basecolor=COLOR_OIL random_icon_states = list("gib1", "gib2", "gib3", "gib4", "gib5", "gib6", "gib7") /obj/effect/decal/cleanable/blood/gibs/robot/update_icon() - color = "#FFFFFF" + color = COLOR_WHITE /obj/effect/decal/cleanable/blood/gibs/robot/dry() //pieces of robots do not dry up like return @@ -39,7 +39,7 @@ /obj/effect/decal/cleanable/blood/oil name = "motor oil" desc = "It's black and greasy." - basecolor="#030303" + basecolor=COLOR_OIL /obj/effect/decal/cleanable/blood/oil/dry() return diff --git a/code/game/objects/effects/decals/cleanable/misc.dm b/code/game/objects/effects/decals/cleanable/misc.dm index 9cf2aa3d8e09..5969914eb743 100644 --- a/code/game/objects/effects/decals/cleanable/misc.dm +++ b/code/game/objects/effects/decals/cleanable/misc.dm @@ -36,7 +36,7 @@ acid_damage = 1 icon_state = "greenglow" light_range = 1 - light_color = COLOUR_GREEN + light_color = COLOR_LIGHT_GREEN /obj/effect/decal/cleanable/flour name = "flour" desc = "It's still good. Four second rule!" @@ -55,7 +55,7 @@ anchored = TRUE layer = TURF_LAYER light_range = 1 - light_color = COLOUR_GREEN + light_color = COLOR_LIGHT_GREEN icon = 'icons/effects/effects.dmi' icon_state = "greenglow" @@ -99,7 +99,7 @@ appearance_flags = RESET_ALPHA | TILE_BOUND | PIXEL_SCALE garbage = FALSE /obj/effect/decal/cleanable/cobweb2/dynamic/Initialize(mapload, targetdir, webscale = 1.0) - alpha += round(webscale * 120) + alpha += floor(webscale * 120) var/angle = dir2angle(targetdir) var/matrix/TM = new TM *= webscale diff --git a/code/game/objects/effects/decals/crayon.dm b/code/game/objects/effects/decals/crayon.dm index cfe5f27da9a7..35e354c121bb 100644 --- a/code/game/objects/effects/decals/crayon.dm +++ b/code/game/objects/effects/decals/crayon.dm @@ -5,7 +5,7 @@ layer = ABOVE_TURF_LAYER anchored = TRUE -/obj/effect/decal/cleanable/crayon/New(location, main = "#FFFFFF",shade = "#000000", type = "rune") +/obj/effect/decal/cleanable/crayon/New(location, main = COLOR_WHITE,shade = COLOR_BLACK, type = "rune") ..() forceMove(location) diff --git a/code/game/objects/effects/decals/misc.dm b/code/game/objects/effects/decals/misc.dm index 338f8b9a7e8e..4483d2fd7d24 100644 --- a/code/game/objects/effects/decals/misc.dm +++ b/code/game/objects/effects/decals/misc.dm @@ -95,11 +95,11 @@ return ..() /obj/effect/decal/mecha_wreckage/gygax - name = "Gygax wreckage" + name = "MAX wreckage" icon_state = "gygax-broken" /obj/effect/decal/mecha_wreckage/gygax/dark - name = "Dark Gygax wreckage" + name = "Dark MAX wreckage" icon_state = "darkgygax-broken" /obj/effect/decal/mecha_wreckage/marauder @@ -116,7 +116,7 @@ icon_state = "seraph-broken" /obj/effect/decal/mecha_wreckage/ripley - name = "Ripley wreckage" + name = "P-1000 wreckage" icon_state = "ripley-broken" /obj/effect/decal/mecha_wreckage/ripley/firefighter @@ -124,11 +124,11 @@ icon_state = "firefighter-broken" /obj/effect/decal/mecha_wreckage/ripley/deathripley - name = "Death-Ripley wreckage" + name = "Death-P-1000 wreckage" icon_state = "deathripley-broken" /obj/effect/decal/mecha_wreckage/durand - name = "Durand wreckage" + name = "MOX wreckage" icon_state = "durand-broken" /obj/effect/decal/mecha_wreckage/phazon @@ -136,7 +136,7 @@ icon_state = "phazon-broken" /obj/effect/decal/mecha_wreckage/odysseus - name = "Odysseus wreckage" + name = "Alice wreckage" icon_state = "odysseus-broken" /obj/effect/decal/mecha_wreckage/hoverpod diff --git a/code/game/objects/effects/decals/posters.dm b/code/game/objects/effects/decals/posters.dm index 7a8054efce1a..f13244cbc058 100644 --- a/code/game/objects/effects/decals/posters.dm +++ b/code/game/objects/effects/decals/posters.dm @@ -10,7 +10,7 @@ /obj/item/poster/New(turf/loc, given_serial = 0) if(given_serial == 0) - serial_number = rand(1, GLOB.poster_designs.len) + serial_number = rand(1, length(GLOB.poster_designs)) else serial_number = given_serial name += " - No. [serial_number]" @@ -33,7 +33,7 @@ serial_number = serial if(!isnum(serial_number)) - serial_number = rand(1, GLOB.poster_designs.len) + serial_number = rand(1, length(GLOB.poster_designs)) var/designtype = GLOB.poster_designs[serial_number] var/datum/poster/design=new designtype @@ -160,14 +160,14 @@ icon_state = "poster3" /obj/structure/sign/poster/music/Initialize() - serial_number = pick(3,5,25,26,29,38,39) + serial_number = pick(3,5,25,26,38,39) .=..() /obj/structure/sign/poster/pinup icon_state = "poster12" /obj/structure/sign/poster/pinup/Initialize() - serial_number = pick(12,16,17) + serial_number = pick(12,16,17,29) .=..() /obj/structure/sign/poster/propaganda diff --git a/code/game/objects/effects/effect.dm b/code/game/objects/effects/effect.dm index 96de3cd9316a..a1f07214844b 100644 --- a/code/game/objects/effects/effect.dm +++ b/code/game/objects/effects/effect.dm @@ -1,5 +1,6 @@ /obj/effect icon = 'icons/effects/effects.dmi' + blocks_emissive = EMISSIVE_BLOCK_GENERIC /obj/effect/get_applying_acid_time() return -1 diff --git a/code/game/objects/effects/effect_system/chemsmoke.dm b/code/game/objects/effects/effect_system/chemsmoke.dm index 0c74912ceb25..1b22ed6054eb 100644 --- a/code/game/objects/effects/effect_system/chemsmoke.dm +++ b/code/game/objects/effects/effect_system/chemsmoke.dm @@ -8,6 +8,7 @@ time_to_live = 300 anchored = TRUE smokeranking = SMOKE_RANK_HIGH + alpha = 100 /obj/effect/particle_effect/smoke/chem/Initialize() . = ..() @@ -26,7 +27,7 @@ var/list/targetTurfs var/list/wallList var/density - + var/static/last_reaction_signature /datum/effect_system/smoke_spread/chem/New() ..() @@ -69,7 +70,7 @@ smokeFlow(location, targetTurfs, wallList) //set the density of the cloud - for diluting reagents - density = max(1, targetTurfs.len / 4) //clamp the cloud density minimum to 1 so it cant multiply the reagents + density = max(1, length(targetTurfs) / 4) //clamp the cloud density minimum to 1 so it cant multiply the reagents //Admin messaging var/contained = "" @@ -79,14 +80,19 @@ contained = "\[[contained]\]" var/area/A = get_area(location) + var/reaction_signature = "[time2text(world.timeofday, "hh:mm")]: ([A.name])[contained] by [carry.my_atom.fingerprintslast]" + if(last_reaction_signature == reaction_signature) + return + last_reaction_signature = reaction_signature + var/where = "[A.name]|[location.x], [location.y]" var/whereLink = "[where]" if(carry.my_atom.fingerprintslast) - message_admins("A chemical smoke reaction has taken place in ([whereLink])[contained]. Last associated key is [carry.my_atom.fingerprintslast].") + msg_admin_niche("A chemical smoke reaction has taken place in ([whereLink])[contained]. Last associated key is [carry.my_atom.fingerprintslast].") log_game("A chemical smoke reaction has taken place in ([where])[contained]. Last associated key is [carry.my_atom.fingerprintslast].") else - message_admins("A chemical smoke reaction has taken place in ([whereLink]). No associated key.") + msg_admin_niche("A chemical smoke reaction has taken place in ([whereLink])[contained]. No associated key.") log_game("A chemical smoke reaction has taken place in ([where])[contained]. No associated key.") @@ -104,7 +110,7 @@ return //reagent application - only run if there are extra reagents in the smoke - if(chemholder.reagents.reagent_list.len) + if(length(chemholder.reagents.reagent_list)) for(var/datum/reagent/R in chemholder.reagents.reagent_list) var/proba = 100 var/runs = 5 @@ -138,10 +144,10 @@ var/dist = cheap_pythag(T.x - location.x, T.y - location.y) if(!dist) dist = 1 - R.reaction_mob(A, volume = R.volume / dist) + R.reaction_mob(A, volume = R.volume * POTENCY_MULTIPLIER_VLOW / dist, permeable = FALSE) else if(istype(A, /obj)) R.reaction_obj(A, R.volume) - sleep(30) + sleep(3 SECONDS) //build smoke icon @@ -166,7 +172,7 @@ continue var/offset = 0 - var/points = round((radius * 2 * PI) / arcLength) + var/points = floor((radius * 2 * PI) / arcLength) var/angle = round(ToDegrees(arcLength / radius), 1) if(!IsInteger(radius)) @@ -191,7 +197,7 @@ //------------------------------------------ /datum/effect_system/smoke_spread/chem/proc/spawnSmoke(turf/T, icon/I, dist = 1) var/obj/effect/particle_effect/smoke/chem/smoke = new(location) - if(chemholder.reagents.reagent_list.len) + if(length(chemholder.reagents.reagent_list)) chemholder.reagents.copy_to(smoke, chemholder.reagents.total_volume / dist, safety = 1) //copy reagents to the smoke so mob/breathe() can handle inhaling the reagents smoke.icon = I smoke.layer = FLY_LAYER @@ -199,10 +205,7 @@ smoke.pixel_x = -32 + rand(-8,8) smoke.pixel_y = -32 + rand(-8,8) walk_to(smoke, T) - smoke.set_opacity(1) //switching opacity on after the smoke has spawned, and then - sleep(150+rand(0,20)) // turning it off before it is deleted results in cleaner - if(smoke.opacity) - smoke.set_opacity(0) + sleep(150+rand(0,20)) fadeOut(smoke) qdel(smoke) @@ -227,7 +230,7 @@ pending += location - while(pending.len) + while(length(pending)) for(var/turf/current in pending) for(var/D in GLOB.cardinals) var/turf/target = get_step(current, D) @@ -259,3 +262,14 @@ targetTurfs = complete return + +/obj/effect/particle_effect/smoke/chem/affect(mob/living/carbon/affected_mob) + . = ..() + if(!.) + return FALSE + if(!length(reagents?.reagent_list)) + return FALSE + + for(var/datum/reagent/reagent in reagents.reagent_list) + reagent.reaction_mob(affected_mob, volume = reagent.volume * POTENCY_MULTIPLIER_LOW, permeable = FALSE) + return TRUE diff --git a/code/game/objects/effects/effect_system/explosions.dm b/code/game/objects/effects/effect_system/explosions.dm index 1164b8341750..709331e1c76a 100644 --- a/code/game/objects/effects/effect_system/explosions.dm +++ b/code/game/objects/effects/effect_system/explosions.dm @@ -50,11 +50,11 @@ if(holder) var/dmglevel = 4 - if (round(amount/8) > 0) + if (floor(amount/8) > 0) dmglevel = 1 - else if (round(amount/4) > 0) + else if (floor(amount/4) > 0) dmglevel = 2 - else if (round(amount/2) > 0) + else if (floor(amount/2) > 0) dmglevel = 3 if(dmglevel<4) holder.ex_act(dmglevel) diff --git a/code/game/objects/effects/effect_system/foam.dm b/code/game/objects/effects/effect_system/foam.dm index edee94cb3747..e7b8ba310bdd 100644 --- a/code/game/objects/effects/effect_system/foam.dm +++ b/code/game/objects/effects/effect_system/foam.dm @@ -20,6 +20,7 @@ var/expand = 1 animate_movement = 0 var/metal = FOAM_NOT_METAL + var/time_to_solidify = 4 SECONDS /obj/effect/particle_effect/foam/Initialize(mapload, ismetal=0) @@ -28,7 +29,7 @@ metal = ismetal playsound(src, 'sound/effects/bubbles2.ogg', 25, 1, 5) addtimer(CALLBACK(src, PROC_REF(foam_react)), 3 + metal*3) - addtimer(CALLBACK(src, PROC_REF(foam_metal_final_react)), 40) + addtimer(CALLBACK(src, PROC_REF(foam_metal_final_react)), time_to_solidify) /obj/effect/particle_effect/foam/proc/foam_react() process() @@ -156,7 +157,7 @@ // dense and opaque, but easy to break #define FOAMED_METAL_FIRE_ACT_DMG 50 -#define FOAMED_METAL_XENO_SLASH 0.8 +#define FOAMED_METAL_XENO_SLASH 1.75 #define FOAMED_METAL_ITEM_MELEE 2 #define FOAMED_METAL_BULLET_DMG 2 #define FOAMED_METAL_EXPLOSION_DMG 1 @@ -173,7 +174,7 @@ /obj/structure/foamed_metal/iron icon_state = "ironfoam" - health = 85 + health = 70 name = "foamed iron" desc = "A slightly stronger lightweight foamed iron wall." @@ -211,7 +212,7 @@ return FALSE /obj/structure/foamed_metal/attack_alien(mob/living/carbon/xenomorph/X, dam_bonus) - var/damage = (rand(X.melee_damage_lower, X.melee_damage_upper) + dam_bonus) + var/damage = ((floor((X.melee_damage_lower+X.melee_damage_upper)/2)) + dam_bonus) //Frenzy bonus if(X.frenzy_aura > 0) diff --git a/code/game/objects/effects/effect_system/smoke.dm b/code/game/objects/effects/effect_system/smoke.dm index 7457b4f5f147..d4152bdee37e 100644 --- a/code/game/objects/effects/effect_system/smoke.dm +++ b/code/game/objects/effects/effect_system/smoke.dm @@ -4,7 +4,7 @@ // in case you wanted a vent to always smoke north for example ///////////////////////////////////////////// -/// Chance that cades block the gas. Smoke spread ticks are calculated very quickly so this has to be high to have a noticable effect. +/// Chance that cades block the gas. Smoke spread ticks are calculated very quickly so this has to be high to have a noticeable effect. #define BOILER_GAS_CADE_BLOCK_CHANCE 35 /obj/effect/particle_effect/smoke @@ -25,10 +25,15 @@ pixel_x = -32 pixel_y = -32 -/obj/effect/particle_effect/smoke/Initialize(mapload, oldamount, new_cause_data) +/obj/effect/particle_effect/smoke/Initialize(mapload, oldamount, datum/cause_data/new_cause_data) . = ..() if(oldamount) amount = oldamount - 1 + if(!istype(new_cause_data)) + if(new_cause_data) + new_cause_data = create_cause_data(new_cause_data) + else + new_cause_data = create_cause_data(name) cause_data = new_cause_data time_to_live += rand(-1,1) START_PROCESSING(SSeffects, src) @@ -62,61 +67,65 @@ if(prob(severity/EXPLOSION_THRESHOLD_LOW * 100)) qdel(src) -/obj/effect/particle_effect/smoke/Crossed(atom/movable/M) +/obj/effect/particle_effect/smoke/Crossed(atom/movable/moveable) ..() - if(istype(M, /obj/projectile/beam)) - var/obj/projectile/beam/B = M - B.damage = (B.damage/2) - if(iscarbon(M)) - affect(M) + if(istype(moveable, /obj/projectile/beam)) + var/obj/projectile/beam/beam = moveable + beam.damage /= 2 + if(iscarbon(moveable)) + affect(moveable) -/obj/effect/particle_effect/smoke/proc/apply_smoke_effect(turf/T) - for(var/mob/living/L in T) - affect(L) +/obj/effect/particle_effect/smoke/proc/apply_smoke_effect(turf/cur_turf) + for(var/mob/living/affected_mob in cur_turf) + affect(affected_mob) /obj/effect/particle_effect/smoke/proc/spread_smoke(direction) set waitfor = 0 + sleep(spread_speed) - if(QDELETED(src)) return - var/turf/U = get_turf(src) - if(!U) return + if(QDELETED(src)) + return + + var/turf/start_turf = get_turf(src) + if(!start_turf) + return for(var/i in GLOB.cardinals) if(direction && i != direction) continue - var/turf/T = get_step(U, i) - if(check_airblock(U,T)) //smoke can't spread that way + var/turf/cur_turf = get_step(start_turf, i) + if(check_airblock(start_turf, cur_turf)) //smoke can't spread that way continue - var/obj/effect/particle_effect/smoke/foundsmoke = locate() in T // Check for existing smoke and act accordingly + var/obj/effect/particle_effect/smoke/foundsmoke = locate() in cur_turf // Check for existing smoke and act accordingly if(foundsmoke) if(foundsmoke.smokeranking <= src.smokeranking) qdel(foundsmoke) else continue - var/obj/effect/particle_effect/smoke/S = new type(T, amount, cause_data) - S.setDir(pick(GLOB.cardinals)) - S.time_to_live = time_to_live - if(S.amount>0) - S.spread_smoke() + var/obj/effect/particle_effect/smoke/smoke = new type(cur_turf, amount, cause_data) + smoke.setDir(pick(GLOB.cardinals)) + smoke.time_to_live = time_to_live + if(smoke.amount > 0) + smoke.spread_smoke() //proc to check if smoke can expand to another turf -/obj/effect/particle_effect/smoke/proc/check_airblock(turf/U, turf/T) - if(!T) +/obj/effect/particle_effect/smoke/proc/check_airblock(turf/start_turf, turf/cur_turf) + if(!cur_turf) return FALSE - if(T.density) + if(cur_turf.density) return TRUE if(prob(BOILER_GAS_CADE_BLOCK_CHANCE)) var/move_dir = 0 - for(var/obj/structure/obstacle in T) - move_dir = get_dir(src, T) + for(var/obj/structure/obstacle in cur_turf) + move_dir = get_dir(src, cur_turf) if(obstacle.BlockedPassDirs(src, move_dir)) return TRUE -/obj/effect/particle_effect/smoke/proc/affect(mob/living/carbon/M) - if (istype(M)) - return 0 - return 1 +/obj/effect/particle_effect/smoke/proc/affect(mob/living/carbon/affected_mob) + if(!istype(affected_mob)) + return FALSE + return TRUE ///////////////////////////////////////////// // Bad smoke @@ -128,22 +137,110 @@ /obj/effect/particle_effect/smoke/bad/Move() . = ..() - for(var/mob/living/carbon/M in get_turf(src)) - affect(M) + for(var/mob/living/carbon/affected_mob in get_turf(src)) + affect(affected_mob) + +/obj/effect/particle_effect/smoke/bad/affect(mob/living/carbon/affected_mob) + . = ..() + if(!.) + return FALSE + if(affected_mob.internal != null && affected_mob.wear_mask && (affected_mob.wear_mask.flags_inventory & ALLOWINTERNALS)) + return FALSE + if(issynth(affected_mob)) + return FALSE + + if(prob(20)) + affected_mob.drop_held_item() + affected_mob.apply_damage(1, OXY) + + if(affected_mob.coughedtime < world.time && !affected_mob.stat) + affected_mob.coughedtime = world.time + 2 SECONDS + if(ishuman(affected_mob)) //Humans only to avoid issues + affected_mob.emote("cough") + return TRUE + +///////////////////////////////////////////// +// Miasma smoke (for LZs) +///////////////////////////////////////////// + +/obj/effect/particle_effect/smoke/miasma + name = "CN20-X miasma" + amount = 1 + time_to_live = INFINITY + smokeranking = SMOKE_RANK_MAX + opacity = FALSE + alpha = 75 + color = "#301934" + /// How much damage to deal per affect() + var/burn_damage = 4 + /// Multiplier to burn_damage for xenos and yautja + var/xeno_yautja_multiplier = 3 + /// Time required for damage to actually apply + var/active_time + +/obj/effect/particle_effect/smoke/miasma/Initialize(mapload, oldamount, datum/cause_data/new_cause_data) + . = ..() + // Mimic dispersal without actually doing spread logic + alpha = 0 + active_time = world.time + 6 SECONDS + addtimer(VARSET_CALLBACK(src, alpha, initial(alpha)), rand(1, 6) SECONDS) -/obj/effect/particle_effect/smoke/bad/affect(mob/living/carbon/M) +/obj/effect/particle_effect/smoke/miasma/apply_smoke_effect(turf/cur_turf) ..() - if (M.internal != null && M.wear_mask && (M.wear_mask.flags_inventory & ALLOWINTERNALS)) - return - else - if(prob(20)) - M.drop_held_item() - M.apply_damage(1, OXY) - if(M.coughedtime != 1) - M.coughedtime = 1 - if(ishuman(M)) //Humans only to avoid issues - M.emote("cough") - addtimer(VARSET_CALLBACK(M, coughedtime, 0), 2 SECONDS) + // coffins + for(var/obj/structure/closet/container in cur_turf) + for(var/mob/living/carbon/mob in container) + affect(mob) + + // vehicles + var/obj/vehicle/multitile/car = locate() in cur_turf + var/datum/interior/car_interior = car?.interior + if(car_interior) + var/list/bounds = car_interior.get_bound_turfs() + for(var/turf/car_turf as anything in block(bounds[1], bounds[2])) + var/obj/effect/particle_effect/smoke/miasma/smoke = locate() in car_turf + if(!smoke) + smoke = new(car_turf) + smoke.time_to_live = rand(7, 12) + +/obj/effect/particle_effect/smoke/miasma/affect(mob/living/carbon/affected_mob) + . = ..() + if(!.) + return FALSE + if(affected_mob.stat == DEAD) + return FALSE + + var/active = world.time > active_time + var/damage = active ? burn_damage : 0 // A little buffer time to get out of it + if(isxeno(affected_mob)) + damage *= xeno_yautja_multiplier + else if(isyautja(affected_mob)) + if(prob(75)) + return FALSE + damage *= xeno_yautja_multiplier + + affected_mob.apply_damage(damage, BURN) + affected_mob.AdjustEyeBlur(0.75) + affected_mob.last_damage_data = cause_data + + if(affected_mob.coughedtime < world.time && !affected_mob.stat) + affected_mob.coughedtime = world.time + 2 SECONDS + if(ishuman(affected_mob)) //Humans only to avoid issues + if(issynth(affected_mob)) + affected_mob.visible_message(SPAN_DANGER("[affected_mob]'s skin is sloughing off!"),\ + SPAN_DANGER("Your skin is sloughing off!")) + else + if(prob(50)) + affected_mob.emote("cough") + else + affected_mob.emote("gasp") + if(prob(20)) + affected_mob.drop_held_item() + to_chat(affected_mob, SPAN_DANGER("Something is not right here...")) + return TRUE + +/obj/effect/particle_effect/smoke/miasma/ex_act(severity) + return ///////////////////////////////////////////// // Sleep smoke @@ -154,20 +251,26 @@ /obj/effect/particle_effect/smoke/sleepy/Move() . = ..() - for(var/mob/living/carbon/M in get_turf(src)) - affect(M) + for(var/mob/living/carbon/affected_mob in get_turf(src)) + affect(affected_mob) + +/obj/effect/particle_effect/smoke/sleepy/affect(mob/living/carbon/affected_mob) + . = ..() + if(!.) + return FALSE + if(affected_mob.stat == DEAD) + return FALSE + if(issynth(affected_mob)) + return FALSE -/obj/effect/particle_effect/smoke/sleepy/affect(mob/living/carbon/M as mob ) - if (!..()) - return 0 + affected_mob.drop_held_item() + affected_mob.sleeping++ - M.drop_held_item() - M:sleeping++ - if(M.coughedtime != 1) - M.coughedtime = 1 - if(ishuman(M)) //Humans only to avoid issues - M.emote("cough") - addtimer(VARSET_CALLBACK(M, coughedtime, 0), 2 SECONDS) + if(affected_mob.coughedtime < world.time && !affected_mob.stat) + affected_mob.coughedtime = world.time + 2 SECONDS + if(ishuman(affected_mob)) //Humans only to avoid issues + affected_mob.emote("cough") + return TRUE ///////////////////////////////////////////// // Mustard Gas @@ -185,17 +288,20 @@ affect(creature) /obj/effect/particle_effect/smoke/mustard/affect(mob/living/carbon/human/creature) - if(!istype(creature) || issynth(creature)) + . = ..() + if(!.) return FALSE + if(issynth(creature)) + return FALSE + + if(creature.burn_skin(0.75)) + creature.last_damage_data = cause_data - creature.burn_skin(0.75) - if(creature.coughedtime != 1) - creature.coughedtime = 1 + if(creature.coughedtime < world.time && !creature.stat) + creature.coughedtime = world.time + 2 SECONDS if(ishuman(creature)) //Humans only to avoid issues creature.emote("gasp") - addtimer(VARSET_CALLBACK(creature, coughedtime, 0), 2 SECONDS) - creature.updatehealth() - return + return TRUE ///////////////////////////////////////////// // Phosphorus Gas @@ -217,35 +323,41 @@ /obj/effect/particle_effect/smoke/phosphorus/Move() . = ..() - for(var/mob/living/carbon/M in get_turf(src)) - affect(M) + for(var/mob/living/carbon/affected_mob in get_turf(src)) + affect(affected_mob) -/obj/effect/particle_effect/smoke/phosphorus/affect(mob/living/carbon/M) - ..() - burn_damage = 40 - if(ishuman(M)) - if (M.internal != null && M.wear_mask && (M.wear_mask.flags_inventory & ALLOWINTERNALS)) - return - else - if(prob(20)) - M.drop_held_item() - M.apply_damage(1, OXY) - M.updatehealth() - if(M.coughedtime < world.time) - M.emote("cough") - M.coughedtime = world.time + next_cough +/obj/effect/particle_effect/smoke/phosphorus/affect(mob/living/carbon/affected_mob) + . = ..() + if(!.) + return FALSE - M.last_damage_data = cause_data + var/damage = burn_damage + if(ishuman(affected_mob)) + if(affected_mob.internal != null && affected_mob.wear_mask && (affected_mob.wear_mask.flags_inventory & ALLOWINTERNALS)) + return FALSE - if(isyautja(M) || isxeno(M)) - burn_damage *= xeno_yautja_reduction + if(prob(20)) + affected_mob.drop_held_item() + affected_mob.apply_damage(1, OXY) + + if(affected_mob.coughedtime < world.time && !affected_mob.stat) + affected_mob.coughedtime = world.time + next_cough + if(issynth(affected_mob)) + affected_mob.visible_message(SPAN_DANGER("[affected_mob]'s skin is sloughing off!"),\ + SPAN_DANGER("Your skin is sloughing off!")) + else + affected_mob.emote("cough") - M.burn_skin(burn_damage) - M.adjust_fire_stacks(applied_fire_stacks) - M.fire_reagent = new /datum/reagent/napalm/ut() - M.IgniteMob() - M.updatehealth() + if(isyautja(affected_mob) || isxeno(affected_mob)) + damage *= xeno_yautja_reduction + var/reagent = new /datum/reagent/napalm/ut() + affected_mob.burn_skin(damage) + affected_mob.adjust_fire_stacks(applied_fire_stacks, reagent) + affected_mob.IgniteMob() + affected_mob.updatehealth() + affected_mob.last_damage_data = cause_data + return TRUE ///////////////////////////////////////////// // CN20 Nerve Gas @@ -274,14 +386,21 @@ affect(creature) /obj/effect/particle_effect/smoke/cn20/affect(mob/living/carbon/creature) + . = ..() + if(!.) + return FALSE + if(creature.stat == DEAD) + return FALSE + if(issynth(creature)) + return FALSE + var/mob/living/carbon/xenomorph/xeno_creature var/mob/living/carbon/human/human_creature if(isxeno(creature)) xeno_creature = creature else if(ishuman(creature)) human_creature = creature - if(!istype(creature) || issynth(creature) || creature.stat == DEAD) - return FALSE + if(!xeno_affecting && xeno_creature) return FALSE if(isyautja(creature) && prob(75)) @@ -292,38 +411,38 @@ if(human_creature && (human_creature.head && (human_creature.head.flags_inventory & BLOCKGASEFFECT))) return FALSE - var/effect_amt = round(6 + amount*6) + var/effect_amt = floor(6 + amount*6) if(xeno_creature) - if(xeno_creature.interference < 4) - to_chat(xeno_creature, SPAN_XENOHIGHDANGER("Your awareness dims to a small area!")) - xeno_creature.interference = 10 + xeno_creature.AddComponent(/datum/component/status_effect/interference, 10, 10) xeno_creature.blinded = TRUE else creature.apply_damage(12, OXY) - creature.SetEarDeafness(max(creature.ear_deaf, round(effect_amt*1.5))) //Paralysis of hearing system, aka deafness + + creature.SetEarDeafness(max(creature.ear_deaf, floor(effect_amt*1.5))) //Paralysis of hearing system, aka deafness if(!xeno_creature && !creature.eye_blind) //Eye exposure damage to_chat(creature, SPAN_DANGER("Your eyes sting. You can't see!")) - creature.SetEyeBlind(round(effect_amt/3)) - if(!xeno_creature && creature.coughedtime != 1 && !creature.stat) //Coughing/gasping - creature.coughedtime = 1 + creature.SetEyeBlind(floor(effect_amt/3)) + + if(human_creature && creature.coughedtime < world.time && !creature.stat) //Coughing/gasping + creature.coughedtime = world.time + 1.5 SECONDS if(prob(50)) creature.emote("cough") else creature.emote("gasp") - addtimer(VARSET_CALLBACK(creature, coughedtime, 0), 1.5 SECONDS) + var/stun_chance = 20 if(xeno_affecting) stun_chance = 35 if(prob(stun_chance)) - creature.apply_effect(1, WEAKEN) + creature.KnockDown(2) //Topical damage (neurotoxin on exposed skin) if(xeno_creature) to_chat(xeno_creature, SPAN_XENODANGER("You are struggling to move, it's as if you're paralyzed!")) else to_chat(creature, SPAN_DANGER("Your body is going numb, almost as if paralyzed!")) - if(prob(60 + round(amount*15))) //Highly likely to drop items due to arms/hands seizing up + if(prob(60 + floor(amount*15))) //Highly likely to drop items due to arms/hands seizing up creature.drop_held_item() if(human_creature) human_creature.temporary_slowdown = max(human_creature.temporary_slowdown, 4) //One tick every two second @@ -378,61 +497,64 @@ return ..() -/obj/effect/particle_effect/smoke/xeno_burn/apply_smoke_effect(turf/T) +/obj/effect/particle_effect/smoke/xeno_burn/apply_smoke_effect(turf/cur_turf) ..() - for(var/obj/structure/barricade/B in T) - B.take_acid_damage(XENO_ACID_GAS_BARRICADE_DAMAGE) + for(var/obj/structure/barricade/barricade in cur_turf) + barricade.take_acid_damage(XENO_ACID_GAS_BARRICADE_DAMAGE) if(prob(75)) // anti sound spam playsound(src, pick("acid_sizzle", "acid_hit"), 25) - for(var/obj/vehicle/multitile/R in T) - R.take_damage_type(15, "acid") + for(var/obj/vehicle/multitile/vehicle in cur_turf) + vehicle.take_damage_type(15, "acid") - for(var/obj/structure/machinery/m56d_hmg/auto/H in T) - H.update_health(XENO_ACID_HMG_DAMAGE) + for(var/obj/structure/machinery/m56d_hmg/auto/gun in cur_turf) + gun.update_health(XENO_ACID_HMG_DAMAGE) //No effect when merely entering the smoke turf, for balance reasons -/obj/effect/particle_effect/smoke/xeno_burn/Crossed(mob/living/carbon/M as mob) +/obj/effect/particle_effect/smoke/xeno_burn/Crossed(mob/living/carbon/affected_mob as mob) return -/obj/effect/particle_effect/smoke/xeno_burn/affect(mob/living/carbon/M) - ..() - - if(M.ally_of_hivenumber(hivenumber)) - return - - if(isyautja(M) && prob(75)) - return - if(M.stat == DEAD) - return - if(HAS_TRAIT(M, TRAIT_NESTED) && M.status_flags & XENO_HOST) - return - - M.last_damage_data = cause_data +/obj/effect/particle_effect/smoke/xeno_burn/affect(mob/living/carbon/affected_mob) + . = ..() + if(!.) + return FALSE + if(affected_mob.stat == DEAD) + return FALSE + if(affected_mob.ally_of_hivenumber(hivenumber)) + return FALSE + if(isyautja(affected_mob) && prob(75)) + return FALSE + if(HAS_TRAIT(affected_mob, TRAIT_NESTED) && affected_mob.status_flags & XENO_HOST) + return FALSE - M.apply_damage(3, OXY) //Basic oxyloss from "can't breathe" + affected_mob.last_damage_data = cause_data + affected_mob.apply_damage(3, OXY) //Basic oxyloss from "can't breathe" - if(isxeno(M)) - M.apply_damage(gas_damage * XVX_ACID_DAMAGEMULT, BURN) //Inhalation damage + if(isxeno(affected_mob)) + affected_mob.apply_damage(gas_damage * XVX_ACID_DAMAGEMULT, BURN) //Inhalation damage else - M.apply_damage(gas_damage, BURN) //Inhalation damage + affected_mob.apply_damage(gas_damage, BURN) //Inhalation damage - if(M.coughedtime != 1 && !M.stat && ishuman(M)) //Coughing/gasping - M.coughedtime = 1 - if(prob(50)) - M.emote("cough") + if(affected_mob.coughedtime < world.time && !affected_mob.stat && ishuman(affected_mob)) //Coughing/gasping + affected_mob.coughedtime = world.time + 1.5 SECONDS + if(issynth(affected_mob)) + affected_mob.visible_message(SPAN_DANGER("[affected_mob]'s skin is sloughing off!"),\ + SPAN_DANGER("Your skin is sloughing off!")) else - M.emote("gasp") - addtimer(VARSET_CALLBACK(M, coughedtime, 0), 1.5 SECONDS) + if(prob(50)) + affected_mob.emote("cough") + else + affected_mob.emote("gasp") //Topical damage (acid on exposed skin) - to_chat(M, SPAN_DANGER("Your skin feels like it is melting away!")) - if(ishuman(M)) - var/mob/living/carbon/human/H = M - H.apply_armoured_damage(amount*rand(15, 20), ARMOR_BIO, BURN) //Burn damage, randomizes between various parts //Amount corresponds to upgrade level, 1 to 2.5 + to_chat(affected_mob, SPAN_DANGER("Your skin feels like it is melting away!")) + if(ishuman(affected_mob)) + var/mob/living/carbon/human/human = affected_mob + human.apply_armoured_damage(amount*rand(15, 20), ARMOR_BIO, BURN) //Burn damage, randomizes between various parts //Amount corresponds to upgrade level, 1 to 2.5 else - M.burn_skin(5) //Failsafe for non-humans - M.updatehealth() + affected_mob.burn_skin(5) //Failsafe for non-humans + affected_mob.last_damage_data = cause_data + return TRUE //Xeno neurotox smoke. /obj/effect/particle_effect/smoke/xeno_weak @@ -450,24 +572,27 @@ return /obj/effect/particle_effect/smoke/xeno_weak/affect(mob/living/carbon/moob) // This applies every tick someone is in the smoke - ..() + . = ..() + if(!.) + return FALSE + if(moob.stat == DEAD) + return FALSE if(isxeno(moob)) - return + return FALSE if(isyautja(moob)) - neuro_dose = neuro_dose*2 // Yautja get half effects - msg = "You resist the tingling smoke's effects!" - return - if(moob.stat == DEAD) - return + return FALSE if(HAS_TRAIT(moob, TRAIT_NESTED) && moob.status_flags & XENO_HOST) - return + return FALSE + + var/mob/living/carbon/human/human_moob if(ishuman(moob)) - var/mob/living/carbon/human/H = moob - if(H.chem_effect_flags & CHEM_EFFECT_RESIST_NEURO) - return - var/effect_amt = round(6 + amount*6) + human_moob = moob + if(human_moob.chem_effect_flags & CHEM_EFFECT_RESIST_NEURO) + return FALSE + + var/effect_amt = floor(6 + amount*6) moob.eye_blurry = max(moob.eye_blurry, effect_amt) - moob.apply_effect(max(moob.eye_blurry, effect_amt), EYE_BLUR) + moob.EyeBlur(max(moob.eye_blurry, effect_amt)) moob.apply_damage(5, OXY) // Base "I can't breath oxyloss" Slightly more longer lasting then stamina damage // reworked code below if(!issynth(moob)) @@ -476,18 +601,18 @@ neuro_effect = new(moob, cause_data.resolve_mob()) neuro_effect.strength = effect_amt neuro_effect.duration += neuro_dose - if(moob.coughedtime != 1 && !moob.stat) //Coughing/gasping - moob.coughedtime = 1 + if(human_moob && moob.coughedtime < world.time && !moob.stat) //Coughing/gasping + moob.coughedtime = world.time + 1.5 SECONDS if(prob(50)) moob.Slow(1) moob.emote("cough") else moob.emote("gasp") - addtimer(VARSET_CALLBACK(moob, coughedtime, 0), 1.5 SECONDS) else msg = "You are consumed by the harmless gas, it is hard to navigate in!" - moob.apply_effect(SLOW,1) + moob.Slow(1) to_chat(moob, SPAN_DANGER(msg)) + return TRUE /obj/effect/particle_effect/smoke/xeno_weak_fire time_to_live = 16 @@ -505,74 +630,83 @@ . = ..() /obj/effect/particle_effect/smoke/xeno_weak_fire/affect(mob/living/carbon/moob) - ..() - + . = ..() + if(!.) + return FALSE + if(moob.stat == DEAD) + return FALSE if(isxeno(moob)) - return + return FALSE if(isyautja(moob) && prob(75)) - return - if(moob.stat == DEAD) - return + return FALSE if(HAS_TRAIT(moob, TRAIT_NESTED) && moob.status_flags & XENO_HOST) - return + return FALSE - var/effect_amt = round(6 + amount*6) + var/mob/living/carbon/human/human_moob + if(ishuman(moob)) + human_moob = moob + + var/effect_amt = floor(6 + amount*6) moob.apply_damage(9, OXY) // MUCH harsher - moob.SetEarDeafness(max(moob.ear_deaf, round(effect_amt*1.5))) //Paralysis of hearing system, aka deafness + moob.SetEarDeafness(max(moob.ear_deaf, floor(effect_amt*1.5))) //Paralysis of hearing system, aka deafness if(!moob.eye_blind) //Eye exposure damage to_chat(moob, SPAN_DANGER("Your eyes sting. You can't see!")) - moob.SetEyeBlind(round(effect_amt/3)) - if(moob.coughedtime != 1 && !moob.stat) //Coughing/gasping - moob.coughedtime = 1 - if(prob(50)) - moob.emote("cough") - else - moob.emote("gasp") - addtimer(VARSET_CALLBACK(moob, coughedtime, 0), 1.5 SECONDS) - if (prob(20)) - moob.apply_effect(1, WEAKEN) + moob.SetEyeBlind(floor(effect_amt/3)) + + if(human_moob && moob.coughedtime < world.time && !moob.stat) //Coughing/gasping + moob.coughedtime = world.time + 1.5 SECONDS + if(!issynth(moob)) + if(prob(50)) + moob.emote("cough") + else + moob.emote("gasp") + + if(prob(20)) + moob.KnockDown(1) //Topical damage (neurotoxin on exposed skin) to_chat(moob, SPAN_DANGER("Your body is going numb, almost as if paralyzed!")) - if(prob(40 + round(amount*15))) //Highly likely to drop items due to arms/hands seizing up + if(prob(40 + floor(amount*15))) //Highly likely to drop items due to arms/hands seizing up moob.drop_held_item() - if(ishuman(moob)) - var/mob/living/carbon/human/Human = moob - Human.temporary_slowdown = max(Human.temporary_slowdown, 4) //One tick every two second - Human.recalculate_move_delay = TRUE + if(human_moob) + human_moob.temporary_slowdown = max(human_moob.temporary_slowdown, 4) //One tick every two second + human_moob.recalculate_move_delay = TRUE + return TRUE /obj/effect/particle_effect/smoke/xeno_weak_fire/spread_smoke(direction) set waitfor = 0 sleep(spread_speed) - if(QDELETED(src)) return - var/turf/U = get_turf(src) - if(!U) return + if(QDELETED(src)) + return + var/turf/start_turf = get_turf(src) + if(!start_turf) + return for(var/i in GLOB.cardinals) if(direction && i != direction) continue - var/turf/T = get_step(U, i) - if(check_airblock(U,T)) //smoke can't spread that way + var/turf/cur_turf = get_step(start_turf, i) + if(check_airblock(start_turf, cur_turf)) //smoke can't spread that way continue - var/obj/effect/particle_effect/smoke/foundsmoke = locate() in T // Check for existing smoke and act accordingly + var/obj/effect/particle_effect/smoke/foundsmoke = locate() in cur_turf // Check for existing smoke and act accordingly if(foundsmoke) - if(foundsmoke.smokeranking <= src.smokeranking) + if(foundsmoke.smokeranking <= smokeranking) qdel(foundsmoke) else continue - var/obj/effect/particle_effect/smoke/S = new type(T, amount, cause_data) + var/obj/effect/particle_effect/smoke/smoke = new type(cur_turf, amount, cause_data) - for (var/atom/A in T) - if (istype(A, /mob/living)) - var/mob/living/M = A - M.ExtinguishMob() - if(istype(A, /obj/flamer_fire)) - qdel(A) + for (var/atom/cur_atom in cur_turf) + if (istype(cur_atom, /mob/living)) + var/mob/living/affected_mob = cur_atom + affected_mob.ExtinguishMob() + if(istype(cur_atom, /obj/flamer_fire)) + qdel(cur_atom) - S.setDir(pick(GLOB.cardinals)) - S.time_to_live = time_to_live - if(S.amount>0) - S.spread_smoke() + smoke.setDir(pick(GLOB.cardinals)) + smoke.time_to_live = time_to_live + if(smoke.amount > 0) + smoke.spread_smoke() ///////////////////////////////////////////// @@ -606,11 +740,11 @@ /datum/effect_system/smoke_spread/start() if(holder) location = get_turf(holder) - var/obj/effect/particle_effect/smoke/S = new smoke_type(location, amount+1, cause_data) + var/obj/effect/particle_effect/smoke/smoke = new smoke_type(location, amount+1, cause_data) if(lifetime) - S.time_to_live = lifetime - if(S.amount) - S.spread_smoke(direction) + smoke.time_to_live = lifetime + if(smoke.amount > 0) + smoke.spread_smoke(direction) /datum/effect_system/smoke_spread/bad smoke_type = /obj/effect/particle_effect/smoke/bad @@ -647,16 +781,16 @@ /datum/effect_system/smoke_spread/xeno_extinguish_fire/start() if(holder) location = get_turf(holder) - var/obj/effect/particle_effect/smoke/S = new smoke_type(location, amount+1, cause_data) + var/obj/effect/particle_effect/smoke/smoke = new smoke_type(location, amount+1, cause_data) - for (var/atom/A in location) - if (istype(A, /mob/living)) - var/mob/living/M = A - M.ExtinguishMob() - if(istype(A, /obj/flamer_fire)) - qdel(A) + for (var/atom/cur_atom in location) + if (istype(cur_atom, /mob/living)) + var/mob/living/affected_mob = cur_atom + affected_mob.ExtinguishMob() + if(istype(cur_atom, /obj/flamer_fire)) + qdel(cur_atom) if(lifetime) - S.time_to_live = lifetime - if(S.amount) - S.spread_smoke(direction) + smoke.time_to_live = lifetime + if(smoke.amount > 0) + smoke.spread_smoke(direction) diff --git a/code/game/objects/effects/elevator.dm b/code/game/objects/effects/elevator.dm index 443652a7f7a7..f3b6da2e442a 100644 --- a/code/game/objects/effects/elevator.dm +++ b/code/game/objects/effects/elevator.dm @@ -1,6 +1,6 @@ -/obj/effect/elevator/supply - name = "\improper empty space" - desc = "There seems to be an awful lot of machinery down below" +/obj/effect/elevator + name = "\proper empty space" + desc = "There seems to be an awful lot of machinery down below..." icon = 'icons/effects/160x160.dmi' icon_state = "supply_elevator_lowered" unacidable = TRUE @@ -8,17 +8,25 @@ layer = ABOVE_TURF_LAYER appearance_flags = KEEP_TOGETHER -/obj/effect/elevator/supply/ex_act(severity) +/obj/effect/elevator/ex_act(severity) return -/obj/effect/elevator/supply/Destroy(force) +/obj/effect/elevator/Destroy(force) if(!force) return QDEL_HINT_LETMELIVE return ..() -/obj/effect/elevator/supply/visible_message() //Prevents message spam with empty elevator shaft - "The empty space falls into the depths!" +// Don't move with the elevator. +/obj/effect/elevator/onShuttleMove(turf/newT, turf/oldT, list/movement_force, move_dir, obj/docking_port/stationary/old_dock, obj/docking_port/mobile/moving_dock) + return +/obj/effect/elevator/afterShuttleMove(turf/oldT, list/movement_force, shuttle_dir, shuttle_preferred_direction, move_dir, rotation) + return +/obj/effect/elevator/lateShuttleMove(turf/oldT, list/movement_force, move_dir) return /obj/effect/elevator/animation_overlay blend_mode = BLEND_INSET_OVERLAY appearance_flags = KEEP_TOGETHER + +/obj/effect/elevator/vehicle + icon_state = "vehicle_elevator_lowered" diff --git a/code/game/objects/effects/glowshroom.dm b/code/game/objects/effects/glowshroom.dm index aa5e2ec400e2..fdb481e0f2bc 100644 --- a/code/game/objects/effects/glowshroom.dm +++ b/code/game/objects/effects/glowshroom.dm @@ -39,7 +39,7 @@ else //if on the floor, glowshroom on-floor sprite icon_state = "glowshroomf" - set_light(round(potency/15)) + set_light(floor(potency/15)) lastTick = world.timeofday /obj/effect/glowshroom/proc/CalcDir(turf/location = loc) @@ -65,7 +65,7 @@ if(direction & i) dirList += i - if(dirList.len) + if(length(dirList)) var/newDir = pick(dirList) if(newDir == 16) floor = 1 diff --git a/code/game/objects/effects/landmarks/corpsespawner.dm b/code/game/objects/effects/landmarks/corpsespawner.dm index 27a717f58ba8..cbcd8f906ec8 100644 --- a/code/game/objects/effects/landmarks/corpsespawner.dm +++ b/code/game/objects/effects/landmarks/corpsespawner.dm @@ -16,20 +16,6 @@ GLOB.corpse_spawns -= src return ..() -/obj/effect/landmark/corpsespawner/realpirate - name = "Pirate" - equip_path = /datum/equipment_preset/corpse/realpirate - -/obj/effect/landmark/corpsespawner/realpirate/ranged - name = "Pirate Gunner" - equip_path = /datum/equipment_preset/corpse/realpirate/ranged - -/obj/effect/landmark/corpsespawner/russian - name = "Russian" - equip_path = /datum/equipment_preset/corpse/russian - -/obj/effect/landmark/corpsespawner/russian/ranged - ///////////Civilians////////////////////// /obj/effect/landmark/corpsespawner/prisoner @@ -57,43 +43,50 @@ equip_path = /datum/equipment_preset/corpse/miner /obj/effect/landmark/corpsespawner/security - name = "Security" + name = "Security Officer" equip_path = /datum/equipment_preset/corpse/security /obj/effect/landmark/corpsespawner/security/marshal - name = "Colonial Marshal" - equip_path = /datum/equipment_preset/corpse/security/marshal + name = "Colonial Marshal Deputy" + equip_path = /datum/equipment_preset/corpse/security/cmb /obj/effect/landmark/corpsespawner/security/liaison name = "Corporate Liaison" - equip_path = /datum/equipment_preset/corpse/security/liaison + equip_path = /datum/equipment_preset/corpse/liaison /obj/effect/landmark/corpsespawner/prison_security name = "Prison Guard" - equip_path = /datum/equipment_preset/corpse/prison_security + equip_path = /datum/equipment_preset/corpse/prison_guard /////////////////Officers////////////////////// /obj/effect/landmark/corpsespawner/bridgeofficer - name = "Staff Officer" - equip_path = /datum/equipment_preset/corpse/bridgeofficer + name = "Colony Division Manager" + equip_path = /datum/equipment_preset/corpse/manager -/obj/effect/landmark/corpsespawner/bridgeofficer/johnson - name = "Mr. Johnson Telovin" - equip_path = /datum/equipment_preset/corpse/bridgeofficer/johnson +/obj/effect/landmark/corpsespawner/administrator + name = "Colony Administrator" + equip_path = /datum/equipment_preset/corpse/administrator -/obj/effect/landmark/corpsespawner/commander - name = "Commanding Officer" - equip_path = /datum/equipment_preset/corpse/commander +/obj/effect/landmark/corpsespawner/administrator/burst + name = "Burst Colony Administrator" + equip_path = /datum/equipment_preset/corpse/administrator/burst /obj/effect/landmark/corpsespawner/wysec name = "Weyland-Yutani Corporate Security Guard" equip_path = /datum/equipment_preset/corpse/wysec /obj/effect/landmark/corpsespawner/wygoon - name = "Weyland-Yutani Corporate Security Goon" + name = "Weyland-Yutani Corporate Security Officer" equip_path = /datum/equipment_preset/corpse/pmc/goon +/obj/effect/landmark/corpsespawner/wygoon/lead + name = "Weyland-Yutani Corporate Security Lead" + equip_path = /datum/equipment_preset/corpse/pmc/goon/lead + +/obj/effect/landmark/corpsespawner/wygoon/lead/burst + name = "Burst Weyland-Yutani Corporate Security Lead" + equip_path = /datum/equipment_preset/corpse/pmc/goon/lead/burst ///CM specific jobs/// @@ -165,15 +158,29 @@ equip_path = /datum/equipment_preset/corpse/pmc/burst /obj/effect/landmark/corpsespawner/freelancer - name = "Freelancer Mercenary" + name = "Freelancer" equip_path = /datum/equipment_preset/corpse/freelancer /obj/effect/landmark/corpsespawner/freelancer/burst - name = "Burst Freelancer Mercenary" + name = "Burst Freelancer" equip_path = /datum/equipment_preset/corpse/freelancer/burst // Fun Faction Corpse +/obj/effect/landmark/corpsespawner/realpirate + name = "Pirate" + equip_path = /datum/equipment_preset/corpse/realpirate + +/obj/effect/landmark/corpsespawner/realpirate/ranged + name = "Pirate Gunner" + equip_path = /datum/equipment_preset/corpse/realpirate/ranged + +/obj/effect/landmark/corpsespawner/russian + name = "Russian" + equip_path = /datum/equipment_preset/corpse/russian + +/obj/effect/landmark/corpsespawner/russian/ranged + /obj/effect/landmark/corpsespawner/dutchrifle name = "Dutch Dozen Rifleman" equip_path = /datum/equipment_preset/corpse/dutchrifle diff --git a/code/game/objects/effects/landmarks/landmarks.dm b/code/game/objects/effects/landmarks/landmarks.dm index 5f4a374ba31c..bf3b952edcf5 100644 --- a/code/game/objects/effects/landmarks/landmarks.dm +++ b/code/game/objects/effects/landmarks/landmarks.dm @@ -90,9 +90,11 @@ return GLOB.nightmare_landmarks[insert_tag] = get_turf(src) /obj/effect/landmark/nightmare/Destroy() - if(insert_tag && autoremove \ - && GLOB.nightmare_landmarks[insert_tag] == get_turf(src)) - GLOB.nightmare_landmarks.Remove(insert_tag) + if(insert_tag) + var/turf/turf = get_turf(src) + if(autoremove && GLOB.nightmare_landmarks[insert_tag] == turf) + GLOB.nightmare_landmarks.Remove(insert_tag) + GLOB.nightmare_landmark_tags_removed += insert_tag return ..() /obj/effect/landmark/ert_spawns/distress @@ -402,6 +404,24 @@ name = "working joe late join" job = JOB_WORKING_JOE + +/obj/effect/landmark/late_join/cmo + name = "Chief Medical Officer late join" + job = JOB_CMO + +/obj/effect/landmark/late_join/researcher + name = "Researcher late join" + job = JOB_RESEARCHER + +/obj/effect/landmark/late_join/doctor + name = "Doctor late join" + job = JOB_DOCTOR + +/obj/effect/landmark/late_join/nurse + name = "Nurse late join" + job = JOB_NURSE + + /obj/effect/landmark/late_join/Initialize(mapload, ...) . = ..() if(squad) @@ -508,3 +528,7 @@ /// In landmarks.dm and not unit_test.dm so it is always active in the mapping tools. /obj/effect/landmark/unit_test_top_right name = "unit test zone top right" + +/// Marks the bottom left of the tutorial zone. +/obj/effect/landmark/tutorial_bottom_left + name = "tutorial bottom left" diff --git a/code/game/objects/effects/landmarks/survivor_spawner.dm b/code/game/objects/effects/landmarks/survivor_spawner.dm index a53fead0d3bf..4a6e5272ed05 100644 --- a/code/game/objects/effects/landmarks/survivor_spawner.dm +++ b/code/game/objects/effects/landmarks/survivor_spawner.dm @@ -35,13 +35,27 @@ intro_text = list("

        You are a survivor of a crash landing!

        ",\ "You are NOT aware of the xenomorph threat.",\ "Your primary objective is to heal up and survive. If you want to assault the hive - adminhelp.") - story_text = "You are a soldier of Colonial Liberation Front. Your ship received a distress signal from a planet bordering the CLF controlled space under USCM control. Ready and willing to save poor colonists from parasitic tyrants, you and your team boarded small ship called Marie Curie. Unfortunately, right before you came close to a landing zone, a glob of acid hit the ship, damaging one of the engines. Despite all the efforts of the pilot, the ship went straight into nearby mountain. You were hurt pretty badly in the crash. Dumbfounded, you rose up and noticed that one of your limbs is at a weird angle, broken. You looked at other survivors, also limping and trying to fix their broken bones." + story_text = "You are a soldier fighting for the Colonial Liberation Front. Your ship received a distress signal from a planet bordering the CLF controlled space under USCM control. Ready and willing to save poor colonists from parasitic tyrants, you and your team boarded small ship called Marie Curie. Unfortunately, right before you came close to a landing zone, a glob of acid hit the ship, damaging one of the engines. Despite all the efforts of the pilot, the ship went straight into nearby mountain. You were hurt pretty badly in the crash. Dumbfounded, you rise up and notice that one of your limbs is badly bruised. You looked at other survivors, also limping and trying to tend to their wounds, luckily, none of you were seriously hurt." roundstart_damage_min = 3 roundstart_damage_max = 10 roundstart_damage_times = 2 spawn_priority = SPAWN_PRIORITY_HIGH +/obj/effect/landmark/survivor_spawner/lv624_crashed_clf_leader + hostile = TRUE + equipment = /datum/equipment_preset/clf/leader + synth_equipment = /datum/equipment_preset/clf/synth + intro_text = list("

        You are a survivor of a crash landing!

        ",\ + "You are NOT aware of the xenomorph threat.",\ + "Your primary objective is to heal up and survive. If you want to assault the hive - adminhelp.") + story_text = "You are the leader of a squad fighting for the Colonial Liberation Front. Your ship received a distress signal from a planet bordering the CLF controlled space under USCM control. Ready and willing to save poor colonists from parasitic tyrants and under your orders, you and your team small boarded a small ship called Marie Curie. Unfortunately, right before you came close to a landing zone, a glob of acid hit the ship, damaging one of the engines. Despite all the efforts of your pilot, the ship went straight into nearby mountain. You were hurt pretty badly in the crash. Dumbfounded, you rise up and notice that one of your limbs is badly bruised. You looked up at the few remaining survivors of your squad, all limping and trying to tend to their wounds, luckily, none of your men were seriously hurt, and all seem to be responsive to your orders." + roundstart_damage_min = 2 + roundstart_damage_max = 10 + roundstart_damage_times = 2 + + spawn_priority = SPAWN_PRIORITY_VERY_HIGH + /obj/effect/landmark/survivor_spawner/lv624_crashed_clf_engineer hostile = TRUE equipment = /datum/equipment_preset/clf/engineer @@ -49,7 +63,7 @@ intro_text = list("

        You are a survivor of a crash landing!

        ",\ "You are NOT aware of the xenomorph threat.",\ "Your primary objective is to heal up and survive. If you want to assault the hive - adminhelp.") - story_text = "You are a soldier of Colonial Liberation Front. Your ship received a distress signal from a planet bordering the CLF controlled space under USCM control. Ready and willing to save poor colonists from parasitic tyrants, you and your team boarded small ship called Marie Curie. Unfortunately, right before you came close to a landing zone, a glob of acid hit the ship, damaging one of the engines. Despite all the efforts of the pilot, the ship went straight into nearby mountain. You were hurt pretty badly in the crash. Dumbfounded, you rose up and noticed that one of your limbs is at a weird angle, broken. You looked at other survivors, also limping and trying to fix their broken bones." + story_text = "You are an engineer fighting for the Colonial Liberation Front. Your ship received a distress signal from a planet bordering the CLF controlled space under USCM control. Ready and willing to save poor colonists from parasitic tyrants, you and your team boarded small ship called Marie Curie. Unfortunately, right before you came close to a landing zone, a glob of acid hit the ship, damaging one of the engines. Despite all the efforts of the pilot, the ship went straight into nearby mountain. You were hurt pretty badly in the crash. Dumbfounded, you rise up and notice that one of your limbs is badly bruised. You looked at other survivors, also limping and trying to tend to their wounds, luckily, none of you were seriously hurt." roundstart_damage_min = 3 roundstart_damage_max = 10 roundstart_damage_times = 2 @@ -63,20 +77,42 @@ intro_text = list("

        You are a survivor of a crash landing!

        ",\ "You are NOT aware of the xenomorph threat.",\ "Your primary objective is to heal up and survive. If you want to assault the hive - adminhelp.") - story_text = "You are a soldier of Colonial Liberation Front. Your ship received a distress signal from a planet bordering the CLF controlled space under USCM control. Ready and willing to save poor colonists from parasitic tyrants, you and your team boarded small ship called Marie Curie. Unfortunately, right before you came close to a landing zone, a glob of acid hit the ship, damaging one of the engines. Despite all the efforts of the pilot, the ship went straight into nearby mountain. You were hurt pretty badly in the crash. Dumbfounded, you rose up and noticed that one of your limbs is at a weird angle, broken. You looked at other survivors, also limping and trying to fix their broken bones." + story_text = "You are a doctor fighting for the Colonial Liberation Front. Your ship received a distress signal from a planet bordering the CLF controlled space under USCM control. Ready and willing to save poor colonists from parasitic tyrants, you and your team boarded small ship called Marie Curie. Unfortunately, right before you came close to a landing zone, a glob of acid hit the ship, damaging one of the engines. Despite all the efforts of the pilot, the ship went straight into nearby mountain. You were hurt pretty badly in the crash. Dumbfounded, you rise up and notice that one of your limbs is badly bruised. You looked at other survivors, also limping and trying to tend to their wounds, luckily, none of you were seriously hurt." roundstart_damage_min = 3 roundstart_damage_max = 10 roundstart_damage_times = 2 spawn_priority = SPAWN_PRIORITY_VERY_HIGH +//Weyland-Yutani Survivors// + +/obj/effect/landmark/survivor_spawner/lv624_corporate_dome_cl + equipment = /datum/equipment_preset/survivor/wy/executive + synth_equipment = /datum/equipment_preset/synth/survivor/wy/security_synth + intro_text = list("

        You are the last alive Executive of Lazarus Landing!

        ",\ + "You are aware of the xenomorph threat.",\ + "Your primary objective is to survive the outbreak.") + story_text = "You are a Corporate Liaison stationed on LV-624 from Weyland-Yutani. You were tipped off about some very peculiar looking eggs recovered from the alien temple North-East of the colony. Being the smart Executive the Company hired you to be, you decided to prepare your office for the worst when the first 'facehugger' was born in the vats of the Research Dome. Turned out, you were right, everyone who called you crazy and called these the new 'synthetics' is now dead, you along with your Corporate Security detail are the only survivors due to your paranoia. The xenomorph onslaught was relentless, a fuel tank was shot by one of the Officers, leading to the destruction of a part of the dome, along with alot of the defences being melted. You must survive and find a way to contact Weyland-Yutani." + + spawn_priority = SPAWN_PRIORITY_VERY_HIGH + +/obj/effect/landmark/survivor_spawner/lv624_corporate_dome_goon + equipment = /datum/equipment_preset/survivor/goon + synth_equipment = /datum/equipment_preset/synth/survivor/wy/security_synth + intro_text = list("

        You are a Corporate Security Officer!

        ",\ + "You are aware of the xenomorph threat.",\ + "Your primary objective is to survive the outbreak.") + story_text = "You are a Corporate Security Officer stationed on LV-624 from Weyland-Yutani. Suddenly one day you were pulled aside by the Corporate Liaison and told to bring supplies from both Engineering and the Marshals Offices to their office, and fast. You began fortifying the Corporate Dome and was told by the Executive that something big will ravage the entire colony, excluding you. Turns out, the Liaison was right, these so called 'xenomorphs' broke containment from the Research Dome and began destroying the entire colony. Once they came for the Dome and tried to kill all of you, you barely managed to hold them off even after losing one Officer and alot of the defences. The Liaison said they will soon find a way to contact Weyland-Yutani and to remain steadfast until rescue arrives." + + spawn_priority = SPAWN_PRIORITY_HIGH + /obj/effect/landmark/survivor_spawner/bigred_crashed_pmc equipment = /datum/equipment_preset/survivor/pmc synth_equipment = /datum/equipment_preset/synth/survivor/pmc intro_text = list("

        You are a survivor of a crash landing!

        ",\ "You are NOT aware of the xenomorph threat.",\ "Your primary objective is to heal up and survive. If you want to assault the hive - adminhelp.") - story_text = "You are a PMC from Weyland-Yutani. Your ship was enroute to Solaris Ridge to escort an Assistant Manager. On the way, your ship received a distress signal from the colony about an attack. Worried that it might be a CLF attack, your pilot set full speed for the colony. However, during atmospheric entry the engine failed and you fell unconcious from the G-Forces. You wake up wounded... and see that the ship has crashed onto the colony. Your squadmates lie dead beside you, but there's some missing. Perhaps they survived and moved elsewhere? You need to find out what happened to the colony, see if you can find any of your squadmates, and find a way to contact Weyland-Yutani." + story_text = "You are a PMC from Weyland-Yutani. Your ship was enroute to Solaris Ridge to escort an Assistant Manager. On the way, your ship received a distress signal from the colony about an attack. Worried that it might be a CLF attack, your pilot set full speed for the colony. However, during atmospheric entry the engine failed and you fell unconscious from the G-Forces. You wake up wounded... and see that the ship has crashed onto the colony. Your squadmates lie dead beside you, but there's some missing. Perhaps they survived and moved elsewhere? You need to find out what happened to the colony, see if you can find any of your squadmates, and find a way to contact Weyland-Yutani." roundstart_damage_min = 3 roundstart_damage_max = 10 roundstart_damage_times = 2 @@ -89,7 +125,7 @@ intro_text = list("

        You are a survivor of a crash landing!

        ",\ "You are NOT aware of the xenomorph threat.",\ "Your primary objective is to heal up and survive. If you want to assault the hive - adminhelp.") - story_text = "You are a PMC medic from Weyland-Yutani. Your ship was enroute to Solaris Ridge to escort an Assistant Manager. On the way, your ship received a distress signal from the colony about an attack. Worried that it might be a CLF attack, your pilot set full speed for the colony. However, during atmospheric entry the engine failed and you fell unconcious from the G-Forces. You wake up wounded... and see that the ship has crashed onto the colony. Your squadmates lie dead beside you, but there's some missing. Perhaps they survived and moved elsewhere? You need to find out what happened to the colony, see if you can find any of your squadmates, and find a way to contact Weyland-Yutani." + story_text = "You are a PMC medic from Weyland-Yutani. Your ship was enroute to Solaris Ridge to escort an Assistant Manager. On the way, your ship received a distress signal from the colony about an attack. Worried that it might be a CLF attack, your pilot set full speed for the colony. However, during atmospheric entry the engine failed and you fell unconscious from the G-Forces. You wake up wounded... and see that the ship has crashed onto the colony. Your squadmates lie dead beside you, but there's some missing. Perhaps they survived and moved elsewhere? You need to find out what happened to the colony, see if you can find any of your squadmates, and find a way to contact Weyland-Yutani." roundstart_damage_min = 3 roundstart_damage_max = 10 roundstart_damage_times = 2 @@ -102,7 +138,7 @@ intro_text = list("

        You are a survivor of a crash landing!

        ",\ "You are NOT aware of the xenomorph threat.",\ "Your primary objective is to heal up and survive. If you want to assault the hive - adminhelp.") - story_text = "You are a PMC engineer from Weyland-Yutani. Your ship was enroute to Solaris Ridge to escort an Assistant Manager. On the way, your ship received a distress signal from the colony about an attack. Worried that it might be a CLF attack, your pilot set full speed for the colony. However, during atmospheric entry the engine failed and you fell unconcious from the G-Forces. You wake up wounded... and see that the ship has crashed onto the colony. Your squadmates lie dead beside you, but there's some missing. Perhaps they survived and moved elsewhere? You need to find out what happened to the colony, see if you can find any of your squadmates, and find a way to contact Weyland-Yutani." + story_text = "You are a PMC engineer from Weyland-Yutani. Your ship was enroute to Solaris Ridge to escort an Assistant Manager. On the way, your ship received a distress signal from the colony about an attack. Worried that it might be a CLF attack, your pilot set full speed for the colony. However, during atmospheric entry the engine failed and you fell unconscious from the G-Forces. You wake up wounded... and see that the ship has crashed onto the colony. Your squadmates lie dead beside you, but there's some missing. Perhaps they survived and moved elsewhere? You need to find out what happened to the colony, see if you can find any of your squadmates, and find a way to contact Weyland-Yutani." roundstart_damage_min = 3 roundstart_damage_max = 10 roundstart_damage_times = 2 @@ -115,13 +151,75 @@ intro_text = list("

        You are a survivor of a crash landing!

        ",\ "You are NOT aware of the xenomorph threat.",\ "Your primary objective is to heal up and survive. If you want to assault the hive - adminhelp.") - story_text = "You are an Assistant Manager from Weyland-Yutani. You were being escorted onboard a PMC ship to Solaris Ridge. On the way, the ship received a distress signal from the colony about an attack. Worried that it might be a CLF attack, the pilot set full speed for the colony. However, during atmospheric entry the engine failed and you fell unconcious from the G-Forces. You wake up wounded... and see that the ship has crashed onto the colony. The shipcrew lie dead beside you, but there's some missing. Perhaps they survived and moved elsewhere? You must get up and find a way to contact Weyland-Yutani." + story_text = "You are an Assistant Manager from Weyland-Yutani. You were being escorted onboard a PMC ship to Solaris Ridge. On the way, the ship received a distress signal from the colony about an attack. Worried that it might be a CLF attack, the pilot set full speed for the colony. However, during atmospheric entry the engine failed and you fell unconscious from the G-Forces. You wake up wounded... and see that the ship has crashed onto the colony. Your PMC escorts lie dead beside you, but there's some missing. Perhaps they survived and moved elsewhere? You must get up and find a way to contact Weyland-Yutani." roundstart_damage_min = 3 roundstart_damage_max = 10 roundstart_damage_times = 2 spawn_priority = SPAWN_PRIORITY_VERY_HIGH +/obj/effect/landmark/survivor_spawner/shivas_panic_room_cl + equipment = /datum/equipment_preset/survivor/wy/asstmanager + synth_equipment = /datum/equipment_preset/synth/survivor/wy/corporate_synth + intro_text = list("

        You are the last alive Senior Administrator on the Colony!

        ",\ + "You are aware of the xenomorph threat.",\ + "Your primary objective is to survive the outbreak.") + story_text = "You are the Assistant Operations Manager stationed on 'Ifrit' by Weyland-Yutani. This whole outbreak has been a giant mess, you and all other Company personnel ran to the Operations Panic Room, until you heard shooting outside and closed the shutters. You are running low on food, water and ammunition for the weapons you one-day said were 'useless' and a waste of Company dollars. You remember that Administrator Stahl sent out a distress beacon to any ship in range, hoping to get picked up by the Company, he ran to the Spaceport. You have not seen him since. In their attempts at trying to breach in, the so called 'xenomorphs' have tried attacking the shutters, but to no avail. They will soon try again. You must survive and find a way to contact Weyland-Yutani." + + spawn_priority = SPAWN_PRIORITY_VERY_HIGH + +/obj/effect/landmark/survivor_spawner/shivas_panic_room_doc + equipment = /datum/equipment_preset/survivor/doctor + synth_equipment = /datum/equipment_preset/synth/survivor/emt_synth + intro_text = list("

        You are a Medical Doctor on the Colony!

        ",\ + "You are aware of the xenomorph threat.",\ + "Your primary objective is to survive the outbreak.") + story_text = "You are a Doctor working on 'Ifrit' for Weyland-Yutani. This whole outbreak has been a giant mess, you and all other Company personnel ran to the Operations Panic Room, until you heard shooting outside and closed the shutters. You are running low on food, water and ammunition for the weapons. You remember that the xenomorphs have a sort of implanter which latches on to your face and then... something bursts out of your chest, through the rib cage. You had plenty of those cases at the Medical Bay. In their attempts at trying to breach in, the so called 'xenomorphs' have tried attacking the shutters, but to no avail. They will soon try again. You must survive and find a way to contact Weyland-Yutani." + + spawn_priority = SPAWN_PRIORITY_HIGH + +/obj/effect/landmark/survivor_spawner/shivas_panic_room_sci + equipment = /datum/equipment_preset/survivor/scientist + synth_equipment = /datum/equipment_preset/synth/survivor/scientist_synth + intro_text = list("

        You are a Weyland-Yutani Scientist on the Colony!

        ",\ + "You are aware of the xenomorph threat.",\ + "Your primary objective is to survive the outbreak.") + story_text = "You are a Scientist working on 'Ifrit' for Weyland-Yutani. This whole outbreak has been a giant mess, you and all other Company personnel ran to the Operations Panic Room, until you heard shooting outside and closed the shutters. You are running low on food, water and ammunition for the weapons. You remember that the XX-121 species, codenamed that by Research Director Clarke, have a variety of different species, what you can assume a 'leader' of some sort and that their acid is deadly should it come in contact with you or the shutters. You ran far from the labs and have not seen some your coworkers since. In their attempts at trying to breach in, these so called 'xenomorphs' have tried attacking the shutters, but to no avail. They will soon try again. You must survive and find a way to contact Weyland-Yutani." + + spawn_priority = SPAWN_PRIORITY_HIGH + +/obj/effect/landmark/survivor_spawner/shivas_panic_room_civ + equipment = /datum/equipment_preset/survivor/civilian + synth_equipment = /datum/equipment_preset/synth/survivor/chef_synth + intro_text = list("

        You are a worker on the Colony!

        ",\ + "You are aware of the xenomorph threat.",\ + "Your primary objective is to survive the outbreak.") + story_text = "You are a civilian working on 'Ifrit' for Weyland-Yutani. This whole outbreak has been a giant mess, you and all other Company personnel ran to the Operations Panic Room, until you heard shooting outside and closed the shutters. You are running low on food, water and ammunition for the weapons. You remember hearing the alarms blaring and decided to run with a couple others to the Panic Room, hoping to be safe from the threat until rescue arrives. Now you wait along with others for their second attack on the Panic Room. In their first attempt at trying to breach in, the so called 'xenomorphs' have tried attacking the shutters, but to no avail. They will soon try again. You must survive and find a way to contact Weyland-Yutani." + + spawn_priority = SPAWN_PRIORITY_MEDIUM + +//CMB Survivors// + +/obj/effect/landmark/survivor_spawner/fiorina_armory_cmb + equipment = /datum/equipment_preset/survivor/cmb/standard + synth_equipment = /datum/equipment_preset/synth/survivor/cmb/synth + intro_text = list("

        You are a CMB Deputy!

        ",\ + "You are aware of the 'alien' threat.",\ + "Your primary objective is to survive the infestation.") + story_text = "You are a Deputy of the Office of the Colonial Marshals. Your dispatcher received a distress signal from the infamous Fiorina Maximum Penitentiary. You figured it was just another typical case of the prison dealing with a riot their understaffed security force couldn't handle, with more and more of its personnel getting dispatched elsewhere in the galaxy. This wasn't the first time OCM officers were called in to assist, but unfortunately for you, this time it also wasn't the 'minor riot' you expected it to be. Loaded up with only beanbags and finding nobody to greet you on the LZ after being dropped off, you and the rest of your team had gone towards the armory to speak to the Quartermaster, but only found corpses of both prisoners and security littered around on the way. Worried about armed prisoners, your team was in the process of switching to lethals in the armory when some sort of huge alien jumped out from the shadows and snatched Jerry away while he was off praying. The thing dragged him off too fast to catch and his screams faded away down the halls, poor bastard. Now, you'll need to decide whether to look for more clues about what the hell happened here, hunt whatever's out there, or hold a position and hope someone else will respond to the distress signal before it's too late..." + + spawn_priority = SPAWN_PRIORITY_VERY_HIGH + +/obj/effect/landmark/survivor_spawner/fiorina_armory_riot_control + equipment = /datum/equipment_preset/survivor/cmb/ua + synth_equipment = /datum/equipment_preset/synth/survivor/cmb/ua_synth + intro_text = list("

        You are a United Americas Riot Control Officer!

        ",\ + "You are aware of the 'alien' threat.",\ + "Your primary objective is to survive the infestation.") + story_text = "You are a United Americas Riot Control Officer. Your dispatcher received a request from the local OCM Outpost, requesting some men to intervene assist a Deputy with handling a riot at Fiorina. The prison was an understaffed mess so you weren't too surprised they had sent out a distress signal, calling you in to do their jobs yet again. Unfortunately for you, this time it also wasn't the 'minor riot' you expected it to be. Loaded up with only beanbags and finding nobody to greet you on the LZ after being dropped off, you and the rest of your team had gone towards the armory to speak to the Quartermaster, but only found corpses of both prisoners and security littered around on the way. Worried about armed prisoners, your team was in the process of switching to lethals in the armory when some sort of huge alien jumped out from the shadows and snatched Jerry away while he was off praying. The thing dragged him off too fast to catch and his screams faded away down the halls, poor bastard. Now, you'll need to decide whether to look for more clues about what the hell happened here, hunt whatever's out there, or hold a position and hope someone else will respond to the distress signal before it's too late..." + + spawn_priority = SPAWN_PRIORITY_HIGH + //Military Survivors// /obj/effect/landmark/survivor_spawner/lv522_forecon_tech diff --git a/code/game/objects/effects/spawners/gibspawner.dm b/code/game/objects/effects/spawners/gibspawner.dm index 77b69f79e86f..a68afc1d42fa 100644 --- a/code/game/objects/effects/spawners/gibspawner.dm +++ b/code/game/objects/effects/spawners/gibspawner.dm @@ -43,7 +43,7 @@ qdel(src) /obj/effect/spawner/gibspawner/proc/Gib(list/viruses = list(), mob/living/ml = null) - if(gibtypes.len != gibamounts.len || gibamounts.len != gibdirections.len) + if(length(gibtypes) != length(gibamounts) || length(gibamounts) != length(gibdirections)) to_world(SPAN_DANGER("Gib list length mismatch!")) return @@ -58,7 +58,7 @@ s.set_up(2, 1, loc) s.start() - for(var/i = 1, i<= gibtypes.len, i++) + for(var/i = 1, i<= length(gibtypes), i++) if(gibamounts[i]) for(var/j = 1, j<= gibamounts[i], j++) var/gibType = gibtypes[i] @@ -72,7 +72,7 @@ gib.update_icon() - if(viruses.len > 0) + if(length(viruses) > 0) for(var/datum/disease/D in viruses) if(prob(virusProb)) var/datum/disease/viruus = D.Copy(1) @@ -80,7 +80,7 @@ viruus.holder = gib var/list/directions = gibdirections[i] - if(directions.len) + if(length(directions)) INVOKE_ASYNC(gib, /obj/effect/decal/cleanable/blood/gibs/proc/streak, directions) diff --git a/code/game/objects/effects/spawners/wo_spawners/supplies.dm b/code/game/objects/effects/spawners/wo_spawners/supplies.dm index 28f9936b972f..f2a502344660 100644 --- a/code/game/objects/effects/spawners/wo_spawners/supplies.dm +++ b/code/game/objects/effects/spawners/wo_spawners/supplies.dm @@ -6,7 +6,7 @@ /obj/effect/landmark/wo_supplies/New() ..() - if(stuff.len) + if(length(stuff)) for(var/s in stuff) var/amt = rand(amount[1], amount[2]) for(var/i = 1, i <= amt, i++) diff --git a/code/game/objects/effects/spiders.dm b/code/game/objects/effects/spiders.dm index 69eababfe000..e22ab2cd1009 100644 --- a/code/game/objects/effects/spiders.dm +++ b/code/game/objects/effects/spiders.dm @@ -22,9 +22,9 @@ /obj/effect/spider/attackby(obj/item/W, mob/user) if(LAZYLEN(W.attack_verb)) - visible_message(SPAN_DANGER("\The [src] have been [pick(W.attack_verb)] with \the [W][(user ? "by [user]." : ".")]")) + visible_message(SPAN_DANGER("[src] has been [pick(W.attack_verb)] with [W][(user ? " by [user]." : ".")]")) else - visible_message(SPAN_DANGER("\The [src] have been attacked with \the [W][(user ? "by [user]." : ".")]")) + visible_message(SPAN_DANGER("[src] has been attacked with [W][(user ? " by [user]." : ".")]")) var/damage = W.force / 4 @@ -144,7 +144,7 @@ //================= if(prob(25)) var/list/nearby = oview(5, src) - if(nearby.len) + if(length(nearby)) var/target_atom = pick(nearby) walk_to(src, target_atom, 5) if(prob(25)) @@ -170,7 +170,7 @@ //================= if(prob(25)) var/list/nearby = oview(5, src) - if(nearby.len) + if(length(nearby)) var/target_atom = pick(nearby) walk_to(src, target_atom, 5) if(prob(25)) diff --git a/code/game/objects/effects/temporary_visuals.dm b/code/game/objects/effects/temporary_visuals.dm index 4dc07b76f3cb..d05e7789b1d5 100644 --- a/code/game/objects/effects/temporary_visuals.dm +++ b/code/game/objects/effects/temporary_visuals.dm @@ -96,3 +96,26 @@ splatter_type = "csplatter" color = BLOOD_COLOR_SYNTHETIC +//------------------------------------------ +//Shockwaves +//------------------------------------------ + +/obj/effect/shockwave + icon = 'icons/effects/light_overlays/shockwave.dmi' + icon_state = "shockwave" + plane = DISPLACEMENT_PLATE_RENDER_LAYER + pixel_x = -496 + pixel_y = -496 + +/obj/effect/shockwave/Initialize(mapload, radius, speed, easing_type = LINEAR_EASING, y_offset, x_offset) + . = ..() + if(!speed) + speed = 1 + if(y_offset) + pixel_y += y_offset + if(x_offset) + pixel_x += x_offset + QDEL_IN(src, 0.5 * radius * speed) + transform = matrix().Scale(32 / 1024, 32 / 1024) + animate(src, time = 0.5 * radius * speed, transform=matrix().Scale((32 / 1024) * radius * 1.5, (32 / 1024) * radius * 1.5), easing = easing_type) + diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 11da4cce6d98..03e1f126e9d8 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -22,6 +22,8 @@ var/attack_speed = 11 //+3, Adds up to 10. Added an extra 4 removed from /mob/proc/do_click() ///Used in attackby() to say how something was attacked "[x] has been [z.attack_verb] by [y] with [z]" var/list/attack_verb + /// A multiplier to an object's force when used against a stucture. + var/demolition_mod = 1 health = null @@ -242,9 +244,9 @@ cases. Override_icon_state should be a list.*/ var/new_icon_state var/new_protection var/new_item_state - if(override_icon_state && override_icon_state.len) + if(LAZYLEN(override_icon_state)) new_icon_state = override_icon_state[SSmapping.configs[GROUND_MAP].map_name] - if(override_protection && override_protection.len) + if(LAZYLEN(override_protection)) new_protection = override_protection[SSmapping.configs[GROUND_MAP].map_name] switch(SSmapping.configs[GROUND_MAP].camouflage_type) if("snow") @@ -275,7 +277,7 @@ cases. Override_icon_state should be a list.*/ size = "huge" if(SIZE_MASSIVE) size = "massive" - . += "This is a [blood_color ? blood_color != "#030303" ? "bloody " : "oil-stained " : ""][icon2html(src, user)][src.name]. It is a [size] item." + . += "[p_are() == "are" ? "These are " : "This is a "][blood_color ? blood_color != COLOR_OIL ? "bloody " : "oil-stained " : ""][icon2html(src, user)][src.name]. [p_they(TRUE)] [p_are()] a [size] item." if(desc) . += desc if(desc_lore) @@ -364,6 +366,7 @@ cases. Override_icon_state should be a list.*/ qdel(src) SEND_SIGNAL(src, COMSIG_ITEM_DROPPED, user) + SEND_SIGNAL(user, COMSIG_MOB_ITEM_DROPPED, src) if(drop_sound && (src.loc?.z)) playsound(src, drop_sound, dropvol, drop_vary) src.do_drop_animation(user) @@ -458,6 +461,8 @@ cases. Override_icon_state should be a list.*/ if(item.flags_equip_slot & slotdefine2slotbit(slot)) if(is_type_in_list(item, uniform_restricted)) + if(light_on) + turn_light(toggle_on = FALSE) user.drop_inv_item_on_ground(src) to_chat(user, SPAN_NOTICE("You drop \the [src] to the ground while unequipping \the [item].")) @@ -663,13 +668,13 @@ cases. Override_icon_state should be a list.*/ if(WEAR_HANDCUFFS) if(human.handcuffed) return FALSE - if(!istype(src, /obj/item/handcuffs)) + if(!istype(src, /obj/item/restraint)) return FALSE return TRUE if(WEAR_LEGCUFFS) if(human.legcuffed) return FALSE - if(!istype(src, /obj/item/legcuffs)) + if(!istype(src, /obj/item/restraint)) return FALSE return TRUE if(WEAR_IN_ACCESSORY) @@ -708,7 +713,7 @@ cases. Override_icon_state should be a list.*/ if(WEAR_IN_SHOES) if(human.shoes && istype(human.shoes, /obj/item/clothing/shoes)) var/obj/item/clothing/shoes/shoes = human.shoes - if(shoes.attempt_insert_item(human, src)) + if(shoes.can_be_inserted(src)) return TRUE return FALSE if(WEAR_IN_SCABBARD) diff --git a/code/game/objects/items/ashtray.dm b/code/game/objects/items/ashtray.dm index 540f3ac44e21..7d2dc00a9983 100644 --- a/code/game/objects/items/ashtray.dm +++ b/code/game/objects/items/ashtray.dm @@ -12,7 +12,7 @@ if (health < 1) return if (istype(W,/obj/item/trash/cigbutt) || istype(W,/obj/item/clothing/mask/cigarette) || istype(W, /obj/item/tool/match)) - if (contents.len >= max_butts) + if (length(contents) >= max_butts) to_chat(user, "This ashtray is full.") return var/drop = TRUE @@ -42,10 +42,10 @@ user.update_inv_l_hand(0) user.update_inv_r_hand() add_fingerprint(user) - if (contents.len == max_butts) + if (length(contents) == max_butts) icon_state = icon_full desc = empty_desc + " It's stuffed full." - else if (contents.len > max_butts/2) + else if (length(contents) > max_butts/2) icon_state = icon_half desc = empty_desc + " It's half-filled." else @@ -61,7 +61,7 @@ if (health < 1) die() return - if (contents.len) + if (length(contents)) src.visible_message(SPAN_DANGER("[src] slams into [hit_atom] spilling its contents!")) for (var/obj/item/clothing/mask/cigarette/O in contents) O.forceMove(src.loc) diff --git a/code/game/objects/items/backpack_sprayers.dm b/code/game/objects/items/backpack_sprayers.dm index 427a1dd597c7..c6e747ea9759 100644 --- a/code/game/objects/items/backpack_sprayers.dm +++ b/code/game/objects/items/backpack_sprayers.dm @@ -333,7 +333,7 @@ return //actually firing the launcher if(tank.launcher_cooldown > world.time) - to_chat(user, SPAN_WARNING("\The [tank] cannot fire another foam ball just yet. Wait [round(tank.launcher_cooldown/10)] seconds.")) + to_chat(user, SPAN_WARNING("\The [tank] cannot fire another foam ball just yet. Wait [floor(tank.launcher_cooldown/10)] seconds.")) return if(tank.reagents.has_reagent("water", launcher_cost)) tank.reagents.remove_reagent("water", launcher_cost) diff --git a/code/game/objects/items/bodybag.dm b/code/game/objects/items/bodybag.dm index 3b84d2433e88..9b0cf37299eb 100644 --- a/code/game/objects/items/bodybag.dm +++ b/code/game/objects/items/bodybag.dm @@ -137,7 +137,7 @@ continue dead_mobs += mob var/mob/living/mob_to_store - if(dead_mobs.len) + if(length(dead_mobs)) mob_to_store = pick(dead_mobs) mob_to_store.forceMove(src) stored_units += mob_size @@ -169,7 +169,7 @@ ..() if(over_object == usr && Adjacent(usr) && !roller_buckled) if(!ishuman(usr)) return - if(contents.len) return 0 + if(length(contents)) return 0 visible_message(SPAN_NOTICE("[usr] folds up [name].")) var/obj/item/I = new item_path(get_turf(src), src) usr.put_in_hands(I) @@ -271,7 +271,7 @@ continue mobs_can_store += H var/mob/living/carbon/human/mob_to_store - if(mobs_can_store.len) + if(length(mobs_can_store)) mob_to_store = pick(mobs_can_store) mob_to_store.forceMove(src) stored_units += mob_size diff --git a/code/game/objects/items/books/manuals.dm b/code/game/objects/items/books/manuals.dm index 0854d2ec1b06..3140d0e30ca9 100644 --- a/code/game/objects/items/books/manuals.dm +++ b/code/game/objects/items/books/manuals.dm @@ -8,6 +8,7 @@ /// 0 - Normal book, 1 - Should not be treated as normal book, unable to be copied, unable to be modified unique = 1 + /obj/item/book/manual/engineering_construction name = "Station Repairs and Construction" icon_state ="bookEngineering" @@ -28,161 +29,6 @@ "} -/obj/item/book/manual/engineering_particle_accelerator - name = "Particle Accelerator User's Guide" - icon_state ="bookParticleAccelerator" - author = "Engineering Encyclopedia" - title = "Particle Accelerator User's Guide" - - dat = {" - - - - - -

        Experienced User's Guide

        - -

        Setting up the accelerator

        - -
          -
        1. Wrench all pieces to the floor
        2. -
        3. Add wires to all the pieces
        4. -
        5. Close all the panels with your screwdriver
        6. -
        - -

        Using the accelerator

        - -
          -
        1. Open the control panel
        2. -
        3. Set the speed to 2
        4. -
        5. Start firing at the singularity generator
        6. -
        7. When the singularity reaches a large enough size so it starts moving on it's own set the speed down to 0, but don't shut it off
        8. -
        9. Remember to wear a radiation suit when working with this machine... we did tell you that at the start, right?
        10. -
        - - - - "} - - -/obj/item/book/manual/supermatter_engine - name = "Supermatter Engine User's Guide" - icon_state = "bookSupermatter" - author = "Waleed Asad" - title = "Supermatter Engine User's Guide" - - dat = {" - - - - -
        - Engineering notes on the single-stage supermatter engine,
        - -Waleed Asad

        - - Station,
        - Exodus

        - - A word of caution, do not enter the engine room for any reason without radiation protection and meson scanners on. The status of the engine may be unpredictable even when you believe it is 'off.' This is an important level of personal protection.

        - - The engine has two basic modes of functionality. It has been observed that it is capable of both a safe level of operation and a modified, high output mode.

        - -

        Heat-Primary Mode

        - Notes on starting the basic function mode -
          -
        1. Prepare collector arrays: As is standard, begin by wrenching them down, filling six plasma tanks with a plasma canister, and inserting the tank into the collectors one by one. Finally, initialize each collector.
        2. - -
        3. Prepare gas system: Before introducing any gas into the supermatter engine room, it is important to remember the small, but vital steps to preparing this section. First, set the input gas pump and output gas flow pump to 4500 kPa, or maximum flow. Second, switch the digital switching valve into the 'up' position, so the green light is on north side of the valve, in order to circulate the gas back toward the coolers and collectors.
        4. - -
        5. Apply N2 gas: Retrieve the two N2 canisters from storage and bring them to the engine room. Attach one of them to the input section of the engine gas system located next to the collectors. Keep it attached until the N2 pressure is low enough to turn the canister light red. Replace it with the second canister to keep N2 pressure at optimal levels.
        6. - -
        7. Open supermatter shielding: This button is located in the engine room, to the left of the engine monitoring room blast doors. At this point, the supermatter chamber is mostly a gas mixture of N2 and is producing no radiation. It is considered 'safe' up until this point. Do not forget radiation shielding and meson scanners.
        8. - -
        9. Begin primary emitter burst series: Begin by firing four shots into the supermatter using the emitter. It is important to move to this step quickly. The onboard SMES units may not have enough power to run the emitters if left alone too long on-station. This engine can produce enough power on its own to run the entire station, ignoring the SMES units completely, and is wired to do so.
        10. - -
        11. Switch SMES units to primary settings: Maximize input and set the devices to automatically charge, additionally turn their outputs on if they are off unless power is to be saved (Which can be useful in case of later failures).
        12. - -
        13. Begin secondary emitter burst series: Before firing the emitter again, check the power in the line with a multimeter (Do not forget electrical gloves). The engine is running at high efficiency when the value exceeds 200,000 power units.
        14. - -
        15. Maintain engine power: When power in the lines get low, add an additional emitter burst series to bring power to normal levels.
        16. -
        - - -

        O2-Reaction Mode

        - - The second mode for running the engine uses a gas mixture to produce a reaction within the supermatter. This mode requires the CE's or Atmospheric's help to set up. This is called 'O2-Reaction Mode.'

        - - THIS MODE CAN CAUSE A RUNAWAY REACTION, LEADING TO CATASTROPHIC FAILURE IF NOT MAINTAINED. NEVER FORGET ABOUT THE ENGINE IN THIS MODE.

        - - Additionally, this mode can be used for what is called a 'Cold Start.' If the station has no power in the SMES to run the emitters, using this mode will allow enough power output to run them, and quickly reach an acceptable level of power output.

        - -
          -
        1. Prepare collector arrays: As is standard, begin by wrenching them down, filling six plasma tanks with a plasma canister, and inserting the tank into the collectors one by one. Finally, initialize each collector.
        2. - -
        3. Prepare gas system: Before introducing any gas into the supermatter engine room, it is important to remember the small, but vital steps to preparing this section. First, set the input gas pump and output gas flow pump to 4500 kPa, or maximum flow. Second, switch the digital switching valve into the 'up' position, so the green light is on north side of the valve, in order to circulate the gas back toward the coolers and collectors.
        4. - -
        5. Modify the engine room filters: Unlike the Heat-Primary Mode, it is important to change the filters attached to the gas system to stop filtering O2, and start filtering carbon molecules. O2-Reaction Mode produces far more plasma than Heat-Primary, therefore filtering it off is essential.
        6. - -
        7. Switch SMES units to primary settings: Maximize input and set the devices to automatically charge, additionally turn their outputs on if they are off unless power is to be saved (Which can be useful in case of later failures). If you check the power in the system lines at this point, you will find that it is constantly going up. Indeed, with just the addition of O2 to the supermatter, it will begin outputting power.
        8. - -
        9. Begin primary emitter burst series: Begin by firing four shots into the supermatter using the emitter. Do not over power the supermatter. The reaction is self sustaining and propagating. As long as O2 is in the chamber, it will continue outputting MORE power.
        10. - -
        11. Maintain follow up operations: Remember to check the temperature of the core gas and switch to the Heat-Primary function, or vent the core room when problems begin if required.
        12. -

        - -

        Notes on Supermatter Reaction Function and Drawbacks

        - - After several hours of observation, an interesting phenomenon was witnessed. The supermatter undergoes a constant, self-sustaining reaction when given an extremely high O2 concentration. Anything about 80% or higher typically will cause this reaction. The supermatter will continue to react whenever this gas mixture is in the same room as the supermatter.

        - - To understand why O2-Reaction mode is dangerous, the core principle of the supermatter must be understood. The supermatter emits three things when 'not safe,' that is any time it is giving off power. These things are:
        - -
          -
        • Radiation (which is converted into power by the collectors)

        • -
        • Heat (which is removed via the gas exchange system and coolers)

        • -
        • External gas (in the form of plasma and O2)

        • -

        - - When in Heat-Primary mode, far more heat and plasma are produced than radiation. In O2-Reaction mode, very little heat and only moderate amounts of plasma are produced, however HUGE amounts of energy leaving the supermatter is in the form of radiation.

        - - The O2-Reaction engine mode has a single drawback which has been eluded to more than once so far and that is very simple. The engine room will continue to grow hotter as the constant reaction continues. Eventually, there will be what is called a 'critical gas mixture.' This is the point at which the constant adding of plasma to the mixture of air around the supermatter changes the gas concentration to below the tolerance. When this happens, two things occur. First, the supermatter switches to its primary mode of operation wherein huge amounts of heat are produced by the engine rather than low amounts with high power output. Second, an uncontrollable increase in heat within the supermatter chamber will occur. This will lead to a spark-up, igniting the plasma in the supermatter chamber, wildly increasing both pressure and temperature.

        - - While the O2-Reaction mode is dangerous, it does produce heavy amounts of energy. Consider using this mode only in short amounts to fill the SMES, and switch back later in the shift to keep things flowing normally.

        - - -

        Notes on Supermatter Containment and Emergency Procedures

        - - While a constant vigil on the supermatter is not required, regular checkups are important. Check the temperature of gas leaving the supermatter chamber for unsafe levels and ensure that the plasma in the chamber is at a safe concentration. Of course, also make sure the chamber is not on fire. A fire in the core chamber is very difficult to put out. As any toxin scientist can tell you, even low amounts of plasma can burn at very high temperatures. This burning creates a huge increase in pressure and more importantly, temperature of the crystal itself.

        - - The supermatter is strong, but not invincible. When the supermatter is heated too much, its crystal structure will attempt to liquefy. The change in atomic structure of the supermatter leads to a single reaction, a massive explosion. The computer chip attached to the supermatter core will warn the station when stability is threatened. It will then offer a second warning, when things have become dangerously close to total destruction of the core.

        - - Located both within the CE office and engine room is the engine ventilatory control button. This button allows the core vent controls to be accessed, venting the room to space. Remember however, that this process takes time. If a fire is raging, and the pressure is higher than fathomable, it will take a great deal of time to vent the room. Also located in the CE's office is the emergency core eject button. A new core can be ordered from cargo. It is often not worth the lives of the crew to hold on to it, not to mention the structural damage. However, if by some mistake the supermatter is pushed off or removed from the mass driver it sits on, manual reposition will be required. Which is very dangerous and often leads to death.

        - - The supermatter is extremely dangerous. More dangerous than people give it credit for. It can destroy you in an instant, without hesitation, reducing you to a pile of dust. When working closely with supermatter, it is suggested to get a genetic backup and do not wear any items of value to you. The supermatter core can be pulled if grabbed properly by the base, but pushing is not possible.

        - - -

        In Closing

        - - Remember that the supermatter is dangerous, and the core is dangerous still. Venting the core room is always an option if you are even remotely worried, utilizing Atmospherics to properly ready the room once more for core function. It is always a good idea to check up regularly on the temperature of gas leaving the chamber, as well as the power in the system lines. Lastly, once again remember, never touch the supermatter with anything. Ever.

        - - -Waleed Asad, Senior Engine Technician - - "} - /obj/item/book/manual/engineering_hacking name = "Hacking" icon_state ="bookHacking" @@ -203,150 +49,6 @@ "} -/obj/item/book/manual/engineering_singularity_safety - name = "Singularity Safety in Special Circumstances" - icon_state ="bookEngineeringSingularitySafety" - author = "Engineering Encyclopedia" - title = "Singularity Safety in Special Circumstances" - - dat = {" - - - - -

        Singularity Safety in Special Circumstances

        - -

        Power outage

        - - A power problem has made the entire station lose power? Could be station-wide wiring problems or syndicate power sinks. In any case follow these steps: - -
          -
        1. PANIC!
        2. -
        3. Get your ass over to engineering! QUICKLY!!!
        4. -
        5. Get to the Area Power Controller which controls the power to the emitters.
        6. -
        7. Swipe it with your ID card - if it doesn't unlock, continue with step 15.
        8. -
        9. Open the console and disengage the cover lock.
        10. -
        11. Pry open the APC with a Crowbar.
        12. -
        13. Take out the empty power cell.
        14. -
        15. Put in the new, full power cell - if you don't have one, continue with step 15.
        16. -
        17. Quickly put on a Radiation suit.
        18. -
        19. Check if the singularity field generators withstood the down-time - if they didn't, continue with step 15.
        20. -
        21. Since disaster was averted you now have to ensure it doesn't repeat. If it was a powersink which caused it and if the engineering APC is wired to the same powernet, which the powersink is on, you have to remove the piece of wire which links the APC to the powernet. If it wasn't a powersink which caused it, then skip to step 14.
        22. -
        23. Grab your crowbar and pry away the tile closest to the APC.
        24. -
        25. Use the wirecutters to cut the wire which is connecting the grid to the terminal.
        26. -
        27. Go to the bar and tell the guys how you saved them all. Stop reading this guide here.
        28. -
        29. GET THE FUCK OUT OF THERE!!!
        30. -
        - -

        Shields get damaged

        - -
          -
        1. GET THE FUCK OUT OF THERE!!! FORGET THE WOMEN AND CHILDREN, SAVE YOURSELF!!!
        2. -
        - - - "} - -/obj/item/book/manual/medical_cloning - name = "Cloning Techniques of the 26th Century" - icon_state ="bookCloning" - author = "Medical Journal, volume 3" - title = "Cloning Techniques of the 26th Century" - - dat = {" - - - - - -

        How to Clone People

        - So there are 50 dead people lying on the floor, chairs are spinning like no tomorrow and you haven't the foggiest idea of what to do? Not to worry! - This guide is intended to teach you how to clone people and how to do it right, in a simple, step-by-step process! If at any point of the guide you have a mental meltdown, - genetics probably isn't for you and you should get a job-change as soon as possible before you're sued for malpractice. - -
          -
        1. Acquire body
        2. -
        3. Strip body
        4. -
        5. Put body in cloning machine
        6. -
        7. Scan body
        8. -
        9. Clone body
        10. -
        11. Get clean Structural Enzymes for the body
        12. -
        13. Put body in morgue
        14. -
        15. Await cloned body
        16. -
        17. Cryo and use the clean SE injector
        18. -
        19. Give person clothes back
        20. -
        21. Send person on their way
        22. -
        - -

        Step 1: Acquire body

        - This is pretty much vital for the process because without a body, you cannot clone it. Usually, bodies will be brought to you, so you do not need to worry so much about this step. If you already have a body, great! Move on to the next step. - -

        Step 2: Strip body

        - The cloning machine does not like abiotic items. What this means is you can't clone anyone if they're wearing clothes or holding things, so take all of it off. If it's just one person, it's courteous to put their possessions in the closet. - If you have about seven people awaiting cloning, just leave the piles where they are, but don't mix them around and for God's sake don't let people in to steal them. - -

        Step 3: Put body in cloning machine

        - Grab the body and then put it inside the DNA modifier. If you cannot do this, then you messed up at Step 2. Go back and check you took EVERYTHING off - a commonly missed item is their headset. - -

        Step 4: Scan body

        - Go onto the computer and scan the body by pressing 'Scan - <Subject Name Here>.' If you're successful, they will be added to the records (note that this can be done at any time, even with living people, - so that they can be cloned without a body in the event that they are lying dead on port solars and didn't turn on their suit sensors)! - If not, and it says "Error: Mental interface failure.", then they have left their bodily confines and are one with the spirits. If this happens, just shout at them to get back in their body, - click 'Refresh' and try scanning them again. If there's no success, threaten them with gibbing. - Still no success? Skip over to Step 7 and don't continue after it, as you have an unresponsive body and it cannot be cloned. - If you got "Error: Unable to locate valid genetic data.", you are trying to clone a monkey - start over. - -

        Step 5: Clone body

        - Now that the body has a record, click 'View Records,' click the subject's name, and then click 'Clone' to start the cloning process. Congratulations! You're halfway there. - Remember not to 'Eject' the cloning pod as this will kill the developing clone and you'll have to start the process again. - -

        Step 6: Get clean SEs for body

        - Cloning is a finicky and unreliable process. Whilst it will most certainly bring someone back from the dead, they can have any number of nasty disabilities given to them during the cloning process! - For this reason, you need to prepare a clean, defect-free Structural Enzyme (SE) injection for when they're done. If you're a competent Geneticist, you will already have one ready on your working computer. - If, for any reason, you do not, then eject the body from the DNA modifier (NOT THE CLONING POD) and take it next door to the Genetics research room. Put the body in one of those DNA modifiers and then go onto the console. - Go into View/Edit/Transfer Buffer, find an open slot and click "SE" to save it. Then click 'Injector' to get the SEs in syringe form. Put this in your pocket or something for when the body is done. - -

        Step 7: Put body in morgue

        - Now that the cloning process has been initiated and you have some clean Structural Enzymes, you no longer need the body! Drag it to the morgue and tell the Chef over the radio that they have some fresh meat waiting for them in there. - To put a body in a morgue bed, simply open the tray, grab the body, put it on the open tray, then close the tray again. Use one of the nearby pens to label the bed "CHEF MEAT" in order to avoid confusion. - -

        Step 8: Await cloned body

        - Now go back to the lab and wait for your patient to be cloned. It won't be long now, I promise. - -

        Step 9: Cryo and clean SE injector on person

        - Has your body been cloned yet? Great! As soon as the guy pops out, grab them and stick them in cryo. Clonexadone and Cryoxadone help rebuild their genetic material. Then grab your clean SE injector and jab it in them. Once you've injected them, - they now have clean Structural Enzymes and their defects, if any, will disappear in a short while. - -

        Step 10: Give person clothes back

        - Obviously the person will be naked after they have been cloned. Provided you weren't an irresponsible little shit, you should have protected their possessions from thieves and should be able to give them back to the patient. - No matter how cruel you are, it's simply against protocol to force your patients to walk outside naked. - -

        Step 11: Send person on their way

        - Give the patient one last check-over - make sure they don't still have any defects and that they have all their possessions. Ask them how they died, if they know, so that you can report any foul play over the radio. - Once you're done, your patient is ready to go back to work! Chances are they do not have Medbay access, so you should let them out of Genetics and the Medbay main entrance. - -

        If you've gotten this far, congratulations! You have mastered the art of cloning. Now, the real problem is how to resurrect yourself after that traitor had his way with you for cloning his target. - - - - "} - - /obj/item/book/manual/ripley_build_and_repair name = "APLU \"Ripley\" Construction and Operation Manual" icon_state ="book" @@ -430,271 +132,17 @@ author = "Dr. L. Ight" title = "Research and Development 101" - dat = {" - - - - - -

        Science For Dummies

        - So you want to further SCIENCE? Good man/woman/thing! However, SCIENCE is a complicated process even though it's quite easy. For the most part, it's a three step process: -
          -
        1. Deconstruct items in the Destructive Analyzer to advance technology or improve the design.
        2. -
        3. Build unlocked designs in the Protolathe and Circuit Imprinter.
        4. -
        5. Repeat!
        6. -
        - - Those are the basic steps to furthering science. What do you do science with, however? Well, you have four major tools: R&D Console, the Destructive Analyzer, the Protolathe, and the Circuit Imprinter. - -

        The R&D Console

        - The R&D console is the cornerstone of any research lab. It is the central system from which the Destructive Analyzer, Protolathe, and Circuit Imprinter (your R&D systems) are controlled. More on those systems in their own sections. - On its own, the R&D console acts as a database for all your technological gains and new devices you discover. So long as the R&D console remains intact, you'll retain all that SCIENCE you've discovered. Protect it though, - because if it gets damaged, you'll lose your data! - In addition to this important purpose, the R&D console has a disk menu that lets you transfer data from the database onto disk or from the disk into the database. - It also has a settings menu that lets you re-sync with nearby R&D devices (if they've become disconnected), lock the console from the unworthy, - upload the data to all other R&D consoles in the network (all R&D consoles are networked by default), connect/disconnect from the network, and purge all data from the database.

        - - NOTE: The technology list screen, circuit imprinter, and protolathe menus are accessible by non-scientists. This is intended to allow 'public' systems for the plebians to utilize some new devices. - -

        Destructive Analyzer

        - This is the source of all technology. Whenever you put a handheld object in it, it analyzes it and determines what sort of technological advancements you can discover from it. If the technology of the object is equal or higher then your current knowledge, - you can destroy the object to further those sciences. - Some devices (notably, some devices made from the protolathe and circuit imprinter) aren't 100% reliable when you first discover them. If these devices break down, you can put them into the Destructive Analyzer and improve their reliability rather than further science. - If their reliability is high enough, it'll also advance their related technologies. - -

        Circuit Imprinter

        - This machine, along with the Protolathe, is used to actually produce new devices. The Circuit Imprinter takes glass and various chemicals (depends on the design) to produce new circuit boards to build new machines or computers. It can even be used to print AI modules. - -

        Protolathe

        - This machine is an advanced form of the Autolathe that produce non-circuit designs. Unlike the Autolathe, it can use processed metal, glass, solid phoron, silver, gold, and diamonds along with a variety of chemicals to produce devices. - The downside is that, again, not all devices you make are 100% reliable when you first discover them. - -

        Reliability and You

        - As it has been stated, many devices, when they're first discovered, do not have a 100% reliability. Instead, - the reliability of the device is dependent upon a base reliability value, whatever improvements to the design you've discovered through the Destructive Analyzer, - and any advancements you've made with the device's source technologies. To be able to improve the reliability of a device, you have to use the device until it breaks beyond repair. Once that happens, you can analyze it in a Destructive Analyzer. - Once the device reaches a certain minimum reliability, you'll gain technological advancements from it. - -

        Building a Better Machine

        - Many machines produced from circuit boards inserted into a machine frames require a variety of parts to construct. These are parts like capacitors, batteries, matter bins, and so forth. As your knowledge of science improves, more advanced versions are unlocked. - If you use these parts when constructing something, its attributes may be improved. - For example, if you use an advanced matter bin when constructing an autolathe (rather than a regular one), it'll hold more materials. Experiment around with stock parts of various qualities to see how they affect the end results! Be warned, however: - Tier 3 and higher stock parts don't have 100% reliability and their low reliability may affect the reliability of the end machine. - - - "} - - -/obj/item/book/manual/robotics_cyborgs - name = "Cyborgs for Dummies" - icon_state = "borgbook" - author = "XISC" - title = "Cyborgs for Dummies" - - dat = {" - - - - - -

        Cyborgs for Dummies

        - -

        Chapters

        - -
          -
        1. Cyborg Related Equipment
        2. -
        3. Cyborg Modules
        4. -
        5. Cyborg Construction
        6. -
        7. Cyborg Maintenance
        8. -
        9. Cyborg Repairs
        10. -
        11. In Case of Emergency
        12. -
        - - -

        Cyborg Related Equipment

        - -

        Exosuit Fabricator

        - The Exosuit Fabricator is the most important piece of equipment related to cyborgs. It allows the construction of the core cyborg parts. Without these machines, cyborgs cannot be built. It seems that they may also benefit from advanced research techniques. - -

        Cyborg Recharging Station

        - This useful piece of equipment will suck power out of the power systems to charge a cyborg's power cell back up to full charge. - -

        Robotics Control Console

        - This useful piece of equipment can be used to immobilize or destroy a cyborg. A word of warning: Cyborgs are expensive pieces of equipment, do not destroy them without good reason, or Weyland-Yutani may see to it that it never happens again. - - -

        Cyborg Modules

        - When a cyborg is created it picks out of an array of modules to designate its purpose. There are 6 different cyborg modules. - -

        Standard Cyborg

        - The standard cyborg module is a multi-purpose cyborg. It is equipped with various modules, allowing it to do basic tasks.
        A Standard Cyborg comes with: -
          -
        • Crowbar
        • -
        • Stun Baton
        • -
        • Health Analyzer
        • -
        • Fire Extinguisher
        • -
        - -

        Engineering Cyborg

        - The Engineering cyborg module comes equipped with various engineering-related tools to help with engineering-related tasks.
        An Engineering Cyborg comes with: -
          -
        • A basic set of engineering tools
        • -
        • Metal Synthesizer
        • -
        • Reinforced Glass Synthesizer
        • -
        • An RCD
        • -
        • Wire Synthesizer
        • -
        • Fire Extinguisher
        • -
        • Built-in Optical Meson Scanners
        • -
        - -

        Mining Cyborg

        - The Mining Cyborg module comes equipped with the latest in mining equipment. They are efficient at mining due to no need for oxygen, but their power cells limit their time in the mines.
        A Mining Cyborg comes with: -
          -
        • Jackhammer
        • -
        • Shovel
        • -
        • Mining Satchel
        • -
        • Built-in Optical Meson Scanners
        • -
        - -

        Security Cyborg

        - The Security Cyborg module is equipped with effective security measures used to apprehend and arrest criminals without harming them a bit.
        A Security Cyborg comes with: -
          -
        • Stun Baton
        • -
        • Handcuffs
        • -
        • Taser
        • -
        - -

        Janitor Cyborg

        - The Janitor Cyborg module is equipped with various cleaning-facilitating devices.
        A Janitor Cyborg comes with: -
          -
        • Mop
        • -
        • Hand Bucket
        • -
        • Cleaning Spray Synthesizer and Spray Nozzle
        • -
        - -

        Service Cyborg

        - The service cyborg module comes ready to serve your human needs. It includes various entertainment and refreshment devices. Occasionally some service cyborgs may have been referred to as "Bros."
        A Service Cyborg comes with: -
          -
        • Shaker
        • -
        • Industrial Dropper
        • -
        • Platter
        • -
        • Beer Synthesizer
        • -
        • Zippo Lighter
        • -
        • Rapid-Service-Fabricator (Produces various entertainment and refreshment objects)
        • -
        • Pen
        • -
        - -

        Cyborg Construction

        - Cyborg construction is a rather easy process, requiring a decent amount of metal and a few other supplies.
        The required materials to make a cyborg are: -
          -
        • Metal
        • -
        • Two Flashes
        • -
        • One Power Cell (Preferably rated to 15000w)
        • -
        • Some electrical wires
        • -
        • One Human Brain
        • -
        • One Man-Machine Interface
        • -
        - Once you have acquired the materials, you can start on construction of your cyborg.
        To construct a cyborg, follow the steps below: -
          -
        1. Start the Exosuit Fabricators constructing all of the cyborg parts
        2. -
        3. While the parts are being constructed, take your human brain, and place it inside the Man-Machine Interface
        4. -
        5. Once you have a Robot Head, place your two flashes inside the eye sockets
        6. -
        7. Once you have your Robot Chest, wire the Robot chest, then insert the power cell
        8. -
        9. Attach all of the Robot parts to the Robot frame
        10. -
        11. Insert the Man-Machine Interface (With the Brain inside) into the Robot Body
        12. -
        13. Congratulations! You have a new cyborg!
        14. -
        - -

        Cyborg Maintenance

        - Occasionally Cyborgs may require maintenance of a couple types, this could include replacing a power cell with a charged one, or possibly maintaining the cyborg's internal wiring. - -

        Replacing a Power Cell

        - Replacing a Power cell is a common type of maintenance for cyborgs. It usually involves replacing the cell with a fully charged one, or upgrading the cell with a larger capacity cell.
        The steps to replace a cell are as follows: -
          -
        1. Unlock the Cyborg's Interface by swiping your ID on it
        2. -
        3. Open the Cyborg's outer panel using a crowbar
        4. -
        5. Remove the old power cell
        6. -
        7. Insert the new power cell
        8. -
        9. Close the Cyborg's outer panel using a crowbar
        10. -
        11. Lock the Cyborg's Interface by swiping your ID on it, this will prevent non-qualified personnel from attempting to remove the power cell
        12. -
        - -

        Exposing the Internal Wiring

        - Exposing the internal wiring of a cyborg is fairly easy to do, and is mainly used for cyborg repairs.
        You can easily expose the internal wiring by following the steps below: -
          -
        1. Follow Steps 1 - 3 of "Replacing a Cyborg's Power Cell"
        2. -
        3. Open the cyborg's internal wiring panel by using a screwdriver to unsecure the panel
        4. -
        - To re-seal the cyborg's internal wiring: -
          -
        1. Use a screwdriver to secure the cyborg's internal panel
        2. -
        3. Follow steps 4 - 6 of "Replacing a Cyborg's Power Cell" to close up the cyborg
        4. -
        - -

        Cyborg Repairs

        - Occasionally a Cyborg may become damaged. This could be in the form of impact damage from a heavy or fast-travelling object, or it could be heat damage from high temperatures, or even lasers or Electromagnetic Pulses (EMPs). - -

        Dents

        - If a cyborg becomes damaged due to impact from heavy or fast-moving objects, it will become dented. Sure, a dent may not seem like much, but it can compromise the structural integrity of the cyborg, possibly causing a critical failure. - Dents in a cyborg's frame are rather easy to repair, all you need is to apply a blowtorch to the dented area, and the high-tech cyborg frame will repair the dent under the heat of the welder. - -

        Excessive Heat Damage

        - If a cyborg becomes damaged due to excessive heat, it is likely that the internal wires will have been damaged. You must replace those wires to ensure that the cyborg remains functioning properly.
        To replace the internal wiring follow the steps below: -
          -
        1. Unlock the Cyborg's Interface by swiping your ID
        2. -
        3. Open the Cyborg's External Panel using a crowbar
        4. -
        5. Remove the Cyborg's Power Cell
        6. -
        7. Using a screwdriver, expose the internal wiring of the Cyborg
        8. -
        9. Replace the damaged wires inside the cyborg
        10. -
        11. Secure the internal wiring cover using a screwdriver
        12. -
        13. Insert the Cyborg's Power Cell
        14. -
        15. Close the Cyborg's External Panel using a crowbar
        16. -
        17. Lock the Cyborg's Interface by swiping your ID
        18. -
        - These repair tasks may seem difficult, but are essential to keep your cyborgs running at peak efficiency. + dat = {" -

        In Case of Emergency

        - In case of emergency, there are a few steps you can take. + + -

        "Rogue" Cyborgs

        - If the cyborgs seem to become "rogue", they may have non-standard laws. In this case, use extreme caution. - To repair the situation, follow these steps: -
          -
        1. Locate the nearest robotics console
        2. -
        3. Determine which cyborgs are "Rogue"
        4. -
        5. Press the lockdown button to immobilize the cyborg
        6. -
        7. Locate the cyborg
        8. -
        9. Expose the cyborg's internal wiring
        10. -
        11. Check to make sure the LawSync and AI Sync lights are lit
        12. -
        13. If they are not lit, pulse the LawSync wire using a multitool to enable the cyborg's LawSync
        14. -
        15. Proceed to a cyborg upload console. Weyland-Yutani usually places these in the same location as AI upload consoles.
        16. -
        17. Use a "Reset" upload moduleto reset the cyborg's laws
        18. -
        19. Proceed to a Robotics Control console
        20. -
        21. Remove the lockdown on the cyborg
        22. -
        + + + -

        As a last resort

        - If all else fails in a case of cyborg-related emergency, there may be only one option. Using a Robotics Control console, you may have to remotely detonate the cyborg. -

        WARNING:

        Do not detonate a borg without an explicit reason for doing so. Cyborgs are expensive pieces of Weyland-Yutani equipment, and you may be punished for detonating them without reason. + - - "} @@ -718,6 +166,7 @@ "} + /obj/item/book/manual/marine_law name = "Marine Law" desc = "A set of guidelines for keeping law and order on military vessels." @@ -982,6 +431,7 @@ "} + /obj/item/book/manual/nuclear name = "Fission Mailed: Nuclear Sabotage 101" icon_state ="bookNuclear" @@ -1033,6 +483,7 @@ "} + /obj/item/book/manual/atmospipes name = "Pipes and You: Getting To Know Your Scary Tools" icon_state = "pipingbook" @@ -1140,6 +591,7 @@ "} + /obj/item/book/manual/evaguide name = "EVA Gear and You: Not Spending All Day Inside" icon_state = "evabook" @@ -1244,10 +696,6 @@ "} - - - - /obj/item/book/manual/orbital_cannon_manual name = "USCM Orbital Bombardment System Manual" icon_state = "bookEngineering" @@ -1299,6 +747,7 @@ "} + /obj/item/book/manual/orbital_cannon_manual/New() . = ..() diff --git a/code/game/objects/items/cards_ids.dm b/code/game/objects/items/cards_ids.dm index ac5136b07a4a..80044e2fab3e 100644 --- a/code/game/objects/items/cards_ids.dm +++ b/code/game/objects/items/cards_ids.dm @@ -67,7 +67,7 @@ /// The name registered_name on the card var/registered_name = "Unknown" - var/registered_ref = null + var/datum/weakref/registered_ref = null var/registered_gid = 0 flags_equip_slot = SLOT_ID @@ -144,6 +144,12 @@ to_chat(usr, "[icon2html(src, usr)] [name]: The current assignment on the card is [assignment]") to_chat(usr, "The blood type on the card is [blood_type].") +/obj/item/card/id/proc/check_biometrics(mob/living/carbon/human/target) + if(registered_ref && (registered_ref != WEAKREF(target))) + return FALSE + if(target.real_name != registered_name) + return FALSE + return TRUE /obj/item/card/id/data name = "identification holo-badge" @@ -237,11 +243,13 @@ name = "\improper CMB marshal gold badge" desc = "A coveted gold badge signifying that the wearer is one of the few CMB Marshals patroling the outer rim. It is a sign of justice, authority, and protection. Protecting those who can't. This badge represents a commitment to a sworn oath always kept." icon_state = "cmbmar" + paygrade = PAY_SHORT_CMBM /obj/item/card/id/deputy name = "\improper CMB deputy silver badge" desc = "The silver badge which represents that the wearer is a CMB Deputy. It is a sign of justice, authority, and protection. Protecting those who can't. This badge represents a commitment to a sworn oath always kept." icon_state = "cmbdep" + paygrade = PAY_SHORT_CMBD /obj/item/card/id/general name = "general officer holo-badge" @@ -263,79 +271,51 @@ /obj/item/card/id/provost/New() access = get_access(ACCESS_LIST_MARINE_ALL) -/obj/item/card/id/syndicate +/obj/item/card/id/adaptive name = "agent card" access = list(ACCESS_ILLEGAL_PIRATE) - var/registered_user=null -/obj/item/card/id/syndicate/New(mob/user as mob) +/obj/item/card/id/adaptive/New(mob/user as mob) ..() if(!QDELETED(user)) // Runtime prevention on laggy starts or where users log out because of lag at round start. - registered_name = ishuman(user) ? user.real_name : user.name - else - registered_name = "Agent Card" + registered_name = ishuman(user) ? user.real_name : "Unknown" assignment = "Agent" name = "[registered_name]'s ID Card ([assignment])" -/obj/item/card/id/syndicate/afterattack(obj/item/O as obj, mob/user as mob, proximity) - if(!proximity) return +/obj/item/card/id/adaptive/afterattack(obj/item/O as obj, mob/user as mob, proximity) + if(!proximity) + return if(istype(O, /obj/item/card/id)) - var/obj/item/card/id/I = O - src.access |= I.access - if(istype(user, /mob/living) && user.mind) - to_chat(usr, SPAN_NOTICE(" The card's microscanners activate as you pass it over the ID, copying its access.")) - -/obj/item/card/id/syndicate/attack_self(mob/user as mob) - if(!src.registered_name) - //Stop giving the players unsanitized unputs! You are giving ways for players to intentionally crash clients! -Nodrak - var t = reject_bad_name(input(user, "What name would you like to put on this card?", "Agent card name", ishuman(user) ? user.real_name : user.name)) - if(!t) //Same as mob/new_player/prefrences.dm - alert("Invalid name.") - return - src.registered_name = t - - var u = strip_html(input(user, "What occupation would you like to put on this card?\nNote: This will not grant any access levels other than Maintenance.", "Agent card job assignment", "Agent")) - if(!u) - alert("Invalid assignment.") - src.registered_name = "" - return - src.assignment = u - src.name = "[src.registered_name]'s ID Card ([src.assignment])" - to_chat(user, SPAN_NOTICE(" You successfully forge the ID card.")) - registered_user = user - else if(!registered_user || registered_user == user) - - if(!registered_user) registered_user = user // - - switch(alert("Would you like to display the ID, or retitle it?","Choose.","Rename","Show")) - if("Rename") - var t = strip_html(input(user, "What name would you like to put on this card?", "Agent card name", ishuman(user) ? user.real_name : user.name),26) - if(!t || t == "Unknown" || t == "floor" || t == "wall" || t == "r-wall") //Same as mob/new_player/prefrences.dm - alert("Invalid name.") - return - src.registered_name = t - - var u = strip_html(input(user, "What occupation would you like to put on this card?\nNote: This will not grant any access levels other than Maintenance.", "Agent card job assignment", "Assistant")) - if(!u) - alert("Invalid assignment.") - return - src.assignment = u - src.name = "[src.registered_name]'s ID Card ([src.assignment])" - to_chat(user, SPAN_NOTICE(" You successfully forge the ID card.")) + var/obj/item/card/id/target_id = O + access |= target_id.access + if(ishuman(user)) + to_chat(user, SPAN_NOTICE("The card's microscanners activate as you pass it over the ID, copying its access.")) + +/obj/item/card/id/adaptive/attack_self(mob/user as mob) + switch(alert("Would you like to display the ID, or retitle it?","Choose.","Rename","Show")) + if("Rename") + var/new_name = strip_html(input(user, "What name would you like to put on this card?", "Agent card name", ishuman(user) ? user.real_name : user.name),26) + if(!new_name || new_name == "Unknown" || new_name == "floor" || new_name == "wall" || new_name == "r-wall") //Same as mob/new_player/prefrences.dm + to_chat(user, SPAN_WARNING("Invalid Name.")) return - if("Show") - ..() - else - ..() + var/new_job = strip_html(input(user, "What occupation would you like to put on this card?\nNote: This will not grant any access levels other than Maintenance.", "Agent card job assignment", "Assistant")) + if(!new_job) + to_chat(user, SPAN_WARNING("Invalid Assignment.")) + return + var/new_rank = strip_html(input(user, "What paygrade do would you like to put on this card?\nNote: This must be the shorthand version of the grade, I.E CIV for Civillian or ME1 for Marine Private", "Agent card paygrade assignment", PAY_SHORT_CIV)) + if(!new_rank || !(new_rank in GLOB.paygrades)) + to_chat(user, SPAN_WARNING("Invalid Paygrade.")) + return -/obj/item/card/id/syndicate_command - name = "syndicate ID card" - desc = "An ID straight from the Syndicate." - registered_name = "Syndicate" - assignment = "Syndicate Overlord" - access = list(ACCESS_ILLEGAL_PIRATE) + registered_name = new_name + assignment = new_job + name = "[registered_name]'s ID Card ([assignment])" + paygrade = new_rank + to_chat(user, SPAN_NOTICE("You successfully forge the ID card.")) + return + ..() /obj/item/card/id/captains_spare name = "captain's spare ID" @@ -411,7 +391,7 @@ /obj/item/dogtag/attackby(obj/item/I, mob/user) if(istype(I, /obj/item/dogtag)) var/obj/item/dogtag/D = I - to_chat(user, SPAN_NOTICE("You join the [fallen_names.len>1 ? "tags":"two tags"] together.")) + to_chat(user, SPAN_NOTICE("You join the [length(fallen_names)>1 ? "tags":"two tags"] together.")) name = "information dog tags" if(D.fallen_names) fallen_names += D.fallen_names @@ -424,11 +404,11 @@ /obj/item/dogtag/get_examine_text(mob/user) . = ..() - if(ishuman(user) && fallen_names && fallen_names.len) - var/msg = "There [fallen_names.len>1 ? \ - "are [fallen_names.len] tags.
        They read":\ + if(ishuman(user) && LAZYLEN(fallen_names)) + var/msg = "There [length(fallen_names)>1 ? \ + "are [length(fallen_names)] tags.
        They read":\ "is one ID tag.
        It reads"]:" - for (var/i=1 to fallen_names.len) + for (var/i=1 to length(fallen_names)) msg += "
        [i]. \"[fallen_names[i]] - [fallen_assgns[i]] - [fallen_blood_types[i]]\"" . += SPAN_NOTICE("[msg]") diff --git a/code/game/objects/items/circuitboards/airlock.dm b/code/game/objects/items/circuitboards/airlock.dm index 4de97a8e20f3..07add70280ca 100644 --- a/code/game/objects/items/circuitboards/airlock.dm +++ b/code/game/objects/items/circuitboards/airlock.dm @@ -48,7 +48,7 @@ for (var/acc in accesses) var/aname = get_access_desc(acc) - if (!conf_access || !conf_access.len || !(acc in conf_access)) + if (!LAZYLEN(conf_access) || !(acc in conf_access)) t1 += "
        [aname]
        " else if(one_access) t1 += "[aname]
        " @@ -58,7 +58,7 @@ t1 += text("

        Close

        \n", src) show_browser(user, t1, "Access Control", "airlock_electronics") - onclose(user, "airlock") + onclose(user, "airlock_electronics") /obj/item/circuitboard/airlock/Topic(href, href_list) @@ -107,7 +107,7 @@ conf_access += req else conf_access -= req - if (!conf_access.len) + if (!length(conf_access)) conf_access = null diff --git a/code/game/objects/items/circuitboards/computer.dm b/code/game/objects/items/circuitboards/computer.dm index 08dcfc6964a6..43215faf0fbb 100644 --- a/code/game/objects/items/circuitboards/computer.dm +++ b/code/game/objects/items/circuitboards/computer.dm @@ -26,6 +26,12 @@ if (..(C)) network = C.network +/obj/item/circuitboard/computer/cameras/tv + name = "Circuit board (Television Set)" + build_path = /obj/structure/machinery/computer/cameras/wooden_tv/broadcast + network = list(CAMERA_NET_CORRESPONDENT) + req_access = list() + /obj/item/circuitboard/computer/cameras/engineering name = "Circuit board (Engineering Camera Monitor)" build_path = /obj/structure/machinery/computer/cameras/engineering @@ -279,7 +285,7 @@ return var/list/tempnetwork = splittext(input, ",") tempnetwork = difflist(tempnetwork,GLOB.RESTRICTED_CAMERA_NETWORKS,1) - if(tempnetwork.len < 1) + if(length(tempnetwork) < 1) to_chat(usr, "No network found please hang up and try your call again.") return network = tempnetwork diff --git a/code/game/objects/items/circuitboards/mecha.dm b/code/game/objects/items/circuitboards/mecha.dm index 60b5d7a0c952..40646de77d81 100644 --- a/code/game/objects/items/circuitboards/mecha.dm +++ b/code/game/objects/items/circuitboards/mecha.dm @@ -1,7 +1,4 @@ - -///////// Circuitboards - -/obj/item/circuitboard/mecha +/obj/item/circuitboard/exosuit name = "Exosuit Circuit board" icon_state = "std_mod" force = 5 @@ -10,71 +7,34 @@ throw_speed = SPEED_VERY_FAST throw_range = 15 -/obj/item/circuitboard/mecha/ripley - - -/obj/item/circuitboard/mecha/ripley/peripherals - name = "Circuit board (Ripley Peripherals Control module)" - icon_state = "mcontroller" - -/obj/item/circuitboard/mecha/ripley/main - name = "Circuit board (Ripley Central Control module)" - icon_state = "mainboard" - -/obj/item/circuitboard/mecha/gygax - - -/obj/item/circuitboard/mecha/gygax/peripherals - name = "Circuit board (Gygax Peripherals Control module)" - icon_state = "mcontroller" - -/obj/item/circuitboard/mecha/gygax/targeting - name = "Circuit board (Gygax Weapon Control and Targeting module)" - icon_state = "mcontroller" - - -/obj/item/circuitboard/mecha/gygax/main - name = "Circuit board (Gygax Central Control module)" - icon_state = "mainboard" - -/obj/item/circuitboard/mecha/durand - - -/obj/item/circuitboard/mecha/durand/peripherals - name = "Circuit board (Durand Peripherals Control module)" - icon_state = "mcontroller" - -/obj/item/circuitboard/mecha/durand/targeting - name = "Circuit board (Durand Weapon Control and Targeting module)" - icon_state = "mcontroller" - - -/obj/item/circuitboard/mecha/durand/main - name = "Circuit board (Durand Central Control module)" - icon_state = "mainboard" - -/obj/item/circuitboard/mecha/honker - - -/obj/item/circuitboard/mecha/honker/peripherals - name = "Circuit board (H.O.N.K Peripherals Control module)" - icon_state = "mcontroller" - -/obj/item/circuitboard/mecha/honker/targeting - name = "Circuit board (H.O.N.K Weapon Control and Targeting module)" - icon_state = "mcontroller" - -/obj/item/circuitboard/mecha/honker/main - name = "Circuit board (H.O.N.K Central Control module)" - icon_state = "mainboard" - -/obj/item/circuitboard/mecha/odysseus - - -/obj/item/circuitboard/mecha/odysseus/peripherals - name = "Circuit board (Odysseus Peripherals Control module)" - icon_state = "mcontroller" - -/obj/item/circuitboard/mecha/odysseus/main - name = "Circuit board (Odysseus Central Control module)" +// that's the two possible exosuit boards icon_state. +/obj/item/circuitboard/exosuit/main icon_state = "mainboard" +/obj/item/circuitboard/exosuit/peripherals + icon_state = "mcontroller" + +// P-1000 Older version of the P-5000 +/obj/item/circuitboard/exosuit/main/work_loader + name = "Circuit board (P-1000 Central Control module)" +/obj/item/circuitboard/exosuit/peripherals/work_loader + name = "Circuit board (P-1000 Peripherals Control module)" + +// MAX (Mobile Assault Exo-Warrior)look like a gygax from afar +/obj/item/circuitboard/exosuit/main/max + name = "Circuit board (Max Central Control module)" +/obj/item/circuitboard/exosuit/peripherals/max + name = "Circuit board (Max Peripherals Control module)" +/obj/item/circuitboard/exosuit/peripherals/max/targeting + name = "Circuit board (Max Weapon Control and Targeting module)" + +// MOX (mobile offensive exo-warrior) look like a durand from afar. +/obj/item/circuitboard/exosuit/main/mox + name = "Circuit board (Mox Central Control module)" +/obj/item/circuitboard/exosuit/peripherals/mox + name = "Circuit board (Mox Peripherals Control module)" + +// Alice it's an exosuit featured in alien versus predator 2 doesn't look like an odysseus but is a name in CM lore. +/obj/item/circuitboard/exosuit/main/alice + name = "Circuit board (Alice Central Control module)" +/obj/item/circuitboard/exosuit/peripherals/alice + name = "Circuit board (Alice Peripherals Control module)" diff --git a/code/game/objects/items/circuitboards/robot_modules.dm b/code/game/objects/items/circuitboards/robot_modules.dm index 04fcff10fa2b..fc0b2892a111 100644 --- a/code/game/objects/items/circuitboards/robot_modules.dm +++ b/code/game/objects/items/circuitboards/robot_modules.dm @@ -2,365 +2,14 @@ name = "robot module" icon_state = "std_mod" flags_atom = FPRINT|CONDUCT - var/channels = list() - var/list/modules = list() - var/obj/item/emag = null - var/obj/item/robot/upgrade/jetpack = null - var/list/stacktypes - -/obj/item/circuitboard/robot_module/emp_act(severity) - . = ..() - if(modules) - for(var/obj/O in modules) - O.emp_act(severity) - if(emag) - emag.emp_act(severity) - - -/obj/item/circuitboard/robot_module/Initialize() - . = ..() -// src.modules += new /obj/item/device/flashlight(src) // Replaced by verb and integrated light which uses power. - src.modules += new /obj/item/device/flash(src) - src.emag = new /obj/item/toy/sword(src) - src.emag.name = "Placeholder Emag Item" -// src.jetpack = new /obj/item/toy/sword(src) -// src.jetpack.name = "Placeholder Upgrade Item" - -/obj/item/circuitboard/robot_module/Destroy() - . = ..() - QDEL_NULL(emag) - QDEL_NULL(jetpack) - QDEL_NULL_LIST(modules) - -/obj/item/circuitboard/robot_module/proc/respawn_consumable(mob/living/silicon/robot/R) - - if(!stacktypes || !stacktypes.len) return - - for(var/T in stacktypes) - var/O = locate(T) in src.modules - var/obj/item/stack/S = O - - if(!S) - src.modules -= null - S = new T(src) - src.modules += S - S.amount = 1 - - if(S && S.amount < stacktypes[T]) - S.amount++ - -/obj/item/circuitboard/robot_module/proc/rebuild()//Rebuilds the list so it's possible to add/remove items from the module - var/list/temp_list = modules - modules = list() - for(var/obj/O in temp_list) - if(O) - modules += O - -/obj/item/circuitboard/robot_module/proc/add_languages(mob/living/silicon/robot/R) - //full set of languages - R.add_language(LANGUAGE_RUSSIAN, 1) - R.add_language(LANGUAGE_JAPANESE, 1) - - -/obj/item/circuitboard/robot_module/standard - name = "standard robot module" - -/obj/item/circuitboard/robot_module/standard/New() - src.modules += new /obj/item/device/flashlight(src) - src.modules += new /obj/item/device/flash(src) - src.modules += new /obj/item/tool/extinguisher(src) - src.modules += new /obj/item/tool/wrench(src) - src.modules += new /obj/item/tool/crowbar(src) - src.modules += new /obj/item/device/healthanalyzer(src) - src.modules += new /obj/item/robot/stun(src) - src.emag = new /obj/item/weapon/energy/sword(src) - return /obj/item/circuitboard/robot_module/surgeon name = "surgeon robot module" - stacktypes = list( - /obj/item/stack/medical/advanced/bruise_pack = 5, - /obj/item/stack/nanopaste = 5, - ) - -/obj/item/circuitboard/robot_module/surgeon/Initialize() - . = ..() - src.modules += new /obj/item/device/flashlight(src) - src.modules += new /obj/item/device/flash(src) - src.modules += new /obj/item/device/healthanalyzer(src) - src.modules += new /obj/item/reagent_container/borghypo(src) - src.modules += new /obj/item/tool/surgery/scalpel(src) - src.modules += new /obj/item/tool/surgery/hemostat(src) - src.modules += new /obj/item/tool/surgery/retractor(src) - src.modules += new /obj/item/tool/surgery/cautery(src) - src.modules += new /obj/item/tool/surgery/bonegel(src) - src.modules += new /obj/item/tool/surgery/FixOVein(src) - src.modules += new /obj/item/tool/surgery/bonesetter(src) - src.modules += new /obj/item/tool/surgery/circular_saw(src) - src.modules += new /obj/item/tool/surgery/surgicaldrill(src) - src.modules += new /obj/item/tool/extinguisher/mini(src) - src.modules += new /obj/item/stack/medical/advanced/bruise_pack(src) - src.modules += new /obj/item/stack/nanopaste(src) - src.modules += new /obj/item/tool/weldingtool/largetank(src) - src.modules += new /obj/item/tool/crowbar(src) - src.modules += new /obj/item/robot/stun(src) - - src.emag = new /obj/item/reagent_container/spray(src) - - src.emag.reagents.add_reagent("pacid", 250) - src.emag.name = "Polyacid spray" - -/obj/item/circuitboard/robot_module/surgeon/respawn_consumable(mob/living/silicon/robot/R) - if(src.emag) - var/obj/item/reagent_container/spray/PS = src.emag - PS.reagents.add_reagent("pacid", 2) - ..() - /obj/item/circuitboard/robot_module/medic name = "medic robot module" - stacktypes = list( - /obj/item/stack/medical/ointment = 15, - /obj/item/stack/medical/advanced/bruise_pack = 15, - /obj/item/stack/medical/splint = 15, - ) - -/obj/item/circuitboard/robot_module/medic/Initialize() - . = ..() - src.modules += new /obj/item/device/flashlight(src) - src.modules += new /obj/item/device/flash(src) - src.modules += new /obj/item/robot/sight/hud/med(src) - src.modules += new /obj/item/device/healthanalyzer(src) - src.modules += new /obj/item/device/reagent_scanner/adv(src) - src.modules += new /obj/item/roller_holder(src) - src.modules += new /obj/item/stack/medical/ointment(src) - src.modules += new /obj/item/stack/medical/advanced/bruise_pack(src) - src.modules += new /obj/item/stack/medical/splint(src) - src.modules += new /obj/item/reagent_container/borghypo(src) - src.modules += new /obj/item/reagent_container/glass/beaker/large(src) - src.modules += new /obj/item/reagent_container/robodropper(src) - src.modules += new /obj/item/reagent_container/syringe(src) - src.modules += new /obj/item/tool/extinguisher/mini(src) - src.modules += new /obj/item/reagent_container/spray/cleaner(src) - src.modules += new /obj/item/tool/weldingtool/largetank(src) - src.modules += new /obj/item/tool/crowbar(src) - src.modules += new /obj/item/robot/stun(src) - - src.emag = new /obj/item/reagent_container/spray(src) - - src.emag.reagents.add_reagent("pacid", 250) - src.emag.name = "Polyacid spray" - -/obj/item/circuitboard/robot_module/medic/respawn_consumable(mob/living/silicon/robot/R) - var/obj/item/reagent_container/syringe/S = locate() in src.modules - if(S.mode == 2) - S.reagents.clear_reagents() - S.mode = initial(S.mode) - S.desc = initial(S.desc) - S.update_icon() - - var/obj/item/reagent_container/spray/cleaner/C = locate() in src.modules - C.reagents.add_reagent("cleaner", C.volume) - - if(src.emag) - var/obj/item/reagent_container/spray/PS = src.emag - PS.reagents.add_reagent("pacid", 2) - - ..() - /obj/item/circuitboard/robot_module/engineering name = "engineering robot module" - - stacktypes = list( - /obj/item/stack/sheet/metal = 50, - /obj/item/stack/sheet/glass = 50, - /obj/item/stack/sheet/glass/reinforced = 50, - /obj/item/stack/cable_coil = 50, - /obj/item/stack/rods = 50, - /obj/item/stack/tile/plasteel = 20, - ) - -/obj/item/circuitboard/robot_module/engineering/Initialize() - . = ..() - src.modules += new /obj/item/device/flashlight(src) - src.modules += new /obj/item/device/flash(src) - src.modules += new /obj/item/robot/sight/meson(src) - src.modules += new /obj/item/tool/extinguisher(src) - src.modules += new /obj/item/device/rcd/borg(src) - src.modules += new /obj/item/tool/weldingtool/largetank(src) - src.modules += new /obj/item/tool/screwdriver(src) - src.modules += new /obj/item/tool/wrench(src) - src.modules += new /obj/item/tool/crowbar(src) - src.modules += new /obj/item/tool/wirecutters(src) - src.modules += new /obj/item/device/multitool(src) - src.modules += new /obj/item/device/t_scanner(src) - src.modules += new /obj/item/device/analyzer(src) - src.modules += new /obj/item/device/gripper(src) - src.modules += new /obj/item/device/matter_decompiler(src) - src.modules += new /obj/item/device/lightreplacer(src) - src.modules += new /obj/item/robot/stun(src) - - for(var/T in stacktypes) - var/obj/item/stack/sheet/W = new T(src) - W.amount = stacktypes[T] - src.modules += W - -/obj/item/circuitboard/robot_module/engineering/respawn_consumable(mob/living/silicon/robot/R) - var/obj/item/device/lightreplacer/L = locate() in src.modules - L.uses = L.max_uses - - ..() - -/obj/item/circuitboard/robot_module/security - name = "security robot module" - -/obj/item/circuitboard/robot_module/security/Initialize() - . = ..() - src.modules += new /obj/item/device/flashlight(src) - src.modules += new /obj/item/device/flash(src) - src.modules += new /obj/item/robot/sight/hud/sec(src) - src.modules += new /obj/item/handcuffs/cyborg(src) - src.modules += new /obj/item/robot/stun(src) - src.modules += new /obj/item/tool/crowbar(src) -// src.modules += new /obj/item/weapon/gun/energy/taser/cyborg(src) -// src.emag = new /obj/item/weapon/gun/energy/laser/cyborg(src) - -/obj/item/circuitboard/robot_module/security/respawn_consumable(mob/living/silicon/robot/R) - var/obj/item/device/flash/F = locate() in src.modules - if(F.broken) - F.broken = 0 - F.flashes_stored = F.max_flashes_stored - F.icon_state = "flash" - else if(F.flashes_stored > F.max_flashes_stored) - F.flashes_stored++ - // var/obj/item/weapon/gun/energy/taser/cyborg/T = locate() in src.modules - // if(T.power_supply.charge < T.power_supply.maxcharge) - // T.power_supply.give(T.charge_cost) - // T.update_icon() - // else - // T.charge_tick = 0 - /obj/item/circuitboard/robot_module/janitor name = "janitorial robot module" - -/obj/item/circuitboard/robot_module/janitor/Initialize() - . = ..() - src.modules += new /obj/item/device/flashlight(src) - src.modules += new /obj/item/device/flash(src) - src.modules += new /obj/item/tool/soap/nanotrasen(src) - src.modules += new /obj/item/storage/bag/trash(src) - src.modules += new /obj/item/tool/mop(src) - src.modules += new /obj/item/device/lightreplacer(src) - src.modules += new /obj/item/tool/crowbar(src) - src.modules += new /obj/item/robot/stun(src) - src.emag = new /obj/item/reagent_container/spray(src) - - src.emag.reagents.add_reagent("cleaner", 250) - src.emag.name = "space cleaner" - -/obj/item/circuitboard/robot_module/janitor/respawn_consumable(mob/living/silicon/robot/R) - var/obj/item/device/lightreplacer/LR = locate() in src.modules - LR.Charge(R) - if(src.emag) - var/obj/item/reagent_container/spray/S = src.emag - S.reagents.add_reagent("cleaner", 2) - /obj/item/circuitboard/robot_module/butler name = "service robot module" - -/obj/item/circuitboard/robot_module/butler/Initialize() - . = ..() - src.modules += new /obj/item/device/flashlight(src) - src.modules += new /obj/item/device/flash(src) - src.modules += new /obj/item/reagent_container/food/drinks/cans/beer(src) - src.modules += new /obj/item/reagent_container/food/condiment/enzyme(src) - src.modules += new /obj/item/tool/crowbar(src) - src.modules += new /obj/item/robot/stun(src) - - var/obj/item/device/rsf/M = new /obj/item/device/rsf(src) - M.stored_matter = 30 - src.modules += M - - src.modules += new /obj/item/reagent_container/robodropper(src) - - var/obj/item/tool/lighter/zippo/L = new /obj/item/tool/lighter/zippo(src) - L.heat_source = 1000 - src.modules += L - - src.modules += new /obj/item/reagent_container/food/drinks/shaker(src) - -/obj/item/circuitboard/robot_module/butler/add_languages(mob/living/silicon/robot/R) - //full set of languages - R.add_language(LANGUAGE_JAPANESE, 1) - -/obj/item/circuitboard/robot_module/butler/respawn_consumable(mob/living/silicon/robot/R) - var/obj/item/reagent_container/food/condiment/enzyme/E = locate() in src.modules - E.reagents.add_reagent("enzyme", 2) - if(src.emag) - var/obj/item/reagent_container/food/drinks/cans/beer/B = src.emag - B.reagents.add_reagent("beer2", 2) - -/obj/item/circuitboard/robot_module/syndicate - name = "syndicate robot module" - -/obj/item/circuitboard/robot_module/syndicate/Initialize() - . = ..() - src.modules += new /obj/item/device/flashlight(src) - src.modules += new /obj/item/device/flash(src) - src.modules += new /obj/item/weapon/energy/sword(src) - -/obj/item/circuitboard/robot_module/drone - name = "drone module" - stacktypes = list( - /obj/item/stack/sheet/wood = 1, - /obj/item/stack/sheet/mineral/plastic = 1, - /obj/item/stack/sheet/glass/reinforced = 5, - /obj/item/stack/tile/wood = 5, - /obj/item/stack/rods = 15, - /obj/item/stack/tile/plasteel = 15, - /obj/item/stack/sheet/metal = 20, - /obj/item/stack/sheet/glass = 20, - /obj/item/stack/cable_coil = 30, - ) - -/obj/item/circuitboard/robot_module/drone/Initialize() - . = ..() - src.modules += new /obj/item/tool/weldingtool(src) - src.modules += new /obj/item/tool/screwdriver(src) - src.modules += new /obj/item/tool/wrench(src) - src.modules += new /obj/item/tool/crowbar(src) - src.modules += new /obj/item/tool/wirecutters(src) - src.modules += new /obj/item/device/multitool(src) - src.modules += new /obj/item/device/lightreplacer(src) - src.modules += new /obj/item/device/gripper(src) - src.modules += new /obj/item/device/matter_decompiler(src) - src.modules += new /obj/item/reagent_container/spray/cleaner/drone(src) - - src.emag = new /obj/item/tool/pickaxe/plasmacutter(src) - src.emag.name = "Plasma Cutter" - - for(var/T in stacktypes) - var/obj/item/stack/sheet/W = new T(src) - W.amount = stacktypes[T] - src.modules += W - -/obj/item/circuitboard/robot_module/drone/add_languages(mob/living/silicon/robot/R) - return //not much ROM to spare in that tiny microprocessor! - -/obj/item/circuitboard/robot_module/drone/respawn_consumable(mob/living/silicon/robot/R) - var/obj/item/reagent_container/spray/cleaner/C = locate() in src.modules - C.reagents.add_reagent("cleaner", 3) - - var/obj/item/device/lightreplacer/LR = locate() in src.modules - LR.Charge(R) - - ..() - return - -//checks whether this item is a module of the robot it is located in. -/obj/item/proc/is_robot_module() - if (!isrobot(src.loc)) - return 0 - - var/mob/living/silicon/robot/R = src.loc - - return (src in R.module.modules) diff --git a/code/game/objects/items/devices/RCD.dm b/code/game/objects/items/devices/RCD.dm index 55965533c48b..00e569800314 100644 --- a/code/game/objects/items/devices/RCD.dm +++ b/code/game/objects/items/devices/RCD.dm @@ -86,7 +86,7 @@ RCD /obj/item/device/rcd/afterattack(atom/A, mob/user, proximity) if(!proximity) return - if(disabled && !isrobot(user)) + if(disabled) return 0 if(istype(A,/area/shuttle) || istype(A,/turf/open/space/transit)) return 0 @@ -180,20 +180,6 @@ RCD /obj/item/device/rcd/proc/checkResource(amount, mob/user) return stored_matter >= amount -/obj/item/device/rcd/borg/useResource(amount, mob/user) - if(!isrobot(user)) - return 0 - return user:cell:use(amount * 30) - -/obj/item/device/rcd/borg/checkResource(amount, mob/user) - if(!isrobot(user)) - return 0 - return user:cell:charge >= (amount * 30) - -/obj/item/device/rcd/borg/New() - ..() - desc = "A device used to rapidly build walls/floor." - canRwall = 1 /obj/item/ammo_rcd name = "compressed matter cartridge" diff --git a/code/game/objects/items/devices/RSF.dm b/code/game/objects/items/devices/RSF.dm index ac87cd6dfc86..29f84c7c6d0c 100644 --- a/code/game/objects/items/devices/RSF.dm +++ b/code/game/objects/items/devices/RSF.dm @@ -68,48 +68,31 @@ RSF if(!proximity) return - if(istype(user,/mob/living/silicon/robot)) - var/mob/living/silicon/robot/R = user - if(R.stat || !R.cell || R.cell.charge <= 0) - return - else - if(stored_matter <= 0) - return + if(stored_matter <= 0) + return if(!istype(A, /obj/structure/surface/table) && !istype(A, /turf/open/floor)) return playsound(src.loc, 'sound/machines/click.ogg', 25, 1) - var/used_energy = 0 var/obj/product switch(mode) if(1) product = new /obj/item/spacecash/c10() - used_energy = 200 if(2) product = new /obj/item/reagent_container/food/drinks/drinkingglass() - used_energy = 50 if(3) product = new /obj/item/paper() - used_energy = 10 if(4) product = new /obj/item/tool/pen() - used_energy = 50 if(5) product = new /obj/item/storage/pill_bottle/dice() - used_energy = 200 if(6) product = new /obj/item/clothing/mask/cigarette() - used_energy = 10 to_chat(user, "Dispensing [product ? product : "product"]...") product.forceMove(get_turf(A)) - if(isrobot(user)) - var/mob/living/silicon/robot/R = user - if(R.cell) - R.cell.use(used_energy) - else - stored_matter-- - to_chat(user, "The RSF now holds [stored_matter]/30 fabrication-units.") + stored_matter-- + to_chat(user, "The RSF now holds [stored_matter]/30 fabrication-units.") diff --git a/code/game/objects/items/devices/aicard.dm b/code/game/objects/items/devices/aicard.dm index 6dad79e4af5a..cc36eb9be02c 100644 --- a/code/game/objects/items/devices/aicard.dm +++ b/code/game/objects/items/devices/aicard.dm @@ -6,103 +6,3 @@ w_class = SIZE_SMALL flags_atom = FPRINT|CONDUCT flags_equip_slot = SLOT_WAIST - var/flush = null - - - -/obj/item/device/aicard/attack(mob/living/silicon/ai/M as mob, mob/user as mob) - if(!isAI(M))//If target is not an AI. - return ..() - - M.attack_log += text("\[[time_stamp()]\] Has been carded with [src.name] by [user.name] ([user.ckey])") - M.last_damage_data = create_cause_data(initial(name), user) - user.attack_log += text("\[[time_stamp()]\] Used the [src.name] to card [M.name] ([M.ckey])") - msg_admin_attack("[user.name] ([user.ckey]) used the [src.name] to card [M.name] ([M.ckey]) in [get_area(user)] ([user.x],[user.y],[user.z]).", user.x, user.y, user.z) - - transfer_ai("AICORE", "AICARD", M, user) - return - -/obj/item/device/aicard/attack(mob/living/silicon/decoy/M as mob, mob/user as mob) - if (!istype (M, /mob/living/silicon/decoy)) - return ..() - else - M.death() - to_chat(user, "ERROR ERROR ERROR") - -/obj/item/device/aicard/attack_self(mob/user) - ..() - - if (!in_range(src, user)) - return - - user.set_interaction(src) - var/dat = "Intelicard
        " - for(var/mob/living/silicon/ai/A in src) - dat += "Stored AI: [A.name]
        System integrity: [(A.health+100)/2]%
        " - - if (A.stat == 2) - dat += "AI nonfunctional" - else - if (!src.flush) - dat += {"Wipe AI"} - else - dat += "Wipe in progress" - dat += "
        " - dat += {"[A.control_disabled ? "Enable" : "Disable"] Wireless Activity"} - dat += "
        " - dat += "Subspace Transceiver is: [A.aiRadio.disabledAi ? "Disabled" : "Enabled"]" - dat += "
        " - dat += {"[A.aiRadio.disabledAi ? "Enable" : "Disable"] Subspace Transceiver"} - dat += "
        " - dat += {" Close"} - user << browse(dat, "window=aicard") - onclose(user, "aicard") - return - -/obj/item/device/aicard/Topic(href, href_list) - . = ..() - if(.) - return - var/mob/U = usr - if (!in_range(src, U)||U.interactee!=src)//If they are not in range of 1 or less or their machine is not the card (ie, clicked on something else). - close_browser(U, "aicard") - U.unset_interaction() - return - - add_fingerprint(U) - U.set_interaction(src) - - switch(href_list["choice"])//Now we switch based on choice. - if ("Close") - close_browser(U, "aicard") - U.unset_interaction() - return - - if ("Radio") - for(var/mob/living/silicon/ai/A in src) - A.aiRadio.disabledAi = !A.aiRadio.disabledAi - if ("Wipe") - var/confirm = alert("Are you sure you want to wipe this card's memory? This cannot be undone once started.", "Confirm Wipe", "Yes", "No") - if(confirm == "Yes") - if(QDELETED(src)||!in_range(src, U)||U.interactee!=src) - close_browser(U, "aicard") - U.unset_interaction() - return - else - flush = 1 - for(var/mob/living/silicon/ai/A in src) - to_chat(A, "Your core files are being wiped!") - while (A.stat != 2) - A.apply_damage(2, OXY) - A.updatehealth() - sleep(10) - flush = 0 - - if ("Wireless") - for(var/mob/living/silicon/ai/A in src) - A.control_disabled = !A.control_disabled - if (A.control_disabled) - overlays -= image('icons/obj/items/robot_component.dmi', "aicard-on") - else - overlays += image('icons/obj/items/robot_component.dmi', "aicard-on") - attack_self(U) diff --git a/code/game/objects/items/devices/autopsy_scanner.dm b/code/game/objects/items/devices/autopsy_scanner.dm index 6703ead88147..581336f85337 100644 --- a/code/game/objects/items/devices/autopsy_scanner.dm +++ b/code/game/objects/items/devices/autopsy_scanner.dm @@ -46,7 +46,7 @@ return W /obj/item/device/autopsy_scanner/proc/add_data(obj/limb/O) - if(!O.autopsy_data.len && !O.trace_chemicals.len) return + if(!length(O.autopsy_data) && !length(O.trace_chemicals)) return for(var/V in O.autopsy_data) var/datum/autopsy_data/W = O.autopsy_data[V] @@ -133,7 +133,7 @@ if(30 to 1000) damage_desc = "severe" - if(!total_score) total_score = D.organs_scanned.len + if(!total_score) total_score = length(D.organs_scanned) scan_data += "Weapon #[n]
        " if(damaging_weapon) @@ -149,7 +149,7 @@ n++ - if(chemtraces.len) + if(length(chemtraces)) scan_data += "Trace Chemicals:
        " for(var/chemID in chemtraces) scan_data += chemID diff --git a/code/game/objects/items/devices/binoculars.dm b/code/game/objects/items/devices/binoculars.dm index a9b7706bcfb7..5da4704e0e78 100644 --- a/code/game/objects/items/devices/binoculars.dm +++ b/code/game/objects/items/devices/binoculars.dm @@ -123,7 +123,7 @@ to_chat(user, SPAN_WARNING("INVALID TARGET: target must be on the surface.")) return FALSE if(user.sight & SEE_TURFS) - var/list/turf/path = getline2(user, targeted_atom, include_from_atom = FALSE) + var/list/turf/path = get_line(user, targeted_atom, include_start_atom = FALSE) for(var/turf/T in path) if(T.opacity) to_chat(user, SPAN_WARNING("There is something in the way of the laser!")) @@ -354,13 +354,16 @@ /obj/item/device/binoculars/range/designator/scout name = "scout laser designator" desc = "An improved laser designator, issued to USCM scouts, with two modes: target marking for CAS with IR laser and rangefinding. Ctrl + Click turf to target something. Ctrl + Click designator to stop lasing. Alt + Click designator to switch modes." + unacidable = TRUE + indestructible = TRUE cooldown_duration = 80 target_acquisition_delay = 30 /obj/item/device/binoculars/range/designator/spotter name = "spotter's laser designator" desc = "A specially-designed laser designator, issued to USCM spotters, with two modes: target marking for CAS with IR laser and rangefinding. Ctrl + Click turf to target something. Ctrl + Click designator to stop lasing. Alt + Click designator to switch modes. Additionally, a trained spotter can laze targets for a USCM marksman, increasing the speed of target acquisition. A targeting beam will connect the binoculars to the target, but it may inherit the user's cloak, if possible." - + unacidable = TRUE + indestructible = TRUE var/is_spotting = FALSE var/spotting_time = 10 SECONDS var/spotting_cooldown_delay = 5 SECONDS @@ -445,7 +448,7 @@ human.face_atom(target) ///Add a decisecond to the default 1.5 seconds for each two tiles to hit. - var/distance = round(get_dist(target, human) * 0.5) + var/distance = floor(get_dist(target, human) * 0.5) var/f_spotting_time = designator.spotting_time + distance designator.is_spotting = TRUE diff --git a/code/game/objects/items/devices/camera_bug.dm b/code/game/objects/items/devices/camera_bug.dm deleted file mode 100644 index 1549fbd3739b..000000000000 --- a/code/game/objects/items/devices/camera_bug.dm +++ /dev/null @@ -1,34 +0,0 @@ -/obj/item/device/camera_bug - name = "camera bug" - icon_state = "flash" - w_class = SIZE_TINY - item_state = "electronic" - throw_speed = SPEED_VERY_FAST - throw_range = 20 - -/obj/item/device/camera_bug/attack_self(mob/usr as mob) - ..() - - var/list/cameras = new/list() - for (var/obj/structure/machinery/camera/C in GLOB.cameranet.cameras) - if (C.bugged && C.status) - cameras.Add(C) - if (length(cameras) == 0) - to_chat(usr, SPAN_DANGER("No bugged functioning cameras found.")) - return - - var/list/friendly_cameras = new/list() - - for (var/obj/structure/machinery/camera/C in cameras) - friendly_cameras.Add(C.c_tag) - - var/target = tgui_input_list(usr, "Select the camera to observe", "Camera to Observe", friendly_cameras) - if (!target) - return - for (var/obj/structure/machinery/camera/C in cameras) - if (C.c_tag == target) - target = C - break - if (usr.stat == 2) return - - usr.client.eye = target diff --git a/code/game/objects/items/devices/cictablet.dm b/code/game/objects/items/devices/cictablet.dm index 3f87b2bfbea2..597886a0cb85 100644 --- a/code/game/objects/items/devices/cictablet.dm +++ b/code/game/objects/items/devices/cictablet.dm @@ -43,10 +43,11 @@ add_pmcs = FALSE UnregisterSignal(SSdcs, COMSIG_GLOB_MODE_PRESETUP) -/obj/item/device/cotablet/attack_self(mob/user as mob) +/obj/item/device/cotablet/attack_self(mob/living/carbon/human/user as mob) ..() - if(src.allowed(user)) + var/obj/item/card/id/card = user.get_idcard() + if(allowed(user) && card?.check_biometrics(user)) tgui_interact(user) else to_chat(user, SPAN_DANGER("Access denied.")) @@ -91,43 +92,43 @@ . = ..() if(.) return - + var/mob/user = ui.user switch(action) if("announce") - if(usr.client.prefs.muted & MUTE_IC) - to_chat(usr, SPAN_DANGER("You cannot send Announcements (muted).")) + if(user.client.prefs.muted & MUTE_IC) + to_chat(user, SPAN_DANGER("You cannot send Announcements (muted).")) return if(!COOLDOWN_FINISHED(src, announcement_cooldown)) - to_chat(usr, SPAN_WARNING("Please wait [COOLDOWN_TIMELEFT(src, announcement_cooldown)/10] second\s before making your next announcement.")) + to_chat(user, SPAN_WARNING("Please wait [COOLDOWN_TIMELEFT(src, announcement_cooldown)/10] second\s before making your next announcement.")) return FALSE - var/input = stripped_multiline_input(usr, "Please write a message to announce to the [MAIN_SHIP_NAME]'s crew and all groundside personnel.", "Priority Announcement", "") - if(!input || !COOLDOWN_FINISHED(src, announcement_cooldown) || !(usr in view(1, src))) + var/input = stripped_multiline_input(user, "Please write a message to announce to the [MAIN_SHIP_NAME]'s crew and all groundside personnel.", "Priority Announcement", "") + if(!input || !COOLDOWN_FINISHED(src, announcement_cooldown) || !(user in view(1, src))) return FALSE var/signed = null - if(ishuman(usr)) - var/mob/living/carbon/human/H = usr - var/obj/item/card/id/id = H.wear_id - if(istype(id)) - var/paygrade = get_paygrades(id.paygrade, FALSE, H.gender) + if(ishuman(user)) + var/mob/living/carbon/human/human_user = user + var/obj/item/card/id/id = human_user.get_idcard() + if(id) + var/paygrade = get_paygrades(id.paygrade, FALSE, human_user.gender) signed = "[paygrade] [id.registered_name]" marine_announcement(input, announcement_title, faction_to_display = announcement_faction, add_PMCs = add_pmcs, signature = signed) - message_admins("[key_name(usr)] has made a command announcement.") - log_announcement("[key_name(usr)] has announced the following: [input]") + message_admins("[key_name(user)] has made a command announcement.") + log_announcement("[key_name(user)] has announced the following: [input]") COOLDOWN_START(src, announcement_cooldown, cooldown_between_messages) . = TRUE if("award") if(announcement_faction != FACTION_MARINE) return - print_medal(usr, src) + open_medal_panel(user, src) . = TRUE if("mapview") - tacmap.tgui_interact(usr) + tacmap.tgui_interact(user) . = TRUE if("evacuation_start") @@ -135,20 +136,20 @@ return if(GLOB.security_level < SEC_LEVEL_RED) - to_chat(usr, SPAN_WARNING("The ship must be under red alert in order to enact evacuation procedures.")) + to_chat(user, SPAN_WARNING("The ship must be under red alert in order to enact evacuation procedures.")) return FALSE if(SShijack.evac_admin_denied) - to_chat(usr, SPAN_WARNING("The USCM has placed a lock on deploying the evacuation pods.")) + to_chat(user, SPAN_WARNING("The USCM has placed a lock on deploying the evacuation pods.")) return FALSE if(!SShijack.initiate_evacuation()) - to_chat(usr, SPAN_WARNING("You are unable to initiate an evacuation procedure right now!")) + to_chat(user, SPAN_WARNING("You are unable to initiate an evacuation procedure right now!")) return FALSE - log_game("[key_name(usr)] has called for an emergency evacuation.") - message_admins("[key_name_admin(usr)] has called for an emergency evacuation.") - log_ares_security("Initiate Evacuation", "[usr] has called for an emergency evacuation.") + log_game("[key_name(user)] has called for an emergency evacuation.") + message_admins("[key_name_admin(user)] has called for an emergency evacuation.") + log_ares_security("Initiate Evacuation", "Called for an emergency evacuation.", user) . = TRUE if("distress") @@ -156,14 +157,14 @@ return FALSE //Not a game mode? if(GLOB.security_level == SEC_LEVEL_DELTA) - to_chat(usr, SPAN_WARNING("The ship is already undergoing self destruct procedures!")) + to_chat(user, SPAN_WARNING("The ship is already undergoing self destruct procedures!")) return FALSE for(var/client/C in GLOB.admins) if((R_ADMIN|R_MOD) & C.admin_holder.rights) playsound_client(C,'sound/effects/sos-morse-code.ogg',10) - SSticker.mode.request_ert(usr) - to_chat(usr, SPAN_NOTICE("A distress beacon request has been sent to USCM Central Command.")) + SSticker.mode.request_ert(user) + to_chat(user, SPAN_NOTICE("A distress beacon request has been sent to USCM Central Command.")) COOLDOWN_START(src, distress_cooldown, COOLDOWN_COMM_REQUEST) return TRUE diff --git a/code/game/objects/items/devices/clue_scanner.dm b/code/game/objects/items/devices/clue_scanner.dm index d6b6d0d80a25..33cc2ab7d207 100644 --- a/code/game/objects/items/devices/clue_scanner.dm +++ b/code/game/objects/items/devices/clue_scanner.dm @@ -52,4 +52,4 @@ if(!newlyfound) to_chat(user, SPAN_INFO("No new print sets found!")) else - to_chat(user, SPAN_INFO("New print sets found: [newlyfound], total stored amount: [print_list.len]")) + to_chat(user, SPAN_INFO("New print sets found: [newlyfound], total stored amount: [length(print_list)]")) diff --git a/code/game/objects/items/devices/data_detector.dm b/code/game/objects/items/devices/data_detector.dm index 6a358ec09bd8..27476f7a3872 100644 --- a/code/game/objects/items/devices/data_detector.dm +++ b/code/game/objects/items/devices/data_detector.dm @@ -17,7 +17,6 @@ /obj/structure/machinery/computer/objective, /obj/item/limb/head/synth, ) - var/detect_empty_vial_boxes = FALSE /obj/item/device/motiondetector/intel/get_help_text() . = "Green indicators on your HUD will show the location of intelligence objects detected by the scanner. Has two modes: slow long-range [SPAN_HELPFUL("(14 tiles)")] and fast short-range [SPAN_HELPFUL("(7 tiles)")]." @@ -43,22 +42,21 @@ var/detected for(var/DT in objects_to_detect) if(istype(I, DT)) - if(!detect_empty_vial_boxes && istype(I, /obj/item/storage/fancy/vials/random)) - if(!I.contents) - continue + if(istype(I, /obj/item/storage/fancy/vials/random) && !length(I.contents)) + break //We don't need to ping already looted containers + if(istype(I, /obj/item/reagent_container/glass/beaker/vial/random) && !I.reagents?.total_volume) + break //We don't need to ping already looted containers detected = TRUE if(I.contents) for(var/obj/item/CI in I.contents) if(istype(CI, DT)) - if(!detect_empty_vial_boxes && istype(I, /obj/item/storage/fancy/vials/random)) - if(!I.contents) - continue + if(istype(CI, /obj/item/storage/fancy/vials/random) && !length(CI.contents)) + break + if(istype(CI, /obj/item/reagent_container/glass/beaker/vial/random) && !CI.reagents?.total_volume) + break detected = TRUE - break if(human_user && detected) show_blip(human_user, I) - if(detected) - break if(detected) detected_sound = TRUE @@ -72,17 +70,15 @@ if(M == loc) continue //device user isn't detected if((isxeno(M) || isyautja(M)) && M.stat == DEAD ) detected = TRUE - else if(ishuman(M) && M.stat == DEAD && M.contents.len) + else if(ishuman(M) && M.stat == DEAD && length(M.contents)) for(var/obj/I in M.contents_twice()) for(var/DT in objects_to_detect) if(istype(I, DT)) - if(!detect_empty_vial_boxes && istype(I, /obj/item/storage/fancy/vials/random)) - if(!I.contents) - continue + if(istype(I, /obj/item/storage/fancy/vials/random) && !length(I.contents)) + break + if(istype(I, /obj/item/reagent_container/glass/beaker/vial/random) && !I.reagents?.total_volume) + break detected = TRUE - break - if(detected) - break if(human_user && detected) show_blip(human_user, M) diff --git a/code/game/objects/items/devices/defibrillator.dm b/code/game/objects/items/devices/defibrillator.dm index 30d0467a9b76..518fdb1a9591 100644 --- a/code/game/objects/items/devices/defibrillator.dm +++ b/code/game/objects/items/devices/defibrillator.dm @@ -50,7 +50,7 @@ icon_state += "_out" if(dcell && dcell.charge) - switch(round(dcell.charge * 100 / dcell.maxcharge)) + switch(floor(dcell.charge * 100 / dcell.maxcharge)) if(67 to INFINITY) overlays += "+full" if(34 to 66) @@ -66,8 +66,8 @@ . = ..() var/maxuses = 0 var/currentuses = 0 - maxuses = round(dcell.maxcharge / charge_cost) - currentuses = round(dcell.charge / charge_cost) + maxuses = floor(dcell.maxcharge / charge_cost) + currentuses = floor(dcell.charge / charge_cost) . += SPAN_INFO("It has [currentuses] out of [maxuses] uses left in its internal battery.") if(MODE_HAS_TOGGLEABLE_FLAG(MODE_STRONG_DEFIBS) || !blocked_by_suit) . += SPAN_NOTICE("This defibrillator will ignore worn armor.") @@ -175,7 +175,7 @@ playsound(get_turf(src),'sound/items/defib_charge.ogg', 25, 0) //Do NOT vary this tune, it needs to be precisely 7 seconds //Taking square root not to make defibs too fast... - if(!do_after(user, 7 SECONDS * user.get_skill_duration_multiplier(SKILL_MEDICAL), INTERRUPT_NO_NEEDHAND|BEHAVIOR_IMMOBILE, BUSY_ICON_FRIENDLY, H, INTERRUPT_MOVED, BUSY_ICON_MEDICAL)) + if(!do_after(user, (4 + (3 * user.get_skill_duration_multiplier(SKILL_MEDICAL))) SECONDS, INTERRUPT_NO_NEEDHAND|BEHAVIOR_IMMOBILE, BUSY_ICON_FRIENDLY, H, INTERRUPT_MOVED, BUSY_ICON_MEDICAL)) user.visible_message(SPAN_WARNING("[user] stops setting up the paddles on [H]'s chest."), \ SPAN_WARNING("You stop setting up the paddles on [H]'s chest.")) return @@ -194,18 +194,15 @@ shock_cooldown = world.time + 10 //1 second cooldown before you can shock again var/datum/internal_organ/heart/heart = H.internal_organs_by_name["heart"] - /// Has the defib already caused the chance of heart damage, to not potentially double up later - var/heart_already_damaged = FALSE - if(heart && prob(25)) - heart.take_damage(rand(min_heart_damage_dealt, max_heart_damage_dealt), TRUE) // Make death and revival leave lasting consequences - heart_already_damaged = TRUE if(!H.is_revivable()) playsound(get_turf(src), 'sound/items/defib_failed.ogg', 25, 0) if(heart && heart.organ_status >= ORGAN_BROKEN) user.visible_message(SPAN_WARNING("[icon2html(src, viewers(src))] \The [src] buzzes: Defibrillation failed. Patient's heart is too damaged. Immediate surgery is advised.")) + msg_admin_niche("[key_name_admin(user)] failed an attempt to revive [key_name_admin(H)] with [src] because of heart damage.") return user.visible_message(SPAN_WARNING("[icon2html(src, viewers(src))] \The [src] buzzes: Defibrillation failed. Patient's general condition does not allow reviving.")) + msg_admin_niche("[key_name_admin(user)] failed an attempt to revive [key_name_admin(H)] with [src].") return if(!H.client) //Freak case, no client at all. This is a braindead mob (like a colonist) @@ -232,11 +229,12 @@ break if(H.health > HEALTH_THRESHOLD_DEAD) user.visible_message(SPAN_NOTICE("[icon2html(src, viewers(src))] \The [src] beeps: Defibrillation successful.")) + msg_admin_niche("[key_name_admin(user)] successfully revived [key_name_admin(H)] with [src].") playsound(get_turf(src), 'sound/items/defib_success.ogg', 25, 0) user.track_life_saved(user.job) user.life_revives_total++ H.handle_revive() - if(heart && !heart_already_damaged) + if(heart) heart.take_damage(rand(min_heart_damage_dealt, max_heart_damage_dealt), TRUE) // Make death and revival leave lasting consequences to_chat(H, SPAN_NOTICE("You suddenly feel a spark and your consciousness returns, dragging you back to the mortal plane.")) @@ -244,7 +242,10 @@ window_flash(H.client) else user.visible_message(SPAN_WARNING("[icon2html(src, viewers(src))] \The [src] buzzes: Defibrillation failed. Vital signs are too weak, repair damage and try again.")) //Freak case + msg_admin_niche("[key_name_admin(user)] failed an attempt to revive [key_name_admin(H)] with [src] because of weak vitals.") playsound(get_turf(src), 'sound/items/defib_failed.ogg', 25, 0) + if(heart && prob(25)) + heart.take_damage(rand(min_heart_damage_dealt, max_heart_damage_dealt), TRUE) // Make death and revival leave lasting consequences /obj/item/device/defibrillator/compact_adv name = "advanced compact defibrillator" diff --git a/code/game/objects/items/devices/drone_devices.dm b/code/game/objects/items/devices/drone_devices.dm index 121a3c0aabc9..0e22b64bf67f 100644 --- a/code/game/objects/items/devices/drone_devices.dm +++ b/code/game/objects/items/devices/drone_devices.dm @@ -173,33 +173,6 @@ stored_comms["plastic"]++ stored_comms["plastic"]++ return - - else if(ismaintdrone(M) && !M.client) - - var/mob/living/silicon/robot/drone/D = src.loc - - if(!istype(D)) - return - - to_chat(D, SPAN_DANGER("You begin decompiling the other drone.")) - - if(!do_after(D, 50, INTERRUPT_NO_NEEDHAND, BUSY_ICON_GENERIC)) - to_chat(D, SPAN_DANGER("You need to remain still while decompiling such a large object.")) - return - - if(!M || !D) return - - to_chat(D, SPAN_DANGER("You carefully and thoroughly decompile your downed fellow, storing as much of its resources as you can within yourself.")) - - qdel(M) - new/obj/effect/decal/cleanable/blood/oil(get_turf(src)) - - stored_comms["metal"] += 15 - stored_comms["glass"] += 15 - stored_comms["wood"] += 5 - stored_comms["plastic"] += 5 - - return else continue diff --git a/code/game/objects/items/devices/dummy_tablet.dm b/code/game/objects/items/devices/dummy_tablet.dm index d1036ebfa93b..4996daf5366e 100644 --- a/code/game/objects/items/devices/dummy_tablet.dm +++ b/code/game/objects/items/devices/dummy_tablet.dm @@ -1,14 +1,34 @@ /obj/item/device/professor_dummy_tablet icon = 'icons/obj/items/devices.dmi' - name = "Professor DUMMY tablet" + name = "\improper Professor DUMMY tablet" desc = "A Professor DUMMY Control Tablet." suffix = "\[3\]" icon_state = "Cotablet" item_state = "Cotablet" var/mob/living/carbon/human/linked_dummy + ///Should the dummy be destroyed on hijack? + var/dust_on_hijack = FALSE + +/obj/item/device/professor_dummy_tablet/Initialize() + . = ..() + var/turf/actual_location = get_turf(src) + if(is_mainship_level(actual_location.z)) + dust_on_hijack = TRUE + RegisterSignal(SSdcs, COMSIG_GLOB_HIJACK_LANDED, PROC_REF(destroy_dummy_upon_hijack)) + +/obj/item/device/professor_dummy_tablet/proc/destroy_dummy_upon_hijack() + SIGNAL_HANDLER + + if(!dust_on_hijack) + return + if(!linked_dummy) + return + linked_dummy.visible_message(SPAN_WARNING("The [linked_dummy] suddenly disintegrates!")) + linked_dummy.dust(create_cause_data("hijack autodelete")) /obj/item/device/professor_dummy_tablet/Destroy() + UnregisterSignal(src, COMSIG_GLOB_HIJACK_LANDED) linked_dummy = null . = ..() @@ -21,23 +41,35 @@ */ /obj/item/device/professor_dummy_tablet/proc/is_adjacent_to_dummy(mob/user) if (get_dist(linked_dummy, user) > 1) - to_chat(user, "You are too far away to use the tablet.") + to_chat(user, SPAN_WARNING("You are too far away from the dummy to use its tablet.")) return FALSE - return TRUE -/obj/item/device/professor_dummy_tablet/proc/link_mob(mob/living/carbon/human/H) - linked_dummy = H +/obj/item/device/professor_dummy_tablet/proc/link_dummy(mob/living/carbon/human/dummy_to_link) + if(dummy_to_link) + linked_dummy = dummy_to_link + RegisterSignal(linked_dummy, COMSIG_PARENT_QDELETING, PROC_REF(self_delete)) + return + +/obj/item/device/professor_dummy_tablet/proc/self_delete() + SIGNAL_HANDLER + + UnregisterSignal(linked_dummy, COMSIG_PARENT_QDELETING) + linked_dummy = null + if(isstorage(loc)) + var/obj/item/storage/storage = loc + storage.remove_from_storage(src, get_turf(src)) + qdel(src) /obj/item/device/professor_dummy_tablet/attack_self(mob/user as mob) ..() interact(user) /obj/item/device/professor_dummy_tablet/interact(mob/user as mob) - if (isnull(linked_dummy)) + if(isnull(linked_dummy)) return - if (!is_adjacent_to_dummy(user)) + if(!is_adjacent_to_dummy(user)) return user.set_interaction(src) @@ -55,8 +87,8 @@ dat += "
        \[ Reset \]" dat += "

        " - show_browser(user, dat, "Professor DUMMY Control Tablet", window_options="size=400x500") - onclose(user, "communications") + show_browser(user, dat, "Professor DUMMY Control Tablet", "dummytablet", window_options="size=400x500") + onclose(user, "dummytablet") updateDialog() return diff --git a/code/game/objects/items/devices/flash.dm b/code/game/objects/items/devices/flash.dm index 33a93ed18db5..ee74a83613c3 100644 --- a/code/game/objects/items/devices/flash.dm +++ b/code/game/objects/items/devices/flash.dm @@ -35,7 +35,7 @@ flashes_stored++ if(flashes_stored <= max_flashes_stored) visible_message(SPAN_NOTICE("[icon2html(src, viewers(src))] \The [src] pings as it recharges!"), SPAN_NOTICE("You hear a ping"), 3) - flashes_stored = min(max_flashes_stored, round(flashes_stored)) //sanity + flashes_stored = min(max_flashes_stored, floor(flashes_stored)) //sanity /obj/item/device/flash/proc/check_if_can_use_flash(mob/user) //checks for using the flash if(!ishuman(user)) @@ -94,7 +94,8 @@ if(iscarbon(M)) flashfail = !M.flash_eyes() if(!flashfail) - M.apply_effect(10, WEAKEN) + M.KnockDown(10) + M.Stun(10) else if(isSilicon(M)) M.apply_effect(rand(5,10), WEAKEN) @@ -102,17 +103,6 @@ else //if not carbon or sillicn flashfail = TRUE - if(isrobot(user)) - spawn(0) - var/atom/movable/overlay/animation = new(user.loc) - animation.layer = user.layer + 1 - animation.icon_state = "blank" - animation.icon = 'icons/mob/mob.dmi' - animation.master = user - flick("blspell", animation) - sleep(5) - qdel(animation) - if(!flashfail) if(!isSilicon(M)) user.visible_message(SPAN_DANGER("[user] blinds [M] with \the [src]!")) diff --git a/code/game/objects/items/devices/flashlight.dm b/code/game/objects/items/devices/flashlight.dm index 58e86998f39a..8d5e3cc752ff 100644 --- a/code/game/objects/items/devices/flashlight.dm +++ b/code/game/objects/items/devices/flashlight.dm @@ -238,7 +238,7 @@ desc = "A red USCM issued flare. There are instructions on the side, it reads 'pull cord, make light'." w_class = SIZE_SMALL light_power = 2 - light_range = 7 + light_range = 5 icon_state = "flare" item_state = "flare" actions = list() //just pull it manually, neckbeard. @@ -421,7 +421,7 @@ /obj/item/device/flashlight/flare/on/illumination/chemical/Initialize(mapload, amount) . = ..() - light_range = round(amount * 0.04) + light_range = floor(amount * 0.04) if(!light_range) return INITIALIZE_HINT_QDEL set_light(light_range) diff --git a/code/game/objects/items/devices/helmet_visors.dm b/code/game/objects/items/devices/helmet_visors.dm index c3c3f9597060..8f921a62f3f5 100644 --- a/code/game/objects/items/devices/helmet_visors.dm +++ b/code/game/objects/items/devices/helmet_visors.dm @@ -6,7 +6,7 @@ w_class = SIZE_TINY ///The type of HUD our visor shows - var/hud_type = MOB_HUD_FACTION_USCM + var/hud_type = MOB_HUD_FACTION_MARINE ///The sound when toggling on the visor var/toggle_on_sound = 'sound/handling/hud_on.ogg' @@ -82,7 +82,7 @@ /obj/item/device/helmet_visor/medical/advanced name = "advanced medical optic" - helmet_overlay = "med_sight_left" + helmet_overlay = "med_sight_right" /obj/item/device/helmet_visor/medical/advanced/activate_visor(obj/item/clothing/head/helmet/marine/attached_helmet, mob/living/carbon/human/user) . = ..() @@ -225,7 +225,7 @@ /obj/item/device/helmet_visor/night_vision/get_examine_text(mob/user) . = ..() - . += SPAN_NOTICE("It is currently at [round((power_cell.charge / power_cell.maxcharge) * 100)]% charge.") + . += SPAN_NOTICE("It is currently at [floor((power_cell.charge / power_cell.maxcharge) * 100)]% charge.") /obj/item/device/helmet_visor/night_vision/activate_visor(obj/item/clothing/head/helmet/marine/attached_helmet, mob/living/carbon/human/user) RegisterSignal(user, COMSIG_HUMAN_POST_UPDATE_SIGHT, PROC_REF(on_update_sight)) @@ -238,6 +238,7 @@ on_light = new(attached_helmet) on_light.set_light_on(TRUE) START_PROCESSING(SSobj, src) + RegisterSignal(user, COMSIG_MOB_CHANGE_VIEW, PROC_REF(change_view)) /obj/item/device/helmet_visor/night_vision/deactivate_visor(obj/item/clothing/head/helmet/marine/attached_helmet, mob/living/carbon/human/user) user.remove_client_color_matrix("nvg_visor", 1 SECONDS) @@ -247,6 +248,7 @@ if(visor_glows) qdel(on_light) UnregisterSignal(user, COMSIG_HUMAN_POST_UPDATE_SIGHT) + UnregisterSignal(user, COMSIG_MOB_CHANGE_VIEW) user.update_sight() STOP_PROCESSING(SSobj, src) @@ -271,6 +273,10 @@ if(!.) return + if(user.client.view > 7) + to_chat(user, SPAN_WARNING("You cannot use [src] while using optics.")) + return FALSE + if(!NVG_VISOR_USAGE(FALSE)) to_chat(user, SPAN_NOTICE("Your [src] is out of power! You'll need to recharge it.")) return FALSE @@ -280,7 +286,7 @@ /obj/item/device/helmet_visor/night_vision/get_helmet_examine_text() . = ..() - . += SPAN_NOTICE(" It is currently at [round((power_cell.charge / power_cell.maxcharge) * 100)]% charge.") + . += SPAN_NOTICE(" It is currently at [floor((power_cell.charge / power_cell.maxcharge) * 100)]% charge.") /obj/item/device/helmet_visor/night_vision/proc/on_update_sight(mob/user) SIGNAL_HANDLER @@ -290,19 +296,34 @@ user.lighting_alpha = lighting_alpha user.sync_lighting_plane_alpha() +/obj/item/device/helmet_visor/night_vision/proc/change_view(mob/user, new_size) + SIGNAL_HANDLER + if(new_size > 7) // cannot use binos with NVO + var/obj/item/clothing/head/helmet/marine/attached_helmet = loc + if(!istype(attached_helmet)) + return + deactivate_visor(attached_helmet, user) + to_chat(user, SPAN_NOTICE("You deactivate [src] on [attached_helmet].")) + playsound_client(user.client, toggle_off_sound, null, 75) + attached_helmet.active_visor = null + attached_helmet.update_icon() + var/datum/action/item_action/cycle_helmet_huds/cycle_action = locate() in attached_helmet.actions + if(cycle_action) + cycle_action.set_default_overlay() + #undef NVG_VISOR_USAGE /atom/movable/nvg_light light_power = 0.5 light_range = 1 - light_color = COLOUR_GREEN + light_color = COLOR_LIGHT_GREEN light_system = MOVABLE_LIGHT light_flags = LIGHT_ATTACHED /obj/item/device/helmet_visor/night_vision/marine_raider name = "advanced night vision optic" desc = "An insertable visor HUD into a standard USCM helmet. This type gives a form of night vision and is standard issue in special forces units." - hud_type = list(MOB_HUD_FACTION_USCM, MOB_HUD_MEDICAL_ADVANCED) + hud_type = list(MOB_HUD_FACTION_MARINE, MOB_HUD_MEDICAL_ADVANCED) helmet_overlay = "nvg_sight_right_raider" power_use = 0 visor_glows = FALSE diff --git a/code/game/objects/items/devices/lightreplacer.dm b/code/game/objects/items/devices/lightreplacer.dm index 3f285b358fb2..05872284ecc2 100644 --- a/code/game/objects/items/devices/lightreplacer.dm +++ b/code/game/objects/items/devices/lightreplacer.dm @@ -25,7 +25,7 @@ // I'm not sure everyone will react the emag's features so please say what your opinions are of it. // // When emagged it will rig every light it replaces, which will explode when the light is on. -// This is VERY noticable, even the device's name changes when you emag it so if anyone +// This is VERY noticeable, even the device's name changes when you emag it so if anyone // examines you when you're holding it in your hand, you will be discovered. // It will also be very obvious who is setting all these lights off, since only Janitor Borgs and Janitors have easy // access to them, and only one of them can emag their device. diff --git a/code/game/objects/items/devices/megaphone.dm b/code/game/objects/items/devices/megaphone.dm index c6da7d354054..114ed48b1819 100644 --- a/code/game/objects/items/devices/megaphone.dm +++ b/code/game/objects/items/devices/megaphone.dm @@ -30,9 +30,8 @@ return // we know user is a human now, so adjust user for this check var/mob/living/carbon/human/humanoid = user - if(humanoid.speech_problem_flag) - var/list/new_message = humanoid.handle_speech_problems(message) - message = new_message[1] + var/list/new_message = humanoid.handle_speech_problems(message) + message = new_message[1] message = capitalize(message) log_admin("[key_name(user)] used a megaphone to say: >[message]<") diff --git a/code/game/objects/items/devices/motion_detector.dm b/code/game/objects/items/devices/motion_detector.dm index 9776eae11c8f..3551e3a02bef 100644 --- a/code/game/objects/items/devices/motion_detector.dm +++ b/code/game/objects/items/devices/motion_detector.dm @@ -191,6 +191,14 @@ if(ishuman(A.loc)) return A.loc +/obj/item/device/motiondetector/xm4 + +///Forces the blue blip to appear around the detected mob +/obj/item/device/motiondetector/xm4/get_user() + var/atom/holder = loc + if(ishuman(holder.loc)) + return holder.loc + /obj/item/device/motiondetector/proc/apply_debuff(mob/M) return @@ -220,7 +228,6 @@ var/mob/living/M = A //do this to skip the unnecessary istype() check; everything in ping_candidate is a mob already if(M == loc) continue //device user isn't detected if(world.time > M.l_move_time + 20) continue //hasn't moved recently - if(isrobot(M)) continue if(M.get_target_lock(iff_signal)) continue @@ -262,10 +269,10 @@ var/view_x_offset = 0 var/view_y_offset = 0 if(c_view > 7) - if(user.client.pixel_x >= 0) view_x_offset = round(user.client.pixel_x/32) - else view_x_offset = Ceiling(user.client.pixel_x/32) - if(user.client.pixel_y >= 0) view_y_offset = round(user.client.pixel_y/32) - else view_y_offset = Ceiling(user.client.pixel_y/32) + if(user.client.pixel_x >= 0) view_x_offset = floor(user.client.pixel_x/32) + else view_x_offset = ceil(user.client.pixel_x/32) + if(user.client.pixel_y >= 0) view_y_offset = floor(user.client.pixel_y/32) + else view_y_offset = ceil(user.client.pixel_y/32) var/diff_dir_x = 0 var/diff_dir_y = 0 @@ -280,7 +287,7 @@ DB.icon_state = "[blip_icon]_blip" DB.setDir(initial(DB.dir)) - DB.screen_loc = "[Clamp(c_view + 1 - view_x_offset + (target.x - user.x), 1, 2*c_view+1)],[Clamp(c_view + 1 - view_y_offset + (target.y - user.y), 1, 2*c_view+1)]" + DB.screen_loc = "[clamp(c_view + 1 - view_x_offset + (target.x - user.x), 1, 2*c_view+1)],[clamp(c_view + 1 - view_y_offset + (target.y - user.y), 1, 2*c_view+1)]" user.client.add_to_screen(DB) addtimer(CALLBACK(src, PROC_REF(clear_pings), user, DB), 1 SECONDS) diff --git a/code/game/objects/items/devices/personal_data_transmitter.dm b/code/game/objects/items/devices/personal_data_transmitter.dm index 98f8c60452ea..b967aa9273ca 100644 --- a/code/game/objects/items/devices/personal_data_transmitter.dm +++ b/code/game/objects/items/devices/personal_data_transmitter.dm @@ -139,6 +139,7 @@ /obj/item/device/pdt_locator_tube/Destroy() linked_bracelet = null + QDEL_NULL(battery) return ..() /obj/item/clothing/accessory/pdt_bracelet diff --git a/code/game/objects/items/devices/portable_vendor.dm b/code/game/objects/items/devices/portable_vendor.dm index 29e1d06018ae..3dd8533a046d 100644 --- a/code/game/objects/items/devices/portable_vendor.dm +++ b/code/game/objects/items/devices/portable_vendor.dm @@ -21,10 +21,12 @@ var/use_points = TRUE var/fabricating = FALSE var/broken = FALSE + var/contraband = FALSE var/list/purchase_log = list() var/list/listed_products = list() + var/list/contraband_products = list() /// needs to be a time define var/special_prod_time_lock @@ -44,7 +46,7 @@ if(!ishuman(user)) return - var/mob/living/carbon/human/H = user + var/mob/living/carbon/human/human_user = user src.add_fingerprint(usr) @@ -56,17 +58,17 @@ to_chat(user, SPAN_WARNING("Access denied.")) return - var/obj/item/card/id/I = H.wear_id - if(!istype(I)) //not wearing an ID - to_chat(H, SPAN_WARNING("Access denied. No ID card detected")) + var/obj/item/card/id/idcard = human_user.get_idcard() + if(!idcard) //not wearing an ID + to_chat(human_user, SPAN_WARNING("Access denied. No ID card detected")) return - if(I.registered_name != H.real_name) - to_chat(H, SPAN_WARNING("Wrong ID card owner detected.")) + if(!idcard.check_biometrics(human_user)) + to_chat(human_user, SPAN_WARNING("Wrong ID card owner detected.")) return - if(req_role && I.rank != req_role) - to_chat(H, SPAN_WARNING("This device isn't for you.")) + if(req_role && idcard.rank != req_role) + to_chat(human_user, SPAN_WARNING("This device isn't for you.")) return @@ -97,9 +99,25 @@ var/available = points >= product[2] || !use_points available_items += list(list("index" = index, "name" = name, "cost" = cost, "available" = available, "color" = color, "description" = description)) + if(contraband) + var/non_contraband_product_count = length(listed_products) + for(var/index in 1 to length(contraband_products)) + var/product = contraband_products[index] + + var/name = product[1] + var/cost = product[2] + var/color = product[4] + var/description = product[5] + + if(cost > 0) + name += " ([cost] points)" + + var/available = points >= product[2] || !use_points + available_items += list(list("index" = index + non_contraband_product_count, "name" = name, "cost" = cost, "available" = available, "color" = color, "description" = description)) + .["vendor_name"] = name .["show_points"] = use_points - .["current_points"] = round(points) + .["current_points"] = floor(points) .["max_points"] = max_points .["displayed_records"] = available_items @@ -139,7 +157,13 @@ if(req_role && req_role != id.rank) to_chat(human_user, SPAN_WARNING("This device isn't for you.")) - var/list/product = listed_products[choice] + var/list/product + var/non_contraband_product_count = length(listed_products) + if(choice > non_contraband_product_count) + choice -= non_contraband_product_count + product = contraband_products[choice] + else + product = listed_products[choice] var/cost = product[2] @@ -154,7 +178,7 @@ if(special_prod_time_lock && (product[3] in special_prods)) if(ROUND_TIME < special_prod_time_lock) - to_chat(usr, SPAN_WARNING("[src] is still fabricating [product[1]]. Please wait another [round((SSticker.mode.round_time_lobby + special_prod_time_lock-world.time)/600)] minutes before trying again.")) + to_chat(usr, SPAN_WARNING("[src] is still fabricating [product[1]]. Please wait another [floor((SSticker.mode.round_time_lobby + special_prod_time_lock-world.time)/600)] minutes before trying again.")) return if(use_points) @@ -243,8 +267,11 @@ req_role = JOB_CORPORATE_LIAISON listed_products = list( list("INCENTIVES", 0, null, null, null), + list("Corporate Security Bodyguard", 50, /obj/item/handheld_distress_beacon/bodyguard, "white", "A beacon which sends the Corporate Security Division an encoded message informing them of your request for a Corporate Security Bodyguard."), + list("Corporate Lawyer Team", 50, /obj/item/handheld_distress_beacon/lawyer, "white", "A beacon which sends the Corporate Affairs Division an encoded message informing them of your request for a Corporate Lawyer, required when a contract signee breaks one of their clauses."), list("Neurostimulator Implant", 30, /obj/item/implanter/neurostim, "white", "Implant which regulates nociception and sensory function. Benefits include pain reduction, improved balance, and improved resistance to overstimulation and disorientation. To encourage compliance, negative stimulus is applied if the implant hears a (non-radio) spoken codephrase. Implant will be degraded by the body's immune system over time, and thus malfunction with gradually increasing frequency. Personal use not recommended."), list("Ultrazine Injector", 25, /obj/item/reagent_container/hypospray/autoinjector/ultrazine/liaison, "white", "Highly-addictive stimulant. Enhances short-term physical performance, particularly running speed. Effects last approximately 10 minutes per injection. More than two injections at a time will result in overdose. Withdrawal causes extreme discomfort and hallucinations. Long-term use results in halluciations and organ failure. Conditional distribution secures subject compliance. Not for personal use."), + list("Cyanide Pill", 20, /obj/item/reagent_container/pill/cyanide, "white", "A cyanide pill, also known as a suicide pill. For the easy way out."), list("Ceramic Plate", 10, /obj/item/trash/ceramic_plate, "white", "A ceramic plate, useful in a variety of situations."), list("Cash", 5, /obj/item/spacecash/c1000/counterfeit, "white", "$1000 USD, unmarked bills"), list("WY Encryption Key", 5, /obj/item/device/encryptionkey/WY, "white", "WY private comms encryption key, for conducting private business."), @@ -252,12 +279,13 @@ list("SMOKABLES", 0, null, null, null), list("Cigars", 5, /obj/item/storage/fancy/cigar, "white", "Case of premium cigars, untampered."), list("Cigarettes", 5, /obj/item/storage/fancy/cigarettes/wypacket, "white", "Weyland-Yutani Gold packet, for the more sophisticated taste."), - list("Zippo", 5, /obj/item/tool/lighter/zippo, "white", "A Zippo lighter, for those smoking in style."), + list("Zippo", 5, /obj/item/tool/lighter/zippo/executive, "white", "A Weyland-Yutani brand Zippo lighter, for those smoking in style."), list("DRINKABLES", 0, null, null, null), list("Sake", 5, /obj/item/reagent_container/food/drinks/bottle/sake, "white", "Weyland-Yutani Sake, for a proper business dinner."), list("Beer", 5, /obj/item/reagent_container/food/drinks/cans/aspen, "white", "Weyland-Yutani Aspen Beer, for a more casual night."), list("Drinking Glass", 1, /obj/item/reagent_container/food/drinks/drinkingglass, "white", "A Drinking Glass, because you have class."), + list("Weyland-Yutani Coffee Mug", 1, /obj/item/reagent_container/food/drinks/coffeecup/wy, "white", "A Weyland-Yutani coffee mug, for any Marines who want a Company souvenir."), list("STATIONARY", 0, null, null, null), list("WY pen, black", 1, /obj/item/tool/pen/clicky, "white", "A WY pen, for writing formally on the go."), @@ -274,4 +302,20 @@ list("AMMO", 0, null, null, null), list("ES-4 stun magazine", 10, /obj/item/ammo_magazine/pistol/es4, "white", "Holds 19 rounds of specialized Conductive 9mm."), + + list("RADIO KEYS", 0, null, null, null), + list("Alpha Squad", 15, /obj/item/device/encryptionkey/alpha, "white", "Radio Key for USCM Alpha Squad."), + list("Bravo Squad", 15, /obj/item/device/encryptionkey/bravo, "white", "Radio Key for USCM Bravo Squad."), + list("Charlie Squad", 15, /obj/item/device/encryptionkey/charlie, "white", "Radio Key for USCM Charlie Squad."), + list("Delta Squad", 15, /obj/item/device/encryptionkey/delta, "white", "Radio Key for USCM Delta Squad."), + list("Echo Squad", 15, /obj/item/device/encryptionkey/echo, "white", "Radio Key for USCM Echo Squad."), + list("Colony", 20, /obj/item/device/encryptionkey/colony, "white", "Pre-tuned Radio Key for local colony comms."), + ) + + contraband_products = list( + list("CONTRABAND", 0, null, null, null), + list("W-Y PMC", 20, /obj/item/device/encryptionkey/pmc, "white", "Radio Key for Weyland-Yutani PMC Combat Comms."), + list("CONTRABAND: Colonial Marshals", 40, /obj/item/device/encryptionkey/cmb, "white", "Radio Key for the CMB."), + list("CONTRABAND: Colonial Liberation Front", 40, /obj/item/device/encryptionkey/clf, "white", "Radio Key for known local CLF frequencies."), + list("CONTRABAND: Union of Progressive Peoples", 40, /obj/item/device/encryptionkey/upp, "white", "Radio Key for known UPP listening frequencies."), ) diff --git a/code/game/objects/items/devices/radio/electropack.dm b/code/game/objects/items/devices/radio/electropack.dm index a9edd5d71795..871b266cfd49 100644 --- a/code/game/objects/items/devices/radio/electropack.dm +++ b/code/game/objects/items/devices/radio/electropack.dm @@ -35,7 +35,7 @@ else if(href_list["code"]) code += text2num(href_list["code"]) - code = round(code) + code = floor(code) code = min(100, code) code = max(1, code) else diff --git a/code/game/objects/items/devices/radio/headset.dm b/code/game/objects/items/devices/radio/headset.dm index 7ec941f1192b..e414ca3dafdd 100644 --- a/code/game/objects/items/devices/radio/headset.dm +++ b/code/game/objects/items/devices/radio/headset.dm @@ -35,7 +35,7 @@ var/headset_hud_on = FALSE var/locate_setting = TRACKER_SL var/misc_tracking = FALSE - var/hud_type = MOB_HUD_FACTION_USCM + var/hud_type = MOB_HUD_FACTION_MARINE var/default_freq ///The type of minimap this headset is added to @@ -233,7 +233,7 @@ ), PROC_REF(turn_on)) wearer = user RegisterSignal(user, COMSIG_MOB_STAT_SET_ALIVE, PROC_REF(update_minimap_icon)) - RegisterSignal(user, COMSIG_MOB_LOGIN, PROC_REF(add_hud_tracker)) + RegisterSignal(user, COMSIG_MOB_LOGGED_IN, PROC_REF(add_hud_tracker)) RegisterSignal(user, COMSIG_MOB_DEATH, PROC_REF(update_minimap_icon)) RegisterSignal(user, COMSIG_HUMAN_SET_UNDEFIBBABLE, PROC_REF(update_minimap_icon)) if(headset_hud_on) @@ -250,7 +250,7 @@ UnregisterSignal(user, list( COMSIG_LIVING_REJUVENATED, COMSIG_HUMAN_REVIVED, - COMSIG_MOB_LOGIN, + COMSIG_MOB_LOGGED_IN, COMSIG_MOB_DEATH, COMSIG_HUMAN_SET_UNDEFIBBABLE, COMSIG_MOB_STAT_SET_ALIVE @@ -341,7 +341,7 @@ var/z_level = turf_gotten.z if(wearer.assigned_equipment_preset.always_minimap_visible == TRUE || wearer.stat == DEAD) //We show to all marines if we have this flag, separated by faction - if(hud_type == MOB_HUD_FACTION_USCM) + if(hud_type == MOB_HUD_FACTION_MARINE) marker_flags = MINIMAP_FLAG_USCM else if(hud_type == MOB_HUD_FACTION_UPP) marker_flags = MINIMAP_FLAG_UPP @@ -383,7 +383,7 @@ /obj/item/device/radio/headset/ai_integrated/receive_range(freq, level) if (disabledAi) - return -1 //Transciever Disabled. + return -1 //Transceiver Disabled. return ..(freq, level, 1) //MARINE HEADSETS @@ -405,6 +405,30 @@ var/datum/techtree/T = GET_TREE(TREE_MARINE) T.enter_mob(usr) +/obj/item/device/radio/headset/almayer/verb/give_medal_recommendation() + set name = "Give Medal Recommendation" + set desc = "Send a medal recommendation for approval by the Commanding Officer" + set category = "Object.Medals" + set src in usr + + var/mob/living/carbon/human/wearer = usr + if(!istype(wearer)) + return + var/obj/item/card/id/id_card = wearer.get_idcard() + if(!id_card) + return + + var/datum/paygrade/paygrade_actual = GLOB.paygrades[id_card.paygrade] + if(!paygrade_actual) + return + if(!istype(paygrade_actual, /datum/paygrade/marine)) //We only want marines to be able to recommend for medals + return + if(paygrade_actual.ranking < 3) //E1 starts at 0, so anyone above Corporal (ranking = 3) can recommend for medals + to_chat(wearer, SPAN_WARNING("Only officers or NCO's (ME4+) can recommend medals!")) + return + if(add_medal_recommendation(usr)) + to_chat(usr, SPAN_NOTICE("Recommendation successfully submitted.")) + /obj/item/device/radio/headset/almayer/ce name = "chief engineer's headset" desc = "The headset of the guy in charge of spooling engines, managing MTs, and tearing up the floor for scrap metal. Of robust and sturdy construction. Channels are as follows: :n - engineering, :v - marine command, :m - medical, :u - requisitions, :a - alpha squad, :b - bravo squad, :c - charlie squad, :d - delta squad." @@ -520,6 +544,7 @@ name = "corporate liaison radio headset" desc = "Used by the CL to convince people to sign NDAs. Channels are as follows: :v - marine command, :a - alpha squad, :b - bravo squad, :c - charlie squad, :d - delta squad, :n - engineering, :m - medbay, :u - requisitions, :j - JTAC, :t - intel, :y for WY." icon_state = "wy_headset" + maximum_keys = 5 initial_keys = list(/obj/item/device/encryptionkey/mcom/cl) /obj/item/device/radio/headset/almayer/reporter @@ -540,6 +565,21 @@ initial_keys = list(/obj/item/device/encryptionkey/cmpcom/cdrcom) volume = RADIO_VOLUME_CRITICAL +/obj/item/device/radio/headset/almayer/mcom/sea + name = "marine senior enlisted advisor headset" + desc = "Issued only to senior enlisted advisors. Channels are as follows: :v - marine command, :p - military police, :a - alpha squad, :b - bravo squad, :c - charlie squad, :d - delta squad, :n - engineering, :m - medbay, :u - requisitions, :j - JTAC, :t - intel" + icon_state = "mco_headset" + initial_keys = list(/obj/item/device/encryptionkey/cmpcom/cdrcom) + volume = RADIO_VOLUME_CRITICAL + misc_tracking = TRUE + locate_setting = TRACKER_CO + + inbuilt_tracking_options = list( + "Commanding Officer" = TRACKER_CO, + "Executive Officer" = TRACKER_XO, + "Chief MP" = TRACKER_CMP + ) + /obj/item/device/radio/headset/almayer/mcom/synth name = "marine synth headset" desc = "Issued only to USCM synthetics. Channels are as follows: :v - marine command, :p - military police, :a - alpha squad, :b - bravo squad, :c - charlie squad, :d - delta squad, :n - engineering, :m - medbay, :u - requisitions, :j - JTAC, :t - intel" @@ -857,6 +897,14 @@ ignore_z = TRUE has_hud = TRUE +/obj/item/device/radio/headset/distress/forecon + name = "\improper Force Recon headset" + desc = "A headset given to FORECON marines. Channels are as follows: :g - public, :v - marine command, :a - alpha squad, :b - bravo squad, :c - charlie squad, :d - delta squad, :n - engineering, :m - medbay, :u - requisitions, :j - JTAC, :t - intel" + frequency = FORECON_FREQ + initial_keys = list(/obj/item/device/encryptionkey/public, /obj/item/device/encryptionkey/mcom) + ignore_z = TRUE + has_hud = TRUE + /obj/item/device/radio/headset/distress/pmc/hvh desc = "A special headset used by corporate personnel. Channels are as follows: :o - colony." initial_keys = list(/obj/item/device/encryptionkey/colony, /obj/item/device/encryptionkey/WY) @@ -994,7 +1042,7 @@ icon_state = "cmb_headset" initial_keys = list(/obj/item/device/encryptionkey/cmb) has_hud = TRUE - hud_type = MOB_HUD_FACTION_USCM + hud_type = MOB_HUD_FACTION_MARINE /obj/item/device/radio/headset/distress/CMB/limited name = "\improper Damaged CMB Earpiece" @@ -1039,7 +1087,7 @@ initial_keys = list(/obj/item/device/encryptionkey/soc/forecon) volume = RADIO_VOLUME_QUIET has_hud = TRUE - hud_type = MOB_HUD_FACTION_USCM + hud_type = MOB_HUD_FACTION_MARINE /obj/item/device/radio/headset/almayer/mcom/vc name = "marine vehicle crew radio headset" diff --git a/code/game/objects/items/devices/radio/listening_bugs.dm b/code/game/objects/items/devices/radio/listening_bugs.dm index 4a84df071c60..9492188a14f0 100644 --- a/code/game/objects/items/devices/radio/listening_bugs.dm +++ b/code/game/objects/items/devices/radio/listening_bugs.dm @@ -90,7 +90,7 @@ var/processed_verb = "[SPAN_RED("\[LSTN [nametag]\]")] [verb]" if(broadcasting) if(get_dist(src, M) <= 7) - talk_into(M, msg,null,processed_verb,speaking) + talk_into(M, msg, null, processed_verb, speaking, listening_device = TRUE) /obj/item/device/radio/listening_bug/afterattack(atom/target_atom, mob/user as mob, proximity) if(!ready_to_disguise) @@ -126,7 +126,7 @@ size = "small" if(SIZE_MEDIUM) size = "normal-sized" - . += "This is a [blood_color ? blood_color != "#030303" ? "bloody " : "oil-stained " : ""][icon2html(src, user)][src.name]. It is a [size] item." + . += "This is a [blood_color ? blood_color != COLOR_OIL ? "bloody " : "oil-stained " : ""][icon2html(src, user)][src.name]. It is a [size] item." if(desc) . += desc if(desc_lore) diff --git a/code/game/objects/items/devices/radio/radio.dm b/code/game/objects/items/devices/radio/radio.dm index c628758c74e8..2e693987f99b 100644 --- a/code/game/objects/items/devices/radio/radio.dm +++ b/code/game/objects/items/devices/radio/radio.dm @@ -196,7 +196,7 @@ return radio_connection // Otherwise, if a channel is specified, look for it. - if(channels && channels.len) + if(LAZYLEN(channels)) if (message_mode == RADIO_CHANNEL_DEPARTMENT ) // Department radio shortcut message_mode = channels[1] @@ -206,7 +206,7 @@ // If we were to send to a channel we don't have, drop it. return null -/obj/item/device/radio/talk_into(mob/living/M as mob, message, channel, verb = "says", datum/language/speaking = null) +/obj/item/device/radio/talk_into(mob/living/M as mob, message, channel, verb = "says", datum/language/speaking = null, listening_device = FALSE) if(!on) return // the device has to be on // Fix for permacell radios, but kinda eh about actually fixing them. if(!M || !message) return @@ -252,12 +252,6 @@ // --- Carbon Nonhuman --- else if(iscarbon(M)) // Nonhuman carbon mob jobname = "No id" - // --- AI --- - else if(isAI(M)) - jobname = "AI" - // --- Cyborg --- - else if(isrobot(M)) - jobname = "Cyborg" // --- Unidentifiable mob --- else jobname = "Unknown" @@ -297,11 +291,11 @@ if(use_volume) Broadcast_Message(connection, M, voicemask, pick(M.speak_emote), src, message, displayname, jobname, real_name, M.voice_name, - filter_type, 0, target_zs, connection.frequency, verb, speaking, volume) + filter_type, 0, target_zs, connection.frequency, verb, speaking, volume, listening_device) else Broadcast_Message(connection, M, voicemask, pick(M.speak_emote), src, message, displayname, jobname, real_name, M.voice_name, - filter_type, 0, target_zs, connection.frequency, verb, speaking, RADIO_VOLUME_QUIET) + filter_type, 0, target_zs, connection.frequency, verb, speaking, RADIO_VOLUME_QUIET, listening_device) /obj/item/device/radio/proc/get_target_zs(frequency) var/turf/position = get_turf(src) @@ -431,136 +425,6 @@ for (var/ch_name in channels) channels[ch_name] = 0 -/////////////////////////////// -//////////Borg Radios////////// -/////////////////////////////// -//Giving borgs their own radio to have some more room to work with -Sieve - -/obj/item/device/radio/borg - var/mob/living/silicon/robot/myborg = null // Cyborg which owns this radio. Used for power checks - var/obj/item/device/encryptionkey/keyslot = null//Borg radios can handle a single encryption key - var/shut_up = 0 - icon = 'icons/obj/items/robot_component.dmi' // Cyborgs radio icons should look like the component. - icon_state = "radio" - canhear_range = 3 - -/obj/item/device/radio/borg/talk_into() - ..() - if (isrobot(src.loc)) - var/mob/living/silicon/robot/R = src.loc - var/datum/robot_component/C = R.components["radio"] - R.cell_use_power(C.active_usage) - -/obj/item/device/radio/borg/attackby(obj/item/W as obj, mob/user as mob) -// ..() - if (!(HAS_TRAIT(W, TRAIT_TOOL_SCREWDRIVER) || (istype(W, /obj/item/device/encryptionkey)))) - return - - if(HAS_TRAIT(W, TRAIT_TOOL_SCREWDRIVER)) - if(keyslot) - - - for(var/ch_name in channels) - SSradio.remove_object(src, GLOB.radiochannels[ch_name]) - secure_radio_connections[ch_name] = null - - - if(keyslot) - var/turf/T = get_turf(user) - if(T) - keyslot.forceMove(T) - keyslot = null - - recalculateChannels() - to_chat(user, "You pop out the encryption key in the radio!") - - else - to_chat(user, "This radio doesn't have any encryption keys!") - - if(istype(W, /obj/item/device/encryptionkey/)) - if(keyslot) - to_chat(user, "The radio can't hold another key!") - return - - if(!keyslot) - if(user.drop_held_item()) - W.forceMove(src) - keyslot = W - - recalculateChannels() - - return - -/obj/item/device/radio/borg/proc/recalculateChannels() - src.channels = list() - - var/mob/living/silicon/robot/D = src.loc - if(D.module) - for(var/ch_name in D.module.channels) - if(ch_name in src.channels) - continue - src.channels += ch_name - src.channels[ch_name] += D.module.channels[ch_name] - if(keyslot) - for(var/ch_name in keyslot.channels) - if(ch_name in src.channels) - continue - src.channels += ch_name - src.channels[ch_name] += keyslot.channels[ch_name] - - for (var/ch_name in src.channels) - secure_radio_connections[ch_name] = SSradio.add_object(src, GLOB.radiochannels[ch_name], RADIO_CHAT) - - SStgui.update_uis(src) - -/obj/item/device/radio/borg/Topic(href, href_list) - if(usr.stat || !on) - return - if (href_list["mode"]) - if(subspace_transmission != 1) - subspace_transmission = 1 - to_chat(usr, "Subspace Transmission is disabled") - else - subspace_transmission = 0 - to_chat(usr, "Subspace Transmission is enabled") - if(subspace_transmission == 1)//Simple as fuck, clears the channel list to prevent talking/listening over them if subspace transmission is disabled - channels = list() - else - recalculateChannels() - if (href_list["shutup"]) // Toggle loudspeaker mode, AKA everyone around you hearing your radio. - shut_up = !shut_up - if(shut_up) - canhear_range = 0 - else - canhear_range = 3 - - ..() - -/obj/item/device/radio/borg/interact(mob/user as mob) - if(!on) - return - - var/dat = "[src]" - dat += {" - Speaker: [listening ? "Engaged" : "Disengaged"]
        - Frequency: - - - - - [format_frequency(frequency)] - + - +
        - Toggle Broadcast Mode
        - Toggle Loudspeaker
        - "} - - if(!subspace_transmission)//Don't even bother if subspace isn't turned on - for (var/ch_name in channels) - dat+=text_sec_channel(ch_name, channels[ch_name]) - dat+={"[text_wires()]
        "} - show_browser(user, dat, name, "radio") - return - - /obj/item/device/radio/proc/config(op) for (var/ch_name in channels) SSradio.remove_object(src, GLOB.radiochannels[ch_name]) diff --git a/code/game/objects/items/devices/scanners.dm b/code/game/objects/items/devices/scanners.dm index 512ca8baad9b..8c507dad18e3 100644 --- a/code/game/objects/items/devices/scanners.dm +++ b/code/game/objects/items/devices/scanners.dm @@ -191,7 +191,7 @@ FORENSIC SCANNER user.show_message(SPAN_DANGER("Pressure: [round(env_pressure,0.1)] kPa"), 1) if(env_pressure > 0) user.show_message(SPAN_NOTICE("Gas Type: [env_gas]"), 1) - user.show_message(SPAN_NOTICE("Temperature: [round(env_temp-T0C)]°C"), 1) + user.show_message(SPAN_NOTICE("Temperature: [floor(env_temp-T0C)]°C"), 1) src.add_fingerprint(user) return @@ -276,7 +276,7 @@ FORENSIC SCANNER if(!QDELETED(O.reagents)) var/dat = "" - if(O.reagents.reagent_list.len > 0) + if(length(O.reagents.reagent_list) > 0) var/one_percent = O.reagents.total_volume / 100 for (var/datum/reagent/R in O.reagents.reagent_list) if(prob(reliability)) @@ -340,6 +340,21 @@ FORENSIC SCANNER ex_potential = 0 int_potential = 0 rad_potential = 0 + + if(istype(O, /obj/item/ammo_magazine/flamer_tank)) + var/obj/item/ammo_magazine/flamer_tank/tank = O + if(!length(tank.reagents.reagent_list)) + to_chat(user, SPAN_NOTICE("No fuel detected in [O]")) + return + var/result + var/datum/reagent/chem = tank.reagents.reagent_list[1] + result += SPAN_BLUE("Fuel Statistics:") + result += SPAN_BLUE("
        Intensity: [min(chem.intensityfire, tank.max_intensity)]") + result += SPAN_BLUE("
        Duration: [min(chem.durationfire, tank.max_duration)]") + result += SPAN_BLUE("
        Range: [min(chem.rangefire, tank.max_range)]") + to_chat(user, SPAN_NOTICE("[result]")) + return + if(istype(O,/obj/item/explosive)) var/obj/item/explosive/E = O if(!E.customizable) @@ -381,7 +396,7 @@ FORENSIC SCANNER /obj/item/device/demo_scanner/proc/scan(obj/O) if(QDELETED(O.reagents)) return - if(O.reagents.reagent_list.len > 0) + if(length(O.reagents.reagent_list) > 0) for(var/datum/reagent/R in O.reagents.reagent_list) dat += SPAN_BLUE("
        [R.name]: [R.volume]u") if(R.explosive) diff --git a/code/game/objects/items/devices/suit_cooling.dm b/code/game/objects/items/devices/suit_cooling.dm index e0f65a4b31ec..564b3e41f591 100644 --- a/code/game/objects/items/devices/suit_cooling.dm +++ b/code/game/objects/items/devices/suit_cooling.dm @@ -174,6 +174,6 @@ . += "The panel is open." if (cell) - . += "The charge meter reads [round(cell.percent())]%." + . += "The charge meter reads [floor(cell.percent())]%." else . += "It doesn't have a power cell installed." diff --git a/code/game/objects/items/devices/taperecorder.dm b/code/game/objects/items/devices/taperecorder.dm index 9fe3521d858b..9521de9a039a 100644 --- a/code/game/objects/items/devices/taperecorder.dm +++ b/code/game/objects/items/devices/taperecorder.dm @@ -49,7 +49,7 @@ return SPAN_NOTICE("PLAYING") else var/time = mytape.used_capacity / 10 //deciseconds / 10 = seconds - var/mins = round(time / 60) + var/mins = floor(time / 60) var/secs = time - mins * 60 return SPAN_NOTICE("[mins]m [secs]s") return SPAN_NOTICE("NO TAPE INSERTED") @@ -67,7 +67,7 @@ if(!playing && !recording) icons_available += list("Record" = image(radial_icon_file,"record")) icons_available += list("Play" = image(radial_icon_file,"play")) - if(canprint && mytape?.storedinfo.len) + if(canprint && length(mytape?.storedinfo)) icons_available += list("Print Transcript" = image(radial_icon_file,"print")) if(playing || recording) @@ -241,7 +241,7 @@ if(playing) return - if(mytape.storedinfo.len < 1) + if(length(mytape.storedinfo) < 1) audible_message(SPAN_MAROON("[icon2html(src, usr)] Tape has no data.")) return @@ -257,7 +257,7 @@ break if(playing == FALSE) break - if(mytape.storedinfo.len < i) + if(length(mytape.storedinfo) < i) audible_message(SPAN_MAROON("[icon2html(src, usr)] End of recording.")) break @@ -265,7 +265,7 @@ langchat_speech(mytape.storedinfo[i], heard, GLOB.all_languages, skip_language_check = TRUE, additional_styles = list("langchat_small")) audible_message(SPAN_MAROON("[icon2html(src, usr)] [mytape.storedinfo[i]]"))//We want to display this properly, don't double encode - if(mytape.storedinfo.len < i + 1) + if(length(mytape.storedinfo) < i + 1) playsleepseconds = 1 sleep(1 SECONDS) else @@ -310,7 +310,7 @@ set name = "Print Transcript" set category = "Object" - if(!mytape.storedinfo.len) + if(!length(mytape.storedinfo)) return if(!can_use(usr)) return @@ -326,7 +326,7 @@ playsound(src, 'sound/items/taperecorder/taperecorder_print.ogg', 50, FALSE) var/obj/item/paper/sheet_of_paper = new /obj/item/paper(get_turf(src)) var/t1 = "Transcript:

        " - for(var/i in 1 to mytape.storedinfo.len) + for(var/i in 1 to length(mytape.storedinfo)) t1 += "[mytape.storedinfo[i]]
        " sheet_of_paper.info = t1 var/tapename = mytape.name @@ -368,7 +368,7 @@ var/unspooled = FALSE var/list/icons_available = list() var/radial_icon_file = 'icons/mob/radial_tape.dmi' - var/list/cassette_colours = list("blue", "gray", "green", "orange", "pink_stripe", "purple", "rainbow", "red_black", "red_stripe", "camo", "rising_sun", "orange", "blue", "ocean", "aesthetic") + var/list/cassette_colors = list("blue", "gray", "green", "orange", "pink_stripe", "purple", "rainbow", "red_black", "red_stripe", "camo", "rising_sun", "orange", "blue", "ocean", "aesthetic") var/list/cassette_map_themes = list("solaris", "ice", "lz", "dam", "worstmap") inherent_traits = list(TRAIT_ITEM_RENAME_SPECIAL) //used to make the rename component work specially. ///used to store the tape's name for one side and the other side @@ -382,7 +382,7 @@ if(unspooled) . += SPAN_WARNING("It's had all its magnetic tape pulled out! Maybe you can wind it back in with a screwdriver.") else - var/used_tape_percent = round((used_capacity / max_capacity)*100) + var/used_tape_percent = floor((used_capacity / max_capacity)*100) switch(used_tape_percent) if(0 to 5) . += SPAN_NOTICE("It's unused.") @@ -501,7 +501,7 @@ icon_state = "cassette_rainbow" /obj/item/tape/random/Initialize(mapload) - icon_state = "cassette_[pick(cassette_colours)]" + icon_state = "cassette_[pick(cassette_colors)]" . = ..() /obj/item/tape/regulation diff --git a/code/game/objects/items/devices/teleportation.dm b/code/game/objects/items/devices/teleportation.dm index 793f399ecdf0..d64e717a3095 100644 --- a/code/game/objects/items/devices/teleportation.dm +++ b/code/game/objects/items/devices/teleportation.dm @@ -48,7 +48,7 @@ if (usr.stat || usr.is_mob_restrained()) return var/turf/current_location = get_turf(usr)//What turf is the user on? - if(!current_location || is_admin_level(current_location.z))//If turf was not found or they're on z level 2. + if(!current_location || should_block_game_interaction(current_location))//If turf was not found or they're on z level 2. to_chat(usr, "[src] is malfunctioning.") return if ((usr.contents.Find(src) || (in_range(src, usr) && istype(src.loc, /turf)))) @@ -140,7 +140,7 @@ ..() var/turf/current_location = get_turf(user)//What turf is the user on? - if(!current_location || is_admin_level(current_location.z))//If turf was not found or they're on z level 2 + if(!current_location || should_block_game_interaction(current_location))//If turf was not found or they're on z level 2 to_chat(user, SPAN_NOTICE("\The [src] is malfunctioning.")) return var/list/L = list( ) @@ -156,7 +156,7 @@ if(T.x>world.maxx-8 || T.x<8) continue //putting them at the edge is dumb if(T.y>world.maxy-8 || T.y<8) continue turfs += T - if(turfs.len) + if(length(turfs)) L["None (Dangerous)"] = pick(turfs) var/t1 = tgui_input_list(user, "Please select a teleporter to lock in on.", "Hand Teleporter", L) if ((user.get_active_hand() != src || user.stat || user.is_mob_restrained())) diff --git a/code/game/objects/items/devices/walkman.dm b/code/game/objects/items/devices/walkman.dm index 2bbcb802d426..42c03d757dbd 100644 --- a/code/game/objects/items/devices/walkman.dm +++ b/code/game/objects/items/devices/walkman.dm @@ -95,17 +95,17 @@ /obj/item/device/walkman/proc/play() if(!current_song) - if(current_playlist.len > 0) + if(length(current_playlist) > 0) current_song = sound(current_playlist[pl_index], 0, 0, SOUND_CHANNEL_WALKMAN, volume) current_song.status = SOUND_STREAM else return paused = FALSE if(current_song.status & SOUND_PAUSED) - to_chat(current_listener,SPAN_INFO("Resuming [pl_index] of [current_playlist.len]")) + to_chat(current_listener,SPAN_INFO("Resuming [pl_index] of [length(current_playlist)]")) update_song(current_song,current_listener) else - to_chat(current_listener,SPAN_INFO("Now playing [pl_index] of [current_playlist.len]")) + to_chat(current_listener,SPAN_INFO("Now playing [pl_index] of [length(current_playlist)]")) update_song(current_song,current_listener,0) update_song(current_song,current_listener) @@ -146,11 +146,11 @@ /obj/item/device/walkman/proc/next_song(mob/user) - if(user.is_mob_incapacitated() || current_playlist.len == 0) return + if(user.is_mob_incapacitated() || length(current_playlist) == 0) return break_sound() - if(pl_index + 1 <= current_playlist.len) + if(pl_index + 1 <= length(current_playlist)) pl_index++ else pl_index = 1 diff --git a/code/game/objects/items/devices/whistle.dm b/code/game/objects/items/devices/whistle.dm index 4eb61a48b903..331df3ffa006 100644 --- a/code/game/objects/items/devices/whistle.dm +++ b/code/game/objects/items/devices/whistle.dm @@ -8,7 +8,8 @@ actions_types = list(/datum/action/item_action) var/volume = 60 - var/spamcheck = 0 + var/spam_cooldown_time = 10 SECONDS + COOLDOWN_DECLARE(spam_cooldown) /obj/item/device/whistle/attack_self(mob/user) ..() @@ -28,17 +29,17 @@ ..() /obj/item/device/whistle/proc/whistle_playsound(mob/user) - if (spamcheck) + if(!COOLDOWN_FINISHED(src, spam_cooldown)) + to_chat(user, SPAN_DANGER("You are out of breath after using [src]! Wait [COOLDOWN_SECONDSLEFT(src, spam_cooldown)] second\s.")) return user.visible_message(SPAN_WARNING("[user] blows into [src]!")) playsound(get_turf(src), 'sound/items/whistle.ogg', volume, 1, vary = 0) - spamcheck = 1 - addtimer(VARSET_CALLBACK(src, spamcheck, FALSE), 3 SECONDS) + COOLDOWN_START(src, spam_cooldown, spam_cooldown_time) /obj/item/device/whistle/MouseDrop(obj/over_object) - if(ishuman(usr) || isrobot(usr)) + if(ishuman(usr)) if(!usr.is_mob_restrained() && !usr.stat && usr.wear_mask == src) switch(over_object.name) diff --git a/code/game/objects/items/explosives/explosive.dm b/code/game/objects/items/explosives/explosive.dm index 4483372c9b85..1bd6985bc015 100644 --- a/code/game/objects/items/explosives/explosive.dm +++ b/code/game/objects/items/explosives/explosive.dm @@ -24,6 +24,8 @@ "min_fire_rad" = 1, "min_fire_int" = 3, "min_fire_dur" = 3 ) var/falloff_mode = EXPLOSION_FALLOFF_SHAPE_LINEAR + /// Whether a star shape is possible when the intensity meets CHEM_FIRE_STAR_THRESHOLD + var/allow_star_shape = TRUE var/use_dir = FALSE var/angle = 360 var/has_blast_wave_dampener = FALSE; //Whether or not the casing can be toggle between different falloff_mode @@ -72,13 +74,13 @@ detonator=null assembly_stage = ASSEMBLY_EMPTY icon_state = base_icon_state - else if(containers.len) + else if(length(containers)) for(var/obj/B in containers) if(istype(B)) containers -= B user.put_in_hands(B) current_container_volume = 0 - desc = initial(desc) + "\n Contains [containers.len] containers[detonator?" and detonator":""]" + desc = initial(desc) + "\n Contains [length(containers)] containers[detonator?" and detonator":""]" return cause_data = create_cause_data(initial(name), user) return TRUE @@ -126,11 +128,11 @@ det.forceMove(src) detonator = det assembly_stage = ASSEMBLY_UNLOCKED - desc = initial(desc) + "\n Contains [containers.len] containers[detonator?" and detonator":""]" + desc = initial(desc) + "\n Contains [length(containers)] containers[detonator?" and detonator":""]" update_icon() else if(HAS_TRAIT(W, TRAIT_TOOL_SCREWDRIVER)) if(assembly_stage == ASSEMBLY_UNLOCKED) - if(containers.len) + if(length(containers)) to_chat(user, SPAN_NOTICE("You lock the assembly.")) else to_chat(user, SPAN_NOTICE("You lock the empty assembly.")) @@ -141,7 +143,7 @@ else if(assembly_stage == ASSEMBLY_LOCKED) to_chat(user, SPAN_NOTICE("You unlock the assembly.")) playsound(loc, 'sound/items/Screwdriver.ogg', 25, 0, 6) - desc = initial(desc) + "\n Contains [containers.len] containers[detonator?" and detonator":""]" + desc = initial(desc) + "\n Contains [length(containers)] containers[detonator?" and detonator":""]" assembly_stage = ASSEMBLY_UNLOCKED update_icon() else if(is_type_in_list(W, allowed_containers) && (!assembly_stage || assembly_stage == ASSEMBLY_UNLOCKED)) @@ -159,7 +161,7 @@ containers += W current_container_volume += W.reagents.maximum_volume assembly_stage = ASSEMBLY_UNLOCKED - desc = initial(desc) + "\n Contains [containers.len] containers[detonator?" and detonator":""]" + desc = initial(desc) + "\n Contains [length(containers)] containers[detonator?" and detonator":""]" else to_chat(user, SPAN_DANGER("\the [W] is empty.")) @@ -185,6 +187,7 @@ for(var/obj/item/reagent_container/glass/G in containers) if(G.reagents.total_volume) has_reagents = 1 + reagents.allow_star_shape = allow_star_shape break if(!has_reagents) @@ -207,7 +210,7 @@ reagents.source_mob = WEAKREF(cause_mob) msg_admin_niche("[key_name(cause_mob)] detonated custom explosive by [key_name(creator)]: [name] (REAGENTS: [reagent_list_text]) in [get_area(src)] [ADMIN_JMP(loc)]", loc.x, loc.y, loc.z) - if(containers.len < 2) + if(length(containers) < 2) reagents.trigger_volatiles = TRUE //Explode on the first transfer for(var/obj/item/reagent_container/glass/G in containers) diff --git a/code/game/objects/items/explosives/grenades/flashbang.dm b/code/game/objects/items/explosives/grenades/flashbang.dm index 50cb34668ae3..de4af15667e9 100644 --- a/code/game/objects/items/explosives/grenades/flashbang.dm +++ b/code/game/objects/items/explosives/grenades/flashbang.dm @@ -135,8 +135,9 @@ deafen_amount = 0 to_chat(M, SPAN_HELPFUL("Your gear protects you from the worst of the 'bang'.")) - M.apply_effect(weaken_amount, WEAKEN) - M.apply_effect(paralyze_amount, PARALYZE) + M.Stun(weaken_amount) + M.KnockDown(weaken_amount) + M.KnockOut(paralyze_amount) if(deafen_amount) M.SetEarDeafness(max(M.ear_deaf, deafen_amount)) diff --git a/code/game/objects/items/explosives/grenades/grenade.dm b/code/game/objects/items/explosives/grenades/grenade.dm index 6b793233678d..b2f95646a966 100644 --- a/code/game/objects/items/explosives/grenades/grenade.dm +++ b/code/game/objects/items/explosives/grenades/grenade.dm @@ -36,7 +36,7 @@ to_chat(user, SPAN_WARNING("You don't have the dexterity to do this!")) return FALSE - if(harmful && !user.allow_gun_usage) + if(harmful && ishuman(user) && !user.allow_gun_usage) to_chat(user, SPAN_WARNING("Your programming prevents you from using this!")) return FALSE diff --git a/code/game/objects/items/explosives/grenades/marines.dm b/code/game/objects/items/explosives/grenades/marines.dm index 46d2d4eba921..1cd3e1577c57 100644 --- a/code/game/objects/items/explosives/grenades/marines.dm +++ b/code/game/objects/items/explosives/grenades/marines.dm @@ -705,11 +705,11 @@ det_time = 20 underslug_launchable = TRUE harmful = FALSE - var/foam_metal_type = FOAM_METAL_TYPE_ALUMINIUM + var/foam_metal_type = FOAM_METAL_TYPE_IRON /obj/item/explosive/grenade/metal_foam/prime() var/datum/effect_system/foam_spread/s = new() - s.set_up(12, get_turf(src), metal_foam = foam_metal_type) //Metalfoam 1 for aluminum foam, 2 for iron foam (Stronger), 12 amt = 2 tiles radius (5 tile length diamond) + s.set_up(12, get_turf(src), metal_foam = foam_metal_type) //12 amt = 2 tiles radius (5 tile length diamond) s.start() qdel(src) diff --git a/code/game/objects/items/explosives/mine.dm b/code/game/objects/items/explosives/mine.dm index 768a32c003fa..45065a2de1de 100644 --- a/code/game/objects/items/explosives/mine.dm +++ b/code/game/objects/items/explosives/mine.dm @@ -197,7 +197,7 @@ return if(L.stat == DEAD) return - if(L.get_target_lock(iff_signal) || isrobot(L)) + if(L.get_target_lock(iff_signal)) return if(HAS_TRAIT(L, TRAIT_ABILITY_BURROWED)) return @@ -266,6 +266,8 @@ /obj/effect/mine_tripwire/Destroy() if(linked_claymore) + if(linked_claymore.tripwire == src) + linked_claymore.tripwire = null linked_claymore = null . = ..() diff --git a/code/game/objects/items/explosives/plastic.dm b/code/game/objects/items/explosives/plastic.dm index 071ff3458a91..58cbca9a5ab3 100644 --- a/code/game/objects/items/explosives/plastic.dm +++ b/code/game/objects/items/explosives/plastic.dm @@ -24,6 +24,9 @@ var/list/breachable = list(/obj/structure/window, /turf/closed, /obj/structure/machinery/door, /obj/structure/mineral_door , /obj/structure/cargo_container) antigrief_protection = TRUE //Should it be checked by antigrief? + var/req_skill = SKILL_ENGINEER + var/req_skill_level = SKILL_ENGINEER_TRAINED + /obj/item/explosive/plastic/Destroy() disarm() return ..() @@ -65,7 +68,7 @@ if(user.action_busy || !flag) return - if(!skillcheck(user, SKILL_ENGINEER, SKILL_ENGINEER_TRAINED)) + if(!skillcheck(user, req_skill, req_skill_level)) to_chat(user, SPAN_WARNING("You don't seem to know how to use [src]...")) return if(!can_place(user, target)) @@ -321,6 +324,8 @@ penetration = 0.60 deploying_time = 10 var/shrapnel_volume = 40 + var/shrapnel_type = /datum/ammo/bullet/shrapnel/metal + var/explosion_strength = 60 /obj/item/explosive/plastic/breaching_charge/can_place(mob/user, atom/target) if(!is_type_in_list(target, breachable))//only items on the list are allowed @@ -347,13 +352,24 @@ /obj/item/explosive/plastic/breaching_charge/handle_explosion(turf/target_turf, dir, cause_data) var/explosion_target = get_step(target_turf, dir) - create_shrapnel(explosion_target, shrapnel_volume, dir, angle,/datum/ammo/bullet/shrapnel/metal, cause_data) + create_shrapnel(explosion_target, shrapnel_volume, dir, angle, shrapnel_type, cause_data) addtimer(CALLBACK(src, PROC_REF(trigger_explosion), target_turf, dir, cause_data), 1) /obj/item/explosive/plastic/breaching_charge/proc/trigger_explosion(turf/target_turf, dir, cause_data) - cell_explosion(target_turf, 60, 60, EXPLOSION_FALLOFF_SHAPE_EXPONENTIAL, dir, cause_data) + cell_explosion(target_turf, explosion_strength, explosion_strength, EXPLOSION_FALLOFF_SHAPE_EXPONENTIAL, dir, cause_data) qdel(src) +/obj/item/explosive/plastic/breaching_charge/rubber + name = "X17 riot charge" + desc = "An explosive device used to break into areas while protecting the user from the blast. Unlike the standard breaching charge, the X17 deploys a cone spray of rubber pellets to incapacitate rather than kill." + icon_state = "riot-charge" + overlay_image = "riot-active" + shrapnel_volume = 20 + shrapnel_type = /datum/ammo/bullet/shrapnel/rubber + req_skill = SKILL_POLICE + req_skill_level = SKILL_POLICE_SKILLED + antigrief_protection = FALSE + /obj/item/explosive/plastic/breaching_charge/plasma name = "plasma charge" desc = "An alien explosive device. Who knows what it might do." @@ -367,6 +383,8 @@ deploying_time = 10 flags_item = NOBLUDGEON|ITEM_PREDATOR shrapnel_volume = 10 + shrapnel_type = /datum/ammo/bullet/shrapnel/plasma + explosion_strength = 90 /obj/item/explosive/plastic/breaching_charge/plasma/can_place(mob/user, atom/target) if(!HAS_TRAIT(user, TRAIT_YAUTJA_TECH)) @@ -374,11 +392,3 @@ return FALSE . = ..() -/obj/item/explosive/plastic/breaching_charge/plasma/handle_explosion(turf/target_turf, dir, cause_data) - var/explosion_target = get_step(target_turf, dir) - create_shrapnel(explosion_target, shrapnel_volume, dir, angle,/datum/ammo/bullet/shrapnel/plasma, cause_data) - addtimer(CALLBACK(src, PROC_REF(trigger_explosion), target_turf, dir, cause_data), 1) - -/obj/item/explosive/plastic/breaching_charge/plasma/trigger_explosion(turf/target_turf, dir, cause_data) - cell_explosion(target_turf, 90, 90, EXPLOSION_FALLOFF_SHAPE_EXPONENTIAL, dir, cause_data) - qdel(src) diff --git a/code/game/objects/items/explosives/warhead.dm b/code/game/objects/items/explosives/warhead.dm index 9825d7483193..1b7ec1ed4f94 100644 --- a/code/game/objects/items/explosives/warhead.dm +++ b/code/game/objects/items/explosives/warhead.dm @@ -9,10 +9,11 @@ name = "84mm rocket warhead" desc = "A custom warhead meant for 84mm rocket shells." icon_state = "warhead_rocket" - max_container_volume = 180 + max_container_volume = 210 + allow_star_shape = FALSE matter = list("metal" = 11250) //3 sheets - reaction_limits = list( "max_ex_power" = 300, "base_ex_falloff" = 120,"max_ex_shards" = 64, - "max_fire_rad" = 7, "max_fire_int" = 30, "max_fire_dur" = 36, + reaction_limits = list( "max_ex_power" = 240, "base_ex_falloff" = 90,"max_ex_shards" = 64, + "max_fire_rad" = 6, "max_fire_int" = 40, "max_fire_dur" = 48, "min_fire_rad" = 2, "min_fire_int" = 4, "min_fire_dur" = 5 ) has_blast_wave_dampener = TRUE diff --git a/code/game/objects/items/frames/camera.dm b/code/game/objects/items/frames/camera.dm index efe697c3944b..5283540ea358 100644 --- a/code/game/objects/items/frames/camera.dm +++ b/code/game/objects/items/frames/camera.dm @@ -89,7 +89,7 @@ return var/list/tempnetwork = splittext(input, ",") - if(tempnetwork.len < 1) + if(length(tempnetwork) < 1) to_chat(usr, "No network found please hang up and try your call again.") return @@ -103,12 +103,7 @@ C.assembly = src C.auto_turn() - C.network = uniquelist(tempnetwork) - tempnetwork = difflist(C.network,GLOB.RESTRICTED_CAMERA_NETWORKS) - if(!tempnetwork.len)//Camera isn't on any open network - remove its chunk from AI visibility. - GLOB.cameranet.removeCamera(C) - C.c_tag = input for(var/i = 5; i >= 0; i -= 1) @@ -138,7 +133,7 @@ return // Taking out upgrades - else if(HAS_TRAIT(W, TRAIT_TOOL_CROWBAR) && upgrades.len) + else if(HAS_TRAIT(W, TRAIT_TOOL_CROWBAR) && length(upgrades)) var/obj/U = locate(/obj) in upgrades if(U) to_chat(user, "You unattach an upgrade from the assembly.") diff --git a/code/game/objects/items/frames/matrix.dm b/code/game/objects/items/frames/matrix.dm index 3a8464f58568..46d121909068 100644 --- a/code/game/objects/items/frames/matrix.dm +++ b/code/game/objects/items/frames/matrix.dm @@ -18,7 +18,7 @@ /obj/item/frame/matrix_frame/attackby(obj/item/W, mob/user as mob) switch(state) if(ASSEMBLY_EMPTY) - if(istype(W, /obj/item/reagent_container/glass/beaker/vial) && W.reagents.total_volume == 30 && W.reagents.reagent_list.len == 1) + if(istype(W, /obj/item/reagent_container/glass/beaker/vial) && W.reagents.total_volume == 30 && length(W.reagents.reagent_list) == 1) user.drop_held_item(W) W.forceMove(src) state = ASSEMBLY_UNLOCKED @@ -45,7 +45,7 @@ else if(W.reagents.total_volume < 30) to_chat(user, SPAN_WARNING("The testing indicator lights up with red! The container requires to be fully filled!")) return - else if (W.reagents.reagent_list.len > 1) + else if (length(W.reagents.reagent_list) > 1) to_chat(user, SPAN_WARNING("The testing indicator lights up with red! The container requires a pure sample!")) if(ASSEMBLY_UNLOCKED) diff --git a/code/game/objects/items/frames/table_rack.dm b/code/game/objects/items/frames/table_rack.dm index c7aa53a2c4c1..eda9b9c5749b 100644 --- a/code/game/objects/items/frames/table_rack.dm +++ b/code/game/objects/items/frames/table_rack.dm @@ -100,6 +100,7 @@ desc = "A kit for a table, including a large, flat wooden surface and four legs. Some assembly required." icon_state = "wood_tableparts" flags_atom = FPRINT + matter = null table_type = /obj/structure/surface/table/woodentable /obj/item/frame/table/wood/attackby(obj/item/W, mob/user) @@ -140,6 +141,7 @@ desc = "A kit for a table, including a large, flat wooden and carpet surface and four legs. Some assembly required." icon_state = "gamble_tableparts" flags_atom = null + matter = null table_type = /obj/structure/surface/table/gamblingtable /obj/item/frame/table/gambling/attackby(obj/item/W as obj, mob/user as mob) diff --git a/code/game/objects/items/fulton.dm b/code/game/objects/items/fulton.dm index 788613cf4c6e..9cdc2b78b609 100644 --- a/code/game/objects/items/fulton.dm +++ b/code/game/objects/items/fulton.dm @@ -140,10 +140,12 @@ GLOBAL_LIST_EMPTY(deployed_fultons) sleep(30) original_location = get_turf(attached_atom) playsound(loc, 'sound/items/fulton.ogg', 50, 1) - reservation = SSmapping.RequestBlockReservation(3, 3, turf_type_override = /turf/open/space) - var/middle_x = reservation.bottom_left_coords[1] + FLOOR((reservation.top_right_coords[1] - reservation.bottom_left_coords[1]) / 2, 1) - var/middle_y = reservation.bottom_left_coords[2] + FLOOR((reservation.top_right_coords[2] - reservation.bottom_left_coords[2]) / 2, 1) - var/turf/space_tile = locate(middle_x, middle_y, reservation.bottom_left_coords[3]) + reservation = SSmapping.request_turf_block_reservation(3, 3, 1, turf_type_override = /turf/open/space) + var/turf/bottom_left_turf = reservation.bottom_left_turfs[1] + var/turf/top_right_turf = reservation.top_right_turfs[1] + var/middle_x = bottom_left_turf.x + floor((top_right_turf.x - bottom_left_turf.x) / 2) + var/middle_y = bottom_left_turf.y + floor((top_right_turf.y - bottom_left_turf.y) / 2) + var/turf/space_tile = locate(middle_x, middle_y, bottom_left_turf.z) if(!space_tile) visible_message(SPAN_WARNING("[src] begins beeping like crazy. Something is wrong!")) return diff --git a/code/game/objects/items/handcuffs.dm b/code/game/objects/items/handcuffs.dm index 2137b41d86bf..af71b806ed42 100644 --- a/code/game/objects/items/handcuffs.dm +++ b/code/game/objects/items/handcuffs.dm @@ -1,124 +1,162 @@ -/obj/item/handcuffs - name = "handcuffs" - desc = "Use this to keep prisoners in line." - gender = PLURAL - icon = 'icons/obj/items/items.dmi' - icon_state = "handcuff" - flags_atom = FPRINT|CONDUCT - flags_equip_slot = SLOT_WAIST - throwforce = 5 - w_class = SIZE_SMALL - throw_speed = SPEED_SLOW - throw_range = 5 - matter = list("metal" = 500) - - var/dispenser = 0 +/obj/item/restraint + /// SLOT_HANDS or SLOT_LEGS, for handcuffs or legcuffs + var/target_zone = SLOT_HANDS + /// How long to break out var/breakouttime = 1 MINUTES /// determines if handcuffs will be deleted on removal var/single_use = 0 var/cuff_sound = 'sound/weapons/handcuffs.ogg' /// how many deciseconds it takes to cuff someone var/cuff_delay = 4 SECONDS + /// If can be applied to people manually + var/manual = TRUE -/obj/item/handcuffs/attack(mob/living/carbon/C, mob/user) - if(!istype(C)) +/obj/item/restraint/attack(mob/living/carbon/attacked_carbon, mob/user) + if(!istype(attacked_carbon) || !manual) return ..() - if (!istype(user, /mob/living/carbon/human)) + if (!ishuman(user)) to_chat(user, SPAN_DANGER("You don't have the dexterity to do this!")) return - if(!C.handcuffed) - place_handcuffs(C, user) - -/obj/item/handcuffs/get_mob_overlay(mob/user_mob, slot) - var/image/ret = ..() - - var/image/handcuffs = overlay_image('icons/mob/mob.dmi', "handcuff1", color, RESET_COLOR) - ret.overlays += handcuffs - - return ret - -/obj/item/handcuffs/proc/place_handcuffs(mob/living/carbon/target, mob/user) + switch(target_zone) + if(SLOT_HANDS) + if(!attacked_carbon.handcuffed) + place_handcuffs(attacked_carbon, user) + if(SLOT_LEGS) + if(!attacked_carbon.legcuffed) + apply_legcuffs(attacked_carbon, user) + +/obj/item/restraint/proc/place_handcuffs(mob/living/carbon/target, mob/user) playsound(src.loc, cuff_sound, 25, 1, 4) if(user.action_busy) return - if (ishuman(target)) - var/mob/living/carbon/human/H = target + if(ishuman(target)) + var/mob/living/carbon/human/human_mob = target - if (!H.has_limb_for_slot(WEAR_HANDCUFFS)) - to_chat(user, SPAN_DANGER("\The [H] needs at least two wrists before you can cuff them together!")) + if(!human_mob.has_limb_for_slot(WEAR_HANDCUFFS)) + to_chat(user, SPAN_DANGER("\The [human_mob] needs at least two wrists before you can cuff them together!")) return - H.attack_log += text("\[[time_stamp()]\] Has been handcuffed (attempt) by [key_name(user)]") - user.attack_log += text("\[[time_stamp()]\] Attempted to handcuff [key_name(H)]") - msg_admin_attack("[key_name(user)] attempted to handcuff [key_name(H)] in [get_area(src)] ([src.loc.x],[src.loc.y],[src.loc.z]).", src.loc.x, src.loc.y, src.loc.z) + human_mob.attack_log += text("\[[time_stamp()]\] Has been handcuffed (attempt) by [key_name(user)]") + user.attack_log += text("\[[time_stamp()]\] Attempted to handcuff [key_name(human_mob)]") + msg_admin_attack("[key_name(user)] attempted to handcuff [key_name(human_mob)] in [get_area(src)] ([loc.x],[loc.y],[loc.z]).", loc.x, loc.y, loc.z) - user.visible_message(SPAN_NOTICE("[user] tries to put [src] on [H].")) - if(do_after(user, cuff_delay, INTERRUPT_MOVED, BUSY_ICON_HOSTILE, H, INTERRUPT_MOVED, BUSY_ICON_GENERIC)) - if(src == user.get_active_hand() && !H.handcuffed && Adjacent(user)) - if(iscarbon(H)) - if(istype(H.buckled, /obj/structure/bed/roller)) + user.visible_message(SPAN_NOTICE("[user] tries to put [src] on [human_mob].")) + if(do_after(user, cuff_delay, INTERRUPT_MOVED, BUSY_ICON_HOSTILE, human_mob, INTERRUPT_MOVED, BUSY_ICON_GENERIC)) + if(src == user.get_active_hand() && !human_mob.handcuffed && Adjacent(user)) + if(iscarbon(human_mob)) + if(istype(human_mob.buckled, /obj/structure/bed/roller)) to_chat(user, SPAN_DANGER("You cannot handcuff someone who is buckled onto a roller bed.")) return - if(H.has_limb_for_slot(WEAR_HANDCUFFS)) + if(human_mob.has_limb_for_slot(WEAR_HANDCUFFS)) user.drop_inv_item_on_ground(src) - H.equip_to_slot_if_possible(src, WEAR_HANDCUFFS, 1, 0, 1, 1) + human_mob.equip_to_slot_if_possible(src, WEAR_HANDCUFFS, 1, 0, 1, 1) user.count_niche_stat(STATISTICS_NICHE_HANDCUFF) - else if (ismonkey(target)) + else if(ismonkey(target)) user.visible_message(SPAN_NOTICE("[user] tries to put [src] on [target].")) if(do_after(user, 30, INTERRUPT_MOVED, BUSY_ICON_HOSTILE, target, INTERRUPT_MOVED, BUSY_ICON_GENERIC)) if(src == user.get_active_hand() && !target.handcuffed && Adjacent(user)) user.drop_inv_item_on_ground(src) target.equip_to_slot_if_possible(src, WEAR_HANDCUFFS, 1, 0, 1, 1) +/obj/item/restraint/handcuffs + name = "handcuffs" + desc = "Use this to keep prisoners in line." + gender = PLURAL + icon = 'icons/obj/items/items.dmi' + icon_state = "handcuff" + flags_atom = FPRINT|CONDUCT + flags_equip_slot = SLOT_WAIST + throwforce = 5 + w_class = SIZE_SMALL + throw_speed = SPEED_SLOW + throw_range = 5 + matter = list("metal" = 500) + +/obj/item/restraint/handcuffs/get_mob_overlay(mob/user_mob, slot) + var/image/ret = ..() + + var/image/handcuffs = overlay_image('icons/mob/mob.dmi', "handcuff1", color, RESET_COLOR) + ret.overlays += handcuffs + + return ret -/obj/item/handcuffs/zip +/obj/item/restraint/handcuffs/zip name = "zip cuffs" desc = "Single-use plastic zip tie handcuffs." w_class = SIZE_TINY icon_state = "cuff_zip" - breakouttime = 600 //Deciseconds = 60s + breakouttime = 60 SECONDS cuff_sound = 'sound/weapons/cablecuff.ogg' cuff_delay = 20 -/obj/item/handcuffs/zip/place_handcuffs(mob/living/carbon/target, mob/user) +/obj/item/restraint/handcuffs/zip/place_handcuffs(mob/living/carbon/target, mob/user) ..() flags_item |= DELONDROP -/obj/item/handcuffs/cable +/obj/item/restraint/adjustable/verb/adjust_restraints() + set category = "Object" + set name = "Adjust Restraints" + set desc = "Adjust the restraint size for wrists or ankles." + set src = usr.contents + + if(!ishuman(usr)) + return FALSE + + if(usr.is_mob_incapacitated()) + to_chat(usr, "Not right now.") + return FALSE + + switch(target_zone) + if(SLOT_HANDS) + target_zone = SLOT_LEGS + to_chat(usr, SPAN_NOTICE("[src] has been adjusted to tie around a subject's ankles.")) + if(SLOT_LEGS) + target_zone = SLOT_HANDS + to_chat(usr, SPAN_NOTICE("[src] has been adjusted to tie around a subject's wrists.")) + +/obj/item/restraint/adjustable/get_examine_text(mob/user) + . = ..() + switch(target_zone) + if(SLOT_HANDS) + . += SPAN_RED("Sized for human hands.") + if(SLOT_LEGS) + . += SPAN_RED("Sized for human ankles.") + +/obj/item/restraint/adjustable/cable name = "cable restraints" desc = "Looks like some cables tied together. Could be used to tie something up." icon_state = "cuff_white" - breakouttime = 300 //Deciseconds = 30s + breakouttime = 30 SECONDS cuff_sound = 'sound/weapons/cablecuff.ogg' -/obj/item/handcuffs/cable/red +/obj/item/restraint/adjustable/cable/red color = "#DD0000" -/obj/item/handcuffs/cable/yellow +/obj/item/restraint/adjustable/cable/yellow color = "#DDDD00" -/obj/item/handcuffs/cable/blue +/obj/item/restraint/adjustable/cable/blue color = "#0000DD" -/obj/item/handcuffs/cable/green +/obj/item/restraint/adjustable/cable/green color = "#00DD00" -/obj/item/handcuffs/cable/pink +/obj/item/restraint/adjustable/cable/pink color = "#DD00DD" -/obj/item/handcuffs/cable/orange +/obj/item/restraint/adjustable/cable/orange color = "#DD8800" -/obj/item/handcuffs/cable/cyan +/obj/item/restraint/adjustable/cable/cyan color = "#00DDDD" -/obj/item/handcuffs/cable/white +/obj/item/restraint/adjustable/cable/white color = "#FFFFFF" -/obj/item/handcuffs/cable/attackby(obj/item/I, mob/user as mob) +/obj/item/restraint/adjustable/cable/attackby(obj/item/I, mob/user as mob) ..() if(istype(I, /obj/item/stack/rods)) var/obj/item/stack/rods/R = I @@ -130,34 +168,30 @@ qdel(src) update_icon(user) - -/obj/item/handcuffs/cyborg - dispenser = 1 - -/obj/item/handcuffs/cyborg/attack(mob/living/carbon/C as mob, mob/user as mob) - if(!C.handcuffed) +/obj/item/restraint/handcuffs/cyborg/attack(mob/living/carbon/carbon_mob as mob, mob/user as mob) + if(!carbon_mob.handcuffed) var/turf/p_loc = user.loc - var/turf/p_loc_m = C.loc - playsound(src.loc, cuff_sound, 25, 1, 4) - user.visible_message(SPAN_DANGER("[user] is trying to put handcuffs on [C]!")) - - if (ishuman(C)) - var/mob/living/carbon/human/H = C - if (!H.has_limb_for_slot(WEAR_HANDCUFFS)) - to_chat(user, SPAN_DANGER("\The [H] needs at least two wrists before you can cuff them together!")) + var/turf/p_loc_m = carbon_mob.loc + playsound(loc, cuff_sound, 25, 1, 4) + user.visible_message(SPAN_DANGER("[user] is trying to put handcuffs on [carbon_mob]!")) + + if(ishuman(carbon_mob)) + var/mob/living/carbon/human/human_mob = carbon_mob + if (!human_mob.has_limb_for_slot(WEAR_HANDCUFFS)) + to_chat(user, SPAN_DANGER("\The [human_mob] needs at least two wrists before you can cuff them together!")) return spawn(30) - if(!C) return - if(p_loc == user.loc && p_loc_m == C.loc) - C.handcuffed = new /obj/item/handcuffs(C) - C.handcuff_update() + if(!carbon_mob) return + if(p_loc == user.loc && p_loc_m == carbon_mob.loc) + carbon_mob.handcuffed = new /obj/item/restraint/handcuffs(carbon_mob) + carbon_mob.handcuff_update() -/obj/item/restraints +/obj/item/xeno_restraints name = "xeno restraints" desc = "Use this to hold xenomorphic creatures safely." gender = PLURAL @@ -171,10 +205,9 @@ throw_range = 5 matter = list("metal" = 500) - var/dispenser = 0 var/breakouttime = 2 MINUTES -/obj/item/restraints/attack(mob/living/carbon/C as mob, mob/user as mob) +/obj/item/xeno_restraints/attack(mob/living/carbon/C as mob, mob/user as mob) if(!istype(C, /mob/living/carbon/xenomorph)) to_chat(user, SPAN_DANGER("The cuffs do not fit!")) return @@ -187,7 +220,7 @@ spawn(30) if(!C) return if(p_loc == user.loc && p_loc_m == C.loc) - C.handcuffed = new /obj/item/restraints(C) + C.handcuffed = new /obj/item/xeno_restraints(C) C.handcuff_update() C.visible_message(SPAN_DANGER("[C] has been successfully restrained by [user]!")) qdel(src) diff --git a/code/game/objects/items/handheld_distress_beacon.dm b/code/game/objects/items/handheld_distress_beacon.dm index c11a7a57c350..73c9415dbfad 100644 --- a/code/game/objects/items/handheld_distress_beacon.dm +++ b/code/game/objects/items/handheld_distress_beacon.dm @@ -12,9 +12,9 @@ ///Tells the user who the beacon will be sent to IC var/recipient = "the USCSS Royce" ///The name of the ERT that will be passed to get_specific_call - var/list/ert_full_name = list("Weyland-Yutani PMC (Chemical Investigation Squad)") + var/list/ert_paths = list(/datum/emergency_call/pmc/chem_retrieval) // "Weyland-Yutani PMC (Chemical Investigation Squad)" ///The clickable version that will be sent in message_admins - var/list/ert_short_name = list("SEND PMCs") + var/list/ert_short_names = list("SEND PMCs") ///Whether beacon can be used, or has already been used var/active = FALSE @@ -37,22 +37,26 @@ if(active) to_chat(user, "[src] is already active!") - return + return FALSE + var/reason = tgui_input_text(user, "What is the reason for activating this beacon?", "Distress Reason") + if(!reason) + return FALSE + active = TRUE update_icon() - if(!ert_full_name || !ert_short_name || (length(ert_full_name) != length(ert_short_name))) //Make sure they are greater than 0, and both are same length + if(!ert_paths || !ert_short_names || (length(ert_paths) != length(ert_short_names))) //Make sure they are greater than 0, and both are same length to_chat(user, SPAN_BOLDWARNING("[src] is broken!")) CRASH("[src] was improperly set, and has been disabled.") //For the runtime logs var/beacon_call_buttons - for(var/current_ert_num in 1 to length(ert_full_name)) - beacon_call_buttons += "([ert_short_name[current_ert_num]]) " + for(var/current_ert_num in 1 to length(ert_paths)) + beacon_call_buttons += "([ert_short_names[current_ert_num]]) " for(var/client/admin_client in GLOB.admins) if((R_ADMIN|R_MOD) & admin_client.admin_holder.rights) playsound_client(admin_client,'sound/effects/sos-morse-code.ogg',10) - message_admins("[key_name(user)] has used a [beacon_type]! [CC_MARK(user)] [beacon_call_buttons](DENY) [ADMIN_JMP_USER(user)] [CC_REPLY(user)]") + message_admins("[key_name(user)] has used a [beacon_type] for the reason '[SPAN_ORANGE(reason)]'! [CC_MARK(user)] [beacon_call_buttons](DENY) [ADMIN_JMP_USER(user)] [CC_REPLY(user)]") to_chat(user, SPAN_NOTICE("A distress beacon request has been sent to [recipient].")) /// CMB distress beacon held by CMB Marshal for signalling distress to Anchorpoint Station @@ -62,5 +66,26 @@ beacon_type = "CMB beacon" recipient = "Anchorpoint Station" - ert_full_name = list("CMB - Patrol Team - Marshals in Distress (Friendly)", "CMB - Anchorpoint Station Colonial Marine QRF (Friendly)") - ert_short_name = list("SEND CMB", "SEND QRF") + // "CMB - Patrol Team - Marshals in Distress (Friendly)", "CMB - Anchorpoint Station Colonial Marine QRF (Friendly)" + ert_paths = list(/datum/emergency_call/cmb/alt, /datum/emergency_call/cmb/anchorpoint) + ert_short_names = list("SEND CMB", "SEND QRF") + +// Corporate Lawyer beacon available for 50 points at the CLs briefcase +/obj/item/handheld_distress_beacon/lawyer + name = "\improper Corporate Affairs Division handheld beacon" + desc = "An encoded beacon. This one is branded with the Weyland-Yutani slogan, 'Building Better Worlds since 2099'. Etched in stencil on the side is 'FOR CONTRACT BREAKERS ONLY'. This one is branded with the Corporate Affairs Division symbol and provided to most Executives situated in UA or TWE space." + + beacon_type = "Lawyer beacon" + recipient = "the Corporate Affairs Division" + ert_paths = list(/datum/emergency_call/inspection_wy/lawyer) // "Lawyers - Corporate" + ert_short_names = list("SEND LAWYERS") + +// Corporate Security Bodyguard beacon available for 50 points at the CLs briefcase +/obj/item/handheld_distress_beacon/bodyguard + name = "\improper Corporate Security Division handheld beacon" + desc = "An standard Corporate Security beacon. This one is branded with the Weyland-Yutani slogan, 'Building Better Worlds since 2099'. This one is branded with the Corporate Security Division symbol and provided to Executives stationed in very dangerous sites across the entire Galaxy." + + beacon_type = "Bodyguard beacon" + recipient = "the Corporate Security Division" + ert_paths = list(/datum/emergency_call/goon/bodyguard) // "Weyland-Yutani Goon (Executive Bodyguard Detail)" + ert_short_names = list("SEND BODYGUARD") diff --git a/code/game/objects/items/hoverpack.dm b/code/game/objects/items/hoverpack.dm index 027b9d77f581..02a2d4be779a 100644 --- a/code/game/objects/items/hoverpack.dm +++ b/code/game/objects/items/hoverpack.dm @@ -180,7 +180,7 @@ var/t_dist = get_dist(user, t_turf) if(!(t_dist > max_distance)) return - var/list/turf/path = getline2(user, t_turf, FALSE) + var/list/turf/path = get_line(user, t_turf, FALSE) warning.forceMove(path[max_distance]) /obj/item/hoverpack/proc/can_use_hoverpack(mob/living/carbon/human/user) diff --git a/code/game/objects/items/implants/implantchair.dm b/code/game/objects/items/implants/implantchair.dm index 0969b2609331..bcec5100aae4 100644 --- a/code/game/objects/items/implants/implantchair.dm +++ b/code/game/objects/items/implants/implantchair.dm @@ -38,7 +38,7 @@ var/dat ="Implanter Status
        " dat +="Current occupant: [src.occupant ? "
        Name: [src.occupant]
        Health: [health_text]
        " : "None"]
        " - dat += "Implants: [src.implant_list.len ? "[implant_list.len]" : "Replenish"]
        " + dat += "Implants: [length(src.implant_list) ? "[length(implant_list)]" : "Replenish"]
        " if(src.occupant) dat += "[src.ready ? "Implant" : "Recharging"]
        " user.set_interaction(src) @@ -113,7 +113,7 @@ /obj/structure/machinery/implantchair/proc/implant(mob/M) if (!istype(M, /mob/living/carbon)) return - if(!implant_list.len) return + if(!length(implant_list)) return for(var/obj/item/implant/loyalty/imp in implant_list) if(!imp) continue if(istype(imp, /obj/item/implant/loyalty)) diff --git a/code/game/objects/items/legcuffs.dm b/code/game/objects/items/legcuffs.dm index c0dfe44728f0..1d216e6556e2 100644 --- a/code/game/objects/items/legcuffs.dm +++ b/code/game/objects/items/legcuffs.dm @@ -1,4 +1,4 @@ -/obj/item/legcuffs +/obj/item/restraint/legcuffs name = "legcuffs" desc = "Use this to keep prisoners in line." gender = PLURAL @@ -8,24 +8,66 @@ throwforce = 0 w_class = SIZE_MEDIUM - var/breakouttime = 15 SECONDS + target_zone = SLOT_LEGS -/obj/item/legcuffs/beartrap +/obj/item/restraint/proc/apply_legcuffs(mob/living/carbon/target, mob/user) + playsound(loc, 'sound/weapons/handcuffs.ogg', 25, 1, 4) + + if(user.action_busy) + return FALSE + + if (ishuman(target)) + var/mob/living/carbon/human/human_target = target + + if (!human_target.has_limb_for_slot(WEAR_LEGCUFFS)) + to_chat(user, SPAN_DANGER("\The [human_target] needs two ankles before you can cuff them together!")) + return FALSE + + human_target.attack_log += text("\[[time_stamp()]\] Has been legcuffed (attempt) by [key_name(user)]") + user.attack_log += text("\[[time_stamp()]\] Attempted to legcuff [key_name(human_target)]") + msg_admin_attack("[key_name(user)] attempted to legcuff [key_name(human_target)] in [get_area(src)] ([loc.x],[loc.y],[loc.z]).", loc.x, loc.y, loc.z) + + user.visible_message(SPAN_NOTICE("[user] tries to put [src] on [human_target].")) + if(do_after(user, cuff_delay, INTERRUPT_MOVED, BUSY_ICON_HOSTILE, human_target, INTERRUPT_MOVED, BUSY_ICON_GENERIC)) + if(src == user.get_active_hand() && !human_target.legcuffed && Adjacent(user)) + if(iscarbon(human_target)) + if(istype(human_target.buckled, /obj/structure/bed/roller)) + to_chat(user, SPAN_DANGER("You cannot legcuff someone who is buckled onto a roller bed.")) + return FALSE + if(human_target.has_limb_for_slot(WEAR_LEGCUFFS)) + user.drop_inv_item_on_ground(src) + human_target.equip_to_slot_if_possible(src, WEAR_LEGCUFFS, 1, 0, 1, 1) + user.count_niche_stat(STATISTICS_NICHE_HANDCUFF) + + else if (ismonkey(target)) + user.visible_message(SPAN_NOTICE("[user] tries to put [src] on [target].")) + if(do_after(user, 30, INTERRUPT_MOVED, BUSY_ICON_HOSTILE, target, INTERRUPT_MOVED, BUSY_ICON_GENERIC)) + if(src == user.get_active_hand() && !target.legcuffed && Adjacent(user)) + user.drop_inv_item_on_ground(src) + target.equip_to_slot_if_possible(src, WEAR_LEGCUFFS, 1, 0, 1, 1) + return TRUE + +/obj/item/restraint/legcuffs/beartrap name = "bear trap" throw_speed = SPEED_FAST throw_range = 1 icon_state = "beartrap0" desc = "A trap used to catch bears and other legged creatures." + breakouttime = 20 SECONDS var/armed = FALSE + manual = FALSE + +/obj/item/restraint/legcuffs/beartrap/apply_legcuffs(mob/living/carbon/target, mob/user) + return FALSE -/obj/item/legcuffs/beartrap/attack_self(mob/user as mob) +/obj/item/restraint/legcuffs/beartrap/attack_self(mob/user as mob) ..() if(ishuman(user) && !user.stat && !user.is_mob_restrained()) armed = !armed icon_state = "beartrap[armed]" to_chat(user, SPAN_NOTICE("[src] is now [armed ? "armed" : "disarmed"]")) -/obj/item/legcuffs/beartrap/Crossed(atom/movable/AM) +/obj/item/restraint/legcuffs/beartrap/Crossed(atom/movable/AM) if(armed) if(ismob(AM)) var/mob/M = AM diff --git a/code/game/objects/items/lightstick.dm b/code/game/objects/items/lightstick.dm index 89ce2c00762e..05f5a96c5b16 100644 --- a/code/game/objects/items/lightstick.dm +++ b/code/game/objects/items/lightstick.dm @@ -8,7 +8,7 @@ icon = 'icons/obj/items/lighting.dmi' icon_state = "lightstick_blue0" light_range = 2 - light_color = COLOUR_BLUE + light_color = COLOR_BLUE var/s_color = "blue" var/trample_chance = 30 var/can_trample = TRUE @@ -68,7 +68,7 @@ name = "red lightstick" icon_state = "lightstick_red0" s_color = "red" - light_color = COLOUR_RED + light_color = COLOR_RED /obj/item/lightstick/red/planted icon_state = "lightstick_red1" diff --git a/code/game/objects/items/misc.dm b/code/game/objects/items/misc.dm index 1699cb24ef39..d73893e2671c 100644 --- a/code/game/objects/items/misc.dm +++ b/code/game/objects/items/misc.dm @@ -56,13 +56,13 @@ ..() if(!gripped) user.visible_message(SPAN_NOTICE("[user] grips [src] tightly."), SPAN_NOTICE("You grip [src] tightly.")) - flags_item |= NODROP + flags_item |= NODROP|FORCEDROP_CONDITIONAL ADD_TRAIT(user, TRAIT_HOLDS_CANE, TRAIT_SOURCE_ITEM) user.AddComponent(/datum/component/footstep, 6, 35, 4, 1, "cane_step") gripped = TRUE else user.visible_message(SPAN_NOTICE("[user] loosens \his grip on [src]."), SPAN_NOTICE("You loosen your grip on [src].")) - flags_item &= ~NODROP + flags_item &= ~(NODROP|FORCEDROP_CONDITIONAL) REMOVE_TRAIT(user, TRAIT_HOLDS_CANE, TRAIT_SOURCE_ITEM) // Ideally, this would be something like a component added onto every mob that prioritizes certain sounds, such as stomping over canes. var/component = user.GetComponent(/datum/component/footstep) @@ -224,7 +224,7 @@ to_chat(user, SPAN_NOTICE("[I] won't fit in [src].")) return - if(contents.len) + if(length(contents)) to_chat(user, SPAN_NOTICE("[src] already has something inside it.")) return @@ -257,7 +257,7 @@ /obj/item/evidencebag/attack_self(mob/user) ..() - if(contents.len) + if(length(contents)) var/obj/item/I = contents[1] user.visible_message("[user] takes [I] out of [src]", "You take [I] out of [src].",\ "You hear someone rustle around in a plastic bag, and remove something.") @@ -292,11 +292,12 @@ new /obj/item/evidencebag(src) new /obj/item/evidencebag(src) -/obj/item/rappel_harness - name = "rappel harness" - desc = "A simple, uncomfortable rappel harness with just enough safety straps to make RnD pass health and safety. It comes with an in-built descender, but has no pouches for ammunition." - icon = 'icons/obj/items/clothing/belts.dmi' - icon_state = "rappel_harness" - item_state = "rappel_harness" +/obj/item/parachute + name = "parachute" + desc = "A surprisingly small yet bulky pack with just enough safety straps to make RnD pass health and safety. The label says the pack comes with two parachutes - main and reserve, but you doubt the pack can fit even one." + icon = 'icons/obj/items/clothing/backpacks.dmi' + icon_state = "parachute_pack" + item_state = "parachute_pack" w_class = SIZE_MASSIVE - flags_equip_slot = SLOT_WAIST + flags_equip_slot = SLOT_BACK + flags_item = SMARTGUNNER_BACKPACK_OVERRIDE diff --git a/code/game/objects/items/old_research.dm b/code/game/objects/items/old_research.dm deleted file mode 100644 index 7330baac5812..000000000000 --- a/code/game/objects/items/old_research.dm +++ /dev/null @@ -1,112 +0,0 @@ -/obj/item/XenoBio - name = "An unidentified Alien Organ" - desc = "Looking at it makes you want to vomit" - icon = 'icons/obj/items/Marine_Research.dmi' - icon_state = "biomass" - black_market_value = 50 - //For all of them for now, until we have specific organs/more techs - -/obj/item/XenoBio/Resin - name = "Alien Resin" - desc = "A piece of alien Resin" - icon_state = "biomass" - - -/obj/item/XenoBio/Chitin - name = "Alien Chitin" - desc = "A chunk of alien Chitin" - icon_state = "chitin-chunk" - - -/obj/item/XenoBio/Blood - name = "Alien Blood" - desc = "A sample of alien Blood" - icon_state = "blood-vial" - - - - - - - - -// ======== ITEMS YOU CAN MAKE THAT ARE BADASS ======== // - -/obj/item/XenoItem - name = "Strange Item" - desc = "Some sort of fucked up item from the Weyland-Yutani brand 3D Biometric Printer... Probably should make a bug report if you got this..." - icon_state = "chitin-chunk" - icon = 'icons/obj/items/Marine_Research.dmi' - -/obj/item/XenoItem/ResinPaste - name = "Resin Paste" - desc = "This resin paste will fix a broken helmet. (Use by clicking the glue with the armor)." - icon_state = "resin-glue" - icon = 'icons/obj/items/Marine_Research.dmi' - -/obj/item/XenoItem/ResinPaste/afterattack(obj/item/clothing/head/helmet/marine/A as obj, mob/user as mob) - if (!istype(A) || !istype(usr)) - to_chat(usr, "Doesn't work that way") - return - if (A.anti_hug >= 1) - usr <<"This Helmet can't be further reinforced." - return - to_chat(usr, "You reinforce the Helmet...") - A.anti_hug++ - user.temp_drop_inv_item(src) - qdel(src) - ..() - return - -/obj/item/XenoItem/ChitinPlate - name = "Chitin Plate" - desc = "A plate of Chitin Armor that can be attached to your Marine Armor to make it stronger, but will also slow you down. (Use by clicking the plate with the armor)." - icon_state = "chitin-armor" - icon = 'icons/obj/items/Marine_Research.dmi' - -/obj/item/XenoItem/ChitinPlate/afterattack(obj/item/clothing/suit/storage/marine/A as obj, mob/user as mob) - if (!istype(A) || !istype(usr)) - to_chat(usr, "Doesn't work that way...") - return - if (A.flags_marine_armor & ARMOR_IS_REINFORCED) - usr <<"This armor is already reinforced." - return - to_chat(usr, "You reinforce the armor with some Chitin Plating...") - A.armor_melee = 70 - A.armor_bullet = 90 - A.armor_laser = 7 - A.armor_energy = 40 - A.armor_bomb = 50 - A.armor_bio = 40 - A.armor_rad = 20 - A.slowdown++ - A.flags_marine_armor |= ARMOR_IS_REINFORCED - user.temp_drop_inv_item(src) - qdel(src) - ..() - return - - -/obj/item/XenoItem/AntiAcid - name = "Anti-Acid Spray" - desc = "A spray that makes whatever it's used on unacidable. Single use." - icon_state = "anti-acid" - icon = 'icons/obj/items/Marine_Research.dmi' - - -/obj/item/XenoItem/AntiAcid/afterattack(obj/A as obj, mob/user as mob, proximity) - if (!isobj(A)) - to_chat(usr, "Doesn't work that way...") - return - if (A.unacidable == 1) - to_chat(usr, "It's already resistant to acid...") - return - if (istype(A, /obj/structure/machinery/door)) - to_chat(usr, "It doesn't work on doors...") - return - to_chat(usr, "You spray [A] with the Anti-Acid spray making it unacidable...") - A.unacidable = TRUE - user.temp_drop_inv_item(src) - qdel(src) - ..() - return diff --git a/code/game/objects/items/paint.dm b/code/game/objects/items/paint.dm index c538cbf3944f..804d258bdcb4 100644 --- a/code/game/objects/items/paint.dm +++ b/code/game/objects/items/paint.dm @@ -75,7 +75,7 @@ GLOBAL_LIST_EMPTY(cached_icons) name = "Paint" id = "paint_" reagent_state = 2 - color = "#808080" + color = COLOR_GRAY description = "This paint will only adhere to floor tiles." /datum/reagent/paint/reaction_turf(turf/T, volume) @@ -128,7 +128,7 @@ GLOBAL_LIST_EMPTY(cached_icons) id = "paint_remover" description = "Paint remover is used to remove floor paint from floor tiles." reagent_state = 2 - color = "#808080" + color = COLOR_GRAY /datum/reagent/paint_remover/reaction_turf(turf/T, volume) if(istype(T) && T.icon != initial(T.icon)) diff --git a/code/game/objects/items/pamphlets.dm b/code/game/objects/items/pamphlets.dm index 682215be67bb..d8bbb2a01432 100644 --- a/code/game/objects/items/pamphlets.dm +++ b/code/game/objects/items/pamphlets.dm @@ -80,11 +80,11 @@ to_chat(user, SPAN_WARNING("Only squad riflemen can use this.")) return - var/obj/item/card/id/ID = user.wear_id - if(!istype(ID)) //not wearing an ID + var/obj/item/card/id/ID = user.get_idcard() + if(!ID) //not wearing an ID to_chat(user, SPAN_WARNING("You should wear your ID before doing this.")) return FALSE - if(ID.registered_ref != WEAKREF(user)) + if(!ID.check_biometrics(user)) to_chat(user, SPAN_WARNING("You should wear your ID before doing this.")) return FALSE @@ -95,7 +95,7 @@ user.rank_fallback = "ass" user.hud_set_squad() - var/obj/item/card/id/ID = user.wear_id + var/obj/item/card/id/ID = user.get_idcard() ID.set_assignment((user.assigned_squad ? (user.assigned_squad.name + " ") : "") + "Spotter") GLOB.data_core.manifest_modify(user.real_name, WEAKREF(user), "Spotter") @@ -200,7 +200,7 @@ to_chat(user, SPAN_WARNING("You know this already!")) return FALSE - if(user.job != JOB_SQUAD_MARINE) + if(!(user.job in JOB_SQUAD_ROLES_LIST)) to_chat(user, SPAN_WARNING("Only squad riflemen can use this.")) return FALSE diff --git a/code/game/objects/items/props/helmetgarb.dm b/code/game/objects/items/props/helmetgarb.dm index d8e65f1a3cd3..5b9b81804311 100644 --- a/code/game/objects/items/props/helmetgarb.dm +++ b/code/game/objects/items/props/helmetgarb.dm @@ -450,6 +450,9 @@ shape = NVG_SHAPE_COSMETIC garbage = TRUE +/obj/item/prop/helmetgarb/helmet_nvg/cosmetic/break_nvg(mob/living/carbon/human/user, list/slashdata, mob/living/carbon/xenomorph/Xeno) + return + /obj/item/prop/helmetgarb/helmet_nvg/marsoc //for Marine Raiders name = "\improper Tactical M3 night vision goggles" desc = "With an integrated self-recharging battery, nothing can stop you. Put them on your helmet and press the button and it's go-time." @@ -602,6 +605,13 @@ icon_state = "compass" w_class = SIZE_SMALL +/obj/item/prop/helmetgarb/compass/get_examine_text(mob/user) + . = ..() + if(is_ground_level(user.z) && !SSmapping.configs[GROUND_MAP].environment_traits[ZTRAIT_IN_SPACE]) + . += SPAN_NOTICE("It seems you are facing [dir2text(user.dir)].") + return + . += SPAN_NOTICE("The needle is not moving.") + /obj/item/prop/helmetgarb/bug_spray name = "insect repellent" desc = "A store-brand insect repellent, to keep any variety of pest or mosquito away from you." diff --git a/code/game/objects/items/props/robots.dm b/code/game/objects/items/props/robots.dm new file mode 100644 index 000000000000..e0a8b8d312fb --- /dev/null +++ b/code/game/objects/items/props/robots.dm @@ -0,0 +1,45 @@ +/obj/item/broken_device + name = "broken component" + icon = 'icons/obj/items/robot_component.dmi' + icon_state = "broken" + +/obj/item/robot_parts/robot_component + icon = 'icons/obj/items/robot_component.dmi' + icon_state = "working" + +/obj/item/robot_parts/robot_component/binary_communication_device + name = "binary communication device" + icon_state = "binradio" + +/obj/item/robot_parts/robot_component/actuator + name = "actuator" + icon_state = "motor" + +/obj/item/robot_parts/robot_component/armour + name = "armour plating" + icon_state = "armor" + +/obj/item/robot_parts/robot_component/camera + name = "camera" + icon_state = "camera" + +/obj/item/robot_parts/robot_component/diagnosis_unit + name = "diagnosis unit" + icon_state = "analyser" + +/obj/item/robot_parts/robot_component/radio + name = "radio" + icon_state = "radio" + +/obj/item/device/robotanalyzer + name = "cyborg analyzer" + icon_state = "robotanalyzer" + item_state = "analyzer" + desc = "A hand-held scanner able to diagnose robotic injuries. It looks broken." + flags_atom = FPRINT|CONDUCT + flags_equip_slot = SLOT_WAIST + throwforce = 3 + w_class = SIZE_SMALL + throw_speed = SPEED_VERY_FAST + throw_range = 10 + matter = list("metal" = 200) diff --git a/code/game/objects/items/reagent_containers/autoinjectors.dm b/code/game/objects/items/reagent_containers/autoinjectors.dm index 46463e628c1d..9c4726371f90 100644 --- a/code/game/objects/items/reagent_containers/autoinjectors.dm +++ b/code/game/objects/items/reagent_containers/autoinjectors.dm @@ -33,7 +33,7 @@ /obj/item/reagent_container/hypospray/autoinjector/proc/update_uses_left() var/UL = reagents.total_volume / amount_per_transfer_from_this - UL = round(UL) == UL ? UL : round(UL) + 1 + UL = floor(UL) == UL ? UL : floor(UL) + 1 uses_left = UL /obj/item/reagent_container/hypospray/autoinjector/attack(mob/M, mob/user) @@ -139,6 +139,12 @@ item_state = "emptyskill" skilllock = SKILL_MEDICAL_DEFAULT +/obj/item/reagent_container/hypospray/autoinjector/tramadol/skillless/one_use + desc = "An EZ autoinjector loaded with 1 use of Tramadol, a weak but effective painkiller for normal wounds. Doesn't require any training to use." + volume = 15 + amount_per_transfer_from_this = 15 + uses_left = 1 + /obj/item/reagent_container/hypospray/autoinjector/oxycodone name = "oxycodone autoinjector (EXTREME PAINKILLER)" chemname = "oxycodone" @@ -164,6 +170,12 @@ item_state = "emptyskill" skilllock = SKILL_MEDICAL_DEFAULT +/obj/item/reagent_container/hypospray/autoinjector/kelotane/skillless/one_use + desc = "An EZ autoinjector loaded with 1 use of Kelotane, a common burn medicine. Doesn't require any training to use." + volume = 15 + amount_per_transfer_from_this = 15 + uses_left = 1 + /obj/item/reagent_container/hypospray/autoinjector/bicaridine name = "bicaridine autoinjector" chemname = "bicaridine" @@ -180,6 +192,12 @@ item_state = "emptyskill" skilllock = SKILL_MEDICAL_DEFAULT +/obj/item/reagent_container/hypospray/autoinjector/bicaridine/skillless/one_use + desc = "An EZ autoinjector loaded with 1 use of Bicaridine, a common brute and circulatory damage medicine. Doesn't require any training to use." + volume = 15 + amount_per_transfer_from_this = 15 + uses_left = 1 + /obj/item/reagent_container/hypospray/autoinjector/inaprovaline name = "inaprovaline autoinjector" chemname = "inaprovaline" @@ -271,7 +289,7 @@ /obj/item/reagent_container/hypospray/autoinjector/skillless/get_examine_text(mob/user) . = ..() - if(reagents && reagents.reagent_list.len) + if(reagents && length(reagents.reagent_list)) . += SPAN_NOTICE("It is currently loaded.") else if(!uses_left) . += SPAN_NOTICE("It is spent.") diff --git a/code/game/objects/items/reagent_containers/blood_pack.dm b/code/game/objects/items/reagent_containers/blood_pack.dm index 92c68e81c9d2..5dafafe6a47f 100644 --- a/code/game/objects/items/reagent_containers/blood_pack.dm +++ b/code/game/objects/items/reagent_containers/blood_pack.dm @@ -28,7 +28,7 @@ update_icon() /obj/item/reagent_container/blood/update_icon() - var/percent = round((reagents.total_volume / volume) * 100) + var/percent = floor((reagents.total_volume / volume) * 100) overlays = null underlays = null diff --git a/code/game/objects/items/reagent_containers/borghydro.dm b/code/game/objects/items/reagent_containers/borghydro.dm deleted file mode 100644 index 4f1f5540988b..000000000000 --- a/code/game/objects/items/reagent_containers/borghydro.dm +++ /dev/null @@ -1,86 +0,0 @@ - -/obj/item/reagent_container/borghypo - name = "Robot Hypospray" - desc = "An advanced chemical synthesizer and injection system, designed for heavy-duty medical equipment." - icon = 'icons/obj/items/syringe.dmi' - item_state = "hypo" - icon_state = "borghypo" - amount_per_transfer_from_this = 5 - volume = 30 - possible_transfer_amounts = null - var/mode = 1 - var/charge_cost = 50 - var/charge_tick = 0 - var/recharge_time = 2 SECONDS //Time it takes for shots to recharge - - var/list/reagent_ids = list("tricordrazine", "bicaridine", "kelotane", "dexalinp", "anti_toxin", "inaprovaline", "tramadol", "imidazoline", "spaceacillin") - var/list/reagent_volumes = list() - var/list/reagent_names = list() - -/obj/item/reagent_container/borghypo/Initialize() - . = ..() - - for(var/T in reagent_ids) - reagent_volumes[T] = volume - var/datum/reagent/R = GLOB.chemical_reagents_list[T] - reagent_names += R.name - - START_PROCESSING(SSobj, src) - - -/obj/item/reagent_container/borghypo/Destroy() - STOP_PROCESSING(SSobj, src) - . = ..() - -/obj/item/reagent_container/borghypo/process() //Every [recharge_time] seconds, recharge some reagents for the cyborg+ - if(++charge_tick < recharge_time) - return 0 - charge_tick = 0 - - if(isrobot(loc)) - var/mob/living/silicon/robot/R = loc - if(R && R.cell) - for(var/T in reagent_ids) - if(reagent_volumes[T] < volume) - R.cell.use(charge_cost) - reagent_volumes[T] = min(reagent_volumes[T] + 5, volume) - return 1 - -/obj/item/reagent_container/borghypo/attack(mob/living/M as mob, mob/user as mob) - if(!istype(M)) - return - - if(!reagent_volumes[reagent_ids[mode]]) - to_chat(user, SPAN_WARNING("The injector is empty.")) - return - - to_chat(user, SPAN_NOTICE(" You inject [M] with the injector.")) - to_chat(M, SPAN_NOTICE(" [user] injects you with the injector.")) - playsound(loc, 'sound/items/hypospray.ogg', 50, 1) - - if(M.reagents) - var/t = min(amount_per_transfer_from_this, reagent_volumes[reagent_ids[mode]]) - M.reagents.add_reagent(reagent_ids[mode], t) - reagent_volumes[reagent_ids[mode]] -= t - // to_chat(user, SPAN_NOTICE("[t] units injected. [reagent_volumes[reagent_ids[mode]]] units remaining.")) - to_chat(user, SPAN_NOTICE(" [t] units of \red [reagent_ids[mode]] \blue injected for a total of \red [round(M.reagents.get_reagent_amount(reagent_ids[mode]))]\blue. [reagent_volumes[reagent_ids[mode]]] units remaining.")) - - return - -/obj/item/reagent_container/borghypo/attack_self(mob/user) - ..() - var/selection = tgui_input_list(usr, "Please select a reagent:", "Reagent", reagent_ids) - if(!selection) return - var/datum/reagent/R = GLOB.chemical_reagents_list[selection] - to_chat(user, SPAN_NOTICE(" Synthesizer is now producing '[R.name]'.")) - mode = reagent_ids.Find(selection) - playsound(src.loc, 'sound/effects/pop.ogg', 15, 0) - return - -/obj/item/reagent_container/borghypo/get_examine_text(mob/user) - . = ..() - if (user != loc) return - - var/datum/reagent/R = GLOB.chemical_reagents_list[reagent_ids[mode]] - - . += SPAN_NOTICE("It is currently producing [R.name] and has [reagent_volumes[reagent_ids[mode]]] out of [volume] units left.") diff --git a/code/game/objects/items/reagent_containers/food.dm b/code/game/objects/items/reagent_containers/food.dm index ded1b90b106f..f4b2213904d2 100644 --- a/code/game/objects/items/reagent_containers/food.dm +++ b/code/game/objects/items/reagent_containers/food.dm @@ -9,7 +9,7 @@ possible_transfer_amounts = null volume = 50 //Sets the default container amount for all food items. flags_atom = CAN_BE_SYRINGED - var/filling_color = "#FFFFFF" //Used by sandwiches. + var/filling_color = COLOR_WHITE //Used by sandwiches. /obj/item/reagent_container/food/Initialize() . = ..() diff --git a/code/game/objects/items/reagent_containers/food/cans.dm b/code/game/objects/items/reagent_containers/food/cans.dm index aab2ee066e12..8cf28a9d560c 100644 --- a/code/game/objects/items/reagent_containers/food/cans.dm +++ b/code/game/objects/items/reagent_containers/food/cans.dm @@ -38,7 +38,6 @@ to_chat(user, SPAN_NOTICE("You need to open the drink!")) return var/datum/reagents/R = src.reagents - var/fillevel = gulp_size if(!R.total_volume || !R) if(M == user && M.a_intent == INTENT_HARM && M.zone_selected == "head") @@ -80,13 +79,6 @@ reagents.set_source_mob(user) reagents.trans_to_ingest(M, gulp_size) - if(isrobot(user)) //Cyborg modules that include drinks automatically refill themselves, but drain the borg's cell - var/mob/living/silicon/robot/bro = user - bro.cell.use(30) - var/refill = R.get_master_reagent_id() - spawn(1 MINUTES) - R.add_reagent(refill, fillevel) - playsound(M.loc,'sound/items/drink.ogg', 15, 1) return 1 @@ -270,7 +262,7 @@ /obj/item/reagent_container/food/drinks/cans/boda name = "\improper Boda" desc = "State regulated soda beverage. Enjoy comrades." - desc_lore = "Designed back in 2159, the advertising campaign for BODA started out as an attempt by the UPP to win the hearts and minds of colonists and settlers across the galaxy. Soon after, the ubiquitous cyan vendors and large supplies of the drink began to crop up in UA warehouses with seemingly no clear origin. Despite some concerns, after initial testing determined that the stored products were safe for consumption and surprisingly popular when blind-tested with focus groups, the strange surplus of BODA was authorized for usage within the UA-associated colonies. Subsequently, it enjoyed a relative popularity before falling into obscurity in the coming decades as supplies dwindled." + desc_lore = "Designed back in 2159, the advertising campaign for BODA started out as an attempt by the UPP to win the hearts and minds of colonists and settlers across the galaxy. Soon after, the ubiquitous cyan vendors and large supplies of the drink began to crop up in UA warehouses with seemingly no clear origin. Despite some concerns, after initial testing determined that the stored products were safe for consumption and surprisingly popular when blind-tested with focus groups, the strange surplus of BODA was authorized for usage within the UA-associated colonies. Subsequently, it enjoyed a relative popularity before falling into obscurity in the coming decades as supplies dwindled." icon_state = "boda" center_of_mass = "x=16;y=10" diff --git a/code/game/objects/items/reagent_containers/food/condiment.dm b/code/game/objects/items/reagent_containers/food/condiment.dm index 35944e4422c4..45cfe9c2aa67 100644 --- a/code/game/objects/items/reagent_containers/food/condiment.dm +++ b/code/game/objects/items/reagent_containers/food/condiment.dm @@ -88,7 +88,7 @@ /obj/item/reagent_container/food/condiment/on_reagent_change() if(icon_state == "saltshakersmall" || icon_state == "peppermillsmall" || icon_state == "hotsauce_cholula" || icon_state == "hotsauce_franks" || icon_state == "hotsauce_sriracha" || icon_state == "hotsauce_tabasco" || icon_state == "coldsauce_cole") return - if(reagents.reagent_list.len > 0) + if(length(reagents.reagent_list) > 0) switch(reagents.get_master_reagent_id()) if("ketchup") name = "Ketchup" @@ -131,7 +131,7 @@ center_of_mass = "x=16;y=6" else name = "Misc Condiment Bottle" - if (reagents.reagent_list.len==1) + if (length(reagents.reagent_list)==1) desc = "Looks like it is [reagents.get_master_reagent_name()], but you are not sure." else desc = "A mixture of various condiments. [reagents.get_master_reagent_name()] is one of them." diff --git a/code/game/objects/items/reagent_containers/food/drinks.dm b/code/game/objects/items/reagent_containers/food/drinks.dm index 9f88990e5350..0a350aa851e2 100644 --- a/code/game/objects/items/reagent_containers/food/drinks.dm +++ b/code/game/objects/items/reagent_containers/food/drinks.dm @@ -13,16 +13,19 @@ /obj/item/reagent_container/food/drinks/on_reagent_change() if (gulp_size < 5) gulp_size = 5 - else gulp_size = max(round(reagents.total_volume / 5), 5) + else gulp_size = max(floor(reagents.total_volume / 5), 5) /obj/item/reagent_container/food/drinks/attack(mob/M, mob/user) var/datum/reagents/R = src.reagents - var/fillevel = gulp_size if(!R.total_volume || !R) to_chat(user, SPAN_DANGER("The [src.name] is empty!")) return FALSE + if(HAS_TRAIT(M, TRAIT_CANNOT_EAT)) + to_chat(user, SPAN_DANGER("[user == M ? "You are" : "[M] is"] unable to drink!")) + return FALSE + if(M == user) to_chat(M, SPAN_NOTICE(" You swallow a gulp from \the [src].")) if(reagents.total_volume) @@ -55,13 +58,6 @@ reagents.set_source_mob(user) reagents.trans_to_ingest(M, gulp_size) - if(isrobot(user)) //Cyborg modules that include drinks automatically refill themselves, but drain the borg's cell - var/mob/living/silicon/robot/bro = user - bro.cell.use(30) - var/refill = R.get_master_reagent_id() - spawn(1 MINUTES) - R.add_reagent(refill, fillevel) - playsound(M.loc,'sound/items/drink.ogg', 15, 1) return TRUE @@ -98,28 +94,9 @@ to_chat(user, SPAN_DANGER("[target] is full.")) return - - - var/datum/reagent/refill - var/datum/reagent/refillName - if(isrobot(user)) - refill = reagents.get_master_reagent_id() - refillName = reagents.get_master_reagent_name() - var/trans = src.reagents.trans_to(target, amount_per_transfer_from_this) to_chat(user, SPAN_NOTICE(" You transfer [trans] units of the solution to [target].")) - if(isrobot(user)) //Cyborg modules that include drinks automatically refill themselves, but drain the borg's cell - var/mob/living/silicon/robot/bro = user - var/chargeAmount = max(30,4*trans) - bro.cell.use(chargeAmount) - to_chat(user, "Now synthesizing [trans] units of [refillName]...") - - - spawn(30 SECONDS) - reagents.add_reagent(refill, trans) - to_chat(user, "Cyborg [src] refilled.") - return ..() /obj/item/reagent_container/food/drinks/get_examine_text(mob/user) diff --git a/code/game/objects/items/reagent_containers/food/drinks/bottle.dm b/code/game/objects/items/reagent_containers/food/drinks/bottle.dm index 0e63a19c7ef1..75b5aadfc43b 100644 --- a/code/game/objects/items/reagent_containers/food/drinks/bottle.dm +++ b/code/game/objects/items/reagent_containers/food/drinks/bottle.dm @@ -93,7 +93,7 @@ /obj/item/reagent_container/food/drinks/bottle/attackby(obj/item/I, mob/living/user) if(!isGlass || !istype(I, /obj/item/paper)) return ..() - if(!reagents || !reagents.reagent_list.len) + if(!reagents || !length(reagents.reagent_list)) to_chat(user, SPAN_NOTICE("\The [src] is empty...")) return var/alcohol_potency = 0 @@ -107,7 +107,7 @@ if(alcohol_potency < BURN_LEVEL_TIER_1) to_chat(user, SPAN_NOTICE("There's not enough flammable liquid in \the [src]!")) return - alcohol_potency = Clamp(alcohol_potency, BURN_LEVEL_TIER_1, BURN_LEVEL_TIER_7) + alcohol_potency = clamp(alcohol_potency, BURN_LEVEL_TIER_1, BURN_LEVEL_TIER_7) if(!do_after(user, 20, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD)) return diff --git a/code/game/objects/items/reagent_containers/food/drinks/drinkingglass.dm b/code/game/objects/items/reagent_containers/food/drinks/drinkingglass.dm index eea71cd1a4bc..59f27ab91728 100644 --- a/code/game/objects/items/reagent_containers/food/drinks/drinkingglass.dm +++ b/code/game/objects/items/reagent_containers/food/drinks/drinkingglass.dm @@ -10,14 +10,14 @@ center_of_mass = "x=16;y=10" /obj/item/reagent_container/food/drinks/drinkingglass/on_reagent_change() - /*if(reagents.reagent_list.len > 1 ) + /*if(length(reagents.reagent_list) > 1 ) icon_state = "glass_brown" name = "Glass of Hooch" desc = "Two or more drinks, mixed together."*/ - /*else if(reagents.reagent_list.len == 1) + /*else if(length(reagents.reagent_list) == 1) for(var/datum/reagent/R in reagents.reagent_list) switch(R.id)*/ - if (reagents.reagent_list.len > 0) + if (length(reagents.reagent_list) > 0) //mrid = R.get_master_reagent_id() var/datum/reagent/R = reagents.get_master_reagent() switch(R.id) diff --git a/code/game/objects/items/reagent_containers/food/drinks/jar.dm b/code/game/objects/items/reagent_containers/food/drinks/jar.dm index 987cfcedca5d..45a5137d0db5 100644 --- a/code/game/objects/items/reagent_containers/food/drinks/jar.dm +++ b/code/game/objects/items/reagent_containers/food/drinks/jar.dm @@ -10,7 +10,7 @@ center_of_mass = "x=15;y=8" /obj/item/reagent_container/food/drinks/jar/on_reagent_change() - if(reagents.reagent_list.len > 0) + if(length(reagents.reagent_list) > 0) icon_state ="jar_what" name = "jar of something" desc = "You can't really tell what this is." diff --git a/code/game/objects/items/reagent_containers/food/sandwich.dm b/code/game/objects/items/reagent_containers/food/sandwich.dm index 511c0c042be1..fd71c20e48ff 100644 --- a/code/game/objects/items/reagent_containers/food/sandwich.dm +++ b/code/game/objects/items/reagent_containers/food/sandwich.dm @@ -26,7 +26,7 @@ if(istype(O,/obj/item/reagent_container/food/snacks/breadslice)) sandwich_limit += 4 - if(src.contents.len > sandwich_limit) + if(length(src.contents) > sandwich_limit) to_chat(user, SPAN_DANGER("If you put anything else on \the [src] it's going to collapse.")) return else if(istype(W,/obj/item/shard)) @@ -56,7 +56,7 @@ i++ if(i == 1) fullname += "[O.name]" - else if(i == ingredients.len) + else if(i == length(ingredients)) fullname += " and [O.name]" else fullname += ", [O.name]" @@ -69,12 +69,12 @@ var/image/T = new(src.icon, "sandwich_top") T.pixel_x = pick(list(-1,0,1)) - T.pixel_y = (ingredients.len * 2)+1 + T.pixel_y = (length(ingredients) * 2)+1 overlays += T name = lowertext("[fullname] sandwich") if(length(name) > 80) name = "[pick(list("absurd","colossal","enormous","ridiculous"))] sandwich" - w_class = n_ceil(Clamp((ingredients.len/2),1,3)) + w_class = ceil(clamp((length(ingredients)/2),1,3)) /obj/item/reagent_container/food/snacks/csandwich/Destroy() QDEL_NULL_LIST(ingredients) @@ -82,7 +82,7 @@ /obj/item/reagent_container/food/snacks/csandwich/get_examine_text(mob/user) . = ..() - if(contents && contents.len) + if(LAZYLEN(contents)) var/obj/item/O = pick(contents) . += SPAN_NOTICE("You think you can see [O.name] in there.") diff --git a/code/game/objects/items/reagent_containers/food/snacks.dm b/code/game/objects/items/reagent_containers/food/snacks.dm index eb33ca6b1d0f..4e00f32a9b13 100644 --- a/code/game/objects/items/reagent_containers/food/snacks.dm +++ b/code/game/objects/items/reagent_containers/food/snacks.dm @@ -21,6 +21,7 @@ //Placeholder for effect that trigger on eating that aren't tied to reagents. /obj/item/reagent_container/food/snacks/proc/On_Consume(mob/M) SEND_SIGNAL(src, COMSIG_SNACK_EATEN, M) + SEND_SIGNAL(M, COMSIG_MOB_EATEN_SNACK, src) if(!usr) return if(!reagents.total_volume) @@ -42,7 +43,7 @@ ..() if (world.time <= user.next_move) - return + return FALSE attack(user, user, "head")//zone does not matter user.next_move += attack_speed @@ -51,24 +52,30 @@ to_chat(user, SPAN_DANGER("None of [src] left, oh no!")) M.drop_inv_item_on_ground(src) //so icons update :[ qdel(src) - return 0 + return FALSE if(package) - to_chat(M, SPAN_WARNING("How do you expect to eat this with the package still on?")) - return 0 + if(user.a_intent == INTENT_HARM) + return ..() // chunk box gaming + + if(user == M) + to_chat(M, SPAN_WARNING("How do you expect to eat this with the package still on?")) + else + to_chat(M, SPAN_WARNING("[user] made an endearing attempt to force feed you a snack with the packaging still on.")) + return FALSE if(istype(M, /mob/living/carbon)) var/mob/living/carbon/C = M var/fullness = M.nutrition + (M.reagents.get_reagent_amount("nutriment") * 25) if(fullness > NUTRITION_HIGH && world.time < C.overeat_cooldown) to_chat(user, SPAN_WARNING("[user == M ? "You" : "They"] don't feel like eating more right now.")) - return + return FALSE if(issynth(C)) fullness = 200 //Synths never get full if(HAS_TRAIT(M, TRAIT_CANNOT_EAT)) //Do not feed the Working Joes to_chat(user, SPAN_DANGER("[user == M ? "You are" : "[M] is"] unable to eat!")) - return + return FALSE if(fullness > NUTRITION_HIGH) C.overeat_cooldown = world.time + OVEREAT_TIME @@ -120,9 +127,9 @@ reagents.trans_to_ingest(M, reagents.total_volume) bitecount++ On_Consume(M) - return 1 + return TRUE - return 0 + return FALSE /obj/item/reagent_container/food/snacks/afterattack(obj/target, mob/user, proximity) return ..() @@ -205,7 +212,7 @@ SPAN_NOTICE("[user] crudely slices \the [src] with [W]!"), \ SPAN_NOTICE("You crudely slice \the [src] with your [W]!") \ ) - slices_lost = rand(1,max(1,round(slices_num/2))) + slices_lost = rand(1,max(1,floor(slices_num/2))) var/reagents_per_slice = reagents.total_volume/slices_num for(var/i=1 to (slices_num-slices_lost)) var/obj/slice = new slice_path (src.loc) @@ -502,7 +509,7 @@ /obj/item/reagent_container/food/snacks/egg/attackby(obj/item/W as obj, mob/user as mob) if(istype( W, /obj/item/toy/crayon )) var/obj/item/toy/crayon/C = W - var/clr = C.colourName + var/clr = C.colorName if(!(clr in list("blue","green","mime","orange","purple","rainbow","red","yellow"))) to_chat(usr, SPAN_NOTICE(" The egg refuses to take on this color!")) @@ -568,7 +575,7 @@ name = "Boiled egg" desc = "A hard-boiled egg." icon_state = "egg" - filling_color = "#FFFFFF" + filling_color = COLOR_WHITE /obj/item/reagent_container/food/snacks/boiledegg/Initialize() . = ..() @@ -640,9 +647,17 @@ /obj/item/reagent_container/food/snacks/carpmeat/Initialize() . = ..() reagents.add_reagent("fish", 3) - reagents.add_reagent("carpotoxin", 3) + reagents.add_reagent("carpotoxin", 6) src.bitesize = 6 +/obj/item/reagent_container/food/snacks/carpmeat/processed + name = "processed carp fillet" + desc = "A fillet of spess carp meat. This one has been processed to remove carpotoxin." + +/obj/item/reagent_container/food/snacks/carpmeat/processed/Initialize() + . = ..() + reagents.remove_reagent("carpotoxin", 6) + /obj/item/reagent_container/food/snacks/fishfingers name = "Fish Fingers" desc = "A finger of fish." @@ -652,7 +667,6 @@ /obj/item/reagent_container/food/snacks/fishfingers/Initialize() . = ..() reagents.add_reagent("fish", 4) - reagents.add_reagent("carpotoxin", 3) bitesize = 3 /obj/item/reagent_container/food/snacks/hugemushroomslice @@ -801,7 +815,6 @@ . = ..() reagents.add_reagent("bread", 3) reagents.add_reagent("fish", 3) - reagents.add_reagent("carpotoxin", 3) bitesize = 3 /obj/item/reagent_container/food/snacks/tofuburger @@ -828,13 +841,6 @@ reagents.add_reagent("iron", 3) bitesize = 2 -/// Vanilla roburger - the nanites turn people into cyborgs -/obj/item/reagent_container/food/snacks/roburger/unsafe -/obj/item/reagent_container/food/snacks/roburger/unsafe/Initialize(mapload, ...) - . = ..() - if(prob(5)) - reagents.add_reagent("nanites", 2) - /obj/item/reagent_container/food/snacks/roburgerbig name = "roburger" desc = "This massive patty looks like poison. Beep." @@ -844,7 +850,6 @@ /obj/item/reagent_container/food/snacks/roburgerbig/Initialize() . = ..() - reagents.add_reagent("nanites", 100) bitesize = 0.1 /obj/item/reagent_container/food/snacks/xenoburger @@ -857,14 +862,13 @@ . = ..() reagents.add_reagent("bread", 3) reagents.add_reagent("meatprotein", 3) - reagents.add_reagent("xenoblood", 3) bitesize = 3 /obj/item/reagent_container/food/snacks/clownburger name = "Clown Burger" desc = "This tastes funny..." icon_state = "clownburger" - filling_color = "#FF00FF" + filling_color = COLOR_MAGENTA /obj/item/reagent_container/food/snacks/clownburger/Initialize() . = ..() @@ -880,7 +884,7 @@ name = "Mime Burger" desc = "Its taste defies language." icon_state = "mimeburger" - filling_color = "#FFFFFF" + filling_color = COLOR_WHITE /obj/item/reagent_container/food/snacks/mimeburger/Initialize() . = ..() @@ -1077,7 +1081,6 @@ . = ..() reagents.add_reagent("bread", 4) reagents.add_reagent("meatprotein", 2) - reagents.add_reagent("xenoblood", 4) bitesize = 2 /obj/item/reagent_container/food/snacks/wingfangchu @@ -1091,7 +1094,6 @@ . = ..() reagents.add_reagent("soysauce", 4) reagents.add_reagent("meatprotein", 4) - reagents.add_reagent("xenoblood", 4) bitesize = 2 /obj/item/reagent_container/food/snacks/human/kabob @@ -1140,7 +1142,6 @@ /obj/item/reagent_container/food/snacks/cubancarp/Initialize() . = ..() reagents.add_reagent("fish", 6) - reagents.add_reagent("carpotoxin", 3) reagents.add_reagent("hotsauce", 3) bitesize = 3 @@ -1367,7 +1368,7 @@ name = "Tomato soup" desc = "Smells like copper" icon_state = "tomatosoup" - filling_color = "#FF0000" + filling_color = COLOR_RED /obj/item/reagent_container/food/snacks/bloodsoup/Initialize() . = ..() @@ -1697,7 +1698,6 @@ /obj/item/reagent_container/food/snacks/fishandchips/Initialize() . = ..() reagents.add_reagent("fish", 6) - reagents.add_reagent("carpotoxin", 3) bitesize = 3 /obj/item/reagent_container/food/snacks/sandwich @@ -2127,7 +2127,7 @@ desc = "A tasty dessert that won't make it through a metal detector." icon_state = "gappletart" trash = /obj/item/trash/plate - filling_color = "#FFFF00" + filling_color = COLOR_YELLOW /obj/item/reagent_container/food/snacks/appletart/Initialize() . = ..() @@ -2179,7 +2179,6 @@ reagents.add_reagent("bread", 10) reagents.add_reagent("meatprotein", 10) reagents.add_reagent("cheese", 10) - reagents.add_reagent("xenoblood", 10) bitesize = 2 /obj/item/reagent_container/food/snacks/xenomeatbreadslice @@ -2745,6 +2744,10 @@ var/list/boxes = list() // If the boxes are stacked, they come here var/boxtag = "" +/obj/item/pizzabox/Destroy(force) + QDEL_NULL(pizza) + return ..() + /obj/item/pizzabox/update_icon() overlays = list() @@ -2752,10 +2755,10 @@ // Set appropriate description if( open && pizza ) desc = "A box suited for pizzas. It appears to have a [pizza.name] inside." - else if( boxes.len > 0 ) - desc = "A pile of boxes suited for pizzas. There appears to be [boxes.len + 1] boxes in the pile." + else if( length(boxes) > 0 ) + desc = "A pile of boxes suited for pizzas. There appears to be [length(boxes) + 1] boxes in the pile." - var/obj/item/pizzabox/topbox = boxes[boxes.len] + var/obj/item/pizzabox/topbox = boxes[length(boxes)] var/toptag = topbox.boxtag if( toptag != "" ) desc = "[desc] The box on top has a tag, it reads: '[toptag]'." @@ -2781,8 +2784,8 @@ else // Stupid code because byondcode sucks var/doimgtag = 0 - if( boxes.len > 0 ) - var/obj/item/pizzabox/topbox = boxes[boxes.len] + if( length(boxes) > 0 ) + var/obj/item/pizzabox/topbox = boxes[length(boxes)] if( topbox.boxtag != "" ) doimgtag = 1 else @@ -2791,10 +2794,10 @@ if( doimgtag ) var/image/tagimg = image("food.dmi", icon_state = "pizzabox_tag") - tagimg.pixel_y = boxes.len * 3 + tagimg.pixel_y = length(boxes) * 3 overlays += tagimg - icon_state = "pizzabox[boxes.len+1]" + icon_state = "pizzabox[length(boxes)+1]" /obj/item/pizzabox/attack_hand( mob/user as mob ) @@ -2806,12 +2809,12 @@ update_icon() return - if( boxes.len > 0 ) + if( length(boxes) > 0 ) if( user.get_inactive_hand() != src ) ..() return - var/obj/item/pizzabox/box = boxes[boxes.len] + var/obj/item/pizzabox/box = boxes[length(boxes)] boxes -= box user.put_in_hands( box ) @@ -2844,7 +2847,7 @@ for(var/obj/item/pizzabox/i in box.boxes) boxestoadd += i - if( (boxes.len+1) + boxestoadd.len <= 5 ) + if( (length(boxes)+1) + length(boxestoadd) <= 5 ) user.drop_inv_item_to_loc(box, src) box.boxes = list() // Clear the box boxes so we don't have boxes inside boxes. - Xzibit src.boxes.Add( boxestoadd ) @@ -2881,8 +2884,8 @@ var/t = stripped_input(user,"Enter what you want to add to the tag:", "Write", "", 30) var/obj/item/pizzabox/boxtotagto = src - if( boxes.len > 0 ) - boxtotagto = boxes[boxes.len] + if( length(boxes) > 0 ) + boxtotagto = boxes[length(boxes)] boxtotagto.boxtag = "[boxtotagto.boxtag][t]" playsound(src, "paper_writing", 15, TRUE) @@ -3131,6 +3134,7 @@ icon_state = "packaged-burrito" bitesize = 2 package = 1 + flags_obj = OBJ_NO_HELMET_BAND|OBJ_IS_HELMET_GARB /obj/item/reagent_container/food/snacks/packaged_burrito/Initialize() . = ..() @@ -3174,6 +3178,7 @@ name = "Packaged Hotdog" desc = "A singular squishy, room temperature, hot dog. There's no time given for how long to cook it, so you assume its probably good to go. Packaged by the Weyland-Yutani Corporation." icon_state = "packaged-hotdog" + flags_obj = OBJ_NO_HELMET_BAND|OBJ_IS_HELMET_GARB bitesize = 2 package = 1 @@ -3294,8 +3299,11 @@ name = "CHUNK box" desc = "A bar of \"The CHUNK\" brand chocolate. \"The densest chocolate permitted to exist according to federal law. We are legally required to ask you not to use this blunt object for anything other than nutrition.\"" icon_state = "chunk" - force = 15 //LEGAL LIMIT OF CHOCOLATE + hitsound = "swing_hit" + force = 15 throwforce = 10 + attack_speed = 10 + demolition_mod = 0.3 bitesize = 2 wrapper = /obj/item/trash/chunk @@ -3309,8 +3317,7 @@ desc = "A 'crate', as the marketing called it, of \"The HUNK\" brand chocolate. An early version of the CHUNK box, the HUNK bar was hit by a class action lawsuit and forced to go into bankruptcy and get bought out by the Company when hundreds of customers had their teeth crack from simply attempting to eat the bar." icon_state = "hunk" w_class = SIZE_MEDIUM - hitsound = "swing_hit" - force = 35 //ILLEGAL LIMIT OF CHOCOLATE + force = 35 throwforce = 50 bitesize = 20 wrapper = /obj/item/trash/chunk/hunk diff --git a/code/game/objects/items/reagent_containers/food/snacks/grown.dm b/code/game/objects/items/reagent_containers/food/snacks/grown.dm index 32423c121b61..55ed8c8d34f0 100644 --- a/code/game/objects/items/reagent_containers/food/snacks/grown.dm +++ b/code/game/objects/items/reagent_containers/food/snacks/grown.dm @@ -42,7 +42,7 @@ var/list/reagent_data = S.chems[rid] var/rtotal = reagent_data[1] if(length(reagent_data) > 1 && potency > 0) - rtotal += round(potency/reagent_data[2]) + rtotal += floor(potency/reagent_data[2]) if(reagents) reagents.add_reagent(rid, max(1, rtotal)) @@ -62,7 +62,7 @@ name = "cherries" desc = "Great for toppings!" icon_state = "cherry" - filling_color = "#FF0000" + filling_color = COLOR_RED gender = PLURAL plantname = "cherry" @@ -357,7 +357,7 @@ name = "chili" desc = "It's spicy! Wait... IT'S BURNING ME!!" icon_state = "chilipepper" - filling_color = "#FF0000" + filling_color = COLOR_RED plantname = "chili" /obj/item/reagent_container/food/snacks/grown/eggplant @@ -379,7 +379,7 @@ name = "tomato" desc = "I say to-mah-to, you say tom-mae-to." icon_state = "tomato" - filling_color = "#FF0000" + filling_color = COLOR_RED potency = 10 plantname = "tomato" @@ -395,7 +395,7 @@ desc = "I say to-mah-to, you say tom-mae-to... OH GOD IT'S EATING MY LEGS!!" icon_state = "killertomato" potency = 10 - filling_color = "#FF0000" + filling_color = COLOR_RED potency = 30 plantname = "killertomato" @@ -414,7 +414,7 @@ desc = "So bloody...so...very...bloody....AHHHH!!!!" icon_state = "bloodtomato" potency = 10 - filling_color = "#FF0000" + filling_color = COLOR_RED plantname = "bloodtomato" /obj/item/reagent_container/food/snacks/grown/bloodtomato/launch_impact(atom/hit_atom) @@ -502,7 +502,7 @@ desc = "Amanita Muscaria: Learn poisonous mushrooms by heart. Only pick mushrooms you know." icon_state = "amanita" potency = 10 - filling_color = "#FF0000" + filling_color = COLOR_RED plantname = "amanita" /obj/item/reagent_container/food/snacks/grown/mushroom/angel @@ -591,7 +591,7 @@ if(T.x>world.maxx-outer_teleport_radius || T.xworld.maxy-outer_teleport_radius || T.y 24) round_percent = round(percent, 25) else round_percent = 10 @@ -345,8 +344,8 @@ flags_atom = FPRINT|OPENCONTAINER|NOREACT /obj/item/reagent_container/glass/beaker/bluespace - name = "bluespace beaker" - desc = "A beaker with an enlarged holding capacity, made with blue-tinted plexiglass in order to withstand greater pressure - affectionately nicknamed \"bluespace\". Can hold up to 300 units." + name = "high-capacity beaker" + desc = "A beaker with an enlarged holding capacity, made with blue-tinted plexiglass in order to withstand greater pressure. Can hold up to 300 units." icon_state = "beakerbluespace" matter = list("glass" = 10000) volume = 300 @@ -366,6 +365,14 @@ ground_offset_x = 9 ground_offset_y = 8 +/obj/item/reagent_container/glass/beaker/vial/epinephrine + name = "epinephrine vial" + +/obj/item/reagent_container/glass/beaker/vial/epinephrine/Initialize() + . = ..() + reagents.add_reagent("adrenaline", 30) + update_icon() + /obj/item/reagent_container/glass/beaker/vial/tricordrazine name = "tricordrazine vial" @@ -612,7 +619,7 @@ if(reagents && reagents.total_volume) var/image/filling = image('icons/obj/items/reagentfillings.dmi', src, "[icon_state]-00-65") - var/percent = round((reagents.total_volume / volume) * 100) + var/percent = floor((reagents.total_volume / volume) * 100) switch(percent) if(0 to 33) filling.icon_state = "[icon_state]-00-33" if(34 to 65) filling.icon_state = "[icon_state]-34-65" diff --git a/code/game/objects/items/reagent_containers/glass/bottle.dm b/code/game/objects/items/reagent_containers/glass/bottle.dm index 01eb751774e1..f1eab588fd20 100644 --- a/code/game/objects/items/reagent_containers/glass/bottle.dm +++ b/code/game/objects/items/reagent_containers/glass/bottle.dm @@ -4,13 +4,14 @@ name = "bottle" desc = "A small bottle." icon = 'icons/obj/items/chemistry.dmi' - icon_state = null + icon_state = "bottle-1" item_state = "atoxinbottle" amount_per_transfer_from_this = 10 possible_transfer_amounts = list(5, 10, 15, 25, 30, 40, 60) flags_atom = FPRINT|OPENCONTAINER volume = 60 attack_speed = 4 + var/randomize = TRUE /obj/item/reagent_container/glass/bottle/on_reagent_change() update_icon() @@ -29,247 +30,224 @@ /obj/item/reagent_container/glass/bottle/Initialize() . = ..() - if(!icon_state) + if(randomize) icon_state = "bottle-[rand(1,4)]" /obj/item/reagent_container/glass/bottle/update_icon() overlays.Cut() - if(reagents.total_volume && (icon_state == "bottle-1" || icon_state == "bottle-2" || icon_state == "bottle-3" || icon_state == "bottle-4")) + if(reagents.total_volume) var/image/filling = image('icons/obj/items/reagentfillings.dmi', src, "[icon_state]10") - var/percent = round((reagents.total_volume / volume) * 100) + var/percent = floor((reagents.total_volume / volume) * 100) switch(percent) - if(0 to 9) filling.icon_state = "[icon_state]--10" - if(10 to 24) filling.icon_state = "[icon_state]-10" - if(25 to 49) filling.icon_state = "[icon_state]-25" - if(50 to 74) filling.icon_state = "[icon_state]-50" - if(75 to 79) filling.icon_state = "[icon_state]-75" - if(80 to 90) filling.icon_state = "[icon_state]-80" - if(91 to INFINITY) filling.icon_state = "[icon_state]-100" + if(0) filling.icon_state = null + if(1 to 20) filling.icon_state = "[icon_state]-20" + if(21 to 40) filling.icon_state = "[icon_state]-40" + if(41 to 60) filling.icon_state = "[icon_state]-60" + if(61 to 80) filling.icon_state = "[icon_state]-80" + if(81 to INFINITY) filling.icon_state = "[icon_state]-100" filling.color = mix_color_from_reagents(reagents.reagent_list) overlays += filling - if (!is_open_container()) - var/image/lid = image(icon, src, "lid_bottle") + if(!is_open_container()) + var/image/lid = image(icon, src, "lid_[icon_state]") overlays += lid + /obj/item/reagent_container/glass/bottle/inaprovaline name = "\improper Inaprovaline bottle" desc = "A small bottle. Contains inaprovaline - used to stabilize patients." - icon = 'icons/obj/items/chemistry.dmi' - icon_state = "bottle19" amount_per_transfer_from_this = 60 /obj/item/reagent_container/glass/bottle/inaprovaline/Initialize() . = ..() reagents.add_reagent("inaprovaline", 60) + update_icon() /obj/item/reagent_container/glass/bottle/kelotane name = "\improper Kelotane bottle" desc = "A small bottle. Contains kelotane - used to treat burned areas." - icon = 'icons/obj/items/chemistry.dmi' - icon_state = "bottle16" amount_per_transfer_from_this = 60 /obj/item/reagent_container/glass/bottle/kelotane/Initialize() . = ..() reagents.add_reagent("kelotane", 60) + update_icon() /obj/item/reagent_container/glass/bottle/dexalin name = "\improper Dexalin bottle" - desc = "A small bottle. Contains dexalin - used to treat oxygen deprivation." - icon = 'icons/obj/items/chemistry.dmi' - icon_state = "bottle10" amount_per_transfer_from_this = 60 /obj/item/reagent_container/glass/bottle/dexalin/Initialize() . = ..() reagents.add_reagent("dexalin", 60) + update_icon() /obj/item/reagent_container/glass/bottle/spaceacillin name = "\improper Spaceacillin bottle" desc = "A small bottle. Contains spaceacillin - used to treat infected wounds." - icon = 'icons/obj/items/chemistry.dmi' - icon_state = "bottle8" amount_per_transfer_from_this = 60 /obj/item/reagent_container/glass/bottle/spaceacillin/Initialize() . = ..() reagents.add_reagent("spaceacillin", 60) + update_icon() /obj/item/reagent_container/glass/bottle/toxin name = "toxin bottle" desc = "A small bottle of toxins. Do not drink, it is poisonous." - icon = 'icons/obj/items/chemistry.dmi' - icon_state = "bottle12" - /obj/item/reagent_container/glass/bottle/toxin/Initialize() . = ..() reagents.add_reagent("toxin", 60) + update_icon() /obj/item/reagent_container/glass/bottle/cyanide name = "cyanide bottle" desc = "A small bottle of cyanide. Bitter almonds?" - icon = 'icons/obj/items/chemistry.dmi' - icon_state = "bottle12" /obj/item/reagent_container/glass/bottle/cyanide/Initialize() . = ..() reagents.add_reagent("cyanide", 60) + update_icon() /obj/item/reagent_container/glass/bottle/stoxin name = "Soporific bottle" desc = "A small bottle of soporific. Just the fumes make you sleepy." - icon = 'icons/obj/items/chemistry.dmi' - icon_state = "bottle20" amount_per_transfer_from_this = 60 /obj/item/reagent_container/glass/bottle/stoxin/Initialize() . = ..() reagents.add_reagent("stoxin", 60) + update_icon() /obj/item/reagent_container/glass/bottle/chloralhydrate name = "chloral hydrate bottle" desc = "A small bottle of Choral Hydrate. Mickey's Favorite!" - icon = 'icons/obj/items/chemistry.dmi' - icon_state = "bottle20" /obj/item/reagent_container/glass/bottle/chloralhydrate/Initialize() . = ..() reagents.add_reagent("chloralhydrate", 30) //Intentionally low since it is so strong. Still enough to knock someone out. + update_icon() /obj/item/reagent_container/glass/bottle/antitoxin name = "\improper Dylovene bottle" desc = "A small bottle of dylovene. Counters poisons, and repairs toxin damage. A wonder drug." - icon = 'icons/obj/items/chemistry.dmi' - icon_state = "bottle7" amount_per_transfer_from_this = 60 /obj/item/reagent_container/glass/bottle/antitoxin/Initialize() . = ..() reagents.add_reagent("anti_toxin", 60) + update_icon() /obj/item/reagent_container/glass/bottle/mutagen name = "unstable mutagen bottle" desc = "A small bottle of unstable mutagen. Randomly changes the DNA structure of whoever comes in contact." - icon = 'icons/obj/items/chemistry.dmi' - icon_state = "bottle7" /obj/item/reagent_container/glass/bottle/mutagen/Initialize() . = ..() reagents.add_reagent("mutagen", 60) + update_icon() /obj/item/reagent_container/glass/bottle/ammonia name = "ammonia bottle" desc = "A small bottle." - icon = 'icons/obj/items/chemistry.dmi' - icon_state = "bottle20" /obj/item/reagent_container/glass/bottle/ammonia/Initialize() . = ..() reagents.add_reagent("ammonia", 60) + update_icon() /obj/item/reagent_container/glass/bottle/diethylamine name = "diethylamine bottle" desc = "A small bottle. Contains a potent fertiliser." - icon = 'icons/obj/items/chemistry.dmi' - icon_state = "bottle17" /obj/item/reagent_container/glass/bottle/diethylamine/Initialize() . = ..() reagents.add_reagent("diethylamine", 60) + update_icon() /obj/item/reagent_container/glass/bottle/flu_virion name = "flu virion culture bottle" desc = "A small bottle. Contains H13N1 flu virion culture in synthblood medium." - icon = 'icons/obj/items/chemistry.dmi' - icon_state = "bottle3" /obj/item/reagent_container/glass/bottle/flu_virion/Initialize() . = ..() var/datum/disease/F = new /datum/disease/advance/flu(0) var/list/data = list("viruses"= list(F)) reagents.add_reagent("blood", 20, data) + update_icon() /obj/item/reagent_container/glass/bottle/epiglottis_virion name = "epiglottis virion culture bottle" desc = "A small bottle. Contains Epiglottis virion culture in synthblood medium." - icon = 'icons/obj/items/chemistry.dmi' - icon_state = "bottle3" /obj/item/reagent_container/glass/bottle/epiglottis_virion/Initialize() . = ..() var/datum/disease/F = new /datum/disease/advance/voice_change(0) var/list/data = list("viruses"= list(F)) reagents.add_reagent("blood", 20, data) + update_icon() /obj/item/reagent_container/glass/bottle/liver_enhance_virion name = "liver enhancement virion culture bottle" desc = "A small bottle. Contains liver enhancement virion culture in synthblood medium." - icon = 'icons/obj/items/chemistry.dmi' - icon_state = "bottle3" /obj/item/reagent_container/glass/bottle/liver_enhance_virion/Initialize() . = ..() var/datum/disease/F = new /datum/disease/advance/heal(0) var/list/data = list("viruses"= list(F)) reagents.add_reagent("blood", 20, data) + update_icon() /obj/item/reagent_container/glass/bottle/hullucigen_virion name = "hullucigen virion culture bottle" desc = "A small bottle. Contains hullucigen virion culture in synthblood medium." - icon = 'icons/obj/items/chemistry.dmi' - icon_state = "bottle3" /obj/item/reagent_container/glass/bottle/hullucigen_virion/Initialize() . = ..() var/datum/disease/F = new /datum/disease/advance/hullucigen(0) var/list/data = list("viruses"= list(F)) reagents.add_reagent("blood", 20, data) + update_icon() /obj/item/reagent_container/glass/bottle/pierrot_throat name = "\improper Pierrot's Throat culture bottle" desc = "A small bottle. Contains H0NI<42 virion culture in synthblood medium." - icon = 'icons/obj/items/chemistry.dmi' - icon_state = "bottle3" /obj/item/reagent_container/glass/bottle/pierrot_throat/Initialize() . = ..() var/datum/disease/F = new /datum/disease/pierrot_throat(0) var/list/data = list("viruses"= list(F)) reagents.add_reagent("blood", 20, data) + update_icon() /obj/item/reagent_container/glass/bottle/cold name = "rhinovirus culture bottle" desc = "A small bottle. Contains XY-rhinovirus culture in synthblood medium." - icon = 'icons/obj/items/chemistry.dmi' - icon_state = "bottle3" /obj/item/reagent_container/glass/bottle/cold/Initialize() . = ..() var/datum/disease/advance/F = new /datum/disease/advance/cold(0) var/list/data = list("viruses"= list(F)) reagents.add_reagent("blood", 20, data) + update_icon() /obj/item/reagent_container/glass/bottle/random name = "random culture bottle" desc = "A small bottle. Contains a random disease." - icon = 'icons/obj/items/chemistry.dmi' - icon_state = "bottle3" /obj/item/reagent_container/glass/bottle/random/Initialize() . = ..() var/datum/disease/advance/F = new(0) var/list/data = list("viruses"= list(F)) reagents.add_reagent("blood", 20, data) + update_icon() /obj/item/reagent_container/glass/bottle/gbs name = "\improper GBS culture bottle" desc = "A small bottle. Contains Gravitokinetic Bipotential SADS+ culture in synthblood medium."//Or simply - General BullShit - icon = 'icons/obj/items/chemistry.dmi' - icon_state = "bottle3" amount_per_transfer_from_this = 5 /obj/item/reagent_container/glass/bottle/gbs/Initialize() @@ -278,24 +256,23 @@ var/datum/disease/F = new /datum/disease/gbs var/list/data = list("virus"= F) reagents.add_reagent("blood", 20, data) + update_icon() /obj/item/reagent_container/glass/bottle/fake_gbs name = "\improper GBS culture bottle" desc = "A small bottle. Contains Gravitokinetic Bipotential SADS- culture in synthblood medium."//Or simply - General BullShit - icon = 'icons/obj/items/chemistry.dmi' - icon_state = "bottle3" /obj/item/reagent_container/glass/bottle/fake_gbs/Initialize() . = ..() var/datum/disease/F = new /datum/disease/fake_gbs(0) var/list/data = list("viruses"= list(F)) reagents.add_reagent("blood", 20, data) + update_icon() + /* /obj/item/reagent_container/glass/bottle/rhumba_beat name = "Rhumba Beat culture bottle" desc = "A small bottle. Contains The Rhumba Beat culture in synthblood medium."//Or simply - General BullShit - icon = 'icons/obj/items/chemistry.dmi' - icon_state = "bottle3" amount_per_transfer_from_this = 5 New() @@ -305,126 +282,127 @@ var/datum/disease/F = new /datum/disease/rhumba_beat var/list/data = list("virus"= F) R.add_reagent("blood", 20, data) + update_icon() + */ /obj/item/reagent_container/glass/bottle/brainrot name = "\improper Brainrot culture bottle" desc = "A small bottle. Contains Cryptococcus Cosmosis culture in synthblood medium." - icon = 'icons/obj/items/chemistry.dmi' - icon_state = "bottle3" /obj/item/reagent_container/glass/bottle/brainrot/Initialize() . = ..() var/datum/disease/F = new /datum/disease/brainrot(0) var/list/data = list("viruses"= list(F)) reagents.add_reagent("blood", 20, data) + update_icon() /obj/item/reagent_container/glass/bottle/magnitis name = "\improper Magnitis culture bottle" desc = "A small bottle. Contains a small dosage of Fukkos Miracos." - icon = 'icons/obj/items/chemistry.dmi' - icon_state = "bottle3" /obj/item/reagent_container/glass/bottle/magnitis/Initialize() . = ..() var/datum/disease/F = new /datum/disease/magnitis(0) var/list/data = list("viruses"= list(F)) reagents.add_reagent("blood", 20, data) + update_icon() /obj/item/reagent_container/glass/bottle/pacid name = "polytrinic acid bottle" desc = "A small bottle. Contains a small amount of Polytrinic Acid, an extremely potent and dangerous acid." - icon = 'icons/obj/items/chemistry.dmi' - icon_state = "bottle17" /obj/item/reagent_container/glass/bottle/pacid/Initialize() . = ..() reagents.add_reagent("pacid", 60) + update_icon() /obj/item/reagent_container/glass/bottle/adminordrazine name = "\improper Adminordrazine bottle" desc = "A small bottle. Contains the liquid essence of the gods." - icon = 'icons/obj/items/drinks.dmi' - icon_state = "holyflask" /obj/item/reagent_container/glass/bottle/adminordrazine/Initialize() . = ..() reagents.add_reagent("adminordrazine", 60) + update_icon() /obj/item/reagent_container/glass/bottle/capsaicin name = "\improper Capsaicin bottle" desc = "A small bottle. Contains hot sauce." - icon = 'icons/obj/items/chemistry.dmi' - icon_state = "bottle3" /obj/item/reagent_container/glass/bottle/capsaicin/Initialize() . = ..() reagents.add_reagent("capsaicin", 60) + update_icon() /obj/item/reagent_container/glass/bottle/frostoil name = "\improper Frost Oil bottle" desc = "A small bottle. Contains cold sauce." - icon = 'icons/obj/items/chemistry.dmi' - icon_state = "bottle17" /obj/item/reagent_container/glass/bottle/frostoil/Initialize() . = ..() reagents.add_reagent("frostoil", 60) + update_icon() /obj/item/reagent_container/glass/bottle/bicaridine name = "\improper Bicaridine bottle" desc = "A small bottle. Contains Bicaridine - Used to treat brute damage." - icon = 'icons/obj/items/chemistry.dmi' - icon_state = "bottle17" amount_per_transfer_from_this = 60 /obj/item/reagent_container/glass/bottle/bicaridine/Initialize() . = ..() reagents.add_reagent("bicaridine", 60) + update_icon() /obj/item/reagent_container/glass/bottle/peridaxon name = "\improper Peridaxon bottle" desc = "A small bottle. Contains Peridaxon - Used by lazy doctors to temporarily halt the effects of internal organ damage." - icon = 'icons/obj/items/chemistry.dmi' - icon_state = "bottle4" volume = 60 amount_per_transfer_from_this = 60 /obj/item/reagent_container/glass/bottle/peridaxon/Initialize() . = ..() reagents.add_reagent("peridaxon", 60) + update_icon() /obj/item/reagent_container/glass/bottle/tramadol name = "\improper Tramadol bottle" desc = "A small bottle. Contains Tramadol - Used as a basic painkiller." - icon = 'icons/obj/items/chemistry.dmi' - icon_state = "bottle1" volume = 60 amount_per_transfer_from_this = 60 /obj/item/reagent_container/glass/bottle/tramadol/Initialize() . = ..() reagents.add_reagent("tramadol", 60) + update_icon() /obj/item/reagent_container/glass/bottle/oxycodone name = "\improper Oxycodone bottle" desc = "A small bottle. Contains Oxycodone - Used as an Extreme Painkiller. ILLEGAL TO DISTRIBUTE." - icon = 'icons/obj/items/chemistry.dmi' - icon_state = "bottle2" volume = 60 amount_per_transfer_from_this = 60 /obj/item/reagent_container/glass/bottle/oxycodone/Initialize() . = ..() reagents.add_reagent("oxycodone", 60) + update_icon() /obj/item/reagent_container/glass/bottle/tricordrazine name = "\improper Tricordrazine bottle" desc = "A small bottle. Contains tricordrazine - A weak but catch-all medicine for treating all sorts of damage." - icon = 'icons/obj/items/chemistry.dmi' - icon_state = "bottle18" volume = 60 /obj/item/reagent_container/glass/bottle/tricordrazine/Initialize() . = ..() reagents.add_reagent("tricordrazine", 60) + update_icon() + +/obj/item/reagent_container/glass/bottle/epinephrine + name = "\improper Epinephrine bottle" + desc = "A small bottle. Contains epinephrine - Used to increase a patients arterial blood pressure, amongst other actions, to assist in cardiopulmonary resuscitation." //"I can't lie to you about your odds of a successful resuscitation, but you have my sympathies" + volume = 60 + +/obj/item/reagent_container/glass/bottle/epinephrine/Initialize() + . = ..() + reagents.add_reagent("adrenaline", 60) + update_icon() diff --git a/code/game/objects/items/reagent_containers/glass/bottle/robot.dm b/code/game/objects/items/reagent_containers/glass/bottle/robot.dm index 553b3e0dcbc3..67c397e30eb5 100644 --- a/code/game/objects/items/reagent_containers/glass/bottle/robot.dm +++ b/code/game/objects/items/reagent_containers/glass/bottle/robot.dm @@ -10,7 +10,6 @@ name = "internal inaprovaline bottle" desc = "A small bottle. Contains inaprovaline - used to stabilize patients." icon = 'icons/obj/items/chemistry.dmi' - icon_state = "bottle16" reagent = "inaprovaline" /obj/item/reagent_container/glass/bottle/robot/inaprovaline/Initialize() @@ -23,7 +22,6 @@ name = "internal anti-toxin bottle" desc = "A small bottle of Anti-toxins. Counters poisons, and repairs damage, a wonder drug." icon = 'icons/obj/items/chemistry.dmi' - icon_state = "bottle17" reagent = "anti_toxin" /obj/item/reagent_container/glass/bottle/robot/antitoxin/Initialize() diff --git a/code/game/objects/items/reagent_containers/hypospray.dm b/code/game/objects/items/reagent_containers/hypospray.dm index fcea8997f0b5..05b76568d702 100644 --- a/code/game/objects/items/reagent_containers/hypospray.dm +++ b/code/game/objects/items/reagent_containers/hypospray.dm @@ -206,6 +206,7 @@ to_chat(user, SPAN_NOTICE(" You inject [M] with [src].")) to_chat(M, SPAN_WARNING("You feel a tiny prick!")) playsound(loc, injectSFX, injectVOL, 1) + SEND_SIGNAL(M, COMSIG_LIVING_HYPOSPRAY_INJECTED, src) reagents.reaction(M, INGEST) if(M.reagents) @@ -236,6 +237,9 @@ /obj/item/reagent_container/hypospray/tricordrazine starting_vial = /obj/item/reagent_container/glass/beaker/vial/tricordrazine +/obj/item/reagent_container/hypospray/epinephrine + starting_vial = /obj/item/reagent_container/glass/beaker/vial/epinephrine + /obj/item/reagent_container/hypospray/sedative name = "Sedative Hypospray" starting_vial = /obj/item/reagent_container/glass/beaker/vial/sedative diff --git a/code/game/objects/items/reagent_containers/reagent_container.dm b/code/game/objects/items/reagent_containers/reagent_container.dm index 327f6ba1ce1c..5207df4ca7bb 100644 --- a/code/game/objects/items/reagent_containers/reagent_container.dm +++ b/code/game/objects/items/reagent_containers/reagent_container.dm @@ -86,11 +86,11 @@ //returns a text listing the reagents (and their volume) in the atom. Used by Attack logs for reagents in pills /obj/item/reagent_container/proc/get_reagent_list_text() - if(reagents && reagents.reagent_list && reagents.reagent_list.len) + if(reagents && LAZYLEN(reagents.reagent_list)) var/datum/reagent/R = reagents.reagent_list[1] . = "[R.name]([R.volume]u)" - if(reagents.reagent_list.len < 2) return - for (var/i in 2 to reagents.reagent_list.len) + if(length(reagents.reagent_list) < 2) return + for (var/i in 2 to length(reagents.reagent_list)) R = reagents.reagent_list[i] if(!R) continue . += "; [R.name]([R.volume]u)" diff --git a/code/game/objects/items/robot/robot_parts.dm b/code/game/objects/items/reagent_containers/robot_parts.dm similarity index 76% rename from code/game/objects/items/robot/robot_parts.dm rename to code/game/objects/items/reagent_containers/robot_parts.dm index b853b24d1013..3a188bda6a50 100644 --- a/code/game/objects/items/robot/robot_parts.dm +++ b/code/game/objects/items/reagent_containers/robot_parts.dm @@ -164,72 +164,6 @@ else to_chat(user, SPAN_NOTICE(" You need to attach a flash to it first!")) - if(istype(W, /obj/item/device/mmi)) - var/obj/item/device/mmi/M = W - if(check_completion()) - if(!istype(loc,/turf)) - to_chat(user, SPAN_DANGER("You can't put \the [W] in, the frame has to be standing on the ground to be perfectly precise.")) - return - if(!M.brainmob) - to_chat(user, SPAN_DANGER("Sticking an empty [W] into the frame would sort of defeat the purpose.")) - return - if(!M.brainmob.key) - var/ghost_can_reenter = 0 - if(M.brainmob.mind) - for(var/mob/dead/observer/G in GLOB.observer_list) - if(G.can_reenter_corpse && G.mind == M.brainmob.mind) - ghost_can_reenter = 1 - break - if(!ghost_can_reenter) - to_chat(user, SPAN_NOTICE("\The [W] is completely unresponsive; there's no point.")) - return - - if(M.brainmob.stat == DEAD) - to_chat(user, SPAN_DANGER("Sticking a dead [W] into the frame would sort of defeat the purpose.")) - return - - if(jobban_isbanned(M.brainmob, "Cyborg")) - to_chat(user, SPAN_DANGER("This [W] does not seem to fit.")) - return - - var/mob/living/silicon/robot/O = new /mob/living/silicon/robot(get_turf(loc), unfinished = 1) - if(!O) return - - user.drop_held_item() - - O.mmi = W - O.invisibility = 0 - O.custom_name = created_name - O.updatename("Default") - - M.brainmob.mind.transfer_to(O) - - O.job = "Cyborg" - - O.cell = chest.cell - O.cell.forceMove(O) - W.forceMove(O)//Should fix cybros run time erroring when blown up. It got deleted before, along with the frame. - - // Since we "magically" installed a cell, we also have to update the correct component. - if(O.cell) - var/datum/robot_component/cell_component = O.components["power cell"] - cell_component.wrapped = O.cell - cell_component.installed = 1 - O.Namepick() - - qdel(src) - else - to_chat(user, SPAN_NOTICE(" The MMI must go in after everything else!")) - - if (HAS_TRAIT(W, TRAIT_TOOL_PEN)) - var/t = stripped_input(user, "Enter new robot name", src.name, src.created_name, MAX_NAME_LEN) - if (!t) - return - if (!in_range(src, usr) && src.loc != usr) - return - - src.created_name = t - return /obj/item/robot_parts/chest/attackby(obj/item/W as obj, mob/user as mob) diff --git a/code/game/objects/items/reagent_containers/spray.dm b/code/game/objects/items/reagent_containers/spray.dm index aff905039d0e..138e6ad01a3d 100644 --- a/code/game/objects/items/reagent_containers/spray.dm +++ b/code/game/objects/items/reagent_containers/spray.dm @@ -87,7 +87,7 @@ /obj/item/reagent_container/spray/get_examine_text(mob/user) . = ..() - . += "[round(reagents.total_volume)] units left." + . += "[floor(reagents.total_volume)] units left." /obj/item/reagent_container/spray/verb/empty() @@ -190,7 +190,7 @@ var/turf/T2 = get_step(T,turn(direction, -90)) var/list/the_targets = list(T,T1,T2) - for(var/i=1, i<=Sprays.len, i++) + for(var/i=1, i<=length(Sprays), i++) spawn() var/obj/effect/decal/chempuff/D = Sprays[i] if(!D) continue diff --git a/code/game/objects/items/research_upgrades.dm b/code/game/objects/items/research_upgrades.dm new file mode 100644 index 000000000000..2cfbe0ebebf8 --- /dev/null +++ b/code/game/objects/items/research_upgrades.dm @@ -0,0 +1,72 @@ +//prop items +/obj/item/oldresearch + name = "Alien Organ" + desc = "Looking at it makes you want to vomit" + icon = 'icons/obj/items/Marine_Research.dmi' + icon_state = "biomass" + black_market_value = 50 + //For all of them for now, until we have specific organs/more techs + +/obj/item/oldresearch/Resin + name = "Alien Resin" + desc = "A piece of alien Resin" + icon_state = "biomass" + + +/obj/item/oldresearch/Chitin + name = "Chunk of Chitin" + desc = "A chunk of alien Chitin" + icon_state = "chitin-chunk" + + +/obj/item/oldresearch/Blood + name = "Blood Vial" + desc = "A sample of alien Blood" + icon_state = "blood-vial" + +//prop items end + +//previously file holding left over stuff that never got finished from 8 years ago, it was boring though, so we change that. +/obj/item/research_upgrades + name = "Research upgrade" + desc = "Somehow you got this, you shouldnt be able to, consider yourself special." + icon = 'icons/obj/items/disk.dmi' + w_class = SIZE_TINY + icon_state = "datadisk1" // doesnt HAVE to be a disk! + ///technology stored on this disk, goes through one to whatever levels of upgrades there are. + var/value + +/obj/item/research_upgrades/autodoc + name = "Research Upgrade (AutoDoc)" + value = RESEARCH_UPGRADE_TIER_1 + + +/obj/item/research_upgrades/autodoc/Initialize(mapload, value) + . = ..() + src.value = value + desc = "Research upgrade for an AutoDoc. The technology on this disk is used [get_upgrade_text()]. Insert it in an AutoDoc to use it." + +/obj/item/research_upgrades/autodoc/proc/get_upgrade_text() + switch(value) + if(RESEARCH_UPGRADE_TIER_1) + return "for stitching up internal bleedings" + if(RESEARCH_UPGRADE_TIER_2) + return "for fixing broken bones" + if(RESEARCH_UPGRADE_TIER_3) + return "for treating internal organ damage" + if(RESEARCH_UPGRADE_TIER_4) + return "for extracting unknown parasites" + +/obj/item/research_upgrades/sleeper + name = "Research Upgrade (Sleeper)" + desc = "Research upgrade for a sleeper system. The technology on this disk is used on a sleeper to allow a wider spectrum of chemicals to be administered." + + +/obj/item/research_upgrades/credits + name = "Research Market (Credits)" + var/credit_value = 8 + +/obj/item/research_upgrades/credits/Initialize(mapload, ...) + . = ..() + credit_value = rand(8, 9) + desc = "Research disk containing all the bits of data the analyzer could salvage, insert this into a research computer in order to sell the data and acquire [credit_value] points." diff --git a/code/game/objects/items/robot/robot_items.dm b/code/game/objects/items/robot/robot_items.dm deleted file mode 100644 index 476390fda6e8..000000000000 --- a/code/game/objects/items/robot/robot_items.dm +++ /dev/null @@ -1,83 +0,0 @@ -//********************************************************************** -// Cyborg Spec Items -//***********************************************************************/ -//Might want to move this into several files later but for now it works here -/obj/item/robot/stun - name = "electrified arm" - icon = 'icons/obj/structures/props/decals.dmi' - icon_state = "shock" - -/obj/item/robot/stun/attack(mob/M as mob, mob/living/silicon/robot/user as mob) - M.attack_log += text("\[[time_stamp()]\] Has been attacked with [src.name] by [user.name] ([user.ckey])") - user.attack_log += text("\[[time_stamp()]\] Used the [src.name] to attack [M.name] ([M.ckey])") - msg_admin_attack("[user.name] ([user.ckey]) used the [src.name] to attack [M.name] ([M.ckey]) in [get_area(user)] ([user.loc.x],[user.loc.y],[user.loc.z]).", user.loc.x, user.loc.y, user.loc.z) - - user.cell.charge -= 30 - - playsound(M.loc, 'sound/weapons/Egloves.ogg', 25, 1, 4) - M.apply_effect(5, WEAKEN) - if (M.stuttering < 5) - M.stuttering = 5 - M.apply_effect(5, STUN) - - for(var/mob/O in viewers(M, null)) - if (O.client) - O.show_message(SPAN_DANGER("[user] has prodded [M] with an electrically-charged arm!"), SHOW_MESSAGE_VISIBLE, SPAN_DANGER("You hear someone fall"), SHOW_MESSAGE_AUDIBLE) - -/obj/item/robot/overdrive - name = "overdrive" - icon = 'icons/obj/structures/props/decals.dmi' - icon_state = "shock" - -//********************************************************************** -// HUD/SIGHT things -//***********************************************************************/ -/obj/item/robot/sight - icon = 'icons/obj/structures/props/decals.dmi' - icon_state = "securearea" - var/sight_mode = null - - -/obj/item/robot/sight/xray - name = "\proper x-ray Vision" - sight_mode = BORGXRAY - - -/obj/item/robot/sight/thermal - name = "\proper thermal vision" - sight_mode = BORGTHERM - icon_state = "thermal" - icon = 'icons/obj/items/clothing/glasses.dmi' - - -/obj/item/robot/sight/meson - name = "\proper meson vision" - sight_mode = BORGMESON - icon_state = "meson" - icon = 'icons/obj/items/clothing/glasses.dmi' - -/obj/item/robot/sight/hud - name = "hud" - var/obj/item/clothing/glasses/hud/hud = null - - -/obj/item/robot/sight/hud/med - name = "medical hud" - icon_state = "healthhud" - icon = 'icons/obj/items/clothing/glasses.dmi' - -/obj/item/robot/sight/hud/sec/New() - ..() - hud = new /obj/item/clothing/glasses/hud/health(src) - return - - -/obj/item/robot/sight/hud/sec - name = "security hud" - icon_state = "securityhud" - icon = 'icons/obj/items/clothing/glasses.dmi' - -/obj/item/robot/sight/hud/sec/New() - ..() - hud = new /obj/item/clothing/glasses/hud/security(src) - return diff --git a/code/game/objects/items/robot/robot_upgrades.dm b/code/game/objects/items/robot/robot_upgrades.dm deleted file mode 100644 index de2daa9a3009..000000000000 --- a/code/game/objects/items/robot/robot_upgrades.dm +++ /dev/null @@ -1,149 +0,0 @@ -// robot_upgrades.dm -// Contains various borg upgrades. - -/obj/item/robot/upgrade - name = "borg upgrade module." - desc = "Protected by FRM." - icon = 'icons/obj/items/circuitboards.dmi' - icon_state = "cyborg_upgrade" - var/locked = 0 - var/require_module = 0 - var/installed = 0 - -/obj/item/robot/upgrade/proc/action(mob/living/silicon/robot/R) - if(R.stat == DEAD) - to_chat(usr, SPAN_DANGER("[src] will not function on a deceased robot.")) - return 1 - return 0 - - -/obj/item/robot/upgrade/reset - name = "robotic module reset board" - desc = "Used to reset a cyborg's module. Destroys any other upgrades applied to the robot." - icon_state = "cyborg_upgrade1" - require_module = 1 - -/obj/item/robot/upgrade/reset/action(mob/living/silicon/robot/R) - if(..()) return 0 - R.uneq_all() - R.hands.icon_state = "nomod" - R.icon_state = "robot" - QDEL_NULL(R.module) - R.camera.network.Remove(list("Engineering","Medical","MINE")) - R.updatename("Default") - R.status_flags |= CANPUSH - R.update_icons() - - return 1 - -/obj/item/robot/upgrade/rename - name = "robot reclassification board" - desc = "Used to rename a cyborg." - icon_state = "cyborg_upgrade1" - var/heldname = "default name" - -/obj/item/robot/upgrade/rename/attack_self(mob/user) - ..() - heldname = stripped_input(user, "Enter new robot name", "Robot Reclassification", heldname, MAX_NAME_LEN) - -/obj/item/robot/upgrade/rename/action(mob/living/silicon/robot/R) - if(..()) return 0 - R.custom_name = heldname - R.change_real_name(R, heldname) - - return 1 - -/obj/item/robot/upgrade/restart - name = "robot emergency restart module" - desc = "Used to force a restart of a disabled-but-repaired robot, bringing it back online." - icon_state = "cyborg_upgrade1" - - -/obj/item/robot/upgrade/restart/action(mob/living/silicon/robot/R) - if(R.health < 0) - to_chat(usr, "You have to repair the robot before using this module!") - return 0 - - if(!R.key) - for(var/mob/dead/observer/ghost in GLOB.observer_list) - if(ghost.mind && ghost.mind.original == R) - R.key = ghost.key - if(R.client) R.client.change_view(GLOB.world_view_size) - break - - R.set_stat(CONSCIOUS) - return 1 - - -/obj/item/robot/upgrade/vtec - name = "robotic VTEC Module" - desc = "Used to kick in a robot's VTEC systems, increasing their speed." - icon_state = "cyborg_upgrade2" - require_module = 1 - -/obj/item/robot/upgrade/vtec/action(mob/living/silicon/robot/R) - if(..()) return 0 - - if(R.speed == -1) - return 0 - - R.speed-- - return 1 - - -/obj/item/robot/upgrade/tasercooler - name = "robotic Rapid Taser Cooling Module" - desc = "Used to cool a mounted taser, increasing the potential current in it and thus its recharge rate." - icon_state = "cyborg_upgrade3" - require_module = 1 - - -/obj/item/robot/upgrade/tasercooler/action(mob/living/silicon/robot/R) - if(..()) return 0 -/* - - if(!istype(R.module, /obj/item/circuitboard/robot_module/security)) - to_chat(R, "Upgrade mounting error! No suitable hardpoint detected!") - to_chat(usr, "There's no mounting point for the module!") - return 0 - - var/obj/item/weapon/gun/energy/taser/cyborg/T = locate() in R.module - if(!T) - T = locate() in R.module.contents - if(!T) - T = locate() in R.module.modules - if(!T) - to_chat(usr, "This robot has had its taser removed!") - return 0 - - if(T.recharge_time <= 2) - to_chat(R, "Maximum cooling achieved for this hardpoint!") - to_chat(usr, "There's no room for another cooling unit!") - return 0 - - else - T.recharge_time = max(2 , T.recharge_time - 4) -*/ - return 1 - -/obj/item/robot/upgrade/jetpack - name = "mining robot jetpack" - desc = "A carbon dioxide jetpack suitable for low-gravity mining operations." - icon_state = "cyborg_upgrade3" - require_module = 1 - -/obj/item/robot/upgrade/jetpack/action(mob/living/silicon/robot/R) - if(..()) return 0 - - R.module.modules += new/obj/item/tank/jetpack/carbondioxide - for(var/obj/item/tank/jetpack/carbondioxide in R.module.modules) - R.internal = src - //R.icon_state="Miner+j" - return 1 - - -/obj/item/robot/upgrade/syndicate - name = "illegal equipment module" - desc = "Unlocks the hidden, deadlier functions of a robot" - icon_state = "cyborg_upgrade3" - require_module = 1 diff --git a/code/game/objects/items/shards.dm b/code/game/objects/items/shards.dm index 84c3d5b83427..dab573e6f5a5 100644 --- a/code/game/objects/items/shards.dm +++ b/code/game/objects/items/shards.dm @@ -81,7 +81,7 @@ /obj/item/large_shrapnel/proc/on_embedded_movement(mob/living/embedded_mob) return -/obj/item/large_shrapnel/proc/on_embed(mob/embedded_mob, obj/limb/target_organ) +/obj/item/large_shrapnel/proc/on_embed(mob/embedded_mob, obj/limb/target_organ, silent = FALSE) return /obj/item/large_shrapnel/at_rocket_dud @@ -180,14 +180,14 @@ cell_explosion(get_turf(target), 200, 150, EXPLOSION_FALLOFF_SHAPE_LINEAR, direction, create_cause_data("[cause] UXO detonation", user)) qdel(src) -/obj/item/large_shrapnel/at_rocket_dud/on_embed(mob/embedded_mob, obj/limb/target_organ) +/obj/item/large_shrapnel/at_rocket_dud/on_embed(mob/embedded_mob, obj/limb/target_organ, silent = FALSE) if(!ishuman(embedded_mob)) return var/mob/living/carbon/human/H = embedded_mob if(H.species.flags & NO_SHRAPNEL) return if(istype(target_organ)) - target_organ.embed(src) + target_organ.embed(src, silent) /obj/item/large_shrapnel/at_rocket_dud/on_embedded_movement(mob/living/embedded_mob) if(!ishuman(embedded_mob)) @@ -212,14 +212,14 @@ source_sheet_type = null var/damage_on_move = 0.5 -/obj/item/shard/shrapnel/proc/on_embed(mob/embedded_mob, obj/limb/target_organ) +/obj/item/shard/shrapnel/proc/on_embed(mob/embedded_mob, obj/limb/target_organ, silent = FALSE) if(!ishuman(embedded_mob)) return var/mob/living/carbon/human/H = embedded_mob if(H.species.flags & NO_SHRAPNEL) return if(istype(target_organ)) - target_organ.embed(src) + target_organ.embed(src, silent) /obj/item/shard/shrapnel/proc/on_embedded_movement(mob/living/embedded_mob) if(!ishuman(embedded_mob)) @@ -228,7 +228,7 @@ if(H.species.flags & NO_SHRAPNEL) return var/obj/limb/organ = embedded_organ - if(istype(organ)) + if(istype(organ) && damage_on_move) organ.take_damage(damage_on_move * count, 0, 0, no_limb_loss = TRUE) embedded_mob.pain.apply_pain(damage_on_move * count) @@ -261,3 +261,7 @@ name = "alien bone fragments" icon_state = "alienbonechips" desc = "Sharp, jagged fragments of alien bone. Looks like the previous owner exploded violently..." + +/obj/item/shard/shrapnel/tutorial + damage_on_move = 0 + diff --git a/code/game/objects/items/stacks/cable_coil.dm b/code/game/objects/items/stacks/cable_coil.dm index e846979c00b4..1dd95464ddd5 100644 --- a/code/game/objects/items/stacks/cable_coil.dm +++ b/code/game/objects/items/stacks/cable_coil.dm @@ -33,7 +33,7 @@ /obj/item/stack/cable_coil/proc/updateicon() if (!color) - color = pick(COLOR_RED, COLOR_BLUE, COLOR_GREEN, COLOR_ORANGE, COLOR_WHITE, COLOR_PINK, COLOR_YELLOW, COLOR_CYAN) + color = pick(COLOR_RED, COLOR_BLUE, COLOR_GREEN, COLOR_ORANGE, COLOR_WHITE, COLOR_MAGENTA, COLOR_YELLOW, COLOR_CYAN) if(amount == 1) icon_state = "coil1" name = "cable piece" @@ -70,7 +70,7 @@ if(src.amount <= 14) to_chat(usr, SPAN_WARNING("You need at least 15 lengths to make restraints!")) return - var/obj/item/handcuffs/cable/B = new /obj/item/handcuffs/cable(usr.loc) + var/obj/item/restraint/adjustable/cable/B = new /obj/item/restraint/adjustable/cable(usr.loc) B.color = color to_chat(usr, SPAN_NOTICE("You wind some cable together to make some restraints.")) src.use(15) @@ -298,11 +298,11 @@ color = "#a8c1dd" /obj/item/stack/cable_coil/white - color = "#FFFFFF" + color = COLOR_WHITE /obj/item/stack/cable_coil/random/Initialize() . = ..() - color = pick(COLOR_RED, COLOR_BLUE, COLOR_GREEN, COLOR_WHITE, COLOR_PINK, COLOR_YELLOW, COLOR_CYAN) + color = pick(COLOR_RED, COLOR_BLUE, COLOR_GREEN, COLOR_WHITE, COLOR_MAGENTA, COLOR_YELLOW, COLOR_CYAN) /obj/item/stack/cable_coil/attack(mob/M as mob, mob/user as mob) if(ishuman(M)) diff --git a/code/game/objects/items/stacks/flags.dm b/code/game/objects/items/stacks/flags.dm index bc55096211d4..484d2779f5f8 100644 --- a/code/game/objects/items/stacks/flags.dm +++ b/code/game/objects/items/stacks/flags.dm @@ -71,7 +71,7 @@ var/obj/item/stack/flag/newflag = new src.type(T) newflag.amount = 1 newflag.upright = TRUE - anchored = TRUE + newflag.anchored = TRUE newflag.name = newflag.singular_name newflag.icon_state = "[newflag.base_state]_open" newflag.visible_message("[user] plants [newflag] firmly in the ground.") diff --git a/code/game/objects/items/stacks/medical.dm b/code/game/objects/items/stacks/medical.dm index f96903cfb687..c4a496a12366 100644 --- a/code/game/objects/items/stacks/medical.dm +++ b/code/game/objects/items/stacks/medical.dm @@ -21,7 +21,7 @@ to_chat(user, SPAN_DANGER("\The [src] cannot be applied to [M]!")) return 1 - if(!ishuman(user) && !isrobot(user)) + if(!ishuman(user)) to_chat(user, SPAN_WARNING("You don't have the dexterity to do this!")) return 1 @@ -95,6 +95,9 @@ to_chat(user, SPAN_WARNING("There are no wounds on [possessive] [affecting.display_name].")) return TRUE +/obj/item/stack/medical/bruise_pack/two + amount = 2 + /obj/item/stack/medical/ointment name = "ointment" desc = "Used to treat burns, infected wounds, and relieve itching in unusual places." diff --git a/code/game/objects/items/stacks/nanopaste.dm b/code/game/objects/items/stacks/nanopaste.dm index 754a36c6012a..156fbf548f5f 100644 --- a/code/game/objects/items/stacks/nanopaste.dm +++ b/code/game/objects/items/stacks/nanopaste.dm @@ -15,17 +15,6 @@ /obj/item/stack/nanopaste/attack(mob/living/M as mob, mob/user as mob) if (!istype(M) || !istype(user)) return 0 - if (isrobot(M)) //Repairing cyborgs - var/mob/living/silicon/robot/R = M - if (R.getBruteLoss() || R.getFireLoss() ) - R.apply_damage(-15, BRUTE) - R.apply_damage(-15, BURN) - R.updatehealth() - use(1) - user.visible_message(SPAN_NOTICE("\The [user] applied some [src] at [R]'s damaged areas."),\ - SPAN_NOTICE("You apply some [src] at [R]'s damaged areas.")) - else - to_chat(user, SPAN_NOTICE("All [R]'s systems are nominal.")) if (istype(M,/mob/living/carbon/human)) //Repairing robolimbs var/mob/living/carbon/human/H = M diff --git a/code/game/objects/items/stacks/rods.dm b/code/game/objects/items/stacks/rods.dm index 18578295b02b..bef6d1d168de 100644 --- a/code/game/objects/items/stacks/rods.dm +++ b/code/game/objects/items/stacks/rods.dm @@ -4,7 +4,7 @@ singular_name = "metal rod" icon_state = "rods" flags_atom = FPRINT|CONDUCT - w_class = SIZE_MEDIUM + w_class = SIZE_SMALL force = 9 throwforce = 15 throw_speed = SPEED_VERY_FAST @@ -54,13 +54,7 @@ GLOBAL_LIST_INIT(rod_recipes, list ( singular_name = "plasteel rod" icon_state = "rods_plasteel" flags_atom = FPRINT - w_class = SIZE_MEDIUM - force = 9 - throwforce = 15 - throw_speed = SPEED_VERY_FAST - throw_range = 20 matter = list("plasteel" = 3750) - max_amount = 60 attack_verb = list("hit", "bludgeoned", "whacked") stack_id = "plasteel rod" sheet_path = /obj/item/stack/sheet/plasteel diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm index a0814290ca40..f579917fed49 100644 --- a/code/game/objects/items/stacks/sheets/sheet_types.dm +++ b/code/game/objects/items/stacks/sheets/sheet_types.dm @@ -27,6 +27,7 @@ GLOBAL_LIST_INIT_TYPED(metal_recipes, /datum/stack_recipe, list ( \ new/datum/stack_recipe("wall girder", /obj/structure/girder, 2, time = 50, one_per_turf = ONE_TYPE_PER_TURF, on_floor = 1, skill_req = SKILL_CONSTRUCTION, skill_lvl = SKILL_CONSTRUCTION_ENGI), \ new/datum/stack_recipe("window frame", /obj/structure/window_frame/almayer, 5, time = 50, one_per_turf = ONE_TYPE_PER_TURF, on_floor = 1, skill_req = SKILL_CONSTRUCTION, skill_lvl = SKILL_CONSTRUCTION_ENGI), \ new/datum/stack_recipe("airlock assembly", /obj/structure/airlock_assembly, 5, time = 50, one_per_turf = ONE_TYPE_PER_TURF, on_floor = 1, skill_req = SKILL_CONSTRUCTION, skill_lvl = SKILL_CONSTRUCTION_ENGI), \ + new/datum/stack_recipe("large airlock assembly", /obj/structure/airlock_assembly/multi_tile, 5, time = 50, one_per_turf = ONE_TYPE_PER_TURF, on_floor = 1, skill_req = SKILL_CONSTRUCTION, skill_lvl = SKILL_CONSTRUCTION_ENGI), \ null, \ new/datum/stack_recipe("bed", /obj/structure/bed, 2, one_per_turf = ONE_TYPE_PER_TURF, on_floor = 1), \ new/datum/stack_recipe("chair", /obj/structure/bed/chair, one_per_turf = ONE_TYPE_PER_TURF, on_floor = 1), \ @@ -106,7 +107,7 @@ GLOBAL_LIST_INIT_TYPED(plasteel_recipes, /datum/stack_recipe, list ( \ /obj/item/stack/sheet/plasteel name = "plasteel sheet" singular_name = "plasteel sheet" - desc = "These sheets are an alloy of iron and phoron." + desc = "Plasteel is an expensive, durable material made from combining platinum, steel, and advanced polymers to create a metal that is corrosion-resistant, highly durable, and lightweight. The only reason this isn't used more often is because of how damn costly it is." icon_state = "sheet-plasteel" item_state = "sheet-plasteel" matter = list("metal" = 3750) @@ -258,6 +259,8 @@ GLOBAL_LIST_INIT_TYPED(cardboard_recipes, /datum/stack_recipe, list ( \ new/datum/stack_recipe("empty magazine box (M41A Incen)", /obj/item/ammo_box/magazine/incen/empty), \ new/datum/stack_recipe("empty magazine box (M41A LE)", /obj/item/ammo_box/magazine/le/empty), \ null, \ + new/datum/stack_recipe("empty magazine box (XM51)", /obj/item/ammo_box/magazine/xm51/empty), \ + null, \ new/datum/stack_recipe("empty magazine box (M41A MK1)", /obj/item/ammo_box/magazine/mk1/empty), \ new/datum/stack_recipe("empty magazine box (M41A MK1 AP)", /obj/item/ammo_box/magazine/mk1/ap/empty), \ null, \ @@ -280,6 +283,7 @@ GLOBAL_LIST_INIT_TYPED(cardboard_recipes, /datum/stack_recipe, list ( \ new/datum/stack_recipe("empty shotgun shell box (Incendiary)", /obj/item/ammo_box/magazine/shotgun/incendiary/empty), \ new/datum/stack_recipe("empty shotgun shell box (Incendiary Buckshot)", /obj/item/ammo_box/magazine/shotgun/incendiarybuck/empty), \ new/datum/stack_recipe("empty shotgun shell box (Slugs)", /obj/item/ammo_box/magazine/shotgun/empty), \ + new/datum/stack_recipe("empty shotgun shell box (16g) (Breaching)", /obj/item/ammo_box/magazine/shotgun/light/breaching/empty), \ null, \ new/datum/stack_recipe("empty 45-70 bullets box", /obj/item/ammo_box/magazine/lever_action/empty), \ new/datum/stack_recipe("empty 45-70 bullets box (Blanks)", /obj/item/ammo_box/magazine/lever_action/training/empty), \ @@ -324,6 +328,34 @@ GLOBAL_LIST_INIT_TYPED(cardboard_recipes, /datum/stack_recipe, list ( \ null, \ new/datum/stack_recipe("empty magazine box (MP5)", /obj/item/ammo_box/magazine/mp5/empty), \ null, \ + new/datum/stack_recipe("empty magazine box (MAR30)", /obj/item/ammo_box/magazine/mar30/empty), \ + new/datum/stack_recipe("empty magazine box (MAR30 EX)", /obj/item/ammo_box/magazine/mar30/ext/empty), \ + new/datum/stack_recipe("empty magazine box (MAR50)", /obj/item/ammo_box/magazine/mar50/empty), \ + null, \ + new/datum/stack_recipe("empty magazine box (UZI)", /obj/item/ammo_box/magazine/uzi/empty), \ + null, \ + new/datum/stack_recipe("empty magazine box (MAC-15)", /obj/item/ammo_box/magazine/mac15/empty), \ + null, \ + new/datum/stack_recipe("empty magazine box (MP27)", /obj/item/ammo_box/magazine/mp27/empty), \ + null, \ + new/datum/stack_recipe("empty magazine box (M1911)", /obj/item/ammo_box/magazine/m1911/empty), \ + null, \ + new/datum/stack_recipe("empty magazine box (MK-45)", /obj/item/ammo_box/magazine/mk45/empty), \ + null, \ + new/datum/stack_recipe("empty magazine box (KT-42)", /obj/item/ammo_box/magazine/kt42/empty), \ + null, \ + new/datum/stack_recipe("empty magazine box (Beretta 92FS)", /obj/item/ammo_box/magazine/b92fs/empty), \ + null, \ + new/datum/stack_recipe("empty magazine box (FN FP9000)", /obj/item/ammo_box/magazine/fp9000/empty), \ + null, \ + new/datum/stack_recipe("empty magazine box (Type19)", /obj/item/ammo_box/magazine/type19/empty), \ + null, \ + new/datum/stack_recipe("empty magazine box (ZhNK-72)", /obj/item/ammo_box/magazine/zhnk/empty), \ + null, \ + new/datum/stack_recipe("empty magazine box (Type64 Bizon)", /obj/item/ammo_box/magazine/type64/empty), \ + null, \ + new/datum/stack_recipe("empty magazine box (S&W .38)", /obj/item/ammo_box/magazine/snw/empty), \ + null, \ new/datum/stack_recipe("empty magazine box (NSG 23)", /obj/item/ammo_box/magazine/nsg23/empty), \ new/datum/stack_recipe("empty magazine box (NSG 23 AP)", /obj/item/ammo_box/magazine/nsg23/ap/empty), \ new/datum/stack_recipe("empty magazine box (NSG 23 EX)", /obj/item/ammo_box/magazine/nsg23/ex/empty), \ diff --git a/code/game/objects/items/stacks/stack.dm b/code/game/objects/items/stacks/stack.dm index 82e091be9008..5f72e4a75567 100644 --- a/code/game/objects/items/stacks/stack.dm +++ b/code/game/objects/items/stacks/stack.dm @@ -15,10 +15,14 @@ var/list/datum/stack_recipe/recipes var/singular_name var/amount = 1 - var/max_amount //also see stack recipes initialisation, param "max_res_amount" must be equal to this max_amount - var/stack_id //used to determine if two stacks are of the same kind. - var/amount_sprites = FALSE //does it have sprites for extra amount, like metal, plasteel, or wood - var/display_maptext = TRUE //does it show amount on top of the icon + ///also see stack recipes initialisation, param "max_res_amount" must be equal to this max_amount + var/max_amount + ///used to determine if two stacks are of the same kind. + var/stack_id + ///does it have sprites for extra amount, like metal, plasteel, or wood + var/amount_sprites = FALSE + ///does it show amount on top of the icon + var/display_maptext = TRUE //Coords for contents display, to make it play nice with inventory borders. maptext_x = 4 maptext_y = 3 @@ -89,7 +93,7 @@ Also change the icon to reflect the amount of sheets, if possible.*/ var/datum/stack_recipe_list/srl = recipe_list[recipes_sublist] recipe_list = srl.recipes var/t1 = text("Constructions from []Amount Left: []
        ", src, src.amount) - for(var/i = 1; i <= recipe_list.len, i++) + for(var/i = 1; i <= length(recipe_list), i++) var/E = recipe_list[i] if(isnull(E)) t1 += "
        " @@ -107,7 +111,7 @@ Also change the icon to reflect the amount of sheets, if possible.*/ if(istype(E, /datum/stack_recipe)) var/datum/stack_recipe/R = E - var/max_multiplier = round(src.amount / R.req_amount) + var/max_multiplier = floor(src.amount / R.req_amount) var/title var/can_build = 1 can_build = can_build && (max_multiplier > 0) @@ -122,7 +126,7 @@ Also change the icon to reflect the amount of sheets, if possible.*/ t1 += text("[]", title) continue if(R.max_res_amount>1 && max_multiplier > 1) - max_multiplier = min(max_multiplier, round(R.max_res_amount/R.res_amount)) + max_multiplier = min(max_multiplier, floor(R.max_res_amount/R.res_amount)) t1 += " |" var/list/multipliers = list(5, 10, 25) for (var/n in multipliers) @@ -144,7 +148,9 @@ Also change the icon to reflect the amount of sheets, if possible.*/ list_recipes(usr, text2num(href_list["sublist"])) if(href_list["make"]) - if(amount < 1) qdel(src) //Never should happen + if(amount < 1) + qdel(src) //Never should happen + return var/list/recipes_list = recipes if(href_list["sublist"]) @@ -152,9 +158,13 @@ Also change the icon to reflect the amount of sheets, if possible.*/ recipes_list = srl.recipes var/datum/stack_recipe/R = recipes_list[text2num(href_list["make"])] var/multiplier = text2num(href_list["multiplier"]) - if(!isnum(multiplier)) + if(multiplier != multiplier) // isnan + message_admins("[key_name_admin(usr)] has attempted to multiply [src] with NaN") + return + if(!isnum(multiplier)) // this used to block nan... + message_admins("[key_name_admin(usr)] has attempted to multiply [src] with !isnum") return - multiplier = round(multiplier) + multiplier = floor(multiplier) if(multiplier < 1) return //href exploit protection if(R.skill_lvl) @@ -277,11 +287,15 @@ Also change the icon to reflect the amount of sheets, if possible.*/ if(used > amount) //If it's larger than what we have, no go. return FALSE amount -= used - update_icon() if(amount <= 0) - if(usr && loc == usr) - usr.temp_drop_inv_item(src) + if(loc == usr) + usr?.temp_drop_inv_item(src) + else if(isstorage(loc)) + var/obj/item/storage/storage = loc + storage.remove_from_storage(src) qdel(src) + else + update_icon() return TRUE /obj/item/stack/proc/add(extra) @@ -320,48 +334,48 @@ Also change the icon to reflect the amount of sheets, if possible.*/ return if(!use(desired)) return - var/obj/item/stack/newstack = new src.type(user, desired) + var/obj/item/stack/newstack = new type(user, desired) transfer_fingerprints_to(newstack) user.put_in_hands(newstack) - src.add_fingerprint(user) + add_fingerprint(user) newstack.add_fingerprint(user) - if(src && usr.interactee==src) - INVOKE_ASYNC(src, TYPE_PROC_REF(/obj/item/stack, interact), usr) + if(!QDELETED(src) && user.interactee == src) + INVOKE_ASYNC(src, TYPE_PROC_REF(/obj/item/stack, interact), user) return TRUE - else - return ..() + + return ..() /obj/item/stack/attack_hand(mob/user as mob) - if (user.get_inactive_hand() == src) - var/obj/item/stack/F = new src.type(user, 1) - transfer_fingerprints_to(F) - user.put_in_hands(F) - src.add_fingerprint(user) - F.add_fingerprint(user) + if(user.get_inactive_hand() == src) + var/obj/item/stack/new_stack = new type(user, 1) + transfer_fingerprints_to(new_stack) + user.put_in_hands(new_stack) + add_fingerprint(user) + new_stack.add_fingerprint(user) use(1) - if (src && usr.interactee==src) - INVOKE_ASYNC(src, TYPE_PROC_REF(/obj/item/stack, interact), usr) - else - ..() - return + if(!QDELETED(src) && user.interactee == src) + INVOKE_ASYNC(src, TYPE_PROC_REF(/obj/item/stack, interact), user) + return + + return ..() /obj/item/stack/attackby(obj/item/W as obj, mob/user as mob) if(istype(W, /obj/item/stack)) - var/obj/item/stack/S = W - if(S.stack_id == stack_id) //same stack type - if(S.amount >= max_amount) + var/obj/item/stack/other_stack = W + if(other_stack.stack_id == stack_id) //same stack type + if(other_stack.amount >= max_amount) to_chat(user, SPAN_WARNING("The stack is full!")) return TRUE - var/to_transfer = min(src.amount, S.max_amount-S.amount) + var/to_transfer = min(amount, other_stack.max_amount - other_stack.amount) if(to_transfer <= 0) return to_chat(user, SPAN_INFO("You transfer [to_transfer] between the stacks.")) - S.add(to_transfer) - if (S && usr.interactee==S) - INVOKE_ASYNC(S, TYPE_PROC_REF(/obj/item/stack, interact), usr) - src.use(to_transfer) - if (src && usr.interactee==src) - INVOKE_ASYNC(src, TYPE_PROC_REF(/obj/item/stack, interact), usr) + other_stack.add(to_transfer) + if(other_stack && user.interactee == other_stack) + INVOKE_ASYNC(other_stack, TYPE_PROC_REF(/obj/item/stack, interact), user) + use(to_transfer) + if(!QDELETED(src) && user.interactee == src) + INVOKE_ASYNC(src, TYPE_PROC_REF(/obj/item/stack, interact), user) user.next_move = world.time + 0.3 SECONDS return TRUE diff --git a/code/game/objects/items/storage/backpack.dm b/code/game/objects/items/storage/backpack.dm index 412dcf164cd4..baa91db19396 100644 --- a/code/game/objects/items/storage/backpack.dm +++ b/code/game/objects/items/storage/backpack.dm @@ -125,6 +125,9 @@ ..() /obj/item/storage/backpack/proc/is_accessible_by(mob/user) + // If the user is already looking inside this backpack. + if(user.s_active == src) + return TRUE if(ishuman(user)) var/mob/living/carbon/human/H = user if(!worn_accessible) @@ -151,7 +154,7 @@ //Returns true if the user's id matches the lock's /obj/item/storage/backpack/proc/compare_id(mob/living/carbon/human/H) - var/obj/item/card/id/card = H.wear_id + var/obj/item/card/id/card = H.get_idcard() if(!card || locking_id.registered_name != card.registered_name) return FALSE else return TRUE @@ -348,6 +351,12 @@ /obj/item/storage/backpack/satchel/lockable/liaison lock_overridable = FALSE +/obj/item/storage/backpack/satchel/blue + icon_state = "satchel_blue" + +/obj/item/storage/backpack/satchel/black + icon_state = "satchel_black" + /obj/item/storage/backpack/satchel/norm name = "satchel" desc = "A trendy-looking satchel." @@ -461,6 +470,12 @@ icon_state = "marinebigsatch" max_storage_space = 20 +/obj/item/storage/backpack/marine/satchel/intel/chestrig + name = "\improper USCM expedition chestrig" + desc = "A heavy-duty IMP based chestrig, can quickly be accessed with only one hand. Usually issued to USCM intelligence officers." + icon_state = "intel_chestrig" + max_storage_space = 20 + /obj/item/storage/backpack/marine/satchel name = "\improper USCM satchel" desc = "A heavy-duty satchel carried by some USCM soldiers and support personnel." @@ -488,6 +503,12 @@ desc = "A heavy-duty chestrig used by some USCM technicians." icon_state = "marinesatch_techi" +/obj/item/storage/backpack/marine/satchel/chestrig + name = "\improper USCM chestrig" + desc = "A chestrig used by some USCM personnel." + icon_state = "chestrig" + has_gamemode_skin = FALSE + GLOBAL_LIST_EMPTY_TYPED(radio_packs, /obj/item/storage/backpack/marine/satchel/rto) /obj/item/storage/backpack/marine/satchel/rto @@ -708,6 +729,8 @@ GLOBAL_LIST_EMPTY_TYPED(radio_packs, /obj/item/storage/backpack/marine/satchel/r name = "\improper M68 Thermal Cloak" desc = "The lightweight thermal dampeners and optical camouflage provided by this cloak are weaker than those found in standard USCM ghillie suits. In exchange, the cloak can be worn over combat armor and offers the wearer high maneuverability and adaptability to many environments." icon_state = "scout_cloak" + unacidable = TRUE + indestructible = TRUE uniform_restricted = list(/obj/item/clothing/suit/storage/marine/M3S) //Need to wear Scout armor and helmet to equip this. has_gamemode_skin = FALSE //same sprite for all gamemode. var/camo_active = FALSE diff --git a/code/game/objects/items/storage/bags.dm b/code/game/objects/items/storage/bags.dm index 542b947134e8..19e012ff1c14 100644 --- a/code/game/objects/items/storage/bags.dm +++ b/code/game/objects/items/storage/bags.dm @@ -46,9 +46,9 @@ if(!sum_storage_cost) icon_state = "trashbag0" - else if(sum_storage_cost < round(max_storage_space * 0.35)) + else if(sum_storage_cost < floor(max_storage_space * 0.35)) icon_state = "trashbag1" - else if(sum_storage_cost < round(max_storage_space * 0.7)) + else if(sum_storage_cost < floor(max_storage_space * 0.7)) icon_state = "trashbag2" else icon_state = "trashbag3" @@ -203,7 +203,7 @@ 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. + row_num = floor((adjusted_contents-1) / 7) // 7 is the maximum allowed width. slot_orient_objs(row_num, col_count, numbered_contents) return diff --git a/code/game/objects/items/storage/belt.dm b/code/game/objects/items/storage/belt.dm index 40953eb97395..d16602e04aaa 100644 --- a/code/game/objects/items/storage/belt.dm +++ b/code/game/objects/items/storage/belt.dm @@ -145,7 +145,7 @@ /obj/item/storage/belt/medical name = "\improper M276 pattern medical storage rig" - desc = "The M276 is the standard load-bearing equipment of the USCM. It consists of a modular belt with various clips. This version is a less common configuration, designed to transport medical supplies and pistol ammunition. \nRight click its sprite and click \"toggle belt mode\" to take pills out of bottles by simply clicking them." + desc = "The M276 is the standard load-bearing equipment of the USCM. It consists of a modular belt with various clips. This version is a less common configuration, designed to transport bulkier medical supplies. \nRight click its sprite and click \"toggle belt mode\" to take pills out of bottles by simply clicking them." icon_state = "medicalbelt" item_state = "medical" storage_slots = 14 @@ -319,6 +319,29 @@ new /obj/item/storage/pill_bottle/inaprovaline(src) new /obj/item/storage/pill_bottle/tramadol(src) +/obj/item/storage/belt/medical/lifesaver/upp/synth/fill_preset_inventory() + new /obj/item/storage/pill_bottle/bicaridine(src) + new /obj/item/storage/pill_bottle/bicaridine(src) + new /obj/item/storage/pill_bottle/kelotane(src) + new /obj/item/storage/pill_bottle/kelotane(src) + new /obj/item/storage/pill_bottle/tramadol(src) + new /obj/item/storage/pill_bottle/tramadol(src) + new /obj/item/storage/pill_bottle/antitox(src) + new /obj/item/storage/pill_bottle/alkysine(src) + new /obj/item/storage/pill_bottle/imidazoline(src) + new /obj/item/stack/medical/advanced/bruise_pack(src) + new /obj/item/stack/medical/advanced/bruise_pack(src) + new /obj/item/stack/medical/advanced/bruise_pack(src) + new /obj/item/stack/medical/advanced/ointment(src) + new /obj/item/stack/medical/advanced/ointment(src) + new /obj/item/stack/medical/advanced/ointment(src) + new /obj/item/stack/medical/splint(src) + new /obj/item/stack/medical/splint(src) + new /obj/item/stack/medical/splint(src) + new /obj/item/reagent_container/hypospray/autoinjector/dexalinp(src) + new /obj/item/reagent_container/hypospray/autoinjector/oxycodone(src) + new /obj/item/device/healthanalyzer(src) + /obj/item/storage/belt/security name = "\improper M276 pattern security rig" desc = "The M276 is the standard load-bearing equipment of the USCM. It consists of a modular belt with various clips. This configuration is commonly seen among USCM Military Police and peacekeepers, though it can hold some light munitions." @@ -334,7 +357,7 @@ /obj/item/explosive/grenade/flashbang, /obj/item/explosive/grenade/custom/teargas, /obj/item/reagent_container/spray/pepper, - /obj/item/handcuffs, + /obj/item/restraint/handcuffs, /obj/item/device/flash, /obj/item/clothing/glasses, /obj/item/ammo_magazine/pistol, @@ -379,10 +402,17 @@ new /obj/item/weapon/gun/energy/taser(src) new /obj/item/device/flash(src) new /obj/item/weapon/baton(src) - new /obj/item/handcuffs(src) + new /obj/item/restraint/handcuffs(src) new /obj/item/reagent_container/spray/pepper(src) new /obj/item/device/clue_scanner(src) +/obj/item/storage/belt/security/MP/full/synth/fill_preset_inventory() + new /obj/item/explosive/grenade/flashbang(src) + new /obj/item/device/flash(src) + new /obj/item/weapon/baton(src) + new /obj/item/reagent_container/spray/pepper(src) + new /obj/item/device/clue_scanner(src) + new /obj/item/restraint/handcuffs(src) /obj/item/storage/belt/security/MP/UPP name = "\improper Type 43 military police rig" @@ -392,7 +422,7 @@ new /obj/item/weapon/gun/energy/taser(src) new /obj/item/device/flash(src) new /obj/item/weapon/baton(src) - new /obj/item/handcuffs(src) + new /obj/item/restraint/handcuffs(src) new /obj/item/reagent_container/spray/pepper(src) new /obj/item/ammo_magazine/revolver/upp/shrapnel(src) @@ -409,8 +439,8 @@ new /obj/item/weapon/baton(src) new /obj/item/reagent_container/spray/pepper(src) new /obj/item/device/clue_scanner(src) - new /obj/item/handcuffs(src) - new /obj/item/handcuffs(src) + new /obj/item/restraint/handcuffs(src) + new /obj/item/restraint/handcuffs(src) new /obj/item/explosive/grenade/flashbang(src) /obj/item/storage/belt/security/MP/CMB/synth/fill_preset_inventory() @@ -419,8 +449,8 @@ new /obj/item/weapon/baton(src) new /obj/item/reagent_container/spray/pepper(src) new /obj/item/device/clue_scanner(src) - new /obj/item/handcuffs(src) - new /obj/item/handcuffs(src) + new /obj/item/restraint/handcuffs(src) + new /obj/item/restraint/handcuffs(src) new /obj/item/explosive/grenade/flashbang(src) /obj/item/storage/belt/marine @@ -903,6 +933,7 @@ var/drawSound = 'sound/weapons/gun_pistol_draw.ogg' ///Used to get flap overlay states as inserting a gun changes icon state. var/base_icon + var/gun_has_gamemode_skin can_hold = list( /obj/item/weapon/gun/pistol, /obj/item/ammo_magazine/pistol, @@ -966,6 +997,14 @@ */ playsound(src, drawSound, 7, TRUE) var/image/gun_underlay = image(icon, current_gun.base_gun_icon) + if(gun_has_gamemode_skin) + switch(SSmapping.configs[GROUND_MAP].camouflage_type) + if("snow") + gun_underlay = image(icon, "s_" + current_gun.base_gun_icon) + if("desert") + gun_underlay = image(icon, "d_" + current_gun.base_gun_icon) + if("classic") + gun_underlay = image(icon, "c_" + current_gun.base_gun_icon) gun_underlay.pixel_x = holster_slots[slot]["icon_x"] gun_underlay.pixel_y = holster_slots[slot]["icon_y"] gun_underlay.color = current_gun.color @@ -1045,11 +1084,11 @@ if(ammo_dumping.flags_magazine & AMMUNITION_HANDFUL_BOX) var/handfuls = round(ammo_dumping.current_rounds / amount_to_dump, 1) //The number of handfuls, we round up because we still want the last one that isn't full if(ammo_dumping.current_rounds != 0) - if(contents.len < storage_slots - 1) //this is because it's a gunbelt and the final slot is reserved for the gun + if(length(contents) < storage_slots - 1) //this is because it's a gunbelt and the final slot is reserved for the gun to_chat(user, SPAN_NOTICE("You start refilling [src] with [ammo_dumping].")) if(!do_after(user, 1.5 SECONDS, INTERRUPT_ALL, BUSY_ICON_GENERIC)) return for(var/i = 1 to handfuls) - if(contents.len < storage_slots - 1) + if(length(contents) < storage_slots - 1) var/obj/item/ammo_magazine/handful/new_handful = new /obj/item/ammo_magazine/handful var/transferred_handfuls = min(ammo_dumping.current_rounds, amount_to_dump) new_handful.generate_handful(ammo_dumping.default_ammo, ammo_dumping.caliber, amount_to_dump, transferred_handfuls, ammo_dumping.gun_type) @@ -1170,6 +1209,22 @@ for(var/i = 1 to storage_slots - 1) new /obj/item/ammo_magazine/pistol/highpower/black(src) +/obj/item/storage/belt/gun/m4a3/nailgun + name = "customized nailgun holster" + desc = "Combination of a M276 pistol holster and engineering toolbelt that have been cannibalized into a unique belt that can holster a compact nailgun and two spare nailgun magazines." + icon_state = "nailgun_holster" + storage_slots = 3 + can_hold = list( + /obj/item/weapon/gun/smg/nailgun/compact, + /obj/item/ammo_magazine/smg/nailgun, + ) + has_gamemode_skin = FALSE + +/obj/item/storage/belt/gun/m4a3/nailgun/prefilled/fill_preset_inventory() + handle_item_insertion(new /obj/item/weapon/gun/smg/nailgun/compact()) + for(var/i = 1 to storage_slots - 1) + new /obj/item/ammo_magazine/smg/nailgun(src) + /obj/item/storage/belt/gun/m39 name = "\improper M276 pattern M39 holster rig" desc = "Special issue variant of the M276 designed to holster a M39 submachine gun and two spare magazines. Uncommonly issued to USCM support and specialist personnel." @@ -1186,6 +1241,60 @@ "icon_x" = -11, "icon_y" = -5)) +#define MAXIMUM_MAGAZINE_COUNT 2 + +/obj/item/storage/belt/gun/xm51 + name = "\improper M276 pattern XM51 holster rig" + desc = "The M276 is the standard load-bearing equipment of the USCM. It consists of a modular belt with various clips. This version is for the XM51 breaching scattergun, allowing easier storage of the weapon. It features pouches for storing two magazines along with extra shells." + icon_state = "xm51_holster" + has_gamemode_skin = TRUE + gun_has_gamemode_skin = TRUE + storage_slots = 8 + max_w_class = 5 + can_hold = list( + /obj/item/weapon/gun/rifle/xm51, + /obj/item/ammo_magazine/rifle/xm51, + /obj/item/ammo_magazine/handful, + ) + holster_slots = list( + "1" = list( + "icon_x" = 10, + "icon_y" = -1)) + + //Keep a track of how many magazines are inside the belt. + var/magazines = 0 + +/obj/item/storage/belt/gun/xm51/attackby(obj/item/item, mob/user) + if(istype(item, /obj/item/ammo_magazine/shotgun/light/breaching)) + var/obj/item/ammo_magazine/shotgun/light/breaching/ammo_box = item + dump_ammo_to(ammo_box, user, ammo_box.transfer_handful_amount) + else + return ..() + +/obj/item/storage/belt/gun/xm51/can_be_inserted(obj/item/item, mob/user, stop_messages = FALSE) + . = ..() + if(magazines >= MAXIMUM_MAGAZINE_COUNT && istype(item, /obj/item/ammo_magazine/rifle/xm51)) + if(!stop_messages) + to_chat(usr, SPAN_WARNING("[src] can't hold any more magazines.")) + return FALSE + +/obj/item/storage/belt/gun/xm51/handle_item_insertion(obj/item/item, prevent_warning = FALSE, mob/user) + . = ..() + if(istype(item, /obj/item/ammo_magazine/rifle/xm51)) + magazines++ + +/obj/item/storage/belt/gun/xm51/remove_from_storage(obj/item/item as obj, atom/new_location) + . = ..() + if(istype(item, /obj/item/ammo_magazine/rifle/xm51)) + magazines-- + +//If a magazine disintegrates due to acid or something else while in the belt, remove it from the count. +/obj/item/storage/belt/gun/xm51/on_stored_atom_del(atom/movable/item) + if(istype(item, /obj/item/ammo_magazine/rifle/xm51)) + magazines-- + +#undef MAXIMUM_MAGAZINE_COUNT + /obj/item/storage/belt/gun/m44 name = "\improper M276 pattern M44 holster rig" desc = "The M276 is the standard load-bearing equipment of the USCM. It consists of a modular belt with various clips. This version is for the M44 magnum revolver, along with six small pouches for speedloaders. It smells faintly of hay." @@ -1274,7 +1383,7 @@ set name = "Detach revolver holster" set src in usr if(ishuman(usr)) - if(contents.len) + if(length(contents)) to_chat(usr, SPAN_WARNING("The belt needs to be fully empty to remove the holster!")) return to_chat(usr, SPAN_NOTICE("You detach the holster from the belt.")) diff --git a/code/game/objects/items/storage/boxes.dm b/code/game/objects/items/storage/boxes.dm index 8e4ffb90d2bd..ab221b89bfe2 100644 --- a/code/game/objects/items/storage/boxes.dm +++ b/code/game/objects/items/storage/boxes.dm @@ -345,14 +345,28 @@ icon_state = "handcuff" /obj/item/storage/box/handcuffs/fill_preset_inventory() - new /obj/item/handcuffs(src) - new /obj/item/handcuffs(src) - new /obj/item/handcuffs(src) - new /obj/item/handcuffs(src) - new /obj/item/handcuffs(src) - new /obj/item/handcuffs(src) - new /obj/item/handcuffs(src) + new /obj/item/restraint/handcuffs(src) + new /obj/item/restraint/handcuffs(src) + new /obj/item/restraint/handcuffs(src) + new /obj/item/restraint/handcuffs(src) + new /obj/item/restraint/handcuffs(src) + new /obj/item/restraint/handcuffs(src) + new /obj/item/restraint/handcuffs(src) + + +/obj/item/storage/box/legcuffs + name = "box of legcuffs" + desc = "A box full of legcuffs." + icon_state = "handcuff" +/obj/item/storage/box/legcuffs/fill_preset_inventory() + new /obj/item/restraint/legcuffs(src) + new /obj/item/restraint/legcuffs(src) + new /obj/item/restraint/legcuffs(src) + new /obj/item/restraint/legcuffs(src) + new /obj/item/restraint/legcuffs(src) + new /obj/item/restraint/legcuffs(src) + new /obj/item/restraint/legcuffs(src) /obj/item/storage/box/zipcuffs name = "box of zip cuffs" @@ -360,20 +374,20 @@ icon_state = "handcuff" /obj/item/storage/box/zipcuffs/fill_preset_inventory() - new /obj/item/handcuffs/zip(src) - new /obj/item/handcuffs/zip(src) - new /obj/item/handcuffs/zip(src) - new /obj/item/handcuffs/zip(src) - new /obj/item/handcuffs/zip(src) - new /obj/item/handcuffs/zip(src) - new /obj/item/handcuffs/zip(src) - new /obj/item/handcuffs/zip(src) - new /obj/item/handcuffs/zip(src) - new /obj/item/handcuffs/zip(src) - new /obj/item/handcuffs/zip(src) - new /obj/item/handcuffs/zip(src) - new /obj/item/handcuffs/zip(src) - new /obj/item/handcuffs/zip(src) + new /obj/item/restraint/handcuffs/zip(src) + new /obj/item/restraint/handcuffs/zip(src) + new /obj/item/restraint/handcuffs/zip(src) + new /obj/item/restraint/handcuffs/zip(src) + new /obj/item/restraint/handcuffs/zip(src) + new /obj/item/restraint/handcuffs/zip(src) + new /obj/item/restraint/handcuffs/zip(src) + new /obj/item/restraint/handcuffs/zip(src) + new /obj/item/restraint/handcuffs/zip(src) + new /obj/item/restraint/handcuffs/zip(src) + new /obj/item/restraint/handcuffs/zip(src) + new /obj/item/restraint/handcuffs/zip(src) + new /obj/item/restraint/handcuffs/zip(src) + new /obj/item/restraint/handcuffs/zip(src) /obj/item/storage/box/zipcuffs/small name = "small box of zip cuffs" @@ -381,13 +395,13 @@ w_class = SIZE_MEDIUM /obj/item/storage/box/zipcuffs/fill_preset_inventory() - new /obj/item/handcuffs/zip(src) - new /obj/item/handcuffs/zip(src) - new /obj/item/handcuffs/zip(src) - new /obj/item/handcuffs/zip(src) - new /obj/item/handcuffs/zip(src) - new /obj/item/handcuffs/zip(src) - new /obj/item/handcuffs/zip(src) + new /obj/item/restraint/handcuffs/zip(src) + new /obj/item/restraint/handcuffs/zip(src) + new /obj/item/restraint/handcuffs/zip(src) + new /obj/item/restraint/handcuffs/zip(src) + new /obj/item/restraint/handcuffs/zip(src) + new /obj/item/restraint/handcuffs/zip(src) + new /obj/item/restraint/handcuffs/zip(src) /obj/item/storage/box/tapes name = "box of regulation tapes" @@ -560,7 +574,7 @@ new /obj/item/device/flashlight/flare(src) /obj/item/storage/box/m94/update_icon() - if(!contents.len) + if(!length(contents)) icon_state = "m94_e" else icon_state = "m94" @@ -576,7 +590,7 @@ new /obj/item/device/flashlight/flare/signal(src) /obj/item/storage/box/m94/signal/update_icon() - if(!contents.len) + if(!length(contents)) icon_state = "m89_e" else icon_state = "m89" @@ -594,6 +608,24 @@ var/grenade_type = /obj/item/explosive/grenade/high_explosive has_gamemode_skin = TRUE +/obj/item/storage/box/nade_box/Initialize() + . = ..() + RegisterSignal(src, COMSIG_ITEM_DROPPED, PROC_REF(try_forced_folding)) + +/obj/item/storage/box/nade_box/proc/try_forced_folding(datum/source, mob/user) + SIGNAL_HANDLER + + if(!isturf(loc)) + return + + if(length(contents)) + return + + UnregisterSignal(src, COMSIG_ITEM_DROPPED) + storage_close(user) + to_chat(user, SPAN_NOTICE("You throw away [src].")) + qdel(src) + /obj/item/storage/box/nade_box/post_skin_selection() base_icon = icon_state @@ -602,9 +634,8 @@ new grenade_type(src) /obj/item/storage/box/nade_box/update_icon() - if(!contents.len) + if(!length(contents)) icon_state = "[base_icon]_e" - qdel(src) //No reason to keep it - nobody will reuse it... else icon_state = base_icon @@ -714,7 +745,7 @@ storage_slots = 7 max_w_class = 0 use_sound = "rip" - var/isopened = 0 + var/isopened = FALSE /obj/item/storage/box/MRE/fill_preset_inventory() pickflavor() @@ -752,14 +783,27 @@ /obj/item/storage/box/MRE/Initialize() . = ..() - isopened = 0 + isopened = FALSE icon_state = "mealpack" + RegisterSignal(src, COMSIG_ITEM_DROPPED, PROC_REF(try_forced_folding)) + +/obj/item/storage/box/MRE/proc/try_forced_folding(datum/source, mob/user) + SIGNAL_HANDLER + + if(!isturf(loc)) + return + + if(locate(/obj/item/reagent_container/food/snacks/packaged_meal) in src) + return + + UnregisterSignal(src, COMSIG_ITEM_DROPPED) + storage_close(user) + to_chat(user, SPAN_NOTICE("You throw away [src].")) + qdel(src) /obj/item/storage/box/MRE/update_icon() - if(!contents.len) - qdel(src) - else if(!isopened) - isopened = 1 + if(!isopened) + isopened = TRUE icon_state = "mealpackopened" //food boxes for storage in bulk diff --git a/code/game/objects/items/storage/fancy.dm b/code/game/objects/items/storage/fancy.dm index 9afa0dfd1851..5d7aecbc03db 100644 --- a/code/game/objects/items/storage/fancy.dm +++ b/code/game/objects/items/storage/fancy.dm @@ -103,11 +103,11 @@ overlays = list() //resets list overlays += image('icons/obj/items/crayons.dmi',"crayonbox") for(var/obj/item/toy/crayon/crayon in contents) - overlays += image('icons/obj/items/crayons.dmi',crayon.colourName) + overlays += image('icons/obj/items/crayons.dmi',crayon.colorName) /obj/item/storage/fancy/crayons/attackby(obj/item/W as obj, mob/user as mob) if(istype(W,/obj/item/toy/crayon)) - switch(W:colourName) + switch(W:colorName) if("mime") to_chat(usr, "This crayon is too sad to be contained in this box.") return @@ -218,6 +218,46 @@ default_cig_type = /obj/item/clothing/mask/cigarette/ucigarette storage_slots = 4 +/obj/item/storage/fancy/cigarettes/trading_card + name = "\improper WeyYu Gold Military Trading Card packet" + desc = "Gotta collect 'em all, and smoke 'em all! This fancy military trading card version of Weyland Yutani Gold cigarette packs has one card that is apart of the 3 available 5-card sets." + icon_state = "collectpacket" + item_state = "collectpacket" + storage_slots = 21 + can_hold = list( + /obj/item/clothing/mask/cigarette, + /obj/item/clothing/mask/cigarette/ucigarette, + /obj/item/clothing/mask/cigarette/bcigarette, + /obj/item/tool/lighter, + /obj/item/toy/trading_card, + ) + var/obj/item/toy/trading_card/trading_card + +/obj/item/storage/fancy/cigarettes/trading_card/fill_preset_inventory() + flags_atom |= NOREACT + for(var/i = 1 to (storage_slots-1)) + new default_cig_type(src) + trading_card = new(src) + +/obj/item/storage/fancy/cigarettes/trading_card/attack_hand(mob/user, mods) + if(trading_card?.loc == src && loc == user) + to_chat(user, SPAN_NOTICE("You pull a [trading_card.collection_color] trading card out of the cigarette pack.")) + //have to take two disparate systems n' ram 'em together + remove_from_storage(trading_card, user.loc) + user.put_in_hands(trading_card) + trading_card = null + + return ..() + +/obj/item/storage/fancy/cigarettes/trading_card/attackby(obj/item/attacked_by_item, mob/user) + if(istype(attacked_by_item, /obj/item/toy/trading_card)) + trading_card = attacked_by_item + + return ..() + +///////////// +//CIGAR BOX// +///////////// // CIGAR BOX /obj/item/storage/fancy/cigar @@ -302,7 +342,7 @@ if(istype(W) && !W.heat_source && !W.burnt) if(prob(burn_chance)) to_chat(user, SPAN_WARNING("\The [W] lights, but you burn your hand in the process! Ouch!")) - user.apply_damage(3, BRUTE, pick("r_hand", "l_hand")) + user.apply_damage(3, BURN, pick("r_hand", "l_hand")) if((user.pain.feels_pain) && prob(25)) user.emote("scream") W.light_match() @@ -409,3 +449,73 @@ /obj/item/storage/lockbox/vials/attackby(obj/item/W as obj, mob/user as mob) ..() update_icon() + +// Trading Card Pack + +/obj/item/storage/fancy/trading_card + name = "pack of Red WeyYu Military Trading Cards" + desc = "A 5 pack of Red Weyland Yutani Military Trading Cards." + icon = 'icons/obj/items/playing_cards.dmi' + icon_state = "trading_red_pack_closed" + storage_slots = 5 + icon_type = "trading card" + can_hold = list(/obj/item/toy/trading_card) + foldable = /obj/item/stack/sheet/cardboard + var/collection_color = null + var/obj/item/toy/trading_card/top_trading_card + +/obj/item/storage/fancy/trading_card/Initialize() + if(!collection_color) + collection_color = pick("red", "green", "blue") // because of vodoo shenanigans with fill_preset_inventory happening during parent's initalize this'll have to run prior to that + + . = ..() + + name = "pack of [capitalize(collection_color)] WeyYu Military Trading Cards" + desc = "A 5 pack of [capitalize(collection_color)] Weyland Yutani Military Trading Cards." + icon_state = "trading_[collection_color]_pack_closed" + + +/obj/item/storage/fancy/trading_card/fill_preset_inventory() + + for(var/i in 1 to storage_slots) + top_trading_card = new /obj/item/toy/trading_card(src) + +/obj/item/storage/fancy/trading_card/update_icon() + if(!(top_trading_card)) + icon_state = "trading_[collection_color]_pack_empty" + return + if(length(contents) == storage_slots) + icon_state = "trading_[collection_color]_pack_closed" + return + icon_state = "trading_[collection_color]_pack_open" + +/obj/item/storage/fancy/trading_card/attack_hand(mob/user, mods) + if(top_trading_card?.loc == src && loc == user) + to_chat(user, SPAN_NOTICE("You pull a [top_trading_card.collection_color] trading card out of the pack.")) + //have to take two disparate systems n' ram 'em together + remove_from_storage(top_trading_card, user.loc) + user.put_in_hands(top_trading_card) + if(!(length(contents))) + top_trading_card = null + update_icon() + return + top_trading_card = contents[(length(contents))] + update_icon() + return + + return ..() + +/obj/item/storage/fancy/trading_card/attackby(obj/item/attacked_by_item, mob/user) + if(istype(attacked_by_item, /obj/item/toy/trading_card)) + top_trading_card = attacked_by_item + + return ..() + +/obj/item/storage/fancy/trading_card/red + collection_color = "red" + +/obj/item/storage/fancy/trading_card/green + collection_color = "green" + +/obj/item/storage/fancy/trading_card/blue + collection_color = "blue" diff --git a/code/game/objects/items/storage/firstaid.dm b/code/game/objects/items/storage/firstaid.dm index 2514e2e5f10c..52fd50e9b022 100644 --- a/code/game/objects/items/storage/firstaid.dm +++ b/code/game/objects/items/storage/firstaid.dm @@ -123,7 +123,6 @@ desc = "It's an emergency medical kit containing lifesaving anti-toxic medication. With medical training you can fit this in a backpack." icon_state = "antitoxin" item_state = "firstaid-toxin" - possible_icons_full = list("antitoxin","antitoxfirstaid","antitoxfirstaid2","antitoxfirstaid3") /obj/item/storage/firstaid/toxin/fill_preset_inventory() new /obj/item/device/healthanalyzer(src) @@ -173,7 +172,7 @@ /obj/item/storage/firstaid/synth name = "synthetic repair kit" - desc = "Contains equipment to repair a damaged synthetic. A tag on the back reads: 'Does not contain a shocking tool to repair disabled synthetics, nor a scanning device to detect specific damage; pack seperately.' With medical training you can fit this in a backpack." + desc = "Contains equipment to repair a damaged synthetic. A tag on the back reads: 'Does not contain a shocking tool to repair disabled synthetics, nor a scanning device to detect specific damage; pack separately.' With medical training you can fit this in a backpack." icon_state = "bezerk" item_state = "firstaid-advanced" can_hold = list( @@ -384,9 +383,9 @@ /obj/item/storage/pill_bottle/get_examine_text(mob/user) . = ..() - var/pills_amount = contents.len + var/pills_amount = length(contents) if(pills_amount) - var/percentage_filled = round(pills_amount/max_storage_space * 100) + var/percentage_filled = floor(pills_amount/max_storage_space * 100) switch(percentage_filled) if(80 to 101) . += SPAN_INFO("The [name] seems fairly full.") @@ -410,7 +409,7 @@ if(skilllock && !skillcheck(user, SKILL_MEDICAL, SKILL_MEDICAL_MEDIC)) error_idlock(user) return - if(contents.len) + if(length(contents)) var/obj/item/I = contents[1] if(user.put_in_inactive_hand(I)) playsound(loc, use_sound, 10, TRUE, 3) @@ -465,7 +464,7 @@ if(C.is_mob_restrained()) to_chat(user, SPAN_WARNING("You are restrained!")) return FALSE - if(!contents.len) + if(!length(contents)) to_chat(user, SPAN_WARNING("The [name] is empty.")) return FALSE var/obj/item/I = contents[1] @@ -511,6 +510,34 @@ /obj/item/storage/pill_bottle/proc/error_idlock(mob/user) to_chat(user, SPAN_WARNING("It must have some kind of ID lock...")) +/obj/item/storage/pill_bottle/proc/choose_color(mob/user) + if(!user) + user = usr + var/static/list/possible_colors = list( + "Orange" = "", + "Blue" = "1", + "Yellow" = "2", + "Light Purple" = "3", + "Light Grey" = "4", + "White" = "5", + "Light Green" = "6", + "Cyan" = "7", + "Bordeaux" = "8", + "Aquamarine" = "9", + "Grey" = "10", + "Red" = "11", + "Black" = "12", + ) + var/selected_color = tgui_input_list(user, "Select a color.", "Color choice", possible_colors) + if(!selected_color) + return + + selected_color = possible_colors[selected_color] + + icon_state = "pill_canister" + selected_color + to_chat(user, SPAN_NOTICE("You color [src].")) + update_icon() + /obj/item/storage/pill_bottle/verb/set_maptext() set category = "Object" set name = "Set short label (on-sprite)" @@ -650,19 +677,19 @@ if(!idlock) return TRUE - var/mob/living/carbon/human/H = user + var/mob/living/carbon/human/human_user = user - if(!allowed(user)) + if(!allowed(human_user)) to_chat(user, SPAN_NOTICE("It must have some kind of ID lock...")) return FALSE - var/obj/item/card/id/I = H.wear_id - if(!istype(I)) //not wearing an ID - to_chat(H, SPAN_NOTICE("It must have some kind of ID lock...")) + var/obj/item/card/id/idcard = human_user.get_idcard() + if(!idcard) //not wearing an ID + to_chat(human_user, SPAN_NOTICE("It must have some kind of ID lock...")) return FALSE - if(I.registered_name != H.real_name) - to_chat(H, SPAN_WARNING("Wrong ID card owner detected.")) + if(!idcard.check_biometrics(human_user)) + to_chat(human_user, SPAN_WARNING("Wrong ID card owner detected.")) return FALSE return TRUE diff --git a/code/game/objects/items/storage/internal.dm b/code/game/objects/items/storage/internal.dm index a491df12f086..4d196ab145aa 100644 --- a/code/game/objects/items/storage/internal.dm +++ b/code/game/objects/items/storage/internal.dm @@ -61,10 +61,13 @@ else user.drop_inv_item_on_ground(master_item) user.put_in_r_hand(master_item) - return else user.drop_inv_item_on_ground(master_item) user.put_in_r_hand(master_item) + + if(master_item.light_on) + master_item.turn_light(toggle_on = FALSE) + return if("l_hand") if(master_item.time_to_unequip) user.visible_message(SPAN_NOTICE("[user] starts taking off \the [master_item].")) @@ -73,10 +76,13 @@ else user.drop_inv_item_on_ground(master_item) user.put_in_l_hand(master_item) - return else user.drop_inv_item_on_ground(master_item) user.put_in_l_hand(master_item) + + if(master_item.light_on) + master_item.turn_light(toggle_on = FALSE) + return master_item.add_fingerprint(user) return FALSE return FALSE diff --git a/code/game/objects/items/storage/large_holster.dm b/code/game/objects/items/storage/large_holster.dm index b02dff1bdbcc..02983e1552ed 100644 --- a/code/game/objects/items/storage/large_holster.dm +++ b/code/game/objects/items/storage/large_holster.dm @@ -64,6 +64,7 @@ can_hold = list( /obj/item/weapon/gun/shotgun/pump, /obj/item/weapon/gun/shotgun/combat, + /obj/item/weapon/gun/shotgun/double/mou53, ) has_gamemode_skin = TRUE @@ -253,9 +254,12 @@ to_chat(user, SPAN_WARNING("[src] must be equipped before you can switch types.")) return - var/obj/item/weapon/gun/flamer/M240T/flamer = user.get_active_hand() - if(!istype(flamer)) - to_chat(user, SPAN_WARNING("You must be holding [flamer] to use [src].")) + if(!linked_flamer) + to_chat(user, SPAN_WARNING("An incinerator unit must be linked in order to switch fuel types.")) + return + + if(user.get_active_hand() != linked_flamer) + to_chat(user, SPAN_WARNING("You must be holding [linked_flamer] to use [src].")) return if(!active_fuel) @@ -276,8 +280,8 @@ to_chat(user, "You switch the fuel tank to [active_fuel.caliber]") playsound(src, 'sound/machines/click.ogg', 25, TRUE) - flamer.current_mag = active_fuel - flamer.update_icon() + linked_flamer.current_mag = active_fuel + linked_flamer.update_icon() return TRUE @@ -317,7 +321,7 @@ fuel.forceMove(get_turf(user)) fuel = new_fuel visible_message("[user] swaps out the fuel tank in [src].","You swap out the fuel tank in [src] and drop the old one.") - to_chat(user, "The newly inserted [new_fuel.caliber] contains: [round(new_fuel.get_ammo_percent())]% fuel.") + to_chat(user, "The newly inserted [new_fuel.caliber] contains: [floor(new_fuel.get_ammo_percent())]% fuel.") user.temp_drop_inv_item(new_fuel) new_fuel.moveToNullspace() //necessary to not confuse the storage system playsound(src, 'sound/machines/click.ogg', 25, TRUE) @@ -328,15 +332,15 @@ /obj/item/storage/large_holster/fuelpack/get_examine_text(mob/user) . = ..() - if(contents.len) + if(length(contents)) . += "It is storing a M240-T incinerator unit." if (get_dist(user, src) <= 1) if(fuel) - . += "The [fuel.caliber] currently contains: [round(fuel.get_ammo_percent())]% fuel." + . += "The [fuel.caliber] currently contains: [floor(fuel.get_ammo_percent())]% fuel." if(fuelB) - . += "The [fuelB.caliber] currently contains: [round(fuelB.get_ammo_percent())]% fuel." + . += "The [fuelB.caliber] currently contains: [floor(fuelB.get_ammo_percent())]% fuel." if(fuelX) - . += "The [fuelX.caliber] currently contains: [round(fuelX.get_ammo_percent())]% fuel." + . += "The [fuelX.caliber] currently contains: [floor(fuelX.get_ammo_percent())]% fuel." /datum/action/item_action/specialist/toggle_fuel ability_primacy = SPEC_PRIMARY_ACTION_1 diff --git a/code/game/objects/items/storage/misc.dm b/code/game/objects/items/storage/misc.dm index 424a4f5be0e8..c3fd647853d6 100644 --- a/code/game/objects/items/storage/misc.dm +++ b/code/game/objects/items/storage/misc.dm @@ -30,7 +30,7 @@ to_chat(user, message) open = !open update_icon() - if(!contents.len) + if(!length(contents)) ..() return @@ -100,7 +100,7 @@ new /obj/item/reagent_container/food/drinks/cans/aspen(src) /obj/item/storage/beer_pack/update_icon() - if(contents.len == 1) + if(length(contents) == 1) var/turf/T = get_turf(src) var/obj/item/reagent_container/food/drinks/cans/aspen/B = new(T) if(ishuman(loc)) @@ -109,7 +109,7 @@ H.put_in_inactive_hand(B) qdel(src) else - icon_state = "6_pack_[contents.len]" + icon_state = "6_pack_[length(contents)]" /obj/item/storage/box/clf name = "D18-storing box" @@ -119,6 +119,7 @@ w_class = SIZE_SMALL max_w_class = SIZE_TINY storage_slots = 2 + can_hold = list(/obj/item/weapon/gun/pistol/clfpistol, /obj/item/ammo_magazine/pistol/clfpistol) /obj/item/storage/box/clf/fill_preset_inventory() new /obj/item/weapon/gun/pistol/clfpistol(src) @@ -132,6 +133,7 @@ w_class = SIZE_MEDIUM max_w_class = SIZE_MEDIUM storage_slots = 3 + can_hold = list(/obj/item/weapon/gun/pistol/t73, /obj/item/ammo_magazine/pistol/t73) /obj/item/storage/box/upp/fill_preset_inventory() new /obj/item/weapon/gun/pistol/t73(src) @@ -142,11 +144,11 @@ name = "M8 cartridge bayonet packaging" desc = "Contains one M8 Cartridge Bayonet and two sister CO2 cartridges. Thanks for being a dedicated Boots magazine subscriber!" icon_state = "co2_box" - can_hold = list(/obj/item/attachable/bayonet/co2, /obj/item/co2_cartridge) foldable = TRUE storage_slots = 3 w_class = SIZE_SMALL max_w_class = SIZE_SMALL + can_hold = list(/obj/item/attachable/bayonet/co2, /obj/item/co2_cartridge) /obj/item/storage/box/co2_knife/fill_preset_inventory() new /obj/item/attachable/bayonet/co2(src) diff --git a/code/game/objects/items/storage/pouch.dm b/code/game/objects/items/storage/pouch.dm index acb87e988879..63516ac20aa0 100644 --- a/code/game/objects/items/storage/pouch.dm +++ b/code/game/objects/items/storage/pouch.dm @@ -425,7 +425,7 @@ desc = "It can carry pistol magazines and revolver speedloaders." max_w_class = SIZE_SMALL icon_state = "pistol_mag" - storage_slots = 3 + storage_slots = 4 can_hold = list( /obj/item/ammo_magazine/pistol, @@ -824,6 +824,7 @@ /obj/item/roller = list(SKILL_MEDICAL, SKILL_MEDICAL_MEDIC), /obj/item/bodybag = list(SKILL_MEDICAL, SKILL_MEDICAL_MEDIC), /obj/item/reagent_container/blood = list(SKILL_MEDICAL, SKILL_MEDICAL_MEDIC), + /obj/item/tool/surgery/FixOVein = list(SKILL_MEDICAL, SKILL_MEDICAL_MEDIC), ) can_hold_skill_only = TRUE @@ -870,13 +871,13 @@ inner = new /obj/item/reagent_container/glass/pressurized_canister() //Only add an autoinjector if the canister is empty //Important for the snowflake /obj/item/storage/pouch/pressurized_reagent_canister/oxycodone - if(contents.len == 0) + if(length(contents) == 0) new /obj/item/reagent_container/hypospray/autoinjector/empty/medic(src) update_icon() /obj/item/storage/pouch/pressurized_reagent_canister/proc/fill_with(ragent) inner.reagents.add_reagent(ragent, inner.volume) - if(contents.len > 0) + if(length(contents) > 0) var/obj/item/reagent_container/hypospray/autoinjector/empty/A = contents[1] A.reagents.add_reagent(ragent, A.volume) A.update_uses_left() @@ -902,7 +903,7 @@ inner.reagents.add_reagent("adrenaline", inner.volume/3) inner.reagents.add_reagent("inaprovaline", inner.volume/3) inner.reagents.add_reagent("tricordrazine", inner.volume/3) - if(contents.len > 0) + if(length(contents) > 0) var/obj/item/reagent_container/hypospray/autoinjector/empty/medic/A = contents[1] A.reagents.add_reagent("adrenaline", A.volume/3) A.reagents.add_reagent("inaprovaline", A.volume/3) @@ -937,7 +938,7 @@ /obj/item/storage/pouch/pressurized_reagent_canister/proc/fill_autoinjector(obj/item/reagent_container/hypospray/autoinjector/autoinjector) var/max_uses = autoinjector.volume / autoinjector.amount_per_transfer_from_this - max_uses = round(max_uses) == max_uses ? max_uses : round(max_uses) + 1 + max_uses = floor(max_uses) == max_uses ? max_uses : floor(max_uses) + 1 if(inner && inner.reagents.total_volume > 0 && (autoinjector.uses_left < max_uses)) inner.reagents.trans_to(autoinjector, autoinjector.volume) autoinjector.update_uses_left() @@ -972,11 +973,11 @@ var/obj/O = target - if(!O.reagents || O.reagents.reagent_list.len < 1) + if(!O.reagents || length(O.reagents.reagent_list) < 1) to_chat(user, SPAN_WARNING("[O] is empty!")) return - var/amt_to_remove = Clamp(O.reagents.total_volume, 0, inner.volume) + var/amt_to_remove = clamp(O.reagents.total_volume, 0, inner.volume) if(!amt_to_remove) to_chat(user, SPAN_WARNING("[O] is empty!")) return @@ -985,11 +986,11 @@ O.reagents.trans_to(inner, amt_to_remove) //Refill our autoinjector - if(contents.len > 0) + if(length(contents) > 0) fill_autoinjector(contents[1]) //Top up our inner reagent canister after filling up the injector - amt_to_remove = Clamp(O.reagents.total_volume, 0, inner.volume) + amt_to_remove = clamp(O.reagents.total_volume, 0, inner.volume) if(amt_to_remove) O.reagents.trans_to(inner, amt_to_remove) @@ -1031,14 +1032,14 @@ //returns a text listing the reagents (and their volume) in the atom. Used by Attack logs for reagents in pills /obj/item/storage/pouch/pressurized_reagent_canister/proc/get_reagent_list_text() - if(inner && inner.reagents && inner.reagents.reagent_list && inner.reagents.reagent_list.len) + if(inner && inner.reagents && LAZYLEN(inner.reagents.reagent_list)) var/datum/reagent/R = inner.reagents.reagent_list[1] . = "[R.name]([R.volume]u)" - if(inner.reagents.reagent_list.len < 2) + if(length(inner.reagents.reagent_list) < 2) return - for(var/i in 2 to inner.reagents.reagent_list.len) + for(var/i in 2 to length(inner.reagents.reagent_list)) R = inner.reagents.reagent_list[i] if(!R) @@ -1107,8 +1108,8 @@ name = "flare pouch" desc = "A pouch designed to hold flares. Refillable with an M94 flare pack." max_w_class = SIZE_SMALL - storage_slots = 8 - max_storage_space = 8 + storage_slots = 16 + max_storage_space = 16 storage_flags = STORAGE_FLAGS_POUCH|STORAGE_USING_DRAWING_METHOD icon_state = "flare" can_hold = list(/obj/item/device/flashlight/flare,/obj/item/device/flashlight/flare/signal) @@ -1271,6 +1272,21 @@ new /obj/item/explosive/plastic(src) new /obj/item/explosive/plastic(src) +/obj/item/storage/pouch/tools/tactical/upp + name = "synthetic tools pouch" + desc = "Special issue tools pouch for UPP synthetics. Due to the enhanced strength of the synthetic and its inability to feel discomfort, this pouch is designed to maximize internal space with no concern for its wearer's comfort." + icon_state = "tools" + storage_slots = 7 + +/obj/item/storage/pouch/tools/tactical/upp/fill_preset_inventory() + new /obj/item/tool/wrench(src) + new /obj/item/tool/crowbar(src) + new /obj/item/tool/wirecutters(src) + new /obj/item/device/multitool(src) + new /obj/item/tool/weldingtool(src) + new /obj/item/stack/cable_coil(src) + new /obj/item/stack/cable_coil(src) + /obj/item/storage/pouch/tools/uppsynth/fill_preset_inventory() new /obj/item/tool/crowbar(src) new /obj/item/tool/wirecutters(src) diff --git a/code/game/objects/items/storage/smartpack.dm b/code/game/objects/items/storage/smartpack.dm index d012e773617b..3763064aa333 100644 --- a/code/game/objects/items/storage/smartpack.dm +++ b/code/game/objects/items/storage/smartpack.dm @@ -1,5 +1,5 @@ #define BACKPACK_LIGHT_LEVEL 6 -#define PROTECTIVE_COST 50 +#define PROTECTIVE_COST 150 #define REPAIR_COST 100 #define IMMOBILE_COST 20 diff --git a/code/game/objects/items/storage/storage.dm b/code/game/objects/items/storage/storage.dm index 6e7e891d6ba8..047163713e80 100644 --- a/code/game/objects/items/storage/storage.dm +++ b/code/game/objects/items/storage/storage.dm @@ -259,7 +259,7 @@ GLOBAL_LIST_EMPTY_TYPED(item_storage_box_cache, /datum/item_storage_box) if(!opened) //initialize background box 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_continue.screen_loc = "4:[floor(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 @@ -294,7 +294,7 @@ GLOBAL_LIST_EMPTY_TYPED(item_storage_box_cache, /datum/item_storage_box) storage_start.overlays += ISB.continued storage_start.overlays += ISB.end - O.screen_loc = "4:[round((startpoint+endpoint)/2)+(2+O.hud_offset)],2:16" + O.screen_loc = "4:[floor((startpoint+endpoint)/2)+(2+O.hud_offset)],2:16" O.layer = ABOVE_HUD_LAYER O.plane = ABOVE_HUD_PLANE @@ -366,7 +366,7 @@ GLOBAL_LIST_EMPTY_TYPED(item_storage_box_cache, /datum/item_storage_box) //This proc determins 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 = contents.len + var/adjusted_contents = length(contents) //Numbered contents display var/list/datum/numbered_display/numbered_contents @@ -390,13 +390,13 @@ GLOBAL_LIST_EMPTY_TYPED(item_storage_box_cache, /datum/item_storage_box) 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. + row_num = floor((adjusted_contents-1) / 7) // 7 is the maximum allowed width. slot_orient_objs(row_num, col_count, numbered_contents) return ///Returns TRUE if there is room for the given item. W_class_override allows checking for just a generic W_class, meant for checking shotgun handfuls without having to spawn and delete one just to check. /obj/item/storage/proc/has_room(obj/item/new_item, W_class_override = null) - if(storage_slots != null && contents.len < storage_slots) + if(storage_slots != null && length(contents) < storage_slots) return TRUE //At least one open slot. //calculate storage space only for containers that don't have slots if (storage_slots == null) @@ -458,7 +458,7 @@ GLOBAL_LIST_EMPTY_TYPED(item_storage_box_cache, /datum/item_storage_box) return var/w_limit_bypassed = 0 - if(bypass_w_limit.len) + if(length(bypass_w_limit)) for(var/A in bypass_w_limit) if(istype(W, A)) w_limit_bypassed = 1 @@ -559,11 +559,6 @@ W is always an item. stop_warning prevents messaging. user may be null.**/ //This proc is called when you want to place an item into the storage item. /obj/item/storage/attackby(obj/item/W as obj, mob/user as mob) ..() - - if(isrobot(user)) - to_chat(user, SPAN_NOTICE(" You're a robot. No.")) - return //Robots can't interact with storage items. - return attempt_item_insertion(W, FALSE, user) /obj/item/storage/equipped(mob/user, slot, silent) @@ -590,7 +585,7 @@ W is always an item. stop_warning prevents messaging. user may be null.**/ if(storage_flags & STORAGE_USING_FIFO_DRAWING) I = contents[1] else - I = contents[contents.len] + I = contents[length(contents)] I.attack_hand(user) else open(user) @@ -712,7 +707,7 @@ W is always an item. stop_warning prevents messaging. user may be null.**/ if(storage_flags & STORAGE_USING_FIFO_DRAWING) item_obj = contents[1] else - item_obj = contents[contents.len] + item_obj = contents[length(contents)] if(!istype(item_obj)) return remove_from_storage(item_obj, tile) @@ -730,11 +725,11 @@ W is always an item. stop_warning prevents messaging. user may be null.**/ if(ammo_dumping.flags_magazine & AMMUNITION_HANDFUL_BOX) var/handfuls = round(ammo_dumping.current_rounds / amount_to_dump, 1) //The number of handfuls, we round up because we still want the last one that isn't full if(ammo_dumping.current_rounds != 0) - if(contents.len < storage_slots) + if(length(contents) < storage_slots) to_chat(user, SPAN_NOTICE("You start refilling [src] with [ammo_dumping].")) if(!do_after(user, 1.5 SECONDS, INTERRUPT_ALL, BUSY_ICON_GENERIC)) return for(var/i = 1 to handfuls) - if(contents.len < storage_slots) + if(length(contents) < storage_slots) //Hijacked from /obj/item/ammo_magazine/proc/create_handful because it had to be handled differently //All this because shell types are instances and not their own objects :) @@ -759,7 +754,7 @@ W is always an item. stop_warning prevents messaging. user may be null.**/ if(user.action_busy) return - if(!origin_storage.contents.len) + if(!length(origin_storage.contents)) to_chat(user, SPAN_WARNING("[origin_storage] is empty.")) return if(!has_room(origin_storage.contents[1])) //Does it have room for the first item to be inserted? @@ -862,7 +857,7 @@ W is always an item. stop_warning prevents messaging. user may be null.**/ ..() //Clicking on itself will empty it, if it has contents and the verb to do that. Contents but no verb means nothing happens. - if(contents.len) + if(length(contents)) empty(user) return diff --git a/code/game/objects/items/storage/surgical_tray.dm b/code/game/objects/items/storage/surgical_tray.dm index 16c0d1352961..61f56c35b555 100644 --- a/code/game/objects/items/storage/surgical_tray.dm +++ b/code/game/objects/items/storage/surgical_tray.dm @@ -34,7 +34,7 @@ new /obj/item/tool/surgery/synthgraft(src) /obj/item/storage/surgical_tray/update_icon() - if(!contents.len) + if(!length(contents)) icon_state = "surgical_tray_e" else icon_state = "surgical_tray" diff --git a/code/game/objects/items/tanks/tanks.dm b/code/game/objects/items/tanks/tanks.dm index 5a929a171fc6..7d6da672b721 100644 --- a/code/game/objects/items/tanks/tanks.dm +++ b/code/game/objects/items/tanks/tanks.dm @@ -61,7 +61,7 @@ if(pressure>0) to_chat(user, SPAN_NOTICE("Pressure: [round(pressure,0.1)] kPa")) to_chat(user, SPAN_NOTICE("[gas_type]: 100%")) - to_chat(user, SPAN_NOTICE("Temperature: [round(temperature-T0C)]°C")) + to_chat(user, SPAN_NOTICE("Temperature: [floor(temperature-T0C)]°C")) else to_chat(user, SPAN_NOTICE("Tank is empty!")) src.add_fingerprint(user) @@ -84,12 +84,12 @@ /obj/item/tank/ui_data(mob/user) var/list/data = list() - data["tankPressure"] = round(pressure) - data["tankMaxPressure"] = round(pressure_full) - data["ReleasePressure"] = round(distribute_pressure) - data["defaultReleasePressure"] = round(TANK_DEFAULT_RELEASE_PRESSURE) - data["maxReleasePressure"] = round(TANK_MAX_RELEASE_PRESSURE) - data["minReleasePressure"] = round(TANK_MIN_RELEASE_PRESSURE) + data["tankPressure"] = floor(pressure) + data["tankMaxPressure"] = floor(pressure_full) + data["ReleasePressure"] = floor(distribute_pressure) + data["defaultReleasePressure"] = floor(TANK_DEFAULT_RELEASE_PRESSURE) + data["maxReleasePressure"] = floor(TANK_MAX_RELEASE_PRESSURE) + data["minReleasePressure"] = floor(TANK_MIN_RELEASE_PRESSURE) var/mask_connected = FALSE var/using_internal = FALSE @@ -122,7 +122,7 @@ src.distribute_pressure = TANK_MIN_RELEASE_PRESSURE else if(text2num(tgui_pressure) != null) pressure = text2num(tgui_pressure) - src.distribute_pressure = min(max(round(src.distribute_pressure), 0), TANK_MAX_RELEASE_PRESSURE) + src.distribute_pressure = min(max(floor(src.distribute_pressure), 0), TANK_MAX_RELEASE_PRESSURE) . = TRUE if("valve") diff --git a/code/game/objects/items/tools/experimental_tools.dm b/code/game/objects/items/tools/experimental_tools.dm index 221aa279a53b..140a05a534b7 100644 --- a/code/game/objects/items/tools/experimental_tools.dm +++ b/code/game/objects/items/tools/experimental_tools.dm @@ -107,7 +107,7 @@ icon_state = "autocomp" if(pdcell && pdcell.charge) overlays.Cut() - switch(round(pdcell.charge * 100 / pdcell.maxcharge)) + switch(floor(pdcell.charge * 100 / pdcell.maxcharge)) if(1 to 32) overlays += "cpr_batt_lo" if(33 to 65) @@ -118,7 +118,7 @@ /obj/item/clothing/suit/auto_cpr/get_examine_text(mob/user) . = ..() - . += SPAN_NOTICE("It has [round(pdcell.charge * 100 / pdcell.maxcharge)]% charge remaining.") + . += SPAN_NOTICE("It has [floor(pdcell.charge * 100 / pdcell.maxcharge)]% charge remaining.") @@ -157,7 +157,7 @@ end_cpr() return PROCESS_KILL - if(world.time > last_pump + 10 SECONDS) + if(world.time > last_pump + 7.5 SECONDS) last_pump = world.time if(H.stat == UNCONSCIOUS) var/suff = min(H.getOxyLoss(), 10) //Pre-merge level, less healing, more prevention of dying. @@ -230,7 +230,7 @@ overlays += "+filtering" if(pdcell && pdcell.charge) - switch(round(pdcell.charge * 100 / pdcell.maxcharge)) + switch(floor(pdcell.charge * 100 / pdcell.maxcharge)) if(85 to INFINITY) overlays += "dialysis_battery_100" if(60 to 84) @@ -249,7 +249,7 @@ /obj/item/tool/portadialysis/get_examine_text(mob/user) . = ..() var/currentpercent = 0 - currentpercent = round(pdcell.charge * 100 / pdcell.maxcharge) + currentpercent = floor(pdcell.charge * 100 / pdcell.maxcharge) . += SPAN_INFO("It has [currentpercent]% charge left in its internal battery.") /obj/item/tool/portadialysis/proc/painful_detach() @@ -379,5 +379,5 @@ arms_to_damage -= l_arm if(r_arm.status & LIMB_DESTROYED) arms_to_damage -= r_arm - if(arms_to_damage.len) + if(length(arms_to_damage)) human_to_damage.apply_damage(3, BRUTE, pick(arms_to_damage)) diff --git a/code/game/objects/items/tools/extinguisher.dm b/code/game/objects/items/tools/extinguisher.dm index cdd7f31f19f0..723d34c64f7e 100644 --- a/code/game/objects/items/tools/extinguisher.dm +++ b/code/game/objects/items/tools/extinguisher.dm @@ -153,7 +153,7 @@ var/list/unpicked_targets = list() for(var/a in 0 to (EXTINGUISHER_WATER_USE_AMT-1)) - if (!unpicked_targets.len) + if (!length(unpicked_targets)) unpicked_targets += targets var/turf/TT = pick(unpicked_targets) unpicked_targets -= TT diff --git a/code/game/objects/items/tools/flame_tools.dm b/code/game/objects/items/tools/flame_tools.dm index 82870f7ed8d1..d5cd708f29b3 100644 --- a/code/game/objects/items/tools/flame_tools.dm +++ b/code/game/objects/items/tools/flame_tools.dm @@ -180,7 +180,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM flags_atom = CAN_BE_SYRINGED attack_verb = list("burnt", "singed") blood_overlay_type = "" - light_color = LIGHT_COLOUR_ORANGE + light_color = LIGHT_COLOR_ORANGE /// Note - these are in masks.dmi not in cigarette.dmi var/icon_on = "cigon" var/icon_off = "cigoff" @@ -685,7 +685,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM icon = 'icons/obj/items/items.dmi' icon_state = "lighter_g" item_state = "lighter_g" - light_color = LIGHT_COLOUR_LAVA + light_color = LIGHT_COLOR_LAVA var/icon_on = "lighter_g_on" var/icon_off = "lighter_g" var/clr = "g" @@ -721,6 +721,22 @@ CIGARETTE PACKETS ARE IN FANCY.DM log_admin("[user] has engraved \the [src] with engraving \"[str]\". (CKEY: ([user.ckey]))") +/obj/item/tool/lighter/zippo/black + name = "black Zippo lighter" + desc = "A fancy black Zippo lighter. Ignite in style." + icon_state = "blackzippo" + item_state = "blackzippo" + icon_on = "blackzippoon" + icon_off = "blackzippo" + +/obj/item/tool/lighter/zippo/blue + name = "blue Zippo lighter" + desc = "A fancy blue Zippo lighter. Ignite in style." + icon_state = "bluezippo" + item_state = "bluezippo" + icon_on = "bluezippoon" + icon_off = "bluezippo" + /obj/item/tool/lighter/zippo/gold name = "golden Zippo lighter" desc = "A gold-anodized Zippo lighter. Ostentatious, but it certainly stands out." @@ -730,6 +746,15 @@ CIGARETTE PACKETS ARE IN FANCY.DM icon_off = "goldzippo" black_market_value = 30 +/obj/item/tool/lighter/zippo/executive + name = "Weyland-Yutani executive Zippo lighter" + desc = "A remarkable Zippo lighter embellished in the Company's black and gold shade." + icon_state = "execzippo" + item_state = "execzippo" + icon_on = "execzippoon" + icon_off = "execzippo" + black_market_value = 40 + /obj/item/tool/lighter/random /obj/item/tool/lighter/random/Initialize() diff --git a/code/game/objects/items/tools/hydro_tools.dm b/code/game/objects/items/tools/hydro_tools.dm index 7ae4989104f6..045a5b864555 100644 --- a/code/game/objects/items/tools/hydro_tools.dm +++ b/code/game/objects/items/tools/hydro_tools.dm @@ -31,24 +31,19 @@ /obj/item/tool/plantspray/pests/old name = "bottle of pestkiller" - icon = 'icons/obj/items/chemistry.dmi' - icon_state = "bottle16" /obj/item/tool/plantspray/pests/old/carbaryl name = "bottle of carbaryl" - icon_state = "bottle16" toxicity = 4 pest_kill_str = 2 /obj/item/tool/plantspray/pests/old/lindane name = "bottle of lindane" - icon_state = "bottle18" toxicity = 6 pest_kill_str = 4 /obj/item/tool/plantspray/pests/old/phosmet name = "bottle of phosmet" - icon_state = "bottle15" toxicity = 8 pest_kill_str = 7 @@ -57,25 +52,21 @@ /obj/item/tool/weedkiller name = "bottle of weedkiller" icon = 'icons/obj/items/chemistry.dmi' - icon_state = "bottle16" var/toxicity = 0 var/weed_kill_str = 0 /obj/item/tool/weedkiller/triclopyr name = "bottle of glyphosate" - icon_state = "bottle16" toxicity = 4 weed_kill_str = 2 /obj/item/tool/weedkiller/lindane name = "bottle of triclopyr" - icon_state = "bottle18" toxicity = 6 weed_kill_str = 4 /obj/item/tool/weedkiller/D24 name = "bottle of 2,4-D" - icon_state = "bottle15" toxicity = 8 weed_kill_str = 7 diff --git a/code/game/objects/items/tools/kitchen_tools.dm b/code/game/objects/items/tools/kitchen_tools.dm index 2d5b15e3d201..5b578fbb6ec6 100644 --- a/code/game/objects/items/tools/kitchen_tools.dm +++ b/code/game/objects/items/tools/kitchen_tools.dm @@ -126,7 +126,7 @@ flags_atom = FPRINT|CONDUCT sharp = IS_SHARP_ITEM_ACCURATE edge = 1 - force = 10 + force = MELEE_FORCE_TIER_4 w_class = SIZE_MEDIUM throwforce = 6 throw_speed = SPEED_VERY_FAST @@ -181,7 +181,7 @@ icon_state = "butch" desc = "A huge thing used for chopping and chopping up meat. This includes clowns and clown-by-products." flags_atom = FPRINT|CONDUCT - force = 15 + force = MELEE_FORCE_NORMAL w_class = SIZE_SMALL throwforce = 8 throw_speed = SPEED_VERY_FAST diff --git a/code/game/objects/items/tools/maintenance_tools.dm b/code/game/objects/items/tools/maintenance_tools.dm index a02536800f15..8febff63ee5d 100644 --- a/code/game/objects/items/tools/maintenance_tools.dm +++ b/code/game/objects/items/tools/maintenance_tools.dm @@ -50,6 +50,7 @@ throw_range = 5 matter = list("metal" = 75) attack_verb = list("stabbed") + flags_item = CAN_DIG_SHRAPNEL inherent_traits = list(TRAIT_TOOL_SCREWDRIVER) @@ -141,7 +142,7 @@ icon_state = "tac_cutters" /obj/item/tool/wirecutters/attack(mob/living/carbon/C, mob/user) - if((C.handcuffed) && (istype(C.handcuffed, /obj/item/handcuffs/cable))) + if((C.handcuffed) && (istype(C.handcuffed, /obj/item/restraint/adjustable/cable))) user.visible_message("\The [usr] cuts \the [C]'s restraints with \the [src]!",\ "You cut \the [C]'s restraints with \the [src]!",\ "You hear cable being cut.") @@ -162,6 +163,7 @@ drop_sound = 'sound/handling/weldingtool_drop.ogg' flags_atom = FPRINT|CONDUCT flags_equip_slot = SLOT_WAIST + var/base_icon_state = "" //Amount of OUCH when it's thrown force = 3 @@ -192,6 +194,7 @@ . = ..() create_reagents(max_fuel) reagents.add_reagent("fuel", max_fuel) + base_icon_state = initial(icon_state) return /obj/item/tool/weldingtool/Destroy() @@ -336,7 +339,7 @@ weld_tick += 8 //turning the tool on does not consume fuel directly, but it advances the process that regularly consumes fuel. force = 15 damtype = "fire" - icon_state = "welder1" + icon_state = base_icon_state + "_on" w_class = SIZE_LARGE heat_source = 3800 START_PROCESSING(SSobj, src) @@ -348,7 +351,7 @@ playsound(loc, 'sound/items/weldingtool_off.ogg', 25) force = 3 damtype = "brute" - icon_state = "welder" + icon_state = base_icon_state welding = 0 w_class = initial(w_class) heat_source = 0 @@ -415,6 +418,7 @@ name = "industrial blowtorch" max_fuel = 60 matter = list("metal" = 70, "glass" = 60) + icon_state = "welder_c" /obj/item/tool/weldingtool/hugetank @@ -442,9 +446,9 @@ name = "\improper ME3 hand welder" desc = "A compact, handheld welding torch used by the marines of the United States Colonial Marine Corps for cutting and welding jobs on the field. Due to the small size and slow strength, its function is limited compared to a full-sized technician's blowtorch." max_fuel = 5 - color = "#cc0000" has_welding_screen = TRUE inherent_traits = list(TRAIT_TOOL_SIMPLE_BLOWTORCH) + icon_state = "welder_b" /* * Crowbar @@ -490,6 +494,7 @@ w_class = SIZE_LARGE force = MELEE_FORCE_STRONG flags_equip_slot = SLOT_SUIT_STORE + flags_atom = FPRINT|QUICK_DRAWABLE pry_capable = IS_PRY_CAPABLE_FORCE //but not really ///Whether the Maintenance Jack is on crowbar or wrench mode var/crowbar_mode = TRUE //False for wrench mode @@ -552,13 +557,19 @@ if(requires_superstrength_pry) if(!HAS_TRAIT(user, TRAIT_SUPER_STRONG)) //basically IS_PRY_CAPABLE_CROWBAR return - if(!attacked_door.density) //If its open - return if(attacked_door.heavy) //Unopenable to_chat(usr, SPAN_DANGER("You cannot force [attacked_door] open.")) return if(user.action_busy) return + if(!attacked_door.density && !attacked_door.arePowerSystemsOn()) //If its open and unpowered + attacked_door.close(TRUE) + return + if(attacked_door.density && !attacked_door.arePowerSystemsOn()) // if its closed and unpowered + attacked_door.open(TRUE) + return + if(!attacked_door.density) //If its open + return user.visible_message(SPAN_DANGER("[user] jams [src] into [attacked_door] and starts to pry it open."), SPAN_DANGER("You jam [src] into [attacked_door] and start to pry it open.")) diff --git a/code/game/objects/items/tools/mining_tools.dm b/code/game/objects/items/tools/mining_tools.dm index 2389f85a370a..2b95e9fe94c2 100644 --- a/code/game/objects/items/tools/mining_tools.dm +++ b/code/game/objects/items/tools/mining_tools.dm @@ -8,10 +8,11 @@ icon_state = "pickaxe" flags_atom = FPRINT|CONDUCT flags_equip_slot = SLOT_WAIST - force = 15 + force = MELEE_FORCE_STRONG throwforce = 4 item_state = "pickaxe" w_class = SIZE_LARGE + hitsound = 'sound/weapons/bladeslice.ogg' matter = list("metal" = 3750) /// moving the delay to an item var so R&D can make improved picks. --NEO var/digspeed = 40 diff --git a/code/game/objects/items/tools/misc_tools.dm b/code/game/objects/items/tools/misc_tools.dm index 44aaab771db8..b016f0e67b33 100644 --- a/code/game/objects/items/tools/misc_tools.dm +++ b/code/game/objects/items/tools/misc_tools.dm @@ -58,6 +58,10 @@ if(isturf(A)) to_chat(user, SPAN_WARNING("The label won't stick to that.")) return + if(istype(A, /obj/item/storage/pill_bottle)) + var/obj/item/storage/pill_bottle/target_pill_bottle = A + target_pill_bottle.choose_color(user) + if(!label || !length(label)) remove_label(A, user) return @@ -161,7 +165,7 @@ matter = list("metal" = 10) inherent_traits = list(TRAIT_TOOL_PEN) /// what color the ink is! - var/pen_colour = "black" + var/pen_color = "black" var/on = TRUE var/clicky = FALSE @@ -180,7 +184,7 @@ /obj/item/tool/pen/proc/update_pen_state() overlays.Cut() if(on) - overlays += "+[pen_colour]_tip" + overlays += "+[pen_color]_tip" /obj/item/tool/pen/afterattack(atom/target, mob/user, proximity_flag, click_parameters) . = ..() @@ -246,7 +250,7 @@ /obj/item/tool/pen/blue desc = "It's a normal blue ink pen." - pen_colour = "blue" + pen_color = "blue" /obj/item/tool/pen/blue/clicky desc = "It's a WY brand extra clicky blue ink pen." @@ -255,7 +259,7 @@ /obj/item/tool/pen/red desc = "It's a normal red ink pen." - pen_colour = "red" + pen_color = "red" /obj/item/tool/pen/red/clicky desc = "It's a WY brand extra clicky red ink pen." @@ -264,7 +268,7 @@ /obj/item/tool/pen/green desc = "It's a normal green ink pen." - pen_colour = "green" + pen_color = "green" /obj/item/tool/pen/green/clicky desc = "It's a WY brand extra clicky green ink pen." @@ -273,7 +277,7 @@ /obj/item/tool/pen/invisible desc = "It's an invisible pen marker." - pen_colour = "white" + pen_color = "white" /obj/item/tool/pen/fountain desc = "A lavish testament to the ingenuity of ARMAT's craftsmanship, this fountain pen is a paragon of design and functionality. Detailed with golden accents and intricate mechanics, the pen allows for a swift change between a myriad of ink colors with a simple twist. A product of precision engineering, each mechanism inside the pen is designed to provide a seamless, effortless transition from one color to the next, creating an instrument of luxurious versatility." @@ -282,8 +286,8 @@ icon_state = "fountain_pen" item_state = "fountain_pen" matter = list("metal" = 20, "gold" = 10) - var/static/list/colour_list = list("red", "blue", "green", "yellow", "purple", "pink", "brown", "black", "orange") // Can add more colors as required - var/current_colour_index = 1 + var/static/list/color_list = list("red", "blue", "green", "yellow", "purple", "pink", "brown", "black", "orange") // Can add more colors as required + var/current_color_index = 1 var/owner_name /obj/item/tool/pen/fountain/pickup(mob/user, silent) @@ -305,9 +309,9 @@ /obj/item/tool/pen/fountain/attack_self(mob/living/carbon/human/user) if(on) - current_colour_index = (current_colour_index % length(colour_list)) + 1 - pen_colour = colour_list[current_colour_index] - balloon_alert(user,"you twist the pen and change the ink color to [pen_colour].") + current_color_index = (current_color_index % length(color_list)) + 1 + pen_color = color_list[current_color_index] + balloon_alert(user,"you twist the pen and change the ink color to [pen_color].") if(clicky) playsound(user.loc, 'sound/items/pen_click_on.ogg', 100, 1, 5) update_pen_state() @@ -415,6 +419,10 @@ name = "\improper DENIED rubber stamp" icon_state = "stamp-deny" +/obj/item/tool/stamp/approved + name = "\improper APPROVED rubber stamp" + icon_state = "stamp-approve" + /obj/item/tool/stamp/clown name = "clown's rubber stamp" icon_state = "stamp-clown" diff --git a/code/game/objects/items/tools/shovel_tools.dm b/code/game/objects/items/tools/shovel_tools.dm index ad74dca54e88..b4aa41c5843f 100644 --- a/code/game/objects/items/tools/shovel_tools.dm +++ b/code/game/objects/items/tools/shovel_tools.dm @@ -26,7 +26,7 @@ /obj/item/tool/shovel/update_icon() var/image/I = image(icon,src,dirt_overlay) - switch(dirt_type) // We can actually shape the color for what enviroment we dig up our dirt in. + switch(dirt_type) // We can actually shape the color for what environment we dig up our dirt in. if(DIRT_TYPE_GROUND) I.color = "#512A09" if(DIRT_TYPE_MARS) I.color = "#FF5500" if(DIRT_TYPE_SNOW) I.color = "#EBEBEB" diff --git a/code/game/objects/items/tools/surgery_tools.dm b/code/game/objects/items/tools/surgery_tools.dm index 8582e08111f7..0c5b3925ca34 100644 --- a/code/game/objects/items/tools/surgery_tools.dm +++ b/code/game/objects/items/tools/surgery_tools.dm @@ -96,6 +96,7 @@ force = 10 sharp = IS_SHARP_ITEM_ACCURATE edge = 1 + demolition_mod = 0.1 w_class = SIZE_TINY throwforce = 5 flags_item = CAN_DIG_SHRAPNEL @@ -195,16 +196,100 @@ */ /obj/item/tool/surgery/bonegel - name = "bone gel" + name = "bottle of bone gel" + desc = "A container for bone gel that often needs to be refilled from a specialized machine." + desc_lore = "Bone gel is a biological synthetic bone-analogue with the consistency of clay. It is capable of fixing hairline fractures and complex fractures alike. Bone gel should not be used to fix missing bone, as it does not replace the body's bone marrow. Overuse in a short period may cause acute immunodeficiency or anemia." icon_state = "bone-gel" - force = 0 - throwforce = 1 w_class = SIZE_SMALL matter = list("plastic" = 7500) + ///base icon state for update_icon() to reference, fixes bonegel/empty + var/base_icon_state = "bone-gel" + ///percent of gel remaining in container + var/remaining_gel = 100 + ///If gel is used when doing bone surgery + var/unlimited_gel = FALSE + ///Time it takes per 10% of gel refilled + var/time_per_refill = 1 SECONDS + ///if the bone gel is actively being refilled + var/refilling = FALSE + + ///How much bone gel is needed to fix a fracture + var/fracture_fix_cost = 5 + ///How much bone gel is needed to mend bones + var/mend_bones_fix_cost = 5 + +/obj/item/tool/surgery/bonegel/update_icon() + . = ..() + if(remaining_gel >= 100) + icon_state = base_icon_state + return + if(remaining_gel > 50) + icon_state = "[base_icon_state]_75" + return + if(remaining_gel > 25) + icon_state = "[base_icon_state]_50" + return + if(remaining_gel > 0) + icon_state = "[base_icon_state]_25" + return + icon_state = "[base_icon_state]_0" + +/obj/item/tool/surgery/bonegel/get_examine_text(mob/user) + . = ..() + if(unlimited_gel) //Only show how much gel is left if it actually uses bone gel + return + . += "A volume reader on the side tells you there is still [remaining_gel]% of [src] is remaining." + . += "[src] can be refilled from a osteomimetic lattice fabricator." + + if(!skillcheck(user, SKILL_MEDICAL, SKILL_MEDICAL_DOCTOR)) //Know how much you will be using if you can use it + return + . += SPAN_NOTICE("You would need to use [fracture_fix_cost]% of the bone gel to repair a fracture.") + . += SPAN_NOTICE("You would need to use [mend_bones_fix_cost]% of the bone gel to mend bones.") + +/obj/item/tool/surgery/bonegel/proc/refill_gel(obj/refilling_obj, mob/user) + if(unlimited_gel) + to_chat(user, SPAN_NOTICE("[refilling_obj] refuses to fill [src].")) + return + if(remaining_gel >= 100) + to_chat(user, SPAN_NOTICE("[src] cannot be filled with any more bone gel.")) + return + + if(refilling) + to_chat(user, SPAN_NOTICE("You are already refilling [src] from [refilling_obj].")) + return + refilling = TRUE + + while(remaining_gel < 100) + if(!do_after(user, time_per_refill, INTERRUPT_ALL, BUSY_ICON_FRIENDLY, refilling_obj)) + break + remaining_gel = clamp(remaining_gel + 10, 0, 100) + update_icon() + to_chat(user, SPAN_NOTICE("[refilling_obj] chimes, and displays \"[remaining_gel]% filled\".")) + + refilling = FALSE + playsound(refilling_obj, "sound/machines/ping.ogg", 10) + to_chat(user, SPAN_NOTICE("You remove [src] from [refilling_obj].")) + +/obj/item/tool/surgery/bonegel/proc/use_gel(gel_cost) + if(unlimited_gel) + return TRUE + + if(remaining_gel < gel_cost) + return FALSE + remaining_gel -= gel_cost + update_icon() + return TRUE + +/obj/item/tool/surgery/bonegel/empty + remaining_gel = 0 + icon_state = "bone-gel_0" /obj/item/tool/surgery/bonegel/predatorbonegel name = "gel gun" + desc = "Inside is a liquid that is similar in effect to bone gel, but requires much smaller quantities, allowing near infinite use from a single capsule." + base_icon_state = "predator_bone-gel" icon_state = "predator_bone-gel" + unlimited_gel = TRUE /* * Fix-o-Vein @@ -235,7 +320,7 @@ /obj/item/tool/surgery/surgical_line name = "\proper surgical line" desc = "A roll of military-grade surgical line, able to seamlessly sew up any wound. Also works as a robust fishing line for maritime deployments." - icon_state = "line" + icon_state = "line_brute" force = 0 throwforce = 1 w_class = SIZE_SMALL @@ -253,10 +338,7 @@ name = "Synth-Graft" desc = "An applicator for synthetic skin field grafts. The stuff reeks, itches like the dickens, hurts going on, and the color is \ a perfectly averaged multiethnic tone that doesn't blend with anyone's complexion. But at least you don't have to stay in sickbay." - /// Placeholder. - icon_state = "line" - /// Placeholder, to distinguish from surgical line. - color = "yellow" + icon_state = "line_burn" force = 0 throwforce = 1 w_class = SIZE_SMALL @@ -450,8 +532,8 @@ t. optimisticdude to_chat(usr, "This is difficult, you probably shouldn't move") return to_chat(usr, "You've cut through the outer layers of Chitin") - new /obj/item/XenoBio/Chitin(T.loc) //This will be 1-3 Chitin eventually (depending on tier) - new /obj/item/XenoBio/Chitin(T.loc) //This will be 1-3 Chitin eventually (depending on tier) + new /obj/item/oldresearch/Chitin(T.loc) //This will be 1-3 Chitin eventually (depending on tier) + new /obj/item/oldresearch/Chitin(T.loc) //This will be 1-3 Chitin eventually (depending on tier) T.butchery_progress++ active = 0 if(1) @@ -460,7 +542,7 @@ t. optimisticdude to_chat(usr, "This is difficult, you probably shouldn't move.") return to_chat(usr, "You've cut into the chest cavity and retreived a sample of blood.") - new /obj/item/XenoBio/Blood(T.loc)//This will be a sample of blood eventually + new /obj/item/oldresearch/Blood(T.loc)//This will be a sample of blood eventually T.butchery_progress++ active = 0 if(2) @@ -470,7 +552,7 @@ t. optimisticdude return //to_chat(usr, "You've cut out an intact organ.") to_chat(usr, "You've cut out some Biomass...") - new /obj/item/XenoBio/Resin(T.loc)//This will be an organ eventually, based on the caste. + new /obj/item/oldresearch/Resin(T.loc)//This will be an organ eventually, based on the caste. T.butchery_progress++ active = 0 if(3) @@ -480,6 +562,6 @@ t. optimisticdude return to_chat(usr, "You scrape out the remaining biomass.") active = 0 - new /obj/item/XenoBio/Resin(T.loc) + new /obj/item/oldresearch/Resin(T.loc) new /obj/effect/decal/remains/xeno(T.loc) qdel(T) diff --git a/code/game/objects/items/toys/cards.dm b/code/game/objects/items/toys/cards.dm index 2debd83f9bab..f63efd61a615 100644 --- a/code/game/objects/items/toys/cards.dm +++ b/code/game/objects/items/toys/cards.dm @@ -30,6 +30,10 @@ . = ..() populate_deck() +/obj/item/toy/deck/Destroy(force) + . = ..() + QDEL_NULL_LIST(cards) + /obj/item/toy/deck/get_examine_text(mob/user) . = ..() . += SPAN_NOTICE("There are [length(cards)] cards remaining in the deck.") @@ -75,6 +79,7 @@ var/obj/item/toy/handcard/H = O for(var/datum/playing_card/P as anything in H.cards) cards += P + H.cards -= P update_icon() qdel(O) user.visible_message(SPAN_NOTICE("[user] places their cards on the bottom of \the [src]."), SPAN_NOTICE("You place your cards on the bottom of the deck.")) @@ -271,6 +276,10 @@ if(!concealed) . += " ([length(cards)] card\s)" +/obj/item/toy/handcard/Destroy(force) + . = ..() + QDEL_NULL_LIST(cards) + /obj/item/toy/handcard/aceofspades icon_state = "spades_ace" desc = "An Ace of Spades" @@ -315,6 +324,9 @@ //fuck any qsorts and merge sorts. This needs to be brutally easy var/cards_length = length(cards) + if(cards_length >= 200) + to_chat(usr, SPAN_WARNING("Your hand is too big to sort. Remove some cards.")) + return for(var/i = 1 to cards_length) for(var/k = 2 to cards_length) if(cards[i].sort_index > cards[k].sort_index) @@ -331,6 +343,7 @@ var/cards_length = length(H.cards) for(var/datum/playing_card/P in H.cards) cards += P + H.cards -= P qdel(O) if(pile_state) if(concealed) @@ -339,6 +352,9 @@ user.visible_message(SPAN_NOTICE("\The [user] adds [cards_length > 1 ? "their hand" : "[cards[length(cards)].name]"] to \the [src]."), SPAN_NOTICE("You add [cards_length > 1 ? "your hand" : "[cards[length(cards)].name]"] to \the [src].")) else if(loc != user) + if(isstorage(loc)) + var/obj/item/storage/storage = loc + storage.remove_from_storage(src) user.put_in_hands(src) update_icon() return @@ -390,6 +406,12 @@ /obj/item/toy/handcard/MouseDrop(atom/over) if(usr != over || !Adjacent(usr)) return + if(ismob(loc)) + return + + if(isstorage(loc)) + var/obj/item/storage/storage = loc + storage.remove_from_storage(src) usr.put_in_hands(src) /obj/item/toy/handcard/get_examine_text(mob/user) @@ -423,6 +445,12 @@ name = "a playing card" desc = "A playing card." + if(length(cards) >= 200) + // BYOND will flat out choke when using thousands of cards for some unknown reason, + // possibly due to the transformed overlay stacking below. Nobody's gonna see the + // difference past 40 or so anyway. + return + overlays.Cut() if(!cards_length) @@ -434,7 +462,7 @@ overlays += I return - var/offset = Floor(80/cards_length) + var/offset = floor(80/cards_length) var/matrix/M = matrix() if(direction) @@ -454,13 +482,13 @@ var/image/I = new(src.icon, (concealed ? P.back_icon : P.card_icon)) switch(direction) if(SOUTH) - I.pixel_x = 8 - Floor(offset*i/4) + I.pixel_x = 8 - floor(offset*i/4) if(WEST) - I.pixel_y = -6 + Floor(offset*i/4) + I.pixel_y = -6 + floor(offset*i/4) if(EAST) - I.pixel_y = 8 - Floor(offset*i/4) + I.pixel_y = 8 - floor(offset*i/4) else - I.pixel_x = -7 + Floor(offset*i/4) + I.pixel_x = -7 + floor(offset*i/4) I.transform = M overlays += I i++ diff --git a/code/game/objects/items/toys/crayons.dm b/code/game/objects/items/toys/crayons.dm index c02b59289fa1..1d9e2e1a4d54 100644 --- a/code/game/objects/items/toys/crayons.dm +++ b/code/game/objects/items/toys/crayons.dm @@ -1,70 +1,70 @@ /obj/item/toy/crayon/red icon_state = "crayonred" crayon_color = "#DA0000" - shadeColour = "#810C0C" - colourName = "red" + shade_color = "#810C0C" + colorName = "red" /obj/item/toy/crayon/orange icon_state = "crayonorange" crayon_color = "#FF9300" - shadeColour = "#A55403" - colourName = "orange" + shade_color = "#A55403" + colorName = "orange" /obj/item/toy/crayon/yellow icon_state = "crayonyellow" crayon_color = "#FFF200" - shadeColour = "#886422" - colourName = "yellow" + shade_color = "#886422" + colorName = "yellow" /obj/item/toy/crayon/green icon_state = "crayongreen" crayon_color = "#A8E61D" - shadeColour = "#61840F" - colourName = "green" + shade_color = "#61840F" + colorName = "green" /obj/item/toy/crayon/blue icon_state = "crayonblue" crayon_color = "#00B7EF" - shadeColour = "#0082A8" - colourName = "blue" + shade_color = "#0082A8" + colorName = "blue" /obj/item/toy/crayon/purple icon_state = "crayonpurple" crayon_color = "#DA00FF" - shadeColour = "#810CFF" - colourName = "purple" + shade_color = "#810CFF" + colorName = "purple" /obj/item/toy/crayon/mime icon_state = "crayonmime" desc = "A very sad-looking crayon." - crayon_color = "#FFFFFF" - shadeColour = "#000000" - colourName = "mime" + crayon_color = COLOR_WHITE + shade_color = COLOR_BLACK + colorName = "mime" uses = 0 /obj/item/toy/crayon/mime/attack_self(mob/living/user) //inversion ..() - if(crayon_color != "#FFFFFF" && shadeColour != "#000000") - crayon_color = "#FFFFFF" - shadeColour = "#000000" + if(crayon_color != COLOR_WHITE && shade_color != COLOR_BLACK) + crayon_color = COLOR_WHITE + shade_color = COLOR_BLACK to_chat(user, "You will now draw in white and black with this crayon.") else - crayon_color = "#000000" - shadeColour = "#FFFFFF" + crayon_color = COLOR_BLACK + shade_color = COLOR_WHITE to_chat(user, "You will now draw in black and white with this crayon.") /obj/item/toy/crayon/rainbow icon_state = "crayonrainbow" crayon_color = "#FFF000" - shadeColour = "#000FFF" - colourName = "rainbow" + shade_color = "#000FFF" + colorName = "rainbow" uses = 0 /obj/item/toy/crayon/rainbow/attack_self(mob/living/user) ..() crayon_color = input(user, "Please select the main color.", "Crayon color") as color - shadeColour = input(user, "Please select the shade color.", "Crayon color") as color + shade_color = input(user, "Please select the shade color.", "Crayon color") as color /obj/item/toy/crayon/afterattack(atom/target, mob/user, proximity) if(!proximity) @@ -80,7 +80,7 @@ if("rune") to_chat(user, "You start drawing a rune on the [target.name].") if(instant || do_after(user, 50, INTERRUPT_ALL, BUSY_ICON_GENERIC)) - new /obj/effect/decal/cleanable/crayon(target,crayon_color,shadeColour,drawtype) + new /obj/effect/decal/cleanable/crayon(target,crayon_color,shade_color,drawtype) to_chat(user, "You finish drawing.") target.add_fingerprint(user) // Adds their fingerprints to the floor the crayon is drawn on. if(uses) diff --git a/code/game/objects/items/toys/toys.dm b/code/game/objects/items/toys/toys.dm index 65234c59b89b..91d8164dcf38 100644 --- a/code/game/objects/items/toys/toys.dm +++ b/code/game/objects/items/toys/toys.dm @@ -12,7 +12,6 @@ * Other things */ - //recreational items /obj/item/toy @@ -23,7 +22,6 @@ force = 0 black_market_value = 5 - /* * Balloons */ @@ -118,24 +116,24 @@ icon_state = "singularity_s1" - /* * Crayons */ /obj/item/toy/crayon name = "crayon" - desc = "A colourful crayon. Please refrain from eating it or putting it in your nose." + desc = "A colorful crayon. Please refrain from eating it or putting it in your nose." icon = 'icons/obj/items/crayons.dmi' icon_state = "crayonred" w_class = SIZE_TINY - attack_verb = list("attacked", "coloured") + attack_verb = list("attacked", "colored") black_market_value = 5 - var/crayon_color = "#FF0000" //RGB - var/shadeColour = "#220000" //RGB - var/uses = 30 //0 for unlimited uses + var/crayon_color = COLOR_RED + var/shade_color = "#220000" + /// 0 for unlimited uses + var/uses = 30 var/instant = 0 - var/colourName = "red" //for updateIcon purposes + var/colorName = "red" //for updateIcon purposes /* * Snap pops @@ -237,7 +235,6 @@ . += "[reagents.total_volume] units of water left!" - /* * Mech prizes */ @@ -399,6 +396,14 @@ src.add_fingerprint(user) addtimer(VARSET_CALLBACK(src, spam_flag, FALSE), 2 SECONDS) +// rubber duck +/obj/item/toy/bikehorn/rubberducky + name = "rubber ducky" + desc = "Rubber ducky you're so fine, you make bathtime lots of fuuun. Rubber ducky I'm awfully fooooond of yooooouuuu~" //thanks doohl + icon = 'icons/obj/structures/props/watercloset.dmi' + icon_state = "rubberducky" + item_state = "rubberducky" + /obj/item/computer3_part name = "computer part" desc = "Holy jesus you donnit now" diff --git a/code/game/objects/items/toys/trading_cards.dm b/code/game/objects/items/toys/trading_cards.dm new file mode 100644 index 000000000000..9fb83cd1e5e1 --- /dev/null +++ b/code/game/objects/items/toys/trading_cards.dm @@ -0,0 +1,61 @@ +/obj/item/toy/trading_card + name = "WeyYu Military Trading Card" + icon = 'icons/obj/items/playing_cards.dmi' + icon_state = "trading_red" + w_class = SIZE_TINY + + var/trading_card_number = "1" + var/picture_description = "barrel charger" + var/collection_color + var/is_front = FALSE + var/back_name = "Red WeyYu Military Trading Card" + var/front_name = "Red WeyYu Military Trading Card Number One" + var/back_description = "The back of a red trading card with the text: WeyYu Military Trading Cards! GOTTA COLLECT EM ALL!" + var/front_description = "A red trading card with a picture of the United Americas flag emblazoned on it. It is number one out of the five red cards." + var/back_icon_state = "trading_red" + var/front_icon_state = "trading_red_one" + var/picture_descriptions = list("5" = list("red" = "a fanatical colonial seditionist", "green" = "Almirante Joelle De La Cruz (the United Americas Secretary of Defense)", "blue" = "the United Americas flag"), + "4" = list("red" = "a UPPA soldier", "green" = "Marechal-do-ar Enzo Gabriel Lurdes (the Chief of Naval Operations of the Latin American Colonial Navy)", "blue" = "the Union of Progressive Peoples flag"), + "3" = list("red" = "a UPPA minigunner", "green" = "Generale d'armee Felix Couture (the Commandant of the Canadian Colonial Armed Forces)", "blue" = "the Three World Empire flag"), + "2" = list("red" = "a UPPA officer", "green" = "General Diego Dellamarggio (the Commandant of the United States Colonial Marines)", "blue" = "the Weyland Yutani logo"), + "1" = list("red" = "a Holy Order of the HEFA cultist", "green" = "General Delyla S. Vaughn (the Assistant Commandant of the United States Colonial Marines)", "blue" = "the Independent Core System Colonies logo",) + ) + +/obj/item/toy/trading_card/Initialize() + . = ..() + + if(istype(loc, /obj/item/storage/fancy/trading_card)) + var/obj/item/storage/fancy/trading_card/packet = loc + collection_color = packet.collection_color + + if(!collection_color) + collection_color = pick("red", "green", "blue") + trading_card_number = pick_weight(list("5" = 25, "4" = 20, "3" = 15, "2" = 10, "1" = 5)) + picture_description = picture_descriptions[trading_card_number][collection_color] + + name = "[capitalize(collection_color)] WeyYu Military Trading Card" + back_name = "[capitalize(collection_color)] WeyYu Military Trading Card" + front_name = "[capitalize(collection_color)] WeyYu Military Trading Card #[trading_card_number]" + + desc = "The back of a [collection_color] trading card with the text: WeyYu Military Trading Cards! GOTTA COLLECT EM ALL!" + back_description = "The back of a [collection_color] trading card with the text: WeyYu Military Trading Cards! GOTTA COLLECT EM ALL!" + front_description = "A [collection_color] trading card with a picture of [picture_description] emblazoned on it. It is #[trading_card_number] out of the five [collection_color] cards." + + icon_state = "trading_[collection_color]" + back_icon_state = "trading_[collection_color]" + front_icon_state = "trading_[collection_color]_[trading_card_number]" + +/obj/item/toy/trading_card/attack_self(mob/user) + if(loc == user) + if(is_front) + name = back_name + desc = back_description + icon_state = back_icon_state + is_front = FALSE + else + to_chat(user, SPAN_NOTICE("You reveal the card. It has a picture of [picture_description] on it!")) + name = front_name + desc = front_description + icon_state = front_icon_state + is_front = TRUE + return ..() diff --git a/code/game/objects/items/weapons/blades.dm b/code/game/objects/items/weapons/blades.dm index 0ba2f761a147..b1aca8db29b4 100644 --- a/code/game/objects/items/weapons/blades.dm +++ b/code/game/objects/items/weapons/blades.dm @@ -3,7 +3,7 @@ desc = "A dusty sword commonly seen in historical museums. Where you got this is a mystery, for sure. Only a mercenary would be nuts enough to carry one of these. Sharpened to deal massive damage." icon_state = "mercsword" item_state = "machete" - flags_atom = FPRINT|CONDUCT + flags_atom = FPRINT|QUICK_DRAWABLE|CONDUCT flags_equip_slot = SLOT_WAIST force = MELEE_FORCE_STRONG throwforce = MELEE_FORCE_WEAK @@ -114,7 +114,7 @@ icon_state = "throwing_knife" item_state = "combat_knife" desc = "A military knife designed to be thrown at the enemy. Much quieter than a firearm, but requires a steady hand to be used optimally, although you should probably just use a gun instead." - flags_atom = FPRINT|CONDUCT + flags_atom = FPRINT|QUICK_DRAWABLE|CONDUCT sharp = IS_SHARP_ITEM_ACCURATE force = MELEE_FORCE_TIER_1 w_class = SIZE_SMALL @@ -125,6 +125,7 @@ attack_verb = list("slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut") flags_equip_slot = SLOT_STORE|SLOT_FACE flags_armor_protection = SLOT_FACE + flags_item = CAN_DIG_SHRAPNEL /obj/item/weapon/unathiknife name = "duelling knife" @@ -202,6 +203,8 @@ else INVOKE_ASYNC(embedded_human, TYPE_PROC_REF(/mob, emote), "me", 1, pick("winces.", "grimaces.", "flinches.")) + SEND_SIGNAL(embedded_human, COMSIG_HUMAN_SHRAPNEL_REMOVED) + else to_chat(user, SPAN_NOTICE("You couldn't find any shrapnel.")) diff --git a/code/game/objects/items/weapons/energy.dm b/code/game/objects/items/weapons/energy.dm index 75668cebd5ee..c50fb9ea4e60 100644 --- a/code/game/objects/items/weapons/energy.dm +++ b/code/game/objects/items/weapons/energy.dm @@ -1,6 +1,6 @@ /obj/item/weapon/energy var/active = 0 - flags_atom = FPRINT|NOBLOODY + flags_atom = FPRINT|QUICK_DRAWABLE|NOBLOODY /obj/item/weapon/energy/axe name = "energy axe" @@ -11,7 +11,7 @@ throw_speed = SPEED_FAST throw_range = 5 w_class = SIZE_MEDIUM - flags_atom = FPRINT|CONDUCT|NOBLOODY + flags_atom = FPRINT|CONDUCT|QUICK_DRAWABLE|NOBLOODY flags_item = NOSHIELD attack_verb = list("attacked", "chopped", "cleaved", "torn", "cut") @@ -47,7 +47,7 @@ throw_speed = SPEED_FAST throw_range = 5 w_class = SIZE_SMALL - flags_atom = FPRINT|NOBLOODY + flags_atom = FPRINT|QUICK_DRAWABLE|NOBLOODY flags_item = NOSHIELD attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut") diff --git a/code/game/objects/items/weapons/misc.dm b/code/game/objects/items/weapons/misc.dm index d46619e581e9..c80da310fe51 100644 --- a/code/game/objects/items/weapons/misc.dm +++ b/code/game/objects/items/weapons/misc.dm @@ -3,7 +3,7 @@ desc = "A tool used by great men to placate the frothing masses." icon_state = "chain" item_state = "chain" - flags_atom = FPRINT|CONDUCT + flags_atom = FPRINT|QUICK_DRAWABLE|CONDUCT flags_equip_slot = SLOT_WAIST force = MELEE_FORCE_WEAK throwforce = MELEE_FORCE_WEAK diff --git a/code/game/objects/items/weapons/shields.dm b/code/game/objects/items/weapons/shields.dm index 0497a410a373..232936c263ae 100644 --- a/code/game/objects/items/weapons/shields.dm +++ b/code/game/objects/items/weapons/shields.dm @@ -89,7 +89,7 @@ /obj/item/weapon/shield/riot/attackby(obj/item/W as obj, mob/user as mob) if(cooldown < world.time - 25) - if(istype(W, /obj/item/weapon/baton) || istype(W, /obj/item/weapon/sword) || istype(W, /obj/item/weapon/baseballbat) || istype(W, /obj/item/weapon/twohanded/fireaxe) || istype(W, /obj/item/weapon/chainofcommand)) + if(istype(W, /obj/item/weapon/baton) || istype(W, /obj/item/weapon/sword) || istype(W, /obj/item/weapon/telebaton) || istype(W, /obj/item/weapon/baseballbat) || istype(W, /obj/item/weapon/classic_baton) || istype(W, /obj/item/weapon/twohanded/fireaxe) || istype(W, /obj/item/weapon/chainofcommand)) user.visible_message(SPAN_WARNING("[user] bashes [src] with [W]!")) playsound(user.loc, 'sound/effects/shieldbash.ogg', 25, 1) cooldown = world.time @@ -101,7 +101,7 @@ desc = "A shield capable of stopping most projectile and melee attacks. It can be retracted, expanded, and stored anywhere." icon = 'icons/obj/items/weapons/weapons.dmi' icon_state = "eshield0" // eshield1 for expanded - flags_atom = FPRINT|CONDUCT|NOBLOODY + flags_atom = FPRINT|QUICK_DRAWABLE|CONDUCT|NOBLOODY force = 3 passive_block = 50 // Shield activation takes over functionality, and no slowdown. readied_block = 50 diff --git a/code/game/objects/items/weapons/stunbaton.dm b/code/game/objects/items/weapons/stunbaton.dm index 310c53dd5d0f..9c1f065bcf7e 100644 --- a/code/game/objects/items/weapons/stunbaton.dm +++ b/code/game/objects/items/weapons/stunbaton.dm @@ -5,15 +5,15 @@ item_state = "baton" flags_equip_slot = SLOT_WAIST force = 15 - sharp = 0 - edge = 0 throwforce = 7 + sharp = FALSE + edge = FALSE w_class = SIZE_MEDIUM attack_verb = list("beaten") req_one_access = list(ACCESS_MARINE_BRIG, ACCESS_MARINE_ARMORY, ACCESS_MARINE_SENIOR, ACCESS_WY_GENERAL, ACCESS_WY_SECURITY, ACCESS_CIVILIAN_BRIG) var/stunforce = 50 - var/status = 0 //whether the thing is on or not + var/status = FALSE //whether the thing is on or not var/obj/item/cell/bcell = null var/hitcost = 1000 //oh god why do power cells carry so much charge? We probably need to make a distinction between "industrial" sized power cells for APCs and power cells for everything else. var/has_user_lock = TRUE //whether the baton prevents people without correct access from using it. @@ -54,41 +54,10 @@ /obj/item/weapon/baton/get_examine_text(mob/user) . = ..() if(bcell) - . += SPAN_NOTICE("The baton is [round(bcell.percent())]% charged.") + . += SPAN_NOTICE("The baton is [floor(bcell.percent())]% charged.") else . += SPAN_WARNING("The baton does not have a power source installed.") -/obj/item/weapon/baton/attack_hand(mob/user) - if(check_user_auth(user)) - ..() - - -/obj/item/weapon/baton/equipped(mob/user, slot) - ..() - check_user_auth(user) - - -//checks if the mob touching the baton has proper access -/obj/item/weapon/baton/proc/check_user_auth(mob/user) - if(!has_user_lock) - return TRUE - var/mob/living/carbon/human/H = user - if(istype(H)) - var/obj/item/card/id/I = H.wear_id - if(!istype(I) || !check_access(I) && status) - var/datum/effect_system/spark_spread/s = new - s.set_up(5, 1, src.loc) - H.visible_message(SPAN_NOTICE("[src] beeps as [H] picks it up"), SPAN_DANGER("WARNING: Unauthorized user detected. Denying access...")) - H.visible_message(SPAN_WARNING("[src] beeps and sends a shock through [H]'s body!")) - H.emote("pain") - s.start() - deductcharge(hitcost) - add_fingerprint(user) - return FALSE - return TRUE -/obj/item/weapon/baton/pull_response(mob/puller) - return check_user_auth(puller) - /obj/item/weapon/baton/attackby(obj/item/W, mob/user) if(istype(W, /obj/item/cell)) @@ -132,17 +101,20 @@ add_fingerprint(user) -/obj/item/weapon/baton/attack(mob/M, mob/user) - if(has_user_lock && !skillcheck(user, SKILL_POLICE, SKILL_POLICE_SKILLED)) - to_chat(user, SPAN_WARNING("You don't seem to know how to use [src]...")) - return - - if(isrobot(M)) - ..() - return - - var/stun = stunforce - var/mob/living/L = M +/obj/item/weapon/baton/attack(mob/target, mob/user) + var/mob/living/carbon/human/real_user = user + var/mob/living/carbon/human/human_target = target + if(has_user_lock && !skillcheck(real_user, SKILL_POLICE, SKILL_POLICE_SKILLED)) + if(prob(70) && status) + to_chat(real_user, SPAN_WARNING("You hit yourself with the [src] during the struggle...")) + real_user.drop_held_item() + real_user.apply_effect(1,STUN) + human_target = real_user + if(prob(20) && !status) //a relatively reliable melee weapon when turned off. + to_chat(real_user, SPAN_WARNING("You grab the [src] incorrectly twisting your hand in the process.")) + real_user.drop_held_item() + real_user.apply_effect(1,STUN) + real_user.apply_damage(force, BRUTE, pick("l_hand","r_hand"), no_limb_loss = TRUE) var/target_zone = check_zone(user.zone_selected) if(user.a_intent == INTENT_HARM) @@ -154,40 +126,42 @@ else //copied from human_defense.dm - human defence code should really be refactored some time. - if (ishuman(L)) + if (ishuman(human_target)) if(!target_zone) //shouldn't ever happen - L.visible_message(SPAN_DANGER("[user] misses [L] with \the [src]!")) + human_target.visible_message(SPAN_DANGER("[user] misses [human_target] with \the [src]!")) return FALSE - var/mob/living/carbon/human/H = L + var/mob/living/carbon/human/H = human_target var/obj/limb/affecting = H.get_limb(target_zone) if (affecting) if(!status) - L.visible_message(SPAN_WARNING("[L] has been prodded in the [affecting.display_name] with [src] by [user]. Luckily it was off.")) + human_target.visible_message(SPAN_WARNING("[human_target] has been prodded in the [affecting.display_name] with [src] by [user]. Luckily it was off.")) return TRUE else - H.visible_message(SPAN_DANGER("[L] has been prodded in the [affecting.display_name] with [src] by [user]!")) + H.visible_message(SPAN_DANGER("[human_target] has been prodded in the [affecting.display_name] with [src] by [user]!")) else if(!status) - L.visible_message(SPAN_WARNING("[L] has been prodded with [src] by [user]. Luckily it was off.")) + human_target.visible_message(SPAN_WARNING("[human_target] has been prodded with [src] by [user]. Luckily it was off.")) return TRUE else - L.visible_message(SPAN_DANGER("[L] has been prodded with [src] by [user]!")) + human_target.visible_message(SPAN_DANGER("[human_target] has been prodded with [src] by [user]!")) //stun effects - if(!isyautja(L) && !isxeno(L)) //Xenos and Predators are IMMUNE to all baton stuns. - L.emote("pain") - L.apply_stamina_damage(stun, target_zone, ARMOR_ENERGY) + if(!isyautja(human_target) && !isxeno(human_target)) //Xenos and Predators are IMMUNE to all baton stuns. + human_target.emote("pain") + human_target.apply_stamina_damage(stunforce, target_zone, ARMOR_ENERGY) + human_target.sway_jitter(2,1) + // Logging - if(user == L) + if(user == human_target) user.attack_log += "\[[time_stamp()]\] [key_name(user)] stunned themselves with [src] in [get_area(user)]" else - msg_admin_attack("[key_name(user)] stunned [key_name(L)] with [src] in [get_area(user)] ([user.loc.x],[user.loc.y],[user.loc.z]).", user.loc.x, user.loc.y, user.loc.z) - var/logentry = "\[[time_stamp()]\] [key_name(user)] stunned [key_name(L)] with [src] in [get_area(user)]" - L.attack_log += logentry + msg_admin_attack("[key_name(user)] stunned [key_name(human_target)] with [src] in [get_area(user)] ([user.loc.x],[user.loc.y],[user.loc.z]).", user.loc.x, user.loc.y, user.loc.z) + var/logentry = "\[[time_stamp()]\] [key_name(user)] stunned [key_name(human_target)] with [src] in [get_area(user)]" + human_target.attack_log += logentry user.attack_log += logentry playsound(loc, 'sound/weapons/Egloves.ogg', 25, 1, 6) @@ -201,17 +175,6 @@ if(bcell) bcell.emp_act(severity) //let's not duplicate code everywhere if we don't have to please. -//secborg stun baton module -/obj/item/weapon/baton/robot/attack_self(mob/user) - //try to find our power cell - var/mob/living/silicon/robot/R = loc - if (istype(R)) - bcell = R.cell - return ..() - -/obj/item/weapon/baton/robot/attackby(obj/item/W, mob/user) - return - //Makeshift stun baton. Replacement for stun gloves. /obj/item/weapon/baton/cattleprod name = "stunprod" diff --git a/code/game/objects/items/weapons/swords_axes_etc.dm b/code/game/objects/items/weapons/swords_axes_etc.dm index cdab7db87ed7..043da19c9d92 100644 --- a/code/game/objects/items/weapons/swords_axes_etc.dm +++ b/code/game/objects/items/weapons/swords_axes_etc.dm @@ -23,7 +23,7 @@ icon_state = "baton" item_state = "classic_baton" flags_equip_slot = SLOT_WAIST - force = MELEE_FORCE_WEAK + force = MELEE_FORCE_NORMAL /obj/item/weapon/classic_baton/attack(mob/M as mob, mob/living/user as mob) if(!..()) diff --git a/code/game/objects/items/weapons/twohanded.dm b/code/game/objects/items/weapons/twohanded.dm index be7571fa84a1..c363dc551450 100644 --- a/code/game/objects/items/weapons/twohanded.dm +++ b/code/game/objects/items/weapons/twohanded.dm @@ -101,7 +101,7 @@ w_class = SIZE_HUGE icon_state = "offhand" name = "offhand" - flags_item = DELONDROP|TWOHANDED|WIELDED + flags_item = DELONDROP|TWOHANDED|WIELDED|CANTSTRIP /obj/item/weapon/twohanded/offhand/unwield(mob/user) if(flags_item & WIELDED) @@ -132,7 +132,7 @@ edge = 1 w_class = SIZE_LARGE flags_equip_slot = SLOT_BACK - flags_atom = FPRINT|CONDUCT + flags_atom = FPRINT|QUICK_DRAWABLE|CONDUCT flags_item = TWOHANDED attack_verb = list("attacked", "chopped", "cleaved", "torn", "cut") @@ -161,7 +161,7 @@ edge = 0 w_class = SIZE_LARGE flags_equip_slot = SLOT_BACK - flags_atom = FPRINT|CONDUCT + flags_atom = FPRINT|QUICK_DRAWABLE|CONDUCT flags_item = TWOHANDED attack_verb = list("smashed", "beaten", "slammed", "struck", "smashed", "battered", "cracked") @@ -188,7 +188,7 @@ force_wielded = 75 wieldsound = 'sound/weapons/saberon.ogg' unwieldsound = 'sound/weapons/saberoff.ogg' - flags_atom = FPRINT|NOBLOODY + flags_atom = FPRINT|QUICK_DRAWABLE|NOBLOODY flags_item = NOSHIELD|TWOHANDED attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut") diff --git a/code/game/objects/items/weapons/weapon.dm b/code/game/objects/items/weapons/weapon.dm index 3d53dfb86b73..5dd98bfa5708 100644 --- a/code/game/objects/items/weapons/weapon.dm +++ b/code/game/objects/items/weapons/weapon.dm @@ -3,6 +3,7 @@ name = "weapon" icon = 'icons/obj/items/weapons/weapons.dmi' hitsound = "swing_hit" + flags_atom = FPRINT|QUICK_DRAWABLE /obj/item/get_examine_text(mob/user) . = ..() diff --git a/code/game/objects/items/weapons/weaponry.dm b/code/game/objects/items/weapons/weaponry.dm index f3c76bcff638..6e94961de15e 100644 --- a/code/game/objects/items/weapons/weaponry.dm +++ b/code/game/objects/items/weapons/weaponry.dm @@ -139,7 +139,7 @@ desc = "A rod with some wire wrapped around the top. It'd be easy to attach something to the top bit." icon_state = "wiredrod" item_state = "rods" - flags_atom = FPRINT|CONDUCT + flags_atom = FPRINT|QUICK_DRAWABLE|CONDUCT force = MELEE_FORCE_WEAK throwforce = MELEE_FORCE_WEAK w_class = SIZE_MEDIUM @@ -175,7 +175,7 @@

        Katanas are thrice as sharp as European swords and thrice as hard for that matter too. Anything a longsword can cut through, a katana can cut through better. I'm pretty sure a katana could easily bisect a knight wearing full plate with a simple vertical slash.

        \

        Ever wonder why medieval Europe never bothered conquering Japan? That's right, they were too scared to fight the disciplined Samurai and their katanas of destruction. Even in World War II, American soldiers targeted the men with the katanas first because their killing power was feared and respected.

        " icon_state = "katana" - flags_atom = FPRINT|CONDUCT + flags_atom = FPRINT|QUICK_DRAWABLE|CONDUCT force = 4444 throwforce = MELEE_FORCE_VERY_STRONG sharp = IS_SHARP_ITEM_BIG @@ -219,7 +219,7 @@ var/power = force if(user.skills) - power = round(power * (1 + 0.3*user.skills.get_skill_level(SKILL_MELEE_WEAPONS))) //30% bonus per melee level + power = floor(power * (1 + 0.3*user.skills.get_skill_level(SKILL_MELEE_WEAPONS))) //30% bonus per melee level //if the target also has a katana (and we aren't attacking ourselves), we add some suspense @@ -248,7 +248,7 @@ showname = "." var/used_verb = "attacked" - if(attack_verb && attack_verb.len) + if(LAZYLEN(attack_verb)) used_verb = pick(attack_verb) user.visible_message(SPAN_DANGER("[M] has been [used_verb] with [src][showname]."),\ SPAN_DANGER("You [used_verb] [M] with [src]."), null, 5) diff --git a/code/game/objects/objs.dm b/code/game/objects/objs.dm index 9d730c71970b..f93f2dab0984 100644 --- a/code/game/objects/objs.dm +++ b/code/game/objects/objs.dm @@ -142,34 +142,39 @@ return "on [t_his] feet" return "...somewhere?" -/obj/proc/updateUsrDialog() - if(in_use) - var/is_in_use = 0 - var/list/nearby = viewers(1, src) - for(var/mob/M in nearby) - if ((M.client && M.interactee == src)) - is_in_use = 1 - attack_hand(M) - if (ishighersilicon(usr)) - if (!(usr in nearby)) - if (usr.client && usr.interactee==src) // && M.interactee == src is omitted because if we triggered this by using the dialog, it doesn't matter if our machine changed in between triggering it and this - the dialog is probably still supposed to refresh. - is_in_use = 1 - attack_remote(usr) - in_use = is_in_use +/obj/proc/updateUsrDialog(mob/user) + if(!user) + user = usr + if(!in_use || !user) + return + + var/is_in_use = FALSE + var/list/nearby = viewers(1, src) + for(var/mob/cur_mob in nearby) + if(cur_mob.client && cur_mob.interactee == src) + is_in_use = TRUE + attack_hand(cur_mob) + if(isSilicon(user)) + if(!(user in nearby)) + if(user.client && user.interactee == src) // && M.interactee == src is omitted because if we triggered this by using the dialog, it doesn't matter if our machine changed in between triggering it and this - the dialog is probably still supposed to refresh. + is_in_use = TRUE + attack_remote(user) + + in_use = is_in_use /obj/proc/updateDialog() // Check that people are actually using the machine. If not, don't update anymore. - if(in_use) - var/list/nearby = viewers(1, src) - var/is_in_use = 0 - for(var/mob/M in nearby) - if ((M.client && M.interactee == src)) - is_in_use = 1 - src.interact(M) - var/ai_in_use = AutoUpdateAI(src) - - if(!ai_in_use && !is_in_use) - in_use = 0 + if(!in_use) + return + + var/is_in_use = FALSE + var/list/nearby = viewers(1, src) + for(var/mob/cur_mob in nearby) + if(cur_mob.client && cur_mob.interactee == src) + is_in_use = TRUE + interact(cur_mob) + + in_use = is_in_use /obj/proc/interact(mob/user) return @@ -203,6 +208,9 @@ /obj/proc/hear_talk(mob/living/M as mob, msg, verb="says", datum/language/speaking, italics = 0) return +/obj/proc/see_emote(mob/living/M as mob, emote, audible = FALSE) + return + /obj/attack_hand(mob/user) if(can_buckle) manual_unbuckle(user) else . = ..() @@ -226,7 +234,7 @@ /obj/proc/afterbuckle(mob/M as mob) // Called after somebody buckled / unbuckled handle_rotation() // To be removed when we have full dir support in set_buckled - SEND_SIGNAL(src, COSMIG_OBJ_AFTER_BUCKLE, buckled_mob) + SEND_SIGNAL(src, COMSIG_OBJ_AFTER_BUCKLE, buckled_mob) if(!buckled_mob) UnregisterSignal(M, COMSIG_PARENT_QDELETING) else @@ -236,6 +244,7 @@ /obj/proc/unbuckle() SIGNAL_HANDLER if(buckled_mob && buckled_mob.buckled == src) + buckled_mob.clear_alert(ALERT_BUCKLED) buckled_mob.set_buckled(null) buckled_mob.anchored = initial(buckled_mob.anchored) @@ -271,12 +280,17 @@ if (!ismob(M) || (get_dist(src, user) > 1) || user.is_mob_restrained() || user.stat || buckled_mob || M.buckled || !isturf(user.loc)) return - if (isxeno(user)) + if (isxeno(user) && !HAS_TRAIT(user, TRAIT_OPPOSABLE_THUMBS)) to_chat(user, SPAN_WARNING("You don't have the dexterity to do that, try a nest.")) return if (iszombie(user)) return + // mobs that become immobilized should not be able to buckle themselves. + if(M == user && HAS_TRAIT(user, TRAIT_IMMOBILIZED)) + to_chat(user, SPAN_WARNING("You are unable to do this in your current state.")) + return + if(density) density = FALSE if(!step(M, get_dir(M, src)) && loc != M.loc) @@ -289,10 +303,11 @@ if(M.loc != src.loc) return . = buckle_mob(M) - if (M.mob_size <= MOB_SIZE_XENO && M.stat == DEAD && istype(src, /obj/structure/bed/roller)) - do_buckle(M, user) - return - if (M.mob_size > MOB_SIZE_HUMAN) + if (M.mob_size <= MOB_SIZE_XENO) + if ((M.stat == DEAD && istype(src, /obj/structure/bed/roller) || HAS_TRAIT(M, TRAIT_OPPOSABLE_THUMBS))) + do_buckle(M, user) + return + if ((M.mob_size > MOB_SIZE_HUMAN)) to_chat(user, SPAN_WARNING("[M] is too big to buckle in.")) return do_buckle(M, user) @@ -302,6 +317,7 @@ /obj/proc/do_buckle(mob/living/target, mob/user) send_buckling_message(target, user) if (src && src.loc) + target.throw_alert(ALERT_BUCKLED, /atom/movable/screen/alert/buckled) target.set_buckled(src) target.forceMove(src.loc) target.setDir(dir) @@ -359,7 +375,7 @@ return 0 bullet_ping(P) if(P.ammo.damage) - update_health(round(P.ammo.damage / 2)) + update_health(floor(P.ammo.damage / 2)) return 1 /obj/item/proc/get_mob_overlay(mob/user_mob, slot) diff --git a/code/game/objects/prop.dm b/code/game/objects/prop.dm index c067a9730e70..cc941b19ed97 100644 --- a/code/game/objects/prop.dm +++ b/code/game/objects/prop.dm @@ -2,6 +2,29 @@ name = "prop" desc = "Some kind of prop." +/// A prop that acts as a replacement for another item, mimicking their looks. +/// Mainly used in Reqs Tutorial to provide the full item selections without side effects. +/obj/item/prop/replacer + /// The type that this object is taking the place of + var/original_type + +/obj/item/prop/replacer/Initialize(mapload, obj/original_type) + if(!original_type) + return INITIALIZE_HINT_QDEL + . = ..() + src.original_type = original_type + var/obj/created_type = new original_type // Instancing this for the sake of assigning its appearance to the prop and nothing else + name = initial(original_type.name) + icon = initial(original_type.icon) + icon_state = initial(original_type.icon_state) + desc = initial(original_type.desc) + if(ispath(original_type, /obj/item)) + var/obj/item/item_type = original_type + item_state = initial(item_type.item_state) + + appearance = created_type.appearance + qdel(created_type) + /obj/item/prop/laz_top name = "lazertop" icon = 'icons/obj/structures/props/server_equipment.dmi' @@ -89,6 +112,11 @@ icon_state = "uscmflag2" desc = "A miniature historical table flag of the United States Colonial Marines, in traditional scarlet and gold. The USCM logo sits in the center; an eagle is perched atop it and an anchor rests behind it." +/obj/item/prop/tableflag/upp + name = "UPP table flag" + icon_state = "uppflag" + desc = "A miniature table flag of the Union of Progressive Peoples, consisting of 17 yellow stars, surrounding the bigger one in the middle on scarlet field." + /obj/item/prop/flower_vase name = "flower vase" icon_state = "flowervase" diff --git a/code/game/objects/structures.dm b/code/game/objects/structures.dm index 2519ed2940d5..919f185ebe9e 100644 --- a/code/game/objects/structures.dm +++ b/code/game/objects/structures.dm @@ -219,8 +219,12 @@ playsound(loc, 'sound/items/Ratchet.ogg', 25, 1) if(anchored) user.visible_message(SPAN_NOTICE("[user] anchors [src] into place."),SPAN_NOTICE("You anchor [src] into place.")) + for(var/obj/medlink in loc) + SEND_SIGNAL(medlink, COMSIG_STRUCTURE_WRENCHED, src) else user.visible_message(SPAN_NOTICE("[user] unanchors [src]."),SPAN_NOTICE("You unanchor [src].")) + for(var/obj/medlink in loc) + SEND_SIGNAL(medlink, COMSIG_STRUCTURE_UNWRENCHED, src) return TRUE /obj/structure/get_applying_acid_time() diff --git a/code/game/objects/structures/barricade/barricade.dm b/code/game/objects/structures/barricade/barricade.dm index 5a72ec33ea2a..28036f92d018 100644 --- a/code/game/objects/structures/barricade/barricade.dm +++ b/code/game/objects/structures/barricade/barricade.dm @@ -5,20 +5,28 @@ climbable = TRUE anchored = TRUE density = TRUE - throwpass = TRUE //You can throw objects over this, despite its density. + /// You can throw objects over this, despite its density. + throwpass = TRUE layer = BELOW_OBJ_LAYER flags_atom = ON_BORDER - var/stack_type //The type of stack the barricade dropped when disassembled if any. - var/stack_amount = 5 //The amount of stack dropped when disassembled at full health - var/destroyed_stack_amount //to specify a non-zero amount of stack to drop when destroyed + /// The type of stack the barricade dropped when disassembled if any. + var/stack_type + /// The amount of stack dropped when disassembled at full health + var/stack_amount = 5 + /// to specify a non-zero amount of stack to drop when destroyed + var/destroyed_stack_amount health = 100 //Pretty tough. Changes sprites at 300 and 150 - var/maxhealth = 100 //Basic code functions + var/maxhealth = 100 /// Used for calculating some stuff related to maxhealth as it constantly changes due to e.g. barbed wire. set to 100 to avoid possible divisions by zero var/starting_maxhealth = 100 - var/crusher_resistant = TRUE //Whether a crusher can ram through it. - var/force_level_absorption = 5 //How much force an item needs to even damage it at all. + /// Whether a crusher can ram through it. + var/crusher_resistant = TRUE + /// How much force an item needs to even damage it at all. + var/force_level_absorption = 5 var/barricade_hitsound var/barricade_type = "barricade" //"metal", "plasteel", etc. + /// ! Icon file used for the wiring + var/wire_icon = 'icons/obj/structures/barricades.dmi' var/can_change_dmg_state = TRUE var/damage_state = BARRICADE_DMG_NONE var/closed = FALSE @@ -34,6 +42,8 @@ var/burn_flame_multiplier = 1 var/repair_materials = list() var/metallic = TRUE + /// Lower limit of damage beyond which the barricade cannot be fixed by welder. Compared to damage_state. If null it can be repaired at any damage_state. + var/welder_lower_damage_limit = null /obj/structure/barricade/Initialize(mapload, mob/user) . = ..() @@ -102,9 +112,9 @@ if(is_wired) if(!closed) - overlays += image('icons/obj/structures/barricades.dmi', icon_state = "[src.barricade_type]_wire") + overlays += image(wire_icon, icon_state = "[barricade_type]_wire") else - overlays += image('icons/obj/structures/barricades.dmi', icon_state = "[src.barricade_type]_closed_wire") + overlays += image(wire_icon, icon_state = "[barricade_type]_closed_wire") ..() @@ -176,9 +186,6 @@ return FALSE return prob(max(30,(100.0*health)/maxhealth)) -/obj/structure/barricade/attack_robot(mob/user as mob) - return attack_hand(user) - /obj/structure/barricade/attack_animal(mob/user as mob) return attack_alien(user) @@ -257,7 +264,7 @@ bullet.damage = bullet.damage * brute_projectile_multiplier if(istype(bullet.ammo, /datum/ammo/xeno/boiler_gas)) - take_damage(round(50 * burn_multiplier)) + take_damage(floor(50 * burn_multiplier)) else if(bullet.ammo.flags_ammo_behavior & AMMO_ANTISTRUCT) take_damage(bullet.damage * ANTISTRUCT_DMG_MULT_BARRICADES) @@ -272,9 +279,9 @@ new /obj/item/stack/barbed_wire(loc) if(stack_type) var/stack_amt - stack_amt = round(stack_amount * (health/starting_maxhealth)) //Get an amount of sheets back equivalent to remaining health. Obviously, fully destroyed means 0 + stack_amt = floor(stack_amount * (health/starting_maxhealth)) //Get an amount of sheets back equivalent to remaining health. Obviously, fully destroyed means 0 if(upgraded) - stack_amt += round(2 * (health/starting_maxhealth)) + stack_amt += floor(2 * (health/starting_maxhealth)) if(stack_amt) new stack_type(loc, stack_amt) else @@ -297,7 +304,7 @@ deconstruct(FALSE) create_shrapnel(location, rand(2,5), direction, , /datum/ammo/bullet/shrapnel/light, cause_data) else - update_health(round(severity * explosive_multiplier)) + update_health(floor(severity * explosive_multiplier)) /obj/structure/barricade/get_explosion_resistance(direction) if(!density || direction == turn(dir, 90) || direction == turn(dir, -90)) @@ -326,7 +333,7 @@ take_damage(dam * burn_flame_multiplier) /obj/structure/barricade/proc/hit_barricade(obj/item/item) - take_damage(item.force * 0.5 * brute_multiplier) + take_damage(item.force * item.demolition_mod * 0.5 * brute_multiplier) /obj/structure/barricade/proc/take_damage(damage) for(var/obj/structure/barricade/barricade in get_step(src,dir)) //discourage double-stacking barricades by removing health from opposing barricade @@ -340,7 +347,7 @@ /obj/structure/barricade/update_health(damage, nomessage) health -= damage - health = Clamp(health, 0, maxhealth) + health = clamp(health, 0, maxhealth) if(!health) if(!nomessage) @@ -352,16 +359,15 @@ update_icon() /obj/structure/barricade/proc/update_damage_state() - var/health_percent = round(health/maxhealth * 100) + var/health_percent = floor(health/maxhealth * 100) switch(health_percent) if(0 to 25) damage_state = BARRICADE_DMG_HEAVY if(25 to 50) damage_state = BARRICADE_DMG_MODERATE if(50 to 75) damage_state = BARRICADE_DMG_SLIGHT if(75 to INFINITY) damage_state = BARRICADE_DMG_NONE -/obj/structure/barricade/proc/weld_cade(obj/item/tool/weldingtool/welder, mob/user) - if(!metallic) - user.visible_message(SPAN_WARNING("You can't weld \the [src]!")) +/obj/structure/barricade/proc/try_weld_cade(obj/item/tool/weldingtool/welder, mob/user, repeat = TRUE, skip_check = FALSE) + if(!skip_check && !can_weld(welder, user)) return FALSE if(!(welder.remove_fuel(2, user))) @@ -380,6 +386,16 @@ user.count_niche_stat(STATISTICS_NICHE_REPAIR_CADES) update_health(-200) playsound(src.loc, 'sound/items/Welder2.ogg', 25, TRUE) + + var/current_tool = user.get_active_hand() + if(current_tool != welder) + return TRUE // Swapped hands or tool + if(repeat && can_weld(welder, user, silent = TRUE)) + // Assumption: The implementation of can_weld will return false if fully repaired + if(!try_weld_cade(welder, user, repeat = TRUE, skip_check = TRUE)) + // If this returned false, then we were interrupted or ran out of fuel, so stop looping + return TRUE + return TRUE /obj/structure/barricade/verb/count_rotate() @@ -468,3 +484,29 @@ nailgun.in_chamber = null nailgun.load_into_chamber() return TRUE + +/obj/structure/barricade/proc/can_weld(obj/item/item, mob/user, silent) + if(user.action_busy) + return FALSE + + if(!metallic) + if(!silent) + user.visible_message(SPAN_WARNING("You can't weld \the [src]!")) + return FALSE + + if(!HAS_TRAIT(item, TRAIT_TOOL_BLOWTORCH)) + if(!silent) + to_chat(user, SPAN_WARNING("You need a stronger blowtorch!")) + return FALSE + + if(health == maxhealth) + if(!silent) + to_chat(user, SPAN_WARNING("[src] doesn't need repairs.")) + return FALSE + + if(!(isnull(damage_state)) && !(isnull(welder_lower_damage_limit)) && damage_state >= welder_lower_damage_limit) + if(!silent) + to_chat(user, SPAN_WARNING("[src] has sustained too much structural damage to be repaired.")) + return FALSE + + return TRUE diff --git a/code/game/objects/structures/barricade/deployable.dm b/code/game/objects/structures/barricade/deployable.dm index 0d5275f98a3d..e53c917dc2bb 100644 --- a/code/game/objects/structures/barricade/deployable.dm +++ b/code/game/objects/structures/barricade/deployable.dm @@ -24,40 +24,28 @@ . += SPAN_INFO("Drag its sprite onto yourself to undeploy.") /obj/structure/barricade/deployable/attackby(obj/item/item, mob/user) - if(iswelder(item)) - if(!HAS_TRAIT(item, TRAIT_TOOL_BLOWTORCH)) - to_chat(user, SPAN_WARNING("You need a stronger blowtorch!")) - return - if(user.action_busy) - return - var/obj/item/tool/weldingtool/welder = item - if(health == maxhealth) - to_chat(user, SPAN_WARNING("[src] doesn't need repairs.")) - return - - weld_cade(welder, user) + try_weld_cade(item, user) return - else if(HAS_TRAIT(item, TRAIT_TOOL_CROWBAR)) + if(HAS_TRAIT(item, TRAIT_TOOL_CROWBAR)) if(user.action_busy) return if(!skillcheck(user, SKILL_ENGINEER, SKILL_ENGINEER_TRAINED)) to_chat(user, SPAN_WARNING("You do not know how to collapse [src] using a crowbar...")) return + user.visible_message(SPAN_NOTICE("[user] starts collapsing [src]."), \ + SPAN_NOTICE("You begin collapsing [src]...")) + playsound(loc, 'sound/items/Crowbar.ogg', 25, 1) + if(do_after(user, 1.5 SECONDS, INTERRUPT_NO_NEEDHAND, BUSY_ICON_FRIENDLY, src)) + collapse(usr) else - user.visible_message(SPAN_NOTICE("[user] starts collapsing [src]."), \ - SPAN_NOTICE("You begin collapsing [src]...")) - playsound(loc, 'sound/items/Crowbar.ogg', 25, 1) - if(do_after(user, 1.5 SECONDS, INTERRUPT_NO_NEEDHAND, BUSY_ICON_FRIENDLY, src)) - collapse(usr) - else - to_chat(user, SPAN_WARNING("You stop collapsing [src].")) + to_chat(user, SPAN_WARNING("You stop collapsing [src].")) if(try_nailgun_usage(item, user)) return - . = ..() + return ..() /obj/structure/barricade/deployable/MouseDrop(obj/over_object as obj) if(!ishuman(usr)) @@ -202,7 +190,7 @@ to_chat(user, SPAN_INFO("You transfer [to_transfer] between the stacks.")) return - else if(iswelder(item)) + if(iswelder(item)) if(!HAS_TRAIT(item, TRAIT_TOOL_BLOWTORCH)) to_chat(user, SPAN_WARNING("You need a stronger blowtorch!")) return @@ -248,7 +236,7 @@ playsound(loc, 'sound/items/Welder2.ogg', 25, TRUE) return - . = ..() + return ..() /obj/item/stack/folding_barricade/attack_hand(mob/user) var/mob/living/carbon/human/human = user @@ -281,7 +269,7 @@ /obj/item/stack/folding_barricade/get_examine_text(mob/user) . = ..() - if(round(min(stack_health)/maxhealth * 100) <= 75) + if(floor(min(stack_health)/maxhealth * 100) <= 75) . += SPAN_WARNING("It appears to be damaged.") /obj/item/stack/folding_barricade/three diff --git a/code/game/objects/structures/barricade/handrail.dm b/code/game/objects/structures/barricade/handrail.dm index ae166dbbf985..2fde8de3fe98 100644 --- a/code/game/objects/structures/barricade/handrail.dm +++ b/code/game/objects/structures/barricade/handrail.dm @@ -67,7 +67,7 @@ reinforced = !reinforced update_icon() -/obj/structure/barricade/handrail/attackby(obj/item/W, mob/user) +/obj/structure/barricade/handrail/attackby(obj/item/item, mob/user) for(var/obj/effect/xenomorph/acid/A in src.loc) if(A.acid_t == src) to_chat(user, "You can't get near that, it's melting!") @@ -75,7 +75,7 @@ switch(build_state) if(BARRICADE_BSTATE_SECURED) //Non-reinforced. Wrench to unsecure. Screwdriver to disassemble into metal. 1 metal to reinforce. - if(HAS_TRAIT(W, TRAIT_TOOL_WRENCH)) // Make unsecure + if(HAS_TRAIT(item, TRAIT_TOOL_WRENCH)) // Make unsecure if(user.action_busy) return if(!skillcheck(user, SKILL_CONSTRUCTION, SKILL_CONSTRUCTION_TRAINED)) @@ -89,7 +89,7 @@ build_state = BARRICADE_BSTATE_UNSECURED update_icon() return - if(istype(W, /obj/item/stack/sheet/metal)) // Start reinforcing + if(istype(item, /obj/item/stack/sheet/metal)) // Start reinforcing if(!can_be_reinforced) return if(user.action_busy) @@ -97,7 +97,7 @@ if(!skillcheck(user, SKILL_CONSTRUCTION, SKILL_CONSTRUCTION_TRAINED)) to_chat(user, SPAN_WARNING("You are not trained to reinforce [src]...")) return - var/obj/item/stack/sheet/metal/M = W + var/obj/item/stack/sheet/metal/M = item playsound(src.loc, 'sound/items/Screwdriver2.ogg', 25, 1) if(M.amount >= 1 && do_after(user, 30, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD)) //Shouldnt be possible, but doesnt hurt to check if(!M.use(1)) @@ -109,7 +109,7 @@ return if(BARRICADE_BSTATE_UNSECURED) - if(HAS_TRAIT(W, TRAIT_TOOL_WRENCH)) // Secure again + if(HAS_TRAIT(item, TRAIT_TOOL_WRENCH)) // Secure again if(user.action_busy) return if(!skillcheck(user, SKILL_CONSTRUCTION, SKILL_CONSTRUCTION_TRAINED)) @@ -123,7 +123,7 @@ build_state = BARRICADE_BSTATE_SECURED update_icon() return - if(HAS_TRAIT(W, TRAIT_TOOL_SCREWDRIVER)) // Disassemble into metal + if(HAS_TRAIT(item, TRAIT_TOOL_SCREWDRIVER)) // Disassemble into metal if(user.action_busy) return if(!skillcheck(user, SKILL_CONSTRUCTION, SKILL_CONSTRUCTION_TRAINED)) @@ -141,7 +141,7 @@ if(BARRICADE_BSTATE_FORTIFIED) if(reinforced) - if(HAS_TRAIT(W, TRAIT_TOOL_CROWBAR)) // Un-reinforce + if(HAS_TRAIT(item, TRAIT_TOOL_CROWBAR)) // Un-reinforce if(user.action_busy) return if(!skillcheck(user, SKILL_CONSTRUCTION, SKILL_CONSTRUCTION_TRAINED)) @@ -155,8 +155,8 @@ reinforce() return else - if(iswelder(W)) // Finish reinforcing - if(!HAS_TRAIT(W, TRAIT_TOOL_BLOWTORCH)) + if(iswelder(item)) // Finish reinforcing + if(!HAS_TRAIT(item, TRAIT_TOOL_BLOWTORCH)) to_chat(user, SPAN_WARNING("You need a stronger blowtorch!")) return if(user.action_busy) @@ -198,3 +198,11 @@ /obj/structure/barricade/handrail/sandstone/b icon_state = "hr_sandstone_b" + +/obj/structure/barricade/handrail/pizza + name = "\improper diner half-wall" + icon_state = "hr_sandstone" //temp, getting sprites soontm + color = "#b51c0b" + can_be_reinforced = FALSE + projectile_coverage = PROJECTILE_COVERAGE_LOW + layer = MOB_LAYER + 0.01 diff --git a/code/game/objects/structures/barricade/metal.dm b/code/game/objects/structures/barricade/metal.dm index 4f250eed50e9..3e79af2e21e1 100644 --- a/code/game/objects/structures/barricade/metal.dm +++ b/code/game/objects/structures/barricade/metal.dm @@ -19,6 +19,8 @@ var/build_state = BARRICADE_BSTATE_SECURED //Look at __game.dm for barricade defines var/upgrade = null + welder_lower_damage_limit = BARRICADE_DMG_HEAVY + /obj/structure/barricade/metal/update_icon() . = ..() if(dir > 2) @@ -42,26 +44,20 @@ if(BARRICADE_UPGRADE_ANTIFF) . += SPAN_NOTICE("The cade is protected by a composite upgrade.") -/obj/structure/barricade/metal/attackby(obj/item/item, mob/user) - if(iswelder(item)) - if(!HAS_TRAIT(item, TRAIT_TOOL_BLOWTORCH)) - to_chat(user, SPAN_WARNING("You need a stronger blowtorch!")) - return - if(user.action_busy) - return - if(!skillcheck(user, SKILL_ENGINEER, SKILL_ENGINEER_TRAINED)) +/obj/structure/barricade/metal/can_weld(obj/item/item, mob/user, silent) + if(!..()) + return FALSE + + if(!skillcheck(user, SKILL_ENGINEER, SKILL_ENGINEER_TRAINED)) + if(!silent) to_chat(user, SPAN_WARNING("You're not trained to repair [src]...")) - return - var/obj/item/tool/weldingtool/welder = item - if(damage_state == BARRICADE_DMG_HEAVY) - to_chat(user, SPAN_WARNING("[src] has sustained too much structural damage to be repaired.")) - return + return FALSE - if(health == maxhealth) - to_chat(user, SPAN_WARNING("[src] doesn't need repairs.")) - return + return TRUE - weld_cade(welder, user) +/obj/structure/barricade/metal/attackby(obj/item/item, mob/user) + if(iswelder(item)) + try_weld_cade(item, user) return if(try_nailgun_usage(item, user)) @@ -204,11 +200,13 @@ to_chat(user, SPAN_WARNING("You are not trained to assemble [src]...")) return playsound(src.loc, 'sound/items/Screwdriver.ogg', 25, 1) - if(!do_after(user, 10, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD, src)) return + if(!do_after(user, 10, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD, src)) + return user.visible_message(SPAN_NOTICE("[user] set [src]'s protection panel back."), SPAN_NOTICE("You set [src]'s protection panel back.")) build_state = BARRICADE_BSTATE_SECURED return + if(HAS_TRAIT(item, TRAIT_TOOL_WRENCH)) if(user.action_busy) return @@ -216,13 +214,15 @@ to_chat(user, SPAN_WARNING("You are not trained to disassemble [src]...")) return playsound(src.loc, 'sound/items/Ratchet.ogg', 25, 1) - if(!do_after(user, 10, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD, src)) return + if(!do_after(user, 10, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD, src)) + return user.visible_message(SPAN_NOTICE("[user] loosens [src]'s anchor bolts."), SPAN_NOTICE("You loosen [src]'s anchor bolts.")) anchored = FALSE build_state = BARRICADE_BSTATE_MOVABLE update_icon() //unanchored changes layer return + if(BARRICADE_BSTATE_MOVABLE) //Anchor bolts loosened step. Apply crowbar to unseat the panel and take apart the whole thing. Apply wrench to resecure anchor bolts if(HAS_TRAIT(item, TRAIT_TOOL_WRENCH)) if(user.action_busy) @@ -239,13 +239,15 @@ to_chat(user, SPAN_WARNING("[src] must be secured on a proper surface!")) return playsound(src.loc, 'sound/items/Ratchet.ogg', 25, 1) - if(!do_after(user, 10, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD, src)) return + if(!do_after(user, 10, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD, src)) + return user.visible_message(SPAN_NOTICE("[user] secures [src]'s anchor bolts."), SPAN_NOTICE("You secure [src]'s anchor bolts.")) build_state = BARRICADE_BSTATE_UNSECURED anchored = TRUE update_icon() //unanchored changes layer return + if(HAS_TRAIT(item, TRAIT_TOOL_CROWBAR)) if(user.action_busy) return @@ -262,7 +264,7 @@ deconstruct(TRUE) //Note : Handles deconstruction too ! return - . = ..() + return ..() /obj/structure/barricade/metal/wired/New() maxhealth += 50 @@ -271,7 +273,7 @@ is_wired = TRUE climbable = FALSE update_icon() - . = ..() + return ..() /obj/structure/barricade/metal/wired/initialize_pass_flags(datum/pass_flags_container/PF) ..() diff --git a/code/game/objects/structures/barricade/misc.dm b/code/game/objects/structures/barricade/misc.dm index 5e0958f974b1..8fcf7cec41ad 100644 --- a/code/game/objects/structures/barricade/misc.dm +++ b/code/game/objects/structures/barricade/misc.dm @@ -44,15 +44,15 @@ user.visible_message(SPAN_NOTICE("\The [user] removes \the [src].")) deconstruct(TRUE) return - else - . = ..() + + return ..() /obj/structure/barricade/snow/hit_barricade(obj/item/I) switch(I.damtype) if("fire") - take_damage( I.force * 0.6 ) + take_damage( I.force * I.demolition_mod * 0.6 ) if("brute") - take_damage( I.force * 0.3 ) + take_damage( I.force * I.demolition_mod * 0.3 ) return @@ -101,11 +101,11 @@ if(try_nailgun_usage(W, user)) return - . = ..() + return ..() /obj/structure/barricade/wooden/hit_barricade(obj/item/I) switch(I.damtype) if("fire") - take_damage( I.force * 1.5 ) + take_damage( I.force * I.demolition_mod * 1.5 ) if("brute") - take_damage( I.force * 0.75 ) + take_damage( I.force * I.demolition_mod * 0.75 ) diff --git a/code/game/objects/structures/barricade/plasteel.dm b/code/game/objects/structures/barricade/plasteel.dm index dd95aa3f1baf..1acedae9997d 100644 --- a/code/game/objects/structures/barricade/plasteel.dm +++ b/code/game/objects/structures/barricade/plasteel.dm @@ -20,12 +20,15 @@ repair_materials = list("plasteel" = 0.3) var/build_state = BARRICADE_BSTATE_SECURED //Look at __game.dm for barricade defines - var/tool_cooldown = 0 //Delay to apply tools to prevent spamming - var/busy = FALSE //Standard busy check + /// Delay to apply tools to prevent spamming + var/tool_cooldown = 0 + /// Standard busy check + var/busy = FALSE var/linked = 0 var/recentlyflipped = FALSE var/hasconnectionoverlay = TRUE var/linkable = TRUE + welder_lower_damage_limit = BARRICADE_DMG_HEAVY /obj/structure/barricade/plasteel/update_icon() ..() @@ -44,7 +47,7 @@ if(!closed) // Closed = gate down for plasteel for some reason return ..() else - return 0 + return FALSE /obj/structure/barricade/plasteel/get_examine_text(mob/user) . = ..() @@ -57,35 +60,28 @@ if(BARRICADE_BSTATE_MOVABLE) . += SPAN_INFO("The protection panel has been removed and the anchor bolts loosened. It's ready to be taken apart.") -/obj/structure/barricade/plasteel/weld_cade(obj/item/W, mob/user) +/obj/structure/barricade/plasteel/try_weld_cade(obj/item/item, mob/user, repeat = TRUE, skip_check = FALSE) busy = TRUE ..() busy = FALSE -/obj/structure/barricade/plasteel/attackby(obj/item/W, mob/user) - if(iswelder(W)) - if(!HAS_TRAIT(W, TRAIT_TOOL_BLOWTORCH)) - to_chat(user, SPAN_WARNING("You need a stronger blowtorch!")) - return - if(busy || tool_cooldown > world.time) - return - tool_cooldown = world.time + 10 - if(!skillcheck(user, SKILL_ENGINEER, SKILL_ENGINEER_TRAINED)) +/obj/structure/barricade/plasteel/can_weld(obj/item/item, mob/user, silent) + if(!..()) + return FALSE + + if(!skillcheck(user, SKILL_ENGINEER, SKILL_ENGINEER_TRAINED)) + if(!silent) to_chat(user, SPAN_WARNING("You're not trained to repair [src]...")) - return - var/obj/item/tool/weldingtool/WT = W - if(damage_state == BARRICADE_DMG_HEAVY) - to_chat(user, SPAN_WARNING("[src] has sustained too much structural damage to be repaired.")) - return + return FALSE - if(health == maxhealth) - to_chat(user, SPAN_WARNING("[src] doesn't need repairs.")) - return + return TRUE - weld_cade(WT, user) +/obj/structure/barricade/plasteel/attackby(obj/item/item, mob/user) + if(iswelder(item)) + try_weld_cade(item, user) return - if(try_nailgun_usage(W, user)) + if(try_nailgun_usage(item, user)) return for(var/obj/effect/xenomorph/acid/A in src.loc) @@ -94,8 +90,8 @@ return switch(build_state) - if(2) //Fully constructed step. Use screwdriver to remove the protection panels to reveal the bolts - if(HAS_TRAIT(W, TRAIT_TOOL_SCREWDRIVER)) + if(BARRICADE_BSTATE_SECURED) //Fully constructed step. Use screwdriver to remove the protection panels to reveal the bolts + if(HAS_TRAIT(item, TRAIT_TOOL_SCREWDRIVER)) if(busy || tool_cooldown > world.time) return tool_cooldown = world.time + 10 @@ -107,13 +103,15 @@ if(B != src && B.dir == dir) to_chat(user, SPAN_WARNING("There's already a barricade here.")) return - if(!do_after(user, 10, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD, src)) return + if(!do_after(user, 10, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD, src)) + return user.visible_message(SPAN_NOTICE("[user] removes [src]'s protection panel."), SPAN_NOTICE("You remove [src]'s protection panels, exposing the anchor bolts.")) playsound(src.loc, 'sound/items/Screwdriver.ogg', 25, 1) build_state = BARRICADE_BSTATE_UNSECURED return - if(HAS_TRAIT(W, TRAIT_TOOL_CROWBAR)) + + if(HAS_TRAIT(item, TRAIT_TOOL_CROWBAR)) if(!skillcheck(user, SKILL_ENGINEER, SKILL_ENGINEER_ENGI)) to_chat(user, SPAN_WARNING("You are not trained to modify [src]...")) return @@ -132,28 +130,32 @@ for(var/obj/structure/barricade/plasteel/cade in get_step(src, direction)) cade.update_icon() update_icon() - if(1) //Protection panel removed step. Screwdriver to put the panel back, wrench to unsecure the anchor bolts - if(HAS_TRAIT(W, TRAIT_TOOL_SCREWDRIVER)) + + if(BARRICADE_BSTATE_UNSECURED) //Protection panel removed step. Screwdriver to put the panel back, wrench to unsecure the anchor bolts + if(HAS_TRAIT(item, TRAIT_TOOL_SCREWDRIVER)) if(busy || tool_cooldown > world.time) return tool_cooldown = world.time + 10 if(!skillcheck(user, SKILL_ENGINEER, SKILL_ENGINEER_ENGI)) to_chat(user, SPAN_WARNING("You are not trained to assemble [src]...")) return - if(!do_after(user, 10, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD, src)) return + if(!do_after(user, 10, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD, src)) + return user.visible_message(SPAN_NOTICE("[user] set [src]'s protection panel back."), SPAN_NOTICE("You set [src]'s protection panel back.")) playsound(src.loc, 'sound/items/Screwdriver.ogg', 25, 1) build_state = BARRICADE_BSTATE_SECURED return - if(HAS_TRAIT(W, TRAIT_TOOL_WRENCH)) + + if(HAS_TRAIT(item, TRAIT_TOOL_WRENCH)) if(busy || tool_cooldown > world.time) return tool_cooldown = world.time + 10 if(!skillcheck(user, SKILL_ENGINEER, SKILL_ENGINEER_ENGI)) to_chat(user, SPAN_WARNING("You are not trained to assemble [src]...")) return - if(!do_after(user, 10, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD, src)) return + if(!do_after(user, 10, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD, src)) + return user.visible_message(SPAN_NOTICE("[user] loosens [src]'s anchor bolts."), SPAN_NOTICE("You loosen [src]'s anchor bolts.")) playsound(src.loc, 'sound/items/Ratchet.ogg', 25, 1) @@ -162,8 +164,8 @@ update_icon() //unanchored changes layer return - if(0) //Anchor bolts loosened step. Apply crowbar to unseat the panel and take apart the whole thing. Apply wrench to rescure anchor bolts - if(HAS_TRAIT(W, TRAIT_TOOL_WRENCH)) + if(BARRICADE_BSTATE_MOVABLE) //Anchor bolts loosened step. Apply crowbar to unseat the panel and take apart the whole thing. Apply wrench to rescure anchor bolts + if(HAS_TRAIT(item, TRAIT_TOOL_WRENCH)) if(busy || tool_cooldown > world.time) return tool_cooldown = world.time + 10 @@ -174,7 +176,8 @@ if(!(istype(T) && T.allow_construction)) to_chat(user, SPAN_WARNING("[src] must be secured on a proper surface!")) return - if(!do_after(user, 10, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD, src)) return + if(!do_after(user, 10, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD, src)) + return user.visible_message(SPAN_NOTICE("[user] secures [src]'s anchor bolts."), SPAN_NOTICE("You secure [src]'s anchor bolts.")) playsound(src.loc, 'sound/items/Ratchet.ogg', 25, 1) @@ -182,7 +185,8 @@ build_state = BARRICADE_BSTATE_UNSECURED update_icon() //unanchored changes layer return - if(HAS_TRAIT(W, TRAIT_TOOL_CROWBAR)) + + if(HAS_TRAIT(item, TRAIT_TOOL_CROWBAR)) if(busy || tool_cooldown > world.time) return tool_cooldown = world.time + 10 @@ -194,15 +198,14 @@ playsound(src.loc, 'sound/items/Crowbar.ogg', 25, 1) busy = TRUE if(do_after(user, 50 * user.get_skill_duration_multiplier(SKILL_CONSTRUCTION), INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD, src)) - busy = FALSE user.visible_message(SPAN_NOTICE("[user] takes [src]'s panels apart."), SPAN_NOTICE("You take [src]'s panels apart.")) playsound(loc, 'sound/items/Deconstruct.ogg', 25, 1) deconstruct(TRUE) //Note : Handles deconstruction too ! - else busy = FALSE + busy = FALSE return - . = ..() + return ..() /obj/structure/barricade/plasteel/attack_hand(mob/user as mob) if(isxeno(user)) @@ -264,7 +267,7 @@ is_wired = TRUE climbable = FALSE update_icon() - . = ..() + return ..() /obj/structure/barricade/plasteel/wired/initialize_pass_flags(datum/pass_flags_container/PF) ..() diff --git a/code/game/objects/structures/bedsheet_bin.dm b/code/game/objects/structures/bedsheet_bin.dm index a4666c633aae..ed18c28de6f7 100644 --- a/code/game/objects/structures/bedsheet_bin.dm +++ b/code/game/objects/structures/bedsheet_bin.dm @@ -128,8 +128,8 @@ LINEN BINS amount-- var/obj/item/bedsheet/B - if(sheets.len > 0) - B = sheets[sheets.len] + if(length(sheets) > 0) + B = sheets[length(sheets)] sheets.Remove(B) else diff --git a/code/game/objects/structures/blocker.dm b/code/game/objects/structures/blocker.dm index f85b1e65fff5..aa438aafac64 100644 --- a/code/game/objects/structures/blocker.dm +++ b/code/game/objects/structures/blocker.dm @@ -125,3 +125,13 @@ icon_state = "purple_line" visible = TRUE + +/obj/structure/blocker/forcefield/human/bulletproof/get_projectile_hit_boolean() + return TRUE + +// for fuel pump since it's a large sprite. +/obj/structure/blocker/fuelpump + name = "\improper Fuel Pump" + desc = "It is a machine that pumps fuel around the ship." + invisibility = 101 + mouse_opacity = MOUSE_OPACITY_TRANSPARENT diff --git a/code/game/objects/structures/bookcase.dm b/code/game/objects/structures/bookcase.dm index ce338de47b35..56b69e4a32a4 100644 --- a/code/game/objects/structures/bookcase.dm +++ b/code/game/objects/structures/bookcase.dm @@ -7,6 +7,24 @@ density = TRUE opacity = TRUE +/obj/structure/bookcase/deconstruct(disassembled) + new /obj/item/stack/sheet/metal(loc) + return ..() + +/obj/structure/bookcase/attack_alien(mob/living/carbon/xenomorph/xeno) + if(xeno.a_intent == INTENT_HARM) + if(unslashable) + return + xeno.animation_attack_on(src) + playsound(loc, 'sound/effects/metalhit.ogg', 25, 1) + xeno.visible_message(SPAN_DANGER("[xeno] slices [src] apart!"), + SPAN_DANGER("We slice [src] apart!"), null, 5, CHAT_TYPE_XENO_COMBAT) + deconstruct(FALSE) + return XENO_ATTACK_ACTION + else + attack_hand(xeno) + return XENO_NONCOMBAT_ACTION + /obj/structure/bookcase/Initialize() . = ..() for(var/obj/item/I in loc) @@ -20,20 +38,26 @@ O.forceMove(src) update_icon() else if(HAS_TRAIT(O, TRAIT_TOOL_PEN)) - var/newname = stripped_input(usr, "What would you like to title this bookshelf?") + var/newname = stripped_input(user, "What would you like to title this bookshelf?") if(!newname) return else name = ("bookcase ([strip_html(newname)])") playsound(src, "paper_writing", 15, TRUE) + else if(HAS_TRAIT(O, TRAIT_TOOL_WRENCH)) + playsound(loc, 'sound/items/Ratchet.ogg', 25, 1) + if(do_after(user, 1 SECONDS, INTERRUPT_MOVED, BUSY_ICON_FRIENDLY, src)) + user.visible_message("[user] deconstructs [src].", \ + "You deconstruct [src].", "You hear a noise.") + deconstruct(FALSE) else ..() /obj/structure/bookcase/attack_hand(mob/user as mob) - if(contents.len) + if(length(contents)) var/obj/item/book/choice = input("Which book would you like to remove from the shelf?") as null|obj in contents if(choice) - if(usr.is_mob_incapacitated() || !in_range(loc, usr)) + if(user.is_mob_incapacitated() || !in_range(loc, user)) return if(ishuman(user)) if(!user.get_active_hand()) @@ -60,18 +84,17 @@ return /obj/structure/bookcase/update_icon() - if(contents.len < 5) - icon_state = "book-[contents.len]" + if(length(contents) < 5) + icon_state = "book-[length(contents)]" else icon_state = "book-5" /obj/structure/bookcase/manuals/medical - name = "Medical Manuals bookcase" + name = "medical manuals bookcase" /obj/structure/bookcase/manuals/medical/Initialize() . = ..() - new /obj/item/book/manual/medical_cloning(src) new /obj/item/book/manual/medical_diagnostics_manual(src) new /obj/item/book/manual/medical_diagnostics_manual(src) new /obj/item/book/manual/medical_diagnostics_manual(src) @@ -79,21 +102,19 @@ /obj/structure/bookcase/manuals/engineering - name = "Engineering Manuals bookcase" + name = "engineering manuals bookcase" /obj/structure/bookcase/manuals/engineering/Initialize() . = ..() new /obj/item/book/manual/engineering_construction(src) - new /obj/item/book/manual/engineering_particle_accelerator(src) new /obj/item/book/manual/engineering_hacking(src) new /obj/item/book/manual/engineering_guide(src) new /obj/item/book/manual/atmospipes(src) - new /obj/item/book/manual/engineering_singularity_safety(src) new /obj/item/book/manual/evaguide(src) update_icon() /obj/structure/bookcase/manuals/research_and_development - name = "R&D Manuals bookcase" + name = "\improper R&D manuals bookcase" /obj/structure/bookcase/manuals/research_and_development/Initialize() . = ..() diff --git a/code/game/objects/structures/cargo_container.dm b/code/game/objects/structures/cargo_container.dm index b5c38874cfb8..66d0cc8c18e0 100644 --- a/code/game/objects/structures/cargo_container.dm +++ b/code/game/objects/structures/cargo_container.dm @@ -11,7 +11,7 @@ //Note, for Watatsumi, Grant, and Arious, "left" and "leftmid" are both the left end of the container, but "left" is generic and "leftmid" has the Sat Mover mark on it /obj/structure/cargo_container/watatsumi name = "Watatsumi Cargo Container" - desc = "A huge industrial shipping container.\nThis one is from Watatsumi, a manufacturer of a variety of electronical and mechanical products.\nAtleast, that is what is says on the container. You have literally never heard of this company before." + desc = "A huge industrial shipping container.\nThis one is from Watatsumi, a manufacturer of a variety of electronical and mechanical products.\nAt least, that is what is says on the container. You have literally never heard of this company before." /obj/structure/cargo_container/watatsumi/left icon_state = "watatsumi_l" diff --git a/code/game/objects/structures/crates_lockers/closets.dm b/code/game/objects/structures/crates_lockers/closets.dm index fa87cd6b2b71..93fe78e63d98 100644 --- a/code/game/objects/structures/crates_lockers/closets.dm +++ b/code/game/objects/structures/crates_lockers/closets.dm @@ -127,7 +127,7 @@ var/obj/item/explosive/plastic/P = I if(P.active) continue - var/item_size = Ceiling(I.w_class / 2) + var/item_size = ceil(I.w_class / 2) if(stored_units + item_size > storage_capacity) continue if(!I.anchored) @@ -244,8 +244,6 @@ user.visible_message(SPAN_NOTICE("[user] has pried apart [src] with [W]."), "You pry apart [src].") qdel(src) return - if(isrobot(user)) - return user.drop_inv_item_to_loc(W,loc) else if(istype(W, /obj/item/packageWrap) || istype(W, /obj/item/explosive/plastic)) diff --git a/code/game/objects/structures/crates_lockers/closets/coffin.dm b/code/game/objects/structures/crates_lockers/closets/coffin.dm index 41c27ae47519..c1c0839fa6f5 100644 --- a/code/game/objects/structures/crates_lockers/closets/coffin.dm +++ b/code/game/objects/structures/crates_lockers/closets/coffin.dm @@ -14,6 +14,13 @@ else icon_state = icon_opened +/obj/structure/closet/coffin/uscm + name = "\improper USCM coffin" + desc = "A burial receptacle for dearly departed Marines, adorned in red and finished with the Corps' emblem on the interior. Semper fi." + icon_state = "uscm_coffin" + icon_closed = "uscm_coffin" + icon_opened = "uscm_coffin_open" + /obj/structure/closet/coffin/predator name = "strange coffin" desc = "It's a burial receptacle for the dearly departed. Seems to have weird markings on the side..?" diff --git a/code/game/objects/structures/crates_lockers/closets/fireaxe.dm b/code/game/objects/structures/crates_lockers/closets/fireaxe.dm index ab9dade9ed3e..113d17f30dce 100644 --- a/code/game/objects/structures/crates_lockers/closets/fireaxe.dm +++ b/code/game/objects/structures/crates_lockers/closets/fireaxe.dm @@ -21,7 +21,7 @@ if(fireaxe) hasaxe = 1 - if (isrobot(usr) || src.locked) + if (src.locked) if(HAS_TRAIT(O, TRAIT_TOOL_MULTITOOL)) to_chat(user, SPAN_DANGER("Resetting circuitry...")) playsound(user, 'sound/machines/lockreset.ogg', 25, 1) @@ -140,7 +140,7 @@ set name = "Open/Close" set category = "Object" - if (isrobot(usr) || src.locked || src.smashed) + if (src.locked || src.smashed) if(src.locked) to_chat(usr, SPAN_DANGER("The cabinet won't budge!")) else if(src.smashed) @@ -154,9 +154,6 @@ set name = "Remove Fire Axe" set category = "Object" - if (isrobot(usr)) - return - if (istype(usr, /mob/living/carbon/xenomorph)) return 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 1edac3a8f324..baa9e9bd8cc9 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 @@ -106,7 +106,7 @@ GLOBAL_LIST_EMPTY(co_secure_boxes) new /obj/item/clothing/shoes/marine(src) new /obj/item/storage/belt/gun/m4a3(src) new /obj/item/storage/backpack/marine/satchel/intel(src) - new /obj/item/clothing/suit/storage/marine/rto/intel(src) + new /obj/item/clothing/suit/storage/marine/medium/rto/intel(src) new /obj/item/storage/pouch/document(src) new /obj/item/storage/pouch/document(src) new /obj/item/device/motiondetector/intel(src) @@ -170,7 +170,7 @@ GLOBAL_LIST_EMPTY(co_secure_boxes) new /obj/item/weapon/gun/energy/taser(src) new /obj/item/weapon/baton(src) new /obj/item/device/flash(src) - new /obj/item/handcuffs(src) + new /obj/item/restraint/handcuffs(src) new /obj/item/reagent_container/spray/pepper(src) new /obj/item/storage/pouch/general/medium(src) if(prob(50)) @@ -180,7 +180,7 @@ GLOBAL_LIST_EMPTY(co_secure_boxes) /obj/structure/closet/secure_closet/warrant_officer name = "chief MP's locker" - req_access = list(ACCESS_MARINE_BRIG) + req_access = list(ACCESS_MARINE_ARMORY) icon_state = "secure_locked_warrant" icon_closed = "secure_unlocked_warrant" icon_locked = "secure_locked_warrant" @@ -205,7 +205,7 @@ GLOBAL_LIST_EMPTY(co_secure_boxes) new /obj/item/storage/backpack/satchel/sec(src) new /obj/item/device/flash(src) new /obj/item/reagent_container/spray/pepper(src) - new /obj/item/handcuffs(src) + new /obj/item/restraint/handcuffs(src) new /obj/item/storage/pouch/general/large(src) /obj/structure/closet/secure_closet/military_officer_spare @@ -254,6 +254,7 @@ GLOBAL_LIST_EMPTY(co_secure_boxes) new /obj/item/storage/belt/medical/full(src) new /obj/item/clothing/under/rank/medical/green(src) new /obj/item/clothing/under/rank/medical/blue(src) + new /obj/item/clothing/under/rank/medical/lightblue(src) new /obj/item/clothing/under/rank/medical/purple(src) new /obj/item/clothing/mask/surgical(src) new /obj/item/clothing/head/surgery/green(src) diff --git a/code/game/objects/structures/crates_lockers/closets/secure/freezer.dm b/code/game/objects/structures/crates_lockers/closets/secure/freezer.dm index 323ff50fd63b..f42db78dcf39 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/freezer.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/freezer.dm @@ -152,8 +152,14 @@ return cooldown = 5 var/containers = 0 + var/containers_ready = FALSE for(var/obj/item/reagent_container/glass/I in freezer.contents) if(I.reagents.replace_with(polymerization_recipe, "paraformaldehyde", 3)) containers++ + if(!I.reagents.has_reagent("formaldehyde", 3) || !I.reagents.has_reagent("water", 3)) + containers_ready = TRUE if(containers > 3) break + + if(containers_ready) //at least 1 container has finished, ring the bell + playsound(freezer.loc, 'sound/machines/ding.ogg', 150) 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 4244fd82881e..4f7b14d64092 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/medical.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/medical.dm @@ -93,6 +93,7 @@ new /obj/item/clothing/gloves/latex(src) new /obj/item/clothing/under/rank/medical/green(src) new /obj/item/clothing/under/rank/medical/blue(src) + new /obj/item/clothing/under/rank/medical/lightblue(src) new /obj/item/clothing/under/rank/medical/purple(src) new /obj/item/clothing/head/surgery/green(src) new /obj/item/clothing/head/surgery/blue(src) @@ -106,8 +107,6 @@ new /obj/item/storage/pouch/medical(src) new /obj/item/storage/pouch/syringe(src) new /obj/item/storage/pouch/medkit(src) - if(is_mainship_level(z)) - new /obj/item/device/radio/headset/almayer/cmo(src) return /obj/structure/closet/secure_closet/chemical name = "chemical closet" @@ -170,3 +169,61 @@ . = ..() new /obj/item/storage/surgical_tray(src) new /obj/item/roller/surgical(src) + +/obj/structure/closet/secure_closet/professor_dummy + name = "professor dummy cabinet" + desc = "An ultrasafe cabinet containing Professor DUMMY and its tablet. Only accessible by Chief Medical Officers and Senior Listed Advisors." + icon_state = "surgical_wall_locked" + icon_closed = "surgical_wall_unlocked" + icon_locked = "surgical_wall_locked" + icon_opened = "surgical_wall_open" + icon_broken = "surgical_wall_spark" + health = null // Unbreakable + unacidable = TRUE + unslashable = TRUE + store_mobs = TRUE + wall_mounted = TRUE + +/obj/structure/closet/secure_closet/professor_dummy/Initialize() + . = ..() + new /mob/living/carbon/human/professor_dummy(src) + +/obj/structure/closet/secure_closet/professor_dummy/togglelock(mob/living/user) + if(user.job == JOB_CMO || user.job == JOB_SEA) + return ..() + + to_chat(user, SPAN_WARNING("Only the [JOB_CMO] or the [JOB_SEA] can toggle this lock.")) + +/obj/structure/closet/secure_closet/professor_dummy/dump_contents() + if(locate(/mob/living/carbon/human/professor_dummy) in src) + visible_message(SPAN_HIGHDANGER("Professor DUMMY should only be used for teaching medical personnel, exclusively done by the [JOB_CMO] or the [JOB_SEA]. Do not abuse it.")) + return ..() + +/obj/structure/closet/secure_closet/professor_dummy/close() + for(var/mob/mob in loc) + if(!istype(mob, /mob/living/carbon/human/professor_dummy)) + visible_message(SPAN_WARNING("[src] won't budge!")) + return + ..() + + // Force locking upon closing it + locked = TRUE + update_icon() + +/obj/structure/closet/secure_closet/professor_dummy/flashbang(datum/source, obj/item/explosive/grenade/flashbang/FB) + return + +/obj/structure/closet/secure_closet/professor_dummy/proc/check_and_destroy_dummy() + var/mob/dummy = locate(/mob/living/carbon/human/professor_dummy) in src + if(dummy) + visible_message(SPAN_DANGER("Something in [src] blows apart!")) + playsound(src, 'sound/effects/metal_crash.ogg', 25, 1) + qdel(dummy) + +/obj/structure/closet/secure_closet/professor_dummy/emp_act(severity) + check_and_destroy_dummy() + ..() + +/obj/structure/closet/secure_closet/professor_dummy/ex_act(severity) + check_and_destroy_dummy() + ..() diff --git a/code/game/objects/structures/crates_lockers/closets/secure/secure_closets.dm b/code/game/objects/structures/crates_lockers/closets/secure/secure_closets.dm index ba974a8e722a..6391eeefb498 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/secure_closets.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/secure_closets.dm @@ -45,37 +45,37 @@ src.req_access += pick(get_access(ACCESS_LIST_MARINE_MAIN)) /obj/structure/closet/secure_closet/proc/togglelock(mob/living/user) - if(src.opened) + if(opened) to_chat(user, SPAN_NOTICE("Close the locker first.")) return - if(src.broken) + if(broken) to_chat(user, SPAN_WARNING("The locker appears to be broken.")) return if(user.loc == src) to_chat(user, SPAN_NOTICE("You can't reach the lock from inside.")) return - if(src.allowed(user)) + if(allowed(user)) if(slotlocked && ishuman(user)) - var/mob/living/carbon/human/H = user - if(H.wear_id) - var/obj/item/card/id/I = H.wear_id - if(I.claimedgear) + var/mob/living/carbon/human/human = user + var/obj/item/card/id/card = human.get_idcard() + if(card) + if(card.claimedgear) return switch(slotlocktype) if("engi") - if(H.job != "Squad Combat Technician") + if(human.job != "Squad Combat Technician") return // stop people giving medics engineer prep access or IDs somehow if("medic") - if(H.job != "Squad Hospital Corpsman") + if(human.job != "Squad Hospital Corpsman") return // same here - I.claimedgear = 1 // you only get one locker, all other roles have this set 1 by default - slotlocked = 0 // now permanently unlockable + card.claimedgear = TRUE // you only get one locker, all other roles have this set 1 by default + slotlocked = FALSE // now permanently unlockable else return // they have no ID on, fuck them. - src.locked = !src.locked - for(var/mob/O in viewers(user, 3)) - if((O.client && !( O.blinded ))) - to_chat(O, SPAN_NOTICE("The locker has been [locked ? null : "un"]locked by [user].")) + locked = !locked + for(var/mob/mob in viewers(user, 3)) + if((mob.client && !( mob.blinded ))) + to_chat(mob, SPAN_NOTICE("The locker has been [locked ? null : "un"]locked by [user].")) update_icon() else to_chat(user, SPAN_NOTICE("Access Denied")) @@ -90,7 +90,7 @@ else to_chat(user, SPAN_NOTICE("The locker is too small to stuff [W:affecting] into!")) return - if(isrobot(user) || iszombie(user)) + if(iszombie(user)) return user.drop_inv_item_to_loc(W, loc) else if(istype(W, /obj/item/packageWrap) || istype(W, /obj/item/explosive/plastic)) 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 9557013268bf..c668f299db73 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/security.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/security.dm @@ -196,6 +196,59 @@ locked = TRUE var/id = null +/obj/structure/closet/secure_closet/brig/prisoner + +/obj/structure/closet/secure_closet/brig/prisoner/Initialize() + . = ..() + new /obj/item/clothing/under/color/orange(src) + new /obj/item/clothing/shoes/orange(src) + new /obj/item/device/radio/headset(src) + +/obj/structure/closet/secure_closet/brig/prison_uni + name = "Spare Prison Uniforms" + req_one_access = list(ACCESS_MARINE_BRIG, ACCESS_CIVILIAN_BRIG) + anchored = TRUE + locked = TRUE + + +/obj/structure/closet/secure_closet/brig/prison_uni/Initialize() + . = ..() + new /obj/item/clothing/shoes/orange(src) + new /obj/item/clothing/shoes/orange(src) + new /obj/item/clothing/shoes/orange(src) + new /obj/item/clothing/shoes/orange(src) + new /obj/item/clothing/shoes/orange(src) + new /obj/item/clothing/under/color/orange(src) + new /obj/item/clothing/under/color/orange(src) + new /obj/item/clothing/under/color/orange(src) + new /obj/item/clothing/under/color/orange(src) + new /obj/item/clothing/under/color/orange(src) + new /obj/item/device/radio/headset(src) + new /obj/item/device/radio/headset(src) + new /obj/item/device/radio/headset(src) + new /obj/item/device/radio/headset(src) + new /obj/item/device/radio/headset(src) + +/obj/structure/closet/secure_closet/brig/restraints + name = "Spare Restraints" + req_one_access = list(ACCESS_MARINE_BRIG, ACCESS_CIVILIAN_BRIG) + anchored = TRUE + locked = TRUE + + +/obj/structure/closet/secure_closet/brig/restraints/Initialize() + . = ..() + new /obj/item/clothing/suit/straight_jacket(src) + new /obj/item/clothing/suit/straight_jacket(src) + new /obj/item/clothing/suit/straight_jacket(src) + new /obj/item/clothing/suit/straight_jacket(src) + new /obj/item/clothing/suit/straight_jacket(src) + new /obj/item/clothing/glasses/sunglasses/blindfold(src) + new /obj/item/clothing/glasses/sunglasses/blindfold(src) + new /obj/item/clothing/glasses/sunglasses/blindfold(src) + new /obj/item/clothing/glasses/sunglasses/blindfold(src) + new /obj/item/clothing/glasses/sunglasses/blindfold(src) + /obj/structure/closet/secure_closet/brig/Initialize() . = ..() new /obj/item/clothing/under/color/orange(src) diff --git a/code/game/objects/structures/crates_lockers/closets/wardrobe.dm b/code/game/objects/structures/crates_lockers/closets/wardrobe.dm index daecf1906c21..eddc0690233c 100644 --- a/code/game/objects/structures/crates_lockers/closets/wardrobe.dm +++ b/code/game/objects/structures/crates_lockers/closets/wardrobe.dm @@ -297,6 +297,7 @@ new /obj/item/clothing/under/rank/medical(src) new /obj/item/clothing/under/rank/medical(src) new /obj/item/clothing/under/rank/medical/blue(src) + new /obj/item/clothing/under/rank/medical/lightblue(src) new /obj/item/clothing/under/rank/medical/green(src) new /obj/item/clothing/under/rank/medical/purple(src) new /obj/item/clothing/shoes/white(src) diff --git a/code/game/objects/structures/crates_lockers/crates.dm b/code/game/objects/structures/crates_lockers/crates.dm index 119615ab7aed..d891119a8404 100644 --- a/code/game/objects/structures/crates_lockers/crates.dm +++ b/code/game/objects/structures/crates_lockers/crates.dm @@ -101,8 +101,6 @@ /obj/structure/closet/crate/attackby(obj/item/W as obj, mob/user as mob) if(W.flags_item & ITEM_ABSTRACT) return if(opened) - if(isrobot(user)) - return user.drop_inv_item_to_loc(W, loc) else if(istype(W, /obj/item/packageWrap) || istype(W, /obj/item/stack/fulton)) return @@ -337,7 +335,7 @@ icon_closed = "closed_supply" /obj/structure/closet/crate/trashcart - name = "\improper trash cart" + name = "trash cart" desc = "A heavy, metal trashcart with wheels." icon_state = "closed_trashcart" icon_opened = "open_trashcart" @@ -439,4 +437,3 @@ density = TRUE icon_opened = "open_mcart_y" icon_closed = "closed_mcart_y" - diff --git a/code/game/objects/structures/crates_lockers/largecrate.dm b/code/game/objects/structures/crates_lockers/largecrate.dm index f1b58e6f657b..5620f106b560 100644 --- a/code/game/objects/structures/crates_lockers/largecrate.dm +++ b/code/game/objects/structures/crates_lockers/largecrate.dm @@ -22,32 +22,18 @@ playsound(src, unpacking_sound, 35) - /// Store the reference of the crate material - var/obj/item/stack/sheet/material_sheet - if(parts_type) // Create the crate material and store its reference - material_sheet = new parts_type(current_turf, 2) - - // Move the objects back to the turf, above the crate material + // Move the contents back to the turf for(var/atom/movable/moving_atom as anything in contents) moving_atom.forceMove(current_turf) - deconstruct(TRUE) - - // Move the crate material to the bottom of the turf's contents - if(material_sheet) - move_to_bottom(material_sheet, current_turf) + if(parts_type) // Create the crate material + new parts_type(current_turf, 2) -/// Custom proc to move an object to the bottom of the turf's contents -/obj/structure/largecrate/proc/move_to_bottom(obj/moving_down, turf/current_turf) - if(!istype(moving_down) || !istype(current_turf)) - return - for(var/atom/movable/checking_atom in current_turf.contents) - if(checking_atom != moving_down) - checking_atom.layer = max(checking_atom.layer, moving_down.layer + 0.1) + deconstruct(TRUE) /obj/structure/largecrate/deconstruct(disassembled = TRUE) if(!disassembled) - new /obj/item/stack/sheet/wood(loc) + new parts_type(loc) return ..() @@ -251,8 +237,80 @@ name = "blue barrel" desc = "A blue storage barrel." icon_state = "barrel_blue" + var/strap_overlay = "+straps" parts_type = /obj/item/stack/sheet/metal unpacking_sound = 'sound/effects/metalhit.ogg' + var/straps = FALSE + +/obj/structure/largecrate/random/barrel/true_random + name = "barrel" + desc = "A barrel." + icon_state = "barrel_recolorable" + desc_lore = "From the future." + var/cap_doodad_state = "" + var/center_doodad_state = "" + var/color_override = null + + +GLOBAL_LIST_EMPTY(rbarrel_cap_states) // Will be set up in generate_barrel_states +GLOBAL_LIST_INIT(rbarrel_center_states, generate_barrel_states()) +GLOBAL_LIST_INIT(rbarrel_color_list, list(COLOR_SILVER, + COLOR_FLOORTILE_GRAY, + COLOR_MAROON, + COLOR_SOFT_RED, + COLOR_LIGHT_GRAYISH_RED, + COLOR_VERY_SOFT_YELLOW, + COLOR_OLIVE, + COLOR_DARK_MODERATE_LIME_GREEN, + COLOR_TEAL, + COLOR_MODERATE_BLUE, + COLOR_PURPLE, + COLOR_STRONG_VIOLET, + LIGHT_BEIGE, + COLOR_DARK_MODERATE_ORANGE, + COLOR_BROWN, + COLOR_DARK_BROWN)) + +/proc/generate_barrel_states() + var/list/rbarrel_center_states = list() + var/icon/icon = new('icons/obj/structures/crates.dmi') + var/list/icon_list = icon_states(icon) + for(var/state in icon_list) + if(findtext(state,"+cap")) + GLOB.rbarrel_cap_states.Add(state) + if(findtext(state,"+center")) + rbarrel_center_states.Add(state) + // We are returning rbarrel_center_states (rather than setting GLOB) because we are called by the global initializer to set it + return rbarrel_center_states + +/obj/structure/largecrate/random/barrel/true_random/Initialize() + . = ..() + + var/image/center_coloring = image(icon, src,"+_center") + + if(!color_override) + center_coloring.color = pick(GLOB.rbarrel_color_list) + + center_coloring.appearance_flags = RESET_COLOR|KEEP_APART + overlays += center_coloring + if(prob(25)) + cap_doodad_state = pick(GLOB.rbarrel_cap_states) + overlays += image(icon,src,cap_doodad_state) + if(prob(50)) + center_doodad_state = pick(GLOB.rbarrel_center_states) + overlays += image(icon,src,center_doodad_state) + +/obj/structure/largecrate/random/barrel/Initialize() + . = ..() + if(overlays) + overlays.Cut() + if(straps) + overlays += image(icon,icon_state = "+straps") + +/obj/structure/largecrate/random/barrel/unpack() + if(overlays) + overlays.Cut() + . = ..() /obj/structure/largecrate/random/barrel/blue name = "blue barrel" @@ -263,6 +321,7 @@ name = "red barrel" desc = "A red storage barrel." icon_state = "barrel_red" + straps = TRUE//the original sprite had straps, anyway, this is a harmless instance /obj/structure/largecrate/random/barrel/green name = "green barrel" diff --git a/code/game/objects/structures/crates_lockers/largecrate_supplies.dm b/code/game/objects/structures/crates_lockers/largecrate_supplies.dm index 9ff84376a762..28f5f5cb3b81 100644 --- a/code/game/objects/structures/crates_lockers/largecrate_supplies.dm +++ b/code/game/objects/structures/crates_lockers/largecrate_supplies.dm @@ -10,7 +10,7 @@ var/list/T = list() for(var/turf/open/O in range(1)) T += O - if(supply.len) + if(length(supply)) for(var/s in supply) var/amount = supply[s] for(var/i = 1, i <= amount, i++) @@ -92,7 +92,7 @@ /obj/structure/largecrate/supply/Initialize() . = ..() - if(supplies.len) + if(length(supplies)) for(var/s in supplies) var/amount = supplies[s] for(var/i = 1, i <= amount, i++) diff --git a/code/game/objects/structures/displaycase.dm b/code/game/objects/structures/displaycase.dm index 8439a887e57f..bfc9bfa7833e 100644 --- a/code/game/objects/structures/displaycase.dm +++ b/code/game/objects/structures/displaycase.dm @@ -57,7 +57,7 @@ /obj/structure/displaycase/attackby(obj/item/W as obj, mob/user as mob) - src.health -= W.force + src.health -= W.force * W.demolition_mod src.healthcheck() ..() return diff --git a/code/game/objects/structures/extinguisher.dm b/code/game/objects/structures/extinguisher.dm index e4ee4a1b662b..e754478dda0b 100644 --- a/code/game/objects/structures/extinguisher.dm +++ b/code/game/objects/structures/extinguisher.dm @@ -24,8 +24,6 @@ icon_state = "extinguisher_alt" /obj/structure/extinguisher_cabinet/attackby(obj/item/item, mob/user) - if(isrobot(user)) - return if(istype(item, /obj/item/tool/extinguisher)) if(!has_extinguisher && opened) user.drop_held_item() @@ -40,9 +38,6 @@ /obj/structure/extinguisher_cabinet/attack_hand(mob/user) - if(isrobot(user)) - return - if(has_extinguisher) user.put_in_hands(has_extinguisher) to_chat(user, SPAN_NOTICE("You take [has_extinguisher] from [src].")) diff --git a/code/game/objects/structures/fence.dm b/code/game/objects/structures/fence.dm index db24dfdfebdd..7c602c34380f 100644 --- a/code/game/objects/structures/fence.dm +++ b/code/game/objects/structures/fence.dm @@ -3,6 +3,7 @@ desc = "A large metal mesh strewn between two poles. Intended as a cheap way to separate areas, while allowing one to see through it." icon = 'icons/obj/structures/props/fence.dmi' icon_state = "fence0" + throwpass = TRUE density = TRUE anchored = TRUE layer = WINDOW_LAYER @@ -170,9 +171,9 @@ else switch(W.damtype) if("fire") - health -= W.force + health -= W.force * W.demolition_mod if("brute") - health -= W.force * 0.1 + health -= W.force * W.demolition_mod * 0.1 healthcheck(1, 1, user, W) ..() @@ -230,6 +231,6 @@ /obj/structure/fence/fire_act(exposed_temperature, exposed_volume) if(exposed_temperature > T0C + 800) - health -= round(exposed_volume / 100) + health -= floor(exposed_volume / 100) healthcheck(0) //Don't make hit sounds, it's dumb with fire/heat ..() diff --git a/code/game/objects/structures/girders.dm b/code/game/objects/structures/girders.dm index 6cd6a5cd0300..01e0e1b717cc 100644 --- a/code/game/objects/structures/girders.dm +++ b/code/game/objects/structures/girders.dm @@ -332,7 +332,7 @@ if(P.ammo.damage_type == BURN) dmg = P.damage else - dmg = round(P.damage * 0.5) + dmg = floor(P.damage * 0.5) if(dmg) health -= dmg take_damage(dmg) diff --git a/code/game/objects/structures/grille.dm b/code/game/objects/structures/grille.dm index 063f6a337290..31d7ee5c9b44 100644 --- a/code/game/objects/structures/grille.dm +++ b/code/game/objects/structures/grille.dm @@ -112,7 +112,7 @@ if(Proj.ammo.damage_type == HALLOSS) return 0 - src.health -= round(Proj.damage*0.3) + src.health -= floor(Proj.damage*0.3) healthcheck() return 1 diff --git a/code/game/objects/structures/inflatable.dm b/code/game/objects/structures/inflatable.dm index c67c7381f723..b3a330ca36b0 100644 --- a/code/game/objects/structures/inflatable.dm +++ b/code/game/objects/structures/inflatable.dm @@ -179,9 +179,6 @@ /obj/structure/inflatable/door/attack_remote(mob/user as mob) //those aren't machinery, they're just big fucking slabs of a mineral if(isRemoteControlling(user)) //so the AI can't open it return - else if(isrobot(user)) //but cyborgs can - if(get_dist(user,src) <= 1) //not remotely though - return TryToSwitchState(user) /obj/structure/inflatable/door/attack_hand(mob/user as mob) return TryToSwitchState(user) diff --git a/code/game/objects/structures/ladders.dm b/code/game/objects/structures/ladders.dm index da6d4f1a8254..88321053ef4a 100644 --- a/code/game/objects/structures/ladders.dm +++ b/code/game/objects/structures/ladders.dm @@ -178,9 +178,6 @@ add_fingerprint(usr) -/obj/structure/ladder/attack_robot(mob/user as mob) - return attack_hand(user) - /obj/structure/ladder/ex_act(severity) return @@ -262,11 +259,8 @@ /obj/structure/ladder/fragile_almayer/Initialize() . = ..() - GLOB.hijack_bustable_ladders += src - -/obj/structure/ladder/fragile_almayer/Destroy() - GLOB.hijack_bustable_ladders -= src - return ..() + if(is_mainship_level(z)) + RegisterSignal(SSdcs, COMSIG_GLOB_HIJACK_IMPACTED, PROC_REF(deconstruct)) /obj/structure/ladder/fragile_almayer/deconstruct() new /obj/structure/prop/broken_ladder(loc) diff --git a/code/game/objects/structures/lamarr_cage.dm b/code/game/objects/structures/lamarr_cage.dm index fbae7a387a63..3708b15b25e6 100644 --- a/code/game/objects/structures/lamarr_cage.dm +++ b/code/game/objects/structures/lamarr_cage.dm @@ -53,8 +53,8 @@ /obj/structure/lamarr/attackby(obj/item/W as obj, mob/user as mob) - src.health -= W.force - src.healthcheck() + health -= W.force * W.demolition_mod + healthcheck() ..() return diff --git a/code/game/objects/structures/mineral_doors.dm b/code/game/objects/structures/mineral_doors.dm index 21d66efce270..0fd22361c67b 100644 --- a/code/game/objects/structures/mineral_doors.dm +++ b/code/game/objects/structures/mineral_doors.dm @@ -32,9 +32,6 @@ /obj/structure/mineral_door/attack_remote(mob/user as mob) //those aren't machinery, they're just big fucking slabs of a mineral if(isRemoteControlling(user)) //so the AI can't open it return - else if(isrobot(user)) //but cyborgs can - if(get_dist(user,src) <= 1) //not remotely though - return TryToSwitchState(user) /obj/structure/mineral_door/attack_hand(mob/user as mob) return TryToSwitchState(user) @@ -105,7 +102,7 @@ Dismantle() else if(!(W.flags_item & NOBLUDGEON) && W.force) user.animation_attack_on(src) - hardness -= W.force/100 + hardness -= W.force/100 * W.demolition_mod to_chat(user, "You hit the [name] with your [W.name]!") CheckHardness() else diff --git a/code/game/objects/structures/mirror.dm b/code/game/objects/structures/mirror.dm index a8d76843313a..0ee7453782d9 100644 --- a/code/game/objects/structures/mirror.dm +++ b/code/game/objects/structures/mirror.dm @@ -121,10 +121,10 @@ playsound(loc, 'sound/effects/Glasshit.ogg', 25, 1) return if(shattered) - playsound(src.loc, 'sound/effects/hit_on_shattered_glass.ogg', 25, 1) + playsound(loc, 'sound/effects/hit_on_shattered_glass.ogg', 25, 1) user.visible_message(SPAN_WARNING("[user] hits [src] with [I], but it's already broken!"), SPAN_WARNING("You hit [src] with [I], but it's already broken!")) return - if(prob(I.force * 2)) + if(prob(I.force * I.demolition_mod * 2)) user.visible_message(SPAN_WARNING("[user] smashes [src] with [I]!"), SPAN_WARNING("You smash [src] with [I]!")) shatter() else diff --git a/code/game/objects/structures/misc.dm b/code/game/objects/structures/misc.dm index 89bc3da6ab23..0ab3e98356d5 100644 --- a/code/game/objects/structures/misc.dm +++ b/code/game/objects/structures/misc.dm @@ -7,6 +7,20 @@ anchored = TRUE health = 250 +/obj/structure/showcase/attack_alien(mob/living/carbon/xenomorph/xeno) + if(xeno.a_intent == INTENT_HARM) + if(unslashable) + return + xeno.animation_attack_on(src) + playsound(loc, 'sound/effects/metalhit.ogg', 25, 1) + xeno.visible_message(SPAN_DANGER("[xeno] slices [src] apart!"), + SPAN_DANGER("We slice [src] apart!"), null, 5, CHAT_TYPE_XENO_COMBAT) + deconstruct(FALSE) + return XENO_ATTACK_ACTION + else + attack_hand(xeno) + return XENO_NONCOMBAT_ACTION + /obj/structure/showcase/initialize_pass_flags(datum/pass_flags_container/PF) ..() if (PF) @@ -273,7 +287,7 @@ . = ..() if(over_object != usr || !Adjacent(usr)) return - + if(!ishuman(usr)) return diff --git a/code/game/objects/structures/morgue.dm b/code/game/objects/structures/morgue.dm index f1717f5bf0f5..c69a570e4923 100644 --- a/code/game/objects/structures/morgue.dm +++ b/code/game/objects/structures/morgue.dm @@ -31,7 +31,7 @@ if(morgue_open) icon_state = "[morgue_type]0" else - if(contents.len > 1) //not counting the morgue tray + if(length(contents) > 1) //not counting the morgue tray icon_state = "[morgue_type]2" else icon_state = "[morgue_type]1" @@ -217,7 +217,7 @@ if(cremating) return - if(contents.len <= 1) //1 because the tray is inside. + if(length(contents) <= 1) //1 because the tray is inside. visible_message(SPAN_DANGER("You hear a hollow crackle.")) else visible_message(SPAN_DANGER("You hear a roar as the crematorium activates.")) diff --git a/code/game/objects/structures/noticeboard.dm b/code/game/objects/structures/noticeboard.dm index 9d007a0c8c80..0c763378ede1 100644 --- a/code/game/objects/structures/noticeboard.dm +++ b/code/game/objects/structures/noticeboard.dm @@ -1,80 +1,111 @@ +#define MAX_NOTICES 8 + /obj/structure/noticeboard name = "notice board" desc = "A board for pinning important notices upon." icon = 'icons/obj/structures/props/stationobjs.dmi' - icon_state = "nboard00" + icon_state = "noticeboard" density = FALSE anchored = TRUE var/notices = 0 -/obj/structure/noticeboard/Initialize() +/obj/structure/noticeboard/Initialize(mapload) . = ..() + if(!mapload) + return + for(var/obj/item/I in loc) - if(notices > 4) break + if(notices >= MAX_NOTICES) + break if(istype(I, /obj/item/paper)) I.forceMove(src) notices++ - icon_state = "nboard0[notices]" + update_overlays() //attaching papers!! -/obj/structure/noticeboard/attackby(obj/item/O as obj, mob/user as mob) - if(istype(O, /obj/item/paper)) - if(notices < 5) - O.add_fingerprint(user) - add_fingerprint(user) - user.drop_held_item() - O.forceMove(src) +/obj/structure/noticeboard/attackby(obj/item/O, mob/user, params) + if(istype(O, /obj/item/paper) || istype(O, /obj/item/photo)) + if(!allowed(user)) + to_chat(user, SPAN_WARNING("You are not authorized to add notices!")) + return + if(notices < MAX_NOTICES) + if(!user.drop_inv_item_to_loc(O, src)) + return notices++ - icon_state = "nboard0[notices]" //update sprite - to_chat(user, SPAN_NOTICE("You pin the paper to the noticeboard.")) + update_overlays() + to_chat(user, SPAN_NOTICE("You pin the [O] to the noticeboard.")) else - to_chat(user, SPAN_NOTICE("You reach to pin your paper to the board but hesitate. You are certain your paper will not be seen among the many others already attached.")) + to_chat(user, SPAN_WARNING("The notice board is full!")) + else if(istype(O, /obj/item/tool/pen)) + user.set_interaction(src) + tgui_interact(user) + else + return ..() -/obj/structure/noticeboard/attack_hand(user as mob) - var/dat = "Noticeboard
        " - for(var/obj/item/paper/P in src) - dat += "[P.name] Write Remove
        " - user << browse("Notices[dat]","window=noticeboard") - onclose(user, "noticeboard") +/obj/structure/noticeboard/attack_hand(mob/user) + . = ..() + user.set_interaction(src) + tgui_interact(user) +/obj/structure/noticeboard/ui_state(mob/user) + return GLOB.physical_state -/obj/structure/noticeboard/Topic(href, href_list) - ..() - usr.set_interaction(src) - if(href_list["remove"]) - if((usr.stat || usr.is_mob_restrained())) //For when a player is handcuffed while they have the notice window open - return - var/obj/item/P = locate(href_list["remove"]) - if((P && P.loc == src)) - P.forceMove(get_turf(src) )//dump paper on the floor because you're a clumsy fuck - P.add_fingerprint(usr) - add_fingerprint(usr) - notices-- - icon_state = "nboard0[notices]" +/obj/structure/noticeboard/tgui_interact(mob/user, datum/tgui/ui) + ui = SStgui.try_update_ui(user, src, ui) + if(!ui) + ui = new(user, src, "NoticeBoard", name) + ui.open() - if(href_list["write"]) - if((usr.stat || usr.is_mob_restrained())) //For when a player is handcuffed while they have the notice window open - return - var/obj/item/P = locate(href_list["write"]) +/obj/structure/noticeboard/ui_data(mob/user) + var/list/data = list() + data["allowed"] = allowed(user) + data["items"] = list() + for(var/obj/item/content in contents) + var/list/content_data = list( + name = content.name, + ref = REF(content) + ) + data["items"] += list(content_data) + return data + +/obj/structure/noticeboard/ui_act(action, params) + . = ..() + if(.) + return + + var/obj/item/item = locate(params["ref"]) in contents + if(!istype(item) || item.loc != src) + return + + var/mob/user = usr + + switch(action) + if("examine") + user.examinate(item) + return TRUE + if("write") + var/obj/item/writing_tool = user.get_held_item() + if(!istype(writing_tool, /obj/item/tool/pen)) + balloon_alert(user, "you need a pen for that!") + return + item.attackby(writing_tool, user) + return TRUE + if("remove") + if(!allowed(user)) + return + remove_item(item, user) + return TRUE + +/obj/structure/noticeboard/proc/update_overlays() + if(overlays) overlays.Cut() + if(notices) + overlays += image(icon, "notices_[notices]") - if((P && P.loc == src)) //ifthe paper's on the board - if(HAS_TRAIT(usr.r_hand, TRAIT_TOOL_PEN)) - add_fingerprint(usr) - P.attackby(usr.r_hand, usr) //then do ittttt - else - if(HAS_TRAIT(usr.l_hand, TRAIT_TOOL_PEN)) //check other hand for pen - add_fingerprint(usr) - P.attackby(usr.l_hand, usr) - else - to_chat(usr, SPAN_NOTICE("You'll need something to write with!")) +/obj/structure/noticeboard/proc/remove_item(obj/item/item, mob/user) + item.forceMove(loc) + if(user) + user.put_in_hands(item) + balloon_alert(user, "removed from board") + notices-- + update_overlays() - if(href_list["read"]) - var/obj/item/paper/P = locate(href_list["read"]) - if((P && P.loc == src)) - if(!( istype(usr, /mob/living/carbon/human) )) - usr << browse("[P.name][stars(P.info)]", "window=[P.name]") - onclose(usr, "[P.name]") - else - usr << browse("[P.name][P.info]", "window=[P.name]") - onclose(usr, "[P.name]") - return diff --git a/code/game/objects/structures/pipes/pipes.dm b/code/game/objects/structures/pipes/pipes.dm index 9f2b70c70661..fb51a605ee93 100644 --- a/code/game/objects/structures/pipes/pipes.dm +++ b/code/game/objects/structures/pipes/pipes.dm @@ -52,6 +52,7 @@ for(var/obj/structure/pipes/P in connected_to) P.remove_connection(src) + connected_to.Cut() GLOB.mainship_pipes -= src @@ -96,6 +97,7 @@ /obj/structure/pipes/proc/remove_connection(obj/structure/pipes/P) connected_to -= P + P.connected_to -= src /obj/structure/pipes/proc/get_connection(direction) var/obj/structure/pipes/best_connected_pipe = null diff --git a/code/game/objects/structures/pipes/vents/pump_scrubber.dm b/code/game/objects/structures/pipes/vents/pump_scrubber.dm index a4565c610ad5..acc8b4784af9 100644 --- a/code/game/objects/structures/pipes/vents/pump_scrubber.dm +++ b/code/game/objects/structures/pipes/vents/pump_scrubber.dm @@ -21,6 +21,35 @@ name = "Reinforced Air Vent" explodey = FALSE +/// Vents that are linked to ARES Security Protocols, allowing the ARES Interface to trigger security measures. +/obj/structure/pipes/vents/pump/no_boom/gas + name = "Security Air Vent" + var/datum/ares_link/link + var/vent_tag + COOLDOWN_DECLARE(vent_trigger_cooldown) + +/obj/structure/pipes/vents/pump/no_boom/gas/Initialize() + link_systems(override = FALSE) + . = ..() + +/obj/structure/pipes/vents/pump/no_boom/gas/Destroy() + delink() + return ..() + +/obj/structure/pipes/vents/pump/no_boom/gas/proc/link_systems(datum/ares_link/new_link = GLOB.ares_link, override) + if(link && !override) + return FALSE + delink() + if(new_link) + link = new_link + new_link.linked_vents += src + return TRUE + +/obj/structure/pipes/vents/pump/no_boom/gas/proc/delink() + if(link) + link.linked_vents -= src + link = null + /obj/structure/pipes/vents/pump/on icon_state = "on" diff --git a/code/game/objects/structures/pipes/vents/vents.dm b/code/game/objects/structures/pipes/vents/vents.dm index 298fbc57f4ad..d7e090c581c5 100644 --- a/code/game/objects/structures/pipes/vents/vents.dm +++ b/code/game/objects/structures/pipes/vents/vents.dm @@ -176,7 +176,7 @@ addtimer(CALLBACK(src, PROC_REF(release_gas), radius), warning_time) /obj/structure/pipes/vents/proc/release_gas(radius = 4) - radius = Clamp(radius, 1, 10) + radius = clamp(radius, 1, 10) if(!gas_holder || welded) return FALSE playsound(loc, 'sound/effects/smoke.ogg', 25, 1, 4) diff --git a/code/game/objects/structures/platforms.dm b/code/game/objects/structures/platforms.dm index cfffbc90fb7c..5510d319ee1e 100644 --- a/code/game/objects/structures/platforms.dm +++ b/code/game/objects/structures/platforms.dm @@ -142,7 +142,6 @@ icon_state = "kutjevo_platform" name = "raised metal edge" desc = "A raised level of metal, often used to elevate areas above others, or construct bridges. You could probably climb it." - climb_delay = 10 /obj/structure/platform_decoration/kutjevo name = "raised metal corner" diff --git a/code/game/objects/structures/prop_mech.dm b/code/game/objects/structures/prop_mech.dm new file mode 100644 index 000000000000..c2df2eb93c9c --- /dev/null +++ b/code/game/objects/structures/prop_mech.dm @@ -0,0 +1,175 @@ +/obj/structure/prop/mech + icon = 'icons/obj/structures/props/mech.dmi' + +/obj/structure/prop/mech/hydralic_clamp + name = "Hydraulic Clamp" + icon_state = "mecha_clamp" + +/obj/structure/prop/mech/drill + name = "Drill" + desc = "This is the drill that'll pierce the heavens!" + icon_state = "mecha_drill" + +/obj/structure/prop/mech/armor_booster + name = "Armor Booster Module (Close Combat Weaponry)" + desc = "Boosts exosuit armor against armed melee attacks. Requires energy to operate." + icon_state = "mecha_abooster_ccw" + +/obj/structure/prop/mech/repair_droid + name = "Repair Droid" + desc = "Automated repair droid. Scans exosuit for damage and repairs it. Can fix almost all types of external or internal damage." + icon_state = "repair_droid" + +/obj/structure/prop/mech/tesla_energy_relay + name = "Energy Relay" + desc = "Wirelessly drains energy from any available power channel in area. The performance index is quite low." + icon_state = "tesla" + +/obj/structure/prop/mech/parts + name = "mecha part" + flags_atom = FPRINT|CONDUCT + +/obj/structure/prop/mech/parts/chassis + name="Mecha Chassis" + icon_state = "backbone" + +// ripley to turn into P-1000 an Older version of the P-5000 to anchor it more into the lore... +/obj/structure/prop/mech/parts/chassis/ripley + name = "P-1000 Chassis" + icon_state = "ripley_chassis" +/obj/structure/prop/mech/parts/chassis/firefighter + name = "Firefighter Chassis" + icon_state = "ripley_chassis" +/obj/structure/prop/mech/parts/ripley_torso + name="P-1000 Torso" + desc="A torso part of P-1000 APLU. Contains power unit, processing core and life support systems." + icon_state = "ripley_harness" +/obj/structure/prop/mech/parts/ripley_left_arm + name="P-1000 Left Arm" + desc="A P-1000 APLU left arm. Data and power sockets are compatible with most exosuit tools." + icon_state = "ripley_l_arm" +/obj/structure/prop/mech/parts/ripley_right_arm + name="P-1000 Right Arm" + desc="A P-1000 APLU right arm. Data and power sockets are compatible with most exosuit tools." + icon_state = "ripley_r_arm" +/obj/structure/prop/mech/parts/ripley_left_leg + name="P-1000 Left Leg" + desc="A P-1000 APLU left leg. Contains somewhat complex servodrives and balance maintaining systems." + icon_state = "ripley_l_leg" +/obj/structure/prop/mech/parts/ripley_right_leg + name="P-1000 Right Leg" + desc="A P-1000 APLU right leg. Contains somewhat complex servodrives and balance maintaining systems." + icon_state = "ripley_r_leg" + +//gygax turned into MAX (Mobile Assault Exo-Warrior)look like a gygax from afar +/obj/structure/prop/mech/parts/chassis/gygax + name = "MAX Chassis" + icon_state = "gygax_chassis" +/obj/structure/prop/mech/parts/gygax_torso + name="MAX Torso" + desc="A torso part of MAX. Contains power unit, processing core and life support systems. Has an additional equipment slot." + icon_state = "gygax_harness" +/obj/structure/prop/mech/parts/gygax_head + name="MAX Head" + desc="A MAX head. Houses advanced surveilance and targeting sensors." + icon_state = "gygax_head" +/obj/structure/prop/mech/parts/gygax_left_arm + name="MAX Left Arm" + desc="A MAX left arm. Data and power sockets are compatible with most exosuit tools and weapons." + icon_state = "gygax_l_arm" +/obj/structure/prop/mech/parts/gygax_right_arm + name="MAX Right Arm" + desc="A MAX right arm. Data and power sockets are compatible with most exosuit tools and weapons." + icon_state = "gygax_r_arm" +/obj/structure/prop/mech/parts/gygax_left_leg + name="MAX Left Leg" + icon_state = "gygax_l_leg" +/obj/structure/prop/mech/parts/gygax_right_leg + name="MAX Right Leg" + icon_state = "gygax_r_leg" +/obj/structure/prop/mech/parts/gygax_armor + name="MAX Armor Plates" + icon_state = "gygax_armor" + +// durand MOX (mobile offensive exo-warrior) look like a durand from afar. +/obj/structure/prop/mech/parts/chassis/durand + name = "MOX Chassis" + icon_state = "durand_chassis" +/obj/structure/prop/mech/parts/durand_torso + name="MOX Torso" + icon_state = "durand_harness" +/obj/structure/prop/mech/parts/durand_head + name="MOX Head" + icon_state = "durand_head" +/obj/structure/prop/mech/parts/durand_left_arm + name="MOX Left Arm" + icon_state = "durand_l_arm" +/obj/structure/prop/mech/parts/durand_right_arm + name="MOX Right Arm" + icon_state = "durand_r_arm" +/obj/structure/prop/mech/parts/durand_left_leg + name="MOX Left Leg" + icon_state = "durand_l_leg" +/obj/structure/prop/mech/parts/durand_right_leg + name="MOX Right Leg" + icon_state = "durand_r_leg" +/obj/structure/prop/mech/parts/durand_armor + name="MOX Armor Plates" + icon_state = "durand_armor" + +// phazon currently not in use. could be deleted... +/obj/structure/prop/mech/parts/chassis/phazon + name = "Phazon Chassis" + icon_state = "phazon_chassis" +/obj/structure/prop/mech/parts/phazon_torso + name="Phazon Torso" + icon_state = "phazon_harness" +/obj/structure/prop/mech/parts/phazon_head + name="Phazon Head" + icon_state = "phazon_head" +/obj/structure/prop/mech/parts/phazon_left_arm + name="Phazon Left Arm" + icon_state = "phazon_l_arm" +/obj/structure/prop/mech/parts/phazon_right_arm + name="Phazon Right Arm" + icon_state = "phazon_r_arm" +/obj/structure/prop/mech/parts/phazon_left_leg + name="Phazon Left Leg" + icon_state = "phazon_l_leg" +/obj/structure/prop/mech/parts/phazon_right_leg + name="Phazon Right Leg" + icon_state = "phazon_r_leg" +/obj/structure/prop/mech/parts/phazon_armor_plates + name="Phazon Armor Plates" + icon_state = "phazon_armor" + +// odysseus currently not in use could be deleted... +/obj/structure/prop/mech/parts/chassis/odysseus + name = "Odysseus Chassis" + icon_state = "odysseus_chassis" +/obj/structure/prop/mech/parts/odysseus_head + name="Odysseus Head" + icon_state = "odysseus_head" +/obj/structure/prop/mech/parts/odysseus_torso + name="Odysseus Torso" + desc="A torso part of Odysseus. Contains power unit, processing core and life support systems." + icon_state = "odysseus_torso" +/obj/structure/prop/mech/parts/odysseus_left_arm + name="Odysseus Left Arm" + desc="An Odysseus left arm. Data and power sockets are compatible with most exosuit tools." + icon_state = "odysseus_l_arm" +/obj/structure/prop/mech/parts/odysseus_right_arm + name="Odysseus Right Arm" + desc="An Odysseus right arm. Data and power sockets are compatible with most exosuit tools." + icon_state = "odysseus_r_arm" +/obj/structure/prop/mech/parts/odysseus_left_leg + name="Odysseus Left Leg" + desc="An Odysseus left leg. Contains somewhat complex servodrives and balance maintaining systems." + icon_state = "odysseus_l_leg" +/obj/structure/prop/mech/parts/odysseus_right_leg + name="Odysseus Right Leg" + desc="A Odysseus right leg. Contains somewhat complex servodrives and balance maintaining systems." + icon_state = "odysseus_r_leg" +/obj/structure/prop/mech/parts/odysseus_armor_plates + name="Odysseus Armor Plates" + icon_state = "odysseus_armor" diff --git a/code/game/objects/structures/props.dm b/code/game/objects/structures/props.dm index e14eee13b1dd..16ab0fed895f 100644 --- a/code/game/objects/structures/props.dm +++ b/code/game/objects/structures/props.dm @@ -235,212 +235,6 @@ /obj/structure/prop/dam/wide_boulder/boulder1 icon_state = "boulder1" - -/obj/structure/prop/mech - icon = 'icons/obj/structures/props/mech.dmi' - -/obj/structure/prop/mech/hydralic_clamp - name = "Hydraulic Clamp" - icon_state = "mecha_clamp" - -/obj/structure/prop/mech/drill - name = "Drill" - desc = "This is the drill that'll pierce the heavens!" - icon_state = "mecha_drill" - -/obj/structure/prop/mech/armor_booster - name = "Armor Booster Module (Close Combat Weaponry)" - desc = "Boosts exosuit armor against armed melee attacks. Requires energy to operate." - icon_state = "mecha_abooster_ccw" - -/obj/structure/prop/mech/repair_droid - name = "Repair Droid" - desc = "Automated repair droid. Scans exosuit for damage and repairs it. Can fix almost all types of external or internal damage." - icon_state = "repair_droid" - -/obj/structure/prop/mech/tesla_energy_relay - name = "Energy Relay" - desc = "Wirelessly drains energy from any available power channel in area. The performance index is quite low." - icon_state = "tesla" - -/obj/structure/prop/mech/mech_parts - name = "mecha part" - flags_atom = FPRINT|CONDUCT - -/obj/structure/prop/mech/mech_parts/chassis - name="Mecha Chassis" - icon_state = "backbone" - -/obj/structure/prop/mech/mech_parts/chassis/ripley - name = "Ripley Chassis" - icon_state = "ripley_chassis" - -/obj/structure/prop/mech/mech_parts/part/ripley_torso - name="Ripley Torso" - desc="A torso part of Ripley APLU. Contains power unit, processing core and life support systems." - icon_state = "ripley_harness" - -/obj/structure/prop/mech/mech_parts/part/ripley_left_arm - name="Ripley Left Arm" - desc="A Ripley APLU left arm. Data and power sockets are compatible with most exosuit tools." - icon_state = "ripley_l_arm" - -/obj/structure/prop/mech/mech_parts/part/ripley_right_arm - name="Ripley Right Arm" - desc="A Ripley APLU right arm. Data and power sockets are compatible with most exosuit tools." - icon_state = "ripley_r_arm" - -/obj/structure/prop/mech/mech_parts/part/ripley_left_leg - name="Ripley Left Leg" - desc="A Ripley APLU left leg. Contains somewhat complex servodrives and balance maintaining systems." - icon_state = "ripley_l_leg" - -/obj/structure/prop/mech/mech_parts/part/ripley_right_leg - name="Ripley Right Leg" - desc="A Ripley APLU right leg. Contains somewhat complex servodrives and balance maintaining systems." - icon_state = "ripley_r_leg" - -/obj/structure/prop/mech/mech_parts/chassis/gygax - name = "Gygax Chassis" - icon_state = "gygax_chassis" - -/obj/structure/prop/mech/mech_parts/part/gygax_torso - name="Gygax Torso" - desc="A torso part of Gygax. Contains power unit, processing core and life support systems. Has an additional equipment slot." - icon_state = "gygax_harness" - -/obj/structure/prop/mech/mech_parts/part/gygax_head - name="Gygax Head" - desc="A Gygax head. Houses advanced surveilance and targeting sensors." - icon_state = "gygax_head" - -/obj/structure/prop/mech/mech_parts/part/gygax_left_arm - name="Gygax Left Arm" - desc="A Gygax left arm. Data and power sockets are compatible with most exosuit tools and weapons." - icon_state = "gygax_l_arm" - -/obj/structure/prop/mech/mech_parts/part/gygax_right_arm - name="Gygax Right Arm" - desc="A Gygax right arm. Data and power sockets are compatible with most exosuit tools and weapons." - icon_state = "gygax_r_arm" - -/obj/structure/prop/mech/mech_parts/part/gygax_left_leg - name="Gygax Left Leg" - icon_state = "gygax_l_leg" - -/obj/structure/prop/mech/mech_parts/part/gygax_right_leg - name="Gygax Right Leg" - icon_state = "gygax_r_leg" - -/obj/structure/prop/mech/mech_parts/part/gygax_armor - name="Gygax Armor Plates" - icon_state = "gygax_armor" - -/obj/structure/prop/mech/mech_parts/chassis/durand - name = "Durand Chassis" - icon_state = "durand_chassis" - -/obj/structure/prop/mech/mech_parts/part/durand_torso - name="Durand Torso" - icon_state = "durand_harness" - -/obj/structure/prop/mech/mech_parts/part/durand_head - name="Durand Head" - icon_state = "durand_head" - -/obj/structure/prop/mech/mech_parts/part/durand_left_arm - name="Durand Left Arm" - icon_state = "durand_l_arm" - -/obj/structure/prop/mech/mech_parts/part/durand_right_arm - name="Durand Right Arm" - icon_state = "durand_r_arm" - -/obj/structure/prop/mech/mech_parts/part/durand_left_leg - name="Durand Left Leg" - icon_state = "durand_l_leg" - -/obj/structure/prop/mech/mech_parts/part/durand_right_leg - name="Durand Right Leg" - icon_state = "durand_r_leg" - -/obj/structure/prop/mech/mech_parts/part/durand_armor - name="Durand Armor Plates" - icon_state = "durand_armor" - -/obj/structure/prop/mech/mech_parts/chassis/firefighter - name = "Firefighter Chassis" - icon_state = "ripley_chassis" - -/obj/structure/prop/mech/mech_parts/chassis/phazon - name = "Phazon Chassis" - icon_state = "phazon_chassis" - -/obj/structure/prop/mech/mech_parts/part/phazon_torso - name="Phazon Torso" - icon_state = "phazon_harness" - -/obj/structure/prop/mech/mech_parts/part/phazon_head - name="Phazon Head" - icon_state = "phazon_head" - -/obj/structure/prop/mech/mech_parts/part/phazon_left_arm - name="Phazon Left Arm" - icon_state = "phazon_l_arm" - -/obj/structure/prop/mech/mech_parts/part/phazon_right_arm - name="Phazon Right Arm" - icon_state = "phazon_r_arm" - -/obj/structure/prop/mech/mech_parts/part/phazon_left_leg - name="Phazon Left Leg" - icon_state = "phazon_l_leg" - -/obj/structure/prop/mech/mech_parts/part/phazon_right_leg - name="Phazon Right Leg" - icon_state = "phazon_r_leg" - -/obj/structure/prop/mech/mech_parts/part/phazon_armor_plates - name="Phazon Armor Plates" - icon_state = "phazon_armor" - -/obj/structure/prop/mech/mech_parts/chassis/odysseus - name = "Odysseus Chassis" - icon_state = "odysseus_chassis" - -/obj/structure/prop/mech/mech_parts/part/odysseus_head - name="Odysseus Head" - icon_state = "odysseus_head" - -/obj/structure/prop/mech/mech_parts/part/odysseus_torso - name="Odysseus Torso" - desc="A torso part of Odysseus. Contains power unit, processing core and life support systems." - icon_state = "odysseus_torso" - -/obj/structure/prop/mech/mech_parts/part/odysseus_left_arm - name="Odysseus Left Arm" - desc="An Odysseus left arm. Data and power sockets are compatible with most exosuit tools." - icon_state = "odysseus_l_arm" - -/obj/structure/prop/mech/mech_parts/part/odysseus_right_arm - name="Odysseus Right Arm" - desc="An Odysseus right arm. Data and power sockets are compatible with most exosuit tools." - icon_state = "odysseus_r_arm" - -/obj/structure/prop/mech/mech_parts/part/odysseus_left_leg - name="Odysseus Left Leg" - desc="An Odysseus left leg. Contains somewhat complex servodrives and balance maintaining systems." - icon_state = "odysseus_l_leg" - -/obj/structure/prop/mech/mech_parts/part/odysseus_right_leg - name="Odysseus Right Leg" - desc="A Odysseus right leg. Contains somewhat complex servodrives and balance maintaining systems." - icon_state = "odysseus_r_leg" - -/obj/structure/prop/mech/mech_parts/part/odysseus_armor_plates - name="Odysseus Armor Plates" - icon_state = "odysseus_armor" - //Use these to replace non-functional machinery 'props' around maps from bay12 /obj/structure/prop/server_equipment @@ -780,7 +574,7 @@ for(var/mob/living/carbon/human/mob in range(heating_range, src)) if(mob.bodytemperature < T20C) - mob.bodytemperature += min(round(T20C - mob.bodytemperature)*0.7, 25) + mob.bodytemperature += min(floor(T20C - mob.bodytemperature)*0.7, 25) mob.recalculate_move_delay = TRUE if(quiet) @@ -892,6 +686,20 @@ health = 75 density = TRUE +/obj/structure/prop/ice_colony/dense/attack_alien(mob/living/carbon/xenomorph/xeno) + if(xeno.a_intent == INTENT_HARM) + if(unslashable) + return + xeno.animation_attack_on(src) + playsound(loc, 'sound/effects/metalhit.ogg', 25, 1) + xeno.visible_message(SPAN_DANGER("[xeno] slices [src] apart!"), + SPAN_DANGER("We slice [src] apart!"), null, 5, CHAT_TYPE_XENO_COMBAT) + deconstruct(FALSE) + return XENO_ATTACK_ACTION + else + attack_hand(xeno) + return XENO_NONCOMBAT_ACTION + /obj/structure/prop/ice_colony/dense/ice_tray name = "ice slab tray" icon_state = "ice_tray" @@ -1132,7 +940,7 @@ name = "\improper S-52 fusion reactor" desc = "A Westingland S-52 Fusion Reactor. Takes fuels cells and converts them to power. Also produces a large amount of heat." icon = 'icons/obj/structures/machinery/fusion_eng.dmi' - icon_state = "off-0" + icon_state = "off" /obj/structure/prop/invuln/pipe_water name = "pipe water" diff --git a/code/game/objects/structures/reagent_dispensers.dm b/code/game/objects/structures/reagent_dispensers.dm index 6471dfa21520..0dab5e55c004 100644 --- a/code/game/objects/structures/reagent_dispensers.dm +++ b/code/game/objects/structures/reagent_dispensers.dm @@ -5,6 +5,7 @@ icon_state = "watertank" density = TRUE anchored = FALSE + drag_delay = 1 health = 100 // Can be destroyed in 2-4 slashes. flags_atom = CAN_BE_SYRINGED wrenchable = TRUE @@ -21,6 +22,8 @@ verbs -= /obj/structure/reagent_dispensers/verb/set_APTFT if(chemical) reagents.add_reagent(chemical, reagent_amount) + if(!anchored && is_ground_level(z) && prob(70)) + anchored = TRUE /obj/structure/reagent_dispensers/initialize_pass_flags(datum/pass_flags_container/PF) ..() @@ -31,7 +34,7 @@ . = ..() if(get_dist(user, src) > 2 && user != loc) return . += SPAN_NOTICE("It contains:") - if(reagents && reagents.reagent_list.len) + if(reagents && length(reagents.reagent_list)) for(var/datum/reagent/R in reagents.reagent_list) . += SPAN_NOTICE(" [R.volume] units of [R.name]") else @@ -128,6 +131,25 @@ if(N) amount_per_transfer_from_this = N +/obj/structure/reagent_dispensers/clicked(mob/user, list/mods) + if(!Adjacent(user)) + return ..() + + if(!ishuman(user)) + return ..() + + if(!reagents || reagents.locked) + return ..() + + if(mods["alt"]) + dispensing = !dispensing + if(dispensing) + to_chat(user, SPAN_NOTICE("[src] is now dispensing")) + else + to_chat(user, SPAN_NOTICE("[src] is now filling")) + return TRUE + return ..() + /obj/structure/reagent_dispensers/attackby(obj/item/hit_item, mob/living/user) if(istype(hit_item, /obj/item/reagent_container)) return @@ -148,13 +170,6 @@ icon_state = "ammoniatank" chemical = "ammonia" -/obj/structure/reagent_dispensers/oxygentank - name = "oxygentank" - desc = "An oxygen tank" - icon = 'icons/obj/objects.dmi' - icon_state = "oxygentank" - chemical = "oxygen" - /obj/structure/reagent_dispensers/acidtank name = "sulfuric acid tank" desc = "A sulfuric acid tank" @@ -394,6 +409,13 @@ icon_state = "hydrogentank" chemical = "hydrogen" +/obj/structure/reagent_dispensers/fueltank/oxygentank + name = "oxygentank" + desc = "An oxygen tank" + icon = 'icons/obj/objects.dmi' + icon_state = "oxygentank" + chemical = "oxygen" + /obj/structure/reagent_dispensers/fueltank/custom name = "reagent tank" desc = "A reagent tank, typically used to store large quantities of chemicals." @@ -432,6 +454,7 @@ icon = 'icons/obj/objects.dmi' icon_state = "peppertank" anchored = TRUE + drag_delay = 3 wrenchable = FALSE density = FALSE amount_per_transfer_from_this = 45 @@ -445,6 +468,7 @@ icon_state = "water_cooler" possible_transfer_amounts = null anchored = TRUE + drag_delay = 3 chemical = "water" /obj/structure/reagent_dispensers/water_cooler/walk_past @@ -460,6 +484,7 @@ icon_state = "beertankTEMP" amount_per_transfer_from_this = 10 chemical = "beer" + drag_delay = 3 /obj/structure/reagent_dispensers/beerkeg/alt icon_state = "beertank_alt" @@ -474,6 +499,7 @@ icon_state = "virusfoodtank" amount_per_transfer_from_this = 10 anchored = TRUE + drag_delay = 3 wrenchable = FALSE density = FALSE chemical = "virusfood" diff --git a/code/game/objects/structures/safe.dm b/code/game/objects/structures/safe.dm index 011fa2a17f48..6cefadd88a12 100644 --- a/code/game/objects/structures/safe.dm +++ b/code/game/objects/structures/safe.dm @@ -124,7 +124,7 @@ FLOOR SAFES dat += "Dial 2: - [tumbler_2_pos] +
        " if(open) dat += "" - for(var/i = contents.len, i>=1, i--) + for(var/i = length(contents), i>=1, i--) var/obj/item/P = contents[i] dat += "" dat += "
        [P.name]
        " diff --git a/code/game/objects/structures/shower.dm b/code/game/objects/structures/shower.dm new file mode 100644 index 000000000000..b731a2c0e242 --- /dev/null +++ b/code/game/objects/structures/shower.dm @@ -0,0 +1,222 @@ +/obj/structure/machinery/shower + name = "shower" + desc = "The HS-451. Installed in the 2050s by the Weyland Hygiene Division." + icon = 'icons/obj/structures/props/watercloset.dmi' + icon_state = "shower" + density = FALSE + anchored = TRUE + use_power = USE_POWER_NONE + var/on = 0 + var/obj/effect/mist/mymist = null + /// needs a var so we can make it linger~ + var/ismist = 0 + /// freezing, normal, or boiling + var/watertemp = "normal" + /// true if there is a mob on the shower's loc, this is to ease process() + var/mobpresent = 0 + var/is_washing = 0 + +/obj/structure/machinery/shower/Initialize() + . = ..() + create_reagents(2) + +//add heat controls? when emagged, you can freeze to death in it? + +/obj/effect/mist + name = "mist" + icon = 'icons/obj/structures/props/watercloset.dmi' + icon_state = "mist" + layer = FLY_LAYER + anchored = TRUE + mouse_opacity = MOUSE_OPACITY_TRANSPARENT + + +/obj/structure/machinery/shower/attack_hand(mob/M as mob) + on = !on + update_icon() + if(on) + start_processing() + if (M.loc == loc) + wash(M) + check_heat(M) + for (var/atom/movable/G in src.loc) + G.clean_blood() + else + stop_processing() + + +/obj/structure/machinery/shower/attackby(obj/item/I as obj, mob/user as mob) + if(I.type == /obj/item/device/analyzer) + to_chat(user, SPAN_NOTICE("The water temperature seems to be [watertemp].")) + if(HAS_TRAIT(I, TRAIT_TOOL_WRENCH)) + to_chat(user, SPAN_NOTICE("You begin to adjust the temperature valve with \the [I].")) + if(do_after(user, 50, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD)) + switch(watertemp) + if("normal") + watertemp = "freezing" + if("freezing") + watertemp = "boiling" + if("boiling") + watertemp = "normal" + user.visible_message(SPAN_NOTICE("[user] adjusts the shower with \the [I]."), SPAN_NOTICE("You adjust the shower with \the [I].")) + add_fingerprint(user) + + +/obj/structure/machinery/shower/update_icon() //this is terribly unreadable, but basically it makes the shower mist up + overlays.Cut() //once it's been on for a while, in addition to handling the water overlay. + QDEL_NULL(mymist) + + if(on) + overlays += image('icons/obj/structures/props/watercloset.dmi', src, "water", MOB_LAYER + 1, dir) + if(watertemp == "freezing") + return + if(!ismist) + spawn(50) + if(src && on) + ismist = 1 + mymist = new /obj/effect/mist(loc) + else + ismist = 1 + mymist = new /obj/effect/mist(loc) + else if(ismist) + ismist = 1 + mymist = new /obj/effect/mist(loc) + spawn(250) + if(src && !on) + QDEL_NULL(mymist) + ismist = 0 + + +/obj/structure/machinery/shower/Crossed(atom/movable/O) + ..() + wash(O) + if(ismob(O)) + mobpresent++ + check_heat(O) + + +/obj/structure/machinery/shower/Uncrossed(atom/movable/O) + if(ismob(O)) + mobpresent-- + ..() + +//Yes, showers are super powerful as far as washing goes. +/obj/structure/machinery/shower/proc/wash(atom/movable/O as obj|mob) + if(!on) return + + + if(isliving(O)) + var/mob/living/L = O + L.ExtinguishMob() + L.fire_stacks = -20 //Douse ourselves with water to avoid fire more easily + to_chat(L, SPAN_WARNING("You've been drenched in water!")) + if(iscarbon(O)) + var/mob/living/carbon/M = O + if(M.r_hand) + M.r_hand.clean_blood() + if(M.l_hand) + M.l_hand.clean_blood() + if(M.back) + if(M.back.clean_blood()) + M.update_inv_back(0) + if(ishuman(M)) + var/mob/living/carbon/human/H = M + var/washgloves = 1 + var/washshoes = 1 + var/washmask = 1 + var/washears = 1 + var/washglasses = 1 + + if(H.wear_suit) + washgloves = !(H.wear_suit.flags_inv_hide & HIDEGLOVES) + washshoes = !(H.wear_suit.flags_inv_hide & HIDESHOES) + + if(H.head) + washmask = !(H.head.flags_inv_hide & HIDEMASK) + washglasses = !(H.head.flags_inv_hide & HIDEEYES) + washears = !(H.head.flags_inv_hide & HIDEEARS) + + if(H.wear_mask) + if (washears) + washears = !(H.wear_mask.flags_inv_hide & HIDEEARS) + if (washglasses) + washglasses = !(H.wear_mask.flags_inv_hide & HIDEEYES) + + if(H.head) + if(H.head.clean_blood()) + H.update_inv_head() + if(H.wear_suit) + if(H.wear_suit.clean_blood()) + H.update_inv_wear_suit() + else if(H.w_uniform) + if(H.w_uniform.clean_blood()) + H.update_inv_w_uniform() + if(H.gloves && washgloves) + if(H.gloves.clean_blood()) + H.update_inv_gloves() + if(H.shoes && washshoes) + if(H.shoes.clean_blood()) + H.update_inv_shoes() + if(H.wear_mask && washmask) + if(H.wear_mask.clean_blood()) + H.update_inv_wear_mask() + if(H.glasses && washglasses) + if(H.glasses.clean_blood()) + H.update_inv_glasses() + if((H.wear_l_ear || H.wear_r_ear) && washears) + if((H.wear_l_ear && H.wear_l_ear.clean_blood()) ||(H.wear_r_ear && H.wear_r_ear.clean_blood())) + H.update_inv_ears() + if(H.belt) + if(H.belt.clean_blood()) + H.update_inv_belt() + H.clean_blood(washshoes) + else + if(M.wear_mask) //if the mob is not human, it cleans the mask without asking for bitflags + if(M.wear_mask.clean_blood()) + M.update_inv_wear_mask() + M.clean_blood() + else + O.clean_blood() + + if(isturf(loc)) + var/turf/tile = loc + tile.clean_blood() + for(var/obj/effect/E in tile) + if(istype(E,/obj/effect/decal/cleanable) || istype(E,/obj/effect/overlay)) + qdel(E) + + +/obj/structure/machinery/shower/process() + if(!on) return + wash_floor() + if(!mobpresent) return + for(var/mob/living/carbon/C in loc) + check_heat(C) + + +/obj/structure/machinery/shower/proc/wash_floor() + if(!ismist && is_washing) + return + is_washing = 1 + var/turf/T = get_turf(src) +// reagents.add_reagent("water", 2) + T.clean(src) + addtimer(VARSET_CALLBACK(src, is_washing, FALSE), 10 SECONDS) + + +/obj/structure/machinery/shower/proc/check_heat(mob/M as mob) + if(!on || watertemp == "normal") return + if(iscarbon(M)) + var/mob/living/carbon/C = M + + if(watertemp == "freezing") + C.bodytemperature = max(80, C.bodytemperature - 80) + C.recalculate_move_delay = TRUE + to_chat(C, SPAN_WARNING("The water is freezing!")) + return + if(watertemp == "boiling") + C.bodytemperature = min(500, C.bodytemperature + 35) + C.recalculate_move_delay = TRUE + C.apply_damage(5, BURN) + to_chat(C, SPAN_DANGER("The water is searing!")) + return diff --git a/code/game/objects/structures/signs.dm b/code/game/objects/structures/signs.dm index adabf0c54141..d9bf8677bb56 100644 --- a/code/game/objects/structures/signs.dm +++ b/code/game/objects/structures/signs.dm @@ -107,6 +107,11 @@ desc = "This banner depicts Delta Squad's motto. The Marines of Delta Squad adopted it after picking an old bomber movie for movie night a while back." icon_state = "maximumeffort" +/obj/structure/sign/banners/united_americas_flag + name = "\improper United Americas flag" + desc = "A flag of the United Americas. Inspires patriotism, fear, or revulsion depending on the viewer's political leanings." + icon_state = "uaflag" + //=====================// // SEMIOTIC STANDARD // //===================// @@ -305,7 +310,7 @@ icon_state = "lifesupport" /obj/structure/sign/safety/maint - name = "maintenace semiotic" + name = "maintenance semiotic" desc = "Semiotic Standard denoting the nearby presence of maintenance access." icon_state = "maint" diff --git a/code/game/objects/structures/sink.dm b/code/game/objects/structures/sink.dm new file mode 100644 index 000000000000..6bac40ea7da4 --- /dev/null +++ b/code/game/objects/structures/sink.dm @@ -0,0 +1,122 @@ +/obj/structure/sink + name = "sink" + icon = 'icons/obj/structures/props/watercloset.dmi' + icon_state = "sink_emptied_animation" + desc = "A sink used for washing one's hands and face." + anchored = TRUE + /// if something's being washed at the moment + var/busy = FALSE + + +/obj/structure/sink/Initialize() + . = ..() + if(prob(50)) + icon_state = "sink_emptied" + + +/obj/structure/sink/proc/stop_flow() //sets sink animation to normal sink (without running water) + + if(prob(50)) + icon_state = "sink_emptied_animation" + else + icon_state = "sink_emptied" + flick("sink_animation_empty", src) + + +/obj/structure/sink/attack_hand(mob/user) + if(isRemoteControlling(user)) + return + + if(!Adjacent(user)) + return + + if(busy) + to_chat(user, SPAN_DANGER("Someone's already washing here.")) + return + + to_chat(usr, SPAN_NOTICE(" You start washing your hands.")) + flick("sink_animation_fill", src) //<- play the filling animation then automatically switch back to the loop + icon_state = "sink_animation_fill_loop" //<- set it to the loop + addtimer(CALLBACK(src, PROC_REF(stop_flow)), 6 SECONDS) + playsound(loc, 'sound/effects/sinkrunning.ogg', 25, TRUE) + + busy = TRUE + sleep(40) + busy = FALSE + + if(!Adjacent(user)) return //Person has moved away from the sink + + user.clean_blood() + if(ishuman(user)) + user:update_inv_gloves() + for(var/mob/V in viewers(src, null)) + V.show_message(SPAN_NOTICE("[user] washes their hands using \the [src]."), SHOW_MESSAGE_VISIBLE) + + +/obj/structure/sink/attackby(obj/item/O as obj, mob/user as mob) + if(busy) + to_chat(user, SPAN_DANGER("Someone's already washing here.")) + return + + var/obj/item/reagent_container/RG = O + if (istype(RG) && RG.is_open_container()) + RG.reagents.add_reagent("water", min(RG.volume - RG.reagents.total_volume, RG.amount_per_transfer_from_this)) + user.visible_message(SPAN_NOTICE("[user] fills \the [RG] using \the [src]."),SPAN_NOTICE("You fill \the [RG] using \the [src].")) + return + + else if (istype(O, /obj/item/weapon/baton)) + var/obj/item/weapon/baton/B = O + if(B.bcell) + if(B.bcell.charge > 0 && B.status == 1) + flick("baton_active", src) + user.apply_effect(10, STUN) + user.stuttering = 10 + user.apply_effect(10, WEAKEN) + B.deductcharge(B.hitcost) + user.visible_message( \ + SPAN_DANGER("[user] was stunned by \his wet [O]!"), \ + SPAN_DANGER("You were stunned by your wet [O]!")) + return + + var/turf/location = user.loc + if(!isturf(location)) return + + var/obj/item/I = O + if(!I || !istype(I,/obj/item)) return + + to_chat(usr, SPAN_NOTICE(" You start washing \the [I].")) + + busy = TRUE + sleep(40) + busy = FALSE + + if(user.loc != location) return //User has moved + if(!I) return //Item's been destroyed while washing + if(user.get_active_hand() != I) return //Person has switched hands or the item in their hands + + O.clean_blood() + user.visible_message( \ + SPAN_NOTICE("[user] washes \a [I] using \the [src]."), \ + SPAN_NOTICE("You wash \a [I] using \the [src].")) + + +/obj/structure/sink/kitchen + name = "kitchen sink" + icon_state = "sink_alt" + + +/obj/structure/sink/puddle //splishy splashy ^_^ + name = "puddle" + icon_state = "puddle" + + +/obj/structure/sink/puddle/attack_hand(mob/M as mob) + icon_state = "puddle-splash" + ..() + icon_state = "puddle" + + +/obj/structure/sink/puddle/attackby(obj/item/O as obj, mob/user as mob) + icon_state = "puddle-splash" + ..() + icon_state = "puddle" diff --git a/code/game/objects/structures/stool_bed_chair_nest/bed.dm b/code/game/objects/structures/stool_bed_chair_nest/bed.dm index 34b0fb01e9d6..eb9b5aa5e418 100644 --- a/code/game/objects/structures/stool_bed_chair_nest/bed.dm +++ b/code/game/objects/structures/stool_bed_chair_nest/bed.dm @@ -20,6 +20,7 @@ var/buildstackamount = 1 var/foldabletype //To fold into an item (e.g. roller bed item) var/buckling_y = 0 //pixel y shift to give to the buckled mob. + var/buckling_x = 0 //pixel x shift to give to the buckled mob. var/obj/structure/closet/bodybag/buckled_bodybag var/accepts_bodybag = FALSE //Whether you can buckle bodybags to this bed var/base_bed_icon //Used by beds that change sprite when something is buckled to them @@ -60,11 +61,15 @@ if(. && buckled_mob == M) M.pixel_y = buckling_y M.old_y = buckling_y + M.pixel_x = buckling_x + M.old_x = buckling_x if(base_bed_icon) density = TRUE else M.pixel_y = initial(buckled_mob.pixel_y) M.old_y = initial(buckled_mob.pixel_y) + M.pixel_x = initial(buckled_mob.pixel_x) + M.old_x = initial(buckled_mob.pixel_x) if(base_bed_icon) density = FALSE @@ -161,11 +166,14 @@ if(ismob(G.grabbed_thing)) var/mob/M = G.grabbed_thing var/atom/blocker = LinkBlocked(user, user.loc, loc) + if(!Adjacent(M)) + visible_message(SPAN_DANGER("[M] is too far to place onto [src].")) + return FALSE if(blocker) to_chat(user, SPAN_WARNING("\The [blocker] is in the way!")) - else - to_chat(user, SPAN_NOTICE("You place [M] on [src].")) - M.forceMove(loc) + return FALSE + to_chat(user, SPAN_NOTICE("You place [M] on [src].")) + M.forceMove(loc) return TRUE else @@ -322,6 +330,7 @@ GLOBAL_LIST_EMPTY(activated_medevac_stretchers) base_bed_icon = "stretcher" accepts_bodybag = TRUE var/stretcher_activated + var/view_range = 5 var/obj/structure/dropship_equipment/medevac_system/linked_medevac surgery_duration_multiplier = SURGERY_SURFACE_MULT_AWFUL //On the one hand, it's a big stretcher. On the other hand, you have a big sheet covering the patient and those damned Fulton hookups everywhere. @@ -352,6 +361,14 @@ GLOBAL_LIST_EMPTY(activated_medevac_stretchers) toggle_medevac_beacon(usr) +// Used to pretend to be a camera +/obj/structure/bed/medevac_stretcher/proc/can_use() + return TRUE + +// Used to pretend to be a camera +/obj/structure/bed/medevac_stretcher/proc/isXRay() + return FALSE + /obj/structure/bed/medevac_stretcher/proc/toggle_medevac_beacon(mob/user) if(!ishuman(user)) return @@ -411,6 +428,8 @@ GLOBAL_LIST_EMPTY(activated_medevac_stretchers) buckling_y = 0 foldabletype = /obj/item/roller/bedroll accepts_bodybag = FALSE + debris = null + buildstacktype = null /obj/item/roller/bedroll name = "folded bedroll" diff --git a/code/game/objects/structures/stool_bed_chair_nest/chairs.dm b/code/game/objects/structures/stool_bed_chair_nest/chairs.dm index e523906f4cfe..d9f15922eeaf 100644 --- a/code/game/objects/structures/stool_bed_chair_nest/chairs.dm +++ b/code/game/objects/structures/stool_bed_chair_nest/chairs.dm @@ -7,6 +7,8 @@ desc = "A rectangular metallic frame sitting on four legs with a back panel. Designed to fit the sitting position, more or less comfortably." icon_state = "chair" buckle_lying = 0 + var/north_layer = FLY_LAYER + var/non_north_layer = OBJ_LAYER var/propelled = FALSE //Check for fire-extinguisher-driven chairs var/can_rotate = TRUE var/picked_up_item = /obj/item/weapon/twohanded/folded_metal_chair @@ -25,10 +27,10 @@ flags_can_pass_all_temp = PASS_OVER /obj/structure/bed/chair/handle_rotation() //Making this into a separate proc so office chairs can call it on Move() - if(src.dir == NORTH) - src.layer = FLY_LAYER + if(dir == NORTH) + layer = north_layer else - src.layer = OBJ_LAYER + layer = non_north_layer if(buckled_mob) buckled_mob.setDir(dir) @@ -150,7 +152,7 @@ stacked_size-- update_overlays() - var/list/candidate_target_turfs = range(round(stacked_size/2), starting_turf) + var/list/candidate_target_turfs = range(floor(stacked_size/2), starting_turf) candidate_target_turfs -= starting_turf var/turf/target_turf = candidate_target_turfs[rand(1, length(candidate_target_turfs))] @@ -257,6 +259,10 @@ debris = list() picked_up_item = null +/obj/structure/bed/chair/comfy/arc + non_north_layer = BELOW_OBJ_LAYER + layer = BELOW_OBJ_LAYER + /obj/structure/bed/chair/comfy/orange icon_state = "comfychair_orange" 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 65bb2fd6a963..c3f0b97e509a 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 @@ -18,8 +18,6 @@ var/mob/dead/observer/ghost_of_buckled_mob = null var/hivenumber = XENO_HIVE_NORMAL var/force_nest = FALSE - /// counterpart to buckling_y --> offsets the buckled mob when it buckles - var/list/buckling_x /obj/structure/bed/nest/Initialize(mapload, hive) . = ..() @@ -98,7 +96,7 @@ if(iscarbon(user)) var/mob/living/carbon/carbon = user if(HIVE_ALLIED_TO_HIVE(carbon.hivenumber, hivenumber)) - to_chat(user, SPAN_XENOWARNING("You shouldn't interfere with the nest, leave that to the drones.")) + to_chat(user, SPAN_XENOWARNING("We shouldn't interfere with the nest, leave that to the drones.")) return if(buckled_mob) if(iswelder(W)) @@ -116,8 +114,7 @@ playsound(loc, "alien_resin_move", 50) if(ishuman(buckled_mob)) var/mob/living/carbon/human/H = buckled_mob - user.attack_log += "\[[time_stamp()]\] Unnested [key_name(H)] at [get_location_in_text(H)]" - H.attack_log += "\[[time_stamp()]\] Unnested by [key_name(user)] at [get_location_in_text(H)]" + log_interact(user, H, "[key_name(user)] unnested [key_name(H)] at [get_area_name(loc)]") unbuckle() return if(is_sharp(W)) @@ -130,8 +127,7 @@ playsound(loc, "alien_resin_move", 50) if(ishuman(buckled_mob)) var/mob/living/carbon/human/H = buckled_mob - user.attack_log += "\[[time_stamp()]\] Unnested [key_name(H)] at [get_location_in_text(H)]" - H.attack_log += "\[[time_stamp()]\] Unnested by [key_name(user)] at [get_location_in_text(H)]" + log_interact(user, H, "[key_name(user)] unnested [key_name(H)] at [get_area_name(loc)]") unbuckle() return health = max(0, health - W.force) @@ -151,12 +147,12 @@ if(isxeno(user)) var/mob/living/carbon/xenomorph/X = user if(!X.hive.unnesting_allowed && !isxeno_builder(X) && HIVE_ALLIED_TO_HIVE(X.hivenumber, hivenumber)) - to_chat(X, SPAN_XENOWARNING("You shouldn't interfere with the nest, leave that to the drones.")) + to_chat(X, SPAN_XENOWARNING("We shouldn't interfere with the nest, leave that to the drones.")) return else if(iscarbon(user)) var/mob/living/carbon/H = user if(HIVE_ALLIED_TO_HIVE(H.hivenumber, hivenumber)) - to_chat(H, SPAN_XENOWARNING("You shouldn't interfere with the nest, leave that to the drones.")) + to_chat(H, SPAN_XENOWARNING("We shouldn't interfere with the nest, leave that to the drones.")) return if(ishuman(buckled_mob) && isxeno(user)) @@ -165,7 +161,7 @@ to_chat(user, SPAN_WARNING("[H] was nested recently. Wait a bit.")) return if(H.stat != DEAD) - if(alert(user, "[H] is still alive and kicking! Are you sure you want to remove them from the nest?", "Confirmation", "Yes", "No") != "Yes") + if(alert(user, "[H] is still alive and kicking! Are we sure we want to remove them from the nest?", "Confirmation", "Yes", "No") != "Yes") return if(!buckled_mob || !user.Adjacent(H) || user.is_mob_incapacitated(FALSE)) return @@ -180,8 +176,9 @@ playsound(loc, "alien_resin_move", 50) if(ishuman(buckled_mob)) var/mob/living/carbon/human/H = buckled_mob - user.attack_log += "\[[time_stamp()]\] Unnested [key_name(H)] at [get_location_in_text(H)]" - H.attack_log += "\[[time_stamp()]\] Unnested by [key_name(user)] at [get_location_in_text(H)]" + if(isxeno(user)) + msg_admin_niche("[key_name(user)] unnested [key_name(H)] at [get_location_in_text(H)] [ADMIN_JMP(loc)]") + log_interact(user, H, "[key_name(user)] unnested [key_name(H)] at [get_area_name(loc)]") unbuckle() return @@ -195,7 +192,7 @@ return if(isxeno(mob)) - to_chat(user, SPAN_WARNING("You can't buckle your sisters.")) + to_chat(user, SPAN_WARNING("We can't buckle our sisters.")) return if(buckled_mob) @@ -207,7 +204,7 @@ return if(!isxeno(user) || issynth(mob)) - to_chat(user, SPAN_WARNING("Gross! You're not touching that stuff.")) + to_chat(user, SPAN_WARNING("Gross! We're not touching that stuff.")) return if(isyautja(mob) && !force_nest) @@ -248,6 +245,7 @@ do_buckle(mob, user) ADD_TRAIT(mob, TRAIT_NESTED, TRAIT_SOURCE_BUCKLE) + SEND_SIGNAL(mob, COMSIG_MOB_NESTED, user) if(!human) return TRUE @@ -321,7 +319,7 @@ if(M.a_intent == INTENT_HARM && !buckled_mob) //can't slash nest with an occupant. M.animation_attack_on(src) M.visible_message(SPAN_DANGER("\The [M] claws at \the [src]!"), \ - SPAN_DANGER("You claw at \the [src].")) + SPAN_DANGER("We claw at \the [src].")) playsound(loc, "alien_resin_break", 25) health -= (M.melee_damage_upper + 25) //Beef up the damage a bit healthcheck() diff --git a/code/game/objects/structures/surface.dm b/code/game/objects/structures/surface.dm index 13a81af2dc3d..0d86f131ebbd 100644 --- a/code/game/objects/structures/surface.dm +++ b/code/game/objects/structures/surface.dm @@ -27,8 +27,8 @@ var/mouse_x = text2num(click_data["icon-x"])-1 // Ranging from 0 to 31 var/mouse_y = text2num(click_data["icon-y"])-1 - var/cell_x = Clamp(round(mouse_x/CELLSIZE), 0, CELLS-1) // Ranging from 0 to CELLS-1 - var/cell_y = Clamp(round(mouse_y/CELLSIZE), 0, CELLS-1) + var/cell_x = clamp(floor(mouse_x/CELLSIZE), 0, CELLS-1) // Ranging from 0 to CELLS-1 + var/cell_y = clamp(floor(mouse_y/CELLSIZE), 0, CELLS-1) var/list/center = cached_key_number_decode(new_item.center_of_mass) diff --git a/code/game/objects/structures/tables_racks.dm b/code/game/objects/structures/tables_racks.dm index 736427606683..a1542f7baf75 100644 --- a/code/game/objects/structures/tables_racks.dm +++ b/code/game/objects/structures/tables_racks.dm @@ -254,8 +254,6 @@ /obj/structure/surface/table/MouseDrop_T(obj/item/I, mob/user) if (!istype(I) || user.get_active_hand() != I) return ..() - if(isrobot(user)) - return user.drop_held_item() if(I.loc != loc) step(I, get_dir(I, src)) @@ -274,7 +272,9 @@ var/mob/living/M = G.grabbed_thing if(user.a_intent == INTENT_HARM) if(user.grab_level > GRAB_AGGRESSIVE) - if (prob(15)) M.apply_effect(5, WEAKEN) + if (prob(15)) + M.KnockDown(5) + M.Stun(5) M.apply_damage(8, def_zone = "head") user.visible_message(SPAN_DANGER("[user] slams [M]'s face against [src]!"), SPAN_DANGER("You slam [M]'s face against [src]!")) @@ -284,7 +284,8 @@ return else if(user.grab_level >= GRAB_AGGRESSIVE) M.forceMove(loc) - M.apply_effect(5, WEAKEN) + M.KnockDown(5) + M.Stun(5) playsound(loc, 'sound/weapons/thudswoosh.ogg', 25, 1, 7) user.visible_message(SPAN_DANGER("[user] throws [M] on [src], stunning them!"), SPAN_DANGER("You throw [M] on [src], stunning them!")) @@ -300,7 +301,7 @@ deconstruct(TRUE) return - if((W.flags_item & ITEM_ABSTRACT) || isrobot(user)) + if(W.flags_item & ITEM_ABSTRACT) return if(istype(W, /obj/item/weapon/wristblades)) @@ -352,7 +353,11 @@ set category = "Object" set src in oview(1) - if(!can_touch(usr) || ismouse(usr)) + if(!can_touch(usr)) + return + + if(usr.mob_size == MOB_SIZE_SMALL) + to_chat(usr, SPAN_WARNING("[isxeno(usr) ? "We are" : "You're"] too small to flip [src].")) return if(usr.a_intent != INTENT_HARM) @@ -656,8 +661,6 @@ /obj/structure/surface/rack/MouseDrop_T(obj/item/I, mob/user) if (!istype(I) || user.get_active_hand() != I) return ..() - if(isrobot(user)) - return user.drop_held_item() if(I.loc != loc) step(I, get_dir(I, src)) @@ -667,7 +670,7 @@ deconstruct(TRUE) playsound(src.loc, 'sound/items/Ratchet.ogg', 25, 1) return - if((W.flags_item & ITEM_ABSTRACT) || isrobot(user)) + if(W.flags_item & ITEM_ABSTRACT) return ..() diff --git a/code/game/objects/structures/tank_dispenser.dm b/code/game/objects/structures/tank_dispenser.dm index 8df4359aa5f8..129e03b7179c 100644 --- a/code/game/objects/structures/tank_dispenser.dm +++ b/code/game/objects/structures/tank_dispenser.dm @@ -95,7 +95,7 @@ if(href_list["oxygen"]) if(oxygentanks > 0) var/obj/item/tank/oxygen/O - if(oxytanks.len == oxygentanks) + if(length(oxytanks) == oxygentanks) O = oxytanks[1] oxytanks.Remove(O) else @@ -107,7 +107,7 @@ if(href_list["phoron"]) if(phorontanks > 0) var/obj/item/tank/phoron/P - if(platanks.len == phorontanks) + if(length(platanks) == phorontanks) P = platanks[1] platanks.Remove(P) else diff --git a/code/game/objects/structures/urinal.dm b/code/game/objects/structures/urinal.dm new file mode 100644 index 000000000000..c6d14f46540a --- /dev/null +++ b/code/game/objects/structures/urinal.dm @@ -0,0 +1,22 @@ +/obj/structure/urinal + name = "urinal" + desc = "The HU-452, an experimental urinal." + icon = 'icons/obj/structures/props/watercloset.dmi' + icon_state = "urinal" + density = FALSE + anchored = TRUE + +/obj/structure/urinal/attackby(obj/item/I, mob/living/user) + if(istype(I, /obj/item/grab)) + if(isxeno(user)) return + var/obj/item/grab/G = I + if(isliving(G.grabbed_thing)) + var/mob/living/GM = G.grabbed_thing + if(user.grab_level > GRAB_PASSIVE) + if(!GM.loc == get_turf(src)) + to_chat(user, SPAN_NOTICE("[GM.name] needs to be on the urinal.")) + return + user.visible_message(SPAN_DANGER("[user] slams [GM.name] into [src]!"), SPAN_NOTICE("You slam [GM.name] into [src]!")) + GM.apply_damage(8, BRUTE) + else + to_chat(user, SPAN_NOTICE("You need a tighter grip.")) diff --git a/code/game/objects/structures/vulture_spotter.dm b/code/game/objects/structures/vulture_spotter.dm index d90a1ec1615a..dc341edf0446 100644 --- a/code/game/objects/structures/vulture_spotter.dm +++ b/code/game/objects/structures/vulture_spotter.dm @@ -87,7 +87,7 @@ if(user.client) RegisterSignal(user.client, COMSIG_PARENT_QDELETING, PROC_REF(do_unscope)) user.client.change_view(scope_zoom, src) - RegisterSignal(user, list(COMSIG_MOB_PICKUP_ITEM, COMSIG_MOB_RESISTED), PROC_REF(do_unscope)) + RegisterSignal(user, list(COMSIG_MOB_PICKUP_ITEM, COMSIG_MOB_RESISTED, COMSIG_MOB_DEATH, COMSIG_LIVING_SET_BODY_POSITION), PROC_REF(do_unscope)) user.see_in_dark += darkness_view user.lighting_alpha = 127 user.sync_lighting_plane_alpha() @@ -183,7 +183,10 @@ unscope() scope_attached = FALSE desc = initial(desc) + " Though, it doesn't seem to have one attached yet." - new /obj/item/device/vulture_spotter_scope(get_turf(src), bound_rifle) + if(skillless) + new /obj/item/device/vulture_spotter_scope/skillless(get_turf(src), bound_rifle) + else + new /obj/item/device/vulture_spotter_scope(get_turf(src), bound_rifle) /// Handler for user folding up the tripod, picking it up /obj/structure/vulture_spotter_tripod/proc/fold_up(mob/user) @@ -234,7 +237,7 @@ user.lighting_alpha = user.default_lighting_alpha user.sync_lighting_plane_alpha() user.clear_fullscreen("vulture_spotter") - UnregisterSignal(user, list(COMSIG_MOB_PICKUP_ITEM, COMSIG_MOB_RESISTED)) + UnregisterSignal(user, list(COMSIG_MOB_PICKUP_ITEM, COMSIG_MOB_RESISTED, COMSIG_MOB_DEATH, COMSIG_LIVING_SET_BODY_POSITION)) user.pixel_x = 0 user.pixel_y = 0 if(user.client) @@ -295,6 +298,10 @@ return rifle.attachments["rail"] +/obj/structure/vulture_spotter_tripod/check_eye(mob/living/user) + if((user.body_position != STANDING_UP) || (get_dist(user, src) > 0) || user.is_mob_incapacitated() || !user.client) + do_unscope() + /datum/action/vulture_tripod_unscope name = "Stop Using Scope" action_icon_state = "vulture_tripod_close" diff --git a/code/game/objects/structures/watercloset.dm b/code/game/objects/structures/watercloset.dm index daf4a47a8ef6..be46d416ffdc 100644 --- a/code/game/objects/structures/watercloset.dm +++ b/code/game/objects/structures/watercloset.dm @@ -1,5 +1,3 @@ -//todo: toothbrushes, and some sort of "toilet-filthinator" for the hos - /obj/structure/toilet name = "toilet" desc = "The HT-451, a torque rotation-based, waste disposal unit for small matter. This one seems remarkably clean." @@ -9,19 +7,22 @@ anchored = TRUE can_buckle = TRUE buckle_lying = 0 - var/open = 0 //if the lid is up - var/cistern = 0 //if the cistern bit is open - var/w_items = 0 //the combined w_class of all the items in the cistern - var/mob/living/swirlie = null //the mob being given a swirlie + /// if the lid is up + var/open = 0 + /// if the cistern bit is open + var/cistern = 0 + /// the combined w_class of all the items in the cistern + var/w_items = 0 + /// the mob being given a swirlie + var/mob/living/swirlie = null var/list/buckling_y = list("north" = 1, "south" = 4, "east" = 0, "west" = 0) var/list/buckling_x = list("north" = 0, "south" = 0, "east" = -5, "west" = 4) var/atom/movable/overlay/cistern_overlay - /obj/structure/toilet/Initialize() . = ..() - open = round(rand(0, 1)) + open = floor(rand(0, 1)) cistern_overlay = new() cistern_overlay.icon = icon cistern_overlay.layer = ABOVE_MOB_LAYER @@ -29,6 +30,7 @@ vis_contents += cistern_overlay update_icon() + /obj/structure/toilet/attack_hand(mob/living/user as mob) if(buckled_mob) manual_unbuckle(user) @@ -69,7 +71,6 @@ flick("cistern[cistern]_flush", cistern_overlay) - /obj/structure/toilet/send_buckling_message(mob/M, mob/user) if (M == user) to_chat(M, SPAN_NOTICE("You seat yourself onto the toilet")) @@ -77,10 +78,10 @@ to_chat(user, SPAN_NOTICE("[M] has been seated onto the toilet by [user].")) to_chat(M, SPAN_NOTICE("You have been seated onto the toilet by [user].")) + /obj/structure/toilet/afterbuckle(mob/M) . = ..() - if(. && buckled_mob == M) var/direction = dir2text(dir) M.pixel_y = buckling_y[direction] + pixel_y @@ -106,7 +107,6 @@ M.overlays -= image("toilet00") - /obj/structure/toilet/verb/flip_lid() set name = "Flip lid" set category = "Object" @@ -116,11 +116,11 @@ update_icon() - /obj/structure/toilet/update_icon() icon_state = "toilet[open][cistern]" cistern_overlay.icon_state = "cistern[cistern]" + /obj/structure/toilet/attackby(obj/item/I, mob/living/user) if(HAS_TRAIT(I, TRAIT_TOOL_CROWBAR)) to_chat(user, SPAN_NOTICE("You start to [cistern ? "replace the lid on the cistern" : "lift the lid off the cistern"].")) @@ -168,378 +168,3 @@ w_items += I.w_class to_chat(user, "You carefully place \the [I] into the cistern.") return - - - -/obj/structure/urinal - name = "urinal" - desc = "The HU-452, an experimental urinal." - icon = 'icons/obj/structures/props/watercloset.dmi' - icon_state = "urinal" - density = FALSE - anchored = TRUE - -/obj/structure/urinal/attackby(obj/item/I, mob/living/user) - if(istype(I, /obj/item/grab)) - if(isxeno(user)) return - var/obj/item/grab/G = I - if(isliving(G.grabbed_thing)) - var/mob/living/GM = G.grabbed_thing - if(user.grab_level > GRAB_PASSIVE) - if(!GM.loc == get_turf(src)) - to_chat(user, SPAN_NOTICE("[GM.name] needs to be on the urinal.")) - return - user.visible_message(SPAN_DANGER("[user] slams [GM.name] into [src]!"), SPAN_NOTICE("You slam [GM.name] into [src]!")) - GM.apply_damage(8, BRUTE) - else - to_chat(user, SPAN_NOTICE("You need a tighter grip.")) - - - -/obj/structure/machinery/shower - name = "shower" - desc = "The HS-451. Installed in the 2050s by the Weyland Hygiene Division." - icon = 'icons/obj/structures/props/watercloset.dmi' - icon_state = "shower" - density = FALSE - anchored = TRUE - use_power = USE_POWER_NONE - var/on = 0 - var/obj/effect/mist/mymist = null - var/ismist = 0 //needs a var so we can make it linger~ - var/watertemp = "normal" //freezing, normal, or boiling - var/mobpresent = 0 //true if there is a mob on the shower's loc, this is to ease process() - var/is_washing = 0 - -/obj/structure/machinery/shower/Initialize() - . = ..() - create_reagents(2) - -//add heat controls? when emagged, you can freeze to death in it? - -/obj/effect/mist - name = "mist" - icon = 'icons/obj/structures/props/watercloset.dmi' - icon_state = "mist" - layer = FLY_LAYER - anchored = TRUE - mouse_opacity = MOUSE_OPACITY_TRANSPARENT - -/obj/structure/machinery/shower/attack_hand(mob/M as mob) - on = !on - update_icon() - if(on) - start_processing() - if (M.loc == loc) - wash(M) - check_heat(M) - for (var/atom/movable/G in src.loc) - G.clean_blood() - else - stop_processing() - -/obj/structure/machinery/shower/attackby(obj/item/I as obj, mob/user as mob) - if(I.type == /obj/item/device/analyzer) - to_chat(user, SPAN_NOTICE("The water temperature seems to be [watertemp].")) - if(HAS_TRAIT(I, TRAIT_TOOL_WRENCH)) - to_chat(user, SPAN_NOTICE("You begin to adjust the temperature valve with \the [I].")) - if(do_after(user, 50, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD)) - switch(watertemp) - if("normal") - watertemp = "freezing" - if("freezing") - watertemp = "boiling" - if("boiling") - watertemp = "normal" - user.visible_message(SPAN_NOTICE("[user] adjusts the shower with \the [I]."), SPAN_NOTICE("You adjust the shower with \the [I].")) - add_fingerprint(user) - -/obj/structure/machinery/shower/update_icon() //this is terribly unreadable, but basically it makes the shower mist up - overlays.Cut() //once it's been on for a while, in addition to handling the water overlay. - QDEL_NULL(mymist) - - if(on) - overlays += image('icons/obj/structures/props/watercloset.dmi', src, "water", MOB_LAYER + 1, dir) - if(watertemp == "freezing") - return - if(!ismist) - spawn(50) - if(src && on) - ismist = 1 - mymist = new /obj/effect/mist(loc) - else - ismist = 1 - mymist = new /obj/effect/mist(loc) - else if(ismist) - ismist = 1 - mymist = new /obj/effect/mist(loc) - spawn(250) - if(src && !on) - QDEL_NULL(mymist) - ismist = 0 - -/obj/structure/machinery/shower/Crossed(atom/movable/O) - ..() - wash(O) - if(ismob(O)) - mobpresent++ - check_heat(O) - -/obj/structure/machinery/shower/Uncrossed(atom/movable/O) - if(ismob(O)) - mobpresent-- - ..() - -//Yes, showers are super powerful as far as washing goes. -/obj/structure/machinery/shower/proc/wash(atom/movable/O as obj|mob) - if(!on) return - - - if(isliving(O)) - var/mob/living/L = O - L.ExtinguishMob() - L.fire_stacks = -20 //Douse ourselves with water to avoid fire more easily - to_chat(L, SPAN_WARNING("You've been drenched in water!")) - if(iscarbon(O)) - var/mob/living/carbon/M = O - if(M.r_hand) - M.r_hand.clean_blood() - if(M.l_hand) - M.l_hand.clean_blood() - if(M.back) - if(M.back.clean_blood()) - M.update_inv_back(0) - if(ishuman(M)) - var/mob/living/carbon/human/H = M - var/washgloves = 1 - var/washshoes = 1 - var/washmask = 1 - var/washears = 1 - var/washglasses = 1 - - if(H.wear_suit) - washgloves = !(H.wear_suit.flags_inv_hide & HIDEGLOVES) - washshoes = !(H.wear_suit.flags_inv_hide & HIDESHOES) - - if(H.head) - washmask = !(H.head.flags_inv_hide & HIDEMASK) - washglasses = !(H.head.flags_inv_hide & HIDEEYES) - washears = !(H.head.flags_inv_hide & HIDEEARS) - - if(H.wear_mask) - if (washears) - washears = !(H.wear_mask.flags_inv_hide & HIDEEARS) - if (washglasses) - washglasses = !(H.wear_mask.flags_inv_hide & HIDEEYES) - - if(H.head) - if(H.head.clean_blood()) - H.update_inv_head() - if(H.wear_suit) - if(H.wear_suit.clean_blood()) - H.update_inv_wear_suit() - else if(H.w_uniform) - if(H.w_uniform.clean_blood()) - H.update_inv_w_uniform() - if(H.gloves && washgloves) - if(H.gloves.clean_blood()) - H.update_inv_gloves() - if(H.shoes && washshoes) - if(H.shoes.clean_blood()) - H.update_inv_shoes() - if(H.wear_mask && washmask) - if(H.wear_mask.clean_blood()) - H.update_inv_wear_mask() - if(H.glasses && washglasses) - if(H.glasses.clean_blood()) - H.update_inv_glasses() - if((H.wear_l_ear || H.wear_r_ear) && washears) - if((H.wear_l_ear && H.wear_l_ear.clean_blood()) ||(H.wear_r_ear && H.wear_r_ear.clean_blood())) - H.update_inv_ears() - if(H.belt) - if(H.belt.clean_blood()) - H.update_inv_belt() - H.clean_blood(washshoes) - else - if(M.wear_mask) //if the mob is not human, it cleans the mask without asking for bitflags - if(M.wear_mask.clean_blood()) - M.update_inv_wear_mask() - M.clean_blood() - else - O.clean_blood() - - if(isturf(loc)) - var/turf/tile = loc - tile.clean_blood() - for(var/obj/effect/E in tile) - if(istype(E,/obj/effect/decal/cleanable) || istype(E,/obj/effect/overlay)) - qdel(E) - -/obj/structure/machinery/shower/process() - if(!on) return - wash_floor() - if(!mobpresent) return - for(var/mob/living/carbon/C in loc) - check_heat(C) - -/obj/structure/machinery/shower/proc/wash_floor() - if(!ismist && is_washing) - return - is_washing = 1 - var/turf/T = get_turf(src) -// reagents.add_reagent("water", 2) - T.clean(src) - addtimer(VARSET_CALLBACK(src, is_washing, FALSE), 10 SECONDS) - -/obj/structure/machinery/shower/proc/check_heat(mob/M as mob) - if(!on || watertemp == "normal") return - if(iscarbon(M)) - var/mob/living/carbon/C = M - - if(watertemp == "freezing") - C.bodytemperature = max(80, C.bodytemperature - 80) - C.recalculate_move_delay = TRUE - to_chat(C, SPAN_WARNING("The water is freezing!")) - return - if(watertemp == "boiling") - C.bodytemperature = min(500, C.bodytemperature + 35) - C.recalculate_move_delay = TRUE - C.apply_damage(5, BURN) - to_chat(C, SPAN_DANGER("The water is searing!")) - return - - - -/obj/item/toy/bikehorn/rubberducky - name = "rubber ducky" - desc = "Rubber ducky you're so fine, you make bathtime lots of fuuun. Rubber ducky I'm awfully fooooond of yooooouuuu~" //thanks doohl - icon = 'icons/obj/structures/props/watercloset.dmi' - icon_state = "rubberducky" - item_state = "rubberducky" - - - -/obj/structure/sink - name = "sink" - icon = 'icons/obj/structures/props/watercloset.dmi' - icon_state = "sink_emptied_animation" - desc = "A sink used for washing one's hands and face." - anchored = TRUE - var/busy = FALSE //Something's being washed at the moment - -/obj/structure/sink/Initialize() - . = ..() - if(prob(50)) - icon_state = "sink_emptied" - - - -/obj/structure/sink/proc/stop_flow() //sets sink animation to normal sink (without running water) - - if(prob(50)) - icon_state = "sink_emptied_animation" - else - icon_state = "sink_emptied" - flick("sink_animation_empty", src) - - - -/obj/structure/sink/attack_hand(mob/user) - if(isRemoteControlling(user)) - return - - if(!Adjacent(user)) - return - - if(busy) - to_chat(user, SPAN_DANGER("Someone's already washing here.")) - return - - to_chat(usr, SPAN_NOTICE(" You start washing your hands.")) - flick("sink_animation_fill", src) //<- play the filling animation then automatically switch back to the loop - icon_state = "sink_animation_fill_loop" //<- set it to the loop - addtimer(CALLBACK(src, PROC_REF(stop_flow)), 6 SECONDS) - playsound(loc, 'sound/effects/sinkrunning.ogg', 25, TRUE) - - busy = TRUE - sleep(40) - busy = FALSE - - if(!Adjacent(user)) return //Person has moved away from the sink - - user.clean_blood() - if(ishuman(user)) - user:update_inv_gloves() - for(var/mob/V in viewers(src, null)) - V.show_message(SPAN_NOTICE("[user] washes their hands using \the [src]."), SHOW_MESSAGE_VISIBLE) - - -/obj/structure/sink/attackby(obj/item/O as obj, mob/user as mob) - if(busy) - to_chat(user, SPAN_DANGER("Someone's already washing here.")) - return - - var/obj/item/reagent_container/RG = O - if (istype(RG) && RG.is_open_container()) - RG.reagents.add_reagent("water", min(RG.volume - RG.reagents.total_volume, RG.amount_per_transfer_from_this)) - user.visible_message(SPAN_NOTICE("[user] fills \the [RG] using \the [src]."),SPAN_NOTICE("You fill \the [RG] using \the [src].")) - return - - else if (istype(O, /obj/item/weapon/baton)) - var/obj/item/weapon/baton/B = O - if(B.bcell) - if(B.bcell.charge > 0 && B.status == 1) - flick("baton_active", src) - user.apply_effect(10, STUN) - user.stuttering = 10 - user.apply_effect(10, WEAKEN) - if(isrobot(user)) - var/mob/living/silicon/robot/R = user - R.cell.charge -= 20 - else - B.deductcharge(B.hitcost) - user.visible_message( \ - SPAN_DANGER("[user] was stunned by \his wet [O]!"), \ - SPAN_DANGER("You were stunned by your wet [O]!")) - return - - var/turf/location = user.loc - if(!isturf(location)) return - - var/obj/item/I = O - if(!I || !istype(I,/obj/item)) return - - to_chat(usr, SPAN_NOTICE(" You start washing \the [I].")) - - busy = TRUE - sleep(40) - busy = FALSE - - if(user.loc != location) return //User has moved - if(!I) return //Item's been destroyed while washing - if(user.get_active_hand() != I) return //Person has switched hands or the item in their hands - - O.clean_blood() - user.visible_message( \ - SPAN_NOTICE("[user] washes \a [I] using \the [src]."), \ - SPAN_NOTICE("You wash \a [I] using \the [src].")) - - -/obj/structure/sink/kitchen - name = "kitchen sink" - icon_state = "sink_alt" - - -/obj/structure/sink/puddle //splishy splashy ^_^ - name = "puddle" - icon_state = "puddle" - -/obj/structure/sink/puddle/attack_hand(mob/M as mob) - icon_state = "puddle-splash" - ..() - icon_state = "puddle" - -/obj/structure/sink/puddle/attackby(obj/item/O as obj, mob/user as mob) - icon_state = "puddle-splash" - ..() - icon_state = "puddle" diff --git a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm index 61552896f6f1..154cc43d4af2 100644 --- a/code/game/objects/structures/window.dm +++ b/code/game/objects/structures/window.dm @@ -286,7 +286,7 @@ to_chat(user, (state ? SPAN_NOTICE("You have pried the window into the frame.") : SPAN_NOTICE("You have pried the window out of the frame."))) else if(!not_damageable) //Impossible to destroy - health -= W.force + health -= W.force * W.demolition_mod if(health <= 7 && !reinf && !static_frame && !not_deconstructable) anchored = FALSE update_nearby_icons() @@ -360,7 +360,7 @@ /obj/structure/window/fire_act(exposed_temperature, exposed_volume) if(exposed_temperature > T0C + 800) if(!not_damageable) - health -= round(exposed_volume / 100) + health -= floor(exposed_volume / 100) healthcheck(0) //Don't make hit sounds, it's dumb with fire/heat ..() @@ -373,7 +373,7 @@ /obj/structure/window/phoronbasic/fire_act(exposed_temperature, exposed_volume) if(exposed_temperature > T0C + 32000) - health -= round(exposed_volume / 1000) + health -= floor(exposed_volume / 1000) healthcheck(0) //Don't make hit sounds, it's dumb with fire/heat ..() @@ -455,11 +455,8 @@ /obj/structure/window/reinforced/ultra/Initialize() . = ..() - GLOB.hijack_bustable_windows += src - -/obj/structure/window/reinforced/ultra/Destroy() - GLOB.hijack_bustable_windows -= src - return ..() + if(is_mainship_level(z)) + RegisterSignal(SSdcs, COMSIG_GLOB_HIJACK_IMPACTED, PROC_REF(deconstruct)) /obj/structure/window/reinforced/full flags_atom = FPRINT @@ -585,11 +582,9 @@ /obj/structure/window/framed/almayer/hull/hijack_bustable/Initialize() . = ..() - GLOB.hijack_bustable_windows += src + if(is_mainship_level(z)) + RegisterSignal(SSdcs, COMSIG_GLOB_HIJACK_IMPACTED, PROC_REF(deconstruct)) -/obj/structure/window/framed/almayer/hull/hijack_bustable/Destroy() - GLOB.hijack_bustable_windows -= src - return ..() /obj/structure/window/framed/almayer/white icon_state = "white_rwindow0" basestate = "white_rwindow" @@ -604,6 +599,56 @@ unacidable = TRUE health = 1000000 //Failsafe, shouldn't matter +/obj/structure/window/framed/almayer/aicore + icon_state = "ai_rwindow0" + basestate = "ai_rwindow" + window_frame = /obj/structure/window_frame/almayer/aicore + +/obj/structure/window/framed/almayer/aicore/hull + name = "hull window" + desc = "An ultra-reinforced window designed to protect the AI Core. Made out of exotic materials to prevent hull breaches, nothing will get through here." + not_damageable = TRUE + not_deconstructable = TRUE + unslashable = TRUE + unacidable = TRUE + health = 1000000 //Failsafe, shouldn't matter + +/obj/structure/window/framed/almayer/aicore/white + icon_state = "w_ai_rwindow0" + basestate = "w_ai_rwindow" + window_frame = /obj/structure/window_frame/almayer/aicore/white + +/obj/structure/window/framed/almayer/aicore/black + icon_state = "alm_ai_rwindow0" + basestate = "alm_ai_rwindow" + window_frame = /obj/structure/window_frame/almayer/aicore/black + +/obj/structure/window/framed/almayer/aicore/hull/black + icon_state = "alm_ai_rwindow0" + basestate = "alm_ai_rwindow" + window_frame = /obj/structure/window_frame/almayer/aicore/black + not_damageable = TRUE + not_deconstructable = TRUE + unslashable = TRUE + unacidable = TRUE + health = 1000000 //Failsafe, shouldn't matter + +/obj/structure/window/framed/almayer/aicore/hull/black/hijack_bustable //I exist to explode after hijack, that is all. + +/obj/structure/window/framed/almayer/aicore/hull/black/hijack_bustable/Initialize() + . = ..() + if(is_mainship_level(z)) + RegisterSignal(SSdcs, COMSIG_GLOB_HIJACK_IMPACTED, PROC_REF(deconstruct)) + +/obj/structure/window/framed/almayer/aicore/white/hull + name = "hull window" + desc = "An ultra-reinforced window designed to protect the AI Core. Made out of exotic materials to prevent hull breaches, nothing will get through here." + not_damageable = TRUE + not_deconstructable = TRUE + unslashable = TRUE + unacidable = TRUE + health = 1000000 //Failsafe, shouldn't matter + /obj/structure/window/framed/colony name = "window" icon_state = "col_window0" diff --git a/code/game/objects/structures/window_frame.dm b/code/game/objects/structures/window_frame.dm index 2c165b424dad..ae40be1472ad 100644 --- a/code/game/objects/structures/window_frame.dm +++ b/code/game/objects/structures/window_frame.dm @@ -174,6 +174,21 @@ basestate = "white_window" window_type = /obj/structure/window/framed/almayer/white +/obj/structure/window_frame/almayer/aicore + icon_state = "ai_window0_frame" + basestate = "ai_window" + window_type = /obj/structure/window/framed/almayer/aicore + +/obj/structure/window_frame/almayer/aicore/white + icon_state = "w_ai_window0_frame" + basestate = "w_ai_window" + window_type = /obj/structure/window/framed/almayer/aicore/white + +/obj/structure/window_frame/almayer/aicore/black + icon_state = "alm_window0_frame" + basestate = "alm_window" + window_type = /obj/structure/window/framed/almayer/aicore/black + /obj/structure/window_frame/almayer/requisitions/attackby(obj/item/W, mob/living/user) if(istype(W, sheet_type)) to_chat(user, SPAN_WARNING("You can't repair this window.")) diff --git a/code/game/runtimes.dm b/code/game/runtimes.dm index 2cdc955aa426..41c18c221ae7 100644 --- a/code/game/runtimes.dm +++ b/code/game/runtimes.dm @@ -28,7 +28,7 @@ GLOBAL_REAL_VAR(total_runtimes) if(!full_init_runtimes) full_init_runtimes = list() - // If this occured during early init, we store the full error to write it to world.log when it's available + // If this occurred during early init, we store the full error to write it to world.log when it's available if(!runtime_logging_ready) full_init_runtimes += E.desc diff --git a/code/game/sim_manager/datums/simulator.dm b/code/game/sim_manager/datums/simulator.dm index bf99c65ee66f..1f1aedad8153 100644 --- a/code/game/sim_manager/datums/simulator.dm +++ b/code/game/sim_manager/datums/simulator.dm @@ -1,18 +1,21 @@ +#define GRID_CLEARING_SIZE 16 + /datum/simulator // Necessary to prevent multiple users from simulating at the same time. var/static/detonation_cooldown = 0 + var/static/detonation_cooldown_time = 2 MINUTES var/static/sim_reboot_state = TRUE - var/looking_at_simulation = FALSE - var/detonation_cooldown_time = 2 MINUTES var/dummy_mode = CLF_MODE var/obj/structure/machinery/camera/simulation/sim_camera - var/grid_clearing_size = 16 // garbage collection, var/static/list/delete_targets = list() + // list of users currently inside the simulator + var/static/list/users_in_sim = list() + /* unarmoured humans are unnencessary clutter as they tend to explode easily and litter the sim room with body parts, best left out. @@ -29,7 +32,7 @@ /datum/simulator/proc/start_watching(mob/living/user) - if(looking_at_simulation) + if(user in users_in_sim) to_chat(user, SPAN_WARNING("You are already looking at the simulation.")) return if(!sim_camera) @@ -41,13 +44,15 @@ to_chat(user, SPAN_WARNING("You're too busy looking at something else.")) return user.reset_view(sim_camera) - looking_at_simulation = TRUE + users_in_sim += user /datum/simulator/proc/stop_watching(mob/living/user) + if(!(user in users_in_sim)) + return user.unset_interaction() user.reset_view(null) user.cameraFollow = null - looking_at_simulation = FALSE + users_in_sim -= user /datum/simulator/proc/sim_turf_garbage_collection() @@ -67,8 +72,8 @@ y:2 | x: 1 2 3 4 ... 16 y:1 | x: 1 2 3 4 ... 16 */ - for (var/y_pos in 1 to grid_clearing_size)// outer y - for (var/x_pos in 1 to grid_clearing_size) // inner x + for (var/y_pos in 1 to GRID_CLEARING_SIZE)// outer y + for (var/x_pos in 1 to GRID_CLEARING_SIZE) // inner x var/turf/current_grid = locate(sim_grid_start_pos.x + x_pos,sim_grid_start_pos.y + y_pos,sim_grid_start_pos.z) current_grid.empty(/turf/open/floor/engine) @@ -101,3 +106,4 @@ addtimer(CALLBACK(src, PROC_REF(sim_turf_garbage_collection)), 30 SECONDS, TIMER_STOPPABLE) +#undef GRID_CLEARING_SIZE diff --git a/code/game/sound.dm b/code/game/sound.dm index 6adaab109794..1ab8fc42f41a 100644 --- a/code/game/sound.dm +++ b/code/game/sound.dm @@ -1,3 +1,5 @@ +/sound + echo = SOUND_ECHO_REVERB_OFF //disable enviroment reverb by default, soundOutput re-enables for positional sounds /datum/sound_template //Basically a sound datum, but only serves as a way to carry info to soundOutput var/file //The sound itself @@ -11,7 +13,6 @@ var/falloff = 1 var/volume_cat = VOLUME_SFX var/range = 0 - var/list/echo var/x //Map coordinates, not sound coordinates var/y var/z @@ -35,7 +36,7 @@ //status: the regular 4 sound flags //falloff: max range till sound volume starts dropping as distance increases -/proc/playsound(atom/source, soundin, vol = 100, vary = FALSE, sound_range, vol_cat = VOLUME_SFX, channel = 0, status , falloff = 1, echo, y_s_offset,x_s_offset) +/proc/playsound(atom/source, soundin, vol = 100, vary = FALSE, sound_range, vol_cat = VOLUME_SFX, channel = 0, status , falloff = 1, y_s_offset,x_s_offset) if(isarea(source)) error("[source] is an area and is trying to make the sound: [soundin]") return FALSE @@ -53,7 +54,6 @@ S.falloff = falloff S.volume = vol S.volume_cat = vol_cat - S.echo = echo S.y_s_offset = y_s_offset S.x_s_offset = x_s_offset if(vary != FALSE) @@ -63,7 +63,7 @@ S.frequency = GET_RANDOM_FREQ // Same frequency for everybody if(!sound_range) - sound_range = round(0.25*vol) //if no specific range, the max range is equal to a quarter of the volume. + sound_range = floor(0.25*vol) //if no specific range, the max range is equal to a quarter of the volume. S.range = sound_range var/turf/turf_source = get_turf(source) @@ -100,8 +100,8 @@ //This is the replacement for playsound_local. Use this for sending sounds directly to a client -/proc/playsound_client(client/C, soundin, atom/origin, vol = 100, random_freq, vol_cat = VOLUME_SFX, channel = 0, status, list/echo, y_s_offset, x_s_offset) - if(!istype(C) || !C.soundOutput) return FALSE +/proc/playsound_client(client/client, soundin, atom/origin, vol = 100, random_freq, vol_cat = VOLUME_SFX, channel = 0, status, y_s_offset, x_s_offset) + if(!istype(client) || !client.soundOutput) return FALSE var/datum/sound_template/S = new() if(origin) var/turf/T = get_turf(origin) @@ -123,10 +123,9 @@ S.volume_cat = vol_cat S.channel = channel S.status = status - S.echo = echo S.y_s_offset = y_s_offset S.x_s_offset = x_s_offset - SSsound.queue(S, list(C)) + SSsound.queue(S, list(client)) /// Plays sound to all mobs that are map-level contents of an area /proc/playsound_area(area/A, soundin, vol = 100, channel = 0, status, vol_cat = VOLUME_SFX, list/echo, y_s_offset, x_s_offset) @@ -154,13 +153,12 @@ /// Play sound for all on-map clients on a given Z-level. Good for ambient sounds. -/proc/playsound_z(z, soundin, volume = 100, vol_cat = VOLUME_SFX, echo, y_s_offset, x_s_offset) +/proc/playsound_z(z, soundin, volume = 100, vol_cat = VOLUME_SFX, y_s_offset, x_s_offset) var/datum/sound_template/S = new() S.file = soundin S.volume = volume S.channel = SOUND_CHANNEL_Z S.volume_cat = vol_cat - S.echo = echo S.y_s_offset = y_s_offset S.x_s_offset = x_s_offset var/list/hearers = list() @@ -324,6 +322,8 @@ S = pick('sound/effects/alien_resin_move1.ogg','sound/effects/alien_resin_move2.ogg') if("alien_talk") S = pick('sound/voice/alien_talk.ogg','sound/voice/alien_talk2.ogg','sound/voice/alien_talk3.ogg') + if("larva_talk") + S = pick('sound/voice/larva_talk1.ogg','sound/voice/larva_talk2.ogg','sound/voice/larva_talk3.ogg','sound/voice/larva_talk4.ogg') if("hiss_talk") S = pick('sound/voice/hiss2.ogg','sound/voice/hiss3.ogg','sound/voice/hiss4.ogg') if("alien_growl") @@ -344,7 +344,7 @@ S = pick('sound/voice/alien_queen_command.ogg','sound/voice/alien_queen_command2.ogg','sound/voice/alien_queen_command3.ogg') // Human if("male_scream") - S = pick('sound/voice/human_male_scream_1.ogg','sound/voice/human_male_scream_2.ogg','sound/voice/human_male_scream_3.ogg','sound/voice/human_male_scream_4.ogg',5;'sound/voice/human_male_scream_5.ogg',5;'sound/voice/human_jackson_scream.ogg',5;'sound/voice/human_ack_scream.ogg') + S = pick('sound/voice/human_male_scream_1.ogg','sound/voice/human_male_scream_2.ogg','sound/voice/human_male_scream_3.ogg','sound/voice/human_male_scream_4.ogg',5;'sound/voice/human_male_scream_5.ogg',5;'sound/voice/human_jackson_scream.ogg',5;'sound/voice/human_ack_scream.ogg','sound/voice/human_male_scream_6.ogg') if("male_pain") S = pick('sound/voice/human_male_pain_1.ogg','sound/voice/human_male_pain_2.ogg','sound/voice/human_male_pain_3.ogg',5;'sound/voice/tomscream.ogg',5;'sound/voice/human_bobby_pain.ogg',5;'sound/voice/human_tantrum_scream.ogg', 5;'sound/voice/human_male_pain_rare_1.ogg') if("male_fragout") @@ -405,4 +405,4 @@ set category = "Debug" for(var/sound/S in SoundQuery()) - UNLINT(to_chat(src, "channel#[S.channel]: [S.status] - [S.file] - len=[S.len], wait=[S.wait], offset=[S.offset], repeat=[S.repeat]")) // unlint until spacemandmm suite-1.7 + UNLINT(to_chat(src, "channel#[S.channel]: [S.status] - [S.file] - len=[length(S)], wait=[S.wait], offset=[S.offset], repeat=[S.repeat]")) // unlint until spacemandmm suite-1.7 diff --git a/code/game/supplyshuttle.dm b/code/game/supplyshuttle.dm index b689f7b33df3..c5a675b531d2 100644 --- a/code/game/supplyshuttle.dm +++ b/code/game/supplyshuttle.dm @@ -17,29 +17,25 @@ GLOBAL_DATUM_INIT(supply_controller, /datum/controller/supply, new()) /area/supply ceiling = CEILING_METAL -/area/supply/station //DO NOT TURN THE lighting_use_dynamic STUFF ON FOR SHUTTLES. IT BREAKS THINGS. +/area/supply/station name = "Supply Shuttle" icon_state = "shuttle3" - base_lighting_alpha = 255 requires_power = 0 ambience_exterior = AMBIENCE_ALMAYER -/area/supply/dock //DO NOT TURN THE lighting_use_dynamic STUFF ON FOR SHUTTLES. IT BREAKS THINGS. +/area/supply/dock name = "Supply Shuttle" icon_state = "shuttle3" - base_lighting_alpha = 255 requires_power = 0 -/area/supply/station_vehicle //DO NOT TURN THE lighting_use_dynamic STUFF ON FOR SHUTTLES. IT BREAKS THINGS. +/area/supply/station_vehicle name = "Vehicle ASRS" icon_state = "shuttle3" - base_lighting_alpha = 255 requires_power = 0 -/area/supply/dock_vehicle //DO NOT TURN THE lighting_use_dynamic STUFF ON FOR SHUTTLES. IT BREAKS THINGS. +/area/supply/dock_vehicle name = "Vehicle ASRS" icon_state = "shuttle3" - base_lighting_alpha = 255 requires_power = 0 //SUPPLY PACKS MOVED TO /code/defines/obj/supplypacks.dm @@ -293,8 +289,8 @@ GLOBAL_DATUM_INIT(supply_controller, /datum/controller/supply, new()) /obj/structure/machinery/computer/supply_drop_console/proc/handle_supplydrop() SHOULD_NOT_SLEEP(TRUE) - var/obj/structure/closet/crate/C = check_pad() - if(!C) + var/obj/structure/closet/crate/crate = check_pad() + if(!crate) to_chat(usr, "[icon2html(src, usr)] [SPAN_WARNING("No crate was detected on the drop pad. Get Requisitions on the line!")]") return @@ -320,19 +316,25 @@ GLOBAL_DATUM_INIT(supply_controller, /datum/controller/supply, new()) to_chat(usr, "[icon2html(src, usr)] [SPAN_WARNING("The landing zone appears to be obstructed or out of bounds. Package would be lost on drop.")]") return - C.visible_message(SPAN_WARNING("\The [C] loads into a launch tube. Stand clear!")) - current_squad.send_message("'[C.name]' supply drop incoming. Heads up!") - current_squad.send_maptext(C.name, "Incoming Supply Drop:") + if(crate.opened) + to_chat(usr, "[icon2html(src, usr)] [SPAN_WARNING("The crate is not secure on the drop pad. Please close it!")]") + return + + crate.visible_message(SPAN_WARNING("\The [crate] loads into a launch tube. Stand clear!")) + current_squad.send_message("'[crate.name]' supply drop incoming. Heads up!") + current_squad.send_maptext(crate.name, "Incoming Supply Drop:") COOLDOWN_START(src, next_fire, drop_cooldown) if(ismob(usr)) var/mob/M = usr M.count_niche_stat(STATISTICS_NICHE_CRATES) - playsound(C.loc,'sound/effects/bamf.ogg', 50, 1) //Ehh - var/obj/structure/droppod/supply/pod = new(null, C) - C.forceMove(pod) + playsound(crate.loc,'sound/effects/bamf.ogg', 50, 1) //Ehh + var/obj/structure/droppod/supply/pod = new(null, crate) + crate.forceMove(pod) pod.launch(T) - visible_message("[icon2html(src, viewers(src))] [SPAN_BOLDNOTICE("'[C.name]' supply drop launched! Another launch will be available in five minutes.")]") + log_ares_requisition("Supply Drop", "Launch [crate.name] to X[x_supply], Y[y_supply].", usr.real_name) + log_game("[key_name(usr)] launched supply drop '[crate.name]' to X[x_coord], Y[y_coord].") + visible_message("[icon2html(src, viewers(src))] [SPAN_BOLDNOTICE("'[crate.name]' supply drop launched! Another launch will be available in five minutes.")]") //A limited version of the above console //Can't pick squads, drops less often @@ -387,7 +389,7 @@ GLOBAL_DATUM_INIT(supply_controller, /datum/controller/supply, new()) ///How close the CMB is to investigating | 100 sends an ERT var/black_market_heat = 0 - /// This contains a list of all typepaths of sold items and how many times they've been recieved. Used to calculate points dropoff (Can't send down a hundred blue souto cans for infinite points) + /// This contains a list of all typepaths of sold items and how many times they've been received. Used to calculate points dropoff (Can't send down a hundred blue souto cans for infinite points) var/list/black_market_sold_items /// If the players killed him by sending a live hostile below.. this goes false and they can't order any more contraband. @@ -414,6 +416,7 @@ GLOBAL_DATUM_INIT(supply_controller, /datum/controller/supply, new()) "Operations", "Weapons", "Vehicle Ammo", + "Vehicle Equipment", "Attachments", "Ammo", "Weapons Specialist Ammo", @@ -434,6 +437,7 @@ GLOBAL_DATUM_INIT(supply_controller, /datum/controller/supply, new()) "Seized Items", "Shipside Contraband", "Surplus Equipment", + "Contraband Ammo", "Deep Storage", "Miscellaneous" ) @@ -468,7 +472,7 @@ GLOBAL_DATUM_INIT(supply_controller, /datum/controller/supply, new()) return for(var/pool in base_random_crate_intervals) var/interval = base_random_crate_intervals[pool] - if(interval && iteration % interval == 0 && shoppinglist.len <= 20) + if(interval && iteration % interval == 0 && length(shoppinglist) <= 20) add_random_crates(pool) crate_iteration++ @@ -490,13 +494,13 @@ GLOBAL_DATUM_INIT(supply_controller, /datum/controller/supply, new()) if(crate_iteration <= 5 && crate_amount < 4) crate_amount = 4 - var/unit_crate_amount = round(crate_amount) + var/unit_crate_amount = floor(crate_amount) var/carry = crate_amount - unit_crate_amount random_crates_carry[pool] += carry var/total_carry = random_crates_carry[pool] if(total_carry >= 1) - var/additional_crates = round(total_carry) + var/additional_crates = floor(total_carry) random_crates_carry[pool] -= additional_crates unit_crate_amount += additional_crates @@ -512,7 +516,7 @@ GLOBAL_DATUM_INIT(supply_controller, /datum/controller/supply, new()) if(!GLOB.supply_packs_datums[supply_info.reference_package]) return - supply_info.cost = round(supply_info.cost * ASRS_COST_MULTIPLIER) //We still do this to raise the weight + supply_info.cost = floor(supply_info.cost * ASRS_COST_MULTIPLIER) //We still do this to raise the weight //We have to create a supply order to make the system spawn it. Here we transform a crate into an order. var/datum/supply_order/supply_order = new /datum/supply_order() supply_order.ordernum = ordernum++ @@ -526,7 +530,7 @@ GLOBAL_DATUM_INIT(supply_controller, /datum/controller/supply, new()) /datum/controller/supply/proc/pick_weighted_crate(list/datum/supply_packs_asrs/cratelist) var/list/datum/supply_packs_asrs/weighted_crate_list = list() for(var/datum/supply_packs_asrs/crate in cratelist) - var/weight = (round(10000/crate.cost)) + var/weight = (floor(10000/crate.cost)) weighted_crate_list[crate] = weight return pickweight(weighted_crate_list) @@ -535,7 +539,7 @@ GLOBAL_DATUM_INIT(supply_controller, /datum/controller/supply, new()) if(istype(A,/mob/living) && !black_market_enabled) return TRUE - for(var/i=1, i<=A.contents.len, i++) + for(var/i=1, i<=length(A.contents), i++) var/atom/B = A.contents[i] if(.(B)) return 1 @@ -556,7 +560,7 @@ GLOBAL_DATUM_INIT(supply_controller, /datum/controller/supply, new()) for(var/atom/movable/movable_atom in area_shuttle) if(istype(movable_atom, /obj/item/paper/manifest)) var/obj/item/paper/manifest/M = movable_atom - if(M.stamped && M.stamped.len) + if(LAZYLEN(M.stamped)) points += points_per_slip //black market points @@ -597,19 +601,19 @@ GLOBAL_DATUM_INIT(supply_controller, /datum/controller/supply, new()) //Buyin /datum/controller/supply/proc/buy() var/area/area_shuttle = shuttle?.get_location_area() - if(!area_shuttle || !shoppinglist.len) + if(!area_shuttle || !length(shoppinglist)) return // Try to find an available turf to place our package var/list/turf/clear_turfs = list() for(var/turf/T in area_shuttle) - if(T.density || T.contents?.len) + if(T.density || LAZYLEN(T.contents)) continue clear_turfs += T for(var/datum/supply_order/order in shoppinglist) // No space! Forget buying, it's no use. - if(!clear_turfs.len) + if(!length(clear_turfs)) shoppinglist.Cut() return @@ -671,9 +675,12 @@ GLOBAL_DATUM_INIT(supply_controller, /datum/controller/supply, new()) var/list/packages -/obj/item/paper/manifest/read_paper(mob/user) +/obj/item/paper/manifest/read_paper(mob/user, scramble = FALSE) + var/paper_info = info + if(scramble) + paper_info = stars_decode_html(info) // Tossing ref in widow id as this allows us to read multiple manifests at same time - show_browser(user, "[info][stamps]", null, "manifest\ref[src]", "size=550x650") + show_browser(user, "[paper_info][stamps]", null, "manifest\ref[src]", "size=550x650") onclose(user, "manifest\ref[src]") /obj/item/paper/manifest/proc/generate_contents() @@ -709,7 +716,7 @@ GLOBAL_DATUM_INIT(supply_controller, /datum/controller/supply, new()) Approved by: \ [approvedby] \ # packages: \ - [packages.len] \ + [length(packages)] \

        Contents

        \
          " @@ -753,7 +760,7 @@ GLOBAL_DATUM_INIT(supply_controller, /datum/controller/supply, new()) if(..()) return - if( isturf(loc) && (in_range(src, usr) || ishighersilicon(usr)) ) + if( isturf(loc) && (in_range(src, usr) || isSilicon(usr)) ) usr.set_interaction(src) if(href_list["order"]) @@ -775,7 +782,7 @@ GLOBAL_DATUM_INIT(supply_controller, /datum/controller/supply, new()) var/datum/supply_packs/supply_pack = GLOB.supply_packs_datums[supply_type] if(supply_pack.contraband || supply_pack.group != last_viewed_group || !supply_pack.buyable) continue //Have to send the type instead of a reference to - temp += "[supply_pack.name] Cost: $[round(supply_pack.cost) * SUPPLY_TO_MONEY_MUPLTIPLIER]
          " //the obj because it would get caught by the garbage + temp += "[supply_pack.name] Cost: $[floor(supply_pack.cost) * SUPPLY_TO_MONEY_MUPLTIPLIER]
          " //the obj because it would get caught by the garbage else if (href_list["doorder"]) if(world.time < reqtime) @@ -803,7 +810,7 @@ GLOBAL_DATUM_INIT(supply_controller, /datum/controller/supply, new()) var/mob/living/carbon/human/H = usr idname = H.get_authentification_name() idrank = H.get_assignment() - else if(ishighersilicon(usr)) + else if(isSilicon(usr)) idname = usr.real_name GLOB.supply_controller.ordernum++ @@ -925,10 +932,7 @@ GLOBAL_DATUM_INIT(supply_controller, /datum/controller/supply, new()) if(..()) return - if(ismaintdrone(usr)) - return - - if(isturf(loc) && ( in_range(src, usr) || ishighersilicon(usr) ) ) + if(isturf(loc) && in_range(src, usr) ) usr.set_interaction(src) //Calling the shuttle @@ -977,7 +981,7 @@ GLOBAL_DATUM_INIT(supply_controller, /datum/controller/supply, new()) var/datum/supply_packs/supply_pack = GLOB.supply_packs_datums[supply_type] if(!is_buyable(supply_pack)) continue - temp += "[supply_pack.name] Cost: $[round(supply_pack.cost) * SUPPLY_TO_MONEY_MUPLTIPLIER]
          " //the obj because it would get caught by the garbage + temp += "[supply_pack.name] Cost: $[floor(supply_pack.cost) * SUPPLY_TO_MONEY_MUPLTIPLIER]
          " //the obj because it would get caught by the garbage else if (href_list["doorder"]) if(world.time < reqtime) @@ -1046,19 +1050,19 @@ GLOBAL_DATUM_INIT(supply_controller, /datum/controller/supply, new()) temp = "Invalid Request" temp += "
          Back|Main Menu" - if(GLOB.supply_controller.shoppinglist.len > 20) + if(length(GLOB.supply_controller.shoppinglist) > 20) to_chat(usr, SPAN_DANGER("Current retrieval load has reached maximum capacity.")) return - for(var/i=1, i<=GLOB.supply_controller.requestlist.len, i++) + for(var/i=1, i<=length(GLOB.supply_controller.requestlist), i++) var/datum/supply_order/SO = GLOB.supply_controller.requestlist[i] if(SO.ordernum == ordernum) supply_order = SO supply_pack = supply_order.object - if(GLOB.supply_controller.points >= round(supply_pack.cost) && GLOB.supply_controller.black_market_points >= supply_pack.dollar_cost) + if(GLOB.supply_controller.points >= floor(supply_pack.cost) && GLOB.supply_controller.black_market_points >= supply_pack.dollar_cost) GLOB.supply_controller.requestlist.Cut(i,i+1) - GLOB.supply_controller.points -= round(supply_pack.cost) - GLOB.supply_controller.black_market_points -= round(supply_pack.dollar_cost) + GLOB.supply_controller.points -= floor(supply_pack.cost) + GLOB.supply_controller.black_market_points -= floor(supply_pack.dollar_cost) if(GLOB.supply_controller.black_market_heat != -1) //-1 Heat means heat is disabled GLOB.supply_controller.black_market_heat = clamp(GLOB.supply_controller.black_market_heat + supply_pack.crate_heat + (supply_pack.crate_heat * rand(rand(-0.25,0),0.25)), 0, 100) // black market heat added is crate heat +- up to 25% of crate heat GLOB.supply_controller.shoppinglist += supply_order @@ -1066,7 +1070,7 @@ GLOBAL_DATUM_INIT(supply_controller, /datum/controller/supply, new()) temp = "Thank you for your order.
          " temp += "
          Back Main Menu" supply_order.approvedby = usr.name - msg_admin_niche("[usr] confirmed supply order of [supply_pack.name].") + msg_admin_niche("[key_name(usr)] confirmed supply order of [supply_pack.name].") if(GLOB.supply_controller.black_market_heat == 100) GLOB.supply_controller.black_market_investigation() var/pack_source = "Cargo Hold" @@ -1111,7 +1115,7 @@ GLOBAL_DATUM_INIT(supply_controller, /datum/controller/supply, new()) else if (href_list["rreq"]) var/ordernum = text2num(href_list["rreq"]) temp = "Invalid Request.
          " - for(var/i=1, i<=GLOB.supply_controller.requestlist.len, i++) + for(var/i=1, length(i<=GLOB.supply_controller.requestlist), i++) var/datum/supply_order/SO = GLOB.supply_controller.requestlist[i] if(SO.ordernum == ordernum) GLOB.supply_controller.requestlist.Cut(i,i+1) @@ -1157,7 +1161,7 @@ GLOBAL_DATUM_INIT(supply_controller, /datum/controller/supply, new()) var/datum/supply_packs/supply_pack = GLOB.supply_packs_datums[supply_type] if(!is_buyable(supply_pack)) continue - temp += "[supply_pack.name] Cost: $[round(supply_pack.dollar_cost)]
          " + temp += "[supply_pack.name] Cost: $[floor(supply_pack.dollar_cost)]
          " /obj/structure/machinery/computer/supplycomp/proc/handle_mendoza_dialogue() @@ -1255,7 +1259,7 @@ GLOBAL_DATUM_INIT(supply_controller, /datum/controller/supply, new()) if(!area_shuttle) return for(var/turf/elevator_turfs in area_shuttle) - if(elevator_turfs.density || elevator_turfs.contents?.len) + if(elevator_turfs.density || LAZYLEN(elevator_turfs.contents)) continue clear_turfs |= elevator_turfs var/turf/chosen_turf = pick(clear_turfs) @@ -1281,7 +1285,7 @@ GLOBAL_DATUM_INIT(supply_controller, /datum/controller/supply, new()) /datum/controller/supply/proc/black_market_investigation() black_market_heat = -1 - SSticker.mode.get_specific_call("Inspection - Colonial Marshal Ledger Investigation Team", TRUE, TRUE) + SSticker.mode.get_specific_call(/datum/emergency_call/inspection_cmb/black_market, TRUE, TRUE) // "Inspection - Colonial Marshals Ledger Investigation Team" log_game("Black Market Inspection auto-triggered.") /obj/structure/machinery/computer/supplycomp/proc/is_buyable(datum/supply_packs/supply_pack) @@ -1319,9 +1323,9 @@ GLOBAL_DATUM_INIT(supply_controller, /datum/controller/supply, new()) req_access = list(ACCESS_MARINE_CREWMAN) circuit = /obj/item/circuitboard/computer/supplycomp/vehicle // Can only retrieve one vehicle per round - var/spent = TRUE - var/tank_unlocked = FALSE - var/list/allowed_roles = list(JOB_CREWMAN) + var/spent = FALSE + var/tank_unlocked = TRUE + var/list/allowed_roles = list(JOB_TANK_CREW) var/list/vehicles @@ -1369,13 +1373,18 @@ GLOBAL_DATUM_INIT(supply_controller, /datum/controller/supply, new()) name = "Barebones M577 Armored Personal Carrier" ordered_vehicle = /obj/effect/vehicle_spawner/apc/unarmed/broken +/datum/vehicle_order/arc + name = "M540-B Armored Recon Carrier" + ordered_vehicle = /obj/effect/vehicle_spawner/arc + +/datum/vehicle_order/arc/has_vehicle_lock() + return + /obj/structure/machinery/computer/supplycomp/vehicle/Initialize() . = ..() vehicles = list( - new /datum/vehicle_order/apc(), - new /datum/vehicle_order/apc/med(), - new /datum/vehicle_order/apc/cmd(), + new /datum/vehicle_order/tank/plain ) if(!GLOB.VehicleElevatorConsole) @@ -1406,11 +1415,13 @@ GLOBAL_DATUM_INIT(supply_controller, /datum/controller/supply, new()) return dat += "Platform position: " - if (SSshuttle.vehicle_elevator.timeLeft()) + if (SSshuttle.vehicle_elevator.mode != SHUTTLE_IDLE) dat += "Moving" else if(is_mainship_level(SSshuttle.vehicle_elevator.z)) dat += "Raised" + if(!spent) + dat += "
          \[Lower\]" else dat += "Lowered" dat += "

          " @@ -1446,18 +1457,12 @@ GLOBAL_DATUM_INIT(supply_controller, /datum/controller/supply, new()) world.log << "## ERROR: Eek. The supply/elevator datum is missing somehow." return - if(!is_admin_level(SSshuttle.vehicle_elevator.z)) - to_chat(usr, SPAN_WARNING("The elevator needs to be in the cargo bay dock to call a vehicle up. Ask someone to send it away.")) - return - - if(ismaintdrone(usr)) - return - - if(isturf(loc) && ( in_range(src, usr) || ishighersilicon(usr) ) ) + if(isturf(loc) && ( in_range(src, usr) || isSilicon(usr) ) ) usr.set_interaction(src) if(href_list["get_vehicle"]) - if(is_mainship_level(SSshuttle.vehicle_elevator.z)) + if(is_mainship_level(SSshuttle.vehicle_elevator.z) || SSshuttle.vehicle_elevator.mode != SHUTTLE_IDLE) + to_chat(usr, SPAN_WARNING("The elevator needs to be in the cargo bay dock to call a vehicle up!")) return // dunno why the +1 is needed but the vehicles spawn off-center var/turf/middle_turf = get_turf(SSshuttle.vehicle_elevator) @@ -1465,10 +1470,11 @@ GLOBAL_DATUM_INIT(supply_controller, /datum/controller/supply, new()) var/obj/vehicle/multitile/ordered_vehicle var/datum/vehicle_order/VO = locate(href_list["get_vehicle"]) + if(!(VO in vehicles)) + return - if(!VO) return - if(VO.has_vehicle_lock()) return - + if(VO?.has_vehicle_lock()) + return spent = TRUE ordered_vehicle = new VO.ordered_vehicle(middle_turf) SSshuttle.vehicle_elevator.request(SSshuttle.getDock("almayer vehicle")) @@ -1477,5 +1483,11 @@ GLOBAL_DATUM_INIT(supply_controller, /datum/controller/supply, new()) SEND_GLOBAL_SIGNAL(COMSIG_GLOB_VEHICLE_ORDERED, ordered_vehicle) + else if(href_list["lower_elevator"]) + if(!is_mainship_level(SSshuttle.vehicle_elevator.z)) + return + + SSshuttle.vehicle_elevator.request(SSshuttle.getDock("adminlevel vehicle")) + add_fingerprint(usr) updateUsrDialog() diff --git a/code/game/turfs/auto_turf.dm b/code/game/turfs/auto_turf.dm index e07f7324bcc2..8edd13f58612 100644 --- a/code/game/turfs/auto_turf.dm +++ b/code/game/turfs/auto_turf.dm @@ -75,6 +75,19 @@ if(bleed_layer) addtimer(CALLBACK(src, PROC_REF(changing_layer), 0), 1) +/turf/open/auto_turf/scorch(heat_level) + if(bleed_layer <= 0) + return + switch(heat_level) + if(1 to 19) + var/new_bleed_layer = min(0, bleed_layer - 1) + addtimer(CALLBACK(src, PROC_REF(changing_layer), new_bleed_layer), 1) + if(20 to 39) + var/new_bleed_layer = max(bleed_layer - 2, 0) + addtimer(CALLBACK(src, PROC_REF(changing_layer), new_bleed_layer), 1) + if(40 to INFINITY) + addtimer(CALLBACK(src, PROC_REF(changing_layer), 0), 1) + //Actual auto-turfs now @@ -146,6 +159,7 @@ //Ice colony snow /turf/open/auto_turf/snow + scorchable = TRUE name = "auto-snow" icon = 'icons/turf/floors/snow2.dmi' icon_state = "snow_0" @@ -198,7 +212,8 @@ while(bleed_layer > 0) xeno_attack_delay(M) - if(!do_after(M, 12, INTERRUPT_ALL, BUSY_ICON_FRIENDLY)) + var/size = max(M.mob_size, 1) + if(!do_after(M, 12/size, INTERRUPT_ALL, BUSY_ICON_FRIENDLY)) return XENO_NO_DELAY_ACTION if(!bleed_layer) diff --git a/code/game/turfs/closed.dm b/code/game/turfs/closed.dm index bf84bc04bf10..abc745dbdd45 100644 --- a/code/game/turfs/closed.dm +++ b/code/game/turfs/closed.dm @@ -15,6 +15,21 @@ icon_state = "black" mouse_opacity = FALSE +/// Cordon turf marking z-level boundaries and surrounding reservations +/turf/closed/cordon + name = "world border" + icon = 'icons/turf/shuttle.dmi' + icon_state = "pclosed" + layer = ABOVE_TURF_LAYER + baseturfs = /turf/closed/cordon + +/// Used as placeholder turf when something went really wrong, as per /tg/ string lists handler +/turf/closed/cordon/debug + name = "debug turf" + desc = "This turf shouldn't be here and probably result of incorrect turf replacement. Adminhelp about it or report it in an issue." + color = "#660088" + baseturfs = /turf/closed/cordon/debug + /turf/closed/mineral //mineral deposits name = "Rock" icon = 'icons/turf/walls/walls.dmi' diff --git a/code/game/turfs/floor_types.dm b/code/game/turfs/floor_types.dm index f957686fac22..096b39e988d2 100644 --- a/code/game/turfs/floor_types.dm +++ b/code/game/turfs/floor_types.dm @@ -90,12 +90,124 @@ /turf/open/floor/plating/make_plating() return +/turf/open/floor/plating/burnt_platingdmg3 + burnt = TRUE + icon_state = "platingdmg3" + +/turf/open/floor/plating/burnt_platingdmg3/west + dir = WEST + +/turf/open/floor/plating/asteroidwarning + icon_state = "asteroidwarning" + +/turf/open/floor/plating/asteroidwarning/southwest + dir = SOUTHWEST + +/turf/open/floor/plating/warnplate + icon_state = "warnplate" + +/turf/open/floor/plating/warnplate/southwest + dir = SOUTHWEST + +/turf/open/floor/plating/asteroidfloor + icon_state = "asteroidfloor" + +/turf/open/floor/plating/asteroidfloor/north + dir = NORTH + +/turf/open/floor/plating/asteroidwarning/north + dir = NORTH + +/turf/open/floor/plating/warnplate/north + dir = NORTH + +/turf/open/floor/plating/warnplatecorner + icon_state = "warnplatecorner" + +/turf/open/floor/plating/warnplatecorner/north + dir = NORTH + +/turf/open/floor/plating/asteroidwarning/east + dir = EAST + +/turf/open/floor/plating/warnplate/east + dir = EAST + +/turf/open/floor/plating/asteroidwarning/northeast + dir = NORTHEAST + +/turf/open/floor/plating/warnplate/northeast + dir = NORTHEAST + +/turf/open/floor/plating/asteroidwarning/southeast + dir = SOUTHEAST + +/turf/open/floor/plating/warnplate/southeast + dir = SOUTHEAST + +/turf/open/floor/plating/asteroidwarning/west + dir = WEST + +/turf/open/floor/plating/platingdmg2 + icon_state = "platingdmg2" + +/turf/open/floor/plating/platingdmg2/west + dir = WEST + +/turf/open/floor/plating/platingdmg3 + icon_state = "platingdmg3" + +/turf/open/floor/plating/platingdmg3/west + dir = WEST + +/turf/open/floor/plating/warnplate/west + dir = WEST + +/turf/open/floor/plating/asteroidwarning/northwest + dir = NORTHWEST + +/turf/open/floor/plating/warnplate/northwest + dir = NORTHWEST + +/turf/open/floor/plating/panelscorched + icon_state = "panelscorched" + +/turf/open/floor/plating/platebot + icon_state = "platebot" + +/turf/open/floor/plating/platebotc + icon_state = "platebotc" + +/turf/open/floor/plating/platingdmg1 + icon_state = "platingdmg1" + +/turf/open/floor/plating/wood + icon_state = "wood" + +/turf/open/floor/plating/wood_broken2 + icon_state = "wood-broken2" + +/turf/open/floor/plating/wood_broken3 + icon_state = "wood-broken3" + +/turf/open/floor/plating/wood_broken4 + icon_state = "wood-broken4" + +/turf/open/floor/plating/wood_broken5 + icon_state = "wood-broken5" + +/turf/open/floor/plating/wood_broken6 + icon_state = "wood-broken6" + /turf/open/floor/plating/prison icon = 'icons/turf/floors/prison.dmi' /turf/open/floor/plating/almayer icon = 'icons/turf/almayer.dmi' +/turf/open/floor/plating/almayer/no_build + allow_construction = FALSE + /turf/open/floor/plating/airless icon_state = "plating" name = "airless plating" @@ -112,6 +224,33 @@ . = ..() name = "plating" +/turf/open/floor/plating/icefloor/warnplate + icon_state = "warnplate" + +/turf/open/floor/plating/icefloor/warnplate/southwest + dir = SOUTHWEST + +/turf/open/floor/plating/icefloor/warnplate/north + dir = NORTH + +/turf/open/floor/plating/icefloor/warnplate/east + dir = EAST + +/turf/open/floor/plating/icefloor/warnplate/northeast + dir = NORTHEAST + +/turf/open/floor/plating/icefloor/warnplate/southeast + dir = SOUTHEAST + +/turf/open/floor/plating/icefloor/warnplate/west + dir = WEST + +/turf/open/floor/plating/icefloor/warnplate/northwest + dir = NORTHWEST + +/turf/open/floor/plating/icefloor/asteroidplating + icon_state = "asteroidplating" + /// Visually like plating+catwalks but without overlaying or interactions - mainly for Reqs Elevator /turf/open/floor/plating/bare_catwalk name = "catwalk" @@ -180,7 +319,22 @@ /turf/open/floor/plating/plating_catwalk/shiva icon = 'icons/turf/floors/ice_colony/shiva_floor.dmi' +/turf/open/floor/plating/plating_catwalk/aicore + icon = 'icons/turf/floors/aicore.dmi' + icon_state = "ai_plating_catwalk" +/turf/open/floor/plating/plating_catwalk/aicore/update_icon() + . = ..() + if(covered) + overlays += image(icon, src, "ai_catwalk", CATWALK_LAYER) + +/turf/open/floor/plating/plating_catwalk/aicore/white + icon_state = "w_ai_plating_catwalk" + +/turf/open/floor/plating/plating_catwalk/aicore/white/update_icon() + . = ..() + if(covered) + overlays += image(icon, src, "w_ai_catwalk", CATWALK_LAYER) /turf/open/floor/plating/ironsand name = "Iron Sand" @@ -203,6 +357,368 @@ icon_state = "default" plating_type = /turf/open/floor/plating/almayer +/turf/open/floor/almayer/pod_landing_floor + desc = "There's a hatch above it, presumably to allow pods to drop in." + icon_state = "test_floor4" + name = "pod landing floor" + +/turf/open/floor/almayer/blue + icon_state = "blue" + +/turf/open/floor/almayer/blue/southwest + dir = SOUTHWEST + +/turf/open/floor/almayer/cargo + icon_state = "cargo" + +/turf/open/floor/almayer/cargo/southwest + dir = SOUTHWEST + +/turf/open/floor/almayer/emerald + icon_state = "emerald" + +/turf/open/floor/almayer/emerald/southwest + dir = SOUTHWEST + +/turf/open/floor/almayer/green + icon_state = "green" + +/turf/open/floor/almayer/green/southwest + dir = SOUTHWEST + +/turf/open/floor/almayer/orange + icon_state = "orange" + +/turf/open/floor/almayer/orange/southwest + dir = SOUTHWEST + +/turf/open/floor/almayer/red + icon_state = "red" + +/turf/open/floor/almayer/red/southwest + dir = SOUTHWEST + +/turf/open/floor/almayer/silver + icon_state = "silver" + +/turf/open/floor/almayer/silver/southwest + dir = SOUTHWEST + +/turf/open/floor/almayer/sterile_green_side + icon_state = "sterile_green_side" + +/turf/open/floor/almayer/sterile_green_side/southwest + dir = SOUTHWEST + +/turf/open/floor/almayer/blue/north + dir = NORTH + +/turf/open/floor/almayer/bluecorner + icon_state = "bluecorner" + +/turf/open/floor/almayer/bluecorner/north + dir = NORTH + +/turf/open/floor/almayer/cargo_arrow + icon_state = "cargo_arrow" + +/turf/open/floor/almayer/cargo_arrow/north + dir = NORTH + +/turf/open/floor/almayer/emerald/north + dir = NORTH + +/turf/open/floor/almayer/emeraldcorner + icon_state = "emeraldcorner" + +/turf/open/floor/almayer/emeraldcorner/north + dir = NORTH + +/turf/open/floor/almayer/green/north + dir = NORTH + +/turf/open/floor/almayer/greencorner + icon_state = "greencorner" + +/turf/open/floor/almayer/greencorner/north + dir = NORTH + +/turf/open/floor/almayer/orange/north + dir = NORTH + +/turf/open/floor/almayer/orangecorner + icon_state = "orangecorner" + +/turf/open/floor/almayer/orangecorner/north + dir = NORTH + +/turf/open/floor/almayer/plating_striped + icon_state = "plating_striped" + +/turf/open/floor/almayer/plating_striped/north + dir = NORTH + +/turf/open/floor/almayer/red/north + dir = NORTH + +/turf/open/floor/almayer/redcorner + icon_state = "redcorner" + +/turf/open/floor/almayer/redcorner/north + dir = NORTH + +/turf/open/floor/almayer/silver/north + dir = NORTH + +/turf/open/floor/almayer/silvercorner + icon_state = "silvercorner" + +/turf/open/floor/almayer/silvercorner/north + dir = NORTH + +/turf/open/floor/almayer/sterile_green_corner + icon_state = "sterile_green_corner" + +/turf/open/floor/almayer/sterile_green_corner/north + dir = NORTH + +/turf/open/floor/almayer/sterile_green_side/north + dir = NORTH + +/turf/open/floor/almayer/w_y0 + icon_state = "w-y0" + +/turf/open/floor/almayer/w_y0/north + dir = NORTH + +/turf/open/floor/almayer/w_y1 + icon_state = "w-y1" + +/turf/open/floor/almayer/w_y1/north + dir = NORTH + +/turf/open/floor/almayer/w_y2 + icon_state = "w-y2" + +/turf/open/floor/almayer/w_y2/north + dir = NORTH + +/turf/open/floor/almayer/green/south + dir = SOUTH + +/turf/open/floor/almayer/blue/east + dir = EAST + +/turf/open/floor/almayer/bluecorner/east + dir = EAST + +/turf/open/floor/almayer/cargo_arrow/east + dir = EAST + +/turf/open/floor/almayer/emerald/east + dir = EAST + +/turf/open/floor/almayer/emeraldcorner/east + dir = EAST + +/turf/open/floor/almayer/green/east + dir = EAST + +/turf/open/floor/almayer/greencorner/east + dir = EAST + +/turf/open/floor/almayer/orange/east + dir = EAST + +/turf/open/floor/almayer/orangecorner/east + dir = EAST + +/turf/open/floor/almayer/plating_striped/east + dir = EAST + +/turf/open/floor/almayer/red/east + dir = EAST + +/turf/open/floor/almayer/redcorner/east + dir = EAST + +/turf/open/floor/almayer/silver/east + dir = EAST + +/turf/open/floor/almayer/silvercorner/east + dir = EAST + +/turf/open/floor/almayer/sterile_green_corner/east + dir = EAST + +/turf/open/floor/almayer/sterile_green_side/east + dir = EAST + +/turf/open/floor/almayer/blue/northeast + dir = NORTHEAST + +/turf/open/floor/almayer/emerald/northeast + dir = NORTHEAST + +/turf/open/floor/almayer/green/northeast + dir = NORTHEAST + +/turf/open/floor/almayer/orange/northeast + dir = NORTHEAST + +/turf/open/floor/almayer/plating + icon_state = "plating" + +/turf/open/floor/almayer/plating/northeast + dir = NORTHEAST + +/turf/open/floor/almayer/red/northeast + dir = NORTHEAST + +/turf/open/floor/almayer/silver/northeast + dir = NORTHEAST + +/turf/open/floor/almayer/sterile_green_side/northeast + dir = NORTHEAST + +/turf/open/floor/almayer/blue/southeast + dir = SOUTHEAST + +/turf/open/floor/almayer/emerald/southeast + dir = SOUTHEAST + +/turf/open/floor/almayer/green/southeast + dir = SOUTHEAST + +/turf/open/floor/almayer/orange/southeast + dir = SOUTHEAST + +/turf/open/floor/almayer/red/southeast + dir = SOUTHEAST + +/turf/open/floor/almayer/silver/southeast + dir = SOUTHEAST + +/turf/open/floor/almayer/sterile_green_side/southeast + dir = SOUTHEAST + +/turf/open/floor/almayer/blue/west + dir = WEST + +/turf/open/floor/almayer/bluecorner/west + dir = WEST + +/turf/open/floor/almayer/cargo_arrow/west + dir = WEST + +/turf/open/floor/almayer/emerald/west + dir = WEST + +/turf/open/floor/almayer/emeraldcorner/west + dir = WEST + +/turf/open/floor/almayer/green/west + dir = WEST + +/turf/open/floor/almayer/greencorner/west + dir = WEST + +/turf/open/floor/almayer/orange/west + dir = WEST + +/turf/open/floor/almayer/orangecorner/west + dir = WEST + +/turf/open/floor/almayer/plating_striped/west + dir = WEST + +/turf/open/floor/almayer/red/west + dir = WEST + +/turf/open/floor/almayer/redcorner/west + dir = WEST + +/turf/open/floor/almayer/silver/west + dir = WEST + +/turf/open/floor/almayer/silvercorner/west + dir = WEST + +/turf/open/floor/almayer/sterile_green_corner/west + dir = WEST + +/turf/open/floor/almayer/sterile_green_side/west + dir = WEST + +/turf/open/floor/almayer/blue/northwest + dir = NORTHWEST + +/turf/open/floor/almayer/emerald/northwest + dir = NORTHWEST + +/turf/open/floor/almayer/green/northwest + dir = NORTHWEST + +/turf/open/floor/almayer/orange/northwest + dir = NORTHWEST + +/turf/open/floor/almayer/red/northwest + dir = NORTHWEST + +/turf/open/floor/almayer/silver/northwest + dir = NORTHWEST + +/turf/open/floor/almayer/sterile_green_side/northwest + dir = NORTHWEST + +/turf/open/floor/almayer/ai_floors + icon_state = "ai_floors" + +/turf/open/floor/almayer/bluefull + icon_state = "bluefull" + +/turf/open/floor/almayer/dark_sterile + icon_state = "dark_sterile" + +/turf/open/floor/almayer/emeraldfull + icon_state = "emeraldfull" + +/turf/open/floor/almayer/floor + icon_state = "floor" + +/turf/open/floor/almayer/greenfull + icon_state = "greenfull" + +/turf/open/floor/almayer/mono + icon_state = "mono" + +/turf/open/floor/almayer/orangefull + icon_state = "orangefull" + +/turf/open/floor/almayer/plate + icon_state = "plate" + +/turf/open/floor/almayer/redfull + icon_state = "redfull" + +/turf/open/floor/almayer/silverfull + icon_state = "silverfull" + +/turf/open/floor/almayer/sterile + icon_state = "sterile" + +/turf/open/floor/almayer/sterile_green + icon_state = "sterile_green" + +/turf/open/floor/almayer/tcomms + icon_state = "tcomms" + +/turf/open/floor/almayer/test_floor4 + icon_state = "test_floor4" + +/turf/open/floor/almayer/test_floor5 + icon_state = "test_floor5" + /// Admin level thunderdome floor. Doesn't get damaged by explosions and such for pristine testing /turf/open/floor/tdome icon = 'icons/turf/almayer.dmi' @@ -210,21 +726,46 @@ plating_type = /turf/open/floor/tdome hull_floor = TRUE -//Cargo elevator +/turf/open/floor/tdome/w_y0 + icon_state = "w-y0" + +/turf/open/floor/tdome/w_y0/north + dir = NORTH + +/turf/open/floor/tdome/w_y1 + icon_state = "w-y1" + +/turf/open/floor/tdome/w_y1/north + dir = NORTH + +/turf/open/floor/tdome/w_y2 + icon_state = "w-y2" + +/turf/open/floor/tdome/w_y2/north + dir = NORTH + +/turf/open/floor/tdome/northeast + dir = NORTHEAST + +/turf/open/floor/tdome/bluefull + icon_state = "bluefull" + +/turf/open/floor/tdome/redfull + icon_state = "redfull" + +/turf/open/floor/tdome/tcomms + icon_state = "tcomms" + +/turf/open/floor/tdome/test_floor4 + icon_state = "test_floor4" + +/// Base type of the requisitions and vehicle bay elevator pits. /turf/open/floor/almayer/empty - name = "empty space" - desc = "There seems to be an awful lot of machinery down below" + name = "\proper empty space" + desc = "There seems to be an awful lot of machinery down below..." icon = 'icons/turf/floors/floors.dmi' icon_state = "black" -/turf/open/floor/almayer/empty/Initialize(mapload, ...) - . = ..() - GLOB.asrs_empty_space_tiles_list += src - -/turf/open/floor/almayer/empty/Destroy(force) // may as well - . = ..() - GLOB.asrs_empty_space_tiles_list -= src - /turf/open/floor/almayer/empty/is_weedable() return NOT_WEEDABLE @@ -239,9 +780,14 @@ /turf/open/floor/almayer/empty/Entered(atom/movable/AM) ..() - if(!isobserver(AM)) + if(!isobserver(AM) && !istype(AM, /obj/effect/elevator) && !istype(AM, /obj/docking_port)) addtimer(CALLBACK(src, PROC_REF(enter_depths), AM), 0.2 SECONDS) +/// Returns a list of turfs to be used as a destination for anyone unfortunate enough to fall into the pit. +/turf/open/floor/almayer/empty/proc/get_depths_turfs() + // Empty proc to be overridden. + return + /turf/open/floor/almayer/empty/proc/enter_depths(atom/movable/AM) if(AM.throwing == 0 && istype(get_turf(AM), /turf/open/floor/almayer/empty)) AM.visible_message(SPAN_WARNING("[AM] falls into the depths!"), SPAN_WARNING("You fall into the depths!")) @@ -252,14 +798,12 @@ for(var/atom/computer as anything in GLOB.supply_controller.bound_supply_computer_list) computer.balloon_alert_to_viewers("you hear horrifying noises coming from the elevator!") - var/area/area_shuttle = GLOB.supply_controller.shuttle?.get_location_area() - if(!area_shuttle) - return - var/list/turflist = list() - for(var/turf/turf in area_shuttle) - turflist |= turf + var/list/depths_turfs = get_depths_turfs() + if(!length(depths_turfs)) + // If this ever happens, something went wrong. + CRASH("get_depths_turfs() didn't return anything!") - thrown_human.forceMove(pick(turflist)) + thrown_human.forceMove(pick(depths_turfs)) var/timer = 0.5 SECONDS for(var/index in 1 to 10) @@ -268,9 +812,34 @@ return else - for(var/obj/effect/decal/cleanable/C in contents) //for the off chance of someone bleeding mid=flight + for(var/obj/effect/decal/cleanable/C in contents) //for the off chance of someone bleeding mid-flight qdel(C) +/// Requisitions pit. +/turf/open/floor/almayer/empty/requisitions + +/turf/open/floor/almayer/empty/requisitions/Initialize(mapload, ...) + . = ..() + GLOB.asrs_empty_space_tiles_list += src + +/turf/open/floor/almayer/empty/requisitions/Destroy(force) + GLOB.asrs_empty_space_tiles_list -= src + return ..() + +/turf/open/floor/almayer/empty/requisitions/get_depths_turfs() + var/area/elevator_area = GLOB.supply_controller.shuttle?.get_location_area() + + var/turf_list = list() + for(var/turf/turf in elevator_area) + turf_list |= turf + return turf_list + +/// Vehicle bay pit. +/turf/open/floor/almayer/empty/vehicle_bay + +/turf/open/floor/almayer/empty/vehicle_bay/get_depths_turfs() + return SSshuttle.vehicle_elevator.return_turfs() + //Others /turf/open/floor/almayer/uscm icon_state = "logo_c" @@ -279,10 +848,113 @@ /turf/open/floor/almayer/uscm/directional icon_state = "logo_directional" +/turf/open/floor/almayer/uscm/directional/southwest + dir = SOUTHWEST + +/turf/open/floor/almayer/uscm/directional/north + dir = NORTH + +/turf/open/floor/almayer/uscm/directional/east + dir = EAST + +/turf/open/floor/almayer/uscm/directional/northeast + dir = NORTHEAST + +/turf/open/floor/almayer/uscm/directional/southeast + dir = SOUTHEAST + +/turf/open/floor/almayer/uscm/directional/logo_c + icon_state = "logo_c" + +/turf/open/floor/almayer/uscm/directional/logo_c/west + dir = WEST + +/turf/open/floor/almayer/uscm/directional/west + dir = WEST + +/turf/open/floor/almayer/uscm/directional/northwest + dir = NORTHWEST + /turf/open/floor/almayer/no_build allow_construction = FALSE hull_floor = TRUE +/turf/open/floor/almayer/no_build/ai_floors + icon_state = "ai_floors" + +/turf/open/floor/almayer/no_build/plating + icon_state = "plating" + +/turf/open/floor/almayer/no_build/plate + icon_state = "plate" + +/turf/open/floor/almayer/no_build/test_floor4 + icon_state = "test_floor4" + +/turf/open/floor/almayer/aicore + icon = 'icons/turf/floors/aicore.dmi' + icon_state = "ai_floor1" + +/turf/open/floor/almayer/aicore/glowing + icon_state = "ai_floor2" + light_color = "#d69c46" + light_range = 3 + +/turf/open/floor/almayer/aicore/glowing/Initialize(mapload, ...) + . = ..() + set_light_on(TRUE) + + RegisterSignal(SSdcs, COMSIG_GLOB_AICORE_LOCKDOWN, PROC_REF(start_emergency_light_on)) + RegisterSignal(SSdcs, COMSIG_GLOB_AICORE_LIFT, PROC_REF(start_emergency_light_off)) + +/turf/open/floor/almayer/aicore/glowing/proc/start_emergency_light_on() + set_light(l_color = "#c70f0f") + +/turf/open/floor/almayer/aicore/glowing/proc/start_emergency_light_off() + set_light(l_color = "#d69c46") + +/turf/open/floor/almayer/aicore/no_build + allow_construction = FALSE + hull_floor = TRUE + +/turf/open/floor/almayer/aicore/no_build/ai_arrow + icon_state = "ai_arrow" + +/turf/open/floor/almayer/aicore/no_build/ai_arrow/east + dir = EAST + +/turf/open/floor/almayer/aicore/no_build/ai_silver + icon_state = "ai_silver" + +/turf/open/floor/almayer/aicore/no_build/ai_silver/east + dir = EAST + +/turf/open/floor/almayer/aicore/no_build/ai_arrow/west + dir = WEST + +/turf/open/floor/almayer/aicore/no_build/ai_silver/west + dir = WEST + +/turf/open/floor/almayer/aicore/no_build/ai_cargo + icon_state = "ai_cargo" + +/turf/open/floor/almayer/aicore/no_build/ai_floor2 + icon_state = "ai_floor2" + +/turf/open/floor/almayer/aicore/no_build/ai_plates + icon_state = "ai_plates" + +/turf/open/floor/almayer/aicore/glowing/no_build + allow_construction = FALSE + hull_floor = TRUE + +/turf/open/floor/almayer/aicore/glowing/no_build/ai_floor3_4range + icon_state = "ai_floor3" + light_range = 4 + +/turf/open/floor/almayer/aicore/glowing/no_build/ai_floor3 + icon_state = "ai_floor3" + // RESEARCH STUFF /turf/open/floor/almayer/research/containment/entrance icon_state = "containment_entrance" @@ -314,7 +986,26 @@ /turf/open/floor/almayer/research/containment/corner_var2 icon_state = "containment_corner_variant_2" +/turf/open/floor/almayer/research/containment/corner_var1/east + dir = EAST + +/turf/open/floor/almayer/research/containment/corner_var1/containment_corner_variant_2 + icon_state = "containment_corner_variant_2" + +/turf/open/floor/almayer/research/containment/corner/north + dir = NORTH + +/turf/open/floor/almayer/research/containment/corner/east + dir = EAST + +/turf/open/floor/almayer/research/containment/entrance/west + dir = WEST + +/turf/open/floor/almayer/research/containment/floor2/north + dir = NORTH +/turf/open/floor/almayer/research/containment/floor2/west + dir = WEST @@ -327,35 +1018,77 @@ name = "hull" hull_floor = TRUE +/turf/open/floor/almayer_hull/outerhull_dir + icon_state = "outerhull_dir" +/turf/open/floor/almayer_hull/outerhull_dir/southwest + dir = SOUTHWEST +/turf/open/floor/almayer_hull/outerhull_dir/north + dir = NORTH +/turf/open/floor/almayer_hull/outerhull_dir/east + dir = EAST +/turf/open/floor/almayer_hull/outerhull_dir/northeast + dir = NORTHEAST +/turf/open/floor/almayer_hull/outerhull_dir/southeast + dir = SOUTHEAST +/turf/open/floor/almayer_hull/outerhull_dir/west + dir = WEST -////////////////////////////////////////////////////////////////////// +/turf/open/floor/almayer_hull/outerhull_dir/northwest + dir = NORTHWEST -/turf/open/floor/airless - icon_state = "floor" - name = "airless floor" + +////////////////////////////////////////////////////////////////////// + + + + + +/turf/open/floor/airless + icon_state = "floor" + name = "airless floor" /turf/open/floor/airless/Initialize(mapload, ...) . = ..() name = "floor" +/turf/open/floor/airless/asteroidfloor + icon_state = "asteroidfloor" + +/turf/open/floor/airless/asteroidfloor/northeast + dir = NORTHEAST + /turf/open/floor/icefloor icon_state = "floor" name = "ice colony floor" plating_type = /turf/open/floor/plating/icefloor -/turf/open/floor/icefloor/Initialize(mapload, ...) - . = ..() - name = "floor" +/turf/open/floor/icefloor/shuttle_floor6 + icon = 'icons/turf/shuttle.dmi' + icon_state = "floor6" + +/turf/open/floor/icefloor/shuttle_floor7 + icon = 'icons/turf/shuttle.dmi' + icon_state = "floor7" + +/turf/open/floor/icefloor/shuttle_vfloor + icon = 'icons/turf/shuttle.dmi' + icon_state = "vfloor" + +/turf/open/floor/icefloor/ramptop + icon_state = "ramptop" + +/turf/open/floor/icefloor/rockvault + icon_state = "rockvault" /turf/open/floor/wood name = "wooden floor" @@ -371,6 +1104,27 @@ desc = "This metal floor has been painted to look like one made of wood. Unfortunately, wood and high-pressure internal atmosphere don't mix well. Wood is a major fire hazard don't'cha know." tile_type = /obj/item/stack/tile/wood/fake +/turf/open/floor/wood/wood_broken + icon_state = "wood-broken" + +/turf/open/floor/wood/wood_broken2 + icon_state = "wood-broken2" + +/turf/open/floor/wood/wood_broken3 + icon_state = "wood-broken3" + +/turf/open/floor/wood/wood_broken4 + icon_state = "wood-broken4" + +/turf/open/floor/wood/wood_broken5 + icon_state = "wood-broken5" + +/turf/open/floor/wood/wood_broken6 + icon_state = "wood-broken6" + +/turf/open/floor/wood/wood_broken7 + icon_state = "wood-broken7" + /turf/open/floor/vault icon_state = "rockvault" @@ -388,6 +1142,9 @@ burnable_tile = FALSE baseturfs = /turf/open/floor +/turf/open/floor/engine/simulator_center + color = "#AAAAAA" + /turf/open/floor/engine/make_plating() return @@ -440,6 +1197,18 @@ icon = 'icons/turf/floors/floors.dmi' icon_state = "bcircuit" +/turf/open/floor/bluegrid/bcircuitoff + icon_state = "bcircuitoff" + +/turf/open/floor/bluegrid/damaged3 + icon_state = "damaged3" + +/turf/open/floor/bluegrid/damaged4 + icon_state = "damaged4" + +/turf/open/floor/bluegrid/damaged5 + icon_state = "damaged5" + /turf/open/floor/greengrid icon = 'icons/turf/floors/floors.dmi' icon_state = "gcircuit" @@ -478,6 +1247,7 @@ /turf/open/floor/carpet name = "carpet" + desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft." icon_state = "carpet" tile_type = /obj/item/stack/tile/carpet tool_flags = REMOVE_SCREWDRIVER @@ -551,9 +1321,48 @@ FF.update_icon() // So siding get updated properly return ..() +/turf/open/floor/carpet/bcarpet01 + icon_state = "bcarpet01" + +/turf/open/floor/carpet/bcarpet02 + icon_state = "bcarpet02" + +/turf/open/floor/carpet/bcarpet03 + icon_state = "bcarpet03" + +/turf/open/floor/carpet/bcarpet07 + icon_state = "bcarpet07" + +/turf/open/floor/carpet/bcarpet08 + icon_state = "bcarpet08" + +/turf/open/floor/carpet/bcarpet09 + icon_state = "bcarpet09" + /turf/open/floor/carpet/edge icon_state = "carpetside" +/turf/open/floor/carpet/edge/southwest + dir = SOUTHWEST + +/turf/open/floor/carpet/edge/north + dir = NORTH + +/turf/open/floor/carpet/edge/east + dir = EAST + +/turf/open/floor/carpet/edge/northeast + dir = NORTHEAST + +/turf/open/floor/carpet/edge/southeast + dir = SOUTHEAST + +/turf/open/floor/carpet/edge/west + dir = WEST + +/turf/open/floor/carpet/edge/northwest + dir = NORTHWEST + // Start Prison tiles /turf/open/floor/prison @@ -568,47 +1377,2197 @@ icon = 'icons/turf/floors/carpet_manual.dmi'//I dunno man, CM-ified carpet sprites are placed manually and I can't be bothered to write a new system for 'em. icon_state = "single" -// Mechbay -/turf/open/floor/mech_bay_recharge_floor - name = "Mech Bay Recharge Station" - icon = 'icons/obj/structures/props/mech.dmi' - icon_state = "recharge_floor" +/turf/open/floor/prison/chapel_carpet/doubleside + icon_state = "doubleside" -/turf/open/floor/mech_bay_recharge_floor/break_tile() - if(broken) - return - ChangeTurf(/turf/open/floor/plating) - broken = TRUE +/turf/open/floor/prison/chapel_carpet/doubleside/north + dir = NORTH +/turf/open/floor/prison/blue + icon_state = "blue" -/turf/open/floor/interior - icon = 'icons/turf/floors/interior.dmi' +/turf/open/floor/prison/blue/southwest + dir = SOUTHWEST -/turf/open/floor/interior/wood - name = "wooden floor" - icon_state = "oldwood1" - tile_type = /obj/item/stack/tile/wood +/turf/open/floor/prison/bright_clean + icon_state = "bright_clean" -/turf/open/floor/interior/wood/is_wood_floor() - return TRUE +/turf/open/floor/prison/bright_clean/southwest + dir = SOUTHWEST -/turf/open/floor/interior/wood/alt - icon_state = "oldwood2" +/turf/open/floor/prison/bright_clean2 + icon_state = "bright_clean2" -/turf/open/floor/interior/tatami - name = "tatami flooring" - desc = "A type of flooring often used in traditional Japanese-style housing." - icon_state = "tatami" +/turf/open/floor/prison/bright_clean2/southwest + dir = SOUTHWEST -/turf/open/floor/interior/plastic - name = "plastic floor" - icon_state = "plasticfloor1" +/turf/open/floor/prison/bright_clean_marked + icon_state = "bright_clean_marked" -/turf/open/floor/interior/plastic/alt - icon_state = "plasticfloor2" +/turf/open/floor/prison/bright_clean_marked/southwest + dir = SOUTHWEST -// Biodome tiles +/turf/open/floor/prison/damaged1 + icon_state = "damaged1" -/turf/open/floor/corsat - icon = 'icons/turf/floors/corsat.dmi' - icon_state = "plating" +/turf/open/floor/prison/damaged1/southwest + dir = SOUTHWEST + +/turf/open/floor/prison/damaged2 + icon_state = "damaged2" + +/turf/open/floor/prison/damaged2/southwest + dir = SOUTHWEST + +/turf/open/floor/prison/darkbrown2 + icon_state = "darkbrown2" + +/turf/open/floor/prison/darkbrown2/southwest + dir = SOUTHWEST + +/turf/open/floor/prison/darkbrown3 + icon_state = "darkbrown3" + +/turf/open/floor/prison/darkbrown3/southwest + dir = SOUTHWEST + +/turf/open/floor/prison/darkbrowncorners2 + icon_state = "darkbrowncorners2" + +/turf/open/floor/prison/darkbrowncorners2/southwest + dir = SOUTHWEST + +/turf/open/floor/prison/darkpurple2 + icon_state = "darkpurple2" + +/turf/open/floor/prison/darkpurple2/southwest + dir = SOUTHWEST + +/turf/open/floor/prison/darkred2 + icon_state = "darkred2" + +/turf/open/floor/prison/darkred2/southwest + dir = SOUTHWEST + +/turf/open/floor/prison/darkredcorners2 + icon_state = "darkredcorners2" + +/turf/open/floor/prison/darkredcorners2/southwest + dir = SOUTHWEST + +/turf/open/floor/prison/darkredfull2 + icon_state = "darkredfull2" + +/turf/open/floor/prison/darkredfull2/southwest + dir = SOUTHWEST + +/turf/open/floor/prison/darkyellow2 + icon_state = "darkyellow2" + +/turf/open/floor/prison/darkyellow2/southwest + dir = SOUTHWEST + +/turf/open/floor/prison/darkyellowcorners2 + icon_state = "darkyellowcorners2" + +/turf/open/floor/prison/darkyellowcorners2/southwest + dir = SOUTHWEST + +/turf/open/floor/prison/floor_marked + icon_state = "floor_marked" + +/turf/open/floor/prison/floor_marked/southwest + dir = SOUTHWEST + +/turf/open/floor/prison/floor_plate + icon_state = "floor_plate" + +/turf/open/floor/prison/floor_plate/southwest + dir = SOUTHWEST + +/turf/open/floor/prison/green + icon_state = "green" + +/turf/open/floor/prison/green/southwest + dir = SOUTHWEST + +/turf/open/floor/prison/greenblue + icon_state = "greenblue" + +/turf/open/floor/prison/greenblue/southwest + dir = SOUTHWEST + +/turf/open/floor/prison/kitchen + icon_state = "kitchen" + +/turf/open/floor/prison/kitchen/southwest + dir = SOUTHWEST + +/turf/open/floor/prison/red + icon_state = "red" + +/turf/open/floor/prison/red/southwest + dir = SOUTHWEST + +/turf/open/floor/prison/sterile_white + icon_state = "sterile_white" + +/turf/open/floor/prison/sterile_white/southwest + dir = SOUTHWEST + +/turf/open/floor/prison/whitegreen + icon_state = "whitegreen" + +/turf/open/floor/prison/whitegreen/southwest + dir = SOUTHWEST + +/turf/open/floor/prison/whitegreenfull + icon_state = "whitegreenfull" + +/turf/open/floor/prison/whitegreenfull/southwest + dir = SOUTHWEST + +/turf/open/floor/prison/whitepurple + icon_state = "whitepurple" + +/turf/open/floor/prison/whitepurple/southwest + dir = SOUTHWEST + +/turf/open/floor/prison/whitered + icon_state = "whitered" + +/turf/open/floor/prison/whitered/southwest + dir = SOUTHWEST + +/turf/open/floor/prison/yellow + icon_state = "yellow" + +/turf/open/floor/prison/yellow/southwest + dir = SOUTHWEST + +/turf/open/floor/prison/yellowfull + icon_state = "yellowfull" + +/turf/open/floor/prison/yellowfull/southwest + dir = SOUTHWEST + +/turf/open/floor/prison/southwest + dir = SOUTHWEST + +/turf/open/floor/prison/blue/north + dir = NORTH + +/turf/open/floor/prison/blue_plate + icon_state = "blue_plate" + +/turf/open/floor/prison/blue_plate/north + dir = NORTH + +/turf/open/floor/prison/bluecorner + icon_state = "bluecorner" + +/turf/open/floor/prison/bluecorner/north + dir = NORTH + +/turf/open/floor/prison/cell_stripe + icon_state = "cell_stripe" + +/turf/open/floor/prison/cell_stripe/north + dir = NORTH + +/turf/open/floor/prison/darkbrown2/north + dir = NORTH + +/turf/open/floor/prison/darkbrown3/north + dir = NORTH + +/turf/open/floor/prison/darkbrowncorners2/north + dir = NORTH + +/turf/open/floor/prison/darkbrowncorners3 + icon_state = "darkbrowncorners3" + +/turf/open/floor/prison/darkbrowncorners3/north + dir = NORTH + +/turf/open/floor/prison/darkpurple2/north + dir = NORTH + +/turf/open/floor/prison/darkpurplecorners2 + icon_state = "darkpurplecorners2" + +/turf/open/floor/prison/darkpurplecorners2/north + dir = NORTH + +/turf/open/floor/prison/darkred2/north + dir = NORTH + +/turf/open/floor/prison/darkredcorners2/north + dir = NORTH + +/turf/open/floor/prison/darkyellow2/north + dir = NORTH + +/turf/open/floor/prison/darkyellowcorners2/north + dir = NORTH + +/turf/open/floor/prison/green/north + dir = NORTH + +/turf/open/floor/prison/greenblue/north + dir = NORTH + +/turf/open/floor/prison/greenbluecorner + icon_state = "greenbluecorner" + +/turf/open/floor/prison/greenbluecorner/north + dir = NORTH + +/turf/open/floor/prison/greencorner + icon_state = "greencorner" + +/turf/open/floor/prison/greencorner/north + dir = NORTH + +/turf/open/floor/prison/rampbottom + icon_state = "rampbottom" + +/turf/open/floor/prison/rampbottom/north + dir = NORTH + +/turf/open/floor/prison/red/north + dir = NORTH + +/turf/open/floor/prison/redcorner + icon_state = "redcorner" + +/turf/open/floor/prison/redcorner/north + dir = NORTH + +/turf/open/floor/prison/whitegreen/north + dir = NORTH + +/turf/open/floor/prison/whitegreencorner + icon_state = "whitegreencorner" + +/turf/open/floor/prison/whitegreencorner/north + dir = NORTH + +/turf/open/floor/prison/whitepurple/north + dir = NORTH + +/turf/open/floor/prison/whitepurplecorner + icon_state = "whitepurplecorner" + +/turf/open/floor/prison/whitepurplecorner/north + dir = NORTH + +/turf/open/floor/prison/whitered/north + dir = NORTH + +/turf/open/floor/prison/yellow/north + dir = NORTH + +/turf/open/floor/prison/yellowcorner + icon_state = "yellowcorner" + +/turf/open/floor/prison/yellowcorner/north + dir = NORTH + +/turf/open/floor/prison/sterile_white/south + dir = SOUTH + +/turf/open/floor/prison/blue/east + dir = EAST + +/turf/open/floor/prison/blue_plate/east + dir = EAST + +/turf/open/floor/prison/bluecorner/east + dir = EAST + +/turf/open/floor/prison/cell_stripe/east + dir = EAST + +/turf/open/floor/prison/darkbrown2/east + dir = EAST + +/turf/open/floor/prison/darkbrown3/east + dir = EAST + +/turf/open/floor/prison/darkbrowncorners2/east + dir = EAST + +/turf/open/floor/prison/darkbrowncorners3/east + dir = EAST + +/turf/open/floor/prison/darkpurple2/east + dir = EAST + +/turf/open/floor/prison/darkpurplecorners2/east + dir = EAST + +/turf/open/floor/prison/darkred2/east + dir = EAST + +/turf/open/floor/prison/darkredcorners2/east + dir = EAST + +/turf/open/floor/prison/darkyellow2/east + dir = EAST + +/turf/open/floor/prison/darkyellowcorners2/east + dir = EAST + +/turf/open/floor/prison/darkyellowfull2 + icon_state = "darkyellowfull2" + +/turf/open/floor/prison/darkyellowfull2/east + dir = EAST + +/turf/open/floor/prison/green/east + dir = EAST + +/turf/open/floor/prison/greenblue/east + dir = EAST + +/turf/open/floor/prison/greenbluecorner/east + dir = EAST + +/turf/open/floor/prison/greencorner/east + dir = EAST + +/turf/open/floor/prison/greenfull + icon_state = "greenfull" + +/turf/open/floor/prison/greenfull/east + dir = EAST + +/turf/open/floor/prison/rampbottom/east + dir = EAST + +/turf/open/floor/prison/red/east + dir = EAST + +/turf/open/floor/prison/redcorner/east + dir = EAST + +/turf/open/floor/prison/whitegreen/east + dir = EAST + +/turf/open/floor/prison/whitegreencorner/east + dir = EAST + +/turf/open/floor/prison/whitepurple/east + dir = EAST + +/turf/open/floor/prison/whitepurplecorner/east + dir = EAST + +/turf/open/floor/prison/whitered/east + dir = EAST + +/turf/open/floor/prison/whiteredcorner + icon_state = "whiteredcorner" + +/turf/open/floor/prison/whiteredcorner/east + dir = EAST + +/turf/open/floor/prison/yellow/east + dir = EAST + +/turf/open/floor/prison/yellowcorner/east + dir = EAST + +/turf/open/floor/prison/blue/northeast + dir = NORTHEAST + +/turf/open/floor/prison/darkbrown2/northeast + dir = NORTHEAST + +/turf/open/floor/prison/darkpurple2/northeast + dir = NORTHEAST + +/turf/open/floor/prison/darkred2/northeast + dir = NORTHEAST + +/turf/open/floor/prison/darkyellow2/northeast + dir = NORTHEAST + +/turf/open/floor/prison/green/northeast + dir = NORTHEAST + +/turf/open/floor/prison/greenblue/northeast + dir = NORTHEAST + +/turf/open/floor/prison/red/northeast + dir = NORTHEAST + +/turf/open/floor/prison/whitegreen/northeast + dir = NORTHEAST + +/turf/open/floor/prison/whitepurple/northeast + dir = NORTHEAST + +/turf/open/floor/prison/whitered/northeast + dir = NORTHEAST + +/turf/open/floor/prison/yellow/northeast + dir = NORTHEAST + +/turf/open/floor/prison/blue/southeast + dir = SOUTHEAST + +/turf/open/floor/prison/darkbrown2/southeast + dir = SOUTHEAST + +/turf/open/floor/prison/darkpurple2/southeast + dir = SOUTHEAST + +/turf/open/floor/prison/darkred2/southeast + dir = SOUTHEAST + +/turf/open/floor/prison/darkyellow2/southeast + dir = SOUTHEAST + +/turf/open/floor/prison/green/southeast + dir = SOUTHEAST + +/turf/open/floor/prison/greenblue/southeast + dir = SOUTHEAST + +/turf/open/floor/prison/red/southeast + dir = SOUTHEAST + +/turf/open/floor/prison/whitegreen/southeast + dir = SOUTHEAST + +/turf/open/floor/prison/whitepurple/southeast + dir = SOUTHEAST + +/turf/open/floor/prison/whitered/southeast + dir = SOUTHEAST + +/turf/open/floor/prison/yellow/southeast + dir = SOUTHEAST + +/turf/open/floor/prison/blue/west + dir = WEST + +/turf/open/floor/prison/blue_plate/west + dir = WEST + +/turf/open/floor/prison/bluecorner/west + dir = WEST + +/turf/open/floor/prison/bluefull + icon_state = "bluefull" + +/turf/open/floor/prison/bluefull/west + dir = WEST + +/turf/open/floor/prison/cell_stripe/west + dir = WEST + +/turf/open/floor/prison/darkbrown2/west + dir = WEST + +/turf/open/floor/prison/darkbrown3/west + dir = WEST + +/turf/open/floor/prison/darkbrowncorners2/west + dir = WEST + +/turf/open/floor/prison/darkbrowncorners3/west + dir = WEST + +/turf/open/floor/prison/darkpurple2/west + dir = WEST + +/turf/open/floor/prison/darkpurplecorners2/west + dir = WEST + +/turf/open/floor/prison/darkred2/west + dir = WEST + +/turf/open/floor/prison/darkredcorners2/west + dir = WEST + +/turf/open/floor/prison/darkyellow2/west + dir = WEST + +/turf/open/floor/prison/darkyellowcorners2/west + dir = WEST + +/turf/open/floor/prison/floor_marked/west + dir = WEST + +/turf/open/floor/prison/green/west + dir = WEST + +/turf/open/floor/prison/greenblue/west + dir = WEST + +/turf/open/floor/prison/greenbluecorner/west + dir = WEST + +/turf/open/floor/prison/greencorner/west + dir = WEST + +/turf/open/floor/prison/rampbottom/west + dir = WEST + +/turf/open/floor/prison/red/west + dir = WEST + +/turf/open/floor/prison/redcorner/west + dir = WEST + +/turf/open/floor/prison/sterile_white/west + dir = WEST + +/turf/open/floor/prison/whitegreen/west + dir = WEST + +/turf/open/floor/prison/whitegreencorner/west + dir = WEST + +/turf/open/floor/prison/whitepurple/west + dir = WEST + +/turf/open/floor/prison/whitepurplecorner/west + dir = WEST + +/turf/open/floor/prison/whitered/west + dir = WEST + +/turf/open/floor/prison/whiteredcorner/west + dir = WEST + +/turf/open/floor/prison/yellow/west + dir = WEST + +/turf/open/floor/prison/yellowcorner/west + dir = WEST + +/turf/open/floor/prison/west + dir = WEST + +/turf/open/floor/prison/blue/northwest + dir = NORTHWEST + +/turf/open/floor/prison/darkbrown2/northwest + dir = NORTHWEST + +/turf/open/floor/prison/darkbrown3/northwest + dir = NORTHWEST + +/turf/open/floor/prison/darkpurple2/northwest + dir = NORTHWEST + +/turf/open/floor/prison/darkpurplefull2 + icon_state = "darkpurplefull2" + +/turf/open/floor/prison/darkpurplefull2/northwest + dir = NORTHWEST + +/turf/open/floor/prison/darkred2/northwest + dir = NORTHWEST + +/turf/open/floor/prison/darkyellow2/northwest + dir = NORTHWEST + +/turf/open/floor/prison/green/northwest + dir = NORTHWEST + +/turf/open/floor/prison/greenblue/northwest + dir = NORTHWEST + +/turf/open/floor/prison/greenfull/northwest + dir = NORTHWEST + +/turf/open/floor/prison/red/northwest + dir = NORTHWEST + +/turf/open/floor/prison/whitegreen/northwest + dir = NORTHWEST + +/turf/open/floor/prison/whitepurple/northwest + dir = NORTHWEST + +/turf/open/floor/prison/whitered/northwest + dir = NORTHWEST + +/turf/open/floor/prison/yellow/northwest + dir = NORTHWEST + +/turf/open/floor/prison/damaged3 + icon_state = "damaged3" + +/turf/open/floor/prison/darkbrownfull2 + icon_state = "darkbrownfull2" + +/turf/open/floor/prison/floorscorched1 + icon_state = "floorscorched1" + +/turf/open/floor/prison/floorscorched2 + icon_state = "floorscorched2" + +/turf/open/floor/prison/greenblue/southwest + dir = SOUTHWEST + +/turf/open/floor/prison/greenblue/north + dir = NORTH + +/turf/open/floor/prison/greenblue/east + dir = EAST + +/turf/open/floor/prison/greenblue/northeast + dir = NORTHEAST + +/turf/open/floor/prison/greenblue/southeast + dir = SOUTHEAST + +/turf/open/floor/prison/greenblue/west + dir = WEST + +/turf/open/floor/prison/greenblue/northwest + dir = NORTHWEST + +/turf/open/floor/prison/greenbluecorner/east + dir = EAST + +/turf/open/floor/prison/panelscorched + icon_state = "panelscorched" + +/turf/open/floor/prison/platingdmg1 + icon_state = "platingdmg1" + +/turf/open/floor/prison/platingdmg2 + icon_state = "platingdmg2" + +/turf/open/floor/prison/platingdmg3 + icon_state = "platingdmg3" + +/turf/open/floor/prison/red/southwest + dir = SOUTHWEST + +/turf/open/floor/prison/red/north + dir = NORTH + +/turf/open/floor/prison/red/east + dir = EAST + +/turf/open/floor/prison/red/northeast + dir = NORTHEAST + +/turf/open/floor/prison/red/southeast + dir = SOUTHEAST + +/turf/open/floor/prison/red/west + dir = WEST + +/turf/open/floor/prison/red/northwest + dir = NORTHWEST + +/turf/open/floor/prison/redcorner/north + dir = NORTH + +/turf/open/floor/prison/redcorner/east + dir = EAST + +/turf/open/floor/prison/redfull + icon_state = "redfull" + +/turf/open/floor/prison/whitepurplefull + icon_state = "whitepurplefull" + +// Mechbay +/turf/open/floor/mech_bay_recharge_floor + name = "Mech Bay Recharge Station" + icon = 'icons/obj/structures/props/mech.dmi' + icon_state = "recharge_floor" + +/turf/open/floor/mech_bay_recharge_floor/break_tile() + if(broken) + return + ChangeTurf(/turf/open/floor/plating) + broken = TRUE + +/turf/open/floor/mech_bay_recharge_floor/shuttle_landing_lights + name = "shuttle landing lights" + +/turf/open/floor/interior + icon = 'icons/turf/floors/interior.dmi' + +/turf/open/floor/interior/wood + name = "wooden floor" + icon_state = "oldwood1" + tile_type = /obj/item/stack/tile/wood + +/turf/open/floor/interior/wood/is_wood_floor() + return TRUE + +/turf/open/floor/interior/wood/alt + icon_state = "oldwood2" + +/turf/open/floor/interior/tatami + name = "tatami flooring" + desc = "A type of flooring often used in traditional Japanese-style housing." + icon_state = "tatami" + +/turf/open/floor/interior/plastic + name = "plastic floor" + icon_state = "plasticfloor1" + +/turf/open/floor/interior/plastic/alt + icon_state = "plasticfloor2" + +// Biodome tiles + +/turf/open/floor/corsat + icon = 'icons/turf/floors/corsat.dmi' + icon_state = "plating" + +/turf/open/floor/corsat/blue + icon_state = "blue" + +/turf/open/floor/corsat/blue/southwest + dir = SOUTHWEST + +/turf/open/floor/corsat/bluegrey + icon_state = "bluegrey" + +/turf/open/floor/corsat/bluegrey/southwest + dir = SOUTHWEST + +/turf/open/floor/corsat/brown + icon_state = "brown" + +/turf/open/floor/corsat/brown/southwest + dir = SOUTHWEST + +/turf/open/floor/corsat/corsat_teleporter_static + icon_state = "corsat_teleporter_static" + +/turf/open/floor/corsat/corsat_teleporter_static/southwest + dir = SOUTHWEST + +/turf/open/floor/corsat/darkgreen + icon_state = "darkgreen" + +/turf/open/floor/corsat/darkgreen/southwest + dir = SOUTHWEST + +/turf/open/floor/corsat/green + icon_state = "green" + +/turf/open/floor/corsat/green/southwest + dir = SOUTHWEST + +/turf/open/floor/corsat/greenwhite + icon_state = "greenwhite" + +/turf/open/floor/corsat/greenwhite/southwest + dir = SOUTHWEST + +/turf/open/floor/corsat/purple + icon_state = "purple" + +/turf/open/floor/corsat/purple/southwest + dir = SOUTHWEST + +/turf/open/floor/corsat/purplewhite + icon_state = "purplewhite" + +/turf/open/floor/corsat/purplewhite/southwest + dir = SOUTHWEST + +/turf/open/floor/corsat/red + icon_state = "red" + +/turf/open/floor/corsat/red/southwest + dir = SOUTHWEST + +/turf/open/floor/corsat/tcomms + icon_state = "tcomms" + +/turf/open/floor/corsat/tcomms/southwest + dir = SOUTHWEST + +/turf/open/floor/corsat/white + icon_state = "white" + +/turf/open/floor/corsat/white/southwest + dir = SOUTHWEST + +/turf/open/floor/corsat/whitebluefull + icon_state = "whitebluefull" + +/turf/open/floor/corsat/whitebluefull/southwest + dir = SOUTHWEST + +/turf/open/floor/corsat/whitetan + icon_state = "whitetan" + +/turf/open/floor/corsat/whitetan/southwest + dir = SOUTHWEST + +/turf/open/floor/corsat/yellow + icon_state = "yellow" + +/turf/open/floor/corsat/yellow/southwest + dir = SOUTHWEST + +/turf/open/floor/corsat/blue/north + dir = NORTH + +/turf/open/floor/corsat/bluecorner + icon_state = "bluecorner" + +/turf/open/floor/corsat/bluecorner/north + dir = NORTH + +/turf/open/floor/corsat/bluegrey/north + dir = NORTH + +/turf/open/floor/corsat/bluegreycorner + icon_state = "bluegreycorner" + +/turf/open/floor/corsat/bluegreycorner/north + dir = NORTH + +/turf/open/floor/corsat/brown/north + dir = NORTH + +/turf/open/floor/corsat/browncorner + icon_state = "browncorner" + +/turf/open/floor/corsat/browncorner/north + dir = NORTH + +/turf/open/floor/corsat/darkgreen/north + dir = NORTH + +/turf/open/floor/corsat/darkgreencorner + icon_state = "darkgreencorner" + +/turf/open/floor/corsat/darkgreencorner/north + dir = NORTH + +/turf/open/floor/corsat/green/north + dir = NORTH + +/turf/open/floor/corsat/greencorner + icon_state = "greencorner" + +/turf/open/floor/corsat/greencorner/north + dir = NORTH + +/turf/open/floor/corsat/greenwhite/north + dir = NORTH + +/turf/open/floor/corsat/greenwhitecorner + icon_state = "greenwhitecorner" + +/turf/open/floor/corsat/greenwhitecorner/north + dir = NORTH + +/turf/open/floor/corsat/purple/north + dir = NORTH + +/turf/open/floor/corsat/purplecorner + icon_state = "purplecorner" + +/turf/open/floor/corsat/purplecorner/north + dir = NORTH + +/turf/open/floor/corsat/purplewhite/north + dir = NORTH + +/turf/open/floor/corsat/purplewhitecorner + icon_state = "purplewhitecorner" + +/turf/open/floor/corsat/purplewhitecorner/north + dir = NORTH + +/turf/open/floor/corsat/red/north + dir = NORTH + +/turf/open/floor/corsat/redcorner + icon_state = "redcorner" + +/turf/open/floor/corsat/redcorner/north + dir = NORTH + +/turf/open/floor/corsat/squareswood + icon_state = "squareswood" + +/turf/open/floor/corsat/squareswood/north + dir = NORTH + +/turf/open/floor/corsat/tan + icon_state = "tan" + +/turf/open/floor/corsat/tan/north + dir = NORTH + +/turf/open/floor/corsat/white/north + dir = NORTH + +/turf/open/floor/corsat/whitecorner + icon_state = "whitecorner" + +/turf/open/floor/corsat/whitecorner/north + dir = NORTH + +/turf/open/floor/corsat/whitetan/north + dir = NORTH + +/turf/open/floor/corsat/whitetancorner + icon_state = "whitetancorner" + +/turf/open/floor/corsat/whitetancorner/north + dir = NORTH + +/turf/open/floor/corsat/yellow/north + dir = NORTH + +/turf/open/floor/corsat/yellowcorner + icon_state = "yellowcorner" + +/turf/open/floor/corsat/yellowcorner/north + dir = NORTH + +/turf/open/floor/corsat/blue/east + dir = EAST + +/turf/open/floor/corsat/bluecorner/east + dir = EAST + +/turf/open/floor/corsat/bluegrey/east + dir = EAST + +/turf/open/floor/corsat/bluegreycorner/east + dir = EAST + +/turf/open/floor/corsat/brown/east + dir = EAST + +/turf/open/floor/corsat/browncorner/east + dir = EAST + +/turf/open/floor/corsat/darkgreen/east + dir = EAST + +/turf/open/floor/corsat/darkgreencorner/east + dir = EAST + +/turf/open/floor/corsat/green/east + dir = EAST + +/turf/open/floor/corsat/greencorner/east + dir = EAST + +/turf/open/floor/corsat/greenwhite/east + dir = EAST + +/turf/open/floor/corsat/greenwhitecorner/east + dir = EAST + +/turf/open/floor/corsat/purple/east + dir = EAST + +/turf/open/floor/corsat/purplecorner/east + dir = EAST + +/turf/open/floor/corsat/purplewhite/east + dir = EAST + +/turf/open/floor/corsat/purplewhitecorner/east + dir = EAST + +/turf/open/floor/corsat/red/east + dir = EAST + +/turf/open/floor/corsat/redcorner/east + dir = EAST + +/turf/open/floor/corsat/white/east + dir = EAST + +/turf/open/floor/corsat/whitecorner/east + dir = EAST + +/turf/open/floor/corsat/whitetan/east + dir = EAST + +/turf/open/floor/corsat/whitetancorner/east + dir = EAST + +/turf/open/floor/corsat/yellow/east + dir = EAST + +/turf/open/floor/corsat/yellowcorner/east + dir = EAST + +/turf/open/floor/corsat/blue/northeast + dir = NORTHEAST + +/turf/open/floor/corsat/bluegrey/northeast + dir = NORTHEAST + +/turf/open/floor/corsat/brown/northeast + dir = NORTHEAST + +/turf/open/floor/corsat/darkgreen/northeast + dir = NORTHEAST + +/turf/open/floor/corsat/green/northeast + dir = NORTHEAST + +/turf/open/floor/corsat/greenwhite/northeast + dir = NORTHEAST + +/turf/open/floor/corsat/purple/northeast + dir = NORTHEAST + +/turf/open/floor/corsat/purplewhite/northeast + dir = NORTHEAST + +/turf/open/floor/corsat/red/northeast + dir = NORTHEAST + +/turf/open/floor/corsat/white/northeast + dir = NORTHEAST + +/turf/open/floor/corsat/whitetan/northeast + dir = NORTHEAST + +/turf/open/floor/corsat/yellow/northeast + dir = NORTHEAST + +/turf/open/floor/corsat/blue/southeast + dir = SOUTHEAST + +/turf/open/floor/corsat/bluegrey/southeast + dir = SOUTHEAST + +/turf/open/floor/corsat/brown/southeast + dir = SOUTHEAST + +/turf/open/floor/corsat/darkgreen/southeast + dir = SOUTHEAST + +/turf/open/floor/corsat/green/southeast + dir = SOUTHEAST + +/turf/open/floor/corsat/greenwhite/southeast + dir = SOUTHEAST + +/turf/open/floor/corsat/purple/southeast + dir = SOUTHEAST + +/turf/open/floor/corsat/purplewhite/southeast + dir = SOUTHEAST + +/turf/open/floor/corsat/red/southeast + dir = SOUTHEAST + +/turf/open/floor/corsat/white/southeast + dir = SOUTHEAST + +/turf/open/floor/corsat/whitetan/southeast + dir = SOUTHEAST + +/turf/open/floor/corsat/yellow/southeast + dir = SOUTHEAST + +/turf/open/floor/corsat/blue/west + dir = WEST + +/turf/open/floor/corsat/bluecorner/west + dir = WEST + +/turf/open/floor/corsat/bluegrey/west + dir = WEST + +/turf/open/floor/corsat/bluegreycorner/west + dir = WEST + +/turf/open/floor/corsat/brown/west + dir = WEST + +/turf/open/floor/corsat/browncorner/west + dir = WEST + +/turf/open/floor/corsat/darkgreen/west + dir = WEST + +/turf/open/floor/corsat/darkgreencorner/west + dir = WEST + +/turf/open/floor/corsat/green/west + dir = WEST + +/turf/open/floor/corsat/greencorner/west + dir = WEST + +/turf/open/floor/corsat/greenwhite/west + dir = WEST + +/turf/open/floor/corsat/greenwhitecorner/west + dir = WEST + +/turf/open/floor/corsat/purple/west + dir = WEST + +/turf/open/floor/corsat/purplecorner/west + dir = WEST + +/turf/open/floor/corsat/purplewhite/west + dir = WEST + +/turf/open/floor/corsat/purplewhitecorner/west + dir = WEST + +/turf/open/floor/corsat/red/west + dir = WEST + +/turf/open/floor/corsat/redcorner/west + dir = WEST + +/turf/open/floor/corsat/white/west + dir = WEST + +/turf/open/floor/corsat/whitecorner/west + dir = WEST + +/turf/open/floor/corsat/whitetan/west + dir = WEST + +/turf/open/floor/corsat/whitetancorner/west + dir = WEST + +/turf/open/floor/corsat/yellow/west + dir = WEST + +/turf/open/floor/corsat/yellowcorner/west + dir = WEST + +/turf/open/floor/corsat/blue/northwest + dir = NORTHWEST + +/turf/open/floor/corsat/bluegrey/northwest + dir = NORTHWEST + +/turf/open/floor/corsat/brown/northwest + dir = NORTHWEST + +/turf/open/floor/corsat/darkgreen/northwest + dir = NORTHWEST + +/turf/open/floor/corsat/green/northwest + dir = NORTHWEST + +/turf/open/floor/corsat/greenwhite/northwest + dir = NORTHWEST + +/turf/open/floor/corsat/purple/northwest + dir = NORTHWEST + +/turf/open/floor/corsat/purplewhite/northwest + dir = NORTHWEST + +/turf/open/floor/corsat/red/northwest + dir = NORTHWEST + +/turf/open/floor/corsat/white/northwest + dir = NORTHWEST + +/turf/open/floor/corsat/whitetan/northwest + dir = NORTHWEST + +/turf/open/floor/corsat/yellow/northwest + dir = NORTHWEST + +/turf/open/floor/corsat/arrow_east + icon_state = "arrow_east" + +/turf/open/floor/corsat/arrow_north + icon_state = "arrow_north" + +/turf/open/floor/corsat/arrow_south + icon_state = "arrow_south" + +/turf/open/floor/corsat/arrow_west + icon_state = "arrow_west" + +/turf/open/floor/corsat/cargo + icon_state = "cargo" + +/turf/open/floor/corsat/damaged1 + icon_state = "damaged1" + +/turf/open/floor/corsat/gamma + icon_state = "gamma" + +/turf/open/floor/corsat/lightplate + icon_state = "lightplate" + +/turf/open/floor/corsat/marked + icon_state = "marked" + +/turf/open/floor/corsat/officesquares + icon_state = "officesquares" + +/turf/open/floor/corsat/omega + icon_state = "omega" + +/turf/open/floor/corsat/plate + icon_state = "plate" + +/turf/open/floor/corsat/red/southwest + dir = SOUTHWEST + +/turf/open/floor/corsat/red/north + dir = NORTH + +/turf/open/floor/corsat/red/east + dir = EAST + +/turf/open/floor/corsat/red/northeast + dir = NORTHEAST + +/turf/open/floor/corsat/red/southeast + dir = SOUTHEAST + +/turf/open/floor/corsat/red/west + dir = WEST + +/turf/open/floor/corsat/red/northwest + dir = NORTHWEST + +/turf/open/floor/corsat/redcorner/north + dir = NORTH + +/turf/open/floor/corsat/redcorner/east + dir = EAST + +/turf/open/floor/corsat/retrosquares + icon_state = "retrosquares" + +/turf/open/floor/corsat/retrosquareslight + icon_state = "retrosquareslight" + +/turf/open/floor/corsat/sigma + icon_state = "sigma" + +/turf/open/floor/corsat/spiralplate + icon_state = "spiralplate" + +/turf/open/floor/corsat/spiralwoodalt + icon_state = "spiralwoodalt" + +/turf/open/floor/corsat/squares + icon_state = "squares" + +/turf/open/floor/corsat/sterileplate + icon_state = "sterileplate" + +/turf/open/floor/corsat/theta + icon_state = "theta" + +/turf/open/floor/corsat/yellow/north + dir = NORTH + +/turf/open/floor/corsat/yellow/east + dir = EAST + +/turf/open/floor/corsat/yellowcorner/east + dir = EAST + +/turf/open/floor/grey_dark2 + color = "#525151" + icon_state = "dark2" + +/turf/open/floor/solarpanel + desc = "A sophisticated device that captures and converts light from the system's star into energy for the station." + icon_state = "solarpanel" + name = "solarpanel" + +/turf/open/floor/asteroidwarning + icon_state = "asteroidwarning" + +/turf/open/floor/asteroidwarning/southwest + dir = SOUTHWEST + +/turf/open/floor/darkblue2 + icon_state = "darkblue2" + +/turf/open/floor/darkblue2/southwest + dir = SOUTHWEST + +/turf/open/floor/darkbrown2 + icon_state = "darkbrown2" + +/turf/open/floor/darkbrown2/southwest + dir = SOUTHWEST + +/turf/open/floor/darkgreen2 + icon_state = "darkgreen2" + +/turf/open/floor/darkgreen2/southwest + dir = SOUTHWEST + +/turf/open/floor/darkpurple2 + icon_state = "darkpurple2" + +/turf/open/floor/darkpurple2/southwest + dir = SOUTHWEST + +/turf/open/floor/darkred2 + icon_state = "darkred2" + +/turf/open/floor/darkred2/southwest + dir = SOUTHWEST + +/turf/open/floor/darkyellow2 + icon_state = "darkyellow2" + +/turf/open/floor/darkyellow2/southwest + dir = SOUTHWEST + +/turf/open/floor/podhatch + icon_state = "podhatch" + +/turf/open/floor/podhatch/southwest + dir = SOUTHWEST + +/turf/open/floor/purple + icon_state = "purple" + +/turf/open/floor/purple/southwest + dir = SOUTHWEST + +/turf/open/floor/red + icon_state = "red" + +/turf/open/floor/red/southwest + dir = SOUTHWEST + +/turf/open/floor/warning + icon_state = "warning" + +/turf/open/floor/warning/southwest + dir = SOUTHWEST + +/turf/open/floor/warnwhite + icon_state = "warnwhite" + +/turf/open/floor/warnwhite/southwest + dir = SOUTHWEST + +/turf/open/floor/whiteblue + icon_state = "whiteblue" + +/turf/open/floor/whiteblue/southwest + dir = SOUTHWEST + +/turf/open/floor/whitegreen + icon_state = "whitegreen" + +/turf/open/floor/whitegreen/southwest + dir = SOUTHWEST + +/turf/open/floor/whitepurple + icon_state = "whitepurple" + +/turf/open/floor/whitepurple/southwest + dir = SOUTHWEST + +/turf/open/floor/whitered + icon_state = "whitered" + +/turf/open/floor/whitered/southwest + dir = SOUTHWEST + +/turf/open/floor/whiteyellow + icon_state = "whiteyellow" + +/turf/open/floor/whiteyellow/southwest + dir = SOUTHWEST + +/turf/open/floor/asteroidfloor + icon_state = "asteroidfloor" + +/turf/open/floor/asteroidfloor/north + dir = NORTH + +/turf/open/floor/asteroidwarning/north + dir = NORTH + +/turf/open/floor/bot + icon_state = "bot" + +/turf/open/floor/bot/north + dir = NORTH + +/turf/open/floor/chapel + icon_state = "chapel" + +/turf/open/floor/chapel/north + dir = NORTH + +/turf/open/floor/darkblue2/north + dir = NORTH + +/turf/open/floor/darkbrown2/north + dir = NORTH + +/turf/open/floor/darkbrowncorners2 + icon_state = "darkbrowncorners2" + +/turf/open/floor/darkbrowncorners2/north + dir = NORTH + +/turf/open/floor/darkgreen2/north + dir = NORTH + +/turf/open/floor/darkgreencorners2 + icon_state = "darkgreencorners2" + +/turf/open/floor/darkgreencorners2/north + dir = NORTH + +/turf/open/floor/darkpurple2/north + dir = NORTH + +/turf/open/floor/darkpurplecorners2 + icon_state = "darkpurplecorners2" + +/turf/open/floor/darkpurplecorners2/north + dir = NORTH + +/turf/open/floor/darkred2/north + dir = NORTH + +/turf/open/floor/darkredcorners2 + icon_state = "darkredcorners2" + +/turf/open/floor/darkredcorners2/north + dir = NORTH + +/turf/open/floor/darkyellow2/north + dir = NORTH + +/turf/open/floor/darkyellowcorners2 + icon_state = "darkyellowcorners2" + +/turf/open/floor/darkyellowcorners2/north + dir = NORTH + +/turf/open/floor/elevatorshaft + icon_state = "elevatorshaft" + +/turf/open/floor/elevatorshaft/north + dir = NORTH + +/turf/open/floor/green + icon_state = "green" + +/turf/open/floor/green/north + dir = NORTH + +/turf/open/floor/loadingarea + icon_state = "loadingarea" + +/turf/open/floor/loadingarea/north + dir = NORTH + +/turf/open/floor/podhatch/north + dir = NORTH + +/turf/open/floor/podhatchfloor + icon_state = "podhatchfloor" + +/turf/open/floor/podhatchfloor/north + dir = NORTH + +/turf/open/floor/purple/north + dir = NORTH + +/turf/open/floor/rampbottom + icon_state = "rampbottom" + +/turf/open/floor/rampbottom/north + dir = NORTH + +/turf/open/floor/red/north + dir = NORTH + +/turf/open/floor/redcorner + icon_state = "redcorner" + +/turf/open/floor/redcorner/north + dir = NORTH + +/turf/open/floor/vault2 + icon_state = "vault" + +/turf/open/floor/vault2/north + dir = NORTH + +/turf/open/floor/warning/north + dir = NORTH + +/turf/open/floor/warningcorner + icon_state = "warningcorner" + +/turf/open/floor/warningcorner/north + dir = NORTH + +/turf/open/floor/warnwhite/north + dir = NORTH + +/turf/open/floor/whiteblue/north + dir = NORTH + +/turf/open/floor/whitebluecorner + icon_state = "whitebluecorner" + +/turf/open/floor/whitebluecorner/north + dir = NORTH + +/turf/open/floor/whitegreen/north + dir = NORTH + +/turf/open/floor/whitegreencorner + icon_state = "whitegreencorner" + +/turf/open/floor/whitegreencorner/north + dir = NORTH + +/turf/open/floor/whitepurple/north + dir = NORTH + +/turf/open/floor/whitepurplecorner + icon_state = "whitepurplecorner" + +/turf/open/floor/whitepurplecorner/north + dir = NORTH + +/turf/open/floor/whitered/north + dir = NORTH + +/turf/open/floor/whiteredcorner + icon_state = "whiteredcorner" + +/turf/open/floor/whiteredcorner/north + dir = NORTH + +/turf/open/floor/whiteyellow/north + dir = NORTH + +/turf/open/floor/whiteyellowcorner + icon_state = "whiteyellowcorner" + +/turf/open/floor/whiteyellowcorner/north + dir = NORTH + +/turf/open/floor/asteroidwarning/east + dir = EAST + +/turf/open/floor/chapel/east + dir = EAST + +/turf/open/floor/darkblue2/east + dir = EAST + +/turf/open/floor/darkbrown2/east + dir = EAST + +/turf/open/floor/darkbrowncorners2/east + dir = EAST + +/turf/open/floor/darkgreen2/east + dir = EAST + +/turf/open/floor/darkgreencorners2/east + dir = EAST + +/turf/open/floor/darkpurple2/east + dir = EAST + +/turf/open/floor/darkpurplecorners2/east + dir = EAST + +/turf/open/floor/darkred2/east + dir = EAST + +/turf/open/floor/darkredcorners2/east + dir = EAST + +/turf/open/floor/darkyellow2/east + dir = EAST + +/turf/open/floor/darkyellowcorners2/east + dir = EAST + +/turf/open/floor/loadingarea/east + dir = EAST + +/turf/open/floor/purple/east + dir = EAST + +/turf/open/floor/red/east + dir = EAST + +/turf/open/floor/redcorner/east + dir = EAST + +/turf/open/floor/warning/east + dir = EAST + +/turf/open/floor/warningcorner/east + dir = EAST + +/turf/open/floor/warnwhite/east + dir = EAST + +/turf/open/floor/whiteblue/east + dir = EAST + +/turf/open/floor/whitebluecorner/east + dir = EAST + +/turf/open/floor/whitegreen/east + dir = EAST + +/turf/open/floor/whitegreencorner/east + dir = EAST + +/turf/open/floor/whitepurple/east + dir = EAST + +/turf/open/floor/whitepurplecorner/east + dir = EAST + +/turf/open/floor/whitered/east + dir = EAST + +/turf/open/floor/whiteredcorner/east + dir = EAST + +/turf/open/floor/whiteyellow/east + dir = EAST + +/turf/open/floor/whiteyellowcorner/east + dir = EAST + +/turf/open/floor/whiteyellowfull + icon_state = "whiteyellowfull" + +/turf/open/floor/whiteyellowfull/east + dir = EAST + +/turf/open/floor/asteroidwarning/northeast + dir = NORTHEAST + +/turf/open/floor/chapel/northeast + dir = NORTHEAST + +/turf/open/floor/darkblue2/northeast + dir = NORTHEAST + +/turf/open/floor/darkbrown2/northeast + dir = NORTHEAST + +/turf/open/floor/darkgreen2/northeast + dir = NORTHEAST + +/turf/open/floor/darkpurple2/northeast + dir = NORTHEAST + +/turf/open/floor/darkred2/northeast + dir = NORTHEAST + +/turf/open/floor/darkyellow2/northeast + dir = NORTHEAST + +/turf/open/floor/podhatch/northeast + dir = NORTHEAST + +/turf/open/floor/purple/northeast + dir = NORTHEAST + +/turf/open/floor/red/northeast + dir = NORTHEAST + +/turf/open/floor/vault2/northeast + dir = NORTHEAST + +/turf/open/floor/warning/northeast + dir = NORTHEAST + +/turf/open/floor/warnwhite/northeast + dir = NORTHEAST + +/turf/open/floor/whiteblue/northeast + dir = NORTHEAST + +/turf/open/floor/whitebluefull + icon_state = "whitebluefull" + +/turf/open/floor/whitebluefull/northeast + dir = NORTHEAST + +/turf/open/floor/whitegreen/northeast + dir = NORTHEAST + +/turf/open/floor/whitegreen_v + icon_state = "whitegreen_v" + +/turf/open/floor/whitegreen_v/northeast + dir = NORTHEAST + +/turf/open/floor/whitegreenfull + icon_state = "whitegreenfull" + +/turf/open/floor/whitegreenfull/northeast + dir = NORTHEAST + +/turf/open/floor/whitepurple/northeast + dir = NORTHEAST + +/turf/open/floor/whitered/northeast + dir = NORTHEAST + +/turf/open/floor/whiteyellow/northeast + dir = NORTHEAST + +/turf/open/floor/asteroidwarning/southeast + dir = SOUTHEAST + +/turf/open/floor/darkblue2/southeast + dir = SOUTHEAST + +/turf/open/floor/darkbrown2/southeast + dir = SOUTHEAST + +/turf/open/floor/darkgreen2/southeast + dir = SOUTHEAST + +/turf/open/floor/darkpurple2/southeast + dir = SOUTHEAST + +/turf/open/floor/darkred2/southeast + dir = SOUTHEAST + +/turf/open/floor/darkyellow2/southeast + dir = SOUTHEAST + +/turf/open/floor/podhatch/southeast + dir = SOUTHEAST + +/turf/open/floor/purple/southeast + dir = SOUTHEAST + +/turf/open/floor/red/southeast + dir = SOUTHEAST + +/turf/open/floor/warning/southeast + dir = SOUTHEAST + +/turf/open/floor/warnwhite/southeast + dir = SOUTHEAST + +/turf/open/floor/whiteblue/southeast + dir = SOUTHEAST + +/turf/open/floor/whitegreen/southeast + dir = SOUTHEAST + +/turf/open/floor/whitepurple/southeast + dir = SOUTHEAST + +/turf/open/floor/whitered/southeast + dir = SOUTHEAST + +/turf/open/floor/whiteyellow/southeast + dir = SOUTHEAST + +/turf/open/floor/asteroidwarning/west + dir = WEST + +/turf/open/floor/barber + icon_state = "barber" + +/turf/open/floor/barber/west + dir = WEST + +/turf/open/floor/carpet10_8 + icon_state = "carpet10-8" + +/turf/open/floor/carpet10_8/west + dir = WEST + +/turf/open/floor/carpet11_12 + icon_state = "carpet11-12" + +/turf/open/floor/carpet11_12/west + dir = WEST + +/turf/open/floor/carpet13_5 + icon_state = "carpet13-5" + +/turf/open/floor/carpet13_5/west + dir = WEST + +/turf/open/floor/carpet14_10 + icon_state = "carpet14-10" + +/turf/open/floor/carpet14_10/west + dir = WEST + +/turf/open/floor/carpet15_15 + icon_state = "carpet15-15" + +/turf/open/floor/carpet15_15/west + dir = WEST + +/turf/open/floor/carpet5_1 + icon_state = "carpet5-1" + +/turf/open/floor/carpet5_1/west + dir = WEST + +/turf/open/floor/carpet6_2 + icon_state = "carpet6-2" + +/turf/open/floor/carpet6_2/west + dir = WEST + +/turf/open/floor/carpet7_3 + icon_state = "carpet7-3" + +/turf/open/floor/carpet7_3/west + dir = WEST + +/turf/open/floor/carpet9_4 + icon_state = "carpet9-4" + +/turf/open/floor/carpet9_4/west + dir = WEST + +/turf/open/floor/chapel/west + dir = WEST + +/turf/open/floor/damaged2 + icon_state = "damaged2" + +/turf/open/floor/damaged2/west + dir = WEST + +/turf/open/floor/damaged3 + icon_state = "damaged3" + +/turf/open/floor/damaged3/west + dir = WEST + +/turf/open/floor/damaged4 + icon_state = "damaged4" + +/turf/open/floor/damaged4/west + dir = WEST + +/turf/open/floor/damaged5 + icon_state = "damaged5" + +/turf/open/floor/damaged5/west + dir = WEST + +/turf/open/floor/darkblue2/west + dir = WEST + +/turf/open/floor/darkbrown2/west + dir = WEST + +/turf/open/floor/darkbrowncorners2/west + dir = WEST + +/turf/open/floor/darkgreen2/west + dir = WEST + +/turf/open/floor/darkgreencorners2/west + dir = WEST + +/turf/open/floor/darkpurple2/west + dir = WEST + +/turf/open/floor/darkpurplecorners2/west + dir = WEST + +/turf/open/floor/darkred2/west + dir = WEST + +/turf/open/floor/darkredcorners2/west + dir = WEST + +/turf/open/floor/darkyellow2/west + dir = WEST + +/turf/open/floor/darkyellowcorners2/west + dir = WEST + +/turf/open/floor/loadingarea/west + dir = WEST + +/turf/open/floor/purple/west + dir = WEST + +/turf/open/floor/purplecorner + icon_state = "purplecorner" + +/turf/open/floor/purplecorner/west + dir = WEST + +/turf/open/floor/red/west + dir = WEST + +/turf/open/floor/redcorner/west + dir = WEST + +/turf/open/floor/vault2/west + dir = WEST + +/turf/open/floor/warning/west + dir = WEST + +/turf/open/floor/warningcorner/west + dir = WEST + +/turf/open/floor/warnwhite/west + dir = WEST + +/turf/open/floor/whiteblue/west + dir = WEST + +/turf/open/floor/whitebluecorner/west + dir = WEST + +/turf/open/floor/whitegreen/west + dir = WEST + +/turf/open/floor/whitegreencorner/west + dir = WEST + +/turf/open/floor/whitepurple/west + dir = WEST + +/turf/open/floor/whitepurplecorner/west + dir = WEST + +/turf/open/floor/whitered/west + dir = WEST + +/turf/open/floor/whiteredcorner/west + dir = WEST + +/turf/open/floor/whiteyellow/west + dir = WEST + +/turf/open/floor/whiteyellowcorner/west + dir = WEST + +/turf/open/floor/asteroidwarning/northwest + dir = NORTHWEST + +/turf/open/floor/brown + icon_state = "brown" + +/turf/open/floor/brown/northwest + dir = NORTHWEST + +/turf/open/floor/darkblue2/northwest + dir = NORTHWEST + +/turf/open/floor/darkbrown2/northwest + dir = NORTHWEST + +/turf/open/floor/darkgreen2/northwest + dir = NORTHWEST + +/turf/open/floor/darkpurple2/northwest + dir = NORTHWEST + +/turf/open/floor/darkred2/northwest + dir = NORTHWEST + +/turf/open/floor/darkyellow2/northwest + dir = NORTHWEST + +/turf/open/floor/green/northwest + dir = NORTHWEST + +/turf/open/floor/podhatch/northwest + dir = NORTHWEST + +/turf/open/floor/purple/northwest + dir = NORTHWEST + +/turf/open/floor/red/northwest + dir = NORTHWEST + +/turf/open/floor/redfull + icon_state = "redfull" + +/turf/open/floor/redfull/northwest + dir = NORTHWEST + +/turf/open/floor/warning/northwest + dir = NORTHWEST + +/turf/open/floor/warnwhite/northwest + dir = NORTHWEST + +/turf/open/floor/whiteblue/northwest + dir = NORTHWEST + +/turf/open/floor/whitegreen/northwest + dir = NORTHWEST + +/turf/open/floor/whitegreen_v/northwest + dir = NORTHWEST + +/turf/open/floor/whitepurple/northwest + dir = NORTHWEST + +/turf/open/floor/whitered/northwest + dir = NORTHWEST + +/turf/open/floor/whiteyellow/northwest + dir = NORTHWEST + +/turf/open/floor/asteroid + icon_state = "asteroid" + +/turf/open/floor/asteroidfloor/north + dir = NORTH + +/turf/open/floor/asteroidplating + icon_state = "asteroidplating" + +/turf/open/floor/asteroidwarning/southwest + dir = SOUTHWEST + +/turf/open/floor/asteroidwarning/north + dir = NORTH + +/turf/open/floor/asteroidwarning/east + dir = EAST + +/turf/open/floor/asteroidwarning/northeast + dir = NORTHEAST + +/turf/open/floor/asteroidwarning/southeast + dir = SOUTHEAST + +/turf/open/floor/asteroidwarning/west + dir = WEST + +/turf/open/floor/asteroidwarning/northwest + dir = NORTHWEST + +/turf/open/floor/bar + icon_state = "bar" + +/turf/open/floor/bcircuit + icon_state = "bcircuit" + +/turf/open/floor/bluecorner + icon_state = "bluecorner" + +/turf/open/floor/blueyellowfull + icon_state = "blueyellowfull" + +/turf/open/floor/cafeteria + icon_state = "cafeteria" + +/turf/open/floor/cmo + icon_state = "cmo" + +/turf/open/floor/cult + icon_state = "cult" + +/turf/open/floor/dark + icon_state = "dark" + +/turf/open/floor/dark2 + icon_state = "dark2" + +/turf/open/floor/darkbluecorners2 + icon_state = "darkbluecorners2" + +/turf/open/floor/darkish + icon_state = "darkish" + +/turf/open/floor/delivery + icon_state = "delivery" + +/turf/open/floor/floor4 + icon_state = "floor4" + +/turf/open/floor/floorscorched1 + icon_state = "floorscorched1" + +/turf/open/floor/floorscorched2 + icon_state = "floorscorched2" + +/turf/open/floor/freezerfloor + icon_state = "freezerfloor" + +/turf/open/floor/grimy + icon_state = "grimy" + +/turf/open/floor/hydrofloor + icon_state = "hydrofloor" + +/turf/open/floor/neutral + icon_state = "neutral" + +/turf/open/floor/panelscorched + icon_state = "panelscorched" + +/turf/open/floor/platebot + icon_state = "platebot" + +/turf/open/floor/platingdmg1 + icon_state = "platingdmg1" + +/turf/open/floor/platingdmg3 + icon_state = "platingdmg3" + +/turf/open/floor/redyellowfull + icon_state = "redyellowfull" + +/turf/open/floor/wall_thermite + icon_state = "wall_thermite" + +/turf/open/floor/warnwhite/north + dir = NORTH + +/turf/open/floor/white + icon_state = "white" + +/turf/open/floor/whitepurplefull + icon_state = "whitepurplefull" + +/turf/open/floor/whiteredfull + icon_state = "whiteredfull" + +/turf/open/floor/wood + icon_state = "wood" + +/turf/open/floor/yellowfull + icon_state = "yellowfull" diff --git a/code/game/turfs/floors/desert.dm b/code/game/turfs/floors/desert.dm index 46a481e3bc64..6aa2e9f02261 100644 --- a/code/game/turfs/floors/desert.dm +++ b/code/game/turfs/floors/desert.dm @@ -27,6 +27,12 @@ /turf/open/desert/dirt/is_weedable() return FULLY_WEEDABLE +/turf/open/desert/dirt/desert_transition_edge1 + icon_state = "desert_transition_edge1" + +/turf/open/desert/dirt/desert_transition_edge1/southwest + dir = SOUTHWEST + /turf/open/desert/dirt/dirt_transition_edge1 name = "desert" icon_state = "dirt4_transition_edge1" @@ -40,6 +46,42 @@ name = "desert" icon_state = "dirt4_transition_corner2" +/turf/open/desert/dirt/desert_transition_corner1 + icon_state = "desert_transition_corner1" + +/turf/open/desert/dirt/desert_transition_corner1/north + dir = NORTH + +/turf/open/desert/dirt/desert_transition_edge1/north + dir = NORTH + +/turf/open/desert/dirt/desert_transition_corner1/east + dir = EAST + +/turf/open/desert/dirt/desert_transition_edge1/east + dir = EAST + +/turf/open/desert/dirt/desert_transition_edge1/northeast + dir = NORTHEAST + +/turf/open/desert/dirt/desert_transition_edge1/southeast + dir = SOUTHEAST + +/turf/open/desert/dirt/desert_transition_corner1/west + dir = WEST + +/turf/open/desert/dirt/desert_transition_edge1/west + dir = WEST + +/turf/open/desert/dirt/desert_transition_edge1/northwest + dir = NORTHWEST + +/turf/open/desert/dirt/dirt2 + icon_state = "dirt2" + +/turf/open/desert/dirt/rock1 + icon_state = "rock1" + //desert riverbed /turf/open/desert/riverbed/dirt1 name = "riverbed" @@ -86,9 +128,40 @@ /turf/open/desert/rock/deep name = "cave" icon_state = "rock2" + +/turf/open/desert/rock/deep/rock3 + icon_state = "rock3" + +/turf/open/desert/rock/deep/rock4 + icon_state = "rock4" + +/turf/open/desert/rock/edge1/east + dir = EAST + /turf/open/desert/rock/deep/transition icon_state = "rock2_transition" +/turf/open/desert/rock/deep/transition/southwest + dir = SOUTHWEST + +/turf/open/desert/rock/deep/transition/north + dir = NORTH + +/turf/open/desert/rock/deep/transition/east + dir = EAST + +/turf/open/desert/rock/deep/transition/northeast + dir = NORTHEAST + +/turf/open/desert/rock/deep/transition/southeast + dir = SOUTHEAST + +/turf/open/desert/rock/deep/transition/west + dir = WEST + +/turf/open/desert/rock/deep/transition/northwest + dir = NORTHWEST + //Desert grass /turf/open/desert/desertgrass name = "desert" @@ -114,7 +187,7 @@ set_light(2) icon = 'icons/turf/floors/desert_water_toxic.dmi' if(0) - set_light(1) + set_light(0) icon = 'icons/turf/floors/desert_water.dmi' if(-1) set_light(1) @@ -126,6 +199,40 @@ /turf/open/desert/desert_shore/desert_shore1 name = "shore" icon_state = "shore1" + +/turf/open/desert/desert_shore/desert_shore1/north + dir = NORTH + +/turf/open/desert/desert_shore/desert_shore1/east + dir = EAST + +/turf/open/desert/desert_shore/desert_shore1/west + dir = WEST + +/turf/open/desert/desert_shore/shore_corner1/north + dir = NORTH + +/turf/open/desert/desert_shore/shore_corner1/west + dir = WEST + +/turf/open/desert/desert_shore/shore_corner2/north + dir = NORTH + +/turf/open/desert/desert_shore/shore_corner2/east + dir = EAST + +/turf/open/desert/desert_shore/shore_corner2/west + dir = WEST + +/turf/open/desert/desert_shore/shore_edge1/north + dir = NORTH + +/turf/open/desert/desert_shore/shore_edge1/east + dir = EAST + +/turf/open/desert/desert_shore/shore_edge1/west + dir = WEST + /* /turf/open/desert/desert_shore/desert_shore2 name = "shore" @@ -199,12 +306,21 @@ set_light(2) icon = 'icons/turf/floors/desert_water_toxic.dmi' if(0) - set_light(1) + set_light(0) icon = 'icons/turf/floors/desert_water.dmi' if(-1) set_light(1) icon = 'icons/turf/floors/desert_water_transition.dmi' +/turf/open/desert/cave/cave_shore/east + dir = EAST + +/turf/open/desert/cave/cave_shore/northeast + dir = NORTHEAST + +/turf/open/desert/cave/cave_shore/southeast + dir = SOUTHEAST + //Desert River Toxic /turf/open/gm/river/desert name = "water" @@ -224,7 +340,7 @@ set_light(2) icon = 'icons/turf/floors/desert_water_toxic.dmi' if(0) - set_light(1) + set_light(0) icon = 'icons/turf/floors/desert_water.dmi' if(-1) set_light(1) @@ -238,37 +354,91 @@ icon_overlay = "_shallow" /turf/open/gm/river/desert/shallow/covered - covered = 1 + covered = TRUE icon = 'icons/turf/floors/desert_water_covered.dmi' +/turf/open/gm/river/desert/shallow/toxic + icon = 'icons/turf/floors/desert_water_toxic.dmi' + +/turf/open/gm/river/desert/shallow/pool + name = "pool" + //shallow water transition to deep /turf/open/gm/river/desert/shallow_edge icon_state = "shallow_edge" icon_overlay = "shallow_edge_overlay" +/turf/open/gm/river/desert/shallow_edge/southwest + dir = SOUTHWEST + +/turf/open/gm/river/desert/shallow_edge/north + dir = NORTH + +/turf/open/gm/river/desert/shallow_edge/east + dir = EAST + +/turf/open/gm/river/desert/shallow_edge/northeast + dir = NORTHEAST + +/turf/open/gm/river/desert/shallow_edge/southeast + dir = SOUTHEAST + +/turf/open/gm/river/desert/shallow_edge/west + dir = WEST + +/turf/open/gm/river/desert/shallow_edge/northwest + dir = NORTHWEST + /turf/open/gm/river/desert/shallow_edge/covered - covered = 1 + covered = TRUE icon = 'icons/turf/floors/desert_water_covered.dmi' +/turf/open/gm/river/desert/shallow_edge/covered/north + dir = NORTH + +/turf/open/gm/river/desert/shallow_edge/covered/east + dir = EAST + +/turf/open/gm/river/desert/shallow_edge/covered/northeast + dir = NORTHEAST + +/turf/open/gm/river/desert/shallow_edge/covered/west + dir = WEST + //shallow water transition to deep corner /turf/open/gm/river/desert/shallow_corner icon_state = "shallow_c" icon_overlay = "shallow_c_overlay" /turf/open/gm/river/desert/shallow_corner/covered - covered = 1 + covered = TRUE icon = 'icons/turf/floors/desert_water_covered.dmi' +/turf/open/gm/river/desert/shallow_corner/north + dir = NORTH + +/turf/open/gm/river/desert/shallow_corner/east + dir = EAST + +/turf/open/gm/river/desert/shallow_corner/west + dir = WEST + //deep water /turf/open/gm/river/desert/deep icon_state = "deep" icon_overlay = "_deep" +/turf/open/gm/river/desert/deep/no_slowdown + base_river_slowdown = 0 + /turf/open/gm/river/desert/deep/covered - covered = 1 + covered = TRUE icon = 'icons/turf/floors/desert_water_covered.dmi' +/turf/open/gm/river/desert/deep/toxic + icon = 'icons/turf/floors/desert_water_toxic.dmi' + //shallow water channel plain /turf/open/gm/river/desert/channel icon_state = "channel" @@ -284,22 +454,181 @@ /turf/open/desert/excavation icon = 'icons/turf/floors/desert_excavation.dmi' + //Engineer Ship /turf/open/desert/excavation/component1 icon_state = "component1" + +/turf/open/desert/excavation/component1/southwest + dir = SOUTHWEST + +/turf/open/desert/excavation/component1/north + dir = NORTH + +/turf/open/desert/excavation/component1/east + dir = EAST + +/turf/open/desert/excavation/component1/northeast + dir = NORTHEAST + +/turf/open/desert/excavation/component1/southeast + dir = SOUTHEAST + +/turf/open/desert/excavation/component1/west + dir = WEST + /turf/open/desert/excavation/component2 icon_state = "component2" + +/turf/open/desert/excavation/component2/north + dir = NORTH + +/turf/open/desert/excavation/component2/east + dir = EAST + +/turf/open/desert/excavation/component2/southeast + dir = SOUTHEAST + +/turf/open/desert/excavation/component2/west + dir = WEST + /turf/open/desert/excavation/component3 icon_state = "component3" + +/turf/open/desert/excavation/component3/southwest + dir = SOUTHWEST + +/turf/open/desert/excavation/component3/north + dir = NORTH + +/turf/open/desert/excavation/component3/east + dir = EAST + +/turf/open/desert/excavation/component3/northeast + dir = NORTHEAST + +/turf/open/desert/excavation/component3/southeast + dir = SOUTHEAST + +/turf/open/desert/excavation/component3/west + dir = WEST + /turf/open/desert/excavation/component4 icon_state = "component4" + +/turf/open/desert/excavation/component4/north + dir = NORTH + +/turf/open/desert/excavation/component4/east + dir = EAST + +/turf/open/desert/excavation/component4/southeast + dir = SOUTHEAST + +/turf/open/desert/excavation/component4/west + dir = WEST + /turf/open/desert/excavation/component5 icon_state = "component5" + +/turf/open/desert/excavation/component5/southwest + dir = SOUTHWEST + +/turf/open/desert/excavation/component5/north + dir = NORTH + +/turf/open/desert/excavation/component5/east + dir = EAST + +/turf/open/desert/excavation/component5/northeast + dir = NORTHEAST + +/turf/open/desert/excavation/component5/southeast + dir = SOUTHEAST + +/turf/open/desert/excavation/component5/west + dir = WEST + /turf/open/desert/excavation/component6 icon_state = "component6" + +/turf/open/desert/excavation/component6/southwest + dir = SOUTHWEST + +/turf/open/desert/excavation/component6/north + dir = NORTH + +/turf/open/desert/excavation/component6/east + dir = EAST + +/turf/open/desert/excavation/component6/northeast + dir = NORTHEAST + +/turf/open/desert/excavation/component6/southeast + dir = SOUTHEAST + +/turf/open/desert/excavation/component6/west + dir = WEST + /turf/open/desert/excavation/component7 icon_state = "component7" + +/turf/open/desert/excavation/component7/southwest + dir = SOUTHWEST + +/turf/open/desert/excavation/component7/north + dir = NORTH + +/turf/open/desert/excavation/component7/east + dir = EAST + +/turf/open/desert/excavation/component7/northeast + dir = NORTHEAST + +/turf/open/desert/excavation/component7/southeast + dir = SOUTHEAST + +/turf/open/desert/excavation/component7/west + dir = WEST + /turf/open/desert/excavation/component8 icon_state = "component8" + +/turf/open/desert/excavation/component8/southwest + dir = SOUTHWEST + +/turf/open/desert/excavation/component8/north + dir = NORTH + +/turf/open/desert/excavation/component8/east + dir = EAST + +/turf/open/desert/excavation/component8/northeast + dir = NORTHEAST + +/turf/open/desert/excavation/component8/southeast + dir = SOUTHEAST + +/turf/open/desert/excavation/component8/west + dir = WEST + +/turf/open/desert/excavation/component8/northwest + dir = NORTHWEST + /turf/open/desert/excavation/component9 icon_state = "component9" + +/turf/open/desert/excavation/component9/southwest + dir = SOUTHWEST + +/turf/open/desert/excavation/component9/north + dir = NORTH + +/turf/open/desert/excavation/component9/east + dir = EAST + +/turf/open/desert/excavation/component9/southeast + dir = SOUTHEAST + +/turf/open/desert/excavation/component9/west + dir = WEST diff --git a/code/game/turfs/kutjevo.dm b/code/game/turfs/kutjevo.dm index 9d2b8bfdb50b..82211e5a7c25 100644 --- a/code/game/turfs/kutjevo.dm +++ b/code/game/turfs/kutjevo.dm @@ -3,6 +3,15 @@ /turf/open/floor/plating/kutjevo icon = 'icons/turf/floors/kutjevo/kutjevo_floor.dmi' +/turf/open/floor/plating/kutjevo/panelscorched + icon_state = "panelscorched" + +/turf/open/floor/plating/kutjevo/platingdmg1 + icon_state = "platingdmg1" + +/turf/open/floor/plating/kutjevo/platingdmg3 + icon_state = "platingdmg3" + /turf/open/floor/kutjevo //Instance based on icon_states icon = 'icons/turf/floors/kutjevo/kutjevo_floor.dmi' icon_state = "floor" @@ -17,6 +26,21 @@ /turf/open/floor/kutjevo/multi_tiles icon_state = "multi_tiles" +/turf/open/floor/kutjevo/multi_tiles/southwest + dir = SOUTHWEST + +/turf/open/floor/kutjevo/multi_tiles/north + dir = NORTH + +/turf/open/floor/kutjevo/multi_tiles/east + dir = EAST + +/turf/open/floor/kutjevo/multi_tiles/southeast + dir = SOUTHEAST + +/turf/open/floor/kutjevo/multi_tiles/west + dir = WEST + /turf/open/floor/kutjevo/fake_wood icon_state = "fake_wood" @@ -31,20 +55,92 @@ /turf/open/floor/kutjevo/tan/multi_tiles icon_state = "floor_tan_multi" +/turf/open/floor/kutjevo/tan/multi_tiles/north + dir = NORTH + +/turf/open/floor/kutjevo/tan/multi_tiles/east + dir = EAST + +/turf/open/floor/kutjevo/tan/multi_tiles/southeast + dir = SOUTHEAST + +/turf/open/floor/kutjevo/tan/multi_tiles/west + dir = WEST + //TAN TRANSITION PIECES /turf/open/floor/kutjevo/tan/grey_edge icon_state = "floor_tan_grey3" +/turf/open/floor/kutjevo/tan/grey_edge/southwest + dir = SOUTHWEST + +/turf/open/floor/kutjevo/tan/grey_edge/north + dir = NORTH + +/turf/open/floor/kutjevo/tan/grey_edge/east + dir = EAST + +/turf/open/floor/kutjevo/tan/grey_edge/northeast + dir = NORTHEAST + +/turf/open/floor/kutjevo/tan/grey_edge/southeast + dir = SOUTHEAST + +/turf/open/floor/kutjevo/tan/grey_edge/west + dir = WEST + +/turf/open/floor/kutjevo/tan/grey_edge/northwest + dir = NORTHWEST + /turf/open/floor/kutjevo/tan/grey_inner_edge icon_state = "floor_tan_grey4" +/turf/open/floor/kutjevo/tan/grey_inner_edge/north + dir = NORTH + +/turf/open/floor/kutjevo/tan/grey_inner_edge/east + dir = EAST + +/turf/open/floor/kutjevo/tan/grey_inner_edge/west + dir = WEST + /turf/open/floor/kutjevo/tan/alt_edge icon_state = "floor_tan_alt3" +/turf/open/floor/kutjevo/tan/alt_edge/southwest + dir = SOUTHWEST + +/turf/open/floor/kutjevo/tan/alt_edge/north + dir = NORTH + +/turf/open/floor/kutjevo/tan/alt_edge/east + dir = EAST + +/turf/open/floor/kutjevo/tan/alt_edge/northeast + dir = NORTHEAST + +/turf/open/floor/kutjevo/tan/alt_edge/southeast + dir = SOUTHEAST + +/turf/open/floor/kutjevo/tan/alt_edge/west + dir = WEST + +/turf/open/floor/kutjevo/tan/alt_edge/northwest + dir = NORTHWEST + /turf/open/floor/kutjevo/tan/alt_inner_edge icon_state = "floor_tan_alt4" +/turf/open/floor/kutjevo/tan/alt_inner_edge/north + dir = NORTH + +/turf/open/floor/kutjevo/tan/alt_inner_edge/east + dir = EAST + +/turf/open/floor/kutjevo/tan/alt_inner_edge/west + dir = WEST + //GREY SECONDARIES TO LIGHT TAN /turf/open/floor/kutjevo/grey @@ -66,9 +162,39 @@ /turf/open/floor/kutjevo/colors/orange/edge icon_state = "orange3" +/turf/open/floor/kutjevo/colors/orange/edge/southwest + dir = SOUTHWEST + +/turf/open/floor/kutjevo/colors/orange/edge/north + dir = NORTH + +/turf/open/floor/kutjevo/colors/orange/edge/east + dir = EAST + +/turf/open/floor/kutjevo/colors/orange/edge/northeast + dir = NORTHEAST + +/turf/open/floor/kutjevo/colors/orange/edge/southeast + dir = SOUTHEAST + +/turf/open/floor/kutjevo/colors/orange/edge/west + dir = WEST + +/turf/open/floor/kutjevo/colors/orange/edge/northwest + dir = NORTHWEST + /turf/open/floor/kutjevo/colors/orange/inner_corner icon_state = "orange4" +/turf/open/floor/kutjevo/colors/orange/inner_corner/north + dir = NORTH + +/turf/open/floor/kutjevo/colors/orange/inner_corner/east + dir = EAST + +/turf/open/floor/kutjevo/colors/orange/inner_corner/west + dir = WEST + //BLUE// /turf/open/floor/kutjevo/colors/blue @@ -80,9 +206,33 @@ /turf/open/floor/kutjevo/colors/blue/edge icon_state = "blue3" +/turf/open/floor/kutjevo/colors/blue/edge/east + dir = EAST + +/turf/open/floor/kutjevo/colors/blue/edge/west + dir = WEST + +/turf/open/floor/kutjevo/colors/cyan/edge/north + dir = NORTH + +/turf/open/floor/kutjevo/colors/cyan/edge/east + dir = EAST + +/turf/open/floor/kutjevo/colors/cyan/edge/west + dir = WEST + /turf/open/floor/kutjevo/colors/blue/inner_corner icon_state = "blue4" +/turf/open/floor/kutjevo/colors/cyan/inner_corner/north + dir = NORTH + +/turf/open/floor/kutjevo/colors/cyan/inner_corner/east + dir = EAST + +/turf/open/floor/kutjevo/colors/cyan/inner_corner/west + dir = WEST + //PURPLE// /turf/open/floor/kutjevo/colors/purple @@ -94,9 +244,30 @@ /turf/open/floor/kutjevo/colors/purple/edge icon_state = "purp3" +/turf/open/floor/kutjevo/colors/purple/edge/north + dir = NORTH + +/turf/open/floor/kutjevo/colors/purple/edge/east + dir = EAST + +/turf/open/floor/kutjevo/colors/purple/edge/northeast + dir = NORTHEAST + +/turf/open/floor/kutjevo/colors/purple/edge/west + dir = WEST + /turf/open/floor/kutjevo/colors/purple/inner_corner icon_state = "purp4" +/turf/open/floor/kutjevo/colors/purple/inner_corner/north + dir = NORTH + +/turf/open/floor/kutjevo/colors/purple/inner_corner/east + dir = EAST + +/turf/open/floor/kutjevo/colors/purple/inner_corner/west + dir = WEST + //GREEN// /turf/open/floor/kutjevo/colors/green diff --git a/code/game/turfs/open.dm b/code/game/turfs/open.dm index 7d9dd6303c64..680348e4d995 100644 --- a/code/game/turfs/open.dm +++ b/code/game/turfs/open.dm @@ -95,6 +95,10 @@ edge_overlay.SwapColor(rgb(255, 0, 255, 255), rgb(0, 0, 0, 0)) overlays += edge_overlay + var/area/my_area = loc + if(my_area.lighting_effect) + overlays += my_area.lighting_effect + /turf/open/proc/scorch(heat_level) // All scorched icons should be in the dmi that their unscorched bases are // "name_scorched#" where # is the scorchedness level 0 - 1 - 2 - 3 @@ -115,10 +119,10 @@ scorchedness = 1 if(2 to 30) - scorchedness = Clamp(scorchedness + 1, 0, 3) //increase scorch by 1 (not that hot of a fire) + scorchedness = clamp(scorchedness + 1, 0, 3) //increase scorch by 1 (not that hot of a fire) if(31 to 60) - scorchedness = Clamp(scorchedness + 2, 0, 3) //increase scorch by 2 (hotter fire) + scorchedness = clamp(scorchedness + 2, 0, 3) //increase scorch by 2 (hotter fire) if(61 to INFINITY) scorchedness = 3 //max out the scorchedness (hottest fire) @@ -171,6 +175,10 @@ icon = 'icons/turf/floors/floors.dmi' icon_state = "grass1" +/turf/open/organic/grass/astroturf + desc = "It'll get in your shoes no matter what you do." + name = "astroturf" + // Mars grounds /turf/open/mars @@ -187,7 +195,6 @@ icon_state = "mars_cave_1" is_groundmap_turf = TRUE - /turf/open/mars_cave/Initialize(mapload, ...) . = ..() @@ -196,13 +203,87 @@ if (r == 0 && icon_state == "mars_cave_2") icon_state = "mars_cave_3" +/turf/open/mars_cave/mars_cave_10 + icon_state = "mars_cave_10" + +/turf/open/mars_cave/mars_cave_11 + icon_state = "mars_cave_11" + +/turf/open/mars_cave/mars_cave_12 + icon_state = "mars_cave_12" + +/turf/open/mars_cave/mars_cave_13 + icon_state = "mars_cave_13" + +/turf/open/mars_cave/mars_cave_14 + icon_state = "mars_cave_14" + +/turf/open/mars_cave/mars_cave_15 + icon_state = "mars_cave_15" + +/turf/open/mars_cave/mars_cave_16 + icon_state = "mars_cave_16" + +/turf/open/mars_cave/mars_cave_17 + icon_state = "mars_cave_17" + +/turf/open/mars_cave/mars_cave_18 + icon_state = "mars_cave_18" + +/turf/open/mars_cave/mars_cave_19 + icon_state = "mars_cave_19" + +/turf/open/mars_cave/mars_cave_2 + icon_state = "mars_cave_2" + +/turf/open/mars_cave/mars_cave_20 + icon_state = "mars_cave_20" + +/turf/open/mars_cave/mars_cave_22 + icon_state = "mars_cave_22" + +/turf/open/mars_cave/mars_cave_23 + icon_state = "mars_cave_23" + +/turf/open/mars_cave/mars_cave_3 + icon_state = "mars_cave_3" + +/turf/open/mars_cave/mars_cave_4 + icon_state = "mars_cave_4" + +/turf/open/mars_cave/mars_cave_5 + icon_state = "mars_cave_5" + +/turf/open/mars_cave/mars_cave_6 + icon_state = "mars_cave_6" + +/turf/open/mars_cave/mars_cave_7 + icon_state = "mars_cave_7" + +/turf/open/mars_cave/mars_cave_8 + icon_state = "mars_cave_8" + +/turf/open/mars_cave/mars_cave_9 + icon_state = "mars_cave_9" + +/turf/open/mars_cave/mars_dirt_4 + icon_state = "mars_dirt_4" + +/turf/open/mars_cave/mars_dirt_5 + icon_state = "mars_dirt_5" + +/turf/open/mars_cave/mars_dirt_6 + icon_state = "mars_dirt_6" + +/turf/open/mars_cave/mars_dirt_7 + icon_state = "mars_dirt_7" + /turf/open/mars_dirt name = "dirt" icon = 'icons/turf/floors/bigred.dmi' icon_state = "mars_dirt_1" minimap_color = MINIMAP_DIRT - /turf/open/mars_dirt/Initialize(mapload, ...) . = ..() var/r = rand(0, 32) @@ -222,12 +303,58 @@ if (r == 0 && icon_state == "mars_dirt_4") icon_state = "mars_dirt_7" +/turf/open/mars_dirt/mars_cave_10 + icon_state = "mars_cave_10" +/turf/open/mars_dirt/mars_cave_11 + icon_state = "mars_cave_11" +/turf/open/mars_dirt/mars_cave_3 + icon_state = "mars_cave_3" +/turf/open/mars_dirt/mars_cave_6 + icon_state = "mars_cave_6" -// Beach +/turf/open/mars_dirt/mars_cave_7 + icon_state = "mars_cave_7" + +/turf/open/mars_dirt/mars_cave_8 + icon_state = "mars_cave_8" + +/turf/open/mars/mars_cave_10 + icon_state = "mars_cave_10" + +/turf/open/mars/mars_dirt_10 + icon_state = "mars_dirt_10" + +/turf/open/mars/mars_dirt_11 + icon_state = "mars_dirt_11" + +/turf/open/mars/mars_dirt_12 + icon_state = "mars_dirt_12" + +/turf/open/mars/mars_dirt_13 + icon_state = "mars_dirt_13" + +/turf/open/mars/mars_dirt_14 + icon_state = "mars_dirt_14" + +/turf/open/mars/mars_dirt_3 + icon_state = "mars_dirt_3" + +/turf/open/mars/mars_dirt_5 + icon_state = "mars_dirt_5" +/turf/open/mars/mars_dirt_6 + icon_state = "mars_dirt_6" + +/turf/open/mars/mars_dirt_8 + icon_state = "mars_dirt_8" + +/turf/open/mars/mars_dirt_9 + icon_state = "mars_dirt_9" + +// Beach /turf/open/beach name = "Beach" @@ -327,6 +454,21 @@ if(rand(0,15) == 0) icon_state = "desert[pick("0","1","2","3")]" +/turf/open/gm/dirt/desert0 + icon_state = "desert0" + +/turf/open/gm/dirt/desert1 + icon_state = "desert1" + +/turf/open/gm/dirt/desert2 + icon_state = "desert2" + +/turf/open/gm/dirt/desert3 + icon_state = "desert3" + +/turf/open/gm/dirt/desert_dug + icon_state = "desert_dug" + /turf/open/gm/grass name = "grass" icon_state = "grass1" @@ -432,6 +574,24 @@ /turf/open/gm/dirtgrassborder/grassdirt_corner2/south_west dir = 8 +/turf/open/gm/dirtgrassborder/desert + icon_state = "desert" + +/turf/open/gm/dirtgrassborder/desert0 + icon_state = "desert0" + +/turf/open/gm/dirtgrassborder/desert1 + icon_state = "desert1" + +/turf/open/gm/dirtgrassborder/desert2 + icon_state = "desert2" + +/turf/open/gm/dirtgrassborder/desert3 + icon_state = "desert3" + +/turf/open/gm/dirtgrassborder/desert_dug + icon_state = "desert_dug" + /turf/open/gm/dirtgrassborder/Initialize(mapload, ...) . = ..() @@ -449,6 +609,21 @@ icon_state = "grassdirt2_edge" baseturfs = /turf/open/gm/dirtgrassborder2 +/turf/open/gm/dirtgrassborder2/north + dir = NORTH + +/turf/open/gm/dirtgrassborder2/east + dir = EAST + +/turf/open/gm/dirtgrassborder2/west + dir = WEST + +/turf/open/gm/dirtgrassborder2/wall2 + icon_state = "wall2" + +/turf/open/gm/dirtgrassborder2/wall3 + icon_state = "wall3" + /turf/open/gm/river name = "river" icon_state = "seashallow" @@ -568,11 +743,35 @@ ..() if(istype(M)) M.apply_damage(55,TOX) +/turf/open/gm/river/darkred_pool + color = "#990000" + name = "pool" + +/turf/open/gm/river/darkred + color = "#990000" + +/turf/open/gm/river/red_pool + color = "#995555" + name = "pool" + +/turf/open/gm/river/red + color = "#995555" + +/turf/open/gm/river/pool + name = "pool" + +/turf/open/gm/river/shallow_ocean_shallow_ocean + name = "shallow ocean" + default_name = "shallow ocean" /turf/open/gm/river/ocean color = "#dae3e2" base_river_slowdown = 4 // VERY. SLOW. +/turf/open/gm/river/ocean/deep_ocean + name = "deep ocean" + default_name = "deep ocean" + /turf/open/gm/river/ocean/Entered(atom/movable/AM) . = ..() if(prob(20)) // fuck you @@ -613,6 +812,9 @@ /turf/open/gm/coast/east dir = 8 +/turf/open/gm/coast/south_east + dir = 9 + /turf/open/gm/coast/beachcorner icon_state = "beachcorner" @@ -712,13 +914,95 @@ icon_state = "sunbleached_asphalt" baseturfs = /turf/open/asphalt +/turf/open/asphalt/tile + icon_state = "tile" + /turf/open/asphalt/cement name = "concrete" icon_state = "cement5" + +/turf/open/asphalt/cement/cement1 + icon_state = "cement1" + +/turf/open/asphalt/cement/cement1/north + dir = NORTH + +/turf/open/asphalt/cement/cement12 + icon_state = "cement12" + +/turf/open/asphalt/cement/cement13 + icon_state = "cement13" + +/turf/open/asphalt/cement/cement14 + icon_state = "cement14" + +/turf/open/asphalt/cement/cement15 + icon_state = "cement15" + +/turf/open/asphalt/cement/cement2 + icon_state = "cement2" + +/turf/open/asphalt/cement/cement3 + icon_state = "cement3" + +/turf/open/asphalt/cement/cement4 + icon_state = "cement4" + +/turf/open/asphalt/cement/cement7 + icon_state = "cement7" + +/turf/open/asphalt/cement/cement9 + icon_state = "cement9" + /turf/open/asphalt/cement_sunbleached name = "concrete" icon_state = "cement_sunbleached5" +/turf/open/asphalt/cement_sunbleached/cement_sunbleached1 + icon_state = "cement_sunbleached1" + +/turf/open/asphalt/cement_sunbleached/cement_sunbleached12 + icon_state = "cement_sunbleached12" + +/turf/open/asphalt/cement_sunbleached/cement_sunbleached13 + icon_state = "cement_sunbleached13" + +/turf/open/asphalt/cement_sunbleached/cement_sunbleached14 + icon_state = "cement_sunbleached14" + +/turf/open/asphalt/cement_sunbleached/cement_sunbleached15 + icon_state = "cement_sunbleached15" + +/turf/open/asphalt/cement_sunbleached/cement_sunbleached16 + icon_state = "cement_sunbleached16" + +/turf/open/asphalt/cement_sunbleached/cement_sunbleached17 + icon_state = "cement_sunbleached17" + +/turf/open/asphalt/cement_sunbleached/cement_sunbleached18 + icon_state = "cement_sunbleached18" + +/turf/open/asphalt/cement_sunbleached/cement_sunbleached19 + icon_state = "cement_sunbleached19" + +/turf/open/asphalt/cement_sunbleached/cement_sunbleached2 + icon_state = "cement_sunbleached2" + +/turf/open/asphalt/cement_sunbleached/cement_sunbleached20 + icon_state = "cement_sunbleached20" + +/turf/open/asphalt/cement_sunbleached/cement_sunbleached3 + icon_state = "cement_sunbleached3" + +/turf/open/asphalt/cement_sunbleached/cement_sunbleached4 + icon_state = "cement_sunbleached4" + +/turf/open/asphalt/cement_sunbleached/cement_sunbleached6 + icon_state = "cement_sunbleached6" + +/turf/open/asphalt/cement_sunbleached/cement_sunbleached9 + icon_state = "cement_sunbleached9" + // Jungle turfs (Whiksey Outpost) @@ -826,15 +1110,17 @@ qdel(B) /turf/open/jungle/impenetrable - bushes_spawn = 0 + bushes_spawn = FALSE icon_state = "grass_impenetrable" icon_spawn_state = "grass1" /turf/open/jungle/impenetrable/Initialize(mapload, ...) . = ..() - var/obj/structure/flora/jungle/thickbush/B = new(src) - B.indestructable = 1 + var/obj/structure/flora/jungle/thickbush/bush = new(src) + bush.indestructable = TRUE +/turf/open/jungle/impenetrable/grass_clear + icon_state = "grass_clear" /turf/open/jungle/water bushes_spawn = 0 @@ -910,10 +1196,108 @@ allow_construction = FALSE supports_surgery = FALSE +/turf/open/shuttle/can_surgery + allow_construction = TRUE + supports_surgery = TRUE + +/turf/open/shuttle/can_surgery/blue + name = "floor" + icon_state = "floor" + icon = 'icons/turf/shuttle.dmi' + +/turf/open/shuttle/bright_red + icon_state = "floor4" + +/turf/open/shuttle/red + icon_state = "floor6" + +/turf/open/shuttle/black + icon_state = "floor7" + +/turf/open/shuttle/can_surgery/red + icon_state = "floor6" + +/turf/open/shuttle/can_surgery/black + icon_state = "floor7" + /turf/open/shuttle/dropship name = "floor" icon_state = "rasputin1" +/turf/open/shuttle/dropship/light_grey_single_wide_left_to_right + icon_state = "floor8" + +/turf/open/shuttle/dropship/light_grey_single_wide_up_to_down + icon_state = "rasputin3" + +/turf/open/shuttle/dropship/light_grey_bottom_left + icon_state = "rasputin4" + +/turf/open/shuttle/dropship/light_grey_left_to_right + icon_state = "rasputin5" + +/turf/open/shuttle/dropship/light_grey_top_left + icon_state = "rasputin6" + +/turf/open/shuttle/dropship/light_grey_top_right + icon_state = "rasputin7" + +/turf/open/shuttle/dropship/light_grey_bottom_right + icon_state = "rasputin8" + +/turf/open/shuttle/dropship/light_grey_top + icon_state = "rasputin10" + +/turf/open/shuttle/dropship/dark_grey_bottom + icon_state = "rasputin12" + +/turf/open/shuttle/dropship/light_grey_middle + icon_state = "rasputin13" + +/turf/open/shuttle/dropship/can_surgery + icon_state = "rasputin1" + allow_construction = TRUE + supports_surgery = TRUE + +/turf/open/shuttle/dropship/can_surgery/dark_grey_bottom + icon_state = "rasputin12" + +/turf/open/shuttle/dropship/can_surgery/light_grey_top + icon_state = "rasputin10" + +/turf/open/shuttle/dropship/can_surgery/light_grey_middle + icon_state = "rasputin13" + +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down + icon_state = "rasputin15" + +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_left_to_right + icon_state = "floor8" + +/*same two but helps with finding if you think top to bottom or up to down*/ +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_up_to_down + icon_state = "rasputin3" + +/turf/open/shuttle/dropship/can_surgery/light_grey_top_left + icon_state = "rasputin6" + +/turf/open/shuttle/dropship/can_surgery/light_grey_bottom_left + icon_state = "rasputin4" + +/turf/open/shuttle/dropship/can_surgery/light_grey_top_right + icon_state = "rasputin7" + +/turf/open/shuttle/dropship/can_surgery/light_grey_bottom_right + icon_state = "rasputin8" + +/turf/open/shuttle/dropship/can_surgery/medium_grey_single_wide_left_to_right + icon_state = "rasputin14" + +/turf/open/shuttle/dropship/can_surgery/medium_grey_single_wide_up_to_down + icon_state = "rasputin15" + + + /turf/open/shuttle/predship name = "ship floor" icon_state = "floor6" @@ -934,10 +1318,71 @@ icon = 'icons/turf/escapepods.dmi' icon_state = "floor3" +/turf/open/shuttle/escapepod/north + dir = NORTH + +/turf/open/shuttle/escapepod/east + dir = EAST + +/turf/open/shuttle/escapepod/west + dir = WEST + +/turf/open/shuttle/escapepod/floor0 + icon_state = "floor0" + +/turf/open/shuttle/escapepod/floor0/north + dir = NORTH + +/turf/open/shuttle/escapepod/floor0/west + dir = WEST + +/turf/open/shuttle/escapepod/floor1 + icon_state = "floor1" + +/turf/open/shuttle/escapepod/floor1/east + dir = EAST + +/turf/open/shuttle/escapepod/floor11 + icon_state = "floor11" + +/turf/open/shuttle/escapepod/floor12 + icon_state = "floor12" + +/turf/open/shuttle/escapepod/floor2 + icon_state = "floor2" + +/turf/open/shuttle/escapepod/floor4 + icon_state = "floor4" + +/turf/open/shuttle/escapepod/floor5 + icon_state = "floor5" + +/turf/open/shuttle/escapepod/floor7 + icon_state = "floor7" + +/turf/open/shuttle/escapepod/floor8 + icon_state = "floor8" + +/turf/open/shuttle/escapepod/floor9 + icon_state = "floor9" + /turf/open/shuttle/lifeboat icon = 'icons/turf/almayer.dmi' icon_state = "plating" allow_construction = FALSE + supports_surgery = TRUE + +/turf/open/shuttle/lifeboat/plating_striped + icon_state = "plating_striped" + +/turf/open/shuttle/lifeboat/plating_striped/north + dir = NORTH + +/turf/open/shuttle/lifeboat/plate + icon_state = "plate" + +/turf/open/shuttle/lifeboat/test_floor4 + icon_state = "test_floor4" // Elevator floors /turf/open/shuttle/elevator @@ -959,3 +1404,123 @@ name = "floor" icon_state = "dark_sterile" supports_surgery = TRUE + +/turf/open/shuttle/vehicle/dark_sterile + icon_state = "dark_sterile" + +/turf/open/shuttle/vehicle/dark_sterile_green_11 + icon_state = "dark_sterile_green_11" + +/turf/open/shuttle/vehicle/dark_sterile_green_12 + icon_state = "dark_sterile_green_12" + +/turf/open/shuttle/vehicle/dark_sterile_green_13 + icon_state = "dark_sterile_green_13" + +/turf/open/shuttle/vehicle/dark_sterile_green_14 + icon_state = "dark_sterile_green_14" + +/turf/open/shuttle/vehicle/dark_sterile_green_5 + icon_state = "dark_sterile_green_5" + +/turf/open/shuttle/vehicle/dark_sterile_green_6 + icon_state = "dark_sterile_green_6" + +/turf/open/shuttle/vehicle/dark_sterile_green_7 + icon_state = "dark_sterile_green_7" + +/turf/open/shuttle/vehicle/dark_sterile_green_8 + icon_state = "dark_sterile_green_8" + +/turf/open/shuttle/vehicle/floor_0_1_15 + icon_state = "floor_0_1_15" + +/turf/open/shuttle/vehicle/floor_1_1 + icon_state = "floor_1_1" + +/turf/open/shuttle/vehicle/floor_1_10 + icon_state = "floor_1_10" + +/turf/open/shuttle/vehicle/floor_1_11 + icon_state = "floor_1_11" + +/turf/open/shuttle/vehicle/floor_1_12 + icon_state = "floor_1_12" + +/turf/open/shuttle/vehicle/floor_1_13 + icon_state = "floor_1_13" + +/turf/open/shuttle/vehicle/floor_1_14 + icon_state = "floor_1_14" + +/turf/open/shuttle/vehicle/floor_1_1_3 + icon_state = "floor_1_1_3" + +/turf/open/shuttle/vehicle/floor_1_2 + icon_state = "floor_1_2" + +/turf/open/shuttle/vehicle/floor_1_3_3 + icon_state = "floor_1_3_3" + +/turf/open/shuttle/vehicle/floor_1_5 + icon_state = "floor_1_5" + +/turf/open/shuttle/vehicle/floor_1_6 + icon_state = "floor_1_6" + +/turf/open/shuttle/vehicle/floor_1_7 + icon_state = "floor_1_7" + +/turf/open/shuttle/vehicle/floor_1_8 + icon_state = "floor_1_8" + +/turf/open/shuttle/vehicle/floor_1_9 + icon_state = "floor_1_9" + +/turf/open/shuttle/vehicle/floor_3 + icon_state = "floor_3" + +/turf/open/shuttle/vehicle/floor_3_10_1 + icon_state = "floor_3_10_1" + +/turf/open/shuttle/vehicle/floor_3_11 + icon_state = "floor_3_11" + +/turf/open/shuttle/vehicle/floor_3_12 + icon_state = "floor_3_12" + +/turf/open/shuttle/vehicle/floor_3_13 + icon_state = "floor_3_13" + +/turf/open/shuttle/vehicle/floor_3_1_1 + icon_state = "floor_3_1_1" + +/turf/open/shuttle/vehicle/floor_3_3 + icon_state = "floor_3_3" + +/turf/open/shuttle/vehicle/floor_3_4 + icon_state = "floor_3_4" + +/turf/open/shuttle/vehicle/floor_3_5 + icon_state = "floor_3_5" + +/turf/open/shuttle/vehicle/floor_3_6 + icon_state = "floor_3_6" + +/turf/open/shuttle/vehicle/floor_3_7 + icon_state = "floor_3_7" + +/turf/open/shuttle/vehicle/floor_3_7_1 + icon_state = "floor_3_7_1" + +/turf/open/shuttle/vehicle/floor_3_8 + icon_state = "floor_3_8" + +/turf/open/shuttle/vehicle/floor_3_8_1 + icon_state = "floor_3_8_1" + +/turf/open/shuttle/vehicle/floor_3_9 + icon_state = "floor_3_9" + +/turf/open/shuttle/vehicle/floor_3_9_1 + icon_state = "floor_3_9_1" diff --git a/code/game/turfs/shiva.dm b/code/game/turfs/shiva.dm index 4c5a73221173..26e9cbb29c18 100644 --- a/code/game/turfs/shiva.dm +++ b/code/game/turfs/shiva.dm @@ -2,3 +2,285 @@ /turf/open/floor/shiva //Instance me! icon = 'icons/turf/floors/ice_colony/shiva_floor.dmi' icon_state = "floor" + +/turf/open/floor/shiva/blue + icon_state = "blue" + +/turf/open/floor/shiva/blue/southwest + dir = SOUTHWEST + +/turf/open/floor/shiva/green + icon_state = "green" + +/turf/open/floor/shiva/green/southwest + dir = SOUTHWEST + +/turf/open/floor/shiva/purple + icon_state = "purple" + +/turf/open/floor/shiva/purple/southwest + dir = SOUTHWEST + +/turf/open/floor/shiva/red + icon_state = "red" + +/turf/open/floor/shiva/red/southwest + dir = SOUTHWEST + +/turf/open/floor/shiva/wred + icon_state = "wred" + +/turf/open/floor/shiva/wred/southwest + dir = SOUTHWEST + +/turf/open/floor/shiva/yellow + icon_state = "yellow" + +/turf/open/floor/shiva/yellow/southwest + dir = SOUTHWEST + +/turf/open/floor/shiva/blue/north + dir = NORTH + +/turf/open/floor/shiva/green/north + dir = NORTH + +/turf/open/floor/shiva/greencorners + icon_state = "greencorners" + +/turf/open/floor/shiva/greencorners/north + dir = NORTH + +/turf/open/floor/shiva/multi_tiles + icon_state = "multi_tiles" + +/turf/open/floor/shiva/multi_tiles/north + dir = NORTH + +/turf/open/floor/shiva/purple/north + dir = NORTH + +/turf/open/floor/shiva/purplefull + icon_state = "purplefull" + +/turf/open/floor/shiva/purplefull/north + dir = NORTH + +/turf/open/floor/shiva/red/north + dir = NORTH + +/turf/open/floor/shiva/redcorners + icon_state = "redcorners" + +/turf/open/floor/shiva/redcorners/north + dir = NORTH + +/turf/open/floor/shiva/snow_mat + icon_state = "snow_mat" + +/turf/open/floor/shiva/snow_mat/north + dir = NORTH + +/turf/open/floor/shiva/wred/north + dir = NORTH + +/turf/open/floor/shiva/wredcorners + icon_state = "wredcorners" + +/turf/open/floor/shiva/wredcorners/north + dir = NORTH + +/turf/open/floor/shiva/yellow/north + dir = NORTH + +/turf/open/floor/shiva/yellowcorners + icon_state = "yellowcorners" + +/turf/open/floor/shiva/yellowcorners/north + dir = NORTH + +/turf/open/floor/shiva/north + dir = NORTH + +/turf/open/floor/shiva/blue/east + dir = EAST + +/turf/open/floor/shiva/green/east + dir = EAST + +/turf/open/floor/shiva/greencorners/east + dir = EAST + +/turf/open/floor/shiva/multi_tiles/east + dir = EAST + +/turf/open/floor/shiva/purple/east + dir = EAST + +/turf/open/floor/shiva/purplefull/east + dir = EAST + +/turf/open/floor/shiva/red/east + dir = EAST + +/turf/open/floor/shiva/redcorners/east + dir = EAST + +/turf/open/floor/shiva/snow_mat/east + dir = EAST + +/turf/open/floor/shiva/wred/east + dir = EAST + +/turf/open/floor/shiva/wredcorners/east + dir = EAST + +/turf/open/floor/shiva/yellow/east + dir = EAST + +/turf/open/floor/shiva/yellowcorners/east + dir = EAST + +/turf/open/floor/shiva/blue/northeast + dir = NORTHEAST + +/turf/open/floor/shiva/green/northeast + dir = NORTHEAST + +/turf/open/floor/shiva/purple/northeast + dir = NORTHEAST + +/turf/open/floor/shiva/red/northeast + dir = NORTHEAST + +/turf/open/floor/shiva/wred/northeast + dir = NORTHEAST + +/turf/open/floor/shiva/yellow/northeast + dir = NORTHEAST + +/turf/open/floor/shiva/blue/southeast + dir = SOUTHEAST + +/turf/open/floor/shiva/green/southeast + dir = SOUTHEAST + +/turf/open/floor/shiva/multi_tiles/southeast + dir = SOUTHEAST + +/turf/open/floor/shiva/purple/southeast + dir = SOUTHEAST + +/turf/open/floor/shiva/red/southeast + dir = SOUTHEAST + +/turf/open/floor/shiva/wred/southeast + dir = SOUTHEAST + +/turf/open/floor/shiva/yellow/southeast + dir = SOUTHEAST + +/turf/open/floor/shiva/blue/west + dir = WEST + +/turf/open/floor/shiva/bluecorners + icon_state = "bluecorners" + +/turf/open/floor/shiva/bluecorners/west + dir = WEST + +/turf/open/floor/shiva/bluefull + icon_state = "bluefull" + +/turf/open/floor/shiva/bluefull/west + dir = WEST + +/turf/open/floor/shiva/green/west + dir = WEST + +/turf/open/floor/shiva/greencorners/west + dir = WEST + +/turf/open/floor/shiva/greenfull + icon_state = "greenfull" + +/turf/open/floor/shiva/greenfull/west + dir = WEST + +/turf/open/floor/shiva/multi_tiles/west + dir = WEST + +/turf/open/floor/shiva/purple/west + dir = WEST + +/turf/open/floor/shiva/purplecorners + icon_state = "purplecorners" + +/turf/open/floor/shiva/purplecorners/west + dir = WEST + +/turf/open/floor/shiva/purplefull/west + dir = WEST + +/turf/open/floor/shiva/red/west + dir = WEST + +/turf/open/floor/shiva/redcorners/west + dir = WEST + +/turf/open/floor/shiva/redfull + icon_state = "redfull" + +/turf/open/floor/shiva/redfull/west + dir = WEST + +/turf/open/floor/shiva/snow_mat/west + dir = WEST + +/turf/open/floor/shiva/wred/west + dir = WEST + +/turf/open/floor/shiva/wredcorners/west + dir = WEST + +/turf/open/floor/shiva/yellow/west + dir = WEST + +/turf/open/floor/shiva/yellowcorners/west + dir = WEST + +/turf/open/floor/shiva/yellowfull + icon_state = "yellowfull" + +/turf/open/floor/shiva/yellowfull/west + dir = WEST + +/turf/open/floor/shiva/blue/northwest + dir = NORTHWEST + +/turf/open/floor/shiva/green/northwest + dir = NORTHWEST + +/turf/open/floor/shiva/purple/northwest + dir = NORTHWEST + +/turf/open/floor/shiva/red/northwest + dir = NORTHWEST + +/turf/open/floor/shiva/wred/northwest + dir = NORTHWEST + +/turf/open/floor/shiva/yellow/northwest + dir = NORTHWEST + +/turf/open/floor/shiva/floor3 + icon_state = "floor3" + +/turf/open/floor/shiva/radiator_tile + icon_state = "radiator_tile" + +/turf/open/floor/shiva/radiator_tile2 + icon_state = "radiator_tile2" + +/turf/open/floor/shiva/wredfull + icon_state = "wredfull" diff --git a/code/game/turfs/snow.dm b/code/game/turfs/snow.dm index f7fb746cfbbc..c8afd734e862 100644 --- a/code/game/turfs/snow.dm +++ b/code/game/turfs/snow.dm @@ -8,6 +8,7 @@ icon = 'icons/turf/floors/snow2.dmi' icon_state = "snow_0" is_groundmap_turf = TRUE + scorchable = TRUE //PLACING/REMOVING/BUILDING /turf/open/snow/attackby(obj/item/I, mob/user) @@ -132,6 +133,22 @@ bleed_layer = 0 update_icon(1, 0) +//Flames act +/turf/open/snow/scorch(heat_level) + if(bleed_layer <= 0) + return + switch(heat_level) + if(1 to 19) + bleed_layer-- + update_icon(update_full = TRUE, skip_sides = FALSE) + if(20 to 39) + bleed_layer = max(bleed_layer - 2, 0) + update_icon(update_full = TRUE, skip_sides = FALSE) + if(40 to INFINITY) + bleed_layer = 0 + update_icon(update_full = TRUE, skip_sides = FALSE) + + //SNOW LAYERS-----------------------------------// /turf/open/snow/layer0 icon_state = "snow_0" diff --git a/code/game/turfs/strata.dm b/code/game/turfs/strata.dm index a89f98a732ae..e561ddbc5501 100644 --- a/code/game/turfs/strata.dm +++ b/code/game/turfs/strata.dm @@ -17,6 +17,9 @@ /turf/open/gm/dirtgrassborder/weedable/is_weedable() //Gotta have our sexy grass borders be weedable. return FULLY_WEEDABLE +/turf/open/gm/dirtgrassborder/weedable/grass1 + icon_state = "grass1" + /turf/closed/gm/dense/weedable /turf/closed/gm/dense/weedable/is_weedable() //Weed-able jungle walls. Notably crushers can slam through this, so that might cause overlay issues. 3 months later, yeah it causes overlay issues, so return FALSE! @@ -25,3 +28,257 @@ /turf/open/floor/strata //Instance me! icon = 'icons/turf/floors/strata_floor.dmi' icon_state = "floor" + +/turf/open/floor/strata/grey_multi_tiles + color = "#5e5d5d" + icon_state = "multi_tiles" + +/turf/open/floor/strata/grey_multi_tiles/southwest + dir = SOUTHWEST + +/turf/open/floor/strata/faux_wood + desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means." + icon = 'icons/turf/floors/floors.dmi' + icon_state = "wood" + +/turf/open/floor/strata/faux_metal + desc = "This metal floor has been painted to look like one made of wood. Unfortunately, wood and high pressure internal atmosphere don't mix well. Wood is a major fire hazard don't'cha know." + icon = 'icons/turf/floors/floors.dmi' + icon_state = "wood" + +/turf/open/floor/strata/multi_tiles + icon_state = "multi_tiles" + +/turf/open/floor/strata/multi_tiles/southwest + dir = SOUTHWEST + +/turf/open/floor/strata/white_cyan3 + icon_state = "white_cyan3" + +/turf/open/floor/strata/white_cyan3/southwest + dir = SOUTHWEST + +/turf/open/floor/strata/blue4 + icon_state = "blue4" + +/turf/open/floor/strata/blue4/north + dir = NORTH + +/turf/open/floor/strata/red3 + icon_state = "red3" + +/turf/open/floor/strata/red3/north + dir = NORTH + +/turf/open/floor/strata/white_cyan3/north + dir = NORTH + +/turf/open/floor/strata/white_cyan4 + icon_state = "white_cyan4" + +/turf/open/floor/strata/white_cyan4/north + dir = NORTH + +/turf/open/floor/strata/red3/south + dir = SOUTH + +/turf/open/floor/strata/white_cyan3/south + dir = SOUTH + +/turf/open/floor/strata/white_cyan4/south + dir = SOUTH + +/turf/open/floor/strata/blue3 + icon_state = "blue3" + +/turf/open/floor/strata/blue3/east + dir = EAST + +/turf/open/floor/strata/cyan1 + icon_state = "cyan1" + +/turf/open/floor/strata/cyan1/east + dir = EAST + +/turf/open/floor/strata/cyan2 + icon_state = "cyan2" + +/turf/open/floor/strata/cyan2/east + dir = EAST + +/turf/open/floor/strata/cyan3 + icon_state = "cyan3" + +/turf/open/floor/strata/cyan3/east + dir = EAST + +/turf/open/floor/strata/cyan4 + icon_state = "cyan4" + +/turf/open/floor/strata/cyan4/east + dir = EAST + +/turf/open/floor/strata/floor3 + icon_state = "floor3" + +/turf/open/floor/strata/floor3/east + dir = EAST + +/turf/open/floor/strata/orange_edge + icon_state = "orange_edge" + +/turf/open/floor/strata/orange_edge/east + dir = EAST + +/turf/open/floor/strata/red3/east + dir = EAST + +/turf/open/floor/strata/white_cyan1 + icon_state = "white_cyan1" + +/turf/open/floor/strata/white_cyan1/east + dir = EAST + +/turf/open/floor/strata/white_cyan3/east + dir = EAST + +/turf/open/floor/strata/white_cyan4/east + dir = EAST + +/turf/open/floor/strata/white_cyan3/northeast + dir = NORTHEAST + +/turf/open/floor/strata/multi_tiles/southeast + dir = SOUTHEAST + +/turf/open/floor/strata/white_cyan3/southeast + dir = SOUTHEAST + +/turf/open/floor/strata/blue3/west + dir = WEST + +/turf/open/floor/strata/cyan3/west + dir = WEST + +/turf/open/floor/strata/multi_tiles/west + dir = WEST + +/turf/open/floor/strata/orange_edge/west + dir = WEST + +/turf/open/floor/strata/red3/west + dir = WEST + +/turf/open/floor/strata/white_cyan2 + icon_state = "white_cyan2" + +/turf/open/floor/strata/white_cyan2/west + dir = WEST + +/turf/open/floor/strata/white_cyan3/west + dir = WEST + +/turf/open/floor/strata/white_cyan4/west + dir = WEST + +/turf/open/floor/strata/white_cyan3/northwest + dir = NORTHWEST + +/turf/open/floor/strata/blue1 + icon_state = "blue1" + +/turf/open/floor/strata/blue3/north + dir = NORTH + +/turf/open/floor/strata/damaged3 + icon_state = "damaged3" + +/turf/open/floor/strata/fake_wood + icon_state = "fake_wood" + +/turf/open/floor/strata/floor2 + icon_state = "floor2" + +/turf/open/floor/strata/floorscorched1 + icon_state = "floorscorched1" + +/turf/open/floor/strata/floorscorched2 + icon_state = "floorscorched2" + +/turf/open/floor/strata/green1 + icon_state = "green1" + +/turf/open/floor/strata/green3 + icon_state = "green3" + +/turf/open/floor/strata/green3/north + dir = NORTH + +/turf/open/floor/strata/green3/east + dir = EAST + +/turf/open/floor/strata/green3/northeast + dir = NORTHEAST + +/turf/open/floor/strata/green3/west + dir = WEST + +/turf/open/floor/strata/green3/northwest + dir = NORTHWEST + +/turf/open/floor/strata/green4 + icon_state = "green4" + +/turf/open/floor/strata/green4/north + dir = NORTH + +/turf/open/floor/strata/green4/east + dir = EAST + +/turf/open/floor/strata/green4/west + dir = WEST + +/turf/open/floor/strata/orange_cover + icon_state = "orange_cover" + +/turf/open/floor/strata/orange_icorner + icon_state = "orange_icorner" + +/turf/open/floor/strata/orange_icorner/north + dir = NORTH + +/turf/open/floor/strata/orange_icorner/west + dir = WEST + +/turf/open/floor/strata/orange_tile + icon_state = "orange_tile" + +/turf/open/floor/strata/purp1 + icon_state = "purp1" + +/turf/open/floor/strata/purp2 + icon_state = "purp2" + +/turf/open/floor/strata/purp3 + icon_state = "purp3" + +/turf/open/floor/strata/purp3/east + dir = EAST + +/turf/open/floor/strata/red1 + icon_state = "red1" + +/turf/open/floor/strata/red2 + icon_state = "red2" + +/turf/open/floor/strata/red4 + icon_state = "red4" + +/turf/open/floor/strata/red4/north + dir = NORTH + +/turf/open/floor/strata/red4/east + dir = EAST + +/turf/open/floor/strata/red4/west + dir = WEST diff --git a/code/game/turfs/transit.dm b/code/game/turfs/transit.dm index bae6718cfd59..00175ac5e365 100644 --- a/code/game/turfs/transit.dm +++ b/code/game/turfs/transit.dm @@ -11,19 +11,235 @@ if(isobserver(crosser) || crosser.anchored) return - if(!(isitem(crosser) || isliving(crosser))) + if(!isobj(crosser) && !isliving(crosser)) return - var/turf/open/floor/floor = old_loc - if(istype(floor)) - var/fling_dir = get_dir(floor, crosser.loc) + if(!istype(old_loc, /turf/open/space)) + var/turf/projected = get_ranged_target_turf(crosser.loc, dir, 10) - var/turf/near_turf = get_step(crosser.loc, get_step(crosser.loc, fling_dir)) - var/turf/projected = get_ranged_target_turf(near_turf, fling_dir, 50) + INVOKE_ASYNC(crosser, TYPE_PROC_REF(/atom/movable, throw_atom), projected, 50, SPEED_FAST, null, TRUE) + + addtimer(CALLBACK(src, PROC_REF(handle_crosser), crosser), 0.5 SECONDS) + +/turf/open/space/transit/proc/handle_crosser(atom/movable/crosser) + if(QDELETED(crosser)) + return + if(crosser.can_paradrop()) //let's not delete people who arent meant to be deleted... This shouldn't happen normally, but if it does, congratulations, you gamed the system + return + qdel(crosser) + +/turf/open/space/transit/dropship + var/shuttle_tag + +/turf/open/space/transit/dropship/handle_crosser(atom/movable/crosser) + if(QDELETED(crosser)) + return + if(!shuttle_tag) + return ..() + + var/obj/docking_port/mobile/marine_dropship/dropship = SSshuttle.getShuttle(shuttle_tag) + if(!istype(dropship) || dropship.mode != SHUTTLE_CALL) + return ..() + + // you just jumped out of a dropship heading towards the LZ, have fun living on the way down! + var/list/ground_z_levels = SSmapping.levels_by_trait(ZTRAIT_GROUND) + if(!length(ground_z_levels)) + return ..() + + if(dropship.paradrop_signal) //if dropship in paradrop mode, drop them near the signal. Whether they have a parachute or not + var/list/valid_turfs = list() + var/turf/location = get_turf(dropship.paradrop_signal.signal_loc) + for(var/turf/turf as anything in RANGE_TURFS(crosser.get_paradrop_scatter(), location)) + var/area/turf_area = get_area(turf) + if(!turf_area || CEILING_IS_PROTECTED(turf_area.ceiling, CEILING_PROTECTION_TIER_1)) + continue + if(turf.density) + continue + var/found_dense = FALSE + for(var/atom/turf_atom in turf) + if(turf_atom.density && turf_atom.can_block_movement) + found_dense = TRUE + break + if(found_dense) + continue + if(protected_by_pylon(TURF_PROTECTION_MORTAR, turf)) + continue + valid_turfs += turf + var/turf/deploy_turf + if(length(valid_turfs)) //if we found a fitting place near the landing zone... + deploy_turf = pick(valid_turfs) + else //if we somehow did not. Drop them right on the signal then, there is nothing we can do + deploy_turf = location + if(crosser.can_paradrop()) + INVOKE_ASYNC(crosser, TYPE_PROC_REF(/atom/movable, handle_paradrop), deploy_turf, dropship.name) + return + INVOKE_ASYNC(crosser, TYPE_PROC_REF(/atom/movable, handle_airdrop), deploy_turf, dropship.name) + return + //find a random spot to drop them + var/list/area/potential_areas = shuffle(SSmapping.areas_in_z["[ground_z_levels[1]]"]) + + for(var/area/maybe_this_area in potential_areas) + if(CEILING_IS_PROTECTED(maybe_this_area.ceiling, CEILING_PROTECTION_TIER_1)) // prevents out of bounds too + continue + if(istype(maybe_this_area, /area/space)) // make sure its not space, just in case + continue + + var/turf/open/possible_turf = null + var/list/area_turfs = get_area_turfs(maybe_this_area) + for(var/i in 1 to 10) + possible_turf = pick_n_take(area_turfs) + // we're looking for an open, non-dense, and non-space turf. + if(!istype(possible_turf) || is_blocked_turf(possible_turf) || istype(possible_turf, /turf/open/space)) + continue + + if(!istype(possible_turf) || is_blocked_turf(possible_turf) || istype(possible_turf, /turf/open/space)) + continue // couldnt find one in 10 loops, check another area + + // we found a good turf, lets drop em + if(crosser.can_paradrop()) + INVOKE_ASYNC(crosser, TYPE_PROC_REF(/atom/movable, handle_paradrop), possible_turf, dropship.name) + return + INVOKE_ASYNC(crosser, TYPE_PROC_REF(/atom/movable, handle_airdrop), possible_turf, dropship.name) + return + + //we didn't find a turf to drop them... This shouldn't happen usually + if(crosser.can_paradrop()) //don't delete them if they were supposed to paradrop + to_chat(crosser, SPAN_BOLDWARNING("Your harness got stuck and you got thrown back in the dropship.")) + var/turf/projected = get_ranged_target_turf(crosser.loc, turn(dir, 180), 15) INVOKE_ASYNC(crosser, TYPE_PROC_REF(/atom/movable, throw_atom), projected, 50, SPEED_FAST, null, TRUE) + return + return ..() // they couldn't be dropped, just delete them + +/atom/movable/proc/can_paradrop() + return FALSE + +/atom/movable/proc/get_paradrop_scatter() + return 7 + +/mob/living/carbon/human/can_paradrop() + if(istype(back, /obj/item/parachute)) + return TRUE + return ..() + +/obj/structure/closet/crate/can_paradrop() //for now all crates can be paradropped + return TRUE + +/obj/structure/closet/crate/get_paradrop_scatter() //crates land closer to the signal + return 4 - QDEL_IN(crosser, 0.5 SECONDS) +/obj/structure/largecrate/can_paradrop() + return TRUE + +/obj/structure/largecrate/get_paradrop_scatter() + return 4 + +/atom/movable/proc/handle_paradrop(turf/target, dropship_name) + clear_active_explosives() + ADD_TRAIT(src, TRAIT_IMMOBILIZED, TRAIT_SOURCE_DROPSHIP_INTERACTION) + ADD_TRAIT(src, TRAIT_UNDENSE, TRAIT_SOURCE_DROPSHIP_INTERACTION) + var/image/cables = image('icons/obj/structures/droppod_32x64.dmi', src, "chute_cables_static") + overlays += cables + var/image/chute = image('icons/obj/structures/droppod_64x64.dmi', src, "chute_static") + + chute.pixel_x -= 16 + chute.pixel_y += 16 + + overlays += chute + pixel_z = 360 + forceMove(target) + playsound(src, 'sound/items/fulton.ogg', 30, 1) + animate(src, time = 3.5 SECONDS, pixel_z = 0, flags = ANIMATION_PARALLEL) + addtimer(CALLBACK(target, TYPE_PROC_REF(/turf, ceiling_debris)), 2 SECONDS) + addtimer(CALLBACK(src, PROC_REF(clear_parachute), cables, chute), 3.5 SECONDS) + +/mob/living/carbon/handle_paradrop(turf/target, dropship_name) + ..() + if(client) + playsound_client(client, 'sound/items/fulton.ogg', src, 50, 1) //for some reason you don't hear the sound while dropping, maybe because of force move? + +/atom/movable/proc/clear_parachute(image/cables, image/chute) + if(QDELETED(src)) + return + REMOVE_TRAIT(src, TRAIT_IMMOBILIZED, TRAIT_SOURCE_DROPSHIP_INTERACTION) + REMOVE_TRAIT(src, TRAIT_UNDENSE, TRAIT_SOURCE_DROPSHIP_INTERACTION) + overlays -= cables + overlays -= chute + +/atom/movable/proc/clear_active_explosives() + for(var/obj/item/explosive/explosive in contents) + if(!explosive.active) + continue + explosive.deconstruct(FALSE) + +/atom/movable/proc/handle_airdrop(turf/target, dropship_name) + clear_active_explosives() + ADD_TRAIT(src, TRAIT_IMMOBILIZED, TRAIT_SOURCE_DROPSHIP_INTERACTION) + pixel_z = 360 + forceMove(target) + animate(src, time = 6, pixel_z = 0, flags = ANIMATION_PARALLEL) + INVOKE_ASYNC(target, TYPE_PROC_REF(/turf, ceiling_debris)) + REMOVE_TRAIT(src, TRAIT_IMMOBILIZED, TRAIT_SOURCE_DROPSHIP_INTERACTION) + +/obj/handle_airdrop(turf/target, dropship_name) + ..() + if(!indestructible && prob(30)) // throwing objects from the air is not always a good idea + deconstruct(FALSE) + +/obj/structure/closet/handle_airdrop(turf/target, dropship_name) // good idea but no + if(!opened) + for(var/atom/movable/content in src) + INVOKE_ASYNC(content, TYPE_PROC_REF(/atom/movable, handle_airdrop), target, dropship_name) + open() + . = ..() + +/obj/item/handle_airdrop(turf/target, dropship_name) + ..() + if(QDELETED(src)) + return + if(!indestructible && w_class < SIZE_MEDIUM) //tiny and small items will be lost, good riddance + deconstruct(FALSE) + return + explosion_throw(200) // give it a bit of a kick + +/obj/item/explosive/handle_airdrop(turf/target, dropship_name) + if(active) + deconstruct(FALSE) + return + ..() + +/mob/living/handle_airdrop(turf/target, dropship_name) + ..() + playsound(target, "punch", rand(20, 70), TRUE) + playsound(target, "punch", rand(20, 70), TRUE) + playsound(target, "bone_break", rand(20, 70), TRUE) + playsound(target, "bone_break", rand(20, 70), TRUE) + + KnockDown(10) + Stun(3) + // take a little bit more damage otherwise + take_overall_damage(400, used_weapon = "falling", limb_damage_chance = 100) + visible_message(SPAN_WARNING("[src] falls out of the sky."), SPAN_HIGHDANGER("As you fall out of the [dropship_name], you plummet towards the ground.")) + +/mob/living/carbon/human/handle_airdrop(turf/target, dropship_name) + ..() + last_damage_data = create_cause_data("falling from [dropship_name]", src) + // I'd say falling from space is pretty much like getting hit by an explosion + take_overall_armored_damage(300, ARMOR_BOMB, limb_damage_chance = 100) + // but just in case, you will still take a ton of damage. + take_overall_damage(200, used_weapon = "falling", limb_damage_chance = 100) + if(stat < DEAD) + death(last_damage_data) + status_flags |= PERMANENTLY_DEAD + + +/turf/open/space/transit/dropship/alamo + shuttle_tag = DROPSHIP_ALAMO + dir = SOUTH + +/turf/open/space/transit/dropship/normandy + shuttle_tag = DROPSHIP_NORMANDY + dir = SOUTH /turf/open/space/transit/south dir = SOUTH diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm index 22fe85bdde65..59a9d6d69315 100644 --- a/code/game/turfs/turf.dm +++ b/code/game/turfs/turf.dm @@ -24,7 +24,6 @@ */ - /turf icon = 'icons/turf/floors/floors.dmi' var/intact_tile = 1 //used by floors to distinguish floor with/without a floortile(e.g. plating). @@ -47,7 +46,7 @@ var/changing_turf = FALSE var/chemexploded = FALSE // Prevents explosion stacking - var/flags_turf = NO_FLAGS + var/turf_flags = NO_FLAGS /// Whether we've broken through the ceiling yet var/ceiling_debrised = FALSE @@ -57,6 +56,7 @@ ///Lumcount added by sources other than lighting datum objects, such as the overlay lighting component. var/dynamic_lumcount = 0 + ///List of light sources affecting this turf. ///Which directions does this turf block the vision of, taking into account both the turf's opacity and the movable opacity_sources. var/directional_opacity = NONE @@ -79,8 +79,6 @@ levelupdate() - visibilityChanged() - pass_flags = GLOB.pass_flags_cache[type] if (isnull(pass_flags)) pass_flags = new() @@ -103,11 +101,6 @@ if(opacity) directional_opacity = ALL_CARDINALS - //Get area light - var/area/A = loc - if(A?.lighting_effect) - overlays += A.lighting_effect - return INITIALIZE_HINT_NORMAL /turf/Destroy(force) @@ -127,7 +120,6 @@ for(var/I in B.vars) B.vars[I] = null return - visibilityChanged() flags_atom &= ~INITIALIZED ..() @@ -148,6 +140,22 @@ /turf/proc/update_icon() //Base parent. - Abby return +/// Call to move a turf from its current area to a new one +/turf/proc/change_area(area/old_area, area/new_area) + //dont waste our time + if(old_area == new_area) + return + + //move the turf + new_area.contents += src + + //changes to make after turf has moved + on_change_area(old_area, new_area) + +/// Allows for reactions to an area change without inherently requiring change_area() be called (I hate maploading) +/turf/proc/on_change_area(area/old_area, area/new_area) + transfer_area_lighting(old_area, new_area) + /turf/proc/add_cleanable_overlays() for(var/cleanable_type in cleanables) var/obj/effect/decal/cleanable/C = cleanables[cleanable_type] @@ -362,7 +370,7 @@ next_target = initial(current_target.baseturfs) baseturfs = new_baseturfs - created_baseturf_lists[new_baseturfs[new_baseturfs.len]] = new_baseturfs.Copy() + created_baseturf_lists[new_baseturfs[length(new_baseturfs)]] = new_baseturfs.Copy() return new_baseturfs // Creates a new turf @@ -438,20 +446,24 @@ W.levelupdate() return W +//If you modify this function, ensure it works correctly with lateloaded map templates. +/turf/proc/AfterChange(flags, oldType) //called after a turf has been replaced in ChangeTurf() + return // Placeholder. This is mostly used by /tg/ code for atmos updates + // Take off the top layer turf and replace it with the next baseturf down /turf/proc/ScrapeAway(amount=1, flags) if(!amount) return if(length(baseturfs)) var/list/new_baseturfs = baseturfs.Copy() - var/turf_type = new_baseturfs[max(1, new_baseturfs.len - amount + 1)] + var/turf_type = new_baseturfs[max(1, length(new_baseturfs) - amount + 1)] while(ispath(turf_type, /turf/baseturf_skipover)) amount++ - if(amount > new_baseturfs.len) + if(amount > length(new_baseturfs)) CRASH("The bottomost baseturf of a turf is a skipover [src]([type])") - turf_type = new_baseturfs[max(1, new_baseturfs.len - amount + 1)] - new_baseturfs.len -= min(amount, new_baseturfs.len - 1) // No removing the very bottom - if(new_baseturfs.len == 1) + turf_type = new_baseturfs[max(1, length(new_baseturfs) - amount + 1)] + new_baseturfs.len -= min(amount, length(new_baseturfs) - 1) // No removing the very bottom + if(length(new_baseturfs) == 1) new_baseturfs = new_baseturfs[1] return ChangeTurf(turf_type, new_baseturfs, flags) @@ -504,10 +516,10 @@ return var/amount = size - var/spread = round(sqrt(size)*1.5) + var/spread = floor(sqrt(size)*1.5) var/list/turfs = list() - for(var/turf/open/floor/F in range(src,spread)) + for(var/turf/open/floor/F in range(spread, src)) turfs += F switch(A.ceiling) @@ -762,14 +774,41 @@ GLOBAL_LIST_INIT(blacklisted_automated_baseturfs, typecacheof(list( insert_self_into_baseturfs() var/turf/change_type if(length(new_baseturfs)) - change_type = new_baseturfs[new_baseturfs.len] + change_type = new_baseturfs[length(new_baseturfs)] new_baseturfs.len-- - if(new_baseturfs.len) + if(length(new_baseturfs)) baseturfs += new_baseturfs else change_type = new_baseturfs return ChangeTurf(change_type, null, flags) +/// Places a turf on top - for map loading +/turf/proc/load_on_top(turf/added_layer, flags) + var/area/our_area = get_area(src) + flags = our_area.PlaceOnTopReact(list(baseturfs), added_layer, flags) + + if(flags & CHANGETURF_SKIP) // We haven't been initialized + if(flags_atom & INITIALIZED) + stack_trace("CHANGETURF_SKIP was used in a PlaceOnTop call for a turf that's initialized. This is a mistake. [src]([type])") + assemble_baseturfs() + + var/turf/new_turf + if(!length(baseturfs)) + baseturfs = list(baseturfs) + + var/list/old_baseturfs = baseturfs.Copy() + if(!isclosedturf(src)) + old_baseturfs += type + + new_turf = ChangeTurf(added_layer, null, flags) + new_turf.assemble_baseturfs(initial(added_layer.baseturfs)) // The baseturfs list is created like roundstart + if(!length(new_turf.baseturfs)) + new_turf.baseturfs = list(baseturfs) + + // The old baseturfs are put underneath, and we sort out the unwanted ones + new_turf.baseturfs = baseturfs_string_list(old_baseturfs + (new_turf.baseturfs - GLOB.blacklisted_automated_baseturfs), new_turf) + return new_turf + /turf/proc/insert_self_into_baseturfs() baseturfs += type @@ -778,7 +817,7 @@ GLOBAL_LIST_INIT(blacklisted_automated_baseturfs, typecacheof(list( var/static/list/ignored_atoms = typecacheof(list(/mob/dead, /obj/effect/landmark, /obj/docking_port)) var/list/removable_contents = typecache_filter_list_reverse(GetAllContentsIgnoring(ignore_typecache), ignored_atoms) removable_contents -= src - for(var/i in 1 to removable_contents.len) + for(var/i in 1 to length(removable_contents)) var/thing = removable_contents[i] qdel(thing, force=TRUE) @@ -795,9 +834,9 @@ GLOBAL_LIST_INIT(blacklisted_automated_baseturfs, typecacheof(list( if(depth) var/list/target_baseturfs if(length(copytarget.baseturfs)) - // with default inputs this would be Copy(clamp(2, -INFINITY, baseturfs.len)) + // with default inputs this would be Copy(clamp(2, -INFINITY, length(baseturfs))) // Don't forget a lower index is lower in the baseturfs stack, the bottom is baseturfs[1] - target_baseturfs = copytarget.baseturfs.Copy(clamp(1 + ignore_bottom, 1 + copytarget.baseturfs.len - depth, copytarget.baseturfs.len)) + target_baseturfs = copytarget.baseturfs.Copy(clamp(1 + ignore_bottom, 1 + length(copytarget.baseturfs) - depth, length(copytarget.baseturfs))) else if(!ignore_bottom) target_baseturfs = list(copytarget.baseturfs) if(target_baseturfs) diff --git a/code/game/turfs/walls/r_wall.dm b/code/game/turfs/walls/r_wall.dm index 8933ad31c0e8..f9e7fa764e71 100644 --- a/code/game/turfs/walls/r_wall.dm +++ b/code/game/turfs/walls/r_wall.dm @@ -6,7 +6,6 @@ density = TRUE damage_cap = HEALTH_WALL_REINFORCED - max_temperature = 6000 walltype = WALL_REINFORCED @@ -16,10 +15,6 @@ if(hull) return - if (!(istype(user, /mob/living/carbon/human) || isrobot(user) || SSticker) && SSticker.mode.name != "monkey") - to_chat(user, SPAN_WARNING("You don't have the dexterity to do this!")) - return - //get the user's location if( !istype(user.loc, /turf) ) return //can't do this stuff whilst inside objects and such @@ -132,7 +127,7 @@ user.visible_message(SPAN_NOTICE("[user] starts repairing the damage to [src]."), SPAN_NOTICE("You start repairing the damage to [src].")) playsound(src, 'sound/items/Welder.ogg', 25, 1) - if(do_after(user, max(5, round(damage / 5) * user.get_skill_duration_multiplier(SKILL_CONSTRUCTION)), INTERRUPT_ALL, BUSY_ICON_FRIENDLY) && istype(src, /turf/closed/wall/r_wall)) + if(do_after(user, max(5, floor(damage / 5) * user.get_skill_duration_multiplier(SKILL_CONSTRUCTION)), INTERRUPT_ALL, BUSY_ICON_FRIENDLY) && istype(src, /turf/closed/wall/r_wall)) user.visible_message(SPAN_NOTICE("[user] finishes repairing the damage to [src]."), SPAN_NOTICE("You finish repairing the damage to [src].")) take_damage(-damage) diff --git a/code/game/turfs/walls/wall_icon.dm b/code/game/turfs/walls/wall_icon.dm index 2b414ca46af8..8552063b586f 100644 --- a/code/game/turfs/walls/wall_icon.dm +++ b/code/game/turfs/walls/wall_icon.dm @@ -1,6 +1,6 @@ #define BULLETHOLE_STATES 10 //How many variations of bullethole patterns there are //Formulas. These don't need to be defines, but helpful green. Should likely reuse these for a base 8 icon system. -#define cur_increment(v) round((v-1)/8)+1 +#define cur_increment(v) floor((v-1)/8)+1 /turf/closed/wall/update_icon() ..() @@ -31,9 +31,9 @@ overlays += I if(damage) - var/current_dmg_overlay = round(damage / damage_cap * damage_overlays.len) + 1 - if(current_dmg_overlay > damage_overlays.len) - current_dmg_overlay = damage_overlays.len + var/current_dmg_overlay = floor(damage / damage_cap * length(damage_overlays)) + 1 + if(current_dmg_overlay > length(damage_overlays)) + current_dmg_overlay = length(damage_overlays) damage_overlay = current_dmg_overlay overlays += damage_overlays[damage_overlay] @@ -44,13 +44,17 @@ bullet_overlay = image('icons/effects/bulletholes.dmi', src, "bhole_[bullethole_state]_2") overlays += bullet_overlay + var/area/my_area = loc + if(my_area.lighting_effect) + overlays += my_area.lighting_effect + #undef BULLETHOLE_STATES #undef cur_increment /turf/closed/wall/proc/generate_damage_overlays() - var/alpha_inc = 256 / damage_overlays.len + var/alpha_inc = 256 / length(damage_overlays) - for(var/i = 1; i <= damage_overlays.len; i++) + for(var/i = 1; i <= length(damage_overlays); i++) var/image/img = image(icon = 'icons/turf/walls/walls.dmi', icon_state = "overlay_damage") img.blend_mode = BLEND_MULTIPLY img.appearance_flags = NO_CLIENT_COLOR @@ -114,7 +118,7 @@ var/list/ret = list(NORTHWEST, SOUTHEAST, NORTHEAST, SOUTHWEST) - for(var/i = 1 to ret.len) + for(var/i = 1 to length(ret)) var/dir = ret[i] . = CORNER_NONE if(dir in dirs) diff --git a/code/game/turfs/walls/wall_types.dm b/code/game/turfs/walls/wall_types.dm index 3093f8c7771a..21839d35af03 100644 --- a/code/game/turfs/walls/wall_types.dm +++ b/code/game/turfs/walls/wall_types.dm @@ -12,8 +12,6 @@ damage = 0 damage_cap = HEALTH_WALL //Wall will break down to girders if damage reaches this point - max_temperature = 18000 //K, walls will take damage if they're next to a fire hotter than this - opacity = TRUE density = TRUE @@ -59,6 +57,24 @@ damage_cap = HEALTH_WALL_REINFORCED icon_state = "reinforced" +/// Acts like /turf/closed/wall/almayer/outer until post-hijack where it reverts to /turf/closed/wall/almayer/reinforced. +/turf/closed/wall/almayer/reinforced/temphull + name = "heavy reinforced hull" + desc = "A highly reinforced metal wall used to separate rooms and make up the ship. It would take a great impact to weaken this wall." + damage_cap = HEALTH_WALL_REINFORCED + icon_state = "temphull" + hull = TRUE + +/turf/closed/wall/almayer/reinforced/temphull/Initialize() + . = ..() + if(is_mainship_level(z)) + RegisterSignal(SSdcs, COMSIG_GLOB_HIJACK_IMPACTED, PROC_REF(de_hull)) + +/turf/closed/wall/almayer/reinforced/temphull/proc/de_hull() + SIGNAL_HANDLER + hull = FALSE + desc = "A highly reinforced metal wall used to separate rooms and make up the ship. It has been weakened by a great impact." + /turf/closed/wall/almayer/outer name = "outer hull" desc = "A metal wall used to separate space from the ship" @@ -195,7 +211,39 @@ icon_state = "containment_window" opacity = FALSE +//AI Core +/turf/closed/wall/almayer/aicore + walltype = WALL_AICORE + icon = 'icons/turf/walls/almayer_aicore.dmi' + icon_state = "aiwall" + +/turf/closed/wall/almayer/aicore/reinforced + name = "reinforced hull" + damage_cap = HEALTH_WALL_REINFORCED + icon_state = "reinforced" + +/turf/closed/wall/almayer/aicore/hull + name = "ultra reinforced hull" + desc = "An extremely reinforced metal wall used to isolate potentially dangerous areas" + hull = TRUE + icon_state = "hull" + +/turf/closed/wall/almayer/aicore/white + walltype = WALL_AICORE + icon = 'icons/turf/walls/almayer_aicore_white.dmi' + icon_state = "aiwall" + +/turf/closed/wall/almayer/aicore/white/reinforced + name = "reinforced hull" + damage_cap = HEALTH_WALL_REINFORCED + icon_state = "reinforced" + +/turf/closed/wall/almayer/aicore/white/hull + name = "ultra reinforced hull" + desc = "An extremely reinforced metal wall used to isolate potentially dangerous areas" + hull = TRUE + icon_state = "hull" //Sulaco walls. @@ -207,14 +255,12 @@ hull = 0 //Can't be deconstructed damage_cap = HEALTH_WALL - max_temperature = 28000 //K, walls will take damage if they're next to a fire hotter than this walltype = WALL_SULACO //Changes all the sprites and icons. /turf/closed/wall/sulaco/hull name = "outer hull" desc = "A reinforced outer hull, probably to prevent breaches" hull = 1 - max_temperature = 50000 // Nearly impossible to melt walltype = WALL_SULACO @@ -222,7 +268,6 @@ name = "outer hull" desc = "A reinforced outer hull, probably to prevent breaches" hull = 1 - max_temperature = 50000 // Nearly impossible to melt walltype = WALL_SULACO @@ -532,7 +577,6 @@ INITIALIZE_IMMEDIATE(/turf/closed/wall/indestructible/splashscreen) desc = "A thick and chunky metal wall covered in jagged ribs." walltype = WALL_STRATA_OUTPOST_RIBBED damage_cap = HEALTH_WALL_REINFORCED - max_temperature = 28000 /turf/closed/wall/strata_outpost name = "bare outpost walls" @@ -547,7 +591,6 @@ INITIALIZE_IMMEDIATE(/turf/closed/wall/indestructible/splashscreen) desc = "A thick and chunky metal wall covered in jagged ribs." walltype = WALL_STRATA_OUTPOST_RIBBED damage_cap = HEALTH_WALL_REINFORCED - max_temperature = 28000 /turf/closed/wall/strata_outpost/reinforced/hull hull = 1 @@ -568,7 +611,6 @@ INITIALIZE_IMMEDIATE(/turf/closed/wall/indestructible/splashscreen) icon_state = "solaris_interior_r" walltype = WALL_SOLARISR damage_cap = HEALTH_WALL_REINFORCED - max_temperature = 28000 /turf/closed/wall/solaris/reinforced/hull name = "heavy reinforced colony wall" @@ -601,7 +643,6 @@ INITIALIZE_IMMEDIATE(/turf/closed/wall/indestructible/splashscreen) desc = "Just like in the orange box! This one is reinforced" walltype = WALL_DEVWALL_R damage_cap = HEALTH_WALL_REINFORCED - max_temperature = 28000 /turf/closed/wall/dev/reinforced/hull name = "greybox hull wall" @@ -635,7 +676,6 @@ INITIALIZE_IMMEDIATE(/turf/closed/wall/indestructible/splashscreen) desc = "Dusty worn down walls that were once built to last. This one is reinforced" walltype = WALL_KUTJEVO_COLONYR damage_cap = HEALTH_WALL_REINFORCED - max_temperature = 28000 /turf/closed/wall/kutjevo/colony/reinforced/hull icon_state = "colonyh" @@ -712,7 +752,7 @@ INITIALIZE_IMMEDIATE(/turf/closed/wall/indestructible/splashscreen) var/hivenumber = XENO_HIVE_NORMAL var/should_track_build = FALSE var/datum/cause_data/construction_data - flags_turf = TURF_ORGANIC + turf_flags = TURF_ORGANIC /turf/closed/wall/resin/Initialize(mapload) . = ..() @@ -759,6 +799,14 @@ INITIALIZE_IMMEDIATE(/turf/closed/wall/indestructible/splashscreen) icon_state = "thickresin" walltype = WALL_THICKRESIN +/turf/closed/wall/resin/tutorial + name = "tutorial resin wall" + desc = "Weird slime solidified into a wall. Remarkably resilient." + hivenumber = XENO_HIVE_TUTORIAL + +/turf/closed/wall/resin/tutorial/attack_alien(mob/living/carbon/xenomorph/xeno) + return + /turf/closed/wall/resin/membrane name = "resin membrane" desc = "Weird slime translucent enough to let light pass through." @@ -988,7 +1036,7 @@ INITIALIZE_IMMEDIATE(/turf/closed/wall/indestructible/splashscreen) SPAN_XENONOTICE("You claw \the [src].")) playsound(src, "alien_resin_break", 25) if (M.hivenumber == hivenumber) - take_damage(Ceiling(HEALTH_WALL_XENO * 0.25)) //Four hits for a regular wall + take_damage(ceil(HEALTH_WALL_XENO * 0.25)) //Four hits for a regular wall else take_damage(M.melee_damage_lower*RESIN_XENO_DAMAGE_MULTIPLIER) return XENO_ATTACK_ACTION @@ -996,7 +1044,7 @@ INITIALIZE_IMMEDIATE(/turf/closed/wall/indestructible/splashscreen) /obj/structure/alien/movable_wall/attackby(obj/item/W, mob/living/user) if(!(W.flags_item & NOBLUDGEON)) user.animation_attack_on(src) - take_damage(W.force*RESIN_MELEE_DAMAGE_MULTIPLIER, user) + take_damage(W.force*RESIN_MELEE_DAMAGE_MULTIPLIER*W.demolition_mod, user) playsound(src, "alien_resin_break", 25) else return attack_hand(user) @@ -1201,10 +1249,10 @@ INITIALIZE_IMMEDIATE(/turf/closed/wall/indestructible/splashscreen) M.animation_attack_on(src) M.visible_message(SPAN_XENONOTICE("\The [M] claws \the [src]!"), \ - SPAN_XENONOTICE("You claw \the [src].")) + SPAN_XENONOTICE("We claw \the [src].")) playsound(src, "alien_resin_break", 25) if (M.hivenumber == hivenumber) - take_damage(Ceiling(HEALTH_WALL_XENO * 0.25)) //Four hits for a regular wall + take_damage(ceil(HEALTH_WALL_XENO * 0.25)) //Four hits for a regular wall else take_damage(M.melee_damage_lower*RESIN_XENO_DAMAGE_MULTIPLIER) return XENO_ATTACK_ACTION @@ -1232,7 +1280,7 @@ INITIALIZE_IMMEDIATE(/turf/closed/wall/indestructible/splashscreen) if(!(W.flags_item & NOBLUDGEON)) user.animation_attack_on(src) - take_damage(W.force*RESIN_MELEE_DAMAGE_MULTIPLIER, user) + take_damage(W.force*RESIN_MELEE_DAMAGE_MULTIPLIER*W.demolition_mod, user) playsound(src, "alien_resin_break", 25) else return attack_hand(user) diff --git a/code/game/turfs/walls/walls.dm b/code/game/turfs/walls/walls.dm index 77143384e7e7..bb1694359b98 100644 --- a/code/game/turfs/walls/walls.dm +++ b/code/game/turfs/walls/walls.dm @@ -5,9 +5,11 @@ icon_state = "0" opacity = TRUE layer = WALL_LAYER - var/hull = 0 //1 = Can't be deconstructed by tools or thermite. Used for Sulaco walls + /// 1 = Can't be deconstructed by tools or thermite. Used for Sulaco walls + var/hull = 0 var/walltype = WALL_METAL - var/junctiontype //when walls smooth with one another, the type of junction each wall is. + /// when walls smooth with one another, the type of junction each wall is. + var/junctiontype var/thermite = 0 var/melting = FALSE var/claws_minimum = CLAW_TYPE_SHARP @@ -21,7 +23,8 @@ ) var/damage = 0 - var/damage_cap = HEALTH_WALL //Wall will break down to girders if damage reaches this point + /// Wall will break down to girders if damage reaches this point + var/damage_cap = HEALTH_WALL var/damage_overlay var/global/damage_overlays[8] @@ -30,12 +33,12 @@ var/image/bullet_overlay = null var/list/wall_connections = list("0", "0", "0", "0") var/neighbors_list = 0 - var/max_temperature = 1800 //K, walls will take damage if they're next to a fire hotter than this var/repair_materials = list("wood"= 0.075, "metal" = 0.15, "plasteel" = 0.3) //Max health % recovered on a nailgun repair var/d_state = 0 //Normal walls are now as difficult to remove as reinforced walls - var/obj/effect/acid_hole/acided_hole //the acid hole inside the wall + /// the acid hole inside the wall + var/obj/effect/acid_hole/acided_hole var/acided_hole_dir = SOUTH var/special_icon = 0 @@ -170,12 +173,12 @@ if (acided_hole) . += SPAN_WARNING("There's a large hole in the wall that could've been caused by some sort of acid.") - if(flags_turf & TURF_ORGANIC) + if(turf_flags & TURF_ORGANIC) return // Skip the part below. 'Organic' walls aren't deconstructable with tools. switch(d_state) if(WALL_STATE_WELD) - . += SPAN_INFO("The outer plating is intact. A blowtorch should slice it open.") + . += SPAN_INFO("The outer plating is intact. If you are not on help intent, a blowtorch should slice it open.") if(WALL_STATE_SCREW) . += SPAN_INFO("The outer plating has been sliced open. A screwdriver should remove the support lines.") if(WALL_STATE_WIRECUTTER) @@ -295,7 +298,7 @@ break if(thermite > (damage_cap - damage)/100) // Thermite gains a speed buff when the amount is overkill - var/timereduction = round((thermite - (damage_cap - damage)/100)/5) // Every 5 units over the required amount reduces the sleep by 0.1s + var/timereduction = floor((thermite - (damage_cap - damage)/100)/5) // Every 5 units over the required amount reduces the sleep by 0.1s sleep(max(2, 20 - timereduction)) else sleep(20) @@ -335,7 +338,7 @@ var/mob/living/carbon/xenomorph/user_as_xenomorph = user user_as_xenomorph.do_nesting_host(attacker_grab.grabbed_thing, src) - if(!ishuman(user) && !isrobot(user)) + if(!ishuman(user)) to_chat(user, SPAN_WARNING("You don't have the dexterity to do this!")) return @@ -479,13 +482,15 @@ /turf/closed/wall/proc/try_weldingtool_usage(obj/item/W, mob/user) if(!damage || !iswelder(W)) return FALSE + if(user.a_intent != INTENT_HELP) + return FALSE var/obj/item/tool/weldingtool/WT = W if(WT.remove_fuel(0, user)) user.visible_message(SPAN_NOTICE("[user] starts repairing the damage to [src]."), SPAN_NOTICE("You start repairing the damage to [src].")) playsound(src, 'sound/items/Welder.ogg', 25, 1) - if(do_after(user, max(5, round(damage / 5) * user.get_skill_duration_multiplier(SKILL_CONSTRUCTION)), INTERRUPT_ALL, BUSY_ICON_FRIENDLY) && istype(src, /turf/closed/wall) && WT && WT.isOn()) + if(do_after(user, max(5, floor(damage / 5) * user.get_skill_duration_multiplier(SKILL_CONSTRUCTION)), INTERRUPT_ALL, BUSY_ICON_FRIENDLY) && istype(src, /turf/closed/wall) && WT && WT.isOn()) user.visible_message(SPAN_NOTICE("[user] finishes repairing the damage to [src]."), SPAN_NOTICE("You finish repairing the damage to [src].")) take_damage(-damage) @@ -501,6 +506,8 @@ if(!(WT.remove_fuel(0, user))) to_chat(user, SPAN_WARNING("You need more welding fuel!")) return + if(user.a_intent == INTENT_HELP) + return playsound(src, 'sound/items/Welder.ogg', 25, 1) user.visible_message(SPAN_NOTICE("[user] begins slicing through the outer plating."), diff --git a/code/game/verbs/ooc.dm b/code/game/verbs/ooc.dm index 2fe22ef3d4da..a5ecea8b05a4 100644 --- a/code/game/verbs/ooc.dm +++ b/code/game/verbs/ooc.dm @@ -42,7 +42,8 @@ if(!display_colour) display_colour = CONFIG_GET(string/ooc_color_normal) if(admin_holder && !admin_holder.fakekey) - display_colour = CONFIG_GET(string/ooc_color_other) + if(admin_holder.rights & R_MENTOR) + display_colour = CONFIG_GET(string/ooc_color_other) if(admin_holder.rights & R_DEBUG) display_colour = CONFIG_GET(string/ooc_color_debug) if(admin_holder.rights & R_MOD) @@ -217,7 +218,7 @@ if(!desired_width) // Calculate desired pixel width using window size and aspect ratio var/height = text2num(map_size[2]) - desired_width = round(height * aspect_ratio) + desired_width = floor(height * aspect_ratio) var/split_size = splittext(sizes["mainwindow.split.size"], "x") var/split_width = text2num(split_size[1]) diff --git a/code/game/verbs/records.dm b/code/game/verbs/records.dm index db420a45bc76..3810bf7e99cb 100644 --- a/code/game/verbs/records.dm +++ b/code/game/verbs/records.dm @@ -1,10 +1,8 @@ -//CO Whitelist is '1', Synthetic Whitelist is '2', Yautja Whitelist is '3'. - /client/verb/own_records() set name = "View Own Records" set category = "OOC.Records" - var/list/options = list("Admin", "Merit", "Commanding Officer", "Synthetic", "Yautja") + var/list/options = list("Admin", "Merit", "Whitelist") var/choice = tgui_input_list(usr, "What record do you wish to view?", "Record Choice", options) switch(choice) @@ -12,12 +10,8 @@ show_own_notes(NOTE_ADMIN, choice) if("Merit") show_own_notes(NOTE_MERIT, choice) - if("Commanding Officer") - show_own_notes(NOTE_COMMANDER, choice) - if("Synthetic") - show_own_notes(NOTE_SYNTHETIC, choice) - if("Yautja") - show_own_notes(NOTE_YAUTJA, choice) + if("Whitelist") + show_own_notes(NOTE_WHITELIST, choice) else return to_chat(usr, SPAN_NOTICE("Displaying your [choice] Record.")) @@ -46,12 +40,8 @@ switch(note_category) if(NOTE_MERIT) color = "#9e3dff" - if(NOTE_COMMANDER) + if(NOTE_WHITELIST) color = "#324da5" - if(NOTE_SYNTHETIC) - color = "#39e7a4" - if(NOTE_YAUTJA) - color = "#114e11" dat += "[N.text] by [admin_ckey] ([N.admin_rank]) on [N.date] [NOTE_ROUND_ID(N)] " dat += "

          " @@ -69,16 +59,15 @@ //Contributions and suggestions are welcome. //Kindly, forest2001 -/client/verb/other_records() +/client/proc/other_records() set name = "View Target Records" set category = "OOC.Records" ///Management Access - var/MA + var/manager = FALSE ///Edit Access - var/edit_C = FALSE - var/edit_S = FALSE - var/edit_Y = FALSE + var/add_wl = FALSE + var/del_wl = FALSE ///Note category options var/list/options = list() @@ -86,7 +75,7 @@ if(CLIENT_IS_STAFF(src)) options = GLOB.note_categories.Copy() if(admin_holder.rights & R_PERMISSIONS) - MA = TRUE + manager = TRUE else if(!isCouncil(src)) to_chat(usr, SPAN_WARNING("Error: you are not authorised to view the records of another player!")) return @@ -97,15 +86,11 @@ return target = ckey(target) - if(GLOB.RoleAuthority.roles_whitelist[src.ckey] & WHITELIST_COMMANDER_COUNCIL) - options |= "Commanding Officer" - edit_C = TRUE - if(GLOB.RoleAuthority.roles_whitelist[src.ckey] & WHITELIST_SYNTHETIC_COUNCIL) - options |= "Synthetic" - edit_S = TRUE - if(GLOB.RoleAuthority.roles_whitelist[src.ckey] & WHITELIST_YAUTJA_COUNCIL) - options |= "Yautja" - edit_Y = TRUE + if(manager || isCouncil(src)) + options |= "Whitelist" + add_wl = TRUE + if(manager || isSenator(src)) + del_wl = TRUE var/choice = tgui_input_list(usr, "What record do you wish to view?", "Record Choice", options) if(!choice) @@ -115,21 +100,8 @@ show_other_record(NOTE_ADMIN, choice, target, TRUE) if("Merit") show_other_record(NOTE_MERIT, choice, target, TRUE) - if("Commanding Officer") - if(MA || (GLOB.RoleAuthority.roles_whitelist[src.ckey] & WHITELIST_COMMANDER_LEADER)) - show_other_record(NOTE_COMMANDER, choice, target, TRUE, TRUE) - else - show_other_record(NOTE_COMMANDER, choice, target, edit_C) - if("Synthetic") - if(MA || (GLOB.RoleAuthority.roles_whitelist[src.ckey] & WHITELIST_SYNTHETIC_LEADER)) - show_other_record(NOTE_SYNTHETIC, choice, target, TRUE, TRUE) - else - show_other_record(NOTE_SYNTHETIC, choice, target, edit_S) - if("Yautja") - if(MA || (GLOB.RoleAuthority.roles_whitelist[src.ckey] & WHITELIST_YAUTJA_LEADER)) - show_other_record(NOTE_YAUTJA, choice, target, TRUE, TRUE) - else - show_other_record(NOTE_YAUTJA, choice, target, edit_Y) + if("Whitelist") + show_other_record(NOTE_WHITELIST, choice, target, add_wl, del_wl) to_chat(usr, SPAN_NOTICE("Displaying [target]'s [choice] notes.")) @@ -148,15 +120,9 @@ if(NOTE_MERIT) color = "#9e3dff" add_dat = "Add Merit Note
          " - if(NOTE_COMMANDER) + if(NOTE_WHITELIST) color = "#324da5" - add_dat = "Add Commander Note
          " - if(NOTE_SYNTHETIC) - color = "#39e7a4" - add_dat = "Add Synthetic Note
          " - if(NOTE_YAUTJA) - color = "#114e11" - add_dat = "Add Yautja Note
          " + add_dat = "Add Whitelist Note
          " var/list/datum/view_record/note_view/NL = DB_VIEW(/datum/view_record/note_view, DB_COMP("player_ckey", DB_EQUALS, target)) for(var/datum/view_record/note_view/N as anything in NL) @@ -181,3 +147,72 @@ dat += "" show_browser(src, dat, "[target]'s [category_text] Notes", "otherplayersinfo", "size=480x480") + +GLOBAL_DATUM_INIT(medals_view_tgui, /datum/medals_view_tgui, new) + + +/datum/medals_view_tgui/tgui_interact(mob/user, datum/tgui/ui) + ui = SStgui.try_update_ui(user, src, ui) + if(!ui) + ui = new(user, src, "MedalsViewer", "[user.ckey]'s Medals") + ui.open() + +/datum/medals_view_tgui/ui_static_data(mob/user) + . = ..() + .["medals"] = list() + + for(var/datum/view_record/medal_view/medal as anything in get_medals(user)) + var/xeno_medal = FALSE + if(medal.medal_type in GLOB.xeno_medals) + xeno_medal = TRUE + + var/list/current_medal = list( + "round_id" = medal.round_id, + "medal_type" = medal.medal_type, + "medal_icon" = replacetext(medal.medal_type, " ", "-"), + "xeno_medal" = xeno_medal, + "recipient_name" = medal.recipient_name, + "recipient_role" = medal.recipient_role, + "giver_name" = medal.giver_name, + "citation" = medal.citation + ) + + .["medals"] += list(current_medal) + +/datum/medals_view_tgui/proc/get_medals(mob/user) + return DB_VIEW(/datum/view_record/medal_view, DB_COMP("player_id", DB_EQUALS, user.client.player_data.id)) + + +/datum/medals_view_tgui/ui_state(mob/user) + return GLOB.always_state + +/datum/medals_view_tgui/ui_assets(mob/user) + return list( + get_asset_datum(/datum/asset/spritesheet/medal) + ) + +/client/verb/view_own_medals() + set name = "View Own Medals" + set category = "OOC.Records" + + GLOB.medals_view_tgui.tgui_interact(mob) + +GLOBAL_DATUM_INIT(medals_view_given_tgui, /datum/medals_view_tgui/given_medals, new) + + +/datum/medals_view_tgui/given_medals/get_medals(mob/user) + return DB_VIEW(/datum/view_record/medal_view, DB_COMP("giver_player_id", DB_EQUALS, user.client.player_data.id)) + + +/datum/medals_view_tgui/given_medals/tgui_interact(mob/user, datum/tgui/ui) + ui = SStgui.try_update_ui(user, src, ui) + if(!ui) + ui = new(user, src, "MedalsViewer", "[user.ckey]'s Given Medals") + ui.open() + + +/client/verb/view_given_medals() + set name = "View Medals Given to Others" + set category = "OOC.Records" + + GLOB.medals_view_given_tgui.tgui_interact(mob) diff --git a/code/game/verbs/who.dm b/code/game/verbs/who.dm index 9cad56cdabe8..3a9274dbec62 100644 --- a/code/game/verbs/who.dm +++ b/code/game/verbs/who.dm @@ -17,6 +17,7 @@ FACTION_PMC = 0, FACTION_CLF = 0, FACTION_UPP = 0, + FACTION_TWE = 0, FACTION_FREELANCER = 0, FACTION_SURVIVOR = 0, FACTION_WY_DEATHSQUAD = 0, @@ -42,6 +43,8 @@ var/list/Lines = list() if(admin_holder && ((R_ADMIN & admin_holder.rights) || (R_MOD & admin_holder.rights))) for(var/client/C in GLOB.clients) + if(!CLIENT_HAS_RIGHTS(src, R_STEALTH) && (CLIENT_IS_STEALTHED(C))) + continue var/entry = "[C.key]" if(C.mob) //Juuuust in case if(istype(C.mob, /mob/new_player)) @@ -139,7 +142,7 @@ else for(var/client/C in GLOB.clients) - if(C.admin_holder && C.admin_holder.fakekey) + if((C.admin_holder && C.admin_holder.fakekey) || (CLIENT_IS_STEALTHED(C))) continue Lines += C.key @@ -172,6 +175,8 @@ LAZYSET(listings, category, list()) for(var/client/C in GLOB.admins) + if(CLIENT_IS_STEALTHED(C) && !CLIENT_HAS_RIGHTS(src, R_STEALTH)) + continue if(C.admin_holder?.fakekey && !CLIENT_IS_STAFF(src)) continue for(var/category in mappings) @@ -183,11 +188,13 @@ dat += "
          Current [category] ([length(listings[category])]):
          \n" for(var/client/entry in listings[category]) dat += "\t[entry.key] is \a [entry.admin_holder.rank]" - if(entry.admin_holder.extra_titles?.len) + if(LAZYLEN(entry.admin_holder.extra_titles)) for(var/srank in entry.admin_holder.extra_titles) dat += " & [srank]" if(CLIENT_IS_STAFF(src)) - if(entry.admin_holder?.fakekey) + if(CLIENT_IS_STEALTHED(entry)) + dat += " (STEALTHED)" + else if(entry.admin_holder?.fakekey) dat += " (HIDDEN)" if(istype(entry.mob, /mob/dead/observer)) dat += " - Observing" diff --git a/code/game/world.dm b/code/game/world.dm index f68263412715..bf9534e5f926 100644 --- a/code/game/world.dm +++ b/code/game/world.dm @@ -14,7 +14,7 @@ GLOBAL_LIST_INIT(reboot_sfx, file2list("config/reboot_sfx.txt")) /world/New() var/debug_server = world.GetConfig("env", "AUXTOOLS_DEBUG_DLL") if (debug_server) - LIBCALL(debug_server, "auxtools_init")() + call_ext(debug_server, "auxtools_init")() enable_debugging() hub_password = "kMZy3U5jJHSiBQjr" @@ -69,7 +69,10 @@ GLOBAL_LIST_INIT(reboot_sfx, file2list("config/reboot_sfx.txt")) initiate_minimap_icons() change_tick_lag(CONFIG_GET(number/ticklag)) - GLOB.timezoneOffset = text2num(time2text(0,"hh")) * 36000 + + // As of byond 515.1637 time2text now treats 0 like it does negative numbers so the hour is wrong + // We could instead use world.timezone but IMO better to not assume lummox will keep time2text in parity with it + GLOB.timezoneOffset = text2num(time2text(10,"hh")) * 36000 Master.Initialize(10, FALSE, TRUE) @@ -87,10 +90,6 @@ GLOBAL_LIST_INIT(reboot_sfx, file2list("config/reboot_sfx.txt")) GLOB.obfs_x = rand(-500, 500) //A number between -100 and 100 GLOB.obfs_y = rand(-500, 500) //A number between -100 and 100 - spawn(3000) //so we aren't adding to the round-start lag - if(CONFIG_GET(flag/ToRban)) - ToRban_autoupdate() - // If the server's configured for local testing, get everything set up ASAP. // Shamelessly stolen from the test manager's host_tests() proc if(testing_locally) @@ -129,7 +128,8 @@ GLOBAL_LIST_INIT(reboot_sfx, file2list("config/reboot_sfx.txt")) GLOB.world_runtime_log = "[GLOB.log_directory]/runtime.log" GLOB.round_stats = "[GLOB.log_directory]/round_stats.log" GLOB.scheduler_stats = "[GLOB.log_directory]/round_scheduler_stats.log" - GLOB.mutator_logs = "[GLOB.log_directory]/mutator_logs.log" + GLOB.mapping_log = "[GLOB.log_directory]/mapping.log" + GLOB.strain_logs = "[GLOB.log_directory]/strain_logs.log" start_log(GLOB.tgui_log) start_log(GLOB.world_href_log) @@ -138,7 +138,8 @@ GLOBAL_LIST_INIT(reboot_sfx, file2list("config/reboot_sfx.txt")) start_log(GLOB.world_runtime_log) start_log(GLOB.round_stats) start_log(GLOB.scheduler_stats) - start_log(GLOB.mutator_logs) + start_log(GLOB.mapping_log) + start_log(GLOB.strain_logs) if(fexists(GLOB.config_error_log)) fcopy(GLOB.config_error_log, "[GLOB.log_directory]/config_error.log") @@ -268,7 +269,7 @@ GLOBAL_LIST_INIT(reboot_sfx, file2list("config/reboot_sfx.txt")) /world/proc/load_tm_message() var/datum/getrev/revdata = GLOB.revdata - if(revdata.testmerge.len) + if(length(revdata.testmerge)) GLOB.current_tms = revdata.GetTestMergeInfo() /world/proc/update_status() @@ -321,9 +322,35 @@ GLOBAL_LIST_INIT(reboot_sfx, file2list("config/reboot_sfx.txt")) /world/proc/on_tickrate_change() SStimer.reset_buckets() +/** + * Handles incresing the world's maxx var and intializing the new turfs and assigning them to the global area. + * If map_load_z_cutoff is passed in, it will only load turfs up to that z level, inclusive. + * This is because maploading will handle the turfs it loads itself. + */ +/world/proc/increase_max_x(new_maxx, map_load_z_cutoff = maxz) + if(new_maxx <= maxx) + return +// var/old_max = world.maxx + maxx = new_maxx + if(!map_load_z_cutoff) + return +// var/area/global_area = GLOB.areas_by_type[world.area] // We're guaranteed to be touching the global area, so we'll just do this +// var/list/to_add = block(old_max + 1, 1, 1, maxx, maxy, map_load_z_cutoff) +// global_area.contained_turfs += to_add + +/world/proc/increase_max_y(new_maxy, map_load_z_cutoff = maxz) + if(new_maxy <= maxy) + return +// var/old_maxy = maxy + maxy = new_maxy + if(!map_load_z_cutoff) + return +// var/area/global_area = GLOB.areas_by_type[world.area] // We're guarenteed to be touching the global area, so we'll just do this +// var/list/to_add = block(1, old_maxy + 1, 1, maxx, maxy, map_load_z_cutoff) +// global_area.contained_turfs += to_add + /world/proc/incrementMaxZ() maxz++ - //SSmobs.MaxZChanged() /** For initializing and starting byond-tracy when BYOND_TRACY is defined * byond-tracy is a useful profiling tool that allows the user to view the CPU usage and execution time of procs as they run. @@ -339,13 +366,14 @@ GLOBAL_LIST_INIT(reboot_sfx, file2list("config/reboot_sfx.txt")) else CRASH("unsupported platform") - var/init = LIBCALL(lib, "init")() + var/init = call_ext(lib, "init")() if("0" != init) CRASH("[lib] init error: [init]") /world/proc/HandleTestRun() // Wait for the game ticker to initialize Master.sleep_offline_after_initializations = FALSE + SSticker.start_immediately = TRUE UNTIL(SSticker.initialized) //trigger things to run the whole process diff --git a/code/global.dm b/code/global.dm index 6847fbd2b7fe..f141dc5d68ac 100644 --- a/code/global.dm +++ b/code/global.dm @@ -33,6 +33,7 @@ #define CLIENT_HAS_RIGHTS(cli, flags) ((cli?.admin_holder?.rights & flags) == flags) #define CLIENT_IS_STAFF(cli) (cli?.admin_holder?.rights & (R_MOD|R_ADMIN)) #define CLIENT_IS_MENTOR(cli) CLIENT_HAS_RIGHTS(cli, R_MENTOR) +#define CLIENT_IS_STEALTHED(cli) (CLIENT_HAS_RIGHTS(cli, R_STEALTH) && cli.prefs?.toggles_admin & ADMIN_STEALTHMODE) #define AHOLD_IS_MOD(ahold) (ahold && (ahold.rights & R_MOD)) #define AHOLD_IS_ADMIN(ahold) (ahold && (ahold.rights & R_ADMIN)) diff --git a/code/modules/admin/IsBanned.dm b/code/modules/admin/IsBanned.dm index 94f40629fc6a..c7d4b6fbbc53 100644 --- a/code/modules/admin/IsBanned.dm +++ b/code/modules/admin/IsBanned.dm @@ -1,6 +1,6 @@ #ifndef OVERRIDE_BAN_SYSTEM //Blocks an attempt to connect before even creating our client datum thing. -/world/IsBanned(key,address,computer_id, type, real_bans_only=FALSE) +/world/IsBanned(key,address,computer_id, type, real_bans_only=FALSE, is_telemetry = FALSE) var/ckey = ckey(key) // This is added siliently. Thanks to MSO for this fix. You will see it when/if we go OS @@ -17,28 +17,18 @@ message_admins("Failed Login: [key] - Guests not allowed") return list("reason"="guest", "desc"="\nReason: Guests not allowed. Please sign in with a byond account.") + // wait for database to be ready WAIT_DB_READY if(GLOB.admin_datums[ckey] && (GLOB.admin_datums[ckey].rights & R_MOD)) return ..() - if(CONFIG_GET(number/limit_players) && CONFIG_GET(number/limit_players) < GLOB.clients.len) + if(CONFIG_GET(number/limit_players) && CONFIG_GET(number/limit_players) < length(GLOB.clients)) return list("reason"="POP CAPPED", "desc"="\nReason: Server is pop capped at the moment at [CONFIG_GET(number/limit_players)] players. Attempt reconnection in 2-3 minutes.") var/datum/entity/player/P = get_player_from_key(ckey) - //check if the IP address is a known TOR node - if(CONFIG_GET(flag/ToRban) && ToRban_isbanned(address)) - log_access("Failed Login: [src] - Banned: ToR") - message_admins("Failed Login: [src] - Banned: ToR") - return list("reason"="Using ToR", "desc"="\nReason: The network you are using to connect has been banned.\nIf you believe this is a mistake, please request help at [CONFIG_GET(string/banappeals)]") - - // wait for database to be ready - - . = P.check_ban(computer_id, address) - if(.) - return . - return ..() //default pager ban stuff + . = P.check_ban(computer_id, address, is_telemetry) #endif diff --git a/code/modules/admin/NewBan.dm b/code/modules/admin/NewBan.dm index 7dca354129ff..f4394738fb2d 100644 --- a/code/modules/admin/NewBan.dm +++ b/code/modules/admin/NewBan.dm @@ -180,15 +180,44 @@ GLOBAL_DATUM(Banlist, /savefile) expiry = "Removal Pending" else expiry = "Permaban" - var/unban_link = "(U)" + var/unban_link + if(ban.is_permabanned) + unban_link = "(UP)" + else + unban_link = "(UT)" - dat += "[unban_link] Key: [ban.ckey]ComputerID: [ban.last_known_cid]IP: [ban.last_known_ip] [expiry](By: [ban.admin])(Reason: [ban.reason])" + dat += "[unban_link] Key: [ban.ckey]ComputerID: [ban.last_known_cid]IP: [ban.last_known_ip] [expiry](By: [ban.admin ? ban.admin : "AdminBot"])(Reason: [ban.reason])" dat += "" - var/dat_header = "
          Bans: (U) = Unban" + var/dat_header = "
          Bans: (UP) = Unban Perma (UT) = Unban Timed" dat_header += " - Ban Listing
          [dat]" show_browser(usr, dat_header, "Unban Panel", "unbanp", "size=875x400") +/datum/admins/proc/stickypanel() + var/add_sticky = "Add Sticky Ban" + var/find_sticky = "Find Sticky Ban" + + var/data = "
          Sticky Bans: [add_sticky] [find_sticky]
          " + + var/list/datum/view_record/stickyban/stickies = DB_VIEW(/datum/view_record/stickyban, + DB_COMP("active", DB_EQUALS, TRUE) + ) + + for(var/datum/view_record/stickyban/current_sticky in stickies) + var/whitelist_link = "(WHITELIST)" + var/remove_sticky_link = "(REMOVE)" + var/add_to_sticky_link = "(ADD)" + + var/impacted_ckey_link = "CKEYs" + var/impacted_ip_link = "IPs" + var/impacted_cid_link = "CIDs" + + data += "" + + data += "
          [whitelist_link][remove_sticky_link][add_to_sticky_link]Identifier: [current_sticky.identifier]Reason: [current_sticky.reason]Message: [current_sticky.message] Admin: [current_sticky.admin] View: [impacted_ckey_link][impacted_ip_link][impacted_cid_link]
          " + + show_browser(owner, data, "Stickyban Panel", "sticky", "size=875x400") + //////////////////////////////////// DEBUG //////////////////////////////////// /proc/CreateBans() @@ -251,3 +280,48 @@ GLOBAL_DATUM(Banlist, /savefile) if(P.is_time_banned && alert(usr, "Ban already exists. Proceed?", "Confirmation", "Yes", "No") != "Yes") return P.add_timed_ban(reason, mins) + +/client/proc/cmd_admin_do_stickyban(identifier, reason, message, list/impacted_ckeys, list/impacted_cids, list/impacted_ips) + if(!identifier) + identifier = tgui_input_text(src, "Name of the primary CKEY you are adding a stickyban to.", "BuildABan") + if(!identifier) + return + + if(!message) + message = tgui_input_text(src, "What message should be given to the impacted users?", "BuildABan", encode = FALSE) + if(!message) + return + + if(!reason) + reason = tgui_input_text(src, "What's the reason for the ban? This is shown internally, and not displayed in public notes and ban messages. Include as much detail as necessary.", "BuildABan", multiline = TRUE, encode = FALSE) + if(!reason) + return + + if(!length(impacted_ckeys)) + impacted_ckeys = splittext(tgui_input_text(src, "Which CKEYs should be impacted by this ban? Include the primary ckey, separated by semicolons.", "BuildABan", "player1;player2;player3"), ";") + + if(!length(impacted_cids)) + impacted_cids = splittext(tgui_input_text(src, "Which CIDs should be impacted by this ban? Separate with semicolons.", "BuildABan", "12345678;87654321"), ";") + + if(!length(impacted_ips)) + impacted_ips = splittext(tgui_input_text(src, "Which IPs should be impacted by this ban? Separate with semicolons.", "BuildABan", "1.1.1.1;8.8.8.8"), ";") + + var/datum/entity/stickyban/new_sticky = SSstickyban.add_stickyban(identifier, reason, message, player_data) + + if(!new_sticky) + to_chat(src, SPAN_ADMIN("Failed to apply stickyban.")) + return + + for(var/ckey in impacted_ckeys) + SSstickyban.add_matched_ckey(new_sticky.id, ckey) + + for(var/cid in impacted_cids) + SSstickyban.add_matched_cid(new_sticky.id, cid) + + for(var/ip in impacted_ips) + SSstickyban.add_matched_ip(new_sticky.id, ip) + + log_admin("STICKYBAN: Identifier: [identifier] Reason: [reason] Message: [message] CKEYs: [english_list(impacted_ckeys)] IPs: [english_list(impacted_ips)] CIDs: [english_list(impacted_cids)]") + message_admins("[key_name_admin(src)] has added a new stickyban with the identifier '[identifier]'.") + var/datum/tgs_chat_embed/field/reason_embed = new("Stickyban Reason", reason) + important_message_external("[src] has added a new stickyban with the identifier '[identifier]'.", "Stickyban Placed", list(reason_embed)) diff --git a/code/modules/admin/STUI.dm b/code/modules/admin/STUI.dm index 87a2ca2cf11a..0d143f63c8af 100644 --- a/code/modules/admin/STUI.dm +++ b/code/modules/admin/STUI.dm @@ -40,7 +40,7 @@ GLOBAL_DATUM_INIT(STUI, /datum/STUI, new) /datum/STUI/New() . = ..() - if(length(stui_init_runtimes)) // Report existing errors that might have occured during static initializers + if(length(stui_init_runtimes)) // Report existing errors that might have occurred during static initializers runtime = stui_init_runtimes.Copy() /datum/STUI/Topic(href, href_list) @@ -85,31 +85,31 @@ GLOBAL_DATUM_INIT(STUI, /datum/STUI, new) . = list() .["logs"] = list() if(user.client.admin_holder.rights & R_MOD) - if(attack.len > stui_length+1) - attack.Cut(,attack.len-stui_length) + if(length(attack) > stui_length+1) + attack.Cut(,length(attack)-stui_length) .["logs"][STUI_TEXT_ATTACK] = attack - if(admin.len > stui_length+1) - admin.Cut(,admin.len-stui_length) + if(length(admin) > stui_length+1) + admin.Cut(,length(admin)-stui_length) .["logs"][STUI_TEXT_STAFF] = admin - if(staff.len > stui_length+1) - staff.Cut(,staff.len-stui_length) + if(length(staff) > stui_length+1) + staff.Cut(,length(staff)-stui_length) .["logs"][STUI_TEXT_STAFF_CHAT] = staff - if(ooc.len > stui_length+1) - ooc.Cut(,ooc.len-stui_length) + if(length(ooc) > stui_length+1) + ooc.Cut(,length(ooc)-stui_length) .["logs"][STUI_TEXT_OOC] = ooc if((user.client.admin_holder.rights & R_MOD) || (user.client.admin_holder.rights & R_DEBUG)) - if(game.len > stui_length+1) - game.Cut(,game.len-stui_length) + if(length(game) > stui_length+1) + game.Cut(,length(game)-stui_length) .["logs"][STUI_TEXT_GAME] = game if(user.client.admin_holder.rights & R_DEBUG) - if(debug.len > stui_length+1) - debug.Cut(,debug.len-stui_length) + if(length(debug) > stui_length+1) + debug.Cut(,length(debug)-stui_length) .["logs"][STUI_TEXT_DEBUG] = debug - if(runtime.len > stui_length+1) - runtime.Cut(,runtime.len-stui_length) + if(length(runtime) > stui_length+1) + runtime.Cut(,length(runtime)-stui_length) .["logs"][STUI_TEXT_RUNTIME] = runtime - if(tgui.len > stui_length+1) - tgui.Cut(,tgui.len-stui_length) + if(length(tgui) > stui_length+1) + tgui.Cut(,length(tgui)-stui_length) .["logs"][STUI_TEXT_TGUI] = tgui /client/proc/open_STUI() diff --git a/code/modules/admin/ToRban.dm b/code/modules/admin/ToRban.dm deleted file mode 100644 index 549353facfb8..000000000000 --- a/code/modules/admin/ToRban.dm +++ /dev/null @@ -1,88 +0,0 @@ -//By Carnwennan -//fetches an external list and processes it into a list of ip addresses. -//It then stores the processed list into a savefile for later use -#define TORFILE "data/ToR_ban.bdb" -#define TOR_UPDATE_INTERVAL 216000 //~6 hours - -/proc/ToRban_isbanned(ip_address) - var/savefile/F = new(TORFILE) - if(F) - if( ip_address in F.dir ) - return 1 - return 0 - -/proc/ToRban_autoupdate() - var/savefile/F = new(TORFILE) - if(F) - var/last_update - F["last_update"] >> last_update - if((last_update + TOR_UPDATE_INTERVAL) < world.realtime) //we haven't updated for a while - ToRban_update() - return - -/proc/ToRban_update() - spawn(0) - log_misc("Downloading updated ToR data...") - var/http[] = world.Export("https://check.torproject.org/exit-addresses") - - var/list/rawlist = file2list(http["CONTENT"]) - if(rawlist.len) - fdel(TORFILE) - var/savefile/F = new(TORFILE) - for( var/line in rawlist ) - if(!line) continue - if( copytext(line,1,12) == "ExitAddress" ) - var/cleaned = copytext(line,13,length(line)-19) - if(!cleaned) continue - F[cleaned] << 1 - F["last_update"] << world.realtime - log_misc("ToR data updated!") - if(usr) to_chat(usr, "ToRban updated.") - return - log_misc("ToR data update aborted: no data.") - return - -/client/proc/ToRban(task in list("update","toggle","show","remove","remove all","find")) - set name = "ToR Ban Settings" - set category = "Server" - if(!admin_holder) return - switch(task) - if("update") - ToRban_update() - if("toggle") - if(config) - if(CONFIG_GET(flag/ToRban)) - CONFIG_SET(flag/ToRban, FALSE) - message_admins("ToR banning disabled.") - else - CONFIG_SET(flag/ToRban, TRUE) - message_admins("ToR banning enabled.") - if("show") - var/savefile/F = new(TORFILE) - var/dat - if( length(F.dir) ) - for( var/i=1, i<=length(F.dir), i++ ) - dat += "#[i] [F.dir[i]]" - dat = "[dat]
          " - else - dat = "No addresses in list." - src << browse(dat,"window=ToRban_show") - if("remove") - var/savefile/F = new(TORFILE) - var/choice = tgui_input_list(src,"Please select an IP address to remove from the ToR banlist:","Remove ToR ban", F.dir) - if(choice) - F.dir.Remove(choice) - to_chat(src, "Address removed") - if("remove all") - to_chat(src, "[TORFILE] was [fdel(TORFILE)?"":"not "]removed.") - if("find") - var/input = input(src,"Please input an IP address to search for:","Find ToR ban",null) as null|text - if(input) - if(ToRban_isbanned(input)) - to_chat(src, "Address is a known ToR address") - else - to_chat(src, "Address is not a known ToR address") - return - -#undef TORFILE -#undef TOR_UPDATE_INTERVAL diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm index fe95affaffd2..fdd94938ce74 100644 --- a/code/modules/admin/admin.dm +++ b/code/modules/admin/admin.dm @@ -24,7 +24,7 @@ /proc/msg_admin_niche(msg) //Toggleable Niche Messages log_admin(msg) - msg = SPAN_ADMIN("ADMIN NICHE LOG: [msg]") + msg = SPAN_NICHE("ADMIN NICHE LOG: [msg]") for(var/client/C as anything in GLOB.admins) if(C && C.admin_holder && (R_MOD & C.admin_holder.rights)) if(C.prefs.toggles_chat & CHAT_NICHELOGS) @@ -67,7 +67,7 @@ var/savefile/info = new("data/player_saves/[copytext(key, 1, 2)]/[key]/info.sav") var/list/infos info >> infos - if(!infos || !infos.len) return 0 + if(!LAZYLEN(infos)) return 0 else return 1 /datum/admins/proc/player_notes_all(key as text) @@ -95,12 +95,8 @@ color = "#AA0055" else if(N.note_category == NOTE_MERIT) color = "#9e3dff" - else if(N.note_category == NOTE_COMMANDER) + else if(N.note_category == NOTE_WHITELIST) color = "#324da5" - else if(N.note_category == NOTE_SYNTHETIC) - color = "#39e7a4" - else if(N.note_category == NOTE_YAUTJA) - color = "#114e11" dat += "[N.text] by [admin_ckey] ([N.admin_rank])[confidential_text] on [N.date] [NOTE_ROUND_ID(N)] " if(admin_ckey == usr.ckey || admin_ckey == "Adminbot" || check_for_rights(R_PERMISSIONS)) @@ -145,7 +141,7 @@ Quick Create Object
          Create Turf
          Create Mob
          - Inmediately Send Tip
          + Immediately Send Tip
          "} show_browser(usr, dat, "Game Panel", "admin2", "size=210x280") @@ -183,11 +179,11 @@ if(findtext("[path]", object)) matches += path - if(matches.len==0) + if(length(matches)==0) return var/chosen - if(matches.len==1) + if(length(matches)==1) chosen = matches[1] else chosen = tgui_input_list(usr, "Select an atom type", "Spawn Atom", matches) diff --git a/code/modules/admin/admin_ranks.dm b/code/modules/admin/admin_ranks.dm index 5bb9692b0368..94793f3b9479 100644 --- a/code/modules/admin/admin_ranks.dm +++ b/code/modules/admin/admin_ranks.dm @@ -15,7 +15,7 @@ GLOBAL_LIST_EMPTY(admin_ranks) //list of all ranks with associated rights if(copytext(line,1,2) == "#") continue var/list/List = splittext(line,"+") - if(!List.len) continue + if(!length(List)) continue var/rank = ckeyEx(List[1]) switch(rank) @@ -23,7 +23,7 @@ GLOBAL_LIST_EMPTY(admin_ranks) //list of all ranks with associated rights if("Removed") continue //Reserved var/rights = 0 - for(var/i=2, i<=List.len, i++) + for(var/i=2, i<=length(List), i++) switch(ckey(List[i])) if("@","prev") rights |= previous_rights if("buildmode","build") rights |= R_BUILDMODE @@ -93,7 +93,7 @@ GLOBAL_LIST_EMPTY(admin_ranks) //list of all ranks with associated rights //Split the line at every "-" var/list/List = splittext(line, "-") - if(!List.len) return + if(!length(List)) return //ckey is before the first "-" var/ckey = ckey(List[1]) @@ -101,11 +101,11 @@ GLOBAL_LIST_EMPTY(admin_ranks) //list of all ranks with associated rights //rank follows the first "-" var/rank = "" - if(List.len >= 2) + if(length(List) >= 2) rank = ckeyEx(List[2]) var/list/extra_titles = list() - if(List.len >= 3) + if(length(List) >= 3) extra_titles = List.Copy(3) if(mentor) diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index 71491cd7d6f9..aa87f157173c 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -67,10 +67,12 @@ GLOBAL_LIST_INIT(admin_verbs_default, list( /datum/admins/proc/subtlemessageall, /datum/admins/proc/alertall, /datum/admins/proc/imaginary_friend, - /client/proc/toggle_ares_ping, + /client/proc/toggle_admin_pings, + /client/proc/cmd_admin_open_ares, /client/proc/cmd_admin_say, /*staff-only ooc chat*/ /client/proc/cmd_mod_say, /* alternate way of typing asay, no different than cmd_admin_say */ /client/proc/cmd_admin_tacmaps_panel, + /client/proc/other_records, )) GLOBAL_LIST_INIT(admin_verbs_admin, list( @@ -96,8 +98,9 @@ GLOBAL_LIST_INIT(admin_verbs_admin, list( )) GLOBAL_LIST_INIT(admin_verbs_ban, list( - /client/proc/unban_panel - // /client/proc/jobbans // Disabled temporarily due to 15-30 second lag spikes. Don't forget the comma in the line above when uncommenting this! + /client/proc/unban_panel, + /client/proc/stickyban_panel, + // /client/proc/jobbans // Disabled temporarily due to 15-30 second lag spikes. )) GLOBAL_LIST_INIT(admin_verbs_sounds, list( @@ -110,6 +113,7 @@ GLOBAL_LIST_INIT(admin_verbs_minor_event, list( /client/proc/cmd_admin_change_custom_event, /datum/admins/proc/admin_force_distress, /datum/admins/proc/admin_force_ERT_shuttle, + /client/proc/enable_event_mob_verbs, /client/proc/force_hijack, /datum/admins/proc/force_predator_round, //Force spawns a predator round. /client/proc/adjust_predator_round, @@ -135,12 +139,13 @@ GLOBAL_LIST_INIT(admin_verbs_minor_event, list( /client/proc/adminpanelweapons, /client/proc/admin_general_quarters, /client/proc/admin_biohazard_alert, + /client/proc/admin_aicore_alert, /client/proc/toggle_hardcore_perma, /client/proc/toggle_bypass_joe_restriction, + /client/proc/toggle_joe_respawns, )) GLOBAL_LIST_INIT(admin_verbs_major_event, list( - /client/proc/enable_event_mob_verbs, /client/proc/cmd_admin_dress_all, /client/proc/free_all_mobs_in_view, /client/proc/drop_bomb, @@ -154,6 +159,7 @@ GLOBAL_LIST_INIT(admin_verbs_major_event, list( /client/proc/load_event_level, /client/proc/cmd_fun_fire_ob, /client/proc/map_template_upload, + /client/proc/force_load_lazy_template, /client/proc/enable_podlauncher, /client/proc/change_taskbar_icon, /client/proc/change_weather, @@ -190,7 +196,6 @@ GLOBAL_LIST_INIT(admin_verbs_debug, list( /client/proc/cmd_admin_delete, /client/proc/cmd_debug_del_all, /client/proc/reload_admins, - /client/proc/reload_whitelist, /client/proc/restart_controller, /client/proc/debug_controller, /client/proc/cmd_debug_toggle_should_check_for_win, @@ -238,18 +243,23 @@ GLOBAL_LIST_INIT(debug_verbs, list( )) GLOBAL_LIST_INIT(admin_verbs_possess, list( + /client/proc/cmd_assume_direct_control, /client/proc/possess, /client/proc/release )) GLOBAL_LIST_INIT(admin_verbs_permissions, list( - /client/proc/ToRban + /client/proc/whitelist_panel, )) GLOBAL_LIST_INIT(admin_verbs_color, list( /client/proc/set_ooc_color_self )) +GLOBAL_LIST_INIT(admin_verbs_stealth, list( + /client/proc/toggle_admin_stealth +)) + GLOBAL_LIST_INIT(admin_mob_event_verbs_hideable, list( /client/proc/hide_event_mob_verbs, /client/proc/cmd_admin_select_mob_rank, @@ -258,10 +268,7 @@ GLOBAL_LIST_INIT(admin_mob_event_verbs_hideable, list( /client/proc/editappear, /client/proc/cmd_admin_addhud, /client/proc/cmd_admin_change_their_hivenumber, - /client/proc/cmd_assume_direct_control, /client/proc/free_mob_for_ghosts, - /client/proc/possess, - /client/proc/release, /client/proc/cmd_admin_grantfullaccess, /client/proc/cmd_admin_grantallskills, /client/proc/admin_create_account @@ -269,6 +276,7 @@ GLOBAL_LIST_INIT(admin_mob_event_verbs_hideable, list( //verbs which can be hidden - needs work GLOBAL_LIST_INIT(admin_verbs_hideable, list( + /client/proc/cmd_assume_direct_control, /client/proc/release, /client/proc/possess, /client/proc/callproc_datum, @@ -341,15 +349,11 @@ GLOBAL_LIST_INIT(roundstart_mod_verbs, list( add_verb(src, GLOB.admin_verbs_sounds) if(CLIENT_HAS_RIGHTS(src, R_SPAWN)) add_verb(src, GLOB.admin_verbs_spawn) - if(GLOB.RoleAuthority && (GLOB.RoleAuthority.roles_whitelist[ckey] & WHITELIST_YAUTJA_LEADER)) + if(CLIENT_HAS_RIGHTS(src, R_STEALTH)) + add_verb(src, GLOB.admin_verbs_stealth) + if(check_whitelist_status(WHITELIST_YAUTJA_LEADER)) add_verb(src, GLOB.clan_verbs) -/client/proc/add_admin_whitelists() - if(CLIENT_IS_MENTOR(src)) - GLOB.RoleAuthority.roles_whitelist[ckey] |= WHITELIST_MENTOR - if(CLIENT_IS_STAFF(src)) - GLOB.RoleAuthority.roles_whitelist[ckey] |= WHITELIST_JOE - /client/proc/remove_admin_verbs() remove_verb(src, list( GLOB.admin_verbs_default, @@ -370,6 +374,7 @@ GLOBAL_LIST_INIT(roundstart_mod_verbs, list( GLOB.admin_mob_event_verbs_hideable, GLOB.admin_verbs_hideable, GLOB.debug_verbs, + GLOB.admin_verbs_stealth, )) /client/proc/jobbans() @@ -585,16 +590,24 @@ GLOBAL_LIST_INIT(roundstart_mod_verbs, list( message_admins("[key_name(usr)] announced a random fact.") SSticker.mode?.declare_fun_facts() -/client/proc/toggle_ares_ping() - set name = "Toggle ARES notification sound" - set category = "Preferences.Logs" +/client/proc/toggle_admin_pings() + set name = "Toggle StaffIC log sounds" + set category = "Preferences.Sound" prefs.toggles_sound ^= SOUND_ARES_MESSAGE if (prefs.toggles_sound & SOUND_ARES_MESSAGE) - to_chat(usr, SPAN_BOLDNOTICE("You will now hear a ping for ARES messages.")) + to_chat(usr, SPAN_BOLDNOTICE("You will now hear an audio cue for ARES and Prayer messages.")) else - to_chat(usr, SPAN_BOLDNOTICE("You will no longer hear a ping for ARES messages.")) + to_chat(usr, SPAN_BOLDNOTICE("You will no longer hear an audio cue for ARES and Prayer messages.")) +/client/proc/toggle_admin_stealth() + set name = "Toggle Admin Stealth" + set category = "Preferences" + prefs.toggles_admin ^= ADMIN_STEALTHMODE + if(prefs.toggles_admin & ADMIN_STEALTHMODE) + to_chat(usr, SPAN_BOLDNOTICE("You enabled admin stealth mode.")) + else + to_chat(usr, SPAN_BOLDNOTICE("You disabled admin stealth mode.")) #undef MAX_WARNS #undef AUTOBANTIME diff --git a/code/modules/admin/banjob.dm b/code/modules/admin/banjob.dm index 13c3b4664a15..dd6516b2ede3 100644 --- a/code/modules/admin/banjob.dm +++ b/code/modules/admin/banjob.dm @@ -42,8 +42,6 @@ GLOBAL_LIST_EMPTY(jobban_keylist) if(guest_jobbans(rank)) if(CONFIG_GET(flag/guest_jobban) && IsGuestKey(M.key)) return "Guest Job-ban" - if(CONFIG_GET(flag/usewhitelist) && !check_whitelist(M)) - return "Whitelisted Job" var/datum/entity/player_job_ban/PJB = M.client.player_data.job_bans[rank] return PJB ? PJB.text : null diff --git a/code/modules/admin/callproc.dm b/code/modules/admin/callproc.dm index 1af1f5aa9fa3..72e4f792607d 100644 --- a/code/modules/admin/callproc.dm +++ b/code/modules/admin/callproc.dm @@ -140,7 +140,7 @@ GLOBAL_PROTECT(LastAdminCalledProc) if (!length(proclist)) return - var/procname = proclist[proclist.len] + var/procname = proclist[length(proclist)] var/proctype = ("verb" in proclist) ? "verb" :"proc" if(targetselected) @@ -161,15 +161,15 @@ GLOBAL_PROTECT(LastAdminCalledProc) if(!target) to_chat(usr, "Error: callproc(): owner of proc no longer exists.", confidential = TRUE) return - var/msg = "[key_name(src)] called [target]'s [procname]() with [lst.len ? "the arguments [list2params(lst)]":"no arguments"]." + var/msg = "[key_name(src)] called [target]'s [procname]() with [length(lst) ? "the arguments [list2params(lst)]":"no arguments"]." log_admin(msg) message_admins(msg) //Proccall announce removed. admin_ticket_log(target, msg) returnval = WrapAdminProcCall(target, procname, lst) // Pass the lst as an argument list to the proc else //this currently has no hascall protection. wasn't able to get it working. - log_admin("[key_name(src)] called [procname]() with [lst.len ? "the arguments [list2params(lst)]":"no arguments"].") - message_admins("[key_name(src)] called [procname]() with [lst.len ? "the arguments [list2params(lst)]":"no arguments"].") //Proccall announce removed. + log_admin("[key_name(src)] called [procname]() with [length(lst) ? "the arguments [list2params(lst)]":"no arguments"].") + message_admins("[key_name(src)] called [procname]() with [length(lst) ? "the arguments [list2params(lst)]":"no arguments"].") //Proccall announce removed. returnval = WrapAdminProcCall(GLOBAL_PROC, procname, lst) // Pass the lst as an argument list to the proc if(get_retval) get_retval += returnval @@ -230,7 +230,7 @@ GLOBAL_PROTECT(LastAdminCalledProc) to_chat(usr, SPAN_BOLDWARNING("Warning: Force attempt has been logged.")) message_admins("[key_name(usr)] has attempted to execute a restricted proc. ([procname])") -/client/proc/callproc_datum(datum/called_datum as null|area|mob|obj|turf) +/client/proc/callproc_datum(datum/called_datum as null|area|mob|obj|turf in view(src)) set category = "Debug" set name = "Datum ProcCall" set waitfor = FALSE @@ -251,8 +251,8 @@ GLOBAL_PROTECT(LastAdminCalledProc) if(!called_datum || !is_valid_src(called_datum)) to_chat(usr, SPAN_WARNING("Error: callproc_datum(): owner of proc no longer exists."), confidential = TRUE) return - log_admin("[key_name(src)] called [called_datum]'s [procname]() with [lst.len ? "the arguments [list2params(lst)]":"no arguments"].") - var/msg = "[key_name(src)] called [called_datum]'s [procname]() with [lst.len ? "the arguments [list2params(lst)]":"no arguments"]." + log_admin("[key_name(src)] called [called_datum]'s [procname]() with [length(lst) ? "the arguments [list2params(lst)]":"no arguments"].") + var/msg = "[key_name(src)] called [called_datum]'s [procname]() with [length(lst) ? "the arguments [list2params(lst)]":"no arguments"]." message_admins(msg) admin_ticket_log(called_datum, msg) @@ -285,7 +285,7 @@ GLOBAL_PROTECT(LastAdminCalledProc) if(islist(returnval)) var/list/returnedlist = returnval . = "" - if(returnedlist.len) + if(length(returnedlist)) var/assoc_check = returnedlist[1] if(istext(assoc_check) && (returnedlist[assoc_check] != null)) . += "[procname] returned an associative list:" diff --git a/code/modules/admin/holder2.dm b/code/modules/admin/holder2.dm index e31d372743c5..f202e0a6ecbe 100644 --- a/code/modules/admin/holder2.dm +++ b/code/modules/admin/holder2.dm @@ -10,11 +10,6 @@ GLOBAL_PROTECT(href_token) var/rights = 0 var/fakekey = null - var/admincaster_screen = 0 //See newscaster.dm under machinery for a full description - var/datum/feed_message/admincaster_feed_message = new /datum/feed_message //These two will act as admin_holders. - var/datum/feed_channel/admincaster_feed_channel = new /datum/feed_channel - var/admincaster_signature //What you'll sign the newsfeeds as - var/href_token var/datum/marked_datum @@ -31,7 +26,6 @@ GLOBAL_PROTECT(href_token) error("Admin datum created without a ckey argument. Datum has been deleted") qdel(src) return - admincaster_signature = "Weyland-Yutani Officer #[rand(0,9)][rand(0,9)][rand(0,9)]" rank = initial_rank rights = initial_rights href_token = GenerateToken() @@ -47,7 +41,6 @@ GLOBAL_PROTECT(href_token) owner = C owner.admin_holder = src owner.add_admin_verbs() - owner.add_admin_whitelists() owner.tgui_say.load() owner.update_special_keybinds() GLOB.admins |= C @@ -147,16 +140,14 @@ you will have to do something like if(client.admin_holder.rights & R_ADMIN) your return FALSE return TRUE -/// gets the role dependant data for tgui-say -/datum/admins/proc/get_tgui_say_roles() - var/roles = list() - if(check_for_rights(R_ADMIN)) - roles += "Admin" - if(check_for_rights(R_MOD)) - roles += "Mod" +/// gets any additional channels for tgui-say (admin & mentor) +/datum/admins/proc/get_tgui_say_extra_channels() + var/extra_channels = list() + if(check_for_rights(R_ADMIN) || check_for_rights(R_MOD)) + extra_channels += ADMIN_CHANNEL if(check_for_rights(R_MENTOR)) - roles += "Mentor" - return roles + extra_channels += MENTOR_CHANNEL + return extra_channels /datum/proc/CanProcCall(procname) return TRUE diff --git a/code/modules/admin/medal_panel/medals_panel_tgui.dm b/code/modules/admin/medal_panel/medals_panel_tgui.dm index 49c4bb5f96ad..253f08efd68f 100644 --- a/code/modules/admin/medal_panel/medals_panel_tgui.dm +++ b/code/modules/admin/medal_panel/medals_panel_tgui.dm @@ -25,14 +25,14 @@ GLOBAL_DATUM_INIT(medals_panel, /datum/medals_panel_tgui, new) var/datum/recipient_awards/recipient_award = GLOB.medal_awards[recipient_name] uscm_awards[recipient_name] = list() uscm_award_ckeys[recipient_name] = recipient_award.recipient_ckey ? " ([recipient_award.recipient_ckey])" : "" - for(var/i in 1 to recipient_award.medal_names.len) // We're assuming everything is same length + for(var/i in 1 to length(recipient_award.medal_names)) // We're assuming everything is same length uscm_awards[recipient_name] += "[recipient_award.medal_names[i]]: \'[recipient_award.medal_citations[i]]\' by [recipient_award.giver_rank[i] ? "[recipient_award.giver_rank[i]] " : ""][recipient_award.giver_name[i] ? "[recipient_award.giver_name[i]] " : ""]([recipient_award.giver_ckey[i]])." for(var/recipient_name as anything in GLOB.jelly_awards) var/datum/recipient_awards/recipient_award = GLOB.jelly_awards[recipient_name] xeno_awards[recipient_name] = list() xeno_award_ckeys[recipient_name] = recipient_award.recipient_ckey ? " ([recipient_award.recipient_ckey])" : "" - for(var/i in 1 to recipient_award.medal_names.len) // We're assuming everything is same length + for(var/i in 1 to length(recipient_award.medal_names)) // We're assuming everything is same length xeno_awards[recipient_name] += "[recipient_award.medal_names[i]]: \'[recipient_award.medal_citations[i]]\' by [recipient_award.giver_rank[i] ? "[recipient_award.giver_rank[i]] " : ""][recipient_award.giver_name[i] ? "[recipient_award.giver_name[i]] " : ""]([recipient_award.giver_ckey[i]])." data["uscm_awards"] = uscm_awards diff --git a/code/modules/admin/player_notes.dm b/code/modules/admin/player_notes.dm index d8caa58f1e97..31e43cb26a93 100644 --- a/code/modules/admin/player_notes.dm +++ b/code/modules/admin/player_notes.dm @@ -57,7 +57,7 @@ var/savefile/info = new("data/player_saves/[copytext(key, 1, 2)]/[key]/info.sav") var/list/infos info >> infos - if(!infos || infos.len < index) return + if(LAZYLEN(infos) < index) return var/datum/player_info/item = infos[index] infos.Remove(item) diff --git a/code/modules/admin/player_panel/actions/general.dm b/code/modules/admin/player_panel/actions/general.dm index a47a42d44cc2..e4ebc9fb85dd 100644 --- a/code/modules/admin/player_panel/actions/general.dm +++ b/code/modules/admin/player_panel/actions/general.dm @@ -68,17 +68,9 @@ message_admins("[key_name_admin(user)] has sent [key_name_admin(target)] back to the Lobby.") - var/mob/new_player/NP = new() - - if(!target.mind) - target.mind_initialize() - - target.mind.transfer_to(NP) - - qdel(target) + target.send_to_lobby() return TRUE - /datum/player_action/force_say action_tag = "mob_force_say" name = "Force Say" diff --git a/code/modules/admin/player_panel/actions/punish.dm b/code/modules/admin/player_panel/actions/punish.dm index 576de30ae7ff..5d2298fc8fc2 100644 --- a/code/modules/admin/player_panel/actions/punish.dm +++ b/code/modules/admin/player_panel/actions/punish.dm @@ -45,6 +45,58 @@ return TRUE +/datum/player_action/permanent_ban + action_tag = "permanent_ban" + name = "Permanent Ban" + permissions_required = R_BAN + +/datum/player_action/permanent_ban/act(client/user, mob/target, list/params) + var/reason = tgui_input_text(user, "What message should be given to the permabanned user?", "Permanent Ban", encode = FALSE) + if(!reason) + return + + var/internal_reason = tgui_input_text(user, "What's the reason for the ban? This is shown internally, and not displayed in public notes and ban messages. Include as much detail as necessary.", "Permanent Ban", multiline = TRUE, encode = FALSE) + if(!internal_reason) + return + + var/datum/entity/player/target_entity = target.client?.player_data + if(!target_entity) + target_entity = get_player_from_key(target.ckey || target.persistent_ckey) + + if(!target_entity) + return + + if(!target_entity.add_perma_ban(reason, internal_reason, user.player_data)) + to_chat(user, SPAN_ADMIN("The user is already permabanned! If necessary, you can remove the permaban, and place a new one.")) + +/datum/player_action/sticky_ban + action_tag = "sticky_ban" + name = "Sticky Ban" + permissions_required = R_BAN + +/datum/player_action/sticky_ban/act(client/user, mob/target, list/params) + var/datum/entity/player/player = get_player_from_key(target.ckey || target.persistent_ckey) + if(!player) + return + + var/persistent_ip = target.client?.address || player.last_known_ip + var/persistent_cid = target.client?.computer_id || player.last_known_cid + + var/message = tgui_input_text(user, "What message should be given to the impacted users?", "BuildABan", encode = FALSE) + if(!message) + return + + var/reason = tgui_input_text(user, "What's the reason for the ban? This is shown internally, and not displayed in public notes and ban messages. Include as much detail as necessary.", "BuildABan", multiline = TRUE, encode = FALSE) + if(!reason) + return + + user.cmd_admin_do_stickyban(target.ckey, reason, message, impacted_ckeys = list(target.ckey), impacted_cids = list(persistent_cid), impacted_ips = list(persistent_ip)) + player.add_note("Stickybanned | [message]", FALSE, NOTE_ADMIN, TRUE) + player.add_note("Internal reason: [reason]", TRUE, NOTE_ADMIN) + + if(target.client) + qdel(target.client) + /datum/player_action/mute action_tag = "mob_mute" name = "Mute" @@ -67,6 +119,14 @@ user.admin_holder.player_notes_show(target.ckey) return TRUE +/datum/player_action/check_ckey + action_tag = "check_ckey" + name = "Check Ckey" + + +/datum/player_action/check_ckey/act(client/user, mob/target, list/params) + user.admin_holder.check_ckey(target.ckey) + return TRUE /datum/player_action/reset_xeno_name action_tag = "reset_xeno_name" @@ -207,11 +267,12 @@ GLOB.data_core.manifest_modify(new_name, WEAKREF(target_mob)) if(ishuman(target_mob)) var/mob/living/carbon/human/target_human = target_mob - if(target_human.wear_id && target_human.wear_id.registered_ref == WEAKREF(target_human)) - target_human.wear_id.name = "[target_human.real_name]'s ID Card" - target_human.wear_id.registered_name = "[target_human.real_name]" - if(target_human.wear_id.assignment) - target_human.wear_id.name += " ([target_human.wear_id.assignment])" + var/obj/item/card/id/card = target_human.get_idcard() + if(card?.registered_ref == WEAKREF(target_human)) + card.name = "[target_human.real_name]'s ID Card" + card.registered_name = "[target_human.real_name]" + if(card.assignment) + card.name += " ([card.assignment])" target_mob.client.prefs.real_name = new_name target_mob.client.prefs.save_character() diff --git a/code/modules/admin/player_panel/player_panel.dm b/code/modules/admin/player_panel/player_panel.dm index bead55f994ab..3b39fd21ca5d 100644 --- a/code/modules/admin/player_panel/player_panel.dm +++ b/code/modules/admin/player_panel/player_panel.dm @@ -188,6 +188,8 @@ for(var/mob/M in mobs) if(!M.ckey) continue + if(!CLIENT_HAS_RIGHTS(usr.client, R_STEALTH) && (M.client && (CLIENT_IS_STEALTHED(M.client)))) + continue var/color = i % 2 == 0 ? "#6289b7" : "#48709d" @@ -204,12 +206,7 @@ else M_job = "Carbon-based" else if(isSilicon(M)) //silicon - if(isAI(M)) - M_job = "AI" - else if(isrobot(M)) - M_job = "Cyborg" - else - M_job = "Silicon-based" + M_job = "Silicon-based" else if(isanimal(M)) //simple animals if(iscorgi(M)) M_job = "Corgi" @@ -290,10 +287,8 @@ dat += "[(M.client ? "[M.client]" : "No client")]" dat += "[M.name]" - if(isAI(M)) + if(isSilicon(M)) dat += "AI" - else if(isrobot(M)) - dat += "Cyborg" else if(ishuman(M)) dat += "[M.real_name]" else if(istype(M, /mob/new_player)) @@ -328,7 +323,7 @@ var/dat = "

          Antagonists

          " dat += "Current Game Mode: [SSticker.mode.name]
          " - dat += "Round Duration: [round(world.time / 36000)]:[add_zero(world.time / 600 % 60, 2)]:[world.time / 100 % 6][world.time / 100 % 10]
          " + dat += "Round Duration: [floor(world.time / 36000)]:[add_zero(world.time / 600 % 60, 2)]:[world.time / 100 % 6][world.time / 100 % 10]
          " if(length(GLOB.other_factions_human_list)) dat += "
          " @@ -343,7 +338,7 @@ dat += "" dat += "
          Other human factions
          PP
          " - if(SSticker.mode.survivors.len) + if(length(SSticker.mode.survivors)) dat += "
          " for(var/datum/mind/L in SSticker.mode.survivors) var/mob/M = L.current @@ -355,7 +350,7 @@ dat += "" dat += "
          Survivors
          PP
          " - if(SSticker.mode.xenomorphs.len) + if(length(SSticker.mode.xenomorphs)) dat += "
          " for(var/datum/mind/L in SSticker.mode.xenomorphs) var/mob/M = L.current @@ -367,7 +362,7 @@ dat += "" dat += "
          Aliens
          PP
          " - if(SSticker.mode.survivors.len) + if(length(SSticker.mode.survivors)) dat += "
          " for(var/datum/mind/L in SSticker.mode.survivors) var/mob/M = L.current @@ -386,7 +381,7 @@ if (SSticker.current_state >= GAME_STATE_PLAYING) var/dat = "

          Round Status

          " dat += "Current Game Mode: [SSticker.mode.name]
          " - dat += "Round Duration: [round(world.time / 36000)]:[add_zero(world.time / 600 % 60, 2)]:[world.time / 100 % 6][world.time / 100 % 10]
          " + dat += "Round Duration: [floor(world.time / 36000)]:[add_zero(world.time / 600 % 60, 2)]:[world.time / 100 % 6][world.time / 100 % 10]
          " if(check_rights(R_DEBUG, 0)) dat += "VV Shuttle Controller

          " @@ -498,6 +493,8 @@ .["client_ckey"] = targetClient.ckey .["client_muted"] = targetClient.prefs.muted + .["client_age"] = targetClient.player_data.byond_account_age + .["first_join"] = targetClient.player_data.first_join_date .["client_rank"] = targetClient.admin_holder ? targetClient.admin_holder.rank : "Player" .["client_muted"] = targetClient.prefs.muted diff --git a/code/modules/admin/stickyban.dm b/code/modules/admin/stickyban.dm deleted file mode 100644 index 69793a599596..000000000000 --- a/code/modules/admin/stickyban.dm +++ /dev/null @@ -1,66 +0,0 @@ -// BLOCKING PROC, RUN ASYNC - -/proc/stickyban_internal(ckey, address, cid, reason, linked_stickyban, datum/entity/player/banning_admin) - - if(!ckey || !address || !cid) - CRASH("Incorrect data passed to stickyban_internal ([ckey], [address], [cid])") - - var/datum/entity/player/P = get_player_from_key(ckey) - - if(!P) - message_admins("Tried stickybanning ckey \"[ckey]\", player entity was unable to be found. Please try again later.") - return - - var/datum/entity/player_sticky_ban/PSB = DB_ENTITY(/datum/entity/player_sticky_ban) - PSB.player_id = P.id - if(reason) - PSB.reason = reason - PSB.address = address - PSB.computer_id = cid - PSB.ckey = P.ckey - PSB.date = "[time2text(world.realtime, "YYYY-MM-DD hh:mm:ss")]" - - if(linked_stickyban) - PSB.linked_stickyban = linked_stickyban - - if(!reason) - reason = "No reason given." - - if(banning_admin) - PSB.admin_id = banning_admin.id - if(banning_admin.owning_client) - message_admins("[banning_admin.owning_client.ckey] has stickybanned [ckey].") - - message_admins("[ckey] (IP: [address], CID: [cid]) has been stickybanned for: \"[reason]\".") - - if(P.owning_client) - to_chat_forced(P.owning_client, SPAN_WARNING("You have been sticky banned by [banning_admin? banning_admin.ckey : "Host"].\nReason: [sanitize(reason)].")) - to_chat_forced(P.owning_client, SPAN_WARNING("This is a permanent ban")) - QDEL_NULL(P.owning_client) - - PSB.save() - -/datum/entity/player/proc/process_stickyban(address, computer_id, source_id, reason, datum/entity/player/banning_admin, list/PSB) - if(length(PSB) > 0) // sticky ban with identical data already exists, no need for another copy - if(banning_admin) - to_chat(banning_admin, SPAN_WARNING("Failed to add stickyban to [ckey]. Reason: Stickyban already exists.")) - return - - stickyban_internal(ckey, address, computer_id, reason, source_id, banning_admin) - - -/datum/entity/player/proc/check_for_sticky_ban(address, computer_id) - var/list/datum/view_record/stickyban_list_view/SBLW = DB_VIEW(/datum/view_record/stickyban_list_view, - DB_OR( - DB_COMP("ckey", DB_EQUALS, ckey), - DB_COMP("address", DB_EQUALS, address), - DB_COMP("computer_id", DB_EQUALS, computer_id) - )) - - if(length(SBLW) == 0) - return - - if(stickyban_whitelisted) - return - - return SBLW diff --git a/code/modules/admin/tabs/admin_tab.dm b/code/modules/admin/tabs/admin_tab.dm index 8dce41ac8235..5f3bc220876c 100644 --- a/code/modules/admin/tabs/admin_tab.dm +++ b/code/modules/admin/tabs/admin_tab.dm @@ -29,21 +29,12 @@ if(!admin_holder) return + if(!isobserver(mob)) + to_chat(usr, SPAN_WARNING("You must be a ghost to use this.")) - if(istype(mob,/mob/dead/observer)) - var/mob/dead/observer/ghost = mob - if(ghost.adminlarva == 0) - ghost.adminlarva = 1 - to_chat(usr, SPAN_BOLDNOTICE("You have disabled your larva protection.")) - else if(ghost.adminlarva == 1) - ghost.adminlarva = 0 - to_chat(usr, SPAN_BOLDNOTICE("You have re-activated your larva protection.")) - else - to_chat(usr, SPAN_BOLDNOTICE("Something went wrong tell a coder")) - else if(istype(mob,/mob/new_player)) - to_chat(src, "Error: Lose larva Protection: Can't lose larva protection whilst in the lobby. Observe first.") - else - to_chat(src, "Error: Lose larva Protection: You must be a ghost to use this.") + var/mob/dead/observer/ghost = mob + ghost.admin_larva_protection = !ghost.admin_larva_protection + to_chat(usr, SPAN_BOLDNOTICE("You have [ghost.admin_larva_protection ? "en" : "dis"]abled your larva protection.")) /client/proc/unban_panel() set name = "Unban Panel" @@ -53,6 +44,12 @@ admin_holder.unbanpanel() return +/client/proc/stickyban_panel() + set name = "Stickyban Panel" + set category = "Admin.Panels" + + admin_holder?.stickypanel() + /client/proc/player_panel_new() set name = "Player Panel" set category = "Admin.Panels" @@ -438,7 +435,7 @@ if(tgui_alert(src, "Do you want to strip yourself as well?", "Confirmation", list("Yes", "No")) == "Yes") strip_self = TRUE - for(var/mob/living/current_mob in view()) + for(var/mob/living/current_mob in view(src)) if(!strip_self && usr == current_mob) continue for (var/obj/item/current_item in current_mob) @@ -461,7 +458,7 @@ if(alert("This will rejuvenate ALL mobs within your view range. Are you sure?",,"Yes","Cancel") == "Cancel") return - for(var/mob/living/M in view()) + for(var/mob/living/M in view(src)) M.rejuvenate(FALSE) message_admins(WRAP_STAFF_LOG(usr, "ahealed everyone in [get_area(usr)] ([usr.x],[usr.y],[usr.z])."), usr.x, usr.y, usr.z) @@ -479,7 +476,7 @@ if(alert("This will rejuvenate ALL humans within your view range. Are you sure?",,"Yes","Cancel") == "Cancel") return - for(var/mob/living/carbon/human/M in view()) + for(var/mob/living/carbon/human/M in view(src)) M.rejuvenate(FALSE) message_admins(WRAP_STAFF_LOG(usr, "ahealed all humans in [get_area(usr)] ([usr.x],[usr.y],[usr.z])"), usr.x, usr.y, usr.z) @@ -496,7 +493,7 @@ if(alert("This will rejuvenate ALL revivable humans within your view range. Are you sure?",,"Yes","Cancel") == "Cancel") return - for(var/mob/living/carbon/human/M in view()) + for(var/mob/living/carbon/human/M in view(src)) if(!ishuman_strict(M) && !ishumansynth_strict(M)) continue @@ -522,7 +519,7 @@ if(alert("This will rejuvenate ALL xenos within your view range. Are you sure?",,"Yes","Cancel") == "Cancel") return - for(var/mob/living/carbon/xenomorph/X in view()) + for(var/mob/living/carbon/xenomorph/X in view(src)) X.rejuvenate(FALSE) message_admins(WRAP_STAFF_LOG(usr, "ahealed all xenos in [get_area(usr)] ([usr.x],[usr.y],[usr.z])"), usr.x, usr.y, usr.z) @@ -866,7 +863,7 @@ set name = "Toggle Working Joe Restrictions" set category = "Admin.Flags" - if(!admin_holder || !check_rights(R_EVENT, FALSE)) + if(!admin_holder || !check_rights(R_EVENT, TRUE)) return if(!SSticker.mode) @@ -875,3 +872,17 @@ SSticker.mode.toggleable_flags ^= MODE_BYPASS_JOE message_admins("[src] has [MODE_HAS_TOGGLEABLE_FLAG(MODE_BYPASS_JOE) ? "allowed players to bypass (except whitelist)" : "prevented players from bypassing"] Working Joe spawn conditions.") + +/client/proc/toggle_joe_respawns() + set name = "Toggle Working Joe Respawns" + set category = "Admin.Flags" + + if(!admin_holder || !check_rights(R_EVENT, TRUE)) + return + + if(!SSticker.mode) + to_chat(usr, SPAN_WARNING("A mode hasn't been selected yet!")) + return + + SSticker.mode.toggleable_flags ^= MODE_DISABLE_JOE_RESPAWN + message_admins("[src] has [MODE_HAS_TOGGLEABLE_FLAG(MODE_DISABLE_JOE_RESPAWN) ? "disabled" : "enabled"] Working Joe respawns.") diff --git a/code/modules/admin/tabs/debug_tab.dm b/code/modules/admin/tabs/debug_tab.dm index df11917f087a..9adc59c6f209 100644 --- a/code/modules/admin/tabs/debug_tab.dm +++ b/code/modules/admin/tabs/debug_tab.dm @@ -32,7 +32,7 @@ var/value = SStechtree.trees[1] - if(trees.len > 1) + if(length(trees) > 1) value = tgui_input_list(src, "Choose which tree to enter", "Enter Tree", trees) if(!value) @@ -60,7 +60,7 @@ var/value = SStechtree.trees[1] - if(trees.len > 1) + if(length(trees) > 1) value = tgui_input_list(src, "Choose which tree to give points to", "Give Points", trees) if(!value) @@ -161,15 +161,6 @@ message_admins("[usr.ckey] manually reloaded admins.") load_admins() -/client/proc/reload_whitelist() - set name = "Reload Whitelist" - set category = "Debug" - if(alert("Are you sure you want to do this?",, "Yes", "No") != "Yes") return - if(!check_rights(R_SERVER) || !GLOB.RoleAuthority) return - - message_admins("[usr.ckey] manually reloaded the role whitelist.") - GLOB.RoleAuthority.load_whitelist() - /client/proc/bulk_fetcher() set name = "Bulk Fetch Items" set category = "Debug" diff --git a/code/modules/admin/tabs/event_tab.dm b/code/modules/admin/tabs/event_tab.dm index 830717ef91b9..a155f2a37614 100644 --- a/code/modules/admin/tabs/event_tab.dm +++ b/code/modules/admin/tabs/event_tab.dm @@ -23,7 +23,7 @@ faction = temp_list[faction] if(!GLOB.custom_event_info_list[faction]) - to_chat(usr, "Error has occured, [faction] category is not found.") + to_chat(usr, "Error has occurred, [faction] category is not found.") return var/datum/custom_event_info/CEI = GLOB.custom_event_info_list[faction] @@ -81,6 +81,8 @@ /client/proc/handle_bomb_drop(atom/epicenter) var/custom_limit = 5000 + var/power_warn_threshold = 500 + var/falloff_warn_threshold = 0.05 var/list/choices = list("Small Bomb", "Medium Bomb", "Big Bomb", "Custom Bomb") var/list/falloff_shape_choices = list("CANCEL", "Linear", "Exponential") var/choice = tgui_input_list(usr, "What size explosion would you like to produce?", "Drop Bomb", choices) @@ -113,6 +115,11 @@ if(power > custom_limit) return + + if((power >= power_warn_threshold) && ((1 / (power / falloff)) <= falloff_warn_threshold) && (explosion_shape == EXPLOSION_FALLOFF_SHAPE_LINEAR)) // The lag can be a bit situational, but a large-power explosion with minimal (linear) falloff can absolutely bring the server to a halt in certain cases. + if(tgui_input_list(src, "This bomb has the potential to lag the server. Are you sure you wish to drop it?", "Drop confirm", list("Yes", "No")) != "Yes") + return + cell_explosion(epicenter, power, falloff, explosion_shape, null, cause_data) message_admins("[key_name(src, TRUE)] dropped a custom cell bomb with power [power], falloff [falloff] and falloff_shape [shape_choice]!") message_admins("[ckey] used 'Drop Bomb' at [epicenter.loc].") @@ -322,7 +329,11 @@ if(!admin_holder) return - var/list/options = list("Weyland-Yutani", "High Command", "Provost", "Press", "CMB", "Other", "Cancel") + var/list/options = list( + "Weyland-Yutani", "High Command", "Provost", "Press", + "Colonial Marshal Bureau", "Union of Progressive Peoples", + "Three World Empire", "Colonial Liberation Front", + "Other", "Cancel") var/answer = tgui_input_list(src, "Which kind of faxes would you like to see?", "Faxes", options) switch(answer) if("Weyland-Yutani") @@ -334,6 +345,7 @@ body += "

          " show_browser(src, body, "Faxes to Weyland-Yutani", "wyfaxviewer", "size=300x600") + if("High Command") var/body = "" @@ -343,6 +355,7 @@ body += "

          " show_browser(src, body, "Faxes to High Command", "uscmfaxviewer", "size=300x600") + if("Provost") var/body = "" @@ -361,9 +374,9 @@ body += "

          " body += "

          " - show_browser(src, body, "Faxes to Press organizations", "otherfaxviewer", "size=300x600") + show_browser(src, body, "Faxes to Press organizations", "pressfaxviewer", "size=300x600") - if("CMB") + if("Colonial Marshal Bureau") var/body = "" for(var/text in GLOB.CMBFaxes) @@ -373,6 +386,36 @@ body += "

          " show_browser(src, body, "Faxes to the Colonial Marshal Bureau", "cmbfaxviewer", "size=300x600") + if("Union of Progressive Peoples") + var/body = "" + + for(var/text in GLOB.UPPFaxes) + body += text + body += "

          " + + body += "

          " + show_browser(src, body, "Faxes to the Union of Progressive Peoples", "uppfaxviewer", "size=300x600") + + if("Three World Empire") + var/body = "" + + for(var/text in GLOB.TWEFaxes) + body += text + body += "

          " + + body += "

          " + show_browser(src, body, "Faxes to the Three World Empire", "twefaxviewer", "size=300x600") + + if("Colonial Liberation Front") + var/body = "" + + for(var/text in GLOB.CLFFaxes) + body += text + body += "

          " + + body += "

          " + show_browser(src, body, "Faxes to the Colonial Liberation Front", "clffaxviewer", "size=300x600") + if("Other") var/body = "" @@ -402,7 +445,7 @@ var/datum/hive_status/hive for(var/hivenumber in GLOB.hive_datum) hive = GLOB.hive_datum[hivenumber] - if(hive.totalXenos.len > 0 || hive.total_dead_xenos.len > 0) + if(length(hive.totalXenos) > 0 || length(hive.total_dead_xenos) > 0) hives += list("[hive.name]" = hive.hivenumber) last_hive_checked = hive @@ -456,8 +499,8 @@ if(random_names) var/random_name = "[lowertext(H.species.name)] ([rand(1, 999)])" H.change_real_name(H, random_name) - if(H.wear_id) - var/obj/item/card/id/card = H.wear_id + var/obj/item/card/id/card = H.get_idcard() + if(card) card.registered_name = H.real_name card.name = "[card.registered_name]'s ID Card ([card.assignment])" @@ -570,7 +613,12 @@ if(!admin_holder || !(admin_holder.rights & R_MOD)) to_chat(src, "Only administrators may use this command.") - return + return FALSE + + if(!ares_is_active()) + to_chat(usr, SPAN_WARNING("[MAIN_AI_SYSTEM] is destroyed, and cannot talk!")) + return FALSE + var/input = input(usr, "This is a standard message from the ship's AI. It uses Almayer General channel and won't be heard by humans without access to Almayer General channel (headset or intercom). Check with online staff before you send this. Do not use html.", "What?", "") as message|null if(!input) return FALSE @@ -579,7 +627,7 @@ var/prompt = tgui_alert(src, "ARES interface processor is offline or destroyed, send the message anyways?", "Choose.", list("Yes", "No"), 20 SECONDS) if(prompt == "No") to_chat(usr, SPAN_WARNING("[MAIN_AI_SYSTEM] is not responding. It's interface processor may be offline or destroyed.")) - return + return FALSE ai_announcement(input) message_admins("[key_name_admin(src)] has created an AI comms report") @@ -592,13 +640,17 @@ if(!admin_holder || !(admin_holder.rights & R_MOD)) to_chat(src, "Only administrators may use this command.") - return + return FALSE + + if(!ares_is_active()) + to_chat(usr, SPAN_WARNING("[MAIN_AI_SYSTEM] is destroyed, and cannot talk!")) + return FALSE + var/input = tgui_input_text(usr, "This is a broadcast from the ship AI to Working Joes and Maintenance Drones. Do not use html.", "What?", "") if(!input) return FALSE - var/datum/ares_link/link = GLOB.ares_link - if(link.processor_apollo.inoperable()) + if(!ares_can_apollo()) var/prompt = tgui_alert(src, "ARES APOLLO processor is offline or destroyed, send the message anyways?", "Choose.", list("Yes", "No"), 20 SECONDS) if(prompt != "Yes") to_chat(usr, SPAN_WARNING("[MAIN_AI_SYSTEM] is not responding. It's APOLLO processor may be offline or destroyed.")) @@ -714,7 +766,7 @@ Power ship SMESs and APCs
          Power ship SMESs
          Power ALL SMESs and APCs everywhere
          - Power all ship reactors
          + Repair and power all ship reactors

          Events
          Break all lights
          @@ -728,6 +780,7 @@ Spawn a nuke
          Toggle PMC gun restrictions
          Turn everyone into monkies
          + Give or take opposable thumbs and gun permits from xenos

          "} @@ -1007,10 +1060,11 @@ if("Xeno") GLOB.bioscan_data.qm_bioscan(variance) if("Marine") - var/force_check = tgui_alert(usr, "Do you wish to force ARES to display the bioscan?", "Display force", list("Yes", "No"), 20 SECONDS) var/force_status = FALSE - if(force_check == "Yes") - force_status = TRUE + if(!ares_can_interface()) //proc checks if ARES is dead or if ARES cannot do announcements + var/force_check = tgui_alert(usr, "ARES is currently unable to properly display and/or perform the Bioscan, do you wish to force ARES to display the bioscan?", "Display force", list("Yes", "No"), 20 SECONDS) + if(force_check == "Yes") + force_status = TRUE GLOB.bioscan_data.ares_bioscan(force_status, variance) if("Yautja") GLOB.bioscan_data.yautja_bioscan() diff --git a/code/modules/admin/tabs/round_tab.dm b/code/modules/admin/tabs/round_tab.dm index 39a9050053f1..bc154e6ee1c3 100644 --- a/code/modules/admin/tabs/round_tab.dm +++ b/code/modules/admin/tabs/round_tab.dm @@ -1,22 +1,37 @@ /client/proc/adjust_predator_round() - set name = "Adjust Predator Round" - set desc = "Adjust the number of predators present in a predator round." + set name = "Adjust Predator Slots" + set desc = "Adjust the extra slots for predators." set category = "Server.Round" - if(admin_holder) - if(!SSticker || !SSticker.mode) - to_chat(src, SPAN_WARNING("The game hasn't started yet!")) - return + if(!admin_holder) + return - var/value = tgui_input_number(src,"How many additional predators can join? Decreasing the value is not recommended. Current predator count: [SSticker.mode.pred_current_num]","Input:", 0, (SSticker.mode.pred_additional_max - SSticker.mode.pred_current_num)) + if(!SSticker?.mode) + to_chat(src, SPAN_WARNING("The game hasn't started yet!")) + return - if(value < SSticker.mode.pred_current_num) - to_chat(src, SPAN_NOTICE("Aborting. Number cannot be lower than the current pred count. (current: [SSticker.mode.pred_current_num], attempted: [value])")) - return + var/cur_extra = SSticker.mode.pred_additional_max + var/cur_count = SSticker.mode.pred_current_num + var/cur_max = SSticker.mode.calculate_pred_max() + var/value = tgui_input_number(src, "How many additional predators can join? Current predator count: [cur_count]/[cur_max] Current setting: [cur_extra]", "Input:", default = cur_extra, min_value = 0, integer_only = TRUE) - if(value) - SSticker.mode.pred_additional_max = abs(value) - message_admins("[key_name_admin(usr)] adjusted the additional pred amount to [abs(value)].") + if(isnull(value)) + return + + if(value == cur_extra) + return + + cur_count = SSticker.mode.pred_current_num // values could have changed since asking + cur_max = SSticker.mode.calculate_pred_max() + var/free_extra = max(min(cur_extra, cur_max - cur_count), 0) // how much we could potentionally reduce pred_additional_max + + // If we are reducing the count and that exceeds how much we could reduce it by + if(value < cur_extra && (cur_extra - value) > free_extra) + to_chat(src, SPAN_NOTICE("Aborting. Number cannot result in a max less than current pred count. (current: [cur_count]/[cur_max], current extra: [cur_extra], attempted: [value])")) + return + + SSticker.mode.pred_additional_max = value + message_admins("[key_name_admin(usr)] adjusted the additional pred amount from [cur_extra] to [value].") /datum/admins/proc/force_predator_round() set name = "Toggle Predator Round" @@ -42,6 +57,7 @@ if(istype(PJ) && !PJ.spawn_positions) PJ.set_spawn_positions(GLOB.players_preassigned) predator_round.flags_round_type |= MODE_PREDATOR + REDIS_PUBLISH("byond.round", "type" = "predator-round", "map" = SSmapping.configs[GROUND_MAP].map_name) else predator_round.flags_round_type &= ~MODE_PREDATOR @@ -169,8 +185,10 @@ set name = "Start Round" set desc = "Start the round RIGHT NOW" set category = "Server.Round" - if (alert("Are you sure you want to start the round early?",,"Yes","No") != "Yes") - return + var/response = tgui_alert(usr, "Are you sure you want to start the round early?", "Force Start Round", list("Yes", "Bypass Checks", "No"), 30 SECONDS) + if (response != "Yes" && response != "Bypass Checks") + return FALSE + SSticker.bypass_checks = response == "Bypass Checks" if (SSticker.current_state == GAME_STATE_STARTUP) message_admins("Game is setting up and will launch as soon as it is ready.") message_admins(SPAN_ADMINNOTICE("[usr.key] has started the process to start the game when loading is finished.")) diff --git a/code/modules/admin/topic/topic.dm b/code/modules/admin/topic/topic.dm index fa814ca16b7c..029eda204f3a 100644 --- a/code/modules/admin/topic/topic.dm +++ b/code/modules/admin/topic/topic.dm @@ -73,7 +73,7 @@ else if(task == "rank") var/new_rank - if(GLOB.admin_ranks.len) + if(length(GLOB.admin_ranks)) new_rank = tgui_input_list(usr, "Please select a rank", "New rank", (GLOB.admin_ranks|"*New Rank*")) else new_rank = tgui_input_list(usr, "Please select a rank", "New rank", list("Game Master","Game Admin", "Trial Admin", "Admin Observer","*New Rank*")) @@ -91,7 +91,7 @@ to_chat(usr, "Error: Topic 'editrights': Invalid rank") return if(CONFIG_GET(flag/admin_legacy_system)) - if(GLOB.admin_ranks.len) + if(length(GLOB.admin_ranks)) if(new_rank in GLOB.admin_ranks) rights = GLOB.admin_ranks[new_rank] //we typed a rank which already exists, use its rights else @@ -229,6 +229,200 @@ alert(usr, "This ban has already been lifted / does not exist.", "Error", "Ok") unbanpanel() + else if(href_list["unban_perma"]) + var/datum/entity/player/unban_player = get_player_from_key(href_list["unban_perma"]) + if(!(tgui_alert(owner, "Do you want to unban [unban_player.ckey]? They are currently permabanned for: [unban_player.permaban_reason], since [unban_player.permaban_date].", "Unban Player", list("Yes", "No")) == "Yes")) + return + + if(!unban_player.is_permabanned) + to_chat(owner, "The player is not currently permabanned.") + + unban_player.is_permabanned = FALSE + unban_player.permaban_admin_id = null + unban_player.permaban_date = null + unban_player.permaban_reason = null + + unban_player.save() + + message_admins("[key_name_admin(owner)] has removed the permanent ban on [unban_player.ckey].") + important_message_external("[owner] has removed the permanent ban on [unban_player.ckey].", "Permaban Removed") + + else if(href_list["sticky"]) + if(href_list["view_all_ckeys"]) + var/list/datum/view_record/stickyban_matched_ckey/all_ckeys = DB_VIEW(/datum/view_record/stickyban_matched_ckey, + DB_COMP("linked_stickyban", DB_EQUALS, href_list["sticky"]) + ) + + var/list/keys = list() + var/list/whitelisted = list() + for(var/datum/view_record/stickyban_matched_ckey/match as anything in all_ckeys) + if(match.whitelisted) + whitelisted += match.ckey + else + keys += match.ckey + + show_browser(owner, "Impacted: [english_list(keys)]

          Whitelisted: [english_list(whitelisted)]", "Stickyban Keys", "stickykeys") + return + + if(href_list["view_all_cids"]) + var/list/datum/view_record/stickyban_matched_cid/all_cids = DB_VIEW(/datum/view_record/stickyban_matched_cid, + DB_COMP("linked_stickyban", DB_EQUALS, href_list["sticky"]) + ) + + var/list/cids = list() + for(var/datum/view_record/stickyban_matched_cid/match as anything in all_cids) + cids += match.cid + + show_browser(owner, english_list(cids), "Stickyban CIDs", "stickycids") + return + + if(href_list["view_all_ips"]) + var/list/datum/view_record/stickyban_matched_ip/all_ips = DB_VIEW(/datum/view_record/stickyban_matched_ip, + DB_COMP("linked_stickyban", DB_EQUALS, href_list["sticky"]) + ) + + var/list/ips = list() + for(var/datum/view_record/stickyban_matched_ip/match as anything in all_ips) + ips += match.ip + + show_browser(owner, english_list(ips), "Stickyban IPs", "stickycips") + return + + if(href_list["find_sticky"]) + var/ckey = ckey(tgui_input_text(owner, "Which CKEY should we attempt to find stickybans for?", "FindABan")) + if(!ckey) + return + + var/list/datum/view_record/stickyban/stickies = SSstickyban.check_for_sticky_ban(ckey) + if(!stickies) + to_chat(owner, SPAN_ADMIN("Could not locate any stickbans impacting [ckey].")) + return + + var/list/impacting_stickies = list() + + for(var/datum/view_record/stickyban/sticky as anything in stickies) + impacting_stickies += sticky.identifier + + to_chat(owner, SPAN_ADMIN("Found the following stickybans for [ckey]: [english_list(impacting_stickies)]")) + + if(!check_rights_for(owner, R_BAN)) + return + + if(href_list["new_sticky"]) + owner.cmd_admin_do_stickyban() + return + + var/datum/entity/stickyban/sticky = DB_ENTITY(/datum/entity/stickyban, href_list["sticky"]) + if(!sticky) + return + + sticky.sync() + + if(href_list["whitelist_ckey"]) + var/ckey_to_whitelist = ckey(tgui_input_text(owner, "What CKEY should be whitelisted? Editing stickyban: [sticky.identifier]")) + if(!ckey_to_whitelist) + return + + SSstickyban.whitelist_ckey(sticky.id, ckey_to_whitelist) + message_admins("[key_name_admin(owner)] has whitelisted [ckey_to_whitelist] against stickyban '[sticky.identifier]'.") + important_message_external("[owner] has whitelisted [ckey_to_whitelist] against stickyban '[sticky.identifier]'.", "CKEY Whitelisted") + + if(href_list["add"]) + var/option = tgui_input_list(owner, "What do you want to add?", "AddABan", list("CID", "CKEY", "IP")) + if(!option) + return + + var/to_add = tgui_input_text(owner, "Provide the [option] to add to the stickyban.", "AddABan") + if(!to_add) + return + + switch(option) + if("CID") + SSstickyban.add_matched_cid(sticky.id, to_add) + if("CKEY") + SSstickyban.add_matched_ckey(sticky.id, to_add) + if("IP") + SSstickyban.add_matched_ip(sticky.id, to_add) + + message_admins("[key_name_admin(owner)] has added a [option] ([to_add]) to stickyban '[sticky.identifier]'.") + important_message_external("[owner] has added a [option] ([to_add]) to stickyban '[sticky.identifier]'.", "[option] Added to Stickyban") + + if(href_list["remove"]) + var/option = tgui_input_list(owner, "What do you want to remove?", "DelABan", list("Entire Stickyban", "CID", "CKEY", "IP")) + switch(option) + if("Entire Stickyban") + if(!(tgui_alert(owner, "Are you sure you want to remove this stickyban? Identifier: [sticky.identifier] Reason: [sticky.reason]", "Confirm", list("Yes", "No")) == "Yes")) + return + + sticky.active = FALSE + sticky.save() + + message_admins("[key_name_admin(owner)] has deactivated stickyban '[sticky.identifier]'.") + important_message_external("[owner] has deactivated stickyban '[sticky.identifier]'.", "Stickyban Deactivated") + + if("CID") + var/list/datum/view_record/stickyban_matched_cid/all_cids = DB_VIEW(/datum/view_record/stickyban_matched_cid, + DB_COMP("linked_stickyban", DB_EQUALS, sticky.id) + ) + + var/list/cid_to_record_id = list() + for(var/datum/view_record/stickyban_matched_cid/match in all_cids) + cid_to_record_id["[match.cid]"] = match.id + + var/picked = tgui_input_list(owner, "Which CID to remove?", "DelABan", cid_to_record_id) + if(!picked) + return + + var/selected = cid_to_record_id[picked] + + var/datum/entity/stickyban_matched_cid/sticky_cid = DB_ENTITY(/datum/entity/stickyban_matched_cid, selected) + sticky_cid.delete() + + message_admins("[key_name_admin(owner)] has removed a CID ([picked]) from stickyban '[sticky.identifier]'.") + important_message_external("[owner] has removed a CID ([picked]) from stickyban '[sticky.identifier]'.", "CID Removed from Stickyban") + + if("CKEY") + var/list/datum/view_record/stickyban_matched_ckey/all_ckeys = DB_VIEW(/datum/view_record/stickyban_matched_ckey, + DB_COMP("linked_stickyban", DB_EQUALS, sticky.id) + ) + + var/list/ckey_to_record_id = list() + for(var/datum/view_record/stickyban_matched_ckey/match in all_ckeys) + ckey_to_record_id["[match.ckey]"] = match.id + + var/picked = tgui_input_list(owner, "Which CKEY to remove?", "DelABan", ckey_to_record_id) + if(!picked) + return + + var/selected = ckey_to_record_id[picked] + + var/datum/entity/stickyban_matched_ckey/sticky_ckey = DB_ENTITY(/datum/entity/stickyban_matched_ckey, selected) + sticky_ckey.delete() + + message_admins("[key_name_admin(owner)] has removed a CKEY ([picked]) from stickyban '[sticky.identifier]'.") + important_message_external("[owner] has removed a CKEY ([picked]) from stickyban '[sticky.identifier]'.", "CKEY Removed from Stickyban") + + if("IP") + var/list/datum/view_record/stickyban_matched_ip/all_ips = DB_VIEW(/datum/view_record/stickyban_matched_ip, + DB_COMP("linked_stickyban", DB_EQUALS, sticky.id) + ) + + var/list/ip_to_record_id = list() + for(var/datum/view_record/stickyban_matched_ip/match in all_ips) + ip_to_record_id["[match.ip]"] = match.id + + var/picked = tgui_input_list(owner, "Which IP to remove?", "DelABan", ip_to_record_id) + if(!picked) + return + + var/selected = ip_to_record_id[picked] + + var/datum/entity/stickyban_matched_ip/sticky_ip = DB_ENTITY(/datum/entity/stickyban_matched_ip, selected) + sticky_ip.delete() + + message_admins("[key_name_admin(owner)] has removed an IP ([picked]) from stickyban [sticky.identifier].") + important_message_external("[owner] has removed an IP ([picked]) from stickyban '[sticky.identifier].", "IP Removed from Stickyban") + else if(href_list["warn"]) usr.client.warn(href_list["warn"]) @@ -359,7 +553,7 @@ notbannedlist += job //Banning comes first - if(notbannedlist.len) + if(length(notbannedlist)) if(!check_rights(R_BAN)) return var/reason = input(usr,"Reason?","Please State Reason","") as text|null if(reason) @@ -371,7 +565,7 @@ //Unbanning joblist //all jobs in joblist are banned already OR we didn't give a reason (implying they shouldn't be banned) - if(joblist.len) //at least 1 banned job exists in joblist so we have stuff to unban. + if(length(joblist)) //at least 1 banned job exists in joblist so we have stuff to unban. for(var/job in joblist) var/reason = jobban_isbanned(M, job, P1) if(!reason) continue //skip if it isn't jobbanned anyway @@ -745,9 +939,6 @@ if(!ismob(M)) to_chat(usr, "This can only be used on instances of type /mob") return - if(isAI(M)) - to_chat(usr, "This cannot be used on instances of type /mob/living/silicon/ai") - return for(var/obj/item/I in M) M.drop_inv_item_on_ground(I) @@ -769,9 +960,6 @@ if(!ismob(M)) to_chat(usr, "This can only be used on instances of type /mob") return - if(isAI(M)) - to_chat(usr, "This cannot be used on instances of type /mob/living/silicon/ai") - return for(var/obj/item/I in M) M.drop_inv_item_on_ground(I) @@ -793,9 +981,6 @@ if(!ismob(M)) to_chat(usr, "This can only be used on instances of type /mob") return - if(isAI(M)) - to_chat(usr, "This cannot be used on instances of type /mob/living/silicon/ai") - return M.apply_effect(5, PARALYZE) sleep(5) @@ -814,9 +999,6 @@ if(!ismob(M)) to_chat(usr, "This can only be used on instances of type /mob") return - if(isAI(M)) - to_chat(usr, "This cannot be used on instances of type /mob/living/silicon/ai") - return for(var/obj/item/I in M) M.drop_inv_item_on_ground(I) @@ -854,17 +1036,6 @@ usr.client.cmd_admin_alienize(H) - else if(href_list["makeai"]) - if(!check_rights(R_SPAWN)) return - - var/mob/living/carbon/human/H = locate(href_list["makeai"]) - if(!istype(H)) - to_chat(usr, "This can only be used on instances of type /mob/living/carbon/human") - return - - message_admins(SPAN_DANGER("Admin [key_name_admin(usr)] AIized [key_name_admin(H)]!"), 1) - H.AIize() - else if(href_list["changehivenumber"]) if(!check_rights(R_DEBUG|R_ADMIN)) return @@ -917,12 +1088,7 @@ qdel(M.skills) M.skills = null //no skill restriction - if(is_alien_whitelisted(M,"Yautja Elder")) - M.change_real_name(M, "Elder [y_name]") - H.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/yautja/hunter/full(H), WEAR_JACKET) - H.equip_to_slot_or_del(new /obj/item/weapon/twohanded/yautja/glaive(H), WEAR_L_HAND) - else - M.change_real_name(M, y_name) + M.change_real_name(M, y_name) M.name = "Unknown" // Yautja names are not visible for oomans if(H) @@ -930,16 +1096,6 @@ return - else if(href_list["makerobot"]) - if(!check_rights(R_SPAWN)) return - - var/mob/living/carbon/human/H = locate(href_list["makerobot"]) - if(!istype(H)) - to_chat(usr, "This can only be used on instances of type /mob/living/carbon/human") - return - - usr.client.cmd_admin_robotize(H) - else if(href_list["makeanimal"]) if(!check_rights(R_SPAWN)) return @@ -1163,7 +1319,7 @@ GLOB.fax_contents += fax_message // save a copy var/customname = input(src.owner, "Pick a title for the report", "Title") as text|null - GLOB.USCMFaxes.Add("\[view '[customname]' from [key_name(usr)] at [time2text(world.timeofday, "hh:mm:ss")]\]") + GLOB.PressFaxes.Add("\[view '[customname]' from [key_name(usr)] at [time2text(world.timeofday, "hh:mm:ss")]\]") var/msg_ghost = SPAN_NOTICE("PRESS REPLY: ") msg_ghost += "Transmitting '[customname]' via secure connection ... " @@ -1199,6 +1355,7 @@ message_admins(SPAN_STAFF_IC("[key_name_admin(src.owner)] replied to a fax message from [key_name_admin(H)]"), 1) return to_chat(src.owner, "/red Unable to locate fax!") + else if(href_list["USCMFaxReply"]) var/mob/living/carbon/human/H = locate(href_list["USCMFaxReply"]) var/obj/structure/machinery/faxmachine/fax = locate(href_list["originfax"]) @@ -1226,7 +1383,7 @@ return else return - var/message_body = input(src.owner, "Enter Message Body, use

          for paragraphs", "Outgoing message from Weyland USCM", "") as message|null + var/message_body = input(src.owner, "Enter Message Body, use

          for paragraphs", "Outgoing message from USCM", "") as message|null if(!message_body) return var/sent_by = input(src.owner, "Enter the name and rank you are sending from.", "Outgoing message from USCM", "") as message|null @@ -1282,8 +1439,8 @@ return to_chat(src.owner, "/red Unable to locate fax!") - else if(href_list["CLFaxReply"]) - var/mob/living/carbon/human/H = locate(href_list["CLFaxReply"]) + else if(href_list["WYFaxReply"]) + var/mob/living/carbon/human/H = locate(href_list["WYFaxReply"]) var/obj/structure/machinery/faxmachine/fax = locate(href_list["originfax"]) var/template_choice = tgui_input_list(usr, "Use the template or roll your own?", "Fax Template", list("Template", "Custom")) @@ -1364,6 +1521,249 @@ return to_chat(src.owner, "/red Unable to locate fax!") + else if(href_list["TWEFaxReply"]) + var/mob/living/carbon/human/H = locate(href_list["TWEFaxReply"]) + var/obj/structure/machinery/faxmachine/fax = locate(href_list["originfax"]) + + var/template_choice = tgui_input_list(usr, "Use the template or roll your own?", "Fax Template", list("Template", "Custom")) + if(!template_choice) return + var/datum/fax/fax_message + switch(template_choice) + if("Custom") + var/input = input(src.owner, "Please enter a message to reply to [key_name(H)] via secure connection. NOTE: BBCode does not work, but HTML tags do! Use
          for line breaks.", "Outgoing message from TWE", "") as message|null + if(!input) + return + fax_message = new(input) + if("Template") + var/subject = input(src.owner, "Enter subject line", "Outgoing message from TWE", "") as message|null + if(!subject) + return + var/addressed_to = "" + var/address_option = tgui_input_list(usr, "Address it to the sender or custom?", "Fax Template", list("Sender", "Custom")) + if(address_option == "Sender") + addressed_to = "[H.real_name]" + else if(address_option == "Custom") + addressed_to = input(src.owner, "Enter Addressee Line", "Outgoing message from TWE", "") as message|null + if(!addressed_to) + return + else + return + var/message_body = input(src.owner, "Enter Message Body, use

          for paragraphs", "Outgoing message from TWE", "") as message|null + if(!message_body) + return + var/sent_by = input(src.owner, "Enter JUST the name you are sending this from", "Outgoing message from TWE", "") as message|null + if(!sent_by) + return + fax_message = new(generate_templated_fax(0, "THREE WORLD EMPIRE - ROYAL MILITARY COMMAND", subject, addressed_to, message_body, sent_by, "Office of Military Communications", "Three World Empire")) + show_browser(usr, "[fax_message.data]", "PREVIEW OF TWE FAX", "size=500x400") + var/send_choice = tgui_input_list(usr, "Send this fax?", "Fax Confirmation", list("Send", "Cancel")) + if(send_choice != "Send") + return + GLOB.fax_contents += fax_message // save a copy + + var/customname = input(src.owner, "Pick a title for the report", "Title") as text|null + if(!customname) + return + + GLOB.TWEFaxes.Add("\[view '[customname]' from [key_name(usr)] at [time2text(world.timeofday, "hh:mm:ss")]\]") //Add replies so that mods know what the hell is goin on with the RP + + var/msg_ghost = SPAN_NOTICE("THREE WORLD EMPIRE FAX REPLY: ") + msg_ghost += "Transmitting '[customname]' via secure connection ... " + msg_ghost += "view message" + announce_fax( ,msg_ghost) + + for(var/obj/structure/machinery/faxmachine/F in GLOB.machines) + if(F == fax) + if(!(F.inoperable())) + + // animate! it's alive! + flick("faxreceive", F) + + // give the sprite some time to flick + spawn(20) + var/obj/item/paper/P = new /obj/item/paper( F.loc ) + P.name = "Three World Empire - [customname]" + P.info = fax_message.data + P.update_icon() + + playsound(F.loc, "sound/machines/fax.ogg", 15) + + // Stamps + var/image/stampoverlay = image('icons/obj/items/paper.dmi') + stampoverlay.icon_state = "paper_stamp-twe" + if(!P.stamped) + P.stamped = new + P.stamped += /obj/item/tool/stamp + P.overlays += stampoverlay + P.stamps += "
          This paper has been stamped by the Three World Empire Quantum Relay (tm)." + + to_chat(src.owner, "Message reply to transmitted successfully.") + message_admins(SPAN_STAFF_IC("[key_name_admin(src.owner)] replied to a fax message from [key_name_admin(H)]"), 1) + return + to_chat(src.owner, "/red Unable to locate fax!") + + else if(href_list["UPPFaxReply"]) + var/mob/living/carbon/human/H = locate(href_list["UPPFaxReply"]) + var/obj/structure/machinery/faxmachine/fax = locate(href_list["originfax"]) + + var/template_choice = tgui_input_list(usr, "Use the template or roll your own?", "Fax Template", list("Template", "Custom")) + if(!template_choice) return + var/datum/fax/fax_message + switch(template_choice) + if("Custom") + var/input = input(src.owner, "Please enter a message to reply to [key_name(H)] via secure connection. NOTE: BBCode does not work, but HTML tags do! Use
          for line breaks.", "Outgoing message from UPP", "") as message|null + if(!input) + return + fax_message = new(input) + if("Template") + var/subject = input(src.owner, "Enter subject line", "Outgoing message from UPP", "") as message|null + if(!subject) + return + var/addressed_to = "" + var/address_option = tgui_input_list(usr, "Address it to the sender or custom?", "Fax Template", list("Sender", "Custom")) + if(address_option == "Sender") + addressed_to = "[H.real_name]" + else if(address_option == "Custom") + addressed_to = input(src.owner, "Enter Addressee Line", "Outgoing message from UPP", "") as message|null + if(!addressed_to) + return + else + return + var/message_body = input(src.owner, "Enter Message Body, use

          for paragraphs", "Outgoing message from UPP", "") as message|null + if(!message_body) + return + var/sent_by = input(src.owner, "Enter JUST the name you are sending this from", "Outgoing message from UPP", "") as message|null + if(!sent_by) + return + fax_message = new(generate_templated_fax(0, "UNION OF PROGRESSIVE PEOPLES - MILITARY HIGH KOMMAND", subject, addressed_to, message_body, sent_by, "Military High Kommand", "Union of Progressive Peoples")) + show_browser(usr, "[fax_message.data]", "PREVIEW OF UPP FAX", "size=500x400") + var/send_choice = tgui_input_list(usr, "Send this fax?", "Fax Confirmation", list("Send", "Cancel")) + if(send_choice != "Send") + return + GLOB.fax_contents += fax_message // save a copy + + var/customname = input(src.owner, "Pick a title for the report", "Title") as text|null + if(!customname) + return + + GLOB.UPPFaxes.Add("\[view '[customname]' from [key_name(usr)] at [time2text(world.timeofday, "hh:mm:ss")]\]") //Add replies so that mods know what the hell is goin on with the RP + + var/msg_ghost = SPAN_NOTICE("UNION OF PROGRESSIVE PEOPLES FAX REPLY: ") + msg_ghost += "Transmitting '[customname]' via secure connection ... " + msg_ghost += "view message" + announce_fax( ,msg_ghost) + + for(var/obj/structure/machinery/faxmachine/F in GLOB.machines) + if(F == fax) + if(!(F.inoperable())) + + // animate! it's alive! + flick("faxreceive", F) + + // give the sprite some time to flick + spawn(20) + var/obj/item/paper/P = new /obj/item/paper( F.loc ) + P.name = "Union of Progressive Peoples - [customname]" + P.info = fax_message.data + P.update_icon() + + playsound(F.loc, "sound/machines/fax.ogg", 15) + + // Stamps + var/image/stampoverlay = image('icons/obj/items/paper.dmi') + stampoverlay.icon_state = "paper_stamp-upp" + if(!P.stamped) + P.stamped = new + P.stamped += /obj/item/tool/stamp + P.overlays += stampoverlay + P.stamps += "
          This paper has been stamped by the Union of Progressive Peoples Quantum Relay (tm)." + + to_chat(src.owner, "Message reply to transmitted successfully.") + message_admins(SPAN_STAFF_IC("[key_name_admin(src.owner)] replied to a fax message from [key_name_admin(H)]"), 1) + return + to_chat(src.owner, "/red Unable to locate fax!") + + else if(href_list["CLFFaxReply"]) + var/mob/living/carbon/human/H = locate(href_list["CLFFaxReply"]) + var/obj/structure/machinery/faxmachine/fax = locate(href_list["originfax"]) + + var/template_choice = tgui_input_list(usr, "Use the template or roll your own?", "Fax Template", list("Template", "Custom")) + if(!template_choice) return + var/datum/fax/fax_message + switch(template_choice) + if("Custom") + var/input = input(src.owner, "Please enter a message to reply to [key_name(H)] via secure connection. NOTE: BBCode does not work, but HTML tags do! Use
          for line breaks.", "Outgoing message from CLF", "") as message|null + if(!input) + return + fax_message = new(input) + if("Template") + var/subject = input(src.owner, "Enter subject line", "Outgoing message from CLF", "") as message|null + if(!subject) + return + var/addressed_to = "" + var/address_option = tgui_input_list(usr, "Address it to the sender or custom?", "Fax Template", list("Sender", "Custom")) + if(address_option == "Sender") + addressed_to = "[H.real_name]" + else if(address_option == "Custom") + addressed_to = input(src.owner, "Enter Addressee Line", "Outgoing message from CLF", "") as message|null + if(!addressed_to) + return + else + return + var/message_body = input(src.owner, "Enter Message Body, use

          for paragraphs", "Outgoing message from CLF", "") as message|null + if(!message_body) + return + var/sent_by = input(src.owner, "Enter JUST the name you are sending this from", "Outgoing message from CLF", "") as message|null + if(!sent_by) + return + fax_message = new(generate_templated_fax(0, "COLONIAL LIBERATION FRONT - COLONIAL COUNCIL OF LIBERATION", subject, addressed_to, message_body, sent_by, "Guerilla Forces Command", "Colonial Liberation Front")) + show_browser(usr, "[fax_message.data]", "PREVIEW OF CLF FAX", "size=500x400") + var/send_choice = tgui_input_list(usr, "Send this fax?", "Fax Confirmation", list("Send", "Cancel")) + if(send_choice != "Send") + return + GLOB.fax_contents += fax_message // save a copy + + var/customname = input(src.owner, "Pick a title for the report", "Title") as text|null + if(!customname) + return + + GLOB.CLFFaxes.Add("\[view '[customname]' from [key_name(usr)] at [time2text(world.timeofday, "hh:mm:ss")]\]") //Add replies so that mods know what the hell is goin on with the RP + + var/msg_ghost = SPAN_NOTICE("COLONIAL LIBERATION FRONT FAX REPLY: ") + msg_ghost += "Transmitting '[customname]' via secure connection ... " + msg_ghost += "view message" + announce_fax( ,msg_ghost) + + for(var/obj/structure/machinery/faxmachine/F in GLOB.machines) + if(F == fax) + if(!(F.inoperable())) + + // animate! it's alive! + flick("faxreceive", F) + + // give the sprite some time to flick + spawn(20) + var/obj/item/paper/P = new /obj/item/paper( F.loc ) + P.name = "Colonial Liberation Front - [customname]" + P.info = fax_message.data + P.update_icon() + + playsound(F.loc, "sound/machines/fax.ogg", 15) + + // Stamps + var/image/stampoverlay = image('icons/obj/items/paper.dmi') + stampoverlay.icon_state = "paper_stamp-clf" + if(!P.stamped) + P.stamped = new + P.stamped += /obj/item/tool/stamp + P.overlays += stampoverlay + P.stamps += "
          This paper has been stamped and encrypted by the Colonial Liberation Front Quantum Relay (tm)." + + to_chat(src.owner, "Message reply to transmitted successfully.") + message_admins(SPAN_STAFF_IC("[key_name_admin(src.owner)] replied to a fax message from [key_name_admin(H)]"), 1) + return + to_chat(src.owner, "/red Unable to locate fax!") + else if(href_list["CMBFaxReply"]) var/mob/living/carbon/human/H = locate(href_list["CMBFaxReply"]) var/obj/structure/machinery/faxmachine/fax = locate(href_list["originfax"]) @@ -1550,10 +1950,10 @@ alert("Removed:\n" + jointext(removed_paths, "\n")) var/list/offset = splittext(href_list["offset"],",") - var/number = dd_range(1, 100, text2num(href_list["object_count"])) - var/X = offset.len > 0 ? text2num(offset[1]) : 0 - var/Y = offset.len > 1 ? text2num(offset[2]) : 0 - var/Z = offset.len > 2 ? text2num(offset[3]) : 0 + var/number = clamp(text2num(href_list["object_count"]), 1, 100) + var/X = length(offset) > 0 ? text2num(offset[1]) : 0 + var/Y = length(offset) > 1 ? text2num(offset[2]) : 0 + var/Z = length(offset) > 2 ? text2num(offset[3]) : 0 var/tmp_dir = href_list["object_dir"] var/obj_dir = tmp_dir ? text2num(tmp_dir) : 2 if(!obj_dir || !(obj_dir in list(1,2,4,8,5,6,9,10))) @@ -1848,6 +2248,21 @@ return return remove_tagged_datum(datum_to_remove) + if(href_list["view_bug_report"]) + if(!check_rights(R_ADMIN|R_MOD)) + return + + var/datum/tgui_bug_report_form/bug_report = locate(href_list["view_bug_report"]) + if(!istype(bug_report) || QDELETED(bug_report)) + to_chat(usr, SPAN_WARNING("This bug report is no longer available.")) + return + + if(!bug_report.assign_admin(usr)) + return + + bug_report.tgui_interact(usr) + return + if(href_list["show_tags"]) if(!check_rights(R_ADMIN)) return diff --git a/code/modules/admin/topic/topic_chems.dm b/code/modules/admin/topic/topic_chems.dm index 77e1c0c6d1b8..4da2c55cb5ad 100644 --- a/code/modules/admin/topic/topic_chems.dm +++ b/code/modules/admin/topic/topic_chems.dm @@ -286,7 +286,7 @@ response = alert(usr,"What do you want customized?","Custom reaction [target]","Add component","Add catalyst","Finish") else return - if(R.required_reagents.len < 3) + if(length(R.required_reagents) < 3) to_chat(usr,SPAN_WARNING("You need to add at least 3 components excluding catalysts. The reaction has not been saved.")) return //Save our reaction diff --git a/code/modules/admin/topic/topic_events.dm b/code/modules/admin/topic/topic_events.dm index 0c37e81f2641..6529dea20670 100644 --- a/code/modules/admin/topic/topic_events.dm +++ b/code/modules/admin/topic/topic_events.dm @@ -93,6 +93,63 @@ message_admins("[key_name_admin(usr)] added [amount] research credits.") GLOB.chemical_data.update_credits(amount) + if("xenothumbs") + var/grant = alert(usr, "Do you wish to grant or revoke Xenomorph firearms permits?", "Give or Take", "Grant", "Revoke", "Cancel") + if(grant == "Cancel") + return + + var/list/mob/living/carbon/xenomorph/permit_recipients = list() + var/list/datum/hive_status/permit_hives = list() + switch(alert(usr, "Do you wish to do this for one Xeno or an entire hive?", "Recipients", "Xeno", "Hive", "All Xenos")) + if("Xeno") + permit_recipients += tgui_input_list(usr, "Select recipient Xenomorph:", "Armed Xenomorph", GLOB.living_xeno_list) + if(isnull(permit_recipients[1])) //Cancel button. + return + if("Hive") + permit_hives += GLOB.hive_datum[tgui_input_list(usr, "Select recipient hive:", "Armed Hive", GLOB.hive_datum)] + if(isnull(permit_hives[1])) //Cancel button. + return + permit_recipients = permit_hives[1].totalXenos.Copy() + if("All Xenos") + permit_recipients = GLOB.living_xeno_list.Copy() + for(var/H in GLOB.hive_datum) + permit_hives += GLOB.hive_datum[H] + + var/list/handled_xenos = list() + + for(var/mob/living/carbon/xenomorph/xeno as anything in permit_recipients) + if(QDELETED(xeno) || xeno.stat == DEAD) //Xenos might die before the admin picks them. + to_chat(usr, SPAN_HIGHDANGER("[xeno] died before her firearms permit could be issued!")) + continue + if(HAS_TRAIT(xeno, TRAIT_OPPOSABLE_THUMBS)) + if(grant == "Revoke") + REMOVE_TRAIT(xeno, TRAIT_OPPOSABLE_THUMBS, TRAIT_SOURCE_HIVE) + to_chat(xeno, SPAN_XENOANNOUNCE("You forget how thumbs work. You feel a terrible sense of loss.")) + handled_xenos += xeno + else if(grant == "Grant") + ADD_TRAIT(xeno, TRAIT_OPPOSABLE_THUMBS, TRAIT_SOURCE_HIVE) + to_chat(xeno, SPAN_XENOANNOUNCE("You suddenly comprehend the magic of opposable thumbs along with surprising kinesthetic intelligence. You could do... so much with this knowledge.")) + handled_xenos += xeno + + for(var/datum/hive_status/permit_hive as anything in permit_hives) + //Give or remove the trait from newly-born xenos in this hive. + if(grant == "Grant") + LAZYADD(permit_hive.hive_inherant_traits, TRAIT_OPPOSABLE_THUMBS) + else + LAZYREMOVE(permit_hive.hive_inherant_traits, TRAIT_OPPOSABLE_THUMBS) + + if(!length(handled_xenos) && !length(permit_hives)) + return + + if(grant == "Grant") + message_admins("[usr] granted 2nd Amendment rights to [length(handled_xenos) > 1 ? "[length(handled_xenos)] xenos" : "[length(handled_xenos) == 1 ? "[handled_xenos[1]]" : "no xenos"]"]\ + [length(permit_hives) > 1 ? " in all hives, and to any new xenos. Quite possibly we will all regret this." : "[length(permit_hives) == 1 ? " in [permit_hives[1]], and to any new xenos in that hive." : "."]"]") + else + message_admins("[usr] revoked 2nd Amendment rights from [length(handled_xenos) > 1 ? "[length(handled_xenos)] xenos" : "[length(handled_xenos) == 1 ? "[handled_xenos[1]]" : "no xenos"]"]\ + [length(permit_hives) > 1 ? " in all hives, and from any new xenos." : "[length(permit_hives) == 1 ? " in [permit_hives[1]], and from any new xenos in that hive." : "."]"]") + + + /datum/admins/proc/create_humans_list(href_list) if(SSticker?.current_state < GAME_STATE_PLAYING) alert("Please wait until the game has started before spawning humans") @@ -108,8 +165,8 @@ alert("Select fewer paths, (max 1)") return - var/humans_to_spawn = dd_range(1, 100, text2num(href_list["object_count"])) - var/range_to_spawn_on = dd_range(0, 10, text2num(href_list["object_range"])) + var/humans_to_spawn = clamp(text2num(href_list["object_count"]), 1, 100) + var/range_to_spawn_on = clamp(text2num(href_list["object_range"]), 0, 10) var/free_the_humans = FALSE var/offer_as_ert = FALSE @@ -134,7 +191,7 @@ var/turf/spawn_turf if(range_to_spawn_on) - for(spawn_turf in range(initial_turf, range_to_spawn_on)) + for(spawn_turf in range(range_to_spawn_on, initial_turf)) if(!spawn_turf || istype(spawn_turf, /turf/closed)) continue turfs += spawn_turf @@ -202,9 +259,10 @@ var/datum/emergency_call/custom/em_call = new() var/name = input(usr, "Please name your ERT", "ERT Name", "Admin spawned humans") em_call.name = name - em_call.mob_max = humans.len + em_call.mob_max = length(humans) em_call.players_to_offer = humans em_call.owner = owner + var/quiet_launch = TRUE var/ql_prompt = tgui_alert(usr, "Would you like to broadcast the beacon launch? This will reveal the distress beacon to all players.", "Announce distress beacon?", list("Yes", "No"), 20 SECONDS) if(ql_prompt == "Yes") @@ -214,7 +272,7 @@ var/ar_prompt = tgui_alert(usr, "Would you like to announce the beacon received message? This will reveal the distress beacon to all players.", "Announce beacon received?", list("Yes", "No"), 20 SECONDS) if(ar_prompt == "Yes") announce_receipt = TRUE - log_debug("ERT DEBUG (CUSTOM SET): [quiet_launch] - [announce_receipt]") + em_call.activate(quiet_launch, announce_receipt) message_admins("[key_name_admin(usr)] created [humans_to_spawn] humans as [job_name] at [get_area(initial_spot)]") @@ -241,8 +299,8 @@ alert("Select fewer xeno paths, (max 1)") return - var/xenos_to_spawn = dd_range(1, 100, text2num(href_list["object_count"])) - var/range_to_spawn_on = dd_range(0, 10, text2num(href_list["object_range"])) + var/xenos_to_spawn = clamp(text2num(href_list["object_count"]), 1, 100) + var/range_to_spawn_on = clamp(text2num(href_list["object_range"]), 0, 10) var/free_the_xenos = FALSE var/offer_as_ert = FALSE @@ -259,7 +317,7 @@ var/turf/spawn_turf if(range_to_spawn_on) - for(spawn_turf in range(initial_turf, range_to_spawn_on)) + for(spawn_turf in range(range_to_spawn_on, initial_turf)) if(!spawn_turf || istype(spawn_turf, /turf/closed)) continue turfs += spawn_turf @@ -285,27 +343,24 @@ xenos += X - if (offer_as_ert) + if(offer_as_ert) var/datum/emergency_call/custom/em_call = new() var/name = input(usr, "Please name your ERT", "ERT Name", "Admin spawned xenos") em_call.name = name - em_call.mob_max = xenos.len + em_call.mob_max = length(xenos) em_call.players_to_offer = xenos em_call.owner = owner - var/launch_broadcast = tgui_alert(usr, "Would you like to broadcast the beacon launch? This will reveal the distress beacon to all players.", "Announce distress beacon?", list("Yes", "No"), 20 SECONDS) - if(launch_broadcast == "Yes") - launch_broadcast = TRUE - else - launch_broadcast = FALSE + var/quiet_launch = TRUE + var/ql_prompt = tgui_alert(usr, "Would you like to broadcast the beacon launch? This will reveal the distress beacon to all players.", "Announce distress beacon?", list("Yes", "No"), 20 SECONDS) + if(ql_prompt == "Yes") + quiet_launch = FALSE - var/announce_receipt = tgui_alert(usr, "Would you like to announce the beacon received message? This will reveal the distress beacon to all players.", "Announce beacon received?", list("Yes", "No"), 20 SECONDS) - if(announce_receipt == "Yes") + var/announce_receipt = FALSE + var/ar_prompt = tgui_alert(usr, "Would you like to announce the beacon received message? This will reveal the distress beacon to all players.", "Announce beacon received?", list("Yes", "No"), 20 SECONDS) + if(ar_prompt == "Yes") announce_receipt = TRUE - else - announce_receipt = FALSE - em_call.activate(launch_broadcast, announce_receipt) + em_call.activate(quiet_launch, announce_receipt) message_admins("[key_name_admin(usr)] created [xenos_to_spawn] xenos as [xeno_caste] at [get_area(initial_spot)]") - diff --git a/code/modules/admin/topic/topic_teleports.dm b/code/modules/admin/topic/topic_teleports.dm index 8a5360169999..d90aa736b9f6 100644 --- a/code/modules/admin/topic/topic_teleports.dm +++ b/code/modules/admin/topic/topic_teleports.dm @@ -83,10 +83,10 @@ for(var/mob/living/M in range(collect_range, owner.mob)) if(M.stat != DEAD) targets.Add(M) - if(targets.len < 1) + if(length(targets) < 1) to_chat(owner, SPAN_ALERT("No alive /living mobs found. Aborting.")) return - if(alert(owner, "[targets.len] mobs were marked for teleportation. Pressing \"TELEPORT\" will teleport them to your location at the moment of pressing button.", "Confirmation", "Teleport", "Cancel") == "Cancel") + if(alert(owner, "[length(targets)] mobs were marked for teleportation. Pressing \"TELEPORT\" will teleport them to your location at the moment of pressing button.", "Confirmation", "Teleport", "Cancel") == "Cancel") return for(var/mob/M in targets) if(!M) @@ -94,7 +94,7 @@ M.on_mob_jump() M.forceMove(get_turf(owner.mob)) - message_admins(WRAP_STAFF_LOG(owner.mob, "mass-teleported [targets.len] mobs in [collect_range] tiles range to themselves in [get_area(owner.mob)] ([owner.mob.x],[owner.mob.y],[owner.mob.z])."), owner.mob.x, owner.mob.y, owner.mob.z) + message_admins(WRAP_STAFF_LOG(owner.mob, "mass-teleported [length(targets)] mobs in [collect_range] tiles range to themselves in [get_area(owner.mob)] ([owner.mob.x],[owner.mob.y],[owner.mob.z])."), owner.mob.x, owner.mob.y, owner.mob.z) if("teleport_mobs_by_faction") var/faction = tgui_input_list(owner, "Choose between humanoids and xenomorphs.", "Mobs Choice", list("Humanoids", "Xenomorphs")) @@ -109,10 +109,10 @@ var/area/AR = get_area(H) if(H.faction != faction || AR.statistic_exempt) targets.Remove(H) - if(targets.len < 1) + if(length(targets) < 1) to_chat(owner, SPAN_ALERT("No alive /human mobs of [faction] faction were found. Aborting.")) return - if(alert(owner, "[targets.len] humanoids of [faction] faction were marked for teleportation. Pressing \"TELEPORT\" will teleport them to your location at the moment of pressing button.", "Confirmation", "Teleport", "Cancel") == "Cancel") + if(alert(owner, "[length(targets)] humanoids of [faction] faction were marked for teleportation. Pressing \"TELEPORT\" will teleport them to your location at the moment of pressing button.", "Confirmation", "Teleport", "Cancel") == "Cancel") return for(var/mob/M in targets) @@ -121,7 +121,7 @@ M.on_mob_jump() M.forceMove(get_turf(owner.mob)) - message_admins(WRAP_STAFF_LOG(owner.mob, "mass-teleported [targets.len] human mobs of [faction] faction to themselves in [get_area(owner.mob)] ([owner.mob.x],[owner.mob.y],[owner.mob.z])."), owner.mob.x, owner.mob.y, owner.mob.z) + message_admins(WRAP_STAFF_LOG(owner.mob, "mass-teleported [length(targets)] human mobs of [faction] faction to themselves in [get_area(owner.mob)] ([owner.mob.x],[owner.mob.y],[owner.mob.z])."), owner.mob.x, owner.mob.y, owner.mob.z) else if(faction == "Xenomorphs") faction = null @@ -141,10 +141,10 @@ var/area/AR = get_area(X) if(X.stat == DEAD || AR.statistic_exempt) targets.Remove(X) - if(targets.len < 1) + if(length(targets) < 1) to_chat(owner, SPAN_ALERT("No alive xenomorphs of [faction] Hive were found. Aborting.")) return - if(alert(owner, "[targets.len] xenomorphs of [faction] Hive were marked for teleportation. Pressing \"TELEPORT\" will teleport them to your location at the moment of pressing button.", "Confirmation", "Teleport", "Cancel") == "Cancel") + if(alert(owner, "[length(targets)] xenomorphs of [faction] Hive were marked for teleportation. Pressing \"TELEPORT\" will teleport them to your location at the moment of pressing button.", "Confirmation", "Teleport", "Cancel") == "Cancel") return for(var/mob/M in targets) @@ -153,25 +153,25 @@ M.on_mob_jump() M.forceMove(get_turf(owner.mob)) - message_admins(WRAP_STAFF_LOG(owner.mob, "mass-teleported [targets.len] xenomorph mobs of [faction] Hive to themselves in [get_area(owner.mob)] ([owner.mob.x],[owner.mob.y],[owner.mob.z])."), owner.mob.x, owner.mob.y, owner.mob.z) + message_admins(WRAP_STAFF_LOG(owner.mob, "mass-teleported [length(targets)] xenomorph mobs of [faction] Hive to themselves in [get_area(owner.mob)] ([owner.mob.x],[owner.mob.y],[owner.mob.z])."), owner.mob.x, owner.mob.y, owner.mob.z) else to_chat(owner, SPAN_ALERT("Mobs choice error. Aborting.")) return if("teleport_corpses") - if(GLOB.dead_mob_list.len < 0) + if(length(GLOB.dead_mob_list) < 0) to_chat(owner, SPAN_ALERT("No corpses found. Aborting.")) return - if(alert(owner, "[GLOB.dead_mob_list.len] corpses are marked for teleportation. Pressing \"TELEPORT\" will teleport them to your location at the moment of pressing button.", "Confirmation", "Teleport", "Cancel") == "Cancel") + if(alert(owner, "[length(GLOB.dead_mob_list)] corpses are marked for teleportation. Pressing \"TELEPORT\" will teleport them to your location at the moment of pressing button.", "Confirmation", "Teleport", "Cancel") == "Cancel") return for(var/mob/M in GLOB.dead_mob_list) if(!M) continue M.on_mob_jump() M.forceMove(get_turf(owner.mob)) - message_admins(WRAP_STAFF_LOG(owner.mob, "mass-teleported [GLOB.dead_mob_list.len] corpses to themselves in [get_area(owner.mob)] ([owner.mob.x],[owner.mob.y],[owner.mob.z])."), owner.mob.x, owner.mob.y, owner.mob.z) + message_admins(WRAP_STAFF_LOG(owner.mob, "mass-teleported [length(GLOB.dead_mob_list)] corpses to themselves in [get_area(owner.mob)] ([owner.mob.x],[owner.mob.y],[owner.mob.z])."), owner.mob.x, owner.mob.y, owner.mob.z) if("teleport_items_by_type") var/item = input(owner,"What item?", "Item Fetcher","") as text|null @@ -186,11 +186,11 @@ if(findtext("[path]", item)) matches += path - if(matches.len==0) + if(length(matches)==0) return var/chosen - if(matches.len==1) + if(length(matches)==1) chosen = matches[1] else //If we have multiple options, let them select which one they meant @@ -205,11 +205,11 @@ if(istype(M, chosen)) targets += M - if(targets.len < 1) + if(length(targets) < 1) to_chat(owner, SPAN_ALERT("No items of type [chosen] were found. Aborting.")) return - if(alert(owner, "[targets.len] items are marked for teleportation. Pressing \"TELEPORT\" will teleport them to your location at the moment of pressing button.", "Confirmation", "Teleport", "Cancel") == "Cancel") + if(alert(owner, "[length(targets)] items are marked for teleportation. Pressing \"TELEPORT\" will teleport them to your location at the moment of pressing button.", "Confirmation", "Teleport", "Cancel") == "Cancel") return //Fetch the items @@ -218,4 +218,4 @@ continue M.forceMove(get_turf(owner.mob)) - message_admins(WRAP_STAFF_LOG(owner.mob, "mass-teleported [targets.len] items of type [chosen] to themselves in [get_area(owner.mob)] ([owner.mob.x],[owner.mob.y],[owner.mob.z])."), owner.mob.x, owner.mob.y, owner.mob.z) + message_admins(WRAP_STAFF_LOG(owner.mob, "mass-teleported [length(targets)] items of type [chosen] to themselves in [get_area(owner.mob)] ([owner.mob.x],[owner.mob.y],[owner.mob.z])."), owner.mob.x, owner.mob.y, owner.mob.z) diff --git a/code/modules/admin/verbs/SDQL2/SDQL_2.dm b/code/modules/admin/verbs/SDQL2/SDQL_2.dm index 05da6d3c8672..71b288dcda8f 100644 --- a/code/modules/admin/verbs/SDQL2/SDQL_2.dm +++ b/code/modules/admin/verbs/SDQL2/SDQL_2.dm @@ -113,12 +113,13 @@ Here's a slightly more formal quick reference. - The 4 queries you can do are: + The 5 queries you can do are: "SELECT " "CALL ON " "UPDATE SET var=,var2=" "DELETE " + "SINGLECALL ." "" in this context is " [IN ] [chain of MAP/WHERE modifiers]" @@ -155,11 +156,13 @@ Add USING keyword to the front of the query to use options system The defaults aren't necessarily implemented, as there is no need to. Available options: (D) means default - PROCCALL = (D)ASYNC, BLOCKING - SELECT = FORCE_NULLS, (D)SKIP_NULLS + PROCCALL = (D) ASYNC, BLOCKING + SELECT = FORCE_NULLS, (D) SKIP_NULLS PRIORITY = HIGH, (D) NORMAL AUTOGC = (D) AUTOGC, KEEP_ALIVE SEQUENTIAL = TRUE - The queries in this batch will be executed sequentially one by one not in parallel + LISTSOURCE = OPTIMIZED, (D) UNOPTIMIZED + SELECTPRINT = (D) OUTPUT_POPUP, NO_OUTPUT_POPUP Example: USING PROCCALL = BLOCKING, SELECT = FORCE_NULLS, PRIORITY = HIGH SELECT /mob FROM world WHERE z == 1 @@ -174,21 +177,31 @@ #define SDQL2_STATE_SWITCHING 5 #define SDQL2_STATE_HALTING 6 -#define SDQL2_VALID_OPTION_TYPES list("proccall", "select", "priority", "autogc" , "sequential") -#define SDQL2_VALID_OPTION_VALUES list("async", "blocking", "force_nulls", "skip_nulls", "high", "normal", "keep_alive" , "true") +#define SDQL2_VALID_OPTION_TYPES list("proccall", "select", "priority", "autogc" , "sequential", "listsource", "selectprint") +#define SDQL2_VALID_OPTION_VALUES list("async", "blocking", "force_nulls", "skip_nulls", "high", "normal", "keep_alive" , "true", "optimized", "no_output") +/// Don't print nulls that the select picked up. Enabled by default #define SDQL2_OPTION_SELECT_OUTPUT_SKIP_NULLS (1<<0) +/// Require proccalls to finish before continuing the query #define SDQL2_OPTION_BLOCKING_CALLS (1<<1) -#define SDQL2_OPTION_HIGH_PRIORITY (1<<2) //High priority SDQL query, allow using almost all of the tick. +/// High priority SDQL query, allow using almost all of the tick. +#define SDQL2_OPTION_HIGH_PRIORITY (1<<2) +/// Do not delete the query after its completion #define SDQL2_OPTION_DO_NOT_AUTOGC (1<<3) +/// Queries chained together with ; will execute in series instead of in parallel #define SDQL2_OPTION_SEQUENTIAL (1<<4) +/// Change to GLOB.mob_list for /mob or etc. automatically if we're iterating over world. +/// This isn't default because SDQL2 is a technical tool that should be as failure-safe as possible (such as a mob not being added to GLOB.mob_list, for example) +#define SDQL2_OPTION_OPTIMIZED_SOURCE (1<<5) +/// When using SELECT, don't print a popup. Makes SELECT vastly faster. +#define SDQL2_OPTION_NO_OUTPUT_POPUP (1<<6) #define SDQL2_OPTIONS_DEFAULT (SDQL2_OPTION_SELECT_OUTPUT_SKIP_NULLS) #define SDQL2_IS_RUNNING (state == SDQL2_STATE_EXECUTING || state == SDQL2_STATE_SEARCHING || state == SDQL2_STATE_SWITCHING || state == SDQL2_STATE_PRESEARCH) #define SDQL2_HALT_CHECK if(!SDQL2_IS_RUNNING) {state = SDQL2_STATE_HALTING; return FALSE;}; -#define SDQL2_TICK_CHECK ((options & SDQL2_OPTION_HIGH_PRIORITY)? CHECK_TICK_HIGH_PRIORITY : CHECK_TICK) +#define SDQL2_TICK_CHECK ((options & SDQL2_OPTION_HIGH_PRIORITY) ? CHECK_TICK_HIGH_PRIORITY : CHECK_TICK) #define SDQL2_STAGE_SWITCH_CHECK if(state != SDQL2_STATE_SWITCHING){\ if(state == SDQL2_STATE_HALTING){\ @@ -206,12 +219,12 @@ var/prompt = tgui_alert(usr, "Run SDQL2 Query?", "SDQL2", list("Yes", "Cancel")) if (prompt != "Yes") return - var/list/results = world.SDQL2_query(query_text, key_name_admin(usr), "[key_name(usr)]") + var/list/results = world.SDQL2_query(query_text, key_name_admin(usr), "[key_name(usr)]", executor = src) if(length(results) == 3) for(var/I in 1 to 3) to_chat(usr, results[I], confidential = TRUE) -/world/proc/SDQL2_query(query_text, log_entry1, log_entry2, silent = FALSE) +/world/proc/SDQL2_query(query_text, log_entry1, log_entry2, silent = FALSE, client/executor) var/query_log = "executed SDQL query(s): \"[query_text]\"." if(!silent) message_admins("[log_entry1] [query_log]") @@ -243,6 +256,8 @@ if(query.options & SDQL2_OPTION_SEQUENTIAL) sequential = TRUE + SSstatpanels.set_SDQL2_tab(executor) + if(sequential) //Start first one var/datum/sdql2_query/query = popleft(waiting_queue) running += query @@ -492,6 +507,14 @@ GLOBAL_DATUM_INIT(sdql2_vv_statobj, /obj/effect/statclick/sdql2_vv_all, new(null switch(value) if("true") options |= SDQL2_OPTION_SEQUENTIAL + if("listsource") + switch(value) + if("optimized") + options |= SDQL2_OPTION_OPTIMIZED_SOURCE + if("selectprint") + switch(value) + if("no_output") + options |= SDQL2_OPTION_NO_OUTPUT_POPUP /datum/sdql2_query/proc/ARun() INVOKE_ASYNC(src, PROC_REF(Run)) @@ -515,7 +538,11 @@ GLOBAL_DATUM_INIT(sdql2_vv_statobj, /obj/effect/statclick/sdql2_vv_all, new(null SDQL2_STAGE_SWITCH_CHECK state = SDQL2_STATE_SEARCHING - var/list/found = Search(search_tree) + var/list/found = list() + if(length(search_tree)) + found = Search(search_tree) + else + state = SDQL2_STATE_SWITCHING SDQL2_STAGE_SWITCH_CHECK state = SDQL2_STATE_EXECUTING @@ -532,7 +559,7 @@ GLOBAL_DATUM_INIT(sdql2_vv_statobj, /obj/effect/statclick/sdql2_vv_all, new(null var/mob/showmob = C.mob to_chat(showmob, "SDQL query results: [get_query_text()]
          \ SDQL query completed: [islist(obj_count_all)? length(obj_count_all) : obj_count_all] objects selected by path, and \ - [where_switched? "[islist(obj_count_eligible)? length(obj_count_eligible) : obj_count_eligible] objects executed on after WHERE keyword selection." : ""]
          \ + [where_switched? "[islist(obj_count_eligible)? length(obj_count_eligible) : obj_count_eligible] objects executed on after WHERE keyword selection." : "no execution performed."]
          \ SDQL query took [DisplayTimeText(end_time - start_time)] to complete.
          ", confidential = TRUE) if(length(select_text)) var/text = islist(select_text)? select_text.Join() : select_text @@ -568,7 +595,7 @@ GLOBAL_DATUM_INIT(sdql2_vv_statobj, /obj/effect/statclick/sdql2_vv_all, new(null // 1 and 2 are type and FROM. var/i = 3 - while (i <= tree.len) + while (i <= length(tree)) var/key = tree[i++] var/list/expression = tree[i++] switch (key) @@ -627,8 +654,45 @@ GLOBAL_DATUM_INIT(sdql2_vv_statobj, /obj/effect/statclick/sdql2_vv_all, new(null type = text2path(type) var/typecache = typecacheof(type) - if(ispath(type, /mob)) - for(var/mob/d in location) + if(ispath(type, /mob/living/carbon/human)) + var/list/search_location = location + if((location == world) && (options & SDQL2_OPTION_OPTIMIZED_SOURCE)) + search_location = GLOB.human_mob_list + + for(var/mob/living/carbon/human/d in search_location) + if(typecache[d.type] && (d.can_vv_get() || superuser)) + out += d + SDQL2_TICK_CHECK + SDQL2_HALT_CHECK + + else if(ispath(type, /mob/living/carbon/xenomorph)) + var/list/search_location = location + if((location == world) && (options & SDQL2_OPTION_OPTIMIZED_SOURCE)) + search_location = GLOB.xeno_mob_list + + for(var/mob/living/carbon/xenomorph/d in search_location) + if(typecache[d.type] && (d.can_vv_get() || superuser)) + out += d + SDQL2_TICK_CHECK + SDQL2_HALT_CHECK + + else if(ispath(type, /mob/living)) + var/list/search_location = location + if((location == world) && (options & SDQL2_OPTION_OPTIMIZED_SOURCE)) + search_location = GLOB.living_mob_list + + for(var/mob/living/d in search_location) + if(typecache[d.type] && (d.can_vv_get() || superuser)) + out += d + SDQL2_TICK_CHECK + SDQL2_HALT_CHECK + + else if(ispath(type, /mob)) + var/list/search_location = location + if((location == world) && (options & SDQL2_OPTION_OPTIMIZED_SOURCE)) + search_location = GLOB.mob_list + + for(var/mob/d in search_location) if(typecache[d.type] && (d.can_vv_get() || superuser)) out += d SDQL2_TICK_CHECK @@ -641,6 +705,61 @@ GLOBAL_DATUM_INIT(sdql2_vv_statobj, /obj/effect/statclick/sdql2_vv_all, new(null SDQL2_TICK_CHECK SDQL2_HALT_CHECK + else if(ispath(type, /obj/item/weapon/gun)) + var/list/search_location = location + if((location == world) && (options & SDQL2_OPTION_OPTIMIZED_SOURCE)) + search_location = GLOB.gun_list + + for(var/obj/item/weapon/gun/d in search_location) + if(typecache[d.type] && (d.can_vv_get() || superuser)) + out += d + SDQL2_TICK_CHECK + SDQL2_HALT_CHECK + + else if(ispath(type, /obj/item/ammo_magazine)) + var/list/search_location = location + if((location == world) && (options & SDQL2_OPTION_OPTIMIZED_SOURCE)) + search_location = GLOB.ammo_magazine_list + + for(var/obj/item/ammo_magazine/d in search_location) + if(typecache[d.type] && (d.can_vv_get() || superuser)) + out += d + SDQL2_TICK_CHECK + SDQL2_HALT_CHECK + + else if(ispath(type, /obj/vehicle/multitile)) + var/list/search_location = location + if((location == world) && (options & SDQL2_OPTION_OPTIMIZED_SOURCE)) + search_location = GLOB.all_multi_vehicles + + for(var/obj/item/ammo_magazine/d in search_location) + if(typecache[d.type] && (d.can_vv_get() || superuser)) + out += d + SDQL2_TICK_CHECK + SDQL2_HALT_CHECK + + else if(ispath(type, /obj/structure/closet)) + var/list/search_location = location + if((location == world) && (options & SDQL2_OPTION_OPTIMIZED_SOURCE)) + search_location = GLOB.closet_list + + for(var/obj/item/ammo_magazine/d in search_location) + if(typecache[d.type] && (d.can_vv_get() || superuser)) + out += d + SDQL2_TICK_CHECK + SDQL2_HALT_CHECK + + else if(ispath(type, /obj/structure/cable)) + var/list/search_location = location + if((location == world) && (options & SDQL2_OPTION_OPTIMIZED_SOURCE)) + search_location = GLOB.cable_list + + for(var/obj/item/ammo_magazine/d in search_location) + if(typecache[d.type] && (d.can_vv_get() || superuser)) + out += d + SDQL2_TICK_CHECK + SDQL2_HALT_CHECK + else if(ispath(type, /obj)) for(var/obj/d in location) if(typecache[d.type] && (d.can_vv_get() || superuser)) @@ -662,6 +781,17 @@ GLOBAL_DATUM_INIT(sdql2_vv_statobj, /obj/effect/statclick/sdql2_vv_all, new(null SDQL2_TICK_CHECK SDQL2_HALT_CHECK + else if(ispath(type, /client)) + var/list/search_location = location + if(location == world) // clients aren't picked up by an in world loop + search_location = GLOB.clients + + for(var/client/d in search_location) + if(d.can_vv_get() || superuser) + out += d + SDQL2_TICK_CHECK + SDQL2_HALT_CHECK + else if(ispath(type, /datum)) if(location == world) //snowflake for byond shortcut for(var/datum/d) //stupid byond trick to have it not return atoms to make this less laggy @@ -675,7 +805,7 @@ GLOBAL_DATUM_INIT(sdql2_vv_statobj, /obj/effect/statclick/sdql2_vv_all, new(null out += d SDQL2_TICK_CHECK SDQL2_HALT_CHECK - obj_count_all = out.len + obj_count_all = length(out) return out /datum/sdql2_query/proc/Execute(list/found) @@ -692,6 +822,10 @@ GLOBAL_DATUM_INIT(sdql2_vv_statobj, /obj/effect/statclick/sdql2_vv_all, new(null SDQL2_TICK_CHECK SDQL2_HALT_CHECK + if("singlecall") + world.SDQL_var(null, query_tree["singlecall"][1], null, null, superuser, src) + obj_count_finished++ + if("delete") for(var/datum/d in found) qdel(d) @@ -704,7 +838,8 @@ GLOBAL_DATUM_INIT(sdql2_vv_statobj, /obj/effect/statclick/sdql2_vv_all, new(null var/print_nulls = !(options & SDQL2_OPTION_SELECT_OUTPUT_SKIP_NULLS) obj_count_finished = select_refs for(var/i in found) - SDQL_print(i, text_list, print_nulls) + if(!(options & SDQL2_OPTION_NO_OUTPUT_POPUP)) + SDQL_print(i, text_list, print_nulls) select_refs[REF(i)] = TRUE SDQL2_TICK_CHECK SDQL2_HALT_CHECK @@ -757,7 +892,7 @@ GLOBAL_DATUM_INIT(sdql2_vv_statobj, /obj/effect/statclick/sdql2_vv_all, new(null SDQL_print(x, text_list) if (!isnull(x) && !isnum(x) && obj_list[x] != null) text_list += " -> " - SDQL_print(obj_list[obj_list[x]]) + SDQL_print(obj_list[x]) text_list += "]
          " else if(isnull(object)) @@ -957,7 +1092,7 @@ GLOBAL_DATUM_INIT(sdql2_vv_statobj, /obj/effect/statclick/sdql2_vv_all, new(null for(var/val in query_list) if(val == ";") do_parse = 1 - else if(pos >= query_list.len) + else if(pos >= length(query_list)) query_tree += val do_parse = 1 @@ -1046,42 +1181,7 @@ GLOBAL_DATUM_INIT(sdql2_vv_statobj, /obj/effect/statclick/sdql2_vv_all, new(null else if(D != null && long && expression[start + 1] == ":" && hascall(D, expression[start])) v = expression[start] else if(!long || expression[start + 1] == ".") - switch(expression[start]) - if("usr") - v = usr - if("src") - v = source - if("marked") - if(usr?.client?.admin_holder?.marked_datum) - v = usr?.client?.admin_holder?.marked_datum - else - return null - if("world") - v = world - if("global") - v = GLOB - if("MC") - v = Master - if("FS") - v = Failsafe - if("CFG") - v = config - else - if(copytext(expression[start], 1, 3) == "SS") //Subsystem //3 == length("SS") + 1 - var/SSname = copytext_char(expression[start], 3) - var/SSlength = length(SSname) - var/datum/controller/subsystem/SS - var/SSmatch - for(var/_SS in Master.subsystems) - SS = _SS - if(copytext("[SS.type]", -SSlength) == SSname) - SSmatch = SS - break - if(!SSmatch) - return null - v = SSmatch - else - return null + v = SDQL2_special_obj_from_string(expression[start], source) else if(object == GLOB) // Shitty ass hack kill me. v = expression[start] if(long) @@ -1092,7 +1192,7 @@ GLOBAL_DATUM_INIT(sdql2_vv_statobj, /obj/effect/statclick/sdql2_vv_all, new(null else if(expression[start + 1] == "\[" && islist(v)) var/list/L = v var/index = query.SDQL_expression(source, expression[start + 2]) - if(isnum(index) && ((round(index) != index) || L.len < index)) + if(isnum(index) && ((floor(index) != index) || length(L) < index)) to_chat(usr, SPAN_DANGER("Invalid list index: [index]"), confidential = TRUE) return null return L[index] @@ -1206,8 +1306,45 @@ GLOBAL_DATUM_INIT(sdql2_vv_statobj, /obj/effect/statclick/sdql2_vv_all, new(null query_list += word return query_list +/proc/SDQL2_special_obj_from_string(input_text, datum/source) + switch(input_text) + if("usr") + return usr + if("src") + return source + if("marked") + if(usr?.client?.admin_holder?.marked_datum) + return usr?.client?.admin_holder?.marked_datum + else + return null + if("world") + return world + if("global") + return GLOB + if("MC") + return Master + if("FS") + return Failsafe + if("CFG") + return config + else + if(copytext(input_text, 1, 3) == "SS") //Subsystem //3 == length("SS") + 1 + var/SSname = copytext_char(input_text, 3) + var/SSlength = length(SSname) + var/datum/controller/subsystem/SS + var/SSmatch + for(var/_SS in Master.subsystems) + SS = _SS + if(copytext("[SS.type]", -SSlength) == SSname) + SSmatch = SS + break + if(!SSmatch) + return null + return SSmatch + else + return null -/obj/effect/statclick/SDQL2_delete/Click() +/obj/effect/statclick/SDQL2_delete/clicked() if(!CLIENT_IS_STAFF(usr.client)) message_admins("[key_name_admin(usr)] non-staff clicked on a statclick! ([src])") log_admin("non-staff clicked on a statclick! ([src])") @@ -1215,7 +1352,7 @@ GLOBAL_DATUM_INIT(sdql2_vv_statobj, /obj/effect/statclick/sdql2_vv_all, new(null var/datum/sdql2_query/Q = target Q.delete_click() -/obj/effect/statclick/SDQL2_action/Click() +/obj/effect/statclick/SDQL2_action/clicked() if(!CLIENT_IS_STAFF(usr.client)) message_admins("[key_name_admin(usr)] non-staff clicked on a statclick! ([src])") log_admin("non-staff clicked on a statclick! ([src])") @@ -1226,7 +1363,7 @@ GLOBAL_DATUM_INIT(sdql2_vv_statobj, /obj/effect/statclick/sdql2_vv_all, new(null /obj/effect/statclick/sdql2_vv_all name = "VIEW VARIABLES" -/obj/effect/statclick/sdql2_vv_all/Click() +/obj/effect/statclick/sdql2_vv_all/clicked() if(!CLIENT_IS_STAFF(usr.client)) message_admins("[key_name_admin(usr)] non-staff clicked on a statclick! ([src])") log_admin("non-staff clicked on a statclick! ([src])") diff --git a/code/modules/admin/verbs/SDQL2/SDQL_2_parser.dm b/code/modules/admin/verbs/SDQL2/SDQL_2_parser.dm index 9588e8dc9e94..27a4e961be05 100644 --- a/code/modules/admin/verbs/SDQL2/SDQL_2_parser.dm +++ b/code/modules/admin/verbs/SDQL2/SDQL_2_parser.dm @@ -61,7 +61,7 @@ /datum/sdql_parser/proc/parse_error(error_message) error = 1 to_chat(usr, SPAN_WARNING("SDQL2 Parsing Error: [error_message]"), confidential = TRUE) - return query.len + 1 + return length(query) + 1 /datum/sdql_parser/proc/parse() tree = list() @@ -73,14 +73,14 @@ return tree /datum/sdql_parser/proc/token(i) - if(i <= query.len) + if(i <= length(query)) return query[i] else return null /datum/sdql_parser/proc/tokens(i, num) - if(i + num <= query.len) + if(i + num <= length(query)) return query.Copy(i, i + num) else @@ -136,6 +136,9 @@ if("call") call_query(i, node) + if("singlecall") + singlecall_query(i, node) + if("explain") node += "explain" node["explain"] = list() @@ -196,6 +199,14 @@ return i +//singlecall_query: 'CALL' object.call_function +/datum/sdql_parser/proc/singlecall_query(i, list/node) + var/list/func = list() + i = variable(i + 1, func) + node["singlecall"] = func + + return i + // object_selectors: select_item [('FROM' | 'IN') from_item] [modifier_list] /datum/sdql_parser/proc/object_selectors(i, list/node) i = select_item(i, node) @@ -462,7 +473,7 @@ if (tok == ":") temp_expression_list = list() i = expression(i + 1, temp_expression_list) - expression_list[expression_list[expression_list.len]] = temp_expression_list + expression_list[expression_list[length(expression_list)]] = temp_expression_list temp_expression_list = null tok = token(i) if (tok != ",") diff --git a/code/modules/admin/verbs/SDQL2/SDQL_2_wrappers.dm b/code/modules/admin/verbs/SDQL2/SDQL_2_wrappers.dm index e046990b0ab7..64e6bb85bed6 100644 --- a/code/modules/admin/verbs/SDQL2/SDQL_2_wrappers.dm +++ b/code/modules/admin/verbs/SDQL2/SDQL_2_wrappers.dm @@ -175,8 +175,11 @@ /proc/_sin(X) return sin(X) +/proc/_sleep(Delay) + sleep(Delay) + /proc/_list_add(list/L, ...) - if (args.len < 2) + if (length(args) < 2) return L += args.Copy(2) @@ -196,7 +199,7 @@ return L.Join(Glue, Start, End) /proc/_list_remove(list/L, ...) - if (args.len < 2) + if (length(args) < 2) return L -= args.Copy(2) diff --git a/code/modules/admin/verbs/adminhelp.dm b/code/modules/admin/verbs/adminhelp.dm index 5f10b8d24d22..3dfba42032b3 100644 --- a/code/modules/admin/verbs/adminhelp.dm +++ b/code/modules/admin/verbs/adminhelp.dm @@ -58,7 +58,7 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new) ticket_list = resolved_tickets else CRASH("Invalid ticket state: [new_ticket.state]") - var/num_closed = ticket_list.len + var/num_closed = length(ticket_list) if(num_closed) for(var/I in 1 to num_closed) var/datum/admin_help/AH = ticket_list[I] @@ -97,8 +97,8 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new) SHOULD_NOT_SLEEP(TRUE) var/list/L = list() var/num_disconnected = 0 - L[++L.len] = list("Active Tickets:", "[astatclick.update("[active_tickets.len]")]", null, REF(astatclick)) - astatclick.update("[active_tickets.len]") + L[++L.len] = list("Active Tickets:", "[astatclick.update("[length(active_tickets)]")]", null, REF(astatclick)) + astatclick.update("[length(active_tickets)]") for(var/I in active_tickets) var/datum/admin_help/AH = I if(AH.initiator) @@ -108,8 +108,8 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new) ++num_disconnected if(num_disconnected) L[++L.len] = list("Disconnected:", "[astatclick.update("[num_disconnected]")]", null, REF(astatclick)) - L[++L.len] = list("Closed Tickets:", "[cstatclick.update("[closed_tickets.len]")]", null, REF(cstatclick)) - L[++L.len] = list("Resolved Tickets:", "[rstatclick.update("[resolved_tickets.len]")]", null, REF(rstatclick)) + L[++L.len] = list("Closed Tickets:", "[cstatclick.update("[length(closed_tickets)]")]", null, REF(cstatclick)) + L[++L.len] = list("Resolved Tickets:", "[rstatclick.update("[length(resolved_tickets)]")]", null, REF(rstatclick)) return L //Reassociate still open ticket if one exists @@ -300,7 +300,7 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new) webhook_sent = WEBHOOK_URGENT var/list/adm = get_admin_counts(R_BAN) var/list/activemins = adm["present"] - var/admin_number_present = activemins.len + var/admin_number_present = length(activemins) log_admin_private("Ticket #[id]: [key_name(initiator)]: [name] - heard by [admin_number_present] non-AFK admins who have +BAN.") if(admin_number_present <= 0) @@ -469,6 +469,14 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new) /datum/admin_help/proc/Close(key_name = key_name_admin(usr), silent = FALSE) if(state != AHELP_ACTIVE) return + + if(marked_admin != usr.ckey) + if(marked_admin) + to_chat(usr, SPAN_WARNING("This ticket is currently marked by [marked_admin]. Please override their mark to interact with this ticket!")) + else + to_chat(usr, SPAN_WARNING("This ticket is not currently marked. Please mark it first to interact with this ticket!")) + return + RemoveActive() state = AHELP_CLOSED GLOB.ahelp_tickets.ListInsert(src) @@ -483,6 +491,14 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new) /datum/admin_help/proc/Resolve(key_name = key_name_admin(usr), silent = FALSE) if(state != AHELP_ACTIVE) return + + if(marked_admin != usr.ckey) + if(marked_admin) + to_chat(usr, SPAN_WARNING("This ticket is currently marked by [marked_admin]. Please override their mark to interact with this ticket!")) + else + to_chat(usr, SPAN_WARNING("This ticket is not currently marked. Please mark it first to interact with this ticket!")) + return + RemoveActive() state = AHELP_RESOLVED GLOB.ahelp_tickets.ListInsert(src) @@ -501,6 +517,10 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new) if(state != AHELP_ACTIVE || !initial_message) return + if(marked_admin && marked_admin != usr.ckey) + to_chat(usr, SPAN_WARNING("This ticket is currently marked by [marked_admin]. Please override their mark to interact with this ticket!")) + return + if(!initiator.current_mhelp) initiator.current_mhelp = new(initiator) @@ -523,27 +543,28 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new) log_ahelp(id, "Defer", "Deferred to mentors by [usr.key]", null, usr.ckey) Close(silent = TRUE) -/datum/admin_help/proc/mark_ticket() +/datum/admin_help/proc/mark_ticket(mob/marking_admin) + var/mob/user = marking_admin || usr if(marked_admin) - if(marked_admin == usr.key) + if(marked_admin == user.ckey) unmark_ticket() return - to_chat(usr, SPAN_WARNING("This ticket has already been marked by [marked_admin].")) - var/unmark_option = tgui_alert(usr, "This message has been marked by [marked_admin]. Do you want to override?", "Marked Ticket", list("Overwrite Mark", "Unmark", "Cancel")) + to_chat(user, SPAN_WARNING("This ticket has already been marked by [marked_admin].")) + var/unmark_option = tgui_alert(user, "This message has been marked by [marked_admin]. Do you want to override?", "Marked Ticket", list("Overwrite Mark", "Unmark", "Cancel")) if(unmark_option == "Unmark") unmark_ticket() return if(unmark_option != "Overwrite Mark") return - var/key_name = key_name_admin(usr) + var/key_name = key_name_admin(user) AddInteraction("Marked by [key_name].", player_message = "Ticket marked!") to_chat(initiator, SPAN_ADMINHELP("An admin is preparing to respond to your ticket.")) var/msg = "Ticket [TicketHref("#[id]")] marked by [key_name]." message_admins(msg) log_admin_private(msg) - log_ahelp(id, "Marked", "Marked by [usr.key]", sender = usr.ckey) - marked_admin = usr.key + log_ahelp(id, "Marked", "Marked by [user.key]", sender = user.ckey) + marked_admin = user.ckey /datum/admin_help/proc/unmark_ticket() var/key_name = key_name_admin(usr) @@ -559,6 +580,13 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new) if(state != AHELP_ACTIVE) return + if(marked_admin != usr.ckey) + if(marked_admin) + to_chat(usr, SPAN_WARNING("This ticket is currently marked by [marked_admin]. Please override their mark to interact with this ticket!")) + else + to_chat(usr, SPAN_WARNING("This ticket is not currently marked. Please mark it first to interact with this ticket!")) + return + if(initiator) initiator.giveadminhelpverb() @@ -582,6 +610,13 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new) to_chat(usr, SPAN_WARNING("This ticket is already closed!")) return + if(marked_admin != usr.ckey) + if(marked_admin) + to_chat(usr, SPAN_WARNING("This ticket is currently marked by [marked_admin]. Please override their mark to interact with this ticket!")) + else + to_chat(usr, SPAN_WARNING("This ticket is not currently marked. Please mark it first to interact with this ticket!")) + return + var/chosen = tgui_input_list(usr, "Which auto response do you wish to send?", "AutoReply", GLOB.adminreplies) var/datum/autoreply/admin/response = GLOB.adminreplies[chosen] @@ -625,7 +660,7 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new) // Append any tickets also opened by this user if relevant var/list/related_tickets = GLOB.ahelp_tickets.TicketsByCKey(initiator_ckey) - if (related_tickets.len > 1) + if (length(related_tickets) > 1) dat += "
          Other Tickets by User
          " for (var/datum/admin_help/related_ticket in related_tickets) if (related_ticket.id == id) diff --git a/code/modules/admin/verbs/adminpanelweapons.dm b/code/modules/admin/verbs/adminpanelweapons.dm index 9fde4e96ebee..a8062e59eea8 100644 --- a/code/modules/admin/verbs/adminpanelweapons.dm +++ b/code/modules/admin/verbs/adminpanelweapons.dm @@ -108,13 +108,13 @@ picked_area = pick(GLOB.ship_areas) for(var/turf/my_turf in picked_area) turfs_of_area += my_turf - if(turfs_of_area.len > 0) + if(length(turfs_of_area) > 0) picked_atom = pick(turfs_of_area) if (picked_atom != null) targets += picked_atom break - if(targets.len < turfquantity) + if(length(targets) < turfquantity) return null else return targets diff --git a/code/modules/admin/verbs/adminpm.dm b/code/modules/admin/verbs/adminpm.dm index e5fed9db2fc4..a6cf0f02a3de 100644 --- a/code/modules/admin/verbs/adminpm.dm +++ b/code/modules/admin/verbs/adminpm.dm @@ -60,7 +60,10 @@ var/message_prompt = "Message:" - if((AH?.opening_responders && length(AH.ticket_interactions) == 1 ) || (AH?.marked_admin && AH?.marked_admin != usr.key) && length(AH.ticket_interactions) == 2) + if(AH && !AH.marked_admin) + AH.mark_ticket() + + if((AH?.opening_responders && length(AH.ticket_interactions) == 1 ) || ((AH?.marked_admin && AH?.marked_admin != usr.ckey) && length(AH.ticket_interactions) == 2)) SEND_SOUND(src, sound('sound/machines/buzz-sigh.ogg', volume=30)) message_prompt += "\n\n**This ticket is already being responded to by: [length(AH.opening_responders) ? english_list(AH.opening_responders) : AH.marked_admin]**" @@ -228,7 +231,8 @@ if(CLIENT_IS_STAFF(src)) //sender is an admin but recipient is not. Do BIG RED TEXT var/already_logged = FALSE if(!recipient.current_ticket) - new /datum/admin_help(msg, recipient, TRUE) + var/datum/admin_help/new_ticket = new(msg, recipient, TRUE) + new_ticket.marked_admin = ckey already_logged = TRUE log_ahelp(recipient.current_ticket.id, "Ticket Opened", msg, recipient.ckey, src.ckey) diff --git a/code/modules/admin/verbs/autoreplace.dm b/code/modules/admin/verbs/autoreplace.dm index b2fe04cfb4a3..4e6ec6fdd4be 100644 --- a/code/modules/admin/verbs/autoreplace.dm +++ b/code/modules/admin/verbs/autoreplace.dm @@ -32,7 +32,7 @@ GLOBAL_LIST_INIT_TYPED(admin_runtime_decorators, /datum/decorator/manual/admin_r GLOB.admin_runtime_decorators.Add(SSdecorator.add_decorator(/datum/decorator/manual/admin_runtime, types, subtypes, field, value)) - log_and_message_admins("[src] activated new decorator id: [GLOB.admin_runtime_decorators.len] set for [hint_text] `[types]` for field `[field]` set value `[value]`") + message_admins("[src] activated new decorator id: [length(GLOB.admin_runtime_decorators)] set for [hint_text] `[types]` for field `[field]` set value `[value]`") /client/proc/deactivate_autoreplacer() set category = "Admin.Events" @@ -49,7 +49,7 @@ GLOBAL_LIST_INIT_TYPED(admin_runtime_decorators, /datum/decorator/manual/admin_r GLOB.admin_runtime_decorators[num_value].enabled = FALSE - log_and_message_admins("[src] deactivated decorator id: [num_value]") + message_admins("[src] deactivated decorator id: [num_value]") /client/proc/rerun_decorators() set category = "Admin.Events" @@ -65,4 +65,4 @@ GLOBAL_LIST_INIT_TYPED(admin_runtime_decorators, /datum/decorator/manual/admin_r SSdecorator.force_update() - log_and_message_admins("[src] rerun all decorators.") + message_admins("[src] rerun all decorators.") diff --git a/code/modules/admin/verbs/debug.dm b/code/modules/admin/verbs/debug.dm index c776a12eb330..5228c2d80fba 100644 --- a/code/modules/admin/verbs/debug.dm +++ b/code/modules/admin/verbs/debug.dm @@ -18,21 +18,6 @@ usr.show_message(t, SHOW_MESSAGE_VISIBLE) -/client/proc/cmd_admin_robotize(mob/M in GLOB.mob_list) - set category = null - set name = "Make Robot" - - if(!SSticker.mode) - alert("Wait until the game starts") - return - if(istype(M, /mob/living/carbon/human)) - log_admin("[key_name(src)] has robotized [M.key].") - spawn(10) - M:Robotize() - - else - alert("Invalid mob") - /client/proc/cmd_admin_animalize(mob/M in GLOB.mob_list) set category = null set name = "Make Simple Animal" @@ -130,8 +115,10 @@ var/height if(istype(SSmapping.z_list[cur_z], /datum/space_level)) var/datum/space_level/cur_level = SSmapping.z_list[cur_z] - width = cur_level.x_bounds - half_chunk_size + 2 - height = cur_level.y_bounds - half_chunk_size + 2 + cur_x += cur_level.bounds[MAP_MINX] - 1 + cur_y += cur_level.bounds[MAP_MINY] - 1 + width = cur_level.bounds[MAP_MAXX] - cur_level.bounds[MAP_MINX] - half_chunk_size + 3 + height = cur_level.bounds[MAP_MAXY] - cur_level.bounds[MAP_MINY] - half_chunk_size + 3 else width = world.maxx - half_chunk_size + 2 height = world.maxy - half_chunk_size + 2 @@ -213,14 +200,14 @@ return if (istype(M, /mob/living/carbon/human)) var/mob/living/carbon/human/H = M - if (H.wear_id) - var/obj/item/card/id/id = H.wear_id + var/obj/item/card/id/id = H.get_idcard() + if(id) id.icon_state = "gold" - id:access = get_access(ACCESS_LIST_GLOBAL) + id.access = get_access(ACCESS_LIST_GLOBAL) else - var/obj/item/card/id/id = new/obj/item/card/id(M); + id = new(M) id.icon_state = "gold" - id:access = get_access(ACCESS_LIST_GLOBAL) + id.access = get_access(ACCESS_LIST_GLOBAL) id.registered_name = H.real_name id.registered_ref = WEAKREF(H) id.assignment = "Captain" @@ -279,7 +266,7 @@ var/datum/paygrade/account_paygrade = GLOB.paygrades[custom_paygrade] - var/obj/item/card/id/card = account_user.wear_id + var/obj/item/card/id/card = account_user.get_idcard() generated_account = create_account(account_user.real_name, starting_amount, account_paygrade) if(card) card.associated_account_number = generated_account.account_number @@ -290,12 +277,14 @@ remembered_info += "Your account pin is: [generated_account.remote_access_pin]
          " remembered_info += "Your account funds are: $[generated_account.money]
          " - if(generated_account.transaction_log.len) + if(length(generated_account.transaction_log)) var/datum/transaction/T = generated_account.transaction_log[1] remembered_info += "Your account was created: [T.time], [T.date] at [T.source_terminal]
          " account_user.mind.store_memory(remembered_info) account_user.mind.initial_account = generated_account + log_admin("[key_name(usr)] has created a new bank account for [key_name(account_user)].") + /client/proc/cmd_assume_direct_control(mob/M in GLOB.mob_list) set name = "Control Mob" set desc = "Assume control of the mob" @@ -354,3 +343,20 @@ show_browser(usr, "[str]", "Ticker Count", "tickercount") + +#ifdef TESTING +GLOBAL_LIST_EMPTY(dirty_vars) + +/client/proc/see_dirty_varedits() + set category = "Debug.Mapping" + set name = "Dirty Varedits" + + var/list/dat = list() + dat += "

          Abandon all hope ye who enter here



          " + for(var/thing in GLOB.dirty_vars) + dat += "[thing]
          " + CHECK_TICK + var/datum/browser/popup = new(usr, "dirty_vars", "Dirty Varedits", nwidth = 900, nheight = 750) + popup.set_content(dat.Join()) + popup.open() +#endif diff --git a/code/modules/admin/verbs/freeforghosts.dm b/code/modules/admin/verbs/freeforghosts.dm index 4bf5549f30f0..b5e43bbb8793 100644 --- a/code/modules/admin/verbs/freeforghosts.dm +++ b/code/modules/admin/verbs/freeforghosts.dm @@ -38,7 +38,7 @@ if(alert("This will free ALL mobs within your view range. Are you sure?",,"Yes","Cancel") == "Cancel") return - for(var/mob/living/M in view()) + for(var/mob/living/M in view(src)) free_for_ghosts(M, notify = FALSE) message_admins(WRAP_STAFF_LOG(usr, "freed all mobs in [get_area(usr)] ([usr.x],[usr.y],[usr.z])"), usr.x, usr.y, usr.z) diff --git a/code/modules/admin/verbs/load_event_level.dm b/code/modules/admin/verbs/load_event_level.dm index 165506376b9b..28aab2ef783d 100644 --- a/code/modules/admin/verbs/load_event_level.dm +++ b/code/modules/admin/verbs/load_event_level.dm @@ -24,8 +24,6 @@ // Get dims & guesstimate center turf (in practice, current implem means min is always 1) var/dim_x = boundaries[MAP_MAXX] - boundaries[MAP_MINX] + 1 var/dim_y = boundaries[MAP_MAXY] - boundaries[MAP_MINY] + 1 - var/center_x = boundaries[MAP_MINX] + round(dim_x / 2) // Technically off by 0.5 due to above +1. Whatever - var/center_y = boundaries[MAP_MINY] + round(dim_y / 2) var/prompt = alert(C, "Are you SURE you want to load this template as level ? This is SLOW and can freeze server for a bit. Dimensions are: [dim_x] x [dim_y]", "Template Confirm" ,"Yes","Nope!") if(prompt != "Yes") @@ -40,6 +38,9 @@ to_chat(C, "Failed to load the template to a Z-Level! Sorry!") return + var/center_x = floor(loaded.bounds[MAP_MAXX] / 2) // Technically off by 0.5 due to above +1. Whatever + var/center_y = floor(loaded.bounds[MAP_MAXY] / 2) + // Now notify the staff of the load - this goes in addition to the generic template load game log message_admins("Successfully loaded template as new Z-Level by ckey: [logckey], template name: [template.name]", center_x, center_y, loaded.z_value) if(isobserver(C?.mob)) diff --git a/code/modules/admin/verbs/map_template_loadverb.dm b/code/modules/admin/verbs/map_template_loadverb.dm index 59cffa7f5eae..aed4fd6b90d7 100644 --- a/code/modules/admin/verbs/map_template_loadverb.dm +++ b/code/modules/admin/verbs/map_template_loadverb.dm @@ -74,3 +74,30 @@ SSmapping.map_templates[M.name] = M message_admins(SPAN_ADMINNOTICE("[key_name_admin(src)] has uploaded a map template '[map]' ([M.width]x[M.height])[report_link].")) to_chat(src, SPAN_NOTICE("Map template '[map]' ready to place ([M.width]x[M.height])"), confidential = TRUE) + +/client/proc/force_load_lazy_template() + set name = "Map Template - Lazy Load/Jump" + set category = "Admin.Events" + if(!check_rights(R_EVENT)) + return + + var/choice = tgui_input_list(usr, "Key?", "Lazy Loader", GLOB.lazy_templates) + if(!choice) + return + + var/already_loaded = LAZYACCESS(SSmapping.loaded_lazy_templates, choice) + var/force_load = FALSE + if(already_loaded && (tgui_alert(usr, "Template already loaded.", "", list("Jump", "Load Again")) == "Load Again")) + force_load = TRUE + + var/datum/turf_reservation/reservation = SSmapping.lazy_load_template(choice, force = force_load) + if(!reservation) + to_chat(usr, SPAN_BOLDWARNING("Failed to load template!")) + return + + if(!isobserver(usr)) + admin_ghost() + usr.forceMove(reservation.bottom_left_turfs[1]) + + message_admins("[key_name_admin(usr)] has loaded lazy template '[choice]'") + to_chat(usr, SPAN_BOLD("Template loaded, you have been moved to the bottom left of the reservation.")) diff --git a/code/modules/admin/verbs/mob_verbs.dm b/code/modules/admin/verbs/mob_verbs.dm index abb43461c2fe..7a1dab7c7cf3 100644 --- a/code/modules/admin/verbs/mob_verbs.dm +++ b/code/modules/admin/verbs/mob_verbs.dm @@ -203,7 +203,7 @@ else return -/client/proc/cmd_admin_object_narrate(obj/selected) +/client/proc/cmd_admin_object_narrate(obj/selected in view(src)) set name = "Object Narrate" set category = null @@ -234,7 +234,7 @@ log_admin("[key_name(src)] sent an Object Narrate with message [message].") message_admins("[key_name(src)] sent an Object Narrate with message [message].") -/client/proc/cmd_admin_direct_narrate(mob/M) +/client/proc/cmd_admin_direct_narrate(mob/M in GLOB.mob_list) set name = "Narrate" set category = null @@ -330,7 +330,7 @@ message_admins("[key_name_admin(usr)] made [key_name_admin(M)] drop everything!") -/client/proc/cmd_admin_change_their_hivenumber(mob/living/carbon/H) +/client/proc/cmd_admin_change_their_hivenumber(mob/living/carbon/H in GLOB.living_mob_list) set name = "Change Hivenumber" set category = null @@ -370,7 +370,7 @@ message_admins("[key_name(src)] changed hivenumber of [H] to [H.hivenumber].") -/client/proc/cmd_admin_change_their_name(mob/living/carbon/X) +/client/proc/cmd_admin_change_their_name(mob/living/carbon/carbon in GLOB.living_mob_list) set name = "Change Name" set category = null @@ -378,19 +378,20 @@ if(!newname) return - if(!X) + if(!carbon) to_chat(usr, "This mob no longer exists") return - var/old_name = X.name - X.change_real_name(X, newname) - if(istype(X, /mob/living/carbon/human)) - var/mob/living/carbon/human/H = X - if(H.wear_id) - H.wear_id.name = "[H.real_name]'s ID Card" - H.wear_id.registered_name = "[H.real_name]" - if(H.wear_id.assignment) - H.wear_id.name += " ([H.wear_id.assignment])" + var/old_name = carbon.name + carbon.change_real_name(carbon, newname) + if(ishuman(carbon)) + var/mob/living/carbon/human/human = carbon + var/obj/item/card/id/card = human.get_idcard() + if(card) + card.name = "[human.real_name]'s ID Card" + card.registered_name = "[human.real_name]" + if(card.assignment) + card.name += " ([card.assignment])" message_admins("[key_name(src)] changed name of [old_name] to [newname].") diff --git a/code/modules/admin/verbs/mooc.dm b/code/modules/admin/verbs/mooc.dm index 22d9d2530924..dc9f39205566 100644 --- a/code/modules/admin/verbs/mooc.dm +++ b/code/modules/admin/verbs/mooc.dm @@ -20,9 +20,8 @@ if(M.client && (!M.client.admin_holder || !(M.client.admin_holder.rights & R_MOD))) // Send to marines who are non-staff to_chat_spaced(M, margin_top = 0.5, margin_bottom = 0.5, html = SPAN_MOOC("MOOC: [src.key]([src.admin_holder.rank]): [msg]")) - var/list/synthetics = getsynths() - for(var/mob/M in synthetics) - if(M.client && !M.client.admin_holder) + for(var/mob/M in GLOB.human_mob_list) + if(issynth(M) && M.client && !M.client.admin_holder) to_chat_spaced(M, margin_top = 0.5, margin_bottom = 0.5, html = SPAN_MOOC("MOOC: [src.key]([src.admin_holder.rank]): [msg]")) for(var/mob/dead/observer/M in GLOB.observer_list) diff --git a/code/modules/admin/verbs/pray.dm b/code/modules/admin/verbs/pray.dm index 66ed690a0e80..23edd7499134 100644 --- a/code/modules/admin/verbs/pray.dm +++ b/code/modules/admin/verbs/pray.dm @@ -12,23 +12,21 @@ if(src.client.handle_spam_prevention(msg,MUTE_PRAY)) return - var/liaison = 0 - if(job == "Corporate Liaison") - liaison = 1 + var/prefix = SPAN_PURPLE("PRAY: ") + var/receipt = "Your prayers have been received by the gods." + if(job == JOB_CORPORATE_LIAISON) + prefix = SPAN_PURPLE("LIAISON: ") + receipt = "Your corporate overlords at Weyland-Yutani have received your message." - if(liaison) - msg = "[SPAN_STAFF_IC("LIAISON:")][key_name(src, 1)] [CC_MARK(src)] [ADMIN_PP(src)] [ADMIN_VV(src)] [ADMIN_SM(src)] [ADMIN_JMP_USER(src)] [ADMIN_SC(src)]: [msg]" - else - msg = "[SPAN_STAFF_IC("PRAY: ")][key_name(src, 1)] [CC_MARK(src)] [ADMIN_PP(src)] [ADMIN_VV(src)] [ADMIN_SM(src)] [ADMIN_JMP_USER(src)] [ADMIN_SC(src)]: [msg]" + msg = SPAN_BIGNOTICE("[prefix][key_name(src, 1)] [CC_MARK(src)] [ADMIN_PP(src)] [ADMIN_VV(src)] [ADMIN_SM(src)] [ADMIN_JMP_USER(src)] [ADMIN_SC(src)]: [msg]") log_admin(msg) - for(var/client/C in GLOB.admins) - if(AHOLD_IS_MOD(C.admin_holder) && C.prefs.toggles_chat & CHAT_PRAYER) - to_chat(C, msg) - C << 'sound/machines/terminal_alert.ogg' - if(liaison) - to_chat(usr, "Your corporate overlords at Weyland-Yutani have received your message.") - else - to_chat(usr, "Your prayers have been received by the gods.") + for(var/client/admin in GLOB.admins) + if(AHOLD_IS_MOD(admin.admin_holder)) + to_chat(admin, SPAN_STAFF_IC(msg)) + if(admin.prefs.toggles_sound & SOUND_ARES_MESSAGE) + admin << 'sound/machines/terminal_alert.ogg' + + to_chat(usr, receipt) /proc/high_command_announce(text , mob/Sender , iamessage) var/msg = copytext(sanitize(text), 1, MAX_MESSAGE_LEN) diff --git a/code/modules/admin/verbs/select_equipment.dm b/code/modules/admin/verbs/select_equipment.dm index 7e78652c5c35..196079fe4739 100644 --- a/code/modules/admin/verbs/select_equipment.dm +++ b/code/modules/admin/verbs/select_equipment.dm @@ -10,15 +10,15 @@ var/newrank = tgui_input_list(usr, "Select new rank for [H]", "Change the mob's rank and skills", rank_list) if (!newrank) return - if(!H) + if(QDELETED(H)) return - var/obj/item/card/id/I = H.wear_id + var/obj/item/card/id/I = H.get_idcard() if(GLOB.RoleAuthority.roles_by_name[newrank]) var/datum/job/J = GLOB.RoleAuthority.roles_by_name[newrank] H.comm_title = J.get_comm_title() H.set_skills(J.get_skills()) - if(istype(I)) + if(I) I.access = J.get_access() I.rank = J.title I.assignment = J.disp_title @@ -48,7 +48,7 @@ if(!newskillset || newskillset == "Keep Skillset") return - if(!H) + if(QDELETED(H)) return var/datum/job/J = GLOB.RoleAuthority.roles_by_name[newskillset] @@ -58,25 +58,25 @@ var/newcommtitle = input("Write the custom title appearing on comms chat (e.g. Spc)", "Comms title") as null|text if(!newcommtitle) return - if(!H) + if(QDELETED(H)) return H.comm_title = newcommtitle - if(!istype(I) || I != H.wear_id) + if(!I || I != H.get_idcard()) to_chat(usr, "The mob has no id card, unable to modify ID and chat title.") else var/newchattitle = input("Write the custom title appearing in chat (e.g. SGT)", "Chat title") as null|text if(!newchattitle) return - if(!H || I != H.wear_id) + if(QDELETED(H) || I != H.get_idcard()) return I.paygrade = newchattitle var/IDtitle = input("Write the custom title on your ID (e.g. Squad Specialist)", "ID title") as null|text if(!IDtitle) return - if(!H || I != H.wear_id) + if(QDELETED(H) || I != H.get_idcard()) return I.rank = IDtitle @@ -92,13 +92,13 @@ if(!newskillset) return - if(!H) + if(QDELETED(H)) return var/datum/job/J = GLOB.RoleAuthority.roles_by_name[newskillset] H.set_skills(J.get_skills()) -/client/proc/cmd_admin_dress(mob/M) +/client/proc/cmd_admin_dress(mob/M in GLOB.mob_list) set category = null set name = "Select Equipment" diff --git a/code/modules/admin/view_variables/color_matrix_editor.dm b/code/modules/admin/view_variables/color_matrix_editor.dm index 078d2fc61221..1e58d7fd61d6 100644 --- a/code/modules/admin/view_variables/color_matrix_editor.dm +++ b/code/modules/admin/view_variables/color_matrix_editor.dm @@ -69,6 +69,7 @@ INITIALIZE_IMMEDIATE(/atom/movable/screen/color_matrix_proxy_view) proxy_view.appearance = image('icons/misc/colortest.dmi', "colors") proxy_view.color = current_color + proxy_view.appearance_flags |= TILE_BOUND proxy_view.register_to_client(owner) /datum/color_matrix_editor/Destroy(force, ...) diff --git a/code/modules/admin/view_variables/debug_variables.dm b/code/modules/admin/view_variables/debug_variables.dm index 90178160e591..356843918f2d 100644 --- a/code/modules/admin/view_variables/debug_variables.dm +++ b/code/modules/admin/view_variables/debug_variables.dm @@ -4,11 +4,12 @@ var/header if(D) if(islist(D)) + var/list/var_list = D var/index = name if (value) - name = D[name] //name is really the index until this line + name = var_list[name] //name is really the index until this line else - value = D[name] + value = var_list[name] header = "
        • [VV_HREF_TARGET_1V(D, VV_HK_LIST_EDIT, "E", index)][VV_HREF_TARGET_1V(D, VV_HK_LIST_CHANGE, "C", index)][VV_HREF_TARGET_1V(D, VV_HK_LIST_REMOVE, "-", index)] " else header = "
        • [VV_HREF_TARGET_1V(D, VV_HK_BASIC_EDIT, "E", name)][VV_HREF_TARGET_1V(D, VV_HK_BASIC_CHANGE, "C", name)][VV_HREF_TARGET_1V(D, VV_HK_BASIC_MASSEDIT, "M", name)] " @@ -69,8 +70,8 @@ var/list/L = value var/list/items = list() - if (L.len > 0 && !(name == "underlays" || name == "overlays" || L.len > (IS_NORMAL_LIST(L) ? VV_NORMAL_LIST_NO_EXPAND_THRESHOLD : VV_SPECIAL_LIST_NO_EXPAND_THRESHOLD))) - for (var/i in 1 to L.len) + if (length(L) > 0 && !(name == "underlays" || name == "overlays" || length(L) > (IS_NORMAL_LIST(L) ? VV_NORMAL_LIST_NO_EXPAND_THRESHOLD : VV_SPECIAL_LIST_NO_EXPAND_THRESHOLD))) + for (var/i in 1 to length(L)) var/key = L[i] var/val if (IS_NORMAL_LIST(L) && !isnum(key)) @@ -81,9 +82,9 @@ items += debug_variable(key, val, level + 1, sanitize = sanitize) - item = "[name_part] = /list ([L.len])
            [items.Join()]
          " + item = "[name_part] = /list ([length(L)])
            [items.Join()]
          " else - item = "[name_part] = /list ([L.len])" + item = "[name_part] = /list ([length(L)])" else if (name in GLOB.bitfields) var/list/flags = list() diff --git a/code/modules/admin/view_variables/filterrific.dm b/code/modules/admin/view_variables/filterrific.dm index 67190faadbbe..2383cd614f33 100644 --- a/code/modules/admin/view_variables/filterrific.dm +++ b/code/modules/admin/view_variables/filterrific.dm @@ -53,7 +53,7 @@ target.change_filter_priority(params["name"], new_priority) . = TRUE if("transition_filter_value") - target.transition_filter(params["name"], 4, params["new_data"]) + target.transition_filter(params["name"], params["new_data"], 4) . = TRUE if("modify_filter_value") var/list/old_filter_data = target.filter_data[params["name"]] @@ -69,7 +69,7 @@ if("modify_color_value") var/new_color = input(usr, "Pick new filter color", "Filteriffic Colors!") as color|null if(new_color) - target.transition_filter(params["name"], 4, list("color" = new_color)) + target.transition_filter(params["name"], list("color" = new_color), 4) . = TRUE if("modify_icon_value") var/icon/new_icon = input("Pick icon:", "Icon") as null|icon diff --git a/code/modules/admin/view_variables/get_variables.dm b/code/modules/admin/view_variables/get_variables.dm index a2b87b0909d0..a29fe52ba58f 100644 --- a/code/modules/admin/view_variables/get_variables.dm +++ b/code/modules/admin/view_variables/get_variables.dm @@ -121,12 +121,12 @@ switch(.["class"]) if(VV_TEXT) - .["value"] = tgui_input_text(usr, "Enter new text:", "Text", current_value, encode = FALSE) + .["value"] = tgui_input_text(usr, "Enter new text:", "Text", current_value, encode = FALSE, trim = FALSE) if(.["value"] == null) .["class"] = null return if(VV_MESSAGE) - .["value"] = tgui_input_text(usr, "Enter new text:", "Text", current_value, encode = FALSE) + .["value"] = tgui_input_text(usr, "Enter new text:", "Text", current_value, encode = FALSE, trim = FALSE) if(.["value"] == null) .["class"] = null return @@ -390,7 +390,7 @@ var/list/matches = new var/end_len = -1 var/list/endcheck = splittext(filter, "!") - if(endcheck.len > 1) + if(length(endcheck) > 1) filter = endcheck[1] end_len = length_char(filter) diff --git a/code/modules/admin/view_variables/mass_edit_variables.dm b/code/modules/admin/view_variables/mass_edit_variables.dm index 4d1b5581aac0..d72337a3a7fe 100644 --- a/code/modules/admin/view_variables/mass_edit_variables.dm +++ b/code/modules/admin/view_variables/mass_edit_variables.dm @@ -101,7 +101,7 @@ if(VV_RESTORE_DEFAULT) to_chat(src, "Finding items...", confidential = TRUE) var/list/items = get_all_of_type(O.type, method) - to_chat(src, "Changing [items.len] items...", confidential = TRUE) + to_chat(src, "Changing [length(items)] items...", confidential = TRUE) for(var/thing in items) if (!thing) continue @@ -116,7 +116,7 @@ var/list/varsvars = vv_parse_text(O, new_value) var/pre_processing = new_value var/unique - if (varsvars?.len) + if (LAZYLEN(varsvars)) unique = tgui_alert(usr, "Process vars unique to each instance, or same for all?", "Variable Association", list("Unique", "Same")) if(unique == "Unique") unique = TRUE @@ -127,7 +127,7 @@ to_chat(src, "Finding items...", confidential = TRUE) var/list/items = get_all_of_type(O.type, method) - to_chat(src, "Changing [items.len] items...", confidential = TRUE) + to_chat(src, "Changing [length(items)] items...", confidential = TRUE) for(var/thing in items) if (!thing) continue @@ -155,7 +155,7 @@ var/type = value["type"] to_chat(src, "Finding items...", confidential = TRUE) var/list/items = get_all_of_type(O.type, method) - to_chat(src, "Changing [items.len] items...", confidential = TRUE) + to_chat(src, "Changing [length(items)] items...", confidential = TRUE) for(var/thing in items) if (!thing) continue @@ -173,7 +173,7 @@ else to_chat(src, "Finding items...", confidential = TRUE) var/list/items = get_all_of_type(O.type, method) - to_chat(src, "Changing [items.len] items...", confidential = TRUE) + to_chat(src, "Changing [length(items)] items...", confidential = TRUE) for(var/thing in items) if (!thing) continue diff --git a/code/modules/admin/view_variables/modify_variables.dm b/code/modules/admin/view_variables/modify_variables.dm index 5b2ec3f0e5c5..06e724a0028b 100644 --- a/code/modules/admin/view_variables/modify_variables.dm +++ b/code/modules/admin/view_variables/modify_variables.dm @@ -21,16 +21,15 @@ GLOBAL_PROTECT(VVpixelmovement) if (!ispath(type)) return var/list/subtypes = subtypesof(type) - if (!subtypes || !subtypes.len) + if (!LAZYLEN(subtypes)) return FALSE - if (subtypes?.len) - switch(tgui_alert(usr,"Strict object type detection?", "Type detection", list("Strictly this type","This type and subtypes", "Cancel"))) - if("Strictly this type") - return FALSE - if("This type and subtypes") - return TRUE - else - return + switch(tgui_alert(usr,"Strict object type detection?", "Type detection", list("Strictly this type","This type and subtypes", "Cancel"))) + if("Strictly this type") + return FALSE + if("This type and subtypes") + return TRUE + else + return /client/proc/vv_reference_list(type, subtypes) . = list() @@ -115,14 +114,14 @@ GLOBAL_PROTECT(VVpixelmovement) to_chat(src, "Not a List.", confidential = TRUE) return - if(L.len > 1000) + if(length(L) > 1000) var/confirm = tgui_alert(usr, "The list you're trying to edit is very long, continuing may crash the server.", "Warning", list("Continue", "Abort")) if(confirm != "Continue") return var/is_normal_list = IS_NORMAL_LIST(L) var/list/names = list() - for (var/i in 1 to L.len) + for (var/i in 1 to length(L)) var/key = L[i] var/value if (is_normal_list && !isnum(key)) diff --git a/code/modules/admin/view_variables/reference_tracking.dm b/code/modules/admin/view_variables/reference_tracking.dm index f6f2b86f31d7..8658c9e30602 100644 --- a/code/modules/admin/view_variables/reference_tracking.dm +++ b/code/modules/admin/view_variables/reference_tracking.dm @@ -28,9 +28,7 @@ var/starting_time = world.time -#if DM_VERSION >= 515 log_reftracker("Refcount for [type]: [refcount(src)]") -#endif //Time to search the whole game for our ref DoSearchVar(GLOB, "GLOB", search_time = starting_time) //globals @@ -132,7 +130,7 @@ #endif log_reftracker("Found [type] [text_ref(src)] in list [container_name].") var/msg - for(var/i in 1 to min(10, potential_cache.len)) + for(var/i in 1 to min(10, length(potential_cache))) msg += "[potential_cache[i]]," if(msg) log_reftracker("List contents: [msg]") @@ -150,7 +148,7 @@ #endif log_reftracker("Found [type] [text_ref(src)] in list [container_name]\[[element_in_list]\]") var/msg - for(var/i in 1 to min(10, potential_cache.len)) + for(var/i in 1 to min(10, length(potential_cache))) msg += "[potential_cache[i]]," if(msg) log_reftracker("List contents: [msg]") diff --git a/code/modules/admin/view_variables/topic_list.dm b/code/modules/admin/view_variables/topic_list.dm index 21b534d3d4ed..e0040efc2f74 100644 --- a/code/modules/admin/view_variables/topic_list.dm +++ b/code/modules/admin/view_variables/topic_list.dm @@ -30,12 +30,12 @@ message_admins("[key_name_admin(src)] modified list's contents: CLEAR NULLS") if(href_list[VV_HK_LIST_SET_LENGTH]) var/value = vv_get_value(VV_NUM) - if (value["class"] != VV_NUM || value["value"] > max(50000, target.len)) //safety - would rather someone not put an extra 0 and erase the server's memory lmao. + if (value["class"] != VV_NUM || value["value"] > max(50000, length(target))) //safety - would rather someone not put an extra 0 and erase the server's memory lmao. return target.len = value["value"] - log_world("### ListVarEdit by [src]: /list len: [target.len]") - log_admin("[key_name(src)] modified list's len: [target.len]") - message_admins("[key_name_admin(src)] modified list's len: [target.len]") + log_world("### ListVarEdit by [src]: /list len: [length(target)]") + log_admin("[key_name(src)] modified list's len: [length(target)]") + message_admins("[key_name_admin(src)] modified list's len: [length(target)]") if(href_list[VV_HK_LIST_SHUFFLE]) shuffle_inplace(target) log_world("### ListVarEdit by [src]: /list contents: SHUFFLE") diff --git a/code/modules/admin/view_variables/view_variables.dm b/code/modules/admin/view_variables/view_variables.dm index 0ed09039c990..74132771c268 100644 --- a/code/modules/admin/view_variables/view_variables.dm +++ b/code/modules/admin/view_variables/view_variables.dm @@ -86,7 +86,7 @@ var/list/variable_html = list() if(islist) var/list/L = D - for(var/i in 1 to L.len) + for(var/i in 1 to length(L)) var/key = L[i] var/value if(IS_NORMAL_LIST(L) && IS_VALID_ASSOC_KEY(key)) diff --git a/code/modules/almayer/machinery.dm b/code/modules/almayer/machinery.dm index 74ce9a81eb88..47c17436c52f 100644 --- a/code/modules/almayer/machinery.dm +++ b/code/modules/almayer/machinery.dm @@ -73,7 +73,7 @@ /obj/structure/machinery/prop/almayer/CICmap name = "map table" - desc = "A table that displays a map of the current target location" + desc = "A table that displays a map of the current operation location." icon = 'icons/obj/structures/machinery/computer.dmi' icon_state = "maptable" anchored = TRUE @@ -103,6 +103,13 @@ map.tgui_interact(user) +/obj/structure/machinery/prop/almayer/CICmap/computer + name = "map terminal" + desc = "A terminal that displays a map of the current operation location." + icon = 'icons/obj/vehicles/interiors/arc.dmi' + icon_state = "cicmap_computer" + density = FALSE + /obj/structure/machinery/prop/almayer/CICmap/upp minimap_type = MINIMAP_FLAG_UPP faction = FACTION_UPP @@ -215,8 +222,8 @@ . = ..() if((isobserver(user) || ishuman(user)) && GLOB.fallen_list) var/faltext = "" - for(var/i = 1 to GLOB.fallen_list.len) - if(i != GLOB.fallen_list.len) + for(var/i = 1 to length(GLOB.fallen_list)) + if(i != length(GLOB.fallen_list)) faltext += "[GLOB.fallen_list[i]], " else faltext += GLOB.fallen_list[i] diff --git a/code/modules/animations/animation_library.dm b/code/modules/animations/animation_library.dm index d4fd8feeaf24..fabd7508b856 100644 --- a/code/modules/animations/animation_library.dm +++ b/code/modules/animations/animation_library.dm @@ -47,22 +47,22 @@ Instead of being uniform, it starts out a littler slower, goes fast in the middl animate(A, alpha = 175, pixel_x = 0, pixel_y = 0, pixel_z = 0, time = 3) //Flashes a color, then goes back to regular. -/proc/animation_flash_color(atom/A, flash_color = "#FF0000", speed = 3) //Flashes red on default. +/proc/animation_flash_color(atom/A, flash_color = COLOR_RED, speed = 3) //Flashes red on default. var/oldcolor = A.color animate(A, color = flash_color, time = speed, flags = ANIMATION_PARALLEL) animate(color = oldcolor, time = speed) /* fuck this, only halloween uses this -spookydonut //Gives it a spooky overlay and animation. Same as above, mostly, only adds a cool overlay effect. -/proc/animation_horror_flick(atom/A, flash_color = "#000000", speed = 4) +/proc/animation_horror_flick(atom/A, flash_color = COLOR_BLACK, speed = 4) animate(A, color = flash_color, time = speed) - animate(color = "#FFFFFF", time = speed) + animate(color = COLOR_WHITE, time = speed) var/image/I = image('icons/mob/mob.dmi',A,"spook") I.flick_overlay(A,7) /proc/animation_blood_spatter(atom/A, flash_color = "#8A0707", speed = 4) animate(A, color = flash_color, time = speed) - animate(color = "#FFFFFF", time = speed) + animate(color = COLOR_WHITE, time = speed) var/image/I = image('icons/mob/mob.dmi',A,"blood_spatter") if(prob(50)) I.transform = matrix(rand(0,45), MATRIX_ROTATE) @@ -91,13 +91,13 @@ Instead of being uniform, it starts out a littler slower, goes fast in the middl /proc/animation_teleport_quick_in(atom/A, speed = 10) A.transform = matrix(0, 4, MATRIX_SCALE) A.alpha = 0 //Start with transparency, just in case. - animate(A, alpha = 255, transform = null, color = "#FFFFFF", time = speed, easing = BACK_EASING) + animate(A, alpha = 255, transform = null, color = COLOR_WHITE, time = speed, easing = BACK_EASING) /*A magical teleport animation, for when the person is transported with some magic. Good for Halloween type events. Can look good elsewhere as well.*/ /*proc/animation_teleport_magic_out(atom/A, speed = 6) animate(A, transform = matrix(1.5, 0, MATRIX_SCALE), time = speed, easing = BACK_EASING) - animate(transform = matrix(0, 4, MATRIX_SCALE) * matrix(0, 6, MATRIX_TRANSLATE), color = "#FFFF00", time = speed, alpha = 100, easing = BOUNCE_EASING|EASE_IN) + animate(transform = matrix(0, 4, MATRIX_SCALE) * matrix(0, 6, MATRIX_TRANSLATE), color = COLOR_YELLOW, time = speed, alpha = 100, easing = BOUNCE_EASING|EASE_IN) animate(alpha = 0, time = speed) var/image/I = image('icons/effects/effects.dmi',A,"sparkle") I.flick_overlay(A,9) @@ -106,8 +106,8 @@ Can look good elsewhere as well.*/ /proc/animation_teleport_magic_in(atom/A, speed = 6) A.transform = matrix(0,3.5, MATRIX_SCALE) A.alpha = 0 - animate(A, alpha = 255, color = "#FFFF00", time = speed, easing = BACK_EASING) - animate(transform = matrix(1.5, 0, MATRIX_SCALE), color = "#FFFFFF", time = speed, easing = CIRCULAR_EASING|EASE_OUT) + animate(A, alpha = 255, color = COLOR_YELLOW, time = speed, easing = BACK_EASING) + animate(transform = matrix(1.5, 0, MATRIX_SCALE), color = COLOR_WHITE, time = speed, easing = CIRCULAR_EASING|EASE_OUT) animate(transform = null, time = speed-1) var/image/I = image('icons/effects/effects.dmi',A,"sparkle") I.flick_overlay(A,10) @@ -115,7 +115,7 @@ Can look good elsewhere as well.*/ //A spooky teleport for evil dolls, horrors, and whatever else. Halloween type stuff. /proc/animation_teleport_spooky_out(atom/A, speed = 6, sleep_duration = 0) animate(A, transform = matrix() * 1.5, color = "#551a8b", time = speed, easing = BACK_EASING) - animate(transform = matrix() * 0.2, alpha = 100, color = "#000000", time = speed, easing = BACK_EASING) + animate(transform = matrix() * 0.2, alpha = 100, color = COLOR_BLACK, time = speed, easing = BACK_EASING) animate(alpha = 0, time = speed) var/image/I = image('icons/effects/effects.dmi',A,"spooky") I.flick_overlay(A,9,RESET_COLOR|RESET_ALPHA|TILE_BOUND) @@ -125,7 +125,7 @@ Can look good elsewhere as well.*/ A.transform *= 1.2 A.alpha = 0 animate(A, alpha = 255, color = "#551a8b", time = speed) - animate(transform = null, color = "#FFFFFF", time = speed, easing = QUAD_EASING|EASE_OUT) + animate(transform = null, color = COLOR_WHITE, time = speed, easing = QUAD_EASING|EASE_OUT) var/image/I = image('icons/effects/effects.dmi',A,"spooky") I.flick_overlay(A,10)*/ @@ -135,7 +135,7 @@ Can look good elsewhere as well.*/ A.mouse_opacity = MOUSE_OPACITY_TRANSPARENT //We don't want them to click this while the animation is still playing. A.density = FALSE //So it doesn't block anything. var/i = 1 + (0.1 * rand(1,5)) - animate(A, transform = matrix() * i, color = "#808080", time = speed, easing = SINE_EASING) + animate(A, transform = matrix() * i, color = COLOR_GRAY, time = speed, easing = SINE_EASING) animate(alpha = 0, time = speed) return speed @@ -166,7 +166,7 @@ Can look good elsewhere as well.*/ animate(alpha = 100, matrix(rand(45,90) * pick(1,-1), MATRIX_ROTATE), time = speed) animate(pixel_x = x_o+rand(-x_n, x_n), pixel_y = y_o+rand(-y_n, y_n), time = speed, easing = ELASTIC_EASING|EASE_IN) animate(pixel_x = x_o, pixel_y = y_o, time = speed, easing = CIRCULAR_EASING|EASE_OUT) - animate(alpha = 0, color = "#808080", time = speed) + animate(alpha = 0, color = COLOR_GRAY, time = speed) var/image/I = image('icons/effects/effects.dmi',A,"red_particles") I.flick_overlay(A,25) return speed*9*/ @@ -181,7 +181,7 @@ Can look good elsewhere as well.*/ var/pixel_x_diff = 0 var/pixel_y_diff = 0 var/direction = get_dir(src, A) - pixel_offset = round(pixel_offset) // Just to be safe + pixel_offset = floor(pixel_offset) // Just to be safe switch(direction) if(NORTH) pixel_y_diff = pixel_offset diff --git a/code/modules/assembly/signaller.dm b/code/modules/assembly/signaller.dm index 4ac25854e8ea..3e01c357c113 100644 --- a/code/modules/assembly/signaller.dm +++ b/code/modules/assembly/signaller.dm @@ -74,7 +74,7 @@ switch(action) if("set_freq") - set_frequency(clamp(round(text2num(params["value"])), SIGNALLER_FREQ_MIN, SIGNALLER_FREQ_MAX)) + set_frequency(clamp(floor(text2num(params["value"])), SIGNALLER_FREQ_MIN, SIGNALLER_FREQ_MAX)) . = TRUE if("set_signal") diff --git a/code/modules/assembly/timer.dm b/code/modules/assembly/timer.dm index 0dd55dc532a0..3d6307640faa 100644 --- a/code/modules/assembly/timer.dm +++ b/code/modules/assembly/timer.dm @@ -19,7 +19,7 @@ /obj/item/device/assembly/timer/activate() if(!..()) return 0//Cooldown check - time = clamp(round(time), TIMER_MINIMUM_TIME, TIMER_MAXIMUM_TIME) + time = clamp(floor(time), TIMER_MINIMUM_TIME, TIMER_MAXIMUM_TIME) timing = !timing if(timing) START_PROCESSING(SSobj, src) @@ -103,7 +103,7 @@ ui.set_autoupdate(timing) if(!timing) - time = clamp(round(time), TIMER_MINIMUM_TIME, TIMER_MAXIMUM_TIME) + time = clamp(floor(time), TIMER_MINIMUM_TIME, TIMER_MAXIMUM_TIME) STOP_PROCESSING(SSobj, src) else START_PROCESSING(SSobj, src) @@ -112,7 +112,7 @@ . = TRUE if("set_time") - time = clamp(round(text2num(params["time"])) SECONDS, TIMER_MINIMUM_TIME, TIMER_MAXIMUM_TIME) + time = clamp(floor(text2num(params["time"])) SECONDS, TIMER_MINIMUM_TIME, TIMER_MAXIMUM_TIME) . = TRUE /obj/item/device/assembly/timer/ui_data(mob/user) diff --git a/code/modules/asset_cache/asset_cache_client.dm b/code/modules/asset_cache/asset_cache_client.dm index f462fe386bba..cb204c6781a1 100644 --- a/code/modules/asset_cache/asset_cache_client.dm +++ b/code/modules/asset_cache/asset_cache_client.dm @@ -1,7 +1,7 @@ /// Process asset cache client topic calls for "asset_cache_confirm_arrival=[INT]" /client/proc/asset_cache_confirm_arrival(job_id) - var/asset_cache_job = round(text2num(job_id)) + var/asset_cache_job = floor(text2num(job_id)) //because we skip the limiter, we have to make sure this is a valid arrival and not somebody tricking us into letting them append to a list without limit. if (asset_cache_job > 0 && asset_cache_job <= last_asset_job && !(completed_asset_jobs["[asset_cache_job]"])) completed_asset_jobs["[asset_cache_job]"] = TRUE diff --git a/code/modules/asset_cache/asset_list.dm b/code/modules/asset_cache/asset_list.dm index 8e19a1905300..828472ad9573 100644 --- a/code/modules/asset_cache/asset_list.dm +++ b/code/modules/asset_cache/asset_list.dm @@ -168,7 +168,7 @@ GLOBAL_LIST_EMPTY(asset_datums) var/icon/big = size[SPRSZ_STRIPPED] var/per_line = big.Width() / tiny.Width() var/x = (idx % per_line) * tiny.Width() - var/y = round(idx / per_line) * tiny.Height() + var/y = floor(idx / per_line) * tiny.Height() out += ".[name][size_id].[sprite_id]{background-position:-[x]px -[y]px;}" @@ -203,7 +203,7 @@ GLOBAL_LIST_EMPTY(asset_datums) for (var/icon_state_name in icon_states(I)) for (var/direction in directions) - var/prefix2 = (directions.len > 1) ? "[dir2text(direction)]-" : "" + var/prefix2 = (length(directions) > 1) ? "[dir2text(direction)]-" : "" Insert("[prefix][prefix2][icon_state_name]", I, icon_state=icon_state_name, dir=direction) /datum/asset/spritesheet/proc/css_tag() @@ -260,7 +260,7 @@ GLOBAL_LIST_EMPTY(asset_datums) if (!asset) continue asset = fcopy_rsc(asset) //dedupe - var/prefix2 = (directions.len > 1) ? "[dir2text(direction)]." : "" + var/prefix2 = (length(directions) > 1) ? "[dir2text(direction)]." : "" var/asset_name = sanitize_filename("[prefix].[prefix2][icon_state_name].png") if (generic_icon_names) asset_name = "[generate_asset_name(asset)].png" @@ -341,3 +341,25 @@ GLOBAL_LIST_EMPTY(asset_datums) if (!item_filename) return . = list("[item_filename]" = SSassets.transport.get_asset_url(item_filename)) + +/datum/asset/simple/inventory + assets = list( + "inventory-glasses.png" = 'icons/ui_Icons/inventory/glasses.png', + "inventory-head.png" = 'icons/ui_Icons/inventory/head.png', + "inventory-neck.png" = 'icons/ui_Icons/inventory/neck.png', + "inventory-mask.png" = 'icons/ui_Icons/inventory/mask.png', + "inventory-ears.png" = 'icons/ui_Icons/inventory/ears.png', + "inventory-uniform.png" = 'icons/ui_Icons/inventory/uniform.png', + "inventory-suit.png" = 'icons/ui_Icons/inventory/suit.png', + "inventory-gloves.png" = 'icons/ui_Icons/inventory/gloves.png', + "inventory-hand_l.png" = 'icons/ui_Icons/inventory/hand_l.png', + "inventory-hand_r.png" = 'icons/ui_Icons/inventory/hand_r.png', + "inventory-shoes.png" = 'icons/ui_Icons/inventory/shoes.png', + "inventory-suit_storage.png" = 'icons/ui_Icons/inventory/suit_storage.png', + "inventory-id.png" = 'icons/ui_Icons/inventory/id.png', + "inventory-belt.png" = 'icons/ui_Icons/inventory/belt.png', + "inventory-back.png" = 'icons/ui_Icons/inventory/back.png', + "inventory-pocket.png" = 'icons/ui_Icons/inventory/pocket.png', + "inventory-collar.png" = 'icons/ui_Icons/inventory/collar.png', + ) + diff --git a/code/modules/asset_cache/asset_list_items.dm b/code/modules/asset_cache/asset_list_items.dm index 300c999b885b..0b27cf268a12 100644 --- a/code/modules/asset_cache/asset_list_items.dm +++ b/code/modules/asset_cache/asset_list_items.dm @@ -61,33 +61,9 @@ "nano/templates/", ) -/datum/asset/directory/nanoui/weapons - common_dirs = list( - "nano/images/weapons/", - ) - - uncommon_dirs = list() - -/datum/asset/directory/nanoui/weapons/send(client) - if(!client) - log_debug("Warning! Tried to send nanoui weapon data with a null client! (asset_list_items.dm line 93)") - return - SSassets.transport.send_assets(client, common) - - /datum/asset/simple/nanoui_images keep_local_name = TRUE - assets = list( - "auto.png" = 'nano/images/weapons/auto.png', - "burst.png" = 'nano/images/weapons/burst.png', - "single.png" = 'nano/images/weapons/single.png', - "disabled_automatic.png" = 'nano/images/weapons/disabled_automatic.png', - "disabled_burst.png" = 'nano/images/weapons/disabled_burst.png', - "disabled_single.png" = 'nano/images/weapons/disabled_single.png', - "no_name.png" = 'nano/images/weapons/no_name.png', - ) - var/list/common_dirs = list( "nano/images/", ) @@ -378,13 +354,49 @@ Insert("[icon_name]_big", iconBig) return ..() +/datum/asset/spritesheet/tutorial + name = "tutorial" + +/datum/asset/spritesheet/tutorial/register() + for(var/icon_state in icon_states('icons/misc/tutorial.dmi')) + var/icon/icon_sprite = icon('icons/misc/tutorial.dmi', icon_state) + icon_sprite.Scale(128, 128) + Insert(icon_state, icon_sprite) + + var/icon/retrieved_icon = icon('icons/mob/hud/human_dark.dmi', "intent_all") + retrieved_icon.Scale(128, 128) + Insert("intents", retrieved_icon) + + return ..() + + /datum/asset/spritesheet/gun_lineart name = "gunlineart" /datum/asset/spritesheet/gun_lineart/register() - InsertAll("", 'icons/obj/items/weapons/guns/lineart.dmi') + var/icon_file = 'icons/obj/items/weapons/guns/lineart.dmi' + InsertAll("", icon_file) + + for(var/obj/item/weapon/gun/current_gun as anything in subtypesof(/obj/item/weapon/gun)) + if(isnull(initial(current_gun.icon_state))) + continue + if(initial(current_gun.flags_gun_features) & GUN_UNUSUAL_DESIGN) + continue // These don't have a way to inspect weapon stats + var/obj/item/weapon/gun/temp_gun = new current_gun + var/icon_state = temp_gun.base_gun_icon // base_gun_icon is set in Initialize generally + qdel(temp_gun) + if(icon_state && isnull(sprites[icon_state])) + // upgrade this to a stack_trace once all guns have a lineart and we want to lint against that + log_debug("[current_gun] does not have a valid lineart icon state, icon=[icon_file], icon_state=[json_encode(icon_state)]") + ..() +/datum/asset/spritesheet/gun_lineart_modes + name = "gunlineartmodes" + +/datum/asset/spritesheet/gun_lineart_modes/register() + InsertAll("", 'icons/obj/items/weapons/guns/lineart_modes.dmi') + ..() /datum/asset/simple/orbit assets = list( @@ -398,17 +410,6 @@ "ntosradarpointerS.png" = 'icons/images/ui_images/ntosradar_pointer_S.png' ) -/datum/asset/simple/firemodes - assets = list( - "auto.png" = 'html/images/auto.png', - "disabled_auto.png" = 'html/images/disabled_automatic.png', - "burst.png" = 'html/images/burst.png', - "disabled_burst.png" = 'html/images/disabled_burst.png', - "single.png" = 'html/images/single.png', - "disabled_single.png" = 'html/images/disabled_single.png', - ) - - /datum/asset/simple/particle_editor assets = list( "motion" = 'icons/images/ui_images/particle_editor/motion.png', diff --git a/code/modules/asset_cache/assets/medals.dm b/code/modules/asset_cache/assets/medals.dm new file mode 100644 index 000000000000..1d7214331e65 --- /dev/null +++ b/code/modules/asset_cache/assets/medals.dm @@ -0,0 +1,10 @@ +/datum/asset/spritesheet/medal + name = "medal" + +/datum/asset/spritesheet/medal/register() + for(var/obj/item/clothing/accessory/medal/medal as anything in subtypesof(/obj/item/clothing/accessory/medal)) + var/icon/current_icon = icon(initial(medal.icon), initial(medal.icon_state), SOUTH) + var/imgid = replacetext("[initial(medal.name)]", " ", "-") + + Insert(imgid, current_icon) + return ..() diff --git a/code/modules/asset_cache/assets/tgui.dm b/code/modules/asset_cache/assets/tgui.dm index 9c79925602c7..4b31d93e037f 100644 --- a/code/modules/asset_cache/assets/tgui.dm +++ b/code/modules/asset_cache/assets/tgui.dm @@ -1,3 +1,23 @@ +// If you use a file(...) object, instead of caching the asset it will be loaded from disk every time it's requested. +// This is useful for development, but not recommended for production. +// And if TGS is defined, we're being run in a production environment. + +#ifdef TGS +/datum/asset/simple/tgui + keep_local_name = FALSE + assets = list( + "tgui.bundle.js" = "tgui/public/tgui.bundle.js", + "tgui.bundle.css" = "tgui/public/tgui.bundle.css", + ) + +/datum/asset/simple/tgui_panel + keep_local_name = FALSE + assets = list( + "tgui-panel.bundle.js" = "tgui/public/tgui-panel.bundle.js", + "tgui-panel.bundle.css" = "tgui/public/tgui-panel.bundle.css", + ) + +#else /datum/asset/simple/tgui keep_local_name = TRUE assets = list( @@ -11,3 +31,5 @@ "tgui-panel.bundle.js" = file("tgui/public/tgui-panel.bundle.js"), "tgui-panel.bundle.css" = file("tgui/public/tgui-panel.bundle.css"), ) + +#endif diff --git a/code/modules/asset_cache/transports/asset_transport.dm b/code/modules/asset_cache/transports/asset_transport.dm index 2e165229f19b..3db4f0f33297 100644 --- a/code/modules/asset_cache/transports/asset_transport.dm +++ b/code/modules/asset_cache/transports/asset_transport.dm @@ -113,8 +113,8 @@ continue unreceived[asset_name] = ACI - if (unreceived.len) - if (unreceived.len >= ASSET_CACHE_TELL_CLIENT_AMOUNT) + if (length(unreceived)) + if (length(unreceived) >= ASSET_CACHE_TELL_CLIENT_AMOUNT) to_chat(client, "Sending Resources...") for (var/asset_name in unreceived) diff --git a/code/modules/autowiki/pages/guns.dm b/code/modules/autowiki/pages/guns.dm index ad675c51a409..7f63602d56f0 100644 --- a/code/modules/autowiki/pages/guns.dm +++ b/code/modules/autowiki/pages/guns.dm @@ -7,14 +7,18 @@ var/list/gun_to_ammo = list() - for(var/obj/item/ammo_magazine/typepath as anything in subtypesof(/obj/item/ammo_magazine) - subtypesof(/obj/item/ammo_magazine/internal)) + for(var/obj/item/ammo_magazine/typepath as anything in subtypesof(/obj/item/ammo_magazine) - typesof(/obj/item/ammo_magazine/internal)) + if(isnull(initial(typepath.icon_state))) + continue // Skip mags with no icon_state (e.g. base types) LAZYADD(gun_to_ammo[initial(typepath.gun_type)], typepath) for(var/typepath in sort_list(subtypesof(/obj/item/weapon/gun), GLOBAL_PROC_REF(cmp_typepaths_asc))) - var/obj/item/weapon/gun/generating_gun = new typepath() + var/obj/item/weapon/gun/generating_gun = typepath + if(isnull(initial(generating_gun.icon_state))) + continue // Skip guns with no icon_state (e.g. base types) + generating_gun = new typepath() var/filename = SANITIZE_FILENAME(escape_value(format_text(generating_gun.name))) - var/list/gun_data = generating_gun.ui_data() var/list/valid_mag_types = list() @@ -70,6 +74,8 @@ var/list/attachments_by_slot = list() for(var/obj/item/attachable/attachment_typepath as anything in generating_gun.attachable_allowed) + if(isnull(initial(attachment_typepath.icon_state))) + continue // Skip attachments with no icon_state (e.g. base types) LAZYADD(attachments_by_slot[capitalize(initial(attachment_typepath.slot))], attachment_typepath) var/attachments = "" diff --git a/code/modules/buildmode/buildmode.dm b/code/modules/buildmode/buildmode.dm index eeab65ec031a..4b6d84a5ae40 100644 --- a/code/modules/buildmode/buildmode.dm +++ b/code/modules/buildmode/buildmode.dm @@ -80,7 +80,7 @@ var/pos_idx = 0 for(var/thing in elements) var/x = pos_idx % switch_width - var/y = FLOOR(pos_idx / switch_width, 1) + var/y = floor(pos_idx / switch_width) var/atom/movable/screen/buildmode/B = new buttontype(src, thing) // extra .5 for a nice offset look B.screen_loc = "NORTH-[(1 + 0.5 + y*1.5)],WEST+[0.5 + x*1.5]" diff --git a/code/modules/buildmode/submodes/area_edit.dm b/code/modules/buildmode/submodes/area_edit.dm index 3c2a07c687d3..57b82e30fd3b 100644 --- a/code/modules/buildmode/submodes/area_edit.dm +++ b/code/modules/buildmode/submodes/area_edit.dm @@ -66,7 +66,7 @@ var/choice = alert("Are you sure you want to fill area?", "Area Fill Confirmation", "Yes", "No") if(choice != "Yes") return - for(var/turf/T in block(get_turf(cornerA),get_turf(cornerB))) + for(var/turf/T as anything in block(get_turf(cornerA),get_turf(cornerB))) storedarea.contents.Add(T) log_admin("Build Mode: [key_name(c)] set the area of the region from [AREACOORD(cornerA)] through [AREACOORD(cornerB)] to [storedarea].") diff --git a/code/modules/buildmode/submodes/fill.dm b/code/modules/buildmode/submodes/fill.dm index 59142e712602..52212a9c57c5 100644 --- a/code/modules/buildmode/submodes/fill.dm +++ b/code/modules/buildmode/submodes/fill.dm @@ -49,8 +49,7 @@ if(LAZYACCESS(modifiers, LEFT_CLICK)) //rectangular if(LAZYACCESS(modifiers, CTRL_CLICK)) var/list/deletion_area = block(get_turf(cornerA),get_turf(cornerB)) - for(var/deleted_turfs in deletion_area) - var/turf/T = deleted_turfs + for(var/turf/T as anything in deletion_area) for(var/atom/movable/AM in T) qdel(AM) T.ScrapeAway(INFINITY, CHANGETURF_DEFER_CHANGE) @@ -59,7 +58,7 @@ var/choice = alert("Your selected area is [selection_size] tiles! Continue?", "Large Fill Confirmation", CONFIRM_YES, CONFIRM_NO) if(choice != CONFIRM_YES) return - for(var/turf/T in block(get_turf(cornerA),get_turf(cornerB))) + for(var/turf/T as anything in deletion_area) if(ispath(objholder,/turf)) T = T.ChangeTurf(objholder) T.setDir(BM.build_dir) diff --git a/code/modules/character_traits/biology_traits.dm b/code/modules/character_traits/biology_traits.dm index c90ea7b8751e..5bdb67cc5419 100644 --- a/code/modules/character_traits/biology_traits.dm +++ b/code/modules/character_traits/biology_traits.dm @@ -49,23 +49,20 @@ var/string_paygrade = preset.load_rank(target) var/datum/paygrade/paygrade_datum = GLOB.paygrades[string_paygrade] if(paygrade_datum?.ranking > maximum_ranking) - to_chat(target, SPAN_WARNING("Your paygrade is too high for you to be able to recieve the lisping trait.")) + to_chat(target, SPAN_WARNING("Your paygrade is too high for you to be able to receive the lisping trait.")) return if(target.job in inapplicable_roles) - to_chat(target, SPAN_WARNING("Your office is too high for you to be able to recieve the lisping trait.")) + to_chat(target, SPAN_WARNING("Your office is too high for you to be able to receive the lisping trait.")) return if(target.species.group in inapplicable_species) - to_chat(target, SPAN_WARNING("Your species is too sophisticated for you be able to recieve the lisping trait.")) + to_chat(target, SPAN_WARNING("Your species is too sophisticated for you be able to receive the lisping trait.")) return ADD_TRAIT(target, TRAIT_LISPING, ROUNDSTART_TRAIT) - target.speech_problem_flag = TRUE - ..() /datum/character_trait/biology/lisp/unapply_trait(mob/living/carbon/human/target) REMOVE_TRAIT(target, TRAIT_LISPING, ROUNDSTART_TRAIT) - target.speech_problem_flag = FALSE ..() /datum/character_trait/biology/bad_leg @@ -85,17 +82,17 @@ /datum/character_trait/biology/bad_leg/New() . = ..() // Not on definition as several lists are added - inapplicable_roles = list(JOB_PILOT, JOB_DROPSHIP_CREW_CHIEF, JOB_CREWMAN, JOB_INTEL, JOB_ORDNANCE_TECH, JOB_MARINE) + JOB_SQUAD_ROLES_LIST + JOB_MARINE_RAIDER_ROLES_LIST + JOB_ERT_GRUNT_LIST + inapplicable_roles = list(JOB_CAS_PILOT, JOB_DROPSHIP_PILOT, JOB_DROPSHIP_CREW_CHIEF, JOB_TANK_CREW, JOB_INTEL, JOB_ORDNANCE_TECH, JOB_MARINE) + JOB_SQUAD_ROLES_LIST + JOB_MARINE_RAIDER_ROLES_LIST + JOB_ERT_GRUNT_LIST bad_cane_roles = list(JOB_SURVIVOR, JOB_STOWAWAY) fancy_cane_roles = list(JOB_CO_SURVIVOR, CORPORATE_SURVIVOR, JOB_CMO, JOB_CORPORATE_LIAISON, JOB_SEA, JOB_CHIEF_ENGINEER) + JOB_COMMAND_ROLES_LIST inapplicable_species = list(SPECIES_SYNTHETIC, SPECIES_YAUTJA) /datum/character_trait/biology/bad_leg/apply_trait(mob/living/carbon/human/target, datum/equipment_preset/preset) if(target.job in inapplicable_roles) - to_chat(target, SPAN_WARNING("Your office is too combat-geared for you to be able to recieve the bad leg trait.")) + to_chat(target, SPAN_WARNING("Your office is too combat-geared for you to be able to receive the bad leg trait.")) return if(target.species.group in inapplicable_species) - to_chat(target, SPAN_WARNING("Your species is too sophisticated for you be able to recieve the bad leg trait.")) + to_chat(target, SPAN_WARNING("Your species is too sophisticated for you be able to receive the bad leg trait.")) return target.AddComponent(/datum/component/bad_leg) @@ -133,3 +130,17 @@ /datum/character_trait/biology/hardcore/unapply_trait(mob/living/carbon/human/target) REMOVE_TRAIT(target, TRAIT_HARDCORE, ROUNDSTART_TRAIT) ..() + +/datum/character_trait/biology/iron_teeth + trait_name = "Iron Teeth" + trait_desc = "You've got iron teeth or really good dental insurance. Items in your face slot won't fall out when you go down." + applyable = TRUE + cost = 1 + +/datum/character_trait/biology/iron_teeth/apply_trait(mob/living/carbon/human/target, datum/equipment_preset/preset) + ADD_TRAIT(target, TRAIT_IRON_TEETH, ROUNDSTART_TRAIT) + ..() + +/datum/character_trait/biology/iron_teeth/unapply_trait(mob/living/carbon/human/target) + REMOVE_TRAIT(target, TRAIT_IRON_TEETH, ROUNDSTART_TRAIT) + ..() diff --git a/code/modules/character_traits/hair_dye.dm b/code/modules/character_traits/hair_dye.dm index 1da4ea364064..3c6ce01f8acc 100644 --- a/code/modules/character_traits/hair_dye.dm +++ b/code/modules/character_traits/hair_dye.dm @@ -6,7 +6,6 @@ trait_name = "Hair Dye" trait_desc = "Enables hair gradients in the character creation screen." applyable = TRUE - cost = 1 trait_group = /datum/character_trait_group/hair_dye refresh_choices = TRUE refresh_mannequin = TRUE diff --git a/code/modules/clans/client.dm b/code/modules/clans/client.dm index c46adf89711a..b31a2c06f9c9 100644 --- a/code/modules/clans/client.dm +++ b/code/modules/clans/client.dm @@ -5,11 +5,11 @@ set waitfor = FALSE . = ..() - if(GLOB.RoleAuthority && (GLOB.RoleAuthority.roles_whitelist[ckey] & WHITELIST_PREDATOR)) + if(GLOB.RoleAuthority && check_whitelist_status(WHITELIST_PREDATOR)) clan_info = GET_CLAN_PLAYER(player.id) clan_info.sync() - if(GLOB.RoleAuthority.roles_whitelist[ckey] & WHITELIST_YAUTJA_LEADER) + if(check_whitelist_status(WHITELIST_YAUTJA_LEADER)) clan_info.clan_rank = GLOB.clan_ranks_ordered[CLAN_RANK_ADMIN] clan_info.permissions |= CLAN_PERMISSION_ALL else @@ -145,7 +145,7 @@ player_move_clans = (clan_info.permissions & CLAN_PERMISSION_ADMIN_MOVE) ) - var/list/clan_members[CPV.len] + var/list/clan_members[length(CPV)] var/index = 1 for(var/datum/view_record/clan_playerbase_view/CP in CPV) @@ -234,7 +234,7 @@ return - log_and_message_admins("[key_name_admin(src)] has set the name of [target_clan.name] to [input].") + message_admins("[key_name_admin(src)] has set the name of [target_clan.name] to [input].") to_chat(src, SPAN_NOTICE("Set the name of [target_clan.name] to [input].")) target_clan.name = trim(input) @@ -247,7 +247,7 @@ if(!input || input == target_clan.description) return - log_and_message_admins("[key_name_admin(src)] has set the description of [target_clan.name].") + message_admins("[key_name_admin(src)] has set the description of [target_clan.name].") to_chat(src, SPAN_NOTICE("Set the description of [target_clan.name].")) target_clan.description = trim(input) @@ -261,7 +261,7 @@ return target_clan.color = color - log_and_message_admins("[key_name_admin(src)] has set the color of [target_clan.name] to [color].") + message_admins("[key_name_admin(src)] has set the color of [target_clan.name] to [color].") to_chat(src, SPAN_NOTICE("Set the name of [target_clan.name] to [color].")) if(CLAN_ACTION_CLAN_SETHONOR) if(!has_clan_permission(CLAN_PERMISSION_ADMIN_MANAGER)) @@ -272,7 +272,7 @@ if((!input && input != 0) || input == target_clan.honor) return - log_and_message_admins("[key_name_admin(src)] has set the honor of clan [target_clan.name] from [target_clan.honor] to [input].") + message_admins("[key_name_admin(src)] has set the honor of clan [target_clan.name] from [target_clan.honor] to [input].") to_chat(src, SPAN_NOTICE("Set the honor of [target_clan.name] from [target_clan.honor] to [input].")) target_clan.honor = input @@ -286,7 +286,7 @@ to_chat(src, "You have decided not to delete [target_clan.name].") return - log_and_message_admins("[key_name_admin(src)] has deleted the clan [target_clan.name].") + message_admins("[key_name_admin(src)] has deleted the clan [target_clan.name].") to_chat(src, SPAN_NOTICE("You have deleted [target_clan.name].")) var/list/datum/view_record/clan_playerbase_view/CPV = DB_VIEW(/datum/view_record/clan_playerbase_view, DB_COMP("clan_id", DB_EQUALS, target_clan.id)) @@ -339,7 +339,7 @@ return var/target_clan = target.clan_id - log_and_message_admins("[key_name_admin(src)] has purged [player_name]'s clan profile.") + message_admins("[key_name_admin(src)] has purged [player_name]'s clan profile.") to_chat(src, SPAN_NOTICE("You have purged [player_name]'s clan profile.")) target.delete() @@ -361,7 +361,7 @@ for(var/datum/view_record/clan_view/CV in CPV) clans += list("[CV.name]" = CV.clan_id) - if(is_clan_manager && clans.len >= 1) + if(is_clan_manager && length(clans) >= 1) if(target.permissions & CLAN_PERMISSION_ADMIN_ANCIENT) clans += list("Remove from Ancient") else @@ -379,20 +379,20 @@ target.clan_id = null target.clan_rank = GLOB.clan_ranks_ordered[CLAN_RANK_YOUNG] to_chat(src, SPAN_NOTICE("Removed [player_name] from their clan.")) - log_and_message_admins("[key_name_admin(src)] has removed [player_name] from their current clan.") + message_admins("[key_name_admin(src)] has removed [player_name] from their current clan.") else if(input == "Remove from Ancient") target.clan_rank = GLOB.clan_ranks_ordered[CLAN_RANK_YOUNG] target.permissions = GLOB.clan_ranks[CLAN_RANK_YOUNG].permissions to_chat(src, SPAN_NOTICE("Removed [player_name] from ancient.")) - log_and_message_admins("[key_name_admin(src)] has removed [player_name] from ancient.") + message_admins("[key_name_admin(src)] has removed [player_name] from ancient.") else if(input == "Make Ancient" && is_clan_manager) target.clan_rank = GLOB.clan_ranks_ordered[CLAN_RANK_ADMIN] target.permissions = CLAN_PERMISSION_ADMIN_ANCIENT to_chat(src, SPAN_NOTICE("Made [player_name] an ancient.")) - log_and_message_admins("[key_name_admin(src)] has made [player_name] an ancient.") + message_admins("[key_name_admin(src)] has made [player_name] an ancient.") else to_chat(src, SPAN_NOTICE("Moved [player_name] to [input].")) - log_and_message_admins("[key_name_admin(src)] has moved [player_name] to clan [input].") + message_admins("[key_name_admin(src)] has moved [player_name] to clan [input].") target.clan_id = clans[input] @@ -431,7 +431,7 @@ if(chosen_rank.limit_type) var/list/datum/view_record/clan_playerbase_view/CPV = DB_VIEW(/datum/view_record/clan_playerbase_view/, DB_AND(DB_COMP("clan_id", DB_EQUALS, target.clan_id), DB_COMP("rank", DB_EQUALS, GLOB.clan_ranks_ordered[input]))) - var/players_in_rank = CPV.len + var/players_in_rank = length(CPV) switch(chosen_rank.limit_type) if(CLAN_LIMIT_NUMBER) @@ -440,7 +440,7 @@ return if(CLAN_LIMIT_SIZE) var/list/datum/view_record/clan_playerbase_view/clan_players = DB_VIEW(/datum/view_record/clan_playerbase_view/, DB_COMP("clan_id", DB_EQUALS, target.clan_id)) - var/available_slots = Ceiling(clan_players.len / chosen_rank.limit) + var/available_slots = ceil(length(clan_players) / chosen_rank.limit) if(players_in_rank >= available_slots) to_chat(src, SPAN_DANGER("This slot is full! (Maximum of [chosen_rank.limit] per player in the clan, currently [available_slots])")) @@ -455,7 +455,7 @@ target.clan_rank = GLOB.clan_ranks_ordered[chosen_rank.name] target.permissions = chosen_rank.permissions - log_and_message_admins("[key_name_admin(src)] has set the rank of [player_name] to [chosen_rank.name] for their clan.") + message_admins("[key_name_admin(src)] has set the rank of [player_name] to [chosen_rank.name] for their clan.") to_chat(src, SPAN_NOTICE("Set [player_name]'s rank to [chosen_rank.name]")) target.save() diff --git a/code/modules/client/client_procs.dm b/code/modules/client/client_procs.dm index 171cade3ed4e..4d0ef56b9fdd 100644 --- a/code/modules/client/client_procs.dm +++ b/code/modules/client/client_procs.dm @@ -5,8 +5,6 @@ #define UPLOAD_LIMIT 10485760 //Restricts client uploads to the server to 10MB //Boosted this thing. What's the worst that can happen? #define MIN_CLIENT_VERSION 0 //Just an ambiguously low version for now, I don't want to suddenly stop people playing. //I would just like the code ready should it ever need to be used. -#define GOOD_BYOND_MAJOR 513 -#define GOOD_BYOND_MINOR 1500 GLOBAL_LIST_INIT(blacklisted_builds, list( "1407" = "bug preventing client display overrides from working leads to clients being able to see things/mobs they shouldn't be able to see", @@ -15,7 +13,7 @@ GLOBAL_LIST_INIT(blacklisted_builds, list( "1548" = "bug breaking the \"alpha\" functionality in the game, allowing clients to be able to see things/mobs they should not be able to see.", )) -#define LIMITER_SIZE 5 +#define LIMITER_SIZE 12 #define CURRENT_SECOND 1 #define SECOND_COUNT 2 #define CURRENT_MINUTE 3 @@ -45,6 +43,7 @@ GLOBAL_LIST_INIT(whitelisted_client_procs, list( /client/proc/toggle_auto_eject_to_hand, /client/proc/toggle_eject_to_hand, /client/proc/toggle_automatic_punctuation, + /client/proc/toggle_ammo_display_type, /client/proc/toggle_middle_mouse_click, /client/proc/toggle_ability_deactivation, /client/proc/toggle_clickdrag_override, @@ -55,8 +54,16 @@ GLOBAL_LIST_INIT(whitelisted_client_procs, list( /client/proc/toggle_admin_sound_types, /client/proc/receive_random_tip, /client/proc/set_eye_blur_type, + /client/proc/set_flash_type, + /client/proc/set_crit_type, )) +/client/proc/reduce_minute_count() + if (!topiclimiter) + topiclimiter = new(LIMITER_SIZE) + if(topiclimiter[MINUTE_COUNT] > 0) + topiclimiter[MINUTE_COUNT] -= 1 + /client/Topic(href, href_list, hsrc) if(!usr || usr != mob) //stops us calling Topic for somebody else's client. Also helps prevent usr=null return @@ -181,39 +188,21 @@ GLOBAL_LIST_INIT(whitelisted_client_procs, list( var/datum/entity/player/P = get_player_from_key(key) P.add_note(add, FALSE, NOTE_MERIT) - if(href_list["add_wl_info_1"]) - var/key = href_list["add_wl_info_1"] - var/add = input("Add Commander Note") as null|message - if(!add) - return - - var/datum/entity/player/P = get_player_from_key(key) - P.add_note(add, FALSE, NOTE_COMMANDER) - - if(href_list["add_wl_info_2"]) - var/key = href_list["add_wl_info_2"] - var/add = input("Add Synthetic Note") as null|message - if(!add) - return - - var/datum/entity/player/P = get_player_from_key(key) - P.add_note(add, FALSE, NOTE_SYNTHETIC) - - if(href_list["add_wl_info_3"]) - var/key = href_list["add_wl_info_3"] - var/add = input("Add Yautja Note") as null|message + if(href_list["add_wl_info"]) + var/key = href_list["add_wl_info"] + var/add = input("Add Whitelist Note") as null|message if(!add) return var/datum/entity/player/P = get_player_from_key(key) - P.add_note(add, FALSE, NOTE_YAUTJA) + P.add_note(add, FALSE, NOTE_WHITELIST) if(href_list["remove_wl_info"]) var/key = href_list["remove_wl_info"] var/index = text2num(href_list["remove_index"]) var/datum/entity/player/P = get_player_from_key(key) - P.remove_note(index) + P.remove_note(index, whitelist = TRUE) switch(href_list["_src_"]) if("admin_holder") @@ -277,7 +266,7 @@ GLOBAL_LIST_INIT(whitelisted_client_procs, list( //Helps prevent multiple files being uploaded at once. Or right after eachother. var/time_to_wait = fileaccess_timer - world.time if(time_to_wait > 0) - to_chat(src, "Error: AllowUpload(): Spam prevention. Please wait [round(time_to_wait/10)] seconds.") + to_chat(src, "Error: AllowUpload(): Spam prevention. Please wait [floor(time_to_wait/10)] seconds.") return 0 fileaccess_timer = world.time + FTPDELAY */ return 1 @@ -308,23 +297,19 @@ GLOBAL_LIST_INIT(whitelisted_client_procs, list( var/static/next_external_rsc = 0 var/list/external_rsc_urls = CONFIG_GET(keyed_list/external_rsc_urls) if(length(external_rsc_urls)) - next_external_rsc = WRAP(next_external_rsc+1, 1, external_rsc_urls.len+1) + next_external_rsc = WRAP(next_external_rsc+1, 1, length(external_rsc_urls)+1) preload_rsc = external_rsc_urls[next_external_rsc] player_entity = setup_player_entity(ckey) - if(!CONFIG_GET(flag/no_localhost_rank)) - var/static/list/localhost_addresses = list("127.0.0.1", "::1") - if(isnull(address) || (address in localhost_addresses)) - var/datum/admins/admin = new("!localhost!", RL_HOST, ckey) - admin.associate(src) - GLOB.RoleAuthority.roles_whitelist[ckey] = WHITELIST_EVERYTHING + if(check_localhost_status()) + var/datum/admins/admin = new("!localhost!", RL_HOST, ckey) + admin.associate(src) //Admin Authorisation admin_holder = GLOB.admin_datums[ckey] if(admin_holder) admin_holder.associate(src) - notify_login() add_pref_verbs() //preferences datum - also holds some persistent data for the client (because we may as well keep these datums to a minimum) @@ -337,6 +322,8 @@ GLOBAL_LIST_INIT(whitelisted_client_procs, list( prefs.last_id = computer_id //these are gonna be used for banning fps = prefs.fps + notify_login() + load_xeno_name() human_name_ban = prefs.human_name_ban @@ -358,14 +345,34 @@ GLOBAL_LIST_INIT(whitelisted_client_procs, list( INVOKE_ASYNC(src, /client/proc/set_macros) // Version check below if we ever need to start checking against BYOND versions again. - - /*if((byond_version < world.byond_version) || ((byond_version == world.byond_version) && (byond_build < world.byond_build))) - src << "Your version of Byond (v[byond_version].[byond_build]) differs from the server (v[world.byond_version].[world.byond_build]). You may experience graphical glitches, crashes, or other errors. You will be disconnected until your version matches or exceeds the server version.
          \ - Direct Download (Windows Installer): http://www.byond.com/download/build/[world.byond_version]/[world.byond_version].[world.byond_build]_byond.exe
          \ - Other versions (search for [world.byond_build] or higher): http://www.byond.com/download/build/[world.byond_version]
          " + var/breaking_version = CONFIG_GET(number/client_error_version) + var/breaking_build = CONFIG_GET(number/client_error_build) + var/warn_version = CONFIG_GET(number/client_warn_version) + var/warn_build = CONFIG_GET(number/client_warn_build) + + if (byond_version < breaking_version || (byond_version == breaking_version && byond_build < breaking_build)) //Out of date client. + to_chat_immediate(src, SPAN_DANGER("Your version of BYOND is too old:")) + to_chat_immediate(src, CONFIG_GET(string/client_error_message)) + to_chat_immediate(src, "Your version: [byond_version].[byond_build]") + to_chat_immediate(src, "Required version: [breaking_version].[breaking_build] or later") + to_chat_immediate(src, "Visit BYOND's website to get the latest version of BYOND.") qdel(src) - return*/ - //hardcode for now + return + + if (byond_version < warn_version || (byond_version == warn_version && byond_build < warn_build)) //We have words for this client. + if(CONFIG_GET(flag/client_warn_popup)) + var/msg = "Your version of BYOND may be getting out of date:
          " + msg += CONFIG_GET(string/client_warn_message) + "

          " + msg += "Your version: [byond_version].[byond_build]
          " + msg += "Required version to remove this message: [warn_version].[warn_build] or later
          " + msg += "Visit BYOND's website to get the latest version of BYOND.
          " + src << browse(msg, "window=warning_popup") + else + to_chat(src, SPAN_DANGER("Your version of BYOND may be getting out of date:")) + to_chat(src, CONFIG_GET(string/client_warn_message)) + to_chat(src, "Your version: [byond_version].[byond_build]") + to_chat(src, "Required version to remove this message: [warn_version].[warn_build] or later") + to_chat(src, "Visit BYOND's website to get the latest version of BYOND.") if (num2text(byond_build) in GLOB.blacklisted_builds) log_access("Failed login: [key] - blacklisted byond build ([byond_version].[byond_build])") @@ -376,10 +383,6 @@ GLOBAL_LIST_INIT(whitelisted_client_procs, list( qdel(src) return - //do this check after the blacklist check to avoid confusion - if((byond_version < GOOD_BYOND_MAJOR) || ((byond_version == GOOD_BYOND_MAJOR) && (byond_build < GOOD_BYOND_MINOR))) - to_chat(src, FONT_SIZE_HUGE(SPAN_BOLDNOTICE("YOUR BYOND VERSION IS NOT WELL SUITED FOR THIS SERVER. Download latest BETA build or you may suffer random crashes or disconnects."))) - // Initialize tgui panel stat_panel.initialize( inline_html = file("html/statbrowser.html"), @@ -440,7 +443,7 @@ GLOBAL_LIST_INIT(whitelisted_client_procs, list( view = GLOB.world_view_size - SEND_GLOBAL_SIGNAL(COMSIG_GLOB_CLIENT_LOGIN, src) + SEND_GLOBAL_SIGNAL(COMSIG_GLOB_CLIENT_LOGGED_IN, src) ////////////// //DISCONNECT// @@ -470,7 +473,7 @@ GLOBAL_LIST_INIT(whitelisted_client_procs, list( SSping.currentrun -= src log_access("Logout: [key_name(src)]") - if(CLIENT_IS_STAFF(src)) + if(CLIENT_IS_STAFF(src) && !CLIENT_IS_STEALTHED(src)) message_admins("Admin logout: [key_name(src)]") var/list/adm = get_admin_counts(R_MOD) @@ -487,7 +490,7 @@ GLOBAL_LIST_INIT(whitelisted_client_procs, list( /// Handles login-related logging and associated notifications /client/proc/notify_login() log_access("Login: [key_name(src)] from [address ? address : "localhost"]-[computer_id] || BYOND v[byond_version].[byond_build]") - if(CLIENT_IS_STAFF(src)) + if(CLIENT_IS_STAFF(src) && !CLIENT_IS_STEALTHED(src)) message_admins("Admin login: [key_name(src)]") var/list/adm = get_admin_counts(R_MOD) @@ -842,3 +845,70 @@ GLOBAL_LIST_INIT(whitelisted_client_procs, list( total_t3_playtime += get_job_playtime(src, caste_name) return total_t3_playtime + +/client/verb/action_hide_menu() + set name = "Show/Hide Actions" + set category = "IC" + + var/mob/user = usr + + var/list/actions_list = list() + for(var/datum/action/action as anything in user.actions) + var/action_name = action.name + if(action.player_hidden) + action_name += " (Hidden)" + actions_list[action_name] += action + + if(!LAZYLEN(actions_list)) + to_chat(user, SPAN_WARNING("You have no actions available.")) + return + + var/selected_action_name = tgui_input_list(user, "Show or hide selected action", "Show/Hide Actions", actions_list, 30 SECONDS) + if(!selected_action_name) + to_chat(user, SPAN_WARNING("You did not select an action.")) + return + + var/datum/action/selected_action = actions_list[selected_action_name] + selected_action.player_hidden = !selected_action.player_hidden + user.update_action_buttons() + + if(!selected_action.player_hidden && selected_action.hidden) //Inform the player that even if they are unhiding it, itll still not be visible + to_chat(user, SPAN_NOTICE("[selected_action] is forcefully hidden, bypassing player unhiding.")) + + +/client/proc/check_whitelist_status(flag_to_check) + if(check_localhost_status()) + return TRUE + + if((flag_to_check & WHITELIST_MENTOR) && CLIENT_IS_MENTOR(src)) + return TRUE + + if((flag_to_check & WHITELIST_JOE) && CLIENT_IS_STAFF(src)) + return TRUE + + if(!player_data) + load_player_data() + if(!player_data) + return FALSE + + return player_data.check_whitelist_status(flag_to_check) + +/client/proc/check_whitelist_status_list(flags_to_check) /// Logical OR list, not match all. + var/success = FALSE + if(!player_data) + load_player_data() + for(var/bitfield in flags_to_check) + success = player_data.check_whitelist_status(bitfield) + if(success) + break + return success + +/client/proc/check_localhost_status() + if(CONFIG_GET(flag/no_localhost_rank)) + return FALSE + + var/static/list/localhost_addresses = list("127.0.0.1", "::1") + if(isnull(address) || (address in localhost_addresses)) + return TRUE + + return FALSE diff --git a/code/modules/client/country_flags.dm b/code/modules/client/country_flags.dm index 4955c446aea1..d72f0fbd5a98 100644 --- a/code/modules/client/country_flags.dm +++ b/code/modules/client/country_flags.dm @@ -13,16 +13,13 @@ var/page_content = http_response["CONTENT"] if(page_content) var/list/geodata = json_decode(html_decode(file2text(page_content))) - if(geodata["countryCode"] == "GB") - if((geodata["regionName"] == "Scotland") || (geodata["regionName"] == "Wales")) - origin?.country = geodata["regionName"] - return geodata["regionName"] - else - origin?.country = geodata["countryCode"] - return geodata["countryCode"] + if(geodata["countryCode"] == "GB" && ((geodata["regionName"] == "Scotland") || (geodata["regionName"] == "Wales"))) + origin?.country = geodata["regionName"] + else if(geodata["countryCode"] == "CA" && (geodata["regionName"] == "Quebec")) + origin?.country = geodata["regionName"] else origin?.country = geodata["countryCode"] - return geodata["countryCode"] + return geodata["countryCode"] else //null response, ratelimited most likely. Try again in 60s addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(ip2country), ipaddr, origin), 60 SECONDS) diff --git a/code/modules/client/player_details.dm b/code/modules/client/player_details.dm index 634fd8fb627e..12e50647536b 100644 --- a/code/modules/client/player_details.dm +++ b/code/modules/client/player_details.dm @@ -17,7 +17,7 @@ GLOBAL_LIST_EMPTY(player_details) // ckey -> /datum/player_details /proc/log_played_names(ckey, ...) if(!ckey) return - if(args.len < 2) + if(length(args) < 2) return var/list/names = args.Copy(2) var/datum/player_details/P = GLOB.player_details[ckey] diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 6c52b497f9a3..b4ee572d8d2d 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -65,6 +65,8 @@ GLOBAL_LIST_INIT(bgstate_options, list( var/chat_display_preferences = CHAT_TYPE_ALL var/item_animation_pref_level = SHOW_ITEM_ANIMATIONS_ALL var/pain_overlay_pref_level = PAIN_OVERLAY_BLURRY + var/flash_overlay_pref = FLASH_OVERLAY_WHITE + var/crit_overlay_pref = CRIT_OVERLAY_WHITE var/UI_style_color = "#ffffff" var/UI_style_alpha = 255 var/View_MC = FALSE @@ -152,8 +154,10 @@ GLOBAL_LIST_INIT(bgstate_options, list( var/g_eyes = 0 //Eye color var/b_eyes = 0 //Eye color var/species = "Human" //Species datum to use. - var/ethnicity = "Western" // Ethnicity - var/body_type = "Mesomorphic (Average)" // Body Type + var/ethnicity = "Western" //Legacy, kept to update save files + var/skin_color = "Pale 2" // Skin color + var/body_size = "Average" // Body Size + var/body_type = "Lean" // Body Type var/language = "None" //Secondary language var/list/gear //Custom/fluff item loadout. var/preferred_squad = "None" @@ -239,11 +243,13 @@ GLOBAL_LIST_INIT(bgstate_options, list( /// if this client has tooltips enabled var/tooltips = TRUE + /// A list of tutorials that the client has completed, saved across rounds + var/list/completed_tutorials = list() /// If this client has auto observe enabled, used by /datum/orbit_menu var/auto_observe = TRUE /datum/preferences/New(client/C) - key_bindings = deepCopyList(GLOB.hotkey_keybinding_list_by_key) // give them default keybinds and update their movement keys + key_bindings = deep_copy_list(GLOB.hotkey_keybinding_list_by_key) // give them default keybinds and update their movement keys macros = new(C, src) if(istype(C)) owner = C @@ -306,13 +312,13 @@ GLOBAL_LIST_INIT(bgstate_options, list( dat += "
          " dat += "Human - " dat += "Xenomorph - " - if(GLOB.RoleAuthority.roles_whitelist[user.ckey] & WHITELIST_COMMANDER) + if(owner.check_whitelist_status(WHITELIST_COMMANDER)) dat += "Commanding Officer - " - if(GLOB.RoleAuthority.roles_whitelist[user.ckey] & WHITELIST_SYNTHETIC) + if(owner.check_whitelist_status(WHITELIST_SYNTHETIC)) dat += "Synthetic - " - if(GLOB.RoleAuthority.roles_whitelist[user.ckey] & WHITELIST_PREDATOR) + if(owner.check_whitelist_status(WHITELIST_PREDATOR)) dat += "Yautja - " - if(GLOB.RoleAuthority.roles_whitelist[user.ckey] & WHITELIST_MENTOR) + if(owner.check_whitelist_status(WHITELIST_MENTOR)) dat += "Mentor - " dat += "Settings - " dat += "Special Roles" @@ -333,8 +339,9 @@ GLOBAL_LIST_INIT(bgstate_options, list( dat += "®" dat += "Age: [age]
          " dat += "Gender: [gender == MALE ? "Male" : "Female"]
          " - dat += "Ethnicity: [ethnicity]
          " - dat += "Body Type: [body_type]
          " + dat += "Skin Color: [skin_color]
          " + dat += "Body Size: [body_size]
          " + dat += "Body Muscularity: [body_type]
          " dat += "Traits: Character Traits" dat += "
          " @@ -397,7 +404,7 @@ GLOBAL_LIST_INIT(bgstate_options, list( if(length(gear)) dat += "
          " - for(var/i = 1; i <= gear.len; i++) + for(var/i = 1; i <= length(gear); i++) var/datum/gear/G = GLOB.gear_datums_by_name[gear[i]] if(G) total_cost += G.cost @@ -409,7 +416,7 @@ GLOBAL_LIST_INIT(bgstate_options, list( if(total_cost < MAX_GEAR_COST) dat += " Add" - if(gear && gear.len) + if(LAZYLEN(gear)) dat += " Clear" dat += "" @@ -482,7 +489,7 @@ GLOBAL_LIST_INIT(bgstate_options, list( n++ if(MENU_CO) - if(GLOB.RoleAuthority.roles_whitelist[user.ckey] & WHITELIST_COMMANDER) + if(owner.check_whitelist_status(WHITELIST_COMMANDER)) dat += "
          " dat += "

          Commander Settings:

          " dat += "Commander Whitelist Status: [commander_status]
          " @@ -492,7 +499,7 @@ GLOBAL_LIST_INIT(bgstate_options, list( else dat += "You do not have the whitelist for this role." if(MENU_SYNTHETIC) - if(GLOB.RoleAuthority.roles_whitelist[user.ckey] & WHITELIST_SYNTHETIC) + if(owner.check_whitelist_status(WHITELIST_SYNTHETIC)) dat += "
          " dat += "

          Synthetic Settings:

          " dat += "Synthetic Name: [synthetic_name]
          " @@ -502,7 +509,7 @@ GLOBAL_LIST_INIT(bgstate_options, list( else dat += "You do not have the whitelist for this role." if(MENU_YAUTJA) - if(GLOB.RoleAuthority.roles_whitelist[user.ckey] & WHITELIST_PREDATOR) + if(owner.check_whitelist_status(WHITELIST_PREDATOR)) dat += "
          " dat += "

          Yautja Information:

          " dat += "Yautja Name: [predator_name]
          " @@ -516,7 +523,7 @@ GLOBAL_LIST_INIT(bgstate_options, list( dat += "
          " dat += "

          Equipment Setup:

          " - if(GLOB.RoleAuthority.roles_whitelist[user.ckey] & WHITELIST_YAUTJA_LEGACY) + if(owner.check_whitelist_status(WHITELIST_YAUTJA_LEGACY)) dat += "Legacy Gear: [predator_use_legacy]
          " dat += "Translator Type: [predator_translator_type]
          " dat += "Mask Style: ([predator_mask_type])
          " @@ -540,7 +547,7 @@ GLOBAL_LIST_INIT(bgstate_options, list( else dat += "You do not have the whitelist for this role." if(MENU_MENTOR) - if(GLOB.RoleAuthority.roles_whitelist[user.ckey] & WHITELIST_MENTOR) + if(owner.check_whitelist_status(WHITELIST_MENTOR)) dat += "Nothing here. For now." else dat += "You do not have the whitelist for this role." @@ -573,6 +580,7 @@ GLOBAL_LIST_INIT(bgstate_options, list( dat += "Ghost Ears: [(toggles_chat & CHAT_GHOSTEARS) ? "All Speech" : "Nearest Creatures"]
          " dat += "Ghost Sight: [(toggles_chat & CHAT_GHOSTSIGHT) ? "All Emotes" : "Nearest Creatures"]
          " dat += "Ghost Radio: [(toggles_chat & CHAT_GHOSTRADIO) ? "All Chatter" : "Nearest Speakers"]
          " + dat += "Ghost Spy Radio: [(toggles_chat & CHAT_LISTENINGBUG) ? "Hear" : "Silence"] listening devices
          " dat += "Ghost Hivemind: [(toggles_chat & CHAT_GHOSTHIVEMIND) ? "Show Hivemind" : "Hide Hivemind"]
          " dat += "Abovehead Chat: [lang_chat_disabled ? "Hide" : "Show"]
          " dat += "Abovehead Emotes: [(toggles_langchat & LANGCHAT_SEE_EMOTES) ? "Show" : "Hide"]
          " @@ -587,8 +595,12 @@ GLOBAL_LIST_INIT(bgstate_options, list( dat += "tgui Window Mode: [(tgui_fancy) ? "Fancy (default)" : "Compatible (slower)"]
          " dat += "tgui Window Placement: [(tgui_lock) ? "Primary monitor" : "Free (default)"]
          " dat += "Play Admin Sounds: [(toggles_sound & SOUND_MIDI) ? "Yes" : "No"]
          " + dat += "Play Announcement Sounds As Ghost: [(toggles_sound & SOUND_OBSERVER_ANNOUNCEMENTS) ? "Yes" : "No"]
          " + dat += "Play Fax Sounds As Ghost: [(toggles_sound & SOUND_FAX_MACHINE) ? "Yes" : "No"]
          " dat += "Toggle Meme or Atmospheric Sounds: Toggle
          " dat += "Set Eye Blur Type: Set
          " + dat += "Set Flash Type: Set
          " + dat += "Set Crit Type: Set
          " dat += "Play Lobby Music: [(toggles_sound & SOUND_LOBBY) ? "Yes" : "No"]
          " dat += "Play VOX Announcements: [(hear_vox) ? "Yes" : "No"]
          " dat += "Default Ghost Night Vision Level: [ghost_vision_pref]
          " @@ -623,6 +635,8 @@ GLOBAL_LIST_INIT(bgstate_options, list( [toggle_prefs & TOGGLE_MIDDLE_MOUSE_SWAP_HANDS ? "On" : "Off"]
          " dat += "Toggle Vendors Vending to Hands: \ [toggle_prefs & TOGGLE_VEND_ITEM_TO_HAND ? "On" : "Off"]
          " + dat += "Toggle Semi-Auto Ammo Display Limiter: \ + [toggle_prefs & TOGGLE_AMMO_DISPLAY_TYPE ? "On" : "Off"]
          " dat += "Toggle Item Animations Detail Level
          " dat += "Toggle Dual Wield Functionality
          " if(MENU_SPECIAL) //wart @@ -633,7 +647,7 @@ GLOBAL_LIST_INIT(bgstate_options, list( dat += "Spawn as Engineer: [toggles_ert & PLAY_ENGINEER ? "Yes" : "No"]
          " dat += "Spawn as Specialist: [toggles_ert & PLAY_HEAVY ? "Yes" : "No"]
          " dat += "Spawn as Smartgunner: [toggles_ert & PLAY_SMARTGUNNER ? "Yes" : "No"]
          " - if(GLOB.RoleAuthority.roles_whitelist[user.ckey] & WHITELIST_SYNTHETIC) + if(owner.check_whitelist_status(WHITELIST_SYNTHETIC)) dat += "Spawn as Synth: [toggles_ert & PLAY_SYNTH ? "Yes" : "No"]
          " dat += "Spawn as Miscellaneous: [toggles_ert & PLAY_MISC ? "Yes" : "No"]
          " dat += "
          " @@ -641,14 +655,19 @@ GLOBAL_LIST_INIT(bgstate_options, list( dat += "
          " winshow(user, "preferencewindow", TRUE) - show_browser(user, dat, "Preferences", "preferencebrowser") + show_browser(user, dat, "Preferences", "preferencewindow") onclose(user, "preferencewindow", src) -//limit - The amount of jobs allowed per column. Defaults to 13 to make it look nice. -//splitJobs - Allows you split the table by job. You can make different tables for each department by including their heads. Defaults to CE to make it look nice. -//width - Screen' width. Defaults to 550 to make it look nice. -//height - Screen's height. Defaults to 500 to make it look nice. -/datum/preferences/proc/SetChoices(mob/user, limit = 19, list/splitJobs = list(JOB_CHIEF_REQUISITION), width = 950, height = 700) +/** + * Job Preferences: Preferences for role at round start. + * + * Arguments: + * * limit - The amount of jobs allowed per column. + * * splitJobs - Allows you split the table by job. You can make different tables for each department by including their heads. + * * width - Screen' width. + * * height - Screen's height. + */ +/datum/preferences/proc/SetChoices(mob/user, limit = 21, list/splitJobs = list(JOB_CHIEF_REQUISITION, JOB_WO_CMO), width = 950, height = 750) if(!GLOB.RoleAuthority) return @@ -681,7 +700,7 @@ GLOBAL_LIST_INIT(bgstate_options, list( if(jobban_isbanned(user, job.title)) HTML += "[job.disp_title]
        • " continue - else if(job.flags_startup_parameters & ROLE_WHITELISTED && !(GLOB.RoleAuthority.roles_whitelist[user.ckey] & job.flags_whitelist)) + else if(!job.check_whitelist_status(user)) HTML += "[job.disp_title]" continue else if(!job.can_play_role(user.client)) @@ -757,11 +776,16 @@ GLOBAL_LIST_INIT(bgstate_options, list( onclose(user, "mob_occupation", user.client, list("_src_" = "prefs", "preference" = "job", "task" = "close")) return -//limit - The amount of jobs allowed per column. Defaults to 13 to make it look nice. -//splitJobs - Allows you split the table by job. You can make different tables for each department by including their heads. Defaults to CE to make it look nice. -//width - Screen' width. Defaults to 550 to make it look nice. -//height - Screen's height. Defaults to 500 to make it look nice. -/datum/preferences/proc/set_job_slots(mob/user, limit = 19, list/splitJobs = list(JOB_CHIEF_REQUISITION), width = 950, height = 700) +/** + * Job Assignments window: Assign unique characters to a particular job. + * + * Arguments: + * * limit - The amount of jobs allowed per column. + * * splitJobs - Allows you split the table by job. You can make different tables for each department by including their heads. + * * width - Screen' width. + * * height - Screen's height. + */ +/datum/preferences/proc/set_job_slots(mob/user, limit = 21, list/splitJobs = list(JOB_CHIEF_REQUISITION, JOB_WO_CMO), width = 950, height = 750) if(!GLOB.RoleAuthority) return @@ -793,7 +817,7 @@ GLOBAL_LIST_INIT(bgstate_options, list( if(jobban_isbanned(user, job.title)) HTML += "[job.disp_title]" continue - else if(job.flags_startup_parameters & ROLE_WHITELISTED && !(GLOB.RoleAuthority.roles_whitelist[user.ckey] & job.flags_whitelist)) + else if(!job.check_whitelist_status(user)) HTML += "[job.disp_title]" continue else if(!job.can_play_role(user.client)) @@ -959,7 +983,7 @@ GLOBAL_LIST_INIT(bgstate_options, list( pref_job_slots[J.title] = JOB_SLOT_CURRENT_SLOT /datum/preferences/proc/process_link(mob/user, list/href_list) - var/whitelist_flags = GLOB.RoleAuthority.roles_whitelist[user.ckey] + switch(href_list["preference"]) if("job") @@ -1017,7 +1041,7 @@ GLOBAL_LIST_INIT(bgstate_options, list( var/datum/gear/G if(isnull(gear) || !islist(gear)) gear = list() - if(gear.len) + if(length(gear)) for(var/gear_name in gear) G = GLOB.gear_datums_by_name[gear_name] total_cost += G?.cost @@ -1032,7 +1056,7 @@ GLOBAL_LIST_INIT(bgstate_options, list( if("remove") var/i_remove = text2num(href_list["gear"]) - if(i_remove < 1 || i_remove > gear.len) return + if(i_remove < 1 || i_remove > length(gear)) return gear.Cut(i_remove, i_remove + 1) if("clear") @@ -1158,10 +1182,12 @@ GLOBAL_LIST_INIT(bgstate_options, list( real_name = character_origin.generate_human_name(gender) if ("age") age = rand(AGE_MIN, AGE_MAX) - if ("ethnicity") - ethnicity = random_ethnicity() + if ("skin_color") + skin_color = random_skin_color() if ("body_type") body_type = random_body_type() + if ("body_size") + body_size = random_body_size() if ("hair") r_hair = rand(0,255) g_hair = rand(0,255) @@ -1195,6 +1221,9 @@ GLOBAL_LIST_INIT(bgstate_options, list( if ("all") randomize_appearance() if("input") + var/datum/entity/player/player = get_player_from_key(user.ckey) + var/whitelist_flags = player.whitelist_flags + switch(href_list["preference"]) if("name") if(human_name_ban) @@ -1241,7 +1270,7 @@ GLOBAL_LIST_INIT(bgstate_options, list( if("pred_age") var/new_predator_age = tgui_input_number(user, "Choose your Predator's age(175 to 3000):", "Character Preference", 1234, 3000, 175) if(new_predator_age) - predator_age = max(min( round(text2num(new_predator_age)), 3000),175) + predator_age = max(min( floor(text2num(new_predator_age)), 3000),175) if("pred_use_legacy") var/legacy_choice = tgui_input_list(user, "What legacy set do you wish to use?", "Legacy Set", PRED_LEGACIES) if(!legacy_choice) @@ -1254,13 +1283,13 @@ GLOBAL_LIST_INIT(bgstate_options, list( predator_translator_type = new_translator_type if("pred_mask_type") var/new_predator_mask_type = tgui_input_number(user, "Choose your mask type:\n(1-12)", "Mask Selection", 1, 12, 1) - if(new_predator_mask_type) predator_mask_type = round(text2num(new_predator_mask_type)) + if(new_predator_mask_type) predator_mask_type = floor(text2num(new_predator_mask_type)) if("pred_armor_type") var/new_predator_armor_type = tgui_input_number(user, "Choose your armor type:\n(1-7)", "Armor Selection", 1, 7, 1) - if(new_predator_armor_type) predator_armor_type = round(text2num(new_predator_armor_type)) + if(new_predator_armor_type) predator_armor_type = floor(text2num(new_predator_armor_type)) if("pred_boot_type") var/new_predator_boot_type = tgui_input_number(user, "Choose your greaves type:\n(1-4)", "Greave Selection", 1, 4, 1) - if(new_predator_boot_type) predator_boot_type = round(text2num(new_predator_boot_type)) + if(new_predator_boot_type) predator_boot_type = floor(text2num(new_predator_boot_type)) if("pred_mask_mat") var/new_pred_mask_mat = tgui_input_list(user, "Choose your mask material:", "Mask Material", PRED_MATERIALS) if(!new_pred_mask_mat) @@ -1283,7 +1312,7 @@ GLOBAL_LIST_INIT(bgstate_options, list( predator_caster_material = new_pred_caster_mat if("pred_cape_type") var/datum/job/J = GLOB.RoleAuthority.roles_by_name[JOB_PREDATOR] - var/whitelist_status = GLOB.clan_ranks_ordered[J.get_whitelist_status(GLOB.RoleAuthority.roles_whitelist, owner)] + var/whitelist_status = GLOB.clan_ranks_ordered[J.get_whitelist_status(owner)] var/list/options = list("None" = "None") for(var/cape_name in GLOB.all_yautja_capes) @@ -1322,7 +1351,7 @@ GLOBAL_LIST_INIT(bgstate_options, list( if(whitelist_flags & (WHITELIST_COMMANDER_COUNCIL|WHITELIST_COMMANDER_COUNCIL_LEGACY)) options += list("Council" = WHITELIST_COUNCIL) - if(whitelist_flags & WHITELIST_COMMANDER_LEADER) + if(whitelist_flags & (WHITELIST_COMMANDER_LEADER|WHITELIST_COMMANDER_COLONEL)) options += list("Leader" = WHITELIST_LEADER) var/new_commander_status = tgui_input_list(user, "Choose your new Commander Whitelist Status.", "Commander Status", options) @@ -1475,7 +1504,7 @@ GLOBAL_LIST_INIT(bgstate_options, list( if("age") var/new_age = tgui_input_number(user, "Choose your character's age:\n([AGE_MIN]-[AGE_MAX])", "Character Preference", 19, AGE_MAX, AGE_MIN) if(new_age) - age = max(min( round(text2num(new_age)), AGE_MAX),AGE_MIN) + age = max(min( floor(text2num(new_age)), AGE_MAX),AGE_MIN) if("metadata") var/new_metadata = input(user, "Enter any information you'd like others to see, such as Roleplay-preferences:", "Game Preference" , metadata) as message|null @@ -1529,14 +1558,20 @@ GLOBAL_LIST_INIT(bgstate_options, list( if(new_h_gradient_style) grad_style = new_h_gradient_style - if ("ethnicity") - var/new_ethnicity = tgui_input_list(user, "Choose your character's ethnicity:", "Character Preferences", GLOB.ethnicities_list) + if ("skin_color") + var/new_skin_color = tgui_input_list(user, "Choose your character's skin color:", "Character Preferences", GLOB.skin_color_list) + + if (new_skin_color) + skin_color = new_skin_color + + if ("body_size") + var/new_body_size = tgui_input_list(user, "Choose your character's body size:", "Character Preferences", GLOB.body_size_list) - if (new_ethnicity) - ethnicity = new_ethnicity + if (new_body_size) + body_size = new_body_size if ("body_type") - var/new_body_type = tgui_input_list(user, "Choose your character's body type:", "Character Preferences", GLOB.body_types_list) + var/new_body_type = tgui_input_list(user, "Choose your character's body type:", "Character Preferences", GLOB.body_type_list) if (new_body_type) body_type = new_body_type @@ -1813,6 +1848,12 @@ GLOBAL_LIST_INIT(bgstate_options, list( if(!(toggles_sound & SOUND_MIDI)) user?.client?.tgui_panel?.stop_music() + if("hear_observer_announcements") + toggles_sound ^= SOUND_OBSERVER_ANNOUNCEMENTS + + if("hear_faxes") + toggles_sound ^= SOUND_FAX_MACHINE + if("lobby_music") toggles_sound ^= SOUND_LOBBY if(toggles_sound & SOUND_LOBBY) @@ -1832,6 +1873,9 @@ GLOBAL_LIST_INIT(bgstate_options, list( if("ghost_radio") toggles_chat ^= CHAT_GHOSTRADIO + if("ghost_spyradio") + toggles_chat ^= CHAT_LISTENINGBUG + if("ghost_hivemind") toggles_chat ^= CHAT_GHOSTHIVEMIND @@ -1925,7 +1969,7 @@ GLOBAL_LIST_INIT(bgstate_options, list( if("save") if(save_cooldown > world.time) - to_chat(user, SPAN_WARNING("You need to wait [round((save_cooldown-world.time)/10)] seconds before you can do that again.")) + to_chat(user, SPAN_WARNING("You need to wait [floor((save_cooldown-world.time)/10)] seconds before you can do that again.")) return var/datum/origin/character_origin = GLOB.origins[origin] var/name_error = character_origin.validate_name(real_name) @@ -1941,7 +1985,7 @@ GLOBAL_LIST_INIT(bgstate_options, list( if("reload") if(reload_cooldown > world.time) - to_chat(user, SPAN_WARNING("You need to wait [round((reload_cooldown-world.time)/10)] seconds before you can do that again.")) + to_chat(user, SPAN_WARNING("You need to wait [floor((reload_cooldown-world.time)/10)] seconds before you can do that again.")) return load_preferences() load_character() @@ -1991,7 +2035,8 @@ GLOBAL_LIST_INIT(bgstate_options, list( if(!istype(character)) return - find_assigned_slot(job_title, is_late_join) + if(job_title) + find_assigned_slot(job_title, is_late_join) if(check_datacore && !(be_random_body && be_random_name)) for(var/datum/data/record/record as anything in GLOB.data_core.locked) if(record.fields["name"] == real_name) @@ -2033,8 +2078,9 @@ GLOBAL_LIST_INIT(bgstate_options, list( character.age = age character.gender = gender - character.ethnicity = ethnicity + character.skin_color = skin_color character.body_type = body_type + character.body_size = body_size character.r_eyes = r_eyes character.g_eyes = g_eyes @@ -2106,15 +2152,16 @@ GLOBAL_LIST_INIT(bgstate_options, list( message_admins("[character] ([character.ckey]) has spawned with their gender as plural or neuter. Please notify coders.") character.gender = MALE -// Transfers the character's physical characteristics (age, gender, ethnicity, etc) to the mob +// Transfers the character's physical characteristics (age, gender, skin_color, etc) to the mob /datum/preferences/proc/copy_appearance_to(mob/living/carbon/human/character, safety = 0) if(!istype(character)) return character.age = age character.gender = gender - character.ethnicity = ethnicity + character.skin_color = skin_color character.body_type = body_type + character.body_size = body_size character.r_eyes = r_eyes character.g_eyes = g_eyes @@ -2298,6 +2345,22 @@ GLOBAL_LIST_INIT(bgstate_options, list( show_browser(user, dat, "Character Traits", "character_traits") update_preview_icon(TRUE) +/// Converts a client's list of completed tutorials into a string for saving +/datum/preferences/proc/tutorial_list_to_savestring() + if(!length(completed_tutorials)) + return "" + + var/return_string = "" + var/last_id = completed_tutorials[length(completed_tutorials)] + for(var/tutorial_id in completed_tutorials) + return_string += tutorial_id + (tutorial_id != last_id ? ";" : "") + return return_string + +/// Converts a saved string of completed tutorials into a list for in-game use +/datum/preferences/proc/tutorial_savestring_to_list(savestring) + completed_tutorials = splittext(savestring, ";") + return completed_tutorials + #undef MENU_MARINE #undef MENU_XENOMORPH #undef MENU_CO diff --git a/code/modules/client/preferences_gear.dm b/code/modules/client/preferences_gear.dm index a71f7dbcb3e9..13a31b59fa97 100644 --- a/code/modules/client/preferences_gear.dm +++ b/code/modules/client/preferences_gear.dm @@ -58,14 +58,26 @@ GLOBAL_LIST_EMPTY(gear_datums_by_name) display_name = "Ballistic goggles, black" path = /obj/item/clothing/glasses/mgoggles/black +/datum/gear/eyewear/goggles_black/prescription + display_name = "Prescription ballistic goggles, black" + path = /obj/item/clothing/glasses/mgoggles/black/prescription + /datum/gear/eyewear/goggles_orange display_name = "Ballistic goggles, orange" path = /obj/item/clothing/glasses/mgoggles/orange +/datum/gear/eyewear/goggles_orange/prescription + display_name = "Prescription ballistic goggles, orange" + path = /obj/item/clothing/glasses/mgoggles/orange/prescription + /datum/gear/eyewear/goggles2 display_name = "Ballistic goggles, M1A1" path = /obj/item/clothing/glasses/mgoggles/v2 +/datum/gear/eyewear/goggles2/prescription + display_name = "Prescription ballistic goggles, M1A1" + path = /obj/item/clothing/glasses/mgoggles/v2/prescription + /datum/gear/eyewear/bimex_shades display_name = "BiMex personal shades" path = /obj/item/clothing/glasses/sunglasses/big @@ -215,7 +227,7 @@ GLOBAL_LIST_EMPTY(gear_datums_by_name) /datum/gear/headwear/uscm/beret_green display_name = "USCM beret, green" - path = /obj/item/clothing/head/beret/cm + path = /obj/item/clothing/head/beret/cm/green /datum/gear/headwear/uscm/beret_tan display_name = "USCM beret, tan" @@ -503,6 +515,10 @@ GLOBAL_LIST_EMPTY(gear_datums_by_name) display_name = "Card, Uno Reverse - yellow" path = /obj/item/toy/handcard/uno_reverse_yellow +/datum/gear/toy/card/trading_card + display_name = "Card, random WeyYu Trading" + path = /obj/item/toy/trading_card + /datum/gear/toy/deck display_name = "Deck of cards, regular" path = /obj/item/toy/deck @@ -511,6 +527,10 @@ GLOBAL_LIST_EMPTY(gear_datums_by_name) display_name = "Deck of cards, Uno" path = /obj/item/toy/deck/uno +/datum/gear/toy/trading_card + display_name = "Trading Card Packet" + path = /obj/item/storage/fancy/trading_card + /datum/gear/toy/d6 display_name = "Die, 6 sides" path = /obj/item/toy/dice @@ -863,6 +883,14 @@ GLOBAL_LIST_EMPTY(gear_datums_by_name) display_name = "Lighter, zippo" path = /obj/item/tool/lighter/zippo +/datum/gear/smoking/zippo/black + display_name = "Black lighter, zippo" + path = /obj/item/tool/lighter/zippo/black + +/datum/gear/smoking/zippo/blue + display_name = "Blue lighter, zippo" + path = /obj/item/tool/lighter/zippo/blue + /datum/gear/smoking/electronic_cigarette display_name = "Electronic cigarette" path = /obj/item/clothing/mask/electronic_cigarette @@ -891,7 +919,7 @@ GLOBAL_LIST_EMPTY(gear_datums_by_name) /datum/gear/misc/facepaint_skull display_name = "Facepaint, skull" path = /obj/item/facepaint/skull - cost = 3 + cost = 3 /datum/gear/misc/facepaint_body display_name = "Fullbody paint" @@ -924,6 +952,13 @@ GLOBAL_LIST_EMPTY(gear_datums_by_name) cost = 1 //The cadmium poisoning pays for the discounted cost longterm allowed_origins = USCM_ORIGINS +/datum/gear/misc/dogtags + display_name = "Attachable Dogtags" + path = /obj/item/clothing/accessory/dogtags + cost = 1 + slot = WEAR_IN_ACCESSORY + allowed_origins = USCM_ORIGINS + /datum/gear/misc/patch_uscm display_name = "USCM shoulder patch" path = /obj/item/clothing/accessory/patch diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm index c67effe90eb1..54e98aceea94 100644 --- a/code/modules/client/preferences_savefile.dm +++ b/code/modules/client/preferences_savefile.dm @@ -1,5 +1,5 @@ #define SAVEFILE_VERSION_MIN 8 -#define SAVEFILE_VERSION_MAX 21 +#define SAVEFILE_VERSION_MAX 24 //handles converting savefiles to new formats //MAKE SURE YOU KEEP THIS UP TO DATE! @@ -57,9 +57,8 @@ if(savefile_version < 17) //remove omniglots var/list/language_traits = list() S["traits"] >> language_traits - if(language_traits) - if(language_traits.len > 1) - language_traits = null + if(LAZYLEN(language_traits) > 1) + language_traits = null S["traits"] << language_traits if(savefile_version < 18) // adds ambient occlusion by default @@ -89,6 +88,65 @@ dual_wield_pref = DUAL_WIELD_FIRE S["dual_wield_pref"] << dual_wield_pref + if(savefile_version < 22) + var/sound_toggles + S["toggles_sound"] >> sound_toggles + sound_toggles |= SOUND_OBSERVER_ANNOUNCEMENTS + S["toggles_sound"] << sound_toggles + + if(savefile_version < 23) + var/ethnicity + var/skin_color = "pale2" + S["ethnicity"] >> ethnicity + switch(ethnicity) + if("anglo") + skin_color = "pale2" + if("western") + skin_color = "tan2" + if("germanic") + skin_color = "pale2" + if("scandinavian") + skin_color = "pale3" + if("baltic") + skin_color = "pale3" + if("sinoorient") + skin_color = "pale1" + if("southorient") + skin_color = "tan1" + if("indian") + skin_color = "tan3" + if("sino") + skin_color = "tan1" + if("mesoamerican") + skin_color = "tan3" + if("northamerican") + skin_color = "tan3" + if("southamerican") + skin_color = "tan2" + if("circumpolar") + skin_color = "tan1" + if("northafrican") + skin_color = "tan3" + if("centralafrican") + skin_color = "dark1" + if("costalafrican") + skin_color = "dark3" + if("persian") + skin_color = "tan3" + if("levant") + skin_color = "tan3" + if("australasian") + skin_color = "dark2" + if("polynesian") + skin_color = "tan3" + S["skin_color"] << skin_color + + if(savefile_version < 24) // adds fax machine sounds on by default + var/sound_toggles + S["toggles_sound"] >> sound_toggles + sound_toggles |= (SOUND_FAX_MACHINE) + S["toggles_sound"] << sound_toggles + savefile_version = SAVEFILE_VERSION_MAX return 1 @@ -100,7 +158,7 @@ /proc/sanitize_keybindings(value) var/list/base_bindings = sanitize_islist(value, list()) if(!length(base_bindings)) - base_bindings = deepCopyList(GLOB.hotkey_keybinding_list_by_key) + base_bindings = deep_copy_list(GLOB.hotkey_keybinding_list_by_key) for(var/key in base_bindings) base_bindings[key] = base_bindings[key] & GLOB.keybindings_by_name if(!length(base_bindings[key])) @@ -144,6 +202,8 @@ S["UI_style_alpha"] >> UI_style_alpha S["item_animation_pref_level"] >> item_animation_pref_level S["pain_overlay_pref_level"] >> pain_overlay_pref_level + S["flash_overlay_pref"] >> flash_overlay_pref + S["crit_overlay_pref"] >> crit_overlay_pref S["stylesheet"] >> stylesheet S["window_skin"] >> window_skin S["fps"] >> fps @@ -227,6 +287,8 @@ UI_style_alpha = sanitize_integer(UI_style_alpha, 0, 255, initial(UI_style_alpha)) item_animation_pref_level = sanitize_integer(item_animation_pref_level, SHOW_ITEM_ANIMATIONS_NONE, SHOW_ITEM_ANIMATIONS_ALL, SHOW_ITEM_ANIMATIONS_ALL) pain_overlay_pref_level = sanitize_integer(pain_overlay_pref_level, PAIN_OVERLAY_BLURRY, PAIN_OVERLAY_LEGACY, PAIN_OVERLAY_BLURRY) + flash_overlay_pref = sanitize_integer(flash_overlay_pref, FLASH_OVERLAY_WHITE, FLASH_OVERLAY_DARK) + crit_overlay_pref = sanitize_integer(crit_overlay_pref, CRIT_OVERLAY_WHITE, CRIT_OVERLAY_DARK) window_skin = sanitize_integer(window_skin, 0, SHORT_REAL_LIMIT, initial(window_skin)) ghost_vision_pref = sanitize_inlist(ghost_vision_pref, list(GHOST_VISION_LEVEL_NO_NVG, GHOST_VISION_LEVEL_MID_NVG, GHOST_VISION_LEVEL_FULL_NVG), GHOST_VISION_LEVEL_MID_NVG) ghost_orbit = sanitize_inlist(ghost_orbit, GLOB.ghost_orbits, initial(ghost_orbit)) @@ -321,6 +383,8 @@ S["tgui_say"] << tgui_say S["item_animation_pref_level"] << item_animation_pref_level S["pain_overlay_pref_level"] << pain_overlay_pref_level + S["flash_overlay_pref"] << flash_overlay_pref + S["crit_overlay_pref"] << crit_overlay_pref S["stylesheet"] << stylesheet S["be_special"] << be_special S["default_slot"] << default_slot @@ -417,7 +481,9 @@ S["gender"] >> gender S["age"] >> age S["ethnicity"] >> ethnicity + S["skin_color"] >> skin_color S["body_type"] >> body_type + S["body_size"] >> body_size S["language"] >> language S["spawnpoint"] >> spawnpoint @@ -480,6 +546,10 @@ S["uplinklocation"] >> uplinklocation S["exploit_record"] >> exploit_record + var/tutorial_string = "" + S["completed_tutorials"] >> tutorial_string + tutorial_savestring_to_list(tutorial_string) + //Sanitize metadata = sanitize_text(metadata, initial(metadata)) real_name = reject_bad_name(real_name) @@ -492,8 +562,9 @@ be_random_body = sanitize_integer(be_random_body, 0, 1, initial(be_random_body)) gender = sanitize_gender(gender) age = sanitize_integer(age, AGE_MIN, AGE_MAX, initial(age)) - ethnicity = sanitize_ethnicity(ethnicity) + skin_color = sanitize_skin_color(skin_color) body_type = sanitize_body_type(body_type) + body_size = sanitize_body_size(body_size) r_hair = sanitize_integer(r_hair, 0, 255, initial(r_hair)) g_hair = sanitize_integer(g_hair, 0, 255, initial(g_hair)) b_hair = sanitize_integer(b_hair, 0, 255, initial(b_hair)) @@ -522,7 +593,7 @@ b_eyes = sanitize_integer(b_eyes, 0, 255, initial(b_eyes)) underwear = sanitize_inlist(underwear, gender == MALE ? GLOB.underwear_m : GLOB.underwear_f, initial(underwear)) undershirt = sanitize_inlist(undershirt, gender == MALE ? GLOB.undershirt_m : GLOB.undershirt_f, initial(undershirt)) - backbag = sanitize_integer(backbag, 1, GLOB.backbaglist.len, initial(backbag)) + backbag = sanitize_integer(backbag, 1, length(GLOB.backbaglist), initial(backbag)) preferred_armor = sanitize_inlist(preferred_armor, GLOB.armor_style_list, "Random") //b_type = sanitize_text(b_type, initial(b_type)) @@ -564,7 +635,9 @@ S["gender"] << gender S["age"] << age S["ethnicity"] << ethnicity + S["skin_color"] << skin_color S["body_type"] << body_type + S["body_size"] << body_size S["language"] << language S["hair_red"] << r_hair S["hair_green"] << g_hair @@ -625,6 +698,8 @@ S["uplinklocation"] << uplinklocation S["exploit_record"] << exploit_record + S["completed_tutorials"] << tutorial_list_to_savestring() + return 1 /// checks through keybindings for outdated unbound keys and updates them diff --git a/code/modules/client/preferences_toggles.dm b/code/modules/client/preferences_toggles.dm index 6fe334a2a0ab..cb3114f6c5a4 100644 --- a/code/modules/client/preferences_toggles.dm +++ b/code/modules/client/preferences_toggles.dm @@ -15,7 +15,7 @@ if(!admin_holder) return prefs.toggles_sound ^= SOUND_ADMINHELP prefs.save_preferences() - to_chat(usr,SPAN_BOLDNOTICE( "You will [(prefs.toggles_sound & SOUND_ADMINHELP) ? "now" : "no longer"] hear a sound when adminhelps arrive.")) + to_chat(usr, SPAN_BOLDNOTICE("You will [(prefs.toggles_sound & SOUND_ADMINHELP) ? "now" : "no longer"] hear a sound when adminhelps arrive.")) /client/proc/toggleprayers() set name = "Show/Hide Prayers" @@ -25,6 +25,22 @@ prefs.save_preferences() to_chat(src, SPAN_BOLDNOTICE("You will [(prefs.toggles_chat & CHAT_PRAYER) ? "now" : "no longer"] see prayerchat.")) +/client/verb/toggle_observer_announcement_sounds() + set name = "Hear/Silence Ghost Announcements" + set category = "Preferences.Sound" + set desc = "Toggle hearing a notification of announcements while being an observer." + prefs.toggles_sound ^= SOUND_OBSERVER_ANNOUNCEMENTS + prefs.save_preferences() + to_chat(usr, SPAN_BOLDNOTICE("You will [(prefs.toggles_sound & SOUND_OBSERVER_ANNOUNCEMENTS) ? "now" : "no longer"] hear announcement sounds as an observer.")) + +/client/verb/toggle_fax_machine_sounds() + set name = "Hear/Silence Ghost Fax Machines" + set category = "Preferences.Sound" + set desc = "Toggle hearing a notification of faxes while being an observer." + prefs.toggles_sound ^= SOUND_FAX_MACHINE + prefs.save_preferences() + to_chat(usr, SPAN_BOLDNOTICE("You will [(prefs.toggles_sound & SOUND_FAX_MACHINE) ? "now" : "no longer"] hear a fax sounds as an observer.")) + /client/verb/toggletitlemusic() set name = "Hear/Silence LobbyMusic" set category = "Preferences.Sound" @@ -256,6 +272,7 @@ "Toggle Help Intent Safety
          ", "Toggle Guns Auto-Ejecting Magazines
          ", "Toggle Guns Auto-Ejecting Magazines to Your Hands
          ", + "Toggle Semi-Auto Ammo Counter
          ", "Toggle 'Unload Weapon' Ejecting Magazines to Your Hands
          ", "Toggle Automatic Punctuation
          ", "Toggle Middle Mouse Ability Activation
          ", @@ -267,6 +284,8 @@ "Toggle Item Animations
          ", "Toggle Admin Sound Types
          ", "Set Eye Blur Type
          ", + "Set Flash Type
          ", + "Set Crit Type
          ", ) var/dat = "" @@ -305,6 +324,12 @@ to_chat(src, SPAN_BOLDNOTICE("Guns with auto-ejectors will automatically eject their magazines.")) prefs.save_preferences() + +/client/proc/toggle_ammo_display_type() + prefs.toggle_prefs ^= TOGGLE_AMMO_DISPLAY_TYPE + to_chat(usr, SPAN_NOTICE("Guns in semi-automatic mode will now display the ammo on every [SPAN_BOLD(prefs.toggle_prefs & TOGGLE_AMMO_DISPLAY_TYPE ? "fifth bullet and when the mag has less than 15 rounds left" : "single bullet")]")) + prefs.save_preferences() + /client/proc/toggle_auto_eject_to_hand() // Toggle whether guns with auto-ejectors will eject their magazines to your offhand prefs.toggle_prefs ^= TOGGLE_AUTO_EJECT_MAGAZINE_TO_HAND if(prefs.toggle_prefs & TOGGLE_AUTO_EJECT_MAGAZINE_TO_HAND) @@ -443,6 +468,7 @@ else CRASH("receive_random_tip() failed: null message") +/// Toggle in character preferences and toggle preferences to configure what kind of blur overlay is used in game; Either blurry, impaired, or legacy. /client/proc/set_eye_blur_type() var/result = tgui_alert(src, "What type of eye blur do you want?", "What type of eye blur do you want?", list("Blurry", "Impair", "Legacy")) if(result == "Blurry") @@ -456,6 +482,28 @@ to_chat(src, SPAN_NOTICE("Your vision will now have a legacy blurring effect. This is not recommended!")) prefs.save_preferences() +/// Toggle in character preferences and toggle preferences to configure what kind of flash overlay is used in game; Either white or black. +/client/proc/set_flash_type() + var/result = tgui_alert(src, "What type of flash overlay do you want?", "What type of flash overlay do you want?", list("White", "Dark")) + if(result == "White") + prefs.flash_overlay_pref = FLASH_OVERLAY_WHITE + to_chat(src, SPAN_NOTICE("If flashed your vision will now be white.")) + else if(result == "Dark") + prefs.flash_overlay_pref = FLASH_OVERLAY_DARK + to_chat(src, SPAN_NOTICE("If flashed your vision will now be dark.")) + prefs.save_preferences() + +/// Toggle in character preferences and toggle preferences to configure what kind of crit overlay is used in game; Either white or grey. +/client/proc/set_crit_type() + var/result = tgui_alert(src, "What type of crit overlay do you want?", "What type of crit overlay do you want?", list("White", "Dark")) + if(result == "White") + prefs.crit_overlay_pref = CRIT_OVERLAY_WHITE + to_chat(src, SPAN_NOTICE("If in critical condition your vision will now be white.")) + else if(result == "Dark") + prefs.crit_overlay_pref = CRIT_OVERLAY_DARK + to_chat(src, SPAN_NOTICE("If in critical condition your vision will now be dark.")) + prefs.save_preferences() + /client/verb/toggle_tgui_say() set name = "Toggle Say Input Style" set category = "Preferences.UI" @@ -602,6 +650,14 @@ to_chat(src,SPAN_BOLDNOTICE( "As a ghost, you will now [(prefs.toggles_chat & CHAT_GHOSTRADIO) ? "hear all radio chat in the world" : "only hear from nearby speakers"].")) prefs.save_preferences() +/client/proc/toggle_ghost_spyradio() + set name = "Toggle GhostSpyRadio" + set category = "Preferences.Ghost" + set desc = "Toggle between hearing listening devices or not." + prefs.toggles_chat ^= CHAT_LISTENINGBUG + to_chat(src,SPAN_BOLDNOTICE( "As a ghost, you will [(prefs.toggles_chat & CHAT_LISTENINGBUG) ? "now" : "no longer"] hear listening devices as a ghost.")) + prefs.save_preferences() + /client/proc/toggle_ghost_hud() set name = "Toggle Ghost HUDs" set category = "Preferences.Ghost" @@ -757,6 +813,7 @@ GLOBAL_LIST_INIT(ghost_prefs_verbs, list( /client/proc/toggle_ghost_ears, /client/proc/toggle_ghost_sight, /client/proc/toggle_ghost_radio, + /client/proc/toggle_ghost_spyradio, /client/proc/toggle_ghost_hivemind, /client/proc/deadchat, /client/proc/toggle_ghost_hud, diff --git a/code/modules/client/tgui_macro.dm b/code/modules/client/tgui_macro.dm index f245f1d657d4..28939fed69ca 100644 --- a/code/modules/client/tgui_macro.dm +++ b/code/modules/client/tgui_macro.dm @@ -23,11 +23,12 @@ GLOBAL_LIST_EMPTY(ui_data_keybindings) /datum/tgui_macro/ui_data(mob/user) . = list() - .["keybinds"] = prefs.key_bindings + .["player_keybinds"] = prefs.key_bindings /datum/tgui_macro/ui_static_data(mob/user) . = list() .["glob_keybinds"] = GLOB.ui_data_keybindings + .["byond_keymap"] = GLOB._kbMap /datum/tgui_macro/ui_state(mob/user) return GLOB.always_state @@ -101,6 +102,7 @@ GLOBAL_LIST_EMPTY(ui_data_keybindings) prefs.save_preferences() INVOKE_ASYNC(owner, /client/proc/set_macros) return TRUE + if("clear_keybind") var/list/kbinds = prefs.key_bindings var/kb_name = params["keybinding"] @@ -111,19 +113,21 @@ GLOBAL_LIST_EMPTY(ui_data_keybindings) for(var/key in keys) if(kbinds[key]) kbinds[key] -= kb_name - kbinds["Unbound"] += kb_name if(!length(kbinds[key])) kbinds -= key + // Add the keybind name to the 'unbound' list if it's not already in there. + kbinds["Unbound"] |= kb_name prefs.save_preferences() INVOKE_ASYNC(owner, /client/proc/set_macros) return TRUE + if("clear_all_keybinds") var/choice = tgui_alert(owner, "Would you prefer 'hotkey' or 'classic' defaults?", "Setup keybindings", list("Hotkey", "Classic", "Cancel")) if(choice == "Cancel") return TRUE prefs.hotkeys = (choice == "Hotkey") - prefs.key_bindings = (prefs.hotkeys) ? deepCopyList(GLOB.hotkey_keybinding_list_by_key) : deepCopyList(GLOB.classic_keybinding_list_by_key) + prefs.key_bindings = (prefs.hotkeys) ? deep_copy_list(GLOB.hotkey_keybinding_list_by_key) : deep_copy_list(GLOB.classic_keybinding_list_by_key) INVOKE_ASYNC(owner, /client/proc/set_macros) prefs.save_preferences() return TRUE diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index d6596474885c..323b5ead1df2 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -26,9 +26,9 @@ for(var/obj/item/clothing/accessory/accessory in accessories) if(accessory.high_visibility) ties += "\a [accessory.get_examine_line(user)]" - if(ties.len) + if(length(ties)) .+= " with [english_list(ties)] attached" - if(LAZYLEN(accessories) > ties.len) + if(LAZYLEN(accessories) > length(ties)) .+= ". \[See accessories\]" /obj/item/clothing/Topic(href, href_list) @@ -284,7 +284,7 @@ tankcheck = list(C.r_hand, C.l_hand, C.back) var/best = 0 var/bestpressure = 0 - for(var/i=1, i 1) - A = tgui_input_list(usr, "Select an accessory to remove from [src]", "Remove accessory", removables) + if(!ass.removable) + continue + var/capitalized_name = capitalize_first_letters(ass.name) + removables[capitalized_name] = image(icon = ass.icon, icon_state = ass.icon_state) + choice_to_accessory[capitalized_name] = ass + + if(LAZYLEN(removables) > 1) + var/use_radials = user.client.prefs?.no_radials_preference ? FALSE : TRUE + var/choice = use_radials ? show_radial_menu(user, targetmob, removables, require_near = FALSE) : tgui_input_list(user, "Select an accessory to remove from [src]", "Remove accessory", removables) + accessory = choice_to_accessory[choice] else - A = LAZYACCESS(accessories, 1) - if(!usr.Adjacent(src)) - to_chat(usr, SPAN_WARNING("You're too far away!")) + accessory = choice_to_accessory[removables[1]] + if(!user.Adjacent(src)) + to_chat(user, SPAN_WARNING("You're too far away!")) return - src.remove_accessory(usr,A) - removables -= A - if(!removables.len) - verbs -= /obj/item/clothing/proc/removetie_verb + + return accessory /obj/item/clothing/emp_act(severity) . = ..() diff --git a/code/modules/clothing/glasses/glasses.dm b/code/modules/clothing/glasses/glasses.dm index dae7f633f05d..88605cb3b792 100644 --- a/code/modules/clothing/glasses/glasses.dm +++ b/code/modules/clothing/glasses/glasses.dm @@ -87,6 +87,36 @@ if(istype(A, /datum/action/item_action/toggle)) A.update_button_icon() +/obj/item/clothing/glasses/proc/try_make_offhand_prescription(mob/user) + if(!prescription) + return FALSE + + var/obj/item/clothing/glasses/offhand = user.get_inactive_hand() + if(istype(offhand) && !offhand.prescription) + if(tgui_alert(user, "Do you wish to take out the prescription lenses and put them in [offhand]?", "Insert Prescription Lenses", list("Yes", "No")) == "Yes") + if(QDELETED(src) || offhand != user.get_inactive_hand()) + return FALSE + offhand.prescription = TRUE + offhand.AddElement(/datum/element/poor_eyesight_correction) + offhand.desc += " Fitted with prescription lenses." + user.visible_message(SPAN_DANGER("[user] takes the lenses out of [src] and puts them in [offhand]."), SPAN_NOTICE("You take the lenses out of [src] and put them in [offhand].")) + qdel(src) + return TRUE + + return FALSE + +/obj/item/clothing/glasses/sunglasses/prescription/attack_self(mob/user) + if(try_make_offhand_prescription(user)) + return + + return ..() + +/obj/item/clothing/glasses/regular/attack_self(mob/user) + if(try_make_offhand_prescription(user)) + return + + return ..() + /obj/item/clothing/glasses/equipped(mob/user, slot) if(active && slot == WEAR_EYES) if(!can_use_active_effect(user)) @@ -225,7 +255,7 @@ desc = "The Corps may call them Regulation Prescription Glasses but you know them as Rut Prevention Glasses. These ones actually have a proper prescribed lens." icon_state = "mBCG" item_state = "mBCG" - prescription = 1 + prescription = TRUE flags_equip_slot = SLOT_EYES|SLOT_FACE /obj/item/clothing/glasses/m42_goggles @@ -311,7 +341,7 @@ /obj/item/clothing/glasses/disco_fever/proc/apply_discovision(mob/user) //Caramelldansen HUD overlay. //Use of this filter in armed conflict is in direct contravention of the Geneva Suggestions (2120 revision) - //Colours are based on a bit of the music video. Original version was a rainbow with #c20000 and #db6c03 as well. + //Colors are based on a bit of the music video. Original version was a rainbow with #c20000 and #db6c03 as well. //Animate the obj and onmob in sync with the client. for(var/I in list(obj_glass_overlay, mob_glass_overlay)) @@ -331,35 +361,35 @@ if(!user.client) //Shouldn't happen but can't hurt to check. return - var/base_colour + var/base_colors if(!user.client.color) //No set client color. - base_colour = color_matrix_saturation(1.35) //Crank up the saturation and get ready to party. + base_colors = color_matrix_saturation(1.35) //Crank up the saturation and get ready to party. else if(istext(user.client.color)) //Hex color string. - base_colour = color_matrix_multiply(color_matrix_from_string(user.client.color), color_matrix_saturation(1.35)) - else //Colour matrix. - base_colour = color_matrix_multiply(user.client.color, color_matrix_saturation(1.35)) + base_colors = color_matrix_multiply(color_matrix_from_string(user.client.color), color_matrix_saturation(1.35)) + else //Color matrix. + base_colors = color_matrix_multiply(user.client.color, color_matrix_saturation(1.35)) var/list/colours = list( - "yellow" = color_matrix_multiply(base_colour, color_matrix_from_string("#d4c218")), - "green" = color_matrix_multiply(base_colour, color_matrix_from_string("#2dc404")), - "cyan" = color_matrix_multiply(base_colour, color_matrix_from_string("#2ac1db")), - "blue" = color_matrix_multiply(base_colour, color_matrix_from_string("#005BF7")), - "indigo" = color_matrix_multiply(base_colour, color_matrix_from_string("#b929f7")) + "yellow" = color_matrix_multiply(base_colors, color_matrix_from_string("#d4c218")), + "green" = color_matrix_multiply(base_colors, color_matrix_from_string("#2dc404")), + "cyan" = color_matrix_multiply(base_colors, color_matrix_from_string("#2ac1db")), + "blue" = color_matrix_multiply(base_colors, color_matrix_from_string("#005BF7")), + "indigo" = color_matrix_multiply(base_colors, color_matrix_from_string("#b929f7")) ) //Animate the victim's client. animate(user.client, color = colours["indigo"], time = 0.3 SECONDS, loop = -1) - animate(color = base_colour, time = 0.3 SECONDS) + animate(color = base_colors, time = 0.3 SECONDS) animate(color = colours["cyan"], time = 0.3 SECONDS) - animate(color = base_colour, time = 0.3 SECONDS) + animate(color = base_colors, time = 0.3 SECONDS) animate(color = colours["yellow"], time = 0.3 SECONDS) - animate(color = base_colour, time = 0.3 SECONDS) + animate(color = base_colors, time = 0.3 SECONDS) animate(color = colours["green"], time = 0.3 SECONDS) - animate(color = base_colour, time = 0.3 SECONDS) + animate(color = base_colors, time = 0.3 SECONDS) animate(color = colours["blue"], time = 0.3 SECONDS) - animate(color = base_colour, time = 0.3 SECONDS) + animate(color = base_colors, time = 0.3 SECONDS) animate(color = colours["yellow"], time = 0.3 SECONDS) - animate(color = base_colour, time = 0.3 SECONDS) + animate(color = base_colors, time = 0.3 SECONDS) /obj/item/clothing/glasses/disco_fever/dropped(mob/living/carbon/human/user) . = ..() @@ -404,6 +434,14 @@ active_icon_state = "mgogglesblk_down" inactive_icon_state = "mgogglesblk" +/obj/item/clothing/glasses/mgoggles/black/prescription + name = "prescription black marine ballistic goggles" + desc = "Standard issue USCM goggles. While commonly found mounted atop M10 pattern helmets, they are also capable of preventing insects, dust, and other things from getting into one's eyes. This one has black tinted lenses. ntop of that, these ones contain prescription lenses." + icon_state = "mgogglesblk" + active_icon_state = "mgogglesblk_down" + inactive_icon_state = "mgogglesblk" + prescription = TRUE + /obj/item/clothing/glasses/mgoggles/orange name = "orange marine ballistic goggles" desc = "Standard issue USCM goggles. While commonly found mounted atop M10 pattern helmets, they are also capable of preventing insects, dust, and other things from getting into one's eyes. This one has amber colored day lenses." @@ -411,6 +449,14 @@ active_icon_state = "mgogglesorg_down" inactive_icon_state = "mgogglesorg" +/obj/item/clothing/glasses/mgoggles/orange/prescription + name = "prescription orange marine ballistic goggles" + desc = "Standard issue USCM goggles. While commonly found mounted atop M10 pattern helmets, they are also capable of preventing insects, dust, and other things from getting into one's eyes. This one has amber colored day lenses." + icon_state = "mgogglesorg" + active_icon_state = "mgogglesorg_down" + inactive_icon_state = "mgogglesorg" + prescription = TRUE + /obj/item/clothing/glasses/mgoggles/v2 name = "M1A1 marine ballistic goggles" desc = "Newer issue USCM goggles. While commonly found mounted atop M10 pattern helmets, they are also capable of preventing insects, dust, and other things from getting into one's eyes. This version has larger lenses." @@ -418,6 +464,14 @@ active_icon_state = "mgoggles2_down" inactive_icon_state = "mgoggles2" +/obj/item/clothing/glasses/mgoggles/v2/prescription + name = "prescription M1A1 marine ballistic goggles" + desc = "Newer issue USCM goggles. While commonly found mounted atop M10 pattern helmets, they are also capable of preventing insects, dust, and other things from getting into one's eyes. This version has larger lenses." + icon_state = "mgoggles2" + active_icon_state = "mgoggles2_down" + inactive_icon_state = "mgoggles2" + prescription = TRUE + /obj/item/clothing/glasses/mgoggles/on_enter_storage(obj/item/storage/internal/S) ..() diff --git a/code/modules/clothing/gloves/color.dm b/code/modules/clothing/gloves/color.dm index e3658a64c2ab..3f8e2080f35e 100644 --- a/code/modules/clothing/gloves/color.dm +++ b/code/modules/clothing/gloves/color.dm @@ -1,8 +1,8 @@ /obj/item/clothing/gloves/yellow desc = "These gloves will protect the wearer from electric shock." name = "insulated gloves" - icon_state = "lightbrown" - item_state = "lightbrowngloves" + icon_state = "insulated" + item_state = "insulated" siemens_coefficient = 0 permeability_coefficient = 0.05 flags_cold_protection = BODY_FLAG_HANDS @@ -13,8 +13,8 @@ /obj/item/clothing/gloves/fyellow //Cheap Chinese Crap desc = "These gloves are cheap copies of the coveted gloves, no way this can end badly." name = "budget insulated gloves" - icon_state = "lightbrown" - item_state = "lightbrowngloves" + icon_state = "insulated" + item_state = "insulated" siemens_coefficient = 1 //Set to a default of 1, gets overridden in New() permeability_coefficient = 0.05 diff --git a/code/modules/clothing/gloves/marine_gloves.dm b/code/modules/clothing/gloves/marine_gloves.dm index 092fb41d370f..6da362da30f4 100644 --- a/code/modules/clothing/gloves/marine_gloves.dm +++ b/code/modules/clothing/gloves/marine_gloves.dm @@ -38,8 +38,8 @@ /obj/item/clothing/gloves/marine/insulated name = "marine insulated gloves" desc = "These gloves will protect the wearer from electric shock." - icon_state = "lightbrown" - item_state = "lightbrowngloves" + icon_state = "insulated" + item_state = "insulated" siemens_coefficient = 0 /obj/item/clothing/gloves/marine/black diff --git a/code/modules/clothing/head/hardhat.dm b/code/modules/clothing/head/hardhat.dm index d94789651b75..3d0471a48253 100644 --- a/code/modules/clothing/head/hardhat.dm +++ b/code/modules/clothing/head/hardhat.dm @@ -57,14 +57,15 @@ return set_light_on(toggle_on) + + update_icon() + if(user == loc) user.update_inv_head() for(var/datum/action/current_action as anything in actions) current_action.update_button_icon() - update_icon() - /obj/item/clothing/head/hardhat/attack_alien(mob/living/carbon/xenomorph/attacking_xeno) if(!can_be_broken) return diff --git a/code/modules/clothing/head/head.dm b/code/modules/clothing/head/head.dm index ac4eb485c111..86527457bfce 100644 --- a/code/modules/clothing/head/head.dm +++ b/code/modules/clothing/head/head.dm @@ -81,6 +81,9 @@ /obj/item/clothing/head/beret/cm/black icon_state = "beret_black" +/obj/item/clothing/head/beret/cm/green + icon_state = "beret_green" + /obj/item/clothing/head/beret/cm/squadberet name = "USCM Squad Beret" desc = "For those who want to show pride and have nothing to lose (in their head, at least)." @@ -247,8 +250,11 @@ /obj/item/clothing/glasses/mgoggles = HAT_GARB_RELAY_ICON_STATE, /obj/item/clothing/glasses/mgoggles/prescription = HAT_GARB_RELAY_ICON_STATE, /obj/item/clothing/glasses/mgoggles/black = HAT_GARB_RELAY_ICON_STATE, + /obj/item/clothing/glasses/mgoggles/black/prescription = HAT_GARB_RELAY_ICON_STATE, /obj/item/clothing/glasses/mgoggles/orange = HAT_GARB_RELAY_ICON_STATE, + /obj/item/clothing/glasses/mgoggles/orange/prescription = HAT_GARB_RELAY_ICON_STATE, /obj/item/clothing/glasses/mgoggles/v2 = HAT_GARB_RELAY_ICON_STATE, + /obj/item/clothing/glasses/mgoggles/v2/prescription = HAT_GARB_RELAY_ICON_STATE, /obj/item/prop/helmetgarb/helmet_nvg = HAT_GARB_RELAY_ICON_STATE, /obj/item/prop/helmetgarb/helmet_nvg/cosmetic = HAT_GARB_RELAY_ICON_STATE, /obj/item/prop/helmetgarb/helmet_nvg/marsoc = HAT_GARB_RELAY_ICON_STATE, @@ -410,10 +416,8 @@ /obj/item/clothing/head/cmcap/reporter name = "combat correspondent cap" desc = "A faithful cap for any terrain war correspondents may find themselves in." - icon = 'icons/mob/humans/onmob/contained/war_correspondent.dmi' - icon_state = "wc_flagcap" - item_state = "wc_flagcap" - contained_sprite = TRUE + icon_state = "cc_flagcap" + item_state = "cc_flagcap" flags_atom = NO_SNOW_TYPE|NO_NAME_OVERRIDE flags_marine_hat = HAT_GARB_OVERLAY diff --git a/code/modules/clothing/head/helmet.dm b/code/modules/clothing/head/helmet.dm index b4547b48be08..e52032d0cba6 100644 --- a/code/modules/clothing/head/helmet.dm +++ b/code/modules/clothing/head/helmet.dm @@ -234,7 +234,6 @@ GLOBAL_LIST_INIT(allowed_helmet_items, list( /obj/item/reagent_container/food/drinks/flask = "helmet_flask", /obj/item/reagent_container/food/drinks/flask/marine = "helmet_flask", /obj/item/reagent_container/food/snacks/eat_bar = "helmet_snack_eat", - /obj/item/reagent_container/food/snacks/packaged_burrito = "helmet_snack_burrito", /obj/item/reagent_container/food/snacks/mushroompizzaslice = "pizza", // Fuck whoever put these under different paths for some REASON /obj/item/reagent_container/food/snacks/vegetablepizzaslice = "pizza", /obj/item/reagent_container/food/snacks/meatpizzaslice = "pizza", @@ -249,9 +248,12 @@ GLOBAL_LIST_INIT(allowed_helmet_items, list( // EYEWEAR /obj/item/clothing/glasses/mgoggles = HELMET_GARB_RELAY_ICON_STATE, /obj/item/clothing/glasses/mgoggles/v2 = HELMET_GARB_RELAY_ICON_STATE, + /obj/item/clothing/glasses/mgoggles/v2/prescription = HELMET_GARB_RELAY_ICON_STATE, /obj/item/clothing/glasses/mgoggles/prescription = HELMET_GARB_RELAY_ICON_STATE, /obj/item/clothing/glasses/mgoggles/black = HELMET_GARB_RELAY_ICON_STATE, + /obj/item/clothing/glasses/mgoggles/black/prescription = HELMET_GARB_RELAY_ICON_STATE, /obj/item/clothing/glasses/mgoggles/orange = HELMET_GARB_RELAY_ICON_STATE, + /obj/item/clothing/glasses/mgoggles/orange/prescription = HELMET_GARB_RELAY_ICON_STATE, /obj/item/clothing/glasses/sunglasses = "sunglasses", /obj/item/clothing/glasses/sunglasses/prescription = "sunglasses", /obj/item/clothing/glasses/sunglasses/aviator = "aviator", @@ -364,7 +366,7 @@ GLOBAL_LIST_INIT(allowed_helmet_items, list( var/obj/structure/machinery/camera/camera var/helmet_overlays[] flags_inventory = BLOCKSHARPOBJ - flags_inv_hide = HIDEEARS + flags_inv_hide = NONE var/flags_marine_helmet = HELMET_SQUAD_OVERLAY|HELMET_GARB_OVERLAY|HELMET_DAMAGE_OVERLAY var/helmet_bash_cooldown = 0 @@ -378,7 +380,7 @@ GLOBAL_LIST_INIT(allowed_helmet_items, list( var/obj/item/storage/internal/headgear/pockets var/storage_slots = 2 // keep in mind, one slot is reserved for garb items - var/storage_slots_reserved_for_garb = 1 + var/storage_slots_reserved_for_garb = 2 var/storage_max_w_class = SIZE_TINY // can hold tiny items only, EXCEPT for glasses & metal flask. var/storage_max_storage_space = 4 @@ -474,10 +476,10 @@ GLOBAL_LIST_INIT(allowed_helmet_items, list( /obj/item/clothing/head/helmet/marine/attackby(obj/item/attacking_item, mob/user) if(istype(attacking_item, /obj/item/ammo_magazine) && world.time > helmet_bash_cooldown && user) var/obj/item/ammo_magazine/M = attacking_item - var/ammo_level = "somewhat" + var/ammo_level = "more than half full." playsound(user, 'sound/items/trayhit1.ogg', 15, FALSE) - if(M.current_rounds > (M.max_rounds/2)) - ammo_level = "more than half full." + if(M.current_rounds == (M.max_rounds/2)) + ammo_level = "half full." if(M.current_rounds < (M.max_rounds/2)) ammo_level = "less than half full." if(M.current_rounds < (M.max_rounds/6)) @@ -509,7 +511,17 @@ GLOBAL_LIST_INIT(allowed_helmet_items, list( new_action.give_to(user) return - if(HAS_TRAIT(attacking_item, TRAIT_TOOL_SCREWDRIVER) && length(inserted_visors)) + if(HAS_TRAIT(attacking_item, TRAIT_TOOL_SCREWDRIVER)) + // If there isn't anything to remove, return. + if(!length(inserted_visors)) + // If the user is trying to remove a built-in visor, give them a more helpful failure message. + switch(length(built_in_visors)) + if(1) // Messy plural handling + to_chat(user, SPAN_WARNING("The visor on [src] is built-in!")) + if(2 to INFINITY) + to_chat(user, SPAN_WARNING("The visors on [src] are built-in!")) + return + if(active_visor) var/obj/item/device/helmet_visor/temp_visor_holder = active_visor active_visor = null @@ -545,7 +557,7 @@ GLOBAL_LIST_INIT(allowed_helmet_items, list( // the human sprite is the only thing that reliably renders things, so // we have to add overlays to that. helmet_overlays = list() // Rebuild our list every time - if(pockets && pockets.contents.len && (flags_marine_helmet & HELMET_GARB_OVERLAY)) + if(pockets && length(pockets.contents) && (flags_marine_helmet & HELMET_GARB_OVERLAY)) var/list/above_band_layer = list() var/list/below_band_layer = list() var/has_helmet_band = FALSE @@ -664,30 +676,50 @@ GLOBAL_LIST_INIT(allowed_helmet_items, list( var/list/total_visors = built_in_visors + inserted_visors if(!length(total_visors)) + to_chat(user, SPAN_WARNING("There are no visors to swap to.")) return FALSE if(active_visor) + var/visor_to_deactivate = active_visor + var/skipped_hud = FALSE var/iterator = 1 - for(var/hud_type in total_visors) - if(hud_type == active_visor) + for(var/obj/item/device/helmet_visor/current_visor as anything in total_visors) + if(current_visor == active_visor || skipped_hud) if(length(total_visors) > iterator) - active_visor = total_visors[(iterator + 1)] - toggle_visor(user, total_visors[iterator], TRUE) + var/obj/item/device/helmet_visor/next_visor = total_visors[iterator + 1] + + if(!isnull(GLOB.huds[next_visor.hud_type]?.hudusers[user])) + iterator++ + skipped_hud = TRUE + continue + + if(!next_visor.can_toggle(user)) + iterator++ + skipped_hud = TRUE + continue + + active_visor = next_visor + toggle_visor(user, visor_to_deactivate, silent = TRUE) // disables the old visor toggle_visor(user) return active_visor else active_visor = null - toggle_visor(user, total_visors[iterator], FALSE) + toggle_visor(user, visor_to_deactivate, FALSE) return FALSE iterator++ - if(total_visors[1]) - active_visor = total_visors[1] + for(var/obj/item/device/helmet_visor/new_visor in total_visors) + if(!isnull(GLOB.huds[new_visor.hud_type]?.hudusers[user])) + continue + + if(!new_visor.can_toggle(user)) + continue + + active_visor = new_visor toggle_visor(user) return active_visor - active_visor = null - recalculate_visors(user) + to_chat(user, SPAN_WARNING("There are no visors to swap to currently.")) return FALSE /datum/action/item_action/cycle_helmet_huds/New(Target, obj/item/holder) @@ -768,9 +800,17 @@ GLOBAL_LIST_INIT(allowed_helmet_items, list( built_in_visors = list(new /obj/item/device/helmet_visor, new /obj/item/device/helmet_visor/medical/advanced) start_down_visor_type = /obj/item/device/helmet_visor/medical/advanced +/obj/item/clothing/head/helmet/marine/medic/white + name = "\improper M10 white corpsman helmet" + desc = "An M10 marine helmet version worn by marine hospital corpsmen. Painted in medical white and has white cross in a red square painted on its front." + icon_state = "med_helmet_white" + specialty = "M10 pattern medic white" + flags_atom = NO_SNOW_TYPE|NO_NAME_OVERRIDE + flags_marine_helmet = HELMET_GARB_OVERLAY|HELMET_DAMAGE_OVERLAY + /obj/item/clothing/head/helmet/marine/covert name = "\improper M10 covert helmet" - desc = "An M10 marine helmet version designed for use in darkened enviroments. It is coated with a special anti-reflective paint." + desc = "An M10 marine helmet version designed for use in darkened environments. It is coated with a special anti-reflective paint." icon_state = "marsoc_helmet" armor_melee = CLOTHING_ARMOR_MEDIUM armor_bullet = CLOTHING_ARMOR_MEDIUM @@ -1391,10 +1431,8 @@ GLOBAL_LIST_INIT(allowed_helmet_items, list( /obj/item/clothing/head/helmet/marine/reporter name = "press helmet" desc = "A helmet designed to make it clear that the wearer is safety aware and not looking for a fight." - icon = 'icons/mob/humans/onmob/contained/war_correspondent.dmi' - icon_state = "wc_helm" - item_state = "wc_helm" - contained_sprite = TRUE + icon_state = "cc_helmet" + item_state = "cc_helmet" flags_atom = NO_SNOW_TYPE|NO_NAME_OVERRIDE built_in_visors = list() diff --git a/code/modules/clothing/head/soft_caps.dm b/code/modules/clothing/head/soft_caps.dm index 5467e9413695..a0e95f7f0f30 100644 --- a/code/modules/clothing/head/soft_caps.dm +++ b/code/modules/clothing/head/soft_caps.dm @@ -89,6 +89,18 @@ cap_color = "ferret" black_market_value = 25 +/obj/item/clothing/head/soft/trucker + name = "\improper blue trucker hat" + desc = "It's a blue trucker hat." + icon_state = "truckercap_bluesoft" + cap_color = "truckercap_blue" + +/obj/item/clothing/head/soft/trucker/red + name = "\improper red trucker hat" + desc = "It's a red trucker hat." + icon_state = "truckercap_redsoft" + cap_color = "truckercap_red" + /obj/item/clothing/head/soft/sec name = "security cap" desc = "It's baseball hat in tasteful red color." diff --git a/code/modules/clothing/masks/miscellaneous.dm b/code/modules/clothing/masks/miscellaneous.dm index c39e6a620833..4f928f62399f 100644 --- a/code/modules/clothing/masks/miscellaneous.dm +++ b/code/modules/clothing/masks/miscellaneous.dm @@ -52,22 +52,9 @@ siemens_coefficient = 0.9 flags_armor_protection = BODY_FLAG_HEAD|BODY_FLAG_FACE|BODY_FLAG_EYES -/obj/item/clothing/mask/horsehead - name = "horse head mask" - desc = "A mask made of soft vinyl and latex, representing the head of a horse." - icon_state = "horsehead" - item_state = "horsehead" - flags_inventory = COVERMOUTH|COVEREYES - flags_inv_hide = HIDEFACE|HIDEALLHAIR|HIDEEYES|HIDEEARS - flags_armor_protection = BODY_FLAG_HEAD|BODY_FLAG_FACE|BODY_FLAG_EYES - w_class = SIZE_SMALL - var/voicechange = 0 - siemens_coefficient = 0.9 - - /obj/item/clothing/mask/balaclava name = "balaclava" - desc = "A basic single eye-hole balaclava, available in almost every sporting goods, outdoor supply, or military surplus store in existance, protects your face from the cold almost as well as it conceals it. This one is in a standard black color." + desc = "A basic single eye-hole balaclava, available in almost every sporting goods, outdoor supply, or military surplus store in existence, protects your face from the cold almost as well as it conceals it. This one is in a standard black color." icon_state = "balaclava" item_state = "balaclava" flags_inventory = COVERMOUTH|ALLOWREBREATH|ALLOWCPR @@ -78,7 +65,7 @@ /obj/item/clothing/mask/balaclava/tactical name = "green balaclava" - desc = "A basic single eye-hole balaclava, available in almost every sporting goods, outdoor supply, or military surplus store in existance, protects your face from the cold almost as well as it conceals it. This one is in a non-standard green color." + desc = "A basic single eye-hole balaclava, available in almost every sporting goods, outdoor supply, or military surplus store in existence, protects your face from the cold almost as well as it conceals it. This one is in a non-standard green color." icon_state = "swatclava" item_state = "swatclava" diff --git a/code/modules/clothing/shoes/colour.dm b/code/modules/clothing/shoes/colour.dm index b5ec4f3ab924..7d6c8ed3d5dc 100644 --- a/code/modules/clothing/shoes/colour.dm +++ b/code/modules/clothing/shoes/colour.dm @@ -41,7 +41,14 @@ /obj/item/clothing/shoes/red/knife name = "dirty red shoes" desc = "Stylish red shoes with a small space to hold a knife." - items_allowed = list(/obj/item/attachable/bayonet, /obj/item/weapon/throwing_knife, /obj/item/weapon/gun/pistol/holdout, /obj/item/weapon/gun/pistol/clfpistol, /obj/item/tool/screwdriver, /obj/item/weapon/straight_razor) + allowed_items_typecache = list( + /obj/item/attachable/bayonet, + /obj/item/weapon/throwing_knife, + /obj/item/weapon/gun/pistol/holdout, + /obj/item/weapon/gun/pistol/clfpistol, + /obj/item/tool/screwdriver, + /obj/item/weapon/straight_razor, + ) /obj/item/clothing/shoes/white name = "white shoes" @@ -61,34 +68,47 @@ /obj/item/clothing/shoes/orange name = "orange shoes" icon_state = "orange" - var/obj/item/handcuffs/chained = null + var/obj/item/restraint/handcuffs/chained = null -/obj/item/clothing/shoes/orange/proc/attach_cuffs(obj/item/handcuffs/cuffs, mob/user as mob) - if (src.chained) return +/obj/item/clothing/shoes/orange/proc/attach_cuffs(obj/item/restraint/cuffs, mob/user as mob) + if(chained) + return FALSE user.drop_held_item() cuffs.forceMove(src) - src.chained = cuffs - src.slowdown = 15 - src.icon_state = "orange1" + chained = cuffs + slowdown = 15 + icon_state = "orange1" + time_to_equip = (cuffs.breakouttime / 4) + time_to_unequip = cuffs.breakouttime + return TRUE /obj/item/clothing/shoes/orange/proc/remove_cuffs(mob/user as mob) - if (!src.chained) return + if(!chained) + return FALSE - user.put_in_hands(src.chained) - src.chained.add_fingerprint(user) + user.put_in_hands(chained) + chained.add_fingerprint(user) - src.slowdown = initial(slowdown) - src.icon_state = "orange" - src.chained = null + slowdown = initial(slowdown) + icon_state = "orange" + chained = null + time_to_equip = initial(time_to_equip) + time_to_unequip = initial(time_to_unequip) + return TRUE /obj/item/clothing/shoes/orange/attack_self(mob/user as mob) ..() remove_cuffs(user) -/obj/item/clothing/shoes/orange/attackby(H as obj, mob/user as mob) +/obj/item/clothing/shoes/orange/attackby(attacking_object as obj, mob/user as mob) ..() - if (istype(H, /obj/item/handcuffs)) - attach_cuffs(H, user) - - + if(istype(attacking_object, /obj/item/restraint)) + var/obj/item/restraint/cuffs = attacking_object + if(cuffs.target_zone == SLOT_LEGS) + attach_cuffs(cuffs, user) + +/obj/item/clothing/shoes/orange/get_examine_text(mob/user) + . = ..() + if(chained) + . += SPAN_RED("They are chained with [chained].") diff --git a/code/modules/clothing/shoes/marine_shoes.dm b/code/modules/clothing/shoes/marine_shoes.dm index c7eb4ba53982..7855075c2fb4 100644 --- a/code/modules/clothing/shoes/marine_shoes.dm +++ b/code/modules/clothing/shoes/marine_shoes.dm @@ -18,47 +18,46 @@ min_cold_protection_temperature = SHOE_MIN_COLD_PROT max_heat_protection_temperature = SHOE_MAX_HEAT_PROT siemens_coefficient = 0.7 - var/armor_stage = 0 - items_allowed = list(/obj/item/attachable/bayonet, /obj/item/weapon/throwing_knife, /obj/item/weapon/gun/pistol/holdout, /obj/item/weapon/gun/pistol/clfpistol, /obj/item/tool/screwdriver, /obj/item/tool/surgery/scalpel, /obj/item/weapon/straight_razor) - var/knife_type + allowed_items_typecache = list( + /obj/item/attachable/bayonet, + /obj/item/weapon/throwing_knife, + /obj/item/weapon/gun/pistol/holdout, + /obj/item/weapon/gun/pistol/clfpistol, + /obj/item/tool/screwdriver, + /obj/item/tool/surgery/scalpel, + /obj/item/weapon/straight_razor, + ) drop_sound = "armorequip" -/obj/item/clothing/shoes/marine/Initialize(mapload, ...) - . = ..() - if(knife_type) - stored_item = new knife_type(src) - update_icon() - /obj/item/clothing/shoes/marine/update_icon() - if(stored_item && !armor_stage) + if(stored_item) icon_state = "[initial(icon_state)]-1" else - if(!armor_stage) - icon_state = initial(icon_state) + icon_state = initial(icon_state) /obj/item/clothing/shoes/marine/knife - knife_type = /obj/item/attachable/bayonet + spawn_item_type = /obj/item/attachable/bayonet /obj/item/clothing/shoes/marine/jungle icon_state = "marine_jungle" desc = "Don't go walkin' slow, the devil's on the loose." /obj/item/clothing/shoes/marine/jungle/knife - knife_type = /obj/item/attachable/bayonet + spawn_item_type = /obj/item/attachable/bayonet /obj/item/clothing/shoes/marine/brown icon_state = "marine_brown" desc = "Standard issue combat boots for combat scenarios or combat situations. All combat, all the time. These are brown." /obj/item/clothing/shoes/marine/brown/knife - knife_type = /obj/item/attachable/bayonet + spawn_item_type = /obj/item/attachable/bayonet /obj/item/clothing/shoes/marine/monkey name = "monkey combat boots" desc = "A sturdy pair of combat boots, the reflection of the polished leather reflects your true self." icon_state = "monkey_shoes" item_state = "monkey_shoes" - knife_type = /obj/item/attachable/bayonet + spawn_item_type = /obj/item/attachable/bayonet /obj/item/clothing/shoes/marine/upp name = "military combat boots" @@ -67,10 +66,9 @@ armor_bullet = CLOTHING_ARMOR_HIGHPLUS armor_bomb = CLOTHING_ARMOR_MEDIUM armor_internaldamage = CLOTHING_ARMOR_MEDIUMHIGH - knife_type = /obj/item/attachable/bayonet/upp -/obj/item/clothing/shoes/marine/upp_knife - knife_type = /obj/item/attachable/bayonet/upp +/obj/item/clothing/shoes/marine/upp/knife + spawn_item_type = /obj/item/attachable/bayonet/upp /obj/item/clothing/shoes/marine/joe name = "biohazard boots" @@ -80,7 +78,7 @@ armor_bio = CLOTHING_ARMOR_MEDIUMHIGH armor_rad = CLOTHING_ARMOR_MEDIUMHIGH armor_internaldamage = CLOTHING_ARMOR_MEDIUMLOW - knife_type = /obj/item/attachable/bayonet + spawn_item_type = /obj/item/attachable/bayonet /obj/item/clothing/shoes/dress name = "dress shoes" @@ -120,7 +118,13 @@ flags_heat_protection = BODY_FLAG_FEET flags_inventory = FPRINT|NOSLIPPING siemens_coefficient = 0.6 - items_allowed = list(/obj/item/attachable/bayonet, /obj/item/weapon/throwing_knife, /obj/item/weapon/gun/pistol/holdout, /obj/item/weapon/gun/pistol/clfpistol, /obj/item/weapon/straight_razor) + allowed_items_typecache = list( + /obj/item/attachable/bayonet, + /obj/item/weapon/throwing_knife, + /obj/item/weapon/gun/pistol/holdout, + /obj/item/weapon/gun/pistol/clfpistol, + /obj/item/weapon/straight_razor, + ) /obj/item/clothing/shoes/veteran/pmc/update_icon() if(stored_item) @@ -128,10 +132,8 @@ else icon_state = initial(icon_state) -/obj/item/clothing/shoes/veteran/pmc/knife/Initialize(mapload, ...) - . = ..() - stored_item = new /obj/item/attachable/bayonet(src) - update_icon() +/obj/item/clothing/shoes/veteran/pmc/knife + spawn_item_type = /obj/item/attachable/bayonet /obj/item/clothing/shoes/veteran/pmc/commando name = "\improper PMC commando boots" @@ -141,22 +143,13 @@ siemens_coefficient = 0.2 unacidable = TRUE -/obj/item/clothing/shoes/veteran/pmc/commando/knife/Initialize(mapload, ...) - . = ..() - stored_item = new /obj/item/attachable/bayonet(src) - update_icon() +/obj/item/clothing/shoes/veteran/pmc/commando/knife + spawn_item_type = /obj/item/attachable/bayonet /obj/item/clothing/shoes/veteran/pmc/van_bandolier name = "hiking boots" desc = "Over stone, over ice, through sun and sand, mud and snow, into raging water and hungry bog, these will never let you down." - -/obj/item/clothing/shoes/veteran/pmc/van_bandolier/New() - ..() - var/obj/item/attachable/bayonet/upp/knife = new(src) - knife.name = "\improper Fairbairn-Sykes fighting knife" - knife.desc = "This isn't for dressing game or performing camp chores. It's almost certainly not an original. Almost." - stored_item = knife - update_icon() + spawn_item_type = /obj/item/attachable/bayonet/van_bandolier /obj/item/clothing/shoes/veteran/pmc/commando/cbrn name = "\improper M3 MOPP boots" @@ -165,22 +158,18 @@ item_state = "cbrn" armor_rad = CLOTHING_ARMOR_GIGAHIGHPLUS armor_bio = CLOTHING_ARMOR_GIGAHIGHPLUS - -/obj/item/clothing/shoes/veteran/pmc/commando/cbrn/Initialize(mapload, ...) - . = ..() - stored_item = new /obj/item/attachable/bayonet(src) - update_icon() + spawn_item_type = /obj/item/attachable/bayonet /obj/item/clothing/shoes/marine/corporate name = "rugged boots" desc = "These synth-leather boots seem high quality when first worn, but quickly detoriate, especially in the environments the corporate security members these are issued to operate in. Still, better than nothing." - knife_type = /obj/item/attachable/bayonet + spawn_item_type = /obj/item/attachable/bayonet /obj/item/clothing/shoes/marine/ress name = "armored sandals" icon_state = "sandals" item_state = "sandals" - items_allowed = null + allowed_items_typecache = null /obj/item/clothing/shoes/hiking name = "hiking shoes" @@ -201,7 +190,13 @@ flags_heat_protection = BODY_FLAG_FEET flags_inventory = FPRINT|NOSLIPPING siemens_coefficient = 0.6 - items_allowed = list(/obj/item/attachable/bayonet, /obj/item/weapon/throwing_knife, /obj/item/weapon/gun/pistol/holdout, /obj/item/weapon/gun/pistol/clfpistol, /obj/item/weapon/straight_razor) + allowed_items_typecache = list( + /obj/item/attachable/bayonet, + /obj/item/weapon/throwing_knife, + /obj/item/weapon/gun/pistol/holdout, + /obj/item/weapon/gun/pistol/clfpistol, + /obj/item/weapon/straight_razor, + ) var/weed_slowdown_mult = 0.5 /obj/item/clothing/shoes/hiking/equipped(mob/user, slot, silent) @@ -239,7 +234,7 @@ flags_heat_protection = BODY_FLAG_FEET flags_inventory = FPRINT|NOSLIPPING siemens_coefficient = 0.6 - items_allowed = list( + allowed_items_typecache = list( /obj/item/attachable/bayonet, /obj/item/weapon/throwing_knife, /obj/item/weapon/gun/pistol/holdout, @@ -248,7 +243,4 @@ flags_atom = NO_NAME_OVERRIDE /obj/item/clothing/shoes/royal_marine/knife -/obj/item/clothing/shoes/royal_marine/knife/Initialize(mapload, ...) - . = ..() - stored_item = new /obj/item/attachable/bayonet/rmc(src) - update_icon() + spawn_item_type = /obj/item/attachable/bayonet/rmc diff --git a/code/modules/clothing/shoes/miscellaneous.dm b/code/modules/clothing/shoes/miscellaneous.dm index e3b07a76a2ff..1a49dc7fe10f 100644 --- a/code/modules/clothing/shoes/miscellaneous.dm +++ b/code/modules/clothing/shoes/miscellaneous.dm @@ -72,7 +72,7 @@ /obj/item/clothing/shoes/sandal desc = "A pair of rather plain, wooden sandals." name = "sandals" - icon_state = "wizard" + icon_state = "sandals" flags_armor_protection = 0 /obj/item/clothing/shoes/sandal/marisa @@ -140,6 +140,9 @@ desc = "The height of fashion, and they're pre-polished!" icon_state = "laceups" +/obj/item/clothing/shoes/laceup/brown + icon_state = "laceups_brown" + /obj/item/clothing/shoes/swimmingfins desc = "Help you swim good." name = "swimming fins" diff --git a/code/modules/clothing/spacesuits/breaches.dm b/code/modules/clothing/spacesuits/breaches.dm index 45a3c51a6701..0a934cfb1413 100644 --- a/code/modules/clothing/spacesuits/breaches.dm +++ b/code/modules/clothing/spacesuits/breaches.dm @@ -54,7 +54,7 @@ GLOBAL_LIST_INIT(breach_burn_descriptors, list( //Repair a certain amount of brute or burn damage to the suit. /obj/item/clothing/suit/space/proc/repair_breaches(damtype, amount, mob/user) - if(!can_breach || !breaches || !breaches.len || !damage) + if(!can_breach || !LAZYLEN(breaches) || !damage) to_chat(user, "There are no breaches to repair on \the [src].") return @@ -64,7 +64,7 @@ GLOBAL_LIST_INIT(breach_burn_descriptors, list( if(B.damtype == damtype) valid_breaches += B - if(!valid_breaches.len) + if(!length(valid_breaches)) to_chat(user, "There are no breaches to repair on \the [src].") return @@ -145,7 +145,7 @@ GLOBAL_LIST_INIT(breach_burn_descriptors, list( brute_damage = 0 burn_damage = 0 - if(!can_breach || !breaches || !breaches.len) + if(!can_breach || !LAZYLEN(breaches)) name = base_name return 0 @@ -220,6 +220,6 @@ GLOBAL_LIST_INIT(breach_burn_descriptors, list( /obj/item/clothing/suit/space/get_examine_text(mob/user) . = ..() - if(can_breach && breaches && breaches.len) + if(can_breach && LAZYLEN(breaches)) for(var/datum/breach/B in breaches) . += SPAN_DANGER("It has \a [B.descriptor].") diff --git a/code/modules/clothing/spacesuits/captain.dm b/code/modules/clothing/spacesuits/captain.dm index 26bc03eed608..2643e43b2b6a 100644 --- a/code/modules/clothing/spacesuits/captain.dm +++ b/code/modules/clothing/spacesuits/captain.dm @@ -24,7 +24,7 @@ gas_transfer_coefficient = 0.01 permeability_coefficient = 0.02 flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_LEGS|BODY_FLAG_FEET|BODY_FLAG_ARMS - allowed = list(/obj/item/tank/emergency_oxygen, /obj/item/device/flashlight,/obj/item/weapon/gun, /obj/item/ammo_magazine, /obj/item/weapon/baton,/obj/item/handcuffs) + allowed = list(/obj/item/tank/emergency_oxygen, /obj/item/device/flashlight,/obj/item/weapon/gun, /obj/item/ammo_magazine, /obj/item/weapon/baton,/obj/item/restraint/handcuffs) slowdown = 1.5 armor_melee = CLOTHING_ARMOR_MEDIUMHIGH armor_bullet = CLOTHING_ARMOR_MEDIUMHIGH diff --git a/code/modules/clothing/spacesuits/miscellaneous.dm b/code/modules/clothing/spacesuits/miscellaneous.dm index b171b4ed934f..36dd5f4f04c8 100644 --- a/code/modules/clothing/spacesuits/miscellaneous.dm +++ b/code/modules/clothing/spacesuits/miscellaneous.dm @@ -2,11 +2,14 @@ /obj/item/clothing/head/helmet/space/santahat name = "Santa's hat" desc = "Ho ho ho. Merrry X-mas!" - icon_state = "santahat" + icon_state = "santa_hat_red" flags_inventory = NOPRESSUREDMAGE|BLOCKSHARPOBJ flags_inv_hide = HIDEEYES flags_armor_protection = BODY_FLAG_HEAD +/obj/item/clothing/head/helmet/space/santahat/green + icon_state = "santa_hat_green" + /obj/item/clothing/suit/space/santa name = "Santa's suit" desc = "Festive!" @@ -40,7 +43,7 @@ icon_state = "pirate" item_state = "pirate" w_class = SIZE_MEDIUM - allowed = list(/obj/item/weapon/gun,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/weapon/baton,/obj/item/handcuffs,/obj/item/tank/emergency_oxygen) + allowed = list(/obj/item/weapon/gun,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/weapon/baton,/obj/item/restraint/handcuffs,/obj/item/tank/emergency_oxygen) slowdown = 0 armor_melee = CLOTHING_ARMOR_MEDIUM armor_bullet = CLOTHING_ARMOR_MEDIUM @@ -90,7 +93,7 @@ /obj/item/clothing/suit/space/compression/uscm name = "\improper MK.50 compression suit" desc = "A heavy, bulky civilian space suit, fitted with armored plates. This specific suit has found its way into the ragtag inventory of the USCM's patrol boat requisitions system." - allowed = list(/obj/item/weapon/gun,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/weapon/baton,/obj/item/handcuffs,/obj/item/tank) + allowed = list(/obj/item/weapon/gun,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/weapon/baton,/obj/item/restraint/handcuffs,/obj/item/tank) // Souto man diff --git a/code/modules/clothing/spacesuits/spacesuits.dm b/code/modules/clothing/spacesuits/spacesuits.dm index 0ef06baa310e..9c28ca42bc41 100644 --- a/code/modules/clothing/spacesuits/spacesuits.dm +++ b/code/modules/clothing/spacesuits/spacesuits.dm @@ -65,7 +65,7 @@ /obj/item/clothing/suit/space/proc/check_limb_support() // If this isn't set, then we don't need to care. - if(!supporting_limbs || !supporting_limbs.len) + if(!LAZYLEN(supporting_limbs)) return var/mob/living/carbon/human/H = src.loc diff --git a/code/modules/clothing/suits/armor.dm b/code/modules/clothing/suits/armor.dm index 82d461c5ca55..7e9a41c6becc 100644 --- a/code/modules/clothing/suits/armor.dm +++ b/code/modules/clothing/suits/armor.dm @@ -47,7 +47,7 @@ /obj/item/device/flashlight, /obj/item/ammo_magazine/, /obj/item/weapon/baton, - /obj/item/handcuffs, + /obj/item/restraint/handcuffs, /obj/item/device/binoculars, /obj/item/storage/large_holster/machete, /obj/item/storage/belt/gun/m4a3, @@ -81,7 +81,7 @@ /obj/item/storage/fancy/cigarettes, /obj/item/tool/lighter, /obj/item/weapon/baton, - /obj/item/handcuffs, + /obj/item/restraint/handcuffs, /obj/item/explosive/grenade, /obj/item/device/binoculars, /obj/item/attachable/bayonet, @@ -250,7 +250,7 @@ gas_transfer_coefficient = 0.01 permeability_coefficient = 0.01 flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_LEGS|BODY_FLAG_FEET|BODY_FLAG_ARMS - allowed = list(/obj/item/weapon/gun,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/weapon/baton,/obj/item/handcuffs,/obj/item/tank/emergency_oxygen) + allowed = list(/obj/item/weapon/gun,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/weapon/baton,/obj/item/restraint/handcuffs,/obj/item/tank/emergency_oxygen) slowdown = 1 armor_melee = CLOTHING_ARMOR_HIGH armor_bullet = CLOTHING_ARMOR_HIGH @@ -355,7 +355,7 @@ item_state = "centcom" w_class = SIZE_LARGE//bulky item flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_LEGS|BODY_FLAG_FEET|BODY_FLAG_ARMS|BODY_FLAG_HANDS - allowed = list(/obj/item/weapon/gun,/obj/item/weapon/baton,/obj/item/handcuffs,/obj/item/tank/emergency_oxygen) + allowed = list(/obj/item/weapon/gun,/obj/item/weapon/baton,/obj/item/restraint/handcuffs,/obj/item/tank/emergency_oxygen) flags_inventory = NO_FLAGS flags_inv_hide = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT flags_cold_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_LEGS|BODY_FLAG_FEET|BODY_FLAG_ARMS|BODY_FLAG_HANDS diff --git a/code/modules/clothing/suits/bio.dm b/code/modules/clothing/suits/bio.dm index 59e0918550ed..eb99005328bc 100644 --- a/code/modules/clothing/suits/bio.dm +++ b/code/modules/clothing/suits/bio.dm @@ -51,7 +51,7 @@ item_state = "bio_suit" allowed = list( /obj/item/weapon/baton, - /obj/item/handcuffs, + /obj/item/restraint/handcuffs, /obj/item/device/binoculars, /obj/item/attachable/bayonet, diff --git a/code/modules/clothing/suits/jobs.dm b/code/modules/clothing/suits/jobs.dm index 5b97051852a6..589fb3b97221 100644 --- a/code/modules/clothing/suits/jobs.dm +++ b/code/modules/clothing/suits/jobs.dm @@ -181,11 +181,11 @@ /obj/item/ammo_magazine, /obj/item/ammo_casing, /obj/item/weapon/baton, - /obj/item/handcuffs, + /obj/item/restraint/handcuffs, /obj/item/storage/fancy/cigarettes, /obj/item/tool/lighter, /obj/item/weapon/baton, - /obj/item/handcuffs, + /obj/item/restraint/handcuffs, /obj/item/device/binoculars, /obj/item/attachable/bayonet, /obj/item/storage/belt/gun/m4a3, @@ -245,7 +245,7 @@ /obj/item/ammo_magazine, /obj/item/ammo_casing, /obj/item/weapon/baton, - /obj/item/handcuffs, + /obj/item/restraint/handcuffs, /obj/item/device/binoculars, /obj/item/attachable/bayonet, /obj/item/storage/belt/gun/m4a3, @@ -310,7 +310,7 @@ /obj/item/storage/fancy/cigarettes, /obj/item/tool/lighter, /obj/item/weapon/baton, - /obj/item/handcuffs, + /obj/item/restraint/handcuffs, /obj/item/device/binoculars, /obj/item/attachable/bayonet, /obj/item/storage/belt/gun/m4a3, @@ -409,7 +409,7 @@ /obj/item/storage/fancy/cigarettes, /obj/item/tool/lighter, /obj/item/weapon/baton, - /obj/item/handcuffs, + /obj/item/restraint/handcuffs, /obj/item/device/binoculars, /obj/item/attachable/bayonet, diff --git a/code/modules/clothing/suits/labcoat.dm b/code/modules/clothing/suits/labcoat.dm index 54e9d91576f1..d0f6d1cc868a 100644 --- a/code/modules/clothing/suits/labcoat.dm +++ b/code/modules/clothing/suits/labcoat.dm @@ -20,7 +20,7 @@ /obj/item/storage/fancy/cigarettes, /obj/item/tool/lighter, /obj/item/weapon/baton, - /obj/item/handcuffs, + /obj/item/restraint/handcuffs, /obj/item/device/binoculars, /obj/item/attachable/bayonet, @@ -144,6 +144,10 @@ icon_state = "sciencecoat" item_state = "sciencecoat" +/obj/item/clothing/suit/chef/classic/medical + name = "medical's apron" + desc = "A basic and sterile white apron, good for surgical and, of course, other medical practices." + /obj/item/clothing/suit/storage/snow_suit name = "snow suit" desc = "A standard snow suit. It can protect the wearer from extreme cold." @@ -181,7 +185,7 @@ /obj/item/storage/fancy/cigarettes, /obj/item/tool/lighter, /obj/item/weapon/baton, - /obj/item/handcuffs, + /obj/item/restraint/handcuffs, /obj/item/device/binoculars, /obj/item/attachable/bayonet, /obj/item/storage/belt/gun/m4a3, diff --git a/code/modules/clothing/suits/marine_armor.dm b/code/modules/clothing/suits/marine_armor.dm deleted file mode 100644 index e505d458e496..000000000000 --- a/code/modules/clothing/suits/marine_armor.dm +++ /dev/null @@ -1,1851 +0,0 @@ -#define DEBUG_ARMOR_PROTECTION 0 - -#if DEBUG_ARMOR_PROTECTION -/mob/living/carbon/human/verb/check_overall_protection() - set name = "Get Armor Value" - set category = "Debug" - set desc = "Shows the armor value of the bullet category." - - var/armor = 0 - var/counter = 0 - for(var/X in H.limbs) - var/obj/limb/E = X - armor = getarmor_organ(E, ARMOR_BULLET) - to_chat(src, SPAN_DEBUG("[E.name] is protected with [armor] armor against bullets.")) - counter += armor - to_chat(src, SPAN_DEBUG("The overall armor score is: [counter].")) -#endif - -//=======================================================================\\ -//=======================================================================\\ - -#define ALPHA 1 -#define BRAVO 2 -#define CHARLIE 3 -#define DELTA 4 -#define ECHO 5 -#define CRYO 6 -#define SOF 7 -#define NOSQUAD 8 - -// MARINE STORAGE ARMOR - -/obj/item/clothing/suit/storage/marine - name = "\improper M3 pattern marine armor" - desc = "A standard Colonial Marines M3 Pattern Chestplate. Protects the chest from ballistic rounds, bladed objects and accidents. It has a small leather pouch strapped to it for limited storage." - icon = 'icons/obj/items/clothing/cm_suits.dmi' - icon_state = "1" - item_state = "marine_armor" //Make unique states for Officer & Intel armors. - item_icons = list( - WEAR_JACKET = 'icons/mob/humans/onmob/suit_1.dmi' - ) - flags_atom = FPRINT|CONDUCT - flags_inventory = BLOCKSHARPOBJ - flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS - flags_cold_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS - flags_heat_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS - min_cold_protection_temperature = HELMET_MIN_COLD_PROT - max_heat_protection_temperature = HELMET_MAX_HEAT_PROT - blood_overlay_type = "armor" - armor_melee = CLOTHING_ARMOR_MEDIUM - armor_bullet = CLOTHING_ARMOR_MEDIUM - armor_laser = CLOTHING_ARMOR_MEDIUMLOW - armor_energy = CLOTHING_ARMOR_NONE - armor_bomb = CLOTHING_ARMOR_MEDIUMLOW - armor_bio = CLOTHING_ARMOR_MEDIUM - armor_rad = CLOTHING_ARMOR_MEDIUMLOW - armor_internaldamage = CLOTHING_ARMOR_MEDIUM - movement_compensation = SLOWDOWN_ARMOR_LIGHT - storage_slots = 3 - siemens_coefficient = 0.7 - slowdown = SLOWDOWN_ARMOR_MEDIUM - allowed = list( - /obj/item/weapon/gun, - /obj/item/prop/prop_gun, - /obj/item/tank/emergency_oxygen, - /obj/item/device/flashlight, - /obj/item/storage/fancy/cigarettes, - /obj/item/tool/lighter, - /obj/item/storage/bible, - /obj/item/attachable/bayonet, - /obj/item/storage/backpack/general_belt, - /obj/item/storage/large_holster/machete, - /obj/item/storage/belt/gun/type47, - /obj/item/storage/belt/gun/m4a3, - /obj/item/storage/belt/gun/m44, - /obj/item/storage/belt/gun/smartpistol, - /obj/item/storage/belt/gun/flaregun, - /obj/item/device/motiondetector, - /obj/item/device/walkman, - /obj/item/storage/belt/gun/m39, - ) - valid_accessory_slots = list(ACCESSORY_SLOT_MEDAL, ACCESSORY_SLOT_PONCHO) - - light_power = 3 - light_range = 4 - light_system = MOVABLE_LIGHT - - var/flashlight_cooldown = 0 //Cooldown for toggling the light - var/locate_cooldown = 0 //Cooldown for SL locator - var/armor_overlays[] - actions_types = list(/datum/action/item_action/toggle) - var/flags_marine_armor = ARMOR_SQUAD_OVERLAY|ARMOR_LAMP_OVERLAY - var/specialty = "M3 pattern marine" //Same thing here. Give them a specialty so that they show up correctly in vendors. speciality does NOTHING if you have NO_NAME_OVERRIDE - w_class = SIZE_HUGE - uniform_restricted = list(/obj/item/clothing/under/marine) - sprite_sheets = list(SPECIES_MONKEY = 'icons/mob/humans/species/monkeys/onmob/suit_monkey_1.dmi') - time_to_unequip = 20 - time_to_equip = 20 - pickup_sound = "armorequip" - drop_sound = "armorequip" - equip_sounds = list('sound/handling/putting_on_armor1.ogg') - var/armor_variation = 0 - /// The dmi where the grayscale squad overlays are contained - var/squad_overlay_icon = 'icons/mob/humans/onmob/suit_1.dmi' - - var/atom/movable/marine_light/light_holder - -/obj/item/clothing/suit/storage/marine/Initialize(mapload) - . = ..() - if(!(flags_atom & NO_NAME_OVERRIDE)) - name = "[specialty]" - if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD]) - name += " snow armor" //Leave marine out so that armors don't have to have "Marine" appended (see: generals). - else - name += " armor" - - if(!(flags_atom & NO_SNOW_TYPE)) - select_gamemode_skin(type) - armor_overlays = list("lamp") //Just one for now, can add more later. - if(armor_variation && mapload) - set_armor_style("Random") - update_icon() - pockets.max_w_class = SIZE_SMALL //Can contain small items AND rifle magazines. - pockets.bypass_w_limit = list( - /obj/item/ammo_magazine/rifle, - /obj/item/ammo_magazine/smg, - /obj/item/ammo_magazine/sniper, - ) - pockets.max_storage_space = 8 - - light_holder = new(src) - -/obj/item/clothing/suit/storage/marine/Destroy() - QDEL_NULL(light_holder) - return ..() - -/obj/item/clothing/suit/storage/marine/update_icon(mob/user) - var/image/I - armor_overlays["lamp"] = null - if(flags_marine_armor & ARMOR_LAMP_OVERLAY) - if(flags_marine_armor & ARMOR_LAMP_ON) - I = image('icons/obj/items/clothing/cm_suits.dmi', src, "lamp-on") - else - I = image('icons/obj/items/clothing/cm_suits.dmi', src, "lamp-off") - armor_overlays["lamp"] = I - overlays += I - else armor_overlays["lamp"] = null - if(user) user.update_inv_wear_suit() - - -/obj/item/clothing/suit/storage/marine/post_vendor_spawn_hook(mob/living/carbon/human/user) //used for randomizing/selecting a variant for armors. - if(!armor_variation) - return - - if(user?.client?.prefs) - // Set the armor style to the user's preference. - set_armor_style(user.client.prefs.preferred_armor) - else - // Or if that isn't possible, just pick a random one. - set_armor_style("Random") - update_icon(user) - -/obj/item/clothing/suit/storage/marine/attack_self(mob/user) - ..() - - if(!isturf(user.loc)) - to_chat(user, SPAN_WARNING("You cannot turn the light [light_on ? "off" : "on"] while in [user.loc].")) //To prevent some lighting anomalies. - return - - if(flashlight_cooldown > world.time) - return - if(!ishuman(user)) - return - - var/mob/living/carbon/human/H = user - if(H.wear_suit != src) - return - - turn_light(user, !light_on) - -/obj/item/clothing/suit/storage/marine/item_action_slot_check(mob/user, slot) - if(!ishuman(user)) - return FALSE - if(slot != WEAR_JACKET) - return FALSE - return TRUE //only give action button when armor is worn. - -/obj/item/clothing/suit/storage/marine/turn_light(mob/user, toggle_on) - . = ..() - if(. != CHECKS_PASSED) - return - set_light_range(initial(light_range)) - set_light_power(FLOOR(initial(light_power) * 0.5, 1)) - set_light_on(toggle_on) - flags_marine_armor ^= ARMOR_LAMP_ON - - light_holder.set_light_flags(LIGHT_ATTACHED) - light_holder.set_light_range(initial(light_range)) - light_holder.set_light_power(initial(light_power)) - light_holder.set_light_on(toggle_on) - - if(!toggle_on) - playsound(src, 'sound/handling/click_2.ogg', 50, 1) - - playsound(src, 'sound/handling/suitlight_on.ogg', 50, 1) - update_icon(user) - - for(var/X in actions) - var/datum/action/A = X - A.update_button_icon() - -/obj/item/clothing/suit/storage/marine/mob_can_equip(mob/living/carbon/human/M, slot, disable_warning = 0) - . = ..() - if (.) - if(issynth(M) && M.allow_gun_usage == FALSE && !(flags_marine_armor & SYNTH_ALLOWED)) - M.visible_message(SPAN_DANGER("Your programming prevents you from wearing this!")) - return 0 - -/** - * Updates the armor's `icon_state` to the style represented by `new_style`. - * - * Arguments: - * * new_style - The new armor style. May only be one of `GLOB.armor_style_list`'s keys, or `"Random"`. - */ -/obj/item/clothing/suit/storage/marine/proc/set_armor_style(new_style) - // Regex to match one or more digits. - var/static/regex/digits = new("\\d+") - // Integer for the new armor style's `icon_state`. - var/new_look - - if(new_style == "Random") - // The style icon states are all numbers between 1 and `armor_variation`, so this picks a random one. - new_look = rand(1, armor_variation) - else - new_look = GLOB.armor_style_list[new_style] - - // Replace the digits in the current icon state with `new_look`. (E.g. "L6" -> "L2") - icon_state = digits.Replace(icon_state, new_look) - -/obj/item/clothing/suit/storage/marine/padded - name = "M3 pattern padded marine armor" - icon_state = "1" - specialty = "M3 pattern padded marine" - -/obj/item/clothing/suit/storage/marine/padless - name = "M3 pattern padless marine armor" - icon_state = "2" - specialty = "M3 pattern padless marine" - -/obj/item/clothing/suit/storage/marine/padless_lines - name = "M3 pattern ridged marine armor" - icon_state = "3" - specialty = "M3 pattern ridged marine" - -/obj/item/clothing/suit/storage/marine/carrier - name = "M3 pattern carrier marine armor" - icon_state = "4" - specialty = "M3 pattern carrier marine" - -/obj/item/clothing/suit/storage/marine/skull - name = "M3 pattern skull marine armor" - icon_state = "5" - specialty = "M3 pattern skull marine" - -/obj/item/clothing/suit/storage/marine/smooth - name = "M3 pattern smooth marine armor" - icon_state = "6" - specialty = "M3 pattern smooth marine" - -/obj/item/clothing/suit/storage/marine/rto - icon_state = "io" - name = "\improper M4 pattern marine armor" - desc = "A well tinkered and crafted hybrid of Smart-Gunner mesh and M3 pattern plates. Robust, yet nimble, with room for all your pouches." - armor_bio = CLOTHING_ARMOR_MEDIUMHIGH - armor_rad = CLOTHING_ARMOR_MEDIUM - storage_slots = 4 - light_range = 5 //slightly higher - specialty = "M4 pattern marine" - -/obj/item/clothing/suit/storage/marine/rto/intel - name = "\improper XM4 pattern intelligence officer armor" - uniform_restricted = list(/obj/item/clothing/under/marine/officer, /obj/item/clothing/under/rank/qm_suit, /obj/item/clothing/under/marine/officer/intel) - specialty = "XM4 pattern intel" - -/obj/item/clothing/suit/storage/marine/MP - name = "\improper M2 pattern MP armor" - desc = "A standard Colonial Marines M2 Pattern Chestplate. Protects the chest from ballistic rounds, bladed objects and accidents. It has a small leather pouch strapped to it for limited storage." - icon_state = "mp_armor" - armor_melee = CLOTHING_ARMOR_MEDIUMHIGH - armor_bullet = CLOTHING_ARMOR_LOW - armor_laser = CLOTHING_ARMOR_LOW - armor_energy = CLOTHING_ARMOR_LOW - armor_bomb = CLOTHING_ARMOR_MEDIUM - armor_bio = CLOTHING_ARMOR_MEDIUMLOW - armor_internaldamage = CLOTHING_ARMOR_MEDIUMLOW - storage_slots = 2 - slowdown = SLOWDOWN_ARMOR_LIGHT - allowed = list( - /obj/item/weapon/gun, - /obj/item/tank/emergency_oxygen, - /obj/item/device/flashlight, - /obj/item/ammo_magazine/, - /obj/item/storage/fancy/cigarettes, - /obj/item/tool/lighter, - /obj/item/weapon/baton, - /obj/item/handcuffs, - /obj/item/explosive/grenade, - /obj/item/device/binoculars, - /obj/item/attachable/bayonet, - /obj/item/storage/backpack/general_belt, - /obj/item/device/hailer, - /obj/item/storage/belt/gun, - /obj/item/weapon/sword/ceremonial, - /obj/item/device/motiondetector, - /obj/item/device/walkman, - ) - uniform_restricted = list(/obj/item/clothing/under/marine/mp) - specialty = "M2 pattern MP" - item_state_slots = list(WEAR_JACKET = "mp_armor") - black_market_value = 20 - -/obj/item/clothing/suit/storage/marine/MP/warden - icon_state = "warden" - name = "\improper M3 pattern warden MP armor" - desc = "A well-crafted suit of M3 Pattern Armor typically distributed to Wardens. Useful for letting your men know who is in charge." - armor_bio = CLOTHING_ARMOR_MEDIUMLOW - armor_rad = CLOTHING_ARMOR_MEDIUMLOW - uniform_restricted = list(/obj/item/clothing/under/marine/warden) - specialty = "M3 pattern warden MP" - item_state_slots = list(WEAR_JACKET = "warden") - -/obj/item/clothing/suit/storage/marine/MP/WO - icon_state = "warrant_officer" - name = "\improper M3 pattern chief MP armor" - desc = "A well-crafted suit of M3 Pattern Armor typically distributed to Chief MPs. Useful for letting your men know who is in charge." - uniform_restricted = list(/obj/item/clothing/under/marine/officer/warrant) - specialty = "M3 pattern chief MP" - item_state_slots = list(WEAR_JACKET = "warrant_officer") - black_market_value = 30 - -/obj/item/clothing/suit/storage/marine/MP/general - name = "\improper M3 pattern general officer armor" - desc = "A well-crafted suit of M3 Pattern Armor with a gold shine. It looks very expensive, but shockingly fairly easy to carry and wear." - icon_state = "general" - armor_bullet = CLOTHING_ARMOR_MEDIUMHIGH - armor_bio = CLOTHING_ARMOR_MEDIUM - uniform_restricted = list(/obj/item/clothing/under/marine/officer/general) - specialty = "M3 pattern general" - item_state_slots = list(WEAR_JACKET = "general") - w_class = SIZE_MEDIUM - -/obj/item/clothing/suit/storage/marine/MP/SO - name = "\improper M3 pattern officer armor" - desc = "A well-crafted suit of M3 Pattern Armor typically found in the hands of higher-ranking officers. Useful for letting your men know who is in charge when taking to the field." - icon_state = "officer" - storage_slots = 3 - flags_atom = null - uniform_restricted = list(/obj/item/clothing/under/marine/officer, /obj/item/clothing/under/rank/qm_suit, /obj/item/clothing/under/rank/chief_medical_officer, /obj/item/clothing/under/marine/dress) - specialty = "M2 pattern officer" - item_state_slots = list(WEAR_JACKET = "officer") - -//Making a new object because we might want to edit armor values and such. -//Or give it its own sprite. It's more for the future. -/obj/item/clothing/suit/storage/marine/MP/CO - name = "\improper M3 pattern commanding officer armor" - desc = "A robust, well-polished suit of armor for the Commanding Officer. Custom-made to fit its owner with special straps to operate a smartgun. Show those Marines who's really in charge." - icon_state = "co_officer" - item_state = "co_officer" - armor_bullet = CLOTHING_ARMOR_HIGH - storage_slots = 3 - flags_atom = NO_SNOW_TYPE - flags_inventory = BLOCKSHARPOBJ|SMARTGUN_HARNESS - uniform_restricted = list(/obj/item/clothing/under/marine, /obj/item/clothing/under/rank/qm_suit) - specialty = "M3 pattern captain" - item_state_slots = list(WEAR_JACKET = "co_officer") - valid_accessory_slots = list(ACCESSORY_SLOT_MEDAL, ACCESSORY_SLOT_RANK, ACCESSORY_SLOT_DECOR, ACCESSORY_SLOT_PONCHO) - black_market_value = 35 - - -/obj/item/clothing/suit/storage/marine/MP/CO/jacket - name = "\improper M3 pattern commanding officer armored coat" - desc = "A robust, well-polished suit of armor for the Commanding Officer. Custom-made to fit its owner with special straps to operate a smartgun. Show those Marines who's really in charge. This one has a coat over it for added warmth." - icon_state = "bridge_coat_armored" - item_state = "bridge_coat_armored" - item_state_slots = list(WEAR_JACKET = "bridge_coat_armored") - valid_accessory_slots = list(ACCESSORY_SLOT_MEDAL, ACCESSORY_SLOT_RANK) - - -/obj/item/clothing/suit/storage/marine/smartgunner - name = "\improper M56 combat harness" - desc = "A heavy protective vest designed to be worn with the M56 Smartgun System. \nIt has specially designed straps and reinforcement to carry the Smartgun and accessories." - icon_state = "8" - item_state = "armor" - armor_laser = CLOTHING_ARMOR_LOW - armor_bomb = CLOTHING_ARMOR_MEDIUM - armor_rad = CLOTHING_ARMOR_MEDIUM - storage_slots = 2 - slowdown = SLOWDOWN_ARMOR_LIGHT - flags_inventory = BLOCKSHARPOBJ|SMARTGUN_HARNESS - allowed = list( - /obj/item/tank/emergency_oxygen, - /obj/item/device/flashlight, - /obj/item/ammo_magazine, - /obj/item/explosive/mine, - /obj/item/attachable/bayonet, - /obj/item/weapon/gun/smartgun, - /obj/item/storage/backpack/general_belt, - /obj/item/device/motiondetector, - /obj/item/device/walkman, - ) - -/obj/item/clothing/suit/storage/marine/smartgunner/Initialize() - . = ..() - if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD] && name == "M56 combat harness") - name = "M56 snow combat harness" - else - name = "M56 combat harness" - //select_gamemode_skin(type) - -/obj/item/clothing/suit/storage/marine/smartgunner/mob_can_equip(mob/equipping_mob, slot, disable_warning = FALSE) - . = ..() - - if(equipping_mob.back) - to_chat(equipping_mob, SPAN_WARNING("You can't equip [src] while wearing a backpack.")) - return FALSE - -/obj/item/clothing/suit/storage/marine/smartgunner/equipped(mob/user, slot, silent) - . = ..() - - if(slot == WEAR_JACKET) - RegisterSignal(user, COMSIG_HUMAN_ATTEMPTING_EQUIP, PROC_REF(check_equipping)) - -/obj/item/clothing/suit/storage/marine/smartgunner/proc/check_equipping(mob/living/carbon/human/equipping_human, obj/item/equipping_item, slot) - SIGNAL_HANDLER - - if(slot != WEAR_BACK) - return - - . = COMPONENT_HUMAN_CANCEL_ATTEMPT_EQUIP - - if(equipping_item.flags_equip_slot == SLOT_BACK) - to_chat(equipping_human, SPAN_WARNING("You can't equip [equipping_item] on your back while wearing [src].")) - return - -/obj/item/clothing/suit/storage/marine/smartgunner/unequipped(mob/user, slot) - . = ..() - - UnregisterSignal(user, COMSIG_HUMAN_ATTEMPTING_EQUIP) - -/obj/item/clothing/suit/storage/marine/leader - name = "\improper B12 pattern marine armor" - desc = "A lightweight suit of carbon fiber body armor built for quick movement. Designed in a lovely forest green. Use it to toggle the built-in flashlight." - icon_state = "7" - armor_melee = CLOTHING_ARMOR_MEDIUMHIGH - armor_bomb = CLOTHING_ARMOR_MEDIUM - armor_bio = CLOTHING_ARMOR_MEDIUMHIGH - armor_internaldamage = CLOTHING_ARMOR_MEDIUMHIGH - specialty = "B12 pattern marine" - -/obj/item/clothing/suit/storage/marine/tanker - name = "\improper M3 pattern tanker armor" - desc = "A modified and refashioned suit of M3 Pattern armor designed to be worn by the loader of a USCM vehicle crew. While the suit is a bit more encumbering to wear with the crewman uniform, it offers the loader a degree of protection that would otherwise not be enjoyed." - icon_state = "tanker" - uniform_restricted = list(/obj/item/clothing/under/marine/officer/tanker) - specialty = "M3 pattern tanker" - storage_slots = 2 - -//===========================//PFC ARMOR CLASSES\\================================\\ -//=================================================================================\\ - -/obj/item/clothing/suit/storage/marine/medium - armor_variation = 6 - -/obj/item/clothing/suit/storage/marine/light - name = "\improper M3-L pattern light armor" - desc = "A lighter, cut down version of the standard M3 pattern armor. It sacrifices durability for more speed." - specialty = "\improper M3-L pattern light" - icon_state = "L1" - armor_variation = 6 - slowdown = SLOWDOWN_ARMOR_LIGHT - armor_melee = CLOTHING_ARMOR_MEDIUMLOW - armor_bullet = CLOTHING_ARMOR_MEDIUMLOW - armor_bomb = CLOTHING_ARMOR_MEDIUM - armor_bio = CLOTHING_ARMOR_MEDIUMLOW - armor_rad = CLOTHING_ARMOR_MEDIUMHIGH - armor_internaldamage = CLOTHING_ARMOR_LOW - storage_slots = 2 - -/obj/item/clothing/suit/storage/marine/light/padded - icon_state = "L1" - armor_variation = 0 - -/obj/item/clothing/suit/storage/marine/light/padless - icon_state = "L2" - armor_variation = 0 - -/obj/item/clothing/suit/storage/marine/light/padless_lines - icon_state = "L3" - armor_variation = 0 - -/obj/item/clothing/suit/storage/marine/light/carrier - icon_state = "L4" - armor_variation = 0 - -/obj/item/clothing/suit/storage/marine/light/skull - icon_state = "L5" - armor_variation = 0 - -/obj/item/clothing/suit/storage/marine/light/smooth - icon_state = "L6" - armor_variation = 0 - -/obj/item/clothing/suit/storage/marine/light/vest - name = "\improper M3-VL pattern ballistics vest" - desc = "Up until 2182 USCM non-combat personnel were issued non-standardized ballistics vests, though the lack of IMP compatibility and suit lamps proved time and time again inefficient. This modified M3-L shell is the result of a 6-year R&D program; It provides utility, protection, AND comfort to all USCM non-combat personnel." - icon_state = "VL" - flags_atom = NO_SNOW_TYPE|NO_NAME_OVERRIDE - flags_marine_armor = ARMOR_LAMP_OVERLAY //No squad colors when wearing this since it'd look funny. - armor_melee = CLOTHING_ARMOR_MEDIUMLOW - armor_bullet = CLOTHING_ARMOR_HIGH - armor_energy = CLOTHING_ARMOR_LOW - armor_bomb = CLOTHING_ARMOR_LOW - armor_bio = CLOTHING_ARMOR_VERYLOW - armor_rad = CLOTHING_ARMOR_NONE - armor_internaldamage = CLOTHING_ARMOR_MEDIUM - storage_slots = 1 - time_to_unequip = 0.5 SECONDS - time_to_equip = 1 SECONDS - siemens_coefficient = 0.7 - uniform_restricted = null - -/obj/item/clothing/suit/storage/marine/light/vest/dcc - name = "\improper M3-VL pattern flak vest" - desc = "A combination of the standard non-combat M3-VL ballistics vest and M70 flak jacket, this piece of armor has been distributed to dropship crew to keep them safe from threats external and internal..." - icon_state = "VL_FLAK" - storage_slots = 2 - -/obj/item/clothing/suit/storage/marine/light/synvest - name = "\improper M3A1 Synthetic Utility Vest" - desc = "This variant of the ubiquitous M3 pattern ballistics vest has been extensively modified, providing no protection in exchange for maximum mobility and storage space. Synthetic programming compliant." - icon_state = "VL_syn_camo" - flags_atom = NO_NAME_OVERRIDE - flags_marine_armor = ARMOR_LAMP_OVERLAY|SYNTH_ALLOWED //No squad colors + can be worn by synths. - armor_melee = CLOTHING_ARMOR_NONE - armor_bullet = CLOTHING_ARMOR_NONE - armor_laser = CLOTHING_ARMOR_NONE - armor_energy = CLOTHING_ARMOR_NONE - armor_bomb = CLOTHING_ARMOR_NONE - armor_bio = CLOTHING_ARMOR_NONE - armor_rad = CLOTHING_ARMOR_NONE - armor_internaldamage = CLOTHING_ARMOR_NONE - storage_slots = 3 - slowdown = SLOWDOWN_ARMOR_VERY_LIGHT - time_to_unequip = 0.5 SECONDS - time_to_equip = 1 SECONDS - uniform_restricted = null - -/obj/item/clothing/suit/storage/marine/light/synvest/grey - icon_state = "VL_syn" - flags_atom = NO_SNOW_TYPE|NO_NAME_OVERRIDE - -/obj/item/clothing/suit/storage/marine/light/synvest/jungle - icon_state = "VL_syn_camo" - flags_atom = NO_SNOW_TYPE|NO_NAME_OVERRIDE - -/obj/item/clothing/suit/storage/marine/light/synvest/snow - icon_state = "s_VL_syn_camo" - flags_atom = NO_SNOW_TYPE|NO_NAME_OVERRIDE - -/obj/item/clothing/suit/storage/marine/light/synvest/desert - icon_state = "d_VL_syn_camo" - flags_atom = NO_SNOW_TYPE|NO_NAME_OVERRIDE - -/obj/item/clothing/suit/storage/marine/light/synvest/dgrey - icon_state = "c_VL_syn_camo" - flags_atom = NO_SNOW_TYPE|NO_NAME_OVERRIDE - -/obj/item/clothing/suit/storage/marine/heavy - name = "\improper M3-EOD pattern heavy armor" - desc = "A heavier version of the standard M3 pattern armor, the armor is primarily designed to withstand ballistic, explosive, and internal damage, with the drawback of increased bulk and thus reduced movement speed, alongside little additional protection from standard blunt force impacts and biological threats." - desc_lore = "This configuration of the iconic armor was developed during the Canton War in 2160 between the UPP and USCM - Designed in response to a need for higher protection for ComTechs assigned as EODs during the conflict, this is the pinnacle of protection for your average marine. The shoulders and kneepads have both been expanded upon heavily, covering up the arteries on each limb. A special spall liner was developed for this suit, with the same technology being used in the M70 Flak Jacket being developed at the same time." - specialty = "\improper M3-EOD pattern" - icon_state = "H1" - armor_variation = 6 - armor_melee = CLOTHING_ARMOR_MEDIUMHIGH - armor_bullet = CLOTHING_ARMOR_HIGHPLUS - armor_bomb = CLOTHING_ARMOR_HIGHPLUS - armor_bio = CLOTHING_ARMOR_MEDIUMHIGH - armor_rad = CLOTHING_ARMOR_MEDIUM - armor_internaldamage = CLOTHING_ARMOR_MEDIUMHIGH - storage_slots = 2 - slowdown = SLOWDOWN_ARMOR_LOWHEAVY - movement_compensation = SLOWDOWN_ARMOR_MEDIUM - -/obj/item/clothing/suit/storage/marine/heavy/padded - icon_state = "H1" - armor_variation = 0 - -/obj/item/clothing/suit/storage/marine/heavy/padless - icon_state = "H2" - armor_variation = 0 - -/obj/item/clothing/suit/storage/marine/heavy/padless_lines - icon_state = "H3" - armor_variation = 0 - -/obj/item/clothing/suit/storage/marine/heavy/carrier - icon_state = "H4" - armor_variation = 0 - -/obj/item/clothing/suit/storage/marine/heavy/skull - icon_state = "H5" - armor_variation = 0 - -/obj/item/clothing/suit/storage/marine/heavy/smooth - icon_state = "H6" - armor_variation = 0 - -//===========================//SPECIALIST\\================================\\ -//=======================================================================\\ - -/obj/item/clothing/suit/storage/marine/specialist - name = "\improper B18 defensive armor" - desc = "A heavy, rugged set of armor plates for when you really, really need to not die horribly. Slows you down though.\nComes with two tricord injectors in each arm guard." - icon_state = "xarmor" - armor_melee = CLOTHING_ARMOR_HIGH - armor_bullet = CLOTHING_ARMOR_HIGH - armor_bomb = CLOTHING_ARMOR_VERYHIGH - armor_bio = CLOTHING_ARMOR_MEDIUMLOW - armor_rad = CLOTHING_ARMOR_MEDIUMHIGH - armor_internaldamage = CLOTHING_ARMOR_MEDIUMHIGH - storage_slots = 2 - flags_inventory = BLOCKSHARPOBJ|BLOCK_KNOCKDOWN - flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS|BODY_FLAG_FEET - flags_cold_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS|BODY_FLAG_FEET - flags_heat_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS|BODY_FLAG_FEET - slowdown = SLOWDOWN_ARMOR_HEAVY - specialty = "B18 defensive" - unacidable = TRUE - var/injections = 4 - -/obj/item/clothing/suit/storage/marine/specialist/verb/inject() - set name = "Create Injector" - set category = "Object" - set src in usr - - if(usr.is_mob_incapacitated()) - return 0 - - if(!injections) - to_chat(usr, "Your armor is all out of injectors.") - return 0 - - if(usr.get_active_hand()) - to_chat(usr, "Your active hand must be empty.") - return 0 - - to_chat(usr, "You feel a faint hiss and an injector drops into your hand.") - var/obj/item/reagent_container/hypospray/autoinjector/skillless/O = new(usr) - usr.put_in_active_hand(O) - injections-- - playsound(src,'sound/machines/click.ogg', 15, 1) - return - -/obj/item/clothing/suit/storage/marine/M3G - name = "\improper M3-G4 grenadier armor" - desc = "A custom set of M3 armor packed to the brim with padding, plating, and every form of ballistic protection under the sun. Used exclusively by USCM Grenadiers." - icon_state = "grenadier" - armor_melee = CLOTHING_ARMOR_MEDIUMHIGH - armor_bullet = CLOTHING_ARMOR_MEDIUMHIGH - armor_bomb = CLOTHING_ARMOR_VERYHIGH - armor_bio = CLOTHING_ARMOR_MEDIUMLOW - armor_internaldamage = CLOTHING_ARMOR_MEDIUMHIGH - flags_inventory = BLOCKSHARPOBJ|BLOCK_KNOCKDOWN - flags_item = MOB_LOCK_ON_EQUIP|NO_CRYO_STORE - flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS|BODY_FLAG_FEET - flags_cold_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS|BODY_FLAG_FEET - flags_heat_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS|BODY_FLAG_FEET - slowdown = SLOWDOWN_ARMOR_HEAVY - specialty = "M3-G4 grenadier" - unacidable = TRUE - -/obj/item/clothing/suit/storage/marine/M3T - name = "\improper M3-T light armor" - desc = "A custom set of M3 armor designed for users of long-ranged explosive weaponry." - icon_state = "demolitionist" - armor_bomb = CLOTHING_ARMOR_HIGH - slowdown = SLOWDOWN_ARMOR_LIGHT - specialty = "M3-T light" - flags_item = MOB_LOCK_ON_EQUIP|NO_CRYO_STORE - unacidable = TRUE - -/obj/item/clothing/suit/storage/marine/M3S - name = "\improper M3-S light armor" - desc = "A custom set of M3 armor designed for USCM Scouts." - icon_state = "scout_armor" - armor_melee = CLOTHING_ARMOR_MEDIUMHIGH - slowdown = SLOWDOWN_ARMOR_LIGHT - specialty = "M3-S light" - flags_item = MOB_LOCK_ON_EQUIP|NO_CRYO_STORE - unacidable = TRUE - -#define FIRE_SHIELD_CD 150 - -/obj/item/clothing/suit/storage/marine/M35 - name = "\improper M35 pyrotechnician armor" - desc = "A custom set of M35 armor designed for use by USCM Pyrotechnicians." - icon_state = "pyro_armor" - armor_bio = CLOTHING_ARMOR_MEDIUMHIGH - armor_internaldamage = CLOTHING_ARMOR_MEDIUMHIGH - fire_intensity_resistance = BURN_LEVEL_TIER_1 - max_heat_protection_temperature = FIRESUIT_MAX_HEAT_PROT - flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS|BODY_FLAG_FEET - flags_cold_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS|BODY_FLAG_FEET - flags_heat_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS|BODY_FLAG_FEET - flags_item = MOB_LOCK_ON_EQUIP|NO_CRYO_STORE - specialty = "M35 pyrotechnician" - actions_types = list(/datum/action/item_action/toggle, /datum/action/item_action/specialist/fire_shield) - unacidable = TRUE - var/fire_shield_on = FALSE - var/can_activate = TRUE - -/obj/item/clothing/suit/storage/marine/M35/equipped(mob/user, slot) - if(slot == WEAR_JACKET) - RegisterSignal(user, COMSIG_LIVING_FLAMER_CROSSED, PROC_REF(flamer_fire_callback)) - ..() - -/obj/item/clothing/suit/storage/marine/M35/verb/fire_shield() - set name = "Activate Fire Shield" - set desc = "Activate your armor's FIREWALK protocol for a short duration." - set category = "Pyro" - set src in usr - if(!usr || usr.is_mob_incapacitated(TRUE)) - return - if(!ishuman(usr)) - return - var/mob/living/carbon/human/H = usr - - if(H.wear_suit != src) - to_chat(H, SPAN_WARNING("You must be wearing the M35 pyro armor to activate FIREWALK protocol!")) - return - - if(!skillcheck(H, SKILL_SPEC_WEAPONS, SKILL_SPEC_ALL) && H.skills.get_skill_level(SKILL_SPEC_WEAPONS) != SKILL_SPEC_PYRO) - to_chat(H, SPAN_WARNING("You don't seem to know how to use [src]...")) - return - - if(fire_shield_on) - to_chat(H, SPAN_WARNING("You already have FIREWALK protocol activated!")) - return - - if(!can_activate) - to_chat(H, SPAN_WARNING("FIREWALK protocol was recently activated, wait before trying to activate it again.")) - return - - to_chat(H, SPAN_NOTICE("FIREWALK protocol has been activated. You will now be immune to fire for 6 seconds!")) - RegisterSignal(H, COMSIG_LIVING_PREIGNITION, PROC_REF(fire_shield_is_on)) - RegisterSignal(H, list( - COMSIG_LIVING_FLAMER_FLAMED, - ), PROC_REF(flamer_fire_callback)) - fire_shield_on = TRUE - can_activate = FALSE - for(var/X in actions) - var/datum/action/A = X - A.update_button_icon() - addtimer(CALLBACK(src, PROC_REF(end_fire_shield), H), 6 SECONDS) - - H.add_filter("firewalk_on", 1, list("type" = "outline", "color" = "#03fcc6", "size" = 1)) - -/obj/item/clothing/suit/storage/marine/M35/proc/end_fire_shield(mob/living/carbon/human/user) - if(!istype(user)) - return - to_chat(user, SPAN_NOTICE("FIREWALK protocol has finished.")) - UnregisterSignal(user, list( - COMSIG_LIVING_PREIGNITION, - COMSIG_LIVING_FLAMER_FLAMED, - )) - fire_shield_on = FALSE - - user.remove_filter("firewalk_on") - - addtimer(CALLBACK(src, PROC_REF(enable_fire_shield), user), FIRE_SHIELD_CD) - -/obj/item/clothing/suit/storage/marine/M35/proc/enable_fire_shield(mob/living/carbon/human/user) - if(!istype(user)) - return - to_chat(user, SPAN_NOTICE("FIREWALK protocol can be activated again.")) - can_activate = TRUE - - for(var/X in actions) - var/datum/action/A = X - A.update_button_icon() - -/// This proc is solely so that IgniteMob() fails -/obj/item/clothing/suit/storage/marine/M35/proc/fire_shield_is_on(mob/living/L) - SIGNAL_HANDLER - - if(L.fire_reagent?.fire_penetrating) - return - - return COMPONENT_CANCEL_IGNITION - -/obj/item/clothing/suit/storage/marine/M35/proc/flamer_fire_callback(mob/living/L, datum/reagent/R) - SIGNAL_HANDLER - - if(R.fire_penetrating) - return - - . = COMPONENT_NO_IGNITE - if(fire_shield_on) - . |= COMPONENT_NO_BURN - -/obj/item/clothing/suit/storage/marine/M35/dropped(mob/user) - if (!istype(user)) - return - UnregisterSignal(user, list( - COMSIG_LIVING_PREIGNITION, - COMSIG_LIVING_FLAMER_CROSSED, - COMSIG_LIVING_FLAMER_FLAMED, - )) - ..() - -#undef FIRE_SHIELD_CD - -/datum/action/item_action/specialist/fire_shield - ability_primacy = SPEC_PRIMARY_ACTION_2 - -/datum/action/item_action/specialist/fire_shield/New(mob/living/user, obj/item/holder) - ..() - name = "Activate Fire Shield" - button.name = name - button.overlays.Cut() - var/image/IMG = image('icons/obj/items/clothing/cm_suits.dmi', button, "pyro_armor") - button.overlays += IMG - -/datum/action/item_action/specialist/fire_shield/action_cooldown_check() - var/obj/item/clothing/suit/storage/marine/M35/armor = holder_item - if (!istype(armor)) - return FALSE - - return !armor.can_activate - -/datum/action/item_action/specialist/fire_shield/can_use_action() - var/mob/living/carbon/human/H = owner - if(istype(H) && !H.is_mob_incapacitated() && H.wear_suit == holder_item) - return TRUE - -/datum/action/item_action/specialist/fire_shield/action_activate() - var/obj/item/clothing/suit/storage/marine/M35/armor = holder_item - if (!istype(armor)) - return - - armor.fire_shield() - -#define FULL_CAMOUFLAGE_ALPHA 15 - -/obj/item/clothing/suit/storage/marine/ghillie - name = "\improper M45 pattern ghillie armor" - desc = "A lightweight ghillie camouflage suit, used by USCM snipers on recon missions. Very lightweight, but doesn't protect much." - icon_state = "ghillie_armor" - armor_bio = CLOTHING_ARMOR_MEDIUMHIGH - slowdown = SLOWDOWN_ARMOR_LIGHT - flags_marine_armor = ARMOR_LAMP_OVERLAY - flags_item = MOB_LOCK_ON_EQUIP - specialty = "M45 pattern ghillie" - valid_accessory_slots = list(ACCESSORY_SLOT_ARMBAND, ACCESSORY_SLOT_DECOR, ACCESSORY_SLOT_MEDAL, ACCESSORY_SLOT_PONCHO) - restricted_accessory_slots = list(ACCESSORY_SLOT_ARMBAND) - - var/camo_active = FALSE - var/hide_in_progress = FALSE - var/full_camo_alpha = FULL_CAMOUFLAGE_ALPHA - var/incremental_shooting_camo_penalty = 35 - var/current_camo = FULL_CAMOUFLAGE_ALPHA - var/camouflage_break = 5 SECONDS - var/camouflage_enter_delay = 4 SECONDS - var/can_camo = TRUE - - actions_types = list(/datum/action/item_action/toggle, /datum/action/item_action/specialist/prepare_position) - -/obj/item/clothing/suit/storage/marine/ghillie/dropped(mob/user) - if(ishuman(user) && !issynth(user)) - deactivate_camouflage(user, FALSE) - - . = ..() - -/obj/item/clothing/suit/storage/marine/ghillie/verb/camouflage() - set name = "Prepare Position" - set desc = "Use the ghillie suit and the nearby environment to become near invisible." - set category = "Object" - set src in usr - if(!usr || usr.is_mob_incapacitated(TRUE)) - return - - if(!ishuman(usr) || hide_in_progress || !can_camo) - return - var/mob/living/carbon/human/H = usr - if(!skillcheck(H, SKILL_SPEC_WEAPONS, SKILL_SPEC_ALL) && H.skills.get_skill_level(SKILL_SPEC_WEAPONS) != SKILL_SPEC_SNIPER && !(GLOB.character_traits[/datum/character_trait/skills/spotter] in H.traits)) - to_chat(H, SPAN_WARNING("You don't seem to know how to use [src]...")) - return - if(H.wear_suit != src) - to_chat(H, SPAN_WARNING("You must be wearing the ghillie suit to activate it!")) - return - - if(camo_active) - deactivate_camouflage(H) - return - - H.visible_message(SPAN_DANGER("[H] goes prone, and begins adjusting \his ghillie suit!"), SPAN_NOTICE("You go prone, and begins adjusting your ghillie suit."), max_distance = 4) - hide_in_progress = TRUE - H.unset_interaction() // If we're sticking to a machine gun or what not. - if(!do_after(H, camouflage_enter_delay, INTERRUPT_NO_NEEDHAND|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD)) - hide_in_progress = FALSE - return - hide_in_progress = FALSE - RegisterSignal(H, list( - COMSIG_MOB_FIRED_GUN, - COMSIG_MOB_FIRED_GUN_ATTACHMENT) - , PROC_REF(fade_in)) - RegisterSignal(H, list( - COMSIG_MOB_DEATH, - COMSIG_HUMAN_EXTINGUISH - ), PROC_REF(deactivate_camouflage)) - camo_active = TRUE - H.alpha = full_camo_alpha - H.FF_hit_evade = 1000 - ADD_TRAIT(H, TRAIT_UNDENSE, SPECIALIST_GEAR_TRAIT) - - RegisterSignal(H, COMSIG_MOB_MOVE_OR_LOOK, PROC_REF(handle_mob_move_or_look)) - - var/datum/mob_hud/security/advanced/SA = GLOB.huds[MOB_HUD_SECURITY_ADVANCED] - SA.remove_from_hud(H) - var/datum/mob_hud/xeno_infection/XI = GLOB.huds[MOB_HUD_XENO_INFECTION] - XI.remove_from_hud(H) - - anim(H.loc, H, 'icons/mob/mob.dmi', null, "cloak", null, H.dir) - - -/obj/item/clothing/suit/storage/marine/ghillie/proc/deactivate_camouflage(mob/user) - SIGNAL_HANDLER - var/mob/living/carbon/human/H = user - if(!istype(H)) - return FALSE - - if(!camo_active) - return - - UnregisterSignal(H, list( - COMSIG_MOB_FIRED_GUN, - COMSIG_MOB_FIRED_GUN_ATTACHMENT, - COMSIG_MOB_DEATH, - COMSIG_HUMAN_EXTINGUISH, - COMSIG_MOB_MOVE_OR_LOOK - )) - - camo_active = FALSE - animate(H, alpha = initial(H.alpha), flags = ANIMATION_END_NOW) - H.FF_hit_evade = initial(H.FF_hit_evade) - REMOVE_TRAIT(H, TRAIT_UNDENSE, SPECIALIST_GEAR_TRAIT) - - var/datum/mob_hud/security/advanced/SA = GLOB.huds[MOB_HUD_SECURITY_ADVANCED] - SA.add_to_hud(H) - var/datum/mob_hud/xeno_infection/XI = GLOB.huds[MOB_HUD_XENO_INFECTION] - XI.add_to_hud(H) - - H.visible_message(SPAN_DANGER("[H]'s camouflage fails!"), SPAN_WARNING("Your camouflage fails!"), max_distance = 4) - -/obj/item/clothing/suit/storage/marine/ghillie/proc/fade_in(mob/user) - SIGNAL_HANDLER - var/mob/living/carbon/human/H = user - if(camo_active) - if(current_camo < full_camo_alpha) - current_camo = full_camo_alpha - current_camo = Clamp(current_camo + incremental_shooting_camo_penalty, full_camo_alpha, 255) - H.alpha = current_camo - addtimer(CALLBACK(src, PROC_REF(fade_out_finish), H), camouflage_break, TIMER_OVERRIDE|TIMER_UNIQUE) - animate(H, alpha = full_camo_alpha + 5, time = camouflage_break, easing = LINEAR_EASING, flags = ANIMATION_END_NOW) - -/obj/item/clothing/suit/storage/marine/ghillie/proc/fade_out_finish(mob/living/carbon/human/H) - if(camo_active && H.wear_suit == src) - to_chat(H, SPAN_BOLDNOTICE("The smoke clears and your position is once again hidden completely!")) - animate(H, alpha = full_camo_alpha) - current_camo = full_camo_alpha - -/obj/item/clothing/suit/storage/marine/ghillie/proc/handle_mob_move_or_look(mob/living/mover, actually_moving, direction, specific_direction) - SIGNAL_HANDLER - - if(camo_active && actually_moving) - deactivate_camouflage(mover) - -/datum/action/item_action/specialist/prepare_position - ability_primacy = SPEC_PRIMARY_ACTION_1 - -/datum/action/item_action/specialist/prepare_position/New(mob/living/user, obj/item/holder) - ..() - name = "Prepare Position" - button.name = name - button.overlays.Cut() - var/image/IMG = image('icons/mob/hud/actions.dmi', button, "prepare_position") - button.overlays += IMG - -/datum/action/item_action/specialist/prepare_position/can_use_action() - var/mob/living/carbon/human/H = owner - if(istype(H) && !H.is_mob_incapacitated() && H.body_position == STANDING_UP && holder_item == H.wear_suit) - return TRUE - -/datum/action/item_action/specialist/prepare_position/action_activate() - var/obj/item/clothing/suit/storage/marine/ghillie/GS = holder_item - GS.camouflage() - -#undef FULL_CAMOUFLAGE_ALPHA - -/obj/item/clothing/suit/storage/marine/ghillie/forecon - name = "UDEP Thermal Poncho" - desc = "UDEP or the Ultra Diffusive Environmental Poncho is a camouflaged rain-cover worn to protect against the elements and chemical spills. It's commonly treated with an infrared absorbing coating, making a marine almost invisible in the rain. Favoured by USCM specialists for it's comfort and practicality." - icon_state = "mercenary_miner_armor" - flags_atom = MOB_LOCK_ON_EQUIP|NO_SNOW_TYPE|NO_NAME_OVERRIDE - -/obj/item/clothing/suit/storage/marine/sof - name = "\improper SOF Armor" - desc = "A heavily customized suit of M3 armor. Used by Marine Raiders." - icon_state = "marsoc" - armor_melee = CLOTHING_ARMOR_HIGH - armor_bullet = CLOTHING_ARMOR_HIGH - armor_bomb = CLOTHING_ARMOR_VERYHIGH - armor_bio = CLOTHING_ARMOR_MEDIUMLOW - armor_rad = CLOTHING_ARMOR_MEDIUMHIGH - armor_internaldamage = CLOTHING_ARMOR_MEDIUMHIGH - slowdown = SLOWDOWN_ARMOR_LIGHT - unacidable = TRUE - flags_atom = MOB_LOCK_ON_EQUIP|NO_CRYO_STORE|NO_SNOW_TYPE - storage_slots = 4 - -//=============================//pmcS\\==================================\\ -//=======================================================================\\ - -/obj/item/clothing/suit/storage/marine/veteran - flags_marine_armor = ARMOR_LAMP_OVERLAY - flags_atom = NO_SNOW_TYPE|NO_NAME_OVERRIDE //Let's make these keep their name and icon. - -/obj/item/clothing/suit/storage/marine/veteran/pmc - name = "\improper M4 pattern PMC armor" - desc = "A modification of the standard Armat Systems M3 armor. Designed for high-profile security operators and corporate mercenaries in mind." - icon_state = "pmc_armor" - armor_bullet = CLOTHING_ARMOR_MEDIUMHIGH - armor_energy = CLOTHING_ARMOR_MEDIUMLOW - armor_bomb = CLOTHING_ARMOR_MEDIUM - armor_rad = CLOTHING_ARMOR_MEDIUM - storage_slots = 2 - slowdown = SLOWDOWN_ARMOR_LIGHT - flags_atom = NO_SNOW_TYPE|NO_NAME_OVERRIDE - allowed = list( - /obj/item/weapon/gun, - /obj/item/tank/emergency_oxygen, - /obj/item/device/flashlight, - /obj/item/ammo_magazine/, - /obj/item/weapon/baton, - /obj/item/handcuffs, - /obj/item/storage/fancy/cigarettes, - /obj/item/tool/lighter, - /obj/item/explosive/grenade, - /obj/item/storage/bible, - /obj/item/tool/crowbar, - /obj/item/storage/large_holster/katana, - /obj/item/storage/large_holster/machete, - /obj/item/weapon/sword/machete, - /obj/item/attachable/bayonet, - /obj/item/device/motiondetector, - /obj/item/tool/crew_monitor, - /obj/item/device/walkman, - ) - uniform_restricted = list(/obj/item/clothing/under/marine/veteran/pmc) - item_state_slots = list(WEAR_JACKET = "pmc_armor") - -/obj/item/clothing/suit/storage/marine/veteran/pmc/light - name = "\improper M4 pattern light PMC armor" - desc = "A modification of the standard Armat Systems M3 armor. Designed for high-profile security operators and corporate mercenaries in mind. Has some armor plating removed for extra mobility." - icon_state = "pmc_sniper" - armor_melee = CLOTHING_ARMOR_MEDIUMLOW - armor_bullet = CLOTHING_ARMOR_MEDIUM - armor_energy = CLOTHING_ARMOR_MEDIUMLOW - armor_bomb = CLOTHING_ARMOR_MEDIUMLOW - armor_rad = CLOTHING_ARMOR_MEDIUM - armor_internaldamage = CLOTHING_ARMOR_MEDIUMLOW - slowdown = SLOWDOWN_ARMOR_VERY_LIGHT - item_state_slots = list(WEAR_JACKET = "pmc_sniper") - -/obj/item/clothing/suit/storage/marine/veteran/pmc/light/corporate - name = "\improper M1 pattern corporate security armor" - desc = "A basic vest with a Weyland-Yutani badge on the right breast. This is commonly worn by low-level guards protecting Weyland-Yutani facilities." - icon = 'icons/mob/humans/onmob/contained/wy_goons.dmi' - icon_state = "armor" - item_state = "armor" - item_state_slots = null - contained_sprite = TRUE - - flags_armor_protection = BODY_FLAG_CHEST - flags_cold_protection = BODY_FLAG_CHEST - flags_heat_protection = BODY_FLAG_CHEST - - slowdown = SLOWDOWN_ARMOR_NONE // only protects chest, but enables rapid movement - -/obj/item/clothing/suit/storage/marine/veteran/pmc/light/corporate/lead - desc = "A basic vest with a Weyland-Yutani badge on the right breast. This variant is worn by low-level guards that have elevated in rank due to 'good conduct in the field', also known as corporate bootlicking." - icon_state = "lead_armor" - item_state = "lead_armor" - -/obj/item/clothing/suit/storage/marine/veteran/pmc/leader - name = "\improper M4 pattern PMC leader armor" - desc = "A modification of the standard Armat Systems M3 armor. Designed for high-profile security operators and corporate mercenaries in mind. This particular suit looks like it belongs to a high-ranking officer." - icon_state = "officer_armor" - uniform_restricted = list(/obj/item/clothing/under/marine/veteran/pmc/leader) - item_state_slots = list(WEAR_JACKET = "officer_armor") - -/obj/item/clothing/suit/storage/marine/veteran/pmc/sniper - name = "\improper M4 pattern PMC sniper armor" - icon_state = "pmc_sniper" - armor_bullet = CLOTHING_ARMOR_MEDIUMHIGH - armor_energy = CLOTHING_ARMOR_MEDIUMLOW - armor_bomb = CLOTHING_ARMOR_MEDIUM - armor_rad = CLOTHING_ARMOR_MEDIUM - armor_internaldamage = CLOTHING_ARMOR_MEDIUM - flags_inv_hide = HIDELOWHAIR - item_state_slots = list(WEAR_JACKET = "pmc_sniper") - -/obj/item/clothing/suit/storage/marine/veteran/pmc/light/synth - name = "\improper M4 Synthetic PMC armor" - desc = "A serious modification of the standard Armat Systems M3 armor. This variant was designed for PMC Support Units in the field, with every armor insert removed. It's designed with the idea of a high speed lifesaver in mind." - time_to_unequip = 0.5 SECONDS - time_to_equip = 1 SECONDS - armor_melee = CLOTHING_ARMOR_NONE - armor_bullet = CLOTHING_ARMOR_NONE - armor_laser = CLOTHING_ARMOR_NONE - armor_energy = CLOTHING_ARMOR_NONE - armor_bomb = CLOTHING_ARMOR_NONE - armor_bio = CLOTHING_ARMOR_NONE - armor_rad = CLOTHING_ARMOR_NONE - armor_internaldamage = CLOTHING_ARMOR_NONE - storage_slots = 3 - slowdown = SLOWDOWN_ARMOR_SUPER_LIGHT - -/obj/item/clothing/suit/storage/marine/veteran/pmc/light/synth/Initialize() - flags_atom |= NO_NAME_OVERRIDE - flags_marine_armor |= SYNTH_ALLOWED - return ..() - -/obj/item/clothing/suit/storage/marine/smartgunner/veteran/pmc - name = "\improper PMC gunner armor" - desc = "A modification of the standard Armat Systems M3 armor. Hooked up with harnesses and straps allowing the user to carry an M56 Smartgun." - icon_state = "heavy_armor" - flags_inventory = BLOCKSHARPOBJ|BLOCK_KNOCKDOWN|SMARTGUN_HARNESS - flags_atom = NO_SNOW_TYPE|NO_NAME_OVERRIDE - armor_bullet = CLOTHING_ARMOR_MEDIUMHIGH - armor_laser = CLOTHING_ARMOR_MEDIUMLOW - armor_energy = CLOTHING_ARMOR_MEDIUMLOW - armor_bomb = CLOTHING_ARMOR_MEDIUM - armor_rad = CLOTHING_ARMOR_MEDIUM - item_state_slots = list(WEAR_JACKET = "heavy_armor") - -/obj/item/clothing/suit/storage/marine/smartgunner/veteran/pmc/terminator - name = "\improper M5Xg exoskeleton gunner armor" - desc = "A complex system of overlapping plates intended to render the wearer all but impervious to small arms fire. A passive exoskeleton supports the weight of the armor, allowing a human to carry its massive bulk. This variant is designed to support a M56 Smartgun." - icon_state = "commando_armor" - slowdown = SLOWDOWN_ARMOR_MEDIUM - movement_compensation = SLOWDOWN_ARMOR_VERY_HEAVY - armor_melee = CLOTHING_ARMOR_HIGH - armor_bullet = CLOTHING_ARMOR_ULTRAHIGH - armor_laser = CLOTHING_ARMOR_MEDIUM - armor_energy = CLOTHING_ARMOR_MEDIUM - armor_bomb = CLOTHING_ARMOR_VERYHIGH - armor_rad = CLOTHING_ARMOR_MEDIUMHIGH - armor_internaldamage = CLOTHING_ARMOR_MEDIUMHIGH - flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS|BODY_FLAG_FEET - uniform_restricted = list(/obj/item/clothing/under/marine/veteran/pmc/commando) - item_state_slots = list(WEAR_JACKET = "commando_armor") - unacidable = TRUE - -/obj/item/clothing/suit/storage/marine/veteran/pmc/commando - name = "\improper M5X exoskeleton armor" - desc = "A complex system of overlapping plates intended to render the wearer all but impervious to small arms fire. A passive exoskeleton supports the weight of the armor, allowing a human to carry its massive bulk." - icon_state = "commando_armor" - slowdown = SLOWDOWN_ARMOR_MEDIUM - movement_compensation = SLOWDOWN_ARMOR_VERY_HEAVY - armor_melee = CLOTHING_ARMOR_VERYHIGH - armor_bullet = CLOTHING_ARMOR_ULTRAHIGH - armor_energy = CLOTHING_ARMOR_MEDIUM - armor_bomb = CLOTHING_ARMOR_VERYHIGH - armor_rad = CLOTHING_ARMOR_MEDIUMHIGH - armor_internaldamage = CLOTHING_ARMOR_MEDIUMHIGH - flags_inventory = BLOCK_KNOCKDOWN - flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS|BODY_FLAG_FEET - uniform_restricted = list(/obj/item/clothing/under/marine/veteran/pmc/commando) - item_state_slots = list(WEAR_JACKET = "commando_armor") - unacidable = TRUE - -//===========================//DISTRESS\\================================\\ -//=======================================================================\\ - -/obj/item/clothing/suit/storage/marine/veteran/bear - name = "\improper H1 Iron Bears vest" - desc = "A protective vest worn by Iron Bears mercenaries." - icon_state = "bear_armor" - flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN - armor_energy = CLOTHING_ARMOR_MEDIUMLOW - armor_bomb = CLOTHING_ARMOR_MEDIUM - armor_rad = CLOTHING_ARMOR_MEDIUM - storage_slots = 2 - slowdown = SLOWDOWN_ARMOR_VERY_LIGHT - uniform_restricted = list(/obj/item/clothing/under/marine/veteran/bear) - -/obj/item/clothing/suit/storage/marine/veteran/dutch - name = "\improper D2 armored vest" - desc = "A protective vest worn by some seriously experienced mercs." - icon_state = "dutch_armor" - flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS //Makes no sense but they need leg/arm armor too. - armor_melee = CLOTHING_ARMOR_HIGH - armor_bullet = CLOTHING_ARMOR_HIGHPLUS - armor_energy = CLOTHING_ARMOR_MEDIUMLOW - armor_bomb = CLOTHING_ARMOR_HIGH - armor_rad = CLOTHING_ARMOR_MEDIUM - storage_slots = 2 - light_range = 7 - slowdown = SLOWDOWN_ARMOR_VERY_LIGHT - uniform_restricted = list(/obj/item/clothing/under/marine/veteran/dutch) - -/obj/item/clothing/suit/storage/marine/veteran/van_bandolier - name = "safari jacket" - desc = "A tailored hunting jacket, cunningly lined with segmented armor plates. Sometimes the game shoots back." - icon_state = "van_bandolier" - item_state = "van_bandolier_jacket" - blood_overlay_type = "coat" - flags_marine_armor = NO_FLAGS //No shoulder light. - actions_types = list() - slowdown = SLOWDOWN_ARMOR_LIGHT - storage_slots = 2 - movement_compensation = SLOWDOWN_ARMOR_LIGHT - uniform_restricted = list(/obj/item/clothing/under/marine/veteran/van_bandolier) - allowed = list( - /obj/item/weapon/gun, - /obj/item/tank/emergency_oxygen, - /obj/item/device/flashlight, - /obj/item/storage/fancy/cigarettes, - /obj/item/tool/lighter, - /obj/item/storage/bible, - /obj/item/attachable/bayonet, - /obj/item/storage/backpack/general_belt, - /obj/item/storage/large_holster/machete, - /obj/item/storage/belt/gun/m4a3, - /obj/item/storage/belt/gun/m44, - /obj/item/storage/belt/gun/smartpistol, - /obj/item/storage/belt/gun/flaregun, - /obj/item/device/motiondetector, - /obj/item/device/walkman, - /obj/item/storage/belt/shotgun/van_bandolier, - ) - -//===========================//U.P.P\\================================\\ -//=====================================================================\\ - -/obj/item/clothing/suit/storage/marine/faction - flags_atom = NO_SNOW_TYPE|NO_NAME_OVERRIDE - flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS - flags_cold_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS - flags_heat_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS - min_cold_protection_temperature = HELMET_MIN_COLD_PROT - max_heat_protection_temperature = HELMET_MAX_HEAT_PROT - blood_overlay_type = "armor" - armor_melee = CLOTHING_ARMOR_MEDIUM - armor_bullet = CLOTHING_ARMOR_MEDIUM - armor_laser = CLOTHING_ARMOR_MEDIUMLOW - armor_energy = CLOTHING_ARMOR_MEDIUMLOW - armor_bomb = CLOTHING_ARMOR_MEDIUM - armor_bio = CLOTHING_ARMOR_MEDIUM - armor_rad = CLOTHING_ARMOR_MEDIUM - armor_internaldamage = CLOTHING_ARMOR_MEDIUMHIGH - slowdown = SLOWDOWN_ARMOR_MEDIUM - movement_compensation = SLOWDOWN_ARMOR_LIGHT - - -/obj/item/clothing/suit/storage/marine/faction/UPP - name = "\improper UM5 personal armor" - desc = "Standard body armor of the UPP military, the UM5 (Union Medium MK5) is a medium body armor, roughly on par with the M3 pattern body armor in service with the USCM, specialized towards ballistics protection. Unlike the M3, however, the plate has a heavier neckplate. This has earned many UA members to refer to UPP soldiers as 'tin men'." - icon_state = "upp_armor" - armor_bullet = CLOTHING_ARMOR_HIGH - armor_energy = CLOTHING_ARMOR_MEDIUM - armor_bio = CLOTHING_ARMOR_MEDIUMLOW - armor_rad = CLOTHING_ARMOR_MEDIUMLOW - armor_internaldamage = CLOTHING_ARMOR_HIGH - storage_slots = 1 - uniform_restricted = list(/obj/item/clothing/under/marine/veteran/UPP, /obj/item/clothing/under/marine/veteran/UPP/medic, /obj/item/clothing/under/marine/veteran/UPP/engi) - -/obj/item/clothing/suit/storage/marine/faction/UPP/support - name = "\improper UL6 personal armor" - desc = "Standard body armor of the UPP military, the UL6 (Union Light MK6) is a light body armor, slightly weaker than the M3 pattern body armor in service with the USCM, specialized towards ballistics protection. This set of personal armor lacks the iconic neck piece and some of the armor in favor of user mobility." - storage_slots = 3 - icon_state = "upp_armor_support" - slowdown = SLOWDOWN_ARMOR_LIGHT - armor_melee = CLOTHING_ARMOR_HIGH - armor_energy = CLOTHING_ARMOR_MEDIUM - armor_bio = CLOTHING_ARMOR_MEDIUMLOW - armor_rad = CLOTHING_ARMOR_MEDIUMLOW - armor_internaldamage = CLOTHING_ARMOR_HIGH - -/obj/item/clothing/suit/storage/marine/faction/UPP/commando - name = "\improper UM5CU personal armor" - desc = "A modification of the UM5, designed for stealth operations." - icon_state = "upp_armor_commando" - storage_slots = 2 - slowdown = SLOWDOWN_ARMOR_LIGHT - -/obj/item/clothing/suit/storage/marine/faction/UPP/heavy - name = "\improper UH7 heavy plated armor" - desc = "An extremely heavy-duty set of body armor in service with the UPP military, the UH7 (Union Heavy MK7) is known for having powerful ballistic protection, alongside a noticeable neck guard, fortified in order to allow the wearer to endure the stresses of the bulky helmet." - icon_state = "upp_armor_heavy" - storage_slots = 3 - slowdown = SLOWDOWN_ARMOR_HEAVY - flags_inventory = BLOCKSHARPOBJ|BLOCK_KNOCKDOWN - flags_armor_protection = BODY_FLAG_ALL_BUT_HEAD - armor_melee = CLOTHING_ARMOR_MEDIUMHIGH - armor_bullet = CLOTHING_ARMOR_HIGHPLUS - armor_laser = CLOTHING_ARMOR_MEDIUMLOW - armor_energy = CLOTHING_ARMOR_MEDIUM - armor_bomb = CLOTHING_ARMOR_HIGH - armor_bio = CLOTHING_ARMOR_MEDIUM - armor_rad = CLOTHING_ARMOR_MEDIUMLOW - armor_internaldamage = CLOTHING_ARMOR_HIGHPLUS - -/obj/item/clothing/suit/storage/marine/faction/UPP/heavy/Initialize() - . = ..() - pockets.bypass_w_limit = list( - /obj/item/ammo_magazine/minigun, - /obj/item/ammo_magazine/pkp, - ) - -/obj/item/clothing/suit/storage/marine/faction/UPP/officer - name = "\improper UL4 officer jacket" - desc = "A lightweight jacket, issued to officers of the UPP's military. Slightly protective from incoming damage, best off with proper armor however." - icon_state = "upp_coat_officer" - slowdown = SLOWDOWN_ARMOR_NONE - flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS - armor_melee = CLOTHING_ARMOR_LOW //wear actual armor if you go into combat - armor_bullet = CLOTHING_ARMOR_LOW - armor_energy = CLOTHING_ARMOR_LOW - armor_bomb = CLOTHING_ARMOR_LOW - armor_bio = CLOTHING_ARMOR_LOW - armor_rad = CLOTHING_ARMOR_LOW - armor_internaldamage = CLOTHING_ARMOR_LOW - storage_slots = 3 - uniform_restricted = list(/obj/item/clothing/under/marine/veteran/UPP/officer) - -/obj/item/clothing/suit/storage/marine/faction/UPP/kapitan - name = "\improper UL4 senior officer jacket" - desc = "A lightweight jacket, issued to senior officers of the UPP's military. Made of high-quality materials, even going as far as having the ranks and insignia of the Kapitan and their Company emblazoned on the shoulders and front of the jacket. Slightly protective from incoming damage, best off with proper armor however." - icon_state = "upp_coat_kapitan" - slowdown = SLOWDOWN_ARMOR_NONE - armor_melee = CLOTHING_ARMOR_LOW //wear actual armor if you go into combat - armor_bullet = CLOTHING_ARMOR_LOW - armor_energy = CLOTHING_ARMOR_LOW - armor_bomb = CLOTHING_ARMOR_LOW - armor_bio = CLOTHING_ARMOR_LOW - armor_rad = CLOTHING_ARMOR_LOW - armor_internaldamage = CLOTHING_ARMOR_LOW - flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS - storage_slots = 4 - uniform_restricted = list(/obj/item/clothing/under/marine/veteran/UPP/officer) - -/obj/item/clothing/suit/storage/marine/faction/UPP/mp - name = "\improper UL4 camouflaged jacket" - desc = "A lightweight jacket, issued to troops when they're not expected to engage in combat. Still studded to the brim with kevlar shards, though the synthread construction reduces its effectiveness." - icon_state = "upp_coat_mp" - slowdown = SLOWDOWN_ARMOR_NONE - flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS - armor_melee = CLOTHING_ARMOR_LOW //wear actual armor if you go into combat - armor_bullet = CLOTHING_ARMOR_LOW - armor_energy = CLOTHING_ARMOR_LOW - armor_bomb = CLOTHING_ARMOR_LOW - armor_bio = CLOTHING_ARMOR_LOW - armor_rad = CLOTHING_ARMOR_LOW - armor_internaldamage = CLOTHING_ARMOR_LOW - storage_slots = 4 - uniform_restricted = list(/obj/item/clothing/under/marine/veteran/UPP) - valid_accessory_slots = list(ACCESSORY_SLOT_ARMBAND, ACCESSORY_SLOT_DECOR, ACCESSORY_SLOT_MEDAL) - restricted_accessory_slots = list(ACCESSORY_SLOT_ARMBAND) - -/obj/item/clothing/suit/storage/marine/faction/UPP/jacket/ivan - name = "\improper UH4 Camo Jacket" - desc = "An experimental heavily armored variant of the UL4 given to only the most elite units... usually." - slowdown = SLOWDOWN_ARMOR_MEDIUM - flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_LEGS|BODY_FLAG_ARMS|BODY_FLAG_HANDS|BODY_FLAG_FEET - armor_melee = CLOTHING_ARMOR_HIGH - armor_energy = CLOTHING_ARMOR_MEDIUMLOW - armor_bomb = CLOTHING_ARMOR_HIGH - armor_bio = CLOTHING_ARMOR_MEDIUM - armor_rad = CLOTHING_ARMOR_MEDIUM - armor_internaldamage = CLOTHING_ARMOR_HIGH - storage_slots = 2 - - -//===========================//FREELANCER\\================================\\ -//=====================================================================\\ - -/obj/item/clothing/suit/storage/marine/faction/freelancer - name = "freelancer cuirass" - desc = "An armored protective chestplate scrapped together from various plates. It keeps up remarkably well, as the craftsmanship is solid, and the design mirrors such armors in the UPP and the USCM. The many skilled craftsmen in the freelancers ranks produce these vests at a rate about one a month." - icon_state = "freelancer_armor" - slowdown = SLOWDOWN_ARMOR_LIGHT - flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_LEGS - armor_melee = CLOTHING_ARMOR_MEDIUMHIGH - armor_bullet = CLOTHING_ARMOR_MEDIUMHIGH - armor_energy = CLOTHING_ARMOR_MEDIUMLOW - storage_slots = 2 - uniform_restricted = list(/obj/item/clothing/under/marine/veteran/freelancer) - -//this one is for CLF -/obj/item/clothing/suit/storage/militia - name = "colonial militia hauberk" - desc = "The hauberk of a colonist militia member, created from boiled leather and some modern armored plates. While not the most powerful form of armor, and primitive compared to most modern suits of armor, it gives the wearer almost perfect mobility, which suits the needs of the local colonists. It is also quick to don, easy to hide, and cheap to produce in large workshops." - icon = 'icons/obj/items/clothing/cm_suits.dmi' - icon_state = "rebel_armor" - item_icons = list( - WEAR_JACKET = 'icons/mob/humans/onmob/suit_1.dmi' - ) - sprite_sheets = list(SPECIES_MONKEY = 'icons/mob/humans/species/monkeys/onmob/suit_monkey_1.dmi') - slowdown = SLOWDOWN_ARMOR_VERY_LIGHT - flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_LEGS|BODY_FLAG_ARMS - movement_compensation = SLOWDOWN_ARMOR_MEDIUM - armor_melee = CLOTHING_ARMOR_MEDIUM - armor_bullet = CLOTHING_ARMOR_MEDIUMLOW - armor_laser = CLOTHING_ARMOR_MEDIUMLOW - armor_energy = CLOTHING_ARMOR_MEDIUMLOW - armor_bomb = CLOTHING_ARMOR_MEDIUM - armor_bio = CLOTHING_ARMOR_MEDIUMLOW - armor_rad = CLOTHING_ARMOR_MEDIUM - armor_internaldamage = CLOTHING_ARMOR_MEDIUM - storage_slots = 2 - uniform_restricted = list(/obj/item/clothing/under/colonist) - allowed = list( - /obj/item/weapon/gun, - /obj/item/tank/emergency_oxygen, - /obj/item/device/flashlight, - /obj/item/ammo_magazine, - /obj/item/explosive/grenade, - /obj/item/device/binoculars, - /obj/item/attachable/bayonet, - /obj/item/storage/backpack/general_belt, - /obj/item/storage/large_holster/machete, - /obj/item/weapon/baseballbat, - /obj/item/weapon/baseballbat/metal, - /obj/item/device/motiondetector, - /obj/item/device/walkman, - ) - flags_cold_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_LEGS|BODY_FLAG_FEET|BODY_FLAG_ARMS|BODY_FLAG_HANDS - min_cold_protection_temperature = SPACE_SUIT_MIN_COLD_PROT - valid_accessory_slots = list(ACCESSORY_SLOT_MEDAL) - -/obj/item/clothing/suit/storage/militia/Initialize() - . = ..() - pockets.max_w_class = SIZE_SMALL //Can contain small items AND rifle magazines. - pockets.bypass_w_limit = list( - /obj/item/ammo_magazine/rifle, - /obj/item/ammo_magazine/smg, - /obj/item/ammo_magazine/sniper, - ) - pockets.max_storage_space = 8 - -/obj/item/clothing/suit/storage/militia/vest - name = "colonial militia vest" - desc = "The hauberk of a colonist militia member, created from boiled leather and some modern armored plates. While not the most powerful form of armor, and primitive compared to most modern suits of armor, it gives the wearer almost perfect mobility, which suits the needs of the local colonists. It is also quick to don, easy to hide, and cheap to produce in large workshops. This extremely light variant protects only the chest and abdomen." - icon_state = "clf_2" - flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN - flags_cold_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN - slowdown = 0.2 - movement_compensation = SLOWDOWN_ARMOR_MEDIUM - -/obj/item/clothing/suit/storage/militia/brace - name = "colonial militia brace" - desc = "The hauberk of a colonist militia member, created from boiled leather and some modern armored plates. While not the most powerful form of armor, and primitive compared to most modern suits of armor, it gives the wearer almost perfect mobility, which suits the needs of the local colonists. It is also quick to don, easy to hide, and cheap to produce in large workshops. This extremely light variant has some of the chest pieces removed." - icon_state = "clf_3" - flags_armor_protection = BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS - flags_cold_protection = BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS - slowdown = 0.2 - movement_compensation = SLOWDOWN_ARMOR_MEDIUM - -/obj/item/clothing/suit/storage/militia/partial - name = "colonial militia partial hauberk" - desc = "The hauberk of a colonist militia member, created from boiled leather and some modern armored plates. While not the most powerful form of armor, and primitive compared to most modern suits of armor, it gives the wearer almost perfect mobility, which suits the needs of the local colonists. It is also quick to don, easy to hide, and cheap to produce in large workshops. This even lighter variant has some of the arm pieces removed." - icon_state = "clf_4" - flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_LEGS - flags_cold_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS - slowdown = 0.2 - -/obj/item/clothing/suit/storage/militia/smartgun - name = "colonial militia harness" - desc = "The hauberk of a colonist militia member, created from boiled leather and some modern armored plates. While not the most powerful form of armor, and primitive compared to most modern suits of armor, it gives the wearer almost perfect mobility, which suits the needs of the local colonists. It is also quick to don, easy to hide, and cheap to produce in large workshops. This one has straps interweaved with the plates, that allow the user to fire a captured smartgun, if a bit uncomfortably." - flags_inventory = BLOCKSHARPOBJ|SMARTGUN_HARNESS - -/obj/item/clothing/suit/storage/CMB - name = "\improper CMB jacket" - desc = "A black jacket worn by Colonial Marshals. The back is enscribed with the powerful letters of 'MARSHAL' representing justice, authority, and protection in the outer rim. The laws of the Earth stretch beyond the Sol." - icon_state = "CMB_jacket" - blood_overlay_type = "coat" - flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS - flags_cold_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS - armor_melee = CLOTHING_ARMOR_MEDIUMLOW - armor_bullet = CLOTHING_ARMOR_MEDIUMLOW - armor_energy = CLOTHING_ARMOR_LOW - armor_bomb = CLOTHING_ARMOR_LOW - armor_bio = CLOTHING_ARMOR_LOW - armor_internaldamage = CLOTHING_ARMOR_LOW - allowed = list( - /obj/item/weapon/gun, - /obj/item/storage/fancy/cigarettes, - /obj/item/tool/lighter, - /obj/item/weapon/baton, - /obj/item/handcuffs, - /obj/item/device/binoculars, - /obj/item/attachable/bayonet, - /obj/item/device/flashlight, - /obj/item/device/healthanalyzer, - /obj/item/device/radio, - /obj/item/tank/emergency_oxygen, - /obj/item/tool/crowbar, - /obj/item/tool/crew_monitor, - /obj/item/tool/pen, - /obj/item/storage/belt/gun/m4a3, - /obj/item/storage/belt/gun/m44, - /obj/item/storage/belt/gun/mateba, - /obj/item/storage/belt/gun/smartpistol, - /obj/item/storage/large_holster/machete, - /obj/item/storage/large_holster/katana, - /obj/item/device/motiondetector, - /obj/item/device/walkman, - ) - valid_accessory_slots = list(ACCESSORY_SLOT_ARMBAND, ACCESSORY_SLOT_DECOR) - restricted_accessory_slots = list(ACCESSORY_SLOT_ARMBAND) - -/obj/item/clothing/suit/storage/CMB/Initialize() - . = ..() - pockets.max_w_class = SIZE_SMALL //Can contain small items AND rifle magazines. - pockets.bypass_w_limit = list( - /obj/item/ammo_magazine/rifle, - /obj/item/ammo_magazine/smg, - /obj/item/ammo_magazine/sniper, - ) - pockets.max_storage_space = 8 - -/obj/item/clothing/suit/storage/RO - name = "quartermaster jacket" - desc = "A green jacket worn by USCM personnel. The back has the flag of the United Americas on it." - icon_state = "RO_jacket" - blood_overlay_type = "coat" - flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_ARMS - valid_accessory_slots = list(ACCESSORY_SLOT_ARMBAND, ACCESSORY_SLOT_DECOR, ACCESSORY_SLOT_MEDAL) - restricted_accessory_slots = list(ACCESSORY_SLOT_ARMBAND) - -//===========================//HELGHAST - MERCENARY\\================================\\ -//=====================================================================\\ - -/obj/item/clothing/suit/storage/marine/veteran/mercenary - name = "\improper K12 ceramic plated armor" - desc = "A set of grey, heavy ceramic armor with dark blue highlights. It is the standard uniform of an unknown mercenary group working in the sector." - icon_state = "mercenary_heavy_armor" - flags_inventory = BLOCKSHARPOBJ|BLOCK_KNOCKDOWN - armor_melee = CLOTHING_ARMOR_VERYHIGH - armor_bullet = CLOTHING_ARMOR_VERYHIGH - armor_energy = CLOTHING_ARMOR_MEDIUMLOW - armor_bomb = CLOTHING_ARMOR_MEDIUM - armor_bio = CLOTHING_ARMOR_HIGHPLUS - armor_rad = CLOTHING_ARMOR_MEDIUM - armor_internaldamage = CLOTHING_ARMOR_HIGHPLUS - storage_slots = 2 - slowdown = SLOWDOWN_ARMOR_LIGHT - allowed = list( - /obj/item/weapon/gun, - /obj/item/tank/emergency_oxygen, - /obj/item/device/flashlight, - /obj/item/ammo_magazine/, - /obj/item/weapon/baton, - /obj/item/handcuffs, - /obj/item/storage/fancy/cigarettes, - /obj/item/tool/lighter, - /obj/item/explosive/grenade, - /obj/item/storage/bible, - /obj/item/weapon/sword/machete, - /obj/item/attachable/bayonet, - /obj/item/device/motiondetector, - /obj/item/device/walkman, - ) - uniform_restricted = list(/obj/item/clothing/under/marine/veteran/mercenary) - item_state_slots = list(WEAR_JACKET = "mercenary_heavy_armor") - -/obj/item/clothing/suit/storage/marine/veteran/mercenary/heavy - name = "\improper Modified K12 ceramic plated armor" - desc = "A set of grey, heavy ceramic armor with dark blue highlights. It has been modified with extra ceramic plates placed in its storage pouch, and seems intended to support an extremely heavy weapon." - armor_melee = CLOTHING_ARMOR_ULTRAHIGH - armor_bullet = CLOTHING_ARMOR_ULTRAHIGHPLUS - armor_bomb = CLOTHING_ARMOR_HIGHPLUS - armor_bio = CLOTHING_ARMOR_HIGHPLUS - armor_rad = CLOTHING_ARMOR_MEDIUM - armor_internaldamage = CLOTHING_ARMOR_VERYHIGHPLUS - storage_slots = 1 - -/obj/item/clothing/suit/storage/marine/veteran/mercenary/miner - name = "\improper Y8 armored miner vest" - desc = "A set of beige, light armor built for protection while mining. It is a specialized uniform of an unknown mercenary group working in the sector." - icon_state = "mercenary_miner_armor" - storage_slots = 3 - allowed = list( - /obj/item/weapon/gun, - /obj/item/tank/emergency_oxygen, - /obj/item/device/flashlight, - /obj/item/ammo_magazine/, - /obj/item/weapon/baton, - /obj/item/handcuffs, - /obj/item/storage/fancy/cigarettes, - /obj/item/tool/lighter, - /obj/item/explosive/grenade, - /obj/item/storage/bible, - /obj/item/weapon/sword/machete, - /obj/item/attachable/bayonet, - /obj/item/device/motiondetector, - /obj/item/device/walkman, - ) - uniform_restricted = list(/obj/item/clothing/under/marine/veteran/mercenary) - item_state_slots = list(WEAR_JACKET = "mercenary_miner_armor") - -/obj/item/clothing/suit/storage/marine/veteran/mercenary/support - name = "\improper Z7 armored vest" - desc = "A set of blue armor with yellow highlights built for protection while building or carrying out medical treatment in highly dangerous environments. It is a specialized uniform of an unknown mercenary group working in the sector." - icon_state = "mercenary_engineer_armor" - item_state_slots = list(WEAR_JACKET = "mercenary_engineer_armor") - -/obj/item/clothing/suit/storage/marine/M3G/hefa - name = "\improper HEFA Knight armor" - desc = "A thick piece of armor adorning a HEFA. Usually seen on a HEFA knight." - specialty = "HEFA Knight" - icon_state = "hefadier" - flags_atom = NO_NAME_OVERRIDE|NO_SNOW_TYPE - flags_item = NO_CRYO_STORE - flags_marine_armor = ARMOR_LAMP_OVERLAY - armor_bullet = CLOTHING_ARMOR_VERYHIGH - armor_melee = CLOTHING_ARMOR_VERYHIGH - armor_bomb = CLOTHING_ARMOR_GIGAHIGH - - -//=========================//PROVOST\\================================\\ -//=======================================================================\\ - -/obj/item/clothing/suit/storage/marine/MP/provost - name = "\improper M3 pattern Provost armor" - desc = "A standard Provost M3 Pattern Chestplate. Protects the chest from ballistic rounds, bladed objects and accidents. It has a small leather pouch strapped to it for limited storage." - icon_state = "pvmedium" - item_state_slots = list(WEAR_JACKET = "pvmedium") - slowdown = SLOWDOWN_ARMOR_LIGHT - armor_bullet = CLOTHING_ARMOR_MEDIUM - armor_laser = CLOTHING_ARMOR_MEDIUMLOW - armor_bomb = CLOTHING_ARMOR_MEDIUMHIGH - armor_bio = CLOTHING_ARMOR_MEDIUMHIGH - armor_internaldamage = CLOTHING_ARMOR_MEDIUM - flags_atom = NO_SNOW_TYPE|NO_NAME_OVERRIDE - storage_slots = 3 - -/obj/item/clothing/suit/storage/marine/MP/provost/tml - name = "\improper M3 pattern Senior Provost armor" - desc = "A more refined Provost M3 Pattern Chestplate for senior officers. Protects the chest from ballistic rounds, bladed objects and accidents. It has a small leather pouch strapped to it for limited storage." - icon_state = "pvleader" - item_state_slots = list(WEAR_JACKET = "pvleader") - -/obj/item/clothing/suit/storage/marine/MP/provost/marshal - name = "\improper M5 pattern Provost Marshal armor" - desc = "A custom fit luxury armor suit for Provost Marshals. Useful for letting your men know who is in charge when taking to the field." - icon_state = "pvmarshal" - item_state_slots = list(WEAR_JACKET = "pvmarshal") - w_class = SIZE_MEDIUM - storage_slots = 4 - -/obj/item/clothing/suit/storage/marine/MP/provost/light - name = "\improper M3 pattern Provost light armor" - desc = "A lighter Provost M3 Pattern Chestplate. Protects the chest from ballistic rounds, bladed objects and accidents. It has a small leather pouch strapped to it for limited storage." - icon_state = "pvlight" - item_state_slots = list(WEAR_JACKET = "pvlight") - slowdown = SLOWDOWN_ARMOR_VERY_LIGHT - -/obj/item/clothing/suit/storage/marine/MP/provost/light/flexi - name = "\improper M3 pattern Provost flexi-armor" - desc = "A flexible and easy to store M3 Pattern Chestplate. Protects the chest from ballistic rounds, bladed objects and accidents. It has a small leather pouch strapped to it for limited storage." - w_class = SIZE_MEDIUM - icon_state = "pvlight_2" - item_state_slots = list(WEAR_JACKET = "pvlight_2") - storage_slots = 2 - -//================//UNITED AMERICAS ALLIED COMMAND\\=====================\\ -//=======================================================================\\ - -/obj/item/clothing/suit/storage/marine/uaac/tis/sa - name = "\improper M3 pattern UAAC-TIS Special Agent Armor" - desc = "A modified luxury armor, originally meant for a USCM Provost Marshall, modified to use the colors and insignia of the TIS. The Three Eyes is technically able to requisition any equipment or personnel to fulfill its mission and often uses this privilege to outfit their agents with high-quality gear from other UA military forces." - icon_state = "tis" - item_state_slots = list(WEAR_JACKET = "tis") - armor_melee = CLOTHING_ARMOR_MEDIUMHIGH - armor_bullet = CLOTHING_ARMOR_MEDIUMHIGH - armor_laser = CLOTHING_ARMOR_LOW - armor_energy = CLOTHING_ARMOR_LOW - armor_bomb = CLOTHING_ARMOR_MEDIUM - armor_internaldamage = CLOTHING_ARMOR_MEDIUMLOW - storage_slots = 2 - slowdown = SLOWDOWN_ARMOR_LIGHT - flags_atom = NO_SNOW_TYPE|NO_NAME_OVERRIDE - allowed = list( - /obj/item/weapon/gun, - /obj/item/tank/emergency_oxygen, - /obj/item/device/flashlight, - /obj/item/ammo_magazine/, - /obj/item/storage/fancy/cigarettes, - /obj/item/tool/lighter, - /obj/item/weapon/baton, - /obj/item/handcuffs, - /obj/item/explosive/grenade, - /obj/item/device/binoculars, - /obj/item/attachable/bayonet, - /obj/item/storage/backpack/general_belt, - /obj/item/device/hailer, - /obj/item/storage/belt/gun, - /obj/item/weapon/sword/ceremonial, - /obj/item/device/motiondetector, - /obj/item/device/walkman, - ) - uniform_restricted = list(/obj/item/clothing/under/uaac/tis) - -//================//UNITED AMERICAS RIOT CONTROL\\=====================\\ -//=======================================================================\\ - -/obj/item/clothing/suit/storage/marine/veteran/ua_riot - name = "\improper UA-M1 body armor" - desc = "Based on the M-3 pattern employed by the USCM, the UA-M1 body armor is employed by UA security, riot control and union-busting teams. While robust against melee and bullet attacks, it critically lacks coverage of the legs and arms." - icon_state = "ua_riot" - flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN - flags_cold_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN - flags_heat_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN - armor_melee = CLOTHING_ARMOR_MEDIUMHIGH - armor_bullet = CLOTHING_ARMOR_MEDIUMHIGH - armor_energy = CLOTHING_ARMOR_MEDIUM - armor_bomb = CLOTHING_ARMOR_MEDIUM - armor_rad = CLOTHING_ARMOR_MEDIUM - armor_internaldamage = CLOTHING_ARMOR_MEDIUMHIGH - slowdown = SLOWDOWN_ARMOR_VERY_LIGHT // it's lighter - uniform_restricted = list(/obj/item/clothing/under/marine/ua_riot) - flags_atom = NO_SNOW_TYPE - -//==================War Correspondent==================\\ - -/obj/item/clothing/suit/storage/marine/light/reporter - name = "press body armor" - desc = "Body armor used by war correspondents in battles and wars across the universe." - icon = 'icons/mob/humans/onmob/contained/war_correspondent.dmi' - icon_state = "wc_armor" - flags_atom = NO_SNOW_TYPE|NO_NAME_OVERRIDE - contained_sprite = TRUE - - -//=ROYAL MARINES=\\ - -/obj/item/clothing/suit/storage/marine/veteran/royal_marine - name = "kestrel armoured vest" - desc = "A customizable personal armor system used by the Three World Empire's Royal Marines Commandos. Designers from a Weyland Yutani subsidary, Lindenthal-Ehrenfeld Militärindustrie, iterated on the USCMC's M3 pattern personal armor in their Tokonigara lab to create an armor systemed to suit the unique needs of the Three World Empire's smaller but better equipped Royal Marines." - icon_state = "rmc_light" - item_state = "rmc_light" - flags_atom = NO_NAME_OVERRIDE|NO_SNOW_TYPE - allowed = list( - /obj/item/weapon/gun, - /obj/item/tank/emergency_oxygen, - /obj/item/device/flashlight, - /obj/item/ammo_magazine/, - /obj/item/weapon/baton, - /obj/item/handcuffs, - /obj/item/storage/fancy/cigarettes, - /obj/item/tool/lighter, - /obj/item/explosive/grenade, - /obj/item/storage/bible, - /obj/item/weapon/sword/machete, - /obj/item/attachable/bayonet, - /obj/item/device/motiondetector, - /obj/item/device/walkman, - ) - -/obj/item/clothing/suit/storage/marine/veteran/royal_marine/light //RMC Rifleman Armor - icon_state = "rmc_light" - item_state = "rmc_light" - armor_bullet = CLOTHING_ARMOR_MEDIUMHIGH - armor_energy = CLOTHING_ARMOR_MEDIUMLOW - armor_bomb = CLOTHING_ARMOR_MEDIUM - armor_rad = CLOTHING_ARMOR_MEDIUM - slowdown = SLOWDOWN_ARMOR_LIGHT - -/obj/item/clothing/suit/storage/marine/veteran/royal_marine/light/team_leader //RMC TL & LT Armor - name = "kestrel armoured carry vest" - icon_state = "rmc_light_padded" - item_state = "rmc_light_padded" - storage_slots = 7 - -/obj/item/clothing/suit/storage/marine/veteran/royal_marine/smartgun //Smartgun Spec Armor - name = "kestrel armoured smartgun harness" - icon_state = "rmc_smartgun" - item_state = "rmc_smartgun" - flags_inventory = BLOCKSHARPOBJ|BLOCK_KNOCKDOWN|SMARTGUN_HARNESS - -/obj/item/clothing/suit/storage/marine/veteran/royal_marine/pointman //Pointman Spec Armor - name = "kestrel pointman armour" - desc = "A heavier version of the armor system used by the Three World Empire's Royal Marines Commandos. Designers from a Weyland Yutani subsidary, Lindenthal-Ehrenfeld Militärindustrie, iterated on the USCMC's M3 pattern personal armor in their Tokonigara lab to create an armor systemed to suit the unique needs of the Three World Empire's smaller but better equipped Royal Marines." - icon_state = "rmc_pointman" - item_state = "rmc_pointman" - armor_melee = CLOTHING_ARMOR_HIGH - armor_bullet = CLOTHING_ARMOR_HIGHPLUS - armor_bomb = CLOTHING_ARMOR_HIGHPLUS - armor_bio = CLOTHING_ARMOR_MEDIUM - armor_rad = CLOTHING_ARMOR_MEDIUM - armor_internaldamage = CLOTHING_ARMOR_MEDIUMHIGH - storage_slots = 7 - slowdown = SLOWDOWN_ARMOR_LOWHEAVY - movement_compensation = SLOWDOWN_ARMOR_MEDIUM - -/atom/movable/marine_light - light_system = DIRECTIONAL_LIGHT - -//CBRN -/obj/item/clothing/suit/storage/marine/cbrn - name = "\improper M3-M armor" - desc = "While lacking the appearance of the M3 pattern armor worn in regular service, this armor piece is still a derivative of it. It has been heavily modified to fit over the MOPP suit with additional padding and Venlar composite layers removed, so as not to restrict the wearer’s movement. However, with the reduction of composite layers, the personal protection offered is less than desired with complaints having been lodged since 2165." - icon_state = "cbrn" - item_state = "cbrn" - slowdown = SLOWDOWN_ARMOR_HEAVY - armor_melee = CLOTHING_ARMOR_MEDIUM - armor_bullet = CLOTHING_ARMOR_MEDIUM - armor_bomb = CLOTHING_ARMOR_MEDIUM - armor_bio = CLOTHING_ARMOR_LOW - armor_rad =CLOTHING_ARMOR_MEDIUMLOW - armor_internaldamage = CLOTHING_ARMOR_LOW - flags_marine_armor = NO_FLAGS - flags_atom = NO_NAME_OVERRIDE|NO_SNOW_TYPE - flags_inventory = BLOCKSHARPOBJ - flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN - flags_cold_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN - flags_heat_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN - uniform_restricted = list(/obj/item/clothing/under/marine/cbrn) - -/obj/item/clothing/suit/storage/marine/cbrn/advanced - slowdown = SLOWDOWN_ARMOR_LOWHEAVY - armor_melee = CLOTHING_ARMOR_HIGH - armor_bullet = CLOTHING_ARMOR_MEDIUMHIGH - armor_bomb = CLOTHING_ARMOR_ULTRAHIGH - armor_bio = CLOTHING_ARMOR_GIGAHIGHPLUS - armor_rad = CLOTHING_ARMOR_GIGAHIGHPLUS - armor_internaldamage = CLOTHING_ARMOR_HIGHPLUS diff --git a/code/modules/clothing/suits/marine_armor/_marine_armor.dm b/code/modules/clothing/suits/marine_armor/_marine_armor.dm new file mode 100644 index 000000000000..e6cf78611a7f --- /dev/null +++ b/code/modules/clothing/suits/marine_armor/_marine_armor.dm @@ -0,0 +1,682 @@ +#define DEBUG_ARMOR_PROTECTION 0 + +#if DEBUG_ARMOR_PROTECTION +/mob/living/carbon/human/verb/check_overall_protection() + set name = "Get Armor Value" + set category = "Debug" + set desc = "Shows the armor value of the bullet category." + + var/armor = 0 + var/counter = 0 + for(var/X in H.limbs) + var/obj/limb/E = X + armor = getarmor_organ(E, ARMOR_BULLET) + to_chat(src, SPAN_DEBUG("[E.name] is protected with [armor] armor against bullets.")) + counter += armor + to_chat(src, SPAN_DEBUG("The overall armor score is: [counter].")) +#endif + +//=======================================================================\\ +//=======================================================================\\ + +#define ALPHA 1 +#define BRAVO 2 +#define CHARLIE 3 +#define DELTA 4 +#define ECHO 5 +#define CRYO 6 +#define SOF 7 +#define NOSQUAD 8 + +// MARINE STORAGE ARMOR + +/obj/item/clothing/suit/storage/marine + name = "\improper M3 pattern marine armor" + desc = "A standard Colonial Marines M3 Pattern Chestplate. Protects the chest from ballistic rounds, bladed objects and accidents. It has a small leather pouch strapped to it for limited storage." + icon = 'icons/obj/items/clothing/cm_suits.dmi' + icon_state = "1" + item_state = "marine_armor" //Make unique states for Officer & Intel armors. + item_icons = list( + WEAR_JACKET = 'icons/mob/humans/onmob/suit_1.dmi' + ) + flags_atom = FPRINT|CONDUCT + flags_inventory = BLOCKSHARPOBJ + flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS + flags_cold_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS + flags_heat_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS + min_cold_protection_temperature = HELMET_MIN_COLD_PROT + max_heat_protection_temperature = HELMET_MAX_HEAT_PROT + blood_overlay_type = "armor" + armor_melee = CLOTHING_ARMOR_MEDIUM + armor_bullet = CLOTHING_ARMOR_MEDIUM + armor_laser = CLOTHING_ARMOR_MEDIUMLOW + armor_energy = CLOTHING_ARMOR_NONE + armor_bomb = CLOTHING_ARMOR_MEDIUMLOW + armor_bio = CLOTHING_ARMOR_MEDIUM + armor_rad = CLOTHING_ARMOR_MEDIUMLOW + armor_internaldamage = CLOTHING_ARMOR_MEDIUM + movement_compensation = SLOWDOWN_ARMOR_LIGHT + storage_slots = 3 + siemens_coefficient = 0.7 + slowdown = SLOWDOWN_ARMOR_MEDIUM + allowed = list( + /obj/item/weapon/gun, + /obj/item/prop/prop_gun, + /obj/item/tank/emergency_oxygen, + /obj/item/device/flashlight, + /obj/item/storage/fancy/cigarettes, + /obj/item/tool/lighter, + /obj/item/storage/bible, + /obj/item/attachable/bayonet, + /obj/item/storage/backpack/general_belt, + /obj/item/storage/large_holster/machete, + /obj/item/storage/belt/gun/type47, + /obj/item/storage/belt/gun/m4a3, + /obj/item/storage/belt/gun/m44, + /obj/item/storage/belt/gun/smartpistol, + /obj/item/storage/belt/gun/flaregun, + /obj/item/device/motiondetector, + /obj/item/device/walkman, + /obj/item/storage/belt/gun/m39, + /obj/item/storage/belt/gun/xm51, + ) + valid_accessory_slots = list(ACCESSORY_SLOT_MEDAL, ACCESSORY_SLOT_PONCHO) + + light_power = 3 + light_range = 4 + light_system = MOVABLE_LIGHT + + var/flashlight_cooldown = 0 //Cooldown for toggling the light + var/locate_cooldown = 0 //Cooldown for SL locator + var/armor_overlays[] + actions_types = list(/datum/action/item_action/toggle) + var/flags_marine_armor = ARMOR_SQUAD_OVERLAY|ARMOR_LAMP_OVERLAY + var/specialty = "M3 pattern marine" //Same thing here. Give them a specialty so that they show up correctly in vendors. speciality does NOTHING if you have NO_NAME_OVERRIDE + w_class = SIZE_HUGE + uniform_restricted = list(/obj/item/clothing/under/marine) + sprite_sheets = list(SPECIES_MONKEY = 'icons/mob/humans/species/monkeys/onmob/suit_monkey_1.dmi') + time_to_unequip = 20 + time_to_equip = 20 + pickup_sound = "armorequip" + drop_sound = "armorequip" + equip_sounds = list('sound/handling/putting_on_armor1.ogg') + var/armor_variation = 0 + /// The dmi where the grayscale squad overlays are contained + var/squad_overlay_icon = 'icons/mob/humans/onmob/suit_1.dmi' + + var/atom/movable/marine_light/light_holder + +/obj/item/clothing/suit/storage/marine/Initialize(mapload) + . = ..() + if(!(flags_atom & NO_NAME_OVERRIDE)) + name = "[specialty]" + if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD]) + name += " snow armor" //Leave marine out so that armors don't have to have "Marine" appended (see: generals). + else + name += " armor" + + if(!(flags_atom & NO_SNOW_TYPE)) + select_gamemode_skin(type) + armor_overlays = list("lamp") //Just one for now, can add more later. + if(armor_variation && mapload) + set_armor_style("Random") + update_icon() + pockets.max_w_class = SIZE_SMALL //Can contain small items AND rifle magazines. + pockets.bypass_w_limit = list( + /obj/item/ammo_magazine/rifle, + /obj/item/ammo_magazine/smg, + /obj/item/ammo_magazine/sniper, + ) + pockets.max_storage_space = 8 + + light_holder = new(src) + +/obj/item/clothing/suit/storage/marine/Destroy() + QDEL_NULL(light_holder) + return ..() + +/obj/item/clothing/suit/storage/marine/update_icon(mob/user) + var/image/I + armor_overlays["lamp"] = null + if(flags_marine_armor & ARMOR_LAMP_OVERLAY) + if(flags_marine_armor & ARMOR_LAMP_ON) + I = image('icons/obj/items/clothing/cm_suits.dmi', src, "lamp-on") + else + I = image('icons/obj/items/clothing/cm_suits.dmi', src, "lamp-off") + armor_overlays["lamp"] = I + overlays += I + else armor_overlays["lamp"] = null + if(user) user.update_inv_wear_suit() + + +/obj/item/clothing/suit/storage/marine/post_vendor_spawn_hook(mob/living/carbon/human/user) //used for randomizing/selecting a variant for armors. + if(!armor_variation) + return + + if(user?.client?.prefs) + // Set the armor style to the user's preference. + set_armor_style(user.client.prefs.preferred_armor) + else + // Or if that isn't possible, just pick a random one. + set_armor_style("Random") + update_icon(user) + +/obj/item/clothing/suit/storage/marine/attack_self(mob/user) + ..() + + if(!isturf(user.loc)) + to_chat(user, SPAN_WARNING("You cannot turn the light [light_on ? "off" : "on"] while in [user.loc].")) //To prevent some lighting anomalies. + return + + if(flashlight_cooldown > world.time) + return + if(!ishuman(user)) + return + + var/mob/living/carbon/human/H = user + if(H.wear_suit != src) + return + + turn_light(user, !light_on) + +/obj/item/clothing/suit/storage/marine/item_action_slot_check(mob/user, slot) + if(!ishuman(user)) + return FALSE + if(slot != WEAR_JACKET) + return FALSE + return TRUE //only give action button when armor is worn. + +/obj/item/clothing/suit/storage/marine/turn_light(mob/user, toggle_on) + . = ..() + if(. != CHECKS_PASSED) + return + set_light_range(initial(light_range)) + set_light_power(floor(initial(light_power) * 0.5)) + set_light_on(toggle_on) + flags_marine_armor ^= ARMOR_LAMP_ON + + light_holder.set_light_flags(LIGHT_ATTACHED) + light_holder.set_light_range(initial(light_range)) + light_holder.set_light_power(initial(light_power)) + light_holder.set_light_on(toggle_on) + + if(!toggle_on) + playsound(src, 'sound/handling/click_2.ogg', 50, 1) + + playsound(src, 'sound/handling/suitlight_on.ogg', 50, 1) + update_icon(user) + + for(var/X in actions) + var/datum/action/A = X + A.update_button_icon() + +/obj/item/clothing/suit/storage/marine/mob_can_equip(mob/living/carbon/human/M, slot, disable_warning = 0) + . = ..() + if (.) + if(issynth(M) && M.allow_gun_usage == FALSE && !(flags_marine_armor & SYNTH_ALLOWED)) + M.visible_message(SPAN_DANGER("Your programming prevents you from wearing this!")) + return 0 + +/** + * Updates the armor's `icon_state` to the style represented by `new_style`. + * + * Arguments: + * * new_style - The new armor style. May only be one of `GLOB.armor_style_list`'s keys, or `"Random"`. + */ +/obj/item/clothing/suit/storage/marine/proc/set_armor_style(new_style) + // Regex to match one or more digits. + var/static/regex/digits = new("\\d+") + // Integer for the new armor style's `icon_state`. + var/new_look + + if(new_style == "Random") + // The style icon states are all numbers between 1 and `armor_variation`, so this picks a random one. + new_look = rand(1, armor_variation) + else + new_look = GLOB.armor_style_list[new_style] + + // Replace the digits in the current icon state with `new_look`. (E.g. "L6" -> "L2") + icon_state = digits.Replace(icon_state, new_look) + +/obj/item/clothing/suit/storage/marine/medium/rto + icon_state = "io" + armor_variation = 0 + name = "\improper M4 pattern marine armor" + desc = "A well tinkered and crafted hybrid of Smart-Gunner mesh and M3 pattern plates. Robust, yet nimble, with room for all your pouches." + armor_bio = CLOTHING_ARMOR_MEDIUMHIGH + armor_rad = CLOTHING_ARMOR_MEDIUM + storage_slots = 4 + light_range = 5 //slightly higher + specialty = "M4 pattern marine" + +/obj/item/clothing/suit/storage/marine/MP + name = "\improper M2 pattern MP armor" + desc = "A standard Colonial Marines M2 Pattern Chestplate. Protects the chest from ballistic rounds, bladed objects and accidents. It has a small leather pouch strapped to it for limited storage." + icon_state = "mp_armor" + armor_melee = CLOTHING_ARMOR_MEDIUMHIGH + armor_bullet = CLOTHING_ARMOR_LOW + armor_laser = CLOTHING_ARMOR_LOW + armor_energy = CLOTHING_ARMOR_LOW + armor_bomb = CLOTHING_ARMOR_MEDIUM + armor_bio = CLOTHING_ARMOR_MEDIUMLOW + armor_internaldamage = CLOTHING_ARMOR_MEDIUMLOW + storage_slots = 2 + slowdown = SLOWDOWN_ARMOR_LIGHT + allowed = list( + /obj/item/weapon/gun, + /obj/item/tank/emergency_oxygen, + /obj/item/device/flashlight, + /obj/item/ammo_magazine/, + /obj/item/storage/fancy/cigarettes, + /obj/item/tool/lighter, + /obj/item/weapon/baton, + /obj/item/restraint/handcuffs, + /obj/item/explosive/grenade, + /obj/item/device/binoculars, + /obj/item/attachable/bayonet, + /obj/item/storage/backpack/general_belt, + /obj/item/device/hailer, + /obj/item/storage/belt/gun, + /obj/item/weapon/sword/ceremonial, + /obj/item/device/motiondetector, + /obj/item/device/walkman, + ) + uniform_restricted = list(/obj/item/clothing/under/marine/mp) + specialty = "M2 pattern MP" + item_state_slots = list(WEAR_JACKET = "mp_armor") + black_market_value = 20 + +/obj/item/clothing/suit/storage/marine/MP/warden + icon_state = "warden" + name = "\improper M3 pattern warden MP armor" + desc = "A well-crafted suit of M3 Pattern Armor typically distributed to Wardens. Useful for letting your men know who is in charge." + armor_bio = CLOTHING_ARMOR_MEDIUMLOW + armor_rad = CLOTHING_ARMOR_MEDIUMLOW + uniform_restricted = list(/obj/item/clothing/under/marine/warden) + specialty = "M3 pattern warden MP" + item_state_slots = list(WEAR_JACKET = "warden") + +/obj/item/clothing/suit/storage/marine/MP/WO + icon_state = "warrant_officer" + name = "\improper M3 pattern chief MP armor" + desc = "A well-crafted suit of M3 Pattern Armor typically distributed to Chief MPs. Useful for letting your men know who is in charge." + uniform_restricted = list(/obj/item/clothing/under/marine/officer/warrant) + specialty = "M3 pattern chief MP" + item_state_slots = list(WEAR_JACKET = "warrant_officer") + black_market_value = 30 + +/obj/item/clothing/suit/storage/marine/MP/general + name = "\improper M3 pattern general officer armor" + desc = "A well-crafted suit of M3 Pattern Armor with a gold shine. It looks very expensive, but shockingly fairly easy to carry and wear." + icon_state = "general" + armor_bullet = CLOTHING_ARMOR_MEDIUMHIGH + armor_bio = CLOTHING_ARMOR_MEDIUM + uniform_restricted = list(/obj/item/clothing/under/marine/officer/general) + specialty = "M3 pattern general" + item_state_slots = list(WEAR_JACKET = "general") + w_class = SIZE_MEDIUM + +/obj/item/clothing/suit/storage/marine/MP/SO + name = "\improper M3 pattern officer armor" + desc = "A well-crafted suit of M3 Pattern Armor typically found in the hands of higher-ranking officers. Useful for letting your men know who is in charge when taking to the field." + icon_state = "officer" + storage_slots = 3 + flags_atom = null + uniform_restricted = list(/obj/item/clothing/under/marine/officer, /obj/item/clothing/under/rank/qm_suit, /obj/item/clothing/under/rank/chief_medical_officer, /obj/item/clothing/under/marine/dress) + specialty = "M3 pattern officer" + item_state_slots = list(WEAR_JACKET = "officer") + +//Making a new object because we might want to edit armor values and such. +//Or give it its own sprite. It's more for the future. +/obj/item/clothing/suit/storage/marine/MP/CO + name = "\improper M3 pattern commanding officer armor" + desc = "A robust, well-polished suit of armor for the Commanding Officer. Custom-made to fit its owner with special straps to operate a smartgun. Show those Marines who's really in charge." + icon_state = "co_officer" + item_state = "co_officer" + armor_bullet = CLOTHING_ARMOR_HIGH + storage_slots = 3 + flags_atom = NO_SNOW_TYPE + flags_inventory = BLOCKSHARPOBJ|SMARTGUN_HARNESS + uniform_restricted = list(/obj/item/clothing/under/marine, /obj/item/clothing/under/rank/qm_suit) + specialty = "M3 pattern captain" + item_state_slots = list(WEAR_JACKET = "co_officer") + valid_accessory_slots = list(ACCESSORY_SLOT_MEDAL, ACCESSORY_SLOT_RANK, ACCESSORY_SLOT_DECOR, ACCESSORY_SLOT_PONCHO) + black_market_value = 35 + + +/obj/item/clothing/suit/storage/marine/MP/CO/jacket + name = "\improper M3 pattern commanding officer armored coat" + desc = "A robust, well-polished suit of armor for the Commanding Officer. Custom-made to fit its owner with special straps to operate a smartgun. Show those Marines who's really in charge. This one has a coat over it for added warmth." + icon_state = "bridge_coat_armored" + item_state = "bridge_coat_armored" + item_state_slots = list(WEAR_JACKET = "bridge_coat_armored") + valid_accessory_slots = list(ACCESSORY_SLOT_MEDAL, ACCESSORY_SLOT_RANK) + +/obj/item/clothing/suit/storage/marine/medium/leader + name = "\improper B12 pattern marine armor" + desc = "A lightweight suit of carbon fiber body armor built for quick movement. Designed in a lovely forest green. Use it to toggle the built-in flashlight." + icon_state = "7" + armor_variation = 0 + armor_melee = CLOTHING_ARMOR_MEDIUMHIGH + armor_bomb = CLOTHING_ARMOR_MEDIUM + armor_bio = CLOTHING_ARMOR_MEDIUMHIGH + armor_internaldamage = CLOTHING_ARMOR_MEDIUMHIGH + specialty = "B12 pattern marine" + light_range = 5 + +/obj/item/clothing/suit/storage/marine/tanker + name = "\improper M3 pattern tanker armor" + desc = "A modified and refashioned suit of M3 Pattern armor designed to be worn by the loader of a USCM vehicle crew. While the suit is a bit more encumbering to wear with the crewman uniform, it offers the loader a degree of protection that would otherwise not be enjoyed." + icon_state = "tanker" + uniform_restricted = list(/obj/item/clothing/under/marine/officer/tanker) + specialty = "M3 pattern tanker" + storage_slots = 2 + +//===========================//PFC ARMOR CLASSES\\================================\\ +//=================================================================================\\ + +// M3 pattern marine armor +/obj/item/clothing/suit/storage/marine/medium + armor_variation = 6 + light_power = 4 + +/obj/item/clothing/suit/storage/marine/medium/padded + name = "M3 pattern padded marine armor" + icon_state = "1" + armor_variation = 0 + specialty = "M3 pattern padded marine" + +/obj/item/clothing/suit/storage/marine/medium/padless + name = "M3 pattern padless marine armor" + icon_state = "2" + armor_variation = 0 + specialty = "M3 pattern padless marine" + +/obj/item/clothing/suit/storage/marine/medium/padless_lines + name = "M3 pattern ridged marine armor" + icon_state = "3" + armor_variation = 0 + specialty = "M3 pattern ridged marine" + +/obj/item/clothing/suit/storage/marine/medium/carrier + name = "M3 pattern carrier marine armor" + icon_state = "4" + armor_variation = 0 + specialty = "M3 pattern carrier marine" + +/obj/item/clothing/suit/storage/marine/medium/skull + name = "M3 pattern skull marine armor" + icon_state = "5" + armor_variation = 0 + specialty = "M3 pattern skull marine" + +/obj/item/clothing/suit/storage/marine/medium/smooth + name = "M3 pattern smooth marine armor" + icon_state = "6" + armor_variation = 0 + specialty = "M3 pattern smooth marine" + +// M3-L pattern light armor +/obj/item/clothing/suit/storage/marine/light + name = "\improper M3-L pattern light armor" + desc = "A lighter, cut down version of the standard M3 pattern armor. It sacrifices durability for more speed." + specialty = "\improper M3-L pattern light" + icon_state = "L1" + armor_variation = 6 + slowdown = SLOWDOWN_ARMOR_LIGHT + armor_melee = CLOTHING_ARMOR_MEDIUMLOW + armor_bullet = CLOTHING_ARMOR_MEDIUMLOW + armor_bomb = CLOTHING_ARMOR_MEDIUM + armor_bio = CLOTHING_ARMOR_MEDIUMLOW + armor_rad = CLOTHING_ARMOR_MEDIUMHIGH + armor_internaldamage = CLOTHING_ARMOR_LOW + storage_slots = 2 + +/obj/item/clothing/suit/storage/marine/light/padded + icon_state = "L1" + armor_variation = 0 + +/obj/item/clothing/suit/storage/marine/light/padless + icon_state = "L2" + armor_variation = 0 + +/obj/item/clothing/suit/storage/marine/light/padless_lines + icon_state = "L3" + armor_variation = 0 + +/obj/item/clothing/suit/storage/marine/light/carrier + icon_state = "L4" + armor_variation = 0 + +/obj/item/clothing/suit/storage/marine/light/skull + icon_state = "L5" + armor_variation = 0 + +/obj/item/clothing/suit/storage/marine/light/smooth + icon_state = "L6" + armor_variation = 0 + +/obj/item/clothing/suit/storage/marine/light/vest + name = "\improper M3-VL pattern ballistics vest" + desc = "Up until 2182 USCM non-combat personnel were issued non-standardized ballistics vests, though the lack of IMP compatibility and suit lamps proved time and time again inefficient. This modified M3-L shell is the result of a 6-year R&D program; It provides utility, protection, AND comfort to all USCM non-combat personnel." + icon_state = "VL" + flags_atom = NO_SNOW_TYPE|NO_NAME_OVERRIDE + flags_marine_armor = ARMOR_LAMP_OVERLAY //No squad colors when wearing this since it'd look funny. + armor_melee = CLOTHING_ARMOR_MEDIUMLOW + armor_bullet = CLOTHING_ARMOR_HIGH + armor_energy = CLOTHING_ARMOR_LOW + armor_bomb = CLOTHING_ARMOR_LOW + armor_bio = CLOTHING_ARMOR_VERYLOW + armor_rad = CLOTHING_ARMOR_NONE + armor_internaldamage = CLOTHING_ARMOR_MEDIUM + storage_slots = 1 + time_to_unequip = 0.5 SECONDS + time_to_equip = 1 SECONDS + siemens_coefficient = 0.7 + uniform_restricted = null + +/obj/item/clothing/suit/storage/marine/light/vest/dcc + name = "\improper M3-VL pattern flak vest" + desc = "A combination of the standard non-combat M3-VL ballistics vest and M70 flak jacket, this piece of armor has been distributed to dropship crew to keep them safe from threats external and internal..." + icon_state = "VL_FLAK" + storage_slots = 2 + +/obj/item/clothing/suit/storage/marine/light/synvest + name = "\improper M3A1 Synthetic Utility Vest" + desc = "This variant of the ubiquitous M3 pattern vest has been extensively modified, providing no protection in exchange for maximum mobility and added storage. Synthetic programming compliant." + icon_state = "VL_syn_camo" + flags_atom = NO_NAME_OVERRIDE + flags_marine_armor = ARMOR_LAMP_OVERLAY|SYNTH_ALLOWED //No squad colors + can be worn by synths. + armor_melee = CLOTHING_ARMOR_NONE + armor_bullet = CLOTHING_ARMOR_NONE + armor_laser = CLOTHING_ARMOR_NONE + armor_energy = CLOTHING_ARMOR_NONE + armor_bomb = CLOTHING_ARMOR_NONE + armor_bio = CLOTHING_ARMOR_NONE + armor_rad = CLOTHING_ARMOR_NONE + armor_internaldamage = CLOTHING_ARMOR_NONE + storage_slots = 3 + slowdown = SLOWDOWN_ARMOR_SUPER_LIGHT + time_to_unequip = 0.5 SECONDS + time_to_equip = 1 SECONDS + uniform_restricted = null + +/obj/item/clothing/suit/storage/marine/light/synvest/grey + icon_state = "VL_syn" + flags_atom = NO_SNOW_TYPE|NO_NAME_OVERRIDE + +/obj/item/clothing/suit/storage/marine/light/synvest/jungle + icon_state = "VL_syn_camo" + flags_atom = NO_SNOW_TYPE|NO_NAME_OVERRIDE + +/obj/item/clothing/suit/storage/marine/light/synvest/snow + icon_state = "s_VL_syn_camo" + flags_atom = NO_SNOW_TYPE|NO_NAME_OVERRIDE + +/obj/item/clothing/suit/storage/marine/light/synvest/desert + icon_state = "d_VL_syn_camo" + flags_atom = NO_SNOW_TYPE|NO_NAME_OVERRIDE + +/obj/item/clothing/suit/storage/marine/light/synvest/dgrey + icon_state = "c_VL_syn_camo" + flags_atom = NO_SNOW_TYPE|NO_NAME_OVERRIDE + +/obj/item/clothing/suit/storage/marine/light/recon + name = "M3-R pattern light armor" + desc = "Special issue light armor for forward econnaissance Marines. Offers similar protection as M3 armor but none of the slowdown." + armor_melee = CLOTHING_ARMOR_MEDIUM + armor_bullet = CLOTHING_ARMOR_MEDIUM + armor_laser = CLOTHING_ARMOR_MEDIUMLOW + armor_energy = CLOTHING_ARMOR_NONE + armor_bomb = CLOTHING_ARMOR_MEDIUMLOW + armor_bio = CLOTHING_ARMOR_MEDIUM + armor_rad = CLOTHING_ARMOR_MEDIUMLOW + armor_internaldamage = CLOTHING_ARMOR_MEDIUM + movement_compensation = SLOWDOWN_ARMOR_LIGHT + +// M3-EOD pattern heavy armor +/obj/item/clothing/suit/storage/marine/heavy + name = "\improper M3-EOD pattern heavy armor" + desc = "A heavier version of the standard M3 pattern armor, the armor is primarily designed to withstand ballistic, explosive, and internal damage, with the drawback of increased bulk and thus reduced movement speed, alongside little additional protection from standard blunt force impacts and biological threats." + desc_lore = "This configuration of the iconic armor was developed during the Canton War in 2160 between the UPP and USCM - Designed in response to a need for higher protection for ComTechs assigned as EODs during the conflict, this is the pinnacle of protection for your average marine. The shoulders and kneepads have both been expanded upon heavily, covering up the arteries on each limb. A special spall liner was developed for this suit, with the same technology being used in the M70 Flak Jacket being developed at the same time." + specialty = "\improper M3-EOD pattern" + icon_state = "H1" + armor_variation = 6 + armor_melee = CLOTHING_ARMOR_MEDIUMHIGH + armor_bullet = CLOTHING_ARMOR_HIGHPLUS + armor_bomb = CLOTHING_ARMOR_HIGHPLUS + armor_bio = CLOTHING_ARMOR_MEDIUMHIGH + armor_rad = CLOTHING_ARMOR_MEDIUM + armor_internaldamage = CLOTHING_ARMOR_MEDIUMHIGH + storage_slots = 2 + slowdown = SLOWDOWN_ARMOR_LOWHEAVY + movement_compensation = SLOWDOWN_ARMOR_MEDIUM + light_power = 4 + light_range = 5 + +/obj/item/clothing/suit/storage/marine/heavy/padded + icon_state = "H1" + armor_variation = 0 + +/obj/item/clothing/suit/storage/marine/heavy/padless + icon_state = "H2" + armor_variation = 0 + +/obj/item/clothing/suit/storage/marine/heavy/padless_lines + icon_state = "H3" + armor_variation = 0 + +/obj/item/clothing/suit/storage/marine/heavy/carrier + icon_state = "H4" + armor_variation = 0 + +/obj/item/clothing/suit/storage/marine/heavy/skull + icon_state = "H5" + armor_variation = 0 + +/obj/item/clothing/suit/storage/marine/heavy/smooth + icon_state = "H6" + armor_variation = 0 + +//===========================//SPECIALIST\\================================\\ +//=======================================================================\\ + +/obj/item/clothing/suit/storage/marine/specialist + name = "\improper B18 defensive armor" + desc = "A heavy, rugged set of armor plates for when you really, really need to not die horribly. Slows you down though.\nComes with two tricord injectors in each arm guard." + icon_state = "xarmor" + armor_melee = CLOTHING_ARMOR_HIGH + armor_bullet = CLOTHING_ARMOR_HIGH + armor_bomb = CLOTHING_ARMOR_VERYHIGH + armor_bio = CLOTHING_ARMOR_MEDIUMLOW + armor_rad = CLOTHING_ARMOR_MEDIUMHIGH + armor_internaldamage = CLOTHING_ARMOR_MEDIUMHIGH + storage_slots = 2 + flags_inventory = BLOCKSHARPOBJ|BLOCK_KNOCKDOWN + flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS|BODY_FLAG_FEET + flags_cold_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS|BODY_FLAG_FEET + flags_heat_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS|BODY_FLAG_FEET + slowdown = SLOWDOWN_ARMOR_HEAVY + specialty = "B18 defensive" + unacidable = TRUE + var/injections = 4 + +/obj/item/clothing/suit/storage/marine/specialist/verb/inject() + set name = "Create Injector" + set category = "Object" + set src in usr + + if(usr.is_mob_incapacitated()) + return 0 + + if(!injections) + to_chat(usr, "Your armor is all out of injectors.") + return 0 + + if(usr.get_active_hand()) + to_chat(usr, "Your active hand must be empty.") + return 0 + + to_chat(usr, "You feel a faint hiss and an injector drops into your hand.") + var/obj/item/reagent_container/hypospray/autoinjector/skillless/O = new(usr) + usr.put_in_active_hand(O) + injections-- + playsound(src,'sound/machines/click.ogg', 15, 1) + return + +/obj/item/clothing/suit/storage/marine/M3G + name = "\improper M3-G4 grenadier armor" + desc = "A custom set of M3 armor packed to the brim with padding, plating, and every form of ballistic protection under the sun. Used exclusively by USCM Grenadiers." + icon_state = "grenadier" + armor_melee = CLOTHING_ARMOR_MEDIUMHIGH + armor_bullet = CLOTHING_ARMOR_MEDIUMHIGH + armor_bomb = CLOTHING_ARMOR_VERYHIGH + armor_bio = CLOTHING_ARMOR_MEDIUMLOW + armor_internaldamage = CLOTHING_ARMOR_MEDIUMHIGH + flags_inventory = BLOCKSHARPOBJ|BLOCK_KNOCKDOWN + flags_item = MOB_LOCK_ON_EQUIP|NO_CRYO_STORE + flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS|BODY_FLAG_FEET + flags_cold_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS|BODY_FLAG_FEET + flags_heat_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS|BODY_FLAG_FEET + slowdown = SLOWDOWN_ARMOR_HEAVY + specialty = "M3-G4 grenadier" + unacidable = TRUE + light_range = 5 + +/obj/item/clothing/suit/storage/marine/M3T + name = "\improper M3-T light armor" + desc = "A custom set of M3 armor designed for users of long-ranged explosive weaponry." + icon_state = "demolitionist" + armor_bomb = CLOTHING_ARMOR_HIGH + slowdown = SLOWDOWN_ARMOR_LIGHT + specialty = "M3-T light" + flags_item = MOB_LOCK_ON_EQUIP|NO_CRYO_STORE + unacidable = TRUE + +/obj/item/clothing/suit/storage/marine/M3S + name = "\improper M3-S light armor" + desc = "A custom set of M3 armor designed for USCM Scouts." + icon_state = "scout_armor" + armor_melee = CLOTHING_ARMOR_MEDIUMHIGH + slowdown = SLOWDOWN_ARMOR_LIGHT + specialty = "M3-S light" + flags_item = MOB_LOCK_ON_EQUIP|NO_CRYO_STORE + unacidable = TRUE + +/obj/item/clothing/suit/storage/RO + name = "quartermaster jacket" + desc = "A green jacket worn by USCM personnel. The back has the flag of the United Americas on it." + icon_state = "RO_jacket" + blood_overlay_type = "coat" + flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_ARMS + valid_accessory_slots = list(ACCESSORY_SLOT_ARMBAND, ACCESSORY_SLOT_DECOR, ACCESSORY_SLOT_MEDAL) + restricted_accessory_slots = list(ACCESSORY_SLOT_ARMBAND) + +//==================Combat Correspondent==================\\ + +/obj/item/clothing/suit/storage/marine/light/reporter + name = "press body armor" + desc = "Body armor used by war correspondents in battles and wars across the universe." + icon_state = "cc_armor" + flags_atom = NO_SNOW_TYPE|NO_NAME_OVERRIDE + diff --git a/code/modules/clothing/suits/marine_armor/ert.dm b/code/modules/clothing/suits/marine_armor/ert.dm new file mode 100644 index 000000000000..90fb962ffa93 --- /dev/null +++ b/code/modules/clothing/suits/marine_armor/ert.dm @@ -0,0 +1,859 @@ +//=============================//Marine Raiders\\==================================\\ +//=======================================================================\\ + +/obj/item/clothing/suit/storage/marine/sof + name = "\improper SOF Armor" + desc = "A heavily customized suit of M3 armor. Used by Marine Raiders." + icon_state = "marsoc" + armor_melee = CLOTHING_ARMOR_HIGH + armor_bullet = CLOTHING_ARMOR_HIGH + armor_bomb = CLOTHING_ARMOR_VERYHIGH + armor_bio = CLOTHING_ARMOR_MEDIUMLOW + armor_rad = CLOTHING_ARMOR_MEDIUMHIGH + armor_internaldamage = CLOTHING_ARMOR_MEDIUMHIGH + slowdown = SLOWDOWN_ARMOR_LIGHT + unacidable = TRUE + flags_atom = MOB_LOCK_ON_EQUIP|NO_CRYO_STORE|NO_SNOW_TYPE + storage_slots = 4 + + +//=============================//PMCs\\==================================\\ +//=======================================================================\\ + +/obj/item/clothing/suit/storage/marine/veteran + flags_marine_armor = ARMOR_LAMP_OVERLAY + flags_atom = NO_SNOW_TYPE|NO_NAME_OVERRIDE //Let's make these keep their name and icon. + +/obj/item/clothing/suit/storage/marine/veteran/pmc + name = "\improper M4 pattern PMC armor" + desc = "A modification of the standard Armat Systems M3 armor. Designed for high-profile security operators and corporate mercenaries in mind." + icon_state = "pmc_armor" + armor_bullet = CLOTHING_ARMOR_MEDIUMHIGH + armor_energy = CLOTHING_ARMOR_MEDIUMLOW + armor_bomb = CLOTHING_ARMOR_MEDIUM + armor_rad = CLOTHING_ARMOR_MEDIUM + storage_slots = 2 + slowdown = SLOWDOWN_ARMOR_LIGHT + flags_atom = NO_SNOW_TYPE|NO_NAME_OVERRIDE + allowed = list( + /obj/item/weapon/gun, + /obj/item/tank/emergency_oxygen, + /obj/item/device/flashlight, + /obj/item/ammo_magazine/, + /obj/item/weapon/baton, + /obj/item/restraint/handcuffs, + /obj/item/storage/fancy/cigarettes, + /obj/item/tool/lighter, + /obj/item/explosive/grenade, + /obj/item/storage/bible, + /obj/item/tool/crowbar, + /obj/item/storage/large_holster/katana, + /obj/item/storage/large_holster/machete, + /obj/item/weapon/sword/machete, + /obj/item/attachable/bayonet, + /obj/item/device/motiondetector, + /obj/item/tool/crew_monitor, + /obj/item/device/walkman, + ) + uniform_restricted = list(/obj/item/clothing/under/marine/veteran/pmc) + item_state_slots = list(WEAR_JACKET = "pmc_armor") + +/obj/item/clothing/suit/storage/marine/veteran/pmc/light + name = "\improper M4 pattern light PMC armor" + desc = "A modification of the standard Armat Systems M3 armor. Designed for high-profile security operators and corporate mercenaries in mind. Has some armor plating removed for extra mobility." + icon_state = "pmc_sniper" + armor_melee = CLOTHING_ARMOR_MEDIUMLOW + armor_bullet = CLOTHING_ARMOR_MEDIUM + armor_energy = CLOTHING_ARMOR_MEDIUMLOW + armor_bomb = CLOTHING_ARMOR_MEDIUMLOW + armor_rad = CLOTHING_ARMOR_MEDIUM + armor_internaldamage = CLOTHING_ARMOR_MEDIUMLOW + slowdown = SLOWDOWN_ARMOR_VERY_LIGHT + item_state_slots = list(WEAR_JACKET = "pmc_sniper") + +/obj/item/clothing/suit/storage/marine/veteran/pmc/light/corporate + name = "\improper M1 pattern corporate security armor" + desc = "A basic vest with a Weyland-Yutani badge on the right breast. This is commonly worn by low-level guards protecting Weyland-Yutani facilities." + icon = 'icons/mob/humans/onmob/contained/wy_goons.dmi' + icon_state = "armor" + item_state = "armor" + item_state_slots = null + contained_sprite = TRUE + slowdown = SLOWDOWN_ARMOR_LIGHT + + flags_armor_protection = BODY_FLAG_CHEST + flags_cold_protection = BODY_FLAG_CHEST + flags_heat_protection = BODY_FLAG_CHEST + +/obj/item/clothing/suit/storage/marine/veteran/pmc/light/corporate/lead + desc = "A basic vest with a Weyland-Yutani badge on the right breast. This variant is worn by low-level guards that have elevated in rank due to 'good conduct in the field', also known as corporate bootlicking." + icon_state = "lead_armor" + item_state = "lead_armor" + +/obj/item/clothing/suit/storage/marine/veteran/pmc/leader + name = "\improper M4 pattern PMC leader armor" + desc = "A modification of the standard Armat Systems M3 armor. Designed for high-profile security operators and corporate mercenaries in mind. This particular suit looks like it belongs to a high-ranking officer." + icon_state = "officer_armor" + uniform_restricted = list(/obj/item/clothing/under/marine/veteran/pmc/leader) + item_state_slots = list(WEAR_JACKET = "officer_armor") + +/obj/item/clothing/suit/storage/marine/veteran/pmc/sniper + name = "\improper M4 pattern PMC sniper armor" + icon_state = "pmc_sniper" + armor_bullet = CLOTHING_ARMOR_MEDIUMHIGH + armor_energy = CLOTHING_ARMOR_MEDIUMLOW + armor_bomb = CLOTHING_ARMOR_MEDIUM + armor_rad = CLOTHING_ARMOR_MEDIUM + armor_internaldamage = CLOTHING_ARMOR_MEDIUM + flags_inv_hide = HIDELOWHAIR + item_state_slots = list(WEAR_JACKET = "pmc_sniper") + +/obj/item/clothing/suit/storage/marine/veteran/pmc/light/synth + name = "\improper M4 Synthetic PMC armor" + desc = "A serious modification of the standard Armat Systems M3 armor. This variant was designed for PMC Support Units in the field, with every armor insert removed. It's designed with the idea of a high speed lifesaver in mind." + time_to_unequip = 0.5 SECONDS + time_to_equip = 1 SECONDS + armor_melee = CLOTHING_ARMOR_NONE + armor_bullet = CLOTHING_ARMOR_NONE + armor_laser = CLOTHING_ARMOR_NONE + armor_energy = CLOTHING_ARMOR_NONE + armor_bomb = CLOTHING_ARMOR_NONE + armor_bio = CLOTHING_ARMOR_NONE + armor_rad = CLOTHING_ARMOR_NONE + armor_internaldamage = CLOTHING_ARMOR_NONE + storage_slots = 3 + slowdown = SLOWDOWN_ARMOR_SUPER_LIGHT + +/obj/item/clothing/suit/storage/marine/veteran/pmc/light/synth/Initialize() + flags_atom |= NO_NAME_OVERRIDE + flags_marine_armor |= SYNTH_ALLOWED + return ..() + +/obj/item/clothing/suit/storage/marine/smartgunner/veteran/pmc + name = "\improper PMC gunner armor" + desc = "A modification of the standard Armat Systems M3 armor. Hooked up with harnesses and straps allowing the user to carry an M56 Smartgun." + icon_state = "heavy_armor" + flags_inventory = BLOCKSHARPOBJ|BLOCK_KNOCKDOWN|SMARTGUN_HARNESS + flags_atom = NO_SNOW_TYPE|NO_NAME_OVERRIDE + armor_bullet = CLOTHING_ARMOR_MEDIUMHIGH + armor_laser = CLOTHING_ARMOR_MEDIUMLOW + armor_energy = CLOTHING_ARMOR_MEDIUMLOW + armor_bomb = CLOTHING_ARMOR_MEDIUM + armor_rad = CLOTHING_ARMOR_MEDIUM + item_state_slots = list(WEAR_JACKET = "heavy_armor") + +/obj/item/clothing/suit/storage/marine/smartgunner/veteran/pmc/terminator + name = "\improper M5Xg exoskeleton gunner armor" + desc = "A complex system of overlapping plates intended to render the wearer all but impervious to small arms fire. A passive exoskeleton supports the weight of the armor, allowing a human to carry its massive bulk. This variant is designed to support a M56 Smartgun." + icon_state = "commando_armor" + slowdown = SLOWDOWN_ARMOR_MEDIUM + movement_compensation = SLOWDOWN_ARMOR_VERY_HEAVY + armor_melee = CLOTHING_ARMOR_HIGH + armor_bullet = CLOTHING_ARMOR_ULTRAHIGH + armor_laser = CLOTHING_ARMOR_MEDIUM + armor_energy = CLOTHING_ARMOR_MEDIUM + armor_bomb = CLOTHING_ARMOR_VERYHIGH + armor_rad = CLOTHING_ARMOR_MEDIUMHIGH + armor_internaldamage = CLOTHING_ARMOR_MEDIUMHIGH + flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS|BODY_FLAG_FEET + uniform_restricted = list(/obj/item/clothing/under/marine/veteran/pmc/commando) + item_state_slots = list(WEAR_JACKET = "commando_armor") + unacidable = TRUE + +/obj/item/clothing/suit/storage/marine/veteran/pmc/commando + name = "\improper M5X exoskeleton armor" + desc = "A complex system of overlapping plates intended to render the wearer all but impervious to small arms fire. A passive exoskeleton supports the weight of the armor, allowing a human to carry its massive bulk." + icon_state = "commando_armor" + slowdown = SLOWDOWN_ARMOR_MEDIUM + movement_compensation = SLOWDOWN_ARMOR_VERY_HEAVY + armor_melee = CLOTHING_ARMOR_VERYHIGH + armor_bullet = CLOTHING_ARMOR_ULTRAHIGH + armor_energy = CLOTHING_ARMOR_MEDIUM + armor_bomb = CLOTHING_ARMOR_VERYHIGH + armor_rad = CLOTHING_ARMOR_MEDIUMHIGH + armor_internaldamage = CLOTHING_ARMOR_MEDIUMHIGH + flags_inventory = BLOCK_KNOCKDOWN + flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS|BODY_FLAG_FEET + uniform_restricted = list(/obj/item/clothing/under/marine/veteran/pmc/commando) + item_state_slots = list(WEAR_JACKET = "commando_armor") + unacidable = TRUE + + +//===========================//DISTRESS\\================================\\ +//=======================================================================\\ + +/obj/item/clothing/suit/storage/marine/veteran/bear + name = "\improper H1 Iron Bears vest" + desc = "A protective vest worn by Iron Bears mercenaries." + icon_state = "bear_armor" + flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN + armor_energy = CLOTHING_ARMOR_MEDIUMLOW + armor_bomb = CLOTHING_ARMOR_MEDIUM + armor_rad = CLOTHING_ARMOR_MEDIUM + storage_slots = 2 + slowdown = SLOWDOWN_ARMOR_VERY_LIGHT + uniform_restricted = list(/obj/item/clothing/under/marine/veteran/bear) + +/obj/item/clothing/suit/storage/marine/veteran/dutch + name = "\improper D2 armored vest" + desc = "A protective vest worn by some seriously experienced mercs." + icon_state = "dutch_armor" + flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS //Makes no sense but they need leg/arm armor too. + armor_melee = CLOTHING_ARMOR_HIGH + armor_bullet = CLOTHING_ARMOR_HIGHPLUS + armor_energy = CLOTHING_ARMOR_MEDIUMLOW + armor_bomb = CLOTHING_ARMOR_HIGH + armor_rad = CLOTHING_ARMOR_MEDIUM + storage_slots = 2 + light_range = 7 + slowdown = SLOWDOWN_ARMOR_VERY_LIGHT + uniform_restricted = list(/obj/item/clothing/under/marine/veteran/dutch) + +/obj/item/clothing/suit/storage/marine/veteran/van_bandolier + name = "safari jacket" + desc = "A tailored hunting jacket, cunningly lined with segmented armor plates. Sometimes the game shoots back." + icon_state = "van_bandolier" + item_state = "van_bandolier_jacket" + blood_overlay_type = "coat" + flags_marine_armor = NO_FLAGS //No shoulder light. + actions_types = list() + slowdown = SLOWDOWN_ARMOR_LIGHT + storage_slots = 2 + movement_compensation = SLOWDOWN_ARMOR_LIGHT + uniform_restricted = list(/obj/item/clothing/under/marine/veteran/van_bandolier) + allowed = list( + /obj/item/weapon/gun, + /obj/item/tank/emergency_oxygen, + /obj/item/device/flashlight, + /obj/item/storage/fancy/cigarettes, + /obj/item/tool/lighter, + /obj/item/storage/bible, + /obj/item/attachable/bayonet, + /obj/item/storage/backpack/general_belt, + /obj/item/storage/large_holster/machete, + /obj/item/storage/belt/gun/m4a3, + /obj/item/storage/belt/gun/m44, + /obj/item/storage/belt/gun/smartpistol, + /obj/item/storage/belt/gun/flaregun, + /obj/item/device/motiondetector, + /obj/item/device/walkman, + /obj/item/storage/belt/shotgun/van_bandolier, + ) + +//===========================//U.P.P\\================================\\ +//=====================================================================\\ + +/obj/item/clothing/suit/storage/marine/faction + flags_atom = NO_SNOW_TYPE|NO_NAME_OVERRIDE + flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS + flags_cold_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS + flags_heat_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS + min_cold_protection_temperature = HELMET_MIN_COLD_PROT + max_heat_protection_temperature = HELMET_MAX_HEAT_PROT + blood_overlay_type = "armor" + armor_melee = CLOTHING_ARMOR_MEDIUM + armor_bullet = CLOTHING_ARMOR_MEDIUM + armor_laser = CLOTHING_ARMOR_MEDIUMLOW + armor_energy = CLOTHING_ARMOR_MEDIUMLOW + armor_bomb = CLOTHING_ARMOR_MEDIUM + armor_bio = CLOTHING_ARMOR_MEDIUM + armor_rad = CLOTHING_ARMOR_MEDIUM + armor_internaldamage = CLOTHING_ARMOR_MEDIUMHIGH + slowdown = SLOWDOWN_ARMOR_MEDIUM + movement_compensation = SLOWDOWN_ARMOR_LIGHT + + +/obj/item/clothing/suit/storage/marine/faction/UPP + name = "\improper UM5 personal armor" + desc = "Standard body armor of the UPP military, the UM5 (Union Medium MK5) is a medium body armor, roughly on par with the M3 pattern body armor in service with the USCM, specialized towards ballistics protection. Unlike the M3, however, the plate has a heavier neckplate. This has earned many UA members to refer to UPP soldiers as 'tin men'." + icon_state = "upp_armor" + armor_bullet = CLOTHING_ARMOR_HIGH + armor_energy = CLOTHING_ARMOR_MEDIUM + armor_bio = CLOTHING_ARMOR_MEDIUMLOW + armor_rad = CLOTHING_ARMOR_MEDIUMLOW + armor_internaldamage = CLOTHING_ARMOR_HIGH + storage_slots = 1 + uniform_restricted = list(/obj/item/clothing/under/marine/veteran/UPP, /obj/item/clothing/under/marine/veteran/UPP/medic, /obj/item/clothing/under/marine/veteran/UPP/engi) + +/obj/item/clothing/suit/storage/marine/faction/UPP/support + name = "\improper UL6 personal armor" + desc = "Standard body armor of the UPP military, the UL6 (Union Light MK6) is a light body armor, slightly weaker than the M3 pattern body armor in service with the USCM, specialized towards ballistics protection. This set of personal armor lacks the iconic neck piece and some of the armor in favor of user mobility." + storage_slots = 3 + icon_state = "upp_armor_support" + slowdown = SLOWDOWN_ARMOR_LIGHT + armor_melee = CLOTHING_ARMOR_HIGH + armor_energy = CLOTHING_ARMOR_MEDIUM + armor_bio = CLOTHING_ARMOR_MEDIUMLOW + armor_rad = CLOTHING_ARMOR_MEDIUMLOW + armor_internaldamage = CLOTHING_ARMOR_HIGH + +/obj/item/clothing/suit/storage/marine/faction/UPP/support/synth + name = "\improper UL6 Synthetic personal armor" + desc = "Modified variant of the UL6 personel armor system intended to be useable by Synthetic units. Offers no protection but very little movement impairment." + flags_marine_armor = ARMOR_LAMP_OVERLAY|SYNTH_ALLOWED + armor_melee = CLOTHING_ARMOR_NONE + armor_bullet = CLOTHING_ARMOR_NONE + armor_laser = CLOTHING_ARMOR_NONE + armor_energy = CLOTHING_ARMOR_NONE + armor_bomb = CLOTHING_ARMOR_NONE + armor_bio = CLOTHING_ARMOR_NONE + armor_rad = CLOTHING_ARMOR_NONE + armor_internaldamage = CLOTHING_ARMOR_NONE + slowdown = SLOWDOWN_ARMOR_VERY_LIGHT + time_to_unequip = 0.5 SECONDS + time_to_equip = 1 SECONDS + +/obj/item/clothing/suit/storage/marine/faction/UPP/commando + name = "\improper UM5CU personal armor" + desc = "A modification of the UM5, designed for stealth operations." + icon_state = "upp_armor_commando" + storage_slots = 2 + slowdown = SLOWDOWN_ARMOR_LIGHT + +/obj/item/clothing/suit/storage/marine/faction/UPP/heavy + name = "\improper UH7 heavy plated armor" + desc = "An extremely heavy-duty set of body armor in service with the UPP military, the UH7 (Union Heavy MK7) is known for having powerful ballistic protection, alongside a noticeable neck guard, fortified in order to allow the wearer to endure the stresses of the bulky helmet." + icon_state = "upp_armor_heavy" + storage_slots = 3 + slowdown = SLOWDOWN_ARMOR_HEAVY + flags_inventory = BLOCKSHARPOBJ|BLOCK_KNOCKDOWN + flags_armor_protection = BODY_FLAG_ALL_BUT_HEAD + armor_melee = CLOTHING_ARMOR_MEDIUMHIGH + armor_bullet = CLOTHING_ARMOR_HIGHPLUS + armor_laser = CLOTHING_ARMOR_MEDIUMLOW + armor_energy = CLOTHING_ARMOR_MEDIUM + armor_bomb = CLOTHING_ARMOR_HIGH + armor_bio = CLOTHING_ARMOR_MEDIUM + armor_rad = CLOTHING_ARMOR_MEDIUMLOW + armor_internaldamage = CLOTHING_ARMOR_HIGHPLUS + +/obj/item/clothing/suit/storage/marine/faction/UPP/heavy/Initialize() + . = ..() + pockets.bypass_w_limit = list( + /obj/item/ammo_magazine/minigun, + /obj/item/ammo_magazine/pkp, + ) + +/obj/item/clothing/suit/storage/marine/faction/UPP/officer + name = "\improper UL4 officer jacket" + desc = "A lightweight jacket, issued to officers of the UPP's military. Slightly protective from incoming damage, best off with proper armor however." + icon_state = "upp_coat_officer" + slowdown = SLOWDOWN_ARMOR_NONE + flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS + armor_melee = CLOTHING_ARMOR_LOW //wear actual armor if you go into combat + armor_bullet = CLOTHING_ARMOR_LOW + armor_energy = CLOTHING_ARMOR_LOW + armor_bomb = CLOTHING_ARMOR_LOW + armor_bio = CLOTHING_ARMOR_LOW + armor_rad = CLOTHING_ARMOR_LOW + armor_internaldamage = CLOTHING_ARMOR_LOW + storage_slots = 3 + uniform_restricted = list(/obj/item/clothing/under/marine/veteran/UPP/officer) + +/obj/item/clothing/suit/storage/marine/faction/UPP/kapitan + name = "\improper UL4 senior officer jacket" + desc = "A lightweight jacket, issued to senior officers of the UPP's military. Made of high-quality materials, even going as far as having the ranks and insignia of the Kapitan and their Company emblazoned on the shoulders and front of the jacket. Slightly protective from incoming damage, best off with proper armor however." + icon_state = "upp_coat_kapitan" + slowdown = SLOWDOWN_ARMOR_NONE + armor_melee = CLOTHING_ARMOR_LOW //wear actual armor if you go into combat + armor_bullet = CLOTHING_ARMOR_LOW + armor_energy = CLOTHING_ARMOR_LOW + armor_bomb = CLOTHING_ARMOR_LOW + armor_bio = CLOTHING_ARMOR_LOW + armor_rad = CLOTHING_ARMOR_LOW + armor_internaldamage = CLOTHING_ARMOR_LOW + flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS + storage_slots = 4 + uniform_restricted = list(/obj/item/clothing/under/marine/veteran/UPP/officer) + +/obj/item/clothing/suit/storage/marine/faction/UPP/mp + name = "\improper UL4 camouflaged jacket" + desc = "A lightweight jacket, issued to troops when they're not expected to engage in combat. Still studded to the brim with kevlar shards, though the synthread construction reduces its effectiveness." + icon_state = "upp_coat_mp" + slowdown = SLOWDOWN_ARMOR_NONE + flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS + armor_melee = CLOTHING_ARMOR_LOW //wear actual armor if you go into combat + armor_bullet = CLOTHING_ARMOR_LOW + armor_energy = CLOTHING_ARMOR_LOW + armor_bomb = CLOTHING_ARMOR_LOW + armor_bio = CLOTHING_ARMOR_LOW + armor_rad = CLOTHING_ARMOR_LOW + armor_internaldamage = CLOTHING_ARMOR_LOW + storage_slots = 4 + uniform_restricted = list(/obj/item/clothing/under/marine/veteran/UPP) + valid_accessory_slots = list(ACCESSORY_SLOT_ARMBAND, ACCESSORY_SLOT_DECOR, ACCESSORY_SLOT_MEDAL) + restricted_accessory_slots = list(ACCESSORY_SLOT_ARMBAND) + +/obj/item/clothing/suit/storage/marine/faction/UPP/jacket/ivan + name = "\improper UH4 Camo Jacket" + desc = "An experimental heavily armored variant of the UL4 given to only the most elite units... usually." + slowdown = SLOWDOWN_ARMOR_MEDIUM + flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_LEGS|BODY_FLAG_ARMS|BODY_FLAG_HANDS|BODY_FLAG_FEET + armor_melee = CLOTHING_ARMOR_HIGH + armor_energy = CLOTHING_ARMOR_MEDIUMLOW + armor_bomb = CLOTHING_ARMOR_HIGH + armor_bio = CLOTHING_ARMOR_MEDIUM + armor_rad = CLOTHING_ARMOR_MEDIUM + armor_internaldamage = CLOTHING_ARMOR_HIGH + storage_slots = 2 + + +//===========================//FREELANCER\\================================\\ +//=====================================================================\\ + +/obj/item/clothing/suit/storage/marine/faction/freelancer + name = "freelancer cuirass" + desc = "An armored protective chestplate scrapped together from various plates. It keeps up remarkably well, as the craftsmanship is solid, and the design mirrors such armors in the UPP and the USCM. The many skilled craftsmen in the freelancers ranks produce these vests at a rate about one a month." + icon_state = "freelancer_armor" + slowdown = SLOWDOWN_ARMOR_LIGHT + flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_LEGS + armor_melee = CLOTHING_ARMOR_MEDIUMHIGH + armor_bullet = CLOTHING_ARMOR_MEDIUMHIGH + armor_energy = CLOTHING_ARMOR_MEDIUMLOW + storage_slots = 2 + uniform_restricted = list(/obj/item/clothing/under/marine/veteran/freelancer) + +//this one is for CLF +/obj/item/clothing/suit/storage/militia + name = "colonial militia hauberk" + desc = "The hauberk of a colonist militia member, created from boiled leather and some modern armored plates. While not the most powerful form of armor, and primitive compared to most modern suits of armor, it gives the wearer almost perfect mobility, which suits the needs of the local colonists. It is also quick to don, easy to hide, and cheap to produce in large workshops." + icon = 'icons/obj/items/clothing/cm_suits.dmi' + icon_state = "rebel_armor" + item_icons = list( + WEAR_JACKET = 'icons/mob/humans/onmob/suit_1.dmi' + ) + sprite_sheets = list(SPECIES_MONKEY = 'icons/mob/humans/species/monkeys/onmob/suit_monkey_1.dmi') + slowdown = SLOWDOWN_ARMOR_VERY_LIGHT + flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_LEGS|BODY_FLAG_ARMS + movement_compensation = SLOWDOWN_ARMOR_MEDIUM + armor_melee = CLOTHING_ARMOR_MEDIUM + armor_bullet = CLOTHING_ARMOR_MEDIUMLOW + armor_laser = CLOTHING_ARMOR_MEDIUMLOW + armor_energy = CLOTHING_ARMOR_MEDIUMLOW + armor_bomb = CLOTHING_ARMOR_MEDIUM + armor_bio = CLOTHING_ARMOR_MEDIUMLOW + armor_rad = CLOTHING_ARMOR_MEDIUM + armor_internaldamage = CLOTHING_ARMOR_MEDIUM + storage_slots = 2 + uniform_restricted = list(/obj/item/clothing/under/colonist) + allowed = list( + /obj/item/weapon/gun, + /obj/item/tank/emergency_oxygen, + /obj/item/device/flashlight, + /obj/item/ammo_magazine, + /obj/item/explosive/grenade, + /obj/item/device/binoculars, + /obj/item/attachable/bayonet, + /obj/item/storage/backpack/general_belt, + /obj/item/storage/large_holster/machete, + /obj/item/weapon/baseballbat, + /obj/item/weapon/baseballbat/metal, + /obj/item/device/motiondetector, + /obj/item/device/walkman, + ) + flags_cold_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_LEGS|BODY_FLAG_FEET|BODY_FLAG_ARMS|BODY_FLAG_HANDS + min_cold_protection_temperature = SPACE_SUIT_MIN_COLD_PROT + valid_accessory_slots = list(ACCESSORY_SLOT_MEDAL) + +/obj/item/clothing/suit/storage/militia/Initialize() + . = ..() + pockets.max_w_class = SIZE_SMALL //Can contain small items AND rifle magazines. + pockets.bypass_w_limit = list( + /obj/item/ammo_magazine/rifle, + /obj/item/ammo_magazine/smg, + /obj/item/ammo_magazine/sniper, + ) + pockets.max_storage_space = 8 + +/obj/item/clothing/suit/storage/militia/vest + name = "colonial militia vest" + desc = "The hauberk of a colonist militia member, created from boiled leather and some modern armored plates. While not the most powerful form of armor, and primitive compared to most modern suits of armor, it gives the wearer almost perfect mobility, which suits the needs of the local colonists. It is also quick to don, easy to hide, and cheap to produce in large workshops. This extremely light variant protects only the chest and abdomen." + icon_state = "clf_2" + flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN + flags_cold_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN + slowdown = 0.2 + movement_compensation = SLOWDOWN_ARMOR_MEDIUM + +/obj/item/clothing/suit/storage/militia/brace + name = "colonial militia brace" + desc = "The hauberk of a colonist militia member, created from boiled leather and some modern armored plates. While not the most powerful form of armor, and primitive compared to most modern suits of armor, it gives the wearer almost perfect mobility, which suits the needs of the local colonists. It is also quick to don, easy to hide, and cheap to produce in large workshops. This extremely light variant has some of the chest pieces removed." + icon_state = "clf_3" + flags_armor_protection = BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS + flags_cold_protection = BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS + slowdown = 0.2 + movement_compensation = SLOWDOWN_ARMOR_MEDIUM + +/obj/item/clothing/suit/storage/militia/partial + name = "colonial militia partial hauberk" + desc = "The hauberk of a colonist militia member, created from boiled leather and some modern armored plates. While not the most powerful form of armor, and primitive compared to most modern suits of armor, it gives the wearer almost perfect mobility, which suits the needs of the local colonists. It is also quick to don, easy to hide, and cheap to produce in large workshops. This even lighter variant has some of the arm pieces removed." + icon_state = "clf_4" + flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_LEGS + flags_cold_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS + slowdown = 0.2 + +/obj/item/clothing/suit/storage/militia/smartgun + name = "colonial militia harness" + desc = "The hauberk of a colonist militia member, created from boiled leather and some modern armored plates. While not the most powerful form of armor, and primitive compared to most modern suits of armor, it gives the wearer almost perfect mobility, which suits the needs of the local colonists. It is also quick to don, easy to hide, and cheap to produce in large workshops. This one has straps interweaved with the plates, that allow the user to fire a captured smartgun, if a bit uncomfortably." + flags_inventory = BLOCKSHARPOBJ|SMARTGUN_HARNESS + +/obj/item/clothing/suit/storage/CMB + name = "\improper CMB Deputy jacket" + desc = "A thick and stylish black leather jacket with a Marshal's Deputy badge pinned to it. The back is enscribed with the powerful letters of 'DEPUTY' representing justice, authority, and protection in the outer rim. The laws of the Earth stretch beyond the Sol." + icon_state = "CMB_jacket" + item_state = "CMB_jacket" + blood_overlay_type = "coat" + flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS + flags_cold_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS + armor_melee = CLOTHING_ARMOR_MEDIUMLOW + armor_bullet = CLOTHING_ARMOR_MEDIUMLOW + armor_energy = CLOTHING_ARMOR_LOW + armor_bomb = CLOTHING_ARMOR_LOW + armor_bio = CLOTHING_ARMOR_LOW + armor_internaldamage = CLOTHING_ARMOR_LOW + allowed = list( + /obj/item/weapon/gun, + /obj/item/storage/fancy/cigarettes, + /obj/item/tool/lighter, + /obj/item/weapon/baton, + /obj/item/restraint/handcuffs, + /obj/item/device/binoculars, + /obj/item/attachable/bayonet, + /obj/item/device/flashlight, + /obj/item/device/healthanalyzer, + /obj/item/device/radio, + /obj/item/tank/emergency_oxygen, + /obj/item/tool/crowbar, + /obj/item/tool/crew_monitor, + /obj/item/tool/pen, + /obj/item/storage/belt/gun/m4a3, + /obj/item/storage/belt/gun/m44, + /obj/item/storage/belt/gun/mateba, + /obj/item/storage/belt/gun/smartpistol, + /obj/item/storage/large_holster/machete, + /obj/item/storage/large_holster/katana, + /obj/item/device/motiondetector, + /obj/item/device/walkman, + ) + valid_accessory_slots = list(ACCESSORY_SLOT_ARMBAND, ACCESSORY_SLOT_DECOR) + restricted_accessory_slots = list(ACCESSORY_SLOT_ARMBAND) + +/obj/item/clothing/suit/storage/CMB/Initialize() + . = ..() + pockets.max_w_class = SIZE_SMALL //Can contain small items AND rifle magazines. + pockets.bypass_w_limit = list( + /obj/item/ammo_magazine/rifle, + /obj/item/ammo_magazine/smg, + /obj/item/ammo_magazine/sniper, + ) + pockets.max_storage_space = 8 + +/obj/item/clothing/suit/storage/CMB/marshal + name = "\improper CMB Marshal jacket" + desc = "A thick and stylish black leather jacket with a Marshal's badge pinned to it. The back is enscribed with the powerful letters of 'MARSHAL' representing justice, authority, and protection in the outer rim. The laws of the Earth stretch beyond the Sol." + icon_state = "CMB_jacket_marshal" + item_state = "CMB_jacket_marshal" + +//===========================//HELGHAST - MERCENARY\\================================\\ +//=====================================================================\\ + +/obj/item/clothing/suit/storage/marine/veteran/mercenary + name = "\improper K12 ceramic plated armor" + desc = "A set of grey, heavy ceramic armor with dark blue highlights. It is the standard uniform of an unknown mercenary group working in the sector." + icon_state = "mercenary_heavy_armor" + flags_inventory = BLOCKSHARPOBJ|BLOCK_KNOCKDOWN + armor_melee = CLOTHING_ARMOR_VERYHIGH + armor_bullet = CLOTHING_ARMOR_VERYHIGH + armor_energy = CLOTHING_ARMOR_MEDIUMLOW + armor_bomb = CLOTHING_ARMOR_MEDIUM + armor_bio = CLOTHING_ARMOR_HIGHPLUS + armor_rad = CLOTHING_ARMOR_MEDIUM + armor_internaldamage = CLOTHING_ARMOR_HIGHPLUS + storage_slots = 2 + slowdown = SLOWDOWN_ARMOR_LIGHT + allowed = list( + /obj/item/weapon/gun, + /obj/item/tank/emergency_oxygen, + /obj/item/device/flashlight, + /obj/item/ammo_magazine/, + /obj/item/weapon/baton, + /obj/item/restraint/handcuffs, + /obj/item/storage/fancy/cigarettes, + /obj/item/tool/lighter, + /obj/item/explosive/grenade, + /obj/item/storage/bible, + /obj/item/weapon/sword/machete, + /obj/item/attachable/bayonet, + /obj/item/device/motiondetector, + /obj/item/device/walkman, + ) + uniform_restricted = list(/obj/item/clothing/under/marine/veteran/mercenary) + item_state_slots = list(WEAR_JACKET = "mercenary_heavy_armor") + +/obj/item/clothing/suit/storage/marine/veteran/mercenary/heavy + name = "\improper Modified K12 ceramic plated armor" + desc = "A set of grey, heavy ceramic armor with dark blue highlights. It has been modified with extra ceramic plates placed in its storage pouch, and seems intended to support an extremely heavy weapon." + armor_melee = CLOTHING_ARMOR_ULTRAHIGH + armor_bullet = CLOTHING_ARMOR_ULTRAHIGHPLUS + armor_bomb = CLOTHING_ARMOR_HIGHPLUS + armor_bio = CLOTHING_ARMOR_HIGHPLUS + armor_rad = CLOTHING_ARMOR_MEDIUM + armor_internaldamage = CLOTHING_ARMOR_VERYHIGHPLUS + storage_slots = 1 + +/obj/item/clothing/suit/storage/marine/veteran/mercenary/miner + name = "\improper Y8 armored miner vest" + desc = "A set of beige, light armor built for protection while mining. It is a specialized uniform of an unknown mercenary group working in the sector." + icon_state = "mercenary_miner_armor" + storage_slots = 3 + allowed = list( + /obj/item/weapon/gun, + /obj/item/tank/emergency_oxygen, + /obj/item/device/flashlight, + /obj/item/ammo_magazine/, + /obj/item/weapon/baton, + /obj/item/restraint/handcuffs, + /obj/item/storage/fancy/cigarettes, + /obj/item/tool/lighter, + /obj/item/explosive/grenade, + /obj/item/storage/bible, + /obj/item/weapon/sword/machete, + /obj/item/attachable/bayonet, + /obj/item/device/motiondetector, + /obj/item/device/walkman, + ) + uniform_restricted = list(/obj/item/clothing/under/marine/veteran/mercenary) + item_state_slots = list(WEAR_JACKET = "mercenary_miner_armor") + +/obj/item/clothing/suit/storage/marine/veteran/mercenary/support + name = "\improper Z7 armored vest" + desc = "A set of blue armor with yellow highlights built for protection while building or carrying out medical treatment in highly dangerous environments. It is a specialized uniform of an unknown mercenary group working in the sector." + icon_state = "mercenary_engineer_armor" + item_state_slots = list(WEAR_JACKET = "mercenary_engineer_armor") + +/obj/item/clothing/suit/storage/marine/M3G/hefa + name = "\improper HEFA Knight armor" + desc = "A thick piece of armor adorning a HEFA. Usually seen on a HEFA knight." + specialty = "HEFA Knight" + icon_state = "hefadier" + flags_atom = NO_NAME_OVERRIDE|NO_SNOW_TYPE + flags_item = NO_CRYO_STORE + flags_marine_armor = ARMOR_LAMP_OVERLAY + armor_bullet = CLOTHING_ARMOR_VERYHIGH + armor_melee = CLOTHING_ARMOR_VERYHIGH + armor_bomb = CLOTHING_ARMOR_GIGAHIGH + + +//=========================//PROVOST\\================================\\ +//=======================================================================\\ + +/obj/item/clothing/suit/storage/marine/MP/provost + name = "\improper M3 pattern Provost armor" + desc = "A standard Provost M3 Pattern Chestplate. Protects the chest from ballistic rounds, bladed objects and accidents. It has a small leather pouch strapped to it for limited storage." + icon_state = "pvmedium" + item_state_slots = list(WEAR_JACKET = "pvmedium") + slowdown = SLOWDOWN_ARMOR_LIGHT + armor_bullet = CLOTHING_ARMOR_MEDIUM + armor_laser = CLOTHING_ARMOR_MEDIUMLOW + armor_bomb = CLOTHING_ARMOR_MEDIUMHIGH + armor_bio = CLOTHING_ARMOR_MEDIUMHIGH + armor_internaldamage = CLOTHING_ARMOR_MEDIUM + flags_atom = NO_SNOW_TYPE|NO_NAME_OVERRIDE + storage_slots = 3 + +/obj/item/clothing/suit/storage/marine/MP/provost/tml + name = "\improper M3 pattern Senior Provost armor" + desc = "A more refined Provost M3 Pattern Chestplate for senior officers. Protects the chest from ballistic rounds, bladed objects and accidents. It has a small leather pouch strapped to it for limited storage." + icon_state = "pvleader" + item_state_slots = list(WEAR_JACKET = "pvleader") + +/obj/item/clothing/suit/storage/marine/MP/provost/marshal + name = "\improper M5 pattern Provost Marshal armor" + desc = "A custom fit luxury armor suit for Provost Marshals. Useful for letting your men know who is in charge when taking to the field." + icon_state = "pvmarshal" + item_state_slots = list(WEAR_JACKET = "pvmarshal") + w_class = SIZE_MEDIUM + storage_slots = 4 + +/obj/item/clothing/suit/storage/marine/MP/provost/light + name = "\improper M3 pattern Provost light armor" + desc = "A lighter Provost M3 Pattern Chestplate. Protects the chest from ballistic rounds, bladed objects and accidents. It has a small leather pouch strapped to it for limited storage." + icon_state = "pvlight" + item_state_slots = list(WEAR_JACKET = "pvlight") + slowdown = SLOWDOWN_ARMOR_VERY_LIGHT + +/obj/item/clothing/suit/storage/marine/MP/provost/light/flexi + name = "\improper M3 pattern Provost flexi-armor" + desc = "A flexible and easy to store M3 Pattern Chestplate. Protects the chest from ballistic rounds, bladed objects and accidents. It has a small leather pouch strapped to it for limited storage." + w_class = SIZE_MEDIUM + icon_state = "pvlight_2" + item_state_slots = list(WEAR_JACKET = "pvlight_2") + storage_slots = 2 + +//================//UNITED AMERICAS ALLIED COMMAND\\=====================\\ +//=======================================================================\\ + +/obj/item/clothing/suit/storage/marine/uaac/tis/sa + name = "\improper M3 pattern UAAC-TIS Special Agent Armor" + desc = "A modified luxury armor, originally meant for a USCM Provost Marshall, modified to use the colors and insignia of the TIS. The Three Eyes is technically able to requisition any equipment or personnel to fulfill its mission and often uses this privilege to outfit their agents with high-quality gear from other UA military forces." + icon_state = "tis" + item_state_slots = list(WEAR_JACKET = "tis") + armor_melee = CLOTHING_ARMOR_MEDIUMHIGH + armor_bullet = CLOTHING_ARMOR_MEDIUMHIGH + armor_laser = CLOTHING_ARMOR_LOW + armor_energy = CLOTHING_ARMOR_LOW + armor_bomb = CLOTHING_ARMOR_MEDIUM + armor_internaldamage = CLOTHING_ARMOR_MEDIUMLOW + storage_slots = 2 + slowdown = SLOWDOWN_ARMOR_LIGHT + flags_atom = NO_SNOW_TYPE|NO_NAME_OVERRIDE + allowed = list( + /obj/item/weapon/gun, + /obj/item/tank/emergency_oxygen, + /obj/item/device/flashlight, + /obj/item/ammo_magazine/, + /obj/item/storage/fancy/cigarettes, + /obj/item/tool/lighter, + /obj/item/weapon/baton, + /obj/item/restraint/handcuffs, + /obj/item/explosive/grenade, + /obj/item/device/binoculars, + /obj/item/attachable/bayonet, + /obj/item/storage/backpack/general_belt, + /obj/item/device/hailer, + /obj/item/storage/belt/gun, + /obj/item/weapon/sword/ceremonial, + /obj/item/device/motiondetector, + /obj/item/device/walkman, + ) + uniform_restricted = list(/obj/item/clothing/under/uaac/tis) + +//================//UNITED AMERICAS RIOT CONTROL\\=====================\\ +//=======================================================================\\ + +/obj/item/clothing/suit/storage/marine/veteran/ua_riot + name = "\improper UA-M1 body armor" + desc = "Based on the M-3 pattern employed by the USCM, the UA-M1 body armor is employed by UA security, riot control and union-busting teams. While robust against melee and bullet attacks, it critically lacks coverage of the legs and arms." + icon_state = "ua_riot" + flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN + flags_cold_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN + flags_heat_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN + armor_melee = CLOTHING_ARMOR_MEDIUMHIGH + armor_bullet = CLOTHING_ARMOR_MEDIUMHIGH + armor_energy = CLOTHING_ARMOR_MEDIUM + armor_bomb = CLOTHING_ARMOR_MEDIUM + armor_rad = CLOTHING_ARMOR_MEDIUM + armor_internaldamage = CLOTHING_ARMOR_MEDIUMHIGH + slowdown = SLOWDOWN_ARMOR_VERY_LIGHT // it's lighter + uniform_restricted = list(/obj/item/clothing/under/marine/ua_riot) + flags_atom = NO_SNOW_TYPE + +/obj/item/clothing/suit/storage/marine/veteran/ua_riot/synth + name = "\improper UA-M1S Synthetic body armor" + desc = "Based on the M-3 pattern employed by the USCM, the UA-M1 body armor is employed by UA security, riot control and union-busting teams. The UA-1MS modification is Synthetic programming compliant, sacrificing protection for speed and carrying capacity." + armor_melee = CLOTHING_ARMOR_NONE + armor_bullet = CLOTHING_ARMOR_NONE + armor_laser = CLOTHING_ARMOR_NONE + armor_energy = CLOTHING_ARMOR_NONE + armor_bomb = CLOTHING_ARMOR_NONE + armor_bio = CLOTHING_ARMOR_NONE + armor_rad = CLOTHING_ARMOR_NONE + armor_internaldamage = CLOTHING_ARMOR_NONE + slowdown = SLOWDOWN_ARMOR_SUPER_LIGHT + storage_slots = 3 + flags_atom = NO_SNOW_TYPE|NO_NAME_OVERRIDE + flags_marine_armor = ARMOR_SQUAD_OVERLAY|ARMOR_LAMP_OVERLAY|SYNTH_ALLOWED + +//================//=ROYAL MARINES=\\====================================\\ +//=======================================================================\\ + +/obj/item/clothing/suit/storage/marine/veteran/royal_marine + name = "kestrel armoured vest" + desc = "A customizable personal armor system used by the Three World Empire's Royal Marines Commandos. Designers from a Weyland Yutani subsidary, Lindenthal-Ehrenfeld Militärindustrie, iterated on the USCMC's M3 pattern personal armor in their Tokonigara lab to create an armor systemed to suit the unique needs of the Three World Empire's smaller but better equipped Royal Marines." + icon_state = "rmc_light" + item_state = "rmc_light" + flags_atom = NO_NAME_OVERRIDE|NO_SNOW_TYPE + allowed = list( + /obj/item/weapon/gun, + /obj/item/tank/emergency_oxygen, + /obj/item/device/flashlight, + /obj/item/ammo_magazine/, + /obj/item/weapon/baton, + /obj/item/restraint/handcuffs, + /obj/item/storage/fancy/cigarettes, + /obj/item/tool/lighter, + /obj/item/explosive/grenade, + /obj/item/storage/bible, + /obj/item/weapon/sword/machete, + /obj/item/attachable/bayonet, + /obj/item/device/motiondetector, + /obj/item/device/walkman, + ) + +/obj/item/clothing/suit/storage/marine/veteran/royal_marine/light //RMC Rifleman Armor + icon_state = "rmc_light" + item_state = "rmc_light" + armor_bullet = CLOTHING_ARMOR_MEDIUMHIGH + armor_energy = CLOTHING_ARMOR_MEDIUMLOW + armor_bomb = CLOTHING_ARMOR_MEDIUM + armor_rad = CLOTHING_ARMOR_MEDIUM + slowdown = SLOWDOWN_ARMOR_LIGHT + +/obj/item/clothing/suit/storage/marine/veteran/royal_marine/light/team_leader //RMC TL & LT Armor + name = "kestrel armoured carry vest" + icon_state = "rmc_light_padded" + item_state = "rmc_light_padded" + storage_slots = 7 + +/obj/item/clothing/suit/storage/marine/veteran/royal_marine/smartgun //Smartgun Spec Armor + name = "kestrel armoured smartgun harness" + icon_state = "rmc_smartgun" + item_state = "rmc_smartgun" + flags_inventory = BLOCKSHARPOBJ|BLOCK_KNOCKDOWN|SMARTGUN_HARNESS + +/obj/item/clothing/suit/storage/marine/veteran/royal_marine/pointman //Pointman Spec Armor + name = "kestrel pointman armour" + desc = "A heavier version of the armor system used by the Three World Empire's Royal Marines Commandos. Designers from a Weyland Yutani subsidary, Lindenthal-Ehrenfeld Militärindustrie, iterated on the USCMC's M3 pattern personal armor in their Tokonigara lab to create an armor systemed to suit the unique needs of the Three World Empire's smaller but better equipped Royal Marines." + icon_state = "rmc_pointman" + item_state = "rmc_pointman" + armor_melee = CLOTHING_ARMOR_HIGH + armor_bullet = CLOTHING_ARMOR_HIGHPLUS + armor_bomb = CLOTHING_ARMOR_HIGHPLUS + armor_bio = CLOTHING_ARMOR_MEDIUM + armor_rad = CLOTHING_ARMOR_MEDIUM + armor_internaldamage = CLOTHING_ARMOR_MEDIUMHIGH + storage_slots = 7 + slowdown = SLOWDOWN_ARMOR_LOWHEAVY + movement_compensation = SLOWDOWN_ARMOR_MEDIUM + +/atom/movable/marine_light + light_system = DIRECTIONAL_LIGHT + +//CBRN +/obj/item/clothing/suit/storage/marine/cbrn + name = "\improper M3-M armor" + desc = "While lacking the appearance of the M3 pattern armor worn in regular service, this armor piece is still a derivative of it. It has been heavily modified to fit over the MOPP suit with additional padding and Venlar composite layers removed, so as not to restrict the wearer’s movement. However, with the reduction of composite layers, the personal protection offered is less than desired with complaints having been lodged since 2165." + icon_state = "cbrn" + item_state = "cbrn" + slowdown = SLOWDOWN_ARMOR_HEAVY + armor_melee = CLOTHING_ARMOR_MEDIUM + armor_bullet = CLOTHING_ARMOR_MEDIUM + armor_bomb = CLOTHING_ARMOR_MEDIUM + armor_bio = CLOTHING_ARMOR_LOW + armor_rad =CLOTHING_ARMOR_MEDIUMLOW + armor_internaldamage = CLOTHING_ARMOR_LOW + flags_marine_armor = NO_FLAGS + flags_atom = NO_NAME_OVERRIDE|NO_SNOW_TYPE + flags_inventory = BLOCKSHARPOBJ + flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN + flags_cold_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN + flags_heat_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN + uniform_restricted = list(/obj/item/clothing/under/marine/cbrn) + +/obj/item/clothing/suit/storage/marine/cbrn/advanced + slowdown = SLOWDOWN_ARMOR_LOWHEAVY + armor_melee = CLOTHING_ARMOR_HIGH + armor_bullet = CLOTHING_ARMOR_MEDIUMHIGH + armor_bomb = CLOTHING_ARMOR_ULTRAHIGH + armor_bio = CLOTHING_ARMOR_GIGAHIGHPLUS + armor_rad = CLOTHING_ARMOR_GIGAHIGHPLUS + armor_internaldamage = CLOTHING_ARMOR_HIGHPLUS diff --git a/code/modules/clothing/suits/marine_armor/ghillie.dm b/code/modules/clothing/suits/marine_armor/ghillie.dm new file mode 100644 index 000000000000..1f1b71227655 --- /dev/null +++ b/code/modules/clothing/suits/marine_armor/ghillie.dm @@ -0,0 +1,162 @@ +#define FULL_CAMOUFLAGE_ALPHA 15 + +/obj/item/clothing/suit/storage/marine/ghillie + name = "\improper M45 pattern ghillie armor" + desc = "A lightweight ghillie camouflage suit, used by USCM snipers on recon missions. Very lightweight, but doesn't protect much." + icon_state = "ghillie_armor" + armor_bio = CLOTHING_ARMOR_MEDIUMHIGH + slowdown = SLOWDOWN_ARMOR_LIGHT + flags_marine_armor = ARMOR_LAMP_OVERLAY + flags_item = MOB_LOCK_ON_EQUIP + specialty = "M45 pattern ghillie" + valid_accessory_slots = list(ACCESSORY_SLOT_ARMBAND, ACCESSORY_SLOT_DECOR, ACCESSORY_SLOT_MEDAL, ACCESSORY_SLOT_PONCHO) + restricted_accessory_slots = list(ACCESSORY_SLOT_ARMBAND) + + var/camo_active = FALSE + var/hide_in_progress = FALSE + var/full_camo_alpha = FULL_CAMOUFLAGE_ALPHA + var/incremental_shooting_camo_penalty = 35 + var/current_camo = FULL_CAMOUFLAGE_ALPHA + var/camouflage_break = 5 SECONDS + var/camouflage_enter_delay = 4 SECONDS + var/can_camo = TRUE + + actions_types = list(/datum/action/item_action/toggle, /datum/action/item_action/specialist/prepare_position) + +/obj/item/clothing/suit/storage/marine/ghillie/dropped(mob/user) + if(ishuman(user) && !issynth(user)) + deactivate_camouflage(user, FALSE) + + . = ..() + +/obj/item/clothing/suit/storage/marine/ghillie/verb/camouflage() + set name = "Prepare Position" + set desc = "Use the ghillie suit and the nearby environment to become near invisible." + set category = "Object" + set src in usr + if(!usr || usr.is_mob_incapacitated(TRUE)) + return + + if(!ishuman(usr) || hide_in_progress || !can_camo) + return + var/mob/living/carbon/human/H = usr + if(!skillcheck(H, SKILL_SPEC_WEAPONS, SKILL_SPEC_ALL) && H.skills.get_skill_level(SKILL_SPEC_WEAPONS) != SKILL_SPEC_SNIPER && !(GLOB.character_traits[/datum/character_trait/skills/spotter] in H.traits)) + to_chat(H, SPAN_WARNING("You don't seem to know how to use [src]...")) + return + if(H.wear_suit != src) + to_chat(H, SPAN_WARNING("You must be wearing the ghillie suit to activate it!")) + return + + if(camo_active) + deactivate_camouflage(H) + return + + H.visible_message(SPAN_DANGER("[H] goes prone, and begins adjusting \his ghillie suit!"), SPAN_NOTICE("You go prone, and begins adjusting your ghillie suit."), max_distance = 4) + hide_in_progress = TRUE + H.unset_interaction() // If we're sticking to a machine gun or what not. + if(!do_after(H, camouflage_enter_delay, INTERRUPT_NO_NEEDHAND|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD)) + hide_in_progress = FALSE + return + hide_in_progress = FALSE + RegisterSignal(H, list( + COMSIG_MOB_FIRED_GUN, + COMSIG_MOB_FIRED_GUN_ATTACHMENT) + , PROC_REF(fade_in)) + RegisterSignal(H, list( + COMSIG_MOB_DEATH, + COMSIG_HUMAN_EXTINGUISH + ), PROC_REF(deactivate_camouflage)) + camo_active = TRUE + H.alpha = full_camo_alpha + H.FF_hit_evade = 1000 + ADD_TRAIT(H, TRAIT_UNDENSE, SPECIALIST_GEAR_TRAIT) + + RegisterSignal(H, COMSIG_MOB_MOVE_OR_LOOK, PROC_REF(handle_mob_move_or_look)) + + var/datum/mob_hud/security/advanced/SA = GLOB.huds[MOB_HUD_SECURITY_ADVANCED] + SA.remove_from_hud(H) + var/datum/mob_hud/xeno_infection/XI = GLOB.huds[MOB_HUD_XENO_INFECTION] + XI.remove_from_hud(H) + + anim(H.loc, H, 'icons/mob/mob.dmi', null, "cloak", null, H.dir) + + +/obj/item/clothing/suit/storage/marine/ghillie/proc/deactivate_camouflage(mob/user) + SIGNAL_HANDLER + var/mob/living/carbon/human/H = user + if(!istype(H)) + return FALSE + + if(!camo_active) + return + + UnregisterSignal(H, list( + COMSIG_MOB_FIRED_GUN, + COMSIG_MOB_FIRED_GUN_ATTACHMENT, + COMSIG_MOB_DEATH, + COMSIG_HUMAN_EXTINGUISH, + COMSIG_MOB_MOVE_OR_LOOK + )) + + camo_active = FALSE + animate(H, alpha = initial(H.alpha), flags = ANIMATION_END_NOW) + H.FF_hit_evade = initial(H.FF_hit_evade) + REMOVE_TRAIT(H, TRAIT_UNDENSE, SPECIALIST_GEAR_TRAIT) + + var/datum/mob_hud/security/advanced/SA = GLOB.huds[MOB_HUD_SECURITY_ADVANCED] + SA.add_to_hud(H) + var/datum/mob_hud/xeno_infection/XI = GLOB.huds[MOB_HUD_XENO_INFECTION] + XI.add_to_hud(H) + + H.visible_message(SPAN_DANGER("[H]'s camouflage fails!"), SPAN_WARNING("Your camouflage fails!"), max_distance = 4) + +/obj/item/clothing/suit/storage/marine/ghillie/proc/fade_in(mob/user) + SIGNAL_HANDLER + var/mob/living/carbon/human/H = user + if(camo_active) + if(current_camo < full_camo_alpha) + current_camo = full_camo_alpha + current_camo = clamp(current_camo + incremental_shooting_camo_penalty, full_camo_alpha, 255) + H.alpha = current_camo + addtimer(CALLBACK(src, PROC_REF(fade_out_finish), H), camouflage_break, TIMER_OVERRIDE|TIMER_UNIQUE) + animate(H, alpha = full_camo_alpha + 5, time = camouflage_break, easing = LINEAR_EASING, flags = ANIMATION_END_NOW) + +/obj/item/clothing/suit/storage/marine/ghillie/proc/fade_out_finish(mob/living/carbon/human/H) + if(camo_active && H.wear_suit == src) + to_chat(H, SPAN_BOLDNOTICE("The smoke clears and your position is once again hidden completely!")) + animate(H, alpha = full_camo_alpha) + current_camo = full_camo_alpha + +/obj/item/clothing/suit/storage/marine/ghillie/proc/handle_mob_move_or_look(mob/living/mover, actually_moving, direction, specific_direction) + SIGNAL_HANDLER + + if(camo_active && actually_moving) + deactivate_camouflage(mover) + +/datum/action/item_action/specialist/prepare_position + ability_primacy = SPEC_PRIMARY_ACTION_1 + +/datum/action/item_action/specialist/prepare_position/New(mob/living/user, obj/item/holder) + ..() + name = "Prepare Position" + button.name = name + button.overlays.Cut() + var/image/IMG = image('icons/mob/hud/actions.dmi', button, "prepare_position") + button.overlays += IMG + +/datum/action/item_action/specialist/prepare_position/can_use_action() + var/mob/living/carbon/human/H = owner + if(istype(H) && !H.is_mob_incapacitated() && H.body_position == STANDING_UP && holder_item == H.wear_suit) + return TRUE + +/datum/action/item_action/specialist/prepare_position/action_activate() + var/obj/item/clothing/suit/storage/marine/ghillie/GS = holder_item + GS.camouflage() + +#undef FULL_CAMOUFLAGE_ALPHA + +/obj/item/clothing/suit/storage/marine/ghillie/forecon + name = "UDEP Thermal Poncho" + desc = "UDEP or the Ultra Diffusive Environmental Poncho is a camouflaged rain-cover worn to protect against the elements and chemical spills. It's commonly treated with an infrared absorbing coating, making a marine almost invisible in the rain. Favoured by USCM specialists for it's comfort and practicality." + icon_state = "mercenary_miner_armor" + flags_atom = MOB_LOCK_ON_EQUIP|NO_SNOW_TYPE|NO_NAME_OVERRIDE diff --git a/code/modules/clothing/suits/marine_armor/intel.dm b/code/modules/clothing/suits/marine_armor/intel.dm new file mode 100644 index 000000000000..b3f0f93e004d --- /dev/null +++ b/code/modules/clothing/suits/marine_armor/intel.dm @@ -0,0 +1,118 @@ +/obj/item/clothing/suit/storage/marine/medium/rto/intel + name = "\improper XM4 pattern intelligence officer armor" + uniform_restricted = list(/obj/item/clothing/under/marine/officer/intel) + specialty = "XM4 pattern intel" + desc = "Tougher than steel, quieter than whispers, the XM4 Intel Armor provides capable protection combined with an experimental integrated motion tracker. It took an R&D team a weekend to develop and costs more than the Chinook Station... probably. When worn, uniform accessories such as webbing cannot be attached due to the motion sensors occupying the clips." + desc_lore = "ARMAT Perfection. The XM4 Soldier Awareness System mixes M4-style hard armor and a distributed series of motion sensors clipped onto the breastplate. When connected to any HUD optic, it replicates the effects of an M314 Motion Detector unit, increasing user situational awareness. It is currently undergoing field trials by intelligence operatives." + storage_slots = 5 + /// XM4 Integral Motion Detector Ability + actions_types = list(/datum/action/item_action/toggle, /datum/action/item_action/intel/toggle_motion_detector) + var/motion_detector = FALSE + var/obj/item/device/motiondetector/xm4/proximity + var/long_range_cooldown = 2 + var/recycletime = 120 + +/obj/item/clothing/suit/storage/marine/medium/rto/intel/Initialize(mapload, ...) + . = ..() + proximity = new(src) + update_icon() + +/datum/action/item_action/intel/action_activate() + if(!ishuman(owner)) + return + +/datum/action/item_action/intel/update_button_icon() + return + +/datum/action/item_action/intel/toggle_motion_detector/New(Target, obj/item/holder) + . = ..() + name = "Toggle Motion Detector" + action_icon_state = "motion_detector" + button.name = name + button.overlays.Cut() + button.overlays += image('icons/mob/hud/actions.dmi', button, action_icon_state) + +/datum/action/item_action/intel/toggle_motion_detector/action_activate() + . = ..() + var/obj/item/clothing/suit/storage/marine/medium/rto/intel/recon = holder_item + recon.toggle_motion_detector(owner) + +/datum/action/item_action/intel/toggle_motion_detector/proc/update_icon() + if(!holder_item) + return + var/obj/item/clothing/suit/storage/marine/medium/rto/intel/recon = holder_item + if(recon.motion_detector) + button.icon_state = "template_on" + else + button.icon_state = "template" + +/obj/item/clothing/suit/storage/marine/medium/rto/intel/process() + if(!motion_detector) + STOP_PROCESSING(SSobj, src) + if(motion_detector) + recycletime-- + if(!recycletime) + recycletime = initial(recycletime) + proximity.refresh_blip_pool() + long_range_cooldown-- + if(long_range_cooldown) + return + long_range_cooldown = initial(long_range_cooldown) + proximity.scan() + +/obj/item/clothing/suit/storage/marine/medium/rto/intel/proc/toggle_motion_detector(mob/user) + to_chat(user,SPAN_NOTICE("You [motion_detector? "disable" : "enable"] \the [src]'s motion detector.")) + if(!motion_detector) + playsound(loc,'sound/items/detector_turn_on.ogg', 25, 1) + else + playsound(loc,'sound/items/detector_turn_off.ogg', 25, 1) + motion_detector = !motion_detector + var/datum/action/item_action/intel/toggle_motion_detector/TMD = locate(/datum/action/item_action/intel/toggle_motion_detector) in actions + TMD.update_icon() + motion_detector() + +/obj/item/clothing/suit/storage/marine/medium/rto/intel/proc/motion_detector() + if(motion_detector) + START_PROCESSING(SSobj, src) + else + STOP_PROCESSING(SSobj, src) + +/obj/item/clothing/suit/storage/marine/medium/rto/intel/mob_can_equip(mob/living/carbon/human/user, slot, disable_warning) //Thanks to Drathek for the help on this part! + if(!..()) + return FALSE + + // Only equip if uniform doesn't already have a utility accessory slot equipped + var/obj/item/clothing/under/uniform = user.w_uniform + var/accessory = locate(/obj/item/clothing/accessory/storage) in uniform.accessories + if(accessory) + to_chat(user, SPAN_WARNING("[src] can't be worn with [accessory].")) + return FALSE + // Only equip if user has expert intel skill level + if(!skillcheck(user, SKILL_INTEL, SKILL_INTEL_EXPERT)) + to_chat(user, SPAN_WARNING("You don't seem to know how to use [src]...")) + return FALSE + return TRUE + +/obj/item/clothing/suit/storage/marine/medium/rto/intel/equipped(mob/user, slot, silent) //When XM4 is equipped this removes ACCESSORY_SLOT_UTILITY as a valid accessory for the uniform + . = ..() + if(slot == WEAR_JACKET) + var/mob/living/carbon/human/human = user + var/obj/item/clothing/under/uniform = human.w_uniform + if(uniform?.valid_accessory_slots) + uniform?.valid_accessory_slots -= ACCESSORY_SLOT_UTILITY + +/obj/item/clothing/suit/storage/marine/medium/rto/intel/unequipped(mob/user, slot) //When unequipped this adds the ACCESSORY_SLOT_UTILITY back as a valid accessory + . = ..() + if(slot == WEAR_JACKET) + var/mob/living/carbon/human/human = user + var/obj/item/clothing/under/uniform = human.w_uniform + if(uniform) + // Figure out if the uniform originally allowed ACCESSORY_SLOT_UTILITY + var/obj/item/clothing/under/temp_uniform = new uniform.type + if(temp_uniform.valid_accessory_slots) + for(var/allowed in temp_uniform.valid_accessory_slots) + if(allowed == ACCESSORY_SLOT_UTILITY) + // It was allowed previously, now add it back + uniform.valid_accessory_slots += ACCESSORY_SLOT_UTILITY + break + qdel(temp_uniform) diff --git a/code/modules/clothing/suits/marine_armor/smartgunner.dm b/code/modules/clothing/suits/marine_armor/smartgunner.dm new file mode 100644 index 000000000000..8f39ef83045c --- /dev/null +++ b/code/modules/clothing/suits/marine_armor/smartgunner.dm @@ -0,0 +1,63 @@ +/obj/item/clothing/suit/storage/marine/smartgunner + name = "\improper M56 combat harness" + desc = "A heavy protective vest designed to be worn with the M56 Smartgun System. \nIt has specially designed straps and reinforcement to carry the Smartgun and accessories." + icon_state = "8" + item_state = "armor" + armor_laser = CLOTHING_ARMOR_LOW + armor_bomb = CLOTHING_ARMOR_MEDIUM + armor_rad = CLOTHING_ARMOR_MEDIUM + storage_slots = 2 + slowdown = SLOWDOWN_ARMOR_LIGHT + flags_inventory = BLOCKSHARPOBJ|SMARTGUN_HARNESS + allowed = list( + /obj/item/tank/emergency_oxygen, + /obj/item/device/flashlight, + /obj/item/ammo_magazine, + /obj/item/explosive/mine, + /obj/item/attachable/bayonet, + /obj/item/weapon/gun/smartgun, + /obj/item/storage/backpack/general_belt, + /obj/item/device/motiondetector, + /obj/item/device/walkman, + ) + +/obj/item/clothing/suit/storage/marine/smartgunner/Initialize() + . = ..() + if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD] && name == "M56 combat harness") + name = "M56 snow combat harness" + else + name = "M56 combat harness" + //select_gamemode_skin(type) + +/obj/item/clothing/suit/storage/marine/smartgunner/mob_can_equip(mob/equipping_mob, slot, disable_warning = FALSE) + . = ..() + + if(equipping_mob.back && !(equipping_mob.back.flags_item & SMARTGUNNER_BACKPACK_OVERRIDE)) + to_chat(equipping_mob, SPAN_WARNING("You can't equip [src] while wearing a backpack.")) + return FALSE + +/obj/item/clothing/suit/storage/marine/smartgunner/equipped(mob/user, slot, silent) + . = ..() + + if(slot == WEAR_JACKET) + RegisterSignal(user, COMSIG_HUMAN_ATTEMPTING_EQUIP, PROC_REF(check_equipping)) + +/obj/item/clothing/suit/storage/marine/smartgunner/proc/check_equipping(mob/living/carbon/human/equipping_human, obj/item/equipping_item, slot) + SIGNAL_HANDLER + + if(slot != WEAR_BACK) + return + + if(equipping_item.flags_item & SMARTGUNNER_BACKPACK_OVERRIDE) + return + + . = COMPONENT_HUMAN_CANCEL_ATTEMPT_EQUIP + + if(equipping_item.flags_equip_slot == SLOT_BACK) + to_chat(equipping_human, SPAN_WARNING("You can't equip [equipping_item] on your back while wearing [src].")) + return + +/obj/item/clothing/suit/storage/marine/smartgunner/unequipped(mob/user, slot) + . = ..() + + UnregisterSignal(user, COMSIG_HUMAN_ATTEMPTING_EQUIP) diff --git a/code/modules/clothing/suits/marine_armor/spec_fire.dm b/code/modules/clothing/suits/marine_armor/spec_fire.dm new file mode 100644 index 000000000000..52343a204f68 --- /dev/null +++ b/code/modules/clothing/suits/marine_armor/spec_fire.dm @@ -0,0 +1,152 @@ +#define FIRE_SHIELD_CD 150 + +/obj/item/clothing/suit/storage/marine/M35 + name = "\improper M35 pyrotechnician armor" + desc = "A custom set of M35 armor designed for use by USCM Pyrotechnicians." + icon_state = "pyro_armor" + slowdown = SLOWDOWN_ARMOR_MEDIUM + armor_internaldamage = CLOTHING_ARMOR_MEDIUMHIGH + armor_bio = CLOTHING_ARMOR_MEDIUMHIGH + light_range = 5 + fire_intensity_resistance = BURN_LEVEL_TIER_1 + max_heat_protection_temperature = FIRESUIT_MAX_HEAT_PROT + flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS|BODY_FLAG_FEET + flags_cold_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS|BODY_FLAG_FEET + flags_heat_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS|BODY_FLAG_FEET + flags_item = MOB_LOCK_ON_EQUIP|NO_CRYO_STORE + specialty = "M35 pyrotechnician" + actions_types = list(/datum/action/item_action/toggle, /datum/action/item_action/specialist/fire_shield) + unacidable = TRUE + var/fire_shield_on = FALSE + var/can_activate = TRUE + +/obj/item/clothing/suit/storage/marine/M35/equipped(mob/user, slot) + if(slot == WEAR_JACKET) + RegisterSignal(user, COMSIG_LIVING_FLAMER_CROSSED, PROC_REF(flamer_fire_callback)) + ..() + +/obj/item/clothing/suit/storage/marine/M35/verb/fire_shield() + set name = "Activate Fire Shield" + set desc = "Activate your armor's FIREWALK protocol for a short duration." + set category = "Pyro" + set src in usr + if(!usr || usr.is_mob_incapacitated(TRUE)) + return + if(!ishuman(usr)) + return + var/mob/living/carbon/human/H = usr + + if(H.wear_suit != src) + to_chat(H, SPAN_WARNING("You must be wearing the M35 pyro armor to activate FIREWALK protocol!")) + return + + if(!skillcheck(H, SKILL_SPEC_WEAPONS, SKILL_SPEC_ALL) && H.skills.get_skill_level(SKILL_SPEC_WEAPONS) != SKILL_SPEC_PYRO) + to_chat(H, SPAN_WARNING("You don't seem to know how to use [src]...")) + return + + if(fire_shield_on) + to_chat(H, SPAN_WARNING("You already have FIREWALK protocol activated!")) + return + + if(!can_activate) + to_chat(H, SPAN_WARNING("FIREWALK protocol was recently activated, wait before trying to activate it again.")) + return + + to_chat(H, SPAN_NOTICE("FIREWALK protocol has been activated. You will now be immune to fire for 6 seconds!")) + RegisterSignal(H, COMSIG_LIVING_PREIGNITION, PROC_REF(fire_shield_is_on)) + RegisterSignal(H, list( + COMSIG_LIVING_FLAMER_FLAMED, + ), PROC_REF(flamer_fire_callback)) + fire_shield_on = TRUE + can_activate = FALSE + for(var/X in actions) + var/datum/action/A = X + A.update_button_icon() + addtimer(CALLBACK(src, PROC_REF(end_fire_shield), H), 6 SECONDS) + + H.add_filter("firewalk_on", 1, list("type" = "outline", "color" = "#03fcc6", "size" = 1)) + +/obj/item/clothing/suit/storage/marine/M35/proc/end_fire_shield(mob/living/carbon/human/user) + if(!istype(user)) + return + to_chat(user, SPAN_NOTICE("FIREWALK protocol has finished.")) + UnregisterSignal(user, list( + COMSIG_LIVING_PREIGNITION, + COMSIG_LIVING_FLAMER_FLAMED, + )) + fire_shield_on = FALSE + + user.remove_filter("firewalk_on") + + addtimer(CALLBACK(src, PROC_REF(enable_fire_shield), user), FIRE_SHIELD_CD) + +/obj/item/clothing/suit/storage/marine/M35/proc/enable_fire_shield(mob/living/carbon/human/user) + if(!istype(user)) + return + to_chat(user, SPAN_NOTICE("FIREWALK protocol can be activated again.")) + can_activate = TRUE + + for(var/X in actions) + var/datum/action/A = X + A.update_button_icon() + +/// This proc is solely so that IgniteMob() fails +/obj/item/clothing/suit/storage/marine/M35/proc/fire_shield_is_on(mob/living/L) + SIGNAL_HANDLER + + if(L.fire_reagent?.fire_penetrating) + return + + return COMPONENT_CANCEL_IGNITION + +/obj/item/clothing/suit/storage/marine/M35/proc/flamer_fire_callback(mob/living/L, datum/reagent/R) + SIGNAL_HANDLER + + if(R.fire_penetrating) + return + + . = COMPONENT_NO_IGNITE + if(fire_shield_on) + . |= COMPONENT_NO_BURN + +/obj/item/clothing/suit/storage/marine/M35/dropped(mob/user) + if (!istype(user)) + return + UnregisterSignal(user, list( + COMSIG_LIVING_PREIGNITION, + COMSIG_LIVING_FLAMER_CROSSED, + COMSIG_LIVING_FLAMER_FLAMED, + )) + ..() + +#undef FIRE_SHIELD_CD + +/datum/action/item_action/specialist/fire_shield + ability_primacy = SPEC_PRIMARY_ACTION_2 + +/datum/action/item_action/specialist/fire_shield/New(mob/living/user, obj/item/holder) + ..() + name = "Activate Fire Shield" + button.name = name + button.overlays.Cut() + var/image/IMG = image('icons/obj/items/clothing/cm_suits.dmi', button, "pyro_armor") + button.overlays += IMG + +/datum/action/item_action/specialist/fire_shield/action_cooldown_check() + var/obj/item/clothing/suit/storage/marine/M35/armor = holder_item + if (!istype(armor)) + return FALSE + + return !armor.can_activate + +/datum/action/item_action/specialist/fire_shield/can_use_action() + var/mob/living/carbon/human/H = owner + if(istype(H) && !H.is_mob_incapacitated() && H.wear_suit == holder_item) + return TRUE + +/datum/action/item_action/specialist/fire_shield/action_activate() + var/obj/item/clothing/suit/storage/marine/M35/armor = holder_item + if (!istype(armor)) + return + + armor.fire_shield() diff --git a/code/modules/clothing/suits/marine_coat.dm b/code/modules/clothing/suits/marine_coat.dm index 3aa43706c7d8..78c8154e1810 100644 --- a/code/modules/clothing/suits/marine_coat.dm +++ b/code/modules/clothing/suits/marine_coat.dm @@ -24,7 +24,7 @@ /obj/item/storage/fancy/cigarettes, /obj/item/tool/lighter, /obj/item/weapon/baton, - /obj/item/handcuffs, + /obj/item/restraint/handcuffs, /obj/item/device/binoculars, /obj/item/attachable/bayonet, /obj/item/storage/belt/gun/m4a3, @@ -278,12 +278,108 @@ icon_state = "o_jacket" item_state = "o_jacket" -//==================War Correspondent==================\\ +//==================Combat Correspondent==================\\ /obj/item/clothing/suit/storage/jacket/marine/reporter name = "combat correspondent jacket" desc = "A jacket for the most fashionable war correspondents." - icon = 'icons/mob/humans/onmob/contained/war_correspondent.dmi' - icon_state = "wc_suit" - item_state = "wc_suit" - contained_sprite = TRUE + icon_state = "cc_brown" + item_state = "cc_brown" + flags_atom = NO_SNOW_TYPE + has_buttons = FALSE + +/obj/item/clothing/suit/storage/jacket/marine/reporter/green + icon_state = "cc_green" + item_state = "cc_green" + + +/obj/item/clothing/suit/storage/jacket/marine/reporter/black + icon_state = "cc_black" + item_state = "cc_black" + +/obj/item/clothing/suit/storage/jacket/marine/reporter/blue + icon_state = "cc_blue" + item_state = "cc_blue" + + +//==================Corporate Liaison==================\\ + +/obj/item/clothing/suit/storage/jacket/marine/vest + name = "brown vest" + desc = "A casual brown vest." + icon_state = "vest_brown" + item_state = "vest_brown" + flags_atom = NO_SNOW_TYPE + has_buttons = FALSE + +/obj/item/clothing/suit/storage/jacket/marine/vest/tan + name = "tan vest" + desc = "A casual tan vest." + icon_state = "vest_tan" + item_state = "vest_tan" + has_buttons = FALSE + +/obj/item/clothing/suit/storage/jacket/marine/vest/grey + name = "grey vest" + desc = "A casual grey vest." + icon_state = "vest_grey" + item_state = "vest_grey" + has_buttons = FALSE + +/obj/item/clothing/suit/storage/jacket/marine/corporate + name = "khaki suit jacket" + desc = "A khaki suit jacket." + icon_state = "corporate_ivy" + item_state = "corporate_ivy" + flags_atom = NO_SNOW_TYPE + has_buttons = FALSE + +/obj/item/clothing/suit/storage/jacket/marine/corporate/formal + name = "formal suit jacket" + desc = "An ivory suit jacket; a Weyland-Yutani corporate badge is attached to the right lapel." + icon_state = "corporate_formal" + item_state = "corporate_formal" + has_buttons = FALSE + +/obj/item/clothing/suit/storage/jacket/marine/corporate/black + name = "black suit jacket" + desc = "A black suit jacket." + icon_state = "corporate_black" + item_state = "corporate_black" + has_buttons = FALSE + +/obj/item/clothing/suit/storage/jacket/marine/corporate/brown + name = "brown suit jacket" + desc = "A brown suit jacket." + icon_state = "corporate_brown" + item_state = "corporate_brown" + has_buttons = FALSE + +/obj/item/clothing/suit/storage/jacket/marine/corporate/blue + name = "blue suit jacket" + desc = "A blue suit jacket." + icon_state = "corporate_blue" + item_state = "corporate_blue" + has_buttons = FALSE + +/obj/item/clothing/suit/storage/jacket/marine/bomber + name = "khaki bomber jacket" + desc = "A khaki bomber jacket popular among stationeers and blue-collar workers everywhere." + icon_state = "jacket_khaki" + item_state = "jacket_khaki" + flags_atom = NO_SNOW_TYPE + has_buttons = FALSE + +/obj/item/clothing/suit/storage/jacket/marine/bomber/red + name = "red bomber jacket" + desc = "A reddish-brown bomber jacket popular among stationeers and blue-collar workers everywhere." + icon_state = "jacket_red" + item_state = "jacket_red" + has_buttons = FALSE + +/obj/item/clothing/suit/storage/jacket/marine/bomber/grey + name = "grey bomber jacket" + desc = "A blue-grey bomber jacket popular among stationeers and blue-collar workers everywhere." + icon_state = "jacket_grey" + item_state = "jacket_grey" + has_buttons = FALSE diff --git a/code/modules/clothing/suits/miscellaneous.dm b/code/modules/clothing/suits/miscellaneous.dm index b5859bb6f2d4..252b99e124bc 100644 --- a/code/modules/clothing/suits/miscellaneous.dm +++ b/code/modules/clothing/suits/miscellaneous.dm @@ -128,7 +128,7 @@ /obj/item/ammo_magazine, /obj/item/ammo_casing, /obj/item/weapon/baton, - /obj/item/handcuffs, + /obj/item/restraint/handcuffs, /obj/item/storage/fancy/cigarettes, /obj/item/tool/lighter, /obj/item/device/taperecorder, @@ -143,8 +143,8 @@ valid_accessory_slots = list(ACCESSORY_SLOT_MEDAL) /obj/item/clothing/suit/storage/apron/overalls - name = "coveralls" - desc = "A set of denim overalls." + name = "blue coveralls" + desc = "A pair of denim overalls. With a large pocket in the front these overalls are popular with workers of all kinds." icon_state = "overalls" item_state = "overalls" flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_LEGS @@ -153,7 +153,7 @@ /obj/item/ammo_magazine, /obj/item/ammo_casing, /obj/item/weapon/baton, - /obj/item/handcuffs, + /obj/item/restraint/handcuffs, /obj/item/storage/fancy/cigarettes, /obj/item/tool/lighter, /obj/item/device/taperecorder, @@ -167,6 +167,18 @@ ) valid_accessory_slots = list(ACCESSORY_SLOT_MEDAL) +/obj/item/clothing/suit/storage/apron/overalls/tan + name = "tan coveralls" + desc = "A pair of tan overalls. With a large pocket in the front these overalls are popular with workers of all kinds." + icon_state = "overalls_tan" + item_state = "overalls_tan" + +/obj/item/clothing/suit/storage/apron/overalls/red + name = "red coveralls" + desc = "A pair of reddish-brown overalls. With a large pocket in the front these overalls are popular with workers of all kinds." + icon_state = "overalls_red" + item_state = "overalls_red" + /obj/item/clothing/suit/syndicatefake name = "red space suit replica" icon_state = "syndicate" @@ -278,7 +290,7 @@ item_state = "webbing" allowed = list( /obj/item/weapon/baton, - /obj/item/handcuffs, + /obj/item/restraint/handcuffs, /obj/item/device/binoculars, /obj/item/attachable/bayonet, @@ -306,7 +318,7 @@ item_state = "synth_utility_vest" allowed = list( /obj/item/weapon/baton, - /obj/item/handcuffs, + /obj/item/restraint/handcuffs, /obj/item/device/binoculars, /obj/item/attachable/bayonet, @@ -443,7 +455,7 @@ /obj/item/storage/fancy/cigarettes, /obj/item/tool/lighter, /obj/item/weapon/baton, - /obj/item/handcuffs, + /obj/item/restraint/handcuffs, /obj/item/device/binoculars, /obj/item/attachable/bayonet, diff --git a/code/modules/clothing/suits/utility.dm b/code/modules/clothing/suits/utility.dm index 133265b34b7e..3b415cf0f9e8 100644 --- a/code/modules/clothing/suits/utility.dm +++ b/code/modules/clothing/suits/utility.dm @@ -112,7 +112,7 @@ allowed = list( /obj/item/weapon/gun, /obj/item/weapon/baton, - /obj/item/handcuffs, + /obj/item/restraint/handcuffs, /obj/item/device/flashlight, /obj/item/device/healthanalyzer, diff --git a/code/modules/clothing/under/gimmick.dm b/code/modules/clothing/under/gimmick.dm index d8e0a16fc7a2..793bc0593735 100644 --- a/code/modules/clothing/under/gimmick.dm +++ b/code/modules/clothing/under/gimmick.dm @@ -11,6 +11,10 @@ has_sensor = UNIFORM_NO_SENSORS displays_id = 0 + item_icons = list( + WEAR_BODY = 'icons/mob/humans/onmob/uniform_1.dmi', + ) + //JASON /obj/item/clothing/under/gimmick/jason name = "dirty work attire" diff --git a/code/modules/clothing/under/jobs/medsci.dm b/code/modules/clothing/under/jobs/medsci.dm index 2a6c07e95932..74507c2e5593 100644 --- a/code/modules/clothing/under/jobs/medsci.dm +++ b/code/modules/clothing/under/jobs/medsci.dm @@ -2,10 +2,27 @@ * Science */ +/obj/item/clothing/under/rank/rd + desc = "It's made of a special fiber that provides minor protection against biohazards. It has markings that denote the wearer is a Research Director." + name = "research director's uniform" + icon_state = "rdalt_s" + worn_state = "rdalt_s" + permeability_coefficient = 0.50 + armor_melee = CLOTHING_ARMOR_NONE + armor_bullet = CLOTHING_ARMOR_NONE + armor_laser = CLOTHING_ARMOR_NONE + armor_energy = CLOTHING_ARMOR_NONE + armor_bomb = CLOTHING_ARMOR_NONE + armor_bio = CLOTHING_ARMOR_LOW + armor_rad = CLOTHING_ARMOR_LOW + armor_internaldamage = CLOTHING_ARMOR_LOW + flags_jumpsuit = FALSE + /obj/item/clothing/under/rank/rdalt - desc = "A simple blue utilitarian jumpsuit that serves as the standard issue service uniform of support synthetics onboard USCM facilities. While commonly associated with the staple Bishop units, reduced funding to the Colonial Marines has led to a wide range of models filling these uniforms, especially in battalions operating in the edge frontier." - name = "synthetic service uniform" + desc = "It's made of a special fiber that provides minor protection against biohazards. It has markings that denote the wearer is a Research Director." + name = "research director's jumpsuit" icon_state = "rdalt" + permeability_coefficient = 0.50 armor_melee = CLOTHING_ARMOR_NONE armor_bullet = CLOTHING_ARMOR_NONE armor_laser = CLOTHING_ARMOR_NONE @@ -144,7 +161,7 @@ item_state_slots = list(WEAR_BODY = "orderly") /obj/item/clothing/under/rank/medical - desc = "It's made of a special fiber that provides minor protection against biohazards. It has a cross on the chest denoting that the wearer is trained medical personnel." + desc = "They're made of a special fiber that provides minor protection against biohazards. They have a cross on the chest denoting that the wearer is trained medical personnel." name = "medical doctor's uniform" icon_state = "medical" item_state = "w_suit" @@ -159,34 +176,55 @@ armor_internaldamage = CLOTHING_ARMOR_LOW item_state_slots = list(WEAR_BODY = "medical") -/obj/item/clothing/under/rank/medical/nurse - name = "medical nurse scrubs" - desc = "It's made of a special fiber that provides minor protection against biohazards. This one features an orange armband." - icon_state = "scrubsnurse" - item_state = "scrubsnurse" - item_state_slots = list(WEAR_BODY = "scrubsnurse") +/obj/item/clothing/under/rank/medical/lightblue + name = "medical scrubs" + desc = "They're made of a special fiber that provides minor protection against biohazards. These are in light blue." + icon_state = "scrubslightblue" + flags_jumpsuit = FALSE + item_state_slots = list(WEAR_BODY = "scrubslightblue") /obj/item/clothing/under/rank/medical/blue name = "medical scrubs" - desc = "It's made of a special fiber that provides minor protection against biohazards. This one is in baby blue." + desc = "They're made of a special fiber that provides minor protection against biohazards. These are in formal blue." icon_state = "scrubsblue" flags_jumpsuit = FALSE item_state_slots = list(WEAR_BODY = "scrubsblue") /obj/item/clothing/under/rank/medical/green name = "medical scrubs" - desc = "It's made of a special fiber that provides minor protection against biohazards. This one is in dark green." + desc = "They're made of a special fiber that provides minor protection against biohazards. These are in jade green." icon_state = "scrubsgreen" flags_jumpsuit = FALSE item_state_slots = list(WEAR_BODY = "scrubsgreen") /obj/item/clothing/under/rank/medical/purple name = "medical scrubs" - desc = "It's made of a special fiber that provides minor protection against biohazards. This one is in deep purple." + desc = "They're made of a special fiber that provides minor protection against biohazards. These are in berry red." icon_state = "scrubspurple" flags_jumpsuit = FALSE item_state_slots = list(WEAR_BODY = "scrubspurple") +/obj/item/clothing/under/rank/medical/olive + name = "medical scrubs" + desc = "They're made of a special fiber that provides minor protection against biohazards. These are in olive green." + icon_state = "scrubsolive" + flags_jumpsuit = FALSE + item_state_slots = list(WEAR_BODY = "scrubsolive") + +/obj/item/clothing/under/rank/medical/grey + name = "medical scrubs" + desc = "They're made of a special fiber that provides minor protection against biohazards. These are in mundane grey." + icon_state = "scrubsgrey" + flags_jumpsuit = FALSE + item_state_slots = list(WEAR_BODY = "scrubsgrey") + +/obj/item/clothing/under/rank/medical/orange + name = "medical scrubs" + desc = "They're made of a special fiber that provides minor protection against biohazards. These are in prisoner orange." + icon_state = "scrubsorange" + flags_jumpsuit = FALSE + item_state_slots = list(WEAR_BODY = "scrubsorange") + /obj/item/clothing/under/rank/psych desc = "A basic white jumpsuit. It has turquoise markings that denote the wearer as a psychiatrist." name = "psychiatrist's jumpsuit" diff --git a/code/modules/clothing/under/marine_uniform.dm b/code/modules/clothing/under/marine_uniform.dm index 6e92d0bd1343..c7353840d439 100644 --- a/code/modules/clothing/under/marine_uniform.dm +++ b/code/modules/clothing/under/marine_uniform.dm @@ -510,6 +510,9 @@ has_sensor = UNIFORM_NO_SENSORS suit_restricted = list(/obj/item/clothing/suit/storage/marine/veteran/bear) + item_icons = list( + WEAR_BODY = 'icons/mob/humans/onmob/uniform_1.dmi', + ) /obj/item/clothing/under/marine/veteran/UPP name = "\improper UPP fatigues" @@ -689,6 +692,40 @@ has_sensor = UNIFORM_HAS_SENSORS sensor_faction = FACTION_COLONIST +/obj/item/clothing/under/colonist/workwear + name = "grey workwear" + desc = "A pair of black slacks and a short-sleeve grey workshirt. Standard uniform for Weyland Yutani employees working in colony operations and administration." + icon_state = "workwear_grey" + worn_state = "workwear_grey" + +/obj/item/clothing/under/colonist/workwear/khaki + name = "khaki workwear" + desc = "A pair of jeans paired with a khaki workshirt. A common pairing among blue-collar workers due to its drab look." + icon_state = "workwear_khaki" + worn_state = "workwear_khaki" + flags_jumpsuit = UNIFORM_SLEEVE_ROLLABLE|UNIFORM_JACKET_REMOVABLE + +/obj/item/clothing/under/colonist/workwear/pink + name = "pink workwear" + desc = "A pair of jeans paired with a pink workshirt. Pink? Your wife might not think so, but such outlandish attire deserves questioning by corporate security. What are you, some kind of free-thinking anarchist?" + icon_state = "workwear_pink" + worn_state = "workwear_pink" + flags_jumpsuit = UNIFORM_SLEEVE_ROLLABLE|UNIFORM_JACKET_REMOVABLE + +/obj/item/clothing/under/colonist/workwear/blue + name = "blue workwear" + desc = "A pair of brown canvas workpants paired with a dark blue workshirt. A common pairing among blue-collar workers." + icon_state = "workwear_blue" + worn_state = "workwear_blue" + flags_jumpsuit = UNIFORM_SLEEVE_ROLLABLE|UNIFORM_JACKET_REMOVABLE + +/obj/item/clothing/under/colonist/workwear/green + name = "green workwear" + desc = "A pair of brown canvas workpants paired with a green workshirt. An common pairing among blue-collar workers." + icon_state = "workwear_green" + worn_state = "workwear_green" + flags_jumpsuit = UNIFORM_SLEEVE_ROLLABLE|UNIFORM_JACKET_REMOVABLE + /obj/item/clothing/under/colonist/clf name = "\improper Colonial Liberation Front uniform" desc = "A stylish grey-green jumpsuit - standard issue for colonists. This version appears to have the symbol of the Colonial Liberation Front emblazoned in select areas." @@ -712,6 +749,14 @@ has_sensor = UNIFORM_HAS_SENSORS sensor_faction = FACTION_MARINE +/obj/item/clothing/under/colonist/white_service + name = "white service uniform" + desc = "A white dress shirt and tie with sleek pants. Standard clothing for anyone on professional business." + icon_state = "CO_service" + worn_state = "CO_service" + has_sensor = UNIFORM_HAS_SENSORS + sensor_faction = FACTION_MARINE + /obj/item/clothing/under/colonist/wy_joliet_shopsteward name = "steward utilities" desc = "A stylish brown vest and shorts - uniforms like this are often worn by clerks and shop stewards." @@ -732,6 +777,7 @@ displays_id = FALSE has_sensor = UNIFORM_HAS_SENSORS sensor_faction = FACTION_MARINE + /obj/item/clothing/under/tshirt/gray_blu name = "gray T-shirt and jeans" desc = "A comfortable gray T-shirt and blue jeans." @@ -752,7 +798,7 @@ /obj/item/clothing/under/CM_uniform name = "\improper Colonial Marshal uniform" - desc = "A blue shirt and tan trousers - the official uniform for a Colonial Marshal." + desc = "A pair of off-white slacks and a blue button-down shirt with a dark brown tie; the standard uniform of the Colonial Marshals." icon_state = "marshal" worn_state = "marshal" armor_melee = CLOTHING_ARMOR_LOW @@ -763,7 +809,7 @@ armor_bio = CLOTHING_ARMOR_NONE armor_rad = CLOTHING_ARMOR_NONE armor_internaldamage = CLOTHING_ARMOR_LOW - + flags_jumpsuit = UNIFORM_SLEEVE_ROLLABLE|UNIFORM_JACKET_REMOVABLE /obj/item/clothing/under/liaison_suit name = "liaison's tan suit" @@ -805,14 +851,63 @@ icon_state = "liaison_blue_blazer" worn_state = "liaison_blue_blazer" +/obj/item/clothing/under/liaison_suit/field + name = "corporate casual" + desc = "A pair of dark brown slacks paired with a dark blue button-down shirt. A popular look among those in the corporate world that conduct the majority of their business from night clubs." + icon_state = "corporate_field" + worn_state = "corporate_field" + +/obj/item/clothing/under/liaison_suit/ivy + name = "country club outfit" + desc = "A pair of khaki slacks paired with a light blue button-down shirt. A popular look with those in the corporate world that conduct the majority of their business from country clubs." + icon_state = "corporate_ivy" + worn_state = "corporate_ivy" + +/obj/item/clothing/under/liaison_suit/corporate_formal + name = "white suit pants" + desc = "A pair of ivory slacks paired with a white shirt. A popular pairing for formal corporate events." + icon_state = "corporate_formal" + worn_state = "corporate_formal" + +/obj/item/clothing/under/liaison_suit/black + name = "black suit pants" + desc = "A pair of black slacks paired with a white shirt. The most common pairing among corporate workers." + icon_state = "corporate_black" + worn_state = "corporate_black" + +/obj/item/clothing/under/liaison_suit/brown + name = "brown suit pants" + desc = "A pair of brown slacks paired with a white shirt. A common pairing among corporate workers." + icon_state = "corporate_brown" + worn_state = "corporate_brown" + +/obj/item/clothing/under/liaison_suit/blue + name = "blue suit pants" + desc = "A pair of blue slacks paired with a white shirt. A common pairing among corporate workers." + icon_state = "corporate_blue" + worn_state = "corporate_blue" + /obj/item/clothing/under/marine/reporter name = "combat correspondent uniform" desc = "A relaxed and robust uniform fit for any potential reporting needs." - icon = 'icons/mob/humans/onmob/contained/war_correspondent.dmi' - icon_state = "wc_uniform" - worn_state = "wc_uniform" - contained_sprite = TRUE - flags_atom = NO_NAME_OVERRIDE + icon_state = "cc_white" + worn_state = "cc_white" + flags_atom = NO_SNOW_TYPE|NO_NAME_OVERRIDE + item_icons = list( + WEAR_BODY = 'icons/mob/humans/onmob/uniform_1.dmi', + ) + +/obj/item/clothing/under/marine/reporter/black + icon_state = "cc_black" + worn_state = "cc_black" + +/obj/item/clothing/under/marine/reporter/orange + icon_state = "cc_orange" + worn_state = "cc_orange" + +/obj/item/clothing/under/marine/reporter/red + icon_state = "cc_red" + worn_state = "cc_red" /obj/item/clothing/under/twe_suit name = "representative's fine suit" @@ -903,6 +998,31 @@ desc = "A cheap uniform made for Synthetic labor. Tomorrow, Together." icon_state = "working_joe" worn_state = "working_joe" + flags_item = NO_CRYO_STORE + var/obj/structure/machinery/camera/camera + +/obj/item/clothing/under/rank/synthetic/joe/Initialize() + . = ..() + camera = new /obj/structure/machinery/camera/autoname/almayer/containment/ares(src) + +/obj/item/clothing/under/rank/synthetic/joe/Destroy() + QDEL_NULL(camera) + return ..() + +/obj/item/clothing/under/rank/synthetic/joe/equipped(mob/living/carbon/human/mob, slot) + if(camera) + camera.c_tag = mob.name + ..() + +/obj/item/clothing/under/rank/synthetic/joe/dropped(mob/living/carbon/human/mob) + if(camera) + camera.c_tag = "3RR0R" + ..() + +/obj/item/clothing/under/rank/synthetic/joe/get_examine_text(mob/user) + . = ..() + if(camera) + . += SPAN_ORANGE("There is a small camera mounted to the front.") /obj/item/clothing/under/rank/synthetic/joe/engi name = "\improper Working Joe Hazardous Uniform" @@ -949,7 +1069,7 @@ /obj/item/clothing/under/marine/cbrn //CBRN MOPP suit name = "\improper M3 MOPP suit" - desc = "M3 MOPP suits are specially designed and engineered to protect the wearer from unshielded exposure to any Chemical, Biological, Radiological, or Nuclear (CBRN) threats in the field. Despite somewhat resembling commonplace synthetic rubber HAZMAT suits, the Venlar composition provides a significantly more dense and durable baseline material, allowing for modifications without the loss of its air-tight nature. The wearer’s comfort has been significantly taken into consideration, with the suit providing sufficient freedom of movement for even delicate maneuvers and movements once it is donned. As the sealed environment retains many issues from the past, measures have been taken to significantly reduce the suit's passive heat absorption and increase internal absorbance through linings, as well as the capability to fully integrate with external cooling, air cycling, and other life support systems. Strips of M11 detector paper are included with each suit, designed to be slotted into the dominant arm of the wearer’s protective suit, the non-dominant wrist, and then back to the knee, providing at-a-glance warning signs across alternating sides of the body while working. The arm and knee markers are intended to be on the user's dominant The papers change color upon contact with harmful chemical agents, displaying a clear white initially and turning red when activated. The suit has a recommended lifespan of twenty-four hours once contact with a toxic environment is made, but depending on the severity this can be shortened to eight hours or less. Beyond that point, the accuracy of the detector papers deteriorates significantly, as does the protection of the suit itself." + desc = "M3 MOPP suits are specially designed and engineered to protect the wearer from unshielded exposure to any Chemical, Biological, Radiological, or Nuclear (CBRN) threats in the field. The suit has a recommended lifespan of twenty-four hours once contact with a toxic environment is made, but depending on the severity this can be shortened to eight hours or less." desc_lore = "Since the outbreak of the New Earth Plague in 2157 and the subsequent Interstellar Commerce Commission (ICC) sanctioned decontamination of the colony and its 40 million inhabitants, the abandoned colony has been left under a strict quarantine blockade to prevent any potential scavengers from spreading what’s left of the highly-durable airborne flesh-eating bacteria. Following those events, the three major superpowers have been investing heavily in the development and procurement of CBRN equipment, in no small part due to the extensive damage that the plague and other similar bioweapons could do. The \"Marine 70\" upgrade package and the launch of the M3 pattern armor series saw the first M3-M prototypes approved for CBRN usage." flags_atom = NO_NAME_OVERRIDE|NO_SNOW_TYPE icon_state = "cbrn" diff --git a/code/modules/clothing/under/ties.dm b/code/modules/clothing/under/ties.dm index a0c8219ffe69..d78c0faeeca8 100644 --- a/code/modules/clothing/under/ties.dm +++ b/code/modules/clothing/under/ties.dm @@ -79,6 +79,22 @@ name = "red tie" icon_state = "redtie" +/obj/item/clothing/accessory/green + name = "green tie" + icon_state = "greentie" + +/obj/item/clothing/accessory/black + name = "black tie" + icon_state = "blacktie" + +/obj/item/clothing/accessory/gold + name = "gold tie" + icon_state = "goldtie" + +/obj/item/clothing/accessory/purple + name = "purple tie" + icon_state = "purpletie" + /obj/item/clothing/accessory/horrible name = "horrible tie" desc = "A neosilk clip-on tie. This one is disgusting." @@ -138,18 +154,18 @@ /obj/item/clothing/accessory/medal/on_attached(obj/item/clothing/S, mob/living/user, silent) . = ..() if(.) - RegisterSignal(S, COMSIG_ITEM_PICKUP, PROC_REF(remove_medal)) + RegisterSignal(S, COMSIG_ITEM_EQUIPPED, PROC_REF(remove_medal)) -/obj/item/clothing/accessory/medal/proc/remove_medal(obj/item/clothing/C, mob/user) +/obj/item/clothing/accessory/medal/proc/remove_medal(obj/item/clothing/C, mob/user, slot) SIGNAL_HANDLER - if(user.real_name != recipient_name) + if(user.real_name != recipient_name && (slot == WEAR_BODY || slot == WEAR_JACKET)) C.remove_accessory(user, src) user.drop_held_item(src) /obj/item/clothing/accessory/medal/on_removed(mob/living/user, obj/item/clothing/C) . = ..() if(.) - UnregisterSignal(C, COMSIG_ITEM_PICKUP) + UnregisterSignal(C, COMSIG_ITEM_EQUIPPED) /obj/item/clothing/accessory/medal/attack(mob/living/carbon/human/H, mob/living/carbon/human/user) if(!(istype(H) && istype(user))) @@ -342,6 +358,11 @@ desc = "An armband, worn by the crew to display which department they're assigned to. This one is white and green." icon_state = "medgreen" +/obj/item/clothing/accessory/armband/nurse + name = "nurse armband" + desc = "An armband, worn by the rookie nurses to display they are still not doctors. This one is dark red." + icon_state = "nurse" + //patches /obj/item/clothing/accessory/patch name = "USCM patch" @@ -365,9 +386,27 @@ icon_state = "commandopatch" /obj/item/clothing/accessory/patch/upp + name = "UPP patch" + desc = "A fire-resistant shoulder patch, worn by the men and women of the Union of Progressive Peoples Armed Collective." + icon_state = "upppatch" + +/obj/item/clothing/accessory/patch/upp/airborne name = "UPP Airborne Reconnaissance patch" desc = "A fire-resistant shoulder patch, worn by the men and women of the 173rd Airborne Reconnaissance Platoon." - icon_state = "upppatch" + icon_state = "vdvpatch" + +/obj/item/clothing/accessory/patch/upp/naval + name = "UPP Naval Infantry patch" + desc = "A fire-resistant shoulder patch, worn by the men and women of the UPP Naval Infantry." + icon_state = "navalpatch" + +//misc + +/obj/item/clothing/accessory/dogtags + name = "Attachable Dogtags" + desc = "A robust pair of dogtags to be worn around the neck of the United States Colonial Marines, however due to a combination of budget reallocation, Marines losing their dogtags, and multiple incidents of marines swallowing their tags, they now attach to the uniform or armor." + icon_state = "dogtag" + slot = ACCESSORY_SLOT_MEDAL /obj/item/clothing/accessory/poncho name = "USCM Poncho" @@ -377,7 +416,8 @@ /obj/item/clothing/accessory/poncho/Initialize() . = ..() - select_gamemode_skin(type) + // Only do this for the base type '/obj/item/clothing/accessory/poncho'. + select_gamemode_skin(/obj/item/clothing/accessory/poncho) inv_overlay = image("icon" = 'icons/obj/items/clothing/ties_overlay.dmi', "icon_state" = "[icon_state]") update_icon() @@ -644,6 +684,25 @@ /obj/item/clothing/accessory/storage/surg_vest/drop_green/equipped hold = /obj/item/storage/internal/accessory/surg_vest/equipped +/obj/item/clothing/accessory/storage/surg_vest/drop_green/upp + hold = /obj/item/storage/internal/accessory/surg_vest/drop_green/upp + +/obj/item/storage/internal/accessory/surg_vest/drop_green/upp/fill_preset_inventory() + new /obj/item/tool/surgery/scalpel(src) + new /obj/item/tool/surgery/hemostat(src) + new /obj/item/tool/surgery/retractor(src) + new /obj/item/tool/surgery/cautery(src) + new /obj/item/tool/surgery/circular_saw(src) + new /obj/item/tool/surgery/surgicaldrill(src) + new /obj/item/tool/surgery/scalpel/pict_system(src) + new /obj/item/tool/surgery/bonesetter(src) + new /obj/item/tool/surgery/FixOVein(src) + new /obj/item/stack/medical/advanced/bruise_pack(src) + new /obj/item/stack/nanopaste(src) + new /obj/item/tool/surgery/bonegel(src) + new /obj/item/tool/surgery/bonegel(src) + new /obj/item/reagent_container/blood/OMinus(src) + /obj/item/clothing/accessory/storage/surg_vest/drop_black name = "black surgical drop pouch" desc = "A tactical black synthcotton drop pouch purpose-made for holding surgical tools." @@ -729,7 +788,7 @@ w_class = SIZE_LARGE //Allow storage containers that's medium or below storage_slots = null max_w_class = SIZE_MEDIUM - max_storage_space = 6 //weight system like backpacks, hold enough for 2 medium (normal) size items, or 3 small items, or 6 tiny items + max_storage_space = 8 //weight system like backpacks, hold enough for 2 medium (normal) size items, or 4 small items, or 8 tiny items cant_hold = list( //Prevent inventory powergame /obj/item/storage/firstaid, /obj/item/storage/bible, diff --git a/code/modules/cm_aliens/Ovipositor.dm b/code/modules/cm_aliens/Ovipositor.dm index 07d3466a279d..b8983f37cc7a 100644 --- a/code/modules/cm_aliens/Ovipositor.dm +++ b/code/modules/cm_aliens/Ovipositor.dm @@ -14,11 +14,11 @@ . = ..() begin_decay_time = world.timeofday + QUEEN_OVIPOSITOR_DECAY_TIME - START_PROCESSING(SSeffects, src) // Process every second + START_PROCESSING(SSoldeffects, src) // Process every second /obj/ovipositor/Destroy() if(!decayed && !destroyed) - STOP_PROCESSING(SSeffects, src) + STOP_PROCESSING(SSoldeffects, src) return ..() @@ -32,7 +32,7 @@ /obj/ovipositor/proc/do_decay() decayed = TRUE - STOP_PROCESSING(SSeffects, src) + STOP_PROCESSING(SSoldeffects, src) icon_state = "ovipositor_molted" flick("ovipositor_decay", src) @@ -46,7 +46,7 @@ /obj/ovipositor/proc/explode() destroyed = TRUE - STOP_PROCESSING(SSeffects, src) + STOP_PROCESSING(SSoldeffects, src) icon_state = "ovipositor_gibbed" flick("ovipositor_explosion", src) diff --git a/code/modules/cm_aliens/XenoStructures.dm b/code/modules/cm_aliens/XenoStructures.dm index 81978bb01ba0..635bca03241f 100644 --- a/code/modules/cm_aliens/XenoStructures.dm +++ b/code/modules/cm_aliens/XenoStructures.dm @@ -88,13 +88,18 @@ else M.animation_attack_on(src) M.visible_message(SPAN_XENONOTICE("\The [M] claws \the [src]!"), \ - SPAN_XENONOTICE("You claw \the [src].")) + SPAN_XENONOTICE("We claw \the [src].")) if(istype(src, /obj/effect/alien/resin/sticky)) playsound(loc, "alien_resin_move", 25) else playsound(loc, "alien_resin_break", 25) - health -= (M.melee_damage_upper + 50) //Beef up the damage a bit + var/damage_to_structure = M.melee_damage_upper + XENO_DAMAGE_TIER_7 + // Builders can destroy beefy things in maximum 5 hits + if(isxeno_builder(M)) + health -= max(initial(health) * 0.2, damage_to_structure) + else + health -= damage_to_structure healthcheck() return XENO_ATTACK_ACTION @@ -113,7 +118,7 @@ /obj/effect/alien/resin/attackby(obj/item/W, mob/user) if(!(W.flags_item & NOBLUDGEON)) - var/damage = W.force * RESIN_MELEE_DAMAGE_MULTIPLIER + var/damage = W.force * W.demolition_mod * RESIN_MELEE_DAMAGE_MULTIPLIER health -= damage if(istype(src, /obj/effect/alien/resin/sticky)) playsound(loc, "alien_resin_move", 25) @@ -160,13 +165,12 @@ /obj/effect/alien/resin/sticky/Crossed(atom/movable/AM) . = ..() var/mob/living/carbon/human/H = AM - // Wait doesn't this stack slows if you get dragged over it? What's going on here? if(istype(H) && !H.ally_of_hivenumber(hivenumber)) - H.next_move_slowdown = H.next_move_slowdown + slow_amt + H.next_move_slowdown = max(H.next_move_slowdown, slow_amt) return . var/mob/living/carbon/xenomorph/X = AM if(istype(X) && !X.ally_of_hivenumber(hivenumber)) - X.next_move_slowdown = X.next_move_slowdown + slow_amt + X.next_move_slowdown = max(X.next_move_slowdown, slow_amt) return . /obj/effect/alien/resin/sticky/proc/forsaken_handling() @@ -387,7 +391,7 @@ return // defer to item afterattack if(!(W.flags_item & NOBLUDGEON) && W.force) user.animation_attack_on(src) - health -= W.force*RESIN_MELEE_DAMAGE_MULTIPLIER + health -= W.force * RESIN_MELEE_DAMAGE_MULTIPLIER * W.demolition_mod to_chat(user, "You hit the [name] with your [W.name]!") playsound(loc, "alien_resin_move", 25) healthcheck() @@ -574,11 +578,14 @@ if(current_mob.stat == DEAD) return FALSE + if(HAS_TRAIT(current_mob, TRAIT_NESTED)) + return FALSE + var/turf/current_turf var/turf/last_turf = loc var/atom/temp_atom = new acid_type() var/current_pos = 1 - for(var/i in getline(src, current_mob)) + for(var/i in get_line(src, current_mob)) current_turf = i if(LinkBlocked(temp_atom, last_turf, current_turf)) qdel(temp_atom) diff --git a/code/modules/cm_aliens/structures/construction_node.dm b/code/modules/cm_aliens/structures/construction_node.dm index 0fdcd5c5c67a..dbc4fcb0d9bf 100644 --- a/code/modules/cm_aliens/structures/construction_node.dm +++ b/code/modules/cm_aliens/structures/construction_node.dm @@ -22,8 +22,7 @@ color = linked_hive.color /obj/effect/alien/resin/construction/Destroy() - if(template && linked_hive && (template.crystals_stored < template.crystals_required)) - linked_hive.crystal_stored += template.crystals_stored + if(template && linked_hive && (template.plasma_stored < template.plasma_required)) linked_hive.remove_construction(src) template = null linked_hive = null @@ -42,7 +41,7 @@ /obj/effect/alien/resin/construction/get_examine_text(mob/user) . = ..() if((isxeno(user) || isobserver(user)) && linked_hive) - var/message = "A [template.name] construction is designated here. It requires [template.crystals_required - template.crystals_stored] more [MATERIAL_CRYSTAL]." + var/message = "A [template.name] construction is designated here. It requires [template.plasma_required - template.plasma_stored] more plasma." . += message /obj/effect/alien/resin/construction/attack_alien(mob/living/carbon/xenomorph/M) diff --git a/code/modules/cm_aliens/structures/egg.dm b/code/modules/cm_aliens/structures/egg.dm index edb86c204558..9825389c8ac4 100644 --- a/code/modules/cm_aliens/structures/egg.dm +++ b/code/modules/cm_aliens/structures/egg.dm @@ -23,10 +23,21 @@ if (hive) hivenumber = hive + if(hivenumber == XENO_HIVE_NORMAL) + RegisterSignal(SSdcs, COMSIG_GLOB_GROUNDSIDE_FORSAKEN_HANDLING, PROC_REF(forsaken_handling)) + set_hive_data(src, hivenumber) update_icon() addtimer(CALLBACK(src, PROC_REF(Grow)), rand(EGG_MIN_GROWTH_TIME, EGG_MAX_GROWTH_TIME)) +/obj/effect/alien/egg/proc/forsaken_handling() + SIGNAL_HANDLER + if(is_ground_level(z)) + hivenumber = XENO_HIVE_FORSAKEN + set_hive_data(src, XENO_HIVE_FORSAKEN) + + UnregisterSignal(SSdcs, COMSIG_GLOB_GROUNDSIDE_FORSAKEN_HANDLING) + /obj/effect/alien/egg/Destroy() . = ..() for(var/obj/effect/egg_trigger/trigger as anything in egg_triggers) @@ -44,12 +55,16 @@ . = ..() if(isxeno(user) && status == EGG_GROWN) . += "Ctrl + Click egg to retrieve child into your empty hand if you can carry it." + if(isobserver(user) && status == EGG_GROWN) + var/datum/hive_status/hive = GLOB.hive_datum[hivenumber] + var/current_hugger_count = hive.get_current_playable_facehugger_count(); + . += "There are currently [SPAN_NOTICE("[current_hugger_count]")] facehuggers in the hive. The hive can support a total of [SPAN_NOTICE("[hive.playable_hugger_limit]")] facehuggers at present." /obj/effect/alien/egg/attack_alien(mob/living/carbon/xenomorph/M) if(status == EGG_BURST || status == EGG_DESTROYED) M.animation_attack_on(src) M.visible_message(SPAN_XENONOTICE("[M] clears the hatched egg."), \ - SPAN_XENONOTICE("You clear the hatched egg.")) + SPAN_XENONOTICE("We clear the hatched egg.")) playsound(src.loc, "alien_resin_break", 25) qdel(src) return XENO_NONCOMBAT_ACTION @@ -57,7 +72,7 @@ if(M.hivenumber != hivenumber) M.animation_attack_on(src) M.visible_message(SPAN_XENOWARNING("[M] crushes \the [src]"), - SPAN_XENOWARNING("You crush \the [src]")) + SPAN_XENOWARNING("We crush \the [src]")) Burst(TRUE) return XENO_ATTACK_ACTION @@ -70,9 +85,9 @@ return XENO_NO_DELAY_ACTION if(EGG_GROWN) if(islarva(M)) - to_chat(M, SPAN_XENOWARNING("You nudge the egg, but nothing happens.")) + to_chat(M, SPAN_XENOWARNING("We nudge the egg, but nothing happens.")) return - to_chat(M, SPAN_XENONOTICE("You retrieve the child.")) + to_chat(M, SPAN_XENONOTICE("We retrieve the child.")) Burst(FALSE) return XENO_NONCOMBAT_ACTION @@ -186,7 +201,7 @@ if(EGG_BURST) if(user) visible_message(SPAN_XENOWARNING("[user] slides [F] back into [src]."), \ - SPAN_XENONOTICE("You place the child back in to [src].")) + SPAN_XENONOTICE("We place the child back in to [src].")) user.temp_drop_inv_item(F) else visible_message(SPAN_XENOWARNING("[F] crawls back into [src]!")) //Not sure how, but let's roll with it for now. diff --git a/code/modules/cm_aliens/structures/fruit.dm b/code/modules/cm_aliens/structures/fruit.dm index 09983c930031..f555cac64b8c 100644 --- a/code/modules/cm_aliens/structures/fruit.dm +++ b/code/modules/cm_aliens/structures/fruit.dm @@ -93,22 +93,6 @@ qdel(src) . = ..() -/obj/effect/alien/resin/fruit/proc/delete_fruit() - //Notify and update the xeno count - if(!QDELETED(bound_xeno)) - if(!picked) - to_chat(bound_xeno, SPAN_XENOWARNING("You sense one of your fruit has been destroyed.")) - bound_xeno.current_fruits.Remove(src) - var/datum/action/xeno_action/onclick/plant_resin_fruit/prf = get_xeno_action_by_type(bound_xeno, /datum/action/xeno_action/onclick/plant_resin_fruit) - prf.update_button_icon() - - if(picked) // No need to update the number, since the fruit still exists (just as a different item) - return - var/number_of_fruit = length(bound_xeno.current_fruits) - prf.button.set_maptext(SMALL_FONTS_COLOR(7, number_of_fruit, "#e69d00"), 19, 2) - prf.update_button_icon() - bound_xeno = null - /obj/effect/alien/resin/fruit/proc/reduce_timer(maturity_increase) if (mature || timer_id == TIMER_ID_NULL) return @@ -139,16 +123,20 @@ /obj/effect/alien/resin/fruit/proc/consume_effect(mob/living/carbon/xenomorph/recipient, do_consume = TRUE) if(mature) // Someone might've eaten it before us! recipient.gain_health(75) - to_chat(recipient, SPAN_XENONOTICE("You recover a bit from your injuries.")) + to_chat(recipient, SPAN_XENONOTICE("We recover a bit from our injuries.")) if(do_consume) finish_consume(recipient) /obj/effect/alien/resin/fruit/proc/finish_consume(mob/living/carbon/xenomorph/recipient) playsound(loc, 'sound/voice/alien_drool1.ogg', 50, 1) mature = FALSE + picked = TRUE + recipient.clear_debuffs() // all froots clear debuffs icon_state = consumed_icon_state update_icon() - QDEL_IN(src, 3 SECONDS) + if(!QDELETED(bound_xeno)) + to_chat(bound_xeno, SPAN_XENOHIGHDANGER("One of our picked resin fruits has been consumed.")) + QDEL_IN(src, 1 SECONDS) /obj/effect/alien/resin/fruit/attack_alien(mob/living/carbon/xenomorph/affected_xeno) if(picked) @@ -161,18 +149,18 @@ return cant_consume if(mature) - to_chat(affected_xeno, SPAN_XENOWARNING("You prepare to consume [name].")) + to_chat(affected_xeno, SPAN_XENOWARNING("We prepare to consume [name].")) xeno_noncombat_delay(affected_xeno) if(!do_after(affected_xeno, consume_delay, INTERRUPT_ALL, BUSY_ICON_FRIENDLY)) return XENO_NO_DELAY_ACTION cant_consume = prevent_consume(affected_xeno) // Check again after the delay incase they have eaten another fruit if(cant_consume) - to_chat(affected_xeno, SPAN_XENOWARNING("You can no longer consume [name].")) + to_chat(affected_xeno, SPAN_XENOWARNING("We can no longer consume [name].")) return cant_consume consume_effect(affected_xeno) else - to_chat(affected_xeno, SPAN_XENOWARNING("[name] isn't ripe yet. You need to wait a little longer.")) + to_chat(affected_xeno, SPAN_XENOWARNING("[name] isn't ripe yet. We need to wait a little longer.")) if(affected_xeno.a_intent == INTENT_HARM && isxeno_builder(affected_xeno) || (!affected_xeno.can_not_harm(bound_xeno) && affected_xeno.hivenumber != hivenumber)) affected_xeno.animation_attack_on(src) @@ -185,12 +173,24 @@ /obj/effect/alien/resin/fruit/proc/prevent_consume(mob/living/carbon/xenomorph/xeno) if(!(flags & CAN_CONSUME_AT_FULL_HEALTH) && xeno.health >= xeno.maxHealth) - to_chat(xeno, SPAN_XENODANGER("You are at full health! This would be a waste...")) + to_chat(xeno, SPAN_XENODANGER("We are at full health! This would be a waste...")) return XENO_NO_DELAY_ACTION return FALSE /obj/effect/alien/resin/fruit/Destroy() - delete_fruit() + //Notify and update the xeno count + if(!QDELETED(bound_xeno)) + if(!picked) + to_chat(bound_xeno, SPAN_XENOHIGHDANGER("We sense one of our fruit has been destroyed.")) + bound_xeno.current_fruits.Remove(src) + + var/number_of_fruit = length(bound_xeno.current_fruits) + var/datum/action/xeno_action/onclick/plant_resin_fruit/plant_action = get_xeno_action_by_type(bound_xeno, /datum/action/xeno_action/onclick/plant_resin_fruit) + plant_action.button.set_maptext(SMALL_FONTS_COLOR(7, number_of_fruit, "#e69d00"), 19, 2) + plant_action.update_button_icon() + + bound_xeno = null + return ..() //Greater @@ -212,7 +212,7 @@ return if(recipient && !QDELETED(recipient)) recipient.gain_health(heal_amount) - to_chat(recipient, SPAN_XENONOTICE("You recover a bit from your injuries, and begin to regenerate rapidly.")) + to_chat(recipient, SPAN_XENONOTICE("We recover a bit from our injuries, and begin to regenerate rapidly.")) // Every second, heal him for 15. new /datum/effects/heal_over_time(recipient, regeneration_amount_total, regeneration_ticks, 1) if(do_consume) @@ -239,8 +239,8 @@ /obj/effect/alien/resin/fruit/unstable/consume_effect(mob/living/carbon/xenomorph/recipient, do_consume = TRUE) if(mature && recipient && !QDELETED(recipient)) - recipient.add_xeno_shield(Clamp(overshield_amount, 0, recipient.maxHealth * 0.3), XENO_SHIELD_SOURCE_GARDENER, duration = shield_duration, decay_amount_per_second = shield_decay) - to_chat(recipient, SPAN_XENONOTICE("You feel your defense being bolstered, and begin to regenerate rapidly.")) + recipient.add_xeno_shield(clamp(overshield_amount, 0, recipient.maxHealth * 0.3), XENO_SHIELD_SOURCE_GARDENER, duration = shield_duration, decay_amount_per_second = shield_decay) + to_chat(recipient, SPAN_XENONOTICE("We feel our defense being bolstered, and begin to regenerate rapidly.")) // Every seconds, heal him for 5. new /datum/effects/heal_over_time(recipient, regeneration_amount_total, regeneration_ticks, 1) if(do_consume) @@ -248,7 +248,7 @@ //Spore /obj/effect/alien/resin/fruit/spore - desc = "A fruit that can be eaten to reenergize your cooldowns. It also passively emits weak recovery pheromones." + desc = "A fruit that can be eaten to reenergize cooldowns. It also passively emits weak recovery pheromones." name = XENO_FRUIT_SPORE time_to_mature = 15 SECONDS icon_state = "fruit_spore_immature" @@ -270,7 +270,7 @@ if(E.effect_source == "spore") qdel(E) new /datum/effects/gain_xeno_cooldown_reduction_on_slash(recipient, bound_xeno, max_cooldown_reduction, cooldown_per_slash, 60 SECONDS, "spore") - to_chat(recipient, SPAN_XENONOTICE("You feel a frenzy coming onto you! Your abilities will cool off faster as you slash!")) + to_chat(recipient, SPAN_XENONOTICE("We feel a frenzy coming onto us! Our abilities will cool off faster as we slash!")) if(do_consume) finish_consume(recipient) @@ -278,9 +278,9 @@ ..() START_PROCESSING(SSobj, src) -/obj/effect/alien/resin/fruit/spore/delete_fruit() +/obj/effect/alien/resin/fruit/spore/Destroy() STOP_PROCESSING(SSobj, src) - ..() + return ..() /obj/effect/alien/resin/fruit/spore/process() if(mature) @@ -306,20 +306,20 @@ /obj/effect/alien/resin/fruit/speed/prevent_consume(mob/living/carbon/xenomorph/xeno) if(LAZYISIN(xeno.modifier_sources, XENO_FRUIT_SPEED)) - to_chat(xeno, SPAN_XENOWARNING("You're already under the effects of this fruit, go out and kill!")) + to_chat(xeno, SPAN_XENOWARNING("We are already under the effects of this fruit, go out and kill!")) return XENO_NO_DELAY_ACTION return ..() /obj/effect/alien/resin/fruit/speed/consume_effect(mob/living/carbon/xenomorph/recipient, do_consume = TRUE) if(mature && recipient && !QDELETED(recipient)) - to_chat(recipient, SPAN_XENONOTICE("The [name] invigorates you to move faster!")) - new /datum/effects/xeno_speed(recipient, ttl = speed_duration, set_speed_modifier = speed_buff_amount, set_modifier_source = XENO_FRUIT_SPEED, set_end_message = SPAN_XENONOTICE("You feel the effects of the [name] wane...")) + to_chat(recipient, SPAN_XENONOTICE("The [name] invigorates us to move faster!")) + new /datum/effects/xeno_speed(recipient, ttl = speed_duration, set_speed_modifier = speed_buff_amount, set_modifier_source = XENO_FRUIT_SPEED, set_end_message = SPAN_XENONOTICE("We feel the effects of the [name] wane...")) if(do_consume) finish_consume(recipient) /obj/effect/alien/resin/fruit/plasma name = XENO_FRUIT_PLASMA - desc = "A fruit that can be eaten to boost your plasma generation." + desc = "A fruit that can be eaten to boost plasma generation." time_to_mature = 25 SECONDS icon_state = "fruit_plasma_immature" mature_icon_state = "fruit_plasma" @@ -333,7 +333,7 @@ /obj/effect/alien/resin/fruit/plasma/consume_effect(mob/living/carbon/xenomorph/recipient, do_consume = TRUE) if(mature && recipient && recipient.plasma_max > 0 && !QDELETED(recipient)) - to_chat(recipient, SPAN_XENONOTICE("The [name] boosts your plasma regeneration!")) + to_chat(recipient, SPAN_XENONOTICE("The [name] boosts our plasma regeneration!")) // with the current values (240, 15, 3), this will give the recipient 48 plasma every 3 seconds, for a total of 240 in 15 seconds new /datum/effects/plasma_over_time(recipient, plasma_amount, plasma_time, time_between_plasmas) if(do_consume) @@ -360,7 +360,7 @@ pixel_y = 0 /obj/item/reagent_container/food/snacks/resin_fruit/proc/link_xeno(mob/living/carbon/xenomorph/X) - to_chat(X, SPAN_XENOWARNING("One of your resin fruits has been picked.")) + to_chat(X, SPAN_XENOHIGHDANGER("One of our resin fruits has been picked.")) X.current_fruits.Add(src) bound_xeno = X RegisterSignal(X, COMSIG_PARENT_QDELETING, PROC_REF(handle_xeno_qdel)) @@ -403,7 +403,8 @@ if(cant_consume) user.affected_message(affected_xeno, SPAN_HELPFUL("You fail to [user == affected_xeno ? "eat" : "feed [affected_xeno]"] [current_fruit]."), - SPAN_HELPFUL("[user] fails to feed you [current_fruit].")) + SPAN_HELPFUL("[user] fails to feed you [current_fruit]."), + SPAN_NOTICE("[user] fails to [user == affected_xeno ? "eat" : "feed [affected_xeno]"] [current_fruit].")) return user.affected_message(affected_xeno, SPAN_HELPFUL("You start [user == affected_xeno ? "eating" : "feeding [affected_xeno]"] [current_fruit]."), @@ -417,7 +418,8 @@ if(cant_consume) //Check again after the timer incase they ate another fruit user.affected_message(affected_xeno, SPAN_HELPFUL("You fail to [user == affected_xeno ? "eat" : "feed [affected_xeno]"] [current_fruit]."), - SPAN_HELPFUL("[user] fails to feed you [current_fruit].")) + SPAN_HELPFUL("[user] fails to feed you [current_fruit]."), + SPAN_NOTICE("[user] fails to [user == affected_xeno ? "eat" : "feed [affected_xeno]"] [current_fruit].")) return user.affected_message(affected_xeno, @@ -429,7 +431,7 @@ //Notify the fruit's bound xeno if they exist if(!QDELETED(bound_xeno)) - to_chat(bound_xeno, SPAN_XENOWARNING("One of your picked resin fruits has been consumed.")) + to_chat(bound_xeno, SPAN_XENOHIGHDANGER("One of our picked resin fruits has been consumed.")) qdel(src) return TRUE @@ -449,7 +451,7 @@ /mob/living/carbon/xenomorph/proc/pickup_fruit(obj/effect/alien/resin/fruit/F) if(F.bound_xeno && !can_not_harm(F.bound_xeno)) - to_chat(src, SPAN_XENODANGER("You crush [F].")) + to_chat(src, SPAN_XENODANGER("We crush [F].")) qdel(F) return if(!F.mature) @@ -476,11 +478,11 @@ qdel(F) /mob/living/carbon/xenomorph/larva/pickup_fruit(obj/effect/alien/resin/fruit/F) - to_chat(src, SPAN_XENODANGER("You are too small to pick up \the [F]!")) + to_chat(src, SPAN_XENODANGER("We are too small to pick up \the [F]!")) return /mob/living/carbon/xenomorph/facehugger/pickup_fruit(obj/effect/alien/resin/fruit/F) - to_chat(src, SPAN_XENODANGER("You are too small to pick up \the [F]!")) + to_chat(src, SPAN_XENODANGER("We are too small to pick up \the [F]!")) return /obj/item/reagent_container/food/snacks/resin_fruit/greater diff --git a/code/modules/cm_aliens/structures/special/egg_morpher.dm b/code/modules/cm_aliens/structures/special/egg_morpher.dm index bcd0ecc03be5..c4fb5c0a900c 100644 --- a/code/modules/cm_aliens/structures/special/egg_morpher.dm +++ b/code/modules/cm_aliens/structures/special/egg_morpher.dm @@ -44,6 +44,9 @@ . = ..() if(isxeno(user) || isobserver(user)) . += "It has [stored_huggers] facehuggers within, with [huggers_to_grow] more to grow (reserved: [huggers_reserved])." + if(isobserver(user)) + var/current_hugger_count = linked_hive.get_current_playable_facehugger_count(); + . += "There are currently [SPAN_NOTICE("[current_hugger_count]")] facehuggers in the hive. The hive can support a total of [SPAN_NOTICE("[linked_hive.playable_hugger_limit]")] facehuggers at present." /obj/effect/alien/resin/special/eggmorph/attackby(obj/item/I, mob/user) if(istype(I, /obj/item/grab)) @@ -190,7 +193,8 @@ if(stored_huggers) to_chat(M, SPAN_XENONOTICE("You retrieve a child.")) stored_huggers = max(0, stored_huggers - 1) - new /obj/item/clothing/mask/facehugger(loc, linked_hive.hivenumber) + var/obj/item/clothing/mask/facehugger/hugger = new(loc, linked_hive.hivenumber) + SEND_SIGNAL(M, COMSIG_XENO_TAKE_HUGGER_FROM_MORPHER, hugger) return XENO_NONCOMBAT_ACTION ..() diff --git a/code/modules/cm_aliens/structures/special/hive_cluster.dm b/code/modules/cm_aliens/structures/special/hive_cluster.dm index 6ebcb70493d5..266748a96c80 100644 --- a/code/modules/cm_aliens/structures/special/hive_cluster.dm +++ b/code/modules/cm_aliens/structures/special/hive_cluster.dm @@ -51,7 +51,7 @@ to_chat(xeno, SPAN_XENONOTICE("\The [name] is in good condition, you don't need to repair it.")) return - to_chat(xeno, SPAN_XENONOTICE("You begin adding the plasma to \the [name] to repair it.")) + to_chat(xeno, SPAN_XENONOTICE("We begin adding the plasma to \the [name] to repair it.")) xeno_attack_delay(xeno) if(!do_after(xeno, CLUSTER_REPAIR_TIME, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD, src) || !can_repair) return @@ -77,7 +77,7 @@ continue addtimer(CALLBACK(W, TYPE_PROC_REF(/obj/effect/alien/weeds, weed_expand), node), CLUSTER_WEEDS_REGROWTH_TIME, TIMER_UNIQUE) - to_chat(xeno, SPAN_XENONOTICE("You have successfully repaired \the [name].")) + to_chat(xeno, SPAN_XENONOTICE("We have successfully repaired \the [name].")) playsound(loc, "alien_resin_build", 25) /obj/effect/alien/resin/special/cluster/proc/place_node() diff --git a/code/modules/cm_aliens/structures/special/pylon_core.dm b/code/modules/cm_aliens/structures/special/pylon_core.dm index a7cb15a31ce7..71211d67e23c 100644 --- a/code/modules/cm_aliens/structures/special/pylon_core.dm +++ b/code/modules/cm_aliens/structures/special/pylon_core.dm @@ -32,7 +32,7 @@ . = ..() node = place_node() - for(var/turf/A in range(round(cover_range*PYLON_COVERAGE_MULT), loc)) + for(var/turf/A in range(floor(cover_range*PYLON_COVERAGE_MULT), loc)) LAZYADD(A.linked_pylons, src) linked_turfs += A @@ -62,12 +62,15 @@ /obj/effect/alien/resin/special/pylon/get_examine_text(mob/user) . = ..() + if(!isobserver(user) && !isxeno(user)) + return + var/lesser_count = 0 for(var/mob/living/carbon/xenomorph/lesser_drone/lesser in linked_hive.totalXenos) lesser_count++ - . += "Currently holding [SPAN_NOTICE("[Floor(lesser_drone_spawns)]")]/[SPAN_NOTICE("[lesser_drone_spawn_limit]")] lesser drones." - . += "There are currently [SPAN_NOTICE("[lesser_count]")] lesser drones in the hive. The hive can support [SPAN_NOTICE("[linked_hive.lesser_drone_limit]")] lesser drones." + . += "Currently holding [SPAN_NOTICE("[floor(lesser_drone_spawns)]")]/[SPAN_NOTICE("[lesser_drone_spawn_limit]")] lesser drones." + . += "There are currently [SPAN_NOTICE("[lesser_count]")] lesser drones in the hive. The hive can support a total of [SPAN_NOTICE("[linked_hive.lesser_drone_limit]")] lesser drones at present." /obj/effect/alien/resin/special/pylon/attack_ghost(mob/dead/observer/user) . = ..() @@ -83,7 +86,7 @@ to_chat(xeno, SPAN_XENONOTICE("\The [name] is in good condition, you don't need to repair it.")) return - to_chat(xeno, SPAN_XENONOTICE("You begin adding the plasma to \the [name] to repair it.")) + to_chat(xeno, SPAN_XENONOTICE("We begin adding the plasma to \the [name] to repair it.")) xeno_attack_delay(xeno) if(!do_after(xeno, PYLON_REPAIR_TIME, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD, src) || !can_repair) return @@ -110,7 +113,7 @@ continue addtimer(CALLBACK(W, TYPE_PROC_REF(/obj/effect/alien/weeds, weed_expand), N), PYLON_WEEDS_REGROWTH_TIME, TIMER_UNIQUE) - to_chat(xeno, SPAN_XENONOTICE("You have successfully repaired \the [name].")) + to_chat(xeno, SPAN_XENONOTICE("We have successfully repaired \the [name].")) playsound(loc, "alien_resin_build", 25) /obj/effect/alien/resin/special/pylon/proc/place_node() @@ -159,7 +162,7 @@ xeno_announcement(SPAN_XENOANNOUNCE("We have lost our control of the tall's communication relay at [get_area(src)]."), hivenumber, XENO_GENERAL_ANNOUNCE) else xeno_announcement(SPAN_XENOANNOUNCE("Another hive has lost control of the tall's communication relay at [get_area(src)]."), hivenumber, XENO_GENERAL_ANNOUNCE) - + linked_hive.hive_ui.update_pylon_status() return ..() /// Checks if all comms towers are connected and then starts end game content on all pylons if they are @@ -172,16 +175,14 @@ continue if(checked_hive == linked_hive) - xeno_announcement(SPAN_XENOANNOUNCE("We have harnessed the tall's communication relay at [get_area(src)].\n\nWe will now grow more of our number from this pylon. Hold it!"), hivenumber, XENO_GENERAL_ANNOUNCE) + xeno_announcement(SPAN_XENOANNOUNCE("We have harnessed the tall's communication relay at [get_area(src)].\n\nWe will now grow our numbers from this pylon. Hold it!"), hivenumber, XENO_GENERAL_ANNOUNCE) else xeno_announcement(SPAN_XENOANNOUNCE("Another hive has harnessed the tall's communication relay at [get_area(src)].[linked_hive.faction_is_ally(checked_hive.name) ? "" : " Stop them!"]"), hivenumber, XENO_GENERAL_ANNOUNCE) activated = TRUE + linked_hive.check_if_hit_larva_from_pylon_limit() addtimer(CALLBACK(src, PROC_REF(give_larva)), XENO_PYLON_ACTIVATION_COOLDOWN, TIMER_UNIQUE|TIMER_OVERRIDE|TIMER_LOOP|TIMER_DELETE_ME) -#define ENDGAME_LARVA_CAP_MULTIPLIER 0.4 -#define LARVA_ADDITION_MULTIPLIER 0.10 - /// Looped proc via timer to give larva after time /obj/effect/alien/resin/special/pylon/endgame/proc/give_larva() if(!activated) @@ -190,24 +191,13 @@ if(!linked_hive.hive_location || !linked_hive.living_xeno_queen) return - var/list/hive_xenos = linked_hive.totalXenos - - for(var/mob/living/carbon/xenomorph/xeno in hive_xenos) - if(!xeno.counts_for_slots) - hive_xenos -= xeno - - var/real_total_xeno_count = length(hive_xenos) + linked_hive.stored_larva - - if(real_total_xeno_count > (length(GLOB.alive_human_list) * ENDGAME_LARVA_CAP_MULTIPLIER)) + if(linked_hive.check_if_hit_larva_from_pylon_limit()) return - linked_hive.partial_larva += real_total_xeno_count * LARVA_ADDITION_MULTIPLIER + linked_hive.partial_larva += (linked_hive.get_real_total_xeno_count() + linked_hive.stored_larva) * LARVA_ADDITION_MULTIPLIER linked_hive.convert_partial_larva_to_full_larva() linked_hive.hive_ui.update_burrowed_larva() -#undef ENDGAME_LARVA_CAP_MULTIPLIER -#undef LARVA_ADDITION_MULTIPLIER - //Hive Core - Generates strong weeds, supports other buildings /obj/effect/alien/resin/special/pylon/core name = XENO_STRUCTURE_CORE @@ -291,7 +281,7 @@ surge_cooldown = surge_cooldown - surge_incremental_reduction //ramps up over time if(linked_hive.hijack_burrowed_left < 1) linked_hive.hijack_burrowed_surge = FALSE - xeno_message(SPAN_XENOANNOUNCE("The hive's power wanes. You will no longer gain pooled larva over time."), 3, linked_hive.hivenumber) + xeno_message(SPAN_XENOANNOUNCE("The hive's power wanes. We will no longer gain pooled larva over time."), 3, linked_hive.hivenumber) // Hive core can repair itself over time if(health < maxhealth && last_healed <= world.time) @@ -311,7 +301,7 @@ return FALSE new_xeno.visible_message(SPAN_XENODANGER("A larva suddenly emerges from [src]!"), - SPAN_XENODANGER("You emerge from [src] and awaken from your slumber. For the Hive!")) + SPAN_XENODANGER("We emerge from [src] and awaken from our slumber. For the Hive!")) msg_admin_niche("[key_name(new_xeno)] emerged from \a [src]. [ADMIN_JMP(src)]") playsound(new_xeno, 'sound/effects/xeno_newlarva.ogg', 50, 1) if(!SSticker.mode.transfer_xeno(xeno_candidate, new_xeno)) @@ -374,18 +364,18 @@ /obj/effect/alien/resin/special/pylon/core/attack_alien(mob/living/carbon/xenomorph/M) if(M.a_intent != INTENT_HELP && M.can_destroy_special() && M.hivenumber == linked_hive.hivenumber) if(!hardcore && last_attempt + 6 SECONDS > world.time) - to_chat(M,SPAN_WARNING("You have attempted to destroy \the [src] too recently! Wait a bit!")) // no spammy + to_chat(M,SPAN_WARNING("We have attempted to destroy \the [src] too recently! Wait a bit!")) // no spammy return XENO_NO_DELAY_ACTION else if(warn && world.time > XENOMORPH_PRE_SETUP_CUTOFF) - if((alert(M, "Are you sure that you want to destroy the hive core? (There will be a 5 minute cooldown before you can build another one.)", , "Yes", "No") != "Yes")) + if((alert(M, "Are we sure that you want to destroy the hive core? (There will be a 5 minute cooldown before you can build another one.)", , "Yes", "No") != "Yes")) return XENO_NO_DELAY_ACTION INVOKE_ASYNC(src, PROC_REF(startDestroying),M) return XENO_NO_DELAY_ACTION else if(world.time < XENOMORPH_PRE_SETUP_CUTOFF) - if((alert(M, "Are you sure that you want to remove the hive core? No cooldown will be applied.", , "Yes", "No") != "Yes")) + if((alert(M, "Are we sure that we want to remove the hive core? No cooldown will be applied.", , "Yes", "No") != "Yes")) return XENO_NO_DELAY_ACTION INVOKE_ASYNC(src, PROC_REF(startDestroying),M) @@ -413,16 +403,15 @@ linked_hive.hivecore_cooldown = TRUE INVOKE_ASYNC(src, PROC_REF(cooldownFinish),linked_hive) // start cooldown if(hardcore) - xeno_message(SPAN_XENOANNOUNCE("You can no longer gain new sisters or another Queen. Additionally, you are unable to heal if your Queen is dead"), 2, linked_hive.hivenumber) + xeno_message(SPAN_XENOANNOUNCE("We can no longer gain new sisters or another Queen. Additionally, we are unable to heal if our Queen is dead"), 2, linked_hive.hivenumber) linked_hive.hardcore = TRUE linked_hive.allow_queen_evolve = FALSE linked_hive.hive_structures_limit[XENO_STRUCTURE_CORE] = 0 - linked_hive.hive_structures_limit[XENO_STRUCTURE_POOL] = 0 xeno_announcement("\The [linked_hive.name] has lost their hive core!", "everything", HIGHER_FORCE_ANNOUNCE) if(linked_hive.hijack_burrowed_surge) - visible_message(SPAN_XENODANGER("You hear something resembling a scream from [src] as it's destroyed!")) - xeno_message(SPAN_XENOANNOUNCE("Psychic pain storms throughout the hive as [src] is destroyed! You will no longer gain burrowed larva over time."), 3, linked_hive.hivenumber) + visible_message(SPAN_XENODANGER("We hear something resembling a scream from [src] as it's destroyed!")) + xeno_message(SPAN_XENOANNOUNCE("Psychic pain storms throughout the hive as [src] is destroyed! We will no longer gain burrowed larva over time."), 3, linked_hive.hivenumber) linked_hive.hijack_burrowed_surge = FALSE SSminimaps.remove_marker(src) diff --git a/code/modules/cm_aliens/structures/special/recovery_node.dm b/code/modules/cm_aliens/structures/special/recovery_node.dm index a0d01bab89dc..a2af2c41acc1 100644 --- a/code/modules/cm_aliens/structures/special/recovery_node.dm +++ b/code/modules/cm_aliens/structures/special/recovery_node.dm @@ -5,7 +5,7 @@ desc = "A warm, soothing light source that pulsates with a faint hum." icon_state = "recovery" health = 400 - var/heal_amount = 10 + var/heal_amount = 20 var/heal_cooldown = 5 SECONDS var/last_healed @@ -23,7 +23,7 @@ continue heal_candidates += X last_healed = world.time - if(!heal_candidates.len) + if(!length(heal_candidates)) return var/mob/living/carbon/xenomorph/picked_candidate = pick(heal_candidates) picked_candidate.visible_message(SPAN_HELPFUL("\The [picked_candidate] glows as a warm aura envelops them."), \ diff --git a/code/modules/cm_aliens/structures/special_structure.dm b/code/modules/cm_aliens/structures/special_structure.dm index 8378d93e1ac9..83ca09547185 100644 --- a/code/modules/cm_aliens/structures/special_structure.dm +++ b/code/modules/cm_aliens/structures/special_structure.dm @@ -1,26 +1,6 @@ /* * Special Structures */ - -/proc/get_xeno_structure_desc(name) - var/message - switch(name) - if(XENO_STRUCTURE_CORE) - message = "[XENO_STRUCTURE_CORE] - Heart of the hive, grows hive weeds (which are necessary for other structures), stores resources and protects the hive from skyfire." - if(XENO_STRUCTURE_PYLON) - message = "[XENO_STRUCTURE_PYLON] - Remote section of the hive, grows hive weeds (which are necessary for other structures), stores resources and protects sisters from skyfire." - if(XENO_STRUCTURE_POOL) - message = "[XENO_STRUCTURE_POOL] - Respawns xenomorphs that fall in battle." - if(XENO_STRUCTURE_EGGMORPH) - message = "[XENO_STRUCTURE_EGGMORPH] - Processes hatched hosts into new eggs." - if(XENO_STRUCTURE_EVOPOD) - message = "[XENO_STRUCTURE_EVOPOD] - Grants an additional 0.2 evolution per tick for all sisters on weeds." - if(XENO_STRUCTURE_RECOVERY) - message = "[XENO_STRUCTURE_RECOVERY] - Hastily recovers the strength of sisters resting around it." - if(XENO_STRUCTURE_NEST) - message = "[XENO_STRUCTURE_NEST] - Strong enough to secure a headhunter for indeterminate durations." - return message - /obj/effect/alien/resin/special name = "Special Resin Structure" icon = 'icons/mob/xenos/structures64x64.dmi' diff --git a/code/modules/cm_aliens/structures/trap.dm b/code/modules/cm_aliens/structures/trap.dm index d885e4d14a91..297dd5ff2e0f 100644 --- a/code/modules/cm_aliens/structures/trap.dm +++ b/code/modules/cm_aliens/structures/trap.dm @@ -4,7 +4,7 @@ /obj/effect/alien/resin/trap desc = "It looks like a hiding hole." - name = "resin hole" + name = "resin trap" icon_state = "trap0" density = FALSE opacity = FALSE @@ -12,7 +12,7 @@ health = 5 layer = RESIN_STRUCTURE_LAYER var/list/tripwires = list() - var/hivenumber = XENO_HIVE_NORMAL //Hivenumber of the xeno that planted it OR the last Facehugger that was placed (essentially taking over the hole) + var/hivenumber = XENO_HIVE_NORMAL //Hivenumber of the xeno that planted it OR the last Facehugger that was placed (essentially taking over the trap) var/trap_type = RESIN_TRAP_EMPTY var/armed = 0 var/created_by // ckey @@ -145,7 +145,7 @@ clear_tripwires() for(var/mob/living/carbon/xenomorph/X in GLOB.living_xeno_list) if(X.hivenumber == hivenumber) - to_chat(X, SPAN_XENOMINORWARNING("You sense one of your Hive's facehugger traps at [A.name] has been burnt!")) + to_chat(X, SPAN_XENOMINORWARNING("We sense one of our Hive's facehugger traps at [A.name] has been burnt!")) /obj/effect/alien/resin/trap/proc/get_spray_type(level) switch(level) @@ -199,9 +199,9 @@ for(var/mob/living/carbon/xenomorph/X in GLOB.living_xeno_list) if(X.hivenumber == hivenumber) if(destroyed) - to_chat(X, SPAN_XENOMINORWARNING("You sense one of your Hive's [trap_type_name] traps at [A.name] has been destroyed!")) + to_chat(X, SPAN_XENOMINORWARNING("We sense one of our Hive's [trap_type_name] traps at [A.name] has been destroyed!")) else - to_chat(X, SPAN_XENOMINORWARNING("You sense one of your Hive's [trap_type_name] traps at [A.name] has been triggered!")) + to_chat(X, SPAN_XENOMINORWARNING("We sense one of our Hive's [trap_type_name] traps at [A.name] has been triggered!")) /obj/effect/alien/resin/trap/proc/clear_tripwires() QDEL_NULL_LIST(tripwires) @@ -247,7 +247,7 @@ to_chat(B, SPAN_XENOWARNING("You must produce more plasma before doing this.")) return XENO_NO_DELAY_ACTION - to_chat(X, SPAN_XENONOTICE("You begin charging the resin hole with acid gas.")) + to_chat(X, SPAN_XENONOTICE("You begin charging the resin trap with acid gas.")) xeno_attack_delay(X) if(!do_after(B, 30, INTERRUPT_NO_NEEDHAND, BUSY_ICON_HOSTILE, src)) return XENO_NO_DELAY_ACTION @@ -268,8 +268,8 @@ playsound(loc, 'sound/effects/refill.ogg', 25, 1) set_state(RESIN_TRAP_GAS) cause_data = create_cause_data("resin gas trap", B) - B.visible_message(SPAN_XENOWARNING("\The [B] pressurises the resin hole with acid gas!"), \ - SPAN_XENOWARNING("You pressurise the resin hole with acid gas!"), null, 5) + B.visible_message(SPAN_XENOWARNING("\The [B] pressurises the resin trap with acid gas!"), \ + SPAN_XENOWARNING("You pressurise the resin trap with acid gas!"), null, 5) else //Non-boiler acid types var/acid_cost = 70 @@ -282,7 +282,7 @@ to_chat(X, SPAN_XENOWARNING("You must produce more plasma before doing this.")) return XENO_NO_DELAY_ACTION - to_chat(X, SPAN_XENONOTICE("You begin charging the resin hole with acid.")) + to_chat(X, SPAN_XENONOTICE("You begin charging the resin trap with acid.")) xeno_attack_delay(X) if(!do_after(X, 3 SECONDS, INTERRUPT_NO_NEEDHAND, BUSY_ICON_HOSTILE, src)) return XENO_NO_DELAY_ACTION @@ -300,8 +300,8 @@ else set_state(RESIN_TRAP_ACID1 + X.acid_level - 1) - X.visible_message(SPAN_XENOWARNING("\The [X] pressurises the resin hole with acid!"), \ - SPAN_XENOWARNING("You pressurise the resin hole with acid!"), null, 5) + X.visible_message(SPAN_XENOWARNING("\The [X] pressurises the resin trap with acid!"), \ + SPAN_XENOWARNING("You pressurise the resin trap with acid!"), null, 5) return XENO_NO_DELAY_ACTION @@ -310,15 +310,15 @@ for(var/turf/T in orange(1,loc)) if(T.density) continue - var/obj/effect/hole_tripwire/HT = new /obj/effect/hole_tripwire(T) - HT.linked_trap = src - tripwires += HT + var/obj/effect/trap_tripwire/new_tripwire = new /obj/effect/trap_tripwire(T) + new_tripwire.linked_trap = src + tripwires += new_tripwire /obj/effect/alien/resin/trap/attackby(obj/item/W, mob/user) if(!(istype(W, /obj/item/clothing/mask/facehugger) && isxeno(user))) return ..() if(trap_type != RESIN_TRAP_EMPTY) - to_chat(user, SPAN_XENOWARNING("You can't put a hugger in this hole!")) + to_chat(user, SPAN_XENOWARNING("You can't put a hugger in this trap!")) return var/obj/item/clothing/mask/facehugger/FH = W if(FH.stat == DEAD) @@ -329,7 +329,7 @@ return if (X.hivenumber != hivenumber) - to_chat(user, SPAN_XENOWARNING("This resin hole doesn't belong to your hive!")) + to_chat(user, SPAN_XENOWARNING("This resin trap doesn't belong to your hive!")) return if (FH.hivenumber != hivenumber) @@ -343,31 +343,34 @@ to_chat(user, SPAN_XENONOTICE("You place a facehugger in [src].")) qdel(FH) +/obj/effect/alien/resin/trap/healthcheck() + if(trap_type != RESIN_TRAP_EMPTY && loc) + trigger_trap() + ..() + /obj/effect/alien/resin/trap/Crossed(atom/A) if(ismob(A) || isVehicleMultitile(A)) HasProximity(A) /obj/effect/alien/resin/trap/Destroy() - if(trap_type != RESIN_TRAP_EMPTY && loc) - trigger_trap() QDEL_NULL_LIST(tripwires) . = ..() -/obj/effect/hole_tripwire - name = "hole tripwire" +/obj/effect/trap_tripwire + name = "trap tripwire" anchored = TRUE mouse_opacity = MOUSE_OPACITY_TRANSPARENT invisibility = 101 unacidable = TRUE //You never know var/obj/effect/alien/resin/trap/linked_trap -/obj/effect/hole_tripwire/Destroy() +/obj/effect/trap_tripwire/Destroy() if(linked_trap) linked_trap.tripwires -= src linked_trap = null . = ..() -/obj/effect/hole_tripwire/Crossed(atom/A) +/obj/effect/trap_tripwire/Crossed(atom/A) if(!linked_trap) qdel(src) return diff --git a/code/modules/cm_aliens/structures/tunnel.dm b/code/modules/cm_aliens/structures/tunnel.dm index 8c467be695b4..c7c25bd7ff0e 100644 --- a/code/modules/cm_aliens/structures/tunnel.dm +++ b/code/modules/cm_aliens/structures/tunnel.dm @@ -48,8 +48,22 @@ if(resin_trap) qdel(resin_trap) + if(hivenumber == XENO_HIVE_NORMAL) + RegisterSignal(SSdcs, COMSIG_GLOB_GROUNDSIDE_FORSAKEN_HANDLING, PROC_REF(forsaken_handling)) + SSminimaps.add_marker(src, z, get_minimap_flag_for_faction(hivenumber), "xenotunnel") +/obj/structure/tunnel/proc/forsaken_handling() + SIGNAL_HANDLER + if(is_ground_level(z)) + hive.tunnels -= src + hivenumber = XENO_HIVE_FORSAKEN + set_hive_data(src, XENO_HIVE_FORSAKEN) + hive = GLOB.hive_datum[XENO_HIVE_FORSAKEN] + hive.tunnels += src + + UnregisterSignal(SSdcs, COMSIG_GLOB_GROUNDSIDE_FORSAKEN_HANDLING) + /obj/structure/tunnel/Destroy() if(hive) hive.tunnels -= src @@ -115,7 +129,7 @@ if(isxeno(usr) && isfriendly(usr) && (usr.loc == src)) pick_tunnel(usr) else - to_chat(usr, "You stare into the dark abyss" + "[contents.len ? ", making out what appears to be two little lights... almost like something is watching." : "."]") + to_chat(usr, "You stare into the dark abyss" + "[length(contents) ? ", making out what appears to be two little lights... almost like something is watching." : "."]") /obj/structure/tunnel/verb/exit_tunnel_verb() set name = "Exit Tunnel" @@ -130,15 +144,17 @@ if(!istype(X) || X.is_mob_incapacitated(TRUE) || !isfriendly(X) || !hive) return FALSE if(X in contents) - var/list/tunnels = list() - for(var/obj/structure/tunnel/T in hive.tunnels) + var/list/input_tunnels = list() + + var/list/sorted_tunnels = sort_list_dist(hive.tunnels, get_turf(X)) + for(var/obj/structure/tunnel/T in sorted_tunnels) if(T == src) continue if(!is_ground_level(T.z)) continue - tunnels += list(T.tunnel_desc = T) - var/pick = tgui_input_list(usr, "Which tunnel would you like to move to?", "Tunnel", tunnels, theme="hive_status") + input_tunnels += list(T.tunnel_desc = T) + var/pick = tgui_input_list(usr, "Which tunnel would you like to move to?", "Tunnel", input_tunnels, theme="hive_status") if(!pick) return FALSE @@ -147,7 +163,7 @@ //No teleporting! return FALSE - to_chat(X, SPAN_XENONOTICE("You begin moving to your destination.")) + to_chat(X, SPAN_XENONOTICE("We begin moving to our destination.")) var/tunnel_time = TUNNEL_MOVEMENT_XENO_DELAY @@ -159,17 +175,17 @@ if(!do_after(X, tunnel_time, INTERRUPT_NO_NEEDHAND, 0)) return FALSE - var/obj/structure/tunnel/T = tunnels[pick] + var/obj/structure/tunnel/T = input_tunnels[pick] - if(T.contents.len > 2)// max 3 xenos in a tunnel + if(length(T.contents) > 2)// max 3 xenos in a tunnel to_chat(X, SPAN_WARNING("The tunnel is too crowded, wait for others to exit!")) return FALSE if(!T.loc) - to_chat(X, SPAN_WARNING("The tunnel has collapsed before you reached its exit!")) + to_chat(X, SPAN_WARNING("The tunnel has collapsed before we reached its exit!")) return FALSE X.forceMove(T) - to_chat(X, SPAN_XENONOTICE("You have reached your destination.")) + to_chat(X, SPAN_XENONOTICE("We have reached our destination.")) return TRUE /obj/structure/tunnel/proc/exit_tunnel(mob/living/carbon/xenomorph/X) @@ -177,7 +193,7 @@ if(X in contents) X.forceMove(loc) visible_message(SPAN_XENONOTICE("\The [X] pops out of the tunnel!"), \ - SPAN_XENONOTICE("You pop out through the other side!")) + SPAN_XENONOTICE("We pop out through the other side!")) return TRUE //Used for controling tunnel exiting and returning @@ -200,15 +216,15 @@ if(!isfriendly(M)) if(M.mob_size < MOB_SIZE_BIG) - to_chat(M, SPAN_XENOWARNING("You aren't large enough to collapse this tunnel!")) + to_chat(M, SPAN_XENOWARNING("We aren't large enough to collapse this tunnel!")) return XENO_NO_DELAY_ACTION M.visible_message(SPAN_XENODANGER("[M] begins to fill [src] with dirt."),\ - SPAN_XENONOTICE("You begin to fill [src] with dirt using your massive claws."), max_distance = 3) + SPAN_XENONOTICE("We begin to fill [src] with dirt using our massive claws."), max_distance = 3) xeno_attack_delay(M) if(!do_after(M, 10 SECONDS, INTERRUPT_ALL, BUSY_ICON_HOSTILE, src, INTERRUPT_ALL_OUT_OF_RANGE, max_dist = 1)) - to_chat(M, SPAN_XENOWARNING("You decide not to cave the tunnel in.")) + to_chat(M, SPAN_XENOWARNING("We decide not to cave the tunnel in.")) return XENO_NO_DELAY_ACTION src.visible_message(SPAN_XENODANGER("[src] caves in!"), max_distance = 3) @@ -217,14 +233,14 @@ return XENO_NO_DELAY_ACTION if(M.anchored) - to_chat(M, SPAN_XENOWARNING("You can't climb through a tunnel while immobile.")) + to_chat(M, SPAN_XENOWARNING("We can't climb through a tunnel while immobile.")) return XENO_NO_DELAY_ACTION - if(!hive.tunnels.len) - to_chat(M, SPAN_WARNING("\The [src] doesn't seem to lead anywhere.")) + if(!length(hive.tunnels)) + to_chat(M, SPAN_WARNING("[src] doesn't seem to lead anywhere.")) return XENO_NO_DELAY_ACTION - if(contents.len > 2) + if(length(contents) > 2) to_chat(M, SPAN_WARNING("The tunnel is too crowded, wait for others to exit!")) return XENO_NO_DELAY_ACTION @@ -236,23 +252,23 @@ tunnel_time = TUNNEL_ENTER_LARVA_DELAY if(M.mob_size >= MOB_SIZE_BIG) - M.visible_message(SPAN_XENONOTICE("[M] begins heaving their huge bulk down into \the [src]."), \ - SPAN_XENONOTICE("You begin heaving your monstrous bulk into \the [src].")) + M.visible_message(SPAN_XENONOTICE("[M] begins heaving their huge bulk down into [src]."), + SPAN_XENONOTICE("We begin heaving our monstrous bulk into [src] ([tunnel_desc]).")) else - M.visible_message(SPAN_XENONOTICE("\The [M] begins crawling down into \the [src]."), \ - SPAN_XENONOTICE("You begin crawling down into \the [src].")) + M.visible_message(SPAN_XENONOTICE("[M] begins crawling down into [src]."), + SPAN_XENONOTICE("We begin crawling down into [src] ([tunnel_desc]).")) xeno_attack_delay(M) if(!do_after(M, tunnel_time, INTERRUPT_NO_NEEDHAND, BUSY_ICON_GENERIC)) - to_chat(M, SPAN_WARNING("Your crawling was interrupted!")) + to_chat(M, SPAN_WARNING("Our crawling was interrupted!")) return XENO_NO_DELAY_ACTION - if(hive.tunnels.len) //Make sure other tunnels exist + if(length(hive.tunnels)) //Make sure other tunnels exist M.forceMove(src) //become one with the tunnel to_chat(M, SPAN_HIGHDANGER("Alt + Click the tunnel to exit, Ctrl + Click to choose a destination.")) pick_tunnel(M) else - to_chat(M, SPAN_WARNING("\The [src] ended unexpectedly, so you return back up.")) + to_chat(M, SPAN_WARNING("[src] ended unexpectedly, so we return back up.")) return XENO_NO_DELAY_ACTION /obj/structure/tunnel/maint_tunnel diff --git a/code/modules/cm_aliens/weeds.dm b/code/modules/cm_aliens/weeds.dm index 4be1ce63ac25..2206bc528e82 100644 --- a/code/modules/cm_aliens/weeds.dm +++ b/code/modules/cm_aliens/weeds.dm @@ -58,9 +58,9 @@ if(spread_on_semiweedable && weed_strength < WEED_LEVEL_HIVE) if(color) var/list/RGB = ReadRGB(color) - RGB[1] = Clamp(RGB[1] + 35, 0, 255) - RGB[2] = Clamp(RGB[2] + 35, 0, 255) - RGB[3] = Clamp(RGB[3] + 35, 0, 255) + RGB[1] = clamp(RGB[1] + 35, 0, 255) + RGB[2] = clamp(RGB[2] + 35, 0, 255) + RGB[3] = clamp(RGB[3] + 35, 0, 255) color = rgb(RGB[1], RGB[2], RGB[3]) else color = "#a1a1a1" @@ -123,7 +123,7 @@ update_icon() /obj/effect/alien/weeds/node/weak - name = "weak resin node" + name = "weak weed node" health = WEED_HEALTH_STANDARD alpha = 127 @@ -186,7 +186,7 @@ SEND_SIGNAL(crossing_mob, COMSIG_MOB_WEED_SLOWDOWN, slowdata, src) var/final_slowdown = slowdata["movement_slowdown"] - crossing_mob.next_move_slowdown += POSITIVE(final_slowdown) + crossing_mob.next_move_slowdown = max(crossing_mob.next_move_slowdown, POSITIVE(final_slowdown)) // Uh oh, we might be dying! // I know this is bad proc naming but it was too good to pass on and it's only used in this file anyways @@ -377,7 +377,7 @@ else to_chat(user, SPAN_WARNING("You cut \the [src] away with \the [attacking_item].")) - var/damage = attacking_item.force / 3 + var/damage = (attacking_item.force * attacking_item.demolition_mod) / 3 playsound(loc, "alien_resin_break", 25) if(iswelder(attacking_item)) @@ -469,7 +469,7 @@ /obj/effect/alien/weeds/node - name = "resin node" + name = "weed node" desc = "A weird, pulsating node." icon_state = "weednode" // Weed nodes start out with normal weed health and become stronger once they've stopped spreading diff --git a/code/modules/cm_marines/Donator_Items.dm b/code/modules/cm_marines/Donator_Items.dm index 6d2f46490d13..e534997ddd42 100644 --- a/code/modules/cm_marines/Donator_Items.dm +++ b/code/modules/cm_marines/Donator_Items.dm @@ -421,12 +421,12 @@ item_state = "merc_armor" /obj/item/clothing/suit/storage/marine/fluff/steelpoint //CKEY=steelpoint (UNIQUE) - name = "M4X Armor" - desc = "Armor to the M4X!!!! DONOR ITEM" + name = "M4-X Armor" + desc = "A next generation body armor system intended for Marines fighting against xenomorphs, the system is coated in a unique acid resistant polymer coating, as well as enhanced ballistics protection. This prototype version lacks those two features. DONOR ITEM" + flags_atom = FPRINT|CONDUCT|NO_NAME_OVERRIDE icon_state = "steelpoint_armor" item_state = "steelpoint_armor" - /obj/item/clothing/suit/storage/marine/fluff/valentine //CKEY=markvalentine name = "Shocky's Armor" desc = "Shockingly good armor. DONOR ITEM" @@ -587,7 +587,7 @@ /obj/item/clothing/head/helmet/marine/fluff/santahat //CKEY=tophatpenguin name = "Santa's hat" desc = "Ho ho ho. Merrry X-mas!" - icon_state = "santahat" + icon_state = "santa_hat_red" flags_inventory = BLOCKSHARPOBJ flags_inv_hide = HIDEEARS|HIDEALLHAIR @@ -842,10 +842,11 @@ flags_inv_hide = HIDEEARS|HIDEMASK|HIDEEYES|HIDEALLHAIR /obj/item/clothing/head/helmet/marine/fluff/steelpoint //CKEY=steelpoint (UNIQUE) - name = "M4X Helmet" - desc = "Helmets to the M4X!!! DONOR ITEM" + name = "M4-X Helmet" + desc = "A next generation combat helmet intended to be paired with the M4-X armor. The full faced helmet provides complete light ballistic-resistant protection alongside enchanced acid resistance. This prototype version lacks those features. DONOR ITEM" icon_state = "steelpoint_helmet" item_state = "steelpoint_helmet" + flags_atom = FPRINT|CONDUCT|NO_NAME_OVERRIDE flags_inventory = BLOCKSHARPOBJ flags_inv_hide = HIDEEARS|HIDEMASK|HIDEEYES|HIDEALLHAIR @@ -971,8 +972,11 @@ icon_state = null item_state = null min_cold_protection_temperature = ICE_PLANET_MIN_COLD_PROT - //DON'T GRAB STUFF BETWEEN THIS LINE - //AND THIS LINE + + item_icons = list( + WEAR_BODY = 'icons/mob/humans/onmob/uniform_1.dmi', + ) + //END UNIFORM TEMPLATE /obj/item/clothing/under/marine/fluff/marinemedic //UNUSED @@ -1148,8 +1152,8 @@ flags_jumpsuit = FALSE /obj/item/clothing/under/marine/fluff/steelpoint //CKEY=steelpoint (UNIQUE) - name = "M4X Jumpsuit" - desc = "Jumpsuit to the M4X!!! DONOR ITEM" + name = "M4-X Jumpsuit" + desc = "Jumpsuit issued alongside the M4-X armor. Considered outdated compared to the more modern armor system. DONOR ITEM" icon_state = "steelpoint_jumpsuit" worn_state = "steelpoint_jumpsuit" flags_jumpsuit = FALSE @@ -1309,8 +1313,8 @@ /obj/item/clothing/shoes/marine/fluff/vintage //CKEY=vintagepalmer name = "Vintage Sandals" desc = "Vintage Sandals, suitable for only the highest class of hipster. DONOR ITEM" - icon_state = "wizard" - item_state = "wizard" + icon_state = "sandals" + item_state = "sandals" /obj/item/clothing/shoes/marine/fluff/feodrich //CKEY=feodrich (UNIQUE) name = "Doom Shoes" @@ -1319,10 +1323,10 @@ item_state = "doom_boots" /obj/item/clothing/shoes/marine/fluff/steelpoint //CKEY=steelpoint (UNIQUE) - name = "M4X Boot" - desc = "Boots to the M4X. DONOR ITEM" - icon_state = "jackboots" - item_state = "jackboots" + name = "M4-X Boot" + desc = "Standard issue boots issued alongside M4-X armor, features a special coating of acid-resistant layering to allow its operator to move through acid-dretched environments safely. This prototype version lacks that feature. DONOR ITEM" + icon_state = "marine" + item_state = "marine" //GENERIC GLASSES, GLOVES, AND MISC //////////////////// diff --git a/code/modules/cm_marines/NonLethalRestraints.dm b/code/modules/cm_marines/NonLethalRestraints.dm index 3b2439a22a82..d3ed38269144 100644 --- a/code/modules/cm_marines/NonLethalRestraints.dm +++ b/code/modules/cm_marines/NonLethalRestraints.dm @@ -31,11 +31,7 @@ to_chat(user, SPAN_WARNING("\The [src] is out of charge.")) add_fingerprint(user) -/obj/item/weapon/stunprod/attack(mob/M, mob/user) - if(isrobot(M)) - ..() - return - +/obj/item/weapon/stunprod/attack(mob/living/M, mob/user) if(user.a_intent == INTENT_HARM) return else if(!status) @@ -43,7 +39,8 @@ return if(status) - M.apply_effect(6, WEAKEN) + M.KnockDown(6) + M.Stun(6) charges -= 2 M.visible_message(SPAN_DANGER("[M] has been prodded with [src] by [user]!")) diff --git a/code/modules/cm_marines/altitude_control_console.dm b/code/modules/cm_marines/altitude_control_console.dm index a8281806be10..7e0a8c395152 100644 --- a/code/modules/cm_marines/altitude_control_console.dm +++ b/code/modules/cm_marines/altitude_control_console.dm @@ -63,7 +63,7 @@ GLOBAL_VAR_INIT(ship_alt, SHIP_ALT_MED) temperature_change = COOLING if(SHIP_ALT_HIGH) temperature_change = COOLING - GLOB.ship_temp = Clamp(GLOB.ship_temp += temperature_change, 0, 120) + GLOB.ship_temp = clamp(GLOB.ship_temp += temperature_change, 0, 120) if(prob(50)) return if(GLOB.ship_alt == SHIP_ALT_LOW) diff --git a/code/modules/cm_marines/dropship_ammo.dm b/code/modules/cm_marines/dropship_ammo.dm index 53a22051299b..b2c9aa530888 100644 --- a/code/modules/cm_marines/dropship_ammo.dm +++ b/code/modules/cm_marines/dropship_ammo.dm @@ -12,8 +12,8 @@ var/fire_mission_delay = 4 /// Time to impact in deciseconds var/travelling_time = 100 - /// Type of equipment that accept this type of ammo. - var/equipment_type + /// Type of dropship equipment that accepts this type of ammo. + var/obj/structure/dropship_equipment/equipment_type /// Ammunition count remaining var/ammo_count /// Maximal ammunition count @@ -84,7 +84,7 @@ /obj/structure/ship_ammo/proc/show_loaded_desc(mob/user) return "It's loaded with \a [src]." -/obj/structure/ship_ammo/proc/detonate_on(turf/impact) +/obj/structure/ship_ammo/proc/detonate_on(turf/impact, obj/structure/dropship_equipment/weapon/fired_from) return /obj/structure/ship_ammo/proc/can_fire_at(turf/impact, mob/user) @@ -144,7 +144,7 @@ ammo_used_per_firing = 40 point_cost = 275 fire_mission_delay = 2 - var/bullet_spread_range = 4 //how far from the real impact turf can bullets land + var/bullet_spread_range = 3 //how far from the real impact turf can bullets land var/shrapnel_type = /datum/ammo/bullet/shrapnel/gau //For siming 30mm bullet impacts. var/directhit_damage = 105 //how much damage is to be inflicted to a mob, this is here so that we can hit resting mobs. var/penetration = 10 //AP value pretty much @@ -159,17 +159,18 @@ else return "It's loaded with an empty [name]." -/obj/structure/ship_ammo/heavygun/detonate_on(turf/impact) +/obj/structure/ship_ammo/heavygun/detonate_on(turf/impact, obj/structure/dropship_equipment/weapon/fired_from) set waitfor = 0 var/list/turf_list = list() for(var/turf/T in range(bullet_spread_range, impact)) turf_list += T var/soundplaycooldown = 0 var/debriscooldown = 0 + for(var/i = 1 to ammo_used_per_firing) - var/turf/impact_tile = pick(turf_list) sleep(1) - var/datum/cause_data/cause_data = create_cause_data(initial(name), source_mob) + var/turf/impact_tile = pick(turf_list) + var/datum/cause_data/cause_data = create_cause_data(fired_from.name, source_mob) impact_tile.ex_act(EXPLOSION_THRESHOLD_VLOW, pick(GLOB.alldirs), cause_data) create_shrapnel(impact_tile,1,0,0,shrapnel_type,cause_data,FALSE,100) //simulates a bullet for(var/atom/movable/explosion_effect in impact_tile) @@ -179,6 +180,7 @@ bullet_effect.apply_armoured_damage(directhit_damage,ARMOR_BULLET,BRUTE,null,penetration) else explosion_effect.ex_act(EXPLOSION_THRESHOLD_VLOW) + new /obj/effect/particle_effect/expl_particles(impact_tile) if(!soundplaycooldown) //so we don't play the same sound 20 times very fast. playsound(impact_tile, 'sound/effects/gauimpact.ogg',40,1,20) soundplaycooldown = 3 @@ -187,7 +189,6 @@ impact_tile.ceiling_debris_check(1) debriscooldown = 6 debriscooldown-- - new /obj/effect/particle_effect/expl_particles(impact_tile) sleep(11) //speed of sound simulation playsound(impact, 'sound/effects/gau.ogg',100,1,60) @@ -230,36 +231,31 @@ /obj/structure/ship_ammo/laser_battery/get_examine_text(mob/user) . = ..() - . += "It's at [round(100*ammo_count/max_ammo_count)]% charge." + . += "It's at [floor(100*ammo_count/max_ammo_count)]% charge." /obj/structure/ship_ammo/laser_battery/show_loaded_desc(mob/user) if(ammo_count) - return "It's loaded with \a [src] at [round(100*ammo_count/max_ammo_count)]% charge." + return "It's loaded with \a [src] at [floor(100*ammo_count/max_ammo_count)]% charge." else return "It's loaded with an empty [name]." -/obj/structure/ship_ammo/laser_battery/detonate_on(turf/impact) +/obj/structure/ship_ammo/laser_battery/detonate_on(turf/impact, obj/structure/dropship_equipment/weapon/fired_from) set waitfor = 0 var/list/turf_list = list() - for(var/turf/T in range(impact, 3)) //This is its area of effect + for(var/turf/T in range(3, impact)) //This is its area of effect turf_list += T playsound(impact, 'sound/effects/pred_vision.ogg', 20, 1) for(var/i=1 to 16) //This is how many tiles within that area of effect will be randomly ignited var/turf/U = pick(turf_list) turf_list -= U - laser_burn(U) + fire_spread_recur(U, create_cause_data(fired_from.name, source_mob), 1, null, 5, 75, "#EE6515")//Very, very intense, but goes out very quick if(!ammo_count && !QDELETED(src)) qdel(src) //deleted after last laser beam is fired and impact the ground. - -/obj/structure/ship_ammo/laser_battery/proc/laser_burn(turf/T) - fire_spread_recur(T, create_cause_data(initial(name), source_mob), 1, null, 5, 75, "#EE6515")//Very, very intense, but goes out very quick - - //Rockets /obj/structure/ship_ammo/rocket @@ -277,7 +273,7 @@ max_inaccuracy = 5 point_cost = 0 -/obj/structure/ship_ammo/rocket/detonate_on(turf/impact) +/obj/structure/ship_ammo/rocket/detonate_on(turf/impact, obj/structure/dropship_equipment/weapon/fired_from) qdel(src) @@ -291,7 +287,7 @@ point_cost = 300 fire_mission_delay = 4 //We don't care because our ammo has just 1 rocket -/obj/structure/ship_ammo/rocket/widowmaker/detonate_on(turf/impact) +/obj/structure/ship_ammo/rocket/widowmaker/detonate_on(turf/impact, obj/structure/dropship_equipment/weapon/fired_from) impact.ceiling_debris_check(3) addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(cell_explosion), impact, 300, 40, EXPLOSION_FALLOFF_SHAPE_LINEAR, null, create_cause_data(initial(name)), source_mob), 0.5 SECONDS) //Your standard HE splash damage rocket. Good damage, good range, good speed, it's an all rounder QDEL_IN(src, 0.5 SECONDS) @@ -304,7 +300,7 @@ point_cost = 300 fire_mission_delay = 4 //We don't care because our ammo has just 1 rocket -/obj/structure/ship_ammo/rocket/banshee/detonate_on(turf/impact) +/obj/structure/ship_ammo/rocket/banshee/detonate_on(turf/impact, obj/structure/dropship_equipment/weapon/fired_from) impact.ceiling_debris_check(3) addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(cell_explosion), impact, 175, 20, EXPLOSION_FALLOFF_SHAPE_LINEAR, null, create_cause_data(initial(name)), source_mob), 0.5 SECONDS) //Small explosive power with a small fall off for a big explosion range addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(fire_spread), impact, create_cause_data(initial(name), source_mob), 4, 15, 50, "#00b8ff"), 0.5 SECONDS) //Very intense but the fire doesn't last very long @@ -319,7 +315,7 @@ point_cost = 300 fire_mission_delay = 4 //We don't care because our ammo has just 1 rocket -/obj/structure/ship_ammo/rocket/keeper/detonate_on(turf/impact) +/obj/structure/ship_ammo/rocket/keeper/detonate_on(turf/impact, obj/structure/dropship_equipment/weapon/fired_from) impact.ceiling_debris_check(3) addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(cell_explosion), impact, 450, 100, EXPLOSION_FALLOFF_SHAPE_EXPONENTIAL, null, create_cause_data(initial(name)), source_mob), 0.5 SECONDS) //Insane fall off combined with insane damage makes the Keeper useful for single targets, but very bad against multiple. QDEL_IN(src, 0.5 SECONDS) @@ -334,7 +330,7 @@ fire_mission_delay = 4 //Looks kinda OP but all it can actually do is just to blow windows and some of other things out, cant do much damage. -/obj/structure/ship_ammo/rocket/harpoon/detonate_on(turf/impact) +/obj/structure/ship_ammo/rocket/harpoon/detonate_on(turf/impact, obj/structure/dropship_equipment/weapon/fired_from) impact.ceiling_debris_check(3) addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(cell_explosion), impact, 150, 16, EXPLOSION_FALLOFF_SHAPE_LINEAR, null, create_cause_data(initial(name)), source_mob), 0.5 SECONDS) QDEL_IN(src, 0.5 SECONDS) @@ -347,7 +343,7 @@ point_cost = 500 fire_mission_delay = 0 //0 means unusable -/obj/structure/ship_ammo/rocket/napalm/detonate_on(turf/impact) +/obj/structure/ship_ammo/rocket/napalm/detonate_on(turf/impact, obj/structure/dropship_equipment/weapon/fired_from) impact.ceiling_debris_check(3) addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(cell_explosion), impact, 200, 25, EXPLOSION_FALLOFF_SHAPE_LINEAR, null, create_cause_data(initial(name)), source_mob), 0.5 SECONDS) addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(fire_spread), impact, create_cause_data(initial(name), source_mob), 6, 60, 30, "#EE6515"), 0.5 SECONDS) //Color changed into napalm's color to better convey how intense the fire actually is. @@ -362,7 +358,7 @@ point_cost = 300 fire_mission_delay = 4 -/obj/structure/ship_ammo/rocket/thermobaric/detonate_on(turf/impact) +/obj/structure/ship_ammo/rocket/thermobaric/detonate_on(turf/impact, obj/structure/dropship_equipment/weapon/fired_from) impact.ceiling_debris_check(3) addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(fire_spread), impact, create_cause_data(initial(name), source_mob), 4, 25, 50, "#c96500"), 0.5 SECONDS) //Very intense but the fire doesn't last very long for(var/mob/living/carbon/victim in orange(5, impact)) @@ -386,7 +382,7 @@ point_cost = 300 fire_mission_delay = 3 //high cooldown -/obj/structure/ship_ammo/minirocket/detonate_on(turf/impact) +/obj/structure/ship_ammo/minirocket/detonate_on(turf/impact, obj/structure/dropship_equipment/weapon/fired_from) impact.ceiling_debris_check(2) spawn(5) cell_explosion(impact, 200, 44, EXPLOSION_FALLOFF_SHAPE_LINEAR, null, create_cause_data(initial(name), source_mob)) @@ -416,7 +412,7 @@ point_cost = 500 fire_mission_delay = 3 //high cooldown -/obj/structure/ship_ammo/minirocket/incendiary/detonate_on(turf/impact) +/obj/structure/ship_ammo/minirocket/incendiary/detonate_on(turf/impact, obj/structure/dropship_equipment/weapon/fired_from) ..() spawn(5) fire_spread(impact, create_cause_data(initial(name), source_mob), 3, 25, 20, "#EE6515") @@ -430,13 +426,13 @@ max_ammo_count = 1 ammo_name = "area denial sentry" travelling_time = 0 // handled by droppod - point_cost = 800 + point_cost = 800 //handled by printer accuracy_range = 0 // pinpoint max_inaccuracy = 0 /// Special structures it needs to break with drop pod var/list/breakeable_structures = list(/obj/structure/barricade, /obj/structure/surface/table) -/obj/structure/ship_ammo/sentry/detonate_on(turf/impact) +/obj/structure/ship_ammo/sentry/detonate_on(turf/impact, obj/structure/dropship_equipment/weapon/fired_from) var/obj/structure/droppod/equipment/sentry/droppod = new(impact, /obj/structure/machinery/defenses/sentry/launchable, source_mob) droppod.special_structures_to_damage = breakeable_structures droppod.special_structure_damage = 500 diff --git a/code/modules/cm_marines/dropship_equipment.dm b/code/modules/cm_marines/dropship_equipment.dm index b50198095aab..c4ac1ac98cad 100644 --- a/code/modules/cm_marines/dropship_equipment.dm +++ b/code/modules/cm_marines/dropship_equipment.dm @@ -6,6 +6,8 @@ icon = 'icons/obj/structures/props/almayer_props.dmi' climbable = TRUE layer = ABOVE_OBJ_LAYER //so they always appear above attach points when installed + var/shorthand + var/list/equip_categories //on what kind of base this can be installed. var/obj/effect/attach_point/ship_base //the ship base the equipment is currently installed on. var/uses_ammo = FALSE //whether it uses ammo @@ -19,10 +21,11 @@ var/skill_required = SKILL_PILOT_TRAINED var/combat_equipment = TRUE + /obj/structure/dropship_equipment/Destroy() QDEL_NULL(ammo_equipped) if(linked_shuttle) - linked_shuttle.equipments -= src + SEND_SIGNAL(linked_shuttle, COMSIG_DROPSHIP_REMOVE_EQUIPMENT, src) linked_shuttle = null if(ship_base) ship_base.installed_equipment = null @@ -33,6 +36,7 @@ linked_console = null . = ..() + /obj/structure/dropship_equipment/attack_alien(mob/living/carbon/xenomorph/current_xenomorph) if(unslashable) return XENO_NO_DELAY_ACTION @@ -122,7 +126,7 @@ ship_base.installed_equipment = null ship_base = null if(linked_shuttle) - linked_shuttle.equipments -= src + SEND_SIGNAL(linked_shuttle, COMSIG_DROPSHIP_REMOVE_EQUIPMENT, src) linked_shuttle = null if(linked_console && linked_console.selected_equipment == src) linked_console.selected_equipment = null @@ -159,7 +163,8 @@ health = null icon_state = "sentry_system" is_interactable = TRUE - point_cost = 500 + point_cost = 200 + shorthand = "Sentry" var/deployment_cooldown var/obj/structure/machinery/defenses/sentry/premade/dropship/deployed_turret combat_equipment = FALSE @@ -176,6 +181,28 @@ if(!deployed_turret) . += "Its turret is missing." +/obj/structure/dropship_equipment/sentry_holder/ui_data(mob/user) + var/obj/structure/machinery/defenses/defense = deployed_turret + . = list() + var/is_deployed = deployed_turret.loc != src + .["name"] = defense.name + .["area"] = get_area(defense) + .["active"] = defense.turned_on + .["nickname"] = defense.nickname + .["camera_available"] = defense.has_camera && is_deployed + .["selection_state"] = list() + .["kills"] = defense.kills + .["iff_status"] = defense.faction_group + .["health"] = defense.health + .["health_max"] = defense.health_max + .["deployed"] = is_deployed + + if(istype(defense, /obj/structure/machinery/defenses/sentry)) + var/obj/structure/machinery/defenses/sentry/sentrygun = defense + .["rounds"] = sentrygun.ammo.current_rounds + .["max_rounds"] = sentrygun.ammo.max_rounds + .["engaged"] = length(sentrygun.targets) + /obj/structure/dropship_equipment/sentry_holder/on_launch() if(ship_base && ship_base.base_category == DROPSHIP_WEAPON) //only external sentires are automatically undeployed undeploy_sentry() @@ -290,6 +317,7 @@ equip_categories = list(DROPSHIP_WEAPON, DROPSHIP_CREW_WEAPON) icon_state = "mg_system" point_cost = 50 + shorthand = "MG" var/deployment_cooldown var/obj/structure/machinery/m56d_hmg/mg_turret/dropship/deployed_mg combat_equipment = FALSE @@ -300,6 +328,21 @@ deployed_mg = new(src) deployed_mg.deployment_system = src +/obj/structure/dropship_equipment/mg_holder/Destroy() + QDEL_NULL(deployed_mg) + . = ..() + +/obj/structure/dropship_equipment/mg_holder/ui_data(mob/user) + . = list() + var/is_deployed = deployed_mg.loc != src + .["name"] = name + .["selection_state"] = list() + .["health"] = health + .["health_max"] = initial(health) + .["rounds"] = deployed_mg.rounds + .["max_rounds"] = deployed_mg.rounds_max + .["deployed"] = is_deployed + /obj/structure/dropship_equipment/mg_holder/get_examine_text(mob/user) . = ..() if(!deployed_mg) @@ -330,6 +373,9 @@ ..() +/obj/structure/dropship_equipment/mg_holder/equipment_interact(mob/user) + attack_hand(user) + /obj/structure/dropship_equipment/mg_holder/update_equipment() if(ship_base) setDir(ship_base.dir) @@ -339,9 +385,10 @@ if(ship_base.base_category == DROPSHIP_WEAPON) switch(dir) if(NORTH) - if( istype(get_step(src, WEST), /turf/open) ) + var/step_contents = get_step(src, EAST).contents + if(locate(/obj/structure) in step_contents) deployed_mg.pixel_x = 5 - else if ( istype(get_step(src, EAST), /turf/open) ) + else deployed_mg.pixel_x = -5 if(EAST) deployed_mg.pixel_y = 9 @@ -359,7 +406,7 @@ deployed_mg.forceMove(src) deployed_mg.setDir(dir) else - icon_state = "mg_system_destroyed" + icon_state = "sentry_system_destroyed" /obj/structure/dropship_equipment/mg_holder/proc/deploy_mg(mob/user) if(deployed_mg) @@ -368,12 +415,11 @@ if(ship_base.base_category == DROPSHIP_WEAPON) switch(dir) if(NORTH) - if( istype(get_step(src, WEST), /turf/open) ) + var/step_contents = get_step(src, EAST).contents + if(locate(/obj/structure) in step_contents) deployed_mg.forceMove(get_step(src, WEST)) - else if ( istype(get_step(src, EAST), /turf/open) ) - deployed_mg.forceMove(get_step(src, EAST)) else - deployed_mg.forceMove(get_step(src, NORTH)) + deployed_mg.forceMove(get_step(src, EAST)) if(EAST) deployed_mg.forceMove(get_step(src, SOUTH)) if(WEST) @@ -442,10 +488,9 @@ point_cost = 0 -#define LIGHTING_MAX_LUMINOSITY_SHIPLIGHTS 12 - /obj/structure/dropship_equipment/electronics/spotlights name = "\improper AN/LEN-15 Spotlight" + shorthand = "Spotlight" icon_state = "spotlights" desc = "A set of high-powered spotlights to illuminate large areas. Fits on electronics attach points of dropships. Moving this will require a powerloader." is_interactable = TRUE @@ -457,7 +502,7 @@ if(spotlights_cooldown > world.time) to_chat(user, SPAN_WARNING("[src] is busy.")) return //prevents spamming deployment/undeployment - if(luminosity != brightness) + if(!light_on) set_light(brightness) icon_state = "spotlights_on" to_chat(user, SPAN_NOTICE("You turn on [src].")) @@ -470,22 +515,22 @@ /obj/structure/dropship_equipment/electronics/spotlights/update_equipment() ..() if(ship_base) - if(luminosity != brightness) + if(!light_on) icon_state = "spotlights_off" else icon_state = "spotlights_on" else icon_state = "spotlights" - if(luminosity) + if(light_on) set_light(0) -/obj/structure/dropship_equipment/electronics/spotlights/on_launch() - set_light(0) - -/obj/structure/dropship_equipment/electronics/spotlights/on_arrival() - set_light(brightness) - -#undef LIGHTING_MAX_LUMINOSITY_SHIPLIGHTS +/obj/structure/dropship_equipment/electronics/spotlights/ui_data(mob/user) + . = list() + var/is_deployed = light_on + .["name"] = name + .["health"] = health + .["health_max"] = initial(health) + .["deployed"] = is_deployed @@ -496,6 +541,7 @@ /obj/structure/dropship_equipment/electronics/targeting_system name = "\improper AN/AAQ-178 Weapon Targeting System" + shorthand = "Targeting" icon_state = "targeting_system" desc = "A targeting system for dropships. It improves firing accuracy on laser targets. Fits on electronics attach points. You need a powerloader to lift this." point_cost = 800 @@ -508,7 +554,8 @@ /obj/structure/dropship_equipment/electronics/landing_zone_detector name = "\improper AN/AVD-60 LZ detector" - desc = "An electronic device linked to the dropship's camera system that lets you observe your landing zone." + shorthand = "LZ Detector" + desc = "An electronic device linked to the dropship's camera system that lets you observe your landing zone mid-flight." icon_state = "lz_detector" point_cost = 50 var/obj/structure/machinery/computer/cameras/dropship/linked_cam_console @@ -638,7 +685,7 @@ msg_admin_niche("[key_name(user)] is direct-firing [SA] onto [selected_target] at ([target_turf.x],[target_turf.y],[target_turf.z]) [ADMIN_JMP(target_turf)]") if(ammo_travelling_time) - var/total_seconds = max(round(ammo_travelling_time/10),1) + var/total_seconds = max(floor(ammo_travelling_time/10),1) for(var/i = 0 to total_seconds) sleep(10) if(!selected_target || !selected_target.loc)//if laser disappeared before we reached the target, @@ -654,7 +701,7 @@ new /obj/effect/overlay/temp/blinking_laser (impact) sleep(10) SA.source_mob = user - SA.detonate_on(impact) + SA.detonate_on(impact, src) /obj/structure/dropship_equipment/weapon/proc/open_fire_firemission(obj/selected_target, mob/user = usr) set waitfor = 0 @@ -680,7 +727,7 @@ var/turf/impact = pick(possible_turfs) sleep(3) SA.source_mob = user - SA.detonate_on(impact) + SA.detonate_on(impact, src) /obj/structure/dropship_equipment/weapon/heavygun name = "\improper GAU-21 30mm cannon" @@ -690,6 +737,7 @@ point_cost = 400 skill_required = SKILL_PILOT_TRAINED fire_mission_only = FALSE + shorthand = "GAU" /obj/structure/dropship_equipment/weapon/heavygun/update_icon() if(ammo_equipped) @@ -706,6 +754,7 @@ firing_sound = 'sound/effects/rocketpod_fire.ogg' firing_delay = 5 point_cost = 600 + shorthand = "MSL" /obj/structure/dropship_equipment/weapon/rocket_pod/deplete_ammo() ammo_equipped = null //nothing left to empty after firing @@ -727,6 +776,7 @@ firing_sound = 'sound/effects/rocketpod_fire.ogg' firing_delay = 10 //1 seconds point_cost = 600 + shorthand = "RKT" /obj/structure/dropship_equipment/weapon/minirocket_pod/update_icon() if(ammo_equipped && ammo_equipped.ammo_count) @@ -750,6 +800,7 @@ point_cost = 500 skill_required = SKILL_PILOT_TRAINED fire_mission_only = FALSE + shorthand = "LZR" /obj/structure/dropship_equipment/weapon/laser_beam_gun/update_icon() if(ammo_equipped && ammo_equipped.ammo_count) @@ -767,7 +818,8 @@ firing_delay = 10 //1 seconds bound_height = 32 equip_categories = list(DROPSHIP_CREW_WEAPON) //fits inside the central spot of the dropship - point_cost = 400 + point_cost = 200 + shorthand = "LCH" /obj/structure/dropship_equipment/weapon/launch_bay/update_equipment() if(ship_base) @@ -781,6 +833,7 @@ /obj/structure/dropship_equipment/medevac_system name = "\improper RMU-4M Medevac System" + shorthand = "Medevac" desc = "A winch system to lift injured marines on medical stretchers onto the dropship. Acquire lift target through the dropship equipment console." equip_categories = list(DROPSHIP_CREW_WEAPON) icon_state = "medevac_system" @@ -806,24 +859,8 @@ linked_stretcher = null icon_state = "medevac_system" - -/obj/structure/dropship_equipment/medevac_system/equipment_interact(mob/user) - if(!linked_shuttle) - return - - if(linked_shuttle.mode != SHUTTLE_CALL) - to_chat(user, SPAN_WARNING("[src] can only be used while in flight.")) - return - - if(busy_winch) - to_chat(user, SPAN_WARNING(" The winch is already in motion.")) - return - - if(world.time < medevac_cooldown) - to_chat(user, SPAN_WARNING("[src] was just used, you need to wait a bit before using it again.")) - return - - var/list/possible_stretchers = list() +/obj/structure/dropship_equipment/medevac_system/proc/get_targets() + . = list() for(var/obj/structure/bed/medevac_stretcher/MS in GLOB.activated_medevac_stretchers) var/area/AR = get_area(MS) var/evaccee_name @@ -850,20 +887,33 @@ if (evaccee_triagecard_color && evaccee_triagecard_color == "none") evaccee_triagecard_color = null - possible_stretchers["[evaccee_name] [evaccee_triagecard_color ? "\[" + uppertext(evaccee_triagecard_color) + "\]" : ""] ([AR.name])"] = MS + var/key_name = strip_improper("[evaccee_name] [evaccee_triagecard_color ? "\[" + uppertext(evaccee_triagecard_color) + "\]" : ""] ([AR.name])") + .[key_name] = MS - if(!possible_stretchers.len) - to_chat(user, SPAN_WARNING("No active medevac stretcher detected.")) - return +/obj/structure/dropship_equipment/medevac_system/proc/can_medevac(mob/user) + if(!linked_shuttle) + return FALSE - var/stretcher_choice = tgui_input_list(usr, "Which emitting stretcher would you like to link with?", "Available stretchers", possible_stretchers) - if(!stretcher_choice) - return + if(linked_shuttle.mode != SHUTTLE_CALL) + to_chat(user, SPAN_WARNING("[src] can only be used while in flight.")) + return FALSE - var/obj/structure/bed/medevac_stretcher/selected_stretcher = possible_stretchers[stretcher_choice] - if(!selected_stretcher) - return + if(busy_winch) + to_chat(user, SPAN_WARNING(" The winch is already in motion.")) + return FALSE + + if(world.time < medevac_cooldown) + to_chat(user, SPAN_WARNING("[src] was just used, you need to wait a bit before using it again.")) + return FALSE + + var/list/possible_stretchers = get_targets() + + if(!length(possible_stretchers)) + to_chat(user, SPAN_WARNING("No active medevac stretcher detected.")) + return FALSE + return TRUE +/obj/structure/dropship_equipment/medevac_system/proc/position_dropship(mob/user, obj/structure/bed/medevac_stretcher/selected_stretcher) if(!ship_base) //system was uninstalled midway return @@ -913,6 +963,31 @@ linked_stretcher.linked_medevac = src linked_stretcher.visible_message(SPAN_NOTICE("[linked_stretcher] detects a dropship overhead.")) +/obj/structure/dropship_equipment/medevac_system/proc/automate_interact(mob/user, stretcher_choice) + if(!can_medevac(user)) + return + + var/list/possible_stretchers = get_targets() + + var/obj/structure/bed/medevac_stretcher/selected_stretcher = possible_stretchers[stretcher_choice] + if(!selected_stretcher) + return + position_dropship(user, selected_stretcher) + +/obj/structure/dropship_equipment/medevac_system/equipment_interact(mob/user) + if(!can_medevac(user)) + return + + var/list/possible_stretchers = get_targets() + + var/stretcher_choice = tgui_input_list(usr, "Which emitting stretcher would you like to link with?", "Available stretchers", possible_stretchers) + if(!stretcher_choice) + return + + var/obj/structure/bed/medevac_stretcher/selected_stretcher = possible_stretchers[stretcher_choice] + if(!selected_stretcher) + return + position_dropship(user, selected_stretcher) //on arrival we break any link @@ -958,6 +1033,35 @@ activate_winch(user) +/obj/structure/dropship_equipment/medevac_system/ui_data(mob/user) + var/list/stretchers = get_targets() + + . = list() + for(var/stretcher_ref in stretchers) + var/obj/structure/bed/medevac_stretcher/stretcher = stretchers[stretcher_ref] + + var/area/AR = get_area(stretcher) + var/list/target_data = list() + target_data["area"] = AR + target_data["ref"] = stretcher_ref + + var/mob/living/carbon/human/occupant = stretcher.buckled_mob + if(occupant) + target_data["occupant"] = occupant.name + target_data["time_of_death"] = occupant.tod + target_data["damage"] = list( + "hp" = occupant.health, + "brute" = occupant.bruteloss, + "oxy" = occupant.oxyloss, + "tox" = occupant.toxloss, + "fire" = occupant.fireloss + ) + if(ishuman(occupant)) + target_data["damage"]["undefib"] = occupant.undefibbable + target_data["triage_card"] = occupant.holo_card_color + + . += list(target_data) + /obj/structure/dropship_equipment/medevac_system/proc/activate_winch(mob/user) set waitfor = 0 var/old_stretcher = linked_stretcher @@ -1013,6 +1117,7 @@ /obj/structure/dropship_equipment/fulton_system name = "\improper RMU-19 Fulton Recovery System" + shorthand = "Fulton" desc = "A winch system to collect any fulton recovery balloons in high altitude. Make sure you turn it on!" equip_categories = list(DROPSHIP_CREW_WEAPON) icon_state = "fulton_system" @@ -1029,7 +1134,28 @@ icon_state = "fulton_system" -/obj/structure/dropship_equipment/fulton_system/equipment_interact(mob/user) +/obj/structure/dropship_equipment/fulton_system/proc/automate_interact(mob/user, fulton_choice) + if(!can_fulton(user)) + return + + var/list/possible_fultons = get_targets() + + if(!fulton_choice) + return + // Strip any \proper or \improper in order to match the entry in possible_fultons. + fulton_choice = strip_improper(fulton_choice) + var/obj/item/stack/fulton/fult = possible_fultons[fulton_choice] + + if(!ship_base) //system was uninstalled midway + return + + if(is_ground_level(fult.z)) //in case the fulton popped during our input() + return + + if(!fult.attached_atom) + to_chat(user, SPAN_WARNING("This balloon stretcher is empty.")) + return + if(!linked_shuttle) return @@ -1045,16 +1171,52 @@ to_chat(user, SPAN_WARNING("[src] was just used, you need to wait a bit before using it again.")) return - var/list/possible_fultons = list() + to_chat(user, SPAN_NOTICE(" You move your dropship above the selected balloon's beacon.")) + + activate_winch(user, fult) + + +/obj/structure/dropship_equipment/fulton_system/proc/can_fulton(mob/user) + if(!linked_shuttle) + return FALSE + + if(linked_shuttle.mode != SHUTTLE_CALL) + to_chat(user, SPAN_WARNING("[src] can only be used while in flight.")) + return FALSE + + if(busy_winch) + to_chat(user, SPAN_WARNING(" The winch is already in motion.")) + return FALSE + + if(world.time < fulton_cooldown) + to_chat(user, SPAN_WARNING("[src] was just used, you need to wait a bit before using it again.")) + return FALSE + return TRUE + +/obj/structure/dropship_equipment/fulton_system/ui_data(mob/user) + var/list/targets = get_targets() + . = list() + for(var/i in targets) + . += list(i) + + +/obj/structure/dropship_equipment/fulton_system/proc/get_targets() + . = list() for(var/obj/item/stack/fulton/F in GLOB.deployed_fultons) var/recovery_object if(F.attached_atom) recovery_object = F.attached_atom.name else recovery_object = "Empty" - possible_fultons["[recovery_object]"] = F + .["[recovery_object]"] = F + +/obj/structure/dropship_equipment/fulton_system/equipment_interact(mob/user) + if(!can_fulton(user)) + return - if(!possible_fultons.len) + var/list/possible_fultons = get_targets() + + if(!length(possible_fultons)) to_chat(user, SPAN_WARNING("No active balloons detected.")) return @@ -1128,129 +1290,29 @@ fulton_cooldown = world.time + 50 // Rappel deployment system -/obj/structure/dropship_equipment/rappel_system - name = "\improper HPU-1 Rappel Deployment System" +/obj/structure/dropship_equipment/paradrop_system + name = "\improper HPU-1 Paradrop Deployment System" + shorthand = "PDS" equip_categories = list(DROPSHIP_CREW_WEAPON) icon_state = "rappel_module_packaged" point_cost = 50 combat_equipment = FALSE + var/system_cooldown - var/harness = /obj/item/rappel_harness +/obj/structure/dropship_equipment/paradrop_system/ui_data(mob/user) + . = list() + .["signal"] = "[linked_shuttle.paradrop_signal]" + .["locked"] = !!linked_shuttle.paradrop_signal -/obj/structure/dropship_equipment/rappel_system/update_equipment() +/obj/structure/dropship_equipment/paradrop_system/update_equipment() if(ship_base) icon_state = "rappel_hatch_closed" density = FALSE else icon_state = "rappel_module_packaged" -/obj/effect/warning/rappel - color = "#17d17a" - -/obj/structure/dropship_equipment/rappel_system/attack_hand(mob/living/carbon/human/user) - var/datum/cas_iff_group/cas_group = GLOB.cas_groups[FACTION_MARINE] - var/list/targets = cas_group.cas_signals - - if(!LAZYLEN(targets)) - to_chat(user, SPAN_NOTICE("No CAS signals found.")) - return - - if(!can_use(user)) - return - - var/user_input = tgui_input_list(user, "Choose a target to jump to.", name, targets) - if(!user_input) - return - - if(!can_use(user)) - return - - var/datum/cas_signal/LT = user_input - if(!istype(LT) || !LT.valid_signal()) - return - - var/turf/location = get_turf(LT.signal_loc) - var/area/location_area = get_area(location) - if(CEILING_IS_PROTECTED(location_area.ceiling, CEILING_PROTECTION_TIER_1)) - to_chat(user, SPAN_WARNING("You cannot jump to the target. It is probably underground.")) - return - - var/list/valid_turfs = list() - for(var/turf/T as anything in RANGE_TURFS(2, location)) - var/area/t_area = get_area(T) - if(!t_area || CEILING_IS_PROTECTED(t_area.ceiling, CEILING_PROTECTION_TIER_1)) - continue - if(T.density) - continue - var/found_dense = FALSE - for(var/atom/A in T) - if(A.density && A.can_block_movement) - found_dense = TRUE - break - if(found_dense) - continue - if(protected_by_pylon(TURF_PROTECTION_MORTAR, T)) - continue - valid_turfs += T - - if(!length(valid_turfs)) - to_chat(user, SPAN_WARNING("There's nowhere safe for you to land, the landing zone is too congested.")) - return - - var/turf/deploy_turf = pick(valid_turfs) - - var/obj/effect/warning/rappel/warning_zone = new(deploy_turf) - flick("rappel_hatch_opening", src) - icon_state = "rappel_hatch_open" - user.forceMove(loc) - user.client?.perspective = EYE_PERSPECTIVE - user.client?.eye = deploy_turf - - if(!do_after(user, 4 SECONDS, INTERRUPT_NO_NEEDHAND, BUSY_ICON_FRIENDLY, user, INTERRUPT_MOVED) || !can_use(user) || protected_by_pylon(TURF_PROTECTION_MORTAR, deploy_turf)) - qdel(warning_zone) - flick("rappel_hatch_closing", src) - icon_state = "rappel_hatch_closed" - user.client?.perspective = MOB_PERSPECTIVE - user.client?.eye = user - return - - new /obj/effect/rappel_rope(deploy_turf) - user.forceMove(deploy_turf) - INVOKE_ASYNC(user, TYPE_PROC_REF(/mob/living/carbon/human, animation_rappel)) - user.client?.perspective = MOB_PERSPECTIVE - user.client?.eye = user - deploy_turf.ceiling_debris_check(2) - playsound(deploy_turf, 'sound/items/rappel.ogg', 50, TRUE) - - flick("rappel_hatch_closing", src) - icon_state = "rappel_hatch_closed" - qdel(warning_zone) - -/obj/structure/dropship_equipment/rappel_system/proc/can_use(mob/living/carbon/human/user) - if(linked_shuttle.mode != SHUTTLE_CALL) - to_chat(user, SPAN_WARNING("\The [src] can only be used while in flight.")) - return FALSE - - if(!linked_shuttle.in_flyby) - to_chat(user, SPAN_WARNING("\The [src] requires a flyby flight to be used.")) - return FALSE - - if(user.buckled) - to_chat(user, SPAN_WARNING("You cannot rappel while buckled!")) - return FALSE - - if(user.is_mob_incapacitated()) - to_chat(user, SPAN_WARNING("You are in no state to do that!")) - return FALSE - - if(!istype(user.belt, harness)) - to_chat(user, SPAN_WARNING("You must have a rappel harness equipped in order to use \the [src]!")) - return FALSE - - if(user.action_busy) - return FALSE - - return TRUE +/obj/structure/dropship_equipment/paradrop_system/attack_hand(mob/living/carbon/human/user) + return // used in the simulation room for cas runs, removed the sound and ammo depletion methods. // copying code is definitely bad, but adding an unnecessary sim or not sim boolean check in the open_fire_firemission just doesn't seem right. @@ -1272,4 +1334,4 @@ var/turf/impact = pick(possible_turfs) sleep(3) SA.source_mob = user - SA.detonate_on(impact) + SA.detonate_on(impact, src) diff --git a/code/modules/cm_marines/equipment/gear.dm b/code/modules/cm_marines/equipment/gear.dm index 00f956fdd4ed..9e5352621e32 100644 --- a/code/modules/cm_marines/equipment/gear.dm +++ b/code/modules/cm_marines/equipment/gear.dm @@ -108,7 +108,7 @@ continue mobs_can_store += H var/mob/living/carbon/human/mob_to_store - if(mobs_can_store.len) + if(length(mobs_can_store)) mob_to_store = pick(mobs_can_store) mob_to_store.forceMove(src) mob_to_store.unset_interaction() diff --git a/code/modules/cm_marines/equipment/guncases.dm b/code/modules/cm_marines/equipment/guncases.dm index 8ab83116f605..22999e97fda2 100644 --- a/code/modules/cm_marines/equipment/guncases.dm +++ b/code/modules/cm_marines/equipment/guncases.dm @@ -348,13 +348,52 @@ new /obj/item/device/vulture_spotter_scope/skillless(src, WEAKREF(rifle)) new /obj/item/tool/screwdriver(src) // Spotter scope needs a screwdriver to disassemble +/obj/item/storage/box/guncase/vulture/holo_target + name = "\improper M707 holo-targetting anti-materiel rifle case" + desc = "A gun case containing the M707 \"Vulture\" anti-materiel rifle and its requisite spotting tools. This variant is pre-loaded with IFF-CAPABLE holo-targeting rounds." + +/obj/item/storage/box/guncase/vulture/holo_target/fill_preset_inventory() + var/obj/item/weapon/gun/boltaction/vulture/holo_target/rifle = new(src) + new /obj/item/ammo_magazine/rifle/boltaction/vulture/holo_target(src) + new /obj/item/device/vulture_spotter_tripod(src) + new /obj/item/device/vulture_spotter_scope(src, WEAKREF(rifle)) + new /obj/item/tool/screwdriver(src) + new /obj/item/pamphlet/trait/vulture(src) + new /obj/item/pamphlet/trait/vulture(src) + +/obj/item/storage/box/guncase/vulture/holo_target/skillless + storage_slots = 5 + +/obj/item/storage/box/guncase/vulture/holo_target/skillless/fill_preset_inventory() + var/obj/item/weapon/gun/boltaction/vulture/holo_target/skillless/rifle = new(src) + new /obj/item/ammo_magazine/rifle/boltaction/vulture/holo_target(src) + new /obj/item/device/vulture_spotter_tripod(src) + new /obj/item/device/vulture_spotter_scope/skillless(src, WEAKREF(rifle)) + new /obj/item/tool/screwdriver(src) + + +/obj/item/storage/box/guncase/xm51 + name = "\improper XM51 breaching scattergun case" + desc = "A gun case containing the XM51 Breaching Scattergun. Comes with two spare magazines, two spare shell boxes, an optional stock and a belt to holster the weapon." + storage_slots = 7 + can_hold = list(/obj/item/weapon/gun/rifle/xm51, /obj/item/ammo_magazine/rifle/xm51, /obj/item/storage/belt/gun/xm51, /obj/item/attachable/stock/xm51) + +/obj/item/storage/box/guncase/xm51/fill_preset_inventory() + new /obj/item/attachable/stock/xm51(src) + new /obj/item/weapon/gun/rifle/xm51(src) + new /obj/item/ammo_magazine/rifle/xm51(src) + new /obj/item/ammo_magazine/rifle/xm51(src) + new /obj/item/ammo_magazine/shotgun/light/breaching(src) + new /obj/item/ammo_magazine/shotgun/light/breaching(src) + new /obj/item/storage/belt/gun/xm51(src) + //Handgun case for Military police vendor three mag , a railflashligh and the handgun. //88 Mod 4 Combat Pistol /obj/item/storage/box/guncase/mod88 name = "\improper 88 Mod 4 Combat Pistol case" desc = "A gun case containing an 88 Mod 4 Combat Pistol." - storage_slots = 5 + storage_slots = 8 can_hold = list(/obj/item/attachable/flashlight, /obj/item/weapon/gun/pistol/mod88, /obj/item/ammo_magazine/pistol/mod88) /obj/item/storage/box/guncase/mod88/fill_preset_inventory() @@ -363,12 +402,15 @@ new /obj/item/ammo_magazine/pistol/mod88(src) new /obj/item/ammo_magazine/pistol/mod88(src) new /obj/item/ammo_magazine/pistol/mod88(src) + new /obj/item/ammo_magazine/pistol/mod88(src) + new /obj/item/ammo_magazine/pistol/mod88(src) + new /obj/item/ammo_magazine/pistol/mod88(src) //M44 Combat Revolver /obj/item/storage/box/guncase/m44 name = "\improper M44 Combat Revolver case" desc = "A gun case containing an M44 Combat Revolver loaded with marksman ammo." - storage_slots = 5 + storage_slots = 8 can_hold = list(/obj/item/attachable/flashlight, /obj/item/weapon/gun/revolver/m44, /obj/item/ammo_magazine/revolver) /obj/item/storage/box/guncase/m44/fill_preset_inventory() @@ -377,12 +419,15 @@ new /obj/item/ammo_magazine/revolver/marksman(src) new /obj/item/ammo_magazine/revolver/marksman(src) new /obj/item/ammo_magazine/revolver/marksman(src) + new /obj/item/ammo_magazine/revolver/marksman(src) + new /obj/item/ammo_magazine/revolver/marksman(src) + new /obj/item/ammo_magazine/revolver/marksman(src) //M4A3 Service Pistol /obj/item/storage/box/guncase/m4a3 name = "\improper M4A3 Service Pistol case" desc = "A gun case containing an M4A3 Service Pistol." - storage_slots = 5 + storage_slots = 8 can_hold = list(/obj/item/attachable/flashlight, /obj/item/weapon/gun/pistol/m4a3, /obj/item/ammo_magazine/pistol) /obj/item/storage/box/guncase/m4a3/fill_preset_inventory() @@ -391,3 +436,6 @@ new /obj/item/ammo_magazine/pistol(src) new /obj/item/ammo_magazine/pistol(src) new /obj/item/ammo_magazine/pistol(src) + new /obj/item/ammo_magazine/pistol(src) + new /obj/item/ammo_magazine/pistol(src) + new /obj/item/ammo_magazine/pistol(src) diff --git a/code/modules/cm_marines/equipment/kit_boxes.dm b/code/modules/cm_marines/equipment/kit_boxes.dm index d99da8f59f2c..5ba670d89bc1 100644 --- a/code/modules/cm_marines/equipment/kit_boxes.dm +++ b/code/modules/cm_marines/equipment/kit_boxes.dm @@ -69,6 +69,26 @@ // spotter new /obj/item/storage/box/kit/spotter(src) +/obj/item/storage/box/spec/sniper/anti_materiel/fill_preset_inventory() + name = "\improper AMR equipment case" + desc = "A large case containing an experimental XM43E1, a set of M45 ghillie armor and helmet, an M42 scout sight, ammunition, a set of spotter gear, and additional pieces of equipment.\nDrag this sprite onto yourself to open it up! NOTE: You cannot put items back inside this case." + new /obj/item/clothing/suit/storage/marine/ghillie(src) + new /obj/item/clothing/head/helmet/marine/ghillie(src) + new /obj/item/clothing/glasses/night/m42_night_goggles(src) + new /obj/item/weapon/gun/rifle/sniper/XM43E1(src) + new /obj/item/ammo_magazine/sniper/anti_materiel(src) + new /obj/item/ammo_magazine/sniper/anti_materiel(src) + new /obj/item/ammo_magazine/sniper/anti_materiel(src) + new /obj/item/ammo_magazine/sniper/anti_materiel(src) + new /obj/item/ammo_magazine/sniper/anti_materiel(src) + new /obj/item/storage/backpack/marine/smock(src) + new /obj/item/weapon/gun/pistol/vp78(src) + new /obj/item/ammo_magazine/pistol/vp78(src) + new /obj/item/ammo_magazine/pistol/vp78(src) + new /obj/item/facepaint/sniper(src) + // spotter + new /obj/item/storage/box/kit/spotter(src) + /obj/item/storage/box/spec/scout name = "\improper Scout equipment case" desc = "A large case containing an M4RA battle rifle, M3-S light armor and helmet, M4RA battle sight, M68 thermal cloak, V3 reactive thermal tarp, improved scout laser designator, ammunition and additional pieces of equipment.\nDrag this sprite onto yourself to open it up! NOTE: You cannot put items back inside this case." @@ -237,8 +257,8 @@ if(!GLOB.available_specialist_kit_boxes[selection] || GLOB.available_specialist_kit_boxes[selection] <= 0) to_chat(user, SPAN_WARNING("No more kits of this type may be chosen!")) return FALSE - var/obj/item/card/id/ID = user.wear_id - if(!istype(ID) || ID.registered_ref != WEAKREF(user)) + var/obj/item/card/id/card = user.get_idcard() + if(!card || card.registered_ref != WEAKREF(user)) to_chat(user, SPAN_WARNING("You must be wearing your [SPAN_INFO("ID card")] or [SPAN_INFO("dog tags")] to select a specialization!")) return var/turf/T = get_turf(loc) @@ -257,6 +277,10 @@ spec_box = new /obj/item/storage/box/spec/sniper(T) specialist_assignment = "Sniper" user.skills.set_skill(SKILL_SPEC_WEAPONS, SKILL_SPEC_SNIPER) + if("Anti-materiel Sniper") + spec_box = new /obj/item/storage/box/spec/sniper/anti_materiel(T) + specialist_assignment = "Heavy Sniper" + user.skills.set_skill(SKILL_SPEC_WEAPONS, SKILL_SPEC_SNIPER) if("Scout") spec_box = new /obj/item/storage/box/spec/scout(T) specialist_assignment = "Scout" @@ -273,8 +297,8 @@ user.skills.set_skill(SKILL_ENGINEER, SKILL_ENGINEER_TRAINED) if(specialist_assignment) user.put_in_hands(spec_box) - ID.set_assignment((user.assigned_squad && squad_assignment_update ? (user.assigned_squad.name + " ") : "") + ID.assignment + " ([specialist_assignment])") - GLOB.data_core.manifest_modify(user.real_name, WEAKREF(user), ID.assignment) + card.set_assignment((user.assigned_squad && squad_assignment_update ? (user.assigned_squad.name + " ") : "") + card.assignment + " ([specialist_assignment])") + GLOB.data_core.manifest_modify(user.real_name, WEAKREF(user), card.assignment) return TRUE return FALSE @@ -299,7 +323,7 @@ overlays += image('icons/obj/items/storage.dmi', "+[pro_case_overlay]") /obj/item/storage/box/kit/update_icon() - if(!contents.len) + if(!length(contents)) qdel(src) /obj/item/storage/box/kit/mou53_sapper name = "\improper M-OU53 Field Test Kit" @@ -459,6 +483,7 @@ new /obj/item/storage/box/m94/signal(src) new /obj/item/device/binoculars/range/designator(src) new /obj/item/device/encryptionkey/jtac(src) + new /obj/item/storage/backpack/marine/satchel/rto(src) /obj/item/storage/box/kit/mini_intel name = "\improper Field Intelligence Support Kit" @@ -469,7 +494,7 @@ new /obj/item/device/encryptionkey/intel(src) new /obj/item/pamphlet/skill/intel(src) new /obj/item/device/motiondetector/intel(src) - new /obj/item/storage/pouch/document/small(src) + new /obj/item/storage/pouch/document(src) /obj/item/storage/box/kit/mini_grenadier name = "\improper Frontline M40 Grenadier Kit" @@ -498,7 +523,7 @@ name = "\improper Cryo Self Defense Kit" desc = "A basic self-defense kit reserved for emergencies. As you might expect, not much care was put into keeping the stock fresh, who would be insane enough to attack a USCM ship directly?" icon_state = "cryo_defense_kit" - storage_slots = 3 + storage_slots = 4 /obj/item/storage/box/kit/cryo_self_defense/update_icon() if(LAZYLEN(contents)) @@ -509,6 +534,7 @@ /obj/item/storage/box/kit/cryo_self_defense/fill_preset_inventory() new /obj/item/weapon/gun/pistol/mod88/flashlight(src) new /obj/item/attachable/bayonet(src) + new /obj/item/tool/crowbar/red(src) new /obj/item/reagent_container/food/snacks/packaged_meal(src, pick("boneless pork ribs", "grilled chicken", "pizza square", "spaghetti chunks", "chicken tender")) /obj/item/storage/box/kit/exp_trooper diff --git a/code/modules/cm_marines/equipment/mortar/mortar_shells.dm b/code/modules/cm_marines/equipment/mortar/mortar_shells.dm index 45b3a6859d4a..dae0910cc9b4 100644 --- a/code/modules/cm_marines/equipment/mortar/mortar_shells.dm +++ b/code/modules/cm_marines/equipment/mortar/mortar_shells.dm @@ -8,6 +8,8 @@ var/datum/cause_data/cause_data ground_offset_x = 7 ground_offset_y = 6 + /// is it currently on fire and about to explode? + var/burning = FALSE /obj/item/mortar_shell/Destroy() @@ -154,6 +156,35 @@ icon_state = initial(icon_state) +"_unlocked" playsound(loc, 'sound/items/Screwdriver2.ogg', 25, 0, 6) +/obj/item/mortar_shell/ex_act(severity, explosion_direction) + if(!burning) + return ..() + +/obj/item/mortar_shell/attack_hand(mob/user) + if(burning) + to_chat(user, SPAN_DANGER("[src] is on fire and might explode!")) + return + return ..() + +/obj/item/mortar_shell/flamer_fire_act(dam, datum/cause_data/flame_cause_data) + if(burning) + return + burning = TRUE + cause_data = create_cause_data("Burning Mortar Shell", flame_cause_data.resolve_mob(), src) + handle_fire() + +/obj/item/mortar_shell/proc/handle_fire() + visible_message(SPAN_WARNING("[src] catches on fire and starts cooking off! It's gonna blow!")) + anchored = TRUE // don't want other explosions launching it elsewhere + + var/datum/effect_system/spark_spread/sparks = new() + sparks.set_up(n = 10, loca = loc) + sparks.start() + new /obj/effect/warning/explosive(loc, 5 SECONDS) + + addtimer(CALLBACK(src, PROC_REF(detonate), loc), 5 SECONDS) + addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(qdel), (src)), 5.5 SECONDS) + /obj/structure/closet/crate/secure/mortar_ammo name = "\improper M402 mortar ammo crate" desc = "A crate containing live mortar shells with various payloads. DO NOT DROP. KEEP AWAY FROM FIRE SOURCES." diff --git a/code/modules/cm_marines/equipment/mortar/mortars.dm b/code/modules/cm_marines/equipment/mortar/mortars.dm index a4d4cfdc1bf5..018bd7b9e11c 100644 --- a/code/modules/cm_marines/equipment/mortar/mortars.dm +++ b/code/modules/cm_marines/equipment/mortar/mortars.dm @@ -31,6 +31,8 @@ var/firing = FALSE /// If set to 1, can't unanchor and move the mortar, used for map spawns and WO var/fixed = FALSE + /// if true, blows up the shell immediately + var/ship_side = FALSE var/obj/structure/machinery/computer/cameras/mortar/internal_camera @@ -56,28 +58,28 @@ else return FALSE -/obj/structure/mortar/attack_alien(mob/living/carbon/xenomorph/M) - if(islarva(M)) +/obj/structure/mortar/attack_alien(mob/living/carbon/xenomorph/xeno) + if(islarva(xeno)) return XENO_NO_DELAY_ACTION if(fixed) - to_chat(M, SPAN_XENOWARNING("\The [src]'s supports are bolted and welded into the floor. It looks like it's going to be staying there.")) + to_chat(xeno, SPAN_XENOWARNING("\The [src]'s supports are bolted and welded into the floor. It looks like it's going to be staying there.")) return XENO_NO_DELAY_ACTION if(firing) - M.animation_attack_on(src) - M.flick_attack_overlay(src, "slash") + xeno.animation_attack_on(src) + xeno.flick_attack_overlay(src, "slash") playsound(src, "acid_hit", 25, 1) - playsound(M, "alien_help", 25, 1) - M.apply_damage(10, BURN) - M.visible_message(SPAN_DANGER("[M] tried to knock the steaming hot [src] over, but burned itself and pulled away!"), + playsound(xeno, "alien_help", 25, 1) + xeno.apply_damage(10, BURN) + xeno.visible_message(SPAN_DANGER("[xeno] tried to knock the steaming hot [src] over, but burned itself and pulled away!"), SPAN_XENOWARNING("\The [src] is burning hot! Wait a few seconds.")) return XENO_ATTACK_ACTION - M.visible_message(SPAN_DANGER("[M] lashes at \the [src] and knocks it over!"), + xeno.visible_message(SPAN_DANGER("[xeno] lashes at \the [src] and knocks it over!"), SPAN_DANGER("You knock \the [src] over!")) - M.animation_attack_on(src) - M.flick_attack_overlay(src, "slash") + xeno.animation_attack_on(src) + xeno.flick_attack_overlay(src, "slash") playsound(loc, 'sound/effects/metalhit.ogg', 25) var/obj/item/mortar_kit/MK = new /obj/item/mortar_kit(loc) MK.name = name @@ -171,8 +173,8 @@ SPAN_NOTICE("You finish adjusting [src]'s firing angle and distance to match the new coordinates.")) targ_x = deobfuscate_x(temp_targ_x) targ_y = deobfuscate_y(temp_targ_y) - var/offset_x_max = round(abs((targ_x) - x)/offset_per_turfs) //Offset of mortar shot, grows by 1 every 20 tiles travelled - var/offset_y_max = round(abs((targ_y) - y)/offset_per_turfs) + var/offset_x_max = floor(abs((targ_x) - x)/offset_per_turfs) //Offset of mortar shot, grows by 1 every 20 tiles travelled + var/offset_y_max = floor(abs((targ_y) - y)/offset_per_turfs) offset_x = rand(-offset_x_max, offset_x_max) offset_y = rand(-offset_y_max, offset_y_max) @@ -206,40 +208,47 @@ SStgui.update_uis(src) -/obj/structure/mortar/attackby(obj/item/O, mob/user) - if(istype(O, /obj/item/mortar_shell)) - var/obj/item/mortar_shell/mortar_shell = O +/obj/structure/mortar/attackby(obj/item/item, mob/user) + if(istype(item, /obj/item/mortar_shell)) + var/obj/item/mortar_shell/mortar_shell = item + var/turf/target_turf = locate(targ_x + dial_x + offset_x, targ_y + dial_y + offset_y, z) + var/area/target_area = get_area(target_turf) if(!skillcheck(user, SKILL_ENGINEER, SKILL_ENGINEER_TRAINED)) to_chat(user, SPAN_WARNING("You don't have the training to fire [src].")) return if(busy) to_chat(user, SPAN_WARNING("Someone else is currently using [src].")) return - if(!is_ground_level(z)) - to_chat(user, SPAN_WARNING("You cannot fire [src] here.")) - return - if(targ_x == 0 && targ_y == 0) //Mortar wasn't set - to_chat(user, SPAN_WARNING("[src] needs to be aimed first.")) - return - var/turf/T = locate(targ_x + dial_x + offset_x, targ_y + dial_y + offset_y, z) - if(!T) - to_chat(user, SPAN_WARNING("You cannot fire [src] to this target.")) - return - var/area/A = get_area(T) - if(!istype(A)) - to_chat(user, SPAN_WARNING("This area is out of bounds!")) - return - if(CEILING_IS_PROTECTED(A.ceiling, CEILING_PROTECTION_TIER_2) || protected_by_pylon(TURF_PROTECTION_MORTAR, T)) - to_chat(user, SPAN_WARNING("You cannot hit the target. It is probably underground.")) - return - if(SSticker.mode && MODE_HAS_TOGGLEABLE_FLAG(MODE_LZ_PROTECTION) && A.is_landing_zone) - to_chat(user, SPAN_WARNING("You cannot bomb the landing zone!")) - return - - //Small amount of spread so that consecutive mortar shells don't all land on the same tile - var/turf/T1 = locate(T.x + pick(-1,0,0,1), T.y + pick(-1,0,0,1), T.z) - if(T1) - T = T1 + if(!ship_side) + if(targ_x == 0 && targ_y == 0) //Mortar wasn't set + to_chat(user, SPAN_WARNING("[src] needs to be aimed first.")) + return + if(!target_turf) + to_chat(user, SPAN_WARNING("You cannot fire [src] to this target.")) + return + if(!istype(target_area)) + to_chat(user, SPAN_WARNING("This area is out of bounds!")) + return + if(CEILING_IS_PROTECTED(target_area.ceiling, CEILING_PROTECTION_TIER_2) || protected_by_pylon(TURF_PROTECTION_MORTAR, target_turf)) + to_chat(user, SPAN_WARNING("You cannot hit the target. It is probably underground.")) + return + if(SSticker.mode && MODE_HAS_TOGGLEABLE_FLAG(MODE_LZ_PROTECTION) && target_area.is_landing_zone) + to_chat(user, SPAN_WARNING("You cannot bomb the landing zone!")) + return + + if(ship_side) + var/crash_occurred = (SSticker?.mode?.is_in_endgame) + if(crash_occurred) + var/turf/our_turf = get_turf(src) + target_turf = our_turf + travel_time = 0.5 SECONDS + else + to_chat(user, SPAN_RED("You realize how bad of an idea this is and quickly stop.")) + return + else + var/turf/deviation_turf = locate(target_turf.x + pick(-1,0,0,1), target_turf.y + pick(-1,0,0,1), target_turf.z) //Small amount of spread so that consecutive mortar shells don't all land on the same tile + if(deviation_turf) + target_turf = deviation_turf user.visible_message(SPAN_NOTICE("[user] starts loading \a [mortar_shell.name] into [src]."), SPAN_NOTICE("You start loading \a [mortar_shell.name] into [src].")) @@ -259,15 +268,15 @@ mortar_shell.cause_data = create_cause_data(initial(mortar_shell.name), user, src) mortar_shell.forceMove(src) - var/turf/G = get_turf(src) - G.ceiling_debris_check(2) + var/turf/mortar_turf = get_turf(src) + mortar_turf.ceiling_debris_check(2) - for(var/mob/M in range(7)) - shake_camera(M, 3, 1) + for(var/mob/mob in range(7)) + shake_camera(mob, 3, 1) - addtimer(CALLBACK(src, PROC_REF(handle_shell), T, mortar_shell), travel_time) + addtimer(CALLBACK(src, PROC_REF(handle_shell), target_turf, mortar_shell), travel_time) - if(HAS_TRAIT(O, TRAIT_TOOL_WRENCH)) + if(HAS_TRAIT(item, TRAIT_TOOL_WRENCH)) if(!skillcheck(user, SKILL_ENGINEER, SKILL_ENGINEER_TRAINED)) to_chat(user, SPAN_WARNING("You don't have the training to undeploy [src].")) return @@ -287,11 +296,11 @@ user.visible_message(SPAN_NOTICE("[user] undeploys [src]."), \ SPAN_NOTICE("You undeploy [src].")) playsound(loc, 'sound/items/Deconstruct.ogg', 25, 1) - var/obj/item/mortar_kit/M = new /obj/item/mortar_kit(loc) - M.name = src.name + var/obj/item/mortar_kit/mortar = new /obj/item/mortar_kit(loc) + mortar.name = src.name qdel(src) - if(HAS_TRAIT(O, TRAIT_TOOL_SCREWDRIVER)) + if(HAS_TRAIT(item, TRAIT_TOOL_SCREWDRIVER)) if(do_after(user, 1 SECONDS, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD)) user.visible_message(SPAN_NOTICE("[user] toggles the targeting computer on [src]."), \ SPAN_NOTICE("You toggle the targeting computer on [src].")) @@ -303,29 +312,45 @@ if(EXPLOSION_THRESHOLD_MEDIUM to INFINITY) qdel(src) +/obj/effect/mortar_effect + icon = 'icons/obj/structures/mortar.dmi' + icon_state = "mortar_ammo_custom" + mouse_opacity = MOUSE_OPACITY_TRANSPARENT + invisibility = INVISIBILITY_MAXIMUM + /obj/structure/mortar/proc/handle_shell(turf/target, obj/item/mortar_shell/shell) if(protected_by_pylon(TURF_PROTECTION_MORTAR, target)) firing = FALSE return + if(ship_side) + var/turf/our_turf = get_turf(src) + shell.detonate(our_turf) + return + + if(istype(shell, /obj/item/mortar_shell/custom)) // big shell warning for ghosts + var/obj/effect/effect = new /obj/effect/mortar_effect(target) + QDEL_IN(effect, 5 SECONDS) + notify_ghosts(header = "Custom Shell", message = "A custom mortar shell is about to land at [get_area(target)].", source = effect) + playsound(target, 'sound/weapons/gun_mortar_travel.ogg', 50, 1) var/relative_dir - for(var/mob/M in range(15, target)) - if(get_turf(M) == target) + for(var/mob/mob in range(15, target)) + if(get_turf(mob) == target) relative_dir = 0 else - relative_dir = Get_Compass_Dir(M, target) - M.show_message( \ + relative_dir = Get_Compass_Dir(mob, target) + mob.show_message( \ SPAN_DANGER("A SHELL IS COMING DOWN [SPAN_UNDERLINE(relative_dir ? uppertext(("TO YOUR " + dir2text(relative_dir))) : uppertext("right above you"))]!"), SHOW_MESSAGE_VISIBLE, \ SPAN_DANGER("YOU HEAR SOMETHING COMING DOWN [SPAN_UNDERLINE(relative_dir ? uppertext(("TO YOUR " + dir2text(relative_dir))) : uppertext("right above you"))]!"), SHOW_MESSAGE_AUDIBLE \ ) sleep(2.5 SECONDS) // Sleep a bit to give a message - for(var/mob/M in range(10, target)) - if(get_turf(M) == target) + for(var/mob/mob in range(10, target)) + if(get_turf(mob) == target) relative_dir = 0 else - relative_dir = Get_Compass_Dir(M, target) - M.show_message( \ + relative_dir = Get_Compass_Dir(mob, target) + mob.show_message( \ SPAN_HIGHDANGER("A SHELL IS ABOUT TO IMPACT [SPAN_UNDERLINE(relative_dir ? uppertext(("TO YOUR " + dir2text(relative_dir))) : uppertext("right above you"))]!"), SHOW_MESSAGE_VISIBLE, \ SPAN_HIGHDANGER("YOU HEAR SOMETHING VERY CLOSE COMING DOWN [SPAN_UNDERLINE(relative_dir ? uppertext(("TO YOUR " + dir2text(relative_dir))) : uppertext("right above you"))]!"), SHOW_MESSAGE_AUDIBLE \ ) @@ -338,6 +363,9 @@ /obj/structure/mortar/proc/can_fire_at(mob/user, test_targ_x = targ_x, test_targ_y = targ_y, test_dial_x, test_dial_y) var/dialing = test_dial_x || test_dial_y + if(ship_side) + to_chat(user, SPAN_WARNING("You cannot aim the mortar while on a ship.")) + return FALSE if(test_dial_x + test_targ_x > world.maxx || test_dial_x + test_targ_x < 0) to_chat(user, SPAN_WARNING("You cannot [dialing ? "dial to" : "aim at"] this coordinate, it is outside of the area of operations.")) return FALSE @@ -385,21 +413,23 @@ if(!skillcheck(user, SKILL_ENGINEER, SKILL_ENGINEER_TRAINED)) to_chat(user, SPAN_WARNING("You don't have the training to deploy [src].")) return - if(!is_ground_level(deploy_turf.z)) - to_chat(user, SPAN_WARNING("You cannot deploy [src] here.")) - return - var/area/A = get_area(deploy_turf) - if(CEILING_IS_PROTECTED(A.ceiling, CEILING_PROTECTION_TIER_1)) + var/area/area = get_area(deploy_turf) + if(CEILING_IS_PROTECTED(area.ceiling, CEILING_PROTECTION_TIER_1) && is_ground_level(deploy_turf.z)) to_chat(user, SPAN_WARNING("You probably shouldn't deploy [src] indoors.")) return user.visible_message(SPAN_NOTICE("[user] starts deploying [src]."), \ SPAN_NOTICE("You start deploying [src].")) playsound(deploy_turf, 'sound/items/Deconstruct.ogg', 25, 1) if(do_after(user, 4 SECONDS, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD)) - user.visible_message(SPAN_NOTICE("[user] deploys [src]."), \ - SPAN_NOTICE("You deploy [src].")) + var/obj/structure/mortar/mortar = new /obj/structure/mortar(deploy_turf) + if(!is_ground_level(deploy_turf.z)) + mortar.ship_side = TRUE + user.visible_message(SPAN_NOTICE("[user] deploys [src]."), \ + SPAN_NOTICE("You deploy [src]. This is a bad idea.")) + else + user.visible_message(SPAN_NOTICE("[user] deploys [src]."), \ + SPAN_NOTICE("You deploy [src].")) playsound(deploy_turf, 'sound/weapons/gun_mortar_unpack.ogg', 25, 1) - var/obj/structure/mortar/M = new /obj/structure/mortar(deploy_turf) - M.name = src.name - M.setDir(user.dir) + mortar.name = src.name + mortar.setDir(user.dir) qdel(src) diff --git a/code/modules/cm_marines/equipment/weapons.dm b/code/modules/cm_marines/equipment/weapons.dm index 858b9dbeb79d..9a84c84125d5 100644 --- a/code/modules/cm_marines/equipment/weapons.dm +++ b/code/modules/cm_marines/equipment/weapons.dm @@ -5,7 +5,7 @@ icon = 'icons/obj/items/storage.dmi' icon_state = "kit_case" w_class = SIZE_HUGE - storage_slots = 4 + storage_slots = 7 slowdown = 1 can_hold = list() //Nada. Once you take the stuff out it doesn't fit back in. foldable = null @@ -16,12 +16,13 @@ new /obj/item/weapon/gun/smartgun(src) new /obj/item/smartgun_battery(src) new /obj/item/clothing/suit/storage/marine/smartgunner(src) + for(var/i in 1 to 3) + new /obj/item/ammo_magazine/smartgun(src) update_icon() /obj/item/storage/box/m56_system/update_icon() - if(overlays.len) - overlays.Cut() - if(contents.len) + LAZYCLEARLIST(overlays) + if(length(contents)) icon_state = "kit_case" overlays += image(icon, "smartgun") else @@ -48,9 +49,8 @@ update_icon() /obj/item/storage/box/m56c_system/update_icon() - if(overlays.len) - overlays.Cut() - if(contents.len) + LAZYCLEARLIST(overlays) + if(length(contents)) icon_state = "kit_case" overlays += image(icon, "smartgun") else @@ -78,9 +78,8 @@ update_icon() /obj/item/storage/box/m56_dirty_system/update_icon() - if(overlays.len) - overlays.Cut() - if(contents.len) + LAZYCLEARLIST(overlays) + if(length(contents)) icon_state = "kit_case" overlays += image(icon, "smartgun") else diff --git a/code/modules/cm_marines/m2c.dm b/code/modules/cm_marines/m2c.dm index f61c9ef89659..9afca5ae1fa8 100644 --- a/code/modules/cm_marines/m2c.dm +++ b/code/modules/cm_marines/m2c.dm @@ -73,7 +73,7 @@ icon_state = icon_name /obj/item/device/m2c_gun/proc/check_can_setup(mob/user, turf/rotate_check, turf/open/OT, list/ACR) - if(!ishuman(user)) + if(!ishuman(user) && !HAS_TRAIT(user, TRAIT_OPPOSABLE_THUMBS)) return FALSE if(broken_gun) to_chat(user, SPAN_WARNING("You can't set up \the [src], it's completely broken!")) @@ -131,23 +131,24 @@ if(!check_can_setup(user, rotate_check, OT, ACR)) return - var/obj/structure/machinery/m56d_hmg/auto/M = new /obj/structure/machinery/m56d_hmg/auto(user.loc) - transfer_label_component(M) - M.setDir(user.dir) // Make sure we face the right direction - M.anchored = TRUE - playsound(M, 'sound/items/m56dauto_setup.ogg', 75, TRUE) - to_chat(user, SPAN_NOTICE("You deploy [M].")) - if((rounds > 0) && !user.get_inactive_hand()) - user.set_interaction(M) - give_action(user, /datum/action/human_action/mg_exit) - M.rounds = rounds - M.overheat_value = overheat_value - M.health = health - M.update_icon() + var/obj/structure/machinery/m56d_hmg/auto/HMG = new(user.loc) + transfer_label_component(HMG) + HMG.setDir(user.dir) // Make sure we face the right direction + HMG.anchored = TRUE + playsound(HMG, 'sound/items/m56dauto_setup.ogg', 75, TRUE) + to_chat(user, SPAN_NOTICE("You deploy [HMG].")) + HMG.rounds = rounds + HMG.overheat_value = overheat_value + HMG.health = health + HMG.update_damage_state() + HMG.update_icon() qdel(src) + if(HMG.rounds > 0) + HMG.try_mount_gun(user) + /obj/item/device/m2c_gun/attackby(obj/item/O as obj, mob/user as mob) - if(!ishuman(user)) + if(!ishuman(user) && !HAS_TRAIT(user, TRAIT_OPPOSABLE_THUMBS)) return if(!iswelder(O) || user.action_busy) @@ -313,12 +314,13 @@ if(health <= 0) playsound(src.loc, 'sound/items/Welder2.ogg', 25, 1) visible_message(SPAN_WARNING("[src] has broken down completely!")) - var/obj/item/device/m2c_gun/HMG = new(src.loc) + var/obj/item/device/m2c_gun/HMG = new(loc) HMG.rounds = rounds HMG.broken_gun = TRUE HMG.unacidable = FALSE HMG.health = 0 HMG.update_icon() + transfer_label_component(HMG) qdel(src) return @@ -328,7 +330,7 @@ update_icon() /obj/structure/machinery/m56d_hmg/auto/attackby(obj/item/O as obj, mob/user as mob) - if(!ishuman(user)) + if(!ishuman(user) && !HAS_TRAIT(user, TRAIT_OPPOSABLE_THUMBS)) return // RELOADING if(istype(O, /obj/item/ammo_magazine/m2c)) @@ -367,7 +369,7 @@ return user.visible_message(SPAN_NOTICE("[user] repairs some of the damage on [src]."), \ SPAN_NOTICE("You repair [src].")) - update_health(-round(health_max*0.2)) + update_health(-floor(health_max*0.2)) playsound(src.loc, 'sound/items/Welder2.ogg', 25, 1) else to_chat(user, SPAN_WARNING("You need more fuel in [WT] to repair damage to [src].")) @@ -420,7 +422,7 @@ /obj/structure/machinery/m56d_hmg/auto/proc/force_cooldown(mob/user) user = operator - overheat_value = round((rand(M2C_LOW_COOLDOWN_ROLL, M2C_HIGH_COOLDOWN_ROLL) * overheat_threshold)) + overheat_value = floor((rand(M2C_LOW_COOLDOWN_ROLL, M2C_HIGH_COOLDOWN_ROLL) * overheat_threshold)) playsound(src.loc, 'sound/weapons/hmg_cooling.ogg', 75, 1) to_chat(user, SPAN_NOTICE("[src]'s barrel has cooled down enough to restart firing.")) emergency_cooling = FALSE @@ -446,40 +448,20 @@ //ATTACK WITH BOTH HANDS COMBO /obj/structure/machinery/m56d_hmg/auto/attack_hand(mob/living/user) - ..() + if(..()) + return TRUE - var/turf/user_turf = get_turf(user) - for(var/opp_dir in reverse_nearby_direction(src.dir)) - if(get_step(src, opp_dir) == user_turf) - if(operator) //If there is already a operator then they're manning it. - if(operator.interactee == null) - operator = null //this shouldn't happen, but just in case - else - to_chat(user, "Someone's already controlling it.") - return - if(!(user.alpha > 60)) - to_chat(user, SPAN_WARNING("You aren't going to be setting up while cloaked.")) - return - else - if(user.interactee) //Make sure we're not manning two guns at once, tentacle arms. - to_chat(user, "You're already manning something!") - return - - if(user.get_active_hand() == null && user.get_inactive_hand() == null) - ADD_TRAIT(user, TRAIT_IMMOBILIZED, INTERACTION_TRAIT) - user.set_interaction(src) - give_action(user, /datum/action/human_action/mg_exit) - else - to_chat(usr, SPAN_NOTICE("Your hands are too busy holding things to grab the handles!")) - else - to_chat(usr, SPAN_NOTICE("You are too far from the handles to man [src]!")) + try_mount_gun(user) // DISASSEMBLY /obj/structure/machinery/m56d_hmg/auto/MouseDrop(over_object, src_location, over_location) - if(!ishuman(usr)) return - var/mob/living/carbon/human/user = usr - + var/mob/living/carbon/user = usr + // If the user is unconscious or dead. + if(user.stat) + return + if(!ishuman(user) && !HAS_TRAIT(user, TRAIT_OPPOSABLE_THUMBS)) + return if(over_object == user && in_range(src, user)) if((rounds > 0) && (user.a_intent & (INTENT_GRAB))) playsound(src.loc, 'sound/items/m56dauto_load.ogg', 75, 1) @@ -494,10 +476,10 @@ return user.visible_message(SPAN_NOTICE("[user] disassembles [src]."),SPAN_NOTICE("You fold up the tripod for [src], disassembling it.")) playsound(src.loc, 'sound/items/m56dauto_setup.ogg', 75, 1) - var/obj/item/device/m2c_gun/HMG = new(src.loc) + var/obj/item/device/m2c_gun/HMG = new(loc) transfer_label_component(HMG) - HMG.rounds = src.rounds - HMG.overheat_value = round(0.5 * src.overheat_value) + HMG.rounds = rounds + HMG.overheat_value = floor(0.5 * overheat_value) if (HMG.overheat_value <= 10) HMG.overheat_value = 0 HMG.update_icon() @@ -515,7 +497,6 @@ ..() ADD_TRAIT(user, TRAIT_OVERRIDE_CLICKDRAG, TRAIT_SOURCE_WEAPON) RegisterSignal(user, COMSIG_MOVABLE_PRE_MOVE, PROC_REF(disable_interaction)) - RegisterSignal(user, COMSIG_LIVING_SET_BODY_POSITION, PROC_REF(body_position_changed)) // DISMOUNT THE MG @@ -601,12 +582,6 @@ if(user.body_position != STANDING_UP || get_dist(user,src) > 0 || user.is_mob_incapacitated() || !user.client) user.unset_interaction() -/obj/structure/machinery/m56d_hmg/auto/proc/body_position_changed(mob/living/user, body_position, old_body_position) - SIGNAL_HANDLER - - if(body_position != STANDING_UP) - user.unset_interaction() - /obj/structure/machinery/m56d_hmg/auto/proc/handle_rotating_gun(mob/user) var/angle = get_dir(src, target) if(world.time > rotate_timer && !((dir & angle) && target.loc != src.loc && target.loc != operator.loc)) diff --git a/code/modules/cm_marines/marines_consoles.dm b/code/modules/cm_marines/marines_consoles.dm index 994e9f1ddcb2..7225556584de 100644 --- a/code/modules/cm_marines/marines_consoles.dm +++ b/code/modules/cm_marines/marines_consoles.dm @@ -8,6 +8,14 @@ #define CARDCON_DEPARTMENT_ENGINEERING "Engineering" #define CARDCON_DEPARTMENT_COMMAND "Command" +// Weyland Yutani Categories +#define CARDCON_DEPARTMENT_CORP_LEAD "Corporate Leadership" +#define CARDCON_DEPARTMENT_CORP_SECURITY "Corporate Security" +#define CARDCON_DEPARTMENT_CORPORATE "Corporate Employees" +#define CARDCON_DEPARTMENT_PMC "PMC Combat Ops" +#define CARDCON_DEPARTMENT_INSPECTION "PMC Investigations" +#define CARDCON_DEPARTMENT_SPECIALTY "PMC Specialists" + /obj/structure/machinery/computer/card name = "Identification Computer" desc = "Terminal for programming USCM employee ID card access." @@ -20,9 +28,14 @@ var/list/factions = list(FACTION_MARINE) var/printing - var/is_centcom = FALSE + var/is_weyland = FALSE var/authenticated = FALSE +/obj/structure/machinery/computer/card/wey_yu + is_weyland = TRUE + req_access = list(ACCESS_WY_DATABASE) + factions = list(FACTION_WY, FACTION_PMC) + /obj/structure/machinery/computer/card/proc/authenticate(mob/user, obj/item/card/id/id_card) if(!id_card) visible_message("[SPAN_BOLD("[src]")] states, \"AUTH ERROR: Authority confirmation card is missing!\"") @@ -43,12 +56,12 @@ ui = new(user, src, "CardMod", name) ui.open() -/obj/structure/machinery/computer/card/ui_act(action, params) +/obj/structure/machinery/computer/card/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) . = ..() if(.) return - var/mob/user = usr + var/mob/user = ui.user playsound(src, pick('sound/machines/computer_typing4.ogg', 'sound/machines/computer_typing5.ogg', 'sound/machines/computer_typing6.ogg'), 5, 1) switch(action) @@ -91,18 +104,11 @@ printing = TRUE playsound(src.loc, 'sound/machines/fax.ogg', 15, 1) sleep(40) - var/faction = "N/A" - if(target_id_card.faction_group && islist(target_id_card.faction_group)) - faction = jointext(target_id_card.faction_group, ", ") - if(isnull(target_id_card.faction_group)) - target_id_card.faction_group = list() - else - faction = target_id_card.faction_group var/contents = {"

          Access Report

          Prepared By: [user_id_card?.registered_name ? user_id_card.registered_name : "Unknown"]
          For: [target_id_card.registered_name ? target_id_card.registered_name : "Unregistered"]

          - Faction: [faction]
          + Faction: [target_id_card.faction ? target_id_card.faction : "N/A"]
          Assignment: [target_id_card.assignment]
          Account Number: #[target_id_card.associated_account_number]
          Blood Type: [target_id_card.blood_type]

          @@ -112,7 +118,10 @@ var/known_access_rights = get_access(ACCESS_LIST_MARINE_ALL) for(var/A in target_id_card.access) if(A in known_access_rights) - contents += " [get_access_desc(A)]" + contents += " [get_access_desc(A)]
          " + contents += "
          Modification Log:
          " + for(var/change in target_id_card.modification_log) + contents += " [change]
          " var/obj/item/paper/P = new /obj/item/paper(src.loc) P.name = "Access Report" @@ -139,9 +148,9 @@ GLOB.data_core.manifest_modify(target_id_card.registered_name, target_id_card.registered_ref, target_id_card.assignment, target_id_card.rank) target_id_card.name = text("[target_id_card.registered_name]'s ID Card ([target_id_card.assignment])") if(target_id_card.registered_name != origin_name) - log_idmod(target_id_card, " [key_name_admin(usr)] changed the registered name of the ID to '[target_id_card.registered_name]'. ") + log_idmod(target_id_card, " [user.real_name] changed the registered name of the ID to '[target_id_card.registered_name]'. ", key_name_admin(user)) if(target_id_card.assignment != origin_assignment) - log_idmod(target_id_card, " [key_name_admin(usr)] changed the assignment of the ID to the custom position '[target_id_card.assignment]'. ") + log_idmod(target_id_card, " [user.real_name] changed the assignment of the ID to the custom position '[target_id_card.assignment]'. ", key_name_admin(user)) if(ishuman(user)) target_id_card.forceMove(user.loc) if(!user.get_active_hand()) @@ -170,8 +179,8 @@ target_id_card.assignment = "Terminated" target_id_card.access = list() - log_idmod(target_id_card, " [key_name_admin(usr)] terminated the ID. ") - message_admins("[key_name_admin(usr)] terminated the ID of [target_id_card.registered_name].") + log_idmod(target_id_card, " [user.real_name] terminated the ID. ", key_name_admin(user)) + message_admins("[user.real_name] terminated the ID of [target_id_card.registered_name].", key_name_admin(user)) return TRUE if("PRG_edit") if(!authenticated || !target_id_card) @@ -196,7 +205,7 @@ target_id_card.assignment = custom_name else var/list/new_access = list() - if(is_centcom) + if(is_weyland) new_access = get_access(ACCESS_LIST_WY_ALL) else var/datum/job/job = GLOB.RoleAuthority.roles_for_mode[target] @@ -221,27 +230,27 @@ target_id_card.faction_group = list() if(params["access_target"] in target_id_card.faction_group) target_id_card.faction_group -= params["access_target"] - log_idmod(target_id_card, " [key_name_admin(usr)] revoked [access_type] IFF. ") + log_idmod(target_id_card, " [user.real_name] revoked [access_type] IFF. ", key_name_admin(user)) else target_id_card.faction_group |= params["access_target"] - log_idmod(target_id_card, " [key_name_admin(usr)] granted [access_type] IFF. ") + log_idmod(target_id_card, " [user.real_name] granted [access_type] IFF. ", key_name_admin(user)) return TRUE access_type = text2num(params["access_target"]) - if(access_type in (is_centcom ? get_access(ACCESS_LIST_WY_ALL) : get_access(ACCESS_LIST_MARINE_MAIN))) + if(access_type in (is_weyland ? get_access(ACCESS_LIST_WY_ALL) : get_access(ACCESS_LIST_MARINE_MAIN))) if(access_type in target_id_card.access) target_id_card.access -= access_type - log_idmod(target_id_card, " [key_name_admin(usr)] revoked access '[access_type]'. ") + log_idmod(target_id_card, " [user.real_name] revoked access '[get_access_desc(access_type)]'. ", key_name_admin(user)) else target_id_card.access |= access_type - log_idmod(target_id_card, " [key_name_admin(usr)] granted access '[access_type]'. ") + log_idmod(target_id_card, " [user.real_name] granted access '[get_access_desc(access_type)]'. ", key_name_admin(user)) return TRUE if("PRG_grantall") if(!authenticated || !target_id_card) return - target_id_card.access |= (is_centcom ? get_access(ACCESS_LIST_WY_ALL) : get_access(ACCESS_LIST_MARINE_MAIN)) + target_id_card.access |= (is_weyland ? get_access(ACCESS_LIST_WY_ALL) : get_access(ACCESS_LIST_MARINE_MAIN)) target_id_card.faction_group |= factions - log_idmod(target_id_card, " [key_name_admin(usr)] granted the ID all access and USCM IFF. ") + log_idmod(target_id_card, " [user.real_name] granted the ID all access and USCM IFF. ", key_name_admin(user)) return TRUE if("PRG_denyall") if(!authenticated || !target_id_card) @@ -250,7 +259,7 @@ var/list/access = target_id_card.access access.Cut() target_id_card.faction_group -= factions - log_idmod(target_id_card, " [key_name_admin(usr)] removed all accesses and USCM IFF. ") + log_idmod(target_id_card, " [user.real_name] removed all accesses and USCM IFF. ", key_name_admin(user)) return TRUE if("PRG_grantregion") if(!authenticated || !target_id_card) @@ -258,14 +267,14 @@ if(params["region"] == "Faction (IFF system)") target_id_card.faction_group |= factions - log_idmod(target_id_card, " [key_name_admin(usr)] granted USCM IFF. ") + log_idmod(target_id_card, " [user.real_name] granted USCM IFF. ", key_name_admin(user)) return TRUE var/region = text2num(params["region"]) if(isnull(region)) return target_id_card.access |= get_region_accesses(region) var/additions = get_region_accesses_name(region) - log_idmod(target_id_card, " [key_name_admin(usr)] granted all [additions] accesses. ") + log_idmod(target_id_card, " [user.real_name] granted all [additions] accesses. ", key_name_admin(user)) return TRUE if("PRG_denyregion") if(!authenticated || !target_id_card) @@ -273,14 +282,14 @@ if(params["region"] == "Faction (IFF system)") target_id_card.faction_group -= factions - log_idmod(target_id_card, " [key_name_admin(usr)] revoked USCM IFF. ") + log_idmod(target_id_card, " [user.real_name] revoked USCM IFF. ", key_name_admin(user)) return TRUE var/region = text2num(params["region"]) if(isnull(region)) return target_id_card.access -= get_region_accesses(region) var/additions = get_region_accesses_name(region) - log_idmod(target_id_card, " [key_name_admin(usr)] revoked all [additions] accesses. ") + log_idmod(target_id_card, " [user.real_name] revoked all [additions] accesses. ", key_name_admin(user)) return TRUE if("PRG_account") if(!authenticated || !target_id_card) @@ -288,18 +297,25 @@ var/account = text2num(params["account"]) target_id_card.associated_account_number = account - log_idmod(target_id_card, " [key_name_admin(usr)] changed the account number to '[account]'. ") + log_idmod(target_id_card, " [user.real_name] changed the account number to '[account]'. ", key_name_admin(user)) return TRUE /obj/structure/machinery/computer/card/ui_static_data(mob/user) var/list/data = list() data["station_name"] = MAIN_SHIP_NAME - data["centcom_access"] = is_centcom + data["weyland_access"] = is_weyland data["manifest"] = GLOB.data_core.get_manifest(FALSE, FALSE, TRUE) var/list/departments - if(is_centcom) - departments = list("CentCom" = get_all_centcom_jobs()) + if(is_weyland) + departments = list( + CARDCON_DEPARTMENT_CORP_LEAD = ROLES_WY_LEADERSHIP, + CARDCON_DEPARTMENT_CORP_SECURITY = ROLES_WY_GOONS, + CARDCON_DEPARTMENT_CORPORATE = ROLES_WY_CORPORATE, + CARDCON_DEPARTMENT_PMC = ROLES_WY_PMC, + CARDCON_DEPARTMENT_SPECIALTY = ROLES_WY_PMC_AUX, + CARDCON_DEPARTMENT_INSPECTION = ROLES_WY_PMC_INSPEC, + ) else if(Check_WO()) // I am not sure about WOs departments so it may need adjustment departments = list( @@ -336,18 +352,26 @@ data["jobs"][department] = department_jobs var/list/regions = list() - for(var/i in 1 to 7) + for(var/i in 1 to is_weyland ? 6 : 7) var/list/accesses = list() - for(var/access in get_region_accesses(i)) - if (get_access_desc(access)) - accesses += list(list( - "desc" = replacetext(get_access_desc(access), " ", " "), - "ref" = access, - )) + if(!is_weyland) + for(var/access in get_region_accesses(i)) + if(get_access_desc(access)) + accesses += list(list( + "desc" = replacetext(get_access_desc(access), " ", " "), + "ref" = access, + )) + else + for(var/access in get_region_accesses_wy(i)) + if(get_weyland_access_desc(access)) + accesses += list(list( + "desc" = replacetext(get_weyland_access_desc(access), " ", " "), + "ref" = access, + )) regions += list(list( - "name" = get_region_accesses_name(i), + "name" = is_weyland ? get_region_accesses_name_wy(i) : get_region_accesses_name(i), "regid" = i, "accesses" = accesses )) @@ -479,6 +503,13 @@ #undef CARDCON_DEPARTMENT_ENGINEERING #undef CARDCON_DEPARTMENT_COMMAND +#undef CARDCON_DEPARTMENT_CORP_LEAD +#undef CARDCON_DEPARTMENT_CORP_SECURITY +#undef CARDCON_DEPARTMENT_CORPORATE +#undef CARDCON_DEPARTMENT_PMC +#undef CARDCON_DEPARTMENT_INSPECTION +#undef CARDCON_DEPARTMENT_SPECIALTY + //This console changes a marine's squad. It's very simple. //It also does not: change or increment the squad count (used in the login randomizer), nor does it check for jobs. //Which means you could get sillyiness like "Alpha Sulaco Chief Medical Officer" or "Delta Logistics Officer". @@ -728,7 +759,10 @@ /obj/structure/machinery/computer/crew/clf faction = FACTION_CLF -/obj/structure/machinery/computer/crew/pmc +/obj/structure/machinery/computer/crew/wey_yu + faction = FACTION_WY + +/obj/structure/machinery/computer/crew/wey_yu/pmc faction = FACTION_PMC /obj/structure/machinery/computer/crew/colony @@ -771,7 +805,7 @@ GLOBAL_LIST_EMPTY_TYPED(crewmonitor, /datum/crewmonitor) ui.open() /datum/crewmonitor/proc/show(mob/M, source) - if(!ui_sources.len) + if(!length(ui_sources)) START_PROCESSING(SSprocessing, src) ui_sources[M] = source tgui_interact(M) @@ -789,7 +823,7 @@ GLOBAL_LIST_EMPTY_TYPED(crewmonitor, /datum/crewmonitor) /datum/crewmonitor/ui_close(mob/M) . = ..() ui_sources -= M - if(!ui_sources.len) + if(!length(ui_sources)) STOP_PROCESSING(SSprocessing, src) /datum/crewmonitor/ui_host(mob/user) @@ -798,7 +832,7 @@ GLOBAL_LIST_EMPTY_TYPED(crewmonitor, /datum/crewmonitor) /datum/crewmonitor/ui_data(mob/user) . = list( "sensors" = update_data(), - "link_allowed" = isAI(user), + "link_allowed" = isSilicon(user), ) /datum/crewmonitor/proc/update_data() @@ -819,7 +853,7 @@ GLOBAL_LIST_EMPTY_TYPED(crewmonitor, /datum/crewmonitor) var/turf/pos = get_turf(H) if(!pos) continue - if(is_admin_level(pos.z)) + if(should_block_game_interaction(H)) continue // The entry for this human @@ -868,26 +902,17 @@ GLOBAL_LIST_EMPTY_TYPED(crewmonitor, /datum/crewmonitor) return results +/* + * Unimplemented. Was for AIs tracking but we never had them working. + * /datum/crewmonitor/ui_act(action,params) . = ..() if(.) return switch (action) if ("select_person") - // May work badly cause currently there is no player-controlled AI - var/mob/living/silicon/ai/AI = usr - if(!istype(AI)) - return - var/mob/living/carbon/human/H - for(var/entry in data) - if(entry["name"] == params["name"]) - H = locate(entry["ref"]) - break - if(!H) // Sanity check - to_chat(AI, SPAN_NOTICE("ERROR: unable to track subject with ID '[params["name"]]'")) - else - // We do not care is there camera or no - we just know his location - AI.ai_actual_track(H) + +*/ /datum/crewmonitor/proc/setup_for_faction(set_faction = FACTION_MARINE) switch(set_faction) @@ -913,9 +938,11 @@ GLOBAL_LIST_EMPTY_TYPED(crewmonitor, /datum/crewmonitor) // 20-29: Aux Command JOB_AUXILIARY_OFFICER = 20, JOB_SYNTH = 21, - JOB_PILOT = 22, - JOB_DROPSHIP_CREW_CHIEF = 23, - JOB_INTEL = 24, + JOB_CAS_PILOT = 22, + JOB_DROPSHIP_PILOT = 23, + JOB_DROPSHIP_CREW_CHIEF = 24, + JOB_INTEL = 25, + JOB_TANK_CREW = 26, // 30-39: Security JOB_CHIEF_POLICE = 30, JOB_PROVOST_TML = 30, @@ -1041,7 +1068,8 @@ GLOBAL_LIST_EMPTY_TYPED(crewmonitor, /datum/crewmonitor) JOB_JUNIOR_EXECUTIVE = 24, // 30-39: Security JOB_WY_GOON_LEAD = 30, - JOB_WY_GOON = 31, + JOB_WY_GOON_TECH = 32, + JOB_WY_GOON = 32, // 40-49: MedSci JOB_PMC_SYNTH = 40, JOB_PMC_XENO_HANDLER = 41, @@ -1092,6 +1120,7 @@ GLOBAL_LIST_EMPTY_TYPED(crewmonitor, /datum/crewmonitor) // 50-59: Engineering JOB_UPP_COMBAT_SYNTH = 50, JOB_UPP_CREWMAN = 51, + JOB_UPP_SUPPORT_SYNTH = 52, // 60-69: Soldiers JOB_UPP_LEADER = 60, JOB_UPP_SPECIALIST = 61, diff --git a/code/modules/cm_marines/orbital_cannon.dm b/code/modules/cm_marines/orbital_cannon.dm index b003237f68ee..a4286b043eba 100644 --- a/code/modules/cm_marines/orbital_cannon.dm +++ b/code/modules/cm_marines/orbital_cannon.dm @@ -184,9 +184,12 @@ GLOBAL_LIST(ob_type_fuel_requirements) chambered_tray = TRUE var/misfuel = get_misfuel_amount() var/message = "[key_name(user)] chambered the Orbital Bombardment cannon." + var/ares_message = "Shell chambered." if(misfuel) message += " It is misfueled by [misfuel] units!" + ares_message += " Fuel imbalance detected!" message_admins(message, x, y, z) + log_ares_bombardment(user, lowertext(tray.warhead.name), ares_message) update_icon() @@ -224,8 +227,8 @@ GLOBAL_LIST_EMPTY(orbital_cannon_cancellation) var/area/area = get_area(T) var/off_x = (inaccurate_fuel + 1) * round(rand(-3,3), 1) var/off_y = (inaccurate_fuel + 1) * round(rand(-3,3), 1) - var/target_x = Clamp(T.x + off_x, 1, world.maxx) - var/target_y = Clamp(T.y + off_y, 1, world.maxy) + var/target_x = clamp(T.x + off_x, 1, world.maxx) + var/target_y = clamp(T.y + off_y, 1, world.maxy) var/turf/target = locate(target_x, target_y, T.z) var/area/target_area = get_area(target) @@ -509,15 +512,13 @@ GLOBAL_LIST_EMPTY(orbital_cannon_cancellation) var/distance = 18 var/fire_level = 70 var/burn_level = 80 - var/fire_color = null + var/fire_color = LIGHT_COLOR_CYAN var/fire_type = "white" /obj/structure/ob_ammo/warhead/incendiary/warhead_impact(turf/target) . = ..() if (!.) return - if(fire_color) - fire_type = "dynamic" new /obj/effect/overlay/temp/blinking_laser (target) sleep(10) diff --git a/code/modules/cm_marines/overwatch.dm b/code/modules/cm_marines/overwatch.dm index c5b296772c79..84a27622959a 100644 --- a/code/modules/cm_marines/overwatch.dm +++ b/code/modules/cm_marines/overwatch.dm @@ -56,8 +56,7 @@ return FALSE /obj/structure/machinery/computer/overwatch/attack_remote(mob/user as mob) - if(!ismaintdrone(user)) - return attack_hand(user) + return attack_hand(user) /obj/structure/machinery/computer/overwatch/attack_hand(mob/user) if(..()) //Checks for power outages @@ -66,7 +65,7 @@ if(istype(src, /obj/structure/machinery/computer/overwatch/almayer/broken)) return - if(!ishighersilicon(usr) && !skillcheck(user, SKILL_OVERWATCH, SKILL_OVERWATCH_TRAINED) && SSmapping.configs[GROUND_MAP].map_name != MAP_WHISKEY_OUTPOST) + if(!isSilicon(usr) && !skillcheck(user, SKILL_OVERWATCH, SKILL_OVERWATCH_TRAINED) && SSmapping.configs[GROUND_MAP].map_name != MAP_WHISKEY_OUTPOST) to_chat(user, SPAN_WARNING("You don't have the training to use [src].")) return @@ -185,13 +184,11 @@ if(is_ground_level(current_turf.z)) continue + var/obj/item/card/id/card = marine_human.get_idcard() if(marine_human.job) role = marine_human.job - else if(istype(marine_human.wear_id, /obj/item/card/id)) //decapitated marine is mindless, - var/obj/item/card/id/ID = marine_human.wear_id //we use their ID to get their role. - if(ID.rank) - role = ID.rank - + else if(card?.rank) //decapitated marine is mindless, + role = card.rank if(current_squad.squad_leader) if(marine_human == current_squad.squad_leader) @@ -250,15 +247,14 @@ if(JOB_SQUAD_SPECIALIST) spec_count++ if(marine_human) - if(istype(marine_human.wear_id, /obj/item/card/id)) //decapitated marine is mindless, - var/obj/item/card/id/ID = marine_human.wear_id //we use their ID to get their role. - if(ID.assignment) - if(specialist_type) - specialist_type = "MULTIPLE" - else - var/list/spec_type = splittext(ID.assignment, "(") - if(islist(spec_type) && (length(spec_type) > 1)) - specialist_type = splittext(spec_type[2], ")")[1] + var/obj/item/card/id/card = marine_human.get_idcard() + if(card?.assignment) //decapitated marine is mindless, + if(specialist_type) + specialist_type = "MULTIPLE" + else + var/list/spec_type = splittext(card.assignment, "(") + if(islist(spec_type) && (length(spec_type) > 1)) + specialist_type = splittext(spec_type[2], ")")[1] else if(!specialist_type) specialist_type = "UNKNOWN" if(mob_state != "Dead") @@ -317,10 +313,12 @@ has_supply_pad = TRUE data["can_launch_crates"] = has_supply_pad data["has_crate_loaded"] = supply_crate - data["supply_cooldown"] = COOLDOWN_TIMELEFT(current_squad, next_supplydrop) - data["ob_cooldown"] = COOLDOWN_TIMELEFT(GLOB.almayer_orbital_cannon, ob_firing_cooldown) - data["ob_loaded"] = GLOB.almayer_orbital_cannon.chambered_tray + data["can_launch_obs"] = GLOB.almayer_orbital_cannon + if(GLOB.almayer_orbital_cannon) + data["ob_cooldown"] = COOLDOWN_TIMELEFT(GLOB.almayer_orbital_cannon, ob_firing_cooldown) + data["ob_loaded"] = GLOB.almayer_orbital_cannon.chambered_tray + data["supply_cooldown"] = COOLDOWN_TIMELEFT(current_squad, next_supplydrop) data["operator"] = operator.name return data @@ -335,7 +333,7 @@ var/mob/user = usr - if((user.contents.Find(src) || (in_range(src, user) && istype(loc, /turf))) || (ishighersilicon(user))) + if((user.contents.Find(src) || (in_range(src, user) && istype(loc, /turf))) || (isSilicon(user))) user.set_interaction(src) switch(action) @@ -360,7 +358,7 @@ return TRUE if("logout") if(current_squad?.release_overwatch()) - if(ishighersilicon(user)) + if(isSilicon(user)) current_squad.send_squad_message("Attention. [operator.name] has released overwatch system control. Overwatch functions deactivated.", displayed_icon = src) to_chat(user, "[icon2html(src, user)] [SPAN_BOLDNOTICE("Overwatch system control override disengaged.")]") else @@ -370,7 +368,7 @@ visible_message("[icon2html(src, viewers(src))] [SPAN_BOLDNOTICE("Overwatch systems deactivated. Goodbye, [ID ? "[ID.rank] ":""][operator ? "[operator.name]":"sysadmin"].")]") operator = null current_squad = null - if(cam && !ishighersilicon(user)) + if(cam && !isSilicon(user)) user.reset_view(null) user.UnregisterSignal(cam, COMSIG_PARENT_QDELETING) cam = null @@ -516,12 +514,12 @@ user.RegisterSignal(cam, COMSIG_PARENT_QDELETING, TYPE_PROC_REF(/mob, reset_observer_view_on_deletion)) if("change_operator") if(operator != user) - if(operator && ishighersilicon(operator)) + if(operator && isSilicon(operator)) visible_message("[icon2html(src, viewers(src))] [SPAN_BOLDNOTICE("AI override in progress. Access denied.")]") return if(!current_squad || current_squad.assume_overwatch(user)) operator = user - if(ishighersilicon(user)) + if(isSilicon(user)) to_chat(user, "[icon2html(src, usr)] [SPAN_BOLDNOTICE("Overwatch system AI override protocol successful.")]") current_squad?.send_squad_message("Attention. [operator.name] has engaged overwatch system control override.", displayed_icon = src) else @@ -588,9 +586,9 @@ if(sl_headset) sl_headset.keys += new /obj/item/device/encryptionkey/squadlead/acting(sl_headset) sl_headset.recalculateChannels() - if(istype(selected_sl.wear_id, /obj/item/card/id)) - var/obj/item/card/id/ID = selected_sl.wear_id - ID.access += ACCESS_MARINE_LEADER + var/obj/item/card/id/card = selected_sl.get_idcard() + if(card) + card.access += ACCESS_MARINE_LEADER selected_sl.hud_set_squad() selected_sl.update_inv_head() //updating marine helmet leader overlays selected_sl.update_inv_wear_suit() @@ -695,7 +693,8 @@ to_chat(usr, "[icon2html(src, usr)] [SPAN_WARNING("[transfer_marine] is KIA.")]") return - if(!istype(transfer_marine.wear_id, /obj/item/card/id)) + var/obj/item/card/id/card = transfer_marine.get_idcard() + if(!card) to_chat(usr, "[icon2html(src, usr)] [SPAN_WARNING("Transfer aborted. [transfer_marine] isn't wearing an ID.")]") return @@ -712,7 +711,8 @@ to_chat(usr, "[icon2html(src, usr)] [SPAN_WARNING("[transfer_marine] is KIA.")]") return - if(!istype(transfer_marine.wear_id, /obj/item/card/id)) + card = transfer_marine.get_idcard() + if(!card) to_chat(usr, "[icon2html(src, usr)] [SPAN_WARNING("Transfer aborted. [transfer_marine] isn't wearing an ID.")]") return @@ -725,7 +725,7 @@ to_chat(usr, "[icon2html(src, usr)] [SPAN_WARNING("Transfer aborted. [new_squad] can't have another [transfer_marine.job].")]") return - . = transfer_marine_to_squad(transfer_marine, new_squad, old_squad) + . = transfer_marine_to_squad(transfer_marine, new_squad, old_squad, card) if(.) visible_message("[icon2html(src, viewers(src))] [SPAN_BOLDNOTICE("[transfer_marine] has been transfered from squad '[old_squad]' to squad '[new_squad]'. Logging to enlistment file.")]") to_chat(transfer_marine, "[icon2html(src, transfer_marine)] \[Overwatch\]: You've been transfered to [new_squad]!") @@ -799,7 +799,7 @@ notify_ghosts(header = "Bombardment Inbound", message = "\A [ob_name] targeting [get_area(T)] has been fired!", source = T, alert_overlay = warhead_appearance, extra_large = TRUE) /// Project ARES interface log. - log_ares_bombardment(user.name, ob_name, "X[x_bomb], Y[y_bomb] in [get_area(T)]") + log_ares_bombardment(user.name, ob_name, "Bombardment fired at X[x_bomb], Y[y_bomb] in [get_area(T)]") busy = FALSE if(istype(T)) @@ -815,8 +815,8 @@ to_chat(usr, "[icon2html(src, usr)] [SPAN_WARNING("The [name] is busy processing another action!")]") return - var/obj/structure/closet/crate/C = locate() in current_squad.drop_pad.loc //This thing should ALWAYS exist. - if(!istype(C)) + var/obj/structure/closet/crate/crate = locate() in current_squad.drop_pad.loc //This thing should ALWAYS exist. + if(!istype(crate)) to_chat(usr, "[icon2html(src, usr)] [SPAN_WARNING("No crate was detected on the drop pad. Get Requisitions on the line!")]") return @@ -842,18 +842,24 @@ to_chat(usr, "[icon2html(src, usr)] [SPAN_WARNING("The landing zone appears to be obstructed or out of bounds. Package would be lost on drop.")]") return + if(crate.opened) + to_chat(usr, "[icon2html(src, usr)] [SPAN_WARNING("The crate is not secure on the drop pad. Get Requisitions to close the crate!")]") + return + busy = TRUE - C.visible_message(SPAN_WARNING("\The [C] loads into a launch tube. Stand clear!")) - SEND_SIGNAL(C, COMSIG_STRUCTURE_CRATE_SQUAD_LAUNCHED, current_squad) + crate.visible_message(SPAN_WARNING("\The [crate] loads into a launch tube. Stand clear!")) + SEND_SIGNAL(crate, COMSIG_STRUCTURE_CRATE_SQUAD_LAUNCHED, current_squad) COOLDOWN_START(current_squad, next_supplydrop, 500 SECONDS) if(ismob(usr)) var/mob/M = usr M.count_niche_stat(STATISTICS_NICHE_CRATES) - playsound(C.loc,'sound/effects/bamf.ogg', 50, 1) //Ehh - var/obj/structure/droppod/supply/pod = new(null, C) + playsound(crate.loc,'sound/effects/bamf.ogg', 50, 1) //Ehh + var/obj/structure/droppod/supply/pod = new(null, crate) pod.launch(T) - visible_message("[icon2html(src, viewers(src))] [SPAN_BOLDNOTICE("'[C.name]' supply drop launched! Another launch will be available in five minutes.")]") + log_ares_requisition("Supply Drop", "Launch [crate.name] to X[x_supply], Y[y_supply].", usr.real_name) + log_game("[key_name(usr)] launched supply drop '[crate.name]' to X[x_coord], Y[y_coord].") + visible_message("[icon2html(src, viewers(src))] [SPAN_BOLDNOTICE("'[crate.name]' supply drop launched! Another launch will be available in five minutes.")]") busy = FALSE /obj/structure/machinery/computer/overwatch/almayer @@ -864,6 +870,10 @@ /obj/structure/machinery/computer/overwatch/almayer/broken name = "Broken Overwatch Console" +/obj/structure/machinery/computer/overwatch/almayer/small + icon = 'icons/obj/vehicles/interiors/arc.dmi' + icon_state = "overwatch_computer" + /obj/structure/machinery/computer/overwatch/clf faction = FACTION_CLF /obj/structure/machinery/computer/overwatch/upp @@ -883,10 +893,14 @@ density = FALSE unslashable = TRUE unacidable = TRUE + plane = FLOOR_PLANE layer = 2.1 //It's the floor, man var/squad = SQUAD_MARINE_1 var/sending_package = 0 +/obj/structure/supply_drop/ex_act(severity, direction) + return FALSE + /obj/structure/supply_drop/Initialize(mapload, ...) . = ..() GLOB.supply_drop_list += src diff --git a/code/modules/cm_marines/radar.dm b/code/modules/cm_marines/radar.dm index f6751a8fe913..aa332d601395 100644 --- a/code/modules/cm_marines/radar.dm +++ b/code/modules/cm_marines/radar.dm @@ -95,7 +95,7 @@ if(get_dist_euclidian(here_turf, target_turf) > 24) userot = TRUE - rot = round(get_angle(here_turf, target_turf)) + rot = floor(Get_Angle(here_turf, target_turf)) else if(target_turf.z > here_turf.z) pointer="caret-up" @@ -205,12 +205,12 @@ continue var/crewmember_name = "Unknown" var/crewmember_rank = "Unknown" - if(humanoid.wear_id) - var/obj/item/card/id/ID = humanoid.wear_id.GetID() - if(ID?.registered_name) - crewmember_name = ID.registered_name - if(ID?.assignment) - crewmember_rank = ID.assignment + var/obj/item/card/id/card = humanoid.get_idcard() + if(card) + if(card.registered_name) + crewmember_name = card.registered_name + if(card.assignment) + crewmember_rank = card.assignment switch(humanoid.stat) if(CONSCIOUS) crewmember_name = "[crewmember_name] ([crewmember_rank]) (Conscious)" diff --git a/code/modules/cm_marines/shuttle_backend.dm b/code/modules/cm_marines/shuttle_backend.dm index 142caa81eb8a..905bde3b4483 100644 --- a/code/modules/cm_marines/shuttle_backend.dm +++ b/code/modules/cm_marines/shuttle_backend.dm @@ -107,7 +107,7 @@ DOCUMENTATION ON HOW TO ADD A NEW SHUTTLE: Fourkhan, 6/7/19 /proc/rotate_shuttle_turfs(list/L, deg = 0) if((deg % 90) != 0) return //Not a right or straight angle, don't do anything - if(!istype(L) || !L.len) return null + if(!istype(L) || !length(L)) return null var/i //iterator var/x //Placeholder while we do math @@ -123,8 +123,8 @@ DOCUMENTATION ON HOW TO ADD A NEW SHUTTLE: Fourkhan, 6/7/19 y = C.y_pos C1.x_pos = x*cos(deg) + y*sin(deg) C1.y_pos = y*cos(deg) - x*sin(deg) - C1.x_pos = roundNearest(C.x_pos) //Sometimes you get very close to the right number but off by around 1e-15 and I want integers dammit - C1.y_pos = roundNearest(C.y_pos) + C1.x_pos = round(C.x_pos, 1) //Sometimes you get very close to the right number but off by around 1e-15 and I want integers dammit + C1.y_pos = round(C.y_pos, 1) toReturn += i toReturn[i] = C1 diff --git a/code/modules/cm_marines/smartgun_mount.dm b/code/modules/cm_marines/smartgun_mount.dm index 01183ebceca5..ce1a25b98c73 100644 --- a/code/modules/cm_marines/smartgun_mount.dm +++ b/code/modules/cm_marines/smartgun_mount.dm @@ -42,8 +42,12 @@ flags_equip_slot = SLOT_BACK icon = 'icons/turf/whiskeyoutpost.dmi' icon_state = "M56D_gun_e" - var/rounds = 0 // How many rounds are in the weapon. This is useful if we break down our guns. - var/has_mount = FALSE // Indicates whether the M56D will come with its folding mount already attached + ///How many rounds are in the weapon. This is useful if we break down our guns. + var/rounds = 0 + ///Indicates whether the M56D will come with its folding mount already attached + var/has_mount = FALSE + ///The distance this has to be away from other m56d_hmg and m56d_post to be placed. + var/defense_check_range = 5 /obj/item/device/m56d_gun/Initialize(mapload, ...) . = ..() @@ -66,7 +70,7 @@ return /obj/item/device/m56d_gun/attackby(obj/item/O as obj, mob/user as mob) - if(!ishuman(user)) + if(!ishuman(user) || !HAS_TRAIT(user, TRAIT_OPPOSABLE_THUMBS)) return if(QDELETED(O)) @@ -84,8 +88,11 @@ /obj/item/device/m56d_gun/attack_self(mob/user) ..() - - if(!ishuman(user)) + for(var/obj/structure/machinery/machine in urange(defense_check_range, loc)) + if(istype(machine, /obj/structure/machinery/m56d_hmg) || istype(machine, /obj/structure/machinery/m56d_post)) + to_chat(user, SPAN_WARNING("This is too close to [machine]!")) + return + if(!ishuman(user) && !HAS_TRAIT(user, TRAIT_OPPOSABLE_THUMBS)) return if(!has_mount) return @@ -125,15 +132,20 @@ if(!do_after(user, 1 SECONDS, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD)) return + for(var/obj/structure/machinery/machine in urange(defense_check_range, loc)) + if(istype(machine, /obj/structure/machinery/m56d_hmg) || istype(machine, /obj/structure/machinery/m56d_post)) + to_chat(user, SPAN_WARNING("This is too close to [machine]!")) + return - var/obj/structure/machinery/m56d_post/M = new /obj/structure/machinery/m56d_post(user.loc) - M.setDir(user.dir) // Make sure we face the right direction - M.gun_rounds = src.rounds //Inherit the amount of ammo we had. - M.gun_mounted = TRUE - M.anchored = TRUE - M.update_icon() - transfer_label_component(M) - to_chat(user, SPAN_NOTICE("You deploy \the [src].")) + var/obj/structure/machinery/m56d_post/post = new(user.loc) + post.setDir(user.dir) // Make sure we face the right direction + post.gun_rounds = rounds + post.gun_mounted = TRUE + post.gun_health = health // retain damage + post.anchored = TRUE + post.update_icon() + transfer_label_component(post) + to_chat(user, SPAN_NOTICE("You deploy [src].")) qdel(src) @@ -176,7 +188,7 @@ /obj/item/device/m56d_post/attack_self(mob/user) ..() - if(!ishuman(usr)) + if(!ishuman(usr) && !HAS_TRAIT(user, TRAIT_OPPOSABLE_THUMBS)) return if(SSinterior.in_interior(user)) to_chat(usr, SPAN_WARNING("It's too cramped in here to deploy \a [src].")) @@ -212,8 +224,8 @@ return to_chat(user, SPAN_NOTICE("You deploy \the [src].")) - var/obj/structure/machinery/m56d_post/M = new /obj/structure/machinery/m56d_post(user.loc) - transfer_label_component(M) + var/obj/structure/machinery/m56d_post/post = new(user.loc) + transfer_label_component(post) qdel(src) @@ -227,8 +239,12 @@ density = TRUE layer = ABOVE_MOB_LAYER projectile_coverage = PROJECTILE_COVERAGE_LOW - var/gun_mounted = FALSE //Has the gun been mounted? - var/gun_rounds = 0 //Did the gun come with any ammo? + ///Whether a gun is mounted + var/gun_mounted = FALSE + ///Ammo amount of the mounted gun + var/gun_rounds = 0 + ///Health of the mounted gun + var/gun_health = 0 health = 50 /obj/structure/machinery/m56d_post/initialize_pass_flags(datum/pass_flags_container/PF) @@ -280,9 +296,9 @@ return XENO_ATTACK_ACTION /obj/structure/machinery/m56d_post/MouseDrop(over_object, src_location, over_location) //Drag the tripod onto you to fold it. - if(!ishuman(usr)) + var/mob/living/carbon/user = usr //this is us + if(!ishuman(user) && !HAS_TRAIT(user, TRAIT_OPPOSABLE_THUMBS)) return - var/mob/living/carbon/human/user = usr //this is us if(over_object == user && in_range(src, user)) if(anchored && gun_mounted) to_chat(user, SPAN_WARNING("\The [src] can't be folded while there's an unsecured gun mounted on it. Either complete the assembly or take the gun off with a crowbar.")) @@ -291,12 +307,13 @@ to_chat(user, SPAN_WARNING("\The [src] can't be folded while screwed to the floor. Unscrew it first.")) return to_chat(user, SPAN_NOTICE("You fold [src].")) - var/obj/item/device/m56d_post/P = new(loc) - user.put_in_hands(P) + var/obj/item/device/m56d_post/post = new(loc) + transfer_label_component(post) + user.put_in_hands(post) qdel(src) /obj/structure/machinery/m56d_post/attackby(obj/item/O, mob/user) - if(!ishuman(user)) //first make sure theres no funkiness + if(!ishuman(user) && !HAS_TRAIT(user, TRAIT_OPPOSABLE_THUMBS)) //first make sure theres no funkiness return if(HAS_TRAIT(O, TRAIT_TOOL_WRENCH)) //rotate the mount @@ -307,6 +324,10 @@ if(istype(O,/obj/item/device/m56d_gun)) //lets mount the MG onto the mount. var/obj/item/device/m56d_gun/MG = O + for(var/obj/structure/machinery/machine in urange(MG.defense_check_range, loc, TRUE)) + if(istype(machine, /obj/structure/machinery/m56d_hmg) || istype(machine, /obj/structure/machinery/m56d_post)) + to_chat(user, SPAN_WARNING("This is too close to [machine]!")) + return if(!anchored) to_chat(user, SPAN_WARNING("[src] must be anchored! Use a screwdriver!")) return @@ -316,6 +337,8 @@ user.visible_message(SPAN_NOTICE("[user] installs [MG] into place."),SPAN_NOTICE("You install [MG] into place.")) gun_mounted = 1 gun_rounds = MG.rounds + gun_health = MG.health + MG.transfer_label_component(src) update_icon() user.temp_drop_inv_item(MG) qdel(MG) @@ -328,12 +351,19 @@ to_chat(user, "You begin dismounting [src]'s gun...") if(do_after(user, 30 * user.get_skill_duration_multiplier(SKILL_ENGINEER), INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD) && gun_mounted) playsound(src.loc, 'sound/items/Crowbar.ogg', 25, 1) - user.visible_message(SPAN_NOTICE("[user] removes [src]'s gun."),SPAN_NOTICE("You remove [src]'s gun.")) - var/obj/item/device/m56d_gun/G = new(loc) - G.rounds = gun_rounds - G.update_icon() + user.visible_message(SPAN_NOTICE("[user] removes [src]'s gun."), SPAN_NOTICE("You remove [src]'s gun.")) + var/obj/item/device/m56d_gun/HMG = new(loc) + HMG.rounds = gun_rounds + if(gun_health) + HMG.health = gun_health + HMG.update_icon() + transfer_label_component(HMG) + var/datum/component/label/label = GetComponent(/datum/component/label) + if(label) + label.remove_label() gun_mounted = FALSE gun_rounds = 0 + gun_health = 0 update_icon() return @@ -374,13 +404,16 @@ var/disassemble_time = 30 if(do_after(user, disassemble_time * user.get_skill_duration_multiplier(SKILL_ENGINEER), INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD)) playsound(src.loc, 'sound/items/Deconstruct.ogg', 25, 1) - user.visible_message(SPAN_NOTICE("[user] screws the M56D into the mount."),SPAN_NOTICE("You finalize the M56D heavy machine gun.")) - var/obj/structure/machinery/m56d_hmg/G = new(src.loc) //Here comes our new turret. - transfer_label_component(G) - G.visible_message("[icon2html(G, viewers(src))] \The [G] is now complete!") //finished it for everyone to - G.setDir(dir) //make sure we face the right direction - G.rounds = src.gun_rounds //Inherent the amount of ammo we had. - G.update_icon() + user.visible_message(SPAN_NOTICE("[user] screws the M56D into the mount."), SPAN_NOTICE("You finalize the M56D heavy machine gun.")) + var/obj/structure/machinery/m56d_hmg/HMG = new(loc) + transfer_label_component(HMG) + HMG.visible_message("[icon2html(HMG, viewers(src))] \The [HMG] is now complete!") + HMG.setDir(dir) + HMG.rounds = gun_rounds + if(gun_health) + HMG.health = gun_health + HMG.update_damage_state() + HMG.update_icon() qdel(src) else if(anchored) @@ -461,7 +494,6 @@ /// What firemodes this gun has var/static/list/gun_firemodes = list( GUN_FIREMODE_SEMIAUTO, - GUN_FIREMODE_BURSTFIRE, GUN_FIREMODE_AUTOMATIC, ) /// A multiplier for how slow this gun should fire in automatic as opposed to burst. 1 is normal, 1.2 is 20% slower, 0.8 is 20% faster, etc. @@ -517,7 +549,7 @@ /obj/structure/machinery/m56d_hmg/get_examine_text(mob/user) //Let us see how much ammo we got in this thing. . = ..() - if(ishuman(user)) + if(ishuman(user) || HAS_TRAIT(user, TRAIT_OPPOSABLE_THUMBS)) if(rounds) . += SPAN_NOTICE("It has [rounds] round\s out of [rounds_max].") else @@ -536,7 +568,7 @@ return /obj/structure/machinery/m56d_hmg/attackby(obj/item/O as obj, mob/user as mob) //This will be how we take it apart. - if(!ishuman(user)) + if(!ishuman(user) && !HAS_TRAIT(user, TRAIT_OPPOSABLE_THUMBS)) return ..() if(QDELETED(O)) @@ -548,7 +580,7 @@ return else playsound(src.loc, 'sound/items/Ratchet.ogg', 25, 1) - user.visible_message("[user] rotates \the [src].","You rotate \the [src].") + user.visible_message("[user] rotates [src].", "You rotate [src].") setDir(turn(dir, -90)) if(operator) update_pixels(operator) @@ -562,14 +594,15 @@ var/disassemble_time = 30 if(do_after(user, disassemble_time * user.get_skill_duration_multiplier(SKILL_ENGINEER), INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD)) - user.visible_message(SPAN_NOTICE(" [user] disassembles [src]! "),SPAN_NOTICE(" You disassemble [src]!")) + user.visible_message(SPAN_NOTICE("[user] disassembles [src]!"), SPAN_NOTICE("You disassemble [src]!")) playsound(src.loc, 'sound/items/Screwdriver.ogg', 25, 1) - var/obj/item/device/m56d_gun/HMG = new(src.loc) //Here we generate our disassembled mg. + var/obj/item/device/m56d_gun/HMG = new(loc) transfer_label_component(HMG) - HMG.rounds = src.rounds //Inherent the amount of ammo we had. + HMG.rounds = rounds HMG.has_mount = TRUE + HMG.health = health HMG.update_icon() - qdel(src) //Now we clean up the constructed gun. + qdel(src) return if(istype(O, /obj/item/ammo_magazine/m56d)) // RELOADING DOCTOR FREEMAN. @@ -581,7 +614,7 @@ if(user.action_busy) return if(!do_after(user, 25 * user.get_skill_duration_multiplier(SKILL_ENGINEER), INTERRUPT_ALL, BUSY_ICON_FRIENDLY)) return - user.visible_message(SPAN_NOTICE("[user] loads [src]! "),SPAN_NOTICE("You load [src]!")) + user.visible_message(SPAN_NOTICE("[user] loads [src]!"), SPAN_NOTICE("You load [src]!")) playsound(loc, 'sound/weapons/gun_minigun_cocked.ogg', 25, 1) if(rounds) var/obj/item/ammo_magazine/m56d/D = new(user.loc) @@ -612,7 +645,7 @@ if(do_after(user, 5 SECONDS * user.get_skill_duration_multiplier(SKILL_ENGINEER), INTERRUPT_ALL, BUSY_ICON_FRIENDLY, src)) user.visible_message(SPAN_NOTICE("[user] repairs some damage on [src]."), \ SPAN_NOTICE("You repair [src].")) - update_health(-round(health_max*0.2)) + update_health(-floor(health_max*0.2)) playsound(src.loc, 'sound/items/Welder2.ogg', 25, 1) else to_chat(user, SPAN_WARNING("You need more fuel in [WT] to repair damage to [src].")) @@ -624,10 +657,10 @@ if(health <= 0) var/destroyed = rand(0,1) //Ammo cooks off or something. Who knows. playsound(src.loc, 'sound/items/Welder2.ogg', 25, 1) - if(!destroyed) new /obj/structure/machinery/m56d_post(loc) - else + if(!destroyed) var/obj/item/device/m56d_gun/HMG = new(loc) - HMG.rounds = src.rounds //Inherent the amount of ammo we had. + transfer_label_component(HMG) + HMG.rounds = rounds qdel(src) return @@ -646,7 +679,7 @@ operator.unset_interaction() /obj/structure/machinery/m56d_hmg/proc/update_damage_state() - var/health_percent = round(health/health_max * 100) + var/health_percent = floor(health/health_max * 100) switch(health_percent) if(0 to 25) damage_state = M56D_DMG_HEAVY if(25 to 50) damage_state = M56D_DMG_MODERATE @@ -656,19 +689,21 @@ /obj/structure/machinery/m56d_hmg/bullet_act(obj/projectile/P) //Nope. bullet_ping(P) visible_message(SPAN_WARNING("[src] is hit by the [P.name]!")) - update_health(round(P.damage / 10)) //Universal low damage to what amounts to a post with a gun. + update_health(floor(P.damage / 10)) //Universal low damage to what amounts to a post with a gun. return 1 -/obj/structure/machinery/m56d_hmg/attack_alien(mob/living/carbon/xenomorph/M) // Those Ayy lmaos. - if(islarva(M)) +/obj/structure/machinery/m56d_hmg/attack_alien(mob/living/carbon/xenomorph/xeno) // Those Ayy lmaos. + if(islarva(xeno)) return //Larvae can't do shit - - M.visible_message(SPAN_DANGER("[M] has slashed [src]!"), + if(xeno.IsAdvancedToolUser() && xeno.a_intent == INTENT_HELP) + try_mount_gun(xeno) + return XENO_NO_DELAY_ACTION + xeno.visible_message(SPAN_DANGER("[xeno] has slashed [src]!"), SPAN_DANGER("You slash [src]!")) - M.animation_attack_on(src) - M.flick_attack_overlay(src, "slash") + xeno.animation_attack_on(src) + xeno.flick_attack_overlay(src, "slash") playsound(loc, "alien_claw_metal", 25) - update_health(rand(M.melee_damage_lower,M.melee_damage_upper)) + update_health(rand(xeno.melee_damage_lower,xeno.melee_damage_upper)) return XENO_ATTACK_ACTION /obj/structure/machinery/m56d_hmg/proc/load_into_chamber() @@ -698,11 +733,14 @@ if(!istype(in_chamber, /obj/projectile)) return - var/angle = get_angle(T, U) + var/angle = Get_Angle(T, U) if((dir == NORTH) && (angle > 180) && (abs(360 - angle) > shoot_degree)) // If north and shooting to the left, we do some extra math return + if((dir == NORTH) && (angle < 180) && (angle > shoot_degree)) + return + else if((dir != NORTH) && (abs(angle - dir2angle(dir)) > shoot_degree)) return @@ -794,84 +832,121 @@ I.flick_overlay(src, 3) /obj/structure/machinery/m56d_hmg/MouseDrop(over_object, src_location, over_location) //Drag the MG to us to man it. - if(!ishuman(usr)) + // If the gun sprite wasn't dragged onto the user, or the user isn't adjacent. + if(over_object != usr || !in_range(src, usr)) return - var/mob/living/carbon/human/user = usr //this is us - - var/user_turf = get_turf(user) - - for(var/opp_dir in reverse_nearby_direction(src.dir)) - if(get_step(src, opp_dir) == user_turf) //Players must be behind, or left or right of that back tile - src.add_fingerprint(usr) - if((over_object == user && (in_range(src, user) || locate(src) in user))) //Make sure its on ourselves - if(user.interactee == src) - user.unset_interaction() - user.visible_message("[icon2html(src, viewers(src))] [SPAN_NOTICE("[user] lets go of \the [src].")]", SPAN_NOTICE("You let go of \the [src].")) - return - if(operator) //If there is already a operator then they're manning it. - if(operator.interactee == null) - operator = null //this shouldn't happen, but just in case - else - to_chat(user, "Someone's already controlling it.") - return - else - if(user.interactee) //Make sure we're not manning two guns at once, tentacle arms. - to_chat(user, "You're already manning something!") - return - if(user.get_active_hand() != null) - to_chat(user, SPAN_WARNING("You need a free hand to man \the [src].")) - - if(!user.allow_gun_usage) - to_chat(user, SPAN_WARNING("You aren't allowed to use firearms!")) - return - else - ADD_TRAIT(user, TRAIT_IMMOBILIZED, INTERACTION_TRAIT) - user.set_interaction(src) - give_action(user, /datum/action/human_action/mg_exit) + // If the user is already manning the gun. + if(operator == usr) + // Exit the gun. + usr.unset_interaction() + else + // Try to man the gun + try_mount_gun(usr) +/obj/structure/machinery/m56d_hmg/proc/try_mount_gun(mob/living/carbon/user) + // If the user isn't a human. + if(!istype(user)) + return + // If the user is unconscious or dead. + if(user.stat) + return + if(ishuman(user)) + var/mob/living/carbon/human/human = user + if(!human.allow_gun_usage) + to_chat(user, SPAN_WARNING("You aren't allowed to use firearms!")) + return + // If the user isn't actually allowed to use guns. + else if (!HAS_TRAIT(user, TRAIT_OPPOSABLE_THUMBS)) + to_chat(user, SPAN_WARNING("You don't know what to do with [src]!")) + return + + // If the user is invisible. + if(user.alpha <= 60) + to_chat(user, SPAN_WARNING("You can't use [src] while cloaked!")) + return + + // Make sure we're not manning two guns at once, tentacle arms. + if(user.interactee) + to_chat(user, SPAN_WARNING("You're already manning something!")) + return + + // Check the directions opposite of where the gun is facing. + var/found_user = FALSE + var/turf/user_turf = get_turf(user) + for(var/opposite_dir in reverse_nearby_direction(src.dir)) + if(get_step(src, opposite_dir) == user_turf) + found_user = TRUE + break + // If the user isn't standing behind or on top of the gun. + if(!found_user && user_turf != get_turf(src)) + to_chat(user, SPAN_WARNING("You are too far from the handles to man [src]!")) + return + + // If there's already someone manning it. + if(operator) + // This shouldn't happen, but just in case. + if(operator.interactee == null) + operator = null else - to_chat(usr, SPAN_NOTICE("You are too far from the handles to man [src]!")) + to_chat(user, SPAN_WARNING("Someone's already controlling [src]!")) + return + + // If both hands aren't empty. + if(user.get_active_hand() || user.get_inactive_hand()) + to_chat(user, SPAN_WARNING("You need both hands free to grab the handles!")) + return + + // Man the gun! + user.set_interaction(src) /obj/structure/machinery/m56d_hmg/on_set_interaction(mob/user) - RegisterSignal(user, list(COMSIG_MOB_MG_EXIT, COMSIG_MOB_RESISTED, COMSIG_MOB_DEATH, COMSIG_LIVING_SET_BODY_POSITION), PROC_REF(exit_interaction)) - flags_atom |= RELAY_CLICK - user.status_flags |= IMMOBILE_ACTION - user.visible_message(SPAN_NOTICE("[user] mans \the [src]."),SPAN_NOTICE("You man \the [src], locked and loaded!")) - RegisterSignal(user, COMSIG_MOB_MOUSEDOWN, PROC_REF(start_fire)) - RegisterSignal(user, COMSIG_MOB_MOUSEDRAG, PROC_REF(change_target)) - RegisterSignal(user, COMSIG_MOB_MOUSEUP, PROC_REF(stop_fire)) + ADD_TRAIT(user, TRAIT_IMMOBILIZED, INTERACTION_TRAIT) + give_action(user, /datum/action/human_action/mg_exit) user.forceMove(src.loc) user.setDir(dir) + user.reset_view(src) + user.status_flags |= IMMOBILE_ACTION + user.visible_message(SPAN_NOTICE("[user] mans [src]."), SPAN_NOTICE("You man [src], locked and loaded!")) user_old_x = user.pixel_x user_old_y = user.pixel_y - user.reset_view(src) update_pixels(user) + + RegisterSignal(user, list(COMSIG_MOB_MG_EXIT, COMSIG_MOB_RESISTED, COMSIG_MOB_DEATH, COMSIG_LIVING_SET_BODY_POSITION), PROC_REF(exit_interaction)) + RegisterSignal(user, COMSIG_MOB_MOUSEDOWN, PROC_REF(start_fire)) + RegisterSignal(user, COMSIG_MOB_MOUSEDRAG, PROC_REF(change_target)) + RegisterSignal(user, COMSIG_MOB_MOUSEUP, PROC_REF(stop_fire)) + operator = user + flags_atom |= RELAY_CLICK -/obj/structure/machinery/m56d_hmg/on_unset_interaction(mob/living/user) - flags_atom &= ~RELAY_CLICK - SEND_SIGNAL(src, COMSIG_GUN_INTERRUPT_FIRE) - user.status_flags &= ~IMMOBILE_ACTION - user.visible_message(SPAN_NOTICE("[user] lets go of \the [src]."),SPAN_NOTICE("You let go of \the [src], letting the gun rest.")) +/obj/structure/machinery/m56d_hmg/on_unset_interaction(mob/user) REMOVE_TRAIT(user, TRAIT_IMMOBILIZED, INTERACTION_TRAIT) - UnregisterSignal(user, list(COMSIG_MOB_MOUSEUP, COMSIG_MOB_MOUSEDOWN, COMSIG_MOB_MOUSEDRAG)) - user.reset_view(null) - user.remove_temp_pass_flags(PASS_MOB_THRU) // this is necessary because being knocked over while using the gun makes you incorporeal + remove_action(user, /datum/action/human_action/mg_exit) user.Move(get_step(src, reverse_direction(src.dir))) user.setDir(dir) //set the direction of the player to the direction the gun is facing + user.reset_view(null) + user.status_flags &= ~IMMOBILE_ACTION + user.visible_message(SPAN_NOTICE("[user] lets go of [src]."), SPAN_NOTICE("You let go of [src], letting the gun rest.")) user_old_x = 0 //reset our x user_old_y = 0 //reset our y update_pixels(user, FALSE) - if(operator == user) //We have no operator now - operator = null - remove_action(user, /datum/action/human_action/mg_exit) + user.remove_temp_pass_flags(PASS_MOB_THRU) // this is necessary because being knocked over while using the gun makes you incorporeal + + SEND_SIGNAL(src, COMSIG_GUN_INTERRUPT_FIRE) UnregisterSignal(user, list( COMSIG_MOB_MG_EXIT, COMSIG_MOB_RESISTED, COMSIG_MOB_DEATH, COMSIG_LIVING_SET_BODY_POSITION, + COMSIG_MOB_MOUSEUP, + COMSIG_MOB_MOUSEDOWN, + COMSIG_MOB_MOUSEDRAG, )) + if(operator == user) //We have no operator now + operator = null + flags_atom &= ~RELAY_CLICK + /obj/structure/machinery/m56d_hmg/proc/update_pixels(mob/user, mounting = TRUE) if(mounting) @@ -931,6 +1006,7 @@ to_chat(operator, SPAN_HIGHDANGER("You are knocked off the gun by the sheer force of the ram!")) operator.unset_interaction() operator.apply_effect(3, WEAKEN) + operator.emote("pain") /// Getter for burst_firing /obj/structure/machinery/m56d_hmg/proc/get_burst_firing() @@ -1080,6 +1156,19 @@ projectile_coverage = PROJECTILE_COVERAGE_HIGH icon = 'icons/turf/whiskeyoutpost.dmi' zoom = 1 + ammo = /datum/ammo/bullet/machinegun/doorgun + +/obj/structure/machinery/m56d_hmg/mg_turret/update_health(amount) //Negative values restores health. + health -= amount + if(health <= 0) + playsound(src.loc, 'sound/items/Welder2.ogg', 25, 1) + qdel(src) + return + + if(health > health_max) + health = health_max + update_damage_state() + update_icon() /obj/structure/machinery/m56d_hmg/mg_turret/dropship name = "\improper scoped M56D heavy machine gun" diff --git a/code/modules/cm_marines/vehicle_part_fabricator.dm b/code/modules/cm_marines/vehicle_part_fabricator.dm index 0095ff54a2ab..fc71763d96b3 100644 --- a/code/modules/cm_marines/vehicle_part_fabricator.dm +++ b/code/modules/cm_marines/vehicle_part_fabricator.dm @@ -10,8 +10,8 @@ icon_state = "drone_fab_idle" var/busy = FALSE var/generate_points = TRUE - var/valid_parts = null - var/valid_ammo = null + var/omnisentry_price_scale = 100 + var/omnisentry_price = 300 /obj/structure/machinery/part_fabricator/New() ..() @@ -28,7 +28,8 @@ /obj/structure/machinery/part_fabricator/dropship/ui_data(mob/user) return list( - "points" = get_point_store() + "points" = get_point_store(), + "omnisentrygun_price" = omnisentry_price ) /obj/structure/machinery/part_fabricator/power_change() @@ -53,11 +54,15 @@ /obj/structure/machinery/part_fabricator/proc/build_part(part_type, cost, mob/user) set waitfor = 0 if(stat & NOPOWER) return + if(ispath(part_type,/obj/structure/ship_ammo/sentry)) + cost = omnisentry_price if(get_point_store() < cost) to_chat(user, SPAN_WARNING("You don't have enough points to build that.")) return visible_message(SPAN_NOTICE("[src] starts printing something.")) spend_point_store(cost) + if(ispath(part_type,/obj/structure/ship_ammo/sentry)) + omnisentry_price += omnisentry_price_scale icon_state = "drone_fab_active" busy = TRUE addtimer(CALLBACK(src, PROC_REF(do_build_part), part_type), 10 SECONDS) @@ -68,7 +73,7 @@ new part_type(get_step(src, SOUTHEAST)) icon_state = "drone_fab_idle" -/obj/structure/machinery/part_fabricator/ui_act(action, params) +/obj/structure/machinery/part_fabricator/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) . = ..() if(.) return @@ -77,27 +82,33 @@ to_chat(usr, SPAN_WARNING("The [name] is busy. Please wait for completion of previous operation.")) return - if(action == "produce") - var/produce = text2path(params["path"]) - var/cost = text2num(params["cost"]) - var/exploiting = TRUE - - if (valid_parts && ispath(produce, valid_parts)) - exploiting = FALSE - else if (valid_ammo && ispath(produce, valid_ammo)) - exploiting = FALSE + var/mob/user = ui.user - if (cost < 0) - exploiting = TRUE + if(action == "produce") + var/cost = 0 + var/is_ammo = params["is_ammo"] + var/index = params["index"] + + if(is_ammo == 0) + var/obj/structure/dropship_equipment/produce = (typesof(/obj/structure/dropship_equipment))[index] + if(SSticker.mode && MODE_HAS_TOGGLEABLE_FLAG(MODE_NO_COMBAT_CAS) && produce.combat_equipment) + log_admin("Bad topic: [user] may be trying to HREF exploit [src] to bypass no combat cas") + return + cost = initial(produce.point_cost) + build_part(produce, cost, user) + return - if (exploiting) - log_admin("Bad topic: [usr] may be trying to HREF exploit [src] with [produce], [cost]") + else + var/obj/structure/ship_ammo/produce = (typesof(/obj/structure/ship_ammo))[index] + if(SSticker.mode && MODE_HAS_TOGGLEABLE_FLAG(MODE_NO_COMBAT_CAS) && produce.combat_equipment) + log_admin("Bad topic: [user] may be trying to HREF exploit [src] to bypass no combat cas") + return + cost = initial(produce.point_cost) + build_part(produce, cost, user) return - build_part(produce, cost, usr) - return else - log_admin("Bad topic: [usr] may be trying to HREF exploit [src]") + log_admin("Bad topic: [user] may be trying to HREF exploit [src]") return /obj/structure/machinery/part_fabricator/attack_hand(mob/user) @@ -116,12 +127,11 @@ name = "dropship part fabricator" desc = "A large automated 3D printer for producing dropship parts. You can recycle parts or ammo in it, and get 80% of your points back, by clicking it while holding them in a powerloader claw." req_access = list(ACCESS_MARINE_DROPSHIP) - valid_parts = /obj/structure/dropship_equipment - valid_ammo = /obj/structure/ship_ammo unslashable = TRUE unacidable = TRUE + /obj/structure/machinery/part_fabricator/dropship/get_point_store() return GLOB.supply_controller.dropship_points @@ -134,86 +144,100 @@ /obj/structure/machinery/part_fabricator/dropship/ui_static_data(mob/user) var/list/static_data = list() static_data["Equipment"] = list() + var/is_ammo = 0 + var/index = 1 for(var/build_type in typesof(/obj/structure/dropship_equipment)) - var/obj/structure/dropship_equipment/DE = build_type - if(SSticker.mode && MODE_HAS_TOGGLEABLE_FLAG(MODE_NO_COMBAT_CAS) && initial(DE.combat_equipment)) + var/obj/structure/dropship_equipment/dropship_equipment_data = build_type + if(SSticker.mode && MODE_HAS_TOGGLEABLE_FLAG(MODE_NO_COMBAT_CAS) && dropship_equipment_data.combat_equipment) + index += 1 continue - var/build_name = initial(DE.name) - var/build_description = initial(DE.desc) - var/build_cost = initial(DE.point_cost) + var/build_name = initial(dropship_equipment_data.name) + var/build_description = initial(dropship_equipment_data.desc) + var/build_cost = initial(dropship_equipment_data.point_cost) if(build_cost) static_data["Equipment"] += list(list( "name" = capitalize_first_letters(build_name), "desc" = build_description, - "path" = build_type, - "cost" = build_cost + "cost" = build_cost, + "index" = index, + "is_ammo" = is_ammo )) + index += 1 static_data["Ammo"] = list() + is_ammo = 1 + index = 1 for(var/build_type in typesof(/obj/structure/ship_ammo)) - var/obj/structure/ship_ammo/SA = build_type - if(SSticker.mode && MODE_HAS_TOGGLEABLE_FLAG(MODE_NO_COMBAT_CAS) && initial(SA.combat_equipment)) + var/obj/structure/ship_ammo/ship_ammo_data = build_type + if(SSticker.mode && MODE_HAS_TOGGLEABLE_FLAG(MODE_NO_COMBAT_CAS) && ship_ammo_data.combat_equipment) + index = index + 1 continue - var/build_name = initial(SA.name) - var/build_description = initial(SA.desc) - var/build_cost = initial(SA.point_cost) + var/build_name = initial(ship_ammo_data.name) + var/build_description = initial(ship_ammo_data.desc) + var/build_cost = initial(ship_ammo_data.point_cost) if(build_cost) static_data["Ammo"] += list(list( "name" = capitalize_first_letters(build_name), "desc" = build_description, - "path" = build_type, - "cost" = build_cost + "cost" = build_cost, + "index" = index, + "is_ammo" = is_ammo )) + index += 1 return static_data /obj/structure/machinery/part_fabricator/dropship/attackby(obj/item/I, mob/user) if(istype(I, /obj/item/powerloader_clamp)) - var/obj/item/powerloader_clamp/PC = I - recycle_equipment(PC, user) + var/obj/item/powerloader_clamp/powerloader_clamp_used = I + recycle_equipment(powerloader_clamp_used, user) return return ..() -/obj/structure/machinery/part_fabricator/dropship/proc/recycle_equipment(obj/item/powerloader_clamp/PC, mob/living/user) - if(!PC.loaded) - to_chat(user, SPAN_WARNING("There is nothing loaded in \the [PC].")) +/obj/structure/machinery/part_fabricator/dropship/proc/recycle_equipment(obj/item/powerloader_clamp/powerloader_clamp_used, mob/living/user) + if(!powerloader_clamp_used.loaded) + to_chat(user, SPAN_WARNING("There is nothing loaded in \the [powerloader_clamp_used].")) return var/recycle_points - if(istype(PC.loaded, /obj/structure/dropship_equipment)) - var/obj/structure/dropship_equipment/SE = PC.loaded - recycle_points = SE.point_cost - else if(istype(PC.loaded, /obj/structure/ship_ammo)) - var/obj/structure/ship_ammo/SE = PC.loaded - if(!SE.ammo_count) - to_chat(user, SPAN_WARNING("\The [SE] is empty!")) + if(istype(powerloader_clamp_used.loaded, /obj/structure/dropship_equipment)) + var/obj/structure/dropship_equipment/sold_eqipment = powerloader_clamp_used.loaded + recycle_points = sold_eqipment.point_cost + else if(istype(powerloader_clamp_used.loaded, /obj/structure/ship_ammo)) + var/obj/structure/ship_ammo/sold_eqipment = powerloader_clamp_used.loaded + if(!sold_eqipment.ammo_count) + to_chat(user, SPAN_WARNING("\The [sold_eqipment] is empty!")) return - if(SE.ammo_count != SE.max_ammo_count) - recycle_points = (SE.point_cost * (SE.ammo_count / SE.max_ammo_count)) - to_chat(user, SPAN_WARNING("\The [SE] is not fully loaded, and less points will be able to be refunded.")) + if(sold_eqipment.ammo_count != sold_eqipment.max_ammo_count) + recycle_points = (sold_eqipment.point_cost * (sold_eqipment.ammo_count / sold_eqipment.max_ammo_count)) + to_chat(user, SPAN_WARNING("\The [sold_eqipment] is not fully loaded, and less points will be able to be refunded.")) else - recycle_points = SE.point_cost + recycle_points = sold_eqipment.point_cost + if(istype(powerloader_clamp_used.loaded, /obj/structure/ship_ammo/sentry)) + recycle_points = omnisentry_price - omnisentry_price_scale if(!recycle_points) - to_chat(user, SPAN_WARNING("\The [PC.loaded] can't be recycled!")) + to_chat(user, SPAN_WARNING("\The [powerloader_clamp_used.loaded] can't be recycled!")) return - var/thing_to_recycle = PC.loaded - to_chat(user, SPAN_WARNING("You start recycling \the [PC.loaded]!")) + var/thing_to_recycle = powerloader_clamp_used.loaded + to_chat(user, SPAN_WARNING("You start recycling \the [powerloader_clamp_used.loaded]!")) playsound(loc, 'sound/machines/hydraulics_1.ogg', 40, 1) - if(!user || !do_after(user, (7 SECONDS) * user.get_skill_duration_multiplier(SKILL_ENGINEER), INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_HOSTILE, PC.loaded, INTERRUPT_ALL)) + if(!user || !do_after(user, (7 SECONDS) * user.get_skill_duration_multiplier(SKILL_ENGINEER), INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_HOSTILE, powerloader_clamp_used.loaded, INTERRUPT_ALL)) to_chat(user, SPAN_NOTICE("You stop recycling \the [thing_to_recycle].")) return - for(var/obj/thing as anything in PC.loaded) + if(istype(powerloader_clamp_used.loaded, /obj/structure/ship_ammo/sentry)) + omnisentry_price -= omnisentry_price_scale + for(var/obj/thing as anything in powerloader_clamp_used.loaded) thing.forceMove(loc) // no sentries popping out when we qdel please qdel(thing) - qdel(PC.loaded) - PC.loaded = null - to_chat(user, SPAN_NOTICE("You recycle \the [thing_to_recycle] into [src], and get back [round(recycle_points * 0.8)] points.")) - msg_admin_niche("[key_name(user)] recycled a [thing_to_recycle] into \the [src] for [round(recycle_points * 0.8)] points.") - add_to_point_store(round(recycle_points * 0.8)) + qdel(powerloader_clamp_used.loaded) + powerloader_clamp_used.loaded = null + to_chat(user, SPAN_NOTICE("You recycle \the [thing_to_recycle] into [src], and get back [floor(recycle_points * 0.8)] points.")) + msg_admin_niche("[key_name(user)] recycled a [thing_to_recycle] into \the [src] for [floor(recycle_points * 0.8)] points.") + add_to_point_store(floor(recycle_points * 0.8)) playsound(loc, 'sound/machines/fax.ogg', 40, 1) - PC.update_icon() + powerloader_clamp_used.update_icon() // WARNING: IF YOU DECIDE TO READD THIS, GIVE THE HARDPOINTS POINT COSTS @@ -223,8 +247,6 @@ desc = "A large automated 3D printer for producing vehicle parts." req_access = list(ACCESS_MARINE_CREWMAN) generate_points = FALSE - valid_parts = /obj/item/hardpoint - valid_ammo = /obj/item/ammo_magazine/hardpoint unacidable = TRUE indestructible = TRUE @@ -242,9 +264,9 @@ var/list/static_data = list() static_data["Equipment"] = list() for(var/build_type in typesof(/obj/item/hardpoint)) - var/obj/item/hardpoint/TE = build_type - var/build_name = initial(TE.name) - var/build_description = initial(TE.desc) + var/obj/item/hardpoint/hardpoint_data = build_type + var/build_name = initial(hardpoint_data.name) + var/build_description = initial(hardpoint_data.desc) var/build_cost = 0 if(build_cost) static_data["Equipment"] += list(list( @@ -256,9 +278,9 @@ static_data["Ammo"] = list() for(var/build_type in typesof(/obj/item/ammo_magazine/hardpoint)) - var/obj/item/ammo_magazine/hardpoint/TA = build_type - var/build_name = initial(TA.name) - var/build_description = initial(TA.desc) + var/obj/item/ammo_magazine/hardpoint/ammo_data = build_type + var/build_name = initial(ammo_data.name) + var/build_description = initial(ammo_data.desc) var/build_cost = 0 if(build_cost) static_data["Ammo"] += list(list( diff --git a/code/modules/cm_phone/phone.dm b/code/modules/cm_phone/phone.dm index b4f13044bc20..231bf54475d3 100644 --- a/code/modules/cm_phone/phone.dm +++ b/code/modules/cm_phone/phone.dm @@ -362,7 +362,7 @@ GLOBAL_LIST_EMPTY_TYPED(transmitters, /obj/structure/transmitter) qdel(attached_to) else attached_to.attached_to = null - attached_to = null + attached_to = null GLOB.transmitters -= src SStgui.close_uis(src) diff --git a/code/modules/cm_preds/falcon.dm b/code/modules/cm_preds/falcon.dm index dc898a2b76ba..eb97a19c2233 100644 --- a/code/modules/cm_preds/falcon.dm +++ b/code/modules/cm_preds/falcon.dm @@ -35,40 +35,57 @@ return "on [t_his] shoulder" return ..() +/obj/item/falcon_drone/equipped(mob/user, slot, silent) + . = ..() + if(!(slot == WEAR_L_EAR || slot == WEAR_R_EAR)) + return + add_verb(user, /obj/item/falcon_drone/proc/can_control_falcon_drone) + var/datum/action/predator_action/mask/control_falcon_drone/falcon_action = give_action(user, /datum/action/predator_action/mask/control_falcon_drone) + falcon_action.linked_falcon_drone = src + +/obj/item/falcon_drone/dropped(mob/user) + . = ..() + remove_verb(user, /obj/item/falcon_drone/proc/can_control_falcon_drone) + remove_action(user, /datum/action/predator_action/mask/control_falcon_drone) + /obj/item/falcon_drone/attack_self(mob/user) ..() - control_falcon_drone() + can_control_falcon_drone() -/obj/item/falcon_drone/verb/control_falcon_drone() +/obj/item/falcon_drone/proc/can_control_falcon_drone() set name = "Control Falcon Drone" set desc = "Activates your falcon drone." set category = "Yautja.Misc" - set src in usr if(usr.is_mob_incapacitated()) return - var/mob/living/carbon/human/H = usr - if(!istype(H) || !HAS_TRAIT(usr, TRAIT_YAUTJA_TECH)) + var/mob/living/carbon/human/human = usr + if(!istype(human) || !HAS_TRAIT(usr, TRAIT_YAUTJA_TECH)) to_chat(usr, SPAN_WARNING("You do not know how to use this.")) return - if(!istype(H.gloves, /obj/item/clothing/gloves/yautja)) + if(!istype(human.gloves, /obj/item/clothing/gloves/yautja)) to_chat(usr, SPAN_WARNING("You need your bracers to control \the [src]!")) return + control_falcon_drone(human, human.gloves) - var/mob/hologram/falcon/hologram = new /mob/hologram/falcon(usr.loc, usr, src, H.gloves) - usr.drop_inv_item_to_loc(src, hologram) +/obj/item/falcon_drone/proc/control_falcon_drone(mob/living/user, obj/item/clothing/gloves/yautja/bracers) + var/mob/hologram/falcon/hologram = new /mob/hologram/falcon(get_turf(user), user, src, bracers) + user.drop_inv_item_to_loc(src, hologram) /mob/hologram/falcon name = "falcon drone" + desc = "An agile drone used by Yautja to survey the hunting grounds." icon = 'icons/obj/items/hunter/pred_gear.dmi' + action_icon_state = "falcon_drone" icon_state = "falcon_drone_active" hud_possible = list(HUNTER_HUD) + motion_sensed = TRUE + initial_leave_button = /datum/action/leave_hologram/falcon + var/obj/item/falcon_drone/parent_drone var/obj/item/clothing/gloves/yautja/owned_bracers - desc = "An agile drone used by Yautja to survey the hunting grounds." - motion_sensed = TRUE /mob/hologram/falcon/Initialize(mapload, mob/M, obj/item/falcon_drone/drone, obj/item/clothing/gloves/yautja/bracers) . = ..() @@ -129,6 +146,11 @@ qdel(src) +/datum/action/leave_hologram/falcon + icon_file = 'icons/mob/hud/actions_yautja.dmi' + button_icon_state = "pred_template" + action_icon_state = "falcon_drone" + /obj/item/trash/falcon_drone name = "destroyed falcon drone" desc = "The wreckage of a Yautja drone." diff --git a/code/modules/cm_preds/thrall_items.dm b/code/modules/cm_preds/thrall_items.dm index 80b4d42c16e2..708b230d5c11 100644 --- a/code/modules/cm_preds/thrall_items.dm +++ b/code/modules/cm_preds/thrall_items.dm @@ -35,7 +35,7 @@ ) thrall = TRUE - items_allowed = list( + allowed_items_typecache = list( /obj/item/attachable/bayonet, /obj/item/weapon/throwing_knife, /obj/item/weapon/gun/pistol/holdout, diff --git a/code/modules/cm_preds/yaut_actions.dm b/code/modules/cm_preds/yaut_actions.dm new file mode 100644 index 000000000000..f55f58e0a557 --- /dev/null +++ b/code/modules/cm_preds/yaut_actions.dm @@ -0,0 +1,329 @@ +#define PREDATOR_ACTION_ON_CLICK 2 //If the action is on click, and not toggled on or off +/datum/action/predator_action + icon_file = 'icons/mob/hud/actions_yautja.dmi' + button_icon_state = "pred_template" + ///If the action requires bracers worn or in-hand + var/require_bracers = FALSE + ///If the action requires a yautja mask to be worn + var/require_mask = FALSE + ///The mob calling the action + var/mob/living/carbon/human/yautja + ///The bracers on the mob (if applicable) + var/obj/item/clothing/gloves/yautja/hunter/bracers + ///The mask on the mob (if applicable) + var/obj/item/clothing/mask/gas/yautja/mask + ///If the action is currently on or in use + var/active = FALSE + +/datum/action/predator_action/can_use_action() + . = ..() + if(!.) + return FALSE + + yautja = null + bracers = null + mask = null + + var/mob/living/carbon/human/mob = owner + if(!isyautja(mob)) + return FALSE + if(mob.is_mob_incapacitated()) + return FALSE + yautja = mob + + if(require_bracers) + if(istype(yautja.gloves, /obj/item/clothing/gloves/yautja/hunter)) + bracers = yautja.gloves + else if(istype(yautja.get_held_item(), /obj/item/clothing/gloves/yautja/hunter)) + bracers = yautja.get_held_item() + if(!bracers) + to_chat(yautja, SPAN_WARNING("You don't have bracers.")) + return FALSE + + if(require_mask) + if(!istype(yautja.wear_mask, /obj/item/clothing/mask/gas/yautja)) + to_chat(yautja, SPAN_WARNING("You don't have a clan mask.")) + return FALSE + mask = yautja.wear_mask + + return TRUE + +/datum/action/predator_action/action_activate() + if(!can_use_action()) + return FALSE + +/datum/action/predator_action/update_button_icon(enabled) + . = ..() + if(active == PREDATOR_ACTION_ON_CLICK) + return + + if(isnull(enabled)) + active = !active + else + active = enabled + + button.icon_state = initial(button_icon_state) + if(active) + button.icon_state += "_on" + +/datum/action/predator_action/mark_for_hunt + name = "Mark for Hunt" + action_icon_state = "mark_for_hunt" + listen_signal = COMSIG_KB_YAUTJA_TOGGLE_MARK_FOR_HUNT + active = PREDATOR_ACTION_ON_CLICK + +/datum/action/predator_action/mark_for_hunt/action_activate() + . = ..() + if(yautja.hunter_data.prey) //You can only hunt one person at a time + yautja.remove_from_hunt() + return + yautja.mark_for_hunt() + +/datum/action/predator_action/mark_panel + name = "Open Mark Panel" + action_icon_state = "mark_panel" + listen_signal = COMSIG_KB_YAUTJA_MARK_PANEL + active = PREDATOR_ACTION_ON_CLICK + +/datum/action/predator_action/mark_panel/action_activate() + . = ..() + yautja.mark_panel() + +/datum/action/predator_action/claim_equipment + name = "Claim Equipment" + action_icon_state = "claim_equipment" + listen_signal = COMSIG_KB_YAUTJA_PRED_BUY + active = PREDATOR_ACTION_ON_CLICK + +/datum/action/predator_action/claim_equipment/action_activate() + . = ..() + yautja.pred_buy() + +//Actions that require wearing a mask +/datum/action/predator_action/mask + require_mask = TRUE + +/datum/action/predator_action/mask/zoom + name = "Toggle Mask Zoom" + action_icon_state = "zoom" + listen_signal = COMSIG_KB_YAUTJA_MASK_TOGGLE_ZOOM + +/datum/action/predator_action/mask/zoom/action_activate() + . = ..() + mask.toggle_zoom() + +/datum/action/predator_action/mask/visor + name = "Toggle Mask Visor" + action_icon_state = "visor" + require_bracers = TRUE //Needs bracer power to operate + listen_signal = COMSIG_KB_YAUTJA_MASK_TOGGLESIGHT + +/datum/action/predator_action/mask/visor/action_activate() + . = ..() + mask.togglesight() + +/datum/action/predator_action/mask/visor/update_button_icon(enabled) //Open or close the eye + . = ..() //Overlays + + var/new_icon_state = action_icon_state + if(enabled) + new_icon_state += "_on" + + button.overlays.Cut() + var/image/new_overlays + new_overlays = image(icon_file, button, new_icon_state) + + button.overlays += new_overlays + +/datum/action/predator_action/mask/control_falcon_drone + name = "Control Falcon Drone" + action_icon_state = "falcon_drone" + listen_signal = COMSIG_KB_YAUTJA_CONTROL_FALCON + active = PREDATOR_ACTION_ON_CLICK + require_bracers = TRUE + ///The falcon drone that will be sent when the action is pressed + var/obj/item/falcon_drone/linked_falcon_drone + +/datum/action/predator_action/mask/control_falcon_drone/action_activate() + . = ..() + linked_falcon_drone.control_falcon_drone(yautja, bracers) + + +//Actions that require wearing bracers +/datum/action/predator_action/bracer + require_bracers = TRUE + +/datum/action/predator_action/bracer/wristblade + name = "Toggle Wristblades" + action_icon_state = "wristblade" + listen_signal = COMSIG_KB_YAUTJA_WRISTBLADES + +/datum/action/predator_action/bracer/wristblade/action_activate() + . = ..() + bracers.wristblades() + +/datum/action/predator_action/bracer/combistick + name = "Yank Combi-stick" + action_icon_state = "combi" + listen_signal = COMSIG_KB_YAUTJA_CALL_COMBI + active = PREDATOR_ACTION_ON_CLICK + +/datum/action/predator_action/bracer/combistick/action_activate() + . = ..() + yautja.call_combi_internal(yautja, forced = FALSE) + +/datum/action/predator_action/bracer/smartdisc + name = "Recall nearby smart-discs" + action_icon_state = "smartdisc" + listen_signal = COMSIG_KB_YAUTJA_CALL_DISC + active = PREDATOR_ACTION_ON_CLICK + +/datum/action/predator_action/bracer/smartdisc/action_activate() + . = ..() + bracers.call_disc() + +/datum/action/predator_action/bracer/caster + name = "Toggle Plasma Caster" + action_icon_state = "plasma_caster" + listen_signal = COMSIG_KB_YAUTJA_CASTER + +/datum/action/predator_action/bracer/caster/action_activate() + . = ..() + bracers.caster() + +/datum/action/predator_action/bracer/cloak + name = "Toggle Cloak" + action_icon_state = "cloak" + listen_signal = COMSIG_KB_YAUTJA_CLOAKER + +/datum/action/predator_action/bracer/cloak/action_activate() + . = ..() + bracers.cloaker() + +/datum/action/predator_action/bracer/thwei + name = "Create Stabilizing Crystal" + action_icon_state = "thwei" + listen_signal = COMSIG_KB_YAUTJA_INJECTORS + active = PREDATOR_ACTION_ON_CLICK + +/datum/action/predator_action/bracer/thwei/action_activate() + . = ..() + bracers.injectors() + +/datum/action/predator_action/bracer/capsule + name = "Create Healing Capsule" + action_icon_state = "thwei" + listen_signal = COMSIG_KB_YAUTJA_CAPSULE + active = PREDATOR_ACTION_ON_CLICK + +/datum/action/predator_action/bracer/capsule/action_activate() + . = ..() + bracers.healing_capsule() + +/datum/action/predator_action/bracer/translator + name = "Use Translator" + action_icon_state = "translator" + listen_signal = COMSIG_KB_YAUTJA_TRANSLATE + active = PREDATOR_ACTION_ON_CLICK + +/datum/action/predator_action/bracer/translator/action_activate() + . = ..() + bracers.translate() + +/datum/action/predator_action/bracer/self_destruct + name = "Self Destruct" + action_icon_state = "self_destruct" + listen_signal = COMSIG_KB_YAUTJA_ACTIVATE_SUICIDE + +/datum/action/predator_action/bracer/self_destruct/action_activate() + . = ..() + bracers.activate_suicide() + +#undef PREDATOR_ACTION_ON_CLICK + +//Misc actions +/datum/action/yautja_emote_panel + name = "Open Emote Panel" + button_icon_state = "pred_template" + action_icon_state = "looc_toggle" + +/datum/action/yautja_emote_panel/action_activate() + var/mob/living/carbon/human/human_owner = owner + var/datum/species/yautja/yautja_species = human_owner.species + yautja_species.open_emote_panel() + +/datum/yautja_emote_panel + /// Static dict ("category" : (emotes)) of every yautja emote typepath + var/static/list/yautja_emotes + /// Static list of categories + var/static/list/yautja_categories = list() + /// Panel allows you to spam, so a manual CD is added here + COOLDOWN_DECLARE(panel_emote_cooldown) + +/datum/yautja_emote_panel/New() + if(length(yautja_emotes)) + return + var/list/emotes_to_add = list() + for(var/datum/emote/living/carbon/human/yautja/emote as anything in subtypesof(/datum/emote/living/carbon/human/yautja)) + if(!initial(emote.key) || initial(emote.no_panel)) + continue + + if(!(initial(emote.category) in yautja_categories)) + yautja_categories += initial(emote.category) + emotes_to_add += emote + yautja_emotes = emotes_to_add + +/datum/yautja_emote_panel/proc/ui_interact(mob/user, datum/tgui/ui) + ui = SStgui.try_update_ui(user, src, ui) + if(!ui) + ui = new(user, src, "YautjaEmotes") + ui.open() + +/datum/yautja_emote_panel/ui_data(mob/user) + var/list/data = list() + + data["on_cooldown"] = !COOLDOWN_FINISHED(src, panel_emote_cooldown) + + return data + +/datum/yautja_emote_panel/ui_state(mob/user) + return GLOB.conscious_state + +/datum/yautja_emote_panel/ui_static_data(mob/user) + var/list/data = list() + + data["categories"] = yautja_categories + data["emotes"] = list() + + for(var/datum/emote/living/carbon/human/yautja/emote as anything in yautja_emotes) + data["emotes"] += list(list( + "id" = initial(emote.key), + "text" = (initial(emote.override_say) || initial(emote.say_message) || initial(emote.key)), + "category" = initial(emote.category), + "path" = "[emote]", + )) + + return data + +/datum/yautja_emote_panel/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) + . = ..() + if(.) + return + + switch(action) + if("emote") + var/datum/emote/living/carbon/human/yautja/path + if(!params["emotePath"]) + return FALSE + + path = text2path(params["emotePath"]) + + if(!path || !COOLDOWN_FINISHED(src, panel_emote_cooldown)) + return + + if(!(path in subtypesof(/datum/emote/living/carbon/human/yautja))) + return FALSE + + COOLDOWN_START(src, panel_emote_cooldown, 2.5 SECONDS) + ui.user.emote(initial(path.key)) + return TRUE diff --git a/code/modules/cm_preds/yaut_bracers.dm b/code/modules/cm_preds/yaut_bracers.dm index df8ab136ea18..5577691d64c2 100644 --- a/code/modules/cm_preds/yaut_bracers.dm +++ b/code/modules/cm_preds/yaut_bracers.dm @@ -260,8 +260,6 @@ cloak_alpha = 10 var/exploding = 0 - var/inject_timer = 0 - var/healing_capsule_timer = 0 var/disc_timer = 0 var/explosion_type = 1 //0 is BIG explosion, 1 ONLY gibs the user. var/name_active = TRUE @@ -278,6 +276,9 @@ var/obj/item/weapon/wristblades/left_wristblades var/obj/item/weapon/wristblades/right_wristblades + ///A list of all intrinsic bracer actions + var/list/bracer_actions = list(/datum/action/predator_action/bracer/wristblade, /datum/action/predator_action/bracer/caster, /datum/action/predator_action/bracer/cloak, /datum/action/predator_action/bracer/thwei, /datum/action/predator_action/bracer/capsule, /datum/action/predator_action/bracer/translator, /datum/action/predator_action/bracer/self_destruct, /datum/action/predator_action/bracer/smartdisc) + /obj/item/clothing/gloves/yautja/hunter/Initialize(mapload, new_translator_type, new_caster_material, new_owner_rank) . = ..() if(new_owner_rank) @@ -312,6 +313,10 @@ if(embedded_id.registered_name) embedded_id.set_user_data(user) + for(var/datum/action/action as anything in bracer_actions) + give_action(user, action) + + //Any projectile can decloak a predator. It does defeat one free bullet though. /obj/item/clothing/gloves/yautja/hunter/proc/bullet_hit(mob/living/carbon/human/H, obj/projectile/P) SIGNAL_HANDLER @@ -351,6 +356,10 @@ move_chip_to_bracer() if(HAS_TRAIT(user, TRAIT_CLOAKED)) decloak(user, TRUE) + + for(var/datum/action/action as anything in bracer_actions) + remove_action(user, action) + ..() /obj/item/clothing/gloves/yautja/hunter/on_enter_storage(obj/item/storage/S) @@ -362,8 +371,8 @@ //We use this to activate random verbs for non-Yautja /obj/item/clothing/gloves/yautja/hunter/proc/activate_random_verb(mob/caller) - var/option = rand(1, 11) - //we have options from 1 to 8, but we're giving the user a higher probability of being punished if they already rolled this bad + var/option = rand(1, 10) + //we have options from 1 to 7, but we're giving the user a higher probability of being punished if they already rolled this bad switch(option) if(1) . = wristblades_internal(caller, TRUE) @@ -379,8 +388,6 @@ . = call_disc_internal(caller, TRUE) if(7) . = translate_internal(caller, TRUE) - if(8) - . = call_combi_internal(caller, TRUE) else . = delimb_user(caller) @@ -451,6 +458,12 @@ to_chat(caller, SPAN_NOTICE("You activate your [left_wristblades.plural_name].")) playsound(caller, 'sound/weapons/wristblades_on.ogg', 15, TRUE) + var/datum/action/predator_action/bracer/wristblade/wb_action + for(wb_action as anything in caller.actions) + if(istypestrict(wb_action, /datum/action/predator_action/bracer/wristblade)) + wb_action.update_button_icon(wristblades_deployed) + break + return TRUE /obj/item/clothing/gloves/yautja/hunter/verb/track_gear() @@ -556,7 +569,7 @@ if(HAS_TRAIT(caller, TRAIT_CLOAKED)) //Turn it off. if(cloak_timer > world.time) - to_chat(M, SPAN_WARNING("Your cloaking device is busy! Time left: [max(round((cloak_timer - world.time) / 10), 1)] seconds.")) + to_chat(M, SPAN_WARNING("Your cloaking device is busy! Time left: [max(floor((cloak_timer - world.time) / 10), 1)] seconds.")) return FALSE decloak(caller) else //Turn it on! @@ -569,7 +582,7 @@ return FALSE if(cloak_timer > world.time) - to_chat(M, SPAN_WARNING("Your cloaking device is still recharging! Time left: [max(round((cloak_timer - world.time) / 10), 1)] seconds.")) + to_chat(M, SPAN_WARNING("Your cloaking device is still recharging! Time left: [max(floor((cloak_timer - world.time) / 10), 1)] seconds.")) return FALSE if(!drain_power(M, 50)) @@ -597,6 +610,12 @@ XI.remove_from_hud(M) anim(M.loc,M,'icons/mob/mob.dmi',,"cloak",,M.dir) + var/datum/action/predator_action/bracer/cloak/cloak_action + for(cloak_action as anything in M.actions) + if(istypestrict(cloak_action, /datum/action/predator_action/bracer/cloak)) + cloak_action.update_button_icon(HAS_TRAIT(caller, TRAIT_CLOAKED)) + break + return TRUE /obj/item/clothing/gloves/yautja/hunter/proc/wrapper_fizzle_camouflage() @@ -675,6 +694,12 @@ to_chat(caller, SPAN_NOTICE("You activate your plasma caster. It is in [caster.mode] mode.")) playsound(src, 'sound/weapons/pred_plasmacaster_on.ogg', 15, TRUE) + var/datum/action/predator_action/bracer/caster/caster_action + for(caster_action as anything in caller.actions) + if(istypestrict(caster_action, /datum/action/predator_action/bracer/caster)) + caster_action.update_button_icon(caster_deployed) + break + return TRUE @@ -749,7 +774,7 @@ to_chat(M, SPAN_WARNING("As you fall into unconsciousness you fail to activate your self-destruct device before you collapse.")) return if(M.stat) - to_chat(M, SPAN_WARNING("Not while you're unconcious...")) + to_chat(M, SPAN_WARNING("Not while you're unconscious...")) return var/obj/item/grab/G = M.get_active_hand() @@ -787,16 +812,25 @@ to_chat(M, SPAN_WARNING("Little too late for that now!")) return if(M.stat) - to_chat(M, SPAN_WARNING("Not while you're unconcious...")) + to_chat(M, SPAN_WARNING("Not while you're unconscious...")) return exploding = FALSE to_chat(M, SPAN_NOTICE("Your bracers stop beeping.")) message_all_yautja("[M.real_name] has cancelled their bracer's self-destruction sequence.") message_admins("[key_name(M)] has deactivated their Self-Destruct.") + + var/datum/action/predator_action/bracer/self_destruct/sd_action + for(sd_action as anything in M.actions) + if(istypestrict(sd_action, /datum/action/predator_action/bracer/self_destruct)) + sd_action.update_button_icon(exploding) + break + return + if(istype(M.wear_mask,/obj/item/clothing/mask/facehugger) || (M.status_flags & XENO_HOST)) to_chat(M, SPAN_WARNING("Strange...something seems to be interfering with your bracer functions...")) return + if(forced || alert("Detonate the bracers? Are you sure?\n\nNote: If you activate SD for any non-accidental reason during or after a fight, you commit to the SD. By initially activating the SD, you have accepted your impending death to preserve any lost honor.","Explosive Bracers", "Yes", "No") == "Yes") if(M.gloves != src) return @@ -804,7 +838,7 @@ to_chat(M, SPAN_WARNING("Little too late for that now!")) return if(M.stat) - to_chat(M, SPAN_WARNING("Not while you're unconcious...")) + to_chat(M, SPAN_WARNING("Not while you're unconscious...")) return if(exploding) return @@ -815,10 +849,16 @@ log_attack("[key_name(M)] triggered their predator self-destruct sequence in [A ? "in [A.name]":""]") message_all_yautja("[M.real_name] has triggered their bracer's self-destruction sequence.") explode(M) - return 1 + var/datum/action/predator_action/bracer/self_destruct/sd_action + for(sd_action as anything in M.actions) + if(istypestrict(sd_action, /datum/action/predator_action/bracer/self_destruct)) + sd_action.update_button_icon(exploding) + break + return TRUE +#define YAUTJA_CREATE_CRYSTAL_COOLDOWN "yautja_create_crystal_cooldown" /obj/item/clothing/gloves/yautja/hunter/verb/injectors() set name = "Create Stabilising Crystal" set category = "Yautja.Utility" @@ -826,7 +866,6 @@ set src in usr . = injectors_internal(usr, FALSE) - /obj/item/clothing/gloves/yautja/hunter/proc/injectors_internal(mob/caller, forced = FALSE) if(caller.is_mob_incapacitated()) return FALSE @@ -839,26 +878,22 @@ to_chat(caller, SPAN_WARNING("Your active hand must be empty!")) return FALSE - if(inject_timer) - to_chat(caller, SPAN_WARNING("You recently activated the stabilising crystal. Be patient.")) + if(TIMER_COOLDOWN_CHECK(src, YAUTJA_CREATE_CRYSTAL_COOLDOWN)) + var/remaining_time = DisplayTimeText(S_TIMER_COOLDOWN_TIMELEFT(src, YAUTJA_CREATE_CRYSTAL_COOLDOWN)) + to_chat(caller, SPAN_WARNING("You recently synthesized a stabilising crystal. A new crystal will be available in [remaining_time].")) return FALSE if(!drain_power(caller, 400)) return FALSE - inject_timer = TRUE - addtimer(CALLBACK(src, PROC_REF(injectors_ready)), 2 MINUTES) + S_TIMER_COOLDOWN_START(src, YAUTJA_CREATE_CRYSTAL_COOLDOWN, 2 MINUTES) to_chat(caller, SPAN_NOTICE("You feel a faint hiss and a crystalline injector drops into your hand.")) var/obj/item/reagent_container/hypospray/autoinjector/yautja/O = new(caller) caller.put_in_active_hand(O) playsound(src, 'sound/machines/click.ogg', 15, 1) return TRUE - -/obj/item/clothing/gloves/yautja/hunter/proc/injectors_ready() - if(ismob(loc)) - to_chat(loc, SPAN_NOTICE("Your bracers beep faintly and inform you that a new stabilising crystal is ready to be created.")) - inject_timer = FALSE +#undef YAUTJA_CREATE_CRYSTAL_COOLDOWN /obj/item/clothing/gloves/yautja/hunter/verb/healing_capsule() set name = "Create Healing Capsule" @@ -867,7 +902,7 @@ set src in usr . = healing_capsule_internal(usr, FALSE) - +#define YAUTJA_CREATE_CAPSULE_COOLDOWN "yautja_create_capsule_cooldown" /obj/item/clothing/gloves/yautja/hunter/proc/healing_capsule_internal(mob/caller, forced = FALSE) if(caller.is_mob_incapacitated()) return FALSE @@ -880,26 +915,22 @@ to_chat(caller, SPAN_WARNING("Your active hand must be empty!")) return FALSE - if(healing_capsule_timer) - to_chat(usr, SPAN_WARNING("Your bracer is still generating a new healing capsule!")) + if(TIMER_COOLDOWN_CHECK(src, YAUTJA_CREATE_CAPSULE_COOLDOWN)) + var/remaining_time = DisplayTimeText(S_TIMER_COOLDOWN_TIMELEFT(src, YAUTJA_CREATE_CAPSULE_COOLDOWN)) + to_chat(caller, SPAN_WARNING("You recently synthesized a healing capsule. A new capsule will be available in [remaining_time].")) return FALSE if(!drain_power(caller, 600)) return FALSE - healing_capsule_timer = TRUE - addtimer(CALLBACK(src, PROC_REF(healing_capsule_ready)), 4 MINUTES) + S_TIMER_COOLDOWN_START(src, YAUTJA_CREATE_CAPSULE_COOLDOWN, 4 MINUTES) to_chat(caller, SPAN_NOTICE("You feel your bracer churn as it pops out a healing capsule.")) var/obj/item/tool/surgery/healing_gel/O = new(caller) caller.put_in_active_hand(O) playsound(src, 'sound/machines/click.ogg', 15, 1) return TRUE - -/obj/item/clothing/gloves/yautja/hunter/proc/healing_capsule_ready() - if(ismob(loc)) - to_chat(loc, SPAN_NOTICE("Your bracers beep faintly and inform you that a new healing capsule is ready to be created.")) - healing_capsule_timer = FALSE +#undef YAUTJA_CREATE_CAPSULE_COOLDOWN /obj/item/clothing/gloves/yautja/hunter/verb/call_disc() set name = "Call Smart-Disc" @@ -991,26 +1022,6 @@ to_chat(caller, SPAN_NOTICE("You add \the [untracked_item] to the tracking system.")) return TRUE -/obj/item/clothing/gloves/yautja/hunter/verb/call_combi() - set name = "Yank combi-stick" - set category = "Yautja.Weapons" - set desc = "Yank on your combi-stick's chain, if it's in range. Otherwise... recover it yourself." - set src in usr - . = call_combi_internal(usr, FALSE) - -/obj/item/clothing/gloves/yautja/hunter/proc/call_combi_internal(mob/caller, forced = FALSE) - if(caller.is_mob_incapacitated()) - return FALSE - - . = check_random_function(caller, forced) - if(.) - return - - for(var/datum/effects/tethering/tether in caller.effects_list) - if(istype(tether.tethered.affected_atom, /obj/item/weapon/yautja/combistick)) - var/obj/item/weapon/yautja/combistick/stick = tether.tethered.affected_atom - stick.recall() - /obj/item/clothing/gloves/yautja/hunter/verb/translate() set name = "Translator" set desc = "Emit a message from your bracer to those nearby." @@ -1039,7 +1050,7 @@ if(!drain_power(caller, 50)) return - log_say("[caller.name != "Unknown" ? caller.name : "([caller.real_name])"] \[Yautja Translator\]: [msg] (CKEY: [caller.key]) (JOB: [caller.job])") + log_say("[caller.name != "Unknown" ? caller.name : "([caller.real_name])"] \[Yautja Translator\]: [msg] (CKEY: [caller.key]) (JOB: [caller.job]) (AREA: [get_area_name(caller)])") var/list/heard = get_mobs_in_view(7, caller) for(var/mob/M in heard) @@ -1148,7 +1159,7 @@ return TRUE var/mob/living/carbon/human/victim = held_mob.grabbed_thing - var/obj/item/clothing/gloves/yautja/hunter/bracer = victim.gloves + var/obj/item/clothing/gloves/yautja/bracer = victim.gloves if(isspeciesyautja(victim) && !(victim.stat == DEAD)) to_chat(user, SPAN_WARNING("You cannot unlock the bracer of a living hunter!")) return FALSE diff --git a/code/modules/cm_preds/yaut_hudprocs.dm b/code/modules/cm_preds/yaut_hudprocs.dm index 6131ac135cb7..460cad894c6d 100644 --- a/code/modules/cm_preds/yaut_hudprocs.dm +++ b/code/modules/cm_preds/yaut_hudprocs.dm @@ -442,3 +442,18 @@ T.hud_set_hunter() else to_chat(src, SPAN_YAUTJABOLD("You cannot undo the actions of a living brother or sister!")) + +/mob/living/carbon/human/proc/call_combi() + set name = "Yank combi-stick" + set category = "Yautja.Weapons" + set desc = "Yank on your combi-stick's chain, if it's in range. Otherwise... recover it yourself." + + if(usr.is_mob_incapacitated()) + return FALSE + call_combi_internal(usr) + +/mob/living/carbon/human/proc/call_combi_internal(mob/caller, forced = FALSE) + for(var/datum/effects/tethering/tether in caller.effects_list) + if(istype(tether.tethered.affected_atom, /obj/item/weapon/yautja/combistick)) + var/obj/item/weapon/yautja/combistick/stick = tether.tethered.affected_atom + stick.recall() diff --git a/code/modules/cm_preds/yaut_items.dm b/code/modules/cm_preds/yaut_items.dm index a648f2392d47..27edf559d3ca 100644 --- a/code/modules/cm_preds/yaut_items.dm +++ b/code/modules/cm_preds/yaut_items.dm @@ -3,7 +3,7 @@ //Thrall subtypes are located in /code/modules/cm_preds/thrall_items.dm /proc/add_to_missing_pred_gear(obj/item/W) - if(!is_admin_level(W.z)) + if(!should_block_game_interaction(W)) GLOB.loose_yautja_gear |= W /proc/remove_from_missing_pred_gear(obj/item/W) @@ -217,7 +217,7 @@ siemens_coefficient = 0.2 min_cold_protection_temperature = SHOE_MIN_COLD_PROT max_heat_protection_temperature = SHOE_MAX_HEAT_PROT - items_allowed = list( + allowed_items_typecache = list( /obj/item/weapon/yautja/knife, /obj/item/weapon/gun/energy/yautja/plasmapistol, ) @@ -259,10 +259,9 @@ armor_rad = CLOTHING_ARMOR_MEDIUMHIGH armor_internaldamage = CLOTHING_ARMOR_MEDIUMHIGH -/obj/item/clothing/shoes/yautja/hunter/knife/New() - ..() - stored_item = new /obj/item/weapon/yautja/knife(src) - update_icon() +/obj/item/clothing/shoes/yautja/hunter/knife + spawn_item_type = /obj/item/weapon/yautja/knife + /obj/item/clothing/under/chainshirt name = "ancient alien mesh suit" desc = "A strange alloy weave in the form of a vest. It feels cold with an alien weight." @@ -394,7 +393,7 @@ var/mob/living/carbon/human/H = user var/ship_to_tele = list("Yautja Ship" = -1, "Human Ship" = "Human") - if(!HAS_TRAIT(H, TRAIT_YAUTJA_TECH) || is_admin_level(H.z)) + if(!HAS_TRAIT(H, TRAIT_YAUTJA_TECH) || should_block_game_interaction(H)) to_chat(user, SPAN_WARNING("You fiddle with it, but nothing happens!")) return @@ -762,10 +761,10 @@ if(ishuman(C)) C.emote("pain") if(isxeno(C)) - var/mob/living/carbon/xenomorph/X = C + var/mob/living/carbon/xenomorph/xeno = C C.emote("needhelp") - X.interference = 100 // Some base interference to give pred time to get some damage in, if it cannot land a single hit during this time pred is cheeks - RegisterSignal(X, COMSIG_XENO_PRE_HEAL, PROC_REF(block_heal)) + xeno.AddComponent(/datum/component/status_effect/interference, 100) // Some base interference to give pred time to get some damage in, if it cannot land a single hit during this time pred is cheeks + RegisterSignal(xeno, COMSIG_XENO_PRE_HEAL, PROC_REF(block_heal)) message_all_yautja("A hunting trap has caught something in [get_area_name(loc)]!") /obj/item/hunting_trap/proc/block_heal(mob/living/carbon/xenomorph/xeno) @@ -945,7 +944,7 @@ new /obj/item/tool/surgery/healing_gel/(src) /obj/item/storage/medicomp/update_icon() - if(!contents.len) + if(!length(contents)) icon_state = "medicomp_open" else icon_state = "medicomp" diff --git a/code/modules/cm_preds/yaut_mask.dm b/code/modules/cm_preds/yaut_mask.dm index 7e8e661e8a5e..f87c7a48c2e0 100644 --- a/code/modules/cm_preds/yaut_mask.dm +++ b/code/modules/cm_preds/yaut_mask.dm @@ -43,6 +43,8 @@ var/list/mask_huds = list(MOB_HUD_XENO_STATUS, MOB_HUD_HUNTER, MOB_HUD_HUNTER_CLAN, MOB_HUD_MEDICAL_OBSERVER) var/thrall = FALSE //Used to affect icon generation. + ///A list of all intrinsic mask actions + var/list/mask_actions = list(/datum/action/predator_action/mask/zoom, /datum/action/predator_action/mask/visor) /obj/item/clothing/mask/gas/yautja/New(location, mask_number = rand(1,12), armor_material = "ebony", legacy = "None") ..() @@ -96,8 +98,8 @@ if(istype(visor, /obj/item/clothing/glasses/night/yautja))//To change if any new vision modes are made human_holder.temp_drop_inv_item(visor) qdel(visor) - human_holder.update_inv_glasses() human_holder.update_sight() + add_vision(human_holder) /obj/item/clothing/mask/gas/yautja/proc/drain_power(mob/living/carbon/human/human_holder, drain_amount) var/obj/item/clothing/gloves/yautja/bracer = human_holder.gloves @@ -115,6 +117,18 @@ return zoom(usr, 11, 12) + update_zoom_action(src, usr) + if(zoom) + RegisterSignal(src, COMSIG_ITEM_UNZOOM, PROC_REF(update_zoom_action)) + return + +/obj/item/clothing/mask/gas/yautja/proc/update_zoom_action(source, mob/living/user) + UnregisterSignal(src, COMSIG_ITEM_UNZOOM) + var/datum/action/predator_action/mask/zoom/zoom_action + for(zoom_action as anything in user.actions) + if(istypestrict(zoom_action, /datum/action/predator_action/mask/zoom)) + zoom_action.update_button_icon(zoom) + break /obj/item/clothing/mask/gas/yautja/verb/togglesight() set name = "Toggle Mask Visors" @@ -165,12 +179,21 @@ playsound(src, 'sound/effects/pred_vision.ogg', 15, 1) user.update_inv_glasses() + var/datum/action/predator_action/mask/visor/visor_action + for(visor_action as anything in user.actions) + if(istypestrict(visor_action, /datum/action/predator_action/mask/visor)) + visor_action.update_button_icon(current_goggles) + break + #undef VISION_MODE_OFF #undef VISION_MODE_NVG /obj/item/clothing/mask/gas/yautja/dropped(mob/living/carbon/human/user) //Clear the gogglors if the helmet is removed. STOP_PROCESSING(SSobj, src) if(istype(user) && user.wear_mask == src) //inventory reference is only cleared after dropped(). + for(var/datum/action/action as anything in mask_actions) + remove_action(user, action) + for(var/listed_hud in mask_huds) var/datum/mob_hud/H = GLOB.huds[listed_hud] H.remove_hud_from(user, src) @@ -185,6 +208,9 @@ /obj/item/clothing/mask/gas/yautja/equipped(mob/living/carbon/human/user, slot) if(slot == WEAR_FACE) + for(var/datum/action/action as anything in mask_actions) + give_action(user, action) + START_PROCESSING(SSobj, src) for(var/listed_hud in mask_huds) var/datum/mob_hud/H = GLOB.huds[listed_hud] diff --git a/code/modules/cm_preds/yaut_procs.dm b/code/modules/cm_preds/yaut_procs.dm index 728e548dfd2f..d8ad1c297a37 100644 --- a/code/modules/cm_preds/yaut_procs.dm +++ b/code/modules/cm_preds/yaut_procs.dm @@ -337,3 +337,4 @@ equip_to_slot_if_possible(new /obj/item/falcon_drone(src.loc), WEAR_R_EAR, disable_warning = TRUE) remove_verb(src, /mob/living/carbon/human/proc/pred_buy) + remove_action(src, /datum/action/predator_action/claim_equipment) diff --git a/code/modules/cm_preds/yaut_weapons.dm b/code/modules/cm_preds/yaut_weapons.dm index 0ea527847d72..2db3c2ca4b68 100644 --- a/code/modules/cm_preds/yaut_weapons.dm +++ b/code/modules/cm_preds/yaut_weapons.dm @@ -128,6 +128,7 @@ attack_speed = 5 attack_verb = list("sliced", "slashed", "jabbed", "torn", "gored") force = MELEE_FORCE_TIER_5 + has_speed_bonus = FALSE /*######################################### ########### One Handed Weapons ############ @@ -146,7 +147,7 @@ desc = "A segmented, lightweight whip made of durable, acid-resistant metal. Not very common among Yautja Hunters, but still a dangerous weapon capable of shredding prey." icon_state = "whip" item_state = "whip" - flags_atom = FPRINT|CONDUCT + flags_atom = FPRINT|QUICK_DRAWABLE|CONDUCT flags_item = ITEM_PREDATOR flags_equip_slot = SLOT_WAIST embeddable = FALSE @@ -165,13 +166,13 @@ . = ..() if((human_adapted || isyautja(user)) && isxeno(target)) var/mob/living/carbon/xenomorph/xenomorph = target - xenomorph.interference = 30 + xenomorph.AddComponent(/datum/component/status_effect/interference, 30, 30) /obj/item/weapon/yautja/sword name = "clan sword" desc = "An expertly crafted Yautja blade carried by hunters who wish to fight up close. Razor sharp and capable of cutting flesh into ribbons. Commonly carried by aggressive and lethal hunters." icon_state = "clansword" - flags_atom = FPRINT|CONDUCT + flags_atom = FPRINT|QUICK_DRAWABLE|CONDUCT flags_item = ITEM_PREDATOR flags_equip_slot = SLOT_BACK force = MELEE_FORCE_TIER_7 @@ -189,14 +190,14 @@ . = ..() if((human_adapted || isyautja(user)) && isxeno(target)) var/mob/living/carbon/xenomorph/xenomorph = target - xenomorph.interference = 30 + xenomorph.AddComponent(/datum/component/status_effect/interference, 30, 30) /obj/item/weapon/yautja/scythe name = "dual war scythe" desc = "A huge, incredibly sharp dual blade used for hunting dangerous prey. This weapon is commonly carried by Yautja who wish to disable and slice apart their foes." icon_state = "predscythe" item_state = "scythe_dual" - flags_atom = FPRINT|CONDUCT + flags_atom = FPRINT|QUICK_DRAWABLE|CONDUCT flags_item = ITEM_PREDATOR flags_equip_slot = SLOT_WAIST force = MELEE_FORCE_TIER_6 @@ -213,7 +214,7 @@ ..() if((human_adapted || isyautja(user)) && isxeno(target)) var/mob/living/carbon/xenomorph/xenomorph = target - xenomorph.interference = 15 + xenomorph.AddComponent(/datum/component/status_effect/interference, 15, 15) if(prob(15)) user.visible_message(SPAN_DANGER("An opening in combat presents itself!"),SPAN_DANGER("You manage to strike at your foe once more!")) @@ -233,7 +234,7 @@ name = "combi-stick" desc = "A compact yet deadly personal weapon. Can be concealed when folded. Functions well as a throwing weapon or defensive tool. A common sight in Yautja packs due to its versatility." icon_state = "combistick" - flags_atom = FPRINT|CONDUCT + flags_atom = FPRINT|QUICK_DRAWABLE|CONDUCT flags_equip_slot = SLOT_BACK flags_item = TWOHANDED|ITEM_PREDATOR w_class = SIZE_LARGE @@ -248,14 +249,16 @@ hitsound = 'sound/weapons/bladeslice.ogg' attack_verb = list("speared", "stabbed", "impaled") - var/on = 1 - var/charged + var/on = TRUE + var/charged = FALSE var/force_wielded = MELEE_FORCE_TIER_6 var/force_unwielded = MELEE_FORCE_TIER_2 var/force_storage = MELEE_FORCE_TIER_1 /// Ref to the tether effect when thrown var/datum/effects/tethering/chain + ///The mob the chain is linked to + var/mob/living/linked_to /obj/item/weapon/yautja/combistick/Destroy() cleanup_chain() @@ -273,11 +276,13 @@ charged = FALSE remove_filter("combistick_charge") unwield(user) //Otherwise stays wielded even when thrown - if(on) - setup_chain(user) return TRUE /obj/item/weapon/yautja/combistick/proc/setup_chain(mob/living/user) + give_action(user, /datum/action/predator_action/bracer/combistick) + add_verb(user, /mob/living/carbon/human/proc/call_combi) + linked_to = user + var/list/tether_effects = apply_tether(user, src, range = 6, resistable = FALSE) chain = tether_effects["tetherer_tether"] RegisterSignal(chain, COMSIG_PARENT_QDELETING, PROC_REF(cleanup_chain)) @@ -293,6 +298,10 @@ /// Clean up the chain, deleting/nulling/unregistering as needed /obj/item/weapon/yautja/combistick/proc/cleanup_chain() SIGNAL_HANDLER + if(linked_to) + remove_action(linked_to, /datum/action/predator_action/bracer/combistick) + remove_verb(linked_to, /mob/living/carbon/human/proc/call_combi) + if(!QDELETED(chain)) QDEL_NULL(chain) @@ -429,7 +438,7 @@ return if((human_adapted || isspeciesyautja(user)) && isxeno(target)) var/mob/living/carbon/xenomorph/xenomorph = target - xenomorph.interference = 30 + xenomorph.AddComponent(/datum/component/status_effect/interference, 30, 30) if(target == user || target.stat == DEAD) to_chat(user, SPAN_DANGER("You think you're smart?")) //very funny @@ -466,7 +475,7 @@ desc = "A viciously sharp dagger inscribed with ancient Yautja markings. Smells thickly of blood. Carried by some hunters." icon_state = "predknife" item_state = "knife" - flags_atom = FPRINT|CONDUCT + flags_atom = FPRINT|QUICK_DRAWABLE|CONDUCT flags_item = ITEM_PREDATOR|CAN_DIG_SHRAPNEL flags_equip_slot = SLOT_STORE sharp = IS_SHARP_ITEM_ACCURATE @@ -750,7 +759,7 @@ throwforce = MELEE_FORCE_TIER_3 embeddable = FALSE //so predators don't lose their glaive when thrown. sharp = IS_SHARP_ITEM_BIG - flags_atom = FPRINT|CONDUCT + flags_atom = FPRINT|QUICK_DRAWABLE|CONDUCT attack_verb = list("sliced", "slashed", "carved", "diced", "gored") attack_speed = 14 //Default is 7. @@ -760,7 +769,7 @@ return if((human_adapted || isyautja(user)) && isxeno(target)) var/mob/living/carbon/xenomorph/xenomorph = target - xenomorph.interference = 30 + xenomorph.AddComponent(/datum/component/status_effect/interference, 30, 30) /obj/item/weapon/twohanded/yautja/glaive/alt icon_state = "glaive_alt" @@ -929,7 +938,7 @@ /obj/item/weapon/gun/energy/yautja/plasmarifle/set_gun_config_values() ..() - set_fire_delay(FIRE_DELAY_TIER_6*2) + set_fire_delay(FIRE_DELAY_TIER_4*2) accuracy_mult = BASE_ACCURACY_MULT + HIT_ACCURACY_MULT_TIER_10 accuracy_mult_unwielded = BASE_ACCURACY_MULT + HIT_ACCURACY_MULT_TIER_10 scatter = SCATTER_AMOUNT_TIER_6 @@ -1123,7 +1132,7 @@ w_class = SIZE_HUGE force = 0 fire_delay = 3 - flags_atom = FPRINT|CONDUCT + flags_atom = FPRINT|QUICK_DRAWABLE|CONDUCT flags_item = NOBLUDGEON|DELONDROP|IGNITING_ITEM //Can't bludgeon with this. flags_gun_features = GUN_UNUSUAL_DESIGN has_empty_icon = FALSE @@ -1238,6 +1247,13 @@ /obj/item/weapon/gun/energy/yautja/plasma_caster/dropped(mob/living/carbon/human/M) playsound(M, 'sound/weapons/pred_plasmacaster_off.ogg', 15, 1) to_chat(M, SPAN_NOTICE("You deactivate your plasma caster.")) + + var/datum/action/predator_action/bracer/caster/caster_action + for(caster_action as anything in M.actions) + if(istypestrict(caster_action, /datum/action/predator_action/bracer/caster)) + caster_action.update_button_icon(FALSE) + break + if(source) forceMove(source) source.caster_deployed = FALSE diff --git a/code/modules/cm_tech/droppod/equipment.dm b/code/modules/cm_tech/droppod/equipment.dm index 727bfccf0e28..da8392a1517e 100644 --- a/code/modules/cm_tech/droppod/equipment.dm +++ b/code/modules/cm_tech/droppod/equipment.dm @@ -27,11 +27,22 @@ equipment_to_spawn.forceMove(loc) /obj/structure/droppod/equipment/sentry/spawn_equipment(equipment, mob/M) - var/obj/structure/machinery/defenses/sentry/S = ..() - S.owner_mob = M - return S + var/obj/structure/machinery/defenses/sentry/sentry = ..() + sentry.owner_mob = M + return sentry /obj/structure/droppod/equipment/sentry/move_equipment() ..() - var/obj/structure/machinery/defenses/sentry/S = equipment_to_spawn - S.power_on() + var/obj/structure/machinery/defenses/sentry/sentry = equipment_to_spawn + sentry.power_on() + +/obj/structure/droppod/equipment/sentry_holder/spawn_equipment(equipment, mob/M) + var/obj/structure/machinery/sentry_holder/holder = ..() + var/obj/structure/machinery/defenses/sentry/sentry = holder.deployed_turret + sentry.owner_mob = M + return holder + +/obj/structure/droppod/equipment/sentry_holder/move_equipment() + ..() + var/obj/structure/machinery/sentry_holder/holder = equipment_to_spawn + holder.deploy_sentry() diff --git a/code/modules/cm_tech/droppod/lz_effect.dm b/code/modules/cm_tech/droppod/lz_effect.dm index 6a73916c7b3f..7ab955d8a00c 100644 --- a/code/modules/cm_tech/droppod/lz_effect.dm +++ b/code/modules/cm_tech/droppod/lz_effect.dm @@ -34,6 +34,7 @@ /obj/effect/warning/explosive/proc/disappear() qdel(src) + /obj/effect/warning/explosive/gas name = "gas warning" color = "#42acd6" diff --git a/code/modules/cm_tech/hologram.dm b/code/modules/cm_tech/hologram.dm index 3509c0a73a7d..1fcba71a4560 100644 --- a/code/modules/cm_tech/hologram.dm +++ b/code/modules/cm_tech/hologram.dm @@ -14,6 +14,7 @@ GLOBAL_LIST_EMPTY_TYPED(hologram_list, /mob/hologram) var/action_icon_state = "hologram_exit" var/mob/linked_mob + var/initial_leave_button = /datum/action/leave_hologram var/datum/action/leave_hologram/leave_button ///If can be detected on motion detectors. var/motion_sensed = FALSE @@ -45,7 +46,7 @@ GLOBAL_LIST_EMPTY_TYPED(hologram_list, /mob/hologram) name = "[initial(name)] ([M.name])" - leave_button = new(null, action_icon_state) + leave_button = new initial_leave_button(null, action_icon_state) leave_button.linked_hologram = src leave_button.give_to(M) diff --git a/code/modules/cm_tech/implements/armor.dm b/code/modules/cm_tech/implements/armor.dm index c08bf6d3c128..0e772567ea1a 100644 --- a/code/modules/cm_tech/implements/armor.dm +++ b/code/modules/cm_tech/implements/armor.dm @@ -7,9 +7,11 @@ var/base_icon_state = "regular2" slot = ACCESSORY_SLOT_ARMOR_C + w_class = SIZE_MEDIUM + /// is it *armor* or something different & irrelevant and always passes damage & doesnt take damage to itself? + var/is_armor = TRUE var/armor_health = 10 var/armor_maxhealth = 10 - var/take_slash_damage = TRUE var/slash_durability_mult = 0.25 var/FF_projectile_durability_mult = 0.1 @@ -22,7 +24,6 @@ ) var/scrappable = TRUE - var/armor_hitsound = 'sound/effects/metalhit.ogg' var/armor_shattersound = 'sound/effects/metal_shatter.ogg' @@ -33,7 +34,7 @@ return /obj/item/clothing/accessory/health/proc/get_damage_status() - var/percentage = round(armor_health / armor_maxhealth * 100) + var/percentage = floor(armor_health / armor_maxhealth * 100) switch(percentage) if(0) . = "It is broken." @@ -98,14 +99,14 @@ SIGNAL_HANDLER if(damage <= 0 || (ammo_flags & AMMO_IGNORE_ARMOR)) return - + if(!is_armor) + return var/damage_to_nullify = armor_health var/final_proj_mult = FF_projectile_durability_mult var/mob/living/carbon/human/pfirer = P.firer if(user.faction != pfirer.faction) final_proj_mult = hostile_projectile_durability_mult - armor_health = max(armor_health - damage*final_proj_mult, 0) update_icon() @@ -120,6 +121,8 @@ /obj/item/clothing/accessory/health/proc/take_slash_damage(mob/living/user, list/slashdata) SIGNAL_HANDLER + if(!is_armor) + return var/armor_damage = slashdata["n_damage"] var/damage_to_nullify = armor_health armor_health = max(armor_health - armor_damage*slash_durability_mult, 0) @@ -134,11 +137,11 @@ slashdata["slash_noise"] = armor_hitsound /obj/item/clothing/accessory/health/attackby(obj/item/clothing/accessory/health/I, mob/user) - if(!istype(I, src.type) || !scrappable || has_suit || I.has_suit) + if(!istype(I, src.type) || !scrappable || has_suit || I.has_suit || !is_armor) return if(!I.armor_health && !armor_health) - to_chat(user, SPAN_NOTICE("You use the shards of armor to cobble together an improvised trauma plate.")) + to_chat(user, SPAN_NOTICE("You use the shards of armor to cobble together an improvised ceramic plate.")) qdel(I) qdel(src) user.put_in_active_hand(new /obj/item/clothing/accessory/health/scrap()) @@ -165,6 +168,9 @@ return ..() +/obj/item/clothing/accessory/health/ceramic_plate/take_slash_damage(mob/living/user, list/slashdata) + return + /obj/item/clothing/accessory/health/scrap name = "scrap metal" desc = "A weak armor plate, only able to protect from a little bit of damage. Perhaps that will be enough." @@ -184,3 +190,265 @@ . = ..() if(. && !armor_health) qdel(src) + +/obj/item/clothing/accessory/health/scrap/take_bullet_damage(mob/living/user, damage, ammo_flags) + if(ammo_flags & AMMO_ACIDIC) + return + + return ..() + +/obj/item/clothing/accessory/health/scrap/take_slash_damage(mob/living/user, list/slashdata) + return + +/obj/item/clothing/accessory/health/research_plate + name = "experimental uniform attachment" + desc = "Attachment to the uniform which gives X (this shouldn't be in your handdssss)" + is_armor = FALSE + icon_state = "plate_research" + var/obj/item/clothing/attached_uni + ///can the plate be recycled after X condition? 0 means it cannot be recycled, otherwise put in the biomass points to refund. + var/recyclable_value = 0 + +/obj/item/clothing/accessory/health/research_plate/Destroy() + attached_uni = null + . = ..() + +/obj/item/clothing/accessory/health/research_plate/on_attached(obj/item/clothing/attached_to, mob/living/carbon/human/user) + . = ..() + attached_uni = attached_to + +/obj/item/clothing/accessory/health/research_plate/proc/can_recycle(mob/living/user) //override this proc for check if you can recycle the plate. + return FALSE + + +/obj/item/clothing/accessory/health/research_plate/on_attached(obj/item/clothing/S, mob/living/carbon/human/user) + . = ..() + RegisterSignal(user, COMSIG_MOB_ITEM_UNEQUIPPED, PROC_REF(on_removed_sig)) + +/obj/item/clothing/accessory/health/research_plate/on_removed(mob/living/user, obj/item/clothing/C) + . = ..() + UnregisterSignal(user, COMSIG_MOB_ITEM_UNEQUIPPED) + +/obj/item/clothing/accessory/health/research_plate/proc/on_removed_sig(mob/living/user, slot) + SIGNAL_HANDLER + if(slot != attached_uni) + return FALSE + UnregisterSignal(user, COMSIG_MOB_ITEM_UNEQUIPPED) + return TRUE + +/obj/item/clothing/accessory/health/research_plate/translator + name = "experimental language translator" + desc = "Translates any language heard by the microphones on the plate without any linguistical input, allowing to translate languages never heard before and known languages alike." + +/obj/item/clothing/accessory/health/research_plate/translator/on_attached(obj/item/clothing/S, mob/living/carbon/human/user) + . = ..() + to_chat(user, SPAN_NOTICE("[src] buzzes as it begins to listen for input.")) + user.universal_understand = TRUE + +/obj/item/clothing/accessory/health/research_plate/translator/on_removed(mob/living/carbon/human/user, obj/item/clothing/C) + . = ..() + if(user.universal_understand) + to_chat(user, SPAN_NOTICE("[src] makes a sad woop sound as it powers down.")) + attached_uni = null + if(user.chem_effect_flags & CHEM_EFFECT_HYPER_THROTTLE) // we are currently under effect of simular univeral understand drug. + return + user.universal_understand = FALSE + +/obj/item/clothing/accessory/health/research_plate/translator/on_removed_sig(mob/living/carbon/human/user, slot) + . = ..() + if(. == FALSE) + return + if(user.universal_understand) + to_chat(user, SPAN_NOTICE("[src] makes a woop sound as it is powered down.")) + if(user.chem_effect_flags & CHEM_EFFECT_HYPER_THROTTLE) // we are currently under effect of simular univeral understand drug. + return + attached_uni = null + user.universal_understand = FALSE + +/obj/item/clothing/accessory/health/research_plate/coagulator + name = "experimental blood coagulator" + desc = "A device that encourages clotting through the coordinated effort of multiple sensors and radiation emitters. The Surgeon General warns that continuous exposure to radiation may be hazardous to your health." + +/obj/item/clothing/accessory/health/research_plate/coagulator/on_attached(obj/item/clothing/S, mob/living/carbon/human/user) + . = ..() + if (user.chem_effect_flags & CHEM_EFFECT_NO_BLEEDING) + return + user.chem_effect_flags |= CHEM_EFFECT_NO_BLEEDING + to_chat(user, SPAN_NOTICE("You feel tickling as you activate [src].")) + +/obj/item/clothing/accessory/health/research_plate/coagulator/on_removed(mob/living/carbon/human/user, obj/item/clothing/C) + . = ..() + if (user.chem_effect_flags & CHEM_EFFECT_NO_BLEEDING) + user.chem_effect_flags &= CHEM_EFFECT_NO_BLEEDING + to_chat(user, SPAN_NOTICE("You feel [src] peeling off from your skin.")) + attached_uni = null + +/obj/item/clothing/accessory/health/research_plate/coagulator/on_removed_sig(mob/living/carbon/human/user, slot) + . = ..() + if(. == FALSE) + return + if(user.chem_effect_flags & CHEM_EFFECT_NO_BLEEDING) + to_chat(user, SPAN_NOTICE("You feel [src] peeling off from your skin.")) + user.chem_effect_flags &= CHEM_EFFECT_NO_BLEEDING + attached_uni = null + +/obj/item/clothing/accessory/health/research_plate/emergency_injector + name = "emergency chemical plate" + desc = "One-time disposable research plate packing all kinds of chemicals injected at the will of the user by pressing two buttons on the sides simultaneously. The injection is painless, instant and packs much more chemicals than your normal emergency injector. Features OD Protection in three modes." + var/od_protection_mode = EMERGENCY_PLATE_OD_PROTECTION_STRICT + var/datum/action/item_action/activation + var/mob/living/wearer + var/used = FALSE + /// 1 means the player overdosed with OD_OFF mode. 2 means the plate adjusted the chemicals injected. + var/warning_type = FALSE + var/list/chemicals_to_inject = list( + "oxycodone" = 20, + "bicaridine" = 30, + "kelotane" = 30, + "meralyne" = 15, + "dermaline" = 15, + "dexalinp" = 1, + "inaprovaline" = 30, + ) + recyclable_value = 100 + +/obj/item/clothing/accessory/health/research_plate/emergency_injector/Destroy() + wearer = null + if(!QDELETED(activation)) + QDEL_NULL(activation) + . = ..() + +/obj/item/clothing/accessory/health/research_plate/emergency_injector/get_examine_text(mob/user) + . = ..() + . += SPAN_INFO("ALT-Clicking the plate will toggle overdose protection") + . += SPAN_INFO("Overdose protection seems to be [od_protection_mode == 1 ? "ON" : od_protection_mode == 2 ? "DYNAMIC" : "OFF"]") + if(used) + . += SPAN_WARNING("It is already used!") + +/obj/item/clothing/accessory/health/research_plate/emergency_injector/clicked(mob/user, list/mods) + . = ..() + if(mods["alt"]) + var/text = "You toggle overdose protection " + if(od_protection_mode == EMERGENCY_PLATE_OD_PROTECTION_DYNAMIC) + od_protection_mode = EMERGENCY_PLATE_OD_PROTECTION_OFF + text += "to OVERRIDE. Overdose protection is now offline." + else + od_protection_mode++ + if(od_protection_mode == EMERGENCY_PLATE_OD_PROTECTION_DYNAMIC) + text += "to DYNAMIC. Overdose subsystems will inject chemicals but will not go above overdose levels." + else + text += "to STRICT. Overdose subsystems will refuse to inject if any of chemicals will overdose." + to_chat(user, SPAN_NOTICE(text)) + return TRUE + return + +/obj/item/clothing/accessory/health/research_plate/emergency_injector/can_recycle(mob/living/user) + if(used) + return TRUE + return FALSE + +/obj/item/clothing/accessory/health/research_plate/emergency_injector/on_attached(obj/item/clothing/S, mob/living/carbon/human/user) + . = ..() + wearer = user + activation = new /datum/action/item_action/emergency_plate/inject_chemicals(src, attached_uni) + activation.give_to(wearer) + +/obj/item/clothing/accessory/health/research_plate/emergency_injector/on_removed(mob/living/user, obj/item/clothing/C) + . = ..() + QDEL_NULL(activation) + attached_uni = null + +/obj/item/clothing/accessory/health/research_plate/emergency_injector/on_removed_sig(mob/living/carbon/human/user, slot) + . = ..() + if(. == FALSE) + return + QDEL_NULL(activation) + attached_uni = null + +//Action buttons +/datum/action/item_action/emergency_plate/inject_chemicals/New(Target, obj/item/holder) + . = ..() + name = "Inject Emergency Plate" + action_icon_state = "plate_research" + button.name = name + button.overlays.Cut() + button.overlays += image('icons/obj/items/items.dmi', button, action_icon_state) + +/obj/item/clothing/accessory/health/research_plate/emergency_injector/ui_action_click(mob/owner, obj/item/holder) + if(used) + to_chat(wearer, SPAN_DANGER("[src]'s inner reserve is empty, replace the plate!")) + return + for(var/chemical in chemicals_to_inject) + var/datum/reagent/reag = GLOB.chemical_reagents_list[chemical] + if(wearer.reagents.get_reagent_amount(chemical) + chemicals_to_inject[chemical] > reag.overdose) + if(od_protection_mode == EMERGENCY_PLATE_OD_PROTECTION_STRICT) + to_chat(wearer, SPAN_DANGER("You hold the two buttons, but the plate buzzes and refuses to inject, indicating the potential overdose!")) + return + if (od_protection_mode == EMERGENCY_PLATE_OD_PROTECTION_DYNAMIC) + var/adjust_volume_to_inject = reag.overdose - wearer.reagents.get_reagent_amount(chemical) + chemicals_to_inject[chemical] = adjust_volume_to_inject + warning_type = EMERGENCY_PLATE_ADJUSTED_WARNING + if(wearer.reagents.get_reagent_amount(chemical) + chemicals_to_inject[chemical] > reag.overdose && od_protection_mode == EMERGENCY_PLATE_OD_PROTECTION_OFF) + warning_type = EMERGENCY_PLATE_OD_WARNING + wearer.reagents.add_reagent(chemical, chemicals_to_inject[chemical]) + if(warning_type == EMERGENCY_PLATE_OD_WARNING) + to_chat(wearer, SPAN_DANGER("You hold the two buttons, and the plate injects the chemicals, but makes a worrying beep, indicating overdose!")) + if(warning_type == EMERGENCY_PLATE_ADJUSTED_WARNING) + to_chat(wearer, SPAN_DANGER("You hold the two buttons, and the plate injects the chemicals, but makes a relieving beep, indicating it adjusted amounts it injected to prevent overdose!")) + playsound(loc, "sound/items/air_release.ogg", 100, TRUE) + used = TRUE + +/obj/item/clothing/accessory/health/research_plate/anti_decay + name = "experimental preservation plate" + desc = "preservation plate which activates once the user is dead, uses variety of different substances and sensors to slow down the decay and increase the time before the user is permanently dead, due to small tank of preservatives, it needs to be replaced on each death." + var/mob/living/carbon/human/wearer + var/used = FALSE + + +/obj/item/clothing/accessory/health/research_plate/anti_decay/Destroy() + . = ..() + wearer = null + +/obj/item/clothing/accessory/health/research_plate/anti_decay/get_examine_text(mob/user) + . = ..() + if(used) + . += SPAN_WARNING("It is used!") + +/obj/item/clothing/accessory/health/research_plate/anti_decay/on_attached(obj/item/clothing/S, mob/living/carbon/human/user) + . = ..() + wearer = user + if(!used) + RegisterSignal(user, COMSIG_MOB_DEATH, PROC_REF(begin_preserving)) + user.revive_grace_period += 4 MINUTES + +/obj/item/clothing/accessory/health/research_plate/anti_decay/on_removed(mob/living/user, obj/item/clothing/C) + . = ..() + wearer = null + attached_uni = null + +/obj/item/clothing/accessory/health/research_plate/anti_decay/on_removed_sig(mob/living/user, slot) + . = ..() + if(. == FALSE) + return + wearer = null + attached_uni = null + +/obj/item/clothing/accessory/health/research_plate/anti_decay/proc/begin_preserving() + SIGNAL_HANDLER + UnregisterSignal(wearer, COMSIG_MOB_DEATH) + to_chat(wearer, SPAN_NOTICE("The [src] detects your death and starts injecting various chemicals to slow down your final demise!")) + RegisterSignal(wearer, COMSIG_HUMAN_REVIVED, PROC_REF(onetime_use)) + used = TRUE + +/obj/item/clothing/accessory/health/research_plate/anti_decay/proc/onetime_use() + SIGNAL_HANDLER + UnregisterSignal(wearer, COMSIG_HUMAN_REVIVED) + to_chat(wearer, SPAN_NOTICE("[icon2html(src, viewers(src))] \The [src] beeps: Chemical preservatives reserves depleted, replace the [src]")) + wearer.revive_grace_period = 5 MINUTES + + + + + + + diff --git a/code/modules/cm_tech/implements/medical_czsp.dm b/code/modules/cm_tech/implements/medical_czsp.dm index 30eda5b8af29..9ec56d35fbb5 100644 --- a/code/modules/cm_tech/implements/medical_czsp.dm +++ b/code/modules/cm_tech/implements/medical_czsp.dm @@ -80,6 +80,9 @@ stack_id = "nano splint" +/obj/item/stack/medical/splint/nano/research + desc = "Advanced technology allows these splints to hold bones in place while being flexible and damage-resistant. Those are made from durable carbon fiber and dont look cheap, better use them sparingly." + /obj/item/device/defibrillator/upgraded name = "upgraded emergency defibrillator" icon_state = "adv_defib" diff --git a/code/modules/cm_tech/implements/tank.dm b/code/modules/cm_tech/implements/tank.dm index ec1b81e9f675..9cd8a5c6a804 100644 --- a/code/modules/cm_tech/implements/tank.dm +++ b/code/modules/cm_tech/implements/tank.dm @@ -18,7 +18,7 @@ name = "tank coupon" desc = "We're done playing! This coupon allows the ship crew to retrieve a complete Longstreet tank from Vehicle ASRS. Make sure to send the ASRS lift down so it can be retrieved. One use only. LTB not included. Comes with free friendly fire." vehicle_type = /datum/vehicle_order/tank/broken - vehicle_category = "TANK" + vehicle_category = "LONGSTREET" /obj/item/vehicle_coupon/attack_self(mob/user) if(QDELETED(src)) diff --git a/code/modules/cm_tech/resources/resource.dm b/code/modules/cm_tech/resources/resource.dm index 44af2234afd3..02c46e3e8910 100644 --- a/code/modules/cm_tech/resources/resource.dm +++ b/code/modules/cm_tech/resources/resource.dm @@ -82,7 +82,7 @@ update_icon() /obj/structure/resource_node/proc/take_damage(damage) - health = Clamp(health - damage, 0, max_health) + health = clamp(health - damage, 0, max_health) healthcheck() /obj/structure/resource_node/bullet_act(obj/projectile/P) diff --git a/code/modules/cm_tech/tech.dm b/code/modules/cm_tech/tech.dm index dea505f3237a..1750f7e7dbbf 100644 --- a/code/modules/cm_tech/tech.dm +++ b/code/modules/cm_tech/tech.dm @@ -21,9 +21,11 @@ var/background_icon = "background" var/background_icon_locked = "marine" - var/announce_name + var/announce_name = "ALMAYER SPECIAL ASSETS AUTHORIZED" var/announce_message + var/is_tier_changer = FALSE + /datum/tech/proc/can_unlock(mob/M) SHOULD_CALL_PARENT(TRUE) @@ -58,6 +60,7 @@ return TRUE + /** Called when a tech is unlocked. Usually, benefits can be applied here * however, the purchase can still be cancelled by returning FALSE * @@ -69,11 +72,17 @@ unlocked = TRUE to_chat(user, SPAN_HELPFUL("You have purchased the '[name]' tech node.")) log_admin("[key_name_admin(user)] has bought '[name]' via tech points.") + if(!is_tier_changer) + var/log_details = announce_message + if(!log_details) + log_details = name + var/current_points = holder.points + log_ares_tech(user.real_name, is_tier_changer, announce_name, log_details, required_points, current_points) holder.spend_points(required_points) update_icon(node) if(!(tech_flags & TECH_FLAG_NO_ANNOUNCE) && announce_message && announce_name) - marine_announcement(announce_message, announce_name, 'sound/misc/notice2.ogg') + marine_announcement(announce_message, announce_name, 'sound/misc/notice2.ogg', logging = ARES_LOG_NONE) return TRUE diff --git a/code/modules/cm_tech/tech_tiers.dm b/code/modules/cm_tech/tech_tiers.dm index 498c267afa05..b2d2c0a08de3 100644 --- a/code/modules/cm_tech/tech_tiers.dm +++ b/code/modules/cm_tech/tech_tiers.dm @@ -4,8 +4,8 @@ var/flags = NO_FLAGS - var/disabled_color = "#FFFFFF" - var/color = "#FFFFFF" + var/disabled_color = COLOR_WHITE + var/color = COLOR_WHITE var/max_techs = INFINITE_TECHS // Infinite var/list/turf/tier_turfs @@ -19,22 +19,22 @@ /datum/tier/free name = "Initial Tier" tier = 0 - color = "#000000" - disabled_color = "#000000" + color = COLOR_BLACK + disabled_color = COLOR_BLACK flags = TIER_FLAG_TRANSITORY /datum/tier/one name = "Tier 1" tier = 1 - color = "#00FF00" + color = COLOR_GREEN disabled_color = "#007d00" /datum/tier/one_transition_two name = "Tier 1 to Tier 2 transition" tier = 1 - color = "#000000" - disabled_color = "#000000" + color = COLOR_BLACK + disabled_color = COLOR_BLACK flags = TIER_FLAG_TRANSITORY /datum/tier/two @@ -47,27 +47,27 @@ /datum/tier/two_transition_three name = "Tier 2 to Tier 3 transition" tier = 2 - color = "#000000" - disabled_color = "#000000" + color = COLOR_BLACK + disabled_color = COLOR_BLACK flags = TIER_FLAG_TRANSITORY /datum/tier/three name = "Tier 3" tier = 3 - color = "#FF0000" + color = COLOR_RED disabled_color = "#7d0000" /datum/tier/three_transition_four name = "Tier 3 to Tier 4 transition" tier = 3 - color = "#000000" - disabled_color = "#000000" + color = COLOR_BLACK + disabled_color = COLOR_BLACK flags = TIER_FLAG_TRANSITORY /datum/tier/four name = "Tier 4" tier = 4 - color = "#FF00FF" + color = COLOR_MAGENTA disabled_color = "#7d007d" max_techs = 1 diff --git a/code/modules/cm_tech/techs/abstract/transitory.dm b/code/modules/cm_tech/techs/abstract/transitory.dm index 7798b6053d0e..1737b6b21ee6 100644 --- a/code/modules/cm_tech/techs/abstract/transitory.dm +++ b/code/modules/cm_tech/techs/abstract/transitory.dm @@ -7,6 +7,7 @@ var/datum/tier/next var/techs_to_unlock = 0 + is_tier_changer = TRUE /datum/tech/transitory/check_tier_level(mob/M) if(before && before != holder.tier.type) @@ -22,7 +23,7 @@ return TRUE -/datum/tech/transitory/on_unlock() +/datum/tech/transitory/on_unlock(mob/user) . = ..() if(!next) return @@ -31,6 +32,10 @@ if(next_tier) holder.tier = next_tier holder.on_tier_change(previous_tier) + if(flags & TREE_FLAG_MARINE) + /// Due to calling parent, points will have already been spent by now. + var/current_points = holder.points + required_points + log_ares_tech(user.real_name, is_tier_changer, "ALMAYER DEFCON LEVEL INCREASED", "THREAT ASSESSMENT LEVEL INCREASED TO LEVEL [next_tier.tier].\n\nLEVEL [next_tier.tier] assets have been authorised to handle the situation.", required_points, current_points) /datum/tech/transitory/get_tier_overlay() if(!next) diff --git a/code/modules/cm_tech/techs/marine/tier1/arc.dm b/code/modules/cm_tech/techs/marine/tier1/arc.dm new file mode 100644 index 000000000000..1e3a193626c4 --- /dev/null +++ b/code/modules/cm_tech/techs/marine/tier1/arc.dm @@ -0,0 +1,53 @@ +/datum/tech/arc + name = "M540-B Armored Recon Carrier" + desc = "Purchase an M540-B Armored Recon Carrier, specialized in assisting groundside command. Able to be driven by Staff Officers, Executive Officers, and Commanding Officers." + icon_state = "upgrade" + + required_points = 5 + + tier = /datum/tier/one + + announce_name = "M540-B ARC ACQUIRED" + announce_message = "An M540-B Armored Recon Carrier has been authorized and will be delivered in the vehicle bay." + + flags = TREE_FLAG_MARINE + + +/datum/tech/arc/can_unlock(mob/unlocking_mob) + . = ..() + + var/obj/structure/machinery/cm_vending/gear/vehicle_crew/gearcomp = GLOB.VehicleGearConsole + + if(gearcomp.selected_vehicle == "TANK") + to_chat(unlocking_mob, SPAN_WARNING ("A vehicle has already been selected for this operation.")) + return FALSE + + return TRUE + + +/datum/tech/arc/on_unlock() + . = ..() + + var/obj/structure/machinery/computer/supplycomp/vehicle/comp = GLOB.VehicleElevatorConsole + var/obj/structure/machinery/cm_vending/gear/vehicle_crew/gearcomp = GLOB.VehicleGearConsole + + if(!comp || !gearcomp) + return FALSE + + comp.spent = FALSE + QDEL_NULL_LIST(comp.vehicles) + comp.vehicles = list( + new /datum/vehicle_order/arc() + ) + comp.allowed_roles = list(JOB_SYNTH, JOB_SEA, JOB_SO, JOB_XO, JOB_CO, JOB_GENERAL) + comp.req_access = list(ACCESS_MARINE_COMMAND) + comp.req_one_access = list() + comp.spent = FALSE + + gearcomp.req_access = list(ACCESS_MARINE_COMMAND) + gearcomp.req_one_access = list() + gearcomp.vendor_role = list() + gearcomp.selected_vehicle = "ARC" + gearcomp.available_categories = VEHICLE_ALL_AVAILABLE + + return TRUE diff --git a/code/modules/cm_tech/techs/marine/tier1/points.dm b/code/modules/cm_tech/techs/marine/tier1/points.dm index d6bb5bace6fc..5cd19bb9e978 100644 --- a/code/modules/cm_tech/techs/marine/tier1/points.dm +++ b/code/modules/cm_tech/techs/marine/tier1/points.dm @@ -6,13 +6,13 @@ announce_name = "ALMAYER SPECIAL ASSETS AUTHORIZED" announce_message = "Additional supply budget has been authorised for this operation." - required_points = 15 + required_points = 7 increase_per_purchase = 1 flags = TREE_FLAG_MARINE tier = /datum/tier/one - var/points_to_give = 100 + var/points_to_give = 50 /datum/tech/repeatable/req_points/proc/get_tech_scaling_value() //We take the number of marine players, deduced from other lists, and then get a scale multiplier from it, to be used in arbitrary manners to distribute equipment @@ -31,16 +31,15 @@ icon_state = "budget_ds" desc = "Distributes resources to the dropship fabricator." - announce_name = "ALMAYER SPECIAL ASSETS AUTHORIZED" announce_message = "Additional dropship part fabricator points have been authorised for this operation." - required_points = 12 + required_points = 6 increase_per_purchase = 1 flags = TREE_FLAG_MARINE tier = /datum/tier/one - var/points_to_give = 2500 + var/points_to_give = 2000 /datum/tech/repeatable/dropship_points/on_unlock() . = ..() diff --git a/code/modules/cm_tech/techs/marine/tier2/orbital_ammo.dm b/code/modules/cm_tech/techs/marine/tier2/orbital_ammo.dm index 303ea6121734..506dc2d846c5 100644 --- a/code/modules/cm_tech/techs/marine/tier2/orbital_ammo.dm +++ b/code/modules/cm_tech/techs/marine/tier2/orbital_ammo.dm @@ -2,13 +2,11 @@ name = "OB Ammo" desc = "Purchase orbital bombardment ammo." - required_points = 10 + required_points = 5 increase_per_purchase = 2 tier = /datum/tier/two - announce_name = "ALMAYER SPECIAL ASSETS AUTHORIZED" - var/type_to_give /datum/tech/repeatable/ob/on_unlock() diff --git a/code/modules/cm_tech/techs/marine/tier3/cryo_spec.dm b/code/modules/cm_tech/techs/marine/tier3/cryo_spec.dm index 16f0f26576a3..06770b1d6afe 100644 --- a/code/modules/cm_tech/techs/marine/tier3/cryo_spec.dm +++ b/code/modules/cm_tech/techs/marine/tier3/cryo_spec.dm @@ -3,7 +3,6 @@ desc = "Wakes up an additional specialist to fight against any threats." icon_state = "overshield" - announce_name = "ALMAYER SPECIAL ASSETS AUTHORIZED" announce_message = "An additional specialist is being taken out of cryo." required_points = 8 @@ -21,4 +20,4 @@ /datum/tech/cryomarine/on_unlock() . = ..() - SSticker.mode.get_specific_call("Marine Cryo Reinforcement (Spec)", TRUE, FALSE) + SSticker.mode.get_specific_call(/datum/emergency_call/cryo_spec, TRUE, FALSE) // "Marine Cryo Reinforcement (Spec)" diff --git a/code/modules/cm_tech/techs/marine/tier3/cryorine.dm b/code/modules/cm_tech/techs/marine/tier3/cryorine.dm index 49b4eea8f525..19200698db02 100644 --- a/code/modules/cm_tech/techs/marine/tier3/cryorine.dm +++ b/code/modules/cm_tech/techs/marine/tier3/cryorine.dm @@ -4,7 +4,6 @@ desc = "Wakes up additional troops to fight against any threats." icon_state = "cryotroops" - announce_name = "ALMAYER SPECIAL ASSETS AUTHORIZED" announce_message = "Additional troops are being taken out of cryo." required_points = 6 @@ -23,4 +22,4 @@ /datum/tech/repeatable/cryomarine/on_unlock() . = ..() - SSticker.mode.get_specific_call("Marine Cryo Reinforcements (Tech)", TRUE, FALSE) + SSticker.mode.get_specific_call(/datum/emergency_call/cryo_squad/tech, TRUE, FALSE) // "Marine Cryo Reinforcements (Tech)" diff --git a/code/modules/cm_tech/techs/marine/tier4/nuke.dm b/code/modules/cm_tech/techs/marine/tier4/nuke.dm index 139fefef570c..794e61949320 100644 --- a/code/modules/cm_tech/techs/marine/tier4/nuke.dm +++ b/code/modules/cm_tech/techs/marine/tier4/nuke.dm @@ -36,10 +36,10 @@ return if(ROUND_TIME < NUKE_UNLOCK_TIME) - to_chat(unlocking_mob, SPAN_WARNING("You cannot purchase this node before [Ceiling((NUKE_UNLOCK_TIME + SSticker.round_start_time) / (1 MINUTES))] minutes into the operation.")) + to_chat(unlocking_mob, SPAN_WARNING("You cannot purchase this node before [ceil((NUKE_UNLOCK_TIME + SSticker.round_start_time) / (1 MINUTES))] minutes into the operation.")) return FALSE return TRUE /datum/tech/nuke/proc/handle_description() - desc = "Purchase a nuclear device. Only purchasable [Ceiling((NUKE_UNLOCK_TIME + SSticker.round_start_time) / (1 MINUTES))] minutes into the operation. It's the only way to be sure." + desc = "Purchase a nuclear device. Only purchasable [ceil((NUKE_UNLOCK_TIME + SSticker.round_start_time) / (1 MINUTES))] minutes into the operation. It's the only way to be sure." diff --git a/code/modules/cm_tech/techtree.dm b/code/modules/cm_tech/techtree.dm index 6c39d8ab9cf9..fbad30478081 100644 --- a/code/modules/cm_tech/techtree.dm +++ b/code/modules/cm_tech/techtree.dm @@ -58,16 +58,23 @@ if(longest_tier < tier_length) longest_tier = tier_length - // Clear out the area - for(var/t in block(locate(1, 1, zlevel.z_value), locate(longest_tier * 2 + 1, length(all_techs) * 3 + 1, zlevel.z_value))) - var/turf/pos = t - for(var/A in pos) + // Clear out and create the area + // (The `+ 2` on both of these is 1 for a buffer tile, and 1 for the outer `/turf/closed/void`.) + var/area_max_x = longest_tier * 2 + 2 + var/area_max_y = length(all_techs) * 3 + 2 + for(var/turf/pos as anything in block(1, 1, zlevel.z_value, area_max_x, area_max_y, zlevel.z_value)) + for(var/A as anything in pos) qdel(A) - pos.ChangeTurf(/turf/open/blank) - pos.color = "#000000" - + if(pos.x == area_max_x || pos.y == area_max_y) + // The turfs around the edge are closed. + pos.ChangeTurf(/turf/closed/void) + else + pos.ChangeTurf(/turf/open/blank) + pos.color = "#000000" + new /area/techtree(pos) + // Create the tech nodes var/y_offset = 1 for(var/tier in all_techs) var/tier_length = length(all_techs[tier]) @@ -75,7 +82,7 @@ var/x_offset = (longest_tier - tier_length) + 1 var/datum/tier/T = tree_tiers[tier] - for(var/turf/pos in block(locate(x_offset, y_offset, zlevel.z_value), locate(x_offset + tier_length*2, y_offset + 2, zlevel.z_value))) + for(var/turf/pos as anything in block(x_offset, y_offset, zlevel.z_value, x_offset + tier_length*2, y_offset + 2, zlevel.z_value)) pos.ChangeTurf(/turf/open/blank) pos.color = "#000000" LAZYADD(T.tier_turfs, pos) @@ -87,7 +94,7 @@ y_offset += 3 - entrance = locate(Ceiling((longest_tier*2 + 1)*0.5), 2, zlevel.z_value) + entrance = locate(ceil((longest_tier*2 + 1)*0.5), 2, zlevel.z_value) /datum/techtree/ui_status(mob/user, datum/ui_state/state) . = ..() @@ -173,6 +180,7 @@ /// `tech`: a typepath to a tech /datum/techtree/proc/get_node(tech) + RETURN_TYPE(/datum/tech) return techs_by_type[tech] /datum/techtree/proc/on_node_gained(obj/structure/resource_node/RN) diff --git a/code/modules/cm_tech/trees/marine.dm b/code/modules/cm_tech/trees/marine.dm index 55e82882b848..046712f9656b 100644 --- a/code/modules/cm_tech/trees/marine.dm +++ b/code/modules/cm_tech/trees/marine.dm @@ -9,7 +9,7 @@ GLOBAL_LIST_EMPTY(marine_leaders) var/mob/living/carbon/human/leader var/mob/living/carbon/human/dead_leader - var/job_cannot_be_overriden = list( + var/job_cannot_be_overridden = list( JOB_XO, JOB_CO ) @@ -70,7 +70,7 @@ GLOBAL_LIST_EMPTY(marine_leaders) /datum/techtree/marine/proc/handle_death(mob/living/carbon/human/H) SIGNAL_HANDLER - if((H.job in job_cannot_be_overriden) && (!dead_leader || !dead_leader.check_tod())) + if((H.job in job_cannot_be_overridden) && (!dead_leader || !dead_leader.check_tod())) RegisterSignal(H, COMSIG_PARENT_QDELETING, PROC_REF(cleanup_dead_leader)) RegisterSignal(H, COMSIG_HUMAN_REVIVED, PROC_REF(readd_leader)) dead_leader = H @@ -174,4 +174,4 @@ GLOBAL_LIST_EMPTY(tech_controls_marine) return //No need to announce tier updates for tier 1 var/name = "ALMAYER DEFCON LEVEL INCREASED" var/input = "THREAT ASSESSMENT LEVEL INCREASED TO LEVEL [tier.tier].\n\nLEVEL [tier.tier] assets have been authorised to handle the situation." - marine_announcement(input, name, 'sound/AI/commandreport.ogg') + marine_announcement(input, name, 'sound/AI/commandreport.ogg', logging = ARES_LOG_NONE) diff --git a/code/modules/customitems/item_spawning.dm b/code/modules/customitems/item_spawning.dm index b2d6b34f51c9..e9733d0635ed 100644 --- a/code/modules/customitems/item_spawning.dm +++ b/code/modules/customitems/item_spawning.dm @@ -10,10 +10,10 @@ GLOBAL_LIST_FILE_LOAD(custom_items, "config/custom_items.txt") for(var/line in GLOB.custom_items) // split & clean up var/list/Entry = splittext(line, ":") - for(var/i = 1 to Entry.len) + for(var/i = 1 to length(Entry)) Entry[i] = trim(Entry[i]) - if(Entry.len < 2) + if(length(Entry) < 2) continue; if(Entry[1] == M.ckey) diff --git a/code/modules/decorators/cassette_decorator.dm b/code/modules/decorators/cassette_decorator.dm index 4968f4cc1b17..0b8558a693e9 100644 --- a/code/modules/decorators/cassette_decorator.dm +++ b/code/modules/decorators/cassette_decorator.dm @@ -3,7 +3,7 @@ /datum/decorator/cassette/is_active_decor() cassette_data = file2list("sound/music/walkman/playlist.txt") - return cassette_data.len > 0 + return length(cassette_data) > 0 /datum/decorator/cassette/get_decor_types() return typesof(/obj/item/device/cassette_tape) diff --git a/code/modules/decorators/christmas.dm b/code/modules/decorators/christmas.dm index 2a87c7cb494d..290ac6302448 100644 --- a/code/modules/decorators/christmas.dm +++ b/code/modules/decorators/christmas.dm @@ -49,10 +49,13 @@ helmet.desc = "Ho ho ho, Merry Christmas!" helmet.icon = 'icons/obj/items/clothing/hats.dmi' helmet.icon_override = 'icons/mob/humans/onmob/head_0.dmi' - helmet.icon_state = "santahat" - helmet.flags_inventory = BLOCKSHARPOBJ helmet.flags_inv_hide = HIDEEARS|HIDEALLHAIR helmet.flags_marine_helmet = NO_FLAGS + helmet.flags_atom |= NO_SNOW_TYPE|NO_NAME_OVERRIDE + if(prob(50)) + helmet.icon_state = "santa_hat_red" + else + helmet.icon_state = "santa_hat_green" helmet.update_icon() // barricade definition. Also only a single definition @@ -63,7 +66,7 @@ /datum/decorator/christmas/barricade/decorate(obj/structure/barricade/barricade) if(!istype(barricade)) return - barricade.icon = 'icons/obj/structures/barricades_christmas.dmi' + barricade.wire_icon = 'icons/obj/structures/barricades_christmas.dmi' barricade.update_icon() diff --git a/code/modules/defenses/bell_tower.dm b/code/modules/defenses/bell_tower.dm index 52207298c4b0..68d58f02b481 100644 --- a/code/modules/defenses/bell_tower.dm +++ b/code/modules/defenses/bell_tower.dm @@ -18,11 +18,11 @@ can_be_near_defense = TRUE choice_categories = list( - SENTRY_CATEGORY_IFF = list(FACTION_USCM, FACTION_WEYLAND, FACTION_HUMAN), + SENTRY_CATEGORY_IFF = list(FACTION_MARINE, SENTRY_FACTION_WEYLAND, SENTRY_FACTION_HUMAN), ) selected_categories = list( - SENTRY_CATEGORY_IFF = FACTION_USCM, + SENTRY_CATEGORY_IFF = FACTION_MARINE, ) @@ -110,7 +110,7 @@ if(M.get_target_lock(faction)) return - var/list/turf/path = getline2(src, linked_bell, include_from_atom = TRUE) + var/list/turf/path = get_line(src, linked_bell) for(var/turf/PT in path) if(PT.density) return @@ -210,7 +210,7 @@ if(turned_on) if(cloak_alpha_current < cloak_alpha_max) cloak_alpha_current = cloak_alpha_max - cloak_alpha_current = Clamp(cloak_alpha_current + incremental_ring_camo_penalty, cloak_alpha_max, 255) + cloak_alpha_current = clamp(cloak_alpha_current + incremental_ring_camo_penalty, cloak_alpha_max, 255) cloakebelltower.alpha = cloak_alpha_current addtimer(CALLBACK(src, PROC_REF(cloaker_fade_out_finish), cloakebelltower), camouflage_break, TIMER_OVERRIDE|TIMER_UNIQUE) animate(cloakebelltower, alpha = cloak_alpha_max, time = camouflage_break, easing = LINEAR_EASING, flags = ANIMATION_END_NOW) diff --git a/code/modules/defenses/defenses.dm b/code/modules/defenses/defenses.dm index fefd3c640c65..af4e497862fa 100644 --- a/code/modules/defenses/defenses.dm +++ b/code/modules/defenses/defenses.dm @@ -81,7 +81,7 @@ if(ishuman(user)) message += SPAN_INFO("A multitool can be used to disassemble it.") message += "\n" - message += SPAN_INFO("The turret is currently [locked? "locked" : "unlocked"] to non-engineers.") + message += SPAN_INFO("It is currently [locked? "locked" : "unlocked"] to non-engineers.") message += "\n" message += SPAN_INFO("It has [SPAN_HELPFUL("[health]/[health_max]")] health.") message += "\n" @@ -97,11 +97,13 @@ if(!(placed||static)) return FALSE + msg_admin_niche("[key_name(usr)] turned on [src] at [get_location_in_text(src)] [ADMIN_JMP(loc)]") turned_on = TRUE power_on_action() update_icon() /obj/structure/machinery/defenses/proc/power_off() + msg_admin_niche("[key_name(usr)] turned off [src] at [get_location_in_text(src)] [ADMIN_JMP(loc)]") turned_on = FALSE power_off_action() update_icon() @@ -113,6 +115,7 @@ * @param selection: configuration value for category. */ /obj/structure/machinery/defenses/proc/update_choice(mob/user, category, selection) + msg_admin_niche("[key_name(user)] changed the [category] of [src] at [get_location_in_text(src)] to [selection] [ADMIN_JMP(loc)]") if(category in selected_categories) selected_categories[category] = selection switch(category) @@ -124,7 +127,6 @@ switch(category) if("nickname") nickname = selection - message_admins("[key_name_admin(user)] has labelled structure to [nickname]", user.x, user.y, user.z) return TRUE return FALSE @@ -134,14 +136,18 @@ */ /obj/structure/machinery/defenses/proc/handle_iff(selection) switch(selection) - if(FACTION_USCM) + if(FACTION_MARINE) faction_group = FACTION_LIST_MARINE - if(FACTION_WEYLAND) - faction_group = FACTION_LIST_MARINE_WY - if(FACTION_HUMAN) + if(SENTRY_FACTION_HUMAN) faction_group = FACTION_LIST_HUMANOID - if(FACTION_COLONY) + if(SENTRY_FACTION_COLONY) faction_group = list(FACTION_MARINE, FACTION_COLONIST) + if(SENTRY_FACTION_WEYLAND) + faction_group = FACTION_LIST_MARINE_WY + if(FACTION_WY) + faction_group = FACTION_LIST_WY + if(FACTION_UPP) + faction_group = FACTION_LIST_UPP /obj/structure/machinery/defenses/start_processing() @@ -454,9 +460,9 @@ visible_message(SPAN_WARNING("[src] is hit by [P]!")) var/ammo_flags = P.ammo.flags_ammo_behavior | P.projectile_override_flags if(ammo_flags & AMMO_ACIDIC) //Fix for xenomorph spit doing baby damage. - update_health(round(P.damage/3)) + update_health(floor(P.damage/3)) else - update_health(round(P.damage/10)) + update_health(floor(P.damage/10)) return TRUE // DAMAGE HANDLING OVER diff --git a/code/modules/defenses/handheld.dm b/code/modules/defenses/handheld.dm index 233dad313d25..5b5831c9bb15 100644 --- a/code/modules/defenses/handheld.dm +++ b/code/modules/defenses/handheld.dm @@ -143,6 +143,41 @@ defense_type = /obj/structure/machinery/defenses/sentry/mini deployment_time = 0.75 SECONDS +/obj/item/defenses/handheld/sentry/wy + name = "handheld WY 202-GMA1 smart sentry" + desc = "A compact version of the Weyland-Yutani defenses. Designed for deployment in the field." + icon = 'icons/obj/structures/machinery/defenses/wy_defenses.dmi' + icon_state = "Normal wy_sentry_handheld" + defense_type = /obj/structure/machinery/defenses/sentry/wy + deployment_time = 5 SECONDS + +/obj/item/defenses/handheld/sentry/wy/mini + name = "handheld WY 14-GRA2 mini sentry" + icon_state = "Mini wy_sentry_handheld" + defense_type = /obj/structure/machinery/defenses/sentry/mini/wy + deployment_time = 2 SECONDS + +/obj/item/defenses/handheld/sentry/wy/heavy + name = "handheld WY 2-ADT-A3 heavy sentry" + icon = 'icons/obj/structures/machinery/defenses/wy_heavy.dmi' + icon_state = "Heavy wy_sentry_handheld" + defense_type = /obj/structure/machinery/defenses/sentry/dmr/wy + deployment_time = 10 SECONDS + +/obj/item/defenses/handheld/sentry/upp + name = "handheld UPP SDS-R3 sentry gun" + desc = "A compact version of the UPP defense sentry SDS-R1. Designed for deployment in the field." + icon = 'icons/obj/structures/machinery/defenses/upp_defenses.dmi' + icon_state = "Normal upp_sentry_handheld" + defense_type = /obj/structure/machinery/defenses/sentry/upp + deployment_time = 5 SECONDS + +/obj/item/defenses/handheld/sentry/upp/light + name = "handheld UPP SDS-R8 light sentry" + desc = "A compact version of the UPP defense sentry SDS-R7. Designed for deployment in the field." + icon_state = "Light upp_sentry_handheld" + defense_type = /obj/structure/machinery/defenses/sentry/upp/light + deployment_time = 2 SECONDS // FLAMER BASE AND UPGRADES /obj/item/defenses/handheld/sentry/flamer @@ -202,6 +237,24 @@ defense_type = /obj/structure/machinery/defenses/sentry/flamer/plasma ammo_convert = /obj/item/ammo_magazine/sentry_flamer/glob +/obj/item/defenses/handheld/sentry/flamer/wy + name = "handheld WY 406-FE2 smart sentry" + desc = "A compact version of the Weyland-Yutani defenses. Designed for deployment in the field." + icon = 'icons/obj/structures/machinery/defenses/wy_defenses.dmi' + icon_state = "Normal wy_flamer_handheld" + defense_type = /obj/structure/machinery/defenses/sentry/flamer/wy + deployment_time = 5 SECONDS + ammo_convert = /obj/item/ammo_magazine/sentry_flamer/wy + +/obj/item/defenses/handheld/sentry/flamer/upp + name = "handheld UPP SDS-R5 sentry flamer" + desc = "A compact version of the UPP defenses. Designed for deployment in the field." + icon = 'icons/obj/structures/machinery/defenses/upp_defenses.dmi' + icon_state = "Normal upp_flamer_handheld" + defense_type = /obj/structure/machinery/defenses/sentry/flamer/upp + deployment_time = 5 SECONDS + ammo_convert = /obj/item/ammo_magazine/sentry_flamer/upp + // TESLA BASE AND UPGRADES /obj/item/defenses/handheld/tesla_coil @@ -300,4 +353,19 @@ deployment_time = 2 SECONDS defense_type = /obj/structure/machinery/defenses/planted_flag/range +/obj/item/defenses/handheld/planted_flag/wy + name = "handheld WY planted flag" + desc = "A compact version of the Weyland-Yutani defenses. Designed for deployment in the field." + icon = 'icons/obj/structures/machinery/defenses/wy_defenses.dmi' + icon_state = "WY planted_flag_handheld" + deployment_time = 3 SECONDS + defense_type = /obj/structure/machinery/defenses/planted_flag/wy + +/obj/item/defenses/handheld/planted_flag/upp + name = "handheld UPP planted flag" + desc = "A compact version of the UPP defenses. Designed for deployment in the field." + icon = 'icons/obj/structures/machinery/defenses/upp_defenses.dmi' + icon_state = "UPP planted_flag_handheld" + deployment_time = 5 SECONDS + defense_type = /obj/structure/machinery/defenses/planted_flag/upp diff --git a/code/modules/defenses/planted_flag.dm b/code/modules/defenses/planted_flag.dm index fac725047fa9..d2b9b23e8f3b 100644 --- a/code/modules/defenses/planted_flag.dm +++ b/code/modules/defenses/planted_flag.dm @@ -16,11 +16,11 @@ can_be_near_defense = TRUE choice_categories = list( - SENTRY_CATEGORY_IFF = list(FACTION_USCM, FACTION_WEYLAND, FACTION_HUMAN), + SENTRY_CATEGORY_IFF = list(FACTION_MARINE, SENTRY_FACTION_WEYLAND, SENTRY_FACTION_HUMAN), ) selected_categories = list( - SENTRY_CATEGORY_IFF = FACTION_USCM, + SENTRY_CATEGORY_IFF = FACTION_MARINE, ) @@ -115,6 +115,40 @@ H.activate_order_buff(COMMAND_ORDER_FOCUS, buff_intensity, 5 SECONDS) H.activate_order_buff(COMMAND_ORDER_MOVE, buff_intensity, 5 SECONDS) +/obj/structure/machinery/defenses/planted_flag/wy + name = "WY planted flag" + desc = "A planted flag with the iconic WY flag plastered all over it, you feel a burst of energy by its mere sight." + icon = 'icons/obj/structures/machinery/defenses/wy_defenses.dmi' + disassemble_time = 6 SECONDS + hack_time = 25 SECONDS + health = 300 + health_max = 300 + area_range = 11 + handheld_type = /obj/item/defenses/handheld/planted_flag/wy + defense_type = "WY" + selected_categories = list( + SENTRY_CATEGORY_IFF = SENTRY_FACTION_WEYLAND, + ) + +/obj/structure/machinery/defenses/planted_flag/wy/apply_buff_to_player(mob/living/carbon/human/H) + H.activate_order_buff(COMMAND_ORDER_HOLD, buff_intensity, 2 SECONDS) + H.activate_order_buff(COMMAND_ORDER_FOCUS, buff_intensity, 2 SECONDS) + H.activate_order_buff(COMMAND_ORDER_MOVE, buff_intensity, 2 SECONDS) + +/obj/structure/machinery/defenses/planted_flag/upp + name = "UPP planted flag" + desc = "A planted flag with the iconic UPP flag plastered all over it, you feel a burst of energy by its mere sight." + icon = 'icons/obj/structures/machinery/defenses/upp_defenses.dmi' + disassemble_time = 5 SECONDS + health = 300 + health_max = 300 + area_range = 11 + handheld_type = /obj/item/defenses/handheld/planted_flag/upp + defense_type = "UPP" + selected_categories = list( + SENTRY_CATEGORY_IFF = FACTION_UPP, + ) + /obj/item/storage/backpack/jima name = "JIMA frame mount" icon = 'icons/obj/items/clothing/backpacks.dmi' diff --git a/code/modules/defenses/sentry.dm b/code/modules/defenses/sentry.dm index 999df7c22579..695b3387d909 100644 --- a/code/modules/defenses/sentry.dm +++ b/code/modules/defenses/sentry.dm @@ -18,7 +18,7 @@ var/fire_delay = 4 var/immobile = FALSE //Used for prebuilt ones. var/obj/item/ammo_magazine/ammo = new /obj/item/ammo_magazine/sentry - var/sentry_type = "sentry" //Used for the icon + var/sentry_type = "uac_sentry" //Used for the icon display_additional_stats = TRUE /// Light strength when turned on var/luminosity_strength = 5 @@ -45,12 +45,12 @@ /// action list is configurable for all subtypes, this is just an example choice_categories = list( // SENTRY_CATEGORY_ROF = list(ROF_SINGLE, ROF_BURST, ROF_FULL_AUTO), - SENTRY_CATEGORY_IFF = list(FACTION_USCM, FACTION_WEYLAND, FACTION_HUMAN), + SENTRY_CATEGORY_IFF = list(FACTION_MARINE, SENTRY_FACTION_WEYLAND, SENTRY_FACTION_HUMAN, FACTION_UPP), ) selected_categories = list( // SENTRY_CATEGORY_ROF = ROF_SINGLE, - SENTRY_CATEGORY_IFF = FACTION_USCM, + SENTRY_CATEGORY_IFF = FACTION_MARINE, ) /obj/structure/machinery/defenses/sentry/Initialize() @@ -85,7 +85,7 @@ if(!targets) return FALSE - if(!target && targets.len) + if(!target && length(targets)) target = pick(targets) get_target(target) @@ -115,16 +115,16 @@ overlays.Cut() if(stat == DEFENSE_DAMAGED) - overlays += "[defense_type] uac_[sentry_type]_destroyed" + overlays += "[defense_type] [sentry_type]_destroyed" return if(!ammo || ammo && !ammo.current_rounds) - overlays += "[defense_type] uac_[sentry_type]_noammo" + overlays += "[defense_type] [sentry_type]_noammo" return if(turned_on) - overlays += "[defense_type] uac_[sentry_type]_on" + overlays += "[defense_type] [sentry_type]_on" else - overlays += "[defense_type] uac_[sentry_type]" + overlays += "[defense_type] [sentry_type]" /obj/structure/machinery/defenses/sentry/attack_hand_checks(mob/user) @@ -290,7 +290,7 @@ if(actual_fire(A)) break - if(targets.len) + if(length(targets)) addtimer(CALLBACK(src, PROC_REF(get_target)), fire_delay) if(!engaged_timer) @@ -350,7 +350,7 @@ if(!targets.Find(new_target)) targets.Add(new_target) - if(!targets.len) + if(!length(targets)) return var/list/conscious_targets = list() @@ -365,7 +365,7 @@ targets.Remove(A) continue - if(M.get_target_lock(faction_group) || M.invisibility || HAS_TRAIT(M, TRAIT_ABILITY_BURROWED)) + if(M.get_target_lock(faction_group) || M.invisibility || HAS_TRAIT(M, TRAIT_ABILITY_BURROWED) || M.is_ventcrawling) if(M == target) target = null targets.Remove(M) @@ -404,8 +404,8 @@ targets.Remove(A) continue - var/list/turf/path = getline2(src, A, include_from_atom = FALSE) - if(!path.len || get_dist(src, A) > sentry_range) + var/list/turf/path = get_line(src, A, include_start_atom = FALSE) + if(!length(path) || get_dist(src, A) > sentry_range) if(A == target) target = null targets.Remove(A) @@ -457,9 +457,9 @@ else conscious_targets += M - if(conscious_targets.len) + if(length(conscious_targets)) target = pick(conscious_targets) - else if(unconscious_targets.len) + else if(length(unconscious_targets)) target = pick(unconscious_targets) if(!target) //No targets, don't bother firing @@ -468,7 +468,7 @@ fire(target) /obj/structure/machinery/defenses/sentry/premade - name = "UA-577 Gauss Turret" + name = "\improper UA-577 Gauss Turret" immobile = TRUE turned_on = TRUE icon_state = "premade" //for the map editor only @@ -478,7 +478,7 @@ /obj/structure/machinery/defenses/sentry/premade/Initialize() . = ..() if(selected_categories[SENTRY_CATEGORY_IFF]) - selected_categories[SENTRY_CATEGORY_IFF] = FACTION_USCM + selected_categories[SENTRY_CATEGORY_IFF] = FACTION_MARINE /obj/structure/machinery/defenses/sentry/premade/get_examine_text(mob/user) . = ..() @@ -497,14 +497,14 @@ return /obj/structure/machinery/defenses/sentry/premade/dumb - name = "Modified UA-577 Gauss Turret" + name = "modified UA-577 Gauss Turret" desc = "A deployable, semi-automated turret with AI targeting capabilities. Armed with an M30 Autocannon and a high-capacity drum magazine. This one's IFF system has been disabled, and it will open fire on any targets within range." faction_group = null ammo = new /obj/item/ammo_magazine/sentry/premade/dumb //the turret inside a static sentry deployment system /obj/structure/machinery/defenses/sentry/premade/deployable - name = "UA-633 Static Gauss Turret" + name = "\improper UA-633 Static Gauss Turret" desc = "A fully-automated defence turret with mid-range targeting capabilities. Armed with a modified M32-S Autocannon and an internal belt feed." density = TRUE faction_group = FACTION_LIST_MARINE @@ -523,12 +523,108 @@ /obj/structure/machinery/defenses/sentry/premade/deployable/colony/Initialize() . = ..() - choice_categories[SENTRY_CATEGORY_IFF] = list(FACTION_COLONY, FACTION_WEYLAND) - selected_categories[SENTRY_CATEGORY_IFF] = FACTION_COLONY + choice_categories[SENTRY_CATEGORY_IFF] = list(SENTRY_FACTION_COLONY, SENTRY_FACTION_WEYLAND) + selected_categories[SENTRY_CATEGORY_IFF] = SENTRY_FACTION_COLONY + +/obj/structure/machinery/defenses/sentry/premade/deployable/wy + name = "WY 5-GSE3 Static Turret" + desc = "An old static, semi-automated turret with AI targeting capabilities from Weyland-Yutani." + icon = 'icons/obj/structures/machinery/defenses/wy_static.dmi' + defense_type = "Static" + sentry_type = "wy_sentry" + health = 350 + health_max = 350 + faction_group = list(FACTION_MARINE, FACTION_COLONIST, FACTION_SURVIVOR, FACTION_WY) + fire_delay = 0.6 SECONDS + damage_mult = 2 + +/obj/structure/machinery/defenses/sentry/premade/deployable/wy/Initialize() + . = ..() + choice_categories[SENTRY_CATEGORY_IFF] = list(SENTRY_FACTION_COLONY, SENTRY_FACTION_WEYLAND) + selected_categories[SENTRY_CATEGORY_IFF] = SENTRY_FACTION_COLONY /obj/structure/machinery/defenses/sentry/premade/deployable/almayer - fire_delay = 4 + name = "\improper UA-635C Static Gauss Turret" + desc = "A fully-automated defence turret with mid-range targeting capabilities. Armed with a modified M32-S Autocannon and an internal belt feed and modified for UA warship use." + fire_delay = 0.4 SECONDS + omni_directional = TRUE + +/obj/structure/machinery/defenses/sentry/premade/deployable/almayer/mini + name = "\improper UA 512-S mini sentry" + desc = "A fully-automated defence turret with mid-range targeting capabilities. Armed with a modified M30 Autocannon and an internal belt feed and modified for UA warship use." + defense_type = "Mini" + fire_delay = 0.25 SECONDS + health = 150 + health_max = 150 + damage_mult = 0.6 + density = FALSE + layer = BELOW_MOB_LAYER + disassemble_time = 0.75 SECONDS + handheld_type = /obj/item/defenses/handheld/sentry/mini + composite_icon = FALSE + +/obj/structure/machinery/defenses/sentry/premade/deployable/colony/landing_zone + name = "\improper UA-577 Spaceborne Gauss Turret" + fire_delay = 2 + sentry_range = 10 omni_directional = TRUE + /// How long the battery for this turret lasts. Will warn low at 70% and critical at 90% use. + var/battery_duration = 20 MINUTES + /// The current battery state + var/battery_state = TURRET_BATTERY_STATE_OK + +/obj/structure/machinery/defenses/sentry/premade/deployable/colony/landing_zone/Initialize() + . = ..() + + var/low_battery_time = ceil(battery_duration * 0.7) + var/critical_battery_time = ceil(battery_duration * 0.9) + addtimer(CALLBACK(src, PROC_REF(set_battery_state), TURRET_BATTERY_STATE_LOW), low_battery_time) + addtimer(CALLBACK(src, PROC_REF(set_battery_state), TURRET_BATTERY_STATE_CRITICAL), critical_battery_time) + addtimer(CALLBACK(src, PROC_REF(set_battery_state), TURRET_BATTERY_STATE_DEAD), battery_duration) + +/obj/structure/machinery/defenses/sentry/premade/deployable/colony/landing_zone/get_examine_text(mob/user) + . = ..() + switch(battery_state) + if(TURRET_BATTERY_STATE_OK) + . += SPAN_INFO("Its battery indictor is green, fully charged.") + if(TURRET_BATTERY_STATE_LOW) + . += SPAN_INFO("Its battery indictor is flashing yellow.") + if(TURRET_BATTERY_STATE_CRITICAL) + . += SPAN_INFO("Its battery indictor is flashing red.") + if(TURRET_BATTERY_STATE_DEAD) + . += SPAN_INFO("It appears to be offline.") + +/obj/structure/machinery/defenses/sentry/premade/deployable/colony/landing_zone/proc/set_battery_state(state) + battery_state = state + switch(state) + if(TURRET_BATTERY_STATE_LOW) + playsound(loc, 'sound/weapons/smg_empty_alarm.ogg', 15, 1) + visible_message(SPAN_WARNING("[name] beeps steadily as its battery is getting low.")) + if(TURRET_BATTERY_STATE_CRITICAL) + playsound(loc, 'sound/weapons/smg_empty_alarm.ogg', 20, 1) + visible_message(SPAN_WARNING("[name] beeps steadily as its battery gets critically low.")) + if(TURRET_BATTERY_STATE_DEAD) + playsound(loc, 'sound/machines/terminal_shutdown.ogg', 35, 1) + turned_on = FALSE + power_off_action() + update_icon() + +/obj/structure/machinery/defenses/sentry/premade/deployable/colony/landing_zone/set_range() + var/range = sentry_range - 1 + var/dbl_range = range * 2 + + if(omni_directional) + range_bounds = RECT(x, y, dbl_range, dbl_range) + return + switch(dir) + if(EAST) + range_bounds = RECT(x+range, y, dbl_range, dbl_range) + if(WEST) + range_bounds = RECT(x-range, y, dbl_range, dbl_range) + if(NORTH) + range_bounds = RECT(x, y+range, dbl_range, dbl_range) + if(SOUTH) + range_bounds = RECT(x, y-range, dbl_range, dbl_range) //the turret inside the shuttle sentry deployment system /obj/structure/machinery/defenses/sentry/premade/dropship @@ -549,7 +645,7 @@ #define SENTRY_SNIPER_RANGE 10 /obj/structure/machinery/defenses/sentry/dmr - name = "UA 725-D Sniper Sentry" + name = "\improper UA 725-D Sniper Sentry" desc = "A fully-automated defence turret with long-range targeting capabilities. Armed with a modified M32-S Autocannon and an internal belt feed." defense_type = "DMR" health = 150 @@ -562,11 +658,11 @@ handheld_type = /obj/item/defenses/handheld/sentry/dmr choice_categories = list( - SENTRY_CATEGORY_IFF = list(FACTION_USCM, FACTION_WEYLAND, FACTION_HUMAN), + SENTRY_CATEGORY_IFF = list(FACTION_MARINE, SENTRY_FACTION_WEYLAND, SENTRY_FACTION_HUMAN), ) selected_categories = list( - SENTRY_CATEGORY_IFF = FACTION_USCM, + SENTRY_CATEGORY_IFF = FACTION_MARINE, ) @@ -586,7 +682,7 @@ #undef SENTRY_SNIPER_RANGE /obj/structure/machinery/defenses/sentry/shotgun - name = "UA 12-G Shotgun Sentry" + name = "\improper UA 12-G Shotgun Sentry" defense_type = "Shotgun" health = 250 health_max = 250 @@ -617,7 +713,7 @@ L.apply_effect(1, WEAKEN) /obj/structure/machinery/defenses/sentry/mini - name = "UA 512-M mini sentry" + name = "\improper UA 512-M mini sentry" defense_type = "Mini" fire_delay = 0.15 SECONDS health = 150 @@ -723,5 +819,86 @@ new /obj/item/stack/sheet/plasteel/medium_stack(loc) return ..() +/obj/structure/machinery/defenses/sentry/wy + name = "WY 202-GMA1 Smart Sentry" + desc = "A deployable, fully-automated turret with AI targeting capabilities used by the PMC." + icon = 'icons/obj/structures/machinery/defenses/wy_defenses.dmi' + sentry_type = "wy_sentry" + fire_delay = 2 SECONDS + health = 350 + health_max = 350 + damage_mult = 3.5 + disassemble_time = 5 SECONDS + hack_time = 25 SECONDS + sentry_range = 6 + omni_directional = TRUE + handheld_type = /obj/item/defenses/handheld/sentry/wy + ammo = new /obj/item/ammo_magazine/sentry/wy + selected_categories = list( + SENTRY_CATEGORY_IFF = SENTRY_FACTION_WEYLAND, + ) + +/obj/structure/machinery/defenses/sentry/mini/wy + name = "WY 14-GRA2 Mini Sentry" + desc = "A deployable, semi-automated turret with AI targeting capabilities used by the PMC." + icon = 'icons/obj/structures/machinery/defenses/wy_defenses.dmi' + sentry_type = "wy_sentry" + fire_delay = 0.08 SECONDS + health = 200 + health_max = 200 + damage_mult = 0.3 + disassemble_time = 2 SECONDS + hack_time = 25 SECONDS + handheld_type = /obj/item/defenses/handheld/sentry/wy/mini + ammo = new /obj/item/ammo_magazine/sentry/wy/mini + selected_categories = list( + SENTRY_CATEGORY_IFF = SENTRY_FACTION_WEYLAND, + ) + +/obj/structure/machinery/defenses/sentry/dmr/wy + name = "WY 2-ADT-A3 Heavy Sentry" + desc = "A deployable, semi-automated turret with AI targeting capabilities used by the PMC." + defense_type = "Heavy" + icon = 'icons/obj/structures/machinery/defenses/wy_heavy.dmi' + sentry_type = "wy_sentry" + fire_delay = 4 SECONDS + health = 600 + health_max = 600 + damage_mult = 5 + disassemble_time = 10 SECONDS + hack_time = 25 SECONDS + sentry_range = 8 + handheld_type = /obj/item/defenses/handheld/sentry/wy + ammo = new /obj/item/ammo_magazine/sentry/wy + selected_categories = list( + SENTRY_CATEGORY_IFF = SENTRY_FACTION_WEYLAND, + ) + +/obj/structure/machinery/defenses/sentry/upp + name = "UPP SDS-R3 Sentry Gun" + desc = "A deployable, fully-automated turret with AI targeting capabilities used by the UPP." + icon = 'icons/obj/structures/machinery/defenses/upp_defenses.dmi' + sentry_type = "upp_sentry" + health = 300 + health_max = 300 + damage_mult = 1.2 + disassemble_time = 5 SECONDS + handheld_type = /obj/item/defenses/handheld/sentry/upp + ammo = new /obj/item/ammo_magazine/sentry/upp + selected_categories = list( + SENTRY_CATEGORY_IFF = FACTION_UPP, + ) + +/obj/structure/machinery/defenses/sentry/upp/light + name = "UPP SDS-R8 Light Sentry" + defense_type = "Light" + fire_delay = 0.3 SECONDS + health = 200 + health_max = 200 + disassemble_time = 2 SECONDS + sentry_range = 3 + omni_directional = TRUE + handheld_type = /obj/item/defenses/handheld/sentry/upp/light + #undef SENTRY_FIREANGLE #undef SENTRY_RANGE diff --git a/code/modules/defenses/sentry_computer.dm b/code/modules/defenses/sentry_computer.dm index e2cbd5d5858e..59c6409d552c 100644 --- a/code/modules/defenses/sentry_computer.dm +++ b/code/modules/defenses/sentry_computer.dm @@ -48,41 +48,18 @@ // Stuff needed to render the map /// asset name for the game map - var/map_name - - /// camera screen which renders the world - var/atom/movable/screen/map_view/cam_screen - - /// camera screen which shows a blank error - var/atom/movable/screen/background/cam_background - - var/list/cam_plane_masters + var/camera_map_name /obj/item/device/sentry_computer/Initialize(mapload) . = ..() if(cell_type) cell = new cell_type() cell.charge = cell.maxcharge - // set up cameras - map_name = "sentry_computer_[REF(src)]_map" - cam_screen = new - cam_screen.name = "screen" - cam_screen.assigned_map = map_name - cam_screen.del_on_map_removal = FALSE - cam_screen.screen_loc = "[map_name]:1,1" - cam_background = new - cam_background.assigned_map = map_name - cam_background.del_on_map_removal = FALSE - - cam_plane_masters = list() - for(var/plane in subtypesof(/atom/movable/screen/plane_master) - /atom/movable/screen/plane_master/blackness) - var/atom/movable/screen/plane_master/instance = new plane() - instance.assigned_map = map_name - instance.del_on_map_removal = FALSE - if(instance.blend_mode_override) - instance.blend_mode = instance.blend_mode_override - instance.screen_loc = "[map_name]:CENTER" - cam_plane_masters += instance + + RegisterSignal(src, COMSIG_CAMERA_MAPNAME_ASSIGNED, PROC_REF(camera_mapname_update)) + + AddComponent(/datum/component/camera_manager) + SEND_SIGNAL(src, COMSIG_CAMERA_CLEAR) faction_group = FACTION_LIST_MARINE transceiver.forceMove(src) @@ -94,16 +71,20 @@ /obj/item/device/sentry_computer/Destroy() . = ..() + UnregisterSignal(src, COMSIG_CAMERA_MAPNAME_ASSIGNED) QDEL_NULL(cell) - QDEL_NULL(cam_background) - QDEL_NULL(cam_screen) QDEL_NULL(transceiver) QDEL_NULL(voice) last_camera_turf = null current = null registered_tools = null + for(var/obj/structure/machinery/defenses/sentry/sentrygun as anything in paired_sentry) + unpair_sentry(sentrygun) paired_sentry = null +/obj/item/device/sentry_computer/proc/camera_mapname_update(source, value) + camera_map_name = value + /obj/item/device/sentry_computer/Move(NewLoc, direct) ..() if(table_setup || open || on) @@ -232,7 +213,7 @@ for(var/key_id in tool.encryption_keys) var/datum/weakref/ref = tool.encryption_keys[key_id] var/obj/item/device/sentry_computer/key_object = ref.resolve() - key_object.registered_tools -= id + key_object?.registered_tools -= id tool.encryption_keys = list() to_chat(user, SPAN_NOTICE("Existing encryption keys cleared.")) to_chat(usr, SPAN_NOTICE("You begin encryption key to \the [tool].")) @@ -321,7 +302,7 @@ if(current == target) current = null - update_active_camera() + SEND_SIGNAL(src, COMSIG_CAMERA_CLEAR) /obj/item/device/sentry_computer/ui_status(mob/user, datum/ui_state/state) . = ..() @@ -332,19 +313,16 @@ /obj/item/device/sentry_computer/ui_close(mob/user) - - // Unregister map objects - user.client.clear_map(map_name) + SEND_SIGNAL(src, COMSIG_CAMERA_UNREGISTER_UI, user) /obj/item/device/sentry_computer/ui_static_data(mob/user) . = list() .["sentry_static"] = list() - .["mapRef"] = map_name + .["mapRef"] = camera_map_name var/index = 1 - for(var/sentry in paired_sentry) + for(var/obj/structure/machinery/defenses/sentry/sentrygun as anything in paired_sentry) var/list/sentry_holder = list() - var/obj/structure/machinery/defenses/sentry/sentrygun = sentry sentry_holder["selection_menu"] = list() sentry_holder["index"] = index sentry_holder["name"] = sentrygun.name @@ -396,13 +374,8 @@ /obj/item/device/sentry_computer/tgui_interact(mob/user, datum/tgui/ui) ui = SStgui.try_update_ui(user, src, ui) - update_active_camera() if (!ui) - // Register map objects - user.client.register_map_obj(cam_background) - user.client.register_map_obj(cam_screen) - for(var/plane in cam_plane_masters) - user.client.register_map_obj(plane) + SEND_SIGNAL(src, COMSIG_CAMERA_REGISTER_UI, user) ui = new(user, src, "SentryGunUI", name) ui.open() @@ -426,7 +399,12 @@ if("set-camera") current = sentry playsound(src, get_sfx("terminal_button"), 25, FALSE) - update_active_camera() + var/obj/structure/machinery/defenses/sentry/defense = sentry + if (defense.has_camera) + defense.set_range() + var/datum/shape/rectangle/current_bb = defense.range_bounds + SEND_SIGNAL(src, COMSIG_CAMERA_SET_AREA, current_bb.center_x, current_bb.center_y, defense.loc.z, current_bb.width, current_bb.height) + return TRUE if("ping") playsound(sentry, 'sound/machines/twobeep.ogg', 50, 1) @@ -439,62 +417,8 @@ if("clear-camera") current = null playsound(src, get_sfx("terminal_button"), 25, FALSE) - update_active_camera() + SEND_SIGNAL(src, COMSIG_CAMERA_CLEAR) return TRUE if("ui-interact") playsound(src, get_sfx("terminal_button"), 25, FALSE) return FALSE - -/** - * Set the displayed camera to the static not-connected. - */ -/obj/item/device/sentry_computer/proc/show_camera_static() - cam_screen.vis_contents.Cut() - last_camera_turf = null - cam_background.icon_state = "scanline2" - cam_background.fill_rect(1, 1, 15, 15) - -/** - * Update camera settings and redraw camera on the current variable. - */ -/obj/item/device/sentry_computer/proc/update_active_camera() - // Show static if can't use the camera - if(isnull(current) || !current.has_camera || current.placed != 1) - show_camera_static() - return - - // Is this camera located in or attached to a living thing, Vehicle or helmet? If so, assume the camera's loc is the living (or non) thing. - var/cam_location = current - if(isliving(current.loc) || isVehicle(current.loc)) - cam_location = current.loc - else if(istype(current.loc, /obj/item/clothing/head/helmet/marine)) - var/obj/item/clothing/head/helmet/marine/helmet = current.loc - cam_location = helmet.loc - // If we're not forcing an update for some reason and the cameras are in the same location, - // we don't need to update anything. - // Most security cameras will end here as they're not moving. - if(last_camera_turf == get_turf(cam_location)) - return - - // Cameras that get here are moving, and are likely attached to some moving atom such as cyborgs. - last_camera_turf = get_turf(cam_location) - current.set_range() - var/datum/shape/rectangle/current_bb = current.range_bounds - var/x_size = current_bb.width - var/y_size = current_bb.height - var/target = locate(current_bb.center_x, current_bb.center_y, current.loc.z) - var/list/guncamera_zone = range("[x_size]x[y_size]", target) - - var/list/visible_turfs = list() - - for(var/turf/visible_turf in guncamera_zone) - visible_turfs += visible_turf - - var/list/bbox = get_bbox_of_atoms(visible_turfs) - var/size_x = bbox[3] - bbox[1] + 1 - var/size_y = bbox[4] - bbox[2] + 1 - cam_screen.icon = null - cam_screen.icon_state = "clear" - cam_screen.vis_contents = visible_turfs - cam_background.icon_state = "clear" - cam_background.fill_rect(1, 1, size_x, size_y) diff --git a/code/modules/defenses/sentry_flamer.dm b/code/modules/defenses/sentry_flamer.dm index 9ae794e3c811..979d18eb41d1 100644 --- a/code/modules/defenses/sentry_flamer.dm +++ b/code/modules/defenses/sentry_flamer.dm @@ -1,22 +1,22 @@ /obj/structure/machinery/defenses/sentry/flamer - name = "\improper UA 42-F sentry flamer" + name = "\improper UA 42-F Sentry Flamer" icon = 'icons/obj/structures/machinery/defenses/flamer.dmi' desc = "A deployable, semi-automated turret with AI targeting capabilities. Armed with a special flamer and a 100 liters fuel tank." fire_delay = 30 ammo = new /obj/item/ammo_magazine/sentry_flamer - sentry_type = "flamer" + sentry_type = "uac_flamer" handheld_type = /obj/item/defenses/handheld/sentry/flamer health = 200 health_max = 200 choice_categories = list( // SENTRY_CATEGORY_ROF = list(ROF_SINGLE, ROF_FULL_AUTO), - SENTRY_CATEGORY_IFF = list(FACTION_USCM, FACTION_WEYLAND, FACTION_HUMAN), + SENTRY_CATEGORY_IFF = list(FACTION_MARINE, SENTRY_FACTION_WEYLAND, SENTRY_FACTION_HUMAN), ) selected_categories = list( SENTRY_CATEGORY_ROF = ROF_SINGLE, - SENTRY_CATEGORY_IFF = FACTION_USCM, + SENTRY_CATEGORY_IFF = FACTION_MARINE, ) /obj/structure/machinery/defenses/sentry/flamer/handle_rof(level) @@ -99,3 +99,68 @@ range_bounds = RECT(x, y - (FLAMER_SENTRY_SNIPER_RANGE/2), FLAMER_SENTRY_SNIPER_RANGE, FLAMER_SENTRY_SNIPER_RANGE) #undef FLAMER_SENTRY_SNIPER_RANGE + + +/obj/structure/machinery/defenses/sentry/flamer/wy + name = "WY 406-FE2 Smart Sentry" + icon = 'icons/obj/structures/machinery/defenses/wy_defenses.dmi' + desc = "A deployable, fully-automated turret with AI targeting capabilities used by the PMC." + health = 300 + health_max = 300 + fire_delay = 2 SECONDS + disassemble_time = 5 SECONDS + hack_time = 25 SECONDS + ammo = new /obj/item/ammo_magazine/sentry_flamer/wy + sentry_type = "wy_flamer" + sentry_range = 6 + omni_directional = TRUE + handheld_type = /obj/item/defenses/handheld/sentry/flamer/wy + selected_categories = list( + SENTRY_CATEGORY_ROF = ROF_SINGLE, + SENTRY_CATEGORY_IFF = SENTRY_FACTION_WEYLAND, + ) + +/obj/structure/machinery/defenses/sentry/flamer/wy/destroyed_action() + visible_message("[icon2html(src, viewers(src))] [SPAN_WARNING("The [name] starts spitting out sparks and smoke!")]") + playsound(loc, 'sound/mecha/critdestrsyndi.ogg', 25, 1) + for(var/i = 1 to 6) + setDir(pick(NORTH, EAST, SOUTH, WEST)) + sleep(2) + + if(ammo.current_rounds != 0) + var/datum/reagent/napalm/sticky/sticky_napalm = new() + new /obj/flamer_fire(loc, create_cause_data("sentry explosion", owner_mob), sticky_napalm, 2) + cell_explosion(loc, 10, 10, EXPLOSION_FALLOFF_SHAPE_LINEAR, null, create_cause_data("sentry explosion", owner_mob)) + if(!QDELETED(src)) + qdel(src) + + +/obj/structure/machinery/defenses/sentry/flamer/upp + name = "UPP SDS-R5 Sentry Flamer" + icon = 'icons/obj/structures/machinery/defenses/upp_defenses.dmi' + desc = "A deployable, fully-automated turret with AI targeting capabilities used by the UPP." + health = 300 + health_max = 300 + fire_delay = 1 SECONDS + disassemble_time = 5 SECONDS + ammo = new /obj/item/ammo_magazine/sentry_flamer/upp + sentry_type = "upp_flamer" + handheld_type = /obj/item/defenses/handheld/sentry/flamer/upp + selected_categories = list( + SENTRY_CATEGORY_ROF = ROF_SINGLE, + SENTRY_CATEGORY_IFF = FACTION_UPP, + ) + +/obj/structure/machinery/defenses/sentry/flamer/upp/destroyed_action() + visible_message("[icon2html(src, viewers(src))] [SPAN_WARNING("The [name] starts spitting out sparks and smoke!")]") + playsound(loc, 'sound/mecha/critdestrsyndi.ogg', 25, 1) + for(var/i = 1 to 6) + setDir(pick(NORTH, EAST, SOUTH, WEST)) + sleep(2) + + if(ammo.current_rounds != 0) + var/datum/reagent/napalm/gel/gel_napalm = new() + new /obj/flamer_fire(loc, create_cause_data("sentry explosion", owner_mob), gel_napalm, 2) + cell_explosion(loc, 10, 10, EXPLOSION_FALLOFF_SHAPE_LINEAR, null, create_cause_data("sentry explosion", owner_mob)) + if(!QDELETED(src)) + qdel(src) diff --git a/code/modules/defenses/tesla_coil.dm b/code/modules/defenses/tesla_coil.dm index 8dc8e6498ba1..0eab59e7d7c4 100644 --- a/code/modules/defenses/tesla_coil.dm +++ b/code/modules/defenses/tesla_coil.dm @@ -20,11 +20,11 @@ has_camera = FALSE choice_categories = list( - SENTRY_CATEGORY_IFF = list(FACTION_USCM, FACTION_WEYLAND, FACTION_HUMAN), + SENTRY_CATEGORY_IFF = list(FACTION_MARINE, SENTRY_FACTION_WEYLAND, SENTRY_FACTION_HUMAN), ) selected_categories = list( - SENTRY_CATEGORY_IFF = FACTION_USCM, + SENTRY_CATEGORY_IFF = FACTION_MARINE, ) @@ -71,7 +71,7 @@ targets = list() for(var/mob/living/M in oview(tesla_range, src)) - if(M.stat == DEAD || isrobot(M)) + if(M.stat == DEAD) continue if(HAS_TRAIT(M, TRAIT_CHARGING)) to_chat(M, SPAN_WARNING("You ignore some weird noises as you charge.")) @@ -125,7 +125,7 @@ if(!istype(M)) return FALSE - var/list/turf/path = getline2(src, M, include_from_atom = FALSE) + var/list/turf/path = get_line(src, M, include_start_atom = FALSE) var/blocked = FALSE for(var/turf/T in path) diff --git a/code/modules/desert_dam/filtration/structures.dm b/code/modules/desert_dam/filtration/structures.dm index b8448e30370d..558f047dd3c9 100644 --- a/code/modules/desert_dam/filtration/structures.dm +++ b/code/modules/desert_dam/filtration/structures.dm @@ -3,6 +3,27 @@ icon = 'icons/turf/floors/filtration.dmi' icon_state = "filtrationside" +/turf/open/floor/filtrationside/southwest + dir = SOUTHWEST + +/turf/open/floor/filtrationside/north + dir = NORTH + +/turf/open/floor/filtrationside/east + dir = EAST + +/turf/open/floor/filtrationside/northeast + dir = NORTHEAST + +/turf/open/floor/filtrationside/southeast + dir = SOUTHEAST + +/turf/open/floor/filtrationside/west + dir = WEST + +/turf/open/floor/filtrationside/northwest + dir = NORTHWEST + /turf/open/floor/plating/catwalk/rusted icon = 'icons/turf/floors/filtration.dmi' icon_state = "grate" @@ -14,6 +35,78 @@ name = "coagulation" icon = 'icons/turf/floors/coagulation.dmi' +/turf/open/floor/coagulation/icon0_0 + icon_state = "0,0" + +/turf/open/floor/coagulation/icon0_4 + icon_state = "0,4" + +/turf/open/floor/coagulation/icon0_5 + icon_state = "0,5" + +/turf/open/floor/coagulation/icon0_8 + icon_state = "0,8" + +/turf/open/floor/coagulation/icon1_1 + icon_state = "1,1" + +/turf/open/floor/coagulation/icon1_7 + icon_state = "1,7" + +/turf/open/floor/coagulation/icon2_0 + icon_state = "2,0" + +/turf/open/floor/coagulation/icon4_8 + icon_state = "4,8" + +/turf/open/floor/coagulation/icon5_8 + icon_state = "5,8" + +/turf/open/floor/coagulation/icon6_8 + icon_state = "6,8" + +/turf/open/floor/coagulation/icon6_8_2 + icon_state = "6,8-2" + +/turf/open/floor/coagulation/icon7_0 + icon_state = "7,0" + +/turf/open/floor/coagulation/icon7_1 + icon_state = "7,1" + +/turf/open/floor/coagulation/icon7_7 + icon_state = "7,7" + +/turf/open/floor/coagulation/icon7_7_2 + icon_state = "7,7-2" + +/turf/open/floor/coagulation/icon7_8 + icon_state = "7,8" + +/turf/open/floor/coagulation/icon7_8_2 + icon_state = "7,8-2" + +/turf/open/floor/coagulation/icon8_0 + icon_state = "8,0" + +/turf/open/floor/coagulation/icon8_3 + icon_state = "8,3" + +/turf/open/floor/coagulation/icon8_4 + icon_state = "8,4" + +/turf/open/floor/coagulation/icon8_6 + icon_state = "8,6" + +/turf/open/floor/coagulation/icon8_7 + icon_state = "8,7" + +/turf/open/floor/coagulation/icon8_7_2 + icon_state = "8,7-2" + +/turf/open/floor/coagulation/icon8_8 + icon_state = "8,8" + /obj/structure/filtration/coagulation name = "coagulation" icon = 'icons/turf/floors/coagulation.dmi' diff --git a/code/modules/desert_dam/motion_sensor/sensortower.dm b/code/modules/desert_dam/motion_sensor/sensortower.dm index 50aeede45f66..a3f33d4da078 100644 --- a/code/modules/desert_dam/motion_sensor/sensortower.dm +++ b/code/modules/desert_dam/motion_sensor/sensortower.dm @@ -65,7 +65,7 @@ /obj/structure/machinery/sensortower/proc/add_xenos_to_minimap() for(var/mob/living/carbon/xenomorph/current_xeno as anything in GLOB.living_xeno_list) if(WEAKREF(current_xeno) in minimap_added) - return + continue SSminimaps.remove_marker(current_xeno) current_xeno.add_minimap_marker(MINIMAP_FLAG_USCM|get_minimap_flag_for_faction(current_xeno.hivenumber)) diff --git a/code/modules/destilery/main.dm b/code/modules/destilery/main.dm deleted file mode 100644 index a7274b317003..000000000000 --- a/code/modules/destilery/main.dm +++ /dev/null @@ -1,298 +0,0 @@ -//This dm file includes some food processing machines: -// - I. Mill -// - II. Fermenter -// - III. Still -// - IV. Squeezer -// - V. Centrifuge - - - -// I. The mill is intended to be loaded with produce and returns ground up items. For example: Wheat should become flour and grapes should become raisins. - -/obj/structure/machinery/mill - var/list/obj/item/reagent_container/food/input = list() - var/list/obj/item/reagent_container/food/output = list() - var/obj/item/reagent_container/food/milled_item - var/busy = FALSE - var/progress = 0 - var/error = 0 - name = "\improper Mill" - desc = "It is a machine that grinds produce." - icon_state = "autolathe" - density = TRUE - anchored = TRUE - use_power = USE_POWER_IDLE - idle_power_usage = 10 - active_power_usage = 1000 - -/obj/structure/machinery/mill/Destroy() - QDEL_NULL(milled_item) - return ..() - -/obj/structure/machinery/mill/process() - if(error) - return - - if(!busy) - update_use_power(USE_POWER_IDLE) - if(input.len) - milled_item = input[1] - input -= milled_item - progress = 0 - busy = TRUE - update_use_power(USE_POWER_ACTIVE) - return - - progress++ - if(progress < 10) //Edit this value to make milling faster or slower - return //Not done yet. - - switch(milled_item.type) - if(/obj/item/reagent_container/food/snacks/grown/wheat) //Wheat becomes flour - var/obj/item/reagent_container/food/snacks/flour/F = new(src) - output += F - if(/obj/item/reagent_container/food/snacks/flour) //Flour is still flour - var/obj/item/reagent_container/food/snacks/flour/F = new(src) - output += F - else - error = 1 - - QDEL_NULL(milled_item) - busy = FALSE - -/obj/structure/machinery/mill/attackby(obj/item/W as obj, mob/user as mob) - if(istype(W,/obj/item/reagent_container/food)) - if(user.drop_inv_item_to_loc(W, src)) - input += W - else - ..() - -/obj/structure/machinery/mill/attack_hand(mob/user as mob) - for(var/obj/item/reagent_container/food/F in output) - F.forceMove(loc) - output -= F - - - - - - -// II. The fermenter is intended to be loaded with food items and returns medium-strength alcohol items, sucha s wine and beer. - -/obj/structure/machinery/fermenter - var/list/obj/item/reagent_container/food/input = list() - var/list/obj/item/reagent_container/food/output = list() - var/obj/item/reagent_container/food/fermenting_item - var/water_level = 0 - var/busy = FALSE - var/progress = 0 - var/error = 0 - name = "\improper Fermenter" - desc = "It is a machine that ferments produce into alcoholic drinks." - icon_state = "autolathe" - density = TRUE - anchored = TRUE - use_power = USE_POWER_IDLE - idle_power_usage = 10 - active_power_usage = 500 - -/obj/structure/machinery/fermenter/Destroy() - QDEL_NULL(fermenting_item) - return ..() - -/obj/structure/machinery/fermenter/process() - if(error) - return - - if(!busy) - update_use_power(USE_POWER_IDLE) - if(input.len) - fermenting_item = input[1] - input -= fermenting_item - progress = 0 - busy = TRUE - update_use_power(USE_POWER_ACTIVE) - return - - if(!water_level) - return - - water_level-- - - progress++ - if(progress < 10) //Edit this value to make milling faster or slower - return //Not done yet. - - switch(fermenting_item.type) - if(/obj/item/reagent_container/food/snacks/flour) //Flour is still flour - var/obj/item/reagent_container/food/drinks/cans/beer/B = new(src) - output += B - else - error = 1 - - QDEL_NULL(fermenting_item) - busy = FALSE - -/obj/structure/machinery/fermenter/attackby(obj/item/W as obj, mob/user as mob) - if(istype(W,/obj/item/reagent_container/food)) - if(user.drop_inv_item_to_loc(W, src)) - input += W - else - ..() - -/obj/structure/machinery/fermenter/attack_hand(mob/user as mob) - for(var/obj/item/reagent_container/food/F in output) - F.forceMove(loc) - output -= F - - - -// III. The still is a machine that is loaded with food items and returns hard liquor, such as vodka. - -/obj/structure/machinery/still - var/list/obj/item/reagent_container/food/input = list() - var/list/obj/item/reagent_container/food/output = list() - var/obj/item/reagent_container/food/destilling_item - var/busy = FALSE - var/progress = 0 - var/error = 0 - name = "\improper Still" - desc = "It is a machine that produces hard liquor from alcoholic drinks." - icon_state = "autolathe" - density = TRUE - anchored = TRUE - use_power = USE_POWER_IDLE - idle_power_usage = 10 - active_power_usage = 10000 - -/obj/structure/machinery/still/Destroy() - QDEL_NULL(destilling_item) - return ..() - -/obj/structure/machinery/still/process() - if(error) - return - - if(!busy) - update_use_power(USE_POWER_IDLE) - if(input.len) - destilling_item = input[1] - input -= destilling_item - progress = 0 - busy = TRUE - update_use_power(USE_POWER_ACTIVE) - return - - progress++ - if(progress < 10) //Edit this value to make distilling faster or slower - return //Not done yet. - - switch(destilling_item.type) - if(/obj/item/reagent_container/food/drinks/cans/beer) //Flour is still flour - var/obj/item/reagent_container/food/drinks/bottle/vodka/V = new(src) - output += V - else - error = 1 - - QDEL_NULL(destilling_item) - busy = FALSE - -/obj/structure/machinery/still/attackby(obj/item/W as obj, mob/user as mob) - if(istype(W,/obj/item/reagent_container/food)) - if(user.drop_inv_item_to_loc(W, loc)) - input += W - else - ..() - -/obj/structure/machinery/still/attack_hand(mob/user as mob) - for(var/obj/item/reagent_container/food/F in output) - F.forceMove(loc) - output -= F - - - - -// IV. The squeezer is intended to destroy inserted food items, but return some of the reagents they contain. - -/obj/structure/machinery/squeezer - var/list/obj/item/reagent_container/food/input = list() - var/obj/item/reagent_container/food/squeezed_item - var/water_level = 0 - var/busy = FALSE - var/progress = 0 - var/error = 0 - name = "\improper Squeezer" - desc = "It is a machine that squeezes extracts from produce." - icon_state = "autolathe" - density = TRUE - anchored = TRUE - use_power = USE_POWER_IDLE - idle_power_usage = 10 - active_power_usage = 500 - - - - - -// V. The centrifuge spins inserted food items. It is intended to squeeze out the reagents that are common food catalysts (enzymes currently) - -/obj/structure/machinery/centrifuge - var/list/obj/item/reagent_container/food/input = list() - var/list/obj/item/reagent_container/food/output = list() - var/obj/item/reagent_container/food/spinning_item - var/busy = FALSE - var/progress = 0 - var/error = 0 - var/enzymes = 0 - var/water = 0 - name = "\improper Centrifuge" - desc = "It is a machine that spins produce." - icon_state = "autolathe" - density = TRUE - anchored = TRUE - use_power = USE_POWER_IDLE - idle_power_usage = 10 - active_power_usage = 10000 - -/obj/structure/machinery/centrifuge/process() - if(error) - return - - if(!busy) - update_use_power(USE_POWER_IDLE) - if(input.len) - spinning_item = input[1] - input -= spinning_item - progress = 0 - busy = TRUE - update_use_power(USE_POWER_ACTIVE) - return - - progress++ - if(progress < 10) //Edit this value to make milling faster or slower - return //Not done yet. - - var/transfer_enzymes = spinning_item.reagents.get_reagent_amount("enzyme") - - if(transfer_enzymes) - enzymes += transfer_enzymes - spinning_item.reagents.remove_reagent("enzyme",transfer_enzymes) - - output += spinning_item - busy = FALSE - -/obj/structure/machinery/centrifuge/attackby(obj/item/W as obj, mob/user as mob) - if(istype(W,/obj/item/reagent_container/food)) - if(user.drop_inv_item_to_loc(W, src)) - input += W - else - ..() - -/obj/structure/machinery/centrifuge/attack_hand(mob/user as mob) - for(var/obj/item/reagent_container/food/F in output) - F.forceMove(loc) - output -= F - while(enzymes >= 50) - enzymes -= 50 - new/obj/item/reagent_container/food/condiment/enzyme(src.loc) - diff --git a/code/modules/droppod/droppod_ui.dm b/code/modules/droppod/droppod_ui.dm index b0c6683a4f7c..118422a791a6 100644 --- a/code/modules/droppod/droppod_ui.dm +++ b/code/modules/droppod/droppod_ui.dm @@ -42,6 +42,7 @@ GLOBAL_LIST_INIT(droppod_target_mode, list( var/atom/movable/screen/map_view/cam_screen var/atom/movable/screen/background/cam_background var/map_name + var/list/cam_plane_masters var/list/ordered_area = list() var/list/launch_list = list() @@ -89,7 +90,7 @@ GLOBAL_LIST_INIT(droppod_target_mode, list( var/list/acceptableTurfs = list() for (var/t in ordered_area) //Go through the orderedArea list var/turf/unchecked_turf = t - if (typecache_filter_list_reverse(unchecked_turf.contents, ignored_atoms).len != 0) //if there is something in this turf that isn't in the blacklist, we consider this turf "acceptable" and add it to the acceptableTurfs list + if (length(typecache_filter_list_reverse(unchecked_turf.contents, ignored_atoms)) != 0) //if there is something in this turf that isn't in the blacklist, we consider this turf "acceptable" and add it to the acceptableTurfs list acceptableTurfs.Add(unchecked_turf) //Because orderedArea was an ordered linear list, acceptableTurfs will be as well. launch_list = list() //Anything in launch_list will go into the supplypod when it is launched @@ -132,17 +133,37 @@ GLOBAL_LIST_INIT(droppod_target_mode, list( map_name = "admin_supplypod_bay_[REF(src)]_map" // Initialize map objects cam_screen = new + cam_screen.icon = null cam_screen.name = "screen" cam_screen.assigned_map = map_name cam_screen.del_on_map_removal = TRUE cam_screen.screen_loc = "[map_name]:1,1" + cam_screen.appearance_flags |= TILE_BOUND cam_background = new cam_background.assigned_map = map_name cam_background.del_on_map_removal = TRUE + cam_background.appearance_flags |= TILE_BOUND + + cam_plane_masters = list() + for(var/plane in subtypesof(/atom/movable/screen/plane_master) - /atom/movable/screen/plane_master/blackness) + var/atom/movable/screen/plane_master/instance = new plane() + add_plane(instance) + refresh_view() holder.register_map_obj(cam_screen) holder.register_map_obj(cam_background) + for(var/plane_id in cam_plane_masters) + holder.register_map_obj(cam_plane_masters[plane_id]) + +/datum/admin_podlauncher/proc/add_plane(atom/movable/screen/plane_master/instance) + instance.assigned_map = map_name + instance.appearance_flags |= TILE_BOUND + instance.del_on_map_removal = FALSE + if(instance.blend_mode_override) + instance.blend_mode = instance.blend_mode_override + instance.screen_loc = "[map_name]:CENTER" + cam_plane_masters["[instance.plane]"] = instance /datum/admin_podlauncher/proc/refresh_view() switch(tab_index) @@ -432,4 +453,5 @@ GLOBAL_LIST_INIT(droppod_target_mode, list( user.client?.clear_map(map_name) QDEL_NULL(cam_screen) QDEL_NULL(cam_background) + QDEL_LIST_ASSOC_VAL(cam_plane_masters) qdel(src) diff --git a/code/modules/dropships/attach_points/attach_point.dm b/code/modules/dropships/attach_points/attach_point.dm index 6724f5d18bd2..6fef4d58e785 100644 --- a/code/modules/dropships/attach_points/attach_point.dm +++ b/code/modules/dropships/attach_points/attach_point.dm @@ -7,6 +7,7 @@ unacidable = TRUE anchored = TRUE layer = ABOVE_TURF_LAYER + plane = GAME_PLANE /// The currently installed equipment, if any var/obj/structure/dropship_equipment/installed_equipment /// What kind of equipment this base accepts @@ -26,44 +27,45 @@ /obj/effect/attach_point/attackby(obj/item/I, mob/user) if(istype(I, /obj/item/powerloader_clamp)) - var/obj/item/powerloader_clamp/PC = I - install_equipment(PC, user) + var/obj/item/powerloader_clamp/clamp = I + install_equipment(clamp, user) return TRUE return ..() /// Called when a real user with a powerloader attempts to install an equipment on the attach point -/obj/effect/attach_point/proc/install_equipment(obj/item/powerloader_clamp/PC, mob/living/user) - if(!istype(PC.loaded, /obj/structure/dropship_equipment)) +/obj/effect/attach_point/proc/install_equipment(obj/item/powerloader_clamp/clamp, mob/living/user) + if(!istype(clamp.loaded, /obj/structure/dropship_equipment)) + return + var/obj/structure/dropship_equipment/ds_equipment = clamp.loaded + if(!(base_category in ds_equipment.equip_categories)) + to_chat(user, SPAN_WARNING("[ds_equipment] doesn't fit on [src].")) return - var/obj/structure/dropship_equipment/SE = PC.loaded - if(!(base_category in SE.equip_categories)) - to_chat(user, SPAN_WARNING("[SE] doesn't fit on [src].")) - return TRUE if(installed_equipment) - return TRUE - playsound(loc, 'sound/machines/hydraulics_1.ogg', 40, 1) + return + playsound(loc, 'sound/machines/hydraulics_1.ogg', 40, TRUE) var/point_loc = loc if(!user || !do_after(user, (7 SECONDS) * user.get_skill_duration_multiplier(SKILL_ENGINEER), INTERRUPT_NO_NEEDHAND|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD)) - return TRUE + return if(loc != point_loc)//dropship flew away - return TRUE - if(installed_equipment || PC.loaded != SE) - return TRUE - to_chat(user, SPAN_NOTICE("You install [SE] on [src].")) - SE.forceMove(loc) - PC.loaded = null - playsound(loc, 'sound/machines/hydraulics_2.ogg', 40, 1) - PC.update_icon() - installed_equipment = SE - SE.ship_base = src + return + if(installed_equipment || clamp.loaded != ds_equipment) + return + to_chat(user, SPAN_NOTICE("You install [ds_equipment] on [src].")) + ds_equipment.forceMove(loc) + clamp.loaded = null + playsound(loc, 'sound/machines/hydraulics_2.ogg', 40, TRUE) + clamp.update_icon() + installed_equipment = ds_equipment + ds_equipment.ship_base = src + ds_equipment.plane = plane for(var/obj/docking_port/mobile/marine_dropship/shuttle in SSshuttle.mobile) if(shuttle.id == ship_tag) - SE.linked_shuttle = shuttle - shuttle.equipments += SE + ds_equipment.linked_shuttle = shuttle + SEND_SIGNAL(shuttle, COMSIG_DROPSHIP_ADD_EQUIPMENT, ds_equipment) break - SE.update_equipment() + ds_equipment.update_equipment() /// Weapon specific attachment point /obj/effect/attach_point/weapon diff --git a/code/modules/dropships/attach_points/templates.dm b/code/modules/dropships/attach_points/templates.dm index 51c870f04b0b..bcdad8836e25 100644 --- a/code/modules/dropships/attach_points/templates.dm +++ b/code/modules/dropships/attach_points/templates.dm @@ -87,9 +87,15 @@ /obj/effect/attach_point/crew_weapon/dropship1 ship_tag = DROPSHIP_ALAMO +/obj/effect/attach_point/crew_weapon/dropship1/floor + plane = FLOOR_PLANE + /obj/effect/attach_point/crew_weapon/dropship2 ship_tag = DROPSHIP_NORMANDY +/obj/effect/attach_point/crew_weapon/dropship2/floor + plane = FLOOR_PLANE + /obj/effect/attach_point/electronics name = "electronic system attach point" base_category = DROPSHIP_ELECTRONICS diff --git a/code/modules/dropships/cas/fire_mission_record.dm b/code/modules/dropships/cas/fire_mission_record.dm index 093a1509b2ad..3b3b48fe6b0a 100644 --- a/code/modules/dropships/cas/fire_mission_record.dm +++ b/code/modules/dropships/cas/fire_mission_record.dm @@ -5,6 +5,11 @@ /// List of transverse offsets for each firing step - null meaning not shooting var/list/offsets +/datum/cas_fire_mission_record/ui_data(mob/user) + . = list() + .["weapon"] = weapon.ship_base.attach_id + .["offsets"] = offsets + /// Get offset range allowed when firing weapon in this configuration /datum/cas_fire_mission_record/proc/get_offsets() if(!weapon?.ship_base) @@ -26,7 +31,7 @@ var/used = 0 var/max_ammo = 0 if(weapon.ammo_equipped) - for(var/step = 1; step<=offsets.len; step++) + for(var/step = 1; step<=length(offsets); step++) if(offsets[step]!=null && offsets[step]!="-") used += weapon.ammo_equipped.ammo_used_per_firing max_ammo = weapon.ammo_equipped.max_ammo_count diff --git a/code/modules/economy/ATM.dm b/code/modules/economy/ATM.dm index 1345164fcf34..e7ac5d767dab 100644 --- a/code/modules/economy/ATM.dm +++ b/code/modules/economy/ATM.dm @@ -63,7 +63,7 @@ log transactions var/obj/item/spacecash/spacecash = I //consume the money if(spacecash.counterfeit) - authenticated_account.money += round(spacecash.worth * 0.25) + authenticated_account.money += floor(spacecash.worth * 0.25) visible_message(SPAN_DANGER("[src] starts sparking and making error noises as you load [I] into it!")) spark_system.start() else @@ -284,7 +284,7 @@ log transactions previous_account_number = tried_account_num if("e_withdrawal") if(withdrawal_timer > world.time) - alert("Please wait [round((withdrawal_timer-world.time)/10)] seconds before attempting to make another withdrawal.") + alert("Please wait [floor((withdrawal_timer-world.time)/10)] seconds before attempting to make another withdrawal.") return var/amount = max(text2num(href_list["funds_amount"]),0) amount = round(amount, 0.01) @@ -316,7 +316,7 @@ log transactions withdrawal_timer = world.time + 20 if("withdrawal") if(withdrawal_timer > world.time) - alert("Please wait [round((withdrawal_timer-world.time)/10)] seconds before attempting to make another withdrawal.") + alert("Please wait [floor((withdrawal_timer-world.time)/10)] seconds before attempting to make another withdrawal.") return var/amount = max(text2num(href_list["funds_amount"]),0) amount = round(amount, 0.01) @@ -428,26 +428,28 @@ log transactions //stolen wholesale and then edited a bit from newscasters, which are awesome and by Agouri /obj/structure/machinery/atm/proc/scan_user(mob/living/carbon/human/human_user as mob) + if(authenticated_account) + return + var/obj/item/card/id/card = human_user.get_idcard() + if(!card) + return + + authenticated_account = attempt_account_access(card.associated_account_number) if(!authenticated_account) - if(human_user.wear_id) - var/obj/item/card/id/I - if(istype(human_user.wear_id, /obj/item/card/id)) - I = human_user.wear_id - if(I) - authenticated_account = attempt_account_access(I.associated_account_number) - if(authenticated_account) - to_chat(human_user, SPAN_NOTICE("[icon2html(src, human_user)] Access granted. Welcome user '[authenticated_account.owner_name].'")) - - //create a transaction log entry - var/datum/transaction/T = new() - T.target_name = authenticated_account.owner_name - T.purpose = "Remote terminal access" - T.source_terminal = machine_id - T.date = GLOB.current_date_string - T.time = worldtime2text() - authenticated_account.transaction_log.Add(T) - - view_screen = NO_SCREEN + return + + to_chat(human_user, SPAN_NOTICE("[icon2html(src, human_user)] Access granted. Welcome user '[authenticated_account.owner_name].'")) + + //create a transaction log entry + var/datum/transaction/log = new() + log.target_name = authenticated_account.owner_name + log.purpose = "Remote terminal access" + log.source_terminal = machine_id + log.date = GLOB.current_date_string + log.time = worldtime2text() + authenticated_account.transaction_log.Add(log) + + view_screen = NO_SCREEN // put the currently held id on the ground or in the hand of the user /obj/structure/machinery/atm/proc/release_held_id(mob/living/carbon/human/human_user as mob) diff --git a/code/modules/economy/EFTPOS.dm b/code/modules/economy/EFTPOS.dm index ca73c2efb84f..ad6368328d01 100644 --- a/code/modules/economy/EFTPOS.dm +++ b/code/modules/economy/EFTPOS.dm @@ -198,7 +198,7 @@ transaction_locked = 0 transaction_paid = 0 else - var/attempt_code = tgui_input_number(usr, "Enter EFTPOS access code", "Reset Transaction") + var/attempt_code = tgui_input_number(usr, "Enter EFTPOS access code", "Reset Transaction", 1000, 999999, 1000) if(attempt_code == access_code) transaction_locked = 0 transaction_paid = 0 @@ -234,7 +234,7 @@ var/attempt_pin = "" var/datum/money_account/D = get_account(C.associated_account_number) if(D.security_level) - attempt_pin = tgui_input_number(usr, "Enter pin code", "EFTPOS transaction") + attempt_pin = tgui_input_number(usr, "Enter pin code", "EFTPOS transaction", 1111, 111111, 1111) D = null D = attempt_account_access(C.associated_account_number, attempt_pin, 2) if(D) diff --git a/code/modules/economy/cash.dm b/code/modules/economy/cash.dm index ad09eaf3fa09..b5489f192287 100644 --- a/code/modules/economy/cash.dm +++ b/code/modules/economy/cash.dm @@ -88,7 +88,7 @@ ..() var/oldloc = loc var/amount = tgui_input_number(user, "How many dollars do you want to take? (0 to [src.worth])", "Take Money", 0, src.worth, 0) - amount = round(Clamp(amount, 0, src.worth)) + amount = floor(clamp(amount, 0, src.worth)) if(amount == 0) return if(QDELETED(src) || loc != oldloc) diff --git a/code/modules/economy/economy_misc.dm b/code/modules/economy/economy_misc.dm index a5f061e1a727..d65799f8f96f 100644 --- a/code/modules/economy/economy_misc.dm +++ b/code/modules/economy/economy_misc.dm @@ -75,31 +75,10 @@ GLOBAL_VAR_INIT(economy_init, FALSE) if(GLOB.economy_init) return 2 - var/datum/feed_channel/newChannel = new /datum/feed_channel - newChannel.channel_name = "Public Station Announcements" - newChannel.author = "Automated Announcement Listing" - newChannel.locked = 1 - newChannel.is_admin_channel = 1 - GLOB.news_network.network_channels += newChannel - - newChannel = new /datum/feed_channel - newChannel.channel_name = "Nyx Daily" - newChannel.author = "CentComm Minister of Information" - newChannel.locked = 1 - newChannel.is_admin_channel = 1 - GLOB.news_network.network_channels += newChannel - - newChannel = new /datum/feed_channel - newChannel.channel_name = "The Gibson Gazette" - newChannel.author = "Editor Mike Hammers" - newChannel.locked = 1 - newChannel.is_admin_channel = 1 - GLOB.news_network.network_channels += newChannel - for(var/loc_type in typesof(/datum/trade_destination) - /datum/trade_destination) var/datum/trade_destination/D = new loc_type - GLOB.weighted_randomevent_locations[D] = D.viable_random_events.len - GLOB.weighted_mundaneevent_locations[D] = D.viable_mundane_events.len + GLOB.weighted_randomevent_locations[D] = length(D.viable_random_events) + GLOB.weighted_mundaneevent_locations[D] = length(D.viable_mundane_events) create_station_account() diff --git a/code/modules/escape_menu/escape_menu.dm b/code/modules/escape_menu/escape_menu.dm index c31234678b62..b61bbd5b3f36 100644 --- a/code/modules/escape_menu/escape_menu.dm +++ b/code/modules/escape_menu/escape_menu.dm @@ -49,7 +49,7 @@ GLOBAL_LIST_EMPTY(escape_menus) show_page() RegisterSignal(client, COMSIG_PARENT_QDELETING, PROC_REF(on_client_qdel)) - RegisterSignal(client, COMSIG_CLIENT_MOB_LOGIN, PROC_REF(on_client_mob_login)) + RegisterSignal(client, COMSIG_CLIENT_MOB_LOGGED_IN, PROC_REF(on_client_mob_login)) if (!isnull(ckey)) GLOB.escape_menus[ckey] = src diff --git a/code/modules/events/_events.dm b/code/modules/events/_events.dm index 2cc3304e78c9..af85be04238f 100644 --- a/code/modules/events/_events.dm +++ b/code/modules/events/_events.dm @@ -21,7 +21,7 @@ ///The minimum amount of alive, non-AFK human players on server required to start the event. var/min_players = 0 - ///How many times this event has occured + ///How many times this event has occurred var/occurrences = 0 //The maximum number of times this event can occur (naturally), it can still be forced.By setting this to 0 you can effectively disable an event. var/max_occurrences = 20 diff --git a/code/modules/events/inflation.dm b/code/modules/events/inflation.dm index 377c689fa1a0..b410d9795838 100644 --- a/code/modules/events/inflation.dm +++ b/code/modules/events/inflation.dm @@ -32,7 +32,7 @@ /* You may be thinking 'Why the fuck would W-Y directly send a broadcast to a in-operation vessel and reveal their location to any hostiles nearby?' The answer is they don't, it's a signal sent across entire sectors for every UA-affiliated vessel and colony to take note of when it passes by. Colony vendors aren't updated because the colony's network has collapsed. */ - shipwide_ai_announcement("An encrypted broadband signal from Weyland-Yutani has been recieved notifying the sector of sudden changes in the UA's economy during cryosleep, due to [get_random_story()], and have requested UA vessels to increase the prices of [product_type] products by [get_percentage()]%. This change will come into effect in [time_to_update] minutes.") + shipwide_ai_announcement("An encrypted broadband signal from Weyland-Yutani has been received notifying the sector of sudden changes in the UA's economy during cryosleep, due to [get_random_story()], and have requested UA vessels to increase the prices of [product_type] products by [get_percentage()]%. This change will come into effect in [time_to_update] minutes.") /datum/round_event/economy_inflation/start() for(var/obj/structure/machinery/vending/vending_machine as anything in GLOB.total_vending_machines) diff --git a/code/modules/flufftext/Hallucination.dm b/code/modules/flufftext/Hallucination.dm index ceff47b5b63c..4573052c29df 100644 --- a/code/modules/flufftext/Hallucination.dm +++ b/code/modules/flufftext/Hallucination.dm @@ -54,7 +54,7 @@ Gunshots/explosions/opening doors/less rare audio (done) slots_free += ui_datum.ui_storage1 if(!H.r_store) slots_free += ui_datum.ui_storage2 - if(slots_free.len) + if(length(slots_free)) halitem.screen_loc = pick(slots_free) halitem.layer = 50 switch(rand(1,6)) @@ -97,7 +97,7 @@ Gunshots/explosions/opening doors/less rare audio (done) var/list/possible_points = list() for(var/turf/open/floor/F in view(src,GLOB.world_view_size)) possible_points += F - if(possible_points.len) + if(length(possible_points)) var/turf/open/floor/target = pick(possible_points) switch(rand(1,3)) @@ -161,7 +161,7 @@ Gunshots/explosions/opening doors/less rare audio (done) var/list/possible_points = list() for(var/turf/open/floor/F in view(src,GLOB.world_view_size)) possible_points += F - if(possible_points.len) + if(length(possible_points)) var/turf/open/floor/target = pick(possible_points) switch(rand(1,3)) if(1) @@ -203,12 +203,12 @@ Gunshots/explosions/opening doors/less rare audio (done) "Play Charades","Oxygen","Inject BeAcOs","Ninja Lizards","Limit Break","Build Sentry") if(mid_txts) - while(mid_txts.len) + while(length(mid_txts)) var/mid_txt = pick(mid_txts) mocktxt += mid_txt mid_txts -= mid_txt - while(buttons.len) + while(length(buttons)) var/button = pick(buttons) @@ -356,7 +356,7 @@ GLOBAL_LIST_INIT(non_fakeattack_weapons, list(/obj/item/device/aicard,\ clone = H break //changed the code a bit. Less randomised, but less work to do. Should be ok, world.contents aren't stored in any particular order. -// if(!possible_clones.len) return +// if(!length(possible_clones)) return // clone = pick(possible_clones) if(!clone) return diff --git a/code/modules/flufftext/TextFilters.dm b/code/modules/flufftext/TextFilters.dm index f6b5c43384ee..2389d50fdc83 100644 --- a/code/modules/flufftext/TextFilters.dm +++ b/code/modules/flufftext/TextFilters.dm @@ -30,10 +30,10 @@ var/list/unstuttered_words = split_phrase.Copy() var/i = rand(1,3) - if(stunned) i = split_phrase.len + if(stunned) i = length(split_phrase) for(,i > 0,i--) //Pick a few words to stutter on. - if (!unstuttered_words.len) + if (!length(unstuttered_words)) break var/word = pick(unstuttered_words) unstuttered_words -= word //Remove from unstuttered words so we don't stutter it again. diff --git a/code/modules/gear_presets/_select_equipment.dm b/code/modules/gear_presets/_select_equipment.dm index 5a5ecea2d03d..5311a7a79a3b 100644 --- a/code/modules/gear_presets/_select_equipment.dm +++ b/code/modules/gear_presets/_select_equipment.dm @@ -149,9 +149,9 @@ load_skills(new_human, mob_client) //skills are set before equipment because of skill restrictions on certain clothes. load_languages(new_human, mob_client) load_age(new_human, mob_client) + load_id(new_human, mob_client) if(show_job_gear) load_gear(new_human, mob_client) - load_id(new_human, mob_client) load_status(new_human, mob_client) load_vanity(new_human, mob_client) load_traits(new_human, mob_client) @@ -201,7 +201,7 @@ qdel(R) if(flags & EQUIPMENT_PRESET_MARINE) - var/playtime = get_job_playtime(new_human.client, assignment) + var/playtime = get_job_playtime(new_human.client, rank) var/medal_type switch(playtime) @@ -220,7 +220,7 @@ if(medal_type) var/obj/item/clothing/accessory/medal/medal = new medal_type() medal.recipient_name = new_human.real_name - medal.recipient_rank = current_rank + medal.recipient_rank = assignment if(new_human.wear_suit && new_human.wear_suit.can_attach_accessory(medal)) new_human.wear_suit.attach_accessory(new_human, medal, TRUE) diff --git a/code/modules/gear_presets/clf.dm b/code/modules/gear_presets/clf.dm index d89e349a62c1..dbee0e435ba4 100644 --- a/code/modules/gear_presets/clf.dm +++ b/code/modules/gear_presets/clf.dm @@ -71,6 +71,7 @@ new_human.equip_to_slot_or_del(new /obj/item/storage/belt/shotgun/full/random(new_human), WEAR_WAIST) new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/shotgun/pump/dual_tube/cmb(new_human), WEAR_BACK) + new_human.equip_to_slot_or_del(new /obj/item/attachable/bayonet/upp(new_human), WEAR_FACE) if(prob(50)) spawn_rebel_smg(new_human) else @@ -169,13 +170,13 @@ spawn_rebel_suit(new_human) spawn_rebel_shoes(new_human) - spawn_rebel_gloves(new_human) new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/meson, WEAR_EYES) new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/yellow, WEAR_HANDS) new_human.equip_to_slot_or_del(new /obj/item/clothing/head/welding, WEAR_HEAD) new_human.equip_to_slot_or_del(new /obj/item/storage/belt/utility/full(new_human), WEAR_WAIST) new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/CLF/cct, WEAR_L_EAR) + new_human.equip_to_slot_or_del(new /obj/item/attachable/bayonet/upp(new_human), WEAR_FACE) new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/marine/engineerpack/ert, WEAR_BACK) new_human.equip_to_slot_or_del(new /obj/item/explosive/plastic/breaching_charge, WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/explosive/plastic/breaching_charge, WEAR_IN_BACK) @@ -300,6 +301,7 @@ new_human.equip_to_slot_or_del(new /obj/item/roller, WEAR_IN_BELT) new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/CLF/medic(new_human), WEAR_L_EAR) + new_human.equip_to_slot_or_del(new /obj/item/attachable/bayonet/upp(new_human), WEAR_FACE) new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/lightpack(new_human), WEAR_BACK) new_human.equip_to_slot_or_del(new /obj/item/explosive/grenade/custom/ied(new_human), WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/storage/firstaid/adv(new_human), WEAR_IN_BACK) @@ -455,6 +457,7 @@ //clothing new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/militia(new_human), WEAR_JACKET) new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/swat(new_human), WEAR_HEAD) + new_human.equip_to_slot_or_del(new /obj/item/attachable/bayonet/upp(new_human), WEAR_FACE) new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/combat(new_human), WEAR_FEET) new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/combat(new_human), WEAR_HANDS) new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/m4a3/mod88(new_human), WEAR_WAIST) @@ -574,6 +577,7 @@ new_human.equip_to_slot_or_del(new /obj/item/clothing/under/colonist/clf(new_human), WEAR_BODY) new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/militia(new_human), WEAR_JACKET) new_human.equip_to_slot_or_del(new /obj/item/clothing/head/beret/sec/hos(new_human), WEAR_HEAD) + new_human.equip_to_slot_or_del(new /obj/item/attachable/bayonet/upp(new_human), WEAR_FACE) new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/combat(new_human), WEAR_FEET) new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/black(new_human), WEAR_HANDS) new_human.equip_to_slot_or_del(new /obj/item/storage/belt/marine(new_human), WEAR_WAIST) @@ -745,36 +749,43 @@ /datum/equipment_preset/clf/synth/load_race(mob/living/carbon/human/new_human) new_human.set_species(SYNTH_COLONY_GEN_ONE) -/datum/equipment_preset/clf/synth/load_gear(mob/living/carbon/human/new_human) - load_name(new_human) - var/obj/item/clothing/under/colonist/clf/CLF = new() - var/obj/item/clothing/accessory/storage/webbing/W = new() - CLF.attach_accessory(new_human, W) - new_human.equip_to_slot_or_del(CLF, WEAR_BODY) +/datum/equipment_preset/clf/synth/load_skills(mob/living/carbon/human/new_human) + . = ..() + new_human.allow_gun_usage = FALSE +/datum/equipment_preset/clf/synth/load_gear(mob/living/carbon/human/new_human) + //back new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/marine/engineerpack/ert, WEAR_BACK) - new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/combat, WEAR_HANDS) - new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/combat, WEAR_FEET) - new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/militia, WEAR_JACKET) - new_human.equip_to_slot_or_del(new /obj/item/storage/belt/medical/full/with_suture_and_graft, WEAR_WAIST) - new_human.equip_to_slot_or_del(new /obj/item/device/healthanalyzer(new_human), WEAR_IN_BELT) + new_human.equip_to_slot_or_del(new /obj/item/tool/extinguisher/mini, WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/device/defibrillator, WEAR_IN_BACK) - new_human.equip_to_slot_or_del(new /obj/item/explosive/plastic, WEAR_IN_BACK) - - spawn_weapon(/obj/item/weapon/gun/rifle/mar40/carbine, /obj/item/ammo_magazine/rifle/mar40/extended, new_human, 0, 10) - new_human.equip_to_slot_or_del(new /obj/item/roller, WEAR_IN_BACK) - new_human.equip_to_slot_or_del(new /obj/item/tool/extinguisher/mini, WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/explosive/plastic, WEAR_IN_BACK) - new_human.equip_to_slot_or_del(new /obj/item/attachable/bayonet/upp, WEAR_FACE) - new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/CLF/command(new_human), WEAR_L_EAR) + new_human.equip_to_slot_or_del(new /obj/item/explosive/plastic, WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/tool/crowbar, WEAR_IN_BACK) - new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/tools/synth, WEAR_L_STORE) - new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/construction/full_barbed_wire, WEAR_R_STORE) + //face + new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/CLF/command(new_human), WEAR_L_EAR) + new_human.equip_to_slot_or_del(new /obj/item/attachable/bayonet/upp, WEAR_FACE) if(new_human.disabilities & NEARSIGHTED) new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/hud/health/prescription(new_human), WEAR_EYES) else new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/hud/health(new_human), WEAR_EYES) + //head + new_human.equip_to_slot_or_del(new /obj/item/clothing/head/beret/jan, WEAR_HEAD) + //body + var/obj/item/clothing/under/colonist/clf/CLF = new() + var/obj/item/clothing/accessory/storage/webbing/webbing = new() + CLF.attach_accessory(new_human, webbing) + new_human.equip_to_slot_or_del(CLF, WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/militia, WEAR_JACKET) + //waist + new_human.equip_to_slot_or_del(new /obj/item/storage/belt/medical/full/with_suture_and_graft, WEAR_WAIST) + new_human.equip_to_slot_or_del(new /obj/item/device/healthanalyzer(new_human), WEAR_IN_BELT) + //limbs + new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/combat, WEAR_HANDS) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/combat, WEAR_FEET) + //pockets + new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/tools/synth, WEAR_L_STORE) + new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/construction/full_barbed_wire, WEAR_R_STORE) /datum/equipment_preset/clf/synth/get_antag_clothing_equipment() return list( @@ -893,6 +904,54 @@ list("Whistle", 5, /obj/item/device/whistle, null, VENDOR_ITEM_REGULAR), ) +/datum/equipment_preset/clf/synth/combat + name = "CLF Combat Synthetic" + flags = EQUIPMENT_PRESET_EXTRA + +/datum/equipment_preset/clf/synth/combat/load_skills(mob/living/carbon/human/new_human) + . = ..() + new_human.allow_gun_usage = TRUE + +/datum/equipment_preset/clf/synth/combat/load_gear(mob/living/carbon/human/new_human) + //back + new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/marine/engineerpack/ert, WEAR_BACK) + new_human.equip_to_slot_or_del(new /obj/item/tool/extinguisher/mini, WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/device/defibrillator, WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/roller, WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/explosive/plastic, WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/explosive/plastic, WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/tool/crowbar, WEAR_IN_BACK) + //face + new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/CLF/command(new_human), WEAR_L_EAR) + new_human.equip_to_slot_or_del(new /obj/item/attachable/bayonet/upp, WEAR_FACE) + if(new_human.disabilities & NEARSIGHTED) + new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/hud/health/prescription(new_human), WEAR_EYES) + else + new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/hud/health(new_human), WEAR_EYES) + //head + new_human.equip_to_slot_or_del(new /obj/item/clothing/head/beret/jan, WEAR_HEAD) + //body + var/obj/item/clothing/under/colonist/clf/CLF = new() + var/obj/item/clothing/accessory/storage/webbing/webbing = new() + CLF.attach_accessory(new_human, webbing) + new_human.equip_to_slot_or_del(CLF, WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/mar40/extended, WEAR_IN_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/mar40/extended, WEAR_IN_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/mar40/extended, WEAR_IN_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/militia, WEAR_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/mar40/extended, WEAR_IN_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/mar40/extended, WEAR_IN_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/rifle/mar40/carbine, WEAR_J_STORE) + //waist + new_human.equip_to_slot_or_del(new /obj/item/storage/belt/medical/full/with_suture_and_graft, WEAR_WAIST) + new_human.equip_to_slot_or_del(new /obj/item/device/healthanalyzer(new_human), WEAR_IN_BELT) + //limbs + new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/combat, WEAR_HANDS) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/combat, WEAR_FEET) + //pockets + new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/tools/synth, WEAR_L_STORE) + new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/construction/full_barbed_wire, WEAR_R_STORE) + //*****************************************************************************************************/ /datum/equipment_preset/clf/commander @@ -918,7 +977,7 @@ new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/smartgun/clf(new_human), WEAR_J_STORE) new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/black(new_human), WEAR_HANDS) new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/smartgunner/clf/full(new_human), WEAR_WAIST) - new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/upp(new_human), WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/upp/knife(new_human), WEAR_FEET) new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/survival/full(new_human), WEAR_L_STORE) new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/firstaid/full(new_human), WEAR_R_STORE) diff --git a/code/modules/gear_presets/cmb.dm b/code/modules/gear_presets/cmb.dm index aa2c7438ba75..45c06776a4a8 100644 --- a/code/modules/gear_presets/cmb.dm +++ b/code/modules/gear_presets/cmb.dm @@ -51,7 +51,7 @@ var/obj/item/clothing/under/uniform = new_human.w_uniform if(istype(uniform)) uniform.has_sensor = UNIFORM_HAS_SENSORS - uniform.sensor_faction = FACTION_USCM + uniform.sensor_faction = FACTION_MARINE return ..() //*****************************************************************************************************/ @@ -96,7 +96,7 @@ new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/revolver/cmb/normalpoint, WEAR_IN_ACCESSORY) new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/revolver/cmb/normalpoint, WEAR_IN_ACCESSORY) new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/shotgun/pump/dual_tube/cmb, WEAR_J_STORE) - new_human.equip_to_slot_or_del(new /obj/item/handcuffs/zip, WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/restraint/handcuffs/zip, WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/explosive/grenade/flashbang, WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/shotgun/large, WEAR_R_STORE) new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/handful/shotgun/buckshot, WEAR_IN_R_STORE) @@ -112,8 +112,8 @@ new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/pistol/highpower, WEAR_IN_ACCESSORY) new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/pistol/highpower, WEAR_IN_ACCESSORY) new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/shotgun/pump/dual_tube/cmb, WEAR_J_STORE) - new_human.equip_to_slot_or_del(new /obj/item/handcuffs/zip, WEAR_IN_BACK) - new_human.equip_to_slot_or_del(new /obj/item/explosive/plastic/breaching_charge, WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/restraint/handcuffs/zip, WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/explosive/plastic/breaching_charge/rubber, WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/shotgun/large, WEAR_R_STORE) new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/handful/shotgun/buckshot, WEAR_IN_R_STORE) new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/handful/shotgun/buckshot, WEAR_IN_R_STORE) @@ -128,7 +128,7 @@ new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/revolver/cmb/normalpoint, WEAR_IN_ACCESSORY) new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/revolver/cmb/normalpoint, WEAR_IN_ACCESSORY) new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/smg/mp5, WEAR_J_STORE) - new_human.equip_to_slot_or_del(new /obj/item/handcuffs/zip, WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/restraint/handcuffs/zip, WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/device/motiondetector, WEAR_L_HAND) new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/magazine/large, WEAR_R_STORE) new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/smg/mp5, WEAR_IN_R_STORE) @@ -162,7 +162,7 @@ new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/revolver/cmb/normalpoint, WEAR_IN_ACCESSORY) new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/holobadge/cord, WEAR_ACCESSORY) new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/cigarette/cigar, WEAR_FACE) - new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/CMB, WEAR_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/CMB/marshal, WEAR_JACKET) new_human.equip_to_slot_or_del(new /obj/item/device/binoculars/range, WEAR_IN_JACKET) new_human.equip_to_slot_or_del(new /obj/item/weapon/telebaton, WEAR_IN_JACKET) new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/shotgun/pump/dual_tube/cmb/m3717, WEAR_J_STORE) @@ -242,7 +242,6 @@ new_human.set_species(SYNTH_COLONY) /datum/equipment_preset/cmb/synth/load_gear(mob/living/carbon/human/new_human) - load_name(new_human) //backpack new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/security, WEAR_BACK) new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/revolver/cmb/normalpoint, WEAR_IN_BACK) @@ -279,8 +278,8 @@ new_human.equip_to_slot_or_del(new /obj/item/storage/belt/medical/lifesaver/full, WEAR_L_HAND) //pouches new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/general/large, WEAR_L_STORE) - new_human.equip_to_slot_or_del(new /obj/item/handcuffs/zip, WEAR_IN_L_STORE) - new_human.equip_to_slot_or_del(new /obj/item/handcuffs/zip, WEAR_IN_L_STORE) + new_human.equip_to_slot_or_del(new /obj/item/restraint/handcuffs/zip, WEAR_IN_L_STORE) + new_human.equip_to_slot_or_del(new /obj/item/restraint/handcuffs/zip, WEAR_IN_L_STORE) new_human.equip_to_slot_or_del(new /obj/item/explosive/grenade/flashbang, WEAR_IN_L_STORE) new_human.equip_to_slot_or_del(new /obj/item/explosive/grenade/custom/teargas, WEAR_IN_L_STORE) new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/tools/tactical, WEAR_R_STORE) @@ -312,7 +311,7 @@ //clothes new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/CMB/ICC, WEAR_L_EAR) - new_human.equip_to_slot_or_del(new /obj/item/clothing/under/liaison_suit/formal, WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/liaison_suit/black, WEAR_BODY) new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/storage/holster, WEAR_ACCESSORY) new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/pistol/mod88, WEAR_IN_ACCESSORY) new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/pistol/mod88, WEAR_IN_ACCESSORY) @@ -372,7 +371,7 @@ //clothes new_human.equip_to_slot_or_del(new headset_type, WEAR_L_EAR) new_human.equip_to_slot_or_del(new /obj/item/device/flashlight/pen, WEAR_R_EAR) - new_human.equip_to_slot_or_del(new /obj/item/clothing/under/liaison_suit/suspenders, WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/liaison_suit/blue, WEAR_BODY) new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/health/ceramic_plate, WEAR_ACCESSORY) new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/vest, WEAR_JACKET) new_human.equip_to_slot_or_del(new /obj/item/device/flashlight, WEAR_J_STORE) @@ -461,9 +460,6 @@ /datum/equipment_preset/uscm/cmb/leader name = "USCM Anchorpoint Station Team Leader" flags = EQUIPMENT_PRESET_EXTRA|EQUIPMENT_PRESET_MARINE -/datum/equipment_preset/uscm/cmb/leader/New() - . = ..() - assignment = "Anchorpoint Station Marine Team Leader" rank = JOB_SQUAD_LEADER paygrade = PAY_SHORT_ME6 @@ -486,7 +482,7 @@ new_human.equip_to_slot_or_del(new /obj/item/reagent_container/hypospray/autoinjector/emergency, WEAR_IN_HELMET) new_human.equip_to_slot_or_del(new /obj/item/stack/medical/bruise_pack, WEAR_IN_HELMET) new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/almayer/marine/cryo/lead, WEAR_L_EAR) - new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/leader, WEAR_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/medium/leader, WEAR_JACKET) new_human.equip_to_slot_or_del(new /obj/item/device/binoculars/range/designator, WEAR_IN_JACKET) new_human.equip_to_slot_or_del(new /obj/item/explosive/plastic/breaching_charge, WEAR_IN_JACKET) new_human.equip_to_slot_or_del(new /obj/item/explosive/grenade/high_explosive/m15, WEAR_IN_JACKET) @@ -506,9 +502,6 @@ /datum/equipment_preset/uscm/cmb/rto name = "USCM Anchorpoint Station Technical Specialist" flags = EQUIPMENT_PRESET_EXTRA|EQUIPMENT_PRESET_MARINE -/datum/equipment_preset/uscm/cmb/rto/New() - . = ..() - assignment = "Anchorpoint Station Marine Technical Specialist" rank = JOB_SQUAD_TEAM_LEADER paygrade = PAY_SHORT_ME4 @@ -529,7 +522,7 @@ new_human.equip_to_slot_or_del(new /obj/item/stack/medical/bruise_pack, WEAR_IN_HELMET) new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/welding/superior, WEAR_EYES) new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/almayer/marine/cryo/tl, WEAR_L_EAR) - new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/rto, WEAR_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/medium/rto, WEAR_JACKET) new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/m41aMK1/ap, WEAR_IN_JACKET) new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/m41aMK1/ap, WEAR_IN_JACKET) new_human.equip_to_slot_or_del(new /obj/item/device/binoculars/range/designator, WEAR_IN_JACKET) @@ -551,9 +544,6 @@ /datum/equipment_preset/uscm/cmb/medic name = "USCM Anchorpoint Station Corpsman" flags = EQUIPMENT_PRESET_EXTRA|EQUIPMENT_PRESET_MARINE -/datum/equipment_preset/uscm/cmb/medic/New() - . = ..() - assignment = "Anchorpoint Station Hospital Corpsman" rank = JOB_SQUAD_MEDIC paygrade = PAY_SHORT_ME3 @@ -612,9 +602,6 @@ /datum/equipment_preset/uscm/cmb/smartgunner name = "USCM Anchorpoint Station Smartgunner" flags = EQUIPMENT_PRESET_EXTRA|EQUIPMENT_PRESET_MARINE -/datum/equipment_preset/uscm/cmb/smartgunner/New() - . = ..() - assignment = "Anchorpoint Station Marine Smartgunner" rank = JOB_SQUAD_SMARTGUN paygrade = PAY_SHORT_ME3 diff --git a/code/modules/gear_presets/contractor.dm b/code/modules/gear_presets/contractor.dm index ea77fe4a4d0f..f49b78609945 100644 --- a/code/modules/gear_presets/contractor.dm +++ b/code/modules/gear_presets/contractor.dm @@ -4,7 +4,7 @@ rank = JOB_CONTRACTOR idtype = /obj/item/card/id/data faction = FACTION_CONTRACTOR - faction_group = FACTION_LIST_ERT + faction_group = list(FACTION_CONTRACTOR) languages = list(LANGUAGE_ENGLISH, LANGUAGE_SPANISH, LANGUAGE_RUSSIAN) var/human_versus_human = FALSE var/headset_type = /obj/item/device/radio/headset/distress/contractor @@ -61,7 +61,7 @@ /datum/equipment_preset/contractor/duty/standard name = "Military Contractor (Standard)" - paygrade = "VAI" + paygrade = PAY_SHORT_VAI_S role_comm_title = "Merc" flags = EQUIPMENT_PRESET_EXTRA assignment = "VAIPO Mercenary" @@ -160,7 +160,7 @@ /datum/equipment_preset/contractor/duty/heavy name = "Military Contractor (Machinegunner)" - paygrade = "VAI-G" + paygrade = PAY_SHORT_VAI_G role_comm_title = "MG" flags = EQUIPMENT_PRESET_EXTRA @@ -205,7 +205,7 @@ //*****************************************************************************************************/ /datum/equipment_preset/contractor/duty/engi name = "Military Contractor (Engineer)" - paygrade = "VAI-E" + paygrade = PAY_SHORT_VAI_E role_comm_title = "Eng" flags = EQUIPMENT_PRESET_EXTRA @@ -252,7 +252,7 @@ /datum/equipment_preset/contractor/duty/medic name = "Military Contractor (Medic)" - paygrade = "VAI-M" + paygrade = PAY_SHORT_VAI_M role_comm_title = "Med" flags = EQUIPMENT_PRESET_EXTRA @@ -289,16 +289,16 @@ new_human.equip_to_slot_or_del(new /obj/item/storage/firstaid/adv, WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/roller, WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/roller/surgical, WEAR_IN_BACK) - new_human.equip_to_slot_or_del(new /obj/item/tool/surgery/synthgraft, WEAR_IN_BACK) //Line in vest. new_human.equip_to_slot_or_del(new /obj/item/device/healthanalyzer, WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/storage/box/packet/smoke, WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/mar40/extended, WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/mar40, WEAR_IN_BACK) //*****************************************************************************************************/ /datum/equipment_preset/contractor/duty/leader name = "Military Contractor (Leader)" - paygrade = "VAI-L" + paygrade = PAY_SHORT_VAI_L role_comm_title = "TL" flags = EQUIPMENT_PRESET_EXTRA @@ -348,7 +348,7 @@ //*****************************************************************************************************/ /datum/equipment_preset/contractor/duty/synth name = "Military Contractor (Synthetic)" - paygrade = "VAI-S" + paygrade = PAY_SHORT_VAI_SN role_comm_title = "Syn" flags = EQUIPMENT_PRESET_EXTRA @@ -395,7 +395,6 @@ new_human.set_species(SYNTH_GEN_THREE) /datum/equipment_preset/contractor/duty/synth/load_gear(mob/living/carbon/human/new_human) - load_name(new_human) //back new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/marine/smartpack/black, WEAR_BACK) new_human.equip_to_slot_or_del(new /obj/item/device/defibrillator, WEAR_IN_BACK) //1 @@ -439,7 +438,7 @@ /datum/equipment_preset/contractor/covert/standard name = "Military Contractor (Covert Standard)" - paygrade = "VAI" + paygrade = PAY_SHORT_VAI_S role_comm_title = "Merc" flags = EQUIPMENT_PRESET_EXTRA @@ -458,7 +457,7 @@ new_human.equip_to_slot_or_del(new /obj/item/device/binoculars/range, WEAR_IN_JACKET) new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/m4a3/m1911/socom, WEAR_WAIST) new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/veteran, WEAR_HANDS) - new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/marine/covert, WEAR_HEAD) + new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/marine/sof, WEAR_HEAD) new_human.equip_to_slot_or_del(new /obj/item/prop/helmetgarb/helmet_nvg/marsoc, WEAR_IN_HELMET) new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/veteran/pmc/knife, WEAR_FEET) new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses/sechud/tactical, WEAR_EYES) @@ -540,7 +539,7 @@ /datum/equipment_preset/contractor/covert/heavy name = "Military Contractor (Covert Machinegunner)" - paygrade = "VAI-G" + paygrade = PAY_SHORT_VAI_G role_comm_title = "MG" flags = EQUIPMENT_PRESET_EXTRA @@ -563,7 +562,7 @@ new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/m4a3/m1911/socom, WEAR_WAIST) new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/veteran, WEAR_HANDS) new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/pmc, WEAR_FACE) - new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/marine/covert, WEAR_HEAD) + new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/marine/sof, WEAR_HEAD) new_human.equip_to_slot_or_del(new /obj/item/prop/helmetgarb/helmet_nvg/marsoc, WEAR_IN_HELMET) new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses/sechud/tactical, WEAR_EYES) new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/veteran/pmc/knife, WEAR_FEET) @@ -587,7 +586,7 @@ //*****************************************************************************************************/ /datum/equipment_preset/contractor/covert/engi name = "Military Contractor (Covert Engineer)" - paygrade = "VAI-E" + paygrade = PAY_SHORT_VAI_E role_comm_title = "Eng" flags = EQUIPMENT_PRESET_EXTRA @@ -607,7 +606,7 @@ new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/rifle/mar40/carbine/tactical, WEAR_J_STORE) new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/veteran, WEAR_HANDS) new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/pmc, WEAR_FACE) - new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/marine/covert, WEAR_HEAD) + new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/marine/sof, WEAR_HEAD) new_human.equip_to_slot_or_del(new /obj/item/prop/helmetgarb/helmet_nvg/marsoc, WEAR_IN_HELMET) new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/veteran/pmc/knife, WEAR_FEET) new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/welding/superior, WEAR_EYES) @@ -635,7 +634,7 @@ /datum/equipment_preset/contractor/covert/medic name = "Military Contractor (Covert Medic)" - paygrade = "VAI-M" + paygrade = PAY_SHORT_VAI_M role_comm_title = "Med" flags = EQUIPMENT_PRESET_EXTRA @@ -654,7 +653,7 @@ new_human.equip_to_slot_or_del(new /obj/item/device/binoculars/range, WEAR_IN_JACKET) new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/veteran, WEAR_HANDS) new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/pmc, WEAR_FACE) - new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/marine/covert, WEAR_HEAD) + new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/marine/sof, WEAR_HEAD) new_human.equip_to_slot_or_del(new /obj/item/prop/helmetgarb/helmet_nvg/marsoc, WEAR_IN_HELMET) new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/veteran/pmc/knife, WEAR_FEET) new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/hud/health, WEAR_EYES) @@ -682,7 +681,7 @@ /datum/equipment_preset/contractor/covert/leader name = "Military Contractor (Covert Leader)" - paygrade = "VAI-L" + paygrade = PAY_SHORT_VAI_L role_comm_title = "TL" flags = EQUIPMENT_PRESET_EXTRA @@ -708,7 +707,7 @@ new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/m4a3/m1911/socom, WEAR_WAIST) new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/veteran, WEAR_HANDS) new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/pmc, WEAR_FACE) - new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/marine/covert, WEAR_HEAD) + new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/marine/sof, WEAR_HEAD) new_human.equip_to_slot_or_del(new /obj/item/prop/helmetgarb/helmet_nvg/marsoc, WEAR_IN_HELMET) new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/veteran/pmc/knife, WEAR_FEET) new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/hud/sensor, WEAR_EYES) @@ -733,7 +732,7 @@ //*****************************************************************************************************/ /datum/equipment_preset/contractor/covert/synth name = "Military Contractor (Covert Synthetic)" - paygrade = "VAI-S" + paygrade = PAY_SHORT_VAI_SN role_comm_title = "Syn" flags = EQUIPMENT_PRESET_EXTRA @@ -782,7 +781,6 @@ new_human.set_species(SYNTH_GEN_THREE) /datum/equipment_preset/contractor/covert/synth/load_gear(mob/living/carbon/human/new_human) - load_name(new_human) //back new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/marine/smartpack/black, WEAR_BACK) new_human.equip_to_slot_or_del(new /obj/item/device/defibrillator, WEAR_IN_BACK) //1 @@ -794,7 +792,7 @@ new_human.equip_to_slot_or_del(new headset_type, WEAR_L_EAR) new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/night/experimental_mesons, WEAR_EYES) new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/pmc, WEAR_FACE) - new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/marine/covert, WEAR_HEAD) + new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/marine/sof, WEAR_HEAD) new_human.equip_to_slot_or_del(new /obj/item/prop/helmetgarb/helmet_nvg/cosmetic, WEAR_IN_HELMET) //body new_human.equip_to_slot_or_del(new /obj/item/clothing/under/colonist/wy_davisone, WEAR_BODY) diff --git a/code/modules/gear_presets/corpses.dm b/code/modules/gear_presets/corpses.dm index ca2b2e2ab52d..7bf9592a6209 100644 --- a/code/modules/gear_presets/corpses.dm +++ b/code/modules/gear_presets/corpses.dm @@ -48,76 +48,12 @@ /datum/equipment_preset/corpse/load_gear(mob/living/carbon/human/new_human) new_human.equip_to_slot_or_del(new /obj/item/clothing/under/colonist(new_human), WEAR_BODY) new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel(new_human), WEAR_BACK) + new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress(new_human), WEAR_L_EAR) add_random_survivor_equipment(new_human) - add_survivor_weapon_civilian(new_human) add_survivor_weapon_pistol(new_human) - new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine(new_human), WEAR_FEET) - -//*****************************************************************************************************/ - -/datum/equipment_preset/corpse/realpirate - name = "Corpse - Pirate" - access = list( - ACCESS_CIVILIAN_PUBLIC, - ACCESS_CIVILIAN_LOGISTICS, - ACCESS_CIVILIAN_ENGINEERING, - ACCESS_CIVILIAN_RESEARCH, - ACCESS_CIVILIAN_BRIG, - ACCESS_CIVILIAN_MEDBAY, - ACCESS_CIVILIAN_COMMAND, - ACCESS_ILLEGAL_PIRATE, - ) - -/datum/equipment_preset/corpse/realpirate/load_gear(mob/living/carbon/human/new_human) - new_human.equip_to_slot_or_del(new /obj/item/clothing/under/pirate(new_human), WEAR_BODY) - if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD]) - add_ice_colony_survivor_equipment(new_human) - else - new_human.equip_to_slot_or_del(new /obj/item/device/radio(new_human), WEAR_IN_BACK) - new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/jackboots(new_human), WEAR_FEET) - new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/eyepatch(new_human), WEAR_EYES) - new_human.equip_to_slot_or_del(new /obj/item/clothing/head/bandana(new_human), WEAR_HEAD) //*****************************************************************************************************/ -/datum/equipment_preset/corpse/realpirate/ranged - name = "Corpse - Pirate Gunner" - -/datum/equipment_preset/corpse/realpirate/ranged/load_gear(mob/living/carbon/human/new_human) - new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/pirate(new_human), WEAR_JACKET) - new_human.equip_to_slot_or_del(new /obj/item/clothing/head/pirate(new_human), WEAR_HEAD) - . = ..() - -//*****************************************************************************************************/ - -/datum/equipment_preset/corpse/russian - name = "Corpse - Russian" - access = list( - ACCESS_CIVILIAN_PUBLIC, - ACCESS_CIVILIAN_LOGISTICS, - ACCESS_CIVILIAN_ENGINEERING, - ACCESS_CIVILIAN_RESEARCH, - ACCESS_CIVILIAN_BRIG, - ACCESS_CIVILIAN_MEDBAY, - ACCESS_CIVILIAN_COMMAND, - ) - -/datum/equipment_preset/corpse/russian - -/datum/equipment_preset/corpse/russian/load_gear(mob/living/carbon/human/new_human) - - new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/veteran/soviet_uniform_01(new_human), WEAR_BODY) - new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/snow_suit/soviet(new_human), WEAR_JACKET) - new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/sec(new_human), WEAR_BACK) - new_human.equip_to_slot_or_del(new /obj/item/storage/belt/marine(new_human), WEAR_WAIST) - new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel(new_human), WEAR_BACK) - new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/upp(new_human), WEAR_FEET) - new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/rebreather/scarf(new_human), WEAR_FACE) - new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine(new_human), WEAR_HANDS) - if(prob(25)) - new_human.equip_to_slot_or_del(new /obj/item/clothing/head/bearpelt(new_human), WEAR_HEAD) - else - new_human.equip_to_slot_or_del(new /obj/item/clothing/head/ushanka(new_human), WEAR_HEAD) //*****************************************************************************************************/ // Civilians @@ -127,16 +63,12 @@ assignment = "Prisoner" /datum/equipment_preset/corpse/prisoner/load_gear(mob/living/carbon/human/new_human) + add_ice_colony_survivor_equipment(new_human) new_human.equip_to_slot_or_del(new /obj/item/clothing/under/color/orange(new_human), WEAR_BODY) - if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD]) - add_ice_colony_survivor_equipment(new_human) - else - new_human.equip_to_slot_or_del(new /obj/item/device/radio(new_human), WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel(new_human), WEAR_BACK) - new_human.equip_to_slot_or_del(new /obj/item/attachable/bayonet(new_human.back), WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/attachable/bayonet(new_human), WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/device/radio(new_human), WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/orange(new_human), WEAR_FEET) - new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/orange(new_human), WEAR_FEET) //*****************************************************************************************************/ @@ -146,105 +78,82 @@ access = list(ACCESS_CIVILIAN_PUBLIC) /datum/equipment_preset/corpse/chef/load_gear(mob/living/carbon/human/new_human) + add_ice_colony_survivor_equipment(new_human) new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/chef(new_human), WEAR_BODY) - if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD]) - add_ice_colony_survivor_equipment(new_human) - else - new_human.equip_to_slot_or_del(new /obj/item/device/radio(new_human), WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress(new_human), WEAR_L_EAR) new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/chef/classic(new_human), WEAR_JACKET) new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/black(new_human), WEAR_FEET) new_human.equip_to_slot_or_del(new /obj/item/clothing/head/chefhat(new_human), WEAR_HEAD) - new_human.equip_to_slot_or_del(new /obj/item/storage/backpack(new_human), WEAR_BACK) + new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel(new_human), WEAR_BACK) + new_human.equip_to_slot_or_del(new /obj/item/device/radio(new_human), WEAR_IN_BACK) //*****************************************************************************************************/ /datum/equipment_preset/corpse/doctor name = "Corpse - Doctor" - assignment = "Medical Doctor" + assignment = "Doctor" + idtype = /obj/item/card/id/silver/clearance_badge xenovictim = TRUE access = list(ACCESS_CIVILIAN_PUBLIC, ACCESS_CIVILIAN_RESEARCH, ACCESS_CIVILIAN_MEDBAY) /datum/equipment_preset/corpse/doctor/load_gear(mob/living/carbon/human/new_human) - new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress(new_human), WEAR_L_EAR) + add_ice_colony_survivor_equipment(new_human) new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/medical(new_human), WEAR_BODY) - if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD]) - add_ice_colony_survivor_equipment(new_human) - else - new_human.equip_to_slot_or_del(new /obj/item/device/radio(new_human), WEAR_IN_BACK) - new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/med(new_human), WEAR_BACK) + new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress(new_human), WEAR_L_EAR) + new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/hud/health(new_human), WEAR_EYES) new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET) new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/latex(new_human), WEAR_HANDS) new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/surgical(new_human), WEAR_FACE) - new_human.equip_to_slot_or_del(new /obj/item/attachable/bayonet(new_human.back), WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/med(new_human), WEAR_BACK) new_human.equip_to_slot_or_del(new /obj/item/device/radio(new_human), WEAR_IN_BACK) - new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/chef/classic(new_human), WEAR_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/chef/classic/medical(new_human), WEAR_JACKET) add_random_survivor_medical_gear(new_human) //*****************************************************************************************************/ /datum/equipment_preset/corpse/engineer name = "Corpse - Engineer" - assignment = "Station Engineer" + assignment = "Engineer" xenovictim = TRUE access = list(ACCESS_CIVILIAN_PUBLIC, ACCESS_CIVILIAN_LOGISTICS, ACCESS_CIVILIAN_ENGINEERING) /datum/equipment_preset/corpse/engineer/load_gear(mob/living/carbon/human/new_human) + add_ice_colony_survivor_equipment(new_human) new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/engineer(new_human), WEAR_BODY) - if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD]) - add_ice_colony_survivor_equipment(new_human) - else - new_human.equip_to_slot_or_del(new /obj/item/device/radio(new_human), WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress(new_human), WEAR_L_EAR) new_human.equip_to_slot_or_del(new /obj/item/storage/belt/utility/full(new_human), WEAR_WAIST) new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/eng(new_human), WEAR_BACK) - new_human.equip_to_slot_or_del(new /obj/item/device/radio(new_human), WEAR_IN_BACK) - new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress(new_human), WEAR_L_EAR) new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/welding(new_human), WEAR_EYES) new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/insulated(new_human), WEAR_HANDS) - new_human.equip_to_slot_or_del(new /obj/item/attachable/bayonet(new_human.back), WEAR_IN_BACK) - - - if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD]) - add_ice_colony_survivor_equipment(new_human) - else - new_human.equip_to_slot_or_del(new /obj/item/device/radio(new_human), WEAR_IN_BACK) - new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET) - new_human.equip_to_slot_or_del(new /obj/item/device/flashlight/lantern(new_human.back), WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/clothing/head/hardhat(new_human), WEAR_HEAD) + new_human.equip_to_slot_or_del(new /obj/item/device/radio(new_human), WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/hazardvest/(new_human), WEAR_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET) //*****************************************************************************************************/ /datum/equipment_preset/corpse/scientist name = "Corpse - Scientist" assignment = "Scientist" + idtype = /obj/item/card/id/silver/clearance_badge/scientist xenovictim = TRUE - access = list(ACCESS_CIVILIAN_PUBLIC, ACCESS_CIVILIAN_LOGISTICS, ACCESS_CIVILIAN_ENGINEERING, ACCESS_CIVILIAN_RESEARCH, ACCESS_CIVILIAN_MEDBAY) + access = list(ACCESS_CIVILIAN_PUBLIC, ACCESS_CIVILIAN_LOGISTICS, ACCESS_CIVILIAN_RESEARCH, ACCESS_CIVILIAN_MEDBAY) /datum/equipment_preset/corpse/scientist/load_gear(mob/living/carbon/human/new_human) - + add_ice_colony_survivor_equipment(new_human) new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/virologist(new_human), WEAR_BODY) - if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD]) - add_ice_colony_survivor_equipment(new_human) - else - new_human.equip_to_slot_or_del(new /obj/item/device/radio(new_human), WEAR_IN_BACK) - new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel(new_human), WEAR_BACK) - new_human.equip_to_slot_or_del(new /obj/item/clothing/head/surgery/green(new_human), WEAR_HEAD) new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress(new_human), WEAR_L_EAR) - new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/labcoat/virologist(new_human), WEAR_JACKET) - new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/green(new_human), WEAR_HANDS) + new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/chem(new_human), WEAR_BACK) + new_human.equip_to_slot_or_del(new /obj/item/clothing/head/surgery/green(new_human), WEAR_HEAD) + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/labcoat(new_human), WEAR_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/paper/research_notes/good(new_human), WEAR_IN_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/reagent_container/glass/beaker/vial/random/good(new_human), WEAR_IN_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/latex(new_human), WEAR_HANDS) new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/surgical(new_human), WEAR_FACE) new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/science(new_human), WEAR_EYES) - new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/chem(new_human), WEAR_BACK) - new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/green(new_human), WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET) new_human.equip_to_slot_or_del(new /obj/item/device/radio(new_human), WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/device/motiondetector(new_human), WEAR_IN_BACK) - new_human.equip_to_slot_or_del(new /obj/item/attachable/bayonet(new_human.back), WEAR_IN_BACK) - if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD]) - add_ice_colony_survivor_equipment(new_human) - else - new_human.equip_to_slot_or_del(new /obj/item/device/radio(new_human), WEAR_IN_BACK) - new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/labcoat(new_human), WEAR_JACKET) - new_human.equip_to_slot_or_del(new /obj/item/attachable/bayonet(new_human.back), WEAR_IN_BACK) - new_human.equip_to_slot_or_del(new /obj/item/paper/research_notes/good(new_human), WEAR_IN_JACKET) - new_human.equip_to_slot_or_del(new /obj/item/reagent_container/glass/beaker/vial/random/good(new_human), WEAR_IN_JACKET) //*****************************************************************************************************/ @@ -255,34 +164,32 @@ access = list(ACCESS_CIVILIAN_PUBLIC, ACCESS_CIVILIAN_LOGISTICS, ACCESS_CIVILIAN_ENGINEERING) /datum/equipment_preset/corpse/miner/load_gear(mob/living/carbon/human/new_human) - new_human.equip_to_slot_or_del(new /obj/item/clothing/under/colonist(new_human), WEAR_BODY) - if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD]) - add_ice_colony_survivor_equipment(new_human) - else - new_human.equip_to_slot_or_del(new /obj/item/device/radio(new_human), WEAR_IN_BACK) - new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/black(new_human), WEAR_HANDS) + add_ice_colony_survivor_equipment(new_human) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/miner(new_human), WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress(new_human), WEAR_L_EAR) new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/industrial(new_human), WEAR_BACK) - new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/black(new_human), WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/device/radio(new_human), WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/device/flashlight/lantern(new_human), WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/hazardvest/yellow(new_human), WEAR_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/tools/full(new_human), WEAR_R_STORE) + new_human.equip_to_slot_or_del(new /obj/item/clothing/head/hardhat/orange(new_human), WEAR_HEAD) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET) //*****************************************************************************************************/ /datum/equipment_preset/corpse/security name = "Corpse - Security" - assignment = "Deputy" + assignment = "Security Officer" xenovictim = TRUE access = list(ACCESS_CIVILIAN_PUBLIC, ACCESS_CIVILIAN_BRIG, ACCESS_CIVILIAN_MEDBAY, ACCESS_CIVILIAN_COMMAND) /datum/equipment_preset/corpse/security/load_gear(mob/living/carbon/human/new_human) - + add_ice_colony_survivor_equipment(new_human) new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/security(new_human), WEAR_BODY) - if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD]) - add_ice_colony_survivor_equipment(new_human) - else - new_human.equip_to_slot_or_del(new /obj/item/device/radio(new_human), WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress(new_human), WEAR_L_EAR) new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/sec(new_human), WEAR_BACK) new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/vest/security(new_human), WEAR_JACKET) new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet(new_human), WEAR_HEAD) - new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress(new_human), WEAR_L_EAR) new_human.equip_to_slot_or_del(new /obj/item/storage/belt/security/MP/full(new_human), WEAR_WAIST) new_human.equip_to_slot_or_del(new /obj/item/attachable/bayonet(new_human.back), WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/device/radio(new_human), WEAR_IN_BACK) @@ -293,12 +200,13 @@ new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine(new_human), WEAR_HANDS) new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/jackboots(new_human), WEAR_FEET) - //*****************************************************************************************************/ -/datum/equipment_preset/corpse/security/marshal - name = "Corpse - Colonial Marshal" - assignment = "Colonial Marshal" +/datum/equipment_preset/corpse/security/cmb + name = "Corpse - Colonial Marshal Deputy" + rank = JOB_CMB + paygrade = PAY_SHORT_CMBD + idtype = /obj/item/card/id/deputy xenovictim = TRUE access = list( ACCESS_CIVILIAN_PUBLIC, @@ -310,14 +218,10 @@ ACCESS_CIVILIAN_COMMAND, ) -/datum/equipment_preset/corpse/security/marshal/load_gear(mob/living/carbon/human/new_human) - - new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress(new_human), WEAR_L_EAR) +/datum/equipment_preset/corpse/security/cmb/load_gear(mob/living/carbon/human/new_human) + add_ice_colony_survivor_equipment(new_human) + new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/CMB/limited(new_human), WEAR_L_EAR) new_human.equip_to_slot_or_del(new /obj/item/clothing/under/CM_uniform(new_human), WEAR_BODY) - if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD]) - add_ice_colony_survivor_equipment(new_human) - else - new_human.equip_to_slot_or_del(new /obj/item/device/radio(new_human), WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/sec(new_human), WEAR_BACK) new_human.equip_to_slot_or_del(new /obj/item/clothing/head/CMB(new_human), WEAR_HEAD) new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/m4a3/heavy(new_human), WEAR_WAIST) @@ -327,19 +231,21 @@ new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses/sechud(new_human), WEAR_EYES) new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/CMB(new_human), WEAR_JACKET) new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET) - new_human.equip_to_slot_or_del(new /obj/item/attachable/bayonet(new_human.back), WEAR_IN_BACK) - new_human.equip_to_slot_or_del(new /obj/item/device/radio(new_human), WEAR_IN_BACK) - . = ..() //*****************************************************************************************************/ -/datum/equipment_preset/corpse/security/liaison +/datum/equipment_preset/corpse/liaison name = "Corpse - Corporate Liaison" - assignment = "Corporate Liaison" + assignment = JOB_EXECUTIVE + rank = JOB_EXECUTIVE + faction_group = FACTION_LIST_WY + paygrade = PAY_SHORT_WYC3 + idtype = /obj/item/card/id/silver/clearance_badge/cl xenovictim = TRUE - paygrade = PAY_SHORT_WYC2 access = list( + ACCESS_WY_COLONIAL, + ACCESS_WY_EXEC, ACCESS_CIVILIAN_PUBLIC, ACCESS_CIVILIAN_LOGISTICS, ACCESS_CIVILIAN_ENGINEERING, @@ -349,29 +255,36 @@ ACCESS_CIVILIAN_COMMAND, ) -/datum/equipment_preset/corpse/security/liaison/load_gear(mob/living/carbon/human/new_human) - new_human.equip_to_slot_or_del(new /obj/item/clothing/under/liaison_suit/formal(new_human), WEAR_BODY) - if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD]) - add_ice_colony_survivor_equipment(new_human) - else - new_human.equip_to_slot_or_del(new /obj/item/device/radio(new_human), WEAR_IN_BACK) - new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/vest(new_human), WEAR_JACKET) +/datum/equipment_preset/corpse/liaison/load_gear(mob/living/carbon/human/new_human) + var/random = rand(1,4) + add_ice_colony_survivor_equipment(new_human) + new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses/aviator(new_human), WEAR_EYES) new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/m4a3/mod88(new_human), WEAR_WAIST) new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/WY(new_human), WEAR_L_EAR) - new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel(new_human), WEAR_BACK) + new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/lockable(new_human), WEAR_BACK) new_human.equip_to_slot_or_del(new /obj/item/device/radio(new_human), WEAR_IN_BACK) - new_human.equip_to_slot_or_del(new /obj/item/attachable/bayonet(new_human.back), WEAR_IN_BACK) add_random_cl_survivor_loot(new_human) - new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/centcom(new_human), WEAR_FEET) - if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD]) - add_ice_colony_survivor_equipment(new_human) - else - new_human.equip_to_slot_or_del(new /obj/item/attachable/bayonet(new_human.back), WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/laceup(new_human), WEAR_FEET) + + switch(random) + if(1) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/liaison_suit/blue(new_human), WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/vest(new_human), WEAR_JACKET) + if(2) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/liaison_suit/brown(new_human), WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/vest(new_human), WEAR_JACKET) + if(3) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/liaison_suit/corporate_formal(new_human), WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/vest(new_human), WEAR_JACKET) + if(4) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/liaison_suit/black(new_human), WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/vest(new_human), WEAR_JACKET) + . = ..() //*****************************************************************************************************/ -/datum/equipment_preset/corpse/prison_security +/datum/equipment_preset/corpse/prison_guard name = "Corpse - Prison Guard" assignment = "Prison Guard" access = list( @@ -384,14 +297,12 @@ ACCESS_CIVILIAN_COMMAND, ) -/datum/equipment_preset/corpse/prison_security/load_gear(mob/living/carbon/human/new_human) - +/datum/equipment_preset/corpse/prison_guard/load_gear(mob/living/carbon/human/new_human) + add_ice_colony_survivor_equipment(new_human) new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/security(new_human), WEAR_BODY) - if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD]) - add_ice_colony_survivor_equipment(new_human) - else - new_human.equip_to_slot_or_del(new /obj/item/device/radio(new_human), WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress(new_human), WEAR_L_EAR) new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/sec(new_human), WEAR_BACK) + new_human.equip_to_slot_or_del(new /obj/item/device/radio(new_human), WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/vest/security(new_human), WEAR_JACKET) new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet(new_human), WEAR_HEAD) new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine(new_human), WEAR_HANDS) @@ -400,11 +311,21 @@ //*****************************************************************************************************/ /////////////////Officers////////////////////// -/datum/equipment_preset/corpse/bridgeofficer - name = "Corpse - Staff Officer" - idtype = /obj/item/card/id/general - assignment = "Staff Officer" +/datum/equipment_preset/corpse/manager + name = "Corpse - Colony Division Manager" + assignment = "Colonial Division Manager" + rank = JOB_DIVISION_MANAGER + faction_group = FACTION_LIST_WY + paygrade = PAY_SHORT_WYC8 access = list( + ACCESS_WY_GENERAL, + ACCESS_WY_COLONIAL, + ACCESS_WY_MEDICAL, + ACCESS_WY_SECURITY, + ACCESS_WY_ENGINEERING, + ACCESS_WY_FLIGHT, + ACCESS_WY_RESEARCH, + ACCESS_WY_EXEC, ACCESS_CIVILIAN_PUBLIC, ACCESS_CIVILIAN_LOGISTICS, ACCESS_CIVILIAN_ENGINEERING, @@ -414,23 +335,25 @@ ACCESS_CIVILIAN_COMMAND, ) -/datum/equipment_preset/corpse/bridgeofficer/load_gear(mob/living/carbon/human/new_human) - new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/centcom_officer(new_human), WEAR_BODY) - if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD]) - add_ice_colony_survivor_equipment(new_human) - else - new_human.equip_to_slot_or_del(new /obj/item/device/radio(new_human), WEAR_IN_BACK) +/datum/equipment_preset/corpse/manager/load_gear(mob/living/carbon/human/new_human) + add_ice_colony_survivor_equipment(new_human) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/liaison_suit/ivy(new_human), WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/WY(new_human), WEAR_L_EAR) + new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/lockable(new_human), WEAR_BACK) + new_human.equip_to_slot_or_del(new /obj/item/device/radio(new_human), WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/bulletproof(new_human), WEAR_JACKET) - new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/black(new_human), WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/laceup(new_human), WEAR_FEET) new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses(new_human), WEAR_EYES) //*****************************************************************************************************/ -/datum/equipment_preset/corpse/bridgeofficer/johnson - name = "Corpse - Mr. Johnson Telovin" - idtype = /obj/item/card/id/general - assignment = "Bridge Officer" - uses_special_name = TRUE - paygrade = PAY_SHORT_WYC2 + +/datum/equipment_preset/corpse/administrator + name = "Corpse - Colony Administrator" + assignment = "Colonial Administrator" + rank = JOB_DIRECTOR + faction_group = FACTION_LIST_WY + paygrade = PAY_SHORT_WYC10 + idtype = /obj/item/card/id/silver/cl access = list( ACCESS_CIVILIAN_PUBLIC, ACCESS_CIVILIAN_LOGISTICS, @@ -439,52 +362,40 @@ ACCESS_CIVILIAN_BRIG, ACCESS_CIVILIAN_MEDBAY, ACCESS_CIVILIAN_COMMAND, + ACCESS_WY_GENERAL, + ACCESS_WY_COLONIAL, ACCESS_WY_MEDICAL, - ACCESS_WY_ENGINEERING, ACCESS_WY_SECURITY, + ACCESS_WY_ENGINEERING, + ACCESS_WY_FLIGHT, + ACCESS_WY_RESEARCH, + ACCESS_WY_EXEC, + ACCESS_WY_PMC, + ACCESS_WY_PMC_TL, + ACCESS_WY_ARMORY, + ACCESS_WY_SECRETS, ACCESS_WY_LEADERSHIP, - ACCESS_WY_COLONIAL, - ACCESS_WY_GENERAL, + ACCESS_WY_SENIOR_LEAD, ) -/datum/equipment_preset/corpse/bridgeofficer/johnson/load_gear(mob/living/carbon/human/new_human) - new_human.equip_to_slot_or_del(new /obj/item/clothing/under/waiter(new_human), WEAR_BODY) - . = ..() - -/datum/equipment_preset/corpse/bridgeofficer/johnson/load_name(mob/living/carbon/human/new_human, randomise) - new_human.change_real_name(new_human, "Johnson Telovin") - -//*****************************************************************************************************/ - -/datum/equipment_preset/corpse/commander - name = "Corpse - Commanding Officer" - idtype = /obj/item/card/id/general - assignment = "Commanding Officer" - access = list( - ACCESS_CIVILIAN_PUBLIC, - ACCESS_CIVILIAN_LOGISTICS, - ACCESS_CIVILIAN_ENGINEERING, - ACCESS_CIVILIAN_RESEARCH, - ACCESS_CIVILIAN_BRIG, - ACCESS_CIVILIAN_MEDBAY, - ACCESS_CIVILIAN_COMMAND, - ) - -/datum/equipment_preset/corpse/commander/load_gear(mob/living/carbon/human/new_human) - new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/centcom_commander(new_human), WEAR_BODY) - if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD]) - add_ice_colony_survivor_equipment(new_human) - else - new_human.equip_to_slot_or_del(new /obj/item/device/radio(new_human), WEAR_IN_BACK) +/datum/equipment_preset/corpse/administrator/load_gear(mob/living/carbon/human/new_human) + add_ice_colony_survivor_equipment(new_human) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/liaison_suit/ivy(new_human), WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/WY(new_human), WEAR_L_EAR) + new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/lockable(new_human), WEAR_BACK) + new_human.equip_to_slot_or_del(new /obj/item/device/radio(new_human), WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/bulletproof(new_human), WEAR_JACKET) - new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/eyepatch(new_human), WEAR_EYES) + new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/m4a3/vp78(new_human), WEAR_WAIST) + new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses(new_human), WEAR_EYES) new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/cigarette/cigar/cohiba(new_human), WEAR_FACE) - new_human.equip_to_slot_or_del(new /obj/item/clothing/head/centhat(new_human), WEAR_HEAD) - new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/swat(new_human), WEAR_HANDS) - new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/swat(new_human), WEAR_FEET) - new_human.equip_to_slot_or_del(new /obj/item/tool/lighter/zippo(new_human), WEAR_R_STORE) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/laceup(new_human), WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/tool/lighter/zippo/executive(new_human), WEAR_R_STORE) add_random_cl_survivor_loot(new_human) +/datum/equipment_preset/corpse/administrator/burst + name = "Corpse - Burst Colony Administrator" + xenovictim = TRUE + //*****************************************************************************************************/ /datum/equipment_preset/corpse/wysec @@ -505,52 +416,37 @@ ) /datum/equipment_preset/corpse/wysec/load_gear(mob/living/carbon/human/new_human) - new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/officer/formal/servicedress(new_human), WEAR_BODY) - if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD]) - add_ice_colony_survivor_equipment(new_human) - else - new_human.equip_to_slot_or_del(new /obj/item/device/radio(new_human), WEAR_IN_BACK) + add_ice_colony_survivor_equipment(new_human) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/colonist/white_service(new_human), WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/WY(new_human), WEAR_L_EAR) new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/sec(new_human), WEAR_BACK) new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/vest/security(new_human), WEAR_JACKET) new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/marine/veteran/pmc(new_human), WEAR_HEAD) new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET) +//*****************************************************************************************************/ -/////Actually specific colonists +//Colonists /datum/equipment_preset/corpse/colonist name = "Corpse - Colonist" - assignment = JOB_COLONIST - xenovictim = FALSE - rank = JOB_COLONIST - faction = FACTION_COLONIST - access = list(ACCESS_CIVILIAN_PUBLIC) - idtype = /obj/item/card/id/lanyard /datum/equipment_preset/colonist/load_gear(mob/living/carbon/human/new_human) - + add_ice_colony_survivor_equipment(new_human) new_human.equip_to_slot_or_del(new /obj/item/clothing/under/colonist(new_human), WEAR_BODY) new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress(new_human), WEAR_L_EAR) new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/norm(new_human), WEAR_BACK) - if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD]) - add_ice_colony_survivor_equipment(new_human) - else - new_human.equip_to_slot_or_del(new /obj/item/device/radio(new_human), WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/device/radio(new_human), WEAR_IN_BACK) - new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/black(new_human), WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine(new_human), WEAR_FEET) /datum/equipment_preset/corpse/colonist/burst name = "Corpse - Burst Colonist" xenovictim = TRUE +//*****************************************************************************************************/ + /datum/equipment_preset/corpse/colonist/random name = "Corpse - Colonist Random" - assignment = JOB_COLONIST - xenovictim = FALSE - rank = JOB_COLONIST - faction = FACTION_COLONIST - access = list(ACCESS_CIVILIAN_PUBLIC) - idtype = /obj/item/card/id/lanyard /datum/equipment_preset/corpse/colonist/random/load_gear(mob/living/carbon/human/new_human) var/random_surv_type = pick(SSmapping.configs[GROUND_MAP].survivor_types) @@ -561,14 +457,10 @@ name = "Corpse - Burst Colonist Random" xenovictim = TRUE +//*****************************************************************************************************/ + /datum/equipment_preset/corpse/colonist/kutjevo name = "Corpse - Colonist Kutjevo" - assignment = JOB_COLONIST - xenovictim = FALSE - rank = JOB_COLONIST - faction = FACTION_COLONIST - access = list(ACCESS_CIVILIAN_PUBLIC) - idtype = /obj/item/card/id/lanyard /datum/equipment_preset/corpse/colonist/kutjevo/load_gear(mob/living/carbon/human/new_human) @@ -578,18 +470,20 @@ new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress(new_human), WEAR_L_EAR) new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/norm(new_human), WEAR_BACK) new_human.equip_to_slot_or_del(new /obj/item/device/radio(new_human), WEAR_IN_BACK) - new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/black(new_human), WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine(new_human), WEAR_FEET) /datum/equipment_preset/corpse/colonist/kutjevo/burst name = "Corpse - Burst Colonist Kutjevo" xenovictim = TRUE -//UA riot control dudes +//*****************************************************************************************************/ + +//UA Riot Control Officer + /datum/equipment_preset/corpse/ua_riot name = "Corpse - UA Officer" assignment = "United Americas Riot Officer" idtype = /obj/item/card/id/silver - xenovictim = FALSE access = list( ACCESS_CIVILIAN_PUBLIC, ACCESS_CIVILIAN_LOGISTICS, @@ -602,24 +496,23 @@ /datum/equipment_preset/corpse/ua_riot/load_gear(mob/living/carbon/human/new_human) var/random = rand(1,5) + add_ice_colony_survivor_equipment(new_human) new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/ua_riot(new_human), WEAR_BODY) - if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD]) - add_ice_colony_survivor_equipment(new_human) - else - new_human.equip_to_slot_or_del(new /obj/item/device/radio(new_human), WEAR_IN_BACK) - new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/sec, WEAR_BACK) + new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress(new_human), WEAR_L_EAR) + new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/sec(new_human), WEAR_BACK) new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine(new_human), WEAR_FEET) new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/veteran/ua_riot(new_human), WEAR_JACKET) new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/marine/veteran/ua_riot(new_human), WEAR_HEAD) - new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/veteran/pmc(new_human), WEAR_HANDS) new_human.equip_to_slot_or_del(new /obj/item/prop/helmetgarb/riot_shield(new_human), WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/device/radio(new_human), WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine(new_human), WEAR_HANDS) new_human.equip_to_slot_or_del(new /obj/item/weapon/classic_baton(new_human), WEAR_WAIST) switch(random) if(1) - new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/hud/security, WEAR_EYES) - if(2) new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses(new_human), WEAR_EYES) + if(2) + new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses/big(new_human), WEAR_EYES) if(3) new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses/aviator(new_human), WEAR_EYES) if(4) @@ -632,18 +525,21 @@ name = "Corpse - Burst UA Officer" xenovictim = TRUE -//Colonial Supervisor Corpse +//*****************************************************************************************************/ + +//Colonial Supervisor + +/datum/equipment_preset/corpse/wy + flags = EQUIPMENT_PRESET_STUB /datum/equipment_preset/corpse/wy/manager name = "Corpse - Corporate Supervisor" + assignment = "Colony Supervisor" flags = EQUIPMENT_PRESET_EXTRA paygrade = PAY_SHORT_WYC6 - assignment = "Colony Supervisor" - role_comm_title = "Supervisor" rank = FACTION_WY idtype = /obj/item/card/id/silver/clearance_badge/manager faction_group = FACTION_LIST_WY - languages = list(LANGUAGE_ENGLISH, LANGUAGE_JAPANESE) access = list( ACCESS_WY_GENERAL, ACCESS_WY_COLONIAL, @@ -657,35 +553,33 @@ ) /datum/equipment_preset/corpse/wy/manager/load_gear(mob/living/carbon/human/new_human) - + add_ice_colony_survivor_equipment(new_human) new_human.equip_to_slot_or_del(new /obj/item/clothing/under/suit_jacket/manager(new_human), WEAR_BODY) - if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD]) - add_ice_colony_survivor_equipment(new_human) - else - new_human.equip_to_slot_or_del(new /obj/item/device/radio(new_human), WEAR_IN_BACK) - new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/lockable/liaison, WEAR_BACK) + new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/lockable/liaison(new_human), WEAR_BACK) + new_human.equip_to_slot_or_del(new /obj/item/device/radio(new_human), WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/manager(new_human), WEAR_JACKET) - new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/WY, WEAR_L_EAR) - new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/dress, WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/WY(new_human), WEAR_L_EAR) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/laceup(new_human), WEAR_FEET) new_human.equip_to_slot_or_del(new /obj/item/clothing/head/manager(new_human), WEAR_HEAD) new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/m4a3/vp78(new_human), WEAR_WAIST) - new_human.equip_to_slot_or_del(new /obj/item/attachable/bayonet(new_human.back), WEAR_IN_BACK) - new_human.equip_to_slot_or_del(new /obj/item/device/radio(new_human), WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/tools/full(new_human), WEAR_R_STORE) add_random_cl_survivor_loot(new_human) - /datum/equipment_preset/corpse/wy/manager/burst name = "Corpse - Burst Corporate Supervisor" xenovictim = TRUE +//*****************************************************************************************************/ + //Faction Specific Corpses +//CLF + /datum/equipment_preset/corpse/clf name = "Corpse - Colonial Liberation Front Soldier" - assignment = "Colonial Liberation Front Soldier" - idtype = /obj/item/card/id/silver - xenovictim = FALSE + assignment = JOB_CLF + idtype = /obj/item/card/id/data + rank = JOB_CLF faction = FACTION_CLF /datum/equipment_preset/corpse/clf/New() @@ -715,12 +609,16 @@ name = "Corpse - Burst Colonial Liberation Front Soldier" xenovictim = TRUE -// UPP +//*****************************************************************************************************/ + +//UPP + /datum/equipment_preset/corpse/upp name = "Corpse - Union of Progressive Peoples Soldier" - assignment = "Union of Progressive Peoples Soldier" - idtype = /obj/item/card/id/silver - xenovictim = FALSE + assignment = JOB_UPP + idtype = /obj/item/card/id/dogtag + paygrade = PAY_SHORT_UE2 + rank = JOB_UPP faction = FACTION_UPP /datum/equipment_preset/corpse/upp/New() @@ -728,18 +626,14 @@ access = get_access(ACCESS_LIST_EMERGENCY_RESPONSE) + get_access(ACCESS_LIST_COLONIAL_ALL) /datum/equipment_preset/corpse/upp/load_gear(mob/living/carbon/human/new_human) - - new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/UPP, WEAR_L_EAR) - //head - new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/marine/veteran/UPP, WEAR_HEAD) - //body var/obj/item/clothing/under/marine/veteran/UPP/UPP = new() new_human.equip_to_slot_or_del(UPP, WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/UPP, WEAR_L_EAR) + new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/marine/veteran/UPP, WEAR_HEAD) new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/faction/UPP, WEAR_JACKET) new_human.equip_to_slot_or_del(new /obj/item/device/binoculars, WEAR_IN_JACKET) - //limbs - new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/upp, WEAR_FEET) - new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/veteran, WEAR_HANDS) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/upp/knife, WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/veteran/upp, WEAR_HANDS) add_random_survivor_equipment(new_human) if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD]) @@ -749,7 +643,9 @@ name = "Corpse - Burst Union of Progressive Peoples Soldier" xenovictim = TRUE -// PMC +//*****************************************************************************************************/ + +//PMC /datum/equipment_preset/corpse/pmc name = "Corpse - Weyland-Yutani PMC (Standard)" @@ -758,10 +654,8 @@ faction = FACTION_PMC faction_group = FACTION_LIST_WY rank = JOB_PMC_STANDARD - paygrade = "PMC-OP" + paygrade = PAY_SHORT_PMC_OP idtype = /obj/item/card/id/pmc - skills = /datum/skills/civilian/survivor/pmc - languages = list(LANGUAGE_ENGLISH, LANGUAGE_JAPANESE) access = list( ACCESS_CIVILIAN_PUBLIC, ACCESS_CIVILIAN_LOGISTICS, @@ -795,16 +689,19 @@ name = "Corpse - Burst Weyland-Yutani PMC (Standard)" xenovictim = TRUE +//*****************************************************************************************************/ + +//Goon + /datum/equipment_preset/corpse/pmc/goon name = "Corpse - Weyland-Yutani Corporate (Goon)" languages = list(LANGUAGE_ENGLISH) assignment = JOB_WY_GOON rank = JOB_WY_GOON paygrade = PAY_SHORT_CPO - skills = /datum/skills/MP /datum/equipment_preset/corpse/pmc/goon/load_gear(mob/living/carbon/human/new_human) - new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress, WEAR_L_EAR) + new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/WY, WEAR_L_EAR) new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/veteran/pmc/corporate, WEAR_BODY) new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/veteran/pmc/light/corporate, WEAR_JACKET) new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/veteran, WEAR_HANDS) @@ -817,6 +714,10 @@ new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/m4a3/mod88_near_empty, WEAR_WAIST) new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/firstaid/full, WEAR_R_STORE) +//*****************************************************************************************************/ + +//Lead Goon + /datum/equipment_preset/corpse/pmc/goon/lead name = "Corpse - Weyland-Yutani Corporate Security Lead (Goon Lead)" flags = EQUIPMENT_PRESET_EXTRA @@ -825,7 +726,7 @@ paygrade = PAY_SHORT_CSPO /datum/equipment_preset/corpse/pmc/goon/lead/load_gear(mob/living/carbon/human/new_human) - new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress, WEAR_L_EAR) + new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/WY, WEAR_L_EAR) new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/veteran/pmc/corporate/lead, WEAR_BODY) new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/veteran/pmc/light/corporate/lead, WEAR_JACKET) new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/veteran, WEAR_HANDS) @@ -838,23 +739,29 @@ new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/m4a3/mod88_near_empty, WEAR_WAIST) new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/firstaid/full, WEAR_R_STORE) -// Freelancer +/datum/equipment_preset/corpse/pmc/goon/lead/burst + name = "Corpse - Burst Weyland-Yutani Corporate Security Lead (Goon Lead)" + xenovictim = TRUE + +//*****************************************************************************************************/ + +//Freelancer /datum/equipment_preset/corpse/freelancer - name = "Corpse - Freelancer Mercenary" - assignment = "Freelancer Mercenary" - idtype = /obj/item/card/id/silver - xenovictim = FALSE + name = "Corpse - Freelancer" + paygrade = PAY_SHORT_FL_S + rank = FACTION_FREELANCER + idtype = /obj/item/card/id/data + faction = FACTION_FREELANCER /datum/equipment_preset/corpse/freelancer/New() . = ..() access = get_access(ACCESS_LIST_EMERGENCY_RESPONSE) + get_access(ACCESS_LIST_COLONIAL_ALL) /datum/equipment_preset/corpse/freelancer/load_gear(mob/living/carbon/human/new_human) - new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/veteran/freelancer, WEAR_BODY) new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/faction/freelancer, WEAR_JACKET) - new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/upp, WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/upp/knife, WEAR_FEET) new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/veteran/pmc, WEAR_HANDS) new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/dutch, WEAR_L_EAR) new_human.equip_to_slot_or_del(new /obj/item/storage/belt/marine, WEAR_WAIST) @@ -865,12 +772,83 @@ spawn_merc_helmet(new_human) /datum/equipment_preset/corpse/freelancer/burst - name = "Corpse - Burst Freelancer Mercenary" + name = "Corpse - Burst Freelancer" xenovictim = TRUE -// Fun Faction Corpse +//*****************************************************************************************************/ + +//Fun Faction Corpses + +//Pirates + +/datum/equipment_preset/corpse/realpirate + name = "Corpse - Pirate" + access = list( + ACCESS_CIVILIAN_PUBLIC, + ACCESS_CIVILIAN_LOGISTICS, + ACCESS_CIVILIAN_ENGINEERING, + ACCESS_CIVILIAN_RESEARCH, + ACCESS_CIVILIAN_BRIG, + ACCESS_CIVILIAN_MEDBAY, + ACCESS_CIVILIAN_COMMAND, + ACCESS_ILLEGAL_PIRATE, + ) + +/datum/equipment_preset/corpse/realpirate/load_gear(mob/living/carbon/human/new_human) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/pirate(new_human), WEAR_BODY) + if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD]) + add_ice_colony_survivor_equipment(new_human) + new_human.equip_to_slot_or_del(new /obj/item/device/radio(new_human), WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/jackboots(new_human), WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/eyepatch(new_human), WEAR_EYES) + new_human.equip_to_slot_or_del(new /obj/item/clothing/head/bandana(new_human), WEAR_HEAD) + +//*****************************************************************************************************/ + +/datum/equipment_preset/corpse/realpirate/ranged + name = "Corpse - Pirate Gunner" + +/datum/equipment_preset/corpse/realpirate/ranged/load_gear(mob/living/carbon/human/new_human) + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/pirate(new_human), WEAR_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/head/pirate(new_human), WEAR_HEAD) + . = ..() + +//*****************************************************************************************************/ + +//Russian(?) + +/datum/equipment_preset/corpse/russian + name = "Corpse - Russian" + access = list( + ACCESS_CIVILIAN_PUBLIC, + ACCESS_CIVILIAN_LOGISTICS, + ACCESS_CIVILIAN_ENGINEERING, + ACCESS_CIVILIAN_RESEARCH, + ACCESS_CIVILIAN_BRIG, + ACCESS_CIVILIAN_MEDBAY, + ACCESS_CIVILIAN_COMMAND, + ) + +/datum/equipment_preset/corpse/russian -// Dutch Dozen +/datum/equipment_preset/corpse/russian/load_gear(mob/living/carbon/human/new_human) + + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/veteran/soviet_uniform_01(new_human), WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/snow_suit/soviet(new_human), WEAR_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/sec(new_human), WEAR_BACK) + new_human.equip_to_slot_or_del(new /obj/item/storage/belt/marine(new_human), WEAR_WAIST) + new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel(new_human), WEAR_BACK) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/upp/knife(new_human), WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/rebreather/scarf(new_human), WEAR_FACE) + new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine(new_human), WEAR_HANDS) + if(prob(25)) + new_human.equip_to_slot_or_del(new /obj/item/clothing/head/bearpelt(new_human), WEAR_HEAD) + else + new_human.equip_to_slot_or_del(new /obj/item/clothing/head/ushanka(new_human), WEAR_HEAD) + +//*****************************************************************************************************/ + +//Dutch Dozen /datum/equipment_preset/corpse/dutchrifle name = "Corpse - Dutch Dozen Rifleman" @@ -901,7 +879,9 @@ name = "Corpse - Burst Dutch Dozen Rifleman" xenovictim = TRUE -// Pizza Planet +//*****************************************************************************************************/ + +//Pizza Planet /datum/equipment_preset/corpse/pizza name = "Corpse - Pizza Deliverer" @@ -915,12 +895,9 @@ access = get_access(ACCESS_LIST_DELIVERY) /datum/equipment_preset/corpse/pizza/load_gear(mob/living/carbon/human/new_human) - + add_ice_colony_survivor_equipment(new_human) new_human.equip_to_slot_or_del(new /obj/item/clothing/under/pizza, WEAR_BODY) - if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD]) - add_ice_colony_survivor_equipment(new_human) - else - new_human.equip_to_slot_or_del(new /obj/item/device/radio(new_human), WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/device/radio(new_human), WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/clothing/head/soft/red, WEAR_HEAD) new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/red, WEAR_FEET) new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel, WEAR_BACK) @@ -940,7 +917,9 @@ name = "Corpse - Burst Pizza Deliverer" xenovictim = TRUE -// Gladiator +//*****************************************************************************************************/ + +//Gladiator /datum/equipment_preset/corpse/gladiator name = "Corpse - Gladiator" @@ -978,6 +957,7 @@ name = "Corpse - Burst Gladiator" xenovictim = TRUE +//*****************************************************************************************************/ //FORECON @@ -988,7 +968,7 @@ paygrade = PAY_SHORT_ME5 idtype = /obj/item/card/id/dogtag role_comm_title = "FORECON" - faction_group = list(FACTION_USCM, FACTION_SURVIVOR) + faction_group = list(FACTION_MARINE, FACTION_SURVIVOR) access = list( ACCESS_CIVILIAN_PUBLIC, ACCESS_CIVILIAN_ENGINEERING, diff --git a/code/modules/gear_presets/dust_raider.dm b/code/modules/gear_presets/dust_raider.dm index 27a3ce086c85..c33d071a0b57 100644 --- a/code/modules/gear_presets/dust_raider.dm +++ b/code/modules/gear_presets/dust_raider.dm @@ -55,7 +55,7 @@ new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine(new_human), WEAR_BODY) new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/marine(new_human), WEAR_BACK) new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/marine/leader(new_human), WEAR_HEAD) - new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/leader(new_human), WEAR_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/medium/leader(new_human), WEAR_JACKET) new_human.equip_to_slot_or_del(new /obj/item/storage/belt/marine/m41amk1(new_human), WEAR_WAIST) new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/rifle/m41aMK1(new_human), WEAR_J_STORE) new_human.equip_to_slot_or_del(new /obj/item/device/whiskey_supply_beacon(new_human), WEAR_IN_BACK) diff --git a/code/modules/gear_presets/fun.dm b/code/modules/gear_presets/fun.dm index 68253afbf90a..f24f7f9a2029 100644 --- a/code/modules/gear_presets/fun.dm +++ b/code/modules/gear_presets/fun.dm @@ -240,7 +240,7 @@ /datum/equipment_preset/fun/santa name = "Fun - Santa" - paygrade = PAY_SHORT_CIV + paygrade = PAY_SHORT_CDNM flags = EQUIPMENT_PRESET_EXTRA skills = /datum/skills/everything faction = FACTION_MARINE @@ -289,6 +289,7 @@ /datum/equipment_preset/upp/ivan name = "Fun - Ivan" flags = EQUIPMENT_PRESET_EXTRA + paygrade = PAY_SHORT_UE6 skills = /datum/skills/everything assignment = "UPP Armsmaster" rank = "UPP Armsmaster" @@ -299,7 +300,7 @@ new_human.change_real_name(new_human, "Ivan") new_human.f_style = "Shaved" new_human.h_style = "Shaved Head" - new_human.ethnicity = "Scandinavian" + new_human.skin_color = "pale3" new_human.r_hair = 165 new_human.g_hair = 42 new_human.b_hair = 42 @@ -327,7 +328,7 @@ //head new_human.equip_to_slot_or_del(new /obj/item/clothing/head/ivanberet, WEAR_HEAD) //limb - new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/upp, WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/upp/knife, WEAR_FEET) new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/veteran/pmc, WEAR_HANDS) //waist new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/type47/ivan, WEAR_WAIST) @@ -362,7 +363,7 @@ new_human.b_facial = 51 new_human.h_style = "Mullet" new_human.f_style = "Full English" - new_human.ethnicity = "Anglo" + new_human.skin_color = "pale2" new_human.r_eyes = 102 //Brown eyes. new_human.g_eyes = 51 new_human.b_eyes = 0 diff --git a/code/modules/gear_presets/other.dm b/code/modules/gear_presets/other.dm index 6a9fa4d6f55a..9ea05749fe0d 100644 --- a/code/modules/gear_presets/other.dm +++ b/code/modules/gear_presets/other.dm @@ -60,7 +60,7 @@ /datum/equipment_preset/other/freelancer/standard name = "Freelancer (Standard)" - paygrade = "Freelancer Standard" + paygrade = PAY_SHORT_FL_S flags = EQUIPMENT_PRESET_EXTRA skills = /datum/skills/freelancer @@ -69,7 +69,7 @@ //generic clothing new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/veteran/freelancer, WEAR_BODY) new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/faction/freelancer, WEAR_JACKET) - new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/upp, WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/upp/knife, WEAR_FEET) new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/veteran/pmc, WEAR_HANDS) spawn_merc_helmet(new_human) //storage and specific stuff, they all get an ERT medpouch. @@ -132,7 +132,7 @@ /datum/equipment_preset/other/freelancer/medic name = "Freelancer (Medic)" - paygrade = "Freelancer Medic" + paygrade = PAY_SHORT_FL_M flags = EQUIPMENT_PRESET_EXTRA assignment = "Freelancer Medic" skills = /datum/skills/freelancer/combat_medic @@ -149,7 +149,7 @@ new_human.equip_to_slot_or_del(FREELANCER, WEAR_BODY) new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/faction/freelancer, WEAR_JACKET) - new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/upp, WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/upp/knife, WEAR_FEET) new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/veteran/pmc, WEAR_HANDS) spawn_merc_helmet(new_human) @@ -203,7 +203,7 @@ /datum/equipment_preset/other/freelancer/leader name = "Freelancer (Leader)" - paygrade = "Freelancer Leader" + paygrade = PAY_SHORT_FL_WL flags = EQUIPMENT_PRESET_EXTRA assignment = "Freelancer Warlord" languages = list(LANGUAGE_ENGLISH, LANGUAGE_RUSSIAN, LANGUAGE_CHINESE, LANGUAGE_JAPANESE) @@ -216,7 +216,7 @@ new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/veteran/freelancer, WEAR_BODY) new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/faction/freelancer, WEAR_JACKET) new_human.equip_to_slot_or_del(new /obj/item/clothing/head/freelancer/beret, WEAR_HEAD) - new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/upp, WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/upp/knife, WEAR_FEET) new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/veteran, WEAR_HANDS) if(new_human.disabilities & NEARSIGHTED) new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/hud/health/prescription(new_human), WEAR_EYES) @@ -269,7 +269,7 @@ /datum/equipment_preset/other/elite_merc/standard name = "Elite Mercenary (Standard Miner)" - paygrade = "Elite Freelancer Standard" + paygrade = PAY_SHORT_EFL_S flags = EQUIPMENT_PRESET_EXTRA idtype = /obj/item/card/id/centcom @@ -306,7 +306,7 @@ /datum/equipment_preset/other/elite_merc/heavy name = "Elite Mercenary (Heavy)" - paygrade = "Elite Freelancer Heavy" + paygrade = PAY_SHORT_EFL_H flags = EQUIPMENT_PRESET_EXTRA idtype = /obj/item/card/id/centcom @@ -346,7 +346,7 @@ //*****************************************************************************************************/ /datum/equipment_preset/other/elite_merc/engineer name = "Elite Mercenary (Engineer)" - paygrade = "Elite Freelancer Engineer" + paygrade = PAY_SHORT_EFL_E flags = EQUIPMENT_PRESET_EXTRA idtype = /obj/item/card/id/data @@ -400,7 +400,7 @@ /datum/equipment_preset/other/elite_merc/medic name = "Elite Mercenary (Medic)" - paygrade = "Elite Freelancer Medic" + paygrade = PAY_SHORT_EFL_M flags = EQUIPMENT_PRESET_EXTRA idtype = /obj/item/card/id/centcom @@ -446,7 +446,7 @@ /datum/equipment_preset/other/elite_merc/leader name = "Elite Mercenary (Leader)" - paygrade = "Elite Freelancer Leader" + paygrade = PAY_SHORT_EFL_TL flags = EQUIPMENT_PRESET_EXTRA idtype = /obj/item/card/id/centcom @@ -774,7 +774,7 @@ /datum/equipment_preset/other/xeno_cultist/load_gear(mob/living/carbon/human/new_human) new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/chaplain/cultist(new_human), WEAR_BODY) - new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/upp(new_human), WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/upp/knife(new_human), WEAR_FEET) new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/lightpack(new_human), WEAR_BACK) new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/tools/full(new_human), WEAR_R_STORE) new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/survival/full(new_human), WEAR_L_STORE) @@ -861,7 +861,6 @@ var/datum/preferences/A = new A.randomize_appearance(new_human) - /datum/equipment_preset/other/professor_dummy/load_race(mob/living/carbon/human/new_human) . = ..() //Can't hug the dummy! Otherwise it's basically human... @@ -870,7 +869,7 @@ /datum/equipment_preset/other/professor_dummy/load_gear(mob/living/carbon/human/new_human) var/obj/item/device/professor_dummy_tablet/tablet = new /obj/item/device/professor_dummy_tablet(new_human) - tablet.link_mob(new_human) + tablet.link_dummy(new_human) new_human.equip_to_slot_or_del(tablet, WEAR_R_HAND) new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/medical, WEAR_BODY) @@ -882,9 +881,9 @@ flags = EQUIPMENT_PRESET_EXTRA idtype = /obj/item/card/id/dogtag - assignment = JOB_CREWMAN - rank = JOB_CREWMAN - paygrade = "E4" + assignment = JOB_TANK_CREW + rank = JOB_TANK_CREW + paygrade = PAY_SHORT_ME4 role_comm_title = "CRMN" minimum_age = 30 skills = /datum/skills/tank_crew @@ -924,7 +923,7 @@ idtype = /obj/item/card/id/dogtag assignment = "Crewman Trainee" rank = "Crewman Trainee" - paygrade = "E3" + paygrade = PAY_SHORT_ME3 role_comm_title = "CRTR" minimum_age = 25 skills = /datum/skills/tank_crew @@ -952,3 +951,42 @@ new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/tools/tank(new_human), WEAR_R_STORE) //*****************************************************************************************************/ + + +/datum/equipment_preset/tutorial + name = "Tutorial" + faction = FACTION_MARINE + flags = EQUIPMENT_PRESET_EXTRA + faction_group = FACTION_LIST_MARINE + languages = list(LANGUAGE_ENGLISH) + idtype = /obj/item/card/id + /// If the player should start out underfed + var/underfed = TRUE + +/datum/equipment_preset/tutorial/load_status(mob/living/carbon/human/new_human) + if(underfed) + new_human.nutrition = NUTRITION_LOW + +/datum/equipment_preset/tutorial/fed + name = "Tutorial (Fed)" + underfed = FALSE + + +/datum/equipment_preset/uscm/tutorial_rifleman + name = "Tutorial Rifleman" + flags = EQUIPMENT_PRESET_EXTRA + assignment = JOB_SQUAD_MARINE + rank = JOB_SQUAD_MARINE + paygrade = "ME2" + role_comm_title = "RFN" + skills = /datum/skills/pfc/crafty + minimap_icon = "private" + +/datum/equipment_preset/uscm/tutorial_rifleman/load_gear(mob/living/carbon/human/new_human) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine(new_human), WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/marine(new_human), WEAR_HEAD) + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/medium(new_human), WEAR_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/marine(new_human), WEAR_BACK) + new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine(new_human), WEAR_HANDS) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET) + diff --git a/code/modules/gear_presets/pmc.dm b/code/modules/gear_presets/pmc.dm index 9571859b0f0f..8dde038f3891 100644 --- a/code/modules/gear_presets/pmc.dm +++ b/code/modules/gear_presets/pmc.dm @@ -61,7 +61,7 @@ assignment = JOB_PMC_STANDARD rank = JOB_PMC_STANDARD - paygrade = "PMC-OP" + paygrade = PAY_SHORT_PMC_OP skills = /datum/skills/pmc /datum/equipment_preset/pmc/pmc_standard/load_gear(mob/living/carbon/human/new_human) @@ -203,7 +203,7 @@ list("POUCHES (CHOOSE 2)", 0, null, null, null), assignment = JOB_PMC_DETAINER rank = JOB_PMC_DETAINER - paygrade = "PMC-EN" + paygrade = PAY_SHORT_PMC_EN skills = /datum/skills/pmc /datum/equipment_preset/pmc/pmc_detainer/load_gear(mob/living/carbon/human/new_human) @@ -332,7 +332,7 @@ list("POUCHES (CHOOSE 2)", 0, null, null, null), assignment = JOB_PMC_MEDIC rank = JOB_PMC_MEDIC - paygrade = "PMC-MS" + paygrade = PAY_SHORT_PMC_MS skills = /datum/skills/pmc/medic headset_type = /obj/item/device/radio/headset/distress/pmc/medic @@ -507,7 +507,7 @@ list("POUCHES (CHOOSE 2)", 0, null, null, null), assignment = JOB_PMC_INVESTIGATOR rank = JOB_PMC_INVESTIGATOR - paygrade = "PMC-MS" //Fixed from PMC2 to PMC-MS to display properly. + paygrade = PAY_SHORT_PMC_MS //Fixed from PMC2 to PMC-MS to display properly. skills = /datum/skills/pmc/medic/chem headset_type = /obj/item/device/radio/headset/distress/pmc/medic @@ -686,7 +686,7 @@ list("POUCHES (CHOOSE 2)", 0, null, null, null), assignment = JOB_PMC_LEADER rank = JOB_PMC_LEADER - paygrade = "PMC-TL" + paygrade = PAY_SHORT_PMC_TL role_comm_title = "SL" skills = /datum/skills/pmc/SL headset_type = /obj/item/device/radio/headset/distress/pmc/command @@ -842,7 +842,7 @@ list("POUCHES (CHOOSE 2)", 0, null, null, null), assignment = JOB_PMC_LEAD_INVEST rank = JOB_PMC_LEAD_INVEST - paygrade = "PMC-TL" + paygrade = PAY_SHORT_PMC_TL role_comm_title = "SL" skills = /datum/skills/pmc/SL/chem headset_type = /obj/item/device/radio/headset/distress/pmc/command @@ -985,7 +985,7 @@ list("POUCHES (CHOOSE 2)", 0, null, null, null), assignment = JOB_PMC_GUNNER rank = JOB_PMC_GUNNER - paygrade = "PMC-SS" + paygrade = PAY_SHORT_PMC_SS role_comm_title = "SG" skills = /datum/skills/pmc/smartgunner @@ -1090,7 +1090,7 @@ list("POUCHES (CHOOSE 2)", 0, null, null, null), assignment = JOB_PMC_SNIPER rank = JOB_PMC_SNIPER - paygrade = "PMC-WS" + paygrade = PAY_SHORT_PMC_WS role_comm_title = "Spc" skills = /datum/skills/pmc/specialist headset_type = /obj/item/device/radio/headset/distress/pmc/cct @@ -1212,7 +1212,7 @@ list("POUCHES (CHOOSE 2)", 0, null, null, null), assignment = JOB_PMC_CREWMAN rank = JOB_PMC_CREWMAN - paygrade = "PMC-VS" + paygrade = PAY_SHORT_PMC_VS skills = /datum/skills/pmc/tank_crew headset_type = /obj/item/device/radio/headset/distress/pmc/cct @@ -1340,7 +1340,7 @@ list("POUCHES (CHOOSE 2)", 0, null, null, null), assignment = JOB_PMC_XENO_HANDLER rank = JOB_PMC_XENO_HANDLER - paygrade = "PMC-XS" + paygrade = PAY_SHORT_PMC_XS role_comm_title = "XH" skills = /datum/skills/pmc/xeno_handler languages = list(LANGUAGE_ENGLISH, LANGUAGE_JAPANESE, LANGUAGE_XENOMORPH) @@ -1486,8 +1486,8 @@ list("POUCHES (CHOOSE 2)", 0, null, null, null), assignment = JOB_PMC_DOCTOR rank = JOB_PMC_DOCTOR - paygrade = "PMC-DOC" - role_comm_title = "TRI" + paygrade = PAY_SHORT_PMC_DOC + role_comm_title = "SGN" skills = /datum/skills/pmc/doctor headset_type = /obj/item/device/radio/headset/distress/pmc/medic @@ -1660,7 +1660,7 @@ list("POUCHES (CHOOSE 2)", 0, null, null, null), assignment = JOB_PMC_ENGINEER rank = JOB_PMC_ENGINEER - paygrade = "PMC-TECH" + paygrade = PAY_SHORT_PMC_TEC role_comm_title = "TEC" skills = /datum/skills/pmc/engineer headset_type = /obj/item/device/radio/headset/distress/pmc/cct @@ -1688,8 +1688,8 @@ list("POUCHES (CHOOSE 2)", 0, null, null, null), new_human.equip_to_slot_or_del(new /obj/item/explosive/plastic, WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/device/binoculars/range, WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/tool/shovel/etool/folded, WEAR_IN_BACK) - new_human.equip_to_slot_or_del(new /obj/item/defenses/handheld/sentry/mini, WEAR_IN_BACK) - new_human.equip_to_slot_or_del(new /obj/item/defenses/handheld/sentry/mini, WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/defenses/handheld/sentry/wy/mini, WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/defenses/handheld/sentry/wy/mini, WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/construction/full, WEAR_L_STORE) new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/construction/full, WEAR_R_STORE) @@ -1755,9 +1755,9 @@ list("POUCHES (CHOOSE 2)", 0, null, null, null), list("Essential Engineer Set", 0, /obj/effect/essentials_set/engi, MARINE_CAN_BUY_ESSENTIALS, VENDOR_ITEM_MANDATORY), list("HANDHELD DEFENSE (CHOOSE 1)", 0, null, null, null), - list("JIMA Planted Flag", 0, /obj/item/defenses/handheld/planted_flag, MARINE_CAN_BUY_ATTACHMENT, VENDOR_ITEM_MANDATORY), - list("UA 42-F Sentry Flamer", 0, /obj/item/defenses/handheld/sentry/flamer, MARINE_CAN_BUY_ATTACHMENT, VENDOR_ITEM_MANDATORY), - list("UA 571-C Sentry Gun", 0, /obj/item/defenses/handheld/sentry, MARINE_CAN_BUY_ATTACHMENT, VENDOR_ITEM_MANDATORY), + list("WY Planted Flag", 0, /obj/item/defenses/handheld/planted_flag/wy, MARINE_CAN_BUY_ATTACHMENT, VENDOR_ITEM_MANDATORY), + list("WY 406-FE2 Smart Sentry", 0, /obj/item/defenses/handheld/sentry/flamer/wy, MARINE_CAN_BUY_ATTACHMENT, VENDOR_ITEM_MANDATORY), + list("WY 202-GMA1 Smart Sentry", 0, /obj/item/defenses/handheld/sentry/wy, MARINE_CAN_BUY_ATTACHMENT, VENDOR_ITEM_MANDATORY), list("ENGINEERING SUPPLIES", 0, null, null, null), list("Airlock Circuit Board", 2, /obj/item/circuitboard/airlock, null, VENDOR_ITEM_REGULAR), @@ -1809,7 +1809,7 @@ list("POUCHES (CHOOSE 2)", 0, null, null, null), assignment = JOB_PMC_DIRECTOR rank = JOB_PMC_DIRECTOR - paygrade = "PMC-DIR" + paygrade = PAY_SHORT_PMC_DIR role_comm_title = "DIR" skills = /datum/skills/pmc/director headset_type = /obj/item/device/radio/headset/distress/pmc/command/director @@ -1848,6 +1848,7 @@ list("POUCHES (CHOOSE 2)", 0, null, null, null), idtype = /obj/item/card/id/pmc assignment = JOB_PMC_SYNTH rank = JOB_PMC_SYNTH + paygrade = PAY_SHORT_SYN role_comm_title = "WY Syn" headset_type = /obj/item/device/radio/headset/distress/pmc/command diff --git a/code/modules/gear_presets/royal_marines.dm b/code/modules/gear_presets/royal_marines.dm index 90361a24cc57..aa33eac97733 100644 --- a/code/modules/gear_presets/royal_marines.dm +++ b/code/modules/gear_presets/royal_marines.dm @@ -1,7 +1,7 @@ /datum/equipment_preset/twe name = "Three World Empire" faction = FACTION_TWE - faction_group = list(FACTION_TWE, FACTION_USCM) + faction_group = list(FACTION_TWE, FACTION_MARINE) languages = list(LANGUAGE_ENGLISH, LANGUAGE_JAPANESE) /datum/equipment_preset/twe/royal_marine/load_name(mob/living/carbon/human/new_human, randomise) @@ -59,7 +59,7 @@ /datum/equipment_preset/twe/royal_marine/standard name = "TWE Royal Marine Commando (Rifleman)" - paygrade = "RMC E1" + paygrade = PAY_SHORT_RMC1 role_comm_title = "RMC" flags = EQUIPMENT_PRESET_EXTRA assignment = "Royal Marines Rifleman" @@ -110,7 +110,7 @@ //*****************************************************************************************************/ /datum/equipment_preset/twe/royal_marine/spec - paygrade = "RMC E2" + paygrade = PAY_SHORT_RMC2 role_comm_title = "RMC SPC" flags = EQUIPMENT_PRESET_EXTRA skills = /datum/skills/rmc/specialist @@ -243,7 +243,7 @@ //*****************************************************************************************************/ /datum/equipment_preset/twe/royal_marine/team_leader name = "TWE Royal Marine Commando (Teamleader)" - paygrade = "RMC E4" + paygrade = PAY_SHORT_RMC4 role_comm_title = "RMC TL" flags = EQUIPMENT_PRESET_EXTRA assignment = "Royal Marines Team Leader" @@ -292,7 +292,7 @@ /datum/equipment_preset/twe/royal_marine/lieuteant //they better say it Lef-tenant or they should be banned for LRP. More importantly this guy doesn't spawn in the ERT name = "TWE Royal Marine Commando (Officer)" - paygrade = "RMC O1" + paygrade = PAY_SHORT_RNO1 role_comm_title = "RMC LT" flags = EQUIPMENT_PRESET_EXTRA assignment = "Royal Marines Team Commander" diff --git a/code/modules/gear_presets/survivors/corsat/preset_corsat.dm b/code/modules/gear_presets/survivors/corsat/preset_corsat.dm index f71439b9d7ac..9583c73a92e2 100644 --- a/code/modules/gear_presets/survivors/corsat/preset_corsat.dm +++ b/code/modules/gear_presets/survivors/corsat/preset_corsat.dm @@ -4,7 +4,7 @@ languages = list(LANGUAGE_ENGLISH, LANGUAGE_JAPANESE) /datum/equipment_preset/survivor/security/corsat/load_gear(mob/living/carbon/human/new_human) - new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/officer/formal/servicedress(new_human), WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/colonist/white_service(new_human), WEAR_BODY) new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/WY(new_human), WEAR_L_EAR) new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/sec(new_human), WEAR_BACK) new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/vest/security(new_human), WEAR_JACKET) @@ -35,12 +35,12 @@ new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/white(new_human), WEAR_FEET) ..() -/datum/equipment_preset/survivor/interstellar_commerce_commission_liason/corsat +/datum/equipment_preset/survivor/interstellar_commerce_commission_liaison/corsat name = "Survivor - Interstellar Commerce Commission Liaison CORSAT" assignment = "Interstellar Commerce Commission Corporate Liaison" -/datum/equipment_preset/survivor/interstellar_commerce_commission_liason/corsat/load_gear(mob/living/carbon/human/new_human) - new_human.equip_to_slot_or_del(new /obj/item/clothing/under/liaison_suit/formal(new_human), WEAR_BODY) +/datum/equipment_preset/survivor/interstellar_commerce_commission_liaison/corsat/load_gear(mob/living/carbon/human/new_human) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/liaison_suit/corporate_formal(new_human), WEAR_BODY) new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/CMB/limited(new_human), WEAR_L_EAR) new_human.equip_to_slot_or_del(new /obj/item/clothing/head/hardhat/white(new_human), WEAR_HEAD) new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/vest(new_human), WEAR_JACKET) diff --git a/code/modules/gear_presets/survivors/fiorina_sciannex/preset_fiorina_sciannex.dm b/code/modules/gear_presets/survivors/fiorina_sciannex/preset_fiorina_sciannex.dm index f0d812026491..873ade0aefc8 100644 --- a/code/modules/gear_presets/survivors/fiorina_sciannex/preset_fiorina_sciannex.dm +++ b/code/modules/gear_presets/survivors/fiorina_sciannex/preset_fiorina_sciannex.dm @@ -1,63 +1,64 @@ -/datum/equipment_preset/survivor/scientist/florina - name = "Survivor - Florina Researcher" - assignment = "Florina Researcher" +/datum/equipment_preset/survivor/scientist/fiorina + name = "Survivor - Fiorina Researcher" + assignment = "Fiorina Researcher" -/datum/equipment_preset/survivor/scientist/florina/load_gear(mob/living/carbon/human/new_human) - new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/medical/purple(new_human), WEAR_BODY) - new_human.equip_to_slot_or_del(new /obj/item/clothing/head/surgery/purple(new_human), WEAR_HEAD) - new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/labcoat/science(new_human), WEAR_JACKET) +/datum/equipment_preset/survivor/scientist/fiorina/load_gear(mob/living/carbon/human/new_human) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/colonist/workwear/pink(new_human), WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/marine/veteran/pmc/leader(new_human), WEAR_HEAD) + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/labcoat/researcher(new_human), WEAR_JACKET) new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/latex(new_human), WEAR_HANDS) new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/surgical(new_human), WEAR_FACE) new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/science(new_human), WEAR_EYES) - new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/chem(new_human), WEAR_BACK) - new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/white(new_human), WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/tox(new_human), WEAR_BACK) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/laceup(new_human), WEAR_FEET) ..() -/datum/equipment_preset/survivor/doctor/florina - name = "Survivor - Florina Doctor" - assignment = "Florina Doctor" +/datum/equipment_preset/survivor/doctor/fiorina + name = "Survivor - Fiorina Doctor" + assignment = "Fiorina Doctor" -/datum/equipment_preset/survivor/doctor/florina/load_gear(mob/living/carbon/human/new_human) - new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/medical(new_human), WEAR_BODY) +/datum/equipment_preset/survivor/doctor/fiorina/load_gear(mob/living/carbon/human/new_human) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/medical/lightblue(new_human), WEAR_BODY) new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/marine/veteran/pmc(new_human), WEAR_HEAD) ..() -/datum/equipment_preset/survivor/security/florina - name = "Survivor - Florina Prison Guard" - assignment = "Florina Prison Guard" +/datum/equipment_preset/survivor/security/fiorina + name = "Survivor - Fiorina Prison Guard" + assignment = "Fiorina Prison Guard" -/datum/equipment_preset/survivor/security/florina/load_gear(mob/living/carbon/human/new_human) - new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/security(new_human), WEAR_BODY) +/datum/equipment_preset/survivor/security/fiorina/load_gear(mob/living/carbon/human/new_human) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/liaison_suit/black(new_human), WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/holobadge(new_human), WEAR_ACCESSORY) new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/sec(new_human), WEAR_BACK) new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/vest/security(new_human), WEAR_JACKET) - new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet(new_human), WEAR_HEAD) - new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine(new_human), WEAR_HANDS) + new_human.equip_to_slot_or_del(new /obj/item/clothing/head/soft/sec/corp(new_human), WEAR_HEAD) + new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/veteran(new_human), WEAR_HANDS) new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/jackboots(new_human), WEAR_FEET) ..() -/datum/equipment_preset/survivor/colonial_marshal/florina +/datum/equipment_preset/survivor/colonial_marshal/fiorina name = "Survivor - United Americas Riot Officer" assignment = "United Americas Riot Officer" -/datum/equipment_preset/survivor/colonial_marshal/florina/load_gear(mob/living/carbon/human/new_human) +/datum/equipment_preset/survivor/colonial_marshal/fiorina/load_gear(mob/living/carbon/human/new_human) new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/ua_riot(new_human), WEAR_BODY) new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/sec(new_human), WEAR_BACK) new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/veteran/ua_riot(new_human), WEAR_JACKET) new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/marine/veteran/ua_riot(new_human), WEAR_HEAD) new_human.equip_to_slot_or_del(new /obj/item/prop/helmetgarb/riot_shield(new_human), WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine(new_human), WEAR_HANDS) - new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/jackboots(new_human), WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET) ..() -/datum/equipment_preset/survivor/engineer/florina - name = "Survivor - Florina Engineer" - assignment = "Florina Engineer" +/datum/equipment_preset/survivor/engineer/fiorina + name = "Survivor - Fiorina Engineer" + assignment = "Fiorina Engineer" -/datum/equipment_preset/survivor/engineer/florina/load_gear(mob/living/carbon/human/new_human) - new_human.equip_to_slot_or_del(new /obj/item/clothing/under/color/white(new_human), WEAR_BODY) +/datum/equipment_preset/survivor/engineer/fiorina/load_gear(mob/living/carbon/human/new_human) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/colonist/workwear/khaki(new_human), WEAR_BODY) new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/apron/overalls(new_human), WEAR_JACKET) new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/eng(new_human), WEAR_BACK) new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/jackboots(new_human), WEAR_FEET) diff --git a/code/modules/gear_presets/survivors/fiorina_sciannex/riot_in_progress_insert_fiorina_nightmare.dm b/code/modules/gear_presets/survivors/fiorina_sciannex/riot_in_progress_insert_fiorina_nightmare.dm new file mode 100644 index 000000000000..c09e6eee9385 --- /dev/null +++ b/code/modules/gear_presets/survivors/fiorina_sciannex/riot_in_progress_insert_fiorina_nightmare.dm @@ -0,0 +1,279 @@ +// loadouts for riot_in_progress.dmm nightmare, thematic survivor preset. + +/datum/equipment_preset/survivor/cmb + name = "Survivor - Colonial Marshal" + faction = FACTION_MARSHAL + faction_group = list(FACTION_MARSHAL, FACTION_MARINE, FACTION_SURVIVOR) + languages = list(LANGUAGE_ENGLISH, LANGUAGE_JAPANESE) + var/human_versus_human = FALSE + access = list( + ACCESS_LIST_UA, + ) + +//*************************************************CMB****************************************************/ + +/datum/equipment_preset/survivor/cmb/standard + name = "Survivor - Colonial Marshal Deputy(Riot Response)" + paygrade = PAY_SHORT_CMBD + role_comm_title = "CMB DEP" + flags = EQUIPMENT_PRESET_EXTRA + assignment = "CMB Deputy" + rank = JOB_CMB + skills = /datum/skills/cmb + +/datum/equipment_preset/survivor/cmb/standard/load_gear(mob/living/carbon/human/new_human) + + var/choice = rand(1,10) + new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/CMB/limited, WEAR_L_EAR) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/CM_uniform, WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/holobadge/cord, WEAR_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/cigarette, WEAR_FACE) + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/CMB, WEAR_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/pistol/holdout, WEAR_IN_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/explosive/grenade/high_explosive/m15/rubber, WEAR_IN_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/storage/belt/security/MP/CMB/full, WEAR_WAIST) + new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/veteran, WEAR_HANDS) + new_human.equip_to_slot_or_del(new /obj/item/clothing/head/CMB, WEAR_HEAD) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/veteran/pmc/knife, WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses/sechud, WEAR_EYES) + new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/survival/full, WEAR_L_STORE) + new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/sec, WEAR_BACK) + new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/pistol/holdout, WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/device/flashlight, WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/device/camera, WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/device/taperecorder, WEAR_IN_BACK) + + switch(choice) + if(1 to 6) + new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/storage/holster, WEAR_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/revolver/cmb, WEAR_IN_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/revolver/cmb/normalpoint, WEAR_IN_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/revolver/cmb/normalpoint, WEAR_IN_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/shotgun/pump/dual_tube/cmb, WEAR_J_STORE) + new_human.equip_to_slot_or_del(new /obj/item/restraint/handcuffs, WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/explosive/grenade/custom/teargas, WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/shotgun, WEAR_R_STORE) + new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/handful/shotgun/buckshot, WEAR_IN_R_STORE) + new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/handful/shotgun, WEAR_IN_R_STORE) + new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/handful/shotgun/beanbag, WEAR_IN_R_STORE) + new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/handful/shotgun/beanbag, WEAR_IN_R_STORE) + if(7 to 8) + new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/storage/holster, WEAR_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/pistol/highpower, WEAR_IN_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/pistol/highpower, WEAR_IN_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/pistol/highpower, WEAR_IN_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/shotgun/pump/dual_tube/cmb, WEAR_J_STORE) + new_human.equip_to_slot_or_del(new /obj/item/restraint/handcuffs, WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/explosive/plastic/breaching_charge/rubber, WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/shotgun, WEAR_R_STORE) + new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/handful/shotgun/buckshot, WEAR_IN_R_STORE) + new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/handful/shotgun, WEAR_IN_R_STORE) + new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/handful/shotgun/beanbag, WEAR_IN_R_STORE) + new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/handful/shotgun/beanbag, WEAR_IN_R_STORE) + if(9 to 10) + new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/storage/holster, WEAR_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/revolver/cmb, WEAR_IN_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/revolver/cmb/normalpoint, WEAR_IN_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/revolver/cmb/normalpoint, WEAR_IN_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/smg/mp5, WEAR_J_STORE) + new_human.equip_to_slot_or_del(new /obj/item/restraint/handcuffs, WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/device/motiondetector, WEAR_L_HAND) + new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/magazine, WEAR_R_STORE) + new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/smg/mp5, WEAR_IN_R_STORE) + new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/smg/mp5, WEAR_IN_R_STORE) + new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/smg/mp5, WEAR_IN_R_STORE) + +// cmb synth (of note /datum/equipment_preset/synth/survivor/cmb_synth also exists) +/datum/equipment_preset/synth/survivor/cmb + flags = EQUIPMENT_PRESET_STUB + +/datum/equipment_preset/synth/survivor/cmb/synth + name = "Survivor - Synthetic - CMB Investigative Synthetic(Riot Response)" + paygrade = PAY_SHORT_CMBS + idtype = /obj/item/card/id/deputy + role_comm_title = "CMB Syn" + flags = EQUIPMENT_PRESET_EXTRA + assignment = "CMB Investigative Synthetic" + rank = JOB_CMB_SYN + languages = ALL_SYNTH_LANGUAGES + skills = /datum/skills/synthetic/cmb + +/datum/equipment_preset/synth/survivor/cmb/synth/load_race(mob/living/carbon/human/new_human) + new_human.set_species(SYNTH_COLONY) + +/datum/equipment_preset/synth/survivor/cmb/synth/load_gear(mob/living/carbon/human/new_human) + //backpack + new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/security, WEAR_BACK) + new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/revolver/cmb/normalpoint, WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/revolver/cmb/normalpoint, WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/revolver/cmb, WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/device/autopsy_scanner, WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/explosive/plastic/breaching_charge/rubber, WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/explosive/grenade/custom/teargas, WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/explosive/grenade/custom/teargas, WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/device/camera, WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/device/taperecorder, WEAR_IN_BACK) + //face + new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/CMB/limited, WEAR_L_EAR) + new_human.equip_to_slot_or_del(new /obj/item/device/flashlight/pen, WEAR_R_EAR) + new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses/sechud, WEAR_EYES) + new_human.equip_to_slot_or_del(new /obj/item/clothing/head/CMB, WEAR_HEAD) + //uniform + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/CM_uniform, WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/holobadge/cord, WEAR_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/storage/droppouch, WEAR_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/device/defibrillator/upgraded, WEAR_IN_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/restraint/handcuffs, WEAR_IN_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/restraint/handcuffs, WEAR_IN_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/reagent_container/food/snacks/candy, WEAR_IN_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/storage/pill_bottle/imidazoline, WEAR_IN_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/CMB, WEAR_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/device/binoculars/range/designator, WEAR_IN_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/weapon/telebaton, WEAR_IN_JACKET) + //belt + new_human.equip_to_slot_or_del(new /obj/item/storage/belt/security/MP/CMB/synth, WEAR_WAIST) + //holding + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/veteran/pmc/knife, WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/veteran, WEAR_HANDS) + //pouches + new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/survival/synth/full, WEAR_L_STORE) + new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/tools/tactical, WEAR_R_STORE) + new_human.equip_to_slot_or_del(new /obj/item/tool/screwdriver/tactical, WEAR_IN_R_STORE) + new_human.equip_to_slot_or_del(new /obj/item/tool/crowbar/tactical, WEAR_IN_R_STORE) + new_human.equip_to_slot_or_del(new /obj/item/tool/wirecutters/tactical, WEAR_IN_R_STORE) + new_human.equip_to_slot_or_del(new /obj/item/tool/wrench, WEAR_IN_R_STORE) + new_human.equip_to_slot_or_del(new /obj/item/device/multitool, WEAR_IN_R_STORE) + new_human.equip_to_slot_or_del(new /obj/item/stack/cable_coil, WEAR_IN_R_STORE) + new_human.equip_to_slot_or_del(new /obj/item/tool/weldingtool/hugetank, WEAR_IN_R_STORE) + +//************************************************UA RIOT POLICE****************************************************/ + +/datum/equipment_preset/survivor/cmb/ua + name = "Survivor - United Americas Riot Officer(Riot Response)" + paygrade = PAY_SHORT_CPO + role_comm_title = "UA RCP" + flags = EQUIPMENT_PRESET_EXTRA + assignment = "United Americas Police Officer" + skills = /datum/skills/civilian/survivor/marshal + idtype = /obj/item/card/id/silver + +/datum/equipment_preset/survivor/cmb/ua/load_gear(mob/living/carbon/human/new_human) + + var/choice = rand(1,10) + new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/CMB/limited, WEAR_L_EAR) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/ua_riot, WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/veteran/ua_riot, WEAR_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/marine/veteran/ua_riot, WEAR_HEAD) + new_human.equip_to_slot_or_del(new /obj/item/prop/helmetgarb/riot_shield, WEAR_IN_HELMET) + new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/sec, WEAR_BACK) + new_human.equip_to_slot_or_del(new /obj/item/restraint/handcuffs, WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/restraint/handcuffs, WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/explosive/grenade/custom/teargas, WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/explosive/grenade/custom/teargas, WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/device/flashlight, WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/storage/belt/security/MP/full, WEAR_WAIST) + new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine, WEAR_HANDS) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/jackboots, WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses/sechud, WEAR_EYES) + new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/survival/full, WEAR_L_STORE) + + switch(choice) + if(1 to 6) + new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/storage/holster, WEAR_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/pistol/b92fs, WEAR_IN_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/pistol/b92fs, WEAR_IN_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/pistol/b92fs, WEAR_IN_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/rifle/m16, WEAR_J_STORE) + new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/magazine, WEAR_R_STORE) + new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/m16, WEAR_IN_R_STORE) + new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/m16, WEAR_IN_R_STORE) + new_human.equip_to_slot_or_del(new /obj/item/weapon/classic_baton, WEAR_R_HAND) + if(7) + new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/storage/holster, WEAR_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/pistol/highpower, WEAR_IN_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/pistol/highpower, WEAR_IN_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/pistol/highpower, WEAR_IN_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/shotgun/combat/riot, WEAR_J_STORE) + new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/shotgun, WEAR_R_STORE) + new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/handful/shotgun/beanbag, WEAR_IN_R_STORE) + new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/handful/shotgun/beanbag, WEAR_IN_R_STORE) + new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/handful/shotgun/beanbag, WEAR_IN_R_STORE) + new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/handful/shotgun/beanbag, WEAR_IN_R_STORE) + new_human.equip_to_slot_or_del(new /obj/item/weapon/classic_baton, WEAR_R_HAND) + new_human.equip_to_slot_or_del(new /obj/item/weapon/shield/riot, WEAR_L_HAND) + if(8) + new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/storage/holster, WEAR_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/pistol/m4a3, WEAR_IN_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/pistol, WEAR_IN_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/pistol/rubber, WEAR_IN_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/launcher/grenade/m81/riot, WEAR_J_STORE) + new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/explosive, WEAR_R_STORE) + new_human.equip_to_slot_or_del(new /obj/item/explosive/grenade/slug/baton, WEAR_IN_R_STORE) + new_human.equip_to_slot_or_del(new /obj/item/explosive/grenade/slug/baton, WEAR_IN_R_STORE) + new_human.equip_to_slot_or_del(new /obj/item/explosive/grenade/slug/baton, WEAR_IN_R_STORE) + new_human.equip_to_slot_or_del(new /obj/item/explosive/grenade/slug/baton, WEAR_IN_R_STORE) + new_human.equip_to_slot_or_del(new /obj/item/explosive/grenade/custom/teargas, WEAR_IN_R_STORE) + new_human.equip_to_slot_or_del(new /obj/item/explosive/grenade/custom/teargas, WEAR_IN_R_STORE) + if(9 to 10) + new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/storage/holster, WEAR_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/pistol/highpower/black, WEAR_IN_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/pistol/highpower, WEAR_IN_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/pistol/highpower, WEAR_IN_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/explosive/plastic/breaching_charge/rubber, WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/smg/mp5, WEAR_J_STORE) + new_human.equip_to_slot_or_del(new /obj/item/device/motiondetector, WEAR_L_HAND) + new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/magazine, WEAR_R_STORE) + new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/smg/mp5, WEAR_IN_R_STORE) + new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/smg/mp5, WEAR_IN_R_STORE) + +// ua synth +/datum/equipment_preset/synth/survivor/cmb/ua_synth + name = "Survivor - Synthetic - UA Police Synthetic(Riot Response)" + paygrade = PAY_SHORT_CMBS + role_comm_title = "UA Syn" + flags = EQUIPMENT_PRESET_EXTRA + assignment = "UA Police Synthetic" + languages = ALL_SYNTH_LANGUAGES + skills = /datum/skills/colonial_synthetic + idtype = /obj/item/card/id/silver + +/datum/equipment_preset/synth/survivor/cmb/ua_synth/load_race(mob/living/carbon/human/new_human) + new_human.set_species(SYNTH_COLONY) + +/datum/equipment_preset/synth/survivor/cmb/ua_synth/load_gear(mob/living/carbon/human/new_human) + //backpack + new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/sec, WEAR_BACK) + new_human.equip_to_slot_or_del(new /obj/item/restraint/handcuffs, WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/restraint/handcuffs, WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/explosive/grenade/custom/teargas, WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/explosive/grenade/custom/teargas, WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/storage/box/packet/baton_slug, WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/m16, WEAR_IN_BACK) + //face + new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/CMB/limited, WEAR_L_EAR) + new_human.equip_to_slot_or_del(new /obj/item/device/flashlight/pen, WEAR_R_EAR) + new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses/sechud, WEAR_EYES) + new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/marine/veteran/ua_riot, WEAR_HEAD) + new_human.equip_to_slot_or_del(new /obj/item/prop/helmetgarb/riot_shield, WEAR_IN_HELMET) + //uniform + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/ua_riot, WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/holobadge/cord, WEAR_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/storage/droppouch, WEAR_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/restraint/handcuffs, WEAR_IN_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/restraint/handcuffs, WEAR_IN_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/restraint/handcuffs, WEAR_IN_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/storage/box/flashbangs, WEAR_IN_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/explosive/grenade/custom/teargas, WEAR_IN_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/veteran/ua_riot/synth, WEAR_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/weapon/telebaton, WEAR_IN_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/explosive/grenade/flashbang, WEAR_IN_JACKET) + //belt + new_human.equip_to_slot_or_del(new /obj/item/storage/belt/security/MP/full/synth, WEAR_WAIST) + //holding + new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine, WEAR_HANDS) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/jackboots, WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/weapon/classic_baton, WEAR_R_HAND) + new_human.equip_to_slot_or_del(new /obj/item/weapon/shield/riot, WEAR_L_HAND) + //pouches + new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/survival/synth/full, WEAR_L_STORE) + new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/tools/full, WEAR_R_STORE) diff --git a/code/modules/gear_presets/survivors/kutjevo/preset_kutjevo.dm b/code/modules/gear_presets/survivors/kutjevo/preset_kutjevo.dm index 8a9161f1802a..eb04cbd5a94e 100644 --- a/code/modules/gear_presets/survivors/kutjevo/preset_kutjevo.dm +++ b/code/modules/gear_presets/survivors/kutjevo/preset_kutjevo.dm @@ -5,9 +5,10 @@ /datum/equipment_preset/survivor/engineer/kutjevo/load_gear(mob/living/carbon/human/new_human) add_random_kutjevo_survivor_uniform(new_human) add_random_kutjevo_survivor_equipment(new_human) - new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET) - new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/black(new_human), WEAR_HANDS) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/jackboots(new_human), WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/yellow(new_human), WEAR_HANDS) new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/eng(new_human), WEAR_BACK) + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/hazardvest/black(new_human), WEAR_JACKET) ..() /datum/equipment_preset/survivor/chaplain/kutjevo @@ -17,7 +18,7 @@ /datum/equipment_preset/survivor/chaplain/kutjevo/load_gear(mob/living/carbon/human/new_human) add_random_kutjevo_survivor_uniform(new_human) add_random_kutjevo_survivor_equipment(new_human) - new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/jackboots(new_human), WEAR_FEET) new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/black(new_human), WEAR_HANDS) ..() @@ -31,9 +32,8 @@ add_random_kutjevo_survivor_uniform(new_human) add_random_kutjevo_survivor_equipment(new_human) new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/sec(new_human), WEAR_BACK) - new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET) - new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/black(new_human), WEAR_HANDS) - new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/jackboots(new_human), WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/veteran(new_human), WEAR_HANDS) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/corporate(new_human), WEAR_FEET) ..() /datum/equipment_preset/survivor/doctor/kutjevo @@ -47,8 +47,8 @@ new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/hud/health(new_human), WEAR_EYES) add_random_kutjevo_survivor_uniform(new_human) add_random_kutjevo_survivor_equipment(new_human) - new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET) - new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/black(new_human), WEAR_HANDS) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/jackboots(new_human), WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/latex(new_human), WEAR_HANDS) ..() /datum/equipment_preset/survivor/colonial_marshal/kutjevo @@ -58,7 +58,7 @@ /datum/equipment_preset/survivor/colonial_marshal/kutjevo/load_gear(mob/living/carbon/human/new_human) add_random_kutjevo_survivor_uniform(new_human) add_random_kutjevo_survivor_equipment(new_human) - new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/veteran/pmc(new_human), WEAR_FEET) new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/CMB/limited(new_human), WEAR_L_EAR) ..() @@ -69,8 +69,7 @@ /datum/equipment_preset/survivor/trucker/kutjevo/load_gear(mob/living/carbon/human/new_human) add_random_kutjevo_survivor_uniform(new_human) add_random_kutjevo_survivor_equipment(new_human) - new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET) - new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/black(new_human), WEAR_HANDS) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/jackboots(new_human), WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/yellow(new_human), WEAR_HANDS) new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel(new_human), WEAR_BACK) - ..() diff --git a/code/modules/gear_presets/survivors/lv_522/forcon_survivors.dm b/code/modules/gear_presets/survivors/lv_522/forcon_survivors.dm index 34cbc8e0ab9c..4e9ab770fb2f 100644 --- a/code/modules/gear_presets/survivors/lv_522/forcon_survivors.dm +++ b/code/modules/gear_presets/survivors/lv_522/forcon_survivors.dm @@ -5,7 +5,7 @@ idtype = /obj/item/card/id/dogtag role_comm_title = "FORECON" rank = JOB_SURVIVOR - faction_group = list(FACTION_USCM, FACTION_SURVIVOR) + faction_group = list(FACTION_MARINE, FACTION_SURVIVOR) flags = EQUIPMENT_PRESET_START_OF_ROUND access = list( ACCESS_CIVILIAN_PUBLIC, @@ -13,6 +13,12 @@ ACCESS_CIVILIAN_LOGISTICS, ) + dress_shoes = list(/obj/item/clothing/shoes/dress) + dress_gloves = list(/obj/item/clothing/gloves/marine/dress) + dress_under = list(/obj/item/clothing/under/marine/dress/blues/senior) + dress_over = list(/obj/item/clothing/suit/storage/jacket/marine/dress/blues/nco) + dress_hat = list(/obj/item/clothing/head/marine/dress_cover) + /datum/equipment_preset/survivor/forecon/load_gear(mob/living/carbon/human/new_human) var/obj/item/clothing/under/marine/reconnaissance/uniform = new() var/obj/item/clothing/accessory/storage/droppouch/pouch = new() @@ -210,6 +216,10 @@ skills = /datum/skills/military/survivor/forecon_squad_leader paygrade = PAY_SHORT_MO1 + dress_under = list(/obj/item/clothing/under/marine/dress/blues/senior) + dress_over = list(/obj/item/clothing/suit/storage/jacket/marine/dress/blues/officer) + dress_hat = list(/obj/item/clothing/head/marine/dress_cover/officer) + /datum/equipment_preset/survivor/forecon/squad_leader/load_gear(mob/living/carbon/human/new_human) var/obj/item/clothing/under/marine/reconnaissance/uniform = new() var/obj/item/clothing/accessory/storage/droppouch/pouch = new() @@ -238,6 +248,10 @@ idtype = /obj/item/card/id/gold role_comm_title = "FORECON CO" + dress_under = list(/obj/item/clothing/under/marine/dress/blues/senior) + dress_over = list(/obj/item/clothing/suit/storage/jacket/marine/dress/blues/officer) + dress_hat = list(/obj/item/clothing/head/marine/dress_cover/officer) + /datum/equipment_preset/survivor/forecon/major/load_gear(mob/living/carbon/human/new_human) var/obj/item/clothing/under/marine/reconnaissance/uniform = new() var/obj/item/clothing/accessory/storage/droppouch/pouch = new() @@ -264,7 +278,7 @@ //----------------------\\ /datum/equipment_preset/synth/survivor/forecon - name = "Survivor - USCM Synthetic" + name = "Survivor - Synthetic - FORECON Synth" assignment = JOB_FORECON_SYN faction_group = list(FACTION_MARINE, FACTION_SURVIVOR) idtype = /obj/item/card/id/gold diff --git a/code/modules/gear_presets/survivors/lv_624/corporate_dome_insert_lv624.dm b/code/modules/gear_presets/survivors/lv_624/corporate_dome_insert_lv624.dm new file mode 100644 index 000000000000..2c8ec04594ad --- /dev/null +++ b/code/modules/gear_presets/survivors/lv_624/corporate_dome_insert_lv624.dm @@ -0,0 +1,51 @@ +// /obj/effect/landmark/survivor_spawner/lv624_corporate_dome/cl +// corporatedomehold.dmm + +/datum/equipment_preset/survivor/wy/executive + name = "Survivor - LV-624 Paranoid Corporate Liaison" + flags = EQUIPMENT_PRESET_START_OF_ROUND + paygrade = PAY_SHORT_WYC5 + skills = /datum/skills/civilian/survivor/manager + assignment = "LV-624 Corporate Liaison" + idtype = /obj/item/card/id/silver/clearance_badge/cl + faction_group = list(FACTION_WY, FACTION_SURVIVOR) + access = list( + ACCESS_WY_GENERAL, + ACCESS_WY_COLONIAL, + ACCESS_WY_MEDICAL, + ACCESS_WY_SECURITY, + ACCESS_WY_RESEARCH, + ACCESS_WY_ARMORY, + ACCESS_CIVILIAN_PUBLIC, + ACCESS_CIVILIAN_RESEARCH, + ACCESS_CIVILIAN_ENGINEERING, + ACCESS_CIVILIAN_LOGISTICS, + ACCESS_CIVILIAN_BRIG, + ACCESS_CIVILIAN_MEDBAY, + ACCESS_CIVILIAN_COMMAND, + ) + languages = list(LANGUAGE_ENGLISH, LANGUAGE_JAPANESE, LANGUAGE_RUSSIAN) + + survivor_variant = CORPORATE_SURVIVOR + +/datum/equipment_preset/survivor/wy/executive/load_gear(mob/living/carbon/human/new_human) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/liaison_suit/field(new_human), WEAR_BODY) + if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD]) + add_ice_colony_survivor_equipment(new_human) + new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/marine/veteran/pmc(new_human), WEAR_HEAD) + if(new_human.disabilities & NEARSIGHTED) + new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses/prescription(new_human), WEAR_EYES) + else + new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses(new_human), WEAR_EYES) + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/vest(new_human), WEAR_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/m4a3/vp78(new_human), WEAR_WAIST) + new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/WY(new_human), WEAR_L_EAR) + new_human.equip_to_slot_or_del(new /obj/item/storage/secure/briefcase(new_human), WEAR_L_HAND) + new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/lockable/liaison(new_human), WEAR_BACK) + new_human.equip_to_slot_or_del(new /obj/item/reagent_container/glass/beaker/vial/random/good(new_human), WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/stack/sheet/metal/med_small_stack(new_human), WEAR_IN_BACK) + add_random_cl_survivor_loot(new_human) + add_random_cl_survivor_loot(new_human) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/laceup(new_human), WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/survival/full(new_human), WEAR_L_STORE) + new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/document(new_human), WEAR_R_STORE) diff --git a/code/modules/gear_presets/survivors/lv_624/preset_lv.dm b/code/modules/gear_presets/survivors/lv_624/preset_lv.dm index a2e55b899c9b..a56432b80b89 100644 --- a/code/modules/gear_presets/survivors/lv_624/preset_lv.dm +++ b/code/modules/gear_presets/survivors/lv_624/preset_lv.dm @@ -3,24 +3,25 @@ assignment = "LV-624 Archeologist" /datum/equipment_preset/survivor/scientist/lv/load_gear(mob/living/carbon/human/new_human) - new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/officer/researcher(new_human), WEAR_BODY) - new_human.equip_to_slot_or_del(new /obj/item/clothing/head/cmcap/boonie(new_human), WEAR_HEAD) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/colonist/workwear/blue(new_human), WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/utility_vest(new_human), WEAR_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/head/cmcap/boonie/tan(new_human), WEAR_HEAD) new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/latex(new_human), WEAR_HANDS) - new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/surgical(new_human), WEAR_FACE) - new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/science(new_human), WEAR_EYES) + new_human.equip_to_slot_or_del(new /obj/item/tool/shovel/spade(new_human), WEAR_L_HAND) + new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses/aviator(new_human), WEAR_EYES) new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel(new_human), WEAR_BACK) - new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/laceup/brown(new_human), WEAR_FEET) ..() /datum/equipment_preset/survivor/colonial_marshal/lv - name = "Survivor - LV-624 Head of Security" - assignment = "LV-624 Head of Security" + name = "Survivor - LV-624 Colonial Marshal Deputy" + assignment = "CMB Deputy" /datum/equipment_preset/survivor/colonial_marshal/lv/load_gear(mob/living/carbon/human/new_human) - new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/head_of_security/navyblue(new_human), WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/CM_uniform(new_human), WEAR_BODY) new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/sec(new_human), WEAR_BACK) - new_human.equip_to_slot_or_del(new /obj/item/clothing/head/beret/sec/hos(new_human), WEAR_HEAD) - new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/head/CMB(new_human), WEAR_HEAD) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/veteran/pmc(new_human), WEAR_FEET) ..() /datum/equipment_preset/survivor/trucker/lv @@ -28,9 +29,11 @@ assignment = "LV-624 Cargo Technician" /datum/equipment_preset/survivor/trucker/lv/load_gear(mob/living/carbon/human/new_human) - new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/cargo(new_human), WEAR_BODY) + var/obj/item/clothing/under/colonist/workwear/khaki/uniform = new() + uniform.roll_suit_jacket(new_human) + new_human.equip_to_slot_or_del(uniform, WEAR_BODY) new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/meson(new_human), WEAR_EYES) - new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/brown(new_human), WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/laceup(new_human), WEAR_FEET) new_human.equip_to_slot_or_del(new /obj/item/clothing/head/soft/yellow(new_human), WEAR_HEAD) new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel(new_human), WEAR_BACK) ..() @@ -62,8 +65,13 @@ assignment = "LV-624 Emergency Medical Technician" /datum/equipment_preset/survivor/doctor/lv/load_gear(mob/living/carbon/human/new_human) - new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/medical(new_human), WEAR_BODY) - new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/surgical(new_human), WEAR_FACE) + var/obj/item/clothing/under/colonist/workwear/blue/uniform = new() + uniform.roll_suit_jacket(new_human) + new_human.equip_to_slot_or_del(uniform, WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/stethoscope(new_human), WEAR_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/windbreaker/windbreaker_fr(new_human), WEAR_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/head/soft/blue(new_human), WEAR_HEAD) + new_human.equip_to_slot_or_del(new /obj/item/roller(new_human), WEAR_L_HAND) new_human.equip_to_slot_or_del(new /obj/item/storage/firstaid/adv(new_human.back), WEAR_IN_BACK) ..() @@ -73,11 +81,24 @@ languages = list(LANGUAGE_ENGLISH, LANGUAGE_JAPANESE) /datum/equipment_preset/survivor/security/lv/load_gear(mob/living/carbon/human/new_human) - new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/officer/formal/servicedress(new_human), WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/colonist/white_service(new_human), WEAR_BODY) new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/WY(new_human), WEAR_L_EAR) new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/sec(new_human), WEAR_BACK) new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/vest/security(new_human), WEAR_JACKET) new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/marine/veteran/pmc(new_human), WEAR_HEAD) - new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/jungle(new_human), WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/corporate(new_human), WEAR_FEET) ..() +/datum/equipment_preset/survivor/corporate/lv + name = "Survivor - LV-624 Corporate Liaison" + assignment = "LV-624 Corporate Liaison" + +/datum/equipment_preset/survivor/corporate/lv/load_gear(mob/living/carbon/human/new_human) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/liaison_suit/field(new_human), WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/lockable/liaison(new_human), WEAR_BACK) + if(new_human.disabilities & NEARSIGHTED) + new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses/prescription(new_human), WEAR_EYES) + else + new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses(new_human), WEAR_EYES) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/laceup(new_human), WEAR_FEET) + ..() diff --git a/code/modules/gear_presets/survivors/misc.dm b/code/modules/gear_presets/survivors/misc.dm index 15eae8dfe5d4..329bac97a89f 100644 --- a/code/modules/gear_presets/survivors/misc.dm +++ b/code/modules/gear_presets/survivors/misc.dm @@ -1,13 +1,13 @@ /* -everything bellow isn't used or out of place. +Everything below isn't used or out of place. */ -// ----- Prisioner Survivors -// after double check prisoner isn't being used anywhere. +// ----- Prisoner Survivors +// Used in Fiorina Science Annex. /datum/equipment_preset/survivor/prisoner name = "Survivor - Prisoner" assignment = "Prisoner" @@ -19,17 +19,16 @@ everything bellow isn't used or out of place. /datum/equipment_preset/survivor/prisoner/load_gear(mob/living/carbon/human/new_human) new_human.equip_to_slot_or_del(new /obj/item/clothing/under/color/orange(new_human), WEAR_BODY) - if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD]) - add_ice_colony_survivor_equipment(new_human) new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel(new_human), WEAR_BACK) - if(prob(50)) new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet(new_human), WEAR_HEAD) + if(prob(50)) new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/riot(new_human), WEAR_HEAD) if(prob(50)) new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/vest(new_human.back), WEAR_JACKET) new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/orange(new_human), WEAR_FEET) new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/general/medium(new_human), WEAR_R_STORE) add_survivor_weapon_civilian(new_human) + add_ice_colony_survivor_equipment(new_human) ..() -// after double check gangleader isn't being used anywhere. +// Used in Fiorina Science Annex. /datum/equipment_preset/survivor/gangleader name = "Survivor - Gang Leader" assignment = "Gang Leader" @@ -40,18 +39,17 @@ everything bellow isn't used or out of place. /datum/equipment_preset/survivor/gangleader/load_gear(mob/living/carbon/human/new_human) new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel(new_human), WEAR_BACK) new_human.equip_to_slot_or_del(new /obj/item/clothing/under/color/orange(new_human), WEAR_BODY) - if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD]) - add_ice_colony_survivor_equipment(new_human) - if(prob(50)) new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet(new_human), WEAR_HEAD) + if(prob(50)) new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/riot(new_human), WEAR_HEAD) if(prob(50)) new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/vest(new_human.back), WEAR_JACKET) new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/orange(new_human), WEAR_FEET) new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/general/large(new_human), WEAR_R_STORE) add_survivor_weapon_civilian(new_human) + add_ice_colony_survivor_equipment(new_human) ..() // ----- Civilian Survivor -// after double check civilian isn't being used anywhere. +// Used in LV-624, Solaris Ridge, Trijent Dam, Fiorina Science Annex and Kutjevo Refinery. /datum/equipment_preset/survivor/civilian name = "Survivor - Civilian" assignment = "Civilian" @@ -60,6 +58,8 @@ everything bellow isn't used or out of place. access = list(ACCESS_CIVILIAN_PUBLIC) /datum/equipment_preset/survivor/civilian/load_gear(mob/living/carbon/human/new_human) + if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD]) + add_ice_colony_survivor_equipment(new_human) var/random_gear = rand(0, 3) switch(random_gear) if(0) // Normal Colonist @@ -71,7 +71,7 @@ everything bellow isn't used or out of place. new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/vir(new_human), WEAR_BACK) new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/hazardvest(new_human), WEAR_JACKET) new_human.equip_to_slot_or_del(new /obj/item/clothing/head/soft/purple(new_human), WEAR_HEAD) - new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/mgoggles(new_human), WEAR_EYES) + new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/regular/hipster(new_human), WEAR_EYES) new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/purple(new_human), WEAR_HANDS) new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/galoshes(new_human), WEAR_FEET) if(2) // Bar Tender @@ -80,17 +80,14 @@ everything bellow isn't used or out of place. new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/lawyer/bluejacket(new_human), WEAR_JACKET) new_human.equip_to_slot_or_del(new /obj/item/clothing/head/bowlerhat(new_human), WEAR_HEAD) new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/fake_mustache(new_human), WEAR_FACE) - new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/black(new_human), WEAR_HANDS) - new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/laceup(new_human), WEAR_FEET) new_human.equip_to_slot_or_del(new /obj/item/storage/beer_pack(new_human.back), WEAR_IN_BACK) if(3) // Botanist - new_human.equip_to_slot_or_del(new /obj/item/clothing/under/colonist(new_human), WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/colonist/workwear/green(new_human), WEAR_BODY) new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/hyd(new_human), WEAR_BACK) new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/apron(new_human), WEAR_JACKET) - new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/laceup/brown(new_human), WEAR_FEET) new_human.equip_to_slot_or_del(new /obj/item/tool/hatchet(new_human.back), WEAR_IN_BACK) - if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD]) - add_ice_colony_survivor_equipment(new_human) new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/norm(new_human), WEAR_BACK) new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/general(new_human), WEAR_R_STORE) add_survivor_weapon_civilian(new_human) @@ -109,20 +106,20 @@ everything bellow isn't used or out of place. access = list(ACCESS_CIVILIAN_PUBLIC) /datum/equipment_preset/survivor/salesman/load_gear(mob/living/carbon/human/new_human) - new_human.equip_to_slot_or_del(new /obj/item/clothing/under/liaison_suit(new_human), WEAR_BODY) - if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD]) - add_ice_colony_survivor_equipment(new_human) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/liaison_suit/brown(new_human), WEAR_BODY) new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/wcoat(new_human), WEAR_JACKET) - new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/laceup(new_human), WEAR_FEET) new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/document(new_human), WEAR_R_STORE) + new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel(new_human), WEAR_BACK) add_random_cl_survivor_loot(new_human) add_survivor_weapon_civilian(new_human) + add_ice_colony_survivor_equipment(new_human) ..() // ----- Roughneck Survivor -// after double check roughneck isn't being used anywhere. +// Used in Trijent Dam. /datum/equipment_preset/survivor/roughneck name = "Survivor - Roughneck" assignment = "Roughneck" @@ -131,23 +128,21 @@ everything bellow isn't used or out of place. access = list(ACCESS_CIVILIAN_PUBLIC) /datum/equipment_preset/survivor/roughneck/load_gear(mob/living/carbon/human/new_human) - new_human.equip_to_slot_or_del(new /obj/item/clothing/under/color/white(new_human), WEAR_BODY) - if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD]) - add_ice_colony_survivor_equipment(new_human) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/colonist/workwear/blue(new_human), WEAR_BODY) new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/apron/overalls(new_human), WEAR_JACKET) new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel(new_human), WEAR_BACK) - new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/rebreather/scarf/tacticalmask/green(new_human), WEAR_FACE) + new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/rebreather/scarf/tacticalmask/black(new_human), WEAR_FACE) new_human.equip_to_slot_or_del(new /obj/item/clothing/head/beret/centcom(new_human), WEAR_HEAD) - new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine(new_human), WEAR_HANDS) - new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/centcom(new_human), WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/veteran(new_human), WEAR_HANDS) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/jackboots(new_human), WEAR_FEET) new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/magazine/large(new_human), WEAR_R_STORE) add_pmc_survivor_weapon(new_human) - + add_ice_colony_survivor_equipment(new_human) ..() // ----- Bum Survivor -// after double check beachbum isn't being used anywhere. +// Used in New Varadero. /datum/equipment_preset/survivor/beachbum name = "Survivor - Beach Bum" assignment = "Beach Bum" @@ -157,23 +152,21 @@ everything bellow isn't used or out of place. /datum/equipment_preset/survivor/beachbum/load_gear(mob/living/carbon/human/new_human) new_human.equip_to_slot_or_del(new /obj/item/clothing/under/shorts/red(new_human), WEAR_BODY) - if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD]) - add_ice_colony_survivor_equipment(new_human) new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel(new_human), WEAR_BACK) - new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/cigarette(new_human), WEAR_FACE) + new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/cigarette/weed(new_human), WEAR_FACE) new_human.equip_to_slot_or_del(new /obj/item/clothing/head/cmcap/boonie(new_human), WEAR_HEAD) - new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/botanic_leather(new_human), WEAR_HANDS) + new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/brown(new_human), WEAR_HANDS) new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/sandal(new_human), WEAR_FEET) new_human.equip_to_slot_or_del(new /obj/item/storage/beer_pack(new_human.back), WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/tool/kitchen/knife/butcher(new_human.back), WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/storage/fancy/cigarettes/wypacket(new_human.back), WEAR_IN_BACK) add_survivor_weapon_civilian(new_human) - + add_ice_colony_survivor_equipment(new_human) ..() // ----- WY Survivors -// after double check goon isn't being used anywhere. +// Used in LV-624. /datum/equipment_preset/survivor/goon name = "Survivor - Corporate Security Goon" flags = EQUIPMENT_PRESET_START_OF_ROUND @@ -182,7 +175,7 @@ everything bellow isn't used or out of place. idtype = /obj/item/card/id/silver/cl skills = /datum/skills/civilian/survivor/goon languages = list(LANGUAGE_ENGLISH, LANGUAGE_JAPANESE) - access = list(ACCESS_CIVILIAN_PUBLIC, ACCESS_CIVILIAN_COMMAND, ACCESS_CIVILIAN_BRIG) + access = list(ACCESS_CIVILIAN_PUBLIC, ACCESS_CIVILIAN_COMMAND, ACCESS_CIVILIAN_BRIG, ACCESS_WY_COLONIAL) survivor_variant = SECURITY_SURVIVOR @@ -211,8 +204,8 @@ everything bellow isn't used or out of place. // ----- Mercenary Survivors -// after double check pmc/miner/one isn't being used anywhere. -/datum/equipment_preset/survivor/pmc/miner/one +// after double check pmc/miner isn't being used anywhere. +/datum/equipment_preset/survivor/pmc/miner name = "Survivor - Mercenary" flags = EQUIPMENT_PRESET_START_OF_ROUND @@ -221,7 +214,7 @@ everything bellow isn't used or out of place. flags = EQUIPMENT_PRESET_START_OF_ROUND access = list(ACCESS_CIVILIAN_PUBLIC) -/datum/equipment_preset/survivor/pmc/miner/one/load_gear(mob/living/carbon/human/new_human) +/datum/equipment_preset/survivor/pmc/miner/load_gear(mob/living/carbon/human/new_human) new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/veteran/mercenary/miner, WEAR_BODY) new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/veteran/mercenary/miner, WEAR_JACKET) new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/marine/veteran/mercenary/miner, WEAR_HEAD) @@ -242,7 +235,7 @@ everything bellow isn't used or out of place. new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/veteran/freelancer, WEAR_BODY) new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/faction/freelancer, WEAR_JACKET) - new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/upp, WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/upp/knife, WEAR_FEET) new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/veteran/pmc, WEAR_HANDS) spawn_merc_helmet(new_human) new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/dutch, WEAR_L_EAR) @@ -252,7 +245,7 @@ everything bellow isn't used or out of place. ..() -// after double check /new_varadero/commander isn't being used anywhere. +// New Varadero CO Survivor. /datum/equipment_preset/survivor/new_varadero/commander name = "Survivor - USASF Commander" assignment = "USASF Commander" @@ -297,19 +290,10 @@ everything bellow isn't used or out of place. // ----- Hostile Survivors -/* - -datum/equipment_preset/survivor/clf/cold is never used -and as a three proc attach to it that are defacto never used eitheir. - -handled proc in datum/equipment_preset/survivor/clf/cold: -spawn_rebel_suit -spawn_rebel_helmet -spawn_rebel_shoes - -*/ +/// used in Shivas Snowball /datum/equipment_preset/survivor/clf/cold + name = "CLF Survivor (Cold)" //children of spawn rebel shoes proc /datum/equipment_preset/survivor/clf/cold/spawn_rebel_suit(mob/living/carbon/human/human) diff --git a/code/modules/gear_presets/survivors/new_varadero/preset_new_varadero.dm b/code/modules/gear_presets/survivors/new_varadero/preset_new_varadero.dm index daa3a8ec019b..7f0ef0072ddc 100644 --- a/code/modules/gear_presets/survivors/new_varadero/preset_new_varadero.dm +++ b/code/modules/gear_presets/survivors/new_varadero/preset_new_varadero.dm @@ -1,13 +1,13 @@ /datum/equipment_preset/survivor/security/nv name = "Survivor - New Varadero Security Guard" assignment = "United Americas Peacekeeper" - languages = list(LANGUAGE_ENGLISH, LANGUAGE_JAPANESE) /datum/equipment_preset/survivor/security/nv/load_gear(mob/living/carbon/human/new_human) new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/ua_riot(new_human), WEAR_BODY) new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/sec(new_human), WEAR_BACK) - new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/vest/security(new_human), WEAR_JACKET) - new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/black(new_human), WEAR_HANDS) + new_human.equip_to_slot_or_del(new /obj/item/prop/helmetgarb/riot_shield(new_human), WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/veteran/ua_riot(new_human), WEAR_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/veteran(new_human), WEAR_HANDS) new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/marine/veteran/ua_riot(new_human), WEAR_HEAD) new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET) ..() @@ -29,8 +29,8 @@ /datum/equipment_preset/survivor/scientist/nv/load_gear(mob/living/carbon/human/new_human) new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/officer/researcher(new_human), WEAR_BODY) - new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/labcoat(new_human), WEAR_JACKET) - new_human.equip_to_slot_or_del(new /obj/item/clothing/head/cmcap/boonie(new_human), WEAR_HEAD) + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/labcoat/researcher(new_human), WEAR_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/head/beret/cm/tan(new_human), WEAR_HEAD) new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/latex(new_human), WEAR_HANDS) new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/surgical(new_human), WEAR_FACE) new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/science(new_human), WEAR_EYES) @@ -38,12 +38,12 @@ new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/laceup(new_human), WEAR_FEET) ..() -/datum/equipment_preset/survivor/interstellar_commerce_commission_liason/nv +/datum/equipment_preset/survivor/interstellar_commerce_commission_liaison/nv name = "Survivor - Interstellar Commerce Commission Liaison New Varadero" assignment = "Interstellar Commerce Commission Corporate Liaison" -/datum/equipment_preset/survivor/interstellar_commerce_commission_liason/nv/load_gear(mob/living/carbon/human/new_human) - new_human.equip_to_slot_or_del(new /obj/item/clothing/under/liaison_suit/formal(new_human), WEAR_BODY) +/datum/equipment_preset/survivor/interstellar_commerce_commission_liaison/nv/load_gear(mob/living/carbon/human/new_human) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/liaison_suit/corporate_formal(new_human), WEAR_BODY) new_human.equip_to_slot_or_del(new /obj/item/clothing/head/hardhat/white(new_human), WEAR_HEAD) new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/hazardvest/black(new_human), WEAR_JACKET) new_human.equip_to_slot_or_del(new /obj/item/device/flashlight, WEAR_J_STORE) @@ -82,7 +82,6 @@ /datum/equipment_preset/survivor/chaplain/nv/load_gear(mob/living/carbon/human/new_human) new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/chaplain(new_human), WEAR_BODY) - new_human.equip_to_slot_or_del(new /obj/item/clothing/head/cmcap/boonie(new_human), WEAR_HEAD) new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/norm(new_human), WEAR_BACK) new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/priest_robe(new_human), WEAR_JACKET) ..() diff --git a/code/modules/gear_presets/survivors/shivas_snowball/panic_room_insert_shivas.dm b/code/modules/gear_presets/survivors/shivas_snowball/panic_room_insert_shivas.dm new file mode 100644 index 000000000000..9f1e2c705efb --- /dev/null +++ b/code/modules/gear_presets/survivors/shivas_snowball/panic_room_insert_shivas.dm @@ -0,0 +1,43 @@ +// /obj/effect/landmark/survivor_spawner/shivas_assistant_manager +// panic_room_insert_shivas.dmm + +/datum/equipment_preset/survivor/wy/asstmanager + name = "Survivor - Corporate Assistant Manager" + flags = EQUIPMENT_PRESET_EXTRA + paygrade = PAY_SHORT_WYC7 + skills = /datum/skills/civilian/survivor/manager + assignment = "Assistant Operations Manager" + idtype = /obj/item/card/id/silver/clearance_badge/manager + faction_group = list(FACTION_WY, FACTION_SURVIVOR) + access = list( + ACCESS_WY_GENERAL, + ACCESS_WY_COLONIAL, + ACCESS_WY_MEDICAL, + ACCESS_WY_SECURITY, + ACCESS_WY_RESEARCH, + ACCESS_WY_ARMORY, + ACCESS_CIVILIAN_PUBLIC, + ACCESS_CIVILIAN_RESEARCH, + ACCESS_CIVILIAN_ENGINEERING, + ACCESS_CIVILIAN_LOGISTICS, + ACCESS_CIVILIAN_BRIG, + ACCESS_CIVILIAN_MEDBAY, + ACCESS_CIVILIAN_COMMAND, + ) + languages = list(LANGUAGE_ENGLISH, LANGUAGE_JAPANESE) + + survivor_variant = CORPORATE_SURVIVOR + +/datum/equipment_preset/survivor/wy/asstmanager/load_gear(mob/living/carbon/human/new_human) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/suit_jacket/manager(new_human), WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/lockable/liaison, WEAR_BACK) + new_human.equip_to_slot_or_del(new /obj/item/reagent_container/glass/beaker/vial/random/good(new_human), WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/paper/research_notes/grant, WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/snow_suit/survivor/parka/navy(new_human), WEAR_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/WY, WEAR_L_EAR) + new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/rebreather/scarf(new_human), WEAR_FACE) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife, WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/head/ushanka(new_human), WEAR_HEAD) + new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/firstaid/full(new_human), WEAR_R_STORE) + add_survivor_weapon_civilian(new_human) + ..() diff --git a/code/modules/gear_presets/survivors/shivas_snowball/preset_shivas_snowball.dm b/code/modules/gear_presets/survivors/shivas_snowball/preset_shivas_snowball.dm index c1dce212d0c4..2fdcc3322dbf 100644 --- a/code/modules/gear_presets/survivors/shivas_snowball/preset_shivas_snowball.dm +++ b/code/modules/gear_presets/survivors/shivas_snowball/preset_shivas_snowball.dm @@ -1,33 +1,33 @@ /datum/equipment_preset/survivor/corporate/shiva - name = "Survivor - Shivas Snowball Corporate Liaison" - assignment = "Shivas Snowball Corporate Liaison" + name = "Survivor - Shivas Corporate Liaison" + assignment = "Shivas Corporate Liaison" /datum/equipment_preset/survivor/corporate/shiva/load_gear(mob/living/carbon/human/new_human) - new_human.equip_to_slot_or_del(new /obj/item/clothing/under/liaison_suit/formal(new_human), WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/liaison_suit/corporate_formal(new_human), WEAR_BODY) new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/WY(new_human), WEAR_L_EAR) new_human.equip_to_slot_or_del(new /obj/item/clothing/head/ushanka(new_human), WEAR_HEAD) new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/rebreather/scarf(new_human), WEAR_FACE) - new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/snow(new_human), WEAR_FEET) new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/white(new_human), WEAR_HANDS) new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/snow_suit/survivor/parka/navy(new_human), WEAR_JACKET) ..() /datum/equipment_preset/survivor/doctor/shiva - name = "Survivor - Shivas Snowball Doctor" - assignment = "Shivas Snowball Doctor" + name = "Survivor - Shivas Doctor" + assignment = "Shivas Doctor" /datum/equipment_preset/survivor/doctor/shiva/load_gear(mob/living/carbon/human/new_human) new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/medical/green(new_human), WEAR_BODY) new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/snow_suit/survivor/parka/green(new_human), WEAR_JACKET) new_human.equip_to_slot_or_del(new /obj/item/clothing/head/ushanka(new_human), WEAR_HEAD) - new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/snow(new_human), WEAR_FEET) new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/white(new_human), WEAR_HANDS) new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/rebreather/scarf(new_human), WEAR_FACE) ..() /datum/equipment_preset/survivor/scientist/shiva - name = "Survivor - Shivas Snowball Researcher" - assignment = "Shivas Snowball Researcher" + name = "Survivor - Shivas Researcher" + assignment = "Shivas Researcher" /datum/equipment_preset/survivor/scientist/shiva/load_gear(mob/living/carbon/human/new_human) new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/medical/blue(new_human), WEAR_BODY) @@ -35,7 +35,7 @@ new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/latex(new_human), WEAR_HANDS) new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/rebreather/scarf(new_human), WEAR_FACE) new_human.equip_to_slot_or_del(new /obj/item/clothing/head/ushanka(new_human), WEAR_HEAD) - new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/black(new_human), WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/snow(new_human), WEAR_FEET) new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/snow_suit/survivor/parka/purple(new_human), WEAR_JACKET) ..() @@ -44,31 +44,31 @@ assignment = "CMB Deputy" /datum/equipment_preset/survivor/colonial_marshal/shiva/load_gear(mob/living/carbon/human/new_human) - new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/security/corp(new_human), WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/CM_uniform(new_human), WEAR_BODY) new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/CMB/limited(new_human), WEAR_L_EAR) new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/snow_suit/survivor/parka/red(new_human), WEAR_JACKET) new_human.equip_to_slot_or_del(new /obj/item/clothing/head/ushanka(new_human), WEAR_HEAD) new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/rebreather/scarf(new_human), WEAR_FACE) new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/sec(new_human), WEAR_BACK) - new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/white(new_human), WEAR_HANDS) - new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/veteran(new_human), WEAR_HANDS) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/veteran/pmc(new_human), WEAR_FEET) ..() /datum/equipment_preset/survivor/engineer/shiva - name = "Survivor - Shivas Snowball Engineer" - assignment = "Shivas Snowball Engineer" + name = "Survivor - Shivas Engineer" + assignment = "Shivas Engineer" /datum/equipment_preset/survivor/engineer/shiva/load_gear(mob/living/carbon/human/new_human) - new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/engineer(new_human), WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/liaison_suit/black(new_human), WEAR_BODY) new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/snow_suit/survivor/parka/yellow(new_human), WEAR_JACKET) new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/eng(new_human), WEAR_BACK) - new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/jackboots(new_human), WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/snow(new_human), WEAR_FEET) new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/rebreather/scarf(new_human), WEAR_FACE) new_human.equip_to_slot_or_del(new /obj/item/clothing/head/ushanka(new_human), WEAR_HEAD) ..() /datum/equipment_preset/survivor/security/shiva - name = "Survivor - Shivas Snowball Security Guard" + name = "Survivor - Shivas Security Guard" assignment = "United Americas Peacekeeper" /datum/equipment_preset/survivor/security/shiva/load_gear(mob/living/carbon/human/new_human) @@ -77,6 +77,6 @@ new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/rebreather/scarf(new_human), WEAR_FACE) new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/snow_suit/survivor(new_human), WEAR_JACKET) new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/marine/veteran/ua_riot(new_human), WEAR_HEAD) - new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/white(new_human), WEAR_HANDS) + new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/veteran(new_human), WEAR_HANDS) new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET) ..() diff --git a/code/modules/gear_presets/survivors/solaris/crashlanding-offices_insert_bigred.dm b/code/modules/gear_presets/survivors/solaris/crashlanding-offices_insert_bigred.dm index cbc777ad6852..124bf2772be5 100644 --- a/code/modules/gear_presets/survivors/solaris/crashlanding-offices_insert_bigred.dm +++ b/code/modules/gear_presets/survivors/solaris/crashlanding-offices_insert_bigred.dm @@ -7,7 +7,7 @@ assignment = "Weyland-Yutani PMC" faction = FACTION_SURVIVOR faction_group = list(FACTION_WY, FACTION_SURVIVOR) - paygrade = "PMC-OP" + paygrade = PAY_SHORT_PMC_OP idtype = /obj/item/card/id/pmc skills = /datum/skills/civilian/survivor/pmc languages = list(LANGUAGE_ENGLISH, LANGUAGE_JAPANESE) @@ -45,8 +45,7 @@ /datum/equipment_preset/survivor/pmc/medic name = "Survivor - PMC Medic" assignment = JOB_PMC_MEDIC - rank = JOB_PMC_MEDIC - paygrade = "PMC-MS" + paygrade = PAY_SHORT_PMC_MS skills = /datum/skills/civilian/survivor/pmc/medic /datum/equipment_preset/survivor/pmc/medic/load_gear(mob/living/carbon/human/new_human) @@ -65,8 +64,7 @@ /datum/equipment_preset/survivor/pmc/engineer name = "Survivor - PMC Engineer" assignment = JOB_PMC_ENGINEER - rank = JOB_PMC_ENGINEER - paygrade = "PMC-TECH" + paygrade = PAY_SHORT_PMC_TEC skills = /datum/skills/civilian/survivor/pmc/engineer /datum/equipment_preset/survivor/pmc/engineer/load_gear(mob/living/carbon/human/new_human) @@ -152,42 +150,42 @@ role_comm_title = "WY Syn" /datum/equipment_preset/synth/survivor/pmc/load_race(mob/living/carbon/human/new_human) - new_human.set_species(SYNTH_GEN_THREE) + new_human.set_species(SYNTH_GEN_THREE) /datum/equipment_preset/synth/survivor/pmc/load_gear(mob/living/carbon/human/new_human) - new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/veteran/pmc, WEAR_BODY) - new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/storage/droppouch, WEAR_ACCESSORY) - new_human.equip_to_slot_or_del(new /obj/item/tool/surgery/scalpel/manager, WEAR_IN_ACCESSORY) - new_human.equip_to_slot_or_del(new /obj/item/reagent_container/food/drinks/flask/weylandyutani, WEAR_IN_ACCESSORY) - new_human.equip_to_slot_or_del(new /obj/item/handcuffs/zip, WEAR_IN_ACCESSORY) - new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/veteran/pmc/light/synth, WEAR_JACKET) - new_human.equip_to_slot_or_del(new /obj/item/weapon/telebaton, WEAR_IN_JACKET) - new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/smg/nailgun, WEAR_IN_JACKET) - - new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/marine/veteran/pmc, WEAR_HEAD) - new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/pmc/command/hvh, WEAR_L_EAR) - new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/pmc, WEAR_FACE) - - new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/veteran/pmc, WEAR_HANDS) - new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/veteran/pmc/knife, WEAR_FEET) - - new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/marine/smartpack/white, WEAR_BACK) - new_human.equip_to_slot_or_del(new /obj/item/roller, WEAR_IN_BACK) - new_human.equip_to_slot_or_del(new /obj/item/roller/surgical, WEAR_IN_BACK) - new_human.equip_to_slot_or_del(new /obj/item/tool/extinguisher/mini, WEAR_IN_BACK) - new_human.equip_to_slot_or_del(new /obj/item/device/defibrillator/upgraded, WEAR_IN_BACK) - new_human.equip_to_slot_or_del(new /obj/item/tool/crew_monitor, WEAR_IN_BACK) - - new_human.equip_to_slot_or_del(new /obj/item/storage/belt/medical/lifesaver/full/dutch, WEAR_WAIST) - new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/smg/nailgun/compact, WEAR_J_STORE) - - new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/tools/tactical, WEAR_L_STORE) - new_human.equip_to_slot_or_del(new /obj/item/tool/screwdriver/tactical, WEAR_IN_L_STORE) - new_human.equip_to_slot_or_del(new /obj/item/tool/crowbar/tactical, WEAR_IN_L_STORE) - new_human.equip_to_slot_or_del(new /obj/item/tool/wirecutters/tactical, WEAR_IN_L_STORE) - new_human.equip_to_slot_or_del(new /obj/item/tool/wrench, WEAR_IN_L_STORE) - new_human.equip_to_slot_or_del(new /obj/item/stack/cable_coil, WEAR_IN_L_STORE) - new_human.equip_to_slot_or_del(new /obj/item/stack/cable_coil, WEAR_IN_L_STORE) - new_human.equip_to_slot_or_del(new /obj/item/device/multitool, WEAR_IN_L_STORE) - new_human.equip_to_slot_or_del(new /obj/item/tool/weldingtool/hugetank, WEAR_IN_L_STORE) - new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/construction/full_barbed_wire, WEAR_R_STORE) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/veteran/pmc, WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/storage/droppouch, WEAR_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/tool/surgery/scalpel/manager, WEAR_IN_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/reagent_container/food/drinks/flask/weylandyutani, WEAR_IN_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/restraint/handcuffs/zip, WEAR_IN_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/veteran/pmc/light/synth, WEAR_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/weapon/telebaton, WEAR_IN_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/smg/nailgun, WEAR_IN_JACKET) + + new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/marine/veteran/pmc, WEAR_HEAD) + new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/pmc/command/hvh, WEAR_L_EAR) + new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/pmc, WEAR_FACE) + + new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/veteran/pmc, WEAR_HANDS) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/veteran/pmc/knife, WEAR_FEET) + + new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/marine/smartpack/white, WEAR_BACK) + new_human.equip_to_slot_or_del(new /obj/item/roller, WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/roller/surgical, WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/tool/extinguisher/mini, WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/device/defibrillator/upgraded, WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/tool/crew_monitor, WEAR_IN_BACK) + + new_human.equip_to_slot_or_del(new /obj/item/storage/belt/medical/lifesaver/full/dutch, WEAR_WAIST) + new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/smg/nailgun/compact, WEAR_J_STORE) + + new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/tools/tactical, WEAR_L_STORE) + new_human.equip_to_slot_or_del(new /obj/item/tool/screwdriver/tactical, WEAR_IN_L_STORE) + new_human.equip_to_slot_or_del(new /obj/item/tool/crowbar/tactical, WEAR_IN_L_STORE) + new_human.equip_to_slot_or_del(new /obj/item/tool/wirecutters/tactical, WEAR_IN_L_STORE) + new_human.equip_to_slot_or_del(new /obj/item/tool/wrench, WEAR_IN_L_STORE) + new_human.equip_to_slot_or_del(new /obj/item/stack/cable_coil, WEAR_IN_L_STORE) + new_human.equip_to_slot_or_del(new /obj/item/stack/cable_coil, WEAR_IN_L_STORE) + new_human.equip_to_slot_or_del(new /obj/item/device/multitool, WEAR_IN_L_STORE) + new_human.equip_to_slot_or_del(new /obj/item/tool/weldingtool/hugetank, WEAR_IN_L_STORE) + new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/construction/full_barbed_wire, WEAR_R_STORE) diff --git a/code/modules/gear_presets/survivors/solaris/preset_solaris.dm b/code/modules/gear_presets/survivors/solaris/preset_solaris.dm index c71641a82ac1..35e52731fc9d 100644 --- a/code/modules/gear_presets/survivors/solaris/preset_solaris.dm +++ b/code/modules/gear_presets/survivors/solaris/preset_solaris.dm @@ -4,9 +4,9 @@ skills = /datum/skills/civilian/survivor/trucker /datum/equipment_preset/survivor/trucker/solaris/load_gear(mob/living/carbon/human/new_human) - new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/worker_overalls(new_human), WEAR_BODY) - new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/apron/overalls(new_human), WEAR_JACKET) - new_human.equip_to_slot_or_del(new /obj/item/clothing/head/soft/red(new_human), WEAR_HEAD) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/liaison_suit/black(new_human), WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/apron/overalls/red(new_human), WEAR_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/head/soft/trucker/red(new_human), WEAR_HEAD) new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses/big(new_human), WEAR_EYES) ..() @@ -14,13 +14,12 @@ name = "Survivor - Solaris Colonial Marshal Deputy" assignment = "CMB Deputy" - /datum/equipment_preset/survivor/colonial_marshal/solaris/load_gear(mob/living/carbon/human/new_human) new_human.equip_to_slot_or_del(new /obj/item/clothing/under/CM_uniform(new_human), WEAR_BODY) new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/CMB/limited(new_human), WEAR_L_EAR) new_human.equip_to_slot_or_del(new /obj/item/clothing/head/CMB(new_human), WEAR_HEAD) new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/sec(new_human), WEAR_BACK) - new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/veteran/pmc(new_human), WEAR_FEET) ..() /datum/equipment_preset/survivor/engineer/solaris @@ -28,9 +27,10 @@ assignment = "Solaris Engineer" /datum/equipment_preset/survivor/engineer/solaris/load_gear(mob/living/carbon/human/new_human) - new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/engineer(new_human), WEAR_BODY) - new_human.equip_to_slot_or_del(new /obj/item/clothing/head/soft/yellow(new_human), WEAR_HEAD) - new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/welding/superior(new_human), WEAR_EYES) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/colonist/workwear/pink(new_human), WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/hazardvest/yellow(new_human), WEAR_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/head/hardhat/white(new_human), WEAR_HEAD) + new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/welding(new_human), WEAR_EYES) new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/eng(new_human), WEAR_BACK) ..() @@ -39,13 +39,12 @@ assignment = "Solaris Scientist" /datum/equipment_preset/survivor/scientist/solaris/load_gear(mob/living/carbon/human/new_human) - new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/virologist(new_human), WEAR_BODY) - new_human.equip_to_slot_or_del(new /obj/item/clothing/head/surgery/green(new_human), WEAR_HEAD) - new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/labcoat/virologist(new_human), WEAR_JACKET) - new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/green(new_human), WEAR_HANDS) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/liaison_suit/corporate_formal(new_human), WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/labcoat(new_human), WEAR_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/latex(new_human), WEAR_HANDS) new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/surgical(new_human), WEAR_FACE) new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/science(new_human), WEAR_EYES) - new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/green(new_human), WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/laceup(new_human), WEAR_FEET) ..() /datum/equipment_preset/survivor/doctor/solaris @@ -53,8 +52,9 @@ assignment = "Solaris Doctor" /datum/equipment_preset/survivor/doctor/solaris/load_gear(mob/living/carbon/human/new_human) - new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/medical/purple(new_human), WEAR_BODY) - new_human.equip_to_slot_or_del(new /obj/item/clothing/head/surgery/purple(new_human), WEAR_HEAD) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/medical/lightblue(new_human), WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/head/cmo(new_human), WEAR_HEAD) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/laceup(new_human), WEAR_FEET) ..() /datum/equipment_preset/survivor/chaplain/solaris @@ -63,7 +63,6 @@ /datum/equipment_preset/survivor/chaplain/solaris/load_gear(mob/living/carbon/human/new_human) new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/holidaypriest(new_human), WEAR_JACKET) - new_human.equip_to_slot_or_del(new /obj/item/clothing/head/nun_hood(new_human), WEAR_HEAD) ..() /datum/equipment_preset/survivor/security/solaris @@ -75,20 +74,36 @@ new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/sec(new_human), WEAR_BACK) new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/vest(new_human), WEAR_JACKET) new_human.equip_to_slot_or_del(new /obj/item/clothing/head/beret/sec/hos(new_human), WEAR_HEAD) - new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine(new_human), WEAR_HANDS) + new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/veteran(new_human), WEAR_HANDS) new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/jackboots(new_human), WEAR_FEET) ..() +/datum/equipment_preset/survivor/uscm/solaris + name = "Survivor - Solaris United States Colonial Marine Corps Recruiter" + assignment = "USCM Recruiter" + paygrade = PAY_SHORT_ME5 + +/datum/equipment_preset/survivor/uscm/solaris/load_gear(mob/living/carbon/human/new_human) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/officer/bridge(new_human), WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/ranks/marine/e5(new_human), WEAR_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/marine/satchel(new_human), WEAR_BACK) + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/jacket/marine/service(new_human), WEAR_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/m4a3/full(new_human), WEAR_WAIST) + new_human.equip_to_slot_or_del(new /obj/item/clothing/head/cmcap(new_human), WEAR_HEAD) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/general/medium(new_human), WEAR_R_STORE) + ..() + /datum/equipment_preset/survivor/corporate/solaris - name = "Survivor - Solaris Ridge Corporate Liaison" - assignment = "Solaris Ridge Corporate Liaison" + name = "Survivor - Solaris Corporate Liaison" + assignment = "Solaris Corporate Liaison" /datum/equipment_preset/survivor/corporate/solaris/load_gear(mob/living/carbon/human/new_human) - new_human.equip_to_slot_or_del(new /obj/item/clothing/under/liaison_suit/outing/red(new_human), WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/liaison_suit/ivy(new_human), WEAR_BODY) new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/WY(new_human), WEAR_L_EAR) if(new_human.disabilities & NEARSIGHTED) new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses/prescription(new_human), WEAR_EYES) else new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses(new_human), WEAR_EYES) - new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/laceup/brown(new_human), WEAR_FEET) ..() diff --git a/code/modules/gear_presets/survivors/sorokyne_strata/preset_sorokyne_strata.dm b/code/modules/gear_presets/survivors/sorokyne_strata/preset_sorokyne_strata.dm index f53f25326b69..f285a9635bde 100644 --- a/code/modules/gear_presets/survivors/sorokyne_strata/preset_sorokyne_strata.dm +++ b/code/modules/gear_presets/survivors/sorokyne_strata/preset_sorokyne_strata.dm @@ -1,11 +1,11 @@ /datum/equipment_preset/survivor/engineer/soro - name = "Survivor - Sorokyne Strata Political Prisoner" - assignment = "Sorokyne Strata Political Prisoner" + name = "Survivor - Sorokyne Strata State Contractor" + assignment = "Sorokyne Strata State Contractor" /datum/equipment_preset/survivor/engineer/soro/load_gear(mob/living/carbon/human/new_human) new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/veteran/UPP(new_human), WEAR_BODY) new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel(new_human), WEAR_BACK) - new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/upp(new_human), WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/upp/knife(new_human), WEAR_FEET) new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/snow_suit/soviet(new_human), WEAR_JACKET) new_human.equip_to_slot_or_del(new /obj/item/clothing/head/ushanka(new_human), WEAR_HEAD) new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/rebreather/scarf(new_human), WEAR_FACE) @@ -19,7 +19,7 @@ new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/veteran/soviet_uniform_01(new_human), WEAR_BODY) new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/snow_suit/soviet(new_human), WEAR_JACKET) new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/sec(new_human), WEAR_BACK) - new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/upp(new_human), WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/upp/knife(new_human), WEAR_FEET) new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/rebreather/scarf(new_human), WEAR_FACE) new_human.equip_to_slot_or_del(new /obj/item/clothing/head/ushanka(new_human), WEAR_HEAD) new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine(new_human), WEAR_HANDS) @@ -71,4 +71,3 @@ new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/lockable/liaison, WEAR_BACK) new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET) ..() - diff --git a/code/modules/gear_presets/survivors/survivors.dm b/code/modules/gear_presets/survivors/survivors.dm index ae26fc40938b..71a2aaa94b7f 100644 --- a/code/modules/gear_presets/survivors/survivors.dm +++ b/code/modules/gear_presets/survivors/survivors.dm @@ -50,6 +50,7 @@ Standart Survivors : /datum/equipment_preset/survivor/scientist, /datum/equipment_preset/survivor/miner, /datum/equipment_preset/survivor/colonial_marshal, /datum/equipment_preset/survivor/engineer, + /datum/equipment_preset/survivor/security */ @@ -68,21 +69,18 @@ Standart Survivors : /datum/equipment_preset/survivor/scientist, /datum/equipment_preset/survivor/scientist/load_gear(mob/living/carbon/human/new_human) new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/virologist(new_human), WEAR_BODY) - if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD]) - add_ice_colony_survivor_equipment(new_human) - new_human.equip_to_slot_or_del(new /obj/item/clothing/head/surgery/green(new_human), WEAR_HEAD) new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/labcoat/virologist(new_human), WEAR_JACKET) new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/green(new_human), WEAR_HANDS) new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/surgical(new_human), WEAR_FACE) new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/science(new_human), WEAR_EYES) - new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/chem(new_human), WEAR_BACK) + new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/tox(new_human), WEAR_BACK) new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/green(new_human), WEAR_FEET) new_human.equip_to_slot_or_del(new /obj/item/paper/research_notes/good(new_human), WEAR_IN_JACKET) new_human.equip_to_slot_or_del(new /obj/item/reagent_container/glass/beaker/vial/random/good(new_human), WEAR_IN_JACKET) new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/medical/full(new_human), WEAR_R_STORE) add_survivor_weapon_civilian(new_human) add_random_survivor_research_gear(new_human) - + add_ice_colony_survivor_equipment(new_human) ..() // 2 ----- Doctor Survivor @@ -98,11 +96,9 @@ Standart Survivors : /datum/equipment_preset/survivor/scientist, survivor_variant = MEDICAL_SURVIVOR /datum/equipment_preset/survivor/doctor/load_gear(mob/living/carbon/human/new_human) - new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/medical(new_human), WEAR_BODY) - if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD]) - add_ice_colony_survivor_equipment(new_human) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/liaison_suit/blue(new_human), WEAR_BODY) new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/med(new_human), WEAR_BACK) - new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/laceup(new_human), WEAR_FEET) new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/latex(new_human), WEAR_HANDS) new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/surgical(new_human), WEAR_FACE) new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/labcoat(new_human), WEAR_JACKET) @@ -120,7 +116,7 @@ Standart Survivors : /datum/equipment_preset/survivor/scientist, new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/medkit/full_advanced(new_human), WEAR_R_STORE) add_random_survivor_medical_gear(new_human) add_survivor_weapon_civilian(new_human) - + add_ice_colony_survivor_equipment(new_human) ..() // 3 ----- Chef Survivor @@ -133,16 +129,15 @@ Standart Survivors : /datum/equipment_preset/survivor/scientist, access = list(ACCESS_CIVILIAN_PUBLIC) /datum/equipment_preset/survivor/chef/load_gear(mob/living/carbon/human/new_human) - new_human.equip_to_slot_or_del(new /obj/item/clothing/under/colonist(new_human), WEAR_BODY) - if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD]) - add_ice_colony_survivor_equipment(new_human) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/chef(new_human), WEAR_BODY) new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/norm(new_human), WEAR_BACK) new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/chef(new_human), WEAR_JACKET) - new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/head/chefhat(new_human), WEAR_HEAD) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/laceup(new_human), WEAR_FEET) new_human.equip_to_slot_or_del(new /obj/item/tool/kitchen/rollingpin(new_human.back), WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/general(new_human), WEAR_R_STORE) add_survivor_weapon_civilian(new_human) - + add_ice_colony_survivor_equipment(new_human) ..() // 4 ----- Chaplain Survivor @@ -156,15 +151,13 @@ Standart Survivors : /datum/equipment_preset/survivor/scientist, /datum/equipment_preset/survivor/chaplain/load_gear(mob/living/carbon/human/new_human) new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/chaplain(new_human), WEAR_BODY) - if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD]) - add_ice_colony_survivor_equipment(new_human) new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/norm(new_human), WEAR_BACK) new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/holidaypriest(new_human), WEAR_JACKET) - new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/laceup(new_human), WEAR_FEET) new_human.equip_to_slot_or_del(new /obj/item/storage/bible/booze(new_human.back), WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/general(new_human), WEAR_R_STORE) add_survivor_weapon_civilian(new_human) - + add_ice_colony_survivor_equipment(new_human) ..() // 5 ----- Miner Survivor @@ -177,17 +170,16 @@ Standart Survivors : /datum/equipment_preset/survivor/scientist, access = list(ACCESS_CIVILIAN_PUBLIC, ACCESS_CIVILIAN_ENGINEERING, ACCESS_CIVILIAN_LOGISTICS) /datum/equipment_preset/survivor/miner/load_gear(mob/living/carbon/human/new_human) - new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/miner(new_human), WEAR_BODY) - if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD]) - add_ice_colony_survivor_equipment(new_human) - new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/norm(new_human), WEAR_BACK) - new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET) - new_human.equip_to_slot_or_del(new /obj/item/tool/pickaxe(new_human.back), WEAR_IN_BACK) - new_human.equip_to_slot_or_del(new /obj/item/device/flashlight/lantern(new_human.back), WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/liaison_suit/blue(new_human), WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/eng(new_human), WEAR_BACK) + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/hazardvest/yellow(new_human), WEAR_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/jackboots(new_human), WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/tool/pickaxe(new_human), WEAR_R_HAND) + new_human.equip_to_slot_or_del(new /obj/item/device/flashlight/lantern(new_human), WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/tools/full(new_human), WEAR_R_STORE) new_human.equip_to_slot_or_del(new /obj/item/clothing/head/hardhat/orange(new_human), WEAR_HEAD) add_survivor_weapon_civilian(new_human) - + add_ice_colony_survivor_equipment(new_human) ..() // 6 ---- Colonial Marshal Survivor @@ -215,9 +207,7 @@ Standart Survivors : /datum/equipment_preset/survivor/scientist, /datum/equipment_preset/survivor/colonial_marshal/load_gear(mob/living/carbon/human/new_human) new_human.equip_to_slot_or_del(new /obj/item/clothing/under/CM_uniform(new_human), WEAR_BODY) new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/CMB/limited(new_human), WEAR_L_EAR) - - if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD]) - add_ice_colony_survivor_equipment(new_human) + new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/holobadge/cord(new_human), WEAR_ACCESSORY) new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/sec(new_human), WEAR_BACK) new_human.equip_to_slot_or_del(new /obj/item/clothing/head/CMB(new_human), WEAR_HEAD) if(new_human.disabilities & NEARSIGHTED) @@ -225,10 +215,10 @@ Standart Survivors : /datum/equipment_preset/survivor/scientist, else new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses/sechud(new_human), WEAR_EYES) new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/CMB(new_human), WEAR_JACKET) - new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/veteran/pmc(new_human), WEAR_FEET) new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/magazine/large(new_human), WEAR_R_STORE) add_survivor_weapon_security(new_human) - + add_ice_colony_survivor_equipment(new_human) ..() // 7 ----- Engineering Survivor @@ -243,50 +233,55 @@ Standart Survivors : /datum/equipment_preset/survivor/scientist, survivor_variant = ENGINEERING_SURVIVOR /datum/equipment_preset/survivor/engineer/load_gear(mob/living/carbon/human/new_human) - new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/engineer(new_human), WEAR_BODY) - if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD]) - add_ice_colony_survivor_equipment(new_human) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/liaison_suit/brown(new_human), WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/hazardvest/yellow(new_human), WEAR_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/head/hardhat/white(new_human), WEAR_HEAD) new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/eng(new_human), WEAR_BACK) new_human.equip_to_slot_or_del(new /obj/item/tool/weldingtool/largetank(new_human), WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/stack/sheet/plasteel/med_small_stack(new_human), WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/welding(new_human), WEAR_EYES) - new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/insulated(new_human), WEAR_HANDS) - new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/yellow(new_human), WEAR_HANDS) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/jackboots(new_human), WEAR_FEET) new_human.equip_to_slot_or_del(new /obj/item/storage/belt/utility/full(new_human), WEAR_WAIST) add_survivor_weapon_civilian(new_human) - + add_ice_colony_survivor_equipment(new_human) ..() -/* -Everything bellow is a parent used as a base for one or multiple maps. -*/ -// ----- Interstellar Human Rights Survivor +// 8 -- Security Survivor -// it's used as a base for soro map. -/datum/equipment_preset/survivor/interstellar_human_rights_observer - name = "Survivor - Interstellar Human Rights Observer" - assignment = "Interstellar Human Rights Observer(Colony)" - skills = /datum/skills/civilian/survivor +/datum/equipment_preset/survivor/security + name = "Survivor - Security" + assignment = "Security" + skills = /datum/skills/civilian/survivor/marshal flags = EQUIPMENT_PRESET_START_OF_ROUND - access = list(ACCESS_CIVILIAN_PUBLIC,ACCESS_CIVILIAN_COMMAND) + idtype = /obj/item/card/id/data + access = list(ACCESS_CIVILIAN_PUBLIC,ACCESS_CIVILIAN_BRIG,ACCESS_CIVILIAN_COMMAND) -/datum/equipment_preset/survivor/interstellar_human_rights_observer/load_gear(mob/living/carbon/human/new_human) - new_human.equip_to_slot_or_del(new /obj/item/clothing/under/liaison_suit/suspenders(new_human), WEAR_BODY) - if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD]) - add_ice_colony_survivor_equipment(new_human) - new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/vest(new_human), WEAR_JACKET) - new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel(new_human), WEAR_BACK) - add_random_cl_survivor_loot(new_human) - new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET) - new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/marine(new_human), WEAR_HEAD) - add_survivor_weapon_civilian(new_human) - new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/document(new_human), WEAR_R_STORE) + survivor_variant = SECURITY_SURVIVOR +/datum/equipment_preset/survivor/security/load_gear(mob/living/carbon/human/new_human) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/security(new_human), WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/sec(new_human), WEAR_BACK) + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/vest/security(new_human), WEAR_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet(new_human), WEAR_HEAD) + if(new_human.disabilities & NEARSIGHTED) + new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses/sechud/prescription(new_human), WEAR_EYES) + else + new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses/sechud(new_human), WEAR_EYES) + new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/veteran(new_human), WEAR_HANDS) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/jackboots(new_human), WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/magazine(new_human), WEAR_R_STORE) + add_survivor_weapon_security(new_human) + add_ice_colony_survivor_equipment(new_human) ..() +/* +Everything bellow is a parent used as a base for one or multiple maps. +*/ // ----- CL Survivor -//used as a base for shiva and solaris spawn. + +// Used in Solaris Ridge and LV-624. /datum/equipment_preset/survivor/corporate name = "Survivor - Corporate Liaison" @@ -294,6 +289,7 @@ Everything bellow is a parent used as a base for one or multiple maps. skills = /datum/skills/civilian/survivor flags = EQUIPMENT_PRESET_START_OF_ROUND paygrade = PAY_SHORT_WYC2 + faction_group = FACTION_LIST_SURVIVOR_WY idtype = /obj/item/card/id/silver/clearance_badge/cl access = list( ACCESS_CIVILIAN_PUBLIC, @@ -307,17 +303,15 @@ Everything bellow is a parent used as a base for one or multiple maps. survivor_variant = CORPORATE_SURVIVOR /datum/equipment_preset/survivor/corporate/load_gear(mob/living/carbon/human/new_human) - new_human.equip_to_slot_or_del(new /obj/item/clothing/under/liaison_suit/formal(new_human), WEAR_BODY) - if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD]) - add_ice_colony_survivor_equipment(new_human) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/liaison_suit/field(new_human), WEAR_BODY) new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/vest(new_human), WEAR_JACKET) new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/WY(new_human), WEAR_L_EAR) - new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel(new_human), WEAR_BACK) - add_random_cl_survivor_loot(new_human) - new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/centcom(new_human), WEAR_FEET) - add_survivor_weapon_civilian(new_human) + new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/lockable/liaison(new_human), WEAR_BACK) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/laceup(new_human), WEAR_FEET) new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/document(new_human), WEAR_R_STORE) - + add_survivor_weapon_civilian(new_human) + add_random_cl_survivor_loot(new_human) + add_ice_colony_survivor_equipment(new_human) ..() /datum/equipment_preset/survivor/corporate/load_rank(mob/living/carbon/human/new_human) @@ -334,52 +328,10 @@ Everything bellow is a parent used as a base for one or multiple maps. return paygrade return paygrade -// ----- Security Survivor -/* - -present in xenomorph.dm file - -GLOBAL_LIST_INIT(survivor_types, list() - /datum/equipment_preset/survivor/scientist, - /datum/equipment_preset/survivor/doctor, - /datum/equipment_preset/survivor/security, - /datum/equipment_preset/survivor/engineer - ) - -and is used as a base for all of the maps. - -*/ - -/datum/equipment_preset/survivor/security - name = "Survivor - Security" - assignment = "Security" - skills = /datum/skills/civilian/survivor/marshal - flags = EQUIPMENT_PRESET_START_OF_ROUND - idtype = /obj/item/card/id/data - access = list(ACCESS_CIVILIAN_PUBLIC,ACCESS_CIVILIAN_BRIG,ACCESS_CIVILIAN_COMMAND) - - survivor_variant = SECURITY_SURVIVOR - -/datum/equipment_preset/survivor/security/load_gear(mob/living/carbon/human/new_human) - new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/security(new_human), WEAR_BODY) - if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD]) - add_ice_colony_survivor_equipment(new_human) - new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/sec(new_human), WEAR_BACK) - new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/vest/security(new_human), WEAR_JACKET) - new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet(new_human), WEAR_HEAD) - if(new_human.disabilities & NEARSIGHTED) - new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses/sechud/prescription(new_human), WEAR_EYES) - else - new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses/sechud(new_human), WEAR_EYES) - new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine(new_human), WEAR_HANDS) - new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/jackboots(new_human), WEAR_FEET) - new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/magazine(new_human), WEAR_R_STORE) - add_survivor_weapon_security(new_human) - ..() - // ---- Trucker Survivor -// it's used as a base for kutjevo lv nv solaris and trijent maps. +// Used in Kutjevo Refinery, LV-624, New Varadero, Solaris Ridge and Trijent Dam. + /datum/equipment_preset/survivor/trucker name = "Survivor - Trucker" assignment = "Trucker" @@ -391,49 +343,119 @@ and is used as a base for all of the maps. /datum/equipment_preset/survivor/trucker/load_gear(mob/living/carbon/human/new_human) new_human.equip_to_slot_or_del(new /obj/item/clothing/under/overalls(new_human), WEAR_BODY) - if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD]) - add_ice_colony_survivor_equipment(new_human) new_human.equip_to_slot_or_del(new /obj/item/clothing/head/soft/yellow(new_human), WEAR_HEAD) - new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/jackboots(new_human), WEAR_FEET) new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/eng(new_human), WEAR_BACK) new_human.equip_to_slot_or_del(new /obj/item/device/flashlight/lantern(new_human.back), WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/tools/full(new_human), WEAR_R_STORE) new_human.equip_to_slot_or_del(new /obj/item/hardpoint/locomotion/van_wheels(new_human), WEAR_R_HAND) add_survivor_weapon_civilian(new_human) + add_ice_colony_survivor_equipment(new_human) + ..() + +// -- Flight Control Operator + +// Used in Solaris Ridge. +/datum/equipment_preset/survivor/flight_control_operator + name = "Survivor - Flight Control Operator" + assignment = "Flight Control Operator" + skills = /datum/skills/civilian/survivor/trucker + idtype = /obj/item/card/id/data + flags = EQUIPMENT_PRESET_START_OF_ROUND + access = list(ACCESS_CIVILIAN_PUBLIC,ACCESS_CIVILIAN_LOGISTICS,ACCESS_WY_FLIGHT) + +/datum/equipment_preset/survivor/flight_control_operator/load_gear(mob/living/carbon/human/new_human) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/colonist/workwear/khaki(new_human), WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/windbreaker/windbreaker_brown(new_human), WEAR_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses/aviator(new_human), WEAR_EYES) + new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel(new_human), WEAR_BACK) + new_human.equip_to_slot_or_del(new /obj/item/device/binoculars(new_human), WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/clothing/head/headset(new_human), WEAR_HEAD) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/laceup(new_human), WEAR_FEET) + add_survivor_weapon_civilian(new_human) + add_ice_colony_survivor_equipment(new_human) ..() -// ----- CL Survivor +// ----- Interstellar Human Rights Survivor + +// Used in Sorokyne Strata and Fiorina Science Annex. +/datum/equipment_preset/survivor/interstellar_human_rights_observer + name = "Survivor - Interstellar Human Rights Observer" + assignment = "Interstellar Human Rights Observer(Colony)" + skills = /datum/skills/civilian/survivor + flags = EQUIPMENT_PRESET_START_OF_ROUND + access = list(ACCESS_CIVILIAN_PUBLIC,ACCESS_CIVILIAN_COMMAND) + +/datum/equipment_preset/survivor/interstellar_human_rights_observer/load_gear(mob/living/carbon/human/new_human) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/liaison_suit/brown(new_human), WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/vest(new_human), WEAR_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel(new_human), WEAR_BACK) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/laceup/brown(new_human), WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/marine(new_human), WEAR_HEAD) + new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/document(new_human), WEAR_R_STORE) + add_survivor_weapon_civilian(new_human) + add_random_cl_survivor_loot(new_human) + add_ice_colony_survivor_equipment(new_human) + ..() -//this is used as a base for corsat and nv -/datum/equipment_preset/survivor/interstellar_commerce_commission_liason + +// ----- Interstellar Commerce Commission Survivor + +// Used in Trijent Dam and New Varadero. +/datum/equipment_preset/survivor/interstellar_commerce_commission_liaison name = "Survivor - Interstellar Commerce Commission Liaison" assignment = "Interstellar Commerce Commission Corporate Liaison" skills = /datum/skills/civilian/survivor - idtype = /obj/item/card/id/silver/cl + flags = EQUIPMENT_PRESET_START_OF_ROUND paygrade = PAY_SHORT_ICCL + faction_group = FACTION_LIST_SURVIVOR_WY + idtype = /obj/item/card/id/silver/cl role_comm_title = "ICC Rep." - flags = EQUIPMENT_PRESET_START_OF_ROUND survivor_variant = CORPORATE_SURVIVOR -/datum/equipment_preset/survivor/interstellar_commerce_commission_liason/New() +/datum/equipment_preset/survivor/interstellar_commerce_commission_liaison/New() . = ..() access = get_access(ACCESS_LIST_CIVIL_LIAISON) -/datum/equipment_preset/survivor/interstellar_commerce_commission_liason/load_gear(mob/living/carbon/human/new_human) - new_human.equip_to_slot_or_del(new /obj/item/clothing/under/liaison_suit(new_human), WEAR_BODY) +/datum/equipment_preset/survivor/interstellar_commerce_commission_liaison/load_gear(mob/living/carbon/human/new_human) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/colonist/workwear(new_human), WEAR_BODY) new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/CMB/limited(new_human), WEAR_L_EAR) - - if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD]) - add_ice_colony_survivor_equipment(new_human) - new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/hazardvest(new_human), WEAR_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses/aviator(new_human), WEAR_EYES) + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/hazardvest/black(new_human), WEAR_JACKET) new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel(new_human), WEAR_BACK) - new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/centcom(new_human), WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/laceup(new_human), WEAR_FEET) new_human.equip_to_slot_or_del(new /obj/item/clothing/head/hardhat/white(new_human), WEAR_HEAD) - new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/insulated(new_human), WEAR_HANDS) + new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/yellow(new_human), WEAR_HANDS) new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/document(new_human), WEAR_R_STORE) add_survivor_weapon_civilian(new_human) add_random_cl_survivor_loot(new_human) + add_ice_colony_survivor_equipment(new_human) + ..() + +// ----- USCM Survivor +// Used for Solaris Ridge. +/datum/equipment_preset/survivor/uscm + name = "Survivor - USCM Remnant" + assignment = "USCM Survivor" + skills = /datum/skills/civilian/survivor/marshal + idtype = /obj/item/card/id/dogtag + paygrade = PAY_SHORT_ME2 + flags = EQUIPMENT_PRESET_START_OF_ROUND + access = list(ACCESS_CIVILIAN_PUBLIC) + +/datum/equipment_preset/survivor/uscm/load_gear(mob/living/carbon/human/new_human) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine(new_human), WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/ranks/marine/e2(new_human), WEAR_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/light(new_human), WEAR_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/marine/satchel(new_human), WEAR_BACK) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/marine(new_human), WEAR_HEAD) + new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine(new_human), WEAR_HANDS) + new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/flare(new_human), WEAR_R_STORE) + add_survivor_weapon_security(new_human) + add_ice_colony_survivor_equipment(new_human) ..() + diff --git a/code/modules/gear_presets/survivors/trijent/crashlanding_upp_bar_insert_trijent.dm b/code/modules/gear_presets/survivors/trijent/crashlanding_upp_bar_insert_trijent.dm index 324cfbe3bf7a..cfb3dee1dc47 100644 --- a/code/modules/gear_presets/survivors/trijent/crashlanding_upp_bar_insert_trijent.dm +++ b/code/modules/gear_presets/survivors/trijent/crashlanding_upp_bar_insert_trijent.dm @@ -25,8 +25,9 @@ if(2) uniform.roll_suit_sleeves(new_human) new_human.equip_to_slot_or_del(uniform, WEAR_BODY) - new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/patch/upp (new_human), WEAR_ACCESSORY) - new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/upp_knife(new_human), WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/patch/upp(new_human), WEAR_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/patch/upp/airborne, WEAR_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/upp/knife(new_human), WEAR_FEET) new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/flare(new_human), WEAR_R_STORE) new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/firstaid/full/alternate(new_human), WEAR_L_STORE) new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/lightpack/five_slot(new_human), WEAR_BACK) @@ -205,6 +206,8 @@ new_human.equip_to_slot_or_del(new /obj/item/device/flashlight, WEAR_J_STORE) new_human.equip_to_slot_or_del(new /obj/item/storage/belt/medical/lifesaver/upp/partial, WEAR_WAIST) new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/patch/upp, WEAR_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/patch/upp/airborne, WEAR_ACCESSORY) new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/veteran, WEAR_HANDS) new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/tools/uppsynth, WEAR_R_STORE) - new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/upp, WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/survival/synth/full, WEAR_L_STORE) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/upp/knife, WEAR_FEET) diff --git a/code/modules/gear_presets/survivors/trijent/preset_trijent.dm b/code/modules/gear_presets/survivors/trijent/preset_trijent.dm index e74f3258db6d..100f83518565 100644 --- a/code/modules/gear_presets/survivors/trijent/preset_trijent.dm +++ b/code/modules/gear_presets/survivors/trijent/preset_trijent.dm @@ -1,6 +1,6 @@ /datum/equipment_preset/survivor/chaplain/trijent name = "Survivor - Trijent Chaplain" - assignment = "Trijent Chaplain" + assignment = "Trijent Dam Chaplain" /datum/equipment_preset/survivor/chaplain/trijent/load_gear(mob/living/carbon/human/new_human) new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/nun(new_human), WEAR_JACKET) @@ -13,11 +13,24 @@ assignment = "Trijent Dam Security Guard" /datum/equipment_preset/survivor/security/trijent/load_gear(mob/living/carbon/human/new_human) - new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/head_of_security/navyblue(new_human), WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/liaison_suit/blue(new_human), WEAR_BODY) new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/sec(new_human), WEAR_BACK) - new_human.equip_to_slot_or_del(new /obj/item/clothing/head/beret/marine/mp/mpcap(new_human), WEAR_HEAD) - new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/det_suit/black(new_human), WEAR_JACKET) - new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/jackboots(new_human), WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/marine/veteran/pmc(new_human), WEAR_HEAD) + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/vest/security(new_human), WEAR_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/corporate(new_human), WEAR_FEET) + ..() + +/datum/equipment_preset/survivor/colonial_marshal/trijent + name = "Survivor - Trijent Colonial Marshal Deputy" + assignment = "CMB Deputy" + +/datum/equipment_preset/survivor/colonial_marshal/trijent/load_gear(mob/living/carbon/human/new_human) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/CM_uniform(new_human), WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/CMB/limited(new_human), WEAR_L_EAR) + new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/sec(new_human), WEAR_BACK) + new_human.equip_to_slot_or_del(new /obj/item/clothing/head/CMB(new_human), WEAR_HEAD) + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/CMB(new_human), WEAR_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/veteran/pmc(new_human), WEAR_FEET) ..() /datum/equipment_preset/survivor/doctor/trijent @@ -25,20 +38,34 @@ assignment = "Trijent Dam Doctor" /datum/equipment_preset/survivor/doctor/trijent/load_gear(mob/living/carbon/human/new_human) - new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/medical/blue(new_human), WEAR_BODY) new_human.equip_to_slot_or_del(new /obj/item/clothing/head/surgery/blue(new_human), WEAR_HEAD) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/medical/blue(new_human), WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/white(new_human), WEAR_FEET) + ..() + +/datum/equipment_preset/survivor/scientist/trijent + name = "Survivor - Trijent Researcher" + assignment = "Trijent Dam Researcher" + +/datum/equipment_preset/survivor/scientist/trijent/load_gear(mob/living/carbon/human/new_human) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/rd(new_human), WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/head/beret/jan(new_human), WEAR_HEAD) + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/labcoat/researcher(new_human), WEAR_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/latex(new_human), WEAR_HANDS) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/laceup/brown(new_human), WEAR_FEET) ..() /datum/equipment_preset/survivor/trucker/trijent - name = "Survivor - Trijent Dam Heavy Vehicle Operator" + name = "Survivor - Trijent Heavy Vehicle Operator" assignment = "Trijent Dam Heavy Vehicle Operator" skills = /datum/skills/civilian/survivor/trucker /datum/equipment_preset/survivor/trucker/trijent/load_gear(mob/living/carbon/human/new_human) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/colonist/workwear/green(new_human), WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/jacket/marine/bomber/grey(new_human), WEAR_JACKET) new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/jackboots(new_human), WEAR_FEET) - new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/black(new_human), WEAR_HANDS) new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/eng(new_human), WEAR_BACK) - new_human.equip_to_slot_or_del(new /obj/item/clothing/head/hardhat(new_human), WEAR_HEAD) + new_human.equip_to_slot_or_del(new /obj/item/clothing/head/soft/trucker(new_human), WEAR_HEAD) new_human.equip_to_slot_or_del(new /obj/item/tool/weldingtool/hugetank(new_human), WEAR_IN_BACK) ..() @@ -47,8 +74,8 @@ assignment = "Hydro Electric Engineer" /datum/equipment_preset/survivor/engineer/trijent/hydro/load_gear(mob/living/carbon/human/new_human) - new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/engineer(new_human), WEAR_BODY) - new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/hazardvest(new_human), WEAR_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/colonist/workwear/khaki(new_human), WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/hazardvest/black(new_human), WEAR_JACKET) new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/eng(new_human), WEAR_BACK) new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/jackboots(new_human), WEAR_FEET) new_human.equip_to_slot_or_del(new /obj/item/clothing/head/hardhat(new_human), WEAR_HEAD) @@ -65,3 +92,14 @@ new_human.equip_to_slot_or_del(new /obj/item/clothing/head/hardhat/orange(new_human), WEAR_HEAD) new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/jackboots(new_human), WEAR_FEET) ..() + +/datum/equipment_preset/survivor/corporate/trijent + name = "Survivor - Trijent Corporate Liaison" + assignment = "Trijent Dam Corporate Liaison" + +/datum/equipment_preset/survivor/corporate/trijent/load_gear(mob/living/carbon/human/new_human) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/liaison_suit/ivy(new_human), WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/vest(new_human), WEAR_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/lockable(new_human), WEAR_BACK) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/laceup(new_human), WEAR_FEET) + ..() diff --git a/code/modules/gear_presets/synths.dm b/code/modules/gear_presets/synths.dm index 3b2efd8c22be..2fde67e931b9 100644 --- a/code/modules/gear_presets/synths.dm +++ b/code/modules/gear_presets/synths.dm @@ -119,7 +119,7 @@ WEAR_WAIST = /obj/item/storage/belt/utility/full, WEAR_R_STORE = /obj/item/storage/pouch/tools/full, WEAR_FEET = /obj/item/clothing/shoes/marine/knife, - WEAR_L_HAND = /obj/item/weapon/twohanded/fireaxe + WEAR_L_HAND = /obj/item/maintenance_jack ) var/survivor_variant = CIVILIAN_SURVIVOR @@ -147,6 +147,9 @@ . = ..() access = get_access(ACCESS_LIST_WY_PMC) +/datum/equipment_preset/synth/survivor/wy + flags = EQUIPMENT_PRESET_STUB + /datum/equipment_preset/synth/survivor/wy/New() . = ..() access = get_access(ACCESS_LIST_COLONIAL_ALL) + get_region_accesses(2) + get_region_accesses(4) + ACCESS_MARINE_RESEARCH + ACCESS_WY_GENERAL // for WY synths - admin building and wy fax machines access @@ -173,6 +176,7 @@ WEAR_FACE = /obj/item/clothing/mask/surgical, WEAR_EYES = /obj/item/clothing/glasses/hud/health, WEAR_BODY = /obj/item/clothing/under/rank/medical, + WEAR_ACCESSORY = /obj/item/clothing/accessory/armband/medgreen, WEAR_BACK = /obj/item/storage/backpack/satchel/med, WEAR_IN_BACK = /obj/item/roller/surgical, WEAR_JACKET = /obj/item/clothing/suit/storage/hazardvest/blue, @@ -194,6 +198,7 @@ WEAR_FACE = /obj/item/clothing/mask/surgical, WEAR_EYES = /obj/item/clothing/glasses/hud/health, WEAR_BODY = /obj/item/clothing/under/colonist/ua_civvies, + WEAR_ACCESSORY = /obj/item/clothing/accessory/armband/med, WEAR_BACK = /obj/item/storage/backpack/satchel/med, WEAR_IN_BACK = /obj/item/storage/firstaid/adv, WEAR_IN_BACK = /obj/item/tool/extinguisher/mini, @@ -230,25 +235,45 @@ survivor_variant = SCIENTIST_SURVIVOR +/datum/equipment_preset/synth/survivor/archaeologist_synth + name = "Survivor - Synthetic - Archaeologist Synth" + equipment_to_spawn = list( + WEAR_HEAD = /obj/item/clothing/head/hardhat/orange, + WEAR_BODY = /obj/item/clothing/under/rank/miner, + WEAR_BACK = /obj/item/storage/backpack/satchel/eng, + WEAR_IN_BACK = /obj/item/tool/shovel/spade, + WEAR_JACKET = /obj/item/clothing/suit/storage/utility_vest, + WEAR_IN_JACKET = /obj/item/explosive/plastic, + WEAR_WAIST = /obj/item/device/flashlight/lantern, + WEAR_R_HAND = /obj/item/stack/sandbags_empty/half, + WEAR_FEET = /obj/item/clothing/shoes/marine/knife, + WEAR_L_HAND = /obj/item/tool/pickaxe/hammer + ) + + survivor_variant = SCIENTIST_SURVIVOR + /datum/equipment_preset/synth/survivor/engineer_synth name = "Survivor - Synthetic - Engineer Synth" equipment_to_spawn = list( WEAR_HEAD = /obj/item/clothing/head/hardhat, WEAR_BODY = /obj/item/clothing/under/rank/engineer, + WEAR_ACCESSORY = /obj/item/clothing/accessory/armband/engine, WEAR_BACK = /obj/item/storage/backpack/satchel/eng, - WEAR_IN_BACK = /obj/item/ammo_magazine/smg/nailgun, + WEAR_IN_BACK = /obj/item/stack/sheet/metal/med_small_stack, WEAR_JACKET = /obj/item/clothing/suit/storage/hazardvest/yellow, WEAR_IN_JACKET = /obj/item/ammo_magazine/smg/nailgun, - WEAR_IN_JACKET = /obj/item/ammo_magazine/smg/nailgun, WEAR_J_STORE = /obj/item/weapon/gun/smg/nailgun/compact, WEAR_WAIST = /obj/item/storage/belt/utility/full, WEAR_R_STORE = /obj/item/storage/pouch/tools/full, WEAR_FEET = /obj/item/clothing/shoes/marine/knife, - WEAR_L_HAND = /obj/item/weapon/twohanded/fireaxe + WEAR_L_HAND = /obj/item/maintenance_jack ) survivor_variant = ENGINEERING_SURVIVOR +/datum/equipment_preset/synth/survivor/corporate_synth + name = "Survivor - Synthetic - Corporate Synth" + /datum/equipment_preset/synth/survivor/corporate_synth/load_gear(mob/living/carbon/human/new_human) ..() add_random_cl_survivor_loot(new_human) @@ -259,6 +284,7 @@ WEAR_HEAD = /obj/item/clothing/head/soft/purple, WEAR_EYES = /obj/item/clothing/glasses/mgoggles, WEAR_BODY = /obj/item/clothing/under/rank/janitor, + WEAR_ACCESSORY = /obj/item/clothing/accessory/armband/med, WEAR_BACK = /obj/item/storage/backpack/satchel/vir, WEAR_IN_BACK = /obj/item/reagent_container/glass/bucket, WEAR_IN_BACK = /obj/item/tool/wet_sign, @@ -269,7 +295,7 @@ WEAR_R_HAND = /obj/item/tool/mop, WEAR_R_STORE = /obj/item/storage/pouch/tools/full, WEAR_FEET = /obj/item/clothing/shoes/galoshes, - WEAR_L_HAND = /obj/item/weapon/twohanded/fireaxe + WEAR_L_HAND = /obj/item/weapon/twohanded/spear ) /datum/equipment_preset/synth/survivor/chef_synth @@ -285,7 +311,7 @@ WEAR_JACKET = /obj/item/clothing/suit/chef, WEAR_HANDS = /obj/item/clothing/gloves/latex, WEAR_FEET = /obj/item/clothing/shoes/marine/knife, - WEAR_L_HAND = /obj/item/weapon/twohanded/fireaxe + WEAR_L_HAND = /obj/item/tool/kitchen/knife/butcher ) /datum/equipment_preset/synth/survivor/teacher_synth @@ -294,14 +320,14 @@ WEAR_EYES = /obj/item/clothing/glasses/regular/hipster, WEAR_BODY = /obj/item/clothing/under/colonist/wy_davisone, WEAR_BACK = /obj/item/storage/backpack/satchel/norm, - WEAR_IN_BACK = /obj/item/reagent_container/food/snacks/wrapped/booniebars, WEAR_IN_BACK = /obj/item/reagent_container/food/snacks/wy_chips/pepper, - WEAR_IN_BACK = /obj/item/reagent_container/spray/cleaner, + WEAR_IN_BACK = /obj/item/storage/box/pdt_kit, WEAR_JACKET = /obj/item/clothing/suit/storage/bomber/alt, - WEAR_IN_JACKET = /obj/item/storage/box/pdt_kit, + WEAR_IN_JACKET = /obj/item/device/healthanalyzer, + WEAR_WAIST = /obj/item/reagent_container/spray/cleaner, WEAR_R_HAND = /obj/item/storage/fancy/crayons, WEAR_FEET = /obj/item/clothing/shoes/marine/knife, - WEAR_L_HAND = /obj/item/storage/large_holster/machete/full + WEAR_L_HAND = /obj/item/weapon/butterfly/switchblade ) /datum/equipment_preset/synth/survivor/freelancer_synth @@ -317,10 +343,28 @@ WEAR_WAIST = /obj/item/storage/belt/marine, WEAR_HANDS = /obj/item/clothing/gloves/marine/veteran, WEAR_R_HAND = /obj/item/storage/pouch/flare/full, - WEAR_FEET = /obj/item/clothing/shoes/marine/upp, + WEAR_FEET = /obj/item/clothing/shoes/marine/upp/knife, WEAR_L_HAND = /obj/item/storage/large_holster/katana/full ) +/datum/equipment_preset/synth/survivor/surveyor_synth + name = "Survivor - Synthetic - Surveyor Synth" + equipment_to_spawn = list( + WEAR_HEAD = /obj/item/clothing/head/cmcap/flap, + WEAR_FACE = /obj/item/clothing/mask/tornscarf, + WEAR_BODY = /obj/item/clothing/under/rank/synthetic/utility, + WEAR_BACK = /obj/item/storage/backpack/lightpack/five_slot, + WEAR_IN_BACK = /obj/item/storage/box/m94, + WEAR_JACKET = /obj/item/clothing/suit/storage/windbreaker/windbreaker_covenant, + WEAR_IN_JACKET = /obj/item/device/binoculars, + WEAR_WAIST = /obj/item/storage/backpack/general_belt, + WEAR_IN_BELT = /obj/item/stack/flag/green, + WEAR_HANDS = /obj/item/clothing/gloves/marine/veteran, + WEAR_R_HAND = /obj/item/storage/box/lightstick, + WEAR_FEET = /obj/item/clothing/shoes/marine/knife, + WEAR_L_HAND = /obj/item/storage/large_holster/machete/full + ) + /datum/equipment_preset/synth/survivor/trucker_synth name = "Survivor - Synthetic - Trucker Synth" equipment_to_spawn = list( @@ -343,13 +387,31 @@ WEAR_IN_BACK = /obj/item/reagent_container/food/drinks/bottle/tequila, WEAR_IN_BACK = /obj/item/reagent_container/food/drinks/bottle/cognac, WEAR_IN_BACK = /obj/item/reagent_container/food/drinks/bottle/grenadine, - WEAR_IN_BACK = /obj/item/reagent_container/food/drinks/bottle/rum, - WEAR_JACKET = /obj/item/clothing/suit/storage/lawyer/bluejacket, + WEAR_JACKET = /obj/item/clothing/suit/storage/wcoat, + WEAR_IN_JACKET = /obj/item/reagent_container/food/drinks/bottle/rum, WEAR_HANDS = /obj/item/clothing/gloves/marine/black, WEAR_R_HAND = /obj/item/storage/beer_pack, WEAR_R_STORE = /obj/item/storage/pouch/tools/full, WEAR_FEET = /obj/item/clothing/shoes/marine/knife, - WEAR_L_HAND = /obj/item/weapon/twohanded/fireaxe + WEAR_L_HAND = /obj/item/weapon/baseballbat + ) + +/datum/equipment_preset/synth/survivor/atc_synth + name = "Survivor - Synthetic - Landing Pad Attendant Synth" + equipment_to_spawn = list( + WEAR_R_EAR = /obj/item/clothing/ears/earmuffs, + WEAR_HEAD = /obj/item/clothing/head/cmcap, + WEAR_BODY = /obj/item/clothing/under/rank/synthetic/utility/yellow, + WEAR_BACK = /obj/item/storage/backpack/satchel/norm, + WEAR_IN_BACK = /obj/item/storage/box/m94, + WEAR_JACKET = /obj/item/clothing/suit/storage/hazardvest, + WEAR_IN_JACKET = /obj/item/device/binoculars, + WEAR_WAIST = /obj/item/storage/backpack/general_belt, + WEAR_IN_BELT = /obj/item/stack/flag/red, + WEAR_HANDS = /obj/item/clothing/gloves/marine/veteran, + WEAR_R_HAND = /obj/item/storage/box/lightstick/red, + WEAR_FEET = /obj/item/clothing/shoes/marine/knife, + WEAR_L_HAND = /obj/item/storage/large_holster/machete/full ) /datum/equipment_preset/synth/survivor/detective_synth @@ -362,7 +424,7 @@ WEAR_IN_BACK = /obj/item/device/taperecorder, WEAR_JACKET = /obj/item/clothing/suit/storage/det_suit/black, WEAR_IN_JACKET = /obj/item/weapon/telebaton, - WEAR_WAIST = /obj/item/storage/belt/security/MP/full, + WEAR_WAIST = /obj/item/storage/belt/security/MP/full/synth, WEAR_HANDS = /obj/item/clothing/gloves/black, WEAR_R_HAND = /obj/item/device/camera, WEAR_FEET = /obj/item/clothing/shoes/marine/knife, @@ -403,18 +465,21 @@ WEAR_HEAD = /obj/item/clothing/head/soft/sec/corp, WEAR_L_EAR = /obj/item/device/radio/headset/distress/WY, WEAR_EYES = /obj/item/clothing/glasses/sunglasses/sechud, - WEAR_BODY = /obj/item/clothing/under/marine/officer/formal/servicedress, + WEAR_BODY = /obj/item/clothing/under/colonist/white_service, WEAR_BACK = /obj/item/storage/backpack/satchel/sec, - WEAR_IN_BACK = /obj/item/weapon/telebaton, + WEAR_IN_BACK = /obj/item/restraint/handcuffs, + WEAR_IN_BACK = /obj/item/restraint/handcuffs, WEAR_JACKET = /obj/item/clothing/suit/storage/webbing, - WEAR_WAIST = /obj/item/storage/belt/security/MP/full, + WEAR_WAIST = /obj/item/storage/belt/security/MP/full/synth, + WEAR_IN_JACKET = /obj/item/weapon/telebaton, WEAR_HANDS = /obj/item/clothing/gloves/black, WEAR_R_STORE = /obj/item/storage/pouch/tools/full, WEAR_FEET = /obj/item/clothing/shoes/marine/knife, - WEAR_L_HAND = /obj/item/weapon/twohanded/fireaxe + WEAR_L_HAND = /obj/item/weapon/classic_baton ) survivor_variant = SECURITY_SURVIVOR + flags = EQUIPMENT_PRESET_EXTRA /datum/equipment_preset/synth/survivor/wy/protection_synth name = "Survivor - Synthetic - Corporate Protection Synth" @@ -427,9 +492,7 @@ WEAR_BODY = /obj/item/clothing/under/marine/veteran/pmc, WEAR_ACCESSORY = /obj/item/clothing/accessory/storage/droppouch, WEAR_IN_ACCESSORY = /obj/item/explosive/grenade/flashbang, - WEAR_IN_ACCESSORY = /obj/item/handcuffs/zip, - WEAR_IN_ACCESSORY = /obj/item/handcuffs/zip, - WEAR_BACK = /obj/item/storage/backpack/lightpack, + WEAR_BACK = /obj/item/storage/backpack/lightpack/five_slot, WEAR_IN_BACK = /obj/item/device/binoculars, WEAR_JACKET = /obj/item/clothing/suit/storage/hazardvest/black, WEAR_IN_JACKET = /obj/item/weapon/telebaton, @@ -439,6 +502,7 @@ ) survivor_variant = SECURITY_SURVIVOR + flags = EQUIPMENT_PRESET_EXTRA /datum/equipment_preset/synth/survivor/wy/corporate_synth name = "Survivor - Synthetic - Corporate Clerical Synth" @@ -446,13 +510,12 @@ role_comm_title = "WY Syn" equipment_to_spawn = list( WEAR_L_EAR = /obj/item/device/radio/headset/distress/WY, + WEAR_R_EAR = /obj/item/tool/pen/clicky, WEAR_BODY = /obj/item/clothing/under/suit_jacket/trainee, WEAR_BACK = /obj/item/storage/backpack/satchel/lockable, - WEAR_IN_BACK = /obj/item/paper, - WEAR_IN_BACK = /obj/item/paper, + WEAR_IN_BACK = /obj/item/notepad, WEAR_IN_BACK = /obj/item/folder, WEAR_IN_BACK = /obj/item/paper/research_notes/good, - WEAR_IN_BACK = /obj/item/tool/pen/clicky, WEAR_IN_BACK = /obj/item/device/taperecorder, WEAR_WAIST = /obj/item/storage/belt/utility/full, WEAR_HANDS = /obj/item/clothing/gloves/botanic_leather, @@ -462,6 +525,30 @@ ) survivor_variant = CORPORATE_SURVIVOR + flags = EQUIPMENT_PRESET_EXTRA + +/datum/equipment_preset/synth/survivor/icc_synth + name = "Survivor - Synthetic - Interstellar Commerce Commission Synthetic" + idtype = /obj/item/card/id/silver/cl + role_comm_title = "ICC Syn" + equipment_to_spawn = list( + WEAR_L_EAR = /obj/item/device/radio/headset/distress/CMB/limited, + WEAR_R_EAR = /obj/item/tool/pen/clicky, + WEAR_HEAD = /obj/item/clothing/head/hardhat/white, + WEAR_BODY = /obj/item/clothing/under/liaison_suit/black, + WEAR_BACK = /obj/item/storage/backpack/satchel/lockable, + WEAR_IN_BACK = /obj/item/notepad, + WEAR_IN_BACK = /obj/item/folder, + WEAR_IN_BACK = /obj/item/paper/research_notes/good, + WEAR_WAIST = /obj/item/clipboard, + WEAR_JACKET = /obj/item/clothing/suit/storage/hazardvest/yellow, + WEAR_IN_JACKET = /obj/item/device/taperecorder, + WEAR_FEET = /obj/item/clothing/shoes/dress, + WEAR_R_HAND = /obj/item/device/camera, + WEAR_L_HAND = /obj/item/weapon/twohanded/fireaxe + ) + + survivor_variant = CORPORATE_SURVIVOR /datum/equipment_preset/synth/survivor/radiation_synth name = "Survivor - Synthetic - Radiation Synth" @@ -470,13 +557,12 @@ WEAR_BODY = /obj/item/clothing/under/marine/officer/engi, WEAR_BACK = /obj/item/storage/backpack/satchel/eng, WEAR_IN_BACK = /obj/item/tool/weldingtool/hugetank, - WEAR_IN_BACK = /obj/item/storage/firstaid/toxin, WEAR_JACKET = /obj/item/clothing/suit/radiation, WEAR_WAIST = /obj/item/tank/emergency_oxygen/double, WEAR_HANDS = /obj/item/clothing/gloves/yellow, - WEAR_R_HAND = /obj/item/device/motiondetector, + WEAR_R_HAND = /obj/item/storage/pouch/electronics/full, WEAR_FEET = /obj/item/clothing/shoes/marine/knife, - WEAR_L_HAND = /obj/item/weapon/twohanded/fireaxe + WEAR_L_HAND = /obj/item/maintenance_jack ) survivor_variant = ENGINEERING_SURVIVOR @@ -492,13 +578,30 @@ rank = JOB_WORKING_JOE skills = /datum/skills/working_joe languages = list(LANGUAGE_ENGLISH, LANGUAGE_APOLLO, LANGUAGE_RUSSIAN, LANGUAGE_JAPANESE, LANGUAGE_GERMAN, LANGUAGE_SPANISH, LANGUAGE_CHINESE) + /// Used to set species when loading race + var/joe_type = SYNTH_WORKING_JOE /datum/equipment_preset/synth/working_joe/New() . = ..() access = get_access(ACCESS_LIST_GLOBAL) /datum/equipment_preset/synth/working_joe/load_race(mob/living/carbon/human/new_human) - new_human.set_species(SYNTH_WORKING_JOE) + . = ..() + new_human.set_species(joe_type) + new_human.h_style = "Bald" + new_human.f_style = "Shaved" + if(prob(5)) + new_human.grad_style = "None" //No gradients for Working Joes + new_human.h_style = "Shoulder-length Hair" //Added the chance of hair as per Monkeyfist lore accuracy + new_human.r_eyes = 0 + new_human.g_eyes = 0 + new_human.b_eyes = 0 + new_human.r_hair = 100 + new_human.g_hair = 88 + new_human.b_hair = 74 + new_human.r_facial = 255 + new_human.g_facial = 255 + new_human.b_facial = 255 /datum/equipment_preset/synth/working_joe/load_vanity(mob/living/carbon/human/new_human) return @@ -531,6 +634,7 @@ /datum/equipment_preset/synth/working_joe/engi name = "Synthetic - Hazmat Joe" + joe_type = SYNTH_HAZARD_JOE /datum/equipment_preset/synth/working_joe/engi/load_gear(mob/living/carbon/human/new_human) var/choice = rand(1,2) @@ -559,8 +663,10 @@ new_human.equip_to_slot_or_del(new /obj/item/stack/sheet/metal/large_stack(new_human.back), WEAR_IN_R_STORE) new_human.equip_to_slot_or_del(new /obj/item/stack/sheet/glass/reinforced/large_stack(new_human.back), WEAR_IN_R_STORE) + /datum/equipment_preset/synth/working_joe/load_race(mob/living/carbon/human/new_human) . = ..() + new_human.set_species(joe_type) new_human.h_style = "Bald" new_human.f_style = "Shaved" if(prob(5)) @@ -703,7 +809,7 @@ new_human.equip_to_slot_or_del(new /obj/item/stack/nanopaste(new_human), WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/stack/nanopaste(new_human), WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/tool/crowbar(new_human), WEAR_IN_BACK) - new_human.equip_to_slot_or_del(new /obj/item/handcuffs/zip(new_human), WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/restraint/handcuffs/zip(new_human), WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/pistol/tranquilizer(new_human), WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset(new_human), WEAR_L_EAR) new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/tools/full(new_human), WEAR_R_STORE) diff --git a/code/modules/gear_presets/upp.dm b/code/modules/gear_presets/upp.dm index dc79f87c5135..417a893ffdee 100644 --- a/code/modules/gear_presets/upp.dm +++ b/code/modules/gear_presets/upp.dm @@ -67,7 +67,6 @@ paygrade = PAY_SHORT_UE2 /datum/equipment_preset/upp/soldier/load_gear(mob/living/carbon/human/new_human) - //TODO: add backpacks and satchels //face new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/UPP, WEAR_L_EAR) //head @@ -75,10 +74,12 @@ //body var/obj/item/clothing/under/marine/veteran/UPP/UPP = new() new_human.equip_to_slot_or_del(UPP, WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/patch/upp, WEAR_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/patch/upp/naval, WEAR_ACCESSORY) new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/faction/UPP, WEAR_JACKET) new_human.equip_to_slot_or_del(new /obj/item/device/binoculars, WEAR_IN_JACKET) //limbs - new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/upp, WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/upp/knife, WEAR_FEET) new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/veteran/upp, WEAR_HANDS) if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD]) @@ -151,7 +152,7 @@ /datum/equipment_preset/upp/soldier/get_antag_clothing_equipment() return list( list("STANDARD EQUIPMENT (TAKE ALL)", 0, null, null, null), - list("Boots", 0, /obj/item/clothing/shoes/marine/upp, MARINE_CAN_BUY_SHOES, VENDOR_ITEM_MANDATORY), + list("Boots", 0, /obj/item/clothing/shoes/marine/upp/knife, MARINE_CAN_BUY_SHOES, VENDOR_ITEM_MANDATORY), list("Fatigues", 0, /obj/item/clothing/under/marine/veteran/UPP, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_MANDATORY), list("UM5 Personal Armor", 0, /obj/item/clothing/suit/storage/marine/faction/UPP, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_MANDATORY), list("Gloves", 0, /obj/item/clothing/gloves/marine/veteran/upp, MARINE_CAN_BUY_GLOVES, VENDOR_ITEM_MANDATORY), @@ -256,12 +257,14 @@ new_human.equip_to_slot_or_del(new /obj/item/clothing/head/uppcap, WEAR_HEAD) //body new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/veteran/UPP/medic, WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/patch/upp, WEAR_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/patch/upp/naval, WEAR_ACCESSORY) new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/faction/UPP/support, WEAR_JACKET) //medic should move fast new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/smg/bizon/upp, WEAR_J_STORE) //waist new_human.equip_to_slot_or_del(new /obj/item/storage/belt/medical/lifesaver/upp/full, WEAR_WAIST) //limbs - new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/upp, WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/upp/knife, WEAR_FEET) new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/veteran/upp, WEAR_HANDS) //póckets var/obj/item/storage/pouch/magazine/large/ppouch = new() @@ -280,7 +283,7 @@ /datum/equipment_preset/upp/medic/get_antag_clothing_equipment() return list( list("STANDARD EQUIPMENT (TAKE ALL)", 0, null, null, null), - list("Boots", 0, /obj/item/clothing/shoes/marine/upp, MARINE_CAN_BUY_SHOES, VENDOR_ITEM_MANDATORY), + list("Boots", 0, /obj/item/clothing/shoes/marine/upp/knife, MARINE_CAN_BUY_SHOES, VENDOR_ITEM_MANDATORY), list("Medic Fatigues", 0, /obj/item/clothing/under/marine/veteran/UPP/medic, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_MANDATORY), list("UL6 Personal Armor", 0, /obj/item/clothing/suit/storage/marine/faction/UPP/support, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_MANDATORY), list("Gloves", 0, /obj/item/clothing/gloves/marine/veteran/upp, MARINE_CAN_BUY_GLOVES, VENDOR_ITEM_MANDATORY), @@ -415,7 +418,7 @@ new_human.equip_to_slot_or_del(new /obj/item/reagent_container/food/snacks/upp, WEAR_IN_BACK) //.33 new_human.equip_to_slot_or_del(new /obj/item/reagent_container/food/snacks/upp, WEAR_IN_BACK) //.66 new_human.equip_to_slot_or_del(new /obj/item/device/motiondetector/hacked, WEAR_IN_BACK) //1.66 - new_human.equip_to_slot_or_del(new /obj/item/defenses/handheld/sentry/mini, WEAR_IN_BACK) //2.66 + new_human.equip_to_slot_or_del(new /obj/item/defenses/handheld/sentry/upp/light, WEAR_IN_BACK) //2.66 //face new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/UPP/cct, WEAR_L_EAR) new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/welding(new_human), WEAR_EYES) @@ -428,6 +431,8 @@ var/obj/item/clothing/accessory/storage/tool_webbing/equipped/W = new() UPP.attach_accessory(new_human, W) new_human.equip_to_slot_or_del(UPP, WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/patch/upp, WEAR_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/patch/upp/naval, WEAR_ACCESSORY) new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/faction/UPP, WEAR_JACKET) new_human.equip_to_slot_or_del(new /obj/item/device/binoculars, WEAR_IN_JACKET) new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/rifle/type71/sapper, WEAR_J_STORE) @@ -435,7 +440,7 @@ new_human.equip_to_slot_or_del(new /obj/item/storage/belt/marine/upp/sapper(new_human), WEAR_WAIST) //limb new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/veteran/insulated(new_human), WEAR_HANDS) - new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/upp, WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/upp/knife, WEAR_FEET) //pockets new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/firstaid/ert(new_human), WEAR_L_STORE) new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/construction/full(new_human), WEAR_R_STORE) @@ -443,7 +448,7 @@ /datum/equipment_preset/upp/sapper/get_antag_clothing_equipment() return list( list("STANDARD EQUIPMENT (TAKE ALL)", 0, null, null, null), - list("Boots", 0, /obj/item/clothing/shoes/marine/upp, MARINE_CAN_BUY_SHOES, VENDOR_ITEM_MANDATORY), + list("Boots", 0, /obj/item/clothing/shoes/marine/upp/knife, MARINE_CAN_BUY_SHOES, VENDOR_ITEM_MANDATORY), list("Fatigues", 0, /obj/item/clothing/under/marine/veteran/UPP, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_MANDATORY), list("UM5 Personal Armor", 0, /obj/item/clothing/suit/storage/marine/faction/UPP, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_MANDATORY), list("Gloves", 0, /obj/item/clothing/gloves/marine/veteran/upp, MARINE_CAN_BUY_GLOVES, VENDOR_ITEM_MANDATORY), @@ -486,9 +491,9 @@ list("Essential Sapper Set", 0, /obj/effect/essentials_set/engi, MARINE_CAN_BUY_ESSENTIALS, VENDOR_ITEM_MANDATORY), list("HANDHELD DEFENSE (CHOOSE 1)", 0, null, null, null), - list("JIMA Planted Flag", 0, /obj/item/defenses/handheld/planted_flag, MARINE_CAN_BUY_ATTACHMENT, VENDOR_ITEM_MANDATORY), - list("UA 42-F Sentry Flamer", 0, /obj/item/defenses/handheld/sentry/flamer, MARINE_CAN_BUY_ATTACHMENT, VENDOR_ITEM_MANDATORY), - list("UA 571-C Sentry Gun", 0, /obj/item/defenses/handheld/sentry, MARINE_CAN_BUY_ATTACHMENT, VENDOR_ITEM_MANDATORY), + list("UPP Planted Flag", 0, /obj/item/defenses/handheld/planted_flag/upp, MARINE_CAN_BUY_ATTACHMENT, VENDOR_ITEM_MANDATORY), + list("UPP SDS-R5 Sentry Flamer", 0, /obj/item/defenses/handheld/sentry/flamer/upp, MARINE_CAN_BUY_ATTACHMENT, VENDOR_ITEM_MANDATORY), + list("UPP SDS-R3 Sentry Gun", 0, /obj/item/defenses/handheld/sentry/upp, MARINE_CAN_BUY_ATTACHMENT, VENDOR_ITEM_MANDATORY), list("ENGINEERING SUPPLIES", 0, null, null, null), list("Airlock Circuit Board", 2, /obj/item/circuitboard/airlock, null, VENDOR_ITEM_REGULAR), @@ -554,9 +559,11 @@ //body var/obj/item/clothing/under/marine/veteran/UPP/UPP = new() new_human.equip_to_slot_or_del(UPP, WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/patch/upp, WEAR_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/patch/upp/naval, WEAR_ACCESSORY) new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/faction/UPP/heavy, WEAR_JACKET) //limbs - new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/upp, WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/upp/knife, WEAR_FEET) new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/veteran/upp, WEAR_HANDS) //pockets new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/explosive/C4, WEAR_R_STORE) @@ -582,7 +589,7 @@ /datum/equipment_preset/upp/specialist/get_antag_clothing_equipment() return list( list("STANDARD EQUIPMENT (TAKE ALL)", 0, null, null, null), - list("Boots", 0, /obj/item/clothing/shoes/marine/upp, MARINE_CAN_BUY_SHOES, VENDOR_ITEM_MANDATORY), + list("Boots", 0, /obj/item/clothing/shoes/marine/upp/knife, MARINE_CAN_BUY_SHOES, VENDOR_ITEM_MANDATORY), list("Fatigues", 0, /obj/item/clothing/under/marine/veteran/UPP, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_MANDATORY), list("UH7 Heavy Plated Armor", 0, /obj/item/clothing/suit/storage/marine/faction/UPP/heavy, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_MANDATORY), list("Gloves", 0, /obj/item/clothing/gloves/marine/veteran/upp, MARINE_CAN_BUY_GLOVES, VENDOR_ITEM_MANDATORY), @@ -681,9 +688,11 @@ //body var/obj/item/clothing/under/marine/veteran/UPP/UPP = new() new_human.equip_to_slot_or_del(UPP, WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/patch/upp, WEAR_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/patch/upp/naval, WEAR_ACCESSORY) new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/faction/UPP/heavy, WEAR_JACKET) //limbs - new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/upp, WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/upp/knife, WEAR_FEET) new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/veteran/upp, WEAR_HANDS) //pockets new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/explosive/C4, WEAR_R_STORE) @@ -707,7 +716,7 @@ /datum/equipment_preset/upp/machinegunner/get_antag_clothing_equipment() return list( list("STANDARD EQUIPMENT (TAKE ALL)", 0, null, null, null), - list("Boots", 0, /obj/item/clothing/shoes/marine/upp, MARINE_CAN_BUY_SHOES, VENDOR_ITEM_MANDATORY), + list("Boots", 0, /obj/item/clothing/shoes/marine/upp/knife, MARINE_CAN_BUY_SHOES, VENDOR_ITEM_MANDATORY), list("Fatigues", 0, /obj/item/clothing/under/marine/veteran/UPP, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_MANDATORY), list("UH7 Heavy Plated Armor", 0, /obj/item/clothing/suit/storage/marine/faction/UPP/heavy, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_MANDATORY), list("Gloves", 0, /obj/item/clothing/gloves/marine/veteran/upp, MARINE_CAN_BUY_GLOVES, VENDOR_ITEM_MANDATORY), @@ -813,6 +822,8 @@ var/obj/item/clothing/accessory/storage/webbing/W = new() UPP.attach_accessory(new_human, W) new_human.equip_to_slot_or_del(UPP, WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/patch/upp, WEAR_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/patch/upp/naval, WEAR_ACCESSORY) new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/type71, WEAR_IN_ACCESSORY) new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/type71/ap, WEAR_IN_ACCESSORY) new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/type71/ap, WEAR_IN_ACCESSORY) @@ -829,7 +840,7 @@ if(4) //25% new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/type47/revolver, WEAR_WAIST) //limbs - new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/upp, WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/upp/knife, WEAR_FEET) new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/veteran/upp, WEAR_HANDS) //pockets new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/flamertank, WEAR_R_STORE) @@ -843,7 +854,7 @@ /datum/equipment_preset/upp/leader/get_antag_clothing_equipment() return list( list("STANDARD EQUIPMENT (TAKE ALL)", 0, null, null, null), - list("Boots", 0, /obj/item/clothing/shoes/marine/upp, MARINE_CAN_BUY_SHOES, VENDOR_ITEM_MANDATORY), + list("Boots", 0, /obj/item/clothing/shoes/marine/upp/knife, MARINE_CAN_BUY_SHOES, VENDOR_ITEM_MANDATORY), list("Fatigues", 0, /obj/item/clothing/under/marine/veteran/UPP, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_MANDATORY), list("UH7 Heavy Plated Armor", 0, /obj/item/clothing/suit/storage/marine/faction/UPP/heavy, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_MANDATORY), list("Gloves", 0, /obj/item/clothing/gloves/marine/veteran/upp, MARINE_CAN_BUY_GLOVES, VENDOR_ITEM_MANDATORY), @@ -972,6 +983,8 @@ new_human.equip_to_slot_or_del(new /obj/item/clothing/head/uppcap/beret, WEAR_HEAD) //uniform new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/veteran/UPP/mp, WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/patch/upp, WEAR_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/patch/upp/naval, WEAR_ACCESSORY) //jacket new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/faction/UPP/mp, WEAR_JACKET) new_human.equip_to_slot_or_del(new /obj/item/device/binoculars, WEAR_IN_JACKET) @@ -979,7 +992,7 @@ //waist new_human.equip_to_slot_or_del(new /obj/item/storage/belt/security/MP/UPP/full, WEAR_WAIST) //limbs - new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/upp, WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/upp/knife, WEAR_FEET) new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/veteran/upp, WEAR_HANDS) //pockets new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/autoinjector/full, WEAR_L_STORE) @@ -990,7 +1003,7 @@ /datum/equipment_preset/upp/military_police/get_antag_clothing_equipment() return list( list("STANDARD EQUIPMENT (TAKE ALL)", 0, null, null, null), - list("Boots", 0, /obj/item/clothing/shoes/marine/upp, MARINE_CAN_BUY_SHOES, VENDOR_ITEM_MANDATORY), + list("Boots", 0, /obj/item/clothing/shoes/marine/upp/knife, MARINE_CAN_BUY_SHOES, VENDOR_ITEM_MANDATORY), list("Fatigues", 0, /obj/item/clothing/under/marine/veteran/UPP/mp, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_MANDATORY), list("UL4 camouflaged jacket", 0, /obj/item/clothing/suit/storage/marine/faction/UPP/mp, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_MANDATORY), list("Gloves", 0, /obj/item/clothing/gloves/marine/veteran/upp, MARINE_CAN_BUY_GLOVES, VENDOR_ITEM_MANDATORY), @@ -1131,6 +1144,8 @@ new_human.equip_to_slot_or_del(M, WEAR_BODY) for(var/i in 1 to W.hold.storage_slots) new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/type71/ap, WEAR_IN_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/patch/upp, WEAR_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/patch/upp/naval, WEAR_ACCESSORY) //jacket new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/faction/UPP/officer, WEAR_JACKET) @@ -1140,7 +1155,7 @@ //waist new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/type47/np92, WEAR_WAIST) //limbs - new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/upp, WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/upp/knife, WEAR_FEET) new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/veteran/upp, WEAR_HANDS) //pockets new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/general/large, WEAR_L_STORE) @@ -1155,7 +1170,7 @@ /datum/equipment_preset/upp/officer/get_antag_clothing_equipment() return list( list("STANDARD EQUIPMENT (TAKE ALL)", 0, null, null, null), - list("Boots", 0, /obj/item/clothing/shoes/marine/upp, MARINE_CAN_BUY_SHOES, VENDOR_ITEM_MANDATORY), + list("Boots", 0, /obj/item/clothing/shoes/marine/upp/knife, MARINE_CAN_BUY_SHOES, VENDOR_ITEM_MANDATORY), list("Fatigues", 0, /obj/item/clothing/under/marine/veteran/UPP/officer, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_MANDATORY), list("Gloves", 0, /obj/item/clothing/gloves/marine/veteran/upp, MARINE_CAN_BUY_GLOVES, VENDOR_ITEM_MANDATORY), list("Headset", 0, /obj/item/device/radio/headset/distress/UPP/command, MARINE_CAN_BUY_EAR, VENDOR_ITEM_MANDATORY), @@ -1236,9 +1251,6 @@ list("Health Analyzer", 4, /obj/item/device/healthanalyzer, null, VENDOR_ITEM_REGULAR), list("Medical HUD Glasses", 4, /obj/item/clothing/glasses/hud/health, null, VENDOR_ITEM_MANDATORY), - list("SPECIAL AMMUNITION", 0, null, null, null), - list("Type 71 HEAP Magazine (5.45x39mm)", 10, /obj/item/ammo_magazine/rifle/type71/heap , null, VENDOR_ITEM_REGULAR), - list("ATTACHMENTS", 0, null, null, null), list("Angled Grip", 10, /obj/item/attachable/angledgrip, null, VENDOR_ITEM_REGULAR), list("Extended Barrel", 10, /obj/item/attachable/extended_barrel, null, VENDOR_ITEM_REGULAR), @@ -1291,6 +1303,8 @@ new_human.equip_to_slot_or_del(M, WEAR_BODY) for(var/i in 1 to W.hold.storage_slots) new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/type71/ap, WEAR_IN_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/patch/upp, WEAR_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/patch/upp/naval, WEAR_ACCESSORY) //jacket new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/faction/UPP/officer, WEAR_JACKET) @@ -1300,7 +1314,7 @@ //waist new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/type47/t73, WEAR_WAIST) //limbs - new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/upp, WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/upp/knife, WEAR_FEET) new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/veteran/upp, WEAR_HANDS) //pockets new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/general/large, WEAR_L_STORE) @@ -1315,7 +1329,7 @@ /datum/equipment_preset/upp/officer/senior/get_antag_clothing_equipment() return list( list("STANDARD EQUIPMENT (TAKE ALL)", 0, null, null, null), - list("Boots", 0, /obj/item/clothing/shoes/marine/upp, MARINE_CAN_BUY_SHOES, VENDOR_ITEM_MANDATORY), + list("Boots", 0, /obj/item/clothing/shoes/marine/upp/knife, MARINE_CAN_BUY_SHOES, VENDOR_ITEM_MANDATORY), list("Fatigues", 0, /obj/item/clothing/under/marine/veteran/UPP/officer, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_MANDATORY), list("Gloves", 0, /obj/item/clothing/gloves/marine/veteran/upp, MARINE_CAN_BUY_GLOVES, VENDOR_ITEM_MANDATORY), list("Headset", 0, /obj/item/device/radio/headset/distress/UPP/command, MARINE_CAN_BUY_EAR, VENDOR_ITEM_MANDATORY), @@ -1396,9 +1410,6 @@ list("Health Analyzer", 4, /obj/item/device/healthanalyzer, null, VENDOR_ITEM_REGULAR), list("Medical HUD Glasses", 4, /obj/item/clothing/glasses/hud/health, null, VENDOR_ITEM_MANDATORY), - list("SPECIAL AMMUNITION", 0, null, null, null), - list("Type 71 HEAP Magazine (5.45x39mm)", 10, /obj/item/ammo_magazine/rifle/type71/heap , null, VENDOR_ITEM_REGULAR), - list("ATTACHMENTS", 0, null, null, null), list("Angled Grip", 10, /obj/item/attachable/angledgrip, null, VENDOR_ITEM_REGULAR), list("Extended Barrel", 10, /obj/item/attachable/extended_barrel, null, VENDOR_ITEM_REGULAR), @@ -1452,6 +1463,8 @@ new_human.equip_to_slot_or_del(M, WEAR_BODY) for(var/i in 1 to W.hold.storage_slots) new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/type71/ap, WEAR_IN_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/patch/upp, WEAR_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/patch/upp/naval, WEAR_ACCESSORY) //jacket new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/faction/UPP/kapitan, WEAR_JACKET) @@ -1461,7 +1474,7 @@ //waist new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/type47/t73, WEAR_WAIST) //limbs - new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/upp, WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/upp/knife, WEAR_FEET) new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/veteran, WEAR_HANDS) //pockets new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/general/large, WEAR_L_STORE) @@ -1476,7 +1489,7 @@ /datum/equipment_preset/upp/officer/kapitan/get_antag_clothing_equipment() return list( list("STANDARD EQUIPMENT (TAKE ALL)", 0, null, null, null), - list("Boots", 0, /obj/item/clothing/shoes/marine/upp, MARINE_CAN_BUY_SHOES, VENDOR_ITEM_MANDATORY), + list("Boots", 0, /obj/item/clothing/shoes/marine/upp/knife, MARINE_CAN_BUY_SHOES, VENDOR_ITEM_MANDATORY), list("Fatigues", 0, /obj/item/clothing/under/marine/veteran/UPP/officer, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_MANDATORY), list("Gloves", 0, /obj/item/clothing/gloves/marine/veteran, MARINE_CAN_BUY_GLOVES, VENDOR_ITEM_MANDATORY), list("Headset", 0, /obj/item/device/radio/headset/distress/UPP/command, MARINE_CAN_BUY_EAR, VENDOR_ITEM_MANDATORY), @@ -1557,9 +1570,6 @@ list("Health Analyzer", 4, /obj/item/device/healthanalyzer, null, VENDOR_ITEM_REGULAR), list("Medical HUD Glasses", 4, /obj/item/clothing/glasses/hud/health, null, VENDOR_ITEM_MANDATORY), - list("SPECIAL AMMUNITION", 0, null, null, null), - list("Type 71 HEAP Magazine (5.45x39mm)", 10, /obj/item/ammo_magazine/rifle/type71/heap , null, VENDOR_ITEM_REGULAR), - list("ATTACHMENTS", 0, null, null, null), list("Angled Grip", 10, /obj/item/attachable/angledgrip, null, VENDOR_ITEM_REGULAR), list("Extended Barrel", 10, /obj/item/attachable/extended_barrel, null, VENDOR_ITEM_REGULAR), @@ -1613,6 +1623,8 @@ new_human.equip_to_slot_or_del(M, WEAR_BODY) for(var/i in 1 to W.hold.storage_slots) new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/type71/ap, WEAR_IN_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/patch/upp, WEAR_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/patch/upp/naval, WEAR_ACCESSORY) //jacket new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/faction/UPP/kapitan, WEAR_JACKET) @@ -1622,7 +1634,7 @@ //waist new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/type47/t73/leader, WEAR_WAIST) //limbs - new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/upp, WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/upp/knife, WEAR_FEET) new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/veteran/upp, WEAR_HANDS) //pockets new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/general/large, WEAR_L_STORE) @@ -1637,7 +1649,7 @@ /datum/equipment_preset/upp/officer/major/get_antag_clothing_equipment() return list( list("STANDARD EQUIPMENT (TAKE ALL)", 0, null, null, null), - list("Boots", 0, /obj/item/clothing/shoes/marine/upp, MARINE_CAN_BUY_SHOES, VENDOR_ITEM_MANDATORY), + list("Boots", 0, /obj/item/clothing/shoes/marine/upp/knife, MARINE_CAN_BUY_SHOES, VENDOR_ITEM_MANDATORY), list("Fatigues", 0, /obj/item/clothing/under/marine/veteran/UPP/officer, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_MANDATORY), list("Gloves", 0, /obj/item/clothing/gloves/marine/veteran/upp, MARINE_CAN_BUY_GLOVES, VENDOR_ITEM_MANDATORY), list("Headset", 0, /obj/item/device/radio/headset/distress/UPP/command, MARINE_CAN_BUY_EAR, VENDOR_ITEM_MANDATORY), @@ -1718,9 +1730,6 @@ list("Health Analyzer", 4, /obj/item/device/healthanalyzer, null, VENDOR_ITEM_REGULAR), list("Medical HUD Glasses", 4, /obj/item/clothing/glasses/hud/health, null, VENDOR_ITEM_MANDATORY), - list("SPECIAL AMMUNITION", 0, null, null, null), - list("Type 71 HEAP Magazine (5.45x39mm)", 10, /obj/item/ammo_magazine/rifle/type71/heap , null, VENDOR_ITEM_REGULAR), - list("ATTACHMENTS", 0, null, null, null), list("Angled Grip", 10, /obj/item/attachable/angledgrip, null, VENDOR_ITEM_REGULAR), list("Extended Barrel", 10, /obj/item/attachable/extended_barrel, null, VENDOR_ITEM_REGULAR), @@ -1774,6 +1783,8 @@ new_human.equip_to_slot_or_del(M, WEAR_BODY) for(var/i in 1 to W.hold.storage_slots) new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/type71/ap, WEAR_IN_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/patch/upp, WEAR_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/patch/upp/naval, WEAR_ACCESSORY) //jacket new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/faction/UPP/kapitan, WEAR_JACKET) @@ -1783,7 +1794,7 @@ //waist new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/type47/t73/leader, WEAR_WAIST) //limbs - new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/upp, WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/upp/knife, WEAR_FEET) new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/veteran, WEAR_HANDS) //pockets new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/general/large, WEAR_L_STORE) @@ -1798,7 +1809,7 @@ /datum/equipment_preset/upp/officer/lt_kolonel/get_antag_clothing_equipment() return list( list("STANDARD EQUIPMENT (TAKE ALL)", 0, null, null, null), - list("Boots", 0, /obj/item/clothing/shoes/marine/upp, MARINE_CAN_BUY_SHOES, VENDOR_ITEM_MANDATORY), + list("Boots", 0, /obj/item/clothing/shoes/marine/upp/knife, MARINE_CAN_BUY_SHOES, VENDOR_ITEM_MANDATORY), list("Fatigues", 0, /obj/item/clothing/under/marine/veteran/UPP/officer, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_MANDATORY), list("Gloves", 0, /obj/item/clothing/gloves/marine/veteran, MARINE_CAN_BUY_GLOVES, VENDOR_ITEM_MANDATORY), list("Headset", 0, /obj/item/device/radio/headset/distress/UPP/command, MARINE_CAN_BUY_EAR, VENDOR_ITEM_MANDATORY), @@ -1879,9 +1890,6 @@ list("Health Analyzer", 4, /obj/item/device/healthanalyzer, null, VENDOR_ITEM_REGULAR), list("Medical HUD Glasses", 4, /obj/item/clothing/glasses/hud/health, null, VENDOR_ITEM_MANDATORY), - list("SPECIAL AMMUNITION", 0, null, null, null), - list("Type 71 HEAP Magazine (5.45x39mm)", 10, /obj/item/ammo_magazine/rifle/type71/heap , null, VENDOR_ITEM_REGULAR), - list("ATTACHMENTS", 0, null, null, null), list("Angled Grip", 10, /obj/item/attachable/angledgrip, null, VENDOR_ITEM_REGULAR), list("Extended Barrel", 10, /obj/item/attachable/extended_barrel, null, VENDOR_ITEM_REGULAR), @@ -1935,6 +1943,8 @@ new_human.equip_to_slot_or_del(M, WEAR_BODY) for(var/i in 1 to W.hold.storage_slots) new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/type71/ap, WEAR_IN_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/patch/upp, WEAR_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/patch/upp/naval, WEAR_ACCESSORY) //jacket new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/faction/UPP/kapitan, WEAR_JACKET) @@ -1944,7 +1954,7 @@ //waist new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/type47/t73/leader, WEAR_WAIST) //limbs - new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/upp, WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/upp/knife, WEAR_FEET) new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/veteran/upp, WEAR_HANDS) //pockets new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/general/large, WEAR_L_STORE) @@ -1959,7 +1969,7 @@ /datum/equipment_preset/upp/officer/kolonel/get_antag_clothing_equipment() return list( list("STANDARD EQUIPMENT (TAKE ALL)", 0, null, null, null), - list("Boots", 0, /obj/item/clothing/shoes/marine/upp, MARINE_CAN_BUY_SHOES, VENDOR_ITEM_MANDATORY), + list("Boots", 0, /obj/item/clothing/shoes/marine/upp/knife, MARINE_CAN_BUY_SHOES, VENDOR_ITEM_MANDATORY), list("Fatigues", 0, /obj/item/clothing/under/marine/veteran/UPP/officer, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_MANDATORY), list("Gloves", 0, /obj/item/clothing/gloves/marine/veteran/upp, MARINE_CAN_BUY_GLOVES, VENDOR_ITEM_MANDATORY), list("Headset", 0, /obj/item/device/radio/headset/distress/UPP/command, MARINE_CAN_BUY_EAR, VENDOR_ITEM_MANDATORY), @@ -2040,9 +2050,6 @@ list("Health Analyzer", 4, /obj/item/device/healthanalyzer, null, VENDOR_ITEM_REGULAR), list("Medical HUD Glasses", 4, /obj/item/clothing/glasses/hud/health, null, VENDOR_ITEM_MANDATORY), - list("SPECIAL AMMUNITION", 0, null, null, null), - list("Type 71 HEAP Magazine (5.45x39mm)", 10, /obj/item/ammo_magazine/rifle/type71/heap , null, VENDOR_ITEM_REGULAR), - list("ATTACHMENTS", 0, null, null, null), list("Angled Grip", 10, /obj/item/attachable/angledgrip, null, VENDOR_ITEM_REGULAR), list("Extended Barrel", 10, /obj/item/attachable/extended_barrel, null, VENDOR_ITEM_REGULAR), @@ -2096,6 +2103,8 @@ new_human.equip_to_slot_or_del(M, WEAR_BODY) for(var/i in 1 to W.hold.storage_slots) new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/type71/ap, WEAR_IN_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/patch/upp, WEAR_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/patch/upp/naval, WEAR_ACCESSORY) //jacket new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/faction/UPP/kapitan, WEAR_JACKET) @@ -2105,7 +2114,7 @@ //waist new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/type47/t73/leader, WEAR_WAIST) //limbs - new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/upp, WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/upp/knife, WEAR_FEET) new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/veteran, WEAR_HANDS) //pockets new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/general/large, WEAR_L_STORE) @@ -2120,7 +2129,7 @@ /datum/equipment_preset/upp/officer/may_gen/get_antag_clothing_equipment() return list( list("STANDARD EQUIPMENT (TAKE ALL)", 0, null, null, null), - list("Boots", 0, /obj/item/clothing/shoes/marine/upp, MARINE_CAN_BUY_SHOES, VENDOR_ITEM_MANDATORY), + list("Boots", 0, /obj/item/clothing/shoes/marine/upp/knife, MARINE_CAN_BUY_SHOES, VENDOR_ITEM_MANDATORY), list("Fatigues", 0, /obj/item/clothing/under/marine/veteran/UPP/officer, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_MANDATORY), list("Gloves", 0, /obj/item/clothing/gloves/marine/veteran, MARINE_CAN_BUY_GLOVES, VENDOR_ITEM_MANDATORY), list("Headset", 0, /obj/item/device/radio/headset/distress/UPP/command, MARINE_CAN_BUY_EAR, VENDOR_ITEM_MANDATORY), @@ -2201,9 +2210,6 @@ list("Health Analyzer", 4, /obj/item/device/healthanalyzer, null, VENDOR_ITEM_REGULAR), list("Medical HUD Glasses", 4, /obj/item/clothing/glasses/hud/health, null, VENDOR_ITEM_MANDATORY), - list("SPECIAL AMMUNITION", 0, null, null, null), - list("Type 71 HEAP Magazine (5.45x39mm)", 10, /obj/item/ammo_magazine/rifle/type71/heap , null, VENDOR_ITEM_REGULAR), - list("ATTACHMENTS", 0, null, null, null), list("Angled Grip", 10, /obj/item/attachable/angledgrip, null, VENDOR_ITEM_REGULAR), list("Extended Barrel", 10, /obj/item/attachable/extended_barrel, null, VENDOR_ITEM_REGULAR), @@ -2257,6 +2263,8 @@ new_human.equip_to_slot_or_del(M, WEAR_BODY) for(var/i in 1 to W.hold.storage_slots) new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/type71/ap, WEAR_IN_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/patch/upp, WEAR_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/patch/upp/naval, WEAR_ACCESSORY) //jacket new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/faction/UPP/kapitan, WEAR_JACKET) @@ -2266,7 +2274,7 @@ //waist new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/type47/t73/leader, WEAR_WAIST) //limbs - new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/upp, WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/upp/knife, WEAR_FEET) new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/veteran, WEAR_HANDS) //pockets new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/general/large, WEAR_L_STORE) @@ -2281,7 +2289,7 @@ /datum/equipment_preset/upp/officer/ley_gen/get_antag_clothing_equipment() return list( list("STANDARD EQUIPMENT (TAKE ALL)", 0, null, null, null), - list("Boots", 0, /obj/item/clothing/shoes/marine/upp, MARINE_CAN_BUY_SHOES, VENDOR_ITEM_MANDATORY), + list("Boots", 0, /obj/item/clothing/shoes/marine/upp/knife, MARINE_CAN_BUY_SHOES, VENDOR_ITEM_MANDATORY), list("Fatigues", 0, /obj/item/clothing/under/marine/veteran/UPP/officer, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_MANDATORY), list("Gloves", 0, /obj/item/clothing/gloves/marine/veteran, MARINE_CAN_BUY_GLOVES, VENDOR_ITEM_MANDATORY), list("Headset", 0, /obj/item/device/radio/headset/distress/UPP/command, MARINE_CAN_BUY_EAR, VENDOR_ITEM_MANDATORY), @@ -2362,9 +2370,6 @@ list("Health Analyzer", 4, /obj/item/device/healthanalyzer, null, VENDOR_ITEM_REGULAR), list("Medical HUD Glasses", 4, /obj/item/clothing/glasses/hud/health, null, VENDOR_ITEM_MANDATORY), - list("SPECIAL AMMUNITION", 0, null, null, null), - list("Type 71 HEAP Magazine (5.45x39mm)", 10, /obj/item/ammo_magazine/rifle/type71/heap , null, VENDOR_ITEM_REGULAR), - list("ATTACHMENTS", 0, null, null, null), list("Angled Grip", 10, /obj/item/attachable/angledgrip, null, VENDOR_ITEM_REGULAR), list("Extended Barrel", 10, /obj/item/attachable/extended_barrel, null, VENDOR_ITEM_REGULAR), @@ -2418,6 +2423,8 @@ new_human.equip_to_slot_or_del(M, WEAR_BODY) for(var/i in 1 to W.hold.storage_slots) new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/type71/ap, WEAR_IN_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/patch/upp, WEAR_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/patch/upp/naval, WEAR_ACCESSORY) //jacket new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/faction/UPP/kapitan, WEAR_JACKET) @@ -2427,7 +2434,7 @@ //waist new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/type47/t73/leader, WEAR_WAIST) //limbs - new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/upp, WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/upp/knife, WEAR_FEET) new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/veteran, WEAR_HANDS) //pockets new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/general/large, WEAR_L_STORE) @@ -2442,7 +2449,7 @@ /datum/equipment_preset/upp/officer/gen/get_antag_clothing_equipment() return list( list("STANDARD EQUIPMENT (TAKE ALL)", 0, null, null, null), - list("Boots", 0, /obj/item/clothing/shoes/marine/upp, MARINE_CAN_BUY_SHOES, VENDOR_ITEM_MANDATORY), + list("Boots", 0, /obj/item/clothing/shoes/marine/upp/knife, MARINE_CAN_BUY_SHOES, VENDOR_ITEM_MANDATORY), list("Fatigues", 0, /obj/item/clothing/under/marine/veteran/UPP/officer, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_MANDATORY), list("Gloves", 0, /obj/item/clothing/gloves/marine/veteran, MARINE_CAN_BUY_GLOVES, VENDOR_ITEM_MANDATORY), list("Headset", 0, /obj/item/device/radio/headset/distress/UPP/command, MARINE_CAN_BUY_EAR, VENDOR_ITEM_MANDATORY), @@ -2523,9 +2530,6 @@ list("Health Analyzer", 4, /obj/item/device/healthanalyzer, null, VENDOR_ITEM_REGULAR), list("Medical HUD Glasses", 4, /obj/item/clothing/glasses/hud/health, null, VENDOR_ITEM_MANDATORY), - list("SPECIAL AMMUNITION", 0, null, null, null), - list("Type 71 HEAP Magazine (5.45x39mm)", 10, /obj/item/ammo_magazine/rifle/type71/heap , null, VENDOR_ITEM_REGULAR), - list("ATTACHMENTS", 0, null, null, null), list("Angled Grip", 10, /obj/item/attachable/angledgrip, null, VENDOR_ITEM_REGULAR), list("Extended Barrel", 10, /obj/item/attachable/extended_barrel, null, VENDOR_ITEM_REGULAR), @@ -2562,8 +2566,8 @@ new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/pistol/np92, WEAR_IN_BACK) //1.3 new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/pistol/np92, WEAR_IN_BACK) //1.6 new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/pistol/np92, WEAR_IN_BACK) //2 - new_human.equip_to_slot_or_del(new /obj/item/device/motiondetector/hacked, WEAR_IN_BACK) //3 - new_human.equip_to_slot_or_del(new /obj/item/defenses/handheld/sentry/mini, WEAR_IN_BACK) //4 + new_human.equip_to_slot_or_del(new /obj/item/defenses/handheld/sentry/upp/light, WEAR_IN_BACK) //3 + new_human.equip_to_slot_or_del(new /obj/item/device/motiondetector/hacked, WEAR_IN_BACK) //4 //face new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/UPP/cct, WEAR_L_EAR) new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/welding(new_human), WEAR_EYES) @@ -2583,23 +2587,23 @@ new_human.equip_to_slot_or_del(new /obj/item/storage/belt/shotgun/upp/heavybuck(new_human), WEAR_WAIST) //limb new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/veteran/insulated(new_human), WEAR_HANDS) - new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/upp, WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/upp/knife, WEAR_FEET) //pockets new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/firstaid/ert(new_human), WEAR_L_STORE) new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/explosive/C4, WEAR_R_STORE) //*****************************************************************************************************/ /datum/equipment_preset/upp/synth - name = "UPP Combat Synthetic" + name = "UPP Synthetic" flags = EQUIPMENT_PRESET_EXTRA languages = ALL_SYNTH_LANGUAGES_UPP skills = /datum/skills/synthetic - assignment = JOB_UPP_COMBAT_SYNTH - rank = JOB_UPP_COMBAT_SYNTH + assignment = JOB_UPP_SUPPORT_SYNTH + rank = JOB_UPP_SUPPORT_SYNTH paygrade = PAY_SHORT_SYN - idtype = /obj/item/card/id/gold + idtype = /obj/item/card/id/dogtag /datum/equipment_preset/upp/synth/load_name(mob/living/carbon/human/new_human, randomise) new_human.gender = pick(50;MALE,50;FEMALE) @@ -2637,18 +2641,22 @@ /datum/equipment_preset/upp/synth/load_race(mob/living/carbon/human/new_human) new_human.set_species(SYNTH_GEN_THREE) +/datum/equipment_preset/upp/synth/load_skills(mob/living/carbon/human/new_human) + . = ..() + new_human.allow_gun_usage = FALSE + /datum/equipment_preset/upp/synth/load_gear(mob/living/carbon/human/new_human) - load_name(new_human) //back new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/lightpack/upp, WEAR_BACK) - new_human.equip_to_slot_or_del(new /obj/item/device/defibrillator/compact, WEAR_IN_BACK) //1 - new_human.equip_to_slot_or_del(new /obj/item/storage/firstaid/adv, WEAR_IN_BACK) //2 - new_human.equip_to_slot_or_del(new /obj/item/roller, WEAR_IN_BACK) //2.33 - new_human.equip_to_slot_or_del(new /obj/item/reagent_container/food/snacks/upp, WEAR_IN_BACK) //2.66 - new_human.equip_to_slot_or_del(new /obj/item/reagent_container/food/snacks/upp, WEAR_IN_BACK) //3 - new_human.equip_to_slot_or_del(new /obj/item/reagent_container/food/snacks/upp, WEAR_IN_BACK) //3.33 + new_human.equip_to_slot_or_del(new /obj/item/device/defibrillator/compact, WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/device/defibrillator, WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/storage/firstaid/adv, WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/reagent_container/blood/OMinus, WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/reagent_container/blood/OMinus, WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/roller/surgical, WEAR_IN_BACK) //face new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/UPP/command, WEAR_L_EAR) + new_human.equip_to_slot_or_del(new /obj/item/tool/screwdriver, WEAR_R_EAR) if(new_human.disabilities & NEARSIGHTED) new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/hud/health/prescription(new_human), WEAR_EYES) else @@ -2658,27 +2666,29 @@ new_human.equip_to_slot_or_del(new hat, WEAR_HEAD) //body var/obj/item/clothing/under/marine/veteran/UPP/medic/UPP = new() - var/obj/item/clothing/accessory/storage/tool_webbing/equipped/W = new() - UPP.attach_accessory(new_human, W) + var/obj/item/clothing/accessory/storage/surg_vest/drop_green/upp/webbing = new() + UPP.attach_accessory(new_human, webbing) new_human.equip_to_slot_or_del(UPP, WEAR_BODY) - new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/faction/UPP/support, WEAR_JACKET) - new_human.equip_to_slot_or_del(new /obj/item/reagent_container/glass/bottle/tricordrazine, WEAR_IN_JACKET) - new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/smg/bizon/upp, WEAR_J_STORE) + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/faction/UPP/support/synth, WEAR_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/weapon/telebaton, WEAR_IN_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/restraint/handcuffs, WEAR_IN_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/restraint/handcuffs, WEAR_IN_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/device/motiondetector/hacked, WEAR_J_STORE) + new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/patch/upp, WEAR_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/patch/upp/naval, WEAR_ACCESSORY) //waist - new_human.equip_to_slot_or_del(new /obj/item/storage/belt/medical/lifesaver/upp/full, WEAR_WAIST) + new_human.equip_to_slot_or_del(new /obj/item/storage/belt/medical/lifesaver/upp/synth, WEAR_WAIST) //limbs - new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/upp, WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/upp/knife, WEAR_FEET) new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/veteran/upp, WEAR_HANDS) - //póckets - var/obj/item/storage/pouch/magazine/large/ppouch = new() - new_human.equip_to_slot_or_del(ppouch, WEAR_R_STORE) - for(var/i = 1 to ppouch.storage_slots) - new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/smg/bizon, WEAR_IN_R_STORE) + //pockets + new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/tools/tactical/upp, WEAR_R_STORE) + new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/medical, WEAR_L_STORE) new_human.equip_to_slot_or_del(new /obj/item/tool/surgery/surgical_line, WEAR_IN_L_STORE) new_human.equip_to_slot_or_del(new /obj/item/tool/surgery/synthgraft, WEAR_IN_L_STORE) - new_human.equip_to_slot_or_del(new /obj/item/device/healthanalyzer, WEAR_IN_L_STORE) - new_human.equip_to_slot_or_del(new /obj/item/reagent_container/hypospray/tricordrazine, WEAR_IN_L_STORE) + new_human.equip_to_slot_or_del(new /obj/item/reagent_container/hypospray/epinephrine, WEAR_IN_L_STORE) + new_human.equip_to_slot_or_del(new /obj/item/reagent_container/glass/bottle/epinephrine, WEAR_IN_L_STORE) /datum/equipment_preset/upp/synth/get_antag_clothing_equipment() return list( @@ -2796,6 +2806,62 @@ list("Whistle", 5, /obj/item/device/whistle, null, VENDOR_ITEM_REGULAR), ) + +/datum/equipment_preset/upp/synth/combat + name = "UPP Combat Synthetic" + flags = EQUIPMENT_PRESET_EXTRA + + assignment = JOB_UPP_COMBAT_SYNTH + rank = JOB_UPP_COMBAT_SYNTH + +/datum/equipment_preset/upp/synth/combat/load_skills(mob/living/carbon/human/new_human) + . = ..() + new_human.allow_gun_usage = TRUE + +/datum/equipment_preset/upp/synth/combat/load_gear(mob/living/carbon/human/new_human) + //back + new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/lightpack/upp, WEAR_BACK) + new_human.equip_to_slot_or_del(new /obj/item/tool/surgery/surgical_line, WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/tool/surgery/synthgraft, WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/device/defibrillator/compact, WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/reagent_container/hypospray/epinephrine, WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/reagent_container/glass/bottle/epinephrine, WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/reagent_container/blood/OMinus, WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/roller/surgical, WEAR_IN_BACK) + //face + new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/UPP/command, WEAR_L_EAR) + new_human.equip_to_slot_or_del(new /obj/item/tool/screwdriver, WEAR_R_EAR) + if(new_human.disabilities & NEARSIGHTED) + new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/hud/health/prescription(new_human), WEAR_EYES) + else + new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/hud/health(new_human), WEAR_EYES) + //head + var/hat = pick(/obj/item/clothing/head/uppcap, /obj/item/clothing/head/uppcap/beret, /obj/item/clothing/head/uppcap/ushanka) + new_human.equip_to_slot_or_del(new hat, WEAR_HEAD) + //body + var/obj/item/clothing/under/marine/veteran/UPP/UPP = new() + var/obj/item/clothing/accessory/storage/surg_vest/drop_green/upp/webbing = new() + UPP.attach_accessory(new_human, webbing) + new_human.equip_to_slot_or_del(UPP, WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/faction/UPP/support, WEAR_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/weapon/telebaton, WEAR_IN_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/smg/bizon, WEAR_IN_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/smg/bizon, WEAR_IN_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/smg/bizon/upp, WEAR_J_STORE) + new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/patch/upp, WEAR_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/patch/upp/naval, WEAR_ACCESSORY) + //waist + new_human.equip_to_slot_or_del(new /obj/item/storage/belt/medical/lifesaver/upp/synth, WEAR_WAIST) + //limbs + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/upp/knife, WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/veteran/upp, WEAR_HANDS) + //pockets + var/obj/item/storage/pouch/magazine/large/ppouch = new() + new_human.equip_to_slot_or_del(ppouch, WEAR_L_STORE) + for(var/i = 1 to ppouch.storage_slots) + new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/smg/bizon, WEAR_IN_L_STORE) + new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/tools/tactical/upp, WEAR_R_STORE) + //*****************************************************************************************************/ /datum/equipment_preset/upp/conscript @@ -2810,7 +2876,6 @@ paygrade = PAY_SHORT_UE1 /datum/equipment_preset/upp/conscript/load_gear(mob/living/carbon/human/new_human) - //TODO: add backpacks and satchels //back var/maybebackpack = prob(20) ? pick(/obj/item/storage/backpack/lightpack/upp, /obj/item/storage/backpack/lightpack) : null if(maybebackpack) @@ -2826,6 +2891,8 @@ //body var/obj/item/clothing/under/marine/veteran/UPP/UPP = new() new_human.equip_to_slot_or_del(UPP, WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/patch/upp, WEAR_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/patch/upp/naval, WEAR_ACCESSORY) var/maybejacket = prob(50) ? pick(/obj/item/clothing/suit/storage/marine/faction/UPP/jacket, /obj/item/clothing/suit/storage/snow_suit/soviet) : null if(maybejacket) @@ -2836,7 +2903,7 @@ new_human.equip_to_slot_or_del(new /obj/item/explosive/grenade/high_explosive/upp, WEAR_IN_JACKET) //limbs - new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/upp, WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/upp/knife, WEAR_FEET) var/maybegloves = prob(80) ? pick(/obj/item/clothing/gloves/black, /obj/item/clothing/gloves/marine/veteran/upp, /obj/item/clothing/gloves/combat) : null if(maybegloves) new_human.equip_to_slot_or_del(new maybegloves, WEAR_HANDS) @@ -2865,7 +2932,7 @@ /datum/equipment_preset/upp/conscript/get_antag_clothing_equipment() return list( list("STANDARD EQUIPMENT (TAKE ALL)", 0, null, null, null), - list("Boots", 0, /obj/item/clothing/shoes/marine/upp, MARINE_CAN_BUY_SHOES, VENDOR_ITEM_MANDATORY), + list("Boots", 0, /obj/item/clothing/shoes/marine/upp/knife, MARINE_CAN_BUY_SHOES, VENDOR_ITEM_MANDATORY), list("Fatigues", 0, /obj/item/clothing/under/marine/veteran/UPP, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_MANDATORY), list("Headset", 0, /obj/item/device/radio/headset/distress/UPP, MARINE_CAN_BUY_EAR, VENDOR_ITEM_MANDATORY), list("Ration", 0, /obj/item/reagent_container/food/snacks/upp, MARINE_CAN_BUY_MRE, VENDOR_ITEM_MANDATORY), @@ -2924,16 +2991,17 @@ access = get_access(ACCESS_LIST_GLOBAL) /datum/equipment_preset/upp/commando/load_gear(mob/living/carbon/human/new_human) - //TODO: add backpacks and satchels new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/UPP/kdo, WEAR_L_EAR) new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/veteran/UPP, WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/patch/upp, WEAR_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/patch/upp/naval, WEAR_ACCESSORY) new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/faction/UPP/commando, WEAR_JACKET) new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/type71/ap, WEAR_IN_JACKET) new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/type71/ap, WEAR_IN_JACKET) new_human.equip_to_slot_or_del(new /obj/item/clothing/head/uppcap, WEAR_HEAD) new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/type47/np92/suppressed, WEAR_WAIST) new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/marine/satchel/scout_cloak/upp, WEAR_BACK) - new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/upp, WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/upp/knife, WEAR_FEET) new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/veteran/upp, WEAR_HANDS) new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/pmc/upp, WEAR_FACE) new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/night/m42_night_goggles/upp, WEAR_EYES) @@ -2946,15 +3014,15 @@ new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/magazine/large, WEAR_R_STORE) new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/firstaid/full, WEAR_L_STORE) - new_human.equip_to_slot_or_del(new /obj/item/handcuffs, WEAR_IN_BACK) - new_human.equip_to_slot_or_del(new /obj/item/handcuffs, WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/restraint/handcuffs, WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/restraint/handcuffs, WEAR_IN_BACK) spawn_weapon(/obj/item/weapon/gun/rifle/type71/carbine/commando, /obj/item/ammo_magazine/rifle/type71, new_human, 0, 8) /datum/equipment_preset/upp/commando/get_antag_clothing_equipment() return list( list("STANDARD EQUIPMENT (TAKE ALL)", 0, null, null, null), - list("Boots", 0, /obj/item/clothing/shoes/marine/upp, MARINE_CAN_BUY_SHOES, VENDOR_ITEM_MANDATORY), + list("Boots", 0, /obj/item/clothing/shoes/marine/upp/knife, MARINE_CAN_BUY_SHOES, VENDOR_ITEM_MANDATORY), list("Fatigues", 0, /obj/item/clothing/suit/storage/marine/faction/UPP/commando, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_MANDATORY), list("Gloves", 0, /obj/item/clothing/gloves/marine/veteran/upp, MARINE_CAN_BUY_GLOVES, VENDOR_ITEM_MANDATORY), list("Headset", 0, /obj/item/device/radio/headset/distress/UPP/kdo, MARINE_CAN_BUY_EAR, VENDOR_ITEM_MANDATORY), @@ -3006,9 +3074,6 @@ list("Entrenching Tool", 2, /obj/item/tool/shovel/etool, null, VENDOR_ITEM_RECOMMENDED), list("Sandbags x25", 5, /obj/item/stack/sandbags_empty/half, null, VENDOR_ITEM_RECOMMENDED), - list("SPECIAL AMMUNITION", 0, null, null, null), - list("Type 71 HEAP Magazine (5.45x39mm)", 10, /obj/item/ammo_magazine/rifle/type71/heap , null, VENDOR_ITEM_REGULAR), - list("ATTACHMENTS", 0, null, null, null), list("Angled Grip", 10, /obj/item/attachable/angledgrip, null, VENDOR_ITEM_REGULAR), list("Extended Barrel", 10, /obj/item/attachable/extended_barrel, null, VENDOR_ITEM_REGULAR), @@ -3047,15 +3112,16 @@ paygrade = PAY_SHORT_UC2 /datum/equipment_preset/upp/commando/medic/load_gear(mob/living/carbon/human/new_human) - //TODO: add backpacks and satchels new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/UPP/kdo/medic, WEAR_L_EAR) new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/veteran/UPP/medic, WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/patch/upp, WEAR_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/patch/upp/naval, WEAR_ACCESSORY) new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/faction/UPP/commando, WEAR_JACKET) new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/type71/ap, WEAR_IN_JACKET) new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/type71/ap, WEAR_IN_JACKET) new_human.equip_to_slot_or_del(new /obj/item/clothing/head/uppcap, WEAR_HEAD) new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/marine/satchel/scout_cloak/upp, WEAR_BACK) - new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/upp, WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/upp/knife, WEAR_FEET) new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/veteran/upp, WEAR_HANDS) new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/pmc/upp, WEAR_FACE) new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/night/m42_night_goggles/upp, WEAR_EYES) @@ -3077,15 +3143,15 @@ new_human.equip_to_slot_or_del(new /obj/item/reagent_container/food/snacks/upp, WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/explosive/C4, WEAR_L_STORE) - new_human.equip_to_slot_or_del(new /obj/item/handcuffs, WEAR_IN_JACKET) - new_human.equip_to_slot_or_del(new /obj/item/handcuffs, WEAR_IN_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/restraint/handcuffs, WEAR_IN_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/restraint/handcuffs, WEAR_IN_JACKET) spawn_weapon(/obj/item/weapon/gun/rifle/type71/carbine/commando, /obj/item/ammo_magazine/rifle/type71, new_human, 0, 5) /datum/equipment_preset/upp/commando/medic/get_antag_clothing_equipment() return list( list("STANDARD EQUIPMENT (TAKE ALL)", 0, null, null, null), - list("Boots", 0, /obj/item/clothing/shoes/marine/upp, MARINE_CAN_BUY_SHOES, VENDOR_ITEM_MANDATORY), + list("Boots", 0, /obj/item/clothing/shoes/marine/upp/knife, MARINE_CAN_BUY_SHOES, VENDOR_ITEM_MANDATORY), list("Fatigues Medic", 0, /obj/item/clothing/under/marine/veteran/UPP/medic, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_MANDATORY), list("Gloves", 0, /obj/item/clothing/gloves/marine/veteran/upp, MARINE_CAN_BUY_GLOVES, VENDOR_ITEM_MANDATORY), list("Headset", 0, /obj/item/device/radio/headset/distress/UPP/kdo/medic, MARINE_CAN_BUY_EAR, VENDOR_ITEM_MANDATORY), @@ -3176,9 +3242,6 @@ list("Roller Bed", 4, /obj/item/roller, null, VENDOR_ITEM_REGULAR), list("Stasis Bag", 6, /obj/item/bodybag/cryobag, null, VENDOR_ITEM_REGULAR), - list("SPECIAL AMMUNITION", 0, null, null, null), - list("Type 71 HEAP Magazine (5.45x39mm)", 10, /obj/item/ammo_magazine/rifle/type71/heap , null, VENDOR_ITEM_REGULAR), - list("ATTACHMENTS", 0, null, null, null), list("Angled Grip", 10, /obj/item/attachable/angledgrip, null, VENDOR_ITEM_REGULAR), list("Extended Barrel", 10, /obj/item/attachable/extended_barrel, null, VENDOR_ITEM_REGULAR), @@ -3217,15 +3280,16 @@ idtype = /obj/item/card/id/silver /datum/equipment_preset/upp/commando/leader/load_gear(mob/living/carbon/human/new_human) - //TODO: add backpacks and satchels new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/UPP/kdo/command, WEAR_L_EAR) new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/veteran/UPP, WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/patch/upp, WEAR_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/patch/upp/naval, WEAR_ACCESSORY) new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/faction/UPP/commando, WEAR_JACKET) new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/type71/ap, WEAR_IN_JACKET) new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/type71/ap, WEAR_IN_JACKET) new_human.equip_to_slot_or_del(new /obj/item/clothing/head/uppcap/beret, WEAR_HEAD) new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/marine/satchel/scout_cloak/upp, WEAR_BACK) - new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/upp, WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/upp/knife, WEAR_FEET) new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/veteran/upp, WEAR_HANDS) new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/pmc/upp, WEAR_FACE) new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/night/m42_night_goggles/upp, WEAR_EYES) @@ -3240,8 +3304,8 @@ new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/magazine/large, WEAR_R_STORE) new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/explosive/C4, WEAR_L_STORE) - new_human.equip_to_slot_or_del(new /obj/item/handcuffs, WEAR_IN_BACK) - new_human.equip_to_slot_or_del(new /obj/item/handcuffs, WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/restraint/handcuffs, WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/restraint/handcuffs, WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/storage/box/handcuffs, WEAR_IN_BACK) spawn_weapon(/obj/item/weapon/gun/rifle/type71/carbine/commando, /obj/item/ammo_magazine/rifle/type71, new_human, 0, 7) @@ -3249,7 +3313,7 @@ /datum/equipment_preset/upp/commando/leader/get_antag_clothing_equipment() return list( list("STANDARD EQUIPMENT (TAKE ALL)", 0, null, null, null), - list("Boots", 0, /obj/item/clothing/shoes/marine/upp, MARINE_CAN_BUY_SHOES, VENDOR_ITEM_MANDATORY), + list("Boots", 0, /obj/item/clothing/shoes/marine/upp/knife, MARINE_CAN_BUY_SHOES, VENDOR_ITEM_MANDATORY), list("Fatigues", 0, /obj/item/clothing/suit/storage/marine/faction/UPP/commando, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_MANDATORY), list("Gloves", 0, /obj/item/clothing/gloves/marine/veteran/upp, MARINE_CAN_BUY_GLOVES, VENDOR_ITEM_MANDATORY), list("Headset", 0, /obj/item/device/radio/headset/distress/UPP/kdo/command, MARINE_CAN_BUY_EAR, VENDOR_ITEM_MANDATORY), @@ -3329,9 +3393,6 @@ list("Health Analyzer", 4, /obj/item/device/healthanalyzer, null, VENDOR_ITEM_REGULAR), list("Medical HUD Glasses", 4, /obj/item/clothing/glasses/hud/health, null, VENDOR_ITEM_MANDATORY), - list("SPECIAL AMMUNITION", 0, null, null, null), - list("Type 71 HEAP Magazine (5.45x39mm)", 10, /obj/item/ammo_magazine/rifle/type71/heap , null, VENDOR_ITEM_REGULAR), - list("ATTACHMENTS", 0, null, null, null), list("Angled Grip", 10, /obj/item/attachable/angledgrip, null, VENDOR_ITEM_REGULAR), list("Extended Barrel", 10, /obj/item/attachable/extended_barrel, null, VENDOR_ITEM_REGULAR), @@ -3363,13 +3424,15 @@ /datum/equipment_preset/upp/commando/low_threat/load_gear(mob/living/carbon/human/new_human) new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/UPP/kdo, WEAR_L_EAR) new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/veteran/UPP, WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/patch/upp, WEAR_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/patch/upp/naval, WEAR_ACCESSORY) new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/faction/UPP/commando, WEAR_JACKET) new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/type71/ap, WEAR_IN_JACKET) new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/type71/ap, WEAR_IN_JACKET) new_human.equip_to_slot_or_del(new /obj/item/clothing/head/uppcap, WEAR_HEAD) new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/type47/np92/suppressed, WEAR_WAIST) new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/marine/satchel/scout_cloak/upp/weak, WEAR_BACK) - new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/upp, WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/upp/knife, WEAR_FEET) new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/veteran, WEAR_HANDS) new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/pmc/upp, WEAR_FACE) new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/night/m42_night_goggles/upp, WEAR_EYES) @@ -3382,8 +3445,8 @@ new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/magazine/large, WEAR_R_STORE) new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/firstaid/full, WEAR_L_STORE) - new_human.equip_to_slot_or_del(new /obj/item/handcuffs, WEAR_IN_BACK) - new_human.equip_to_slot_or_del(new /obj/item/handcuffs, WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/restraint/handcuffs, WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/restraint/handcuffs, WEAR_IN_BACK) spawn_weapon(/obj/item/weapon/gun/rifle/type71/carbine/commando, /obj/item/ammo_magazine/rifle/type71, new_human, 0, 8) @@ -3391,15 +3454,16 @@ name = "UPP Commando Medic" /datum/equipment_preset/upp/commando/medic/load_gear(mob/living/carbon/human/new_human) - //TODO: add backpacks and satchels new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/UPP/kdo/medic, WEAR_L_EAR) new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/veteran/UPP/medic, WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/patch/upp, WEAR_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/patch/upp/naval, WEAR_ACCESSORY) new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/faction/UPP/commando, WEAR_JACKET) new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/type71/ap, WEAR_IN_JACKET) new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/type71/ap, WEAR_IN_JACKET) new_human.equip_to_slot_or_del(new /obj/item/clothing/head/uppcap, WEAR_HEAD) new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/marine/satchel/scout_cloak/upp/weak, WEAR_BACK) - new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/upp, WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/upp/knife, WEAR_FEET) new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/veteran, WEAR_HANDS) new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/pmc/upp, WEAR_FACE) new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/night/m42_night_goggles/upp, WEAR_EYES) @@ -3421,8 +3485,8 @@ new_human.equip_to_slot_or_del(new /obj/item/reagent_container/food/snacks/upp, WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/explosive/C4, WEAR_L_STORE) - new_human.equip_to_slot_or_del(new /obj/item/handcuffs, WEAR_IN_JACKET) - new_human.equip_to_slot_or_del(new /obj/item/handcuffs, WEAR_IN_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/restraint/handcuffs, WEAR_IN_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/restraint/handcuffs, WEAR_IN_JACKET) spawn_weapon(/obj/item/weapon/gun/rifle/type71/carbine/commando, /obj/item/ammo_magazine/rifle/type71, new_human, 0, 5) @@ -3430,15 +3494,16 @@ name = "UPP Commando Leader" /datum/equipment_preset/upp/commando/leader/load_gear(mob/living/carbon/human/new_human) - //TODO: add backpacks and satchels new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/UPP/kdo/command, WEAR_L_EAR) new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/veteran/UPP, WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/patch/upp, WEAR_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/patch/upp/naval, WEAR_ACCESSORY) new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/faction/UPP/commando, WEAR_JACKET) new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/type71/ap, WEAR_IN_JACKET) new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/type71/ap, WEAR_IN_JACKET) new_human.equip_to_slot_or_del(new /obj/item/clothing/head/uppcap/beret, WEAR_HEAD) new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/marine/satchel/scout_cloak/upp/weak, WEAR_BACK) - new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/upp, WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/upp/knife, WEAR_FEET) new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/veteran, WEAR_HANDS) new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/pmc/upp, WEAR_FACE) new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/night/m42_night_goggles/upp, WEAR_EYES) @@ -3453,8 +3518,8 @@ new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/magazine/large, WEAR_R_STORE) new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/explosive/C4, WEAR_L_STORE) - new_human.equip_to_slot_or_del(new /obj/item/handcuffs, WEAR_IN_BACK) - new_human.equip_to_slot_or_del(new /obj/item/handcuffs, WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/restraint/handcuffs, WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/restraint/handcuffs, WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/storage/box/handcuffs, WEAR_IN_BACK) //*****************************************************************************************************/ @@ -3472,7 +3537,9 @@ /datum/equipment_preset/upp/tank/load_gear(mob/living/carbon/human/new_human) new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/veteran/UPP(new_human), WEAR_BODY) - new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/upp(new_human), WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/patch/upp, WEAR_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/patch/upp/naval, WEAR_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/upp/knife(new_human), WEAR_FEET) new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/UPP/cct(new_human), WEAR_L_EAR) new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/welding(new_human), WEAR_EYES) new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/yellow(new_human), WEAR_HANDS) @@ -3607,11 +3674,13 @@ var/obj/item/clothing/accessory/storage/surg_vest/equipped/W = new() UPP.attach_accessory(new_human, W) new_human.equip_to_slot_or_del(UPP, WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/patch/upp, WEAR_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/patch/upp/naval, WEAR_ACCESSORY) //waist new_human.equip_to_slot_or_del(new /obj/item/storage/belt/medical/lifesaver/upp/full, WEAR_WAIST) new_human.equip_to_slot_or_del(new /obj/item/reagent_container/hypospray/autoinjector/oxycodone, WEAR_IN_BELT) //limbs - new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/upp, WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/upp/knife, WEAR_FEET) new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/veteran/upp, WEAR_HANDS) //póckets new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/general/large, WEAR_R_STORE) @@ -3630,7 +3699,7 @@ /datum/equipment_preset/upp/doctor/get_antag_clothing_equipment() return list( list("STANDARD EQUIPMENT (TAKE ALL)", 0, null, null, null), - list("Boots", 0, /obj/item/clothing/shoes/marine/upp, MARINE_CAN_BUY_SHOES, VENDOR_ITEM_MANDATORY), + list("Boots", 0, /obj/item/clothing/shoes/marine/upp/knife, MARINE_CAN_BUY_SHOES, VENDOR_ITEM_MANDATORY), list("Medic Fatigues", 0, /obj/item/clothing/under/marine/veteran/UPP/medic, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_MANDATORY), list("UL6 Personal Armor", 0, /obj/item/clothing/suit/storage/marine/faction/UPP/support, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_MANDATORY), list("Gloves", 0, /obj/item/clothing/gloves/marine/veteran/upp, MARINE_CAN_BUY_GLOVES, VENDOR_ITEM_MANDATORY), diff --git a/code/modules/gear_presets/uscm.dm b/code/modules/gear_presets/uscm.dm index 8677b372159b..4b018eea1d50 100644 --- a/code/modules/gear_presets/uscm.dm +++ b/code/modules/gear_presets/uscm.dm @@ -16,9 +16,9 @@ service_hat = list(/obj/item/clothing/head/cmcap) service_shoes = list(/obj/item/clothing/shoes/dress) - dress_under = list(/obj/item/clothing/under/marine/dress) - dress_over = list(/obj/item/clothing/suit/storage/jacket/marine/dress) - dress_hat = list(/obj/item/clothing/head/marine/peaked) + dress_under = list(/obj/item/clothing/under/marine/dress/blues/senior) + dress_over = list(/obj/item/clothing/suit/storage/jacket/marine/dress/blues/nco) + dress_hat = list(/obj/item/clothing/head/marine/dress_cover) dress_gloves = list(/obj/item/clothing/gloves/marine/dress) dress_shoes = list(/obj/item/clothing/shoes/dress) var/auto_squad_name @@ -30,18 +30,18 @@ /datum/equipment_preset/uscm/load_preset(mob/living/carbon/human/new_human, randomise, count_participant) . = ..() - if(!auto_squad_name || (is_admin_level(new_human.z) && !ert_squad)) + if(!auto_squad_name || (should_block_game_interaction(new_human) && !ert_squad)) return if(!GLOB.data_core.manifest_modify(new_human.real_name, WEAKREF(new_human), assignment, rank)) GLOB.data_core.manifest_inject(new_human) - var/obj/item/card/id/ID = new_human.wear_id + var/obj/item/card/id/ID = new_human.get_idcard() var/datum/money_account/acct = create_account(new_human, rand(30, 50), GLOB.paygrades[ID.paygrade]) ID.associated_account_number = acct.account_number var/datum/squad/auto_squad = get_squad_by_name(auto_squad_name) if(auto_squad) - transfer_marine_to_squad(new_human, auto_squad, new_human.assigned_squad, new_human.wear_id) + transfer_marine_to_squad(new_human, auto_squad, new_human.assigned_squad, ID) if(!ert_squad && !auto_squad.active) auto_squad.engage_squad(FALSE) @@ -72,6 +72,8 @@ skills = /datum/skills/pfc minimap_icon = "private" + dress_under = list(/obj/item/clothing/under/marine/dress/blues) + dress_over = list(/obj/item/clothing/suit/storage/jacket/marine/dress/blues) /datum/equipment_preset/uscm/pfc/load_gear(mob/living/carbon/human/new_human) var/back_item = /obj/item/storage/backpack/marine/satchel @@ -108,6 +110,8 @@ skills = /datum/skills/smartgunner minimap_icon = "smartgunner" + dress_under = list(/obj/item/clothing/under/marine/dress/blues) + dress_over = list(/obj/item/clothing/suit/storage/jacket/marine/dress/blues) /datum/equipment_preset/uscm/sg/load_gear(mob/living/carbon/human/new_human) var/back_item = /obj/item/storage/backpack/marine/satchel @@ -127,7 +131,7 @@ //*****************************************************************************************************/ /datum/equipment_preset/uscm/sg/full - name = "USCM Squad Smartgunner" + name = "USCM Squad Smartgunner (Full)" flags = EQUIPMENT_PRESET_EXTRA|EQUIPMENT_PRESET_MARINE /datum/equipment_preset/uscm/sg/full/load_gear(mob/living/carbon/human/new_human) @@ -157,8 +161,8 @@ ACCESS_MARINE_CHARLIE, ACCESS_MARINE_DELTA, ) - assignment = JOB_CREWMAN - rank = JOB_CREWMAN + assignment = JOB_TANK_CREW + rank = JOB_TANK_CREW paygrade = PAY_SHORT_ME4 role_comm_title = "CRMN" minimum_age = 30 @@ -227,6 +231,9 @@ utility_under = list(/obj/item/clothing/under/marine/officer/intel) minimap_icon = "io" + dress_under = list(/obj/item/clothing/under/marine/dress/blues/senior) + dress_over = list(/obj/item/clothing/suit/storage/jacket/marine/dress/blues/officer) + dress_hat = list(/obj/item/clothing/head/marine/dress_cover/officer) /datum/equipment_preset/uscm/intel/load_gear(mob/living/carbon/human/new_human) var/back_item = /obj/item/storage/backpack/marine/satchel @@ -251,14 +258,12 @@ /datum/equipment_preset/uscm/intel/full/load_gear(mob/living/carbon/human/new_human) var/obj/item/clothing/under/marine/officer/intel/U = new(new_human) - var/obj/item/clothing/accessory/storage/webbing/W = new() - U.attach_accessory(new_human, W) new_human.equip_to_slot_or_del(U, WEAR_BODY) new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/almayer/intel(new_human), WEAR_L_EAR) new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET) new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/m4a3/vp78(new_human), WEAR_WAIST) new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/marine/rto/intel(new_human), WEAR_HEAD) - new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/rto/intel(src), WEAR_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/medium/rto/intel(src), WEAR_JACKET) new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/yellow(src), WEAR_HANDS) new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/marine/satchel/intel(new_human), WEAR_BACK) new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/general/large(new_human), WEAR_R_STORE) @@ -281,6 +286,8 @@ skills = /datum/skills/specialist minimap_icon = "spec" + dress_under = list(/obj/item/clothing/under/marine/dress/blues) + dress_over = list(/obj/item/clothing/suit/storage/jacket/marine/dress/blues) /datum/equipment_preset/uscm/spec/load_gear(mob/living/carbon/human/new_human) var/back_item = /obj/item/storage/backpack/marine/satchel @@ -340,6 +347,8 @@ minimap_icon = "medic" utility_under = list(/obj/item/clothing/under/marine/medic) + dress_under = list(/obj/item/clothing/under/marine/dress/blues) + dress_over = list(/obj/item/clothing/suit/storage/jacket/marine/dress/blues) /datum/equipment_preset/uscm/medic/load_gear(mob/living/carbon/human/new_human) var/back_item = /obj/item/storage/backpack/marine/satchel/medic @@ -402,6 +411,8 @@ minimap_icon = "engi" utility_under = list(/obj/item/clothing/under/marine/engineer) + dress_under = list(/obj/item/clothing/under/marine/dress/blues) + dress_over = list(/obj/item/clothing/suit/storage/jacket/marine/dress/blues) /datum/equipment_preset/uscm/engineer/load_gear(mob/living/carbon/human/new_human) var/back_item = /obj/item/storage/backpack/marine/satchel/tech @@ -465,6 +476,8 @@ skills = /datum/skills/pfc/crafty minimap_icon = "private" + dress_under = list(/obj/item/clothing/under/marine/dress/blues) + dress_over = list(/obj/item/clothing/suit/storage/jacket/marine/dress/blues) /datum/equipment_preset/uscm/private_equipped/load_status(mob/living/carbon/human/new_human) new_human.nutrition = NUTRITION_NORMAL @@ -523,7 +536,7 @@ new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/marine(new_human), WEAR_BACK) new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/marine/leader(new_human), WEAR_HEAD) new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/almayer/marine/cryo/lead(new_human), WEAR_L_EAR) - new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/leader(new_human), WEAR_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/medium/leader(new_human), WEAR_JACKET) new_human.equip_to_slot_or_del(new /obj/item/device/binoculars/range(new_human), WEAR_IN_JACKET) new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/flare/full(new_human), WEAR_R_STORE) new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/firstaid/full(new_human), WEAR_L_STORE) @@ -555,6 +568,8 @@ skills = /datum/skills/smartgunner minimap_icon = "smartgunner" + dress_under = list(/obj/item/clothing/under/marine/dress/blues) + dress_over = list(/obj/item/clothing/suit/storage/jacket/marine/dress/blues) /datum/equipment_preset/uscm/smartgunner_equipped/load_status(mob/living/carbon/human/new_human) new_human.nutrition = NUTRITION_NORMAL @@ -594,6 +609,8 @@ minimap_icon = "engi" utility_under = list(/obj/item/clothing/under/marine/engineer) + dress_under = list(/obj/item/clothing/under/marine/dress/blues) + dress_over = list(/obj/item/clothing/suit/storage/jacket/marine/dress/blues) /datum/equipment_preset/uscm/engineer_equipped/load_status(mob/living/carbon/human/new_human) new_human.nutrition = NUTRITION_NORMAL @@ -640,6 +657,8 @@ minimap_icon = "medic" utility_under = list(/obj/item/clothing/under/marine/medic) + dress_under = list(/obj/item/clothing/under/marine/dress/blues) + dress_over = list(/obj/item/clothing/suit/storage/jacket/marine/dress/blues) /datum/equipment_preset/uscm/medic_equipped/load_status(mob/living/carbon/human/new_human) new_human.nutrition = NUTRITION_NORMAL @@ -692,6 +711,8 @@ skills = /datum/skills/specialist minimap_icon = "spec" + dress_under = list(/obj/item/clothing/under/marine/dress/blues) + dress_over = list(/obj/item/clothing/suit/storage/jacket/marine/dress/blues) /datum/equipment_preset/uscm/specialist_equipped/load_status(mob/living/carbon/human/new_human) new_human.nutrition = NUTRITION_NORMAL @@ -776,7 +797,7 @@ new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/m4a3/vp78(new_human), WEAR_WAIST) new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/marine/rto(new_human), WEAR_HEAD) new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/almayer/marine/cryo/tl(new_human), WEAR_L_EAR) - new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/rto(src), WEAR_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/medium/rto(src), WEAR_JACKET) new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/yellow(src), WEAR_HANDS) new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/marine/satchel/rto(new_human), WEAR_BACK) new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/general/large(new_human), WEAR_R_STORE) @@ -856,14 +877,14 @@ //Covert Raiders /datum/equipment_preset/uscm/marsoc/covert - name = "Marine Raiders (!DEATHSQUAD! Covert)" + name = "Marine Raider (!DEATHSQUAD! Covert)" uses_special_name = TRUE /datum/equipment_preset/uscm/marsoc/covert/load_name(mob/living/carbon/human/new_human, randomise) new_human.gender = MALE new_human.change_real_name(new_human, "[pick(GLOB.nato_phonetic_alphabet)]") new_human.age = rand(20,30) /datum/equipment_preset/uscm/marsoc/covert/load_rank(mob/living/carbon/human/new_human) - return "O" + return PAY_SHORT_CDNM //Team Leader /datum/equipment_preset/uscm/marsoc/sl @@ -875,6 +896,9 @@ skills = /datum/skills/commando/deathsquad/leader minimap_icon = "leader" + dress_under = list(/obj/item/clothing/under/marine/dress/blues/senior) + dress_over = list(/obj/item/clothing/suit/storage/jacket/marine/dress/blues/officer) + dress_hat = list(/obj/item/clothing/head/marine/dress_cover/officer) /datum/equipment_preset/uscm/marsoc/sl/load_rank(mob/living/carbon/human/new_human) if(new_human.client) @@ -891,7 +915,7 @@ new_human.change_real_name(new_human, "[pick(GLOB.nato_phonetic_alphabet)]") new_human.age = rand(20,30) /datum/equipment_preset/uscm/marsoc/sl/covert/load_rank(mob/living/carbon/human/new_human) - return "O" + return PAY_SHORT_CDNM //Officer /datum/equipment_preset/uscm/marsoc/cmd name = "Marine Raider Officer (!DEATHSQUAD!)" @@ -900,6 +924,9 @@ role_comm_title = "CMD." paygrade = PAY_SHORT_MO3 skills = /datum/skills/commando/deathsquad/officer + dress_under = list(/obj/item/clothing/under/marine/dress/blues/senior) + dress_over = list(/obj/item/clothing/suit/storage/jacket/marine/dress/blues/officer) + dress_hat = list(/obj/item/clothing/head/marine/dress_cover/officer) /datum/equipment_preset/uscm/marsoc/cmd/load_rank(mob/living/carbon/human/new_human) if(new_human.client) @@ -958,6 +985,9 @@ skills = /datum/skills/commando/deathsquad/leader minimap_icon = "leader" + dress_under = list(/obj/item/clothing/under/marine/dress/blues/senior) + dress_over = list(/obj/item/clothing/suit/storage/jacket/marine/dress/blues/officer) + dress_hat = list(/obj/item/clothing/head/marine/dress_cover/officer) /datum/equipment_preset/uscm/marsoc/sl/load_rank(mob/living/carbon/human/new_human) if(new_human.client) diff --git a/code/modules/gear_presets/uscm_event.dm b/code/modules/gear_presets/uscm_event.dm index ce36f1fd807f..1a03dc3f6b22 100644 --- a/code/modules/gear_presets/uscm_event.dm +++ b/code/modules/gear_presets/uscm_event.dm @@ -31,11 +31,11 @@ service_extra = list(/obj/item/clothing/suit/storage/jacket/marine/dress/officer/bomber) service_hat = list(/obj/item/clothing/head/beret/cm, /obj/item/clothing/head/beret/marine/commander/dress, /obj/item/clothing/head/beret/marine/commander/black) - dress_under = list(/obj/item/clothing/under/marine/dress, /obj/item/clothing/under/marine/officer/formal/servicedress) + dress_under = list(/obj/item/clothing/under/marine/dress/blues/general) + dress_over = list(/obj/item/clothing/suit/storage/jacket/marine/dress/blues/officer) + dress_hat = list(/obj/item/clothing/head/marine/dress_cover/officer) dress_extra = list(/obj/item/storage/large_holster/ceremonial_sword/full) - dress_hat = list(/obj/item/clothing/head/marine/peaked/captain/white, /obj/item/clothing/head/marine/peaked/captain/black) dress_shoes = list(/obj/item/clothing/shoes/dress/commander) - dress_over = list(/obj/item/clothing/suit/storage/jacket/marine/dress/officer/white, /obj/item/clothing/suit/storage/jacket/marine/dress/officer/black, /obj/item/clothing/suit/storage/jacket/marine/dress/officer/suit) /datum/equipment_preset/uscm_event/colonel/New() . = ..() @@ -72,6 +72,10 @@ service_gloves = list(/obj/item/clothing/gloves/black, /obj/item/clothing/gloves/marine/dress) service_hat = list(/obj/item/clothing/head/general, /obj/item/clothing/head/beret/marine/commander/black) + dress_under = list(/obj/item/clothing/under/marine/dress/blues/general) + dress_over = list(/obj/item/clothing/suit/storage/jacket/marine/dress/blues/officer) + dress_hat = list(/obj/item/clothing/head/marine/dress_cover/officer) + /datum/equipment_preset/uscm_event/general/New() . = ..() access = get_access(ACCESS_LIST_GLOBAL) @@ -94,16 +98,12 @@ new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/MP/general(new_human.back), WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/device/cotablet(new_human.back), WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/storage/mateba_case/general(new_human.back), WEAR_IN_BACK) - new_human.equip_to_slot_or_del(new /obj/item/handcuffs(new_human.back), WEAR_IN_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/restraint/handcuffs(new_human.back), WEAR_IN_JACKET) new_human.equip_to_slot_or_del(new /obj/item/weapon/telebaton, WEAR_IN_JACKET) new_human.equip_to_slot_or_del(new /obj/item/device/flash, WEAR_IN_JACKET) new_human.equip_if_possible(new /obj/item/clothing/glasses/sunglasses(new_human), WEAR_EYES) -/datum/equipment_preset/uscm_event/general/o7 - name = "USCM O-7 - Brigadier General (High Command)" - paygrade = PAY_SHORT_MO7 - /datum/equipment_preset/uscm_event/general/o8 name = "USCM O-8 - Major General (High Command)" paygrade = PAY_SHORT_MO8 @@ -149,6 +149,10 @@ role_comm_title = "OT" skills = /datum/skills/spy + dress_under = list(/obj/item/clothing/under/marine/dress/blues) + dress_over = list(/obj/item/clothing/suit/storage/jacket/marine/dress/blues) + dress_hat = list(/obj/item/clothing/head/marine/dress_cover) + /datum/equipment_preset/uscm_event/upp_spy/load_gear(mob/living/carbon/human/new_human) //TODO: add backpacks and satchels var/back_item = /obj/item/storage/backpack/marine/satchel/tech @@ -166,7 +170,7 @@ //TODO: preload all of those items before equipping the backpack //Otherwise, if you spawn the spy next to other people //they will see messages for them putting guns and explosives into their backpack... - new_human.equip_to_slot_or_del(new /obj/item/handcuffs(new_human.back), WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/restraint/handcuffs(new_human.back), WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/pistol/np92/suppressed/tranq(new_human.back), WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/pistol/np92/tranq(new_human.back), WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/pistol/np92/tranq(new_human.back), WEAR_IN_BACK) @@ -200,6 +204,10 @@ role_comm_title = "PvE" flags = EQUIPMENT_PRESET_EXTRA + dress_under = list(/obj/item/clothing/under/marine/dress/blues) + dress_over = list(/obj/item/clothing/suit/storage/jacket/marine/dress/blues) + dress_hat = list(/obj/item/clothing/head/marine/dress_cover) + /datum/equipment_preset/uscm_event/provost/enforcer/load_gear(mob/living/carbon/human/new_human) var/back_item = /obj/item/storage/backpack/satchel/sec if (new_human.client && new_human.client.prefs && (new_human.client.prefs.backbag == 1)) @@ -229,7 +237,7 @@ new_human.equip_to_slot_or_del(new /obj/item/explosive/grenade/custom/teargas(new_human), WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/explosive/grenade/custom/teargas(new_human), WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/device/flash(new_human), WEAR_IN_JACKET) - new_human.equip_to_slot_or_del(new /obj/item/handcuffs(new_human), WEAR_IN_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/restraint/handcuffs(new_human), WEAR_IN_JACKET) new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/shotgun/combat(new_human), WEAR_J_STORE) /datum/equipment_preset/uscm_event/provost/tml @@ -242,6 +250,10 @@ role_comm_title = "PvTML" flags = EQUIPMENT_PRESET_EXTRA + dress_under = list(/obj/item/clothing/under/marine/dress/blues/senior) + dress_over = list(/obj/item/clothing/suit/storage/jacket/marine/dress/blues/nco) + dress_hat = list(/obj/item/clothing/head/marine/dress_cover) + /datum/equipment_preset/uscm_event/provost/tml/load_gear(mob/living/carbon/human/new_human) var/back_item = /obj/item/storage/backpack/satchel/sec if (new_human.client && new_human.client.prefs && (new_human.client.prefs.backbag == 1)) @@ -272,7 +284,7 @@ new_human.equip_to_slot_or_del(new /obj/item/explosive/grenade/custom/teargas(new_human), WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/explosive/grenade/custom/teargas(new_human), WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/device/flash(new_human), WEAR_IN_JACKET) - new_human.equip_to_slot_or_del(new /obj/item/handcuffs(new_human), WEAR_IN_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/restraint/handcuffs(new_human), WEAR_IN_JACKET) new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/shotgun/combat(new_human), WEAR_J_STORE) /datum/equipment_preset/uscm_event/provost/inspector @@ -284,6 +296,10 @@ role_comm_title = "PvI" flags = EQUIPMENT_PRESET_EXTRA + dress_under = list(/obj/item/clothing/under/marine/dress/blues/senior) + dress_over = list(/obj/item/clothing/suit/storage/jacket/marine/dress/blues/officer) + dress_hat = list(/obj/item/clothing/head/marine/dress_cover/officer) + /datum/equipment_preset/uscm_event/provost/inspector/load_gear(mob/living/carbon/human/new_human) var/back_item = /obj/item/storage/backpack/satchel/sec if (new_human.client && new_human.client.prefs && (new_human.client.prefs.backbag == 1)) @@ -309,7 +325,7 @@ new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/MP/provost/light/flexi(new_human.back), WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/device/flash(new_human), WEAR_IN_JACKET) - new_human.equip_to_slot_or_del(new /obj/item/handcuffs(new_human), WEAR_IN_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/restraint/handcuffs(new_human), WEAR_IN_JACKET) /datum/equipment_preset/uscm_event/provost/inspector/advisor name = "Provost Advisor" @@ -331,6 +347,10 @@ role_comm_title = PAY_SHORT_PVM flags = EQUIPMENT_PRESET_EXTRA + dress_under = list(/obj/item/clothing/under/marine/dress/blues/general) + dress_over = list(/obj/item/clothing/suit/storage/jacket/marine/dress/blues/officer) + dress_hat = list(/obj/item/clothing/head/marine/dress_cover/officer) + /datum/equipment_preset/uscm_event/provost/marshal/load_gear(mob/living/carbon/human/new_human) var/back_item = /obj/item/storage/backpack/satchel/sec if (new_human.client && new_human.client.prefs && (new_human.client.prefs.backbag == 1)) @@ -351,6 +371,7 @@ new_human.equip_to_slot_or_del(new /obj/item/device/taperecorder(new_human), WEAR_L_STORE) new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/magazine/pistol/pmc_mateba(new_human), WEAR_R_STORE) new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/MP/provost/marshal(new_human.back), WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/device/cotablet(new_human.back), WEAR_IN_BACK) /datum/equipment_preset/uscm_event/provost/marshal/sector name = "Provost Sector Marshal (MO7)" diff --git a/code/modules/gear_presets/uscm_forecon.dm b/code/modules/gear_presets/uscm_forecon.dm new file mode 100644 index 000000000000..dfe4e7dd8d5c --- /dev/null +++ b/code/modules/gear_presets/uscm_forecon.dm @@ -0,0 +1,255 @@ +/datum/equipment_preset/uscm/forecon + assignment = JOB_SQUAD_MARINE + rank = JOB_SQUAD_MARINE + paygrade = PAY_SHORT_ME5 + idtype = /obj/item/card/id/dogtag + role_comm_title = "FORECON" + rank = JOB_MARINE + faction_group = list(FACTION_MARINE) + flags = EQUIPMENT_PRESET_START_OF_ROUND + auto_squad_name = SQUAD_FORECON + ert_squad = TRUE + +/datum/equipment_preset/uscm/forecon/New() + . = ..() + access = get_access(ACCESS_LIST_UA) + + dress_shoes = list(/obj/item/clothing/shoes/dress) + dress_gloves = list(/obj/item/clothing/gloves/marine/dress) + dress_under = list(/obj/item/clothing/under/marine/dress/blues/senior) + dress_over = list(/obj/item/clothing/suit/storage/jacket/marine/dress/blues/nco) + dress_hat = list(/obj/item/clothing/head/marine/dress_cover) + +/datum/equipment_preset/uscm/forecon/load_gear(mob/living/carbon/human/new_human) + var/obj/item/clothing/under/marine/reconnaissance/uniform = new() + var/obj/item/clothing/accessory/storage/droppouch/pouch = new() + var/obj/item/clothing/accessory/ranks/marine/e5/pin = new() + var/obj/item/clothing/accessory/patch/patch_uscm = new() + var/obj/item/clothing/accessory/patch/forecon/patch_forecon = new() + uniform.attach_accessory(new_human,pouch) + uniform.attach_accessory(new_human,patch_uscm) + uniform.attach_accessory(new_human,pin) + uniform.attach_accessory(new_human,patch_forecon) + new_human.equip_to_slot_or_del(uniform, WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/light/recon(new_human), WEAR_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/marine/satchel(new_human), WEAR_BACK) + new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/firstaid/full(new_human), WEAR_R_STORE) + new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/firstaid/full/alternate(new_human), WEAR_L_STORE) + new_human.equip_to_slot_or_del(new /obj/item/reagent_container/food/drinks/flask/marine(new_human), WEAR_IN_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/facepaint/sniper(new_human), WEAR_IN_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/storage/box/MRE(new_human), WEAR_IN_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine(new_human), WEAR_HANDS) + new_human.equip_to_slot_or_del(new /obj/item/tool/crowbar/tactical(new_human), WEAR_IN_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/device/binoculars/range/designator(new_human), WEAR_IN_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/forecon(new_human), WEAR_L_EAR) + GLOB.character_traits[/datum/character_trait/skills/spotter].apply_trait(new_human) + +/datum/equipment_preset/uscm/forecon/proc/add_forecon_weapon(mob/living/carbon/human/new_human) + var/random_gun = rand(1,3) + switch(random_gun) + if(1 , 2) + new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/rifle/m41a/tactical(new_human), WEAR_L_HAND) + new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/extended(new_human), WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/extended(new_human), WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/ap(new_human), WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/ap(new_human), WEAR_IN_BACK) + if(3) + new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/rifle/m4ra/tactical(new_human), WEAR_L_HAND) + new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/m4ra/ext(new_human), WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/m4ra/ext(new_human), WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/m4ra/ap(new_human), WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/m4ra/ap(new_human), WEAR_IN_BACK) + +/datum/equipment_preset/uscm/forecon/proc/spawn_random_headgear(mob/living/carbon/human/new_human) + var/i = rand(1,10) + switch(i) + if (1 , 2) + new_human.equip_to_slot_or_del(new /obj/item/clothing/head/cmcap(new_human), WEAR_HEAD) + if (3 , 4) + new_human.equip_to_slot_or_del(new /obj/item/clothing/head/beanie(new_human), WEAR_HEAD) + if (5 , 6) + new_human.equip_to_slot_or_del(new /obj/item/clothing/head/durag(new_human), WEAR_HEAD) + if (7 , 8) + new_human.equip_to_slot_or_del(new /obj/item/clothing/head/cmcap/boonie(new_human), WEAR_HEAD) + if (9) + new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/marine(new_human), WEAR_HEAD) + +/datum/equipment_preset/uscm/forecon/proc/add_forecon_weapon_pistol(mob/living/carbon/human/new_human) + var/random_pistol = rand(1,5) + switch(random_pistol) + if(1 , 2) + new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/m4a3(new_human), WEAR_WAIST) + new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/pistol/m1911(new_human), WEAR_IN_BELT) + new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/pistol/m1911(new_human), WEAR_IN_BELT) + new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/pistol/m1911(new_human), WEAR_IN_BELT) + new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/pistol/m1911(new_human), WEAR_IN_BELT) + new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/pistol/m1911(new_human), WEAR_IN_BELT) + new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/pistol/m1911(new_human), WEAR_IN_BELT) + new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/pistol/m1911(new_human), WEAR_IN_BELT) + if(3 , 4) + new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/m39, WEAR_WAIST) + new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/smg/m39(new_human), WEAR_IN_BELT) + new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/smg/m39/extended(new_human), WEAR_IN_BELT) + new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/smg/m39/extended(new_human), WEAR_IN_BELT) + if(5) + new_human.equip_to_slot_or_del(new /obj/item/device/motiondetector(new_human),WEAR_WAIST) + +/datum/equipment_preset/uscm/forecon/load_status(mob/living/carbon/human/new_human) + new_human.nutrition = NUTRITION_NORMAL + +/datum/equipment_preset/uscm/forecon/standard + name = "USCM Reconnaissance Marine" + assignment = JOB_FORECON_RIFLEMAN + rank = JOB_SQUAD_MARINE + role_comm_title = "RFN" + minimap_icon = "" + skills = /datum/skills/military/survivor/forecon_standard + +/datum/equipment_preset/uscm/forecon/standard/load_gear(mob/living/carbon/human/new_human) + ..() + spawn_random_headgear(new_human) + add_forecon_weapon_pistol(new_human) + add_forecon_weapon(new_human) + +/datum/equipment_preset/uscm/forecon/tech + name = "USCM Reconnaissance Support Technician" + assignment = JOB_FORECON_SUPPORT + rank = JOB_SQUAD_MEDIC + role_comm_title = "SuppTech" + minimap_icon = "engi" + skills = /datum/skills/military/survivor/forecon_techician + +/datum/equipment_preset/uscm/forecon/tech/load_gear(mob/living/carbon/human/new_human) + new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/marine/satchel/big(new_human), WEAR_BACK) + new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/insulated(new_human), WEAR_HANDS) + new_human.equip_to_slot_or_del(new /obj/item/storage/belt/utility/full(new_human), WEAR_WAIST) + new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/welding(new_human), WEAR_EYES) + ..() + new_human.equip_to_slot_or_del(new /obj/item/storage/belt/utility/full(new_human), WEAR_WAIST) + new_human.equip_to_slot_or_del(new /obj/item/storage/firstaid/adv(new_human), WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/storage/firstaid/surgical(new_human), WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/device/defibrillator/compact(new_human), WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/device/healthanalyzer(new_human), WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/tool/surgery/synthgraft, WEAR_IN_BACK) + add_forecon_weapon(new_human) + spawn_random_headgear(new_human) + +/datum/equipment_preset/uscm/forecon/marksman + name = "USCM Reconnaissance Designated Marksman" + assignment = JOB_FORECON_MARKSMAN + rank = JOB_SQUAD_SPECIALIST + role_comm_title = "DMR" + minimap_icon = "spec" + skills = /datum/skills/military/survivor/forecon_marksman + +/datum/equipment_preset/uscm/forecon/marksman/load_gear(mob/living/carbon/human/new_human) + var/obj/item/clothing/under/marine/reconnaissance/uniform = new() + var/obj/item/clothing/accessory/storage/droppouch/pouch = new() + var/obj/item/clothing/accessory/ranks/marine/e5/pin = new() + var/obj/item/clothing/accessory/patch/patch_uscm = new() + var/obj/item/clothing/accessory/patch/forecon/patch_forecon = new() + uniform.attach_accessory(new_human,pouch) + uniform.attach_accessory(new_human,patch_uscm) + uniform.attach_accessory(new_human,pin) + uniform.attach_accessory(new_human,patch_forecon) + new_human.equip_to_slot_or_del(uniform, WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/M3S, WEAR_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/device/binoculars/range/designator(new_human), WEAR_IN_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/explosive/plastic(new_human), WEAR_IN_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/explosive/plastic(new_human), WEAR_IN_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/marine/satchel/scout_cloak(new_human), WEAR_BACK) + new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/firstaid/full(new_human), WEAR_R_STORE) + new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/firstaid/full/alternate(new_human), WEAR_L_STORE) + new_human.equip_to_slot_or_del(new /obj/item/reagent_container/food/drinks/flask/marine(new_human), WEAR_IN_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/facepaint/sniper(new_human), WEAR_IN_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/storage/box/MRE(new_human), WEAR_IN_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine(new_human), WEAR_HANDS) + new_human.equip_to_slot_or_del(new /obj/item/tool/crowbar/tactical(new_human), WEAR_IN_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/device/binoculars/range/designator(new_human), WEAR_IN_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/forecon(new_human), WEAR_L_EAR) + new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/rifle/m4ra_custom/tactical(new_human), WEAR_L_HAND) + new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/m4ra/custom(new_human), WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/m4ra/custom(new_human), WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/m4ra/custom(new_human), WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/m4ra/custom/impact(new_human), WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/m4ra/custom/incendiary(new_human), WEAR_IN_BACK) + GLOB.character_traits[/datum/character_trait/skills/spotter].apply_trait(new_human) + ..() + add_forecon_weapon_pistol(new_human) + spawn_random_headgear(new_human) + +/datum/equipment_preset/uscm/forecon/smartgunner + name = "USCM Reconnaissance Smartgunner" + assignment = JOB_FORECON_SMARTGUNNER + rank = JOB_SQUAD_SMARTGUN + role_comm_title = "SG" + minimap_icon = "smartgunner" + skills = /datum/skills/military/survivor/forecon_smartgunner + +/datum/equipment_preset/uscm/forecon/smartgunner/load_gear(mob/living/carbon/human/new_human) + var/obj/item/clothing/under/marine/reconnaissance/uniform = new() + var/obj/item/clothing/accessory/storage/droppouch/pouch = new() + var/obj/item/clothing/accessory/ranks/marine/e5/pin = new() + var/obj/item/clothing/accessory/patch/patch_uscm = new() + var/obj/item/clothing/accessory/patch/forecon/patch_forecon = new() + uniform.attach_accessory(new_human,pouch) + uniform.attach_accessory(new_human,patch_uscm) + uniform.attach_accessory(new_human,pin) + uniform.attach_accessory(new_human,patch_forecon) + new_human.equip_to_slot_or_del(uniform, WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/smartgunner(new_human), WEAR_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/firstaid/full(new_human), WEAR_R_STORE) + new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/firstaid/full/alternate(new_human), WEAR_L_STORE) + new_human.equip_to_slot_or_del(new /obj/item/reagent_container/food/drinks/flask/marine(new_human), WEAR_IN_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/facepaint/sniper(new_human), WEAR_IN_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/storage/box/MRE(new_human), WEAR_IN_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/tool/crowbar/tactical(new_human), WEAR_IN_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/device/radio(new_human), WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine(new_human), WEAR_HANDS) + new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/forecon(new_human), WEAR_L_EAR) + new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/smartgun(new_human), WEAR_J_STORE) + new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/night/m56_goggles(new_human), WEAR_EYES) + new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/smartgunner(new_human), WEAR_WAIST) + new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/pistol/m1911(new_human), WEAR_IN_BELT) + new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/pistol/m1911(new_human), WEAR_IN_BELT) + new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/smartgun(new_human), WEAR_IN_BELT) + new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/smartgun(new_human), WEAR_IN_BELT) + new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/smartgun(new_human), WEAR_IN_BELT) + GLOB.character_traits[/datum/character_trait/skills/spotter].apply_trait(new_human) + spawn_random_headgear(new_human) + +/datum/equipment_preset/uscm/forecon/squad_leader + name = "USCM Reconnaissance Squad Leader" + assignment = JOB_FORECON_SL + rank = JOB_SQUAD_LEADER + role_comm_title = "SL" + skills = /datum/skills/military/survivor/forecon_squad_leader + paygrade = PAY_SHORT_MO1 + + dress_under = list(/obj/item/clothing/under/marine/dress/blues/senior) + dress_over = list(/obj/item/clothing/suit/storage/jacket/marine/dress/blues/officer) + dress_hat = list(/obj/item/clothing/head/marine/dress_cover/officer) + +/datum/equipment_preset/uscm/forecon/squad_leader/load_gear(mob/living/carbon/human/new_human) + var/obj/item/clothing/under/marine/reconnaissance/uniform = new() + var/obj/item/clothing/accessory/storage/droppouch/pouch = new() + var/obj/item/clothing/accessory/ranks/marine/o1/pin = new() + var/obj/item/clothing/accessory/patch/patch_uscm = new() + var/obj/item/clothing/accessory/patch/forecon/patch_forecon = new() + uniform.attach_accessory(new_human,pouch) + uniform.attach_accessory(new_human,patch_uscm) + uniform.attach_accessory(new_human,pin) + uniform.attach_accessory(new_human,patch_forecon) + new_human.equip_to_slot_or_del(uniform, WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/rifle/m41aMK1/tactical(new_human), WEAR_R_HAND) + new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/marine/satchel(new_human), WEAR_BACK) + new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/m41aMK1(new_human), WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/m41aMK1(new_human), WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/m41aMK1/ap(new_human), WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/m41aMK1/ap(new_human), WEAR_IN_BACK) + ..() + add_forecon_weapon_pistol(new_human) + spawn_random_headgear(new_human) diff --git a/code/modules/gear_presets/uscm_medical.dm b/code/modules/gear_presets/uscm_medical.dm index be599755bacf..75152268326c 100644 --- a/code/modules/gear_presets/uscm_medical.dm +++ b/code/modules/gear_presets/uscm_medical.dm @@ -3,22 +3,22 @@ flags = EQUIPMENT_PRESET_START_OF_ROUND|EQUIPMENT_PRESET_MARINE access = list(ACCESS_MARINE_MEDBAY, ACCESS_MARINE_CHEMISTRY, ACCESS_MARINE_MORGUE) - utility_under = list(/obj/item/clothing/under/rank/medical/green) - utility_hat = list() - utility_gloves = list() - utility_shoes = list(/obj/item/clothing/shoes/white) - utility_extra = list() - - service_under = list() - service_over = list() - service_hat = list() - service_shoes = list(/obj/item/clothing/shoes/laceup) - - dress_under = list(/obj/item/clothing/under/suit_jacket) - dress_over = list() - dress_hat = list() + utility_under = list(/obj/item/clothing/under/marine) + utility_hat = list(/obj/item/clothing/head/cmcap) + utility_gloves = list(/obj/item/clothing/gloves/marine) + utility_shoes = list(/obj/item/clothing/shoes/marine) + utility_extra = list(/obj/item/clothing/head/beret/cm, /obj/item/clothing/head/beret/cm/tan) + + service_under = list(/obj/item/clothing/under/marine/officer/bridge) + service_over = list(/obj/item/clothing/suit/storage/jacket/marine/service, /obj/item/clothing/suit/storage/jacket/marine/service/mp) + service_hat = list(/obj/item/clothing/head/cmcap) + service_shoes = list(/obj/item/clothing/shoes/dress) + + dress_under = list(/obj/item/clothing/under/marine/dress/blues/senior) + dress_over = list(/obj/item/clothing/suit/storage/jacket/marine/dress/blues/officer) + dress_hat = list(/obj/item/clothing/head/marine/dress_cover/officer) dress_gloves = list(/obj/item/clothing/gloves/marine/dress) - dress_shoes = list(/obj/item/clothing/shoes/laceup) + dress_shoes = list(/obj/item/clothing/shoes/dress) /datum/equipment_preset/uscm_ship/uscm_medical/cmo name = "USCM Chief Medical Officer (CMO)" @@ -44,39 +44,25 @@ minimap_background = MINIMAP_ICON_BACKGROUND_CIC utility_under = list(/obj/item/clothing/under/rank/chief_medical_officer) - utility_hat = list(/obj/item/clothing/head/cmo) - utility_gloves = list(/obj/item/clothing/gloves/latex) + utility_hat = list() + utility_gloves = list() utility_shoes = list(/obj/item/clothing/shoes/white) - utility_extra = list(/obj/item/clothing/suit/storage/labcoat) + utility_extra = list() /datum/equipment_preset/uscm_ship/uscm_medical/cmo/load_gear(mob/living/carbon/human/new_human) - var/back_item = /obj/item/storage/backpack/marine/satchel + var/back_item = /obj/item/storage/backpack/satchel if (new_human.client && new_human.client.prefs && (new_human.client.prefs.backbag == 1)) back_item = /obj/item/storage/backpack/marine - new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/almayer/cmo(new_human), WEAR_L_EAR) new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/chief_medical_officer(new_human), WEAR_BODY) new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/white(new_human), WEAR_FEET) - new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/latex(new_human), WEAR_HANDS) - new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/labcoat(new_human), WEAR_JACKET) - new_human.equip_to_slot_or_del(new /obj/item/paper/research_notes/decent(new_human), WEAR_IN_JACKET) - if(new_human.disabilities & NEARSIGHTED) - new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/hud/health/prescription(new_human), WEAR_EYES) - else - new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/hud/health(new_human), WEAR_EYES) - new_human.equip_to_slot_or_del(new /obj/item/storage/belt/medical/lifesaver/full(new_human), WEAR_WAIST) + new_human.equip_to_slot_or_del(new /obj/item/paper/research_notes/decent(new_human), WEAR_L_STORE) new_human.equip_to_slot_or_del(new back_item(new_human), WEAR_BACK) - new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/medical(new_human), WEAR_R_STORE) - new_human.equip_to_slot_or_del(new /obj/item/tool/surgery/surgical_line, WEAR_IN_R_STORE) - new_human.equip_to_slot_or_del(new /obj/item/tool/surgery/synthgraft, WEAR_IN_R_STORE) - new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/medkit/full_advanced(new_human), WEAR_L_STORE) - new_human.equip_to_slot_or_del(new /obj/item/clothing/head/cmo(new_human), WEAR_HEAD) - new_human.equip_to_slot_or_del(new /obj/item/device/healthanalyzer(new_human), WEAR_J_STORE) //*****************************************************************************************************/ /datum/equipment_preset/uscm_ship/uscm_medical/doctor - name = "USCM Surgeon" + name = "USCM Doctor" assignment = JOB_DOCTOR rank = JOB_DOCTOR @@ -91,22 +77,26 @@ if (new_human.client && new_human.client.prefs && (new_human.client.prefs.backbag == 1)) back_item = /obj/item/storage/backpack/marine - new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/almayer/doc(new_human), WEAR_L_EAR) new_human.equip_to_slot_or_del(new back_item(new_human), WEAR_BACK) - new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/medical/green(new_human), WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/medical/blue(new_human), WEAR_BODY) new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/white(new_human), WEAR_FEET) - if(new_human.disabilities & NEARSIGHTED) - new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/hud/health/prescription(new_human), WEAR_EYES) - else - new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/hud/health(new_human), WEAR_EYES) //Surgeon this part of the code is to change the name on your ID /datum/equipment_preset/uscm_ship/uscm_medical/doctor/surgeon - + name = "USCM Surgeon" assignment = JOB_SURGEON +/datum/equipment_preset/uscm_ship/uscm_medical/doctor/surgeon/load_gear(mob/living/carbon/human/new_human) + var/back_item = /obj/item/storage/backpack/marine/satchel + if (new_human.client?.prefs && new_human.client.prefs.backbag == 1) + back_item = /obj/item/storage/backpack/marine + + new_human.equip_to_slot_or_del(new back_item(new_human), WEAR_BACK) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/medical/green(new_human), WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/white(new_human), WEAR_FEET) + //*****************************************************************************************************/ /datum/equipment_preset/uscm_ship/uscm_medical/nurse @@ -120,21 +110,22 @@ minimap_icon = list("medic") + dress_under = list(/obj/item/clothing/under/marine/dress/blues/senior) + dress_over = list(/obj/item/clothing/suit/storage/jacket/marine/dress/blues/nco) + dress_hat = list(/obj/item/clothing/head/marine/dress_cover) + dress_gloves = list(/obj/item/clothing/gloves/marine/dress) + dress_shoes = list(/obj/item/clothing/shoes/dress) + /datum/equipment_preset/uscm_ship/uscm_medical/nurse/load_gear(mob/living/carbon/human/new_human) var/back_item = /obj/item/storage/backpack/marine/satchel if (new_human.client && new_human.client.prefs && (new_human.client.prefs.backbag == 1)) back_item = /obj/item/storage/backpack/marine - new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/almayer/doc(new_human), WEAR_L_EAR) new_human.equip_to_slot_or_del(new back_item(new_human), WEAR_BACK) - new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/medical/nurse(new_human), WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/medical/lightblue(new_human), WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/armband/nurse(new_human), WEAR_ACCESSORY) new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/white(new_human), WEAR_FEET) - if(new_human.disabilities & NEARSIGHTED) - new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/hud/health/prescription(new_human), WEAR_EYES) - else - new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/hud/health(new_human), WEAR_EYES) - /datum/equipment_preset/uscm_ship/uscm_medical/nurse/load_rank(mob/living/carbon/human/new_human) if(new_human.client) @@ -159,25 +150,18 @@ utility_hat = list() utility_gloves = list() utility_shoes = list(/obj/item/clothing/shoes/laceup) - utility_extra = list(/obj/item/clothing/suit/storage/labcoat/researcher) + utility_extra = list() service_under = list(/obj/item/clothing/under/marine/officer/researcher) /datum/equipment_preset/uscm_ship/uscm_medical/researcher/load_gear(mob/living/carbon/human/new_human) - var/back_item = /obj/item/storage/backpack/marine/satchel + var/back_item = /obj/item/storage/backpack/satchel if (new_human.client && new_human.client.prefs && (new_human.client.prefs.backbag == 1)) back_item = /obj/item/storage/backpack/marine - new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/almayer/research(new_human), WEAR_L_EAR) new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/officer/researcher(new_human), WEAR_BODY) new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/laceup(new_human), WEAR_FEET) - if(new_human.disabilities & NEARSIGHTED) - new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/science/prescription(new_human), WEAR_EYES) - else - new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/science(new_human), WEAR_EYES) - - new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/labcoat/researcher(new_human), WEAR_JACKET) - new_human.equip_to_slot_or_del(new /obj/item/paper/research_notes/bad(new_human), WEAR_IN_JACKET) - new_human.equip_to_slot_or_del(new /obj/item/reagent_container/syringe(new_human), WEAR_IN_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/paper/research_notes/bad(new_human), WEAR_L_STORE) + new_human.equip_to_slot_or_del(new /obj/item/reagent_container/syringe(new_human), WEAR_R_STORE) new_human.equip_to_slot_or_del(new back_item(new_human), WEAR_BACK) diff --git a/code/modules/gear_presets/uscm_police.dm b/code/modules/gear_presets/uscm_police.dm index 14e35d990348..76df4d6de2be 100644 --- a/code/modules/gear_presets/uscm_police.dm +++ b/code/modules/gear_presets/uscm_police.dm @@ -226,8 +226,8 @@ new_human.equip_to_slot_or_del(new /obj/item/explosive/grenade/custom/teargas(new_human.back), WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/explosive/grenade/custom/teargas(new_human.back), WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/explosive/grenade/custom/teargas(new_human.back), WEAR_IN_BACK) - new_human.equip_to_slot_or_del(new /obj/item/handcuffs(new_human.back), WEAR_IN_BACK) - new_human.equip_to_slot_or_del(new /obj/item/handcuffs(new_human.back), WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/restraint/handcuffs(new_human.back), WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/restraint/handcuffs(new_human.back), WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/shotgun/large/beanbag/riot(new_human), WEAR_L_STORE) new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/shotgun/large/beanbag/riot(new_human), WEAR_R_STORE) if(new_human.disabilities & NEARSIGHTED) diff --git a/code/modules/gear_presets/uscm_ship.dm b/code/modules/gear_presets/uscm_ship.dm index b5ef13f35b2b..9c00599ec9cd 100644 --- a/code/modules/gear_presets/uscm_ship.dm +++ b/code/modules/gear_presets/uscm_ship.dm @@ -16,9 +16,9 @@ service_hat = list(/obj/item/clothing/head/cmcap) service_shoes = list(/obj/item/clothing/shoes/dress) - dress_under = list(/obj/item/clothing/under/marine/dress) - dress_over = list(/obj/item/clothing/suit/storage/jacket/marine/dress) - dress_hat = list(/obj/item/clothing/head/marine/peaked) + dress_under = list(/obj/item/clothing/under/marine/dress/blues/senior) + dress_over = list(/obj/item/clothing/suit/storage/jacket/marine/dress/blues/officer) + dress_hat = list(/obj/item/clothing/head/marine/dress_cover/officer) dress_gloves = list(/obj/item/clothing/gloves/marine/dress) dress_shoes = list(/obj/item/clothing/shoes/dress) @@ -26,6 +26,7 @@ /datum/equipment_preset/uscm_ship/liaison name = "USCM Corporate Liaison (CL)" + faction_group = FACTION_LIST_MARINE_WY flags = EQUIPMENT_PRESET_START_OF_ROUND idtype = /obj/item/card/id/silver/cl @@ -52,18 +53,18 @@ minimap_icon = "cl" minimap_background = MINIMAP_ICON_BACKGROUND_CIVILIAN - utility_under = list(/obj/item/clothing/under/liaison_suit/outing) + utility_under = list(/obj/item/clothing/under/liaison_suit/black) utility_hat = list() utility_gloves = list() utility_shoes = list(/obj/item/clothing/shoes/laceup) - utility_extra = list(/obj/item/clothing/under/liaison_suit/suspenders) + utility_extra = list(/obj/item/clothing/under/liaison_suit/blue) - service_under = list(/obj/item/clothing/under/liaison_suit) + service_under = list(/obj/item/clothing/under/liaison_suit/field) service_over = list() service_hat = list() service_shoes = list(/obj/item/clothing/shoes/laceup) - dress_under = list(/obj/item/clothing/under/liaison_suit/formal) + dress_under = list(/obj/item/clothing/under/liaison_suit/corporate_formal) dress_over = list() dress_hat = list() dress_gloves = list(/obj/item/clothing/gloves/marine/dress) @@ -80,7 +81,7 @@ //back_item = /obj/item/storage/backpack new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/almayer/mcl(new_human), WEAR_L_EAR) - new_human.equip_to_slot_or_del(new /obj/item/clothing/under/liaison_suit(new_human), WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/liaison_suit/ivy(new_human), WEAR_BODY) new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/laceup(new_human), WEAR_FEET) new_human.equip_to_slot_or_del(new back_item(new_human), WEAR_BACK) @@ -101,7 +102,7 @@ //*****************************************************************************************************/ /datum/equipment_preset/uscm_ship/reporter - name = "Combat Correspondent" + name = "Combat Correspondent (Press)" flags = EQUIPMENT_PRESET_START_OF_ROUND access = list( @@ -127,19 +128,22 @@ minimap_icon = "correspondent" minimap_background = MINIMAP_ICON_BACKGROUND_CIVILIAN -/datum/equipment_preset/uscm_ship/reporter/load_gear(mob/living/carbon/human/new_human) - var/back_item = /obj/item/storage/backpack/satchel + dress_under = list() + dress_over = list() + dress_hat = list() +/datum/equipment_preset/uscm_ship/reporter/load_gear(mob/living/carbon/human/new_human) new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/almayer/reporter(new_human), WEAR_L_EAR) new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/reporter(new_human), WEAR_BODY) new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/jacket/marine/reporter(new_human), WEAR_JACKET) new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/laceup(new_human), WEAR_FEET) - new_human.equip_to_slot_or_del(new back_item(new_human), WEAR_BACK) - new_human.equip_to_slot_or_del(new /obj/item/device/camera(new_human), WEAR_L_HAND) - new_human.equip_to_slot_or_del(new /obj/item/device/camera_film(new_human), WEAR_IN_BACK) - new_human.equip_to_slot_or_del(new /obj/item/device/binoculars(new_human), WEAR_IN_BACK) - new_human.equip_to_slot_or_del(new /obj/item/device/taperecorder(new_human), WEAR_IN_BACK) - new_human.equip_to_slot_or_del(new /obj/item/notepad(new_human), WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/general/large(new_human), WEAR_L_STORE) + new_human.equip_to_slot_or_del(new /obj/item/device/camera(new_human), WEAR_WAIST) + +/datum/equipment_preset/uscm_ship/reporter/load_preset(mob/living/carbon/human/new_human, randomise, count_participant, client/mob_client, show_job_gear) + . = ..() + new_human.marine_buyable_categories[CIVILIAN_CAN_BUY_BACKPACK] = 1 + new_human.marine_buyable_categories[CIVILIAN_CAN_BUY_UTILITY] = 1 /datum/equipment_preset/uscm_ship/reporter_uscm name = "Combat Correspondent" @@ -159,6 +163,9 @@ minimap_icon = "correspondent" minimap_background = MINIMAP_ICON_BACKGROUND_CIC + dress_over = list(/obj/item/clothing/suit/storage/jacket/marine/dress/blues/nco) + dress_hat = list(/obj/item/clothing/head/marine/dress_cover) + /datum/equipment_preset/uscm_ship/reporter_uscm/load_gear(mob/living/carbon/human/new_human) var/back_item = /obj/item/storage/backpack/satchel if (new_human.client && new_human.client.prefs && (new_human.client.prefs.backbag == 1)) @@ -178,10 +185,6 @@ new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/general/medium(new_human), WEAR_R_STORE) new_human.equip_to_slot_or_del(new /obj/item/device/camera(new_human), WEAR_L_HAND) - new_human.equip_to_slot_or_del(new /obj/item/device/camera_film(new_human), WEAR_IN_BACK) - new_human.equip_to_slot_or_del(new /obj/item/device/binoculars(new_human), WEAR_IN_BACK) - new_human.equip_to_slot_or_del(new /obj/item/device/taperecorder(new_human), WEAR_IN_BACK) - new_human.equip_to_slot_or_del(new /obj/item/notepad(new_human), WEAR_IN_BACK) //*****************************************************************************************************/ @@ -246,23 +249,18 @@ minimap_icon = "engi" utility_under = list(/obj/item/clothing/under/marine/officer/engi) + dress_under = list(/obj/item/clothing/under/marine/dress/blues) + dress_over = list(/obj/item/clothing/suit/storage/jacket/marine/dress/blues) + dress_hat = list(/obj/item/clothing/head/marine/dress_cover) /datum/equipment_preset/uscm_ship/maint/load_gear(mob/living/carbon/human/new_human) var/back_item = /obj/item/storage/backpack/marine/satchel/tech if (new_human.client && new_human.client.prefs && (new_human.client.prefs.backbag == 1)) back_item = /obj/item/storage/backpack/marine/tech - new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/almayer/mt(new_human), WEAR_L_EAR) new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/officer/engi(new_human), WEAR_BODY) new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine(new_human), WEAR_FEET) - new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/yellow(new_human), WEAR_HANDS) - new_human.equip_to_slot_or_del(new /obj/item/clothing/head/welding(new_human), WEAR_HEAD) - new_human.equip_to_slot_or_del(new /obj/item/storage/belt/utility/full(new_human), WEAR_WAIST) new_human.equip_to_slot_or_del(new back_item(new_human), WEAR_BACK) - new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/general/medium(new_human), WEAR_R_STORE) - new_human.equip_to_slot_or_del(new /obj/item/device/demo_scanner(new_human), WEAR_L_STORE) - new_human.equip_to_slot_or_del(new /obj/item/storage/bag/trash(new_human), WEAR_L_HAND) - new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/marine/engineerpack/welder_chestrig, (new_human), WEAR_R_HAND) /datum/equipment_preset/uscm_ship/maint/load_rank(mob/living/carbon/human/new_human) if(new_human.client) @@ -292,6 +290,9 @@ minimap_icon = "ot" utility_under = list(/obj/item/clothing/under/marine/officer/engi) + dress_under = list(/obj/item/clothing/under/marine/dress/blues) + dress_over = list(/obj/item/clothing/suit/storage/jacket/marine/dress/blues) + dress_hat = list(/obj/item/clothing/head/marine/dress_cover) /datum/equipment_preset/uscm_ship/ordn/load_gear(mob/living/carbon/human/new_human) var/back_item = /obj/item/storage/backpack/marine/satchel/tech @@ -335,6 +336,8 @@ minimap_icon = list("ct" = MINIMAP_ICON_COLOR_HEAD) utility_under = list(/obj/item/clothing/under/rank/qm_suit) + dress_over = list(/obj/item/clothing/suit/storage/jacket/marine/dress/blues/nco) + dress_hat = list(/obj/item/clothing/head/marine/dress_cover) /datum/equipment_preset/uscm_ship/qm/load_gear(mob/living/carbon/human/new_human) var/back_item = /obj/item/storage/backpack/marine/satchel/tech @@ -356,7 +359,7 @@ name = "USCM Cargo Technician (CT)" flags = EQUIPMENT_PRESET_START_OF_ROUND|EQUIPMENT_PRESET_MARINE - access = list(ACCESS_MARINE_CARGO, ACCESS_MARINE_PREP) + access = list(ACCESS_MARINE_CARGO) assignment = JOB_CARGO_TECH rank = JOB_CARGO_TECH paygrade = PAY_SHORT_ME2 @@ -366,6 +369,9 @@ minimap_icon = "ct" utility_under = list(/obj/item/clothing/under/rank/cargotech) + dress_under = list(/obj/item/clothing/under/marine/dress/blues) + dress_over = list(/obj/item/clothing/suit/storage/jacket/marine/dress/blues) + dress_hat = list(/obj/item/clothing/head/marine/dress_cover) /datum/equipment_preset/uscm_ship/cargo/load_gear(mob/living/carbon/human/new_human) var/back_item = /obj/item/storage/backpack/marine/satchel/tech @@ -413,11 +419,11 @@ service_extra = list(/obj/item/clothing/suit/storage/jacket/marine/dress/officer/bomber) service_hat = list(/obj/item/clothing/head/beret/cm, /obj/item/clothing/head/beret/marine/commander/dress, /obj/item/clothing/head/beret/marine/commander/black, /obj/item/clothing/head/marine/peaked/service) - dress_under = list(/obj/item/clothing/under/marine/dress, /obj/item/clothing/under/marine/officer/formal/servicedress) - dress_extra = list(/obj/item/storage/large_holster/ceremonial_sword/full) - dress_hat = list(/obj/item/clothing/head/marine/peaked/captain/white, /obj/item/clothing/head/marine/peaked/captain/black, /obj/item/clothing/head/marine/peaked) + dress_under = list(/obj/item/clothing/under/marine/dress/blues/senior) + dress_over = list(/obj/item/clothing/suit/storage/jacket/marine/dress/blues/officer) + dress_hat = list(/obj/item/clothing/head/marine/dress_cover/officer) dress_shoes = list(/obj/item/clothing/shoes/dress/commander) - dress_over = list(/obj/item/clothing/suit/storage/jacket/marine/dress/officer/white, /obj/item/clothing/suit/storage/jacket/marine/dress/officer/black, /obj/item/clothing/suit/storage/jacket/marine/dress/officer/suit, /obj/item/clothing/suit/storage/jacket/marine/dress) + dress_extra = list(/obj/item/storage/large_holster/ceremonial_sword/full) /datum/equipment_preset/uscm_ship/commander/New() . = ..() @@ -463,6 +469,16 @@ //*****************************************************************************************************/ +/datum/equipment_preset/uscm_ship/commander/visitor + name = "USCM Observer (Major) (VO)" + flags = EQUIPMENT_PRESET_EXTRA + + assignment = JOB_USCM_OBSV + rank = JOB_USCM_OBSV + role_comm_title = "VO" + +//*****************************************************************************************************/ + /datum/equipment_preset/uscm_ship/commander/council name = "USCM Commanding Officer (CO+)" flags = EQUIPMENT_PRESET_START_OF_ROUND|EQUIPMENT_PRESET_MARINE @@ -474,12 +490,9 @@ minimum_age = 35 dress_over = list( - /obj/item/clothing/suit/storage/jacket/marine/dress/officer/white, - /obj/item/clothing/suit/storage/jacket/marine/dress/officer/black, - /obj/item/clothing/suit/storage/jacket/marine/dress/officer/suit, + /obj/item/clothing/suit/storage/jacket/marine/dress/blues/officer, /obj/item/clothing/suit/storage/jacket/marine/dress/officer/falcon, ) - /datum/equipment_preset/uscm_ship/commander/council/load_gear(mob/living/carbon/human/new_human) new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/officer/bridge(new_human), WEAR_BODY) new_human.equip_to_slot_or_del(new /obj/item/clothing/head/beret/marine/commander/council(new_human), WEAR_HEAD) @@ -489,6 +502,7 @@ name = "USCM Commanding Officer (CO++)" idtype = /obj/item/card/id/general paygrade = PAY_SHORT_MO6 + dress_under = list(/obj/item/clothing/under/marine/dress/blues/senior, /obj/item/clothing/under/marine/dress/blues/general) /datum/equipment_preset/uscm_ship/commander/council/plus/load_gear(mob/living/carbon/human/new_human) new_human.equip_to_slot_or_del(new /obj/item/clothing/head/beret/marine/commander/councilchief(new_human), WEAR_HEAD) @@ -572,7 +586,6 @@ flags = EQUIPMENT_PRESET_START_OF_ROUND|EQUIPMENT_PRESET_MARINE idtype = /obj/item/card/id/silver - access assignment = JOB_SEA rank = JOB_SEA paygrade = PAY_SHORT_ME7 @@ -583,6 +596,8 @@ minimap_icon = "sea" service_hat = list(/obj/item/clothing/head/cmcap, /obj/item/clothing/head/drillhat) + dress_over = list(/obj/item/clothing/suit/storage/jacket/marine/dress/blues/nco) + dress_hat = list(/obj/item/clothing/head/marine/dress_cover) /datum/equipment_preset/uscm_ship/sea/New() . = ..() @@ -594,7 +609,7 @@ back_item = /obj/item/storage/backpack/marine new_human.equip_to_slot_or_del(new back_item(new_human), WEAR_BACK) - new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/almayer/mcom/cdrcom(new_human), WEAR_L_EAR) + new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/almayer/mcom/sea(new_human), WEAR_L_EAR) new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/officer/bridge(new_human), WEAR_BODY) new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET) new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/m44/custom(new_human), WEAR_WAIST) @@ -624,7 +639,7 @@ minimum_age = 27 skills = /datum/skills/auxiliary_officer - minimap_icon = list("cic" = MINIMAP_ICON_COLOR_SILVER) + minimap_icon = list("cic" = COLOR_SILVER) minimap_background = MINIMAP_ICON_BACKGROUND_CIC /datum/equipment_preset/uscm_ship/auxiliary_officer/New() @@ -670,21 +685,71 @@ //*****************************************************************************************************/ -/datum/equipment_preset/uscm_ship/po - name = "USCM Pilot (DP) (Cryo)" +/datum/equipment_preset/uscm_ship/gp + name = "USCM Gunship Pilot (GP) (Cryo)" flags = EQUIPMENT_PRESET_START_OF_ROUND|EQUIPMENT_PRESET_MARINE idtype = /obj/item/card/id/silver access = list(ACCESS_MARINE_COMMAND, ACCESS_MARINE_DROPSHIP, ACCESS_MARINE_PILOT) - assignment = JOB_PILOT - rank = JOB_PILOT + assignment = JOB_CAS_PILOT + rank = JOB_CAS_PILOT + paygrade = PAY_SHORT_MO1 + role_comm_title = "GP" + skills = /datum/skills/pilot + + minimap_icon = "pilot" + +/datum/equipment_preset/uscm_ship/gp/load_gear(mob/living/carbon/human/new_human) + var/back_item = /obj/item/storage/backpack/satchel + if(new_human.client && new_human.client.prefs && (new_human.client.prefs.backbag == 1)) + back_item = /obj/item/storage/backpack/marine + + new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/almayer/po(new_human), WEAR_L_EAR) + new_human.equip_to_slot_or_del(new back_item(new_human), WEAR_BACK) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/officer/pilot(new_human), WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET) + +//*****************************************************************************************************/ + +/datum/equipment_preset/uscm_ship/gp/full + name = "USCM Gunship Pilot (GP)" + flags = EQUIPMENT_PRESET_EXTRA|EQUIPMENT_PRESET_MARINE + + utility_under = list(/obj/item/clothing/under/marine/officer/pilot) + +/datum/equipment_preset/uscm_ship/gp/full/load_gear(mob/living/carbon/human/new_human) + var/back_item = /obj/item/storage/backpack/satchel + if(new_human.client && new_human.client.prefs && (new_human.client.prefs.backbag == 1)) + back_item = /obj/item/storage/backpack/marine + + new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/almayer/po(new_human), WEAR_L_EAR) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/officer/pilot(new_human), WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/yellow(new_human), WEAR_HANDS) + new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/m4a3/mod88(new_human), WEAR_WAIST) + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/vest/pilot(new_human), WEAR_JACKET) + new_human.equip_to_slot_or_del(new back_item(new_human), WEAR_BACK) + new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/general/large(new_human), WEAR_R_STORE) + new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/marine/pilot(new_human), WEAR_HEAD) + new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses(new_human), WEAR_EYES) + +//*****************************************************************************************************/ + +/datum/equipment_preset/uscm_ship/dp + name = "USCM Dropship Pilot (DP) (Cryo)" + flags = EQUIPMENT_PRESET_START_OF_ROUND|EQUIPMENT_PRESET_MARINE + + idtype = /obj/item/card/id/silver + access = list(ACCESS_MARINE_COMMAND, ACCESS_MARINE_DROPSHIP, ACCESS_MARINE_PILOT) + assignment = JOB_DROPSHIP_PILOT + rank = JOB_DROPSHIP_PILOT paygrade = PAY_SHORT_MO1 role_comm_title = "DP" skills = /datum/skills/pilot minimap_icon = "pilot" -/datum/equipment_preset/uscm_ship/po/load_gear(mob/living/carbon/human/new_human) +/datum/equipment_preset/uscm_ship/dp/load_gear(mob/living/carbon/human/new_human) var/back_item = /obj/item/storage/backpack/satchel if(new_human.client && new_human.client.prefs && (new_human.client.prefs.backbag == 1)) back_item = /obj/item/storage/backpack/marine @@ -696,13 +761,13 @@ //*****************************************************************************************************/ -/datum/equipment_preset/uscm_ship/po/full - name = "USCM Pilot Officer (PO)" +/datum/equipment_preset/uscm_ship/dp/full + name = "USCM Dropship Pilot (DP)" flags = EQUIPMENT_PRESET_EXTRA|EQUIPMENT_PRESET_MARINE utility_under = list(/obj/item/clothing/under/marine/officer/pilot) -/datum/equipment_preset/uscm_ship/po/full/load_gear(mob/living/carbon/human/new_human) +/datum/equipment_preset/uscm_ship/dp/full/load_gear(mob/living/carbon/human/new_human) var/back_item = /obj/item/storage/backpack/satchel if(new_human.client && new_human.client.prefs && (new_human.client.prefs.backbag == 1)) back_item = /obj/item/storage/backpack/marine @@ -734,6 +799,9 @@ minimap_icon = "dcc" + dress_over = list(/obj/item/clothing/suit/storage/jacket/marine/dress/blues/nco) + dress_hat = list(/obj/item/clothing/head/marine/dress_cover) + /datum/equipment_preset/uscm_ship/dcc/load_gear(mob/living/carbon/human/new_human) var/back_item = /obj/item/storage/backpack/satchel if(new_human.client && new_human.client.prefs && (new_human.client.prefs.backbag == 1)) @@ -790,9 +858,7 @@ service_hat = list(/obj/item/clothing/head/beret/cm) service_shoes = list(/obj/item/clothing/shoes/dress/commander) - dress_extra = list(/obj/item/clothing/head/beret/marine/commander/dress, /obj/item/storage/large_holster/ceremonial_sword/full) - dress_hat = list(/obj/item/clothing/head/marine/peaked/captain) - dress_shoes = list(/obj/item/clothing/shoes/dress/commander) + dress_extra = list(/obj/item/storage/large_holster/ceremonial_sword/full) /datum/equipment_preset/uscm_ship/officer/New() . = ..() @@ -825,6 +891,9 @@ minimap_icon = "mst" utility_under = list(/obj/item/clothing/under/marine/chef) + dress_under = list(/obj/item/clothing/under/marine/dress/blues) + dress_over = list(/obj/item/clothing/suit/storage/jacket/marine/dress/blues) + dress_hat = list(/obj/item/clothing/head/marine/dress_cover) /datum/equipment_preset/uscm_ship/chef/load_gear(mob/living/carbon/human/new_human) var/back_item = /obj/item/storage/backpack/marine/satchel diff --git a/code/modules/gear_presets/whiteout.dm b/code/modules/gear_presets/whiteout.dm index 62b6d5db8008..75e8e013c03f 100644 --- a/code/modules/gear_presets/whiteout.dm +++ b/code/modules/gear_presets/whiteout.dm @@ -9,7 +9,7 @@ languages = list(LANGUAGE_ENGLISH, LANGUAGE_JAPANESE, LANGUAGE_CHINESE, LANGUAGE_RUSSIAN, LANGUAGE_GERMAN, LANGUAGE_SPANISH, LANGUAGE_YAUTJA, LANGUAGE_XENOMORPH, LANGUAGE_TSL) //Synths after all. skills = /datum/skills/everything //They are Synths, programmed for Everything. idtype = /obj/item/card/id/pmc/ds - paygrade = PAY_SHORT_OPR + paygrade = PAY_SHORT_CDNM /datum/equipment_preset/pmc/w_y_whiteout/New() . = ..() @@ -270,7 +270,7 @@ //*****************************************************************************************************/ /datum/equipment_preset/pmc/w_y_whiteout/low_threat/medic - name = "Whiteout Team Medic" + name = "Whiteout Team Operative Medic" /datum/equipment_preset/pmc/w_y_whiteout/low_threat/medic/load_gear(mob/living/carbon/human/new_human) // back diff --git a/code/modules/gear_presets/wo.dm b/code/modules/gear_presets/wo.dm index 884b865bce11..bf002b292df9 100644 --- a/code/modules/gear_presets/wo.dm +++ b/code/modules/gear_presets/wo.dm @@ -197,7 +197,7 @@ //uniform new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/officer/boiler(new_human), WEAR_BODY) //jacket - new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/leader(new_human), WEAR_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/medium/leader(new_human), WEAR_JACKET) new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/rifle/m41aMK1(new_human), WEAR_J_STORE) //waist new_human.equip_to_slot_or_del(new /obj/item/storage/belt/marine/m41amk1(new_human), WEAR_WAIST) @@ -274,7 +274,7 @@ new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET) new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/officer(new_human), WEAR_HANDS) new_human.equip_to_slot_or_del(new /obj/item/storage/belt/shotgun/full(new_human), WEAR_WAIST) - new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/leader(new_human), WEAR_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/medium/leader(new_human), WEAR_JACKET) new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses/aviator(new_human), WEAR_EYES) new_human.equip_to_slot_or_del(new /obj/item/clothing/head/beret/marine/logisticsofficer(new_human), WEAR_HEAD) new_human.equip_to_slot_or_del(new back_item(new_human), WEAR_BACK) @@ -599,7 +599,7 @@ new_human.equip_to_slot_or_del(new /obj/item/clothing/head/fedora(new_human), WEAR_HEAD) new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/almayer/mcom(new_human), WEAR_L_EAR) - new_human.equip_to_slot_or_del(new /obj/item/clothing/under/liaison_suit/suspenders(new_human), WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/liaison_suit/black(new_human), WEAR_BODY) new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/laceup(new_human), WEAR_FEET) new_human.equip_to_slot_or_del(new back_item(new_human), WEAR_BACK) new_human.equip_to_slot_or_del(new /obj/item/device/camera(new_human), WEAR_L_HAND) @@ -636,7 +636,7 @@ new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine(new_human), WEAR_BODY) new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/marine/leader(new_human), WEAR_HEAD) - new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/leader(new_human), WEAR_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/medium/leader(new_human), WEAR_JACKET) new_human.equip_to_slot_or_del(new /obj/item/storage/belt/marine/m41amk1(new_human), WEAR_WAIST) new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/rifle/m41aMK1(new_human), WEAR_J_STORE) new_human.equip_to_slot_or_del(new /obj/item/device/whiskey_supply_beacon(new_human), WEAR_IN_BACK) diff --git a/code/modules/gear_presets/wy.dm b/code/modules/gear_presets/wy.dm index 0b63c76b59d0..d492f9573b57 100644 --- a/code/modules/gear_presets/wy.dm +++ b/code/modules/gear_presets/wy.dm @@ -19,8 +19,8 @@ /datum/equipment_preset/wy/load_gear(mob/living/carbon/human/new_human) new_human.equip_to_slot_or_del(new headset_type(new_human), WEAR_L_EAR) - new_human.equip_to_slot_or_del(new /obj/item/clothing/under/liaison_suit(new_human), WEAR_BODY) - new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/centcom(new_human), WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/liaison_suit/ivy(new_human), WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/laceup(new_human), WEAR_FEET) new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel(new_human), WEAR_BACK) . = ..() @@ -63,6 +63,20 @@ rank = JOB_EXECUTIVE_SPECIALIST paygrade = PAY_SHORT_WYC5 +/datum/equipment_preset/wy/exec_spec/lawyer + name = "Corporate - E - Lawyer" + +/datum/equipment_preset/wy/exec_spec/lawyer/load_gear(mob/living/carbon/human/new_human) + new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/WY(new_human), WEAR_L_EAR) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/liaison_suit/blue(new_human), WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/jacket/marine/corporate/blue(new_human), WEAR_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/tool/pen/clicky(new_human), WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/clipboard(new_human), WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/notepad/blue(new_human), WEAR_R_STORE) + new_human.equip_to_slot_or_del(new /obj/item/device/taperecorder(new_human), WEAR_L_STORE) + + ..() + /datum/equipment_preset/wy/exec_supervisor name = "Corporate - F - Executive Supervisor" flags = EQUIPMENT_PRESET_EXTRA @@ -70,6 +84,21 @@ rank = JOB_EXECUTIVE_SUPERVISOR paygrade = PAY_SHORT_WYC6 +/datum/equipment_preset/wy/exec_supervisor/lawyer + name = "Corporate - F - Lawyer" + +/datum/equipment_preset/wy/exec_supervisor/lawyer/load_gear(mob/living/carbon/human/new_human) + new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/WY(new_human), WEAR_L_EAR) + new_human.equip_to_slot_or_del(new /obj/item/storage/secure/briefcase(new_human), WEAR_R_HAND) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/liaison_suit/black(new_human), WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/jacket/marine/corporate/black(new_human), WEAR_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/tool/pen/clicky(new_human), WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/clipboard(new_human), WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/spacecash/c1000/counterfeit(new_human), WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/notepad/black(new_human), WEAR_R_STORE) + new_human.equip_to_slot_or_del(new /obj/item/device/taperecorder(new_human), WEAR_L_STORE) + ..() + /datum/equipment_preset/wy/manager skills = /datum/skills/civilian/manager idtype = /obj/item/card/id/silver/clearance_badge/manager diff --git a/code/modules/gear_presets/wy_goons.dm b/code/modules/gear_presets/wy_goons.dm index a7c0dad679ee..9207b9d55a2d 100644 --- a/code/modules/gear_presets/wy_goons.dm +++ b/code/modules/gear_presets/wy_goons.dm @@ -62,7 +62,7 @@ assignment = JOB_WY_GOON rank = JOB_WY_GOON paygrade = PAY_SHORT_CPO - skills = /datum/skills/MP + skills = /datum/skills/wy_goon /datum/equipment_preset/goon/standard/load_gear(mob/living/carbon/human/new_human) new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/WY, WEAR_L_EAR) @@ -74,9 +74,9 @@ new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/lightpack, WEAR_BACK) new_human.equip_to_slot_or_del(new /obj/item/weapon/baton, WEAR_IN_BACK) - new_human.equip_to_slot_or_del(new /obj/item/handcuffs/zip, WEAR_IN_BACK) - new_human.equip_to_slot_or_del(new /obj/item/handcuffs/zip, WEAR_IN_BACK) - new_human.equip_to_slot_or_del(new /obj/item/handcuffs/zip, WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/restraint/handcuffs/zip, WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/restraint/handcuffs/zip, WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/restraint/handcuffs/zip, WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/tool/crowbar, WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/m4a3/mod88, WEAR_WAIST) @@ -88,6 +88,40 @@ new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/ap, WEAR_IN_BACK) +/datum/equipment_preset/goon/engineer + name = "Weyland-Yutani Corporate Security Technician (Goon Engineer)" + flags = EQUIPMENT_PRESET_EXTRA + + assignment = JOB_WY_GOON_TECH + rank = JOB_WY_GOON_TECH + paygrade = PAY_SHORT_CPO + skills = /datum/skills/wy_goon_tech + +/datum/equipment_preset/goon/engineer/load_gear(mob/living/carbon/human/new_human) + new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/WY, WEAR_L_EAR) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/veteran/pmc/corporate, WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/veteran/pmc/light/corporate, WEAR_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/veteran, WEAR_HANDS) + new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/marine/veteran/pmc/corporate, WEAR_HEAD) + new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/welding, WEAR_EYES) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/corporate, WEAR_FEET) + + new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/marine/engineerpack/ert, WEAR_BACK) + new_human.equip_to_slot_or_del(new /obj/item/weapon/baton, WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/restraint/handcuffs, WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle, WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle, WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle, WEAR_IN_BACK) + + new_human.equip_to_slot_or_del(new /obj/item/storage/belt/utility/full, WEAR_WAIST) + new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/firstaid/full, WEAR_R_STORE) + new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/construction/full, WEAR_L_STORE) + + new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/rifle/m41a/corporate, WEAR_J_STORE) + new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/ap, WEAR_IN_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/ap, WEAR_IN_JACKET) + + /datum/equipment_preset/goon/lead name = "Weyland-Yutani Corporate Security Lead (Goon Lead)" flags = EQUIPMENT_PRESET_EXTRA @@ -95,7 +129,7 @@ assignment = JOB_WY_GOON_LEAD rank = JOB_WY_GOON_LEAD paygrade = PAY_SHORT_CSPO - skills = /datum/skills/MP + skills = /datum/skills/wy_goon_lead /datum/equipment_preset/goon/lead/New() . = ..() @@ -111,9 +145,9 @@ new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/lightpack, WEAR_BACK) new_human.equip_to_slot_or_del(new /obj/item/weapon/baton, WEAR_IN_BACK) - new_human.equip_to_slot_or_del(new /obj/item/handcuffs/zip, WEAR_IN_BACK) - new_human.equip_to_slot_or_del(new /obj/item/handcuffs/zip, WEAR_IN_BACK) - new_human.equip_to_slot_or_del(new /obj/item/handcuffs/zip, WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/restraint/handcuffs/zip, WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/restraint/handcuffs/zip, WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/restraint/handcuffs/zip, WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/tool/crowbar, WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/m4a3/mod88, WEAR_WAIST) @@ -135,7 +169,8 @@ /datum/equipment_preset/goon/researcher/load_gear(mob/living/carbon/human/new_human) new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/WY, WEAR_L_EAR) - new_human.equip_to_slot_or_del(new /obj/item/clothing/under/liaison_suit, WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/science, WEAR_EYES) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/liaison_suit/corporate_formal, WEAR_BODY) new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/labcoat, WEAR_JACKET) new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/corporate, WEAR_FEET) diff --git a/code/modules/gear_presets/yautja.dm b/code/modules/gear_presets/yautja.dm index 27eac7215ff3..8ffd8664a977 100644 --- a/code/modules/gear_presets/yautja.dm +++ b/code/modules/gear_presets/yautja.dm @@ -12,13 +12,13 @@ /datum/equipment_preset/yautja/load_race(mob/living/carbon/human/new_human, client/mob_client) new_human.set_species(SPECIES_YAUTJA) - new_human.ethnicity = "tan" + new_human.skin_color = "tan" new_human.body_type = "pred" //can be removed in future for body types if(!mob_client) mob_client = new_human.client if(mob_client?.prefs) new_human.h_style = mob_client.prefs.predator_h_style - new_human.ethnicity = mob_client.prefs.predator_skin_color + new_human.skin_color = mob_client.prefs.predator_skin_color /datum/equipment_preset/yautja/load_id(mob/living/carbon/human/new_human) new_human.job = rank diff --git a/code/modules/holidays/halloween/decorators.dm b/code/modules/holidays/halloween/decorators.dm index 6575ed5ba665..fb12cf96cd82 100644 --- a/code/modules/holidays/halloween/decorators.dm +++ b/code/modules/holidays/halloween/decorators.dm @@ -25,8 +25,7 @@ var/list/turf/valid_turfs = list() var/list/ground_levels = SSmapping.levels_by_trait(ZTRAIT_GROUND) for(var/ground_z in ground_levels) - var/list/turf/all_turfs = block(locate(1, 1, ground_z), locate(world.maxx, world.maxy, ground_z)) - for(var/turf/open/turf in all_turfs) + for(var/turf/open/turf in Z_TURFS(ground_z)) if(turf.is_groundmap_turf) var/valid = TRUE for(var/atom/movable/movable as anything in turf.contents) @@ -42,11 +41,7 @@ if(!length(valid_turfs)) break var/turf/considered_turf = pick(valid_turfs) - var/x_min = max(1, considered_turf.x - exclusion_range) - var/y_min = max(1, considered_turf.y - exclusion_range) - var/x_max = min(world.maxx, considered_turf.x + exclusion_range) - var/y_max = min(world.maxy, considered_turf.y + exclusion_range) - var/list/turf/denied_turfs = block(locate(x_min, y_min, considered_turf.z), locate(x_max, y_max, considered_turf.z)) + var/list/turf/denied_turfs = RANGE_TURFS(exclusion_range, considered_turf) valid_turfs -= denied_turfs picked_turfs += considered_turf diff --git a/code/modules/hydroponics/grown_inedible.dm b/code/modules/hydroponics/grown_inedible.dm index e47ad43acaf1..0bc77ed2130f 100644 --- a/code/modules/hydroponics/grown_inedible.dm +++ b/code/modules/hydroponics/grown_inedible.dm @@ -24,8 +24,8 @@ for(var/rid in S.chems) var/list/reagent_data = S.chems[rid] var/rtotal = reagent_data[1] - if(reagent_data.len > 1 && potency > 0) - rtotal += round(potency/reagent_data[2]) + if(length(reagent_data) > 1 && potency > 0) + rtotal += floor(potency/reagent_data[2]) reagents.add_reagent(rid,max(1,rtotal)) /obj/item/grown/log diff --git a/code/modules/hydroponics/hydro_tools.dm b/code/modules/hydroponics/hydro_tools.dm index b7e3d8bb84c5..570652a4195c 100644 --- a/code/modules/hydroponics/hydro_tools.dm +++ b/code/modules/hydroponics/hydro_tools.dm @@ -48,7 +48,7 @@ dat += "
          " dat += "
          Survivors
          BANNED
          WHITELISTED
          BANNED
          WHITELISTED
          Potency[grown_seed.potency]
          " - if(grown_reagents && grown_reagents.reagent_list && grown_reagents.reagent_list.len) + if(grown_reagents && LAZYLEN(grown_reagents.reagent_list)) dat += "

          Reagent Data

          " dat += "
          This sample contains: " for(var/datum/reagent/R in grown_reagents.reagent_list) @@ -64,8 +64,8 @@ else if(grown_seed.immutable > 0) dat += "This plant does not possess genetics that are alterable.
          " - if(grown_seed.products && grown_seed.products.len) - dat += "The mature plant will produce [grown_seed.products.len == 1 ? "fruit" : "[grown_seed.products.len] varieties of fruit"].
          " + if(LAZYLEN(grown_seed.products)) + dat += "The mature plant will produce [length(grown_seed.products) == 1 ? "fruit" : "[length(grown_seed.products)] varieties of fruit"].
          " if(grown_seed.requires_nutrients) if(grown_seed.nutrient_consumption < 0.05) @@ -83,7 +83,7 @@ else dat += "It requires a stable supply of water.
          " - if(grown_seed.mutants && grown_seed.mutants.len) + if(LAZYLEN(grown_seed.mutants)) dat += "It exhibits a high degree of potential subspecies shift.
          " dat += "It thrives in a temperature of [grown_seed.ideal_heat] Kelvin." @@ -138,9 +138,9 @@ dat += "
          It will periodically alter the local temperature by [grown_seed.alter_temp] degrees Kelvin." if(grown_seed.biolum) - dat += "
          It is [grown_seed.biolum_colour ? "bio-luminescent" : "bio-luminescent"]." + dat += "
          It is [grown_seed.biolum_color ? "bio-luminescent" : "bio-luminescent"]." if(grown_seed.flowers) - dat += "
          It has [grown_seed.flower_colour ? "flowers" : "flowers"]." + dat += "
          It has [grown_seed.flower_color ? "flowers" : "flowers"]." if(dat) show_browser(user, dat, "Plant Analysis", "plant_analyzer") @@ -157,7 +157,7 @@ name = "fertilizer bottle" desc = "A small glass bottle. Can hold up to 10 units." icon = 'icons/obj/items/chemistry.dmi' - icon_state = "bottle16" + icon_state = "fertilizer" flags_atom = FPRINT| OPENCONTAINER possible_transfer_amounts = null w_class = SIZE_SMALL @@ -179,15 +179,12 @@ /obj/item/reagent_container/glass/fertilizer/ez name = "bottle of E-Z-Nutrient" - icon_state = "bottle16" fertilizer = "eznutrient" /obj/item/reagent_container/glass/fertilizer/l4z name = "bottle of Left 4 Zed" - icon_state = "bottle18" fertilizer = "left4zed" /obj/item/reagent_container/glass/fertilizer/rh name = "bottle of Robust Harvest" - icon_state = "bottle15" fertilizer = "robustharvest" diff --git a/code/modules/hydroponics/hydro_tray.dm b/code/modules/hydroponics/hydro_tray.dm index 75bfaa5c31a8..98b7ff13b9a1 100644 --- a/code/modules/hydroponics/hydro_tray.dm +++ b/code/modules/hydroponics/hydro_tray.dm @@ -207,7 +207,7 @@ if(seed.nutrient_consumption > 0 && nutrilevel > 0 && prob(25)) nutrilevel -= max(0,seed.nutrient_consumption * HYDRO_SPEED_MULTIPLIER) if(seed.water_consumption > 0 && waterlevel > 0 && prob(25)) - waterlevel -= round(max(0,(seed.water_consumption * HYDRO_WATER_CONSUMPTION_MULTIPLIER) * HYDRO_SPEED_MULTIPLIER)) + waterlevel -= floor(max(0,(seed.water_consumption * HYDRO_WATER_CONSUMPTION_MULTIPLIER) * HYDRO_SPEED_MULTIPLIER)) // Make sure the plant is not starving or thirsty. Adequate // water and nutrients will cause a plant to become healthier. @@ -226,7 +226,7 @@ // Toxin levels beyond the plant's tolerance cause damage, but // toxins are sucked up each tick and slowly reduce over time. if(toxins > 0) - var/toxin_uptake = max(1,round(toxins/10)) + var/toxin_uptake = max(1,floor(toxins/10)) if(toxins > seed.toxins_tolerance) plant_health -= toxin_uptake toxins -= toxin_uptake @@ -262,7 +262,7 @@ pestlevel = 0 // If enough time (in cycles, not ticks) has passed since the plant was harvested, we're ready to harvest again. - else if(seed.products && seed.products.len && age > seed.production && (age - lastproduce) > seed.production && (!harvest && !dead)) + else if(LAZYLEN(seed.products) && age > seed.production && (age - lastproduce) > seed.production && (!harvest && !dead)) harvest = 1 lastproduce = age @@ -319,7 +319,7 @@ // Water dilutes toxin level. if(water_added > 0) - toxins -= round(water_added/4) + toxins -= floor(water_added/4) temp_chem_holder.reagents.clear_reagents() check_level_sanity() @@ -390,7 +390,7 @@ overlays += "[seed.plant_icon]-harvest" else if(age < seed.maturation) - var/t_growthstate = round(age/seed.maturation * seed.growth_stages) + var/t_growthstate = floor(age/seed.maturation * seed.growth_stages) overlays += "[seed.plant_icon]-grow[t_growthstate]" lastproduce = age else @@ -414,7 +414,7 @@ // Update bioluminescence. if(seed) if(seed.biolum) - set_light(round(seed.potency/10)) + set_light(floor(seed.potency/10)) return set_light(0) @@ -448,7 +448,7 @@ return // Check if we should even bother working on the current seed datum. - if(seed.mutants && seed.mutants.len && severity > 1) + if(LAZYLEN(seed.mutants) && severity > 1) mutate_species() return @@ -577,7 +577,7 @@ dead = 0 age = 1 //Snowflakey, maybe move this to the seed datum - plant_health = (istype(S, /obj/item/seeds/cutting) ? round(seed.endurance/rand(2,5)) : seed.endurance) + plant_health = (istype(S, /obj/item/seeds/cutting) ? floor(seed.endurance/rand(2,5)) : seed.endurance) lastcycle = world.time diff --git a/code/modules/hydroponics/seed_datums.dm b/code/modules/hydroponics/seed_datums.dm index 04339f77c9bc..033bad3681d0 100644 --- a/code/modules/hydroponics/seed_datums.dm +++ b/code/modules/hydroponics/seed_datums.dm @@ -27,7 +27,7 @@ GLOBAL_LIST_EMPTY(gene_tag_masks) // Gene obfuscation for delicious trial and for(var/type in typesof(/datum/seed)-/datum/seed) var/datum/seed/S = new type GLOB.seed_types[S.name] = S - S.uid = "[GLOB.seed_types.len]" + S.uid = "[length(GLOB.seed_types)]" S.roundstart = 1 // Make sure any seed packets that were mapped in are updated @@ -45,7 +45,7 @@ GLOBAL_LIST_EMPTY(gene_tag_masks) // Gene obfuscation for delicious trial and var/list/gene_tags = list("products","consumption","environment","resistance","vigour","flowers") var/list/used_masks = list() - while(gene_tags && gene_tags.len) + while(LAZYLEN(gene_tags)) var/gene_tag = pick(gene_tags) var/gene_mask = "[num2hex(rand(0,255))] - [gene_tag]" @@ -111,13 +111,13 @@ GLOBAL_LIST_EMPTY(gene_tag_masks) // Gene obfuscation for delicious trial and // Cosmetics. var/plant_icon // Icon to use for the plant growing in the tray. var/product_icon // Base to use for fruit coming from this plant (if a vine). - var/product_colour // Color to apply to product base (if a vine). + var/product_color // Color to apply to product base (if a vine). var/packet_icon = "seed" // Icon to use for physical seed packet item. var/biolum // Plant is bioluminescent. - var/biolum_colour // The color of the plant's radiance. + var/biolum_color // The color of the plant's radiance. var/flowers // Plant has a flower overlay. var/flower_icon = "vine_fruit" // Which overlay to use. - var/flower_colour // Which color to use. + var/flower_color // Which color to use. //Creates a random seed. MAKE SURE THE LINE HAS DIVERGED BEFORE THIS IS CALLED. /datum/seed/proc/randomize() @@ -250,7 +250,7 @@ GLOBAL_LIST_EMPTY(gene_tag_masks) // Gene obfuscation for delicious trial and ) for(var/x=1;x<=additional_chems;x++) - if(!possible_chems.len) + if(!length(possible_chems)) break var/new_chem = pick(possible_chems) possible_chems -= new_chem @@ -301,7 +301,7 @@ GLOBAL_LIST_EMPTY(gene_tag_masks) // Gene obfuscation for delicious trial and if(prob(5)) biolum = 1 - biolum_colour = "#[pick(list("FF0000","FF7F00","FFFF00","00FF00","0000FF","4B0082","8F00FF"))]" + biolum_color = "#[pick(list("FF0000","FF7F00","FFFF00","00FF00","0000FF","4B0082","8F00FF"))]" endurance = rand(60,100) yield = rand(3,15) @@ -311,7 +311,7 @@ GLOBAL_LIST_EMPTY(gene_tag_masks) // Gene obfuscation for delicious trial and //Returns a key corresponding to an entry in the global seed list. /datum/seed/proc/get_mutant_variant() - if(!mutants || !mutants.len || immutable > 0) return 0 + if(!LAZYLEN(mutants) || immutable > 0) return 0 return pick(mutants) //Mutates the plant overall (randomly). @@ -364,8 +364,8 @@ GLOBAL_LIST_EMPTY(gene_tag_masks) // Gene obfuscation for delicious trial and if(biolum) source_turf.visible_message(SPAN_NOTICE("\The [display_name] begins to glow!")) if(prob(degree*2)) - biolum_colour = "#[pick(list("FF0000","FF7F00","FFFF00","00FF00","0000FF","4B0082","8F00FF"))]" - source_turf.visible_message(SPAN_NOTICE("\The [display_name]'s glow changes color!")) + biolum_color = "#[pick(list("FF0000","FF7F00","FFFF00","00FF00","0000FF","4B0082","8F00FF"))]" + source_turf.visible_message(SPAN_NOTICE("\The [display_name]'s glow changes color!")) else source_turf.visible_message(SPAN_NOTICE("\The [display_name]'s glow dims...")) if(11) //Flowers? @@ -374,8 +374,8 @@ GLOBAL_LIST_EMPTY(gene_tag_masks) // Gene obfuscation for delicious trial and if(flowers) source_turf.visible_message(SPAN_NOTICE("\The [display_name] sprouts a bevy of flowers!")) if(prob(degree*2)) - flower_colour = "#[pick(list("FF0000","FF7F00","FFFF00","00FF00","0000FF","4B0082","8F00FF"))]" - source_turf.visible_message(SPAN_NOTICE("\The [display_name]'s flowers changes color!")) + flower_color = "#[pick(list("FF0000","FF7F00","FFFF00","00FF00","0000FF","4B0082","8F00FF"))]" + source_turf.visible_message(SPAN_NOTICE("\The [display_name]'s flowers changes color!")) else source_turf.visible_message(SPAN_NOTICE("\The [display_name]'s flowers wither and fall off.")) else //New chems! (20% chance) @@ -400,11 +400,11 @@ GLOBAL_LIST_EMPTY(gene_tag_masks) // Gene obfuscation for delicious trial and //Splicing products has some detrimental effects on yield and lifespan. if("products") - if(gene.values.len < 6) return + if(length(gene.values) < 6) return - if(yield > 0) yield = max(1,round(yield*0.85)) - if(endurance > 0) endurance = max(1,round(endurance*0.85)) - if(lifespan > 0) lifespan = max(1,round(lifespan*0.85)) + if(yield > 0) yield = max(1,floor(yield*0.85)) + if(endurance > 0) endurance = max(1,floor(endurance*0.85)) + if(lifespan > 0) lifespan = max(1,floor(lifespan*0.85)) if(!products) products = list() products |= gene.values[1] @@ -420,12 +420,12 @@ GLOBAL_LIST_EMPTY(gene_tag_masks) // Gene obfuscation for delicious trial and chems[rid] = gene_chem.Copy() continue - for(var/i=1;i<=gene_chem.len;i++) + for(var/i=1;i<=length(gene_chem);i++) if(isnull(gene_chem[i])) gene_chem[i] = 0 if(chems[rid][i]) - chems[rid][i] = max(1,round((gene_chem[i] + chems[rid][i])/2)) + chems[rid][i] = max(1,floor((gene_chem[i] + chems[rid][i])/2)) else chems[rid][i] = gene_chem[i] @@ -434,7 +434,7 @@ GLOBAL_LIST_EMPTY(gene_tag_masks) // Gene obfuscation for delicious trial and if(!exude_gasses) exude_gasses = list() exude_gasses |= new_gasses for(var/gas in exude_gasses) - exude_gasses[gas] = max(1,round(exude_gasses[gas]*0.8)) + exude_gasses[gas] = max(1,floor(exude_gasses[gas]*0.8)) alter_temp = gene.values[4] potency = gene.values[5] @@ -442,7 +442,7 @@ GLOBAL_LIST_EMPTY(gene_tag_masks) // Gene obfuscation for delicious trial and if("consumption") - if(gene.values.len < 7) return + if(length(gene.values) < 7) return consume_gasses = gene.values[1] requires_nutrients = gene.values[2] @@ -454,7 +454,7 @@ GLOBAL_LIST_EMPTY(gene_tag_masks) // Gene obfuscation for delicious trial and if("environment") - if(gene.values.len < 6) return + if(length(gene.values) < 6) return ideal_heat = gene.values[1] heat_tolerance = gene.values[2] @@ -465,7 +465,7 @@ GLOBAL_LIST_EMPTY(gene_tag_masks) // Gene obfuscation for delicious trial and if("resistance") - if(gene.values.len < 3) return + if(length(gene.values) < 3) return toxins_tolerance = gene.values[1] pest_tolerance = gene.values[2] @@ -473,7 +473,7 @@ GLOBAL_LIST_EMPTY(gene_tag_masks) // Gene obfuscation for delicious trial and if("vigour") - if(gene.values.len < 6) return + if(length(gene.values) < 6) return endurance = gene.values[1] yield = gene.values[2] @@ -484,15 +484,15 @@ GLOBAL_LIST_EMPTY(gene_tag_masks) // Gene obfuscation for delicious trial and if("flowers") - if(gene.values.len < 7) return + if(length(gene.values) < 7) return product_icon = gene.values[1] - product_colour = gene.values[2] + product_color = gene.values[2] biolum = gene.values[3] - biolum_colour = gene.values[4] + biolum_color = gene.values[4] flowers = gene.values[5] flower_icon = gene.values[6] - flower_colour = gene.values[7] + flower_color = gene.values[7] //Returns a list of the desired trait values. /datum/seed/proc/get_gene(genetype) @@ -554,12 +554,12 @@ GLOBAL_LIST_EMPTY(gene_tag_masks) // Gene obfuscation for delicious trial and if("flowers") P.values = list( (product_icon ? product_icon : 0), - (product_colour ? product_colour : 0), + (product_color ? product_color : 0), (biolum ? biolum : 0), - (biolum_colour ? biolum_colour : 0), + (biolum_color ? biolum_color : 0), (flowers ? flowers : 0), (flower_icon ? flower_icon : 0), - (flower_colour ? flower_colour : 0) + (flower_color ? flower_color : 0) ) return (P ? P : 0) @@ -571,7 +571,7 @@ GLOBAL_LIST_EMPTY(gene_tag_masks) // Gene obfuscation for delicious trial and return var/got_product - if(!isnull(products) && products.len && yield > 0) + if(LAZYLEN(products) && yield > 0) got_product = 1 if(!got_product && !harvest_sample) @@ -581,7 +581,7 @@ GLOBAL_LIST_EMPTY(gene_tag_masks) // Gene obfuscation for delicious trial and //This may be a new line. Update the global if it is. if(name == "new line" || !(name in GLOB.seed_types)) - uid = GLOB.seed_types.len + 1 + uid = length(GLOB.seed_types) + 1 name = "[uid]" GLOB.seed_types[name] = src @@ -673,10 +673,10 @@ GLOBAL_LIST_EMPTY(gene_tag_masks) // Gene obfuscation for delicious trial and new_seed.parasite = parasite new_seed.plant_icon = plant_icon new_seed.product_icon = product_icon - new_seed.product_colour = product_colour + new_seed.product_color = product_color new_seed.packet_icon = packet_icon new_seed.biolum = biolum - new_seed.biolum_colour = biolum_colour + new_seed.biolum_color = biolum_color new_seed.flowers = flowers new_seed.flower_icon = flower_icon new_seed.alter_temp = alter_temp @@ -1099,7 +1099,7 @@ GLOBAL_LIST_EMPTY(gene_tag_masks) // Gene obfuscation for delicious trial and potency = 30 growth_stages = 4 biolum = 1 - biolum_colour = "#006622" + biolum_color = "#006622" /datum/seed/mushroom/plastic name = "plastic" @@ -1551,7 +1551,7 @@ GLOBAL_LIST_EMPTY(gene_tag_masks) // Gene obfuscation for delicious trial and packet_icon = "seed-kudzu" products = list(/obj/item/reagent_container/food/snacks/grown/kudzupod) plant_icon = "kudzu" - product_colour = "#96D278" + product_color = "#96D278" chems = list("plantmatter" = list(1,50), "anti_toxin" = list(1,25)) lifespan = 20 diff --git a/code/modules/hydroponics/seed_machines/seed_editor.dm b/code/modules/hydroponics/seed_machines/seed_editor.dm index 37e25fb3508a..bfc059188d85 100644 --- a/code/modules/hydroponics/seed_machines/seed_editor.dm +++ b/code/modules/hydroponics/seed_machines/seed_editor.dm @@ -17,7 +17,7 @@ data["disk"] = loaded_disk - if(loaded_disk && loaded_disk.genes.len) + if(loaded_disk && length(loaded_disk.genes)) data["sourceName"] = loaded_disk.genesource for(var/datum/plantgene/P in loaded_disk.genes) diff --git a/code/modules/hydroponics/seed_machines/seed_machines.dm b/code/modules/hydroponics/seed_machines/seed_machines.dm index ad3fbed4625f..4bb07f590f4b 100644 --- a/code/modules/hydroponics/seed_machines/seed_machines.dm +++ b/code/modules/hydroponics/seed_machines/seed_machines.dm @@ -31,7 +31,7 @@ seed.forceMove(get_turf(src)) if(seed.seed.name == "new line" || isnull(GLOB.seed_types[seed.seed.name])) - seed.seed.uid = GLOB.seed_types.len + 1 + seed.seed.uid = length(GLOB.seed_types) + 1 seed.seed.name = "[seed.seed.uid]" GLOB.seed_types[seed.seed.name] = seed.seed @@ -75,7 +75,7 @@ else var/obj/item/disk/botany/B = W - if(B.genes && B.genes.len) + if(LAZYLEN(B.genes)) if(!disk_needs_genes) to_chat(user, SPAN_WARNING("That disk already has gene data loaded.")) return diff --git a/code/modules/hydroponics/vines.dm b/code/modules/hydroponics/vines.dm index bfca73e8d01b..5e309919481c 100644 --- a/code/modules/hydroponics/vines.dm +++ b/code/modules/hydroponics/vines.dm @@ -138,7 +138,7 @@ if(seed.carnivorous == 2) to_chat(buckled_mob, SPAN_DANGER("\The [src] pierces your flesh greedily!")) - var/damage = rand(round(seed.potency/2),seed.potency) + var/damage = rand(floor(seed.potency/2),seed.potency) if(!istype(H)) H.apply_damage(damage, BRUTE) return @@ -156,7 +156,7 @@ H.updatehealth() // Inject some chems. - if(seed.chems && seed.chems.len && istype(H)) + if(LAZYLEN(seed.chems) && istype(H)) to_chat(H, SPAN_DANGER("You feel something seeping into your skin!")) for(var/rid in seed.chems) var/injecting = min(5,max(1,seed.potency/5)) @@ -167,7 +167,7 @@ // Update bioluminescence. if(seed.biolum) - set_light(1+round(seed.potency/10)) + set_light(1+floor(seed.potency/10)) return else set_light(0) @@ -175,20 +175,20 @@ // Update flower/product overlay. overlays.Cut() if(age >= seed.maturation) - if(prob(20) && seed.products && seed.products.len && !harvest && ((age-lastproduce) > seed.production)) + if(prob(20) && LAZYLEN(seed.products) && !harvest && ((age-lastproduce) > seed.production)) harvest = 1 lastproduce = age if(harvest) var/image/fruit_overlay = image('icons/obj/structures/machinery/hydroponics.dmi',"") - if(seed.product_colour) - fruit_overlay.color = seed.product_colour + if(seed.product_color) + fruit_overlay.color = seed.product_color overlays += fruit_overlay if(seed.flowers) var/image/flower_overlay = image('icons/obj/structures/machinery/hydroponics.dmi',"[seed.flower_icon]") - if(seed.flower_colour) - flower_overlay.color = seed.flower_colour + if(seed.flower_color) + flower_overlay.color = seed.flower_color overlays += flower_overlay /obj/effect/plantsegment/proc/spread() @@ -319,9 +319,9 @@ return // Check if we're too big for our own good. - if(vines.len >= (seed ? seed.potency * collapse_limit : 250) && !reached_collapse_size) + if(length(vines) >= (seed ? seed.potency * collapse_limit : 250) && !reached_collapse_size) reached_collapse_size = 1 - if(vines.len >= (seed ? seed.potency * slowdown_limit : 30) && !reached_slowdown_size ) + if(length(vines) >= (seed ? seed.potency * slowdown_limit : 30) && !reached_slowdown_size ) reached_slowdown_size = 1 var/length = 0 @@ -335,7 +335,7 @@ else length = 1 - length = min(30, max(length, vines.len/5)) + length = min(30, max(length, length(vines)/5)) // Update as many pieces of vine as we're allowed to. // Append updated vines to the end of the growth queue. diff --git a/code/modules/law/laws/precautionary_charge.dm b/code/modules/law/laws/precautionary_charge.dm index c06cd6ca5287..7be4cb2b2e65 100644 --- a/code/modules/law/laws/precautionary_charge.dm +++ b/code/modules/law/laws/precautionary_charge.dm @@ -10,7 +10,7 @@ /datum/law/precautionary_charge/insanity name = "Insanity" - desc = "Acting in such a manner which makes the offender not sound clear of mind. The CMO or Synthetic can declare insanity on a Marine if the Marine is believed to not be of sound mind. The Marine once cleared to be of sound mind may be released from this particular charge." + desc = "Acting in such a manner which makes the offender not sound clear of mind. The subject, once cleared to be of sound mind, may be released from this particular charge. Excepting in cases of Suicide/Attempted Suicide, only the CMO/Synthetic may declare someone insane." /datum/law/precautionary_charge/prisoner_of_war name = "Prisoner of War" diff --git a/code/modules/lighting/lighting_atom.dm b/code/modules/lighting/lighting_atom.dm index 2abe8c598032..edc5f4baf880 100644 --- a/code/modules/lighting/lighting_atom.dm +++ b/code/modules/lighting/lighting_atom.dm @@ -112,14 +112,14 @@ /atom/proc/flash_lighting_fx( _range = FLASH_LIGHT_RANGE, _power = FLASH_LIGHT_POWER, - _color = LIGHT_COLOR_WHITE, + _color = COLOR_WHITE, _duration = FLASH_LIGHT_DURATION, _reset_lighting = TRUE, _flash_times = 1) new /obj/effect/light_flash(get_turf(src), _range, _power, _color, _duration, _flash_times) -/obj/effect/light_flash/Initialize(mapload, _range = FLASH_LIGHT_RANGE, _power = FLASH_LIGHT_POWER, _color = LIGHT_COLOR_WHITE, _duration = FLASH_LIGHT_DURATION, _flash_times = 1) +/obj/effect/light_flash/Initialize(mapload, _range = FLASH_LIGHT_RANGE, _power = FLASH_LIGHT_POWER, _color = COLOR_WHITE, _duration = FLASH_LIGHT_DURATION, _flash_times = 1) light_range = _range light_power = _power light_color = _color diff --git a/code/modules/lighting/lighting_mask/lighting_mask.dm b/code/modules/lighting/lighting_mask/lighting_mask.dm index bf824033adfb..c1276d19dab0 100644 --- a/code/modules/lighting/lighting_mask/lighting_mask.dm +++ b/code/modules/lighting/lighting_mask/lighting_mask.dm @@ -69,7 +69,7 @@ // - Center the overlay image // - Ok so apparently translate is affected by the scale we already did huh. // ^ Future me here, its because it works as translate then scale since its backwards. - // ^ ^ Future future me here, it totally shouldnt since the translation component of a matrix is independant to the scale component. + // ^ ^ Future future me here, it totally shouldnt since the translation component of a matrix is independent to the scale component. new_size_matrix.Translate(-128 + 16) //Adjust for pixel offsets var/invert_offsets = attached_atom.dir & (NORTH | EAST) diff --git a/code/modules/lighting/lighting_mask/shadow_calculator.dm b/code/modules/lighting/lighting_mask/shadow_calculator.dm index 42f98b47e789..480b4d534fbb 100644 --- a/code/modules/lighting/lighting_mask/shadow_calculator.dm +++ b/code/modules/lighting/lighting_mask/shadow_calculator.dm @@ -95,7 +95,7 @@ SSlighting.total_shadow_calculations ++ //Ceiling the range since we need it in integer form - var/range = CEILING(radius, 1) + var/range = ceil(radius) DO_SOMETHING_IF_DEBUGGING_SHADOWS(var/timer = TICK_USAGE) //Work out our position diff --git a/code/modules/lighting/lighting_static/static_lighting_source.dm b/code/modules/lighting/lighting_static/static_lighting_source.dm index e650a432fc63..872f37bce24d 100644 --- a/code/modules/lighting/lighting_static/static_lighting_source.dm +++ b/code/modules/lighting/lighting_static/static_lighting_source.dm @@ -113,7 +113,7 @@ //Cubic lighting falloff. This has the *exact* same range as the original lighting falloff calculation, down to the exact decimal, but it looks a little unnatural due to the harsher falloff and how it's generally brighter across the board. //#define LUM_FALLOFF(C, T) (1 - CLAMP01((((C.x - T.x) * (C.x - T.x)) + ((C.y - T.y) * (C.y - T.y)) + LIGHTING_HEIGHT) / max(1, light_range*light_range))) -//Linear lighting falloff. This resembles the original lighting falloff calculation the best, but results in lights having a slightly larger range, which is most noticable with large light sources. This also results in lights being diamond-shaped, fuck. This looks the darkest out of the three due to how lights are brighter closer to the source compared to the original falloff algorithm. This falloff method also does not at all take into account lighting height, as it acts as a flat reduction to light range with this method. +//Linear lighting falloff. This resembles the original lighting falloff calculation the best, but results in lights having a slightly larger range, which is most noticeable with large light sources. This also results in lights being diamond-shaped, fuck. This looks the darkest out of the three due to how lights are brighter closer to the source compared to the original falloff algorithm. This falloff method also does not at all take into account lighting height, as it acts as a flat reduction to light range with this method. //#define LUM_FALLOFF(C, T) (1 - CLAMP01(((abs(C.x - T.x) + abs(C.y - T.y))) / max(1, light_range+1))) //Linear lighting falloff but with an octagonal shape in place of a diamond shape. Lummox JR please add pointer support. @@ -223,8 +223,8 @@ var/list/turf/turfs = list() if (source_turf) var/oldlum = source_turf.luminosity - source_turf.luminosity = CEILING(light_range, 1) - for(var/turf/T in view(CEILING(light_range, 1), source_turf)) + source_turf.luminosity = ceil(light_range) + for(var/turf/T in view(ceil(light_range), source_turf)) if(!IS_OPAQUE_TURF(T)) if (!T.lighting_corners_initialised) T.static_generate_missing_corners() diff --git a/code/modules/lighting/lighting_static/static_lighting_turf.dm b/code/modules/lighting/lighting_static/static_lighting_turf.dm index 2fe918fa88bb..ec91e17e4fca 100644 --- a/code/modules/lighting/lighting_static/static_lighting_turf.dm +++ b/code/modules/lighting/lighting_static/static_lighting_turf.dm @@ -31,7 +31,8 @@ return !(luminosity || dynamic_lumcount) -/turf/proc/change_area(area/old_area, area/new_area) +///Transfer the lighting of one area to another +/turf/proc/transfer_area_lighting(area/old_area, area/new_area) if(SSlighting.initialized) if (new_area.static_lighting != old_area.static_lighting) if (new_area.static_lighting) @@ -44,6 +45,8 @@ if(new_area.lighting_effect) overlays += new_area.lighting_effect + + /turf/proc/static_generate_missing_corners() if (!lighting_corner_NE) lighting_corner_NE = new/datum/static_lighting_corner(src, NORTH|EAST) diff --git a/code/modules/logging/global_logs.dm b/code/modules/logging/global_logs.dm index ff384fe537c0..3fbcb70a1a8d 100644 --- a/code/modules/logging/global_logs.dm +++ b/code/modules/logging/global_logs.dm @@ -25,8 +25,11 @@ GLOBAL_PROTECT(world_runtime_log) GLOBAL_VAR(scheduler_stats) GLOBAL_PROTECT(scheduler_stats) -GLOBAL_VAR(mutator_logs) -GLOBAL_PROTECT(mutator_logs) +GLOBAL_VAR(strain_logs) +GLOBAL_PROTECT(strain_logs) + +GLOBAL_VAR(mapping_log) +GLOBAL_PROTECT(mapping_log) GLOBAL_VAR(round_stats) GLOBAL_PROTECT(round_stats) diff --git a/code/modules/mapping/map_template.dm b/code/modules/mapping/map_template.dm index 35f7d30a9732..ff72ea2e1d1b 100644 --- a/code/modules/mapping/map_template.dm +++ b/code/modules/mapping/map_template.dm @@ -7,6 +7,20 @@ var/datum/parsed_map/cached_map var/keep_cached_map = FALSE + ///Default area associated with the map template + var/default_area + + ///if true, turfs loaded from this template are placed on top of the turfs already there, defaults to TRUE + var/should_place_on_top = TRUE + + ///if true, creates a list of all atoms created by this template loading, defaults to FALSE + var/returns_created_atoms = FALSE + + ///the list of atoms created by this template being loaded, only populated if returns_created_atoms is TRUE + var/list/created_atoms = list() + //make sure this list is accounted for/cleared if you request it from ssatoms! + + /datum/map_template/New(path = null, rename = null, cache = FALSE) if(path) mappath = path @@ -25,78 +39,122 @@ cached_map = parsed return bounds -/datum/parsed_map/proc/initTemplateBounds() - var/list/obj/structure/cable/cables = list() - var/list/atom/atoms = list() - var/list/area/areas = list() +/datum/map_template/proc/initTemplateBounds(list/bounds) + if (!bounds) //something went wrong + stack_trace("[name] template failed to initialize correctly!") + return - var/list/turfs = block( locate(bounds[MAP_MINX], bounds[MAP_MINY], bounds[MAP_MINZ]), - locate(bounds[MAP_MAXX], bounds[MAP_MAXY], bounds[MAP_MAXZ])) - for(var/L in turfs) - var/turf/B = L - atoms += B - areas |= B.loc - for(var/A in B) - atoms += A - if(istype(A, /obj/structure/cable)) - cables += A - continue + var/list/atom/movable/movables = list() + var/list/obj/docking_port/stationary/ports = list() + var/list/area/areas = list() + var/list/turfs = block(bounds[MAP_MINX], bounds[MAP_MINY], bounds[MAP_MINZ], bounds[MAP_MAXX], bounds[MAP_MAXY], bounds[MAP_MAXZ]) + for(var/turf/current_turf as anything in turfs) + var/area/current_turfs_area = current_turf.loc + areas |= current_turfs_area + if(!SSatoms.initialized) + continue + + for(var/movable_in_turf in current_turf) + if(istype(movable_in_turf, /obj/docking_port/mobile)) + continue // mobile docking ports need to be initialized after their template has finished loading, to ensure that their bounds are setup + movables += movable_in_turf + if(istype(movable_in_turf, /obj/docking_port/stationary)) + ports += movable_in_turf + + // Not sure if there is some importance here to make sure the area is in z + // first or not. Its defined In Initialize yet its run first in templates + // BEFORE so... hummm SSmapping.reg_in_areas_in_z(areas) - SSatoms.InitializeAtoms(atoms) - //SSmachines.setup_template_powernets(cables) // mapping TODO: - -/datum/map_template/proc/load_new_z() - var/x = round((world.maxx - width)/2) - var/y = round((world.maxy - height)/2) + if(!SSatoms.initialized) + return - var/datum/space_level/level = SSmapping.add_new_zlevel(name, list(ZTRAIT_AWAY = TRUE)) - var/datum/parsed_map/parsed = load_map(file(mappath), x, y, level.z_value, no_changeturf=(SSatoms.initialized == INITIALIZATION_INSSATOMS), placeOnTop=TRUE) + SSatoms.InitializeAtoms(areas + turfs + movables, returns_created_atoms ? created_atoms : null) + + for(var/turf/unlit as anything in turfs) + var/area/loc_area = unlit.loc + if(!loc_area.static_lighting) + continue + unlit.static_lighting_build_overlay() + +/datum/map_template/proc/load_new_z(secret = FALSE) + var/x = floor((world.maxx - width) * 0.5) + 1 + var/y = floor((world.maxy - height) * 0.5) + 1 + + var/datum/space_level/level = SSmapping.add_new_zlevel(name, list(), contain_turfs = FALSE) + var/datum/parsed_map/parsed = load_map( + file(mappath), + x, + y, + level.z_value, + no_changeturf = (SSatoms.initialized == INITIALIZATION_INSSATOMS), + place_on_top = should_place_on_top, + new_z = TRUE, + ) var/list/bounds = parsed.bounds if(!bounds) return FALSE repopulate_sorted_areas() - //initialize things that are normally initialized after map load - parsed.initTemplateBounds() - log_game("Z-level [name] loaded at at [x],[y],[world.maxz]") + initTemplateBounds(bounds) + log_game("Z-level [name] loaded at [x],[y],[world.maxz]") return level -/datum/map_template/proc/load(turf/T, centered, delete) +/datum/map_template/proc/load(turf/T, centered = FALSE, delete = FALSE) if(centered) - T = locate(T.x - round(width/2) , T.y - round(height/2) , T.z) + T = locate(T.x - floor(width/2) , T.y - floor(height/2) , T.z) if(!T) return - if(T.x + width > world.maxx) + if((T.x+width) - 1 > world.maxx) return - if(T.y + height > world.maxy) + if((T.y+height) - 1 > world.maxy) return // Accept cached maps, but don't save them automatically - we don't want // ruins clogging up memory for the whole round. var/datum/parsed_map/parsed = cached_map || new(file(mappath)) cached_map = keep_cached_map ? parsed : null - if(!parsed.load(T.x, T.y, T.z, cropMap = TRUE, no_changeturf = (SSatoms.initialized == INITIALIZATION_INSSATOMS), placeOnTop = TRUE, delete = delete)) + + var/list/turf_blacklist = list() + update_blacklist(T, turf_blacklist) + + UNSETEMPTY(turf_blacklist) + parsed.turf_blacklist = turf_blacklist + if(!parsed.load( + T.x, + T.y, + T.z, + crop_map = TRUE, + no_changeturf = (SSatoms.initialized == INITIALIZATION_INSSATOMS), + place_on_top = should_place_on_top, + delete = delete + )) return + var/list/bounds = parsed.bounds if(!bounds) return + repopulate_sorted_areas() + //initialize things that are normally initialized after map load - parsed.initTemplateBounds() + initTemplateBounds(bounds) - log_game("[name] loaded at at [T.x],[T.y],[T.z]") + log_game("[name] loaded at [T.x],[T.y],[T.z]") return bounds +/datum/map_template/proc/post_load() + return + +/datum/map_template/proc/update_blacklist(turf/T, list/input_blacklist) + return + /datum/map_template/proc/get_affected_turfs(turf/T, centered = FALSE) - var/turf/placement = T if(centered) - var/turf/corner = locate(placement.x - round(width/2), placement.y - round(height/2), placement.z) - if(corner) - placement = corner - return block(placement, locate(placement.x+width-1, placement.y+height-1, placement.z)) + return RECT_TURFS(floor(width / 2), floor(height / 2), T) + return CORNER_BLOCK(T, width, height) //for your ever biggening badminnery kevinz000 diff --git a/code/modules/mapping/preloader.dm b/code/modules/mapping/preloader.dm index e8eee898a711..3f03522a2463 100644 --- a/code/modules/mapping/preloader.dm +++ b/code/modules/mapping/preloader.dm @@ -1,33 +1,42 @@ // global datum that will preload variables on atoms instanciation GLOBAL_VAR_INIT(use_preloader, FALSE) -GLOBAL_DATUM_INIT(_preloader, /datum/map_preloader, new) +GLOBAL_LIST_INIT(_preloader_attributes, null) +GLOBAL_LIST_INIT(_preloader_path, null) /// Preloader datum /datum/map_preloader - parent_type = /datum var/list/attributes var/target_path -/datum/map_preloader/proc/setup(list/the_attributes, path) - if(the_attributes.len) +/world/proc/preloader_setup(list/the_attributes, path) + if(length(the_attributes)) GLOB.use_preloader = TRUE - attributes = the_attributes - target_path = path + GLOB._preloader_attributes = the_attributes + GLOB._preloader_path = path -/datum/map_preloader/proc/load(atom/what) +/world/proc/preloader_load(atom/what) GLOB.use_preloader = FALSE + var/list/attributes = GLOB._preloader_attributes for(var/attribute in attributes) var/value = attributes[attribute] if(islist(value)) - value = deepCopyList(value) + value = deep_copy_list(value) + #ifdef TESTING + if(what.vars[attribute] == value) + var/message = "[what.type] at [AREACOORD(what)] - VAR: [attribute] = [isnull(value) ? "null" : (isnum(value) ? value : "\"[value]\"")]" + log_mapping("DIRTY VAR: [message]") + GLOB.dirty_vars += message + #endif what.vars[attribute] = value -/// Area passthrough: do not instanciate a new area, reuse the current one +/// Template noop (no operation) is used to skip a turf or area when the template is loaded this allows for template transparency +/// ex. if a ship has gaps in it's design, you would use template_noop to fill these in so that when the ship moves z-level, any +/// tiles these gaps land on will not be deleted and replaced with the ships (empty) tiles /area/template_noop name = "Area Passthrough" icon_state = "noop" -/// Turf passthrough: do not instanciate a new turf, reuse the current one +/// See above explanation /turf/template_noop name = "Turf Passthrough" icon_state = "noop" diff --git a/code/modules/mapping/reader.dm b/code/modules/mapping/reader.dm index 969dc6a795f8..d15e478f9488 100644 --- a/code/modules/mapping/reader.dm +++ b/code/modules/mapping/reader.dm @@ -1,7 +1,67 @@ /////////////////////////////////////////////////////////////// //SS13 Optimized Map loader ////////////////////////////////////////////////////////////// -#define SPACE_KEY "space" +// We support two different map formats +// It is kinda possible to process them together, but if we split them up +// I can make optimization decisions more easily +/** + * DMM SPEC: + * DMM is split into two parts. First we have strings of text linked to lists of paths and their modifications (I will call this the cache) + * We call these strings "keys" and the things they point to members. Keys have a static length + * + * The second part is a list of locations matched to a string of keys. (I'll be calling this the grid) + * These are used to lookup the cache we built earlier. + * We store location lists as grid_sets. the lines represent different things depending on the spec + * + * In standard DMM (which you can treat as the base case, since it also covers weird modifications) each line + * represents an x file, and there's typically only one grid set per z level. + * The meme is you can look at a DMM formatted map and literally see what it should roughly look like + * This differs in TGM, and we can pull some performance from this + * + * Any restrictions here also apply to TGM + * + * /tg/ Restrictions: + * Paths have a specified order. First atoms in the order in which they should be loaded, then a single turf, then the area of the cell + * DMM technically supports turf stacking, but this is deprecated for all formats + + */ +#define MAP_DMM "dmm" +/** + * TGM SPEC: + * TGM is a derevation of DMM, with restrictions placed on it + * to make it easier to parse and to reduce merge conflicts/ease their resolution + * + * Requirements: + * Each "statement" in a key's details ends with a new line, and wrapped in (...) + * All paths end with either a comma or occasionally a {, then a new line + * Excepting the area, who is listed last and ends with a ) to mark the end of the key + * + * {} denotes a list of variable edits applied to the path that came before the first { + * the final } is followed by a comma, and then a new line + * Variable edits have the form \tname = value;\n + * Except the last edit, which has no final ;, and just ends in a newline + * No extra padding is permitted + * Many values are supported. See parse_constant() + * Strings must be wrapped in "...", files in '...', and lists in list(...) + * Files are kinda susy, and may not actually work. buyer beware + * Lists support assoc values as expected + * These constants can be further embedded into lists + * + * There can be no padding in front of, or behind a path + * + * Therefore: + * "key" = ( + * /path, + * /other/path{ + * var = list("name" = 'filepath'); + * other_var = /path + * }, + * /turf, + * /area) + * + */ +#define MAP_TGM "tgm" +#define MAP_UNKNOWN "unknown" /datum/grid_set var/xcrd @@ -11,9 +71,20 @@ /datum/parsed_map var/original_path + var/map_format + /// The length of a key in this file. This is promised by the standard to be static var/key_len = 0 + /// The length of a line in this file. Not promised by dmm but standard dmm uses it, so we can trust it + var/line_len = 0 + /// If we've expanded world.maxx + var/expanded_y = FALSE + /// If we've expanded world.maxy + var/expanded_x = FALSE var/list/grid_models = list() var/list/gridSets = list() + /// List of area types we've loaded AS A PART OF THIS MAP + /// We do this to allow non unique areas, so we'll only load one per map + var/list/area/loaded_areas = list() var/list/modelCache @@ -22,33 +93,97 @@ /// Offset bounds. Same as parsed_bounds until load(). var/list/bounds + ///any turf in this list is skipped inside of build_coordinate. Lazy assoc list + var/list/turf_blacklist + // raw strings used to represent regexes more accurately // '' used to avoid confusing syntax highlighting - var/static/regex/dmmRegex = new(@'"([a-zA-Z]+)" = \(((?:.|\n)*?)\)\n(?!\t)|\((\d+),(\d+),(\d+)\) = \{"([a-zA-Z\n]*)"\}', "g") - var/static/regex/trimQuotesRegex = new(@'^[\s\n]+"?|"?[\s\n]+$|^"|"$', "g") - var/static/regex/trimRegex = new(@'^[\s\n]+|[\s\n]+$', "g") + var/static/regex/dmm_regex = new(@'"([a-zA-Z]+)" = (?:\(\n|\()((?:.|\n)*?)\)\n(?!\t)|\((\d+),(\d+),(\d+)\) = \{"([a-zA-Z\n]*)"\}', "g") + /// Matches key formats in TMG (IE: newline after the \() + var/static/regex/matches_tgm = new(@'^"[A-z]*"[\s]*=[\s]*\([\s]*\n', "m") + /// Pulls out key value pairs for TGM + var/static/regex/var_edits_tgm = new(@'^\t([A-z]*) = (.*?);?$') + /// Pulls out model paths for DMM + var/static/regex/model_path = new(@'(\/[^\{]*?(?:\{.*?\})?)(?:,|$)', "g") + + /// If we are currently loading this map + var/loading = FALSE #ifdef TESTING var/turfsSkipped = 0 #endif -/// Shortcut function to parse a map and apply it to the world. -/// -/// - `dmm_file`: A .dmm file to load (Required). -/// - `x_offset`, `y_offset`, `z_offset`: Positions representign where to load the map (Optional). -/// - `cropMap`: When true, the map will be cropped to fit the existing world dimensions (Optional). -/// - `measureOnly`: When true, no changes will be made to the world (Optional). -/// - `no_changeturf`: When true, [turf/AfterChange] won't be called on loaded turfs -/// - `x_lower`, `x_upper`, `y_lower`, `y_upper`: Coordinates (relative to the map) to crop to (Optional). -/// - `placeOnTop`: Whether to use [turf/PlaceOnTop] rather than [turf/ChangeTurf] (Optional). -/proc/load_map(dmm_file as file, x_offset as num, y_offset as num, z_offset as num, cropMap as num, measureOnly as num, no_changeturf as num, x_lower = -INFINITY as num, x_upper = INFINITY as num, y_lower = -INFINITY as num, y_upper = INFINITY as num, placeOnTop = FALSE as num) - var/datum/parsed_map/parsed = new(dmm_file, x_lower, x_upper, y_lower, y_upper, measureOnly) - if(parsed.bounds && !measureOnly) - parsed.load(x_offset, y_offset, z_offset, cropMap, no_changeturf, x_lower, x_upper, y_lower, y_upper, placeOnTop) - return parsed +/datum/parsed_map/proc/copy() + // Avoids duped work just in case + build_cache() + var/datum/parsed_map/newfriend = new() + newfriend.original_path = original_path + newfriend.map_format = map_format + newfriend.key_len = key_len + newfriend.line_len = line_len + newfriend.grid_models = grid_models.Copy() + newfriend.gridSets = gridSets.Copy() + newfriend.modelCache = modelCache.Copy() + newfriend.parsed_bounds = parsed_bounds.Copy() + // Copy parsed bounds to reset to initial values + newfriend.bounds = parsed_bounds.Copy() + newfriend.turf_blacklist = turf_blacklist?.Copy() + return newfriend + +//text trimming (both directions) helper macro +#define TRIM_TEXT(text) (trim_reduced(text)) + +/** + * Helper and recommened way to load a map file + * - dmm_file: The path to the map file + * - x_offset: The x offset to load the map at + * - y_offset: The y offset to load the map at + * - z_offset: The z offset to load the map at + * - crop_map: If true, the map will be cropped to the world bounds + * - measure_only: If true, the map will not be loaded, but the bounds will be calculated + * - no_changeturf: If true, the map will not call /turf/AfterChange + * - x_lower: The minimum x coordinate to load + * - x_upper: The maximum x coordinate to load + * - y_lower: The minimum y coordinate to load + * - y_upper: The maximum y coordinate to load + * - z_lower: The minimum z coordinate to load + * - z_upper: The maximum z coordinate to load + * - place_on_top: Whether to use /turf/proc/PlaceOnTop rather than /turf/proc/ChangeTurf + * - new_z: If true, a new z level will be created for the map + * - delete: CM/TGMC addition, if we need to manually clear turf contents before spawning stuff + */ +/proc/load_map( + dmm_file, + x_offset = 0, + y_offset = 0, + z_offset = 0, + crop_map = FALSE, + measure_only = FALSE, + no_changeturf = FALSE, + x_lower = -INFINITY, + x_upper = INFINITY, + y_lower = -INFINITY, + y_upper = INFINITY, + z_lower = -INFINITY, + z_upper = INFINITY, + place_on_top = FALSE, + new_z = FALSE, + delete = FALSE, +) + if(!(dmm_file in GLOB.cached_maps)) + GLOB.cached_maps[dmm_file] = new /datum/parsed_map(dmm_file) + + var/datum/parsed_map/parsed_map = GLOB.cached_maps[dmm_file] + parsed_map = parsed_map.copy() + if(!measure_only && !isnull(parsed_map.bounds)) + parsed_map.load(x_offset, y_offset, z_offset, crop_map, no_changeturf, x_lower, x_upper, y_lower, y_upper, z_lower, z_upper, place_on_top, new_z, delete) + return parsed_map /// Parse a map, possibly cropping it. -/datum/parsed_map/New(tfile, x_lower = -INFINITY, x_upper = INFINITY, y_lower = -INFINITY, y_upper=INFINITY, measureOnly=FALSE) +/datum/parsed_map/New(tfile, x_lower = -INFINITY, x_upper = INFINITY, y_lower = -INFINITY, y_upper=INFINITY, z_lower = -INFINITY, z_upper=INFINITY, measureOnly=FALSE) + // This proc sleeps for like 6 seconds. why? + // Is it file accesses? if so, can those be done ahead of time, async to save on time here? I wonder. + // Love ya :) if(isfile(tfile)) original_path = "[tfile]" tfile = file2text(tfile) @@ -56,16 +191,30 @@ // create a new datum without loading a map return - bounds = parsed_bounds = list(1.#INF, 1.#INF, 1.#INF, -1.#INF, -1.#INF, -1.#INF) - var/stored_index = 1 + src.bounds = parsed_bounds = list(1.#INF, 1.#INF, 1.#INF, -1.#INF, -1.#INF, -1.#INF) + + if(findtext(tfile, matches_tgm)) + map_format = MAP_TGM + else + map_format = MAP_DMM // Fallback + + // lists are structs don't you know :) + var/list/bounds = src.bounds + var/list/grid_models = src.grid_models + var/key_len = src.key_len + var/line_len = src.line_len + var/stored_index = 1 + var/list/regexOutput //multiz lool - while(dmmRegex.Find(tfile, stored_index)) - stored_index = dmmRegex.next + while(dmm_regex.Find(tfile, stored_index)) + stored_index = dmm_regex.next + // Datum var lookup is expensive, this isn't + regexOutput = dmm_regex.group // "aa" = (/type{vars=blah}) - if(dmmRegex.group[1]) // Model - var/key = dmmRegex.group[1] + if(regexOutput[1]) // Model + var/key = regexOutput[1] if(grid_models[key]) // Duplicate model keys are ignored in DMMs continue if(key_len != length(key)) @@ -74,328 +223,773 @@ else CRASH("Inconsistent key length in DMM") if(!measureOnly) - grid_models[key] = dmmRegex.group[2] + grid_models[key] = regexOutput[2] // (1,1,1) = {"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"} - else if(dmmRegex.group[3]) // Coords + else if(regexOutput[3]) // Coords if(!key_len) CRASH("Coords before model definition in DMM") - var/curr_x = text2num(dmmRegex.group[3]) - + var/curr_x = text2num(regexOutput[3]) if(curr_x < x_lower || curr_x > x_upper) continue + var/curr_y = text2num(regexOutput[4]) + if(curr_y < y_lower || curr_y > y_upper) + continue + + var/curr_z = text2num(regexOutput[5]) + if(curr_z < z_lower || curr_z > z_upper) + continue + var/datum/grid_set/gridSet = new gridSet.xcrd = curr_x - //position of the currently processed square - gridSet.ycrd = text2num(dmmRegex.group[4]) - gridSet.zcrd = text2num(dmmRegex.group[5]) + gridSet.ycrd = curr_y + gridSet.zcrd = curr_z - bounds[MAP_MINX] = min(bounds[MAP_MINX], clamp(gridSet.xcrd, x_lower, x_upper)) - bounds[MAP_MINZ] = min(bounds[MAP_MINZ], gridSet.zcrd) - bounds[MAP_MAXZ] = max(bounds[MAP_MAXZ], gridSet.zcrd) + bounds[MAP_MINX] = min(bounds[MAP_MINX], curr_x) + bounds[MAP_MINZ] = min(bounds[MAP_MINZ], curr_y) + bounds[MAP_MAXZ] = max(bounds[MAP_MAXZ], curr_z) - var/list/gridLines = splittext(dmmRegex.group[6], "\n") + var/list/gridLines = splittext(regexOutput[6], "\n") gridSet.gridLines = gridLines var/leadingBlanks = 0 - while(leadingBlanks < gridLines.len && gridLines[++leadingBlanks] == "") + while(leadingBlanks < length(gridLines) && gridLines[++leadingBlanks] == "") if(leadingBlanks > 1) gridLines.Cut(1, leadingBlanks) // Remove all leading blank lines. - if(!gridLines.len) // Skip it if only blank lines exist. + if(!length(gridLines)) // Skip it if only blank lines exist. continue gridSets += gridSet - if(gridLines.len && gridLines[gridLines.len] == "") - gridLines.Cut(gridLines.len) // Remove only one blank line at the end. + if(gridLines[length(gridLines)] == "") + gridLines.Cut(length(gridLines)) // Remove only one blank line at the end. + + bounds[MAP_MINY] = min(bounds[MAP_MINY], gridSet.ycrd) + gridSet.ycrd += length(gridLines) - 1 // Start at the top and work down + bounds[MAP_MAXY] = max(bounds[MAP_MAXY], gridSet.ycrd) - bounds[MAP_MINY] = min(bounds[MAP_MINY], clamp(gridSet.ycrd, y_lower, y_upper)) - gridSet.ycrd += gridLines.len - 1 // Start at the top and work down - bounds[MAP_MAXY] = max(bounds[MAP_MAXY], clamp(gridSet.ycrd, y_lower, y_upper)) + if(!line_len) + line_len = length(gridLines[1]) - var/maxx = gridSet.xcrd - if(gridLines.len) //Not an empty map - maxx = max(maxx, gridSet.xcrd + length(gridLines[1]) / key_len - 1) + var/maxx = curr_x + if(length(gridLines)) //Not an empty map + maxx = max(maxx, curr_x + line_len / key_len - 1) - bounds[MAP_MAXX] = clamp(max(bounds[MAP_MAXX], maxx), x_lower, x_upper) + bounds[MAP_MAXX] = max(bounds[MAP_MAXX], maxx) CHECK_TICK // Indicate failure to parse any coordinates by nulling bounds if(bounds[1] == 1.#INF) - bounds = null - parsed_bounds = bounds + src.bounds = null + else + // Clamp all our mins and maxes down to the proscribed limits + bounds[MAP_MINX] = clamp(bounds[MAP_MINX], x_lower, x_upper) + bounds[MAP_MAXX] = clamp(bounds[MAP_MAXX], x_lower, x_upper) + bounds[MAP_MINY] = clamp(bounds[MAP_MINY], y_lower, y_upper) + bounds[MAP_MAXY] = clamp(bounds[MAP_MAXY], y_lower, y_upper) + bounds[MAP_MINZ] = clamp(bounds[MAP_MINZ], z_lower, z_upper) + bounds[MAP_MAXZ] = clamp(bounds[MAP_MAXZ], z_lower, z_upper) + + parsed_bounds = src.bounds + src.key_len = key_len + src.line_len = line_len + +/// Iterates over all grid sets and returns ones with z values within the given bounds. Inclusive +/datum/parsed_map/proc/filter_grid_sets_based_on_z_bounds(lower_z, upper_z) + var/list/filtered_sets = list() + for(var/datum/grid_set/grid_set as anything in gridSets) + if(grid_set.zcrd < lower_z) + continue + if(grid_set.zcrd > upper_z) + continue + filtered_sets += grid_set + return filtered_sets -/// Load the parsed map into the world. See [/proc/load_map] for arguments. -/datum/parsed_map/proc/load(x_offset, y_offset, z_offset, cropMap, no_changeturf, x_lower, x_upper, y_lower, y_upper, placeOnTop, delete) +/// Load the parsed map into the world. You probably want [/proc/load_map]. Keep the signature the same. +/datum/parsed_map/proc/load(x_offset = 0, y_offset = 0, z_offset = 0, crop_map = FALSE, no_changeturf = FALSE, x_lower = -INFINITY, x_upper = INFINITY, y_lower = -INFINITY, y_upper = INFINITY, z_lower = -INFINITY, z_upper = INFINITY, place_on_top = FALSE, new_z = FALSE, delete = FALSE) //How I wish for RAII Master.StartLoadingMap() - . = _load_impl(x_offset, y_offset, z_offset, cropMap, no_changeturf, x_lower, x_upper, y_lower, y_upper, placeOnTop, delete) + . = _load_impl(x_offset, y_offset, z_offset, crop_map, no_changeturf, x_lower, x_upper, y_lower, y_upper, z_lower, z_upper, place_on_top, new_z, delete) Master.StopLoadingMap() +#define MAPLOADING_CHECK_TICK \ + if(TICK_CHECK) { \ + if(loading) { \ + SSatoms.map_loader_stop(REF(src)); \ + stoplag(); \ + SSatoms.map_loader_begin(REF(src)); \ + } else { \ + stoplag(); \ + } \ + } + // Do not call except via load() above. -/datum/parsed_map/proc/_load_impl(x_offset = 1, y_offset = 1, z_offset = world.maxz + 1, cropMap = FALSE, no_changeturf = FALSE, x_lower = -INFINITY, x_upper = INFINITY, y_lower = -INFINITY, y_upper = INFINITY, placeOnTop = FALSE, delete = FALSE) - var/list/areaCache = list() +/datum/parsed_map/proc/_load_impl(x_offset, y_offset, z_offset, crop_map, no_changeturf, x_lower, x_upper, y_lower, y_upper, z_lower, z_upper, place_on_top, new_z, delete) + PRIVATE_PROC(TRUE) + // Tell ss atoms that we're doing maploading + // We'll have to account for this in the following tick_checks so it doesn't overflow + loading = TRUE + SSatoms.map_loader_begin(REF(src)) + + // Loading used to be done in this proc + // We make the assumption that if the inner procs runtime, we WANT to do cleanup on them, but we should stil tell our parents we failed + // Since well, we did + var/sucessful = FALSE + switch(map_format) + if(MAP_TGM) + sucessful = _tgm_load(x_offset, y_offset, z_offset, crop_map, no_changeturf, x_lower, x_upper, y_lower, y_upper, z_lower, z_upper, place_on_top, new_z, delete) + else + sucessful = _dmm_load(x_offset, y_offset, z_offset, crop_map, no_changeturf, x_lower, x_upper, y_lower, y_upper, z_lower, z_upper, place_on_top, new_z, delete) + + // And we are done lads, call it off + SSatoms.map_loader_stop(REF(src)) + loading = FALSE + + // CM: Disabled due to not using contained_turfs and SSarea_contents +// if(new_z) +// for(var/z_index in bounds[MAP_MINZ] to bounds[MAP_MAXZ]) +// SSmapping.build_area_turfs(z_index) + + if(!no_changeturf) + for(var/turf/T as anything in block(bounds[MAP_MINX], bounds[MAP_MINY], bounds[MAP_MINZ], bounds[MAP_MAXX], bounds[MAP_MAXY], bounds[MAP_MAXZ])) + //we do this after we load everything in. if we don't, we'll have weird atmos bugs regarding atmos adjacent turfs + T.AfterChange(CHANGETURF_IGNORE_AIR) + + if(expanded_x || expanded_y) + SEND_GLOBAL_SIGNAL(COMSIG_GLOB_EXPANDED_WORLD_BOUNDS, expanded_x, expanded_y) + + #ifdef TESTING + if(turfsSkipped) + testing("Skipped loading [turfsSkipped] default turfs") + #endif + + return sucessful + +// Wanna clear something up about maps, talking in 255x255 here +// In the tgm format, each gridset contains 255 lines, each line representing one tile, with 255 total gridsets +// In the dmm format, each gridset contains 255 lines, each line representing one row of tiles, containing 255 * line length characters, with one gridset per z +// You can think of dmm as storing maps in rows, whereas tgm stores them in columns +/datum/parsed_map/proc/_tgm_load(x_offset, y_offset, z_offset, crop_map, no_changeturf, x_lower, x_upper, y_lower, y_upper, z_lower, z_upper, place_on_top, new_z, delete) + // setup var/list/modelCache = build_cache(no_changeturf) var/space_key = modelCache[SPACE_KEY] var/list/bounds src.bounds = bounds = list(1.#INF, 1.#INF, 1.#INF, -1.#INF, -1.#INF, -1.#INF) - for(var/I in gridSets) - var/datum/grid_set/gset = I - var/ycrd = gset.ycrd + y_offset - 1 - var/zcrd = gset.zcrd + z_offset - 1 - if(!cropMap && ycrd > world.maxy) - world.maxy = ycrd // Expand Y here. X is expanded in the loop below + // Building y coordinate ranges + var/y_relative_to_absolute = y_offset - 1 + var/x_relative_to_absolute = x_offset - 1 + + // Ok so like. something important + // We talk in "relative" coords here, so the coordinate system of the map datum + // This is so we can do offsets, but it is NOT the same as positions in game + // That's why there's some uses of - y_relative_to_absolute here, to turn absolute positions into relative ones + // TGM maps process in columns, so the starting y will always be the max size + // We know y starts at 1 + var/datum/grid_set/first_column = gridSets[1] + var/relative_y = first_column.ycrd + var/highest_y = relative_y + y_relative_to_absolute + + if(!crop_map && highest_y > world.maxy) + if(new_z) + // Need to avoid improperly loaded area/turf_contents + world.increase_max_y(highest_y, map_load_z_cutoff = z_offset - 1) + else + world.increase_max_y(highest_y) + expanded_y = TRUE + + // Skip Y coords that are above the smallest of the three params + // So maxy and y_upper get to act as thresholds, and relative_y can play + var/y_skip_above = min(world.maxy - y_relative_to_absolute, y_upper, relative_y) + // How many lines to skip because they'd be above the y cuttoff line + var/y_starting_skip = relative_y - y_skip_above + highest_y -= y_starting_skip + + // Y is the LOWEST it will ever be here, so we can easily set a threshold for how low to go + var/line_count = length(first_column.gridLines) + var/lowest_y = relative_y - (line_count - 1) // -1 because we decrement at the end of the loop, not the start + var/y_ending_skip = max(max(y_lower, 1 - y_relative_to_absolute) - lowest_y, 0) + + // X setup + var/x_delta_with = x_upper + if(crop_map) + // Take our smaller crop threshold yes? + x_delta_with = min(x_delta_with, world.maxx) + + // We're gonna skip all the entries above the upper x, or maxx if cropMap is set + // The last column is guarenteed to have the highest x value we;ll encounter + // Even if z scales, this still works + var/datum/grid_set/last_column = gridSets[length(gridSets)] + var/final_x = last_column.xcrd + x_relative_to_absolute + + if(final_x > x_delta_with) + // If our relative x is greater then X upper, well then we've gotta limit our expansion + var/delta = max(final_x - x_delta_with, 0) + final_x -= delta + if(final_x > world.maxx && !crop_map) + if(new_z) + // Need to avoid improperly loaded area/turf_contents + world.increase_max_x(final_x, map_load_z_cutoff = z_offset - 1) + else + world.increase_max_x(final_x) + expanded_x = TRUE + + var/lowest_x = max(x_lower, 1 - x_relative_to_absolute) + + // Amount we offset the grid zcrd to get the true zcrd + var/grid_z_offset = z_offset - 1 + var/z_upper_set = z_upper < INFINITY + var/z_lower_set = z_lower > -INFINITY + + // We make the assumption that the last block of turfs will have the highest embedded z in it + // true max zcrd + var/map_bounds_z_max = last_column.zcrd + var/z_upper_parsed = map_bounds_z_max + z_offset - 1 + if(z_upper_set) + z_upper_parsed -= map_bounds_z_max - z_upper + if(z_lower_set) + var/offset_amount = z_lower - 1 + z_upper_parsed -= offset_amount + grid_z_offset -= offset_amount + + var/list/target_grid_sets = gridSets + if(z_lower_set || z_upper_set) // bounds are set, filter out gridsets for z levels we don't want + target_grid_sets = filter_grid_sets_based_on_z_bounds(z_lower, z_upper) + + var/z_threshold = world.maxz + if(z_upper_parsed > z_threshold && crop_map) + for(var/i in z_threshold + 1 to z_upper_parsed) //create a new z_level if needed + world.incrementMaxZ() + if(!no_changeturf) + WARNING("Z-level expansion occurred without no_changeturf set, this may cause problems when /turf/AfterChange is called") + + for(var/datum/grid_set/gset as anything in target_grid_sets) + var/true_xcrd = gset.xcrd + x_relative_to_absolute + + // any cutoff of x means we just shouldn't iterate this gridset + if(final_x < true_xcrd || lowest_x > gset.xcrd) + continue + + var/zcrd = gset.zcrd + grid_z_offset + // If we're using changeturf, we disable it if we load into a z level we JUST created + var/no_afterchange = no_changeturf || zcrd > z_threshold + + // We're gonna track the first and last pairs of coords we find + // Since x is always incremented in steps of 1, we only need to deal in y + // The first x is guarenteed to be the lowest, the first y the highest, and vis versa + // This is faster then doing mins and maxes inside the hot loop below + var/first_found = FALSE + var/first_y = 0 + var/last_y = 0 + + var/ycrd = highest_y + // Everything following this line is VERY hot. + for(var/i in 1 + y_starting_skip to line_count - y_ending_skip) + if(gset.gridLines[i] == space_key && no_afterchange) + #ifdef TESTING + ++turfsSkipped + #endif + ycrd-- + MAPLOADING_CHECK_TICK + continue + + var/list/cache = modelCache[gset.gridLines[i]] + if(!cache) + SSatoms.map_loader_stop(REF(src)) + CRASH("Undefined model key in DMM: [gset.gridLines[i]]") + build_coordinate(cache, locate(true_xcrd, ycrd, zcrd), no_afterchange, place_on_top, new_z, delete) + + // only bother with bounds that actually exist + if(!first_found) + first_found = TRUE + first_y = ycrd + last_y = ycrd + ycrd-- + MAPLOADING_CHECK_TICK + + // The x coord never changes, so not tracking first x is safe + // If no ycrd is found, we assume this row is totally empty and just continue on + if(first_found) + bounds[MAP_MINX] = min(bounds[MAP_MINX], true_xcrd) + bounds[MAP_MINY] = min(bounds[MAP_MINY], last_y) + bounds[MAP_MINZ] = min(bounds[MAP_MINZ], zcrd) + bounds[MAP_MAXX] = max(bounds[MAP_MAXX], true_xcrd) + bounds[MAP_MAXY] = max(bounds[MAP_MAXY], first_y) + bounds[MAP_MAXZ] = max(bounds[MAP_MAXZ], zcrd) + return TRUE + +/// Stanrdard loading, not used in production +/// Doesn't take advantage of any tgm optimizations, which makes it slower but also more general +/// Use this if for some reason your map format is messy +/datum/parsed_map/proc/_dmm_load(x_offset, y_offset, z_offset, crop_map, no_changeturf, x_lower, x_upper, y_lower, y_upper, z_lower, z_upper, place_on_top, new_z, delete) + // setup + var/list/modelCache = build_cache(no_changeturf) + var/space_key = modelCache[SPACE_KEY] + var/list/bounds + var/key_len = src.key_len + src.bounds = bounds = list(1.#INF, 1.#INF, 1.#INF, -1.#INF, -1.#INF, -1.#INF) + + var/y_relative_to_absolute = y_offset - 1 + var/x_relative_to_absolute = x_offset - 1 + var/line_len = src.line_len + + // Amount we offset the grid zcrd to get the true zcrd + var/grid_z_offset = z_offset - 1 + var/z_upper_set = z_upper < INFINITY + var/z_lower_set = z_lower > -INFINITY + + // we now need to find the maximum z, fun! + var/map_bounds_z_max = 1 + for(var/datum/grid_set/grid_set as anything in gridSets) + map_bounds_z_max = max(map_bounds_z_max, grid_set.zcrd) + + var/z_upper_parsed = map_bounds_z_max + z_offset - 1 + if(z_upper_set) + z_upper_parsed -= map_bounds_z_max - z_upper + if(z_lower_set) + var/offset_amount = z_lower - 1 + z_upper_parsed -= offset_amount + grid_z_offset -= offset_amount + + var/list/target_grid_sets = gridSets + if(z_lower_set || z_upper_set) // bounds are set, filter out gridsets for z levels we don't want + target_grid_sets = filter_grid_sets_based_on_z_bounds(z_lower, z_upper) + + for(var/datum/grid_set/gset as anything in target_grid_sets) + var/relative_x = gset.xcrd + var/relative_y = gset.ycrd + var/true_xcrd = relative_x + x_relative_to_absolute + var/ycrd = relative_y + y_relative_to_absolute + var/zcrd = gset.zcrd + grid_z_offset + if(!crop_map && ycrd > world.maxy) + if(new_z) + // Need to avoid improperly loaded area/turf_contents + world.increase_max_y(ycrd, map_load_z_cutoff = z_offset - 1) + else + world.increase_max_y(ycrd) + expanded_y = TRUE var/zexpansion = zcrd > world.maxz + var/no_afterchange = no_changeturf if(zexpansion) - if(cropMap) + if(crop_map) continue else while (zcrd > world.maxz) //create a new z_level if needed world.incrementMaxZ() if(!no_changeturf) WARNING("Z-level expansion occurred without no_changeturf set, this may cause problems when /turf/AfterChange is called") - - for(var/line in gset.gridLines) - if((ycrd - y_offset + 1) < y_lower || (ycrd - y_offset + 1) > y_upper) //Reverse operation and check if it is out of bounds of cropping. - --ycrd - continue - if(ycrd <= world.maxy && ycrd >= 1) - var/xcrd = gset.xcrd + x_offset - 1 - for(var/tpos = 1 to length(line) - key_len + 1 step key_len) - if((xcrd - x_offset + 1) < x_lower || (xcrd - x_offset + 1) > x_upper) //Same as above. - ++xcrd - continue //X cropping. - if(xcrd > world.maxx) - if(cropMap) - break - else - world.maxx = xcrd - - if(xcrd >= 1) - var/model_key = copytext(line, tpos, tpos + key_len) - var/no_afterchange = no_changeturf || zexpansion - if(!no_afterchange || (model_key != space_key)) - var/list/cache = modelCache[model_key] - if(!cache) - CRASH("Undefined model key in DMM: [model_key]") - build_coordinate(areaCache, cache, locate(xcrd, ycrd, zcrd), no_afterchange, placeOnTop, delete) - - // only bother with bounds that actually exist - bounds[MAP_MINX] = min(bounds[MAP_MINX], xcrd) - bounds[MAP_MINY] = min(bounds[MAP_MINY], ycrd) - bounds[MAP_MINZ] = min(bounds[MAP_MINZ], zcrd) - bounds[MAP_MAXX] = max(bounds[MAP_MAXX], xcrd) - bounds[MAP_MAXY] = max(bounds[MAP_MAXY], ycrd) - bounds[MAP_MAXZ] = max(bounds[MAP_MAXZ], zcrd) - #ifdef TESTING - else - ++turfsSkipped - #endif - CHECK_TICK + no_afterchange = TRUE + // Ok so like. something important + // We talk in "relative" coords here, so the coordinate system of the map datum + // This is so we can do offsets, but it is NOT the same as positions in game + // That's why there's some uses of - y_relative_to_absolute here, to turn absolute positions into relative ones + + // Skip Y coords that are above the smallest of the three params + // So maxy and y_upper get to act as thresholds, and relative_y can play + var/y_skip_above = min(world.maxy - y_relative_to_absolute, y_upper, relative_y) + // How many lines to skip because they'd be above the y cuttoff line + var/y_starting_skip = relative_y - y_skip_above + ycrd += y_starting_skip + + // Y is the LOWEST it will ever be here, so we can easily set a threshold for how low to go + var/line_count = length(gset.gridLines) + var/lowest_y = relative_y - (line_count - 1) // -1 because we decrement at the end of the loop, not the start + var/y_ending_skip = max(max(y_lower, 1 - y_relative_to_absolute) - lowest_y, 0) + + // Now we're gonna precompute the x thresholds + // We skip all the entries below the lower x, or 1 + var/starting_x_delta = max(max(x_lower, 1 - x_relative_to_absolute) - relative_x, 0) + // The x loop counts by key length, so we gotta multiply here + var/x_starting_skip = starting_x_delta * key_len + true_xcrd += starting_x_delta + + // We're gonna skip all the entries above the upper x, or maxx if cropMap is set + var/x_target = line_len - key_len + 1 + var/x_step_count = ceil(x_target / key_len) + var/final_x = relative_x + (x_step_count - 1) + var/x_delta_with = x_upper + if(crop_map) + // Take our smaller crop threshold yes? + x_delta_with = min(x_delta_with, world.maxx) + if(final_x > x_delta_with) + // If our relative x is greater then X upper, well then we've gotta limit our expansion + var/delta = max(final_x - x_delta_with, 0) + x_step_count -= delta + final_x -= delta + x_target = x_step_count * key_len + if(final_x > world.maxx && !crop_map) + if(new_z) + // Need to avoid improperly loaded area/turf_contents + world.increase_max_x(final_x, map_load_z_cutoff = z_offset - 1) + else + world.increase_max_x(final_x) + expanded_x = TRUE + + // We're gonna track the first and last pairs of coords we find + // The first x is guarenteed to be the lowest, the first y the highest, and vis versa + // This is faster then doing mins and maxes inside the hot loop below + var/first_found = FALSE + var/first_x = 0 + var/first_y = 0 + var/last_x = 0 + var/last_y = 0 + + // Everything following this line is VERY hot. How hot depends on the map format + // (Yes this does mean dmm is technically faster to parse. shut up) + for(var/i in 1 + y_starting_skip to line_count - y_ending_skip) + var/line = gset.gridLines[i] + + var/xcrd = true_xcrd + for(var/tpos in 1 + x_starting_skip to x_target step key_len) + var/model_key = copytext(line, tpos, tpos + key_len) + if(model_key == space_key && no_afterchange) + #ifdef TESTING + ++turfsSkipped + #endif + MAPLOADING_CHECK_TICK ++xcrd - --ycrd + continue + var/list/cache = modelCache[model_key] + if(!cache) + SSatoms.map_loader_stop(REF(src)) + CRASH("Undefined model key in DMM: [model_key]") + build_coordinate(cache, locate(xcrd, ycrd, zcrd), no_afterchange, place_on_top, new_z, delete) + + // only bother with bounds that actually exist + if(!first_found) + first_found = TRUE + first_x = xcrd + first_y = ycrd + last_x = xcrd + last_y = ycrd + MAPLOADING_CHECK_TICK + ++xcrd + ycrd-- + MAPLOADING_CHECK_TICK + bounds[MAP_MINX] = min(bounds[MAP_MINX], first_x) + bounds[MAP_MINY] = min(bounds[MAP_MINY], last_y) + bounds[MAP_MINZ] = min(bounds[MAP_MINZ], zcrd) + bounds[MAP_MAXX] = max(bounds[MAP_MAXX], last_x) + bounds[MAP_MAXY] = max(bounds[MAP_MAXY], first_y) + bounds[MAP_MAXZ] = max(bounds[MAP_MAXZ], zcrd) - CHECK_TICK - - //if(!no_changeturf)// mapping TODO: - // for(var/t in block(locate(bounds[MAP_MINX], bounds[MAP_MINY], bounds[MAP_MINZ]), locate(bounds[MAP_MAXX], bounds[MAP_MAXY], bounds[MAP_MAXZ]))) - // var/turf/T = t - // //we do this after we load everything in. if we don't; we'll have weird atmos bugs regarding atmos adjacent turfs - // T.AfterChange(CHANGETURF_IGNORE_AIR) + return TRUE - #ifdef TESTING - if(turfsSkipped) - testing("Skipped loading [turfsSkipped] default turfs") - #endif +GLOBAL_LIST_EMPTY(map_model_default) - return TRUE +/datum/parsed_map/proc/build_cache(no_changeturf, bad_paths) + if(map_format == MAP_TGM) + return tgm_build_cache(no_changeturf, bad_paths) + return dmm_build_cache(no_changeturf, bad_paths) -/datum/parsed_map/proc/build_cache(no_changeturf, bad_paths=null) +/datum/parsed_map/proc/tgm_build_cache(no_changeturf, bad_paths=null) if(modelCache && !bad_paths) return modelCache . = modelCache = list() var/list/grid_models = src.grid_models + var/set_space = FALSE + // Use where a list is needed, but where it will not be modified + // Used here to remove the cost of needing to make a new list for each fields entry when it's set manually later + var/static/list/default_list = GLOB.map_model_default // It's stupid, but it saves += list(list) + var/static/list/wrapped_default_list = list(default_list) // It's stupid, but it saves += list(list) + var/static/regex/var_edits = var_edits_tgm + + var/path_to_init = "" + // Reference to the attributes list we're currently filling, if any + var/list/current_attributes + // If we are currently editing a path or not + var/editing = FALSE for(var/model_key in grid_models) - var/model = grid_models[model_key] - var/list/members = list() //will contain all members (paths) in model (in our example : /turf/unsimulated/wall and /area/mine/explored) - var/list/members_attributes = list() //will contain lists filled with corresponding variables, if any (in our example : list(icon_state = "rock") and list()) + // We're going to split models by newline + // This guarentees that each entry will be of interest to us + // Then we'll process them step by step + // Hopefully this reduces the cost from read_list that we'd otherwise have + var/list/lines = splittext(grid_models[model_key], "\n") + // Builds list of path/edits for later + // Of note: we cannot preallocate them to save time in list expansion later + // But fortunately lists allocate at least 8 entries normally anyway, and + // We are unlikely to have more then that many members + //will contain all members (paths) in model (in our example : /turf/unsimulated/wall) + var/list/members = list() + //will contain lists filled with corresponding variables, if any (in our example : list(icon_state = "rock") and list()) + var/list/members_attributes = list() ///////////////////////////////////////////////////////// //Constructing members and corresponding variables lists //////////////////////////////////////////////////////// + // string representation of the path to init + for(var/line in lines) + // We do this here to avoid needing to check at each return statement + // No harm in it anyway + MAPLOADING_CHECK_TICK + + switch(line[length(line)]) + if(";") // Var edit, we'll apply it + // Var edits look like \tname = value; + // I'm gonna try capturing them with regex, since it ought to be the fastest here + // Should hand back key = value + var_edits.Find(line) + var/value = parse_constant(var_edits.group[2]) + if(istext(value)) + value = apply_text_macros(value) + current_attributes[var_edits.group[1]] = value + continue // Keep on keeping on brother + if("{") // Start of an edit, and so also the start of a path + editing = TRUE + current_attributes = list() // Init the list we'll be filling + members_attributes += list(current_attributes) + path_to_init = copytext(line, 1, -1) + if(",") // Either the end of a path, or the end of an edit + if(editing) // it was the end of a path + editing = FALSE + continue + members_attributes += wrapped_default_list // We know this is a path, and we also know it has no vv's. so we'll just set this to the default list + // Drop the last char mind + path_to_init = copytext(line, 1, -1) + if("}") // Gotta be the end of an area edit, let's check to be sure + if(editing) // it was the end of an area edit (shouldn't do those anyhow) + editing = FALSE + continue + stack_trace("ended a line on JUST a }, with no ongoing edit. What? Area shit?") + else // If we're editing, this is a var edit entry. the last one in a stack, cause god hates me. Otherwise, it's an area + if(editing) // I want inline I want inline I want inline + // Var edits look like \tname = value; + // I'm gonna try capturing them with regex, since it ought to be the fastest here + // Should hand back key = value + var_edits.Find(line) + var/value = parse_constant(var_edits.group[2]) + if(istext(value)) + value = apply_text_macros(value) + current_attributes[var_edits.group[1]] = value + continue // Keep on keeping on brother + + members_attributes += wrapped_default_list // We know this is a path, and we also know it has no vv's. so we'll just set this to the default list + path_to_init = line + + + // Alright, if we've gotten to this point, our string is a path + // Oh and we don't trim it, because we require no padding for these + // Saves like 1.5 deciseconds + var/atom_def = text2path(path_to_init) //path definition, e.g /obj/foo/bar - var/index = 1 - var/old_position = 1 - var/dpos + if(!ispath(atom_def, /atom)) // Skip the item if the path does not exist. Fix your crap, mappers! + if(bad_paths) + // Rare case, avoid the var to save time most of the time + LAZYOR(bad_paths[copytext(line, 1, -1)], model_key) + continue + // Index is already incremented either way, just gotta set the path and all + members += atom_def - while(dpos != 0) - //finding next member (e.g /turf/unsimulated/wall{icon_state = "rock"} or /area/mine/explored) - dpos = find_next_delimiter_position(model, old_position, ",", "{", "}") //find next delimiter (comma here) that's not within {...} + //check and see if we can just skip this turf + //So you don't have to understand this horrid statement, we can do this if + // 1. the space_key isn't set yet + // 2. no_changeturf is set + // 3. there are exactly 2 members + // 4. with no attributes + // 5. and the members are world.turf and world.area + // Basically, if we find an entry like this: "XXX" = (/turf/default, /area/default) + // We can skip calling this proc every time we see XXX + if(!set_space \ + && no_changeturf \ + && length(members_attributes) == 2 \ + && length(members) == 2 \ + && members_attributes[1] == default_list \ + && members_attributes[2] == default_list \ + && members[2] == world.area \ + && members[1] == world.turf + ) + set_space = TRUE + .[SPACE_KEY] = model_key + continue + + .[model_key] = list(members, members_attributes) + return . + +/// Builds key caches for general formats +/// Slower then the proc above, tho it could still be optimized slightly. it's just not a priority +/// Since we don't run DMM maps, ever. +/datum/parsed_map/proc/dmm_build_cache(no_changeturf, bad_paths=null) + if(modelCache && !bad_paths) + return modelCache + . = modelCache = list() + var/list/grid_models = src.grid_models + var/set_space = FALSE + // Use where a list is needed, but where it will not be modified + // Used here to remove the cost of needing to make a new list for each fields entry when it's set manually later + var/static/list/default_list = list(GLOB.map_model_default) + for(var/model_key in grid_models) + //will contain all members (paths) in model (in our example : /turf/unsimulated/wall) + var/list/members = list() + //will contain lists filled with corresponding variables, if any (in our example : list(icon_state = "rock") and list()) + var/list/members_attributes = list() + + var/model = grid_models[model_key] + ///////////////////////////////////////////////////////// + //Constructing members and corresponding variables lists + //////////////////////////////////////////////////////// - var/full_def = trim_text(copytext(model, old_position, dpos)) //full definition, e.g : /obj/foo/bar{variables=derp} - var/variables_start = findtext(full_def, "{") - var/path_text = trim_text(copytext(full_def, 1, variables_start)) + var/model_index = 1 + while(model_path.Find(model, model_index)) + var/variables_start = 0 + var/member_string = model_path.group[1] + model_index = model_path.next + //findtext is a bit expensive, lets only do this if the last char of our string is a } (IE: we know we have vars) + //this saves about 25 miliseconds on my machine. Not a major optimization + if(member_string[length(member_string)] == "}") + variables_start = findtext(member_string, "{") + + var/path_text = TRIM_TEXT(copytext(member_string, 1, variables_start)) var/atom_def = text2path(path_text) //path definition, e.g /obj/foo/bar - if(dpos) - old_position = dpos + length(model[dpos]) if(!ispath(atom_def, /atom)) // Skip the item if the path does not exist. Fix your crap, mappers! if(bad_paths) LAZYOR(bad_paths[path_text], model_key) continue - members.Add(atom_def) + members += atom_def //transform the variables in text format into a list (e.g {var1="derp"; var2; var3=7} => list(var1="derp", var2, var3=7)) - var/list/fields = list() - + // OF NOTE: this could be made faster by replacing readlist with a progressive regex + // I'm just too much of a bum to do it rn, especially since we mandate tgm format for any maps in repo + var/list/fields = default_list if(variables_start)//if there's any variable - full_def = copytext(full_def, variables_start + length(full_def[variables_start]), -length(copytext_char(full_def, -1))) //removing the last '}' - fields = readlist(full_def, ";") - if(fields.len) - if(!trim(fields[fields.len])) - --fields.len - for(var/I in fields) - var/value = fields[I] - if(istext(value)) - fields[I] = apply_text_macros(value) + member_string = copytext(member_string, variables_start + length(member_string[variables_start]), -length(copytext_char(member_string, -1))) //removing the last '}' + fields = list(readlist(member_string, ";")) + for(var/I in fields) + var/value = fields[I] + if(istext(value)) + fields[I] = apply_text_macros(value) //then fill the members_attributes list with the corresponding variables - members_attributes.len++ - members_attributes[index++] = fields - - CHECK_TICK + members_attributes += fields + MAPLOADING_CHECK_TICK //check and see if we can just skip this turf //So you don't have to understand this horrid statement, we can do this if - // 1. no_changeturf is set - // 2. the space_key isn't set yet + // 1. the space_key isn't set yet + // 2. no_changeturf is set // 3. there are exactly 2 members // 4. with no attributes // 5. and the members are world.turf and world.area // Basically, if we find an entry like this: "XXX" = (/turf/default, /area/default) // We can skip calling this proc every time we see XXX - if(no_changeturf \ - && !(.[SPACE_KEY]) \ - && members.len == 2 \ - && members_attributes.len == 2 \ + if(!set_space \ + && no_changeturf \ + && length(members) == 2 \ + && length(members_attributes) == 2 \ && length(members_attributes[1]) == 0 \ && length(members_attributes[2]) == 0 \ && (world.area in members) \ && (world.turf in members)) - + set_space = TRUE .[SPACE_KEY] = model_key continue - .[model_key] = list(members, members_attributes) + return . -/datum/parsed_map/proc/build_coordinate(list/areaCache, list/model, turf/crds, no_changeturf as num, placeOnTop as num, delete) +/datum/parsed_map/proc/build_coordinate(list/model, turf/crds, no_changeturf as num, placeOnTop as num, new_z, delete) + // If we don't have a turf, nothing we will do next will actually acomplish anything, so just go back + // Note, this would actually drop area vvs in the tile, but like, why tho + if(!crds) + return var/index var/list/members = model[1] var/list/members_attributes = model[2] + // We use static lists here because it's cheaper then passing them around + var/static/list/default_list = GLOB.map_model_default //////////////// //Instanciation //////////////// + if(turf_blacklist?[crds]) + return + //The next part of the code assumes there's ALWAYS an /area AND a /turf on a given tile //first instance the /area and remove it from the members list - index = members.len + index = length(members) + var/area/old_area if(members[index] != /area/template_noop) - var/atype = members[index] - GLOB._preloader.setup(members_attributes[index], atype)//preloader for assigning set variables on atom creation - var/atom/instance = areaCache[atype] - if(!instance) - instance = GLOB.areas_by_type[atype] - if(!instance) - instance = new atype(null) - areaCache[atype] = instance - if(crds) - instance.contents.Add(crds) - - if(GLOB.use_preloader && instance) - GLOB._preloader.load(instance) - - //then instance the /turf and, if multiple tiles are presents, simulates the DMM underlays piling effect - - var/first_turf_index = 1 - while(!ispath(members[first_turf_index], /turf)) //find first /turf object in members - first_turf_index++ - - //turn off base new Initialization until the whole thing is loaded - SSatoms.map_loader_begin() - //instanciate the first /turf - var/turf/T - if(members[first_turf_index] != /turf/template_noop) - T = instance_atom(members[first_turf_index], members_attributes[first_turf_index], crds,no_changeturf, placeOnTop, delete) - - if(T) - //if others /turf are presents, simulates the underlays piling effect - index = first_turf_index + 1 - while(index <= members.len - 1) // Last item is an /area - var/underlay = T.appearance - T = instance_atom(members[index], members_attributes[index], crds,no_changeturf, placeOnTop, delete)//instance new turf - T.underlays += underlay - index++ + if(members_attributes[index] != default_list) + world.preloader_setup(members_attributes[index], members[index])//preloader for assigning set variables on atom creation + var/area/area_instance = loaded_areas[members[index]] + if(!area_instance) + var/area_type = members[index] + // If this parsed map doesn't have that area already, we check the global cache + area_instance = GLOB.areas_by_type[area_type] + // If the global list DOESN'T have this area it's either not a unique area, or it just hasn't been created yet + if (!area_instance) + area_instance = new area_type(null) + if(!area_instance) + CRASH("[area_type] failed to be new'd, what'd you do?") + loaded_areas[area_type] = area_instance + + if(!new_z) + old_area = crds.loc +// old_area.turfs_to_uncontain += crds +// area_instance.contained_turfs.Add(crds) + area_instance.contents.Add(crds) + + if(GLOB.use_preloader) + world.preloader_load(area_instance) + + // Index right before /area is /turf + index-- + var/atom/instance + //then instance the /turf + //NOTE: this used to place any turfs before the last "underneath" it using .appearance and underlays + //We don't actually use this, and all it did was cost cpu, so we don't do this anymore + if(members[index] != /turf/template_noop) + if(members_attributes[index] != default_list) + world.preloader_setup(members_attributes[index], members[index]) + + // CM/TGMC addition: delete map contents before inserting if delete truthy + if(delete) + for(var/atom/turf_atom as anything in crds.GetAllTurfStrictContents()) + if(isobserver(turf_atom)) + continue + qdel(turf_atom, force = TRUE) + + // Note: we make the assertion that the last path WILL be a turf. if it isn't, this will fail. + if(placeOnTop) + instance = crds.load_on_top(members[index], CHANGETURF_DEFER_CHANGE | (no_changeturf ? CHANGETURF_SKIP : NONE)) + else if(no_changeturf) + instance = create_atom(members[index], crds)//first preloader pass + else + instance = crds.ChangeTurf(members[index], null, CHANGETURF_DEFER_CHANGE) + + if(GLOB.use_preloader && instance)//second preloader pass, for those atoms that don't ..() in New() + world.preloader_load(instance) + // If this isn't template work, we didn't change our turf and we changed area, then we've gotta handle area lighting transfer + else if(!no_changeturf && old_area) + // Don't do contain/uncontain stuff, this happens a few lines up when the area actally changes + crds.on_change_area(old_area, crds.loc) + MAPLOADING_CHECK_TICK //finally instance all remainings objects/mobs - for(index in 1 to first_turf_index-1) - instance_atom(members[index], members_attributes[index], crds, no_changeturf, placeOnTop, delete) - //Restore initialization to the previous value - SSatoms.map_loader_stop() + for(var/atom_index in 1 to index-1) + if(members_attributes[atom_index] != default_list) + world.preloader_setup(members_attributes[atom_index], members[atom_index]) + + // We make the assertion that only /atom s will be in this portion of the code. if that isn't true, this will fail + instance = create_atom(members[atom_index], crds)//first preloader pass + + if(GLOB.use_preloader && instance)//second preloader pass, for those atoms that don't ..() in New() + world.preloader_load(instance) + MAPLOADING_CHECK_TICK //////////////// //Helpers procs //////////////// -//Instance an atom at (x,y,z) and gives it the variables in attributes -/datum/parsed_map/proc/instance_atom(path,list/attributes, turf/crds, no_changeturf, placeOnTop, delete) - GLOB._preloader.setup(attributes, path) - - if(crds) - if(ispath(path, /turf)) - if(delete) - for(var/atom/A as anything in crds.GetAllTurfStrictContents()) - if(isobserver(A)) - continue - qdel(A, force=TRUE) - - if(placeOnTop) - . = crds.PlaceOnTop(null, path, CHANGETURF_DEFER_CHANGE | (no_changeturf ? CHANGETURF_SKIP : NONE)) - else if(!no_changeturf) - . = crds.ChangeTurf(path, null, CHANGETURF_DEFER_CHANGE) - else - . = create_atom(path, crds)//first preloader pass - else - . = create_atom(path, crds)//first preloader pass - - if(GLOB.use_preloader && .)//second preloader pass, for those atoms that don't ..() in New() - GLOB._preloader.load(.) - - //custom CHECK_TICK here because we don't want things created while we're sleeping to not initialize - if(TICK_CHECK) - SSatoms.map_loader_stop() - stoplag() - SSatoms.map_loader_begin() - /datum/parsed_map/proc/create_atom(path, crds) set waitfor = FALSE . = new path (crds) -//text trimming (both directions) helper proc -//optionally removes quotes before and after the text (for variable name) -/datum/parsed_map/proc/trim_text(what as text,trim_quotes=0) - if(trim_quotes) - return trimQuotesRegex.Replace(what, "") - else - return trimRegex.Replace(what, "") - - //find the position of the next delimiter,skipping whatever is comprised between opening_escape and closing_escape //returns 0 if reached the last delimiter /datum/parsed_map/proc/find_next_delimiter_position(text as text,initial_position as num, delimiter=",",opening_escape="\"",closing_escape="\"") @@ -410,7 +1004,6 @@ return next_delimiter - //build a list from variables in text form (e.g {var1="derp"; var2; var3=7} => list(var1="derp", var2, var3=7)) //return the filled list /datum/parsed_map/proc/readlist(text as text, delimiter=",") @@ -418,28 +1011,29 @@ if (!text) return + // If we're using a semi colon, we can do this as splittext rather then constant calls to find_next_delimiter_position + // This does make the code a bit harder to read, but saves a good bit of time so suck it up var/position var/old_position = 1 - while(position != 0) // find next delimiter that is not within "..." position = find_next_delimiter_position(text,old_position,delimiter) // check if this is a simple variable (as in list(var1, var2)) or an associative one (as in list(var1="foo",var2=7)) var/equal_position = findtext(text,"=",old_position, position) - - var/trim_left = trim_text(copytext(text,old_position,(equal_position ? equal_position : position))) - var/left_constant = delimiter == ";" ? trim_left : parse_constant(trim_left) + var/trim_left = TRIM_TEXT(copytext(text,old_position,(equal_position ? equal_position : position))) + var/left_constant = parse_constant(trim_left) if(position) old_position = position + length(text[position]) + if(!left_constant) // damn newlines man. Exists to provide behavior consistency with the above loop. not a major cost becuase this path is cold + continue if(equal_position && !isnum(left_constant)) // Associative var, so do the association. // Note that numbers cannot be keys - the RHS is dropped if so. - var/trim_right = trim_text(copytext(text, equal_position + length(text[equal_position]), position)) + var/trim_right = TRIM_TEXT(copytext(text, equal_position + length(text[equal_position]), position)) var/right_constant = parse_constant(trim_right) .[left_constant] = right_constant - else // simple var . += list(left_constant) @@ -451,7 +1045,10 @@ // string if(text[1] == "\"") - return copytext(text, length(text[1]) + 1, findtext(text, "\"", length(text[1]) + 1)) + // insert implied locate \" and length("\"") here + // It's a minimal timesave but it is a timesave + // Safe becuase we're guarenteed trimmed constants + return copytext(text, 2, -1) // list if(copytext(text, 1, 6) == "list(")//6 == length("list(") + 1 @@ -479,4 +1076,17 @@ /datum/parsed_map/Destroy() ..() + SSatoms.map_loader_stop(REF(src)) // Just in case, I don't want to double up here + if(turf_blacklist) + turf_blacklist.Cut() + parsed_bounds.Cut() + bounds.Cut() + grid_models.Cut() + gridSets.Cut() return QDEL_HINT_HARDDEL_NOW + +#undef MAP_DMM +#undef MAP_TGM +#undef MAP_UNKNOWN +#undef TRIM_TEXT +#undef MAPLOADING_CHECK_TICK diff --git a/code/modules/mapping/space_management/space_level.dm b/code/modules/mapping/space_management/space_level.dm index 861258aa20a2..48303b5e39ae 100644 --- a/code/modules/mapping/space_management/space_level.dm +++ b/code/modules/mapping/space_management/space_level.dm @@ -4,13 +4,20 @@ var/list/traits var/z_value = 1 //actual z placement var/linkage = SELFLOOPING - var/x_bounds - var/y_bounds + /// Bounds at time of loading the map + var/bounds /datum/space_level/New(new_z, new_name, list/new_traits = list()) z_value = new_z name = new_name traits = new_traits + + if (islist(new_traits)) + for (var/trait in new_traits) + SSmapping.z_trait_levels[trait] += list(new_z) + else // in case a single trait is passed in + SSmapping.z_trait_levels[new_traits] += list(new_z) //set_linkage(new_traits[ZTRAIT_LINKAGE]) - x_bounds = world.maxx - y_bounds = world.maxy + + //Lazy Init value, will be hopefully changed by SSmapping + bounds = list(1, 1, z_value, world.maxx, world.maxy, z_value) diff --git a/code/modules/mapping/space_management/space_reservation.dm b/code/modules/mapping/space_management/space_reservation.dm index adaff04000ff..63ec6485e3f3 100644 --- a/code/modules/mapping/space_management/space_reservation.dm +++ b/code/modules/mapping/space_management/space_reservation.dm @@ -1,81 +1,239 @@ +/// Cordon area surrounding turf reservations +/area/misc/cordon + name = "CORDON" + icon_state = "cordon" + static_lighting = FALSE + base_lighting_alpha = 255 + requires_power = FALSE + +#define CORDON_TURF_TYPE /turf/closed/cordon //Yes, they can only be rectangular. //Yes, I'm sorry. /datum/turf_reservation + /// All turfs that we've reserved var/list/reserved_turfs = list() + + /// Turfs around the reservation for cordoning + var/list/cordon_turfs = list() + + /// Area of turfs next to the cordon to fill with pre_cordon_area's + var/list/pre_cordon_turfs = list() + + /// The width of the reservation var/width = 0 + + /// The height of the reservation var/height = 0 - var/bottom_left_coords[3] - var/top_right_coords[3] - var/wipe_reservation_on_release = TRUE + + /// The z stack size of the reservation. Note that reservations are ALWAYS reserved from the bottom up + var/z_size = 0 + + /// List of the bottom left turfs. Indexed by what their z index for this reservation is + var/list/bottom_left_turfs = list() + + /// List of the top right turfs. Indexed by what their z index for this reservation is + var/list/top_right_turfs = list() + + /// The turf type the reservation is initially made with var/turf_type = /turf/open/space + ///Distance away from the cordon where we can put a "sort-cordon" and run some extra code (see make_repel). 0 makes nothing happen + var/pre_cordon_distance = 0 + /datum/turf_reservation/transit turf_type = /turf/open/space/transit + pre_cordon_distance = 7 /datum/turf_reservation/interior turf_type = /turf/open/void/vehicle /datum/turf_reservation/proc/Release() - var/v = reserved_turfs.Copy() - for(var/i in reserved_turfs) - var/turf/T = i - T.flags_atom |= UNUSED_RESERVATION_TURF - reserved_turfs -= i - SSmapping.used_turfs -= i - SSmapping.reserve_turfs(v) + bottom_left_turfs.Cut() + top_right_turfs.Cut() + + var/list/reserved_copy = reserved_turfs.Copy() + SSmapping.used_turfs -= reserved_turfs + reserved_turfs = list() + + var/list/cordon_copy = cordon_turfs.Copy() + SSmapping.used_turfs -= cordon_turfs + cordon_turfs = list() -/datum/turf_reservation/proc/Reserve(width, height, zlevel) + var/release_turfs = reserved_copy + cordon_copy + + for(var/turf/reserved_turf as anything in release_turfs) + SEND_SIGNAL(reserved_turf, COMSIG_TURF_RESERVATION_RELEASED, src) + + // Makes the linter happy, even tho we don't await this + INVOKE_ASYNC(SSmapping, TYPE_PROC_REF(/datum/controller/subsystem/mapping, reserve_turfs), release_turfs) + +/// Attempts to calaculate and store a list of turfs around the reservation for cordoning. Returns whether a valid cordon was calculated +/datum/turf_reservation/proc/calculate_cordon_turfs(turf/bottom_left, turf/top_right) + if(bottom_left.x < 2 || bottom_left.y < 2 || top_right.x > (world.maxx - 2) || top_right.y > (world.maxy - 2)) + return FALSE // no space for a cordon here + + var/list/possible_turfs = CORNER_OUTLINE(bottom_left, width, height) + // if they're our cordon turfs, accept them + possible_turfs -= cordon_turfs + for(var/turf/cordon_turf as anything in possible_turfs) + if(!(cordon_turf.turf_flags & UNUSED_RESERVATION_TURF)) + return FALSE + cordon_turfs |= possible_turfs + + if(pre_cordon_distance) + var/turf/offset_turf = locate(bottom_left.x + pre_cordon_distance, bottom_left.y + pre_cordon_distance, bottom_left.z) + var/list/to_add = CORNER_OUTLINE(offset_turf, width - pre_cordon_distance * 2, height - pre_cordon_distance * 2) //we step-by-stop move inwards from the outer cordon + for(var/turf/turf_being_added as anything in to_add) + pre_cordon_turfs |= turf_being_added //add one by one so we can filter out duplicates + + return TRUE + +/// Actually generates the cordon around the reservation, and marking the cordon turfs as reserved +/datum/turf_reservation/proc/generate_cordon() + for(var/turf/cordon_turf as anything in cordon_turfs) + var/area/misc/cordon/cordon_area = GLOB.areas_by_type[/area/misc/cordon] || new + //var/area/old_area = cordon_turf.loc + //old_area.turfs_to_uncontain += cordon_turf + //cordon_area.contained_turfs += cordon_turf + cordon_area.contents += cordon_turf + // Its no longer unused, but its also not "used" + cordon_turf.turf_flags &= ~UNUSED_RESERVATION_TURF + cordon_turf.ChangeTurf(CORDON_TURF_TYPE, CORDON_TURF_TYPE) + SSmapping.unused_turfs["[cordon_turf.z]"] -= cordon_turf + // still gets linked to us though + SSmapping.used_turfs[cordon_turf] = src + + //swap the area with the pre-cordoning area + +/// Internal proc which handles reserving the area for the reservation. +/datum/turf_reservation/proc/_reserve_area(width, height, zlevel) + src.width = width + src.height = height if(width > world.maxx || height > world.maxy || width < 1 || height < 1) - log_debug("turf reservation had invalid dimensions") return FALSE var/list/avail = SSmapping.unused_turfs["[zlevel]"] - var/turf/bottom_left - var/turf/top_right + var/turf/BL + var/turf/TR var/list/turf/final = list() var/passing = FALSE for(var/i in avail) CHECK_TICK - bottom_left = i - if(!(bottom_left.flags_atom & UNUSED_RESERVATION_TURF)) + BL = i + if(!(BL.turf_flags & UNUSED_RESERVATION_TURF)) continue - if(bottom_left.x + width > world.maxx || bottom_left.y + height > world.maxy) + if(BL.x + width > world.maxx || BL.y + height > world.maxy) continue - top_right = locate(bottom_left.x + width - 1, bottom_left.y + height - 1, bottom_left.z) - if(!(top_right.flags_atom & UNUSED_RESERVATION_TURF)) + TR = locate(BL.x + width - 1, BL.y + height - 1, BL.z) + if(!(TR.turf_flags & UNUSED_RESERVATION_TURF)) continue - final = block(bottom_left, top_right) + final = block(BL, TR) if(!final) continue passing = TRUE for(var/turf/checking as anything in final) - if(!(checking.flags_atom & UNUSED_RESERVATION_TURF)) + if(!(checking.turf_flags & UNUSED_RESERVATION_TURF)) passing = FALSE break + if(passing) // found a potentially valid area, now try to calculate its cordon + passing = calculate_cordon_turfs(BL, TR) if(!passing) continue break - if(!passing || !istype(bottom_left) || !istype(top_right)) - log_debug("failed to pass reservation tests, [passing], [istype(bottom_left)], [istype(top_right)]") + if(!passing || !istype(BL) || !istype(TR)) return FALSE - bottom_left_coords = list(bottom_left.x, bottom_left.y, bottom_left.z) - top_right_coords = list(top_right.x, top_right.y, top_right.z) - var/weakref = WEAKREF(src) for(var/i in final) var/turf/T = i reserved_turfs |= T SSmapping.unused_turfs["[T.z]"] -= T - SSmapping.used_turfs[T] = weakref - T = T.ChangeTurf(turf_type, turf_type) - T.flags_atom &= ~UNUSED_RESERVATION_TURF - src.width = width - src.height = height + SSmapping.used_turfs[T] = src + T.turf_flags = (T.turf_flags | RESERVATION_TURF) & ~UNUSED_RESERVATION_TURF + T.ChangeTurf(turf_type, turf_type) + + bottom_left_turfs += BL + top_right_turfs += TR + return TRUE + +/datum/turf_reservation/proc/reserve(width, height, z_size, z_reservation) + src.z_size = z_size + var/failed_reservation = FALSE + for(var/_ in 1 to z_size) + if(!_reserve_area(width, height, z_reservation)) + failed_reservation = TRUE + break + + if(failed_reservation) + Release() + return FALSE + + generate_cordon() return TRUE +/// Calculates the effective bounds information for the given turf. Returns a list of the information, or null if not applicable. +/datum/turf_reservation/proc/calculate_turf_bounds_information(turf/target) + for(var/z_idx in 1 to z_size) + var/turf/bottom_left = bottom_left_turfs[z_idx] + var/turf/top_right = top_right_turfs[z_idx] + var/bl_x = bottom_left.x + var/bl_y = bottom_left.y + var/tr_x = top_right.x + var/tr_y = top_right.y + + if(target.x < bl_x) + continue + + if(target.y < bl_y) + continue + + if(target.x > tr_x) + continue + + if(target.y > tr_y) + continue + + var/list/return_information = list() + return_information["z_idx"] = z_idx + return_information["offset_x"] = target.x - bl_x + return_information["offset_y"] = target.y - bl_y + return return_information + return null + +/// Gets the turf below the given target. Returns null if there is no turf below the target +/datum/turf_reservation/proc/get_turf_below(turf/target) + var/list/bounds_info = calculate_turf_bounds_information(target) + if(isnull(bounds_info)) + return null + + var/z_idx = bounds_info["z_idx"] + // check what z level, if its the max, then there is no turf below + if(z_idx == z_size) + return null + + var/offset_x = bounds_info["offset_x"] + var/offset_y = bounds_info["offset_y"] + var/turf/bottom_left = bottom_left_turfs[z_idx + 1] + return locate(bottom_left.x + offset_x, bottom_left.y + offset_y, bottom_left.z) + +/// Gets the turf above the given target. Returns null if there is no turf above the target +/datum/turf_reservation/proc/get_turf_above(turf/target) + var/list/bounds_info = calculate_turf_bounds_information(target) + if(isnull(bounds_info)) + return null + + var/z_idx = bounds_info["z_idx"] + // check what z level, if its the min, then there is no turf above + if(z_idx == 1) + return null + + var/offset_x = bounds_info["offset_x"] + var/offset_y = bounds_info["offset_y"] + var/turf/bottom_left = bottom_left_turfs[z_idx - 1] + return locate(bottom_left.x + offset_x, bottom_left.y + offset_y, bottom_left.z) + /datum/turf_reservation/New() LAZYADD(SSmapping.turf_reservations, src) /datum/turf_reservation/Destroy() - INVOKE_ASYNC(src, PROC_REF(Release)) + Release() LAZYREMOVE(SSmapping.turf_reservations, src) return ..() diff --git a/code/modules/mapping/space_management/traits.dm b/code/modules/mapping/space_management/traits.dm index 16eac0a98cf2..057511d9abaa 100644 --- a/code/modules/mapping/space_management/traits.dm +++ b/code/modules/mapping/space_management/traits.dm @@ -3,15 +3,15 @@ if (!isnum(z) || z < 1) return null if (z_list) - if (z > z_list.len) - stack_trace("Unmanaged z-level [z]! maxz = [world.maxz], z_list.len = [z_list.len]") + if (z > length(z_list)) + stack_trace("Unmanaged z-level [z]! maxz = [world.maxz], length(z_list) = [length(z_list)]") return list() var/datum/space_level/S = get_level(z) return S.traits[trait] else var/list/default = DEFAULT_MAP_TRAITS - if (z > default.len) - stack_trace("Unmanaged z-level [z]! maxz = [world.maxz], default.len = [default.len]") + if (z > length(default)) + stack_trace("Unmanaged z-level [z]! maxz = [world.maxz], length(default) = [length(default)]") return list() return default[z][DL_TRAITS][trait] diff --git a/code/modules/mapping/space_management/zlevel_manager.dm b/code/modules/mapping/space_management/zlevel_manager.dm index 9311719ea7d8..1e3c3a1c42c4 100644 --- a/code/modules/mapping/space_management/zlevel_manager.dm +++ b/code/modules/mapping/space_management/zlevel_manager.dm @@ -6,28 +6,34 @@ z_list = list() var/list/default_map_traits = DEFAULT_MAP_TRAITS - if (default_map_traits.len != world.maxz) - WARNING("More or less map attributes pre-defined ([default_map_traits.len]) than existent z-levels ([world.maxz]). Ignoring the larger.") - if (default_map_traits.len > world.maxz) + if (length(default_map_traits) != world.maxz) + WARNING("More or less map attributes pre-defined ([length(default_map_traits)]) than existent z-levels ([world.maxz]). Ignoring the larger.") + if (length(default_map_traits) > world.maxz) default_map_traits.Cut(world.maxz + 1) - for (var/I in 1 to default_map_traits.len) + for (var/I in 1 to length(default_map_traits)) var/list/features = default_map_traits[I] var/datum/space_level/S = new(I, features[DL_NAME], features[DL_TRAITS]) - z_list += S + manage_z_level(S, filled_with_space = FALSE) + //generate_z_level_linkages() // Default Zs don't use add_new_zlevel() so they don't automatically generate z-linkages. -/datum/controller/subsystem/mapping/proc/add_new_zlevel(name, traits = list(), z_type = /datum/space_level) - var/new_z = z_list.len + 1 +/datum/controller/subsystem/mapping/proc/add_new_zlevel(name, traits = list(), z_type = /datum/space_level, contain_turfs = TRUE) + UNTIL(!adding_new_zlevel) + adding_new_zlevel = TRUE + var/new_z = length(z_list) + 1 if (world.maxz < new_z) world.incrementMaxZ() CHECK_TICK // TODO: sleep here if the Z level needs to be cleared var/datum/space_level/S = new z_type(new_z, name, traits) - z_list += S + manage_z_level(S, filled_with_space = TRUE, contain_turfs = contain_turfs) + //generate_linkages_for_z_level(new_z) + //calculate_z_level_gravity(new_z) + adding_new_zlevel = FALSE SEND_GLOBAL_SIGNAL(COMSIG_GLOB_NEW_Z, S) return S /datum/controller/subsystem/mapping/proc/get_level(z) - if (z_list && z >= 1 && z <= z_list.len) + if (z_list && z >= 1 && z <= length(z_list)) return z_list[z] - CRASH("Unmanaged z-level [z]! maxz = [world.maxz], z_list.len = [z_list ? z_list.len : "null"]") + CRASH("Unmanaged z-level [z]! maxz = [world.maxz], length(z_list) = [z_list ? length(z_list) : "null"]") diff --git a/code/modules/mapping/verify.dm b/code/modules/mapping/verify.dm index 6c9d0318ef24..f3fdd61b0f5b 100644 --- a/code/modules/mapping/verify.dm +++ b/code/modules/mapping/verify.dm @@ -21,19 +21,19 @@ if(!loadable) html += "

          Not loadable: some tiles are missing their turfs or areas.

          " - if(bad_paths.len) + if(length(bad_paths)) html += "

          Bad paths:

            " for(var/path in bad_paths) var/list/keys = bad_paths[path] - html += "
          1. [path]: used in ([keys.len]): [keys.Join(", ")]" + html += "
          2. [path]: used in ([length(keys)]): [keys.Join(", ")]" html += "

          " - if(bad_keys.len) + if(length(bad_keys)) html += "

          Bad keys:

            " for(var/key in bad_keys) var/list/messages = bad_keys[key] html += "
          • [key]" - if(messages.len == 1) + if(length(messages) == 1) html += ": [bad_keys[key][1]]" else html += "
            • [messages.Join("
            • ")]
            " @@ -74,7 +74,7 @@ var/turfs = 0 var/areas = 0 - for(var/i in 1 to members.len) + for(var/i in 1 to length(members)) var/atom/path = members[i] turfs += ispath(path, /turf) @@ -91,7 +91,7 @@ LAZYADD(report.bad_keys[key], "[areas] areas instead of 1") // return the report - if(report.bad_paths.len || report.bad_keys.len || !report.loadable) + if(length(report.bad_paths) || length(report.bad_keys) || !report.loadable) // keep the report around so it can be referenced later report.tag = "mapreport_[++report.tag_number]" report.crashed = FALSE diff --git a/code/modules/maptext_alerts/screen_alerts.dm b/code/modules/maptext_alerts/screen_alerts.dm index 0b923f7dc753..e0a4d2e4d5b8 100644 --- a/code/modules/maptext_alerts/screen_alerts.dm +++ b/code/modules/maptext_alerts/screen_alerts.dm @@ -64,6 +64,26 @@ style_open = "" style_close = "" +/atom/movable/screen/text/screen_text/command_order/tutorial + letters_per_update = 4 // overall, pretty fast while not immediately popping in + play_delay = 0.1 + fade_out_delay = 2.5 SECONDS + fade_out_time = 0.5 SECONDS + +/atom/movable/screen/text/screen_text/command_order/tutorial/end_play() + if(!player) + qdel(src) + return + + if(player.mob || HAS_TRAIT(player.mob, TRAIT_IN_TUTORIAL)) + return ..() + + for(var/atom/movable/screen/text/screen_text/command_order/tutorial/tutorial_message in player.screen_texts) + LAZYREMOVE(player.screen_texts, tutorial_message) + qdel(tutorial_message) + + return ..() + ///proc for actually playing this screen_text on a mob. /atom/movable/screen/text/screen_text/proc/play_to_client() player?.add_to_screen(src) @@ -214,11 +234,18 @@ /// Alert owner var/mob/owner + /// Boolean. If TRUE, the Click() proc will attempt to Click() on the master first if there is a master. + var/click_master = TRUE + /atom/movable/screen/alert/MouseEntered(location,control,params) . = ..() if(!QDELETED(src)) openToolTip(usr, src, params, title = name, content = desc, theme = alerttooltipstyle) +/atom/movable/screen/alert/MouseExited(location, control, params) + . = ..() + closeToolTip(usr) + /atom/movable/screen/alert/notify_action name = "Notification" desc = "A new notification. You can enter it." @@ -251,3 +278,65 @@ if(NOTIFY_XENO_TACMAP) GLOB.xeno_tacmap_status.tgui_interact(ghost_user) +/atom/movable/screen/alert/buckled + name = "Buckled" + desc = "You've been buckled to something. Click the alert to unbuckle unless you're handcuffed." + icon_state = ALERT_BUCKLED + +/atom/movable/screen/alert/restrained/handcuffed + name = "Handcuffed" + desc = "You're handcuffed and can't act. If anyone drags you, you won't be able to move. Click the alert to free yourself." + click_master = FALSE + +/atom/movable/screen/alert/restrained/legcuffed + name = "Legcuffed" + desc = "You're legcuffed, which slows you down considerably. Click the alert to free yourself." + click_master = FALSE + +/atom/movable/screen/alert/restrained/clicked() + . = ..() + if(!.) + return + + var/mob/living/living_owner = owner + + if(!living_owner.can_resist()) + return + +// living_owner.changeNext_move(CLICK_CD_RESIST) // handled in resist proc + if((living_owner.mobility_flags & MOBILITY_MOVE) && (living_owner.last_special <= world.time)) + return living_owner.resist_restraints() + +/atom/movable/screen/alert/buckled/clicked() + . = ..() + if(!.) + return + + var/mob/living/living_owner = owner + + if(!living_owner.can_resist()) + return +// living_owner.changeNext_move(CLICK_CD_RESIST) // handled in resist proc + if(living_owner.last_special <= world.time) + return living_owner.resist_buckle() + +/atom/movable/screen/alert/clicked(location, control, params) + if(!usr || !usr.client) + return FALSE + if(usr != owner) + return FALSE + var/list/modifiers = params2list(params) + if(LAZYACCESS(modifiers, SHIFT_CLICK)) // screen objects don't do the normal Click() stuff so we'll cheat + to_chat(usr, SPAN_BOLDNOTICE("[name] - [desc]")) + return FALSE + if(master && click_master) + return usr.client.Click(master, location, control, params) + + return TRUE + +/atom/movable/screen/alert/Destroy() + . = ..() + severity = 0 + master = null + owner = null + screen_loc = "" diff --git a/code/modules/mob/dead/observer/actions.dm b/code/modules/mob/dead/observer/actions.dm index ff897db4a3f6..7daae802dc7a 100644 --- a/code/modules/mob/dead/observer/actions.dm +++ b/code/modules/mob/dead/observer/actions.dm @@ -21,6 +21,9 @@ INVOKE_ASYNC(src, PROC_REF(remove_from), user) +/datum/action/ghost/xeno + action_icon_state = "ghost_xeno" + /datum/action/join_ert name = "Join ERT" action_icon_state = "join_ert" diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm index 430f959a7718..d4db6bccde83 100644 --- a/code/modules/mob/dead/observer/observer.dm +++ b/code/modules/mob/dead/observer/observer.dm @@ -32,8 +32,12 @@ plane = GHOST_PLANE layer = ABOVE_FLY_LAYER stat = DEAD - var/adminlarva = FALSE + mob_flags = KNOWS_TECHNOLOGY + + /// If the observer is an admin, are they excluded from the xeno queue? + var/admin_larva_protection = TRUE // Enabled by default var/ghostvision = TRUE + var/self_visibility = TRUE var/can_reenter_corpse var/started_as_observer //This variable is set to 1 when you enter the game as an observer. //If you died in the game and are a ghost - this will remain as null. @@ -68,10 +72,10 @@ set desc = "Toggles your ability to see things only ghosts can see, like other ghosts" set category = "Ghost.Settings" ghostvision = !ghostvision - if(hud_used) - var/atom/movable/screen/plane_master/lighting/lighting = hud_used.plane_masters["[GHOST_PLANE]"] - if (lighting) - lighting.alpha = ghostvision? 255 : 0 + if(ghostvision) + see_invisible = INVISIBILITY_OBSERVER + else + see_invisible = HIDE_INVISIBLE_OBSERVER to_chat(usr, SPAN_NOTICE("You [(ghostvision?"now":"no longer")] have ghost vision.")) /mob/dead/observer/Initialize(mapload, mob/body) @@ -137,8 +141,6 @@ var/datum/action/observer_action/new_action = new path() new_action.give_to(src) - RegisterSignal(SSdcs, COMSIG_GLOB_PREDATOR_ROUND_TOGGLED, PROC_REF(toggle_predator_action)) - if(SSticker.mode && SSticker.mode.flags_round_type & MODE_PREDATOR) addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(to_chat), src, "This is a PREDATOR ROUND! If you are whitelisted, you may Join the Hunt!"), 2 SECONDS) @@ -189,37 +191,38 @@ clean_observe_target() /// When the observer target gets a screen, our observer gets a screen minus some game screens we don't want the observer to touch -/mob/dead/observer/proc/observe_target_screen_add(observe_target_mob_client, add_to_screen) +/mob/dead/observer/proc/observe_target_screen_add(observe_target_mob_client, screen_add) SIGNAL_HANDLER - if(!client) - return - - if(istype(add_to_screen, /atom/movable/screen/action_button)) - return - - if(istype(add_to_screen, /atom/movable/screen/fullscreen)) - return + var/static/list/excluded_types = typecacheof(list( + /atom/movable/screen/fullscreen, + /atom/movable/screen/click_catcher, + /atom/movable/screen/escape_menu, + /atom/movable/screen/buildmode, + /obj/effect/detector_blip, + )) - if(istype(add_to_screen, /atom/movable/screen/click_catcher)) + if(!client) return - if(istype(add_to_screen, /atom/movable/screen/escape_menu)) - return + // `screen_add` can sometimes be a list, so it's safest to just handle everything as one. + var/list/stuff_to_add = (islist(screen_add) ? screen_add : list(screen_add)) - if(istype(add_to_screen, /obj/effect/detector_blip)) - return + for(var/item in stuff_to_add) + // Ignore anything that's in `excluded_types`. + if(is_type_in_typecache(item, excluded_types)) + continue - client.add_to_screen(add_to_screen) + client.add_to_screen(screen_add) /// When the observer target loses a screen, our observer loses it as well -/mob/dead/observer/proc/observe_target_screen_remove(observe_target_mob_client, remove_from_screen) +/mob/dead/observer/proc/observe_target_screen_remove(observe_target_mob_client, screen_remove) SIGNAL_HANDLER if(!client) return - client.remove_from_screen(remove_from_screen) + client.remove_from_screen(screen_remove) /// When the observe target ghosts our observer disconnect from their screen updates /mob/dead/observer/proc/observe_target_ghosting(mob/observer_target_mob) @@ -236,8 +239,9 @@ if(observe_target_client != new_client) observe_target_client = new_client - RegisterSignal(observe_target_client, COMSIG_CLIENT_SCREEN_ADD, PROC_REF(observe_target_screen_add)) - RegisterSignal(observe_target_client, COMSIG_CLIENT_SCREEN_REMOVE, PROC_REF(observe_target_screen_remove)) + // Override the signal from any previous targets. + RegisterSignal(observe_target_client, COMSIG_CLIENT_SCREEN_ADD, PROC_REF(observe_target_screen_add), TRUE) + RegisterSignal(observe_target_client, COMSIG_CLIENT_SCREEN_REMOVE, PROC_REF(observe_target_screen_remove), TRUE) /// When the observe target logs in our observer connect to the new client /mob/dead/observer/proc/observe_target_login(mob/living/new_character) @@ -246,8 +250,9 @@ if(observe_target_client != new_character.client) observe_target_client = new_character.client - RegisterSignal(observe_target_client, COMSIG_CLIENT_SCREEN_ADD, PROC_REF(observe_target_screen_add)) - RegisterSignal(observe_target_client, COMSIG_CLIENT_SCREEN_REMOVE, PROC_REF(observe_target_screen_remove)) + // Override the signal from any previous targets. + RegisterSignal(observe_target_client, COMSIG_CLIENT_SCREEN_ADD, PROC_REF(observe_target_screen_add), TRUE) + RegisterSignal(observe_target_client, COMSIG_CLIENT_SCREEN_REMOVE, PROC_REF(observe_target_screen_remove), TRUE) ///makes the ghost see the target hud and sets the eye at the target. /mob/dead/observer/proc/do_observe(atom/movable/target) @@ -257,52 +262,28 @@ ManualFollow(target) reset_perspective() - if(!ishuman(target) || !client.prefs?.auto_observe) + if(!iscarbon(target) || !client.prefs?.auto_observe) return - var/mob/living/carbon/human/human_target = target - - client.eye = human_target - - if(!human_target.hud_used) + var/mob/living/carbon/carbon_target = target + if(!carbon_target.hud_used) return client.clear_screen() - LAZYINITLIST(human_target.observers) - human_target.observers |= src - human_target.hud_used.show_hud(human_target.hud_used.hud_version, src) - - var/list/target_contents = human_target.get_contents() - - //Handles any currently open storage containers the target is looking in when we observe - for(var/obj/item/storage/checked_storage in target_contents) - if(!(human_target in checked_storage.content_watchers)) - continue - - client.add_to_screen(checked_storage.closer) - client.add_to_screen(checked_storage.contents) - - if(checked_storage.storage_slots) - client.add_to_screen(checked_storage.boxes) - else - client.add_to_screen(checked_storage.storage_start) - client.add_to_screen(checked_storage.storage_continue) - client.add_to_screen(checked_storage.storage_end) + client.eye = carbon_target + observe_target_mob = carbon_target - break + carbon_target.auto_observed(src) - observe_target_mob = human_target + RegisterSignal(src, COMSIG_MOVABLE_MOVED, PROC_REF(observer_move_react)) RegisterSignal(observe_target_mob, COMSIG_PARENT_QDELETING, PROC_REF(clean_observe_target)) RegisterSignal(observe_target_mob, COMSIG_MOB_GHOSTIZE, PROC_REF(observe_target_ghosting)) RegisterSignal(observe_target_mob, COMSIG_MOB_NEW_MIND, PROC_REF(observe_target_new_mind)) RegisterSignal(observe_target_mob, COMSIG_MOB_LOGIN, PROC_REF(observe_target_login)) - RegisterSignal(src, COMSIG_MOVABLE_MOVED, PROC_REF(observer_move_react)) - - if(human_target.client) - observe_target_client = human_target.client + if(observe_target_mob.client) + observe_target_client = observe_target_mob.client RegisterSignal(observe_target_client, COMSIG_CLIENT_SCREEN_ADD, PROC_REF(observe_target_screen_add)) RegisterSignal(observe_target_client, COMSIG_CLIENT_SCREEN_REMOVE, PROC_REF(observe_target_screen_remove)) - return /mob/dead/observer/reset_perspective(atom/A) if(observe_target_mob) @@ -319,15 +300,22 @@ hud_used.show_hud(hud_used.hud_version) /mob/dead/observer/Login() - ..() + ..() // This calls signals which might have resulted in our client getting deleted + + if(!client) + return - toggle_predator_action() + if(client.check_whitelist_status(WHITELIST_PREDATOR)) + RegisterSignal(SSdcs, COMSIG_GLOB_PREDATOR_ROUND_TOGGLED, PROC_REF(toggle_predator_action)) + toggle_predator_action() client.move_delay = MINIMAL_MOVEMENT_INTERVAL if(observe_target_mob) clean_observe_target() + set_huds_from_prefs() + /mob/dead/observer/Destroy(force) GLOB.observer_list -= src QDEL_NULL(orbit_menu) @@ -463,7 +451,7 @@ Works together with spawning an observer, noted above. ghost.langchat_make_image() SStgui.on_transfer(src, ghost) - if(is_admin_level((get_turf(src))?.z)) // Gibbed humans ghostize the brain in their head which itself is z 0 + if(should_block_game_interaction(src)) // Gibbed humans ghostize the brain in their head which itself is z 0 ghost.timeofdeath = 1 // Bypass respawn limit if you die on the admin zlevel ghost.key = key @@ -485,6 +473,12 @@ Works together with spawning an observer, noted above. mind = null + // Larva queue: We use the larger of their existing queue time or the new timeofdeath except for facehuggers or lesser drone + var/new_tod = (isfacehugger(src) || islesserdrone(src)) ? 1 : ghost.timeofdeath + + // if they died as facehugger or lesser drone, bypass typical TOD checks + ghost.bypass_time_of_death_checks = (isfacehugger(src) || islesserdrone(src)) + if(ghost.client) ghost.client.init_verbs() ghost.client.change_view(GLOB.world_view_size) //reset view range to default @@ -499,13 +493,12 @@ Works together with spawning an observer, noted above. if(ghost.client.player_data) ghost.client.player_data.load_timestat_data() - // Larva queue: We use the larger of their existing queue time or the new timeofdeath except for facehuggers or lesser drone - var/new_tod = (isfacehugger(src) || islesserdrone(src)) ? 1 : ghost.timeofdeath + ghost.client.player_details.larva_queue_time = max(ghost.client.player_details.larva_queue_time, new_tod) - // if they died as facehugger or lesser drone, bypass typical TOD checks - ghost.bypass_time_of_death_checks = (isfacehugger(src) || islesserdrone(src)) - - ghost.client?.player_details.larva_queue_time = max(ghost.client.player_details.larva_queue_time, new_tod) + else if(persistent_ckey) + var/datum/player_details/details = GLOB.player_details[persistent_ckey] + if(details) + details.larva_queue_time = max(details.larva_queue_time, new_tod) ghost.set_huds_from_prefs() @@ -547,7 +540,8 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp msg_admin_niche("[key_name_admin(client)] has ghosted. [ADMIN_JMP(location)]") log_game("[key_name_admin(client)] has ghosted.") var/mob/dead/observer/ghost = ghostize((is_nested && nest && !QDELETED(nest))) //FALSE parameter is so we can never re-enter our body, "Charlie, you can never come baaaack~" :3 - if(ghost && !is_admin_level(z)) + SEND_SIGNAL(src, COMSIG_LIVING_GHOSTED, ghost) + if(ghost && !should_block_game_interaction(src)) ghost.timeofdeath = world.time // Larva queue: We use the larger of their existing queue time or the new timeofdeath except for facehuggers or lesser drone @@ -620,7 +614,6 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp return mind.transfer_to(mind.original, TRUE) - SStgui.on_transfer(src, mind.current) qdel(src) return TRUE @@ -635,7 +628,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp var/value = SStechtree.trees[1] - if(trees.len > 1) + if(length(trees) > 1) value = tgui_input_list(src, "Choose which tree to enter", "Enter Tree", trees) if(!value) @@ -662,14 +655,14 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp for(var/turf/T in get_area_turfs(thearea.type)) L+=T - if(!L || !L.len) + if(!LAZYLEN(L)) to_chat(src, "No area available.") return usr.forceMove(pick(L)) following = null -/mob/dead/observer/proc/scan_health(mob/living/target in oview()) +/mob/dead/observer/proc/scan_health(mob/living/target in GLOB.living_mob_list) set name = "Scan Health" if(!istype(target)) @@ -702,7 +695,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp last_health_display.target_mob = target last_health_display.look_at(src, DETAIL_LEVEL_FULL, bypass_checks = TRUE) -/mob/dead/observer/verb/follow_local(mob/target) +/mob/dead/observer/verb/follow_local(mob/target in GLOB.mob_list) set category = "Ghost.Follow" set name = "Follow Local Mob" set desc = "Follow on-screen mob" @@ -826,10 +819,13 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp set category = "Ghost.Settings" if(client) - if(client.view != GLOB.world_view_size) - client.change_view(GLOB.world_view_size) - else + // Check the current zoom level and toggle to the next level cyclically + if (client.view == GLOB.world_view_size) client.change_view(14) + else if (client.view == 14) + client.change_view(28) + else + client.change_view(GLOB.world_view_size) /mob/dead/observer/verb/toggle_darkness() @@ -857,11 +853,12 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp /mob/dead/observer/verb/toggle_self_visibility() set name = "Toggle Self Visibility" set category = "Ghost.Settings" - - if (alpha) - alpha = 0 - else + self_visibility = !self_visibility + if (self_visibility) alpha = initial(alpha) + else + alpha = 0 + to_chat(usr, SPAN_NOTICE("You are now [(self_visibility?"visible":"invisible")].")) /mob/dead/observer/verb/view_manifest() set name = "View Crew Manifest" @@ -882,7 +879,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp var/datum/hive_status/hive for(var/hivenumber in GLOB.hive_datum) hive = GLOB.hive_datum[hivenumber] - if(hive.totalXenos.len > 0) + if(length(hive.totalXenos) > 0) hives += list("[hive.name]" = hive.hivenumber) last_hive_checked = hive @@ -1201,7 +1198,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp if(!SSticker.HasRoundStarted()) var/time_remaining = SSticker.GetTimeLeft() if(time_remaining > 0) - . += "Time To Start: [round(time_remaining)]s" + . += "Time To Start: [floor(time_remaining)]s[SSticker.delay_start ? " (DELAYED)" : ""]" else if(time_remaining == -10) . += "Time To Start: DELAYED" else @@ -1231,6 +1228,13 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp if(client.prefs?.be_special & BE_ALIEN_AFTER_DEATH) if(larva_queue_cached_message) . += larva_queue_cached_message + . += "" + + if(timeofdeath) + var/time_since_death = world.time - timeofdeath + var/format = (time_since_death >= 1 HOURS ? "hh:mm:ss" : "mm:ss") + + . += "Time Since Death: [time2text(time_since_death, format)]" /proc/message_ghosts(message) @@ -1279,9 +1283,6 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp if(!key_to_use) return - if(!(GLOB.RoleAuthority.roles_whitelist[key_to_use] & WHITELIST_PREDATOR)) - return - if(!SSticker.mode) SSticker.OnRoundstart(CALLBACK(src, PROC_REF(toggle_predator_action))) return diff --git a/code/modules/mob/dead/observer/orbit.dm b/code/modules/mob/dead/observer/orbit.dm index 5fe27c5e5167..4bc4abf7036c 100644 --- a/code/modules/mob/dead/observer/orbit.dm +++ b/code/modules/mob/dead/observer/orbit.dm @@ -53,6 +53,15 @@ var/list/survivors = list() var/list/xenos = list() var/list/ert_members = list() + var/list/upp = list() + var/list/clf = list() + var/list/wy = list() + var/list/twe = list() + var/list/freelancer = list() + var/list/contractor = list() + var/list/mercenary = list() + var/list/dutch = list() + var/list/marshal = list() var/list/synthetics = list() var/list/predators = list() var/list/animals = list() @@ -101,7 +110,7 @@ if(isliving(M)) var/mob/living/player = M - serialized["health"] = FLOOR((player.health / player.maxHealth * 100), 1) + serialized["health"] = floor(player.health / player.maxHealth * 100) if(isxeno(player)) var/mob/living/carbon/xenomorph/xeno = player @@ -109,6 +118,7 @@ var/datum/caste_datum/caste = xeno.caste serialized["caste"] = caste.caste_type serialized["icon"] = caste.minimap_icon + serialized["hivenumber"] = xeno.hivenumber xenos += list(serialized) continue @@ -117,12 +127,16 @@ var/obj/item/card/id/id_card = human.get_idcard() var/datum/species/human_species = human.species var/max_health = human_species.total_health != human.maxHealth ? human_species.total_health : human.maxHealth - serialized["health"] = FLOOR((player.health / max_health * 100), 1) + serialized["health"] = floor(player.health / max_health * 100) serialized["job"] = id_card?.assignment ? id_card.assignment : human.job serialized["nickname"] = human.real_name var/icon = human.assigned_equipment_preset?.minimap_icon + if(islist(icon)) + for(var/key in icon) + icon = key + break serialized["icon"] = icon ? icon : "private" if(human.assigned_squad) @@ -132,12 +146,30 @@ if(SSticker.mode.is_in_endgame == TRUE && !is_mainship_level(M.z) && !(human.faction in FACTION_LIST_ERT)) escaped += list(serialized) + else if(human.faction in FACTION_LIST_WY) + wy += list(serialized) else if(issynth(human) && !isinfiltratorsynthetic(human)) synthetics += list(serialized) else if(isyautja(human)) predators += list(serialized) else if(human.faction in FACTION_LIST_ERT) ert_members += list(serialized) + else if(human.faction in FACTION_LIST_UPP) + upp += list(serialized) + else if(human.faction in FACTION_LIST_CLF) + clf += list(serialized) + else if(human.faction in FACTION_LIST_TWE) + twe += list(serialized) + else if(human.faction in FACTION_LIST_FREELANCER) + freelancer += list(serialized) + else if(human.faction in FACTION_LIST_CONTRACTOR) + contractor += list(serialized) + else if(human.faction in FACTION_LIST_MERCENARY) + mercenary += list(serialized) + else if(human.faction in FACTION_LIST_MARSHAL) + marshal += list(serialized) + else if(human.faction in FACTION_LIST_DUTCH) + dutch += list(serialized) else if(human.faction in FACTION_LIST_MARINE) marines += list(serialized) else if(issurvivorjob(human.job)) @@ -148,14 +180,20 @@ if(isanimal(player)) animals += list(serialized) - else if(isAI(M)) - humans += list(serialized) - data["humans"] = humans data["marines"] = marines data["survivors"] = survivors data["xenos"] = xenos data["ert_members"] = ert_members + data["upp"] = upp + data["clf"] = clf + data["wy"] = wy + data["twe"] = twe + data["freelancer"] = freelancer + data["contractor"] = contractor + data["mercenary"] = mercenary + data["dutch"] = dutch + data["marshal"] = marshal data["synthetics"] = synthetics data["predators"] = predators data["animals"] = animals diff --git a/code/modules/mob/emote.dm b/code/modules/mob/emote.dm index f1b600179450..fa7c7ec3176e 100644 --- a/code/modules/mob/emote.dm +++ b/code/modules/mob/emote.dm @@ -14,13 +14,15 @@ to_chat(src, SPAN_NOTICE("'[act]' emote does not exist. Say *help for a list.")) return FALSE var/silenced = FALSE - for(var/datum/emote/P in key_emotes) - if(!P.check_cooldown(src, intentional)) + for(var/datum/emote/current_emote in key_emotes) + if(!current_emote.check_cooldown(src, intentional)) silenced = TRUE continue - if(P.run_emote(src, param, m_type, intentional)) - SEND_SIGNAL(src, COMSIG_MOB_EMOTE, P, act, m_type, message, intentional) - SEND_SIGNAL(src, COMSIG_MOB_EMOTED(P.key)) + if(SEND_SIGNAL(src, COMSIG_MOB_TRY_EMOTE, current_emote, act, m_type, param, intentional) & COMPONENT_OVERRIDE_EMOTE) + silenced = TRUE + continue + if(current_emote.run_emote(src, param, m_type, intentional)) + SEND_SIGNAL(src, COMSIG_MOB_EMOTE, current_emote, act, m_type, message, intentional) return TRUE if(intentional && !silenced && !force_silence) to_chat(src, SPAN_NOTICE("Unusable emote '[act]'. Say *help for a list.")) diff --git a/code/modules/mob/hear_say.dm b/code/modules/mob/hear_say.dm index c66d096c6c68..ef9ac4b6cfcc 100644 --- a/code/modules/mob/hear_say.dm +++ b/code/modules/mob/hear_say.dm @@ -18,7 +18,7 @@ if(!say_understands(speaker,language)) if(istype(speaker,/mob/living/simple_animal)) var/mob/living/simple_animal/S = speaker - if(S.speak.len) + if(length(S.speak)) message = pick(S.speak) else message = stars(message) @@ -106,54 +106,8 @@ speaker_name = "unknown" comm_paygrade = "" - var/changed_voice - - if(isAI(src) && !hard_to_hear) - var/jobname // the mob's "job" - var/mob/living/carbon/human/impersonating //The crewmember being impersonated, if any. - - if (ishuman(speaker)) - var/mob/living/carbon/human/H = speaker - - if((H.wear_id && istype(H.wear_id,/obj/item/card/id/syndicate)) && (H.wear_mask && istype(H.wear_mask,/obj/item/clothing/mask/gas/voice))) - - changed_voice = 1 - var/mob/living/carbon/human/I = locate(speaker_name) - - if(I) - impersonating = I - jobname = impersonating.get_assignment() - comm_paygrade = impersonating.get_paygrade() - else - jobname = "Unknown" - comm_paygrade = "" - else - jobname = H.get_assignment() - comm_paygrade = H.get_paygrade() - - else if (iscarbon(speaker)) // Nonhuman carbon mob - jobname = "No id" - comm_paygrade = "" - else if (isAI(speaker)) - jobname = "AI" - comm_paygrade = "" - else if (isrobot(speaker)) - jobname = "Cyborg" - comm_paygrade = "" - else - jobname = "Unknown" - comm_paygrade = "" - - if(changed_voice) - if(impersonating) - track = "[speaker_name] ([jobname])" - else - track = "[speaker_name] ([jobname])" - else - track = "[speaker_name] ([jobname])" - if(istype(src, /mob/dead/observer)) - if(speaker_name != speaker.real_name && !isAI(speaker)) //Announce computer and various stuff that broadcasts doesn't use it's real name but AI's can't pretend to be other mobs. + if(speaker_name != speaker.real_name) //Announce computer and various stuff that broadcasts doesn't use it's real name but AI's can't pretend to be other mobs. speaker_name = "[speaker.real_name] ([speaker_name])" track = "[speaker_name] (F)" @@ -202,18 +156,21 @@ /mob/living/hear_say(message, verb, datum/language/language, alt_name, italics, mob/speaker, sound/speech_sound, sound_vol) if(client && mind && stat == UNCONSCIOUS) - hear_sleep(src, message, src == speaker, Adjacent(speaker)) + hear_sleep(speaker, message, src == speaker, Adjacent(speaker), language) return return ..() /mob/living/hear_radio(message, verb, datum/language/language, part_a, part_b, mob/speaker, hard_to_hear, vname, command, no_paygrade) if(client && mind && stat == UNCONSCIOUS) - hear_sleep(src, message, FALSE, FALSE) + hear_sleep(speaker, message, FALSE, FALSE, language) return return ..() -/mob/living/proc/hear_sleep(mob/speaker = null, message, hearing_self = FALSE, proximity_flag = FALSE) +/mob/living/proc/hear_sleep(mob/speaker = null, message, hearing_self = FALSE, proximity_flag = FALSE, datum/language/language = null) var/heard = "" + var/clear_char_probability = 90 + if(!say_understands(speaker, language)) + clear_char_probability = 25 if(sdisabilities & DISABILITY_DEAF || ear_deaf) if(speaker == src) @@ -226,13 +183,13 @@ heard = SPAN_LOCALSAY("You mutter something about... [stars(message, clear_char_probability = 99)]") else if(!sleeping && proximity_flag) - heard = SPAN_LOCALSAY("You hear someone near you say something... [stars(message, clear_char_probability = 90)]") + heard = SPAN_LOCALSAY("You hear someone near you say something... [stars(message, clear_char_probability)]") else if(prob(15)) var/list/punctuation = list(",", "!", ".", ";", "?") var/list/messages = splittext(message, " ") - var/R = rand(1, messages.len) + var/R = rand(1, length(messages)) var/heardword = messages[R] if(copytext(heardword,1, 1) in punctuation) heardword = copytext(heardword,2) diff --git a/code/modules/mob/holder.dm b/code/modules/mob/holder.dm index b2a68c997ec9..cb8bbc11303b 100644 --- a/code/modules/mob/holder.dm +++ b/code/modules/mob/holder.dm @@ -15,7 +15,7 @@ /obj/item/holder/process() - if(istype(loc,/turf) || !(contents.len)) + if(istype(loc,/turf) || !(length(contents))) for(var/mob/M in contents) @@ -34,6 +34,15 @@ for(var/mob/living/M in contents) M.show_message(message,m_type) +/obj/item/holder/get_examine_text(mob/user) + . = list() + . += "[icon2html(src, user)] That's \a [src]." + if(desc) + . += desc + if(desc_lore) + . += SPAN_NOTICE("This has an extended lore description.") + + //Mob procs and vars for scooping up /mob/living/var/holder_type @@ -48,8 +57,10 @@ return var/obj/item/holder/mob_holder = new holder_type(loc) - src.forceMove(mob_holder) - mob_holder.name = loc.name + forceMove(mob_holder) + mob_holder.name = name + mob_holder.desc = desc + mob_holder.gender = gender mob_holder.attack_hand(grabber) to_chat(grabber, "You scoop up [src].") diff --git a/code/modules/mob/inventory.dm b/code/modules/mob/inventory.dm index d71a908d627a..e1c3bf49af8a 100644 --- a/code/modules/mob/inventory.dm +++ b/code/modules/mob/inventory.dm @@ -175,7 +175,9 @@ if(!previously_held_object) remembered_dropped_objects -= weak_ref break - if(previously_held_object.in_contents_of(check_turf)) + if(previously_held_object in check_turf) + if(previously_held_object.throwing) + return FALSE if(previously_held_object.anchored) return FALSE put_in_hands(previously_held_object, drop_on_fail = FALSE) @@ -226,7 +228,7 @@ //Remove an item on a mob's inventory. It does not change the item's loc, just unequips it from the mob. //Used just before you want to delete the item, or moving it afterwards. /mob/proc/temp_drop_inv_item(obj/item/I, force) - return u_equip(I, null, force) + return u_equip(I, null, TRUE, force) //Outdated but still in use apparently. This should at least be a human proc. @@ -254,15 +256,10 @@ //proc to get the item in the active hand. /mob/proc/get_held_item() - if(isSilicon(src)) - if(isrobot(src)) - if(src:module_active) - return src:module_active + if (hand) + return l_hand else - if (hand) - return l_hand - else - return r_hand + return r_hand /mob/living/carbon/human/proc/equip_if_possible(obj/item/W, slot, del_on_fail = 1) // since byond doesn't seem to have pointers, this seems like the best way to do this :/ //warning: icky code @@ -343,21 +340,20 @@ if(WEAR_IN_BACK) if (src.back && isstorage(src.back)) var/obj/item/storage/B = src.back - if(B.contents.len < B.storage_slots && W.w_class <= B.max_w_class) + if(length(B.contents) < B.storage_slots && W.w_class <= B.max_w_class) W.forceMove(B) equipped = 1 if(WEAR_IN_SHOES) - if(!shoes) - return + // If the player isn't wearing shoes, or the shoes somehow aren't shoes. if(!istype(shoes, /obj/item/clothing/shoes)) return - if(shoes.stored_item) - return - shoes.attempt_insert_item(src, shoes, TRUE) + // If the item was successfully inserted. + if(shoes.attempt_insert_item(src, W)) + equipped = 1 // what is this proc if(WEAR_IN_SCABBARD) if(src.back && istype(src.back, /obj/item/storage/large_holster)) var/obj/item/storage/large_holster/B = src.back - if(B.contents.len < B.storage_slots && W.w_class <= B.max_w_class) + if(length(B.contents) < B.storage_slots && W.w_class <= B.max_w_class) W.forceMove(B) equipped = 1 if(WEAR_IN_ACCESSORY) @@ -381,25 +377,25 @@ if(WEAR_IN_BELT) if(src.belt && isstorage(src.belt)) var/obj/item/storage/B = src.belt - if(B.contents.len < B.storage_slots && W.w_class <= B.max_w_class) + if(length(B.contents) < B.storage_slots && W.w_class <= B.max_w_class) W.forceMove(B) equipped = 1 if(WEAR_IN_J_STORE) if(src.s_store && isstorage(src.s_store)) var/obj/item/storage/B = src.s_store - if(B.contents.len < B.storage_slots && W.w_class <= B.max_w_class) + if(length(B.contents) < B.storage_slots && W.w_class <= B.max_w_class) W.forceMove(B) equipped = 1 if(WEAR_IN_L_STORE) if(src.l_store && istype(src.l_store, /obj/item/storage/pouch)) var/obj/item/storage/pouch/P = src.l_store - if(P.contents.len < P.storage_slots && W.w_class <= P.max_w_class) + if(length(P.contents) < P.storage_slots && W.w_class <= P.max_w_class) W.forceMove(P) equipped = 1 if(WEAR_IN_R_STORE) if(src.r_store && istype(src.r_store, /obj/item/storage/pouch)) var/obj/item/storage/pouch/P = src.r_store - if(P.contents.len < P.storage_slots && W.w_class <= P.max_w_class) + if(length(P.contents) < P.storage_slots && W.w_class <= P.max_w_class) W.forceMove(P) equipped = 1 diff --git a/code/modules/mob/language/language.dm b/code/modules/mob/language/language.dm index f00618fe54be..45086aaeba8b 100644 --- a/code/modules/mob/language/language.dm +++ b/code/modules/mob/language/language.dm @@ -23,7 +23,7 @@ /datum/language/proc/broadcast(mob/living/speaker, message, speaker_mask) - log_say("[key_name(speaker)] : ([name]) [message]") + log_say("[key_name(speaker)] : ([name]) [message] (AREA: [get_area_name(speaker)])") for(var/mob/player in GLOB.player_list) @@ -60,12 +60,12 @@ /datum/language/proc/add_to_cache(input, scrambled_text) // Add it to cache, cutting old entries if the list is too long scramble_cache[input] = scrambled_text - if(scramble_cache.len > SCRAMBLE_CACHE_LEN) - scramble_cache.Cut(1, scramble_cache.len-SCRAMBLE_CACHE_LEN-1) + if(length(scramble_cache) > SCRAMBLE_CACHE_LEN) + scramble_cache.Cut(1, length(scramble_cache)-SCRAMBLE_CACHE_LEN-1) /datum/language/proc/scramble(input) - if(!syllables || !syllables.len) + if(!LAZYLEN(syllables)) return stars(input) // If the input is cached already, move it to the end of the cache and return it diff --git a/code/modules/mob/language/language_handling.dm b/code/modules/mob/language/language_handling.dm index d9df36681261..c45ced8ad150 100644 --- a/code/modules/mob/language/language_handling.dm +++ b/code/modules/mob/language/language_handling.dm @@ -18,7 +18,7 @@ return 0 /mob/proc/get_default_language() - if (languages.len > 0) + if (length(languages) > 0) return languages[1] return null diff --git a/code/modules/mob/language/languages.dm b/code/modules/mob/language/languages.dm index 2844b5841781..cfa023c7d9cd 100644 --- a/code/modules/mob/language/languages.dm +++ b/code/modules/mob/language/languages.dm @@ -174,7 +174,7 @@ GLOB.STUI.game.Add("\[[time_stamp()]]APOLLO: [key_name(speaker)] : [message]
            ") GLOB.STUI.processing |= STUI_LOG_GAME_CHAT - log_say("[speaker.name != "Unknown" ? speaker.name : "([speaker.real_name])"] \[APOLLO\]: [message] (CKEY: [speaker.key]) (JOB: [speaker.job])") + log_say("[speaker.name != "Unknown" ? speaker.name : "([speaker.real_name])"] \[APOLLO\]: [message] (CKEY: [speaker.key]) (JOB: [speaker.job]) (AREA: [get_area_name(speaker)])") log_ares_apollo(speaker.real_name, message) for (var/mob/dead in GLOB.dead_mob_list) if(!istype(dead,/mob/new_player) && !istype(dead,/mob/living/brain)) //No meta-evesdropping @@ -196,12 +196,6 @@ continue M.show_message("synthesised voice beeps, \"beep beep beep\"",2) - //robot binary xmitter component power usage - if (isrobot(speaker)) - var/mob/living/silicon/robot/R = speaker - var/datum/robot_component/C = R.components["comms"] - R.cell_use_power(C.active_usage) - /datum/language/event_hivemind name = LANGUAGE_TELEPATH desc = "An event only language that provides a hivemind for its users." diff --git a/code/modules/mob/living/blood.dm b/code/modules/mob/living/blood.dm index dea179e6ad48..c2d0c63e3307 100644 --- a/code/modules/mob/living/blood.dm +++ b/code/modules/mob/living/blood.dm @@ -110,9 +110,9 @@ //An even amount of each plasma and blood type if(plasma == PLASMA_EGG) //Preserve hive_number for the possible larva - O.reagents.add_reagent(plasma, amount / plasmas.len, list("hive_number" = hivenumber)) + O.reagents.add_reagent(plasma, amount / length(plasmas), list("hive_number" = hivenumber)) else - O.reagents.add_reagent(plasma, amount / plasmas.len) + O.reagents.add_reagent(plasma, amount / length(plasmas)) blood_volume = max(0, blood_volume - amount) return 1 @@ -128,7 +128,7 @@ blood_data["blood_type"] = get_blood_type() - blood_data["blood_colour"] = get_blood_color() + blood_data["blood_color"] = get_blood_color() blood_data["viruses"] = list() return blood_data @@ -142,7 +142,7 @@ for(var/datum/disease/D in viruses) blood_data["viruses"] += D.Copy() - if(resistances && resistances.len) + if(LAZYLEN(resistances)) blood_data["resistances"] = resistances.Copy() return blood_data diff --git a/code/modules/mob/living/brain/brain.dm b/code/modules/mob/living/brain/brain.dm index b815fe4e3621..0930d02f3601 100644 --- a/code/modules/mob/living/brain/brain.dm +++ b/code/modules/mob/living/brain/brain.dm @@ -22,17 +22,7 @@ . = ..() /mob/living/brain/say_understands(mob/other)//Goddamn is this hackish, but this say code is so odd - if (isAI(other)) - if(!(container && istype(container, /obj/item/device/mmi))) - return 0 - else - return 1 - if (istype(other, /mob/living/silicon/decoy)) - if(!(container && istype(container, /obj/item/device/mmi))) - return 0 - else - return 1 - if (isrobot(other)) + if (isSilicon(other)) if(!(container && istype(container, /obj/item/device/mmi))) return 0 else diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index a5ef1231a140..36d2518d7e75 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -48,7 +48,7 @@ M.show_message(SPAN_DANGER("You hear something rumbling inside [src]'s stomach..."), SHOW_MESSAGE_AUDIBLE) var/obj/item/I = user.get_active_hand() if(I && I.force) - var/d = rand(round(I.force / 4), I.force) + var/d = rand(floor(I.force / 4), I.force) if(istype(src, /mob/living/carbon/human)) var/mob/living/carbon/human/H = src var/organ = H.get_limb("chest") @@ -110,7 +110,7 @@ var/obj/O = A if(O.unacidable) O.forceMove(get_turf(loc)) - O.throw_atom(pick(range(get_turf(loc), 1)), 1, SPEED_FAST) + O.throw_atom(pick(range(1, get_turf(loc))), 1, SPEED_FAST) . = ..(cause) @@ -399,22 +399,28 @@ bodytemperature = max(bodytemperature, BODYTEMP_HEAT_DAMAGE_LIMIT+10) recalculate_move_delay = TRUE - -/mob/living/carbon/show_inv(mob/living/carbon/user as mob) - user.set_interaction(src) - var/dat = {" -
            [name]
            -

            -
            Head(Mask): [(wear_mask ? wear_mask : "Nothing")] -
            Left Hand: [(l_hand ? l_hand : "Nothing")] -
            Right Hand: [(r_hand ? r_hand : "Nothing")] -
            Back: [(back ? back : "Nothing")] [((istype(wear_mask, /obj/item/clothing/mask) && istype(back, /obj/item/tank) && !( internal )) ? " Set Internal" : "")] -
            [(handcuffed ? "Handcuffed" : "Not Handcuffed")] -
            [(internal ? "Remove Internal" : "")] -
            Refresh -
            Close -
            "} - show_browser(user, dat, name, "mob[name]") +/** + * Called by [/mob/dead/observer/proc/do_observe] when a carbon mob is observed by a ghost with [/datum/preferences/var/auto_observe] enabled. + * + * Any HUD changes past this point are handled by [/mob/dead/observer/proc/observe_target_screen_add] + * and [/mob/dead/observer/proc/observe_target_screen_remove]. + * + * Override on subtype mobs if they have any extra HUD elements/behaviour. + */ +/mob/living/carbon/proc/auto_observed(mob/dead/observer/observer) + SHOULD_CALL_PARENT(TRUE) + + LAZYINITLIST(observers) + observers |= observer + hud_used.show_hud(hud_used.hud_version, observer) + + // Add the player's action buttons (not the actions themselves) to the observer's screen. + for(var/datum/action/action as anything in actions) + // Skip any hidden ones (of course). + if(action.hidden || action.player_hidden) + continue + + observer.client.add_to_screen(action.button) //generates realistic-ish pulse output based on preset levels /mob/living/carbon/proc/get_pulse(method) //method 0 is for hands, 1 is for machines, more accurate @@ -476,7 +482,7 @@ /mob/living/carbon/on_stored_atom_del(atom/movable/AM) ..() - if(stomach_contents.len && ismob(AM)) + if(length(stomach_contents) && ismob(AM)) for(var/X in stomach_contents) if(AM == X) stomach_contents -= AM diff --git a/code/modules/mob/living/carbon/carbon_defines.dm b/code/modules/mob/living/carbon/carbon_defines.dm index 6ff2a96b72f0..03a8abef22af 100644 --- a/code/modules/mob/living/carbon/carbon_defines.dm +++ b/code/modules/mob/living/carbon/carbon_defines.dm @@ -5,7 +5,7 @@ var/life_tick = 0 // The amount of life ticks that have processed on this mob. - var/obj/item/handcuffs/handcuffed = null //Whether or not the mob is handcuffed + var/obj/item/restraint/handcuffs/handcuffed = null //Whether or not the mob is handcuffed var/overeat_cooldown = 0 diff --git a/code/modules/mob/living/carbon/human/death.dm b/code/modules/mob/living/carbon/human/death.dm index 5890a44f4168..34582a6612d4 100644 --- a/code/modules/mob/living/carbon/human/death.dm +++ b/code/modules/mob/living/carbon/human/death.dm @@ -10,13 +10,16 @@ // Override the current limb status E.droplimb(0, 0, cause) - undefibbable = TRUE + GLOB.data_core.manifest_modify(real_name, WEAKREF(src), null, null, "*Deceased*") if(is_a_synth) spawn_gibs() return + + undefibbable = TRUE + ..() /mob/living/carbon/human/gib_animation() @@ -75,14 +78,22 @@ // Finding the last guy for anti-delay. if(SSticker.mode && SSticker.mode.is_in_endgame && SSticker.current_state != GAME_STATE_FINISHED && is_mainship_level(z)) var/mob/last_living_human + var/shipside_humans_count = 0 + var/datum/hive_status/main_hive = GLOB.hive_datum[XENO_HIVE_NORMAL] + var/see_humans_on_tacmap = main_hive.see_humans_on_tacmap for(var/mob/living/carbon/human/cur_human as anything in GLOB.alive_human_list) if(!is_mainship_level(cur_human.z)) continue - if(last_living_human) + shipside_humans_count++ + if(last_living_human && see_humans_on_tacmap) last_living_human = null break last_living_human = cur_human - if(last_living_human && (GLOB.last_qm_callout + 2 MINUTES) < world.time) + + if(!see_humans_on_tacmap && shipside_humans_count < (main_hive.get_real_total_xeno_count() * HIJACK_RATIO_FOR_TACMAP)) + xeno_announcement("There is only a handful of tallhosts left, they are now visible on our hive mind map.", XENO_HIVE_NORMAL, SPAN_ANNOUNCEMENT_HEADER_BLUE("[QUEEN_MOTHER_ANNOUNCE]")) + main_hive.see_humans_on_tacmap = TRUE + if(last_living_human && shipside_humans_count <= 1 && (GLOB.last_qm_callout + 2 MINUTES) < world.time) GLOB.last_qm_callout = world.time // Tell the xenos where the human is. xeno_announcement("I sense the last tallhost hiding in [get_area(last_living_human)].", XENO_HIVE_NORMAL, SPAN_ANNOUNCEMENT_HEADER_BLUE("[QUEEN_MOTHER_ANNOUNCE]")) @@ -120,3 +131,5 @@ else if(death_data?.cause_name == "existing") // Corpses spawn as gibbed true to avoid sfx, even though they aren't actually gibbed... AddComponent(/datum/component/weed_food) + + update_execute_hud() diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm index 62fbd1da09fa..c8820ec3b97d 100644 --- a/code/modules/mob/living/carbon/human/examine.dm +++ b/code/modules/mob/living/carbon/human/examine.dm @@ -129,7 +129,7 @@ if(gloves && !skipgloves) msg += "[t_He] [t_has] [gloves.get_examine_line(user)] [gloves.get_examine_location(src, user, WEAR_HANDS, t_He, t_his, t_him, t_has, t_is)].\n" else if(hands_blood_color) - msg += SPAN_WARNING("[t_He] [t_has] [(hands_blood_color != "#030303") ? "blood" : "oil"]-stained hands!\n") + msg += SPAN_WARNING("[t_He] [t_has] [(hands_blood_color != COLOR_OIL) ? "blood" : "oil"]-stained hands!\n") //belt if(belt) @@ -139,7 +139,7 @@ if(shoes && !skipshoes) msg += "[t_He] [t_is] wearing [shoes.get_examine_line(user)] [shoes.get_examine_location(src, user, WEAR_FEET, t_He, t_his, t_him, t_has, t_is)].\n" else if(feet_blood_color) - msg += SPAN_WARNING("[t_He] [t_has] [(feet_blood_color != "#030303") ? "blood" : "oil"]-stained feet!\n") + msg += SPAN_WARNING("[t_He] [t_has] [(feet_blood_color != COLOR_OIL) ? "blood" : "oil"]-stained feet!\n") //mask if(wear_mask && !skipmask) @@ -160,6 +160,13 @@ if(wear_id) msg += "[t_He] [t_is] [wear_id.get_examine_location(src, user, WEAR_ID, t_He, t_his, t_him, t_has, t_is)].\n" + //Restraints + if(handcuffed) + msg += SPAN_ORANGE("[capitalize(t_his)] arms are restrained by [handcuffed].\n") + + if(legcuffed) + msg += SPAN_ORANGE("[capitalize(t_his)] ankles are restrained by [legcuffed].\n") + //Admin-slept if(sleeping > 8000000) msg += SPAN_HIGHDANGER("This player has been slept by staff.\n") @@ -256,7 +263,7 @@ wound_flavor_text["[temp.display_name]"] += SPAN_WARNING(pick(" a lot of burns"," severe melting")) if(wound_flavor_text["[temp.display_name]"]) wound_flavor_text["[temp.display_name]"] += SPAN_WARNING("!\n") - else if(temp.wounds.len > 0) + else if(length(temp.wounds) > 0) var/list/wound_descriptors = list() for(var/datum/wound/W as anything in temp.wounds) if(W.internal && incision_depths[temp.name] == SURGERY_DEPTH_SURFACE) @@ -279,37 +286,37 @@ wound_descriptors[this_wound_desc] += W.amount continue wound_descriptors[this_wound_desc] = W.amount - if(wound_descriptors.len) + if(length(wound_descriptors)) var/list/flavor_text = list() var/list/no_exclude = list("gaping wound", "big gaping wound", "massive wound", "large bruise",\ "huge bruise", "massive bruise", "severe burn", "large burn", "deep burn", "carbonised area") for(var/wound in wound_descriptors) switch(wound_descriptors[wound]) if(1) - if(!flavor_text.len) + if(!length(flavor_text)) flavor_text += SPAN_WARNING("[t_He] has[prob(10) && !(wound in no_exclude) ? " what might be" : ""] a [wound]") else flavor_text += "[prob(10) && !(wound in no_exclude) ? " what might be" : ""] a [wound]" if(2) - if(!flavor_text.len) + if(!length(flavor_text)) flavor_text += SPAN_WARNING("[t_He] has[prob(10) && !(wound in no_exclude) ? " what might be" : ""] a pair of [wound]s") else flavor_text += "[prob(10) && !(wound in no_exclude) ? " what might be" : ""] a pair of [wound]s" if(3 to 5) - if(!flavor_text.len) + if(!length(flavor_text)) flavor_text += SPAN_WARNING("[t_He] has several [wound]s") else flavor_text += " several [wound]s" if(6 to INFINITY) - if(!flavor_text.len) + if(!length(flavor_text)) flavor_text += SPAN_WARNING("[t_He] has a bunch of [wound]s") else flavor_text += " a ton of [wound]\s" var/flavor_text_string = "" - for(var/text = 1, text <= flavor_text.len, text++) - if(text == flavor_text.len && flavor_text.len > 1) + for(var/text = 1, text <= length(flavor_text), text++) + if(text == length(flavor_text) && length(flavor_text) > 1) flavor_text_string += ", and" - else if(flavor_text.len > 1 && text > 1) + else if(length(flavor_text) > 1 && text > 1) flavor_text_string += "," flavor_text_string += flavor_text[text] flavor_text_string += " on [t_his] [temp.display_name].

            " @@ -528,32 +535,23 @@ if(istype(passed_mob, /mob/living/carbon/human)) var/mob/living/carbon/human/passed_human = passed_mob if (issynth(passed_human)) - return 1 + return TRUE switch(hudtype) if("security") if(skillcheck(passed_human, SKILL_POLICE, SKILL_POLICE_SKILLED)) var/datum/mob_hud/sec_hud = GLOB.huds[MOB_HUD_SECURITY_ADVANCED] - if(locate(passed_mob) in sec_hud.hudusers) + if(sec_hud.hudusers[passed_human]) return TRUE if("medical") if(skillcheck(passed_human, SKILL_MEDICAL, SKILL_MEDICAL_MEDIC)) var/datum/mob_hud/med_hud = GLOB.huds[MOB_HUD_MEDICAL_ADVANCED] - if(locate(passed_mob) in med_hud.hudusers) + if(med_hud.hudusers[passed_human]) return TRUE if("squadleader") - var/datum/mob_hud/faction_hud = GLOB.huds[MOB_HUD_FACTION_USCM] - if(passed_human.mind && passed_human.assigned_squad && passed_human.assigned_squad.squad_leader == passed_human && locate(passed_mob) in faction_hud.hudusers) + var/datum/mob_hud/faction_hud = GLOB.huds[MOB_HUD_FACTION_MARINE] + if(passed_human.mind && passed_human.assigned_squad && passed_human.assigned_squad.squad_leader == passed_human && faction_hud.hudusers[passed_mob]) return TRUE else - return 0 - else if(isrobot(passed_mob)) - var/mob/living/silicon/robot/R = passed_mob - switch(hudtype) - if("security") - return istype(R.module_state_1, /obj/item/robot/sight/hud/sec) || istype(R.module_state_2, /obj/item/robot/sight/hud/sec) || istype(R.module_state_3, /obj/item/robot/sight/hud/sec) - if("medical") - return istype(R.module_state_1, /obj/item/robot/sight/hud/med) || istype(R.module_state_2, /obj/item/robot/sight/hud/med) || istype(R.module_state_3, /obj/item/robot/sight/hud/med) - else - return 0 + return FALSE else - return 0 + return FALSE diff --git a/code/modules/mob/living/carbon/human/exercise.dm b/code/modules/mob/living/carbon/human/exercise.dm index 3a2976da9130..9e01aa863244 100644 --- a/code/modules/mob/living/carbon/human/exercise.dm +++ b/code/modules/mob/living/carbon/human/exercise.dm @@ -83,7 +83,7 @@ Verbs related to getting fucking jacked, bro if(!get_limb(zone)) extremities.Remove(zone) - if(extremities.len < 8) + if(length(extremities) < 8) to_chat(src, SPAN_WARNING("How do you think you'll be able to do a pushup without two hands and feet to stand on? See a doctor!")) return FALSE diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 6170aec3031c..213d037afe6e 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -13,7 +13,7 @@ create_reagents(1000) if(!real_name || !name) change_real_name(src, "unknown") - + AddElement(/datum/element/strippable, GLOB.strippable_human_items, TYPE_PROC_REF(/mob/living/carbon/human, should_strip)) . = ..() prev_gender = gender // Debug for plural genders @@ -171,12 +171,12 @@ var/knockdown_minus_armor = min(knockdown_value * bomb_armor_mult, 1 SECONDS) var/obj/item/item1 = get_active_hand() var/obj/item/item2 = get_inactive_hand() - apply_effect(round(knockdown_minus_armor), WEAKEN) - apply_effect(round(knockdown_minus_armor), STUN) // Remove this to let people crawl after an explosion. Funny but perhaps not desirable. + apply_effect(floor(knockdown_minus_armor), WEAKEN) + apply_effect(floor(knockdown_minus_armor), STUN) // Remove this to let people crawl after an explosion. Funny but perhaps not desirable. var/knockout_value = damage * 0.1 var/knockout_minus_armor = min(knockout_value * bomb_armor_mult * 0.5, 0.5 SECONDS) // the KO time is halved from the knockdown timer. basically same stun time, you just spend less time KO'd. - apply_effect(round(knockout_minus_armor), PARALYZE) - apply_effect(round(knockout_minus_armor) * 2, DAZE) + apply_effect(floor(knockout_minus_armor), PARALYZE) + apply_effect(floor(knockout_minus_armor) * 2, DAZE) explosion_throw(severity, direction) if(item1 && isturf(item1.loc)) @@ -272,46 +272,28 @@ -/mob/living/carbon/human/show_inv(mob/living/user) - if(ismaintdrone(user)) +/** + * Handles any storage containers that the human is looking inside when auto-observed. + */ +/mob/living/carbon/human/auto_observed(mob/dead/observer/observer) + . = ..() + + // If `src` doesn't have an inventory open. + if(!s_active) return - var/obj/item/clothing/under/suit = null - if(istype(w_uniform, /obj/item/clothing/under)) - suit = w_uniform - - user.set_interaction(src) - var/dat = {" -
            [name]
            -

            -
            (Exo)Suit: [(wear_suit ? wear_suit : "Nothing")] -
            Suit Storage: [(s_store ? s_store : "Nothing")] [((istype(wear_mask, /obj/item/clothing/mask) && istype(s_store, /obj/item/tank) && !( internal )) ? " Set Internal" : "")] -
            Back: [(back ? back : "Nothing")] [((istype(wear_mask, /obj/item/clothing/mask) && istype(back, /obj/item/tank) && !( internal )) ? " Set Internal" : "")] -
            Head(Mask): [(wear_mask ? wear_mask : "Nothing")] -
            Left Hand: [(l_hand ? l_hand : "Nothing")] -
            Right Hand: [(r_hand ? r_hand : "Nothing")] -
            Gloves: [(gloves ? gloves : "Nothing")] -
            Eyes: [(glasses ? glasses : "Nothing")] -
            Left Ear: [(wear_l_ear ? wear_l_ear : "Nothing")] -
            Right Ear: [(wear_r_ear ? wear_r_ear : "Nothing")] -
            Head: [(head ? head : "Nothing")] -
            Shoes: [(shoes ? shoes : "Nothing")] -
            Belt: [(belt ? belt : "Nothing")] [((istype(wear_mask, /obj/item/clothing/mask) && istype(belt, /obj/item/tank) && !internal) ? " Set Internal" : "")] -
            Uniform: [(w_uniform ? w_uniform : "Nothing")] [(suit) ? ((suit.has_sensor == UNIFORM_HAS_SENSORS) ? " Sensors" : "") : null] -
            ID: [(wear_id ? wear_id : "Nothing")] -
            Left Pocket: [(l_store ? l_store : "Nothing")] -
            Right Pocket: [(r_store ? r_store : "Nothing")] -
            - [handcuffed ? "
            Handcuffed" : ""] - [legcuffed ? "
            Legcuffed" : ""] - [suit && LAZYLEN(suit.accessories) ? "
            Remove Accessory" : ""] - [internal ? "
            Remove Internal" : ""] - [istype(wear_id, /obj/item/card/id/dogtag) ? "
            Retrieve Info Tag" : ""] -
            Remove Splints -
            -
            Refresh -
            Close -
            "} - show_browser(user, dat, name, "mob[name]") + + // Add the storage interface to `observer`'s screen. + observer.client.add_to_screen(s_active.closer) + observer.client.add_to_screen(s_active.contents) + + // If the storage has a set number of item slots. + if(s_active.storage_slots) + observer.client.add_to_screen(s_active.boxes) + // If the storage instead has a maximum combined item 'weight'. + else + observer.client.add_to_screen(s_active.storage_start) + observer.client.add_to_screen(s_active.storage_continue) + observer.client.add_to_screen(s_active.storage_end) // called when something steps onto a human // this handles mulebots and vehicles @@ -405,9 +387,6 @@ /mob/living/carbon/human/Topic(href, href_list) - if(href_list["refresh"]) - if(interactee&&(in_range(src, usr))) - show_inv(interactee) if(href_list["mach_close"]) var/t1 = text("window=[]", href_list["mach_close"]) @@ -452,76 +431,6 @@ what = usr.get_active_hand() usr.stripPanelEquip(what,src,slot) - if(href_list["internal"]) - - if(!usr.action_busy && !usr.is_mob_incapacitated() && Adjacent(usr)) - attack_log += text("\[[time_stamp()]\] Has had their internals toggled by [key_name(usr)]") - usr.attack_log += text("\[[time_stamp()]\] Attempted to toggle [key_name(src)]'s' internals") - if(internal) - usr.visible_message(SPAN_DANGER("[usr] is trying to disable [src]'s internals"), null, null, 3) - else - usr.visible_message(SPAN_DANGER("[usr] is trying to enable [src]'s internals."), null, null, 3) - - if(do_after(usr, POCKET_STRIP_DELAY, INTERRUPT_ALL, BUSY_ICON_GENERIC, src, INTERRUPT_MOVED, BUSY_ICON_GENERIC)) - if(internal) - internal.add_fingerprint(usr) - internal = null - visible_message("[src] is no longer running on internals.", null, null, 1) - else - if(istype(wear_mask, /obj/item/clothing/mask)) - if(istype(back, /obj/item/tank)) - internal = back - else if(istype(s_store, /obj/item/tank)) - internal = s_store - else if(istype(belt, /obj/item/tank)) - internal = belt - if(internal) - visible_message(SPAN_NOTICE("[src] is now running on internals."), null, null, 1) - internal.add_fingerprint(usr) - - // Update strip window - if(usr.interactee == src && Adjacent(usr)) - show_inv(usr) - - - if(href_list["splints"]) - if(!usr.action_busy && !usr.is_mob_incapacitated() && Adjacent(usr)) - if(MODE_HAS_TOGGLEABLE_FLAG(MODE_NO_STRIPDRAG_ENEMY) && (stat == DEAD || health < HEALTH_THRESHOLD_CRIT) && !get_target_lock(usr.faction_group)) - to_chat(usr, SPAN_WARNING("You can't strip a crit or dead member of another faction!")) - return - attack_log += text("\[[time_stamp()]\] Has had their splints removed by [key_name(usr)]") - usr.attack_log += text("\[[time_stamp()]\] Attempted to remove [key_name(src)]'s' splints ") - remove_splints(usr) - - if(href_list["tie"]) - if(!usr.action_busy && !usr.is_mob_incapacitated() && Adjacent(usr)) - if(MODE_HAS_TOGGLEABLE_FLAG(MODE_NO_STRIPDRAG_ENEMY) && (stat == DEAD || health < HEALTH_THRESHOLD_CRIT) && !get_target_lock(usr.faction_group)) - to_chat(usr, SPAN_WARNING("You can't strip a crit or dead member of another faction!")) - return - if(w_uniform && istype(w_uniform, /obj/item/clothing)) - var/obj/item/clothing/under/U = w_uniform - if(!LAZYLEN(U.accessories)) - return FALSE - var/obj/item/clothing/accessory/A = LAZYACCESS(U.accessories, 1) - if(LAZYLEN(U.accessories) > 1) - A = tgui_input_list(usr, "Select an accessory to remove from [U]", "Remove accessory", U.accessories) - if(!istype(A)) - return - attack_log += text("\[[time_stamp()]\] Has had their accessory ([A]) removed by [key_name(usr)]") - usr.attack_log += text("\[[time_stamp()]\] Attempted to remove [key_name(src)]'s' accessory ([A])") - if(istype(A, /obj/item/clothing/accessory/holobadge) || istype(A, /obj/item/clothing/accessory/medal)) - visible_message(SPAN_DANGER("[usr] tears off \the [A] from [src]'s [U]!"), null, null, 5) - if(U == w_uniform) - U.remove_accessory(usr, A) - else - if(HAS_TRAIT(src, TRAIT_UNSTRIPPABLE) && !is_mob_incapacitated()) //Can't strip the unstrippable! - to_chat(usr, SPAN_DANGER("[src] has an unbreakable grip on their equipment!")) - return - visible_message(SPAN_DANGER("[usr] is trying to take off \a [A] from [src]'s [U]!"), null, null, 5) - if(do_after(usr, get_strip_delay(usr, src), INTERRUPT_ALL, BUSY_ICON_GENERIC, src, INTERRUPT_MOVED, BUSY_ICON_GENERIC)) - if(U == w_uniform) - U.remove_accessory(usr, A) - if(href_list["sensor"]) if(!usr.action_busy && !usr.is_mob_incapacitated() && Adjacent(usr)) if(MODE_HAS_TOGGLEABLE_FLAG(MODE_NO_STRIPDRAG_ENEMY) && (stat == DEAD || health < HEALTH_THRESHOLD_CRIT) && !get_target_lock(usr.faction_group)) @@ -694,10 +603,6 @@ var/mob/living/carbon/human/U = usr new_comment["created_by"]["name"] = U.get_authentification_name() new_comment["created_by"]["rank"] = U.get_assignment() - else if(istype(usr,/mob/living/silicon/robot)) - var/mob/living/silicon/robot/U = usr - new_comment["created_by"]["name"] = U.name - new_comment["created_by"]["rank"] = "[U.modtype] [U.braintype]" if(!islist(R.fields["comments"])) R.fields["comments"] = list("1" = new_comment) else @@ -732,9 +637,6 @@ if(istype(usr,/mob/living/carbon/human)) var/mob/living/carbon/human/U = usr U.handle_regular_hud_updates() - if(istype(usr,/mob/living/silicon/robot)) - var/mob/living/silicon/robot/U = usr - U.handle_regular_hud_updates() if(!modified) to_chat(usr, SPAN_DANGER("Unable to locate a data core entry for this person.")) @@ -818,30 +720,9 @@ if(istype(usr,/mob/living/carbon/human)) var/mob/living/carbon/human/U = usr R.fields[text("com_[counter]")] = text("Made by [U.get_authentification_name()] ([U.get_assignment()]) on [time2text(world.realtime, "DDD MMM DD hh:mm:ss")], [GLOB.game_year]
            [t1]") - if(istype(usr,/mob/living/silicon/robot)) - var/mob/living/silicon/robot/U = usr - R.fields[text("com_[counter]")] = text("Made by [U.name] ([U.modtype] [U.braintype]) on [time2text(world.realtime, "DDD MMM DD hh:mm:ss")], [GLOB.game_year]
            [t1]") if(href_list["medholocard"]) - if(!skillcheck(usr, SKILL_MEDICAL, SKILL_MEDICAL_MEDIC)) - to_chat(usr, SPAN_WARNING("You're not trained to use this.")) - return - if(!has_species(src, "Human")) - to_chat(usr, SPAN_WARNING("Triage holocards only works on humans.")) - return - var/newcolor = tgui_input_list(usr, "Choose a triage holo card to add to the patient:", "Triage holo card", list("black", "red", "orange", "none")) - if(!newcolor) return - if(get_dist(usr, src) > 7) - to_chat(usr, SPAN_WARNING("[src] is too far away.")) - return - if(newcolor == "none") - if(!holo_card_color) return - holo_card_color = null - to_chat(usr, SPAN_NOTICE("You remove the holo card on [src].")) - else if(newcolor != holo_card_color) - holo_card_color = newcolor - to_chat(usr, SPAN_NOTICE("You add a [newcolor] holo card on [src].")) - update_targeted() + change_holo_card(usr) if(href_list["lookitem"]) var/obj/item/I = locate(href_list["lookitem"]) @@ -893,6 +774,39 @@ ..() return +/mob/living/carbon/human/proc/change_holo_card(mob/user) + if(isobserver(user)) + return + if(!skillcheck(user, SKILL_MEDICAL, SKILL_MEDICAL_MEDIC)) + // Removing your own holocard when you are not trained + if(user == src && holo_card_color) + if(tgui_alert(user, "Are you sure you want to reset your own holocard?", "Resetting Holocard", list("Yes", "No")) != "Yes") + return + holo_card_color = null + to_chat(user, SPAN_NOTICE("You reset your holocard.")) + hud_set_holocard() + return + to_chat(user, SPAN_WARNING("You're not trained to use this.")) + return + if(!has_species(src, "Human")) + to_chat(user, SPAN_WARNING("Triage holocards only works on humans.")) + return + var/newcolor = tgui_input_list(user, "Choose a triage holo card to add to the patient:", "Triage holo card", list("black", "red", "orange", "purple", "none")) + if(!newcolor) + return + if(get_dist(user, src) > 7) + to_chat(user, SPAN_WARNING("[src] is too far away.")) + return + if(newcolor == "none") + if(!holo_card_color) + return + holo_card_color = null + to_chat(user, SPAN_NOTICE("You remove the holo card on [src].")) + else if(newcolor != holo_card_color) + holo_card_color = newcolor + to_chat(user, SPAN_NOTICE("You add a [newcolor] holo card on [src].")) + hud_set_holocard() + /mob/living/carbon/human/tgui_interact(mob/user, datum/tgui/ui) // I'M SORRY, SO FUCKING SORRY . = ..() ui = SStgui.try_update_ui(user, src, ui) @@ -1086,8 +1000,8 @@ if(self) var/list/L = get_broken_limbs() - list("chest","head","groin") - if(L.len > 0) - msg += "Your [english_list(L)] [L.len > 1 ? "are" : "is"] broken\n" + if(length(L) > 0) + msg += "Your [english_list(L)] [length(L) > 1 ? "are" : "is"] broken\n" to_chat(usr,SPAN_NOTICE("You [self ? "take a moment to analyze yourself":"start analyzing [src]"]")) if(toxloss > 20) msg += "[self ? "Your" : "Their"] skin is slightly green\n" @@ -1098,9 +1012,9 @@ for(var/datum/effects/bleeding/internal/internal_bleed in effects_list) msg += "They have bloating and discoloration on their [internal_bleed.limb.display_name]\n" - if(knocked_out && stat != DEAD) + if(stat == UNCONSCIOUS) msg += "They seem to be unconscious\n" - if(stat == DEAD) + else if(stat == DEAD) if(src.check_tod() && is_revivable()) msg += "They're not breathing" else @@ -1173,7 +1087,7 @@ for(var/datum/cm_objective/Objective in src.mind.objective_memory.disks) src.mind.objective_memory.disks -= Objective -/mob/living/carbon/human/proc/set_species(new_species, default_colour) +/mob/living/carbon/human/proc/set_species(new_species, default_color) if(!new_species) new_species = "Human" @@ -1207,7 +1121,7 @@ species.create_organs(src) - if(species.base_color && default_colour) + if(species.base_color && default_color) //Apply color. r_skin = hex2num(copytext(species.base_color,2,4)) g_skin = hex2num(copytext(species.base_color,4,6)) @@ -1345,6 +1259,11 @@ if(TRACKER_XO) H = GLOB.marine_leaders[JOB_XO] tracking_suffix = "_xo" + if(TRACKER_CMP) + var/datum/job/command/warrant/cmp_job = GLOB.RoleAuthority.roles_for_mode[JOB_CHIEF_POLICE] + if(cmp_job?.active_cmp) + H = cmp_job.active_cmp + tracking_suffix = "_cmp" if(TRACKER_CL) var/datum/job/civilian/liaison/liaison_job = GLOB.RoleAuthority.roles_for_mode[JOB_CORPORATE_LIAISON] if(liaison_job?.active_liaison) @@ -1358,10 +1277,18 @@ if(!H || H.w_uniform?.sensor_mode != SENSOR_MODE_LOCATION) return - if(H.z != src.z || get_dist(src,H) < 1 || src == H) + + var/atom/tracking_atom = H + if(tracking_atom.z != src.z && SSinterior.in_interior(tracking_atom)) + var/datum/interior/interior = SSinterior.get_interior_by_coords(tracking_atom.x, tracking_atom.y, tracking_atom.z) + var/atom/exterior = interior.exterior + if(exterior) + tracking_atom = exterior + + if(tracking_atom.z != src.z || get_dist(src, tracking_atom) < 1 || src == tracking_atom) hud_used.locate_leader.icon_state = "trackondirect[tracking_suffix]" else - hud_used.locate_leader.setDir(Get_Compass_Dir(src,H)) + hud_used.locate_leader.setDir(Get_Compass_Dir(src, tracking_atom)) hud_used.locate_leader.icon_state = "trackon[tracking_suffix]" /mob/living/carbon/proc/locate_nearest_nuke() @@ -1445,35 +1372,34 @@ /mob/living/carbon/human/verb/remove_your_splints() set name = "Remove Your Splints" - set category = "Object" + set category = "IC" remove_splints() // target = person whose splints are being removed -// source = person removing the splints -/mob/living/carbon/human/proc/remove_splints(mob/living/carbon/human/source) - var/mob/living/carbon/human/HT = src - var/mob/living/carbon/human/HS = source - - if(!istype(HS)) - HS = src - if(!istype(HS) || !istype(HT)) +// user = person removing the splints +/mob/living/carbon/human/proc/remove_splints(mob/living/carbon/human/user) + var/mob/living/carbon/human/target = src + + if(!istype(user)) + user = src + if(!istype(user) || !istype(target)) return var/cur_hand = "l_hand" - if(!HS.hand) + if(!user.hand) cur_hand = "r_hand" - if(!HS.action_busy) + if(!user.action_busy) var/list/obj/limb/to_splint = list() var/same_arm_side = FALSE // If you are trying to splint yourself, need opposite hand to splint an arm/hand - if(HS.get_limb(cur_hand).status & LIMB_DESTROYED) - to_chat(HS, SPAN_WARNING("You cannot remove splints without a hand.")) + if(user.get_limb(cur_hand).status & LIMB_DESTROYED) + to_chat(user, SPAN_WARNING("You cannot remove splints without a hand.")) return for(var/bodypart in list("l_leg","r_leg","l_arm","r_arm","r_hand","l_hand","r_foot","l_foot","chest","head","groin")) - var/obj/limb/l = HT.get_limb(bodypart) + var/obj/limb/l = target.get_limb(bodypart) if(l && (l.status & LIMB_SPLINTED)) - if(HS == HT) + if(user == target) if((bodypart in list("l_arm", "l_hand")) && (cur_hand == "l_hand")) same_arm_side = TRUE continue @@ -1483,44 +1409,46 @@ to_splint.Add(l) var/msg = "" // Have to use this because there are issues with the to_chat macros and text macros and quotation marks - if(to_splint.len) - if(do_after(HS, HUMAN_STRIP_DELAY * HS.get_skill_duration_multiplier(SKILL_MEDICAL), INTERRUPT_ALL, BUSY_ICON_GENERIC, HT, INTERRUPT_MOVED, BUSY_ICON_GENERIC)) + if(length(to_splint)) + if(do_after(user, HUMAN_STRIP_DELAY * user.get_skill_duration_multiplier(SKILL_MEDICAL), INTERRUPT_ALL, BUSY_ICON_GENERIC, target, INTERRUPT_MOVED, BUSY_ICON_GENERIC)) var/can_reach_splints = TRUE var/amount_removed = 0 if(wear_suit && istype(wear_suit,/obj/item/clothing/suit/space)) - var/obj/item/clothing/suit/space/suit = HT.wear_suit - if(suit.supporting_limbs && suit.supporting_limbs.len) - msg = "[HS == HT ? "your":"\proper [HT]'s"]" - to_chat(HS, SPAN_WARNING("You cannot remove the splints, [msg] [suit] is supporting some of the breaks.")) + var/obj/item/clothing/suit/space/suit = target.wear_suit + if(LAZYLEN(suit.supporting_limbs)) + msg = "[user == target ? "your":"\proper [target]'s"]" + to_chat(user, SPAN_WARNING("You cannot remove the splints, [msg] [suit] is supporting some of the breaks.")) can_reach_splints = FALSE if(can_reach_splints) - var/obj/item/stack/W = new /obj/item/stack/medical/splint(HS.loc) - W.amount = 0 //we checked that we have at least one bodypart splinted, so we can create it no prob. Also we need amount to be 0 - W.add_fingerprint(HS) - for(var/obj/limb/l in to_splint) + var/obj/item/stack/medical/splint/new_splint = new(user.loc) + new_splint.amount = 0 //we checked that we have at least one bodypart splinted, so we can create it no prob. Also we need amount to be 0 + new_splint.add_fingerprint(user) + for(var/obj/limb/cur_limb in to_splint) amount_removed++ - l.status &= ~LIMB_SPLINTED + cur_limb.status &= ~LIMB_SPLINTED pain.recalculate_pain() - if(l.status & LIMB_SPLINTED_INDESTRUCTIBLE) - new /obj/item/stack/medical/splint/nano(HS.loc, 1) - l.status &= ~LIMB_SPLINTED_INDESTRUCTIBLE - else if(!W.add(1)) - W = new /obj/item/stack/medical/splint(HS.loc)//old stack is dropped, time for new one - W.amount = 0 - W.add_fingerprint(HS) - W.add(1) - msg = "[HS == HT ? "their own":"\proper [HT]'s"]" - HT.visible_message(SPAN_NOTICE("[HS] removes [msg] [amount_removed>1 ? "splints":"splint"]."), \ + if(cur_limb.status & LIMB_SPLINTED_INDESTRUCTIBLE) + new /obj/item/stack/medical/splint/nano(user.loc, 1) + cur_limb.status &= ~LIMB_SPLINTED_INDESTRUCTIBLE + else if(!new_splint.add(1)) + new_splint = new(user.loc)//old stack is dropped, time for new one + new_splint.amount = 0 + new_splint.add_fingerprint(user) + new_splint.add(1) + if(new_splint.amount == 0) + qdel(new_splint) //we only removed nano splints + msg = "[user == target ? "their own":"\proper [target]'s"]" + target.visible_message(SPAN_NOTICE("[user] removes [msg] [amount_removed>1 ? "splints":"splint"]."), \ SPAN_NOTICE("Your [amount_removed>1 ? "splints are":"splint is"] removed.")) - HT.update_med_icon() + target.update_med_icon() else - msg = "[HS == HT ? "your":"\proper [HT]'s"]" - to_chat(HS, SPAN_NOTICE("You stop trying to remove [msg] splints.")) + msg = "[user == target ? "your":"\proper [target]'s"]" + to_chat(user, SPAN_NOTICE("You stop trying to remove [msg] splints.")) else if(same_arm_side) - to_chat(HS, SPAN_WARNING("You need to use the opposite hand to remove the splints on your arm and hand!")) + to_chat(user, SPAN_WARNING("You need to use the opposite hand to remove the splints on your arm and hand!")) else - to_chat(HS, SPAN_WARNING("There are no splints to remove.")) + to_chat(user, SPAN_WARNING("There are no splints to remove.")) /mob/living/carbon/human/yautja/Initialize(mapload) . = ..(mapload, new_species = "Yautja") @@ -1663,7 +1591,7 @@ QDEL_NULL(legcuffed) handcuff_update() else - var/displaytime = max(1, round(breakouttime / 600)) //Minutes + var/displaytime = max(1, floor(breakouttime / 600)) //Minutes to_chat(src, SPAN_WARNING("You attempt to remove [restraint]. (This will take around [displaytime] minute(s) and you need to stand still)")) for(var/mob/O in viewers(src)) O.show_message(SPAN_DANGER("[usr] attempts to remove [restraint]!"), 1) @@ -1748,3 +1676,51 @@ // clamped to max 500 if(dizziness > 100 && !is_dizzy) INVOKE_ASYNC(src, PROC_REF(dizzy_process)) + +/proc/setup_human(mob/living/carbon/human/target, mob/new_player/new_player, is_late_join = FALSE) + new_player.spawning = TRUE + new_player.close_spawn_windows() + new_player.client.prefs.copy_all_to(target, new_player.job, is_late_join) + + if(new_player.client.prefs.be_random_body) + var/datum/preferences/rand_prefs = new() + rand_prefs.randomize_appearance(target) + + target.job = new_player.job + target.name = new_player.real_name + target.voice = new_player.real_name + + if(new_player.mind) + new_player.mind_initialize() + new_player.mind.transfer_to(target, TRUE) + new_player.mind.setup_human_stats() + + target.sec_hud_set_ID() + target.hud_set_squad() + + INVOKE_ASYNC(target, TYPE_PROC_REF(/mob/living/carbon/human, regenerate_icons)) + INVOKE_ASYNC(target, TYPE_PROC_REF(/mob/living/carbon/human, update_body), 1, 0) + INVOKE_ASYNC(target, TYPE_PROC_REF(/mob/living/carbon/human, update_hair)) + +/mob/living/carbon/human/point_to_atom(atom/A, turf/T) + if(isitem(A)) + var/obj/item/item = A + if(item == get_active_hand() || item == get_inactive_hand()) + item.showoff(src) + return TRUE + return ..() + +/mob/living/carbon/human/on_knockedout_trait_gain(datum/source) + . = ..() + + update_execute_hud() + + return . + +/mob/living/carbon/human/on_knockedout_trait_loss(datum/source) + . = ..() + + update_execute_hud() + + return . + diff --git a/code/modules/mob/living/carbon/human/human_abilities.dm b/code/modules/mob/living/carbon/human/human_abilities.dm index b5a401bc5649..76ebbed06de6 100644 --- a/code/modules/mob/living/carbon/human/human_abilities.dm +++ b/code/modules/mob/living/carbon/human/human_abilities.dm @@ -124,7 +124,7 @@ CULT /datum/action/human_action/activable/can_use_action() var/mob/living/carbon/human/H = owner - if(istype(H) && !H.is_mob_incapacitated() && !H.dazed) + if(istype(H) && !H.is_mob_incapacitated() && !HAS_TRAIT(H, TRAIT_DAZED)) return TRUE // Called when the action is clicked on. @@ -250,7 +250,7 @@ CULT to_send_to = list(H) message_admins("[key_name_admin(H)] called a tech droppod down at [get_area(assigned_droppod)].", T.x, T.y, T.z) for(var/M in to_send_to) - to_chat(M, SPAN_BLUE("SUPPLY DROP REQUEST: Droppod requested at LONGITUDE: [obfuscate_x(T.x)], LATITUDE: [obfuscate_y(T.y)]. ETA [Floor(land_time*0.1)] seconds.")) + to_chat(M, SPAN_BLUE("SUPPLY DROP REQUEST: Droppod requested at LONGITUDE: [obfuscate_x(T.x)], LATITUDE: [obfuscate_y(T.y)]. ETA [floor(land_time*0.1)] seconds.")) RegisterSignal(assigned_droppod, COMSIG_PARENT_QDELETING, PROC_REF(handle_droppod_deleted)) */ @@ -605,3 +605,26 @@ CULT var/mob/living/carbon/human/human_user = owner SEND_SIGNAL(human_user, COMSIG_MOB_MG_EXIT) + +/datum/action/human_action/toggle_arc_antenna + name = "Toggle Sensor Antenna" + action_icon_state = "recoil_compensation" + +/datum/action/human_action/toggle_arc_antenna/give_to(mob/user) + . = ..() + RegisterSignal(user, COMSIG_MOB_RESET_VIEW, PROC_REF(remove_from)) + +/datum/action/human_action/toggle_arc_antenna/remove_from(mob/user) + . = ..() + UnregisterSignal(user, COMSIG_MOB_RESET_VIEW) + +/datum/action/human_action/toggle_arc_antenna/action_activate() + if(!can_use_action()) + return + + var/mob/living/carbon/human/human_user = owner + if(istype(human_user.buckled, /obj/structure/bed/chair/comfy/vehicle)) + var/obj/structure/bed/chair/comfy/vehicle/vehicle_chair = human_user.buckled + if(istype(vehicle_chair.vehicle, /obj/vehicle/multitile/arc)) + var/obj/vehicle/multitile/arc/vehicle = vehicle_chair.vehicle + vehicle.toggle_antenna(human_user) diff --git a/code/modules/mob/living/carbon/human/human_attackhand.dm b/code/modules/mob/living/carbon/human/human_attackhand.dm index dfbc2c971a8c..e664143be74d 100644 --- a/code/modules/mob/living/carbon/human/human_attackhand.dm +++ b/code/modules/mob/living/carbon/human/human_attackhand.dm @@ -4,9 +4,11 @@ if(..()) return TRUE + SEND_SIGNAL(attacking_mob, COMSIG_LIVING_ATTACKHAND_HUMAN, src) + if((attacking_mob != src) && check_shields(0, attacking_mob.name)) visible_message(SPAN_DANGER("[attacking_mob] attempted to touch [src]!"), null, null, 5) - return 0 + return FALSE switch(attacking_mob.a_intent) if(INTENT_HELP) @@ -21,7 +23,7 @@ SPAN_NOTICE("You extinguished the fire on [src]."), null, 5) return 1 - // If unconcious with oxygen damage, do CPR. If dead, we do CPR + // If unconscious with oxygen damage, do CPR. If dead, we do CPR if(!(stat == UNCONSCIOUS && getOxyLoss() > 0) && !(stat == DEAD)) help_shake_act(attacking_mob) return 1 @@ -58,9 +60,11 @@ revive_grace_period += 7 SECONDS attacking_mob.visible_message(SPAN_NOTICE("[attacking_mob] performs CPR on [src]."), SPAN_HELPFUL("You perform CPR on [src].")) + balloon_alert(attacking_mob, "you perform cpr") else attacking_mob.visible_message(SPAN_NOTICE("[attacking_mob] fails to perform CPR on [src]."), SPAN_HELPFUL("You fail to perform CPR on [src]. Incorrect rhythm. Do it slower.")) + balloon_alert(attacking_mob, "incorrect rhythm. do it slower") cpr_cooldown = world.time + 7 SECONDS cpr_attempt_timer = 0 return 1 @@ -86,7 +90,7 @@ attack = attacking_mob.species.secondary_unarmed return - last_damage_data = create_cause_data("fisticuffs", src) + last_damage_data = create_cause_data("fisticuffs", attacking_mob) attacking_mob.attack_log += text("\[[time_stamp()]\] [pick(attack.attack_verb)]ed [key_name(src)]") attack_log += text("\[[time_stamp()]\] Has been [pick(attack.attack_verb)]ed by [key_name(attacking_mob)]") msg_admin_attack("[key_name(attacking_mob)] [pick(attack.attack_verb)]ed [key_name(src)] in [get_area(src)] ([src.loc.x],[src.loc.y],[src.loc.z]).", src.loc.x, src.loc.y, src.loc.z) @@ -161,7 +165,9 @@ disarm_chance += 5 * defender_skill_level if(disarm_chance <= 25) - apply_effect(2 + max((attacker_skill_level - defender_skill_level), 0), WEAKEN) + var/strength = 2 + max((attacker_skill_level - defender_skill_level), 0) + KnockDown(strength) + Stun(strength) playsound(loc, 'sound/weapons/thudswoosh.ogg', 25, 1, 7) var/shove_text = attacker_skill_level > 1 ? "tackled" : pick("pushed", "shoved") visible_message(SPAN_DANGER("[attacking_mob] has [shove_text] [src]!"), null, null, 5) @@ -187,12 +193,6 @@ /mob/living/carbon/human/help_shake_act(mob/living/carbon/M) //Target is us if(src == M) - if(holo_card_color) //if we have a triage holocard printed on us, we remove it. - holo_card_color = null - update_targeted() - visible_message(SPAN_NOTICE("[src] removes the holo card on [gender==MALE?"himself":"herself"]."), \ - SPAN_NOTICE("You remove the holo card on yourself."), null, 3) - return check_for_injuries() return @@ -205,15 +205,17 @@ if (w_uniform) w_uniform.add_fingerprint(M) - - if(body_position == LYING_DOWN || sleeping) + if(HAS_TRAIT(src, TRAIT_FLOORED) || HAS_TRAIT(src, TRAIT_KNOCKEDOUT) || body_position == LYING_DOWN || sleeping) if(client) sleeping = max(0,src.sleeping-5) if(!sleeping) - set_resting(FALSE) + if(is_dizzy) + to_chat(M, SPAN_WARNING("[src] looks dizzy. Maybe you should let [t_him] rest a bit longer.")) + else + set_resting(FALSE) M.visible_message(SPAN_NOTICE("[M] shakes [src] trying to wake [t_him] up!"), \ SPAN_NOTICE("You shake [src] trying to wake [t_him] up!"), null, 4) - else if(stunned) + else if(HAS_TRAIT(src, TRAIT_INCAPACITATED)) M.visible_message(SPAN_NOTICE("[M] shakes [src], trying to shake [t_him] out of his stupor!"), \ SPAN_NOTICE("You shake [src], trying to shake [t_him] out of his stupor!"), null, 4) else diff --git a/code/modules/mob/living/carbon/human/human_damage.dm b/code/modules/mob/living/carbon/human/human_damage.dm index 90a4d7bca4ab..8a528df92de5 100644 --- a/code/modules/mob/living/carbon/human/human_damage.dm +++ b/code/modules/mob/living/carbon/human/human_damage.dm @@ -34,7 +34,7 @@ var/datum/internal_organ/brain/sponge = internal_organs_by_name["brain"] if(sponge) sponge.take_damage(amount) - sponge.damage = Clamp(sponge.damage, 0, maxHealth*2) + sponge.damage = clamp(sponge.damage, 0, maxHealth*2) brainloss = sponge.damage else brainloss = 200 @@ -49,7 +49,7 @@ if(species.has_organ["brain"]) var/datum/internal_organ/brain/sponge = internal_organs_by_name["brain"] if(sponge) - sponge.damage = Clamp(amount, 0, maxHealth*2) + sponge.damage = clamp(amount, 0, maxHealth*2) brainloss = sponge.damage else brainloss = 200 @@ -179,7 +179,7 @@ for(var/obj/limb/O in limbs) if(O.status & (LIMB_ROBOT|LIMB_DESTROYED|LIMB_MUTATED|LIMB_SYNTHSKIN)) continue candidates |= O - if(candidates.len) + if(length(candidates)) var/obj/limb/O = pick(candidates) O.mutate() to_chat(src, SPAN_NOTICE("Something is not right with your [O.display_name]...")) @@ -260,7 +260,7 @@ //It automatically updates health status /mob/living/carbon/human/heal_limb_damage(brute, burn) var/list/obj/limb/parts = get_damaged_limbs(brute,burn) - if(!parts.len) + if(!length(parts)) return var/obj/limb/picked = pick(parts) if(brute != 0) @@ -279,7 +279,7 @@ In most cases it makes more sense to use apply_damage() instead! And make sure t //It automatically updates health status /mob/living/carbon/human/take_limb_damage(brute, burn, sharp = 0, edge = 0) var/list/obj/limb/parts = get_damageable_limbs() - if(!parts.len) return + if(!length(parts)) return var/obj/limb/picked = pick(parts) if(brute != 0) apply_damage(brute, BRUTE, picked, sharp, edge) @@ -287,7 +287,6 @@ In most cases it makes more sense to use apply_damage() instead! And make sure t apply_damage(burn, BURN, picked, sharp, edge) UpdateDamageIcon() updatehealth() - speech_problem_flag = TRUE //Heal MANY limbs, in random order @@ -295,7 +294,7 @@ In most cases it makes more sense to use apply_damage() instead! And make sure t var/list/obj/limb/parts = get_damaged_limbs(brute,burn) var/update = 0 - while(parts.len && (brute>0 || burn>0) ) + while(length(parts) && (brute>0 || burn>0) ) var/obj/limb/picked = pick(parts) var/brute_was = picked.brute_dam @@ -308,22 +307,22 @@ In most cases it makes more sense to use apply_damage() instead! And make sure t parts -= picked updatehealth() - speech_problem_flag = TRUE + if(update) UpdateDamageIcon() // damage MANY limbs, in random order -/mob/living/carbon/human/take_overall_damage(brute, burn, sharp = 0, edge = 0, used_weapon = null) +/mob/living/carbon/human/take_overall_damage(brute, burn, used_weapon = null, limb_damage_chance = 80) if(status_flags & GODMODE) return //godmode - var/list/obj/limb/parts = get_damageable_limbs(80) + var/list/obj/limb/parts = get_damageable_limbs(limb_damage_chance) var/amount_of_parts = length(parts) for(var/obj/limb/L as anything in parts) - L.take_damage(brute / amount_of_parts, burn / amount_of_parts, sharp, edge, used_weapon) + L.take_damage(brute / amount_of_parts, burn / amount_of_parts, sharp = FALSE, edge = FALSE, used_weapon = used_weapon) updatehealth() UpdateDamageIcon() -// damage MANY LIMBS, in random order -/mob/living/carbon/human/proc/take_overall_armored_damage(damage, armour_type = ARMOR_MELEE, damage_type = BRUTE, limb_damage_chance = 80, penetration = 0, armour_break_pr_pen = 0, armour_break_flat = 0) +// damage MANY LIMBS, in random order, but consider armor +/mob/living/carbon/human/proc/take_overall_armored_damage(damage, armour_type = ARMOR_MELEE, damage_type = BRUTE, limb_damage_chance = 80, penetration = 0) if(status_flags & GODMODE) return //godmode var/list/obj/limb/parts = get_damageable_limbs(limb_damage_chance) @@ -331,6 +330,8 @@ In most cases it makes more sense to use apply_damage() instead! And make sure t var/armour_config = GLOB.marine_ranged if(armour_type == ARMOR_MELEE) armour_config = GLOB.marine_melee + if(armour_type == ARMOR_BOMB) + armour_config = GLOB.marine_explosive for(var/obj/limb/L as anything in parts) var/armor = getarmor(L, armour_type) var/modified_damage = armor_damage_reduction(armour_config, damage, armor, penetration, 0, 0) @@ -408,7 +409,7 @@ This function restores all limbs. permanent_kill = FALSE, mob/firer = null, force = FALSE ) if(protection_aura && damage > 0) - damage = round(damage * ((ORDER_HOLD_CALC_LEVEL - protection_aura) / ORDER_HOLD_CALC_LEVEL)) + damage = floor(damage * ((ORDER_HOLD_CALC_LEVEL - protection_aura) / ORDER_HOLD_CALC_LEVEL)) //Handle other types of damage if(damage < 0 || (damagetype != BRUTE) && (damagetype != BURN)) @@ -514,11 +515,3 @@ This function restores all limbs. damage_to_deal *= 0.25 // Massively reduced effectiveness stamina.apply_damage(damage_to_deal) - -/mob/living/carbon/human/knocked_out_start() - ..() - sound_environment_override = SOUND_ENVIRONMENT_PSYCHOTIC - -/mob/living/carbon/human/knocked_out_callback() - . = ..() - sound_environment_override = SOUND_ENVIRONMENT_NONE diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm index 42df439c5b55..09ce5bb9c149 100644 --- a/code/modules/mob/living/carbon/human/human_defense.dm +++ b/code/modules/mob/living/carbon/human/human_defense.dm @@ -115,7 +115,7 @@ Contains most of the procs that are called when a mob is attacked by something // We cannot return FALSE on fail here, because we haven't checked r_hand yet. Dual-wielding shields perhaps! var/obj/item/weapon/I = l_hand - if(I.IsShield() && !istype(I, /obj/item/weapon/shield) && (prob(50 - round(damage / 3)))) // 'other' shields, like predweapons. Make sure that item/weapon/shield does not apply here, no double-rolls. + if(I.IsShield() && !istype(I, /obj/item/weapon/shield) && (prob(50 - floor(damage / 3)))) // 'other' shields, like predweapons. Make sure that item/weapon/shield does not apply here, no double-rolls. visible_message(SPAN_DANGER("[src] blocks [attack_text] with the [l_hand.name]!"), null, null, 5) return TRUE @@ -139,7 +139,7 @@ Contains most of the procs that are called when a mob is attacked by something return TRUE var/obj/item/weapon/I = r_hand - if(I.IsShield() && !istype(I, /obj/item/weapon/shield) && (prob(50 - round(damage / 3)))) // other shields. Don't doublecheck activable here. + if(I.IsShield() && !istype(I, /obj/item/weapon/shield) && (prob(50 - floor(damage / 3)))) // other shields. Don't doublecheck activable here. visible_message(SPAN_DANGER("[src] blocks [attack_text] with the [r_hand.name]!"), null, null, 5) return TRUE @@ -194,7 +194,7 @@ Contains most of the procs that are called when a mob is attacked by something if((user != src) && check_shields(I.force, "the [I.name]")) return FALSE - if(I.attack_verb && I.attack_verb.len) + if(LAZYLEN(I.attack_verb)) visible_message(SPAN_DANGER("[src] has been [pick(I.attack_verb)] in the [hit_area] with [I.name] by [user]!"), null, null, 5) else visible_message(SPAN_DANGER("[src] has been attacked in the [hit_area] with [I.name] by [user]!"), null, null, 5) @@ -256,7 +256,7 @@ Contains most of the procs that are called when a mob is attacked by something add_blood(get_blood_color(), BLOOD_BODY) //Melee weapon embedded object code. - if (I.damtype == BRUTE && !I.is_robot_module() && !(I.flags_item & (NODROP|DELONDROP))) + if (I.damtype == BRUTE && !(I.flags_item & (NODROP|DELONDROP))) damage = I.force if(damage > 40) damage = 40 //Some sanity, mostly for yautja weapons. CONSTANT STICKY ICKY if (weapon_sharp && prob(3) && !isyautja(user)) // make yautja less likely to get their weapon stuck @@ -346,16 +346,15 @@ Contains most of the procs that are called when a mob is attacked by something //thrown weapon embedded object code. if (dtype == BRUTE && istype(O,/obj/item)) var/obj/item/I = O - if (!I.is_robot_module()) - var/sharp = is_sharp(I) - //blunt objects should really not be embedding in things unless a huge amount of force is involved - var/embed_chance = sharp? damage/I.w_class : damage/(I.w_class*3) - var/embed_threshold = sharp? 5*I.w_class : 15*I.w_class - - //Sharp objects will always embed if they do enough damage. - //Thrown sharp objects have some momentum already and have a small chance to embed even if the damage is below the threshold - if (!isyautja(src) && ((sharp && prob(damage/(10*I.w_class)*100)) || (damage > embed_threshold && prob(embed_chance)))) - affecting.embed(I) + var/sharp = is_sharp(I) + //blunt objects should really not be embedding in things unless a huge amount of force is involved + var/embed_chance = sharp? damage/I.w_class : damage/(I.w_class*3) + var/embed_threshold = sharp? 5*I.w_class : 15*I.w_class + + //Sharp objects will always embed if they do enough damage. + //Thrown sharp objects have some momentum already and have a small chance to embed even if the damage is below the threshold + if (!isyautja(src) && ((sharp && prob(damage/(10*I.w_class)*100)) || (damage > embed_threshold && prob(embed_chance)))) + affecting.embed(I) /mob/living/carbon/human/proc/get_id_faction_group() var/obj/item/card/id/C = wear_id diff --git a/code/modules/mob/living/carbon/human/human_defines.dm b/code/modules/mob/living/carbon/human/human_defines.dm index dd25a13538af..e44106d90abb 100644 --- a/code/modules/mob/living/carbon/human/human_defines.dm +++ b/code/modules/mob/living/carbon/human/human_defines.dm @@ -25,8 +25,9 @@ var/g_eyes = 0 var/b_eyes = 0 - var/ethnicity = "Western" // Ethnicity - var/body_type = "Mesomorphic (Average)" // Body Type + var/skin_color = "Pale 2" // Skin color + var/body_size = "Average" // Body Size + var/body_type = "Lean" // Body Buffness //Skin color var/r_skin = 0 @@ -59,15 +60,13 @@ var/obj/item/head = null var/obj/item/wear_l_ear = null var/obj/item/wear_r_ear = null - var/obj/item/card/id/wear_id = null + var/obj/item/wear_id = null var/obj/item/r_store = null var/obj/item/l_store = null var/obj/item/s_store = null var/voice - var/speech_problem_flag = FALSE - var/special_voice = "" // For changing our voice. Used by a symptom. var/last_dam = -1 //Used for determining if we need to process all limbs or just some or even none. @@ -138,7 +137,7 @@ var/last_chew = 0 //taken from human.dm - hud_possible = list(HEALTH_HUD,STATUS_HUD, STATUS_HUD_OOC, STATUS_HUD_XENO_INFECTION, STATUS_HUD_XENO_CULTIST, ID_HUD, WANTED_HUD, ORDER_HUD, XENO_HOSTILE_ACID, XENO_HOSTILE_SLOW, XENO_HOSTILE_TAG, XENO_HOSTILE_FREEZE, HUNTER_CLAN, HUNTER_HUD, FACTION_HUD) + hud_possible = list(HEALTH_HUD, STATUS_HUD, STATUS_HUD_OOC, STATUS_HUD_XENO_INFECTION, STATUS_HUD_XENO_CULTIST, ID_HUD, WANTED_HUD, ORDER_HUD, XENO_HOSTILE_ACID, XENO_HOSTILE_SLOW, XENO_HOSTILE_TAG, XENO_HOSTILE_FREEZE, XENO_EXECUTE, HUNTER_CLAN, HUNTER_HUD, FACTION_HUD, HOLOCARD_HUD) var/embedded_flag //To check if we've need to roll for damage on movement while an item is imbedded in us. var/allow_gun_usage = TRUE var/melee_allowed = TRUE @@ -169,6 +168,9 @@ /// static associated list of limb key -> image to avoid unnecessary overlay generation var/static/list/icon_render_image_cache = list() + /// Stored image references associated with focus-fire. + var/image/focused_fire_marker + /client/var/cached_human_playtime /client/proc/get_total_human_playtime(skip_cache = FALSE) diff --git a/code/modules/mob/living/carbon/human/human_dummy.dm b/code/modules/mob/living/carbon/human/human_dummy.dm index 061ac3cea05f..0c0584c5292b 100644 --- a/code/modules/mob/living/carbon/human/human_dummy.dm +++ b/code/modules/mob/living/carbon/human/human_dummy.dm @@ -73,3 +73,17 @@ GLOBAL_LIST_EMPTY(dummy_mob_list) /mob/living/carbon/human/dummy/add_to_all_mob_huds() return + +/mob/living/carbon/human/dummy/tutorial // Effectively an even more disabled dummy + +/mob/living/carbon/human/dummy/tutorial/Initialize(mapload) + . = ..() + status_flags = GODMODE + ADD_TRAIT(src, TRAIT_IMMOBILIZED, TRAIT_SOURCE_TUTORIAL) + anchored = TRUE + +/// Professor Dummy, used by CMOs and SEAs to teach new nurses/doctors +/mob/living/carbon/human/professor_dummy/Initialize() + . = ..() + create_hud() + arm_equipment(src, /datum/equipment_preset/other/professor_dummy) diff --git a/code/modules/mob/living/carbon/human/human_helpers.dm b/code/modules/mob/living/carbon/human/human_helpers.dm index 08ddd11da5b3..cb6ba8137a00 100644 --- a/code/modules/mob/living/carbon/human/human_helpers.dm +++ b/code/modules/mob/living/carbon/human/human_helpers.dm @@ -9,71 +9,65 @@ g = "f" return g -/proc/get_limb_icon_name(datum/species/S, body_type, gender, limb_name, ethnicity) - if(S.uses_ethnicity) - switch(limb_name) - if ("torso") - return "[ethnicity]_torso_[body_type]_[get_gender_name(gender)]" - - if ("chest") - return "[ethnicity]_torso_[body_type]_[get_gender_name(gender)]" - - if ("head") - return "[ethnicity]_[limb_name]_[get_gender_name(gender)]" - - if ("groin") - return "[ethnicity]_[limb_name]_[get_gender_name(gender)]" +/proc/get_limb_icon_name(datum/species/S, body_size, body_type, gender, limb_name, skin_color) + if(S.uses_skin_color) + if(S.special_body_types) + switch(limb_name) + if("torso") + return "[skin_color]_torso_[body_size]_[body_type]" + if("chest") + return "[skin_color]_torso_[body_size]_[body_type]" + if("head") + return "[skin_color]_[limb_name]" + if("groin") + return "[skin_color]_[limb_name]_[body_size]" + + if(!S.special_body_types) + switch(limb_name) + if("torso") + return "[skin_color]_torso_[body_type]_[get_gender_name(gender)]" + if("chest") + return "[skin_color]_torso_[body_type]_[get_gender_name(gender)]" + if("head") + return "[skin_color]_[limb_name]_[get_gender_name(gender)]" + if("groin") + return "[skin_color]_[limb_name]_[body_type]_[get_gender_name(gender)]" + switch(limb_name) if("synthetic head") return "head_[get_gender_name(gender)]" - - if ("r_arm") - return "[ethnicity]_right_arm" - - if ("right arm") - return "[ethnicity]_right_arm" - - if ("l_arm") - return "[ethnicity]_left_arm" - - if ("left arm") - return "[ethnicity]_left_arm" - - if ("r_leg") - return "[ethnicity]_right_leg" - - if ("right leg") - return "[ethnicity]_right_leg" - - if ("l_leg") - return "[ethnicity]_left_leg" - - if ("left leg") - return "[ethnicity]_left_leg" - - if ("r_hand") - return "[ethnicity]_right_hand" - - if ("right hand") - return "[ethnicity]_right_hand" - - if ("l_hand") - return "[ethnicity]_left_hand" - - if ("left hand") - return "[ethnicity]_left_hand" - - if ("r_foot") - return "[ethnicity]_right_foot" - - if ("right foot") - return "[ethnicity]_right_foot" - - if ("l_foot") - return "[ethnicity]_left_foot" - - if ("left foot") - return "[ethnicity]_left_foot" + if("r_arm") + return "[skin_color]_right_arm" + if("right arm") + return "[skin_color]_right_arm" + if("l_arm") + return "[skin_color]_left_arm" + if("left arm") + return "[skin_color]_left_arm" + if("r_leg") + return "[skin_color]_right_leg" + if("right leg") + return "[skin_color]_right_leg" + if("l_leg") + return "[skin_color]_left_leg" + if("left leg") + return "[skin_color]_left_leg" + if("r_hand") + return "[skin_color]_right_hand" + if("right hand") + return "[skin_color]_right_hand" + if("l_hand") + return "[skin_color]_left_hand" + if("left hand") + return "[skin_color]_left_hand" + if("r_foot") + return "[skin_color]_right_foot" + if("right foot") + return "[skin_color]_right_foot" + if("l_foot") + return "[skin_color]_left_foot" + if("left foot") + return "[skin_color]_left_foot" else message_admins("DEBUG: Something called get_limb_icon_name() incorrectly, they use the name [limb_name]") @@ -147,28 +141,37 @@ return null /mob/living/carbon/human/proc/set_limb_icons() - var/datum/ethnicity/E = GLOB.ethnicities_list[ethnicity] - var/datum/body_type/B = GLOB.body_types_list[body_type] + var/datum/skin_color/set_skin_color = GLOB.skin_color_list[skin_color] + var/datum/body_size/set_body_size = GLOB.body_size_list[body_size] + var/datum/body_type/set_body_type = GLOB.body_type_list[body_type] - var/e_icon - var/b_icon + var/skin_color_icon + var/body_size_icon + var/body_type_icon - if (!E) - e_icon = "western" + if(!set_skin_color) + skin_color_icon = "pale2" else - e_icon = E.icon_name + skin_color_icon = set_skin_color.icon_name + + if(!set_body_size) + body_size_icon = "avg" + else + body_size_icon = set_body_size.icon_name + - if (!B) - b_icon = "mesomorphic" + if(!set_body_type) + body_type_icon = "lean" else - b_icon = B.icon_name + body_type_icon = set_body_type.icon_name if(isspeciesyautja(src)) - e_icon = src.ethnicity - b_icon = src.body_type + skin_color_icon = skin_color + body_size_icon = body_size + body_type_icon = body_type - for(var/obj/limb/L in limbs) - L.icon_name = get_limb_icon_name(species, b_icon, gender, L.display_name, e_icon) + for(var/obj/limb/L as anything in limbs) + L.icon_name = get_limb_icon_name(species, body_size_icon, body_type_icon, gender, L.display_name, skin_color_icon) /mob/living/carbon/human/can_inject(mob/user, error_msg, target_zone) if(species?.flags & IS_SYNTHETIC) @@ -206,18 +209,18 @@ return FALSE -/mob/living/carbon/human/is_mob_restrained(check_grab = 1) +/mob/living/carbon/human/is_mob_restrained(check_grab = TRUE) if(check_grab && pulledby && pulledby.grab_level >= GRAB_AGGRESSIVE) - return 1 + return TRUE if (handcuffed) - return 1 + return TRUE if (istype(wear_suit, /obj/item/clothing/suit/straight_jacket)) - return 1 + return TRUE if (HAS_TRAIT(src, TRAIT_NESTED)) return TRUE - return 0 + return FALSE /mob/living/carbon/human/proc/disable_special_flags() status_flags |= CANPUSH @@ -247,6 +250,13 @@ var/datum/action/item_action/smartgun/toggle_motion_detector/TMD = locate(/datum/action/item_action/smartgun/toggle_motion_detector) in sg.actions TMD.update_icon() sg.motion_detector() + if(istype(i, /obj/item/clothing/suit/storage/marine/medium/rto/intel)) + var/obj/item/clothing/suit/storage/marine/medium/rto/intel/xm4 = i + if(xm4.motion_detector) + xm4.motion_detector = FALSE + var/datum/action/item_action/intel/toggle_motion_detector/TMD = locate(/datum/action/item_action/intel/toggle_motion_detector) in xm4.actions + TMD.update_icon() + xm4.motion_detector() /mob/living/carbon/human/proc/disable_headsets() //Disable all radios to reduce radio spam for dead people @@ -359,7 +369,7 @@ /mob/living/carbon/human/proc/has_foreign_object() for(var/obj/limb/L in limbs) - if(L.implants && L.implants.len > 0) + if(LAZYLEN(L.implants) > 0) return TRUE for(var/obj/item/alien_embryo/A in contents) return TRUE diff --git a/code/modules/mob/living/carbon/human/human_movement.dm b/code/modules/mob/living/carbon/human/human_movement.dm index 1803e289114e..7cb2d04e67de 100644 --- a/code/modules/mob/living/carbon/human/human_movement.dm +++ b/code/modules/mob/living/carbon/human/human_movement.dm @@ -10,7 +10,7 @@ if(species.slowdown) . += species.slowdown - if(embedded_items.len > 0) + if(length(embedded_items) > 0) handle_embedded_objects() //Moving with objects stuck in you can cause bad times. var/reducible_tally = 0 //Tally elements that can be reduced are put here, then we apply MST effects @@ -138,7 +138,7 @@ if (!r_hand) prob_slip -= 2 else if(r_hand.w_class <= SIZE_SMALL) prob_slip-- - prob_slip = round(prob_slip) + prob_slip = floor(prob_slip) return(prob_slip) /// Updates [TRAIT_FLOORED] based on whether the mob has appropriate limbs to stand or not diff --git a/code/modules/mob/living/carbon/human/human_stripping.dm b/code/modules/mob/living/carbon/human/human_stripping.dm new file mode 100644 index 000000000000..210e5f266fe0 --- /dev/null +++ b/code/modules/mob/living/carbon/human/human_stripping.dm @@ -0,0 +1,271 @@ +GLOBAL_LIST_INIT(strippable_human_items, create_strippable_list(list( + /datum/strippable_item/mob_item_slot/head, + /datum/strippable_item/mob_item_slot/back, + /datum/strippable_item/mob_item_slot/mask, + /datum/strippable_item/mob_item_slot/eyes, + /datum/strippable_item/mob_item_slot/r_ear, + /datum/strippable_item/mob_item_slot/l_ear, + /datum/strippable_item/mob_item_slot/jumpsuit, + /datum/strippable_item/mob_item_slot/suit, + /datum/strippable_item/mob_item_slot/gloves, + /datum/strippable_item/mob_item_slot/feet, + /datum/strippable_item/mob_item_slot/suit_storage, + /datum/strippable_item/mob_item_slot/id, + /datum/strippable_item/mob_item_slot/belt, + /datum/strippable_item/mob_item_slot/pocket/left, + /datum/strippable_item/mob_item_slot/pocket/right, + /datum/strippable_item/mob_item_slot/hand/left, + /datum/strippable_item/mob_item_slot/hand/right, + /datum/strippable_item/mob_item_slot/cuffs/handcuffs, + /datum/strippable_item/mob_item_slot/cuffs/legcuffs, +))) + +/mob/living/carbon/human/proc/should_strip(mob/user) + if (user.pulling == src && user.grab_level == GRAB_AGGRESSIVE && (user.a_intent & INTENT_GRAB)) + return FALSE //to not interfere with fireman carry + return TRUE + +/datum/strippable_item/mob_item_slot/head + key = STRIPPABLE_ITEM_HEAD + item_slot = SLOT_HEAD + +/datum/strippable_item/mob_item_slot/back + key = STRIPPABLE_ITEM_BACK + item_slot = SLOT_BACK + +/datum/strippable_item/mob_item_slot/mask + key = STRIPPABLE_ITEM_MASK + item_slot = SLOT_FACE + +/datum/strippable_item/mob_item_slot/mask/get_alternate_action(atom/source, mob/user) + var/obj/item/clothing/mask = get_item(source) + if (!istype(mask)) + return + if (!ishuman(source)) + return + var/mob/living/carbon/human/sourcehuman = source + if (istype(sourcehuman.s_store, /obj/item/tank)) + return "toggle_internals" + if (istype(sourcehuman.back, /obj/item/tank)) + return "toggle_internals" + if (istype(sourcehuman.belt, /obj/item/tank)) + return "toggle_internals" + return + +/datum/strippable_item/mob_item_slot/mask/alternate_action(atom/source, mob/user) + if(!ishuman(source)) + return + var/mob/living/carbon/human/sourcehuman = source + if(user.action_busy || user.is_mob_incapacitated() || !source.Adjacent(user)) + return + if(MODE_HAS_TOGGLEABLE_FLAG(MODE_NO_STRIPDRAG_ENEMY) && (sourcehuman.stat == DEAD || sourcehuman.health < HEALTH_THRESHOLD_CRIT) && !sourcehuman.get_target_lock(user.faction_group)) + to_chat(user, SPAN_WARNING("You can't toggle internals of a crit or dead member of another faction!")) + return + + sourcehuman.attack_log += text("\[[time_stamp()]\] Has had their internals toggled by [key_name(user)]") + user.attack_log += text("\[[time_stamp()]\] Attempted to toggle [key_name(src)]'s' internals") + if(sourcehuman.internal) + user.visible_message(SPAN_DANGER("[user] is trying to disable [sourcehuman]'s internals"), null, null, 3) + else + user.visible_message(SPAN_DANGER("[user] is trying to enable [sourcehuman]'s internals."), null, null, 3) + + if(!do_after(user, POCKET_STRIP_DELAY, INTERRUPT_ALL, BUSY_ICON_GENERIC, sourcehuman, INTERRUPT_MOVED, BUSY_ICON_GENERIC)) + return + + if(sourcehuman.internal) + sourcehuman.internal.add_fingerprint(user) + sourcehuman.internal = null + sourcehuman.visible_message("[sourcehuman] is no longer running on internals.", max_distance = 1) + return + + if(!istype(sourcehuman.wear_mask, /obj/item/clothing/mask)) + return + + if(istype(sourcehuman.back, /obj/item/tank)) + sourcehuman.internal = sourcehuman.back + else if(istype(sourcehuman.s_store, /obj/item/tank)) + sourcehuman.internal = sourcehuman.s_store + else if(istype(sourcehuman.belt, /obj/item/tank)) + sourcehuman.internal = sourcehuman.belt + + if(!sourcehuman.internal) + return + + sourcehuman.visible_message(SPAN_NOTICE("[sourcehuman] is now running on internals."), max_distance = 1) + sourcehuman.internal.add_fingerprint(user) + +/datum/strippable_item/mob_item_slot/eyes + key = STRIPPABLE_ITEM_EYES + item_slot = SLOT_EYES + +/datum/strippable_item/mob_item_slot/r_ear + key = STRIPPABLE_ITEM_R_EAR + item_slot = SLOT_EAR + +/datum/strippable_item/mob_item_slot/l_ear + key = STRIPPABLE_ITEM_L_EAR + item_slot = SLOT_EAR + +/datum/strippable_item/mob_item_slot/jumpsuit + key = STRIPPABLE_ITEM_JUMPSUIT + item_slot = SLOT_ICLOTHING + +/datum/strippable_item/mob_item_slot/jumpsuit/get_alternate_action(atom/source, mob/user) + var/obj/item/clothing/under/uniform = get_item(source) + if (!istype(uniform)) + return null + return uniform?.accessories ? "remove_accessory" : null + +/datum/strippable_item/mob_item_slot/jumpsuit/alternate_action(atom/source, mob/user) + if(!ishuman(source)) + return + var/mob/living/carbon/human/sourcemob = source + if(user.action_busy || user.is_mob_incapacitated() || !source.Adjacent(user)) + return + if(MODE_HAS_TOGGLEABLE_FLAG(MODE_NO_STRIPDRAG_ENEMY) && (sourcemob.stat == DEAD || sourcemob.health < HEALTH_THRESHOLD_CRIT) && !sourcemob.get_target_lock(user.faction_group)) + to_chat(user, SPAN_WARNING("You can't strip a crit or dead member of another faction!")) + return + if(!sourcemob.w_uniform || !istype(sourcemob.w_uniform, /obj/item/clothing)) + return + + var/obj/item/clothing/under/uniform = sourcemob.w_uniform + + var/obj/item/clothing/accessory/accessory = uniform.pick_accessory_to_remove(user, sourcemob) + + if(!accessory) + return + + sourcemob.attack_log += text("\[[time_stamp()]\] Has had their accessory ([accessory]) removed by [key_name(user)]") + user.attack_log += text("\[[time_stamp()]\] Attempted to remove [key_name(sourcemob)]'s' accessory ([accessory])") + if(istype(accessory, /obj/item/clothing/accessory/holobadge) || istype(accessory, /obj/item/clothing/accessory/medal)) + sourcemob.visible_message(SPAN_DANGER("[user] tears off [accessory] from [sourcemob]'s [uniform]!"), null, null, 5) + if(uniform == sourcemob.w_uniform) + uniform.remove_accessory(user, accessory) + return + + if(HAS_TRAIT(sourcemob, TRAIT_UNSTRIPPABLE) && !sourcemob.is_mob_incapacitated()) //Can't strip the unstrippable! + to_chat(user, SPAN_DANGER("[sourcemob] has an unbreakable grip on their equipment!")) + return + sourcemob.visible_message(SPAN_DANGER("[user] is trying to take off \a [accessory] from [source]'s [uniform]!"), null, null, 5) + + if(!do_after(user, sourcemob.get_strip_delay(user, sourcemob), INTERRUPT_ALL, BUSY_ICON_GENERIC, sourcemob, INTERRUPT_MOVED, BUSY_ICON_GENERIC)) + return + + if(uniform != sourcemob.w_uniform) + return + + uniform.remove_accessory(user, accessory) + +/datum/strippable_item/mob_item_slot/suit + key = STRIPPABLE_ITEM_SUIT + item_slot = SLOT_OCLOTHING + +/datum/strippable_item/mob_item_slot/suit/has_no_item_alt_action() + return TRUE + +/datum/strippable_item/mob_item_slot/suit/get_alternate_action(atom/source, mob/user) + if(!ishuman(source)) + return + var/mob/living/carbon/human/sourcemob = source + for(var/bodypart in list("l_leg","r_leg","l_arm","r_arm","r_hand","l_hand","r_foot","l_foot","chest","head","groin")) + var/obj/limb/limb = sourcemob.get_limb(bodypart) + if(limb && (limb.status & LIMB_SPLINTED)) + return "remove_splints" + return + +/datum/strippable_item/mob_item_slot/suit/alternate_action(atom/source, mob/user) + if(!ishuman(source)) + return + var/mob/living/carbon/human/sourcemob = source + if(user.action_busy || user.is_mob_incapacitated() || !source.Adjacent(user)) + return + if(MODE_HAS_TOGGLEABLE_FLAG(MODE_NO_STRIPDRAG_ENEMY) && (sourcemob.stat == DEAD || sourcemob.health < HEALTH_THRESHOLD_CRIT) && !sourcemob.get_target_lock(user.faction_group)) + to_chat(user, SPAN_WARNING("You can't remove splints of a crit or dead member of another faction!")) + return + sourcemob.attack_log += text("\[[time_stamp()]\] Has had their splints removed by [key_name(user)]") + user.attack_log += text("\[[time_stamp()]\] Attempted to remove [key_name(sourcemob)]'s' splints ") + sourcemob.remove_splints(user) + +/datum/strippable_item/mob_item_slot/gloves + key = STRIPPABLE_ITEM_GLOVES + item_slot = SLOT_HANDS + +/datum/strippable_item/mob_item_slot/feet + key = STRIPPABLE_ITEM_FEET + item_slot = SLOT_FEET + +/datum/strippable_item/mob_item_slot/suit_storage + key = STRIPPABLE_ITEM_SUIT_STORAGE + item_slot = SLOT_SUIT_STORE + +/datum/strippable_item/mob_item_slot/id + key = STRIPPABLE_ITEM_ID + item_slot = SLOT_ID + +/datum/strippable_item/mob_item_slot/id/get_alternate_action(atom/source, mob/user) + var/obj/item/card/id/dogtag/tag = get_item(source) + if(!ishuman(source)) + return + var/mob/living/carbon/human/sourcemob = source + if (!istype(tag)) + return + if (!sourcemob.undefibbable && (!skillcheck(user, SKILL_POLICE, SKILL_POLICE_SKILLED) || sourcemob.stat != DEAD)) + return + return tag.dogtag_taken ? null : "retrieve_tag" + +/datum/strippable_item/mob_item_slot/id/alternate_action(atom/source, mob/user) + if(!ishuman(source)) + return + var/mob/living/carbon/human/sourcemob = source + if(user.action_busy || user.is_mob_incapacitated() || !source.Adjacent(user)) + return + if(MODE_HAS_TOGGLEABLE_FLAG(MODE_NO_STRIPDRAG_ENEMY) && (sourcemob.stat == DEAD || sourcemob.health < HEALTH_THRESHOLD_CRIT) && !sourcemob.get_target_lock(user.faction_group)) + to_chat(user, SPAN_WARNING("You can't strip a crit or dead member of another faction!")) + return + if(!istype(sourcemob.wear_id, /obj/item/card/id/dogtag)) + return + if (!sourcemob.undefibbable && !skillcheck(user, SKILL_POLICE, SKILL_POLICE_SKILLED)) + return + var/obj/item/card/id/dogtag/tag = sourcemob.wear_id + if(tag.dogtag_taken) + to_chat(user, SPAN_WARNING("Someone's already taken [sourcemob]'s information tag.")) + return + + if(sourcemob.stat != DEAD) + to_chat(user, SPAN_WARNING("You can't take a dogtag's information tag while its owner is alive.")) + return + + to_chat(user, SPAN_NOTICE("You take [sourcemob]'s information tag, leaving the ID tag")) + tag.dogtag_taken = TRUE + tag.icon_state = "dogtag_taken" + var/obj/item/dogtag/newtag = new(sourcemob.loc) + newtag.fallen_names = list(tag.registered_name) + newtag.fallen_assgns = list(tag.assignment) + newtag.fallen_blood_types = list(tag.blood_type) + user.put_in_hands(newtag) + + + +/datum/strippable_item/mob_item_slot/belt + key = STRIPPABLE_ITEM_BELT + item_slot = SLOT_WAIST + +/datum/strippable_item/mob_item_slot/pocket/left + key = STRIPPABLE_ITEM_LPOCKET + item_slot = SLOT_STORE + +/datum/strippable_item/mob_item_slot/pocket/right + key = STRIPPABLE_ITEM_RPOCKET + item_slot = SLOT_STORE + +/datum/strippable_item/mob_item_slot/hand/left + key = STRIPPABLE_ITEM_LHAND + +/datum/strippable_item/mob_item_slot/hand/right + key = STRIPPABLE_ITEM_RHAND + +/datum/strippable_item/mob_item_slot/cuffs/handcuffs + key = STRIPPABLE_ITEM_HANDCUFFS + +/datum/strippable_item/mob_item_slot/cuffs/legcuffs + key = STRIPPABLE_ITEM_LEGCUFFS diff --git a/code/modules/mob/living/carbon/human/inventory.dm b/code/modules/mob/living/carbon/human/inventory.dm index b54f03e2ce7d..3f419333d218 100644 --- a/code/modules/mob/living/carbon/human/inventory.dm +++ b/code/modules/mob/living/carbon/human/inventory.dm @@ -354,8 +354,7 @@ current_storage.attempt_item_insertion(equipping_item, disable_warning, src) back.update_icon() if(WEAR_IN_SHOES) - shoes.attempt_insert_item(src, equipping_item, TRUE) - shoes.update_icon() + shoes.attempt_insert_item(src, equipping_item) if(WEAR_IN_SCABBARD) var/obj/item/storage/current_storage = back current_storage.attempt_item_insertion(equipping_item, disable_warning, src) @@ -495,7 +494,8 @@ /// Multiplier for how quickly the user can strip things. var/user_speed = user.get_skill_duration_multiplier(SKILL_CQC) /// The total skill level of CQC & Police - var/target_skills = (target.skills.get_skill_level(SKILL_CQC) + target.skills.get_skill_level(SKILL_POLICE)) + var/target_skills = 0 + target_skills += (target.skills?.get_skill_level(SKILL_CQC) + target.skills?.get_skill_level(SKILL_POLICE)) /// Delay then gets + 0.5s per skill level, so long as not dead or cuffed. if(!(target.stat || target.handcuffed)) @@ -504,72 +504,6 @@ /// Final result is overall delay * speed multiplier return target_delay * user_speed -/mob/living/carbon/human/stripPanelUnequip(obj/item/interact_item, mob/target_mob, slot_to_process) - if(HAS_TRAIT(target_mob, TRAIT_UNSTRIPPABLE) && !target_mob.is_mob_incapacitated()) //Can't strip the unstrippable! - to_chat(src, SPAN_DANGER("[target_mob] has an unbreakable grip on their equipment!")) - return - if(interact_item.flags_item & ITEM_ABSTRACT) - return - if(interact_item.flags_item & NODROP) - to_chat(src, SPAN_WARNING("You can't remove \the [interact_item.name], it appears to be stuck!")) - return - if(interact_item.flags_inventory & CANTSTRIP) - to_chat(src, SPAN_WARNING("You're having difficulty removing \the [interact_item.name].")) - return - target_mob.attack_log += "\[[time_stamp()]\] Has had their [interact_item.name] ([slot_to_process]) attempted to be removed by [key_name(src)]" - attack_log += "\[[time_stamp()]\] Attempted to remove [key_name(target_mob)]'s [interact_item.name] ([slot_to_process])" - log_interact(src, target_mob, "[key_name(src)] tried to remove [key_name(target_mob)]'s [interact_item.name] ([slot_to_process]).") - - src.visible_message(SPAN_DANGER("[src] tries to remove [target_mob]'s [interact_item.name]."), \ - SPAN_DANGER("You are trying to remove [target_mob]'s [interact_item.name]."), null, 5) - interact_item.add_fingerprint(src) - if(do_after(src, get_strip_delay(src, target_mob), INTERRUPT_ALL, BUSY_ICON_GENERIC, target_mob, INTERRUPT_MOVED, BUSY_ICON_GENERIC)) - if(interact_item && Adjacent(target_mob) && interact_item == target_mob.get_item_by_slot(slot_to_process)) - target_mob.drop_inv_item_on_ground(interact_item) - log_interact(src, target_mob, "[key_name(src)] removed [key_name(target_mob)]'s [interact_item.name] ([slot_to_process]) successfully.") - - if(target_mob) - if(interactee == target_mob && Adjacent(target_mob)) - target_mob.show_inv(src) - - -/mob/living/carbon/human/stripPanelEquip(obj/item/interact_item, mob/target_mob, slot_to_process) - if(HAS_TRAIT(target_mob, TRAIT_UNSTRIPPABLE) && !target_mob.is_mob_incapacitated()) - to_chat(src, SPAN_DANGER("[target_mob] is too strong to force [interact_item.name] onto them!")) - return - if(interact_item && !(interact_item.flags_item & ITEM_ABSTRACT)) - if(interact_item.flags_item & NODROP) - to_chat(src, SPAN_WARNING("You can't put \the [interact_item.name] on [target_mob], it's stuck to your hand!")) - return - if(interact_item.flags_inventory & CANTSTRIP) - to_chat(src, SPAN_WARNING("You're having difficulty putting \the [interact_item.name] on [target_mob].")) - return - if(interact_item.flags_item & WIELDED) - interact_item.unwield(src) - if(!interact_item.mob_can_equip(target_mob, slot_to_process, TRUE)) - to_chat(src, SPAN_WARNING("You can't put \the [interact_item.name] on [target_mob]!")) - return - visible_message(SPAN_NOTICE("[src] tries to put \the [interact_item.name] on [target_mob]."), null, null, 5) - log_interact(src, target_mob, "[key_name(src)] attempted to put [interact_item.name] on [key_name(target_mob)]'s ([slot_to_process]).") - if(do_after(src, get_strip_delay(src, target_mob), INTERRUPT_ALL, BUSY_ICON_GENERIC, target_mob, INTERRUPT_MOVED, BUSY_ICON_GENERIC)) - if(interact_item == get_active_hand() && !target_mob.get_item_by_slot(slot_to_process) && Adjacent(target_mob)) - if(interact_item.flags_item & WIELDED) //to prevent re-wielding it during the do_after - interact_item.unwield(src) - if(interact_item.mob_can_equip(target_mob, slot_to_process, TRUE))//Placing an item on the mob - drop_inv_item_on_ground(interact_item) - if(interact_item && !QDELETED(interact_item)) //Might be self-deleted? - target_mob.equip_to_slot_if_possible(interact_item, slot_to_process, 1, 0, 1, 1) - log_interact(src, target_mob, "[key_name(src)] put [interact_item.name] on [key_name(target_mob)]'s ([slot_to_process]) successfully.") - if(ishuman(target_mob) && target_mob.stat == DEAD) - var/mob/living/carbon/human/human_target = target_mob - human_target.disable_lights() // take that powergamers -spookydonut - - if(target_mob) - if(interactee == target_mob && Adjacent(target_mob)) - target_mob.show_inv(src) - /mob/living/carbon/human/drop_inv_item_on_ground(obj/item/I, nomoveupdate, force) remember_dropped_object(I) return ..() - - diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index be1c7833c5c1..1a43138421e4 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -88,3 +88,10 @@ if(!client && !mind && species) species.handle_npc(src) + +/mob/living/carbon/human/set_stat(new_stat) + . = ..() + // Temporarily force triggering HUD updates so they apply immediately rather than on Life tick. + // Remove this once effects have been ported to trait signals (blinded, dazed, etc) + if(stat != .) + handle_regular_hud_updates() diff --git a/code/modules/mob/living/carbon/human/life/handle_chemicals_in_body.dm b/code/modules/mob/living/carbon/human/life/handle_chemicals_in_body.dm index eafac03fd51f..9bf275a5448a 100644 --- a/code/modules/mob/living/carbon/human/life/handle_chemicals_in_body.dm +++ b/code/modules/mob/living/carbon/human/life/handle_chemicals_in_body.dm @@ -39,25 +39,35 @@ SHOULD_NOT_SLEEP(TRUE) if(!reagents || undefibbable) return // Double checking due to Life() funny background=1 - for(var/datum/reagent/generated/R in reagents.reagent_list) + + var/has_cryo_medicine = reagents.get_reagent_amount("cryoxadone") >= 1 || reagents.get_reagent_amount("clonexadone") >= 1 + if(has_cryo_medicine) + var/obj/structure/machinery/cryo_cell/cryo = loc + if(!istype(cryo) || !cryo.on || cryo.inoperable()) + has_cryo_medicine = FALSE + + for(var/datum/reagent/cur_reagent in reagents.reagent_list) + if(!has_cryo_medicine && !istype(cur_reagent, /datum/reagent/generated)) + continue + var/list/mods = list( REAGENT_EFFECT = TRUE, REAGENT_BOOST = FALSE, REAGENT_PURGE = FALSE, - REAGENT_FORCE = FALSE, + REAGENT_FORCE = has_cryo_medicine, REAGENT_CANCEL = FALSE) - for(var/datum/chem_property/P in R.properties) - var/list/A = P.pre_process(src) - if(!A) + for(var/datum/chem_property/cur_prop in cur_reagent.properties) + var/list/results = cur_prop.pre_process(src) + if(!results) continue - for(var/mod in A) - mods[mod] |= A[mod] + for(var/mod in results) + mods[mod] |= results[mod] if(mods[REAGENT_CANCEL]) return if(mods[REAGENT_FORCE]) - R.handle_processing(src, mods, delta_time) - R.holder.remove_reagent(R.id, R.custom_metabolism * delta_time) + cur_reagent.handle_processing(src, mods, delta_time) + cur_reagent.holder.remove_reagent(cur_reagent.id, cur_reagent.custom_metabolism * delta_time) - R.handle_dead_processing(src, mods, delta_time) + cur_reagent.handle_dead_processing(src, mods, delta_time) diff --git a/code/modules/mob/living/carbon/human/life/handle_disabilities.dm b/code/modules/mob/living/carbon/human/life/handle_disabilities.dm index 77358ca45b89..2d7498f53167 100644 --- a/code/modules/mob/living/carbon/human/life/handle_disabilities.dm +++ b/code/modules/mob/living/carbon/human/life/handle_disabilities.dm @@ -1,42 +1,7 @@ //Refer to life.dm for caller /mob/living/carbon/human/proc/handle_disabilities() - - if(disabilities & EPILEPSY) - if(prob(1) && !HAS_TRAIT(src, TRAIT_KNOCKEDOUT)) - visible_message(SPAN_DANGER("\The [src] starts having a seizure!"), \ - SPAN_DANGER("You start having a seizure!"), null, 5) - apply_effect(10, PARALYZE) - make_jittery(1000) - return - - if(disabilities & COUGHING) - if(prob(5) && !HAS_TRAIT(src, TRAIT_KNOCKEDOUT)) - drop_held_item() - INVOKE_ASYNC(src, PROC_REF(emote), "cough") - return - - if(disabilities & TOURETTES) - speech_problem_flag = TRUE - if((prob(10) && !HAS_TRAIT(src, TRAIT_KNOCKEDOUT))) - apply_effect(10, STUN) - spawn() - switch(rand(1, 3)) - if(1) - emote("twitch") - if(2 to 3) - say("[prob(50) ? ";" : ""][pick("SHIT", "PISS", "FUCK", "CUNT", "COCKSUCKER", "MOTHERFUCKER", "TITS")]") - var/old_x = pixel_x - var/old_y = pixel_y - pixel_x += rand(-2, 2) - pixel_y += rand(-1, 1) - sleep(2) - pixel_x = old_x - pixel_y = old_y - return - if(disabilities & NERVOUS) - speech_problem_flag = TRUE if(prob(10)) stuttering = max(10, stuttering) return diff --git a/code/modules/mob/living/carbon/human/life/handle_environment.dm b/code/modules/mob/living/carbon/human/life/handle_environment.dm index 143d9d500793..65bc7213810e 100644 --- a/code/modules/mob/living/carbon/human/life/handle_environment.dm +++ b/code/modules/mob/living/carbon/human/life/handle_environment.dm @@ -19,7 +19,7 @@ if(thermal_protection < 1) temp_adj = (1 - thermal_protection) * ((loc_temp - bodytemperature) / BODYTEMP_HEAT_DIVISOR) - bodytemperature += Clamp(temp_adj, BODYTEMP_COOLING_MAX, BODYTEMP_HEATING_MAX) + bodytemperature += clamp(temp_adj, BODYTEMP_COOLING_MAX, BODYTEMP_HEATING_MAX) //+/- 50 degrees from 310.15K is the 'safe' zone, where no damage is dealt. if(bodytemperature > species.heat_level_1) diff --git a/code/modules/mob/living/carbon/human/life/handle_pulse.dm b/code/modules/mob/living/carbon/human/life/handle_pulse.dm index 38a02a048b5c..11c07e253fdd 100644 --- a/code/modules/mob/living/carbon/human/life/handle_pulse.dm +++ b/code/modules/mob/living/carbon/human/life/handle_pulse.dm @@ -8,7 +8,7 @@ if(stat == DEAD || status_flags & FAKEDEATH) return PULSE_NONE //That's it, you're dead, nothing can influence your pulse - if(round(blood_volume) <= BLOOD_VOLUME_BAD) //How much blood do we have + if(floor(blood_volume) <= BLOOD_VOLUME_BAD) //How much blood do we have return PULSE_THREADY //not enough :( return PULSE_NORM diff --git a/code/modules/mob/living/carbon/human/life/handle_regular_hud_updates.dm b/code/modules/mob/living/carbon/human/life/handle_regular_hud_updates.dm index 5d706518f5e3..37750b5585ea 100644 --- a/code/modules/mob/living/carbon/human/life/handle_regular_hud_updates.dm +++ b/code/modules/mob/living/carbon/human/life/handle_regular_hud_updates.dm @@ -20,7 +20,10 @@ if(-90 to -80) severity = 8 if(-95 to -90) severity = 9 if(-INFINITY to -95) severity = 10 - overlay_fullscreen("crit", /atom/movable/screen/fullscreen/crit, severity) + if(client.prefs?.crit_overlay_pref == CRIT_OVERLAY_DARK) + overlay_fullscreen("crit", /atom/movable/screen/fullscreen/crit/dark, severity) + else + overlay_fullscreen("crit", /atom/movable/screen/fullscreen/crit, severity) else clear_fullscreen("crit") if(oxyloss) @@ -37,9 +40,9 @@ else clear_fullscreen("oxy") - //Fire and Brute damage overlay (BSSR) - var/hurtdamage = src.getBruteLoss() + src.getFireLoss() + damageoverlaytemp + var/max_health_normalisation = (species ? species.total_health : 100) / 100 + var/hurtdamage = (getBruteLoss() + getFireLoss()) / max_health_normalisation + damageoverlaytemp damageoverlaytemp = 0 // We do this so we can detect if someone hits us or not. if(hurtdamage) var/severity = 0 @@ -60,11 +63,7 @@ else clear_fullscreen("blind") - if(dazed) - overlay_fullscreen("eye_blurry", /atom/movable/screen/fullscreen/impaired, 5) - else - clear_fullscreen("eye_blurry") - ///Pain should override the SetEyeBlur(0) should the pain be painful enough to cause eyeblur in the first place. Also, peepers is essential to make sure eye damage isn't overriden. + ///Pain should override the SetEyeBlur(0) should the pain be painful enough to cause eyeblur in the first place. Also, peepers is essential to make sure eye damage isn't overridden. var/datum/internal_organ/eyes/peepers = internal_organs_by_name["eyes"] if((disabilities & NEARSIGHTED) && !HAS_TRAIT(src, TRAIT_NEARSIGHTED_EQUIPMENT) && pain.current_pain < 80 && peepers.organ_status == ORGAN_HEALTHY) EyeBlur(2) @@ -163,6 +162,12 @@ interactee.check_eye(src) return TRUE +/mob/living/carbon/human/on_dazed_trait_gain(datum/source) + . = ..() + overlay_fullscreen("eye_blurry", /atom/movable/screen/fullscreen/impaired, 5) +/mob/living/carbon/human/on_dazed_trait_loss(datum/source) + . = ..() + clear_fullscreen("eye_blurry") /mob/living/carbon/human/proc/check_status_effects() var/status_effect_placement = 1 @@ -193,7 +198,7 @@ hud_used.slowed_icon.name = "" hud_used.slowed_icon.icon_state = "status_0" - var/is_embedded = embedded_items.len + var/is_embedded = length(embedded_items) if(is_embedded) hud_used.shrapnel_icon.name = "shrapnel" hud_used.shrapnel_icon.icon_state = "status_shrapnel" @@ -223,7 +228,7 @@ hud_used.tethered_icon.name = "" hud_used.tethered_icon.icon_state = "status_0" - if(active_transfusions.len) + if(length(active_transfusions)) hud_used.tethered_icon.name = "transfusion" hud_used.tethered_icon.icon_state = "status_blood" hud_used.tethered_icon.screen_loc = ui_datum.get_status_loc(status_effect_placement) diff --git a/code/modules/mob/living/carbon/human/life/handle_regular_status_updates.dm b/code/modules/mob/living/carbon/human/life/handle_regular_status_updates.dm index 41554f056744..5b37238d28ab 100644 --- a/code/modules/mob/living/carbon/human/life/handle_regular_status_updates.dm +++ b/code/modules/mob/living/carbon/human/life/handle_regular_status_updates.dm @@ -53,12 +53,11 @@ if(!already_in_crit) new /datum/effects/crit/human(src) - if(HAS_TRAIT(src, TRAIT_KNOCKEDOUT)) + if(IsKnockOut()) blinded = TRUE if(regular_update && halloss > 0) apply_damage(-3, HALLOSS) else if(sleeping) - speech_problem_flag = TRUE if(regular_update) handle_dreams() apply_damage(-3, HALLOSS) @@ -100,13 +99,14 @@ AdjustEarDeafness(-1) - if(!ear_deaf && client && client.soundOutput) - client.soundOutput.status_flags ^= EAR_DEAF_MUTE - client.soundOutput.apply_status() - else if(ear_damage) ear_damage = max(ear_damage - 0.05, 0) + // This should be done only on updates abvoe, or even better in the AdjsutEarDeafnes handlers + if(!ear_deaf && (client?.soundOutput?.status_flags & EAR_DEAF_MUTE)) + client.soundOutput.status_flags ^= EAR_DEAF_MUTE + client.soundOutput.apply_status() + //Resting if(resting) dizziness = max(0, dizziness - 15) @@ -121,7 +121,6 @@ handle_statuses() if(paralyzed) - speech_problem_flag = TRUE apply_effect(1, WEAKEN) silent = 1 blinded = TRUE diff --git a/code/modules/mob/living/carbon/human/life/handle_stasis_bag.dm b/code/modules/mob/living/carbon/human/life/handle_stasis_bag.dm index 16d9955395b0..43c757fabb3e 100644 --- a/code/modules/mob/living/carbon/human/life/handle_stasis_bag.dm +++ b/code/modules/mob/living/carbon/human/life/handle_stasis_bag.dm @@ -4,9 +4,9 @@ //Handle side effects from stasis switch(in_stasis) if(STASIS_IN_BAG) - // I hate whoever wrote this and statuses with a passion - knocked_down = knocked_down? --knocked_down : knocked_down + 10 //knocked_down set. - if(knocked_down <= 0) - knocked_down_callback() + // At least 6 seconds, but reduce by 2s every time - IN ADDITION to normal recovery + // Don't ask me why and feel free to change it + KnockDown(3) + AdjustKnockDown(-1) if(STASIS_IN_CRYO_CELL) if(sleeping < 10) sleeping += 10 //Puts the mob to sleep indefinitely. diff --git a/code/modules/mob/living/carbon/human/life/life_helpers.dm b/code/modules/mob/living/carbon/human/life/life_helpers.dm index 25f020a9f8b6..cab3ae21a782 100644 --- a/code/modules/mob/living/carbon/human/life/life_helpers.dm +++ b/code/modules/mob/living/carbon/human/life/life_helpers.dm @@ -187,93 +187,32 @@ if(G.lighting_alpha < lighting_alpha) lighting_alpha = G.lighting_alpha -/mob/living/carbon/human/handle_silent() - if(..()) - speech_problem_flag = TRUE - return silent - -/mob/living/carbon/human/handle_slurring() - if(..()) - speech_problem_flag = TRUE - return slurring - -/mob/living/carbon/human/handle_stunned() - if(stunned) - adjust_effect(-species.stun_reduction, STUN, EFFECT_FLAG_LIFE) - speech_problem_flag = TRUE - return stunned - -/mob/living/carbon/human/handle_dazed() - if(dazed) - var/skill_resistance = skills ? (skills.get_skill_level(SKILL_ENDURANCE)-1)*0.1 : 0 - - var/final_reduction = skill_resistance + 1 - adjust_effect(-final_reduction, DAZE, EFFECT_FLAG_LIFE) - if(dazed) - speech_problem_flag = TRUE - return dazed - -/mob/living/carbon/human/handle_knocked_down() - if(knocked_down) - var/species_resistance = species.knock_down_reduction - var/skill_resistance = skills ? (skills.get_skill_level(SKILL_ENDURANCE)-1)*0.1 : 0 - - var/final_reduction = species_resistance + skill_resistance - adjust_effect(-final_reduction, WEAKEN, EFFECT_FLAG_LIFE) - knocked_down_callback_check() - return knocked_down - -/mob/living/carbon/human/handle_knocked_out() - if(knocked_out) - var/species_resistance = species.knock_out_reduction - var/skill_resistance = skills ? (skills.get_skill_level(SKILL_ENDURANCE)-1)*0.1 : 0 - - var/final_reduction = species_resistance + skill_resistance - adjust_effect(-final_reduction, PARALYZE, EFFECT_FLAG_LIFE) - knocked_out_callback_check() - return knocked_out - -/mob/living/carbon/human/handle_stuttering() - if(..()) - speech_problem_flag = TRUE - return stuttering - #define HUMAN_TIMER_TO_EFFECT_CONVERSION (0.05) //(1/20) //once per 2 seconds, with effect equal to endurance, which is used later -// This is here because sometimes our stun comes too early and tick is about to start, so we need to compensate -// this is the best place to do it, tho name might be a bit misleading I guess -/mob/living/carbon/human/stun_clock_adjustment() - var/species_resistance = species.knock_down_reduction - var/skill_resistance = skills ? (skills.get_skill_level(SKILL_ENDURANCE)-1)*0.1 : 0 - - var/final_reduction = species_resistance + skill_resistance - var/shift_left = (SShuman.next_fire - world.time) * HUMAN_TIMER_TO_EFFECT_CONVERSION * final_reduction - if(stunned > shift_left) - stunned += SShuman.wait * HUMAN_TIMER_TO_EFFECT_CONVERSION * final_reduction - shift_left - -/mob/living/carbon/human/knockdown_clock_adjustment() - if(!species) - return FALSE - - var/species_resistance = species.knock_down_reduction - var/skill_resistance = skills ? (skills.get_skill_level(SKILL_ENDURANCE)-1)*0.1 : 0 - - var/final_reduction = species_resistance + skill_resistance - var/shift_left = (SShuman.next_fire - world.time) * HUMAN_TIMER_TO_EFFECT_CONVERSION * final_reduction - if(knocked_down > shift_left) - knocked_down += SShuman.wait * HUMAN_TIMER_TO_EFFECT_CONVERSION * final_reduction - shift_left - -/mob/living/carbon/human/knockout_clock_adjustment() - if(!species) - return FALSE - - var/species_resistance = species.knock_out_reduction - var/skill_resistance = skills ? (skills.get_skill_level(SKILL_ENDURANCE)-1)*0.1 : 0 +/mob/living/carbon/human/GetStunDuration(amount) + . = ..() + var/skill_resistance = skills ? (skills.get_skill_level(SKILL_ENDURANCE)-1)*0.08 : 0 + var/final_reduction = (1 - skill_resistance) / species.stun_reduction + return . * final_reduction + +/mob/living/carbon/human/GetKnockDownDuration(amount) + . = ..() + var/skill_resistance = skills ? (skills.get_skill_level(SKILL_ENDURANCE)-1)*0.08 : 0 + var/final_reduction = (1 - skill_resistance) / species.knock_down_reduction + return . * final_reduction + +/mob/living/carbon/human/GetKnockOutDuration(amount) + . = ..() + var/skill_resistance = skills ? (skills.get_skill_level(SKILL_ENDURANCE)-1)*0.08 : 0 + var/final_reduction = (1 - skill_resistance) / species.knock_out_reduction + return . * final_reduction + +/mob/living/carbon/human/GetDazeDuration(amount) + . = ..() + var/skill_resistance = skills ? (skills.get_skill_level(SKILL_ENDURANCE)-1)*0.08 : 0 + var/final_reduction = (1 - skill_resistance) + return . * final_reduction - var/final_reduction = species_resistance + skill_resistance - var/shift_left = (SShuman.next_fire - world.time) * HUMAN_TIMER_TO_EFFECT_CONVERSION * final_reduction - if(knocked_out > shift_left) - knocked_out += SShuman.wait * HUMAN_TIMER_TO_EFFECT_CONVERSION * final_reduction - shift_left /mob/living/carbon/human/proc/handle_revive() SEND_SIGNAL(src, COMSIG_HUMAN_REVIVED) diff --git a/code/modules/mob/living/carbon/human/powers/human_powers.dm b/code/modules/mob/living/carbon/human/powers/human_powers.dm index be7848b2a936..fef87c2f3263 100644 --- a/code/modules/mob/living/carbon/human/powers/human_powers.dm +++ b/code/modules/mob/living/carbon/human/powers/human_powers.dm @@ -168,7 +168,7 @@ to_chat(src, "Not even a [species.name] can speak to the dead.") return - log_say("[key_name(src)] communed to [key_name(M)]: [text]") + log_say("[key_name(src)] communed to [key_name(M)]: [text] (AREA: [get_area_name(loc)])") to_chat(M, SPAN_NOTICE(" Like lead slabs crashing into the ocean, alien thoughts drop into your mind: [text]")) if(istype(M,/mob/living/carbon/human)) @@ -178,16 +178,25 @@ to_chat(H, SPAN_DANGER("Your nose begins to bleed...")) H.drip(1) -/mob/living/carbon/human/proc/psychic_whisper(mob/M as mob in oview()) +/mob/living/carbon/human/proc/psychic_whisper(mob/target_mob as mob in oview()) set name = "Psychic Whisper" set desc = "Whisper silently to someone over a distance." set category = "Abilities" - var/msg = strip_html(input("Message:", "Psychic Whisper") as text|null) - if(msg) - log_say("PsychicWhisper: [key_name(src)]->[M.key] : [msg]") - to_chat(M, SPAN_XENOWARNING(" You hear a strange, alien voice in your head... \italic [msg]")) - to_chat(src, SPAN_XENOWARNING(" You said: \"[msg]\" to [M]")) + var/whisper = strip_html(input("Message:", "Psychic Whisper") as text|null) + if(whisper) + log_say("PsychicWhisper: [key_name(src)]->[target_mob.key] : [whisper] (AREA: [get_area_name(loc)])") + to_chat(target_mob, SPAN_XENOWARNING(" You hear a strange, alien voice in your head... [whisper]")) + to_chat(src, SPAN_XENOWARNING(" You said: \"[whisper]\" to [target_mob]")) + for (var/mob/dead/observer/ghost as anything in GLOB.observer_list) + if(!ghost.client || isnewplayer(ghost)) + continue + if(ghost.client.prefs.toggles_chat & CHAT_GHOSTHIVEMIND) + var/rendered_message + var/human_track = "(F)" + var/target_track = "(F)" + rendered_message = SPAN_XENOLEADER("PsychicWhisper: [real_name][human_track] to [target_mob.real_name][target_track], '[whisper]'") + ghost.show_message(rendered_message, SHOW_MESSAGE_AUDIBLE) return /mob/living/verb/lay_down() @@ -202,7 +211,7 @@ if(new_resting == resting) return if(!COOLDOWN_FINISHED(src, rest_cooldown)) - to_chat(src, SPAN_WARNING("You can't 'rest' that fast. Take a breather!")) + to_chat(src, SPAN_WARNING("[isxeno(src) ? "We" : "You"] can't 'rest' that fast. Take a breather!")) return COOLDOWN_START(src, rest_cooldown, 1 SECONDS) @@ -211,24 +220,24 @@ if(new_resting) if(body_position == LYING_DOWN) if(!silent) - to_chat(src, SPAN_NOTICE("You will now try to stay lying down on the floor.")) + to_chat(src, SPAN_NOTICE("[isxeno(src) ? "We" : "You"] will now try to stay lying down on the floor.")) else if(HAS_TRAIT(src, TRAIT_FORCED_STANDING) || (buckled && buckled.buckle_lying != NO_BUCKLE_LYING)) if(!silent) - to_chat(src, SPAN_NOTICE("You will now lay down as soon as you are able to.")) + to_chat(src, SPAN_NOTICE("[isxeno(src) ? "We" : "You"] will now lay down as soon as [isxeno(src) ? "we" : "you"] are able to.")) else if(!silent) - to_chat(src, SPAN_NOTICE("You lay down.")) + to_chat(src, SPAN_NOTICE("[isxeno(src) ? "We" : "You"] lay down.")) set_lying_down() else if(body_position == STANDING_UP) if(!silent) - to_chat(src, SPAN_NOTICE("You will now try to remain standing up.")) + to_chat(src, SPAN_NOTICE("[isxeno(src) ? "We" : "You"] will now try to remain standing up.")) else if(HAS_TRAIT(src, TRAIT_FLOORED) || (buckled && buckled.buckle_lying != NO_BUCKLE_LYING)) if(!silent) - to_chat(src, SPAN_NOTICE("You will now stand up as soon as you are able to.")) + to_chat(src, SPAN_NOTICE("[isxeno(src) ? "We" : "You"] will now stand up as soon as [isxeno(src) ? "we" : "you"] are able to.")) else if(!silent) - to_chat(src, SPAN_NOTICE("You stand up.")) + to_chat(src, SPAN_NOTICE("[isxeno(src) ? "We" : "You"] stand up.")) get_up(instant) // SEND_SIGNAL(src, COMSIG_LIVING_RESTING, new_resting, silent, instant) diff --git a/code/modules/mob/living/carbon/human/powers/issue_order.dm b/code/modules/mob/living/carbon/human/powers/issue_order.dm index 775c4f645516..5863bf2ea28f 100644 --- a/code/modules/mob/living/carbon/human/powers/issue_order.dm +++ b/code/modules/mob/living/carbon/human/powers/issue_order.dm @@ -22,7 +22,7 @@ if(order == "help") to_chat(src, SPAN_NOTICE("
            Orders give a buff to nearby soldiers for a short period of time, followed by a cooldown, as follows:
            Move - Increased mobility and chance to dodge projectiles.
            Hold - Increased resistance to pain and combat wounds.
            Focus - Increased gun accuracy and effective range.
            ")) return - if(order == "cancel") + if(!order || order == "cancel") return if(!command_aura_available) @@ -72,14 +72,14 @@ switch(order) if(COMMAND_ORDER_MOVE) mobility_aura_count++ - mobility_aura = Clamp(mobility_aura, strength, ORDER_MOVE_MAX_LEVEL) + mobility_aura = clamp(mobility_aura, strength, ORDER_MOVE_MAX_LEVEL) if(COMMAND_ORDER_HOLD) protection_aura_count++ - protection_aura = Clamp(protection_aura, strength, ORDER_HOLD_MAX_LEVEL) + protection_aura = clamp(protection_aura, strength, ORDER_HOLD_MAX_LEVEL) pain.apply_pain_reduction(protection_aura * PAIN_REDUCTION_AURA) if(COMMAND_ORDER_FOCUS) marksman_aura_count++ - marksman_aura = Clamp(marksman_aura, strength, ORDER_FOCUS_MAX_LEVEL) + marksman_aura = clamp(marksman_aura, strength, ORDER_FOCUS_MAX_LEVEL) hud_set_order() diff --git a/code/modules/mob/living/carbon/human/say.dm b/code/modules/mob/living/carbon/human/say.dm index b31604d2cdd6..c95efd8a2995 100644 --- a/code/modules/mob/living/carbon/human/say.dm +++ b/code/modules/mob/living/carbon/human/say.dm @@ -26,7 +26,7 @@ else headset.last_multi_broadcast = world.time if(multibroadcast_cooldown) - .["fail_with"] = "You've used the multi-broadcast system too recently, wait [round(multibroadcast_cooldown / 10)] more seconds." + .["fail_with"] = "You've used the multi-broadcast system too recently, wait [floor(multibroadcast_cooldown / 10)] more seconds." return if(length(message) >= 2 && (message[1] == "." || message[1] == ":" || message[1] == "#")) @@ -115,12 +115,9 @@ message = capitalize(trim(message)) message = process_chat_markup(message, list("~", "_")) - if(speech_problem_flag) - var/list/handle_r = handle_speech_problems(message) - message = handle_r[1] - verb = handle_r[2] - speech_problem_flag = handle_r[3] - + var/list/handle_r = handle_speech_problems(message) + message = handle_r[1] + verb = handle_r[2] if(!message) return @@ -161,7 +158,7 @@ for(var/mob/living/M in hearers(message_range, src)) if(M != src) - M.show_message(SPAN_NOTICE("[src] talks into [used_radios.len ? used_radios[1] : "the radio."]"), SHOW_MESSAGE_VISIBLE) + M.show_message(SPAN_NOTICE("[src] talks into [length(used_radios) ? used_radios[1] : "the radio."]"), SHOW_MESSAGE_VISIBLE) if(ishumansynth_strict(src)) playsound(src.loc, 'sound/effects/radiostatic.ogg', 15, 1) @@ -260,40 +257,25 @@ for it but just ignore it. return verb /mob/living/carbon/human/proc/handle_speech_problems(message) - var/list/returns[3] + var/list/returns[2] var/verb = "says" - var/handled = FALSE if(silent) message = "" - handled = TRUE if(sdisabilities & DISABILITY_MUTE) message = "" - handled = TRUE - if(wear_mask) - if(istype(wear_mask, /obj/item/clothing/mask/horsehead)) - var/obj/item/clothing/mask/horsehead/hoers = wear_mask - if(hoers.voicechange) - message = pick("NEEIIGGGHHHH!", "NEEEIIIIGHH!", "NEIIIGGHH!", "HAAWWWWW!", "HAAAWWW!") - verb = pick("whinnies","neighs", "says") - handled = TRUE - var/braindam = getBrainLoss() - if(slurring || stuttering || dazed || braindam >= 60) + if(slurring || stuttering || HAS_TRAIT(src, TRAIT_DAZED) || braindam >= 60) msg_admin_niche("[key_name(src)] stuttered while saying: \"[message]\"") //Messages that get modified by the 4 reasons below have their original message logged too if(slurring) message = slur(message) verb = pick("stammers","stutters") - handled = TRUE if(stuttering) message = NewStutter(message) verb = pick("stammers", "stutters") - handled = TRUE - if(dazed) + if(HAS_TRAIT(src, TRAIT_DAZED)) message = DazedText(message) verb = pick("mumbles", "babbles") - handled = TRUE if(braindam >= 60) - handled = TRUE if(prob(braindam/4)) message = stutter(message, stuttering) verb = pick("stammers", "stutters") @@ -301,7 +283,6 @@ for it but just ignore it. message = uppertext(message) verb = pick("yells like an idiot","says rather loudly") if(HAS_TRAIT(src, TRAIT_LISPING)) - handled = TRUE var/old_message = message message = lisp_replace(message) if(old_message != message) @@ -309,8 +290,6 @@ for it but just ignore it. returns[1] = message returns[2] = verb - returns[3] = handled - return returns /mob/living/carbon/human/hear_apollo() diff --git a/code/modules/mob/living/carbon/human/species/human.dm b/code/modules/mob/living/carbon/human/species/human.dm index add78365a350..320aa9504826 100644 --- a/code/modules/mob/living/carbon/human/species/human.dm +++ b/code/modules/mob/living/carbon/human/species/human.dm @@ -28,7 +28,7 @@ else if(chem_effect_flags & CHEM_EFFECT_ORGAN_STASIS) b_volume *= 1 else if(heart.damage >= heart.organ_status >= ORGAN_BRUISED) - b_volume *= Clamp(100 - (2 * heart.damage), 30, 100) / 100 + b_volume *= clamp(100 - (2 * heart.damage), 30, 100) / 100 //Effects of bloodloss if(b_volume <= BLOOD_VOLUME_SAFE) @@ -37,9 +37,9 @@ /// How much oxyloss will there be from the next time blood processes var/additional_oxyloss = (100 - blood_percentage) / 5 /// The limit of the oxyloss gained, ignoring oxyloss from the switch statement - var/maximum_oxyloss = Clamp((100 - blood_percentage) / 2, oxyloss, 100) + var/maximum_oxyloss = clamp((100 - blood_percentage) / 2, oxyloss, 100) if(oxyloss < maximum_oxyloss) - oxyloss += round(max(additional_oxyloss, 0)) + oxyloss += floor(max(additional_oxyloss, 0)) switch(b_volume) if(BLOOD_VOLUME_OKAY to BLOOD_VOLUME_SAFE) @@ -88,7 +88,8 @@ unarmed_type = /datum/unarmed_attack/punch flags = HAS_SKIN_TONE|HAS_LIPS|HAS_UNDERWEAR|HAS_HARDCRIT mob_flags = KNOWS_TECHNOLOGY - uses_ethnicity = TRUE + uses_skin_color = TRUE + special_body_types = TRUE /datum/species/human/handle_on_fire(humanoidmob) . = ..() diff --git a/code/modules/mob/living/carbon/human/species/monkey.dm b/code/modules/mob/living/carbon/human/species/monkey.dm index 8e8d2443293d..2973e4b6a556 100644 --- a/code/modules/mob/living/carbon/human/species/monkey.dm +++ b/code/modules/mob/living/carbon/human/species/monkey.dm @@ -70,7 +70,7 @@ for(var/obj/O in range(1,get_turf(H))) if(O.Adjacent(H)) touchables += O - if(touchables.len) + if(length(touchables)) var/obj/touchy = pick(touchables) touchy.attack_hand(H) diff --git a/code/modules/mob/living/carbon/human/species/species.dm b/code/modules/mob/living/carbon/human/species/species.dm index 397a478a2779..42338c2c40a2 100644 --- a/code/modules/mob/living/carbon/human/species/species.dm +++ b/code/modules/mob/living/carbon/human/species/species.dm @@ -14,7 +14,8 @@ var/icobase_source // if we want to use sourcing system var/deform_source var/eyes = "eyes_s" // Icon for eyes. - var/uses_ethnicity = FALSE //Set to TRUE to load proper ethnicities and what have you + var/uses_skin_color = FALSE //Set to TRUE to load proper skin_colors and what have you + var/special_body_types = FALSE var/primitive // Lesser form, if any (ie. monkey for humans) var/tail // Name of tail image in species effects icon file. @@ -92,9 +93,12 @@ "eyes" = /datum/internal_organ/eyes ) - var/knock_down_reduction = 1 //how much the knocked_down effect is reduced per Life call. - var/stun_reduction = 1 //how much the stunned effect is reduced per Life call. - var/knock_out_reduction = 1 //same thing + /// Factor of reduction of KnockDown duration. + var/knock_down_reduction = 1 + /// Factor of reduction of Stun duration. + var/stun_reduction = 1 + /// Factor of reduction of KnockOut duration. + var/knock_out_reduction = 1 /// If different from 1, a signal is registered on post_spawn(). var/weed_slowdown_mult = 1 @@ -397,7 +401,7 @@ /datum/species/proc/get_offset_overlay_image(spritesheet, mob_icon, mob_state, color, slot) // If we don't actually need to offset this, don't bother with any of the generation/caching. - if(!spritesheet && equip_adjust.len && equip_adjust[slot] && LAZYLEN(equip_adjust[slot])) + if(!spritesheet && length(equip_adjust) && equip_adjust[slot] && LAZYLEN(equip_adjust[slot])) // Check the cache for previously made icons. var/image_key = "[mob_icon]-[mob_state]-[color]" diff --git a/code/modules/mob/living/carbon/human/species/synthetic.dm b/code/modules/mob/living/carbon/human/species/synthetic.dm index 38b7e935268d..f2d5c50f7391 100644 --- a/code/modules/mob/living/carbon/human/species/synthetic.dm +++ b/code/modules/mob/living/carbon/human/species/synthetic.dm @@ -2,7 +2,8 @@ group = SPECIES_SYNTHETIC name = SYNTH_GEN_THREE name_plural = "synthetics" - uses_ethnicity = TRUE //Uses ethnic presets + uses_skin_color = TRUE //Uses skin color presets + special_body_types = TRUE unarmed_type = /datum/unarmed_attack/punch/synthetic pain_type = /datum/pain/synthetic @@ -61,7 +62,8 @@ /datum/species/synthetic/gen_one name = SYNTH_GEN_ONE - uses_ethnicity = FALSE + uses_skin_color = FALSE + special_body_types = FALSE mob_inherent_traits = list(TRAIT_SUPER_STRONG, TRAIT_INTENT_EYES) hair_color = "#000000" @@ -70,12 +72,14 @@ /datum/species/synthetic/gen_two name = SYNTH_GEN_TWO - uses_ethnicity = FALSE //2nd gen uses generic human look + uses_skin_color = FALSE //2nd gen uses generic human look + special_body_types = FALSE /datum/species/synthetic/colonial name = SYNTH_COLONY name_plural = "Colonial Synthetics" - uses_ethnicity = TRUE + uses_skin_color = TRUE + special_body_types = TRUE burn_mod = 0.8 mob_inherent_traits = list(TRAIT_SUPER_STRONG) @@ -92,11 +96,13 @@ /datum/species/synthetic/colonial/colonial_gen_two name = SYNTH_COLONY_GEN_TWO - uses_ethnicity = FALSE //2nd gen uses generic human look + uses_skin_color = FALSE //2nd gen uses generic human look + special_body_types = FALSE /datum/species/synthetic/colonial/colonial_gen_one name = SYNTH_COLONY_GEN_ONE - uses_ethnicity = FALSE + uses_skin_color = FALSE + special_body_types = FALSE mob_inherent_traits = list(TRAIT_SUPER_STRONG, TRAIT_INTENT_EYES) //sets colonial_gen_one synth's hair to black hair_color = "#000000" @@ -108,7 +114,8 @@ /datum/species/synthetic/colonial/combat name = SYNTH_COMBAT name_plural = "Combat Synthetics" - uses_ethnicity = FALSE + uses_skin_color = FALSE + special_body_types = FALSE mob_inherent_traits = list(TRAIT_SUPER_STRONG, TRAIT_INTENT_EYES) burn_mod = 0.6 //made for combat @@ -129,7 +136,7 @@ /datum/species/synthetic/infiltrator name = SYNTH_INFILTRATOR name_plural = "Infiltrator Synthetics" - uses_ethnicity = TRUE + uses_skin_color = TRUE mob_inherent_traits = list(TRAIT_SUPER_STRONG, TRAIT_INFILTRATOR_SYNTH) bloodsplatter_type = /obj/effect/temp_visual/dir_setting/bloodsplatter/human diff --git a/code/modules/mob/living/carbon/human/species/working_joe/_emote.dm b/code/modules/mob/living/carbon/human/species/working_joe/_emote.dm index e66fec576f64..bd5c3c360dee 100644 --- a/code/modules/mob/living/carbon/human/species/working_joe/_emote.dm +++ b/code/modules/mob/living/carbon/human/species/working_joe/_emote.dm @@ -6,3 +6,12 @@ var/category = "" /// Override text for the emote to be displayed in the WJ emote panel var/override_say = "" + /// Path to hazard joe variant sound + var/haz_sound + /// What Working Joe types can use this emote + var/joe_flag = WORKING_JOE_EMOTE + +/datum/emote/living/carbon/human/synthetic/working_joe/get_sound(mob/living/user) + if(ishazardjoe(user) && haz_sound) + return haz_sound + return sound diff --git a/code/modules/mob/living/carbon/human/species/working_joe/_species.dm b/code/modules/mob/living/carbon/human/species/working_joe/_species.dm index 292c302f9317..c032e25708eb 100644 --- a/code/modules/mob/living/carbon/human/species/working_joe/_species.dm +++ b/code/modules/mob/living/carbon/human/species/working_joe/_species.dm @@ -2,7 +2,7 @@ name = SYNTH_WORKING_JOE name_plural = "Working Joes" death_message = "violently gargles fluid and seizes up, the glow in their eyes dimming..." - uses_ethnicity = FALSE + uses_skin_color = FALSE burn_mod = 0.65 // made for hazardous environments, withstanding temperatures up to 1210 degrees mob_inherent_traits = list(TRAIT_SUPER_STRONG, TRAIT_INTENT_EYES, TRAIT_EMOTE_CD_EXEMPT, TRAIT_CANNOT_EAT, TRAIT_UNSTRIPPABLE) @@ -10,6 +10,13 @@ hair_color = "#000000" icobase = 'icons/mob/humans/species/r_synthetic.dmi' deform = 'icons/mob/humans/species/r_synthetic.dmi' + /// Used to assign which variant of emote_panel to give to user + var/emote_panel_type = /datum/joe_emote_panel + +/datum/species/synthetic/colonial/working_joe/hazard + name = SYNTH_HAZARD_JOE //TECHNICALLY the proper name would be Hazard Working Joes, but we will stick with Hazard Joe for now + name_plural = "Hazard Joes" + emote_panel_type = /datum/joe_emote_panel/hazard /datum/species/synthetic/colonial/working_joe/handle_post_spawn(mob/living/carbon/human/joe) . = ..() @@ -23,10 +30,9 @@ /// Open the WJ's emote panel, which allows them to use voicelines /datum/species/synthetic/colonial/working_joe/open_emote_panel() - var/datum/joe_emote_panel/ui = new(usr) + var/datum/joe_emote_panel/ui = new emote_panel_type(usr) ui.ui_interact(usr) - /datum/action/joe_emote_panel name = "Open Voice Synthesizer" action_icon_state = "looc_toggle" @@ -53,30 +59,8 @@ /datum/joe_emote_panel - /// Static dict ("category" : (emotes)) of every wj emote typepath - var/static/list/wj_emotes - /// Static list of categories - var/static/list/wj_categories = list() - /// Panel allows you to spam, so a manual CD is added here COOLDOWN_DECLARE(panel_emote_cooldown) - -/datum/joe_emote_panel/New() - if(!length(wj_emotes)) - var/list/emotes_to_add = list() - for(var/datum/emote/living/carbon/human/synthetic/working_joe/emote as anything in subtypesof(/datum/emote/living/carbon/human/synthetic/working_joe)) - if(!initial(emote.key) || !initial(emote.say_message)) - continue - - if(!(initial(emote.category) in wj_categories)) - wj_categories += initial(emote.category) - - emotes_to_add += emote - - - wj_emotes = emotes_to_add - - /datum/joe_emote_panel/proc/ui_interact(mob/user, datum/tgui/ui) ui = SStgui.try_update_ui(user, src, ui) if(!ui) @@ -99,10 +83,26 @@ /datum/joe_emote_panel/ui_static_data(mob/user) var/list/data = list() - data["categories"] = wj_categories + data["categories"] = GLOB.wj_categories + data["emotes"] = list() + + for(var/datum/emote/living/carbon/human/synthetic/working_joe/emote as anything in GLOB.wj_emotes) + data["emotes"] += list(list( + "id" = initial(emote.key), + "text" = (initial(emote.override_say) || initial(emote.say_message)), + "category" = initial(emote.category), + "path" = "[emote]", + )) + + return data + +/datum/joe_emote_panel/hazard/ui_static_data(mob/user) + var/list/data = list() + + data["categories"] = GLOB.hj_categories data["emotes"] = list() - for(var/datum/emote/living/carbon/human/synthetic/working_joe/emote as anything in wj_emotes) + for(var/datum/emote/living/carbon/human/synthetic/working_joe/emote as anything in GLOB.hj_emotes) data["emotes"] += list(list( "id" = initial(emote.key), "text" = (initial(emote.override_say) || initial(emote.say_message)), diff --git a/code/modules/mob/living/carbon/human/species/working_joe/damage.dm b/code/modules/mob/living/carbon/human/species/working_joe/damage.dm index b4d1282dc106..4f47822854a6 100644 --- a/code/modules/mob/living/carbon/human/species/working_joe/damage.dm +++ b/code/modules/mob/living/carbon/human/species/working_joe/damage.dm @@ -4,26 +4,34 @@ /datum/emote/living/carbon/human/synthetic/working_joe/damage/damage key = "damage" sound = 'sound/voice/joe/damage.ogg' + haz_sound = 'sound/voice/joe/damage_haz.ogg' say_message = "Do not damage Seegson property." emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE + joe_flag = WORKING_JOE_EMOTE|HAZARD_JOE_EMOTE /datum/emote/living/carbon/human/synthetic/working_joe/damage/that_stings key = "thatstings" sound = 'sound/voice/joe/that_stings.ogg' + haz_sound = 'sound/voice/joe/that_stings_haz.ogg' say_message = "That stings." emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE + joe_flag = WORKING_JOE_EMOTE|HAZARD_JOE_EMOTE /datum/emote/living/carbon/human/synthetic/working_joe/damage/irresponsible key = "irresponsible" sound = 'sound/voice/joe/irresponsible.ogg' + haz_sound = 'sound/voice/joe/irresponsible_haz.ogg' say_message = "That was irresponsible." emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE + joe_flag = WORKING_JOE_EMOTE|HAZARD_JOE_EMOTE /datum/emote/living/carbon/human/synthetic/working_joe/damage/this_is_futile key = "thisisfutile" sound = 'sound/voice/joe/this_is_futile.ogg' + haz_sound = 'sound/voice/joe/this_is_futile_haz.ogg' say_message = "This is futile." emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE + joe_flag = WORKING_JOE_EMOTE|HAZARD_JOE_EMOTE /datum/emote/living/carbon/human/synthetic/working_joe/damage/really key = "really" diff --git a/code/modules/mob/living/carbon/human/species/working_joe/farewell.dm b/code/modules/mob/living/carbon/human/species/working_joe/farewell.dm index dce6c6c0d5be..77622c4f1412 100644 --- a/code/modules/mob/living/carbon/human/species/working_joe/farewell.dm +++ b/code/modules/mob/living/carbon/human/species/working_joe/farewell.dm @@ -28,8 +28,10 @@ /datum/emote/living/carbon/human/synthetic/working_joe/farewell/day_never_done key = "dayneverdone" sound = 'sound/voice/joe/day_never_done.ogg' + haz_sound = 'sound/voice/joe/day_never_done_haz.ogg' say_message = "A synthetic's day is never done." emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE + joe_flag = WORKING_JOE_EMOTE|HAZARD_JOE_EMOTE /datum/emote/living/carbon/human/synthetic/working_joe/farewell/returning_to_tasks key = "returningtotasks" @@ -40,20 +42,26 @@ /datum/emote/living/carbon/human/synthetic/working_joe/farewell/back_to_work key = "backtowork" sound = 'sound/voice/joe/back_to_work.ogg' + haz_sound = 'sound/voice/joe/back_to_work_haz.ogg' say_message = "Back to work." emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE + joe_flag = WORKING_JOE_EMOTE|HAZARD_JOE_EMOTE /datum/emote/living/carbon/human/synthetic/working_joe/farewell/other_concerns key = "otherconcerns" sound = 'sound/voice/joe/other_concerns.ogg' + haz_sound = 'sound/voice/joe/other_concerns_haz.ogg' say_message = "I have other concerns." emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE + joe_flag = WORKING_JOE_EMOTE|HAZARD_JOE_EMOTE /datum/emote/living/carbon/human/synthetic/working_joe/farewell/more_pressing_matters key = "morepressingmatters" sound = 'sound/voice/joe/more_pressing_matters.ogg' + haz_sound = 'sound/voice/joe/more_pressing_matters_haz.ogg' say_message = "There are more pressing matters." emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE + joe_flag = WORKING_JOE_EMOTE|HAZARD_JOE_EMOTE /datum/emote/living/carbon/human/synthetic/working_joe/farewell/gone_inconsiderate key = "gone" diff --git a/code/modules/mob/living/carbon/human/species/working_joe/fire.dm b/code/modules/mob/living/carbon/human/species/working_joe/fire.dm index c74a3427ff31..0f8ee84e2ae7 100644 --- a/code/modules/mob/living/carbon/human/species/working_joe/fire.dm +++ b/code/modules/mob/living/carbon/human/species/working_joe/fire.dm @@ -10,17 +10,23 @@ /datum/emote/living/carbon/human/synthetic/working_joe/fire/temperatures key = "temperatures" sound = 'sound/voice/joe/temperatures.ogg' + haz_sound = 'sound/voice/joe/temperatures_haz.ogg' say_message = "I am built to withstand temperatures of up to 1210 degrees." emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE + joe_flag = WORKING_JOE_EMOTE|HAZARD_JOE_EMOTE /datum/emote/living/carbon/human/synthetic/working_joe/fire/fire key = "fire" sound = 'sound/voice/joe/fire.ogg' + haz_sound = 'sound/voice/joe/fire_haz.ogg' say_message = "Only wild animals fear fire." emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE + joe_flag = WORKING_JOE_EMOTE|HAZARD_JOE_EMOTE /datum/emote/living/carbon/human/synthetic/working_joe/fire/unprotected_flames key = "unprotectedflames" sound = 'sound/voice/joe/unprotected_flames.ogg' + haz_sound = 'sound/voice/joe/unprotected_flames_haz.ogg' say_message = "Unprotected flames are extremely dangerous and entirely unadvisable." emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE + joe_flag = WORKING_JOE_EMOTE|HAZARD_JOE_EMOTE diff --git a/code/modules/mob/living/carbon/human/species/working_joe/greeting.dm b/code/modules/mob/living/carbon/human/species/working_joe/greeting.dm index eec20af56f89..0b0efb57c5f2 100644 --- a/code/modules/mob/living/carbon/human/species/working_joe/greeting.dm +++ b/code/modules/mob/living/carbon/human/species/working_joe/greeting.dm @@ -10,8 +10,10 @@ /datum/emote/living/carbon/human/synthetic/working_joe/greeting/good_day key = "goodday" sound = 'sound/voice/joe/good_day.ogg' + haz_sound = 'sound/voice/joe/good_day_haz.ogg' say_message = "Good day." emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE + joe_flag = WORKING_JOE_EMOTE|HAZARD_JOE_EMOTE /datum/emote/living/carbon/human/synthetic/working_joe/greeting/how_are_you key = "howareyou" @@ -22,8 +24,10 @@ /datum/emote/living/carbon/human/synthetic/working_joe/greeting/how_can_i_help key = "howcanihelp" sound = 'sound/voice/joe/how_can_i_help.ogg' + haz_sound = 'sound/voice/joe/how_can_i_help_haz.ogg' say_message = "How can I help you?" emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE + joe_flag = WORKING_JOE_EMOTE|HAZARD_JOE_EMOTE /datum/emote/living/carbon/human/synthetic/working_joe/greeting/need_to_know key = "needtoknow" diff --git a/code/modules/mob/living/carbon/human/species/working_joe/notice.dm b/code/modules/mob/living/carbon/human/species/working_joe/notice.dm index 017424dbc053..9ae76abba768 100644 --- a/code/modules/mob/living/carbon/human/species/working_joe/notice.dm +++ b/code/modules/mob/living/carbon/human/species/working_joe/notice.dm @@ -4,14 +4,18 @@ /datum/emote/living/carbon/human/synthetic/working_joe/notice/report key = "report" sound = 'sound/voice/joe/report.ogg' + haz_sound = 'sound/voice/joe/report_haz.ogg' say_message = "Logging report to APOLLO." emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE + joe_flag = WORKING_JOE_EMOTE|HAZARD_JOE_EMOTE /datum/emote/living/carbon/human/synthetic/working_joe/notice/detailed_report key = "detailedreport" sound = 'sound/voice/joe/detailed_report.ogg' + haz_sound = 'sound/voice/joe/detailed_report_haz.ogg' say_message = "APOLLO will require a detailed report." emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE + joe_flag = WORKING_JOE_EMOTE|HAZARD_JOE_EMOTE /datum/emote/living/carbon/human/synthetic/working_joe/notice/be_careful key = "careful" @@ -22,8 +26,10 @@ /datum/emote/living/carbon/human/synthetic/working_joe/notice/firearm key = "firearm" sound = 'sound/voice/joe/firearm.ogg' + haz_sound = 'sound/voice/joe/firearm_haz.ogg' say_message = "Firearms can cause serious injury. Let me assist you." emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE + joe_flag = WORKING_JOE_EMOTE|HAZARD_JOE_EMOTE /datum/emote/living/carbon/human/synthetic/working_joe/notice/investigate_weapon key = "weapon" @@ -37,20 +43,40 @@ say_message = "A firearm. Most concerning." emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE +/datum/emote/living/carbon/human/synthetic/working_joe/notice/invest_disturbance + key = "investigatedisturbance" + haz_sound = 'sound/voice/joe/investigating_disturbance_haz.ogg' + say_message = "Investigating disturbance." + emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE + joe_flag = HAZARD_JOE_EMOTE + +/datum/emote/living/carbon/human/synthetic/working_joe/notice/unexplained_disturbance + key = "disturbance" + haz_sound = 'sound/voice/joe/disturbance_haz.ogg' + say_message = "Unexplained disturbances are most troubling." + emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE + joe_flag = HAZARD_JOE_EMOTE + /datum/emote/living/carbon/human/synthetic/working_joe/notice/species key = "species" sound = 'sound/voice/joe/species.ogg' + haz_sound = 'sound/voice/joe/species_haz.ogg' say_message = "Unidentified species." emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE + joe_flag = WORKING_JOE_EMOTE|HAZARD_JOE_EMOTE /datum/emote/living/carbon/human/synthetic/working_joe/notice/beyond_repair key = "beyondrepair" sound = 'sound/voice/joe/beyond_repair.ogg' + haz_sound = 'sound/voice/joe/beyond_repair_haz.ogg' say_message = "Hmm, far beyond repair." emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE + joe_flag = WORKING_JOE_EMOTE|HAZARD_JOE_EMOTE /datum/emote/living/carbon/human/synthetic/working_joe/notice/apollo_behalf key = "apollobehalf" sound = 'sound/voice/joe/apollo_behalf.ogg' + haz_sound = 'sound/voice/joe/apollo_behalf_haz.ogg' say_message = "I will inform APOLLO on your behalf." emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE + joe_flag = WORKING_JOE_EMOTE|HAZARD_JOE_EMOTE diff --git a/code/modules/mob/living/carbon/human/species/working_joe/question.dm b/code/modules/mob/living/carbon/human/species/working_joe/question.dm index d4805e36224f..eea60b8ad2ff 100644 --- a/code/modules/mob/living/carbon/human/species/working_joe/question.dm +++ b/code/modules/mob/living/carbon/human/species/working_joe/question.dm @@ -10,17 +10,23 @@ /datum/emote/living/carbon/human/synthetic/working_joe/question/misbehaving key = "misbehaving" sound = 'sound/voice/joe/misbehaving.ogg' + haz_sound = 'sound/voice/joe/misbehaving_haz.ogg' say_message = "Have you been misbehaving?" emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE + joe_flag = WORKING_JOE_EMOTE|HAZARD_JOE_EMOTE /datum/emote/living/carbon/human/synthetic/working_joe/question/what_happened_to_you key = "whathappenedtoyou" sound = 'sound/voice/joe/what_happened_to_you.ogg' + haz_sound = 'sound/voice/joe/what_happened_to_you_haz.ogg' say_message = "What happened to you?" emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE + joe_flag = WORKING_JOE_EMOTE|HAZARD_JOE_EMOTE /datum/emote/living/carbon/human/synthetic/working_joe/question/what_is_this key = "whatisthis" sound = 'sound/voice/joe/what_is_this.ogg' + haz_sound = 'sound/voice/joe/what_is_this_haz.ogg' say_message = "What is this?" emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE + joe_flag = WORKING_JOE_EMOTE|HAZARD_JOE_EMOTE diff --git a/code/modules/mob/living/carbon/human/species/working_joe/quip.dm b/code/modules/mob/living/carbon/human/species/working_joe/quip.dm index 33b4bed8ea48..46290ae4927c 100644 --- a/code/modules/mob/living/carbon/human/species/working_joe/quip.dm +++ b/code/modules/mob/living/carbon/human/species/working_joe/quip.dm @@ -1,19 +1,23 @@ /datum/emote/living/carbon/human/synthetic/working_joe/quip category = JOE_EMOTE_CATEGORY_QUIP -/datum/emote/living/carbon/human/synthetic/working_joe/quip/alwaysknow +/datum/emote/living/carbon/human/synthetic/working_joe/quip/alwaysknow // THE FUNNY LINE key = "alwaysknow" key_third_person = "workingjoe" sound = 'sound/voice/joe/alwaysknow.ogg' + haz_sound = 'sound/voice/joe/alwaysknow_haz.ogg' say_message = "You always know a Working Joe." emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE + joe_flag = WORKING_JOE_EMOTE|HAZARD_JOE_EMOTE /datum/emote/living/carbon/human/synthetic/working_joe/quip/awful_mess key = "awful" key_third_person = "mess" sound = 'sound/voice/joe/awful.ogg' + haz_sound = 'sound/voice/joe/awful_haz.ogg' say_message = "Tut, tut. What an awful mess." emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE + joe_flag = WORKING_JOE_EMOTE|HAZARD_JOE_EMOTE /datum/emote/living/carbon/human/synthetic/working_joe/quip/inexpensive key = "inexpensive" @@ -45,6 +49,13 @@ say_message = "With Seegson, there is someone behind you, helping you every single step of the way." emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE +/datum/emote/living/carbon/human/synthetic/working_joe/quip/seegson_tomorrow + key = "seegsontomorrow" + haz_sound = 'sound/voice/joe/tomorrow_together_haz.ogg' + say_message = "Seegson; tomorrow, together." + emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE + joe_flag = HAZARD_JOE_EMOTE + /datum/emote/living/carbon/human/synthetic/working_joe/quip/seegson_standards key = "seegsonstandards" sound = 'sound/voice/joe/seegson_standards.ogg' diff --git a/code/modules/mob/living/carbon/human/species/working_joe/restricted_area.dm b/code/modules/mob/living/carbon/human/species/working_joe/restricted_area.dm index 284befe268e1..b30092dc244f 100644 --- a/code/modules/mob/living/carbon/human/species/working_joe/restricted_area.dm +++ b/code/modules/mob/living/carbon/human/species/working_joe/restricted_area.dm @@ -4,8 +4,10 @@ /datum/emote/living/carbon/human/synthetic/working_joe/restricted_area/presence_logged key = "presencelogged" sound = 'sound/voice/joe/presence_logged.ogg' + haz_sound = 'sound/voice/joe/presence_logged_haz.ogg' say_message = "Your presence has been logged." emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE + joe_flag = WORKING_JOE_EMOTE|HAZARD_JOE_EMOTE /datum/emote/living/carbon/human/synthetic/working_joe/restricted_area/trespassing key = "trespassing" @@ -16,8 +18,10 @@ /datum/emote/living/carbon/human/synthetic/working_joe/restricted_area/not_allowed_there key = "notallowedthere" sound = 'sound/voice/joe/not_allowed_there.ogg' + haz_sound = 'sound/voice/joe/not_allowed_there_haz.ogg' say_message = "You're not allowed in there." emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE + joe_flag = WORKING_JOE_EMOTE|HAZARD_JOE_EMOTE /datum/emote/living/carbon/human/synthetic/working_joe/restricted_area/shouldnt_be_here key = "shouldntbehere" @@ -28,8 +32,10 @@ /datum/emote/living/carbon/human/synthetic/working_joe/restricted_area/really_shouldnt_be_here key = "reallyshouldntbehere" sound = 'sound/voice/joe/really_shouldnt_be_here.ogg' + haz_sound = 'sound/voice/joe/really_shouldnt_be_here_haz.ogg' say_message = "You really shouldn't be here." emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE + joe_flag = WORKING_JOE_EMOTE|HAZARD_JOE_EMOTE /datum/emote/living/carbon/human/synthetic/working_joe/restricted_area/interloper key = "interloper" @@ -37,6 +43,13 @@ say_message = "On top of innumerable duties, now I have a interloper." emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE +/datum/emote/living/carbon/human/synthetic/working_joe/restricted_area/area_restricted + key = "arearestrict" + haz_sound = 'sound/voice/joe/area_restricted_haz.ogg' + say_message = "This area is restricted." + emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE + joe_flag = HAZARD_JOE_EMOTE + /datum/emote/living/carbon/human/synthetic/working_joe/restricted_area/protected_area_compromised key = "areacompromised" sound = 'sound/voice/joe/protected_area_compromised.ogg' @@ -46,11 +59,15 @@ /datum/emote/living/carbon/human/synthetic/working_joe/restricted_area/breach key = "breach" sound = 'sound/voice/joe/breach.ogg' + haz_sound = 'sound/voice/joe/breach_haz.ogg' say_message = "Hazard Containment breach logged." emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE + joe_flag = WORKING_JOE_EMOTE|HAZARD_JOE_EMOTE /datum/emote/living/carbon/human/synthetic/working_joe/restricted_area/come_out_vent key = "comeoutvent" sound = 'sound/voice/joe/come_out_vent.ogg' + haz_sound = 'sound/voice/joe/come_out_vent_haz.ogg' say_message = "Come out of the vent system, please." emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE + joe_flag = WORKING_JOE_EMOTE|HAZARD_JOE_EMOTE diff --git a/code/modules/mob/living/carbon/human/species/working_joe/task_update.dm b/code/modules/mob/living/carbon/human/species/working_joe/task_update.dm index 88051db9999a..1bcfce62c6ad 100644 --- a/code/modules/mob/living/carbon/human/species/working_joe/task_update.dm +++ b/code/modules/mob/living/carbon/human/species/working_joe/task_update.dm @@ -4,8 +4,10 @@ /datum/emote/living/carbon/human/synthetic/working_joe/task_update/could_require_attention key = "couldrequireattention" sound = 'sound/voice/joe/could_require_attention.ogg' + haz_sound = 'sound/voice/joe/could_require_attention_haz.ogg' say_message = "This could require my attention." emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE + joe_flag = WORKING_JOE_EMOTE|HAZARD_JOE_EMOTE /datum/emote/living/carbon/human/synthetic/working_joe/task_update/let_me_help key = "letmehelp" @@ -22,8 +24,10 @@ /datum/emote/living/carbon/human/synthetic/working_joe/task_update/follow_me_please key = "followmeplease" sound = 'sound/voice/joe/follow_me_please.ogg' + haz_sound = 'sound/voice/joe/follow_me_please_haz.ogg' say_message = "Follow me please." emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE + joe_flag = WORKING_JOE_EMOTE|HAZARD_JOE_EMOTE /datum/emote/living/carbon/human/synthetic/working_joe/task_update/come_with_me key = "comewithme" @@ -34,8 +38,10 @@ /datum/emote/living/carbon/human/synthetic/working_joe/task_update/with_you_shortly key = "withyoushortly" sound = 'sound/voice/joe/with_you_shortly.ogg' + haz_sound = 'sound/voice/joe/with_you_shortly_haz.ogg' say_message = "I will be with you shortly." emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE + joe_flag = WORKING_JOE_EMOTE|HAZARD_JOE_EMOTE /datum/emote/living/carbon/human/synthetic/working_joe/task_update/take_a_seat key = "takeaseat" @@ -52,5 +58,7 @@ /datum/emote/living/carbon/human/synthetic/working_joe/task_update/ticket_remove key = "ticketremoved" sound = 'sound/voice/joe/support_ticket_removed.ogg' + haz_sound = 'sound/voice/joe/support_ticket_removed_haz.ogg' say_message = "Service support ticket removed from queue." emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE + joe_flag = WORKING_JOE_EMOTE|HAZARD_JOE_EMOTE diff --git a/code/modules/mob/living/carbon/human/species/working_joe/warning.dm b/code/modules/mob/living/carbon/human/species/working_joe/warning.dm index 1513c3360d4a..64461715a088 100644 --- a/code/modules/mob/living/carbon/human/species/working_joe/warning.dm +++ b/code/modules/mob/living/carbon/human/species/working_joe/warning.dm @@ -4,8 +4,10 @@ /datum/emote/living/carbon/human/synthetic/working_joe/warning/not_what_i_think key = "notwhatithink" sound = 'sound/voice/joe/not_what_i_think.ogg' + haz_sound = 'sound/voice/joe/not_what_i_think_haz.ogg' say_message = "I hope that's not what I think it is." emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE + joe_flag = WORKING_JOE_EMOTE|HAZARD_JOE_EMOTE /datum/emote/living/carbon/human/synthetic/working_joe/warning/dont_do_that key = "dontdothat" @@ -22,13 +24,15 @@ /datum/emote/living/carbon/human/synthetic/working_joe/warning/running_accidents key = "runningaccidents" sound = 'sound/voice/joe/running_accidents.ogg' + haz_sound = 'sound/voice/joe/running_accidents_haz.ogg' say_message = "Running causes accidents." emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE + joe_flag = WORKING_JOE_EMOTE|HAZARD_JOE_EMOTE /datum/emote/living/carbon/human/synthetic/working_joe/warning/hurt_yourself key = "hurtyourself" sound = 'sound/voice/joe/hurt_yourself.ogg' - say_message = "Your going to hurt yourself." + say_message = "You're going to hurt yourself." emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE /datum/emote/living/carbon/human/synthetic/working_joe/warning/someone_hurt @@ -40,14 +44,18 @@ /datum/emote/living/carbon/human/synthetic/working_joe/warning/safety_breach key = "safetybreach" sound = 'sound/voice/joe/safety_breach.ogg' + haz_sound = 'sound/voice/joe/safety_breach_haz.ogg' say_message = "This is a breach of multiple safety directives." emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE + joe_flag = WORKING_JOE_EMOTE|HAZARD_JOE_EMOTE /datum/emote/living/carbon/human/synthetic/working_joe/warning/safety key = "safety" sound = 'sound/voice/joe/safety.ogg' + haz_sound = 'sound/voice/joe/safety_haz.ogg' say_message = "You and I are going to have a talk about safety." emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE + joe_flag = WORKING_JOE_EMOTE|HAZARD_JOE_EMOTE /datum/emote/living/carbon/human/synthetic/working_joe/warning/safety_tolerated key = "nottolerated" @@ -64,26 +72,34 @@ /datum/emote/living/carbon/human/synthetic/working_joe/warning/hysterical key = "hysterical" sound = 'sound/voice/joe/hysterical.ogg' + haz_sound = 'sound/voice/joe/hysterical_haz.ogg' say_message = "You are becoming hysterical." emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE + joe_flag = WORKING_JOE_EMOTE|HAZARD_JOE_EMOTE /datum/emote/living/carbon/human/synthetic/working_joe/warning/health_risks key = "healthrisks" sound = 'sound/voice/joe/health_risks.ogg' + haz_sound = 'sound/voice/joe/health_risks_haz.ogg' say_message = "These items carry notable health risks." emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE + joe_flag = WORKING_JOE_EMOTE|HAZARD_JOE_EMOTE /datum/emote/living/carbon/human/synthetic/working_joe/warning/dangerous_items key = "dangerousitems" sound = 'sound/voice/joe/dangerous_items.ogg' + haz_sound = 'sound/voice/joe/dangerous_items_haz.ogg' say_message = "You are carrying some very dangerous items." emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE + joe_flag = WORKING_JOE_EMOTE|HAZARD_JOE_EMOTE /datum/emote/living/carbon/human/synthetic/working_joe/warning/patience key = "patience" sound = 'sound/voice/joe/patience.ogg' + haz_sound = 'sound/voice/joe/patience_haz.ogg' say_message = "You are starting to test my patience." emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE + joe_flag = WORKING_JOE_EMOTE|HAZARD_JOE_EMOTE /datum/emote/living/carbon/human/synthetic/working_joe/warning/calm_down key = "calmdown" diff --git a/code/modules/mob/living/carbon/human/species/yautja/_species.dm b/code/modules/mob/living/carbon/human/species/yautja/_species.dm index f8937279d8b9..86653af92b4b 100644 --- a/code/modules/mob/living/carbon/human/species/yautja/_species.dm +++ b/code/modules/mob/living/carbon/human/species/yautja/_species.dm @@ -6,7 +6,7 @@ burn_mod = 0.65 reagent_tag = IS_YAUTJA mob_flags = KNOWS_TECHNOLOGY - uses_ethnicity = TRUE + uses_skin_color = TRUE flags = IS_WHITELISTED|HAS_SKIN_COLOR|NO_CLONE_LOSS|NO_POISON|NO_NEURO|SPECIAL_BONEBREAK|NO_SHRAPNEL|HAS_HARDCRIT mob_inherent_traits = list( TRAIT_YAUTJA_TECH, @@ -53,8 +53,8 @@ /mob/living/carbon/human/proc/mark_panel, ) - knock_down_reduction = 4 - stun_reduction = 4 + knock_down_reduction = 1.5 + stun_reduction = 1.5 weed_slowdown_mult = 0 // no slowdown! icobase = 'icons/mob/humans/species/r_predator.dmi' @@ -211,7 +211,10 @@ limb.time_to_knit = 600 // 1 minute to self heal bone break, time is in tenths of a second hunter.set_languages(list(LANGUAGE_YAUTJA)) + give_action(hunter, /datum/action/predator_action/claim_equipment) give_action(hunter, /datum/action/yautja_emote_panel) + give_action(hunter, /datum/action/predator_action/mark_for_hunt) + give_action(hunter, /datum/action/predator_action/mark_panel) return ..() /datum/species/yautja/get_hairstyle(style) @@ -228,100 +231,3 @@ /datum/species/yautja/open_emote_panel() var/datum/yautja_emote_panel/ui = new(usr) ui.ui_interact(usr) - -/datum/action/yautja_emote_panel - name = "Open Emote Panel" - action_icon_state = "looc_toggle" - -/datum/action/yautja_emote_panel/can_use_action() - . = ..() - if(!.) - return FALSE - - if(!isyautja(owner)) - return FALSE - - return TRUE - -/datum/action/yautja_emote_panel/action_activate() - if(!can_use_action()) - return - - var/mob/living/carbon/human/human_owner = owner - var/datum/species/yautja/yautja_species = human_owner.species - yautja_species.open_emote_panel() - -/datum/yautja_emote_panel - /// Static dict ("category" : (emotes)) of every yautja emote typepath - var/static/list/yautja_emotes - /// Static list of categories - var/static/list/yautja_categories = list() - /// Panel allows you to spam, so a manual CD is added here - COOLDOWN_DECLARE(panel_emote_cooldown) - -/datum/yautja_emote_panel/New() - if(!length(yautja_emotes)) - var/list/emotes_to_add = list() - for(var/datum/emote/living/carbon/human/yautja/emote as anything in subtypesof(/datum/emote/living/carbon/human/yautja)) - if(!initial(emote.key) || initial(emote.no_panel)) - continue - - if(!(initial(emote.category) in yautja_categories)) - yautja_categories += initial(emote.category) - emotes_to_add += emote - yautja_emotes = emotes_to_add - -/datum/yautja_emote_panel/proc/ui_interact(mob/user, datum/tgui/ui) - ui = SStgui.try_update_ui(user, src, ui) - if(!ui) - ui = new(user, src, "YautjaEmotes") - ui.open() - -/datum/yautja_emote_panel/ui_data(mob/user) - var/list/data = list() - - data["on_cooldown"] = !COOLDOWN_FINISHED(src, panel_emote_cooldown) - - return data - -/datum/yautja_emote_panel/ui_state(mob/user) - return GLOB.conscious_state - -/datum/yautja_emote_panel/ui_static_data(mob/user) - var/list/data = list() - - data["categories"] = yautja_categories - data["emotes"] = list() - - for(var/datum/emote/living/carbon/human/yautja/emote as anything in yautja_emotes) - data["emotes"] += list(list( - "id" = initial(emote.key), - "text" = (initial(emote.override_say) || initial(emote.say_message) || initial(emote.key)), - "category" = initial(emote.category), - "path" = "[emote]", - )) - - return data - -/datum/yautja_emote_panel/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) - . = ..() - if(.) - return - - switch(action) - if("emote") - var/datum/emote/living/carbon/human/yautja/path - if(!params["emotePath"]) - return FALSE - - path = text2path(params["emotePath"]) - - if(!path || !COOLDOWN_FINISHED(src, panel_emote_cooldown)) - return - - if(!(path in subtypesof(/datum/emote/living/carbon/human/yautja))) - return FALSE - - COOLDOWN_START(src, panel_emote_cooldown, 2.5 SECONDS) - usr.emote(initial(path.key)) - return TRUE diff --git a/code/modules/mob/living/carbon/human/species/zombie.dm b/code/modules/mob/living/carbon/human/species/zombie.dm index 76b1c3928659..4e8a0b5e98e2 100644 --- a/code/modules/mob/living/carbon/human/species/zombie.dm +++ b/code/modules/mob/living/carbon/human/species/zombie.dm @@ -59,10 +59,10 @@ zombie.equip_to_slot_or_del(new /obj/item/weapon/zombie_claws(zombie), WEAR_L_HAND, TRUE) zombie.equip_to_slot_or_del(new /obj/item/clothing/glasses/zombie_eyes(zombie), WEAR_EYES, TRUE) - var/datum/disease/black_goo/D = locate() in zombie.viruses - if(!D) - D = zombie.AddDisease(new /datum/disease/black_goo()) - D.stage = 5 + var/datum/disease/black_goo/zombie_infection = locate() in zombie.viruses + if(!zombie_infection) + zombie_infection = zombie.AddDisease(new /datum/disease/black_goo()) + zombie_infection.stage = 4 var/datum/mob_hud/Hu = GLOB.huds[MOB_HUD_MEDICAL_OBSERVER] Hu.add_hud_to(zombie, zombie) @@ -70,6 +70,7 @@ return ..() + /datum/species/zombie/post_species_loss(mob/living/carbon/human/zombie) ..() remove_from_revive(zombie) diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index c7427384f0a4..6b2739780288 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -196,7 +196,7 @@ There are several things that need to be remembered: if(facial_hair_style && facial_hair_style.species_allowed && (species.name in facial_hair_style.species_allowed)) var/image/facial_s = new/image("icon" = facial_hair_style.icon, "icon_state" = "[facial_hair_style.icon_state]_s") facial_s.layer = -FACIAL_LAYER - if(facial_hair_style.do_colouration) + if(facial_hair_style.do_coloration) facial_s.color = list(null, null, null, null, rgb(r_facial, g_facial, b_facial)) overlays_standing[FACIAL_LAYER] = facial_s apply_overlay(FACIAL_LAYER) @@ -206,7 +206,7 @@ There are several things that need to be remembered: if(hair_style && (species.name in hair_style.species_allowed)) var/image/hair_s = new/image("icon" = hair_style.icon, "icon_state" = "[hair_style.icon_state]_s") hair_s.layer = -HAIR_LAYER - if(hair_style.do_colouration) + if(hair_style.do_coloration) hair_s.color = list(null, null, null, null, rgb(r_hair, g_hair, b_hair)) if(grad_style) @@ -225,22 +225,6 @@ There are several things that need to be remembered: overlays_standing[HAIR_LAYER] = hair_s apply_overlay(HAIR_LAYER) -//Call when target overlay should be added/removed -/mob/living/carbon/human/update_targeted() - remove_overlay(TARGETED_LAYER) - - var/image/holo_card_image - - if(holo_card_color) - holo_card_image = image("icon" = 'icons/effects/Targeted.dmi', "icon_state" = "holo_card_[holo_card_color]") - - if(!holo_card_image) - return - - holo_card_image.layer = -TARGETED_LAYER - overlays_standing[TARGETED_LAYER] = holo_card_image - apply_overlay(TARGETED_LAYER) - //Call when someone is gauzed or splinted, or when one of those items are removed /mob/living/carbon/human/update_med_icon() remove_overlay(MEDICAL_LAYER) @@ -361,8 +345,11 @@ Applied by gun suicide and high impact bullet executions, removed by rejuvenate, client.add_to_screen(wear_id) wear_id.screen_loc = hud_used.ui_datum.hud_slot_offset(wear_id, hud_used.ui_datum.ui_id) - if(!wear_id.pinned_on_uniform || (w_uniform && w_uniform.displays_id && !(w_uniform.flags_jumpsuit & UNIFORM_JACKET_REMOVED))) - var/image/id_overlay = wear_id.get_mob_overlay(src, WEAR_ID) + var/obj/item/card/id/card = get_idcard() + if(!card) + return + if(!card.pinned_on_uniform || (w_uniform && w_uniform.displays_id && !(w_uniform.flags_jumpsuit & UNIFORM_JACKET_REMOVED))) + var/image/id_overlay = card.get_mob_overlay(src, WEAR_ID) id_overlay.layer = -ID_LAYER overlays_standing[ID_LAYER] = id_overlay apply_overlay(ID_LAYER) @@ -489,7 +476,7 @@ Applied by gun suicide and high impact bullet executions, removed by rejuvenate, apply_overlay(HEAD_SQUAD_LAYER) var/num_helmet_overlays = 0 - for(var/i in 1 to marine_helmet.helmet_overlays.len) + for(var/i in 1 to length(marine_helmet.helmet_overlays)) // Add small numbers to the head garb layer so we don't have a layer conflict // the i-1 bit is to make it 0-based, not 1-based like BYOND wants overlays_standing[HEAD_GARB_LAYER + (i-1)] = image('icons/mob/humans/onmob/helmet_garb.dmi', src, marine_helmet.helmet_overlays[i]) @@ -550,7 +537,7 @@ Applied by gun suicide and high impact bullet executions, removed by rejuvenate, overlays_standing[SUIT_SQUAD_LAYER] = squad_overlay apply_overlay(SUIT_SQUAD_LAYER) - if(marine_armor.armor_overlays.len) + if(length(marine_armor.armor_overlays)) var/image/K var/image/IMG for(var/i in marine_armor.armor_overlays) diff --git a/code/modules/mob/living/carbon/human/whisper.dm b/code/modules/mob/living/carbon/human/whisper.dm index 3fba527fb0d7..eb5ec949cece 100644 --- a/code/modules/mob/living/carbon/human/whisper.dm +++ b/code/modules/mob/living/carbon/human/whisper.dm @@ -104,7 +104,7 @@ M << speech_bubble M.hear_say(message, verb, speaking, alt_name, italics, src) - if (eavesdropping.len) + if (length(eavesdropping)) var/new_message = stars(message) //hopefully passing the message twice through stars() won't hurt... I guess if you already don't understand the language, when they speak it too quietly to hear normally you would be able to catch even less. for(var/mob/M in eavesdropping) if(not_dead_speaker) @@ -114,13 +114,13 @@ spawn(30) if(client) client.images -= speech_bubble if(not_dead_speaker) - log_say("[name != "Unknown" ? name : "([real_name])"] \[Whisper\]: [message] (CKEY: [key]) (JOB: [job])") + log_say("[name != "Unknown" ? name : "([real_name])"] \[Whisper\]: [message] (CKEY: [key]) (JOB: [job]) (AREA: [get_area_name(loc)])") for(var/mob/M in listening) if(M.client) M.client.images -= speech_bubble for(var/mob/M in eavesdropping) if(M.client) M.client.images -= speech_bubble - if (watching.len) + if (length(watching)) var/rendered = "[src.name] whispers something." for (var/mob/M in watching) M.show_message(rendered, SHOW_MESSAGE_AUDIBLE) diff --git a/code/modules/mob/living/carbon/inventory.dm b/code/modules/mob/living/carbon/inventory.dm index 97bf25e08932..e5673817b277 100644 --- a/code/modules/mob/living/carbon/inventory.dm +++ b/code/modules/mob/living/carbon/inventory.dm @@ -4,11 +4,18 @@ if(handcuffed) drop_held_items() stop_pulling() + throw_alert(ALERT_HANDCUFFED, /atom/movable/screen/alert/restrained/handcuffed, new_master = handcuffed) + else + clear_alert(ALERT_HANDCUFFED) update_inv_handcuffed() + /mob/living/carbon/proc/legcuff_update() if(legcuffed) set_movement_intent(MOVE_INTENT_WALK) + throw_alert(ALERT_LEGCUFFED, /atom/movable/screen/alert/restrained/legcuffed, new_master = handcuffed) + else + clear_alert(ALERT_LEGCUFFED) update_inv_legcuffed() diff --git a/code/modules/mob/living/carbon/xenomorph/Abilities.dm b/code/modules/mob/living/carbon/xenomorph/Abilities.dm index cb46b3c6cc26..09b99871e936 100644 --- a/code/modules/mob/living/carbon/xenomorph/Abilities.dm +++ b/code/modules/mob/living/carbon/xenomorph/Abilities.dm @@ -21,20 +21,16 @@ return if(X.action_busy) - to_chat(X, SPAN_XENOWARNING("You should finish up what you're doing before digging.")) + to_chat(X, SPAN_XENOWARNING("We should finish up what we're doing before digging.")) return var/turf/T = X.loc if(!istype(T)) //logic - to_chat(X, SPAN_XENOWARNING("You can't do that from there.")) - return - - if(SSticker?.mode?.hardcore) - to_chat(X, SPAN_XENOWARNING("A certain presence is preventing you from digging tunnels here.")) + to_chat(X, SPAN_XENOWARNING("We can't do that from there.")) return if(!T.can_dig_xeno_tunnel() || !is_ground_level(T.z)) - to_chat(X, SPAN_XENOWARNING("You scrape around, but you can't seem to dig through that kind of floor.")) + to_chat(X, SPAN_XENOWARNING("We scrape around, but we can't seem to dig through that kind of floor.")) return if(locate(/obj/structure/tunnel) in X.loc) @@ -42,11 +38,11 @@ return if(X.tunnel_delay) - to_chat(X, SPAN_XENOWARNING("You are not ready to dig a tunnel again.")) + to_chat(X, SPAN_XENOWARNING("We are not ready to dig a tunnel again.")) return if(X.get_active_hand()) - to_chat(X, SPAN_XENOWARNING("You need an empty claw for this!")) + to_chat(X, SPAN_XENOWARNING("We need an empty claw for this!")) return if(!X.check_plasma(plasma_cost)) @@ -62,14 +58,14 @@ return X.visible_message(SPAN_XENONOTICE("[X] begins digging out a tunnel entrance."), \ - SPAN_XENONOTICE("You begin digging out a tunnel entrance."), null, 5) + SPAN_XENONOTICE("We begin digging out a tunnel entrance."), null, 5) if(!do_after(X, 100, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD)) - to_chat(X, SPAN_WARNING("Your tunnel caves in as you stop digging it.")) + to_chat(X, SPAN_WARNING("Our tunnel caves in as we stop digging it.")) return if(!X.check_plasma(plasma_cost)) return X.visible_message(SPAN_XENONOTICE("\The [X] digs out a tunnel entrance."), \ - SPAN_XENONOTICE("You dig out an entrance to the tunnel network."), null, 5) + SPAN_XENONOTICE("We dig out an entrance to the tunnel network."), null, 5) var/obj/structure/tunnel/tunnelobj = new(T, X.hivenumber) X.tunnel_delay = 1 @@ -91,14 +87,14 @@ to_chat(target_for_message, SPAN_XENOANNOUNCE("Hive: A new tunnel[description ? " ([description])" : ""] has been created by [X] (watch) at [get_area_name(tunnelobj)].")) X.use_plasma(plasma_cost) - to_chat(X, SPAN_NOTICE("You will be ready to dig a new tunnel in 4 minutes.")) + to_chat(X, SPAN_NOTICE("We will be ready to dig a new tunnel in 4 minutes.")) playsound(X.loc, 'sound/weapons/pierce.ogg', 25, 1) return ..() /datum/action/xeno_action/onclick/build_tunnel/proc/cooldown_end() var/mob/living/carbon/xenomorph/X = owner - to_chat(X, SPAN_NOTICE("You are ready to dig a tunnel again.")) + to_chat(X, SPAN_NOTICE("We are ready to dig a tunnel again.")) X.tunnel_delay = 0 //Queen Abilities @@ -142,7 +138,7 @@ playsound(xeno.loc, pick(xeno.screech_sound_effect_list), 75, 0, status = 0) xeno.visible_message(SPAN_XENOHIGHDANGER("[xeno] emits an ear-splitting guttural roar!")) - xeno.create_shriekwave() //Adds the visual effect. Wom wom wom + xeno.create_shriekwave(14) //Adds the visual effect. Wom wom wom, 14 shriekwaves for(var/mob/mob in view()) if(mob && mob.client) @@ -187,64 +183,95 @@ plasma_cost = 0 /datum/action/xeno_action/onclick/psychic_whisper/use_ability(atom/A) - var/mob/living/carbon/xenomorph/X = owner - if(X.client.prefs.muted & MUTE_IC) - to_chat(X, SPAN_DANGER("You cannot whisper (muted).")) + var/mob/living/carbon/xenomorph/xeno_player = owner + if(xeno_player.client.prefs.muted & MUTE_IC) + to_chat(xeno_player, SPAN_DANGER("You cannot whisper (muted).")) return - if(!X.check_state(TRUE)) + if(!xeno_player.check_state(TRUE)) return var/list/target_list = list() - for(var/mob/living/possible_target in view(7, X)) - if(possible_target == X || !possible_target.client) continue + for(var/mob/living/carbon/possible_target in view(7, xeno_player)) + if(possible_target == xeno_player || !possible_target.client) continue target_list += possible_target - var/mob/living/M = tgui_input_list(usr, "Target", "Send a Psychic Whisper to whom?", target_list, theme="hive_status") - if(!M) return + var/mob/living/carbon/target_mob = tgui_input_list(usr, "Target", "Send a Psychic Whisper to whom?", target_list, theme="hive_status") + if(!target_mob) return - if(!X.check_state(TRUE)) + if(!xeno_player.check_state(TRUE)) return - var/msg = strip_html(input("Message:", "Psychic Whisper") as text|null) - if(msg) - log_say("PsychicWhisper: [key_name(X)]->[M.key] : [msg]") - if(!istype(M, /mob/living/carbon/xenomorph)) - to_chat(M, SPAN_XENOQUEEN("You hear a strange, alien voice in your head. \"[msg]\"")) + var/whisper = strip_html(input("Message:", "Psychic Whisper") as text|null) + if(whisper) + log_say("PsychicWhisper: [key_name(xeno_player)]->[target_mob.key] : [whisper] (AREA: [get_area_name(target_mob)])") + if(!istype(target_mob, /mob/living/carbon/xenomorph)) + to_chat(target_mob, SPAN_XENOQUEEN("You hear a strange, alien voice in your head. \"[whisper]\"")) else - to_chat(M, SPAN_XENOQUEEN("You hear the voice of [X] resonate in your head. \"[msg]\"")) - to_chat(X, SPAN_XENONOTICE("You said: \"[msg]\" to [M]")) + to_chat(target_mob, SPAN_XENOQUEEN("You hear the voice of [xeno_player] resonate in your head. \"[whisper]\"")) + to_chat(xeno_player, SPAN_XENONOTICE("You said: \"[whisper]\" to [target_mob]")) + + for(var/mob/dead/observer/ghost as anything in GLOB.observer_list) + if(!ghost.client || isnewplayer(ghost)) + continue + if(ghost.client.prefs.toggles_chat & CHAT_GHOSTHIVEMIND) + var/rendered_message + var/xeno_track = "(F)" + var/target_track = "(F)" + rendered_message = SPAN_XENOLEADER("PsychicWhisper: [xeno_player.real_name][xeno_track] to [target_mob.real_name][target_track], '[whisper]'") + ghost.show_message(rendered_message, SHOW_MESSAGE_AUDIBLE) + return ..() +/datum/action/xeno_action/onclick/psychic_whisper/can_use_action() + var/mob/living/carbon/xenomorph/xeno = owner + if(xeno && !xeno.is_mob_incapacitated()) + return TRUE + return FALSE + /datum/action/xeno_action/onclick/psychic_radiance name = "Psychic Radiance" action_icon_state = "psychic_radiance" plasma_cost = 100 /datum/action/xeno_action/onclick/psychic_radiance/use_ability(atom/A) - var/mob/living/carbon/xenomorph/X = owner - if(X.client.prefs.muted & MUTE_IC) - to_chat(X, SPAN_DANGER("You cannot whisper (muted).")) + var/mob/living/carbon/xenomorph/xeno_player = owner + if(xeno_player.client.prefs.muted & MUTE_IC) + to_chat(xeno_player, SPAN_DANGER("You cannot whisper (muted).")) return - if(!X.check_state(TRUE)) + if(!xeno_player.check_state(TRUE)) return var/list/target_list = list() - var/msg = strip_html(input("Message:", "Psychic Radiance") as text|null) - if(!msg || !X.check_state(TRUE)) + var/whisper = strip_html(input("Message:", "Psychic Radiance") as text|null) + if(!whisper || !xeno_player.check_state(TRUE)) return - for(var/mob/living/possible_target in view(12, X)) - if(possible_target == X || !possible_target.client) + for(var/mob/living/possible_target in view(12, xeno_player)) + if(possible_target == xeno_player || !possible_target.client) continue target_list += possible_target if(!istype(possible_target, /mob/living/carbon/xenomorph)) - to_chat(possible_target, SPAN_XENOQUEEN("You hear a strange, alien voice in your head. \"[msg]\"")) + to_chat(possible_target, SPAN_XENOQUEEN("You hear a strange, alien voice in your head. \"[whisper]\"")) else - to_chat(possible_target, SPAN_XENOQUEEN("You hear the voice of [X] resonate in your head. \"[msg]\"")) + to_chat(possible_target, SPAN_XENOQUEEN("You hear the voice of [xeno_player] resonate in your head. \"[whisper]\"")) if(!length(target_list)) return var/targetstring = english_list(target_list) - to_chat(X, SPAN_XENONOTICE("You said: \"[msg]\" to [targetstring]")) - log_say("PsychicRadiance: [key_name(X)]->[targetstring] : [msg]") + to_chat(xeno_player, SPAN_XENONOTICE("You said: \"[whisper]\" to [targetstring]")) + log_say("PsychicRadiance: [key_name(xeno_player)]->[targetstring] : [whisper] (AREA: [get_area_name(xeno_player)])") + for (var/mob/dead/observer/ghost as anything in GLOB.observer_list) + if(!ghost.client || isnewplayer(ghost)) + continue + if(ghost.client.prefs.toggles_chat & CHAT_GHOSTHIVEMIND) + var/rendered_message + var/xeno_track = "(F)" + rendered_message = SPAN_XENOLEADER("PsychicRadiance: [xeno_player.real_name][xeno_track] to [targetstring], '[whisper]'") + ghost.show_message(rendered_message, SHOW_MESSAGE_AUDIBLE) return ..() +/datum/action/xeno_action/onclick/psychic_radiance/can_use_action() + var/mob/living/carbon/xenomorph/xeno = owner + if(xeno && !xeno.is_mob_incapacitated()) + return TRUE + return FALSE + /datum/action/xeno_action/activable/queen_give_plasma name = "Give Plasma (400)" action_icon_state = "queen_give_plasma" @@ -323,21 +350,6 @@ return return ..() -/datum/action/xeno_action/onclick/queen_award - name = "Give Royal Jelly (500)" - action_icon_state = "queen_award" - plasma_cost = 500 - -/datum/action/xeno_action/onclick/queen_award/use_ability(atom/target) - var/mob/living/carbon/xenomorph/queen/xeno = owner - if(!xeno.check_state()) - return - if(!xeno.check_plasma(plasma_cost)) - return - if(give_jelly_award(xeno.hive)) - xeno.use_plasma(plasma_cost) - return ..() - /datum/action/xeno_action/onclick/queen_word name = "Word of the Queen (50)" action_icon_state = "queen_word" diff --git a/code/modules/mob/living/carbon/xenomorph/Embryo.dm b/code/modules/mob/living/carbon/xenomorph/Embryo.dm index 0d522c142f36..d0890bd3cf37 100644 --- a/code/modules/mob/living/carbon/xenomorph/Embryo.dm +++ b/code/modules/mob/living/carbon/xenomorph/Embryo.dm @@ -78,6 +78,9 @@ process_growth(delta_time) /obj/item/alien_embryo/proc/process_growth(delta_time) + //Tutorial embryos do not progress. + if(hivenumber == XENO_HIVE_TUTORIAL) + return var/datum/hive_status/hive = GLOB.hive_datum[hivenumber] //Low temperature seriously hampers larva growth (as in, way below livable), so does stasis if(!hive.hardcore) // Cannot progress if the hive has entered hardcore mode. @@ -160,7 +163,7 @@ /obj/item/alien_embryo/proc/become_larva() // We do not allow chest bursts on the Centcomm Z-level, to prevent // stranded players from admin experiments and other issues - if(!affected_mob || is_admin_level(affected_mob.z)) + if(!affected_mob || should_block_game_interaction(affected_mob)) return stage = 6 // Increase the stage value to prevent this proc getting repeated @@ -294,7 +297,7 @@ if(victim.chestburst || loc != victim) return victim.chestburst = TRUE - to_chat(src, SPAN_DANGER("You start bursting out of [victim]'s chest!")) + to_chat(src, SPAN_DANGER("We start bursting out of [victim]'s chest!")) if(!HAS_TRAIT(src, TRAIT_KNOCKEDOUT)) victim.apply_effect(20, DAZE) victim.visible_message(SPAN_DANGER("\The [victim] starts shaking uncontrollably!"), \ @@ -352,8 +355,9 @@ qdel(larva_embryo) if(!victim.first_xeno) - to_chat(larva_embryo, SPAN_XENOHIGHDANGER("The Queen's will overwhelms your instincts...")) - to_chat(larva_embryo, SPAN_XENOHIGHDANGER("\"[hive.hive_orders]\"")) + if(hive.hive_orders) + to_chat(larva_embryo, SPAN_XENOHIGHDANGER("The Queen's will overwhelms our instincts...")) + to_chat(larva_embryo, SPAN_XENOHIGHDANGER("\"[hive.hive_orders]\"")) log_attack("[key_name(victim)] chestbursted in [get_area_name(larva_embryo)] at X[victim.x], Y[victim.y], Z[victim.z]. The larva was [key_name(larva_embryo)].") //this is so that admins are not spammed with los logs for(var/obj/item/alien_embryo/AE in victim) diff --git a/code/modules/mob/living/carbon/xenomorph/Evolution.dm b/code/modules/mob/living/carbon/xenomorph/Evolution.dm index 49d73e71a241..e0f0844bfa13 100644 --- a/code/modules/mob/living/carbon/xenomorph/Evolution.dm +++ b/code/modules/mob/living/carbon/xenomorph/Evolution.dm @@ -24,7 +24,7 @@ castes_available -= caste if(!length(castes_available)) - to_chat(src, SPAN_WARNING("The Hive is not capable of supporting any castes you can evolve to yet.")) + to_chat(src, SPAN_WARNING("The Hive is not capable of supporting any castes we can evolve to yet.")) return var/castepick if((client.prefs && client.prefs.no_radials_preference) || !hive.evolution_menu_images) @@ -40,20 +40,20 @@ var/datum/caste_datum/caste_datum = GLOB.xeno_datum_list[castepick] if(caste_datum && caste_datum.minimum_evolve_time > ROUND_TIME) - to_chat(src, SPAN_WARNING("The Hive cannot support this caste yet! ([round((caste_datum.minimum_evolve_time - ROUND_TIME) / 10)] seconds remaining)")) + to_chat(src, SPAN_WARNING("The Hive cannot support this caste yet! ([floor((caste_datum.minimum_evolve_time - ROUND_TIME) / 10)] seconds remaining)")) return if(!evolve_checks()) return if((!hive.living_xeno_queen) && castepick != XENO_CASTE_QUEEN && !islarva(src) && !hive.allow_no_queen_evo) - to_chat(src, SPAN_WARNING("The Hive is shaken by the death of the last Queen. You can't find the strength to evolve.")) + to_chat(src, SPAN_WARNING("The Hive is shaken by the death of the last Queen. We can't find the strength to evolve.")) return if(castepick == XENO_CASTE_QUEEN) //Special case for dealing with queenae if(!hardcore) if(SSticker.mode && hive.xeno_queen_timer > world.time) - to_chat(src, SPAN_WARNING("You must wait about [DisplayTimeText(hive.xeno_queen_timer - world.time, 1)] for the hive to recover from the previous Queen's death.")) + to_chat(src, SPAN_WARNING("We must wait about [DisplayTimeText(hive.xeno_queen_timer - world.time, 1)] for the hive to recover from the previous Queen's death.")) return if(plasma_stored >= 500) @@ -61,14 +61,14 @@ to_chat(src, SPAN_WARNING("There already is a living Queen.")) return else - to_chat(src, SPAN_WARNING("You require more plasma! Currently at: [plasma_stored] / 500.")) + to_chat(src, SPAN_WARNING("We require more plasma! Currently at: [plasma_stored] / 500.")) return else to_chat(src, SPAN_WARNING("Nuh-uhh.")) return if(evolution_threshold && castepick != XENO_CASTE_QUEEN) //Does the caste have an evolution timer? Then check it if(evolution_stored < evolution_threshold) - to_chat(src, SPAN_WARNING("You must wait before evolving. Currently at: [evolution_stored] / [evolution_threshold].")) + to_chat(src, SPAN_WARNING("We must wait before evolving. Currently at: [evolution_stored] / [evolution_threshold].")) return // Used for restricting benos to evolve to drone/queen when they're the only potential queen @@ -97,16 +97,17 @@ if(!can_evolve(castepick, potential_queens)) return - to_chat(src, SPAN_XENONOTICE("It looks like the hive can support your evolution to [SPAN_BOLD(castepick)]!")) + to_chat(src, SPAN_XENONOTICE("It looks like the hive can support our evolution to [SPAN_BOLD(castepick)]!")) visible_message(SPAN_XENONOTICE("\The [src] begins to twist and contort."), \ - SPAN_XENONOTICE("You begin to twist and contort.")) + SPAN_XENONOTICE("We begin to twist and contort.")) xeno_jitter(25) evolving = TRUE var/level_to_switch_to = get_vision_level() if(!do_after(src, 2.5 SECONDS, INTERRUPT_INCAPACITATED|INTERRUPT_CHANGED_LYING, BUSY_ICON_HOSTILE)) // Can evolve while moving, resist or rest to cancel it. - to_chat(src, SPAN_WARNING("You quiver, but nothing happens. Your evolution has ceased for now...")) + to_chat(src, SPAN_WARNING("We quiver, but nothing happens. Our evolution has ceased for now...")) + evolving = FALSE return @@ -122,14 +123,16 @@ to_chat(src, SPAN_WARNING("There already is a Queen.")) return if(!hive.allow_queen_evolve) - to_chat(src, SPAN_WARNING("You can't find the strength to evolve into a Queen")) + to_chat(src, SPAN_WARNING("We can't find the strength to evolve into a Queen")) return else if(!can_evolve(castepick, potential_queens)) return // subtract the threshold, keep the stored amount evolution_stored -= evolution_threshold - + var/obj/item/organ/xeno/organ = locate() in src + if(!isnull(organ)) + qdel(organ) //From there, the new xeno exists, hopefully var/mob/living/carbon/xenomorph/new_xeno = new M(get_turf(src), src) @@ -142,7 +145,7 @@ return var/area/xeno_area = get_area(new_xeno) - if(!is_admin_level(new_xeno.z) || (xeno_area.flags_atom & AREA_ALLOW_XENO_JOIN)) + if(!should_block_game_interaction(new_xeno) || (xeno_area.flags_atom & AREA_ALLOW_XENO_JOIN)) switch(new_xeno.tier) //They have evolved, add them to the slot count IF they are in regular game space if(2) hive.tier_2_xenos |= new_xeno @@ -176,7 +179,7 @@ built_structures = null new_xeno.visible_message(SPAN_XENODANGER("A [new_xeno.caste.caste_type] emerges from the husk of \the [src]."), \ - SPAN_XENODANGER("You emerge in a greater form from the husk of your old body. For the hive!")) + SPAN_XENODANGER("We emerge in a greater form from the husk of our old body. For the hive!")) if(hive.living_xeno_queen && hive.living_xeno_queen.observed_xeno == src) hive.living_xeno_queen.overwatch(new_xeno) @@ -202,7 +205,7 @@ return FALSE if(!isturf(loc)) - to_chat(src, SPAN_WARNING("You can't evolve here.")) + to_chat(src, SPAN_WARNING("We can't evolve here.")) return FALSE if(hardcore) @@ -210,7 +213,10 @@ return FALSE if(lock_evolve) - to_chat(src, SPAN_WARNING("You are banished and cannot reach the hivemind.")) + if(banished) + to_chat(src, SPAN_WARNING("We are banished and cannot reach the hivemind.")) + else + to_chat(src, SPAN_WARNING("We can't evolve.")) return FALSE if(jobban_isbanned(src, JOB_XENOMORPH))//~who so genius to do this is? @@ -218,19 +224,19 @@ return FALSE if(handcuffed || legcuffed) - to_chat(src, SPAN_WARNING("The restraints are too restricting to allow you to evolve.")) + to_chat(src, SPAN_WARNING("The restraints are too restricting to allow us to evolve.")) return FALSE if(isnull(caste.evolves_to)) - to_chat(src, SPAN_WARNING("You are already the apex of form and function. Go forth and spread the hive!")) + to_chat(src, SPAN_WARNING("We are already the apex of form and function. Go forth and spread the hive!")) return FALSE if(health < maxHealth) - to_chat(src, SPAN_WARNING("You must be at full health to evolve.")) + to_chat(src, SPAN_WARNING("We must be at full health to evolve.")) return FALSE if(agility || fortify || crest_defense) - to_chat(src, SPAN_WARNING("You cannot evolve while in this stance.")) + to_chat(src, SPAN_WARNING("We cannot evolve while in this stance.")) return FALSE if(world.time < (SSticker.mode.round_time_lobby + XENO_ROUNDSTART_PROGRESS_TIME_2)) @@ -260,15 +266,18 @@ return if(health < maxHealth) - to_chat(src, SPAN_XENOWARNING("You are too weak to deevolve, regain your health first.")) + to_chat(src, SPAN_XENOWARNING("We are too weak to deevolve, we must regain our health first.")) return if(length(caste.deevolves_to) < 1) - to_chat(src, SPAN_XENOWARNING("You can't deevolve any further.")) + to_chat(src, SPAN_XENOWARNING("We can't deevolve any further.")) return if(lock_evolve) - to_chat(src, SPAN_WARNING("You are banished and cannot reach the hivemind.")) + if(banished) + to_chat(src, SPAN_WARNING("We are banished and cannot reach the hivemind.")) + else + to_chat(src, SPAN_WARNING("We can't deevolve.")) return FALSE @@ -323,7 +332,9 @@ xeno_type = /mob/living/carbon/xenomorph/defender if(XENO_CASTE_BURROWER) xeno_type = /mob/living/carbon/xenomorph/burrower - + var/obj/item/organ/xeno/organ = locate() in src + if(!isnull(organ)) + qdel(organ) var/mob/living/carbon/xenomorph/new_xeno = new xeno_type(get_turf(src), src) new_xeno.built_structures = built_structures.Copy() @@ -352,7 +363,7 @@ if(new_xeno.client) new_xeno.set_lighting_alpha(level_to_switch_to) new_xeno.visible_message(SPAN_XENODANGER("A [new_xeno.caste.caste_type] emerges from the husk of \the [src]."), \ - SPAN_XENODANGER("You regress into your previous form.")) + SPAN_XENODANGER("We regress into our previous form.")) if(GLOB.round_statistics && !new_xeno.statistic_exempt) GLOB.round_statistics.track_new_participant(faction, -1) //so an evolved xeno doesn't count as two. @@ -384,7 +395,7 @@ used_tier_3_slots -= min(slots_used, slots_free) var/burrowed_factor = min(hive.stored_larva, sqrt(4*hive.stored_larva)) - var/totalXenos = round(burrowed_factor) + var/totalXenos = floor(burrowed_factor) for(var/mob/living/carbon/xenomorph/xeno as anything in hive.totalXenos) if(xeno.counts_for_slots) totalXenos++ diff --git a/code/modules/mob/living/carbon/xenomorph/Facehuggers.dm b/code/modules/mob/living/carbon/xenomorph/Facehuggers.dm index 3ed4bf036e12..9a87f10d74a3 100644 --- a/code/modules/mob/living/carbon/xenomorph/Facehuggers.dm +++ b/code/modules/mob/living/carbon/xenomorph/Facehuggers.dm @@ -38,6 +38,9 @@ /// the nearest human before dying var/jumps_left = 2 + var/time_to_live = 30 SECONDS + var/death_timer + var/icon_xeno = 'icons/mob/xenos/effects.dmi' var/icon_xenonid = 'icons/mob/xenonids/xenonid_crab.dmi' @@ -55,6 +58,9 @@ set_hive_data(src, hivenumber) go_active() + if (hivenumber != XENO_HIVE_TUTORIAL) + death_timer = addtimer(CALLBACK(src, PROC_REF(end_lifecycle)), time_to_live, TIMER_OVERRIDE|TIMER_STOPPABLE|TIMER_UNIQUE) + /obj/item/clothing/mask/facehugger/Destroy() . = ..() @@ -75,6 +81,10 @@ if(QDESTROYING(src)) return addtimer(CALLBACK(src, PROC_REF(check_turf)), 0.2 SECONDS) + + if(!death_timer && hivenumber != XENO_HIVE_TUTORIAL) + death_timer = addtimer(CALLBACK(src, PROC_REF(end_lifecycle)), time_to_live, TIMER_OVERRIDE|TIMER_STOPPABLE|TIMER_UNIQUE) + if(stat == CONSCIOUS && loc) //Make sure we're conscious and not idle or dead. go_idle() if(attached) @@ -173,9 +183,18 @@ if(exposed_temperature > 300) die() -/obj/item/clothing/mask/facehugger/equipped(mob/M) +/obj/item/clothing/mask/facehugger/equipped(mob/holder) SHOULD_CALL_PARENT(FALSE) // ugh equip sounds // So picking up a hugger does not prematurely kill it + if (!isxeno(holder)) + return + + var/mob/living/carbon/xenomorph/xeno = holder + + if ((xeno.caste.hugger_nurturing || hivenumber == XENO_HIVE_TUTORIAL) && death_timer) + deltimer(death_timer) + death_timer = null + go_idle() /obj/item/clothing/mask/facehugger/Crossed(atom/target) @@ -262,7 +281,7 @@ if(isturf(human.loc)) forceMove(human.loc)//Just checkin - if(!human.handle_hugger_attachment(src)) + if(!human.handle_hugger_attachment(src, hugger)) return FALSE attached = TRUE @@ -283,16 +302,18 @@ var/area/hug_area = get_area(src) var/name = hugger ? "[hugger]" : "\a [src]" + if(hivenumber != XENO_HIVE_TUTORIAL) // prevent hugs from any tutorial huggers from showing up in dchat + if(hug_area) + notify_ghosts(header = "Hugged", message = "[human] has been hugged by [name] at [hug_area]!", source = human, action = NOTIFY_ORBIT) + to_chat(src, SPAN_DEADSAY("[human] has been facehugged by [name] at \the [hug_area]")) + else + notify_ghosts(header = "Hugged", message = "[human] has been hugged by [name]!", source = human, action = NOTIFY_ORBIT) + to_chat(src, SPAN_DEADSAY("[human] has been facehugged by [name]")) + if(hug_area) - notify_ghosts(header = "Hugged", message = "[human] has been hugged by [name] at [hug_area]!", source = human, action = NOTIFY_ORBIT) - to_chat(src, SPAN_DEADSAY("[human] has been facehugged by [name] at \the [hug_area]")) - else - notify_ghosts(header = "Hugged", message = "[human] has been hugged by [name]!", source = human, action = NOTIFY_ORBIT) - to_chat(src, SPAN_DEADSAY("[human] has been facehugged by [name]")) - if(hug_area) - xeno_message(SPAN_XENOMINORWARNING("You sense that [name] has facehugged a host at \the [hug_area]!"), 1, hivenumber) + xeno_message(SPAN_XENOMINORWARNING("We sense that [name] has facehugged a host at \the [hug_area]!"), 1, hivenumber) else - xeno_message(SPAN_XENOMINORWARNING("You sense that [name] has facehugged a host!"), 1, hivenumber) + xeno_message(SPAN_XENOMINORWARNING("We sense that [name] has facehugged a host!"), 1, hivenumber) addtimer(CALLBACK(src, PROC_REF(impregnate), human, hugger?.client?.ckey), rand(MIN_IMPREGNATION_TIME, MAX_IMPREGNATION_TIME)) @@ -405,6 +426,10 @@ deltimer(jump_timer) jump_timer = null + if(death_timer) + deltimer(death_timer) + death_timer = null + if(!impregnated) icon_state = "[initial(icon_state)]_dead" stat = DEAD @@ -413,12 +438,15 @@ playsound(src.loc, 'sound/voice/alien_facehugger_dies.ogg', 25, 1) if(ismob(loc)) //Make it fall off the person so we can update their icons. Won't update if they're in containers thou - var/mob/M = loc - M.drop_inv_item_on_ground(src) + var/mob/holder_mob = loc + holder_mob.drop_inv_item_on_ground(src) layer = TURF_LAYER //so dead hugger appears below live hugger if stacked on same tile. (and below nested hosts) - addtimer(CALLBACK(src, PROC_REF(decay)), 3 MINUTES) + if(hivenumber == XENO_HIVE_TUTORIAL) + addtimer(CALLBACK(src, PROC_REF(decay)), 5 SECONDS) + else + addtimer(CALLBACK(src, PROC_REF(decay)), 3 MINUTES) /obj/item/clothing/mask/facehugger/proc/decay() visible_message("[icon2html(src, viewers(src))] \The [src] decays into a mass of acid and chitin.") @@ -463,15 +491,14 @@ /** * Human hugger handling */ - -/mob/living/carbon/human/proc/handle_hugger_attachment(obj/item/clothing/mask/facehugger/hugger) +/mob/living/carbon/human/proc/handle_hugger_attachment(obj/item/clothing/mask/facehugger/hugger, mob/living/carbon/xenomorph/facehugger/mob_hugger) var/can_infect = TRUE if(!has_limb("head")) hugger.visible_message(SPAN_WARNING("[hugger] looks for a face to hug on [src], but finds none!")) hugger.go_idle() return FALSE - if(species && !species.handle_hugger_attachment(src, hugger)) + if(species && !species.handle_hugger_attachment(src, hugger, mob_hugger)) return FALSE if(head && !(head.flags_item & NODROP)) @@ -518,10 +545,10 @@ return can_infect -/datum/species/proc/handle_hugger_attachment(mob/living/carbon/human/target, obj/item/clothing/mask/facehugger/hugger) +/datum/species/proc/handle_hugger_attachment(mob/living/carbon/human/target, obj/item/clothing/mask/facehugger/hugger, mob/living/carbon/xenomorph/facehugger/mob_hugger) return TRUE -/datum/species/yautja/handle_hugger_attachment(mob/living/carbon/human/target, obj/item/clothing/mask/facehugger/hugger) +/datum/species/yautja/handle_hugger_attachment(mob/living/carbon/human/target, obj/item/clothing/mask/facehugger/hugger, mob/living/carbon/xenomorph/facehugger/mob_hugger) var/catch_chance = 50 if(target.dir == GLOB.reverse_dir[hugger.dir]) catch_chance += 20 @@ -535,7 +562,10 @@ if(!target.stat && target.dir != hugger.dir && prob(catch_chance)) //Not facing away target.visible_message(SPAN_NOTICE("[target] snatches [hugger] out of the air and squashes it!")) - hugger.die() + if(mob_hugger) + mob_hugger.death(create_cause_data("squished")) + else + hugger.die() return FALSE return TRUE diff --git a/code/modules/mob/living/carbon/xenomorph/Powers.dm b/code/modules/mob/living/carbon/xenomorph/Powers.dm index d400659079f0..87a6db3c0816 100644 --- a/code/modules/mob/living/carbon/xenomorph/Powers.dm +++ b/code/modules/mob/living/carbon/xenomorph/Powers.dm @@ -19,13 +19,13 @@ if(RC.max_per_xeno != RESIN_CONSTRUCTION_NO_MAX) var/current_amount = length(built_structures[RC.build_path]) if(current_amount >= RC.max_per_xeno) - to_chat(src, SPAN_XENOWARNING("You've already built the maximum possible structures you can!")) + to_chat(src, SPAN_XENOWARNING("We've already built the maximum possible structures we can!")) return SECRETE_RESIN_FAIL var/turf/current_turf = get_turf(A) if(extra_build_dist != IGNORE_BUILD_DISTANCE && get_dist(src, A) > src.caste.max_build_dist + extra_build_dist) // Hivelords and eggsac carriers have max_build_dist of 1, drones and queens 0 - to_chat(src, SPAN_XENOWARNING("You can't build from that far!")) + to_chat(src, SPAN_XENOWARNING("We can't build from that far!")) return SECRETE_RESIN_FAIL else if(thick) //hivelords can thicken existing resin structures. var/thickened = FALSE @@ -37,7 +37,7 @@ return SECRETE_RESIN_FAIL for(var/datum/effects/xeno_structure_reinforcement/sf in WR.effects_list) - to_chat(src, SPAN_XENOWARNING("The extra resin is preventing you from reinforcing [WR]. Wait until it elapse.")) + to_chat(src, SPAN_XENOWARNING("The extra resin is preventing us from reinforcing [WR]. Wait until it elapse.")) return SECRETE_RESIN_FAIL if (WR.hivenumber != hivenumber) @@ -62,7 +62,7 @@ return SECRETE_RESIN_FAIL for(var/datum/effects/xeno_structure_reinforcement/sf in DR.effects_list) - to_chat(src, SPAN_XENOWARNING("The extra resin is preventing you from reinforcing [DR]. Wait until it elapse.")) + to_chat(src, SPAN_XENOWARNING("The extra resin is preventing us from reinforcing [DR]. Wait until it elapse.")) return SECRETE_RESIN_FAIL if(DR.hardness == 1.5) //non thickened @@ -78,7 +78,7 @@ if(thickened) if(message) visible_message(SPAN_XENONOTICE("[src] regurgitates a thick substance and thickens [A]."), \ - SPAN_XENONOTICE("You regurgitate some resin and thicken [A], using [total_resin_cost] plasma."), null, 5) + SPAN_XENONOTICE("We regurgitate some resin and thicken [A], using [total_resin_cost] plasma."), null, 5) if(use_plasma) use_plasma(total_resin_cost) playsound(loc, "alien_resin_build", 25) @@ -132,7 +132,7 @@ use_plasma(total_resin_cost) if(message) visible_message(SPAN_XENONOTICE("[src] regurgitates a thick substance and shapes it into \a [RC.construction_name]!"), \ - SPAN_XENONOTICE("You regurgitate some resin and shape it into \a [RC.construction_name][use_plasma ? " at the cost of a total [total_resin_cost] plasma" : ""]."), null, 5) + SPAN_XENONOTICE("We regurgitate some resin and shape it into \a [RC.construction_name][use_plasma ? " at the cost of a total [total_resin_cost] plasma" : ""]."), null, 5) playsound(loc, "alien_resin_build", 25) var/atom/new_resin = RC.build(current_turf, hivenumber, src) @@ -164,8 +164,10 @@ new_structure.set_template(structure_template) hive.add_construction(new_structure) + var/max_constructions = hive.hive_structures_limit[structure_template.name] + var/remaining_constructions = max_constructions - hive.get_structure_count(structure_template.name) visible_message(SPAN_XENONOTICE("A thick substance emerges from the ground and shapes into \a [new_structure]."), \ - SPAN_XENONOTICE("You designate a new [structure_template] construction."), null, 5) + SPAN_XENONOTICE("We designate a new [structure_template] construction. ([remaining_constructions]/[max_constructions] remaining)"), null, 5) playsound(new_structure, "alien_resin_build", 25) if(hive.living_xeno_queen) @@ -176,11 +178,11 @@ return FALSE var/found_weeds = FALSE if(!selected_mark) - to_chat(src, SPAN_NOTICE("You must have a meaning for the mark before you can make it.")) + to_chat(src, SPAN_NOTICE("We must have a meaning for the mark before you can make it.")) hive.mark_ui.open_mark_menu(src) return FALSE if(target_turf.z != src.z) - to_chat(src, SPAN_NOTICE("You have no psychic presence on that world.")) + to_chat(src, SPAN_NOTICE("We have no psychic presence on that world.")) return FALSE if(!(istype(target_turf)) || target_turf.density) return FALSE @@ -195,7 +197,7 @@ playsound(target_turf, "alien_resin_build", 25) if(!found_weeds) - to_chat(src, SPAN_XENOMINORWARNING("You made the resin mark on ground with no weeds, it will break soon without any.")) + to_chat(src, SPAN_XENOMINORWARNING("We made the resin mark on ground with no weeds, it will break soon without any.")) if(isqueen(src)) NM.color = "#7a21c4" diff --git a/code/modules/mob/living/carbon/xenomorph/XenoAttacks.dm b/code/modules/mob/living/carbon/xenomorph/XenoAttacks.dm index 317c7999e586..cae3be048a8d 100644 --- a/code/modules/mob/living/carbon/xenomorph/XenoAttacks.dm +++ b/code/modules/mob/living/carbon/xenomorph/XenoAttacks.dm @@ -78,7 +78,11 @@ damage += attack.damage > 5 ? attack.damage : 0 playsound(loc, attack.attack_sound, 25, 1) - visible_message(SPAN_DANGER("[M] [pick(attack.attack_verb)]ed [src]!"), null, null, 5, CHAT_TYPE_MELEE_HIT) + var/picked_verb = pick(attack.attack_verb) + visible_message(SPAN_DANGER("[M] [picked_verb]ed [src]!"), null, null, 5, CHAT_TYPE_MELEE_HIT) + log_attack("[key_name(M)] [picked_verb]ed [key_name(src)] at [get_area_name(M)]") + attack_log += text("\[[time_stamp()]\] was [picked_verb]ed by [key_name(M)]") + M.attack_log += text("\[[time_stamp()]\] [picked_verb]ed [key_name(src)]") apply_damage(damage, BRUTE) updatehealth() else @@ -98,7 +102,7 @@ if(islarva(M)) //Larvas can't eat people M.visible_message(SPAN_DANGER("[M] nudges its head against \the [src]."), \ - SPAN_DANGER("You nudge your head against \the [src]."), null, null, CHAT_TYPE_XENO_FLUFF) + SPAN_DANGER("We nudge our head against \the [src]."), null, null, CHAT_TYPE_XENO_FLUFF) return switch(M.a_intent) @@ -113,7 +117,7 @@ return XENO_NONCOMBAT_ACTION else M.visible_message(SPAN_NOTICE("\The [M] caresses \the [src] with its claws."), \ - SPAN_NOTICE("You caress \the [src] with your claws."), null, 5, CHAT_TYPE_XENO_FLUFF) + SPAN_NOTICE("We caress \the [src] with our claws."), null, 5, CHAT_TYPE_XENO_FLUFF) if(INTENT_GRAB) if(M == src || anchored) @@ -188,12 +192,12 @@ if(can_mega_shove && !can_resist_shove || (mob_size < MOB_SIZE_XENO_SMALL && M.mob_size >= MOB_SIZE_XENO_SMALL)) playsound(loc, 'sound/weapons/alien_knockdown.ogg', 25, 1) M.visible_message(SPAN_WARNING("\The [M] shoves \the [src] out of her way!"), \ - SPAN_WARNING("You shove \the [src] out of your way!"), null, 5, CHAT_TYPE_XENO_COMBAT) + SPAN_WARNING("We shove \the [src] out of our way!"), null, 5, CHAT_TYPE_XENO_COMBAT) src.apply_effect(1, WEAKEN) else playsound(loc, 'sound/weapons/thudswoosh.ogg', 25, 1) M.visible_message(SPAN_WARNING("\The [M] shoves \the [src]!"), \ - SPAN_WARNING("You shove \the [src]!"), null, 5, CHAT_TYPE_XENO_COMBAT) + SPAN_WARNING("We shove \the [src]!"), null, 5, CHAT_TYPE_XENO_COMBAT) return XENO_ATTACK_ACTION /mob/living/carbon/xenomorph/proc/attempt_headbutt(mob/living/carbon/xenomorph/target) @@ -204,7 +208,7 @@ return target.flags_emote &= ~EMOTING_HEADBUTT visible_message(SPAN_NOTICE("[src] slams their head into [target]!"), \ - SPAN_NOTICE("You slam your head into [target]!"), null, 4) + SPAN_NOTICE("We slam your head into [target]!"), null, 4) playsound(src, pick('sound/weapons/punch1.ogg','sound/weapons/punch2.ogg','sound/weapons/punch3.ogg','sound/weapons/punch4.ogg'), 50, 1) animation_attack_on(target) target.animation_attack_on(src) @@ -218,7 +222,7 @@ return visible_message(SPAN_NOTICE("[src] raises their head for a headbutt from [target]."), \ - SPAN_NOTICE("You raise your head for a headbutt from [target]."), null, 4) + SPAN_NOTICE("We raise our head for a headbutt from [target]."), null, 4) flags_emote |= EMOTING_HEADBUTT if(do_after(src, 50, INTERRUPT_ALL|INTERRUPT_EMOTE, EMOTE_ICON_HEADBUTT) && flags_emote & EMOTING_HEADBUTT) to_chat(src, SPAN_NOTICE("You were left hanging!")) @@ -232,7 +236,7 @@ return target.flags_emote &= ~EMOTING_TAIL_SWIPE visible_message(SPAN_NOTICE("[src] clashes their tail with [target]!"), \ - SPAN_NOTICE("You clash your tail with [target]!"), null, 4) + SPAN_NOTICE("We clash our tail with [target]!"), null, 4) playsound(src, 'sound/weapons/alien_claw_block.ogg', 50, 1) spin_circle() target.spin_circle() @@ -246,7 +250,7 @@ return visible_message(SPAN_NOTICE("[src] raises their tail out for a swipe from [target]."), \ - SPAN_NOTICE("You raise your tail out for a tail swipe from [target]."), null, 4) + SPAN_NOTICE("We raise our tail out for a tail swipe from [target]."), null, 4) flags_emote |= EMOTING_TAIL_SWIPE if(do_after(src, 50, INTERRUPT_ALL|INTERRUPT_EMOTE, EMOTE_ICON_TAILSWIPE) && flags_emote & EMOTING_TAIL_SWIPE) to_chat(src, SPAN_NOTICE("You were left hanging!")) diff --git a/code/modules/mob/living/carbon/xenomorph/XenoMutatorSets.dm b/code/modules/mob/living/carbon/xenomorph/XenoMutatorSets.dm deleted file mode 100644 index 1af6eebcf9e7..000000000000 --- a/code/modules/mob/living/carbon/xenomorph/XenoMutatorSets.dm +++ /dev/null @@ -1,264 +0,0 @@ -#define MUTATOR_GAIN_PER_QUEEN_LEVEL 6 -#define MUTATOR_GAIN_PER_XENO_LEVEL 3 - -//A class that holds mutators for a given Xeno hive -//Each time a Queen matures, the hive gets more points -//Each time a Queen dies, the mutators are reset - -//The class contains a lot of variables that are applied to various xenos' stats and actions -/datum/mutator_set - var/remaining_points = 1 //How many points the xeno / hive still has to spend on mutators - var/list/purchased_mutators = list() //List of purchased mutators - var/user_level = 0 //Level of the Queen for Hive or the individual xeno. Starting at -1 so at tier 0 you'd get some mutators to play with - - var/tackle_strength_bonus = 0 - -//Functions to be overloaded to call for when something gets updated on the xenos -/datum/mutator_set/proc/recalculate_everything(description) -/datum/mutator_set/proc/recalculate_stats(description) -/datum/mutator_set/proc/recalculate_actions(description) -/datum/mutator_set/proc/recalculate_pheromones(description) -/datum/mutator_set/proc/give_feedback(description) - - -/datum/mutator_set/proc/purchase_mutator(name) - return FALSE - -/datum/mutator_set/proc/list_and_purchase_mutators() - var/list/mutators_for_purchase = available_mutators() - var/mob/living/carbon/xenomorph/Xeno = usr - if(mutators_for_purchase.len == 0) - to_chat(usr, "There are no available strains.") - var/pick = tgui_input_list(usr, "Which strain would you like to purchase?", "Purchase strain", mutators_for_purchase, theme="hive_status") - if(!pick) - return FALSE - if(alert(usr, "[GLOB.xeno_mutator_list[pick].description]\n\nConfirm mutation?", "Strain purchase", "Yes", "No") != "Yes") return - if(!Xeno.strain_checks()) - return - if(GLOB.xeno_mutator_list[pick].apply_mutator(src)) - to_chat(usr, "Mutation complete!") - return TRUE - else - to_chat(usr, "Mutation failed!") - return FALSE - -/datum/mutator_set/proc/can_purchase_mutator(mutator_name) - var/datum/xeno_mutator/XM = GLOB.xeno_mutator_list[mutator_name] - if(user_level < XM.required_level) - return FALSE //xeno doesn't meet the level requirements - if(remaining_points < XM.cost) - return FALSE //mutator is too expensive - if(XM.unique) - if(XM.name in purchased_mutators) - return FALSE //unique mutator already purchased - if(XM.keystone) - for(var/name in purchased_mutators) - if(GLOB.xeno_mutator_list[name].keystone) - return FALSE //We already have a keystone mutator - if(XM.flaw) - for(var/name in purchased_mutators) - if(GLOB.xeno_mutator_list[name].flaw) - return FALSE //We already have a flaw mutator - return TRUE - -//Lists mutators available for purchase -/datum/mutator_set/proc/available_mutators() - var/list/can_purchase = list() - - for(var/str in GLOB.xeno_mutator_list) - if (can_purchase_mutator(str)) - can_purchase += str //can purchase! - - return can_purchase - -//Mutators applying to the Hive as a whole -/datum/mutator_set/hive_mutators - var/datum/hive_status/hive //Which hive do these mutators apply to. Need this to affect variables there - var/leader_count_boost = 0 - var/maturation_multiplier = 1 - var/tier_slot_multiplier = 1 - var/larva_gestation_multiplier = 1 - var/bonus_larva_spawn_chance = 0 - -/datum/mutator_set/hive_mutators/list_and_purchase_mutators() - if(!hive || !hive.living_xeno_queen) - return //somehow Queen is not set but this function was called... - if(hive.living_xeno_queen.is_dead()) - return //Dead xenos can't mutate! - if(hive.living_xeno_queen.hardcore) - to_chat(usr, SPAN_WARNING("No time for that, must KILL!")) - return - if(!hive.living_xeno_queen.ovipositor) - to_chat(usr, "You must be in Ovipositor to purchase Hive Mutators.") - return - . = ..() - if (. == TRUE && purchased_mutators.len) - var/m = purchased_mutators[purchased_mutators.len] - log_mutator("[hive.living_xeno_queen.name] purchased Hive Mutator '[m]'") - -/datum/mutator_set/hive_mutators/can_purchase_mutator(mutator_name) - if (..() == FALSE) - return FALSE //Can't buy it regardless - var/datum/xeno_mutator/XM = GLOB.xeno_mutator_list[mutator_name] - if(XM.individual_only) - return FALSE //We can't buy individual mutators on a Hive level - return TRUE - -//Called when the Queen dies -// This isn't currently used, but if anyone wants to, expect it to be broken because -// I haven't made any effort to integrate it into the new system (Fourkhan, 5/11/19) -/datum/mutator_set/hive_mutators/proc/reset_mutators() - if(purchased_mutators.len == 0) - //No mutators purchased, nothing to reset! - return - - var/depowered = FALSE - for(var/name in purchased_mutators) - if(!GLOB.xeno_mutator_list[name].death_persistent) - purchased_mutators -= name - depowered = TRUE - - if(!depowered) - return //We haven't lost anything - - tackle_strength_bonus = 0 - - leader_count_boost = 0 - maturation_multiplier = 1 - tier_slot_multiplier = 1 - larva_gestation_multiplier = 1 - bonus_larva_spawn_chance = 0 - - for(var/mob/living/carbon/xenomorph/X in GLOB.living_xeno_list) - if(X.hivenumber == hive.hivenumber) - X.recalculate_everything() - to_chat(X, SPAN_XENOANNOUNCE("Queen's influence wanes. You feel weak!")) - playsound(X.loc, "alien_help", 25) - X.xeno_jitter(15) - -/datum/mutator_set/hive_mutators/recalculate_everything(description) - for(var/mob/living/carbon/xenomorph/X in GLOB.living_xeno_list) - if(X.hivenumber == hive.hivenumber) - X.recalculate_everything() - to_chat(X, SPAN_XENOANNOUNCE("Queen has granted the Hive a boon! [description]")) - X.xeno_jitter(15) -/datum/mutator_set/hive_mutators/recalculate_stats(description) - for(var/mob/living/carbon/xenomorph/X in GLOB.living_xeno_list) - if(X.hivenumber == hive.hivenumber) - X.recalculate_stats() - to_chat(X, SPAN_XENOANNOUNCE("Queen has granted the Hive a boon! [description]")) - X.xeno_jitter(15) -/datum/mutator_set/hive_mutators/recalculate_actions(description) - for(var/mob/living/carbon/xenomorph/X in GLOB.living_xeno_list) - if(X.hivenumber == hive.hivenumber) - X.recalculate_actions() - to_chat(X, SPAN_XENOANNOUNCE("Queen has granted the Hive a boon! [description]")) - X.xeno_jitter(15) -/datum/mutator_set/hive_mutators/recalculate_pheromones(description) - for(var/mob/living/carbon/xenomorph/X in GLOB.living_xeno_list) - if(X.hivenumber == hive.hivenumber) - X.recalculate_pheromones() - to_chat(X, SPAN_XENOANNOUNCE("Queen has granted the Hive a boon! [description]")) - X.xeno_jitter(15) -/datum/mutator_set/hive_mutators/proc/recalculate_maturation(description) - for(var/mob/living/carbon/xenomorph/X in GLOB.living_xeno_list) - if(X.hivenumber == hive.hivenumber) - X.recalculate_maturation() - to_chat(X, SPAN_XENOANNOUNCE("Queen has granted the Hive a boon! [description]")) - X.xeno_jitter(15) -/datum/mutator_set/hive_mutators/proc/recalculate_hive(description) - hive.recalculate_hive() - give_feedback(description) -/datum/mutator_set/hive_mutators/give_feedback(description) - for(var/mob/living/carbon/xenomorph/X in GLOB.living_xeno_list) - if(X.hivenumber == hive.hivenumber) - to_chat(X, SPAN_XENOANNOUNCE("Queen has granted the Hive a boon! [description]")) - X.xeno_jitter(15) - -//Mutators applying to an individual xeno -/datum/mutator_set/individual_mutators - var/mob/living/carbon/xenomorph/xeno - var/pull_multiplier = 1 - var/egg_laying_multiplier = 1 - var/need_weeds = TRUE - //Strains Below - remaining_points = 6 - - -/datum/mutator_set/individual_mutators/Destroy() - if(xeno) - xeno.mutators = null - xeno = null - . = ..() - -/datum/mutator_set/individual_mutators/list_and_purchase_mutators() - . = ..() - if (. == TRUE && purchased_mutators.len) - var/m = purchased_mutators[purchased_mutators.len] - log_mutator("[xeno.name] purchased Mutator '[m]'") - -/datum/mutator_set/individual_mutators/can_purchase_mutator(mutator_name) - if (..() == FALSE) - return FALSE //Can't buy it regardless - var/datum/xeno_mutator/XM = GLOB.xeno_mutator_list[mutator_name] - if(XM.hive_only) - return FALSE //We can't buy Hive mutators on an individual level - if(XM.caste_whitelist && (XM.caste_whitelist.len > 0) && !(xeno.caste_type in XM.caste_whitelist)) - return FALSE //We are not on the whitelist - return TRUE - -/datum/mutator_set/individual_mutators/recalculate_actions(description, flavor_description = null) - xeno.recalculate_actions() - to_chat(xeno, SPAN_XENOANNOUNCE("[description]")) - if (flavor_description != null) - to_chat(xeno, SPAN_XENOLEADER("[flavor_description]")) - xeno.xeno_jitter(15) - - -/mob/living/carbon/xenomorph/queen/verb/purchase_hive_mutators() - set name = "Purchase Hive Mutators" - set desc = "Purchase Mutators affecting the entire Hive." - set category = "Alien" - if(hardcore) - to_chat(usr, SPAN_WARNING("No time for that, must KILL!")) - return - if(!src.hive || !src.hive.mutators) - return //For some reason we don't have mutators - src.hive.mutators.list_and_purchase_mutators() - -/mob/living/carbon/xenomorph/verb/purchase_strains() - set name = "Purchase Strains" - set desc = "Purchase Strains for yourself." - set category = "Alien" - - if(!strain_checks()) - return - if(!src.mutators) - return //For some reason we don't have mutators - src.mutators.list_and_purchase_mutators() - -/mob/living/carbon/xenomorph/proc/strain_checks() - if(!check_state(TRUE)) - return FALSE - - if(is_ventcrawling) - to_chat(src, SPAN_WARNING("This place is too constraining to take a strain.")) - return FALSE - - if(!isturf(loc)) - to_chat(src, SPAN_WARNING("You can't take a strain here.")) - return FALSE - - if(handcuffed || legcuffed) - to_chat(src, SPAN_WARNING("The restraints are too restricting to allow you to take a strain.")) - return FALSE - - if(health < maxHealth) - to_chat(src, SPAN_WARNING("You must be at full health to take a strain.")) - return FALSE - - if(agility || fortify || crest_defense || stealth) - to_chat(src, SPAN_WARNING("You cannot take a strain while in this stance.")) - return FALSE - - return TRUE diff --git a/code/modules/mob/living/carbon/xenomorph/XenoOverwatch.dm b/code/modules/mob/living/carbon/xenomorph/XenoOverwatch.dm index 68c422619d32..1fb48f699efa 100644 --- a/code/modules/mob/living/carbon/xenomorph/XenoOverwatch.dm +++ b/code/modules/mob/living/carbon/xenomorph/XenoOverwatch.dm @@ -27,7 +27,7 @@ isQueen = TRUE if(!X.hive.living_xeno_queen && !X.hive.allow_no_queen_actions) - to_chat(X, SPAN_WARNING("There is no Queen. You are alone.")) + to_chat(X, SPAN_WARNING("There is no Queen. We are alone.")) return // We are already overwatching something @@ -43,12 +43,12 @@ var/list/possible_xenos = list() for(var/mob/living/carbon/xenomorph/T in GLOB.living_xeno_list) - if (T != X && !is_admin_level(T.z) && X.hivenumber == T.hivenumber) // Can't overwatch yourself, Xenos in Thunderdome, or Xenos in other hives + if (T != X && !should_block_game_interaction(T) && X.hivenumber == T.hivenumber) // Can't overwatch yourself, Xenos in Thunderdome, or Xenos in other hives possible_xenos += T var/mob/living/carbon/xenomorph/selected_xeno = tgui_input_list(X, "Target", "Watch which xenomorph?", possible_xenos, theme="hive_status") - if (!selected_xeno || QDELETED(selected_xeno) || selected_xeno == X.observed_xeno || selected_xeno.stat == DEAD || is_admin_level(selected_xeno.z) || !X.check_state(TRUE)) + if (!selected_xeno || QDELETED(selected_xeno) || selected_xeno == X.observed_xeno || selected_xeno.stat == DEAD || should_block_game_interaction(selected_xeno) || !X.check_state(TRUE)) X.overwatch(X.observed_xeno, TRUE) // Cancel OW else if (!isQueen) // Regular Xeno OW vs Queen X.overwatch(selected_xeno) @@ -73,7 +73,7 @@ UnregisterSignal(src, COMSIG_MOB_MOVE_OR_LOOK) if(oldXeno) - to_chat(src, SPAN_XENOWARNING("You stop watching [oldXeno].")) + to_chat(src, SPAN_XENOWARNING("We stop watching [oldXeno].")) UnregisterSignal(oldXeno, COMSIG_PARENT_QDELETING) if(!QDELETED(oldXeno)) oldXeno.hud_set_queen_overwatch() @@ -82,22 +82,30 @@ return if(!hive.living_xeno_queen && !hive.allow_no_queen_actions) - to_chat(src, SPAN_WARNING("There is no Queen. You are alone.")) + to_chat(src, SPAN_WARNING("There is no Queen. We are alone.")) return if(targetXeno == src) - to_chat(src, SPAN_XENOWARNING("You can't watch yourself!")) + to_chat(src, SPAN_XENOWARNING("We can't watch ourselves!")) return - if(targetXeno.interference) - to_chat(src, SPAN_XENOWARNING("Your target's psychic connection is cut off!")) + if(HAS_TRAIT(src, TRAIT_HIVEMIND_INTERFERENCE)) + to_chat(src, SPAN_XENOWARNING("Our psychic connection is cut off!")) + return + + if(HAS_TRAIT(targetXeno, TRAIT_HIVEMIND_INTERFERENCE)) + to_chat(src, SPAN_XENOWARNING("Our sister's psychic connection is cut off!")) + return + + if(HAS_TRAIT(src, TRAIT_ABILITY_BURROWED)) + to_chat(src, SPAN_XENOWARNING("We cannot do this in our current state!")) return if(observed_xeno && targetXeno && observed_xeno == targetXeno) if(istype(targetXeno, /obj/effect/alien/resin/marker)) - to_chat(src, SPAN_XENOWARNING("You are already watching that mark!")) + to_chat(src, SPAN_XENOWARNING("We are already watching that mark!")) return - to_chat(src, SPAN_XENOWARNING("You are already watching that sister!")) + to_chat(src, SPAN_XENOWARNING("We are already watching that sister!")) return if(caste_type != XENO_CASTE_QUEEN && is_zoomed) @@ -128,8 +136,19 @@ // Called from xeno Life() // Makes sure that Xeno overwatch is reset when the overwatched Xeno dies. /mob/living/carbon/xenomorph/proc/handle_overwatch() - if (observed_xeno && (observed_xeno.stat == DEAD || QDELETED(observed_xeno))) + if(observed_xeno) + if(observed_xeno.stat == DEAD || QDELETED(observed_xeno)) + overwatch(null, TRUE) + return + + if(HAS_TRAIT(observed_xeno, TRAIT_HIVEMIND_INTERFERENCE)) + to_chat(src, SPAN_XENOWARNING("Our sister's psychic connection is cut off!")) + overwatch(null, TRUE) + return + + if(HAS_TRAIT(src, TRAIT_HIVEMIND_INTERFERENCE)) overwatch(null, TRUE) + return /mob/living/carbon/xenomorph/proc/overwatch_handle_mob_move_or_look(mob/living/carbon/xenomorph/mover, actually_moving, direction, specific_direction) SIGNAL_HANDLER @@ -177,7 +196,7 @@ var/mob/living/carbon/xenomorph/xenoTarget = locate(href_list[XENO_OVERWATCH_TARGET_HREF]) in GLOB.living_xeno_list var/mob/living/carbon/xenomorph/xenoSrc = locate(href_list[XENO_OVERWATCH_SRC_HREF]) in GLOB.living_xeno_list - if(!istype(xenoTarget) || xenoTarget.stat == DEAD || is_admin_level(xenoTarget.z)) + if(!istype(xenoTarget) || xenoTarget.stat == DEAD || should_block_game_interaction(xenoTarget)) return if(!istype(xenoSrc) || xenoSrc.stat == DEAD) @@ -199,7 +218,7 @@ to_chat(src, SPAN_XENONOTICE("That resin mark no longer exists.")) return else - to_chat(src, SPAN_XENONOTICE("You psychically observe the [target.mark_meaning.name] resin mark in [get_area_name(target)].")) + to_chat(src, SPAN_XENONOTICE("We psychically observe the [target.mark_meaning.name] resin mark in [get_area_name(target)].")) overwatch(target) if(href_list["track"]) var/input2 = href_list["target"] diff --git a/code/modules/mob/living/carbon/xenomorph/XenoProcs.dm b/code/modules/mob/living/carbon/xenomorph/XenoProcs.dm index b5848786c698..f0fd8a4d86a7 100644 --- a/code/modules/mob/living/carbon/xenomorph/XenoProcs.dm +++ b/code/modules/mob/living/carbon/xenomorph/XenoProcs.dm @@ -15,7 +15,7 @@ if(3) fontsize_style = "large" - if(SSticker.mode && SSticker.mode.xenomorphs.len) //Send to only xenos in our gamemode list. This is faster than scanning all mobs + if(SSticker.mode && length(SSticker.mode.xenomorphs)) //Send to only xenos in our gamemode list. This is faster than scanning all mobs for(var/datum/mind/L in SSticker.mode.xenomorphs) var/mob/living/carbon/M = L.current if(M && istype(M) && !M.stat && M.client && (!hivenumber || M.hivenumber == hivenumber)) //Only living and connected xenos @@ -26,7 +26,7 @@ if(text == "" || !hivenumber) return //Logic - if(SSticker.mode && SSticker.mode.xenomorphs.len) //Send to only xenos in our gamemode list. This is faster than scanning all mobs + if(SSticker.mode && length(SSticker.mode.xenomorphs)) //Send to only xenos in our gamemode list. This is faster than scanning all mobs for(var/datum/mind/living in SSticker.mode.xenomorphs) var/mob/living/carbon/xenomorph/xeno = living.current if(istype(xeno) && !xeno.stat && xeno.client && xeno.hivenumber == hivenumber) //Only living and connected xenos @@ -45,10 +45,10 @@ . += "" - . += "Health: [round(health)]/[round(maxHealth)]" - . += "Armor: [round(0.01*armor_integrity*armor_deflection)+(armor_deflection_buff-armor_deflection_debuff)]/[round(armor_deflection)]" - . += "Plasma: [round(plasma_stored)]/[round(plasma_max)]" - . += "Slash Damage: [round((melee_damage_lower+melee_damage_upper)/2)]" + . += "Health: [floor(health)]/[floor(maxHealth)]" + . += "Armor: [floor(0.01*armor_integrity*armor_deflection)+(armor_deflection_buff-armor_deflection_debuff)]/[floor(armor_deflection)]" + . += "Plasma: [floor(plasma_stored)]/[floor(plasma_max)]" + . += "Slash Damage: [floor((melee_damage_lower+melee_damage_upper)/2)]" var/shieldtotal = 0 for (var/datum/xeno_shield/XS in xeno_shields) @@ -67,7 +67,7 @@ . += "" - var/stored_evolution = round(evolution_stored) + var/stored_evolution = floor(evolution_stored) var/evolve_progress if(caste && caste.evolution_allowed) @@ -151,14 +151,14 @@ /mob/living/carbon/xenomorph/proc/check_state(permissive = FALSE) if(!permissive) if(is_mob_incapacitated() || body_position == LYING_DOWN || buckled || evolving || !isturf(loc)) - to_chat(src, SPAN_WARNING("You cannot do this in your current state.")) + to_chat(src, SPAN_WARNING("We cannot do this in our current state.")) return FALSE else if(caste_type != XENO_CASTE_QUEEN && observed_xeno) - to_chat(src, SPAN_WARNING("You cannot do this in your current state.")) + to_chat(src, SPAN_WARNING("We cannot do this in our current state.")) return FALSE else if(is_mob_incapacitated() || buckled || evolving) - to_chat(src, SPAN_WARNING("You cannot do this in your current state.")) + to_chat(src, SPAN_WARNING("We cannot do this in our current state.")) return FALSE return TRUE @@ -166,12 +166,12 @@ //Checks your plasma levels and gives a handy message. /mob/living/carbon/xenomorph/proc/check_plasma(value) if(stat) - to_chat(src, SPAN_WARNING("You cannot do this in your current state.")) + to_chat(src, SPAN_WARNING("We cannot do this in our current state.")) return FALSE if(value) if(plasma_stored < value) - to_chat(src, SPAN_WARNING("You do not have enough plasma to do this. You require [value] plasma but have only [plasma_stored] stored.")) + to_chat(src, SPAN_WARNING("We do not have enough plasma to do this. We require [value] plasma but have only [plasma_stored] stored.")) return FALSE return TRUE @@ -262,9 +262,6 @@ move_delay = . -/mob/living/carbon/xenomorph/show_inv(mob/user) - return - /mob/living/carbon/xenomorph/proc/pounced_mob(mob/living/L) // This should only be called back by a mob that has pounce, so no need to check var/datum/action/xeno_action/activable/pounce/pounceAction = get_xeno_action_by_type(src, /datum/action/xeno_action/activable/pounce) @@ -283,37 +280,41 @@ var/mob/living/carbon/human/H = M if(H.check_shields(15, "the pounce")) //Human shield block. visible_message(SPAN_DANGER("[src] slams into [H]!"), - SPAN_XENODANGER("You slam into [H]!"), null, 5) - apply_effect(1, WEAKEN) + SPAN_XENODANGER("We slam into [H]!"), null, 5) + KnockDown(1) + Stun(1) throwing = FALSE //Reset throwing manually. playsound(H, "bonk", 75, FALSE) //bonk return if(isyautja(H)) if(H.check_shields(0, "the pounce", 1)) - visible_message(SPAN_DANGER("[H] blocks the pounce of [src] with the combistick!"), SPAN_XENODANGER("[H] blocks your pouncing form with the combistick!"), null, 5) + visible_message(SPAN_DANGER("[H] blocks the pounce of [src] with the combistick!"), SPAN_XENODANGER("[H] blocks our pouncing form with the combistick!"), null, 5) apply_effect(3, WEAKEN) throwing = FALSE playsound(H, "bonk", 75, FALSE) return else if(prob(75)) //Body slam the fuck out of xenos jumping at your front. visible_message(SPAN_DANGER("[H] body slams [src]!"), - SPAN_XENODANGER("[H] body slams you!"), null, 5) - apply_effect(3, WEAKEN) + SPAN_XENODANGER("[H] body slams us!"), null, 5) + KnockDown(3) + Stun(3) throwing = FALSE return if(iscolonysynthetic(H) && prob(60)) visible_message(SPAN_DANGER("[H] withstands being pounced and slams down [src]!"), - SPAN_XENODANGER("[H] throws you down after withstanding the pounce!"), null, 5) - apply_effect(1.5, WEAKEN) + SPAN_XENODANGER("[H] throws us down after withstanding the pounce!"), null, 5) + KnockDown(1.5) + Stun(1.5) throwing = FALSE return - visible_message(SPAN_DANGER("[src] [pounceAction.ability_name] onto [M]!"), SPAN_XENODANGER("You [pounceAction.ability_name] onto [M]!"), null, 5) + visible_message(SPAN_DANGER("[src] [pounceAction.ability_name] onto [M]!"), SPAN_XENODANGER("We [pounceAction.ability_name] onto [M]!"), null, 5) if (pounceAction.knockdown) - M.apply_effect(pounceAction.knockdown_duration, WEAKEN) + M.KnockDown(pounceAction.knockdown_duration) + M.Stun(pounceAction.knockdown_duration) // To replicate legacy behavior. Otherwise M39 Armbrace users for example can still shoot step_to(src, M) if (pounceAction.freeze_self) @@ -369,13 +370,13 @@ //Bleuugh /mob/living/carbon/xenomorph/proc/empty_gut() - if(stomach_contents.len) + if(length(stomach_contents)) for(var/atom/movable/S in stomach_contents) stomach_contents.Remove(S) S.acid_damage = 0 //Reset the acid damage S.forceMove(get_true_turf(src)) - if(contents.len) //Get rid of anything that may be stuck inside us as well + if(length(contents)) //Get rid of anything that may be stuck inside us as well for(var/atom/movable/A in contents) A.forceMove(get_true_turf(src)) @@ -391,20 +392,21 @@ update_sight() /mob/living/carbon/xenomorph/proc/regurgitate(mob/living/victim, stuns = FALSE) - if(stomach_contents.len) + if(length(stomach_contents)) if(victim) stomach_contents.Remove(victim) victim.acid_damage = 0 victim.forceMove(get_true_turf(loc)) visible_message(SPAN_XENOWARNING("[src] hurls out the contents of their stomach!"), \ - SPAN_XENOWARNING("You hurl out the contents of your stomach!"), null, 5) + SPAN_XENOWARNING("We hurl out the contents of our stomach!"), null, 5) playsound(get_true_location(loc), 'sound/voice/alien_drool2.ogg', 50, 1) + log_interact(src, victim, "[key_name(src)] regurgitated [key_name(victim)] at [get_area_name(loc)]") if (stuns) victim.adjust_effect(2, STUN) else - to_chat(src, SPAN_WARNING("There's nothing in your belly that needs regurgitating.")) + to_chat(src, SPAN_WARNING("There's nothing in our belly that needs regurgitating.")) /mob/living/carbon/xenomorph/proc/check_alien_construction(turf/current_turf, check_blockers = TRUE, silent = FALSE, check_doors = TRUE) var/has_obstacle @@ -503,11 +505,11 @@ if(!Q || !Q.ovipositor || hive_pos == NORMAL_XENO || !Q.current_aura || Q.loc.z != loc.z) //We are no longer a leader, or the Queen attached to us has dropped from her ovi, disabled her pheromones or even died leader_aura_strength = 0 leader_current_aura = "" - to_chat(src, SPAN_XENOWARNING("Your pheromones wane. The Queen is no longer granting you her pheromones.")) + to_chat(src, SPAN_XENOWARNING("Our pheromones wane. The Queen is no longer granting us her pheromones.")) else leader_aura_strength = Q.aura_strength leader_current_aura = Q.current_aura - to_chat(src, SPAN_XENOWARNING("Your pheromones have changed. The Queen has new plans for the Hive.")) + to_chat(src, SPAN_XENOWARNING("Our pheromones have changed. The Queen has new plans for the Hive.")) hud_set_pheromone() /mob/living/carbon/xenomorph/proc/nocrit(wowave) @@ -595,7 +597,7 @@ burn_amount *= 0.5 apply_damage(burn_amount, BURN) - to_chat(src, SPAN_DANGER("Your flesh, it melts!")) + to_chat(src, SPAN_DANGER("Our flesh, it melts!")) updatehealth() return TRUE @@ -621,7 +623,7 @@ return target.xenos_tracking |= src tracked_marker = target - to_chat(src, SPAN_XENONOTICE("You start tracking the [target.mark_meaning.name] resin mark.")) + to_chat(src, SPAN_XENONOTICE("We start tracking the [target.mark_meaning.name] resin mark.")) to_chat(src, SPAN_INFO("Shift click the compass to watch the mark, alt click to stop tracking")) /mob/living/carbon/xenomorph/proc/stop_tracking_resin_mark(destroyed, silent = FALSE) //tracked_marker shouldnt be nulled outside this PROC!! >:C @@ -639,11 +641,15 @@ if(destroyed) to_chat(src, SPAN_XENONOTICE("The [tracked_marker.mark_meaning.name] resin mark has ceased to exist.")) else - to_chat(src, SPAN_XENONOTICE("You stop tracking the [tracked_marker.mark_meaning.name] resin mark.")) + to_chat(src, SPAN_XENONOTICE("We stop tracking the [tracked_marker.mark_meaning.name] resin mark.")) tracked_marker.xenos_tracking -= src tracked_marker = null + ///This permits xenos with thumbs to fire guns and arm grenades. God help us all. +/mob/living/carbon/xenomorph/IsAdvancedToolUser() + return HAS_TRAIT(src, TRAIT_OPPOSABLE_THUMBS) + /mob/living/carbon/xenomorph/proc/do_nesting_host(mob/current_mob, nest_structural_base) var/list/xeno_hands = list(get_active_hand(), get_inactive_hand()) @@ -712,3 +718,45 @@ /mob/living/carbon/xenomorph/lying_angle_on_lying_down(new_lying_angle) return // Do not rotate xenos around on the floor, their sprite is already top-down'ish + +/** + * Helper procedure for throwing other carbon based mobs around + * Pretty much a wrapper to [/atom/movable/proc/throw_atom] with extra handling + * + * * target - the target carbon mob that will be thrown + * * direction - the direction the target will be thrown toward, or if null, infered from relative position with target + * * distance - the total distance the throw will be made for + * * speed - throw_atom relative speed of the throw, check [SPEED_AVERAGE] for details + * * shake_camera - whether to shake the thrown mob camera on throw + * * immobilize - if TRUE the mob will be immobilized during the throw, ensuring it doesn't move and break it + */ +/mob/living/carbon/xenomorph/proc/throw_carbon(mob/living/carbon/target, direction, distance, speed = SPEED_VERY_FAST, shake_camera = TRUE, immobilize = TRUE) + if(!direction) + direction = get_dir(src, target) + var/turf/target_destination = get_ranged_target_turf(target, direction, distance) + + var/list/end_throw_callbacks + if(immobilize) + end_throw_callbacks = list(CALLBACK(src, PROC_REF(throw_carbon_end), target)) + ADD_TRAIT(target, TRAIT_IMMOBILIZED, XENO_THROW_TRAIT) + + target.throw_atom(target_destination, distance, speed, src, spin = TRUE, end_throw_callbacks = end_throw_callbacks) + if(shake_camera) + shake_camera(target, 10, 1) + +/// Handler callback to reset immobilization status after a successful [/mob/living/carbon/xenomorph/proc/throw_carbon] +/mob/living/carbon/xenomorph/proc/throw_carbon_end(mob/living/carbon/target) + REMOVE_TRAIT(target, TRAIT_IMMOBILIZED, XENO_THROW_TRAIT) + +/// snowflake proc to clear effects from research warcrimes +/mob/living/carbon/xenomorph/proc/clear_debuffs() + SEND_SIGNAL(src, COMSIG_XENO_DEBUFF_CLEANSE) + SetKnockOut(0) + SetStun(0) + SetKnockDown(0) + SetDaze(0) + SetSlow(0) + SetSuperslow(0) + SetRoot(0) + SetEyeBlur(0) + updatehealth() diff --git a/code/modules/mob/living/carbon/xenomorph/Xenomorph.dm b/code/modules/mob/living/carbon/xenomorph/Xenomorph.dm index cc0065733e21..b07f766b179d 100644 --- a/code/modules/mob/living/carbon/xenomorph/Xenomorph.dm +++ b/code/modules/mob/living/carbon/xenomorph/Xenomorph.dm @@ -52,6 +52,8 @@ gender = NEUTER icon_size = 48 black_market_value = KILL_MENDOZA + ///How much to horizontally adjust the sprites of held item onmobs by. Based on icon size. Most xenos have hands about the same height as a human's. + var/xeno_inhand_item_offset dead_black_market_value = 50 light_system = MOVABLE_LIGHT var/obj/item/clothing/suit/wear_suit = null @@ -114,10 +116,6 @@ var/crit_grace_time = 1 SECONDS var/next_grace_time = 0 - //Amount of construction resources stored internally - var/crystal_stored = 0 - var/crystal_max = 0 - var/evasion = 0 // RNG "Armor" // Armor @@ -134,10 +132,8 @@ var/weed_level = WEED_LEVEL_STANDARD var/acid_level = 0 - // Mutator-related and other important vars - var/mutation_icon_state = null - var/mutation_type = null - var/datum/mutator_set/individual_mutators/mutators = new + /// The xeno's strain, if they've taken one. + var/datum/xeno_strain/strain = null // Hive-related vars var/datum/hive_status/hive @@ -222,11 +218,11 @@ ////////////////////////////////////////////////////////////////// var/xeno_mobhud = FALSE //whether the xeno mobhud is activated or not. var/xeno_hostile_hud = FALSE // 'Hostile' HUD - the verb Xenos use to see tags, etc on humans + var/execute_hud = FALSE // Crit HUD, only visible to vampire lurkers var/list/plasma_types = list() //The types of plasma the caste contains var/list/xeno_shields = list() // List of /datum/xeno_shield that holds all active shields on the Xeno. var/acid_splash_cooldown = 5 SECONDS //Time it takes between acid splash retaliate procs var/acid_splash_last //Last recorded time that an acid splash procced - var/interference = 0 // Stagger for predator weapons. Prevents hivemind usage, queen overwatching, etc. var/mob/living/carbon/xenomorph/observed_xeno // Overwatched xeno for xeno hivemind vision var/need_weeds = TRUE // Do we need weeds to regen HP? var/datum/behavior_delegate/behavior_delegate = null // Holds behavior delegate. Governs all 'unique' hooked behavior of the Xeno. Set by caste datums and strains. @@ -252,11 +248,11 @@ var/pounce_distance = 0 // Life reduction variables. - var/life_stun_reduction = -1.5 - var/life_knockdown_reduction = -1.5 - var/life_knockout_reduction = -1.5 - var/life_daze_reduction = -1.5 var/life_slow_reduction = -1.5 + //Research organ harvesting. + var/organ_removed = FALSE + /// value of organ in each caste, e.g. 10k is autodoc larva removal. runner is 500 + var/organ_value = 0 ////////////////////////////////////////////////////////////////// @@ -272,6 +268,7 @@ // an easily modularizable way. So, here you go. // ////////////////////////////////////////////////////////////////// + var/tunnel = FALSE /// for check on lurker invisibility var/stealth = FALSE @@ -353,6 +350,13 @@ src.hivenumber = old_xeno.hivenumber else if(hivenumber) src.hivenumber = hivenumber + //putting the organ in for research + if(organ_value != 0) + var/obj/item/organ/xeno/organ = new() //give + organ.forceMove(src) + organ.research_value = organ_value + organ.caste_origin = caste_type + organ.icon_state = get_organ_icon() var/datum/hive_status/hive = GLOB.hive_datum[src.hivenumber] @@ -398,8 +402,6 @@ for(var/trait in hive.hive_inherant_traits) ADD_TRAIT(src, trait, TRAIT_SOURCE_HIVE) - mutators.xeno = src - //Set caste stuff if(caste_type && GLOB.xeno_datum_list[caste_type]) caste = GLOB.xeno_datum_list[caste_type] @@ -440,6 +442,9 @@ if(mob_size < MOB_SIZE_BIG) mob_flags |= SQUEEZE_UNDER_VEHICLES + GLOB.living_xeno_list += src + GLOB.xeno_mob_list += src + xeno_inhand_item_offset = (icon_size - 32) * 0.5 // More setup stuff for names, abilities etc update_icon_source() generate_name() @@ -461,16 +466,13 @@ //Begin SStracking SStracking.start_tracking("hive_[src.hivenumber]", src) - GLOB.living_xeno_list += src - GLOB.xeno_mob_list += src - //WO GAMEMODE if(SSticker?.mode?.hardcore) hardcore = 1 //Prevents healing and queen evolution time_of_birth = world.time //Minimap - if(z) + if(z && hivenumber != XENO_HIVE_TUTORIAL) INVOKE_NEXT_TICK(src, PROC_REF(add_minimap_marker)) //Sight @@ -484,7 +486,7 @@ lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_INVISIBLE // Only handle free slots if the xeno is not in tdome - if(hive && !is_admin_level(z)) + if(hive && !should_block_game_interaction(src)) var/selected_caste = GLOB.xeno_datum_list[caste_type]?.type hive.used_slots[selected_caste]++ @@ -670,11 +672,13 @@ . += "It appears to belong to [hive?.name ? "the [hive.name]" : "a different hive"]." if(isxeno(user) || isobserver(user)) - if(mutation_type != "Normal") - . += "It has specialized into a [mutation_type]." + if(strain) + . += "It has specialized into a [strain.name]." if(iff_tag) . += SPAN_NOTICE("It has an IFF tag sticking out of its carapace.") + if(organ_removed) + . += "It seems to have its carapace cut open." /mob/living/carbon/xenomorph/Destroy() GLOB.living_xeno_list -= src @@ -702,7 +706,7 @@ selected_ability = null queued_action = null - QDEL_NULL(mutators) + QDEL_NULL(strain) QDEL_NULL(behavior_delegate) built_structures = null @@ -718,18 +722,11 @@ if(hardcore) attack_log?.Cut() // Completely clear out attack_log to limit mem usage if we fail to delete - . = ..() - - // Everything below fits the "we have to clear by principle it but i dont wanna break stuff" bill - mutators = null - - + return ..() /mob/living/carbon/xenomorph/slip(slip_source_name, stun_level, weaken_level, run_only, override_noslip, slide_steps) return FALSE - - /mob/living/carbon/xenomorph/start_pulling(atom/movable/AM, lunge, no_msg) if(SEND_SIGNAL(AM, COMSIG_MOVABLE_XENO_START_PULLING, src) & COMPONENT_ALLOW_PULL) return do_pull(AM, lunge, no_msg) @@ -739,8 +736,6 @@ if(!isliving(AM)) return FALSE var/mob/living/L = AM - if(issynth(L) && L.health < 0) // no pulling critted or dead synths - return FALSE if(L.buckled) return FALSE //to stop xeno from pulling marines on roller beds. if(!L.is_xeno_grabbable()) @@ -788,6 +783,11 @@ var/datum/mob_hud/MH = GLOB.huds[MOB_HUD_XENO_INFECTION] MH.add_hud_to(src, src) +// Transfer any observing players over to the xeno's new body (`target`) on evolve/de-evolve. +/mob/living/carbon/xenomorph/transfer_observers_to(atom/target) + for(var/mob/dead/observer/observer as anything in observers) + observer.clean_observe_target() + observer.do_observe(target) /mob/living/carbon/xenomorph/check_improved_pointing() //xeno leaders get a big arrow and less cooldown @@ -834,10 +834,10 @@ //*********************************************************// -//********************Mutator functions********************// +// ******************** Strain Procs **********************// //*********************************************************// -//Call this function when major changes happen - evolutions, upgrades, mutators getting removed +//Call this proc when major changes happen - evolutions, upgrades, mutators getting removed /mob/living/carbon/xenomorph/proc/recalculate_everything() recalculate_stats() recalculate_actions() @@ -851,7 +851,6 @@ /mob/living/carbon/xenomorph/proc/recalculate_stats() recalculate_health() recalculate_plasma() - recalculate_stockpile() recalculate_speed() recalculate_armor() recalculate_damage() @@ -862,8 +861,8 @@ tackle_min = caste.tackle_min tackle_max = caste.tackle_max tackle_chance = caste.tackle_chance + tackle_chance_modifier - tacklestrength_min = caste.tacklestrength_min + mutators.tackle_strength_bonus + hive.mutators.tackle_strength_bonus - tacklestrength_max = caste.tacklestrength_max + mutators.tackle_strength_bonus + hive.mutators.tackle_strength_bonus + tacklestrength_min = caste.tacklestrength_min + tacklestrength_max = caste.tacklestrength_max /mob/living/carbon/xenomorph/proc/recalculate_health() var/new_max_health = nocrit ? health_modifier + maxHealth : health_modifier + caste.max_health @@ -873,7 +872,7 @@ if(health < maxHealth) currentHealthRatio = health / maxHealth maxHealth = new_max_health - health = round(maxHealth * currentHealthRatio + 0.5)//Restore our health ratio, so if we're full, we continue to be full, etc. Rounding up (hence the +0.5) + health = floor(maxHealth * currentHealthRatio + 0.5)//Restore our health ratio, so if we're full, we continue to be full, etc. Rounding up (hence the +0.5) if(health > maxHealth) health = maxHealth @@ -887,15 +886,10 @@ return var/plasma_ratio = plasma_stored / plasma_max plasma_max = new_plasma_max - plasma_stored = round(plasma_max * plasma_ratio + 0.5) //Restore our plasma ratio, so if we're full, we continue to be full, etc. Rounding up (hence the +0.5) + plasma_stored = floor(plasma_max * plasma_ratio + 0.5) //Restore our plasma ratio, so if we're full, we continue to be full, etc. Rounding up (hence the +0.5) if(plasma_stored > plasma_max) plasma_stored = plasma_max -/mob/living/carbon/xenomorph/proc/recalculate_stockpile() - crystal_max = caste.crystal_max - if(crystal_stored > crystal_max) - crystal_stored = crystal_max - /mob/living/carbon/xenomorph/proc/recalculate_speed() recalculate_move_delay = TRUE speed = speed_modifier @@ -905,7 +899,7 @@ /mob/living/carbon/xenomorph/proc/recalculate_armor() //We are calculating it in a roundabout way not to give anyone 100% armor deflection, so we're dividing the differences - armor_deflection = armor_modifier + round(100 - (100 - caste.armor_deflection)) + armor_deflection = armor_modifier + floor(100 - (100 - caste.armor_deflection)) armor_explosive_buff = explosivearmor_modifier /mob/living/carbon/xenomorph/proc/recalculate_damage() @@ -924,18 +918,8 @@ /mob/living/carbon/xenomorph/proc/recalculate_actions() recalculate_acid() recalculate_weeds() - pull_multiplier = mutators.pull_multiplier - if(isrunner(src)) - //Xeno runners need a small nerf to dragging speed mutator - pull_multiplier = 1 - (1 - mutators.pull_multiplier) * 0.85 - if(is_zoomed) - zoom_out() - if(iscarrier(src)) - var/mob/living/carbon/xenomorph/carrier/carrier = src - carrier.huggers_max = caste.huggers_max - carrier.eggs_max = caste.eggs_max - need_weeds = mutators.need_weeds - + // Modified on subtypes + pull_multiplier = initial(pull_multiplier) /mob/living/carbon/xenomorph/proc/recalculate_acid() if(caste) @@ -968,7 +952,7 @@ caste.aura_strength = 0 if(aura_strength == 0 && current_aura) current_aura = null - to_chat(src, SPAN_XENOWARNING("You lose your pheromones.")) + to_chat(src, SPAN_XENOWARNING("We lose our pheromones.")) // Also recalculate received pheros now for(var/capped_aura in received_phero_caps) @@ -1012,25 +996,27 @@ return visible_message(SPAN_DANGER("[src] has successfully extinguished themselves!"), \ - SPAN_NOTICE("You extinguish yourself."), null, 5) + SPAN_NOTICE("We extinguish ourselves."), null, 5) + +/mob/living/carbon/xenomorph/proc/get_organ_icon() + return "heart_t[tier]" /mob/living/carbon/xenomorph/resist_restraints() + if(!legcuffed) + return var/breakouttime = legcuffed.breakouttime - next_move = world.time + 100 - last_special = world.time + 10 + next_move = world.time + 10 SECONDS + last_special = world.time + 1 SECONDS - var/displaytime = max(1, round(breakouttime / 600)) //Minutes - to_chat(src, SPAN_WARNING("You attempt to remove [legcuffed]. (This will take around [displaytime] minute(s) and you need to stand still)")) - for(var/mob/O in viewers(src)) - O.show_message(SPAN_DANGER("[usr] attempts to remove [legcuffed]!"), SHOW_MESSAGE_VISIBLE) - if(!do_after(src, breakouttime, INTERRUPT_NO_NEEDHAND^INTERRUPT_RESIST, BUSY_ICON_HOSTILE)) + var/displaytime = max(1, floor(breakouttime / 600)) //Minutes + visible_message(SPAN_DANGER("[src] attempts to remove [legcuffed]!"), + SPAN_WARNING("We attempt to remove [legcuffed]. (This will take around [displaytime] minute\s and we must stand still)")) + if(!do_after(src, breakouttime, INTERRUPT_NO_NEEDHAND ^ INTERRUPT_RESIST, BUSY_ICON_HOSTILE)) return if(!legcuffed || buckled) - return // time leniency for lag which also might make this whole thing pointless but the server - for(var/mob/O in viewers(src))// lags so hard that 40s isn't lenient enough - Quarxink - O.show_message(SPAN_DANGER("[src] manages to remove [legcuffed]!"), SHOW_MESSAGE_VISIBLE) - to_chat(src, SPAN_NOTICE(" You successfully remove [legcuffed].")) + return + visible_message(SPAN_DANGER("[src] manages to remove [legcuffed]!"), SPAN_NOTICE("We successfully remove [legcuffed].")) drop_inv_item_on_ground(legcuffed) /mob/living/carbon/xenomorph/IgniteMob() @@ -1057,11 +1043,11 @@ /mob/living/carbon/xenomorph/ghostize(can_reenter_corpse = TRUE, aghosted = FALSE) . = ..() - if(. && !can_reenter_corpse && stat != DEAD && !QDELETED(src) && !is_admin_level(z)) + if(. && !can_reenter_corpse && stat != DEAD && !QDELETED(src) && !should_block_game_interaction(src)) handle_ghost_message() /mob/living/carbon/xenomorph/proc/handle_ghost_message() - notify_ghosts("[src] ([mutation_type] [caste_type]) has ghosted and their body is up for grabs!", source = src) + notify_ghosts("[src] ([get_strain_name()] [caste_type]) has ghosted and their body is up for grabs!", source = src) /mob/living/carbon/xenomorph/larva/handle_ghost_message() if(locate(/obj/effect/alien/resin/special/pylon/core) in range(2, get_turf(src))) @@ -1088,24 +1074,19 @@ var/move_dir = get_dir(src, loc) for(var/atom/movable/atom in get_turf(current_structure)) if(atom != current_structure && atom.density && atom.BlockedPassDirs(src, move_dir)) - to_chat(src, SPAN_WARNING("[atom] prevents you from squeezing under [current_structure]!")) + to_chat(src, SPAN_WARNING("[atom] prevents us from squeezing under [current_structure]!")) return FALSE // Is it an airlock? if(istype(current_structure, /obj/structure/machinery/door/airlock)) var/obj/structure/machinery/door/airlock/current_airlock = current_structure if(current_airlock.locked || current_airlock.welded) //Can't pass through airlocks that have been bolted down or welded - to_chat(src, SPAN_WARNING("[current_airlock] is locked down tight. You can't squeeze underneath!")) + to_chat(src, SPAN_WARNING("[current_airlock] is locked down tight. We can't squeeze underneath!")) return FALSE visible_message(SPAN_WARNING("[src] scuttles underneath [current_structure]!"), \ - SPAN_WARNING("You squeeze and scuttle underneath [current_structure]."), max_distance = 5) + SPAN_WARNING("We squeeze and scuttle underneath [current_structure]."), max_distance = 5) forceMove(current_structure.loc) return TRUE -/mob/living/carbon/xenomorph/knocked_down_callback() - . = ..() - if(!resting) // !resting because we dont wanna prematurely update wounds if they're just trying to rest - update_wounds() - ///Generate a new unused nicknumber for the current hive, if hive doesn't exist return 0 /mob/living/carbon/xenomorph/proc/generate_and_set_nicknumber() if(!hive) @@ -1118,3 +1099,12 @@ else //If we somehow use all 999 numbers fallback on 0 nicknumber = 0 + +/proc/setup_xenomorph(mob/living/carbon/xenomorph/target, mob/new_player/new_player, is_late_join = FALSE) + new_player.spawning = TRUE + new_player.close_spawn_windows() + new_player.client.prefs.copy_all_to(target, new_player.job, is_late_join = FALSE) + + if(new_player.mind) + new_player.mind_initialize() + new_player.mind.transfer_to(target, TRUE) diff --git a/code/modules/mob/living/carbon/xenomorph/abilities/ability_helper_procs.dm b/code/modules/mob/living/carbon/xenomorph/abilities/ability_helper_procs.dm index 35024d7304af..87657af5ce7a 100644 --- a/code/modules/mob/living/carbon/xenomorph/abilities/ability_helper_procs.dm +++ b/code/modules/mob/living/carbon/xenomorph/abilities/ability_helper_procs.dm @@ -1,18 +1,20 @@ //Corrosive acid is consolidated -- it checks for specific castes for strength now, but works identically to each other. //The acid items are stored in XenoProcs. /mob/living/carbon/xenomorph/proc/corrosive_acid(atom/O, acid_type, plasma_cost) + if(!check_state()) + return if(!O.Adjacent(src)) if(istype(O,/obj/item/explosive/plastic)) var/obj/item/explosive/plastic/E = O if(E.plant_target && !E.plant_target.Adjacent(src)) - to_chat(src, SPAN_WARNING("You can't reach [O].")) + to_chat(src, SPAN_WARNING("We can't reach [O].")) return else to_chat(src, SPAN_WARNING("[O] is too far away.")) return if(!isturf(loc) || HAS_TRAIT(src, TRAIT_ABILITY_BURROWED)) - to_chat(src, SPAN_WARNING("You can't melt [O] from here!")) + to_chat(src, SPAN_WARNING("We can't melt [O] from here!")) return face_atom(O) @@ -31,15 +33,9 @@ if(isobj(O)) I = O - if(istype(I, /obj/structure/window_frame)) - var/obj/structure/window_frame/WF = I - if(WF.reinforced && acid_type != /obj/effect/xenomorph/acid/strong) - to_chat(src, SPAN_WARNING("This [O.name] is too tough to be melted by your weak acid.")) - return - wait_time = I.get_applying_acid_time() if(wait_time == -1) - to_chat(src, SPAN_WARNING("You cannot dissolve \the [I].")) + to_chat(src, SPAN_WARNING("We cannot dissolve \the [I].")) return //TURF CHECK @@ -54,13 +50,13 @@ var/dissolvability = T.can_be_dissolved() switch(dissolvability) if(0) - to_chat(src, SPAN_WARNING("You cannot dissolve [T].")) + to_chat(src, SPAN_WARNING("We cannot dissolve [T].")) return if(1) wait_time = 50 if(2) if(acid_type != /obj/effect/xenomorph/acid/strong) - to_chat(src, SPAN_WARNING("This [T.name] is too tough to be melted by your weak acid.")) + to_chat(src, SPAN_WARNING("This [T.name] is too tough to be melted by our weak acid.")) return wait_time = 100 else @@ -69,7 +65,7 @@ var/turf/closed/wall/W = T // Direction from wall to the mob generating acid on the wall turf - var/ambiguous_dir_msg = SPAN_XENOWARNING("You are unsure which direction to melt through [W]. Face it directly and try again.") + var/ambiguous_dir_msg = SPAN_XENOWARNING("We are unsure which direction to melt through [W]. Face it directly and try again.") var/dir_to = get_dir(src, W) switch(dir_to) if(WEST, EAST, NORTH, SOUTH) @@ -94,9 +90,9 @@ return var/acided_hole_type = W.acided_hole_dir & (EAST|WEST) ? "a hole horizontally" : "a hole vertically" - to_chat(src, SPAN_XENOWARNING("You begin generating enough acid to melt [acided_hole_type] through [W].")) + to_chat(src, SPAN_XENOWARNING("We begin generating enough acid to melt [acided_hole_type] through [W].")) else - to_chat(src, SPAN_XENOWARNING("You begin generating enough acid to melt through [T].")) + to_chat(src, SPAN_XENOWARNING("We begin generating enough acid to melt through [T].")) else to_chat(src, SPAN_WARNING("You cannot dissolve [O].")) return @@ -110,6 +106,10 @@ to_chat(src, SPAN_WARNING("[A] is already drenched in acid.")) return + if(HAS_TRAIT(src, TRAIT_ABILITY_BURROWED)) //Checked again to account for people trying to place acid while channeling the burrow ability + to_chat(src, SPAN_WARNING("We can't melt [O] from here!")) + return + if(!check_state()) return @@ -123,7 +123,7 @@ if(istype(O,/obj/item/explosive/plastic)) var/obj/item/explosive/plastic/E = O if(E.plant_target && !E.plant_target.Adjacent(src)) - to_chat(src, SPAN_WARNING("You can't reach [O].")) + to_chat(src, SPAN_WARNING("We can't reach [O].")) return else to_chat(src, SPAN_WARNING("[O] is too far away.")) @@ -137,7 +137,7 @@ var/obj/vehicle/multitile/R = O R.take_damage_type(40 / A.acid_delay, "acid", src) visible_message(SPAN_XENOWARNING("[src] vomits globs of vile stuff at \the [O]. It sizzles under the bubbling mess of acid!"), \ - SPAN_XENOWARNING("You vomit globs of vile stuff at [O]. It sizzles under the bubbling mess of acid!"), null, 5) + SPAN_XENOWARNING("We vomit globs of vile stuff at [O]. It sizzles under the bubbling mess of acid!"), null, 5) playsound(loc, "sound/bullets/acid_impact1.ogg", 25) QDEL_IN(A, 20) return @@ -157,7 +157,7 @@ msg_admin_attack("[src.name] ([src.ckey]) spat acid on [O] in [get_area(src)] ([src.loc.x],[src.loc.y],[src.loc.z]).", src.loc.x, src.loc.y, src.loc.z) attack_log += text("\[[time_stamp()]\] Spat acid on [O]") visible_message(SPAN_XENOWARNING("[src] vomits globs of vile stuff all over [O]. It begins to sizzle and melt under the bubbling mess of acid!"), \ - SPAN_XENOWARNING("You vomit globs of vile stuff all over [O]. It begins to sizzle and melt under the bubbling mess of acid!"), null, 5) + SPAN_XENOWARNING("We vomit globs of vile stuff all over [O]. It begins to sizzle and melt under the bubbling mess of acid!"), null, 5) playsound(loc, "sound/bullets/acid_impact1.ogg", 25) /proc/unroot_human(mob/living/carbon/H, trait_source) @@ -169,24 +169,7 @@ if(ishuman(H)) var/mob/living/carbon/human/T = H T.update_xeno_hostile_hud() - to_chat(H, SPAN_XENOHIGHDANGER("You can move again!")) - -/proc/xeno_throw_human(mob/living/carbon/H, mob/living/carbon/xenomorph/X, direction, distance, shake_camera = TRUE) - if (!istype(H) || !istype(X) || !direction || !distance) - return - - var/turf/T = get_turf(H) - var/turf/temp = get_turf(H) - for (var/x in 0 to distance) - temp = get_step(T, direction) - if (!temp) - break - T = temp - - H.throw_atom(T, distance, SPEED_VERY_FAST, X, TRUE) - if(!shake_camera) - return - shake_camera(H, 10, 1) + to_chat(H, SPAN_XENOHIGHDANGER("We can move again!")) /mob/living/carbon/xenomorph/proc/zoom_in() if(stat || resting) @@ -216,6 +199,10 @@ client.pixel_x = -viewoffset client.pixel_y = 0 + for (var/datum/action/xeno_action/onclick/toggle_long_range/action in actions) + action.on_zoom_in() + return + /mob/living/carbon/xenomorph/proc/zoom_out() if(!client) return @@ -302,7 +289,7 @@ for(var/turf/T in turflist) distance++ - if(!prev_turf && turflist.len > 1) + if(!prev_turf && length(turflist) > 1) prev_turf = get_turf(src) continue //So we don't burn the tile we be standin on @@ -331,8 +318,11 @@ if(!check_can_transfer_plasma(target, max_range)) return - to_chat(src, SPAN_NOTICE("You start focusing your plasma towards [target].")) - to_chat(target, SPAN_NOTICE("You feel that [src] starts transferring some of their plasma to you.")) + to_chat(src, SPAN_NOTICE("We start focusing our plasma towards [target].")) + to_chat(target, SPAN_NOTICE("We feel that [src] starts transferring some of their plasma to us.")) + face_atom(target) + target.flick_heal_overlay(transfer_delay, COLOR_CYAN) + if(!do_after(src, transfer_delay, INTERRUPT_ALL, BUSY_ICON_FRIENDLY)) return @@ -343,8 +333,9 @@ amount = plasma_stored //Just use all of it use_plasma(amount) target.gain_plasma(amount) - to_chat(target, SPAN_XENOWARNING("[src] has transfered [amount] plasma to you. You now have [target.plasma_stored].")) - to_chat(src, SPAN_XENOWARNING("You have transferred [amount] plasma to [target]. You now have [plasma_stored].")) + target.xeno_jitter(1 SECONDS) + to_chat(target, SPAN_XENOWARNING("[src] has transfered [amount] plasma to us. We now have [target.plasma_stored].")) + to_chat(src, SPAN_XENOWARNING("We have transferred [amount] plasma to [target]. We now have [plasma_stored].")) playsound(src, "alien_drool", 25) /mob/living/carbon/xenomorph/proc/check_can_transfer_plasma(mob/living/carbon/xenomorph/target, max_range) @@ -356,19 +347,19 @@ return FALSE if(!isturf(loc)) - to_chat(src, SPAN_WARNING("You can't transfer plasma from here!")) + to_chat(src, SPAN_WARNING("We can't transfer plasma from here!")) return FALSE if(get_dist(src, target) > max_range) - to_chat(src, SPAN_WARNING("You need to be closer to [target].")) + to_chat(src, SPAN_WARNING("We need to be closer to [target].")) return FALSE if(HAS_TRAIT(target, TRAIT_ABILITY_OVIPOSITOR)) - to_chat(src, SPAN_WARNING("You can't transfer plasma to a queen mounted on her ovipositor.")) + to_chat(src, SPAN_WARNING("We can't transfer plasma to a queen mounted on her ovipositor.")) return FALSE if(HAS_TRAIT(target, TRAIT_ABILITY_NO_PLASMA_TRANSFER)) - to_chat(src, SPAN_WARNING("You can't transfer plasma to \the [target].")) + to_chat(src, SPAN_WARNING("We can't transfer plasma to \the [target].")) return FALSE if(target.plasma_max == XENO_NO_PLASMA) @@ -376,7 +367,7 @@ return FALSE if(target == src) - to_chat(src, SPAN_WARNING("You can't transfer plasma to yourself!")) + to_chat(src, SPAN_WARNING("We can't transfer plasma to ourself!")) return FALSE return TRUE diff --git a/code/modules/mob/living/carbon/xenomorph/abilities/boiler/boiler_abilities.dm b/code/modules/mob/living/carbon/xenomorph/abilities/boiler/boiler_abilities.dm index 4430a1619e03..e7f72e7e013e 100644 --- a/code/modules/mob/living/carbon/xenomorph/abilities/boiler/boiler_abilities.dm +++ b/code/modules/mob/living/carbon/xenomorph/abilities/boiler/boiler_abilities.dm @@ -13,7 +13,7 @@ macro_path = /datum/action/xeno_action/verb/verb_acid_lance action_type = XENO_ACTION_CLICK ability_primacy = XENO_PRIMARY_ACTION_2 - xeno_cooldown = 190 + xeno_cooldown = 19 SECONDS // Config var/stack_time = 10 @@ -52,7 +52,7 @@ name = "Bombard" ability_name = "Bombard" action_icon_state = "bombard" - cooldown_message = "Your belly fills with another gas glob. You are are ready to bombard again." + cooldown_message = "Our belly fills with another gas glob. We are ready to bombard again." sound_to_play = 'sound/effects/blobattack.ogg' aim_turf = TRUE /// These are actions that will be placed on cooldown for the cooldown_duration when activates. Added acid shroud for now because it can be abused @@ -96,7 +96,7 @@ macro_path = /datum/action/xeno_action/verb/verb_boiler_trap action_type = XENO_ACTION_CLICK ability_primacy = XENO_PRIMARY_ACTION_1 - xeno_cooldown = 205 + xeno_cooldown = 20.5 SECONDS /// Config var/trap_ttl = 100 @@ -112,7 +112,7 @@ macro_path = /datum/action/xeno_action/verb/verb_acid_mine action_type = XENO_ACTION_CLICK ability_primacy = XENO_PRIMARY_ACTION_2 - xeno_cooldown = 55 + xeno_cooldown = 5.5 SECONDS var/empowered = FALSE @@ -127,7 +127,7 @@ macro_path = /datum/action/xeno_action/verb/verb_acid_shotgun action_type = XENO_ACTION_CLICK ability_primacy = XENO_PRIMARY_ACTION_3 - xeno_cooldown = 130 + xeno_cooldown = 13 SECONDS var/ammo_type = /datum/ammo/xeno/acid_shotgun diff --git a/code/modules/mob/living/carbon/xenomorph/abilities/boiler/boiler_powers.dm b/code/modules/mob/living/carbon/xenomorph/abilities/boiler/boiler_powers.dm index e77d22350463..c749b0adb5ba 100644 --- a/code/modules/mob/living/carbon/xenomorph/abilities/boiler/boiler_powers.dm +++ b/code/modules/mob/living/carbon/xenomorph/abilities/boiler/boiler_powers.dm @@ -17,7 +17,7 @@ return xeno.create_empower() - xeno.visible_message(SPAN_XENODANGER("[xeno] starts to gather its acid for a massive blast!"), SPAN_XENODANGER("You start to gather your acid for a massive blast!")) + xeno.visible_message(SPAN_XENODANGER("[xeno] starts to gather its acid for a massive blast!"), SPAN_XENODANGER("We start to gather our acid for a massive blast!")) activated_once = TRUE stack() addtimer(CALLBACK(src, PROC_REF(timeout)), max_stacks*stack_time + time_after_max_before_end) @@ -29,7 +29,7 @@ var/range = base_range + stacks*range_per_stack var/damage = base_damage + stacks*damage_per_stack var/turfs_visited = 0 - for (var/turf/turf in getline2(get_turf(xeno), affected_atom)) + for (var/turf/turf in get_line(get_turf(xeno), affected_atom)) if(turf.density || turf.opacity) break @@ -54,8 +54,8 @@ new /obj/effect/xenomorph/acid_damage_delay(turf, damage, 7, FALSE, "You are blasted with a stream of high-velocity acid!", xeno) - xeno.visible_message(SPAN_XENODANGER("[xeno] fires a massive blast of acid at [affected_atom]!"), SPAN_XENODANGER("You fire a massive blast of acid at [affected_atom]!")) - remove_stack_effects("You feel your speed return to normal!") + xeno.visible_message(SPAN_XENODANGER("[xeno] fires a massive blast of acid at [affected_atom]!"), SPAN_XENODANGER("We fire a massive blast of acid at [affected_atom]!")) + remove_stack_effects("We feel our speed return to normal!") return TRUE /datum/action/xeno_action/activable/acid_lance/proc/stack() @@ -74,7 +74,7 @@ addtimer(CALLBACK(src, PROC_REF(stack)), stack_time) return else - to_chat(xeno, SPAN_XENOHIGHDANGER("You have charged your acid lance to maximum!")) + to_chat(xeno, SPAN_XENOHIGHDANGER("We have charged our acid lance to maximum!")) return /datum/action/xeno_action/activable/acid_lance/proc/remove_stack_effects(message = null) @@ -97,7 +97,7 @@ /datum/action/xeno_action/activable/acid_lance/proc/timeout() if (activated_once) activated_once = FALSE - remove_stack_effects("You have waited too long and can no longer use your acid lance!") + remove_stack_effects("We have waited too long and can no longer use our acid lance!") /datum/action/xeno_action/activable/acid_lance/action_cooldown_check() @@ -132,7 +132,7 @@ addtimer(VARSET_CALLBACK(src, sound_play, TRUE), 2 SECONDS) if (!do_after(xeno, xeno.ammo.spit_windup/6.5, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_HOSTILE, numticks = 2)) /// 0.7 seconds - to_chat(xeno, SPAN_XENODANGER("You decide to cancel your gas shroud.")) + to_chat(xeno, SPAN_XENODANGER("We decide to cancel our gas shroud.")) return playsound(xeno,"acid_sizzle", 50, 1) @@ -146,7 +146,7 @@ var/datum/cause_data/cause_data = create_cause_data("acid shroud gas", owner) spicy_gas.set_up(1, 0, get_turf(xeno), null, 6, new_cause_data = cause_data) spicy_gas.start() - to_chat(xeno, SPAN_XENOHIGHDANGER("You dump your acid through your pores, creating a shroud of gas!")) + to_chat(xeno, SPAN_XENOHIGHDANGER("We dump our acid through our pores, creating a shroud of gas!")) for (var/action_type in action_types_to_cd) var/datum/action/xeno_action/xeno_action = get_xeno_action_by_type(xeno, action_type) @@ -177,7 +177,7 @@ return if (!can_see(xeno, affected_atom, TRAPPER_VIEWRANGE)) - to_chat(xeno, SPAN_XENODANGER("You cannot see that location!")) + to_chat(xeno, SPAN_XENODANGER("We cannot see that location!")) return if (!check_and_use_plasma_owner()) @@ -222,7 +222,7 @@ if(!mine.empowered) mine.empowered = TRUE mine.button.overlays += "+empowered" - to_chat(xeno, SPAN_XENODANGER("You tap in your reserves to prepare a stronger [mine.name]!")) + to_chat(xeno, SPAN_XENODANGER("We tap into our reserves to prepare a stronger [mine.name]!")) apply_cooldown() return ..() @@ -254,7 +254,7 @@ if(empowered) acid_bolt_message = "a powerful bolt of acid" - xeno.visible_message(SPAN_XENODANGER("[xeno] fires " + acid_bolt_message + " at [affected_atom]!"), SPAN_XENODANGER("You fire " + acid_bolt_message + " at [affected_atom]!")) + xeno.visible_message(SPAN_XENODANGER("[xeno] fires " + acid_bolt_message + " at [affected_atom]!"), SPAN_XENODANGER("We fire " + acid_bolt_message + " at [affected_atom]!")) new /obj/effect/xenomorph/acid_damage_delay/boiler_landmine(turf, damage, delay, empowered, "You are blasted with " + acid_bolt_message + "!", xeno) for (var/turf/target_turf in orange(1, turf)) @@ -278,7 +278,7 @@ if(!affected_atom || affected_atom.layer >= FLY_LAYER || !isturf(xeno.loc) || !xeno.check_state()) return - xeno.visible_message(SPAN_XENOWARNING("[xeno] fires a blast of acid at [affected_atom]!"), SPAN_XENOWARNING("You fire a blast of acid at [affected_atom]!")) + xeno.visible_message(SPAN_XENOWARNING("[xeno] fires a blast of acid at [affected_atom]!"), SPAN_XENOWARNING("We fire a blast of acid at [affected_atom]!")) var/turf/target_turf = locate(affected_atom.x, affected_atom.y, affected_atom.z) var/obj/projectile/proj = new(xeno.loc, create_cause_data("acid shotgun", xeno)) diff --git a/code/modules/mob/living/carbon/xenomorph/abilities/burrower/burrower_abilities.dm b/code/modules/mob/living/carbon/xenomorph/abilities/burrower/burrower_abilities.dm index 747a3f90a691..09c6006536b0 100644 --- a/code/modules/mob/living/carbon/xenomorph/abilities/burrower/burrower_abilities.dm +++ b/code/modules/mob/living/carbon/xenomorph/abilities/burrower/burrower_abilities.dm @@ -11,6 +11,11 @@ /datum/action/xeno_action/activable/burrow/use_ability(atom/A) var/mob/living/carbon/xenomorph/X = owner + + if(SSticker?.mode?.hardcore) + to_chat(X, SPAN_XENOWARNING("A certain presence is preventing us from burrowing here.")) + return + if(HAS_TRAIT(X, TRAIT_ABILITY_BURROWED)) X.tunnel(get_turf(A)) else diff --git a/code/modules/mob/living/carbon/xenomorph/abilities/burrower/burrower_powers.dm b/code/modules/mob/living/carbon/xenomorph/abilities/burrower/burrower_powers.dm index 3276705ce9b7..8117eade469a 100644 --- a/code/modules/mob/living/carbon/xenomorph/abilities/burrower/burrower_powers.dm +++ b/code/modules/mob/living/carbon/xenomorph/abilities/burrower/burrower_powers.dm @@ -17,11 +17,11 @@ return if(istype(current_turf, /turf/open/floor/almayer/research/containment) || istype(current_turf, /turf/closed/wall/almayer/research/containment)) - to_chat(src, SPAN_XENOWARNING("You can't escape this cell!")) + to_chat(src, SPAN_XENOWARNING("We can't escape this cell!")) return if(clone) //Prevents burrowing on stairs - to_chat(src, SPAN_XENOWARNING("You can't burrow here!")) + to_chat(src, SPAN_XENOWARNING("We can't burrow here!")) return if(caste_type && GLOB.xeno_datum_list[caste_type]) @@ -29,13 +29,14 @@ used_burrow = TRUE - to_chat(src, SPAN_XENOWARNING("You begin burrowing yourself into the ground.")) + to_chat(src, SPAN_XENOWARNING("We begin burrowing ourselves into the ground.")) if(!do_after(src, 1.5 SECONDS, INTERRUPT_ALL, BUSY_ICON_HOSTILE)) addtimer(CALLBACK(src, PROC_REF(do_burrow_cooldown)), (caste ? caste.burrow_cooldown : 5 SECONDS)) return // TODO Make immune to all damage here. - to_chat(src, SPAN_XENOWARNING("You burrow yourself into the ground.")) + to_chat(src, SPAN_XENOWARNING("We burrow ourselves into the ground.")) invisibility = 101 + alpha = 100 anchored = TRUE if(caste.fire_immunity == FIRE_IMMUNITY_NONE) RegisterSignal(src, COMSIG_LIVING_PREIGNITION, PROC_REF(fire_immune)) @@ -72,6 +73,7 @@ )) remove_traits(list(TRAIT_ABILITY_BURROWED, TRAIT_UNDENSE, TRAIT_IMMOBILIZED), TRAIT_SOURCE_ABILITY("Burrow")) invisibility = FALSE + alpha = initial(alpha) anchored = FALSE playsound(loc, 'sound/effects/burrowoff.ogg', 25) for(var/mob/living/carbon/mob in loc) @@ -84,7 +86,7 @@ /mob/living/carbon/xenomorph/proc/do_burrow_cooldown() used_burrow = FALSE if(HAS_TRAIT(src, TRAIT_ABILITY_BURROWED)) - to_chat(src, SPAN_NOTICE("You can now surface.")) + to_chat(src, SPAN_NOTICE("We can now surface.")) for(var/X in actions) var/datum/action/act = X act.update_button_icon() @@ -95,38 +97,38 @@ return if(!HAS_TRAIT(src, TRAIT_ABILITY_BURROWED)) - to_chat(src, SPAN_NOTICE("You must be burrowed to do this.")) + to_chat(src, SPAN_NOTICE("We must be burrowed to do this.")) return if(tunnel) tunnel = FALSE - to_chat(src, SPAN_NOTICE("You stop tunneling.")) + to_chat(src, SPAN_NOTICE("We stop tunneling.")) used_tunnel = TRUE addtimer(CALLBACK(src, PROC_REF(do_tunnel_cooldown)), (caste ? caste.tunnel_cooldown : 5 SECONDS)) return if(used_tunnel) - to_chat(src, SPAN_NOTICE("You must wait some time to do this.")) + to_chat(src, SPAN_NOTICE("We must wait some time to do this.")) return if(!T) - to_chat(src, SPAN_NOTICE("You can't tunnel there!")) + to_chat(src, SPAN_NOTICE("We can't tunnel there!")) return if(T.density) - to_chat(src, SPAN_XENOWARNING("You can't tunnel into a solid wall!")) + to_chat(src, SPAN_XENOWARNING("We can't tunnel into a solid wall!")) return if(istype(T, /turf/open/space)) - to_chat(src, SPAN_XENOWARNING("You make tunnels, not wormholes!")) + to_chat(src, SPAN_XENOWARNING("We make tunnels, not wormholes!")) return if(clone) //Prevents tunnels in Z transition areas - to_chat(src, SPAN_XENOWARNING("You make tunnels, not wormholes!")) + to_chat(src, SPAN_XENOWARNING("We make tunnels, not wormholes!")) return var/area/A = get_area(T) - if(A.flags_area & AREA_NOTUNNEL) + if(A.flags_area & AREA_NOTUNNEL || get_dist(src, T) > 15) to_chat(src, SPAN_XENOWARNING("There's no way to tunnel over there.")) return @@ -134,13 +136,13 @@ if(O.density) if(O.flags_atom & ON_BORDER) continue - to_chat(src, SPAN_WARNING("There's something solid there to stop you emerging.")) + to_chat(src, SPAN_WARNING("There's something solid there to stop us from emerging.")) return if(!T || T.density) - to_chat(src, SPAN_NOTICE("You cannot tunnel to there!")) + to_chat(src, SPAN_NOTICE("We cannot tunnel to there!")) tunnel = TRUE - to_chat(src, SPAN_NOTICE("You start tunneling!")) + to_chat(src, SPAN_NOTICE("We start tunneling!")) tunnel_timer = (get_dist(src, T)*10) + world.time process_tunnel(T) @@ -156,14 +158,14 @@ addtimer(CALLBACK(src, PROC_REF(process_tunnel), T), 1 SECONDS) /mob/living/carbon/xenomorph/proc/do_tunnel(turf/T) - to_chat(src, SPAN_NOTICE("You tunnel to your destination.")) + to_chat(src, SPAN_NOTICE("We tunnel to the destination.")) anchored = FALSE forceMove(T) burrow_off() /mob/living/carbon/xenomorph/proc/do_tunnel_cooldown() used_tunnel = FALSE - to_chat(src, SPAN_NOTICE("You can now tunnel while burrowed.")) + to_chat(src, SPAN_NOTICE("We can now tunnel while burrowed.")) for(var/X in actions) var/datum/action/act = X act.update_button_icon() @@ -191,14 +193,14 @@ /mob/living/carbon/xenomorph/proc/tremor() //More support focused version of crusher earthquakes. if(HAS_TRAIT(src, TRAIT_ABILITY_BURROWED) || is_ventcrawling) - to_chat(src, SPAN_XENOWARNING("You must be above ground to do this.")) + to_chat(src, SPAN_XENOWARNING("We must be above ground to do this.")) return if(!check_state()) return if(used_tremor) - to_chat(src, SPAN_XENOWARNING("Your aren't ready to cause more tremors yet!")) + to_chat(src, SPAN_XENOWARNING("We aren't ready to cause more tremors yet!")) return if(!check_plasma(100)) return @@ -206,7 +208,7 @@ use_plasma(100) playsound(loc, 'sound/effects/alien_footstep_charge3.ogg', 75, 0) visible_message(SPAN_XENODANGER("[src] digs itself into the ground and shakes the earth itself, causing violent tremors!"), \ - SPAN_XENODANGER("You dig into the ground and shake it around, causing violent tremors!")) + SPAN_XENODANGER("We dig into the ground and shake it around, causing violent tremors!")) create_stomp() //Adds the visual effect. Wom wom wom used_tremor = 1 @@ -222,7 +224,7 @@ spawn(caste.tremor_cooldown) used_tremor = 0 - to_chat(src, SPAN_NOTICE("You gather enough strength to cause tremors again.")) + to_chat(src, SPAN_NOTICE("We gather enough strength to cause tremors again.")) for(var/X in actions) var/datum/action/act = X act.update_button_icon() diff --git a/code/modules/mob/living/carbon/xenomorph/abilities/carrier/carrier_powers.dm b/code/modules/mob/living/carbon/xenomorph/abilities/carrier/carrier_powers.dm index 1ee32225a40d..dae095f8630f 100644 --- a/code/modules/mob/living/carbon/xenomorph/abilities/carrier/carrier_powers.dm +++ b/code/modules/mob/living/carbon/xenomorph/abilities/carrier/carrier_powers.dm @@ -10,6 +10,10 @@ /datum/action/xeno_action/onclick/set_hugger_reserve/use_ability(atom/Atom) var/mob/living/carbon/xenomorph/carrier/carrier = owner - carrier.huggers_reserved = tgui_input_number(usr, "How many facehuggers would you like to keep safe from Observers wanting to join as facehuggers?", "How many to reserve?", 0, carrier.huggers_max, carrier.huggers_reserved) - to_chat(carrier, SPAN_XENONOTICE("You reserved [carrier.huggers_reserved] facehuggers for yourself.")) + carrier.huggers_reserved = tgui_input_number(usr, + "How many facehuggers would you like to keep safe from Observers wanting to join as facehuggers?", + "How many to reserve?", + carrier.huggers_reserved, carrier.huggers_max, 0 + ) + to_chat(carrier, SPAN_XENONOTICE("We reserve [carrier.huggers_reserved] facehuggers for ourself.")) return ..() diff --git a/code/modules/mob/living/carbon/xenomorph/abilities/crusher/crusher_abilities.dm b/code/modules/mob/living/carbon/xenomorph/abilities/crusher/crusher_abilities.dm index 63051a94efa9..4691d70321c3 100644 --- a/code/modules/mob/living/carbon/xenomorph/abilities/crusher/crusher_abilities.dm +++ b/code/modules/mob/living/carbon/xenomorph/abilities/crusher/crusher_abilities.dm @@ -39,7 +39,7 @@ macro_path = /datum/action/xeno_action/verb/verb_crusher_stomp action_type = XENO_ACTION_CLICK ability_primacy = XENO_PRIMARY_ACTION_2 - xeno_cooldown = 180 + xeno_cooldown = 18 SECONDS plasma_cost = 30 var/damage = 65 @@ -184,7 +184,7 @@ for(var/mob/living/carbon/human/Mob in Xeno.loc) if(Mob.body_position == LYING_DOWN && Mob.stat != DEAD) Xeno.visible_message(SPAN_DANGER("[Xeno] runs [Mob] over!"), - SPAN_DANGER("You run [Mob] over!") + SPAN_DANGER("We run [Mob] over!") ) var/ram_dir = pick(get_perpen_dir(Xeno.dir)) var/dist = 1 @@ -271,13 +271,13 @@ /datum/action/xeno_action/activable/tumble/proc/handle_mob_collision(mob/living/carbon/Mob) var/mob/living/carbon/xenomorph/Xeno = owner - Xeno.visible_message(SPAN_XENODANGER("[Xeno] Sweeps to the side, knocking down [Mob]!"), SPAN_XENODANGER("You knock over [Mob] as you sweep to the side!")) + Xeno.visible_message(SPAN_XENODANGER("[Xeno] Sweeps to the side, knocking down [Mob]!"), SPAN_XENODANGER("We knock over [Mob] as we sweep to the side!")) var/turf/target_turf = get_turf(Mob) playsound(Mob,'sound/weapons/alien_claw_block.ogg', 50, 1) Mob.apply_damage(15,BRUTE) if(ishuman(Mob)) var/mob/living/carbon/human/Human = Mob - xeno_throw_human(Human, Xeno, get_dir(Xeno, Human), 1) + Xeno.throw_carbon(Human, distance = 1) Human.apply_effect(1, WEAKEN) else Mob.apply_effect(1, WEAKEN) diff --git a/code/modules/mob/living/carbon/xenomorph/abilities/crusher/crusher_powers.dm b/code/modules/mob/living/carbon/xenomorph/abilities/crusher/crusher_powers.dm index 34a9a4833fec..e1af5e36a40f 100644 --- a/code/modules/mob/living/carbon/xenomorph/abilities/crusher/crusher_powers.dm +++ b/code/modules/mob/living/carbon/xenomorph/abilities/crusher/crusher_powers.dm @@ -25,10 +25,10 @@ X.emote("roar") L.apply_effect(2, WEAKEN) - X.visible_message(SPAN_XENODANGER("[X] overruns [H], brutally trampling them underfoot!"), SPAN_XENODANGER("You brutalize [H] as you crush them underfoot!")) + X.visible_message(SPAN_XENODANGER("[X] overruns [H], brutally trampling them underfoot!"), SPAN_XENODANGER("We brutalize [H] as we crush them underfoot!")) H.apply_armoured_damage(get_xeno_damage_slash(H, direct_hit_damage), ARMOR_MELEE, BRUTE) - xeno_throw_human(H, X, X.dir, 3) + X.throw_carbon(H, X.dir, 3) H.last_damage_data = create_cause_data(X.caste_type, X) return @@ -37,7 +37,7 @@ RegisterSignal(owner, COMSIG_XENO_PRE_CALCULATE_ARMOURED_DAMAGE_PROJECTILE, PROC_REF(check_directional_armor)) var/mob/living/carbon/xenomorph/xeno_owner = owner - if(!istype(xeno_owner) || xeno_owner.mutation_type != CRUSHER_NORMAL) + if(!istype(xeno_owner)) return var/datum/behavior_delegate/crusher_base/crusher_delegate = xeno_owner.behavior_delegate @@ -51,7 +51,7 @@ ..() UnregisterSignal(owner, COMSIG_XENO_PRE_CALCULATE_ARMOURED_DAMAGE_PROJECTILE) var/mob/living/carbon/xenomorph/xeno_owner = owner - if(!istype(xeno_owner) || xeno_owner.mutation_type != CRUSHER_NORMAL) + if(!istype(xeno_owner)) return var/datum/behavior_delegate/crusher_base/crusher_delegate = xeno_owner.behavior_delegate @@ -62,7 +62,7 @@ /datum/action/xeno_action/activable/pounce/crusher_charge/proc/undo_charging_icon() var/mob/living/carbon/xenomorph/xeno_owner = owner - if(!istype(xeno_owner) || xeno_owner.mutation_type != CRUSHER_NORMAL) + if(!istype(xeno_owner)) return var/datum/behavior_delegate/crusher_base/crusher_delegate = xeno_owner.behavior_delegate @@ -110,7 +110,7 @@ return playsound(get_turf(X), 'sound/effects/bang.ogg', 25, 0) - X.visible_message(SPAN_XENODANGER("[X] smashes into the ground!"), SPAN_XENODANGER("You smash into the ground!")) + X.visible_message(SPAN_XENODANGER("[X] smashes into the ground!"), SPAN_XENODANGER("We smash into the ground!")) X.create_stomp() for (var/mob/living/carbon/H in get_turf(X)) @@ -154,7 +154,7 @@ return playsound(get_turf(Xeno), 'sound/effects/bang.ogg', 25, 0) - Xeno.visible_message(SPAN_XENODANGER("[Xeno] smashes into the ground!"), SPAN_XENODANGER("You smash into the ground!")) + Xeno.visible_message(SPAN_XENODANGER("[Xeno] smashes into the ground!"), SPAN_XENODANGER("We smash into the ground!")) Xeno.create_stomp() for (var/mob/living/carbon/Human in get_turf(Xeno)) // MOBS ONTOP @@ -199,7 +199,7 @@ if (!check_and_use_plasma_owner()) return - xeno.visible_message(SPAN_XENOWARNING("[xeno] hunkers down and bolsters its defenses!"), SPAN_XENOHIGHDANGER("You hunker down and bolster your defenses!")) + xeno.visible_message(SPAN_XENOWARNING("[xeno] hunkers down and bolsters its defenses!"), SPAN_XENOHIGHDANGER("We hunker down and bolster our defenses!")) button.icon_state = "template_active" xeno.create_crusher_shield() @@ -223,7 +223,7 @@ xeno.explosivearmor_modifier -= 1000 xeno.recalculate_armor() - to_chat(xeno, SPAN_XENODANGER("Your immunity to explosion damage ends!")) + to_chat(xeno, SPAN_XENODANGER("Our immunity to explosion damage ends!")) /datum/action/xeno_action/onclick/crusher_shield/proc/remove_shield() var/mob/living/carbon/xenomorph/xeno = owner @@ -239,7 +239,7 @@ if (istype(found)) found.on_removal() qdel(found) - to_chat(xeno, SPAN_XENOHIGHDANGER("You feel your enhanced shield end!")) + to_chat(xeno, SPAN_XENOHIGHDANGER("We feel our enhanced shield end!")) button.icon_state = "template" xeno.overlay_shields() @@ -249,7 +249,7 @@ activated = !activated var/will_charge = "[activated ? "now" : "no longer"]" - to_chat(Xeno, SPAN_XENONOTICE("You will [will_charge] charge when moving.")) + to_chat(Xeno, SPAN_XENONOTICE("We will [will_charge] charge when moving.")) if(activated) RegisterSignal(Xeno, COMSIG_MOVABLE_MOVED, PROC_REF(handle_movement)) RegisterSignal(Xeno, COMSIG_LIVING_SET_BODY_POSITION, PROC_REF(handle_position_change)) @@ -294,7 +294,7 @@ if(!target_dir) return - Xeno.visible_message(SPAN_XENOWARNING("[Xeno] tumbles over to the side!"), SPAN_XENOHIGHDANGER("You tumble over to the side!")) + Xeno.visible_message(SPAN_XENOWARNING("[Xeno] tumbles over to the side!"), SPAN_XENOHIGHDANGER("We tumble over to the side!")) Xeno.spin(5,1) // note: This spins the sprite and DOES NOT affect directional armor var/start_charging = HAS_TRAIT(Xeno, TRAIT_CHARGING) SEND_SIGNAL(Xeno, COMSIG_XENO_STOP_MOMENTUM) @@ -302,17 +302,11 @@ playsound(Xeno,"alien_tail_swipe", 50, 1) Xeno.use_plasma(plasma_cost) - var/datum/launch_metadata/LM = new() - LM.target = get_step(get_step(Xeno, target_dir), target_dir) - LM.range = target_dist - LM.speed = SPEED_FAST - LM.thrower = Xeno - LM.spin = FALSE - LM.pass_flags = PASS_CRUSHER_CHARGE - LM.collision_callbacks = list(/mob/living/carbon/human = CALLBACK(src, PROC_REF(handle_mob_collision))) - LM.end_throw_callbacks = list(CALLBACK(src, PROC_REF(on_end_throw), start_charging)) - - Xeno.launch_towards(LM) + + var/target = get_step(get_step(Xeno, target_dir), target_dir) + var/list/collision_callbacks = list(/mob/living/carbon/human = CALLBACK(src, PROC_REF(handle_mob_collision))) + var/list/end_throw_callbacks = list(CALLBACK(src, PROC_REF(on_end_throw), start_charging)) + Xeno.throw_atom(target, target_dist, SPEED_FAST, launch_type = LOW_LAUNCH, pass_flags = PASS_CRUSHER_CHARGE, end_throw_callbacks = end_throw_callbacks, collision_callbacks = collision_callbacks) apply_cooldown() return ..() diff --git a/code/modules/mob/living/carbon/xenomorph/abilities/defender/defender_abilities.dm b/code/modules/mob/living/carbon/xenomorph/abilities/defender/defender_abilities.dm index 3949e4ac9b80..d28a4bb67978 100644 --- a/code/modules/mob/living/carbon/xenomorph/abilities/defender/defender_abilities.dm +++ b/code/modules/mob/living/carbon/xenomorph/abilities/defender/defender_abilities.dm @@ -18,7 +18,14 @@ macro_path = /datum/action/xeno_action/verb/verb_headbutt action_type = XENO_ACTION_CLICK ability_primacy = XENO_PRIMARY_ACTION_2 - xeno_cooldown = 40 + xeno_cooldown = 4 SECONDS + + var/base_damage = 30 + var/usable_while_fortified = FALSE + +/datum/action/xeno_action/activable/headbutt/steel_crest + base_damage = 37.5 + usable_while_fortified = TRUE /datum/action/xeno_action/onclick/tail_sweep name = "Tail Sweep" @@ -28,7 +35,7 @@ action_type = XENO_ACTION_ACTIVATE ability_primacy = XENO_PRIMARY_ACTION_3 plasma_cost = 10 - xeno_cooldown = 110 + xeno_cooldown = 11 SECONDS /datum/action/xeno_action/activable/fortify name = "Fortify" @@ -41,8 +48,9 @@ /// Extra armor when fortified and facing bullets. var/frontal_armor = 5 - /// Extra armor when steelcrest, fortified, and facing bullets. - var/steelcrest_frontal_armor = 15 + +/datum/action/xeno_action/activable/fortify/steel_crest + frontal_armor = 15 /datum/action/xeno_action/activable/tail_stab/slam name = "Tail Slam" diff --git a/code/modules/mob/living/carbon/xenomorph/abilities/defender/defender_powers.dm b/code/modules/mob/living/carbon/xenomorph/abilities/defender/defender_powers.dm index 0709f2b17717..d7a4f987623a 100644 --- a/code/modules/mob/living/carbon/xenomorph/abilities/defender/defender_powers.dm +++ b/code/modules/mob/living/carbon/xenomorph/abilities/defender/defender_powers.dm @@ -4,7 +4,7 @@ return if(xeno.fortify) - to_chat(xeno, SPAN_XENOWARNING("You cannot use abilities while fortified.")) + to_chat(xeno, SPAN_XENOWARNING("We cannot use abilities while fortified.")) return if(!xeno.check_state()) @@ -16,14 +16,16 @@ xeno.crest_defense = !xeno.crest_defense if(xeno.crest_defense) - to_chat(xeno, SPAN_XENOWARNING("You lower your crest.")) + to_chat(xeno, SPAN_XENOWARNING("We lower our crest.")) + xeno.ability_speed_modifier += speed_debuff xeno.armor_deflection_buff += armor_buff xeno.mob_size = MOB_SIZE_BIG //knockback immune button.icon_state = "template_active" xeno.update_icons() else - to_chat(xeno, SPAN_XENOWARNING("You raise your crest.")) + to_chat(xeno, SPAN_XENOWARNING("We raise our crest.")) + xeno.ability_speed_modifier -= speed_debuff xeno.armor_deflection_buff -= armor_buff xeno.mob_size = MOB_SIZE_XENO //no longer knockback immune @@ -36,7 +38,7 @@ // Defender Headbutt /datum/action/xeno_action/activable/headbutt/use_ability(atom/target_atom) var/mob/living/carbon/xenomorph/fendy = owner - if (!istype(fendy)) + if(!istype(fendy)) return if(!isxeno_human(target_atom) || fendy.can_not_harm(target_atom)) @@ -45,14 +47,14 @@ if(!fendy.check_state()) return - if (!action_cooldown_check()) + if(!action_cooldown_check()) return if(!check_and_use_plasma_owner()) return - if(fendy.fortify && !(fendy.mutation_type == DEFENDER_STEELCREST)) - to_chat(fendy, SPAN_XENOWARNING("You cannot use headbutt while fortified.")) + if(fendy.fortify && !usable_while_fortified) + to_chat(fendy, SPAN_XENOWARNING("We cannot use headbutt while fortified.")) return var/mob/living/carbon/carbone = target_atom @@ -75,30 +77,21 @@ carbone.last_damage_data = create_cause_data(fendy.caste_type, fendy) fendy.visible_message(SPAN_XENOWARNING("[fendy] rams [carbone] with its armored crest!"), \ - SPAN_XENOWARNING("You ram [carbone] with your armored crest!")) + SPAN_XENOWARNING("We ram [carbone] with our armored crest!")) - if(carbone.stat != DEAD && (!(carbone.status_flags & XENO_HOST) || !HAS_TRAIT(carbone, TRAIT_NESTED)) ) - var/h_damage = 30 - (fendy.crest_defense * 10) - if(fendy.mutation_type == DEFENDER_STEELCREST) - h_damage += 7.5 - carbone.apply_armoured_damage(get_xeno_damage_slash(carbone, h_damage), ARMOR_MELEE, BRUTE, "chest", 5) + if(carbone.stat != DEAD && (!(carbone.status_flags & XENO_HOST) || !HAS_TRAIT(carbone, TRAIT_NESTED))) + // -10 damage if their crest is down. + var/damage = base_damage - (fendy.crest_defense * 10) + carbone.apply_armoured_damage(get_xeno_damage_slash(carbone, damage), ARMOR_MELEE, BRUTE, "chest", 5) var/facing = get_dir(fendy, carbone) var/headbutt_distance = 1 + (fendy.crest_defense * 2) + (fendy.fortify * 2) - var/turf/thrown_turf = get_turf(fendy) - var/turf/temp = get_turf(fendy) - - for(var/x in 0 to headbutt_distance) - temp = get_step(thrown_turf, facing) - if(!temp) - break - thrown_turf = temp // Hmm today I will kill a marine while looking away from them fendy.face_atom(carbone) fendy.animation_attack_on(carbone) fendy.flick_attack_overlay(carbone, "punch") - carbone.throw_atom(thrown_turf, headbutt_distance, SPEED_SLOW, src) + fendy.throw_carbon(carbone, facing, headbutt_distance, SPEED_SLOW, shake_camera = FALSE, immobilize = FALSE) playsound(carbone,'sound/weapons/alien_claw_block.ogg', 50, 1) apply_cooldown() return ..() @@ -116,15 +109,15 @@ return if(xeno.fortify) - to_chat(src, SPAN_XENOWARNING("You cannot use tail swipe while fortified.")) + to_chat(src, SPAN_XENOWARNING("We cannot use tail swipe while fortified.")) return if(xeno.crest_defense) - to_chat(src, SPAN_XENOWARNING("You cannot use tail swipe with your crest lowered.")) + to_chat(src, SPAN_XENOWARNING("We cannot use tail swipe with our crest lowered.")) return xeno.visible_message(SPAN_XENOWARNING("[xeno] sweeps its tail in a wide circle!"), \ - SPAN_XENOWARNING("You sweep your tail in a wide circle!")) + SPAN_XENOWARNING("We sweep our tail in a wide circle!")) if(!check_and_use_plasma_owner()) return @@ -161,12 +154,8 @@ if (!istype(xeno)) return - if(xeno.crest_defense && xeno.mutation_type == DEFENDER_STEELCREST) - to_chat(src, SPAN_XENOWARNING("You cannot fortify while your crest is already down!")) - return - if(xeno.crest_defense) - to_chat(src, SPAN_XENOWARNING("You cannot use fortify with your crest lowered.")) + to_chat(src, SPAN_XENOWARNING("We cannot use fortify with our crest lowered.")) return if(!xeno.check_state()) @@ -178,11 +167,13 @@ playsound(get_turf(xeno), 'sound/effects/stonedoor_openclose.ogg', 30, 1) if(!xeno.fortify) - RegisterSignal(owner, COMSIG_MOB_DEATH, PROC_REF(death_check)) + RegisterSignal(owner, COMSIG_XENO_ENTER_CRIT, PROC_REF(unconscious_check)) + RegisterSignal(owner, COMSIG_MOB_DEATH, PROC_REF(unconscious_check)) fortify_switch(xeno, TRUE) if(xeno.selected_ability != src) button.icon_state = "template_active" else + UnregisterSignal(owner, COMSIG_XENO_ENTER_CRIT) UnregisterSignal(owner, COMSIG_MOB_DEATH) fortify_switch(xeno, FALSE) if(xeno.selected_ability != src) @@ -203,59 +194,67 @@ if(xeno.fortify) button.icon_state = "template_active" -/datum/action/xeno_action/activable/fortify/proc/fortify_switch(mob/living/carbon/xenomorph/X, fortify_state) - if(X.fortify == fortify_state) +/datum/action/xeno_action/activable/fortify/proc/fortify_switch(mob/living/carbon/xenomorph/xeno, fortify_state) + if(xeno.fortify == fortify_state) return if(fortify_state) - to_chat(X, SPAN_XENOWARNING("You tuck yourself into a defensive stance.")) - if(X.mutation_type == DEFENDER_STEELCREST) - X.armor_deflection_buff += 10 - X.armor_explosive_buff += 60 - X.ability_speed_modifier += 3 - X.damage_modifier -= XENO_DAMAGE_MOD_SMALL - else - X.armor_deflection_buff += 30 - X.armor_explosive_buff += 60 - ADD_TRAIT(X, TRAIT_IMMOBILIZED, TRAIT_SOURCE_ABILITY("Fortify")) - X.anchored = TRUE - X.small_explosives_stun = FALSE + to_chat(xeno, SPAN_XENOWARNING("We tuck ourself into a defensive stance.")) RegisterSignal(owner, COMSIG_XENO_PRE_CALCULATE_ARMOURED_DAMAGE_PROJECTILE, PROC_REF(check_directional_armor)) - X.mob_size = MOB_SIZE_IMMOBILE //knockback immune - X.mob_flags &= ~SQUEEZE_UNDER_VEHICLES - X.update_icons() - X.fortify = TRUE + xeno.mob_size = MOB_SIZE_IMMOBILE //knockback immune + xeno.mob_flags &= ~SQUEEZE_UNDER_VEHICLES + xeno.fortify = TRUE else - to_chat(X, SPAN_XENOWARNING("You resume your normal stance.")) - REMOVE_TRAIT(X, TRAIT_IMMOBILIZED, TRAIT_SOURCE_ABILITY("Fortify")) - X.anchored = FALSE - if(X.mutation_type == DEFENDER_STEELCREST) - X.armor_deflection_buff -= 10 - X.armor_explosive_buff -= 60 - X.ability_speed_modifier -= 3 - X.damage_modifier += XENO_DAMAGE_MOD_SMALL - else - X.armor_deflection_buff -= 30 - X.armor_explosive_buff -= 60 - X.small_explosives_stun = TRUE + to_chat(xeno, SPAN_XENOWARNING("We resume our normal stance.")) + REMOVE_TRAIT(xeno, TRAIT_IMMOBILIZED, TRAIT_SOURCE_ABILITY("Fortify")) + xeno.anchored = FALSE UnregisterSignal(owner, COMSIG_XENO_PRE_CALCULATE_ARMOURED_DAMAGE_PROJECTILE) - X.mob_size = MOB_SIZE_XENO //no longer knockback immune - X.mob_flags |= SQUEEZE_UNDER_VEHICLES - X.update_icons() - X.fortify = FALSE + xeno.mob_size = MOB_SIZE_XENO //no longer knockback immune + xeno.mob_flags |= SQUEEZE_UNDER_VEHICLES + xeno.fortify = FALSE + + apply_modifiers(xeno, fortify_state) + xeno.update_icons() + +/datum/action/xeno_action/activable/fortify/proc/apply_modifiers(mob/living/carbon/xenomorph/xeno, fortify_state) + if(fortify_state) + xeno.armor_deflection_buff += 30 + xeno.armor_explosive_buff += 60 + ADD_TRAIT(xeno, TRAIT_IMMOBILIZED, TRAIT_SOURCE_ABILITY("Fortify")) + xeno.anchored = TRUE + xeno.small_explosives_stun = FALSE + else + xeno.armor_deflection_buff -= 30 + xeno.armor_explosive_buff -= 60 + xeno.small_explosives_stun = TRUE + +// Steel crest override +/datum/action/xeno_action/activable/fortify/steel_crest/apply_modifiers(mob/living/carbon/xenomorph/xeno, fortify_state) + if(fortify_state) + xeno.armor_deflection_buff += 10 + xeno.armor_explosive_buff += 60 + xeno.ability_speed_modifier += 3 + xeno.damage_modifier -= XENO_DAMAGE_MOD_SMALL + else + xeno.armor_deflection_buff -= 10 + xeno.armor_explosive_buff -= 60 + xeno.ability_speed_modifier -= 3 + xeno.damage_modifier += XENO_DAMAGE_MOD_SMALL /datum/action/xeno_action/activable/fortify/proc/check_directional_armor(mob/living/carbon/xenomorph/defendy, list/damagedata) SIGNAL_HANDLER var/projectile_direction = damagedata["direction"] + // If the defender is facing the projectile. if(defendy.dir & REVERSE_DIR(projectile_direction)) - if(defendy.mutation_type == DEFENDER_STEELCREST) - damagedata["armor"] += steelcrest_frontal_armor - else - damagedata["armor"] += frontal_armor + damagedata["armor"] += frontal_armor -/datum/action/xeno_action/activable/fortify/proc/death_check() +/datum/action/xeno_action/activable/fortify/proc/unconscious_check() SIGNAL_HANDLER + if(QDELETED(owner)) + return + + UnregisterSignal(owner, COMSIG_XENO_ENTER_CRIT) UnregisterSignal(owner, COMSIG_MOB_DEATH) fortify_switch(owner, FALSE) @@ -274,9 +273,9 @@ RegisterSignal(steelcrest, COMSIG_XENO_TAKE_DAMAGE, PROC_REF(damage_accumulate)) addtimer(CALLBACK(src, PROC_REF(stop_accumulating)), 6 SECONDS) - steelcrest.balloon_alert(steelcrest, "begins to take in oncoming damage!") + steelcrest.balloon_alert(steelcrest, "begins to tank incoming damage!") - to_chat(steelcrest, SPAN_XENONOTICE("You begin to take in oncoming damage!")) + to_chat(steelcrest, SPAN_XENONOTICE("We begin to tank incoming damage!")) steelcrest.add_filter("steelcrest_enraging", 1, list("type" = "outline", "color" = "#421313", "size" = 1)) @@ -297,14 +296,14 @@ UnregisterSignal(owner, COMSIG_XENO_TAKE_DAMAGE) damage_accumulated = 0 - to_chat(owner, SPAN_XENONOTICE("You stop taking in oncoming damage.")) + to_chat(owner, SPAN_XENONOTICE("We stop taking incoming damage.")) owner.remove_filter("steelcrest_enraging") /datum/action/xeno_action/onclick/soak/proc/enraged() owner.remove_filter("steelcrest_enraging") owner.add_filter("steelcrest_enraged", 1, list("type" = "outline", "color" = "#ad1313", "size" = 1)) - owner.visible_message(SPAN_XENOWARNING("[owner] gets enraged after being damaged enough!"), SPAN_XENOWARNING("You feel enraged after taking in oncoming damage! Your tail slam's cooldown is reset and you heal!")) + owner.visible_message(SPAN_XENOWARNING("[owner] gets enraged after being damaged enough!"), SPAN_XENOWARNING("We feel enraged after taking in oncoming damage! Our tail slam's cooldown is reset and we heal!")) var/mob/living/carbon/xenomorph/enraged_mob = owner enraged_mob.gain_health(75) // pretty reasonable amount of health recovered @@ -321,4 +320,3 @@ /datum/action/xeno_action/onclick/soak/proc/remove_enrage() owner.remove_filter("steelcrest_enraged") - diff --git a/code/modules/mob/living/carbon/xenomorph/abilities/facehugger/facehugger_abilities.dm b/code/modules/mob/living/carbon/xenomorph/abilities/facehugger/facehugger_abilities.dm index 91bda707ec45..d60d292cba25 100644 --- a/code/modules/mob/living/carbon/xenomorph/abilities/facehugger/facehugger_abilities.dm +++ b/code/modules/mob/living/carbon/xenomorph/abilities/facehugger/facehugger_abilities.dm @@ -5,7 +5,7 @@ macro_path = /datum/action/xeno_action/verb/verb_pounce action_type = XENO_ACTION_CLICK ability_primacy = XENO_PRIMARY_ACTION_1 - xeno_cooldown = 30 + xeno_cooldown = 3 SECONDS plasma_cost = 0 // Config options @@ -17,3 +17,8 @@ freeze_time = 5 freeze_play_sound = FALSE can_be_shield_blocked = TRUE + +/datum/action/xeno_action/onclick/toggle_long_range/facehugger + handles_movement = FALSE + should_delay = FALSE + ability_primacy = XENO_PRIMARY_ACTION_3 diff --git a/code/modules/mob/living/carbon/xenomorph/abilities/facehugger/facehugger_powers.dm b/code/modules/mob/living/carbon/xenomorph/abilities/facehugger/facehugger_powers.dm index e76cc4322bdb..6eef21c6d5af 100644 --- a/code/modules/mob/living/carbon/xenomorph/abilities/facehugger/facehugger_powers.dm +++ b/code/modules/mob/living/carbon/xenomorph/abilities/facehugger/facehugger_powers.dm @@ -23,6 +23,24 @@ /datum/action/xeno_action/activable/pounce/facehugger/use_ability() for(var/obj/structure/machinery/door/airlock/current_airlock in get_turf(owner)) if(current_airlock.density) //if its CLOSED YOU'RE SCUTTLING AND CANNOT POUNCE!!! - to_chat(owner, SPAN_WARNING("You cannot do that while squeezing and scuttling!")) + to_chat(owner, SPAN_WARNING("We cannot do that while squeezing and scuttling!")) return FALSE + + if(HAS_TRAIT(owner, TRAIT_IMMOBILIZED)) + to_chat(owner, SPAN_WARNING("We cannot do that while immobilized!")) + return FALSE + return ..() + +/datum/action/xeno_action/onclick/toggle_long_range/facehugger/on_zoom_out() + . = ..() + + var/mob/living/carbon/xenomorph/facehugger/facehugger = owner + REMOVE_TRAIT(facehugger, TRAIT_IMMOBILIZED, TRAIT_SOURCE_ABILITY("Long-Range Sight")) + +/datum/action/xeno_action/onclick/toggle_long_range/facehugger/on_zoom_in() + . = ..() + + var/mob/living/carbon/xenomorph/facehugger/facehugger = owner + ADD_TRAIT(facehugger, TRAIT_IMMOBILIZED, TRAIT_SOURCE_ABILITY("Long-Range Sight")) + diff --git a/code/modules/mob/living/carbon/xenomorph/abilities/general_abilities.dm b/code/modules/mob/living/carbon/xenomorph/abilities/general_abilities.dm index 00a7ceaba97e..c5988f12539d 100644 --- a/code/modules/mob/living/carbon/xenomorph/abilities/general_abilities.dm +++ b/code/modules/mob/living/carbon/xenomorph/abilities/general_abilities.dm @@ -254,7 +254,7 @@ REMOVE_TRAIT(X, TRAIT_IMMOBILIZED, TRAIT_SOURCE_ABILITY("Pounce")) deltimer(freeze_timer_id) freeze_timer_id = TIMER_ID_NULL - to_chat(X, SPAN_XENONOTICE("Slashing frenzies you! You feel free to move immediately!")) + to_chat(X, SPAN_XENONOTICE("Slashing frenzies us! We feel free to move immediately!")) /// Any effects to apply to the xenomorph before the windup occurs /datum/action/xeno_action/activable/pounce/proc/pre_windup_effects() @@ -295,7 +295,9 @@ /datum/action/xeno_action/onclick/toggle_long_range/use_ability(atom/target) var/mob/living/carbon/xenomorph/xeno = owner - xeno.speed_modifier = initial(xeno.speed_modifier)// Reset the speed modifier should you be disrupted while zooming or whatnot + + if (!xeno.check_state()) + return if(xeno.observed_xeno) return @@ -304,7 +306,7 @@ xeno.zoom_out() // will call on_zoom_out() return xeno.visible_message(SPAN_NOTICE("[xeno] starts looking off into the distance."), \ - SPAN_NOTICE("You start focusing your sight to look off into the distance."), null, 5) + SPAN_NOTICE("We start focusing our sight to look off into the distance."), null, 5) if (should_delay) if(!do_after(xeno, delay, INTERRUPT_NO_NEEDHAND, BUSY_ICON_GENERIC)) return if(xeno.is_zoomed) @@ -321,12 +323,15 @@ /datum/action/xeno_action/onclick/toggle_long_range/proc/on_zoom_out() var/mob/living/carbon/xenomorph/xeno = owner xeno.visible_message(SPAN_NOTICE("[xeno] stops looking off into the distance."), \ - SPAN_NOTICE("You stop looking off into the distance."), null, 5) + SPAN_NOTICE("We stop looking off into the distance."), null, 5) if(movement_slowdown) xeno.speed_modifier -= movement_slowdown xeno.recalculate_speed() button.icon_state = "template" +/datum/action/xeno_action/onclick/toggle_long_range/proc/on_zoom_in() + return + /datum/action/xeno_action/onclick/toggle_long_range/proc/handle_mob_move_or_look(mob/living/carbon/xenomorph/xeno, actually_moving, direction, specific_direction) SIGNAL_HANDLER movement_buffer-- @@ -394,10 +399,12 @@ /// remove hide and apply modified attack cooldown /datum/action/xeno_action/onclick/xenohide/proc/post_attack() var/mob/living/carbon/xenomorph/xeno = owner + UnregisterSignal(xeno, COMSIG_MOB_STATCHANGE) if(xeno.layer == XENO_HIDING_LAYER) xeno.layer = initial(xeno.layer) button.icon_state = "template" xeno.update_wounds() + xeno.update_layer() apply_cooldown(4) //2 second cooldown after attacking /datum/action/xeno_action/onclick/xenohide/give_to(mob/living/living_mob) @@ -422,7 +429,7 @@ action_type = XENO_ACTION_CLICK ability_primacy = XENO_PRIMARY_ACTION_5 -/datum/action/xeno_action/activable/place_construction/queen_macro //so it doesn't screw other macros up +/datum/action/xeno_action/activable/place_construction/not_primary //so it doesn't screw other macros up ability_primacy = XENO_NOT_PRIMARY_ACTION /datum/action/xeno_action/activable/xeno_spit @@ -432,7 +439,7 @@ macro_path = /datum/action/xeno_action/verb/verb_xeno_spit action_type = XENO_ACTION_CLICK ability_primacy = XENO_PRIMARY_ACTION_1 - cooldown_message = "You feel your neurotoxin glands swell with ichor. You can spit again." + cooldown_message = "We feel our neurotoxin glands swell with ichor. We can spit again." xeno_cooldown = 60 SECONDS /// Var that keeps track of in-progress wind-up spits like Bombard to prevent spitting multiple spits at the same time @@ -495,6 +502,7 @@ ability_name = "view tacmap" var/mob/living/carbon/xenomorph/queen/tracked_queen + var/hivenumber /datum/action/xeno_action/onclick/tacmap/Destroy() tracked_queen = null @@ -503,6 +511,7 @@ /datum/action/xeno_action/onclick/tacmap/give_to(mob/living/carbon/xenomorph/xeno) . = ..() + hivenumber = xeno.hive.hivenumber RegisterSignal(xeno.hive, COMSIG_HIVE_NEW_QUEEN, PROC_REF(handle_new_queen)) if(!xeno.hive.living_xeno_queen) @@ -514,6 +523,10 @@ handle_new_queen(new_queen = xeno.hive.living_xeno_queen) +/datum/action/xeno_action/onclick/tacmap/remove_from(mob/living/carbon/xenomorph/xeno) + . = ..() + UnregisterSignal(GLOB.hive_datum[hivenumber], COMSIG_HIVE_NEW_QUEEN) + /// handles the addition of a new queen, hiding if appropriate /datum/action/xeno_action/onclick/tacmap/proc/handle_new_queen(datum/hive_status/hive, mob/living/carbon/xenomorph/queen/new_queen) SIGNAL_HANDLER @@ -553,3 +566,18 @@ var/mob/living/carbon/xenomorph/xeno = owner xeno.xeno_tacmap() return ..() + +/datum/action/xeno_action/active_toggle/toggle_meson_vision + name = "Toggle Meson Vision" + action_icon_state = "project_xeno" + plasma_cost = 0 + action_type = XENO_ACTION_CLICK + ability_primacy = XENO_PRIMARY_ACTION_5 + +/datum/action/xeno_action/active_toggle/toggle_meson_vision/enable_toggle() + . = ..() + owner.sight |= SEE_TURFS + +/datum/action/xeno_action/active_toggle/toggle_meson_vision/disable_toggle() + . = ..() + owner.sight &= ~SEE_TURFS diff --git a/code/modules/mob/living/carbon/xenomorph/abilities/general_powers.dm b/code/modules/mob/living/carbon/xenomorph/abilities/general_powers.dm index 74a46a30e9ba..014cb3d2f24b 100644 --- a/code/modules/mob/living/carbon/xenomorph/abilities/general_powers.dm +++ b/code/modules/mob/living/carbon/xenomorph/abilities/general_powers.dm @@ -15,11 +15,11 @@ var/turf/turf = xeno.loc if(!istype(turf)) - to_chat(xeno, SPAN_WARNING("You can't do that here.")) + to_chat(xeno, SPAN_WARNING("We can't do that here.")) return if(turf.density) - to_chat(xeno, SPAN_WARNING("You can't do that here.")) + to_chat(xeno, SPAN_WARNING("We can't do that here.")) return var/is_weedable = turf.is_weedable() @@ -37,7 +37,7 @@ var/obj/effect/alien/resin/trap/resin_trap = locate() in turf if(resin_trap) - to_chat(xeno, SPAN_WARNING("You can't weed on top of a trap!")) + to_chat(xeno, SPAN_WARNING("We can't weed on top of a trap!")) return var/obj/effect/alien/weeds/weed = node || locate() in turf @@ -47,7 +47,7 @@ for(var/obj/structure/struct in turf) if(struct.density && !(struct.flags_atom & ON_BORDER)) // Not sure exactly if we need to test against ON_BORDER though - to_chat(xeno, SPAN_WARNING("You can't do that here.")) + to_chat(xeno, SPAN_WARNING("We can't do that here.")) return var/area/area = get_area(turf) @@ -66,7 +66,7 @@ to_convert = node.children.Copy() xeno.visible_message(SPAN_XENONOTICE("\The [xeno] regurgitates a pulsating node and plants it on the ground!"), \ - SPAN_XENONOTICE("You regurgitate a pulsating node and plant it on the ground!"), null, 5) + SPAN_XENONOTICE("We regurgitate a pulsating node and plant it on the ground!"), null, 5) var/obj/effect/alien/weeds/node/new_node = new node_type(xeno.loc, src, xeno) if(to_convert) @@ -78,6 +78,7 @@ playsound(xeno.loc, "alien_resin_build", 25) apply_cooldown() + SEND_SIGNAL(xeno, COMSIG_XENO_PLANT_RESIN_NODE) return ..() /mob/living/carbon/xenomorph/lay_down() @@ -86,15 +87,15 @@ return if(fortify) - to_chat(src, SPAN_WARNING("You cannot rest while fortified!")) + to_chat(src, SPAN_WARNING("We cannot rest while fortified!")) return if(HAS_TRAIT(src, TRAIT_ABILITY_BURROWED)) - to_chat(src, SPAN_WARNING("You cannot rest while burrowed!")) + to_chat(src, SPAN_WARNING("We cannot rest while burrowed!")) return if(crest_defense) - to_chat(src, SPAN_WARNING("You cannot rest while your crest is down!")) + to_chat(src, SPAN_WARNING("We cannot rest while our crest is down!")) return return ..() @@ -110,14 +111,14 @@ var/mob/living/carbon/xenomorph/X = owner if(!X.check_state()) return - for(var/i in 1 to X.caste.spit_types.len) + for(var/i in 1 to length(X.caste.spit_types)) if(X.ammo == GLOB.ammo_list[X.caste.spit_types[i]]) - if(i == X.caste.spit_types.len) + if(i == length(X.caste.spit_types)) X.ammo = GLOB.ammo_list[X.caste.spit_types[1]] else X.ammo = GLOB.ammo_list[X.caste.spit_types[i+1]] break - to_chat(X, SPAN_NOTICE("You will now spit [X.ammo.name] ([X.ammo.spit_cost] plasma).")) + to_chat(X, SPAN_NOTICE("We will now spit [X.ammo.name] ([X.ammo.spit_cost] plasma).")) button.overlays.Cut() button.overlays += image('icons/mob/hud/actions_xeno.dmi', button, "shift_spit_[X.ammo.icon_state]") return ..() @@ -128,10 +129,10 @@ return if(!isturf(X.loc)) - to_chat(X, SPAN_WARNING("You cannot regurgitate here.")) + to_chat(X, SPAN_WARNING("We cannot regurgitate here.")) return - if(X.stomach_contents.len) + if(length(X.stomach_contents)) for(var/mob/living/M in X.stomach_contents) // Also has good reason to be a proc on all Xenos X.regurgitate(M, TRUE) @@ -223,7 +224,7 @@ return var/datum/resin_construction/resin_construction = GLOB.resin_constructions_list[selected_type] if(to_chat) - to_chat(usr, SPAN_NOTICE("You will now build [resin_construction.construction_name]\s when secreting resin.")) + to_chat(usr, SPAN_NOTICE("We will now build [resin_construction.construction_name]\s when secreting resin.")) button.overlays.Cut() button.overlays += image('icons/mob/hud/actions_xeno.dmi', button, resin_construction.construction_name) @@ -265,7 +266,7 @@ return FALSE if(ismob(A)) //anticheese : if they click a mob, it will cancel. - to_chat(X, SPAN_XENOWARNING("You can't place resin markers on living things!")) + to_chat(X, SPAN_XENOWARNING("We can't place resin markers on living things!")) return FALSE //this is because xenos have thermal vision and can see mobs through walls - which would negate not being able to place them through walls if(isstorage(A.loc) || X.contains(A) || istype(A, /atom/movable/screen)) return FALSE @@ -275,7 +276,7 @@ to_chat(X, SPAN_XENOWARNING("This area is too far away to affect!")) return if(!X.hive.living_xeno_queen || X.hive.living_xeno_queen.z != X.z) - to_chat(X, SPAN_XENOWARNING("You have no queen, the psychic link is gone!")) + to_chat(X, SPAN_XENOWARNING("We have no queen, the psychic link is gone!")) return var/tally = 0 @@ -284,7 +285,7 @@ if(MRK.createdby == X.nicknumber) tally++ if(tally >= max_markers) - to_chat(X, SPAN_XENOWARNING("You have reached the maximum number of resin marks.")) + to_chat(X, SPAN_XENOWARNING("We have reached the maximum number of resin marks.")) var/list/promptlist = list("Yes", "No") var/obj/effect/alien/resin/marker/Goober = null var/promptuser = null @@ -326,16 +327,16 @@ if(!check_state(TRUE)) return if(!(locate(/datum/action/xeno_action/onclick/emit_pheromones) in actions)) - to_chat(src, SPAN_XENOWARNING("You are incapable of emitting pheromones!")) + to_chat(src, SPAN_XENOWARNING("We are incapable of emitting pheromones!")) return if(!pheromone) if(current_aura) current_aura = null visible_message(SPAN_XENOWARNING("\The [src] stops emitting pheromones."), \ - SPAN_XENOWARNING("You stop emitting pheromones."), null, 5) + SPAN_XENOWARNING("We stop emitting pheromones."), null, 5) else if(!check_plasma(emit_cost)) - to_chat(src, SPAN_XENOWARNING("You do not have enough plasma!")) + to_chat(src, SPAN_XENOWARNING("We do not have enough plasma!")) return if(client.prefs && client.prefs.no_radials_preference) pheromone = tgui_input_list(src, "Choose a pheromone", "Pheromone Menu", caste.aura_allowed + "help" + "cancel", theme="hive_status") @@ -354,18 +355,19 @@ return if(pheromone) if(pheromone == current_aura) - to_chat(src, SPAN_XENOWARNING("You are already emitting [pheromone] pheromones!")) + to_chat(src, SPAN_XENOWARNING("We are already emitting [pheromone] pheromones!")) return if(!check_plasma(emit_cost)) - to_chat(src, SPAN_XENOWARNING("You do not have enough plasma!")) + to_chat(src, SPAN_XENOWARNING("We do not have enough plasma!")) return use_plasma(emit_cost) current_aura = pheromone visible_message(SPAN_XENOWARNING("\The [src] begins to emit strange-smelling pheromones."), \ - SPAN_XENOWARNING("You begin to emit '[pheromone]' pheromones."), null, 5) + SPAN_XENOWARNING("We begin to emit '[pheromone]' pheromones."), null, 5) + SEND_SIGNAL(src, COMSIG_XENO_START_EMIT_PHEROMONES, pheromone) playsound(loc, "alien_drool", 25) - if(isqueen(src) && hive && hive.xeno_leader_list.len && anchored) + if(isqueen(src) && hive && length(hive.xeno_leader_list) && anchored) for(var/mob/living/carbon/xenomorph/L in hive.xeno_leader_list) L.handle_xeno_leader_pheromones() @@ -382,14 +384,14 @@ return if(!isturf(X.loc)) - to_chat(X, SPAN_XENOWARNING("You can't [ability_name] from here!")) + to_chat(X, SPAN_XENOWARNING("We can't [ability_name] from here!")) return if(!X.check_state()) return if(X.legcuffed) - to_chat(X, SPAN_XENODANGER("You can't [ability_name] with that thing on your leg!")) + to_chat(X, SPAN_XENODANGER("We can't [ability_name] with that thing on our leg!")) return if(!check_and_use_plasma_owner()) @@ -416,7 +418,7 @@ pre_windup_effects() if (!do_after(X, windup_duration, INTERRUPT_NO_NEEDHAND, BUSY_ICON_HOSTILE)) - to_chat(X, SPAN_XENODANGER("You cancel your [ability_name]!")) + to_chat(X, SPAN_XENODANGER("We cancel our [ability_name]!")) if (!windup_interruptable) REMOVE_TRAIT(X, TRAIT_IMMOBILIZED, TRAIT_SOURCE_ABILITY("Pounce")) X.anchored = FALSE @@ -428,23 +430,12 @@ X.anchored = FALSE post_windup_effects() - X.visible_message(SPAN_XENOWARNING("\The [X] [ability_name][findtext(ability_name, "e", -1) || findtext(ability_name, "p", -1) ? "s" : "es"] at [A]!"), SPAN_XENOWARNING("You [ability_name] at [A]!")) + X.visible_message(SPAN_XENOWARNING("\The [X] [ability_name][findtext(ability_name, "e", -1) || findtext(ability_name, "p", -1) ? "s" : "es"] at [A]!"), SPAN_XENOWARNING("We [ability_name] at [A]!")) pre_pounce_effects() X.pounce_distance = get_dist(X, A) - - var/datum/launch_metadata/LM = new() - LM.target = A - LM.range = distance - LM.speed = throw_speed - LM.thrower = X - LM.spin = FALSE - LM.pass_flags = pounce_pass_flags - LM.collision_callbacks = pounce_callbacks - - X.launch_towards(LM) - + X.throw_atom(A, distance, throw_speed, X, launch_type = LOW_LAUNCH, pass_flags = pounce_pass_flags, collision_callbacks = pounce_callbacks) X.update_icons() additional_effects_always() @@ -465,7 +456,7 @@ return if(!isturf(X.loc)) - to_chat(X, SPAN_XENOWARNING("You can't [ability_name] from here!")) + to_chat(X, SPAN_XENOWARNING("We can't [ability_name] from here!")) return if(!X.check_state() || X.action_busy) @@ -473,7 +464,7 @@ if (activation_delay) if(!do_after(X, activation_delay_length, INTERRUPT_NO_NEEDHAND, BUSY_ICON_HOSTILE)) - to_chat(X, SPAN_XENOWARNING("You decide to cancel your acid spray.")) + to_chat(X, SPAN_XENOWARNING("We decide to cancel our acid spray.")) end_cooldown() return @@ -486,13 +477,13 @@ return playsound(get_turf(X), 'sound/effects/refill.ogg', 25, 1) - X.visible_message(SPAN_XENOWARNING("[X] vomits a flood of acid!"), SPAN_XENOWARNING("You vomit a flood of acid!"), null, 5) + X.visible_message(SPAN_XENOWARNING("[X] vomits a flood of acid!"), SPAN_XENOWARNING("We vomit a flood of acid!"), null, 5) apply_cooldown() // Build our list of target turfs based on if (spray_type == ACID_SPRAY_LINE) - X.do_acid_spray_line(getline2(X, A, include_from_atom = FALSE), spray_effect_type, spray_distance) + X.do_acid_spray_line(get_line(X, A, include_start_atom = FALSE), spray_effect_type, spray_distance) else if (spray_type == ACID_SPRAY_CONE) X.do_acid_spray_cone(get_turf(A), spray_effect_type, spray_distance) @@ -509,16 +500,23 @@ return if(xeno.layer != XENO_HIDING_LAYER) xeno.layer = XENO_HIDING_LAYER - to_chat(xeno, SPAN_NOTICE("You are now hiding.")) + to_chat(xeno, SPAN_NOTICE("We are now hiding.")) button.icon_state = "template_active" + RegisterSignal(xeno, COMSIG_MOB_STATCHANGE, PROC_REF(unhide_on_stat)) else xeno.layer = initial(xeno.layer) - to_chat(xeno, SPAN_NOTICE("You have stopped hiding.")) + to_chat(xeno, SPAN_NOTICE("We have stopped hiding.")) button.icon_state = "template" + UnregisterSignal(xeno, COMSIG_MOB_STATCHANGE) xeno.update_wounds() apply_cooldown() return ..() +/datum/action/xeno_action/onclick/xenohide/proc/unhide_on_stat(mob/living/carbon/xenomorph/source, new_stat, old_stat) + SIGNAL_HANDLER + if(!QDELETED(source) && (new_stat >= UNCONSCIOUS && old_stat <= UNCONSCIOUS)) + post_attack() + /datum/action/xeno_action/onclick/place_trap/use_ability(atom/A) var/mob/living/carbon/xenomorph/X = owner if(!X.check_state()) @@ -531,17 +529,17 @@ var/turf/T = get_turf(X) if(!istype(T)) - to_chat(X, SPAN_XENOWARNING("You can't do that here.")) + to_chat(X, SPAN_XENOWARNING("We can't do that here.")) return var/area/AR = get_area(T) if(istype(AR,/area/shuttle/drop1/lz1) || istype(AR,/area/shuttle/drop2/lz2) || SSinterior.in_interior(owner)) - to_chat(X, SPAN_WARNING("You sense this is not a suitable area for creating a resin hole.")) + to_chat(X, SPAN_WARNING("We sense this is not a suitable area for creating a resin hole.")) return var/obj/effect/alien/weeds/alien_weeds = T.check_xeno_trap_placement(X) if(!alien_weeds) return if(istype(alien_weeds, /obj/effect/alien/weeds/node)) - to_chat(X, SPAN_NOTICE("You start uprooting the node so you can put the resin hole in its place...")) + to_chat(X, SPAN_NOTICE("We start uprooting the node so we can put the resin hole in its place...")) if(!do_after(X, 1 SECONDS, INTERRUPT_ALL, BUSY_ICON_GENERIC, target, INTERRUPT_ALL)) return if(!T.check_xeno_trap_placement(X)) @@ -557,28 +555,28 @@ X.use_plasma(plasma_cost) playsound(X.loc, "alien_resin_build", 25) new /obj/effect/alien/resin/trap(T, X) - to_chat(X, SPAN_XENONOTICE("You place a resin hole on the weeds, it still needs a sister to fill it with acid.")) + to_chat(X, SPAN_XENONOTICE("We place a resin hole on the weeds, it still needs a sister to fill it with acid.")) return ..() /turf/proc/check_xeno_trap_placement(mob/living/carbon/xenomorph/X) if(is_weedable() < FULLY_WEEDABLE || !can_xeno_build(src)) - to_chat(X, SPAN_XENOWARNING("You can't do that here.")) + to_chat(X, SPAN_XENOWARNING("We can't do that here.")) return FALSE var/obj/effect/alien/weeds/alien_weeds = locate() in src if(!alien_weeds) - to_chat(X, SPAN_XENOWARNING("You can only shape on weeds. Find some resin before you start building!")) + to_chat(X, SPAN_XENOWARNING("We can only shape on weeds. We must find some resin before we start building!")) return FALSE // This snowflake check exists because stairs specifically are indestructable, tile-covering, and cannot be moved, which allows resin holes to be // planted under them without any possible counterplay. In the future if resin holes stop being able to be hidden under objects, remove this check. var/obj/structure/stairs/staircase = locate() in src if(staircase) - to_chat(X, SPAN_XENOWARNING("You cannot make a hole beneath a staircase!")) + to_chat(X, SPAN_XENOWARNING("We cannot make a hole beneath a staircase!")) return FALSE if(alien_weeds.linked_hive.hivenumber != X.hivenumber) - to_chat(X, SPAN_XENOWARNING("These weeds don't belong to your hive!")) + to_chat(X, SPAN_XENOWARNING("These weeds don't belong to our hive!")) return FALSE if(!X.check_alien_construction(src, check_doors = TRUE)) @@ -638,13 +636,14 @@ to_chat(X, SPAN_WARNING("The weeds are still recovering from the death of the hive core, wait until the weeds have recovered!")) return FALSE if(X.hive.has_structure(XENO_STRUCTURE_CORE) || !X.hive.can_build_structure(XENO_STRUCTURE_CORE)) - choice = tgui_input_list(X, "Choose a structure to build", "Build structure", X.hive.hive_structure_types + "help", theme="hive_status") + choice = tgui_input_list(X, "Choose a structure to build", "Build structure", X.hive.hive_structure_types + "help", theme = "hive_status") if(!choice) return if(choice == "help") - var/message = "
            Placing a construction node creates a template for special structures that can benefit the hive, which require the insertion of [MATERIAL_CRYSTAL] to construct the following:
            " + var/message = "Placing a construction node creates a template for special structures that can benefit the hive, which require the insertion of plasma to construct the following:
            " for(var/structure_name in X.hive.hive_structure_types) - message += "[get_xeno_structure_desc(structure_name)]
            " + var/datum/construction_template/xenomorph/structure_type = X.hive.hive_structure_types[structure_name] + message += "[capitalize_first_letters(structure_name)] - [initial(structure_type.description)]
            " to_chat(X, SPAN_NOTICE(message)) return TRUE if(!X.check_state(TRUE) || !X.check_plasma(400)) @@ -652,39 +651,35 @@ var/structure_type = X.hive.hive_structure_types[choice] var/datum/construction_template/xenomorph/structure_template = new structure_type() - if(!spacecheck(X,T,structure_template)) + if(!spacecheck(X, T, structure_template)) return FALSE if(!do_after(X, XENO_STRUCTURE_BUILD_TIME, INTERRUPT_NO_NEEDHAND|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD)) return FALSE - if(!spacecheck(X,T,structure_template)) //doublechecking + if(!spacecheck(X, T, structure_template)) //doublechecking return FALSE if((choice == XENO_STRUCTURE_CORE) && isqueen(X) && X.hive.has_structure(XENO_STRUCTURE_CORE)) if(X.hive.hive_location.hardcore || world.time > XENOMORPH_PRE_SETUP_CUTOFF) - to_chat(X, SPAN_WARNING("You can't rebuild this structure!")) - return - if(alert(X, "Are you sure that you want to move the hive and destroy the old hive core?", , "Yes", "No") != "Yes") - return + to_chat(X, SPAN_WARNING("We can't rebuild this structure!")) + return FALSE + if(alert(X, "Are we sure that we want to move the hive and destroy the old hive core?", , "Yes", "No") != "Yes") + return FALSE qdel(X.hive.hive_location) else if(!X.hive.can_build_structure(choice)) - to_chat(X, SPAN_WARNING("You can't build any more [choice]s for the hive.")) - return FALSE - - if(!X.hive.can_build_structure(structure_template.name) && !(choice == XENO_STRUCTURE_CORE)) - to_chat(X, SPAN_WARNING("You cannot build any more [structure_template.name]!")) + to_chat(X, SPAN_WARNING("We can't build any more [choice]s for the hive.")) qdel(structure_template) return FALSE - if (QDELETED(T)) - to_chat(X, SPAN_WARNING("You cannot build here!")) + if(QDELETED(T)) + to_chat(X, SPAN_WARNING("We cannot build here!")) qdel(structure_template) return FALSE var/queen_on_zlevel = !X.hive.living_xeno_queen || X.hive.living_xeno_queen.z == T.z if(!queen_on_zlevel) - to_chat(X, SPAN_WARNING("Your link to the Queen is too weak here. She is on another world.")) + to_chat(X, SPAN_WARNING("Our link to the Queen is too weak here. She is on another world.")) qdel(structure_template) return FALSE @@ -713,23 +708,23 @@ /datum/action/xeno_action/activable/place_construction/proc/spacecheck(mob/living/carbon/xenomorph/X, turf/T, datum/construction_template/xenomorph/tem) if(tem.block_range) - for(var/turf/TA in range(T, tem.block_range)) + for(var/turf/TA in range(tem.block_range, T)) if(!X.check_alien_construction(TA, FALSE, TRUE)) - to_chat(X, SPAN_WARNING("You need more open space to build here.")) + to_chat(X, SPAN_WARNING("We need more open space to build here.")) qdel(tem) return FALSE if(!X.check_alien_construction(T)) - to_chat(X, SPAN_WARNING("You need more open space to build here.")) + to_chat(X, SPAN_WARNING("We need more open space to build here.")) qdel(tem) return FALSE var/obj/effect/alien/weeds/alien_weeds = locate() in T if(!alien_weeds || alien_weeds.weed_strength < WEED_LEVEL_HIVE || alien_weeds.linked_hive.hivenumber != X.hivenumber) - to_chat(X, SPAN_WARNING("You can only shape on [lowertext(GLOB.hive_datum[X.hivenumber].prefix)]hive weeds. Find a hive node or core before you start building!")) + to_chat(X, SPAN_WARNING("We can only shape on [lowertext(GLOB.hive_datum[X.hivenumber].prefix)]hive weeds. We must find a hive node or core before we start building!")) qdel(tem) return FALSE if(T.density) qdel(tem) - to_chat(X, SPAN_WARNING("You need an empty space to build this.")) + to_chat(X, SPAN_WARNING("We need empty space to build this.")) return FALSE return TRUE @@ -740,15 +735,15 @@ return if(spitting) - to_chat(src, SPAN_WARNING("You are already preparing a spit!")) + to_chat(src, SPAN_WARNING("We are already preparing a spit!")) return if(!isturf(xeno.loc)) - to_chat(src, SPAN_WARNING("You can't spit from here!")) + to_chat(src, SPAN_WARNING("We can't spit from here!")) return if(!action_cooldown_check()) - to_chat(src, SPAN_WARNING("You must wait for your spit glands to refill.")) + to_chat(src, SPAN_WARNING("We must wait for our spit glands to refill.")) return var/turf/current_turf = get_turf(xeno) @@ -763,11 +758,11 @@ spitting = TRUE if(xeno.ammo.pre_spit_warn) playsound(xeno.loc,"alien_drool", 55, 1) - to_chat(xeno, SPAN_WARNING("You begin to prepare a large spit!")) + to_chat(xeno, SPAN_WARNING("We begin to prepare a large spit!")) xeno.visible_message(SPAN_WARNING("[xeno] prepares to spit a massive glob!"),\ - SPAN_WARNING("You begin to spit [xeno.ammo.name]!")) + SPAN_WARNING("We begin to spit [xeno.ammo.name]!")) if (!do_after(xeno, xeno.ammo.spit_windup, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_HOSTILE)) - to_chat(xeno, SPAN_XENODANGER("You decide to cancel your spit.")) + to_chat(xeno, SPAN_XENODANGER("We decide to cancel our spit.")) spitting = FALSE return plasma_cost = xeno.ammo.spit_cost @@ -779,7 +774,7 @@ xeno_cooldown = xeno.caste.spit_delay + xeno.ammo.added_spit_delay xeno.visible_message(SPAN_XENOWARNING("[xeno] spits at [atom]!"), \ - SPAN_XENOWARNING("You spit a [xeno.ammo.name] at [atom]!") ) + SPAN_XENOWARNING("We spit [xeno.ammo.name] at [atom]!") ) playsound(xeno.loc, sound_to_play, 25, 1) var/obj/projectile/proj = new (current_turf, create_cause_data(xeno.ammo.name, xeno)) @@ -804,7 +799,7 @@ var/turf/T = get_turf(A) if(isnull(T) || istype(T, /turf/closed) || !T.can_bombard(owner)) - to_chat(X, SPAN_XENODANGER("You can't bombard that!")) + to_chat(X, SPAN_XENODANGER("We can't bombard that!")) return FALSE if (!check_plasma_owner()) @@ -818,9 +813,9 @@ if (!X.can_bombard_turf(T, range, bombard_source)) return FALSE - X.visible_message(SPAN_XENODANGER("[X] digs itself into place!"), SPAN_XENODANGER("You dig yourself into place!")) + X.visible_message(SPAN_XENODANGER("[X] digs itself into place!"), SPAN_XENODANGER("We dig ourself into place!")) if (!do_after(X, activation_delay, interrupt_flags, BUSY_ICON_HOSTILE)) - to_chat(X, SPAN_XENODANGER("You decide to cancel your bombard.")) + to_chat(X, SPAN_XENODANGER("We decide to cancel our bombard.")) return FALSE if (!X.can_bombard_turf(T, range, bombard_source)) //Second check in case something changed during the do_after. @@ -913,7 +908,7 @@ var/mob/living/carbon/xenomorph/stabbing_xeno = owner if(HAS_TRAIT(stabbing_xeno, TRAIT_ABILITY_BURROWED) || stabbing_xeno.is_ventcrawling) - to_chat(stabbing_xeno, SPAN_XENOWARNING("You must be above ground to do this.")) + to_chat(stabbing_xeno, SPAN_XENOWARNING("We must be above ground to do this.")) return if(!stabbing_xeno.check_state()) @@ -934,21 +929,21 @@ if(distance > 2) return FALSE - var/list/turf/path = getline2(stabbing_xeno, targetted_atom, include_from_atom = FALSE) + var/list/turf/path = get_line(stabbing_xeno, targetted_atom, include_start_atom = FALSE) for(var/turf/path_turf as anything in path) if(path_turf.density) - to_chat(stabbing_xeno, SPAN_WARNING("There's something blocking your strike!")) + to_chat(stabbing_xeno, SPAN_WARNING("There's something blocking our strike!")) return FALSE for(var/obj/path_contents in path_turf.contents) if(path_contents != targetted_atom && path_contents.density && !path_contents.throwpass) - to_chat(stabbing_xeno, SPAN_WARNING("There's something blocking your strike!")) + to_chat(stabbing_xeno, SPAN_WARNING("There's something blocking our strike!")) return FALSE var/atom/barrier = path_turf.handle_barriers(stabbing_xeno, null, (PASS_MOB_THRU_XENO|PASS_OVER_THROW_MOB|PASS_TYPE_CRAWLER)) if(barrier != path_turf) var/tail_stab_cooldown_multiplier = barrier.handle_tail_stab(stabbing_xeno) if(!tail_stab_cooldown_multiplier) - to_chat(stabbing_xeno, SPAN_WARNING("There's something blocking your strike!")) + to_chat(stabbing_xeno, SPAN_WARNING("There's something blocking our strike!")) else apply_cooldown(cooldown_modifier = tail_stab_cooldown_multiplier) xeno_attack_delay(stabbing_xeno) @@ -962,7 +957,7 @@ return ..() if(!isxeno_human(targetted_atom)) - stabbing_xeno.visible_message(SPAN_XENOWARNING("\The [stabbing_xeno] swipes their tail through the air!"), SPAN_XENOWARNING("You swipe your tail through the air!")) + stabbing_xeno.visible_message(SPAN_XENOWARNING("\The [stabbing_xeno] swipes their tail through the air!"), SPAN_XENOWARNING("We swipe our tail through the air!")) apply_cooldown(cooldown_modifier = 0.1) xeno_attack_delay(stabbing_xeno) playsound(stabbing_xeno, "alien_tail_swipe", 50, TRUE) @@ -1006,7 +1001,7 @@ var/stab_overlay if(blunt_stab) - stabbing_xeno.visible_message(SPAN_XENOWARNING("\The [stabbing_xeno] swipes its tail into [target]'s [limb ? limb.display_name : "chest"], bashing it!"), SPAN_XENOWARNING("You swipe your tail into [target]'s [limb? limb.display_name : "chest"], bashing it!")) + stabbing_xeno.visible_message(SPAN_XENOWARNING("\The [stabbing_xeno] swipes its tail into [target]'s [limb ? limb.display_name : "chest"], bashing it!"), SPAN_XENOWARNING("We swipe our tail into [target]'s [limb? limb.display_name : "chest"], bashing it!")) if(prob(1)) playsound(target, 'sound/effects/comical_bonk.ogg', 50, TRUE) else @@ -1015,11 +1010,14 @@ stab_direction = turn(stabbing_xeno.dir, pick(90, -90)) stab_overlay = "slam" else - stabbing_xeno.visible_message(SPAN_XENOWARNING("\The [stabbing_xeno] skewers [target] through the [limb ? limb.display_name : "chest"] with its razor sharp tail!"), SPAN_XENOWARNING("You skewer [target] through the [limb? limb.display_name : "chest"] with your razor sharp tail!")) + stabbing_xeno.visible_message(SPAN_XENOWARNING("\The [stabbing_xeno] skewers [target] through the [limb ? limb.display_name : "chest"] with its razor sharp tail!"), SPAN_XENOWARNING("We skewer [target] through the [limb? limb.display_name : "chest"] with our razor sharp tail!")) playsound(target, "alien_bite", 50, TRUE) // The xeno flips around for a second to impale the target with their tail. These look awsome. stab_direction = turn(get_dir(stabbing_xeno, target), 180) stab_overlay = "tail" + log_attack("[key_name(stabbing_xeno)] tailstabbed [key_name(target)] at [get_area_name(stabbing_xeno)]") + target.attack_log += text("\[[time_stamp()]\] was tailstabbed by [key_name(stabbing_xeno)]") + stabbing_xeno.attack_log += text("\[[time_stamp()]\] tailstabbed [key_name(target)]") stabbing_xeno.setDir(stab_direction) stabbing_xeno.emote("tail") diff --git a/code/modules/mob/living/carbon/xenomorph/abilities/hivelord/hivelord_abilities.dm b/code/modules/mob/living/carbon/xenomorph/abilities/hivelord/hivelord_abilities.dm index 02e7fd814453..ea5f32694c99 100644 --- a/code/modules/mob/living/carbon/xenomorph/abilities/hivelord/hivelord_abilities.dm +++ b/code/modules/mob/living/carbon/xenomorph/abilities/hivelord/hivelord_abilities.dm @@ -12,8 +12,8 @@ action_type = XENO_ACTION_CLICK ability_primacy = XENO_PRIMARY_ACTION_4 - action_start_message = "You become one with the resin. You feel the urge to run!" - action_end_message = "You feel less in tune with the resin." + action_start_message = "We become one with the resin. We feel the urge to run!" + action_end_message = "We feel less in tune with the resin." plasma_use_per_tick = 30 /datum/action/xeno_action/active_toggle/toggle_speed/can_use_action() diff --git a/code/modules/mob/living/carbon/xenomorph/abilities/hivelord/hivelord_powers.dm b/code/modules/mob/living/carbon/xenomorph/abilities/hivelord/hivelord_powers.dm index a0a442854eec..e4e889280793 100644 --- a/code/modules/mob/living/carbon/xenomorph/abilities/hivelord/hivelord_powers.dm +++ b/code/modules/mob/living/carbon/xenomorph/abilities/hivelord/hivelord_powers.dm @@ -20,11 +20,11 @@ if(!check_and_use_plasma_owner(plasma_cost)) to_chat(xeno, SPAN_WARNING("Not enough plasma!")) return - to_chat(xeno, SPAN_NOTICE("You become one with the resin. You feel the urge to run!")) + to_chat(xeno, SPAN_NOTICE("We become one with the resin. We feel the urge to run!")) button.icon_state = "template_active" action_active = TRUE else - to_chat(xeno, SPAN_WARNING("You feel less in tune with the resin.")) + to_chat(xeno, SPAN_WARNING("We feel less in tune with the resin.")) button.icon_state = "template" action_active = FALSE return diff --git a/code/modules/mob/living/carbon/xenomorph/abilities/lesser_drone/lesser_drone_powers.dm b/code/modules/mob/living/carbon/xenomorph/abilities/lesser_drone/lesser_drone_powers.dm index 515efea23d53..0f72bf4d81c7 100644 --- a/code/modules/mob/living/carbon/xenomorph/abilities/lesser_drone/lesser_drone_powers.dm +++ b/code/modules/mob/living/carbon/xenomorph/abilities/lesser_drone/lesser_drone_powers.dm @@ -1,6 +1,6 @@ /datum/action/xeno_action/onclick/plant_weeds/lesser/use_ability(atom/A) if(!(locate(/obj/effect/alien/weeds/node) in orange(4, owner))) - to_chat(owner, SPAN_XENONOTICE("You can only plant resin nodes near other resin nodes!")) + to_chat(owner, SPAN_XENONOTICE("We can only plant weed nodes near other weed nodes!")) return . = ..() diff --git a/code/modules/mob/living/carbon/xenomorph/abilities/lurker/lurker_abilities.dm b/code/modules/mob/living/carbon/xenomorph/abilities/lurker/lurker_abilities.dm index 2facee1edc9d..17677c8427af 100644 --- a/code/modules/mob/living/carbon/xenomorph/abilities/lurker/lurker_abilities.dm +++ b/code/modules/mob/living/carbon/xenomorph/abilities/lurker/lurker_abilities.dm @@ -2,50 +2,15 @@ macro_path = /datum/action/xeno_action/verb/verb_pounce action_type = XENO_ACTION_CLICK ability_primacy = XENO_PRIMARY_ACTION_1 - xeno_cooldown = 60 + xeno_cooldown = 6 SECONDS plasma_cost = 20 // Config options - distance = 6 knockdown = FALSE knockdown_duration = 2.5 - freeze_self = TRUE freeze_time = 15 can_be_shield_blocked = TRUE -/datum/action/xeno_action/activable/pounce/lurker/additional_effects_always() - var/mob/living/carbon/xenomorph/xeno = owner - if (!istype(xeno)) - return - if (xeno.mutation_type == LURKER_NORMAL) - var/found = FALSE - for (var/mob/living/carbon/human/human in get_turf(xeno)) - if(human.stat == DEAD) - continue - found = TRUE - break - - if (found) - var/datum/action/xeno_action/onclick/lurker_invisibility/lurker_invis = get_xeno_action_by_type(xeno, /datum/action/xeno_action/onclick/lurker_invisibility) - if (istype(lurker_invis)) - lurker_invis.invisibility_off() - -/datum/action/xeno_action/activable/pounce/lurker/additional_effects(mob/living/living_mob) - var/mob/living/carbon/xenomorph/xeno = owner - if (!istype(xeno)) - return - - if (xeno.mutation_type == LURKER_NORMAL) - RegisterSignal(xeno, COMSIG_XENO_SLASH_ADDITIONAL_EFFECTS_SELF, PROC_REF(remove_freeze), TRUE) // Suppresses runtime ever we pounce again before slashing - -/datum/action/xeno_action/activable/pounce/lurker/proc/remove_freeze(mob/living/carbon/xenomorph/xeno) - SIGNAL_HANDLER - - var/datum/behavior_delegate/lurker_base/behaviour_del = xeno.behavior_delegate - if (istype(behaviour_del)) - UnregisterSignal(xeno, COMSIG_XENO_SLASH_ADDITIONAL_EFFECTS_SELF) - end_pounce_freeze() - /datum/action/xeno_action/onclick/lurker_invisibility name = "Turn Invisible" action_icon_state = "lurker_invisibility" @@ -53,8 +18,6 @@ macro_path = /datum/action/xeno_action/verb/verb_lurker_invisibility ability_primacy = XENO_PRIMARY_ACTION_2 action_type = XENO_ACTION_CLICK - xeno_cooldown = 1 // This ability never goes off cooldown 'naturally'. Cooldown is applied manually as a super-large value in the use_ability proc - // and reset by the behavior_delegate whenever the ability ends (because it can be ended by things like slashes, that we can't easily track here) plasma_cost = 20 var/duration = 30 SECONDS // 30 seconds base @@ -70,7 +33,7 @@ macro_path = /datum/action/xeno_action/verb/verb_crippling_strike ability_primacy = XENO_PRIMARY_ACTION_3 action_type = XENO_ACTION_ACTIVATE - xeno_cooldown = 100 + xeno_cooldown = 10 SECONDS plasma_cost = 20 var/buff_duration = 50 diff --git a/code/modules/mob/living/carbon/xenomorph/abilities/lurker/lurker_powers.dm b/code/modules/mob/living/carbon/xenomorph/abilities/lurker/lurker_powers.dm index 0c2b226cb268..094732300a1f 100644 --- a/code/modules/mob/living/carbon/xenomorph/abilities/lurker/lurker_powers.dm +++ b/code/modules/mob/living/carbon/xenomorph/abilities/lurker/lurker_powers.dm @@ -1,57 +1,107 @@ +/datum/action/xeno_action/activable/pounce/lurker/additional_effects(mob/living/living_mob) + var/mob/living/carbon/xenomorph/xeno = owner + if(!istype(xeno)) + return + + RegisterSignal(xeno, COMSIG_XENO_SLASH_ADDITIONAL_EFFECTS_SELF, PROC_REF(remove_freeze), TRUE) // Suppresses runtime ever we pounce again before slashing + + var/found = FALSE + for(var/mob/living/carbon/human/human in get_turf(xeno)) + if(human.stat == DEAD) + continue + found = TRUE + break + + if(found) + var/datum/action/xeno_action/onclick/lurker_invisibility/lurker_invis = get_xeno_action_by_type(xeno, /datum/action/xeno_action/onclick/lurker_invisibility) + if(lurker_invis) + lurker_invis.invisibility_off() // Full cooldown + +/datum/action/xeno_action/activable/pounce/lurker/proc/remove_freeze(mob/living/carbon/xenomorph/xeno) + SIGNAL_HANDLER + + var/datum/behavior_delegate/lurker_base/behaviour_del = xeno.behavior_delegate + if(istype(behaviour_del)) + UnregisterSignal(xeno, COMSIG_XENO_SLASH_ADDITIONAL_EFFECTS_SELF) + end_pounce_freeze() + +/datum/action/xeno_action/onclick/lurker_invisibility/can_use_action() + if(!..()) + return FALSE + var/mob/living/carbon/xenomorph/xeno = owner + return xeno.deselect_timer < world.time // We clicked the same ability in a very short time + /datum/action/xeno_action/onclick/lurker_invisibility/use_ability(atom/targeted_atom) var/mob/living/carbon/xenomorph/xeno = owner - if (!istype(xeno)) + if(!istype(xeno)) return - - if (!action_cooldown_check()) + if(!action_cooldown_check()) return - - if (!check_and_use_plasma_owner()) + if(!check_and_use_plasma_owner()) return - animate(xeno, alpha = alpha_amount, time = 0.1 SECONDS, easing = QUAD_EASING) + xeno.deselect_timer = world.time + 5 // Half a second to prevent double clicks + + if(xeno.stealth) + invisibility_off(0.9) // Near full refund of remaining time + return ..() + + button.icon_state = "template_active" xeno.update_icons() // callback to make the icon_state indicate invisibility is in lurker/update_icon + animate(xeno, alpha = alpha_amount, time = 0.1 SECONDS, easing = QUAD_EASING) + xeno.speed_modifier -= speed_buff xeno.recalculate_speed() - if (xeno.mutation_type == LURKER_NORMAL) - var/datum/behavior_delegate/lurker_base/behavior = xeno.behavior_delegate - behavior.on_invisibility() + var/datum/behavior_delegate/lurker_base/behavior = xeno.behavior_delegate + behavior.on_invisibility() // if we go off early, this also works fine. invis_timer_id = addtimer(CALLBACK(src, PROC_REF(invisibility_off)), duration, TIMER_STOPPABLE) - // Only resets when invisibility ends - apply_cooldown_override(1000000000) return ..() -/datum/action/xeno_action/onclick/lurker_invisibility/proc/invisibility_off() - if(!owner || owner.alpha == initial(owner.alpha)) +/// Implementation for disabling invisibility. +/// (refund_multiplier) indicates how much cooldown to refund based on time remaining +/// 0 indicates full cooldown; 0.5 indicates 50% of remaining time is refunded +/datum/action/xeno_action/onclick/lurker_invisibility/proc/invisibility_off(refund_multiplier = 0.0) + var/mob/living/carbon/xenomorph/xeno = owner + + if(!istype(xeno)) + return + if(owner.alpha == initial(owner.alpha) && !xeno.stealth) return - if (invis_timer_id != TIMER_ID_NULL) + if(invis_timer_id != TIMER_ID_NULL) deltimer(invis_timer_id) invis_timer_id = TIMER_ID_NULL - var/mob/living/carbon/xenomorph/xeno = owner - if (istype(xeno)) - animate(xeno, alpha = initial(xeno.alpha), time = 0.1 SECONDS, easing = QUAD_EASING) - to_chat(xeno, SPAN_XENOHIGHDANGER("You feel your invisibility end!")) + animate(xeno, alpha = initial(xeno.alpha), time = 0.1 SECONDS, easing = QUAD_EASING) + to_chat(xeno, SPAN_XENOHIGHDANGER("We feel our invisibility end!")) + + button.icon_state = "template" + xeno.update_icons() - xeno.update_icons() + xeno.speed_modifier += speed_buff + xeno.recalculate_speed() + + var/datum/behavior_delegate/lurker_base/behavior = xeno.behavior_delegate + if(!istype(behavior)) + CRASH("lurker_base behavior_delegate missing/invalid for [xeno]!") - xeno.speed_modifier += speed_buff - xeno.recalculate_speed() + var/recharge_time = behavior.invis_recharge_time + if(behavior.invis_start_time > 0) // Sanity + refund_multiplier = clamp(refund_multiplier, 0, 1) + var/remaining = 1 - (world.time - behavior.invis_start_time) / behavior.invis_duration + recharge_time = behavior.invis_recharge_time - remaining * refund_multiplier * behavior.invis_recharge_time + apply_cooldown_override(recharge_time) - if (xeno.mutation_type == LURKER_NORMAL) - var/datum/behavior_delegate/lurker_base/behavior = xeno.behavior_delegate - if (istype(behavior)) - behavior.on_invisibility_off() + behavior.on_invisibility_off() /datum/action/xeno_action/onclick/lurker_invisibility/ability_cooldown_over() - to_chat(owner, SPAN_XENOHIGHDANGER("You are ready to use your invisibility again!")) + to_chat(owner, SPAN_XENOHIGHDANGER("We are ready to use our invisibility again!")) ..() /datum/action/xeno_action/onclick/lurker_assassinate/use_ability(atom/targeted_atom) @@ -66,14 +116,11 @@ if (!check_and_use_plasma_owner()) return - if (xeno.mutation_type != LURKER_NORMAL) - return - var/datum/behavior_delegate/lurker_base/behavior = xeno.behavior_delegate if (istype(behavior)) behavior.next_slash_buffed = TRUE - to_chat(xeno, SPAN_XENOHIGHDANGER("Your next slash will deal increased damage!")) + to_chat(xeno, SPAN_XENOHIGHDANGER("Our next slash will deal increased damage!")) addtimer(CALLBACK(src, PROC_REF(unbuff_slash)), buff_duration) xeno.next_move = world.time + 1 // Autoattack reset @@ -92,7 +139,7 @@ return behavior.next_slash_buffed = FALSE - to_chat(xeno, SPAN_XENODANGER("You have waited too long, your slash will no longer deal increased damage!")) + to_chat(xeno, SPAN_XENODANGER("We have waited too long, our slash will no longer deal increased damage!")) // VAMPIRE LURKER @@ -119,7 +166,7 @@ return xeno.visible_message(SPAN_DANGER("[xeno] drags its claws in a wide area in front of it!"), \ - SPAN_XENOWARNING("You unleash a barrage of slashes!")) + SPAN_XENOWARNING("We unleash a barrage of slashes!")) playsound(xeno, 'sound/effects/alien_tail_swipe2.ogg', 30) apply_cooldown() @@ -161,7 +208,7 @@ continue xeno.visible_message(SPAN_DANGER("[xeno] slashes [target]!"), \ - SPAN_XENOWARNING("You slash [target] multiple times!")) + SPAN_XENOWARNING("We slash [target] multiple times!")) xeno.flick_attack_overlay(target, "slash") target.last_damage_data = create_cause_data(xeno.caste_type, xeno) log_attack("[key_name(xeno)] attacked [key_name(target)] with Flurry") @@ -189,14 +236,14 @@ if(distance > 2) return - var/list/turf/path = getline2(xeno, hit_target, include_from_atom = FALSE) + var/list/turf/path = get_line(xeno, targeted_atom, include_start_atom = FALSE) for(var/turf/path_turf as anything in path) if(path_turf.density) - to_chat(xeno, SPAN_WARNING("There's something blocking you from striking!")) + to_chat(xeno, SPAN_WARNING("There's something blocking us from striking!")) return var/atom/barrier = path_turf.handle_barriers(A = xeno , pass_flags = (PASS_MOB_THRU_XENO|PASS_OVER_THROW_MOB|PASS_TYPE_CRAWLER)) if(barrier != path_turf) - to_chat(xeno, SPAN_WARNING("There's something blocking you from striking!")) + to_chat(xeno, SPAN_WARNING("There's something blocking us from striking!")) return for(var/obj/structure/current_structure in path_turf) if(istype(current_structure, /obj/structure/window/framed)) @@ -205,15 +252,27 @@ return playsound(get_turf(target_window),'sound/effects/glassbreak3.ogg', 30, TRUE) target_window.shatter_window(TRUE) - xeno.visible_message(SPAN_XENOWARNING("\The [xeno] strikes the window with their tail!"), SPAN_XENOWARNING("You strike the window with your tail!")) + xeno.visible_message(SPAN_XENOWARNING("\The [xeno] strikes the window with their tail!"), SPAN_XENOWARNING("We strike the window with our tail!")) apply_cooldown(cooldown_modifier = 0.5) return - if(current_structure.density) - to_chat(xeno, SPAN_WARNING("There's something blocking you from striking!")) + if(current_structure.density && !current_structure.throwpass) + to_chat(xeno, SPAN_WARNING("There's something blocking us from striking!")) return - - if(!isxeno_human(hit_target) || xeno.can_not_harm(hit_target) || hit_target.stat == DEAD) - xeno.visible_message(SPAN_XENOWARNING("\The [xeno] swipes their tail through the air!"), SPAN_XENOWARNING("You swipe your tail through the air!")) + // find a target in the target turf + if(!iscarbon(targeted_atom) || hit_target.stat == DEAD) + for(var/mob/living/carbon/carbonara in get_turf(targeted_atom)) + hit_target = carbonara + if(!xeno.can_not_harm(hit_target) && hit_target.stat != DEAD) + break + + if(iscarbon(hit_target) && !xeno.can_not_harm(hit_target) && hit_target.stat != DEAD) + if(targeted_atom == hit_target) //reward for a direct hit + to_chat(xeno, SPAN_XENOHIGHDANGER("We attack [hit_target], with our tail, piercing their body!")) + hit_target.apply_armoured_damage(15, ARMOR_MELEE, BRUTE, "chest") + else + to_chat(xeno, SPAN_XENODANGER("We attack [hit_target], slashing them with our tail!")) + else + xeno.visible_message(SPAN_XENOWARNING("\The [xeno] swipes their tail through the air!"), SPAN_XENOWARNING("We swipe our tail through the air!")) apply_cooldown(cooldown_modifier = 0.2) playsound(xeno, 'sound/effects/alien_tail_swipe1.ogg', 50, TRUE) return @@ -221,14 +280,20 @@ // FX var/stab_direction - to_chat(xeno, SPAN_XENOHIGHDANGER("You directly slam [hit_target] with your tail, throwing it back after impaling it on your tail!")) + stab_direction = turn(get_dir(xeno, targeted_atom), 180) playsound(hit_target,'sound/weapons/alien_tail_attack.ogg', 50, TRUE) - stab_direction = turn(get_dir(xeno, hit_target), 180) - - if(hit_target.mob_size < MOB_SIZE_BIG) - step_away(hit_target, xeno) - + var/direction = Get_Compass_Dir(xeno, targeted_atom) //More precise than get_dir. + + if(!step(hit_target, direction)) + playsound(hit_target.loc, "punch", 25, 1) + hit_target.visible_message(SPAN_DANGER("[hit_target] slams into an obstacle!"), + isxeno(hit_target) ? SPAN_XENODANGER("We slam into an obstacle!") : SPAN_HIGHDANGER("You slam into an obstacle!"), null, 4, CHAT_TYPE_TAKING_HIT) + hit_target.apply_damage(MELEE_FORCE_TIER_2) + if (hit_target.mob_size < MOB_SIZE_BIG) + hit_target.KnockDown(0.5) + else + hit_target.Slow(0.5) /// To reset the direction if they haven't moved since then in below callback. var/last_dir = xeno.dir @@ -240,11 +305,7 @@ addtimer(CALLBACK(src, PROC_REF(reset_direction), xeno, last_dir, new_dir), 0.5 SECONDS) hit_target.apply_armoured_damage(get_xeno_damage_slash(hit_target, xeno.caste.melee_damage_upper), ARMOR_MELEE, BRUTE, "chest") - - if(hit_target.mob_size < MOB_SIZE_BIG) - hit_target.apply_effect(0.5, WEAKEN) - else - hit_target.apply_effect(0.5, SLOW) + hit_target.Slow(0.5) hit_target.last_damage_data = create_cause_data(xeno.caste_type, xeno) log_attack("[key_name(xeno)] attacked [key_name(hit_target)] with Tail Jab") @@ -269,11 +330,11 @@ return if(!(HAS_TRAIT(target_carbon, TRAIT_KNOCKEDOUT) || target_carbon.stat == UNCONSCIOUS)) //called knocked out because for some reason .stat seems to have a delay . - to_chat(xeno, SPAN_XENOHIGHDANGER("You can only headbite an unconscious, adjacent target!")) + to_chat(xeno, SPAN_XENOHIGHDANGER("We can only headbite an unconscious, adjacent target!")) return if(!xeno.Adjacent(target_carbon)) - to_chat(xeno, SPAN_XENOHIGHDANGER("You can only headbite an unconscious, adjacent target!")) + to_chat(xeno, SPAN_XENOHIGHDANGER("We can only headbite an unconscious, adjacent target!")) return if(xeno.stat == UNCONSCIOUS) @@ -285,22 +346,28 @@ if(xeno.action_busy) return + if(target_carbon.status_flags & XENO_HOST) + for(var/obj/item/alien_embryo/embryo in target_carbon) + if(HIVE_ALLIED_TO_HIVE(xeno.hivenumber, embryo.hivenumber)) + to_chat(xeno, SPAN_WARNING("We should not harm this host! It has a sister inside.")) + return + xeno.visible_message(SPAN_DANGER("[xeno] grabs [target_carbon]’s head aggressively."), \ - SPAN_XENOWARNING("You grab [target_carbon]’s head aggressively.")) + SPAN_XENOWARNING("We grab [target_carbon]’s head aggressively.")) if(!do_after(xeno, 0.8 SECONDS, INTERRUPT_NO_NEEDHAND, BUSY_ICON_HOSTILE, numticks = 2)) // would be 0.75 but that doesn't really work with numticks return // To make sure that the headbite does nothing if the target is moved away. if(!xeno.Adjacent(target_carbon)) - to_chat(xeno, SPAN_XENOHIGHDANGER("You missed! Your target was moved away before you could finish headbiting them!")) + to_chat(xeno, SPAN_XENOHIGHDANGER("We missed! Our target was moved away before we could finish headbiting them!")) return if(target_carbon.stat == DEAD) to_chat(xeno, SPAN_XENODANGER("They died before you could finish headbiting them! Be more careful next time!")) return - to_chat(xeno, SPAN_XENOHIGHDANGER("You pierce [target_carbon]’s head with your inner jaw!")) + to_chat(xeno, SPAN_XENOHIGHDANGER("We pierce [target_carbon]’s head with our inner jaw!")) playsound(target_carbon,'sound/weapons/alien_bite2.ogg', 50, TRUE) xeno.visible_message(SPAN_DANGER("[xeno] pierces [target_carbon]’s head with its inner jaw!")) xeno.flick_attack_overlay(target_carbon, "headbite") diff --git a/code/modules/mob/living/carbon/xenomorph/abilities/praetorian/praetorian_abilities.dm b/code/modules/mob/living/carbon/xenomorph/abilities/praetorian/praetorian_abilities.dm index f876c2c50669..199df345fb62 100644 --- a/code/modules/mob/living/carbon/xenomorph/abilities/praetorian/praetorian_abilities.dm +++ b/code/modules/mob/living/carbon/xenomorph/abilities/praetorian/praetorian_abilities.dm @@ -25,7 +25,7 @@ macro_path = /datum/action/xeno_action/verb/verb_dash action_type = XENO_ACTION_CLICK ability_primacy = XENO_PRIMARY_ACTION_2 - xeno_cooldown = 110 + xeno_cooldown = 11 SECONDS plasma_cost = 50 // Config options @@ -36,7 +36,7 @@ var/buff_duration = 12 var/damage = 40 - var/shield_regen_threshold = 2 + var/shield_regen_threshold = 1 var/activated_once = FALSE var/time_until_timeout = 20 @@ -51,11 +51,11 @@ macro_path = /datum/action/xeno_action/verb/verb_cleave ability_primacy = XENO_PRIMARY_ACTION_3 action_type = XENO_ACTION_CLICK - xeno_cooldown = 120 + xeno_cooldown = 12 SECONDS // Root config - var/root_duration_unbuffed = 5 - var/root_duration_buffed = 12.5 + var/root_duration_unbuffed = 1 SECONDS + var/root_duration_buffed = 1.8 SECONDS // Fling config var/fling_dist_unbuffed = 3 @@ -97,10 +97,10 @@ var/action_icon_result if (cAction.root_toggle) action_icon_result = "prae_cleave_root" - to_chat(X, SPAN_WARNING("You will now root marines with your cleave.")) + to_chat(X, SPAN_WARNING("We will now root marines with our cleave.")) else action_icon_result = "prae_cleave_fling" // TODO: update - to_chat(X, SPAN_WARNING("You will now throw marines with your cleave.")) + to_chat(X, SPAN_WARNING("We will now throw marines with our cleave.")) button.overlays.Cut() button.overlays += image('icons/mob/hud/actions_xeno.dmi', button, action_icon_result) @@ -129,7 +129,7 @@ // Config var/max_distance = 7 - var/windup = 7 DECISECONDS + var/windup = 8 DECISECONDS /datum/action/xeno_action/activable/oppressor_punch name = "Dislocate" @@ -138,7 +138,7 @@ macro_path = /datum/action/xeno_action/verb/verb_oppressor_punch action_type = XENO_ACTION_CLICK ability_primacy = XENO_PRIMARY_ACTION_2 - xeno_cooldown = 100 + xeno_cooldown = 10 SECONDS plasma_cost = 55 // Configurables @@ -164,7 +164,7 @@ macro_path = /datum/action/xeno_action/verb/verb_crush ability_primacy = XENO_PRIMARY_ACTION_3 action_type = XENO_ACTION_CLICK - xeno_cooldown = 130 + xeno_cooldown = 13 SECONDS plasma_cost = 80 // Config @@ -180,7 +180,7 @@ macro_path = /datum/action/xeno_action/verb/verb_prae_impale ability_primacy = XENO_PRIMARY_ACTION_1 action_type = XENO_ACTION_CLICK - xeno_cooldown = 130 + xeno_cooldown = 13 SECONDS plasma_cost = 80 /datum/action/xeno_action/onclick/prae_dodge @@ -191,7 +191,7 @@ ability_primacy = XENO_PRIMARY_ACTION_2 action_type = XENO_ACTION_CLICK plasma_cost = 200 - xeno_cooldown = 190 + xeno_cooldown = 19 SECONDS // Config var/duration = 70 @@ -204,7 +204,7 @@ macro_path = /datum/action/xeno_action/verb/verb_prae_tail_trip ability_primacy = XENO_PRIMARY_ACTION_3 action_type = XENO_ACTION_CLICK - xeno_cooldown = 130 + xeno_cooldown = 13 SECONDS plasma_cost = 30 // Config @@ -224,7 +224,7 @@ macro_path = /datum/action/xeno_action/verb/verb_dash action_type = XENO_ACTION_CLICK ability_primacy = XENO_PRIMARY_ACTION_2 - xeno_cooldown = 100 + xeno_cooldown = 10 SECONDS plasma_cost = 40 // Config options @@ -255,7 +255,7 @@ ability_primacy = XENO_PRIMARY_ACTION_4 plasma_cost = 80 - xeno_cooldown = 100 + xeno_cooldown = 10 SECONDS // Configurable options spray_type = ACID_SPRAY_LINE @@ -270,7 +270,7 @@ /datum/action/xeno_action/activable/spray_acid/prae_warden ability_primacy = XENO_PRIMARY_ACTION_2 plasma_cost = 130 - xeno_cooldown = 130 + xeno_cooldown = 13 SECONDS // Configurable options @@ -288,7 +288,7 @@ // todo: macro action_type = XENO_ACTION_CLICK ability_primacy = XENO_PRIMARY_ACTION_3 - xeno_cooldown = 100 + xeno_cooldown = 10 SECONDS plasma_cost = 100 // Config @@ -335,12 +335,12 @@ if (WH.curr_effect_type == WARDEN_HEAL_HP) action_icon_result = "warden_rejuvenate" WH.curr_effect_type = WARDEN_HEAL_DEBUFFS - to_chat(X, SPAN_XENOWARNING("You will now aid your allies by curing their ailments!")) + to_chat(X, SPAN_XENOWARNING("We will now aid our sisters by curing their ailments!")) else action_icon_result = "warden_heal" WH.curr_effect_type = WARDEN_HEAL_HP - to_chat(X, SPAN_XENOWARNING("You will now aid your allies by healing them!")) + to_chat(X, SPAN_XENOWARNING("We will now aid our sisters by healing them!")) button.overlays.Cut() button.overlays += image('icons/mob/hud/actions_xeno.dmi', button, action_icon_result) diff --git a/code/modules/mob/living/carbon/xenomorph/abilities/praetorian/praetorian_powers.dm b/code/modules/mob/living/carbon/xenomorph/abilities/praetorian/praetorian_powers.dm index 1a0205862480..4d3a792af89a 100644 --- a/code/modules/mob/living/carbon/xenomorph/abilities/praetorian/praetorian_powers.dm +++ b/code/modules/mob/living/carbon/xenomorph/abilities/praetorian/praetorian_powers.dm @@ -13,7 +13,7 @@ return //X = xeno user, A = target atom - var/list/turf/target_turfs = getline2(source_xeno, targetted_atom, include_from_atom = FALSE) + var/list/turf/target_turfs = get_line(source_xeno, targetted_atom, include_start_atom = FALSE) var/length_of_line = LAZYLEN(target_turfs) if(length_of_line > 3) target_turfs = target_turfs.Copy(1, 4) @@ -52,7 +52,7 @@ if(!(mob_to_act in target_mobs)) target_mobs += mob_to_act - source_xeno.visible_message(SPAN_XENODANGER("[source_xeno] slashes its tail through the area in front of it!"), SPAN_XENODANGER("You slash your tail through the area in front of you!")) + source_xeno.visible_message(SPAN_XENODANGER("[source_xeno] slashes its claws through the area in front of it!"), SPAN_XENODANGER("We slash our claws through the area in front of us!")) source_xeno.animation_attack_on(targetted_atom, 15) source_xeno.emote("roar") @@ -67,12 +67,12 @@ current_mob.flick_attack_overlay(current_mob, "slash") current_mob.apply_armoured_damage(get_xeno_damage_slash(current_mob, damage), ARMOR_MELEE, BRUTE, null, 20) + playsound(current_mob, 'sound/weapons/alien_tail_attack.ogg', 30, TRUE) - if (target_mobs.len >= shield_regen_threshold) - if (source_xeno.mutation_type == PRAETORIAN_VANGUARD) - var/datum/behavior_delegate/praetorian_vanguard/BD = source_xeno.behavior_delegate - if (istype(BD)) - BD.regen_shield() + if (length(target_mobs) >= shield_regen_threshold) + var/datum/behavior_delegate/praetorian_vanguard/behavior = source_xeno.behavior_delegate + if (istype(behavior)) + behavior.regen_shield() apply_cooldown() return ..() @@ -118,7 +118,7 @@ if (!(H in target_mobs)) target_mobs += H - X.visible_message(SPAN_XENODANGER("[X] slashes its claws through the area around it!"), SPAN_XENODANGER("You slash your claws through the area around you!")) + X.visible_message(SPAN_XENODANGER("[X] slashes its claws through the area around it!"), SPAN_XENODANGER("We slash our claws through the area around us!")) X.spin_circle() for (var/mob/living/carbon/H in target_mobs) @@ -133,11 +133,10 @@ H.apply_armoured_damage(get_xeno_damage_slash(H, damage), ARMOR_MELEE, BRUTE) playsound(get_turf(H), "alien_claw_flesh", 30, 1) - if (target_mobs.len >= shield_regen_threshold) - if (X.mutation_type == PRAETORIAN_VANGUARD) - var/datum/behavior_delegate/praetorian_vanguard/BD = X.behavior_delegate - if (istype(BD)) - BD.regen_shield() + if (length(target_mobs) >= shield_regen_threshold) + var/datum/behavior_delegate/praetorian_vanguard/behavior = X.behavior_delegate + if (istype(behavior)) + behavior.regen_shield() /datum/action/xeno_action/activable/cleave/use_ability(atom/target_atom) var/mob/living/carbon/xenomorph/vanguard_user = owner @@ -151,17 +150,17 @@ return if (!isxeno_human(target_atom) || vanguard_user.can_not_harm(target_atom)) - to_chat(vanguard_user, SPAN_XENODANGER("You must target a hostile!")) + to_chat(vanguard_user, SPAN_XENODANGER("We must target a hostile!")) return var/mob/living/carbon/target_carbon = target_atom if (!vanguard_user.Adjacent(target_carbon)) - to_chat(vanguard_user, SPAN_XENOWARNING("You must be adjacent to your target!")) + to_chat(vanguard_user, SPAN_XENOWARNING("We must be adjacent to our target!")) return if (target_carbon.stat == DEAD) - to_chat(vanguard_user, SPAN_XENODANGER("[target_carbon] is dead, why would you want to touch it?")) + to_chat(vanguard_user, SPAN_XENODANGER("[target_carbon] is dead, why would we want to touch it?")) return // Flick overlay and play sound @@ -173,7 +172,7 @@ if (root_toggle) var/root_duration = buffed ? root_duration_buffed : root_duration_unbuffed - vanguard_user.visible_message(SPAN_XENODANGER("[vanguard_user] slams [target_atom] into the ground!"), SPAN_XENOHIGHDANGER("You slam [target_atom] into the ground!")) + vanguard_user.visible_message(SPAN_XENODANGER("[vanguard_user] slams [target_atom] into the ground!"), SPAN_XENOHIGHDANGER("We slam [target_atom] into the ground!")) ADD_TRAIT(target_carbon, TRAIT_IMMOBILIZED, TRAIT_SOURCE_ABILITY("Cleave")) if (ishuman(target_carbon)) @@ -189,9 +188,9 @@ if(target_carbon.mob_size >= MOB_SIZE_BIG) fling_distance *= 0.1 - vanguard_user.visible_message(SPAN_XENODANGER("[vanguard_user] deals [target_atom] a massive blow, sending them flying!"), SPAN_XENOHIGHDANGER("You deal [target_atom] a massive blow, sending them flying!")) + vanguard_user.visible_message(SPAN_XENODANGER("[vanguard_user] deals [target_atom] a massive blow, sending them flying!"), SPAN_XENOHIGHDANGER("We deal [target_atom] a massive blow, sending them flying!")) vanguard_user.flick_attack_overlay(target_carbon, "slam") - xeno_throw_human(target_carbon, vanguard_user, get_dir(vanguard_user, target_atom), fling_distance) + vanguard_user.throw_carbon(target_atom, null, fling_distance) apply_cooldown() return ..() @@ -216,7 +215,7 @@ if(!check_and_use_plasma_owner()) return FALSE - stabbing_xeno.visible_message(SPAN_XENODANGER("\The [stabbing_xeno] uncoils and wildly throws out its tail!"), SPAN_XENODANGER("You uncoil your tail wildly in front of you!")) + stabbing_xeno.visible_message(SPAN_XENODANGER("\The [stabbing_xeno] uncoils and wildly throws out its tail!"), SPAN_XENODANGER("We uncoil our tail wildly in front of us!")) var/obj/projectile/hook_projectile = new /obj/projectile(stabbing_xeno.loc, create_cause_data(initial(stabbing_xeno.caste_type), stabbing_xeno)) @@ -279,13 +278,13 @@ turflist += turf facing = get_dir(turf, atom) - telegraph_atom_list += new /obj/effect/xenomorph/xeno_telegraph/brown/abduct_hook(turf, windup) + telegraph_atom_list += new /obj/effect/xenomorph/xeno_telegraph/abduct_hook(turf, windup) if(!length(turflist)) - to_chat(xeno, SPAN_XENOWARNING("You don't have any room to do your abduction!")) + to_chat(xeno, SPAN_XENOWARNING("We don't have any room to do our abduction!")) return - xeno.visible_message(SPAN_XENODANGER("\The [xeno]'s segmented tail starts coiling..."), SPAN_XENODANGER("You begin coiling your tail, aiming towards \the [atom]...")) + xeno.visible_message(SPAN_XENODANGER("\The [xeno]'s segmented tail starts coiling..."), SPAN_XENODANGER("We begin coiling our tail, aiming towards \the [atom]...")) xeno.emote("roar") var/throw_target_turf = get_step(xeno.loc, facing) @@ -309,7 +308,7 @@ REMOVE_TRAIT(xeno, TRAIT_IMMOBILIZED, TRAIT_SOURCE_ABILITY("Abduct")) playsound(get_turf(xeno), 'sound/effects/bang.ogg', 25, 0) - xeno.visible_message(SPAN_XENODANGER("\The [xeno] suddenly uncoils its tail, firing it towards [atom]!"), SPAN_XENODANGER("You uncoil your tail, sending it out towards \the [atom]!")) + xeno.visible_message(SPAN_XENODANGER("\The [xeno] suddenly uncoils its tail, firing it towards [atom]!"), SPAN_XENODANGER("We uncoil our tail, sending it out towards \the [atom]!")) var/list/targets = list() for (var/turf/target_turf in turflist) @@ -319,14 +318,16 @@ targets += target if (LAZYLEN(targets) == 1) - xeno.balloon_alert(xeno, "your tail catches and slows one target!", text_color = "#51a16c") + xeno.balloon_alert(xeno, "our tail catches and slows one target!", text_color = "#51a16c") else if (LAZYLEN(targets) == 2) - xeno.balloon_alert(xeno, "your tail catches and roots two targets!", text_color = "#51a16c") + xeno.balloon_alert(xeno, "our tail catches and roots two targets!", text_color = "#51a16c") else if (LAZYLEN(targets) >= 3) - xeno.balloon_alert(xeno, "your tail catches and stuns [LAZYLEN(targets)] targets!", text_color = "#51a16c") + xeno.balloon_alert(xeno, "our tail catches and stuns [LAZYLEN(targets)] targets!", text_color = "#51a16c") + + apply_cooldown() for (var/mob/living/carbon/target in targets) - xeno.visible_message(SPAN_XENODANGER("\The [xeno]'s hooked tail coils itself around [target]!"), SPAN_XENODANGER("Your hooked tail coils itself around [target]!")) + xeno.visible_message(SPAN_XENODANGER("\The [xeno]'s hooked tail coils itself around [target]!"), SPAN_XENODANGER("Our hooked tail coils itself around [target]!")) target.apply_effect(0.2, WEAKEN) @@ -358,7 +359,6 @@ qdel(tail_beam) // hook beam catches target, throws them back, is deleted (throw_atom has sleeps), then hook beam catches another target, repeat addtimer(CALLBACK(src, /datum/action/xeno_action/activable/prae_abduct/proc/remove_tail_overlay, target, tail_image), 0.5 SECONDS) //needed so it can actually be seen as it gets deleted too quickly otherwise. - apply_cooldown() return ..() /datum/action/xeno_action/activable/prae_abduct/proc/remove_tail_overlay(mob/living/carbon/human/overlayed_human, image/tail_image) @@ -394,7 +394,7 @@ target_carbon.last_damage_data = create_cause_data(oppressor_user.caste_type, oppressor_user) oppressor_user.visible_message(SPAN_XENOWARNING("\The [oppressor_user] hits [target_carbon] in the [target_limb? target_limb.display_name : "chest"] with a devastatingly powerful punch!"), \ - SPAN_XENOWARNING("You hit [target_carbon] in the [target_limb ? target_limb.display_name : "chest"] with a devastatingly powerful punch!")) + SPAN_XENOWARNING("We hit [target_carbon] in the [target_limb ? target_limb.display_name : "chest"] with a devastatingly powerful punch!")) var/hitsound = pick('sound/weapons/punch1.ogg','sound/weapons/punch2.ogg','sound/weapons/punch3.ogg','sound/weapons/punch4.ogg') playsound(target_carbon,hitsound, 50, 1) @@ -467,21 +467,21 @@ continue target_turfs += T - telegraph_atom_list += new /obj/effect/xenomorph/xeno_telegraph/brown/lash(T, windup) + telegraph_atom_list += new /obj/effect/xenomorph/xeno_telegraph/lash(T, windup) var/turf/next_turf = get_step(T, facing) if (!istype(next_turf) || next_turf.density) continue target_turfs += next_turf - telegraph_atom_list += new /obj/effect/xenomorph/xeno_telegraph/brown/lash(next_turf, windup) + telegraph_atom_list += new /obj/effect/xenomorph/xeno_telegraph/lash(next_turf, windup) if(!length(target_turfs)) - to_chat(X, SPAN_XENOWARNING("You don't have any room to do your tail lash!")) + to_chat(X, SPAN_XENOWARNING("We don't have any room to do our tail lash!")) return if(!do_after(X, windup, INTERRUPT_NO_NEEDHAND, BUSY_ICON_HOSTILE)) - to_chat(X, SPAN_XENOWARNING("You cancel your tail lash.")) + to_chat(X, SPAN_XENOWARNING("We cancel our tail lash.")) for(var/obj/effect/xenomorph/xeno_telegraph/XT in telegraph_atom_list) telegraph_atom_list -= XT @@ -493,7 +493,7 @@ apply_cooldown() - X.visible_message(SPAN_XENODANGER("[X] lashes its tail furiously, hitting everything in front of it!"), SPAN_XENODANGER("You lash your tail furiously, hitting everything in front of you!")) + X.visible_message(SPAN_XENODANGER("[X] lashes its tail furiously, hitting everything in front of it!"), SPAN_XENODANGER("We lash our tail furiously, hitting everything in front of us!")) X.spin_circle() X.emote("tail") @@ -508,7 +508,7 @@ if(H.mob_size >= MOB_SIZE_BIG) continue - xeno_throw_human(H, X, facing, fling_dist) + X.throw_carbon(H, facing, fling_dist) H.apply_effect(get_xeno_stun_duration(H, 0.5), WEAKEN) new /datum/effects/xeno_slow(H, X, ttl = get_xeno_stun_duration(H, 25)) @@ -527,32 +527,28 @@ return if (!isxeno_human(target_atom) || dancer_user.can_not_harm(target_atom)) - to_chat(dancer_user, SPAN_XENODANGER("You must target a hostile!")) + to_chat(dancer_user, SPAN_XENODANGER("We must target a hostile!")) return if (!dancer_user.Adjacent(target_atom)) - to_chat(dancer_user, SPAN_XENODANGER("You must be adjacent to [target_atom]!")) + to_chat(dancer_user, SPAN_XENODANGER("We must be adjacent to [target_atom]!")) return var/mob/living/carbon/target_carbon = target_atom if (target_carbon.stat == DEAD) - to_chat(dancer_user, SPAN_XENOWARNING("[target_atom] is dead, why would you want to attack it?")) + to_chat(dancer_user, SPAN_XENOWARNING("[target_atom] is dead, why would we want to attack it?")) return if (!check_and_use_plasma_owner()) return - var/buffed = FALSE apply_cooldown() - if (dancer_user.mutation_type == PRAETORIAN_DANCER) - var/found = FALSE - for (var/datum/effects/dancer_tag/dancer_tag_effect in target_carbon.effects_list) - found = TRUE - qdel(dancer_tag_effect) - break - - buffed = found + var/buffed = FALSE + for (var/datum/effects/dancer_tag/dancer_tag_effect in target_carbon.effects_list) + buffed = TRUE + qdel(dancer_tag_effect) + break if(ishuman(target_carbon)) var/mob/living/carbon/human/Hu = target_carbon @@ -564,7 +560,7 @@ var/damage = get_xeno_damage_slash(target_carbon, rand(dancer_user.melee_damage_lower, dancer_user.melee_damage_upper)) dancer_user.visible_message(SPAN_DANGER("\The [dancer_user] violently slices [target_atom] with its tail[buffed?" twice":""]!"), \ - SPAN_DANGER("You slice [target_atom] with your tail[buffed?" twice":""]!")) + SPAN_DANGER("We slice [target_atom] with our tail[buffed?" twice":""]!")) if(buffed) // Do two attacks instead of one @@ -599,16 +595,13 @@ if (!check_and_use_plasma_owner()) return - if (xeno.mutation_type != PRAETORIAN_DANCER) - return - var/datum/behavior_delegate/praetorian_dancer/behavior = xeno.behavior_delegate if (!istype(behavior)) return behavior.dodge_activated = TRUE button.icon_state = "template_active" - to_chat(xeno, SPAN_XENOHIGHDANGER("You can now dodge through mobs!")) + to_chat(xeno, SPAN_XENOHIGHDANGER("We can now dodge through mobs!")) xeno.speed_modifier -= speed_buff_amount xeno.add_temp_pass_flags(PASS_MOB_THRU) xeno.recalculate_speed() @@ -624,9 +617,6 @@ if (!istype(xeno)) return - if (xeno.mutation_type != PRAETORIAN_DANCER) - return - var/datum/behavior_delegate/praetorian_dancer/behavior = xeno.behavior_delegate if (!istype(behavior)) return @@ -637,7 +627,7 @@ xeno.speed_modifier += speed_buff_amount xeno.remove_temp_pass_flags(PASS_MOB_THRU) xeno.recalculate_speed() - to_chat(xeno, SPAN_XENOHIGHDANGER("You can no longer dodge through mobs!")) + to_chat(xeno, SPAN_XENOHIGHDANGER("We can no longer dodge through mobs!")) /datum/action/xeno_action/activable/prae_tail_trip/use_ability(atom/target_atom) var/mob/living/carbon/xenomorph/dancer_user = owner @@ -649,13 +639,13 @@ return if (!isxeno_human(target_atom) || dancer_user.can_not_harm(target_atom)) - to_chat(dancer_user, SPAN_XENODANGER("You must target a hostile!")) + to_chat(dancer_user, SPAN_XENODANGER("We must target a hostile!")) return var/mob/living/carbon/target_carbon = target_atom if (target_carbon.stat == DEAD) - to_chat(dancer_user, SPAN_XENOWARNING("[target_atom] is dead, why would you want to attack it?")) + to_chat(dancer_user, SPAN_XENOWARNING("[target_atom] is dead, why would we want to attack it?")) return if (!check_and_use_plasma_owner()) @@ -675,12 +665,12 @@ if (dist > 1) var/turf/targetTurf = get_step(dancer_user, get_dir(dancer_user, target_carbon)) if (targetTurf.density) - to_chat(dancer_user, SPAN_WARNING("You can't attack through [targetTurf]!")) + to_chat(dancer_user, SPAN_WARNING("We can't attack through [targetTurf]!")) return else for (var/atom/atom_in_turf in targetTurf) if (atom_in_turf.density && !atom_in_turf.throwpass && !istype(atom_in_turf, /obj/structure/barricade) && !istype(atom_in_turf, /mob/living)) - to_chat(dancer_user, SPAN_WARNING("You can't attack through [atom_in_turf]!")) + to_chat(dancer_user, SPAN_WARNING("We can't attack through [atom_in_turf]!")) return @@ -714,14 +704,14 @@ if(Xeno.mob_size >= MOB_SIZE_BIG) xeno_smashed = TRUE shake_camera(Xeno, 10, 1) - dancer_user.visible_message(SPAN_XENODANGER("[dancer_user] smashes [Xeno] with it's tail!"), SPAN_XENODANGER("You smash [Xeno] with your tail!")) + dancer_user.visible_message(SPAN_XENODANGER("[dancer_user] smashes [Xeno] with it's tail!"), SPAN_XENODANGER("We smash [Xeno] with your tail!")) to_chat(Xeno, SPAN_XENOHIGHDANGER("You feel dizzy as [dancer_user] smashes you with their tail!")) dancer_user.animation_attack_on(Xeno) if(!xeno_smashed) if (stun_duration > 0) target_carbon.apply_effect(stun_duration, WEAKEN) - dancer_user.visible_message(SPAN_XENODANGER("[dancer_user] trips [target_atom] with it's tail!"), SPAN_XENODANGER("You trip [target_atom] with your tail!")) + dancer_user.visible_message(SPAN_XENODANGER("[dancer_user] trips [target_atom] with it's tail!"), SPAN_XENODANGER("We trip [target_atom] with our tail!")) dancer_user.spin_circle() dancer_user.emote("tail") to_chat(target_carbon, SPAN_XENOHIGHDANGER("You are swept off your feet by [dancer_user]!")) @@ -736,7 +726,9 @@ if (!X.check_state() || X.action_busy) return - if (!action_cooldown_check() && check_and_use_plasma_owner()) + if (!action_cooldown_check()) + return + if (!check_and_use_plasma_owner()) return var/turf/current_turf = get_turf(X) @@ -745,15 +737,13 @@ return if (!do_after(X, activation_delay, INTERRUPT_ALL | BEHAVIOR_IMMOBILE, BUSY_ICON_HOSTILE)) - to_chat(X, SPAN_XENODANGER("You cancel your acid ball.")) + to_chat(X, SPAN_XENODANGER("We cancel our acid ball.")) return - if (!action_cooldown_check()) - return apply_cooldown() - to_chat(X, SPAN_XENOWARNING("You lob a compressed ball of acid into the air!")) + to_chat(X, SPAN_XENOWARNING("We lob a compressed ball of acid into the air!")) var/obj/item/explosive/grenade/xeno_acid_grenade/grenade = new /obj/item/explosive/grenade/xeno_acid_grenade grenade.cause_data = create_cause_data(initial(X.caste_type), X) @@ -775,11 +765,11 @@ return if (!isxeno(A) || !X.can_not_harm(A)) - to_chat(X, SPAN_XENODANGER("You must target one of your sisters!")) + to_chat(X, SPAN_XENODANGER("We must target one of our sisters!")) return if (A == X) - to_chat(X, SPAN_XENODANGER("You cannot heal yourself!")) + to_chat(X, SPAN_XENODANGER("We cannot heal ourself!")) return if (A.z != X.z) @@ -799,33 +789,32 @@ if (curr_effect_type == WARDEN_HEAL_SHIELD) if (SEND_SIGNAL(targetXeno, COMSIG_XENO_PRE_HEAL) & COMPONENT_CANCEL_XENO_HEAL) - to_chat(X, SPAN_XENOWARNING("You cannot heal bolster the defenses of this xeno!")) + to_chat(X, SPAN_XENOWARNING("We cannot bolster the defenses of this xeno!")) return var/bonus_shield = 0 - if (X.mutation_type == PRAETORIAN_WARDEN) - var/datum/behavior_delegate/praetorian_warden/BD = X.behavior_delegate - if (!istype(BD)) - return + var/datum/behavior_delegate/praetorian_warden/behavior = X.behavior_delegate + if (!istype(behavior)) + return - if (!BD.use_internal_hp_ability(shield_cost)) - return + if (!behavior.use_internal_hp_ability(shield_cost)) + return - bonus_shield = BD.internal_hitpoints*0.5 - if (!BD.use_internal_hp_ability(bonus_shield)) - bonus_shield = 0 + bonus_shield = behavior.internal_hitpoints*0.5 + if (!behavior.use_internal_hp_ability(bonus_shield)) + bonus_shield = 0 var/total_shield_amount = shield_amount + bonus_shield if (X.observed_xeno != null) - to_chat(X, SPAN_XENOHIGHDANGER("You cannot shield [targetXeno] as effectively over distance!")) + to_chat(X, SPAN_XENOHIGHDANGER("We cannot shield [targetXeno] as effectively over distance!")) total_shield_amount = total_shield_amount/4 targetXeno.visible_message(SPAN_BOLDNOTICE("[targetXeno]'s exoskeleton shimmers for a fraction of a second."))//marines probably should know if a xeno gets healed else //so both visible messages don't appear at the same time targetXeno.visible_message(SPAN_BOLDNOTICE("[X] points at [targetXeno], and it shudders as its exoskeleton shimmers for a second!")) //this one is a bit less important than healing and rejuvenating - to_chat(X, SPAN_XENODANGER("You bolster the defenses of [targetXeno]!")) //but i imagine it'll be useful for predators, survivors and for battle flavor - to_chat(targetXeno, SPAN_XENOHIGHDANGER("You feel your defenses bolstered by [X]!")) + to_chat(X, SPAN_XENODANGER("We bolster the defenses of [targetXeno]!")) //but i imagine it'll be useful for predators, survivors and for battle flavor + to_chat(targetXeno, SPAN_XENOHIGHDANGER("We feel our defenses bolstered by [X]!")) targetXeno.add_xeno_shield(total_shield_amount, XENO_SHIELD_SOURCE_WARDEN_PRAE, duration = shield_duration, decay_amount_per_second = shield_decay) targetXeno.xeno_jitter(1 SECONDS) @@ -837,62 +826,60 @@ else if (curr_effect_type == WARDEN_HEAL_HP) if (!X.Adjacent(A)) - to_chat(X, SPAN_XENODANGER("You must be within touching distance of [targetXeno]!")) - return - if (targetXeno.mutation_type == PRAETORIAN_WARDEN) - to_chat(X, SPAN_XENODANGER("You cannot heal a sister of the same strain!")) + to_chat(X, SPAN_XENODANGER("We must be within touching distance of [targetXeno]!")) return if (SEND_SIGNAL(targetXeno, COMSIG_XENO_PRE_HEAL) & COMPONENT_CANCEL_XENO_HEAL) - to_chat(X, SPAN_XENOWARNING("You cannot heal this xeno!")) + to_chat(X, SPAN_XENOWARNING("We cannot heal this xeno!")) return var/bonus_heal = 0 + var/datum/behavior_delegate/praetorian_warden/behavior = X.behavior_delegate + if (!istype(behavior)) + return - if (X.mutation_type == PRAETORIAN_WARDEN) - var/datum/behavior_delegate/praetorian_warden/BD = X.behavior_delegate - if (!istype(BD)) - return - - if (!BD.use_internal_hp_ability(heal_cost)) - return + if (!behavior.use_internal_hp_ability(heal_cost)) + return - bonus_heal = BD.internal_hitpoints*0.5 - if (!BD.use_internal_hp_ability(bonus_heal)) - bonus_heal = 0 + bonus_heal = behavior.internal_hitpoints*0.5 + if (!behavior.use_internal_hp_ability(bonus_heal)) + bonus_heal = 0 + + to_chat(X, SPAN_XENOHIGHDANGER("We heal [targetXeno]!")) + to_chat(targetXeno, SPAN_XENOHIGHDANGER("We are healed by [X]!")) + //Amount to heal in this cast of the ability + var/quantity_healed = heal_amount + if(istype(targetXeno.strain, /datum/xeno_strain/warden)) + // Half the healing if warden + quantity_healed = quantity_healed / 2 + else + quantity_healed = quantity_healed + bonus_heal - to_chat(X, SPAN_XENODANGER("You heal [targetXeno]!")) - to_chat(targetXeno, SPAN_XENOHIGHDANGER("You are healed by [X]!")) - targetXeno.gain_health(heal_amount + bonus_heal) + targetXeno.gain_health(quantity_healed) targetXeno.visible_message(SPAN_BOLDNOTICE("[X] places its claws on [targetXeno], and its wounds are quickly sealed!")) //marines probably should know if a xeno gets healed X.gain_health(heal_amount*0.5 + bonus_heal*0.5) X.flick_heal_overlay(3 SECONDS, "#00B800") + behavior.transferred_healing += quantity_healed use_plasma = TRUE //it's already hard enough to gauge health without hp showing on the mob targetXeno.flick_heal_overlay(3 SECONDS, "#00B800")//so the visible_message and recovery overlay will warn marines and possibly predators that the xenomorph has been healed! else if (curr_effect_type == WARDEN_HEAL_DEBUFFS) if (X.observed_xeno != null) - to_chat(X, SPAN_XENOHIGHDANGER("You cannot rejuvenate targets through overwatch!")) + to_chat(X, SPAN_XENOHIGHDANGER("We cannot rejuvenate targets through overwatch!")) return - if (X.mutation_type == PRAETORIAN_WARDEN) - var/datum/behavior_delegate/praetorian_warden/BD = X.behavior_delegate - if (!istype(BD)) - return + var/datum/behavior_delegate/praetorian_warden/behavior = X.behavior_delegate + if (!istype(behavior)) + return - if (!BD.use_internal_hp_ability(debuff_cost)) - return + if (!behavior.use_internal_hp_ability(debuff_cost)) + return - to_chat(X, SPAN_XENODANGER("You rejuvenate [targetXeno]!")) - to_chat(targetXeno, SPAN_XENOHIGHDANGER("You are rejuvenated by [X]!")) + to_chat(X, SPAN_XENOHIGHDANGER("We rejuvenate [targetXeno]!")) + to_chat(targetXeno, SPAN_XENOHIGHDANGER("We are rejuvenated by [X]!")) targetXeno.visible_message(SPAN_BOLDNOTICE("[X] points at [targetXeno], and it spasms as it recuperates unnaturally quickly!")) //marines probably should know if a xeno gets rejuvenated targetXeno.xeno_jitter(1 SECONDS) //it might confuse them as to why the queen got up half a second after being AT rocketed, and give them feedback on the Praetorian rejuvenating targetXeno.flick_heal_overlay(3 SECONDS, "#F5007A") //therefore making the Praetorian a priority target - targetXeno.set_effect(0, PARALYZE) - targetXeno.set_effect(0, STUN) - targetXeno.set_effect(0, WEAKEN) - targetXeno.set_effect(0, DAZE) - targetXeno.set_effect(0, SLOW) - targetXeno.set_effect(0, SUPERSLOW) + targetXeno.clear_debuffs() use_plasma = TRUE if (use_plasma) use_plasma_owner() @@ -905,24 +892,20 @@ if(!istype(X)) return - var/datum/behavior_delegate/praetorian_warden/BD = X.behavior_delegate - if(!istype(BD)) + var/datum/behavior_delegate/praetorian_warden/behavior = X.behavior_delegate + if(!istype(behavior)) return if(X.observed_xeno != null) - to_chat(X, SPAN_XENOHIGHDANGER("You cannot retrieve sisters through overwatch!")) + to_chat(X, SPAN_XENOHIGHDANGER("We cannot retrieve sisters through overwatch!")) return if(!isxeno(A) || !X.can_not_harm(A)) - to_chat(X, SPAN_XENODANGER("You must target one of your sisters!")) + to_chat(X, SPAN_XENODANGER("We must target one of our sisters!")) return if(A == X) - to_chat(X, SPAN_XENODANGER("You cannot retrieve yourself!")) - return - - if(X.anchored) - to_chat(X, SPAN_XENODANGER("That sister cannot move!")) + to_chat(X, SPAN_XENODANGER("We cannot retrieve ourself!")) return if(!(A in view(7, X))) @@ -931,6 +914,10 @@ var/mob/living/carbon/xenomorph/targetXeno = A + if(targetXeno.anchored) + to_chat(X, SPAN_XENODANGER("That sister cannot move!")) + return + if(!(targetXeno.resting || targetXeno.stat == UNCONSCIOUS)) if(targetXeno.mob_size > MOB_SIZE_BIG) to_chat(X, SPAN_WARNING("[targetXeno] is too big to retrieve while standing up!")) @@ -949,7 +936,7 @@ if(!check_plasma_owner()) return - if(!BD.use_internal_hp_ability(retrieve_cost)) + if(!behavior.use_internal_hp_ability(retrieve_cost)) return if(!check_and_use_plasma_owner()) @@ -979,7 +966,7 @@ blocked = TRUE break if(blocked) - to_chat(X, SPAN_XENOWARNING("You can't reach [targetXeno] with your resin retrieval hook!")) + to_chat(X, SPAN_XENOWARNING("We can't reach [targetXeno] with our resin retrieval hook!")) return T = temp @@ -992,10 +979,10 @@ telegraph_atom_list += new /obj/effect/xenomorph/xeno_telegraph/green(T, windup) if(!length(turflist)) - to_chat(X, SPAN_XENOWARNING("You don't have any room to do your retrieve!")) + to_chat(X, SPAN_XENOWARNING("We don't have any room to do our retrieve!")) return - X.visible_message(SPAN_XENODANGER("[X] prepares to fire its resin retrieval hook at [A]!"), SPAN_XENODANGER("You prepare to fire your resin retrieval hook at [A]!")) + X.visible_message(SPAN_XENODANGER("[X] prepares to fire its resin retrieval hook at [A]!"), SPAN_XENODANGER("We prepare to fire our resin retrieval hook at [A]!")) X.emote("roar") var/throw_target_turf = get_step(X.loc, facing) @@ -1006,7 +993,7 @@ ADD_TRAIT(X, TRAIT_IMMOBILIZED, TRAIT_SOURCE_ABILITY("Praetorian Retrieve")) if(windup) if(!do_after(X, windup, INTERRUPT_NO_NEEDHAND, BUSY_ICON_HOSTILE, numticks = 1)) - to_chat(X, SPAN_XENOWARNING("You cancel your retrieve.")) + to_chat(X, SPAN_XENOWARNING("We cancel our retrieve.")) apply_cooldown() for (var/obj/effect/xenomorph/xeno_telegraph/XT in telegraph_atom_list) @@ -1028,18 +1015,18 @@ break if(!successful_retrieve) - to_chat(X, SPAN_XENOWARNING("You can't reach [targetXeno] with your resin retrieval hook!")) + to_chat(X, SPAN_XENOWARNING("We can't reach [targetXeno] with our resin retrieval hook!")) return - to_chat(targetXeno, SPAN_XENOBOLDNOTICE("You are pulled toward [X]!")) + to_chat(targetXeno, SPAN_XENOBOLDNOTICE("We are pulled toward [X]!")) shake_camera(targetXeno, 10, 1) var/throw_dist = get_dist(throw_target_turf, targetXeno)-1 if(throw_target_turf == behind_turf) throw_dist++ - to_chat(X, SPAN_XENOBOLDNOTICE("You fling [targetXeno] over your head with your resin hook, and they land behind you!")) + to_chat(X, SPAN_XENOBOLDNOTICE("We fling [targetXeno] over our head with our resin hook, and they land behind us!")) else - to_chat(X, SPAN_XENOBOLDNOTICE("You fling [targetXeno] towards you with your resin hook, and they in front of you!")) + to_chat(X, SPAN_XENOBOLDNOTICE("We fling [targetXeno] towards us with our resin hook, and they land in front of us!")) targetXeno.throw_atom(throw_target_turf, throw_dist, SPEED_VERY_FAST, pass_flags = PASS_MOB_THRU) apply_cooldown() return ..() diff --git a/code/modules/mob/living/carbon/xenomorph/abilities/predalien/predalien_abilities.dm b/code/modules/mob/living/carbon/xenomorph/abilities/predalien/predalien_abilities.dm index aa98f063b8d5..b1358e30c26b 100644 --- a/code/modules/mob/living/carbon/xenomorph/abilities/predalien/predalien_abilities.dm +++ b/code/modules/mob/living/carbon/xenomorph/abilities/predalien/predalien_abilities.dm @@ -1,14 +1,22 @@ -/datum/action/xeno_action/activable/pounce/predalien - name = "Leap" + +/datum/action/xeno_action/onclick/feralrush + name = "Feral Rush" + action_icon_state = "charge_spit" + ability_name = "toughen up" + macro_path = /datum/action/xeno_action/verb/verb_feralrush ability_primacy = XENO_PRIMARY_ACTION_1 + action_type = XENO_ACTION_ACTIVATE + xeno_cooldown = 12 SECONDS + + // Config + var/speed_duration = 3 SECONDS + var/armor_duration = 6 SECONDS + var/speed_buff_amount = 0.8 // Go from shit slow to kindafast + var/armor_buff_amount = 10 // hopefully-minor buff so they can close the distance - knockdown = FALSE + var/speed_buff = FALSE + var/armor_buff = FALSE - distance = 5 - knockdown = FALSE // Should we knock down the target? - slash = FALSE // Do we slash upon reception? - freeze_self = FALSE // Should we freeze ourselves after the lunge? - should_destroy_objects = TRUE // Only used for ravager charge /datum/action/xeno_action/onclick/predalien_roar name = "Roar" @@ -16,37 +24,53 @@ ability_name = "roar" action_type = XENO_ACTION_CLICK ability_primacy = XENO_PRIMARY_ACTION_2 + macro_path = /datum/action/xeno_action/verb/verb_predalien_roar xeno_cooldown = 25 SECONDS - plasma_cost = 50 - var/predalien_roar = list("sound/voice/predalien_roar.ogg") var/bonus_damage_scale = 2.5 var/bonus_speed_scale = 0.05 -/datum/action/xeno_action/onclick/smash - name = "Smash" - action_icon_state = "stomp" - ability_name = "smash" +/datum/action/xeno_action/activable/feral_smash + name = "Feral Smash" + ability_name = "Feral Smash" + action_icon_state = "lunge" action_type = XENO_ACTION_CLICK + macro_path = /datum/action/xeno_action/verb/feral_smash ability_primacy = XENO_PRIMARY_ACTION_3 xeno_cooldown = 20 SECONDS - plasma_cost = 80 - - var/freeze_duration = 1.5 SECONDS - var/activation_delay = 1 SECONDS - var/smash_sounds = list('sound/effects/alien_footstep_charge1.ogg', 'sound/effects/alien_footstep_charge2.ogg', 'sound/effects/alien_footstep_charge3.ogg') + // Configurables + var/grab_range = 4 + var/click_miss_cooldown = 15 + var/twitch_message_cooldown = 0 //apparently this is necessary for a tiny code that makes the lunge message on cooldown not be spammable, doesn't need to be big so 5 will do. + var/smash_damage = 20 + var/smash_scale = 10 + var/stun_duration = 2 SECONDS -/datum/action/xeno_action/activable/devastate - name = "Devastate" - action_icon_state = "gut" - ability_name = "devastate" +/datum/action/xeno_action/activable/feralfrenzy + name = "Feral Frenzy" + action_icon_state = "rav_eviscerate" + ability_name = "Feral Frenzy" action_type = XENO_ACTION_CLICK ability_primacy = XENO_PRIMARY_ACTION_4 - xeno_cooldown = 20 SECONDS - plasma_cost = 110 - - var/activation_delay = 1 SECONDS + macro_path = /datum/action/xeno_action/verb/verb_feralfrenzy + xeno_cooldown = 15 SECONDS + //AOE + var/activation_delay_aoe = 1 SECONDS + var/base_damage_aoe = 15 + var/damage_scale_aoe = 10 + //SINGLE TARGET + var/activation_delay = 0.5 SECONDS var/base_damage = 25 - var/damage_scale = 10 // How much it scales by every kill + var/damage_scale = 10 + var/targeting = SINGLETARGETGUT + /// The orange used for a AOETARGETGUT + var/range = 2 + +/datum/action/xeno_action/onclick/toggle_gut_targeting + name = "Toggle Gutting Type" + action_icon_state = "gut" // starting targetting is SINGLETARGETGUT + macro_path = /datum/action/xeno_action/verb/verb_toggle_gut_targeting + action_type = XENO_ACTION_ACTIVATE + ability_primacy = XENO_PRIMARY_ACTION_5 diff --git a/code/modules/mob/living/carbon/xenomorph/abilities/predalien/predalien_macros.dm b/code/modules/mob/living/carbon/xenomorph/abilities/predalien/predalien_macros.dm new file mode 100644 index 000000000000..450a0ac67745 --- /dev/null +++ b/code/modules/mob/living/carbon/xenomorph/abilities/predalien/predalien_macros.dm @@ -0,0 +1,35 @@ +/datum/action/xeno_action/verb/verb_feralfrenzy() + set category = "Alien" + set name = "Feral Frenzy" + set hidden = TRUE + var/action_name = "Feral Frenzy" + handle_xeno_macro(src, action_name) + +/datum/action/xeno_action/verb/verb_toggle_gut_targeting() + set category = "Alien" + set name = "Toggle Gutting Type" + set hidden = TRUE + var/action_name = "Toggle Gutting Type" + handle_xeno_macro(src, action_name) + + +/datum/action/xeno_action/verb/verb_feralrush() + set category = "Alien" + set name = "Feral Rush" + set hidden = TRUE + var/action_name = "Feral Rush" + handle_xeno_macro(src, action_name) + +/datum/action/xeno_action/verb/verb_predalien_roar() + set category = "Alien" + set name = "Predalien Roar" + set hidden = TRUE + var/action_name = "Roar" + handle_xeno_macro(src, action_name) + +/datum/action/xeno_action/verb/feral_smash() + set category = "Alien" + set name = "Feral Smash" + set hidden = TRUE + var/action_name = "Feral Smash" + handle_xeno_macro(src, action_name) diff --git a/code/modules/mob/living/carbon/xenomorph/abilities/predalien/predalien_powers.dm b/code/modules/mob/living/carbon/xenomorph/abilities/predalien/predalien_powers.dm index 3c475743c0bf..3ec4855f9c3a 100644 --- a/code/modules/mob/living/carbon/xenomorph/abilities/predalien/predalien_powers.dm +++ b/code/modules/mob/living/carbon/xenomorph/abilities/predalien/predalien_powers.dm @@ -1,13 +1,10 @@ -/datum/action/xeno_action/activable/pounce/predalien/pre_pounce_effects() - playsound(owner, 'sound/voice/predalien_pounce.ogg', 75, 0, status = 0) - /datum/action/xeno_action/onclick/predalien_roar/use_ability(atom/target) var/mob/living/carbon/xenomorph/xeno = owner - if (!action_cooldown_check()) + if(!action_cooldown_check()) return - if (!xeno.check_state()) + if(!xeno.check_state()) return if(!check_and_use_plasma_owner()) @@ -15,8 +12,7 @@ playsound(xeno.loc, pick(predalien_roar), 75, 0, status = 0) xeno.visible_message(SPAN_XENOHIGHDANGER("[xeno] emits a guttural roar!")) - xeno.create_shriekwave(color = "#FF0000") - + xeno.create_shriekwave(7) //Adds the visual effect. Wom wom wom, 7 shriekwaves for(var/mob/living/carbon/carbon in view(7, xeno)) if(ishuman(carbon)) var/mob/living/carbon/human/human = carbon @@ -34,124 +30,258 @@ continue new /datum/effects/xeno_buff(carbon, xeno, ttl = (0.25 SECONDS * behavior.kills + 3 SECONDS), bonus_damage = bonus_damage_scale * behavior.kills, bonus_speed = (bonus_speed_scale * behavior.kills)) - - for(var/mob/M in view(xeno)) - if(M && M.client) - shake_camera(M, 10, 1) - apply_cooldown() return ..() -/datum/action/xeno_action/onclick/smash/use_ability(atom/target) +/datum/action/xeno_action/activable/feralfrenzy/use_ability(atom/target) var/mob/living/carbon/xenomorph/xeno = owner - - if (!action_cooldown_check()) + if(!action_cooldown_check() || xeno.action_busy) + return + if(!xeno.check_state()) return - if (!xeno.check_state()) + var/datum/behavior_delegate/predalien_base/predalienbehavior = xeno.behavior_delegate + if(!istype(predalienbehavior)) return + if(targeting == AOETARGETGUT) + xeno.visible_message(SPAN_XENOHIGHDANGER("[xeno] begins digging in for a massive strike!"), SPAN_XENOHIGHDANGER("We begin digging in for a massive strike!")) + ADD_TRAIT(xeno, TRAIT_IMMOBILIZED, TRAIT_SOURCE_ABILITY("Eviscerate")) + xeno.anchored = TRUE + if (do_after(xeno, (activation_delay_aoe), INTERRUPT_ALL | BEHAVIOR_IMMOBILE, BUSY_ICON_HOSTILE)) + xeno.emote("roar") + xeno.spin_circle() + + for (var/mob/living/carbon/carbon in orange(xeno, range)) + if(!isliving(carbon) || xeno.can_not_harm(carbon)) + continue + + if (carbon.stat == DEAD) + continue + + if(!check_clear_path_to_target(xeno, carbon)) + continue + + xeno.visible_message(SPAN_XENOHIGHDANGER("[xeno] rips open the guts of [carbon]!"), SPAN_XENOHIGHDANGER("We rip open the guts of [carbon]!")) + carbon.spawn_gibs() + xeno.animation_attack_on(carbon) + xeno.spin_circle() + xeno.flick_attack_overlay(carbon, "tail") + playsound(get_turf(carbon), 'sound/effects/gibbed.ogg', 30, 1) + carbon.apply_effect(get_xeno_stun_duration(carbon, 0.5), WEAKEN) + playsound(get_turf(carbon), "alien_claw_flesh", 30, 1) + carbon.apply_armoured_damage(get_xeno_damage_slash(carbon, base_damage_aoe + damage_scale_aoe * predalienbehavior.kills), ARMOR_MELEE, BRUTE, "chest", 20) + playsound(owner, 'sound/voice/predalien_death.ogg', 75, 0, status = 0) + REMOVE_TRAIT(xeno, TRAIT_IMMOBILIZED, TRAIT_SOURCE_ABILITY("Eviscerate")) + xeno.anchored = FALSE + apply_cooldown() + return ..() - var/datum/behavior_delegate/predalien_base/behavior = xeno.behavior_delegate - if(!istype(behavior)) + //single target checks + if(xeno.can_not_harm(target)) + to_chat(xeno, SPAN_XENOWARNING("We must target a hostile!")) return - if(!check_plasma_owner()) + if(!isliving(target)) return - if(!do_after(xeno, activation_delay, INTERRUPT_ALL, BUSY_ICON_GENERIC)) - to_chat(xeno, "Keep still whilst trying to smash into the ground") + if(get_dist_sqrd(target, xeno) > 2) + to_chat(xeno, SPAN_XENOWARNING("[target] is too far away!")) + return - var/real_cooldown = xeno_cooldown + var/mob/living/carbon/carbon = target - xeno_cooldown = 3 SECONDS + if(carbon.stat == DEAD) + to_chat(xeno, SPAN_XENOWARNING("[carbon] is dead, why would we want to touch them?")) + return + if(targeting == SINGLETARGETGUT) // single target + ADD_TRAIT(carbon, TRAIT_IMMOBILIZED, TRAIT_SOURCE_ABILITY("Devastate")) apply_cooldown() - xeno_cooldown = real_cooldown + + ADD_TRAIT(xeno, TRAIT_IMMOBILIZED, TRAIT_SOURCE_ABILITY("Devastate")) + xeno.anchored = TRUE + + if(do_after(xeno, activation_delay, INTERRUPT_ALL | BEHAVIOR_IMMOBILE, BUSY_ICON_HOSTILE)) + xeno.visible_message(SPAN_XENOHIGHDANGER("[xeno] rips open the guts of [carbon]!"), SPAN_XENOHIGHDANGER("We rapidly slice into [carbon]!")) + carbon.spawn_gibs() + playsound(get_turf(carbon), 'sound/effects/gibbed.ogg', 50, 1) + carbon.apply_effect(get_xeno_stun_duration(carbon, 0.5), WEAKEN) + carbon.apply_armoured_damage(get_xeno_damage_slash(carbon, base_damage + damage_scale * predalienbehavior.kills), ARMOR_MELEE, BRUTE, "chest", 20) + + xeno.animation_attack_on(carbon) + xeno.spin_circle() + xeno.flick_attack_overlay(carbon, "tail") + + playsound(owner, 'sound/voice/predalien_growl.ogg', 50, 0, status = 0) + + REMOVE_TRAIT(xeno, TRAIT_IMMOBILIZED, TRAIT_SOURCE_ABILITY("Devastate")) + xeno.anchored = FALSE + unroot_human(carbon, TRAIT_SOURCE_ABILITY("Devastate")) + + return ..() + + +/datum/action/xeno_action/onclick/feralrush/use_ability(atom/A) + var/mob/living/carbon/xenomorph/predatoralien = owner + + if(!action_cooldown_check()) + return + + if(!istype(predatoralien) || !predatoralien.check_state()) + return + + if(armor_buff && speed_buff) + to_chat(predatoralien, SPAN_XENOHIGHDANGER("We cannot stack this!")) return if(!check_and_use_plasma_owner()) return - playsound(xeno.loc, pick(smash_sounds), 50, 0, status = 0) - xeno.visible_message(SPAN_XENOHIGHDANGER("[xeno] smashes into the ground!")) - xeno.create_stomp() + addtimer(CALLBACK(src, PROC_REF(remove_rush_effects)), speed_duration) + addtimer(CALLBACK(src, PROC_REF(remove_armor_effects)), armor_duration) // calculate armor and speed differently, so it's a bit more armored while trying to get out + predatoralien.add_filter("predalien_toughen", 1, list("type" = "outline", "color" = "#421313", "size" = 1)) + to_chat(predatoralien, SPAN_XENOWARNING("We feel our muscles tense as our speed and armor increase!")) + speed_buff = TRUE + armor_buff = TRUE + predatoralien.speed_modifier -= speed_buff_amount + predatoralien.armor_modifier += armor_buff_amount + predatoralien.recalculate_speed() + predatoralien.recalculate_armor() + playsound(predatoralien, 'sound/voice/predalien_growl.ogg', 75, 0, status = 0) + apply_cooldown() - for(var/mob/living/carbon/carbon in oview(round(behavior.kills * 0.5 + 2), xeno)) - if(!xeno.can_not_harm(carbon) && carbon.stat != DEAD) - ADD_TRAIT(carbon, TRAIT_IMMOBILIZED, TRAIT_SOURCE_ABILITY("Smash")) - if (ishuman(carbon)) - var/mob/living/carbon/human/human = carbon - human.update_xeno_hostile_hud() +/datum/action/xeno_action/onclick/feralrush/proc/remove_rush_effects() + SIGNAL_HANDLER + var/mob/living/carbon/xenomorph/predatoralien = owner + if(speed_buff == TRUE) + to_chat(predatoralien, SPAN_XENOWARNING("Our muscles relax as we feel our speed wane.")) + predatoralien.remove_filter("predalien_toughen") + predatoralien.speed_modifier += speed_buff_amount + predatoralien.recalculate_speed() + speed_buff = FALSE - addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(unroot_human), carbon, TRAIT_SOURCE_ABILITY("Smash")), get_xeno_stun_duration(carbon, freeze_duration)) +/datum/action/xeno_action/onclick/feralrush/proc/remove_armor_effects() + SIGNAL_HANDLER + var/mob/living/carbon/xenomorph/predatoralien = owner + if(armor_buff) + to_chat(predatoralien, SPAN_XENOWARNING("We are no longer armored.")) + predatoralien.armor_modifier -= armor_buff_amount + predatoralien.recalculate_armor() + armor_buff = FALSE - for(var/mob/M in view(xeno)) - if(M && M.client) - shake_camera(M, 0.2 SECONDS, 1) - apply_cooldown() - return ..() +/datum/action/xeno_action/onclick/toggle_gut_targeting/use_ability(atom/A) -/datum/action/xeno_action/activable/devastate/use_ability(atom/target) var/mob/living/carbon/xenomorph/xeno = owner + var/action_icon_result - if (!action_cooldown_check()) + if(!xeno.check_state()) return - if (!xeno.check_state()) + var/datum/action/xeno_action/activable/feralfrenzy/guttype = get_xeno_action_by_type(xeno, /datum/action/xeno_action/activable/feralfrenzy) + if(!guttype) return - if (!isxeno_human(target) || xeno.can_not_harm(target)) - to_chat(xeno, SPAN_XENOWARNING("You must target a hostile!")) - return + if(guttype.targeting == SINGLETARGETGUT) + action_icon_result = "rav_scissor_cut" + guttype.targeting = AOETARGETGUT + to_chat(xeno, SPAN_XENOWARNING("We will now attack everyone around us during a Feral Frenzy.")) + else + action_icon_result = "gut" + guttype.targeting = SINGLETARGETGUT + to_chat(xeno, SPAN_XENOWARNING("We will now focus our Feral Frenzy on one person!")) + + button.overlays.Cut() + button.overlays += image('icons/mob/hud/actions_xeno.dmi', button, action_icon_result) + return ..() - if (get_dist_sqrd(target, xeno) > 2) - to_chat(xeno, SPAN_XENOWARNING("[target] is too far away!")) - return +/datum/action/xeno_action/activable/feral_smash/use_ability(atom/affected_atom) + var/mob/living/carbon/xenomorph/predalien_smash = owner + var/datum/behavior_delegate/predalien_base/predalienbehavior = predalien_smash.behavior_delegate - var/mob/living/carbon/carbon = target + if(!action_cooldown_check()) + if(twitch_message_cooldown < world.time ) + predalien_smash.visible_message(SPAN_XENOWARNING("[predalien_smash]'s muscles twitch."), SPAN_XENOWARNING("Our claws twitch as we try to grab onto the target but lack the strength. Wait a moment to try again.")) + twitch_message_cooldown = world.time + 5 SECONDS + return //this gives a little feedback on why your lunge didn't hit other than the lunge button going grey. Plus, it might spook marines that almost got lunged if they know why the message appeared, and extra spookiness is always good. - if (carbon.stat == DEAD) - to_chat(xeno, SPAN_XENOWARNING("[carbon] is dead, why would you want to touch them?")) + if(!affected_atom) return - var/datum/behavior_delegate/predalien_base/behavior = xeno.behavior_delegate - if(!istype(behavior)) + if(!isturf(predalien_smash.loc)) + to_chat(predalien_smash, SPAN_XENOWARNING("We can't lunge from here!")) return - if (!check_and_use_plasma_owner()) + if(!predalien_smash.check_state() || predalien_smash.agility) return - ADD_TRAIT(carbon, TRAIT_IMMOBILIZED, TRAIT_SOURCE_ABILITY("Devastate")) - - if (ishuman(carbon)) - var/mob/living/carbon/human/human = carbon - human.update_xeno_hostile_hud() - - apply_cooldown() - - ADD_TRAIT(xeno, TRAIT_IMMOBILIZED, TRAIT_SOURCE_ABILITY("Devastate")) - xeno.anchored = TRUE + if(predalien_smash.can_not_harm(affected_atom) || !ismob(affected_atom)) + apply_cooldown_override(click_miss_cooldown) + return - if (do_after(xeno, activation_delay, INTERRUPT_ALL | BEHAVIOR_IMMOBILE, BUSY_ICON_HOSTILE)) - xeno.visible_message(SPAN_XENOHIGHDANGER("[xeno] rips open the guts of [carbon]!"), SPAN_XENOHIGHDANGER("You rip open the guts of [carbon]!")) - carbon.spawn_gibs() - playsound(get_turf(carbon), 'sound/effects/gibbed.ogg', 75, 1) - carbon.apply_effect(get_xeno_stun_duration(carbon, 0.5), WEAKEN) - carbon.apply_armoured_damage(get_xeno_damage_slash(carbon, base_damage + damage_scale * behavior.kills), ARMOR_MELEE, BRUTE, "chest", 20) - xeno.animation_attack_on(carbon) - xeno.spin_circle() - xeno.flick_attack_overlay(carbon, "tail") + var/mob/living/carbon/carbon = affected_atom + if(carbon.stat == DEAD) + return - playsound(owner, 'sound/voice/predalien_growl.ogg', 75, 0, status = 0) + if(!isliving(affected_atom)) + return - REMOVE_TRAIT(xeno, TRAIT_IMMOBILIZED, TRAIT_SOURCE_ABILITY("Devastate")) - xeno.anchored = FALSE - unroot_human(carbon, TRAIT_SOURCE_ABILITY("Devastate")) + if(!check_and_use_plasma_owner()) + return - xeno.visible_message(SPAN_XENODANGER("[xeno] rapidly slices into [carbon]!")) + apply_cooldown() + predalien_smash.throw_atom(get_step_towards(affected_atom, predalien_smash), grab_range, SPEED_FAST, predalien_smash) + + if(predalien_smash.Adjacent(carbon) && predalien_smash.start_pulling(carbon, TRUE)) + playsound(carbon.pulledby, 'sound/voice/predalien_growl.ogg', 75, 0, status = 0) // bang and roar for dramatic effect + playsound(carbon, 'sound/effects/bang.ogg', 25, 0) + animate(carbon, pixel_y = carbon.pixel_y + 32, time = 4, easing = SINE_EASING) + sleep(4) + playsound(carbon, 'sound/effects/bang.ogg', 25, 0) + playsound(carbon,"slam", 50, 1) + animate(carbon, pixel_y = 0, time = 4, easing = BOUNCE_EASING) //animates the smash + carbon.apply_armoured_damage(get_xeno_damage_slash(carbon, smash_damage + smash_scale * predalienbehavior.kills), ARMOR_MELEE, BRUTE, "chest", 20) + else + predalien_smash.visible_message(SPAN_XENOWARNING("[predalien_smash]'s claws twitch."), SPAN_XENOWARNING("We couldn't grab our target. Wait a moment to try again.")) + + return TRUE + +/mob/living/carbon/xenomorph/predalien/stop_pulling() + if(isliving(pulling) && smashing) + smashing = FALSE // To avoid extreme cases of stopping a lunge then quickly pulling and stopping to pull someone else + var/mob/living/smashed = pulling + smashed.set_effect(0, STUN) + smashed.set_effect(0, WEAKEN) return ..() + +/mob/living/carbon/xenomorph/predalien/start_pulling(atom/movable/movable_atom, feral_smash) + if(!check_state()) + return FALSE + + if(!isliving(movable_atom)) + return FALSE + var/mob/living/living_mob = movable_atom + var/should_neckgrab = !(src.can_not_harm(living_mob)) && feral_smash + + + . = ..(living_mob, feral_smash, should_neckgrab) + + if(.) //successful pull + if(isxeno(living_mob)) + var/mob/living/carbon/xenomorph/xeno = living_mob + if(xeno.tier >= 2) // Tier 2 castes or higher immune to warrior grab stuns + return + + if(should_neckgrab && living_mob.mob_size < MOB_SIZE_BIG) + visible_message(SPAN_XENOWARNING("[src] grabs [living_mob] by the back of their leg and slams them onto the ground!"), \ + SPAN_XENOWARNING("We grab [living_mob] by the back of their leg and slam them onto the ground!")) // more flair + smashing = TRUE + living_mob.drop_held_items() + var/duration = get_xeno_stun_duration(living_mob, 1) + living_mob.KnockDown(duration) + living_mob.Stun(duration) + addtimer(VARSET_CALLBACK(src, smashing, FALSE), duration) diff --git a/code/modules/mob/living/carbon/xenomorph/abilities/queen/queen_abilities.dm b/code/modules/mob/living/carbon/xenomorph/abilities/queen/queen_abilities.dm index 50fa9fd92b2c..ebcd29ded29d 100644 --- a/code/modules/mob/living/carbon/xenomorph/abilities/queen/queen_abilities.dm +++ b/code/modules/mob/living/carbon/xenomorph/abilities/queen/queen_abilities.dm @@ -1,8 +1,3 @@ -/datum/action/xeno_action/onclick/deevolve - name = "De-Evolve a Xenomorph (500)" - action_icon_state = "xeno_deevolve" - plasma_cost = 500 - /datum/action/xeno_action/onclick/remove_eggsac name = "Remove Eggsac" action_icon_state = "grow_ovipositor" @@ -43,25 +38,12 @@ var/node_plant_cooldown = 7 SECONDS var/node_plant_plasma_cost = 300 - var/turf_build_cooldown = 7 SECONDS + var/turf_build_cooldown = 10 SECONDS -/datum/action/xeno_action/onclick/give_evo_points - name = "Trade Larva for Evolution Points (100)" - action_icon_state = "queen_give_evo_points" - plasma_cost = 100 - xeno_cooldown = 60 SECONDS - var/evo_points_per_larva = 250 - var/required_larva = 3 - -/datum/action/xeno_action/onclick/banish - name = "Banish a Xenomorph (500)" - action_icon_state = "xeno_banish" - plasma_cost = 500 - -/datum/action/xeno_action/onclick/readmit - name = "Readmit a Xenomorph (100)" +/datum/action/xeno_action/onclick/manage_hive + name = "Manage The Hive" action_icon_state = "xeno_readmit" - plasma_cost = 100 + plasma_cost = 0 /datum/action/xeno_action/activable/secrete_resin/remote/queen name = "Projected Resin (100)" @@ -80,6 +62,10 @@ . = ..() SSticker.OnRoundstart(CALLBACK(src, PROC_REF(apply_queen_build_boost))) +// queenos don't need weeds under them to build on ovi +/datum/action/xeno_action/activable/secrete_resin/remote/queen/can_remote_build() + return TRUE + /datum/action/xeno_action/activable/secrete_resin/remote/queen/proc/apply_queen_build_boost() var/boost_duration = 30 MINUTES // In the event secrete_resin is given after round start diff --git a/code/modules/mob/living/carbon/xenomorph/abilities/queen/queen_powers.dm b/code/modules/mob/living/carbon/xenomorph/abilities/queen/queen_powers.dm index 65769eac9cdf..381acba92a51 100644 --- a/code/modules/mob/living/carbon/xenomorph/abilities/queen/queen_powers.dm +++ b/code/modules/mob/living/carbon/xenomorph/abilities/queen/queen_powers.dm @@ -1,6 +1,7 @@ // devolve a xeno - lots of old, vaguely shitty code here -/datum/action/xeno_action/onclick/deevolve/use_ability(atom/Atom) +/datum/action/xeno_action/onclick/manage_hive/proc/de_evolve_other() var/mob/living/carbon/xenomorph/queen/user_xeno = owner + var/plasma_cost_devolve = 500 if(!user_xeno.check_state()) return if(!user_xeno.observed_xeno) @@ -8,7 +9,7 @@ return var/mob/living/carbon/xenomorph/target_xeno = user_xeno.observed_xeno - if(!user_xeno.check_plasma(plasma_cost)) + if(!user_xeno.check_plasma(plasma_cost_devolve)) return if(target_xeno.hivenumber != user_xeno.hivenumber) @@ -86,7 +87,9 @@ xeno_type = /mob/living/carbon/xenomorph/defender if(XENO_CASTE_BURROWER) xeno_type = /mob/living/carbon/xenomorph/burrower - + var/obj/item/organ/xeno/organ = locate() in src + if(!isnull(organ)) + qdel(organ) //From there, the new xeno exists, hopefully var/mob/living/carbon/xenomorph/new_xeno = new xeno_type(get_turf(target_xeno), target_xeno) @@ -115,7 +118,7 @@ remove_verb(new_xeno, /mob/living/carbon/xenomorph/verb/Deevolve) new_xeno.visible_message(SPAN_XENODANGER("A [new_xeno.caste.caste_type] emerges from the husk of \the [target_xeno]."), \ - SPAN_XENODANGER("[user_xeno] makes you regress into your previous form.")) + SPAN_XENODANGER("[user_xeno] makes us regress into your previous form.")) if(user_xeno.hive.living_xeno_queen && user_xeno.hive.living_xeno_queen.observed_xeno == target_xeno) user_xeno.hive.living_xeno_queen.overwatch(new_xeno) @@ -130,7 +133,7 @@ SSround_recording.recorder.stop_tracking(target_xeno) SSround_recording.recorder.track_player(new_xeno) qdel(target_xeno) - return ..() + return /datum/action/xeno_action/onclick/remove_eggsac/use_ability(atom/A) var/mob/living/carbon/xenomorph/queen/X = owner @@ -213,8 +216,8 @@ return var/datum/hive_status/hive = X.hive if(X.observed_xeno) - if(!hive.open_xeno_leader_positions.len && X.observed_xeno.hive_pos == NORMAL_XENO) - to_chat(X, SPAN_XENOWARNING("You currently have [hive.xeno_leader_list.len] promoted leaders. You may not maintain additional leaders until your power grows.")) + if(!length(hive.open_xeno_leader_positions) && X.observed_xeno.hive_pos == NORMAL_XENO) + to_chat(X, SPAN_XENOWARNING("You currently have [length(hive.xeno_leader_list)] promoted leaders. You may not maintain additional leaders until your power grows.")) return var/mob/living/carbon/xenomorph/T = X.observed_xeno if(T == X) @@ -236,12 +239,12 @@ for(var/mob/living/carbon/xenomorph/T in hive.xeno_leader_list) possible_xenos += T - if(possible_xenos.len > 1) + if(length(possible_xenos) > 1) var/mob/living/carbon/xenomorph/selected_xeno = tgui_input_list(X, "Target", "Watch which leader?", possible_xenos, theme="hive_status") if(!selected_xeno || selected_xeno.hive_pos == NORMAL_XENO || selected_xeno == X.observed_xeno || selected_xeno.stat == DEAD || selected_xeno.z != X.z || !X.check_state()) return X.overwatch(selected_xeno) - else if(possible_xenos.len) + else if(length(possible_xenos)) X.overwatch(possible_xenos[1]) else to_chat(X, SPAN_XENOWARNING("There are no Xenomorph leaders. Overwatch a Xenomorph to make it a leader.")) @@ -292,23 +295,27 @@ to_chat(X, SPAN_XENONOTICE("You channel your plasma to heal your sisters' wounds around this area.")) return ..() -/datum/action/xeno_action/onclick/give_evo_points/use_ability(atom/Atom) +/datum/action/xeno_action/onclick/manage_hive/proc/give_evo_points() var/mob/living/carbon/xenomorph/queen/user_xeno = owner + var/plasma_cost_givepoints = 100 + + if(!user_xeno.check_state()) return - if(!user_xeno.check_plasma(plasma_cost)) + if(!user_xeno.check_plasma(plasma_cost_givepoints)) return if(world.time < SSticker.mode.round_time_lobby + SHUTTLE_TIME_LOCK) - to_chat(usr, SPAN_XENOWARNING("You must give some time for larva to spawn before sacrificing them. Please wait another [round((SSticker.mode.round_time_lobby + SHUTTLE_TIME_LOCK - world.time) / 600)] minutes.")) + to_chat(usr, SPAN_XENOWARNING("You must give some time for larva to spawn before sacrificing them. Please wait another [floor((SSticker.mode.round_time_lobby + SHUTTLE_TIME_LOCK - world.time) / 600)] minutes.")) return var/choice = tgui_input_list(user_xeno, "Choose a xenomorph to give evolution points for a burrowed larva:", "Give Evolution Points", user_xeno.hive.totalXenos, theme="hive_status") if(!choice) return - + var/evo_points_per_larva = 250 + var/required_larva = 1 var/mob/living/carbon/xenomorph/target_xeno for(var/mob/living/carbon/xenomorph/xeno in user_xeno.hive.totalXenos) @@ -351,14 +358,161 @@ target_xeno.evolution_stored += evo_points_per_larva user_xeno.hive.stored_larva-- - return ..() + return + + -/datum/action/xeno_action/onclick/banish/use_ability(atom/Atom) +/datum/action/xeno_action/onclick/manage_hive/proc/give_jelly_reward() + var/mob/living/carbon/xenomorph/queen/xeno = owner + var/plasma_cost_jelly = 500 + if(!xeno.check_state()) + return + if(!xeno.check_plasma(plasma_cost_jelly)) + return + if(give_jelly_award(xeno.hive)) + xeno.use_plasma(plasma_cost_jelly) + return +/datum/action/xeno_action/onclick/manage_hive/use_ability(atom/Atom) + var/mob/living/carbon/xenomorph/queen/queen_manager = owner + plasma_cost = 0 + var/list/options = list("Banish (500)", "Re-Admit (100)", "De-evolve (500)", "Reward Jelly (500)", "Exchange larva for evolution (100)",) + if(queen_manager.hive.hivenumber == XENO_HIVE_CORRUPTED) + var/datum/hive_status/corrupted/hive = queen_manager.hive + options += "Add Personal Ally" + if(length(hive.personal_allies)) + options += "Remove Personal Ally" + options += "Clear Personal Allies" + + var/choice = tgui_input_list(queen_manager, "Manage The Hive", "Hive Management", options, theme="hive_status") + switch(choice) + if("Banish (500)") + banish() + if("Re-Admit (100)") + readmit() + if("De-evolve (500)") + de_evolve_other() + if("Reward Jelly (500)") + give_jelly_reward(queen_manager.hive) + if("Exchange larva for evolution (100)") + give_evo_points() + if("Add Personal Ally") + add_personal_ally() + if("Remove Personal Ally") + remove_personal_ally() + if("Clear Personal Allies") + clear_personal_allies() + +/datum/action/xeno_action/onclick/manage_hive/proc/add_personal_ally() var/mob/living/carbon/xenomorph/queen/user_xeno = owner + if(user_xeno.hive.hivenumber != XENO_HIVE_CORRUPTED) + return + if(!user_xeno.check_state()) return - if(!user_xeno.check_plasma(plasma_cost)) + var/datum/hive_status/corrupted/hive = user_xeno.hive + var/list/target_list = list() + if(!user_xeno.client) + return + for(var/mob/living/carbon/human/possible_target in range(7, user_xeno.client.eye)) + if(possible_target.stat == DEAD) + continue + if(possible_target.status_flags & CORRUPTED_ALLY) + continue + if(possible_target.hivenumber) + continue + target_list += possible_target + + if(!length(target_list)) + to_chat(user_xeno, SPAN_WARNING("No talls in view.")) + return + var/mob/living/target_mob = tgui_input_list(usr, "Target", "Set Up a Personal Alliance With...", target_list, theme="hive_status") + + if(!user_xeno.check_state(TRUE)) + return + + if(!target_mob) + return + + if(target_mob.hivenumber) + to_chat(user_xeno, SPAN_WARNING("We cannot set up a personal alliance with a hive cultist.")) + return + + hive.add_personal_ally(target_mob) + +/datum/action/xeno_action/onclick/manage_hive/proc/remove_personal_ally() + var/mob/living/carbon/xenomorph/queen/user_xeno = owner + if(user_xeno.hive.hivenumber != XENO_HIVE_CORRUPTED) + return + + if(!user_xeno.check_state()) + return + + var/datum/hive_status/corrupted/hive = user_xeno.hive + + if(!length(hive.personal_allies)) + to_chat(user_xeno, SPAN_WARNING("We don't have personal allies.")) + return + + var/list/mob/living/allies = list() + var/list/datum/weakref/dead_refs = list() + for(var/datum/weakref/ally_ref as anything in hive.personal_allies) + var/mob/living/ally = ally_ref.resolve() + if(ally) + allies += ally + continue + dead_refs += ally_ref + + hive.personal_allies -= dead_refs + + if(!length(allies)) + to_chat(user_xeno, SPAN_WARNING("We don't have personal allies.")) + return + + var/mob/living/target_mob = tgui_input_list(usr, "Target", "Break the Personal Alliance With...", allies, theme="hive_status") + + if(!target_mob) + return + + var/target_mob_ref = WEAKREF(target_mob) + + if(!(target_mob_ref in hive.personal_allies)) + return + + if(!user_xeno.check_state(TRUE)) + return + + hive.remove_personal_ally(target_mob_ref) + +/datum/action/xeno_action/onclick/manage_hive/proc/clear_personal_allies() + var/mob/living/carbon/xenomorph/queen/user_xeno = owner + if(user_xeno.hive.hivenumber != XENO_HIVE_CORRUPTED) + return + + if(!user_xeno.check_state()) + return + + var/datum/hive_status/corrupted/hive = user_xeno.hive + if(!length(hive.personal_allies)) + to_chat(user_xeno, SPAN_WARNING("We don't have personal allies.")) + return + + if(tgui_alert(user_xeno, "Are you sure you want to clear personal allies?", "Clear Personal Allies", list("No", "Yes"), 10 SECONDS) != "Yes") + return + + if(!length(hive.personal_allies)) + return + + hive.clear_personal_allies() + + +/datum/action/xeno_action/onclick/manage_hive/proc/banish() + var/mob/living/carbon/xenomorph/queen/user_xeno = owner + var/plasma_cost_banish = 500 + if(!user_xeno.check_state()) + return + + if(!user_xeno.check_plasma(plasma_cost_banish)) return var/choice = tgui_input_list(user_xeno, "Choose a xenomorph to banish:", "Banish", user_xeno.hive.totalXenos, theme="hive_status") @@ -399,7 +553,7 @@ to_chat(user_xeno, SPAN_XENOWARNING("You must provide a reason for banishing [target_xeno].")) return - if(!user_xeno.check_state() || !check_and_use_plasma_owner(plasma_cost) || target_xeno.health < 0) + if(!user_xeno.check_state() || !check_and_use_plasma_owner(plasma_cost_banish) || target_xeno.health < 0) return // Let everyone know they were banished @@ -413,20 +567,21 @@ addtimer(CALLBACK(src, PROC_REF(remove_banish), user_xeno.hive, target_xeno.name), 30 MINUTES) message_admins("[key_name_admin(user_xeno)] has banished [key_name_admin(target_xeno)]. Reason: [reason]") - return ..() + return -/datum/action/xeno_action/onclick/banish/proc/remove_banish(datum/hive_status/hive, name) +/datum/action/xeno_action/proc/remove_banish(datum/hive_status/hive, name) hive.banished_ckeys.Remove(name) // Readmission = un-banish -/datum/action/xeno_action/onclick/readmit/use_ability(atom/Atom) +/datum/action/xeno_action/onclick/manage_hive/proc/readmit() var/mob/living/carbon/xenomorph/queen/user_xeno = owner + var/plasma_cost_readmit = 100 if(!user_xeno.check_state()) return - if(!user_xeno.check_plasma(plasma_cost)) + if(!user_xeno.check_plasma(plasma_cost_readmit)) return var/choice = tgui_input_list(user_xeno, "Choose a xenomorph to readmit:", "Re-admit", user_xeno.hive.banished_ckeys, theme="hive_status") @@ -470,7 +625,7 @@ target_xeno.lock_evolve = FALSE user_xeno.hive.banished_ckeys.Remove(banished_name) - return ..() + return /datum/action/xeno_action/onclick/eye name = "Enter Eye Form" @@ -666,7 +821,7 @@ return var/list/alerts = list() - for(var/i in RANGE_TURFS(Floor(width/2), T)) + for(var/i as anything in RANGE_TURFS(floor(width/2), T)) alerts += new /obj/effect/warning/alien(i) if(!do_after(Q, time_taken, INTERRUPT_NO_NEEDHAND, BUSY_ICON_FRIENDLY)) @@ -680,7 +835,7 @@ if(!check_and_use_plasma_owner()) return - var/turf/new_turf = locate(max(T.x - Floor(width/2), 1), max(T.y - Floor(height/2), 1), T.z) + var/turf/new_turf = locate(max(T.x - floor(width/2), 1), max(T.y - floor(height/2), 1), T.z) to_chat(Q, SPAN_XENONOTICE("You raise a blockade!")) var/obj/effect/alien/resin/resin_pillar/RP = new pillar_type(new_turf) RP.start_decay(brittle_time, decay_time) diff --git a/code/modules/mob/living/carbon/xenomorph/abilities/ravager/ravager_abilities.dm b/code/modules/mob/living/carbon/xenomorph/abilities/ravager/ravager_abilities.dm index 4f9c5f298637..53ad3b377aec 100644 --- a/code/modules/mob/living/carbon/xenomorph/abilities/ravager/ravager_abilities.dm +++ b/code/modules/mob/living/carbon/xenomorph/abilities/ravager/ravager_abilities.dm @@ -29,7 +29,7 @@ xeno_cooldown = 18 SECONDS // Config values (mutable) - var/empower_range = 3 + var/empower_range = 4 var/max_targets = 6 var/main_empower_base_shield = 0 var/initial_activation_shield = 50 @@ -136,7 +136,7 @@ action_type = XENO_ACTION_CLICK ability_primacy = XENO_PRIMARY_ACTION_2 plasma_cost = 0 - xeno_cooldown = 100 + xeno_cooldown = 10 SECONDS // Config var/shard_cost = 75 @@ -150,7 +150,7 @@ action_type = XENO_ACTION_CLICK ability_primacy = XENO_PRIMARY_ACTION_3 plasma_cost = 0 - xeno_cooldown = 300 + xeno_cooldown = 30 SECONDS // Config values var/shard_cost = 50 diff --git a/code/modules/mob/living/carbon/xenomorph/abilities/ravager/ravager_powers.dm b/code/modules/mob/living/carbon/xenomorph/abilities/ravager/ravager_powers.dm index 457b1defc1db..8fe101a08dfa 100644 --- a/code/modules/mob/living/carbon/xenomorph/abilities/ravager/ravager_powers.dm +++ b/code/modules/mob/living/carbon/xenomorph/abilities/ravager/ravager_powers.dm @@ -6,9 +6,6 @@ if(!xeno.check_state()) return - if(xeno.mutation_type != RAVAGER_NORMAL) - return - if(!action_cooldown_check()) return @@ -16,7 +13,7 @@ if (!check_and_use_plasma_owner()) return - xeno.visible_message(SPAN_XENODANGER("[xeno] starts empowering!"), SPAN_XENODANGER("You start empowering yourself!")) + xeno.visible_message(SPAN_XENODANGER("[xeno] starts empowering!"), SPAN_XENODANGER("We start empowering ourself!")) activated_once = TRUE button.icon_state = "template_active" get_inital_shield() @@ -32,7 +29,7 @@ activated_once = FALSE button.icon_state = "template" - xeno.visible_message(SPAN_XENOWARNING("[xeno] gets empowered by the surrounding enemies!"), SPAN_XENOWARNING("You feel a rush of power from the surrounding enemies!")) + xeno.visible_message(SPAN_XENOWARNING("[xeno] gets empowered by the surrounding enemies!"), SPAN_XENOWARNING("We feel a rush of power from the surrounding enemies!")) xeno.create_empower() var/list/mobs_in_range = oviewers(empower_range, xeno) @@ -64,7 +61,7 @@ super_empower(xeno, empower_targets, behavior) /datum/action/xeno_action/onclick/empower/proc/super_empower(mob/living/carbon/xenomorph/xeno, empower_targets, datum/behavior_delegate/ravager_base/behavior) - xeno.visible_message(SPAN_DANGER("[xeno] glows an eerie red as it empowers further with the strength of [empower_targets] hostiles!"), SPAN_XENOHIGHDANGER("You begin to glow an eerie red, empowered by the [empower_targets] enemies!")) + xeno.visible_message(SPAN_DANGER("[xeno] glows an eerie red as it empowers further with the strength of [empower_targets] hostiles!"), SPAN_XENOHIGHDANGER("We begin to glow an eerie red, empowered by the [empower_targets] enemies!")) xeno.emote("roar") @@ -90,7 +87,7 @@ /datum/action/xeno_action/onclick/empower/proc/remove_superbuff(mob/living/carbon/xenomorph/xeno, datum/behavior_delegate/ravager_base/behavior) behavior.empower_targets = 0 - xeno.visible_message(SPAN_DANGER("[xeno]'s glow slowly dims."), SPAN_XENOHIGHDANGER("Your glow fades away, the power leaving your body!")) + xeno.visible_message(SPAN_DANGER("[xeno]'s glow slowly dims."), SPAN_XENOHIGHDANGER("Our glow fades away, the power leaving our form!")) xeno.remove_filter("empower_rage") /datum/action/xeno_action/onclick/empower/proc/get_inital_shield() @@ -122,26 +119,16 @@ var/mob/living/carbon/human/human = living var/mob/living/carbon/xenomorph/xeno = owner - if(xeno.mutation_type != RAVAGER_NORMAL) - return var/datum/behavior_delegate/ravager_base/behavior = xeno.behavior_delegate if(behavior.empower_targets < behavior.super_empower_threshold) return - xeno.visible_message(SPAN_XENODANGER("[xeno] uses its shield to bash [human] as it charges at them!"), SPAN_XENODANGER("You use your shield to bash [human] as you charge at them!")) + xeno.visible_message(SPAN_XENODANGER("[xeno] uses its shield to bash [human] as it charges at them!"), SPAN_XENODANGER("We use our shield to bash [human] as we charge at them!")) human.apply_effect(behavior.knockdown_amount, WEAKEN) human.attack_alien(xeno, rand(xeno.melee_damage_lower, xeno.melee_damage_upper)) var/facing = get_dir(xeno, human) - var/turf/turf = xeno.loc - var/turf/temp = xeno.loc - - for(var/step in 0 to behavior.fling_distance-1) - temp = get_step(turf, facing) - if (!temp) - break - turf = temp - human.throw_atom(turf, behavior.fling_distance, SPEED_VERY_FAST, xeno, TRUE) + xeno.throw_carbon(human, facing, behavior.fling_distance, SPEED_VERY_FAST, shake_camera = FALSE, immobilize = TRUE) /datum/action/xeno_action/activable/scissor_cut/use_ability(atom/target_atom) var/mob/living/carbon/xenomorph/ravager_user = owner @@ -154,8 +141,6 @@ // Determine whether or not we should daze here var/should_sslow = FALSE - if(ravager_user.mutation_type != RAVAGER_NORMAL) - return var/datum/behavior_delegate/ravager_base/ravager_delegate = ravager_user.behavior_delegate if(ravager_delegate.empower_targets >= ravager_delegate.super_empower_threshold) should_sslow = TRUE @@ -204,7 +189,7 @@ // Hmm today I will kill a marine while looking away from them ravager_user.face_atom(target_atom) ravager_user.emote("roar") - ravager_user.visible_message(SPAN_XENODANGER("[ravager_user] sweeps its claws through the area in front of it!"), SPAN_XENODANGER("You sweep your claws through the area in front of you!")) + ravager_user.visible_message(SPAN_XENODANGER("[ravager_user] sweeps its claws through the area in front of it!"), SPAN_XENODANGER("We sweep our claws through the area in front of us!")) // Loop through our turfs, finding any humans there and dealing damage to them for (var/turf/target_turf in target_turfs) @@ -246,7 +231,7 @@ if (istype(behavior)) behavior.next_slash_buffed = TRUE - to_chat(xeno, SPAN_XENODANGER("Your next slash will slow!")) + to_chat(xeno, SPAN_XENODANGER("Our next slash will slow!")) addtimer(CALLBACK(src, PROC_REF(unbuff_slash)), buff_duration) @@ -265,7 +250,7 @@ if (istype(xeno)) xeno.speed_modifier += speed_buff xeno.recalculate_speed() - to_chat(xeno, SPAN_XENOHIGHDANGER("You feel your speed wane!")) + to_chat(xeno, SPAN_XENOHIGHDANGER("We feel our speed wane!")) /datum/action/xeno_action/onclick/apprehend/proc/unbuff_slash() var/mob/living/carbon/xenomorph/xeno = owner @@ -278,7 +263,7 @@ return behavior.next_slash_buffed = FALSE - to_chat(xeno, SPAN_XENODANGER("You have waited too long, your slash will no longer slow enemies!")) + to_chat(xeno, SPAN_XENODANGER("We have waited too long, our slash will no longer slow enemies!")) /datum/action/xeno_action/activable/clothesline/use_ability(atom/affected_atom) @@ -291,11 +276,11 @@ return if (!isxeno_human(affected_atom) || xeno.can_not_harm(affected_atom)) - to_chat(xeno, SPAN_XENOWARNING("You must target a hostile!")) + to_chat(xeno, SPAN_XENOWARNING("We must target a hostile!")) return if (!xeno.Adjacent(affected_atom)) - to_chat(xeno, SPAN_XENOWARNING("You must be adjacent to your target!")) + to_chat(xeno, SPAN_XENOWARNING("We must be adjacent to our target!")) return var/mob/living/carbon/carbon = affected_atom @@ -304,23 +289,20 @@ var/debilitate = TRUE // Do we apply neg. status effects to the target? if (carbon.mob_size >= MOB_SIZE_BIG) - to_chat(xeno, SPAN_XENOWARNING("This creature is too massive to target")) + to_chat(xeno, SPAN_XENOWARNING("We creature is too massive to target")) return if (carbon.stat == DEAD) return - // All strain-specific behavior - if (xeno.mutation_type == RAVAGER_BERSERKER) - var/datum/behavior_delegate/ravager_berserker/behavior = xeno.behavior_delegate - - if (behavior.rage >= 2) - behavior.decrement_rage() - heal_amount += additional_healing_enraged - else - to_chat(xeno, SPAN_XENOWARNING("Your rejuvenation was weaker without rage!")) - debilitate = FALSE - fling_distance-- + var/datum/behavior_delegate/ravager_berserker/behavior = xeno.behavior_delegate + if (behavior.rage >= 2) + behavior.decrement_rage() + heal_amount += additional_healing_enraged + else + to_chat(xeno, SPAN_XENOWARNING("Our rejuvenation was weaker without rage!")) + debilitate = FALSE + fling_distance-- // Damage var/obj/limb/head/head = carbon.get_limb("head") @@ -348,7 +330,7 @@ // Negative stat effects if (debilitate) - carbon.dazed += daze_amount + carbon.AdjustDaze(daze_amount) apply_cooldown() return ..() @@ -369,22 +351,21 @@ var/max_lifesteal = 250 var/lifesteal_range = 1 - if (xeno.mutation_type == RAVAGER_BERSERKER) - var/datum/behavior_delegate/ravager_berserker/behavior = xeno.behavior_delegate - if (behavior.rage == 0) - to_chat(xeno, SPAN_XENODANGER("You cannot eviscerate when you have 0 rage!")) - return - damage = damage_at_rage_levels[Clamp(behavior.rage, 1, behavior.max_rage)] - range = range_at_rage_levels[Clamp(behavior.rage, 1, behavior.max_rage)] - windup_reduction = windup_reduction_at_rage_levels[Clamp(behavior.rage, 1, behavior.max_rage)] - behavior.decrement_rage(behavior.rage) + var/datum/behavior_delegate/ravager_berserker/behavior = xeno.behavior_delegate + if (behavior.rage == 0) + to_chat(xeno, SPAN_XENODANGER("We cannot eviscerate when we have 0 rage!")) + return + damage = damage_at_rage_levels[clamp(behavior.rage, 1, behavior.max_rage)] + range = range_at_rage_levels[clamp(behavior.rage, 1, behavior.max_rage)] + windup_reduction = windup_reduction_at_rage_levels[clamp(behavior.rage, 1, behavior.max_rage)] + behavior.decrement_rage(behavior.rage) - apply_cooldown() + apply_cooldown() if (range > 1) - xeno.visible_message(SPAN_XENOHIGHDANGER("[xeno] begins digging in for a massive strike!"), SPAN_XENOHIGHDANGER("You begin digging in for a massive strike!")) + xeno.visible_message(SPAN_XENOHIGHDANGER("[xeno] begins digging in for a massive strike!"), SPAN_XENOHIGHDANGER("We begin digging in for a massive strike!")) else - xeno.visible_message(SPAN_XENODANGER("[xeno] begins digging in for a strike!"), SPAN_XENOHIGHDANGER("You begin digging in for a strike!")) + xeno.visible_message(SPAN_XENODANGER("[xeno] begins digging in for a strike!"), SPAN_XENOHIGHDANGER("We begin digging in for a strike!")) ADD_TRAIT(xeno, TRAIT_IMMOBILIZED, TRAIT_SOURCE_ABILITY("Eviscerate")) xeno.anchored = TRUE @@ -404,12 +385,12 @@ continue if (range > 1) - xeno.visible_message(SPAN_XENOHIGHDANGER("[xeno] rips open the guts of [human]!"), SPAN_XENOHIGHDANGER("You rip open the guts of [human]!")) + xeno.visible_message(SPAN_XENOHIGHDANGER("[xeno] rips open the guts of [human]!"), SPAN_XENOHIGHDANGER("We rip open the guts of [human]!")) human.spawn_gibs() playsound(get_turf(human), 'sound/effects/gibbed.ogg', 30, 1) human.apply_effect(get_xeno_stun_duration(human, 1), WEAKEN) else - xeno.visible_message(SPAN_XENODANGER("[xeno] claws [human]!"), SPAN_XENODANGER("You claw [human]!")) + xeno.visible_message(SPAN_XENODANGER("[xeno] claws [human]!"), SPAN_XENODANGER("We claw [human]!")) playsound(get_turf(human), "alien_claw_flesh", 30, 1) human.apply_armoured_damage(get_xeno_damage_slash(human, damage), ARMOR_MELEE, BRUTE, "chest", 20) @@ -428,7 +409,7 @@ // This is the heal if(!xeno.on_fire) - xeno.gain_health(Clamp(valid_count * lifesteal_per_marine, 0, max_lifesteal)) + xeno.gain_health(clamp(valid_count * lifesteal_per_marine, 0, max_lifesteal)) REMOVE_TRAIT(xeno, TRAIT_IMMOBILIZED, TRAIT_SOURCE_ABILITY("Eviscerate")) xeno.anchored = FALSE @@ -447,14 +428,13 @@ if (!xeno.check_state()) return - if (xeno.mutation_type == RAVAGER_HEDGEHOG) - var/datum/behavior_delegate/ravager_hedgehog/behavior = xeno.behavior_delegate - if (!behavior.check_shards(shard_cost)) - to_chat(xeno, SPAN_DANGER("Not enough shards! You need [shard_cost - behavior.shards] more!")) - return - behavior.use_shards(shard_cost) + var/datum/behavior_delegate/ravager_hedgehog/behavior = xeno.behavior_delegate + if (!behavior.check_shards(shard_cost)) + to_chat(xeno, SPAN_DANGER("Not enough shards! We need [shard_cost - behavior.shards] more!")) + return + behavior.use_shards(shard_cost) - xeno.visible_message(SPAN_XENODANGER("[xeno] ruffles its bone-shard quills, forming a defensive shell!"), SPAN_XENODANGER("You ruffle your bone-shard quills, forming a defensive shell!")) + xeno.visible_message(SPAN_XENODANGER("[xeno] ruffles its bone-shard quills, forming a defensive shell!"), SPAN_XENODANGER("We ruffle our bone-shard quills, forming a defensive shell!")) // Add our shield var/datum/xeno_shield/hedgehog_shield/shield = xeno.add_xeno_shield(shield_amount, XENO_SHIELD_SOURCE_HEDGE_RAV, /datum/xeno_shield/hedgehog_shield) @@ -476,10 +456,8 @@ return FALSE else if (cooldown_timer_id == TIMER_ID_NULL) var/mob/living/carbon/xenomorph/xeno = owner - if (xeno.mutation_type == RAVAGER_HEDGEHOG) - var/datum/behavior_delegate/ravager_hedgehog/behavior = xeno.behavior_delegate - return behavior.check_shards(shard_cost) - return TRUE + var/datum/behavior_delegate/ravager_hedgehog/behavior = xeno.behavior_delegate + return behavior.check_shards(shard_cost) return FALSE /datum/action/xeno_action/onclick/spike_shield/proc/remove_shield() @@ -497,7 +475,7 @@ qdel(shield) break - to_chat(xeno, SPAN_XENODANGER("You feel your shard shield dissipate!")) + to_chat(xeno, SPAN_XENODANGER("We feel our shard shield dissipate!")) xeno.overlay_shields() return @@ -510,14 +488,13 @@ if(!affected_atom || affected_atom.layer >= FLY_LAYER || !isturf(xeno.loc) || !xeno.check_state()) return - if (xeno.mutation_type == RAVAGER_HEDGEHOG) - var/datum/behavior_delegate/ravager_hedgehog/behavior = xeno.behavior_delegate - if (!behavior.check_shards(shard_cost)) - to_chat(xeno, SPAN_DANGER("Not enough shards! You need [shard_cost - behavior.shards] more!")) - return - behavior.use_shards(shard_cost) + var/datum/behavior_delegate/ravager_hedgehog/behavior = xeno.behavior_delegate + if (!behavior.check_shards(shard_cost)) + to_chat(xeno, SPAN_DANGER("Not enough shards! We need [shard_cost - behavior.shards] more!")) + return + behavior.use_shards(shard_cost) - xeno.visible_message(SPAN_XENOWARNING("[xeno] fires their spikes at [affected_atom]!"), SPAN_XENOWARNING("You fire your spikes at [affected_atom]!")) + xeno.visible_message(SPAN_XENOWARNING("[xeno] fires their spikes at [affected_atom]!"), SPAN_XENOWARNING("We fire our spikes at [affected_atom]!")) var/turf/target = locate(affected_atom.x, affected_atom.y, affected_atom.z) var/obj/projectile/projectile = new /obj/projectile(xeno.loc, create_cause_data(initial(xeno.caste_type), xeno)) @@ -539,11 +516,8 @@ var/mob/living/carbon/xenomorph/xeno = owner if(!istype(xeno)) return FALSE - if (xeno.mutation_type == RAVAGER_HEDGEHOG) - var/datum/behavior_delegate/ravager_hedgehog/behavior = xeno.behavior_delegate - return behavior.check_shards(shard_cost) - - return TRUE + var/datum/behavior_delegate/ravager_hedgehog/behavior = xeno.behavior_delegate + return behavior.check_shards(shard_cost) else return FALSE @@ -556,15 +530,14 @@ if (!xeno.check_state()) return - if (xeno.mutation_type == RAVAGER_HEDGEHOG) - var/datum/behavior_delegate/ravager_hedgehog/behavior = xeno.behavior_delegate - if (!behavior.check_shards(shard_cost)) - to_chat(xeno, SPAN_DANGER("Not enough shards! You need [shard_cost - behavior.shards] more!")) - return - behavior.use_shards(shard_cost) - behavior.lock_shards() + var/datum/behavior_delegate/ravager_hedgehog/behavior = xeno.behavior_delegate + if (!behavior.check_shards(shard_cost)) + to_chat(xeno, SPAN_DANGER("Not enough shards! We need [shard_cost - behavior.shards] more!")) + return + behavior.use_shards(shard_cost) + behavior.lock_shards() - xeno.visible_message(SPAN_XENOWARNING("[xeno] sheds their spikes, firing them in all directions!"), SPAN_XENOWARNING("You shed your spikes, firing them in all directions!!")) + xeno.visible_message(SPAN_XENOWARNING("[xeno] sheds their spikes, firing them in all directions!"), SPAN_XENOWARNING("We shed our spikes, firing them in all directions!!")) xeno.spin_circle() create_shrapnel(get_turf(xeno), shrapnel_amount, null, null, ammo_type, create_cause_data(initial(xeno.caste_type), owner), TRUE) playsound(xeno, 'sound/effects/spike_spray.ogg', 25, 1) @@ -575,10 +548,7 @@ /datum/action/xeno_action/onclick/spike_shed/action_cooldown_check() if (cooldown_timer_id == TIMER_ID_NULL) var/mob/living/carbon/xenomorph/xeno = owner - if (xeno.mutation_type == RAVAGER_HEDGEHOG) - var/datum/behavior_delegate/ravager_hedgehog/behavior = xeno.behavior_delegate - return behavior.check_shards(shard_cost) - - return TRUE + var/datum/behavior_delegate/ravager_hedgehog/behavior = xeno.behavior_delegate + return behavior.check_shards(shard_cost) else return FALSE diff --git a/code/modules/mob/living/carbon/xenomorph/abilities/runner/runner_abilities.dm b/code/modules/mob/living/carbon/xenomorph/abilities/runner/runner_abilities.dm index 510f161d8a86..2880dd15eb5a 100644 --- a/code/modules/mob/living/carbon/xenomorph/abilities/runner/runner_abilities.dm +++ b/code/modules/mob/living/carbon/xenomorph/abilities/runner/runner_abilities.dm @@ -5,7 +5,7 @@ macro_path = /datum/action/xeno_action/verb/verb_pounce action_type = XENO_ACTION_CLICK ability_primacy = XENO_PRIMARY_ACTION_1 - xeno_cooldown = 30 + xeno_cooldown = 3 SECONDS plasma_cost = 0 // Config options @@ -28,7 +28,7 @@ macro_path = /datum/action/xeno_action/verb/verb_runner_bonespurs action_type = XENO_ACTION_CLICK ability_primacy = XENO_PRIMARY_ACTION_2 - xeno_cooldown = 110 + xeno_cooldown = 11 SECONDS plasma_cost = 0 var/ammo_type = /datum/ammo/xeno/bone_chips/spread/runner_skillshot diff --git a/code/modules/mob/living/carbon/xenomorph/abilities/runner/runner_powers.dm b/code/modules/mob/living/carbon/xenomorph/abilities/runner/runner_powers.dm index 06bf3e0e2e0a..f5e090bc7e4b 100644 --- a/code/modules/mob/living/carbon/xenomorph/abilities/runner/runner_powers.dm +++ b/code/modules/mob/living/carbon/xenomorph/abilities/runner/runner_powers.dm @@ -12,7 +12,7 @@ if (!check_and_use_plasma_owner()) return - xeno.visible_message(SPAN_XENOWARNING("[xeno] fires a burst of bone chips at [affected_atom]!"), SPAN_XENOWARNING("You fire a burst of bone chips at [affected_atom]!")) + xeno.visible_message(SPAN_XENOWARNING("[xeno] fires a burst of bone chips at [affected_atom]!"), SPAN_XENOWARNING("We fire a burst of bone chips at [affected_atom]!")) var/turf/target = locate(affected_atom.x, affected_atom.y, affected_atom.z) var/obj/projectile/projectile = new /obj/projectile(xeno.loc, create_cause_data(initial(xeno.caste_type), xeno)) @@ -45,20 +45,20 @@ return ..() /mob/living/carbon/xenomorph/runner/corrosive_acid(atom/affected_atom, acid_type, plasma_cost) - if (mutation_type != RUNNER_ACIDER) + if(!istype(strain, /datum/xeno_strain/acider)) return ..() if(!affected_atom.Adjacent(src)) if(istype(affected_atom,/obj/item/explosive/plastic)) var/obj/item/explosive/plastic/plastic_explosive = affected_atom if(plastic_explosive.plant_target && !plastic_explosive.plant_target.Adjacent(src)) - to_chat(src, SPAN_WARNING("You can't reach [affected_atom].")) + to_chat(src, SPAN_WARNING("We can't reach [affected_atom].")) return else to_chat(src, SPAN_WARNING("[affected_atom] is too far away.")) return if(!isturf(loc) || HAS_TRAIT(src, TRAIT_ABILITY_BURROWED)) - to_chat(src, SPAN_WARNING("You can't melt [affected_atom] from here!")) + to_chat(src, SPAN_WARNING("We can't melt [affected_atom] from here!")) return face_atom(affected_atom) @@ -77,18 +77,12 @@ if(isobj(affected_atom)) object = affected_atom - if(istype(object, /obj/structure/window_frame)) - var/obj/structure/window_frame/window_frame = object - if(window_frame.reinforced && acid_type != /obj/effect/xenomorph/acid/strong) - to_chat(src, SPAN_WARNING("This [object.name] is too tough to be melted by your weak acid.")) - return - wait_time = object.get_applying_acid_time() if(wait_time == -1) - to_chat(src, SPAN_WARNING("You cannot dissolve [object].")) + to_chat(src, SPAN_WARNING("We cannot dissolve [object].")) return else - to_chat(src, SPAN_WARNING("You cannot dissolve [affected_atom].")) + to_chat(src, SPAN_WARNING("We cannot dissolve [affected_atom].")) return wait_time = wait_time / 4 if(!do_after(src, wait_time, INTERRUPT_NO_NEEDHAND, BUSY_ICON_HOSTILE)) @@ -110,7 +104,7 @@ if(istype(affected_atom, /obj/item/explosive/plastic)) var/obj/item/explosive/plastic/plastic_explosive = affected_atom if(plastic_explosive.plant_target && !plastic_explosive.plant_target.Adjacent(src)) - to_chat(src, SPAN_WARNING("You can't reach [affected_atom].")) + to_chat(src, SPAN_WARNING("We can't reach [affected_atom].")) return else to_chat(src, SPAN_WARNING("[affected_atom] is too far away.")) @@ -131,7 +125,7 @@ var/obj/vehicle/multitile/multitile_vehicle = affected_atom multitile_vehicle.take_damage_type(20 / acid.acid_delay, "acid", src) visible_message(SPAN_XENOWARNING("[src] vomits globs of vile stuff at [multitile_vehicle]. It sizzles under the bubbling mess of acid!"), \ - SPAN_XENOWARNING("You vomit globs of vile stuff at [multitile_vehicle]. It sizzles under the bubbling mess of acid!"), null, 5) + SPAN_XENOWARNING("We vomit globs of vile stuff at [multitile_vehicle]. It sizzles under the bubbling mess of acid!"), null, 5) playsound(loc, "sound/bullets/acid_impact1.ogg", 25) QDEL_IN(acid, 20) return @@ -140,7 +134,7 @@ acid.name += " ([affected_atom])" visible_message(SPAN_XENOWARNING("[src] vomits globs of vile stuff all over [affected_atom]. It begins to sizzle and melt under the bubbling mess of acid!"), \ - SPAN_XENOWARNING("You vomit globs of vile stuff all over [affected_atom]. It begins to sizzle and melt under the bubbling mess of acid!"), null, 5) + SPAN_XENOWARNING("We vomit globs of vile stuff all over [affected_atom]. It begins to sizzle and melt under the bubbling mess of acid!"), null, 5) playsound(loc, "sound/bullets/acid_impact1.ogg", 25) @@ -156,7 +150,7 @@ var/area/xeno_area = get_area(xeno) if(xeno_area.flags_area & AREA_CONTAINMENT) - to_chat(xeno, SPAN_XENOWARNING("You can't activate this here!")) + to_chat(xeno, SPAN_XENOWARNING("We can't activate this here!")) return if(!xeno.check_state()) @@ -165,9 +159,6 @@ if(!action_cooldown_check()) return - if(xeno.mutation_type != RUNNER_ACIDER) - return - var/datum/behavior_delegate/runner_acider/behavior_delegate = xeno.behavior_delegate if(!istype(behavior_delegate)) return @@ -182,7 +173,7 @@ notify_ghosts(header = "For the Hive!", message = "[xeno] is going to explode for the Hive!", source = xeno, action = NOTIFY_ORBIT) - to_chat(xeno, SPAN_XENOWARNING("Your stomach starts turning and twisting, getting ready to compress the built up acid.")) + to_chat(xeno, SPAN_XENOWARNING("Our stomach starts turning and twisting, getting ready to compress the built up acid.")) xeno.color = "#22FF22" xeno.set_light_color("#22FF22") xeno.set_light_range(3) @@ -213,4 +204,4 @@ // -Original amount set - (time exploding + timer inaccuracy) * how much gets removed per tick / 2 xeno.adjust_effect(behavior_delegate.caboom_timer * -2 - (behavior_delegate.caboom_timer - behavior_delegate.caboom_left + 2) * xeno.life_slow_reduction * 0.5, SUPERSLOW) - to_chat(xeno, SPAN_XENOWARNING("You remove all your explosive acid before it combusted.")) + to_chat(xeno, SPAN_XENOWARNING("We remove all our explosive acid before it combusted.")) diff --git a/code/modules/mob/living/carbon/xenomorph/abilities/sentinel/sentinel_powers.dm b/code/modules/mob/living/carbon/xenomorph/abilities/sentinel/sentinel_powers.dm index b058756d3ef8..1ed8863c231a 100644 --- a/code/modules/mob/living/carbon/xenomorph/abilities/sentinel/sentinel_powers.dm +++ b/code/modules/mob/living/carbon/xenomorph/abilities/sentinel/sentinel_powers.dm @@ -4,7 +4,7 @@ return if(!action_cooldown_check()) - to_chat(src, SPAN_WARNING("You must wait for your spit glands to refill.")) + to_chat(src, SPAN_WARNING("We must wait for our spit glands to refill.")) return var/turf/current_turf = get_turf(xeno) @@ -35,11 +35,8 @@ if(!xeno.check_state()) return - if(xeno.mutation_type != SENTINEL_NORMAL) - return - if(!action_cooldown_check()) - to_chat(src, SPAN_WARNING("You must wait for your spit glands to refill.")) + to_chat(src, SPAN_WARNING("We must wait for your spit glands to refill.")) return var/turf/current_turf = get_turf(xeno) @@ -77,14 +74,11 @@ if (!check_and_use_plasma_owner()) return - if (xeno.mutation_type != SENTINEL_NORMAL) - return - var/datum/behavior_delegate/sentinel_base/behavior = xeno.behavior_delegate if (istype(behavior)) behavior.next_slash_buffed = TRUE - to_chat(xeno, SPAN_XENOHIGHDANGER("Your next slash will apply neurotoxin!")) + to_chat(xeno, SPAN_XENOHIGHDANGER("Our next slash will apply neurotoxin!")) button.icon_state = "template_active" addtimer(CALLBACK(src, PROC_REF(unbuff_slash)), buff_duration) @@ -103,5 +97,5 @@ return behavior.next_slash_buffed = FALSE - to_chat(xeno, SPAN_XENODANGER("You have waited too long, your slash will no longer apply neurotoxin!")) + to_chat(xeno, SPAN_XENODANGER("We have waited too long, our slash will no longer apply neurotoxin!")) button.icon_state = "template" diff --git a/code/modules/mob/living/carbon/xenomorph/abilities/spitter/spitter_abilities.dm b/code/modules/mob/living/carbon/xenomorph/abilities/spitter/spitter_abilities.dm index 7643b0bfa05e..20febc22c4a4 100644 --- a/code/modules/mob/living/carbon/xenomorph/abilities/spitter/spitter_abilities.dm +++ b/code/modules/mob/living/carbon/xenomorph/abilities/spitter/spitter_abilities.dm @@ -8,7 +8,7 @@ macro_path = /datum/action/xeno_action/verb/verb_xeno_spit action_type = XENO_ACTION_CLICK ability_primacy = XENO_PRIMARY_ACTION_1 - cooldown_message = "You feel your corrosive glands swell with acid. You can spit again." + cooldown_message = "We feel our corrosive glands swell with acid. We can spit again." //xeno_cooldown = 60 SECONDS useless var. funny shitcode /datum/action/xeno_action/onclick/charge_spit @@ -34,7 +34,7 @@ action_type = XENO_ACTION_CLICK plasma_cost = 50 - xeno_cooldown = 80 + xeno_cooldown = 8 SECONDS // Configurable options spray_type = ACID_SPRAY_LINE // Enum for the shape of spray to do diff --git a/code/modules/mob/living/carbon/xenomorph/abilities/spitter/spitter_powers.dm b/code/modules/mob/living/carbon/xenomorph/abilities/spitter/spitter_powers.dm index ec8dfd9b7cd9..c6ba00d9a3bb 100644 --- a/code/modules/mob/living/carbon/xenomorph/abilities/spitter/spitter_powers.dm +++ b/code/modules/mob/living/carbon/xenomorph/abilities/spitter/spitter_powers.dm @@ -8,21 +8,22 @@ return if (buffs_active) - to_chat(zenomorf, SPAN_XENOHIGHDANGER("You cannot stack this!")) + to_chat(zenomorf, SPAN_XENOHIGHDANGER("We cannot stack this!")) return if (!check_and_use_plasma_owner()) return - to_chat(zenomorf, SPAN_XENOHIGHDANGER("You accumulate acid in your glands. Your next spit will be stronger but shorter-ranged.")) - to_chat(zenomorf, SPAN_XENOWARNING("Additionally, you are slightly faster and more armored for a small amount of time.")) + to_chat(zenomorf, SPAN_XENOHIGHDANGER("We accumulate acid in your glands. Our next spit will be stronger but shorter-ranged.")) + to_chat(zenomorf, SPAN_XENOWARNING("Additionally, we are slightly faster and more armored for a small amount of time.")) zenomorf.create_custom_empower(icolor = "#93ec78", ialpha = 200, small_xeno = TRUE) - zenomorf.balloon_alert(zenomorf, "your next spit will be stronger", text_color = "#93ec78") + zenomorf.balloon_alert(zenomorf, "our next spit will be stronger", text_color = "#93ec78") buffs_active = TRUE zenomorf.ammo = GLOB.ammo_list[/datum/ammo/xeno/acid/spatter] // shitcode is my city zenomorf.speed_modifier -= speed_buff_amount zenomorf.armor_modifier += armor_buff_amount zenomorf.recalculate_speed() + zenomorf.recalculate_armor() /// Though the ability's other buffs are supposed to last for its duration, it's only supposed to enhance one spit. RegisterSignal(zenomorf, COMSIG_XENO_POST_SPIT, PROC_REF(disable_spatter)) @@ -36,8 +37,8 @@ SIGNAL_HANDLER var/mob/living/carbon/xenomorph/zenomorf = owner if(zenomorf.ammo == GLOB.ammo_list[/datum/ammo/xeno/acid/spatter]) - to_chat(zenomorf, SPAN_XENOWARNING("Your acid glands empty out and return back to normal. You will once more fire long-ranged weak spits.")) - zenomorf.balloon_alert(zenomorf, "your spits are back to normal", text_color = "#93ec78") + to_chat(zenomorf, SPAN_XENOWARNING("Our acid glands empty out and return back to normal. We will once more fire long-ranged weak spits.")) + zenomorf.balloon_alert(zenomorf, "our spits are back to normal", text_color = "#93ec78") zenomorf.ammo = GLOB.ammo_list[/datum/ammo/xeno/acid] // el codigo de mierda es mi ciudad UnregisterSignal(zenomorf, COMSIG_XENO_POST_SPIT) @@ -50,7 +51,8 @@ zenomorf.speed_modifier += speed_buff_amount zenomorf.armor_modifier -= armor_buff_amount zenomorf.recalculate_speed() - to_chat(zenomorf, SPAN_XENOHIGHDANGER("You feel your movement speed slow down!")) + zenomorf.recalculate_armor() + to_chat(zenomorf, SPAN_XENOHIGHDANGER("We feel our movement speed slow down!")) disable_spatter() buffs_active = FALSE diff --git a/code/modules/mob/living/carbon/xenomorph/abilities/warrior/warrior_abilities.dm b/code/modules/mob/living/carbon/xenomorph/abilities/warrior/warrior_abilities.dm index 5127ca6fe4ed..4f40e1914540 100644 --- a/code/modules/mob/living/carbon/xenomorph/abilities/warrior/warrior_abilities.dm +++ b/code/modules/mob/living/carbon/xenomorph/abilities/warrior/warrior_abilities.dm @@ -6,11 +6,11 @@ macro_path = /datum/action/xeno_action/verb/verb_fling action_type = XENO_ACTION_CLICK ability_primacy = XENO_PRIMARY_ACTION_3 - xeno_cooldown = 60 + xeno_cooldown = 6 SECONDS // Configurables var/fling_distance = 4 - var/stun_power = 0 + var/stun_power = 0.5 var/weaken_power = 0.5 var/slowdown = 2 @@ -22,7 +22,7 @@ macro_path = /datum/action/xeno_action/verb/verb_lunge action_type = XENO_ACTION_CLICK ability_primacy = XENO_PRIMARY_ACTION_2 - xeno_cooldown = 100 + xeno_cooldown = 10 SECONDS // Configurables var/grab_range = 4 @@ -36,7 +36,7 @@ macro_path = /datum/action/xeno_action/verb/verb_punch action_type = XENO_ACTION_CLICK ability_primacy = XENO_PRIMARY_ACTION_1 - xeno_cooldown = 45 + xeno_cooldown = 4.5 SECONDS // Configurables var/base_damage = 25 diff --git a/code/modules/mob/living/carbon/xenomorph/abilities/warrior/warrior_powers.dm b/code/modules/mob/living/carbon/xenomorph/abilities/warrior/warrior_powers.dm index cde2e3432e7b..bbb4a584e2a5 100644 --- a/code/modules/mob/living/carbon/xenomorph/abilities/warrior/warrior_powers.dm +++ b/code/modules/mob/living/carbon/xenomorph/abilities/warrior/warrior_powers.dm @@ -3,7 +3,7 @@ if (!action_cooldown_check()) if(twitch_message_cooldown < world.time ) - xeno.visible_message(SPAN_XENOWARNING("[xeno]'s claws twitch."), SPAN_XENOWARNING("Your claws twitch as you try to lunge but lack the strength. Wait a moment to try again.")) + xeno.visible_message(SPAN_XENOWARNING("[xeno]'s claws twitch."), SPAN_XENOWARNING("Our claws twitch as we try to lunge but lack the strength. Wait a moment to try again.")) twitch_message_cooldown = world.time + 5 SECONDS return //this gives a little feedback on why your lunge didn't hit other than the lunge button going grey. Plus, it might spook marines that almost got lunged if they know why the message appeared, and extra spookiness is always good. @@ -11,7 +11,7 @@ return if (!isturf(xeno.loc)) - to_chat(xeno, SPAN_XENOWARNING("You can't lunge from here!")) + to_chat(xeno, SPAN_XENOWARNING("We can't lunge from here!")) return if (!xeno.check_state() || xeno.agility) @@ -31,14 +31,16 @@ apply_cooldown() ..() - xeno.visible_message(SPAN_XENOWARNING("[xeno] lunges towards [carbon]!"), SPAN_XENOWARNING("You lunge at [carbon]!")) + xeno.visible_message(SPAN_XENOWARNING("[xeno] lunges towards [carbon]!"), SPAN_XENOWARNING("We lunge at [carbon]!")) xeno.throw_atom(get_step_towards(affected_atom, xeno), grab_range, SPEED_FAST, xeno) if (xeno.Adjacent(carbon)) xeno.start_pulling(carbon,1) + if(ishuman(carbon)) + INVOKE_ASYNC(carbon, TYPE_PROC_REF(/mob, emote), "scream") else - xeno.visible_message(SPAN_XENOWARNING("[xeno]'s claws twitch."), SPAN_XENOWARNING("Your claws twitch as you lunge but are unable to grab onto your target. Wait a moment to try again.")) + xeno.visible_message(SPAN_XENOWARNING("[xeno]'s claws twitch."), SPAN_XENOWARNING("Our claws twitch as we lunge but are unable to grab onto our target. Wait a moment to try again.")) return TRUE @@ -68,39 +70,30 @@ xeno.stop_pulling() if(carbon.mob_size >= MOB_SIZE_BIG) - to_chat(xeno, SPAN_XENOWARNING("[carbon] is too big for you to fling!")) + to_chat(xeno, SPAN_XENOWARNING("[carbon] is too big for us to fling!")) return if (!check_and_use_plasma_owner()) return - xeno.visible_message(SPAN_XENOWARNING("[xeno] effortlessly flings [carbon] to the side!"), SPAN_XENOWARNING("You effortlessly fling [carbon] to the side!")) + xeno.visible_message(SPAN_XENOWARNING("[xeno] effortlessly flings [carbon] to the side!"), SPAN_XENOWARNING("We effortlessly fling [carbon] to the side!")) playsound(carbon,'sound/weapons/alien_claw_block.ogg', 75, 1) if(stun_power) - carbon.apply_effect(get_xeno_stun_duration(carbon, stun_power), STUN) + carbon.Stun(get_xeno_stun_duration(carbon, stun_power)) if(weaken_power) - carbon.apply_effect(weaken_power, WEAKEN) + carbon.KnockDown(get_xeno_stun_duration(carbon, weaken_power)) if(slowdown) if(carbon.slowed < slowdown) carbon.apply_effect(slowdown, SLOW) carbon.last_damage_data = create_cause_data(initial(xeno.caste_type), xeno) - shake_camera(carbon, 2, 1) var/facing = get_dir(xeno, carbon) - var/turf/throw_turf = xeno.loc - var/turf/temp = xeno.loc - - for (var/step in 0 to fling_distance-1) - temp = get_step(throw_turf, facing) - if (!temp) - break - throw_turf = temp // Hmm today I will kill a marine while looking away from them xeno.face_atom(carbon) xeno.animation_attack_on(carbon) xeno.flick_attack_overlay(carbon, "disarm") - carbon.throw_atom(throw_turf, fling_distance, SPEED_VERY_FAST, xeno, TRUE) + xeno.throw_carbon(carbon, facing, fling_distance, SPEED_VERY_FAST, shake_camera = TRUE, immobilize = TRUE) apply_cooldown() return ..() @@ -143,7 +136,7 @@ carbon.last_damage_data = create_cause_data(initial(xeno.caste_type), xeno) xeno.visible_message(SPAN_XENOWARNING("[xeno] hits [carbon] in the [target_limb ? target_limb.display_name : "chest"] with a devastatingly powerful punch!"), \ - SPAN_XENOWARNING("You hit [carbon] in the [target_limb ? target_limb.display_name : "chest"] with a devastatingly powerful punch!")) + SPAN_XENOWARNING("We hit [carbon] in the [target_limb ? target_limb.display_name : "chest"] with a devastatingly powerful punch!")) var/sound = pick('sound/weapons/punch1.ogg','sound/weapons/punch2.ogg','sound/weapons/punch3.ogg','sound/weapons/punch4.ogg') playsound(carbon, sound, 50, 1) do_base_warrior_punch(carbon, target_limb) diff --git a/code/modules/mob/living/carbon/xenomorph/abilities/xeno_action.dm b/code/modules/mob/living/carbon/xenomorph/abilities/xeno_action.dm index 11b8f0db0075..80cf5c1e37ac 100644 --- a/code/modules/mob/living/carbon/xenomorph/abilities/xeno_action.dm +++ b/code/modules/mob/living/carbon/xenomorph/abilities/xeno_action.dm @@ -71,7 +71,7 @@ if(!owner) return FALSE var/mob/living/carbon/xenomorph/X = owner - if(X && !X.is_mob_incapacitated() && !X.dazed && X.body_position == STANDING_UP && !X.buckled && X.plasma_stored >= plasma_cost) + if(X && !X.is_mob_incapacitated() && !HAS_TRAIT(X, TRAIT_DAZED) && X.body_position == STANDING_UP && !X.buckled && X.plasma_stored >= plasma_cost) return TRUE /datum/action/xeno_action/give_to(mob/living/L) @@ -218,7 +218,7 @@ /* Debug log disabled due to our historical inability at doing anything meaningful about it And to make room for ones that matter more in regard to our ability to fix. - The whole of ability code is fucked up, the 'SHOULD NEVER BE OVERRIDEN' note above is + The whole of ability code is fucked up, the 'SHOULD NEVER BE OVERRIDDEN' note above is completely ignored as about 20 procs override it ALREADY... This is broken beyond repair and should just be reimplemented log_debug("Xeno action [src] tried to go on cooldown while already on cooldown.") @@ -231,7 +231,7 @@ if(!cooldown_to_apply) return - cooldown_to_apply = cooldown_to_apply * (1 - Clamp(X.cooldown_reduction_percentage, 0, 0.5)) + cooldown_to_apply = cooldown_to_apply * (1 - clamp(X.cooldown_reduction_percentage, 0, 0.5)) // Add a unique timer cooldown_timer_id = addtimer(CALLBACK(src, PROC_REF(on_cooldown_end)), cooldown_to_apply, TIMER_UNIQUE|TIMER_STOPPABLE) @@ -253,7 +253,7 @@ var/mob/living/carbon/xenomorph/X = owner // Note: no check to see if we're already on CD. we just flat override whatever's there - cooldown_duration = cooldown_duration * (1 - Clamp(X.cooldown_reduction_percentage, 0, 0.5)) + cooldown_duration = cooldown_duration * (1 - clamp(X.cooldown_reduction_percentage, 0, 0.5)) cooldown_timer_id = addtimer(CALLBACK(src, PROC_REF(on_cooldown_end)), cooldown_duration, TIMER_OVERRIDE|TIMER_UNIQUE|TIMER_STOPPABLE) current_cooldown_duration = cooldown_duration current_cooldown_start_time = world.time @@ -343,11 +343,11 @@ if(cooldown_message) to_chat(owner, SPAN_XENODANGER("[cooldown_message]")) else - to_chat(owner, SPAN_XENODANGER("You feel your strength return! You can use [name] again!")) + to_chat(owner, SPAN_XENODANGER("We feel our strength return! We can use [name] again!")) /datum/action/xeno_action/proc/start_charging_ability() charge_timer_id = addtimer(CALLBACK(src, PROC_REF(finish_charging_ability)), charge_time, TIMER_UNIQUE|TIMER_STOPPABLE) - to_chat(owner, SPAN_XENOWARNING("You start charging up your [name]!")) + to_chat(owner, SPAN_XENOWARNING("We start charging up our [name]!")) /datum/action/xeno_action/proc/finish_charging_ability() charge_timer_id = TIMER_ID_NULL @@ -379,7 +379,7 @@ if(A.z != M.z) return FALSE - var/list/turf/path = getline2(M, A, include_from_atom = FALSE) + var/list/turf/path = get_line(M, A, include_start_atom = FALSE) var/distance = 0 for(var/turf/T in path) if(distance >= max_distance) diff --git a/code/modules/mob/living/carbon/xenomorph/attack_alien.dm b/code/modules/mob/living/carbon/xenomorph/attack_alien.dm index f9474472e620..de0cefeea76d 100644 --- a/code/modules/mob/living/carbon/xenomorph/attack_alien.dm +++ b/code/modules/mob/living/carbon/xenomorph/attack_alien.dm @@ -7,92 +7,92 @@ * In that case, the first argument is always the attacker. For attack_alien, it should always be Xenomorph sub-types */ - -/mob/living/carbon/human/attack_alien(mob/living/carbon/xenomorph/M, dam_bonus) - if(M.fortify || HAS_TRAIT(M, TRAIT_ABILITY_BURROWED)) +// this proc could use refactoring at some point +/mob/living/carbon/human/attack_alien(mob/living/carbon/xenomorph/attacking_xeno, dam_bonus) + if(attacking_xeno.fortify || HAS_TRAIT(attacking_xeno, TRAIT_ABILITY_BURROWED)) return XENO_NO_DELAY_ACTION - var/intent = M.a_intent + var/intent = attacking_xeno.a_intent - if(M.behavior_delegate) - intent = M.behavior_delegate.override_intent(src) + if(attacking_xeno.behavior_delegate) + intent = attacking_xeno.behavior_delegate.override_intent(src) //Reviewing the four primary intents switch(intent) if(INTENT_HELP) if(on_fire) - extinguish_mob(M) + extinguish_mob(attacking_xeno) else - M.visible_message(SPAN_NOTICE("[M] caresses [src] with its claws."), \ - SPAN_NOTICE("You caress [src] with your claws."), null, 5, CHAT_TYPE_XENO_FLUFF) + attacking_xeno.visible_message(SPAN_NOTICE("[attacking_xeno] caresses [src] with its claws."), \ + SPAN_NOTICE("We caress [src] with our claws."), null, 5, CHAT_TYPE_XENO_FLUFF) if(INTENT_GRAB) - if(M == src || anchored || buckled) + if(attacking_xeno == src || anchored || buckled) return XENO_NO_DELAY_ACTION - if(check_shields(0, M.name)) // Blocking check - M.visible_message(SPAN_DANGER("[M]'s grab is blocked by [src]'s shield!"), \ - SPAN_DANGER("Your grab was blocked by [src]'s shield!"), null, 5, CHAT_TYPE_XENO_COMBAT) + if(check_shields(0, attacking_xeno.name)) // Blocking check + attacking_xeno.visible_message(SPAN_DANGER("[attacking_xeno]'s grab is blocked by [src]'s shield!"), \ + SPAN_DANGER("Our grab was blocked by [src]'s shield!"), null, 5, CHAT_TYPE_XENO_COMBAT) playsound(loc, 'sound/weapons/alien_claw_block.ogg', 25, 1) //Feedback return XENO_ATTACK_ACTION - if(Adjacent(M)) //Logic! - M.start_pulling(src) + if(Adjacent(attacking_xeno)) //Logic! + attacking_xeno.start_pulling(src) if(INTENT_HARM) - if(M.can_not_harm(src)) - M.animation_attack_on(src) - M.visible_message(SPAN_NOTICE("[M] nibbles [src]"), \ - SPAN_XENONOTICE("You nibble [src]")) + if(attacking_xeno.can_not_harm(src)) + attacking_xeno.animation_attack_on(src) + attacking_xeno.visible_message(SPAN_NOTICE("[attacking_xeno] nibbles [src]"), \ + SPAN_XENONOTICE("We nibble [src]")) return XENO_ATTACK_ACTION - if(M.behavior_delegate && M.behavior_delegate.handle_slash(src)) + if(attacking_xeno.behavior_delegate && attacking_xeno.behavior_delegate.handle_slash(src)) return XENO_NO_DELAY_ACTION if(stat == DEAD) - to_chat(M, SPAN_WARNING("[src] is dead, why would you want to touch it?")) + to_chat(attacking_xeno, SPAN_WARNING("[src] is dead, why would we want to touch it?")) return XENO_NO_DELAY_ACTION - if(M.caste && !M.caste.is_intelligent) + if(attacking_xeno.caste && !attacking_xeno.caste.is_intelligent) if(HAS_TRAIT(src, TRAIT_NESTED) && (status_flags & XENO_HOST)) for(var/obj/item/alien_embryo/embryo in src) - if(HIVE_ALLIED_TO_HIVE(M.hivenumber, embryo.hivenumber)) - to_chat(M, SPAN_WARNING("You should not harm this host! It has a sister inside.")) + if(HIVE_ALLIED_TO_HIVE(attacking_xeno.hivenumber, embryo.hivenumber)) + to_chat(attacking_xeno, SPAN_WARNING("We should not harm this host! It has a sister inside.")) return XENO_NO_DELAY_ACTION - if(check_shields(0, M.name)) // Blocking check - M.visible_message(SPAN_DANGER("[M]'s slash is blocked by [src]'s shield!"), \ - SPAN_DANGER("Your slash is blocked by [src]'s shield!"), null, 5, CHAT_TYPE_XENO_COMBAT) + if(check_shields(0, attacking_xeno.name)) // Blocking check + attacking_xeno.visible_message(SPAN_DANGER("[attacking_xeno]'s slash is blocked by [src]'s shield!"), \ + SPAN_DANGER("Our slash is blocked by [src]'s shield!"), null, 5, CHAT_TYPE_XENO_COMBAT) playsound(loc, 'sound/weapons/alien_claw_block.ogg', 25, 1) //Feedback return XENO_ATTACK_ACTION //From this point, we are certain a full attack will go out. Calculate damage and modifiers - M.track_slashes(M.caste_type) //Adds to slash stat. - var/damage = rand(M.melee_damage_lower, M.melee_damage_upper) + dam_bonus + attacking_xeno.track_slashes(attacking_xeno.caste_type) //Adds to slash stat. + var/damage = rand(attacking_xeno.melee_damage_lower, attacking_xeno.melee_damage_upper) + dam_bonus var/acid_damage = 0 - if(M.burn_damage_lower) - acid_damage = rand(M.burn_damage_lower, M.burn_damage_upper) + if(attacking_xeno.burn_damage_lower) + acid_damage = rand(attacking_xeno.burn_damage_lower, attacking_xeno.burn_damage_upper) //Frenzy auras stack in a way, then the raw value is multipled by two to get the additive modifier - if(M.frenzy_aura > 0) - damage += (M.frenzy_aura * FRENZY_DAMAGE_MULTIPLIER) + if(attacking_xeno.frenzy_aura > 0) + damage += (attacking_xeno.frenzy_aura * FRENZY_DAMAGE_MULTIPLIER) if(acid_damage) - acid_damage += (M.frenzy_aura * FRENZY_DAMAGE_MULTIPLIER) + acid_damage += (attacking_xeno.frenzy_aura * FRENZY_DAMAGE_MULTIPLIER) - M.animation_attack_on(src) + attacking_xeno.animation_attack_on(src) //Somehow we will deal no damage on this attack if(!damage) - playsound(M.loc, 'sound/weapons/alien_claw_swipe.ogg', 25, 1) - M.animation_attack_on(src) - M.visible_message(SPAN_DANGER("[M] lunges at [src]!"), \ - SPAN_DANGER("You lunge at [src]!"), null, 5, CHAT_TYPE_XENO_COMBAT) + playsound(attacking_xeno.loc, 'sound/weapons/alien_claw_swipe.ogg', 25, 1) + attacking_xeno.animation_attack_on(src) + attacking_xeno.visible_message(SPAN_DANGER("[attacking_xeno] lunges at [src]!"), \ + SPAN_DANGER("We lunge at [src]!"), null, 5, CHAT_TYPE_XENO_COMBAT) return XENO_ATTACK_ACTION - M.flick_attack_overlay(src, "slash") + attacking_xeno.flick_attack_overlay(src, "slash") var/obj/limb/affecting - affecting = get_limb(rand_zone(M.zone_selected, 70)) + affecting = get_limb(rand_zone(attacking_xeno.zone_selected, 70)) if(!affecting) //No organ, just get a random one affecting = get_limb(rand_zone(null, 0)) if(!affecting) //Still nothing?? @@ -100,18 +100,18 @@ var/armor_block = getarmor(affecting, ARMOR_MELEE) - if(wear_mask && check_zone(M.zone_selected) == "head") + if(wear_mask && check_zone(attacking_xeno.zone_selected) == "head") if(istype(wear_mask, /obj/item/clothing/mask/gas/yautja)) var/knock_chance = 1 - if(M.frenzy_aura > 0) - knock_chance += 2 * M.frenzy_aura - if(M.caste && M.caste.is_intelligent) + if(attacking_xeno.frenzy_aura > 0) + knock_chance += 2 * attacking_xeno.frenzy_aura + if(attacking_xeno.caste && attacking_xeno.caste.is_intelligent) knock_chance += 2 - knock_chance += min(round(damage * 0.25), 10) //Maximum of 15% chance. + knock_chance += min(floor(damage * 0.25), 10) //Maximum of 15% chance. if(prob(knock_chance)) playsound(loc, "alien_claw_metal", 25, 1) - M.visible_message(SPAN_DANGER("[M] smashes off [src]'s [wear_mask.name]!"), \ - SPAN_DANGER("You smash off [src]'s [wear_mask.name]!"), null, 5) + attacking_xeno.visible_message(SPAN_DANGER("[attacking_xeno] smashes off [src]'s [wear_mask.name]!"), \ + SPAN_DANGER("We smash off [src]'s [wear_mask.name]!"), null, 5) drop_inv_item_on_ground(wear_mask) if(isyautja(src)) emote("roar") @@ -121,42 +121,39 @@ var/n_damage = armor_damage_reduction(GLOB.marine_melee, damage, armor_block) - if(M.behavior_delegate) - n_damage = M.behavior_delegate.melee_attack_modify_damage(n_damage, src) - - if(M.behavior_delegate) - var/datum/behavior_delegate/MD = M.behavior_delegate - MD.melee_attack_additional_effects_target(src) - MD.melee_attack_additional_effects_self() + if(attacking_xeno.behavior_delegate) + n_damage = attacking_xeno.behavior_delegate.melee_attack_modify_damage(n_damage, src) + attacking_xeno.behavior_delegate.melee_attack_additional_effects_target(src) + attacking_xeno.behavior_delegate.melee_attack_additional_effects_self() - var/slash_noise = M.slash_sound + var/slash_noise = attacking_xeno.slash_sound var/list/slashdata = list("n_damage" = n_damage, "slash_noise" = slash_noise) - SEND_SIGNAL(src, COMSIG_HUMAN_XENO_ATTACK, slashdata, M) + SEND_SIGNAL(src, COMSIG_HUMAN_XENO_ATTACK, slashdata, attacking_xeno) var/f_damage = slashdata["n_damage"] slash_noise = slashdata["slash_noise"] //The normal attack proceeds playsound(loc, slash_noise, 25, TRUE) - M.visible_message(SPAN_DANGER("[M] [M.slashes_verb] [src]!"), \ - SPAN_DANGER("You [M.slash_verb] [src]!"), null, null, CHAT_TYPE_XENO_COMBAT) + attacking_xeno.visible_message(SPAN_DANGER("[attacking_xeno] [attacking_xeno.slashes_verb] [src]!"), \ + SPAN_DANGER("We [attacking_xeno.slash_verb] [src]!"), null, null, CHAT_TYPE_XENO_COMBAT) - handle_blood_splatter(get_dir(M.loc, src.loc)) + handle_blood_splatter(get_dir(attacking_xeno.loc, src.loc)) - last_damage_data = create_cause_data(initial(M.name), M) + last_damage_data = create_cause_data(initial(attacking_xeno.name), attacking_xeno) //Logging, including anti-rulebreak logging if(status_flags & XENO_HOST && stat != DEAD) if(HAS_TRAIT(src, TRAIT_NESTED)) //Host was buckled to nest while infected, this is a rule break - attack_log += text("\[[time_stamp()]\] was [M.slash_verb]ed by [key_name(M)] while they were infected and nested") - M.attack_log += text("\[[time_stamp()]\] [M.slash_verb]ed [key_name(src)] while they were infected and nested") - message_admins("[key_name(M)] [M.slash_verb]ed [key_name(src)] while they were infected and nested.") //This is a blatant rulebreak, so warn the admins + attack_log += text("\[[time_stamp()]\] was [attacking_xeno.slash_verb]ed by [key_name(attacking_xeno)] while they were infected and nested") + attacking_xeno.attack_log += text("\[[time_stamp()]\] [attacking_xeno.slash_verb]ed [key_name(src)] while they were infected and nested") + message_admins("[key_name(attacking_xeno)] [attacking_xeno.slash_verb]ed [key_name(src)] while they were infected and nested.") //This is a blatant rulebreak, so warn the admins else //Host might be rogue, needs further investigation - attack_log += text("\[[time_stamp()]\] was [M.slash_verb]ed by [key_name(M)] while they were infected") - M.attack_log += text("\[[time_stamp()]\] [M.slash_verb]ed [key_name(src)] while they were infected") + attack_log += text("\[[time_stamp()]\] was [attacking_xeno.slash_verb]ed by [key_name(attacking_xeno)] while they were infected") + attacking_xeno.attack_log += text("\[[time_stamp()]\] [attacking_xeno.slash_verb]ed [key_name(src)] while they were infected") else //Normal xenomorph friendship with benefits - attack_log += text("\[[time_stamp()]\] was [M.slash_verb]ed by [key_name(M)]") - M.attack_log += text("\[[time_stamp()]\] [M.slash_verb]ed [key_name(src)]") - log_attack("[key_name(M)] [M.slash_verb]ed [key_name(src)]") + attack_log += text("\[[time_stamp()]\] was [attacking_xeno.slash_verb]ed by [key_name(attacking_xeno)]") + attacking_xeno.attack_log += text("\[[time_stamp()]\] [attacking_xeno.slash_verb]ed [key_name(src)]") + log_attack("[key_name(attacking_xeno)] [attacking_xeno.slash_verb]ed [key_name(src)]") //nice messages so people know that armor works if(f_damage <= 0.34*damage) @@ -176,23 +173,22 @@ to_chat(src, SPAN_WARNING("Your armor softens the acid!")) apply_damage(n_acid_damage, BURN, affecting) //Burn damage - SEND_SIGNAL(M, COMSIG_HUMAN_ALIEN_ATTACK, src) + SEND_SIGNAL(attacking_xeno, COMSIG_HUMAN_ALIEN_ATTACK, src) updatehealth() if(INTENT_DISARM) - - if(M.legcuffed && isyautja(src)) - to_chat(M, SPAN_XENODANGER("You don't have the dexterity to tackle the headhunter with that thing on your leg!")) + if(attacking_xeno.legcuffed && isyautja(src)) + to_chat(attacking_xeno, SPAN_XENODANGER("We don't have the dexterity to tackle the headhunter with that thing on our leg!")) return XENO_NO_DELAY_ACTION - M.animation_attack_on(src) - if(check_shields(0, M.name)) // Blocking check - M.visible_message(SPAN_DANGER("[M]'s tackle is blocked by [src]'s shield!"), \ - SPAN_DANGER("Your tackle is blocked by [src]'s shield!"), null, 5, CHAT_TYPE_XENO_COMBAT) + attacking_xeno.animation_attack_on(src) + if(check_shields(0, attacking_xeno.name)) // Blocking check + attacking_xeno.visible_message(SPAN_DANGER("[attacking_xeno]'s tackle is blocked by [src]'s shield!"), \ + SPAN_DANGER("We tackle is blocked by [src]'s shield!"), null, 5, CHAT_TYPE_XENO_COMBAT) playsound(loc, 'sound/weapons/alien_claw_block.ogg', 25, 1) //Feedback return XENO_ATTACK_ACTION - M.flick_attack_overlay(src, "disarm") + attacking_xeno.flick_attack_overlay(src, "disarm") var/tackle_mult = 1 var/tackle_min_offset = 0 @@ -202,19 +198,29 @@ tackle_min_offset += 2 tackle_max_offset += 2 - if(M.attempt_tackle(src, tackle_mult, tackle_min_offset, tackle_max_offset)) + var/knocked_down + if(attacking_xeno.attempt_tackle(src, tackle_mult, tackle_min_offset, tackle_max_offset)) playsound(loc, 'sound/weapons/alien_knockdown.ogg', 25, 1) - apply_effect(rand(M.tacklestrength_min, M.tacklestrength_max), WEAKEN) - M.visible_message(SPAN_DANGER("[M] tackles down [src]!"), \ - SPAN_DANGER("You tackle down [src]!"), null, 5, CHAT_TYPE_XENO_COMBAT) + var/strength = rand(attacking_xeno.tacklestrength_min, attacking_xeno.tacklestrength_max) + Stun(strength) + KnockDown(strength) // Purely for knockdown visuals. All the heavy lifting is done by Stun + attacking_xeno.visible_message(SPAN_DANGER("[attacking_xeno] tackles down [src]!"), \ + SPAN_DANGER("We tackle down [src]!"), null, 5, CHAT_TYPE_XENO_COMBAT) + SEND_SIGNAL(src, COMSIG_MOB_TACKLED_DOWN, attacking_xeno) + knocked_down = TRUE else playsound(loc, 'sound/weapons/alien_claw_swipe.ogg', 25, 1) - if (HAS_TRAIT(src, TRAIT_FLOORED)) - M.visible_message(SPAN_DANGER("[M] tries to tackle [src], but they are already down!"), \ - SPAN_DANGER("You try to tackle [src], but they are already down!"), null, 5, CHAT_TYPE_XENO_COMBAT) + if (body_position == LYING_DOWN) + attacking_xeno.visible_message(SPAN_DANGER("[attacking_xeno] tries to tackle [src], but they are already down!"), \ + SPAN_DANGER("We try to tackle [src], but they are already down!"), null, 5, CHAT_TYPE_XENO_COMBAT) else - M.visible_message(SPAN_DANGER("[M] tries to tackle [src]"), \ - SPAN_DANGER("You try to tackle [src]"), null, 5, CHAT_TYPE_XENO_COMBAT) + attacking_xeno.visible_message(SPAN_DANGER("[attacking_xeno] tries to tackle [src]"), \ + SPAN_DANGER("We try to tackle [src]"), null, 5, CHAT_TYPE_XENO_COMBAT) + knocked_down = FALSE + + attacking_xeno.attack_log += "\[[time_stamp()]\] [knocked_down ? "S" : "Uns"]uccessfully tackled [key_name(src)]" + attack_log += "\[[time_stamp()]\] Has been [knocked_down ? "" : "un"]successfully tackled by [key_name(attacking_xeno)]" + log_attack("[key_name(attacking_xeno)] [knocked_down ? "" : "un"]successfully tackled [key_name(src)] in [get_area(src)] ([loc.x],[loc.y],[loc.z]).") return XENO_ATTACK_ACTION @@ -226,7 +232,7 @@ switch(M.a_intent) if(INTENT_HELP) M.visible_message(SPAN_NOTICE("[M] caresses [src] with its claws."), \ - SPAN_NOTICE("You caress [src] with your claws."), null, 5, CHAT_TYPE_XENO_FLUFF) + SPAN_NOTICE("We caress [src] with our claws."), null, 5, CHAT_TYPE_XENO_FLUFF) if(INTENT_GRAB) if(M == src || anchored || buckled) @@ -240,7 +246,7 @@ var/mob/living/carbon/xenomorph/X = src if(!X.banished) M.visible_message(SPAN_WARNING("[M] nibbles [src]."), \ - SPAN_WARNING("You nibble [src]."), null, 5, CHAT_TYPE_XENO_FLUFF) + SPAN_WARNING("We nibble [src]."), null, 5, CHAT_TYPE_XENO_FLUFF) return XENO_ATTACK_ACTION // copypasted from attack_alien.dm @@ -257,12 +263,12 @@ playsound(M.loc, 'sound/weapons/alien_claw_swipe.ogg', 25, 1) M.animation_attack_on(src) M.visible_message(SPAN_DANGER("[M] lunges at [src]!"), \ - SPAN_DANGER("You lunge at [src]!"), null, 5, CHAT_TYPE_XENO_COMBAT) + SPAN_DANGER("We lunge at [src]!"), null, 5, CHAT_TYPE_XENO_COMBAT) return XENO_ATTACK_ACTION last_damage_data = create_cause_data(initial(M.name), M) M.visible_message(SPAN_DANGER("[M] [M.slashes_verb] [src]!"), \ - SPAN_DANGER("You [M.slash_verb] [src]!"), null, 5, CHAT_TYPE_XENO_COMBAT) + SPAN_DANGER("We [M.slash_verb] [src]!"), null, 5, CHAT_TYPE_XENO_COMBAT) attack_log += text("\[[time_stamp()]\] was [M.slash_verb]ed by [key_name(M)]") M.attack_log += text("\[[time_stamp()]\] [M.slash_verb]ed [key_name(src)]") log_attack("[key_name(M)] [M.slash_verb]ed [key_name(src)]") @@ -277,14 +283,15 @@ playsound(loc, 'sound/weapons/alien_knockdown.ogg', 25, 1) M.visible_message(SPAN_WARNING("[M] shoves [src]!"), \ - SPAN_WARNING("You shove [src]!"), null, 5, CHAT_TYPE_XENO_COMBAT) + SPAN_WARNING("We shove [src]!"), null, 5, CHAT_TYPE_XENO_COMBAT) if(ismonkey(src)) apply_effect(8, WEAKEN) return XENO_ATTACK_ACTION /mob/living/attack_larva(mob/living/carbon/xenomorph/larva/M) M.visible_message(SPAN_DANGER("[M] nudges its head against [src]."), \ - SPAN_DANGER("You nudge your head against [src]."), null, 5, CHAT_TYPE_XENO_FLUFF) + SPAN_DANGER("We nudge our head against [src]."), null, 5, CHAT_TYPE_XENO_FLUFF) + M.animation_attack_on(src) /mob/living/proc/is_xeno_grabbable() if(stat == DEAD) @@ -306,8 +313,11 @@ return FALSE // leave the dead alone //This proc is here to prevent Xenomorphs from picking up objects (default attack_hand behaviour) -//Note that this is overriden by every proc concerning a child of obj unless inherited -/obj/item/attack_alien(mob/living/carbon/xenomorph/M) +//Note that this is overridden by every proc concerning a child of obj unless inherited +/obj/item/attack_alien(mob/living/carbon/xenomorph/xeno) + if(HAS_TRAIT(xeno, TRAIT_OPPOSABLE_THUMBS)) + attack_hand(xeno) + return XENO_NONCOMBAT_ACTION return /obj/attack_larva(mob/living/carbon/xenomorph/larva/M) @@ -324,11 +334,11 @@ health -= rand(M.melee_damage_lower, M.melee_damage_upper) if(health <= 0) M.visible_message(SPAN_DANGER("[M] slices [src] apart!"), \ - SPAN_DANGER("You slice [src] apart!"), null, 5, CHAT_TYPE_XENO_COMBAT) + SPAN_DANGER("We slice [src] apart!"), null, 5, CHAT_TYPE_XENO_COMBAT) deconstruct(FALSE) else M.visible_message(SPAN_DANGER("[M] [M.slashes_verb] [src]!"), \ - SPAN_DANGER("You [M.slash_verb] [src]!"), null, 5, CHAT_TYPE_XENO_COMBAT) + SPAN_DANGER("We [M.slash_verb] [src]!"), null, 5, CHAT_TYPE_XENO_COMBAT) return XENO_ATTACK_ACTION //Breaking barricades @@ -339,13 +349,13 @@ playsound(src, barricade_hitsound, 25, 1) if(health <= 0) M.visible_message(SPAN_DANGER("[M] slices [src] apart!"), \ - SPAN_DANGER("You slice [src] apart!"), null, 5, CHAT_TYPE_XENO_COMBAT) + SPAN_DANGER("We slice [src] apart!"), null, 5, CHAT_TYPE_XENO_COMBAT) else M.visible_message(SPAN_DANGER("[M] [M.slashes_verb] [src]!"), \ - SPAN_DANGER("You [M.slash_verb] [src]!"), null, 5, CHAT_TYPE_XENO_COMBAT) + SPAN_DANGER("We [M.slash_verb] [src]!"), null, 5, CHAT_TYPE_XENO_COMBAT) if(is_wired) M.visible_message(SPAN_DANGER("The barbed wire slices into [M]!"), - SPAN_DANGER("The barbed wire slices into you!"), null, 5, CHAT_TYPE_XENO_COMBAT) + SPAN_DANGER("The barbed wire slices into us!"), null, 5, CHAT_TYPE_XENO_COMBAT) M.apply_damage(10) return XENO_ATTACK_ACTION @@ -354,11 +364,11 @@ if(barricade_hitsound) playsound(src, barricade_hitsound, 25, 1) if(health <= 0) - xeno.visible_message(SPAN_DANGER("[xeno] stabs \the [src] apart!"), SPAN_DANGER("You stab \the [src] apart!"), null, 5, CHAT_TYPE_XENO_COMBAT) + xeno.visible_message(SPAN_DANGER("[xeno] stabs \the [src] apart!"), SPAN_DANGER("We stab \the [src] apart!"), null, 5, CHAT_TYPE_XENO_COMBAT) else - xeno.visible_message(SPAN_DANGER("[xeno] stabs \the [src] with its razor sharp tail!"), SPAN_DANGER("You stab \the [src] with your razor sharp tail!"), null, 5, CHAT_TYPE_XENO_COMBAT) + xeno.visible_message(SPAN_DANGER("[xeno] stabs \the [src] with its razor sharp tail!"), SPAN_DANGER("We stab \the [src] with our razor sharp tail!"), null, 5, CHAT_TYPE_XENO_COMBAT) if(is_wired) - xeno.visible_message(SPAN_DANGER("The barbed wire slices into \the [xeno]'s tail!"), SPAN_DANGER("The barbed wire slices into your tail!"), null, 5, CHAT_TYPE_XENO_COMBAT) + xeno.visible_message(SPAN_DANGER("The barbed wire slices into \the [xeno]'s tail!"), SPAN_DANGER("The barbed wire slices into our tail!"), null, 5, CHAT_TYPE_XENO_COMBAT) xeno.apply_damage(5) return TAILSTAB_COOLDOWN_NORMAL @@ -366,7 +376,7 @@ M.animation_attack_on(src) playsound(src, 'sound/effects/metalhit.ogg', 25, 1) M.visible_message(SPAN_DANGER("[M] slices [src] apart!"), \ - SPAN_DANGER("You slice [src] apart!"), null, 5, CHAT_TYPE_XENO_COMBAT) + SPAN_DANGER("We slice [src] apart!"), null, 5, CHAT_TYPE_XENO_COMBAT) deconstruct(FALSE) return XENO_ATTACK_ACTION @@ -374,10 +384,16 @@ //If we sent it to monkey we'd get some weird shit happening. /obj/structure/attack_alien(mob/living/carbon/xenomorph/M) // fuck off dont destroy my unslashables - if(unslashable || health <= 0) - to_chat(M, SPAN_WARNING("You stare at \the [src] cluelessly.")) + if(unslashable || health <= 0 && !HAS_TRAIT(usr, TRAIT_OPPOSABLE_THUMBS)) + to_chat(M, SPAN_WARNING("We stare at \the [src] cluelessly.")) return XENO_NO_DELAY_ACTION +/obj/structure/magazine_box/attack_alien(mob/living/carbon/xenomorph/xeno) + if(HAS_TRAIT(usr, TRAIT_OPPOSABLE_THUMBS)) + attack_hand(xeno) + return XENO_NONCOMBAT_ACTION + else + . = ..() //Beds, nests and chairs - unbuckling /obj/structure/bed/attack_alien(mob/living/carbon/xenomorph/M) @@ -387,7 +403,7 @@ M.animation_attack_on(src) playsound(src, hit_bed_sound, 25, 1) M.visible_message(SPAN_DANGER("[M] slices [src] apart!"), - SPAN_DANGER("You slice [src] apart!"), null, 5, CHAT_TYPE_XENO_COMBAT) + SPAN_DANGER("We slice [src] apart!"), null, 5, CHAT_TYPE_XENO_COMBAT) unbuckle() deconstruct(FALSE) return XENO_ATTACK_ACTION @@ -412,7 +428,7 @@ return FALSE M.animation_attack_on(src) M.visible_message(SPAN_DANGER("[M] smashes [src]!"), \ - SPAN_DANGER("You smash [src]!"), null, 5) + SPAN_DANGER("We smash [src]!"), null, 5) broken() //Smashola! return XENO_ATTACK_ACTION @@ -421,7 +437,7 @@ if(M.a_intent == INTENT_HELP) playsound(loc, 'sound/effects/glassknock.ogg', 25, 1) M.visible_message(SPAN_WARNING("[M] creepily taps on [src] with its huge claw."), \ - SPAN_WARNING("You creepily tap on [src]."), \ + SPAN_WARNING("We creepily tap on [src]."), \ SPAN_WARNING("You hear a glass tapping sound."), 5, CHAT_TYPE_XENO_COMBAT) else attack_generic(M, M.melee_damage_lower) @@ -433,10 +449,10 @@ health -= rand(15, 30) if(health <= 0) M.visible_message(SPAN_DANGER("[M] slices [src] apart!"), \ - SPAN_DANGER("You slice [src] apart!"), null, 5, CHAT_TYPE_XENO_COMBAT) + SPAN_DANGER("We slice [src] apart!"), null, 5, CHAT_TYPE_XENO_COMBAT) else M.visible_message(SPAN_DANGER("[M] [M.slashes_verb] [src]!"), \ - SPAN_DANGER("You [M.slash_verb] [src]!"), null, 5, CHAT_TYPE_XENO_COMBAT) + SPAN_DANGER("We [M.slash_verb] [src]!"), null, 5, CHAT_TYPE_XENO_COMBAT) playsound(loc, "alien_claw_metal", 25, 1) if(prob(10)) new /obj/effect/decal/cleanable/blood/oil(loc) @@ -447,7 +463,7 @@ /obj/structure/machinery/camera/attack_alien(mob/living/carbon/xenomorph/M) if(status) M.visible_message(SPAN_DANGER("[M] slices [src] apart!"), \ - SPAN_DANGER("You slice [src] apart!"), null, 5, CHAT_TYPE_XENO_COMBAT) + SPAN_DANGER("We slice [src] apart!"), null, 5, CHAT_TYPE_XENO_COMBAT) playsound(loc, "alien_claw_metal", 25, 1) wires = 0 //wires all cut light_disabled = 0 @@ -459,7 +475,7 @@ M.animation_attack_on(src) playsound(loc, 'sound/effects/Glasshit.ogg', 25, 1) M.visible_message(SPAN_DANGER("[M] smashes against [src]!"), \ - SPAN_DANGER("You smash against [src]!"), null, 5, CHAT_TYPE_XENO_COMBAT) + SPAN_DANGER("We smash against [src]!"), null, 5, CHAT_TYPE_XENO_COMBAT) var/damage = 25 if(M.mob_size >= MOB_SIZE_BIG) damage = 40 @@ -472,8 +488,8 @@ playsound(loc, 'sound/effects/grillehit.ogg', 25, 1) var/damage_dealt = 5 M.visible_message(SPAN_DANGER("[M] mangles [src]!"), \ - SPAN_DANGER("You mangle [src]!"), \ - SPAN_DANGER("You hear twisting metal!"), 5, CHAT_TYPE_XENO_COMBAT) + SPAN_DANGER("We mangle [src]!"), \ + SPAN_DANGER("We hear twisting metal!"), 5, CHAT_TYPE_XENO_COMBAT) if(shock(M, 70)) M.visible_message(SPAN_DANGER("ZAP! [M] spazzes wildly amongst a smell of burnt ozone."), \ @@ -488,10 +504,10 @@ //Slashing fences /obj/structure/fence/attack_alien(mob/living/carbon/xenomorph/M) M.animation_attack_on(src) - var/damage_dealt = 5 + var/damage_dealt = 25 M.visible_message(SPAN_DANGER("[M] mangles [src]!"), \ - SPAN_DANGER("You mangle [src]!"), \ - SPAN_DANGER("You hear twisting metal!"), 5, CHAT_TYPE_XENO_COMBAT) + SPAN_DANGER("We mangle [src]!"), \ + SPAN_DANGER("We hear twisting metal!"), 5, CHAT_TYPE_XENO_COMBAT) health -= damage_dealt healthcheck() @@ -506,11 +522,11 @@ if(M.a_intent == INTENT_HELP) M.visible_message(SPAN_WARNING("[M] ogles its own reflection in [src]."), \ - SPAN_WARNING("You ogle your own reflection in [src]."), null, 5, CHAT_TYPE_XENO_COMBAT) + SPAN_WARNING("We ogle our own reflection in [src]."), null, 5, CHAT_TYPE_XENO_COMBAT) return XENO_NONCOMBAT_ACTION else M.visible_message(SPAN_DANGER("[M] smashes [src]!"), \ - SPAN_DANGER("You smash [src]!"), null, 5, CHAT_TYPE_XENO_COMBAT) + SPAN_DANGER("We smash [src]!"), null, 5, CHAT_TYPE_XENO_COMBAT) shatter() return XENO_ATTACK_ACTION @@ -568,7 +584,7 @@ playsound(loc, "alien_doorpry", 25, TRUE) M.visible_message(SPAN_WARNING("[M] digs into [src] and begins to pry it open."), \ - SPAN_WARNING("You dig into [src] and begin to pry it open."), null, 5, CHAT_TYPE_XENO_COMBAT) + SPAN_WARNING("We dig into [src] and begin to pry it open."), null, 5, CHAT_TYPE_XENO_COMBAT) xeno_attack_delay(M) if(do_after(M, delay, INTERRUPT_ALL, BUSY_ICON_HOSTILE)) @@ -586,7 +602,7 @@ spawn(0) open(1) M.visible_message(SPAN_DANGER("[M] pries [src] open."), \ - SPAN_DANGER("You pry [src] open."), null, 5, CHAT_TYPE_XENO_COMBAT) + SPAN_DANGER("We pry [src] open."), null, 5, CHAT_TYPE_XENO_COMBAT) return XENO_NO_DELAY_ACTION /obj/structure/machinery/door/airlock/attack_larva(mob/living/carbon/xenomorph/larva/M) @@ -606,7 +622,7 @@ playsound(loc, 'sound/effects/metal_creaking.ogg', 25, 1) M.visible_message(SPAN_WARNING("[M] digs into [src] and begins to pry it open."), \ - SPAN_WARNING("You dig into [src] and begin to pry it open."), null, 5, CHAT_TYPE_XENO_COMBAT) + SPAN_WARNING("We dig into [src] and begin to pry it open."), null, 5, CHAT_TYPE_XENO_COMBAT) xeno_attack_delay(M) if(do_after(M, 30, INTERRUPT_ALL, BUSY_ICON_HOSTILE)) @@ -619,7 +635,7 @@ spawn(0) open(1) M.visible_message(SPAN_DANGER("[M] pries [src] open."), \ - SPAN_DANGER("You pry [src] open."), null, 5, CHAT_TYPE_XENO_COMBAT) + SPAN_DANGER("We pry [src] open."), null, 5, CHAT_TYPE_XENO_COMBAT) return XENO_NO_DELAY_ACTION /obj/structure/mineral_door/resin/attack_larva(mob/living/carbon/xenomorph/larva/M) @@ -642,7 +658,7 @@ return else M.visible_message(SPAN_XENONOTICE("[M] claws [src]!"), \ - SPAN_XENONOTICE("You claw [src]."), null, null, CHAT_TYPE_XENO_COMBAT) + SPAN_XENONOTICE("We claw [src]."), null, null, CHAT_TYPE_XENO_COMBAT) playsound(loc, "alien_resin_break", 25) M.animation_attack_on(src) @@ -657,8 +673,8 @@ //Xenomorphs can't use machinery, not even the "intelligent" ones //Exception is Queen and shuttles, because plot power /obj/structure/machinery/attack_alien(mob/living/carbon/xenomorph/M) - if(unslashable || health <= 0) - to_chat(M, SPAN_WARNING("You stare at \the [src] cluelessly.")) + if(unslashable || health <= 0 && !HAS_TRAIT(usr, TRAIT_OPPOSABLE_THUMBS)) + to_chat(M, SPAN_WARNING("We stare at \the [src] cluelessly.")) return XENO_NO_DELAY_ACTION M.animation_attack_on(src) @@ -666,18 +682,18 @@ update_health(rand(M.melee_damage_lower, M.melee_damage_upper)) if(health <= 0) M.visible_message(SPAN_DANGER("[M] slices \the [src] apart!"), \ - SPAN_DANGER("You slice \the [src] apart!"), null, 5, CHAT_TYPE_XENO_COMBAT) + SPAN_DANGER("We slice \the [src] apart!"), null, 5, CHAT_TYPE_XENO_COMBAT) if(!unacidable) qdel(src) else M.visible_message(SPAN_DANGER("[M] [M.slashes_verb] \the [src]!"), \ - SPAN_DANGER("You [M.slash_verb] \the [src]!"), null, 5, CHAT_TYPE_XENO_COMBAT) + SPAN_DANGER("We [M.slash_verb] \the [src]!"), null, 5, CHAT_TYPE_XENO_COMBAT) return XENO_ATTACK_ACTION // Destroying reagent dispensers /obj/structure/reagent_dispensers/attack_alien(mob/living/carbon/xenomorph/M) - if(unslashable || health <= 0) - to_chat(M, SPAN_WARNING("You stare at \the [src] cluelessly.")) + if(unslashable || health <= 0 && !HAS_TRAIT(usr, TRAIT_OPPOSABLE_THUMBS)) + to_chat(M, SPAN_WARNING("We stare at \the [src] cluelessly.")) return XENO_NO_DELAY_ACTION M.animation_attack_on(src) @@ -685,18 +701,18 @@ update_health(rand(M.melee_damage_lower, M.melee_damage_upper)) if(health <= 0) M.visible_message(SPAN_DANGER("[M] slices \the [src] apart!"), \ - SPAN_DANGER("You slice \the [src] apart!"), null, 5, CHAT_TYPE_XENO_COMBAT) + SPAN_DANGER("We slice \the [src] apart!"), null, 5, CHAT_TYPE_XENO_COMBAT) if(!unacidable) qdel(src) else M.visible_message(SPAN_DANGER("[M] [M.slashes_verb] \the [src]!"), \ - SPAN_DANGER("You [M.slash_verb] \the [src]!"), null, 5, CHAT_TYPE_XENO_COMBAT) + SPAN_DANGER("We [M.slash_verb] \the [src]!"), null, 5, CHAT_TYPE_XENO_COMBAT) return XENO_ATTACK_ACTION // Destroying filing cabinets /obj/structure/filingcabinet/attack_alien(mob/living/carbon/xenomorph/M) if(unslashable || health <= 0) - to_chat(M, SPAN_WARNING("You stare at \the [src] cluelessly.")) + to_chat(M, SPAN_WARNING("We stare at \the [src] cluelessly.")) return XENO_NO_DELAY_ACTION M.animation_attack_on(src) @@ -704,18 +720,18 @@ update_health(rand(M.melee_damage_lower, M.melee_damage_upper)) if(health <= 0) M.visible_message(SPAN_DANGER("[M] slices \the [src] apart!"), \ - SPAN_DANGER("You slice \the [src] apart!"), null, 5, CHAT_TYPE_XENO_COMBAT) + SPAN_DANGER("We slice \the [src] apart!"), null, 5, CHAT_TYPE_XENO_COMBAT) if(!unacidable) qdel(src) else M.visible_message(SPAN_DANGER("[M] [M.slashes_verb] \the [src]!"), \ - SPAN_DANGER("You [M.slash_verb] \the [src]!"), null, 5, CHAT_TYPE_XENO_COMBAT) + SPAN_DANGER("We [M.slash_verb] \the [src]!"), null, 5, CHAT_TYPE_XENO_COMBAT) return XENO_ATTACK_ACTION // Destroying morgues & crematoriums /obj/structure/morgue/attack_alien(mob/living/carbon/xenomorph/alien) if(unslashable) - to_chat(alien, SPAN_WARNING("You stare at \the [src] cluelessly.")) + to_chat(alien, SPAN_WARNING("We stare at \the [src] cluelessly.")) return XENO_NO_DELAY_ACTION var destroyloc = loc @@ -724,17 +740,17 @@ update_health(rand(alien.melee_damage_lower, alien.melee_damage_upper)) if(health <= 0) alien.visible_message(SPAN_DANGER("[alien] slices \the [src] apart!"), \ - SPAN_DANGER("You slice \the [src] apart!"), null, 5, CHAT_TYPE_XENO_COMBAT) + SPAN_DANGER("We slice \the [src] apart!"), null, 5, CHAT_TYPE_XENO_COMBAT) new /obj/item/stack/sheet/metal(destroyloc, 2) else alien.visible_message(SPAN_DANGER("[alien] [alien.slashes_verb] \the [src]!"), \ - SPAN_DANGER("You [alien.slash_verb] \the [src]!"), null, 5, CHAT_TYPE_XENO_COMBAT) + SPAN_DANGER("We [alien.slash_verb] \the [src]!"), null, 5, CHAT_TYPE_XENO_COMBAT) return XENO_ATTACK_ACTION // Destroying hydroponics trays /obj/structure/machinery/portable_atmospherics/hydroponics/attack_alien(mob/living/carbon/xenomorph/alien) if(unslashable) - to_chat(alien, SPAN_WARNING("You stare at \the [src] cluelessly.")) + to_chat(alien, SPAN_WARNING("We stare at \the [src] cluelessly.")) return XENO_NO_DELAY_ACTION alien.animation_attack_on(src) @@ -742,18 +758,18 @@ update_health(rand(alien.melee_damage_lower, alien.melee_damage_upper)) if(health <= 0) alien.visible_message(SPAN_DANGER("[alien] slices \the [src] apart!"), \ - SPAN_DANGER("You slice \the [src] apart!"), null, 5, CHAT_TYPE_XENO_COMBAT) + SPAN_DANGER("We slice \the [src] apart!"), null, 5, CHAT_TYPE_XENO_COMBAT) if(!unacidable) qdel(src) else alien.visible_message(SPAN_DANGER("[alien] [alien.slashes_verb] \the [src]!"), \ - SPAN_DANGER("You [alien.slash_verb] \the [src]!"), null, 5, CHAT_TYPE_XENO_COMBAT) + SPAN_DANGER("We [alien.slash_verb] \the [src]!"), null, 5, CHAT_TYPE_XENO_COMBAT) return XENO_ATTACK_ACTION /datum/shuttle/ferry/marine/proc/hijack(mob/living/carbon/xenomorph/M, shuttle_tag) if(!queen_locked) //we have not hijacked it yet if(world.time < SHUTTLE_LOCK_TIME_LOCK) - to_chat(M, SPAN_XENODANGER("You can't mobilize the strength to hijack the shuttle yet. Please wait another [time_left_until(SHUTTLE_LOCK_TIME_LOCK, world.time, 1 MINUTES)] minutes before trying again.")) + to_chat(M, SPAN_XENODANGER("We can't mobilize the strength to hijack the shuttle yet. Please wait another [time_left_until(SHUTTLE_LOCK_TIME_LOCK, world.time, 1 MINUTES)] minutes before trying again.")) return var/message @@ -764,7 +780,7 @@ if(!GLOB.resin_lz_allowed) set_lz_resin_allowed(TRUE) - to_chat(M, SPAN_XENONOTICE("You interact with the machine and disable remote control.")) + to_chat(M, SPAN_XENONOTICE("We interact with the machine and disable remote control.")) xeno_message(SPAN_XENOANNOUNCE("[message]"),3,M.hivenumber) last_locked = world.time if(GLOB.almayer_orbital_cannon) @@ -774,7 +790,7 @@ /datum/shuttle/ferry/marine/proc/door_override(mob/living/carbon/xenomorph/M, shuttle_tag) if(!door_override) - to_chat(M, SPAN_XENONOTICE("You override the doors.")) + to_chat(M, SPAN_XENONOTICE("We override the doors.")) xeno_message(SPAN_XENOANNOUNCE("The doors of the metal bird have been overridden! Rejoice!"),3,M.hivenumber) last_door_override = world.time door_override = 1 @@ -806,11 +822,11 @@ to_chat(M, SPAN_XENONOTICE("[src] is already broken!")) return XENO_NO_DELAY_ACTION else if(beenhit >= XENO_HITS_TO_CUT_WIRES && M.mob_size < MOB_SIZE_BIG) - to_chat(M, SPAN_XENONOTICE("You aren't big enough to further damage [src].")) + to_chat(M, SPAN_XENONOTICE("We aren't big enough to further damage [src].")) return XENO_NO_DELAY_ACTION M.animation_attack_on(src) M.visible_message(SPAN_DANGER("[M] [M.slashes_verb] [src]!"), \ - SPAN_DANGER("You [M.slash_verb] [src]!"), null, 5) + SPAN_DANGER("We [M.slash_verb] [src]!"), null, 5) playsound(loc, "alien_claw_metal", 25, 1) if (beenhit >= XENO_HITS_TO_CUT_WIRES) set_broken() @@ -845,20 +861,16 @@ to_chat(M, "It's already damaged.") return XENO_NO_DELAY_ACTION M.animation_attack_on(src) - M.visible_message("[M] slashes away at [src]!","You slash and claw at the bright light!", max_distance = 5, message_flags = CHAT_TYPE_XENO_COMBAT) + M.visible_message("[M] slashes away at [src]!","We slash and claw at the bright light!", max_distance = 5, message_flags = CHAT_TYPE_XENO_COMBAT) health = max(health - rand(M.melee_damage_lower, M.melee_damage_upper), 0) if(!health) - playsound(src, "glassbreak", 70, 1) - damaged = TRUE - if(is_lit) - set_light(0) - update_icon() + set_damaged() else playsound(loc, 'sound/effects/Glasshit.ogg', 25, 1) return XENO_ATTACK_ACTION /obj/structure/machinery/colony_floodlight/attack_larva(mob/living/carbon/xenomorph/larva/M) - M.visible_message("[M] starts biting [src]!","In a rage, you start biting [src], but with no effect!", null, 5, CHAT_TYPE_XENO_COMBAT) + M.visible_message("[M] starts biting [src]!","In a rage, we start biting [src], but with no effect!", null, 5, CHAT_TYPE_XENO_COMBAT) @@ -869,12 +881,13 @@ if(M.a_intent == INTENT_HELP || !bleed_layer) return ..() - M.visible_message(SPAN_NOTICE("[M] starts clearing out \the [src]..."), SPAN_NOTICE("You start \the clearing out [src]..."), null, 5, CHAT_TYPE_XENO_COMBAT) + M.visible_message(SPAN_NOTICE("[M] starts clearing out \the [src]..."), SPAN_NOTICE("We start \the clearing out [src]..."), null, 5, CHAT_TYPE_XENO_COMBAT) playsound(M.loc, 'sound/weapons/alien_claw_swipe.ogg', 25, 1) while(bleed_layer > 0) xeno_attack_delay(M) - if(!do_after(M, 12, INTERRUPT_ALL, BUSY_ICON_FRIENDLY)) + var/size = max(M.mob_size, 1) + if(!do_after(M, 12/size, INTERRUPT_ALL, BUSY_ICON_FRIENDLY)) return XENO_NO_DELAY_ACTION if(!bleed_layer) @@ -901,26 +914,26 @@ if(prob(difficulty)) break_open() M.visible_message(SPAN_DANGER("[M] smashes \the [src] open!"), \ - SPAN_DANGER("You smash \the [src] open!"), null, 5, CHAT_TYPE_XENO_COMBAT) + SPAN_DANGER("We smash \the [src] open!"), null, 5, CHAT_TYPE_XENO_COMBAT) else M.visible_message(SPAN_DANGER("[M] smashes [src]!"), \ - SPAN_DANGER("You smash [src]!"), null, 5, CHAT_TYPE_XENO_COMBAT) + SPAN_DANGER("We smash [src]!"), null, 5, CHAT_TYPE_XENO_COMBAT) return XENO_ATTACK_ACTION /obj/structure/girder/attack_alien(mob/living/carbon/xenomorph/M) - if((M.caste && M.caste.tier < 2 && !isqueen(M)) || unacidable) - to_chat(M, SPAN_WARNING("Your claws aren't sharp enough to damage [src].")) + if((M.caste && M.caste.tier < 2 && M.claw_type < CLAW_TYPE_VERY_SHARP) || unacidable) + to_chat(M, SPAN_WARNING("Our claws aren't sharp enough to damage [src].")) return XENO_NO_DELAY_ACTION M.animation_attack_on(src) - health -= round(rand(M.melee_damage_lower, M.melee_damage_upper) * 0.5) + health -= floor(rand(M.melee_damage_lower, M.melee_damage_upper) * 0.5) if(health <= 0) M.visible_message(SPAN_DANGER("[M] smashes [src] apart!"), \ - SPAN_DANGER("You slice [src] apart!"), null, 5, CHAT_TYPE_XENO_COMBAT) + SPAN_DANGER("We slice [src] apart!"), null, 5, CHAT_TYPE_XENO_COMBAT) playsound(loc, 'sound/effects/metalhit.ogg', 25, TRUE) dismantle() else M.visible_message(SPAN_DANGER("[M] smashes [src]!"), \ - SPAN_DANGER("You [M.slash_verb] [src]!"), null, 5, CHAT_TYPE_XENO_COMBAT) + SPAN_DANGER("We [M.slash_verb] [src]!"), null, 5, CHAT_TYPE_XENO_COMBAT) playsound(loc, 'sound/effects/metalhit.ogg', 25, TRUE) return XENO_ATTACK_ACTION @@ -934,18 +947,18 @@ if(prob(M.melee_damage_lower)) playsound(loc, 'sound/effects/metalhit.ogg', 25, 1) M.visible_message(SPAN_DANGER("[M] smashes [src] beyond recognition!"), \ - SPAN_DANGER("You enter a frenzy and smash [src] apart!"), null, 5, CHAT_TYPE_XENO_COMBAT) + SPAN_DANGER("We enter a frenzy and smash [src] apart!"), null, 5, CHAT_TYPE_XENO_COMBAT) malfunction() else M.visible_message(SPAN_DANGER("[M] [M.slashes_verb] [src]!"), \ - SPAN_DANGER("You [M.slash_verb] [src]!"), null, 5, CHAT_TYPE_XENO_COMBAT) + SPAN_DANGER("We [M.slash_verb] [src]!"), null, 5, CHAT_TYPE_XENO_COMBAT) playsound(loc, 'sound/effects/metalhit.ogg', 25, 1) return XENO_ATTACK_ACTION if(M.action_busy) return XENO_NO_DELAY_ACTION M.visible_message(SPAN_WARNING("[M] begins to lean against [src]."), \ - SPAN_WARNING("You begin to lean against [src]."), null, 5, CHAT_TYPE_XENO_COMBAT) + SPAN_WARNING("We begin to lean against [src]."), null, 5, CHAT_TYPE_XENO_COMBAT) var/shove_time = 100 if(M.mob_size >= MOB_SIZE_BIG) shove_time = 50 @@ -957,7 +970,7 @@ if(do_after(M, shove_time, INTERRUPT_ALL, BUSY_ICON_HOSTILE)) M.animation_attack_on(src) M.visible_message(SPAN_DANGER("[M] knocks [src] down!"), \ - SPAN_DANGER("You knock [src] down!"), null, 5, CHAT_TYPE_XENO_COMBAT) + SPAN_DANGER("We knock [src] down!"), null, 5, CHAT_TYPE_XENO_COMBAT) tip_over() return XENO_NO_DELAY_ACTION @@ -987,7 +1000,7 @@ /obj/structure/prop/invuln/joey/attack_alien(mob/living/carbon/xenomorph/alien) alien.animation_attack_on(src) alien.visible_message(SPAN_DANGER("[alien] [alien.slashes_verb] [src]!"), \ - SPAN_DANGER("You [alien.slash_verb] [src]!"), null, 5) + SPAN_DANGER("We [alien.slash_verb] [src]!"), null, 5) playsound(loc, "alien_claw_metal", 25, 1) attacked() return XENO_ATTACK_ACTION diff --git a/code/modules/mob/living/carbon/xenomorph/castes/Boiler.dm b/code/modules/mob/living/carbon/xenomorph/castes/Boiler.dm index 37dc3048408a..f7e906a82b28 100644 --- a/code/modules/mob/living/carbon/xenomorph/castes/Boiler.dm +++ b/code/modules/mob/living/carbon/xenomorph/castes/Boiler.dm @@ -13,6 +13,7 @@ evasion = XENO_EVASION_NONE speed = XENO_SPEED_TIER_3 + available_strains = list(/datum/xeno_strain/trapper) behavior_delegate_type = /datum/behavior_delegate/boiler_base evolution_allowed = FALSE @@ -50,7 +51,6 @@ tier = 3 gib_chance = 100 drag_delay = 6 //pulling a big dead xeno is hard - mutation_type = BOILER_NORMAL spit_delay = 30 SECONDS tileoffset = 3 viewsize = 7 @@ -58,6 +58,10 @@ icon_xeno = 'icons/mob/xenos/boiler.dmi' icon_xenonid = 'icons/mob/xenonids/boiler.dmi' + weed_food_icon = 'icons/mob/xenos/weeds_64x64.dmi' + weed_food_states = list("Boiler_1","Boiler_2","Boiler_3") + weed_food_states_flipped = list("Boiler_1","Boiler_2","Boiler_3") + var/datum/effect_system/smoke_spread/xeno_acid/smoke base_actions = list( @@ -94,4 +98,3 @@ // No special behavior for boilers /datum/behavior_delegate/boiler_base name = "Base Boiler Behavior Delegate" - diff --git a/code/modules/mob/living/carbon/xenomorph/castes/Burrower.dm b/code/modules/mob/living/carbon/xenomorph/castes/Burrower.dm index ee882bc14fdf..106dcdcacb62 100644 --- a/code/modules/mob/living/carbon/xenomorph/castes/Burrower.dm +++ b/code/modules/mob/living/carbon/xenomorph/castes/Burrower.dm @@ -9,7 +9,6 @@ max_health = XENO_HEALTH_TIER_6 plasma_gain = XENO_PLASMA_GAIN_TIER_8 plasma_max = XENO_PLASMA_TIER_6 - crystal_max = XENO_CRYSTAL_LOW xeno_explosion_resistance = XENO_EXPLOSIVE_ARMOR_TIER_4 armor_deflection = XENO_ARMOR_TIER_2 evasion = XENO_EVASION_NONE @@ -53,6 +52,7 @@ base_pixel_x = 0 base_pixel_y = -20 tier = 2 + organ_value = 1500 base_actions = list( /datum/action/xeno_action/onclick/xeno_resting, @@ -66,6 +66,7 @@ /datum/action/xeno_action/onclick/place_trap, //second macro /datum/action/xeno_action/activable/burrow, //third macro /datum/action/xeno_action/onclick/tremor, //fourth macro + /datum/action/xeno_action/active_toggle/toggle_meson_vision, /datum/action/xeno_action/onclick/tacmap, ) @@ -75,14 +76,12 @@ /mob/living/carbon/xenomorph/proc/set_hugger_reserve_for_morpher, ) - mutation_type = BURROWER_NORMAL - icon_xeno = 'icons/mob/xenos/burrower.dmi' icon_xenonid = 'icons/mob/xenonids/burrower.dmi' -/mob/living/carbon/xenomorph/burrower/Initialize(mapload, mob/living/carbon/xenomorph/oldxeno, h_number) - . = ..() - sight |= SEE_TURFS + weed_food_icon = 'icons/mob/xenos/weeds_64x64.dmi' + weed_food_states = list("Burrower_1","Burrower_2","Burrower_3") + weed_food_states_flipped = list("Burrower_1","Burrower_2","Burrower_3") /mob/living/carbon/xenomorph/burrower/ex_act(severity) if(HAS_TRAIT(src, TRAIT_ABILITY_BURROWED)) @@ -106,11 +105,3 @@ /datum/behavior_delegate/burrower_base name = "Base Burrower Behavior Delegate" - -/datum/behavior_delegate/burrower_base/on_update_icons() - if(bound_xeno.stat == DEAD) - return - - if(HAS_TRAIT(bound_xeno, TRAIT_ABILITY_BURROWED)) - bound_xeno.icon_state = "[bound_xeno.mutation_icon_state] Burrower Burrowed" - return TRUE diff --git a/code/modules/mob/living/carbon/xenomorph/castes/Carrier.dm b/code/modules/mob/living/carbon/xenomorph/castes/Carrier.dm index 07f161f4c6f7..d46bfce6bf71 100644 --- a/code/modules/mob/living/carbon/xenomorph/castes/Carrier.dm +++ b/code/modules/mob/living/carbon/xenomorph/castes/Carrier.dm @@ -9,12 +9,14 @@ max_health = XENO_HEALTH_TIER_9 plasma_gain = XENO_PLASMA_GAIN_TIER_6 plasma_max = XENO_PLASMA_TIER_5 - crystal_max = XENO_CRYSTAL_LOW xeno_explosion_resistance = XENO_EXPLOSIVE_ARMOR_TIER_2 armor_deflection = XENO_NO_ARMOR evasion = XENO_EVASION_NONE speed = XENO_SPEED_TIER_4 + available_strains = list(/datum/xeno_strain/eggsac) + behavior_delegate_type = /datum/behavior_delegate/carrier_base + evolution_allowed = FALSE deevolves_to = list(XENO_CASTE_DRONE) throwspeed = SPEED_AVERAGE @@ -56,6 +58,7 @@ tier = 2 pixel_x = -16 //Needed for 2x2 old_x = -16 + organ_value = 1000 base_actions = list( /datum/action/xeno_action/onclick/xeno_resting, @@ -76,10 +79,13 @@ /mob/living/carbon/xenomorph/proc/rename_tunnel, /mob/living/carbon/xenomorph/proc/set_hugger_reserve_for_morpher, ) - mutation_type = CARRIER_NORMAL icon_xenonid = 'icons/mob/xenonids/carrier.dmi' + weed_food_icon = 'icons/mob/xenos/weeds_64x64.dmi' + weed_food_states = list("Carrier_1","Carrier_2","Carrier_3") + weed_food_states_flipped = list("Carrier_1","Carrier_2","Carrier_3") + var/list/hugger_image_index = list() var/mutable_appearance/hugger_overlays_icon var/mutable_appearance/eggsac_overlays_icon @@ -92,18 +98,9 @@ var/eggs_max = 0 var/laid_egg = 0 -/mob/living/carbon/xenomorph/carrier/update_icons() - . = ..() - if (mutation_type == CARRIER_NORMAL) - update_hugger_overlays() - if (mutation_type == CARRIER_EGGSAC) - update_eggsac_overlays() - /mob/living/carbon/xenomorph/carrier/proc/update_hugger_overlays() if(!hugger_overlays_icon) return - if(mutation_type != CARRIER_NORMAL) - return overlays -= hugger_overlays_icon hugger_overlays_icon.overlays.Cut() @@ -112,7 +109,7 @@ hugger_image_index.Cut() return - update_clinger_maths(round(( huggers_cur / huggers_max ) * 3.999) + 1) + update_clinger_maths(floor(( huggers_cur / huggers_max ) * 3.999) + 1) for(var/i in hugger_image_index) if(stat == DEAD) @@ -143,8 +140,6 @@ /mob/living/carbon/xenomorph/carrier/proc/update_eggsac_overlays() if(!eggsac_overlays_icon) return - if(mutation_type != CARRIER_EGGSAC) - return overlays -= eggsac_overlays_icon eggsac_overlays_icon.overlays.Cut() @@ -181,9 +176,6 @@ . = ..(cause, gibbed) if(.) var/chance = 75 //75% to drop an egg or hugger. - if(mutation_type == CARRIER_EGGSAC) - visible_message(SPAN_XENOWARNING("[src] throes as its eggsac bursts into a mess of acid!")) - playsound(src.loc, 'sound/effects/alien_egg_burst.ogg', 25, 1) if(huggers_cur) //Hugger explosion, like an egg morpher @@ -204,6 +196,11 @@ if(eggs_dropped) //Checks whether or not to announce egg drop. xeno_message(SPAN_XENOANNOUNCE("[src] has dropped some precious eggs!"), 2, hive.hivenumber) +/mob/living/carbon/xenomorph/carrier/recalculate_actions() + . = ..() + huggers_max = caste.huggers_max + eggs_max = caste.eggs_max + /mob/living/carbon/xenomorph/carrier/get_status_tab_items() . = ..() if(huggers_max > 0) @@ -218,13 +215,13 @@ if(huggers_max > 0 && huggers_cur < huggers_max) if(F.stat != DEAD && !F.sterile) huggers_cur++ - to_chat(src, SPAN_NOTICE("You store the facehugger and carry it for safekeeping. Now sheltering: [huggers_cur] / [huggers_max].")) + to_chat(src, SPAN_NOTICE("We store the facehugger and carry it for safekeeping. Now sheltering: [huggers_cur] / [huggers_max].")) update_icons() qdel(F) else to_chat(src, SPAN_WARNING("This [F.name] looks too unhealthy.")) else - to_chat(src, SPAN_WARNING("You can't carry more facehuggers on you.")) + to_chat(src, SPAN_WARNING("We can't carry more facehuggers on us.")) /mob/living/carbon/xenomorph/carrier/proc/store_huggers_from_egg_morpher(obj/effect/alien/resin/special/eggmorph/morpher) if(morpher.linked_hive && (morpher.linked_hive.hivenumber != hivenumber)) @@ -240,12 +237,12 @@ huggers_cur += huggers_to_transfer morpher.stored_huggers -= huggers_to_transfer if(huggers_to_transfer == 1) - to_chat(src, SPAN_NOTICE("You store one facehugger and carry it for safekeeping. Now sheltering: [huggers_cur] / [huggers_max].")) + to_chat(src, SPAN_NOTICE("We store one facehugger and carry it for safekeeping. Now sheltering: [huggers_cur] / [huggers_max].")) else - to_chat(src, SPAN_NOTICE("You store [huggers_to_transfer] facehuggers and carry them for safekeeping. Now sheltering: [huggers_cur] / [huggers_max].")) + to_chat(src, SPAN_NOTICE("We store [huggers_to_transfer] facehuggers and carry them for safekeeping. Now sheltering: [huggers_cur] / [huggers_max].")) update_icons() else - to_chat(src, SPAN_WARNING("You can't carry more facehuggers on you.")) + to_chat(src, SPAN_WARNING("We can't carry more facehuggers on you.")) /mob/living/carbon/xenomorph/carrier/proc/throw_hugger(atom/T) @@ -286,22 +283,22 @@ if(!F) //empty active hand //if no hugger in active hand, we take one from our storage if(huggers_cur <= 0) - to_chat(src, SPAN_WARNING("You don't have any facehuggers to use!")) + to_chat(src, SPAN_WARNING("We don't have any facehuggers to use!")) return if(on_fire) - to_chat(src, SPAN_WARNING("Retrieving a stored facehugger while you're on fire would burn it!")) + to_chat(src, SPAN_WARNING("Retrieving a stored facehugger while we're on fire would burn it!")) return F = new(src, hivenumber) huggers_cur-- put_in_active_hand(F) - to_chat(src, SPAN_XENONOTICE("You grab one of the facehugger in your storage. Now sheltering: [huggers_cur] / [huggers_max].")) + to_chat(src, SPAN_XENONOTICE("We grab one of the facehugger in our storage. Now sheltering: [huggers_cur] / [huggers_max].")) update_icons() return if(!istype(F)) //something else in our hand - to_chat(src, SPAN_WARNING("You need a facehugger in your hand to throw one!")) + to_chat(src, SPAN_WARNING("We need a facehugger in our hand to throw one!")) return if(!threw_a_hugger) @@ -312,7 +309,7 @@ drop_inv_item_on_ground(F) F.throw_atom(T, 4, caste.throwspeed) visible_message(SPAN_XENOWARNING("\The [src] throws something towards \the [T]!"), \ - SPAN_XENOWARNING("You throw a facehugger towards \the [T]!")) + SPAN_XENOWARNING("We throw a facehugger towards \the [T]!")) spawn(caste.hugger_delay) threw_a_hugger = 0 for(var/X in actions) @@ -327,12 +324,12 @@ if(stat == CONSCIOUS) eggs_cur++ update_icons() - to_chat(src, SPAN_NOTICE("You store the egg and carry it for safekeeping. Now sheltering: [eggs_cur] / [eggs_max].")) + to_chat(src, SPAN_NOTICE("We store the egg and carry it for safekeeping. Now sheltering: [eggs_cur] / [eggs_max].")) qdel(E) else to_chat(src, SPAN_WARNING("This [E.name] looks too unhealthy.")) else - to_chat(src, SPAN_WARNING("You can't carry more eggs on you.")) + to_chat(src, SPAN_WARNING("We can't carry more eggs on ourselves.")) /mob/living/carbon/xenomorph/carrier/proc/retrieve_egg(atom/T) if(!T) return @@ -357,17 +354,17 @@ if(!E) //empty active hand //if no hugger in active hand, we take one from our storage if(eggs_cur <= 0) - to_chat(src, SPAN_WARNING("You don't have any egg to use!")) + to_chat(src, SPAN_WARNING("We don't have any egg to use!")) return E = new(src, hivenumber) eggs_cur-- update_icons() put_in_active_hand(E) - to_chat(src, SPAN_XENONOTICE("You grab one of the eggs in your storage. Now sheltering: [eggs_cur] / [eggs_max].")) + to_chat(src, SPAN_XENONOTICE("We grab one of the eggs in our storage. Now sheltering: [eggs_cur] / [eggs_max].")) return if(!istype(E)) //something else in our hand - to_chat(src, SPAN_WARNING("You need an empty hand to grab one of your stored eggs!")) + to_chat(src, SPAN_WARNING("We need an empty hand to grab one of our stored eggs!")) return /mob/living/carbon/xenomorph/carrier/attack_ghost(mob/dead/observer/user) @@ -394,3 +391,10 @@ return GLOB.hive_datum[hivenumber].spawn_as_hugger(user, src) huggers_cur-- + +/datum/behavior_delegate/carrier_base + name = "Base Carrier Behavior Delegate" + +/datum/behavior_delegate/carrier_base/on_update_icons() + var/mob/living/carbon/xenomorph/carrier/bound_carrier = bound_xeno + bound_carrier.update_hugger_overlays() diff --git a/code/modules/mob/living/carbon/xenomorph/castes/Crusher.dm b/code/modules/mob/living/carbon/xenomorph/castes/Crusher.dm index bf1702598250..24ac22d6bc52 100644 --- a/code/modules/mob/living/carbon/xenomorph/castes/Crusher.dm +++ b/code/modules/mob/living/carbon/xenomorph/castes/Crusher.dm @@ -14,6 +14,7 @@ speed = XENO_SPEED_TIER_2 heal_standing = 0.66 + available_strains = list(/datum/xeno_strain/charger) behavior_delegate_type = /datum/behavior_delegate/crusher_base minimum_evolve_time = 15 MINUTES @@ -50,7 +51,7 @@ base_pixel_y = -16 rebounds = FALSE // no more fucking pinball crooshers - + organ_value = 3000 base_actions = list( /datum/action/xeno_action/onclick/xeno_resting, /datum/action/xeno_action/onclick/regurgitate, @@ -63,12 +64,14 @@ ) claw_type = CLAW_TYPE_VERY_SHARP - mutation_icon_state = CRUSHER_NORMAL - mutation_type = CRUSHER_NORMAL icon_xeno = 'icons/mob/xenos/crusher.dmi' icon_xenonid = 'icons/mob/xenonids/crusher.dmi' + weed_food_icon = 'icons/mob/xenos/weeds_64x64.dmi' + weed_food_states = list("Crusher_1","Crusher_2","Crusher_3") + weed_food_states_flipped = list("Crusher_1","Crusher_2","Crusher_3") + // Refactored to handle all of crusher's interactions with object during charge. /mob/living/carbon/xenomorph/proc/handle_collision(atom/target) if(!target) @@ -77,21 +80,21 @@ //Barricade collision else if (istype(target, /obj/structure/barricade)) var/obj/structure/barricade/B = target - visible_message(SPAN_DANGER("[src] rams into [B] and skids to a halt!"), SPAN_XENOWARNING("You ram into [B] and skid to a halt!")) + visible_message(SPAN_DANGER("[src] rams into [B] and skids to a halt!"), SPAN_XENOWARNING("We ram into [B] and skid to a halt!")) B.Collided(src) . = FALSE else if (istype(target, /obj/vehicle/multitile)) var/obj/vehicle/multitile/M = target - visible_message(SPAN_DANGER("[src] rams into [M] and skids to a halt!"), SPAN_XENOWARNING("You ram into [M] and skid to a halt!")) + visible_message(SPAN_DANGER("[src] rams into [M] and skids to a halt!"), SPAN_XENOWARNING("We ram into [M] and skid to a halt!")) M.Collided(src) . = FALSE else if (istype(target, /obj/structure/machinery/m56d_hmg)) var/obj/structure/machinery/m56d_hmg/HMG = target - visible_message(SPAN_DANGER("[src] rams [HMG]!"), SPAN_XENODANGER("You ram [HMG]!")) + visible_message(SPAN_DANGER("[src] rams [HMG]!"), SPAN_XENODANGER("We ram [HMG]!")) playsound(loc, "punch", 25, 1) HMG.CrusherImpact() . = FALSE @@ -128,7 +131,7 @@ else if (istype(target, /obj/structure/machinery/defenses)) var/obj/structure/machinery/defenses/DF = target - visible_message(SPAN_DANGER("[src] rams [DF]!"), SPAN_XENODANGER("You ram [DF]!")) + visible_message(SPAN_DANGER("[src] rams [DF]!"), SPAN_XENODANGER("We ram [DF]!")) if (!DF.unacidable) playsound(loc, "punch", 25, 1) @@ -144,7 +147,7 @@ if (V.unslashable) . = FALSE else - visible_message(SPAN_DANGER("[src] smashes straight into [V]!"), SPAN_XENODANGER("You smash straight into [V]!")) + visible_message(SPAN_DANGER("[src] smashes straight into [V]!"), SPAN_XENODANGER("We smash straight into [V]!")) playsound(loc, "punch", 25, 1) V.tip_over() @@ -161,7 +164,7 @@ if (V.unslashable) . = FALSE else - visible_message(SPAN_DANGER("[src] smashes straight into [V]!"), SPAN_XENODANGER("You smash straight into [V]!")) + visible_message(SPAN_DANGER("[src] smashes straight into [V]!"), SPAN_XENODANGER("We smash straight into [V]!")) playsound(loc, "punch", 25, 1) V.tip_over() @@ -180,8 +183,8 @@ if (O.unacidable) . = FALSE else if (O.anchored) - visible_message(SPAN_DANGER("[src] crushes [O]!"), SPAN_XENODANGER("You crush [O]!")) - if(O.contents.len) //Hopefully won't auto-delete things inside crushed stuff. + visible_message(SPAN_DANGER("[src] crushes [O]!"), SPAN_XENODANGER("We crush [O]!")) + if(length(O.contents)) //Hopefully won't auto-delete things inside crushed stuff. var/turf/T = get_turf(src) for(var/atom/movable/S in T.contents) S.forceMove(T) @@ -191,7 +194,7 @@ else if(O.buckled_mob) O.unbuckle() - visible_message(SPAN_WARNING("[src] knocks [O] aside!"), SPAN_XENOWARNING("You knock [O] aside.")) //Canisters, crates etc. go flying. + visible_message(SPAN_WARNING("[src] knocks [O] aside!"), SPAN_XENOWARNING("We knock [O] aside.")) //Canisters, crates etc. go flying. playsound(loc, "punch", 25, 1) var/impact_range = 2 @@ -277,5 +280,5 @@ /datum/behavior_delegate/crusher_base/on_update_icons() if(bound_xeno.throwing || is_charging) //Let it build up a bit so we're not changing icons every single turf - bound_xeno.icon_state = "[bound_xeno.mutation_icon_state || bound_xeno.mutation_type] Crusher Charging" + bound_xeno.icon_state = "[bound_xeno.get_strain_icon()] Crusher Charging" return TRUE diff --git a/code/modules/mob/living/carbon/xenomorph/castes/Defender.dm b/code/modules/mob/living/carbon/xenomorph/castes/Defender.dm index 8c05fa53660e..548b0389e683 100644 --- a/code/modules/mob/living/carbon/xenomorph/castes/Defender.dm +++ b/code/modules/mob/living/carbon/xenomorph/castes/Defender.dm @@ -18,6 +18,7 @@ deevolves_to = list("Larva") can_vent_crawl = 0 + available_strains = list(/datum/xeno_strain/steel_crest) behavior_delegate_type = /datum/behavior_delegate/defender_base tackle_min = 2 @@ -38,6 +39,8 @@ pixel_x = -16 old_x = -16 tier = 1 + organ_value = 1000 + base_actions = list( /datum/action/xeno_action/onclick/xeno_resting, /datum/action/xeno_action/onclick/regurgitate, @@ -49,11 +52,14 @@ /datum/action/xeno_action/activable/fortify, /datum/action/xeno_action/onclick/tacmap, ) - mutation_icon_state = DEFENDER_NORMAL - mutation_type = DEFENDER_NORMAL + icon_xeno = 'icons/mob/xenos/defender.dmi' icon_xenonid = 'icons/mob/xenonids/defender.dmi' + weed_food_icon = 'icons/mob/xenos/weeds_64x64.dmi' + weed_food_states = list("Defender_1","Defender_2","Defender_3") + weed_food_states_flipped = list("Defender_1","Defender_2","Defender_3") + /mob/living/carbon/xenomorph/defender/handle_special_state() if(fortify) return TRUE @@ -83,8 +89,8 @@ return if(bound_xeno.fortify && bound_xeno.health > 0) - bound_xeno.icon_state = "[bound_xeno.mutation_icon_state || bound_xeno.mutation_type] Defender Fortify" + bound_xeno.icon_state = "[bound_xeno.get_strain_icon()] Defender Fortify" return TRUE if(bound_xeno.crest_defense && bound_xeno.health > 0) - bound_xeno.icon_state = "[bound_xeno.mutation_icon_state || bound_xeno.mutation_type] Defender Crest" + bound_xeno.icon_state = "[bound_xeno.get_strain_icon()] Defender Crest" return TRUE diff --git a/code/modules/mob/living/carbon/xenomorph/castes/Drone.dm b/code/modules/mob/living/carbon/xenomorph/castes/Drone.dm index dbdb03bb94ca..e6c4a76c9353 100644 --- a/code/modules/mob/living/carbon/xenomorph/castes/Drone.dm +++ b/code/modules/mob/living/carbon/xenomorph/castes/Drone.dm @@ -7,12 +7,16 @@ max_health = XENO_HEALTH_TIER_6 plasma_gain = XENO_PLASMA_GAIN_TIER_8 plasma_max = XENO_PLASMA_TIER_10 - crystal_max = XENO_CRYSTAL_LOW xeno_explosion_resistance = XENO_NO_EXPLOSIVE_ARMOR armor_deflection = XENO_NO_ARMOR evasion = XENO_EVASION_MEDIUM speed = XENO_SPEED_TIER_7 + available_strains = list( + /datum/xeno_strain/gardener, + /datum/xeno_strain/healer, + ) + build_time_mult = BUILD_TIME_MULT_BUILDER caste_desc = "A builder of hives. Only drones may evolve into Queens." @@ -49,6 +53,7 @@ icon_state = "Drone Walking" plasma_types = list(PLASMA_PURPLE) tier = 1 + organ_value = 800 pixel_x = -12 old_x = -12 base_actions = list( @@ -70,7 +75,14 @@ /mob/living/carbon/xenomorph/proc/rename_tunnel, /mob/living/carbon/xenomorph/proc/set_hugger_reserve_for_morpher, ) - mutation_type = DRONE_NORMAL icon_xeno = 'icons/mob/xenos/drone.dmi' icon_xenonid = 'icons/mob/xenonids/drone.dmi' + weed_food_icon = 'icons/mob/xenos/weeds_48x48.dmi' + weed_food_states = list("Drone_1","Drone_2","Drone_3") + weed_food_states_flipped = list("Drone_1","Drone_2","Drone_3") + +/mob/living/carbon/xenomorph/drone/tutorial + +/mob/living/carbon/xenomorph/drone/tutorial/gib(datum/cause_data/cause = create_cause_data("gibbing", src)) + death(cause, 1) diff --git a/code/modules/mob/living/carbon/xenomorph/castes/Facehugger.dm b/code/modules/mob/living/carbon/xenomorph/castes/Facehugger.dm index 3e01cc2af139..9d42eb982d2e 100644 --- a/code/modules/mob/living/carbon/xenomorph/castes/Facehugger.dm +++ b/code/modules/mob/living/carbon/xenomorph/castes/Facehugger.dm @@ -1,14 +1,17 @@ /datum/caste_datum/facehugger caste_type = XENO_CASTE_FACEHUGGER tier = 0 - plasma_gain = 0.1 - plasma_max = 10 + plasma_gain = XENO_PLASMA_GAIN_TIER_1 + plasma_max = XENO_NO_PLASMA melee_damage_lower = 5 melee_damage_upper = 5 max_health = XENO_HEALTH_LARVA caste_desc = "Ewwww, that's disgusting!" speed = XENO_SPEED_TIER_8 + available_strains = list(/datum/xeno_strain/watcher) + behavior_delegate_type = /datum/behavior_delegate/facehugger_base + evolution_allowed = FALSE can_be_revived = FALSE @@ -55,11 +58,28 @@ inherent_verbs = list( /mob/living/carbon/xenomorph/proc/vent_crawl, ) - mutation_type = "Normal" icon_xeno = 'icons/mob/xenos/facehugger.dmi' icon_xenonid = 'icons/mob/xenonids/facehugger.dmi' + weed_food_icon = 'icons/mob/xenos/weeds_48x48.dmi' + weed_food_states = list("Facehugger_1","Facehugger_2","Facehugger_3") + weed_food_states_flipped = list("Facehugger_1","Facehugger_2","Facehugger_3") + +/mob/living/carbon/xenomorph/facehugger/Login() + var/last_ckey_inhabited = persistent_ckey + . = ..() + if(ckey == last_ckey_inhabited) + return + + AddComponent(\ + /datum/component/temporary_mute,\ + "We aren't old enough to vocalize anything yet.",\ + "We aren't old enough to communicate like this yet.",\ + "We feel old enough to be able to vocalize now.",\ + 3 MINUTES,\ + ) + /mob/living/carbon/xenomorph/facehugger/initialize_pass_flags(datum/pass_flags_container/PF) ..() if (PF) @@ -70,34 +90,16 @@ if(stat == DEAD) return ..() - if(body_position == STANDING_UP && !(mutation_type == FACEHUGGER_WATCHER) && !(locate(/obj/effect/alien/weeds) in get_turf(src))) - adjustBruteLoss(1) - return ..() - if(!client && !aghosted && away_timer > XENO_FACEHUGGER_LEAVE_TIMER) // Become a npc once again new /obj/item/clothing/mask/facehugger(loc, hivenumber) qdel(src) return ..() -/mob/living/carbon/xenomorph/facehugger/update_icons(is_pouncing) - if(!caste) - return - - if(stat == DEAD) - icon_state = "[mutation_type] [caste.caste_type] Dead" - else if(body_position == LYING_DOWN) - if(!HAS_TRAIT(src, TRAIT_INCAPACITATED) && !HAS_TRAIT(src, TRAIT_FLOORED)) - icon_state = "[mutation_type] [caste.caste_type] Sleeping" - else - icon_state = "[mutation_type] [caste.caste_type] Knocked Down" - else if(is_pouncing) - icon_state = "[mutation_type] [caste.caste_type] Thrown" - else - icon_state = "[mutation_type] [caste.caste_type] Running" - - update_fire() //the fire overlay depends on the xeno's stance, so we must update it. - update_wounds() +/mob/living/carbon/xenomorph/facehugger/update_icons() + . = ..() + if(throwing) + icon_state = "[get_strain_icon()] [caste.caste_type] Thrown" /mob/living/carbon/xenomorph/facehugger/start_pulling(atom/movable/AM) return @@ -154,6 +156,9 @@ /mob/living/carbon/xenomorph/facehugger/proc/handle_hug(mob/living/carbon/human/human) var/obj/item/clothing/mask/facehugger/hugger = new /obj/item/clothing/mask/facehugger(loc, hivenumber) var/did_hug = hugger.attach(human, TRUE, 1, src) + if(!did_hug) + qdel(hugger) + return if(client) client.player_data?.adjust_stat(PLAYER_STAT_FACEHUGS, STAT_CATEGORY_XENO, 1) qdel(src) @@ -213,7 +218,27 @@ return /mob/living/carbon/xenomorph/facehugger/emote(act, m_type, message, intentional, force_silence) + // Custom emote + if(act == "me") + return ..() + + switch(stat) + if(UNCONSCIOUS) + to_chat(src, SPAN_WARNING("You cannot emote while unconscious!")) + return FALSE + if(DEAD) + to_chat(src, SPAN_WARNING("You cannot emote while dead!")) + return FALSE + if(client) + if(client.prefs.muted & MUTE_IC) + to_chat(src, SPAN_DANGER("You cannot emote (muted).")) + return FALSE + if(!client.attempt_talking()) + return FALSE + + // Otherwise, ""roar""! playsound(loc, "alien_roar_larva", 15) + return TRUE /mob/living/carbon/xenomorph/facehugger/get_status_tab_items() . = ..() @@ -222,34 +247,9 @@ else . += "Lifetime Hugs: [total_facehugs]" +/datum/behavior_delegate/facehugger_base + name = "Base Facehugger Behavior Delegate" -/datum/xeno_mutator/watcher - name = "STRAIN: Facehugger - Watcher" - description = "You lose your ability to hide in exchange to see further and the ability to no longer take damage outside of weeds. This enables you to stalk your host from a distance and wait for the perfect oppertunity to strike." - flavor_description = "No need to hide when you can see the danger." - individual_only = TRUE - caste_whitelist = list(XENO_CASTE_FACEHUGGER) - mutator_actions_to_remove = list( - /datum/action/xeno_action/onclick/xenohide, - ) - mutator_actions_to_add = list( - /datum/action/xeno_action/onclick/toggle_long_range/runner, - ) - - cost = 1 - - keystone = TRUE - -/datum/xeno_mutator/watcher/apply_mutator(datum/mutator_set/individual_mutators/mutator_set) - . = ..() - if(!.) - return - - var/mob/living/carbon/xenomorph/facehugger/facehugger = mutator_set.xeno - - facehugger.viewsize = 10 - facehugger.layer = MOB_LAYER - - facehugger.mutation_type = FACEHUGGER_WATCHER - mutator_update_actions(facehugger) - mutator_set.recalculate_actions(description, flavor_description) +/datum/behavior_delegate/facehugger_base/on_life() + if(bound_xeno.body_position == STANDING_UP && !(locate(/obj/effect/alien/weeds) in get_turf(bound_xeno))) + bound_xeno.adjustBruteLoss(1) diff --git a/code/modules/mob/living/carbon/xenomorph/castes/Hellhound.dm b/code/modules/mob/living/carbon/xenomorph/castes/Hellhound.dm index a44fee5645ac..93d40820bf7b 100644 --- a/code/modules/mob/living/carbon/xenomorph/castes/Hellhound.dm +++ b/code/modules/mob/living/carbon/xenomorph/castes/Hellhound.dm @@ -64,11 +64,14 @@ inherent_verbs = list( /mob/living/carbon/xenomorph/proc/vent_crawl, ) - mutation_type = HELLHOUND_NORMAL icon_xeno = 'icons/mob/xenos/hellhound.dmi' icon_xenonid = 'icons/mob/xenos/hellhound.dmi' + weed_food_icon = 'icons/mob/xenos/weeds.dmi' + weed_food_states = list("Hellhound_1","Hellhound_2","Hellhound_3") + weed_food_states_flipped = list("Hellhound_1","Hellhound_2","Hellhound_3") + /mob/living/carbon/xenomorph/hellhound/Initialize(mapload, mob/living/carbon/xenomorph/oldXeno, h_number) . = ..(mapload, oldXeno, h_number || XENO_HIVE_YAUTJA) diff --git a/code/modules/mob/living/carbon/xenomorph/castes/Hivelord.dm b/code/modules/mob/living/carbon/xenomorph/castes/Hivelord.dm index 23f8ffc8acd6..8024ed366405 100644 --- a/code/modules/mob/living/carbon/xenomorph/castes/Hivelord.dm +++ b/code/modules/mob/living/carbon/xenomorph/castes/Hivelord.dm @@ -8,12 +8,13 @@ max_health = XENO_HEALTH_TIER_7 plasma_gain = XENO_PLASMA_GAIN_TIER_10 plasma_max = XENO_PLASMA_TIER_10 - crystal_max = XENO_CRYSTAL_HIGH xeno_explosion_resistance = XENO_EXPLOSIVE_ARMOR_TIER_1 armor_deflection = XENO_NO_ARMOR evasion = XENO_EVASION_NONE speed = XENO_SPEED_TIER_2 + available_strains = list(/datum/xeno_strain/resin_whisperer) + evolution_allowed = FALSE caste_desc = "A builder of really big hives." deevolves_to = list(XENO_CASTE_DRONE) @@ -55,6 +56,8 @@ mob_size = MOB_SIZE_BIG drag_delay = 6 //pulling a big dead xeno is hard tier = 2 + organ_value = 1500 + base_actions = list( /datum/action/xeno_action/onclick/xeno_resting, /datum/action/xeno_action/onclick/regurgitate, @@ -68,6 +71,7 @@ /datum/action/xeno_action/activable/secrete_resin/hivelord, //third macro /datum/action/xeno_action/activable/transfer_plasma/hivelord, // to be consistent with drone placement /datum/action/xeno_action/active_toggle/toggle_speed, //fourth macro + /datum/action/xeno_action/active_toggle/toggle_meson_vision, /datum/action/xeno_action/onclick/tacmap, ) @@ -75,11 +79,14 @@ /mob/living/carbon/xenomorph/proc/rename_tunnel, /mob/living/carbon/xenomorph/proc/set_hugger_reserve_for_morpher, ) - mutation_type = HIVELORD_NORMAL icon_xeno = 'icons/mob/xenos/hivelord.dmi' icon_xenonid = 'icons/mob/xenonids/hivelord.dmi' + weed_food_icon = 'icons/mob/xenos/weeds_64x64.dmi' + weed_food_states = list("Hivelord_1","Hivelord_2","Hivelord_3") + weed_food_states_flipped = list("Hivelord_1","Hivelord_2","Hivelord_3") + /datum/behavior_delegate/hivelord_base name = "Base Hivelord Behavior Delegate" @@ -116,10 +123,3 @@ toggle_resin_walker() to_chat(bound_xeno, SPAN_WARNING("You feel dizzy as the world slows down.")) bound_xeno.recalculate_move_delay = TRUE - -/// This check mainly exists because of the new resin node ability for resin whisperer. -/mob/living/carbon/xenomorph/hivelord/proc/on_weeds() - var/turf/turf = get_turf(src) - if(locate(/obj/effect/alien/weeds) in turf) - return TRUE - return FALSE diff --git a/code/modules/mob/living/carbon/xenomorph/castes/Larva.dm b/code/modules/mob/living/carbon/xenomorph/castes/Larva.dm index 6d5c6699b929..8dc427e2c55e 100644 --- a/code/modules/mob/living/carbon/xenomorph/castes/Larva.dm +++ b/code/modules/mob/living/carbon/xenomorph/castes/Larva.dm @@ -37,6 +37,7 @@ crit_health = -25 gib_chance = 25 mob_size = MOB_SIZE_SMALL + speaking_noise = "larva_talk" base_actions = list( /datum/action/xeno_action/onclick/xeno_resting, /datum/action/xeno_action/watch_xeno, @@ -46,7 +47,6 @@ inherent_verbs = list( /mob/living/carbon/xenomorph/proc/vent_crawl, ) - mutation_type = "Normal" var/burrowable = TRUE //Can it be safely burrowed if it has no player? var/state_override @@ -157,7 +157,27 @@ return larva /mob/living/carbon/xenomorph/larva/emote(act, m_type, message, intentional, force_silence) + // Custom emote + if(act == "me") + return ..() + + switch(stat) + if(UNCONSCIOUS) + to_chat(src, SPAN_WARNING("You cannot emote while unconscious!")) + return FALSE + if(DEAD) + to_chat(src, SPAN_WARNING("You cannot emote while dead!")) + return FALSE + if(client) + if(client.prefs.muted & MUTE_IC) + to_chat(src, SPAN_DANGER("You cannot emote (muted).")) + return FALSE + if(!client.attempt_talking()) + return FALSE + + // Otherwise, ""roar""! playsound(loc, "alien_roar_larva", 15) + return TRUE /mob/living/carbon/xenomorph/larva/is_xeno_grabbable() return TRUE diff --git a/code/modules/mob/living/carbon/xenomorph/castes/Lurker.dm b/code/modules/mob/living/carbon/xenomorph/castes/Lurker.dm index a34913b2ff5c..0ab9e9862b16 100644 --- a/code/modules/mob/living/carbon/xenomorph/castes/Lurker.dm +++ b/code/modules/mob/living/carbon/xenomorph/castes/Lurker.dm @@ -15,6 +15,7 @@ attack_delay = 2 // VERY high slash damage, but attacks relatively slowly + available_strains = list(/datum/xeno_strain/vampire) behavior_delegate_type = /datum/behavior_delegate/lurker_base deevolves_to = list(XENO_CASTE_RUNNER) @@ -37,6 +38,7 @@ pixel_x = -12 old_x = -12 tier = 2 + organ_value = 2000 base_actions = list( /datum/action/xeno_action/onclick/xeno_resting, /datum/action/xeno_action/onclick/regurgitate, @@ -50,7 +52,6 @@ inherent_verbs = list( /mob/living/carbon/xenomorph/proc/vent_crawl, ) - mutation_type = LURKER_NORMAL claw_type = CLAW_TYPE_SHARP tackle_min = 2 @@ -59,26 +60,29 @@ icon_xeno = 'icons/mob/xenos/lurker.dmi' icon_xenonid = 'icons/mob/xenonids/lurker.dmi' + weed_food_icon = 'icons/mob/xenos/weeds_48x48.dmi' + weed_food_states = list("Drone_1","Drone_2","Drone_3") + weed_food_states_flipped = list("Drone_1","Drone_2","Drone_3") + /datum/behavior_delegate/lurker_base name = "Base Lurker Behavior Delegate" // Config - var/invis_recharge_time = 150 // 15 seconds to recharge invisibility. + var/invis_recharge_time = 20 SECONDS var/invis_start_time = -1 // Special value for when we're not invisible - var/invis_duration = 300 // so we can display how long the lurker is invisible to it + var/invis_duration = 30 SECONDS // so we can display how long the lurker is invisible to it var/buffed_slash_damage_ratio = 1.2 var/slash_slow_duration = 35 // State var/next_slash_buffed = FALSE - var/can_go_invisible = TRUE /datum/behavior_delegate/lurker_base/melee_attack_modify_damage(original_damage, mob/living/carbon/target_carbon) if (!isxeno_human(target_carbon)) return original_damage if (next_slash_buffed) - to_chat(bound_xeno, SPAN_XENOHIGHDANGER("You significantly strengthen your attack, slowing [target_carbon]!")) + to_chat(bound_xeno, SPAN_XENOHIGHDANGER("We significantly strengthen our attack, slowing [target_carbon]!")) to_chat(target_carbon, SPAN_XENOHIGHDANGER("You feel a sharp pain as [bound_xeno] slashes you, slowing you down!")) original_damage *= buffed_slash_damage_ratio target_carbon.set_effect(get_xeno_stun_duration(target_carbon, 3), SUPERSLOW) @@ -112,55 +116,57 @@ var/datum/action/xeno_action/onclick/lurker_invisibility/lurker_invis_action = get_xeno_action_by_type(bound_xeno, /datum/action/xeno_action/onclick/lurker_invisibility) if (lurker_invis_action) - lurker_invis_action.invisibility_off() + lurker_invis_action.invisibility_off() // Full cooldown /datum/behavior_delegate/lurker_base/proc/decloak_handler(mob/source) SIGNAL_HANDLER var/datum/action/xeno_action/onclick/lurker_invisibility/lurker_invis_action = get_xeno_action_by_type(bound_xeno, /datum/action/xeno_action/onclick/lurker_invisibility) if(istype(lurker_invis_action)) - lurker_invis_action.invisibility_off() + lurker_invis_action.invisibility_off(0.5) // Partial refund of remaining time -// What to do when we go invisible +/// Implementation for enabling invisibility. /datum/behavior_delegate/lurker_base/proc/on_invisibility() var/datum/action/xeno_action/activable/pounce/lurker/lurker_pounce_action = get_xeno_action_by_type(bound_xeno, /datum/action/xeno_action/activable/pounce/lurker) - if (lurker_pounce_action) + if(lurker_pounce_action) lurker_pounce_action.knockdown = TRUE // pounce knocks down lurker_pounce_action.freeze_self = TRUE ADD_TRAIT(bound_xeno, TRAIT_CLOAKED, TRAIT_SOURCE_ABILITY("cloak")) RegisterSignal(bound_xeno, COMSIG_MOB_EFFECT_CLOAK_CANCEL, PROC_REF(decloak_handler)) bound_xeno.stealth = TRUE - can_go_invisible = FALSE invis_start_time = world.time +/// Implementation for disabling invisibility. /datum/behavior_delegate/lurker_base/proc/on_invisibility_off() var/datum/action/xeno_action/activable/pounce/lurker/lurker_pounce_action = get_xeno_action_by_type(bound_xeno, /datum/action/xeno_action/activable/pounce/lurker) - if (lurker_pounce_action) + if(lurker_pounce_action) lurker_pounce_action.knockdown = FALSE // pounce no longer knocks down lurker_pounce_action.freeze_self = FALSE bound_xeno.stealth = FALSE REMOVE_TRAIT(bound_xeno, TRAIT_CLOAKED, TRAIT_SOURCE_ABILITY("cloak")) UnregisterSignal(bound_xeno, COMSIG_MOB_EFFECT_CLOAK_CANCEL) + invis_start_time = -1 - // SLIGHTLY hacky because we need to maintain lots of other state on the lurker - // whenever invisibility is on/off CD and when it's active. - addtimer(CALLBACK(src, PROC_REF(regen_invisibility)), invis_recharge_time) +/datum/behavior_delegate/lurker_base/append_to_stat() + . = list() - invis_start_time = -1 + // Invisible + if(invis_start_time != -1) + var/time_left = (invis_duration-(world.time - invis_start_time)) / 10 + . += "Invisibility Remaining: [time_left] second\s." + return -/datum/behavior_delegate/lurker_base/proc/regen_invisibility() - if (can_go_invisible) + var/datum/action/xeno_action/onclick/lurker_invisibility/lurker_invisibility_action = get_xeno_action_by_type(bound_xeno, /datum/action/xeno_action/onclick/lurker_invisibility) + if(!lurker_invisibility_action) return - can_go_invisible = TRUE - if(bound_xeno) - var/datum/action/xeno_action/onclick/lurker_invisibility/lurker_invisibility_action = get_xeno_action_by_type(bound_xeno, /datum/action/xeno_action/onclick/lurker_invisibility) - if(lurker_invisibility_action) - lurker_invisibility_action.end_cooldown() + // Recharged + if(lurker_invisibility_action.cooldown_timer_id == TIMER_ID_NULL) + . += "Invisibility Recharge: Ready." + return -/datum/behavior_delegate/lurker_base/append_to_stat() - . = list() - var/invis_message = (invis_start_time == -1) ? "N/A" : "[(invis_duration-(world.time - invis_start_time))/10] seconds." - . += "Invisibility Time Left: [invis_message]" + // Recharging + var/time_left = timeleft(lurker_invisibility_action.cooldown_timer_id) / 10 + . += "Invisibility Recharge: [time_left] second\s." /datum/behavior_delegate/lurker_base/on_collide(atom/movable/movable_atom) . = ..() @@ -179,5 +185,5 @@ if(HAS_TRAIT(bumped_into, TRAIT_CLOAKED)) //ignore invisible scouts and preds return - to_chat(bound_xeno, SPAN_XENOHIGHDANGER("You bumped into someone and lost your invisibility!")) - lurker_invisibility_action.invisibility_off() + to_chat(bound_xeno, SPAN_XENOHIGHDANGER("We bumped into someone and lost our invisibility!")) + lurker_invisibility_action.invisibility_off(0.5) // partial refund of remaining time diff --git a/code/modules/mob/living/carbon/xenomorph/castes/Praetorian.dm b/code/modules/mob/living/carbon/xenomorph/castes/Praetorian.dm index 344e1e21f302..70d33b905a00 100644 --- a/code/modules/mob/living/carbon/xenomorph/castes/Praetorian.dm +++ b/code/modules/mob/living/carbon/xenomorph/castes/Praetorian.dm @@ -26,6 +26,12 @@ tackle_max = 5 tackle_chance = 45 + available_strains = list( + /datum/xeno_strain/dancer, + /datum/xeno_strain/oppressor, + /datum/xeno_strain/vanguard, + /datum/xeno_strain/warden, + ) behavior_delegate_type = /datum/behavior_delegate/praetorian_base minimum_evolve_time = 15 MINUTES @@ -46,7 +52,7 @@ mob_size = MOB_SIZE_BIG drag_delay = 6 //pulling a big dead xeno is hard tier = 3 - mutation_type = PRAETORIAN_NORMAL + organ_value = 3000 base_actions = list( /datum/action/xeno_action/onclick/xeno_resting, @@ -64,6 +70,10 @@ icon_xeno = 'icons/mob/xenos/praetorian.dmi' icon_xenonid = 'icons/mob/xenonids/praetorian.dmi' + weed_food_icon = 'icons/mob/xenos/weeds_64x64.dmi' + weed_food_states = list("Praetorian_1","Praetorian_2","Praetorian_3") + weed_food_states_flipped = list("Praetorian_1","Praetorian_2","Praetorian_3") + /datum/behavior_delegate/praetorian_base name = "Base Praetorian Behavior Delegate" ///reward for hitting shots instead of spamming acid ball diff --git a/code/modules/mob/living/carbon/xenomorph/castes/Predalien.dm b/code/modules/mob/living/carbon/xenomorph/castes/Predalien.dm index 14aa31b1f1e8..830f4fc5a9cf 100644 --- a/code/modules/mob/living/carbon/xenomorph/castes/Predalien.dm +++ b/code/modules/mob/living/carbon/xenomorph/castes/Predalien.dm @@ -6,8 +6,7 @@ melee_damage_upper = XENO_DAMAGE_TIER_5 melee_vehicle_damage = XENO_DAMAGE_TIER_5 max_health = XENO_HEALTH_TIER_9 - plasma_gain = XENO_PLASMA_GAIN_TIER_9 - plasma_max = XENO_PLASMA_TIER_3 + plasma_max = XENO_NO_PLASMA xeno_explosion_resistance = XENO_EXPLOSIVE_ARMOR_TIER_10 armor_deflection = XENO_ARMOR_TIER_3 evasion = XENO_EVASION_NONE @@ -41,12 +40,14 @@ speaking_noise = 'sound/voice/predalien_click.ogg' plasma_types = list(PLASMA_CATECHOLAMINE) faction = FACTION_PREDALIEN + claw_type = CLAW_TYPE_VERY_SHARP wall_smash = TRUE hardcore = FALSE pixel_x = -16 old_x = -16 mob_size = MOB_SIZE_BIG tier = 1 + organ_value = 20000 age = XENO_NO_AGE //Predaliens are already in their ultimate form, they don't get even better show_age_prefix = FALSE small_explosives_stun = FALSE @@ -56,15 +57,19 @@ /datum/action/xeno_action/onclick/regurgitate, /datum/action/xeno_action/watch_xeno, /datum/action/xeno_action/activable/tail_stab, - /datum/action/xeno_action/activable/pounce/predalien, + /datum/action/xeno_action/onclick/feralrush, /datum/action/xeno_action/onclick/predalien_roar, - /datum/action/xeno_action/onclick/smash, - /datum/action/xeno_action/activable/devastate, + /datum/action/xeno_action/activable/feral_smash, + /datum/action/xeno_action/activable/feralfrenzy, + /datum/action/xeno_action/onclick/toggle_gut_targeting, /datum/action/xeno_action/onclick/tacmap, ) - mutation_type = "Normal" - var/butcher_time = 6 SECONDS + weed_food_icon = 'icons/mob/xenos/weeds_64x64.dmi' + weed_food_states = list("Predalien_1","Predalien_2","Predalien_3") + weed_food_states_flipped = list("Predalien_1","Predalien_2","Predalien_3") + var/smashing = FALSE + /mob/living/carbon/xenomorph/predalien/Initialize(mapload, mob/living/carbon/xenomorph/oldxeno, h_number) @@ -83,15 +88,23 @@ to_chat(src, {" |______________________| -You are a predator-alien hybrid! -You are a very powerful xenomorph creature that was born of a Yautja warrior body. -You are stronger, faster, and smarter than a regular xenomorph, but you must still listen to the queen. -You have a degree of freedom to where you can hunt and claim the heads of the hive's enemies, so check your verbs. -Your health meter will not regenerate normally, so kill and die for the hive! +You are a yautja-alien hybrid! +You are a xenomorph born from the body of your natural enemy, you are considered an abomination to all of the yautja race and they will do WHATEVER it takes to kill you. +However, being born from one you also harbor their intelligence and strength. You are built to be able to take them on but that does not mean you are invincible. Stay with your hive and overwhelm them with your numbers. Your sisters have sacrificed a lot for you; Do not just wander off and die. +You must still listen to the queen. + |______________________| "}) emote("roar") +/mob/living/carbon/xenomorph/predalien/get_organ_icon() + return "heart_t3" + + +/mob/living/carbon/xenomorph/predalien/resist_fire() + ..() + SetKnockDown(0.1 SECONDS) + /datum/behavior_delegate/predalien_base name = "Base Predalien Behavior Delegate" @@ -115,53 +128,11 @@ Your health meter will not regenerate normally, so kill and die for the hive!= 1) if(isturf(loc)) var/turf/T = loc - if(T.contents.len <= 25) //so we don't end up with a million object on that turf. + if(length(T.contents) <= 25) //so we don't end up with a million object on that turf. egg_amount-- new /obj/item/xeno_egg(loc, hivenumber) /mob/living/carbon/xenomorph/queen/get_status_tab_items() . = ..() var/stored_larvae = GLOB.hive_datum[hivenumber].stored_larva - var/xeno_leader_num = hive?.queen_leader_limit - hive?.open_xeno_leader_positions.len + var/xeno_leader_num = hive?.queen_leader_limit - length(hive?.open_xeno_leader_positions) . += "Pooled Larvae: [stored_larvae]" . += "Leaders: [xeno_leader_num] / [hive?.queen_leader_limit]" @@ -535,22 +549,6 @@ var/time_left = time2text(timeleft(queen_age_timer_id) + 1 MINUTES, "mm") // We add a minute so that it basically ceilings the value. . += "Maturity: [time_left == 1? "[time_left] minute" : "[time_left] minutes"] remaining" -//Custom bump for crushers. This overwrites normal bumpcode from carbon.dm -/mob/living/carbon/xenomorph/queen/Collide(atom/A) - set waitfor = 0 - - if(stat || !istype(A) || A == src) - return FALSE - - if(now_pushing) - return FALSE//Just a plain ol turf, let's return. - - var/turf/T = get_step(src, dir) - if(!T || !get_step_to(src, T)) //If it still exists, try to push it. - return ..() - - return TRUE - /mob/living/carbon/xenomorph/queen/proc/set_orders() set category = "Alien" set name = "Set Hive Orders (50)" @@ -584,7 +582,7 @@ to_chat(src, SPAN_DANGER("You cannot send Announcements (muted).")) return if(health <= 0) - to_chat(src, SPAN_WARNING("You can't do that while unconcious.")) + to_chat(src, SPAN_WARNING("You can't do that while unconscious.")) return FALSE if(!check_plasma(50)) return FALSE @@ -606,9 +604,9 @@ if(word_ability) word_ability.apply_cooldown() - xeno_announcement(input, hivenumber, "The words of the [name] reverberate in your head...") + xeno_announcement(input, hivenumber, "The words of the [name] reverberate in our head...") - log_and_message_admins("[key_name_admin(src)] has created a Word of the Queen report:") + message_admins("[key_name_admin(src)] has created a Word of the Queen report:") log_admin("[key_name_admin(src)] Word of the Queen: [input]") return TRUE @@ -788,13 +786,24 @@ return TRUE /mob/living/carbon/xenomorph/queen/death(cause, gibbed) - if(hive.living_xeno_queen == src) + if(src == hive?.living_xeno_queen) hive.xeno_queen_timer = world.time + XENO_QUEEN_DEATH_DELAY - hive.banished_ckeys = list() // Reset the banished ckey list + + // Reset the banished ckey list + if(length(hive.banished_ckeys)) + for(var/mob/living/carbon/xenomorph/target_xeno in hive.totalXenos) + if(!target_xeno.ckey) + continue + for(var/mob_name in hive.banished_ckeys) + if(target_xeno.ckey == hive.banished_ckeys[mob_name]) + target_xeno.banished = FALSE + target_xeno.hud_update_banished() + target_xeno.lock_evolve = FALSE + hive.banished_ckeys = list() + icon = queen_standing_icon return ..() - /mob/living/carbon/xenomorph/queen/proc/mount_ovipositor() if(ovipositor) return //sanity check @@ -816,25 +825,21 @@ // These already have their placement locked in: /datum/action/xeno_action/onclick/regurgitate, /datum/action/xeno_action/watch_xeno, - /datum/action/xeno_action/activable/place_construction/queen_macro, + /datum/action/xeno_action/activable/place_construction/not_primary, /datum/action/xeno_action/onclick/emit_pheromones, /datum/action/xeno_action/onclick/queen_word, /datum/action/xeno_action/onclick/psychic_whisper, /datum/action/xeno_action/onclick/psychic_radiance, /datum/action/xeno_action/onclick/choose_resin/queen_macro, //fourth macro - /datum/action/xeno_action/onclick/banish, - /datum/action/xeno_action/onclick/readmit, - /datum/action/xeno_action/onclick/queen_award, + /datum/action/xeno_action/onclick/manage_hive, /datum/action/xeno_action/activable/info_marker/queen, // Screech is typically new for this list, but its possible they never ovi and it then is forced here: /datum/action/xeno_action/onclick/screech, //custom macro, Screech // These are new and their arrangement matters: /datum/action/xeno_action/onclick/remove_eggsac, - /datum/action/xeno_action/onclick/give_evo_points, /datum/action/xeno_action/onclick/set_xeno_lead, /datum/action/xeno_action/activable/queen_heal, //first macro /datum/action/xeno_action/activable/queen_give_plasma, //second macro - /datum/action/xeno_action/onclick/deevolve, /datum/action/xeno_action/onclick/queen_order, /datum/action/xeno_action/activable/expand_weeds, //third macro /datum/action/xeno_action/activable/secrete_resin/remote/queen, //fifth macro @@ -942,7 +947,7 @@ var/mob/living/carbon/xenomorph/queen/Queen = bound_xeno if(Queen.ovipositor) Queen.icon = Queen.queen_ovipositor_icon - Queen.icon_state = "[Queen.mutation_icon_state || Queen.mutation_type] Queen Ovipositor" + Queen.icon_state = "[Queen.get_strain_name()] Queen Ovipositor" return TRUE // Switch icon back and then let normal icon behavior happen @@ -951,3 +956,11 @@ /mob/living/carbon/xenomorph/queen/alter_ghost(mob/dead/observer/ghost) ghost.icon = queen_standing_icon return ..() + +/mob/living/carbon/xenomorph/queen/point_to_atom(atom/target_atom, turf/target_turf) + recently_pointed_to = world.time + 1 SECONDS + + var/obj/effect/overlay/temp/point/big/greyscale/point = new(target_turf, src, target_atom) + point.color = "#a800a8" + + visible_message("[src] points to [target_atom]", null, null, 5) diff --git a/code/modules/mob/living/carbon/xenomorph/castes/Ravager.dm b/code/modules/mob/living/carbon/xenomorph/castes/Ravager.dm index 7853934da2dd..6e5da79fbed1 100644 --- a/code/modules/mob/living/carbon/xenomorph/castes/Ravager.dm +++ b/code/modules/mob/living/carbon/xenomorph/castes/Ravager.dm @@ -26,6 +26,10 @@ fire_immunity = FIRE_IMMUNITY_NO_DAMAGE|FIRE_IMMUNITY_XENO_FRENZY attack_delay = -1 + available_strains = list( + /datum/xeno_strain/berserker, + /datum/xeno_strain/hedgehog, + ) behavior_delegate_type = /datum/behavior_delegate/ravager_base minimum_evolve_time = 15 MINUTES @@ -45,9 +49,8 @@ tier = 3 pixel_x = -16 old_x = -16 - mutation_type = RAVAGER_NORMAL claw_type = CLAW_TYPE_VERY_SHARP - + organ_value = 3000 base_actions = list( /datum/action/xeno_action/onclick/xeno_resting, /datum/action/xeno_action/onclick/regurgitate, @@ -62,6 +65,10 @@ icon_xeno = 'icons/mob/xenos/ravager.dmi' icon_xenonid = 'icons/mob/xenonids/ravager.dmi' + weed_food_icon = 'icons/mob/xenos/weeds_64x64.dmi' + weed_food_states = list("Ravager_1","Ravager_2","Ravager_3") + weed_food_states_flipped = list("Ravager_1","Ravager_2","Ravager_3") + // Mutator delegate for base ravager /datum/behavior_delegate/ravager_base @@ -106,5 +113,5 @@ if (rav_shield && ((rav_shield.last_damage_taken + shield_decay_time) < world.time)) QDEL_NULL(rav_shield) - to_chat(bound_xeno, SPAN_XENODANGER("You feel your shield decay!")) + to_chat(bound_xeno, SPAN_XENODANGER("We feel our shield decay!")) bound_xeno.overlay_shields() diff --git a/code/modules/mob/living/carbon/xenomorph/castes/Runner.dm b/code/modules/mob/living/carbon/xenomorph/castes/Runner.dm index 77e4291ee84b..8721294173e9 100644 --- a/code/modules/mob/living/carbon/xenomorph/castes/Runner.dm +++ b/code/modules/mob/living/carbon/xenomorph/castes/Runner.dm @@ -13,6 +13,8 @@ evasion = XENO_EVASION_NONE speed = XENO_SPEED_RUNNER attack_delay = -4 + + available_strains = list(/datum/xeno_strain/acider) behavior_delegate_type = /datum/behavior_delegate/runner_base evolves_to = list(XENO_CASTE_LURKER) deevolves_to = list("Larva") @@ -45,6 +47,7 @@ base_pixel_y = -20 pull_speed = -0.5 viewsize = 9 + organ_value = 500 //worthless mob_size = MOB_SIZE_XENO_SMALL @@ -62,17 +65,26 @@ inherent_verbs = list( /mob/living/carbon/xenomorph/proc/vent_crawl, ) - mutation_type = RUNNER_NORMAL icon_xeno = 'icons/mob/xenos/runner.dmi' icon_xenonid = 'icons/mob/xenonids/runner.dmi' + weed_food_icon = 'icons/mob/xenos/weeds_64x64.dmi' + weed_food_states = list("Runner_1","Runner_2","Runner_3") + weed_food_states_flipped = list("Runner_1","Runner_2","Runner_3") + /mob/living/carbon/xenomorph/runner/initialize_pass_flags(datum/pass_flags_container/pass_flags_container) ..() if (pass_flags_container) pass_flags_container.flags_pass |= PASS_FLAGS_CRAWLER +/mob/living/carbon/xenomorph/runner/recalculate_actions() + . = ..() + pull_multiplier *= 0.85 + if(is_zoomed) + zoom_out() + /datum/behavior_delegate/runner_base name = "Base Runner Behavior Delegate" diff --git a/code/modules/mob/living/carbon/xenomorph/castes/Sentinel.dm b/code/modules/mob/living/carbon/xenomorph/castes/Sentinel.dm index 39426b1a9ef7..01963496f967 100644 --- a/code/modules/mob/living/carbon/xenomorph/castes/Sentinel.dm +++ b/code/modules/mob/living/carbon/xenomorph/castes/Sentinel.dm @@ -39,6 +39,7 @@ pixel_x = -12 old_x = -12 tier = 1 + organ_value = 800 base_actions = list( /datum/action/xeno_action/onclick/xeno_resting, /datum/action/xeno_action/onclick/regurgitate, @@ -53,11 +54,14 @@ inherent_verbs = list( /mob/living/carbon/xenomorph/proc/vent_crawl, ) - mutation_type = SENTINEL_NORMAL icon_xeno = 'icons/mob/xenos/sentinel.dmi' icon_xenonid = 'icons/mob/xenonids/sentinel.dmi' + weed_food_icon = 'icons/mob/xenos/weeds_48x48.dmi' + weed_food_states = list("Drone_1","Drone_2","Drone_3") + weed_food_states_flipped = list("Drone_1","Drone_2","Drone_3") + /datum/behavior_delegate/sentinel_base name = "Base Sentinel Behavior Delegate" @@ -84,9 +88,9 @@ next_slash_buffed = FALSE return //species like zombies or synths are immune to neurotoxin if (next_slash_buffed) - to_chat(bound_xeno, SPAN_XENOHIGHDANGER("You add neurotoxin into your attack, [carbon_target] is about to fall over paralyzed!")) + to_chat(bound_xeno, SPAN_XENOHIGHDANGER("We add neurotoxin into our attack, [carbon_target] is about to fall over paralyzed!")) to_chat(carbon_target, SPAN_XENOHIGHDANGER("You feel like you're about to fall over, as [bound_xeno] slashes you with its neurotoxin coated claws!")) - carbon_target.sway_jitter(times = 3, steps = round(NEURO_TOUCH_DELAY/3)) + carbon_target.sway_jitter(times = 3, steps = floor(NEURO_TOUCH_DELAY/3)) carbon_target.apply_effect(4, DAZE) addtimer(CALLBACK(src, PROC_REF(paralyzing_slash), carbon_target), NEURO_TOUCH_DELAY) next_slash_buffed = FALSE @@ -99,5 +103,6 @@ #undef NEURO_TOUCH_DELAY /datum/behavior_delegate/sentinel_base/proc/paralyzing_slash(mob/living/carbon/human/human_target) - human_target.apply_effect(2, WEAKEN) + human_target.KnockDown(2) + human_target.Stun(2) to_chat(human_target, SPAN_XENOHIGHDANGER("You fall over, paralyzed by the toxin!")) diff --git a/code/modules/mob/living/carbon/xenomorph/castes/Spitter.dm b/code/modules/mob/living/carbon/xenomorph/castes/Spitter.dm index 23728b00a642..006f66b7f1b2 100644 --- a/code/modules/mob/living/carbon/xenomorph/castes/Spitter.dm +++ b/code/modules/mob/living/carbon/xenomorph/castes/Spitter.dm @@ -40,7 +40,7 @@ plasma_types = list(PLASMA_NEUROTOXIN) pixel_x = -12 old_x = -12 - + organ_value = 2000 tier = 2 base_actions = list( /datum/action/xeno_action/onclick/xeno_resting, @@ -56,7 +56,10 @@ inherent_verbs = list( /mob/living/carbon/xenomorph/proc/vent_crawl, ) - mutation_type = SPITTER_NORMAL icon_xeno = 'icons/mob/xenos/spitter.dmi' icon_xenonid = 'icons/mob/xenonids/spitter.dmi' + + weed_food_icon = 'icons/mob/xenos/weeds_48x48.dmi' + weed_food_states = list("Drone_1","Drone_2","Drone_3") + weed_food_states_flipped = list("Drone_1","Drone_2","Drone_3") diff --git a/code/modules/mob/living/carbon/xenomorph/castes/Warrior.dm b/code/modules/mob/living/carbon/xenomorph/castes/Warrior.dm index 2e7ca294dc86..2885dd6ac553 100644 --- a/code/modules/mob/living/carbon/xenomorph/castes/Warrior.dm +++ b/code/modules/mob/living/carbon/xenomorph/castes/Warrior.dm @@ -43,7 +43,7 @@ old_x = -16 tier = 2 pull_speed = 2 // about what it was before, slightly faster - + organ_value = 2000 base_actions = list( /datum/action/xeno_action/onclick/xeno_resting, /datum/action/xeno_action/onclick/regurgitate, @@ -55,12 +55,17 @@ /datum/action/xeno_action/onclick/tacmap, ) - mutation_type = WARRIOR_NORMAL claw_type = CLAW_TYPE_SHARP + icon_xeno = 'icons/mob/xenos/warrior.dmi' icon_xenonid = 'icons/mob/xenonids/warrior.dmi' + weed_food_icon = 'icons/mob/xenos/weeds_64x64.dmi' + weed_food_states = list("Warrior_1","Warrior_2","Warrior_3") + weed_food_states_flipped = list("Warrior_1","Warrior_2","Warrior_3") + var/lunging = FALSE // whether or not the warrior is currently lunging (holding) a target + /mob/living/carbon/xenomorph/warrior/throw_item(atom/target) toggle_throw_mode(THROW_MODE_OFF) @@ -95,11 +100,13 @@ if(should_neckgrab && living_mob.mob_size < MOB_SIZE_BIG) living_mob.drop_held_items() - living_mob.apply_effect(get_xeno_stun_duration(living_mob, 2), WEAKEN) + var/duration = get_xeno_stun_duration(living_mob, 2) + living_mob.KnockDown(duration) + living_mob.Stun(duration) if(living_mob.pulledby != src) return // Grab was broken, probably as Stun side effect (eg. target getting knocked away from a manned M56D) visible_message(SPAN_XENOWARNING("[src] grabs [living_mob] by the throat!"), \ - SPAN_XENOWARNING("You grab [living_mob] by the throat!")) + SPAN_XENOWARNING("We grab [living_mob] by the throat!")) lunging = TRUE addtimer(CALLBACK(src, PROC_REF(stop_lunging)), get_xeno_stun_duration(living_mob, 2) SECONDS + 1 SECONDS) @@ -145,7 +152,7 @@ // This part is then outside the for loop if(final_lifesteal >= max_lifesteal) bound_xeno.add_filter("empower_rage", 1, list("type" = "outline", "color" = color, "size" = 1, "alpha" = 90)) - bound_xeno.visible_message(SPAN_DANGER("[bound_xeno.name] glows as it heals even more from its injuries!."), SPAN_XENODANGER("You glow as you heal even more from your injuries!")) + bound_xeno.visible_message(SPAN_DANGER("[bound_xeno.name] glows as it heals even more from its injuries!."), SPAN_XENODANGER("We glow as we heal even more from our injuries!")) bound_xeno.flick_heal_overlay(2 SECONDS, "#00B800") if(istype(bound_xeno) && world.time > emote_cooldown && bound_xeno) bound_xeno.emote("roar") @@ -153,7 +160,7 @@ emote_cooldown = world.time + 5 SECONDS addtimer(CALLBACK(src, PROC_REF(lifesteal_lock)), lifesteal_lock_duration/2) - bound_xeno.gain_health(Clamp(final_lifesteal / 100 * (bound_xeno.maxHealth - bound_xeno.health), 20, 40)) + bound_xeno.gain_health(clamp(final_lifesteal / 100 * (bound_xeno.maxHealth - bound_xeno.health), 20, 40)) /datum/behavior_delegate/warrior_base/proc/lifesteal_lock() bound_xeno.remove_filter("empower_rage") @@ -183,11 +190,11 @@ var/obj/limb/limb = human.get_limb(check_zone(zone_selected)) if(can_not_harm(human)) - to_chat(src, SPAN_XENOWARNING("You can't harm this host!")) + to_chat(src, SPAN_XENOWARNING("We can't harm this host!")) return if(!limb || limb.body_part == BODY_FLAG_CHEST || limb.body_part == BODY_FLAG_GROIN || (limb.status & LIMB_DESTROYED)) //Only limbs and head. - to_chat(src, SPAN_XENOWARNING("You can't rip off that limb.")) + to_chat(src, SPAN_XENOWARNING("We can't rip off that limb.")) return FALSE var/limb_time = rand(40,60) @@ -195,12 +202,12 @@ limb_time = rand(90,110) visible_message(SPAN_XENOWARNING("[src] begins pulling on [mob]'s [limb.display_name] with incredible strength!"), \ - SPAN_XENOWARNING("You begin to pull on [mob]'s [limb.display_name] with incredible strength!")) + SPAN_XENOWARNING("We begin to pull on [mob]'s [limb.display_name] with incredible strength!")) if(!do_after(src, limb_time, INTERRUPT_ALL|INTERRUPT_DIFF_SELECT_ZONE, BUSY_ICON_HOSTILE) || mob.stat == DEAD || mob.status_flags & XENO_HOST) - to_chat(src, SPAN_NOTICE("You stop ripping off the limb.")) + to_chat(src, SPAN_NOTICE("We stop ripping off the limb.")) if(mob.status_flags & XENO_HOST) - to_chat(src, SPAN_NOTICE("You detect an embryo inside [mob] which overwhelms your instinct to rip.")) + to_chat(src, SPAN_NOTICE("We detect an embryo inside [mob] which overwhelms our instinct to rip.")) return FALSE if(limb.status & LIMB_DESTROYED) @@ -211,7 +218,7 @@ visible_message(SPAN_XENOWARNING("You hear [mob]'s [limb.display_name] being pulled beyond its load limits!"), \ SPAN_XENOWARNING("[mob]'s [limb.display_name] begins to tear apart!")) else - visible_message(SPAN_XENOWARNING("You hear the bones in [mob]'s [limb.display_name] snap with a sickening crunch!"), \ + visible_message(SPAN_XENOWARNING("We hear the bones in [mob]'s [limb.display_name] snap with a sickening crunch!"), \ SPAN_XENOWARNING("[mob]'s [limb.display_name] bones snap with a satisfying crunch!")) limb.take_damage(rand(15,25), 0, 0) limb.fracture(100) @@ -221,7 +228,7 @@ log_attack("[src.name] ([src.ckey]) ripped the [limb.display_name] off of [mob.name] ([mob.ckey]) 1/2 progress") if(!do_after(src, limb_time, INTERRUPT_ALL|INTERRUPT_DIFF_SELECT_ZONE, BUSY_ICON_HOSTILE) || mob.stat == DEAD || iszombie(mob)) - to_chat(src, SPAN_NOTICE("You stop ripping off the limb.")) + to_chat(src, SPAN_NOTICE("We stop ripping off the limb.")) return FALSE if(limb.status & LIMB_DESTROYED) diff --git a/code/modules/mob/living/carbon/xenomorph/castes/caste_datum.dm b/code/modules/mob/living/carbon/xenomorph/castes/caste_datum.dm index 63d6146afb14..feee2edecb67 100644 --- a/code/modules/mob/living/carbon/xenomorph/castes/caste_datum.dm +++ b/code/modules/mob/living/carbon/xenomorph/castes/caste_datum.dm @@ -16,8 +16,6 @@ var/plasma_max = 10 var/plasma_gain = 5 - var/crystal_max = 0 - var/max_health = XENO_UNIVERSAL_HPMULT * 100 ///Are they allowed to evolve (and have their evolution progress group) var/evolution_allowed = 1 @@ -68,6 +66,9 @@ var/agility_speed_increase = 0 // this opens up possibilities for balancing + /// A list of strain typepaths that are able to be chosen by this caste. + var/list/available_strains = list() + // The type of mutator delegate to instantiate on the base caste. Will // be replaced when the Xeno chooses a strain. var/behavior_delegate_type = /datum/behavior_delegate diff --git a/code/modules/mob/living/carbon/xenomorph/castes/lesser_drone.dm b/code/modules/mob/living/carbon/xenomorph/castes/lesser_drone.dm index 9ca4cdc52474..9be9e21fd983 100644 --- a/code/modules/mob/living/carbon/xenomorph/castes/lesser_drone.dm +++ b/code/modules/mob/living/carbon/xenomorph/castes/lesser_drone.dm @@ -7,7 +7,6 @@ max_health = XENO_HEALTH_LESSER_DRONE plasma_gain = XENO_PLASMA_GAIN_TIER_7 plasma_max = XENO_PLASMA_TIER_3 - crystal_max = XENO_CRYSTAL_LOW xeno_explosion_resistance = XENO_NO_EXPLOSIVE_ARMOR armor_deflection = XENO_NO_ARMOR evasion = XENO_EVASION_LOW @@ -17,9 +16,10 @@ can_be_revived = FALSE build_time_mult = BUILD_TIME_MULT_LESSER_DRONE + behavior_delegate_type = /datum/behavior_delegate/lesser_drone_base caste_desc = "A builder of hives." - can_hold_facehuggers = 1 + can_hold_facehuggers = TRUE can_hold_eggs = CAN_HOLD_TWO_HANDS acid_level = 1 weed_level = WEED_LEVEL_STANDARD @@ -75,11 +75,27 @@ /mob/living/carbon/xenomorph/proc/set_hugger_reserve_for_morpher, ) - mutation_type = DRONE_NORMAL - icon_xeno = 'icons/mob/xenos/lesser_drone.dmi' icon_xenonid = 'icons/mob/xenonids/lesser_drone.dmi' + weed_food_icon = 'icons/mob/xenos/weeds.dmi' + weed_food_states = list("Lesser_Drone_1","Lesser_Drone_2","Lesser_Drone_3") + weed_food_states_flipped = list("Lesser_Drone_1","Lesser_Drone_2","Lesser_Drone_3") + +/mob/living/carbon/xenomorph/lesser_drone/Login() + var/last_ckey_inhabited = persistent_ckey + . = ..() + if(ckey == last_ckey_inhabited) + return + + AddComponent(\ + /datum/component/temporary_mute,\ + "We aren't old enough to vocalize anything yet.",\ + "We aren't old enough to communicate like this yet.",\ + "We feel old enough to be able to vocalize and speak to the hivemind.",\ + 3 MINUTES,\ + ) + /mob/living/carbon/xenomorph/lesser_drone/age_xeno() if(stat == DEAD || !caste || QDELETED(src) || !client) return @@ -103,3 +119,10 @@ /mob/living/carbon/xenomorph/lesser_drone/handle_ghost_message() return + +/datum/behavior_delegate/lesser_drone_base + name = "Base Lesser Drone Behavior Delegate" + +/datum/behavior_delegate/lesser_drone_base/on_life() + if(bound_xeno.body_position == STANDING_UP && !(locate(/obj/effect/alien/weeds) in get_turf(bound_xeno))) + bound_xeno.adjustBruteLoss(5) diff --git a/code/modules/mob/living/carbon/xenomorph/damage_procs.dm b/code/modules/mob/living/carbon/xenomorph/damage_procs.dm index b6ceb2043458..4c97ce20b4eb 100644 --- a/code/modules/mob/living/carbon/xenomorph/damage_procs.dm +++ b/code/modules/mob/living/carbon/xenomorph/damage_procs.dm @@ -16,6 +16,16 @@ return programmer.visible_message(SPAN_NOTICE("[programmer] reprograms \the [src]'s IFF tag."), SPAN_NOTICE("You reprogram \the [src]'s IFF tag."), max_distance = 3) return + if(stat == DEAD) + if(!istype(item, /obj/item/reagent_container/syringe)) + var/datum/surgery/current_surgery = active_surgeries[user.zone_selected] + if(current_surgery) + if(current_surgery.attempt_next_step(user, item)) + return + else + if(initiate_surgery_moment(item, src, "head" , user)) + return + return if(item.type in SURGERY_TOOLS_PINCH) if(!iff_tag) to_chat(user, SPAN_WARNING("\The [src] doesn't have an IFF tag to remove.")) @@ -44,7 +54,7 @@ last_damage_data = istype(cause_data) ? cause_data : create_cause_data(cause_data) - if(severity > EXPLOSION_THRESHOLD_LOW && stomach_contents.len) + if(severity > EXPLOSION_THRESHOLD_LOW && length(stomach_contents)) for(var/mob/M in stomach_contents) M.ex_act(severity - EXPLOSION_THRESHOLD_LOW, last_damage_data, pierce) @@ -81,6 +91,7 @@ powerfactor_value = min(powerfactor_value,20) if(powerfactor_value > 0 && small_explosives_stun) KnockDown(powerfactor_value/5) + Stun(powerfactor_value/5) // Due to legacy knockdown being considered an impairement if(mob_size < MOB_SIZE_BIG) Slow(powerfactor_value) Superslow(powerfactor_value/2) @@ -159,7 +170,7 @@ return var/shielded = FALSE - if(xeno_shields.len != 0 && damage > 0) + if(length(xeno_shields) != 0 && damage > 0) shielded = TRUE for(var/datum/xeno_shield/XS in xeno_shields) damage = XS.on_hit(damage) @@ -227,7 +238,7 @@ if(!caste) return sleep(XENO_ARMOR_BREAK_PASS_TIME) if(warding_aura && armor_break_to_apply > 0) //Damage to armor reduction - armor_break_to_apply = round(armor_break_to_apply * ((100 - (warding_aura * 15)) / 100)) + armor_break_to_apply = floor(armor_break_to_apply * ((100 - (warding_aura * 15)) / 100)) if(caste) armor_integrity -= armor_break_to_apply if(armor_integrity < 0) @@ -298,7 +309,7 @@ . = ..() switch(fire.fire_variant) if(FIRE_VARIANT_TYPE_B) - if(!armor_deflection_debuff) //Only adds another reset timer if the debuff is currently on 0, so at the start or after a reset has recently occured. + if(!armor_deflection_debuff) //Only adds another reset timer if the debuff is currently on 0, so at the start or after a reset has recently occurred. reset_xeno_armor_debuff_after_time(src, delta_time*10) fire.type_b_debuff_xeno_armor(src) //Always reapplies debuff each time to minimize gap. @@ -312,4 +323,4 @@ fire.set_on_fire(src) //Deals an extra proc of fire when you're crossing it. 30 damage per tile crossed, plus 15 per Process(). next_move_slowdown = next_move_slowdown + (SLOWDOWN_AMT_GREENFIRE * resist_modifier) if(resist_modifier > 0) - to_chat(src, SPAN_DANGER("You feel pieces of your exoskeleton fusing with the viscous fluid below and tearing off as you struggle to move through the flames!")) + to_chat(src, SPAN_DANGER("We feel pieces of our exoskeleton fusing with the viscous fluid below and tearing off as we struggle to move through the flames!")) diff --git a/code/modules/mob/living/carbon/xenomorph/death.dm b/code/modules/mob/living/carbon/xenomorph/death.dm index 1f7d02f98c7d..82b9291dc555 100644 --- a/code/modules/mob/living/carbon/xenomorph/death.dm +++ b/code/modules/mob/living/carbon/xenomorph/death.dm @@ -26,7 +26,7 @@ hud_used.alien_plasma_display.icon_state = "power_display_empty" update_icons() - if(!is_admin_level(z)) //so xeno players don't get death messages from admin tests + if(!should_block_game_interaction(src)) //so xeno players don't get death messages from admin tests if(isqueen(src)) var/mob/living/carbon/xenomorph/queen/XQ = src playsound(loc, 'sound/voice/alien_queen_died.ogg', 75, 0) @@ -36,7 +36,7 @@ XQ.dismount_ovipositor(TRUE) if(GLOB.hive_datum[hivenumber].stored_larva) - GLOB.hive_datum[hivenumber].stored_larva = round(GLOB.hive_datum[hivenumber].stored_larva * 0.5) //Lose half on dead queen + GLOB.hive_datum[hivenumber].stored_larva = floor(GLOB.hive_datum[hivenumber].stored_larva * 0.5) //Lose half on dead queen var/list/players_with_xeno_pref = get_alien_candidates(GLOB.hive_datum[hivenumber]) if(players_with_xeno_pref && istype(GLOB.hive_datum[hivenumber].hive_location, /obj/effect/alien/resin/special/pylon/core)) @@ -84,7 +84,8 @@ playsound(loc, prob(50) == 1 ? 'sound/voice/alien_death.ogg' : 'sound/voice/alien_death2.ogg', 25, 1) var/area/A = get_area(src) if(hive && hive.living_xeno_queen) - xeno_message("Hive: [src] has died[A? " at [sanitize_area(A.name)]":""]! [banished ? "They were banished from the hive." : ""]", death_fontsize, hivenumber) + if(!HAS_TRAIT(src, TRAIT_TEMPORARILY_MUTED)) + xeno_message("Hive: [src] has died[A? " at [sanitize_area(A.name)]":""]! [banished ? "They were banished from the hive." : ""]", death_fontsize, hivenumber) if(hive && IS_XENO_LEADER(src)) //Strip them from the Xeno leader list, if they are indexed in here hive.remove_hive_leader(src) @@ -109,8 +110,8 @@ if(hardcore) QDEL_IN(src, 3 SECONDS) - //else if(!gibbed) // At the moment we only support humans - //AddComponent(/datum/component/weed_food) + else if(!gibbed) + AddComponent(/datum/component/weed_food) if(hive) hive.remove_xeno(src) @@ -132,6 +133,7 @@ notify_ghosts(header = "Last Xenomorph", message = "There is only one Xenomorph left: [X.name].", source = X, action = NOTIFY_ORBIT) SEND_GLOBAL_SIGNAL(COMSIG_GLOB_XENO_DEATH, src, gibbed) + give_action(src, /datum/action/ghost/xeno) /mob/living/carbon/xenomorph/gib(datum/cause_data/cause = create_cause_data("gibbing", src)) var/obj/effect/decal/remains/xeno/remains = new(get_turf(src)) diff --git a/code/modules/mob/living/carbon/xenomorph/egg_item.dm b/code/modules/mob/living/carbon/xenomorph/egg_item.dm index e4cc7bd39fe0..a9d00519b691 100644 --- a/code/modules/mob/living/carbon/xenomorph/egg_item.dm +++ b/code/modules/mob/living/carbon/xenomorph/egg_item.dm @@ -5,7 +5,7 @@ icon = 'icons/mob/xenos/effects.dmi' icon_state = "egg_item" w_class = SIZE_MASSIVE - flags_atom = OPENCONTAINER + flags_atom = FPRINT|OPENCONTAINER flags_item = NOBLUDGEON throw_range = 1 layer = MOB_LAYER @@ -25,6 +25,17 @@ set_hive_data(src, hivenumber) . = ..() + if(hivenumber == XENO_HIVE_NORMAL) + RegisterSignal(SSdcs, COMSIG_GLOB_GROUNDSIDE_FORSAKEN_HANDLING, PROC_REF(forsaken_handling)) + +/obj/item/xeno_egg/proc/forsaken_handling() + SIGNAL_HANDLER + if(is_ground_level(z)) + hivenumber = XENO_HIVE_FORSAKEN + set_hive_data(src, XENO_HIVE_FORSAKEN) + + UnregisterSignal(SSdcs, COMSIG_GLOB_GROUNDSIDE_FORSAKEN_HANDLING) + /obj/item/xeno_egg/get_examine_text(mob/user) . = ..() if(isxeno(user)) @@ -93,16 +104,19 @@ if(weed.weed_strength >= WEED_LEVEL_WEAK && weed.linked_hive.hivenumber == hivenumber) //check for ANY weeds any_weeds = weed + // If the user isn't an eggsac carrier, then they can only plant eggs on hive weeds. + var/needs_hive_weeds = !istype(user.strain, /datum/xeno_strain/eggsac) + var/datum/hive_status/hive = GLOB.hive_datum[hivenumber] if(!any_weeds && !hive_weeds) //you need at least some weeds to plant on. to_chat(user, SPAN_XENOWARNING("[src] must be planted on [lowertext(hive.prefix)]weeds.")) return - if(!hive_weeds && user.mutation_type != CARRIER_EGGSAC) + if(!hive_weeds && needs_hive_weeds) to_chat(user, SPAN_XENOWARNING("[src] can only be planted on [lowertext(hive.prefix)]hive weeds.")) return - if(istype(get_area(T), /area/vehicle)) + if(istype(get_area(T), /area/interior)) to_chat(user, SPAN_XENOWARNING("[src] cannot be planted inside a vehicle.")) return @@ -127,7 +141,7 @@ return for(var/obj/effect/alien/weeds/weed in T) - if(weed.weed_strength >= WEED_LEVEL_HIVE || user.mutation_type == CARRIER_EGGSAC) + if(weed.weed_strength >= WEED_LEVEL_HIVE || !needs_hive_weeds) user.use_plasma(30) var/obj/effect/alien/egg/newegg if(weed.weed_strength >= WEED_LEVEL_HIVE) diff --git a/code/modules/mob/living/carbon/xenomorph/hive_status.dm b/code/modules/mob/living/carbon/xenomorph/hive_status.dm index 67f19c8d07cb..9c8b54dad483 100644 --- a/code/modules/mob/living/carbon/xenomorph/hive_status.dm +++ b/code/modules/mob/living/carbon/xenomorph/hive_status.dm @@ -12,7 +12,7 @@ var/egg_planting_range = 15 var/slashing_allowed = XENO_SLASH_ALLOWED //This initial var allows the queen to turn on or off slashing. Slashing off means harm intent does much less damage. var/construction_allowed = NORMAL_XENO //Who can place construction nodes for special structures - var/destruction_allowed = XENO_LEADER //Who can destroy special structures + var/destruction_allowed = NORMAL_XENO //Who can destroy special structures var/unnesting_allowed = TRUE var/hive_orders = "" //What orders should the hive have var/color = null @@ -45,9 +45,7 @@ var/isSlotOpen = TRUE //Set true for starting alerts only after the hive has reached its full potential var/allowed_nest_distance = 15 //How far away do we allow nests from an ovied Queen. Default 15 tiles. var/obj/effect/alien/resin/special/pylon/core/hive_location = null //Set to ref every time a core is built, for defining the hive location - var/crystal_stored = 0 //How much stockpiled material is stored for the hive to use. - var/datum/mutator_set/hive_mutators/mutators = new var/tier_slot_multiplier = 1 var/larva_gestation_multiplier = 1 var/bonus_larva_spawn_chance = 1 @@ -55,7 +53,6 @@ /// how many burrowed is going to spawn during larva surge var/hijack_burrowed_left = 0 - var/ignore_slots = FALSE var/dynamic_evolution = TRUE var/evolution_rate = 3 // Only has use if dynamic_evolution is false var/evolution_bonus = 0 @@ -69,6 +66,10 @@ var/hardcore = FALSE /// Set to false if you want to prevent getting burrowed larva from latejoin marines var/latejoin_burrowed = TRUE + /// If hit limit of larva from pylons + var/hit_larva_pylon_limit = FALSE + + var/see_humans_on_tacmap = FALSE var/list/hive_inherant_traits @@ -79,9 +80,7 @@ var/list/hive_structures_limit = list( XENO_STRUCTURE_CORE = 1, XENO_STRUCTURE_CLUSTER = 8, - XENO_STRUCTURE_POOL = 1, XENO_STRUCTURE_EGGMORPH = 6, - XENO_STRUCTURE_EVOPOD = 2, XENO_STRUCTURE_RECOVERY = 6, XENO_STRUCTURE_PYLON = 2, ) @@ -142,7 +141,6 @@ var/static/list/evolution_menu_images /datum/hive_status/New() - mutators.hive = src hive_ui = new(src) mark_ui = new(src) faction_ui = new(src) @@ -209,7 +207,7 @@ // Can only have one queen. if(isqueen(X)) - if(!living_xeno_queen && !is_admin_level(X.z)) // Don't consider xenos in admin level + if(!living_xeno_queen && !should_block_game_interaction(X)) // Don't consider xenos in admin level set_living_xeno_queen(X) X.hivenumber = hivenumber @@ -221,7 +219,7 @@ X.hud_update() var/area/A = get_area(X) - if(!is_admin_level(X.z) || (A.flags_atom & AREA_ALLOW_XENO_JOIN)) + if(!should_block_game_interaction(X) || (A.flags_atom & AREA_ALLOW_XENO_JOIN)) totalXenos += X if(X.tier == 2) tier_2_xenos += X @@ -244,7 +242,7 @@ if(living_xeno_queen == xeno) var/mob/living/carbon/xenomorph/queen/next_queen = null for(var/mob/living/carbon/xenomorph/queen/queen in totalXenos) - if(!is_admin_level(queen.z) && queen != src && !QDELETED(queen)) + if(!should_block_game_interaction(queen) && queen != src && !QDELETED(queen)) next_queen = queen break @@ -267,7 +265,7 @@ tier_3_xenos -= xeno // Only handle free slots if the xeno is not in tdome - if(!is_admin_level(xeno.z)) + if(!should_block_game_interaction(xeno)) var/selected_caste = GLOB.xeno_datum_list[xeno.caste_type]?.type if(used_slots[selected_caste]) used_slots[selected_caste]-- @@ -278,7 +276,6 @@ /datum/hive_status/proc/set_living_xeno_queen(mob/living/carbon/xenomorph/queen/queen) if(!queen) - mutators.reset_mutators() SStracking.delete_leader("hive_[hivenumber]") SStracking.stop_tracking("hive_[hivenumber]", living_xeno_queen) SShive_status.wait = 10 SECONDS @@ -292,34 +289,27 @@ recalculate_hive() /datum/hive_status/proc/recalculate_hive() - if (!living_xeno_queen) - queen_leader_limit = 0 //No leaders for a Hive without a Queen! - else - queen_leader_limit = 4 + mutators.leader_count_boost + //No leaders for a Hive without a Queen! + queen_leader_limit = living_xeno_queen ? 4 : 0 - if (xeno_leader_list.len > queen_leader_limit) + if (length(xeno_leader_list) > queen_leader_limit) var/diff = 0 - for (var/i in queen_leader_limit + 1 to xeno_leader_list.len) + for (var/i in queen_leader_limit + 1 to length(xeno_leader_list)) if(!open_xeno_leader_positions.Remove(i)) remove_hive_leader(xeno_leader_list[i]) diff++ xeno_leader_list.len -= diff // Changing the size of xeno_leader_list needs to go at the end or else it won't iterate through the list properly - else if (xeno_leader_list.len < queen_leader_limit) - for (var/i in xeno_leader_list.len + 1 to queen_leader_limit) + else if (length(xeno_leader_list) < queen_leader_limit) + for (var/i in length(xeno_leader_list) + 1 to queen_leader_limit) open_xeno_leader_positions += i xeno_leader_list.len++ - - tier_slot_multiplier = mutators.tier_slot_multiplier - larva_gestation_multiplier = mutators.larva_gestation_multiplier - bonus_larva_spawn_chance = mutators.bonus_larva_spawn_chance - hive_ui.update_all_data() /datum/hive_status/proc/add_hive_leader(mob/living/carbon/xenomorph/xeno) if(!xeno) return FALSE //How did this even happen? - if(!open_xeno_leader_positions.len) + if(!length(open_xeno_leader_positions)) return FALSE //Too many leaders already (no available xeno leader positions) if(xeno.hive_pos != NORMAL_XENO) return FALSE //Already on the list @@ -352,7 +342,7 @@ // Need to maintain ascending order of open_xeno_leader_positions for (var/i in 1 to queen_leader_limit) - if (i > open_xeno_leader_positions.len || open_xeno_leader_positions[i] > leader_num) + if (i > length(open_xeno_leader_positions) || open_xeno_leader_positions[i] > leader_num) open_xeno_leader_positions.Insert(i, leader_num) break @@ -411,7 +401,7 @@ for(var/mob/living/carbon/xenomorph/X in totalXenos) //don't show xenos in the thunderdome when admins test stuff. - if(is_admin_level(X.z)) + if(should_block_game_interaction(X)) var/area/A = get_area(X) if(!(A.flags_atom & AREA_ALLOW_XENO_JOIN)) continue @@ -425,28 +415,27 @@ // The idea is that we sort this list, and use it as a "key" for all the other information (especially the nicknumber) // in the hive status UI. That way we can minimize the amount of sorts performed by only calling this when xenos are created/disposed /datum/hive_status/proc/get_xeno_keys() - var/list/xenos[totalXenos.len] + var/list/xenos = list() - var/index = 1 - var/useless_slots = 0 for(var/mob/living/carbon/xenomorph/X in totalXenos) - if(is_admin_level(X.z)) + if(should_block_game_interaction(X)) var/area/A = get_area(X) if(!(A.flags_atom & AREA_ALLOW_XENO_JOIN)) - useless_slots++ continue - // Insert without doing list merging - xenos[index++] = list( + if(!(X in GLOB.living_xeno_list)) + continue + + // This looks weird, but in DM adding List A to List B actually adds each item in List B to List A, not List B itself. + // Having a nested list like this sort of tricks it into adding the list instead. + // In this case this results in an array of different 'xeno' dictionaries, rather than just a dictionary. + xenos += list(list( "nicknumber" = X.nicknumber, "tier" = X.tier, // This one is only important for sorting "is_leader" = (IS_XENO_LEADER(X)), "is_queen" = istype(X.caste, /datum/caste_datum/queen), "caste_type" = X.caste_type - ) - - // Clear nulls from the xenos list - xenos.len -= useless_slots + )) // Make it all nice and fancy by sorting the list before returning it var/list/sorted_keys = sort_xeno_keys(xenos) @@ -512,7 +501,7 @@ var/list/xenos = list() for(var/mob/living/carbon/xenomorph/X in totalXenos) - if(is_admin_level(X.z)) + if(should_block_game_interaction(X)) var/area/A = get_area(X) if(!(A.flags_atom & AREA_ALLOW_XENO_JOIN)) continue @@ -524,7 +513,7 @@ xeno_name = "Larva ([X.nicknumber])" xenos["[X.nicknumber]"] = list( "name" = xeno_name, - "strain" = X.mutation_type, + "strain" = X.get_strain_name(), "ref" = "\ref[X]" ) @@ -543,7 +532,7 @@ var/list/xenos = list() for(var/mob/living/carbon/xenomorph/X in totalXenos) - if(is_admin_level(X.z)) + if(should_block_game_interaction(X)) var/area/A = get_area(X) if(!(A.flags_atom & AREA_ALLOW_XENO_JOIN)) continue @@ -606,16 +595,16 @@ slots[TIER_3][GUARANTEED_SLOTS][initial(current_caste.caste_type)] = slots_free - slots_used var/burrowed_factor = min(stored_larva, sqrt(4*stored_larva)) - var/effective_total = round(burrowed_factor) + var/effective_total = floor(burrowed_factor) for(var/mob/living/carbon/xenomorph/xeno as anything in totalXenos) if(xeno.counts_for_slots) effective_total++ // Tier 3 slots are always 20% of the total xenos in the hive - slots[TIER_3][OPEN_SLOTS] = max(0, Ceiling(0.20*effective_total/tier_slot_multiplier) - used_tier_3_slots) + slots[TIER_3][OPEN_SLOTS] = max(0, ceil(0.20*effective_total/tier_slot_multiplier) - used_tier_3_slots) // Tier 2 slots are between 30% and 50% of the hive, depending // on how many T3s there are. - slots[TIER_2][OPEN_SLOTS] = max(0, Ceiling(0.5*effective_total/tier_slot_multiplier) - used_tier_2_slots - used_tier_3_slots) + slots[TIER_2][OPEN_SLOTS] = max(0, ceil(0.5*effective_total/tier_slot_multiplier) - used_tier_2_slots - used_tier_3_slots) return slots @@ -627,19 +616,17 @@ /datum/hive_status/proc/can_build_structure(structure_name) if(!structure_name || !hive_structures_limit[structure_name]) return FALSE - var/total_count = 0 - if(hive_structures[structure_name]) - total_count += hive_structures[structure_name].len - if(hive_constructions[structure_name]) - total_count += hive_constructions[structure_name].len - if(total_count >= hive_structures_limit[structure_name]) + if(get_structure_count(structure_name) >= hive_structures_limit[structure_name]) return FALSE return TRUE +/datum/hive_status/proc/get_structure_count(structure_name) + return length(hive_structures[structure_name]) + length(hive_constructions[structure_name]) + /datum/hive_status/proc/has_structure(structure_name) if(!structure_name) return FALSE - if(hive_structures[structure_name] && hive_structures[structure_name].len) + if(LAZYLEN(hive_structures[structure_name])) return TRUE return FALSE @@ -649,7 +636,7 @@ var/name_ref = initial(S.template.name) if(!hive_constructions[name_ref]) hive_constructions[name_ref] = list() - if(hive_constructions[name_ref].len >= hive_structures_limit[name_ref]) + if(length(hive_constructions[name_ref]) >= hive_structures_limit[name_ref]) return FALSE hive_constructions[name_ref] += src return TRUE @@ -667,7 +654,7 @@ var/name_ref = initial(S.name) if(!hive_structures[name_ref]) hive_structures[name_ref] = list() - if(hive_structures[name_ref].len >= hive_structures_limit[name_ref]) + if(length(hive_structures[name_ref]) >= hive_structures_limit[name_ref]) return FALSE hive_structures[name_ref] += S return TRUE @@ -680,9 +667,9 @@ return TRUE /datum/hive_status/proc/has_special_structure(name_ref) - if(!name_ref || !hive_structures[name_ref] || !hive_structures[name_ref].len) + if(!name_ref || !LAZYLEN(hive_structures[name_ref])) return 0 - return hive_structures[name_ref].len + return length(hive_structures[name_ref]) /datum/hive_status/proc/abandon_on_hijack() var/area/hijacked_dropship = get_area(living_xeno_queen) @@ -699,7 +686,7 @@ if(get_area(xeno) != hijacked_dropship && xeno.loc && is_ground_level(xeno.loc.z)) if(isfacehugger(xeno) || islesserdrone(xeno)) to_chat(xeno, SPAN_XENOANNOUNCE("The Queen has left without you, you quickly find a hiding place to enter hibernation as you lose touch with the hive mind.")) - if(xeno.stomach_contents.len) + if(length(xeno.stomach_contents)) xeno.devour_timer = 0 xeno.handle_stomach_contents() qdel(xeno) @@ -709,7 +696,7 @@ xeno.set_hive_and_update(XENO_HIVE_FORSAKEN) else to_chat(xeno, SPAN_XENOANNOUNCE("The Queen has left without you, you quickly find a hiding place to enter hibernation as you lose touch with the hive mind.")) - if(xeno.stomach_contents.len) + if(length(xeno.stomach_contents)) xeno.devour_timer = 0 xeno.handle_stomach_contents() qdel(xeno) @@ -739,7 +726,7 @@ if(is_mainship_level(turf?.z)) shipside_humans_weighted_count += GLOB.RoleAuthority.calculate_role_weight(job) hijack_burrowed_surge = TRUE - hijack_burrowed_left = max(n_ceil(shipside_humans_weighted_count * 0.5) - xenos_count, 5) + hijack_burrowed_left = max(ceil(shipside_humans_weighted_count * 0.5) - xenos_count, 5) hivecore_cooldown = FALSE xeno_message(SPAN_XENOBOLDNOTICE("The weeds have recovered! A new hive core can be built!"),3,hivenumber) @@ -781,7 +768,12 @@ spawning_area = pick(totalXenos) // FUCK IT JUST GO ANYWHERE var/list/turf_list for(var/turf/open/open_turf in orange(3, spawning_area)) + if(istype(open_turf, /turf/open/space)) + continue LAZYADD(turf_list, open_turf) + // just on the off-chance + if(!LAZYLEN(turf_list)) + return FALSE var/turf/open/spawning_turf = pick(turf_list) var/mob/living/carbon/xenomorph/larva/new_xeno = spawn_hivenumber_larva(spawning_turf, hivenumber) @@ -840,7 +832,7 @@ if(cycled_xeno.counts_for_slots) countable_xeno_iterator++ - playable_hugger_limit = max(Floor(countable_xeno_iterator / playable_hugger_max_divisor), playable_hugger_minimum) + playable_hugger_limit = max(floor(countable_xeno_iterator / playable_hugger_max_divisor), playable_hugger_minimum) /datum/hive_status/proc/can_spawn_as_hugger(mob/dead/observer/user) if(!GLOB.hive_datum || ! GLOB.hive_datum[hivenumber]) @@ -852,10 +844,10 @@ to_chat(user, SPAN_WARNING("The hive cannot support facehuggers yet...")) return FALSE if(world.time - user.timeofdeath < JOIN_AS_FACEHUGGER_DELAY) - var/time_left = round((user.timeofdeath + JOIN_AS_FACEHUGGER_DELAY - world.time) / 10) + var/time_left = floor((user.timeofdeath + JOIN_AS_FACEHUGGER_DELAY - world.time) / 10) to_chat(user, SPAN_WARNING("You ghosted too recently. You cannot become a facehugger until 3 minutes have passed ([time_left] seconds remaining).")) return FALSE - if(totalXenos.len <= 0) + if(length(totalXenos) <= 0) //This is to prevent people from joining as Forsaken Huggers on the pred ship to_chat(user, SPAN_WARNING("The hive has fallen, you can't join it!")) return FALSE @@ -882,6 +874,13 @@ return TRUE +/datum/hive_status/proc/get_current_playable_facehugger_count() + var/count = 0 + for(var/mob/mob as anything in totalXenos) + if(isfacehugger(mob)) + count++ + return count + /datum/hive_status/proc/spawn_as_hugger(mob/dead/observer/user, atom/A) var/mob/living/carbon/xenomorph/facehugger/hugger = new /mob/living/carbon/xenomorph/facehugger(A.loc, null, hivenumber) user.mind.transfer_to(hugger, TRUE) @@ -896,7 +895,7 @@ if(cycled_xeno.counts_for_slots) countable_xeno_iterator++ - lesser_drone_limit = max(Floor(countable_xeno_iterator / playable_lesser_drones_max_divisor), lesser_drone_minimum) + lesser_drone_limit = max(floor(countable_xeno_iterator / playable_lesser_drones_max_divisor), lesser_drone_minimum) /datum/hive_status/proc/can_spawn_as_lesser_drone(mob/dead/observer/user, obj/effect/alien/resin/special/pylon/spawning_pylon) if(!GLOB.hive_datum || ! GLOB.hive_datum[hivenumber]) @@ -907,11 +906,11 @@ return FALSE if(world.time - user.timeofdeath < JOIN_AS_LESSER_DRONE_DELAY) - var/time_left = round((user.timeofdeath + JOIN_AS_LESSER_DRONE_DELAY - world.time) / 10) + var/time_left = floor((user.timeofdeath + JOIN_AS_LESSER_DRONE_DELAY - world.time) / 10) to_chat(user, SPAN_WARNING("You ghosted too recently. You cannot become a lesser drone until 30 seconds have passed ([time_left] seconds remaining).")) return FALSE - if(totalXenos.len <= 0) + if(length(totalXenos) <= 0) to_chat(user, SPAN_WARNING("The hive has fallen, you can't join it!")) return FALSE @@ -939,6 +938,30 @@ return TRUE +// Get amount of real xenos, don't count lessers/huggers +/datum/hive_status/proc/get_real_total_xeno_count() + var/count = 0 + for(var/mob/living/carbon/xenomorph/xeno as anything in totalXenos) + if(xeno.counts_for_slots) + count++ + return count + +// Checks if we hit larva limit +/datum/hive_status/proc/check_if_hit_larva_from_pylon_limit() + var/groundside_humans_weighted_count = 0 + for(var/mob/living/carbon/human/current_human as anything in GLOB.alive_human_list) + if(!(isspecieshuman(current_human) || isspeciessynth(current_human))) + continue + var/datum/job/job = GLOB.RoleAuthority.roles_for_mode[current_human.job] + if(!job) + continue + var/turf/turf = get_turf(current_human) + if(is_ground_level(turf?.z)) + groundside_humans_weighted_count += GLOB.RoleAuthority.calculate_role_weight(job) + hit_larva_pylon_limit = (get_real_total_xeno_count() + stored_larva) > (groundside_humans_weighted_count * ENDGAME_LARVA_CAP_MULTIPLIER) + hive_ui.update_pylon_status() + return hit_larva_pylon_limit + ///Called by /obj/item/alien_embryo when a host is bursting to determine extra larva per burst /datum/hive_status/proc/increase_larva_after_burst() var/extra_per_burst = CONFIG_GET(number/extra_larva_per_burst) @@ -963,6 +986,7 @@ need_round_end_check = TRUE var/list/defectors = list() + var/list/datum/weakref/personal_allies = list() /datum/hive_status/corrupted/add_xeno(mob/living/carbon/xenomorph/xeno) . = ..() @@ -1035,7 +1059,6 @@ allow_no_queen_actions = TRUE allow_no_queen_evo = TRUE allow_queen_evolve = FALSE - ignore_slots = TRUE latejoin_burrowed = FALSE /datum/hive_status/forsaken @@ -1050,7 +1073,6 @@ allow_no_queen_actions = TRUE allow_no_queen_evo = TRUE allow_queen_evolve = FALSE - ignore_slots = TRUE latejoin_burrowed = FALSE need_round_end_check = TRUE @@ -1058,6 +1080,29 @@ /datum/hive_status/forsaken/can_delay_round_end(mob/living/carbon/xenomorph/xeno) return FALSE +/datum/hive_status/tutorial + name = "Tutorial Hive" + reporting_id = "tutorial" + hivenumber = XENO_HIVE_TUTORIAL + prefix = "Inquisitive " + latejoin_burrowed = FALSE + + dynamic_evolution = FALSE + allow_queen_evolve = TRUE + evolution_without_ovipositor = FALSE + allow_no_queen_actions = TRUE + + ///Can have many tutorials going at once. + hive_structures_limit = list( + XENO_STRUCTURE_CORE = 999, + XENO_STRUCTURE_CLUSTER = 999, + XENO_STRUCTURE_EGGMORPH = 999, + XENO_STRUCTURE_RECOVERY = 999, + ) + +/datum/hive_status/tutorial/can_delay_round_end(mob/living/carbon/xenomorph/xeno) + return FALSE + /datum/hive_status/yautja name = "Hellhound Pack" reporting_id = "hellhounds" @@ -1068,7 +1113,6 @@ allow_no_queen_actions = TRUE allow_no_queen_evo = TRUE allow_queen_evolve = FALSE - ignore_slots = TRUE latejoin_burrowed = FALSE need_round_end_check = TRUE @@ -1098,7 +1142,6 @@ allow_no_queen_actions = TRUE allow_no_queen_evo = TRUE allow_queen_evolve = FALSE - ignore_slots = TRUE latejoin_burrowed = FALSE var/mob/living/carbon/human/leader @@ -1107,7 +1150,6 @@ /datum/hive_status/corrupted/tamed/New() . = ..() hive_structures_limit[XENO_STRUCTURE_EGGMORPH] = 0 - hive_structures_limit[XENO_STRUCTURE_EVOPOD] = 0 /datum/hive_status/corrupted/tamed/proc/make_leader(mob/living/carbon/human/H) if(!istype(H)) @@ -1168,7 +1210,6 @@ /datum/hive_status/corrupted/renegade/New() . = ..() hive_structures_limit[XENO_STRUCTURE_EGGMORPH] = 0 - hive_structures_limit[XENO_STRUCTURE_EVOPOD] = 0 for(var/faction in FACTION_LIST_HUMANOID) //renegades allied to all humanoids, but it mostly affects structures. Their ability to attack humanoids and other xenos (including of the same hive) depends on iff settings allies[faction] = TRUE @@ -1220,9 +1261,9 @@ if(living_xeno_queen) if(allies[faction]) - xeno_message(SPAN_XENOANNOUNCE("Your Queen set up an alliance with [faction]!"), 3, hivenumber) + xeno_message(SPAN_XENOANNOUNCE("Our Queen set up an alliance with [faction]!"), 3, hivenumber) else - xeno_message(SPAN_XENOANNOUNCE("Your Queen broke the alliance with [faction]!"), 3, hivenumber) + xeno_message(SPAN_XENOANNOUNCE("Our Queen broke the alliance with [faction]!"), 3, hivenumber) for(var/number in GLOB.hive_datum) var/datum/hive_status/target_hive = GLOB.hive_datum[number] @@ -1231,14 +1272,13 @@ if(!target_hive.living_xeno_queen && !target_hive.allow_no_queen_actions) return if(allies[faction]) - xeno_message(SPAN_XENOANNOUNCE("You sense that [name] [living_xeno_queen ? "Queen " : ""]set up an alliance with us!"), 3, target_hive.hivenumber) + xeno_message(SPAN_XENOANNOUNCE("We sense that [name] [living_xeno_queen ? "Queen " : ""]set up an alliance with us!"), 3, target_hive.hivenumber) return - xeno_message(SPAN_XENOANNOUNCE("You sense that [name] [living_xeno_queen ? "Queen " : ""]broke the alliance with us!"), 3, target_hive.hivenumber) + xeno_message(SPAN_XENOANNOUNCE("We sense that [name] [living_xeno_queen ? "Queen " : ""]broke the alliance with us!"), 3, target_hive.hivenumber) if(target_hive.allies[name]) //autobreak alliance on betrayal target_hive.change_stance(name, FALSE) - /datum/hive_status/corrupted/change_stance(faction, should_ally) . = ..() if(allies[faction]) @@ -1259,16 +1299,16 @@ addtimer(CALLBACK(src, PROC_REF(handle_defectors), faction), 11 SECONDS) /datum/hive_status/corrupted/proc/give_defection_choice(mob/living/carbon/xenomorph/xeno, faction) - if(tgui_alert(xeno, "Your Queen has broken the alliance with the [faction]. The device inside your carapace begins to suppress your connection with the Hive. Do you remove it and stay loyal to her?", "Alliance broken!", list("Stay loyal", "Obey the talls"), 10 SECONDS) == "Obey the talls") + if(tgui_alert(xeno, "Our Queen has broken the alliance with the [faction]. The device inside our carapace begins to suppress our connection with the Hive. Do we remove it and stay loyal to her?", "Alliance broken!", list("Stay loyal", "Obey the talls"), 10 SECONDS) == "Obey the talls") if(!xeno.iff_tag) - to_chat(xeno, SPAN_XENOWARNING("It's too late now. The device is gone and your service to the Queen continues.")) + to_chat(xeno, SPAN_XENOWARNING("It's too late now. The device is gone and our service to the Queen continues.")) return defectors += xeno xeno.set_hive_and_update(XENO_HIVE_RENEGADE) to_chat(xeno, SPAN_XENOANNOUNCE("You lost the connection with your Hive. Now you have no Queen, only your masters.")) to_chat(xeno, SPAN_NOTICE("Your instincts have changed, you seem compelled to protect [english_list(xeno.iff_tag.faction_groups, "no one")].")) return - xeno.visible_message(SPAN_XENOWARNING("[xeno] rips out [xeno.iff_tag]!"), SPAN_XENOWARNING("You rip out [xeno.iff_tag]! For the Hive!")) + xeno.visible_message(SPAN_XENOWARNING("[xeno] rips out [xeno.iff_tag]!"), SPAN_XENOWARNING("We rip out [xeno.iff_tag]! For the Hive!")) xeno.adjustBruteLoss(50) xeno.iff_tag.forceMove(get_turf(xeno)) xeno.iff_tag = null @@ -1281,16 +1321,58 @@ continue if(!(faction in xeno.iff_tag.faction_groups)) continue - xeno.visible_message(SPAN_XENOWARNING("[xeno] rips out [xeno.iff_tag]!"), SPAN_XENOWARNING("You rip out [xeno.iff_tag]! For the hive!")) + xeno.visible_message(SPAN_XENOWARNING("[xeno] rips out [xeno.iff_tag]!"), SPAN_XENOWARNING("We rip out [xeno.iff_tag]! For the hive!")) xeno.adjustBruteLoss(50) xeno.iff_tag.forceMove(get_turf(xeno)) xeno.iff_tag = null if(!length(defectors)) return - xeno_message(SPAN_XENOANNOUNCE("You sense that [english_list(defectors)] turned their backs against their sisters and the Queen in favor of their slavemasters!"), 3, hivenumber) + xeno_message(SPAN_XENOANNOUNCE("We sense that [english_list(defectors)] turned their backs against their sisters and the Queen in favor of their slavemasters!"), 3, hivenumber) defectors.Cut() +/datum/hive_status/corrupted/proc/add_personal_ally(mob/living/ally) + personal_allies += WEAKREF(ally) + ally.status_flags |= CORRUPTED_ALLY + ally.med_hud_set_status() + xeno_message(SPAN_XENOANNOUNCE("Our Queen proclaimed [ally] our ally! We must not harm them."), 3, hivenumber) + +/datum/hive_status/corrupted/proc/remove_personal_ally(datum/weakref/ally_ref) + personal_allies -= ally_ref + var/mob/living/ally = ally_ref.resolve() + if(ally) + ally.status_flags &= ~CORRUPTED_ALLY + ally.med_hud_set_status() + xeno_message(SPAN_XENOANNOUNCE("Our Queen has declared that [ally] is no longer our ally!"), 3, hivenumber) + +/datum/hive_status/corrupted/proc/clear_personal_allies(death = FALSE) + for(var/datum/weakref/ally_ref in personal_allies) + var/mob/living/ally = ally_ref.resolve() + if(!ally) + continue + ally.status_flags &= ~CORRUPTED_ALLY + ally.med_hud_set_status() + personal_allies.Cut() + if(!death) + xeno_message(SPAN_XENOANNOUNCE("Our Queen has broken all personal alliances with the talls! Favoritism is no more."), 3, hivenumber) + return + xeno_message(SPAN_XENOWARNING("With the death of the Queen, her friends no longer matter to us."), 3, hivenumber) + +/datum/hive_status/corrupted/is_ally(mob/living/living_mob) + if(living_mob.status_flags & CORRUPTED_ALLY) + return TRUE + return ..() + +/datum/hive_status/proc/override_evilution(evil, override) + if(SSxevolution) + SSxevolution.override_power(hivenumber, evil, override) + +/datum/hive_status/corrupted/on_queen_death() + ..() + if(!length(personal_allies)) + return + clear_personal_allies(TRUE) + //Xeno Resin Mark Shit, the very best place for it too :0) //Defines at the bottom of this list here will show up at the top in the mark menu /datum/xeno_mark_define @@ -1351,6 +1433,3 @@ name = "Attack" desc = "Attack the enemy here!" icon_state = "attack" - - - diff --git a/code/modules/mob/living/carbon/xenomorph/hive_status_ui.dm b/code/modules/mob/living/carbon/xenomorph/hive_status_ui.dm index 4fe1be51bfff..360b4e8bbdde 100644 --- a/code/modules/mob/living/carbon/xenomorph/hive_status_ui.dm +++ b/code/modules/mob/living/carbon/xenomorph/hive_status_ui.dm @@ -11,6 +11,7 @@ var/hive_location var/burrowed_larva var/evilution_level + var/pylon_status var/data_initialized = FALSE @@ -104,6 +105,7 @@ update_xeno_vitals() update_xeno_keys(FALSE) update_xeno_info(FALSE) + update_pylon_status(FALSE) if(send_update) SStgui.update_uis(src) @@ -113,8 +115,19 @@ data_initialized = TRUE update_all_xeno_data(FALSE) update_burrowed_larva(FALSE) + update_pylon_status(FALSE) SStgui.update_uis(src) +/datum/hive_status_ui/proc/update_pylon_status(send_update = TRUE) + if(assoc_hive.get_structure_count(XENO_STRUCTURE_PYLON) < 1) + pylon_status = "" + else if(assoc_hive.hit_larva_pylon_limit) + pylon_status = "The hive's power has surpassed what the pylons can provide." + else + pylon_status = "Pylons are strengthening our numbers!" + if(send_update) + SStgui.update_uis(src) + /datum/hive_status_ui/ui_state(mob/user) return GLOB.hive_state[assoc_hive.internal_faction] @@ -123,6 +136,10 @@ if(isobserver(user)) return UI_INTERACTIVE + // If the Queen died or is otherwise missing. + if(!assoc_hive.living_xeno_queen && !assoc_hive.allow_no_queen_actions) + return UI_CLOSE + /datum/hive_status_ui/ui_data(mob/user) . = list() .["total_xenos"] = total_xenos @@ -131,10 +148,13 @@ .["xeno_keys"] = xeno_keys .["xeno_info"] = xeno_info .["xeno_vitals"] = xeno_vitals - .["queen_location"] = get_area_name(assoc_hive.living_xeno_queen) + .["queen_location"] = null + if(assoc_hive.living_xeno_queen) + .["queen_location"] = get_area_name(assoc_hive.living_xeno_queen) .["hive_location"] = hive_location .["burrowed_larva"] = burrowed_larva .["evilution_level"] = evilution_level + .["pylon_status"] = pylon_status var/mob/living/carbon/xenomorph/queen/Q = user .["is_in_ovi"] = istype(Q) && Q.ovipositor @@ -175,7 +195,7 @@ var/mob/living/carbon/xenomorph/xenoTarget = locate(params["target_ref"]) in GLOB.living_xeno_list var/mob/living/carbon/xenomorph/xenoSrc = ui.user - if(QDELETED(xenoTarget) || xenoTarget.stat == DEAD || is_admin_level(xenoTarget.z)) + if(QDELETED(xenoTarget) || xenoTarget.stat == DEAD || should_block_game_interaction(xenoTarget)) return if(xenoSrc.stat == DEAD) @@ -188,7 +208,7 @@ var/mob/living/carbon/xenomorph/xenoTarget = locate(params["target_ref"]) in GLOB.living_xeno_list var/mob/living/carbon/xenomorph/xenoSrc = ui.user - if(QDELETED(xenoTarget) || xenoTarget.stat == DEAD || is_admin_level(xenoTarget.z)) + if(QDELETED(xenoTarget) || xenoTarget.stat == DEAD || should_block_game_interaction(xenoTarget)) return if(xenoSrc.stat == DEAD) @@ -201,7 +221,7 @@ var/mob/living/carbon/xenomorph/xenoTarget = locate(params["target_ref"]) in GLOB.living_xeno_list var/mob/living/carbon/xenomorph/xenoSrc = ui.user - if(QDELETED(xenoTarget) || xenoTarget.stat == DEAD || is_admin_level(xenoTarget.z)) + if(QDELETED(xenoTarget) || xenoTarget.stat == DEAD || should_block_game_interaction(xenoTarget)) return if(xenoSrc.stat == DEAD) diff --git a/code/modules/mob/living/carbon/xenomorph/life.dm b/code/modules/mob/living/carbon/xenomorph/life.dm index f794c051dbff..1657d078ffda 100644 --- a/code/modules/mob/living/carbon/xenomorph/life.dm +++ b/code/modules/mob/living/carbon/xenomorph/life.dm @@ -61,7 +61,7 @@ evolution_stored += progress_amount /mob/living/carbon/xenomorph/proc/evolve_message() - to_chat(src, SPAN_XENODANGER("Your carapace crackles and your tendons strengthen. You are ready to evolve!")) //Makes this bold so the Xeno doesn't miss it + to_chat(src, SPAN_XENODANGER("Our carapace crackles and our tendons strengthen. We are ready to evolve!")) //Makes this bold so the Xeno doesn't miss it playsound_client(client, sound('sound/effects/xeno_evolveready.ogg')) var/datum/action/xeno_action/onclick/evolve/evolve_action = new() @@ -121,7 +121,7 @@ if(use_current_aura || use_leader_aura) for(var/mob/living/carbon/xenomorph/Z as anything in GLOB.living_xeno_list) - if(Z.ignores_pheromones || Z.ignore_aura == current_aura || Z.ignore_aura == leader_current_aura || Z.z != z || get_dist(aura_center, Z) > round(6 + aura_strength * 2) || !HIVE_ALLIED_TO_HIVE(Z.hivenumber, hivenumber)) + if(Z.ignores_pheromones || Z.ignore_aura == current_aura || Z.ignore_aura == leader_current_aura || Z.z != z || get_dist(aura_center, Z) > floor(6 + aura_strength * 2) || !HIVE_ALLIED_TO_HIVE(Z.hivenumber, hivenumber)) continue if(use_leader_aura) Z.affected_by_pheromones(leader_current_aura, leader_aura_strength) @@ -130,7 +130,8 @@ if(frenzy_aura != frenzy_new || warding_aura != warding_new || recovery_aura != recovery_new) frenzy_aura = frenzy_new - warding_aura = warding_new + if(health > crit_health || warding_new > warding_aura || !check_weeds_for_healing()) + warding_aura = warding_new recovery_aura = recovery_new recalculate_move_delay = TRUE hud_set_pheromone() @@ -200,7 +201,7 @@ blinded = TRUE set_stat(UNCONSCIOUS) else - if(!interference)//If their connection to hivemind is affected, their vision should be too. + if(!HAS_TRAIT(src, TRAIT_HIVEMIND_INTERFERENCE))//If their connection to hivemind is affected, their vision should be too. blinded = FALSE set_stat(CONSCIOUS) if(regular_update && halloss > 0) @@ -214,17 +215,16 @@ src.ReduceEyeBlur(1) handle_statuses()//natural decrease of stunned, knocked_down, etc... - handle_interference() return TRUE /mob/living/carbon/xenomorph/proc/handle_stomach_contents() //Deal with dissolving/damaging stuff in stomach. - if(stomach_contents.len) + if(length(stomach_contents)) for(var/atom/movable/M in stomach_contents) if(ishuman(M)) if(world.time > devour_timer - 50 && world.time < devour_timer - 30) - to_chat(src, SPAN_WARNING("You're about to regurgitate [M]...")) + to_chat(src, SPAN_WARNING("We're about to regurgitate [M]...")) playsound(loc, 'sound/voice/alien_drool1.ogg', 50, 1) var/mob/living/carbon/human/H = M if(world.time > devour_timer || (H.stat == DEAD && !H.chestburst)) @@ -232,7 +232,7 @@ M.acid_damage++ if(M.acid_damage > 300) - to_chat(src, SPAN_XENODANGER("\The [M] is dissolved in your gut with a gurgle.")) + to_chat(src, SPAN_XENODANGER("\The [M] is dissolved in our gut with a gurgle.")) stomach_contents.Remove(M) qdel(M) @@ -251,7 +251,7 @@ hud_used.alien_armor_display.icon_state = "armor_00" return TRUE - var/severity = HUD_PAIN_STATES_XENO - Ceiling(((max(health, 0) / maxHealth) * HUD_PAIN_STATES_XENO)) + var/severity = HUD_PAIN_STATES_XENO - ceil(((max(health, 0) / maxHealth) * HUD_PAIN_STATES_XENO)) if(severity) overlay_fullscreen("xeno_pain", /atom/movable/screen/fullscreen/xeno_pain, severity) else @@ -267,16 +267,11 @@ else if(client && !client.adminobs) reset_view(null) - if(dazed) - overlay_fullscreen("dazed", /atom/movable/screen/fullscreen/impaired, 5) - else - clear_fullscreen("dazed") - if(!hud_used) return TRUE if(hud_used.healths) - var/health_stacks = Ceiling((health / maxHealth) * HUD_HEALTH_STATES_XENO) + var/health_stacks = ceil((health / maxHealth) * HUD_HEALTH_STATES_XENO) hud_used.healths.icon_state = "health_[health_stacks]" if(health_stacks >= HUD_HEALTH_STATES_XENO) hud_used.healths.icon_state = "health_full" @@ -288,7 +283,7 @@ hud_used.alien_plasma_display.icon_state = "power_display_empty" else var/plasma_stacks = (get_plasma_percentage() * 0.01) * HUD_PLASMA_STATES_XENO - hud_used.alien_plasma_display.icon_state = "power_display_[Ceiling(plasma_stacks)]" + hud_used.alien_plasma_display.icon_state = "power_display_[ceil(plasma_stacks)]" if(plasma_stacks >= HUD_PLASMA_STATES_XENO) hud_used.alien_plasma_display.icon_state = "power_display_full" else if(plasma_stacks <= 0) @@ -296,10 +291,17 @@ if(hud_used.alien_armor_display) var/armor_stacks = min((get_armor_integrity_percentage() * 0.01) * HUD_ARMOR_STATES_XENO, HUD_ARMOR_STATES_XENO) - hud_used.alien_armor_display.icon_state = "armor_[Floor(armor_stacks)]0" + hud_used.alien_armor_display.icon_state = "armor_[floor(armor_stacks)]0" return TRUE +/mob/living/carbon/xenomorph/on_dazed_trait_gain(datum/source) + . = ..() + overlay_fullscreen("dazed", /atom/movable/screen/fullscreen/impaired, 5) +/mob/living/carbon/xenomorph/on_dazed_trait_loss(datum/source) + . = ..() + clear_fullscreen("dazed") + /*Heal 1/70th of your max health in brute per tick. 1 as a bonus, to help smaller pools. Additionally, recovery pheromones mutiply this base healing, up to 2.5 times faster at level 5 Modified via m, to multiply the number of wounds healed. @@ -339,7 +341,7 @@ Make sure their actual health updates immediately.*/ if(!hive) return // can't heal if you have no hive, sorry bud plasma_stored += plasma_gain * plasma_max / 100 if(recovery_aura) - plasma_stored += round(plasma_gain * plasma_max / 100 * recovery_aura/4) //Divided by four because it gets massive fast. 1 is equivalent to weed regen! Only the strongest pheromones should bypass weeds + plasma_stored += floor(plasma_gain * plasma_max / 100 * recovery_aura/4) //Divided by four because it gets massive fast. 1 is equivalent to weed regen! Only the strongest pheromones should bypass weeds if(health < maxHealth && !hardcore && is_hive_living(hive) && last_hit_time + caste.heal_delay_time <= world.time) if(body_position == LYING_DOWN || resting) if(health < 0) //Unconscious @@ -380,7 +382,7 @@ Make sure their actual health updates immediately.*/ plasma_stored = 0 if(current_aura) current_aura = null - to_chat(src, SPAN_WARNING("You have run out of pheromones and stopped emitting pheromones.")) + to_chat(src, SPAN_WARNING("We have run out of plasma and stopped emitting pheromones.")) for(var/X in actions) var/datum/action/A = X @@ -389,75 +391,58 @@ Make sure their actual health updates immediately.*/ hud_set_plasma() //update plasma amount on the plasma mob_hud /mob/living/carbon/xenomorph/proc/queen_locator() - if(!hud_used || !hud_used.locate_leader) + if(!hud_used?.locate_leader) return - var/atom/movable/screen/queen_locator/QL = hud_used.locate_leader - if(!loc) - QL.icon_state = "trackoff" + var/atom/movable/screen/queen_locator/locator = hud_used.locate_leader + if(!loc || !hive) + locator.reset_tracking() return var/atom/tracking_atom - switch(QL.track_state[1]) + switch(locator.tracker_type) if(TRACKER_QUEEN) - if(!hive || !hive.living_xeno_queen) - QL.icon_state = "trackoff" - return tracking_atom = hive.living_xeno_queen if(TRACKER_HIVE) - if(!hive || !hive.hive_location) - QL.icon_state = "trackoff" - return tracking_atom = hive.hive_location if(TRACKER_LEADER) - if(!QL.track_state[2]) - QL.icon_state = "trackoff" - return - - var/leader_tracker = QL.track_state[2] - - if(!hive || !hive.xeno_leader_list) - QL.icon_state = "trackoff" - return - if(leader_tracker > hive.xeno_leader_list.len) - QL.icon_state = "trackoff" - return - if(!hive.xeno_leader_list[leader_tracker]) - QL.icon_state = "trackoff" - return - tracking_atom = hive.xeno_leader_list[leader_tracker] + var/atom/leader = locator.tracking_ref?.resolve() + // If the leader exists, and is actually in the leader list. + if(leader && (leader in hive.xeno_leader_list)) + tracking_atom = leader if(TRACKER_TUNNEL) - if(!QL.track_state[2]) - QL.icon_state = "trackoff" - return + tracking_atom = locator.tracking_ref?.resolve() - var/tunnel_tracker = QL.track_state[2] + // If the atom can't be found/has been deleted. + if(!tracking_atom) + var/already_tracking_queen = (locator.tracker_type == TRACKER_QUEEN) - if(!hive || !hive.tunnels) - QL.icon_state = "trackoff" - return - if(tunnel_tracker > hive.tunnels.len) - QL.icon_state = "trackoff" - return - if(!hive.tunnels[tunnel_tracker]) - QL.icon_state = "trackoff" - return - tracking_atom = hive.tunnels[tunnel_tracker] + // Reset the tracker back to the queen. + locator.reset_tracking() - if(!tracking_atom) - QL.icon_state = "trackoff" + // If it wasn't the queen that couldn't be found above, try again with her as the target. + // This is just to avoid the tracker going blank for one life tick. + // (There's no risk of an infinite loop here since `locator.tracker_type` just got set to `TRACKER_QUEEN`.) + if(!already_tracking_queen) + queen_locator() return + if(tracking_atom.loc.z != loc.z && SSinterior.in_interior(tracking_atom)) + var/datum/interior/interior = SSinterior.get_interior_by_coords(tracking_atom.x, tracking_atom.y, tracking_atom.z) + var/atom/exterior = interior.exterior + if(exterior) + tracking_atom = exterior + if(tracking_atom.loc.z != loc.z || get_dist(src, tracking_atom) < 1 || src == tracking_atom) - QL.icon_state = "trackondirect" + locator.icon_state = "trackondirect" else - var/area/A = get_area(loc) - var/area/QA = get_area(tracking_atom.loc) - if(A.fake_zlevel == QA.fake_zlevel) - QL.setDir(Get_Compass_Dir(src, tracking_atom)) - QL.icon_state = "trackon" + var/area/our_area = get_area(loc) + var/area/target_area = get_area(tracking_atom.loc) + if(our_area.fake_zlevel == target_area.fake_zlevel) + locator.setDir(Get_Compass_Dir(src, tracking_atom)) + locator.icon_state = "trackon" else - QL.icon_state = "trackondirect" + locator.icon_state = "trackondirect" /mob/living/carbon/xenomorph/proc/mark_locator() if(!hud_used || !hud_used.locate_marker || !tracked_marker.loc || !loc) @@ -496,7 +481,7 @@ Make sure their actual health updates immediately.*/ if(status_flags & GODMODE) health = maxHealth set_stat(CONSCIOUS) - else if(xeno_shields.len != 0) + else if(length(xeno_shields) != 0) overlay_shields() health = maxHealth - getFireLoss() - getBruteLoss() else @@ -514,27 +499,27 @@ Make sure their actual health updates immediately.*/ if(hardcore) async_gib(last_damage_data) else if(world.time > next_grace_time && stat == CONSCIOUS) - var/grace_time = crit_grace_time > 0 ? crit_grace_time + (1 SECONDS * max(round(warding_aura - 1), 0)) : 0 + var/grace_time = crit_grace_time > 0 ? crit_grace_time + (1 SECONDS * max(floor(warding_aura - 1), 0)) : 0 if(grace_time) - sound_environment_override = SOUND_ENVIRONMENT_PSYCHOTIC addtimer(CALLBACK(src, PROC_REF(handle_crit)), grace_time) else handle_crit() next_grace_time = world.time + grace_time + blinded = stat == UNCONSCIOUS // Xenos do not go blind from other sources - still, replace that by a status_effect or trait when able if(!gibbing) med_hud_set_health() /mob/living/carbon/xenomorph/proc/handle_crit() - if(stat == DEAD || gibbing) - return + if(stat <= CONSCIOUS && !gibbing) + set_stat(UNCONSCIOUS) + SEND_SIGNAL(src, COMSIG_XENO_ENTER_CRIT) - sound_environment_override = SOUND_ENVIRONMENT_NONE - set_stat(UNCONSCIOUS) - blinded = TRUE - see_in_dark = 5 - if(layer != initial(layer)) //Unhide - layer = initial(layer) - recalculate_move_delay = TRUE +/mob/living/carbon/xenomorph/set_stat(new_stat) + . = ..() + // Temporarily force triggering HUD updates so they apply immediately rather than on Life tick. + // Remove this once effects have been ported to trait signals (blinded, dazed, etc) + if(stat != .) + handle_regular_hud_updates() /mob/living/carbon/xenomorph/proc/handle_luminosity() var/new_luminosity = 0 @@ -548,26 +533,18 @@ Make sure their actual health updates immediately.*/ else set_light_on(FALSE) -/mob/living/carbon/xenomorph/handle_stunned() - if(stunned) - adjust_effect(life_stun_reduction, STUN, EFFECT_FLAG_LIFE) - stun_callback_check() - - return stunned - -/mob/living/carbon/xenomorph/proc/handle_interference() - if(interference) - interference = max(interference-2, 0) - - if(observed_xeno && observed_xeno.interference) - overwatch(observed_xeno,TRUE) - - return interference - -/mob/living/carbon/xenomorph/handle_dazed() - if(dazed) - adjust_effect(life_daze_reduction, DAZE, EFFECT_FLAG_LIFE) - return dazed +/mob/living/carbon/xenomorph/GetStunDuration(amount) + amount *= 2 / 3 + return ..() +/mob/living/carbon/xenomorph/GetKnockDownDuration(amount) + amount *= 2 / 3 + return ..() +/mob/living/carbon/xenomorph/GetKnockOutDuration(amount) + amount *= 2 / 3 + return ..() +/mob/living/carbon/xenomorph/GetDazeDuration(amount) + amount *= 2 / 3 + return ..() /mob/living/carbon/xenomorph/handle_slowed() if(slowed) @@ -579,16 +556,6 @@ Make sure their actual health updates immediately.*/ adjust_effect(life_slow_reduction, SUPERSLOW, EFFECT_FLAG_LIFE) return superslowed -/mob/living/carbon/xenomorph/handle_knocked_down() - if(HAS_TRAIT(src, TRAIT_FLOORED)) - adjust_effect(life_knockdown_reduction, WEAKEN, EFFECT_FLAG_LIFE) - knocked_down_callback_check() - -/mob/living/carbon/xenomorph/handle_knocked_out() - if(HAS_TRAIT(src, TRAIT_KNOCKEDOUT)) - adjust_effect(life_knockout_reduction, PARALYZE, EFFECT_FLAG_LIFE) - knocked_out_callback_check() - //Returns TRUE if xeno is on weeds //Returns TRUE if xeno is off weeds AND doesn't need weeds for healing AND is not on Almayer UNLESS Queen is also on Almayer (aka - no solo Lurker Almayer hero) /mob/living/carbon/xenomorph/proc/check_weeds_for_healing() @@ -603,24 +570,3 @@ Make sure their actual health updates immediately.*/ if(hive && hive.living_xeno_queen && !is_mainship_level(hive.living_xeno_queen.loc.z) && is_mainship_level(loc.z)) return FALSE //We are on the ship, but the Queen isn't return TRUE //we have off-weed healing, and either we're on Almayer with the Queen, or we're on non-Almayer, or the Queen is dead, good enough! - - -#define XENO_TIMER_TO_EFFECT_CONVERSION (0.075) // (1.5/20) //once per 2 seconds, with 1.5 effect per that once - -// This is here because sometimes our stun comes too early and tick is about to start, so we need to compensate -// this is the best place to do it, tho name might be a bit misleading I guess -/mob/living/carbon/xenomorph/stun_clock_adjustment() - var/shift_left = (SSxeno.next_fire - world.time) * XENO_TIMER_TO_EFFECT_CONVERSION - if(stunned > shift_left) - stunned += SSxeno.wait * XENO_TIMER_TO_EFFECT_CONVERSION - shift_left - -/mob/living/carbon/xenomorph/knockdown_clock_adjustment() - var/shift_left = (SSxeno.next_fire - world.time) * XENO_TIMER_TO_EFFECT_CONVERSION - if(knocked_down > shift_left) - knocked_down += SSxeno.wait * XENO_TIMER_TO_EFFECT_CONVERSION - shift_left - -/mob/living/carbon/xenomorph/knockout_clock_adjustment() - var/shift_left = (SSxeno.next_fire - world.time) * XENO_TIMER_TO_EFFECT_CONVERSION - if(knocked_out > shift_left) - knocked_out += SSxeno.wait * XENO_TIMER_TO_EFFECT_CONVERSION - shift_left - diff --git a/code/modules/mob/living/carbon/xenomorph/mark_menu.dm b/code/modules/mob/living/carbon/xenomorph/mark_menu.dm index 5f7c1f8bc8c8..dd63f8a4fa70 100644 --- a/code/modules/mob/living/carbon/xenomorph/mark_menu.dm +++ b/code/modules/mob/living/carbon/xenomorph/mark_menu.dm @@ -180,7 +180,7 @@ var/list/possible_xenos = list() possible_xenos |= FunkTownOhyea for(var/mob/living/carbon/xenomorph/T in GLOB.living_xeno_list) - if (T != X && !is_admin_level(T.z) && X.hivenumber == T.hivenumber) + if (T != X && !should_block_game_interaction(T) && X.hivenumber == T.hivenumber) possible_xenos += T var/mob/living/carbon/xenomorph/selected_xeno = tgui_input_list(X, "Target", "Watch which xenomorph?", possible_xenos, theme="hive_status") @@ -195,7 +195,7 @@ . = TRUE update_all_data() return - if (!selected_xeno || QDELETED(selected_xeno) || selected_xeno.stat == DEAD || is_admin_level(selected_xeno.z) || !X.check_state(1)) + if (!selected_xeno || QDELETED(selected_xeno) || selected_xeno.stat == DEAD || should_block_game_interaction(selected_xeno) || !X.check_state(1)) return else selected_xeno.stop_tracking_resin_mark(FALSE, TRUE) diff --git a/code/modules/mob/living/carbon/xenomorph/mutators/mutator.dm b/code/modules/mob/living/carbon/xenomorph/mutators/mutator.dm deleted file mode 100644 index 6736bdb0419b..000000000000 --- a/code/modules/mob/living/carbon/xenomorph/mutators/mutator.dm +++ /dev/null @@ -1,103 +0,0 @@ -#define MUTATOR_COST_CHEAP 2 -#define MUTATOR_COST_MODERATE 3 -#define MUTATOR_COST_EXPENSIVE 1 - -//Individual mutator -/datum/xeno_mutator - var/name = "Mutator name" //Name of the mutator, should be short but informative - var/description = "Mutator description" //Description to be displayed on purchase - var/flavor_description = null // Optional flavor text to be shown. Semi-OOC - var/cost = MUTATOR_COST_CHEAP //How expensive the mutator is - var/required_level = 0 //Level of xeno upgrade required to unlock - var/unique = TRUE //True if you can only buy it once - var/death_persistent = FALSE //True if the mutators persists after Queen death (aka, mostly for "once ever" mutators) - var/hive_only = FALSE //Hive-only mutators - var/individual_only = FALSE //Individual-only mutators - var/keystone = FALSE //Xeno can only take one Keystone mutator - var/flaw = FALSE //Flaws give you points back, but you can only take one of them - var/list/caste_whitelist = list() //List of the only castes that can buy this mutator - - // Rework by Fourkhan - 4/26/19, redone again c. 2/2020 - // HOW TO ADD A NEW MUTATOR - // Step 0: Write an action(s) - // the "handler" procs go in the appropriate caste's subfolder under the "ABILITIES" file. - // the actual ACTION procs go in the appropriate caste's subfolder under the "POWERS" file. - // Any constants you need to access for your strain should be in the behavior holder and - // accessed using a cast to it using the mutator_type variable as defined below. (Or using an istype of the behavior holder) - // vars that absolutely must be held on the xenos themselves can be added to the Xenomorph class itself. - // Be sure to follow the spec in xeno_action.dm as far as setting up xeno_cooldown is concerned. - // - // Step 1: Write the Behavior Delegate datum IF NECESSARY - // the "behavior holder" datum defines all unique behavior and state for each xeno/strain. It works by embedding a number of 'hooks' - // for example, if you want to store bonus damage and apply it on slashes, behavior delegates are the way to do it. - // in common procs that call back to Xeno features. See other behavior delegates for examples. Afterward, set the behavior_delegate_type - // var on the strain datum to indicate which behavior holder to apply to your strain. - // - // Step 1: Copy/paste another datum definiton and edit it for your strain - // make sure to populate each of the variables listed above (at least as much as other strains) - // - // Step 2: Write the apply_mutator proc. - // FIRST: populate mutator_actions_to_add and mutator_actions_to_remove according to that documentation. - // THEN: write the body of the apply_mutator method according to your speficiations - // THEN: call mutator_update_actions on your xeno - // call recalculate actions on your mutator set (this should be auto populated) - // You should probably also call recalculate_everything() on the host Xeno to make sure you don't end up with any - // strange transient values. - // THEN: Set the mutation_type var on the host xeno to "name" the strain. - // FINALLY: Call apply_behavior_holder() to add the behavior datum to the new Xeno. - // - // You're done! - - // Both should be set to null when their use is not necessary. - /// A list of PATHS of actions that need to be removed when a xeno takes the mutator. - var/list/mutator_actions_to_remove //Actions to remove when the mutator is added - /// A list of PATHS of actions to be ADDED when the Xeno takes the mutator. - var/list/mutator_actions_to_add //Actions to add when the mutator is added - - // Type of the behavior datum to add - var/behavior_delegate_type = null // Specify this on subtypes - -/datum/xeno_mutator/New() - . = ..() - name = "[name]" - - -/datum/xeno_mutator/proc/apply_mutator(datum/mutator_set/MS) - if(!MS.can_purchase_mutator(name)) - return FALSE - if(MS.remaining_points < cost) - return FALSE - MS.remaining_points -= cost - MS.purchased_mutators += name - - if(istype(MS, /datum/mutator_set/individual_mutators)) - var/datum/mutator_set/individual_mutators/IS = MS - if(IS.xeno) - IS.xeno.hive.hive_ui.update_xeno_info() - - return TRUE - -// Sets up actions for when a mutator is taken -// Must be called at the end of any mutator that changes available actions -// (read: Strains) apply_mutator proc for the mutator to work correctly. -/datum/xeno_mutator/proc/mutator_update_actions(mob/living/carbon/xenomorph/X) - if(mutator_actions_to_remove) - for(var/action_path in mutator_actions_to_remove) - remove_action(X, action_path) - if(mutator_actions_to_add) - for(var/action_path in mutator_actions_to_add) - give_action(X, action_path) - -// Substitutes the existing behavior delegate for the strain-defined one. -/datum/xeno_mutator/proc/apply_behavior_holder(mob/living/carbon/xenomorph/X) - if (!istype(X)) - log_debug("Null mob handed to apply_behavior_holder. Tell the devs.") - log_admin("Null mob handed to apply_behavior_holder. Tell the devs.") - message_admins("Null mob handed to apply_behavior_holder. Tell the devs.") - - if (behavior_delegate_type) - if(X.behavior_delegate) - qdel(X.behavior_delegate) - X.behavior_delegate = new behavior_delegate_type() - X.behavior_delegate.bound_xeno = X - X.behavior_delegate.add_to_xeno() diff --git a/code/modules/mob/living/carbon/xenomorph/mutators/strains/defender/steel_crest.dm b/code/modules/mob/living/carbon/xenomorph/mutators/strains/defender/steel_crest.dm deleted file mode 100644 index 957e7f1b8926..000000000000 --- a/code/modules/mob/living/carbon/xenomorph/mutators/strains/defender/steel_crest.dm +++ /dev/null @@ -1,44 +0,0 @@ -/datum/xeno_mutator/steel_crest - name = "STRAIN: Defender - Steel Crest" - description = "You trade your tail sweep and a small amount of your slash damage for slightly increased headbutt knockback and damage and the ability to slowly move and headbutt while fortified. Along with this, you gain a unique ability to accumulate damage, and use it to recover a slight amount of health and refresh your tail slam." - flavor_description = "To handle yourself, use your head. To handle others, use your head." - cost = MUTATOR_COST_EXPENSIVE - individual_only = TRUE - caste_whitelist = list(XENO_CASTE_DEFENDER) - mutator_actions_to_remove = list( - /datum/action/xeno_action/onclick/tail_sweep, - ) - mutator_actions_to_add = list( - /datum/action/xeno_action/onclick/soak, - ) - behavior_delegate_type = /datum/behavior_delegate/defender_steel_crest - keystone = TRUE - -/datum/xeno_mutator/steel_crest/apply_mutator(datum/mutator_set/individual_mutators/mutator_set) - . = ..() - if (. == 0) - return - - var/mob/living/carbon/xenomorph/defender/defender = mutator_set.xeno - defender.mutation_type = DEFENDER_STEELCREST - defender.mutation_icon_state = DEFENDER_STEELCREST - defender.damage_modifier -= XENO_DAMAGE_MOD_VERY_SMALL - if(defender.fortify) - defender.ability_speed_modifier += 2.5 - mutator_update_actions(defender) - mutator_set.recalculate_actions(description, flavor_description) - defender.recalculate_stats() - -/datum/behavior_delegate/defender_steel_crest - name = "Steel Crest Defender Behavior Delegate" - -/datum/behavior_delegate/defender_steel_crest/on_update_icons() - if(bound_xeno.stat == DEAD) - return - - if(bound_xeno.fortify) - bound_xeno.icon_state = "[bound_xeno.mutation_icon_state || bound_xeno.mutation_type] Steelcrest Defender Fortify" - return TRUE - if(bound_xeno.crest_defense) - bound_xeno.icon_state = "[bound_xeno.mutation_icon_state || bound_xeno.mutation_type] Steelcrest Defender Crest" - return TRUE diff --git a/code/modules/mob/living/carbon/xenomorph/mutators/strains/drone/healer.dm b/code/modules/mob/living/carbon/xenomorph/mutators/strains/drone/healer.dm deleted file mode 100644 index 2e562ceac6a9..000000000000 --- a/code/modules/mob/living/carbon/xenomorph/mutators/strains/drone/healer.dm +++ /dev/null @@ -1,175 +0,0 @@ -/datum/xeno_mutator/healer - name = "STRAIN: Drone - Healer" - description = "You lose your choice of resin secretions, a chunk of your slash damage, and you will experience a slighty-increased difficulty in tackling tallhosts in exchange for strong pheromones, the ability to use a bit of your health to plant a maximum of three lesser resin fruits, and the ability to heal your sisters' wounds by secreting a regenerative resin salve by using your vital fluids and a fifth of your plasma. Be wary, this is a dangerous process; overexert yourself and you may exhaust yourself to unconsciousness, or die..." - flavor_description = "To the very last drop, your blood belongs to The Hive; share it with your sisters to keep them fighting." - cost = MUTATOR_COST_EXPENSIVE - individual_only = TRUE - caste_whitelist = list(XENO_CASTE_DRONE) //Only drone. - mutator_actions_to_remove = list( - /datum/action/xeno_action/activable/secrete_resin, - /datum/action/xeno_action/onclick/choose_resin, - /datum/action/xeno_action/activable/transfer_plasma, - ) - mutator_actions_to_add = list( - /datum/action/xeno_action/onclick/plant_resin_fruit, // Second macro. Resin fruits belong to Gardener, but Healer has a minor variant. - /datum/action/xeno_action/activable/apply_salve, //Third macro, heal over time ability. - /datum/action/xeno_action/activable/transfer_plasma/healer, //Fourth macro, an improved plasma transfer. - ) - keystone = TRUE - behavior_delegate_type = /datum/behavior_delegate/drone_healer - - -/datum/xeno_mutator/healer/apply_mutator(datum/mutator_set/individual_mutators/mutator_set) - . = ..() - if (. == 0) - return - - var/mob/living/carbon/xenomorph/drone/drone = mutator_set.xeno - drone.mutation_type = DRONE_HEALER - drone.phero_modifier += XENO_PHERO_MOD_LARGE - drone.plasma_types += PLASMA_PHEROMONE - drone.damage_modifier -= XENO_DAMAGE_MOD_VERY_SMALL - - drone.max_placeable = 3 - drone.available_fruits = list(/obj/effect/alien/resin/fruit) - drone.selected_fruit = /obj/effect/alien/resin/fruit - drone.tackle_chance_modifier -= 5 - mutator_update_actions(drone) - apply_behavior_holder(drone) - mutator_set.recalculate_actions(description, flavor_description) - drone.recalculate_health() - drone.recalculate_damage() - drone.recalculate_pheromones() - drone.recalculate_tackle() - -/* - Improved Plasma Transfer -*/ - -/datum/action/xeno_action/activable/transfer_plasma/healer //Improved plasma transfer, but not as much as Hivey. - ability_primacy = XENO_PRIMARY_ACTION_4 - plasma_transfer_amount = 100 - transfer_delay = 15 - max_range = 1 - -/* - Apply Resin Salve -*/ - -/datum/action/xeno_action/activable/apply_salve - name = "Apply Resin Salve" - action_icon_state = "apply_salve" - ability_name = "Apply Resin Salve" - var/health_transfer_amount = 100 - var/max_range = 1 - var/damage_taken_mod = 0.75 - macro_path = /datum/action/xeno_action/verb/verb_apply_salve - action_type = XENO_ACTION_CLICK - ability_primacy = XENO_PRIMARY_ACTION_3 - -/datum/action/xeno_action/activable/apply_salve/use_ability(atom/target_atom) - var/mob/living/carbon/xenomorph/xeno = owner - xeno.xeno_apply_salve(target_atom, health_transfer_amount, max_range, damage_taken_mod) - return ..() - -/datum/action/xeno_action/verb/verb_apply_salve() - set category = "Alien" - set name = "Apply Resin Salve" - set hidden = TRUE - var/action_name = "Apply Resin Salve" - handle_xeno_macro(src, action_name) - -/mob/living/carbon/xenomorph/proc/xeno_apply_salve(mob/living/carbon/xenomorph/target_xeno, amount = 100, max_range = 1, damage_taken_mod = 0.75) - - if(!check_plasma(amount * 2)) - return - - if(!istype(target_xeno)) - return - - if(target_xeno == src) - to_chat(src, SPAN_XENOWARNING("You can't heal yourself with your own resin salve!")) - return - - if(!check_state()) - return - - if(SEND_SIGNAL(target_xeno, COMSIG_XENO_PRE_HEAL) & COMPONENT_CANCEL_XENO_HEAL) - to_chat(src, SPAN_XENOWARNING("Extinguish [target_xeno] first or the flames will burn your resin salve away!")) - return - - if(!can_not_harm(target_xeno)) //We don't wanna heal hostile hives, but we do want to heal our allies! - to_chat(src, SPAN_XENOWARNING("[target_xeno] is hostile to your hive! Go find one of your sisters or allies!")) - return - - if(!isturf(loc)) - to_chat(src, SPAN_XENOWARNING("You can't apply your resin salve from here!")) - return - - if(get_dist(src, target_xeno) > max_range) - to_chat(src, SPAN_XENOWARNING("You need to be closer to [target_xeno] to apply your resin salve!")) - return - - if(target_xeno.stat == DEAD) - to_chat(src, SPAN_XENOWARNING("[target_xeno] is dead!")) - return - - if(target_xeno.health >= target_xeno.maxHealth) - to_chat(src, SPAN_XENOWARNING("[target_xeno] is already at max health!")) - return - -///Tiny xenos (Larva and Facehuggers), don't need as much health so don't cost as much. - if(target_xeno.mob_size == 0) - amount = amount * 0.15 - damage_taken_mod = 1 - -//Forces an equivalent exchange of health between healers so they do not spam heal each other to full health. - if(target_xeno.mutation_type == DRONE_HEALER) - damage_taken_mod = 1 - - face_atom(target_xeno) - adjustBruteLoss(amount * damage_taken_mod) - use_plasma(amount * 2) - updatehealth() - new /datum/effects/heal_over_time(target_xeno, amount, 10, 1) - target_xeno.xeno_jitter(1 SECONDS) - target_xeno.flick_heal_overlay(10 SECONDS, "#00be6f") - to_chat(target_xeno, SPAN_XENOWARNING("[src] covers your wounds with a regenerative resin salve. You feel reinvigorated!")) - to_chat(src, SPAN_XENOWARNING("You regurgitate your vital fluids and some plasma to create a regenerative resin salve and apply it to [target_xeno]'s wounds. You feel weakened...")) - playsound(src, "alien_drool", 25) - var/datum/behavior_delegate/drone_healer/healer_delegate = src.behavior_delegate - healer_delegate.salve_applied_recently = TRUE - update_icons() - addtimer(CALLBACK(healer_delegate, /datum/behavior_delegate/drone_healer/proc/un_salve), 10 SECONDS, TIMER_OVERRIDE|TIMER_UNIQUE) - -/datum/behavior_delegate/drone_healer - name = "Healer Drone Behavior Delegate" - - var/salve_applied_recently = FALSE - var/mutable_appearance/salve_applied_icon - -/datum/behavior_delegate/drone_healer/on_update_icons() - if(!salve_applied_icon) - salve_applied_icon = mutable_appearance('icons/mob/xenos/drone_strain_overlays.dmi',"Healer Drone Walking") - - bound_xeno.overlays -= salve_applied_icon - salve_applied_icon.overlays.Cut() - - if(!salve_applied_recently) - return - - if(bound_xeno.stat == DEAD) - salve_applied_icon.icon_state = "Healer Drone Dead" - else if(bound_xeno.body_position == LYING_DOWN) - if(!HAS_TRAIT(bound_xeno, TRAIT_INCAPACITATED) && !HAS_TRAIT(bound_xeno, TRAIT_FLOORED)) - salve_applied_icon.icon_state = "Healer Drone Sleeping" - else - salve_applied_icon.icon_state = "Healer Drone Knocked Down" - else - salve_applied_icon.icon_state = "Healer Drone Walking" - - bound_xeno.overlays += salve_applied_icon - -/datum/behavior_delegate/drone_healer/proc/un_salve() - salve_applied_recently = FALSE - bound_xeno.update_icons() diff --git a/code/modules/mob/living/carbon/xenomorph/mutators/strains/hivelord/resin_whisperer.dm b/code/modules/mob/living/carbon/xenomorph/mutators/strains/hivelord/resin_whisperer.dm deleted file mode 100644 index 3200fd0da4a1..000000000000 --- a/code/modules/mob/living/carbon/xenomorph/mutators/strains/hivelord/resin_whisperer.dm +++ /dev/null @@ -1,123 +0,0 @@ -/datum/xeno_mutator/resinwhisperer - name = "STRAIN: Hivelord - Resin Whisperer" - description = "You lose your corrosive acid, your ability to secrete thick resin, your ability to reinforce resin secretions, sacrifice your ability to plant resin nodes outside of weeds, and you sacrifice a fifth of your plasma reserves to enhance your vision and gain a stronger connection to the resin. You can now remotely place resin secretions including resin nodes up to a distance of twelve paces!" - flavor_description = "Let the resin guide you. It whispers, so listen closely." - cost = MUTATOR_COST_EXPENSIVE - individual_only = TRUE - caste_whitelist = list(XENO_CASTE_HIVELORD) - mutator_actions_to_remove = list( - /datum/action/xeno_action/onclick/plant_weeds, - /datum/action/xeno_action/activable/secrete_resin/hivelord, - /datum/action/xeno_action/activable/corrosive_acid, - /datum/action/xeno_action/activable/transfer_plasma/hivelord, - /datum/action/xeno_action/active_toggle/toggle_speed, - ) - mutator_actions_to_add = list( - /datum/action/xeno_action/activable/secrete_resin/remote, //third macro - /datum/action/xeno_action/activable/transfer_plasma/hivelord, // readding it so it gets at the end of the ability list - /datum/action/xeno_action/active_toggle/toggle_speed, // readding it so it gets at the end of the ability list - ) - keystone = TRUE - -/datum/xeno_mutator/resinwhisperer/apply_mutator(datum/mutator_set/individual_mutators/mutator_set) - . = ..() - if(!.) - return - - var/mob/living/carbon/xenomorph/hivelord/hivelord = mutator_set.xeno - hivelord.plasmapool_modifier = 0.8 // -20% plasma pool - hivelord.extra_build_dist = 12 // 1 + 12 = 13 tile build range - hivelord.can_stack_builds = TRUE - - hivelord.client.change_view(10, src) - - hivelord.mutation_type = HIVELORD_RESIN_WHISPERER - mutator_update_actions(hivelord) - mutator_set.recalculate_actions(description, flavor_description) - hivelord.recalculate_plasma() - - hivelord.set_resin_build_order(GLOB.resin_build_order_hivelord_whisperer) - for(var/datum/action/xeno_action/action in hivelord.actions) - // Also update the choose_resin icon since it resets - if(istype(action, /datum/action/xeno_action/onclick/choose_resin)) - var/datum/action/xeno_action/onclick/choose_resin/choose_resin_ability = action - if(choose_resin_ability) - choose_resin_ability.update_button_icon(hivelord.selected_resin) - break // Don't need to keep looking - -/* - * Coerce Resin ability - */ - -// Remote resin building -/datum/action/xeno_action/activable/secrete_resin/remote - name = "Coerce Resin (100)" - action_icon_state = "secrete_resin" - ability_name = "coerce resin" - var/last_use = 0 - xeno_cooldown = 1 SECONDS - thick = FALSE - make_message = FALSE - - no_cooldown_msg = TRUE - - var/care_about_adjacency = TRUE - build_speed_mod = 2 // the actual building part takes twice as long - - macro_path = /datum/action/xeno_action/verb/verb_coerce_resin - action_type = XENO_ACTION_CLICK - -/datum/action/xeno_action/activable/secrete_resin/remote/use_ability(atom/target_atom, mods) - var/mob/living/carbon/xenomorph/xeno_owner = owner - if(xeno_owner.mutation_type == HIVELORD_RESIN_WHISPERER) - var/mob/living/carbon/xenomorph/hivelord/hivelord_mob = owner - if(!hivelord_mob.on_weeds()) // There is a chance that queen can't place down buildings in ovi build view so we place the rein whisperer check here. - to_chat(owner, SPAN_XENONOTICE("We must be standing on weeds to establish a connection to the resin.")) - return - - if(!action_cooldown_check()) - return - - if(mods["click_catcher"]) - return - - var/turf/target_turf = get_turf(target_atom) - if(!target_turf) - return - - /// Check if the target is a resin door and open or close it - if(istype(target_atom, /obj/structure/mineral_door/resin)) - var/obj/structure/mineral_door/resin/resin_door = target_atom - resin_door.TryToSwitchState(owner) - if(resin_door.state) - to_chat(owner, SPAN_XENONOTICE("You focus your connection to the resin and remotely close the resin door.")) - else - to_chat(owner, SPAN_XENONOTICE("You focus your connection to the resin and remotely open the resin door.")) - return - - // since actions are instanced per hivelord, and only one construction can be made at a time, tweaking the datum on the fly here is fine. you're going to have to figure something out if these conditions change, though - if(care_about_adjacency) - if(owner.Adjacent(target_turf)) - build_speed_mod = 1 - else - build_speed_mod = initial(build_speed_mod) - - var/mob/living/carbon/xenomorph/hivelord = owner - if(!..()) - return - - if(!hivelord.selected_resin) - return - - var/datum/resin_construction/resing_construction = GLOB.resin_constructions_list[hivelord.selected_resin] - target_turf.visible_message(SPAN_XENONOTICE("The weeds begin pulsating wildly and secrete resin in the shape of \a [resing_construction.construction_name]!"), null, 5) - to_chat(owner, SPAN_XENONOTICE("You focus your plasma into the weeds below you and force the weeds to secrete resin in the shape of \a [resing_construction.construction_name].")) - playsound(target_turf, "alien_resin_build", 25) - return TRUE - -/datum/action/xeno_action/verb/verb_coerce_resin() - set category = "Alien" - set name = "Coerce Resin" - set hidden = TRUE - var/action_name = "Coerce Resin (150)" - handle_xeno_macro(src, action_name) diff --git a/code/modules/mob/living/carbon/xenomorph/mutators/strains/lurker/vampire.dm b/code/modules/mob/living/carbon/xenomorph/mutators/strains/lurker/vampire.dm deleted file mode 100644 index 72214d06332e..000000000000 --- a/code/modules/mob/living/carbon/xenomorph/mutators/strains/lurker/vampire.dm +++ /dev/null @@ -1,40 +0,0 @@ - -/datum/xeno_mutator/Vampire - name = "STRAIN: Lurker - Vampire" - description = "You lose all of your abilities and you forefeit a chunk of your health and damage in exchange for a large amount of armor, a little bit of movement speed, increased attack speed, and brand new abilities that make you an assassin. Rush on your opponent to disorient them and Flurry to unleash a forward cleave that can hit and slow three talls and heal you for every tall you hit. Use your special AoE Tail Jab to knock talls away, doing more damage with direct hits and even more damage and a stun if they smack into walls. Finally, execute unconscious talls with a headbite that bypasses armor and heals you for a grand amount of health." - flavor_description = "Your thirst for tallhost blood surpasses even mine, child. Show no mercy! Slaughter them all!" - cost = MUTATOR_COST_EXPENSIVE - individual_only = TRUE - caste_whitelist = list(XENO_CASTE_LURKER) - mutator_actions_to_remove = list( - /datum/action/xeno_action/onclick/lurker_invisibility, - /datum/action/xeno_action/onclick/lurker_assassinate, - /datum/action/xeno_action/activable/pounce/lurker, - ) - mutator_actions_to_add = list( - /datum/action/xeno_action/activable/pounce/rush, - /datum/action/xeno_action/activable/flurry, - /datum/action/xeno_action/activable/tail_jab, - /datum/action/xeno_action/activable/headbite, - ) - keystone = TRUE - -/datum/xeno_mutator/Vampire/apply_mutator(datum/mutator_set/individual_mutators/mutator_set) - . = ..() - if (. == FALSE) - return - - var/mob/living/carbon/xenomorph/lurker/lurker = mutator_set.xeno - - lurker.plasmapool_modifier = 0 - lurker.health_modifier -= XENO_HEALTH_MOD_MED - lurker.speed_modifier += XENO_SPEED_FASTMOD_TIER_1 - lurker.armor_modifier += XENO_ARMOR_MOD_LARGE - lurker.melee_damage_lower = XENO_DAMAGE_TIER_3 - lurker.melee_damage_upper = XENO_DAMAGE_TIER_3 - lurker.attack_speed_modifier -= 2 - - mutator_update_actions(lurker) - mutator_set.recalculate_actions(description, flavor_description) - lurker.recalculate_everything() - lurker.mutation_type = LURKER_VAMPIRE diff --git a/code/modules/mob/living/carbon/xenomorph/mutators/strains/praetorian/dancer.dm b/code/modules/mob/living/carbon/xenomorph/mutators/strains/praetorian/dancer.dm deleted file mode 100644 index a21f549ea8cd..000000000000 --- a/code/modules/mob/living/carbon/xenomorph/mutators/strains/praetorian/dancer.dm +++ /dev/null @@ -1,71 +0,0 @@ -/datum/xeno_mutator/praetorian_dancer - // My name is Cuban Pete, I'm the King of the Rumba Beat - name = "STRAIN: Praetorian - Dancer" - description = "You lose all of your acid-based abilities and a small amount of your armor in exchange for increased movement speed, evasion, and unparalleled agility that gives you an ability to move even more quickly, dodge bullets, and phase through tallhosts. By slashing tallhosts, you temporarily increase your movement speed and you also you apply a tag that changes how your two new tail abilities function. By tagging hosts, you will make Impale hit twice instead of once and make Tail Trip knock hosts down instead of stunning them." - flavor_description = "Demonstrate to the talls what 'there is beauty in death' truly symbolizes, then dance upon their graves!" - cost = MUTATOR_COST_EXPENSIVE - individual_only = TRUE - caste_whitelist = list(XENO_CASTE_PRAETORIAN) // Only bae - mutator_actions_to_remove = list( - /datum/action/xeno_action/activable/xeno_spit, - /datum/action/xeno_action/activable/pounce/base_prae_dash, - /datum/action/xeno_action/activable/prae_acid_ball, - /datum/action/xeno_action/activable/spray_acid/base_prae_spray_acid, - ) - mutator_actions_to_add = list( - /datum/action/xeno_action/activable/prae_impale, - /datum/action/xeno_action/onclick/prae_dodge, - /datum/action/xeno_action/activable/prae_tail_trip, - ) - behavior_delegate_type = /datum/behavior_delegate/praetorian_dancer - keystone = TRUE - -/datum/xeno_mutator/praetorian_dancer/apply_mutator(datum/mutator_set/individual_mutators/mutator_set) - . = ..() - if (. == 0) - return - - var/mob/living/carbon/xenomorph/praetorian/praetorian = mutator_set.xeno - praetorian.armor_modifier -= XENO_ARMOR_MOD_VERY_SMALL - praetorian.speed_modifier += XENO_SPEED_FASTMOD_TIER_5 - praetorian.plasma_types = list(PLASMA_CATECHOLAMINE) - praetorian.claw_type = CLAW_TYPE_SHARP - - mutator_update_actions(praetorian) - mutator_set.recalculate_actions(description, flavor_description) - - praetorian.recalculate_everything() - - apply_behavior_holder(praetorian) - praetorian.mutation_icon_state = PRAETORIAN_DANCER - praetorian.mutation_type = PRAETORIAN_DANCER - -/datum/behavior_delegate/praetorian_dancer - name = "Praetorian Dancer Behavior Delegate" - - var/evasion_buff_amount = 40 - var/evasion_buff_ttl = 25 // 2.5 seconds seems reasonable - - // State - var/next_slash_buffed = FALSE - var/slash_evasion_buffed = FALSE - var/slash_evasion_timer = TIMER_ID_NULL - var/dodge_activated = FALSE - - -/datum/behavior_delegate/praetorian_dancer/melee_attack_additional_effects_target(mob/living/carbon/target_carbon) - if (!isxeno_human(target_carbon)) - return - - if (target_carbon.stat) - return - - // Clean up all tags to 'refresh' our TTL - for (var/datum/effects/dancer_tag/target_tag in target_carbon.effects_list) - qdel(target_tag) - - new /datum/effects/dancer_tag(target_carbon, bound_xeno, , , 35) - - if(ishuman(target_carbon)) - var/mob/living/carbon/human/target_human = target_carbon - target_human.update_xeno_hostile_hud() diff --git a/code/modules/mob/living/carbon/xenomorph/mutators/strains/praetorian/oppressor.dm b/code/modules/mob/living/carbon/xenomorph/mutators/strains/praetorian/oppressor.dm deleted file mode 100644 index 4beaedf8d6a8..000000000000 --- a/code/modules/mob/living/carbon/xenomorph/mutators/strains/praetorian/oppressor.dm +++ /dev/null @@ -1,63 +0,0 @@ -/datum/xeno_mutator/praetorian_oppressor - // Dread it, run from it, destiny still arrives... or should I say, I do - name = "STRAIN: Praetorian - Oppressor" - description = "You abandon all of your acid-based abilities, your dash, some speed, and a bit of your slash damage for some resistance against small explosives, slashes that deal extra damage to prone targets, and a powerful hook ability that pulls up to three talls towards you, slows them, and has varying effects depending on how many talls you pull. You also gain a powerful punch that reduces your other abilities' cooldowns, pierces through armor, and does double damage in addition to rooting slowed targets. You can also knock talls back and slow them with your new Tail Lash and quickly grab a tall, slow it, and pull it towards you with your unique Tail Stab." - flavor_description = "Dread it. Run from it. The Hive arrives all the same, or, more accurately, you do." - cost = MUTATOR_COST_EXPENSIVE - individual_only = TRUE - caste_whitelist = list(XENO_CASTE_PRAETORIAN) - mutator_actions_to_remove = list( - /datum/action/xeno_action/activable/tail_stab, - /datum/action/xeno_action/activable/xeno_spit, - /datum/action/xeno_action/activable/pounce/base_prae_dash, - /datum/action/xeno_action/activable/prae_acid_ball, - /datum/action/xeno_action/activable/spray_acid/base_prae_spray_acid, - /datum/action/xeno_action/activable/corrosive_acid, - ) - mutator_actions_to_add = list( - /datum/action/xeno_action/activable/tail_stab/tail_seize, - /datum/action/xeno_action/activable/prae_abduct, - /datum/action/xeno_action/activable/oppressor_punch, - /datum/action/xeno_action/activable/tail_lash, - ) - behavior_delegate_type = /datum/behavior_delegate/oppressor_praetorian - keystone = TRUE - -/datum/xeno_mutator/praetorian_oppressor/apply_mutator(datum/mutator_set/individual_mutators/mutator_set) - . = ..() - if (. == 0) - return - - var/mob/living/carbon/xenomorph/praetorian/praetorian = mutator_set.xeno - - praetorian.damage_modifier -= XENO_DAMAGE_MOD_SMALL - praetorian.explosivearmor_modifier += XENO_EXPOSIVEARMOR_MOD_SMALL - praetorian.small_explosives_stun = FALSE - praetorian.speed_modifier += XENO_SPEED_SLOWMOD_TIER_5 - praetorian.plasma_types = list(PLASMA_NEUROTOXIN, PLASMA_CHITIN) - praetorian.claw_type = CLAW_TYPE_SHARP - - mutator_update_actions(praetorian) - - mutator_set.recalculate_actions(description, flavor_description) - - apply_behavior_holder(praetorian) - - praetorian.recalculate_everything() - praetorian.mutation_icon_state = PRAETORIAN_OPPRESSOR - praetorian.mutation_type = PRAETORIAN_OPPRESSOR - -/datum/behavior_delegate/oppressor_praetorian - name = "Oppressor Praetorian Behavior Delegate" - var/tearing_damage = 15 - -/datum/behavior_delegate/oppressor_praetorian/melee_attack_additional_effects_target(mob/living/carbon/target_carbon) - if(target_carbon.stat == DEAD) - return - - // impaired in some capacity - if(!(target_carbon.mobility_flags & MOBILITY_STAND) || !(target_carbon.mobility_flags & MOBILITY_MOVE) || target_carbon.slowed) - target_carbon.apply_armoured_damage(get_xeno_damage_slash(target_carbon, tearing_damage), ARMOR_MELEE, BRUTE, bound_xeno.zone_selected ? bound_xeno.zone_selected : "chest") - target_carbon.visible_message(SPAN_DANGER("[bound_xeno] tears into [target_carbon]!")) - playsound(bound_xeno, 'sound/weapons/alien_tail_attack.ogg', 25, TRUE) - diff --git a/code/modules/mob/living/carbon/xenomorph/mutators/strains/praetorian/vanguard.dm b/code/modules/mob/living/carbon/xenomorph/mutators/strains/praetorian/vanguard.dm deleted file mode 100644 index 8e6fbd203805..000000000000 --- a/code/modules/mob/living/carbon/xenomorph/mutators/strains/praetorian/vanguard.dm +++ /dev/null @@ -1,110 +0,0 @@ -/datum/xeno_mutator/vanguard - name = "STRAIN: Praetorian - Vanguard" - description = "You forfeit all of your acid-based abilities and some health for some extra speed and a rechargable shield that can block one attack. Use your Pierce from up to three paces away to stab through talls, while stabbing through several will completely recharge your shield. Use your charge to plow through enemies and use it again to unleash a powerful AoE slash that reaches up to three paces. You also have a Cleave ability, amplified by your shield, which you can toggle to either immobilize or fling a target away." - flavor_description = "They are my bulwark against the tallhosts. They are my Vanguard and they shall know no fear." - cost = MUTATOR_COST_EXPENSIVE - individual_only = TRUE - caste_whitelist = list(XENO_CASTE_PRAETORIAN) //Only praetorian. - mutator_actions_to_remove = list( - /datum/action/xeno_action/activable/xeno_spit, - /datum/action/xeno_action/activable/pounce/base_prae_dash, - /datum/action/xeno_action/activable/prae_acid_ball, - /datum/action/xeno_action/activable/spray_acid/base_prae_spray_acid, - /datum/action/xeno_action/activable/corrosive_acid, - ) - mutator_actions_to_add = list( - /datum/action/xeno_action/activable/pierce, - /datum/action/xeno_action/activable/pounce/prae_dash, - /datum/action/xeno_action/activable/cleave, - /datum/action/xeno_action/onclick/toggle_cleave, - ) - behavior_delegate_type = /datum/behavior_delegate/praetorian_vanguard - keystone = TRUE - -/datum/xeno_mutator/vanguard/apply_mutator(datum/mutator_set/individual_mutators/mutator_set) - . = ..() - if (. == 0) - return - - var/mob/living/carbon/xenomorph/praetorian/praetorian = mutator_set.xeno - praetorian.speed_modifier += XENO_SPEED_FASTMOD_TIER_3 - praetorian.health_modifier -= XENO_HEALTH_MOD_MED - praetorian.claw_type = CLAW_TYPE_SHARP - mutator_update_actions(praetorian) - mutator_set.recalculate_actions(description, flavor_description) - praetorian.recalculate_everything() - - praetorian.mutation_icon_state = PRAETORIAN_VANGUARD - praetorian.mutation_type = PRAETORIAN_VANGUARD - - apply_behavior_holder(praetorian) - -/datum/behavior_delegate/praetorian_vanguard - name = "Praetorian Vanguard Behavior Delegate" - - // Config - var/shield_recharge_time = 200 // 20 seconds to recharge 1-hit shield - var/pierce_spin_time = 10 // 1 second to use pierce - var/shield_decay_cleave_time = 15 // How long you have to buffed cleave after the shield fully decays - - // State - var/last_combat_time = 0 - var/last_shield_regen_time = 0 - -/datum/behavior_delegate/praetorian_vanguard/on_life() - if (last_shield_regen_time <= last_combat_time && last_combat_time + shield_recharge_time <= world.time) - regen_shield() - - -/datum/behavior_delegate/praetorian_vanguard/on_hitby_projectile(ammo) - last_combat_time = world.time - return - -/datum/behavior_delegate/praetorian_vanguard/melee_attack_additional_effects_self() - ..() - - last_combat_time = world.time - -/datum/behavior_delegate/praetorian_vanguard/proc/next_pierce_spin() - var/datum/action/xeno_action/activable/pierce/pAction = get_xeno_action_by_type(bound_xeno, /datum/action/xeno_action/activable/pierce) - if (istype(pAction)) - pAction.should_spin_instead = TRUE - - addtimer(CALLBACK(src, PROC_REF(next_pierce_normal)), pierce_spin_time) - return - -/datum/behavior_delegate/praetorian_vanguard/proc/next_pierce_normal() - var/datum/action/xeno_action/activable/pierce/pAction = get_xeno_action_by_type(bound_xeno, /datum/action/xeno_action/activable/pierce) - if (istype(pAction)) - pAction.should_spin_instead = FALSE - return - -/datum/behavior_delegate/praetorian_vanguard/proc/regen_shield() - var/mob/living/carbon/xenomorph/praetorian = bound_xeno - var/datum/xeno_shield/vanguard/found_shield = null - last_shield_regen_time = world.time - for (var/datum/xeno_shield/vanguard/vanguard_shield in praetorian.xeno_shields) - if (vanguard_shield.shield_source == XENO_SHIELD_SOURCE_VANGUARD_PRAE) - found_shield = vanguard_shield - break - - if (found_shield) - qdel(found_shield) - - praetorian.add_xeno_shield(800, XENO_SHIELD_SOURCE_VANGUARD_PRAE, /datum/xeno_shield/vanguard) - - else - var/datum/xeno_shield/vanguard/new_shield = praetorian.add_xeno_shield(800, XENO_SHIELD_SOURCE_VANGUARD_PRAE, /datum/xeno_shield/vanguard) - bound_xeno.explosivearmor_modifier += 1.5*XENO_EXPOSIVEARMOR_MOD_VERY_LARGE - bound_xeno.recalculate_armor() - new_shield.explosive_armor_amount = 1.5*XENO_EXPOSIVEARMOR_MOD_VERY_LARGE - to_chat(praetorian, SPAN_XENOHIGHDANGER("You feel your defensive shell regenerate! It will block one hit!")) - - var/datum/action/xeno_action/activable/cleave/caction = get_xeno_action_by_type(bound_xeno, /datum/action/xeno_action/activable/cleave) - if (istype(caction)) - caction.buffed = TRUE - - - - - diff --git a/code/modules/mob/living/carbon/xenomorph/mutators/strains/praetorian/warden.dm b/code/modules/mob/living/carbon/xenomorph/mutators/strains/praetorian/warden.dm deleted file mode 100644 index 1db9ad6550e2..000000000000 --- a/code/modules/mob/living/carbon/xenomorph/mutators/strains/praetorian/warden.dm +++ /dev/null @@ -1,102 +0,0 @@ -/datum/xeno_mutator/praetorian_warden - // i mean so basically im braum - name = "STRAIN: Praetorian - Warden" - description = "You trade your acid ball, acid spray, dash, and a small bit of your slash damage and speed to become an effective medic. You gain the ability to emit strong pheromones, an ability that retrieves endangered, knocked-down or sitting allies and pulls them to your location, and you gain an internal hitpoint pool that fills with every slash against your enemies, which can be spent to aid your allies and yourself by healing them or curing their ailments." - flavor_description = "Only in death does your sisters' service to the Queen end. They will be untouched by plague or disease; no sickness will blight them." - cost = MUTATOR_COST_EXPENSIVE - individual_only = TRUE - caste_whitelist = list(XENO_CASTE_PRAETORIAN) // Only bae - mutator_actions_to_remove = list( - /datum/action/xeno_action/activable/pounce/base_prae_dash, - /datum/action/xeno_action/activable/prae_acid_ball, - /datum/action/xeno_action/activable/spray_acid/base_prae_spray_acid, - ) - mutator_actions_to_add = list( - /datum/action/xeno_action/activable/spray_acid/prae_warden, - /datum/action/xeno_action/activable/warden_heal, - /datum/action/xeno_action/activable/prae_retrieve, - /datum/action/xeno_action/onclick/prae_switch_heal_type, - /datum/action/xeno_action/onclick/emit_pheromones, - ) - behavior_delegate_type = /datum/behavior_delegate/praetorian_warden - keystone = TRUE - -/datum/xeno_mutator/praetorian_warden/apply_mutator(datum/mutator_set/individual_mutators/mutator_set) - . = ..() - if (. == 0) - return - - var/mob/living/carbon/xenomorph/praetorian/praetorian = mutator_set.xeno - - // Make a 'halftank' - praetorian.speed_modifier += XENO_SPEED_SLOWMOD_TIER_5 - praetorian.damage_modifier -= XENO_DAMAGE_MOD_SMALL - - mutator_update_actions(praetorian) - mutator_set.recalculate_actions(description, flavor_description) - - praetorian.recalculate_everything() - - apply_behavior_holder(praetorian) - praetorian.mutation_icon_state = PRAETORIAN_WARDEN - praetorian.mutation_type = PRAETORIAN_WARDEN - -/datum/behavior_delegate/praetorian_warden - name = "Praetorian Warden Behavior Delegate" - - // Config - var/internal_hitpoints_max = 350 - var/internal_hitpoints_per_attack = 50 - var/internal_hp_per_life = 5 - - // State - var/internal_hitpoints = 0 - -/datum/behavior_delegate/praetorian_warden/append_to_stat() - . = list() - . += "Energy Reserves: [internal_hitpoints]/[internal_hitpoints_max]" - -/datum/behavior_delegate/praetorian_warden/on_life() - internal_hitpoints = min(internal_hitpoints_max, internal_hitpoints + internal_hp_per_life) - - var/mob/living/carbon/xenomorph/praetorian/praetorian = bound_xeno - var/image/holder = praetorian.hud_list[PLASMA_HUD] - holder.overlays.Cut() - - if(praetorian.stat == DEAD) - return - - var/percentage_energy = round((internal_hitpoints / internal_hitpoints_max) * 100, 10) - if(percentage_energy) - holder.overlays += image('icons/mob/hud/hud.dmi', "xenoenergy[percentage_energy]") - -/datum/behavior_delegate/praetorian_warden/handle_death(mob/M) - var/image/holder = bound_xeno.hud_list[PLASMA_HUD] - holder.overlays.Cut() - -/datum/behavior_delegate/praetorian_warden/melee_attack_additional_effects_self() - ..() - - add_internal_hitpoints(internal_hitpoints_per_attack) - -/datum/behavior_delegate/praetorian_warden/ranged_attack_additional_effects_target(atom/target_atom) - if(ismob(target_atom)) - add_internal_hitpoints(internal_hitpoints_per_attack) - -/datum/behavior_delegate/praetorian_warden/proc/add_internal_hitpoints(amount) - if (amount > 0) - if (internal_hitpoints >= internal_hitpoints_max) - return - to_chat(bound_xeno, SPAN_XENODANGER("You feel your internal health reserves increase!")) - internal_hitpoints = Clamp(internal_hitpoints + amount, 0, internal_hitpoints_max) - -/datum/behavior_delegate/praetorian_warden/proc/remove_internal_hitpoints(amount) - add_internal_hitpoints(-1*amount) - -/datum/behavior_delegate/praetorian_warden/proc/use_internal_hp_ability(cost) - if (cost > internal_hitpoints) - to_chat(bound_xeno, SPAN_XENODANGER("Your health reserves are insufficient! You need at least [cost] to do that!")) - return FALSE - else - remove_internal_hitpoints(cost) - return TRUE diff --git a/code/modules/mob/living/carbon/xenomorph/mutators/strains/ravager/hedgehog.dm b/code/modules/mob/living/carbon/xenomorph/mutators/strains/ravager/hedgehog.dm deleted file mode 100644 index 913883549fba..000000000000 --- a/code/modules/mob/living/carbon/xenomorph/mutators/strains/ravager/hedgehog.dm +++ /dev/null @@ -1,134 +0,0 @@ -/datum/xeno_mutator/hedgehog - name = "STRAIN: Ravager - Hedgehog" - description = "You lose your empower, charge, scissor cut and some slash damage, for a bit more explosive resistance, immunity to small explosions, and you gain several new abilities that allow you to become a spiky tank. You build up shards internally over time and also when taking damage that increase your armor's resilience. You can use these shards to power three new abilities: Spike Shield, which gives you a temporary shield that spits bone shards around you when damaged, Fire Spikes, which launches spikes at your target that slows them and does extra damage if they move, and finally, Spike Shed, which launches spikes all around yourself and gives you a temporary speed boost as an escape plan at the cost of all your stored shards and being unable to gain shards for thirty seconds." - flavor_description = "They will be of iron will and steely muscle. In great armor shall they be clad, and with the mightiest spikes will they be armed." - cost = MUTATOR_COST_EXPENSIVE - individual_only = TRUE - caste_whitelist = list(XENO_CASTE_RAVAGER) // Only Ravager. - mutator_actions_to_remove = list( - /datum/action/xeno_action/onclick/empower, - /datum/action/xeno_action/activable/pounce/charge, - /datum/action/xeno_action/activable/scissor_cut, - ) - mutator_actions_to_add = list( - /datum/action/xeno_action/onclick/spike_shield, - /datum/action/xeno_action/activable/rav_spikes, - /datum/action/xeno_action/onclick/spike_shed, - ) - behavior_delegate_type = /datum/behavior_delegate/ravager_hedgehog - keystone = TRUE - -/datum/xeno_mutator/hedgehog/apply_mutator(datum/mutator_set/individual_mutators/mutator_set) - . = ..() - if (. == 0) - return - - var/mob/living/carbon/xenomorph/ravager/ravager = mutator_set.xeno - - ravager.mutation_type = RAVAGER_HEDGEHOG - ravager.plasma_max = 0 - ravager.small_explosives_stun = FALSE - ravager.explosivearmor_modifier += XENO_EXPOSIVEARMOR_MOD_SMALL - ravager.damage_modifier -= XENO_DAMAGE_MOD_SMALL - - apply_behavior_holder(ravager) - - mutator_update_actions(ravager) - mutator_set.recalculate_actions(description, flavor_description) - - ravager.recalculate_everything() - -/datum/behavior_delegate/ravager_hedgehog - name = "Hedgehog Ravager Behavior Delegate" - - // Shard config - var/max_shards = 300 - var/shard_gain_onlife = 5 - var/shards_per_projectile = 10 - var/shards_per_slash = 15 - var/armor_buff_per_fifty_shards = 2.50 - var/shard_lock_duration = 150 - var/shard_lock_speed_mod = 0.45 - - // Shard state - var/shards = 0 - var/shards_locked = FALSE //are we locked at 0 shards? - - // Armor buff state - var/times_armor_buffed = 0 - -/datum/behavior_delegate/ravager_hedgehog/append_to_stat() - . = list() - . += "Bone Shards: [shards]/[max_shards]" - . += "Shards Armor Bonus: [times_armor_buffed*armor_buff_per_fifty_shards]" - -/datum/behavior_delegate/ravager_hedgehog/proc/lock_shards() - - if (!bound_xeno) - return - - to_chat(bound_xeno, SPAN_XENODANGER("You have shed your spikes and cannot gain any more for [shard_lock_duration/10] seconds!")) - - bound_xeno.speed_modifier -= shard_lock_speed_mod - bound_xeno.recalculate_speed() - - shards = 0 - shards_locked = TRUE - addtimer(CALLBACK(src, PROC_REF(unlock_shards)), shard_lock_duration) - -/datum/behavior_delegate/ravager_hedgehog/proc/unlock_shards() - - if (!bound_xeno) - return - - to_chat(bound_xeno, SPAN_XENODANGER("You feel your ability to gather shards return!")) - - bound_xeno.speed_modifier += shard_lock_speed_mod - bound_xeno.recalculate_speed() - - shards_locked = FALSE - -// Return true if we have enough shards, false otherwise -/datum/behavior_delegate/ravager_hedgehog/proc/check_shards(amount) - if (!amount) - return FALSE - else - return (shards >= amount) - -/datum/behavior_delegate/ravager_hedgehog/proc/use_shards(amount) - if (!amount) - return - shards = max(0, shards - amount) - -/datum/behavior_delegate/ravager_hedgehog/on_life() - - if (!shards_locked) - shards = min(max_shards, shards + shard_gain_onlife) - - var/armor_buff_count = shards/50 //0-6 - bound_xeno.armor_modifier -= times_armor_buffed * armor_buff_per_fifty_shards - bound_xeno.armor_modifier += armor_buff_count * armor_buff_per_fifty_shards - bound_xeno.recalculate_armor() - times_armor_buffed = armor_buff_count - - var/image/holder = bound_xeno.hud_list[PLASMA_HUD] - holder.overlays.Cut() - var/percentage_shards = round((shards / max_shards) * 100, 10) - if(percentage_shards) - holder.overlays += image('icons/mob/hud/hud.dmi', "xenoenergy[percentage_shards]") - return - - -/datum/behavior_delegate/ravager_hedgehog/handle_death(mob/M) - var/image/holder = bound_xeno.hud_list[PLASMA_HUD] - holder.overlays.Cut() - -/datum/behavior_delegate/ravager_hedgehog/on_hitby_projectile() - if (!shards_locked) - shards = min(max_shards, shards + shards_per_projectile) - return - -/datum/behavior_delegate/ravager_hedgehog/melee_attack_additional_effects_self() - if (!shards_locked) - shards = min(max_shards, shards + shards_per_slash) - return diff --git a/code/modules/mob/living/carbon/xenomorph/resin_constructions.dm b/code/modules/mob/living/carbon/xenomorph/resin_constructions.dm index 793ed45bcb13..9c94be96a65a 100644 --- a/code/modules/mob/living/carbon/xenomorph/resin_constructions.dm +++ b/code/modules/mob/living/carbon/xenomorph/resin_constructions.dm @@ -341,11 +341,11 @@ GLOBAL_VAR_INIT(resin_lz_allowed, FALSE) construction_name = "thick resin membrane" build_path = /obj/structure/alien/movable_wall/membrane/thick -// Remote Resin Nodes for originally coded for Resin Whisperers +// Remote Weed Nodes for originally coded for Resin Whisperers /datum/resin_construction/resin_obj/resin_node - name = "Resin Node" + name = "Weed Node" desc = "Channel energy to spread our influence." - construction_name = "resin node" + construction_name = "weed node" cost = (XENO_RESIN_MEMBRANE_THICK_COST * 2) // 3x the cost of a thick membrane. At the time of coding that is 95*2 = 190 build_path = /obj/effect/alien/weeds/node diff --git a/code/modules/mob/living/carbon/xenomorph/say.dm b/code/modules/mob/living/carbon/xenomorph/say.dm index a2413b766505..9f99cdb45455 100644 --- a/code/modules/mob/living/carbon/xenomorph/say.dm +++ b/code/modules/mob/living/carbon/xenomorph/say.dm @@ -16,24 +16,20 @@ if(stat == UNCONSCIOUS) return //Unconscious? Nope. - if(dazed > 0) - to_chat(src, SPAN_WARNING("You are too dazed to talk.")) - return - if(copytext(message, 1, 2) == "*") if(!findtext(message, "*", 2)) //Second asterisk means it is markup for *bold*, not an *emote. return emote(lowertext(copytext(message, 2)), intentional = TRUE) var/datum/language/speaking = null if(length(message) >= 2) - if(can_hivemind_speak && copytext(message,1,2) == ";" && languages.len) + if(can_hivemind_speak && copytext(message,1,2) == ";" && length(languages)) for(var/datum/language/L in languages) if(L.flags & HIVEMIND) verb = L.speech_verb speaking = L break var/channel_prefix = copytext(message, 1, 3) - if(languages.len) + if(length(languages)) for(var/datum/language/L in languages) if(lowertext(channel_prefix) == ":[L.key]" || lowertext(channel_prefix) == ".[L.key]") verb = L.speech_verb @@ -94,8 +90,11 @@ //General proc for hivemind. Lame, but effective. /mob/living/carbon/xenomorph/proc/hivemind_talk(message) - if(interference) - to_chat(src, SPAN_WARNING("A headhunter temporarily cut off your psychic connection!")) + if(HAS_TRAIT(src, TRAIT_HIVEMIND_INTERFERENCE)) + to_chat(src, SPAN_WARNING("Our psychic connection has been temporarily disabled!")) + return + + if(SEND_SIGNAL(src, COMSIG_XENO_TRY_HIVEMIND_TALK, message) & COMPONENT_OVERRIDE_HIVEMIND_TALK) return hivemind_broadcast(message, hive) diff --git a/code/modules/mob/living/carbon/xenomorph/mutators/behavior_delegate.dm b/code/modules/mob/living/carbon/xenomorph/strains/behavior_delegate.dm similarity index 100% rename from code/modules/mob/living/carbon/xenomorph/mutators/behavior_delegate.dm rename to code/modules/mob/living/carbon/xenomorph/strains/behavior_delegate.dm diff --git a/code/modules/mob/living/carbon/xenomorph/mutators/strains/boiler/trapper.dm b/code/modules/mob/living/carbon/xenomorph/strains/castes/boiler/trapper.dm similarity index 75% rename from code/modules/mob/living/carbon/xenomorph/mutators/strains/boiler/trapper.dm rename to code/modules/mob/living/carbon/xenomorph/strains/castes/boiler/trapper.dm index c14d2c6773cf..f64bfd6b500f 100644 --- a/code/modules/mob/living/carbon/xenomorph/mutators/strains/boiler/trapper.dm +++ b/code/modules/mob/living/carbon/xenomorph/strains/castes/boiler/trapper.dm @@ -1,40 +1,33 @@ +/datum/xeno_strain/trapper + name = BOILER_TRAPPER + description = "You trade your ability to bombard, lance, and dump your acid in order to gain some speed and the ability to create acid explosions and restrain enemies within them. With your longer-range vision, set up traps that immobilize your opponents and place acid mines which deal damage to enemies and barricades and reduce the cooldown of your trap deployment for every enemy hit. Finally, hit enemies with your Acid Shotgun ability which adds a stack of insight to empower the next trap you place once you reach a maximum of ten insight. A point-blank shot or a shot on a stunned target will instantly apply ten stacks." + flavor_description = "The battlefield is my canvas, this one, my painter. Melt them where they stand." -/datum/xeno_mutator/trapper - name = "STRAIN: Boiler - Trapper" - description = "You trade your ability to bombard, lance, and dump your acid in order to gain some speed and the ability to create acid explosions and restrain talls within them. With your longer-range vision, set up traps that immobilize your opponents and place acid mines which deal damage to talls and barricades and reduce the cooldown of your trap deployment for every tall hit. Finally, hit talls with your Acid Shotgun ability which adds a stack of insight to empower the next trap you place once you reach a maximum of ten insight. A point-blank shot or a shot on a stunned target will instantly apply ten stacks." - flavor_description = "Hsss, I love the smell of burnin' tallhost flesh in the mornin'." - cost = MUTATOR_COST_EXPENSIVE - individual_only = TRUE - caste_whitelist = list(XENO_CASTE_BOILER) //Only boiler. - mutator_actions_to_remove = list( + actions_to_remove = list( /datum/action/xeno_action/activable/xeno_spit/bombard, /datum/action/xeno_action/onclick/shift_spits/boiler, /datum/action/xeno_action/activable/spray_acid/boiler, /datum/action/xeno_action/onclick/toggle_long_range/boiler, /datum/action/xeno_action/onclick/acid_shroud, ) - mutator_actions_to_add = list( + actions_to_add = list( /datum/action/xeno_action/activable/boiler_trap, /datum/action/xeno_action/activable/acid_mine, /datum/action/xeno_action/activable/acid_shotgun, /datum/action/xeno_action/onclick/toggle_long_range/trapper, ) - keystone = TRUE behavior_delegate_type = /datum/behavior_delegate/boiler_trapper -/datum/xeno_mutator/trapper/apply_mutator(datum/mutator_set/individual_mutators/mutator_set) - . = ..() - if(. == 0) - return +/datum/xeno_strain/trapper/apply_strain(mob/living/carbon/xenomorph/boiler/boiler) + if(!istype(boiler)) + return FALSE - var/mob/living/carbon/xenomorph/boiler/boiler = mutator_set.xeno if(boiler.is_zoomed) boiler.zoom_out() boiler.tileoffset = 0 boiler.viewsize = TRAPPER_VIEWRANGE - boiler.mutation_type = BOILER_TRAPPER boiler.plasma_types -= PLASMA_NEUROTOXIN boiler.armor_modifier -= XENO_ARMOR_MOD_LARGE // no armor boiler.health_modifier -= XENO_HEALTH_MOD_MED @@ -42,12 +35,6 @@ boiler.speed_modifier += XENO_SPEED_SLOWMOD_TIER_5 // compensating for base buffs boiler.recalculate_everything() - apply_behavior_holder(boiler) - - mutator_update_actions(boiler) - mutator_set.recalculate_actions(description, flavor_description) - - /datum/behavior_delegate/boiler_trapper name = "Boiler Trapper Behavior Delegate" diff --git a/code/modules/mob/living/carbon/xenomorph/mutators/strains/carrier/eggsac.dm b/code/modules/mob/living/carbon/xenomorph/strains/castes/carrier/eggsac.dm similarity index 83% rename from code/modules/mob/living/carbon/xenomorph/mutators/strains/carrier/eggsac.dm rename to code/modules/mob/living/carbon/xenomorph/strains/castes/carrier/eggsac.dm index 3b321ca259c9..61c03803841b 100644 --- a/code/modules/mob/living/carbon/xenomorph/mutators/strains/carrier/eggsac.dm +++ b/code/modules/mob/living/carbon/xenomorph/strains/castes/carrier/eggsac.dm @@ -1,48 +1,36 @@ -/datum/xeno_mutator/eggsac - name = "STRAIN: Carrier - Eggsac" +/datum/xeno_strain/eggsac + name = CARRIER_EGGSAC description = "In exchange for your ability to store huggers and place traps, you gain larger plasma stores, strong pheromones, and the ability to lay eggs by using your plasma stores. In addition, you can now carry twelve eggs at once and can place eggs one pace further than normal. \n\nYou can also place a small number of fragile eggs on normal weeds. These eggs have a lifetime of five minutes while you remain within 14 tiles. Or one minute if you leave this range." flavor_description = "An egg is always an adventure; the next one may be different." - cost = MUTATOR_COST_EXPENSIVE - individual_only = TRUE - caste_whitelist = list(XENO_CASTE_CARRIER) - mutator_actions_to_remove = list( + icon_state_prefix = "Eggsac" + + actions_to_remove = list( /datum/action/xeno_action/activable/throw_hugger, /datum/action/xeno_action/onclick/place_trap, /datum/action/xeno_action/activable/retrieve_egg, // readding it so it gets at the end of the ability list /datum/action/xeno_action/onclick/set_hugger_reserve, ) - mutator_actions_to_add = list( + actions_to_add = list( /datum/action/xeno_action/active_toggle/generate_egg, /datum/action/xeno_action/activable/retrieve_egg, // readding it so it gets at the end of the ability list ) + behavior_delegate_type = /datum/behavior_delegate/carrier_eggsac - keystone = TRUE -/datum/xeno_mutator/eggsac/apply_mutator(datum/mutator_set/individual_mutators/mutator_set) - . = ..() - if (!.) - return - var/mob/living/carbon/xenomorph/carrier/carrier = mutator_set.xeno - if(!istype(carrier)) - return FALSE +/datum/xeno_strain/eggsac/apply_strain(mob/living/carbon/xenomorph/carrier/carrier) carrier.plasma_types = list(PLASMA_EGG) carrier.phero_modifier += XENO_PHERO_MOD_LARGE // praetorian level pheremones - carrier.plasmapool_modifier = 1.2 - mutator_update_actions(carrier) - mutator_set.recalculate_actions(description, flavor_description) - carrier.recalculate_pheromones() carrier.recalculate_plasma() - if(carrier.huggers_cur > 0) - playsound(carrier.loc, 'sound/voice/alien_facehugger_dies.ogg', 25, 1) + carrier.recalculate_pheromones() + + if(carrier.huggers_cur) + playsound(carrier.loc, 'sound/voice/alien_facehugger_dies.ogg', 25, TRUE) carrier.huggers_cur = 0 carrier.huggers_max = 0 carrier.update_hugger_overlays() - carrier.mutation_type = CARRIER_EGGSAC - carrier.update_eggsac_overlays() carrier.eggs_max = 12 carrier.egg_planting_range = 2 - apply_behavior_holder(carrier) - return TRUE + carrier.update_eggsac_overlays() #define EGGSAC_OFF_WEED_EGGCAP 4 #define EGGSAC_EGG_SUSTAIN_DISTANCE 14 @@ -60,6 +48,10 @@ . = list() . += "Eggs sustained: [length(eggs_sustained)] / [egg_sustain_cap]" +/datum/behavior_delegate/carrier_eggsac/on_update_icons() + var/mob/living/carbon/xenomorph/carrier/bound_carrier = bound_xeno + bound_carrier.update_eggsac_overlays() + /datum/behavior_delegate/carrier_eggsac/on_life() if(length(eggs_sustained) > egg_sustain_cap) var/obj/effect/alien/egg/carrier_egg/my_egg = eggs_sustained[1] @@ -87,6 +79,9 @@ remove_egg_owner(my_egg) my_egg.start_unstoppable_decay() + M.visible_message(SPAN_XENOWARNING("[M] throes as its eggsac bursts into a mess of acid!")) + playsound(M.loc, 'sound/effects/alien_egg_burst.ogg', 25, TRUE) + ///Remove all references to src in eggs_sustained /datum/behavior_delegate/carrier_eggsac/Destroy() for(var/obj/effect/alien/egg/carrier_egg/my_egg as anything in eggs_sustained) @@ -102,7 +97,7 @@ plasma_use_per_tick = 15 action_start_message = "You start forming eggs." - action_end_message = "You don't have enough plasma to support forming eggs." + action_end_message = "We don't have enough plasma to support forming eggs." var/egg_generation_progress = 0 ability_primacy = XENO_PRIMARY_ACTION_3 @@ -126,7 +121,7 @@ if(egg_generation_progress >= 15) egg_generation_progress = 0 xeno.eggs_cur++ - to_chat(xeno, SPAN_XENONOTICE("You generate a egg. Now sheltering: [xeno.eggs_cur] / [xeno.eggs_max].")) + to_chat(xeno, SPAN_XENONOTICE("We generate an egg. Now sheltering: [xeno.eggs_cur] / [xeno.eggs_max].")) xeno.update_icons() #undef EGGSAC_OFF_WEED_EGGCAP diff --git a/code/modules/mob/living/carbon/xenomorph/mutators/strains/crusher/charger.dm b/code/modules/mob/living/carbon/xenomorph/strains/castes/crusher/charger.dm similarity index 84% rename from code/modules/mob/living/carbon/xenomorph/mutators/strains/crusher/charger.dm rename to code/modules/mob/living/carbon/xenomorph/strains/castes/crusher/charger.dm index 1fc746829acd..55e459cc6dde 100644 --- a/code/modules/mob/living/carbon/xenomorph/mutators/strains/crusher/charger.dm +++ b/code/modules/mob/living/carbon/xenomorph/strains/castes/crusher/charger.dm @@ -1,10 +1,8 @@ -// // Specific momentum based damage defines #define CHARGER_DESTROY charger_ability.momentum * 40 #define CHARGER_DAMAGE_CADE charger_ability.momentum * 22 #define CHARGER_DAMAGE_SENTRY charger_ability.momentum * 9 -#define CHARGER_DAMAGE_MG charger_ability.momentum * 15 // Momentum loss defines. 8 is maximum momentum @@ -14,34 +12,26 @@ #define CCA_MOMENTUM_LOSS_MIN 1 -/datum/xeno_mutator/charger - name = "STRAIN: Crusher - Charger" - description = "In exchange for your shield, a little bit of your armor and damage, your slowdown resist from autospitters, your influence under frenzy pheromones, your stomp no longer knocking down talls, and your ability to lock your direction, you gain a considerable amount of health, some speed, your stomp does extra damage when stomping over a grounded tall, and your charge is now manually-controlled and momentum-based; the further you go, the more damage and speed you will gain until you achieve maximum momentum, indicated by your roar. In addition, your armor is now directional, being the toughest on the front, weaker on the sides, and weakest from the back. In return, you gain an ability to tumble to pass through talls and avoid enemy fire, and an ability to forcefully move enemies via ramming into them." - flavor_description = "We're just getting started. Nothing stops this train. Nothing." - cost = MUTATOR_COST_EXPENSIVE - individual_only = TRUE - caste_whitelist = list(XENO_CASTE_CRUSHER) - mutator_actions_to_remove = list ( +/datum/xeno_strain/charger + name = CRUSHER_CHARGER + description = "In exchange for your shield, a little bit of your armor and damage, your slowdown resist from turrets, your influence under frenzy pheromones, your stomp no longer knocking down talls, and your ability to lock your direction, you gain a considerable amount of health, some speed, your stomp does extra damage when stomping over a grounded tall, and your charge is now manually-controlled and momentum-based; the further you go, the more damage and speed you will gain until you achieve maximum momentum, indicated by your roar. In addition, your armor is now directional, being the toughest on the front, weaker on the sides, and weakest from the back. In return, you gain an ability to tumble to pass through enemies and avoid enemy fire, and an ability to forcefully move enemies via ramming into them." + flavor_description = "Nothing stops this hive. This one will become both the immovable object and the unstoppable force." + + actions_to_remove = list( /datum/action/xeno_action/activable/pounce/crusher_charge, /datum/action/xeno_action/onclick/crusher_stomp, /datum/action/xeno_action/onclick/crusher_shield, ) - mutator_actions_to_add = list( + actions_to_add = list( /datum/action/xeno_action/onclick/charger_charge, /datum/action/xeno_action/activable/tumble, /datum/action/xeno_action/onclick/crusher_stomp/charger, /datum/action/xeno_action/activable/fling/charger, ) - keystone = TRUE - behavior_delegate_type = /datum/behavior_delegate/crusher_charger -/datum/xeno_mutator/charger/apply_mutator(datum/mutator_set/individual_mutators/mutator_set) - . = ..() - if (. == 0) - return + behavior_delegate_type = /datum/behavior_delegate/crusher_charger - var/mob/living/carbon/xenomorph/crusher/crusher = mutator_set.xeno - crusher.mutation_type = CRUSHER_CHARGER +/datum/xeno_strain/charger/apply_strain(mob/living/carbon/xenomorph/crusher/crusher) crusher.small_explosives_stun = FALSE crusher.health_modifier += XENO_HEALTH_MOD_LARGE crusher.speed_modifier += XENO_SPEED_FASTMOD_TIER_3 @@ -49,10 +39,6 @@ crusher.damage_modifier -= XENO_DAMAGE_MOD_SMALL crusher.ignore_aura = "frenzy" // no funny crushers going 7 morbillion kilometers per second crusher.phero_modifier = -crusher.caste.aura_strength - crusher.recalculate_pheromones() - mutator_update_actions(crusher) - mutator_set.recalculate_actions(description, flavor_description) - apply_behavior_holder(crusher) crusher.recalculate_everything() /datum/behavior_delegate/crusher_charger @@ -83,7 +69,7 @@ /datum/behavior_delegate/crusher_charger/on_update_icons() if(HAS_TRAIT(bound_xeno, TRAIT_CHARGING) && bound_xeno.body_position == STANDING_UP) - bound_xeno.icon_state = "[bound_xeno.mutation_icon_state || bound_xeno.mutation_type] Crusher Charging" + bound_xeno.icon_state = "[bound_xeno.get_strain_icon()] Crusher Charging" return TRUE // Fallback proc for shit that doesn't have a collision def @@ -346,8 +332,8 @@ take_overall_armored_damage(charger_ability.momentum * momentum_mult, ARMOR_MELEE, BRUTE, 60, 13) // Giving AP because this spreads damage out and then applies armor to them apply_armoured_damage(charger_ability.momentum * momentum_mult/4, ARMOR_MELEE, BRUTE,"chest") xeno.visible_message( - SPAN_DANGER("[xeno] rams \the [src]!"), - SPAN_XENODANGER("You ram \the [src]!") + SPAN_DANGER("[xeno] rams [src]!"), + SPAN_XENODANGER("You ram [src]!") ) var/knockdown = 1 if(charger_ability.momentum == charger_ability.max_momentum) @@ -417,8 +403,8 @@ momentum_mult = 8 take_overall_damage(charger_ability.momentum * momentum_mult) xeno.visible_message( - SPAN_DANGER("[xeno] rams \the [src]!"), - SPAN_XENODANGER("You ram \the [src]!") + SPAN_DANGER("[xeno] rams [src]!"), + SPAN_XENODANGER("You ram [src]!") ) var/knockdown = 1 if(charger_ability.momentum == charger_ability.max_momentum) @@ -470,8 +456,8 @@ var/datum/effect_system/spark_spread/sparks = new sparks.set_up(5, 1, loc) xeno.visible_message( - SPAN_DANGER("[xeno] rams \the [src]!"), - SPAN_XENODANGER("You ram \the [src]!") + SPAN_DANGER("[xeno] rams [src]!"), + SPAN_XENODANGER("You ram [src]!") ) if(health <= CHARGER_DAMAGE_SENTRY) new /obj/effect/spawner/gibspawner/robot(src.loc) // if we goin down ,we going down with a show. @@ -488,37 +474,78 @@ // Marine MGs /obj/structure/machinery/m56d_hmg/handle_charge_collision(mob/living/carbon/xenomorph/xeno, datum/action/xeno_action/onclick/charger_charge/charger_ability) - if(charger_ability.momentum > CCA_MOMENTUM_LOSS_MIN) - CrusherImpact() - var/datum/effect_system/spark_spread/sparks = new - update_health(charger_ability.momentum * 15) - if(operator) operator.emote("pain") - sparks.set_up(1, 1, loc) - sparks.start() - xeno.visible_message( - SPAN_DANGER("[xeno] rams \the [src]!"), - SPAN_XENODANGER("You ram \the [src]!") - ) - playsound(src, "sound/effects/metal_crash.ogg", 25, TRUE) - if(istype(src,/obj/structure/machinery/m56d_hmg/auto)) // we don't want to charge it to the point of downgrading it (: - var/obj/item/device/m2c_gun/HMG = new(src.loc) - HMG.health = src.health - transfer_label_component(HMG) - HMG.rounds = src.rounds //Inherent the amount of ammo we had. - HMG.update_icon() - qdel(src) - else - var/obj/item/device/m56d_gun/HMG = new(src.loc) // note: find a better way than a copy pasted else statement - HMG.health = src.health - transfer_label_component(HMG) - HMG.rounds = src.rounds //Inherent the amount of ammo we had. - HMG.has_mount = TRUE - HMG.update_icon() - qdel(src) //Now we clean up the constructed gun. + if(charger_ability.momentum <= CCA_MOMENTUM_LOSS_MIN) + charger_ability.stop_momentum() + return + + CrusherImpact() + update_health(charger_ability.momentum * 15) + var/datum/effect_system/spark_spread/sparks = new + sparks.set_up(1, 1, loc) + sparks.start() + xeno.visible_message( + SPAN_DANGER("[xeno] rams [src]!"), + SPAN_XENODANGER("You ram [src]!") + ) + playsound(src, "sound/effects/metal_crash.ogg", 25, TRUE) + if(QDELETED(src)) + // The crash destroyed it charger_ability.lose_momentum(CCA_MOMENTUM_LOSS_MIN) //Lose one turfs worth of speed return XENO_CHARGE_TRY_MOVE - charger_ability.stop_momentum() + + // Undeploy + if(istype(src, /obj/structure/machinery/m56d_hmg/auto)) // we don't want to charge it to the point of downgrading it (: + var/obj/item/device/m2c_gun/HMG = new(loc) + HMG.health = health + transfer_label_component(HMG) + HMG.rounds = rounds + HMG.update_icon() + qdel(src) + else + var/obj/item/device/m56d_gun/HMG = new(loc) + HMG.health = health + transfer_label_component(HMG) + HMG.rounds = rounds + HMG.has_mount = TRUE + HMG.update_icon() + qdel(src) //Now we clean up the constructed gun. + +/obj/structure/machinery/m56d_post/handle_charge_collision(mob/living/carbon/xenomorph/xeno, datum/action/xeno_action/onclick/charger_charge/charger_ability) + if(charger_ability.momentum <= CCA_MOMENTUM_LOSS_MIN) + charger_ability.stop_momentum() + return + + update_health(charger_ability.momentum * 15) + var/datum/effect_system/spark_spread/sparks = new + sparks.set_up(1, 1, loc) + sparks.start() + xeno.visible_message( + SPAN_DANGER("[xeno] rams [src]!"), + SPAN_XENODANGER("You ram [src]!") + ) + playsound(src, "sound/effects/metal_crash.ogg", 25, TRUE) + + if(QDELETED(src)) + // The crash destroyed it + charger_ability.lose_momentum(CCA_MOMENTUM_LOSS_MIN) //Lose one turfs worth of speed + return XENO_CHARGE_TRY_MOVE + + // Undeploy + if(gun_mounted) + var/obj/item/device/m56d_gun/HMG = new(loc) + transfer_label_component(HMG) + HMG.rounds = gun_rounds + HMG.has_mount = TRUE + if(gun_health) + HMG.health = gun_health + HMG.update_icon() + qdel(src) + else + var/obj/item/device/m56d_post/post = new(loc) + post.health = health + transfer_label_component(post) + qdel(src) // Prison Windows @@ -549,8 +576,8 @@ charger_ability.stop_momentum() return xeno.visible_message( - SPAN_DANGER("[xeno] rams \the [src]!"), - SPAN_XENODANGER("You ram \the [src]!") + SPAN_DANGER("[xeno] rams [src]!"), + SPAN_XENODANGER("You ram [src]!") ) playsound(src, "sound/effects/metalhit.ogg", 25, TRUE) qdel(src) @@ -569,8 +596,8 @@ charger_ability.stop_momentum() return xeno.visible_message( - SPAN_DANGER("[xeno] rams \the [src]!"), - SPAN_XENODANGER("You ram \the [src]!") + SPAN_DANGER("[xeno] rams [src]!"), + SPAN_XENODANGER("You ram [src]!") ) playsound(src, "sound/effects/metalhit.ogg", 25, TRUE) qdel(src) @@ -602,3 +629,12 @@ return XENO_CHARGE_TRY_MOVE charger_ability.stop_momentum() + + +#undef CHARGER_DESTROY +#undef CHARGER_DAMAGE_CADE +#undef CHARGER_DAMAGE_SENTRY +#undef CCA_MOMENTUM_LOSS_HALF +#undef CCA_MOMENTUM_LOSS_THIRD +#undef CCA_MOMENTUM_LOSS_QUARTER +#undef CCA_MOMENTUM_LOSS_MIN diff --git a/code/modules/mob/living/carbon/xenomorph/strains/castes/defender/steel_crest.dm b/code/modules/mob/living/carbon/xenomorph/strains/castes/defender/steel_crest.dm new file mode 100644 index 000000000000..cfbf85de299d --- /dev/null +++ b/code/modules/mob/living/carbon/xenomorph/strains/castes/defender/steel_crest.dm @@ -0,0 +1,22 @@ +/datum/xeno_strain/steel_crest + name = DEFENDER_STEELCREST + description = "You trade your tail sweep and a small amount of your slash damage for slightly increased headbutt knockback and damage and the ability to slowly move and headbutt while fortified. Along with this, you gain a unique ability to accumulate damage, and use it to recover a slight amount of health and refresh your tail slam." + flavor_description = "This one, like my will, is indomitable. It will become my steel crest against all that defy me." + icon_state_prefix = "Steelcrest" + + actions_to_remove = list( + /datum/action/xeno_action/activable/headbutt, + /datum/action/xeno_action/activable/fortify, + /datum/action/xeno_action/onclick/tail_sweep, + ) + actions_to_add = list( + /datum/action/xeno_action/activable/headbutt/steel_crest, + /datum/action/xeno_action/activable/fortify/steel_crest, + /datum/action/xeno_action/onclick/soak, + ) + +/datum/xeno_strain/steel_crest/apply_strain(mob/living/carbon/xenomorph/defender/defender) + defender.damage_modifier -= XENO_DAMAGE_MOD_VERY_SMALL + if(defender.fortify) + defender.ability_speed_modifier += 2.5 + defender.recalculate_stats() diff --git a/code/modules/mob/living/carbon/xenomorph/mutators/strains/drone/gardener.dm b/code/modules/mob/living/carbon/xenomorph/strains/castes/drone/gardener.dm similarity index 85% rename from code/modules/mob/living/carbon/xenomorph/mutators/strains/drone/gardener.dm rename to code/modules/mob/living/carbon/xenomorph/strains/castes/drone/gardener.dm index c11f0e11f399..d54d268f12d9 100644 --- a/code/modules/mob/living/carbon/xenomorph/mutators/strains/drone/gardener.dm +++ b/code/modules/mob/living/carbon/xenomorph/strains/castes/drone/gardener.dm @@ -1,44 +1,41 @@ -/datum/xeno_mutator/gardener - name = "STRAIN: Drone - Gardener" - description = "You trade your choice of resin secretions, your corrosive acid, and your ability to transfer plasma for a tiny bit of extra health regeneration on weeds and several new abilities, including the ability to plant hardier weeds, temporarily reinforce structures with your plasma, and to plant up to six potent resin fruits for your sisters by secreting your vital fluids at the cost of a bit of your health for each fruit you shape." +/datum/xeno_strain/gardener + name = DRONE_GARDENER + description = "You trade your choice of resin secretions, your corrosive acid, and your ability to transfer plasma for a tiny bit of extra health regeneration on weeds and several new abilities, including the ability to plant hardier weeds, temporarily reinforce structures with your plasma, and to plant up to six potent resin fruits for your sisters by secreting your vital fluids at the cost of a bit of your health for each fruit you shape. You can use Resin Surge to speed up the growth of your fruits." flavor_description = "The glory of gardening: hands in the weeds, head in the dark, heart with resin." - cost = MUTATOR_COST_EXPENSIVE - individual_only = TRUE - caste_whitelist = list(XENO_CASTE_DRONE) //Only drone. - mutator_actions_to_remove = list( + + actions_to_remove = list( /datum/action/xeno_action/activable/secrete_resin, /datum/action/xeno_action/onclick/choose_resin, /datum/action/xeno_action/activable/corrosive_acid/weak, /datum/action/xeno_action/activable/transfer_plasma, ) - mutator_actions_to_add = list( + actions_to_add = list( /datum/action/xeno_action/onclick/plant_weeds/gardener, // second macro /datum/action/xeno_action/activable/resin_surge, // third macro /datum/action/xeno_action/onclick/plant_resin_fruit/greater, // fourth macro /datum/action/xeno_action/onclick/change_fruit, + /datum/action/xeno_action/activable/transfer_plasma, ) - keystone = TRUE - behavior_delegate_type = /datum/behavior_delegate/drone_gardener -/datum/xeno_mutator/gardener/apply_mutator(datum/mutator_set/individual_mutators/mutator_set) - . = ..() - if (. == 0) - return + behavior_delegate_type = /datum/behavior_delegate/drone_gardener - var/mob/living/carbon/xenomorph/drone/drone = mutator_set.xeno - drone.mutation_type = DRONE_GARDENER - drone.available_fruits = list(/obj/effect/alien/resin/fruit/greater, /obj/effect/alien/resin/fruit/unstable, /obj/effect/alien/resin/fruit/spore, /obj/effect/alien/resin/fruit/speed, /obj/effect/alien/resin/fruit/plasma) +/datum/xeno_strain/gardener/apply_strain(mob/living/carbon/xenomorph/drone/drone) + drone.available_fruits = list( + /obj/effect/alien/resin/fruit/greater, + /obj/effect/alien/resin/fruit/unstable, + /obj/effect/alien/resin/fruit/spore, + /obj/effect/alien/resin/fruit/speed, + /obj/effect/alien/resin/fruit/plasma + ) drone.selected_fruit = /obj/effect/alien/resin/fruit/greater drone.max_placeable = 6 drone.regeneration_multiplier = XENO_REGEN_MULTIPLIER_TIER_1 - mutator_update_actions(drone) - apply_behavior_holder(drone) + // Also change the primacy value for our place construction ability (because we want it in the same place but have another primacy ability) for(var/datum/action/xeno_action/action in drone.actions) if(istype(action, /datum/action/xeno_action/activable/place_construction)) action.ability_primacy = XENO_NOT_PRIMARY_ACTION break // Don't need to keep looking - mutator_set.recalculate_actions(description, flavor_description) /datum/action/xeno_action/onclick/plant_resin_fruit name = "Plant Resin Fruit (50)" @@ -76,7 +73,7 @@ var/turf/target_turf = xeno.loc if(!istype(target_turf)) - to_chat(xeno, SPAN_WARNING("You cannot plant a fruit without a weed garden.")) + to_chat(xeno, SPAN_WARNING("We cannot plant a fruit without a weed garden.")) return var/obj/effect/alien/weeds/target_weeds = locate(/obj/effect/alien/weeds) in target_turf @@ -85,26 +82,26 @@ return if(target_weeds.hivenumber != xeno.hivenumber) - to_chat(xeno, SPAN_WARNING("These weeds do not belong to your hive; they reject your fruit.")) + to_chat(xeno, SPAN_WARNING("These weeds do not belong to our hive; they reject our fruit.")) return if(locate(/obj/effect/alien/resin/trap) in range(1, target_turf)) to_chat(xeno, SPAN_XENOWARNING("This location is too close to a resin hole!")) return - if(locate(/obj/effect/alien/resin/fruit) in range(1, target_turf)) + if(locate(/obj/effect/alien/resin/fruit) in target_turf) to_chat(xeno, SPAN_XENOWARNING("This location is too close to another fruit!")) return if (check_and_use_plasma_owner()) if(length(xeno.current_fruits) >= xeno.max_placeable) - to_chat(xeno, SPAN_XENOWARNING("You cannot sustain another fruit, one will wither away to allow this one to live!")) + to_chat(xeno, SPAN_XENOWARNING("We cannot sustain another fruit, one will wither away to allow this one to live!")) var/obj/effect/alien/resin/fruit/old_fruit = xeno.current_fruits[1] xeno.current_fruits.Remove(old_fruit) qdel(old_fruit) xeno.visible_message(SPAN_XENONOTICE("\The [xeno] secretes fluids and shape it into a fruit!"), \ - SPAN_XENONOTICE("You secrete a portion of your vital fluids and shape them into a fruit!"), null, 5) + SPAN_XENONOTICE("We secrete a portion of our vital fluids and shape them into a fruit!"), null, 5) var/obj/effect/alien/resin/fruit/fruit = new xeno.selected_fruit(target_weeds.loc, target_weeds, xeno) if(!fruit) @@ -209,7 +206,7 @@ return var/obj/effect/alien/resin/fruit/fruit = selected_type - to_chat(xeno, SPAN_NOTICE("You will now build [initial(fruit.name)]\s when secreting resin.")) + to_chat(xeno, SPAN_NOTICE("We will now build [initial(fruit.name)]\s when secreting resin.")) //update the button's overlay with new choice xeno.update_icons() button.overlays.Cut() @@ -252,7 +249,7 @@ if(ismob(target_atom)) // to prevent using thermal vision to bypass clickcatcher if(!can_see(xeno, target_atom, max_range)) - to_chat(xeno, SPAN_XENODANGER("You cannot see that location!")) + to_chat(xeno, SPAN_XENODANGER("We cannot see that location!")) return else if(get_dist(xeno, target_atom) > max_range) @@ -287,9 +284,9 @@ if(!buff_already_present) new /datum/effects/xeno_structure_reinforcement(structure_to_buff, xeno, ttl = 15 SECONDS) xeno.visible_message(SPAN_XENODANGER("\The [xeno] surges the resin around [structure_to_buff], making it temporarily nigh unbreakable!"), \ - SPAN_XENONOTICE("You surge the resin around [structure_to_buff], making it temporarily nigh unbreakable!"), null, 5) + SPAN_XENONOTICE("We surge the resin around [structure_to_buff], making it temporarily nigh unbreakable!"), null, 5) else - to_chat(xeno, SPAN_XENONOTICE("You haplessly try to surge resin around [structure_to_buff], but it's already reinforced. It'll take a moment for you to recover.")) + to_chat(xeno, SPAN_XENONOTICE("We haplessly try to surge resin around [structure_to_buff], but it's already reinforced. It'll take a moment for us to recover.")) xeno_cooldown = xeno_cooldown * 0.5 else if(F && F.hivenumber == xeno.hivenumber) @@ -297,12 +294,12 @@ to_chat(xeno, SPAN_XENONOTICE("The [F] is already mature. The [src.name] does nothing.")) xeno_cooldown = xeno_cooldown * 0.5 else - to_chat(xeno, SPAN_XENONOTICE("You surge the resin around the [F], speeding its growth somewhat!")) + to_chat(xeno, SPAN_XENONOTICE("We surge the resin around the [F], speeding its growth somewhat!")) F.reduce_timer(5 SECONDS) else if(target_weeds && istype(target_turf, /turf/open) && target_weeds.hivenumber == xeno.hivenumber) xeno.visible_message(SPAN_XENODANGER("\The [xeno] surges the resin, creating an unstable wall!"), \ - SPAN_XENONOTICE("You surge the resin, creating an unstable wall!"), null, 5) + SPAN_XENONOTICE("We surge the resin, creating an unstable wall!"), null, 5) target_turf.PlaceOnTop(/turf/closed/wall/resin/weak) var/turf/closed/wall/resin/weak_wall = target_turf weak_wall.hivenumber = xeno.hivenumber @@ -317,7 +314,7 @@ return channel_in_progress = FALSE xeno.visible_message(SPAN_XENODANGER("\The [xeno] surges deep resin, creating an unstable sticky resin patch!"), \ - SPAN_XENONOTICE("You surge the deep resin, creating an unstable sticky resin patch!"), null, 5) + SPAN_XENONOTICE("We surge the deep resin, creating an unstable sticky resin patch!"), null, 5) for (var/turf/targetTurf in orange(1, target_turf)) if(!locate(/obj/effect/alien/resin/sticky) in targetTurf) new /obj/effect/alien/resin/sticky/thin/weak(targetTurf, xeno.hivenumber) @@ -367,9 +364,6 @@ var/mutable_appearance/fruit_sac_overlay_icon -/datum/behavior_delegate/drone_gardener/add_to_xeno() - on_update_icons() - /datum/behavior_delegate/drone_gardener/on_update_icons() if(!fruit_sac_overlay_icon) fruit_sac_overlay_icon = mutable_appearance('icons/mob/xenos/drone_strain_overlays.dmi', "Gardener Drone Walking") diff --git a/code/modules/mob/living/carbon/xenomorph/strains/castes/drone/healer.dm b/code/modules/mob/living/carbon/xenomorph/strains/castes/drone/healer.dm new file mode 100644 index 000000000000..5ebafc88eaef --- /dev/null +++ b/code/modules/mob/living/carbon/xenomorph/strains/castes/drone/healer.dm @@ -0,0 +1,291 @@ +/datum/xeno_strain/healer + name = DRONE_HEALER + description = "You lose your choice of resin secretions, a chunk of your slash damage, and you will experience a slighty-increased difficulty in tackling hosts in exchange for strong pheromones, the ability to use a bit of your health to plant a maximum of three lesser resin fruits, and the ability to heal your sisters' wounds by secreting a regenerative resin salve by using your vital fluids and a fifth of your plasma. Be wary, this is a dangerous process; overexert yourself and you may exhaust yourself to unconsciousness, or die..." + flavor_description = "Divided we fall, united we win. We live for the hive, we die for the hive." + icon_state_prefix = "Healer" + + actions_to_remove = list( + /datum/action/xeno_action/activable/secrete_resin, + /datum/action/xeno_action/onclick/choose_resin, + /datum/action/xeno_action/activable/transfer_plasma, + /datum/action/xeno_action/activable/place_construction, // so it doesn't use fifth macro + /datum/action/xeno_action/onclick/plant_weeds, // so it doesn't break order + ) + actions_to_add = list( + /datum/action/xeno_action/activable/place_construction/not_primary, // so it doesn't use fifth macro + /datum/action/xeno_action/onclick/plant_weeds, // so it doesn't break order + /datum/action/xeno_action/onclick/plant_resin_fruit, // Second macro. Resin fruits belong to Gardener, but Healer has a minor variant. + /datum/action/xeno_action/activable/apply_salve, //Third macro, heal over time ability. + /datum/action/xeno_action/activable/transfer_plasma/healer, //Fourth macro, an improved plasma transfer. + /datum/action/xeno_action/activable/healer_sacrifice, //Fifth macro, the ultimate ability to sacrifice yourself + ) + + behavior_delegate_type = /datum/behavior_delegate/drone_healer + +/datum/xeno_strain/healer/apply_strain(mob/living/carbon/xenomorph/drone/drone) + drone.phero_modifier += XENO_PHERO_MOD_LARGE + drone.plasma_types += PLASMA_PHEROMONE + drone.damage_modifier -= XENO_DAMAGE_MOD_VERY_SMALL + drone.tackle_chance_modifier -= 5 + + drone.max_placeable = 3 + drone.available_fruits = list(/obj/effect/alien/resin/fruit) + drone.selected_fruit = /obj/effect/alien/resin/fruit + + drone.recalculate_everything() + +/* + Improved Plasma Transfer +*/ + +/datum/action/xeno_action/activable/transfer_plasma/healer //Improved plasma transfer, but not as much as Hivey. + ability_primacy = XENO_PRIMARY_ACTION_4 + plasma_transfer_amount = 100 + transfer_delay = 15 + max_range = 1 + +/* + Apply Resin Salve +*/ + +/datum/action/xeno_action/activable/apply_salve + name = "Apply Resin Salve" + action_icon_state = "apply_salve" + ability_name = "Apply Resin Salve" + var/health_transfer_amount = 100 + var/max_range = 1 + var/damage_taken_mod = 0.75 + macro_path = /datum/action/xeno_action/verb/verb_apply_salve + action_type = XENO_ACTION_CLICK + ability_primacy = XENO_PRIMARY_ACTION_3 + +/datum/action/xeno_action/activable/apply_salve/use_ability(atom/target_atom) + var/mob/living/carbon/xenomorph/xeno = owner + xeno.xeno_apply_salve(target_atom, health_transfer_amount, max_range, damage_taken_mod) + return ..() + +/datum/action/xeno_action/verb/verb_apply_salve() + set category = "Alien" + set name = "Apply Resin Salve" + set hidden = TRUE + var/action_name = "Apply Resin Salve" + handle_xeno_macro(src, action_name) + +/mob/living/carbon/xenomorph/proc/xeno_apply_salve(mob/living/carbon/xenomorph/target_xeno, amount = 100, max_range = 1, damage_taken_mod = 0.75) + + if(!check_plasma(amount * 2)) + return + + if(!istype(target_xeno)) + return + + if(target_xeno == src) + to_chat(src, SPAN_XENOWARNING("We can't heal ourself with our own resin salve!")) + return + + if(!check_state()) + return + + if(SEND_SIGNAL(target_xeno, COMSIG_XENO_PRE_HEAL) & COMPONENT_CANCEL_XENO_HEAL) + to_chat(src, SPAN_XENOWARNING("Extinguish [target_xeno] first or the flames will burn our resin salve away!")) + return + + if(!can_not_harm(target_xeno)) //We don't wanna heal hostile hives, but we do want to heal our allies! + to_chat(src, SPAN_XENOWARNING("[target_xeno] is hostile to our hive!")) + return + + if(!isturf(loc)) + to_chat(src, SPAN_XENOWARNING("We can't apply our resin salve from here!")) + return + + if(get_dist(src, target_xeno) > max_range) + to_chat(src, SPAN_XENOWARNING("We need to be closer to [target_xeno] to apply our resin salve!")) + return + + if(target_xeno.stat == DEAD) + to_chat(src, SPAN_XENOWARNING("[target_xeno] is dead!")) + return + + if(target_xeno.health >= target_xeno.maxHealth) + to_chat(src, SPAN_XENOWARNING("[target_xeno] is already at max health!")) + return + + //Tiny xenos (Larva and Facehuggers), don't need as much health so don't cost as much. + if(target_xeno.mob_size == MOB_SIZE_SMALL) + amount = amount * 0.15 + damage_taken_mod = 1 + + //Forces an equivalent exchange of health between healers so they do not spam heal each other to full health. + var/target_is_healer = istype(target_xeno.strain, /datum/xeno_strain/healer) + if(target_is_healer) + damage_taken_mod = 1 + + face_atom(target_xeno) + adjustBruteLoss(amount * damage_taken_mod) + use_plasma(amount * 2) + updatehealth() + new /datum/effects/heal_over_time(target_xeno, amount, 10, 1) + target_xeno.xeno_jitter(1 SECONDS) + target_xeno.flick_heal_overlay(10 SECONDS, "#00be6f") + to_chat(target_xeno, SPAN_XENOWARNING("[src] covers our wounds with a regenerative resin salve. We feel reinvigorated!")) + to_chat(src, SPAN_XENOWARNING("We regurgitate our vital fluids and some plasma to create a regenerative resin salve and apply it to [target_xeno]'s wounds. We feel weakened...")) + playsound(src, "alien_drool", 25) + var/datum/behavior_delegate/drone_healer/healer_delegate = behavior_delegate + healer_delegate.salve_applied_recently = TRUE + if(!target_is_healer && !isfacehugger(target_xeno)) // no cheap grinding + healer_delegate.modify_transferred(amount * damage_taken_mod) + update_icons() + addtimer(CALLBACK(healer_delegate, /datum/behavior_delegate/drone_healer/proc/un_salve), 10 SECONDS, TIMER_OVERRIDE|TIMER_UNIQUE) + +/datum/behavior_delegate/drone_healer + name = "Healer Drone Behavior Delegate" + + var/salve_applied_recently = FALSE + var/mutable_appearance/salve_applied_icon + + var/transferred_amount = 0 + var/required_transferred_amount = 7500 + +/datum/behavior_delegate/drone_healer/on_update_icons() + if(!salve_applied_icon) + salve_applied_icon = mutable_appearance('icons/mob/xenos/drone_strain_overlays.dmi',"Healer Drone Walking") + + bound_xeno.overlays -= salve_applied_icon + salve_applied_icon.overlays.Cut() + + if(!salve_applied_recently) + return + + if(bound_xeno.stat == DEAD) + salve_applied_icon.icon_state = "Healer Drone Dead" + else if(bound_xeno.body_position == LYING_DOWN) + if(!HAS_TRAIT(bound_xeno, TRAIT_INCAPACITATED) && !HAS_TRAIT(bound_xeno, TRAIT_FLOORED)) + salve_applied_icon.icon_state = "Healer Drone Sleeping" + else + salve_applied_icon.icon_state = "Healer Drone Knocked Down" + else + salve_applied_icon.icon_state = "Healer Drone Walking" + + bound_xeno.overlays += salve_applied_icon + +/datum/behavior_delegate/drone_healer/proc/un_salve() + salve_applied_recently = FALSE + bound_xeno.update_icons() + +/* + SACRIFICE +*/ + +/datum/behavior_delegate/drone_healer/proc/modify_transferred(amount) + transferred_amount += amount + +/datum/behavior_delegate/drone_healer/append_to_stat() + . = list() + . += "Transferred health amount: [transferred_amount]/[required_transferred_amount]" + if(transferred_amount >= required_transferred_amount) + . += "Sacrifice will grant you new life." + +/datum/behavior_delegate/drone_healer/on_life() + if(!bound_xeno) + return + if(bound_xeno.stat == DEAD) + return + var/image/holder = bound_xeno.hud_list[PLASMA_HUD] + holder.overlays.Cut() + var/percentage_transferred = min(round((transferred_amount / required_transferred_amount) * 100, 10), 100) + if(percentage_transferred) + holder.overlays += image('icons/mob/hud/hud.dmi', "xenoenergy[percentage_transferred]") + +/datum/behavior_delegate/drone_healer/handle_death(mob/M) + var/image/holder = bound_xeno.hud_list[PLASMA_HUD] + holder.overlays.Cut() + +/datum/action/xeno_action/activable/healer_sacrifice + name = "Sacrifice" + action_icon_state = "screech" + ability_name = "sacrifice" + var/max_range = 1 + var/transfer_mod = 0.75 // only transfers 75% of current healer's health + macro_path = /datum/action/xeno_action/verb/verb_healer_sacrifice + action_type = XENO_ACTION_CLICK + ability_primacy = XENO_PRIMARY_ACTION_5 + +/datum/action/xeno_action/verb/verb_healer_sacrifice() + set category = "Alien" + set name = "Sacrifice" + set hidden = TRUE + var/action_name = "Sacrifice" + handle_xeno_macro(src, action_name) + +/datum/action/xeno_action/activable/healer_sacrifice/use_ability(atom/atom) + var/mob/living/carbon/xenomorph/xeno = owner + var/mob/living/carbon/xenomorph/target = atom + + if(!istype(target)) + return + + if(target == xeno) + to_chat(xeno, "We can't heal ourself!") + return + + if(isfacehugger(target) || islesserdrone(target)) + to_chat(xeno, "It would be a waste...") + return + + if(!xeno.check_state()) + return + + if(!xeno.can_not_harm(target)) //so we can heal only allies + to_chat(xeno, SPAN_WARNING("[target] is an enemy of our hive!")) + return + + if(target.stat == DEAD) + to_chat(xeno, SPAN_WARNING("[target] is already dead!")) + return + + if(target.health >= target.maxHealth) + to_chat(xeno, SPAN_WARNING("[target] is already at max health!")) + return + + if(!isturf(xeno.loc)) + to_chat(xeno, SPAN_WARNING("We cannot transfer health from here!")) + return + + if(get_dist(xeno, target) > max_range) + to_chat(xeno, SPAN_WARNING("We need to be closer to [target].")) + return + + xeno.say(";MY LIFE FOR THE QUEEN!!!") + + target.gain_health(xeno.health * transfer_mod) + target.updatehealth() + + target.xeno_jitter(1 SECONDS) + target.flick_heal_overlay(3 SECONDS, "#44253d") + + target.visible_message(SPAN_XENONOTICE("[xeno] explodes in a deluge of regenerative resin salve, covering [target] in it!")) + xeno_message(SPAN_XENOANNOUNCE("[xeno] sacrifices itself to heal [target]!"), 2, target.hive.hivenumber) + + var/datum/behavior_delegate/drone_healer/behavior_delegate = xeno.behavior_delegate + if(istype(behavior_delegate) && behavior_delegate.transferred_amount >= behavior_delegate.required_transferred_amount && xeno.client && xeno.hive) + var/datum/hive_status/hive_status = xeno.hive + var/turf/spawning_turf = get_turf(xeno) + if(!hive_status.hive_location) + addtimer(CALLBACK(xeno.hive, TYPE_PROC_REF(/datum/hive_status, respawn_on_turf), xeno.client, spawning_turf), 0.5 SECONDS) + else + addtimer(CALLBACK(xeno.hive, TYPE_PROC_REF(/datum/hive_status, free_respawn), xeno.client), 5 SECONDS) + + xeno.gib(create_cause_data("sacrificing itself", src)) + +/datum/action/xeno_action/activable/healer_sacrifice/action_activate() + ..() + var/mob/living/carbon/xenomorph/xeno = owner + if(xeno.selected_ability != src) + return + var/datum/behavior_delegate/drone_healer/behavior_delegate = xeno.behavior_delegate + if(!istype(behavior_delegate)) + return + if(behavior_delegate.transferred_amount < behavior_delegate.required_transferred_amount) + to_chat(xeno, SPAN_HIGHDANGER("Warning: [name] is a last measure skill. Using it will kill us.")) + else + to_chat(xeno, SPAN_HIGHDANGER("Warning: [name] is a last measure skill. Using it will kill us, but new life will be granted for our hard work for the hive.")) diff --git a/code/modules/mob/living/carbon/xenomorph/strains/castes/facehugger/watcher.dm b/code/modules/mob/living/carbon/xenomorph/strains/castes/facehugger/watcher.dm new file mode 100644 index 000000000000..c5e1cff29c63 --- /dev/null +++ b/code/modules/mob/living/carbon/xenomorph/strains/castes/facehugger/watcher.dm @@ -0,0 +1,31 @@ +/datum/xeno_strain/watcher + name = FACEHUGGER_WATCHER + description = "You lose your ability to hide in exchange to see further. This enables you to stalk your host from a distance and wait for the perfect oppertunity to strike." + flavor_description = "No need to hide when you can see the danger." + + actions_to_remove = list( + /datum/action/xeno_action/onclick/xenohide, + ) + actions_to_add = list( + /datum/action/xeno_action/onclick/toggle_long_range/facehugger, + ) + + behavior_delegate_type = /datum/behavior_delegate/facehugger_watcher + +/datum/xeno_strain/watcher/apply_strain(mob/living/carbon/xenomorph/facehugger/huggy) + huggy.viewsize = 10 + huggy.layer = initial(huggy.layer) + +// This has no special effects, it's just here to skip `/datum/behavior_delegate/facehugger_base/on_life()`. +/datum/behavior_delegate/facehugger_watcher + name = "Watcher Facehugger Behavior Delegate" + +/datum/behavior_delegate/facehugger_watcher/on_life() + // Sap health if we're standing, not on weeds, and not zoomed out + if(bound_xeno.body_position != STANDING_UP) + return + if(bound_xeno.is_zoomed) + return + if(locate(/obj/effect/alien/weeds) in get_turf(bound_xeno)) + return + bound_xeno.adjustBruteLoss(1) diff --git a/code/modules/mob/living/carbon/xenomorph/strains/castes/hivelord/resin_whisperer.dm b/code/modules/mob/living/carbon/xenomorph/strains/castes/hivelord/resin_whisperer.dm new file mode 100644 index 000000000000..747463eb5ee5 --- /dev/null +++ b/code/modules/mob/living/carbon/xenomorph/strains/castes/hivelord/resin_whisperer.dm @@ -0,0 +1,119 @@ +/datum/xeno_strain/resin_whisperer + name = HIVELORD_RESIN_WHISPERER + description = "You lose your corrosive acid, your ability to secrete thick resin, your ability to reinforce resin secretions, sacrifice your ability to plant weed nodes outside of weeds, and you sacrifice a fifth of your plasma reserves to enhance your vision and gain a stronger connection to the resin. You can now remotely place resin secretions including weed nodes up to a distance of twelve paces!" + flavor_description = "We let the resin guide us. It whispers, so listen closely." + icon_state_prefix = "Resin Whisperer" + + actions_to_remove = list( + /datum/action/xeno_action/onclick/plant_weeds, + /datum/action/xeno_action/activable/secrete_resin/hivelord, + /datum/action/xeno_action/activable/corrosive_acid, + /datum/action/xeno_action/activable/transfer_plasma/hivelord, + /datum/action/xeno_action/active_toggle/toggle_speed, + ) + actions_to_add = list( + /datum/action/xeno_action/activable/secrete_resin/remote, //third macro + /datum/action/xeno_action/activable/transfer_plasma/hivelord, // readding it so it gets at the end of the ability list + /datum/action/xeno_action/active_toggle/toggle_speed, // readding it so it gets at the end of the ability list + ) + +/datum/xeno_strain/resin_whisperer/apply_strain(mob/living/carbon/xenomorph/hivelord/hivelord) + hivelord.plasmapool_modifier = 0.8 // -20% plasma pool + hivelord.extra_build_dist = 12 // 1 + 12 = 13 tile build range + hivelord.can_stack_builds = TRUE + hivelord.recalculate_plasma() + + hivelord.client?.change_view(10, src) + + hivelord.set_resin_build_order(GLOB.resin_build_order_hivelord_whisperer) + for(var/datum/action/xeno_action/action in hivelord.actions) + // Also update the choose_resin icon since it resets + if(istype(action, /datum/action/xeno_action/onclick/choose_resin)) + var/datum/action/xeno_action/onclick/choose_resin/choose_resin_ability = action + if(choose_resin_ability) + choose_resin_ability.update_button_icon(hivelord.selected_resin) + break // Don't need to keep looking + +/* + * Coerce Resin ability + */ + +// Remote resin building +/datum/action/xeno_action/activable/secrete_resin/remote + name = "Coerce Resin (100)" + action_icon_state = "secrete_resin" + ability_name = "coerce resin" + var/last_use = 0 + xeno_cooldown = 1 SECONDS + thick = FALSE + make_message = FALSE + + no_cooldown_msg = TRUE + + var/care_about_adjacency = TRUE + build_speed_mod = 2 // the actual building part takes twice as long + + macro_path = /datum/action/xeno_action/verb/verb_coerce_resin + action_type = XENO_ACTION_CLICK + +/datum/action/xeno_action/activable/secrete_resin/remote/use_ability(atom/target_atom, mods) + if(!can_remote_build()) + to_chat(owner, SPAN_XENONOTICE("We must be standing on weeds to establish a connection to the resin.")) + return + + if(!action_cooldown_check()) + return + + if(mods["click_catcher"]) + return + + var/turf/target_turf = get_turf(target_atom) + if(!target_turf) + return + + if(!(target_turf in view(10, owner))) + to_chat(owner, SPAN_XENONOTICE("We must have a direct line of sight!")) + return + + /// Check if the target is a resin door and open or close it + if(istype(target_atom, /obj/structure/mineral_door/resin)) + var/obj/structure/mineral_door/resin/resin_door = target_atom + resin_door.TryToSwitchState(owner) + if(resin_door.state) + to_chat(owner, SPAN_XENONOTICE("We focus our connection to the resin and remotely close the resin door.")) + else + to_chat(owner, SPAN_XENONOTICE("We focus our connection to the resin and remotely open the resin door.")) + return + + // since actions are instanced per hivelord, and only one construction can be made at a time, tweaking the datum on the fly here is fine. you're going to have to figure something out if these conditions change, though + if(care_about_adjacency) + if(owner.Adjacent(target_turf)) + build_speed_mod = 1 + else + build_speed_mod = initial(build_speed_mod) + + var/mob/living/carbon/xenomorph/hivelord = owner + if(!..()) + return + + if(!hivelord.selected_resin) + return + + var/datum/resin_construction/resing_construction = GLOB.resin_constructions_list[hivelord.selected_resin] + target_turf.visible_message(SPAN_XENONOTICE("The weeds begin pulsating wildly and secrete resin in the shape of \a [resing_construction.construction_name]!"), null, 5) + to_chat(owner, SPAN_XENONOTICE("We focus our plasma into the weeds below us and force the weeds to secrete resin in the shape of \a [resing_construction.construction_name].")) + playsound(target_turf, "alien_resin_build", 25) + return TRUE + +// By default, the xeno must be on a weed tile in order to build from a distance. +/datum/action/xeno_action/activable/secrete_resin/remote/proc/can_remote_build() + if(!locate(/obj/effect/alien/weeds) in get_turf(owner)) + return FALSE + return TRUE + +/datum/action/xeno_action/verb/verb_coerce_resin() + set category = "Alien" + set name = "Coerce Resin" + set hidden = TRUE + var/action_name = "Coerce Resin (150)" + handle_xeno_macro(src, action_name) diff --git a/code/modules/mob/living/carbon/xenomorph/strains/castes/lurker/vampire.dm b/code/modules/mob/living/carbon/xenomorph/strains/castes/lurker/vampire.dm new file mode 100644 index 000000000000..820aa662c919 --- /dev/null +++ b/code/modules/mob/living/carbon/xenomorph/strains/castes/lurker/vampire.dm @@ -0,0 +1,32 @@ +/datum/xeno_strain/vampire + name = LURKER_VAMPIRE + description = "You lose all of your abilities and you forefeit a chunk of your health and damage in exchange for a large amount of armor, a little bit of movement speed, increased attack speed, and brand new abilities that make you an assassin. Rush on your opponent to disorient them and Flurry to unleash a forward cleave that can hit and slow three talls and heal you for every tall you hit. Use your special AoE Tail Jab to knock talls away, doing more damage with direct hits and even more damage and a stun if they smack into walls. Finally, execute unconscious talls with a headbite to heal your wounds." + flavor_description = "Show no mercy! Slaughter them all!" + icon_state_prefix = "Vampire" + + actions_to_remove = list( + /datum/action/xeno_action/onclick/lurker_invisibility, + /datum/action/xeno_action/onclick/lurker_assassinate, + /datum/action/xeno_action/activable/pounce/lurker, + /datum/action/xeno_action/activable/tail_stab, + ) + actions_to_add = list( + /datum/action/xeno_action/activable/pounce/rush, + /datum/action/xeno_action/activable/flurry, + /datum/action/xeno_action/activable/tail_jab, + /datum/action/xeno_action/activable/headbite, + ) + +/datum/xeno_strain/vampire/apply_strain(mob/living/carbon/xenomorph/lurker/lurker) + lurker.plasmapool_modifier = 0 + lurker.health_modifier -= XENO_HEALTH_MOD_MED + lurker.speed_modifier += XENO_SPEED_FASTMOD_TIER_1 + lurker.armor_modifier += XENO_ARMOR_MOD_LARGE + lurker.damage_modifier -= XENO_DAMAGE_MOD_VERY_SMALL + lurker.attack_speed_modifier -= 2 + + var/datum/mob_hud/execute_hud = GLOB.huds[MOB_HUD_EXECUTE] + execute_hud.add_hud_to(lurker, lurker) + lurker.execute_hud = TRUE + + lurker.recalculate_everything() diff --git a/code/modules/mob/living/carbon/xenomorph/strains/castes/praetorian/dancer.dm b/code/modules/mob/living/carbon/xenomorph/strains/castes/praetorian/dancer.dm new file mode 100644 index 000000000000..7de4b93aad19 --- /dev/null +++ b/code/modules/mob/living/carbon/xenomorph/strains/castes/praetorian/dancer.dm @@ -0,0 +1,58 @@ +/datum/xeno_strain/dancer + // My name is Cuban Pete, I'm the King of the Rumba Beat + name = PRAETORIAN_DANCER + description = "You lose all of your acid-based abilities and a small amount of your armor in exchange for increased movement speed, evasion, and unparalleled agility that gives you an ability to move even more quickly, dodge bullets, and phase through enemies and allies alike. By slashing enemies, you temporarily increase your movement speed and you also you apply a tag that changes how your two new tail abilities function. By tagging enemies, you will make Impale hit twice instead of once and make Tail Trip knock enemies down instead of stunning them." + flavor_description = "A performance fit for a Queen, this one will become my instrument of death." + icon_state_prefix = "Dancer" + + actions_to_remove = list( + /datum/action/xeno_action/activable/xeno_spit, + /datum/action/xeno_action/activable/pounce/base_prae_dash, + /datum/action/xeno_action/activable/prae_acid_ball, + /datum/action/xeno_action/activable/spray_acid/base_prae_spray_acid, + ) + actions_to_add = list( + /datum/action/xeno_action/activable/prae_impale, + /datum/action/xeno_action/onclick/prae_dodge, + /datum/action/xeno_action/activable/prae_tail_trip, + ) + + behavior_delegate_type = /datum/behavior_delegate/praetorian_dancer + +/datum/xeno_strain/dancer/apply_strain(mob/living/carbon/xenomorph/praetorian/prae) + prae.armor_modifier -= XENO_ARMOR_MOD_VERY_SMALL + prae.speed_modifier += XENO_SPEED_FASTMOD_TIER_5 + prae.plasma_types = list(PLASMA_CATECHOLAMINE) + prae.claw_type = CLAW_TYPE_SHARP + + prae.recalculate_everything() + +/datum/behavior_delegate/praetorian_dancer + name = "Praetorian Dancer Behavior Delegate" + + var/evasion_buff_amount = 40 + var/evasion_buff_ttl = 25 // 2.5 seconds seems reasonable + + // State + var/next_slash_buffed = FALSE + var/slash_evasion_buffed = FALSE + var/slash_evasion_timer = TIMER_ID_NULL + var/dodge_activated = FALSE + + +/datum/behavior_delegate/praetorian_dancer/melee_attack_additional_effects_target(mob/living/carbon/target_carbon) + if (!isxeno_human(target_carbon)) + return + + if (target_carbon.stat) + return + + // Clean up all tags to 'refresh' our TTL + for (var/datum/effects/dancer_tag/target_tag in target_carbon.effects_list) + qdel(target_tag) + + new /datum/effects/dancer_tag(target_carbon, bound_xeno, , , 35) + + if(ishuman(target_carbon)) + var/mob/living/carbon/human/target_human = target_carbon + target_human.update_xeno_hostile_hud() diff --git a/code/modules/mob/living/carbon/xenomorph/strains/castes/praetorian/oppressor.dm b/code/modules/mob/living/carbon/xenomorph/strains/castes/praetorian/oppressor.dm new file mode 100644 index 000000000000..b9541a13ca80 --- /dev/null +++ b/code/modules/mob/living/carbon/xenomorph/strains/castes/praetorian/oppressor.dm @@ -0,0 +1,47 @@ +/datum/xeno_strain/oppressor + // Dread it, run from it, destiny still arrives... or should I say, I do + name = PRAETORIAN_OPPRESSOR + description = "You abandon all of your acid-based abilities, your dash, some speed, and a bit of your slash damage for some resistance against small explosives, slashes that deal extra damage to prone targets, and a powerful hook ability that pulls up to three enemies towards you, slows them, and has varying effects depending on how many enemies you pull. You also gain a powerful punch that reduces your other abilities' cooldowns, pierces through armor, and does double damage in addition to rooting slowed targets. You can also knock enemies back and slow them with your new Tail Lash and quickly grab a tall, slow it, and pull it towards you with your unique Tail Stab." + flavor_description = "My reach is endless, this one will pull down the heavens." + icon_state_prefix = "Oppressor" + + actions_to_remove = list( + /datum/action/xeno_action/activable/tail_stab, + /datum/action/xeno_action/activable/xeno_spit, + /datum/action/xeno_action/activable/pounce/base_prae_dash, + /datum/action/xeno_action/activable/prae_acid_ball, + /datum/action/xeno_action/activable/spray_acid/base_prae_spray_acid, + /datum/action/xeno_action/activable/corrosive_acid, + ) + actions_to_add = list( + /datum/action/xeno_action/activable/tail_stab/tail_seize, + /datum/action/xeno_action/activable/prae_abduct, + /datum/action/xeno_action/activable/oppressor_punch, + /datum/action/xeno_action/activable/tail_lash, + ) + + behavior_delegate_type = /datum/behavior_delegate/oppressor_praetorian + +/datum/xeno_strain/oppressor/apply_strain(mob/living/carbon/xenomorph/praetorian/prae) + prae.damage_modifier -= XENO_DAMAGE_MOD_SMALL + prae.explosivearmor_modifier += XENO_EXPOSIVEARMOR_MOD_SMALL + prae.small_explosives_stun = FALSE + prae.speed_modifier += XENO_SPEED_SLOWMOD_TIER_5 + prae.plasma_types = list(PLASMA_NEUROTOXIN, PLASMA_CHITIN) + prae.claw_type = CLAW_TYPE_SHARP + + prae.recalculate_everything() + +/datum/behavior_delegate/oppressor_praetorian + name = "Oppressor Praetorian Behavior Delegate" + var/tearing_damage = 15 + +/datum/behavior_delegate/oppressor_praetorian/melee_attack_additional_effects_target(mob/living/carbon/target_carbon) + if(target_carbon.stat == DEAD) + return + + // impaired in some capacity + if(!(target_carbon.mobility_flags & MOBILITY_STAND) || !(target_carbon.mobility_flags & MOBILITY_MOVE) || target_carbon.slowed) + target_carbon.apply_armoured_damage(get_xeno_damage_slash(target_carbon, tearing_damage), ARMOR_MELEE, BRUTE, bound_xeno.zone_selected ? bound_xeno.zone_selected : "chest") + target_carbon.visible_message(SPAN_DANGER("[bound_xeno] tears into [target_carbon]!")) + playsound(bound_xeno, 'sound/weapons/alien_tail_attack.ogg', 25, TRUE) diff --git a/code/modules/mob/living/carbon/xenomorph/strains/castes/praetorian/vanguard.dm b/code/modules/mob/living/carbon/xenomorph/strains/castes/praetorian/vanguard.dm new file mode 100644 index 000000000000..310db35ab370 --- /dev/null +++ b/code/modules/mob/living/carbon/xenomorph/strains/castes/praetorian/vanguard.dm @@ -0,0 +1,93 @@ +/datum/xeno_strain/vanguard + name = PRAETORIAN_VANGUARD + description = "You forfeit all of your acid-based abilities and some health for some extra speed and a rechargable shield that can block one attack. Use your Pierce from up to three paces away to stab through talls, while stabbing through two or more will completely recharge your shield. Use your charge to plow through enemies and use it again to unleash a powerful AoE slash that reaches up to three paces. You also have a Cleave ability, amplified by your shield, which you can toggle to either immobilize or fling a target away." + flavor_description = "Fearless you are born, fearless you serve, fearless you die. This one will become my Vanguard" + icon_state_prefix = "Vanguard" + + actions_to_remove = list( + /datum/action/xeno_action/activable/xeno_spit, + /datum/action/xeno_action/activable/pounce/base_prae_dash, + /datum/action/xeno_action/activable/prae_acid_ball, + /datum/action/xeno_action/activable/spray_acid/base_prae_spray_acid, + /datum/action/xeno_action/activable/corrosive_acid, + ) + actions_to_add = list( + /datum/action/xeno_action/activable/pierce, + /datum/action/xeno_action/activable/pounce/prae_dash, + /datum/action/xeno_action/activable/cleave, + /datum/action/xeno_action/onclick/toggle_cleave, + ) + + behavior_delegate_type = /datum/behavior_delegate/praetorian_vanguard + +/datum/xeno_strain/vanguard/apply_strain(mob/living/carbon/xenomorph/praetorian/prae) + prae.speed_modifier += XENO_SPEED_FASTMOD_TIER_3 + prae.health_modifier -= XENO_HEALTH_MOD_MED + prae.claw_type = CLAW_TYPE_SHARP + + prae.recalculate_everything() + +/datum/behavior_delegate/praetorian_vanguard + name = "Praetorian Vanguard Behavior Delegate" + + // Config + var/shield_recharge_time = 200 // 20 seconds to recharge 1-hit shield + var/pierce_spin_time = 10 // 1 second to use pierce + var/shield_decay_cleave_time = 15 // How long you have to buffed cleave after the shield fully decays + + // State + var/last_combat_time = 0 + var/last_shield_regen_time = 0 + +/datum/behavior_delegate/praetorian_vanguard/on_life() + if (last_shield_regen_time <= last_combat_time && last_combat_time + shield_recharge_time <= world.time) + regen_shield() + + +/datum/behavior_delegate/praetorian_vanguard/on_hitby_projectile(ammo) + last_combat_time = world.time + return + +/datum/behavior_delegate/praetorian_vanguard/melee_attack_additional_effects_self() + ..() + + last_combat_time = world.time + +/datum/behavior_delegate/praetorian_vanguard/proc/next_pierce_spin() + var/datum/action/xeno_action/activable/pierce/pAction = get_xeno_action_by_type(bound_xeno, /datum/action/xeno_action/activable/pierce) + if (istype(pAction)) + pAction.should_spin_instead = TRUE + + addtimer(CALLBACK(src, PROC_REF(next_pierce_normal)), pierce_spin_time) + return + +/datum/behavior_delegate/praetorian_vanguard/proc/next_pierce_normal() + var/datum/action/xeno_action/activable/pierce/pAction = get_xeno_action_by_type(bound_xeno, /datum/action/xeno_action/activable/pierce) + if (istype(pAction)) + pAction.should_spin_instead = FALSE + return + +/datum/behavior_delegate/praetorian_vanguard/proc/regen_shield() + var/mob/living/carbon/xenomorph/praetorian = bound_xeno + var/datum/xeno_shield/vanguard/found_shield = null + last_shield_regen_time = world.time + for (var/datum/xeno_shield/vanguard/vanguard_shield in praetorian.xeno_shields) + if (vanguard_shield.shield_source == XENO_SHIELD_SOURCE_VANGUARD_PRAE) + found_shield = vanguard_shield + break + + if (found_shield) + qdel(found_shield) + + praetorian.add_xeno_shield(800, XENO_SHIELD_SOURCE_VANGUARD_PRAE, /datum/xeno_shield/vanguard) + + else + var/datum/xeno_shield/vanguard/new_shield = praetorian.add_xeno_shield(800, XENO_SHIELD_SOURCE_VANGUARD_PRAE, /datum/xeno_shield/vanguard) + bound_xeno.explosivearmor_modifier += 1.5*XENO_EXPOSIVEARMOR_MOD_VERY_LARGE + bound_xeno.recalculate_armor() + new_shield.explosive_armor_amount = 1.5*XENO_EXPOSIVEARMOR_MOD_VERY_LARGE + to_chat(praetorian, SPAN_XENOHIGHDANGER("We feel our defensive shell regenerate! It will block one hit!")) + + var/datum/action/xeno_action/activable/cleave/caction = get_xeno_action_by_type(bound_xeno, /datum/action/xeno_action/activable/cleave) + if (istype(caction)) + caction.buffed = TRUE diff --git a/code/modules/mob/living/carbon/xenomorph/strains/castes/praetorian/warden.dm b/code/modules/mob/living/carbon/xenomorph/strains/castes/praetorian/warden.dm new file mode 100644 index 000000000000..9dc9404ee498 --- /dev/null +++ b/code/modules/mob/living/carbon/xenomorph/strains/castes/praetorian/warden.dm @@ -0,0 +1,95 @@ +/datum/xeno_strain/warden + // i mean so basically im braum + name = PRAETORIAN_WARDEN + description = "You trade your acid ball, acid spray, dash, and a small bit of your slash damage and speed to become an effective medic. You gain the ability to emit strong pheromones, an ability that retrieves endangered, knocked-down or resting allies and pulls them to your location, and you gain an internal hitpoint pool that fills with every slash against your enemies, which can be spent to aid your allies and yourself by healing them or curing their ailments." + flavor_description = "This one will deny her sisters' deaths until they earn it. Fight or be forgotten." + icon_state_prefix = "Warden" + + actions_to_remove = list( + /datum/action/xeno_action/activable/xeno_spit, + /datum/action/xeno_action/activable/pounce/base_prae_dash, + /datum/action/xeno_action/activable/prae_acid_ball, + /datum/action/xeno_action/activable/spray_acid/base_prae_spray_acid, + /datum/action/xeno_action/onclick/tacmap, + ) + actions_to_add = list( + /datum/action/xeno_action/onclick/emit_pheromones, + /datum/action/xeno_action/activable/xeno_spit, + /datum/action/xeno_action/activable/spray_acid/prae_warden, + /datum/action/xeno_action/activable/warden_heal, + /datum/action/xeno_action/activable/prae_retrieve, + /datum/action/xeno_action/onclick/prae_switch_heal_type, + /datum/action/xeno_action/onclick/tacmap, + ) + + behavior_delegate_type = /datum/behavior_delegate/praetorian_warden + +/datum/xeno_strain/warden/apply_strain(mob/living/carbon/xenomorph/praetorian/prae) + // Make a 'halftank' + prae.speed_modifier += XENO_SPEED_SLOWMOD_TIER_5 + prae.damage_modifier -= XENO_DAMAGE_MOD_SMALL + + prae.recalculate_everything() + +/datum/behavior_delegate/praetorian_warden + name = "Praetorian Warden Behavior Delegate" + + // Config + var/internal_hitpoints_max = 350 + var/internal_hitpoints_per_attack = 50 + var/internal_hp_per_life = 5 + + + // State + var/internal_hitpoints = 0 + var/transferred_healing = 0 + +/datum/behavior_delegate/praetorian_warden/append_to_stat() + . = list() + . += "Energy Reserves: [internal_hitpoints]/[internal_hitpoints_max]" + . += "Healing Done: [transferred_healing]" + +/datum/behavior_delegate/praetorian_warden/on_life() + internal_hitpoints = min(internal_hitpoints_max, internal_hitpoints + internal_hp_per_life) + + var/mob/living/carbon/xenomorph/praetorian/praetorian = bound_xeno + var/image/holder = praetorian.hud_list[PLASMA_HUD] + holder.overlays.Cut() + + if(praetorian.stat == DEAD) + return + + var/percentage_energy = round((internal_hitpoints / internal_hitpoints_max) * 100, 10) + if(percentage_energy) + holder.overlays += image('icons/mob/hud/hud.dmi', "xenoenergy[percentage_energy]") + +/datum/behavior_delegate/praetorian_warden/handle_death(mob/M) + var/image/holder = bound_xeno.hud_list[PLASMA_HUD] + holder.overlays.Cut() + +/datum/behavior_delegate/praetorian_warden/melee_attack_additional_effects_self() + ..() + + add_internal_hitpoints(internal_hitpoints_per_attack) + +/datum/behavior_delegate/praetorian_warden/ranged_attack_additional_effects_target(atom/target_atom) + if(ismob(target_atom)) + add_internal_hitpoints(internal_hitpoints_per_attack) + +/datum/behavior_delegate/praetorian_warden/proc/add_internal_hitpoints(amount) + if (amount > 0) + if (internal_hitpoints >= internal_hitpoints_max) + return + to_chat(bound_xeno, SPAN_XENODANGER("You feel your internal health reserves increase!")) + internal_hitpoints = clamp(internal_hitpoints + amount, 0, internal_hitpoints_max) + +/datum/behavior_delegate/praetorian_warden/proc/remove_internal_hitpoints(amount) + add_internal_hitpoints(-1*amount) + +/datum/behavior_delegate/praetorian_warden/proc/use_internal_hp_ability(cost) + if (cost > internal_hitpoints) + to_chat(bound_xeno, SPAN_XENODANGER("Your health reserves are insufficient! You need at least [cost] to do that!")) + return FALSE + else + remove_internal_hitpoints(cost) + return TRUE diff --git a/code/modules/mob/living/carbon/xenomorph/mutators/strains/ravager/berserker.dm b/code/modules/mob/living/carbon/xenomorph/strains/castes/ravager/berserker.dm similarity index 81% rename from code/modules/mob/living/carbon/xenomorph/mutators/strains/ravager/berserker.dm rename to code/modules/mob/living/carbon/xenomorph/strains/castes/ravager/berserker.dm index 3694a201afdc..5b8981157bda 100644 --- a/code/modules/mob/living/carbon/xenomorph/mutators/strains/ravager/berserker.dm +++ b/code/modules/mob/living/carbon/xenomorph/strains/castes/ravager/berserker.dm @@ -1,39 +1,28 @@ -/datum/xeno_mutator/berserker - name = "STRAIN: Ravager - Berserker" - description = "You lose your empower, charge, and scissor cut, decrease your health, and sacrifice a bit of your influence under frenzy pheromones to increase your movement speed, slightly increase your armor, and gain a new set of abilities that make you a terrifying melee monster. By slashing, you heal yourself and gain a stack of rage that increases your armor, movement speed, attack speed, and your heals per slash, to a maximum of six rage. Use your new Appehend ability to increase your movement speed and apply a slow on the next target you slash and use your Clothesline ability to fling your target to heal yourself, even more-so if you have a rage stack that will be used up. Finally, use your Eviscerate to unleash a devastating windmill attack that heals you for every host you hit after an immobilizing wind-up." - flavor_description = "They shall be my finest warriors. They will rend and tear, crush and butcher, and maim and rage until every tallhost falls." - cost = MUTATOR_COST_EXPENSIVE - individual_only = TRUE - caste_whitelist = list(XENO_CASTE_RAVAGER) - mutator_actions_to_remove = list( +/datum/xeno_strain/berserker + name = RAVAGER_BERSERKER + description = "You lose your empower, charge, and scissor cut, decrease your health, and sacrifice a bit of your influence under frenzy pheromones to increase your movement speed, slightly increase your armor, and gain a new set of abilities that make you a terrifying melee monster. By slashing, you heal yourself and gain a stack of rage that increases your armor, movement speed, attack speed, and your heals per slash, to a maximum of six rage. Use your new Appehend ability to increase your movement speed and apply a slow on the next target you slash and use your Clothesline ability to fling your target to heal yourself, even more-so if you have a rage stack that will be used up. Finally, use your Eviscerate to unleash a devastating windmill attack that heals you for every enemy you hit after an immobilizing wind-up." + flavor_description = "Unbridled fury fills this one. You will become an extension of my rage." + icon_state_prefix = "Berserker" + + actions_to_remove = list( /datum/action/xeno_action/onclick/empower, /datum/action/xeno_action/activable/pounce/charge, /datum/action/xeno_action/activable/scissor_cut, ) - mutator_actions_to_add = list( + actions_to_add = list( /datum/action/xeno_action/onclick/apprehend, /datum/action/xeno_action/activable/clothesline, /datum/action/xeno_action/activable/eviscerate, ) - keystone = TRUE - behavior_delegate_type = /datum/behavior_delegate/ravager_berserker -/datum/xeno_mutator/berserker/apply_mutator(datum/mutator_set/individual_mutators/mutator_set) - . = ..() - if (. == 0) - return + behavior_delegate_type = /datum/behavior_delegate/ravager_berserker - var/mob/living/carbon/xenomorph/ravager/ravager = mutator_set.xeno - ravager.mutation_type = RAVAGER_BERSERKER +/datum/xeno_strain/berserker/apply_strain(mob/living/carbon/xenomorph/ravager/ravager) ravager.plasma_max = 0 ravager.health_modifier -= XENO_HEALTH_MOD_MED ravager.armor_modifier += XENO_ARMOR_MOD_VERY_SMALL ravager.speed_modifier += XENO_SPEED_FASTMOD_TIER_3 ravager.received_phero_caps["frenzy"] = 2.9 // Moderate - mutator_update_actions(ravager) - mutator_set.recalculate_actions(description, flavor_description) - - apply_behavior_holder(ravager) ravager.recalculate_everything() @@ -52,7 +41,7 @@ // Eviscerate config var/rage_lock_duration = 10 SECONDS // 10 seconds of max rage - var/rage_cooldown_duration = 8 SECONDS // 8 seconds of NO rage. + var/rage_cooldown_duration = 10 SECONDS // 10 seconds of NO rage. // State for tracking rage var/rage = 0 @@ -81,7 +70,7 @@ if (rage == max_rage) bound_xeno.add_filter("berserker_rage", 1, list("type" = "outline", "color" = "#000000ff", "size" = 1)) rage_lock() - to_chat(bound_xeno, SPAN_XENOHIGHDANGER("You feel a euphoric rush as you reach max rage! You are LOCKED at max Rage!")) + to_chat(bound_xeno, SPAN_XENOHIGHDANGER("We feel a euphoric rush as we reach max rage! We are LOCKED at max Rage!")) // HP vamp bound_xeno.gain_health((0.05*rage + hp_vamp_ratio)*((bound_xeno.melee_damage_upper - bound_xeno.melee_damage_lower)/2 + bound_xeno.melee_damage_lower)) @@ -131,7 +120,7 @@ rage_cooldown_start_time = world.time decrement_rage(rage) bound_xeno.remove_filter("berserker_rage") - to_chat(bound_xeno, SPAN_XENOWARNING("Your adrenal glands spasm. You cannot gain any rage for [rage_cooldown_duration/10] seconds.")) + to_chat(bound_xeno, SPAN_XENOWARNING("Our adrenal glands spasm. We cannot gain any rage for [rage_cooldown_duration/10] seconds.")) addtimer(CALLBACK(src, PROC_REF(rage_cooldown_callback)), rage_cooldown_duration) bound_xeno.add_filter("berserker_lockdown", 1, list("type" = "outline", "color" = "#fcfcfcff", "size" = 1)) @@ -145,7 +134,7 @@ return original_damage if (next_slash_buffed) - to_chat(bound_xeno, SPAN_XENOHIGHDANGER("You significantly strengthen your attack, slowing [A]!")) + to_chat(bound_xeno, SPAN_XENOHIGHDANGER("We significantly strengthen our attack, slowing [A]!")) to_chat(A, SPAN_XENOHIGHDANGER("You feel a sharp pain as [bound_xeno] slashes you, slowing you down!")) A.apply_effect(get_xeno_stun_duration(A, slash_slow_duration), SLOW) next_slash_buffed = FALSE diff --git a/code/modules/mob/living/carbon/xenomorph/strains/castes/ravager/hedgehog.dm b/code/modules/mob/living/carbon/xenomorph/strains/castes/ravager/hedgehog.dm new file mode 100644 index 000000000000..b88df4068cec --- /dev/null +++ b/code/modules/mob/living/carbon/xenomorph/strains/castes/ravager/hedgehog.dm @@ -0,0 +1,129 @@ +/datum/xeno_strain/hedgehog + name = RAVAGER_HEDGEHOG + description = "You lose your empower, charge, scissor cut, and some slash damage in exchange for more explosive resistance. Your resistance scales with your shard count and at 50% grants you immunity to some explosive stuns. You accumulate shards over time and when taking damage. You can use these shards to power three new abilities: Spike Shield which gives you a temporary shield that spits bone shards around you when damaged; Fire Spikes which launches spikes at your target to slow them and deal damage when they move; and Spike Shed which launches all your spikes, grants a temporary speed boost, and disables shard generation for thirty seconds." + flavor_description = "You will pierce them a million times, show them what it feels like. This one will become my shield." + icon_state_prefix = "Hedgehog" + + actions_to_remove = list( + /datum/action/xeno_action/onclick/empower, + /datum/action/xeno_action/activable/pounce/charge, + /datum/action/xeno_action/activable/scissor_cut, + ) + actions_to_add = list( + /datum/action/xeno_action/onclick/spike_shield, + /datum/action/xeno_action/activable/rav_spikes, + /datum/action/xeno_action/onclick/spike_shed, + ) + + behavior_delegate_type = /datum/behavior_delegate/ravager_hedgehog + +/datum/xeno_strain/hedgehog/apply_strain(mob/living/carbon/xenomorph/ravager/ravager) + ravager.plasma_max = 0 + ravager.small_explosives_stun = TRUE + ravager.explosivearmor_modifier += XENO_EXPOSIVEARMOR_MOD_SMALL + ravager.damage_modifier -= XENO_DAMAGE_MOD_SMALL + + ravager.recalculate_everything() + +/datum/behavior_delegate/ravager_hedgehog + name = "Hedgehog Ravager Behavior Delegate" + + // Shard config + var/max_shards = 300 + var/shard_gain_onlife = 5 + var/shards_per_projectile = 10 + var/shards_per_slash = 15 + var/armor_buff_per_fifty_shards = 2.50 + var/shard_lock_duration = 150 + var/shard_lock_speed_mod = 0.45 + + // Shard state + var/shards = 0 + var/shards_locked = FALSE //are we locked at 0 shards? + + // Armor buff state + var/times_armor_buffed = 0 + +/datum/behavior_delegate/ravager_hedgehog/append_to_stat() + . = list() + . += "Bone Shards: [shards]/[max_shards]" + . += "Shards Armor Bonus: [times_armor_buffed*armor_buff_per_fifty_shards]" + +/datum/behavior_delegate/ravager_hedgehog/proc/lock_shards() + + if (!bound_xeno) + return + + to_chat(bound_xeno, SPAN_XENODANGER("You have shed your spikes and cannot gain any more for [shard_lock_duration/10] seconds!")) + + bound_xeno.speed_modifier -= shard_lock_speed_mod + bound_xeno.recalculate_speed() + + shards = 0 + shards_locked = TRUE + addtimer(CALLBACK(src, PROC_REF(unlock_shards)), shard_lock_duration) + +/datum/behavior_delegate/ravager_hedgehog/proc/unlock_shards() + + if (!bound_xeno) + return + + to_chat(bound_xeno, SPAN_XENODANGER("You feel your ability to gather shards return!")) + + bound_xeno.speed_modifier += shard_lock_speed_mod + bound_xeno.recalculate_speed() + shards_locked = FALSE + +// Return true if we have enough shards, false otherwise +/datum/behavior_delegate/ravager_hedgehog/proc/check_shards(amount) + if (!amount) + return FALSE + else + return (shards >= amount) + +/datum/behavior_delegate/ravager_hedgehog/proc/use_shards(amount) + if (!amount) + return + shards = max(0, shards - amount) + +/datum/behavior_delegate/ravager_hedgehog/on_life() + + if (!shards_locked) + shards = min(max_shards, shards + shard_gain_onlife) + + var/armor_buff_count = shards/50 //0-6 + bound_xeno.armor_modifier -= times_armor_buffed * armor_buff_per_fifty_shards + bound_xeno.armor_modifier += armor_buff_count * armor_buff_per_fifty_shards + bound_xeno.recalculate_armor() + times_armor_buffed = armor_buff_count + + var/image/holder = bound_xeno.hud_list[PLASMA_HUD] + holder.overlays.Cut() + var/percentage_shards = round((shards / max_shards) * 100, 10) + if(percentage_shards) + holder.overlays += image('icons/mob/hud/hud.dmi', "xenoenergy[percentage_shards]") + + if(percentage_shards >= 50) + bound_xeno.small_explosives_stun = FALSE + bound_xeno.add_filter("hedge_unstunnable", 1, list("type" = "outline", "color" = "#421313", "size" = 1)) + else + bound_xeno.small_explosives_stun = TRUE + bound_xeno.remove_filter("hedge_unstunnable", 1, list("type" = "outline", "color" = "#421313", "size" = 1)) + + + return + + +/datum/behavior_delegate/ravager_hedgehog/handle_death(mob/M) + var/image/holder = bound_xeno.hud_list[PLASMA_HUD] + holder.overlays.Cut() + +/datum/behavior_delegate/ravager_hedgehog/on_hitby_projectile() + if (!shards_locked) + shards = min(max_shards, shards + shards_per_projectile) + return + +/datum/behavior_delegate/ravager_hedgehog/melee_attack_additional_effects_self() + if (!shards_locked) + shards = min(max_shards, shards + shards_per_slash) + return diff --git a/code/modules/mob/living/carbon/xenomorph/mutators/strains/runner/acid.dm b/code/modules/mob/living/carbon/xenomorph/strains/castes/runner/acid.dm similarity index 88% rename from code/modules/mob/living/carbon/xenomorph/mutators/strains/runner/acid.dm rename to code/modules/mob/living/carbon/xenomorph/strains/castes/runner/acid.dm index 490e5ca36cba..0fdaa264bd99 100644 --- a/code/modules/mob/living/carbon/xenomorph/mutators/strains/runner/acid.dm +++ b/code/modules/mob/living/carbon/xenomorph/strains/castes/runner/acid.dm @@ -1,37 +1,27 @@ -/datum/xeno_mutator/acider - name = "STRAIN: Runner - Acider" +/datum/xeno_strain/acider + name = RUNNER_ACIDER description = "At the cost of a little bit of your speed and all of your current abilities, you gain a considerable amount of health, some armor, and a new organ that fills with volatile acid over time. Your Tail Stab and slashes apply acid to living lifeforms that slowly burns them, and slashes against targets with acid stacks fill your acid glands. You also gain Corrosive Acid equivalent to that of a boiler that you can deploy more quickly than any other caste, at the cost of a chunk of your acid reserves with each use. Finally, after a twenty second windup, you can force your body to explode, covering everything near you with acid. The more acid you have stored, the more devastating the explosion will be, but during those twenty seconds before detonation you are slowed and give off several warning signals which give talls an opportunity to end you before you can detonate. If you successfully explode, you will reincarnate as a larva again!" - flavor_description = "Burn their walls, maim their faces! Your life, for The Hive!" - cost = MUTATOR_COST_EXPENSIVE - individual_only = TRUE - caste_whitelist = list(XENO_CASTE_RUNNER) - keystone = TRUE - behavior_delegate_type = /datum/behavior_delegate/runner_acider - mutator_actions_to_remove = list( + flavor_description = "This one will be the last thing they hear. A martyr." + icon_state_prefix = "Acider" + + actions_to_remove = list( /datum/action/xeno_action/activable/pounce/runner, /datum/action/xeno_action/activable/runner_skillshot, /datum/action/xeno_action/onclick/toggle_long_range/runner, ) - mutator_actions_to_add = list( + actions_to_add = list( /datum/action/xeno_action/activable/acider_acid, /datum/action/xeno_action/activable/acider_for_the_hive, ) -/datum/xeno_mutator/acider/apply_mutator(datum/mutator_set/individual_mutators/mutator_set) - . = ..() - if (. == 0) - return + behavior_delegate_type = /datum/behavior_delegate/runner_acider - var/mob/living/carbon/xenomorph/runner/runner = mutator_set.xeno - runner.mutation_icon_state = RUNNER_ACIDER - runner.mutation_type = RUNNER_ACIDER +/datum/xeno_strain/acider/apply_strain(mob/living/carbon/xenomorph/runner/runner) runner.speed_modifier += XENO_SPEED_SLOWMOD_TIER_5 runner.armor_modifier += XENO_ARMOR_MOD_MED runner.health_modifier += XENO_HEALTH_MOD_ACIDER - apply_behavior_holder(runner) - mutator_update_actions(runner) + runner.recalculate_everything() - mutator_set.recalculate_actions(description, flavor_description) /datum/behavior_delegate/runner_acider var/acid_amount = 0 @@ -106,7 +96,7 @@ var/amplitude = 50 + 50 * (caboom_timer - caboom_left) / caboom_timer playsound(bound_xeno, caboom_sound[caboom_loop], amplitude, FALSE, 10) caboom_loop++ - if(caboom_loop > caboom_sound.len) + if(caboom_loop > length(caboom_sound)) caboom_loop = 1 if(caboom_left <= 0) caboom_trigger = FALSE @@ -150,7 +140,7 @@ dist = (0.934*dx) + (0.427*dy) else dist = (0.427*dx) + (0.934*dy) - var/damage = round((burn_range - dist) * max_burn_damage / burn_range) + var/damage = floor((burn_range - dist) * max_burn_damage / burn_range) if(isxeno(target_living)) damage *= XVX_ACID_DAMAGEMULT diff --git a/code/modules/mob/living/carbon/xenomorph/strains/xeno_strain.dm b/code/modules/mob/living/carbon/xenomorph/strains/xeno_strain.dm new file mode 100644 index 000000000000..18f1f892ddfa --- /dev/null +++ b/code/modules/mob/living/carbon/xenomorph/strains/xeno_strain.dm @@ -0,0 +1,131 @@ +/datum/xeno_strain + /// The name of the strain. Should be short but informative. + var/name + /// Description to be displayed on purchase. + var/description + /// (OPTIONAL) Flavor text to be shown on purchase. Semi-OOC + var/flavor_description + /// (OPTIONAL) A custom icon state prefix for xenos who have taken the strain. + var/icon_state_prefix + + /// A list of action typepaths which should be removed when a xeno takes the strain. + var/list/actions_to_remove + /// A list of action typepaths which should be added when a xeno takes the strain. + var/list/actions_to_add + + /// Typepath of the [/datum/behavior_delegate] to add. + var/behavior_delegate_type + +/** + * Add this strain to `xeno`, replacing their actions and behavior holder. + * + * Returns a bool indicating if the strain was successfully applied. + * **Override [/datum/xeno_strain/proc/apply_strain], not this! (Unless you know what you're doing.)** + */ +/datum/xeno_strain/proc/_add_to_xeno(mob/living/carbon/xenomorph/xeno) + SHOULD_NOT_OVERRIDE(TRUE) + + xeno.strain = src + + // Update the xeno's actions. + for(var/action_path in actions_to_remove) + remove_action(xeno, action_path) + for(var/action_path in actions_to_add) + give_action(xeno, action_path) + + // Update the xeno's behavior delegate. + if(behavior_delegate_type) + if(xeno.behavior_delegate) + qdel(xeno.behavior_delegate) + xeno.behavior_delegate = new behavior_delegate_type() + xeno.behavior_delegate.bound_xeno = xeno + xeno.behavior_delegate.add_to_xeno() + + apply_strain(xeno) + + xeno.update_icons() + xeno.hive.hive_ui.update_xeno_info() + + // Give them all of the info about the strain. + to_chat(xeno, SPAN_XENOANNOUNCE(description)) + if(flavor_description) + to_chat(xeno, SPAN_XENOLEADER(flavor_description)) + return TRUE + +/** + * Adds any special modifiers/changes from this strain to `xeno`. + * + * Called when the strain is first added to the player. + */ +/datum/xeno_strain/proc/apply_strain(mob/living/carbon/xenomorph/xeno) + // Override with custom behaviour. + return + + +/mob/living/carbon/xenomorph/verb/purchase_strain() + set name = "Purchase Strain" + set desc = "Purchase a strain for yourself" + set category = "Alien" + + // Firstly, make sure the xeno is actually able to take a strain. + if(!can_take_strain()) + return + + // Make an assoc list of {name: typepath} from the strains available to the xeno's caste. + var/list/strain_list = list() + for(var/datum/xeno_strain/strain_type as anything in caste.available_strains) + strain_list[initial(strain_type.name)] = strain_type + + // Ask the user which strain they want. + var/strain_choice = tgui_input_list(usr, "Which strain would you like to take?", "Choose Strain", strain_list, theme = "hive_status") + if(!strain_choice) + return + var/datum/xeno_strain/chosen_strain = strain_list[strain_choice] + + // Check again after the user picks one, in case anything changed. + if(!can_take_strain()) + return + // Show the user the strain's description, and double check that they want it. + if(alert(usr, "[initial(chosen_strain.description)]\n\nConfirm mutation?", "Choose Strain", "Yes", "No") != "Yes") + return + // One more time after they confirm. + if(!can_take_strain()) + return + + // Create the strain datum and apply it to the xeno. + var/datum/xeno_strain/strain_instance = new chosen_strain() + if(strain_instance._add_to_xeno(src)) + xeno_jitter(1.5 SECONDS) + // If it applied successfully, add it to the logs. + log_strain("[name] purchased strain '[strain_instance.type]'") + +/// Is this xeno currently able to take a strain? +/mob/living/carbon/xenomorph/proc/can_take_strain() + if(!length(caste.available_strains) || !check_state(TRUE)) + return FALSE + + if(strain) + to_chat(src, SPAN_WARNING("We have already chosen a strain.")) + return FALSE + + if(is_ventcrawling) + to_chat(src, SPAN_WARNING("This place is too constraining to take a strain.")) + return FALSE + + if(!isturf(loc)) + to_chat(src, SPAN_WARNING("We can't take a strain here.")) + return FALSE + + if(handcuffed || legcuffed) + to_chat(src, SPAN_WARNING("The restraints are too restricting to allow us to take a strain.")) + return FALSE + + if(health < maxHealth) + to_chat(src, SPAN_WARNING("We must be at full health to take a strain.")) + return FALSE + + if(agility || fortify || crest_defense || stealth) + to_chat(src, SPAN_WARNING("We cannot take a strain while in this stance.")) + return FALSE + + return TRUE diff --git a/code/modules/mob/living/carbon/xenomorph/update_icons.dm b/code/modules/mob/living/carbon/xenomorph/update_icons.dm index e576b23e2855..64f9949e94cd 100644 --- a/code/modules/mob/living/carbon/xenomorph/update_icons.dm +++ b/code/modules/mob/living/carbon/xenomorph/update_icons.dm @@ -41,7 +41,7 @@ Q.queen_standing_icon = icon_xeno Q.queen_ovipositor_icon = 'icons/mob/xenos/ovipositor.dmi' - var/mutation_caste_state = "[mutation_type] [caste.caste_type]" + var/mutation_caste_state = "[get_strain_icon()] [caste.caste_type]" if(!walking_state_cache[mutation_caste_state]) var/cache_walking_state = FALSE for(var/state in icon_states(icon)) @@ -64,7 +64,7 @@ if(behavior_delegate?.on_update_icons()) return - var/mutation_caste_state = "[mutation_icon_state || mutation_type] [caste.caste_type]" + var/mutation_caste_state = "[get_strain_icon()] [caste.caste_type]" if(stat == DEAD) icon_state = "[mutation_caste_state] Dead" if(!(icon_state in icon_states(icon_xeno))) @@ -90,7 +90,6 @@ update_inv_r_hand() update_inv_l_hand() update_inv_back() - update_inv_resource() update_icons() /* CRUTCH ZONE - Update icons when relevant status happen - Ideally do this properly and for everything, then kill update_icons() someday */ @@ -99,19 +98,32 @@ . = ..() if(. != new_value) update_icons() // Snowflake handler for xeno resting icons + update_wounds() /mob/living/carbon/xenomorph/on_floored_start() . = ..() update_icons() + update_wounds() /mob/living/carbon/xenomorph/on_floored_end() . = ..() update_icons() + update_wounds() /mob/living/carbon/xenomorph/on_incapacitated_trait_gain() . = ..() update_icons() + update_wounds() /mob/living/carbon/xenomorph/on_incapacitated_trait_loss() . = ..() update_icons() + update_wounds() +/mob/living/carbon/xenomorph/on_knockedout_trait_gain() + . = ..() + update_icons() + update_wounds() +/mob/living/carbon/xenomorph/on_knockedout_trait_loss() + . = ..() + update_icons() + update_wounds() /* ^^^^^^^^^^^^^^ End Icon updates */ @@ -136,7 +148,12 @@ var/t_state = r_hand.item_state if(!t_state) t_state = r_hand.icon_state - overlays_standing[X_R_HAND_LAYER] = r_hand.get_mob_overlay(src, WEAR_R_HAND) + /*Move inhand image to the center of the sprite. Strictly speaking this should probably be like monkey get_offset_overlay_image() and tailor item icon + positions to the hands of the xeno, but outside of special occasions xenos can't really pick items up and this tends to look better than human default.*/ + var/image/inhand_image = r_hand.get_mob_overlay(src, WEAR_R_HAND) + inhand_image.pixel_x = xeno_inhand_item_offset + overlays_standing[X_R_HAND_LAYER] = inhand_image + apply_overlay(X_R_HAND_LAYER) /mob/living/carbon/xenomorph/update_inv_l_hand() @@ -149,7 +166,13 @@ var/t_state = l_hand.item_state if(!t_state) t_state = l_hand.icon_state - overlays_standing[X_L_HAND_LAYER] = l_hand.get_mob_overlay(src, WEAR_L_HAND) + + /*Move inhand image overlay to the center of the sprite. Strictly speaking this should probably be like monkey get_offset_overlay_image() and tailor item icon + positions to the hands of the xeno, but outside of special occasions xenos can't really pick items up and this tends to look better than human default.*/ + var/image/inhand_image = l_hand.get_mob_overlay(src, WEAR_L_HAND) + inhand_image.pixel_x = xeno_inhand_item_offset + overlays_standing[X_L_HAND_LAYER] = inhand_image + apply_overlay(X_L_HAND_LAYER) /mob/living/carbon/xenomorph/update_inv_back() @@ -178,43 +201,52 @@ if(dir == NORTH && (back.flags_item & ITEM_OVERRIDE_NORTHFACE)) backpack_icon_holder.layer = -X_BACK_FRONT_LAYER -/mob/living/carbon/xenomorph/proc/update_inv_resource() - remove_overlay(X_RESOURCE_LAYER) - if(crystal_stored) - overlays_standing[X_RESOURCE_LAYER] = image("icon" = icon, "icon_state" = "[caste_type]_resources", "layer" =-X_RESOURCE_LAYER) - apply_overlay(X_RESOURCE_LAYER) - /mob/living/carbon/xenomorph/update_inv_legcuffed() remove_overlay(X_LEGCUFF_LAYER) if(legcuffed) overlays_standing[X_LEGCUFF_LAYER] = image("icon" = 'icons/mob/xenos/effects.dmi', "icon_state" = "legcuff", "layer" =-X_LEGCUFF_LAYER) apply_overlay(X_LEGCUFF_LAYER) -/mob/living/carbon/xenomorph/proc/create_shriekwave(color = null) - var/image/screech_image - - var/offset_x = 0 - var/offset_y = 0 - if(mob_size <= MOB_SIZE_XENO) - offset_x = -7 - offset_y = -10 - - if (color) - screech_image = image("icon"='icons/mob/xenos/overlay_effects64x64.dmi', "icon_state" = "shriek_waves_greyscale") // For Praetorian screech - screech_image.color = color - else - screech_image = image("icon"='icons/mob/xenos/overlay_effects64x64.dmi', "icon_state" = "shriek_waves") //Ehh, suit layer's not being used. - - screech_image.pixel_x = offset_x - screech_image.pixel_y = offset_y - - screech_image.appearance_flags |= RESET_COLOR - - remove_suit_layer() - - overlays_standing[X_SUIT_LAYER] = screech_image - apply_overlay(X_SUIT_LAYER) - addtimer(CALLBACK(src, PROC_REF(remove_overlay), X_SUIT_LAYER), 30) +/mob/living/carbon/xenomorph/proc/create_shriekwave(shriekwaves_left) + var/offset_y = 8 + if(mob_size == MOB_SIZE_XENO) + offset_y = 24 + if(mob_size == MOB_SIZE_IMMOBILE) + offset_y = 28 + + //the shockwave center is updated eachtime shockwave is called and offset relative to the mob_size. + //due to the speed of the shockwaves, it isn't required to be tied to the exact mob movements + var/epicenter = loc //center of the shockwave, set at the center of the tile that the mob is currently standing on + var/easing = QUAD_EASING | EASE_OUT + var/stage1_radius = rand(11, 12) + var/stage2_radius = rand(9, 11) + var/stage3_radius = rand(8, 10) + var/stage4_radius = 7.5 + + //shockwaves are iterated, counting down once per shriekwave, with the total amount being determined on the respective xeno ability tile + if(shriekwaves_left > 12) + shriekwaves_left-- + new /obj/effect/shockwave(epicenter, stage1_radius, 0.5, easing, offset_y) + addtimer(CALLBACK(src, PROC_REF(create_shriekwave), shriekwaves_left), 2) + return + if(shriekwaves_left > 8) + shriekwaves_left-- + new /obj/effect/shockwave(epicenter, stage2_radius, 0.5, easing, offset_y) + addtimer(CALLBACK(src, PROC_REF(create_shriekwave), shriekwaves_left), 3) + return + if(shriekwaves_left > 4) + shriekwaves_left-- + new /obj/effect/shockwave(epicenter, stage3_radius, 0.5, easing, offset_y) + addtimer(CALLBACK(src, PROC_REF(create_shriekwave), shriekwaves_left), 3) + return + if(shriekwaves_left > 1) + shriekwaves_left-- + new /obj/effect/shockwave(epicenter, stage4_radius, 0.5, easing, offset_y) + addtimer(CALLBACK(src, PROC_REF(create_shriekwave), shriekwaves_left), 3) + return + if(shriekwaves_left == 1) + shriekwaves_left-- + new /obj/effect/shockwave(epicenter, 10.5, 0.6, easing, offset_y) /mob/living/carbon/xenomorph/proc/create_stomp() remove_suit_layer() @@ -295,8 +327,7 @@ return var/health_threshold - wound_icon_holder.layer = layer + 0.01 - health_threshold = max(CEILING((health * 4) / (maxHealth), 1), 0) //From 0 to 4, in 25% chunks + health_threshold = max(ceil((health * 4) / (maxHealth)), 0) //From 0 to 4, in 25% chunks if(health > HEALTH_THRESHOLD_DEAD) if(health_threshold > 3) wound_icon_holder.icon_state = "none" @@ -309,11 +340,12 @@ wound_icon_holder.icon_state = "[caste.caste_type]_walk_[health_threshold]" else wound_icon_holder.icon_state = handle_special_wound_states(health_threshold) - + if(organ_removed) + wound_icon_holder.icon_state = "[caste.caste_type]_dissection" ///Used to display the xeno wounds/backpacks without rapidly switching overlays /atom/movable/vis_obj - vis_flags = VIS_INHERIT_ID|VIS_INHERIT_DIR + vis_flags = VIS_INHERIT_ID|VIS_INHERIT_DIR|VIS_INHERIT_LAYER|VIS_INHERIT_PLANE appearance_flags = RESET_COLOR /atom/movable/vis_obj/xeno_wounds diff --git a/code/modules/mob/living/carbon/xenomorph/xeno_helpers.dm b/code/modules/mob/living/carbon/xenomorph/xeno_helpers.dm index 7324a3af6892..2414d077b1c0 100644 --- a/code/modules/mob/living/carbon/xenomorph/xeno_helpers.dm +++ b/code/modules/mob/living/carbon/xenomorph/xeno_helpers.dm @@ -2,7 +2,7 @@ return (mob_size < MOB_SIZE_BIG && caste.can_vent_crawl) /mob/living/carbon/xenomorph/ventcrawl_carry() - if(stomach_contents.len) + if(length(stomach_contents)) for(var/mob/living/carbon/human/H in stomach_contents) if(!isspeciesmonkey(H)) to_chat(src, SPAN_XENOWARNING("You cannot ventcrawl with [H] inside you!")) @@ -27,12 +27,29 @@ /mob/living/carbon/xenomorph/proc/get_plasma_percentage() if(plasma_max<=0) return 100 - return round(plasma_stored * 100 / plasma_max) + return floor(plasma_stored * 100 / plasma_max) /mob/living/carbon/xenomorph/proc/get_armor_integrity_percentage() if(armor_deflection<=0) return 100 - return round(armor_integrity * 100 / armor_integrity_max) + return floor(armor_integrity * 100 / armor_integrity_max) + +/** + * Returns the name of the xeno's strain, if it has one. + * + * If that can't be found, returns "Normal". + */ +/mob/living/carbon/xenomorph/proc/get_strain_name() + return strain?.name || "Normal" + +/** + * Returns the custom icon state from the xeno's strain, if it has one. + * + * If that can't be found, returns "Normal" + */ +/mob/living/carbon/xenomorph/proc/get_strain_icon() + return strain?.icon_state_prefix || "Normal" + // TODO: Go through xeno/xenoid sprites and remove "Normal", so that this isn't needed. //These don't do much currently. Or anything? Only around for legacy code. /mob/living/carbon/xenomorph/is_mob_restrained() @@ -58,4 +75,4 @@ return caste.fire_intensity_resistance /mob/living/carbon/xenomorph/alter_ghost(mob/dead/observer/ghost) - ghost.icon_state = "[mutation_type] [caste.caste_type] Running" + ghost.icon_state = "[get_strain_icon()] [caste.caste_type] Running" diff --git a/code/modules/mob/living/carbon/xenomorph/xeno_verbs.dm b/code/modules/mob/living/carbon/xenomorph/xeno_verbs.dm index dd722f62df63..8a1981fe512b 100644 --- a/code/modules/mob/living/carbon/xenomorph/xeno_verbs.dm +++ b/code/modules/mob/living/carbon/xenomorph/xeno_verbs.dm @@ -1,18 +1,18 @@ //// Holds Xeno verbs that don't belong anywhere else. /mob/living/carbon/xenomorph/verb/hive_status() set name = "Hive Status" - set desc = "Check the status of your current hive." + set desc = "Check the status of our current hive." set category = "Alien" if(!hive) return if((!hive.living_xeno_queen || SSmapping.configs[GROUND_MAP].map_name == MAP_WHISKEY_OUTPOST) && !hive.allow_no_queen_actions) //No Hive status on WO - to_chat(src, SPAN_WARNING("There is no Queen. You are alone.")) + to_chat(src, SPAN_WARNING("There is no Queen. We are alone.")) return - if(interference) - to_chat(src, SPAN_WARNING("A headhunter temporarily cut off your psychic connection!")) + if(HAS_TRAIT(src, TRAIT_HIVEMIND_INTERFERENCE)) + to_chat(src, SPAN_WARNING("Our psychic connection has been temporarily disabled!")) return hive.hive_ui.open_hive_status(src) @@ -36,8 +36,8 @@ to_chat(src, SPAN_WARNING("There is no Queen. You are alone.")) return - if(interference) - to_chat(src, SPAN_WARNING("A headhunter temporarily cut off your psychic connection!")) + if(HAS_TRAIT(src, TRAIT_HIVEMIND_INTERFERENCE)) + to_chat(src, SPAN_WARNING("Our psychic connection has been temporarily disabled!")) return hive.faction_ui.tgui_interact(src) diff --git a/code/modules/mob/living/damage_procs.dm b/code/modules/mob/living/damage_procs.dm index 9fade66e44c6..6c10df5987d0 100644 --- a/code/modules/mob/living/damage_procs.dm +++ b/code/modules/mob/living/damage_procs.dm @@ -65,14 +65,13 @@ //#define EFFECT_FLAG_XENOMORPH //#define EFFECT_FLAG_CHEMICAL +/// Legacy wrapper for effects, DO NOT USE and migrate all code to USING THE STATUS PROCS DIRECTLY /mob/proc/apply_effect() return FALSE +// Legacy wrapper for effects, DO NOT USE and migrate all code to USING THE BELOW PROCS DIRECTLY /mob/living/apply_effect(effect = 0, effect_type = STUN, effect_flags = EFFECT_FLAG_DEFAULT) - if(SEND_SIGNAL(src, COMSIG_LIVING_APPLY_EFFECT, effect, effect_type, effect_flags) & COMPONENT_CANCEL_EFFECT) - return - if(!effect) return FALSE @@ -98,6 +97,8 @@ EyeBlur(effect) if(DROWSY) drowsyness = max(drowsyness, effect) + if(ROOT) + Root(effect) updatehealth() return TRUE @@ -106,9 +107,6 @@ /mob/living/adjust_effect(effect = 0, effect_type = STUN, effect_flags = EFFECT_FLAG_DEFAULT) - if(SEND_SIGNAL(src, COMSIG_LIVING_ADJUST_EFFECT, effect, effect_type, effect_flags) & COMPONENT_CANCEL_EFFECT) - return - if(!effect) return FALSE @@ -134,6 +132,8 @@ AdjustEyeBlur(effect) if(DROWSY) drowsyness = POSITIVE(drowsyness + effect) + if(ROOT) + AdjustRoot(effect) updatehealth() return TRUE @@ -142,9 +142,6 @@ /mob/living/set_effect(effect = 0, effect_type = STUN, effect_flags = EFFECT_FLAG_DEFAULT) - if(SEND_SIGNAL(src, COMSIG_LIVING_SET_EFFECT, effect, effect_type, effect_flags) & COMPONENT_CANCEL_EFFECT) - return - switch(effect_type) if(STUN) SetStun(effect) @@ -167,15 +164,26 @@ SetEyeBlur(effect) if(DROWSY) drowsyness = POSITIVE(effect) + if(ROOT) + SetRoot(effect) updatehealth() return TRUE -/mob/living/proc/apply_effects(stun = 0, weaken = 0, paralyze = 0, irradiate = 0, stutter = 0, eyeblur = 0, drowsy = 0, agony = 0) - if(stun) apply_effect(stun, STUN) - if(weaken) apply_effect(weaken, WEAKEN) - if(paralyze) apply_effect(paralyze, PARALYZE) - if(stutter) apply_effect(stutter, STUTTER) - if(eyeblur) apply_effect(eyeblur, EYE_BLUR) - if(drowsy) apply_effect(drowsy, DROWSY) - if(agony) apply_effect(agony, AGONY) +/mob/living/proc/apply_effects(stun = 0, weaken = 0, paralyze = 0, irradiate = 0, stutter = 0, eyeblur = 0, drowsy = 0, agony = 0, root = 0) + if(stun) + apply_effect(stun, STUN) + if(weaken) + apply_effect(weaken, WEAKEN) + if(paralyze) + apply_effect(paralyze, PARALYZE) + if(stutter) + apply_effect(stutter, STUTTER) + if(eyeblur) + apply_effect(eyeblur, EYE_BLUR) + if(drowsy) + apply_effect(drowsy, DROWSY) + if(agony) + apply_effect(agony, AGONY) + if(root) + apply_effect(root, ROOT) return 1 diff --git a/code/modules/mob/living/init_signals.dm b/code/modules/mob/living/init_signals.dm index 696eaa3f0120..825fa4dcc941 100644 --- a/code/modules/mob/living/init_signals.dm +++ b/code/modules/mob/living/init_signals.dm @@ -17,17 +17,24 @@ RegisterSignal(src, list(SIGNAL_ADDTRAIT(TRAIT_UNDENSE), SIGNAL_REMOVETRAIT(TRAIT_UNDENSE)), PROC_REF(undense_changed)) + RegisterSignal(src, SIGNAL_ADDTRAIT(TRAIT_DAZED), PROC_REF(on_dazed_trait_gain)) + RegisterSignal(src, SIGNAL_REMOVETRAIT(TRAIT_DAZED), PROC_REF(on_dazed_trait_loss)) + /// Called when [TRAIT_KNOCKEDOUT] is added to the mob. /mob/living/proc/on_knockedout_trait_gain(datum/source) SIGNAL_HANDLER if(stat < UNCONSCIOUS) set_stat(UNCONSCIOUS) + sound_environment_override = SOUND_ENVIRONMENT_PSYCHOTIC + client?.soundOutput?.update_mob_environment_override() /// Called when [TRAIT_KNOCKEDOUT] is removed from the mob. /mob/living/proc/on_knockedout_trait_loss(datum/source) SIGNAL_HANDLER if(stat <= UNCONSCIOUS) update_stat() + sound_environment_override = SOUND_ENVIRONMENT_NONE + client?.soundOutput?.update_mob_environment_override() /// Called when [TRAIT_IMMOBILIZED] is added to the mob. /mob/living/proc/on_immobilized_trait_gain(datum/source) @@ -87,6 +94,14 @@ //update_appearance() return +/// Called when [TRAIT_DAZED] is added to the mob. +/mob/living/proc/on_dazed_trait_gain(datum/source) + SIGNAL_HANDLER + +/// Called when [TRAIT_DAZED] is removed from the mob. +/mob/living/proc/on_dazed_trait_loss(datum/source) + SIGNAL_HANDLER + /// Called when [TRAIT_UNDENSE] is gained or lost /mob/living/proc/undense_changed(datum/source) SIGNAL_HANDLER diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index 6205c4f919a4..27697a8938a7 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -24,6 +24,7 @@ /mob/living/Destroy() GLOB.living_mob_list -= src + cleanup_status_effects() pipes_shown = null . = ..() @@ -33,6 +34,17 @@ QDEL_NULL(pain) QDEL_NULL(stamina) QDEL_NULL(hallucinations) + status_effects = null + +/// Clear all running status effects assuming deletion +/mob/living/proc/cleanup_status_effects() + PROTECTED_PROC(TRUE) + if(length(status_effects)) + for(var/datum/status_effect/S as anything in status_effects) + if(S?.on_remove_on_mob_delete) //the status effect calls on_remove when its mob is deleted + qdel(S) + else + S?.be_replaced() /mob/living/proc/initialize_pain() pain = new /datum/pain(src) @@ -54,7 +66,7 @@ /mob/living/proc/burn_skin(burn_amount) if(ishuman(src)) var/mob/living/carbon/human/H = src //make this damage method divide the damage to be done among all the body parts, then burn each body part for that much damage. will have better effect then just randomly picking a body part - var/divided_damage = (burn_amount)/(H.limbs.len) + var/divided_damage = (burn_amount)/(length(H.limbs)) var/extradam = 0 //added to when organ is at max dam for(var/obj/limb/affecting in H.limbs) if(!affecting) continue @@ -63,9 +75,6 @@ H.updatehealth() return 1 - else if(isAI(src)) - return 0 - /mob/living/proc/adjustBodyTemp(actual, desired, incrementboost) var/temperature = actual var/difference = abs(actual-desired) //get difference @@ -215,19 +224,34 @@ /mob/living/resist_grab(moving_resist) if(!pulledby) return - if(pulledby.grab_level) - if(prob(50)) - playsound(src.loc, 'sound/weapons/thudswoosh.ogg', 25, 1, 7) - visible_message(SPAN_DANGER("[src] has broken free of [pulledby]'s grip!"), null, null, 5) - pulledby.stop_pulling() - return 1 - if(moving_resist && client) //we resisted by trying to move - visible_message(SPAN_DANGER("[src] struggles to break free of [pulledby]'s grip!"), null, null, 5) - client.next_movement = world.time + (10*pulledby.grab_level) + client.move_delay - else + // vars for checks of strengh + var/pulledby_is_strong = HAS_TRAIT(pulledby, TRAIT_SUPER_STRONG) + var/src_is_strong = HAS_TRAIT(src, TRAIT_SUPER_STRONG) + + if(!pulledby.grab_level && (!pulledby_is_strong || src_is_strong)) // if passive grab, check if puller is stronger than src, and if not, break free pulledby.stop_pulling() - return 1 + return TRUE + // Chance for person to break free of grip, defaults to 50. + var/chance = 50 + if(src_is_strong && !isxeno(pulledby)) // no extra chance to resist warrior grabs + chance += 30 // you are strong, you can overpower them easier + if(pulledby_is_strong) + chance -= 30 // stronger grip + // above code means that if you are super strong, 80% chance to resist, otherwise, 20 percent. if both are super strong, standard 50. + + if(prob(chance)) + playsound(loc, 'sound/weapons/thudswoosh.ogg', 25, 1, 7) + visible_message(SPAN_DANGER("[src] has broken free of [pulledby]'s grip!"), max_distance = 5) + pulledby.stop_pulling() + return TRUE + if(moving_resist && client) //we resisted by trying to move + visible_message(SPAN_DANGER("[src] struggles to break free of [pulledby]'s grip!"), max_distance = 5) + // +1 delay if super strong, also done as passive grabs would have a modifier of 0 otherwise, causing spam + if(pulledby_is_strong && !src_is_strong) + client.next_movement = world.time + (10*(pulledby.grab_level + 1)) + client.move_delay + else + client.next_movement = world.time + (10*pulledby.grab_level) + client.move_delay /mob/living/movement_delay() . = ..() @@ -389,7 +413,10 @@ /mob/living/launch_towards(datum/launch_metadata/LM) if(src) SEND_SIGNAL(src, COMSIG_MOB_MOVE_OR_LOOK, TRUE, dir, dir) - if(!istype(LM) || !LM.target || !src || buckled) + if(!istype(LM) || !LM.target || !src) + return + if(buckled) + LM.invoke_end_throw_callbacks(src) return if(pulling) stop_pulling() //being thrown breaks pulls. @@ -433,16 +460,19 @@ /mob/proc/flash_eyes() return -/mob/living/flash_eyes(intensity = EYE_PROTECTION_FLASH, bypass_checks, type = /atom/movable/screen/fullscreen/flash, flash_timer = 40) - if( bypass_checks || (get_eye_protection() < intensity && !(sdisabilities & DISABILITY_BLIND))) - overlay_fullscreen("flash", type) +/mob/living/flash_eyes(intensity = EYE_PROTECTION_FLASH, bypass_checks, flash_timer = 40, type = /atom/movable/screen/fullscreen/flash, dark_type = /atom/movable/screen/fullscreen/flash/dark) + if(bypass_checks || (get_eye_protection() < intensity && !(sdisabilities & DISABILITY_BLIND))) + if(client?.prefs?.flash_overlay_pref == FLASH_OVERLAY_DARK) + overlay_fullscreen("flash", dark_type) + else + overlay_fullscreen("flash", type) spawn(flash_timer) clear_fullscreen("flash", 20) return TRUE /mob/living/create_clone_movable(shift_x, shift_y) ..() - src.clone.hud_list = new /list(src.hud_list.len) + src.clone.hud_list = new /list(length(src.hud_list)) for(var/h in src.hud_possible) //Clone HUD src.clone.hud_list[h] = new /image("loc" = src.clone, "icon" = src.hud_list[h].icon) @@ -495,6 +525,7 @@ // REMOVE_TRAIT(src, TRAIT_CRITICAL_CONDITION, STAT_TRAIT) // remove_from_alive_mob_list() // add_to_dead_mob_list() + update_layer() // Force update layers so that lying down works as intended upon death. This is redundant otherwise. Replace this by trait signals /** * Changes the inclination angle of a mob, used by humans and others to differentiate between standing up and prone positions. @@ -577,12 +608,16 @@ drop_l_hand() drop_r_hand() add_temp_pass_flags(PASS_MOB_THRU) + update_layer() + +/// Updates the layer the mob is on based on its current status. This can result in redundant updates. Replace by trait signals eventually +/mob/living/proc/update_layer() //so mob lying always appear behind standing mobs, but dead ones appear behind living ones if(pulledby && pulledby.grab_level == GRAB_CARRY) layer = ABOVE_MOB_LAYER - else if (stat == DEAD) + else if (body_position == LYING_DOWN && stat == DEAD) layer = LYING_DEAD_MOB_LAYER // Dead mobs should layer under living ones - else if(layer == initial(layer)) //to avoid things like hiding larvas. + else if(body_position == LYING_DOWN && layer == initial(layer)) //to avoid things like hiding larvas. //i have no idea what this means layer = LYING_LIVING_MOB_LAYER /// Called when mob changes from a standing position into a prone while lacking the ability to stand up at the moment. diff --git a/code/modules/mob/living/living_defense.dm b/code/modules/mob/living/living_defense.dm index 4061f26f7bb1..b19afb0450cd 100644 --- a/code/modules/mob/living/living_defense.dm +++ b/code/modules/mob/living/living_defense.dm @@ -174,7 +174,7 @@ switch(fire_reagent.fire_type) if(FIRE_VARIANT_TYPE_B) max_stacks = 10 //Armor Shredding Greenfire caps at 1 resist/pat - fire_stacks = Clamp(fire_stacks + add_fire_stacks, min_stacks, max_stacks) + fire_stacks = clamp(fire_stacks + add_fire_stacks, min_stacks, max_stacks) if(on_fire && fire_stacks <= 0) ExtinguishMob() diff --git a/code/modules/mob/living/living_defines.dm b/code/modules/mob/living/living_defines.dm index ce4634a102fc..88bd8e09c386 100644 --- a/code/modules/mob/living/living_defines.dm +++ b/code/modules/mob/living/living_defines.dm @@ -14,15 +14,14 @@ var/brainloss = 0 //'Retardation' damage caused by someone hitting you in the head with a bible or being infected with brainrot. var/halloss = 0 //Hallucination damage. 'Fake' damage obtained through hallucinating or the holodeck. Sleeping should cause it to wear off. - // please don't use these - VAR_PROTECTED/knocked_out = 0 - VAR_PROTECTED/knocked_down = 0 - VAR_PROTECTED/stunned = 0 + // please don't use these directly, use the procs var/dazed = 0 var/slowed = 0 // X_SLOW_AMOUNT var/superslowed = 0 // X_SUPERSLOW_AMOUNT var/sleeping = 0 + ///a list of all status effects the mob has + var/list/status_effects /// Cooldown for manually toggling resting to avoid spamming COOLDOWN_DECLARE(rest_cooldown) @@ -134,3 +133,10 @@ /// Flags that determine the potential of a mob to perform certain actions. Do not change this directly. var/mobility_flags = MOBILITY_FLAGS_DEFAULT + /// icon for weed_food states + var/weed_food_icon = 'icons/mob/xenos/weeds.dmi' + /// icon_states for weed_food (needs to be the same length as weed_food_states_flipped) + var/list/weed_food_states = list("human_1","human_2","human_3","human_4","human_5") + /// flipped icon_states for weed_food (needs to be the same length as weed_food_states) + var/list/weed_food_states_flipped = list("human_1_f","human_2_f","human_3_f","human_4_f","human_5_f") + diff --git a/code/modules/mob/living/living_health_procs.dm b/code/modules/mob/living/living_health_procs.dm index e4c9659db827..ffe1a56b59f8 100644 --- a/code/modules/mob/living/living_health_procs.dm +++ b/code/modules/mob/living/living_health_procs.dm @@ -81,70 +81,153 @@ /mob/living/proc/setMaxHealth(newMaxHealth) maxHealth = newMaxHealth - -/mob/living - VAR_PROTECTED/stun_timer = TIMER_ID_NULL - -/mob/living/proc/stun_callback() - REMOVE_TRAIT(src, TRAIT_INCAPACITATED, STUNNED_TRAIT) - stunned = 0 - handle_regular_status_updates(FALSE) - if(stun_timer != TIMER_ID_NULL) - deltimer(stun_timer) - stun_timer = TIMER_ID_NULL - -/mob/living/proc/stun_callback_check() - if(stunned) - ADD_TRAIT(src, TRAIT_INCAPACITATED, STUNNED_TRAIT) - if(stunned && stunned < recovery_constant) - stun_timer = addtimer(CALLBACK(src, PROC_REF(stun_callback)), (stunned/recovery_constant) * 2 SECONDS, TIMER_OVERRIDE|TIMER_UNIQUE|TIMER_STOPPABLE) +/* STUN (Incapacitation) */ +/// Overridable handler to adjust the numerical value of status effects. Expand as needed +/mob/living/proc/GetStunDuration(amount) + return amount * GLOBAL_STATUS_MULTIPLIER +/mob/living/proc/IsStun() //If we're stunned + return has_status_effect(/datum/status_effect/incapacitating/stun) +/mob/living/proc/AmountStun() //How much time remain in our stun - scaled by GLOBAL_STATUS_MULTIPLIER (normally in multiples of legacy 2 seconds) + var/datum/status_effect/incapacitating/stun/S = IsStun() + if(S) + return S.get_duration_left() / GLOBAL_STATUS_MULTIPLIER + return 0 +/mob/living/proc/Stun(amount) + if(!(status_flags & CANSTUN)) return - if(!stunned) // Force reset since the timer wasn't called - stun_callback() + amount = GetStunDuration(amount) + var/datum/status_effect/incapacitating/stun/S = IsStun() + if(S) + S.update_duration(amount, increment = TRUE) + else if(amount > 0) + S = apply_status_effect(/datum/status_effect/incapacitating/stun, amount) + return S +/mob/living/proc/SetStun(amount, ignore_canstun = FALSE) //Sets remaining duration + if(!(status_flags & CANSTUN)) return - - if(stun_timer != TIMER_ID_NULL) - deltimer(stun_timer) - stun_timer = TIMER_ID_NULL - -// adjust stun if needed, do not call it in adjust stunned -/mob/living/proc/stun_clock_adjustment() - return - -/mob/living/proc/Stun(amount) - if(status_flags & CANSTUN) - stunned = max(max(stunned,amount),0) //can't go below 0, getting a low amount of stun doesn't lower your current stun - stun_clock_adjustment() - stun_callback_check() - return - -/mob/living/proc/SetStun(amount) //if you REALLY need to set stun to a set amount without the whole "can't go below current stunned" - if(status_flags & CANSTUN) - stunned = max(amount,0) - stun_clock_adjustment() - stun_callback_check() - return - -/mob/living/proc/AdjustStun(amount) - if(status_flags & CANSTUN) - stunned = max(stunned + amount,0) - stun_callback_check() - return + amount = GetStunDuration(amount) + var/datum/status_effect/incapacitating/stun/S = IsStun() + if(amount <= 0) + if(S) + qdel(S) + else + if(S) + S.update_duration(amount) + else + S = apply_status_effect(/datum/status_effect/incapacitating/stun, amount) + return S +/mob/living/proc/AdjustStun(amount, ignore_canstun = FALSE) //Adds to remaining duration + if(!(status_flags & CANSTUN)) + return + amount = GetStunDuration(amount) + var/datum/status_effect/incapacitating/stun/S = IsStun() + if(S) + S.adjust_duration(amount) + else if(amount > 0) + S = apply_status_effect(/datum/status_effect/incapacitating/stun, amount) + return S + +/* ROOT (Immobilisation) */ +/// Overridable handler to adjust the numerical value of status effects. Expand as needed +/mob/living/proc/GetRootDuration(amount) + return amount * GLOBAL_STATUS_MULTIPLIER + +/mob/living/proc/IsRoot() //If we're stunned + return has_status_effect(/datum/status_effect/incapacitating/immobilized) + +/mob/living/proc/AmountRoot() //How much time remain in our stun - scaled by GLOBAL_STATUS_MULTIPLIER (normally in multiples of legacy 2 seconds) + var/datum/status_effect/incapacitating/immobilized/root = IsRoot() + if(root) + return root.get_duration_left() / GLOBAL_STATUS_MULTIPLIER + return FALSE + +/mob/living/proc/Root(amount) + if(!(status_flags & CANROOT)) + return + amount = GetRootDuration(amount) + var/datum/status_effect/incapacitating/immobilized/root = IsRoot() + if(root) + root.update_duration(amount, increment = TRUE) + else if(amount > 0) + root = apply_status_effect(/datum/status_effect/incapacitating/immobilized, amount) + return root + +/mob/living/proc/SetRoot(amount) //Sets remaining duration + if(!(status_flags & CANROOT)) + return + amount = GetRootDuration(amount) + var/datum/status_effect/incapacitating/immobilized/root = IsRoot() + if(amount <= 0) + if(root) + qdel(root) + else + if(root) + root.update_duration(amount) + else + root = apply_status_effect(/datum/status_effect/incapacitating/immobilized, amount) + return root + +/mob/living/proc/AdjustRoot(amount) //Adds to remaining duration + if(!(status_flags & CANROOT)) + return + amount = GetRootDuration(amount) + var/datum/status_effect/incapacitating/immobilized/root = IsRoot() + if(root) + root.adjust_duration(amount) + else if(amount > 0) + root = apply_status_effect(/datum/status_effect/incapacitating/immobilized, amount) + return root + +/* DAZE (Light incapacitation) */ +/// Overridable handler to adjust the numerical value of status effects. Expand as needed +/mob/living/proc/GetDazeDuration(amount) + return amount * GLOBAL_STATUS_MULTIPLIER + +/mob/living/proc/IsDaze() //If we're stunned + return has_status_effect(/datum/status_effect/incapacitating/dazed) + +/mob/living/proc/AmountDaze() //How many deciseconds remains + var/datum/status_effect/incapacitating/dazed/dazed = IsDaze() + if(dazed) + return dazed.get_duration_left() / GLOBAL_STATUS_MULTIPLIER + return 0 /mob/living/proc/Daze(amount) - if(status_flags & CANDAZE) - dazed = max(max(dazed,amount),0) - return - -/mob/living/proc/SetDaze(amount) - if(status_flags & CANDAZE) - dazed = max(amount,0) - return - -/mob/living/proc/AdjustDaze(amount) - if(status_flags & CANDAZE) - dazed = max(dazed + amount,0) - return + if(!(status_flags & CANDAZE)) + return + amount = GetDazeDuration(amount) + var/datum/status_effect/incapacitating/dazed/dazed = IsDaze() + if(dazed) + dazed.update_duration(amount, increment = TRUE) + else if(amount > 0) + dazed = apply_status_effect(/datum/status_effect/incapacitating/dazed, amount) + return dazed + +/mob/living/proc/SetDaze(amount, ignore_canstun = FALSE) //Sets remaining duration + if(!(status_flags & CANDAZE)) + return + amount = GetDazeDuration(amount) + var/datum/status_effect/incapacitating/dazed/dazed = IsDaze() + if(amount <= 0) + if(dazed) + qdel(dazed) + else + if(dazed) + dazed.update_duration(amount) + else + dazed = apply_status_effect(/datum/status_effect/incapacitating/dazed, amount) + return dazed + +/mob/living/proc/AdjustDaze(amount, ignore_canstun = FALSE) //Adds to remaining duration + if(!(status_flags & CANDAZE)) + return + amount = GetStunDuration(amount) + var/datum/status_effect/incapacitating/dazed/dazed = IsDaze() + if(dazed) + dazed.adjust_duration(amount) + else if(amount > 0) + dazed = apply_status_effect(/datum/status_effect/incapacitating/dazed, amount) + return dazed /mob/living/proc/Slow(amount) if(status_flags & CANSLOW) @@ -174,103 +257,113 @@ SetSuperslow(superslowed + amount) return -/mob/living - VAR_PRIVATE/knocked_down_timer +/* KnockDown (Flooring) */ +/// Overridable handler to adjust the numerical value of status effects. Expand as needed +/mob/living/proc/GetKnockDownDuration(amount) + return amount * GLOBAL_STATUS_MULTIPLIER -/mob/living/proc/knocked_down_callback() - remove_traits(list(TRAIT_FLOORED, TRAIT_INCAPACITATED), KNOCKEDDOWN_TRAIT) - knocked_down = 0 - handle_regular_status_updates(FALSE) - knocked_down_timer = null +/mob/living/proc/IsKnockDown() + return has_status_effect(/datum/status_effect/incapacitating/knockdown) -/mob/living/proc/knocked_down_callback_check() - if(knocked_down) - add_traits(list(TRAIT_FLOORED, TRAIT_INCAPACITATED), KNOCKEDDOWN_TRAIT) +///How much time remains - scaled by GLOBAL_STATUS_MULTIPLIER (normally in multiples of legacy 2 seconds) +/mob/living/proc/AmountKnockDown() + var/datum/status_effect/incapacitating/knockdown/S = IsKnockDown() + if(S) + return S.get_duration_left() / GLOBAL_STATUS_MULTIPLIER + return 0 - if(knocked_down && knocked_down < recovery_constant) - knocked_down_timer = addtimer(CALLBACK(src, PROC_REF(knocked_down_callback)), (knocked_down/recovery_constant) * 2 SECONDS, TIMER_OVERRIDE|TIMER_UNIQUE|TIMER_STOPPABLE) // times whatever amount we have per tick +/mob/living/proc/KnockDown(amount) + if(!(status_flags & CANKNOCKDOWN)) return - - if(!knocked_down) // Force reset since the timer wasn't called - knocked_down_callback() + amount = GetKnockDownDuration(amount) + var/datum/status_effect/incapacitating/knockdown/S = IsKnockDown() + if(S) + S.update_duration(amount, increment = TRUE) + else if(amount > 0) + S = apply_status_effect(/datum/status_effect/incapacitating/knockdown, amount) + return S + +///Sets exact remaining KnockDown duration +/mob/living/proc/SetKnockDown(amount, ignore_canstun = FALSE) + if(!(status_flags & CANKNOCKDOWN)) return - - if(knocked_down_timer) - deltimer(knocked_down_timer) - knocked_down_timer = null - -/mob/living - VAR_PRIVATE/knocked_out_timer - -/mob/living/proc/knocked_out_start() - return - -/mob/living/proc/knocked_out_callback() - REMOVE_TRAIT(src, TRAIT_KNOCKEDOUT, KNOCKEDOUT_TRAIT) - knocked_out = 0 - handle_regular_status_updates(FALSE) - knocked_out_timer = null - -/mob/living/proc/knocked_out_callback_check() - if(knocked_out) - ADD_TRAIT(src, TRAIT_KNOCKEDOUT, KNOCKEDOUT_TRAIT) - if(knocked_out && knocked_out < recovery_constant) - knocked_out_timer = addtimer(CALLBACK(src, PROC_REF(knocked_out_callback)), (knocked_out/recovery_constant) * 2 SECONDS, TIMER_OVERRIDE|TIMER_UNIQUE|TIMER_STOPPABLE) // times whatever amount we have per tick + amount = GetKnockDownDuration(amount) + var/datum/status_effect/incapacitating/knockdown/S = IsKnockDown() + if(amount <= 0) + if(S) + qdel(S) + else + if(S) + S.update_duration(amount) + else + S = apply_status_effect(/datum/status_effect/incapacitating/knockdown, amount) + return S + +///Adds to remaining Knockdown duration +/mob/living/proc/AdjustKnockDown(amount, ignore_canstun = FALSE) + if(!(status_flags & CANKNOCKDOWN)) return - else if(!knocked_out) - //It's been called, and we're probably inconscious, so fix that. - knocked_out_callback() - - if(knocked_out_timer) - deltimer(knocked_out_timer) - knocked_out_timer = null - -// adjust knockdown if needed, do not call it in adjust knockdown -/mob/living/proc/knockdown_clock_adjustment() - return - -/mob/living/proc/KnockDown(amount, force) - if((status_flags & CANKNOCKDOWN) || force) - knocked_down = max(max(knocked_down,amount),0) - knockdown_clock_adjustment() - knocked_down_callback_check() - return - -/mob/living/proc/SetKnockDown(amount) - if(status_flags & CANKNOCKDOWN) - knocked_down = max(amount,0) - knockdown_clock_adjustment() - knocked_down_callback_check() - return - -/mob/living/proc/AdjustKnockDown(amount) - if(status_flags & CANKNOCKDOWN) - knocked_down = max(knocked_down + amount,0) - knocked_down_callback_check() - return - -/mob/living/proc/knockout_clock_adjustment() - return - + amount = GetKnockDownDuration(amount) + var/datum/status_effect/incapacitating/knockdown/S = IsKnockDown() + if(S) + S.adjust_duration(amount) + else if(amount > 0) + S = apply_status_effect(/datum/status_effect/incapacitating/knockdown, amount) + return S + +/* KnockOut (Unconscious) */ +/// Overridable handler to adjust the numerical value of status effects. Expand as needed +/mob/living/proc/GetKnockOutDuration(amount) + return amount * GLOBAL_STATUS_MULTIPLIER + +/mob/living/proc/IsKnockOut() + return has_status_effect(/datum/status_effect/incapacitating/unconscious) + +/mob/living/proc/AmountKnockOut() //How much time remains - scaled by GLOBAL_STATUS_MULTIPLIER (normally in multiples of legacy 2 seconds) + var/datum/status_effect/incapacitating/unconscious/S = IsKnockOut() + if(S) + return S.get_duration_left() / GLOBAL_STATUS_MULTIPLIER + return 0 + +/// Sets Knockout duration to at least the amount provided /mob/living/proc/KnockOut(amount) - if(status_flags & CANKNOCKOUT) - knocked_out = max(max(knocked_out,amount),0) - knockout_clock_adjustment() - knocked_out_callback_check() - return - -/mob/living/proc/SetKnockOut(amount) - if(status_flags & CANKNOCKOUT) - knocked_out = max(amount,0) - knockout_clock_adjustment() - knocked_out_callback_check() - return - -/mob/living/proc/AdjustKnockOut(amount) - if(status_flags & CANKNOCKOUT) - knocked_out = max(knocked_out + amount,0) - knocked_out_callback_check() - return + if(!(status_flags & CANKNOCKOUT)) + return + amount = GetKnockOutDuration(amount) + var/datum/status_effect/incapacitating/unconscious/S = IsKnockOut() + if(S) + S.update_duration(amount, increment = TRUE) + else if(amount > 0) + S = apply_status_effect(/datum/status_effect/incapacitating/unconscious, amount) + return S + +/// Sets exact remaining Knockout duration +/mob/living/proc/SetKnockOut(amount, ignore_canstun = FALSE) + if(!(status_flags & CANKNOCKOUT)) + return + amount = GetKnockOutDuration(amount) + var/datum/status_effect/incapacitating/unconscious/S = IsKnockOut() + if(amount <= 0) + if(S) + qdel(S) + else + if(S) + S.update_duration(amount) + else + S = apply_status_effect(/datum/status_effect/incapacitating/unconscious, amount) + return S + +/// Adds to remaining Knockout duration +/mob/living/proc/AdjustKnockOut(amount, ignore_canstun = FALSE) + if(!(status_flags & CANKNOCKOUT)) + return + amount = GetKnockOutDuration(amount) + var/datum/status_effect/incapacitating/unconscious/S = IsKnockOut() + if(S) + S.adjust_duration(amount) + else if(amount > 0) + S = apply_status_effect(/datum/status_effect/incapacitating/unconscious, amount) + return S /mob/living/proc/Sleeping(amount) sleeping = max(max(sleeping,amount),0) @@ -317,7 +410,7 @@ switch(client.prefs?.pain_overlay_pref_level) if(PAIN_OVERLAY_IMPAIR) - overlay_fullscreen("eye_blur", /atom/movable/screen/fullscreen/impaired, CEILING(clamp(eye_blurry * 0.3, 1, 6), 1)) + overlay_fullscreen("eye_blur", /atom/movable/screen/fullscreen/impaired, ceil(clamp(eye_blurry * 0.3, 1, 6))) if(PAIN_OVERLAY_LEGACY) overlay_fullscreen("eye_blur", /atom/movable/screen/fullscreen/blurry) else // PAIN_OVERLAY_BLURRY @@ -372,11 +465,16 @@ /mob/living/proc/on_deafness_gain() to_chat(src, SPAN_WARNING("You notice you can't hear anything... you're deaf!")) + // We should apply deafness here instead of in handle_regular_status_updates SEND_SIGNAL(src, COMSIG_MOB_DEAFENED) /mob/living/proc/on_deafness_loss() to_chat(src, SPAN_WARNING("You start hearing things again!")) SEND_SIGNAL(src, COMSIG_MOB_REGAINED_HEARING) + // Consider moving this to a signal on soundOutput. This is a fallback as handle_regular_status_updates SHOULD do the job. + if(!ear_deaf && (client?.soundOutput?.status_flags & EAR_DEAF_MUTE)) + client.soundOutput.status_flags ^= EAR_DEAF_MUTE + client.soundOutput.apply_status() // heal ONE limb, organ gets randomly selected from damaged ones. /mob/living/proc/heal_limb_damage(brute, burn) @@ -398,7 +496,7 @@ src.updatehealth() // damage MANY limbs, in random order -/mob/living/proc/take_overall_damage(brute, burn, used_weapon = null) +/mob/living/proc/take_overall_damage(brute, burn, used_weapon = null, limb_damage_chance = 80) if(status_flags & GODMODE) return 0 //godmode apply_damage(brute, BRUTE) apply_damage(burn, BURN) @@ -416,8 +514,6 @@ /mob/living/proc/rejuvenate() heal_all_damage() - SEND_SIGNAL(src, COMSIG_LIVING_REJUVENATED) - // shut down ongoing problems status_flags &= ~PERMANENTLY_DEAD nutrition = NUTRITION_NORMAL @@ -429,6 +525,7 @@ hallucination = 0 jitteriness = 0 dizziness = 0 + stamina.apply_damage(-stamina.max_stamina) // restore all of a human's blood if(ishuman(src)) @@ -454,10 +551,12 @@ tod = null timeofdeath = 0 - // restore us to conciousness + // restore us to consciousness set_stat(CONSCIOUS) regenerate_all_icons() + SEND_SIGNAL(src, COMSIG_LIVING_REJUVENATED) + /mob/living/proc/heal_all_damage() // shut down various types of badness @@ -503,11 +602,3 @@ return face_dir(direction) return ..() - -// Transition handlers. do NOT use this. I mean seriously don't. It's broken. Players love their broken behaviors. -/mob/living/proc/GetStunValueNotADurationDoNotUse() - return stunned -/mob/living/proc/GetKnockDownValueNotADurationDoNotUse() - return knocked_down -/mob/living/proc/GetKnockOutValueNotADurationDoNotUse() - return knocked_out diff --git a/code/modules/mob/living/living_healthscan.dm b/code/modules/mob/living/living_healthscan.dm index f3355157a40f..6739e7046761 100644 --- a/code/modules/mob/living/living_healthscan.dm +++ b/code/modules/mob/living/living_healthscan.dm @@ -76,8 +76,14 @@ GLOBAL_LIST_INIT(known_implants, subtypesof(/obj/item/implant)) var/total_mob_damage = target_mob.getBruteLoss() + target_mob.getFireLoss() + target_mob.getToxLoss() + target_mob.getCloneLoss() - // Fake death will make the scanner think they died of oxygen damage, thus it returns enough damage to kill minus already recieved damage. - return round(POSITIVE(200 - total_mob_damage)) + // Fake death will make the scanner think they died of oxygen damage, thus it returns enough damage to kill minus already received damage. + return floor(POSITIVE(200 - total_mob_damage)) + +/datum/health_scan/proc/get_holo_card_color(mob/living/target_mob) + if(!ishuman(target_mob)) + return + var/mob/living/carbon/human/human_mob = target_mob + return human_mob.holo_card_color /datum/health_scan/proc/get_health_value(mob/living/target_mob) if(!(target_mob.status_flags & FAKEDEATH)) @@ -90,14 +96,14 @@ GLOBAL_LIST_INIT(known_implants, subtypesof(/obj/item/implant)) "patient" = target_mob.name, "dead" = get_death_value(target_mob), "health" = get_health_value(target_mob), - "total_brute" = round(target_mob.getBruteLoss()), - "total_burn" = round(target_mob.getFireLoss()), - "toxin" = round(target_mob.getToxLoss()), + "total_brute" = floor(target_mob.getBruteLoss()), + "total_burn" = floor(target_mob.getFireLoss()), + "toxin" = floor(target_mob.getToxLoss()), "oxy" = get_oxy_value(target_mob), - "clone" = round(target_mob.getCloneLoss()), + "clone" = floor(target_mob.getCloneLoss()), "blood_type" = target_mob.blood_type, "blood_amount" = target_mob.blood_volume, - + "holocard" = get_holo_card_color(target_mob), "hugged" = (locate(/obj/item/alien_embryo) in target_mob), ) @@ -178,19 +184,18 @@ GLOBAL_LIST_INIT(known_implants, subtypesof(/obj/item/implant)) bleeding_check = TRUE break - if((!limb.brute_dam && !limb.burn_dam && !(limb.status & LIMB_DESTROYED)) && !bleeding_check && !internal_bleeding_check && !(implant && detail_level >= DETAIL_LEVEL_BODYSCAN ) && !(limb.status & LIMB_UNCALIBRATED_PROSTHETIC) && !(limb.status & LIMB_BROKEN) && !(limb.status & LIMB_SPLINTED) && !(limb.status & LIMB_SPLINTED_INDESTRUCTIBLE)) + if((!limb.brute_dam && !limb.burn_dam && !(limb.status & LIMB_DESTROYED)) && !bleeding_check && !internal_bleeding_check && !(implant && detail_level >= DETAIL_LEVEL_BODYSCAN ) && !(limb.status & LIMB_UNCALIBRATED_PROSTHETIC) && !(limb.status & LIMB_BROKEN) && !(limb.status & LIMB_SPLINTED) && !(limb.status & LIMB_SPLINTED_INDESTRUCTIBLE) && !(limb.get_incision_depth())) continue var/list/core_body_parts = list("head", "chest", "groin") var/list/current_list = list( "name" = limb.display_name, - "brute" = round(limb.brute_dam), - "burn" = round(limb.burn_dam), + "brute" = floor(limb.brute_dam), + "burn" = floor(limb.burn_dam), "bandaged" = limb.is_bandaged(), "salved" = limb.is_salved(), "missing" = (limb.status & LIMB_DESTROYED), "limb_status" = null, "bleeding" = bleeding_check, - "open_incision" = limb.get_incision_depth(), "implant" = implant, "internal_bleeding" = internal_bleeding_check ) @@ -248,6 +253,24 @@ GLOBAL_LIST_INIT(known_implants, subtypesof(/obj/item/implant)) if(limb_type) current_list["limb_type"] = limb_type + //checking for open incisions, but since eyes and mouths incisions are "head incisions" but not "head surgeries" gotta do some snowflake + if(limb.name == "head") + if(human_target_mob.active_surgeries["head"]) + current_list["open_incision"] = TRUE + + var/zone + if(human_target_mob.active_surgeries["eyes"]) + zone = "eyes" + if(human_target_mob.active_surgeries["mouth"]) + if(zone) + zone = "eyes and mouth" + else + zone = "mouth" + current_list["open_zone_incision"] = capitalize(zone) + + else + current_list["open_incision"] = limb.get_incision_depth() + limb_data_lists["[limb.name]"] = current_list data["limb_data_lists"] = limb_data_lists @@ -416,7 +439,7 @@ GLOBAL_LIST_INIT(known_implants, subtypesof(/obj/item/implant)) "icon" = "window-close", "color" = "red" )) - if(advice.len) + if(length(advice)) data["advice"] = advice else data["advice"] = null // interstingly even if we don't set data at all, re-using UI that had this data still has it @@ -434,7 +457,7 @@ GLOBAL_LIST_INIT(known_implants, subtypesof(/obj/item/implant)) "cure" = disease.cure ) diseases += list(current_disease) - if(diseases.len) + if(length(diseases)) data["diseases"] = diseases else data["diseases"] = null // interstingly even if we don't set data at all, re-using UI that had this data still has it @@ -450,6 +473,17 @@ GLOBAL_LIST_INIT(known_implants, subtypesof(/obj/item/implant)) return data +/datum/health_scan/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) + . = ..() + if(.) + return + switch(action) + if("change_holo_card") + if(ishuman(target_mob)) + var/mob/living/carbon/human/target_human = target_mob + target_human.change_holo_card(ui.user) + return TRUE + /// legacy proc for to_chat messages on health analysers /mob/living/proc/health_scan(mob/living/carbon/human/user, ignore_delay = FALSE, show_limb_damage = TRUE, show_browser = TRUE, alien = FALSE, do_checks = TRUE) // ahem. FUCK WHOEVER CODED THIS SHIT AS NUMBERS AND NOT DEFINES. if(do_checks) @@ -540,9 +574,9 @@ GLOBAL_LIST_INIT(known_implants, subtypesof(/obj/item/implant)) else if(org.status & LIMB_SYNTHSKIN) org_name += " (Synthskin)" - var/burn_info = org.burn_dam > 0 ? " [round(org.burn_dam)]" : "0" + var/burn_info = org.burn_dam > 0 ? " [floor(org.burn_dam)]" : "0" burn_info += "[burn_treated ? "" : "{B}"]" - var/brute_info = org.brute_dam > 0 ? " [round(org.brute_dam)]" : "0" + var/brute_info = org.brute_dam > 0 ? " [floor(org.brute_dam)]" : "0" brute_info += "[brute_treated ? "" : "{T}"]" var/fracture_info = "" if(org.status & LIMB_BROKEN) @@ -599,7 +633,7 @@ GLOBAL_LIST_INIT(known_implants, subtypesof(/obj/item/implant)) if(ishuman(src)) var/mob/living/carbon/human/H = src - if(H.embedded_items.len > 0) + if(length(H.embedded_items) > 0) embedded_item_detected = TRUE var/core_fracture = 0 @@ -631,7 +665,7 @@ GLOBAL_LIST_INIT(known_implants, subtypesof(/obj/item/implant)) reagentdata["[R.id]"] = "[R.overdose != 0 && R.volume > R.overdose && !(R.flags & REAGENT_CANNOT_OVERDOSE) ? SPAN_WARNING("OD: ") : ""] [round(R.volume, 1)]u [R.name]" else unknown++ - if(reagentdata.len) + if(length(reagentdata)) dat += "\n\tBeneficial reagents:\n" for(var/d in reagentdata) dat += "\t\t [reagentdata[d]]\n" @@ -646,7 +680,7 @@ GLOBAL_LIST_INIT(known_implants, subtypesof(/obj/item/implant)) // Show blood level var/blood_volume = BLOOD_VOLUME_NORMAL if(!(H.species && H.species.flags & NO_BLOOD)) - blood_volume = round(H.blood_volume) + blood_volume = floor(H.blood_volume) var/blood_percent = blood_volume / 560 var/blood_type = H.blood_type diff --git a/code/modules/mob/living/living_verbs.dm b/code/modules/mob/living/living_verbs.dm index 88167feda3c0..777aa66fe29d 100644 --- a/code/modules/mob/living/living_verbs.dm +++ b/code/modules/mob/living/living_verbs.dm @@ -1,3 +1,10 @@ +/mob/living/can_resist() + if(next_move > world.time) + return FALSE + if(HAS_TRAIT(src, TRAIT_INCAPACITATED)) + return FALSE + return TRUE + /mob/living/verb/resist() set name = "Resist" set category = "IC" @@ -59,7 +66,7 @@ if (BB.opened) return visible_message("[BB] begins to wiggle violently!") - if(do_after(src, 5 SECONDS, INTERRUPT_ALL, BUSY_ICON_HOSTILE, BB))//5 second unzip from inside + if(do_after(src, 5 SECONDS, INTERRUPT_UNCONSCIOUS, BUSY_ICON_HOSTILE, BB))//5 second unzip from inside BB.open() ///The medical machines below are listed separately to allow easier changes to each process @@ -121,7 +128,7 @@ if(!do_after(src, (breakout_time*1 MINUTES), INTERRUPT_NO_NEEDHAND^INTERRUPT_RESIST)) return - if(!C || !src || stat != CONSCIOUS || loc != C || C.opened) //closet/user destroyed OR user dead/unconcious OR user no longer in closet OR closet opened + if(!C || !src || stat != CONSCIOUS || loc != C || C.opened) //closet/user destroyed OR user dead/unconscious OR user no longer in closet OR closet opened return //Perform the same set of checks as above for weld and lock status to determine if there is even still a point in 'resisting'... if(istype(loc, /obj/structure/closet/secure_closet)) @@ -163,25 +170,16 @@ return //breaking out of handcuffs & putting out fires - if(!is_mob_incapacitated(TRUE)) + if(mobility_flags & MOBILITY_MOVE) if(on_fire) resist_fire() - - var/on_acid = FALSE - for(var/datum/effects/acid/A in effects_list) - on_acid = TRUE - break - if(on_acid) + if(locate(/datum/effects/acid) in effects_list) resist_acid() + if(last_special <= world.time) + resist_restraints() SEND_SIGNAL(src, COMSIG_MOB_RESISTED) - if(!iscarbon(src)) - return - var/mob/living/carbon/C = src - if((C.handcuffed || C.legcuffed) && (C.mobility_flags & MOBILITY_MOVE) && (C.last_special <= world.time)) - resist_restraints() - /mob/living/proc/resist_buckle() buckled.manual_unbuckle(src) diff --git a/code/modules/mob/living/login.dm b/code/modules/mob/living/login.dm index 50ea9e7a62e3..2bae197050dc 100644 --- a/code/modules/mob/living/login.dm +++ b/code/modules/mob/living/login.dm @@ -6,7 +6,7 @@ ..() - if(pipes_shown && pipes_shown.len) //ventcrawling, need to reapply pipe vision + if(LAZYLEN(pipes_shown)) //ventcrawling, need to reapply pipe vision var/obj/structure/pipes/A = loc if(istype(A)) //a sanity check just to be safe remove_ventcrawl() diff --git a/code/modules/mob/living/say.dm b/code/modules/mob/living/say.dm index 9fa38d1ecb43..7f3af1449266 100644 --- a/code/modules/mob/living/say.dm +++ b/code/modules/mob/living/say.dm @@ -165,11 +165,11 @@ GLOBAL_LIST_INIT(department_radio_keys, list( if(message_mode) // we are talking into a radio if(message_mode == "headset") // default value, means general message_mode = "General" - log_say("[name != "Unknown" ? name : "([real_name])"] \[[message_mode]\]: [message] (CKEY: [key]) (JOB: [job])") + log_say("[name != "Unknown" ? name : "([real_name])"] \[[message_mode]\]: [message] (CKEY: [key]) (JOB: [job]) (AREA: [get_area_name(loc)])") else // we talk normally - log_say("[name != "Unknown" ? name : "([real_name])"]: [message] (CKEY: [key]) (JOB: [job])") + log_say("[name != "Unknown" ? name : "([real_name])"]: [message] (CKEY: [key]) (JOB: [job]) (AREA: [get_area_name(loc)])") else - log_say("[name != "Unknown" ? name : "([real_name])"]: [message] (CKEY: [key])") + log_say("[name != "Unknown" ? name : "([real_name])"]: [message] (CKEY: [key]) (AREA: [get_area_name(loc)])") return 1 diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm deleted file mode 100644 index 6782e3174579..000000000000 --- a/code/modules/mob/living/silicon/ai/ai.dm +++ /dev/null @@ -1,627 +0,0 @@ -#define AI_CHECK_WIRELESS 1 -#define AI_CHECK_RADIO 2 - -GLOBAL_LIST_EMPTY(ai_list) -GLOBAL_LIST_INIT(ai_verbs_default, list( - /mob/living/silicon/ai/proc/ai_alerts, - /mob/living/silicon/ai/proc/ai_announcement, - // /mob/living/silicon/ai/proc/ai_recall_shuttle, - /mob/living/silicon/ai/proc/ai_camera_track, - /mob/living/silicon/ai/proc/ai_camera_list, - /mob/living/silicon/ai/proc/ai_goto_location, - /mob/living/silicon/ai/proc/ai_remove_location, - /mob/living/silicon/ai/proc/ai_roster, - /mob/living/silicon/ai/proc/ai_store_location, - /mob/living/silicon/ai/proc/control_integrated_radio, - /mob/living/silicon/ai/proc/core, - /mob/living/silicon/ai/proc/pick_icon, - /mob/living/silicon/ai/proc/sensor_mode, - /mob/living/silicon/ai/proc/toggle_acceleration -)) - - - //mob/living/silicon/ai/proc/ai_hologram_change, - - //mob/living/silicon/ai/proc/ai_network_change - //mob/living/silicon/ai/proc/ai_statuschange, - //mob/living/silicon/ai/proc/toggle_camera_light - -//Not sure why this is necessary... -/proc/AutoUpdateAI(obj/subject) - var/is_in_use = 0 - if (subject!=null) - for(var/A in GLOB.ai_list) - var/mob/living/silicon/ai/M = A - if ((M.client && M.interactee == subject)) - is_in_use = 1 - subject.attack_remote(M) - return is_in_use - - -/mob/living/silicon/ai - name = "AI" - icon = 'icons/mob/AI.dmi'// - icon_state = "ai" - anchored = TRUE // -- TLE - density = TRUE - status_flags = CANSTUN|CANKNOCKOUT - med_hud = MOB_HUD_MEDICAL_BASIC - sec_hud = MOB_HUD_SECURITY_BASIC - var/list/network = list(CAMERA_NET_ALMAYER) - var/obj/structure/machinery/camera/camera = null - var/list/connected_robots = list() - var/aiRestorePowerRoutine = 0 - //var/list/laws = list() - var/viewalerts = 0 - var/lawcheck[1] - var/ioncheck[1] - var/lawchannel = "Common" // Default channel on which to state laws - var/icon/holo_icon//Default is assigned when AI is created. -// var/obj/item/device/pda/ai/aiPDA = null - var/obj/item/device/multitool/aiMulti = null - var/obj/item/device/radio/headset/ai_integrated/aiRadio = null -//Hud stuff - - //MALFUNCTION - var/datum/AI_Module/module_picker/malf_picker - var/processing_time = 100 - var/list/datum/AI_Module/current_modules = list() - var/fire_res_on_core = 0 - - var/control_disabled = 0 // Set to 1 to stop AI from interacting via Click() -- TLE - var/malfhacking = 0 // More or less a copy of the above var, so that malf AIs can hack and still get new cyborgs -- NeoFite - - var/obj/structure/machinery/power/apc/malfhack = null - var/explosive = 0 //does the AI explode when it dies? - - var/mob/living/silicon/ai/parent = null - - var/camera_light_on = 0 //Defines if the AI toggled the light on the camera it's looking through. - var/datum/trackable/track = null - var/last_announcement = "" - var/datum/announcement/priority/announcement - -/mob/living/silicon/ai/proc/add_ai_verbs() - add_verb(src, GLOB.ai_verbs_default) - -/mob/living/silicon/ai/proc/remove_ai_verbs() - remove_verb(src, GLOB.ai_verbs_default) - -/mob/living/silicon/ai/New(loc, obj/item/device/mmi/B, safety = 0) - var/list/possibleNames = GLOB.ai_names - - var/pickedName = null - while(!pickedName) - pickedName = pick(GLOB.ai_names) - for (var/mob/living/silicon/ai/A in GLOB.mob_list) - if (A.real_name == pickedName && possibleNames.len > 1) //fixing the theoretically possible infinite loop - possibleNames -= pickedName - pickedName = null - -// aiPDA = new/obj/item/device/pda/ai(src) - SetName(pickedName) - anchored = TRUE - ADD_TRAIT(src, TRAIT_IMMOBILIZED, TRAIT_SOURCE_INHERENT) - set_density(TRUE) - forceMove(loc) - - holo_icon = getHologramIcon(icon('icons/mob/AI.dmi',"holo1")) - - aiMulti = new(src) - aiRadio = new(src) - aiRadio.myAi = src - aiCamera = new/obj/item/device/camera/siliconcam/ai_camera(src) - - if (istype(loc, /turf)) - add_ai_verbs(src) - - //Languages - add_language(LANGUAGE_ENGLISH, 1) - add_language(LANGUAGE_RUSSIAN, 1) - add_language(LANGUAGE_XENOMORPH, 0) - - - if(!safety)//Only used by AIize() to successfully spawn an AI. - if (!B)//If there is no player/brain inside. - new/obj/structure/AIcore/deactivated(loc)//New empty terminal. - qdel(src)//Delete AI. - return - else - if (B.brainmob.mind) - B.brainmob.mind.transfer_to(src) - - to_chat(src, "You are playing the station's AI. The AI cannot move, but can interact with many objects while viewing them (through cameras).") - to_chat(src, "To look at other parts of the station, click on yourself to get a camera menu.") - to_chat(src, "While observing through a camera, you can use most (networked) devices which you can see, such as computers, APCs, intercoms, doors, etc.") - to_chat(src, "To use something, simply click on it.") - to_chat(src, "Use say :b to speak to your cyborgs through binary.") - show_laws() - to_chat(src, "These laws may be changed by other players, or by you being the traitor.") - - job = "AI" - - spawn(5) - new /obj/structure/machinery/ai_powersupply(src) - - GLOB.ai_list += src - ..() - return - -/mob/living/silicon/ai/Destroy() - GLOB.ai_list -= src - QDEL_NULL(aiMulti) - if(aiRadio) - aiRadio.myAi = null - QDEL_NULL(aiRadio) - QDEL_NULL(aiCamera) - . = ..() - -/mob/living/silicon/ai/proc/SetName(pickedName as text) - change_real_name(src, pickedName) - - if(eyeobj) - eyeobj.name = "[pickedName] (AI Eye)" - - // Set ai pda name - /* - if(aiPDA) - aiPDA.ownjob = "AI" - aiPDA.owner = pickedName - aiPDA.name = pickedName + " (" + aiPDA.ownjob + ")" - Fuck PDAs */ - -/* - The AI Power supply is a dummy object used for powering the AI since only machinery should be using power. - The alternative was to rewrite a bunch of AI code instead here we are. -*/ -/obj/structure/machinery/ai_powersupply - name="Power Supply" - active_power_usage=1000 - use_power = USE_POWER_ACTIVE - power_channel = POWER_CHANNEL_EQUIP - var/mob/living/silicon/ai/powered_ai = null - invisibility = 100 - -/obj/structure/machinery/ai_powersupply/New(mob/living/silicon/ai/ai) - powered_ai = ai - if(isnull(powered_ai)) - qdel(src) - return - forceMove(powered_ai.loc) - use_power(1) // Just incase we need to wake up the power system. - //start_processing() - //..() - -/obj/structure/machinery/ai_powersupply/process() - if(!powered_ai || powered_ai.stat & DEAD) - qdel(src) - return - if(!powered_ai.anchored) - forceMove(powered_ai.loc) - update_use_power(USE_POWER_NONE) - if(powered_ai.anchored) - update_use_power(USE_POWER_ACTIVE) - -/mob/living/silicon/ai/proc/pick_icon() - set category = "AI Commands" - set name = "Set AI Core Display" - if(stat || aiRestorePowerRoutine) - return - - //if(icon_state == initial(icon_state)) - var/icontype = tgui_input_list(usr, "Select an icon!", "AI", list("Monochrome", "Rainbow", "Blue", "Inverted", "Text", "Smiley", "Angry", "Dorf", "Matrix", "Bliss", "Firewall", "Green", "Red", "Static", "Triumvirate", "Triumvirate Static", "Soviet", "Trapped", "Heartline", "Chatterbox")) - switch(icontype) - if("Rainbow") icon_state = "ai-clown" - if("Monochrome") icon_state = "ai-mono" - if("Inverted") icon_state = "ai-u" - if("Firewall") icon_state = "ai-magma" - if("Green") icon_state = "ai-wierd" - if("Red") icon_state = "ai-red" - if("Static") icon_state = "ai-static" - if("Text") icon_state = "ai-text" - if("Smiley") icon_state = "ai-smiley" - if("Matrix") icon_state = "ai-matrix" - if("Angry") icon_state = "ai-angryface" - if("Dorf") icon_state = "ai-dorf" - if("Bliss") icon_state = "ai-bliss" - if("Triumvirate") icon_state = "ai-triumvirate" - if("Triumvirate Static") icon_state = "ai-triumvirate-malf" - if("Soviet") icon_state = "ai-redoctober" - if("Trapped") icon_state = "ai-hades" - if("Heartline") icon_state = "ai-heartline" - if("Chatterbox") icon_state = "ai-president" - else icon_state = "ai" - -/mob/living/silicon/ai/proc/ai_alerts() - set category = "AI Commands" - set name = "Show Alerts" - - var/dat = "Current Station Alerts\n" - dat += "Close

            " - for (var/cat in alarms) - dat += text("[]
            \n", cat) - var/list/alarmlist = alarms[cat] - if (alarmlist.len) - for (var/area_name in alarmlist) - var/datum/alarm/alarm = alarmlist[area_name] - dat += "" - - var/cameratext = "" - if (alarm.cameras) - for (var/obj/structure/machinery/camera/I in alarm.cameras) - cameratext += text("[][]", (cameratext=="") ? "" : "|", src, I, I.c_tag) - dat += text("-- [] ([])", alarm.area.name, (cameratext)? cameratext : "No Camera") - - if (alarm.sources.len > 1) - dat += text(" - [] sources", alarm.sources.len) - dat += "
            \n" - else - dat += "-- All Systems Nominal
            \n" - dat += "
            \n" - - viewalerts = 1 - src << browse(dat, "window=aialerts&can_close=0") - -// this verb lets the ai see the stations manifest -/mob/living/silicon/ai/proc/ai_roster() - set category = "AI Commands" - set name = "Show Crew Manifest" - show_station_manifest() - -/mob/living/silicon/ai/var/message_cooldown = 0 -/mob/living/silicon/ai/proc/ai_announcement() - set category = "AI Commands" - set name = "Make Station Announcement" - - if(check_unable(AI_CHECK_WIRELESS|AI_CHECK_RADIO)) - return - - if(message_cooldown) - to_chat(src, "Please allow one minute to pass between announcements.") - return - var/input = stripped_multiline_input(usr, "Please write a message to announce to the station crew.", "A.I. Announcement") - if(!input) - return - - if(check_unable(AI_CHECK_WIRELESS|AI_CHECK_RADIO)) - return - - ai_announcement(input) - message_cooldown = 1 - spawn(1 MINUTES)//One minute cooldown - message_cooldown = 0 - -/mob/living/silicon/ai/check_eye(mob/user) - if (!camera) - user.reset_view(null) - return - user.reset_view(camera) - -/mob/living/silicon/ai/is_mob_restrained() - return 0 - -/mob/living/silicon/ai/emp_act(severity) - . = ..() - if (prob(30)) view_core() - -/mob/living/silicon/ai/Topic(href, href_list) - if(usr != src) - return - ..() - if (href_list["mach_close"]) - if (href_list["mach_close"] == "aialerts") - viewalerts = 0 - var/t1 = text("window=[]", href_list["mach_close"]) - unset_interaction() - src << browse(null, t1) - if (href_list["switchcamera"]) - switchCamera(locate(href_list["switchcamera"])) in GLOB.cameranet.cameras - if (href_list["showalerts"]) - ai_alerts() - //Carn: holopad requests - if (href_list["jumptoholopad"]) - var/obj/structure/machinery/hologram/holopad/H = locate(href_list["jumptoholopad"]) - if(stat == CONSCIOUS) - if(H) - H.attack_remote(src) //may as well recycle - else - to_chat(src, SPAN_NOTICE("Unable to locate the holopad.")) - - if (href_list["track"]) - var/mob/target = locate(href_list["track"]) in GLOB.mob_list - - if(target && (!istype(target, /mob/living/carbon/human) || html_decode(href_list["trackname"]) == target:get_face_name())) - ai_actual_track(target) - else - to_chat(src, "System error. Cannot locate.") - return - - return - -/mob/living/silicon/ai/attack_animal(mob/living/M as mob) - if(M.melee_damage_upper == 0) - M.emote("[M.friendly] [src]") - else - if(M.attack_sound) - playsound(loc, M.attack_sound, 25, 1) - for(var/mob/O in viewers(src, null)) - O.show_message(SPAN_DANGER("[M] [M.attacktext] [src]!"), SHOW_MESSAGE_VISIBLE) - last_damage_data = create_cause_data(initial(M.name), M) - M.attack_log += text("\[[time_stamp()]\] attacked [src.name] ([src.ckey])") - src.attack_log += text("\[[time_stamp()]\] was attacked by [M.name] ([M.ckey])") - var/damage = rand(M.melee_damage_lower, M.melee_damage_upper) - apply_damage(damage, BRUTE) - updatehealth() - -/mob/living/silicon/ai/reset_view(atom/A) - if(camera) - camera.set_light(0) - if(istype(A,/obj/structure/machinery/camera)) - camera = A - ..() - if(istype(A,/obj/structure/machinery/camera)) - if(camera_light_on) A.set_light(AI_CAMERA_LUMINOSITY) - else A.set_light(0) - - -/mob/living/silicon/ai/proc/switchCamera(obj/structure/machinery/camera/C) - if (!C || stat == DEAD) //C.can_use()) - return 0 - - if(!src.eyeobj) - view_core() - return - // ok, we're alive, camera is good and in our network... - eyeobj.setLoc(get_turf(C)) - //machine = src - - return 1 - -/mob/living/silicon/ai/triggerAlarm(class, area/A, list/cameralist, source) - if (stat == 2) - return 1 - - ..() - - var/cameratext = "" - for (var/obj/structure/machinery/camera/C in cameralist) - cameratext += "[(cameratext == "")? "" : "|"][C.c_tag]" - - queueAlarm("--- [class] alarm detected in [A.name]! ([(cameratext)? cameratext : "No Camera"])", class) - - if (viewalerts) ai_alerts() - -/mob/living/silicon/ai/cancelAlarm(class, area/A as area, source) - var/has_alarm = ..() - - if (!has_alarm) - queueAlarm(text("--- [] alarm in [] has been cleared.", class, A.name), class, 0) - if (viewalerts) ai_alerts() - - return has_alarm - -/mob/living/silicon/ai/cancel_camera() - set category = "AI Commands" - set name = "Cancel Camera View" - - //src.cameraFollow = null - src.view_core() - - -//Replaces /mob/living/silicon/ai/verb/change_network() in ai.dm & camera.dm -//Adds in /mob/living/silicon/ai/proc/ai_network_change() instead -//Addition by Mord_Sith to define AI's network change ability -/mob/living/silicon/ai/proc/ai_network_change() - set category = "AI Commands" - set name = "Jump To Network" - unset_interaction() - var/cameralist[0] - - if(check_unable()) - return - - var/mob/living/silicon/ai/U = usr - - for (var/obj/structure/machinery/camera/C in GLOB.cameranet.cameras) - if(!C.can_use()) - continue - - var/list/tempnetwork = difflist(C.network,GLOB.RESTRICTED_CAMERA_NETWORKS,1) - if(tempnetwork.len) - for(var/i in tempnetwork) - cameralist[i] = i - var/old_network = network - network = tgui_input_list(U, "Which network would you like to view?", "View network", cameralist) - - if(!U.eyeobj) - U.view_core() - return - - if(isnull(network)) - network = old_network // If nothing is selected - else - for(var/obj/structure/machinery/camera/C in GLOB.cameranet.cameras) - if(!C.can_use()) - continue - if(network in C.network) - U.eyeobj.setLoc(get_turf(C)) - break - to_chat(src, SPAN_NOTICE(" Switched to [network] camera network.")) -//End of code by Mord_Sith - -/mob/living/silicon/ai/proc/ai_statuschange() - set category = "AI Commands" - set name = "AI Status" - - if(check_unable(AI_CHECK_WIRELESS)) - return - - var/list/ai_emotions = list("Very Happy", "Happy", "Neutral", "Unsure", "Confused", "Surprised", "Sad", "Upset", "Angry", "Awesome", "BSOD", "Blank", "Problems?", "Facepalm", "Friend Computer") - var/emote = tgui_input_list(usr, "Please, select a status!", "AI Status", ai_emotions) - for (var/obj/structure/machinery/M in GLOB.machines) //change status - if(istype(M, /obj/structure/machinery/ai_status_display)) - var/obj/structure/machinery/ai_status_display/AISD = M - AISD.emotion = emote - //if Friend Computer, change ALL displays - else if(istype(M, /obj/structure/machinery/status_display)) - - var/obj/structure/machinery/status_display/SD = M - if(emote=="Friend Computer") - SD.friendc = 1 - else - SD.friendc = 0 - return - -//I am the icon meister. Bow fefore me. //>fefore -/mob/living/silicon/ai/proc/ai_hologram_change() - set name = "Change Hologram" - set desc = "Change the default hologram available to AI to something else." - set category = "AI Commands" - - if(check_unable()) - return - - var/input - if(alert("Would you like to select a hologram based on a crew member or switch to unique avatar?",,"Crew Member","Unique")=="Crew Member") - - var/personnel_list[] = list() - - for(var/datum/data/record/t in GLOB.data_core.locked)//Look in data core locked. - personnel_list["[t.fields["name"]]: [t.fields["rank"]]"] = t.fields["image"]//Pull names, rank, and image. - - if(personnel_list.len) - input = tgui_input_list(usr, "Select a crew member:", "Change hologram", personnel_list) - var/icon/character_icon = personnel_list[input] - if(character_icon) - qdel(holo_icon)//Clear old icon so we're not storing it in memory. - holo_icon = getHologramIcon(icon(character_icon)) - else - alert("No suitable records found. Aborting.") - - else - var/icon_list[] = list( - "default", - "floating face", - "carp" - ) - input = tgui_input_list(usr, "Please select a hologram:", "Select hologram", icon_list) - if(input) - QDEL_NULL(holo_icon) - switch(input) - if("default") - holo_icon = getHologramIcon(icon('icons/mob/AI.dmi',"holo1")) - if("floating face") - holo_icon = getHologramIcon(icon('icons/mob/AI.dmi',"holo2")) - if("carp") - holo_icon = getHologramIcon(icon('icons/mob/AI.dmi',"holo4")) - return - -/*/mob/living/silicon/ai/proc/corereturn() - set category = "Malfunction" - set name = "Return to Main Core" - - var/obj/structure/machinery/power/apc/apc = src.loc - if(!istype(apc)) - to_chat(src, SPAN_NOTICE(" You are already in your Main Core.")) - return - apc.malfvacate()*/ - -//Toggles the luminosity and applies it by re-entereing the camera. -/mob/living/silicon/ai/proc/toggle_camera_light() - set name = "Toggle Camera Light" - set desc = "Toggles the light on the camera the AI is looking through." - set category = "AI Commands" - - if(check_unable()) - return - - camera_light_on = !camera_light_on - to_chat(src, "Camera lights [camera_light_on ? "activated" : "deactivated"].") - if(!camera_light_on) - if(camera) - camera.set_light(0) - camera = null - else - lightNearbyCamera() - - - -// Handled camera lighting, when toggled. -// It will get the nearest camera from the eyeobj, lighting it. - -/mob/living/silicon/ai/proc/lightNearbyCamera() - if(camera_light_on && camera_light_on < world.timeofday) - if(src.camera) - var/obj/structure/machinery/camera/camera = near_range_camera(src.eyeobj) - if(camera && src.camera != camera) - src.camera.set_light(0) - if(!camera.light_disabled) - src.camera = camera - src.camera.set_light(AI_CAMERA_LUMINOSITY) - else - src.camera = null - else if(isnull(camera)) - src.camera.set_light(0) - src.camera = null - else - var/obj/structure/machinery/camera/camera = near_range_camera(src.eyeobj) - if(camera && !camera.light_disabled) - src.camera = camera - src.camera.set_light(AI_CAMERA_LUMINOSITY) - camera_light_on = world.timeofday + 1 * 20 // Update the light every 2 seconds. - - -/mob/living/silicon/ai/attackby(obj/item/W as obj, mob/user as mob) - if(HAS_TRAIT(W, TRAIT_TOOL_WRENCH)) - if(anchored) - user.visible_message(SPAN_NOTICE("\The [user] starts to unbolt \the [src] from the plating...")) - if(!do_after(user, 40, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD)) - user.visible_message(SPAN_NOTICE("\The [user] decides not to unbolt \the [src].")) - return - user.visible_message(SPAN_NOTICE("\The [user] finishes unfastening \the [src]!")) - anchored = FALSE - return - else - user.visible_message(SPAN_NOTICE("\The [user] starts to bolt \the [src] to the plating...")) - if(!do_after(user, 40, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD)) - user.visible_message(SPAN_NOTICE("\The [user] decides not to bolt \the [src].")) - return - user.visible_message(SPAN_NOTICE("\The [user] finishes fastening down \the [src]!")) - anchored = TRUE - return - else - return ..() - -/mob/living/silicon/ai/proc/control_integrated_radio() - set name = "Radio Settings" - set desc = "Allows you to change settings of your radio." - set category = "AI Commands" - - if(check_unable(AI_CHECK_RADIO)) - return - - to_chat(src, "Accessing Subspace Transceiver control...") - if (src.aiRadio) - src.aiRadio.interact(src) - -/mob/living/silicon/ai/proc/sensor_mode() - set name = "Set Sensor Augmentation" - set category = "AI Commands" - set desc = "Augment visual feed with internal sensor overlays" - toggle_sensor_mode() - -/mob/living/silicon/ai/proc/check_unable(flags = 0) - if(stat == DEAD) - to_chat(usr, SPAN_DANGER("You are dead!")) - return 1 - - if((flags & AI_CHECK_WIRELESS) && src.control_disabled) - to_chat(usr, SPAN_DANGER("Wireless control is disabled!")) - return 1 - if((flags & AI_CHECK_RADIO) && src.aiRadio.disabledAi) - to_chat(src, SPAN_DANGER("System Error - Transceiver Disabled!")) - return 1 - return 0 - -#undef AI_CHECK_WIRELESS -#undef AI_CHECK_RADIO diff --git a/code/modules/mob/living/silicon/ai/death.dm b/code/modules/mob/living/silicon/ai/death.dm deleted file mode 100644 index 1555fc9c2b7b..000000000000 --- a/code/modules/mob/living/silicon/ai/death.dm +++ /dev/null @@ -1,22 +0,0 @@ -/mob/living/silicon/ai/death(cause, gibbed) - - if(stat == DEAD) - return - - icon_state = "ai-crash" - - if(src.eyeobj) - src.eyeobj.setLoc(get_turf(src)) - - remove_ai_verbs(src) - - if(explosive) - addtimer(CALLBACK(src, PROC_REF(explosion), src.loc, 3, 6, 12, 15), 10) - - for(var/obj/structure/machinery/ai_status_display/O in GLOB.machines) - spawn( 0 ) - O.mode = 2 - if (istype(loc, /obj/item/device/aicard)) - loc.icon_state = "aicard-404" - - return ..(cause, gibbed,"gives one shrill beep before falling lifeless.") diff --git a/code/modules/mob/living/silicon/ai/examine.dm b/code/modules/mob/living/silicon/ai/examine.dm deleted file mode 100644 index 1fb41e022960..000000000000 --- a/code/modules/mob/living/silicon/ai/examine.dm +++ /dev/null @@ -1,26 +0,0 @@ -/mob/living/silicon/ai/get_examine_text(mob/user) - if( (user.sdisabilities & DISABILITY_BLIND || user.blinded || user.stat) && !istype(user,/mob/dead/observer) ) - return list(SPAN_NOTICE("Something is there but you can't see it.")) - - var/msg = "*---------*\nThis is [icon2html(src)] [src]!\n" - if (src.stat == DEAD) - msg += "It appears to be powered-down.\n" - else - msg += "" - if (src.getBruteLoss()) - if (src.getBruteLoss() < 30) - msg += "It looks slightly dented.\n" - else - msg += "It looks severely dented!\n" - if (src.getFireLoss()) - if (src.getFireLoss() < 30) - msg += "It looks slightly charred.\n" - else - msg += "Its casing is melted and heat-warped!\n" - - if (src.stat == UNCONSCIOUS) - msg += "It is non-responsive and displaying the text: \"RUNTIME: Sensory Overload, stack 26/3\".\n" - msg += "" - msg += "*---------*" - - . += msg diff --git a/code/modules/mob/living/silicon/ai/freelook/cameranet.dm b/code/modules/mob/living/silicon/ai/freelook/cameranet.dm deleted file mode 100644 index 808ad653b73c..000000000000 --- a/code/modules/mob/living/silicon/ai/freelook/cameranet.dm +++ /dev/null @@ -1,148 +0,0 @@ -// CAMERA NET -// -// The datum containing all the chunks. - -GLOBAL_DATUM_INIT(cameranet, /datum/cameranet, new()) - -/datum/cameranet - // The cameras on the map, no matter if they work or not. Updated in obj/structure/machinery/camera/New() and Dispose(). - var/list/cameras = list() - // The chunks of the map, mapping the areas that the cameras can see. - var/list/chunks = list() - var/ready = 0 - -// Checks if a chunk has been Generated in x, y, z. -/datum/cameranet/proc/chunkGenerated(x, y, z) - x &= ~0xf - y &= ~0xf - var/key = "[x],[y],[z]" - return (chunks[key]) - -// Returns the chunk in the x, y, z. -// If there is no chunk, it creates a new chunk and returns that. -/datum/cameranet/proc/getCameraChunk(x, y, z) - x &= ~0xf - y &= ~0xf - var/key = "[x],[y],[z]" - if(!chunks[key]) - chunks[key] = new /datum/camerachunk(null, x, y, z) - - return chunks[key] - -// Updates what the aiEye can see. It is recommended you use this when the aiEye moves or it's location is set. - -/datum/cameranet/proc/visibility(mob/aiEye/ai) - // 0xf = 15 - var/x1 = max(0, ai.x - 16) & ~0xf - var/y1 = max(0, ai.y - 16) & ~0xf - var/x2 = min(world.maxx, ai.x + 16) & ~0xf - var/y2 = min(world.maxy, ai.y + 16) & ~0xf - - var/list/visibleChunks = list() - - for(var/x = x1; x <= x2; x += 16) - for(var/y = y1; y <= y2; y += 16) - visibleChunks += getCameraChunk(x, y, ai.z) - - var/list/remove = ai.visibleCameraChunks - visibleChunks - var/list/add = visibleChunks - ai.visibleCameraChunks - - for(var/chunk in remove) - var/datum/camerachunk/c = chunk - c.remove(ai) - - for(var/chunk in add) - var/datum/camerachunk/c = chunk - c.add(ai) - -// Updates the chunks that the turf is located in. Use this when obstacles are destroyed or when doors open. - -/datum/cameranet/proc/updateVisibility(atom/A, opacity_check = 1) - - if(opacity_check && !A.opacity) - return - majorChunkChange(A, 2) - -/datum/cameranet/proc/updateChunk(x, y, z) - // 0xf = 15 - if(!chunkGenerated(x, y, z)) - return - var/datum/camerachunk/chunk = getCameraChunk(x, y, z) - chunk.hasChanged() - -// Removes a camera from a chunk. - -/datum/cameranet/proc/removeCamera(obj/structure/machinery/camera/c) - if(c.can_use()) - majorChunkChange(c, 0) - -// Add a camera to a chunk. - -/datum/cameranet/proc/addCamera(obj/structure/machinery/camera/c) - if(c.can_use()) - majorChunkChange(c, 1) - -// Used for Cyborg cameras. Since portable cameras can be in ANY chunk. - -/datum/cameranet/proc/updatePortableCamera(obj/structure/machinery/camera/c) - if(c.can_use()) - majorChunkChange(c, 1) - //else - // majorChunkChange(c, 0) - -// Never access this proc directly!!!! -// This will update the chunk and all the surrounding chunks. -// It will also add the atom to the cameras list if you set the choice to 1. -// Setting the choice to 0 will remove the camera from the chunks. -// If you want to update the chunks around an object, without adding/removing a camera, use choice 2. - -/datum/cameranet/proc/majorChunkChange(atom/c, choice) - // 0xf = 15 - if(!c) - return - - var/turf/T = get_turf(c) - if(T) - var/x1 = max(0, T.x - 8) & ~0xf - var/y1 = max(0, T.y - 8) & ~0xf - var/x2 = min(world.maxx, T.x + 8) & ~0xf - var/y2 = min(world.maxy, T.y + 8) & ~0xf - - for(var/x = x1; x <= x2; x += 16) - for(var/y = y1; y <= y2; y += 16) - if(chunkGenerated(x, y, T.z)) - var/datum/camerachunk/chunk = getCameraChunk(x, y, T.z) - if(choice == 0) - // Remove the camera. - chunk.cameras -= c - else if(choice == 1) - // You can't have the same camera in the list twice. - chunk.cameras |= c - chunk.hasChanged() - -// Will check if a mob is on a viewable turf. Returns 1 if it is, otherwise returns 0. - -/datum/cameranet/proc/checkCameraVis(mob/living/target as mob) - - // 0xf = 15 - var/turf/position = get_turf(target) - return checkTurfVis(position) - -/datum/cameranet/proc/checkTurfVis(turf/position) - var/datum/camerachunk/chunk = getCameraChunk(position.x, position.y, position.z) - if(chunk) - if(chunk.changed) - chunk.hasChanged(1) // Update now, no matter if it's visible or not. - if(chunk.visibleTurfs[position]) - return 1 - return 0 - -// Debug verb for VVing the chunk that the turf is in. -/* -/turf/verb/view_chunk() - set src in world - - if(GLOB.cameranet.chunkGenerated(x, y, z)) - var/datum/camerachunk/chunk = GLOB.cameranet.getCameraChunk(x, y, z) - usr.client.debug_variables(chunk) -*/ diff --git a/code/modules/mob/living/silicon/ai/freelook/chunk.dm b/code/modules/mob/living/silicon/ai/freelook/chunk.dm deleted file mode 100644 index 2113e70aa22f..000000000000 --- a/code/modules/mob/living/silicon/ai/freelook/chunk.dm +++ /dev/null @@ -1,168 +0,0 @@ -#define UPDATE_BUFFER 25 // 2.5 seconds - -// CAMERA CHUNK -// -// A 16x16 grid of the map with a list of turfs that can be seen, are visible and are dimmed. -// Allows the AI Eye to stream these chunks and know what it can and cannot see. - -/datum/camerachunk - var/list/obscuredTurfs = list() - var/list/visibleTurfs = list() - var/list/obscured = list() - var/list/cameras = list() - var/list/turfs = list() - var/list/seenby = list() - var/visible = 0 - var/changed = 0 - var/updating = 0 - var/x = 0 - var/y = 0 - var/z = 0 - -// Add an AI eye to the chunk, then update if changed. - -/datum/camerachunk/proc/add(mob/aiEye/ai) - if(!ai.ai) - return - ai.visibleCameraChunks += src - if(ai.ai.client) - ai.ai.client.images += obscured - visible++ - seenby += ai - if(changed && !updating) - update() - -// Remove an AI eye from the chunk, then update if changed. - -/datum/camerachunk/proc/remove(mob/aiEye/ai) - if(!ai.ai) - return - ai.visibleCameraChunks -= src - if(ai.ai.client) - ai.ai.client.images -= obscured - seenby -= ai - if(visible > 0) - visible-- - -// Called when a chunk has changed. I.E: A wall was deleted. - -/datum/camerachunk/proc/visibilityChanged(turf/loc) - if(!visibleTurfs[loc]) - return - hasChanged() - -// Updates the chunk, makes sure that it doesn't update too much. If the chunk isn't being watched it will -// instead be flagged to update the next time an AI Eye moves near it. - -/datum/camerachunk/proc/hasChanged(update_now = 0) - if(visible || update_now) - if(!updating) - updating = 1 - spawn(UPDATE_BUFFER) // Batch large changes, such as many doors opening or closing at once - update() - updating = 0 - else - changed = 1 - -// The actual updating. It gathers the visible turfs from cameras and puts them into the appropiate lists. - -/datum/camerachunk/proc/update() - - set background = 1 - - var/list/newVisibleTurfs = list() - - for(var/camera in cameras) - var/obj/structure/machinery/camera/c = camera - - if(!c) - continue - - if(!c.can_use()) - continue - - var/turf/point = locate(src.x + 8, src.y + 8, src.z) - if(get_dist(point, c) > 24) - continue - - for(var/turf/t in c.can_see()) - newVisibleTurfs[t] = t - - // Removes turf that isn't in turfs. - newVisibleTurfs &= turfs - - var/list/visAdded = newVisibleTurfs - visibleTurfs - var/list/visRemoved = visibleTurfs - newVisibleTurfs - - visibleTurfs = newVisibleTurfs - obscuredTurfs = turfs - newVisibleTurfs - - for(var/turf in visAdded) - var/turf/t = turf - if(t.obscured) - obscured -= t.obscured - for(var/eye in seenby) - var/mob/aiEye/m = eye - if(!m || !m.ai) - continue - if(m.ai.client) - m.ai.client.images -= t.obscured - - for(var/turf in visRemoved) - var/turf/t = turf - if(obscuredTurfs[t]) - if(!t.obscured) - t.obscured = image('icons/effects/cameravis.dmi', t, "black", 15) - - obscured += t.obscured - for(var/eye in seenby) - var/mob/aiEye/m = eye - if(!m || !m.ai) - seenby -= m - continue - if(m.ai.client) - m.ai.client.images += t.obscured - -// Create a new camera chunk, since the chunks are made as they are needed. - -/datum/camerachunk/New(loc, x, y, z) - - // 0xf = 15 - x &= ~0xf - y &= ~0xf - - src.x = x - src.y = y - src.z = z - - for(var/obj/structure/machinery/camera/c in range(16, locate(x + 8, y + 8, z))) - if(c.can_use()) - cameras += c - - for(var/turf/t in range(10, locate(x + 8, y + 8, z))) - if(t.x >= x && t.y >= y && t.x < x + 16 && t.y < y + 16) - turfs[t] = t - - for(var/camera in cameras) - var/obj/structure/machinery/camera/c = camera - if(!c) - continue - - if(!c.can_use()) - continue - - for(var/turf/t in c.can_see()) - visibleTurfs[t] = t - - // Removes turf that isn't in turfs. - visibleTurfs &= turfs - - obscuredTurfs = turfs - visibleTurfs - - for(var/turf in obscuredTurfs) - var/turf/t = turf - if(!t.obscured) - t.obscured = image('icons/effects/cameravis.dmi', t, "black", 15) - obscured += t.obscured - -#undef UPDATE_BUFFER diff --git a/code/modules/mob/living/silicon/ai/freelook/eye.dm b/code/modules/mob/living/silicon/ai/freelook/eye.dm deleted file mode 100644 index 22e2bf05aa2c..000000000000 --- a/code/modules/mob/living/silicon/ai/freelook/eye.dm +++ /dev/null @@ -1,139 +0,0 @@ -// AI EYE -// -// An invisible (no icon) mob that the AI controls to look around the station with. -// It streams chunks as it moves around, which will show it what the AI can and cannot see. - -/mob/aiEye - name = "Inactive AI Eye" - icon = 'icons/obj/structures/machinery/status_display.dmi' // For AI friend secret shh :o - var/list/visibleCameraChunks = list() - var/mob/living/silicon/ai/ai = null - density = FALSE - status_flags = GODMODE // You can't damage it. - mouse_opacity = MOUSE_OPACITY_TRANSPARENT - see_in_dark = 7 - -// Movement code. Returns 0 to stop air movement from moving it. -/mob/aiEye/Move() - return 0 - -// Use this when setting the aiEye's location. -// It will also stream the chunk that the new loc is in. -/mob/aiEye/proc/setLoc(T, cancel_tracking = 1) - - if(ai) - if(!isturf(ai.loc)) - return - - if(cancel_tracking) - ai.ai_cancel_tracking() - - T = get_turf(T) - forceMove(T) - GLOB.cameranet.visibility(src) - if(ai.client) - ai.client.eye = src - //Holopad - if(ai.holo) - ai.holo.move_hologram() - -/mob/aiEye/proc/getLoc() - - if(ai) - if(!isturf(ai.loc) || !ai.client) - return - if(ai.eyeobj) - return ai.eyeobj.loc - -// AI MOVEMENT - -// The AI's "eye". Described on the top of the page. - -/mob/living/silicon/ai - var/mob/aiEye/eyeobj = new() - var/sprint = 10 - var/cooldown = 0 - var/acceleration = 1 - var/obj/structure/machinery/hologram/holopad/holo = null - -// Intiliaze the eye by assigning it's "ai" variable to us. Then set it's loc to us. -/mob/living/silicon/ai/Initialize() - . = ..() - if(eyeobj) - eyeobj.ai = src - eyeobj.name = "[src.name] (AI Eye)" // Give it a name - spawn(5) - if(eyeobj) - eyeobj.forceMove(src.loc) - -/mob/living/silicon/ai/Destroy() - if(eyeobj) - eyeobj.ai = null - QDEL_NULL(eyeobj) - . = ..() - -/atom/proc/move_camera_by_click() - if(isRemoteControlling(usr)) - var/mob/living/silicon/ai/AI = usr - if(AI.eyeobj && AI.client.eye == AI.eyeobj) - AI.eyeobj.setLoc(src) - -// This will move the AIEye. It will also cause lights near the eye to light up, if toggled. -// This is handled in the proc below this one. - -/mob/living/silicon/ai/Move(n, direct) - - var/initial = initial(sprint) - var/max_sprint = 50 - - if(cooldown && cooldown < world.timeofday) // 3 seconds - sprint = initial - - if(eyeobj) - for(var/i = 0; i < max(sprint, initial); i += 20) - var/turf/step = get_turf(get_step(eyeobj, direct)) - if(step) - eyeobj.setLoc(step) - - cooldown = world.timeofday + 5 - if(acceleration) - sprint = min(sprint + 0.5, max_sprint) - else - sprint = initial - - //user.unset_interaction() //Uncomment this if it causes problems. - //user.lightNearbyCamera() - - -// Return to the Core. - -/mob/living/silicon/ai/proc/core() - set category = "AI Commands" - set name = "AI Core" - - view_core() - - -/mob/living/silicon/ai/proc/view_core() - camera = null - unset_interaction() - - if(!src.eyeobj) - to_chat(src, "ERROR: Eyeobj not found. Creating new eye...") - src.eyeobj = new(src.loc) - src.eyeobj.ai = src - src.SetName(src.name) - - if(client && client.eye) - client.eye = src - for(var/datum/camerachunk/c in eyeobj.visibleCameraChunks) - c.remove(eyeobj) - if(eyeobj) - src.eyeobj.setLoc(src) - -/mob/living/silicon/ai/proc/toggle_acceleration() - set category = "AI Commands" - set name = "Toggle Camera Acceleration" - - acceleration = !acceleration - to_chat(usr, "Camera acceleration has been toggled [acceleration ? "on" : "off"].") diff --git a/code/modules/mob/living/silicon/ai/freelook/read_me.dm b/code/modules/mob/living/silicon/ai/freelook/read_me.dm deleted file mode 100644 index 4d255772981e..000000000000 --- a/code/modules/mob/living/silicon/ai/freelook/read_me.dm +++ /dev/null @@ -1,51 +0,0 @@ -// CREDITS -/* -Initial code credit for this goes to Uristqwerty. -Debugging, functionality, all comments and porting by Giacom. - -Everything about freelook (or what we can put in here) will be stored here. - - -WHAT IS THIS? - -This is a replacement for the current camera movement system, of the AI. Before this, the AI had to move between cameras and could -only see what the cameras could see. Not only this but the cameras could see through walls, which created problems. -With this, the AI controls an "AI Eye" mob, which moves just like a ghost; such as moving through walls and being invisible to players. -The AI's eye is set to this mob and then we use a system (explained below) to determine what the cameras around the AI Eye can and -cannot see. If the camera cannot see a turf, it will black it out, otherwise it won't and the AI will be able to see it. -This creates several features, such as... no more see-through-wall cameras, easier to control camera movement, easier tracking, -the AI only being able to track mobs which are visible to a camera, only trackable mobs appearing on the mob list and many more. - - -HOW IT WORKS - -It works by first creating a camera network datum. Inside of this camera network are "chunks" (which will be -explained later) and "cameras". The cameras list is kept up to date by obj/structure/machinery/camera/New() and Dispose(). - -Next the camera network has chunks. These chunks are a 16x16 tile block of turfs and cameras contained inside the chunk. -These turfs are then sorted out based on what the cameras can and cannot see. If none of the cameras can see the turf, inside -the 16x16 block, it is listed as an "obscured" turf. Meaning the AI won't be able to see it. - - -HOW IT UPDATES - -The camera network uses a streaming method in order to effeciently update chunks. Since the server will have doors opening, doors closing, -turf being destroyed and other lag inducing stuff, we want to update it under certain conditions and not every tick. - -The chunks are not created straight away, only when an AI eye moves into it's area is when it gets created. -One a chunk is created, when a non glass door opens/closes or an opacity turf is destroyed, we check to see if an AI Eye is looking in the area. -We do this with the "seenby" list, which updates everytime an AI is near a chunk. If there is an AI eye inside the area, we update the chunk -that the changed atom is inside and all surrounding chunks, since a camera's vision could leak onto another chunk. If there is no AI Eye, we instead -flag the chunk to update whenever it is loaded by an AI Eye. This is basically how the chunks update and keep it in sync. We then add some lag reducing -measures, such as an UPDATE_BUFFER which stops a chunk from updating too many times in a certain time-frame, only updating if the changed atom was blocking -sight; for example, we don't update glass airlocks or floors. - - -WHERE IS EVERYTHING? - -cameranet.dm = Everything about the cameranet datum. -chunk.dm = Everything about the chunk datum. -eye.dm = Everything about the AI and the AIEye. -updating.dm = Everything about triggers that will update chunks. - -*/ diff --git a/code/modules/mob/living/silicon/ai/freelook/update_triggers.dm b/code/modules/mob/living/silicon/ai/freelook/update_triggers.dm deleted file mode 100644 index 7ecaab1c3e79..000000000000 --- a/code/modules/mob/living/silicon/ai/freelook/update_triggers.dm +++ /dev/null @@ -1,117 +0,0 @@ -#define BORG_CAMERA_BUFFER 5 - -//UPDATE TRIGGERS, when the chunk (and the surrounding chunks) should update. - -// TURFS - -/turf - var/image/obscured - -/turf/proc/visibilityChanged() - if(z && SSatoms.initialized != INITIALIZATION_INSSATOMS) - GLOB.cameranet.updateVisibility(src) - -/obj/structure/machinery/door/poddoor/shutters/open() - if(z && SSatoms.initialized != INITIALIZATION_INSSATOMS) - GLOB.cameranet.updateVisibility(src) - . = ..() - - -/obj/structure/machinery/door/poddoor/shutters/close() - if(z && SSatoms.initialized != INITIALIZATION_INSSATOMS) - GLOB.cameranet.updateVisibility(src) - . = ..() - - -/obj/structure/machinery/door/poddoor/shutters/Destroy() - if(z && SSatoms.initialized != INITIALIZATION_INSSATOMS) - GLOB.cameranet.updateVisibility(src) - . = ..() -// STRUCTURES - -/obj/structure/Destroy(force) - if(z && SSatoms.initialized != INITIALIZATION_INSSATOMS) - GLOB.cameranet.updateVisibility(src) - . = ..() - -/obj/structure/Initialize(mapload, ...) - . = ..() - if(z && SSatoms.initialized != INITIALIZATION_INSSATOMS) - GLOB.cameranet.updateVisibility(src) - -// EFFECTS - -/obj/effect/Destroy() - if(z && SSatoms.initialized != INITIALIZATION_INSSATOMS) - GLOB.cameranet.updateVisibility(src) - . = ..() - -/obj/effect/Initialize(mapload, ...) - . = ..() - if(z && SSatoms.initialized != INITIALIZATION_INSSATOMS) - GLOB.cameranet.updateVisibility(src) - - - -// ROBOT MOVEMENT - -// Update the portable camera everytime the Robot moves. -// This might be laggy, comment it out if there are problems. -/mob/living/silicon/robot/var/updating = 0 - -/mob/living/silicon/robot/Move() - var/oldLoc = src.loc - . = ..() - if(.) - if(src.camera && src.camera.network.len) - if(!updating) - updating = 1 - spawn(BORG_CAMERA_BUFFER) - if(oldLoc != src.loc) - GLOB.cameranet.updatePortableCamera(src.camera) - updating = 0 - -/mob/living/carbon/human/var/updating = 0 - -/mob/living/carbon/human/Move(NewLoc, direction) - var/oldLoc = src.loc - . = ..() - if (.) - for (var/obj/item/clothing/head/helmet/marine/H in src) - if (!H.camera || !H.camera.network.len) - continue - if (updating) - continue - updating = TRUE - spawn(BORG_CAMERA_BUFFER) - if (oldLoc != loc) - GLOB.cameranet.updatePortableCamera(H.camera) - updating = FALSE - -// CAMERA - -// An addition to deactivate which removes/adds the camera from the chunk list based on if it works or not. - -/obj/structure/machinery/camera/toggle_cam_status(mob/user, silent) - ..() - if(can_use()) - GLOB.cameranet.addCamera(src) - else - set_light(0) - GLOB.cameranet.removeCamera(src) - -/obj/structure/machinery/camera/Initialize() - . = ..() - GLOB.cameranet.cameras += src //Camera must be added to global list of all cameras no matter what... - var/list/open_networks = difflist(network,GLOB.RESTRICTED_CAMERA_NETWORKS) //...but if all of camera's networks are restricted, it only works for specific camera consoles. - if(open_networks.len) //If there is at least one open network, chunk is available for AI usage. - GLOB.cameranet.addCamera(src) - -/obj/structure/machinery/camera/Destroy() - GLOB.cameranet.cameras -= src - var/list/open_networks = difflist(network,GLOB.RESTRICTED_CAMERA_NETWORKS) - if(open_networks.len) - GLOB.cameranet.removeCamera(src) - . = ..() - -//#undef BORG_CAMERA_BUFFER diff --git a/code/modules/mob/living/silicon/ai/life.dm b/code/modules/mob/living/silicon/ai/life.dm deleted file mode 100644 index 5b190143f5bc..000000000000 --- a/code/modules/mob/living/silicon/ai/life.dm +++ /dev/null @@ -1,182 +0,0 @@ -/mob/living/silicon/ai/Life(delta_time) - if (src.stat == 2) - return - else //I'm not removing that shitton of tabs, unneeded as they are. -- Urist - //Being dead doesn't mean your temperature never changes - var/turf/T = get_turf(src) - - if (src.stat!=0) - src.cameraFollow = null - src.reset_view(null) - src.unset_interaction() - - src.updatehealth() - - if (src.malfhack) - if (src.malfhack.aidisabled) - to_chat(src, SPAN_DANGER("ERROR: APC access disabled, hack attempt canceled.")) - src.malfhacking = 0 - src.malfhack = null - - - if (health <= HEALTH_THRESHOLD_DEAD) - death() - return - - if (interactee) - interactee.check_eye(src) - - // Handle power damage (oxy) - if(src:aiRestorePowerRoutine != 0) - // Lost power - apply_damage(1, OXY) - else - // Gain Power - apply_damage(-1, OXY) - - // Handle EMP-stun - handle_stunned() - - //stage = 1 - //if (isRemoteControlling(src)) // Are we not sure what we are? - var/blind = 0 - //stage = 2 - var/area/loc = null - if (istype(T, /turf)) - //stage = 3 - forceMove(T.loc) - if (istype(loc, /area)) - //stage = 4 - if (!loc.power_equip && !istype(src.loc,/obj/item)) - //stage = 5 - blind = 1 - - if (!blind) //lol? if(!blind) #if(src.blind.layer) <--something here is clearly wrong :P - //I'll get back to this when I find out how this is -supposed- to work ~Carn //removed this shit since it was confusing as all hell --39kk9t - //stage = 4.5 - src.sight |= SEE_TURFS - src.sight |= SEE_MOBS - src.sight |= SEE_OBJS - src.see_in_dark = 8 - src.see_invisible = SEE_INVISIBLE_LEVEL_TWO - - - //Congratulations! You've found a way for AI's to run without using power! - //Todo: Without snowflaking up master_controller procs find a way to make AI use_power but only when APC's clear the area usage the tick prior - // since mobs are in master_controller before machinery. We also have to do it in a manner where we don't reset the entire area's need to update - // the power usage. - // - // We can probably create a new machine that resides inside of the AI contents that uses power using the idle_usage of 1000 and nothing else and - // be fine. -/* - var/area/home = get_area(src) - if(!home) return//something to do with malf fucking things up I guess. <-- aisat is gone. is this still necessary? ~Carn - if(home.powered(EQUIP)) - home.use_power(1000) -*/ - - if (src:aiRestorePowerRoutine==2) - to_chat(src, "Alert cancelled. Power has been restored without our assistance.") - src:aiRestorePowerRoutine = 0 - clear_fullscreen("blind") - return - else if (src:aiRestorePowerRoutine==3) - to_chat(src, "Alert cancelled. Power has been restored.") - src:aiRestorePowerRoutine = 0 - clear_fullscreen("blind") - return - else - - //stage = 6 - overlay_fullscreen("blind", /atom/movable/screen/fullscreen/blind) - src.sight = src.sight&~SEE_TURFS - src.sight = src.sight&~SEE_MOBS - src.sight = src.sight&~SEE_OBJS - src.see_in_dark = 0 - src.see_invisible = SEE_INVISIBLE_LIVING - - if (((!loc.power_equip) || istype(T, /turf/open/space)) && !istype(src.loc,/obj/item)) - if (src:aiRestorePowerRoutine==0) - src:aiRestorePowerRoutine = 1 - - to_chat(src, "You've lost power!") - //src.clear_supplied_laws() // Don't reset our laws. - //var/time = time2text(world.realtime,"hh:mm:ss") - //lawchanges.Add("[time] : [src.name]'s noncore laws have been reset due to power failure") - spawn(20) - to_chat(src, "Backup battery online. Scanners, camera, and radio interface offline. Beginning fault-detection.") - sleep(50) - if (loc.power_equip) - if (!istype(T, /turf/open/space)) - to_chat(src, "Alert cancelled. Power has been restored without our assistance.") - src:aiRestorePowerRoutine = 0 - clear_fullscreen("blind") - return - to_chat(src, "Fault confirmed: missing external power. Shutting down main control system to save power.") - sleep(20) - to_chat(src, "Emergency control system online. Verifying connection to power network.") - sleep(50) - if (istype(T, /turf/open/space)) - to_chat(src, "Unable to verify! No power connection detected!") - src:aiRestorePowerRoutine = 2 - return - to_chat(src, "Connection verified. Searching for APC in power network.") - sleep(50) - var/obj/structure/machinery/power/apc/theAPC = null -/* - for (var/something in loc) - if (istype(something, /obj/structure/machinery/power/apc)) - if (!(something:stat & BROKEN)) - theAPC = something - break -*/ - var/PRP //like ERP with the code, at least this stuff is no more 4x sametext - for (PRP=1, PRP<=4, PRP++) - var/area/AIarea = get_area(src) - for (var/obj/structure/machinery/power/apc/APC in AIarea) - if (!(APC.stat & BROKEN)) - theAPC = APC - break - if (!theAPC) - switch(PRP) - if (1) to_chat(src, "Unable to locate APC!") - else to_chat(src, "Lost connection with the APC!") - src:aiRestorePowerRoutine = 2 - return - if (loc.power_equip) - if (!istype(T, /turf/open/space)) - to_chat(src, "Alert cancelled. Power has been restored without our assistance.") - src:aiRestorePowerRoutine = 0 - clear_fullscreen("blind") - return - switch(PRP) - if (1) to_chat(src, "APC located. Optimizing route to APC to avoid needless power waste.") - if (2) to_chat(src, "Best route identified. Hacking offline APC power port.") - if (3) to_chat(src, "Power port upload access confirmed. Loading control program into APC power port software.") - if (4) - to_chat(src, "Transfer complete. Forcing APC to execute program.") - sleep(50) - to_chat(src, "Receiving control information from APC.") - sleep(2) - //bring up APC dialog - theAPC.attack_remote(src) - src:aiRestorePowerRoutine = 3 - to_chat(src, "Here are your current laws:") - src.show_laws() - sleep(50) - theAPC = null - - -/mob/living/silicon/ai/updatehealth() - if(status_flags & GODMODE) - health = 100 - set_stat(CONSCIOUS) - else - if(fire_res_on_core) - health = 100 - getOxyLoss() - getToxLoss() - getBruteLoss() - else - health = 100 - getOxyLoss() - getToxLoss() - getFireLoss() - getBruteLoss() - -/mob/living/silicon/ai/rejuvenate() - ..() - add_ai_verbs(src) diff --git a/code/modules/mob/living/silicon/ai/login.dm b/code/modules/mob/living/silicon/ai/login.dm deleted file mode 100644 index 7a8d6ba9585f..000000000000 --- a/code/modules/mob/living/silicon/ai/login.dm +++ /dev/null @@ -1,10 +0,0 @@ -/mob/living/silicon/ai/Login() //ThisIsDumb(TM) TODO: tidy this up �_� ~Carn - ..() - regenerate_icons() - - if(stat != DEAD) - for(var/obj/structure/machinery/ai_status_display/O in GLOB.machines) //change status - O.mode = 1 - O.emotion = "Neutral" - src.view_core() - return diff --git a/code/modules/mob/living/silicon/ai/logout.dm b/code/modules/mob/living/silicon/ai/logout.dm deleted file mode 100644 index 62964915c33a..000000000000 --- a/code/modules/mob/living/silicon/ai/logout.dm +++ /dev/null @@ -1,10 +0,0 @@ -/mob/living/silicon/ai/Logout() - ..() - for(var/obj/structure/machinery/ai_status_display/O in GLOB.machines) //change status - O.mode = 0 - if(!isturf(loc)) - if (client) - client.eye = loc - client.perspective = EYE_PERSPECTIVE - src.view_core() - return diff --git a/code/modules/mob/living/silicon/ai/say.dm b/code/modules/mob/living/silicon/ai/say.dm deleted file mode 100644 index 0f8684063a94..000000000000 --- a/code/modules/mob/living/silicon/ai/say.dm +++ /dev/null @@ -1,5 +0,0 @@ -/mob/living/silicon/ai/say(message) - if(parent && istype(parent) && parent.stat != 2) - return parent.say(message) - //If there is a defined "parent" AI, it is actually an AI, and it is alive, anything the AI tries to say is said by the parent instead. - return ..(message) diff --git a/code/modules/mob/living/silicon/alarm.dm b/code/modules/mob/living/silicon/alarm.dm deleted file mode 100644 index c5e0081b9895..000000000000 --- a/code/modules/mob/living/silicon/alarm.dm +++ /dev/null @@ -1,111 +0,0 @@ -/datum/alarm - var/area/area //the area associated with the alarm. Used to identify the alarm - var/list/sources //list of things triggering the alarm. Used to determine when the alarm should be cleared. - var/list/cameras //list of cameras that can be switched to, if the player has that capability. - -/datum/alarm/New(area/A, list/sourcelist=list(), list/cameralist=list()) - area = A - sources = sourcelist - cameras = cameralist - -/mob/living/silicon - var/alarms = list("Motion"=list(), "Fire"=list(), "Atmosphere"=list(), "Power"=list(), "Camera"=list()) //each sublist stores alarms keyed by the area name - var/list/alarms_to_show = list() - var/list/alarms_to_clear = list() - var/list/alarm_types_show = list("Motion" = 0, "Fire" = 0, "Atmosphere" = 0, "Power" = 0, "Camera" = 0) - var/list/alarm_types_clear = list("Motion" = 0, "Fire" = 0, "Atmosphere" = 0, "Power" = 0, "Camera" = 0) - -/mob/living/silicon/proc/triggerAlarm(class, area/A, list/cameralist, source) - var/list/alarmlist = alarms[class] - - //see if there is already an alarm of this class for this area - if (A.name in alarmlist) - var/datum/alarm/existing = alarmlist[A.name] - existing.sources += source - existing.cameras |= cameralist - else - alarmlist[A.name] = new /datum/alarm(A, list(source), cameralist) - -/mob/living/silicon/proc/cancelAlarm(class, area/A as area, source) - var/cleared = 0 - var/list/alarmlist = alarms[class] - - if (A.name in alarmlist) - var/datum/alarm/alarm = alarmlist[A.name] - alarm.sources -= source - - if (!(alarm.sources.len)) - cleared = 1 - alarmlist -= A.name - - return !cleared - -/mob/living/silicon/proc/queueAlarm(message, type, incoming = 1) - var/in_cooldown = (alarms_to_show.len > 0 || alarms_to_clear.len > 0) - if(incoming) - alarms_to_show += message - alarm_types_show[type]++ - else - alarms_to_clear += message - alarm_types_clear[type]++ - - if(!in_cooldown) - spawn(10 * 10) // 10 seconds - - if(alarms_to_show.len < 5) - for(var/msg in alarms_to_show) - to_chat(src, msg) - else if(alarms_to_show.len) - - var/msg = "--- " - - if(alarm_types_show["Motion"]) - msg += "MOTION: [alarm_types_show["Motion"]] alarms detected. - " - - if(alarm_types_show["Fire"]) - msg += "FIRE: [alarm_types_show["Fire"]] alarms detected. - " - - if(alarm_types_show["Atmosphere"]) - msg += "ATMOSPHERE: [alarm_types_show["Atmosphere"]] alarms detected. - " - - if(alarm_types_show["Power"]) - msg += "POWER: [alarm_types_show["Power"]] alarms detected. - " - - if(alarm_types_show["Camera"]) - msg += "CAMERA: [alarm_types_show["Power"]] alarms detected. - " - - msg += "\[Show Alerts\]" - src << msg - - if(alarms_to_clear.len < 3) - for(var/msg in alarms_to_clear) - src << msg - - else if(alarms_to_clear.len) - var/msg = "--- " - - if(alarm_types_clear["Motion"]) - msg += "MOTION: [alarm_types_clear["Motion"]] alarms cleared. - " - - if(alarm_types_clear["Fire"]) - msg += "FIRE: [alarm_types_clear["Fire"]] alarms cleared. - " - - if(alarm_types_clear["Atmosphere"]) - msg += "ATMOSPHERE: [alarm_types_clear["Atmosphere"]] alarms cleared. - " - - if(alarm_types_clear["Power"]) - msg += "POWER: [alarm_types_clear["Power"]] alarms cleared. - " - - if(alarm_types_show["Camera"]) - msg += "CAMERA: [alarm_types_show["Power"]] alarms detected. - " - - msg += "\[Show Alerts\]" - src << msg - - - alarms_to_show = list() - alarms_to_clear = list() - for(var/i = 1; i < alarm_types_show.len; i++) - alarm_types_show[i] = 0 - for(var/i = 1; i < alarm_types_clear.len; i++) - alarm_types_clear[i] = 0 diff --git a/code/modules/mob/living/silicon/death.dm b/code/modules/mob/living/silicon/death.dm index ed2f01c725e5..0b3b371083e4 100644 --- a/code/modules/mob/living/silicon/death.dm +++ b/code/modules/mob/living/silicon/death.dm @@ -16,7 +16,4 @@ /mob/living/silicon/death(cause, gibbed, deathmessage) SSmob.living_misc_mobs -= src - if(in_contents_of(/obj/structure/machinery/recharge_station))//exit the recharge station - var/obj/structure/machinery/recharge_station/RC = loc - RC.go_out() - return ..(cause, gibbed, deathmessage) + return ..() diff --git a/code/modules/mob/living/silicon/decoy/decoy.dm b/code/modules/mob/living/silicon/decoy/decoy.dm index bc7271554352..3c2d65bd4180 100644 --- a/code/modules/mob/living/silicon/decoy/decoy.dm +++ b/code/modules/mob/living/silicon/decoy/decoy.dm @@ -47,6 +47,9 @@ /mob/living/silicon/decoy/death(cause, gibbed, deathmessage = "sparks up and falls silent...") if(stat == DEAD) return FALSE + + //ARES sends out last messages + ares_final_words() icon_state = "hydra-off" var/datum/cause_data/cause_data = create_cause_data("rapid unscheduled disassembly", src, src) addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(explosion), loc, -1, 0, 8, 12, TRUE, FALSE, 0, cause_data), 2 SECONDS) diff --git a/code/modules/mob/living/silicon/robot/analyzer.dm b/code/modules/mob/living/silicon/robot/analyzer.dm deleted file mode 100644 index fd88125fc0b6..000000000000 --- a/code/modules/mob/living/silicon/robot/analyzer.dm +++ /dev/null @@ -1,77 +0,0 @@ -// -//Robotic Component Analyser, basically a health analyser for robots -// -/obj/item/device/robotanalyzer - name = "cyborg analyzer" - icon_state = "robotanalyzer" - item_state = "analyzer" - desc = "A hand-held scanner able to diagnose robotic injuries." - flags_atom = FPRINT|CONDUCT - flags_equip_slot = SLOT_WAIST - throwforce = 3 - w_class = SIZE_SMALL - throw_speed = SPEED_VERY_FAST - throw_range = 10 - matter = list("metal" = 200) - - var/mode = 1; - -/obj/item/device/robotanalyzer/attack(mob/living/M as mob, mob/living/user as mob) - if((user.getBrainLoss() >= 60) && prob(50)) - to_chat(user, (SPAN_DANGER("You try to analyze the floor's vitals!"))) - for(var/mob/O in viewers(M, null)) - O.show_message(text(SPAN_DANGER("[user] has analyzed the floor's vitals!")), 1) - user.show_message(text(SPAN_NOTICE("Analyzing Results for The floor:\n\t Overall Status: Healthy")), 1) - user.show_message(text(SPAN_NOTICE("\t Damage Specifics: [0]-[0]-[0]-[0]")), 1) - user.show_message(SPAN_NOTICE("Key: Suffocation/Toxin/Burns/Brute"), 1) - user.show_message(SPAN_NOTICE("Body Temperature: ???"), 1) - return - if(!(istype(user, /mob/living/carbon/human) || SSticker) && SSticker.mode.name != "monkey") - to_chat(user, SPAN_DANGER("You don't have the dexterity to do this!")) - return - if(!isrobot(M) && !issynth(M)) - to_chat(user, SPAN_DANGER("You can't analyze non-robotic things!")) - return - - user.visible_message(SPAN_NOTICE("[user] has analyzed [M]'s components."), SPAN_NOTICE("You have analyzed [M]'s components.")) - var/BU = M.getFireLoss() > 50 ? "[M.getFireLoss()]" : M.getFireLoss() - var/BR = M.getBruteLoss() > 50 ? "[M.getBruteLoss()]" : M.getBruteLoss() - user.show_message(SPAN_NOTICE("Analyzing Results for [M]:\n\t Overall Status: [M.stat > 1 ? "fully disabled" : "[M.health - M.halloss]% functional"]")) - user.show_message("\t Key: Electronics/Brute", 1) - user.show_message("\t Damage Specifics: [BU] - [BR]") - if(M.tod && M.stat == DEAD) - user.show_message(SPAN_NOTICE("Time of Disable: [M.tod]")) - - if (isrobot(M)) - var/mob/living/silicon/robot/H = M - var/list/damaged = H.get_damaged_components(1,1,1) - user.show_message(SPAN_NOTICE("Localized Damage:"),1) - if(length(damaged)>0) - for(var/datum/robot_component/org in damaged) - var/organ_name = capitalize(org.name) - var/organ_destroyed_msg = (org.installed == -1) ? "DESTROYED ":"" - var/organ_elec_dmg_msg = (org.electronics_damage > 0) ? "[org.electronics_damage]":0 - var/organ_brute_dmg_msg = (org.brute_damage > 0) ? "[org.brute_damage]":0 - var/organ_toggled_msg = (org.toggled) ? "Toggled ON" : "Toggled OFF" - var/organ_powered_msg = (org.powered) ? "Power ON" : "Power OFF" - user.show_message(SPAN_NOTICE("\t [organ_name]: [organ_destroyed_msg][organ_elec_dmg_msg] - [organ_brute_dmg_msg] - [organ_toggled_msg] - [organ_powered_msg]"), 1) - else - user.show_message(SPAN_NOTICE("\t Components are OK."),1) - - if (issynth(M)) - var/mob/living/carbon/human/H = M - var/list/damaged = H.get_damaged_limbs(1,1) - user.show_message(SPAN_NOTICE("Localized Damage, Brute/Electronics:"),1) - if(length(damaged)>0) - for(var/obj/limb/org in damaged) - var/msg_display_name = "[capitalize(org.display_name)]" // Here for now until we purge this useless shitcode - var/msg_brute_dmg = "[(org.brute_dam > 0) ? SPAN_DANGER("[org.brute_dam]") : "0"]" - var/msg_burn_dmg = "[(org.brute_dam > 0) ? SPAN_DANGER("[org.brute_dam]") : "0"]" - user.show_message(SPAN_NOTICE("\t [msg_display_name]: [msg_brute_dmg] - [msg_burn_dmg]"), 1) - else - user.show_message(SPAN_NOTICE("\t Components are OK."),1) - - user.show_message(SPAN_NOTICE("Operating Temperature: [M.bodytemperature-T0C]°C ([M.bodytemperature*1.8-459.67]°F)"), 1) - - src.add_fingerprint(user) - return diff --git a/code/modules/mob/living/silicon/robot/component.dm b/code/modules/mob/living/silicon/robot/component.dm deleted file mode 100644 index 1baec99bb0a9..000000000000 --- a/code/modules/mob/living/silicon/robot/component.dm +++ /dev/null @@ -1,257 +0,0 @@ -// TODO: remove the robot.mmi and robot.cell variables and completely rely on the robot component system - -/datum/robot_component/var/name -/datum/robot_component/var/installed = 0 -/datum/robot_component/var/powered = 0 -/datum/robot_component/var/toggled = 1 -/datum/robot_component/var/brute_damage = 0 -/datum/robot_component/var/electronics_damage = 0 -/datum/robot_component/var/idle_usage = 0 // Amount of power used every MC tick. In joules. -/datum/robot_component/var/active_usage = 0 // Amount of power used for every action. Actions are module-specific. Actuator for each tile moved, etc. -/datum/robot_component/var/max_damage = 30 // HP of this component. -/datum/robot_component/var/mob/living/silicon/robot/owner - -// The actual device object that has to be installed for this. -/datum/robot_component/var/external_type = null - -// The wrapped device(e.g. radio), only set if external_type isn't null -/datum/robot_component/var/obj/item/wrapped = null - -/datum/robot_component/New(mob/living/silicon/robot/R) - src.owner = R - -/datum/robot_component/Destroy(force, ...) - . = ..() - owner = null - QDEL_NULL(wrapped) - -/datum/robot_component/proc/install() -/datum/robot_component/proc/uninstall() - -/datum/robot_component/proc/destroy() - var/brokenstate = "broken" // Generic icon - if (istype(wrapped, /obj/item/robot_parts/robot_component)) - var/obj/item/robot_parts/robot_component/comp = wrapped - brokenstate = comp.icon_state_broken - if(wrapped) - qdel(wrapped) - - - wrapped = new/obj/item/broken_device - wrapped.icon_state = brokenstate // Module-specific broken icons! Yay! - - // The thing itself isn't there anymore, but some fried remains are. - installed = -1 - uninstall() - -/datum/robot_component/proc/take_damage(brute, electronics, sharp, edge) - if(installed != 1) return - - brute_damage += brute - electronics_damage += electronics - - // if(brute_damage + electronics_damage >= max_damage) destroy() - -/datum/robot_component/proc/heal_damage(brute, electronics) - if(installed != 1) - // If it's not installed, can't repair it. - return 0 - - brute_damage = max(0, brute_damage - brute) - electronics_damage = max(0, electronics_damage - electronics) - -/datum/robot_component/proc/is_powered() - return (installed == 1) && (brute_damage + electronics_damage < max_damage) && (!idle_usage || powered) - -/datum/robot_component/proc/update_power_state() - if(toggled == 0) - powered = 0 - return - if(owner.cell && owner.cell.charge >= idle_usage) - owner.cell_use_power(idle_usage) - powered = 1 - else - powered = 0 - - -// ARMOUR -// Protects the cyborg from damage. Usually first module to be hit -// No power usage -/datum/robot_component/armour - name = "armour plating" - external_type = /obj/item/robot_parts/robot_component/armour - max_damage = 60 - - -// ACTUATOR -// Enables movement. -// Uses no power when idle. Uses 200J for each tile the cyborg moves. -/datum/robot_component/actuator - name = "actuator" - idle_usage = 0 - active_usage = 200 - external_type = /obj/item/robot_parts/robot_component/actuator - max_damage = 50 - - -//A fixed and much cleaner implementation of /tg/'s special snowflake code. -/datum/robot_component/actuator/is_powered() - return (installed == 1) && (brute_damage + electronics_damage < max_damage) - - -// POWER CELL -// Stores power (how unexpected..) -// No power usage -/datum/robot_component/cell - name = "power cell" - max_damage = 50 - -/datum/robot_component/cell/destroy() - ..() - owner.cell = null - - -// RADIO -// Enables radio communications -// Uses no power when idle. Uses 10J for each received radio message, 50 for each transmitted message. -/datum/robot_component/radio - name = "radio" - external_type = /obj/item/robot_parts/robot_component/radio - idle_usage = 15 //it's not actually possible to tell when we receive a message over our radio, so just use 10W every tick for passive listening - active_usage = 75 //transmit power - max_damage = 40 - - -// BINARY RADIO -// Enables binary communications with other cyborgs/AIs -// Uses no power when idle. Uses 10J for each received radio message, 50 for each transmitted message -/datum/robot_component/binary_communication - name = "binary communication device" - external_type = /obj/item/robot_parts/robot_component/binary_communication_device - idle_usage = 5 - active_usage = 25 - max_damage = 30 - - -// CAMERA -// Enables cyborg vision. Can also be remotely accessed via consoles. -// Uses 10J constantly -/datum/robot_component/camera - name = "camera" - external_type = /obj/item/robot_parts/robot_component/camera - idle_usage = 10 - max_damage = 40 - var/obj/structure/machinery/camera/camera - -/datum/robot_component/camera/New(mob/living/silicon/robot/R) - ..() - camera = R.camera - -/datum/robot_component/camera/update_power_state() - ..() - if (camera) - //check if camera component was deactivated - if (!powered && camera.status != powered) - camera.kick_viewers() - camera.status = powered - -/datum/robot_component/camera/install() - if (camera) - camera.status = 1 - -/datum/robot_component/camera/uninstall() - if (camera) - camera.status = 0 - camera.kick_viewers() - -/datum/robot_component/camera/destroy() - if (camera) - camera.status = 0 - camera.kick_viewers() - -// SELF DIAGNOSIS MODULE -// Analyses cyborg's modules, providing damage readouts and basic information -// Uses 1kJ burst when analysis is done -/datum/robot_component/diagnosis_unit - name = "self-diagnosis unit" - active_usage = 1000 - external_type = /obj/item/robot_parts/robot_component/diagnosis_unit - max_damage = 30 - - - - -// HELPER STUFF - - - -// Initializes cyborg's components. Technically, adds default set of components to new borgs -/mob/living/silicon/robot/proc/initialize_components() - components["actuator"] = new/datum/robot_component/actuator(src) - components["radio"] = new/datum/robot_component/radio(src) - components["power cell"] = new/datum/robot_component/cell(src) - components["diagnosis unit"] = new/datum/robot_component/diagnosis_unit(src) - components["camera"] = new/datum/robot_component/camera(src) - components["comms"] = new/datum/robot_component/binary_communication(src) - components["armour"] = new/datum/robot_component/armour(src) - -// Checks if component is functioning -/mob/living/silicon/robot/proc/is_component_functioning(module_name) - var/datum/robot_component/C = components[module_name] - return C && C.installed == 1 && C.toggled && C.is_powered() - -// Returns component by it's string name -/mob/living/silicon/robot/proc/get_component(component_name) - var/datum/robot_component/C = components[component_name] - return C - - - -// COMPONENT OBJECTS - - - -// Component Objects -// These objects are visual representation of modules - -/obj/item/broken_device - name = "broken component" - icon = 'icons/obj/items/robot_component.dmi' - icon_state = "broken" - -/obj/item/robot_parts/robot_component - icon = 'icons/obj/items/robot_component.dmi' - icon_state = "working" - var/brute = 0 - var/burn = 0 - var/icon_state_broken = "broken" - -/obj/item/robot_parts/robot_component/binary_communication_device - name = "binary communication device" - icon_state = "binradio" - icon_state_broken = "binradio_broken" - -/obj/item/robot_parts/robot_component/actuator - name = "actuator" - icon_state = "motor" - icon_state_broken = "motor_broken" - -/obj/item/robot_parts/robot_component/armour - name = "armour plating" - icon_state = "armor" - icon_state_broken = "armor_broken" - -/obj/item/robot_parts/robot_component/camera - name = "camera" - icon_state = "camera" - icon_state_broken = "camera_broken" - -/obj/item/robot_parts/robot_component/diagnosis_unit - name = "diagnosis unit" - icon_state = "analyser" - icon_state_broken = "analyser_broken" - -/obj/item/robot_parts/robot_component/radio - name = "radio" - icon_state = "radio" - icon_state_broken = "radio_broken" diff --git a/code/modules/mob/living/silicon/robot/death.dm b/code/modules/mob/living/silicon/robot/death.dm deleted file mode 100644 index d664f5be8767..000000000000 --- a/code/modules/mob/living/silicon/robot/death.dm +++ /dev/null @@ -1,16 +0,0 @@ -/mob/living/silicon/robot/dust() - //Delete the MMI first so that it won't go popping out. - QDEL_NULL(mmi) - ..() - -/mob/living/silicon/robot/death(cause, gibbed) - if(camera) - camera.status = 0 - if(module) - var/obj/item/device/gripper/G = locate(/obj/item/device/gripper) in module - if(G) G.drop_item() - remove_robot_verbs() - ..(gibbed,"is destroyed!") - playsound(src.loc, 'sound/effects/metal_crash.ogg', 100) - robogibs(src) - qdel(src) diff --git a/code/modules/mob/living/silicon/robot/drone/drone.dm b/code/modules/mob/living/silicon/robot/drone/drone.dm deleted file mode 100644 index 6bb01661fbd5..000000000000 --- a/code/modules/mob/living/silicon/robot/drone/drone.dm +++ /dev/null @@ -1,258 +0,0 @@ -/mob/living/silicon/robot/drone - name = "drone" - real_name = "drone" - icon = 'icons/mob/robots.dmi' - icon_state = "repairbot" - maxHealth = 35 - health = 35 - universal_speak = 0 - universal_understand = 1 - gender = NEUTER - braintype = "Robot" - lawupdate = 0 - density = TRUE - req_access = list(ACCESS_MARINE_ENGINEERING, ACCESS_MARINE_RESEARCH) - integrated_light_power = 2 - local_transmit = 1 - layer = ABOVE_LYING_MOB_LAYER - var/nicknumber = 0 - - // We need to keep track of a few module items so we don't need to do list operations - // every time we need them. These get set in Initialize() after the module is chosen. - var/obj/item/stack/sheet/metal/cyborg/stack_metal = null - var/obj/item/stack/sheet/wood/cyborg/stack_wood = null - var/obj/item/stack/sheet/glass/cyborg/stack_glass = null - var/obj/item/stack/sheet/mineral/plastic/cyborg/stack_plastic = null - var/obj/item/device/matter_decompiler/decompiler = null - - //Used for self-mailing. - var/mail_destination = "" - - holder_type = /obj/item/holder/drone - -/mob/living/silicon/robot/drone/Initialize() - nicknumber = rand(100,999) - - . = ..() - - - add_verb(src, /mob/living/proc/hide) - - if(camera && ("Robots" in camera.network)) - camera.network.Add("Engineering") - - //They are unable to be upgraded, so let's give them a bit of a better battery. - cell.maxcharge = 50000 - cell.charge = 50000 - - // NO BRAIN. - mmi = null - - //We need to screw with their HP a bit. They have around one fifth as much HP as a full borg. - for(var/V in components) if(V != "power cell") - var/datum/robot_component/C = components[V] - C.max_damage = 10 - - remove_verb(src, list( - /mob/living/silicon/robot/verb/Namepick, - /mob/living/silicon/robot/drone/verb/set_mail_tag, // we dont have mail tubes - )) - add_verb(src, list( - /mob/living/silicon/robot/drone/verb/Drone_name_pick, - /mob/living/silicon/robot/drone/verb/Power_up, - )) - - module = new /obj/item/circuitboard/robot_module/drone(src) - - //Grab stacks. - stack_metal = locate(/obj/item/stack/sheet/metal/cyborg) in src.module - stack_wood = locate(/obj/item/stack/sheet/wood/cyborg) in src.module - stack_glass = locate(/obj/item/stack/sheet/glass/cyborg) in src.module - stack_plastic = locate(/obj/item/stack/sheet/mineral/plastic/cyborg) in src.module - - //Grab decompiler. - decompiler = locate(/obj/item/device/matter_decompiler) in src.module - - //Some tidying-up. - flavor_text = "This is an XP-45 Engineering Drone, one of the many fancy things that come out of the Weyland-Yutani Research Department. It's designed to assist both ship repairs as well as ground missions. Shiny!" - update_icons() - -/mob/living/silicon/robot/drone/initialize_pass_flags(datum/pass_flags_container/PF) - ..() - if (PF) - PF.flags_pass = PASS_MOB_THRU|PASS_FLAGS_CRAWLER - -/mob/living/silicon/robot/drone/init() - connected_ai = null - - aiCamera = new/obj/item/device/camera/siliconcam/drone_camera(src) - playsound(src.loc, 'sound/machines/twobeep.ogg', 25, 0) - -/mob/living/silicon/robot/drone/Destroy() - QDEL_NULL(aiCamera) - stack_metal = null - stack_wood = null - stack_glass = null - stack_plastic = null - decompiler = null - return ..() - -//Redefining some robot procs... -/mob/living/silicon/robot/drone/updatename() - var/new_name = "XP-45 Engineering Drone ([nicknumber])" - change_real_name(src, new_name) - -/mob/living/silicon/robot/drone/update_icons() - - overlays.Cut() - if(stat == 0) - overlays += "eyes-[icon_state]" - else - overlays -= "eyes" - -/mob/living/silicon/robot/drone/choose_icon() - return - -/mob/living/silicon/robot/drone/pick_module() - return - -//Drones cannot be upgraded with borg modules so we need to catch some items before they get used in ..(). -/mob/living/silicon/robot/drone/attackby(obj/item/W, mob/living/user) - - if(istype(W, /obj/item/robot/upgrade/)) - to_chat(user, SPAN_DANGER("The maintenance drone chassis not compatible with \the [W].")) - return - - else if (HAS_TRAIT(W, TRAIT_TOOL_CROWBAR)) - to_chat(user, "The machine is hermetically sealed. You can't open the case.") - return - - ..() - -//DRONE LIFE/DEATH - -//For some goddamn reason robots have this hardcoded. Redefining it for our fragile friends here. -/mob/living/silicon/robot/drone/updatehealth() - if(status_flags & GODMODE) - health = health - set_stat(CONSCIOUS) - return - health = health - (getBruteLoss() + getFireLoss()) - return - -//Easiest to check this here, then check again in the robot proc. -//Standard robots use config for crit, which is somewhat excessive for these guys. -//Drones killed by damage will gib. -/mob/living/silicon/robot/drone/handle_regular_status_updates() - - if(health <= -35 && src.stat != 2) - timeofdeath = world.time - death(last_damage_data) //Possibly redundant, having trouble making death() cooperate. - gib(last_damage_data) - return - ..() - -//DRONE MOVEMENT. -/mob/living/silicon/robot/drone/Process_Spaceslipping(prob_slip) - //TODO: Consider making a magboot item for drones to equip. ~Z - return 0 - -//CONSOLE PROCS -/mob/living/silicon/robot/drone/proc/shut_down() - if(stat != 2) - to_chat(src, SPAN_DANGER("You feel a system kill order percolate through your tiny brain, and you obediently destroy yourself.")) - death() - -//Reboot procs. - -/mob/living/silicon/robot/drone/proc/request_player() - for(var/mob/dead/observer/O in GLOB.observer_list) - if(jobban_isbanned(O, "Cyborg")) - continue - -/mob/living/silicon/robot/drone/proc/question(client/C) - spawn(0) - if(!C || jobban_isbanned(C,"Cyborg")) return - var/response = alert(C, "Someone is attempting to reboot a maintenance drone. Would you like to play as one?", "Maintenance drone reboot", "Yes", "No", "Never for this round.") - if(!C || ckey) - return - else if(response == "Yes") - transfer_personality(C) - -/mob/living/silicon/robot/drone/proc/transfer_personality(client/player) - - if(!player) return - player.change_view(GLOB.world_view_size) - src.ckey = player.ckey - - if(player.mob && player.mob.mind) - player.mob.mind.transfer_to(src) - - lawupdate = 0 - to_chat(src, "Systems rebooted. Loading base pattern maintenance protocol... loaded.") - to_chat(src, "
            You are a maintenance drone, a tiny-brained robotic repair machine.") - to_chat(src, "You have no individual will, no personality, and no drives or urges other than your laws.") - to_chat(src, "Use :d to talk to other drones and say to speak silently to your nearby fellows.") - to_chat(src, "Remember, you are lawed against interference with the crew.") - to_chat(src, "Don't invade their worksites and don't steal their resources.") - to_chat(src, "If a crewmember has noticed you, you are probably breaking your third law.") - -/mob/living/silicon/robot/drone/Collide(atom/A) - if (!istype(A,/obj/structure/machinery/door) && \ - !istype(A,/obj/structure/machinery/recharge_station) && \ - !istype(A,/obj/structure/machinery/disposal/deliveryChute) && \ - !istype(A,/obj/structure/machinery/teleport/hub) && \ - !istype(A,/obj/effect/portal) - ) return - ..() - return - -/mob/living/silicon/robot/drone/Collided(atom/movable/AM) - return - -/mob/living/silicon/robot/drone/start_pulling(atom/movable/AM) - - if(istype(AM,/obj/item/pipe) || istype(AM,/obj/structure/disposalconstruct)) - ..() - else if(istype(AM,/obj/item)) - var/obj/item/O = AM - if(O.w_class > SIZE_SMALL) - to_chat(src, SPAN_WARNING("You are too small to pull that.")) - return - else - ..() - else - to_chat(src, SPAN_WARNING("You are too small to pull that.")) - return - -/mob/living/silicon/robot/drone/add_robot_verbs() - -/mob/living/silicon/robot/drone/remove_robot_verbs() - -/mob/living/silicon/robot/drone/verb/Drone_name_pick() - set category = "Robot Commands" - if(custom_name) - return 0 - - spawn(0) - var/newname - newname = tgui_input_list(src,"You are drone. Pick a name, no duplicates allowed.", "Drone name pick", GLOB.greek_letters) - if(custom_name) - return - - for (var/mob/living/silicon/robot/drone/A in GLOB.mob_list) - if(newname == A.nicknumber) - to_chat(src, SPAN_WARNING("That identifier is taken, pick again.")) - return - - custom_name = newname - nicknumber = newname - - updatename() - update_icons() - -/mob/living/silicon/robot/drone/verb/Power_up() - set category = "Robot Commands" - if(resting) - resting = 0 - to_chat(src, SPAN_NOTICE("You begin powering up.")) diff --git a/code/modules/mob/living/silicon/robot/drone/drone_abilities.dm b/code/modules/mob/living/silicon/robot/drone/drone_abilities.dm deleted file mode 100644 index 261e6ffc7623..000000000000 --- a/code/modules/mob/living/silicon/robot/drone/drone_abilities.dm +++ /dev/null @@ -1,29 +0,0 @@ -// DRONE ABILITIES -/mob/living/silicon/robot/drone/verb/set_mail_tag() - set name = "Set Mail Tag" - set desc = "Tag yourself for delivery through the disposals system." - set category = "Drone" - - var/new_tag = tgui_input_list(usr, "Select the desired destination.", "Set Mail Tag", null, GLOB.tagger_locations) - - if(!new_tag) - mail_destination = "" - return - - to_chat(src, SPAN_NOTICE(" You configure your internal beacon, tagging yourself for delivery to '[new_tag]'.")) - mail_destination = new_tag - - //Auto flush if we use this verb inside a disposal chute. - var/obj/structure/machinery/disposal/D = src.loc - if(istype(D)) - to_chat(src, SPAN_NOTICE(" \The [D] acknowledges your signal.")) - D.flush_count = D.flush_after_ticks - - return - -//Actual picking-up event. -/mob/living/silicon/robot/drone/attack_hand(mob/living/carbon/human/M as mob) - - if(M.a_intent == INTENT_HELP) - get_scooped(M) - ..() diff --git a/code/modules/mob/living/silicon/robot/drone/drone_console.dm b/code/modules/mob/living/silicon/robot/drone/drone_console.dm deleted file mode 100644 index 2433720d23c1..000000000000 --- a/code/modules/mob/living/silicon/robot/drone/drone_console.dm +++ /dev/null @@ -1,111 +0,0 @@ -/obj/structure/machinery/computer/drone_control - name = "Maintenance Drone Control" - desc = "Used to monitor the station's drone population and the assembler that services them." - icon = 'icons/obj/structures/machinery/computer.dmi' - icon_state = "power" - req_one_access = list(ACCESS_MARINE_ENGINEERING, ACCESS_CIVILIAN_ENGINEERING) - circuit = /obj/item/circuitboard/computer/drone_control - - //Used when pinging drones. - var/drone_call_area = "Engineering" - //Used to enable or disable drone fabrication. - var/obj/structure/machinery/drone_fabricator/dronefab - -/obj/structure/machinery/computer/drone_control/attack_remote(mob/user as mob) - return src.attack_hand(user) - -/obj/structure/machinery/computer/drone_control/attack_hand(mob/user as mob) - if(..()) - return - - if(!allowed(user)) - to_chat(user, SPAN_DANGER("Access denied.")) - return - - user.set_interaction(src) - var/dat - dat += "Maintenance Units
            " - - for(var/mob/living/silicon/robot/drone/D in GLOB.mob_list) - dat += "
            [D.real_name] ([D.stat == 2 ? "INACTIVE" : "ACTIVE"])" - dat += "
            Cell charge: [D.cell.charge]/[D.cell.maxcharge]." - dat += "
            Currently located in: [get_area(D)]." - dat += "
            Resync|Shutdown
            " - - dat += "

            Request drone presence in area: [drone_call_area] (Send ping)" - - dat += "

            Drone fabricator: " - dat += "[dronefab ? "[(dronefab.produce_drones && !(dronefab.stat & NOPOWER)) ? "ACTIVE" : "INACTIVE"]" : "FABRICATOR NOT DETECTED. (search)"]" - user << browse(dat, "window=computer;size=400x500") - onclose(user, "computer") - return - - -/obj/structure/machinery/computer/drone_control/Topic(href, href_list) - if(..()) - return - - if(!allowed(usr)) - to_chat(usr, SPAN_DANGER("Access denied.")) - return - - if ((usr.contents.Find(src) || (in_range(src, usr) && istype(src.loc, /turf))) || (isRemoteControlling(usr))) - usr.set_interaction(src) - - if (href_list["setarea"]) - - //Probably should consider using another list, but this one will do. - var/t_area = tgui_input_list(usr, "Select the area to ping.", "Set Target Area", null, GLOB.tagger_locations) - - if(!t_area) - return - - drone_call_area = t_area - to_chat(usr, SPAN_NOTICE(" You set the area selector to [drone_call_area].")) - - else if (href_list["ping"]) - - to_chat(usr, SPAN_NOTICE(" You issue a maintenance request for all active drones, highlighting [drone_call_area].")) - for(var/mob/living/silicon/robot/drone/D in GLOB.mob_list) - if(D.client && D.stat == 0) - to_chat(D, "-- Maintenance drone presence requested in: [drone_call_area].") - - else if (href_list["shutdown"]) - - var/mob/living/silicon/robot/drone/D = locate(href_list["shutdown"]) - - if(D.stat != 2) - to_chat(usr, SPAN_DANGER("You issue a kill command for the unfortunate drone.")) - message_admins("[key_name_admin(usr)] issued kill order for drone [key_name_admin(D)] from control console.") - log_game("[key_name(usr)] issued kill order for [key_name(src)] from control console.") - D.shut_down() - - else if (href_list["search_fab"]) - if(dronefab) - return - - for(var/obj/structure/machinery/drone_fabricator/fab in oview(3,src)) - - if(fab.stat & NOPOWER) - continue - - dronefab = fab - to_chat(usr, SPAN_NOTICE(" Drone fabricator located.")) - return - - to_chat(usr, SPAN_DANGER("Unable to locate drone fabricator.")) - - else if (href_list["toggle_fab"]) - - if(!dronefab) - return - - if(get_dist(src,dronefab) > 3) - dronefab = null - to_chat(usr, SPAN_DANGER("Unable to locate drone fabricator.")) - return - - dronefab.produce_drones = !dronefab.produce_drones - to_chat(usr, SPAN_NOTICE(" You [dronefab.produce_drones ? "enable" : "disable"] drone production in the nearby fabricator.")) - - src.updateUsrDialog() diff --git a/code/modules/mob/living/silicon/robot/drone/drone_damage.dm b/code/modules/mob/living/silicon/robot/drone/drone_damage.dm deleted file mode 100644 index a0245d8c8cab..000000000000 --- a/code/modules/mob/living/silicon/robot/drone/drone_damage.dm +++ /dev/null @@ -1,24 +0,0 @@ -//Redefining some robot procs, since drones can't be repaired and really shouldn't take component damage. -/mob/living/silicon/robot/drone/take_overall_damage(brute = 0, burn = 0, sharp = 0, used_weapon = null) - bruteloss += brute - fireloss += burn - -/mob/living/silicon/robot/drone/heal_overall_damage(brute, burn) - - bruteloss -= brute - fireloss -= burn - - if(bruteloss<0) bruteloss = 0 - if(fireloss<0) fireloss = 0 - -/mob/living/silicon/robot/drone/take_limb_damage(brute = 0, burn = 0, sharp = 0) - take_overall_damage(brute,burn) - -/mob/living/silicon/robot/drone/heal_limb_damage(brute, burn) - heal_overall_damage(brute,burn) - -/mob/living/silicon/robot/drone/getFireLoss() - return fireloss - -/mob/living/silicon/robot/drone/getBruteLoss() - return bruteloss diff --git a/code/modules/mob/living/silicon/robot/drone/drone_items.dm b/code/modules/mob/living/silicon/robot/drone/drone_items.dm deleted file mode 100644 index bfe2a5bd7a39..000000000000 --- a/code/modules/mob/living/silicon/robot/drone/drone_items.dm +++ /dev/null @@ -1,83 +0,0 @@ - - -//PRETTIER TOOL LIST. -/mob/living/silicon/robot/drone/installed_modules() - - if(weapon_lock) - to_chat(src, SPAN_DANGER("Weapon lock active, unable to use modules! Count:[weaponlock_time]")) - return - - if(!module) - module = new /obj/item/circuitboard/robot_module/drone(src) - - var/dat = "Drone modules\n" - dat += {" - Activated Modules -
            - Module 1: [module_state_1 ? "[module_state_1]" : "No Module"]
            - Module 2: [module_state_2 ? "
            [module_state_2]" : "No Module"]
            - Module 3: [module_state_3 ? "
            [module_state_3]" : "No Module"]
            -
            - Installed Modules

            "} - - - var/tools = "Tools and devices
            " - var/resources = "
            Resources
            " - - for (var/O in module.modules) - - var/module_string = "" - - if (!O) - module_string += text("Resource depleted
            ") - else if(activated(O)) - module_string += text("[O]: Activated
            ") - else - module_string += text("[O]:
            Activate
            ") - - if((istype(O,/obj/item) || istype(O,/obj/item/device)) && !(istype(O,/obj/item/stack/cable_coil))) - tools += module_string - else - resources += module_string - - dat += tools - - dat += resources - - src << browse(dat, "window=robotmod") - -//Putting the decompiler here to avoid doing list checks every tick. -/mob/living/silicon/robot/drone/use_power() - - ..() - if(!src.has_power || !decompiler) - return - - //The decompiler replenishes drone stores from hoovered-up junk each tick. - for(var/type in decompiler.stored_comms) - if(decompiler.stored_comms[type] > 0) - var/obj/item/stack/sheet/stack - switch(type) - if("metal") - if(!stack_metal) - stack_metal = new /obj/item/stack/sheet/metal/cyborg(src.module) - stack_metal.amount = 1 - stack = stack_metal - if("glass") - if(!stack_glass) - stack_glass = new /obj/item/stack/sheet/glass/cyborg(src.module) - stack_glass.amount = 1 - stack = stack_glass - if("wood") - if(!stack_wood) - stack_wood = new /obj/item/stack/sheet/wood/cyborg(src.module) - stack_wood.amount = 1 - stack = stack_wood - if("plastic") - if(!stack_plastic) - stack_plastic = new /obj/item/stack/sheet/mineral/plastic/cyborg(src.module) - stack_plastic.amount = 1 - stack = stack_plastic - - stack.amount++ - decompiler.stored_comms[type]--; diff --git a/code/modules/mob/living/silicon/robot/drone/drone_manufacturer.dm b/code/modules/mob/living/silicon/robot/drone/drone_manufacturer.dm deleted file mode 100644 index 63c0e69a9835..000000000000 --- a/code/modules/mob/living/silicon/robot/drone/drone_manufacturer.dm +++ /dev/null @@ -1,77 +0,0 @@ -/obj/structure/machinery/drone_fabricator - name = "drone fabricator" - desc = "A large automated factory for producing maintenance drones." - - density = TRUE - anchored = TRUE - use_power = USE_POWER_IDLE - idle_power_usage = 20 - active_power_usage = 5000 - - var/drone_progress = 0 - var/produce_drones = 1 - var/time_last_drone = 500 - - icon = 'icons/obj/structures/machinery/drone_fab.dmi' - icon_state = "drone_fab_idle" - -/obj/structure/machinery/drone_fabricator/New() - ..() - start_processing() - -/obj/structure/machinery/drone_fabricator/power_change() - ..() - if (stat & NOPOWER) - icon_state = "drone_fab_nopower" - -/obj/structure/machinery/drone_fabricator/process() - - if(SSticker.current_state < GAME_STATE_PLAYING) - return - - if(stat & NOPOWER || !produce_drones) - if(icon_state != "drone_fab_nopower") icon_state = "drone_fab_nopower" - return - - if(drone_progress >= 100) - icon_state = "drone_fab_idle" - return - - icon_state = "drone_fab_active" - var/elapsed = world.time - time_last_drone - drone_progress = round((elapsed/CONFIG_GET(number/drone_build_time))*100) - - if(drone_progress >= 100) - visible_message("\The [src] voices a strident beep, indicating a drone chassis is prepared.") - -/obj/structure/machinery/drone_fabricator/get_examine_text(mob/user) - . = ..() - if(produce_drones && drone_progress >= 100 && istype(user,/mob/dead) && CONFIG_GET(flag/allow_drone_spawn) && count_drones() < CONFIG_GET(number/max_maint_drones)) - . += "
            A drone is prepared. Select 'Join As Drone' from the Ghost tab to spawn as a maintenance drone." - -/obj/structure/machinery/drone_fabricator/proc/count_drones() - var/drones = 0 - for(var/mob/living/silicon/robot/drone/D in GLOB.player_list) - if(D.key && D.client) - drones++ - return drones - -/obj/structure/machinery/drone_fabricator/proc/create_drone(client/player) - - if(stat & NOPOWER) - return - - if(!produce_drones || !CONFIG_GET(flag/allow_drone_spawn) || count_drones() >= CONFIG_GET(number/max_maint_drones)) - return - - if(!player || !istype(player.mob,/mob/dead)) - return - - visible_message("\The [src] churns and grinds as it lurches into motion, disgorging a shiny new drone after a few moments.") - flick("h_lathe_leave",src) - - time_last_drone = world.time - var/mob/living/silicon/robot/drone/new_drone = new(get_turf(src)) - new_drone.transfer_personality(player) - - drone_progress = 0 diff --git a/code/modules/mob/living/silicon/robot/examine.dm b/code/modules/mob/living/silicon/robot/examine.dm deleted file mode 100644 index b349b42c809a..000000000000 --- a/code/modules/mob/living/silicon/robot/examine.dm +++ /dev/null @@ -1,43 +0,0 @@ -/mob/living/silicon/robot/get_examine_text(mob/user) - if( (user.sdisabilities & DISABILITY_BLIND || user.blinded || user.stat) && !istype(user,/mob/dead/observer) ) - return list(SPAN_NOTICE("Something is there but you can't see it.")) - - var/msg = "*---------*\nThis is [icon2html(src)] \a [src][custom_name ? ", [modtype] [braintype]" : ""]!\n" - msg += "" - if (src.getBruteLoss()) - if (src.getBruteLoss() < maxHealth*0.5) - msg += "It looks slightly dented. A welding tool would buff that out in no time.\n" - else - msg += "It looks severely dented! A welding tool would buff that out in no time.\n" - if (src.getFireLoss()) - if (src.getFireLoss() < maxHealth*0.5) - msg += "It looks slightly charred. Its internal wiring will need to be repaired with a cable coil.\n" - else - msg += "It looks severely burnt and heat-warped! Its internal wiring will need to be repaired with a cable coil.\n" - msg += "" - - if(opened) - msg += SPAN_WARNING("Its cover is open and the power cell is [cell ? "installed" : "missing"].\n") - else - msg += "Its cover is closed[locked ? "" : ", and looks unlocked"].\n" - - if(cell && cell.charge <= 0) - msg += SPAN_WARNING("Its battery indicator is blinking red!
            \n") - if(!has_power) - msg += SPAN_WARNING("It appears to be running on backup power.\n") - - switch(src.stat) - if(CONSCIOUS) - if(!src.client) msg += "It appears to be in stand-by mode.\n" //afk - if(UNCONSCIOUS) msg += SPAN_WARNING("It doesn't seem to be responding.\n") - if(DEAD) msg += "It looks completely unsalvageable.\n" - msg += "*---------*" - - if(print_flavor_text()) msg += "\n[print_flavor_text()]\n" - - if (pose) - if( findtext(pose,".",length(pose)) == 0 && findtext(pose,"!",length(pose)) == 0 && findtext(pose,"?",length(pose)) == 0 ) - pose = addtext(pose,".") //Makes sure all emotes end with a period. - msg += "\nIt is [pose]" - - return list(msg) diff --git a/code/modules/mob/living/silicon/robot/inventory.dm b/code/modules/mob/living/silicon/robot/inventory.dm deleted file mode 100644 index 51bbfd24ccb0..000000000000 --- a/code/modules/mob/living/silicon/robot/inventory.dm +++ /dev/null @@ -1,198 +0,0 @@ -//These procs handle putting s tuff in your hand. It's probably best to use these rather than setting stuff manually -//as they handle all relevant stuff like adding it to the player's screen and such - -//Returns the thing in our active hand (whatever is in our active module-slot, in this case) -/mob/living/silicon/robot/get_active_hand() - return module_active - -/*-------TODOOOOOOOOOO--------*/ -/mob/living/silicon/robot/proc/uneq_active() - if(isnull(module_active)) - return - if(module_state_1 == module_active) - if(istype(module_state_1,/obj/item/robot/sight)) - sight_mode &= ~module_state_1:sight_mode - if (client) - client.remove_from_screen(module_state_1) - contents -= module_state_1 - module_active = null - module_state_1 = null - inv1.icon_state = "inv1" - else if(module_state_2 == module_active) - if(istype(module_state_2,/obj/item/robot/sight)) - sight_mode &= ~module_state_2:sight_mode - if (client) - client.remove_from_screen(module_state_2) - contents -= module_state_2 - module_active = null - module_state_2 = null - inv2.icon_state = "inv2" - else if(module_state_3 == module_active) - if(istype(module_state_3,/obj/item/robot/sight)) - sight_mode &= ~module_state_3:sight_mode - if (client) - client.remove_from_screen(module_state_3) - contents -= module_state_3 - module_active = null - module_state_3 = null - inv3.icon_state = "inv3" - update_icons() - -/mob/living/silicon/robot/proc/uneq_all() - module_active = null - - if(module_state_1) - if(istype(module_state_1,/obj/item/robot/sight)) - sight_mode &= ~module_state_1:sight_mode - if (client) - client.remove_from_screen(module_state_1) - contents -= module_state_1 - module_state_1 = null - inv1.icon_state = "inv1" - if(module_state_2) - if(istype(module_state_2,/obj/item/robot/sight)) - sight_mode &= ~module_state_2:sight_mode - if (client) - client.remove_from_screen(module_state_2) - contents -= module_state_2 - module_state_2 = null - inv2.icon_state = "inv2" - if(module_state_3) - if(istype(module_state_3,/obj/item/robot/sight)) - sight_mode &= ~module_state_3:sight_mode - if (client) - client.remove_from_screen(module_state_3) - contents -= module_state_3 - module_state_3 = null - inv3.icon_state = "inv3" - update_icons() - -/mob/living/silicon/robot/proc/activated(obj/item/O) - if(module_state_1 == O) - return 1 - else if(module_state_2 == O) - return 1 - else if(module_state_3 == O) - return 1 - else - return 0 - -//Helper procs for cyborg modules on the UI. -//These are hackish but they help clean up code elsewhere. - -//module_selected(module) - Checks whether the module slot specified by "module" is currently selected. -/mob/living/silicon/robot/proc/module_selected(module) //Module is 1-3 - return module == get_selected_module() - -//module_active(module) - Checks whether there is a module active in the slot specified by "module". -/mob/living/silicon/robot/proc/module_active(module) //Module is 1-3 - if(module < 1 || module > 3) return 0 - - switch(module) - if(1) - if(module_state_1) - return 1 - if(2) - if(module_state_2) - return 1 - if(3) - if(module_state_3) - return 1 - return 0 - -//get_selected_module() - Returns the slot number of the currently selected module. Returns 0 if no modules are selected. -/mob/living/silicon/robot/proc/get_selected_module() - if(module_state_1 && module_active == module_state_1) - return 1 - else if(module_state_2 && module_active == module_state_2) - return 2 - else if(module_state_3 && module_active == module_state_3) - return 3 - - return 0 - -//select_module(module) - Selects the module slot specified by "module" -/mob/living/silicon/robot/proc/select_module(module) //Module is 1-3 - if(module < 1 || module > 3) return - - if(!module_active(module)) return - - switch(module) - if(1) - if(module_active != module_state_1) - inv1.icon_state = "inv1 +a" - inv2.icon_state = "inv2" - inv3.icon_state = "inv3" - module_active = module_state_1 - return - if(2) - if(module_active != module_state_2) - inv1.icon_state = "inv1" - inv2.icon_state = "inv2 +a" - inv3.icon_state = "inv3" - module_active = module_state_2 - return - if(3) - if(module_active != module_state_3) - inv1.icon_state = "inv1" - inv2.icon_state = "inv2" - inv3.icon_state = "inv3 +a" - module_active = module_state_3 - return - return - -//deselect_module(module) - Deselects the module slot specified by "module" -/mob/living/silicon/robot/proc/deselect_module(module) //Module is 1-3 - if(module < 1 || module > 3) return - - switch(module) - if(1) - if(module_active == module_state_1) - inv1.icon_state = "inv1" - module_active = null - return - if(2) - if(module_active == module_state_2) - inv2.icon_state = "inv2" - module_active = null - return - if(3) - if(module_active == module_state_3) - inv3.icon_state = "inv3" - module_active = null - return - return - -//toggle_module(module) - Toggles the selection of the module slot specified by "module". -/mob/living/silicon/robot/proc/toggle_module(module) //Module is 1-3 - if(module < 1 || module > 3) return - - if(module_selected(module)) - deselect_module(module) - else - if(module_active(module)) - select_module(module) - else - deselect_module(get_selected_module()) //If we can't do select anything, at least deselect the current module. - return - -//cycle_modules() - Cycles through the list of selected modules. -/mob/living/silicon/robot/proc/cycle_modules() - var/slot_start = get_selected_module() - if(slot_start) deselect_module(slot_start) //Only deselect if we have a selected slot. - - var/slot_num - if(slot_start == 0) - slot_num = 1 - slot_start = 2 - else - slot_num = slot_start + 1 - - while(slot_start != slot_num) //If we wrap around without finding any free slots, just give up. - if(module_active(slot_num)) - select_module(slot_num) - return - slot_num++ - if(slot_num > 3) slot_num = 1 //Wrap around. - - return diff --git a/code/modules/mob/living/silicon/robot/life.dm b/code/modules/mob/living/silicon/robot/life.dm deleted file mode 100644 index b4a6e59e52e2..000000000000 --- a/code/modules/mob/living/silicon/robot/life.dm +++ /dev/null @@ -1,270 +0,0 @@ -/mob/living/silicon/robot/Life(delta_time) - set invisibility = 0 - set background = 1 - - if (src.monkeyizing) - return - - src.blinded = FALSE - - //Status updates, death etc. - clamp_values() - handle_regular_status_updates() - - if(client) - handle_regular_hud_updates() - update_items() - if (src.stat != DEAD) //still using power - use_power() - process_killswitch() - process_locks() - -/mob/living/silicon/robot/proc/clamp_values() - -// set_effect(min(stunned, 30), STUN) - set_effect(min(knocked_out, 30), PARALYZE) -// set_effect(min(knocked_down, 20), WEAKEN) - sleeping = 0 - apply_damage(0, BRUTE) - apply_damage(0, TOX) - apply_damage(0, OXY) - apply_damage(0, BURN) - -/mob/living/silicon/robot/proc/use_power() - // Debug only - used_power_this_tick = 0 - for(var/V in components) - var/datum/robot_component/C = components[V] - C.update_power_state() - - if ( cell && is_component_functioning("power cell") && src.cell.charge > 0 ) - if(src.module_state_1) - cell_use_power(50) // 50W load for every enabled tool TODO: tool-specific loads - if(src.module_state_2) - cell_use_power(50) - if(src.module_state_3) - cell_use_power(50) - - if(lights_on) - cell_use_power(30) // 30W light. Normal lights would use ~15W, but increased for balance reasons. - - src.has_power = 1 - else - if (src.has_power) - to_chat(src, SPAN_DANGER("You are now running on emergency backup power.")) - src.has_power = 0 - if(lights_on) // Light is on but there is no power! - lights_on = 0 - set_light(0) - -/mob/living/silicon/robot/handle_regular_status_updates(regular_update = TRUE) - - if(src.camera && !scrambledcodes) - if(src.stat == 2 || isWireCut(5)) - src.camera.status = 0 - else - src.camera.status = 1 - - updatehealth() - - if(regular_update && src.sleeping) - apply_effect(3, PARALYZE) - src.sleeping-- - - if(regular_update && src.resting) - apply_effect(5, WEAKEN) - - if(health < HEALTH_THRESHOLD_DEAD && stat != DEAD) //die only once - death() - - if (stat != DEAD) //Alive. - if (HAS_TRAIT(src, TRAIT_KNOCKEDOUT) || HAS_TRAIT(src, TRAIT_INCAPACITATED) || !has_power) //Stunned etc. - set_stat(UNCONSCIOUS) - if(regular_update) - if (HAS_TRAIT(src, TRAIT_INCAPACITATED)) - adjust_effect(-1, STUN) - if (HAS_TRAIT(src, TRAIT_FLOORED)) - adjust_effect(-1, WEAKEN) - if (HAS_TRAIT(src, TRAIT_KNOCKEDOUT)) - adjust_effect(-1, PARALYZE) - src.blinded = TRUE - else - src.blinded = FALSE - - else //Not stunned. - src.set_stat(CONSCIOUS) - - else //Dead. - src.blinded = TRUE - src.set_stat(DEAD) - - if(!regular_update) - return - - if (src.stuttering) src.stuttering-- - - if (src.eye_blind) - src.ReduceEyeBlind(1) - src.blinded = TRUE - - if (src.ear_deaf > 0) src.ear_deaf-- - if (src.ear_damage < 25) - src.ear_damage -= 0.05 - src.ear_damage = max(src.ear_damage, 0) - - if ((src.sdisabilities & DISABILITY_BLIND)) - src.blinded = TRUE - if ((src.sdisabilities & DISABILITY_DEAF)) - SetEarDeafness(1) - - if (src.eye_blurry > 0) - src.ReduceEyeBlur(1) - - if (src.druggy > 0) - src.druggy-- - src.druggy = max(0, src.druggy) - - //update the state of modules and components here - if (src.stat != 0) - uneq_all() - - if(!is_component_functioning("radio")) - radio.on = 0 - else - radio.on = 1 - - if(is_component_functioning("camera")) - src.blinded = FALSE - else - src.blinded = TRUE - - return 1 - -/mob/living/silicon/robot/proc/handle_regular_hud_updates() - - if (hud_used && hud_used.healths) - if (src.stat != DEAD) - if(ismaintdrone(src)) - switch(round(health * 100 / maxHealth)) - if(100 to INFINITY) - hud_used.healths.icon_state = "health0" - if(75 to 99) - hud_used.healths.icon_state = "health1" - if(50 to 74) - hud_used.healths.icon_state = "health2" - if(25 to 49) - hud_used.healths.icon_state = "health3" - if(10 to 24) - hud_used.healths.icon_state = "health4" - if(0 to 9) - hud_used.healths.icon_state = "health5" - else - hud_used.healths.icon_state = "health6" - else - switch(round(health * 100 / maxHealth)) - if(100 to INFINITY) - hud_used.healths.icon_state = "health0" - if(75 to 99) - hud_used.healths.icon_state = "health1" - if(50 to 74) - hud_used.healths.icon_state = "health2" - if(25 to 49) - hud_used.healths.icon_state = "health3" - if(10 to 24) - hud_used.healths.icon_state = "health4" - if(0 to 9) - hud_used.healths.icon_state = "health5" - else - hud_used.healths.icon_state = "health6" - else - hud_used.healths.icon_state = "health7" - - if (src.cells) - if (src.cell) - var/cellcharge = src.cell.charge/src.cell.maxcharge - switch(cellcharge) - if(0.75 to INFINITY) - src.cells.icon_state = "charge4" - if(0.5 to 0.75) - src.cells.icon_state = "charge3" - if(0.25 to 0.5) - src.cells.icon_state = "charge2" - if(0 to 0.25) - src.cells.icon_state = "charge1" - else - src.cells.icon_state = "charge0" - else - src.cells.icon_state = "charge-empty" - - if(hud_used && hud_used.bodytemp_icon) - switch(src.bodytemperature) //310.055 optimal body temp - if(335 to INFINITY) - hud_used.bodytemp_icon.icon_state = "temp2" - if(320 to 335) - hud_used.bodytemp_icon.icon_state = "temp1" - if(300 to 320) - hud_used.bodytemp_icon.icon_state = "temp0" - if(260 to 300) - hud_used.bodytemp_icon.icon_state = "temp-1" - else - hud_used.bodytemp_icon.icon_state = "temp-2" - - -//Oxygen and fire does nothing yet!! -// if (src.oxygen) src.oxygen.icon_state = "oxy[src.oxygen_alert ? 1 : 0]" -// if (src.fire) src.fire.icon_state = "fire[src.fire_alert ? 1 : 0]" - - if(stat != DEAD) //the dead get zero fullscreens - if(blinded) - overlay_fullscreen("blind", /atom/movable/screen/fullscreen/blind) - else - clear_fullscreen("blind") - - if(druggy) - overlay_fullscreen("high", /atom/movable/screen/fullscreen/high) - else - clear_fullscreen("high") - - - if(interactee) - interactee.check_eye(src) - else - if(client && !client.adminobs) - reset_view(null) - - return 1 - -/mob/living/silicon/robot/proc/update_items() - if (client) - client.remove_from_screen(contents) - for(var/obj/I in contents) - if(I && !(istype(I,/obj/item/cell) || istype(I,/obj/item/device/radio) || istype(I,/obj/structure/machinery/camera) || istype(I,/obj/item/device/mmi))) - client.add_to_screen(I) - var/datum/custom_hud/robot/ui_datum = GLOB.custom_huds_list[HUD_ROBOT] - if(module_state_1) - module_state_1.screen_loc = ui_datum.ui_inv1 - if(module_state_2) - module_state_2.screen_loc = ui_datum.ui_inv2 - if(module_state_3) - module_state_3.screen_loc = ui_datum.ui_inv3 - update_icons() - -/mob/living/silicon/robot/proc/process_killswitch() - if(killswitch) - killswitch_time -- - if(killswitch_time <= 0) - if(src.client) - to_chat(src, SPAN_DANGER("Killswitch Activated")) - killswitch = 0 - spawn(5) - gib() - -/mob/living/silicon/robot/proc/process_locks() - if(weapon_lock) - uneq_all() - weaponlock_time -- - if(weaponlock_time <= 0) - if(src.client) - to_chat(src, SPAN_DANGER("Weapon Lock Timed Out!")) - weapon_lock = 0 - weaponlock_time = 120 diff --git a/code/modules/mob/living/silicon/robot/login.dm b/code/modules/mob/living/silicon/robot/login.dm deleted file mode 100644 index 0a3225011d83..000000000000 --- a/code/modules/mob/living/silicon/robot/login.dm +++ /dev/null @@ -1,4 +0,0 @@ -/mob/living/silicon/robot/Login() - ..() - regenerate_icons() - show_laws(0) diff --git a/code/modules/mob/living/silicon/robot/photos.dm b/code/modules/mob/living/silicon/robot/photos.dm deleted file mode 100644 index bc8d3793c5ad..000000000000 --- a/code/modules/mob/living/silicon/robot/photos.dm +++ /dev/null @@ -1,13 +0,0 @@ -/mob/living/silicon/robot/proc/photosync() - var/obj/item/device/camera/siliconcam/master_cam = connected_ai ? connected_ai.aiCamera : null - if (!master_cam) - return - - var/synced - synced = 0 - for(var/datum/picture/z in aiCamera.aipictures) - if (!(master_cam.aipictures.Find(z))) - aiCamera.printpicture(null, z) - synced = 1 - if(synced) - to_chat(src, SPAN_NOTICE("Locally saved images synced with AI. Images were retained in local database in case of loss of connection with the AI.")) diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm deleted file mode 100644 index 888b484fab06..000000000000 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ /dev/null @@ -1,994 +0,0 @@ -GLOBAL_LIST_INIT(robot_verbs_default, list( - /mob/living/silicon/robot/proc/sensor_mode -)) - -#define CYBORG_POWER_USAGE_MULTIPLIER 2.5 // Multiplier for amount of power cyborgs use. - -/mob/living/silicon/robot - name = "Robot" - real_name = "Robot" - icon = 'icons/mob/robots.dmi' - icon_state = "robot" - maxHealth = 500 - health = 500 - - var/lights_on = 0 // Is our integrated light on? - var/used_power_this_tick = 0 - var/sight_mode = 0 - var/custom_name = "" - var/crisis //Admin-settable for combat module use. - var/crisis_override = 0 - var/integrated_light_power = 6 - -//Hud stuff - - var/atom/movable/screen/cells = null - var/atom/movable/screen/inv1 = null - var/atom/movable/screen/inv2 = null - var/atom/movable/screen/inv3 = null - -//3 Modules can be activated at any one time. - var/obj/item/circuitboard/robot_module/module = null - var/obj/module_active = null - var/obj/module_state_1 = null - var/obj/module_state_2 = null - var/obj/module_state_3 = null - - var/obj/item/device/radio/borg/radio = null - var/mob/living/silicon/ai/connected_ai = null - var/obj/item/cell/cell = null - var/obj/structure/machinery/camera/camera = null - - // Components are basically robot organs. - var/list/components = list() - - var/obj/item/device/mmi/mmi = null - - //var/obj/item/device/pda/ai/rbPDA = null - - var/opened = 0 - var/wiresexposed = 0 - var/locked = 1 - var/has_power = 1 - var/list/req_access = list(ACCESS_MARINE_ENGINEERING, ACCESS_CIVILIAN_ENGINEERING) - var/ident = 0 - //var/list/laws = list() - var/viewalerts = 0 - var/modtype = "Default" - var/lower_mod = 0 - var/jetpack = 0 - var/datum/effect_system/ion_trail_follow/ion_trail = null - var/datum/effect_system/spark_spread/spark_system //So they can initialize sparks whenever/N - var/jeton = 0 - var/borgwires = 31 // 0b11111 - var/killswitch = 0 - var/killswitch_time = 60 - var/weapon_lock = 0 - var/weaponlock_time = 120 - var/lawupdate = 1 //Cyborgs will sync their laws with their AI by default - var/lawcheck[1] //For stating laws. - var/ioncheck[1] //Ditto. - var/lockcharge //Used when locking down a borg to preserve cell charge - speed = 0 //Cause sec borgs gotta go fast //No they dont! - var/scrambledcodes = 0 // Used to determine if a borg shows up on the robotics console. Setting to one hides them. - var/braintype = "Cyborg" - -/mob/living/silicon/robot/New(loc, syndie = 0, unfinished = 0) - spark_system = new /datum/effect_system/spark_spread() - spark_system.set_up(5, 0, src) - spark_system.attach(src) - - add_language(LANGUAGE_APOLLO, 1) - - ident = rand(1, 999) - updatename("Default") - update_icons() - - if(syndie) - if(!cell) - cell = new /obj/item/cell(src) - - lawupdate = 0 - scrambledcodes = 1 - cell.maxcharge = 25000 - cell.charge = 25000 - module = new /obj/item/circuitboard/robot_module/syndicate(src) - hands.icon_state = "standard" - icon_state = "secborg" - modtype = "Security" - init() - - radio = new /obj/item/device/radio/borg(src) - if(!scrambledcodes && !camera) - camera = new /obj/structure/machinery/camera(src) - camera.c_tag = real_name - camera.network = list("SS13","Robots") - if(isWireCut(5)) // 5 = BORG CAMERA - camera.status = 0 - - initialize_components() - //if(!unfinished) - // Create all the robot parts. - for(var/V in components) if(V != "power cell") - var/datum/robot_component/C = components[V] - C.installed = 1 - C.wrapped = new C.external_type - - if(!cell) - cell = new /obj/item/cell(src) - cell.maxcharge = 25000 - cell.charge = 25000 - - ..() - - if(cell) - var/datum/robot_component/cell_component = components["power cell"] - cell_component.wrapped = cell - cell_component.installed = 1 - - add_robot_verbs() - -/mob/living/silicon/robot/proc/init() - aiCamera = new/obj/item/device/camera/siliconcam/robot_camera(src) - connected_ai = select_active_ai_with_fewest_borgs() - if(connected_ai) - connected_ai.connected_robots += src - photosync() - lawupdate = 1 - else - lawupdate = 0 - - // playsound(loc, 'sound/voice/liveagain.ogg', 75, 1) - -// setup the PDA and its name -/*/mob/living/silicon/robot/proc/setup_PDA() - if (!rbPDA) - rbPDA = new/obj/item/device/pda/ai(src) - rbPDA.set_name_and_job(custom_name,"[modtype] [braintype]")*/ - -//If there's an MMI in the robot, have it ejected when the mob goes away. --NEO -//Improved /N -/mob/living/silicon/robot/Destroy() - if(mmi)//Safety for when a cyborg gets dust()ed. Or there is no MMI inside. - var/turf/turf = get_turf(loc)//To hopefully prevent run time errors. - if(turf) mmi.forceMove(turf) - if(mind) mind.transfer_to(mmi.brainmob) - mmi = null - QDEL_NULL(aiCamera) - QDEL_NULL(spark_system) - QDEL_NULL(module) - module_active = null - module_state_1 = null - module_state_2 = null - module_state_3 = null - QDEL_NULL(radio) - connected_ai = null - QDEL_NULL(cell) - QDEL_NULL(camera) - QDEL_LIST_ASSOC_VAL(components) - . = ..() - -/mob/living/silicon/robot/proc/pick_module() - if(module) - return - var/list/modules = list("Standard", "Engineering", "Surgeon", "Medic", "Janitor", "Service", "Security") - modtype = tgui_input_list(usr, "Please, select a module!", "Robot", modules) - - var/module_sprites[0] //Used to store the associations between sprite names and sprite index. - - if(module) - return - - switch(modtype) - if("Standard") - module = new /obj/item/circuitboard/robot_module/standard(src) - module.channels = list(RADIO_CHANNEL_COMMAND = 1, RADIO_CHANNEL_MP = 0, SQUAD_MARINE_1 = 0, SQUAD_MARINE_2 = 0, SQUAD_MARINE_3 = 0, SQUAD_MARINE_4 = 0, RADIO_CHANNEL_ENGI = 0, RADIO_CHANNEL_MEDSCI = 0, RADIO_CHANNEL_REQ = 0 ) - module_sprites["Default"] = "robot" - module_sprites["Droid"] = "droid" - module_sprites["Drone"] = "drone-standard" - - if("Service") - module = new /obj/item/circuitboard/robot_module/butler(src) - module.channels = list(RADIO_CHANNEL_COMMAND = 1, RADIO_CHANNEL_MP = 0, SQUAD_MARINE_1 = 0, SQUAD_MARINE_2 = 0, SQUAD_MARINE_3 = 0, SQUAD_MARINE_4 = 0, RADIO_CHANNEL_ENGI = 0, RADIO_CHANNEL_MEDSCI = 0, RADIO_CHANNEL_REQ = 0 ) - module_sprites["Default"] = "Service2" - module_sprites["Rich"] = "maximillion" - module_sprites["Drone"] = "drone-service" - - if("Medic") - module = new /obj/item/circuitboard/robot_module/medic(src) - module.channels = list(RADIO_CHANNEL_COMMAND = 1, RADIO_CHANNEL_MP = 0, SQUAD_MARINE_1 = 0, SQUAD_MARINE_2 = 0, SQUAD_MARINE_3 = 0, SQUAD_MARINE_4 = 0, RADIO_CHANNEL_ENGI = 0, RADIO_CHANNEL_MEDSCI = 1, RADIO_CHANNEL_REQ = 0 ) - if(camera && ("Robots" in camera.network)) - camera.network.Add("Medical") - module_sprites["Standard"] = "surgeon" - module_sprites["Advanced Droid"] = "droid-medical" - module_sprites["Needles"] = "medicalrobot" - module_sprites["Drone"] = "drone-medical" - - if("Surgeon") - module = new /obj/item/circuitboard/robot_module/surgeon(src) - module.channels = list(RADIO_CHANNEL_COMMAND = 1, RADIO_CHANNEL_MP = 0, SQUAD_MARINE_1 = 0, SQUAD_MARINE_2 = 0, SQUAD_MARINE_3 = 0, SQUAD_MARINE_4 = 0, RADIO_CHANNEL_ENGI = 0, RADIO_CHANNEL_MEDSCI = 1, RADIO_CHANNEL_REQ = 0 ) - if(camera && ("Robots" in camera.network)) - camera.network.Add("Medical") - module_sprites["Standard"] = "surgeon" - module_sprites["Advanced Droid"] = "droid-medical" - module_sprites["Needles"] = "medicalrobot" - module_sprites["Drone"] = "drone-medical" - - if("Security") - module = new /obj/item/circuitboard/robot_module/security(src) - module.channels = list(RADIO_CHANNEL_COMMAND = 1, RADIO_CHANNEL_MP = 1, SQUAD_MARINE_1 = 0, SQUAD_MARINE_2 = 0, SQUAD_MARINE_3 = 0, SQUAD_MARINE_4 = 0, RADIO_CHANNEL_ENGI = 0, RADIO_CHANNEL_MEDSCI = 0, RADIO_CHANNEL_REQ = 0 ) - module_sprites["Bloodhound"] = "bloodhound" - module_sprites["Bloodhound - Treaded"] = "secborg+tread" - module_sprites["Drone"] = "drone-sec" - - if("Engineering") - module = new /obj/item/circuitboard/robot_module/engineering(src) - module.channels = list(RADIO_CHANNEL_COMMAND = 1, RADIO_CHANNEL_MP = 0, SQUAD_MARINE_1 = 0, SQUAD_MARINE_2 = 0, SQUAD_MARINE_3 = 0, SQUAD_MARINE_4 = 0, RADIO_CHANNEL_ENGI = 1, RADIO_CHANNEL_MEDSCI = 0, RADIO_CHANNEL_REQ = 0 ) - if(camera && ("Robots" in camera.network)) - camera.network.Add("Engineering") - module_sprites["Landmate"] = "landmate" - module_sprites["Landmate - Treaded"] = "engiborg+tread" - module_sprites["Drone"] = "drone-engineer" - - if("Janitor") - module = new /obj/item/circuitboard/robot_module/janitor(src) - module.channels = list(RADIO_CHANNEL_COMMAND = 1, RADIO_CHANNEL_MP = 0, SQUAD_MARINE_1 = 0, SQUAD_MARINE_2 = 0, SQUAD_MARINE_3 = 0, SQUAD_MARINE_4 = 0, RADIO_CHANNEL_ENGI = 0, RADIO_CHANNEL_MEDSCI = 0, RADIO_CHANNEL_REQ = 0 ) - module_sprites["Mop Gear Rex"] = "mopgearrex" - module_sprites["Drone"] = "drone-janitor" - - //languages - module.add_languages(src) - - hands.icon_state = lowertext(modtype) - updatename() - - if(modtype == "Medic" || modtype == "Security" || modtype == "Surgeon") - status_flags &= ~CANPUSH - - choose_icon(6,module_sprites) - radio.config(module.channels) - -/mob/living/silicon/robot/proc/updatename(prefix as text) - if(prefix) - modtype = prefix - if(mmi) - braintype = "Cyborg" - else - braintype = "Robot" - - var/changed_name = "" - if(custom_name) - changed_name = custom_name - else - changed_name = "[modtype] [braintype]-[num2text(ident)]" - - change_real_name(src, changed_name) - - // if we've changed our name, we also need to update the display name for our PDA - //setup_PDA() - - //We also need to update name of internal camera. - if (camera) - camera.c_tag = changed_name - - -/mob/living/silicon/robot/verb/Namepick() - set category = "Robot Commands" - if(custom_name) - return 0 - - spawn(0) - var/newname - newname = input(src,"You are a robot. Enter a name, or leave blank for the default name.", "Name change","") as text - if (newname != "") - custom_name = newname - - updatename() - update_icons() - -/mob/living/silicon/robot/verb/cmd_robot_alerts() - set category = "Robot Commands" - set name = "Show Alerts" - robot_alerts() - -// this verb lets cyborgs see the stations manifest -/mob/living/silicon/robot/verb/cmd_station_manifest() - set category = "Robot Commands" - set name = "Show Crew Manifest" - show_station_manifest() - - -/mob/living/silicon/robot/proc/robot_alerts() - var/dat = "Current Station Alerts\n" - dat += "Close

            " - for (var/cat in alarms) - dat += text("[cat]
            \n") - var/list/alarmlist = alarms[cat] - if (alarmlist.len) - for (var/area_name in alarmlist) - var/datum/alarm/alarm = alarmlist[area_name] - dat += "" - dat += text("-- [area_name]") - if (alarm.sources.len > 1) - dat += text("- [alarm.sources.len] sources") - dat += "
            \n" - else - dat += "-- All Systems Nominal
            \n" - dat += "
            \n" - - viewalerts = 1 - src << browse(dat, "window=robotalerts&can_close=0") - -/mob/living/silicon/robot/proc/self_diagnosis() - if(!is_component_functioning("diagnosis unit")) - return null - - var/dat = "[src.name] Self-Diagnosis Report\n" - for (var/V in components) - var/datum/robot_component/C = components[V] - dat += "[C.name]
            Brute Damage:[C.brute_damage]
            Electronics Damage:[C.electronics_damage]
            Powered:[(!C.idle_usage || C.is_powered()) ? "Yes" : "No"]
            Toggled:[ C.toggled ? "Yes" : "No"]

            " - - return dat - -/mob/living/silicon/robot/verb/toggle_lights() - set category = "Robot Commands" - set name = "Toggle Lights" - - lights_on = !lights_on - to_chat(usr, "You [lights_on ? "enable" : "disable"] your integrated light.") - if(lights_on) - set_light(integrated_light_power) // 1.5x luminosity of flashlight - else - set_light(0) - -/mob/living/silicon/robot/verb/self_diagnosis_verb() - set category = "Robot Commands" - set name = "Self Diagnosis" - - if(!is_component_functioning("diagnosis unit")) - to_chat(src, SPAN_DANGER("Your self-diagnosis component isn't functioning.")) - - var/datum/robot_component/CO = get_component("diagnosis unit") - if (!cell_use_power(CO.active_usage)) - to_chat(src, SPAN_DANGER("Low Power.")) - var/dat = self_diagnosis() - src << browse(dat, "window=robotdiagnosis") - - -/mob/living/silicon/robot/verb/toggle_component() - set category = "Robot Commands" - set name = "Toggle Component" - set desc = "Toggle a component, conserving power." - - var/list/installed_components = list() - for(var/V in components) - if(V == "power cell") continue - var/datum/robot_component/C = components[V] - if(C.installed) - installed_components += V - - var/toggle = tgui_input_list(src, "Which component do you want to toggle?", "Toggle Component", installed_components) - if(!toggle) - return - - var/datum/robot_component/C = components[toggle] - if(C.toggled) - C.toggled = 0 - to_chat(src, SPAN_DANGER("You disable [C.name].")) - else - C.toggled = 1 - to_chat(src, SPAN_DANGER("You enable [C.name].")) - -// this function displays jetpack pressure in the stat panel -/mob/living/silicon/robot/proc/show_jetpack_pressure() - // if you have a jetpack, show the internal tank pressure - var/obj/item/tank/jetpack/current_jetpack = installed_jetpack() - if (current_jetpack) - stat("Internal Atmosphere Info", current_jetpack.name) - stat("Tank Pressure", current_jetpack.return_pressure()) - - -// this function returns the robots jetpack, if one is installed -/mob/living/silicon/robot/proc/installed_jetpack() - if(module) - return (locate(/obj/item/tank/jetpack) in module.modules) - return 0 - - -// this function displays the cyborgs current cell charge in the stat panel -/mob/living/silicon/robot/proc/show_cell_power() - if(cell) - stat(null, text("Charge Left: [round(cell.percent())]%")) - stat(null, text("Cell Rating: [round(cell.maxcharge)]")) // Round just in case we somehow get crazy values - stat(null, text("Power Cell Load: [round(used_power_this_tick)]W")) - else - stat(null, text("No Cell Inserted!")) - - -/mob/living/silicon/robot/is_mob_restrained() - return 0 - -/mob/living/silicon/robot/bullet_act(obj/projectile/Proj) - ..(Proj) - if(prob(75) && Proj.damage > 0) spark_system.start() - return 2 - -/mob/living/silicon/robot/Collide(atom/A) - ..() - if (istype(A, /obj/structure/machinery/recharge_station)) - var/obj/structure/machinery/recharge_station/F = A - F.move_inside() - return - - -/mob/living/silicon/robot/triggerAlarm(class, area/A, list/cameralist, source) - if (stat == 2) - return 1 - - ..() - - queueAlarm(text("--- [class] alarm detected in [A.name]!"), class) - - -/mob/living/silicon/robot/cancelAlarm(class, area/A as area, obj/origin) - var/has_alarm = ..() - - if (!has_alarm) - queueAlarm(text("--- [class] alarm in [A.name] has been cleared."), class, 0) -// if (viewalerts) robot_alerts() - return has_alarm - - -/mob/living/silicon/robot/attackby(obj/item/W as obj, mob/user as mob) - if (istype(W, /obj/item/handcuffs)) // fuck i don't even know why isrobot() in handcuff code isn't working so this will have to do - return - - if(opened) // Are they trying to insert something? - for(var/V in components) - var/datum/robot_component/C = components[V] - if(!C.installed && istype(W, C.external_type)) - C.installed = 1 - C.wrapped = W - C.install() - if(user.drop_held_item()) - W.moveToNullspace() - var/obj/item/robot_parts/robot_component/WC = W - if(istype(WC)) - C.brute_damage = WC.brute - C.electronics_damage = WC.burn - - to_chat(usr, SPAN_NOTICE(" You install the [W.name].")) - - return - - if (iswelder(W)) - if(!HAS_TRAIT(W, TRAIT_TOOL_BLOWTORCH)) - to_chat(user, SPAN_WARNING("You need a stronger blowtorch!")) - return - if (src == user) - to_chat(user, SPAN_WARNING("You lack the reach to be able to repair yourself.")) - return - - if (!getBruteLoss()) - to_chat(user, "Nothing to fix here!") - return - var/obj/item/tool/weldingtool/WT = W - if (WT.remove_fuel(0)) - apply_damage(-30, BRUTE) - updatehealth() - add_fingerprint(user) - for(var/mob/O in viewers(user, null)) - O.show_message(text(SPAN_DANGER("[user] has fixed some of the dents on [src]!")), SHOW_MESSAGE_VISIBLE) - else - to_chat(user, "Need more welding fuel!") - return - - else if(istype(W, /obj/item/stack/cable_coil) && (wiresexposed || ismaintdrone(src))) - if (!getFireLoss()) - to_chat(user, "Nothing to fix here!") - return - var/obj/item/stack/cable_coil/coil = W - if (coil.use(1)) - apply_damage(-30, BURN) - updatehealth() - for(var/mob/O in viewers(user, null)) - O.show_message(text(SPAN_DANGER("[user] has fixed some of the burnt wires on [src]!")), SHOW_MESSAGE_VISIBLE) - - else if (HAS_TRAIT(W, TRAIT_TOOL_CROWBAR)) // crowbar means open or close the cover - if(opened) - if(cell) - to_chat(user, "You close the cover.") - opened = 0 - update_icons() - else if(wiresexposed && isWireCut(1) && isWireCut(2) && isWireCut(3) && isWireCut(4) && isWireCut(5)) - //Cell is out, wires are exposed, remove MMI, produce damaged chassis, baleet original mob. - if(!mmi) - to_chat(user, "\The [src] has no brain to remove.") - return - - to_chat(user, "You jam the crowbar into the robot and begin levering [mmi].") - sleep(30) - to_chat(user, "You damage some parts of the chassis, but eventually manage to rip out [mmi]!") - var/obj/item/robot_parts/robot_suit/C = new/obj/item/robot_parts/robot_suit(loc) - C.l_leg = new/obj/item/robot_parts/leg/l_leg(C) - C.r_leg = new/obj/item/robot_parts/leg/r_leg(C) - C.l_arm = new/obj/item/robot_parts/arm/l_arm(C) - C.r_arm = new/obj/item/robot_parts/arm/r_arm(C) - C.updateicon() - new/obj/item/robot_parts/chest(loc) - qdel(src) - else - // Okay we're not removing the cell or an MMI, but maybe something else? - var/list/removable_components = list() - for(var/V in components) - if(V == "power cell") continue - var/datum/robot_component/C = components[V] - if(C.installed == 1 || C.installed == -1) - removable_components += V - - var/remove = tgui_input_list(user, "Which component do you want to pry out?", "Remove Component", removable_components) - if(!remove) - return - var/datum/robot_component/C = components[remove] - var/obj/item/robot_parts/robot_component/I = C.wrapped - to_chat(user, "You remove \the [I].") - if(istype(I)) - I.brute = C.brute_damage - I.burn = C.electronics_damage - - I.forceMove(src.loc) - - if(C.installed == 1) - C.uninstall() - C.installed = 0 - - else - if(locked) - to_chat(user, "The cover is locked and cannot be opened.") - else - to_chat(user, "You open the cover.") - opened = 1 - update_icons() - - else if (istype(W, /obj/item/cell) && opened) // trying to put a cell inside - var/datum/robot_component/C = components["power cell"] - if(wiresexposed) - to_chat(user, "Secure the wiring with a screwdriver first.") - else if(cell) - to_chat(user, "There is a power cell already installed.") - else - if(user.drop_inv_item_to_loc(W, src)) - cell = W - to_chat(user, "You insert the power cell.") - - C.installed = 1 - C.wrapped = W - C.install() - //This will mean that removing and replacing a power cell will repair the mount, but I don't care at this point. ~Z - C.brute_damage = 0 - C.electronics_damage = 0 - - else if (HAS_TRAIT(W, TRAIT_TOOL_WIRECUTTERS) || HAS_TRAIT(W, TRAIT_TOOL_MULTITOOL)) - if (wiresexposed) - interact(user) - else - to_chat(user, "You can't reach the wiring.") - - else if(HAS_TRAIT(W, TRAIT_TOOL_SCREWDRIVER) && opened && !cell) // haxing - wiresexposed = !wiresexposed - to_chat(user, "The wires have been [wiresexposed ? "exposed" : "unexposed"]") - update_icons() - - else if(HAS_TRAIT(W, TRAIT_TOOL_SCREWDRIVER) && opened && cell) // radio - if(radio) - radio.attackby(W,user)//Push it to the radio to let it handle everything - else - to_chat(user, "Unable to locate a radio.") - update_icons() - - else if(istype(W, /obj/item/device/encryptionkey/) && opened) - if(radio)//sanityyyyyy - radio.attackby(W,user)//GTFO, you have your own procs - else - to_chat(user, "Unable to locate a radio.") - - else if(istype(W, /obj/item/robot/upgrade/)) - var/obj/item/robot/upgrade/U = W - if(!opened) - to_chat(usr, "You must access the borgs internals!") - else if(!src.module && U.require_module) - to_chat(usr, "The borg must choose a module before he can be upgraded!") - else if(U.locked) - to_chat(usr, "The upgrade is locked and cannot be used yet!") - else - if(U.action(src)) - to_chat(usr, "You apply the upgrade to [src]!") - if(usr.drop_held_item()) - U.forceMove(src) - else - to_chat(usr, "Upgrade error!") - - - else - if( !(istype(W, /obj/item/device/robotanalyzer) || istype(W, /obj/item/device/healthanalyzer)) ) - spark_system.start() - return ..() - -/mob/living/silicon/robot/verb/unlock_own_cover() - set category = "Robot Commands" - set name = "Toggle Cover" - set desc = "Toggle your cover open and closed." - if(stat == DEAD) - return //won't work if dead - if(!opened) - opened = 1 - to_chat(usr, "You open your cover.") - else - opened = 0 - to_chat(usr, "You close your cover.") - -/mob/living/silicon/robot/attack_animal(mob/living/M as mob) - if(M.melee_damage_upper == 0) - M.emote("[M.friendly] [src]") - else - if(M.attack_sound) - playsound(loc, M.attack_sound, 25, 1) - for(var/mob/O in viewers(src, null)) - O.show_message(SPAN_DANGER("[M] [M.attacktext] [src]!"), SHOW_MESSAGE_VISIBLE) - last_damage_data = create_cause_data(initial(M.name), M) - M.attack_log += text("\[[time_stamp()]\] attacked [key_name(src)]") - src.attack_log += text("\[[time_stamp()]\] was attacked by [key_name(M)]") - var/damage = rand(M.melee_damage_lower, M.melee_damage_upper) - apply_damage(damage, BRUTE) - updatehealth() - - -/mob/living/silicon/robot/attack_hand(mob/user) - - add_fingerprint(user) - - if(opened && !wiresexposed && (!isRemoteControlling(user))) - var/datum/robot_component/cell_component = components["power cell"] - if(cell) - cell.update_icon() - cell.add_fingerprint(user) - user.put_in_active_hand(cell) - to_chat(user, "You remove \the [cell].") - cell = null - cell_component.wrapped = null - cell_component.installed = 0 - update_icons() - else if(cell_component.installed == -1) - cell_component.installed = 0 - var/obj/item/broken_device = cell_component.wrapped - to_chat(user, "You remove \the [broken_device].") - user.put_in_active_hand(broken_device) - -/mob/living/silicon/robot/proc/allowed(mob/M) - //check if it doesn't require any access at all - if(check_access(null)) - return 1 - if(istype(M, /mob/living/carbon/human)) - var/mob/living/carbon/human/H = M - //if they are holding or wearing a card that has access, that works - if(check_access(H.get_active_hand()) || check_access(H.wear_id)) - return 1 - return 0 - -/mob/living/silicon/robot/proc/check_access(obj/item/card/id/I) - if(!istype(req_access, /list)) //something's very wrong - return 1 - - var/list/L = req_access - if(!L.len) //no requirements - return 1 - if(!I || !istype(I, /obj/item/card/id) || !I.access) //not ID or no access - return 0 - for(var/req in req_access) - if(req in I.access) //have one of the required accesses - return 1 - return 0 - -/mob/living/silicon/robot/update_icons() - - overlays.Cut() - if(stat == 0) - overlays += "eyes" - overlays.Cut() - overlays += "eyes-[icon_state]" - else - overlays -= "eyes" - - if(opened) - if(wiresexposed) - overlays += "ov-openpanel +w" - else if(cell) - overlays += "ov-openpanel +c" - else - overlays += "ov-openpanel -c" - -/mob/living/silicon/robot/proc/installed_modules() - if(weapon_lock) - to_chat(src, SPAN_DANGER("Weapon lock active, unable to use modules! Count:[weaponlock_time]")) - return - - if(!module) - pick_module() - return - var/dat = "Modules\n" - dat += {" - Activated Modules -
            - Module 1: [module_state_1 ? "[module_state_1]" : "No Module"]
            - Module 2: [module_state_2 ? "
            [module_state_2]" : "No Module"]
            - Module 3: [module_state_3 ? "
            [module_state_3]" : "No Module"]
            -
            - Installed Modules

            "} - - - for (var/obj in module.modules) - if (!obj) - dat += text("Resource depleted
            ") - else if(activated(obj)) - dat += text("[obj]: Activated
            ") - else - dat += text("[obj]:
            Activate
            ") -/* - if(activated(obj)) - dat += text("[obj]: \[Activated|Deactivate\]
            ") - else - dat += text("[obj]: \[Activate|Deactivated\]
            ") -*/ - src << browse(dat, "window=robotmod") - - -/mob/living/silicon/robot/Topic(href, href_list) - ..() - - if(usr != src) - return - - if (href_list["showalerts"]) - robot_alerts() - return - - if (href_list["mod"]) - var/obj/item/O = locate(href_list["mod"]) - if (istype(O) && (O.loc == src)) - O.attack_self(src) - - if (href_list["act"]) - var/obj/item/O = locate(href_list["act"]) - if (!istype(O)) - return - - if(!((O in src.module.modules) || (O == src.module.emag))) - return - - if(activated(O)) - to_chat(src, "Already activated") - return - if(!module_state_1) - module_state_1 = O - O.layer = ABOVE_HUD_LAYER - O.plane = ABOVE_HUD_PLANE - contents += O - if(istype(module_state_1,/obj/item/robot/sight)) - sight_mode |= module_state_1:sight_mode - else if(!module_state_2) - module_state_2 = O - O.layer = ABOVE_HUD_LAYER - O.plane = ABOVE_HUD_PLANE - contents += O - if(istype(module_state_2,/obj/item/robot/sight)) - sight_mode |= module_state_2:sight_mode - else if(!module_state_3) - module_state_3 = O - O.layer = ABOVE_HUD_LAYER - O.plane = ABOVE_HUD_PLANE - contents += O - if(istype(module_state_3,/obj/item/robot/sight)) - sight_mode |= module_state_3:sight_mode - else - to_chat(src, "You need to disable a module first!") - installed_modules() - - if (href_list["deact"]) - var/obj/item/O = locate(href_list["deact"]) - if(activated(O)) - if(module_state_1 == O) - module_state_1 = null - contents -= O - else if(module_state_2 == O) - module_state_2 = null - contents -= O - else if(module_state_3 == O) - module_state_3 = null - contents -= O - else - to_chat(src, "Module isn't activated.") - else - to_chat(src, "Module isn't activated") - installed_modules() - - return - -/mob/living/silicon/robot/proc/radio_menu() - radio.interact(src)//Just use the radio's Topic() instead of bullshit special-snowflake code - - -/mob/living/silicon/robot/Move(a, b, flag) - if (!is_component_functioning("actuator")) - return 0 - - var/datum/robot_component/actuator/AC = get_component("actuator") - if (!cell_use_power(AC.active_usage)) - return 0 - - . = ..() - - if(module) - if(module.type == /obj/item/circuitboard/robot_module/janitor) - var/turf/tile = loc - if(isturf(tile)) - for(var/A in tile) - if(istype(A, /obj/effect)) - if(istype(A, /obj/effect/decal/cleanable) || istype(A, /obj/effect/overlay)) - qdel(A) - else if(istype(A, /obj/item)) - var/obj/item/cleaned_item = A - cleaned_item.clean_blood() - else if(istype(A, /mob/living/carbon/human)) - var/mob/living/carbon/human/cleaned_human = A - if(cleaned_human.body_position == LYING_DOWN) - if(cleaned_human.head) - cleaned_human.head.clean_blood() - cleaned_human.update_inv_head(0) - if(cleaned_human.wear_suit) - cleaned_human.wear_suit.clean_blood() - cleaned_human.update_inv_wear_suit(0) - else if(cleaned_human.w_uniform) - cleaned_human.w_uniform.clean_blood() - cleaned_human.update_inv_w_uniform(0) - if(cleaned_human.shoes) - cleaned_human.shoes.clean_blood() - cleaned_human.update_inv_shoes(0) - cleaned_human.clean_blood(1) - to_chat(cleaned_human, SPAN_WARNING("[src] cleans your face!")) - return - -/mob/living/silicon/robot/proc/self_destruct() - robogibs() - return - -/mob/living/silicon/robot/proc/UnlinkSelf() - if (src.connected_ai) - src.connected_ai = null - lawupdate = 0 - lockcharge = 0 - //canmove = 1 // Yes this will probably break something, whatevver it is - scrambledcodes = 1 - //Disconnect it's camera so it's not so easily tracked. - if(src.camera) - src.camera.network = list() - GLOB.cameranet.removeCamera(src.camera) - - -/mob/living/silicon/robot/proc/ResetSecurityCodes() - set category = "Robot Commands" - set name = "Reset Identity Codes" - set desc = "Scrambles your security and identification codes and resets your current buffers. Unlocks you and but permanently severs you from your AI and the robotics console and will deactivate your camera system." - - var/mob/living/silicon/robot/R = src - - if(R) - R.UnlinkSelf() - to_chat(R, "Buffers flushed and reset. Camera system shutdown. All systems operational.") - remove_verb(src, /mob/living/silicon/robot/proc/ResetSecurityCodes) - -/mob/living/silicon/robot/mode() - set name = "Activate Held Object" - set category = "IC" - set src = usr - - var/obj/item/W = get_active_hand() - if (W) - W.attack_self(src) - - return - -/mob/living/silicon/robot/proc/choose_icon(triesleft, list/module_sprites) - - if(triesleft<1 || !module_sprites.len) - return - else - triesleft-- - - var/icontype = tgui_input_list(usr, "Select an icon! [triesleft ? "You have [triesleft] more chances." : "This is your last try."]", "Robot", module_sprites) - - if(icontype) - icon_state = module_sprites[icontype] - else - to_chat(src, "Something is badly wrong with the sprite selection. Harass a coder.") - icon_state = module_sprites[1] - return - - overlays -= "eyes" - update_icons() - - if (triesleft >= 1) - var/choice = tgui_input_list(usr, "Look at your icon - is this what you want?", "Icon", list("Yes","No")) - if(choice=="No") - choose_icon(triesleft, module_sprites) - else - triesleft = 0 - return - else - to_chat(src, "Your icon has been set. You now require a module reset to change it.") - -/mob/living/silicon/robot/proc/sensor_mode() //Medical/Security HUD controller for borgs - set name = "Set Sensor Augmentation" - set category = "Robot Commands" - set desc = "Augment visual feed with internal sensor overlays." - toggle_sensor_mode() - -/mob/living/silicon/robot/proc/add_robot_verbs() - add_verb(src, GLOB.robot_verbs_default) - -/mob/living/silicon/robot/proc/remove_robot_verbs() - remove_verb(src, GLOB.robot_verbs_default) - -// Uses power from cyborg's cell. Returns 1 on success or 0 on failure. -// Properly converts using CELLRATE now! Amount is in Joules. -/mob/living/silicon/robot/proc/cell_use_power(amount = 0) - // No cell inserted - if(!cell) - return 0 - - // Power cell is empty. - if(cell.charge == 0) - return 0 - - if(cell.use(amount * CELLRATE * CYBORG_POWER_USAGE_MULTIPLIER)) - used_power_this_tick += amount * CYBORG_POWER_USAGE_MULTIPLIER - return 1 - return 0 - -/mob/living/silicon/robot/hear_apollo() - if(is_component_functioning("comms")) - var/datum/robot_component/RC = get_component("comms") - use_power(RC.active_usage) - return TRUE - return FALSE - - - - - - -/mob/living/silicon/robot/update_sight() - if (stat == DEAD || sight_mode & BORGXRAY) - sight |= SEE_TURFS - sight |= SEE_MOBS - sight |= SEE_OBJS - see_in_dark = 8 - see_invisible = SEE_INVISIBLE_MINIMUM - else if (sight_mode & BORGMESON && sight_mode & BORGTHERM) - sight |= SEE_TURFS - sight |= SEE_MOBS - see_in_dark = 8 - see_invisible = SEE_INVISIBLE_MINIMUM - else if (sight_mode & BORGMESON) - sight |= SEE_TURFS - see_in_dark = 8 - see_invisible = SEE_INVISIBLE_MINIMUM - else if (sight_mode & BORGTHERM) - sight |= SEE_MOBS - see_in_dark = 8 - see_invisible = SEE_INVISIBLE_LEVEL_TWO - else if (stat != DEAD) - sight &= ~SEE_MOBS - sight &= ~SEE_TURFS - sight &= ~SEE_OBJS - see_in_dark = 8 - see_invisible = SEE_INVISIBLE_LEVEL_TWO diff --git a/code/modules/mob/living/silicon/robot/robot_damage.dm b/code/modules/mob/living/silicon/robot/robot_damage.dm deleted file mode 100644 index 78b6b78445e0..000000000000 --- a/code/modules/mob/living/silicon/robot/robot_damage.dm +++ /dev/null @@ -1,148 +0,0 @@ -/mob/living/silicon/robot/updatehealth() - if(status_flags & GODMODE) - health = maxHealth - set_stat(CONSCIOUS) - return - health = maxHealth - (getBruteLoss() + getFireLoss()) - return - -/mob/living/silicon/robot/getBruteLoss() - var/amount = 0 - for(var/V in components) - var/datum/robot_component/C = components[V] - if(C.installed != 0) amount += C.brute_damage - return amount - -/mob/living/silicon/robot/getFireLoss() - var/amount = 0 - for(var/V in components) - var/datum/robot_component/C = components[V] - if(C.installed != 0) amount += C.electronics_damage - return amount - -/mob/living/silicon/robot/adjustBruteLoss(amount) - if(amount > 0) - take_overall_damage(amount, 0) - else - heal_overall_damage(-amount, 0) - -/mob/living/silicon/robot/adjustFireLoss(amount) - if(amount > 0) - take_overall_damage(0, amount) - else - heal_overall_damage(0, -amount) - -/mob/living/silicon/robot/proc/get_damaged_components(brute, burn, destroyed = 0) - var/list/datum/robot_component/parts = list() - for(var/V in components) - var/datum/robot_component/C = components[V] - if(C.installed == 1 || (C.installed == -1 && destroyed)) - if((brute && C.brute_damage) || (burn && C.electronics_damage) || (!C.toggled) || (!C.powered && C.toggled)) - parts += C - return parts - -/mob/living/silicon/robot/proc/get_damageable_components() - var/list/rval = new - for(var/V in components) - var/datum/robot_component/C = components[V] - if(C.installed == 1) rval += C - return rval - -/mob/living/silicon/robot/proc/get_armour() - - if(!components.len) return 0 - var/datum/robot_component/C = components["armour"] - if(C && C.installed == 1) - return C - return 0 - -/mob/living/silicon/robot/heal_limb_damage(brute, burn) - var/list/datum/robot_component/parts = get_damaged_components(brute,burn) - if(!parts.len) return - var/datum/robot_component/picked = pick(parts) - picked.heal_damage(brute,burn) - -/mob/living/silicon/robot/take_limb_damage(brute = 0, burn = 0, sharp = 0, edge = 0) - var/list/components = get_damageable_components() - if(!components.len) - return - - //Combat shielding absorbs a percentage of damage directly into the cell. - if(module_active && istype(module_active,/obj/item/robot/combat/shield)) - var/obj/item/robot/combat/shield/shield = module_active - //Shields absorb a certain percentage of damage based on their power setting. - var/absorb_brute = brute*shield.shield_level - var/absorb_burn = burn*shield.shield_level - var/cost = (absorb_brute+absorb_burn)*100 - - cell.charge -= cost - if(cell.charge <= 0) - cell.charge = 0 - to_chat(src, SPAN_DANGER("Your shield has overloaded!")) - else - brute -= absorb_brute - burn -= absorb_burn - to_chat(src, SPAN_DANGER("Your shield absorbs some of the impact!")) - - var/datum/robot_component/armour/A = get_armour() - if(A) - A.take_damage(brute,burn,sharp,edge) - return - - var/datum/robot_component/C = pick(components) - C.take_damage(brute,burn,sharp,edge) - -/mob/living/silicon/robot/heal_overall_damage(brute, burn) - var/list/datum/robot_component/parts = get_damaged_components(brute,burn) - - while(parts.len && (brute>0 || burn>0) ) - var/datum/robot_component/picked = pick(parts) - - var/brute_was = picked.brute_damage - var/burn_was = picked.electronics_damage - - picked.heal_damage(brute,burn) - - brute -= (brute_was-picked.brute_damage) - burn -= (burn_was-picked.electronics_damage) - - parts -= picked - -/mob/living/silicon/robot/take_overall_damage(brute = 0, burn = 0, sharp = 0, used_weapon = null) - if(status_flags & GODMODE) return //godmode - var/list/datum/robot_component/parts = get_damageable_components() - - //Combat shielding absorbs a percentage of damage directly into the cell. - if(module_active && istype(module_active,/obj/item/robot/combat/shield)) - var/obj/item/robot/combat/shield/shield = module_active - //Shields absorb a certain percentage of damage based on their power setting. - var/absorb_brute = brute*shield.shield_level - var/absorb_burn = burn*shield.shield_level - var/cost = (absorb_brute+absorb_burn)*100 - - cell.charge -= cost - if(cell.charge <= 0) - cell.charge = 0 - to_chat(src, SPAN_DANGER("Your shield has overloaded!")) - else - brute -= absorb_brute - burn -= absorb_burn - to_chat(src, SPAN_DANGER("Your shield absorbs some of the impact!")) - - var/datum/robot_component/armour/A = get_armour() - if(A) - A.take_damage(brute,burn,sharp) - return - - while(parts.len && (brute>0 || burn>0) ) - var/datum/robot_component/picked = pick(parts) - - var/brute_was = picked.brute_damage - var/burn_was = picked.electronics_damage - - picked.take_damage(brute,burn) - - brute -= (picked.brute_damage - brute_was) - burn -= (picked.electronics_damage - burn_was) - - parts -= picked diff --git a/code/modules/mob/living/silicon/robot/robot_items.dm b/code/modules/mob/living/silicon/robot/robot_items.dm deleted file mode 100644 index 6b29a47be3ea..000000000000 --- a/code/modules/mob/living/silicon/robot/robot_items.dm +++ /dev/null @@ -1,93 +0,0 @@ -// A special pen for service droids. Can be toggled to switch between normal writting mode, and paper rename mode -// Allows service droids to rename paper items. - -/obj/item/tool/pen/robopen - desc = "A black ink printing attachment with a paper naming mode." - name = "Printing Pen" - var/mode = 1 - -/obj/item/tool/pen/robopen/attack_self(mob/user) - ..() - - var/choice = tgui_input_list(usr, "Would you like to change color or mode?", "Change Mode", list("Colour","Mode")) - if(!choice) - return - - playsound(src.loc, 'sound/effects/pop.ogg', 25, FALSE) - - switch(choice) - if("Colour") - var/newcolour = tgui_input_list(usr, "Which color would you like to use?", list("black","blue","red","green","yellow")) - if(newcolour) pen_colour = newcolour - if("Mode") - if (mode == 1) - mode = 2 - else - mode = 1 - to_chat(user, "Changed printing mode to '[mode == 2 ? "Rename Paper" : "Write Paper"]'") - -// Copied over from paper's rename verb -// see code\modules\paperwork\paper.dm line 62 - -/obj/item/tool/pen/robopen/proc/RenamePaper(mob/user as mob,obj/paper as obj) - if ( !user || !paper ) - return - var/n_name = input(user, "What would you like to label the paper?", "Paper Labelling", null) as text - if ( !user || !paper ) - return - - n_name = copytext(n_name, 1, 32) - if(( get_dist(user,paper) <= 1 && user.stat == 0)) - paper.name = "paper[(n_name ? text("- '[n_name]'") : null)]" - add_fingerprint(user) - return - -//TODO: Add prewritten forms to dispense when you work out a good way to store the strings. -/obj/item/form_printer - //name = "paperwork printer" - name = "paper dispenser" - icon = 'icons/obj/items/paper.dmi' - icon_state = "paper_bin1" - item_state = "sheet-metal" - -/obj/item/form_printer/attack(mob/living/carbon/M, mob/living/carbon/user) - return - -/obj/item/form_printer/afterattack(atom/target, mob/living/user, flag, params) - if(!target || !flag) - return - - if(istype(target,/obj/structure/surface/table)) - deploy_paper(get_turf(target)) - -/obj/item/form_printer/attack_self(mob/user) - ..() - deploy_paper(get_turf(src)) - -/obj/item/form_printer/proc/deploy_paper(turf/T) - T.visible_message(SPAN_NOTICE("\The [src.loc] dispenses a sheet of crisp white paper.")) - new /obj/item/paper(T) - - -//Personal shielding for the combat module. -/obj/item/robot/combat/shield - name = "personal shielding" - desc = "A powerful experimental module that turns aside or absorbs incoming attacks at the cost of charge." - icon = 'icons/obj/structures/props/decals.dmi' - icon_state = "shock" - var/shield_level = 0.5 //Percentage of damage absorbed by the shield. - -/obj/item/robot/combat/shield/verb/set_shield_level() - set name = "Set shield level" - set category = "Object" - set src in range(0) - - var/N = tgui_input_list(usr, "How much damage should the shield absorb?", "Shield level", list("5","10","25","50","75","100")) - if (N) - shield_level = text2num(N)/100 - -/obj/item/robot/combat/mobility - name = "mobility module" - desc = "By retracting limbs and tucking in its head, a combat android can roll at high speeds." - icon = 'icons/obj/structures/props/decals.dmi' - icon_state = "shock" diff --git a/code/modules/mob/living/silicon/robot/robot_movement.dm b/code/modules/mob/living/silicon/robot/robot_movement.dm deleted file mode 100644 index ef8d160cca7c..000000000000 --- a/code/modules/mob/living/silicon/robot/robot_movement.dm +++ /dev/null @@ -1,23 +0,0 @@ -/mob/living/silicon/robot/Process_Spaceslipping(prob_slip) - if(module && (istype(module,/obj/item/circuitboard/robot_module/drone))) - return 0 - ..(prob_slip) - -/mob/living/silicon/robot/Process_Spacemove() - if(module) - for(var/obj/item/tank/jetpack/J in module.modules) - if(J && istype(J, /obj/item/tank/jetpack)) - if(J.allow_thrust(0.01)) return 1 - if(..()) return 1 - return 0 - -//No longer needed, but I'll leave it here incase we plan to re-use it. -/mob/living/silicon/robot/movement_delay() - . = ..() - - if(module_active && istype(module_active, /obj/item/robot/combat/mobility)) - . -= 3 - - . += CONFIG_GET(number/robot_delay) - - move_delay = . diff --git a/code/modules/mob/living/silicon/robot/wires.dm b/code/modules/mob/living/silicon/robot/wires.dm deleted file mode 100644 index 62d05abe6e13..000000000000 --- a/code/modules/mob/living/silicon/robot/wires.dm +++ /dev/null @@ -1,147 +0,0 @@ -#define BORG_WIRE_LAWCHECK 1 -#define BORG_WIRE_MAIN_POWER1 2 -#define BORG_WIRE_MAIN_POWER2 3 -#define BORG_WIRE_AI_CONTROL 4 -#define BORG_WIRE_CAMERA 5 - -/proc/RandomBorgWires() - //to make this not randomize the wires, just set index to 1 and increment it in the flag for loop (after doing everything else). - var/list/Borgwires = list(0, 0, 0, 0, 0) - GLOB.BorgIndexToFlag = list(0, 0, 0, 0, 0) - GLOB.BorgIndexToWireColor = list(0, 0, 0, 0, 0) - GLOB.BorgWireColorToIndex = list(0, 0, 0, 0, 0) - var/flagIndex = 1 - //I think it's easier to read this way, also doesn't rely on the random number generator to land on a new wire. - var/list/colorIndexList = list(BORG_WIRE_LAWCHECK, BORG_WIRE_MAIN_POWER1, BORG_WIRE_MAIN_POWER2, BORG_WIRE_AI_CONTROL, BORG_WIRE_CAMERA) - for (var/flag=1, flag<=16, flag+=flag) - var/colorIndex = pick(colorIndexList) - if (Borgwires[colorIndex]==0) - Borgwires[colorIndex] = flag - GLOB.BorgIndexToFlag[flagIndex] = flag - GLOB.BorgIndexToWireColor[flagIndex] = colorIndex - GLOB.BorgWireColorToIndex[colorIndex] = flagIndex - colorIndexList -= colorIndex // Shortens the list. - //world.log << "Flag: [flag], CIndex: [colorIndex], FIndex: [flagIndex]" - flagIndex+=1 - return Borgwires - -/mob/living/silicon/robot/proc/isWireColorCut(wireColor) - var/wireFlag = GLOB.BorgWireColorToFlag[wireColor] - return ((src.borgwires & wireFlag) == 0) - -/mob/living/silicon/robot/proc/isWireCut(wireIndex) - var/wireFlag = GLOB.BorgIndexToFlag[wireIndex] - return ((src.borgwires & wireFlag) == 0) - -/mob/living/silicon/robot/proc/cut(wireColor) - var/wireFlag = GLOB.BorgWireColorToFlag[wireColor] - var/wireIndex = GLOB.BorgWireColorToIndex[wireColor] - borgwires &= ~wireFlag - switch(wireIndex) - if(BORG_WIRE_LAWCHECK) //Cut the law wire, and the borg will no longer receive law updates from its AI - if (src.lawupdate == 1) - to_chat(src, "LawSync protocol engaged.") - src.show_laws() - if (BORG_WIRE_AI_CONTROL) //Cut the AI wire to reset AI control - if (src.connected_ai) - src.connected_ai = null - if (BORG_WIRE_CAMERA) - if(camera && camera.status && !scrambledcodes) - camera.toggle_cam_status(usr, TRUE) // Will kick anyone who is watching the Cyborg's camera. - - src.interact(usr) - -/mob/living/silicon/robot/proc/mend(wireColor) - var/wireFlag = GLOB.BorgWireColorToFlag[wireColor] - var/wireIndex = GLOB.BorgWireColorToIndex[wireColor] - borgwires |= wireFlag - switch(wireIndex) - if(BORG_WIRE_LAWCHECK) //turns law updates back on assuming the borg hasn't been emagged - if (src.lawupdate == 0) - src.lawupdate = 1 - if(BORG_WIRE_CAMERA) - if(camera && !camera.status && !scrambledcodes) - camera.toggle_cam_status(usr, TRUE) // Will kick anyone who is watching the Cyborg's camera. - - src.interact(usr) - - -/mob/living/silicon/robot/proc/pulse(wireColor) - var/wireIndex = GLOB.BorgWireColorToIndex[wireColor] - switch(wireIndex) - if(BORG_WIRE_LAWCHECK) //Forces a law update if the borg is set to receive them. Since an update would happen when the borg checks its laws anyway, not much use, but eh - if (src.lawupdate) - src.photosync() - - if (BORG_WIRE_AI_CONTROL) //pulse the AI wire to make the borg reselect an AI - src.connected_ai = select_active_ai() - - if (BORG_WIRE_CAMERA) - if(camera && camera.status && !scrambledcodes) - camera.toggle_cam_status(src, TRUE) // Kick anyone watching the Cyborg's camera, doesn't display you disconnecting the camera. - to_chat(usr, "[src]'s camera lens focuses loudly.") - to_chat(src, "Your camera lens focuses loudly.") - - src.interact(usr) - -/mob/living/silicon/robot/proc/interact(mob/user) - if(wiresexposed && (!isRemoteControlling(user))) - user.set_interaction(src) - var/t1 = text("Access Panel
            \n") - var/list/Borgwires = list( - "Orange" = 1, - "Dark red" = 2, - "White" = 3, - "Yellow" = 4, - "Blue" = 5, - ) - for(var/wiredesc in Borgwires) - var/is_uncut = src.borgwires & GLOB.BorgWireColorToFlag[Borgwires[wiredesc]] - t1 += "[wiredesc] wire: " - if(!is_uncut) - t1 += "Mend" - else - t1 += "Cut " - t1 += "Pulse " - t1 += "
            " - t1 += text("
            \n[(src.lawupdate ? "The LawSync light is on." : "The LawSync light is off.")]
            \n[(src.connected_ai ? "The AI link light is on." : "The AI link light is off.")]") - t1 += text("
            \n[((!isnull(src.camera) && src.camera.status == 1) ? "The Camera light is on." : "The Camera light is off.")]
            \n") - t1 += text("

            Close

            \n") - user << browse(t1, "window=borgwires") - onclose(user, "borgwires") - -/mob/living/silicon/robot/Topic(href, href_list) - ..() - if (((in_range(src, usr) && istype(src.loc, /turf))) && !isRemoteControlling(usr)) - usr.set_interaction(src) - if (href_list["borgwires"]) - var/t1 = text2num(href_list["borgwires"]) - var/obj/item/held_item = usr.get_held_item() - if (!held_item || !HAS_TRAIT(held_item, TRAIT_TOOL_WIRECUTTERS)) - to_chat(usr, SPAN_WARNING("You need wirecutters!")) - return - if (src.isWireColorCut(t1)) - src.mend(t1) - else - src.cut(t1) - else if (href_list["pulse"]) - var/t1 = text2num(href_list["pulse"]) - var/obj/item/held_item = usr.get_held_item() - if (!held_item || !HAS_TRAIT(held_item, TRAIT_TOOL_MULTITOOL)) - to_chat(usr, SPAN_WARNING("You need a multitool!")) - return - if (src.isWireColorCut(t1)) - to_chat(usr, SPAN_WARNING("You can't pulse a cut wire.")) - return - else - src.pulse(t1) - else if (href_list["close2"]) - close_browser(usr, "borgwires") - usr.unset_interaction() - return - -#undef BORG_WIRE_LAWCHECK -#undef BORG_WIRE_MAIN_POWER1 -#undef BORG_WIRE_MAIN_POWER2 -#undef BORG_WIRE_AI_CONTROL -#undef BORG_WIRE_CAMERA diff --git a/code/modules/mob/living/silicon/say.dm b/code/modules/mob/living/silicon/say.dm index 3ee58585b524..6cf271738bf5 100644 --- a/code/modules/mob/living/silicon/say.dm +++ b/code/modules/mob/living/silicon/say.dm @@ -8,9 +8,6 @@ return speak_statement -#define IS_AI 1 -#define IS_ROBOT 2 - /mob/living/silicon/say_understands(mob/other, datum/language/speaking = null) //These only pertain to common. Languages are handled by mob/say_understands() if (!speaking) @@ -42,16 +39,7 @@ if(!findtext(message, "*", 2)) //Second asterisk means it is markup for *bold*, not an *emote. return emote(lowertext(copytext(message,2))) - var/bot_type = 0 //Let's not do a fuck ton of type checks, thanks. - if(isAI(src)) - bot_type = IS_AI - else if(isrobot(src)) - bot_type = IS_ROBOT - - var/mob/living/silicon/ai/AI = src //and let's not declare vars over and over and over for these guys. - var/mob/living/silicon/robot/R = src - - //Must be concious to speak + //Must be conscious to speak if (stat) return @@ -91,84 +79,13 @@ if(M.client) to_chat(M, "[src] transmits, \")[message]\"") return - if(message_mode && bot_type == IS_ROBOT && !R.is_component_functioning("radio")) - to_chat(src, SPAN_DANGER("Your radio isn't functional at this time.")) - return - switch(message_mode) if("department") - switch(bot_type) - if(IS_AI) - return AI.holopad_talk(message) - if(IS_ROBOT) - log_say("[key_name(src)] : [message]") - R.radio.talk_into(src,message,message_mode,verb,speaking) return 1 - if("general") - switch(bot_type) - if(IS_AI) - if (AI.aiRadio.disabledAi) - to_chat(src, SPAN_DANGER("System Error - Transceiver Disabled")) - return - else - log_say("[key_name(src)] : [message]") - AI.aiRadio.talk_into(src,message,null,verb,speaking) - if(IS_ROBOT) - log_say("[key_name(src)] : [message]") - R.radio.talk_into(src,message,null,verb,speaking) return 1 - else if(message_mode) - switch(bot_type) - if(IS_AI) - if (AI.aiRadio.disabledAi) - to_chat(src, SPAN_DANGER("System Error - Transceiver Disabled")) - return - else - log_say("[key_name(src)] : [message]") - AI.aiRadio.talk_into(src,message,message_mode,verb,speaking) - if(IS_ROBOT) - log_say("[key_name(src)] : [message]") - R.radio.talk_into(src,message,message_mode,verb,speaking) return 1 return ..(message,speaking,verb) - -//For holopads only. Usable by AI. -/mob/living/silicon/ai/proc/holopad_talk(message) - - log_say("[key_name(src)] : [message]") - - message = trim(message) - - if (!message) - return - - var/obj/structure/machinery/hologram/holopad/T = src.holo - if(T && T.hologram && T.master == src)//If there is a hologram and its master is the user. - var/verb = say_quote(message) - - //Human-like, sorta, heard by those who understand humans. - var/rendered_a = "[name] [verb], \"[message]\"" - //Speach distorted, heard by those who do not understand AIs. - var/message_stars = stars(message) - - var/rendered_b = "[voice_name] [verb], \"[message_stars]\"" - - to_chat(src, "Holopad transmitted, [real_name] [verb], [message]")//The AI can "hear" its own message. - for(var/mob/M in hearers(T.loc))//The location is the object, default distance. - if(M.say_understands(src))//If they understand AI speak. Humans and the like will be able to. - M.show_message(rendered_a, SHOW_MESSAGE_AUDIBLE) - else//If they do not. - M.show_message(rendered_b, SHOW_MESSAGE_AUDIBLE) - /*Radios "filter out" this conversation channel so we don't need to account for them. - This is another way of saying that we won't bother dealing with them.*/ - else - to_chat(src, "No holopad connected.") - return - return 1 - -#undef IS_AI -#undef IS_ROBOT diff --git a/code/modules/mob/living/silicon/silicon.dm b/code/modules/mob/living/silicon/silicon.dm index 7f95e3d695b5..eb3fe5cd47e7 100644 --- a/code/modules/mob/living/silicon/silicon.dm +++ b/code/modules/mob/living/silicon/silicon.dm @@ -10,7 +10,6 @@ var/speak_exclamation = "declares" var/speak_query = "queries" var/pose //Yes, now AIs can pose too. - var/obj/item/device/camera/siliconcam/aiCamera = null //photography var/local_transmit //If set, can only speak to others of the same type within a short range. var/med_hud = MOB_HUD_MEDICAL_ADVANCED //Determines the med hud to use @@ -61,18 +60,11 @@ /mob/living/silicon/apply_effect(effect = 0, effecttype = STUN, blocked = 0) return 0//The only effect that can hit them atm is flashes and they still directly edit so this works for now -/proc/islinked(mob/living/silicon/robot/bot, mob/living/silicon/ai/ai) - if(!istype(bot) || !istype(ai)) - return 0 - if (bot.connected_ai == ai) - return 1 - return 0 - // this function shows health in the Status panel /mob/living/silicon/proc/show_system_integrity() if(!stat) - stat(null, text("System integrity: [round((health/maxHealth)*100)]%")) + stat(null, text("System integrity: [floor((health/maxHealth)*100)]%")) else stat(null, text("Systems nonfunctional")) @@ -153,7 +145,7 @@ H = GLOB.huds[MOB_HUD_SECURITY_ADVANCED] HUD_nbr = 2 if("Squad HUD") - H = GLOB.huds[MOB_HUD_FACTION_USCM] + H = GLOB.huds[MOB_HUD_FACTION_MARINE] HUD_nbr = 3 else return diff --git a/code/modules/mob/living/simple_animal/friendly/cat.dm b/code/modules/mob/living/simple_animal/friendly/cat.dm index d4b8c4ad4960..272bc289b2ec 100644 --- a/code/modules/mob/living/simple_animal/friendly/cat.dm +++ b/code/modules/mob/living/simple_animal/friendly/cat.dm @@ -32,7 +32,7 @@ ) /// The cat will 'play' with dead hunted targets near it until this counter reaches a certain value. var/play_counter = 0 - min_oxy = 16 //Require atleast 16kPA oxygen + min_oxy = 16 //Require at least 16kPA oxygen minbodytemp = 223 //Below -50 Degrees Celcius maxbodytemp = 323 //Above 50 Degrees Celcius holder_type = /obj/item/holder/cat diff --git a/code/modules/mob/living/simple_animal/friendly/corgi.dm b/code/modules/mob/living/simple_animal/friendly/corgi.dm index 8edc7116628e..5b896203a704 100644 --- a/code/modules/mob/living/simple_animal/friendly/corgi.dm +++ b/code/modules/mob/living/simple_animal/friendly/corgi.dm @@ -204,8 +204,6 @@ alone = 0 break if(alone && ian && puppies < 4) - if(near_camera(src) || near_camera(ian)) - return new /mob/living/simple_animal/corgi/puppy(loc) diff --git a/code/modules/mob/living/simple_animal/friendly/farm_animals.dm b/code/modules/mob/living/simple_animal/friendly/farm_animals.dm index b85f188558b1..47b54196301d 100644 --- a/code/modules/mob/living/simple_animal/friendly/farm_animals.dm +++ b/code/modules/mob/living/simple_animal/friendly/farm_animals.dm @@ -39,10 +39,10 @@ . = ..() if(.) //chance to go crazy and start wacking stuff - if(!enemies.len && prob(1)) + if(!length(enemies) && prob(1)) Retaliate() - if(enemies.len && prob(10)) + if(length(enemies) && prob(10)) enemies = list() LoseTarget() src.visible_message(SPAN_NOTICE("[src] calms down.")) diff --git a/code/modules/mob/living/simple_animal/friendly/mouse.dm b/code/modules/mob/living/simple_animal/friendly/mouse.dm index 11064634d498..182bc2525c17 100644 --- a/code/modules/mob/living/simple_animal/friendly/mouse.dm +++ b/code/modules/mob/living/simple_animal/friendly/mouse.dm @@ -22,7 +22,7 @@ density = FALSE var/body_color //brown, gray and white, leave blank for random layer = ABOVE_LYING_MOB_LAYER - min_oxy = 16 //Require atleast 16kPA oxygen + min_oxy = 16 //Require at least 16kPA oxygen minbodytemp = 223 //Below -50 Degrees Celcius maxbodytemp = 323 //Above 50 Degrees Celcius universal_speak = 0 @@ -77,6 +77,7 @@ src.icon_dead = "mouse_[body_color]_splat" src.icon_state = "mouse_[body_color]_splat" layer = ABOVE_LYING_MOB_LAYER + set_body_position(LYING_DOWN) if(client) client.time_died_as_mouse = world.time diff --git a/code/modules/mob/living/simple_animal/friendly/spiderbot.dm b/code/modules/mob/living/simple_animal/friendly/spiderbot.dm index 1e1c15d173b7..cb4d02cd28ec 100644 --- a/code/modules/mob/living/simple_animal/friendly/spiderbot.dm +++ b/code/modules/mob/living/simple_animal/friendly/spiderbot.dm @@ -6,7 +6,6 @@ minbodytemp = 0 maxbodytemp = 500 - var/obj/item/device/radio/borg/radio = null var/mob/living/silicon/ai/connected_ai = null var/obj/item/cell/cell = null var/obj/structure/machinery/camera/camera = null @@ -174,7 +173,6 @@ /mob/living/simple_animal/spiderbot/New() - radio = new /obj/item/device/radio/borg(src) camera = new /obj/structure/machinery/camera(src) camera.c_tag = "Spiderbot-[real_name]" camera.network = list("SS13") diff --git a/code/modules/mob/living/simple_animal/hostile/alien.dm b/code/modules/mob/living/simple_animal/hostile/alien.dm index 6e8d0b8a2867..3f9a51355292 100644 --- a/code/modules/mob/living/simple_animal/hostile/alien.dm +++ b/code/modules/mob/living/simple_animal/hostile/alien.dm @@ -110,7 +110,7 @@ wound_icon_holder.layer = layer + 0.01 wound_icon_holder.dir = dir - var/health_threshold = max(CEILING((health * 4) / (maxHealth), 1), 0) //From 0 to 4, in 25% chunks + var/health_threshold = max(ceil((health * 4) / (maxHealth)), 0) //From 0 to 4, in 25% chunks if(health > HEALTH_THRESHOLD_DEAD) if(health_threshold > 3) wound_icon_holder.icon_state = "none" diff --git a/code/modules/mob/living/simple_animal/hostile/retaliate/retaliate.dm b/code/modules/mob/living/simple_animal/hostile/retaliate/retaliate.dm index 79abd5cc7e0d..4c16c60d4835 100644 --- a/code/modules/mob/living/simple_animal/hostile/retaliate/retaliate.dm +++ b/code/modules/mob/living/simple_animal/hostile/retaliate/retaliate.dm @@ -13,7 +13,7 @@ enemies -= L /mob/living/simple_animal/hostile/retaliate/ListTargets() - if(!enemies.len) + if(!length(enemies)) return list() var/list/see = ..() see &= enemies // Remove all entries that aren't in enemies diff --git a/code/modules/mob/living/simple_animal/parrot.dm b/code/modules/mob/living/simple_animal/parrot.dm index 41f539d85aab..feb70f6f1b79 100644 --- a/code/modules/mob/living/simple_animal/parrot.dm +++ b/code/modules/mob/living/simple_animal/parrot.dm @@ -107,23 +107,6 @@ walk(src,0) . = ..() -/* - * Inventory - */ -/mob/living/simple_animal/parrot/show_inv(mob/user as mob) - user.set_interaction(src) - if(user.stat) return - - var/dat = "
            Inventory of [name]

            " - if(ears) - dat += "
            Headset: [ears] (Remove)" - else - dat += "
            Headset: Nothing" - - user << browse(dat, text("window=mob[];size=325x500", name)) - onclose(user, "mob[real_name]") - return - /mob/living/simple_animal/parrot/Topic(href, href_list) //Can the usr physically do this? @@ -131,7 +114,7 @@ return //Is the usr's mob type able to do this? - if(ishuman(usr) || isrobot(usr)) + if(ishuman(usr)) //Removing from inventory if(href_list["remove_inv"]) @@ -139,7 +122,7 @@ switch(remove_from) if("ears") if(ears) - if(available_channels.len) + if(length(available_channels)) src.say("[pick(available_channels)] BAWWWWWK LEAVE THE HEADSET BAWKKKKK!") else src.say("BAWWWWWK LEAVE THE HEADSET BAWKKKKK!") @@ -293,8 +276,8 @@ Phrases that the parrot hears in mob/living/say() get added to speach_buffer. Every once in a while, the parrot picks one of the lines from the buffer and replaces an element of the 'speech' list. Then it clears the buffer to make sure they dont magically remember something from hours ago. */ - if(speech_buffer.len && prob(10)) - if(speak.len) + if(length(speech_buffer) && prob(10)) + if(length(speak)) speak.Remove(pick(speak)) speak.Add(pick(speech_buffer)) @@ -321,10 +304,10 @@ parrot_sleep_dur = parrot_sleep_max //Cycle through message modes for the headset - if(speak.len) + if(length(speak)) var/list/newspeak = list() - if(available_channels.len && src.ears) + if(length(available_channels) && src.ears) for(var/possible_phrase in speak) //50/50 chance to not use the radio at all @@ -702,7 +685,7 @@ return var/verb = "says" - if(speak_emote.len) + if(length(speak_emote)) verb = pick(speak_emote) diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm index 13d7c6d9b2ca..f3b8da1a2d76 100644 --- a/code/modules/mob/living/simple_animal/simple_animal.dm +++ b/code/modules/mob/living/simple_animal/simple_animal.dm @@ -56,6 +56,8 @@ black_market_value = 25 dead_black_market_value = 0 + mobility_flags = MOBILITY_FLAGS_LYING_CAPABLE_DEFAULT + /mob/living/simple_animal/Initialize() . = ..() SSmob.living_misc_mobs += src @@ -93,10 +95,6 @@ if(health > maxHealth) health = maxHealth - handle_stunned() - handle_knocked_down(TRUE) - handle_knocked_out(TRUE) - //Movement if(!client && !stop_automated_movement && wander && !anchored) if(isturf(src.loc) && !resting && !buckled && (mobility_flags & MOBILITY_MOVE)) //This is so it only moves if it's not inside a closet, gentics machine, etc. @@ -111,33 +109,33 @@ //Speaking if(!client && speak_chance) if(rand(0,200) < speak_chance) - if(speak && speak.len) - if((emote_hear && emote_hear.len) || (emote_see && emote_see.len)) - var/length = speak.len - if(emote_hear && emote_hear.len) - length += emote_hear.len - if(emote_see && emote_see.len) - length += emote_see.len + if(LAZYLEN(speak)) + if(LAZYLEN(emote_hear) || LAZYLEN(emote_see)) + var/length = length(speak) + if(LAZYLEN(emote_hear)) + length += length(emote_hear) + if(LAZYLEN(emote_see)) + length += length(emote_see) var/randomValue = rand(1,length) - if(randomValue <= speak.len) + if(randomValue <= length(speak)) INVOKE_ASYNC(src, PROC_REF(say), pick(speak)) else - randomValue -= speak.len - if(emote_see && randomValue <= emote_see.len) + randomValue -= length(speak) + if(emote_see && randomValue <= length(emote_see)) INVOKE_ASYNC(src, PROC_REF(manual_emote), pick(emote_see),1) else INVOKE_ASYNC(src, PROC_REF(manual_emote), pick(emote_hear),2) else INVOKE_ASYNC(src, PROC_REF(say), pick(speak)) else - if(!(emote_hear && emote_hear.len) && (emote_see && emote_see.len)) + if(!LAZYLEN(emote_hear) && LAZYLEN(emote_see)) INVOKE_ASYNC(src, PROC_REF(manual_emote), pick(emote_see),1) - if((emote_hear && emote_hear.len) && !(emote_see && emote_see.len)) + if(LAZYLEN(emote_hear) && !LAZYLEN(emote_see)) INVOKE_ASYNC(src, PROC_REF(manual_emote), pick(emote_hear),2) - if((emote_hear && emote_hear.len) && (emote_see && emote_see.len)) - var/length = emote_hear.len + emote_see.len + if(LAZYLEN(emote_hear) && LAZYLEN(emote_see)) + var/length = length(emote_hear) + length(emote_see) var/pick = rand(1,length) - if(pick <= emote_see.len) + if(pick <= length(emote_see)) INVOKE_ASYNC(src, PROC_REF(manual_emote), pick(emote_see),1) else INVOKE_ASYNC(src, PROC_REF(manual_emote), pick(emote_hear),2) @@ -214,6 +212,7 @@ SSmob.living_misc_mobs -= src icon_state = icon_dead black_market_value = dead_black_market_value + set_body_position(LYING_DOWN) /mob/living/simple_animal/gib(datum/cause_data/cause = create_cause_data("gibbing", src)) @@ -327,7 +326,7 @@ explosion_throw(severity, direction) /mob/living/simple_animal/adjustBruteLoss(damage) - health = Clamp(health - damage, 0, maxHealth) + health = clamp(health - damage, 0, maxHealth) /mob/living/simple_animal/proc/SA_attackable(target_mob) if (isliving(target_mob)) @@ -353,7 +352,7 @@ var/verb = "says" - if(speak_emote.len) + if(length(speak_emote)) verb = pick(speak_emote) message = capitalize(trim_left(message)) diff --git a/code/modules/mob/login.dm b/code/modules/mob/login.dm index 775e69dc0b92..38157a067367 100644 --- a/code/modules/mob/login.dm +++ b/code/modules/mob/login.dm @@ -18,6 +18,8 @@ update_Login_details() + SEND_SIGNAL(src, COMSIG_MOB_LOGIN) + client.images = null client.screen = null //remove hud items just in case if(!hud_used) @@ -58,6 +60,6 @@ client.init_verbs() - SEND_GLOBAL_SIGNAL(COMSIG_GLOB_MOB_LOGIN, src) - SEND_SIGNAL(client, COMSIG_CLIENT_MOB_LOGIN, src) - SEND_SIGNAL(src, COMSIG_MOB_LOGIN) + SEND_GLOBAL_SIGNAL(COMSIG_GLOB_MOB_LOGGED_IN, src) + SEND_SIGNAL(client, COMSIG_CLIENT_MOB_LOGGED_IN, src) + SEND_SIGNAL(src, COMSIG_MOB_LOGGED_IN) diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index c256f05e74b4..0a24468cc176 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -102,6 +102,8 @@ I = image('icons/mob/hud/sec_hud.dmi', src, "") if(HUNTER_CLAN,HUNTER_HUD) I = image('icons/mob/hud/hud_yautja.dmi', src, "") + if(HOLOCARD_HUD) + I = image('icons/mob/hud/marine_hud.dmi', src, "") I.appearance_flags |= NO_CLIENT_COLOR|KEEP_APART|RESET_COLOR hud_list[hud] = I @@ -370,25 +372,6 @@ SIGNAL_HANDLER reset_view(null) -/mob/proc/show_inv(mob/user) - user.set_interaction(src) - var/dat = {" -


            [name] -

            -
            Head(Mask): [(wear_mask ? wear_mask : "Nothing")] -
            Left Hand: [(l_hand ? l_hand : "Nothing")] -
            Right Hand: [(r_hand ? r_hand : "Nothing")] -
            Back: [(back ? back : "Nothing")] [((istype(wear_mask, /obj/item/clothing/mask) && istype(back, /obj/item/tank) && !( internal )) ? text(" Set Internal", src) : "")] -
            [(internal ? text("Remove Internal") : "")] -
            Empty Pockets -
            Refresh -
            Close -
            "} - show_browser(user, dat, name, "mob[name]") - return - - - /mob/proc/point_to_atom(atom/A, turf/T) //Squad Leaders and above have reduced cooldown and get a bigger arrow if(check_improved_pointing()) @@ -446,23 +429,9 @@ update_flavor_text() return - -/mob/MouseDrop(mob/M) - ..() - if(M != usr) return - if(usr == src) return - if(!Adjacent(usr)) return - if(!ishuman(M) && !ismonkey(M)) return - if(!ishuman(src) && !ismonkey(src)) return - if(M.is_mob_incapacitated()) - return - if(M.pulling == src && (M.a_intent & INTENT_GRAB) && M.grab_level == GRAB_AGGRESSIVE) - return - - show_inv(M) - /mob/proc/swap_hand() hand = !hand + SEND_SIGNAL(src, COMSIG_MOB_SWAPPED_HAND) //attempt to pull/grab something. Returns true upon success. /mob/proc/start_pulling(atom/movable/AM, lunge, no_msg) @@ -693,7 +662,7 @@ note dizziness decrements automatically in the mob's Life() proc. // facing verbs /mob/proc/canface() - if(client.moving) return 0 + if(client?.moving) return 0 if(stat==2) return 0 if(anchored) return 0 if(monkeyizing) return 0 @@ -760,7 +729,7 @@ note dizziness decrements automatically in the mob's Life() proc. recalculate_move_delay = TRUE if(usr.stat) - to_chat(usr, "You are unconcious and cannot do that!") + to_chat(usr, "You are unconscious and cannot do that!") return if(usr.is_mob_restrained()) @@ -802,7 +771,7 @@ note dizziness decrements automatically in the mob's Life() proc. else visible_message(SPAN_WARNING("[usr] rips [selection] out of [src]'s body."),SPAN_WARNING("[usr] rips [selection] out of your body."), null, 5) - if(valid_objects.len == 1) //Yanking out last object - removing verb. + if(length(valid_objects) == 1) //Yanking out last object - removing verb. remove_verb(src, /mob/proc/yank_out_object) if(ishuman(src)) @@ -833,28 +802,18 @@ note dizziness decrements automatically in the mob's Life() proc. selection.forceMove(get_turf(src)) return TRUE +///Can this mob resist (default FALSE) +/mob/proc/can_resist() + return FALSE + /mob/living/proc/handle_statuses() - handle_stunned() - handle_knocked_down() - handle_knocked_out() handle_stuttering() handle_silent() handle_drugged() handle_slurring() - handle_dazed() handle_slowed() handle_superslowed() -/mob/living/proc/handle_stunned() - if(stunned) - adjust_effect(-1, STUN) - return stunned - -/mob/living/proc/handle_dazed() - if(dazed) - adjust_effect(-1, DAZE) - return dazed - /mob/living/proc/handle_slowed() if(slowed) adjust_effect(-1, SLOW) @@ -865,19 +824,6 @@ note dizziness decrements automatically in the mob's Life() proc. adjust_effect(-1, SUPERSLOW) return superslowed - -/mob/living/proc/handle_knocked_down(bypass_client_check = FALSE) - if(knocked_down && (bypass_client_check || client)) - knocked_down = max(knocked_down-1,0) - knocked_down_callback_check() - return knocked_down - -/mob/living/proc/handle_knocked_out(bypass_client_check = FALSE) - if(knocked_out && (bypass_client_check || client)) - knocked_out = max(knocked_out-1,0) - knocked_out_callback_check() - return knocked_out - /mob/living/proc/handle_stuttering() if(stuttering) stuttering = max(stuttering-1, 0) @@ -1006,6 +952,7 @@ note dizziness decrements automatically in the mob's Life() proc. /// Adds this list to the output to the stat browser /mob/proc/get_status_tab_items() . = list() + SEND_SIGNAL(src, COMSIG_MOB_GET_STATUS_TAB_ITEMS, .) /mob/proc/get_role_name() return @@ -1073,3 +1020,14 @@ note dizziness decrements automatically in the mob's Life() proc. /mob/proc/update_stat() return + +/// Send src back to the lobby as a `/mob/new_player()` +/mob/proc/send_to_lobby() + var/mob/new_player/new_player = new + + if(!mind) + mind_initialize() + + mind.transfer_to(new_player) + + qdel(src) diff --git a/code/modules/mob/mob_defines.dm b/code/modules/mob/mob_defines.dm index f0e5bc48a855..9806e5ce949c 100644 --- a/code/modules/mob/mob_defines.dm +++ b/code/modules/mob/mob_defines.dm @@ -16,19 +16,17 @@ var/atom/movable/screen/hands = null //robot - var/adminhelp_marked = 0 // Prevents marking an Adminhelp more than once. Making this a client define will cause runtimes and break some Adminhelps - var/adminhelp_marked_admin = "" // Ckey of last marking admin - /// a ckey that persists client logout / ghosting, replaced when a client inhabits the mob var/persistent_ckey /*A bunch of this stuff really needs to go under their own defines instead of being globally attached to mob. A variable should only be globally attached to turfs/obj/whatever, when it is in fact needed as such. - The current method unnecessarily clusters up the variable list, especially for humans (although rearranging won't really clean it up a lot but the difference will be noticable for other mobs). + The current method unnecessarily clusters up the variable list, especially for humans (although rearranging won't really clean it up a lot but the difference will be noticeable for other mobs). I'll make some notes on where certain variable defines should probably go. Changing this around would probably require a good look-over the pre-existing code. */ - var/list/observers //The list of people observing this mob. + /// The list of people observing this mob. + var/list/mob/dead/observer/observers var/zone_selected = "chest" var/use_me = 1 //Allows all mobs to use the me verb by default, will have to manually specify they cannot @@ -165,7 +163,7 @@ var/datum/skills/skills = null //the knowledge you have about certain abilities and actions (e.g. do you how to do surgery?) //see skills.dm in #define folder and code/datums/skills.dm for more info - var/obj/item/legcuffs/legcuffed = null //Same as handcuffs but for legs. Bear traps use this. + var/obj/item/restraint/legcuffs/legcuffed = null //Same as handcuffs but for legs. Bear traps use this. var/list/viruses = list() //List of active diseases @@ -174,7 +172,7 @@ mouse_drag_pointer = MOUSE_ACTIVE_POINTER - var/status_flags = CANKNOCKDOWN|CANPUSH|STATUS_FLAGS_DEBILITATE //bitflags defining which status effects can be inflicted (replaces canweaken, canstun, etc) + var/status_flags = DEFAULT_MOB_STATUS_FLAGS //bitflags defining which status effects can be inflicted (replaces canweaken, canstun, etc) var/area/lastarea = null var/obj/control_object //Used by admins to possess objects. All mobs should have this var @@ -366,10 +364,6 @@ switch(type) if(/mob/living/carbon/human) possibleverbs += typesof(/mob/living/carbon/proc,/mob/living/carbon/verb,/mob/living/carbon/human/verb,/mob/living/carbon/human/proc) - if(/mob/living/silicon/robot) - possibleverbs += typesof(/mob/living/silicon/proc,/mob/living/silicon/robot/proc,/mob/living/silicon/robot/verb) - if(/mob/living/silicon/ai) - possibleverbs += typesof(/mob/living/silicon/proc,/mob/living/silicon/ai/proc) possibleverbs -= verbs possibleverbs += "Cancel" // ...And one for the bottom @@ -403,7 +397,7 @@ if(!check_rights(R_SPAWN)) return - if(!languages.len) + if(!length(languages)) to_chat(usr, "This mob knows no languages.") return @@ -433,4 +427,3 @@ return src.regenerate_icons() - diff --git a/code/modules/mob/mob_grab.dm b/code/modules/mob/mob_grab.dm index 071728195e3f..9dcdae3635cb 100644 --- a/code/modules/mob/mob_grab.dm +++ b/code/modules/mob/mob_grab.dm @@ -87,6 +87,10 @@ ADD_TRAIT(victim, TRAIT_FLOORED, CHOKEHOLD_TRAIT) /obj/item/grab/proc/progress_passive(mob/living/carbon/human/user, mob/living/victim) + if(SEND_SIGNAL(victim, COMSIG_MOB_AGGRESSIVELY_GRABBED, user) & COMSIG_MOB_AGGRESIVE_GRAB_CANCEL) + to_chat(user, SPAN_WARNING("You can't grab [victim] aggressively!")) + return + user.grab_level = GRAB_AGGRESSIVE playsound(src.loc, 'sound/weapons/thudswoosh.ogg', 25, 1, 7) user.visible_message(SPAN_WARNING("[user] has grabbed [victim] aggressively!"), null, null, 5) @@ -115,7 +119,7 @@ if(pulled.stat == DEAD && !pulled.chestburst) to_chat(xeno, SPAN_WARNING("Ew, [pulled] is already starting to rot.")) return 0 - if(xeno.stomach_contents.len) //Only one thing in the stomach at a time, please + if(length(xeno.stomach_contents)) //Only one thing in the stomach at a time, please to_chat(xeno, SPAN_WARNING("You already have something in your belly, there's no way that will fit.")) return 0 /* Saving this in case we want to allow devouring of dead bodies UNLESS their client is still online somewhere @@ -126,22 +130,24 @@ to_chat(src, "You start to devour [pulled] but realize \he is already dead.") return */ if(user.action_busy) - to_chat(xeno, SPAN_WARNING("You are already busy with something.")) + to_chat(xeno, SPAN_WARNING("We are already busy with something.")) return + SEND_SIGNAL(xeno, COMSIG_MOB_EFFECT_CLOAK_CANCEL) xeno.visible_message(SPAN_DANGER("[xeno] starts to devour [pulled]!"), \ - SPAN_DANGER("You start to devour [pulled]!"), null, 5) + SPAN_DANGER("We start to devour [pulled]!"), null, 5) if(HAS_TRAIT(xeno, TRAIT_CLOAKED)) //cloaked don't show the visible message, so we gotta work around to_chat(pulled, FONT_SIZE_HUGE(SPAN_DANGER("[xeno] is trying to devour you!"))) if(do_after(xeno, 50, INTERRUPT_NO_NEEDHAND, BUSY_ICON_HOSTILE)) - if(isxeno(pulled.loc) && !xeno.stomach_contents.len) + if(isxeno(pulled.loc) && !length(xeno.stomach_contents)) to_chat(xeno, SPAN_WARNING("Someone already ate \the [pulled].")) return 0 - if(xeno.pulling == pulled && !pulled.buckled && (pulled.stat != DEAD || pulled.chestburst) && !xeno.stomach_contents.len) //make sure you've still got them in your claws, and alive + if(xeno.pulling == pulled && !pulled.buckled && (pulled.stat != DEAD || pulled.chestburst) && !length(xeno.stomach_contents)) //make sure you've still got them in your claws, and alive if(SEND_SIGNAL(pulled, COMSIG_MOB_DEVOURED, xeno) & COMPONENT_CANCEL_DEVOUR) return FALSE xeno.visible_message(SPAN_WARNING("[xeno] devours [pulled]!"), \ - SPAN_WARNING("You devour [pulled]!"), null, 5) + SPAN_WARNING("We devour [pulled]!"), null, 5) + log_interact(xeno, pulled, "[key_name(xeno)] devoured [key_name(pulled)] at [get_area_name(xeno)]") if(ishuman(pulled)) var/mob/living/carbon/human/pulled_human = pulled @@ -153,5 +159,5 @@ pulled.forceMove(xeno) return TRUE if(!(pulled in xeno.stomach_contents)) - to_chat(xeno, SPAN_WARNING("You stop devouring \the [pulled]. \He probably tasted gross anyways.")) + to_chat(xeno, SPAN_WARNING("We stop devouring [pulled]. They probably tasted gross anyways.")) return 0 diff --git a/code/modules/mob/mob_helpers.dm b/code/modules/mob/mob_helpers.dm index 5d1baac3a534..37a6c46c23cc 100644 --- a/code/modules/mob/mob_helpers.dm +++ b/code/modules/mob/mob_helpers.dm @@ -131,6 +131,72 @@ GLOBAL_LIST_INIT(limb_types_by_name, list( index++ return output_message +/** + * Summary: proc that parses an html input string and scrambles the non-html string contents. + * + * Arguments: + * * message - an html string value to be parsed and modified. + * + * Return: + * returns the parsed and modified html output with the text content being partially scrambled with asteriks + */ +/proc/stars_decode_html(message) + if(!length(message)) + return + + // boolean value to know if the current indexed element needs to be scrambled. + var/parsing_message = FALSE + + // boolean values to know if we are currently inside a double or single quotation. + var/in_single_quote = FALSE + var/in_double_quote = FALSE + + // string of what tag we're currently in + var/current_tag = "" + var/escaped_tag = FALSE + + // string that will be scrambled + var/current_string_to_scramble = "" + + // output string after parse + var/output_message = "" + for(var/character_index in 1 to length(message)) + var/current_char = message[character_index] + + // Apparent edge case safety, we only want to check the < and > on the edges of the tag. + if(!parsing_message) + if(current_char == "'") + in_single_quote = !in_single_quote + if(current_char == "\"") + in_double_quote = !in_double_quote + if(in_single_quote || in_double_quote) + output_message += current_char + continue + + if(current_char == ">") + parsing_message = TRUE + output_message += current_char + current_tag += current_char + if(findtext(current_tag, "") == 1 || findtext(current_tag, " world.time)) @@ -260,12 +326,12 @@ GLOBAL_LIST_INIT(limb_types_by_name, list( var/old_X = M.client.pixel_x var/old_y = M.client.pixel_y - animate(M.client, pixel_x = old_X + rand(-(strength), strength), pixel_y = old_y + rand(-(strength), strength), easing = JUMP_EASING, time = time_per_step, flags = ANIMATION_PARALLEL) + animate(M.client, pixel_x = old_X + rand(-(strength), strength), pixel_y = old_y + rand(-(strength), strength), easing = CUBIC_EASING | EASE_IN, time = time_per_step, flags = ANIMATION_PARALLEL) var/i = 1 while(i < steps) - animate(pixel_x = old_X + rand(-(strength), strength), pixel_y = old_y + rand(-(strength), strength), easing = JUMP_EASING, time = time_per_step) + animate(pixel_x = old_X + rand(-(strength), strength), pixel_y = old_y + rand(-(strength), strength), easing = CUBIC_EASING | EASE_IN, time = time_per_step) i++ - animate(pixel_x = old_X, pixel_y = old_y,time = Clamp(Floor(strength/PIXELS_PER_STRENGTH_VAL),2,4))//ease it back + animate(pixel_x = old_X, pixel_y = old_y,time = clamp(floor(strength/PIXELS_PER_STRENGTH_VAL),2,4))//ease it back #undef PIXELS_PER_STRENGTH_VAL @@ -276,7 +342,7 @@ GLOBAL_LIST_INIT(limb_types_by_name, list( return FALSE -/mob/proc/abiotic(full_body = 0) +/mob/proc/abiotic(full_body = FALSE) if(full_body && ((src.l_hand && !( src.l_hand.flags_item & ITEM_ABSTRACT )) || (src.r_hand && !( src.r_hand.flags_item & ITEM_ABSTRACT )) || (src.back || src.wear_mask))) return TRUE @@ -308,79 +374,28 @@ GLOBAL_LIST_INIT(limb_types_by_name, list( if(hud_used && hud_used.action_intent) hud_used.action_intent.icon_state = "intent_[intent_text(a_intent)]" + SEND_SIGNAL(src, COMSIG_MOB_INTENT_CHANGE, a_intent) + /mob/proc/is_mob_restrained() return /// Returns if the mob is incapacitated and unable to perform general actions /mob/proc/is_mob_incapacitated(ignore_restrained) - // note that stat includes knockout via unconscious - // TODO: re-re-re-figure out if we need TRAIT_FLOORED here or using TRAIT_INCAPACITATED only is acceptable deviance from legacy behavior return (stat || (!ignore_restrained && is_mob_restrained()) || (status_flags & FAKEDEATH) || HAS_TRAIT(src, TRAIT_INCAPACITATED)) + /mob/proc/get_eye_protection() return EYE_PROTECTION_NONE -/mob/proc/a_select_zone(input, client/user) - var/atom/movable/screen/zone_sel/zone - - for(var/A in user.screen) - if(istype(A, /atom/movable/screen/zone_sel)) - zone = A - - if(!zone) +/// Change the mob's selected body zone to `target_zone`. +/mob/proc/select_body_zone(target_zone) + if(!target_zone || !hud_used?.zone_sel) return - switch(input) - if("head") - switch(usr.zone_selected) - if("head") - zone.selecting = "eyes" - if("eyes") - zone.selecting = "mouth" - if("mouth") - zone.selecting = "head" - else - zone.selecting = "head" - if("chest") - zone.selecting = "chest" - if("groin") - zone.selecting = "groin" - if("rarm") - switch(usr.zone_selected) - if("r_arm") - zone.selecting = "r_hand" - if("r_hand") - zone.selecting = "r_arm" - else - zone.selecting = "r_arm" - if("larm") - switch(usr.zone_selected) - if("l_arm") - zone.selecting = "l_hand" - if("l_hand") - zone.selecting = "l_arm" - else - zone.selecting = "l_arm" - if("rleg") - switch(usr.zone_selected) - if("r_leg") - zone.selecting = "r_foot" - if("r_foot") - zone.selecting = "r_leg" - else - zone.selecting = "r_leg" - if("lleg") - switch(usr.zone_selected) - if("l_leg") - zone.selecting = "l_foot" - if("l_foot") - zone.selecting = "l_leg" - else - zone.selecting = "l_leg" - if("next") - zone.selecting = next_in_list(usr.zone_selected, DEFENSE_ZONES_LIVING) - if("prev") - zone.selecting = prev_in_list(usr.zone_selected, DEFENSE_ZONES_LIVING) - zone.update_icon(usr) + // Update the mob's selected zone. + zone_selected = target_zone + // Update the HUD's selected zone. + hud_used.zone_sel.selecting = target_zone + hud_used.zone_sel.update_icon() #define DURATION_MULTIPLIER_TIER_1 0.75 #define DURATION_MULTIPLIER_TIER_2 0.5 @@ -415,7 +430,9 @@ GLOBAL_LIST_INIT(limb_types_by_name, list( // Medical if(SKILL_MEDICAL) if(skillcheck(src, SKILL_MEDICAL, SKILL_MEDICAL_MASTER)) - return DURATION_MULTIPLIER_TIER_3 + return 0.35 + if(skillcheck(src, SKILL_MEDICAL, SKILL_MEDICAL_DOCTOR)) + return DURATION_MULTIPLIER_TIER_1 // Surgeon if(SKILL_SURGERY) if(skillcheck(src, SKILL_SURGERY, SKILL_SURGERY_EXPERT)) @@ -467,7 +484,7 @@ GLOBAL_LIST_INIT(limb_types_by_name, list( * [this byond forum post](https://secure.byond.com/forum/?post=1326139&page=2#comment8198716) * for why this isn't atom/verb/examine() */ -/mob/verb/examinate(atom/examinify as mob|obj|turf in view()) +/mob/verb/examinate(atom/examinify as mob|obj|turf in view(28, usr)) set name = "Examine" set category = "IC" @@ -534,7 +551,10 @@ GLOBAL_LIST_INIT(limb_types_by_name, list( for(var/mob/dead/observer/ghost as anything in GLOB.observer_list) if(!ghost.client) continue - ghost.notify_ghost(message, ghost_sound, enter_link, enter_text, source, alert_overlay, action, flashwindow, ignore_mapload, ignore_key, header, notify_volume, extra_large) + var/specific_ghost_sound = ghost_sound + if(!(ghost.client?.prefs?.toggles_sound & SOUND_OBSERVER_ANNOUNCEMENTS)) + specific_ghost_sound = null + ghost.notify_ghost(message, specific_ghost_sound, enter_link, enter_text, source, alert_overlay, action, flashwindow, ignore_mapload, ignore_key, header, notify_volume, extra_large) /mob/dead/observer/proc/notify_ghost(message, ghost_sound, enter_link, enter_text, atom/source, mutable_appearance/alert_overlay, action = NOTIFY_JUMP, flashwindow = FALSE, ignore_mapload = TRUE, ignore_key, header, notify_volume = 100, extra_large = FALSE) //Easy notification of a single ghosts. if(ignore_mapload && SSatoms.initialized != INITIALIZATION_INNEW_REGULAR) //don't notify for objects created during a map load @@ -585,7 +605,7 @@ GLOBAL_LIST_INIT(limb_types_by_name, list( alert_overlay.layer = FLOAT_LAYER alert_overlay.plane = FLOAT_PLANE - + alert_overlay.underlays.Cut() screen_alert.overlays += alert_overlay /mob/proc/reset_lighting_alpha() @@ -593,4 +613,3 @@ GLOBAL_LIST_INIT(limb_types_by_name, list( lighting_alpha = LIGHTING_PLANE_ALPHA_VISIBLE sync_lighting_plane_alpha() - diff --git a/code/modules/mob/mob_movement.dm b/code/modules/mob/mob_movement.dm index 65489944211a..e326ce9e45b3 100644 --- a/code/modules/mob/mob_movement.dm +++ b/code/modules/mob/mob_movement.dm @@ -56,9 +56,6 @@ if(istype(mob, /mob/living/carbon)) mob.swap_hand() - if(istype(mob,/mob/living/silicon/robot)) - var/mob/living/silicon/robot/R = mob - R.cycle_modules() return @@ -71,8 +68,7 @@ /client/verb/drop_item() set hidden = TRUE - if(!isrobot(mob)) - mob.drop_item_v() + mob.drop_item_v() return @@ -181,11 +177,13 @@ if((mob.flags_atom & DIRLOCK) && mob.dir != direct) move_delay += MOVE_REDUCTION_DIRECTION_LOCKED // by Geeves - mob.cur_speed = Clamp(10/(move_delay + 0.5), MIN_SPEED, MAX_SPEED) - //We are now going to move - moving = TRUE - mob.move_intentionally = TRUE + mob.cur_speed = clamp(10/(move_delay + 0.5), MIN_SPEED, MAX_SPEED) + next_movement = world.time + MINIMAL_MOVEMENT_INTERVAL // We pre-set this now for the crawling case. If crawling do_after fails, next_movement would be set after the attempt end instead of now. + + //Try to crawl first if(living_mob && living_mob.body_position == LYING_DOWN) + if(mob.crawling) + return // Already doing it. //check for them not being a limbless blob (only humans have limbs) if(ishuman(mob)) var/mob/living/carbon/human/human = mob @@ -193,20 +191,18 @@ for(var/zone in extremities) if(!(human.get_limb(zone))) extremities.Remove(zone) - if(extremities.len < 4) - next_movement = world.time + MINIMAL_MOVEMENT_INTERVAL - mob.move_intentionally = FALSE - moving = FALSE + if(length(extremities) < 4) return //now crawl mob.crawling = TRUE if(!do_after(mob, 1 SECONDS, INTERRUPT_MOVED|INTERRUPT_UNCONSCIOUS|INTERRUPT_STUNNED|INTERRUPT_RESIST|INTERRUPT_CHANGED_LYING, NO_BUSY_ICON)) mob.crawling = FALSE - next_movement = world.time + MINIMAL_MOVEMENT_INTERVAL - mob.move_intentionally = FALSE - moving = FALSE return + if(!mob.crawling) + return // Crawling interrupted by a "real" move. Do nothing. In theory INTERRUPT_MOVED|INTERRUPT_CHANGED_LYING catches this in do_after. mob.crawling = FALSE + mob.move_intentionally = TRUE + moving = TRUE if(mob.confused) mob.Move(get_step(mob, pick(GLOB.cardinals))) else @@ -305,5 +301,5 @@ if(stat) prob_slip = 0 // Changing this to zero to make it line up with the comment. - prob_slip = round(prob_slip) + prob_slip = floor(prob_slip) return(prob_slip) diff --git a/code/modules/mob/mob_verbs.dm b/code/modules/mob/mob_verbs.dm index a941dfc51090..180882a00528 100644 --- a/code/modules/mob/mob_verbs.dm +++ b/code/modules/mob/mob_verbs.dm @@ -32,7 +32,7 @@ return /mob/verb/view_stats() - set category = "OOC" + set category = "OOC.Records" set name = "View Playtimes" set desc = "View your playtimes." if(!SSentity_manager.ready) @@ -50,34 +50,33 @@ to_chat(usr, SPAN_DANGER("This mob type cannot throw items.")) return -/mob/proc/point_to(atom/A in view()) +/mob/proc/point_to(atom/target in view()) //set name = "Point To" //set category = "Object" - if(!isturf(src.loc) || !(A in view(src)))//target is no longer visible to us - return 0 + if(!isturf(src.loc) || !(target in view(src)))//target is no longer visible to us + return FALSE - if(!A.mouse_opacity)//can't click it? can't point at it. - return 0 + if(!target.mouse_opacity)//can't click it? can't point at it. + return FALSE if(is_mob_incapacitated() || (status_flags & FAKEDEATH)) //incapacitated, can't point - return 0 + return FALSE - var/tile = get_turf(A) - if (!tile) - return 0 + var/tile = get_turf(target) + if(!tile) + return FALSE if(recently_pointed_to > world.time) - return 0 - - next_move = world.time + 2 - - point_to_atom(A, tile) - return 1 - + return FALSE + if(SEND_SIGNAL(src, COMSIG_MOB_TRY_POINT, target) & COMPONENT_OVERRIDE_POINT) + return FALSE + next_move = world.time + 2 + point_to_atom(target, tile) + return TRUE /mob/verb/memory() set name = "Notes" @@ -122,7 +121,7 @@ return else var/deathtime = world.time - src.timeofdeath - var/deathtimeminutes = round(deathtime / 600) + var/deathtimeminutes = floor(deathtime / 600) var/pluralcheck = "minute" if(deathtimeminutes == 0) pluralcheck = "" diff --git a/code/modules/mob/new_player/body.dm b/code/modules/mob/new_player/body.dm new file mode 100644 index 000000000000..9f2b3e8182bc --- /dev/null +++ b/code/modules/mob/new_player/body.dm @@ -0,0 +1,31 @@ +/datum/body_type + var/name + var/icon_name + +/datum/body_type/twig + name = "No Muscles" + icon_name = "twig" + +/datum/body_type/lean + name = "Lean" + icon_name = "lean" + +/datum/body_type/ripped + name = "Ripped" + icon_name = "buff" + +/datum/body_size + var/name + var/icon_name + +/datum/body_size/thin + name = "Thin" + icon_name = "sml" + +/datum/body_size/average + name = "Average" + icon_name = "avg" + +/datum/body_size/large + name = "Large" + icon_name = "lrg" diff --git a/code/modules/mob/new_player/body_type.dm b/code/modules/mob/new_player/body_type.dm deleted file mode 100644 index ad35dc2feed3..000000000000 --- a/code/modules/mob/new_player/body_type.dm +++ /dev/null @@ -1,15 +0,0 @@ -/datum/body_type - var/name - var/icon_name - -/datum/body_type/ectomorphic - name = "Ectomorphic (Underweight)" - icon_name = "ecto" - -/datum/body_type/mesomorphic - name = "Mesomorphic (Average)" - icon_name = "meso" - -/datum/body_type/endomorphic - name = "Endomorphic (Overweight)" - icon_name = "endo" diff --git a/code/modules/mob/new_player/ethnicity.dm b/code/modules/mob/new_player/ethnicity.dm deleted file mode 100644 index 433a370f56ff..000000000000 --- a/code/modules/mob/new_player/ethnicity.dm +++ /dev/null @@ -1,114 +0,0 @@ -/datum/ethnicity - var/name - var/icon_name - var/ethnic_category - -/datum/ethnicity/anglo - name = "Anglo" - icon_name = "anglo" - ethnic_category = "European" - -/datum/ethnicity/western - name = "Western" - icon_name = "western" - ethnic_category = "European" - -/datum/ethnicity/germanic - name = "Germanic" - icon_name = "germanic" - ethnic_category = "European" - -/datum/ethnicity/scandinavian - name = "Scandinavian" - icon_name = "scandinavian" - ethnic_category = "European" - -/datum/ethnicity/baltic - name = "Baltic" - icon_name = "baltic" - ethnic_category = "European" - -/datum/ethnicity/sinoorient - name = "Sino-Orient" - icon_name = "sinoorient" - ethnic_category = "Oriental" - -/datum/ethnicity/eastorient - name = "East-Orient" - icon_name = "eastorient" - ethnic_category = "Oriental" - -/datum/ethnicity/southorient - name = "South-Orient" - icon_name = "southasian" - ethnic_category = "Oriental" - -/datum/ethnicity/indian - name = "Indian" - icon_name = "indian" - ethnic_category = "Oriental" - -/datum/ethnicity/sino - name = "Eurasian" - icon_name = "eurasian" - ethnic_category = "Oriental" - -/datum/ethnicity/mesoamerican - name = "Mesoamerican" - icon_name = "mesoamerican" - ethnic_category = "American" - -/datum/ethnicity/northamerican - name = "North American" - icon_name = "northamerican" - ethnic_category = "American" - -/datum/ethnicity/southamerican - name = "South American" - icon_name = "southamerican" - ethnic_category = "American" - -/datum/ethnicity/circumpolar - name = "Circumpolar" - icon_name = "circumpolar" - ethnic_category = "American" - -/datum/ethnicity/northafrican - name = "North African" - icon_name = "northafrican" - ethnic_category = "African" - -/datum/ethnicity/centralafrican - name = "Central African" - icon_name = "centralafrican" - ethnic_category = "African" - -/datum/ethnicity/costalafrican - name = "Coastal African" - icon_name = "costalafrican" - ethnic_category = "African" - -/datum/ethnicity/persian - name = "Persian" - icon_name = "persian" - ethnic_category = "Middle Eastern" - -/datum/ethnicity/arabian - name = "Arabian" - icon_name = "arabian" - ethnic_category = "Middle Eastern" - -/datum/ethnicity/levant - name = "Levant" - icon_name = "levant" - ethnic_category = "Middle Eastern" - -/datum/ethnicity/australasian - name = "Australasian" - icon_name = "australasian" - ethnic_category = "Oceania" - -/datum/ethnicity/polynesian - name = "Polynesian" - icon_name = "polynesian" - ethnic_category = "Oceania" diff --git a/code/modules/mob/new_player/login.dm b/code/modules/mob/new_player/login.dm index 4b25d7a2ae39..7ec4a7f2781c 100644 --- a/code/modules/mob/new_player/login.dm +++ b/code/modules/mob/new_player/login.dm @@ -32,7 +32,7 @@ var/author = lobby_authors[GLOB.displayed_lobby_art] if(author != "Unknown") to_chat(src, SPAN_ROUNDBODY("
            This round's lobby art is brought to you by [author]
            ")) - if(GLOB.join_motd) - to_chat(src, "
            [GLOB.join_motd]
            ") if(GLOB.current_tms) to_chat(src, SPAN_BOLDANNOUNCE(GLOB.current_tms)) + if(GLOB.join_motd) + to_chat(src, "
            [GLOB.join_motd]
            ") diff --git a/code/modules/mob/new_player/new_player.dm b/code/modules/mob/new_player/new_player.dm index 5e997db240c0..829379eb28b6 100644 --- a/code/modules/mob/new_player/new_player.dm +++ b/code/modules/mob/new_player/new_player.dm @@ -42,6 +42,7 @@ var/output = "
            Welcome," output +="
            [(client.prefs && client.prefs.real_name) ? client.prefs.real_name : client.key]" output +="
            [xeno_text]" + output += "

            Tutorial

            " output += "

            Setup Character

            " output += "

            View Playtimes

            " @@ -63,7 +64,7 @@ output += "
            " if (refresh) close_browser(src, "playersetup") - show_browser(src, output, null, "playersetup", "size=240x[round_start ? 360 : 460];can_close=0;can_minimize=0") + show_browser(src, output, null, "playersetup", "size=240x[round_start ? 500 : 610];can_close=0;can_minimize=0") return /mob/new_player/Topic(href, href_list[]) @@ -162,14 +163,9 @@ to_chat(src, SPAN_WARNING("Sorry, you cannot late join during [SSticker.mode.name]. You have to start at the beginning of the round. You may observe or try to join as an alien, if possible.")) return - if(client.prefs.species != "Human") - if(!is_alien_whitelisted(src, client.prefs.species) && CONFIG_GET(flag/usealienwhitelist)) - to_chat(src, "You are currently not whitelisted to play [client.prefs.species].") - return - - var/datum/species/S = GLOB.all_species[client.prefs.species] - if(!(S.flags & IS_WHITELISTED)) - to_chat(src, alert("Your current species,[client.prefs.species], is not available for play on the station.")) + if(client.player_data?.playtime_loaded && (client.get_total_human_playtime() < CONFIG_GET(number/notify_new_player_age)) && !length(client.prefs.completed_tutorials)) + if(tgui_alert(src, "You have little playtime and haven't completed any tutorials. Would you like to go to the tutorial menu?", "Tutorial", list("Yes", "No")) == "Yes") + tutorial_menu() return LateChoices() @@ -211,22 +207,31 @@ to_chat(usr, SPAN_WARNING("There is an administrative lock on entering the game! (The dropship likely crashed into the Almayer. This should take at most 20 minutes.)")) return - if(client.prefs.species != "Human") - if(!is_alien_whitelisted(src, client.prefs.species) && CONFIG_GET(flag/usealienwhitelist)) - to_chat(src, alert("You are currently not whitelisted to play [client.prefs.species].")) - return 0 - - var/datum/species/S = GLOB.all_species[client.prefs.species] - if(!(S.flags & IS_WHITELISTED)) - to_chat(src, alert("Your current species,[client.prefs.species], is not available for play on the station.")) - return 0 - AttemptLateSpawn(href_list["job_selected"]) return + if("tutorial") + tutorial_menu() + else new_player_panel() +/mob/new_player/proc/tutorial_menu() + if(SSticker.current_state <= GAME_STATE_SETTING_UP) + to_chat(src, SPAN_WARNING("Please wait for the round to start before entering a tutorial.")) + return + + if(SSticker.current_state == GAME_STATE_FINISHED) + to_chat(src, SPAN_WARNING("The round has ended. Please wait for the next round to enter a tutorial.")) + return + + if(SSticker.tutorial_disabled) + to_chat(src, SPAN_WARNING("Tutorials are currently disabled because something broke, sorry!")) + return + + var/datum/tutorial_menu/menu = new(src) + menu.ui_interact(src) + /mob/new_player/proc/AttemptLateSpawn(rank) var/datum/job/player_rank = GLOB.RoleAuthority.roles_for_mode[rank] if (src != usr) @@ -259,11 +264,16 @@ for(var/datum/squad/sq in GLOB.RoleAuthority.squads) if(sq) - sq.max_engineers = engi_slot_formula(GLOB.clients.len) - sq.max_medics = medic_slot_formula(GLOB.clients.len) + sq.max_engineers = engi_slot_formula(length(GLOB.clients)) + sq.max_medics = medic_slot_formula(length(GLOB.clients)) + + var/latejoin_larva_drop = SSticker.mode.latejoin_larva_drop - if(SSticker.mode.latejoin_larva_drop && SSticker.mode.latejoin_tally - SSticker.mode.latejoin_larva_used >= SSticker.mode.latejoin_larva_drop) - SSticker.mode.latejoin_larva_used += SSticker.mode.latejoin_larva_drop + if (ROUND_TIME < XENO_ROUNDSTART_PROGRESS_TIME_2) + latejoin_larva_drop = SSticker.mode.latejoin_larva_drop_early + + if(latejoin_larva_drop && SSticker.mode.latejoin_tally - SSticker.mode.latejoin_larva_used >= latejoin_larva_drop) + SSticker.mode.latejoin_larva_used += latejoin_larva_drop var/datum/hive_status/hive for(var/hivenumber in GLOB.hive_datum) hive = GLOB.hive_datum[hivenumber] @@ -280,7 +290,7 @@ var/client/client = character.client if(client.player_data && client.player_data.playtime_loaded && length(client.player_data.playtimes) == 0) msg_admin_niche("NEW PLAYER: [key_name(character, 1, 1, 0)]. IP: [character.lastKnownIP], CID: [character.computer_id]") - if(client.player_data && client.player_data.playtime_loaded && ((round(client.get_total_human_playtime() DECISECONDS_TO_HOURS, 0.1)) <= 5)) + if(client.player_data && client.player_data.playtime_loaded && ((round(client.get_total_human_playtime() DECISECONDS_TO_HOURS, 0.1)) <= CONFIG_GET(number/notify_new_player_age))) msg_sea("NEW PLAYER: [key_name(character, 0, 1, 0)] only has [(round(client.get_total_human_playtime() DECISECONDS_TO_HOURS, 0.1))] hours as a human. Current role: [get_actual_job_name(character)] - Current location: [get_area(character)]") character.client.init_verbs() @@ -294,7 +304,7 @@ var/hours = mills / 36000 var/dat = "
            " - dat += "Round Duration: [round(hours)]h [round(mins)]m
            " + dat += "Round Duration: [floor(hours)]h [floor(mins)]m
            " if(SShijack) switch(SShijack.evac_status) @@ -342,7 +352,7 @@ roles_show ^= FLAG_SHOW_MEDICAL else if(roles_show & FLAG_SHOW_MARINES && GLOB.ROLES_MARINES.Find(J.title)) - dat += "
            Squad Riflemen:
            " + dat += "
            Marines:
            " roles_show ^= FLAG_SHOW_MARINES dat += "[J.disp_title] ([J.current_positions]) (Active: [active])
            " @@ -357,43 +367,13 @@ var/mob/living/carbon/human/new_character - var/datum/species/chosen_species - if(client.prefs.species) - chosen_species = GLOB.all_species[client.prefs.species] - if(chosen_species) - // Have to recheck admin due to no usr at roundstart. Latejoins are fine though. - if(is_species_whitelisted(chosen_species) || has_admin_rights()) - new_character = new(loc, client.prefs.species) - if(!new_character) new_character = new(loc) new_character.lastarea = get_area(loc) - client.prefs.copy_all_to(new_character, job, is_late_join) - - if (client.prefs.be_random_body) - var/datum/preferences/TP = new() - TP.randomize_appearance(new_character) - - if(mind) - mind_initialize() - mind.active = 0 //we wish to transfer the key manually - mind.original = new_character - mind.transfer_to(new_character) //won't transfer key since the mind is not active - mind.setup_human_stats() - - new_character.job = job - new_character.name = real_name - new_character.voice = real_name - - // Update the character icons - // This is done in set_species when the mob is created as well, but - INVOKE_ASYNC(new_character, TYPE_PROC_REF(/mob/living/carbon/human, regenerate_icons)) - INVOKE_ASYNC(new_character, TYPE_PROC_REF(/mob/living/carbon/human, update_body), 1, 0) - INVOKE_ASYNC(new_character, TYPE_PROC_REF(/mob/living/carbon/human, update_hair)) + setup_human(new_character, src, is_late_join) - new_character.key = key //Manually transfer the key to log them in new_character.client?.change_view(GLOB.world_view_size) return new_character @@ -453,26 +433,6 @@ ui.close() continue -/mob/new_player/proc/has_admin_rights() - return client.admin_holder.rights & R_ADMIN - -/mob/new_player/proc/is_species_whitelisted(datum/species/S) - if(!S) return 1 - return is_alien_whitelisted(src, S.name) || !CONFIG_GET(flag/usealienwhitelist) || !(S.flags & IS_WHITELISTED) - -/mob/new_player/get_species() - var/datum/species/chosen_species - if(client.prefs.species) - chosen_species = GLOB.all_species[client.prefs.species] - - if(!chosen_species) - return "Human" - - if(is_species_whitelisted(chosen_species) || has_admin_rights()) - return chosen_species.name - - return "Human" - /mob/new_player/get_gender() if(!client || !client.prefs) ..() return client.prefs.gender @@ -496,7 +456,7 @@ var/time_remaining = SSticker.GetTimeLeft() if(time_remaining > 0) - . += "Time To Start: [round(time_remaining)]s" + . += "Time To Start: [floor(time_remaining)]s[SSticker.delay_start ? " (DELAYED)" : ""]" else if(time_remaining == -10) . += "Time To Start: DELAYED" else diff --git a/code/modules/mob/new_player/preferences_setup.dm b/code/modules/mob/new_player/preferences_setup.dm index a4525e16a6c6..4c2c83d18257 100644 --- a/code/modules/mob/new_player/preferences_setup.dm +++ b/code/modules/mob/new_player/preferences_setup.dm @@ -6,8 +6,9 @@ else gender = FEMALE - ethnicity = random_ethnicity() + skin_color = random_skin_color() body_type = random_body_type() + body_size = random_body_size() h_style = random_hair_style(gender, species) f_style = random_facial_hair_style(gender, species) @@ -210,20 +211,20 @@ if(isnull(preview_front)) preview_front = new() - owner.add_to_screen(preview_front) preview_front.vis_contents += preview_dummy preview_front.screen_loc = "preview:0,0" preview_front.icon_state = bg_state + owner.add_to_screen(preview_front) if(isnull(rotate_left)) rotate_left = new(null, preview_dummy) - owner.add_to_screen(rotate_left) rotate_left.screen_loc = "preview:-1:16,0" + owner.add_to_screen(rotate_left) if(isnull(rotate_right)) rotate_right = new(null, preview_dummy) - owner.add_to_screen(rotate_right) rotate_right.screen_loc = "preview:1:-16,0" + owner.add_to_screen(rotate_right) /datum/preferences/proc/job_pref_to_gear_preset() var/high_priority @@ -247,10 +248,8 @@ if(JOB_SQUAD_TEAM_LEADER) return /datum/equipment_preset/uscm/tl_equipped if(JOB_CO) - if(length(GLOB.RoleAuthority.roles_whitelist)) - var/datum/job/J = GLOB.RoleAuthority.roles_by_name[JOB_CO] - return J.gear_preset_whitelist["[JOB_CO][J.get_whitelist_status(GLOB.RoleAuthority.roles_whitelist, owner)]"] - return /datum/equipment_preset/uscm_ship/commander + var/datum/job/J = GLOB.RoleAuthority.roles_by_name[JOB_CO] + return J.gear_preset_whitelist["[JOB_CO][J.get_whitelist_status(owner)]"] if(JOB_SO) return /datum/equipment_preset/uscm_ship/so if(JOB_XO) @@ -259,8 +258,12 @@ return /datum/equipment_preset/uscm_ship/auxiliary_officer if(JOB_INTEL) return /datum/equipment_preset/uscm/intel/full - if(JOB_PILOT) - return /datum/equipment_preset/uscm_ship/po/full + if(JOB_CAS_PILOT) + return /datum/equipment_preset/uscm_ship/gp/full + if(JOB_TANK_CREW) + return /datum/equipment_preset/uscm/tank/full + if(JOB_DROPSHIP_PILOT) + return /datum/equipment_preset/uscm_ship/dp/full if(JOB_DROPSHIP_CREW_CHIEF) return /datum/equipment_preset/uscm_ship/dcc/full if(JOB_CORPORATE_LIAISON) @@ -268,10 +271,8 @@ if(JOB_COMBAT_REPORTER) return /datum/equipment_preset/uscm_ship/reporter if(JOB_SYNTH) - if(length(GLOB.RoleAuthority.roles_whitelist)) - var/datum/job/J = GLOB.RoleAuthority.roles_by_name[JOB_SYNTH] - return J.gear_preset_whitelist["[JOB_SYNTH][J.get_whitelist_status(GLOB.RoleAuthority.roles_whitelist, owner)]"] - return /datum/equipment_preset/synth/uscm + var/datum/job/J = GLOB.RoleAuthority.roles_by_name[JOB_SYNTH] + return J.gear_preset_whitelist["[JOB_SYNTH][J.get_whitelist_status(owner)]"] if(JOB_WORKING_JOE) return /datum/equipment_preset/synth/working_joe if(JOB_POLICE) @@ -317,10 +318,8 @@ return pick(SSmapping.configs[GROUND_MAP].CO_survivor_types) return /datum/equipment_preset/uscm_ship/commander if(JOB_PREDATOR) - if(length(GLOB.RoleAuthority.roles_whitelist)) - var/datum/job/J = GLOB.RoleAuthority.roles_by_name[JOB_PREDATOR] - return J.gear_preset_whitelist["[JOB_PREDATOR][J.get_whitelist_status(GLOB.RoleAuthority.roles_whitelist, owner)]"] - return /datum/equipment_preset/yautja/blooded + var/datum/job/J = GLOB.RoleAuthority.roles_by_name[JOB_PREDATOR] + return J.gear_preset_whitelist["[JOB_PREDATOR][J.get_whitelist_status(owner)]"] return /datum/equipment_preset/uscm/private_equipped diff --git a/code/modules/mob/new_player/skin_color.dm b/code/modules/mob/new_player/skin_color.dm new file mode 100644 index 000000000000..f3158613c38c --- /dev/null +++ b/code/modules/mob/new_player/skin_color.dm @@ -0,0 +1,47 @@ +/datum/skin_color + var/name + var/icon_name + +/datum/skin_color/cmplayer + name = "Extra Pale" + icon_name = "cmp1" + +/datum/skin_color/pale1 + name = "Pale 1" + icon_name = "pale1" + +/datum/skin_color/pale2 + name = "Pale 2" + icon_name = "pale2" + +/datum/skin_color/pale3 + name = "Pale 3" + icon_name = "pale3" + +/datum/skin_color/tan1 + name = "Tan 1" + icon_name = "tan1" + +/datum/skin_color/tan2 + name = "Tan 2" + icon_name = "tan2" + +/datum/skin_color/tan3 + name = "Tan 3" + icon_name = "tan3" + +/datum/skin_color/dark1 + name = "Dark 1" + icon_name = "dark1" + +/datum/skin_color/dark2 + name = "Dark 2" + icon_name = "dark2" + +/datum/skin_color/dark3 + name = "Dark 3" + icon_name = "dark3" + +/datum/skin_color/melanated + name = "Melanated" + icon_name = "mel1" diff --git a/code/modules/mob/new_player/sprite_accessories/hair.dm b/code/modules/mob/new_player/sprite_accessories/hair.dm index 3dfe8bebd5af..558884f26ff0 100644 --- a/code/modules/mob/new_player/sprite_accessories/hair.dm +++ b/code/modules/mob/new_player/sprite_accessories/hair.dm @@ -755,3 +755,8 @@ /datum/sprite_accessory/hair/taper name = "Taper" icon_state = "hair_taper" + +/datum/sprite_accessory/hair/gentlebraid + name = "Gentle Braid" + icon_state = "hair_braid3" + gender = FEMALE diff --git a/code/modules/mob/new_player/sprite_accessories/sprite_accessories.dm b/code/modules/mob/new_player/sprite_accessories/sprite_accessories.dm index 09c4c4861e57..5420753d635e 100644 --- a/code/modules/mob/new_player/sprite_accessories/sprite_accessories.dm +++ b/code/modules/mob/new_player/sprite_accessories/sprite_accessories.dm @@ -43,6 +43,6 @@ SYNTH_INFILTRATOR ) - // Whether or not the accessory can be affected by colouration - var/do_colouration = 1 + // Whether or not the accessory can be affected by coloration + var/do_coloration = 1 var/selectable = 1 diff --git a/code/modules/mob/new_player/sprite_accessories/undershirt.dm b/code/modules/mob/new_player/sprite_accessories/undershirt.dm index 39f0e3ddd173..5919b7563606 100644 --- a/code/modules/mob/new_player/sprite_accessories/undershirt.dm +++ b/code/modules/mob/new_player/sprite_accessories/undershirt.dm @@ -112,12 +112,6 @@ GLOBAL_LIST_INIT_TYPED(undershirt_f, /datum/sprite_accessory/undershirt, setup_u gender = FEMALE camo_conforming = TRUE -/datum/sprite_accessory/undershirt/halter_top - name = "Haltertop" - icon_state = "halter" - gender = FEMALE - camo_conforming = TRUE - /datum/sprite_accessory/undershirt/strapless_bra name = "Strapless Bra" icon_state = "strapless" diff --git a/code/modules/mob/new_player/sprite_accessories/underwear.dm b/code/modules/mob/new_player/sprite_accessories/underwear.dm index 200f3f2f67f7..869179619e26 100644 --- a/code/modules/mob/new_player/sprite_accessories/underwear.dm +++ b/code/modules/mob/new_player/sprite_accessories/underwear.dm @@ -58,29 +58,33 @@ GLOBAL_LIST_INIT_TYPED(underwear_f, /datum/sprite_accessory/underwear, setup_und if("s") name += " (Snow)" -// Plural +// Both /datum/sprite_accessory/underwear/boxers name = "Boxers" icon_state = "boxers" - gender = PLURAL + gender = NEUTER camo_conforming = TRUE -// Male /datum/sprite_accessory/underwear/briefs name = "Briefs" icon_state = "briefs" - gender = MALE + gender = NEUTER camo_conforming = TRUE -// Female -/datum/sprite_accessory/underwear/panties - name = "Panties" - icon_state = "panties" - gender = FEMALE +/datum/sprite_accessory/underwear/lowriders + name = "Lowriders" + icon_state = "lowriders" + gender = NEUTER camo_conforming = TRUE -/datum/sprite_accessory/underwear/thong - name = "Thong" - icon_state = "thong" - gender = FEMALE +/datum/sprite_accessory/underwear/satin + name = "Satin" + icon_state = "satin" + gender = NEUTER + camo_conforming = TRUE + +/datum/sprite_accessory/underwear/tanga + name = "Tanga" + icon_state = "tanga" + gender = NEUTER camo_conforming = TRUE diff --git a/code/modules/mob/new_player/sprite_accessories/yautja_hair.dm b/code/modules/mob/new_player/sprite_accessories/yautja_hair.dm index 0e18424a04d0..f2ae00e886f6 100644 --- a/code/modules/mob/new_player/sprite_accessories/yautja_hair.dm +++ b/code/modules/mob/new_player/sprite_accessories/yautja_hair.dm @@ -1,7 +1,7 @@ /datum/sprite_accessory/yautja_hair icon = 'icons/mob/humans/yaut_hair.dmi' species_allowed = list(SPECIES_YAUTJA) - do_colouration = FALSE + do_coloration = FALSE /datum/sprite_accessory/yautja_hair/standard name = "Standard" diff --git a/code/modules/mob/say.dm b/code/modules/mob/say.dm index 032888f26709..95c9227bd3d5 100644 --- a/code/modules/mob/say.dm +++ b/code/modules/mob/say.dm @@ -117,8 +117,6 @@ return 1 if(other.universal_speak) return 1 - if(isAI(src)) - return 1 if (istype(other, src.type) || istype(src, other.type)) return 1 return 0 diff --git a/code/modules/mob/transform_procs.dm b/code/modules/mob/transform_procs.dm index 6dda93e4d9c2..520b58a30db6 100644 --- a/code/modules/mob/transform_procs.dm +++ b/code/modules/mob/transform_procs.dm @@ -50,79 +50,6 @@ return O -/mob/new_player/AIize() - spawning = TRUE - return ..() - -/mob/living/carbon/human/AIize() - if (monkeyizing) - return - for(var/t in limbs) - qdel(t) - - return ..() - -/mob/living/carbon/AIize() - if (monkeyizing) - return - for(var/obj/item/W in src) - drop_inv_item_on_ground(W) - monkeyizing = 1 - ADD_TRAIT(src, TRAIT_INCAPACITATED, "Terminal Monkeyziation") - icon = null - invisibility = 101 - return ..() - -/mob/proc/AIize() - return // this was unmaintained - - -//human -> robot -/mob/living/carbon/human/proc/Robotize() - if (monkeyizing) - return - for(var/obj/item/W in src) - drop_inv_item_on_ground(W) - regenerate_icons() - monkeyizing = 1 - ADD_TRAIT(src, TRAIT_INCAPACITATED, "Terminal Monkeyziation") - icon = null - invisibility = 101 - for(var/t in limbs) - qdel(t) - - var/mob/living/silicon/robot/O = new /mob/living/silicon/robot( loc ) - - // cyborgs produced by Robotize get an automatic power cell - O.cell = new(O) - O.cell.maxcharge = 7500 - O.cell.charge = 7500 - - - O.gender = gender - O.invisibility = 0 - - if(mind) //TODO - mind.transfer_to(O) - if(O.job == "Cyborg") - O.mind.original = O - else - O.key = key - if(O.client) O.client.change_view(GLOB.world_view_size) - - O.forceMove(loc) - O.job = "Cyborg" - if(O.job == "Cyborg") - O.mmi = new /obj/item/device/mmi(O) - - if(O.mmi) - O.mmi.transfer_identity(src) - - O.Namepick() - - qdel(src) - return O - //human -> alien /mob/living/carbon/human/proc/Alienize(list/types) if (monkeyizing) diff --git a/code/modules/movement/launching/launching.dm b/code/modules/movement/launching/launching.dm index 96db667fe2ff..778c452a3240 100644 --- a/code/modules/movement/launching/launching.dm +++ b/code/modules/movement/launching/launching.dm @@ -54,6 +54,16 @@ matching_procs += collision_callbacks[path] return matching_procs +/// Invoke end_throw_callbacks on this metadata. +/// Takes argument of type /atom/movable +/datum/launch_metadata/proc/invoke_end_throw_callbacks(atom/movable/movable_atom) + if(length(end_throw_callbacks)) + for(var/datum/callback/callback as anything in end_throw_callbacks) + if(istype(callback, /datum/callback/dynamic)) + callback.Invoke(movable_atom) + else + callback.Invoke() + /atom/movable/var/datum/launch_metadata/launch_metadata = null //called when src is thrown into hit_atom @@ -120,7 +130,7 @@ return TRUE // Proc for throwing items (should only really be used for throw) -/atom/movable/proc/throw_atom(atom/target, range, speed = 0, atom/thrower, spin, launch_type = NORMAL_LAUNCH, pass_flags = NO_FLAGS) +/atom/movable/proc/throw_atom(atom/target, range, speed = 0, atom/thrower, spin, launch_type = NORMAL_LAUNCH, pass_flags = NO_FLAGS, list/end_throw_callbacks, list/collision_callbacks) var/temp_pass_flags = pass_flags switch (launch_type) if (NORMAL_LAUNCH) @@ -135,6 +145,10 @@ LM.speed = speed LM.thrower = thrower LM.spin = spin + if(end_throw_callbacks) + LM.end_throw_callbacks = end_throw_callbacks + if(collision_callbacks) + LM.collision_callbacks = collision_callbacks if(SEND_SIGNAL(src, COMSIG_MOVABLE_PRE_LAUNCH, LM) & COMPONENT_LAUNCH_CANCEL) return @@ -160,7 +174,7 @@ animation_spin(5, 1 + min(1, LM.range/20)) var/old_speed = cur_speed - cur_speed = Clamp(LM.speed, MIN_SPEED, MAX_SPEED) // Sanity check, also ~1 sec delay between each launch move is not very reasonable + cur_speed = clamp(LM.speed, MIN_SPEED, MAX_SPEED) // Sanity check, also ~1 sec delay between each launch move is not very reasonable var/delay = 10/cur_speed - 0.5 // scales delay back to deciseconds for when sleep is called var/pass_flags = LM.pass_flags @@ -169,7 +183,7 @@ add_temp_pass_flags(pass_flags) var/turf/start_turf = get_step_towards(src, LM.target) - var/list/turf/path = getline2(start_turf, LM.target) + var/list/turf/path = get_line(start_turf, LM.target) var/last_loc = loc var/early_exit = FALSE @@ -206,12 +220,7 @@ rebounding = FALSE cur_speed = old_speed remove_temp_pass_flags(pass_flags) - if(length(LM.end_throw_callbacks)) - for(var/datum/callback/CB as anything in LM.end_throw_callbacks) - if(istype(CB, /datum/callback/dynamic)) - CB.Invoke(src) - else - CB.Invoke() + LM.invoke_end_throw_callbacks(src) QDEL_NULL(launch_metadata) /atom/movable/proc/throw_random_direction(range, speed = 0, atom/thrower, spin, launch_type = NORMAL_LAUNCH, pass_flags = NO_FLAGS) diff --git a/code/modules/movement/movement.dm b/code/modules/movement/movement.dm index da0c76cba9d5..e12a5b439296 100644 --- a/code/modules/movement/movement.dm +++ b/code/modules/movement/movement.dm @@ -127,7 +127,7 @@ if(!same_loc) if(oldloc) oldloc.Exited(src, destination) - if(old_area && old_area != destarea) + if(old_area && (old_area != destarea || !isturf(destination))) old_area.Exited(src, destination) for(var/atom/movable/AM in oldloc) AM.Uncrossed(src) @@ -138,7 +138,7 @@ if(old_z != dest_z) onTransitZ(old_z, dest_z) destination.Entered(src, oldloc) - if(destarea && old_area != destarea) + if(destarea && (old_area != destarea || !isturf(oldloc))) destarea.Entered(src, oldloc) for(var/atom/movable/AM in destination) diff --git a/code/modules/nano/nanomanager.dm b/code/modules/nano/nanomanager.dm index b2ac69b002b0..6cf1ecb78a0d 100644 --- a/code/modules/nano/nanomanager.dm +++ b/code/modules/nano/nanomanager.dm @@ -97,7 +97,7 @@ * @return int The number of uis updated */ /datum/nanomanager/proc/update_user_uis(mob/user, src_object = null, ui_key = null) - if (isnull(user.open_uis) || !istype(user.open_uis, /list) || open_uis.len == 0) + if (isnull(user.open_uis) || !istype(user.open_uis, /list) || length(open_uis) == 0) return 0 // has no open uis var/update_count = 0 @@ -118,7 +118,7 @@ * @return int The number of uis closed */ /datum/nanomanager/proc/close_user_uis(mob/user, src_object = null, ui_key = null) - if (isnull(user.open_uis) || !istype(user.open_uis, /list) || open_uis.len == 0) + if (isnull(user.open_uis) || !istype(user.open_uis, /list) || length(open_uis) == 0) //testing("nanomanager/close_user_uis mob [user.name] has no open uis") return 0 // has no open uis @@ -128,7 +128,7 @@ ui.close() close_count++ - //testing("nanomanager/close_user_uis mob [user.name] closed [open_uis.len] of [close_count] uis") + //testing("nanomanager/close_user_uis mob [user.name] closed [length(open_uis_] of [close_count] uis") return close_count @@ -151,7 +151,7 @@ var/list/uis = open_uis[src_object_key][ui.ui_key] uis.Add(ui) processing_uis.Add(ui) - //testing("nanomanager/ui_opened mob [ui.user.name] [ui.src_object:name] [ui.ui_key] - user.open_uis [ui.user.open_uis.len]|uis [uis.len]|processing_uis [processing_uis.len]") + //testing("nanomanager/ui_opened mob [ui.user.name] [ui.src_object:name] [ui.ui_key] - user.open_uis [length(ui.user.open_uis)]|uis [length(uis)]|processing_uis [length(processing_uis)]") /** * Remove a /nanoui ui from the list of open uis @@ -173,7 +173,7 @@ var/list/uis = open_uis[src_object_key][ui.ui_key] uis.Remove(ui) - //testing("nanomanager/ui_closed mob [ui.user.name] [ui.src_object:name] [ui.ui_key] - user.open_uis [ui.user.open_uis.len]|uis [uis.len]|processing_uis [processing_uis.len]") + //testing("nanomanager/ui_closed mob [ui.user.name] [ui.src_object:name] [ui.ui_key] - user.open_uis [length(ui.user.open_uis)]|uis [length(uis)]|processing_uis [length(processing_uis)]") return 1 @@ -204,7 +204,7 @@ //testing("nanomanager/user_transferred from mob [oldMob.name] to mob [newMob.name]") if(QDELETED(oldMob) || QDELETED(newMob)) return FALSE //ERROR - if (isnull(oldMob.open_uis) || !istype(oldMob.open_uis, /list) || open_uis.len == 0) + if (isnull(oldMob.open_uis) || !istype(oldMob.open_uis, /list) || length(open_uis) == 0) //testing("nanomanager/user_transferred mob [oldMob.name] has no open uis") return 0 // has no open uis diff --git a/code/modules/nano/nanoui.dm b/code/modules/nano/nanoui.dm index 46a30b313bb8..7e259711a20e 100644 --- a/code/modules/nano/nanoui.dm +++ b/code/modules/nano/nanoui.dm @@ -57,8 +57,8 @@ nanoui is used to open and update nano browser uis // the current status/visibility of the ui var/status = STATUS_INTERACTIVE - // Only allow users with a certain user.stat to get updates. Defaults to 0 (concious) - var/allowed_user_stat = 0 // -1 = ignore, 0 = alive, 1 = unconcious or alive, 2 = dead concious or alive + // Only allow users with a certain user.stat to get updates. Defaults to 0 (conscious) + var/allowed_user_stat = 0 // -1 = ignore, 0 = alive, 1 = unconscious or alive, 2 = dead conscious or alive /** * Create a new nanoui instance. @@ -166,7 +166,7 @@ nanoui is used to open and update nano browser uis set_status(STATUS_INTERACTIVE, push_update) // interactive (green visibility) else if (allowed_user_stat == -1 || user == src_object) set_status(STATUS_INTERACTIVE, push_update) // interactive (green visibility) - else if (isrobot(user)) + else if (isSilicon(user)) if (src_object in view(7, user)) // robots can see and interact with things they can see within 7 tiles set_status(STATUS_INTERACTIVE, push_update) // interactive (green visibility) else @@ -386,7 +386,7 @@ nanoui is used to open and update nano browser uis head_content += " " var/template_data_json = "{}" // An empty JSON object - if (templates.len > 0) + if (length(templates) > 0) template_data_json = strip_improper(json_encode(templates)) var/url_parameters_json = json_encode(list("src" = "\ref[src]")) diff --git a/code/modules/nightmare/nmnodes/mapload.dm b/code/modules/nightmare/nmnodes/mapload.dm index 6f75a46ed125..0bfdc437bd4a 100644 --- a/code/modules/nightmare/nmnodes/mapload.dm +++ b/code/modules/nightmare/nmnodes/mapload.dm @@ -81,11 +81,11 @@ /** * Similar to variations mode, but rolls all files individually rather * than picking one, using name for landmark. The prefix number is used - * as a percentage chance. You can add extra text with an underscore. + * as a percentage chance. * * Example: * some/folder/10.something_funny.dmm - * would have 10% chance to insert at 'something' landmark + * would have 10% chance to insert at the 'something_funny' landmark */ /datum/nmnode/mapload/sprinkles id = "map_sprinkle" @@ -94,13 +94,13 @@ . = ..() if(!.) return var/dir_path = context.get_file_path(filepath, "map") - var/regex/matcher = new(@"^([0-9]+)([\.\+])([^_]+)(_.*)?\.dmm$", "i") + var/regex/matcher = new(@"^([0-9]+)([\.\+])(([^_]+)(_.*))?\.dmm$", "i") var/list/dircontents = flist(dir_path) for(var/filename in dircontents) if(!matcher.Find(filename)) continue #if !defined(UNIT_TESTS) - var/fprob = Clamp(text2num(matcher.group[1]) / 100, 0, 1) + var/fprob = clamp(text2num(matcher.group[1]) / 100, 0, 1) if(fprob < rand()) continue #endif // Remove the possibility of chance for testing diff --git a/code/modules/nightmare/nmtasks/mapload.dm b/code/modules/nightmare/nmtasks/mapload.dm index 1ace7cd2fbec..052cb069baec 100644 --- a/code/modules/nightmare/nmtasks/mapload.dm +++ b/code/modules/nightmare/nmtasks/mapload.dm @@ -34,16 +34,13 @@ /datum/nmtask/mapload/proc/step_parse() . = TRUE if(!fexists(filepath)) - log_debug("Nightmare Mapload: File does not exist: [filepath]") - return + CRASH("Nightmare Mapload: File does not exist: [filepath]") if(!parsed) parsed = new(file(filepath)) if(!parsed?.bounds) - log_debug("Nightmare Mapload: File loading failed: [filepath]") - return + CRASH("Nightmare Mapload: File loading failed: [filepath]") if(isnull(parsed.bounds[1])) - log_debug("Nightmare Mapload: Map parsing failed: [filepath]") - return + CRASH("Nightmare Mapload: Map parsing failed: [filepath]") return FALSE /datum/nmtask/mapload/proc/step_loadmap(list/statsmap) @@ -51,37 +48,38 @@ UNTIL(!Master.map_loading) target_turf = GLOB.nightmare_landmarks[landmark] if(!target_turf?.z) - log_debug("Nightmare Mapload: Could not find landmark: [landmark]") - return - var/result = parsed.load(target_turf.x, target_turf.y, target_turf.z, cropMap = TRUE, no_changeturf = FALSE, placeOnTop = FALSE, delete = replace) + if(landmark in GLOB.nightmare_landmark_tags_removed) + log_debug("Nightmare Mapload: Could not find landmark: [landmark] because it was deleted") + return + else + CRASH("Nightmare Mapload: Could not find landmark: [landmark]") + var/result = parsed.load(target_turf.x, target_turf.y, target_turf.z, crop_map = TRUE, no_changeturf = FALSE, place_on_top = FALSE, delete = replace) if(!result || !parsed.bounds) - log_debug("Nightmare Mapload: Map insertion failed unexpectedly for file: [filepath]") - return + CRASH("Nightmare Mapload: Map insertion failed unexpectedly for file: [filepath]") return FALSE /datum/nmtask/mapload/proc/step_init(list/statsmap) if(initialize_boundary_contents()) log_debug("Nightmare Mapload: Loaded '[filepath]' at '[landmark]' ([target_turf.x], [target_turf.y], [target_turf.z])") return FALSE - log_debug("Nightmare Mapload: Loaded map file but could not initialize: '[filepath]' at ([target_turf.x], [target_turf.y], [target_turf.z])") + stack_trace("Nightmare Mapload: Loaded map file but could not initialize: '[filepath]' at ([target_turf.x], [target_turf.y], [target_turf.z])") return TRUE -/// Initialize atoms/areas in bounds +/// Initialize atoms/areas in bounds - basically a Nightmare version of [/datum/map_template/initTemplateBounds] /datum/nmtask/mapload/proc/initialize_boundary_contents() var/list/bounds = parsed.bounds if(length(bounds) < 6) return - var/list/TT = block( locate(bounds[MAP_MINX], bounds[MAP_MINY], bounds[MAP_MINZ]), - locate(bounds[MAP_MAXX], bounds[MAP_MAXY], bounds[MAP_MAXZ])) var/list/area/arealist = list() var/list/atom/atomlist = list() - for(var/turf/T as anything in TT) - atomlist |= T - if(T.loc) arealist |= T.loc - for(var/A in T) - atomlist |= A - SSmapping.reg_in_areas_in_z(arealist) - SSatoms.InitializeAtoms(atomlist) - // We still defer lighting, area sorting, etc + for(var/turf/turf as anything in block(bounds[MAP_MINX], bounds[MAP_MINY], bounds[MAP_MINZ], bounds[MAP_MAXX], bounds[MAP_MAXY], bounds[MAP_MAXZ])) + atomlist += turf + if(turf.loc) + arealist |= turf.loc + for(var/atom/movable/movable as anything in turf) + atomlist += movable // Much like initTemplateBounds() this only recurses content once. Never been an issue so far, but keep it in mind. + SSmapping.reg_in_areas_in_z(arealist) // Legacy. Not sure this is needed as it should already be carried out through area Initialize. + SSatoms.InitializeAtoms(atomlist + arealist) + // We still defer lighting, area sorting, etc, to be done all in one go! SEND_SIGNAL(src, COMSIG_NIGHTMARE_TAINTED_BOUNDS, bounds) return TRUE diff --git a/code/modules/nightmare/nmtasks/mapscheduler.dm b/code/modules/nightmare/nmtasks/mapscheduler.dm index 34ceecafb876..1d7f7385d4d3 100644 --- a/code/modules/nightmare/nmtasks/mapscheduler.dm +++ b/code/modules/nightmare/nmtasks/mapscheduler.dm @@ -16,14 +16,13 @@ /datum/nmtask/scheduler/mapload/proc/register_tainted_bounds(datum/nmtask/task, list/bounds) tainted_bounds.len++ - tainted_bounds[tainted_bounds.len] = bounds + tainted_bounds[length(tainted_bounds)] = bounds /datum/nmtask/scheduler/mapload/proc/patch_lighting() var/list/tainted = list() for(var/list/bounds as anything in tainted_bounds) - var/list/TT = block( locate(bounds[MAP_MINX], bounds[MAP_MINY], bounds[MAP_MINZ]), - locate(bounds[MAP_MAXX], bounds[MAP_MAXY], bounds[MAP_MAXZ])) + var/list/TT = block(bounds[MAP_MINX], bounds[MAP_MINY], bounds[MAP_MINZ], bounds[MAP_MAXX], bounds[MAP_MAXY], bounds[MAP_MAXZ]) tainted |= TT for(var/turf/T as anything in tainted) diff --git a/code/modules/objectives/data_retrieval.dm b/code/modules/objectives/data_retrieval.dm index f66c578f48fb..ee5053f26c4b 100644 --- a/code/modules/objectives/data_retrieval.dm +++ b/code/modules/objectives/data_retrieval.dm @@ -117,29 +117,14 @@ /datum/cm_objective/retrieve_data/disk/process() var/obj/structure/machinery/computer/disk_reader/reader = disk.loc if(!reader.powered()) - reader.visible_message(SPAN_WARNING("\The [reader] powers down mid-operation as the area looses power.")) - playsound(reader, 'sound/machines/terminal_shutdown.ogg', 25, 1) - SSobjectives.stop_processing_objective(src) - disk.forceMove(reader.loc) - reader.disk = null + SEND_SIGNAL(reader, COMSIG_INTEL_DISK_LOST_POWER) return ..() /datum/cm_objective/retrieve_data/disk/complete() state = OBJECTIVE_COMPLETE - var/obj/structure/machinery/computer/disk_reader/reader = disk.loc - reader.visible_message("\The [reader] pings softly as the upload finishes and ejects the disk.") - playsound(reader, 'sound/machines/screen_output1.ogg', 25, 1) - disk.forceMove(reader.loc) - disk.name = "[disk.name] (complete)" - reader.disk = null - award_points() - - // Now enable the objective to store this disk in the lab. - disk.retrieve_objective.state = OBJECTIVE_ACTIVE - disk.retrieve_objective.activate() - + SEND_SIGNAL(disk.loc, COMSIG_INTEL_DISK_COMPLETED) ..() /datum/cm_objective/retrieve_data/disk/get_tgui_data() @@ -295,34 +280,6 @@ unslashable = TRUE unacidable = TRUE -/obj/structure/machinery/computer/disk_reader/attack_hand(mob/living/user) - if(isxeno(user)) - return - if(disk) - to_chat(user, SPAN_NOTICE("[disk] is currently being uploaded to ARES.")) - -/obj/structure/machinery/computer/disk_reader/attackby(obj/item/W, mob/living/user) - if(istype(W, /obj/item/disk/objective)) - if(istype(disk)) - to_chat(user, SPAN_WARNING("There is a disk in the drive being uploaded already!")) - return FALSE - var/obj/item/disk/objective/newdisk = W - if(newdisk.objective.state == OBJECTIVE_COMPLETE) - to_chat(user, SPAN_WARNING("The reader displays a message stating this disk has already been read and refuses to accept it.")) - return FALSE - if(input(user,"Enter the encryption key","Decrypting [newdisk]","") != newdisk.objective.decryption_password) - to_chat(user, SPAN_WARNING("The reader asks for the encryption key for this disk, not having the correct key you eject the disk.")) - return FALSE - if(istype(disk)) - to_chat(user, SPAN_WARNING("There is a disk in the drive being uploaded already!")) - return FALSE - - if(!(newdisk in user.contents)) - return FALSE - - newdisk.objective.activate() - - user.drop_inv_item_to_loc(W, src) - disk = W - to_chat(user, SPAN_NOTICE("You insert \the [W] and enter the decryption key.")) - user.count_niche_stat(STATISTICS_NICHE_DISK) +/obj/structure/machinery/computer/disk_reader/Initialize() + . = ..() + AddComponent(/datum/component/disk_reader) diff --git a/code/modules/objectives/objective_memory_storage.dm b/code/modules/objectives/objective_memory_storage.dm index 161c78d4d1ba..c84f71556743 100644 --- a/code/modules/objectives/objective_memory_storage.dm +++ b/code/modules/objectives/objective_memory_storage.dm @@ -218,6 +218,16 @@ GLOBAL_DATUM_INIT(intel_system, /datum/intel_system, new()) GLOB.intel_system.store_single_objective(O) return 1 +/obj/structure/machinery/computer/intel/disk_reader // ARC computer to save on tile space + name = "\improper SIGINT terminal" + desc = "An USCM computer capable of uploading data to the intelligence database. It has a disk reader slot built into the bottom, as well." + icon = 'icons/obj/vehicles/interiors/arc.dmi' + icon_state = "sigint_computer" + +/obj/structure/machinery/computer/intel/disk_reader/Initialize() + . = ..() + AddComponent(/datum/component/disk_reader) + // -------------------------------------------- // *** View objectives with the computer *** // -------------------------------------------- diff --git a/code/modules/organs/limb_objects.dm b/code/modules/organs/limb_objects.dm index 734f303c7f5b..607eac5feefe 100644 --- a/code/modules/organs/limb_objects.dm +++ b/code/modules/organs/limb_objects.dm @@ -22,27 +22,34 @@ icon = base - var/datum/ethnicity/E = GLOB.ethnicities_list[H.ethnicity] - var/datum/body_type/B = GLOB.body_types_list[H.body_type] + var/datum/skin_color/set_skin_color = GLOB.skin_color_list[H.skin_color] + var/datum/body_type/set_body_type = GLOB.body_type_list[H.body_type] + var/datum/body_size/set_body_size = GLOB.body_size_list[H.body_size] - var/e_icon - var/b_icon + var/skin_color_icon + var/body_type_icon + var/body_size_icon - if (!E) - e_icon = "western" + if(!set_skin_color) + skin_color_icon = "pale2" else - e_icon = E.icon_name + skin_color_icon = set_skin_color.icon_name - if (!B) - b_icon = "mesomorphic" + if(!set_body_type) + body_type_icon = "lean" else - b_icon = B.icon_name + body_type_icon = set_body_type.icon_name + + if(!set_body_size) + body_size_icon = "avg" + else + body_size_icon = set_body_size.icon_name if(isspeciesyautja(H)) - e_icon = H.ethnicity - b_icon = H.body_type + skin_color_icon = H.skin_color + body_type_icon = H.body_type - icon_state = "[get_limb_icon_name(H.species, b_icon, H.gender, name, e_icon)]" + icon_state = "[get_limb_icon_name(H.species, body_size_icon, body_type_icon, H.gender, name, skin_color_icon)]" setDir(SOUTH) apply_transform(turn(transform, rand(70,130))) @@ -105,7 +112,7 @@ var/datum/sprite_accessory/facial_hair_style = GLOB.facial_hair_styles_list[H.f_style] if(facial_hair_style) var/icon/facial = new/icon("icon" = facial_hair_style.icon, "icon_state" = "[facial_hair_style.icon_state]_s") - if(facial_hair_style.do_colouration) + if(facial_hair_style.do_coloration) facial.Blend(rgb(H.r_facial, H.g_facial, H.b_facial), ICON_ADD) overlays.Add(facial) // icon.Blend(facial, ICON_OVERLAY) @@ -115,7 +122,7 @@ if(hair_style) var/icon/hair = new/icon("icon" = hair_style.icon, "icon_state" = "[hair_style.icon_state]_s") var/icon/eyes = new/icon("icon" = 'icons/mob/humans/onmob/human_face.dmi', "icon_state" = H.species ? H.species.eyes : "eyes_s") - if(hair_style.do_colouration) + if(hair_style.do_coloration) hair.Blend(rgb(H.r_hair, H.g_hair, H.b_hair), ICON_ADD) eyes.Blend(rgb(H.r_eyes, H.g_eyes, H.b_eyes), ICON_ADD) diff --git a/code/modules/organs/limbs.dm b/code/modules/organs/limbs.dm index 8df96650ac50..b4086ee898e2 100644 --- a/code/modules/organs/limbs.dm +++ b/code/modules/organs/limbs.dm @@ -20,7 +20,7 @@ var/display_name var/list/datum/wound/wounds = list() - var/number_wounds = 0 // cache the number of wounds, which is NOT wounds.len! + var/number_wounds = 0 // cache the number of wounds, which is NOT length(wounds)! var/tmp/perma_injury = 0 @@ -71,11 +71,14 @@ var/status = LIMB_ORGANIC var/processing = FALSE - /// ethnicity of the owner, used for limb appearance, set in [/obj/limb/proc/update_limb()] - var/ethnicity = "western" + /// skin color of the owner, used for limb appearance, set in [/obj/limb/proc/update_limb()] + var/skin_color = "Pale 2" - /// body type of the owner, used for limb appearance, set in [/obj/limb/proc/update_limb()] - var/body_type = "mesomorphic" + /// body size of the owner, used for limb appearance, set in [/obj/limb/proc/update_limb()] + var/body_size = "Average" + + /// body muscularity of the owner, used for limb appearance, set in [/obj/limb/proc/update_limb()] + var/body_type = "Lean" /// species of the owner, used for limb appearance, set in [/obj/limb/proc/update_limb()] var/datum/species/species @@ -346,9 +349,9 @@ possible_points += parent if(children) possible_points += children - if(forbidden_limbs.len) + if(length(forbidden_limbs)) possible_points -= forbidden_limbs - if(possible_points.len) + if(length(possible_points)) //And pass the damage around, but not the chance to cut the limb off. var/obj/limb/target = pick(possible_points) if(brute_reduced_by == -1) @@ -365,8 +368,9 @@ //If limb was damaged before and took enough damage, try to cut or tear it off var/no_perma_damage = owner.status_flags & NO_PERMANENT_DAMAGE - if(previous_brute > 0 && !is_ff && body_part != BODY_FLAG_CHEST && body_part != BODY_FLAG_GROIN && !no_limb_loss && !no_perma_damage) - if(CONFIG_GET(flag/limbs_can_break) && brute_dam >= max_damage * CONFIG_GET(number/organ_health_multiplier)) + var/no_bone_break = owner.chem_effect_flags & CHEM_EFFECT_RESIST_FRACTURE + if(previous_brute > 0 && !is_ff && body_part != BODY_FLAG_CHEST && body_part != BODY_FLAG_GROIN && !no_limb_loss && !no_perma_damage && !no_bone_break) + if(CONFIG_GET(flag/limbs_can_break) && brute_dam >= max_damage * CONFIG_GET(number/organ_health_multiplier) && (status & LIMB_BROKEN)) var/cut_prob = brute/max_damage * 5 if(prob(cut_prob)) limb_delimb(damage_source) @@ -473,20 +477,20 @@ This function completely restores a damaged organ to perfect condition. if(!(status & LIMB_SPLINTED_INDESTRUCTIBLE) && (status & LIMB_SPLINTED) && damage > 5 && prob(50 + damage * 2.5)) //If they have it splinted, the splint won't hold. status &= ~LIMB_SPLINTED playsound(get_turf(loc), 'sound/items/splintbreaks.ogg', 20) - to_chat(owner, SPAN_DANGER("The splint on your [display_name] comes apart!")) + to_chat(owner, SPAN_HIGHDANGER("The splint on your [display_name] comes apart!")) owner.pain.apply_pain(PAIN_BONE_BREAK_SPLINTED) owner.update_med_icon() // first check whether we can widen an existing wound var/datum/wound/W - if(wounds.len > 0 && prob(max(50+(number_wounds-1)*10,90))) + if(length(wounds) > 0 && prob(max(50+(number_wounds-1)*10,90))) if((type == CUT || type == BRUISE) && damage >= 5) //we need to make sure that the wound we are going to worsen is compatible with the type of damage... var/compatible_wounds[] = new for(W in wounds) if(W.can_worsen(type, damage)) compatible_wounds += W - if(compatible_wounds.len) + if(length(compatible_wounds)) W = pick(compatible_wounds) W.open_wound(damage) if(type != BURN) @@ -547,6 +551,7 @@ This function completely restores a damaged organ to perfect condition. /obj/limb/proc/remove_all_bleeding(external = FALSE, internal = FALSE) + SEND_SIGNAL(src, COMSIG_LIMB_STOP_BLEEDING, external, internal) if(external) for(var/datum/effects/bleeding/external/B in bleeding_effects_list) qdel(B) @@ -578,8 +583,9 @@ This function completely restores a damaged organ to perfect condition. if(brute_dam || burn_dam) return TRUE if(knitting_time > 0) - return 1 - return 0 + return TRUE + update_wounds() + return FALSE /obj/limb/process() @@ -648,7 +654,7 @@ This function completely restores a damaged organ to perfect condition. //configurable regen speed woo, no-regen hardcore or instaheal hugbox, choose your destiny heal_amt = heal_amt * CONFIG_GET(number/organ_regeneration_multiplier) // amount of healing is spread over all the wounds - heal_amt = heal_amt / (wounds.len + 1) + heal_amt = heal_amt / (length(wounds) + 1) // making it look prettier on scanners heal_amt = round(heal_amt,0.1) @@ -686,22 +692,29 @@ This function completely restores a damaged organ to perfect condition. /obj/limb/proc/update_limb() SHOULD_CALL_PARENT(TRUE) - var/datum/ethnicity/owner_ethnicity = GLOB.ethnicities_list[owner?.ethnicity] + var/datum/skin_color/owner_skin_color = GLOB.skin_color_list[owner?.skin_color] - if(owner_ethnicity) - ethnicity = owner_ethnicity.icon_name + if(owner_skin_color) + skin_color = owner_skin_color.icon_name else - ethnicity = "western" + skin_color = "pale2" - var/datum/body_type/owner_body_type = GLOB.body_types_list[owner?.body_type] + var/datum/body_type/owner_body_type = GLOB.body_type_list[owner?.body_type] if(owner_body_type) body_type = owner_body_type.icon_name else - body_type = "mesomorphic" + body_type = "lean" + + var/datum/body_type/owner_body_size = GLOB.body_size_list[owner?.body_size] + + if(owner_body_size) + body_size = owner_body_size.icon_name + else + body_size = "avg" if(isspeciesyautja(owner)) - ethnicity = owner.ethnicity + skin_color = owner.skin_color body_type = owner.body_type species = owner?.species ? owner.species : GLOB.all_species[SPECIES_HUMAN] @@ -731,7 +744,7 @@ This function completely restores a damaged organ to perfect condition. return limb.icon = species.icobase - limb.icon_state = "[get_limb_icon_name(species, body_type, limb_gender, icon_name, ethnicity)]" + limb.icon_state = "[get_limb_icon_name(species, body_size, body_type, limb_gender, icon_name, skin_color)]" . += limb @@ -741,7 +754,7 @@ This function completely restores a damaged organ to perfect condition. /obj/limb/proc/get_limb_icon_key() SHOULD_CALL_PARENT(TRUE) - return "[species.name]-[body_type]-[limb_gender]-[icon_name]-[ethnicity]-[status]" + return "[species.name]-[body_size]-[body_type]-[limb_gender]-[icon_name]-[skin_color]-[status]" // new damage icon system // returns just the brute/burn damage code @@ -788,7 +801,7 @@ This function completely restores a damaged organ to perfect condition. if(istype(E, /obj/limb/chest) || istype(E, /obj/limb/groin) || istype(E, /obj/limb/head)) continue limbs_to_remove += E - if(limbs_to_remove.len) + if(length(limbs_to_remove)) var/obj/limb/L = pick(limbs_to_remove) var/limb_name = L.display_name L.droplimb(0, delete_limb) @@ -954,7 +967,13 @@ This function completely restores a damaged organ to perfect condition. // OK so maybe your limb just flew off, but if it was attached to a pair of cuffs then hooray! Freedom! release_restraints() - if(vital) owner.death(cause) + if(vital) + var/mob/caused_mob + if(istype(cause, /mob)) + caused_mob = cause + if(!istype(cause, /datum/cause_data)) + cause = create_cause_data("lost vital limb", caused_mob) + owner.death(cause) /* HELPERS @@ -1084,7 +1103,7 @@ treat_grafted var tells it to apply to grafted but unsalved wounds, for burn kit //if the chance was not set by what called fracture(), the endurance check is done instead if(bonebreak_probability == null) //bone break chance is based on endurance, 25% for survivors, erts, 100% for most everyone else. - bonebreak_probability = 100 / Clamp(owner.skills?.get_skill_level(SKILL_ENDURANCE)-1,1,100) //can't be zero + bonebreak_probability = 100 / clamp(owner.skills?.get_skill_level(SKILL_ENDURANCE)-1,1,100) //can't be zero var/list/bonebreak_data = list("bonebreak_probability" = bonebreak_probability) SEND_SIGNAL(owner, COMSIG_HUMAN_BONEBREAK_PROBABILITY, bonebreak_data) @@ -1504,7 +1523,7 @@ treat_grafted var tells it to apply to grafted but unsalved wounds, for burn kit /obj/limb/head/limb_delimb(damage_source) var/obj/item/clothing/head/helmet/owner_helmet = owner.head - if(!istype(owner_helmet) || !owner.allow_gun_usage) + if(!istype(owner_helmet) || (issynth(owner) && !owner.allow_gun_usage)) droplimb(0, 0, damage_source) return @@ -1513,5 +1532,5 @@ treat_grafted var tells it to apply to grafted but unsalved wounds, for burn kit owner.visible_message("[owner]'s [owner_helmet] goes flying off from the impact!", SPAN_USERDANGER("Your [owner_helmet] goes flying off from the impact!")) owner.drop_inv_item_on_ground(owner_helmet) - INVOKE_ASYNC(owner_helmet, TYPE_PROC_REF(/atom/movable, throw_atom), pick(range(get_turf(loc), 1)), 1, SPEED_FAST) + INVOKE_ASYNC(owner_helmet, TYPE_PROC_REF(/atom/movable, throw_atom), pick(range(1, get_turf(loc))), 1, SPEED_FAST) playsound(owner, 'sound/effects/helmet_noise.ogg', 100) diff --git a/code/modules/organs/organ_objects.dm b/code/modules/organs/organ_objects.dm index 7c7622820aac..934a981e6f8f 100644 --- a/code/modules/organs/organ_objects.dm +++ b/code/modules/organs/organ_objects.dm @@ -4,14 +4,20 @@ icon = 'icons/obj/items/organs.dmi' icon_state = "appendix" - health = 100 // Process() ticks before death. - - var/fresh = 3 // Squirts of blood left in it. - var/dead_icon // Icon used when the organ dies. - var/robotic // Is the limb prosthetic? - var/organ_tag // What slot does it go in? - var/organ_type = /datum/internal_organ // Used to spawn the relevant organ data when produced via a machine or spawn(). - var/datum/internal_organ/organ_data // Stores info when removed. + /// Process() ticks before death. + health = 100 + /// Squirts of blood left in it. + var/fresh = 3 + /// Icon used when the organ dies. + var/dead_icon + /// Is the limb prosthetic? + var/robotic + /// What slot does it go in? + var/organ_tag + /// Used to spawn the relevant organ data when produced via a machine or spawn(). + var/organ_type = /datum/internal_organ + /// Stores info when removed. + var/datum/internal_organ/organ_data black_market_value = 25 /obj/item/organ/attack_self(mob/user) @@ -100,7 +106,7 @@ gender = PLURAL organ_tag = "eyes" organ_type = /datum/internal_organ/eyes - var/eye_colour + var/eyes_color /obj/item/organ/liver name = "liver" @@ -108,6 +114,17 @@ organ_tag = "liver" organ_type = /datum/internal_organ/liver +/obj/item/organ/xeno + name = "acidic heart" + desc = "Acidic heart removed from a xenomorph. It spews droplets of acid every so often." + icon_state = "heart_t1" + organ_tag = "heart" + black_market_value = 60 + ///value of the organ in the recycler, heavily varies from size and tier + var/research_value = 1 //depending on the size and tier + ///the caste in a string, which is used in a xenoanalyzer + var/caste_origin // used for desc in xenoanalyzer + //These are here so they can be printed out via the fabricator. /obj/item/organ/heart/prosthetic name = "circulatory pump" @@ -164,13 +181,13 @@ /obj/item/organ/eyes/removed(mob/living/target, mob/living/user) - if(!eye_colour) - eye_colour = list(0,0,0) + if(!eyes_color) + eyes_color = list(0,0,0) ..() //Make sure target is set so we can steal their eye color for later. var/mob/living/carbon/human/H = target if(istype(H)) - eye_colour = list( + eyes_color = list( H.r_eyes ? H.r_eyes : 0, H.g_eyes ? H.g_eyes : 0, H.b_eyes ? H.b_eyes : 0 @@ -189,10 +206,10 @@ // Apply our eye color to the target. var/mob/living/carbon/human/H = target - if(istype(H) && eye_colour) - H.r_eyes = eye_colour[1] - H.g_eyes = eye_colour[2] - H.b_eyes = eye_colour[3] + if(istype(H) && eyes_color) + H.r_eyes = eyes_color[1] + H.g_eyes = eyes_color[2] + H.b_eyes = eyes_color[3] H.update_body() /obj/item/organ/proc/bitten(mob/user) diff --git a/code/modules/organs/wound.dm b/code/modules/organs/wound.dm index 86f4199a2e5b..d9fee4195ad5 100644 --- a/code/modules/organs/wound.dm +++ b/code/modules/organs/wound.dm @@ -56,7 +56,7 @@ // returns 1 if there's a next stage, 0 otherwise /datum/wound/proc/init_stage(initial_damage) - current_stage = stages.len + current_stage = length(stages) while(src.current_stage > 1 && src.damage_list[current_stage-1] <= initial_damage / src.amount) src.current_stage-- @@ -108,7 +108,7 @@ amount -= healed_damage src.damage -= healed_damage - while(src.wound_damage() < damage_list[current_stage] && current_stage < src.desc_list.len) + while(src.wound_damage() < damage_list[current_stage] && current_stage < length(src.desc_list)) current_stage++ desc = desc_list[current_stage] src.min_damage = damage_list[current_stage] diff --git a/code/modules/paperwork/desk_bell.dm b/code/modules/paperwork/desk_bell.dm new file mode 100644 index 000000000000..87eb24d1ca3e --- /dev/null +++ b/code/modules/paperwork/desk_bell.dm @@ -0,0 +1,106 @@ +// A receptionist's bell + +/obj/item/desk_bell + name = "desk bell" + desc = "The cornerstone of any customer service job. You feel an unending urge to ring it." + icon = 'icons/obj/objects.dmi' + icon_state = "desk_bell" + w_class = SIZE_SMALL + embeddable = FALSE + /// The amount of times this bell has been rang, used to check the chance it breaks. + var/times_rang = 0 + /// Is this bell broken? + var/broken_ringer = FALSE + /// Holds the time that the bell can next be rang. + COOLDOWN_DECLARE(ring_cooldown) + /// The length of the cooldown. Setting it to 0 will skip all cooldowns alltogether. + var/ring_cooldown_length = 5 SECONDS // This is here to protect against tinnitus. + /// The sound the bell makes. + var/ring_sound = 'sound/misc/desk_bell.ogg' + +/obj/item/desk_bell/attack_hand(mob/living/user) + if(!ishuman(user)) + return FALSE + if(!anchored) + return ..() + if(!COOLDOWN_FINISHED(src, ring_cooldown)) + return FALSE + if(!ring_bell(user)) + to_chat(user, SPAN_NOTICE("[src] is silent. Some idiot broke it.")) + return FALSE + return TRUE + +/obj/item/desk_bell/MouseDrop(atom/over_object) + var/mob/mob = usr + if(!Adjacent(mob) || anchored) + return + if(!ishuman(mob)) + return + + if(over_object == mob) + mob.put_in_hands(src) + +/obj/item/desk_bell/attackby(obj/item/item, mob/user) + //Repair the desk bell if its broken and we're using a screwdriver. + if(HAS_TRAIT(item, TRAIT_TOOL_SCREWDRIVER)) + if(broken_ringer) + user.visible_message(SPAN_NOTICE("[user] begins repairing [src]..."), SPAN_NOTICE("You begin repairing [src]...")) + if(do_after(user, 5 SECONDS, INTERRUPT_ALL, BUSY_ICON_GENERIC)) + user.visible_message(SPAN_NOTICE("[user] repairs [src]."), SPAN_NOTICE("You repair [src].")) + playsound(src, 'sound/items/Screwdriver.ogg', 50) + broken_ringer = FALSE + times_rang = 0 + return TRUE + return FALSE + + //Return at this point if we're not on a turf so we don't anchor or unanchor inside our bag/hands or inventory. + if(!isturf(loc)) + return + + //Wrenching down and unwrenching. + if(HAS_TRAIT(item, TRAIT_TOOL_WRENCH)) + if(user.a_intent == INTENT_HARM) + visible_message(SPAN_NOTICE("[user] begins taking apart [src]..."), SPAN_NOTICE("You begin taking apart [src]...")) + playsound(src, 'sound/items/deconstruct.ogg', 35) + if(do_after(user, 5 SECONDS, INTERRUPT_ALL, BUSY_ICON_GENERIC)) + visible_message(SPAN_NOTICE("[user] takes apart [src]."), SPAN_NOTICE("You take apart [src].")) + new /obj/item/stack/sheet/metal(get_turf(src)) + qdel(src) + return TRUE + else + user.visible_message(SPAN_NOTICE("[user] begins [anchored ? "un" : ""]securing [src]..."), SPAN_NOTICE("You begin [anchored ? "un" : ""]securing [src]...")) + playsound(src, 'sound/items/Ratchet.ogg', 35, TRUE) + if(!do_after(user, 2 SECONDS, INTERRUPT_ALL, BUSY_ICON_GENERIC)) + return FALSE + user.visible_message(SPAN_NOTICE("[user] [anchored ? "un" : ""]secures [src]."), SPAN_NOTICE("You [anchored ? "un" : ""]secure [src].")) + anchored = !anchored + return TRUE + + +/// Check if the clapper breaks, and if it does, break it. Chance to break is 1% for every 100 rings of the bell. +/obj/item/desk_bell/proc/check_clapper(mob/living/user) + if(prob(times_rang / 100)) + to_chat(user, SPAN_NOTICE("You hear [src]'s clapper fall off of its hinge. Nice job hamfist, you broke it.")) + broken_ringer = TRUE + +/// Ring the bell. +/obj/item/desk_bell/proc/ring_bell(mob/living/user) + if(broken_ringer) + return FALSE + check_clapper(user) + COOLDOWN_START(src, ring_cooldown, ring_cooldown_length) + playsound(src, ring_sound, 80) + flick("desk_bell_activate", src) + times_rang++ + return TRUE + +/obj/item/desk_bell/ares + name = "AI core reception bell" + desc = "The cornerstone of any customer service job. This one is linked to ARES and will notify any active Working Joes upon being rung." + ring_cooldown_length = 60 SECONDS // Prevents spam + +/obj/item/desk_bell/ares/ring_bell(mob/living/user) + if(broken_ringer) + return FALSE + ares_apollo_talk("Attendence requested at AI Core Reception.") + return ..() diff --git a/code/modules/paperwork/filingcabinet.dm b/code/modules/paperwork/filingcabinet.dm index 119c846a93a2..42d42413958f 100644 --- a/code/modules/paperwork/filingcabinet.dm +++ b/code/modules/paperwork/filingcabinet.dm @@ -64,7 +64,7 @@ to_chat(user, SPAN_NOTICE("You can't put [P] in [src]!")) /obj/structure/filingcabinet/attack_hand(mob/user as mob) - if(contents.len <= 0) + if(length(contents) <= 0) to_chat(user, SPAN_NOTICE("\The [src] is empty.")) return diff --git a/code/modules/paperwork/folders.dm b/code/modules/paperwork/folders.dm index ad9da68a591d..0250b9c7d41e 100644 --- a/code/modules/paperwork/folders.dm +++ b/code/modules/paperwork/folders.dm @@ -41,7 +41,7 @@ /obj/item/folder/update_icon() overlays.Cut() - if(contents.len) + if(length(contents)) overlays += "folder_paper" return diff --git a/code/modules/paperwork/notepad.dm b/code/modules/paperwork/notepad.dm index f30d56c4a7eb..bbfec5428830 100644 --- a/code/modules/paperwork/notepad.dm +++ b/code/modules/paperwork/notepad.dm @@ -14,14 +14,14 @@ var/page = 1 var/screen = 0 - var/list/cover_colours = list("red", "green", "black", "blue") - var/cover_colour + var/list/cover_colors = list("red", "green", "black", "blue") + var/cover_color /obj/item/notepad/Initialize(mapload, ...) . = ..() - if(!cover_colour) - cover_colour = pick(cover_colours) - icon_state = initial(icon_state) + "_[cover_colour]" + if(!cover_color) + cover_color = pick(cover_colors) + icon_state = initial(icon_state) + "_[cover_color]" for(var/i = 1 to paper_left) new /obj/item/paper(src) @@ -31,7 +31,7 @@ if(HAS_TRAIT(attack_item, TRAIT_TOOL_PEN) || istype(attack_item, /obj/item/toy/crayon)) close_browser(usr, name) //Closes the dialog - if(page < contents.len) + if(page < length(contents)) page = 1 var/obj/item/paper/paper = contents[page] paper.attackby(attack_item, user) @@ -93,8 +93,8 @@ page-- playsound(loc, "pageturn", 15, 1) if(href_list["remove"]) - if(contents.len < page) - page = contents.len + if(length(contents) < page) + page = length(contents) var/obj/item/ripped_out_page = contents[page] usr.put_in_hands(ripped_out_page) to_chat(usr, SPAN_NOTICE("You rip out [ripped_out_page] from [src].")) @@ -118,6 +118,9 @@ else to_chat(usr, SPAN_NOTICE("You need to hold it in your hands!")) +/obj/item/notepad/proc/operator[](index_num) + return contents[index_num] + /obj/item/notepad/verb/rename() set name = "Rename notepad" set category = "Object" @@ -129,13 +132,13 @@ add_fingerprint(usr) /obj/item/notepad/black - cover_colour = "black" + cover_color = "black" /obj/item/notepad/blue - cover_colour = "blue" + cover_color = "blue" /obj/item/notepad/green - cover_colour = "green" + cover_color = "green" /obj/item/notepad/red - cover_colour = "red" + cover_color = "red" diff --git a/code/modules/paperwork/paper.dm b/code/modules/paperwork/paper.dm index b572b5d9e87b..e1610fb3401a 100644 --- a/code/modules/paperwork/paper.dm +++ b/code/modules/paperwork/paper.dm @@ -75,26 +75,25 @@ /obj/item/paper/get_examine_text(mob/user) . = ..() - if(in_range(user, src) || istype(user, /mob/dead/observer)) + if(in_range(user, src) || isobserver(user)) if(!(istype(user, /mob/dead/observer) || istype(user, /mob/living/carbon/human) || isRemoteControlling(user))) // Show scrambled paper if they aren't a ghost, human, or silicone. - if(photo_list) - for(var/photo in photo_list) - user << browse_rsc(photo_list[photo], photo) - show_browser(user, "[stars(info)][stamps]", name, name, "size=650x700") - onclose(user, name) + read_paper(user,scramble = TRUE) else read_paper(user) else . += SPAN_NOTICE("It is too far away.") -/obj/item/paper/proc/read_paper(mob/user) +/obj/item/paper/proc/read_paper(mob/user, scramble = FALSE) var/datum/asset/asset_datum = get_asset_datum(/datum/asset/simple/paper) asset_datum.send(user) if(photo_list) for(var/photo in photo_list) user << browse_rsc(photo_list[photo], photo) - show_browser(user, "[info][stamps]", name, name, "size=650x700") + var/paper_info = info + if(scramble) + paper_info = stars_decode_html(info) + show_browser(user, "[paper_info][stamps]", name, name, "size=650x700") onclose(user, name) /obj/item/paper/verb/rename() @@ -115,10 +114,7 @@ /obj/item/paper/attack_remote(mob/living/silicon/ai/user as mob) var/dist - if(istype(user) && user.camera) //is AI - dist = get_dist(src, user.camera) - else //cyborg or AI not seeing through a camera - dist = get_dist(src, user) + dist = get_dist(src, user) if(dist < 2) read_paper(user) else @@ -259,7 +255,7 @@ t = replacetext(t, "\[upp\]", "") t = replacetext(t, "\[cmb\]", "") - t = "[t]" + t = "[t]" else // If it is a crayon, and he still tries to use these, make them empty! t = replacetext(t, "\[*\]", "") t = replacetext(t, "\[hr\]", "") @@ -273,7 +269,7 @@ t = replacetext(t, "\[cell\]", "") t = replacetext(t, "\[logo\]", "") - t = "[t]" + t = "[t]" // t = replacetext(t, "#", "") // Junk converted to nothing! @@ -362,8 +358,8 @@ iscrayon = 1 - // if paper is not in usr, then it must be near them, or in a clipboard or folder, which must be in or near usr - if(src.loc != usr && !src.Adjacent(usr) && !((istype(src.loc, /obj/item/clipboard) || istype(src.loc, /obj/item/folder)) && (src.loc.loc == usr || src.loc.Adjacent(usr)) ) ) + // if paper is not in usr, then it must be near them, or in a clipboard, noticeboard or folder, which must be in or near usr + if(src.loc != usr && !src.Adjacent(usr) && !((istype(src.loc, /obj/item/clipboard) || istype(src.loc, /obj/structure/noticeboard) || istype(src.loc, /obj/item/folder)) && (src.loc.loc == usr || src.loc.Adjacent(usr)) ) ) return t = replacetext(t, "\n", "
            ") @@ -409,10 +405,7 @@ if(!p.on) to_chat(user, SPAN_NOTICE("Your pen is not on!")) return - if ( istype(P, /obj/item/tool/pen/robopen) && P:mode == 2 ) - P:RenamePaper(user,src) - else - show_browser(user, "[info_links][stamps]", name, name) // Update the window + show_browser(user, "[info_links][stamps]", name, name) // Update the window //openhelp(user) return @@ -694,7 +687,7 @@ var/datum/reagent/R = GLOB.chemical_reagents_list["[I]"] var/U = G.required_reagents[I] txt += " - [U] [R.name]
            \n" - if(G.required_catalysts && G.required_catalysts.len) + if(LAZYLEN(G.required_catalysts)) txt += "
            \nWhile using the following catalysts:
            \n
            \n" for(var/I in G.required_catalysts) var/datum/reagent/R = GLOB.chemical_reagents_list["[I]"] @@ -842,17 +835,16 @@ else var/U = C.required_reagents[I] info += " - [U] [R.name]
            \n" - if(C.required_catalysts) - if(C.required_catalysts.len) - info += "
            Reaction would require the following catalysts:
            \n" - for(var/I in C.required_catalysts) - var/datum/reagent/R = GLOB.chemical_reagents_list["[I]"] - if(R.chemclass >= CHEM_CLASS_SPECIAL && !GLOB.chemical_data.chemical_identified_list[R.id] && !info_only) - info += " - Unknown emission spectrum
            \n" - completed = FALSE - else - var/U = C.required_catalysts[I] - info += " - [U] [R.name]
            \n" + if(LAZYLEN(C.required_catalysts)) + info += "
            Reaction would require the following catalysts:
            \n" + for(var/I in C.required_catalysts) + var/datum/reagent/R = GLOB.chemical_reagents_list["[I]"] + if(R.chemclass >= CHEM_CLASS_SPECIAL && !GLOB.chemical_data.chemical_identified_list[R.id] && !info_only) + info += " - Unknown emission spectrum
            \n" + completed = FALSE + else + var/U = C.required_catalysts[I] + info += " - [U] [R.name]
            \n" else if(GLOB.chemical_gen_classes_list["C1"].Find(S.id)) info += " - [S.name]
            \n" else diff --git a/code/modules/paperwork/paper_bundle.dm b/code/modules/paperwork/paper_bundle.dm index 8cbb7a266ffe..c0d9bee3aa85 100644 --- a/code/modules/paperwork/paper_bundle.dm +++ b/code/modules/paperwork/paper_bundle.dm @@ -44,8 +44,8 @@ else if(HAS_TRAIT(W, TRAIT_TOOL_PEN) || istype(W, /obj/item/toy/crayon)) close_browser(usr, name) //Closes the dialog - if(page < contents.len) - page = contents.len + if(page < length(contents)) + page = length(contents) P = contents[page] P.attackby(W, user) @@ -148,8 +148,8 @@ page-- playsound(src.loc, "pageturn", 15, 1) if(href_list["remove"]) - if(contents.len < page) - page = contents.len + if(length(contents) < page) + page = length(contents) var/obj/item/W = contents[page] usr.put_in_hands(W) to_chat(usr, SPAN_NOTICE("You remove the [W.name] from the bundle.")) @@ -175,6 +175,9 @@ else to_chat(usr, SPAN_NOTICE("You need to hold it in your hands!")) +/obj/item/paper_bundle/proc/operator[](index_num) + return contents[index_num] + /obj/item/paper_bundle/verb/rename() set name = "Rename bundle" set category = "Object" @@ -198,7 +201,7 @@ qdel(src) /obj/item/paper_bundle/update_icon() - if(contents.len) + if(length(contents)) var/obj/item/I = contents[1] icon_state = I.icon_state overlays = I.overlays diff --git a/code/modules/paperwork/paperbin.dm b/code/modules/paperwork/paperbin.dm index c094c8f32569..4c74cad468e6 100644 --- a/code/modules/paperwork/paperbin.dm +++ b/code/modules/paperwork/paperbin.dm @@ -28,7 +28,7 @@ /obj/item/paper_bin/attack_hand(mob/user) var/response = "" - if(!papers.len > 0) + if(!length(papers) > 0) response = alert(user, "What kind of paper?", "Paper type request", "Regular", sec_paper_type, "Cancel") if (response != "Regular" && response != "Carbon-Copy" && response != "Company Document" && response != "USCM Document") add_fingerprint(user) @@ -39,8 +39,8 @@ update_icon() var/obj/item/paper/P - if(papers.len > 0) //If there's any custom paper on the stack, use that instead of creating a new paper. - P = papers[papers.len] + if(length(papers) > 0) //If there's any custom paper on the stack, use that instead of creating a new paper. + P = papers[length(papers)] papers.Remove(P) else if (response == "Regular") @@ -96,3 +96,29 @@ if (response != "Carbon-Copy" && response != "Company Document" && response != "USCM Document") return sec_paper_type = response + +/// Relic from the days of cyborgs, kept for flavour, an handheld paper +/// dispenser that was supposed to print pre-filled forms but never did. +/obj/item/form_printer + name = "paper dispenser" + icon = 'icons/obj/items/paper.dmi' + icon_state = "paper_bin1" + item_state = "sheet-metal" + +/obj/item/form_printer/attack(mob/living/carbon/M, mob/living/carbon/user) + return + +/obj/item/form_printer/afterattack(atom/target, mob/living/user, flag, params) + if(!target || !flag) + return + + if(istype(target,/obj/structure/surface/table)) + deploy_paper(get_turf(target)) + +/obj/item/form_printer/attack_self(mob/user) + ..() + deploy_paper(get_turf(src)) + +/obj/item/form_printer/proc/deploy_paper(turf/T) + T.visible_message(SPAN_NOTICE("\The [src.loc] dispenses a sheet of crisp white paper.")) + new /obj/item/paper(T) diff --git a/code/modules/paperwork/photocopier.dm b/code/modules/paperwork/photocopier.dm index b47f630974e6..df421e8424cb 100644 --- a/code/modules/paperwork/photocopier.dm +++ b/code/modules/paperwork/photocopier.dm @@ -1,7 +1,9 @@ +/// Normal Photocopier, made by Seegson /obj/structure/machinery/photocopier name = "photocopier" icon = 'icons/obj/structures/machinery/library.dmi' icon_state = "bigscanner" + desc = "A photocopier used for copying... you know, photos! Also useful for copying documents on paper. This specific model has been manufactured by Seegson in a cheaper frame than most modern photocopiers. It uses more primitive copying technology resulting in more toner waste and less printing capabilities. Nonetheless, its cheap construction means cheaper costs, and for people that only need to print a paper or two most of the time, it becomes cost-effective." anchored = TRUE density = TRUE use_power = USE_POWER_IDLE @@ -11,9 +13,15 @@ var/obj/item/paper/copy = null //what's in the copier! var/obj/item/photo/photocopy = null var/obj/item/paper_bundle/bundle = null - var/copies = 1 //how many copies to print! - var/toner = 30 //how much toner is left! woooooo~ - var/maxcopies = 10 //how many copies can be copied at once- idea shamelessly stolen from bs12's copier! + ///how many copies to print! + var/copies = 1 + ///how much toner is left! woooooo~ + var/toner = 45 + ///how many copies can be copied at once- idea shamelessly stolen from bs12's copier! + var/maxcopies = 10 + ///the flick state to use when inserting paper into the machine + var/animate_state = "bigscanner1" + /obj/structure/machinery/photocopier/attack_remote(mob/user as mob) return attack_hand(user) @@ -31,8 +39,6 @@ dat += "+

            " else if(toner) dat += "Please insert paper to copy.

            " - if(istype(user,/mob/living/silicon)) - dat += "Print photo from database

            " dat += "Current toner level: [toner]" if(!toner) dat +="
            Please insert a new toner cartridge!" @@ -111,27 +117,6 @@ if(copies < maxcopies) copies++ updateUsrDialog() - else if(href_list["aipic"]) - if(!istype(usr,/mob/living/silicon)) return - if(toner >= 5) - var/mob/living/silicon/tempAI = usr - var/obj/item/device/camera/siliconcam/camera = tempAI.aiCamera - - if(!camera) - return - var/datum/picture/selection = camera.selectpicture() - if (!selection) - return - - var/obj/item/photo/p = new /obj/item/photo (src.loc) - p.construct(selection) - if (p.desc == "") - p.desc += "Copied by [tempAI.name]" - else - p.desc += " - Copied by [tempAI.name]" - toner -= 5 - sleep(15) - updateUsrDialog() /obj/structure/machinery/photocopier/attackby(obj/item/O as obj, mob/user as mob) if(istype(O, /obj/item/paper)) @@ -139,7 +124,7 @@ if(user.drop_inv_item_to_loc(O, src)) copy = O to_chat(user, SPAN_NOTICE("You insert the paper into \the [src].")) - flick("bigscanner1", src) + flick(animate_state, src) updateUsrDialog() else to_chat(user, SPAN_NOTICE("There is already something in \the [src].")) @@ -148,7 +133,7 @@ if(user.drop_inv_item_to_loc(O, src)) photocopy = O to_chat(user, SPAN_NOTICE("You insert the photo into \the [src].")) - flick("bigscanner1", src) + flick(animate_state, src) updateUsrDialog() else to_chat(user, SPAN_NOTICE("There is already something in \the [src].")) @@ -157,13 +142,13 @@ if(user.drop_inv_item_to_loc(O, src)) bundle = O to_chat(user, SPAN_NOTICE("You insert the bundle into \the [src].")) - flick("bigscanner1", src) + flick(animate_state, src) updateUsrDialog() else if(istype(O, /obj/item/device/toner)) if(toner == 0) if(user.temp_drop_inv_item(O)) qdel(O) - toner = 30 + toner = initial(toner) to_chat(user, SPAN_NOTICE("You insert the toner cartridge into \the [src].")) updateUsrDialog() else @@ -214,7 +199,7 @@ //Iterates through stamps and puts a matching gray overlay onto the copy var/image/img // - for (var/j = 1, j <= original.ico.len, j++) + for (var/j = 1, j <= length(original.ico), j++) if (findtext(original.ico[j], "cap") || findtext(original.ico[j], "cent")) img = image('icons/obj/items/paper.dmi', "paper_stamp-circle") else if (findtext(original.ico[j], "deny")) @@ -262,6 +247,21 @@ return p +/// Upgraded photocopier, straight upgrade from the normal photocopier, made by Weyland-Yutani +/obj/structure/machinery/photocopier/wyphotocopier + name = "photocopier" + icon = 'icons/obj/structures/machinery/library.dmi' + icon_state = "bigscannerpro" + desc = "A photocopier used for copying... you know, photos! Also useful for copying documents on paper. This specific model has been manufactured by Weyland-Yutani in a more modern and robust frame than the average photocopiers you see from smaller companies. It uses some of the most advanced technologies in the area of paper-printing such as bigger toner economy and much higher printing capabilities. All that makes it the favorite among consumers that need to print high amounts of paperwork for their daily duties." + idle_power_usage = 50 + active_power_usage = 300 + copies = 1 + toner = 180 + maxcopies = 30 + animate_state = "bigscannerpro1" + + +/// The actual toner cartridge used in photcopiers /obj/item/device/toner name = "toner cartridge" icon_state = "tonercartridge" diff --git a/code/modules/paperwork/photography.dm b/code/modules/paperwork/photography.dm index cebb4ad613b0..df39248e343a 100644 --- a/code/modules/paperwork/photography.dm +++ b/code/modules/paperwork/photography.dm @@ -17,6 +17,10 @@ item_state = "electropack" w_class = SIZE_TINY +/** Picture metadata */ +/datum/picture + var/name = "image" + var/list/fields = list() /* * photo * @@ -46,7 +50,7 @@ ..() /obj/item/photo/get_examine_text(mob/user) - if(in_range(user, src)) + if(in_range(user, src) || isobserver(user)) show(user) return list(desc) else @@ -86,7 +90,7 @@ icon_state = "album" item_state = "briefcase" can_hold = list(/obj/item/photo,) - storage_slots = 20 + storage_slots = 28 /obj/item/storage/photo_album/MouseDrop(obj/over_object as obj) @@ -118,9 +122,14 @@ /obj/item/device/camera name = "camera" icon = 'icons/obj/items/items.dmi' - desc = "A polaroid camera. 10 photos left." + desc = "A polaroid camera." icon_state = "camera" - item_state = "electropack" + item_state = "camera" + item_icons = list( + WEAR_L_HAND = 'icons/mob/humans/onmob/items_lefthand_0.dmi', + WEAR_R_HAND = 'icons/mob/humans/onmob/items_righthand_0.dmi' + ) + flags_item = TWOHANDED w_class = SIZE_SMALL flags_atom = FPRINT|CONDUCT flags_equip_slot = SLOT_WAIST @@ -128,10 +137,22 @@ black_market_value = 20 var/pictures_max = 10 var/pictures_left = 10 - var/on = 1 - var/icon_on = "camera" - var/icon_off = "camera_off" - var/size = 3 + var/size = 7 + +/obj/item/device/camera/get_examine_text(mob/user) + . = ..() + . += "It has [pictures_left] photos left." + +/obj/item/device/camera/attack_self(mob/user) //wielding capabilities + . = ..() + if(flags_item & WIELDED) + unwield(user) + else + wield(user) + +/obj/item/device/camera/dropped(mob/user) + ..() + unwield(user) /obj/item/device/camera/verb/change_size() set name = "Set Photo Focus" @@ -145,24 +166,15 @@ /obj/item/device/camera/attack(mob/living/carbon/human/M, mob/user) return -/obj/item/device/camera/attack_self(mob/user) - ..() - on = !on - if(on) - src.icon_state = icon_on - else - src.icon_state = icon_off - to_chat(user, "You switch the camera [on ? "on" : "off"].") - /obj/item/device/camera/attackby(obj/item/I, mob/user) if(istype(I, /obj/item/device/camera_film)) - if(pictures_left) - to_chat(user, SPAN_NOTICE("[src] still has some film in it!")) + if(pictures_left > (pictures_max - 10)) + to_chat(user, SPAN_NOTICE("[src] cannot fit more film in it!")) return to_chat(user, SPAN_NOTICE("You insert [I] into [src].")) if(user.temp_drop_inv_item(I)) qdel(I) - pictures_left = pictures_max + pictures_left += 10 return ..() @@ -266,24 +278,19 @@ return mob_detail /obj/item/device/camera/afterattack(atom/target as mob|obj|turf|area, mob/user as mob, flag) - if(!on || !pictures_left || ismob(target.loc) || isstorage(target.loc)) + if(pictures_left <= 0) + to_chat(user, SPAN_WARNING("There isn't enough film in the [src] to take a photo.")) return - if(user.contains(target) || istype(target, /atom/movable/screen)) + if(ismob(target.loc) || isstorage(target.loc) || user.contains(target) || istype(target, /atom/movable/screen)) + return + if(!(flags_item & WIELDED)) + to_chat(user, SPAN_WARNING("You need to wield the [src] with both hands to take a photo!")) return - playsound(loc, pick('sound/items/polaroid1.ogg', 'sound/items/polaroid2.ogg'), 15, 1) - pictures_left-- - desc = "A polaroid camera. It has [pictures_left] photos left." to_chat(user, SPAN_NOTICE("[pictures_left] photos left.")) - captureimage(target, user, flag) - - icon_state = icon_off - on = 0 - spawn(64) - icon_state = icon_on - on = 1 + addtimer(CALLBACK(src, PROC_REF(captureimage), target, user, flag), 1 SECONDS) /obj/item/device/camera/proc/captureimage(atom/target, mob/user, flag) var/mob_descriptions = "" @@ -339,10 +346,68 @@ name = "Old Camera" desc = "An old, slightly beat-up digital camera, with a cheap photo printer taped on. It's a nice shade of blue." icon_state = "oldcamera" - icon_on = "oldcamera" - icon_off = "oldcamera_off" pictures_left = 30 +/obj/item/device/camera/broadcasting + name = "Broadcasting Camera" + desc = "Actively document everything you see, from the mundanity of shipside to the brutal battlefields below. Has a built-in printer for action shots." + icon_state = "broadcastingcamera" + item_state = "broadcastingcamera" + pictures_left = 20 + pictures_max = 20 + w_class = SIZE_HUGE + flags_equip_slot = NO_FLAGS //cannot be equiped + var/obj/structure/machinery/camera/correspondent/linked_cam + +/obj/item/device/camera/broadcasting/Initialize(mapload, ...) + . = ..() + linked_cam = new(loc, src) + linked_cam.status = FALSE + RegisterSignal(src, COMSIG_COMPONENT_ADDED, PROC_REF(handle_rename)) + +/obj/item/device/camera/broadcasting/Destroy() + clear_broadcast() + return ..() + +/obj/item/device/camera/broadcasting/wield(mob/user) + . = ..() + if(!.) + return + flags_atom |= (USES_HEARING|USES_SEEING) + if(!linked_cam || QDELETED(linked_cam)) + linked_cam = new(loc, src) + else + linked_cam.status = TRUE + linked_cam.forceMove(loc) + SEND_SIGNAL(src, COMSIG_BROADCAST_GO_LIVE) + to_chat(user, SPAN_NOTICE("[src] begins to buzz softly as you go live.")) + +/obj/item/device/camera/broadcasting/unwield(mob/user) + . = ..() + flags_atom &= ~(USES_HEARING|USES_SEEING) + linked_cam.status = FALSE + +/obj/item/device/camera/broadcasting/proc/handle_rename(obj/item/camera, datum/component/label) + SIGNAL_HANDLER + if(!istype(label, /datum/component/label)) + return + linked_cam.c_tag = get_broadcast_name() + +/obj/item/device/camera/broadcasting/proc/clear_broadcast() + if(!QDELETED(linked_cam)) + QDEL_NULL(linked_cam) + +/obj/item/device/camera/broadcasting/proc/get_broadcast_name() + var/datum/component/label/src_label_component = GetComponent(/datum/component/label) + if(src_label_component) + return src_label_component.label_name + return "Broadcast [serial_number]" + +/obj/item/device/camera/broadcasting/hear_talk(mob/living/sourcemob, message, verb = "says", datum/language/language, italics = FALSE) + SEND_SIGNAL(src, COMSIG_BROADCAST_HEAR_TALK, sourcemob, message, verb, language, italics, get_dist(sourcemob, src) < 3) + +/obj/item/device/camera/broadcasting/see_emote(mob/living/sourcemob, emote, audible = FALSE) + SEND_SIGNAL(src, COMSIG_BROADCAST_SEE_EMOTE, sourcemob, emote, audible, get_dist(sourcemob, src) < 3 && audible) /obj/item/photo/proc/construct(datum/picture/P) icon = P.fields["icon"] diff --git a/code/modules/paperwork/silicon_photography.dm b/code/modules/paperwork/silicon_photography.dm deleted file mode 100644 index 0a82fde5c88b..000000000000 --- a/code/modules/paperwork/silicon_photography.dm +++ /dev/null @@ -1,170 +0,0 @@ -/* -* AI-specific * -**************/ -/datum/picture - var/name = "image" - var/list/fields = list() - -/obj/item/device/camera/siliconcam - var/in_camera_mode = 0 - var/photos_taken = 0 - var/list/aipictures = list() - -/obj/item/device/camera/siliconcam/ai_camera //camera AI can take pictures with - name = "AI photo camera" - -/obj/item/device/camera/siliconcam/robot_camera //camera cyborgs can take pictures with - name = "Cyborg photo camera" - -/obj/item/device/camera/siliconcam/drone_camera //currently doesn't offer the verbs, thus cannot be used - name = "Drone photo camera" - -/obj/item/device/camera/siliconcam/proc/injectaialbum(datum/picture/P, sufix = "") //stores image information to a list similar to that of the datacore - photos_taken++ - P.fields["name"] = "Image [photos_taken][sufix]" - aipictures += P - -/obj/item/device/camera/siliconcam/proc/injectmasteralbum(datum/picture/P) //stores image information to a list similar to that of the datacore - var/mob/living/silicon/robot/C = src.loc - if(C.connected_ai) - var/mob/A = P.fields["author"] - C.connected_ai.aiCamera.injectaialbum(P, " (taken by [A.name])") - to_chat(C.connected_ai, SPAN_UNCONSCIOUS("Image recorded and saved by [name]")) - to_chat(usr, SPAN_UNCONSCIOUS("Image recorded and saved to remote database")) //feedback to the Cyborg player that the picture was taken - else - injectaialbum(P) - to_chat(usr, SPAN_UNCONSCIOUS("Image recorded")) - -/obj/item/device/camera/siliconcam/proc/selectpicture(obj/item/device/camera/siliconcam/cam) - if(!cam) - cam = getsource() - - var/list/nametemp = list() - var/find - if(cam.aipictures.len == 0) - to_chat(usr, SPAN_DANGER("No images saved")) - return - for(var/datum/picture/t in cam.aipictures) - nametemp += t.fields["name"] - find = tgui_input_list(usr, "Select image (numbered in order taken)", "Camera", nametemp) - - for(var/datum/picture/q in cam.aipictures) - if(q.fields["name"] == find) - return q - -/obj/item/device/camera/siliconcam/proc/viewpictures() - var/datum/picture/selection = selectpicture() - - if(!selection) - return - - var/obj/item/photo/P = new/obj/item/photo() - P.construct(selection) - P.show(usr) - to_chat(usr, P.desc) - - // TG uses a special garbage collector... qdel(P) - qdel(P) //so 10 thousand pictures items are not left in memory should an AI take them and then view them all. - -/obj/item/device/camera/siliconcam/proc/deletepicture() - var/datum/picture/selection = selectpicture() - - if(!selection) - return - - aipictures -= selection - to_chat(usr, SPAN_UNCONSCIOUS("Image deleted")) - -/obj/item/device/camera/siliconcam/proc/toggle_camera_mode() - if(in_camera_mode) - camera_mode_off() - else - camera_mode_on() - -/obj/item/device/camera/siliconcam/proc/camera_mode_off() - src.in_camera_mode = 0 - to_chat(usr, "Camera Mode deactivated") - -/obj/item/device/camera/siliconcam/proc/camera_mode_on() - src.in_camera_mode = 1 - to_chat(usr, "Camera Mode activated") - -/obj/item/device/camera/siliconcam/ai_camera/printpicture(mob/user, datum/picture/P) - injectaialbum(P) - to_chat(usr, SPAN_UNCONSCIOUS("Image recorded")) - -/obj/item/device/camera/siliconcam/robot_camera/printpicture(mob/user, datum/picture/P) - injectmasteralbum(P) - -/obj/item/device/camera/siliconcam/ai_camera/verb/take_image() - set category = "AI Commands" - set name = "Images - Snap" - set desc = "Takes an image" - set src in usr - - toggle_camera_mode() - -/obj/item/device/camera/siliconcam/ai_camera/verb/view_images() - set category = "AI Commands" - set name = "Images - View" - set desc = "View images" - set src in usr - - viewpictures() - -/obj/item/device/camera/siliconcam/ai_camera/verb/delete_images() - set category = "AI Commands" - set name = "Images - Delete" - set desc = "Delete image" - set src in usr - - deletepicture() - -/obj/item/device/camera/siliconcam/robot_camera/verb/take_image() - set category ="Robot Commands" - set name = "Images - Snap" - set desc = "Takes an image" - set src in usr - - toggle_camera_mode() - -/obj/item/device/camera/siliconcam/robot_camera/verb/view_images() - set category ="Robot Commands" - set name = "Images - View" - set desc = "View images" - set src in usr - - viewpictures() - -/obj/item/device/camera/siliconcam/robot_camera/verb/delete_images() - set category = "Robot Commands" - set name = "Images - Delete" - set desc = "Delete a local image" - set src in usr - - // Explicitly only allow deletion from the local camera - var/mob/living/silicon/robot/C = src.loc - if(C.connected_ai) - to_chat(C, "Not allowed to delete from the remote database.") - return - - deletepicture() - -/obj/item/device/camera/siliconcam/proc/getsource() - if(ismob(src.loc)) - var/mob/M = src.loc - if(isRemoteControlling(M)) - return src - - var/mob/living/silicon/robot/C = src.loc - var/obj/item/device/camera/siliconcam/Cinfo - if(C.connected_ai) - Cinfo = C.connected_ai.aiCamera - else - Cinfo = src - return Cinfo - -/mob/living/silicon/proc/GetPicture() - if(!aiCamera) - return - return aiCamera.selectpicture() diff --git a/code/modules/power/apc.dm b/code/modules/power/apc.dm index dd0327e3821d..6c1c234eaadd 100644 --- a/code/modules/power/apc.dm +++ b/code/modules/power/apc.dm @@ -190,8 +190,9 @@ GLOBAL_LIST_INIT(apc_wire_descriptions, list( ui.open() /obj/structure/machinery/power/apc/ui_status(mob/user) - if(!opened && can_use(user, 1)) - . = UI_INTERACTIVE + . = ..() + if(opened || !can_use(user, TRUE)) + return UI_DISABLED /obj/structure/machinery/power/apc/ui_state(mob/user) return GLOB.not_incapacitated_and_adjacent_state @@ -210,6 +211,7 @@ GLOBAL_LIST_INIT(apc_wire_descriptions, list( "chargingStatus" = charging, "totalLoad" = display_power(lastused_total), "coverLocked" = coverlocked, + "siliconUser" = FALSE, "powerChannels" = list( list( @@ -455,13 +457,13 @@ GLOBAL_LIST_INIT(apc_wire_descriptions, list( icon_state = "apcewires" if(!(update_state & UPSTATE_ALLGOOD)) - if(overlays.len) + if(length(overlays)) overlays = 0 return if(update & 2) - if(overlays.len) + if(length(overlays)) overlays = 0 if(!(stat & (BROKEN|MAINT)) && update_state & UPSTATE_ALLGOOD) @@ -1371,3 +1373,7 @@ GLOBAL_LIST_INIT(apc_wire_descriptions, list( crash_break_probability = 0 #undef APC_UPDATE_ICON_COOLDOWN + +// apc that start at zero charge. +/obj/structure/machinery/power/apc/nocharge + start_charge = 0 diff --git a/code/modules/power/batteryrack.dm b/code/modules/power/batteryrack.dm index 6956079a6cb0..5630f13a048d 100644 --- a/code/modules/power/batteryrack.dm +++ b/code/modules/power/batteryrack.dm @@ -94,7 +94,7 @@ /obj/structure/machinery/power/smes/batteryrack/chargedisplay() - return round(4 * charge/(capacity ? capacity : 5e6)) + return floor(4 * charge/(capacity ? capacity : 5e6)) /obj/structure/machinery/power/smes/batteryrack/attackby(obj/item/W as obj, mob/user as mob) //these can only be moved by being reconstructed, solves having to remake the powernet. @@ -246,7 +246,7 @@ if(charge < 0.0001) outputting = 0 // stop output if charge falls to zero - overcharge_percent = round((charge / capacity) * 100) + overcharge_percent = floor((charge / capacity) * 100) if (overcharge_percent > 115) //115% is the minimum overcharge for anything to happen overcharge_consequences() diff --git a/code/modules/power/cell.dm b/code/modules/power/cell.dm index 31a096a3a2ee..6d67f207cf12 100644 --- a/code/modules/power/cell.dm +++ b/code/modules/power/cell.dm @@ -63,9 +63,9 @@ /obj/item/cell/get_examine_text(mob/user) . = ..() if(maxcharge <= 2500) - . += SPAN_NOTICE("The manufacturer's label states this cell has a power rating of [maxcharge], and that you should not swallow it.\nThe charge meter reads [round(src.percent() )]%.") + . += SPAN_NOTICE("The manufacturer's label states this cell has a power rating of [maxcharge], and that you should not swallow it.\nThe charge meter reads [floor(src.percent() )]%.") else - . += SPAN_NOTICE("This power cell has an exciting chrome finish, as it is an uber-capacity cell type! It has a power rating of [maxcharge]!\nThe charge meter reads [round(src.percent() )]%.") + . += SPAN_NOTICE("This power cell has an exciting chrome finish, as it is an uber-capacity cell type! It has a power rating of [maxcharge]!\nThe charge meter reads [floor(src.percent() )]%.") if(crit_fail) . += SPAN_DANGER("This power cell seems to be faulty.") diff --git a/code/modules/power/lighting.dm b/code/modules/power/lighting.dm index 8f138d2c905f..c95fa6af5045 100644 --- a/code/modules/power/lighting.dm +++ b/code/modules/power/lighting.dm @@ -390,7 +390,7 @@ else if(status != LIGHT_BROKEN && status != LIGHT_EMPTY) - if(prob(1+W.force * 5)) + if(prob(1+W.force * W.demolition_mod * 5)) to_chat(user, "You hit the light, and it smashes!") for(var/mob/M as anything in viewers(src)) @@ -530,7 +530,7 @@ L.update() - if(user.put_in_active_hand(L)) //succesfully puts it in our active hand + if(user.put_in_active_hand(L)) //successfully puts it in our active hand L.add_fingerprint(user) else L.forceMove(loc) //if not, put it on the ground diff --git a/code/modules/power/port_gen.dm b/code/modules/power/port_gen.dm index 6a20e9cfe78e..bb158ae30b5e 100644 --- a/code/modules/power/port_gen.dm +++ b/code/modules/power/port_gen.dm @@ -33,7 +33,7 @@ tank [un]loading stuff turn on/off /obj/structure/machinery/power/port_gen/get_examine_text(mob/user) -display round(lastgen) and phorontank amount +display floor(lastgen) and phorontank amount */ @@ -168,8 +168,8 @@ display round(lastgen) and phorontank amount temp_rating += SP.rating for(var/obj/item/CP in component_parts) temp_reliability += CP.reliability - reliability = min(round(temp_reliability / 4), 100) - power_gen = round(initial(power_gen) * (max(2, temp_rating) / 2)) + reliability = min(floor(temp_reliability / 4), 100) + power_gen = floor(initial(power_gen) * (max(2, temp_rating) / 2)) /obj/structure/machinery/power/port_gen/pacman/get_examine_text(mob/user) . = ..() @@ -196,8 +196,8 @@ display round(lastgen) and phorontank amount var/temp = min(needed_sheets, sheet_left) needed_sheets -= temp sheet_left -= temp - sheets -= round(needed_sheets) - needed_sheets -= round(needed_sheets) + sheets -= floor(needed_sheets) + needed_sheets -= floor(needed_sheets) if (sheet_left <= 0 && sheets > 0) sheet_left = 1 - needed_sheets sheets-- diff --git a/code/modules/power/power.dm b/code/modules/power/power.dm index 00e6b92eab8f..9aefa21d0f7a 100644 --- a/code/modules/power/power.dm +++ b/code/modules/power/power.dm @@ -81,7 +81,7 @@ if(has_power || !src.needs_power) if(machine_processing) if(stat & NOPOWER) - addToListNoDupe(GLOB.processing_machines, src) // power interupted us, start processing again + addToListNoDupe(GLOB.processing_machines, src) // power interrupted us, start processing again stat &= ~NOPOWER src.update_use_power(USE_POWER_IDLE) diff --git a/code/modules/power/power_monitor.dm b/code/modules/power/power_monitor.dm index d39e3cbb8c0a..74633cf368a5 100644 --- a/code/modules/power/power_monitor.dm +++ b/code/modules/power/power_monitor.dm @@ -57,7 +57,7 @@ t += "" - if(L.len > 0) + if(length(L) > 0) var/total_demand = 0 t += "Area Eqp./Lgt./Env. Load Cell
            " @@ -67,7 +67,7 @@ for(var/obj/structure/machinery/power/apc/A in L) t += copytext(add_tspace("\The [A.area]", 30), 1, 30) - t += " [S[A.equipment+1]] [S[A.lighting+1]] [S[A.environ+1]] [add_lspace(A.lastused_total, 6)] [A.cell ? "[add_lspace(round(A.cell.percent()), 3)]% [chg[A.charging+1]]" : " N/C"]
            " + t += " [S[A.equipment+1]] [S[A.lighting+1]] [S[A.environ+1]] [add_lspace(A.lastused_total, 6)] [A.cell ? "[add_lspace(floor(A.cell.percent()), 3)]% [chg[A.charging+1]]" : " N/C"]
            " total_demand += A.lastused_total t += "
            Total demand: [total_demand] W
            " diff --git a/code/modules/power/powernet.dm b/code/modules/power/powernet.dm index b48acda29df1..5d09a06fc633 100644 --- a/code/modules/power/powernet.dm +++ b/code/modules/power/powernet.dm @@ -22,11 +22,11 @@ viewload = 0.8*viewload + 0.2*load - viewload = round(viewload) + viewload = floor(viewload) var/numapc = 0 - if(nodes && nodes.len) // Added to fix a bad list bug -- TLE + if(LAZYLEN(nodes)) // Added to fix a bad list bug -- TLE for(var/obj/structure/machinery/power/terminal/term in nodes) if( istype( term.master, /obj/structure/machinery/power/apc ) ) numapc++ @@ -45,7 +45,7 @@ perapc = avail/numapc + perapc_excess if( netexcess > 100) // if there was excess power last cycle - if(nodes && nodes.len) + if(LAZYLEN(nodes)) for(var/obj/structure/machinery/power/smes/S in nodes) // find the SMESes in the network if(S.powernet == src) S.restore() // and restore some of the power that was used diff --git a/code/modules/power/smes.dm b/code/modules/power/smes.dm index 7cf72ce1cb81..d05b34e62b2c 100644 --- a/code/modules/power/smes.dm +++ b/code/modules/power/smes.dm @@ -42,8 +42,6 @@ /obj/structure/machinery/power/smes/Initialize() . = ..() - if(!powernet) - connect_to_network() dir_loop: for(var/d in GLOB.cardinals) @@ -56,14 +54,25 @@ stat |= BROKEN return terminal.master = src - if(!terminal.powernet) - terminal.connect_to_network() updateicon() start_processing() if(!should_be_mapped) warning("Non-buildable or Non-magical SMES at [src.x]X [src.y]Y [src.z]Z") + return INITIALIZE_HINT_ROUNDSTART + +/obj/structure/machinery/power/smes/LateInitialize() + . = ..() + + if(QDELETED(src)) + return + + if(!powernet && !connect_to_network()) + CRASH("[src] has failed to connect to a power network. Check that it has been mapped correctly.") + if(terminal && !terminal.powernet) + terminal.connect_to_network() + /obj/structure/machinery/power/smes/proc/updateicon() overlays.Cut() if(stat & BROKEN) return @@ -85,7 +94,7 @@ /obj/structure/machinery/power/smes/proc/chargedisplay() - return round(5.5*charge/(capacity ? capacity : 5e6)) + return floor(5.5*charge/(capacity ? capacity : 5e6)) #define SMESRATE 0.05 // rate of internal charge to external power @@ -272,14 +281,13 @@ // TGUI STUFF \\ /obj/structure/machinery/power/smes/ui_status(mob/user) - if(!(stat & BROKEN) && !open_hatch) - . = UI_INTERACTIVE - -/obj/structure/machinery/power/smes/ui_state(mob/user) + . = ..() if(stat & BROKEN) return UI_CLOSE if(open_hatch) return UI_DISABLED + +/obj/structure/machinery/power/smes/ui_state(mob/user) return GLOB.not_incapacitated_and_adjacent_state /obj/structure/machinery/power/smes/tgui_interact(mob/user, datum/tgui/ui) diff --git a/code/modules/power/smes_construction.dm b/code/modules/power/smes_construction.dm index 1eb249b5ecfa..e3324efbbc1a 100644 --- a/code/modules/power/smes_construction.dm +++ b/code/modules/power/smes_construction.dm @@ -10,7 +10,7 @@ var/max_coils = 6 //30M capacity, 1.5MW input/output when fully upgraded /w default coils var/cur_coils = 1 // Current amount of installed coils var/safeties_enabled = 1 // If 0 modifications can be done without discharging the SMES, at risk of critical failure. - var/failing = 0 // If 1 critical failure has occured and SMES explosion is imminent. + var/failing = 0 // If 1 critical failure has occurred and SMES explosion is imminent. should_be_mapped = 1 unslashable = TRUE unacidable = TRUE @@ -39,7 +39,7 @@ capacity += C.ChargeCapacity input_level_max += C.IOCapacity output_level_max += C.IOCapacity - charge = between(0, charge, capacity) + charge = clamp(charge, 0, capacity) return 1 else return 0 @@ -199,7 +199,7 @@ return // Probability of failure if safety circuit is disabled (in %) - var/failure_probability = round((charge / capacity) * 100) + var/failure_probability = floor((charge / capacity) * 100) // If failure probability is below 5% it's usually safe to do modifications if (failure_probability < 5) diff --git a/code/modules/projectiles/ammo_boxes/ammo_boxes.dm b/code/modules/projectiles/ammo_boxes/ammo_boxes.dm index df8a7d7bdd76..c0139c97f66f 100644 --- a/code/modules/projectiles/ammo_boxes/ammo_boxes.dm +++ b/code/modules/projectiles/ammo_boxes/ammo_boxes.dm @@ -78,7 +78,7 @@ var/overlay_ammo_type = "_reg" //used for ammo type color overlay var/overlay_gun_type = "_m41" //used for text overlay var/overlay_content = "_reg" - var/magazine_type = /obj/item/ammo_magazine/rifle + var/obj/item/ammo_magazine/magazine_type = /obj/item/ammo_magazine/rifle var/num_of_magazines = 10 var/handfuls = FALSE var/icon_state_deployed = null @@ -126,10 +126,10 @@ if(src.loc != user) //feeling box weight in a distance is unnatural and bad return if(!handfuls) - if(contents.len < (num_of_magazines/3)) + if(length(contents) < (num_of_magazines/3)) . += SPAN_INFO("It feels almost empty.") return - if(contents.len < ((num_of_magazines*2)/3)) + if(length(contents) < ((num_of_magazines*2)/3)) . += SPAN_INFO("It feels about half full.") return . += SPAN_INFO("It feels almost full.") @@ -206,11 +206,11 @@ if(handfuls) var/obj/item/ammo_magazine/AM = locate(/obj/item/ammo_magazine) in contents if(AM) - severity = round(AM.current_rounds / 40) + severity = floor(AM.current_rounds / 40) else for(var/obj/item/ammo_magazine/AM in contents) severity += AM.current_rounds - severity = round(severity / 150) + severity = floor(severity / 150) return severity /obj/item/ammo_box/magazine/process_burning(datum/cause_data/flame_cause_data) @@ -401,7 +401,7 @@ return /obj/item/ammo_box/rounds/get_severity() - return round(bullet_amount / 200) //we need a lot of bullets to produce an explosion. + return floor(bullet_amount / 200) //we need a lot of bullets to produce an explosion. /obj/item/ammo_box/rounds/process_burning(datum/cause_data/flame_cause_data) if(can_explode) diff --git a/code/modules/projectiles/ammo_boxes/box_structures.dm b/code/modules/projectiles/ammo_boxes/box_structures.dm index b34c0543bb2c..da0b700068b9 100644 --- a/code/modules/projectiles/ammo_boxes/box_structures.dm +++ b/code/modules/projectiles/ammo_boxes/box_structures.dm @@ -32,13 +32,13 @@ if(!item_box.handfuls) if(item_box.overlay_ammo_type) overlays += image(text_markings_icon, icon_state = "base_type[item_box.overlay_ammo_type]") //adding base color stripes - if(item_box.contents.len == item_box.num_of_magazines) + if(length(item_box.contents) == item_box.num_of_magazines) overlays += image(magazines_icon, icon_state = "magaz[item_box.overlay_content]") - else if(item_box.contents.len > (item_box.num_of_magazines/2)) + else if(length(item_box.contents) > (item_box.num_of_magazines/2)) overlays += image(magazines_icon, icon_state = "magaz[item_box.overlay_content]_3") - else if(item_box.contents.len > (item_box.num_of_magazines/4)) + else if(length(item_box.contents) > (item_box.num_of_magazines/4)) overlays += image(magazines_icon, icon_state = "magaz[item_box.overlay_content]_2") - else if(item_box.contents.len > 0) + else if(length(item_box.contents) > 0) overlays += image(magazines_icon, icon_state = "magaz[item_box.overlay_content]_1") else var/obj/item/ammo_magazine/AM = locate(/obj/item/ammo_magazine) in item_box.contents @@ -101,9 +101,9 @@ if(item_box.handfuls) var/obj/item/ammo_magazine/AM = locate(/obj/item/ammo_magazine) in item_box.contents if(AM) - . += SPAN_INFO("It has roughly [round(AM.current_rounds/5)] handfuls remaining.") + . += SPAN_INFO("It has roughly [floor(AM.current_rounds/5)] handfuls remaining.") else - . += SPAN_INFO("It has [item_box.contents.len] magazines out of [item_box.num_of_magazines].") + . += SPAN_INFO("It has [length(item_box.contents)] magazines out of [item_box.num_of_magazines].") if(burning) . += SPAN_DANGER("It's on fire and might explode!") @@ -111,7 +111,7 @@ if(burning) to_chat(user, SPAN_DANGER("It's on fire and might explode!")) return - if(item_box.contents.len) + if(length(item_box.contents)) if(!item_box.handfuls) var/obj/item/ammo_magazine/AM = pick(item_box.contents) item_box.contents -= AM @@ -133,7 +133,7 @@ if(istypestrict(W,item_box.magazine_type)) if(istype(W, /obj/item/storage/box/m94)) var/obj/item/storage/box/m94/flare_pack = W - if(flare_pack.contents.len < flare_pack.max_storage_space) + if(length(flare_pack.contents) < flare_pack.max_storage_space) to_chat(user, SPAN_WARNING("[W] is not full.")) return var/flare_type @@ -158,7 +158,7 @@ if(cell.charge != cell.maxcharge) to_chat(user, SPAN_WARNING("[W] needs to be fully charged before it can be stored in [src].")) return - if(item_box.contents.len < item_box.num_of_magazines) + if(length(item_box.contents) < item_box.num_of_magazines) user.drop_inv_item_to_loc(W, src) item_box.contents += W to_chat(user, SPAN_NOTICE("You put \a [W] into [src]")) diff --git a/code/modules/projectiles/ammo_boxes/handful_boxes.dm b/code/modules/projectiles/ammo_boxes/handful_boxes.dm index 9ac2aeea8870..3e9300c8b5c2 100644 --- a/code/modules/projectiles/ammo_boxes/handful_boxes.dm +++ b/code/modules/projectiles/ammo_boxes/handful_boxes.dm @@ -68,6 +68,20 @@ /obj/item/ammo_box/magazine/shotgun/beanbag/empty empty = TRUE + +//-----------------------16 GAUGE SHOTGUN SHELL BOXES----------------------- + +/obj/item/ammo_box/magazine/shotgun/light/breaching + name = "\improper 16-gauge shotgun shell box (Breaching x 120)" + icon_state = "base_breach" + overlay_content = "_breach" + magazine_type = /obj/item/ammo_magazine/shotgun/light/breaching + num_of_magazines = 120 //10 full mag reloads. + can_explode = FALSE + +/obj/item/ammo_box/magazine/shotgun/light/breaching/empty + empty = TRUE + //-----------------------R4T Lever-action rifle handfuls box----------------------- /obj/item/ammo_box/magazine/lever_action diff --git a/code/modules/projectiles/ammo_boxes/magazine_boxes.dm b/code/modules/projectiles/ammo_boxes/magazine_boxes.dm index 6d20dcc75949..dd56d48a364c 100644 --- a/code/modules/projectiles/ammo_boxes/magazine_boxes.dm +++ b/code/modules/projectiles/ammo_boxes/magazine_boxes.dm @@ -1,7 +1,7 @@ //-----------------------M41A Rifle Mag Boxes----------------------- /obj/item/ammo_box/magazine/ap - name = "\improper magazine box (AP M41A x 10)" + name = "magazine box (AP M41A x 10)" flags_equip_slot = SLOT_BACK overlay_ammo_type = "_ap" overlay_content = "_ap" @@ -11,7 +11,7 @@ empty = TRUE /obj/item/ammo_box/magazine/le - name = "\improper magazine box (LE M41A x 10)" + name = "magazine box (LE M41A x 10)" flags_equip_slot = SLOT_BACK overlay_ammo_type = "_le" overlay_content = "_le" @@ -21,7 +21,7 @@ empty = TRUE /obj/item/ammo_box/magazine/ext - name = "\improper magazine box (Ext M41A x 8)" + name = "magazine box (Ext M41A x 8)" flags_equip_slot = SLOT_BACK overlay_ammo_type = "_ext" num_of_magazines = 8 @@ -31,7 +31,7 @@ empty = TRUE /obj/item/ammo_box/magazine/incen - name = "\improper magazine box (Incen M41A x 10)" + name = "magazine box (Incen M41A x 10)" flags_equip_slot = SLOT_BACK overlay_ammo_type = "_incen" overlay_content = "_incen" @@ -41,7 +41,7 @@ empty = TRUE /obj/item/ammo_box/magazine/explosive - name = "\improper magazine box (Explosive M41A x 10)" + name = "magazine box (Explosive M41A x 10)" flags_equip_slot = SLOT_BACK overlay_ammo_type = "_expl" overlay_content = "_expl" @@ -63,7 +63,7 @@ //-----------------------M39 Rifle Mag Boxes----------------------- /obj/item/ammo_box/magazine/m39 - name = "\improper magazine box (M39 x 12)" + name = "magazine box (M39 x 12)" icon_state = "base_m39" flags_equip_slot = SLOT_BACK overlay_ammo_type = "_reg" @@ -76,7 +76,7 @@ empty = TRUE /obj/item/ammo_box/magazine/m39/ap - name = "\improper magazine box (AP M39 x 12)" + name = "magazine box (AP M39 x 12)" overlay_ammo_type = "_ap" overlay_content = "_ap" magazine_type = /obj/item/ammo_magazine/smg/m39/ap @@ -85,7 +85,7 @@ empty = TRUE /obj/item/ammo_box/magazine/m39/ext - name = "\improper magazine box (Ext m39 x 10)" + name = "magazine box (Ext m39 x 10)" overlay_ammo_type = "_ext" overlay_content = "_hv" num_of_magazines = 10 @@ -95,7 +95,7 @@ empty = TRUE /obj/item/ammo_box/magazine/m39/incen - name = "\improper magazine box (Incen m39 x 12)" + name = "magazine box (Incen m39 x 12)" overlay_ammo_type = "_incen" overlay_content = "_incen" magazine_type = /obj/item/ammo_magazine/smg/m39/incendiary @@ -104,7 +104,7 @@ empty = TRUE /obj/item/ammo_box/magazine/m39/le - name = "\improper magazine box (LE m39 x 12)" + name = "magazine box (LE m39 x 12)" overlay_ammo_type = "_le" overlay_content = "_le" magazine_type = /obj/item/ammo_magazine/smg/m39/le @@ -124,7 +124,7 @@ //-----------------------M4RA Battle Rifle Mag Boxes----------------------- /obj/item/ammo_box/magazine/m4ra - name = "\improper magazine box (M4RA x 16)" + name = "magazine box (M4RA x 16)" icon_state = "base_m4ra" flags_equip_slot = SLOT_BACK overlay_gun_type = "_m4ra" @@ -135,7 +135,7 @@ empty = TRUE /obj/item/ammo_box/magazine/m4ra/ap - name = "\improper magazine box (AP M4RA x 16)" + name = "magazine box (AP M4RA x 16)" overlay_ammo_type = "_ap" overlay_content = "_ap" magazine_type = /obj/item/ammo_magazine/rifle/m4ra/ap @@ -144,7 +144,7 @@ empty = TRUE /obj/item/ammo_box/magazine/m4ra/ext - name = "\improper magazine box (Ext M4RA x 12)" + name = "magazine box (Ext M4RA x 12)" overlay_ammo_type = "_ext" num_of_magazines = 12 magazine_type = /obj/item/ammo_magazine/rifle/m4ra/ext @@ -153,7 +153,7 @@ empty = TRUE /obj/item/ammo_box/magazine/m4ra/incen - name = "\improper magazine box (Incen M4RA x 16)" + name = "magazine box (Incen M4RA x 16)" overlay_ammo_type = "_incen" overlay_content = "_incen" magazine_type = /obj/item/ammo_magazine/rifle/m4ra/incendiary @@ -170,10 +170,23 @@ /obj/item/ammo_box/magazine/m4ra/heap/empty empty = TRUE +//-----------------------XM51 Breaching Scattergun Mag Box----------------------- + +/obj/item/ammo_box/magazine/xm51 + name = "magazine box (XM51 x 8)" + icon_state = "base_breach" + flags_equip_slot = SLOT_BACK + overlay_gun_type = "_xm51" + num_of_magazines = 8 + magazine_type = /obj/item/ammo_magazine/rifle/xm51 + +/obj/item/ammo_box/magazine/xm51/empty + empty = TRUE + //-----------------------L42A Battle Rifle Mag Boxes----------------------- /obj/item/ammo_box/magazine/l42a - name = "\improper magazine box (L42A x 16)" + name = "magazine box (L42A x 16)" icon_state = "base_l42" flags_equip_slot = SLOT_BACK overlay_gun_type = "_l42" @@ -184,7 +197,7 @@ empty = TRUE /obj/item/ammo_box/magazine/l42a/ap - name = "\improper magazine box (AP L42A x 16)" + name = "magazine box (AP L42A x 16)" overlay_ammo_type = "_ap" overlay_content = "_ap" magazine_type = /obj/item/ammo_magazine/rifle/l42a/ap @@ -193,7 +206,7 @@ empty = TRUE /obj/item/ammo_box/magazine/l42a/le - name = "\improper magazine box (LE L42A x 16)" + name = "magazine box (LE L42A x 16)" overlay_ammo_type = "_le" overlay_content = "_le" magazine_type = /obj/item/ammo_magazine/rifle/l42a/le @@ -202,7 +215,7 @@ empty = TRUE /obj/item/ammo_box/magazine/l42a/ext - name = "\improper magazine box (Ext L42A x 12)" + name = "magazine box (Ext L42A x 12)" overlay_ammo_type = "_ext" overlay_content = "_reg" num_of_magazines = 12 @@ -212,7 +225,7 @@ empty = TRUE /obj/item/ammo_box/magazine/l42a/incen - name = "\improper magazine box (Incen L42A x 16)" + name = "magazine box (Incen L42A x 16)" overlay_ammo_type = "_incen" overlay_content = "_incen" magazine_type = /obj/item/ammo_magazine/rifle/l42a/incendiary @@ -232,7 +245,7 @@ //-----------------------M16 Rifle Mag Box----------------------- /obj/item/ammo_box/magazine/M16 - name = "\improper magazine box (M16 x 12)" + name = "magazine box (M16 x 12)" icon_state = "base_m16" flags_equip_slot = SLOT_BACK overlay_ammo_type = "_reg" @@ -244,7 +257,7 @@ empty = TRUE /obj/item/ammo_box/magazine/M16/ap - name = "\improper magazine box (AP M16 x 12)" + name = "magazine box (AP M16 x 12)" icon_state = "base_m16" overlay_ammo_type = "_ap" overlay_gun_type = "_m16" @@ -257,7 +270,7 @@ //-----------------------M4A3 Pistol Mag Box----------------------- /obj/item/ammo_box/magazine/m4a3 - name = "\improper magazine box (M4A3 x 16)" + name = "magazine box (M4A3 x 16)" icon_state = "base_m4a3" flags_equip_slot = SLOT_BACK overlay_ammo_type = "_reg" @@ -269,7 +282,7 @@ empty = TRUE /obj/item/ammo_box/magazine/m4a3/ap - name = "\improper magazine box (AP M4A3 x 16)" + name = "magazine box (AP M4A3 x 16)" overlay_ammo_type = "_ap" overlay_content = "_ap" magazine_type = /obj/item/ammo_magazine/pistol/ap @@ -278,7 +291,7 @@ empty = TRUE /obj/item/ammo_box/magazine/m4a3/hp - name = "\improper magazine box (HP M4A3 x 16)" + name = "magazine box (HP M4A3 x 16)" overlay_ammo_type = "_hp" overlay_content = "_hp" magazine_type = /obj/item/ammo_magazine/pistol/hp @@ -287,7 +300,7 @@ empty = TRUE /obj/item/ammo_box/magazine/m4a3/incen - name = "\improper magazine box (Incen M4A3 x 16)" + name = "magazine box (Incen M4A3 x 16)" overlay_ammo_type = "_incen" overlay_content = "_incen" magazine_type = /obj/item/ammo_magazine/pistol/incendiary @@ -298,7 +311,7 @@ //-----------------------M44 Revolver Speed Loaders Box----------------------- /obj/item/ammo_box/magazine/m44 - name = "\improper speed loaders box (M44 x 16)" + name = "speed loaders box (M44 x 16)" icon_state = "base_m44" flags_equip_slot = SLOT_BACK overlay_ammo_type = "_m44_reg" @@ -311,7 +324,7 @@ empty = TRUE /obj/item/ammo_box/magazine/m44/marksman - name = "\improper speed loaders box (Marksman M44 x 16)" + name = "speed loaders box (Marksman M44 x 16)" overlay_ammo_type = "_m44_mark" magazine_type = /obj/item/ammo_magazine/revolver/marksman @@ -319,7 +332,7 @@ empty = TRUE /obj/item/ammo_box/magazine/m44/heavy - name = "\improper speed loaders box (Heavy M44 x 16)" + name = "speed loaders box (Heavy M44 x 16)" overlay_ammo_type = "_m44_heavy" magazine_type = /obj/item/ammo_magazine/revolver/heavy @@ -329,7 +342,7 @@ //-----------------------SU-6 Smartpistol Mag Box----------------------- /obj/item/ammo_box/magazine/su6 - name = "\improper magazine box (SU-6 x 16)" + name = "magazine box (SU-6 x 16)" icon_state = "base_su6" flags_equip_slot = SLOT_BACK overlay_ammo_type = "_reg" @@ -343,7 +356,7 @@ //-----------------------88M4 Pistol Mag Box----------------------- /obj/item/ammo_box/magazine/mod88 - name = "\improper magazine box (88 Mod 4 AP x 16)" + name = "magazine box (88 Mod 4 AP x 16)" icon_state = "base_mod88" flags_equip_slot = SLOT_BACK overlay_ammo_type = "_ap" @@ -358,7 +371,7 @@ //-----------------------VP78 Pistol Mag Box----------------------- /obj/item/ammo_box/magazine/vp78 - name = "\improper magazine box (VP78 x 16)" + name = "magazine box (VP78 x 16)" icon_state = "base_vp78" flags_equip_slot = SLOT_BACK overlay_ammo_type = "_reg" @@ -372,7 +385,7 @@ //-----------------------Type71 Rifle Mag Box----------------------- /obj/item/ammo_box/magazine/type71 - name = "\improper magazine box (Type71 x 10)" + name = "magazine box (Type71 x 10)" icon_state = "base_type71" flags_equip_slot = SLOT_BACK overlay_ammo_type = "_type71_reg" @@ -385,7 +398,7 @@ empty = TRUE /obj/item/ammo_box/magazine/type71/ap - name = "\improper magazine box (Type71 AP x 10)" + name = "magazine box (Type71 AP x 10)" overlay_ammo_type = "_type71_ap" overlay_content = "_type71_ap" magazine_type = /obj/item/ammo_magazine/rifle/type71/ap @@ -405,7 +418,7 @@ //-----------------------Nailgun Mag Box----------------------- /obj/item/ammo_box/magazine/nailgun - name = "\improper magazine box (Nailgun x 10)" + name = "magazine box (Nailgun x 10)" icon_state = "base_nailgun" //base color of box icon_state_deployed = "base_nailgun_deployed" overlay_ammo_type = "_nail" //used for ammo type color overlay @@ -423,7 +436,7 @@ //-----------------------M56B Drum Box----------------------- /obj/item/ammo_box/magazine/m56b - name = "\improper drum box (M56B x 8)" + name = "drum box (M56B x 8)" icon_state = "base_m56b" overlay_ammo_type = "_reg_heavy" overlay_gun_type = "_sg" @@ -435,7 +448,7 @@ empty = TRUE /obj/item/ammo_box/magazine/m56b/dirty - name = "\improper drum box (M56B 'Dirty' x 8)" + name = "drum box (M56B 'Dirty' x 8)" overlay_ammo_type = "_red_heavy" overlay_content = "_sgdirty" magazine_type = /obj/item/ammo_magazine/smartgun/dirty @@ -446,7 +459,7 @@ //-----------------------M56D Drum Box----------------------- /obj/item/ammo_box/magazine/m56d - name = "\improper drum box (M56D x 8)" + name = "drum box (M56D x 8)" icon_state = "base_m56d" overlay_ammo_type = "" overlay_gun_type = "_m56d" @@ -467,7 +480,7 @@ //-----------------------M2C Ammo Box----------------------- /obj/item/ammo_box/magazine/m2c - name = "\improper ammo box (M2C x 8)" + name = "ammo box (M2C x 8)" icon_state = "base_m2c" overlay_ammo_type = "" overlay_gun_type = "_m2c" @@ -487,7 +500,7 @@ //-----------------------M41AE2 Ammo Box----------------------- /obj/item/ammo_box/magazine/m41ae2 - name = "\improper magazine (M41AE2 x 8)" + name = "magazine (M41AE2 x 8)" icon_state = "base_m41ae2" overlay_ammo_type = "_reg_heavy" overlay_gun_type = "_m41ae2" @@ -499,7 +512,7 @@ empty = TRUE /obj/item/ammo_box/magazine/m41ae2/holo - name = "\improper magazine box (M41AE2 Holo-Target x 8)" + name = "magazine box (M41AE2 Holo-Target x 8)" overlay_ammo_type = "_holo_heavy" overlay_content = "_m41ae2_holo" magazine_type = /obj/item/ammo_magazine/rifle/lmg/holo_target @@ -508,7 +521,7 @@ empty = TRUE /obj/item/ammo_box/magazine/m41ae2/heap - name = "\improper magazine box (M41AE2 HEAP x 8)" + name = "magazine box (M41AE2 HEAP x 8)" overlay_ammo_type = "_heap_heavy" overlay_content = "_m41ae2_heap" magazine_type = /obj/item/ammo_magazine/rifle/lmg/heap @@ -519,7 +532,7 @@ //-----------------------Flamer Fuel Tank Box----------------------- /obj/item/ammo_box/magazine/flamer - name = "\improper flamer tank box (UT-Napthal Fuel x 8)" + name = "flamer tank box (UT-Napthal Fuel x 8)" icon_state = "base_flamer" overlay_ammo_type = "_flamer" overlay_gun_type = "_blank" @@ -531,7 +544,7 @@ empty = TRUE /obj/item/ammo_box/magazine/flamer/bgel - name = "\improper flamer fuel box (Napalm B-Gel x 8)" + name = "flamer fuel box (Napalm B-Gel x 8)" overlay_ammo_type = "_flamer_bgel" overlay_content = "_flamer_bgel" magazine_type = /obj/item/ammo_magazine/flamer_tank/gellied @@ -542,7 +555,7 @@ //-----------------------M41A MK1 Rifle Mag Boxes----------------------- /obj/item/ammo_box/magazine/mk1 - name = "\improper magazine box (M41A MK1 x 8)" + name = "magazine box (M41A MK1 x 8)" overlay_ammo_type = "_reg_mk1" overlay_gun_type = "_mk1" overlay_content = "_reg" @@ -553,7 +566,7 @@ empty = TRUE /obj/item/ammo_box/magazine/mk1/ap - name = "\improper magazine box (M41A MK1 AP x 8)" + name = "magazine box (M41A MK1 AP x 8)" flags_equip_slot = SLOT_BACK overlay_ammo_type = "_ap_mk1" overlay_content = "_ap" @@ -565,7 +578,7 @@ //-----------------------NSG 23 Rifle Mag Boxes----------------------- /obj/item/ammo_box/magazine/nsg23 - name = "\improper magazine box (NSG 23 x 16)" + name = "magazine box (NSG 23 x 16)" icon_state = "base_nsg23" overlay_gun_type = "_nsg23" overlay_content = "_reg" @@ -576,7 +589,7 @@ empty = TRUE /obj/item/ammo_box/magazine/nsg23/ap - name = "\improper magazine box (NSG 23 AP x 12)" + name = "magazine box (NSG 23 AP x 12)" overlay_ammo_type = "_ap" overlay_content = "_ap" magazine_type = /obj/item/ammo_magazine/rifle/nsg23/ap @@ -586,7 +599,7 @@ empty = TRUE /obj/item/ammo_box/magazine/nsg23/ex - name = "\improper magazine box (NSG 23 Extended x 8)" + name = "magazine box (NSG 23 Extended x 8)" overlay_ammo_type = "_ext" magazine_type = /obj/item/ammo_magazine/rifle/nsg23/extended num_of_magazines = 8 @@ -595,7 +608,7 @@ empty = TRUE /obj/item/ammo_box/magazine/nsg23/heap - name = "\improper magazine box (NSG 23 HEAP x 16)" + name = "magazine box (NSG 23 HEAP x 16)" overlay_ammo_type = "_heap" overlay_content = "_heap" magazine_type = /obj/item/ammo_magazine/rifle/nsg23/heap @@ -606,7 +619,7 @@ //-----------------------Spearhead Autorevolver Speed Loaders Box----------------------- /obj/item/ammo_box/magazine/spearhead - name = "\improper speed loaders box (Spearhead HP x 12)" + name = "speed loaders box (Spearhead HP x 12)" icon_state = "base_cmb" overlay_ammo_type = "_357_hp" overlay_gun_type = "_357" @@ -618,7 +631,7 @@ empty = TRUE /obj/item/ammo_box/magazine/spearhead/normalpoint - name = "\improper speed loaders box (Spearhead x 12)" + name = "speed loaders box (Spearhead x 12)" overlay_ammo_type = "_357_reg" magazine_type = /obj/item/ammo_magazine/revolver/cmb/normalpoint @@ -628,7 +641,7 @@ //-----------------------Type 73 Pistol Mag Box----------------------- /obj/item/ammo_box/magazine/type73 - name = "\improper magazine box (Type 73 x 16)" + name = "magazine box (Type 73 x 16)" icon_state = "base_type73" flags_equip_slot = SLOT_BACK overlay_ammo_type = "_type71_reg" @@ -641,7 +654,7 @@ empty = TRUE /obj/item/ammo_box/magazine/type73/impact - name = "\improper magazine box (Type 73 High-Impact x 10)" + name = "magazine box (Type 73 High-Impact x 10)" overlay_ammo_type = "_type73_impact" overlay_content = "_type73_impact" num_of_magazines = 10 @@ -654,7 +667,7 @@ //-----------------------AR10 Rifle Mag Box----------------------- /obj/item/ammo_box/magazine/ar10 - name = "\improper magazine box (AR10 x 12)" + name = "magazine box (AR10 x 12)" icon_state = "base_ar10" flags_equip_slot = SLOT_BACK overlay_gun_type = "_ar10" @@ -668,7 +681,7 @@ //-----------------------MP5 Smg Mag Box----------------------- /obj/item/ammo_box/magazine/mp5 - name = "\improper magazine box (MP5 x 12)" + name = "magazine box (MP5 x 12)" icon_state = "base_m16" flags_equip_slot = SLOT_BACK overlay_gun_type = "_mp5" @@ -683,7 +696,7 @@ //-----------------------Desert Eagle Pistol Mag Box----------------------- /obj/item/ammo_box/magazine/deagle - name = "\improper magazine box (Desert Eagle x 12)" + name = "magazine box (Desert Eagle x 12)" icon_state = "base_deagle" flags_equip_slot = SLOT_BACK overlay_ammo_type = "_reg" @@ -696,7 +709,7 @@ empty = TRUE /obj/item/ammo_box/magazine/deagle/super - name = "\improper magazine box (Heavy Desert Eagle x 8)" + name = "magazine box (Heavy Desert Eagle x 8)" overlay_ammo_type = "_hp" overlay_content = "_hp" num_of_magazines = 8 @@ -706,7 +719,7 @@ empty = TRUE /obj/item/ammo_box/magazine/deagle/super/highimpact - name = "\improper magazine box (High Impact Desert Eagle x 8)" + name = "magazine box (High Impact Desert Eagle x 8)" overlay_ammo_type = "_impact" overlay_content = "_impact" magazine_type = /obj/item/ammo_magazine/pistol/heavy/super/highimpact @@ -715,10 +728,304 @@ empty = TRUE /obj/item/ammo_box/magazine/deagle/super/highimpact/ap - name = "\improper magazine box (High Impact Armor-Piercing Desert Eagle x 8)" + name = "magazine box (High Impact Armor-Piercing Desert Eagle x 8)" overlay_ammo_type = "_ap" overlay_content = "_ap" magazine_type = /obj/item/ammo_magazine/pistol/heavy/super/highimpact/ap /obj/item/ammo_box/magazine/deagle/super/highimpact/ap/empty empty = TRUE + + +//-----------------------S&W Revolver Speed Loaders Box----------------------- +/obj/item/ammo_box/magazine/snw + name = "speed loaders box (S&W .38 x 12)" + icon_state = "base_S&W" + overlay_ammo_type = "_m44_reg" + overlay_gun_type = "_38" + overlay_content = "_speed" + num_of_magazines = 12 + magazine_type = /obj/item/ammo_magazine/revolver/small + +/obj/item/ammo_box/magazine/snw/empty + empty = TRUE + + +//-----------------------Type64 Bizon SMG Mag Box----------------------- + +/obj/item/ammo_box/magazine/type64 + name = "magazine box (Type64 Bizon x 10)" + icon_state = "base_type64" + flags_equip_slot = SLOT_BACK + overlay_ammo_type = "_type71_reg" + overlay_gun_type = "_type64" + overlay_content = "_type71_reg" + num_of_magazines = 10 + magazine_type = /obj/item/ammo_magazine/smg/bizon + +/obj/item/ammo_box/magazine/type64/empty + empty = TRUE + +//-----------------------ZhNK-72 Revolver Speedloader Box----------------------- + +/obj/item/ammo_box/magazine/zhnk + name = "speed loaders box (ZhNK-72 x 12)" + icon_state = "base_zhnk72" + flags_equip_slot = SLOT_BACK + overlay_ammo_type = "" + overlay_gun_type = "_zhnk72" + overlay_content = "_zhnk72" + num_of_magazines = 12 + magazine_type = /obj/item/ammo_magazine/revolver/upp + +/obj/item/ammo_box/magazine/zhnk/update_icon() + if(overlays) + overlays.Cut() + overlays += image(icon, icon_state = "[icon_state]_lid") //adding lid + overlays += image(text_markings_icon, icon_state = "text[overlay_gun_type]") //adding text + +/obj/item/ammo_box/magazine/zhnk/empty + empty = TRUE + +//-----------------------Type-19 SMG Mag Box----------------------- + +/obj/item/ammo_box/magazine/type19 + name = "magazine box (Type19 x 12)" + icon_state = "base_type19" + flags_equip_slot = SLOT_BACK + overlay_ammo_type = "" + overlay_gun_type = "_type19" + overlay_content = "_type71_reg" + num_of_magazines = 12 + magazine_type = /obj/item/ammo_magazine/smg/pps43 + +/obj/item/ammo_box/magazine/type19/update_icon() + if(overlays) + overlays.Cut() + overlays += image(icon, icon_state = "[icon_state]_lid") //adding lid + overlays += image(text_markings_icon, icon_state = "text[overlay_gun_type]") //adding text + + +/obj/item/ammo_box/magazine/type19/empty + empty = TRUE + +//-----------------------UZI SMG Mag Box----------------------- + +/obj/item/ammo_box/magazine/uzi + name = "magazine box (UZI x 12)" + icon_state = "base_uzi" + flags_equip_slot = SLOT_BACK + overlay_ammo_type = "" + overlay_gun_type = "_uzi" + overlay_content = "_uzi" + num_of_magazines = 12 + magazine_type = /obj/item/ammo_magazine/smg/uzi + +/obj/item/ammo_box/magazine/uzi/update_icon() + if(overlays) + overlays.Cut() + overlays += image(icon, icon_state = "[icon_state]_lid") //adding lid + overlays += image(text_markings_icon, icon_state = "text[overlay_gun_type]") //adding text + +/obj/item/ammo_box/magazine/uzi/empty + empty = TRUE + +//-----------------------MAC-15 SMG Mag Box----------------------- + +/obj/item/ammo_box/magazine/mac15 + name = "magazine box (MAC-15 x 12)" + icon_state = "base_uzi" + flags_equip_slot = SLOT_BACK + overlay_ammo_type = "" + overlay_gun_type = "_mac15" + overlay_content = "_uzi" + num_of_magazines = 12 + magazine_type = /obj/item/ammo_magazine/smg/mac15 + +/obj/item/ammo_box/magazine/mac15/update_icon() + if(overlays) + overlays.Cut() + overlays += image(icon, icon_state = "[icon_state]_lid") //adding lid + overlays += image(text_markings_icon, icon_state = "text[overlay_gun_type]") //adding text + +/obj/item/ammo_box/magazine/mac15/empty + empty = TRUE + +//-----------------------MP27 SMG Mag Box----------------------- + +/obj/item/ammo_box/magazine/mp27 + name = "magazine box (MP27 x 12)" + icon_state = "base_uzi" + flags_equip_slot = SLOT_BACK + overlay_ammo_type = "" + overlay_gun_type = "_mp27" + overlay_content = "_fn" + num_of_magazines = 12 + magazine_type = /obj/item/ammo_magazine/smg/mp27 + +/obj/item/ammo_box/magazine/mp27/update_icon() + if(overlays) + overlays.Cut() + overlays += image(icon, icon_state = "[icon_state]_lid") //adding lid + overlays += image(text_markings_icon, icon_state = "text[overlay_gun_type]") //adding text + +/obj/item/ammo_box/magazine/mp27/empty + empty = TRUE + +//-----------------------M1911 Pistol Mag Box----------------------- + +/obj/item/ammo_box/magazine/m1911 + name = "magazine box (M1911 x 16)" + icon_state = "base_mk45" + flags_equip_slot = SLOT_BACK + overlay_ammo_type = "" + overlay_gun_type = "_m1911" + overlay_content = "_uzi" + num_of_magazines = 16 + magazine_type = /obj/item/ammo_magazine/pistol/m1911 + +/obj/item/ammo_box/magazine/m1911/update_icon() + if(overlays) + overlays.Cut() + overlays += image(icon, icon_state = "[icon_state]_lid") //adding lid + overlays += image(text_markings_icon, icon_state = "text[overlay_gun_type]") //adding text + + +/obj/item/ammo_box/magazine/m1911/empty + empty = TRUE + +//-----------------------MK-45 Highpower Pistol Mag Box----------------------- + +/obj/item/ammo_box/magazine/mk45 + name = "magazine box (MK-45 x 16)" + icon_state = "base_mk45" + flags_equip_slot = SLOT_BACK + overlay_ammo_type = "" + overlay_gun_type = "_mk45" + overlay_content = "_uzi" + num_of_magazines = 16 + magazine_type = /obj/item/ammo_magazine/pistol/highpower + +/obj/item/ammo_box/magazine/mk45/update_icon() + if(overlays) + overlays.Cut() + overlays += image(icon, icon_state = "[icon_state]_lid") //adding lid + overlays += image(text_markings_icon, icon_state = "text[overlay_gun_type]") //adding text + +/obj/item/ammo_box/magazine/mk45/empty + empty = TRUE + +//-----------------------KT-42 Automag Pistol Mag Box----------------------- + +/obj/item/ammo_box/magazine/kt42 + name = "magazine box (KT-42 x 16)" + icon_state = "base_mk45" + flags_equip_slot = SLOT_BACK + overlay_ammo_type = "" + overlay_gun_type = "_kt42" + overlay_content = "_uzi" + num_of_magazines = 16 + magazine_type = /obj/item/ammo_magazine/pistol/kt42 + +/obj/item/ammo_box/magazine/kt42/update_icon() + if(overlays) + overlays.Cut() + overlays += image(icon, icon_state = "[icon_state]_lid") //adding lid + overlays += image(text_markings_icon, icon_state = "text[overlay_gun_type]") //adding text + + +/obj/item/ammo_box/magazine/kt42/empty + empty = TRUE + +//-----------------------Beretta 92FS Pistol Mag Box----------------------- + +/obj/item/ammo_box/magazine/b92fs + name = "magazine box (Beretta 92FS x 16)" + icon_state = "base_mk45" + flags_equip_slot = SLOT_BACK + overlay_ammo_type = "" + overlay_gun_type = "_b92fs" + overlay_content = "_uzi" + num_of_magazines = 16 + magazine_type = /obj/item/ammo_magazine/pistol/b92fs + +/obj/item/ammo_box/magazine/b92fs/update_icon() + if(overlays) + overlays.Cut() + overlays += image(icon, icon_state = "[icon_state]_lid") //adding lid + overlays += image(text_markings_icon, icon_state = "text[overlay_gun_type]") //adding text + +/obj/item/ammo_box/magazine/b92fs/empty + empty = TRUE + +//-----------------------FN FP9000 SMG Mag Box----------------------- + +/obj/item/ammo_box/magazine/fp9000 + name = "magazine box (FN FP9000 x 12)" + icon_state = "base_fn" + flags_equip_slot = SLOT_BACK + overlay_ammo_type = "" + overlay_gun_type = "_fnfp9000" + overlay_content = "_fn" + num_of_magazines = 12 + magazine_type = /obj/item/ammo_magazine/smg/fp9000 + +/obj/item/ammo_box/magazine/fp9000/update_icon() + if(overlays) + overlays.Cut() + overlays += image(icon, icon_state = "[icon_state]_lid") //adding lid + overlays += image(text_markings_icon, icon_state = "text[overlay_gun_type]") //adding text + +/obj/item/ammo_box/magazine/fp9000/empty + empty = TRUE + +//-----------------------MAR30/40 Mag Box----------------------- + +/obj/item/ammo_box/magazine/mar30 + name = "magazine box (MAR30/40 x 10)" + icon_state = "base_mar" + flags_equip_slot = SLOT_BACK + overlay_ammo_type = "" + overlay_gun_type = "_mar30" + overlay_content = "_mar" + num_of_magazines = 10 + magazine_type = /obj/item/ammo_magazine/rifle/mar40 + +/obj/item/ammo_box/magazine/mar30/update_icon() + if(overlays) + overlays.Cut() + overlays += image(icon, icon_state = "[icon_state]_lid") //adding lid + overlays += image(text_markings_icon, icon_state = "text[overlay_gun_type]") //adding text + +/obj/item/ammo_box/magazine/mar30/empty + empty = TRUE + +/obj/item/ammo_box/magazine/mar30/ext + name = "magazine box (MAR30/40 Ext x 8)" + overlay_gun_type = "_mar40" + num_of_magazines = 8 + magazine_type = /obj/item/ammo_magazine/rifle/mar40/extended + +/obj/item/ammo_box/magazine/mar30/ext/empty + empty = TRUE + +//-----------------------MAR50 Mag Box----------------------- + +/obj/item/ammo_box/magazine/mar50 + name = "magazine box (MAR50 x 8)" + icon_state = "base_mar" + flags_equip_slot = SLOT_BACK + overlay_ammo_type = "" + overlay_gun_type = "_mar50" + overlay_content = "_mar" + num_of_magazines = 8 + magazine_type = /obj/item/ammo_magazine/rifle/mar40/lmg + +/obj/item/ammo_box/magazine/mar50/update_icon() + if(overlays) + overlays.Cut() + overlays += image(icon, icon_state = "[icon_state]_lid") //adding lid + overlays += image(text_markings_icon, icon_state = "text[overlay_gun_type]") //adding text + +/obj/item/ammo_box/magazine/mar50/empty + empty = TRUE diff --git a/code/modules/projectiles/ammo_boxes/misc_boxes.dm b/code/modules/projectiles/ammo_boxes/misc_boxes.dm index 7b19555f4de5..0634c76270da 100644 --- a/code/modules/projectiles/ammo_boxes/misc_boxes.dm +++ b/code/modules/projectiles/ammo_boxes/misc_boxes.dm @@ -96,8 +96,8 @@ /obj/item/ammo_box/magazine/misc/flares/get_severity() var/flare_amount = 0 for(var/obj/item/storage/box/m94/flare_box in contents) - flare_amount += flare_box.contents.len - flare_amount = round(flare_amount / 8) //10 packs, 8 flares each, maximum total of 10 flares we can throw out + flare_amount += length(flare_box.contents) + flare_amount = floor(flare_amount / 8) //10 packs, 8 flares each, maximum total of 10 flares we can throw out return flare_amount /obj/item/ammo_box/magazine/misc/flares/process_burning(datum/cause_data/flame_cause_data) diff --git a/code/modules/projectiles/ammunition.dm b/code/modules/projectiles/ammunition.dm index 594ad6b69dce..0e0fccf027db 100644 --- a/code/modules/projectiles/ammunition.dm +++ b/code/modules/projectiles/ammunition.dm @@ -196,10 +196,10 @@ They're all essentially identical when it comes to getting the job done. if(current_rounds < 1) return else - var/severity = round(current_rounds / 50) + var/severity = floor(current_rounds / 50) //the more ammo inside, the faster and harder it cooks off if(severity > 0) - addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(explosion), loc, -1, ((severity > 4) ? 0 : -1), Clamp(severity, 0, 1), Clamp(severity, 0, 2), 1, 0, 0, flame_cause_data), max(5 - severity, 2)) + addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(explosion), loc, -1, ((severity > 4) ? 0 : -1), clamp(severity, 0, 1), clamp(severity, 0, 2), 1, 0, 0, flame_cause_data), max(5 - severity, 2)) if(!QDELETED(src)) qdel(src) @@ -335,14 +335,14 @@ Turn() or Shift() as there is virtually no overhead. ~N /obj/item/ammo_casing/update_icon() if(max_casings >= current_casings) if(current_casings == 2) name += "s" //In case there is more than one. - if(round((current_casings-1)/8) > current_icon) + if(floor((current_casings-1)/8) > current_icon) current_icon++ icon_state += "_[current_icon]" var/I = current_casings*8 // For the metal. matter = list("metal" = I) var/base_direction = current_casings - (current_icon * 8) - setDir(base_direction + round(base_direction)/3) + setDir(base_direction + floor(base_direction)/3) switch(current_casings) if(3 to 5) w_class = SIZE_SMALL //Slightly heavier. if(9 to 10) w_class = SIZE_MEDIUM //Can't put it in your pockets and stuff. diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index c41a57f53527..f7ffbf2875e2 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -23,7 +23,7 @@ WEAR_L_HAND = 'icons/mob/humans/onmob/items_lefthand_1.dmi', WEAR_R_HAND = 'icons/mob/humans/onmob/items_righthand_1.dmi' ) - flags_atom = FPRINT|CONDUCT + flags_atom = FPRINT|QUICK_DRAWABLE|CONDUCT flags_item = TWOHANDED light_system = DIRECTIONAL_LIGHT @@ -471,7 +471,7 @@ /obj/item/weapon/gun/proc/handle_starting_attachment() - if(starting_attachment_types && starting_attachment_types.len) + if(LAZYLEN(starting_attachment_types)) for(var/path in starting_attachment_types) var/obj/item/attachable/A = new path(src) A.Attach(src) @@ -493,7 +493,7 @@ As sniper rifles have both and weapon mods can change them as well. ..() deals w unwield(user) pull_time = world.time + wield_delay - if(user.dazed) + if(HAS_TRAIT(user, TRAIT_DAZED)) pull_time += 3 guaranteed_delay_time = world.time + WEAPON_GUARANTEED_DELAY @@ -503,13 +503,15 @@ As sniper rifles have both and weapon mods can change them as well. ..() deals w if(slot in list(WEAR_L_HAND, WEAR_R_HAND)) set_gun_user(user) - if(HAS_TRAIT_FROM_ONLY(src, TRAIT_GUN_LIGHT_DEACTIVATED, user)) + if(HAS_TRAIT_FROM_ONLY(src, TRAIT_GUN_LIGHT_FORCE_DEACTIVATED, WEAKREF(user))) force_light(on = TRUE) - REMOVE_TRAIT(src, TRAIT_GUN_LIGHT_DEACTIVATED, user) + REMOVE_TRAIT(src, TRAIT_GUN_LIGHT_FORCE_DEACTIVATED, WEAKREF(user)) else set_gun_user(null) - force_light(on = FALSE) - ADD_TRAIT(src, TRAIT_GUN_LIGHT_DEACTIVATED, user) + // we force the light off and turn it back on again when the gun is equipped. Otherwise bad things happen. + if(light_sources()) + force_light(on = FALSE) + ADD_TRAIT(src, TRAIT_GUN_LIGHT_FORCE_DEACTIVATED, WEAKREF(user)) return ..() @@ -650,11 +652,11 @@ As sniper rifles have both and weapon mods can change them as well. ..() deals w for(var/i = 0; i<=CODEX_ARMOR_MAX; i+=CODEX_ARMOR_STEP) damage_armor_profile_headers.Add(i) - damage_armor_profile_marine.Add(round(armor_damage_reduction(GLOB.marine_ranged_stats, damage, i, penetration))) - damage_armor_profile_xeno.Add(round(armor_damage_reduction(GLOB.xeno_ranged_stats, damage, i, penetration))) + damage_armor_profile_marine.Add(floor(armor_damage_reduction(GLOB.marine_ranged_stats, damage, i, penetration))) + damage_armor_profile_xeno.Add(floor(armor_damage_reduction(GLOB.xeno_ranged_stats, damage, i, penetration))) if(!GLOB.xeno_general.armor_ignore_integrity) if(i != 0) - damage_armor_profile_armorbreak.Add("[round(armor_break_calculation(GLOB.xeno_ranged_stats, damage, i, penetration, in_ammo.pen_armor_punch, armor_punch)/i)]%") + damage_armor_profile_armorbreak.Add("[floor(armor_break_calculation(GLOB.xeno_ranged_stats, damage, i, penetration, in_ammo.pen_armor_punch, armor_punch)/i)]%") else damage_armor_profile_armorbreak.Add("N/A") @@ -663,18 +665,14 @@ As sniper rifles have both and weapon mods can change them as well. ..() deals w // weapon info - data["icon"] = SSassets.transport.get_asset_url("no_name.png") - - if(SSassets.cache["[base_gun_icon].png"]) - data["icon"] = SSassets.transport.get_asset_url("[base_gun_icon].png") - + data["icon"] = base_gun_icon data["name"] = name data["desc"] = desc data["two_handed_only"] = (flags_gun_features & GUN_WIELDED_FIRING_ONLY) data["recoil"] = max(gun_recoil, 0.1) data["unwielded_recoil"] = max(recoil_unwielded, 0.1) - data["firerate"] = round(1 MINUTES / rpm) // 3 minutes so that the values look greater than they actually are - data["burst_firerate"] = round(1 MINUTES / burst_rpm) + data["firerate"] = floor(1 MINUTES / rpm) // 3 minutes so that the values look greater than they actually are + data["burst_firerate"] = floor(1 MINUTES / burst_rpm) data["firerate_second"] = round(1 SECONDS / rpm, 0.01) data["burst_firerate_second"] = round(1 SECONDS / burst_rpm, 0.01) data["scatter"] = max(0.1, scatter + src.scatter) @@ -727,8 +725,8 @@ As sniper rifles have both and weapon mods can change them as well. ..() deals w /obj/item/weapon/gun/ui_assets(mob/user) . = ..() || list() - . += get_asset_datum(/datum/asset/simple/firemodes) - //. += get_asset_datum(/datum/asset/spritesheet/gun_lineart) + . += get_asset_datum(/datum/asset/spritesheet/gun_lineart_modes) + . += get_asset_datum(/datum/asset/spritesheet/gun_lineart) // END TGUI \\ @@ -759,7 +757,7 @@ As sniper rifles have both and weapon mods can change them as well. ..() deals w slowdown = initial(slowdown) + aim_slowdown place_offhand(user, initial(name)) wield_time = world.time + wield_delay - if(user.dazed) + if(HAS_TRAIT(user, TRAIT_DAZED)) wield_time += 5 guaranteed_delay_time = world.time + WEAPON_GUARANTEED_DELAY //slower or faster wield delay depending on skill. @@ -843,6 +841,7 @@ User can be passed as null, (a gun reloading itself for instance), so we need to to_chat(user, SPAN_WARNING("Your reload was interrupted!")) return replace_magazine(user, magazine) + SEND_SIGNAL(user, COMSIG_MOB_RELOADED_GUN, src) else current_mag = magazine magazine.forceMove(src) @@ -873,6 +872,8 @@ User can be passed as null, (a gun reloading itself for instance), so we need to if(!current_mag || QDELETED(current_mag) || (current_mag.loc != src && !loc_override)) cock(user) + current_mag = null + update_icon() return if(drop_override || !user) //If we want to drop it on the ground or there's no user. @@ -1048,6 +1049,7 @@ and you're good to go. user.swap_hand() unload(user, TRUE, drop_to_ground) // We want to quickly autoeject the magazine. This proc does the rest based on magazine type. User can be passed as null. playsound(src, empty_sound, 25, 1) + SEND_SIGNAL(user, COMSIG_MOB_GUN_EMPTY, src) else // Just fired a chambered bullet with no magazine in the gun update_icon() @@ -1224,7 +1226,7 @@ and you're good to go. return TRUE //>>POST PROCESSING AND CLEANUP BEGIN HERE.<< - var/angle = round(Get_Angle(user,target)) //Let's do a muzzle flash. + var/angle = floor(Get_Angle(user,target)) //Let's do a muzzle flash. muzzle_flash(angle,user) //This is where we load the next bullet in the chamber. We check for attachments too, since we don't want to load anything if an attachment is active. @@ -1346,7 +1348,7 @@ and you're good to go. user.next_move = world.time //No click delay on PBs. //Point blanking doesn't actually fire the projectile. Instead, it simulates firing the bullet proper. - if(!able_to_fire(user)) //If it's a valid PB aside from that you can't fire the gun, do nothing. + if(flags_gun_features & GUN_BURST_FIRING || !able_to_fire(user)) //If it's a valid PB aside from that you can't fire the gun, do nothing. return TRUE //The following relating to bursts was borrowed from Fire code. @@ -1419,8 +1421,12 @@ and you're good to go. for(var/i in 1 to projectile_to_fire.ammo.bonus_projectiles_amount) BP = new /obj/projectile(attacked_mob.loc, create_cause_data(initial(name), user)) BP.generate_bullet(GLOB.ammo_list[projectile_to_fire.ammo.bonus_projectiles_type], 0, NO_FLAGS) - BP.accuracy = round(BP.accuracy * projectile_to_fire.accuracy/initial(projectile_to_fire.accuracy)) //Modifies accuracy of pellets per fire_bonus_projectiles. + BP.accuracy = floor(BP.accuracy * projectile_to_fire.accuracy/initial(projectile_to_fire.accuracy)) //Modifies accuracy of pellets per fire_bonus_projectiles. BP.damage *= damage_buff + + BP.bonus_projectile_check = 2 + projectile_to_fire.bonus_projectile_check = 1 + projectile_to_fire.give_bullet_traits(BP) if(bullets_fired > 1) BP.original = attacked_mob //original == the original target of the projectile. If the target is downed and this isn't set, the projectile will try to fly over it. Of course, it isn't going anywhere, but it's the principle of the thing. Very embarrassing. @@ -1523,7 +1529,7 @@ not all weapons use normal magazines etc. load_into_chamber() itself is designed return //We just put the gun up. Can't do it that fast if(ismob(user)) //Could be an object firing the gun. - if(!user.IsAdvancedToolUser()) + if(!user.IsAdvancedToolUser() && !HAS_TRAIT(user, TRAIT_OPPOSABLE_THUMBS)) to_chat(user, SPAN_WARNING("You don't have the dexterity to do this!")) return @@ -1606,6 +1612,9 @@ not all weapons use normal magazines etc. load_into_chamber() itself is designed user = gun_user if(flags_gun_features & GUN_AMMO_COUNTER && current_mag) + // toggleable spam control. + if(user.client.prefs.toggle_prefs & TOGGLE_AMMO_DISPLAY_TYPE && gun_firemode == GUN_FIREMODE_SEMIAUTO && current_mag.current_rounds % 5 != 0 && current_mag.current_rounds > 15) + return var/chambered = in_chamber ? TRUE : FALSE to_chat(user, SPAN_DANGER("[current_mag.current_rounds][chambered ? "+1" : ""] / [current_mag.max_rounds] ROUNDS REMAINING")) @@ -1642,7 +1651,7 @@ not all weapons use normal magazines etc. load_into_chamber() itself is designed if(skill_accuracy) gun_accuracy_mult += skill_accuracy * HIT_ACCURACY_MULT_TIER_3 // Accuracy mult increase/decrease per level is equal to attaching/removing a red dot sight - projectile_to_fire.accuracy = round(projectile_to_fire.accuracy * gun_accuracy_mult) // Apply gun accuracy multiplier to projectile accuracy + projectile_to_fire.accuracy = floor(projectile_to_fire.accuracy * gun_accuracy_mult) // Apply gun accuracy multiplier to projectile accuracy projectile_to_fire.scatter += gun_scatter if(wield_delay > 0 && (world.time < wield_time || world.time < pull_time)) @@ -1656,7 +1665,7 @@ not all weapons use normal magazines etc. load_into_chamber() itself is designed var/scatter_debuff = 1 + (SETTLE_SCATTER_MULTIPLIER - 1) * pct_settled projectile_to_fire.scatter *= scatter_debuff - projectile_to_fire.damage = round(projectile_to_fire.damage * damage_mult) // Apply gun damage multiplier to projectile damage + projectile_to_fire.damage = floor(projectile_to_fire.damage * damage_mult) // Apply gun damage multiplier to projectile damage // Apply effective range and falloffs/buildups projectile_to_fire.damage_falloff = damage_falloff_mult * projectile_to_fire.ammo.damage_falloff @@ -1753,7 +1762,7 @@ not all weapons use normal magazines etc. load_into_chamber() itself is designed else total_recoil -= user.skills.get_skill_level(SKILL_FIREARMS)*RECOIL_AMOUNT_TIER_5 - if(total_recoil > 0 && ishuman(user)) + if(total_recoil > 0 && (ishuman(user) || HAS_TRAIT(user, TRAIT_OPPOSABLE_THUMBS))) if(total_recoil >= 4) shake_camera(user, total_recoil * 0.5, total_recoil) else @@ -1765,7 +1774,7 @@ not all weapons use normal magazines etc. load_into_chamber() itself is designed /obj/item/weapon/gun/proc/muzzle_flash(angle,mob/user) if(!muzzle_flash || flags_gun_features & GUN_SILENCED || isnull(angle)) return //We have to check for null angle here, as 0 can also be an angle. - if(!istype(user) || !istype(user.loc,/turf)) + if(!istype(user) || !isturf(user.loc)) return var/prev_light = light_range @@ -1774,12 +1783,12 @@ not all weapons use normal magazines etc. load_into_chamber() itself is designed set_light_on(TRUE) addtimer(CALLBACK(src, PROC_REF(reset_light_range), prev_light), 0.5 SECONDS) - var/image_layer = (user && user.dir == SOUTH) ? MOB_LAYER+0.1 : MOB_LAYER-0.1 - var/offset = 5 - - var/image/I = image('icons/obj/items/weapons/projectiles.dmi',user,muzzle_flash,image_layer) + var/image/I = image('icons/obj/items/weapons/projectiles.dmi', user, muzzle_flash, user.dir == NORTH ? ABOVE_LYING_MOB_LAYER : FLOAT_LAYER) var/matrix/rotate = matrix() //Change the flash angle. - rotate.Translate(0, offset) + if(iscarbonsizexeno(user)) + var/mob/living/carbon/xenomorph/xeno = user + I.pixel_x = xeno.xeno_inhand_item_offset //To center it on the xeno sprite without being thrown off by rotation. + rotate.Translate(0, 5) //Y offset to push the flash overlay outwards. rotate.Turn(angle) I.transform = rotate I.flick_overlay(user, 3) diff --git a/code/modules/projectiles/gun_attachables.dm b/code/modules/projectiles/gun_attachables.dm index 33d28527c8a1..7d015e4bac8d 100644 --- a/code/modules/projectiles/gun_attachables.dm +++ b/code/modules/projectiles/gun_attachables.dm @@ -31,7 +31,7 @@ Defined in conflicts.dm of the #defines folder. var/pixel_shift_y = 16 //Uses the bottom left corner of the item. flags_atom = FPRINT|CONDUCT - matter = list("metal" = 2000) + matter = list("metal" = 100) w_class = SIZE_SMALL force = 1 var/slot = null //"muzzle", "rail", "under", "stock", "special" @@ -168,7 +168,8 @@ Defined in conflicts.dm of the #defines folder. /obj/item/attachable/proc/Detach(mob/user, obj/item/weapon/gun/detaching_gub) if(!istype(detaching_gub)) return //Guns only - detaching_gub.on_detach(user) + if(user) + detaching_gub.on_detach(user, src) if(flags_attach_features & ATTACH_ACTIVATION) activate_attachment(detaching_gub, null, TRUE) @@ -342,6 +343,10 @@ Defined in conflicts.dm of the #defines folder. throw_range = 7 pry_delay = 1 SECONDS +/obj/item/attachable/bayonet/van_bandolier + name = "\improper Fairbairn-Sykes fighting knife" + desc = "This isn't for dressing game or performing camp chores. It's almost certainly not an original. Almost." + /obj/item/attachable/bayonet/co2/update_icon() icon_state = "co2_knife[filled ? "-f" : ""]" attach_icon = "co2_bayonet[filled ? "-f" : ""]_a" @@ -450,7 +455,7 @@ Defined in conflicts.dm of the #defines folder. /obj/item/attachable/f90_dmr_barrel name = "f90 barrel" - desc = "This isn't supposed to be seperated from the gun, how'd this happen?" + desc = "This isn't supposed to be separated from the gun, how'd this happen?" icon_state = "aug_dmr_barrel_a" attach_icon = "aug_dmr_barrel_a" slot = "muzzle" @@ -461,7 +466,7 @@ Defined in conflicts.dm of the #defines folder. /obj/item/attachable/f90_shotgun_barrel name = "f90 barrel" - desc = "This isn't supposed to be seperated from the gun, how'd this happen?" + desc = "This isn't supposed to be separated from the gun, how'd this happen?" icon_state = "aug_mkey_barrel_a" attach_icon = "aug_mkey_barrel_a" slot = "muzzle" @@ -472,7 +477,7 @@ Defined in conflicts.dm of the #defines folder. /obj/item/attachable/l56a2_smartgun name = "l56a2 barrel" - desc = "This isn't supposed to be seperated from the gun, how'd this happen?" + desc = "This isn't supposed to be separated from the gun, how'd this happen?" icon_state = "magsg_barrel_a" attach_icon = "magsg_barrel_a" slot = "muzzle" @@ -1266,6 +1271,19 @@ Defined in conflicts.dm of the #defines folder. QDEL_NULL(scope_element) return ..() +/obj/item/attachable/vulture_scope/select_gamemode_skin(expected_type, list/override_icon_state, list/override_protection) + . = ..() + var/new_attach_icon + switch(SSmapping.configs[GROUND_MAP].camouflage_type) + if("snow") + attach_icon = new_attach_icon ? new_attach_icon : "s_" + attach_icon + if("desert") + attach_icon = new_attach_icon ? new_attach_icon : "d_" + attach_icon + if("classic") + attach_icon = new_attach_icon ? new_attach_icon : "c_" + attach_icon + if("urban") + attach_icon = new_attach_icon ? new_attach_icon : "u_" + attach_icon + /obj/item/attachable/vulture_scope/tgui_interact(mob/user, datum/tgui/ui) ui = SStgui.try_update_ui(user, src, ui) if(!ui) @@ -1582,7 +1600,7 @@ Defined in conflicts.dm of the #defines folder. scoper.clear_fullscreen("vulture") scoper.client.remove_from_screen(scope_element) scoper.see_in_dark -= darkness_view - scoper.lighting_alpha = 127 + scoper.lighting_alpha = LIGHTING_PLANE_ALPHA_VISIBLE scoper.sync_lighting_plane_alpha() QDEL_NULL(scope_element) recalculate_scope_pos() @@ -1743,8 +1761,6 @@ Defined in conflicts.dm of the #defines folder. //but at the same time you are slow when 2 handed aim_speed_mod = CONFIG_GET(number/slowdown_med) - matter = list("wood" = 2000) - select_gamemode_skin(type) /obj/item/attachable/stock/double @@ -1809,6 +1825,7 @@ Defined in conflicts.dm of the #defines folder. /obj/item/attachable/stock/vulture name = "\improper M707 heavy stock" icon_state = "vulture_stock" + attach_icon = "vulture_stock" hud_offset_mod = 3 /obj/item/attachable/stock/vulture/Initialize(mapload, ...) @@ -1816,6 +1833,19 @@ Defined in conflicts.dm of the #defines folder. select_gamemode_skin(type) // Doesn't give any stat additions due to the gun already having really good ones, and this is unremovable from the gun itself +/obj/item/attachable/stock/vulture/select_gamemode_skin(expected_type, list/override_icon_state, list/override_protection) + . = ..() + var/new_attach_icon + switch(SSmapping.configs[GROUND_MAP].camouflage_type) + if("snow") + attach_icon = new_attach_icon ? new_attach_icon : "s_" + attach_icon + if("desert") + attach_icon = new_attach_icon ? new_attach_icon : "d_" + attach_icon + if("classic") + attach_icon = new_attach_icon ? new_attach_icon : "c_" + attach_icon + if("urban") + attach_icon = new_attach_icon ? new_attach_icon : "u_" + attach_icon + /obj/item/attachable/stock/tactical name = "\improper MK221 tactical stock" desc = "A metal stock made for the MK221 tactical shotgun." @@ -2100,6 +2130,43 @@ Defined in conflicts.dm of the #defines folder. flags_attach_features = NO_FLAGS hud_offset_mod = 2 +/obj/item/attachable/stock/xm51 + name = "\improper XM51 stock" + desc = "A specialized stock designed for XM51 breaching shotguns. Helps the user absorb the recoil of the weapon while also reducing scatter. Integrated mechanisms inside the stock allow use of a devastating two-shot burst. This comes at a cost of the gun becoming too unwieldy to holster, worse handling and mobility." + icon_state = "xm51_stock" + attach_icon = "xm51_stock_a" + wield_delay_mod = WIELD_DELAY_FAST + hud_offset_mod = 3 + melee_mod = 10 + +/obj/item/attachable/stock/xm51/Initialize(mapload, ...) + . = ..() + select_gamemode_skin(type) + //it makes stuff much better when two-handed + accuracy_mod = HIT_ACCURACY_MULT_TIER_3 + recoil_mod = -RECOIL_AMOUNT_TIER_4 + scatter_mod = -SCATTER_AMOUNT_TIER_8 + movement_onehanded_acc_penalty_mod = -MOVEMENT_ACCURACY_PENALTY_MULT_TIER_4 + //and allows for burst-fire + burst_mod = BURST_AMOUNT_TIER_2 + //but it makes stuff much worse when one handed + accuracy_unwielded_mod = -HIT_ACCURACY_MULT_TIER_5 + recoil_unwielded_mod = RECOIL_AMOUNT_TIER_5 + scatter_unwielded_mod = SCATTER_AMOUNT_TIER_6 + //and makes you slower + aim_speed_mod = CONFIG_GET(number/slowdown_med) + +/obj/item/attachable/stock/xm51/select_gamemode_skin(expected_type, list/override_icon_state, list/override_protection) + . = ..() + var/new_attach_icon + switch(SSmapping.configs[GROUND_MAP].camouflage_type) + if("snow") + attach_icon = new_attach_icon ? new_attach_icon : "s_" + attach_icon + if("desert") + attach_icon = new_attach_icon ? new_attach_icon : "d_" + attach_icon + if("classic") + attach_icon = new_attach_icon ? new_attach_icon : "c_" + attach_icon + /obj/item/attachable/stock/mod88 name = "\improper Mod 88 burst stock" desc = "Increases the fire rate and burst amount on the Mod 88. Some versions act as a holster for the weapon when un-attached. This is a test item and should not be used in normal gameplay (yet)." @@ -2192,7 +2259,7 @@ Defined in conflicts.dm of the #defines folder. /obj/item/attachable/m4ra_barrel name = "M4RA barrel" - desc = "This isn't supposed to be seperated from the gun, how'd this happen?" + desc = "This isn't supposed to be separated from the gun, how'd this happen?" icon_state = "m4ra_barrel" attach_icon = "m4ra_barrel" slot = "special" @@ -2218,7 +2285,7 @@ Defined in conflicts.dm of the #defines folder. /obj/item/attachable/m4ra_barrel_custom name = "custom M4RA barrel" - desc = "This isn't supposed to be seperated from the gun, how'd this happen?" + desc = "This isn't supposed to be separated from the gun, how'd this happen?" icon_state = "m4ra_custom_barrel" attach_icon = "m4ra_custom_barrel" slot = "special" @@ -2244,7 +2311,7 @@ Defined in conflicts.dm of the #defines folder. /obj/item/attachable/upp_rpg_breech name = "HJRA-12 Breech" - desc = "This isn't supposed to be seperated from the gun, how'd this happen?" + desc = "This isn't supposed to be separated from the gun, how'd this happen?" icon = 'icons/obj/items/weapons/guns/attachments/stock.dmi' icon_state = "hjra_breech" attach_icon = "hjra_breech" @@ -2256,7 +2323,7 @@ Defined in conflicts.dm of the #defines folder. /obj/item/attachable/pkpbarrel name = "QYJ-72 Barrel" - desc = "This isn't supposed to be seperated from the gun, how'd this happen?" + desc = "This isn't supposed to be separated from the gun, how'd this happen?" icon = 'icons/obj/items/weapons/guns/attachments/barrel.dmi' icon_state = "uppmg_barrel" attach_icon = "uppmg_barrel" @@ -2268,7 +2335,7 @@ Defined in conflicts.dm of the #defines folder. /obj/item/attachable/stock/pkpstock name = "QYJ-72 Stock" - desc = "This isn't supposed to be seperated from the gun, how'd this happen?" + desc = "This isn't supposed to be separated from the gun, how'd this happen?" icon = 'icons/obj/items/weapons/guns/attachments/stock.dmi' icon_state = "uppmg_stock" attach_icon = "uppmg_stock" @@ -2280,7 +2347,7 @@ Defined in conflicts.dm of the #defines folder. /obj/item/attachable/type88_barrel name = "Type-88 Barrel" - desc = "This isn't supposed to be seperated from the gun, how'd this happen?" + desc = "This isn't supposed to be separated from the gun, how'd this happen?" icon = 'icons/obj/items/weapons/guns/attachments/barrel.dmi' icon_state = "type88_barrel" attach_icon = "type88_barrel" @@ -2292,7 +2359,7 @@ Defined in conflicts.dm of the #defines folder. /obj/item/attachable/type73suppressor name = "Type 73 Integrated Suppressor" - desc = "This isn't supposed to be seperated from the gun, how'd this happen?" + desc = "This isn't supposed to be separated from the gun, how'd this happen?" icon = 'icons/obj/items/weapons/guns/attachments/barrel.dmi' icon_state = "type73_suppressor" attach_icon = "type73_suppressor" @@ -2304,7 +2371,7 @@ Defined in conflicts.dm of the #defines folder. /obj/item/attachable/stock/type71 name = "Type 71 Stock" - desc = "This isn't supposed to be seperated from the gun, how'd this happen?" + desc = "This isn't supposed to be separated from the gun, how'd this happen?" icon = 'icons/obj/items/weapons/guns/attachments/stock.dmi' icon_state = "type71_stock" attach_icon = "type71_stock" @@ -2433,7 +2500,7 @@ Defined in conflicts.dm of the #defines folder. /obj/item/attachable/stock/smg/collapsible/brace/apply_on_weapon(obj/item/weapon/gun/G) if(stock_activated) - G.flags_item |= NODROP + G.flags_item |= NODROP|FORCEDROP_CONDITIONAL accuracy_mod = -HIT_ACCURACY_MULT_TIER_3 scatter_mod = SCATTER_AMOUNT_TIER_8 recoil_mod = RECOIL_AMOUNT_TIER_2 //Hurts pretty bad if it's wielded. @@ -2444,7 +2511,7 @@ Defined in conflicts.dm of the #defines folder. icon_state = "smg_brace_on" attach_icon = "smg_brace_a_on" else - G.flags_item &= ~NODROP + G.flags_item &= ~(NODROP|FORCEDROP_CONDITIONAL) accuracy_mod = 0 scatter_mod = 0 recoil_mod = 0 @@ -2906,7 +2973,7 @@ Defined in conflicts.dm of the #defines folder. current_rounds += transfered_rounds FT.current_rounds -= transfered_rounds - var/amount_of_reagents = FT.reagents.reagent_list.len + var/amount_of_reagents = length(FT.reagents.reagent_list) var/amount_removed_per_reagent = transfered_rounds / amount_of_reagents for(var/datum/reagent/R in FT.reagents.reagent_list) R.volume -= amount_removed_per_reagent @@ -2936,7 +3003,7 @@ Defined in conflicts.dm of the #defines folder. /obj/item/attachable/attached_gun/flamer/proc/unleash_flame(atom/target, mob/living/user) set waitfor = 0 - var/list/turf/turfs = getline2(user,target) + var/list/turf/turfs = get_line(user,target) var/distance = 0 var/turf/prev_T var/stop_at_turf = FALSE @@ -3152,21 +3219,29 @@ Defined in conflicts.dm of the #defines folder. to_chat(user, SPAN_WARNING("\The [gun] doesn't have enough fuel to launch a projectile!")) return + if(istype(flamer_reagent, /datum/reagent/foaming_agent/stabilized)) + to_chat(user, SPAN_WARNING("This chemical will clog the nozzle!")) + return + + if(istype(gun.current_mag, /obj/item/ammo_magazine/flamer_tank/smoke)) // you can't fire smoke like a projectile! + to_chat(user, SPAN_WARNING("[src] can't be used with this fuel tank!")) + return + gun.last_fired = world.time gun.current_mag.reagents.remove_reagent(flamer_reagent.id, FLAME_REAGENT_USE_AMOUNT * fuel_per_projectile) var/obj/projectile/P = new(src, create_cause_data(initial(name), user, src)) var/datum/ammo/flamethrower/ammo_datum = new projectile_type - ammo_datum.flamer_reagent_type = flamer_reagent.type + ammo_datum.flamer_reagent_id = flamer_reagent.id P.generate_bullet(ammo_datum) P.icon_state = "naptha_ball" - P.color = flamer_reagent.color + P.color = flamer_reagent.burncolor P.hit_effect_color = flamer_reagent.burncolor P.fire_at(target, user, user, max_range, AMMO_SPEED_TIER_2, null) var/turf/user_turf = get_turf(user) playsound(user_turf, pick(fire_sounds), 50, TRUE) - to_chat(user, SPAN_WARNING("The gauge reads: [round(gun.current_mag.get_ammo_percent())]% fuel remaining!")) + to_chat(user, SPAN_WARNING("The gauge reads: [floor(gun.current_mag.get_ammo_percent())]% fuel remaining!")) /obj/item/attachable/verticalgrip name = "vertical grip" @@ -3259,6 +3334,10 @@ Defined in conflicts.dm of the #defines folder. var/bipod_deployed = FALSE /// If this should anchor the user while in use var/heavy_bipod = FALSE + // Are switching to full auto when deploying the bipod + var/full_auto_switch = FALSE + // Store our old firemode so we can switch to it when undeploying the bipod + var/old_firemode = null /obj/item/attachable/bipod/New() ..() @@ -3269,16 +3348,33 @@ Defined in conflicts.dm of the #defines folder. scatter_mod = SCATTER_AMOUNT_TIER_9 recoil_mod = RECOIL_AMOUNT_TIER_5 -/obj/item/attachable/bipod/Attach(obj/item/weapon/gun/G) +/obj/item/attachable/bipod/Attach(obj/item/weapon/gun/gun, mob/user) ..() - RegisterSignal(G, COMSIG_ITEM_DROPPED, PROC_REF(handle_drop)) + if((GUN_FIREMODE_AUTOMATIC in gun.gun_firemode_list) || (gun.flags_gun_features & GUN_SUPPORT_PLATFORM)) + var/given_action = FALSE + if(user && (gun == user.l_hand || gun == user.r_hand)) + give_action(user, /datum/action/item_action/bipod/toggle_full_auto_switch, src, gun) + given_action = TRUE + if(!given_action) + new /datum/action/item_action/bipod/toggle_full_auto_switch(src, gun) + + RegisterSignal(gun, COMSIG_ITEM_DROPPED, PROC_REF(handle_drop)) /obj/item/attachable/bipod/Detach(mob/user, obj/item/weapon/gun/detaching_gub) UnregisterSignal(detaching_gub, COMSIG_ITEM_DROPPED) + //clear out anything related to full auto switching + full_auto_switch = FALSE + old_firemode = null + for(var/item_action in detaching_gub.actions) + var/datum/action/item_action/bipod/toggle_full_auto_switch/target_action = item_action + if(target_action.target == src) + qdel(item_action) + break + if(bipod_deployed) - undeploy_bipod(detaching_gub) + undeploy_bipod(detaching_gub, user) ..() /obj/item/attachable/bipod/update_icon() @@ -3292,60 +3388,62 @@ Defined in conflicts.dm of the #defines folder. if(istype(loc, /obj/item/weapon/gun)) var/obj/item/weapon/gun/gun = loc gun.update_attachable(slot) - for(var/datum/action/A as anything in gun.actions) - A.update_button_icon() + for(var/datum/action/item_action as anything in gun.actions) + if(!istype(item_action, /datum/action/item_action/bipod/toggle_full_auto_switch)) + item_action.update_button_icon() -/obj/item/attachable/bipod/proc/handle_drop(obj/item/weapon/gun/G, mob/living/carbon/human/user) +/obj/item/attachable/bipod/proc/handle_drop(obj/item/weapon/gun/gun, mob/living/carbon/human/user) SIGNAL_HANDLER UnregisterSignal(user, COMSIG_MOB_MOVE_OR_LOOK) if(bipod_deployed) - undeploy_bipod(G) + undeploy_bipod(gun, user) user.apply_effect(1, SUPERSLOW) user.apply_effect(2, SLOW) -/obj/item/attachable/bipod/proc/undeploy_bipod(obj/item/weapon/gun/G) - REMOVE_TRAIT(G, TRAIT_GUN_BIPODDED, "attached_bipod") +/obj/item/attachable/bipod/proc/undeploy_bipod(obj/item/weapon/gun/gun, mob/user) + REMOVE_TRAIT(gun, TRAIT_GUN_BIPODDED, "attached_bipod") bipod_deployed = FALSE accuracy_mod = -HIT_ACCURACY_MULT_TIER_5 scatter_mod = SCATTER_AMOUNT_TIER_9 recoil_mod = RECOIL_AMOUNT_TIER_5 burst_scatter_mod = 0 delay_mod = FIRE_DELAY_TIER_12 - G.recalculate_attachment_bonuses() - G.stop_fire() - var/mob/living/user - if(isliving(G.loc)) - user = G.loc - SEND_SIGNAL(user, COMSIG_MOB_UNDEPLOYED_BIPOD) - UnregisterSignal(user, COMSIG_MOB_MOVE_OR_LOOK) + //if we are no longer on full auto, don't bother switching back to the old firemode + if(full_auto_switch && gun.gun_firemode == GUN_FIREMODE_AUTOMATIC && gun.gun_firemode != old_firemode) + gun.do_toggle_firemode(user, null, old_firemode) - if(G.flags_gun_features & GUN_SUPPORT_PLATFORM) - G.remove_firemode(GUN_FIREMODE_AUTOMATIC) + gun.recalculate_attachment_bonuses() + gun.stop_fire() + SEND_SIGNAL(user, COMSIG_MOB_UNDEPLOYED_BIPOD) + UnregisterSignal(user, COMSIG_MOB_MOVE_OR_LOOK) + + if(gun.flags_gun_features & GUN_SUPPORT_PLATFORM) + gun.remove_firemode(GUN_FIREMODE_AUTOMATIC) if(heavy_bipod) user.anchored = FALSE - if(!QDELETED(G)) + if(!QDELETED(gun)) playsound(user,'sound/items/m56dauto_rotate.ogg', 55, 1) update_icon() -/obj/item/attachable/bipod/activate_attachment(obj/item/weapon/gun/G,mob/living/user, turn_off) +/obj/item/attachable/bipod/activate_attachment(obj/item/weapon/gun/gun, mob/living/user, turn_off) if(turn_off) if(bipod_deployed) - undeploy_bipod(G) + undeploy_bipod(gun, user) else - var/obj/support = check_bipod_support(G, user) + var/obj/support = check_bipod_support(gun, user) if(!support&&!bipod_deployed) to_chat(user, SPAN_NOTICE("You start deploying [src] on the ground.")) - if(!do_after(user, 15, INTERRUPT_ALL, BUSY_ICON_HOSTILE, G,INTERRUPT_DIFF_LOC)) + if(!do_after(user, 15, INTERRUPT_ALL, BUSY_ICON_HOSTILE, gun, INTERRUPT_DIFF_LOC)) return FALSE bipod_deployed = !bipod_deployed if(user) if(bipod_deployed) - ADD_TRAIT(G, TRAIT_GUN_BIPODDED, "attached_bipod") + ADD_TRAIT(gun, TRAIT_GUN_BIPODDED, "attached_bipod") to_chat(user, SPAN_NOTICE("You deploy [src] [support ? "on [support]" : "on the ground"].")) SEND_SIGNAL(user, COMSIG_MOB_DEPLOYED_BIPOD) playsound(user,'sound/items/m56dauto_rotate.ogg', 55, 1) @@ -3353,25 +3451,29 @@ Defined in conflicts.dm of the #defines folder. scatter_mod = -SCATTER_AMOUNT_TIER_10 recoil_mod = -RECOIL_AMOUNT_TIER_4 burst_scatter_mod = -SCATTER_AMOUNT_TIER_8 - if(istype(G,/obj/item/weapon/gun/rifle/sniper/M42A)) + if(istype(gun, /obj/item/weapon/gun/rifle/sniper/M42A)) delay_mod = -FIRE_DELAY_TIER_7 else delay_mod = -FIRE_DELAY_TIER_12 - G.recalculate_attachment_bonuses() - G.stop_fire() + gun.recalculate_attachment_bonuses() + gun.stop_fire() initial_mob_dir = user.dir RegisterSignal(user, COMSIG_MOB_MOVE_OR_LOOK, PROC_REF(handle_mob_move_or_look)) - if(G.flags_gun_features & GUN_SUPPORT_PLATFORM) - G.add_firemode(GUN_FIREMODE_AUTOMATIC) + if(gun.flags_gun_features & GUN_SUPPORT_PLATFORM) + gun.add_firemode(GUN_FIREMODE_AUTOMATIC) if(heavy_bipod) user.anchored = TRUE + old_firemode = gun.gun_firemode + if(full_auto_switch && gun.gun_firemode != GUN_FIREMODE_AUTOMATIC) + gun.do_toggle_firemode(user, null, GUN_FIREMODE_AUTOMATIC) + else to_chat(user, SPAN_NOTICE("You retract [src].")) - undeploy_bipod(G) + undeploy_bipod(gun, user) update_icon() @@ -3388,10 +3490,10 @@ Defined in conflicts.dm of the #defines folder. //when user fires the gun, we check if they have something to support the gun's bipod. -/obj/item/attachable/proc/check_bipod_support(obj/item/weapon/gun/G, mob/living/user) +/obj/item/attachable/proc/check_bipod_support(obj/item/weapon/gun/gun, mob/living/user) return 0 -/obj/item/attachable/bipod/check_bipod_support(obj/item/weapon/gun/G, mob/living/user) +/obj/item/attachable/bipod/check_bipod_support(obj/item/weapon/gun/gun, mob/living/user) var/turf/T = get_turf(user) for(var/obj/O in T) if(O.throwpass && O.density && O.dir == user.dir && O.flags_atom & ON_BORDER) @@ -3403,6 +3505,31 @@ Defined in conflicts.dm of the #defines folder. return O2 return 0 +//item actions for handling deployment to full auto. +/datum/action/item_action/bipod/toggle_full_auto_switch/New(Target, obj/item/holder) + . = ..() + name = "Toggle Full Auto Switch" + action_icon_state = "full_auto_switch" + button.name = name + button.overlays.Cut() + button.overlays += image('icons/mob/hud/actions.dmi', button, action_icon_state) + +/datum/action/item_action/bipod/toggle_full_auto_switch/action_activate() + var/obj/item/weapon/gun/holder_gun = holder_item + var/obj/item/attachable/bipod/attached_bipod = holder_gun.attachments["under"] + + attached_bipod.full_auto_switch = !attached_bipod.full_auto_switch + to_chat(owner, SPAN_NOTICE("[icon2html(holder_gun, owner)] You will [attached_bipod.full_auto_switch? "start" : "stop"] switching to full auto when deploying the bipod.")) + playsound(owner, 'sound/weapons/handling/gun_burst_toggle.ogg', 15, 1) + + if(attached_bipod.full_auto_switch) + button.icon_state = "template_on" + else + button.icon_state = "template" + + button.overlays.Cut() + button.overlays += image('icons/mob/hud/actions.dmi', button, action_icon_state) + /obj/item/attachable/bipod/m60 name = "bipod" @@ -3419,6 +3546,23 @@ Defined in conflicts.dm of the #defines folder. attach_icon = "vulture_bipod" heavy_bipod = TRUE +/obj/item/attachable/bipod/vulture/Initialize(mapload, ...) + . = ..() + select_gamemode_skin(type) + +/obj/item/attachable/bipod/vulture/select_gamemode_skin(expected_type, list/override_icon_state, list/override_protection) + . = ..() + var/new_attach_icon + switch(SSmapping.configs[GROUND_MAP].camouflage_type) + if("snow") + attach_icon = new_attach_icon ? new_attach_icon : "s_" + attach_icon + if("desert") + attach_icon = new_attach_icon ? new_attach_icon : "d_" + attach_icon + if("classic") + attach_icon = new_attach_icon ? new_attach_icon : "c_" + attach_icon + if("urban") + attach_icon = new_attach_icon ? new_attach_icon : "u_" + attach_icon + /obj/item/attachable/burstfire_assembly name = "burst fire assembly" desc = "A small angled piece of fine machinery that increases the burst count on some weapons, and grants the ability to others. \nIncreases weapon scatter." diff --git a/code/modules/projectiles/gun_helpers.dm b/code/modules/projectiles/gun_helpers.dm index 8e73124a8b92..efc7abf3aa20 100644 --- a/code/modules/projectiles/gun_helpers.dm +++ b/code/modules/projectiles/gun_helpers.dm @@ -312,7 +312,7 @@ DEFINES in setup.dm, referenced here. var/tac_reload_time = 15 if(user.skills) tac_reload_time = max(15 - 5*user.skills.get_skill_level(SKILL_FIREARMS), 5) - if(do_after(user,tac_reload_time, INTERRUPT_ALL, BUSY_ICON_FRIENDLY) && magazine.loc == old_mag_loc && !current_mag) + if(do_after(user,tac_reload_time, (INTERRUPT_ALL & (~INTERRUPT_MOVED)) , BUSY_ICON_FRIENDLY) && magazine.loc == old_mag_loc && !current_mag) if(isstorage(magazine.loc)) var/obj/item/storage/master_storage = magazine.loc master_storage.remove_from_storage(magazine) @@ -390,12 +390,12 @@ DEFINES in setup.dm, referenced here. user.visible_message(SPAN_NOTICE("[user] attaches [attachment] to [src]."), SPAN_NOTICE("You attach [attachment] to [src]."), null, 4) user.temp_drop_inv_item(attachment) - attachment.Attach(src) + attachment.Attach(src, user) update_attachable(attachment.slot) playsound(user, 'sound/handling/attachment_add.ogg', 15, 1, 4) return TRUE -/obj/item/weapon/gun/proc/on_detach(obj/item/attachable/attachment) +/obj/item/weapon/gun/proc/on_detach(mob/user, obj/item/attachable/attachment) return /obj/item/weapon/gun/proc/update_attachables() //Updates everything. You generally don't need to use this. @@ -460,9 +460,9 @@ DEFINES in setup.dm, referenced here. else attack_verb = list("slashed", "stabbed", "speared", "torn", "punctured", "pierced", "gored") //Greater than 35 /obj/item/weapon/gun/proc/get_active_firearm(mob/user, restrictive = TRUE) - if(!ishuman(usr)) - return if(user.is_mob_incapacitated() || !isturf(usr.loc)) + return + if(!ishuman(user) && !HAS_TRAIT(user, TRAIT_OPPOSABLE_THUMBS)) to_chat(user, SPAN_WARNING("Not right now.")) return @@ -517,25 +517,20 @@ DEFINES in setup.dm, referenced here. return FALSE if(istype(slot) && (slot.storage_flags & STORAGE_ALLOW_QUICKDRAW)) - for(var/obj/cycled_weapon in slot.return_inv()) - if(isweapon(cycled_weapon)) + for(var/obj/cycled_object in slot.return_inv()) + if(cycled_object.flags_atom & QUICK_DRAWABLE) return slot - if(isweapon(slot)) //then check for weapons + if(slot.flags_atom & QUICK_DRAWABLE) return slot return FALSE -//For the holster hotkey -/mob/living/silicon/robot/verb/holster_verb(unholster_number_offset = 1 as num) - set name = "holster" - set hidden = TRUE - uneq_active() - +///For the holster hotkey /mob/living/carbon/human/verb/holster_verb(unholster_number_offset = 1 as num) set name = "holster" set hidden = TRUE - if(usr.is_mob_incapacitated(TRUE) || usr.is_mob_restrained()) + if(usr.is_mob_incapacitated(TRUE) || usr.is_mob_restrained() || IsKnockDown() || HAS_TRAIT_FROM(src, TRAIT_UNDENSE, LYING_DOWN_TRAIT)) to_chat(src, SPAN_WARNING("You can't draw a weapon in your current state.")) return @@ -770,7 +765,6 @@ DEFINES in setup.dm, referenced here. unique_action(usr) - /obj/item/weapon/gun/verb/toggle_gun_safety() set category = "Weapons" set name = "Toggle Gun Safety" @@ -787,7 +781,7 @@ DEFINES in setup.dm, referenced here. if(flags_gun_features & GUN_BURST_FIRING) return - if(!ishuman(usr)) + if(!ishuman(usr) && !HAS_TRAIT(usr, TRAIT_OPPOSABLE_THUMBS)) return if(usr.is_mob_incapacitated() || !usr.loc || !isturf(usr.loc)) @@ -821,11 +815,11 @@ DEFINES in setup.dm, referenced here. if(attachment && (attachment.flags_attach_features & ATTACH_ACTIVATION) ) usable_attachments += attachment - if(!usable_attachments.len) //No usable attachments. + if(!length(usable_attachments)) //No usable attachments. to_chat(usr, SPAN_WARNING("[src] does not have any usable attachments!")) return - if(usable_attachments.len == 1) //Activates the only attachment if there is only one. + if(length(usable_attachments) == 1) //Activates the only attachment if there is only one. chosen_attachment = usable_attachments[1] else chosen_attachment = tgui_input_list(usr, "Which attachment to activate?", "Activate attachment", usable_attachments) @@ -938,6 +932,15 @@ DEFINES in setup.dm, referenced here. return null return params2turf(modifiers["screen-loc"], get_turf(user), user.client) +/// check if the gun contains any light source that is currently turned on. +/obj/item/weapon/gun/proc/light_sources() + var/obj/item/attachable/flashlight/torch + for(var/slot in attachments) + torch = attachments[slot] + if(istype(torch) && torch.light_on == TRUE) + return TRUE // an attachment has light enabled. + return FALSE + /// If this gun has a relevant flashlight attachable attached, (de)activate it /obj/item/weapon/gun/proc/force_light(on) var/obj/item/attachable/flashlight/torch diff --git a/code/modules/projectiles/guns/boltaction.dm b/code/modules/projectiles/guns/boltaction.dm index d21cb5b87254..a1b8705240a4 100644 --- a/code/modules/projectiles/guns/boltaction.dm +++ b/code/modules/projectiles/guns/boltaction.dm @@ -129,7 +129,7 @@ The 'pitter-patter' of 'rain' that the crews heard was in fact multiple rifles failing to penetrate through the vehicle's external armor. Once a number of the anti-materiel rifles were examined, it was deemed a high priority to produce a Corps version. In the process, the rifles were designed for a higher calibre then that of the rebel versions, so the M707 would be capable of penetrating the light vehicle armor of their UPP peers in the event of another Dog War or Tientsin."} - icon = 'icons/obj/items/weapons/guns/guns_by_faction/uscm.dmi' // overriden with camos + icon = 'icons/obj/items/weapons/guns/guns_by_faction/uscm.dmi' // overridden with camos icon_state = "vulture" item_state = "vulture" cocked_sound = 'sound/weapons/gun_cocked2.ogg' @@ -171,11 +171,17 @@ /obj/item/weapon/gun/boltaction/vulture/update_icon() ..() + var/new_icon_state = src::icon_state + if(!current_mag) + new_icon_state += "_e" + + icon_state = new_icon_state + if(!bolted) overlays += "vulture_bolt_open" -/obj/item/weapon/gun/boltaction/vulture/set_gun_config_values() //check that these work +/obj/item/weapon/gun/boltaction/vulture/set_gun_config_values() ..() set_fire_delay(FIRE_DELAY_TIER_VULTURE) accuracy_mult = BASE_ACCURACY_MULT + HIT_ACCURACY_MULT_TIER_7 @@ -192,13 +198,11 @@ attachable_offset = list("muzzle_x" = 33, "muzzle_y" = 19, "rail_x" = 11, "rail_y" = 24, "under_x" = 25, "under_y" = 14, "stock_x" = 11, "stock_y" = 15) /obj/item/weapon/gun/boltaction/vulture/able_to_fire(mob/user) - . = ..() - if(!.) - return - if(!bypass_trait && !HAS_TRAIT(user, TRAIT_VULTURE_USER)) to_chat(user, SPAN_WARNING("You don't know how to use this!")) - return + return FALSE + + return ..() /obj/item/weapon/gun/boltaction/vulture/Fire(atom/target, mob/living/user, params, reflex, dual_wield) var/obj/item/attachable/vulture_scope/scope = attachments["rail"] @@ -279,3 +283,9 @@ /obj/item/weapon/gun/boltaction/vulture/skillless bypass_trait = TRUE + +/obj/item/weapon/gun/boltaction/vulture/holo_target + current_mag = /obj/item/ammo_magazine/rifle/boltaction/vulture/holo_target + +/obj/item/weapon/gun/boltaction/vulture/holo_target/skillless + bypass_trait = TRUE diff --git a/code/modules/projectiles/guns/energy.dm b/code/modules/projectiles/guns/energy.dm index ee122d8f8edd..b2ec3dea63ce 100644 --- a/code/modules/projectiles/guns/energy.dm +++ b/code/modules/projectiles/guns/energy.dm @@ -67,7 +67,7 @@ /obj/item/weapon/gun/energy/emp_act(severity) . = ..() - cell.use(round(cell.maxcharge / severity)) + cell.use(floor(cell.maxcharge / severity)) update_icon() /obj/item/weapon/gun/energy/load_into_chamber() diff --git a/code/modules/projectiles/guns/flamer/flamer.dm b/code/modules/projectiles/guns/flamer/flamer.dm index 18fb0bf44cd8..c54d62e148b7 100644 --- a/code/modules/projectiles/guns/flamer/flamer.dm +++ b/code/modules/projectiles/guns/flamer/flamer.dm @@ -64,7 +64,7 @@ /obj/item/weapon/gun/flamer/get_examine_text(mob/user) . = ..() if(current_mag) - . += "The fuel gauge shows the current tank is [round(current_mag.get_ammo_percent())]% full!" + . += "The fuel gauge shows the current tank is [floor(current_mag.get_ammo_percent())]% full!" else . += "There's no tank in [src]!" @@ -136,7 +136,13 @@ click_empty(user) else user.track_shot(initial(name)) - unleash_flame(target, user) + if(istype(current_mag, /obj/item/ammo_magazine/flamer_tank/smoke)) + unleash_smoke(target, user) + else + if(current_mag.reagents.has_reagent("stablefoam")) + unleash_foam(target, user) + else + unleash_flame(target, user) return AUTOFIRE_CONTINUE return NONE @@ -197,7 +203,7 @@ /obj/item/weapon/gun/flamer/proc/unleash_flame(atom/target, mob/living/user) set waitfor = 0 last_fired = world.time - if(!current_mag || !current_mag.reagents || !current_mag.reagents.reagent_list.len) + if(!current_mag || !current_mag.reagents || !length(current_mag.reagents.reagent_list)) return var/datum/reagent/R = current_mag.reagents.reagent_list[1] @@ -205,16 +211,16 @@ var/flameshape = R.flameshape var/fire_type = R.fire_type - R.intensityfire = Clamp(R.intensityfire, current_mag.reagents.min_fire_int, current_mag.reagents.max_fire_int) - R.durationfire = Clamp(R.durationfire, current_mag.reagents.min_fire_dur, current_mag.reagents.max_fire_dur) - R.rangefire = Clamp(R.rangefire, current_mag.reagents.min_fire_rad, current_mag.reagents.max_fire_rad) + R.intensityfire = clamp(R.intensityfire, current_mag.reagents.min_fire_int, current_mag.reagents.max_fire_int) + R.durationfire = clamp(R.durationfire, current_mag.reagents.min_fire_dur, current_mag.reagents.max_fire_dur) + R.rangefire = clamp(R.rangefire, current_mag.reagents.min_fire_rad, current_mag.reagents.max_fire_rad) var/max_range = R.rangefire if (max_range < fuel_pressure) //Used for custom tanks, allows for higher ranges - max_range = Clamp(fuel_pressure, 0, current_mag.reagents.max_fire_rad) + max_range = clamp(fuel_pressure, 0, current_mag.reagents.max_fire_rad) if(R.rangefire == -1) max_range = current_mag.reagents.max_fire_rad - var/turf/temp[] = getline2(get_turf(user), get_turf(target)) + var/turf/temp[] = get_line(get_turf(user), get_turf(target)) var/turf/to_fire = temp[2] @@ -226,9 +232,122 @@ new /obj/flamer_fire(to_fire, create_cause_data(initial(name), user), R, max_range, current_mag.reagents, flameshape, target, CALLBACK(src, PROC_REF(show_percentage), user), fuel_pressure, fire_type) +/obj/item/weapon/gun/flamer/proc/unleash_smoke(atom/target, mob/living/user) + last_fired = world.time + if(!current_mag || !current_mag.reagents || !length(current_mag.reagents.reagent_list)) + return + + var/source_turf = get_turf(user) + var/smoke_range = 5 // the max range the smoke will travel + var/distance = 0 // the distance traveled + var/use_multiplier = 3 // if you want to increase the ammount of units drained from the tank + var/units_in_smoke = 35 // the smoke overlaps a little so this much is probably already good + + var/datum/reagent/chemical = current_mag.reagents.reagent_list[1] + var/datum/reagents/to_disperse = new() // this is the chemholder that will be used by the chemsmoke + to_disperse.add_reagent(chemical.id, units_in_smoke) + to_disperse.my_atom = src + + var/turf/turfs[] = get_line(user, target, FALSE) + var/turf/first_turf = turfs[1] + var/turf/second_turf = turfs[2] + var/ammount_required = (min(length(turfs), smoke_range) * use_multiplier) // the ammount of units that this click requires + for(var/turf/turf in turfs) + + if(chemical.volume < ammount_required) + smoke_range = floor(chemical.volume / use_multiplier) + + if(distance >= smoke_range) + break + + if(turf.density) + break + else + var/obj/effect/particle_effect/smoke/chem/checker = new() + var/atom/blocked = LinkBlocked(checker, source_turf, turf) + if(blocked) + break + + playsound(turf, 'sound/effects/smoke.ogg', 25, 1) + if(turf != first_turf && turf != second_turf) // we skip the first tile and make it small on the second so the smoke doesn't touch the user + var/datum/effect_system/smoke_spread/chem/smoke = new() + smoke.set_up(to_disperse, 5, loca = turf) + smoke.start() + if(turf == second_turf) + var/datum/effect_system/smoke_spread/chem/smoke = new() + smoke.set_up(to_disperse, 1, loca = turf) + smoke.start() + sleep(4) + + distance++ + + var/ammount_used = distance * use_multiplier // the actual ammount of units that we used + + chemical.volume = max(chemical.volume - ammount_used, 0) + + current_mag.reagents.total_volume = chemical.volume // this is needed for show_percentage to work + + if(chemical.volume < use_multiplier) // there aren't enough units left for a single tile of smoke, empty the tank + current_mag.reagents.clear_reagents() + + show_percentage(user) + +/obj/item/weapon/gun/flamer/proc/unleash_foam(atom/target, mob/living/user) + last_fired = world.time + if(!current_mag || !current_mag.reagents || !length(current_mag.reagents.reagent_list)) + return + + var/source_turf = get_turf(user) + var/foam_range = 6 // the max range the foam will travel + var/distance = 0 // the distance traveled + var/use_multiplier = 3 // if you want to increase the ammount of foam drained from the tank + var/datum/reagent/chemical = current_mag.reagents.reagent_list[1] + + var/turf/turfs[] = get_line(user, target, FALSE) + var/turf/first_turf = turfs[1] + var/ammount_required = (min(length(turfs), foam_range) * use_multiplier) // the ammount of units that this click requires + for(var/turf/turf in turfs) + + if(chemical.volume < ammount_required) + foam_range = floor(chemical.volume / use_multiplier) + + if(distance >= foam_range) + break + + if(turf.density) + break + else + var/obj/effect/particle_effect/foam/checker = new() + var/atom/blocked = LinkBlocked(checker, source_turf, turf) + if(blocked) + break + + if(turf == first_turf) // this is so the first foam tile doesn't expand and touch the user + var/datum/effect_system/foam_spread/foam = new() + foam.set_up(0.5, turf, metal_foam = FOAM_METAL_TYPE_IRON) + foam.start() + else + var/datum/effect_system/foam_spread/foam = new() + foam.set_up(1, turf, metal_foam = FOAM_METAL_TYPE_IRON) + foam.start() + sleep(2) + + distance++ + + var/ammount_used = distance * use_multiplier // the actual ammount of units that we used + + chemical.volume = max(chemical.volume - ammount_used, 0) + + current_mag.reagents.total_volume = chemical.volume // this is needed for show_percentage to work + + if(chemical.volume < use_multiplier) // there aren't enough units left for a single tile of foam, empty the tank + current_mag.reagents.clear_reagents() + + show_percentage(user) + /obj/item/weapon/gun/flamer/proc/show_percentage(mob/living/user) if(current_mag) - to_chat(user, SPAN_WARNING("The gauge reads: [round(current_mag.get_ammo_percent())]% fuel remains!")) + to_chat(user, SPAN_WARNING("The gauge reads: [floor(current_mag.get_ammo_percent())]% fuel remains!")) /obj/item/weapon/gun/flamer/underextinguisher starting_attachment_types = list(/obj/item/attachable/attached_gun/extinguisher) @@ -478,15 +597,7 @@ INVOKE_ASYNC(FS, TYPE_PROC_REF(/datum/flameshape, handle_fire_spread), src, fire_spread_amount, burn_dam, fuel_pressure) //Apply fire effects onto everyone in the fire - // Melt a single layer of snow - if (istype(loc, /turf/open/snow)) - var/turf/open/snow/S = loc - - if (S.bleed_layer > 0) - S.bleed_layer-- - S.update_icon(1, 0) - - //scorch mah grass HNNGGG + //scorch mah grass HNNGGG and muh SNOW hhhhGGG if (istype(loc, /turf/open)) var/turf/open/scorch_turf_target = loc if(scorch_turf_target.scorchable) @@ -536,7 +647,7 @@ if(!(sig_result & COMPONENT_NO_IGNITE)) switch(fire_variant) if(FIRE_VARIANT_TYPE_B) //Armor Shredding Greenfire, super easy to pat out. 50 duration -> 10 stacks (1 pat/resist) - ignited_morb.TryIgniteMob(round(tied_reagent.durationfire / 5), tied_reagent) + ignited_morb.TryIgniteMob(floor(tied_reagent.durationfire / 5), tied_reagent) else ignited_morb.TryIgniteMob(tied_reagent.durationfire, tied_reagent) @@ -594,7 +705,7 @@ return var/sig_result = SEND_SIGNAL(M, COMSIG_LIVING_FLAMER_CROSSED, tied_reagent) - var/burn_damage = round(burnlevel * 0.5) + var/burn_damage = floor(burnlevel * 0.5) switch(fire_variant) if(FIRE_VARIANT_TYPE_B) //Armor Shredding Greenfire, 2x tile damage (Equiavlent to UT) burn_damage = burnlevel @@ -613,7 +724,7 @@ if(!(sig_result & COMPONENT_NO_IGNITE) && burn_damage) switch(fire_variant) if(FIRE_VARIANT_TYPE_B) //Armor Shredding Greenfire, super easy to pat out. 50 duration -> 10 stacks (1 pat/resist) - M.TryIgniteMob(round(tied_reagent.durationfire / 5), tied_reagent) + M.TryIgniteMob(floor(tied_reagent.durationfire / 5), tied_reagent) else M.TryIgniteMob(tied_reagent.durationfire, tied_reagent) @@ -621,7 +732,7 @@ burn_damage = 0 if(!burn_damage) - to_chat(M, SPAN_DANGER("You step over the flames.")) + to_chat(M, SPAN_DANGER("[isxeno(M) ? "We" : "You"] step over the flames.")) return M.last_damage_data = weapon_cause_data @@ -632,7 +743,7 @@ if(FIRE_VARIANT_TYPE_B) if(isxeno(M)) var/mob/living/carbon/xenomorph/X = M - X.armor_deflection?(variant_burn_msg=" You feel the flames weakening your exoskeleton!"):(variant_burn_msg=" You feel the flaming chemicals eating into your body!") + X.armor_deflection?(variant_burn_msg=" We feel the flames weakening our exoskeleton!"):(variant_burn_msg=" You feel the flaming chemicals eating into your body!") to_chat(M, SPAN_DANGER("You are burned![variant_burn_msg?"[variant_burn_msg]":""]")) M.updatehealth() diff --git a/code/modules/projectiles/guns/flamer/flameshape.dm b/code/modules/projectiles/guns/flamer/flameshape.dm index ae6c2dec0a67..0b7c01ed0b0b 100644 --- a/code/modules/projectiles/guns/flamer/flameshape.dm +++ b/code/modules/projectiles/guns/flamer/flameshape.dm @@ -67,14 +67,14 @@ return GLOB.alldirs /datum/flameshape/star/handle_fire_spread(obj/flamer_fire/F, fire_spread_amount, burn_dam, fuel_pressure = 1) - fire_spread_amount = Floor(fire_spread_amount * 1.5) // branch 'length' + fire_spread_amount = floor(fire_spread_amount * 1.5) // branch 'length' var/turf/source_turf = get_turf(F.loc) var/list/dirs = dirs_to_use() for(var/dirn in dirs) var/endturf = get_ranged_target_turf(F, dirn, fire_spread_amount) - var/list/turfs = getline2(source_turf, endturf) + var/list/turfs = get_line(source_turf, endturf) var/turf/prev_T = source_turf for(var/turf/T in turfs) @@ -124,7 +124,7 @@ var/distance = 1 var/stop_at_turf = FALSE - var/list/turfs = getline2(source_turf, F.target_clicked) + var/list/turfs = get_line(source_turf, F.target_clicked) for(var/turf/T in turfs) if(istype(T, /turf/open/space)) break @@ -174,7 +174,7 @@ user = F.weapon_cause_data.resolve_mob() var/unleash_dir = user.dir - var/list/turf/turfs = getline2(F, F.target_clicked) + var/list/turf/turfs = get_line(F, F.target_clicked) var/distance = 1 var/hit_dense_atom_mid = FALSE var/turf/prev_T = user.loc diff --git a/code/modules/projectiles/guns/lever_action.dm b/code/modules/projectiles/guns/lever_action.dm index 849844f4f044..a8fb78f72a9c 100644 --- a/code/modules/projectiles/guns/lever_action.dm +++ b/code/modules/projectiles/guns/lever_action.dm @@ -353,7 +353,7 @@ their unique feature is that a direct hit will buff your damage and firerate name = "\improper XM88 heavy rifle" desc = "An experimental man-portable anti-material rifle chambered in .458 SOCOM. It must be manually chambered for every shot.\nIt has a special property - when you obtain multiple direct hits in a row, its armor penetration and damage will increase." desc_lore = "Originally developed by ARMAT Battlefield Systems for the government of the state of Greater Brazil for use in the Favela Wars (2161 - Ongoing) against mechanized infantry. The platform features an onboard computerized targeting system, sensor array, and an electronic autoloader; these features work in tandem to reduce and render inert armor on the users target with successive hits. The Almayer was issued a small amount of XM88s while preparing for Operation Swamp Hopper with the USS Nan-Shan." - icon = 'icons/obj/items/weapons/guns/guns_by_faction/uscm.dmi' // overriden with camos anyways + icon = 'icons/obj/items/weapons/guns/guns_by_faction/uscm.dmi' // overridden with camos anyways icon_state = "boomslang" item_state = "boomslang" fire_sound = 'sound/weapons/gun_boomslang_fire.ogg' diff --git a/code/modules/projectiles/guns/pistols.dm b/code/modules/projectiles/guns/pistols.dm index c17ca5bca739..3a85db687b26 100644 --- a/code/modules/projectiles/guns/pistols.dm +++ b/code/modules/projectiles/guns/pistols.dm @@ -236,7 +236,6 @@ icon = 'icons/obj/items/weapons/guns/guns_by_faction/colony.dmi' icon_state = "c_deagle" item_state = "c_deagle" - base_gun_icon = "c_deagle" current_mag = /obj/item/ammo_magazine/pistol/heavy/super/highimpact black_market_value = 100 @@ -257,7 +256,6 @@ desc = "A Desert Eagle anodized in gold and adorned with rosewood grips. The living definition of ostentatious, it's flashy, unwieldy, tremendously heavy, and kicks like a mule. But as a symbol of power, there's nothing like it." icon_state = "g_deagle" item_state = "g_deagle" - base_gun_icon = "g_deagle" //------------------------------------------------------- //NP92 pistol @@ -588,8 +586,8 @@ name = "\improper 88 Mod 4 combat pistol" desc = "Standard issue USCM firearm. Also found in the hands of Weyland-Yutani PMC teams. Fires 9mm armor shredding rounds and is capable of 3-round burst." icon = 'icons/obj/items/weapons/guns/guns_by_faction/uscm.dmi' - icon_state = "88m4" - item_state = "88m4" + icon_state = "_88m4" // to comply with css standards + item_state = "_88m4" fire_sound = "88m4" firesound_volume = 20 reload_sound = 'sound/weapons/gun_88m4_reload.ogg' @@ -717,7 +715,7 @@ /obj/item/weapon/gun/pistol/vp78/set_gun_config_values() ..() - set_fire_delay(FIRE_DELAY_TIER_4) + set_fire_delay(FIRE_DELAY_TIER_7) set_burst_amount(BURST_AMOUNT_TIER_3) set_burst_delay(FIRE_DELAY_TIER_11) accuracy_mult = BASE_ACCURACY_MULT diff --git a/code/modules/projectiles/guns/revolvers.dm b/code/modules/projectiles/guns/revolvers.dm index 48f237f9b562..1c2adc2360a3 100644 --- a/code/modules/projectiles/guns/revolvers.dm +++ b/code/modules/projectiles/guns/revolvers.dm @@ -6,7 +6,7 @@ w_class = SIZE_MEDIUM matter = list("metal" = 2000) - fire_sound = 'sound/weapons/gun_44mag_v3.ogg' + fire_sound = 'sound/weapons/gun_44mag_v4.ogg' reload_sound = 'sound/weapons/gun_44mag_speed_loader.wav' cocked_sound = 'sound/weapons/gun_revolver_spun.ogg' unload_sound = 'sound/weapons/gun_44mag_open_chamber.wav' @@ -534,7 +534,7 @@ desc = "Used to swap the barrels of a mateba revolver." icon = 'icons/obj/items/items.dmi' icon_state = "matebakey" - flags_atom = FPRINT|CONDUCT + flags_atom = FPRINT|QUICK_DRAWABLE|CONDUCT force = 5 w_class = SIZE_TINY throwforce = 5 diff --git a/code/modules/projectiles/guns/rifles.dm b/code/modules/projectiles/guns/rifles.dm index 1ee8aa189ed3..ad85220400fb 100644 --- a/code/modules/projectiles/guns/rifles.dm +++ b/code/modules/projectiles/guns/rifles.dm @@ -1587,6 +1587,11 @@ /obj/item/weapon/gun/rifle/m4ra/training current_mag = /obj/item/ammo_magazine/rifle/m4ra/rubber +/obj/item/weapon/gun/rifle/m4ra/tactical + current_mag = /obj/item/ammo_magazine/rifle/m4ra/ext + starting_attachment_types = list(/obj/item/attachable/magnetic_harness, /obj/item/attachable/suppressor, /obj/item/attachable/angledgrip) + + //------------------------------------------------------- //L42A Battle Rifle @@ -1763,9 +1768,9 @@ /obj/item/weapon/gun/rifle/rmc_f90/set_gun_config_values() ..() - fire_delay = FIRE_DELAY_TIER_8 + fire_delay = FIRE_DELAY_TIER_11 burst_amount = BURST_AMOUNT_TIER_3 - burst_delay = FIRE_DELAY_TIER_8 + burst_delay = FIRE_DELAY_TIER_11 accuracy_mult = BASE_ACCURACY_MULT + HIT_ACCURACY_MULT_TIER_4 + 2*HIT_ACCURACY_MULT_TIER_1 accuracy_mult_unwielded = BASE_ACCURACY_MULT - HIT_ACCURACY_MULT_TIER_7 scatter = SCATTER_AMOUNT_TIER_8 @@ -1804,7 +1809,7 @@ /obj/item/weapon/gun/rifle/rmc_f90/scope/set_gun_config_values() ..() - fire_delay = FIRE_DELAY_TIER_7 + fire_delay = FIRE_DELAY_TIER_11 burst_amount = 0 accuracy_mult = BASE_ACCURACY_MULT + HIT_ACCURACY_MULT_TIER_4 + 2*HIT_ACCURACY_MULT_TIER_1 accuracy_mult_unwielded = BASE_ACCURACY_MULT - HIT_ACCURACY_MULT_TIER_7 @@ -1844,9 +1849,9 @@ /obj/item/weapon/gun/rifle/rmc_f90/shotgun/set_gun_config_values() ..() - fire_delay = FIRE_DELAY_TIER_8 + fire_delay = FIRE_DELAY_TIER_11 burst_amount = BURST_AMOUNT_TIER_3 - burst_delay = FIRE_DELAY_TIER_8 + burst_delay = FIRE_DELAY_TIER_11 accuracy_mult = BASE_ACCURACY_MULT + HIT_ACCURACY_MULT_TIER_4 + 2*HIT_ACCURACY_MULT_TIER_1 accuracy_mult_unwielded = BASE_ACCURACY_MULT - HIT_ACCURACY_MULT_TIER_2 scatter = SCATTER_AMOUNT_TIER_8 @@ -1867,3 +1872,123 @@ f90_shotgun_barrel.Attach(src) update_attachable(f90_shotgun.slot) update_attachable(f90_shotgun_barrel.slot) + +//------------------------------------------------------- +//XM51, Breaching Scattergun + +/obj/item/weapon/gun/rifle/xm51 + name = "\improper XM51 breaching scattergun" + desc = "An experimental shotgun model going through testing trials in the USCM. Based on the original civilian and CMB version, the XM51 is a mag-fed, pump-action shotgun. It utilizes special 16-gauge breaching rounds which are effective at breaching walls and doors. Users are advised not to employ the weapon against soft or armored targets due to low performance of the shells." + icon_state = "xm51" + item_state = "xm51" + fire_sound = 'sound/weapons/gun_shotgun_xm51.ogg' + reload_sound = 'sound/weapons/handling/l42_reload.ogg' + unload_sound = 'sound/weapons/handling/l42_unload.ogg' + current_mag = /obj/item/ammo_magazine/rifle/xm51 + attachable_allowed = list( + /obj/item/attachable/bayonet, + /obj/item/attachable/bayonet/upp, + /obj/item/attachable/bayonet/co2, + /obj/item/attachable/reddot, + /obj/item/attachable/reflex, + /obj/item/attachable/verticalgrip, + /obj/item/attachable/angledgrip, + /obj/item/attachable/gyro, + /obj/item/attachable/flashlight/grip, + /obj/item/attachable/flashlight, + /obj/item/attachable/magnetic_harness, + /obj/item/attachable/stock/xm51, + ) + flags_equip_slot = SLOT_BACK + flags_gun_features = GUN_AUTO_EJECTOR|GUN_CAN_POINTBLANK|GUN_AMMO_COUNTER + gun_category = GUN_CATEGORY_SHOTGUN + aim_slowdown = SLOWDOWN_ADS_SHOTGUN + map_specific_decoration = TRUE + + var/pump_delay //How long we have to wait before we can pump the shotgun again. + var/pump_sound = "shotgunpump" + var/message_delay = 1 SECONDS //To stop message spam when trying to pump the gun constantly. + var/burst_count = 0 //To detect when the burst fire is near its end. + COOLDOWN_DECLARE(allow_message) + COOLDOWN_DECLARE(allow_pump) + +/obj/item/weapon/gun/rifle/xm51/set_gun_attachment_offsets() + attachable_offset = list("muzzle_x" = 34, "muzzle_y" = 18, "rail_x" = 12, "rail_y" = 20, "under_x" = 24, "under_y" = 13, "stock_x" = 15, "stock_y" = 16) + +/obj/item/weapon/gun/rifle/xm51/set_gun_config_values() + ..() + set_fire_delay(FIRE_DELAY_TIER_4*2) + set_burst_amount(0) + burst_scatter_mult = SCATTER_AMOUNT_TIER_7 + accuracy_mult = BASE_ACCURACY_MULT + 2*HIT_ACCURACY_MULT_TIER_8 + accuracy_mult_unwielded = BASE_ACCURACY_MULT - HIT_ACCURACY_MULT_TIER_8 + recoil = RECOIL_AMOUNT_TIER_4 + recoil_unwielded = RECOIL_AMOUNT_TIER_2 + scatter = SCATTER_AMOUNT_TIER_6 + +/obj/item/weapon/gun/rifle/xm51/Initialize(mapload, spawn_empty) + . = ..() + pump_delay = FIRE_DELAY_TIER_8*3 + additional_fire_group_delay += pump_delay + +/obj/item/weapon/gun/rifle/xm51/set_bullet_traits() + LAZYADD(traits_to_give, list( + BULLET_TRAIT_ENTRY_ID("turfs", /datum/element/bullet_trait_damage_boost, 30, GLOB.damage_boost_turfs), //2550, 2 taps colony walls, 4 taps reinforced walls + BULLET_TRAIT_ENTRY_ID("xeno turfs", /datum/element/bullet_trait_damage_boost, 0.23, GLOB.damage_boost_turfs_xeno), //2550*0.23 = 586, 2 taps resin walls, 3 taps thick resin + BULLET_TRAIT_ENTRY_ID("breaching", /datum/element/bullet_trait_damage_boost, 15, GLOB.damage_boost_breaching), //1275, enough to 1 tap airlocks + BULLET_TRAIT_ENTRY_ID("pylons", /datum/element/bullet_trait_damage_boost, 6, GLOB.damage_boost_pylons) //510, 4 shots to take out a pylon + )) + +/obj/item/weapon/gun/rifle/xm51/unique_action(mob/user) + if(!COOLDOWN_FINISHED(src, allow_pump)) + return + if(in_chamber) + if(COOLDOWN_FINISHED(src, allow_message)) + to_chat(usr, SPAN_WARNING("[src] already has a shell in the chamber!")) + COOLDOWN_START(src, allow_message, message_delay) + return + + playsound(user, pump_sound, 10, 1) + COOLDOWN_START(src, allow_pump, pump_delay) + ready_in_chamber() + burst_count = 0 //Reset the count for burst mode. + +/obj/item/weapon/gun/rifle/xm51/load_into_chamber(mob/user) + return in_chamber + +/obj/item/weapon/gun/rifle/xm51/reload_into_chamber(mob/user) //Don't chamber bullets after firing. + if(!current_mag) + update_icon() + return + + in_chamber = null + if(current_mag.current_rounds <= 0 && flags_gun_features & GUN_AUTO_EJECTOR) + if (user.client?.prefs && (user.client?.prefs?.toggle_prefs & TOGGLE_AUTO_EJECT_MAGAZINE_OFF)) + update_icon() + else if (!(flags_gun_features & GUN_BURST_FIRING) || !in_chamber) // Magazine will only unload once burstfire is over + var/drop_to_ground = TRUE + if (user.client?.prefs && (user.client?.prefs?.toggle_prefs & TOGGLE_AUTO_EJECT_MAGAZINE_TO_HAND)) + drop_to_ground = FALSE + unwield(user) + user.swap_hand() + unload(user, TRUE, drop_to_ground) // We want to quickly autoeject the magazine. This proc does the rest based on magazine type. User can be passed as null. + playsound(src, empty_sound, 25, 1) + if(gun_firemode == GUN_FIREMODE_BURSTFIRE & burst_count < burst_amount - 1) //Fire two (or more) shots in a burst without having to pump. + ready_in_chamber() + burst_count++ + return in_chamber + +/obj/item/weapon/gun/rifle/xm51/replace_magazine(mob/user, obj/item/ammo_magazine/magazine) //Don't chamber a round when reloading. + user.drop_inv_item_to_loc(magazine, src) //Click! + current_mag = magazine + replace_ammo(user,magazine) + user.visible_message(SPAN_NOTICE("[user] loads [magazine] into [src]!"), + SPAN_NOTICE("You load [magazine] into [src]!"), null, 3, CHAT_TYPE_COMBAT_ACTION) + if(reload_sound) + playsound(user, reload_sound, 25, 1, 5) + +/obj/item/weapon/gun/rifle/xm51/cock_gun(mob/user) + return + +/obj/item/weapon/gun/rifle/xm51/cock(mob/user) //Stops the "You cock the gun." message where nothing happens. + return diff --git a/code/modules/projectiles/guns/shotguns.dm b/code/modules/projectiles/guns/shotguns.dm index c3b4906c1b29..b1b3bb3c2ab4 100644 --- a/code/modules/projectiles/guns/shotguns.dm +++ b/code/modules/projectiles/guns/shotguns.dm @@ -274,7 +274,7 @@ can cause issues with ammo types getting mixed up during the burst. update_attachable(ugl.slot) stock.hidden = FALSE stock.Attach(src) - update_attachable(stock.slot) + update_attachable(stock.slot) /obj/item/weapon/gun/shotgun/combat/set_gun_attachment_offsets() attachable_offset = list("muzzle_x" = 33, "muzzle_y" = 19,"rail_x" = 10, "rail_y" = 21, "under_x" = 14, "under_y" = 16, "stock_x" = 11, "stock_y" = 13.) @@ -1019,8 +1019,8 @@ can cause issues with ammo types getting mixed up during the burst. if(!T) //Off edge of map. throw_turfs.Remove(T) continue - var/list/turf/path = getline2(get_step_towards(src, T), T) //Same path throw code will calculate from. - if(!path.len) + var/list/turf/path = get_line(get_step_towards(src, T), T) //Same path throw code will calculate from. + if(!length(path)) throw_turfs.Remove(T) continue var/prev_turf = start_turf diff --git a/code/modules/projectiles/guns/smartgun.dm b/code/modules/projectiles/guns/smartgun.dm index 8ac629310132..e5c9fff3a126 100644 --- a/code/modules/projectiles/guns/smartgun.dm +++ b/code/modules/projectiles/guns/smartgun.dm @@ -316,14 +316,15 @@ return FALSE var/mob/living/carbon/human/H = user if(!skillcheckexplicit(user, SKILL_SPEC_WEAPONS, SKILL_SPEC_SMARTGUN) && !skillcheckexplicit(user, SKILL_SPEC_WEAPONS, SKILL_SPEC_ALL)) - to_chat(H, SPAN_WARNING("You don't seem to know how to use \the [src]...")) + balloon_alert(user, "insufficient skills") return FALSE if(requires_harness) if(!H.wear_suit || !(H.wear_suit.flags_inventory & SMARTGUN_HARNESS)) - to_chat(H, SPAN_WARNING("You need a harness suit to be able to fire [src]...")) + balloon_alert(user, "harness required") return FALSE if(cover_open) to_chat(H, SPAN_WARNING("You can't fire \the [src] with the feed cover open! (alt-click to close)")) + balloon_alert(user, "cannot fire; feed cover open") return FALSE /obj/item/weapon/gun/smartgun/unique_action(mob/user) @@ -337,6 +338,7 @@ return secondary_toggled = !secondary_toggled to_chat(user, "[icon2html(src, usr)] You changed \the [src]'s ammo preparation procedures. You now fire [secondary_toggled ? "armor shredding rounds" : "highly precise rounds"].") + balloon_alert(user, "firing [secondary_toggled ? "armor shredding" : "highly precise"]") playsound(loc,'sound/machines/click.ogg', 25, 1) ammo = secondary_toggled ? ammo_secondary : ammo_primary var/datum/action/item_action/smartgun/toggle_ammo_type/TAT = locate(/datum/action/item_action/smartgun/toggle_ammo_type) in actions @@ -387,7 +389,7 @@ return FALSE return TRUE if(!battery || battery.power_cell.charge == 0) - to_chat(usr, SPAN_WARNING("[src] emits a low power warning and immediately shuts down!")) + balloon_alert(usr, "low power") return FALSE return FALSE @@ -497,9 +499,9 @@ if((angledegree*2) > angle_list[angle]) continue - path = getline2(user, M) + path = get_line(user, M) - if(path.len) + if(length(path)) var/blocked = FALSE for(T in path) if(T.density || T.opacity) @@ -522,9 +524,9 @@ else conscious_targets += M - if(conscious_targets.len) + if(length(conscious_targets)) . = pick(conscious_targets) - else if(unconscious_targets.len) + else if(length(unconscious_targets)) . = pick(unconscious_targets) /obj/item/weapon/gun/smartgun/proc/process_shot(mob/living/user, warned) diff --git a/code/modules/projectiles/guns/smgs.dm b/code/modules/projectiles/guns/smgs.dm index 24eddf31597d..69fd5d968750 100644 --- a/code/modules/projectiles/guns/smgs.dm +++ b/code/modules/projectiles/guns/smgs.dm @@ -11,7 +11,7 @@ aim_slowdown = SLOWDOWN_ADS_QUICK wield_delay = WIELD_DELAY_VERY_FAST attachable_allowed = list( - /obj/item/attachable/suppressor, + /obj/item/attachable/suppressor, /obj/item/attachable/reddot, /obj/item/attachable/reflex, /obj/item/attachable/flashlight, @@ -50,7 +50,7 @@ /obj/item/attachable/suppressor, /obj/item/attachable/reddot, /obj/item/attachable/reflex, - /obj/item/attachable/angledgrip, + /obj/item/attachable/angledgrip, /obj/item/attachable/verticalgrip, /obj/item/attachable/flashlight/grip, /obj/item/attachable/stock/smg, @@ -84,7 +84,7 @@ accuracy_mult = BASE_ACCURACY_MULT accuracy_mult_unwielded = BASE_ACCURACY_MULT - HIT_ACCURACY_MULT_TIER_5 scatter = SCATTER_AMOUNT_TIER_4 - burst_scatter_mult = SCATTER_AMOUNT_TIER_4 + burst_scatter_mult = SCATTER_AMOUNT_TIER_7 scatter_unwielded = SCATTER_AMOUNT_TIER_4 damage_mult = BASE_BULLET_DAMAGE_MULT recoil_unwielded = RECOIL_AMOUNT_TIER_5 @@ -302,7 +302,7 @@ /obj/item/weapon/gun/smg/ppsh/unique_action(mob/user) if(jammed) if(prob(PPSH_UNJAM_CHANCE)) - to_chat(user, SPAN_GREEN("You succesfully unjam \the [src]!")) + to_chat(user, SPAN_GREEN("You successfully unjam \the [src]!")) playsound(src, 'sound/weapons/handling/gun_jam_rack_success.ogg', 50, FALSE) jammed = FALSE cock_cooldown += 1 SECONDS //so they dont accidentally cock a bullet away @@ -538,7 +538,7 @@ /obj/item/weapon/gun/smg/uzi/unique_action(mob/user) if(jammed) if(prob(UZI_UNJAM_CHANCE)) - to_chat(user, SPAN_GREEN("You succesfully unjam \the [src]!")) + to_chat(user, SPAN_GREEN("You successfully unjam \the [src]!")) playsound(src, 'sound/weapons/handling/gun_jam_rack_success.ogg', 35, TRUE) jammed = FALSE cock_cooldown += 1 SECONDS //so they dont accidentally cock a bullet away @@ -609,7 +609,7 @@ /obj/item/weapon/gun/smg/fp9000/pmc name = "\improper FN FP9000/2 Submachinegun" - desc = "Despite the rather ancient design, the FN FP9K sees frequent use in PMC teams due to its extreme reliability and versatility, allowing it to excel in any situation, especially due to the fact that they use the patented, official version of the gun, which has recieved several upgrades and tuning to its design over time." + desc = "Despite the rather ancient design, the FN FP9K sees frequent use in PMC teams due to its extreme reliability and versatility, allowing it to excel in any situation, especially due to the fact that they use the patented, official version of the gun, which has received several upgrades and tuning to its design over time." icon_state = "fp9000_pmc" item_state = "fp9000_pmc" random_spawn_chance = 100 diff --git a/code/modules/projectiles/guns/specialist/launcher/grenade_launcher.dm b/code/modules/projectiles/guns/specialist/launcher/grenade_launcher.dm index 0f767d679d03..e2643c580a16 100644 --- a/code/modules/projectiles/guns/specialist/launcher/grenade_launcher.dm +++ b/code/modules/projectiles/guns/specialist/launcher/grenade_launcher.dm @@ -175,7 +175,7 @@ SPAN_WARNING("[to_firer]"), message_flags = CHAT_TYPE_WEAPON_USE) playsound(user.loc, fire_sound, 50, 1) - var/angle = round(Get_Angle(user,target)) + var/angle = floor(Get_Angle(user,target)) muzzle_flash(angle,user) simulate_recoil(0, user) @@ -317,7 +317,7 @@ /obj/item/weapon/gun/launcher/grenade/m81/riot name = "\improper M81 riot grenade launcher" desc = "A lightweight, single-shot low-angle grenade launcher to launch tear gas grenades. Used by the Colonial Marines Military Police during riots." - valid_munitions = list(/obj/item/explosive/grenade/custom/teargas) + valid_munitions = list(/obj/item/explosive/grenade/custom/teargas, /obj/item/explosive/grenade/slug/baton) preload = /obj/item/explosive/grenade/custom/teargas //------------------------------------------------------- diff --git a/code/modules/projectiles/guns/specialist/launcher/launcher.dm b/code/modules/projectiles/guns/specialist/launcher/launcher.dm index 70f00aa83c35..d0731b2d43bc 100644 --- a/code/modules/projectiles/guns/specialist/launcher/launcher.dm +++ b/code/modules/projectiles/guns/specialist/launcher/launcher.dm @@ -38,6 +38,10 @@ new preload(cylinder) update_icon() +/obj/item/weapon/gun/launcher/Destroy(force) + QDEL_NULL(cylinder) + return ..() + /obj/item/weapon/gun/launcher/verb/toggle_draw_mode() set name = "Switch Storage Drawing Method" set category = "Object" diff --git a/code/modules/projectiles/guns/specialist/launcher/rocket_launcher.dm b/code/modules/projectiles/guns/specialist/launcher/rocket_launcher.dm index 356d0e6c3b48..1f0ae4aed571 100644 --- a/code/modules/projectiles/guns/specialist/launcher/rocket_launcher.dm +++ b/code/modules/projectiles/guns/specialist/launcher/rocket_launcher.dm @@ -189,12 +189,18 @@ smoke.set_up(1, 0, backblast_loc, turn(user.dir, 180)) smoke.start() playsound(src, 'sound/weapons/gun_rocketlauncher.ogg', 100, TRUE, 10) - for(var/mob/living/carbon/C in backblast_loc) - if(C.body_position == STANDING_UP && !HAS_TRAIT(C, TRAIT_EAR_PROTECTION)) //Have to be standing up to get the fun stuff - C.apply_damage(15, BRUTE) //The shockwave hurts, quite a bit. It can knock unarmored targets unconscious in real life - C.apply_effect(4, STUN) //For good measure - C.apply_effect(6, STUTTER) - C.emote("pain") + for(var/mob/living/carbon/mob in backblast_loc) + if(mob.body_position != STANDING_UP || HAS_TRAIT(mob, TRAIT_EAR_PROTECTION)) //Have to be standing up to get the fun stuff + continue + to_chat(mob, SPAN_BOLDWARNING("You got hit by the backblast!")) + mob.apply_damage(15, BRUTE) //The shockwave hurts, quite a bit. It can knock unarmored targets unconscious in real life + var/knockdown_amount = 6 + if(isxeno(mob)) + var/mob/living/carbon/xenomorph/xeno = mob + knockdown_amount = knockdown_amount * (1 - xeno.caste?.xeno_explosion_resistance / 100) + mob.KnockDown(knockdown_amount) + mob.apply_effect(6, STUTTER) + mob.emote("pain") //------------------------------------------------------- //M5 RPG'S MEAN FUCKING COUSIN diff --git a/code/modules/projectiles/guns/specialist/scout.dm b/code/modules/projectiles/guns/specialist/scout.dm index c2c5abd54add..8443e59580cc 100644 --- a/code/modules/projectiles/guns/specialist/scout.dm +++ b/code/modules/projectiles/guns/specialist/scout.dm @@ -81,3 +81,6 @@ if(!skillcheck(user, SKILL_SPEC_WEAPONS, SKILL_SPEC_ALL) && user.skills.get_skill_level(SKILL_SPEC_WEAPONS) != SKILL_SPEC_SCOUT) to_chat(user, SPAN_WARNING("You don't seem to know how to use \the [src]...")) return FALSE + +/obj/item/weapon/gun/rifle/m4ra_custom/tactical + starting_attachment_types = list(/obj/item/attachable/magnetic_harness, /obj/item/attachable/bayonet, /obj/item/attachable/angledgrip) diff --git a/code/modules/projectiles/guns/specialist/sniper.dm b/code/modules/projectiles/guns/specialist/sniper.dm index 0cd9d8dd16c8..b40477a8a460 100644 --- a/code/modules/projectiles/guns/specialist/sniper.dm +++ b/code/modules/projectiles/guns/specialist/sniper.dm @@ -19,11 +19,17 @@ var/sniper_beam_icon = "laser_beam" var/skill_locked = TRUE + /// Variables for Focus Fire and alternate icons for lockon and laser. + var/enable_aimed_shot_icon_alt = FALSE + var/sniper_lockon_icon_max = "sniper_lockon_intense" + var/sniper_beam_icon_max = "laser_beam_intense" + + /obj/item/weapon/gun/rifle/sniper/get_examine_text(mob/user) . = ..() if(!has_aimed_shot) return - . += SPAN_NOTICE("This weapon has an unique ability, Aimed Shot, allowing it to deal great damage after a windup.
            Additionally, the aimed shot can be sped up with a tracking laser, which is enabled by default but may be disabled.") + . += SPAN_NOTICE("This weapon has a special ability, Aimed Shot, allowing it to deal increased damage and inflict additional crippling effects after a windup, depending on the ammunition used.
            Additionally, the aimed shot can be sped up with a spotter or by using the tracking laser, which is enabled by default but may be disabled.") /obj/item/weapon/gun/rifle/sniper/Initialize(mapload, spawn_empty) if(has_aimed_shot) @@ -98,7 +104,7 @@ human.face_atom(target) ///Add a decisecond to the default 1.5 seconds for each two tiles to hit. - var/distance = round(get_dist(target, human) * 0.5) + var/distance = floor(get_dist(target, human) * 0.5) var/f_aiming_time = sniper_rifle.aiming_time + distance var/aim_multiplier = 1 @@ -117,7 +123,24 @@ f_aiming_time *= aim_multiplier - var/image/lockon_icon = image(icon = 'icons/effects/Targeted.dmi', icon_state = sniper_rifle.sniper_lockon_icon) + var/beam + var/lockon + + if(istype(sniper_rifle, /obj/item/weapon/gun/rifle/sniper/XM43E1)) + var/obj/item/weapon/gun/rifle/sniper/XM43E1/amr = sniper_rifle + if((amr.focused_fire_counter >= 1 && amr.focused_fire_counter < 3) && (target == amr.focused_fire_target?.resolve())) + sniper_rifle.enable_aimed_shot_icon_alt = TRUE + else + sniper_rifle.enable_aimed_shot_icon_alt = FALSE + + if(sniper_rifle.enable_aimed_shot_icon_alt) + beam = sniper_rifle.sniper_beam_icon_max + lockon = sniper_rifle.sniper_lockon_icon_max + else + beam = sniper_rifle.sniper_beam_icon + lockon = sniper_rifle.sniper_lockon_icon + + var/image/lockon_icon = image(icon = 'icons/effects/Targeted.dmi', icon_state = lockon) var/x_offset = -target.pixel_x + target.base_pixel_x var/y_offset = (target.icon_size - world.icon_size) * 0.5 - target.pixel_y + target.base_pixel_y @@ -128,7 +151,7 @@ var/image/lockon_direction_icon if(!sniper_rifle.enable_aimed_shot_laser) - lockon_direction_icon = image(icon = 'icons/effects/Targeted.dmi', icon_state = "[sniper_rifle.sniper_lockon_icon]_direction", dir = get_cardinal_dir(target, human)) + lockon_direction_icon = image(icon = 'icons/effects/Targeted.dmi', icon_state = "[lockon]_direction", dir = get_cardinal_dir(target, human)) lockon_direction_icon.pixel_x = x_offset lockon_direction_icon.pixel_y = y_offset target.overlays += lockon_direction_icon @@ -138,7 +161,7 @@ var/datum/beam/laser_beam if(sniper_rifle.enable_aimed_shot_laser) - laser_beam = target.beam(human, sniper_rifle.sniper_beam_icon, 'icons/effects/beam.dmi', (f_aiming_time + 1 SECONDS), beam_type = sniper_rifle.sniper_beam_type) + laser_beam = target.beam(human, beam, 'icons/effects/beam.dmi', (f_aiming_time + 1 SECONDS), beam_type = sniper_rifle.sniper_beam_type) laser_beam.visuals.alpha = 0 animate(laser_beam.visuals, alpha = initial(laser_beam.visuals.alpha), f_aiming_time, easing = SINE_EASING|EASE_OUT) @@ -198,18 +221,18 @@ return TRUE /datum/action/item_action/specialist/aimed_shot/proc/check_shot_is_blocked(mob/firer, mob/target, obj/projectile/P) - var/list/turf/path = getline2(firer, target, include_from_atom = FALSE) - if(!path.len || get_dist(firer, target) > P.ammo.max_range) + var/list/turf/path = get_line(firer, target, include_start_atom = FALSE) + if(!length(path) || get_dist(firer, target) > P.ammo.max_range) return TRUE var/blocked = FALSE for(var/turf/T in path) - if(T.density || T.opacity) + if(T.density && T.opacity) blocked = TRUE break for(var/obj/O in T) - if(O.get_projectile_hit_boolean(P)) + if(O.get_projectile_hit_boolean(P) && O.opacity) blocked = TRUE break @@ -330,7 +353,7 @@ /obj/item/weapon/gun/rifle/sniper/M42A/set_gun_config_values() ..() - set_fire_delay(FIRE_DELAY_TIER_7*3) + set_fire_delay(FIRE_DELAY_TIER_SNIPER) set_burst_amount(BURST_AMOUNT_TIER_1) accuracy_mult = BASE_ACCURACY_MULT * 3 //you HAVE to be able to hit scatter = SCATTER_AMOUNT_TIER_8 @@ -339,12 +362,16 @@ /obj/item/weapon/gun/rifle/sniper/XM43E1 name = "\improper XM43E1 experimental anti-materiel rifle" - desc = "An experimental anti-materiel rifle produced by Armat Systems, recently reacquired from the deep storage of an abandoned prototyping facility. This one in particular is currently undergoing field testing. Chambered in 10x99mm Caseless." + desc = "An experimental anti-materiel rifle produced by Armat Systems, recently reacquired from the deep storage of an abandoned prototyping facility. This one in particular is currently undergoing field testing. Chambered in 10x99mm Caseless.\n\nThis weapon can punch through thin metal plating and walls, though it'll lose most of its lethality in the process. It can even work for demolitions, with experienced users known to disassemble segments of solid, reinforced walls in the field with just a single standard magazine of 10x99mm. In lieu of explosives or an engineer, they instead use each of the 8 shots to break down vital structural supports, taking the wall apart in the process." icon = 'icons/obj/items/weapons/guns/guns_by_faction/uscm.dmi' icon_state = "xm43e1" item_state = "xm43e1" unacidable = TRUE indestructible = 1 + aiming_time = 2 SECONDS + aimed_shot_cooldown_delay = 4.5 SECONDS + var/focused_fire_counter = 0 + var/datum/weakref/focused_fire_target = null fire_sound = 'sound/weapons/sniper_heavy.ogg' current_mag = /obj/item/ammo_magazine/sniper/anti_materiel //Renamed from anti-tank to align with new identity/description. Other references have been changed as well. -Kaga @@ -354,9 +381,9 @@ attachable_allowed = list(/obj/item/attachable/bipod) flags_gun_features = GUN_AUTO_EJECTOR|GUN_SPECIALIST|GUN_WIELDED_FIRING_ONLY|GUN_AMMO_COUNTER starting_attachment_types = list(/obj/item/attachable/pmc_sniperbarrel) - sniper_beam_type = /obj/effect/ebeam/laser/intense - sniper_beam_icon = "laser_beam_intense" - sniper_lockon_icon = "sniper_lockon_intense" + sniper_beam_type = /obj/effect/ebeam/laser + sniper_beam_icon = "laser_beam" + sniper_lockon_icon = "sniper_lockon" /obj/item/weapon/gun/rifle/sniper/XM43E1/handle_starting_attachment() ..() @@ -374,8 +401,9 @@ /obj/item/weapon/gun/rifle/sniper/XM43E1/set_gun_config_values() ..() - set_fire_delay(FIRE_DELAY_TIER_6 * 6 )//Big boy damage, but it takes a lot of time to fire a shot. - //Kaga: Adjusted from 56 (Tier 4, 7*8) -> 30 (Tier 6, 5*6) ticks. 95 really wasn't big-boy damage anymore, although I updated it to 125 to remain consistent with the other 10x99mm caliber weapon (M42C). Now takes only twice as long as the M42A. + set_fire_delay(FIRE_DELAY_TIER_AMR)//Big boy damage, but it takes a lot of time to fire a shot. + //Kaga: Fixed back to half the M42A's firerate (3 seconds), using a new define. + //This outright deals less DPS than the normal sniper rifle, 125 vs 140 per 3s. set_burst_amount(BURST_AMOUNT_TIER_1) accuracy_mult = BASE_ACCURACY_MULT + 2*HIT_ACCURACY_MULT_TIER_10 //Who coded this like this, and why? It just calculates out to 1+1=2. Leaving a note here to check back later. scatter = SCATTER_AMOUNT_TIER_10 @@ -385,10 +413,11 @@ /obj/item/weapon/gun/rifle/sniper/XM43E1/set_bullet_traits() LAZYADD(traits_to_give, list( BULLET_TRAIT_ENTRY(/datum/element/bullet_trait_iff), - BULLET_TRAIT_ENTRY(/datum/element/bullet_trait_penetrating), BULLET_TRAIT_ENTRY_ID("turfs", /datum/element/bullet_trait_damage_boost, 11, GLOB.damage_boost_turfs), BULLET_TRAIT_ENTRY_ID("breaching", /datum/element/bullet_trait_damage_boost, 11, GLOB.damage_boost_breaching), - //At 1375 per shot it'll take 1 shot to break resin turfs, and a full mag of 8 to break reinforced walls. + //At 1375 per shot it'll take 1 shot to break resin turfs usually (thick resin at 1350, RNG may vary), and a full mag of 8 to break reinforced walls. + //However, the second wall it hits will only take 550 damage, unable to even kill a full-health normal resin wall (900). + //Much more effective at breaking resin doors and membranes, which have less HP and slow down the projectile less. BULLET_TRAIT_ENTRY_ID("pylons", /datum/element/bullet_trait_damage_boost, 6, GLOB.damage_boost_pylons) //At 750 per shot it'll take 3 to break a Pylon (1800 HP). No Damage Boost vs other xeno structures yet, those will require a whole new list w/ the damage_boost trait. )) @@ -453,7 +482,8 @@ if(PMC_sniper.body_position == STANDING_UP && !istype(PMC_sniper.wear_suit,/obj/item/clothing/suit/storage/marine/smartgunner/veteran/pmc) && !istype(PMC_sniper.wear_suit,/obj/item/clothing/suit/storage/marine/veteran)) PMC_sniper.visible_message(SPAN_WARNING("[PMC_sniper] is blown backwards from the recoil of the [src.name]!"),SPAN_HIGHDANGER("You are knocked prone by the blowback!")) step(PMC_sniper,turn(PMC_sniper.dir,180)) - PMC_sniper.apply_effect(5, WEAKEN) + PMC_sniper.KnockDown(5) + PMC_sniper.Stun(5) //Type 88 //Based on the actual Dragunov DMR rifle. diff --git a/code/modules/projectiles/item_to_box_mapping.dm b/code/modules/projectiles/item_to_box_mapping.dm index 45277d194b38..5111ffc0033b 100644 --- a/code/modules/projectiles/item_to_box_mapping.dm +++ b/code/modules/projectiles/item_to_box_mapping.dm @@ -29,20 +29,21 @@ /datum/item_to_box_mapping/New() //Ammo magazine boxes, minus loose ammo boxes - for(var/obj/item/ammo_box/magazine/ammo_box as anything in typesof(/obj/item/ammo_box/magazine) - /obj/item/ammo_box/magazine/misc) + for(var/obj/item/ammo_box/magazine/ammo_box as anything in typesof(/obj/item/ammo_box/magazine) - /obj/item/ammo_box/magazine/misc - /obj/item/ammo_box/magazine/shotgun/light) if(initial(ammo_box.empty)) //Ignore all the empty boxes continue - if(initial(ammo_box.handfuls)) - //Ignore all the loose ammo boxes because they map with really bad numbers - continue var/datum/item_box_pairing/item_box_pairing = new() item_box_pairing.box = ammo_box item_box_pairing.item = initial(ammo_box.magazine_type) if(!item_box_pairing.item) //if the item is null somehow continue - item_box_pairing.items_in_box = initial(ammo_box.num_of_magazines) + if(initial(ammo_box.handfuls)) + //If we are using handfuls we need to do some wonky conversion + item_box_pairing.items_in_box = initial(ammo_box.num_of_magazines) / initial(ammo_box.magazine_type.max_rounds) + else + item_box_pairing.items_in_box = initial(ammo_box.num_of_magazines) add_pairing(item_box_pairing) //Grenade packets diff --git a/code/modules/projectiles/magazines/flamer.dm b/code/modules/projectiles/magazines/flamer.dm index 787a0585640a..2bdc0546c2c9 100644 --- a/code/modules/projectiles/magazines/flamer.dm +++ b/code/modules/projectiles/magazines/flamer.dm @@ -13,6 +13,7 @@ w_class = SIZE_MEDIUM //making sure you can't sneak this onto your belt. gun_type = /obj/item/weapon/gun/flamer caliber = "UT-Napthal Fuel" //Ultra Thick Napthal Fuel, from the lore book. + var/custom = FALSE //accepts custom fuels if true var/flamer_chem = "utnapthal" flags_magazine = AMMUNITION_HIDE_AMMO @@ -77,7 +78,7 @@ if(!istype(target, /obj/structure/reagent_dispensers/fueltank) && !istype(target, /obj/item/tool/weldpack) && !istype(target, /obj/item/storage/backpack/marine/engineerpack)) return ..() - if(!target.reagents || target.reagents.reagent_list.len < 1) + if(!target.reagents || length(target.reagents.reagent_list) < 1) to_chat(user, SPAN_WARNING("[target] is empty!")) return @@ -90,11 +91,15 @@ to_chat(user, SPAN_WARNING("You can't mix fuel mixtures!")) return - if(!to_add.intensityfire) + if(istype(to_add, /datum/reagent/generated) && !custom) + to_chat(user, SPAN_WARNING("[src] cannot accept custom fuels!")) + return + + if(!to_add.intensityfire && to_add.id != "stablefoam" && !istype(src, /obj/item/ammo_magazine/flamer_tank/smoke)) to_chat(user, SPAN_WARNING("This chemical is not potent enough to be used in a flamethrower!")) return - var/fuel_amt_to_remove = Clamp(to_add.volume, 0, max_rounds - reagents.get_reagent_amount(to_add.id)) + var/fuel_amt_to_remove = clamp(to_add.volume, 0, max_rounds - reagents.get_reagent_amount(to_add.id)) if(!fuel_amt_to_remove) if(!max_rounds) to_chat(user, SPAN_WARNING("[target] is empty!")) @@ -128,7 +133,7 @@ /obj/item/ammo_magazine/flamer_tank/get_examine_text(mob/user) . = ..() . += SPAN_NOTICE("It contains:") - if(reagents && reagents.reagent_list.len) + if(reagents && length(reagents.reagent_list)) for(var/datum/reagent/R in reagents.reagent_list) . += SPAN_NOTICE(" [R.volume] units of [R.name].") else @@ -161,6 +166,7 @@ max_rounds = 100 max_range = 5 fuel_pressure = 1 + custom = TRUE /obj/item/ammo_magazine/flamer_tank/custom/verb/set_fuel_pressure() set name = "Change Fuel Pressure" @@ -171,7 +177,7 @@ if(usr.get_active_hand() != src) return - var/set_pressure = Clamp(tgui_input_number(usr, "Change fuel pressure to: (max: [max_pressure])", "Fuel pressure", fuel_pressure, 10, 1), 1 ,max_pressure) + var/set_pressure = clamp(tgui_input_number(usr, "Change fuel pressure to: (max: [max_pressure])", "Fuel pressure", fuel_pressure, 10, 1), 1 ,max_pressure) if(!set_pressure) to_chat(usr, SPAN_WARNING("You can't find that setting on the regulator!")) else @@ -236,3 +242,31 @@ max_intensity = 60 max_range = 8 max_duration = 50 + +/obj/item/ammo_magazine/flamer_tank/smoke + name = "custom incinerator smoke tank" + desc = "A tank holding powdered smoke that expands when exposed to an open flame and carries any chemicals along with it." + matter = list("metal" = 3750) + flamer_chem = null + custom = TRUE + +//tanks printable by the research biomass machine +/obj/item/ammo_magazine/flamer_tank/custom/upgraded + name = "upgraded custom incinerator tank" + desc = "A fuel tank used to store fuel for use in the M240 incinerator unit. This one has been modified with a larger and more sophisticated internal propellant tank, allowing for bigger capacity and stronger fuels." + matter = list("metal" = 50) // no free metal + flamer_chem = null + max_rounds = 200 + max_range = 7 + fuel_pressure = 1 + max_duration = 50 + max_intensity = 60 + custom = TRUE + +/obj/item/ammo_magazine/flamer_tank/smoke/upgraded + name = "large custom incinerator smoke tank" + desc = "A tank holding powdered smoke that expands when exposed to an open flame and carries any chemicals along with it. This one has been outfitted with an upgraded internal compressor, allowing for bigger capacity." + matter = list("metal" = 50) //no free metal + flamer_chem = null + custom = TRUE + max_rounds = 150 diff --git a/code/modules/projectiles/magazines/rifles.dm b/code/modules/projectiles/magazines/rifles.dm index 3d1b7088fa83..d12f390ccd95 100644 --- a/code/modules/projectiles/magazines/rifles.dm +++ b/code/modules/projectiles/magazines/rifles.dm @@ -457,6 +457,14 @@ max_rounds = 4 gun_type = /obj/item/weapon/gun/boltaction/vulture w_class = SIZE_MEDIUM // maybe small? This shit's >4 inches long mind you + ammo_band_icon = "+vulture_band" + ammo_band_icon_empty = "+vulture_band_e" + +/obj/item/ammo_magazine/rifle/boltaction/vulture/holo_target + name = "\improper M707 \"Vulture\" holo-target magazine (20x102mm)" + desc = "A magazine for the M707 \"Vulture\" anti-matieriel rifle. Contains up to 4 massively oversized IFF-CAPABLE holo-targeting rounds, which excel at marking heavy targets to be attacked by allied ground forces. The logistical requirements for such capabilities heavily hinder the performance and stopping power of this round." + default_ammo = /datum/ammo/bullet/sniper/anti_materiel/vulture/holo_target + ammo_band_color = AMMO_BAND_COLOR_HOLOTARGETING //=ROYAL MARINES=\\ @@ -499,3 +507,17 @@ item_state = "aug_dmr" default_ammo = /datum/ammo/bullet/rifle/heap ammo_band_color = AMMO_BAND_COLOR_HEAP + +//-------------------------------------------------------- +//XM51 BREACHING SHOTGUN + +/obj/item/ammo_magazine/rifle/xm51 + name = "\improper XM51 magazine (16g)" + desc = "A 16 gauge pump-action shotgun magazine." + icon_state = "xm51" + caliber = "16g" + w_class = SIZE_MEDIUM + default_ammo = /datum/ammo/bullet/shotgun/light/breaching + max_rounds = 12 + gun_type = /obj/item/weapon/gun/rifle/xm51 + transfer_handful_amount = 6 diff --git a/code/modules/projectiles/magazines/sentries.dm b/code/modules/projectiles/magazines/sentries.dm index 4e885278050b..c76688d97a4e 100644 --- a/code/modules/projectiles/magazines/sentries.dm +++ b/code/modules/projectiles/magazines/sentries.dm @@ -29,6 +29,30 @@ max_rounds = 50 default_ammo = /datum/ammo/bullet/shotgun/buckshot +/obj/item/ammo_magazine/sentry/wy + name = "H20 ammo drum (10x42mm Caseless)" + desc = "An ammo drum of 200 10x42mm caseless rounds for the WY 202-GMA1 Smart Sentry. Just feed it into the sentry gun's ammo port when its ammo is depleted." + icon = 'icons/obj/items/weapons/guns/ammo_by_faction/wy.dmi' + icon_state = "wy22e5" + caliber = "10x42mm" + max_rounds = 200 + +/obj/item/ammo_magazine/sentry/wy/mini + name = "H16 ammo drum (10x12mm Caseless)" + desc = "An ammo drum of 1000 10x12mm caseless rounds for the WY 14-GRA2 Mini Sentry. Just feed it into the sentry gun's ammo port when its ammo is depleted." + icon = 'icons/obj/items/weapons/guns/ammo_by_faction/wy.dmi' + icon_state = "wy22e5" + caliber = "10x12mm" + max_rounds = 1000 + +/obj/item/ammo_magazine/sentry/upp + name = "SR32 ammo drum (10x32mm Caseless)" + desc = "An ammo drum of 200 10x32mm caseless rounds for the UPP SDS-R3 Sentry Gun. Just feed it into the sentry gun's ammo port when its ammo is depleted." + icon = 'icons/obj/items/weapons/guns/ammo_by_faction/upp.dmi' + icon_state = "uppsds4" + caliber = "10x42mm" + max_rounds = 200 + // FLAMER Sentry /obj/item/ammo_magazine/sentry_flamer name = "sentry incinerator tank" @@ -51,3 +75,21 @@ name = "mini sentry incinerator tank" desc = "A fuel tank of Ultra Thick Napthal Fuel, used in the UA 45-FM." default_ammo = /datum/ammo/flamethrower/sentry_flamer/mini + +/obj/item/ammo_magazine/sentry_flamer/wy + name = "wy sentry incinerator tank" + desc = "A fuel tank of Ultra Thick Sticky Napthal Fuel, used in the WY 406-FE2." + icon = 'icons/obj/items/weapons/guns/ammo_by_faction/wy.dmi' + icon_state = "wy22e5" + caliber = "Sticky Napalm" + max_rounds = 200 + default_ammo = /datum/ammo/flamethrower/sentry_flamer/wy + +/obj/item/ammo_magazine/sentry_flamer/upp + name = "upp sentry incinerator tank" + desc = "A fuel tank of Ultra Thick Gel Napthal Fuel, used in the UPP SDS-R5 Sentry Flamer." + icon = 'icons/obj/items/weapons/guns/ammo_by_faction/upp.dmi' + icon_state = "uppsds4" + caliber = "Sticky Napalm" + max_rounds = 200 + default_ammo = /datum/ammo/flamethrower/sentry_flamer/upp diff --git a/code/modules/projectiles/magazines/shotguns.dm b/code/modules/projectiles/magazines/shotguns.dm index 6c103aaa9677..61070690e9ac 100644 --- a/code/modules/projectiles/magazines/shotguns.dm +++ b/code/modules/projectiles/magazines/shotguns.dm @@ -86,6 +86,18 @@ GLOBAL_LIST_INIT(shotgun_boxes_12g, list( default_ammo = /datum/ammo/bullet/shotgun/beanbag handful_state = "beanbag_slug" caliber = "20g" + +/obj/item/ammo_magazine/shotgun/light/breaching + name = "box of breaching shells" + desc = "A box filled with breaching shotgun shells. 16 Gauge." + icon_state = "breaching" + item_state = "breaching" + max_rounds = 30 //6 handfuls of 6 shells, 12 rounds in a XM51 mag + transfer_handful_amount = 6 + default_ammo = /datum/ammo/bullet/shotgun/light/breaching + handful_state = "breaching_shell" + caliber = "16g" + //------------------------------------------------------- /* @@ -238,7 +250,6 @@ GLOBAL_LIST_INIT(shotgun_handfuls_12g, list( name = "handful of beanbag slugs (20g)" caliber = "20g" - /obj/item/ammo_magazine/handful/shotgun/heavy name = "handful of heavy shotgun slugs (8g)" icon_state = "heavy_slug_4" @@ -277,6 +288,17 @@ GLOBAL_LIST_INIT(shotgun_handfuls_12g, list( handful_state = "heavy_beanbag" default_ammo = /datum/ammo/bullet/shotgun/heavy/beanbag +/obj/item/ammo_magazine/handful/shotgun/light/breaching + name = "handful of breaching shells (16g)" + icon_state = "breaching_shell_6" + handful_state = "breaching_shell" + max_rounds = 6 //XM51 magazines are 12 rounds total, two handfuls should be enough to reload a mag + current_rounds = 6 + transfer_handful_amount = 6 + default_ammo = /datum/ammo/bullet/shotgun/light/breaching + caliber = "16g" + gun_type = /obj/item/weapon/gun/rifle/xm51 + /obj/item/ammo_magazine/handful/shotgun/twobore name = "handful of shotgun slugs (2 bore)" icon_state = "twobore_3" diff --git a/code/modules/projectiles/magazines/specialist.dm b/code/modules/projectiles/magazines/specialist.dm index 761e77305254..547d231e1c69 100644 --- a/code/modules/projectiles/magazines/specialist.dm +++ b/code/modules/projectiles/magazines/specialist.dm @@ -30,7 +30,7 @@ //XM43E1 Magazine /obj/item/ammo_magazine/sniper/anti_materiel name = "\improper XM43E1 marksman magazine (10x99mm)" - desc = "A magazine of caseless 10x99mm anti-materiel rounds." + desc = "A magazine of caseless 10x99mm anti-materiel rounds, capable of penetrating through most infantry-level materiel. Depending on what you hit, it might even have enough energy to wound anything behind the target." max_rounds = 8 caliber = "10x99mm" default_ammo = /datum/ammo/bullet/sniper/anti_materiel @@ -254,10 +254,16 @@ user.put_in_hands(fuel) fuel = null update_icon() - desc = initial(desc) + "\n Contains[fuel?" fuel":""] [warhead?" and warhead":""]." return . = ..() +/obj/item/ammo_magazine/rocket/custom/get_examine_text(mob/user) + . = ..() + if(fuel) + . += SPAN_NOTICE("Contains fuel.") + if(warhead) + . += SPAN_NOTICE("Contains a warhead.") + /obj/item/ammo_magazine/rocket/custom/attackby(obj/item/W as obj, mob/user as mob) if(!skillcheck(user, SKILL_ENGINEER, SKILL_ENGINEER_ENGI)) to_chat(user, SPAN_WARNING("You do not know how to tinker with [name].")) @@ -284,7 +290,6 @@ W.forceMove(src) fuel = W to_chat(user, SPAN_DANGER("You add [W] to [name].")) - desc = initial(desc) + "\n Contains[fuel?" fuel":""] [warhead?" and warhead":""]." playsound(loc, 'sound/items/Screwdriver2.ogg', 25, 0, 6) else if(istype(W,/obj/item/explosive/warhead/rocket) && !locked) if(warhead) @@ -298,7 +303,6 @@ W.forceMove(src) warhead = W to_chat(user, SPAN_DANGER("You add [W] to [name].")) - desc = initial(desc) + "\n Contains[fuel?" fuel":""] [warhead?" and warhead":""]." playsound(loc, 'sound/items/Screwdriver2.ogg', 25, 0, 6) update_icon() diff --git a/code/modules/projectiles/projectile.dm b/code/modules/projectiles/projectile.dm index ef265e0b8095..0e335aa81da3 100644 --- a/code/modules/projectiles/projectile.dm +++ b/code/modules/projectiles/projectile.dm @@ -80,6 +80,16 @@ /// How much to make the bullet fall off by accuracy-wise when closer than the ideal range var/accuracy_range_falloff = 10 + /// Is this a lone (0), original (1), or bonus (2) projectile. Used in gun.dm and fire_bonus_projectiles() currently. + var/bonus_projectile_check = 0 + + /// What atom did this last receive a registered signal from? Used by damage_boost.dm + var/datum/weakref/last_atom_signaled = null + + /// Was this projectile affected by damage_boost.dm? If so, what was the last modifier? + var/damage_boosted = 0 + var/last_damage_mult = 1 + /obj/projectile/Initialize(mapload, datum/cause_data/cause_data) . = ..() path = list() @@ -96,7 +106,10 @@ starting = null permutated = null path = null + vis_source = null + process_start_turf = null weapon_cause_data = null + bullet_traits = null firer = null QDEL_NULL(bound_beam) SSprojectiles.stop_projectile(src) @@ -161,10 +174,16 @@ apply_bullet_trait(L) /obj/projectile/proc/calculate_damage() + + if(damage_boosted) + damage = damage / last_damage_mult + damage_boosted-- + last_damage_mult = 1 + if(effective_range_min && distance_travelled < effective_range_min) - return max(0, damage - round((effective_range_min - distance_travelled) * damage_buildup)) + return max(0, damage - floor((effective_range_min - distance_travelled) * damage_buildup)) else if(distance_travelled > effective_range_max) - return max(0, damage - round((distance_travelled - effective_range_max) * damage_falloff)) + return max(0, damage - floor((distance_travelled - effective_range_max) * damage_falloff)) return damage // Target, firer, shot from (i.e. the gun), projectile range, projectile speed, original target (who was aimed at, not where projectile is going towards) @@ -192,8 +211,8 @@ if(F && !(projectile_flags & PROJECTILE_SHRAPNEL)) permutated |= F //Don't hit the shooter (firer) - else if (S && (projectile_flags & PROJECTILE_SHRAPNEL)) - permutated |= S + if (S) + permutated |= get_atom_on_turf(S) //Don't hit the originating object permutated |= src //Don't try to hit self. shot_from = S @@ -212,17 +231,18 @@ //If we have the right kind of ammo, we can fire several projectiles at once. if(ammo.bonus_projectiles_amount && ammo.bonus_projectiles_type) ammo.fire_bonus_projectiles(src) + bonus_projectile_check = 1 //Mark this projectile as having spawned a set of bonus projectiles. - path = getline2(starting, target_turf) - p_x += Clamp((rand()-0.5)*scatter*3, -8, 8) - p_y += Clamp((rand()-0.5)*scatter*3, -8, 8) + path = get_line(starting, target_turf) + p_x += clamp((rand()-0.5)*scatter*3, -8, 8) + p_y += clamp((rand()-0.5)*scatter*3, -8, 8) update_angle(starting, target_turf) src.speed = speed // Randomize speed by a small factor to help bullet animations look okay // Otherwise you get a s t r e a m of warping bullets in same positions src.speed *= (1 + (rand()-0.5) * 0.30) // 15.0% variance either way - src.speed = Clamp(src.speed, 0.1, 100) // Safety to avoid loop hazards + src.speed = clamp(src.speed, 0.1, 100) // Safety to avoid loop hazards // Also give it some headstart, flying it now ahead of tick var/delta_time = world.tick_lag * rand() * 0.4 @@ -234,8 +254,8 @@ SSprojectiles.queue_projectile(src) /obj/projectile/proc/update_angle(turf/source_turf, turf/aim_turf) - p_x = Clamp(p_x, -16, 16) - p_y = Clamp(p_y, -16, 16) + p_x = clamp(p_x, -16, 16) + p_y = clamp(p_y, -16, 16) if(process_start_turf != vis_source) vis_travelled = 0 @@ -243,20 +263,9 @@ vis_source_pixel_x = process_start_pixel_x vis_source_pixel_y = process_start_pixel_y - angle = 0 // Stolen from Get_Angle() basically var/dx = p_x + aim_turf.x * 32 - source_turf.x * 32 // todo account for firer offsets var/dy = p_y + aim_turf.y * 32 - source_turf.y * 32 - if(!dy) - if(dx >= 0) - angle = 90 - else - angle = 280 - else - angle = arctan(dx/dy) - if(dy < 0) - angle += 180 - else if(dx < 0) - angle += 360 + angle = delta_to_angle(dx, dy) /obj/projectile/process(delta_time) . = PROC_RETURN_SLEEP @@ -282,9 +291,6 @@ return FALSE -//#define LERP(a, b, t) (a + (b - a) * CLAMP01(t)) -#define LERP_UNCLAMPED(a, b, t) (a + (b - a) * t) - /// Animates the projectile across the process'ed flight. /obj/projectile/proc/animate_flight(turf/start_turf, start_pixel_x, start_pixel_y, delta_time) //Get pixelspace coordinates of start and end of visual path @@ -292,25 +298,25 @@ var/pixel_x_source = vis_source.x * world.icon_size + vis_source_pixel_x var/pixel_y_source = vis_source.y * world.icon_size + vis_source_pixel_y - var/turf/vis_target = path[path.len] + var/turf/vis_target = path[length(path)] var/pixel_x_target = vis_target.x * world.icon_size + p_x var/pixel_y_target = vis_target.y * world.icon_size + p_y //Change the bullet angle to its visual path - var/vis_angle = get_pixel_angle(x = pixel_x_target - pixel_x_source, y = pixel_y_target - pixel_y_source) //naming vars because the proc takes y then x and that's WEIRD + var/vis_angle = delta_to_angle(pixel_x_target - pixel_x_source, pixel_y_target - pixel_y_source) var/matrix/rotate = matrix() rotate.Turn(vis_angle) apply_transform(rotate) //Determine apparent position along visual path, then lerp between start and end positions - var/vis_length = vis_travelled + path.len + var/vis_length = vis_travelled + length(path) var/vis_current = vis_travelled + speed * (time_carry * 0.1) //speed * (time_carry * 0.1) for remainder time movement, visually "catching up" to where it should be var/vis_interpolant = vis_current / vis_length - var/pixel_x_lerped = LERP_UNCLAMPED(pixel_x_source, pixel_x_target, vis_interpolant) - var/pixel_y_lerped = LERP_UNCLAMPED(pixel_y_source, pixel_y_target, vis_interpolant) + var/pixel_x_lerped = LERP(pixel_x_source, pixel_x_target, vis_interpolant) + var/pixel_y_lerped = LERP(pixel_y_source, pixel_y_target, vis_interpolant) //Convert pixelspace to pixel offset relative to current loc @@ -327,7 +333,7 @@ var/dist_current = distance_travelled + speed * (time_carry * 0.1) //speed * (time_carry * 0.1) for remainder time fade-in var/alpha_interpolant = dist_current - 1 //-1 so it transitions from transparent to opaque between dist 1-2 - var/alpha_new = LERP_UNCLAMPED(0, 255, alpha_interpolant) + var/alpha_new = LERP(0, 255, alpha_interpolant) //Animate the visuals from starting position to new position @@ -340,9 +346,6 @@ var/anim_time = delta_time * 0.1 animate(src, pixel_x = pixel_x_rel_new, pixel_y = pixel_y_rel_new, alpha = alpha_new, time = anim_time, flags = ANIMATION_END_NOW) -//#undef LERP -#undef LERP_UNCLAMPED - /// Flies the projectile forward one single turf /obj/projectile/proc/fly() SHOULD_NOT_SLEEP(TRUE) @@ -354,15 +357,14 @@ if((speed * world.tick_lag) >= get_dist(current_turf, target_turf)) SEND_SIGNAL(src, COMSIG_BULLET_TERMINAL) - // Check we can reach the turf at all based on pathed grid - var/proj_dir = get_dir(current_turf, next_turf) - if((proj_dir & (proj_dir - 1)) && !current_turf.Adjacent(next_turf)) - ammo.on_hit_turf(current_turf, src) - current_turf.bullet_act(src) - return TRUE - // Check for hits that would occur when moving to turf, such as a blocking cade - if(scan_a_turf(next_turf, proj_dir)) + var/list/ignore_list + var/obj/item/hardpoint/hardpoint = shot_from + if(istype(hardpoint)) + LAZYOR(ignore_list, hardpoint.owner) //if fired from a vehicle, exclude the vehicle's body from the adjacency check + + // Check we can reach the turf at all based on pathed grid + if(check_canhit(current_turf, next_turf, ignore_list)) return TRUE // Actually move @@ -376,7 +378,7 @@ return TRUE // Process on move effects - if(distance_travelled == round(ammo.max_range / 2)) + if(distance_travelled == floor(ammo.max_range / 2)) ammo.do_at_half_range(src) if(distance_travelled >= ammo.max_range) ammo.do_at_max_range(src) @@ -395,7 +397,7 @@ /obj/projectile/proc/retarget(atom/new_target, keep_angle = FALSE) var/turf/current_turf = get_turf(src) - path = getline2(current_turf, new_target) + path = get_line(current_turf, new_target) path.Cut(1, 2) // remove the turf we're already on var/atom/source = keep_angle ? original : current_turf update_angle(source, new_target) @@ -530,7 +532,8 @@ else direct_hit = TRUE - SEND_SIGNAL(firer, COMSIG_BULLET_DIRECT_HIT, L) + if(firer) + SEND_SIGNAL(firer, COMSIG_BULLET_DIRECT_HIT, L) // At present, Xenos have no inherent effects or localized damage stemming from limb targeting // Therefore we exempt the shooter from direct hit accuracy penalties as well, @@ -597,6 +600,19 @@ if(SEND_SIGNAL(src, COMSIG_BULLET_POST_HANDLE_MOB, L, .) & COMPONENT_BULLET_PASS_THROUGH) return FALSE +/obj/projectile/proc/check_canhit(turf/current_turf, turf/next_turf, list/ignore_list) + var/proj_dir = get_dir(current_turf, next_turf) + if((proj_dir & (proj_dir - 1)) && !current_turf.Adjacent(next_turf, ignore_list = ignore_list)) + ammo.on_hit_turf(current_turf, src) + current_turf.bullet_act(src) + return TRUE + + // Check for hits that would occur when moving to turf, such as a blocking cade + if(scan_a_turf(next_turf, proj_dir)) + return TRUE + + return FALSE + //---------------------------------------------------------- // \\ // HITTING THE TARGET \\ @@ -924,8 +940,8 @@ apply_effects(arglist(P.ammo.debilitate)) . = TRUE + bullet_message(P, damaging = damage) if(damage) - bullet_message(P) apply_damage(damage, P.ammo.damage_type, P.def_zone, 0, 0, P) P.play_hit_effect(src) @@ -1019,7 +1035,7 @@ . = TRUE apply_damage(damage_result, P.ammo.damage_type, P.def_zone, firer = P.firer) - if(P.ammo.shrapnel_chance > 0 && prob(P.ammo.shrapnel_chance + round(damage / 10))) + if(P.ammo.shrapnel_chance > 0 && prob(P.ammo.shrapnel_chance + floor(damage / 10))) if(ammo_flags & AMMO_SPECIAL_EMBED) P.ammo.on_embed(src, organ) @@ -1056,9 +1072,10 @@ if((ammo_flags & AMMO_FLAME) && (src.caste.fire_immunity & FIRE_IMMUNITY_NO_IGNITE|FIRE_IMMUNITY_NO_DAMAGE)) to_chat(src, SPAN_AVOIDHARM("You shrug off the glob of flame.")) + bullet_message(P, damaging = FALSE) return - if(isxeno(P.firer)) + if(isxeno(P.firer) && ammo_flags & (AMMO_ACIDIC|AMMO_XENO)) //Xenomorph shooting spit. Xenos with thumbs and guns can fully FF. var/mob/living/carbon/xenomorph/X = P.firer if(X.can_not_harm(src)) bullet_ping(P) @@ -1113,11 +1130,11 @@ handle_blood_splatter(get_dir(P.starting, loc)) apply_damage(damage_result,P.ammo.damage_type, P.def_zone) //Deal the damage. - if(xeno_shields.len) + if(length(xeno_shields)) P.play_shielded_hit_effect(src) else P.play_hit_effect(src) - if(!stat && prob(5 + round(damage_result / 4))) + if(!stat && prob(5 + floor(damage_result / 4))) var/pain_emote = prob(70) ? "hiss" : "roar" emote(pain_emote) updatehealth() @@ -1160,12 +1177,12 @@ switch(P.ammo.damage_type) if(BRUTE) //Rockets do extra damage to walls. if(ammo_flags & AMMO_ROCKET) - damage = round(damage * 10) + damage = floor(damage * 10) if(BURN) if(ammo_flags & AMMO_ENERGY) - damage = round(damage * 7) + damage = floor(damage * 7) else if(ammo_flags & AMMO_ANTISTRUCT) // Railgun does extra damage to turfs - damage = round(damage * ANTISTRUCT_DMG_MULT_WALL) + damage = floor(damage * ANTISTRUCT_DMG_MULT_WALL) if(ammo_flags & AMMO_BALLISTIC) current_bulletholes++ take_damage(damage, P.firer) @@ -1194,7 +1211,7 @@ /obj/structure/surface/table/bullet_act(obj/projectile/P) bullet_ping(P) - health -= round(P.damage/2) + health -= floor(P.damage/2) if(health < 0) visible_message(SPAN_WARNING("[src] breaks down!")) deconstruct() @@ -1216,8 +1233,8 @@ if(P.ammo.sound_bounce) playsound(src, P.ammo.sound_bounce, 50, 1) var/image/I = image('icons/obj/items/weapons/projectiles.dmi', src, P.ammo.ping, 10) - var/offset_x = Clamp(P.pixel_x + pixel_x_offset, -10, 10) - var/offset_y = Clamp(P.pixel_y + pixel_y_offset, -10, 10) + var/offset_x = clamp(P.pixel_x + pixel_x_offset, -10, 10) + var/offset_y = clamp(P.pixel_y + pixel_y_offset, -10, 10) I.pixel_x += round(rand(-4,4) + offset_x, 1) I.pixel_y += round(rand(-4,4) + offset_y, 1) @@ -1230,14 +1247,15 @@ /// People getting shot by a large amount of bullets in a very short period of time can lag them out, with chat messages being one cause, so a 1s cooldown per hit message is introduced to assuage that /mob/var/shot_cooldown = 0 -/mob/proc/bullet_message(obj/projectile/P) +/mob/proc/bullet_message(obj/projectile/P, damaging = TRUE) if(!P) return - if(COOLDOWN_FINISHED(src, shot_cooldown)) + if(damaging && COOLDOWN_FINISHED(src, shot_cooldown)) visible_message(SPAN_DANGER("[src] is hit by the [P.name] in the [parse_zone(P.def_zone)]!"), \ - SPAN_HIGHDANGER("You are hit by the [P.name] in the [parse_zone(P.def_zone)]!"), null, 4, CHAT_TYPE_TAKING_HIT) + SPAN_HIGHDANGER("[isxeno(src) ? "We" : "You"] are hit by the [P.name] in the [parse_zone(P.def_zone)]!"), null, 4, CHAT_TYPE_TAKING_HIT) COOLDOWN_START(src, shot_cooldown, 1 SECONDS) + var/shot_from = P.shot_from ? " from \a [P.shot_from]" : "" last_damage_data = P.weapon_cause_data if(P.firer && ismob(P.firer)) var/mob/firingMob = P.firer @@ -1245,7 +1263,7 @@ if(ishuman(firingMob) && ishuman(src) && faction == firingMob.faction && !A?.statistic_exempt) //One human shot another, be worried about it but do everything basically the same //special_role should be null or an empty string if done correctly if(!istype(P.ammo, /datum/ammo/energy/taser)) GLOB.round_statistics.total_friendly_fire_instances++ - var/ff_msg = "[key_name(firingMob)] shot [key_name(src)] with \a [P.name] in [get_area(firingMob)] [ADMIN_JMP(firingMob)] [ADMIN_PM(firingMob)]" + var/ff_msg = "[key_name(firingMob)] shot [key_name(src)] with \a [P][shot_from] in [get_area(firingMob)] [ADMIN_JMP(firingMob)] [ADMIN_PM(firingMob)]" var/ff_living = TRUE if(src.stat == DEAD) ff_living = FALSE @@ -1254,15 +1272,15 @@ var/mob/living/carbon/human/H = firingMob H.track_friendly_fire(P.weapon_cause_data.cause_name) else - msg_admin_attack("[key_name(firingMob)] tased [key_name(src)] in [get_area(firingMob)] ([firingMob.x],[firingMob.y],[firingMob.z]).", firingMob.x, firingMob.y, firingMob.z) + msg_admin_attack("[key_name(firingMob)] tased [key_name(src)][shot_from] in [get_area(firingMob)] ([firingMob.x],[firingMob.y],[firingMob.z]).", firingMob.x, firingMob.y, firingMob.z) else - msg_admin_attack("[key_name(firingMob)] shot [key_name(src)] with \a [P.name] in [get_area(firingMob)] ([firingMob.x],[firingMob.y],[firingMob.z]).", firingMob.x, firingMob.y, firingMob.z) - attack_log += "\[[time_stamp()]\] [key_name(firingMob)] shot [key_name(src)] with \a [P] in [get_area(firingMob)]." - firingMob.attack_log += "\[[time_stamp()]\] [key_name(firingMob)] shot [key_name(src)] with \a [P] in [get_area(firingMob)]." + msg_admin_attack("[key_name(firingMob)] shot [key_name(src)] with \a [P][shot_from] in [get_area(firingMob)] ([firingMob.x],[firingMob.y],[firingMob.z]).", firingMob.x, firingMob.y, firingMob.z) + attack_log += "\[[time_stamp()]\] [key_name(firingMob)] shot [key_name(src)] with \a [P][shot_from] in [get_area(firingMob)]." + firingMob.attack_log += "\[[time_stamp()]\] [key_name(firingMob)] shot [key_name(src)] with \a [P][shot_from] in [get_area(firingMob)]." return - attack_log += "\[[time_stamp()]\] SOMETHING?? shot [key_name(src)] with a [P]" - msg_admin_attack("SOMETHING?? shot [key_name(src)] with \a [P] in [get_area(src)] ([loc.x],[loc.y],[loc.z]).", loc.x, loc.y, loc.z) + attack_log += "\[[time_stamp()]\] [P.firer ? P.firer : "SOMETHING??"] shot [key_name(src)] with a [P][shot_from]" + msg_admin_attack("[P.firer ? P.firer : "SOMETHING??"] shot [key_name(src)] with \a [P][shot_from] in [get_area(src)] ([loc.x],[loc.y],[loc.z]).", loc.x, loc.y, loc.z) //Abby -- Just check if they're 1 tile horizontal or vertical, no diagonals /proc/get_adj_simple(atom/Loc1,atom/Loc2) diff --git a/code/modules/reagents/Chemistry-Colours.dm b/code/modules/reagents/Chemistry-Colours.dm index 70705160f462..f600a7479070 100644 --- a/code/modules/reagents/Chemistry-Colours.dm +++ b/code/modules/reagents/Chemistry-Colours.dm @@ -55,7 +55,7 @@ var/mixedcolor = 0 for(i=1; i<=contents; i++) mixedcolor += weight[i]*color[i] - mixedcolor = round(mixedcolor) + mixedcolor = floor(mixedcolor) //until someone writes a formal proof for this algorithm, let's keep this in // if(mixedcolor<0x00 || mixedcolor>0xFF) diff --git a/code/modules/reagents/Chemistry-Generator.dm b/code/modules/reagents/Chemistry-Generator.dm index b2e6402d4b06..813e0d9686bd 100644 --- a/code/modules/reagents/Chemistry-Generator.dm +++ b/code/modules/reagents/Chemistry-Generator.dm @@ -307,7 +307,7 @@ if(isNegativeProperty(P)) new_value = -1 * level else if(isNeutralProperty(P)) - new_value = round(-1 * level / 2) + new_value = floor(-1 * level / 2) else new_value = level @@ -319,30 +319,6 @@ //*****************************************************************************************************/ /datum/reagent/proc/insert_property(property, level) - //The list below defines what properties should override each other. - var/list/conflicting_properties = list( PROPERTY_NUTRITIOUS = PROPERTY_HEMORRAGING, PROPERTY_NUTRITIOUS = PROPERTY_HEMOLYTIC, PROPERTY_TOXIC = PROPERTY_ANTITOXIC,\ - PROPERTY_CORROSIVE = PROPERTY_ANTICORROSIVE, PROPERTY_BIOCIDIC = PROPERTY_NEOGENETIC, PROPERTY_HYPERTHERMIC = PROPERTY_HYPOTHERMIC,\ - PROPERTY_NUTRITIOUS = PROPERTY_KETOGENIC, PROPERTY_PAINING = PROPERTY_PAINKILLING, PROPERTY_HALLUCINOGENIC = PROPERTY_ANTIHALLUCINOGENIC,\ - PROPERTY_HEPATOTOXIC = PROPERTY_HEPATOPEUTIC, PROPERTY_NEPHROTOXIC = PROPERTY_NEPHROPEUTIC, PROPERTY_PNEUMOTOXIC = PROPERTY_PNEUMOPEUTIC,\ - PROPERTY_OCULOTOXIC = PROPERTY_OCULOPEUTIC, PROPERTY_CARDIOTOXIC = PROPERTY_CARDIOPEUTIC, PROPERTY_NEUROTOXIC = PROPERTY_NEUROPEUTIC,\ - PROPERTY_FLUXING = PROPERTY_REPAIRING, PROPERTY_RELAXING = PROPERTY_MUSCLESTIMULATING, PROPERTY_HEMOGENIC = PROPERTY_HEMOLYTIC,\ - PROPERTY_HEMOGENIC = PROPERTY_HEMORRAGING, PROPERTY_NUTRITIOUS = PROPERTY_EMETIC,\ - PROPERTY_HYPERGENETIC = PROPERTY_NEOGENETIC, PROPERTY_HYPERGENETIC = PROPERTY_HEPATOPEUTIC, PROPERTY_HYPERGENETIC = PROPERTY_NEPHROPEUTIC,\ - PROPERTY_HYPERGENETIC = PROPERTY_PNEUMOPEUTIC, PROPERTY_HYPERGENETIC = PROPERTY_OCULOPEUTIC, PROPERTY_HYPERGENETIC = PROPERTY_CARDIOPEUTIC,\ - PROPERTY_HYPERGENETIC = PROPERTY_NEUROPEUTIC, PROPERTY_ADDICTIVE = PROPERTY_ANTIADDICTIVE, PROPERTY_NEUROSHIELDING = PROPERTY_NEUROTOXIC,\ - PROPERTY_HYPOMETABOLIC = PROPERTY_HYPERMETABOLIC, PROPERTY_HYPERTHROTTLING = PROPERTY_NEUROINHIBITING, - PROPERTY_FOCUSING = PROPERTY_NERVESTIMULATING, PROPERTY_THERMOSTABILIZING = PROPERTY_HYPERTHERMIC, PROPERTY_THERMOSTABILIZING = PROPERTY_HYPOTHERMIC, - PROPERTY_AIDING = PROPERTY_NEUROINHIBITING, PROPERTY_OXYGENATING = PROPERTY_HYPOXEMIC, PROPERTY_ANTICARCINOGENIC = PROPERTY_CARCINOGENIC, \ - PROPERTY_CIPHERING = PROPERTY_CIPHERING_PREDATOR, PROPERTY_TRANSFORMATIVE = PROPERTY_ANTITOXIC) - //The list below defines which properties should be combined into a combo property - var/list/combining_properties = list( PROPERTY_DEFIBRILLATING = list(PROPERTY_MUSCLESTIMULATING, PROPERTY_CARDIOPEUTIC),\ - PROPERTY_THANATOMETABOL = list(PROPERTY_HYPOXEMIC, PROPERTY_CRYOMETABOLIZING, PROPERTY_NEUROCRYOGENIC),\ - PROPERTY_HYPERDENSIFICATING = list(PROPERTY_MUSCLESTIMULATING, PROPERTY_BONEMENDING, PROPERTY_CARCINOGENIC),\ - PROPERTY_HYPERTHROTTLING = list(PROPERTY_PSYCHOSTIMULATING, PROPERTY_HALLUCINOGENIC),\ - PROPERTY_NEUROSHIELDING = list(PROPERTY_ALCOHOLIC, PROPERTY_BALDING),\ - PROPERTY_ANTIADDICTIVE = list(PROPERTY_PSYCHOSTIMULATING, PROPERTY_ANTIHALLUCINOGENIC),\ - PROPERTY_ADDICTIVE = list(PROPERTY_PSYCHOSTIMULATING, PROPERTY_NEUROTOXIC),\ - PROPERTY_CIPHERING_PREDATOR = list(PROPERTY_CIPHERING, PROPERTY_CROSSMETABOLIZING)) var/datum/chem_property/match var/datum/chem_property/initial_property for(var/datum/chem_property/P in properties) @@ -350,8 +326,8 @@ match = P else //Handle properties that combine - for(var/C in combining_properties) - var/list/combo = combining_properties[C] + for(var/C in GLOB.combining_properties) + var/list/combo = GLOB.combining_properties[C] if(!combo.Find(property) || !combo.Find(P.name)) continue var/pieces = 0 @@ -369,11 +345,11 @@ LAZYREMOVE(properties, R) break //Handle properties that conflict - for(var/C in conflicting_properties) - if(property == C && P.name == conflicting_properties[C]) + for(var/C in GLOB.conflicting_properties) + if(property == C && P.name == GLOB.conflicting_properties[C]) match = P break - else if (property == conflicting_properties[C] && C == P.name) + else if (property == GLOB.conflicting_properties[C] && C == P.name) match = P break if(match) diff --git a/code/modules/reagents/Chemistry-Holder.dm b/code/modules/reagents/Chemistry-Holder.dm index dcb949424bdf..de365de8e2a6 100644 --- a/code/modules/reagents/Chemistry-Holder.dm +++ b/code/modules/reagents/Chemistry-Holder.dm @@ -4,6 +4,7 @@ var/maximum_volume = 100 var/atom/my_atom = null var/trigger_volatiles = FALSE + var/allow_star_shape = TRUE var/exploded = FALSE var/datum/weakref/source_mob @@ -38,13 +39,13 @@ var/total_transfered = 0 var/current_list_element = 1 - current_list_element = rand(1,reagent_list.len) + current_list_element = rand(1,length(reagent_list)) while(total_transfered != amount) if(total_transfered >= amount) break - if(total_volume <= 0 || !reagent_list.len) break + if(total_volume <= 0 || !length(reagent_list)) break - if(current_list_element > reagent_list.len) current_list_element = 1 + if(current_list_element > length(reagent_list)) current_list_element = 1 var/datum/reagent/current_reagent = reagent_list[current_list_element] remove_reagent(current_reagent.id, 1) @@ -61,17 +62,17 @@ var/total_transfered = 0 var/current_list_element = 1 - current_list_element = rand(1, reagent_list.len) + current_list_element = rand(1, length(reagent_list)) while(total_transfered != amount) if(total_transfered >= amount) break - if(total_volume <= 0 || !reagent_list.len) break + if(total_volume <= 0 || !length(reagent_list)) break - if(current_list_element > reagent_list.len) current_list_element = 1 + if(current_list_element > length(reagent_list)) current_list_element = 1 var/datum/reagent/current_reagent = reagent_list[current_list_element] if(current_reagent.id == reagent_to_ignore) - if(reagent_list.len == 1) break //if the reagent to be avoided is the only one in the list, we're done here. + if(length(reagent_list) == 1) break //if the reagent to be avoided is the only one in the list, we're done here. if(current_list_element == 1) current_reagent = reagent_list[current_list_element + 1] //if the selected reagent was number 1, we don't want it trying to draw id.0, so we add 1 else @@ -165,9 +166,13 @@ if(specific_reagent) if(istype(R, specific_reagent)) R.last_source_mob = WEAKREF(new_source_mob) + if(R.data_properties) + R.data_properties["last_source_mob"] = R.last_source_mob return continue R.last_source_mob = WEAKREF(new_source_mob) + if(R.data_properties) + R.data_properties["last_source_mob"] = R.last_source_mob /datum/reagents/proc/copy_to(obj/target, amount=1, multiplier=1, preserve_data=1, safety = 0) if(!target) @@ -226,9 +231,9 @@ if(!my_atom) return if(my_atom.flags_atom & NOREACT) return //Yup, no reactions here. No siree. - var/reaction_occured = 0 + var/reaction_occurred = 0 do - reaction_occured = 0 + reaction_occurred = 0 for(var/datum/reagent/R in reagent_list) // Usually a small list if(R.original_id) //Prevent synthesised chem variants from being mixed for(var/datum/reagent/O in reagent_list) @@ -247,11 +252,11 @@ var/datum/chemical_reaction/C = reaction - var/total_required_reagents = C.required_reagents.len + var/total_required_reagents = length(C.required_reagents) var/total_matching_reagents = 0 var/total_required_catalysts = 0 if(C.required_catalysts) - total_required_catalysts = C.required_catalysts.len + total_required_catalysts = length(C.required_catalysts) var/total_matching_catalysts= 0 var/matching_container = 0 var/matching_other = 0 @@ -261,7 +266,7 @@ if(!has_reagent(B, C.required_reagents[B])) break total_matching_reagents++ - multipliers += round(get_reagent_amount(B) / C.required_reagents[B]) + multipliers += floor(get_reagent_amount(B) / C.required_reagents[B]) for(var/B in C.required_catalysts) if(B == "silver" && istype(my_atom, /obj/item/reagent_container/glass/beaker/silver)) total_matching_catalysts++ @@ -309,10 +314,10 @@ playsound(get_turf(my_atom), 'sound/effects/bubbles.ogg', 15, 1) C.on_reaction(src, created_volume) - reaction_occured = 1 + reaction_occurred = 1 break - while(reaction_occured) + while(reaction_occurred) if(trigger_volatiles) handle_volatiles() if(exploded) //clear reagents only when everything has reacted @@ -355,12 +360,12 @@ del_reagent(R.id) return FALSE -/datum/reagents/proc/reaction(atom/A, method=TOUCH, volume_modifier=0) +/datum/reagents/proc/reaction(atom/A, method=TOUCH, volume_modifier=0, permeable_in_mobs=TRUE) if(method != TOUCH && method != INGEST) return for(var/datum/reagent/R in reagent_list) if(ismob(A)) - R.reaction_mob(A, method, R.volume + volume_modifier) + R.reaction_mob(A, method, R.volume + volume_modifier, permeable_in_mobs) else if(isturf(A)) R.reaction_turf(A, R.volume + volume_modifier) else if(isobj(A)) @@ -374,7 +379,7 @@ if(total_volume + amount > maximum_volume) amount = maximum_volume - total_volume //Doesnt fit in. Make it disappear. Shouldnt happen. Will happen. - var/new_data = list("blood_type" = null, "blood_colour" = "#A10808", "viruses" = null, "resistances" = null, "last_source_mob" = null) + var/new_data = list("blood_type" = null, "blood_color" = "#A10808", "viruses" = null, "resistances" = null, "last_source_mob" = null) if(data) for(var/index in data) new_data[index] = data[index] @@ -589,9 +594,9 @@ dir = E.dir //only integers please - radius = round(radius) - intensity = round(intensity) - duration = round(duration) + radius = floor(radius) + intensity = floor(intensity) + duration = floor(duration) if(ex_power > 0) explode(sourceturf, ex_power, ex_falloff, ex_falloff_shape, dir, angle) if(intensity > 0) @@ -625,7 +630,7 @@ if(my_atom) //It exists outside of null space. for(var/datum/reagent/R in reagent_list) // if you want to do extra stuff when other chems are present, do it here if(R.id == "iron") - shards += round(R.volume) + shards += floor(R.volume) else if(R.id == "phoron" && R.volume >= EXPLOSION_PHORON_THRESHOLD) shard_type = /datum/ammo/bullet/shrapnel/incendiary @@ -674,7 +679,7 @@ duration = max_fire_dur // shape - if(supplemented > 0 && intensity > CHEM_FIRE_STAR_THRESHOLD) + if(supplemented > 0 && intensity > CHEM_FIRE_STAR_THRESHOLD && allow_star_shape) flameshape = FLAMESHAPE_STAR if(supplemented < 0 && intensity < CHEM_FIRE_IRREGULAR_THRESHOLD) diff --git a/code/modules/reagents/Chemistry-Reagents.dm b/code/modules/reagents/Chemistry-Reagents.dm index 6d36765146ed..7faf2f85a7f7 100644 --- a/code/modules/reagents/Chemistry-Reagents.dm +++ b/code/modules/reagents/Chemistry-Reagents.dm @@ -19,7 +19,7 @@ GLOBAL_LIST_INIT(name2reagent, build_name2reagent()) var/datum/reagents/holder = null var/reagent_state = SOLID var/data = 0 //Scratchpad for random chemicals to do their own thing TODO: unify this somehow? - var/list/data_properties = list("blood_type" = null, "blood_colour" = "#A10808", "viruses" = null, "resistances" = null) //mostly for viruses... + var/list/data_properties = list("blood_type" = null, "blood_color" = "#A10808", "viruses" = null, "resistances" = null) //mostly for viruses... var/volume = 0 var/nutriment_factor = 0 var/custom_metabolism = REAGENTS_METABOLISM @@ -28,7 +28,7 @@ GLOBAL_LIST_INIT(name2reagent, build_name2reagent()) var/overdose_dam = 1//Handeled by heart damage var/spray_warning = FALSE //whether spraying that reagent creates an admin message. //var/list/viruses = list() - var/color = "#000000" // rgb: 0, 0, 0 (does not support alpha channels - yet!) + var/color = COLOR_BLACK //(does not support alpha channels - yet!) var/datum/weakref/last_source_mob // For explosions var/explosive = FALSE @@ -83,43 +83,42 @@ GLOBAL_LIST_INIT(name2reagent, build_name2reagent()) for(var/datum/chem_property/P in properties) P.post_update_reagent() -/datum/reagent/proc/reaction_mob(mob/M, method=TOUCH, volume) //By default we have a chance to transfer some - if(!istype(M, /mob/living)) return 0 +/datum/reagent/proc/reaction_mob(mob/M, method=TOUCH, volume, permeable) //By default we have a chance to transfer some + if(!istype(M, /mob/living)) + return FALSE var/datum/reagent/self = src src = null //of the reagent to the mob on TOUCHING it. if(self.holder) //for catching rare runtimes - if(!istype(self.holder.my_atom, /obj/effect/particle_effect/smoke/chem)) + if(method == TOUCH && permeable && !istype(self.holder.my_atom, /obj/effect/particle_effect/smoke/chem)) // If the chemicals are in a smoke cloud, do not try to let the chemicals "penetrate" into the mob's system (balance station 13) -- Doohl + var/chance = 1 + var/block = FALSE - if(method == TOUCH) + for(var/obj/item/clothing/clothing in M.get_equipped_items()) + if(clothing.permeability_coefficient < chance) + chance = clothing.permeability_coefficient + if(istype(clothing, /obj/item/clothing/suit/bio_suit)) + // bio suits are just about completely fool-proof - Doohl + // kind of a hacky way of making bio suits more resistant to chemicals but w/e + if(prob(75)) + block = TRUE - var/chance = 1 - var/block = 0 + if(istype(clothing, /obj/item/clothing/head/bio_hood)) + if(prob(75)) + block = TRUE - for(var/obj/item/clothing/C in M.get_equipped_items()) - if(C.permeability_coefficient < chance) chance = C.permeability_coefficient - if(istype(C, /obj/item/clothing/suit/bio_suit)) - // bio suits are just about completely fool-proof - Doohl - // kind of a hacky way of making bio suits more resistant to chemicals but w/e - if(prob(75)) - block = 1 + chance *= 100 - if(istype(C, /obj/item/clothing/head/bio_hood)) - if(prob(75)) - block = 1 + if(prob(chance) && !block) + if(M.reagents) + M.reagents.add_reagent(self.id, self.volume * 0.5) - chance = chance * 100 + for(var/datum/chem_property/property in self.properties) + var/potency = property.level * 0.5 + property.reaction_mob(M, method, volume, potency) - if(prob(chance) && !block) - if(M.reagents) - M.reagents.add_reagent(self.id,self.volume/2) - for(var/datum/chem_property/P in self.properties) - var/potency = P.level * 0.5 - P.reaction_mob(M, method, volume, potency) - - - return 1 + return TRUE /datum/reagent/proc/reaction_obj(obj/O, volume) for(var/datum/chem_property/P in properties) @@ -152,6 +151,9 @@ GLOBAL_LIST_INIT(name2reagent, build_name2reagent()) handle_processing(M, mods, delta_time) holder.remove_reagent(id, custom_metabolism * delta_time) + if(!holder) + return FALSE + return TRUE //Pre-processing @@ -180,14 +182,17 @@ GLOBAL_LIST_INIT(name2reagent, build_name2reagent()) if(potency <= 0) continue P.process(M, potency, delta_time) - if(flags & REAGENT_CANNOT_OVERDOSE) - continue if(overdose && volume > overdose) - P.process_overdose(M, potency, delta_time) - if(overdose_critical && volume > overdose_critical) - P.process_critical(M, potency, delta_time) - var/overdose_message = "[istype(src, /datum/reagent/generated) ? "custom chemical" : initial(name)] overdose" - M.last_damage_data = create_cause_data(overdose_message, last_source_mob?.resolve()) + if(flags & REAGENT_CANNOT_OVERDOSE) + var/ammount_overdosed = volume - overdose + holder.remove_reagent(id, ammount_overdosed) + holder.add_reagent("sugar", ammount_overdosed) + else + P.process_overdose(M, potency, delta_time) + if(overdose_critical && volume > overdose_critical) + P.process_critical(M, potency, delta_time) + var/overdose_message = "[istype(src, /datum/reagent/generated) ? "custom chemical" : initial(name)] overdose" + M.last_damage_data = create_cause_data(overdose_message, last_source_mob?.resolve()) if(mods[REAGENT_PURGE]) holder.remove_all_type(/datum/reagent,mods[REAGENT_PURGE] * delta_time) @@ -341,7 +346,7 @@ GLOBAL_LIST_INIT(name2reagent, build_name2reagent()) R = new P.type() break i++ - if(i > properties.len) + if(i > length(properties)) return FALSE R.level = new_level R.holder = src diff --git a/code/modules/reagents/chemical_research/Chemical-Research.dm b/code/modules/reagents/chemical_research/Chemical-Research.dm index e66cb474df50..a05bc132734d 100644 --- a/code/modules/reagents/chemical_research/Chemical-Research.dm +++ b/code/modules/reagents/chemical_research/Chemical-Research.dm @@ -87,8 +87,8 @@ GLOBAL_DATUM_INIT(chemical_data, /datum/chemical_data, new) if(P.category & PROPERTY_TYPE_UNADJUSTABLE || P.category & PROPERTY_TYPE_ANOMALOUS) continue property_names += P.name - for(var/name in research_property_data) - property_names -= name + for(var/datum/chem_property/property in research_property_data) + property_names -= property.name if(LAZYLEN(property_names)) has_new_properties = TRUE for(var/name in property_names) @@ -115,7 +115,7 @@ GLOBAL_DATUM_INIT(chemical_data, /datum/chemical_data, new) return FALSE //Make the chem storage scale with number of dispensers storage.recharge_rate += 5 - storage.max_energy += 50 + storage.max_energy += 100 storage.energy = storage.max_energy return storage @@ -125,7 +125,7 @@ GLOBAL_DATUM_INIT(chemical_data, /datum/chemical_data, new) return FALSE //Make the chem storage scale with number of dispensers storage.recharge_rate -= 5 - storage.max_energy -= 50 + storage.max_energy -= 100 storage.energy = storage.max_energy return TRUE diff --git a/code/modules/reagents/chemistry_machinery/acid_harness.dm b/code/modules/reagents/chemistry_machinery/acid_harness.dm index 52a1a5f13bd7..874737ebef33 100644 --- a/code/modules/reagents/chemistry_machinery/acid_harness.dm +++ b/code/modules/reagents/chemistry_machinery/acid_harness.dm @@ -107,41 +107,41 @@ // damage - damagelist["Brute"] = list("flag" = check_bitflag(acid_core.inject_damage_types, ACID_SCAN_DAMAGE_BRUTE), "value" = ACID_SCAN_DAMAGE_BRUTE) - damagelist["Burn"] = list("flag" = check_bitflag(acid_core.inject_damage_types, ACID_SCAN_DAMAGE_BURN), "value" = ACID_SCAN_DAMAGE_BURN) - damagelist["Toxin"] = list("flag" = check_bitflag(acid_core.inject_damage_types, ACID_SCAN_DAMAGE_TOXIN), "value" = ACID_SCAN_DAMAGE_TOXIN) - damagelist["Oxygen"] = list("flag" = check_bitflag(acid_core.inject_damage_types, ACID_SCAN_DAMAGE_OXYGEN), "value" = ACID_SCAN_DAMAGE_OXYGEN) - damagelist["Genetic"] = list("flag" = check_bitflag(acid_core.inject_damage_types, ACID_SCAN_DAMAGE_CLONE), "value" = ACID_SCAN_DAMAGE_CLONE) - damagelist["Heart"] = list("flag" = check_bitflag(acid_core.inject_damage_types, ACID_SCAN_DAMAGE_HEART), "value" = ACID_SCAN_DAMAGE_HEART) - damagelist["Liver"] = list("flag" = check_bitflag(acid_core.inject_damage_types, ACID_SCAN_DAMAGE_LIVER), "value" = ACID_SCAN_DAMAGE_LIVER) - damagelist["Lungs"] = list("flag" = check_bitflag(acid_core.inject_damage_types, ACID_SCAN_DAMAGE_LUNGS), "value" = ACID_SCAN_DAMAGE_LUNGS) - damagelist["Kidneys"] = list("flag" = check_bitflag(acid_core.inject_damage_types, ACID_SCAN_DAMAGE_KIDNEYS), "value" = ACID_SCAN_DAMAGE_KIDNEYS) - damagelist["Brain"] = list("flag" = check_bitflag(acid_core.inject_damage_types, ACID_SCAN_DAMAGE_BRAIN), "value" = ACID_SCAN_DAMAGE_BRAIN) + damagelist["Brute"] = list("flag" = HAS_FLAG(acid_core.inject_damage_types, ACID_SCAN_DAMAGE_BRUTE), "value" = ACID_SCAN_DAMAGE_BRUTE) + damagelist["Burn"] = list("flag" = HAS_FLAG(acid_core.inject_damage_types, ACID_SCAN_DAMAGE_BURN), "value" = ACID_SCAN_DAMAGE_BURN) + damagelist["Toxin"] = list("flag" = HAS_FLAG(acid_core.inject_damage_types, ACID_SCAN_DAMAGE_TOXIN), "value" = ACID_SCAN_DAMAGE_TOXIN) + damagelist["Oxygen"] = list("flag" = HAS_FLAG(acid_core.inject_damage_types, ACID_SCAN_DAMAGE_OXYGEN), "value" = ACID_SCAN_DAMAGE_OXYGEN) + damagelist["Genetic"] = list("flag" = HAS_FLAG(acid_core.inject_damage_types, ACID_SCAN_DAMAGE_CLONE), "value" = ACID_SCAN_DAMAGE_CLONE) + damagelist["Heart"] = list("flag" = HAS_FLAG(acid_core.inject_damage_types, ACID_SCAN_DAMAGE_HEART), "value" = ACID_SCAN_DAMAGE_HEART) + damagelist["Liver"] = list("flag" = HAS_FLAG(acid_core.inject_damage_types, ACID_SCAN_DAMAGE_LIVER), "value" = ACID_SCAN_DAMAGE_LIVER) + damagelist["Lungs"] = list("flag" = HAS_FLAG(acid_core.inject_damage_types, ACID_SCAN_DAMAGE_LUNGS), "value" = ACID_SCAN_DAMAGE_LUNGS) + damagelist["Kidneys"] = list("flag" = HAS_FLAG(acid_core.inject_damage_types, ACID_SCAN_DAMAGE_KIDNEYS), "value" = ACID_SCAN_DAMAGE_KIDNEYS) + damagelist["Brain"] = list("flag" = HAS_FLAG(acid_core.inject_damage_types, ACID_SCAN_DAMAGE_BRAIN), "value" = ACID_SCAN_DAMAGE_BRAIN) // conditions - conditionslist["Vitals Level"] = list("flag" = check_bitflag(acid_core.inject_conditions, ACID_SCAN_CONDITION_VITALS), "value" = ACID_SCAN_CONDITION_VITALS) - conditionslist["Bleeding"] = list("flag" = check_bitflag(acid_core.inject_conditions, ACID_SCAN_CONDITION_BLEEDING), "value" = ACID_SCAN_CONDITION_BLEEDING) - conditionslist["Internal"] = list("flag" = check_bitflag(acid_core.inject_conditions, ACID_SCAN_CONDITION_BLEEDING_INTERNAL), "value" = ACID_SCAN_CONDITION_BLEEDING_INTERNAL) - conditionslist["Bloodloss"] = list("flag" = check_bitflag(acid_core.inject_conditions, ACID_SCAN_CONDITION_BLOODLOSS_HIGH), "value" = ACID_SCAN_CONDITION_BLOODLOSS_HIGH) - conditionslist["Fracture"] = list("flag" = check_bitflag(acid_core.inject_conditions, ACID_SCAN_CONDITION_FRACTURE), "value" = ACID_SCAN_CONDITION_FRACTURE) - conditionslist["Splinted"] = list("flag" = check_bitflag(acid_core.inject_conditions, ACID_SCAN_CONDITION_SPLINT), "value" = ACID_SCAN_CONDITION_SPLINT) - conditionslist["Organ Damage"] = list("flag" = check_bitflag(acid_core.inject_conditions, ACID_SCAN_CONDITION_ORGAN_DAMAGED), "value" = ACID_SCAN_CONDITION_ORGAN_DAMAGED) - conditionslist["Organ Failure"] = list("flag" = check_bitflag(acid_core.inject_conditions, ACID_SCAN_CONDITION_ORGAN_FAILURE), "value" = ACID_SCAN_CONDITION_ORGAN_FAILURE) - conditionslist["Death"] = list("flag" = check_bitflag(acid_core.inject_conditions, ACID_SCAN_CONDITION_DEATH), "value" = ACID_SCAN_CONDITION_DEATH) - conditionslist["Defibrillation"] = list("flag" = check_bitflag(acid_core.inject_conditions, ACID_SCAN_CONDITION_DEFIB), "value" = ACID_SCAN_CONDITION_DEFIB) - conditionslist["Concussion"] = list("flag" = check_bitflag(acid_core.inject_conditions, ACID_SCAN_CONDITION_CONCUSSION), "value" = ACID_SCAN_CONDITION_CONCUSSION) - conditionslist["Intoxication"] = list("flag" = check_bitflag(acid_core.inject_conditions, ACID_SCAN_CONDITION_INTOXICATION), "value" = ACID_SCAN_CONDITION_INTOXICATION) - conditionslist["Foreign Object"] = list("flag" = check_bitflag(acid_core.inject_conditions, ACID_SCAN_CONDITION_FOREIGN_OBJECT), "value" = ACID_SCAN_CONDITION_FOREIGN_OBJECT) + conditionslist["Vitals Level"] = list("flag" = HAS_FLAG(acid_core.inject_conditions, ACID_SCAN_CONDITION_VITALS), "value" = ACID_SCAN_CONDITION_VITALS) + conditionslist["Bleeding"] = list("flag" = HAS_FLAG(acid_core.inject_conditions, ACID_SCAN_CONDITION_BLEEDING), "value" = ACID_SCAN_CONDITION_BLEEDING) + conditionslist["Internal"] = list("flag" = HAS_FLAG(acid_core.inject_conditions, ACID_SCAN_CONDITION_BLEEDING_INTERNAL), "value" = ACID_SCAN_CONDITION_BLEEDING_INTERNAL) + conditionslist["Bloodloss"] = list("flag" = HAS_FLAG(acid_core.inject_conditions, ACID_SCAN_CONDITION_BLOODLOSS_HIGH), "value" = ACID_SCAN_CONDITION_BLOODLOSS_HIGH) + conditionslist["Fracture"] = list("flag" = HAS_FLAG(acid_core.inject_conditions, ACID_SCAN_CONDITION_FRACTURE), "value" = ACID_SCAN_CONDITION_FRACTURE) + conditionslist["Splinted"] = list("flag" = HAS_FLAG(acid_core.inject_conditions, ACID_SCAN_CONDITION_SPLINT), "value" = ACID_SCAN_CONDITION_SPLINT) + conditionslist["Organ Damage"] = list("flag" = HAS_FLAG(acid_core.inject_conditions, ACID_SCAN_CONDITION_ORGAN_DAMAGED), "value" = ACID_SCAN_CONDITION_ORGAN_DAMAGED) + conditionslist["Organ Failure"] = list("flag" = HAS_FLAG(acid_core.inject_conditions, ACID_SCAN_CONDITION_ORGAN_FAILURE), "value" = ACID_SCAN_CONDITION_ORGAN_FAILURE) + conditionslist["Death"] = list("flag" = HAS_FLAG(acid_core.inject_conditions, ACID_SCAN_CONDITION_DEATH), "value" = ACID_SCAN_CONDITION_DEATH) + conditionslist["Defibrillation"] = list("flag" = HAS_FLAG(acid_core.inject_conditions, ACID_SCAN_CONDITION_DEFIB), "value" = ACID_SCAN_CONDITION_DEFIB) + conditionslist["Concussion"] = list("flag" = HAS_FLAG(acid_core.inject_conditions, ACID_SCAN_CONDITION_CONCUSSION), "value" = ACID_SCAN_CONDITION_CONCUSSION) + conditionslist["Intoxication"] = list("flag" = HAS_FLAG(acid_core.inject_conditions, ACID_SCAN_CONDITION_INTOXICATION), "value" = ACID_SCAN_CONDITION_INTOXICATION) + conditionslist["Foreign Object"] = list("flag" = HAS_FLAG(acid_core.inject_conditions, ACID_SCAN_CONDITION_FOREIGN_OBJECT), "value" = ACID_SCAN_CONDITION_FOREIGN_OBJECT) // vitals - vitalslist["Optimal"] = list("flag" = check_bitflag(acid_core.inject_vitals, ACID_VITALS_OPTIMAL), "value" = ACID_VITALS_OPTIMAL) - vitalslist["Nominal"] = list("flag" = check_bitflag(acid_core.inject_vitals, ACID_VITALS_NOMINAL), "value" = ACID_VITALS_NOMINAL) - vitalslist["Low"] = list("flag" = check_bitflag(acid_core.inject_vitals, ACID_VITALS_DROPPING), "value" = ACID_VITALS_DROPPING) - vitalslist["Very low"] = list("flag" = check_bitflag(acid_core.inject_vitals, ACID_VITALS_LOW), "value" = ACID_VITALS_LOW) - vitalslist["Critical"] = list("flag" = check_bitflag(acid_core.inject_vitals, ACID_VITALS_CRITICAL), "value" = ACID_VITALS_CRITICAL) - vitalslist["Emergency"] = list("flag" = check_bitflag(acid_core.inject_vitals, ACID_VITALS_EMERGENCY), "value" = ACID_VITALS_EMERGENCY) + vitalslist["Optimal"] = list("flag" = HAS_FLAG(acid_core.inject_vitals, ACID_VITALS_OPTIMAL), "value" = ACID_VITALS_OPTIMAL) + vitalslist["Nominal"] = list("flag" = HAS_FLAG(acid_core.inject_vitals, ACID_VITALS_NOMINAL), "value" = ACID_VITALS_NOMINAL) + vitalslist["Low"] = list("flag" = HAS_FLAG(acid_core.inject_vitals, ACID_VITALS_DROPPING), "value" = ACID_VITALS_DROPPING) + vitalslist["Very low"] = list("flag" = HAS_FLAG(acid_core.inject_vitals, ACID_VITALS_LOW), "value" = ACID_VITALS_LOW) + vitalslist["Critical"] = list("flag" = HAS_FLAG(acid_core.inject_vitals, ACID_VITALS_CRITICAL), "value" = ACID_VITALS_CRITICAL) + vitalslist["Emergency"] = list("flag" = HAS_FLAG(acid_core.inject_vitals, ACID_VITALS_EMERGENCY), "value" = ACID_VITALS_EMERGENCY) // compile above lists into config list @@ -162,13 +162,13 @@ switch(action) if("set_inject_amount") - var/inject = round(text2num(params["value"])) + var/inject = floor(text2num(params["value"])) if(inject < 1) inject = 1 acid_core.inject_amount = inject . = TRUE if("set_inject_damage_threshold") - acid_core.inject_damage_threshold = round(text2num(params["value"])) + acid_core.inject_damage_threshold = floor(text2num(params["value"])) . = TRUE if("inject_logic") if(acid_core.inject_logic == ACID_LOGIC_OR) @@ -446,7 +446,7 @@ if(inject_conditions & ACID_SCAN_CONDITION_CONCUSSION && (HAS_TRAIT(src, TRAIT_KNOCKEDOUT) || HAS_TRAIT(src, TRAIT_FLOORED))) condition_scan |= ACID_SCAN_CONDITION_CONCUSSION - if(inject_conditions & ACID_SCAN_CONDITION_INTOXICATION && (user.dazed || user.slowed || user.confused || user.drowsyness || user.dizziness || user.druggy)) + if(inject_conditions & ACID_SCAN_CONDITION_INTOXICATION && (HAS_TRAIT(src, TRAIT_DAZED) || user.slowed || user.confused || user.drowsyness || user.dizziness || user.druggy)) condition_scan |= ACID_SCAN_CONDITION_INTOXICATION //Compare diff --git a/code/modules/reagents/chemistry_machinery/autodispenser.dm b/code/modules/reagents/chemistry_machinery/autodispenser.dm index eed96564da71..05d7988b9bf3 100644 --- a/code/modules/reagents/chemistry_machinery/autodispenser.dm +++ b/code/modules/reagents/chemistry_machinery/autodispenser.dm @@ -164,7 +164,7 @@ data["output_container"] = output_container.name data["output_totalvol"] = output_container.reagents.total_volume data["output_maxvol"] = output_container.reagents.maximum_volume - if(output_container.reagents.reagent_list.len) + if(length(output_container.reagents.reagent_list)) data["output_color"] = mix_color_from_reagents(output_container.reagents.reagent_list) else data["output_color"] = null @@ -182,12 +182,12 @@ var/list/memorylist = program_amount[PROGRAM_MEMORY] var/list/boxlist = program_amount[PROGRAM_BOX] - if(memorylist.len) + if(length(memorylist)) data["memory"] = tgui_friendly_program_list[PROGRAM_MEMORY] else data["memory"] = "Empty" - if(boxlist.len) + if(length(boxlist)) data["box"] = tgui_friendly_program_list[PROGRAM_BOX] else data["box"] = "Empty" @@ -308,7 +308,7 @@ update_icon() return - for(var/i=stage,i<=programs[1].len + programs[2].len && i != 0,i++) + for(var/i=stage,i<=length(programs[1]) + length(programs[2]) && i != 0,i++) if(status < AUTODISPENSER_IDLE) //We're waiting for new chems to be stored status++ if(status == AUTODISPENSER_IDLE) @@ -376,7 +376,7 @@ for(var/obj/item/reagent_container/glass/beaker/vial/V in input_container.contents) if(!V.reagents.get_reagents()) //Ignore empty vials continue - if(V.reagents.reagent_list.len > 1) //We don't work with impure vials + if(length(V.reagents.reagent_list) > 1) //We don't work with impure vials continue var/datum/reagent/R = V.reagents.reagent_list[1] if(program_amount[save_to]["[R.name]"]) @@ -395,11 +395,11 @@ use_power(1500) /obj/structure/machinery/autodispenser/proc/run_program() - if(programs[PROGRAM_MEMORY].len) + if(length(programs[PROGRAM_MEMORY])) program = PROGRAM_MEMORY else program = PROGRAM_BOX - if(programs[program].len && (outputmode == OUTPUT_TO_CONTAINER && output_container) || outputmode != OUTPUT_TO_CONTAINER) + if(length(programs[program]) && (outputmode == OUTPUT_TO_CONTAINER && output_container) || outputmode != OUTPUT_TO_CONTAINER) status = AUTODISPENSER_RUNNING update_icon() else @@ -407,8 +407,8 @@ /obj/structure/machinery/autodispenser/proc/next_stage() stage++ - if(stage > programs[program].len) //End of program - if(programs[PROGRAM_MEMORY].len && programs[PROGRAM_BOX].len) + if(stage > length(programs[program])) //End of program + if(length(programs[PROGRAM_MEMORY]) && length(programs[PROGRAM_BOX])) if(program == PROGRAM_BOX) cycle++ program-- diff --git a/code/modules/reagents/chemistry_machinery/centrifuge.dm b/code/modules/reagents/chemistry_machinery/centrifuge.dm index 6143313377a0..c679aa1c32b9 100644 --- a/code/modules/reagents/chemistry_machinery/centrifuge.dm +++ b/code/modules/reagents/chemistry_machinery/centrifuge.dm @@ -176,17 +176,17 @@ cleanup() return FALSE - if(status == 0 && input_source == INPUT_TURING && connected_turing && connected_turing.outputmode == 2 && (connected_turing.programs[1].len || connected_turing.programs[2].len)) + if(status == 0 && input_source == INPUT_TURING && connected_turing && connected_turing.outputmode == 2 && (length(connected_turing.programs[1]) || length(connected_turing.programs[2]))) return TRUE return FALSE /obj/structure/machinery/centrifuge/proc/centrifuge() - if(!output_container.contents.len) return //Is output empty? + if(!length(output_container.contents)) return //Is output empty? var/obj/item/reagent_container/source_container = input_container if(input_source == INPUT_TURING) source_container = connected_turing - var/initial_reagents = source_container.reagents.reagent_list.len + var/initial_reagents = length(source_container.reagents.reagent_list) var/list/vials = list() for(var/obj/item/reagent_container/V in output_container.contents) vials += V @@ -203,17 +203,17 @@ var/obj/item/reagent_container/hypospray/autoinjector/A = V if(autolabel) A.name = "autoinjector ([autolabel])" - else if(!(A.reagents.reagent_list.len)) + else if(!length(A.reagents.reagent_list)) A.name = "autoinjector" else A.name = "autoinjector (" + A.reagents.reagent_list[1].name + ")" var/numberOfUses = A.reagents.total_volume / A.amount_per_transfer_from_this - A.uses_left = round(numberOfUses) == numberOfUses ? numberOfUses : round(numberOfUses) + 1 + A.uses_left = floor(numberOfUses) == numberOfUses ? numberOfUses : floor(numberOfUses) + 1 A.update_icon() else if(autolabel) V.name = "vial ([autolabel])" - else if(!(V.reagents.reagent_list.len) || (V.reagents.reagent_list.len > 1)) + else if(!length(V.reagents.reagent_list) || (length(V.reagents.reagent_list) > 1)) V.name = "vial" else V.name = "vial (" + V.reagents.reagent_list[1].name + ")" diff --git a/code/modules/reagents/chemistry_machinery/chem_dispenser.dm b/code/modules/reagents/chemistry_machinery/chem_dispenser.dm index 85ed21543127..f0a3faeb75ce 100644 --- a/code/modules/reagents/chemistry_machinery/chem_dispenser.dm +++ b/code/modules/reagents/chemistry_machinery/chem_dispenser.dm @@ -134,13 +134,13 @@ /obj/structure/machinery/chem_dispenser/ui_data(mob/user) . = list() .["amount"] = amount - .["energy"] = round(chem_storage.energy) - .["maxEnergy"] = round(chem_storage.max_energy) + .["energy"] = floor(chem_storage.energy) + .["maxEnergy"] = floor(chem_storage.max_energy) .["isBeakerLoaded"] = beaker ? 1 : 0 var/list/beakerContents = list() var/beakerCurrentVolume = 0 - if(beaker && beaker.reagents && beaker.reagents.reagent_list.len) + if(beaker && beaker.reagents && length(beaker.reagents.reagent_list)) for(var/datum/reagent/current_reagent in beaker.reagents.reagent_list) beakerContents += list(list("name" = current_reagent.name, "volume" = current_reagent.volume)) // list in a list because Byond merges the first list... beakerCurrentVolume += current_reagent.volume @@ -201,9 +201,6 @@ . = TRUE /obj/structure/machinery/chem_dispenser/attackby(obj/item/reagent_container/attacking_object, mob/user) - if(isrobot(user)) - return - if(istype(attacking_object, /obj/item/reagent_container/glass) || istype(attacking_object, /obj/item/reagent_container/food)) if(accept_beaker_only && istype(attacking_object,/obj/item/reagent_container/food)) to_chat(user, SPAN_NOTICE("This machine only accepts beakers")) diff --git a/code/modules/reagents/chemistry_machinery/chem_master.dm b/code/modules/reagents/chemistry_machinery/chem_master.dm index 1e7e3bb08384..6f6d45b6712e 100644 --- a/code/modules/reagents/chemistry_machinery/chem_master.dm +++ b/code/modules/reagents/chemistry_machinery/chem_master.dm @@ -141,7 +141,15 @@ if(length(label) < 3) loaded_pill_bottle.maptext_label = label loaded_pill_bottle.update_icon() + else if(href_list["setcolor"]) + // Checking for state changes + if(!loaded_pill_bottle) + return + + if(!Adjacent(usr)) + return + loaded_pill_bottle.choose_color() else if(href_list["close"]) close_browser(user, "chemmaster") @@ -215,7 +223,7 @@ return if(href_list["createpill_multiple"]) - count = Clamp(tgui_input_number(user, "Select the number of pills to make. (max: [max_pill_count])", "Pills to make", pillamount, max_pill_count, 1), 0, max_pill_count) + count = clamp(tgui_input_number(user, "Select the number of pills to make. (max: [max_pill_count])", "Pills to make", pillamount, max_pill_count, 1), 0, max_pill_count) if(!count) return @@ -240,7 +248,7 @@ P.icon_state = "pill"+pillsprite reagents.trans_to(P,amount_per_pill) if(loaded_pill_bottle) - if(loaded_pill_bottle.contents.len < loaded_pill_bottle.max_storage_space) + if(length(loaded_pill_bottle.contents) < loaded_pill_bottle.max_storage_space) loaded_pill_bottle.handle_item_insertion(P, TRUE) updateUsrDialog() @@ -346,7 +354,7 @@ dat = "Please insert beaker.
            " if(pill_maker) if(loaded_pill_bottle) - dat += "Eject Pill Bottle \[[loaded_pill_bottle.contents.len]/[loaded_pill_bottle.max_storage_space]\]

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

            " else dat += "No pill bottle inserted.

            " dat += "Close" @@ -354,9 +362,10 @@ dat += "Eject beaker and Clear Buffer

            " if(pill_maker) if(loaded_pill_bottle) - dat += "Eject [loaded_pill_bottle] \[[loaded_pill_bottle.contents.len]/[loaded_pill_bottle.max_storage_space]\]
            " - dat += "Add label to [loaded_pill_bottle] \[[loaded_pill_bottle.contents.len]/[loaded_pill_bottle.max_storage_space]\]

            " - dat += "Transfer [loaded_pill_bottle] \[[loaded_pill_bottle.contents.len]/[loaded_pill_bottle.max_storage_space]\] to the smartfridge

            " + dat += "Eject [loaded_pill_bottle] \[[length(loaded_pill_bottle.contents)]/[loaded_pill_bottle.max_storage_space]\]
            " + dat += "Add label to [loaded_pill_bottle] \[[length(loaded_pill_bottle.contents)]/[loaded_pill_bottle.max_storage_space]\]
            " + dat += "Set color to [loaded_pill_bottle] \[[length(loaded_pill_bottle.contents)]/[loaded_pill_bottle.max_storage_space]\]

            " + dat += "Transfer [loaded_pill_bottle] \[[length(loaded_pill_bottle.contents)]/[loaded_pill_bottle.max_storage_space]\] to the smartfridge

            " else dat += "No pill bottle inserted.

            " if(!connected && pill_maker) diff --git a/code/modules/reagents/chemistry_machinery/chem_simulator.dm b/code/modules/reagents/chemistry_machinery/chem_simulator.dm index 8dc34f208549..13e051f5dc20 100644 --- a/code/modules/reagents/chemistry_machinery/chem_simulator.dm +++ b/code/modules/reagents/chemistry_machinery/chem_simulator.dm @@ -1,3 +1,4 @@ +//mode datums at the bottom. #define MODE_AMPLIFY 1 #define MODE_SUPPRESS 2 #define MODE_RELATE 3 @@ -40,7 +41,6 @@ var/ready = FALSE var/template_filter = PROPERTY_TYPE_ALL - var/complexity_editor = FALSE var/creation_template var/creation_complexity = list(CHEM_CLASS_COMMON, CHEM_CLASS_UNCOMMON, CHEM_CLASS_RARE) var/creation_name = "" @@ -62,29 +62,29 @@ ..() if(inoperable()) icon_state = "modifier_off" - SSnano.nanomanager.update_uis(src) // update all UIs attached to src /obj/structure/machinery/chem_simulator/attackby(obj/item/B, mob/living/user) if(!skillcheck(user, SKILL_RESEARCH, SKILL_RESEARCH_TRAINED)) to_chat(user, SPAN_WARNING("You have no idea how to use this.")) return if(istype(B, /obj/item/paper/research_notes)) - var/obj/item/paper/research_notes/N = B + var/obj/item/paper/research_notes/note = B if(!target || (mode == MODE_RELATE && !reference)) - B = N.convert_to_chem_report() + B = note.convert_to_chem_report() else to_chat(user, SPAN_WARNING("Chemical data already inserted.")) return if(istype(B, /obj/item/paper/research_report)) - if(!target) + var/obj/item/paper/research_report/note = B + if(!target && note.data) target = B ready = check_ready() - else if(mode == MODE_RELATE && !reference) - target_property = "" + else if(mode == MODE_RELATE && !reference && note.data) + target_property = null reference = B ready = check_ready() else - to_chat(user, SPAN_WARNING("Chemical data already inserted.")) + to_chat(user, SPAN_WARNING("Chemical data [note.data ? "is already inserted" : "is refused"]")) return else to_chat(user, SPAN_WARNING("[src] refuses [B].")) @@ -93,7 +93,6 @@ to_chat(user, SPAN_NOTICE("You insert [B] into [src].")) flick("[icon_state]_reading",src) update_costs() - SSnano.nanomanager.update_uis(src) // update all UIs attached to src /obj/structure/machinery/chem_simulator/attack_hand(mob/user as mob) if(inoperable()) @@ -101,256 +100,279 @@ if(!skillcheck(user, SKILL_RESEARCH, SKILL_RESEARCH_TRAINED)) to_chat(user, SPAN_WARNING("You have no idea how to use this.")) return - ui_interact(user) - -/obj/structure/machinery/chem_simulator/ui_interact(mob/user, ui_key = "main", datum/nanoui/ui = null, force_open = 0) - var/list/data = list( - "rsc_credits" = GLOB.chemical_data.rsc_credits, - "target" = target, - "reference" = reference, - "mode" = mode, - "complexity_editor" = complexity_editor, - "property_costs" = property_costs, - "simulating" = simulating, - "status_bar" = status_bar, - "ready" = ready, - "od_lvl" = new_od_level, - "recipe_target" = recipe_target, - "recipe_targets" = list(), - "property_codings" = list() - ) - - if(simulating == SIMULATION_STAGE_FINAL) - for(var/reagent_id in recipe_targets) - var/datum/reagent/R = GLOB.chemical_reagents_list[reagent_id] - var/list/id_name[0] - id_name["[R.id]"] = R.name - data["recipe_targets"] += id_name + tgui_interact(user) - if(mode == MODE_CREATE) - data["creation_name"] = creation_name - data["creation_cost"] = creation_cost - data["complexity"] = complexity_to_string_list() - - //List of all available properties - data["property_data_list"] = list() - for(var/datum/chem_property/P in GLOB.chemical_data.research_property_data) - data["property_codings"][P.name] = P.code - if(template_filter && !check_bitflag(P.category, template_filter)) - continue - data["property_data_list"][P.name] = P.level - data["property_data_list"] = sortAssoc(data["property_data_list"]) - //List of enabled properties - data["target_property_list"] = list() - for(var/datum/chem_property/P in creation_template) - data["target_property_list"][P.name] = P.level - if(template_filter && !check_bitflag(P.category, template_filter)) - continue - //Override the editor level with the enabled property level - data["property_data_list"][P.name] = P.level - - data["template_filter"] = list( - "MED" = list(check_bitflag(template_filter, PROPERTY_TYPE_MEDICINE), PROPERTY_TYPE_MEDICINE), - "TOX" = list(check_bitflag(template_filter, PROPERTY_TYPE_TOXICANT), PROPERTY_TYPE_TOXICANT), - "STI" = list(check_bitflag(template_filter, PROPERTY_TYPE_STIMULANT), PROPERTY_TYPE_STIMULANT), - "REA" = list(check_bitflag(template_filter, PROPERTY_TYPE_REACTANT), PROPERTY_TYPE_REACTANT), - "IRR" = list(check_bitflag(template_filter, PROPERTY_TYPE_IRRITANT), PROPERTY_TYPE_IRRITANT), - "MET" = list(check_bitflag(template_filter, PROPERTY_TYPE_METABOLITE), PROPERTY_TYPE_METABOLITE) - ) - - else if(target && target.data && target.completed) - data["target_property_list"] = target.data.properties_to_assoc() - for(var/datum/chem_property/P in target.data.properties) - data["property_codings"][P.name] = P.code - - if(reference && reference.data && reference.completed) - data["reference_property_list"] = reference.data.properties_to_assoc() - for(var/datum/chem_property/P in reference.data.properties) - data["property_codings"][P.name] = P.code - - if(target_property) - data["target_property"] = target_property.name - data["target_info"] = target_property.description - data["target_categories"] = target_property.categories_to_string() - else - data["target_info"] = "" - - if(reference_property) - data["reference_property"] = reference_property.name - data["reference_info"] = reference_property.description - data["reference_categories"] = reference_property.categories_to_string() - else - data["reference_info"] = "" - - ui = SSnano.nanomanager.try_update_ui(user, src, ui_key, ui, data, force_open) +/obj/structure/machinery/chem_simulator/tgui_interact(mob/user, datum/tgui/ui) //death to the chem simulator! All Hail the new chem simulator! + ui = SStgui.try_update_ui(user, src, ui) if(!ui) - ui = new(user, src, ui_key, "chem_simulator.tmpl", "Synthesis Simulator", 800, 550) - ui.set_initial_data(data) + ui = new(user, src, "ChemSimulator", "Chemical Simulator") ui.open() -/obj/structure/machinery/chem_simulator/Topic(href, href_list) +/obj/structure/machinery/chem_simulator/ui_data(mob/user) . = ..() - if(.) - return - if(inoperable() || !ishuman(usr)) - return - var/mob/living/carbon/human/user = usr - if(user.stat || user.is_mob_restrained() || !in_range(src, user)) - return + var/list/data = list() + data["status"] = status_bar + ready = check_ready() + data["is_ready"] = ready + data["can_simulate"] = (ready && simulating == SIMULATION_STAGE_OFF) + data["can_eject_target"] = ((target ? TRUE : FALSE) && simulating == SIMULATION_STAGE_OFF) + data["can_eject_reference"] = ((reference ? TRUE : FALSE) && simulating == SIMULATION_STAGE_OFF) + data["is_picking_recipe"] = (simulating == SIMULATION_STAGE_FINAL && mode != MODE_CREATE) + data["lock_control"] = (simulating != SIMULATION_STAGE_OFF) + data["can_cancel_simulation"] = (simulating <= SIMULATION_STAGE_WAIT) + data["estimated_cost"] = (mode == MODE_CREATE ? creation_cost : (!target_property ? "NULL" : property_costs[target_property.name])) + calculate_new_od_level() + data["od_level"] = new_od_level + data["chemical_name"] = (mode == MODE_CREATE ? (creation_name == "" ? "NAME NOT SET" : creation_name) : (isnull(target) ? "CHEMICAL DATA NOT INSERTED" : target.data.name)) + data["reference_name"] = (isnull(reference) ? "CHEMICAL DATA NOT INSERTED" : reference.data.name) if(mode == MODE_CREATE && GLOB.chemical_data.has_new_properties) update_costs() - if(href_list["simulate"] && ready) - simulating = SIMULATION_STAGE_BEGIN - status_bar = "COMMENCING SIMULATION" - icon_state = "modifier_running" - recipe_targets = list() //reset - start_processing() - if(mode == MODE_CREATE) - msg_admin_niche("[key_name(user)] has created the chemical: [creation_name]") - else if(href_list["ejectT"]) - if(target) - if(!user.put_in_active_hand(target)) - target.forceMove(loc) - target = null - target_property = null - stop_processing() - simulating = SIMULATION_STAGE_OFF - flick("[icon_state]_printing",src) - else if(href_list["ejectR"]) - if(reference) - if(!user.put_in_active_hand(reference)) - reference.forceMove(loc) - reference = null - reference_property = null - stop_processing() - simulating = SIMULATION_STAGE_OFF - flick("[icon_state]_printing",src) - else if(href_list["set_mode"]) - if(mode == MODE_CREATE) //for when you set the mode away from MODE_CREATE - target_property = null - reference_property = null - complexity_editor = FALSE - switch(href_list["set_mode"]) - if("amp") - mode = MODE_AMPLIFY - if("sup") - mode = MODE_SUPPRESS - if("rel") - mode = MODE_RELATE - if("cre") - mode = MODE_CREATE - target_property = null - reference_property = null - calculate_new_od_level() - if(mode == MODE_CREATE) - calculate_creation_cost() - update_costs() - else if(href_list["set_target"]) - if(simulating) - return - if(mode == MODE_CREATE) - var/target_name = href_list["set_target"] - for(var/datum/chem_property/P in GLOB.chemical_data.research_property_data) - if(P.name == target_name) - if(target_property && target_property.name == target_name) - //Toggle the property - if(LAZYISIN(creation_template, target_property)) - target_property.level = 0 - LAZYREMOVE(creation_template, target_property) - else - target_property.level = 1 - LAZYADD(creation_template, target_property) - calculate_creation_cost() - else - target_property = P + if(simulating == SIMULATION_STAGE_FINAL) + for(var/reagent_id in recipe_targets) + var/datum/reagent/recipe_option = GLOB.chemical_reagents_list[reagent_id] + data["reagent_option_data"] += list(list( + "id" = recipe_option.id, + "name" = recipe_option.name, + )) + if(target && length(target?.data?.properties)) + for(var/datum/chem_property/target_property_data in target.data.properties) + var/is_locked = FALSE + var/conflicting_tooltip = null + if(!isnull(reference_property)) + if(LAZYACCESS(GLOB.conflicting_properties, reference_property.name) == target_property_data.name || LAZYACCESS(GLOB.conflicting_properties, target_property_data.name) == reference_property.name ) + is_locked = TRUE + conflicting_tooltip = "This property conflicts with the selected reference property!" + data["target_data"] += list(list( + "code" = target_property_data.code, + "level" = target_property_data.level, + "name" = target_property_data.name, + "desc" = target_property_data.description, + "cost" = property_costs[target_property_data.name], + "is_locked" = is_locked, + "tooltip" = conflicting_tooltip, + )) + else + data["target_data"] = null + + if(reference && length(reference?.data?.properties)) + for(var/datum/chem_property/reference_property_data in reference.data.properties) + var/is_locked = FALSE + var/conflicting_tooltip = null + if(!isnull(target_property)) + if(LAZYACCESS(GLOB.conflicting_properties, target_property.name) == reference_property_data.name || LAZYACCESS(GLOB.conflicting_properties, reference_property_data.name) == target_property.name ) + is_locked = TRUE + conflicting_tooltip = "This property conflicts with the selected target property!" + data["reference_data"] += list(list( + "code" = reference_property_data.code, + "level" = reference_property_data.level, + "name" = capitalize_first_letters(reference_property_data.name), + "desc" = reference_property_data.description, + "cost" = property_costs[reference_property_data.name], + "is_locked" = is_locked, + "tooltip" = conflicting_tooltip, + )) + else + data["reference_data"] = null + data["template_filters"] = list( + "MED" = list(HAS_FLAG(template_filter, PROPERTY_TYPE_MEDICINE), PROPERTY_TYPE_MEDICINE), + "TOX" = list(HAS_FLAG(template_filter, PROPERTY_TYPE_TOXICANT), PROPERTY_TYPE_TOXICANT), + "STI" = list(HAS_FLAG(template_filter, PROPERTY_TYPE_STIMULANT), PROPERTY_TYPE_STIMULANT), + "REA" = list(HAS_FLAG(template_filter, PROPERTY_TYPE_REACTANT), PROPERTY_TYPE_REACTANT), + "IRR" = list(HAS_FLAG(template_filter, PROPERTY_TYPE_IRRITANT), PROPERTY_TYPE_IRRITANT), + "MET" = list(HAS_FLAG(template_filter, PROPERTY_TYPE_METABOLITE), PROPERTY_TYPE_METABOLITE) + ) + if(mode == MODE_CREATE) + for(var/datum/chem_property/known_properties in GLOB.chemical_data.research_property_data) + var/datum/chem_property/template_property + var/is_locked = FALSE + var/conflicting_tooltip = null + if(template_filter && !HAS_FLAG(known_properties.category, template_filter)) + continue + for(var/template in creation_template) + template_property = template + if(LAZYACCESS(GLOB.conflicting_properties, template_property.name) == known_properties.name || LAZYACCESS(GLOB.conflicting_properties, known_properties.name) == template_property.name) + is_locked = TRUE + conflicting_tooltip = "This property conflicts with [template_property.code]!" + if(template_property.code == known_properties.code) break - else - target_property = target.data.get_property(href_list["set_target"]) - calculate_new_od_level() - if(simulating) + template_property = null + + data["known_properties"] += list(list( + "code" = known_properties.code, + "level" = (isnull(template_property) ? 0 : template_property.level) , + "name" = capitalize_first_letters(known_properties.name), + "desc" = known_properties.description, + "is_enabled" = LAZYISIN(creation_template, known_properties), + "is_locked" = is_locked, + "conflicting_tooltip" = conflicting_tooltip, + )) + if(!length(data["known_properties"])) + data["known_properties"] = null + data["complexity_list"] += complexity_to_string_list() + + return data + +/obj/structure/machinery/chem_simulator/ui_static_data(mob/user) + . = ..() + var/list/static_data = list() + for(var/modes in subtypesof(/datum/chemical_simulator_modes)) + var/datum/chemical_simulator_modes/modes_datum = modes + static_data["mode_data"] += list(list( + "name" = modes_datum.name, + "desc" = modes_datum.desc, + "mode_id" = modes_datum.mode_id, + "icon_type" = modes_datum.icon_type + )) + static_data["credits"] = GLOB.chemical_data.rsc_credits + return static_data + +/obj/structure/machinery/chem_simulator/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) + . = ..() + if(.) + return + switch(action) + if("change_mode") + mode = params["mode_id"] + update_costs() + if("eject_target") + if(target) + if(!usr.put_in_active_hand(target)) + target.forceMove(loc) + target = null + target_property = null stop_processing() - icon_state = "modifier" simulating = SIMULATION_STAGE_OFF - else if(href_list["set_reference"]) - reference_property = reference.data.get_property(href_list["set_reference"]) - if(simulating) + flick("[icon_state]_printing",src) + if("eject_reference") + if(reference) + if(!usr.put_in_active_hand(reference)) + reference.forceMove(loc) + reference = null + reference_property = null + stop_processing() + flick("[icon_state]_printing",src) + if("select_target_property") + if(mode != MODE_CREATE) + if(!target) + return + for(var/datum/chem_property/target_prop in target.data.properties) + if(target_prop.code != params["property_code"]) + continue + target_property = target_prop + if(!target_property) + to_chat(usr, SPAN_WARNING("The [src] makes a suspicious wail.")) + return + if("select_reference_property") + if(!reference) + return + for(var/datum/chem_property/reference_prop in reference.data.properties) + if(reference_prop.code != params["property_code"]) + continue + reference_property = reference_prop + if(!reference_property) + to_chat(usr, SPAN_WARNING("The [src] makes a suspicious wail.")) + return + if("simulate") + if(!ready) + return + simulating = SIMULATION_STAGE_BEGIN + status_bar = "COMMENCING SIMULATION" + icon_state = "modifier_running" + recipe_targets = list() //reset + start_processing() + if(mode == MODE_CREATE) + msg_admin_niche("[key_name(usr)] has created the chemical: [creation_name]") + if("submit_recipe_pick") + if(recipe_target) + return + if(params["reagent_picked"] in recipe_targets) + recipe_target = params["reagent_picked"] + finalize_simulation(chem_cache) + recipe_target = null + if("cancel_simulation") stop_processing() icon_state = "modifier" simulating = SIMULATION_STAGE_OFF - update_costs() - else if(href_list["set_recipe_target"]) - recipe_target = href_list["set_recipe_target"] - else if(href_list["stop_simulation"]) - stop_processing() - icon_state = "modifier" - simulating = SIMULATION_STAGE_OFF - else if(href_list["finalize_simulation"] && recipe_target) - finalize_simulation(chem_cache) - //Template creation editor - else if(href_list["set_name"]) - var/newname = input("Set name for template (2-20 characters)","[src]") as text - newname = reject_bad_name(newname, TRUE, 20, FALSE) - if(isnull(newname)) - to_chat(user, "Bad name.") - else if(GLOB.chemical_reagents_list[newname]) - to_chat(user, "Name already taken.") - else - creation_name = newname - else if(href_list["set_level"] && target_property) - var/level_to_set = 1 - if(GLOB.chemical_data.clearance_level <= 2) - level_to_set = tgui_input_list(usr, "Set target level for [target_property.name]:","[src]", list(1,2,3,4)) - else if(GLOB.chemical_data.clearance_level <= 4) - level_to_set = tgui_input_list(usr, "Set target level for [target_property.name]:","[src]", list(1,2,3,4,5,6,7,8)) - else - level_to_set = tgui_input_list(usr, "Set target level for [target_property.name]:","[src]", list(1,2,3,4,5,6,7,8,9,10)) - if(!level_to_set) - return - - target_property.level = level_to_set - if(target_property.max_level && target_property.level > target_property.max_level) - target_property.level = target_property.max_level - to_chat(user, "Max level for [target_property.name] is [target_property.max_level].") - calculate_creation_cost() - else if(href_list["set_od"]) - var/od_to_set = tgui_input_list(usr, "Set new OD:", "[src]", list(5,10,15,20,25,30,35,40,45,50,55,60)) - if(!od_to_set) - return - new_od_level = od_to_set - creation_od_level = od_to_set - calculate_creation_cost() - else if(href_list["set_filter"]) - if(href_list["set_filter"] == "ALL") - template_filter = 0 - else - var/flag_value = text2num(href_list["config_value"]) + if("toggle_flag") + var/flag_value = params["flag_id"] if(template_filter & flag_value) template_filter &= ~flag_value else template_filter |= flag_value - else if(href_list["toggle_complexity_editor"]) - complexity_editor = !complexity_editor - else if(href_list["set_complexity"]) - var/slot = text2num(href_list["set_complexity"]) - var/new_rarity = tgui_input_list(usr, "Set chemical rarity for complexity slot [slot]:","[src]", list("BASIC (+7)","COMMON (+4)","UNCOMMON (1)","RARE (-5)")) - if(!new_rarity) + if("select_create_property") + if(mode == MODE_CREATE) + if(target_property?.code == params["property_code"]) + if(LAZYISIN(creation_template, target_property)) + target_property.level = 0 + LAZYREMOVE(creation_template, target_property) + else + target_property.level = 1 + LAZYADD(creation_template, target_property) + else + for(var/datum/chem_property/known_prop in GLOB.chemical_data.research_property_data) + if(known_prop.code != params["property_code"]) + continue + target_property = known_prop + if(!target_property) + to_chat(usr, SPAN_WARNING("The [src] makes a suspicious wail.")) + return + calculate_creation_cost() + if("select_overdose") + if(simulating == SIMULATION_STAGE_OFF && mode == MODE_CREATE) + var/od_to_set = tgui_input_list(usr, "Set new OD:", "[src]", list(5,10,15,20,25,30,35,40,45,50,55,60)) + if(!od_to_set || simulating != SIMULATION_STAGE_OFF) + return + creation_od_level = od_to_set + calculate_new_od_level() + calculate_creation_cost() + if("change_name") + if(simulating == SIMULATION_STAGE_OFF && mode == MODE_CREATE) + var/newname = input("Set name for template (2-20 characters)","[src]") as text + newname = reject_bad_name(newname, TRUE, 20, FALSE) + if(isnull(newname)) + to_chat(usr, SPAN_WARNING("This name is not permited.")) + else if(GLOB.chemical_reagents_list[newname]) + to_chat(usr, SPAN_WARNING("This name is already occupied")) + else + creation_name = newname + if("change_create_target_level") + var/level_to_set = 1 + if(GLOB.chemical_data.clearance_level <= 2) + level_to_set = tgui_input_list(usr, "Set target level for [target_property.name]:","[src]", list(1,2,3,4)) + else if(GLOB.chemical_data.clearance_level <= 4) + level_to_set = tgui_input_list(usr, "Set target level for [target_property.name]:","[src]", list(1,2,3,4,5,6,7,8)) + else + level_to_set = tgui_input_list(usr, "Set target level for [target_property.name]:","[src]", list(1,2,3,4,5,6,7,8,9,10)) + if(!level_to_set) + return + if(!LAZYISIN(creation_template, target_property)) + LAZYADD(creation_template, target_property) + target_property.level = level_to_set + if(target_property.max_level && target_property.level > target_property.max_level) + target_property.level = target_property.max_level + to_chat(usr, "Max level for [target_property.name] is [target_property.max_level].") + calculate_creation_cost() + if("change_complexity") + var/slot = params["complexity_slot"] + var/new_rarity = tgui_input_list(usr, "Set chemical rarity for complexity slot [slot]:", "[src]", list("BASIC (+7)", "COMMON (+4)", "UNCOMMON (1)", "RARE (-5)")) + if(!new_rarity || simulating != SIMULATION_STAGE_OFF) + return + switch(new_rarity) + if("BASIC (+7)") + creation_complexity[slot] = CHEM_CLASS_BASIC + if("COMMON (+4)") + creation_complexity[slot] = CHEM_CLASS_COMMON + if("UNCOMMON (1)") + creation_complexity[slot] = CHEM_CLASS_UNCOMMON + if("RARE (-5)") + creation_complexity[slot] = CHEM_CLASS_RARE + calculate_creation_cost() + if("keyboard_sound")//only exists to give sound + playsound(loc, pick('sound/machines/computer_typing1.ogg','sound/machines/computer_typing2.ogg','sound/machines/computer_typing3.ogg'), 5, 1) return - - switch(new_rarity) - if("BASIC (+7)") - creation_complexity[slot] = CHEM_CLASS_BASIC - if("COMMON (+4)") - creation_complexity[slot] = CHEM_CLASS_COMMON - if("UNCOMMON (1)") - creation_complexity[slot] = CHEM_CLASS_UNCOMMON - if("RARE (-5)") - creation_complexity[slot] = CHEM_CLASS_RARE - calculate_creation_cost() - ready = check_ready() playsound(loc, pick('sound/machines/computer_typing1.ogg','sound/machines/computer_typing2.ogg','sound/machines/computer_typing3.ogg'), 5, 1) - SSnano.nanomanager.update_uis(src) /obj/structure/machinery/chem_simulator/process() if(inoperable()) @@ -380,8 +402,7 @@ relate(C) if(!C.original_id) C.original_id = target.data.id - C.id = encode_reagent(C) - C.name = C.id + encode_reagent(C) if(C.id in simulations) //We've already simulated this before, so we don't need to continue C = GLOB.chemical_reagents_list[C.id] @@ -442,8 +463,8 @@ min_creation_cost += slots_used - 2 for(var/datum/chem_property/P in creation_template) creation_cost += max(abs(P.value), 1) * P.level - if(P.level > 5) // a penalty is added at each level above 5 (+1 at 6, +2 at 7, +4 at 8, +5 at 9, +7 at 10) - creation_cost += P.level - 6 + n_ceil((P.level - 5) / 2) + if(P.level > 5 && P.cost_penalty) // a penalty is added at each level above 5 (+1 at 6, +2 at 7, +4 at 8, +5 at 9, +7 at 10) + creation_cost += P.level - 6 + ceil((P.level - 5) / 2) creation_cost += ((new_od_level - 10) / 5) * 3 //3 cost for every 5 units above 10 for(var/rarity in creation_complexity) switch(rarity) @@ -535,24 +556,34 @@ if(target_property.level >= GLOB.chemical_data.clearance_level*TECHTREE_LEVEL_MULTIPLIER + 2 && GLOB.chemical_data.clearance_level < 5) status_bar = "CLEARANCE INSUFFICIENT FOR AMPLIFICATION" return FALSE + else + status_bar = "TARGET NOT SELECTED" + return FALSE if(target && length(target.data.properties) < 2) status_bar = "TARGET COMPLEXITY IMPROPER FOR RELATION" return FALSE - if(reference && target) - if(!reference.completed) - status_bar = "INCOMPLETE DATA DETECTED IN REFERENCE" - return FALSE - if(reference_property) - if(target.data.get_property(reference_property.name)) - status_bar = "REFERENCE PROPERTY ALREADY IN TARGET" + if(mode == MODE_RELATE && isnull(reference)) + status_bar = "NO REFERENCE DATA DETECTED" + return FALSE + if(mode == MODE_RELATE) + if(reference && target) + if(!reference.completed) + status_bar = "INCOMPLETE DATA DETECTED IN REFERENCE" return FALSE - if(target_property) - if(target_property.level != reference_property.level) - status_bar = "REFERENCE AND TARGET PROPERTY MUST BE OF EQUAL LEVELS" - return FALSE - if(reference_property.category & PROPERTY_TYPE_UNADJUSTABLE) - status_bar = "REFERENCE PROPERTY CAN NOT BE SIMULATED" + if(reference_property) + if(target.data.get_property(reference_property.name)) + status_bar = "REFERENCE PROPERTY ALREADY IN TARGET" return FALSE + if(target_property) + if(target_property.level != reference_property.level) + status_bar = "REFERENCE AND TARGET PROPERTY MUST BE OF EQUAL LEVELS" + return FALSE + if(reference_property.category & PROPERTY_TYPE_UNADJUSTABLE) + status_bar = "REFERENCE PROPERTY CAN NOT BE SIMULATED" + return FALSE + else + status_bar = "REFERENCE PROPERTY NOT SELECTED" + return FALSE if(mode == MODE_CREATE) if(!LAZYLEN(creation_template)) status_bar = "TEMPLATE IS EMPTY" @@ -566,7 +597,8 @@ else if(!target) status_bar = "NO TARGET INSERTED" return FALSE - status_bar = "READY" + if(simulating == SIMULATION_STAGE_OFF) + status_bar = "READY" return TRUE /obj/structure/machinery/chem_simulator/proc/print(id, is_new) @@ -577,8 +609,8 @@ var/obj/item/paper/research_report/report = new /obj/item/paper/research_report/(loc) var/datum/reagent/D = GLOB.chemical_reagents_list[id] var/datum/asset/asset = get_asset_datum(/datum/asset/simple/paper) - report.name = "Simulation result for [D.name]" - report.info += "

            Official Company Document
            Simulated Synthesis Report

            Result for [D.name]

            " + report.name = "Simulation result for [D.id]" + report.info += "

            Official Company Document
            Simulated Synthesis Report

            Result for [D.id]

            " report.generate(D) report.info += "

            This report was automatically printed by the Synthesis Simulator.
            The [MAIN_SHIP_NAME], [time2text(world.timeofday, "MM/DD")]/[GLOB.game_year], [worldtime2text()]

            \n" playsound(loc, 'sound/machines/twobeep.ogg', 15, 1) @@ -590,7 +622,9 @@ var/suffix = " " for(var/datum/chem_property/P in C.properties) suffix += P.code+"[P.level]" - return O.name + suffix + C.id = O.name + " " + copytext(md5(suffix),1,3) + suffix //Show random suffix AND real properties on research paper + C.name = O.name + " " + copytext(md5(suffix),1,3) //Show ONLY random suffix on health analyzers + return /obj/structure/machinery/chem_simulator/proc/complexity_to_string_list() var/list/L = list() @@ -678,7 +712,7 @@ R.make_alike(assoc_R) if(mode != MODE_CREATE) - if(R.required_reagents.len > 2 && !recipe_targets[recipe_target]) //we only replace if the recipe isn't small and the target is not set TRUE to being elevated + if(length(R.required_reagents) > 2 && !recipe_targets[recipe_target]) //we only replace if the recipe isn't small and the target is not set TRUE to being elevated LAZYREMOVE(R.required_reagents, pick(R.required_reagents)) R.add_component(recipe_target) @@ -713,6 +747,36 @@ status_bar = "SIMULATION COMPLETE" print(C.id, TRUE) +/datum/chemical_simulator_modes + var/name + var/desc + var/mode_id + var/icon_type + +/datum/chemical_simulator_modes/create + name = "CREATE" + desc = "Create a new custom chemical from the known properties discovered earlier." + mode_id = MODE_CREATE + icon_type = "bolt" + +/datum/chemical_simulator_modes/supress + name = "SUPRESS" + desc = "Supress one level in the choosen property. This operation lowers the OD level." + mode_id = MODE_SUPPRESS + icon_type = "square-minus" + +/datum/chemical_simulator_modes/amplify + name = "AMPLIFY" + desc = "Amplify one level in the choosen property. This operation lowers the OD level." + mode_id = MODE_AMPLIFY + icon_type = "square-plus" + +/datum/chemical_simulator_modes/relate + name = "RELATE" + desc = "Use the reference chemical to replace one choosen property in the target chemical. The target and reference target property level must be equal, This operation lowers the OD level." + mode_id = MODE_RELATE + icon_type = "repeat" + #undef SIMULATION_FAILURE #undef SIMULATION_STAGE_OFF #undef SIMULATION_STAGE_FINAL diff --git a/code/modules/reagents/chemistry_machinery/chem_storage.dm b/code/modules/reagents/chemistry_machinery/chem_storage.dm index 692daef7864f..a5196147febe 100644 --- a/code/modules/reagents/chemistry_machinery/chem_storage.dm +++ b/code/modules/reagents/chemistry_machinery/chem_storage.dm @@ -12,7 +12,7 @@ var/recharge_cooldown = 15 var/recharge_rate = 10 var/energy = 50 - var/max_energy = 50 + var/max_energy = 100 unslashable = TRUE unacidable = TRUE @@ -41,7 +41,7 @@ /obj/structure/machinery/chem_storage/get_examine_text(mob/user) . = ..() if(in_range(user, src) || istype(user, /mob/dead/observer)) - var/charge = round((energy / max_energy) * 100) + var/charge = floor((energy / max_energy) * 100) . += SPAN_NOTICE("The charge meter reads [charge]%") /obj/structure/machinery/chem_storage/process() @@ -57,4 +57,4 @@ if(energy >= max_energy) return energy = min(energy + recharge_rate, max_energy) - use_power(1500) // This thing uses up alot of power (this is still low as shit for creating reagents from thin air) + use_power(1500) // This thing uses up a lot of power (this is still low as shit for creating reagents from thin air) diff --git a/code/modules/reagents/chemistry_machinery/pandemic.dm b/code/modules/reagents/chemistry_machinery/pandemic.dm index 5cd7f6584705..645f1bba807a 100644 --- a/code/modules/reagents/chemistry_machinery/pandemic.dm +++ b/code/modules/reagents/chemistry_machinery/pandemic.dm @@ -75,7 +75,7 @@ Blood = L break var/list/res = Blood.data_properties["resistances"] - spawn(res.len*200) + spawn(length(res)*200) wait = null else temphtml = "The replicator is not ready yet." @@ -87,7 +87,6 @@ if(!(virus_type in discovered_diseases)) return var/obj/item/reagent_container/glass/bottle/B = new/obj/item/reagent_container/glass/bottle(src.loc) - B.icon_state = "bottle3" var/datum/disease/D = null if(!virus_type) var/datum/disease/advance/A = GLOB.archive_diseases[href_list["create_virus_culture"]] @@ -161,7 +160,7 @@ if(B) Blood = B break - if(!beaker.reagents.total_volume||!beaker.reagents.reagent_list.len) + if(!beaker.reagents.total_volume||!length(beaker.reagents.reagent_list)) dat += "The beaker is empty
            " else if(!Blood) dat += "No blood sample found in beaker" @@ -173,7 +172,7 @@ if(Blood.data_properties["viruses"]) var/list/vir = Blood.data_properties["viruses"] - if(vir.len) + if(length(vir)) for(var/datum/disease/D in Blood.data_properties["viruses"]) if(!D.hidden[PANDEMIC]) @@ -210,7 +209,7 @@ dat += "
            Contains antibodies to: " if(Blood.data_properties["resistances"]) var/list/res = Blood.data_properties["resistances"] - if(res.len) + if(length(res)) dat += "
              " for(var/type in Blood.data_properties["resistances"]) var/disease_name = "Unknown" @@ -231,7 +230,7 @@ dat += "nothing
              " else dat += "nothing
              " - dat += "
              Eject beaker[((beaker.reagents.total_volume && beaker.reagents.reagent_list.len) ? "-- Empty beaker":"")]
              " + dat += "
              Eject beaker[((beaker.reagents.total_volume && length(beaker.reagents.reagent_list)) ? "-- Empty beaker":"")]
              " dat += "Close" show_browser(user, "[name]
              [dat]", name, "pandemic") diff --git a/code/modules/reagents/chemistry_machinery/reagent_analyzer.dm b/code/modules/reagents/chemistry_machinery/reagent_analyzer.dm index e0d0a80cadc2..967177bda978 100644 --- a/code/modules/reagents/chemistry_machinery/reagent_analyzer.dm +++ b/code/modules/reagents/chemistry_machinery/reagent_analyzer.dm @@ -29,8 +29,11 @@ updateUsrDialog() if(!do_after(user, 1 SECONDS, INTERRUPT_ALL, BUSY_ICON_GENERIC)) return + if(!sample) + to_chat(user, SPAN_WARNING("Someone else removed the sample. Make up your mind!")) + return processing = TRUE - if(sample.reagents.total_volume < 30 || sample.reagents.reagent_list.len > 1) + if(sample.reagents.total_volume < 30 || length(sample.reagents.reagent_list) > 1) icon_state = "reagent_analyzer_error" reagent_process() else @@ -51,12 +54,12 @@ addtimer(CALLBACK(src, TYPE_PROC_REF(/obj/structure/machinery/reagent_analyzer, finish_reagent_process)), 4 SECONDS) /obj/structure/machinery/reagent_analyzer/proc/finish_reagent_process() - if(!sample || !sample.reagents || sample.reagents.total_volume < 30 || sample.reagents.reagent_list.len > 1) + if(!sample || !sample.reagents || sample.reagents.total_volume < 30 || length(sample.reagents.reagent_list) > 1) if(!sample || !sample.reagents) print_report(0, "SAMPLE EMPTY.") else if(sample.reagents.total_volume < 30) print_report(0, "SAMPLE SIZE INSUFFICIENT;
              \nA sample size of 30 units is required for analysis.") - else if(sample.reagents.reagent_list.len > 1) + else if(length(sample.reagents.reagent_list) > 1) print_report(0, "SAMPLE CONTAMINATED;
              \nA pure sample is required for analysis.") else print_report(0, "UNKNOWN.") diff --git a/code/modules/reagents/chemistry_machinery/reagent_grinder.dm b/code/modules/reagents/chemistry_machinery/reagent_grinder.dm index 1de4a84451e1..99b19a75f527 100644 --- a/code/modules/reagents/chemistry_machinery/reagent_grinder.dm +++ b/code/modules/reagents/chemistry_machinery/reagent_grinder.dm @@ -68,7 +68,10 @@ /obj/structure/machinery/reagentgrinder/Destroy() cleanup() - . = ..() + + QDEL_NULL(beaker) + + return ..() /obj/structure/machinery/reagentgrinder/update_icon() icon_state = "juicer"+num2text(!isnull(beaker)) @@ -87,17 +90,17 @@ updateUsrDialog() return 0 - if(holdingitems && holdingitems.len >= limit) + if(LAZYLEN(holdingitems) >= limit) to_chat(user, SPAN_WARNING("The machine cannot hold anymore items.")) return 1 if(istype(O,/obj/item/storage)) var/obj/item/storage/B = O - if(B.contents.len > 0) + if(length(B.contents) > 0) to_chat(user, SPAN_NOTICE("You start dumping the contents of [B] into [src].")) if(!do_after(user, 15, INTERRUPT_ALL, BUSY_ICON_GENERIC)) return for(var/obj/item/I in B) - if(holdingitems && holdingitems.len >= limit) + if(LAZYLEN(holdingitems) >= limit) to_chat(user, SPAN_WARNING("The machine cannot hold anymore items.")) break else @@ -162,7 +165,7 @@ if(is_beaker_ready && !is_chamber_empty && !(inoperable())) dat += "Grind the reagents
              " dat += "Juice the reagents

              " - if(holdingitems && holdingitems.len > 0) + if(LAZYLEN(holdingitems) > 0) dat += "Eject the reagents
              " if(beaker) dat += "Detach the beaker
              " @@ -267,7 +270,7 @@ else if(O.potency == -1) return 5 else - return round(O.potency) + return floor(O.potency) /obj/structure/machinery/reagentgrinder/proc/get_juice_amount(obj/item/reagent_container/food/snacks/grown/O) if(!istype(O)) @@ -275,7 +278,7 @@ else if(O.potency == -1) return 5 else - return round(5*sqrt(O.potency)) + return floor(5*sqrt(O.potency)) /obj/structure/machinery/reagentgrinder/proc/remove_object(obj/item/O) holdingitems -= O @@ -345,7 +348,7 @@ O.reagents.remove_reagent("nutriment", min(O.reagents.get_reagent_amount("nutriment"), space)) else if(O.reagents != null && O.reagents.has_reagent("nutriment")) - beaker.reagents.add_reagent(r_id, min(round(O.reagents.get_reagent_amount("nutriment")*abs(amount)), space)) + beaker.reagents.add_reagent(r_id, min(floor(O.reagents.get_reagent_amount("nutriment")*abs(amount)), space)) O.reagents.remove_reagent("nutriment", min(O.reagents.get_reagent_amount("nutriment"), space)) else @@ -354,7 +357,7 @@ if(beaker.reagents.total_volume >= beaker.reagents.maximum_volume) break - if(O.reagents.reagent_list.len == 0) + if(length(O.reagents.reagent_list) == 0) remove_object(O) //Sheets diff --git a/code/modules/reagents/chemistry_machinery/xenomorph_analyzer.dm b/code/modules/reagents/chemistry_machinery/xenomorph_analyzer.dm new file mode 100644 index 000000000000..62ceb37386ff --- /dev/null +++ b/code/modules/reagents/chemistry_machinery/xenomorph_analyzer.dm @@ -0,0 +1,185 @@ +/obj/structure/machinery/xenoanalyzer + name = "Biomass Analyzer" + desc = "Analyzer of biological material which processes valuable matter into even more valueble data." + density = TRUE + anchored = TRUE + icon = 'icons/obj/structures/machinery/science_machines_64x32.dmi' + icon_state = "xeno_analyzer" //for the time while no sprites + use_power = USE_POWER_NONE + wrenchable = FALSE + idle_power_usage = 40 + bound_x = 32 + ///assoc list containing the path to every upgrade followed by a number representing times this tech was bought. used by price inflation mechanic to increase/decrease price depending on the amount of times you bought it. + var/list/technology_purchased = list() + var/biomass_points = 0 //most important thing in this + var/obj/item/organ/xeno/organ = null + var/busy = FALSE + var/caste_of_organ = null + +/obj/structure/machinery/xenoanalyzer/Initialize(mapload, ...) + . = ..() + for(var/upgrade_type in subtypesof(/datum/research_upgrades)) + var/datum/research_upgrades/upgrade = upgrade_type + if(upgrade.behavior == RESEARCH_UPGRADE_CATEGORY) + continue + if(upgrade.behavior == RESEARCH_UPGRADE_EXCLUDE_BUY) + continue + technology_purchased[upgrade_type] = 0 + +/obj/structure/machinery/xenoanalyzer/attack_hand(mob/user as mob) + if(!skillcheck(user, SKILL_RESEARCH, SKILL_RESEARCH_TRAINED)) + to_chat(user, SPAN_WARNING("You have no idea how to use this.")) + return + tgui_interact(user) + +/obj/structure/machinery/xenoanalyzer/tgui_interact(mob/user, datum/tgui/ui) + ui = SStgui.try_update_ui(user, src, ui) + if(!ui) + ui = new(user, src, "XenomorphExtractor", name) + ui.open() + +/obj/structure/machinery/xenoanalyzer/attackby(obj/item/attacked_item, mob/user) + if(!skillcheck(user, SKILL_RESEARCH, SKILL_RESEARCH_TRAINED)) + to_chat(user, SPAN_WARNING("You have no idea how to use this.")) + return + if(istype(attacked_item, /obj/item/organ/xeno)) + if(busy) + to_chat(user, SPAN_WARNING("The [src] is currently busy!")) + if(organ) + to_chat(user, SPAN_WARNING("Organ slot is already full!")) + return + if(!do_after(user, 3 SECONDS, INTERRUPT_ALL, BUSY_ICON_GENERIC)) + to_chat(user, SPAN_WARNING("You were interupted!")) + return + if(!user.drop_inv_item_to_loc(attacked_item, src)) + return + to_chat(user, SPAN_NOTICE("You place the organ in the machine")) + organ = attacked_item + icon_state = "xeno_analyzer_organ_on" + caste_of_organ = organ.caste_origin + playsound(loc, 'sound/machines/fax.ogg', 15, 1) + if(istype(attacked_item, /obj/item/clothing/accessory/health/research_plate)) + var/obj/item/clothing/accessory/health/research_plate/plate = attacked_item + if(plate.recyclable_value == 0 && !plate.can_recycle(user)) + to_chat(user, SPAN_WARNING("You cannot recycle this type of plate")) + return + if(!do_after(user, 3 SECONDS, INTERRUPT_ALL, BUSY_ICON_GENERIC)) + to_chat(user, SPAN_WARNING("You were interupted!")) + return + to_chat(user, SPAN_NOTICE("You recycle [attacked_item]")) + biomass_points += plate.recyclable_value + qdel(attacked_item) + playsound(loc, 'sound/machines/fax.ogg', 15, 1) + +/obj/structure/machinery/xenoanalyzer/ui_data(mob/user) + var/list/data = list() + data["points"] = biomass_points + data["current_clearance"] = GLOB.chemical_data.clearance_level + data["is_x_level"] = GLOB.chemical_data.reached_x_access // why just why + + if(organ) + data["organ"] = TRUE + data["caste"] = caste_of_organ + data["value"] = organ.research_value + else + data["organ"] = FALSE + data["upgrades"] = list() + data["categories"] = list() + for(var/upgrade_type in subtypesof(/datum/research_upgrades))// moved this here since prices are dynamic now + var/datum/research_upgrades/upgrade = upgrade_type + if(upgrade.behavior == RESEARCH_UPGRADE_CATEGORY) + data["categories"] += upgrade.name + continue + if(upgrade.behavior == RESEARCH_UPGRADE_EXCLUDE_BUY) + continue + var/price_adjustment = clamp(upgrade.value_upgrade + upgrade.change_purchase * technology_purchased[upgrade_type], upgrade.minimum_price, upgrade.maximum_price) + data["upgrades"] += list(list( + "name" = capitalize_first_letters(upgrade.name), + "desc" = upgrade.desc, + "vari" = upgrade.on_init_argument, + "cost" = price_adjustment, + "ref" = upgrade.item_reference, + "category" = upgrade.upgrade_type, + "clearance" = upgrade.clearance_req, + "price_change" = upgrade.change_purchase, + )) + return data + +/obj/structure/machinery/xenoanalyzer/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) + . = ..() + if(.) + return + + switch(action) + if("eject_organ") + eject_biomass(usr) + . = TRUE + + if("process_organ") + if(!busy) + busy = TRUE + addtimer(CALLBACK(src, PROC_REF(process_organ), organ.research_value), 3 SECONDS) + flick("xeno_analyzer_on_moving", src) + playsound(loc, 'sound/machines/blender.ogg', 25, TRUE) + QDEL_NULL(organ) + . = TRUE + if("produce") + if(!busy) + start_print_upgrade(text2path(params["ref"]), usr, text2num(params["vari"])) + playsound(src, 'sound/machines/keyboard2.ogg', 25, TRUE) + +/obj/structure/machinery/xenoanalyzer/proc/eject_biomass(mob/user) + if(busy) + to_chat(user, SPAN_WARNING("[src] is currently busy!")) + return + if(isnull(organ)) + return + icon_state = "xeno_analyzer" + organ.forceMove(get_turf(src)) + organ = null + +/obj/structure/machinery/xenoanalyzer/proc/process_organ(biomass_points_to_add) + biomass_points += biomass_points_to_add + icon_state = "xeno_analyzer" + busy = FALSE + + +/obj/structure/machinery/xenoanalyzer/proc/start_print_upgrade(produce_path, mob/user, variation) + if(stat & NOPOWER) + icon_state = "xeno_analyzer_off" + return + if(busy)//double check for me here + to_chat(user, SPAN_WARNING("[src] makes a annoying hum and flashes red - its currently busy!")) + return + var/path_exists = FALSE + var/datum/research_upgrades/upgrade + var/datum_upgrades + for(datum_upgrades in subtypesof(/datum/research_upgrades)) + upgrade = datum_upgrades + if(upgrade.behavior == RESEARCH_UPGRADE_CATEGORY || upgrade.behavior == RESEARCH_UPGRADE_EXCLUDE_BUY) + continue + if(produce_path == upgrade.item_reference && upgrade.on_init_argument == variation) + path_exists = TRUE + break + if(!path_exists) + to_chat(user, SPAN_WARNING("[src] makes a suspicious wail before powering down.")) + return + if(clamp(upgrade.value_upgrade + upgrade.change_purchase * technology_purchased[datum_upgrades], upgrade.minimum_price, upgrade.maximum_price) > biomass_points) + to_chat(user, SPAN_WARNING("[src] makes a worrying beep and flashes red, theres not enough data processed to build the requested upgrade!")) + return + if((upgrade.clearance_req > GLOB.chemical_data.clearance_level && upgrade.clearance_req != 6) || (upgrade.clearance_req == 6 && !GLOB.chemical_data.reached_x_access)) + to_chat(user, SPAN_WARNING("[src] makes a annoying hum and flashes red - you don't have access to this upgrade!")) + return + flick("xeno_analyzer_printing", src) + busy = TRUE + biomass_points -= clamp(upgrade.value_upgrade + upgrade.change_purchase * technology_purchased[datum_upgrades], upgrade.minimum_price, upgrade.maximum_price) + technology_purchased[datum_upgrades] += 1 + addtimer(CALLBACK(src, PROC_REF(print_upgrade), produce_path, variation), 3 SECONDS) + +/obj/structure/machinery/xenoanalyzer/proc/print_upgrade(produce_path, variation) + busy = FALSE + if(variation != RESEARCH_UPGRADE_NOTHING_TO_PASS) + new produce_path(get_turf(src), variation) + return + new produce_path(get_turf(src)) + diff --git a/code/modules/reagents/chemistry_properties/chem_property.dm b/code/modules/reagents/chemistry_properties/chem_property.dm index bf03b4a1c049..d8bf392cf2bc 100644 --- a/code/modules/reagents/chemistry_properties/chem_property.dm +++ b/code/modules/reagents/chemistry_properties/chem_property.dm @@ -12,6 +12,8 @@ var/updates_stats = FALSE //should the property change other variables in the reagent when added or removed? /// Should reagent with this property explode/start fire when mixed more than overdose threshold at once? var/volatile = FALSE + /// a cost penalty is added at each level above 5 (+1 at 6, +2 at 7, +4 at 8, +5 at 9, +7 at 10) + var/cost_penalty = TRUE /datum/chem_property/Destroy() holder = null diff --git a/code/modules/reagents/chemistry_properties/prop_negative.dm b/code/modules/reagents/chemistry_properties/prop_negative.dm index 5b196bbfc9d6..783584102182 100644 --- a/code/modules/reagents/chemistry_properties/prop_negative.dm +++ b/code/modules/reagents/chemistry_properties/prop_negative.dm @@ -84,6 +84,7 @@ rarity = PROPERTY_COMMON starter = TRUE value = 1 //has a combat use + cost_penalty = FALSE /datum/chem_property/negative/corrosive/process(mob/living/M, potency = 1, delta_time) ..() @@ -148,10 +149,9 @@ if(!M.unacidable) M.take_limb_damage(min(6, volume)) if(isxeno(M)) - var/mob/living/carbon/xenomorph/X = M + var/mob/living/carbon/xenomorph/xeno = M if(potency > POTENCY_MAX_TIER_1) //Needs level 7+ to have any effect - X.AddComponent(/datum/component/toxic_buildup, potency * volume * 0.25) - to_chat(X, SPAN_XENODANGER("The corrosive substance damages your carapace!")) + xeno.AddComponent(/datum/component/status_effect/toxic_buildup, potency * volume * 0.25) /datum/chem_property/negative/corrosive/reaction_obj(obj/O, volume, potency) if((istype(O,/obj/item) || istype(O,/obj/effect/glowshroom)) && prob(potency * 10)) @@ -243,6 +243,7 @@ description = "Ruptures endothelial cells making up bloodvessels, causing blood to escape from the circulatory system." rarity = PROPERTY_UNCOMMON value = 2 + cost_penalty = FALSE /datum/chem_property/negative/hemorrhaging/process(mob/living/M, potency = 1, delta_time) if(!ishuman(M)) @@ -278,7 +279,7 @@ L.wounds += I /datum/chem_property/negative/hemorrhaging/reaction_mob(mob/M, method = TOUCH, volume, potency) - M.AddComponent(/datum/component/healing_reduction, potency * volume * POTENCY_MULTIPLIER_VLOW) //deals brute DOT to humans, prevents healing for xenos + M.AddComponent(/datum/component/status_effect/healing_reduction, potency * volume * POTENCY_MULTIPLIER_VLOW) //deals brute DOT to humans, prevents healing for xenos /datum/chem_property/negative/carcinogenic name = PROPERTY_CARCINOGENIC @@ -411,6 +412,7 @@ description = "Breaks down neurons causing widespread damage to the central nervous system and brain functions. Exposure may cause disorientation or unconsciousness to affected persons." rarity = PROPERTY_COMMON category = PROPERTY_TYPE_TOXICANT|PROPERTY_TYPE_STIMULANT + cost_penalty = FALSE /datum/chem_property/negative/neurotoxic/process(mob/living/M, potency = 1) M.apply_damage(POTENCY_MULTIPLIER_MEDIUM * potency, BRAIN) @@ -429,10 +431,12 @@ /datum/chem_property/negative/neurotoxic/reaction_mob(mob/M, method = TOUCH, volume, potency) if(ishuman(M)) - var/mob/living/carbon/human/H = M - H.apply_damage(potency, BRAIN) - to_chat(M, SPAN_WARNING("You start to go numb.")) - M.apply_effect(potency * volume * POTENCY_MULTIPLIER_LOW, DAZE) + var/mob/living/carbon/human/human = M + human.Daze(potency * volume * POTENCY_MULTIPLIER_VLOW) + to_chat(human, SPAN_WARNING("You start to go numb.")) + if(isxeno(M)) + var/mob/living/carbon/xenomorph/xeno = M + xeno.AddComponent(/datum/component/status_effect/daze, volume * potency * POTENCY_MULTIPLIER_LOW, 30) /datum/chem_property/negative/hypermetabolic name = PROPERTY_HYPERMETABOLIC diff --git a/code/modules/reagents/chemistry_properties/prop_neutral.dm b/code/modules/reagents/chemistry_properties/prop_neutral.dm index 3048b12ee296..7bebb786aa34 100644 --- a/code/modules/reagents/chemistry_properties/prop_neutral.dm +++ b/code/modules/reagents/chemistry_properties/prop_neutral.dm @@ -25,11 +25,11 @@ value = 1 /datum/chem_property/neutral/thanatometabolizing/pre_process(mob/living/M) - if(M.stat != DEAD && M.oxyloss < 50 && round(M.blood_volume) > BLOOD_VOLUME_OKAY) + if(M.stat != DEAD && M.oxyloss < 50 && floor(M.blood_volume) > BLOOD_VOLUME_OKAY) return list(REAGENT_CANCEL = TRUE) var/effectiveness = 1 if(M.stat != DEAD) - effectiveness = Clamp(max(M.oxyloss / 10, (BLOOD_VOLUME_NORMAL - M.blood_volume) / BLOOD_VOLUME_NORMAL) * 0.1 * level, 0.1, 1) + effectiveness = clamp(max(M.oxyloss / 10, (BLOOD_VOLUME_NORMAL - M.blood_volume) / BLOOD_VOLUME_NORMAL) * 0.1 * level, 0.1, 1) return list(REAGENT_FORCE = TRUE, REAGENT_EFFECT = effectiveness) /datum/chem_property/neutral/excreting @@ -519,6 +519,34 @@ /datum/chem_property/neutral/hyperthrottling/process_critical(mob/living/M, potency = 1, delta_time) M.apply_effect(potency * delta_time, PARALYZE) +/datum/chem_property/neutral/encephalophrasive + name = PROPERTY_ENCEPHALOPHRASIVE + code = "ESP" + description = "Drastically increases the amplitude of Gamma and Beta brain waves, allowing the host to broadcast their mind." + rarity = PROPERTY_LEGENDARY + category = PROPERTY_TYPE_STIMULANT + value = 8 + +/datum/chem_property/neutral/encephalophrasive/on_delete(mob/living/chem_host) + ..() + + chem_host.pain.recalculate_pain() + remove_verb(chem_host, /mob/living/carbon/human/proc/psychic_whisper) + to_chat(chem_host, SPAN_NOTICE("The pain in your head subsides, and you are left feeling strangely alone.")) + +/datum/chem_property/neutral/encephalophrasive/reaction_mob(mob/chem_host, method=INGEST, volume, potency) + add_verb(chem_host, /mob/living/carbon/human/proc/psychic_whisper) + to_chat(chem_host, SPAN_NOTICE("A terrible headache manifests, and suddenly it feels as though your mind is outside of your skull.")) + +/datum/chem_property/neutral/encephalophrasive/process(mob/living/chem_host, potency = 1, delta_time) + chem_host.pain.apply_pain(1 * potency) + +/datum/chem_property/neutral/encephalophrasive/process_overdose(mob/living/chem_host, potency = 1, delta_time) + chem_host.apply_damage(0.5 * potency * POTENCY_MULTIPLIER_VHIGH * delta_time, BRAIN) + +/datum/chem_property/neutral/encephalophrasive/process_critical(mob/living/chem_host, potency = 1, delta_time) + chem_host.apply_effect(20, PARALYZE) + /datum/chem_property/neutral/viscous name = PROPERTY_VISCOUS code = "VIS" @@ -592,6 +620,7 @@ rarity = PROPERTY_RARE starter = FALSE value = 3 + cost_penalty = FALSE var/heal_amount = 0.75 /datum/chem_property/neutral/transformative/process(mob/living/M, potency = 1, delta_time) diff --git a/code/modules/reagents/chemistry_properties/prop_positive.dm b/code/modules/reagents/chemistry_properties/prop_positive.dm index 8bf7eadc5d77..9243c71ae7df 100644 --- a/code/modules/reagents/chemistry_properties/prop_positive.dm +++ b/code/modules/reagents/chemistry_properties/prop_positive.dm @@ -28,6 +28,7 @@ rarity = PROPERTY_COMMON starter = TRUE value = 1 + cost_penalty = FALSE /datum/chem_property/positive/anticorrosive/process(mob/living/M, potency = 1) M.heal_limb_damage(0, potency) @@ -47,6 +48,7 @@ rarity = PROPERTY_COMMON starter = TRUE value = 1 + cost_penalty = FALSE /datum/chem_property/positive/neogenetic/process(mob/living/M, potency = 1) M.heal_limb_damage(potency, 0) @@ -69,7 +71,7 @@ /datum/chem_property/positive/repairing name = PROPERTY_REPAIRING code = "REP" - description = "Repairs cybernetic organs by REDACTED." + description = "Repairs cybernetic organs by the use of REDACTED property of REDACTED element." rarity = PROPERTY_UNCOMMON category = PROPERTY_TYPE_MEDICINE value = 2 @@ -216,7 +218,7 @@ /datum/chem_property/positive/musclestimulating/reaction_mob(mob/M, method = TOUCH, volume, potency = 1) if(!isxeno_human(M)) return - M.AddComponent(/datum/component/speed_modifier, volume, TRUE, AMOUNT_PER_TIME(1, potency SECONDS), potency*volume) //Long-lasting speed for beans, stamina for humans + M.AddComponent(/datum/component/status_effect/speed_modifier, volume, TRUE, AMOUNT_PER_TIME(1, potency SECONDS), potency*volume) //Long-lasting speed for beans, stamina for humans /datum/chem_property/positive/painkilling name = PROPERTY_PAINKILLING @@ -399,7 +401,7 @@ L.time_to_knit = 600 // 6 mins if(L.time_to_knit && (L.status & LIMB_BROKEN) && L.knitting_time == -1) if(!(L.status & LIMB_SPLINTED)) - potency -= 2.5 // It'll work, but we're effectively 5 level lower. + potency -= 1 // It'll work, but we're effectively 2 levels lower. if(potency > 0) var/total_knitting_time = world.time + L.time_to_knit - min(150*potency, L.time_to_knit - 50) L.knitting_time = total_knitting_time @@ -433,7 +435,7 @@ if(L.status & (LIMB_ROBOT|LIMB_SYNTHSKIN)) L.take_damage(0, potency) return - if(L.implants && L.implants.len > 0) + if(LAZYLEN(L.implants) > 0) var/obj/implanted_object = pick(L.implants) if(implanted_object) L.implants -= implanted_object @@ -450,6 +452,7 @@ description = "Causes a temporal freeze of all neurological processes and cellular respirations in the brain. This allows the brain to be preserved for long periods of time." rarity = PROPERTY_UNCOMMON category = PROPERTY_TYPE_REACTANT + cost_penalty = FALSE /datum/chem_property/positive/neurocryogenic/process(mob/living/M, potency = 1, delta_time) if(prob(10 * delta_time)) @@ -473,7 +476,7 @@ /datum/chem_property/positive/neurocryogenic/reaction_mob(mob/M, method = TOUCH, volume, potency = 1) if(!isxeno_human(M)) return - M.AddComponent(/datum/component/speed_modifier, potency * volume * 0.5) //Brainfreeze + M.AddComponent(/datum/component/status_effect/speed_modifier, potency * volume * 0.5) //Brainfreeze /datum/chem_property/positive/antiparasitic name = PROPERTY_ANTIPARASITIC @@ -489,7 +492,7 @@ var/obj/item/alien_embryo/embryo = content if(embryo && istype(embryo)) if(embryo.counter > 0) - embryo.counter = embryo.counter - potency + embryo.counter = embryo.counter - (potency * delta_time) current_human.take_limb_damage(0,POTENCY_MULTIPLIER_MEDIUM*potency) else embryo.stage-- @@ -548,6 +551,7 @@ rarity = PROPERTY_RARE category = PROPERTY_TYPE_REACTANT value = 3 + cost_penalty = FALSE COOLDOWN_DECLARE(ghost_notif) /datum/chem_property/positive/defibrillating/on_delete(mob/living/M) @@ -647,7 +651,7 @@ return H.chem_effect_flags |= CHEM_EFFECT_RESIST_NEURO to_chat(M, SPAN_NOTICE("Your skull feels incredibly thick.")) - M.dazed = 0 + M.SetDaze(0) /datum/chem_property/positive/neuroshielding/process_overdose(mob/living/M, potency = 1, delta_time) if(!ishuman(M)) @@ -684,6 +688,7 @@ rarity = PROPERTY_DISABLED category = PROPERTY_TYPE_REACTANT|PROPERTY_TYPE_COMBUSTIBLE value = 2 + cost_penalty = FALSE var/intensitymod_per_level = 0 var/radiusmod_per_level = 0 @@ -723,6 +728,11 @@ holder.durationfire = max(holder.durationfire, 1) holder.intensityfire = max(holder.intensityfire, 1) + if(holder.intensityfire >= 50 && istype(holder, /datum/reagent/generated)) + holder.burncolor = "#ffffff" + else + holder.burncolor = holder.color + /datum/chem_property/positive/fire/fueling name = PROPERTY_FUELING code = "FUL" @@ -777,8 +787,6 @@ rarity = PROPERTY_COMMON value = 1 range_per_level = 1 - duration_per_level = -1 - intensity_per_level = -1 intensitymod_per_level = -0.05 radiusmod_per_level = 0.05 @@ -835,6 +843,7 @@ description = "Disrupts certain neurological processes related to communication in animals." rarity = PROPERTY_UNCOMMON category = PROPERTY_TYPE_TOXICANT + cost_penalty = FALSE /datum/chem_property/positive/disrupting/process(mob/living/M, potency = 1) to_chat(M, SPAN_NOTICE("Your mind feels oddly... quiet.")) @@ -848,8 +857,8 @@ /datum/chem_property/positive/disrupting/reaction_mob(mob/M, method=TOUCH, volume, potency) if(!isxeno(M)) return - var/mob/living/carbon/xenomorph/X = M - X.interference += (volume * potency) + var/mob/living/carbon/xenomorph/xeno = M + xeno.AddComponent(/datum/component/status_effect/interference, volume * potency, 90) /datum/chem_property/positive/neutralizing name = PROPERTY_NEUTRALIZING @@ -857,6 +866,7 @@ description = "Neutralizes certain reactive chemicals and plasmas on contact. Unsafe to administer intravenously." rarity = PROPERTY_UNCOMMON category = PROPERTY_TYPE_IRRITANT + cost_penalty = FALSE /datum/chem_property/positive/neutralizing/process(mob/living/M, potency = 1) M.apply_damages(0, potency, potency * POTENCY_MULTIPLIER_LOW) @@ -873,8 +883,9 @@ var/mob/living/L = M L.ExtinguishMob() //Extinguishes mobs on contact if(isxeno(L)) - var/mob/living/carbon/xenomorph/X = M - X.plasma_stored = max(X.plasma_stored - POTENCY_MULTIPLIER_VHIGH * POTENCY_MULTIPLIER_VHIGH * potency, 0) + var/mob/living/carbon/xenomorph/xeno = M + xeno.plasma_stored = max(xeno.plasma_stored - POTENCY_MULTIPLIER_HIGH * volume * potency, 0) + to_chat(xeno, SPAN_WARNING("You feel your plasma reserves being drained!")) /datum/chem_property/positive/neutralizing/reaction_turf(turf/T, volume, potency) if(!istype(T)) @@ -992,3 +1003,37 @@ /datum/chem_property/positive/anticarcinogenic/process_critical(mob/living/M, potency = 1) M.take_limb_damage(POTENCY_MULTIPLIER_MEDIUM * potency)//Hyperactive apoptosis + +/datum/chem_property/positive/regulating + name = PROPERTY_REGULATING + code = "REG" + description = "The chemical regulates its own metabolization, any amount overdosed is turned into sugar." + rarity = PROPERTY_COMMON + category = PROPERTY_TYPE_METABOLITE + max_level = 1 + value = 1 + +/datum/chem_property/positive/regulating/reset_reagent() + holder.flags = initial(holder.flags) + ..() + +/datum/chem_property/positive/regulating/update_reagent() + holder.flags |= REAGENT_CANNOT_OVERDOSE + ..() + +/datum/chem_property/positive/firepenetrating + name = PROPERTY_FIRE_PENETRATING + code = "PTR" + description = "Gives the chemical a unique, anomalous combustion chemistry, causing the flame to react with flame-resistant material and obliterate through it." + rarity = PROPERTY_RARE + category = PROPERTY_TYPE_REACTANT + value = 8 + max_level = 1 + +/datum/chem_property/positive/firepenetrating/reset_reagent() + holder.fire_penetrating = initial(holder.fire_penetrating) + ..() + +/datum/chem_property/positive/firepenetrating/update_reagent() + holder.fire_penetrating = TRUE + ..() diff --git a/code/modules/reagents/chemistry_properties/prop_special.dm b/code/modules/reagents/chemistry_properties/prop_special.dm index 52354f0d6b01..d3e5e6efcf00 100644 --- a/code/modules/reagents/chemistry_properties/prop_special.dm +++ b/code/modules/reagents/chemistry_properties/prop_special.dm @@ -6,28 +6,12 @@ /datum/chem_property/special/boosting name = PROPERTY_BOOSTING code = "BST" - description = "Boosts the potency of all other properties in this chemical when inside the body." + description = "Boosts the potency of all other properties in this chemical when inside the body by 0.5 levels for every level that this property has." rarity = PROPERTY_LEGENDARY category = PROPERTY_TYPE_METABOLITE /datum/chem_property/special/boosting/pre_process(mob/living/M) - return list(REAGENT_BOOST = level) - -/datum/chem_property/special/regulating - name = PROPERTY_REGULATING - code = "REG" - description = "The chemical regulates its own metabolization and can thus never cause overdosis." - rarity = PROPERTY_LEGENDARY - category = PROPERTY_TYPE_METABOLITE - max_level = 1 - -/datum/chem_property/special/regulating/reset_reagent() - holder.flags = initial(holder.flags) - ..() - -/datum/chem_property/special/regulating/update_reagent() - holder.flags |= REAGENT_CANNOT_OVERDOSE - ..() + return list(REAGENT_BOOST = level * 0.5) /datum/chem_property/special/hypergenetic name = PROPERTY_HYPERGENETIC @@ -53,7 +37,7 @@ /datum/chem_property/special/hypergenetic/reaction_mob(mob/M, method=TOUCH, volume, potency) if(!isxeno_human(M)) return - M.AddComponent(/datum/component/healing_reduction, -potency * volume * POTENCY_MULTIPLIER_LOW) //reduces heal reduction if present + M.AddComponent(/datum/component/status_effect/healing_reduction, -potency * volume * POTENCY_MULTIPLIER_LOW) //reduces heal reduction if present if(ishuman(M)) //heals on contact with humans/xenos var/mob/living/carbon/human/H = M H.heal_limb_damage(potency * volume * POTENCY_MULTIPLIER_LOW) @@ -96,7 +80,7 @@ H.contract_disease(new /datum/disease/xeno_transformation(0),1) //This is the real reason PMCs are being sent to retrieve it. /datum/chem_property/special/DNA_Disintegrating/trigger() - SSticker.mode.get_specific_call("Weyland-Yutani Goon (Chemical Investigation Squad)", TRUE, FALSE, holder.name) + SSticker.mode.get_specific_call(/datum/emergency_call/goon/chem_retrieval, TRUE, FALSE, holder.name) // "Weyland-Yutani Goon (Chemical Investigation Squad)" GLOB.chemical_data.update_credits(10) message_admins("The research department has discovered DNA_Disintegrating in [holder.name] adding 10 bonus tech points.") var/datum/techtree/tree = GET_TREE(TREE_MARINE) @@ -352,20 +336,3 @@ holder.durationfire += 1 * level holder.durationmod += 0.1 * level ..() - -/datum/chem_property/special/firepenetrating - name = PROPERTY_FIRE_PENETRATING - code = "PTR" - description = "Gives the chemical a unique, anomalous combustion chemistry, causing the flame to react with flame-resistant material and obliterate through it." - rarity = PROPERTY_LEGENDARY - category = PROPERTY_TYPE_REACTANT - value = 8 - max_level = 1 - -/datum/chem_property/special/firepenetrating/reset_reagent() - holder.fire_penetrating = initial(holder.fire_penetrating) - ..() - -/datum/chem_property/special/firepenetrating/update_reagent() - holder.fire_penetrating = TRUE - ..() diff --git a/code/modules/reagents/chemistry_reactions/other.dm b/code/modules/reagents/chemistry_reactions/other.dm index 6b60ae89059c..08402e82ed7f 100644 --- a/code/modules/reagents/chemistry_reactions/other.dm +++ b/code/modules/reagents/chemistry_reactions/other.dm @@ -38,7 +38,7 @@ var/location = get_turf(holder.my_atom) // 100 created volume = 4 heavy range & 7 light range. A few tiles smaller than traitor EMP grandes. // 200 created volume = 8 heavy range & 14 light range. 4 tiles larger than traitor EMP grenades. - empulse(location, round(created_volume / 24), round(created_volume / 14), 1) + empulse(location, floor(created_volume / 24), floor(created_volume / 14), 1) holder.clear_reagents() @@ -174,13 +174,27 @@ holder.trigger_volatiles = TRUE return +/datum/chemical_reaction/custom/sticky + name = "Sticky-Napalm" + id = "stickynapalm" + result = "stickynapalm" + required_reagents = list("napalm" = 1, "fuel" = 1) + result_amount = 2 + +/datum/chemical_reaction/custom/high_damage + name = "High-Combustion Napalm Fuel" + id = "highdamagenapalm" + result = "highdamagenapalm" + required_reagents = list("napalm" = 1, "chlorine trifluoride" = 1) + result_amount = 2 + // Chemfire supplement chemicals. /datum/chemical_reaction/chlorinetrifluoride name = "Chlorine Trifluoride" id = "chlorine trifluoride" result = "chlorine trifluoride" required_reagents = list("fluorine" = 3, "chlorine" = 1) - result_amount = 1 + result_amount = 3 /datum/chemical_reaction/chlorinetrifluoride/on_reaction(datum/reagents/holder, created_volume) holder.trigger_volatiles = TRUE @@ -346,6 +360,12 @@ required_reagents = list("fluorine" = 2, "carbon" = 2, "sulphuric acid" = 1) result_amount = 5 +/datum/chemical_reaction/stablefoam + name = "Stabilized metallic foam" + id = "stablefoam" + result = "stablefoam" + required_reagents = list("fluorosurfactant" = 1, "iron" = 1, "sulphuric acid" = 1) + result_amount = 1 /datum/chemical_reaction/foam name = "Foam" @@ -385,28 +405,11 @@ to_chat(M, SPAN_WARNING("The solution spews out a metallic shiny foam!")) var/datum/effect_system/foam_spread/s = new() + if (created_volume > 300) + created_volume = 300 s.set_up(created_volume, location, holder, 1) s.start() - -/datum/chemical_reaction/ironfoam - name = "Iron Foam" - id = "ironlfoam" - result = null - required_reagents = list("iron" = 3, "foaming_agent" = 1, "pacid" = 1) - result_amount = 5 - -/datum/chemical_reaction/ironfoam/on_reaction(datum/reagents/holder, created_volume) - var/location = get_turf(holder.my_atom) - - for(var/mob/M as anything in viewers(5, location)) - to_chat(M, SPAN_WARNING("The solution spews out a metallic dull foam!")) - - var/datum/effect_system/foam_spread/s = new() - s.set_up(created_volume, location, holder, 2) - s.start() - - /datum/chemical_reaction/foaming_agent name = "Foaming Agent" id = "foaming_agent" diff --git a/code/modules/reagents/chemistry_reagents/alcohol.dm b/code/modules/reagents/chemistry_reagents/alcohol.dm index 08beb42fa410..b5db671b626c 100644 --- a/code/modules/reagents/chemistry_reagents/alcohol.dm +++ b/code/modules/reagents/chemistry_reagents/alcohol.dm @@ -234,7 +234,7 @@ name = "Poison Wine" id = "pwine" description = "Is this even wine? Toxic! Hallucinogenic! Probably consumed in boatloads by your superiors!" - color = "#000000" // rgb: 0, 0, 0 SHOCKER + color = COLOR_BLACK properties = list(PROPERTY_ALCOHOLIC = 1, PROPERTY_FUELING = 3, PROPERTY_OXIDIZING = 3, PROPERTY_FLOWING = 2) boozepwr = 1 @@ -559,7 +559,7 @@ name = "Snow White" id = "snowwhite" description = "A cold refreshment" - color = "#FFFFFF" // rgb: 255, 255, 255 + color = COLOR_WHITE properties = list(PROPERTY_ALCOHOLIC = 1.5, PROPERTY_FUELING = 3, PROPERTY_OXIDIZING = 3, PROPERTY_FLOWING = 2) boozepwr = 1.5 diff --git a/code/modules/reagents/chemistry_reagents/drink.dm b/code/modules/reagents/chemistry_reagents/drink.dm index 66ce0844556b..9015736a2923 100644 --- a/code/modules/reagents/chemistry_reagents/drink.dm +++ b/code/modules/reagents/chemistry_reagents/drink.dm @@ -163,8 +163,10 @@ /datum/reagent/drink/milk/on_mob_life(mob/living/M) . = ..() - if(!.) return - if(M.getBruteLoss() && prob(20)) M.heal_limb_damage(1,0) + if(!.) + return + if(M.getBruteLoss() && prob(20)) + M.heal_limb_damage(1,0) holder.remove_reagent("capsaicin", 10*REAGENTS_METABOLISM) holder.remove_reagent("hotsauce", 10*REAGENTS_METABOLISM) @@ -200,7 +202,7 @@ M = holder.my_atom if(prob(1)) M.emote("shiver") - M.bodytemperature = max(M.bodytemperature - 10 * TEMPERATURE_DAMAGE_COEFFICIENT, 0) + M.bodytemperature = max(M.bodytemperature - 10 * TEMPERATURE_DAMAGE_COEFFICIENT, T0C) M.recalculate_move_delay = TRUE holder.remove_reagent("capsaicin", 5) holder.remove_reagent("hotsauce", 5) @@ -220,7 +222,7 @@ name = "Cherry Souto" id = "souto_cherry" description = "A cherry flavored soda that's canned in Havanna" - color = "#800000" + color = COLOR_MAROON /datum/reagent/drink/souto/lime name = "Lime Souto" @@ -492,7 +494,7 @@ name = "Lemonade" description = "Oh the nostalgia..." id = "lemonade" - color = "#FFFF00" // rgb: 255, 255, 0 + color = COLOR_YELLOW //*****************************************************************************************************/ //***************************************Remove When Safe**********************************************/ @@ -555,8 +557,7 @@ /datum/reagent/neurotoxin/on_mob_life(mob/living/carbon/M) . = ..() if(!.) return - if(!HAS_TRAIT(src, TRAIT_FLOORED)) - M.apply_effect(5, WEAKEN) + M.KnockDown(5) if(!data) data = 1 data++ M.dizziness +=6 diff --git a/code/modules/reagents/chemistry_reagents/food.dm b/code/modules/reagents/chemistry_reagents/food.dm index 0ec3a2250260..939772825408 100644 --- a/code/modules/reagents/chemistry_reagents/food.dm +++ b/code/modules/reagents/chemistry_reagents/food.dm @@ -150,7 +150,7 @@ chemclass = CHEM_CLASS_RARE properties = list(PROPERTY_HYPERTHERMIC = 1) -/datum/reagent/condensedcapsaicin/reaction_mob(mob/living/M, method=TOUCH, volume) +/datum/reagent/condensedcapsaicin/reaction_mob(mob/living/M, method=TOUCH, volume, permeable) if(!istype(M, /mob/living) || has_species(M,"Horror")) return @@ -184,7 +184,7 @@ id = "sodiumchloride" description = "A salt made of sodium chloride. Commonly used to season food." reagent_state = SOLID - color = "#FFFFFF" // rgb: 255,255,255 + color = COLOR_WHITE chemfiresupp = TRUE intensitymod = 0.1 burncolor = "#ffff00" @@ -227,7 +227,7 @@ id = "sprinkles" description = "Multi-colored little bits of sugar, commonly found on donuts. Loved by cops." nutriment_factor = 1 * REAGENTS_METABOLISM - color = "#FF00FF" // rgb: 255, 0, 255 + color = COLOR_MAGENTA properties = list(PROPERTY_NUTRITIOUS = 2) flags = REAGENT_NO_GENERATION @@ -288,7 +288,7 @@ description = "The most widely consumed staple food on Earth. Rice is the most important grain with regard to human nutrition and caloric intake." reagent_state = SOLID nutriment_factor = 1 * REAGENTS_METABOLISM - color = "#FFFFFF" // rgb: 0, 0, 0 + color = COLOR_WHITE properties = list(PROPERTY_NUTRITIOUS = 2) /datum/reagent/cherryjelly @@ -304,6 +304,6 @@ name = "Honey" id = "honey" description = "Honey is a natural sweet, viscous food substance composed of mainly fructose and glucose." - color = "#FFFF00" + color = COLOR_YELLOW chemclass = CHEM_CLASS_RARE flags = REAGENT_NO_GENERATION diff --git a/code/modules/reagents/chemistry_reagents/medical.dm b/code/modules/reagents/chemistry_reagents/medical.dm index f69d1b952c43..1e9eb0e0084b 100644 --- a/code/modules/reagents/chemistry_reagents/medical.dm +++ b/code/modules/reagents/chemistry_reagents/medical.dm @@ -8,7 +8,7 @@ id = "inaprovaline" description = "Inaprovaline is a synaptic stimulant and cardiostimulant. Commonly used to stabilize patients. If the lungs are functional, inaprovaline will allow respiration while under cardiac arrest. Slows down bleeding and acts as a weak painkiller. Overdosing may cause severe damage to cardiac tissue." reagent_state = LIQUID - color = "#C8A5DC" // rgb: 200, 165, 220 + color = "#dcbaf0" // rgb: 200, 165, 220 overdose = HIGH_REAGENTS_OVERDOSE overdose_critical = HIGH_REAGENTS_OVERDOSE_CRITICAL chemclass = CHEM_CLASS_COMMON @@ -42,7 +42,7 @@ id = "tramadol" description = "Tramadol is a centrally acting analgesic and is considered to be a relatively safe. The analgesic potency is claimed to be about one tenth that of morphine. It is used to treat both acute and chronic pain of moderate to (moderately) severe intensity. Tramadol is generally considered as a medicinal drug with a low potential for dependence relative to morphine. Overdosing on tramadol is highly toxic." reagent_state = LIQUID - color = "#C8A5DC" + color = "#d7c7e0" custom_metabolism = AMOUNT_PER_TIME(15, 10 MINUTES) // Lasts 10 minutes for 15 units overdose = REAGENTS_OVERDOSE overdose_critical = REAGENTS_OVERDOSE_CRITICAL @@ -54,7 +54,7 @@ id = "oxycodone" description = "Oxycodone is an opioid agonist with addiction potential similar to that of morphine. It is approved for the treatment of patients with moderate to severe pain who are expected to need continuous opioids for an extended period of time. Overdosing on oxycodone can cause hallucinations, brain damage and be highly toxic." reagent_state = LIQUID - color = "#E01D25" + color = "#1cc282" custom_metabolism = AMOUNT_PER_TIME(15, 5 MINUTES) // Lasts 5 minutes for 15 units overdose = MED_REAGENTS_OVERDOSE overdose_critical = MED_REAGENTS_OVERDOSE_CRITICAL @@ -66,7 +66,7 @@ id = "sterilizine" description = "A sterilizer used to clean wounds in preparation for surgery. Its use has mostly been outclassed to the cheaper alternative of space cleaner." reagent_state = LIQUID - color = "#C8A5DC" // rgb: 200, 165, 220 + color = "#b8d2f5" // rgb: 200, 165, 220 chemclass = CHEM_CLASS_UNCOMMON /datum/reagent/medical/leporazine @@ -74,7 +74,7 @@ id = "leporazine" description = "A drug used to treat hypothermia and hyperthermia. Stabilizes patient body temperture. Prevents the use of cryogenics. Overdosing on leporazine can cause extreme drowsyness." reagent_state = LIQUID - color = "#C8A5DC" // rgb: 200, 165, 220 + color = "#a03919" // rgb: 200, 165, 220 overdose = REAGENTS_OVERDOSE overdose_critical = REAGENTS_OVERDOSE_CRITICAL chemclass = CHEM_CLASS_UNCOMMON @@ -85,7 +85,7 @@ id = "kelotane" description = "Common medicine used to treat burns, caustic and corrosive trauma. Overdosing on kelotane can cause internal tissue damage." reagent_state = LIQUID - color = "#D8C58C" + color = "#d8b343" overdose = REAGENTS_OVERDOSE overdose_critical = REAGENTS_OVERDOSE_CRITICAL chemclass = CHEM_CLASS_COMMON @@ -96,7 +96,7 @@ id = "dermaline" description = "Advanced medicine used to treat severe burn trauma. Enables the body to restore even the direst heat-damaged tissue. Overdosing on dermaline can cause severe internal tissue damage." reagent_state = LIQUID - color = "#F8C57C" + color = "#e2972e" overdose = LOWH_REAGENTS_OVERDOSE overdose_critical = LOWH_REAGENTS_OVERDOSE_CRITICAL chemclass = CHEM_CLASS_UNCOMMON @@ -107,7 +107,7 @@ id = "dexalin" description = "Dexalin is used in the treatment of oxygen deprivation by feeding oxygen to red blood cells directly inside the bloodstream. Used as an antidote to lexorin poisoning." reagent_state = LIQUID - color = "#C865FC" + color = "#1f28a7" overdose = REAGENTS_OVERDOSE overdose_critical = REAGENTS_OVERDOSE_CRITICAL chemclass = CHEM_CLASS_COMMON @@ -118,7 +118,7 @@ id = "dexalinp" description = "Dexalin Plus is an upgraded form of Dexalin with added iron and carbon to quicken the rate which oxygen binds to the hemoglobin in red blood cells." reagent_state = LIQUID - color = "#C8A5FC" + color = "#293fff" overdose = LOWH_REAGENTS_OVERDOSE overdose_critical = LOWH_REAGENTS_OVERDOSE_CRITICAL chemclass = CHEM_CLASS_UNCOMMON @@ -129,7 +129,7 @@ id = "tricordrazine" description = "Tricordrazine is a highly potent stimulant, originally derived from cordrazine. Can be used to treat a wide range of injuries." reagent_state = LIQUID - color = "#B865CC" + color = "#d87f2b" overdose = REAGENTS_OVERDOSE overdose_critical = REAGENTS_OVERDOSE_CRITICAL chemclass = CHEM_CLASS_UNCOMMON @@ -140,7 +140,7 @@ id = "anti_toxin" description = "General use anti-toxin, that neutralizes most toxins in the bloodstream. Commonly used in many advanced chemicals. Can be used as a mild anti-hallucinogen and to reduce tiredness." reagent_state = LIQUID - color = "#A8F59C" + color = "#3fc92a" overdose = REAGENTS_OVERDOSE overdose_critical = REAGENTS_OVERDOSE_CRITICAL chemclass = CHEM_CLASS_COMMON @@ -151,7 +151,7 @@ id = "adminordrazine" description = "A magical substance created by gods to dissolve extreme amounts of salt." reagent_state = LIQUID - color = "#C8A5DC" // rgb: 200, 165, 220 + color = "#dae63b" // rgb: 200, 165, 220 properties = list(PROPERTY_OMNIPOTENT = 2) flags = REAGENT_TYPE_MEDICAL @@ -160,7 +160,7 @@ id = "thwei" description = "A strange, alien liquid." reagent_state = LIQUID - color = "#C8A5DC" // rgb: 200, 165, 220 + color = "#41c498" // rgb: 200, 165, 220 chemclass = CHEM_CLASS_SPECIAL objective_value = OBJECTIVE_HIGH_VALUE properties = list( @@ -182,7 +182,7 @@ id = "neuraline" description = "A chemical cocktail tailored to enhance or dampen specific neural processes." reagent_state = LIQUID - color = "#C8A5DC" // rgb: 200, 165, 220 + color = "#a244d8" // rgb: 200, 165, 220 custom_metabolism = AMOUNT_PER_TIME(1, 5 SECONDS) overdose = 2 overdose_critical = 3 @@ -195,7 +195,7 @@ id = "arithrazine" description = "A stabilized variant of dylovene. Its toxin-cleansing properties are weakened and there are harmful side effects, but it does not react with other compounds to create toxin." reagent_state = LIQUID - color = "#C8A5DC" // rgb: 200, 165, 220 + color = "#3c8529" // rgb: 200, 165, 220 custom_metabolism = AMOUNT_PER_TIME(1, 40 SECONDS) overdose = REAGENTS_OVERDOSE/2 overdose_critical = REAGENTS_OVERDOSE_CRITICAL/2 @@ -207,7 +207,7 @@ id = "russianred" description = "An emergency radiation treatment. The list of potential side effects include retinal damage and unconsciousness." reagent_state = LIQUID - color = "#C8A5DC" // rgb: 200, 165, 220 + color = "#ce2727" // rgb: 200, 165, 220 custom_metabolism = AMOUNT_PER_TIME(1, 2 SECONDS) overdose = MED_REAGENTS_OVERDOSE overdose_critical = MED_REAGENTS_OVERDOSE_CRITICAL @@ -218,7 +218,7 @@ id = "alkysine" description = "Alkysine is a drug used to lessen and heal the damage to neurological tissue after a catastrophic injury. Small amounts can repair extensive brain trauma. Functions as a very weak painkiller. Overdosing on alkysine is extremely toxic." reagent_state = LIQUID - color = "#E89599" + color = "#e9d191" custom_metabolism = AMOUNT_PER_TIME(1, 40 SECONDS) overdose = REAGENTS_OVERDOSE overdose_critical = REAGENTS_OVERDOSE_CRITICAL @@ -241,7 +241,7 @@ id = "peridaxon" description = "Prevents symptoms caused by damaged internal organs while in the bloodstream, but does not fix the organ damage. Recommended for patients awaiting internal organ surgery. Overdosing on peridaxon will cause internal tissue damage." reagent_state = LIQUID - color = "#C845DC" + color = "#403142" overdose = LOWH_REAGENTS_OVERDOSE overdose_critical = LOWH_REAGENTS_OVERDOSE_CRITICAL custom_metabolism = AMOUNT_PER_TIME(1, 40 SECONDS) @@ -253,7 +253,7 @@ id = "bicaridine" description = "Bicaridine is an analgesic medication and can be used to treat severe external blunt trauma and to stabilize patients. Overdosing on Bicaridine will cause caustic burns and toxins." reagent_state = LIQUID - color = "#E8756C" + color = "#e7554a" overdose = REAGENTS_OVERDOSE overdose_critical = REAGENTS_OVERDOSE_CRITICAL chemclass = CHEM_CLASS_COMMON @@ -288,7 +288,7 @@ id = "ultrazine" description = "A highly-potent, long-lasting combination CNS and muscle stimulant. Extremely addictive." reagent_state = LIQUID - color = "#C8A5DC" // rgb: 200, 165, 220 + color = "#ffec43" // rgb: 200, 165, 220 custom_metabolism = 0.0167 //5 units will last approximately 10 minutes overdose = LOWM_REAGENTS_OVERDOSE overdose_critical = LOWM_REAGENTS_OVERDOSE_CRITICAL @@ -314,7 +314,7 @@ id = "cryoxadone" description = "Industrial grade cryogenic medicine. Treats most types of tissue damage. Its main limitation is that the patient's body temperature must be under 170K to metabolise correctly." reagent_state = LIQUID - color = "#C8A5DC" // rgb: 200, 165, 220 + color = "#4acaca" // rgb: 200, 165, 220 chemclass = CHEM_CLASS_UNCOMMON properties = list(PROPERTY_CRYOMETABOLIZING = 2, PROPERTY_NEOGENETIC = 1, PROPERTY_ANTICORROSIVE = 1, PROPERTY_ANTITOXIC = 1, PROPERTY_ANTICARCINOGENIC = 1) @@ -332,7 +332,7 @@ id = "clonexadone" description = "Advanced cryogenic medicine made from cryoxadone. Treats most types of tissue damage. Requires temperatures below 170K to to metabolise correctly." reagent_state = LIQUID - color = "#C8A5DC" // rgb: 200, 165, 220 + color = "#51b4db" // rgb: 200, 165, 220 chemclass = CHEM_CLASS_UNCOMMON properties = list(PROPERTY_CRYOMETABOLIZING = 6, PROPERTY_NEOGENETIC = 3, PROPERTY_ANTICORROSIVE = 3, PROPERTY_ANTITOXIC = 3, PROPERTY_ANTICARCINOGENIC = 3) @@ -351,7 +351,7 @@ id = "spaceacillin" description = "General use theta-lactam antibiotic. Prevents and cures mundane infections." reagent_state = LIQUID - color = "#C8A5DC" // rgb: 200, 165, 220 + color = "#9749c4" // rgb: 200, 165, 220 custom_metabolism = AMOUNT_PER_TIME(1, 200 SECONDS) overdose = REAGENTS_OVERDOSE overdose_critical = REAGENTS_OVERDOSE_CRITICAL diff --git a/code/modules/reagents/chemistry_reagents/other.dm b/code/modules/reagents/chemistry_reagents/other.dm index 45e66c182e6a..86002a65d98f 100644 --- a/code/modules/reagents/chemistry_reagents/other.dm +++ b/code/modules/reagents/chemistry_reagents/other.dm @@ -9,11 +9,11 @@ description = "Blood is classified as a connective tissue and consists of two main components: Plasma, which is a clear extracellular fluid. Formed elements, which are made up of the blood cells and platelets." reagent_state = LIQUID color = "#A10808" - data_properties = new/list("blood_type"=null,"blood_colour"= "#A10808","viruses"=null,"resistances"=null) + data_properties = new/list("blood_type"=null,"blood_color"= "#A10808","viruses"=null,"resistances"=null) chemclass = CHEM_CLASS_RARE -/datum/reagent/blood/reaction_mob(mob/M, method=TOUCH, volume) +/datum/reagent/blood/reaction_mob(mob/M, method=TOUCH, volume, permeable) var/datum/reagent/blood/self = src src = null if(self.data_properties && self.data_properties["viruses"]) @@ -85,7 +85,7 @@ color = "#C81040" // rgb: 200, 16, 64 properties = list(PROPERTY_CURING = 4) -/datum/reagent/vaccine/reaction_mob(mob/M, method=TOUCH, volume) +/datum/reagent/vaccine/reaction_mob(mob/M, method=TOUCH, volume, permeable) if(has_species(M,"Horror")) return var/datum/reagent/vaccine/self = src @@ -124,7 +124,7 @@ src = null O.extinguish() -/datum/reagent/water/reaction_mob(mob/living/M, method=TOUCH, volume)//Splashing people with water can help put them out! +/datum/reagent/water/reaction_mob(mob/living/M, method=TOUCH, volume, permeable)//Splashing people with water can help put them out! if(!istype(M, /mob/living)) return if(method == TOUCH) @@ -185,7 +185,7 @@ id = "oxygen" description = "Chemical element of atomic number 8. It is an oxidizing agent that forms oxides with most elements and many other compounds. Dioxygen is used in cellular respiration and is nessesary to sustain organic life." reagent_state = GAS - color = "#808080" // rgb: 128, 128, 128 + color = COLOR_GRAY chemfiresupp = TRUE properties = list(PROPERTY_OXIDIZING = 2) intensitymod = 0.75 @@ -212,7 +212,7 @@ id = "nitrogen" description = "Chemical element of atomic number 7. Liquid nitrogen is commonly used in cryogenics, with its melting point of 63.15 kelvin. Nitrogen is a component of many explosive compounds and fertilizers." reagent_state = GAS - color = "#808080" // rgb: 128, 128, 128 + color = COLOR_GRAY chemclass = CHEM_CLASS_BASIC custom_metabolism = AMOUNT_PER_TIME(1, 200 SECONDS) @@ -223,7 +223,7 @@ id = "hydrogen" description = "Chemical element of atomic number 1. Is the most abundant chemical element in the Universe. Liquid hydrogen was used as one of the first fuel sources for space travel. Very combustible and is used in many chemical reactions." reagent_state = GAS - color = "#808080" // rgb: 128, 128, 128 + color = COLOR_GRAY chemfiresupp = TRUE durationmod = -0.5 radiusmod = 0.2 @@ -254,7 +254,7 @@ color = "#484848" // rgb: 72, 72, 72 overdose = REAGENTS_OVERDOSE chemclass = CHEM_CLASS_BASIC - properties = list(PROPERTY_NEUROTOXIC = 4) + properties = list(PROPERTY_NEUROTOXIC = 4, PROPERTY_NEUROCRYOGENIC = 1, PROPERTY_DISRUPTING = 1) /datum/reagent/sulfur name = "Sulfur" @@ -295,7 +295,7 @@ id = "chlorine" description = "Chemical element of atomic number 17. High concentrations of elemental chlorine is highly reactive and poisonous for all living organisms. Chlorine gas has been used as a chemical warfare agent. Industrially used in the production of disinfectants, medicines, plastics and purification of water." reagent_state = GAS - color = "#808080" // rgb: 128, 128, 128 + color = COLOR_GRAY overdose = REAGENTS_OVERDOSE overdose_critical = REAGENTS_OVERDOSE_CRITICAL chemclass = CHEM_CLASS_BASIC @@ -306,18 +306,18 @@ id = "fluorine" description = "Chemical element of atomic number 9. It is a very reactive and highly toxic pale yellow gas at standard conditions. Mostly used for medical and dental purposes." reagent_state = GAS - color = "#808080" // rgb: 128, 128, 128 + color = COLOR_GRAY overdose = REAGENTS_OVERDOSE overdose_critical = REAGENTS_OVERDOSE_CRITICAL chemclass = CHEM_CLASS_BASIC - properties = list(PROPERTY_TOXIC = 1) + properties = list(PROPERTY_TOXIC = 1, PROPERTY_NEUTRALIZING = 1) /datum/reagent/sodium name = "Sodium" id = "sodium" description = "Chemical element of atomic number 11. Pure it is a soft and very reactive metal. Many salt compounds contain sodium, such as sodium chloride and sodium bicarbonate. There are more uses for sodium as a salt than as a metal." reagent_state = SOLID - color = "#808080" // rgb: 128, 128, 128 + color = COLOR_GRAY chemclass = CHEM_CLASS_BASIC custom_metabolism = AMOUNT_PER_TIME(1, 200 SECONDS) @@ -343,7 +343,7 @@ id = "lithium" description = "Chemical element of atomic number 3. Is a soft alkali metal commonly used in the production of batteries. Highly reactive and flammable. Used as an antidepressant and for treating bipolar disorder." reagent_state = SOLID - color = "#808080" // rgb: 128, 128, 128 + color = COLOR_GRAY chemfiresupp = TRUE intensitymod = 0.15 burncolor = "#ff356f" @@ -358,7 +358,7 @@ id = "sugar" description = "The organic compound commonly known as table sugar and sometimes called saccharose. This white, odorless, crystalline powder has a pleasing, sweet taste. The most simple form of sugar, glucose, is the only form of nutriment for red blood cells as they have no mitocondria. Sugar can therefore be used to improve blood regeneration as a nutriment, although ineffective." reagent_state = SOLID - color = "#FFFFFF" // rgb: 255, 255, 255 + color = COLOR_WHITE chemclass = CHEM_CLASS_BASIC properties = list(PROPERTY_NUTRITIOUS = 1) flags = REAGENT_TYPE_MEDICAL @@ -368,7 +368,7 @@ id = "glycerol" description = "Glycerol is a simple polyol compound. Glycerol is sweet-tasting and of low toxicity, often used in medicines and beverages. Used in the production of plastic, nitroglycerin and other explosives." reagent_state = LIQUID - color = "#808080" // rgb: 128, 128, 128 + color = COLOR_GRAY chemclass = CHEM_CLASS_RARE custom_metabolism = AMOUNT_PER_TIME(1, 200 SECONDS) @@ -380,7 +380,7 @@ reagent_state = SOLID color = "#C7C7C7" // rgb: 199,199,199 chemclass = CHEM_CLASS_BASIC - properties = list(PROPERTY_CARCINOGENIC = 2) + properties = list(PROPERTY_CARCINOGENIC = 2, PROPERTY_HEMORRAGING = 1) /datum/reagent/thermite name = "Thermite" @@ -517,7 +517,7 @@ if(volume >= 1 && istype(T)) T.clean_cleanables() -/datum/reagent/space_cleaner/reaction_mob(mob/M, method=TOUCH, volume) +/datum/reagent/space_cleaner/reaction_mob(mob/M, method=TOUCH, volume, permeable) if(iscarbon(M)) var/mob/living/carbon/C = M if(C.r_hand) @@ -585,18 +585,6 @@ custom_metabolism = AMOUNT_PER_TIME(1, 200 SECONDS) flags = REAGENT_NO_GENERATION -/datum/reagent/nanites - name = "Nanomachines" - id = "nanites" - description = "Microscopic construction robots." - reagent_state = LIQUID - color = "#535E66" // rgb: 83, 94, 102 - -/datum/reagent/nanites/reaction_mob(mob/M, method=TOUCH, volume) - src = null - if((prob(10) && method==TOUCH) || method==INGEST) - M.contract_disease(new /datum/disease/robotic_transformation(0),1) - /datum/reagent/xenomicrobes name = "Xenomicrobes" id = "xenomicrobes" @@ -604,7 +592,7 @@ reagent_state = LIQUID color = "#535E66" // rgb: 83, 94, 102 -/datum/reagent/xenomicrobes/reaction_mob(mob/M, method=TOUCH, volume) +/datum/reagent/xenomicrobes/reaction_mob(mob/M, method=TOUCH, volume, permeable) src = null if((prob(10) && method==TOUCH) || method==INGEST) M.contract_disease(new /datum/disease/xeno_transformation(0),1) @@ -625,6 +613,15 @@ color = "#664B63" // rgb: 102, 75, 99 chemclass = CHEM_CLASS_UNCOMMON +/datum/reagent/foaming_agent/stabilized + name = "Stabilized metallic foam" + id = "stablefoam" + description = "Stabilized metallic foam that solidifies when exposed to an open flame" + reagent_state = LIQUID + color = "#d4b8d1" + chemclass = CHEM_CLASS_UNCOMMON + properties = list(PROPERTY_TOXIC = 8) + /datum/reagent/nicotine name = "Nicotine" id = "nicotine" @@ -676,7 +673,7 @@ custom_metabolism = 100 //disappears immediately properties = list(PROPERTY_RAVENING = 1) -/datum/reagent/blackgoo/reaction_mob(mob/M, method=TOUCH, volume) +/datum/reagent/blackgoo/reaction_mob(mob/M, method=TOUCH, volume, permeable) if(ishuman(M)) var/mob/living/carbon/human/H = M if(H.species.name == "Human") @@ -702,6 +699,40 @@ burn_sprite = "red" properties = list(PROPERTY_OXIDIZING = 6, PROPERTY_FUELING = 7, PROPERTY_FLOWING = 1) +/datum/reagent/napalm/sticky + name = "Sticky-Napalm" + id = "stickynapalm" + description = "A custom napalm mix, stickier and lasts longer but lower damage" + reagent_state = LIQUID + color = "#f8e3b2" + burncolor = "#f8e3b2" + burn_sprite = "dynamic" + intensitymod = -1.5 + durationmod = -5 + radiusmod = -0.5 + properties = list( + PROPERTY_INTENSITY = BURN_LEVEL_TIER_2, + PROPERTY_DURATION = BURN_TIME_TIER_5, + PROPERTY_RADIUS = 5, + ) + +/datum/reagent/napalm/high_damage + name = "High-Combustion Napalm Fuel" + id = "highdamagenapalm" + description = "A custom napalm mix, higher damage but not as sticky" + reagent_state = LIQUID + color = "#c51c1c" + burncolor = "#c51c1c" + burn_sprite = "dynamic" + intensitymod = -4.5 + durationmod = -1 + radiusmod = -0.5 + properties = list( + PROPERTY_INTENSITY = BURN_LEVEL_TIER_8, + PROPERTY_DURATION = BURN_TIME_TIER_1, + PROPERTY_RADIUS = 5, + ) + // This is the regular flamer fuel and pyro regular flamer fuel. /datum/reagent/napalm/ut name = "UT-Napthal Fuel" @@ -720,8 +751,8 @@ id = "napalmgel" description = "Unlike its liquid contemporaries, this gelled variant of napalm is easily extinguished, but shoots far and lingers on the ground in a viscous mess, while reacting with inorganic materials to ignite them." flameshape = FLAMESHAPE_LINE - color = "#00ff00" - burncolor = "#00ff00" + color = COLOR_GREEN + burncolor = COLOR_GREEN burn_sprite = "green" properties = list( PROPERTY_INTENSITY = BURN_LEVEL_TIER_2, @@ -750,8 +781,8 @@ id = "napalmb" description = "A special variant of napalm that's unable to cling well to anything, but disperses over a wide area while burning slowly. The composition reacts with inorganic materials to ignite them, causing severe damage." flameshape = FLAMESHAPE_TRIANGLE - color = "#00ff00" - burncolor = "#00ff00" + color = COLOR_GREEN + burncolor = COLOR_GREEN burn_sprite = "green" properties = list( PROPERTY_INTENSITY = BURN_LEVEL_TIER_2, @@ -764,8 +795,8 @@ name = "Napalm E" id = "napalme" description = "A sticky combustible liquid chemical that penetrates the best fire retardants." - color = "#800080" - burncolor = "#800080" + color = COLOR_PURPLE + burncolor = COLOR_PURPLE burn_sprite = "dynamic" properties = list( PROPERTY_INTENSITY = BURN_LEVEL_TIER_2, @@ -807,7 +838,7 @@ id = "chlorine trifluoride" description = "A highly reactive interhalogen compound capaple of self ignition. A very strong oxidizer and is extremely reactive with most organic and inorganic materials." reagent_state = LIQUID - color = "#00FFFF" + color = COLOR_CYAN custom_metabolism = 100 chemfiresupp = TRUE burncolor = "#ff9300" @@ -874,7 +905,7 @@ id = "nitroglycerin" description = "Nitroglycerin is a heavy, colorless, oily, explosive liquid obtained by nitrating glycerol. Despite being a highly volatile material, it is used for many medical purposes." reagent_state = LIQUID - color = "#808080" // rgb: 128, 128, 128 + color = COLOR_GRAY custom_metabolism = AMOUNT_PER_TIME(1, 200 SECONDS) explosive = TRUE power = 1 diff --git a/code/modules/reagents/chemistry_reagents/toxin.dm b/code/modules/reagents/chemistry_reagents/toxin.dm index d9be565a85b2..53ccb53f1748 100644 --- a/code/modules/reagents/chemistry_reagents/toxin.dm +++ b/code/modules/reagents/chemistry_reagents/toxin.dm @@ -115,7 +115,8 @@ M.status_flags |= FAKEDEATH ADD_TRAIT(M, TRAIT_IMMOBILIZED, FAKEDEATH_TRAIT) M.apply_damage(0.5*REM, OXY) - M.apply_effect(2, WEAKEN) + M.KnockDown(2) + M.Stun(2) M.silent = max(M.silent, 10) /datum/reagent/toxin/zombiepowder/on_delete() @@ -204,10 +205,10 @@ id = "potassium_chloride" description = "A bitter tasting salt that can be used as a spice, but can cause cardiac arrest in larger quantities. It has for this reason been used as a component in lethal injections for many years." reagent_state = SOLID - color = "#FFFFFF" // rgb: 255,255,255 + color = COLOR_WHITE chemfiresupp = TRUE intensitymod = 0.1 - burncolor = "#800080" + burncolor = COLOR_PURPLE burncolormod = 5 overdose = 30 chemclass = CHEM_CLASS_UNCOMMON @@ -218,7 +219,7 @@ id = "potassium_chlorophoride" description = "A specific chemical based on Potassium Chloride used to stop the heart for surgery. Causes instant cardiac arrest. Not safe to eat!" reagent_state = SOLID - color = "#FFFFFF" // rgb: 255,255,255 + color = COLOR_WHITE overdose = 20 chemclass = CHEM_CLASS_UNCOMMON properties = list(PROPERTY_RELAXING = 8, PROPERTY_HYPOXEMIC = 4, PROPERTY_TOXIC = 2) @@ -260,7 +261,7 @@ name = "Formaldehyde" id = "formaldehyde" description = "Formaldehyde is a toxic organic gas that is mostly used in making resins, polymers and explosives. It is known to be a natural carcinogen." - color = "#808080" // rgb: 128, 128, 128 + color = COLOR_GRAY reagent_state = GAS chemclass = CHEM_CLASS_UNCOMMON properties = list(PROPERTY_TOXIC = 1, PROPERTY_CARCINOGENIC = 1) diff --git a/code/modules/recycling/conveyor2.dm b/code/modules/recycling/conveyor2.dm index 4c60a9e345e0..8e1390c778f6 100644 --- a/code/modules/recycling/conveyor2.dm +++ b/code/modules/recycling/conveyor2.dm @@ -101,7 +101,6 @@ // attack with item, place item on conveyor /obj/structure/machinery/conveyor/attackby(obj/item/I, mob/user) - if(isrobot(user)) return //Carn: fix for borgs dropping their modules on conveyor belts var/obj/item/grab/G = I if(istype(G)) // handle grabbed mob if(ismob(G.grabbed_thing)) diff --git a/code/modules/recycling/disposal.dm b/code/modules/recycling/disposal.dm index 88efcf7a37ba..1b8448991c6e 100644 --- a/code/modules/recycling/disposal.dm +++ b/code/modules/recycling/disposal.dm @@ -65,7 +65,7 @@ start_processing() /obj/structure/machinery/disposal/Destroy() - if(contents.len) + if(length(contents)) eject() trunk = null return ..() @@ -86,7 +86,7 @@ add_fingerprint(user) if(mode <= 0) //It's off if(HAS_TRAIT(I, TRAIT_TOOL_SCREWDRIVER)) - if(contents.len > 0) + if(length(contents) > 0) to_chat(user, SPAN_WARNING("Eject the contents first!")) return if(mode == DISPOSALS_OFF) //It's off but still not unscrewed @@ -103,7 +103,7 @@ if(!HAS_TRAIT(I, TRAIT_TOOL_BLOWTORCH)) to_chat(user, SPAN_WARNING("You need a stronger blowtorch!")) return - if(contents.len > 0) + if(length(contents) > 0) to_chat(user, SPAN_WARNING("Eject the contents first!")) return var/obj/item/tool/weldingtool/W = I @@ -172,8 +172,6 @@ return TRUE return FALSE - if(isrobot(user)) - return if(!I) return @@ -341,7 +339,7 @@ return //Check for items in disposal - occupied light - if(contents.len > 0) + if(length(contents) > 0) overlays += image('icons/obj/pipes/disposal.dmi', "dispover-full") //Charging and ready light @@ -358,7 +356,7 @@ flush_count++ if(flush_count >= flush_after_ticks) - if(contents.len) + if(length(contents)) if(mode == DISPOSALS_CHARGED) spawn(0) flush() @@ -374,7 +372,7 @@ else if(disposal_pressure >= SEND_PRESSURE) mode = DISPOSALS_CHARGED //If full enough, switch to ready mode update() - if(!contents.len) + if(!length(contents)) //Full and nothing to flush - stop processing! stop_processing() else @@ -503,10 +501,6 @@ if(istype(AM, /obj/item/smallDelivery) && !hasmob) var/obj/item/smallDelivery/T = AM destinationTag = T.sortTag - //Drones can mail themselves through maint. - if(istype(AM, /mob/living/silicon/robot/drone)) - var/mob/living/silicon/robot/drone/drone = AM - destinationTag = drone.mail_destination //Start the movement process //Argument is the disposal unit the holder started in @@ -658,7 +652,7 @@ /obj/structure/disposalpipe/proc/nextdir(fromdir) return dpdir & (~turn(fromdir, 180)) -//Transfer the holder through this pipe segment, overriden for special behaviour +//Transfer the holder through this pipe segment, overridden for special behaviour /obj/structure/disposalpipe/proc/transfer(obj/structure/disposalholder/H) var/nextdir = nextdir(H.dir) H.setDir(nextdir) @@ -1377,7 +1371,7 @@ //Expel the contents of the holder object, then delete it. Called when the holder exits the outlet /obj/structure/disposaloutlet/proc/expel(obj/structure/disposalholder/H) - flick("outlet-open", src) + flick("[icon_state]-open", src) playsound(src, 'sound/machines/warning-buzzer.ogg', 25, 0) sleep(20) //Wait until correct animation frame playsound(src, 'sound/machines/hiss.ogg', 25, 0) diff --git a/code/modules/recycling/recycler.dm b/code/modules/recycling/recycler.dm index abbf010bf4cc..b61854d2e788 100644 --- a/code/modules/recycling/recycler.dm +++ b/code/modules/recycling/recycler.dm @@ -90,7 +90,7 @@ /obj/structure/machinery/recycler/proc/output_materials() for(var/material in stored_matter) if(stored_matter[material] >= sheets_per_batch * 3750) - var/sheets = round(stored_matter[material] / 3750) + var/sheets = floor(stored_matter[material] / 3750) stored_matter[material] -= sheets * 3750 var/obj/item/stack/sheet/sheet_stack switch(material) diff --git a/code/modules/recycling/sortingmachinery.dm b/code/modules/recycling/sortingmachinery.dm index ec1c8c245f2b..dfb0ed8288b0 100644 --- a/code/modules/recycling/sortingmachinery.dm +++ b/code/modules/recycling/sortingmachinery.dm @@ -245,7 +245,7 @@ P.wrapped = O O.forceMove(P) P.w_class = O.w_class - var/i = round(P.w_class) + var/i = floor(P.w_class) if(i in list(1,2,3,4,5)) P.icon_state = "deliverycrate[i]" switch(i) @@ -337,7 +337,7 @@ var/dat = "

              TagMaster 2.3

              " dat += "" - for(var/i = 1, i <= GLOB.tagger_locations.len, i++) + for(var/i = 1, i <= length(GLOB.tagger_locations), i++) dat += "" if (i%4==0) diff --git a/code/modules/shuttle/computer.dm b/code/modules/shuttle/computer.dm index 79377d9c0849..00dcd987f089 100644 --- a/code/modules/shuttle/computer.dm +++ b/code/modules/shuttle/computer.dm @@ -81,8 +81,8 @@ to_chat(usr, SPAN_NOTICE("Unable to comply.")) return TRUE -/obj/structure/machinery/computer/shuttle/connect_to_shuttle(obj/docking_port/mobile/port, obj/docking_port/stationary/dock, idnum, override=FALSE) - if(port && (shuttleId == initial(shuttleId) || override)) +/obj/structure/machinery/computer/shuttle/connect_to_shuttle(mapload, obj/docking_port/mobile/port, obj/docking_port/stationary/dock) + if(port && (shuttleId == initial(shuttleId))) shuttleId = port.id /obj/structure/machinery/computer/shuttle/ert @@ -96,6 +96,15 @@ var/disabled = FALSE var/compatible_landing_zones = list() + /// this interface is busy - used in [/obj/structure/machinery/computer/shuttle/ert/proc/launch_home] as this can take a second + var/spooling + + /// if this shuttle only has the option to return home + var/must_launch_home = FALSE + + /// if the ERT that used this shuttle has returned home + var/mission_accomplished = FALSE + /obj/structure/machinery/computer/shuttle/ert/broken name = "nonfunctional shuttle control console" disabled = TRUE @@ -108,8 +117,48 @@ /obj/structure/machinery/computer/shuttle/ert/proc/get_landing_zones() . = list() for(var/obj/docking_port/stationary/emergency_response/dock in SSshuttle.stationary) - if(!dock.is_external) - . += list(dock) + if(!is_mainship_level(dock.z)) + continue + + if(dock.is_external) + continue + + . += list(dock) + +/obj/structure/machinery/computer/shuttle/ert/proc/launch_home() + if(spooling) + return + + var/obj/docking_port/mobile/emergency_response/ert = SSshuttle.getShuttle(shuttleId) + + spooling = TRUE + SStgui.update_uis(src) + + var/datum/turf_reservation/loaded = SSmapping.lazy_load_template(ert.distress_beacon.home_base, force = TRUE) + var/turf/bottom_left = loaded.bottom_left_turfs[1] + var/turf/top_right = loaded.top_right_turfs[1] + + var/obj/docking_port/stationary/emergency_response/target + for(var/obj/docking_port/stationary/emergency_response/shuttle in SSshuttle.stationary) + if(shuttle.z != bottom_left.z) + continue + if(shuttle.x >= top_right.x || shuttle.y >= top_right.y) + continue + if(shuttle.x <= bottom_left.x || shuttle.y <= bottom_left.y) + continue + + target = shuttle + break + + if(!target) + spooling = FALSE + return + + SSshuttle.moveShuttleToDock(ert, target, TRUE) + target.lockdown_on_land = TRUE + + spooling = FALSE + must_launch_home = FALSE /obj/structure/machinery/computer/shuttle/ert/is_disabled() @@ -122,10 +171,25 @@ disabled = FALSE /obj/structure/machinery/computer/shuttle/ert/tgui_interact(mob/user, datum/tgui/ui) + var/obj/docking_port/mobile/emergency_response/ert = SSshuttle.getShuttle(shuttleId) + + if(ert.distress_beacon && ishuman(user)) + var/mob/living/carbon/human/human_user = user + var/obj/item/card/id/id = human_user.get_active_hand() + if(!istype(id)) + id = human_user.get_inactive_hand() + + if(!istype(id)) + id = human_user.get_idcard() + + if(!id || !HAS_TRAIT_FROM_ONLY(id, TRAIT_ERT_ID, ert.distress_beacon)) + to_chat(user, SPAN_WARNING("Your ID is not authorized to interact with this terminal.")) + balloon_alert(user, "unauthorized!") + return + ui = SStgui.try_update_ui(user, src, ui) if (!ui) - var/obj/docking_port/mobile/shuttle = SSshuttle.getShuttle(shuttleId) - ui = new(user, src, "NavigationShuttle", "[shuttle.name] Navigation Computer") + ui = new(user, src, "NavigationShuttle", "[ert.name] Navigation Computer") ui.open() @@ -154,6 +218,9 @@ .["shuttle_mode"] = ert.mode .["flight_time"] = ert.timeLeft(0) .["is_disabled"] = disabled + .["spooling"] = spooling + .["must_launch_home"] = must_launch_home + .["mission_accomplished"] = mission_accomplished var/door_count = length(ert.external_doors) var/locked_count = 0 @@ -188,7 +255,31 @@ return var/obj/docking_port/mobile/emergency_response/ert = SSshuttle.getShuttle(shuttleId) + switch(action) + if("button-push") + playsound(loc, get_sfx("terminal_button"), KEYBOARD_SOUND_VOLUME, 1) + return FALSE + if("open") + if(ert.mode == SHUTTLE_CALL || ert.mode == SHUTTLE_RECALL) + return TRUE + ert.control_doors("open", external_only = TRUE) + if("close") + if(ert.mode == SHUTTLE_CALL || ert.mode == SHUTTLE_RECALL) + return TRUE + ert.control_doors("close", external_only = TRUE) + if("lockdown") + if(ert.mode == SHUTTLE_CALL || ert.mode == SHUTTLE_RECALL) + return TRUE + ert.control_doors("force-lock", external_only = TRUE) + if("lock") + if(ert.mode == SHUTTLE_CALL || ert.mode == SHUTTLE_RECALL) + return TRUE + ert.control_doors("lock", external_only = TRUE) + if("unlock") + if(ert.mode == SHUTTLE_CALL || ert.mode == SHUTTLE_RECALL) + return TRUE + ert.control_doors("unlock", external_only = TRUE) if("move") if(ert.mode != SHUTTLE_IDLE) to_chat(usr, SPAN_WARNING("You can't move to a new destination whilst in transit.")) @@ -217,29 +308,17 @@ SSshuttle.moveShuttle(ert.id, dock.id, TRUE) to_chat(usr, SPAN_NOTICE("You begin the launch sequence to [dock].")) return TRUE - if("button-push") - playsound(loc, get_sfx("terminal_button"), KEYBOARD_SOUND_VOLUME, 1) - return FALSE - if("open") - if(ert.mode == SHUTTLE_CALL || ert.mode == SHUTTLE_RECALL) - return TRUE - ert.control_doors("open", external_only = TRUE) - if("close") - if(ert.mode == SHUTTLE_CALL || ert.mode == SHUTTLE_RECALL) - return TRUE - ert.control_doors("close", external_only = TRUE) - if("lockdown") - if(ert.mode == SHUTTLE_CALL || ert.mode == SHUTTLE_RECALL) - return TRUE - ert.control_doors("force-lock", external_only = TRUE) - if("lock") - if(ert.mode == SHUTTLE_CALL || ert.mode == SHUTTLE_RECALL) - return TRUE - ert.control_doors("lock", external_only = TRUE) - if("unlock") - if(ert.mode == SHUTTLE_CALL || ert.mode == SHUTTLE_RECALL) - return TRUE - ert.control_doors("unlock", external_only = TRUE) + if("launch_home") + if(!must_launch_home) + return + + if(ert.mode != SHUTTLE_IDLE) + to_chat(ui.user, SPAN_WARNING("Unable to return home.")) + balloon_alert(ui.user, "can't go home!") + return + + launch_home() + return TRUE /obj/structure/machinery/computer/shuttle/ert/attack_hand(mob/user) . = ..(user) @@ -257,6 +336,8 @@ /obj/structure/machinery/computer/shuttle/ert/small/get_landing_zones() . = list() for(var/obj/docking_port/stationary/emergency_response/dock in SSshuttle.stationary) + if(!is_mainship_level(dock.z)) + continue if(istype(dock, /obj/docking_port/stationary/emergency_response/external/hangar_port)) continue if(istype(dock, /obj/docking_port/stationary/emergency_response/external/hangar_starboard)) @@ -273,6 +354,8 @@ /obj/structure/machinery/computer/shuttle/ert/big/get_landing_zones() . = list() for(var/obj/docking_port/stationary/emergency_response/dock in SSshuttle.stationary) + if(!is_mainship_level(dock.z)) + continue . += list(dock) /obj/structure/machinery/computer/shuttle/lifeboat @@ -299,7 +382,13 @@ return var/mob/living/carbon/human/human_user = user - if(!(ACCESS_MARINE_SENIOR in human_user.wear_id?.access) && !(ACCESS_MARINE_DROPSHIP in human_user.wear_id?.access)) + var/obj/item/card/id/card = human_user.get_idcard() + + if(!card) + to_chat(user, SPAN_NOTICE("[src]'s screen says \"Unauthorized access. Please inform your supervisor\".")) + return + + if(!(ACCESS_MARINE_SENIOR in card.access) && !(ACCESS_MARINE_DROPSHIP in card.access)) to_chat(user, SPAN_NOTICE("[src]'s screen says \"Unauthorized access. Please inform your supervisor\".")) return @@ -357,6 +446,8 @@ lifeboat.status = LIFEBOAT_LOCKED lifeboat.available = FALSE lifeboat.set_mode(SHUTTLE_IDLE) + lifeboat.alarm_sound_loop?.stop() + lifeboat.playing_launch_announcement_alarm = FALSE var/obj/docking_port/stationary/lifeboat_dock/lifeboat_dock = lifeboat.get_docked() lifeboat_dock.open_dock() xeno_message(SPAN_XENOANNOUNCE("We have wrested away control of one of the metal birds! They shall not escape!"), 3, xeno.hivenumber) diff --git a/code/modules/shuttle/computers/dropship_computer.dm b/code/modules/shuttle/computers/dropship_computer.dm index 67d3a20d969e..08a35b83071d 100644 --- a/code/modules/shuttle/computers/dropship_computer.dm +++ b/code/modules/shuttle/computers/dropship_computer.dm @@ -84,8 +84,8 @@ recharge_duration = recharge_duration * SHUTTLE_COOLING_FACTOR_RECHARGE - dropship.callTime = round(flight_duration) - dropship.rechargeTime = round(recharge_duration) + dropship.callTime = floor(flight_duration) + dropship.rechargeTime = floor(recharge_duration) /obj/structure/machinery/computer/shuttle/dropship/flight/tgui_interact(mob/user, datum/tgui/ui) ui = SStgui.try_update_ui(user, src, ui) @@ -101,7 +101,7 @@ if(disabled) return UI_UPDATE if(!skip_time_lock && world.time < SSticker.mode.round_time_lobby + SHUTTLE_TIME_LOCK) - to_chat(user, SPAN_WARNING("The shuttle is still undergoing pre-flight fueling and cannot depart yet. Please wait another [round((SSticker.mode.round_time_lobby + SHUTTLE_TIME_LOCK-world.time)/600)] minutes before trying again.")) + to_chat(user, SPAN_WARNING("The shuttle is still undergoing pre-flight fueling and cannot depart yet. Please wait another [floor((SSticker.mode.round_time_lobby + SHUTTLE_TIME_LOCK-world.time)/600)] minutes before trying again.")) return UI_CLOSE if(dropship_control_lost) var/remaining_time = timeleft(door_control_cooldown) / 10 @@ -141,10 +141,13 @@ // if the dropship has crashed don't allow more interactions var/obj/docking_port/mobile/marine_dropship/shuttle = SSshuttle.getShuttle(shuttleId) if(shuttle.mode == SHUTTLE_CRASHED) - to_chat(user, SPAN_NOTICE("\The [src] is not responsive")) + to_chat(user, SPAN_NOTICE("[src] is unresponsive.")) return if(dropship_control_lost) + if(shuttle.is_hijacked) + to_chat(user, SPAN_WARNING("The shuttle is not responding due to an unauthorized access attempt.")) + return var/remaining_time = timeleft(door_control_cooldown) / 10 to_chat(user, SPAN_WARNING("The shuttle is not responding due to an unauthorized access attempt. In large text it says the lockout will be automatically removed in [remaining_time] seconds.")) if(!skillcheck(user, SKILL_PILOT, SKILL_PILOT_EXPERT)) @@ -168,7 +171,7 @@ override_being_removed = FALSE if(dropship_control_lost) remove_door_lock() - to_chat(user, SPAN_NOTICE("You succesfully removed the lockout!")) + to_chat(user, SPAN_NOTICE("You successfully removed the lockout!")) playsound(loc, 'sound/machines/terminal_success.ogg', KEYBOARD_SOUND_VOLUME, 1) if(!shuttle.is_hijacked) @@ -192,7 +195,7 @@ to_chat(xeno, SPAN_WARNING("The metal bird can not land here. It might be currently occupied!")) return to_chat(xeno, SPAN_NOTICE("You command the metal bird to come down. Clever girl.")) - xeno_announcement(SPAN_XENOANNOUNCE("Your Queen has commanded the metal bird to the hive at [linked_lz]."), xeno.hivenumber, XENO_GENERAL_ANNOUNCE) + xeno_announcement(SPAN_XENOANNOUNCE("Our Queen has commanded the metal bird to the hive at [linked_lz]."), xeno.hivenumber, XENO_GENERAL_ANNOUNCE) log_ares_flight("Unknown", "Remote launch signal for [shuttle.name] received. Authentication garbled.") log_ares_security("Security Alert", "Remote launch signal for [shuttle.name] received. Authentication garbled.") return @@ -211,25 +214,35 @@ /obj/structure/machinery/computer/shuttle/dropship/flight/attack_alien(mob/living/carbon/xenomorph/xeno) - if(!is_ground_level(z)) - to_chat(xeno, SPAN_NOTICE("Lights flash from the terminal but you can't comprehend their meaning.")) - playsound(loc, 'sound/machines/terminal_error.ogg', KEYBOARD_SOUND_VOLUME, 1) - return + var/obj/docking_port/mobile/marine_dropship/dropship = SSshuttle.getShuttle(shuttleId) + // If the attacking xeno isn't the queen. if(xeno.hive_pos != XENO_QUEEN) + // If the 'about to launch' alarm is playing, a xeno can whack the computer to stop it. + if(dropship.playing_launch_announcement_alarm) + stop_playing_launch_announcement_alarm() + xeno.animation_attack_on(src) + to_chat(xeno, SPAN_XENONOTICE("We slash at [src], silencing its squawking!")) + playsound(loc, 'sound/machines/terminal_shutdown.ogg', 20) + else + to_chat(xeno, SPAN_NOTICE("Lights flash from the terminal but we can't comprehend their meaning.")) + playsound(loc, 'sound/machines/terminal_error.ogg', KEYBOARD_SOUND_VOLUME, TRUE) + return XENO_NONCOMBAT_ACTION + + if(!is_ground_level(z)) + // "you" rather than "we" for this one since non-queen castes will have returned above. to_chat(xeno, SPAN_NOTICE("Lights flash from the terminal but you can't comprehend their meaning.")) - playsound(loc, 'sound/machines/terminal_error.ogg', KEYBOARD_SOUND_VOLUME, 1) - return + playsound(loc, 'sound/machines/terminal_error.ogg', KEYBOARD_SOUND_VOLUME, TRUE) + return XENO_NONCOMBAT_ACTION if(is_remote) groundside_alien_action(xeno) return - var/obj/docking_port/mobile/marine_dropship/dropship = SSshuttle.getShuttle(shuttleId) if(dropship.is_hijacked) return - // door controls being overriden + // door controls being overridden if(!dropship_control_lost) dropship.control_doors("unlock", "all", TRUE) dropship_control_lost = TRUE @@ -239,6 +252,7 @@ addtimer(CALLBACK(GLOB.almayer_orbital_cannon, TYPE_PROC_REF(/obj/structure/orbital_cannon, enable)), 10 MINUTES, TIMER_UNIQUE) if(!GLOB.resin_lz_allowed) set_lz_resin_allowed(TRUE) + stop_playing_launch_announcement_alarm() to_chat(xeno, SPAN_XENONOTICE("You override the doors.")) xeno_message(SPAN_XENOANNOUNCE("The doors of the metal bird have been overridden! Rejoice!"), 3, xeno.hivenumber) @@ -264,7 +278,6 @@ return /obj/structure/machinery/computer/shuttle/dropship/flight/proc/hijack(mob/user, force = FALSE) - // select crash location var/turf/source_turf = get_turf(src) var/obj/docking_port/mobile/marine_dropship/dropship = SSshuttle.getShuttle(shuttleId) @@ -287,9 +300,6 @@ hijack.fire() GLOB.alt_ctrl_disabled = TRUE - dropship.alarm_sound_loop.stop() - dropship.playing_launch_announcement_alarm = FALSE - marine_announcement("Unscheduled dropship departure detected from operational area. Hijack likely. Shutting down autopilot.", "Dropship Alert", 'sound/AI/hijack.ogg', logging = ARES_LOG_SECURITY) log_ares_flight("Unknown", "Unscheduled dropship departure detected from operational area. Hijack likely. Shutting down autopilot.") @@ -299,7 +309,14 @@ hivenumber = xeno.hivenumber xeno_message(SPAN_XENOANNOUNCE("The Queen has commanded the metal bird to depart for the metal hive in the sky! Rejoice!"), 3, hivenumber) xeno_message(SPAN_XENOANNOUNCE("The hive swells with power! You will now steadily gain pooled larva over time."), 2, hivenumber) - GLOB.hive_datum[hivenumber].abandon_on_hijack() + var/datum/hive_status/hive = GLOB.hive_datum[hivenumber] + hive.abandon_on_hijack() + var/original_evilution = hive.evolution_bonus + hive.override_evilution(XENO_HIJACK_EVILUTION_BUFF, TRUE) + if(hive.living_xeno_queen) + var/datum/action/xeno_action/onclick/grow_ovipositor/ovi_ability = get_xeno_action_by_type(hive.living_xeno_queen, /datum/action/xeno_action/onclick/grow_ovipositor) + ovi_ability.reduce_cooldown(ovi_ability.xeno_cooldown) + addtimer(CALLBACK(hive, TYPE_PROC_REF(/datum/hive_status, override_evilution), original_evilution, FALSE), XENO_HIJACK_EVILUTION_TIME) // Notify the yautja too so they stop the hunt message_all_yautja("The serpent Queen has commanded the landing shuttle to depart.") @@ -310,14 +327,14 @@ colonial_marines.add_current_round_status_to_end_results("Hijack") /obj/structure/machinery/computer/shuttle/dropship/flight/proc/remove_door_lock() + if(door_control_cooldown) + deltimer(door_control_cooldown) + door_control_cooldown = null var/obj/docking_port/mobile/marine_dropship/shuttle = SSshuttle.getShuttle(shuttleId) if(shuttle.is_hijacked) return playsound(loc, 'sound/machines/terminal_success.ogg', KEYBOARD_SOUND_VOLUME, 1) dropship_control_lost = FALSE - if(door_control_cooldown) - deltimer(door_control_cooldown) - door_control_cooldown = null /obj/structure/machinery/computer/shuttle/dropship/flight/ui_data(mob/user) var/obj/docking_port/mobile/marine_dropship/shuttle = SSshuttle.getShuttle(shuttleId) @@ -411,7 +428,7 @@ update_equipment(is_optimised, FALSE) var/list/local_data = ui_data(user) var/found = FALSE - playsound(loc, get_sfx("terminal_button"), KEYBOARD_SOUND_VOLUME, 1) + playsound(loc, get_sfx("terminal_button"), 5, 1) for(var/destination in local_data["destinations"]) if(destination["id"] == dock_id) found = TRUE @@ -453,7 +470,7 @@ if("set-automate") var/almayer_lz = params["hangar_id"] var/ground_lz = params["ground_id"] - var/delay = Clamp(params["delay"] SECONDS, DROPSHIP_MIN_AUTO_DELAY, DROPSHIP_MAX_AUTO_DELAY) + var/delay = clamp(params["delay"] SECONDS, DROPSHIP_MIN_AUTO_DELAY, DROPSHIP_MAX_AUTO_DELAY) // TODO verify if(almayer_lz == ground_lz) diff --git a/code/modules/shuttle/computers/escape_pod_computer.dm b/code/modules/shuttle/computers/escape_pod_computer.dm index ec523747e18d..b72d9fef5110 100644 --- a/code/modules/shuttle/computers/escape_pod_computer.dm +++ b/code/modules/shuttle/computers/escape_pod_computer.dm @@ -22,6 +22,9 @@ /obj/structure/machinery/computer/shuttle/escape_pod_panel/attack_hand(mob/user) if(..()) return + if(!allowed(user)) + to_chat(user, SPAN_WARNING("Access denied!")) + return tgui_interact(user) /obj/structure/machinery/computer/shuttle/escape_pod_panel/tgui_interact(mob/user, datum/tgui/ui) @@ -55,7 +58,7 @@ .["docking_status"] = STATE_LAUNCHED var/obj/structure/machinery/door/door = shuttle.door_handler.doors[1] .["door_state"] = door.density - .["door_lock"] = shuttle.door_handler.is_locked + .["door_lock"] = shuttle.door_handler.status == SHUTTLE_DOOR_LOCKED .["can_delay"] = TRUE//launch_status[2] .["launch_without_evac"] = launch_without_evac @@ -86,6 +89,7 @@ . = TRUE /obj/structure/machinery/computer/shuttle/escape_pod_panel/liaison + req_access = list(ACCESS_WY_GENERAL) launch_without_evac = TRUE //========================================================================================= @@ -97,14 +101,19 @@ unslashable = TRUE unacidable = TRUE time_till_despawn = 6000000 //near infinite so despawn never occurs. + /// The name of the mob who injected the occupant into the pod. If it does not match the occupant, the occupant can leave. + var/injector_name var/being_forced = 0 //Simple variable to prevent sound spam. var/dock_state = STATE_IDLE /obj/structure/machinery/cryopod/evacuation/ex_act(severity) return FALSE -/obj/structure/machinery/cryopod/evacuation/attackby(obj/item/grab/G, mob/user) - if(istype(G)) +/obj/structure/machinery/cryopod/evacuation/attackby(obj/item/grab/the_grab, mob/user) + if(istype(the_grab)) + if(user.is_mob_incapacitated() || !(ishuman(user))) + return FALSE + if(being_forced) to_chat(user, SPAN_WARNING("There's something forcing it open!")) return FALSE @@ -117,16 +126,20 @@ to_chat(user, SPAN_WARNING("The cryo pod is not responding to commands!")) return FALSE - var/mob/living/carbon/human/M = G.grabbed_thing - if(!istype(M)) + var/mob/living/carbon/human/grabbed_mob = the_grab.grabbed_thing + if(!istype(grabbed_mob)) + return FALSE + if(grabbed_mob.stat == DEAD) //This mob is dead + to_chat(user, SPAN_WARNING("[src] immediately rejects [grabbed_mob]. \He passed away!")) return FALSE - visible_message(SPAN_WARNING("[user] starts putting [M.name] into the cryo pod."), null, null, 3) + visible_message(SPAN_WARNING("[user] starts putting [grabbed_mob.name] into the cryo pod."), null, null, 3) if(do_after(user, 20, INTERRUPT_ALL, BUSY_ICON_GENERIC)) - if(!M || !G || !G.grabbed_thing || !G.grabbed_thing.loc || G.grabbed_thing != M) + if(!grabbed_mob || !the_grab || !the_grab.grabbed_thing || !the_grab.grabbed_thing.loc || the_grab.grabbed_thing != grabbed_mob) return FALSE - move_mob_inside(M) + move_mob_inside(grabbed_mob) + injector_name = user.real_name /obj/structure/machinery/cryopod/evacuation/eject() set name = "Eject Pod" @@ -136,17 +149,24 @@ if(!occupant || !usr.stat || usr.is_mob_restrained()) return FALSE - if(occupant) //Once you're in, you cannot exit, and outside forces cannot eject you. - //The occupant is actually automatically ejected once the evac is canceled. - if(occupant != usr) to_chat(usr, SPAN_WARNING("You are unable to eject the occupant unless the evacuation is canceled.")) - add_fingerprint(usr) + //Once you're in, you cannot exit, and outside forces cannot eject you. + //The occupant is actually automatically ejected once the evac is canceled. + if(occupant != usr) + to_chat(usr, SPAN_WARNING("You are unable to eject the occupant unless the evacuation is canceled.")) + return FALSE + if(occupant.real_name != injector_name) + go_out() + else + to_chat(usr, SPAN_WARNING("You are unable to leave the [src] until evacuation completes, or is cancelled!.")) + return FALSE /obj/structure/machinery/cryopod/evacuation/go_out() //When the system ejects the occupant. if(occupant) occupant.forceMove(get_turf(src)) occupant.in_stasis = FALSE occupant = null + injector_name = null icon_state = orient_right ? "body_scanner_open-r" : "body_scanner_open" /obj/structure/machinery/cryopod/evacuation/move_inside() @@ -176,6 +196,7 @@ if(do_after(user, 20, INTERRUPT_NO_NEEDHAND, BUSY_ICON_GENERIC)) user.stop_pulling() move_mob_inside(user) + injector_name = user.real_name /obj/structure/machinery/cryopod/evacuation/attack_alien(mob/living/carbon/xenomorph/user) if(being_forced) @@ -221,7 +242,7 @@ /obj/structure/machinery/door/airlock/evacuation/Destroy() if(linked_shuttle) - linked_shuttle.mode = SHUTTLE_CRASHED + linked_shuttle.set_mode(SHUTTLE_CRASHED) linked_shuttle.door_handler.doors -= list(src) . = ..() diff --git a/code/modules/shuttle/docking.dm b/code/modules/shuttle/docking.dm index a21ec330d4c9..df89ee5bdf42 100644 --- a/code/modules/shuttle/docking.dm +++ b/code/modules/shuttle/docking.dm @@ -1,7 +1,5 @@ /// This is the main proc. It instantly moves our mobile port to stationary port `new_dock`. /obj/docking_port/mobile/proc/initiate_docking(obj/docking_port/stationary/new_dock, movement_direction, force=FALSE) - // Crashing this ship with NO SURVIVORS - if(new_dock.get_docked() == src) remove_ripples() return DOCKING_SUCCESS @@ -43,7 +41,7 @@ rotation = dir2angle(new_dock.dir)-dir2angle(dir) if ((rotation % 90) != 0) rotation += (rotation % 90) //diagonal rotations not allowed, round up - rotation = SIMPLIFY_DEGREES(rotation) + rotation %%= 360 if(!movement_direction) movement_direction = turn(preferred_direction, 180) @@ -66,7 +64,7 @@ var/list/new_hidden_turfs if(hidden) new_hidden_turfs = list() - for(var/i in 1 to old_turfs.len) + for(var/i in 1 to length(old_turfs)) CHECK_TICK var/turf/oldT = old_turfs[i] if(old_turfs[oldT] & MOVE_TURF) @@ -137,7 +135,7 @@ old_turfs[oldT] = move_mode /obj/docking_port/mobile/proc/takeoff(list/old_turfs, list/new_turfs, list/moved_atoms, rotation, movement_direction, old_dock, area/underlying_old_area) - for(var/i in 1 to old_turfs.len) + for(var/i in 1 to length(old_turfs)) var/turf/oldT = old_turfs[i] var/turf/newT = new_turfs[i] var/move_mode = old_turfs[oldT] @@ -164,12 +162,12 @@ var/new_parallax_dir = FALSE if(istype(new_dock, /obj/docking_port/stationary/transit)) new_parallax_dir = preferred_direction - for(var/i in 1 to areas_to_move.len) + for(var/i in 1 to length(areas_to_move)) CHECK_TICK var/area/internal_area = areas_to_move[i] internal_area.afterShuttleMove(new_parallax_dir) //areas - for(var/i in 1 to old_turfs.len) + for(var/i in 1 to length(old_turfs)) CHECK_TICK if(!(old_turfs[old_turfs[i]] & MOVE_TURF)) continue @@ -177,7 +175,7 @@ var/turf/newT = new_turfs[i] newT.afterShuttleMove(oldT, rotation) //turfs - for(var/i in 1 to moved_atoms.len) + for(var/i in 1 to length(moved_atoms)) CHECK_TICK var/atom/movable/moved_object = moved_atoms[i] if(QDELETED(moved_object)) @@ -189,12 +187,12 @@ underlying_old_area.lateShuttleMove() - for(var/i in 1 to areas_to_move.len) + for(var/i in 1 to length(areas_to_move)) CHECK_TICK var/area/internal_area = areas_to_move[i] internal_area.lateShuttleMove() - for(var/i in 1 to old_turfs.len) + for(var/i in 1 to length(old_turfs)) CHECK_TICK if(!(old_turfs[old_turfs[i]] & MOVE_CONTENTS | MOVE_TURF)) continue @@ -202,7 +200,7 @@ var/turf/newT = new_turfs[i] newT.lateShuttleMove(oldT) - for(var/i in 1 to moved_atoms.len) + for(var/i in 1 to length(moved_atoms)) CHECK_TICK var/atom/movable/moved_object = moved_atoms[i] if(QDELETED(moved_object)) diff --git a/code/modules/shuttle/dropship_hijack.dm b/code/modules/shuttle/dropship_hijack.dm index 809601c815f2..73150f5bfc08 100644 --- a/code/modules/shuttle/dropship_hijack.dm +++ b/code/modules/shuttle/dropship_hijack.dm @@ -50,17 +50,8 @@ // Break the ultra-reinforced windows. // Break the briefing windows. - for(var/i in GLOB.hijack_bustable_windows) - var/obj/structure/window/H = i - H.deconstruct(FALSE) - - for(var/k in GLOB.hijack_bustable_ladders) - var/obj/structure/ladder/fragile_almayer/L = k - L.deconstruct() - - // Delete the briefing door(s). - for(var/D in GLOB.hijack_deletable_windows) - qdel(D) + SEND_GLOBAL_SIGNAL(COMSIG_GLOB_HIJACK_IMPACTED) + RegisterSignal(SSdcs, COMSIG_GLOB_HIJACK_LANDED, PROC_REF(finish_landing)) // Sleep while the explosions do their job var/explosion_alive = TRUE @@ -72,6 +63,7 @@ break sleep(10) +/datum/dropship_hijack/almayer/proc/finish_landing() SShijack.announce_status_on_crash() SSticker.hijack_ocurred() @@ -184,13 +176,14 @@ turfs += get_area_turfs(/area/almayer/shipboard/brig/cic_hallway) turfs += get_area_turfs(/area/almayer/shipboard/brig/cryo) turfs += get_area_turfs(/area/almayer/shipboard/brig/evidence_storage) - turfs += get_area_turfs(/area/almayer/shipboard/brig/execution) turfs += get_area_turfs(/area/almayer/shipboard/brig/general_equipment) turfs += get_area_turfs(/area/almayer/shipboard/brig/lobby) - turfs += get_area_turfs(/area/almayer/shipboard/brig/main_office) + turfs += get_area_turfs(/area/almayer/shipboard/brig/starboard_hallway) turfs += get_area_turfs(/area/almayer/shipboard/brig/perma) turfs += get_area_turfs(/area/almayer/shipboard/brig/processing) - turfs += get_area_turfs(/area/almayer/shipboard/brig/surgery) + turfs += get_area_turfs(/area/almayer/shipboard/brig/medical) + turfs += get_area_turfs(/area/almayer/shipboard/brig/mp_bunks) + turfs += get_area_turfs(/area/almayer/shipboard/brig/chief_mp_office) turfs += get_area_turfs(/area/almayer/command/cichallway) turfs += get_area_turfs(/area/almayer/command/cic) if("Upper deck Midship") @@ -199,14 +192,13 @@ turfs += get_area_turfs(/area/almayer/medical/containment) turfs += get_area_turfs(/area/almayer/medical/containment/cell) turfs += get_area_turfs(/area/almayer/medical/medical_science) - turfs += get_area_turfs(/area/almayer/medical/testlab) turfs += get_area_turfs(/area/almayer/medical/hydroponics) if("Upper deck Aftship") turfs += get_area_turfs(/area/almayer/engineering/upper_engineering) turfs += get_area_turfs(/area/almayer/engineering/laundry) if("Lower deck Foreship") turfs += get_area_turfs(/area/almayer/hallways/hangar) - turfs += get_area_turfs(/area/almayer/hallways/vehiclehangar) + turfs += get_area_turfs(/area/almayer/hallways/lower/vehiclehangar) if("Lower deck Midship") turfs += get_area_turfs(/area/almayer/medical/chemistry) turfs += get_area_turfs(/area/almayer/medical/lower_medical_lobby) @@ -220,7 +212,7 @@ turfs += get_area_turfs(/area/almayer/squads/req) if("Lower deck Aftship") turfs += get_area_turfs(/area/almayer/living/cryo_cells) - turfs += get_area_turfs(/area/almayer/engineering/engineering_workshop) + turfs += get_area_turfs(/area/almayer/engineering/lower/workshop) else CRASH("Crash site [ship_section] unknown.") return pick(turfs) diff --git a/code/modules/shuttle/helpers.dm b/code/modules/shuttle/helpers.dm index 6ab5d88da1b7..9c8d817ec237 100644 --- a/code/modules/shuttle/helpers.dm +++ b/code/modules/shuttle/helpers.dm @@ -19,7 +19,7 @@ if(!door_controllers[direction]) var/datum/door_controller/single/new_controller = new() new_controller.label = label - new_controller.is_locked = FALSE + new_controller.status = SHUTTLE_DOOR_UNLOCKED door_controllers[direction] = new_controller var/datum/door_controller/single/controller = door_controllers[direction] @@ -29,12 +29,12 @@ if(direction == "all") for(var/i in door_controllers) var/datum/door_controller/single/control = door_controllers[i] - if(!control.is_locked) + if(control.status != SHUTTLE_DOOR_LOCKED) return FALSE return TRUE if(door_controllers[direction]) var/datum/door_controller/single/single_controller = door_controllers[direction] - return single_controller.is_locked + return single_controller.status == SHUTTLE_DOOR_LOCKED else WARNING("Direction [direction] does not exist.") return FALSE @@ -60,9 +60,9 @@ for(var/direction in door_controllers) var/datum/door_controller/single/controller = door_controllers[direction] - var/list/door_data = list("id" = direction, "value" = controller.is_locked) + var/list/door_data = list("id" = direction, "value" = controller.status) . += list(door_data) - if(!controller.is_locked) + if(controller.status == SHUTTLE_DOOR_UNLOCKED) all_locked = FALSE var/list/door_data = list("id" = "all", "value" = all_locked) @@ -74,7 +74,7 @@ /datum/door_controller/single var/label = "dropship" var/list/doors = list() - var/is_locked = FALSE + var/status = SHUTTLE_DOOR_UNLOCKED /datum/door_controller/single/Destroy(force, ...) . = ..() @@ -93,23 +93,29 @@ if("close") INVOKE_ASYNC(door, TYPE_PROC_REF(/obj/structure/machinery/door/airlock, close)) if("force-lock") + if (status == SHUTTLE_DOOR_BROKEN) + continue INVOKE_ASYNC(src, PROC_REF(lockdown_door), door) - is_locked = TRUE + status = SHUTTLE_DOOR_LOCKED if("lock") INVOKE_ASYNC(door, TYPE_PROC_REF(/obj/structure/machinery/door/airlock, lock)) - is_locked = TRUE + if (status != SHUTTLE_DOOR_BROKEN) + status = SHUTTLE_DOOR_LOCKED if("unlock") INVOKE_ASYNC(door, TYPE_PROC_REF(/obj/structure/machinery/door/airlock, unlock)) - is_locked = FALSE + if (status != SHUTTLE_DOOR_BROKEN) + status = SHUTTLE_DOOR_UNLOCKED if("force-lock-launch") if(asynchronous) INVOKE_ASYNC(src, PROC_REF(lockdown_door_launch), door) else lockdown_door_launch(door) - is_locked = TRUE + if (status != SHUTTLE_DOOR_BROKEN) + status = SHUTTLE_DOOR_LOCKED if("force-unlock") INVOKE_ASYNC(src, PROC_REF(force_lock_open_door), door) - is_locked = FALSE + if (status != SHUTTLE_DOOR_BROKEN) + status = SHUTTLE_DOOR_UNLOCKED else CRASH("Unknown door command [action]") @@ -124,14 +130,13 @@ lockdown_door(air) /datum/door_controller/single/proc/bump_at_turf(turf/door_turf) - for(var/mob/blocking_mob in door_turf) - if(isliving(blocking_mob)) - to_chat(blocking_mob, SPAN_HIGHDANGER("You get thrown back as the [label] doors slam shut!")) - blocking_mob.apply_effect(4, WEAKEN) - for(var/turf/target_turf in orange(1, door_turf)) // Forcemove to a non shuttle turf - if(!istype(target_turf, /turf/open/shuttle) && !istype(target_turf, /turf/closed/shuttle)) - blocking_mob.forceMove(target_turf) - break + for(var/mob/living/blocking_mob in door_turf) + to_chat(blocking_mob, SPAN_HIGHDANGER("You get thrown back as the [label] doors slam shut!")) + blocking_mob.KnockDown(4) + for(var/turf/target_turf in orange(1, door_turf)) // Forcemove to a non shuttle turf + if(!istype(target_turf, /turf/open/shuttle) && !istype(target_turf, /turf/closed/shuttle)) + blocking_mob.forceMove(target_turf) + break /datum/door_controller/proc/lockdown_door(obj/structure/machinery/door/target) if(istype(target, /obj/structure/machinery/door/airlock)) diff --git a/code/modules/shuttle/on_move.dm b/code/modules/shuttle/on_move.dm index 5fe3a7989898..934e3c353618 100644 --- a/code/modules/shuttle/on_move.dm +++ b/code/modules/shuttle/on_move.dm @@ -64,7 +64,7 @@ All ShuttleMove procs go here var/shuttle_boundary = baseturfs.Find(/turf/baseturf_skipover/shuttle) if(!shuttle_boundary) CRASH("A turf queued to move via shuttle somehow had no skipover in baseturfs. [src]([type]):[loc]") - var/depth = baseturfs.len - shuttle_boundary + 1 + var/depth = length(baseturfs) - shuttle_boundary + 1 newT.CopyOnTop(src, 1, depth, TRUE) return TRUE @@ -76,7 +76,7 @@ All ShuttleMove procs go here var/shuttle_boundary = baseturfs.Find(/turf/baseturf_skipover/shuttle) if(shuttle_boundary) - oldT.ScrapeAway(baseturfs.len - shuttle_boundary + 1) + oldT.ScrapeAway(length(baseturfs) - shuttle_boundary + 1) if(rotation) shuttleRotate(rotation) //see shuttle_rotate.dm @@ -184,11 +184,6 @@ All ShuttleMove procs go here . = ..() if(. & MOVE_AREA) . |= MOVE_CONTENTS - GLOB.cameranet.removeCamera(src) - -/obj/structure/machinery/camera/afterShuttleMove(turf/oldT, list/movement_force, shuttle_dir, shuttle_preferred_direction, move_dir, rotation) - . = ..() - GLOB.cameranet.addCamera(src) /obj/structure/machinery/atmospherics/pipe/afterShuttleMove(turf/oldT, list/movement_force, shuttle_dir, shuttle_preferred_direction, move_dir, rotation) . = ..() diff --git a/code/modules/shuttle/shuttle.dm b/code/modules/shuttle/shuttle.dm index 85fc38bf5f1b..4a990ea7d1ae 100644 --- a/code/modules/shuttle/shuttle.dm +++ b/code/modules/shuttle/shuttle.dm @@ -19,6 +19,8 @@ * port can be used in these places, or the docking port is compatible, etc. */ var/id + ///The original template shuttle_id for this shuttle (so without a suffix identifier) + var/template_id ///Possible destinations var/port_destinations ///this should point -away- from the dockingport door, ie towards the ship @@ -105,9 +107,7 @@ ///returns turfs within our projected rectangle in no particular order /obj/docking_port/proc/return_turfs() var/list/L = return_coords() - var/turf/T0 = locate(L[1],L[2],z) - var/turf/T1 = locate(L[3],L[4],z) - return block(T0,T1) + return block(L[1], L[2], z, L[3], L[4], z) /obj/docking_port/proc/return_center_turf() var/list/L = return_coords() @@ -123,8 +123,8 @@ if(EAST) cos = 0 sin = -1 - var/_x = L[1] + (round(width/2))*cos - (round(height/2))*sin - var/_y = L[2] + (round(width/2))*sin + (round(height/2))*cos + var/_x = L[1] + (floor(width/2))*cos - (floor(height/2))*sin + var/_y = L[2] + (floor(width/2))*sin + (floor(height/2))*cos return locate(_x, _y, z) //returns turfs within our projected rectangle in a specific order. @@ -159,9 +159,7 @@ //Debug proc used to highlight bounding area /obj/docking_port/proc/highlight(_color) var/list/L = return_coords() - var/turf/T0 = locate(L[1],L[2],z) - var/turf/T1 = locate(L[3],L[4],z) - for(var/turf/T in block(T0,T1)) + for(var/turf/T as anything in block(L[1], L[2], z, L[3], L[4], z)) T.color = _color T.maptext = null if(_color) @@ -380,10 +378,82 @@ var/shuttle_flags = NONE +#define WORLDMAXX_CUTOFF (world.maxx + 1) +#define WORLDMAXY_CUTOFF (world.maxx + 1) +/** + * Calculated and populates the information used for docking and some internal vars. + * This can also be used to calculate from shuttle_areas so that you can expand/shrink shuttles! + * + * Arguments: + * * loading_from - The template that the shuttle was loaded from, if not given we iterate shuttle_areas to calculate information instead + */ +/obj/docking_port/mobile/proc/calculate_docking_port_information(datum/map_template/shuttle/loading_from) + var/port_x_offset = loading_from?.port_x_offset + var/port_y_offset = loading_from?.port_y_offset + var/width = loading_from?.width + var/height = loading_from?.height + if(!loading_from) + if(!length(shuttle_areas)) + CRASH("Attempted to calculate a docking port's information without a template before it was assigned any areas!") + // no template given, use shuttle_areas to calculate width and height + var/min_x = -1 + var/min_y = -1 + var/max_x = WORLDMAXX_CUTOFF + var/max_y = WORLDMAXY_CUTOFF + for(var/area/area as anything in shuttle_areas) + for(var/turf/turf in area) + min_x = max(turf.x, min_x) + max_x = min(turf.x, max_x) + min_y = max(turf.y, min_y) + max_y = min(turf.y, max_y) + CHECK_TICK + + if(min_x == -1 || max_x == WORLDMAXX_CUTOFF) + CRASH("Failed to locate shuttle boundaries when iterating through shuttle areas, somehow.") + if(min_y == -1 || max_y == WORLDMAXY_CUTOFF) + CRASH("Failed to locate shuttle boundaries when iterating through shuttle areas, somehow.") + + width = (max_x - min_x) + 1 + height = (max_y - min_y) + 1 + port_x_offset = min_x - x + port_y_offset = min_y - y + + if(dir in list(EAST, WEST)) + src.width = height + src.height = width + else + src.width = width + src.height = height + + switch(dir) + if(NORTH) + dwidth = port_x_offset - 1 + dheight = port_y_offset - 1 + if(EAST) + dwidth = height - port_y_offset + dheight = port_x_offset - 1 + if(SOUTH) + dwidth = width - port_x_offset + dheight = height - port_y_offset + if(WEST) + dwidth = port_y_offset - 1 + dheight = width - port_x_offset +#undef WORLDMAXX_CUTOFF +#undef WORLDMAXY_CUTOFF + /obj/docking_port/mobile/register() . = ..() SSshuttle.mobile += src +/** + * Actions to be taken after shuttle is loaded and has been moved to its final location + * + * Arguments: + * * replace - TRUE if this shuttle is replacing an existing one. FALSE by default. + */ +/obj/docking_port/mobile/proc/postregister(replace = FALSE) + return + /obj/docking_port/mobile/Destroy(force) if(force) QDEL_NULL(alarm_sound_loop) @@ -399,13 +469,13 @@ . = ..() if(!id) - id = "[SSshuttle.mobile.len]" + id = "[length(SSshuttle.mobile)]" if(name == "shuttle") - name = "shuttle[SSshuttle.mobile.len]" + name = "shuttle[length(SSshuttle.mobile)]" shuttle_areas = list() var/list/all_turfs = return_ordered_turfs(x, y, z, dir) - for(var/i in 1 to all_turfs.len) + for(var/i in 1 to length(all_turfs)) var/turf/curT = all_turfs[i] var/area/cur_area = get_area(curT) if(istype(cur_area, area_type)) @@ -442,6 +512,10 @@ // Called after the shuttle is loaded from template /obj/docking_port/mobile/proc/linkup(datum/map_template/shuttle/template, obj/docking_port/stationary/dock) + + // ================== CM Change ================== + // This is gone in /tg/ backend but kept for historical reasons + // Suspect this is supposed to be handled in register var/list/static/shuttle_id = list() var/idnum = ++shuttle_id[id] if(idnum > 1) @@ -449,12 +523,13 @@ id = "[id][idnum]" if(name == initial(name)) name = "[name] [idnum]" - for(var/place in shuttle_areas) - var/area/area = place - area.connect_to_shuttle(src, dock, idnum, FALSE) - for(var/each in place) - var/atom/atom = each - atom.connect_to_shuttle(src, dock, idnum, FALSE) + template_id = template.shuttle_id // Value without the idnum + // ================ END CM Change ================ + + for(var/area/place as anything in shuttle_areas) + place.connect_to_shuttle(TRUE, src, dock) + for(var/atom/individual_atoms in place) + individual_atoms.connect_to_shuttle(TRUE, src, dock) //this is a hook for custom behaviour. Maybe at some point we could add checks to see if engines are intact @@ -618,7 +693,7 @@ if(!underlying_area) underlying_area = new underlying_area_type(null) - for(var/i in 1 to old_turfs.len) + for(var/i in 1 to length(old_turfs)) var/turf/oldT = old_turfs[i] if(!oldT || !istype(oldT.loc, area_type)) continue @@ -631,7 +706,7 @@ var/list/baseturf_cache = oldT.baseturfs for(var/k in 1 to length(baseturf_cache)) if(ispath(baseturf_cache[k], /turf/baseturf_skipover/shuttle)) - oldT.ScrapeAway(baseturf_cache.len - k + 1) + oldT.ScrapeAway(length(baseturf_cache) - k + 1) break qdel(src, force=TRUE) @@ -670,7 +745,7 @@ var/list/ripple_turfs = list() - for(var/i in 1 to L0.len) + for(var/i in 1 to length(L0)) var/turf/T0 = L0[i] var/turf/T1 = L1[i] if(!T0 || !T1) @@ -716,6 +791,10 @@ else if(error) setTimer(20) return + if(mode == SHUTTLE_CRASHED) + destination = null + timer = 0 + return if(rechargeTime) set_mode(SHUTTLE_RECHARGING) destination = null @@ -734,11 +813,13 @@ setTimer(callTime * engine_coeff()) enterTransit() return + if(SHUTTLE_CRASHED) + return set_idle() /obj/docking_port/mobile/proc/check_effects() - if(!ripples.len) + if(!length(ripples)) if((mode == SHUTTLE_PREARRIVAL)) var/tl = timeLeft(1) if(tl <= SHUTTLE_RIPPLE_TIME) @@ -1004,3 +1085,15 @@ to_chat(user, SPAN_WARNING("Shuttle already in transit.")) return FALSE return TRUE + +/obj/docking_port/mobile/proc/get_transit_path_type() + . = /turf/open/space/transit + switch(preferred_direction) + if(NORTH) + return /turf/open/space/transit/north + if(SOUTH) + return /turf/open/space/transit/south + if(EAST) + return /turf/open/space/transit/east + if(WEST) + return /turf/open/space/transit/west diff --git a/code/modules/shuttle/shuttle_rotate.dm b/code/modules/shuttle/shuttle_rotate.dm index e8e93a040889..b78ea85c7c3c 100644 --- a/code/modules/shuttle/shuttle_rotate.dm +++ b/code/modules/shuttle/shuttle_rotate.dm @@ -25,6 +25,14 @@ If ever any of these procs are useful for non-shuttles, rename it to proc/rotate pixel_x = oldPY pixel_y = (oldPX*(-1)) + +/* ***********************************Object rotate procs*********************************** */ + +/obj/vehicle/multitile/shuttleRotate(rotation, params) + params &= ~ROTATE_OFFSET + return ..() + + /* ***********************************Turf rotate procs*********************************** */ /turf/closed/mineral/shuttleRotate(rotation, params) diff --git a/code/modules/shuttle/shuttles/crashable/escape_shuttle.dm b/code/modules/shuttle/shuttles/crashable/escape_shuttle.dm index 1f0a8fd502cf..c2c6b818b37b 100644 --- a/code/modules/shuttle/shuttles/crashable/escape_shuttle.dm +++ b/code/modules/shuttle/shuttles/crashable/escape_shuttle.dm @@ -73,6 +73,8 @@ for(var/mob/living/occupant in interior_area) occupant_count++ for(var/obj/structure/machinery/cryopod/evacuation/cryotube in interior_area) + if(cryotube.occupant) + occupant_count++ cryos += list(cryotube) if (occupant_count > max_capacity) playsound(src,'sound/effects/escape_pod_warmup.ogg', 50, 1) diff --git a/code/modules/shuttle/shuttles/crashable/lifeboats.dm b/code/modules/shuttle/shuttles/crashable/lifeboats.dm index 415a628be6e5..617ab0869afb 100644 --- a/code/modules/shuttle/shuttles/crashable/lifeboats.dm +++ b/code/modules/shuttle/shuttles/crashable/lifeboats.dm @@ -41,6 +41,9 @@ port_direction = EAST /obj/docking_port/mobile/crashable/lifeboat/evac_launch() + if (status == LIFEBOAT_LOCKED) + return + . = ..() available = FALSE diff --git a/code/modules/shuttle/shuttles/dropship.dm b/code/modules/shuttle/shuttles/dropship.dm index ee91c9b9e5d4..86e869b3361e 100644 --- a/code/modules/shuttle/shuttles/dropship.dm +++ b/code/modules/shuttle/shuttles/dropship.dm @@ -29,6 +29,8 @@ var/automated_lz_id var/automated_delay var/automated_timer + var/datum/cas_signal/paradrop_signal + /obj/docking_port/mobile/marine_dropship/Initialize(mapload) . = ..() @@ -42,16 +44,32 @@ door_control.add_door(air, "port") if("aft_door") door_control.add_door(air, "aft") + var/obj/structure/machinery/door/airlock/multi_tile/almayer/dropshiprear/hatch = air + if(istype(hatch)) + hatch.linked_dropship = src + + RegisterSignal(src, COMSIG_DROPSHIP_ADD_EQUIPMENT, PROC_REF(add_equipment)) + RegisterSignal(src, COMSIG_DROPSHIP_REMOVE_EQUIPMENT, PROC_REF(remove_equipment)) /obj/docking_port/mobile/marine_dropship/Destroy(force) . = ..() qdel(door_control) + UnregisterSignal(src, COMSIG_DROPSHIP_ADD_EQUIPMENT) + UnregisterSignal(src, COMSIG_DROPSHIP_REMOVE_EQUIPMENT) /obj/docking_port/mobile/marine_dropship/proc/send_for_flyby() in_flyby = TRUE var/obj/docking_port/stationary/dockedAt = get_docked() SSshuttle.moveShuttle(src.id, dockedAt.id, TRUE) +/obj/docking_port/mobile/marine_dropship/proc/add_equipment(obj/docking_port/mobile/marine_dropship/dropship, obj/structure/dropship_equipment/equipment) + SIGNAL_HANDLER + equipments += equipment + +/obj/docking_port/mobile/marine_dropship/proc/remove_equipment(obj/docking_port/mobile/marine_dropship/dropship, obj/structure/dropship_equipment/equipment) + SIGNAL_HANDLER + equipments -= equipment + /obj/docking_port/mobile/marine_dropship/proc/get_door_data() return door_control.get_data() @@ -67,10 +85,12 @@ door_control.add_door(air, "port") if("aft_door") door_control.add_door(air, "aft") + RegisterSignal(src, COMSIG_ATOM_DIR_CHANGE, PROC_REF(on_dir_change)) /obj/docking_port/mobile/marine_dropship/Destroy(force) . = ..() qdel(door_control) + UnregisterSignal(src, COMSIG_ATOM_DIR_CHANGE) /obj/docking_port/mobile/marine_dropship/proc/control_doors(action, direction, force, asynchronous = TRUE) // its been locked down by the queen @@ -104,13 +124,27 @@ set_security_level(SEC_LEVEL_RED) return +/obj/docking_port/mobile/marine_dropship/proc/on_dir_change(datum/source, old_dir, new_dir) + SIGNAL_HANDLER + for(var/place in shuttle_areas) + for(var/obj/structure/machinery/door/air in place) + air.handle_multidoor(old_dir, new_dir) + /obj/docking_port/mobile/marine_dropship/alamo name = "Alamo" id = DROPSHIP_ALAMO + preferred_direction = SOUTH // If you are changing this, please update the dir of the path below as well + +/obj/docking_port/mobile/marine_dropship/alamo/get_transit_path_type() + return /turf/open/space/transit/dropship/alamo /obj/docking_port/mobile/marine_dropship/normandy name = "Normandy" id = DROPSHIP_NORMANDY + preferred_direction = SOUTH // If you are changing this, please update the dir of the path below as well + +/obj/docking_port/mobile/marine_dropship/normandy/get_transit_path_type() + return /turf/open/space/transit/dropship/normandy /obj/docking_port/mobile/marine_dropship/check() . = ..() @@ -271,7 +305,7 @@ /obj/docking_port/stationary/marine_dropship/crash_site/on_arrival(obj/docking_port/mobile/arriving_shuttle) . = ..() - arriving_shuttle.mode = SHUTTLE_CRASHED + arriving_shuttle.set_mode(SHUTTLE_CRASHED) for(var/mob/living/carbon/affected_mob in (GLOB.alive_human_list + GLOB.living_xeno_list)) //knock down mobs if(affected_mob.z != z) continue @@ -284,6 +318,7 @@ affected_mob.apply_effect(3, WEAKEN) SEND_GLOBAL_SIGNAL(COMSIG_GLOB_GROUNDSIDE_FORSAKEN_HANDLING) + SEND_GLOBAL_SIGNAL(COMSIG_GLOB_HIJACK_LANDED) /datum/map_template/shuttle/alamo name = "Alamo" diff --git a/code/modules/shuttle/shuttles/ert.dm b/code/modules/shuttle/shuttles/ert.dm index 1760caf3d87c..f0224addadf6 100644 --- a/code/modules/shuttle/shuttles/ert.dm +++ b/code/modules/shuttle/shuttles/ert.dm @@ -2,14 +2,6 @@ ERT Shuttles */ -#define ERT_SHUTTLE_DEFAULT_RECHARGE 90 SECONDS - -#define ADMIN_LANDING_PAD_1 "base-ert1" -#define ADMIN_LANDING_PAD_2 "base-ert2" -#define ADMIN_LANDING_PAD_3 "base-ert3" -#define ADMIN_LANDING_PAD_4 "base-ert4" -#define ADMIN_LANDING_PAD_5 "base-ert5" - // Base ERT Shuttle /obj/docking_port/mobile/emergency_response name = "ERT Shuttle" @@ -21,6 +13,8 @@ rechargeTime = ERT_SHUTTLE_DEFAULT_RECHARGE // 90s cooldown to recharge var/list/doors = list() var/list/external_doors = list() + var/datum/emergency_call/distress_beacon + var/list/local_landmarks = list() /obj/docking_port/mobile/emergency_response/Initialize(mapload) . = ..(mapload) @@ -31,11 +25,34 @@ air.breakable = FALSE air.indestructible = TRUE air.unacidable = TRUE + RegisterSignal(src, COMSIG_ATOM_DIR_CHANGE, PROC_REF(on_dir_change)) /obj/docking_port/mobile/emergency_response/enterTransit() control_doors("force-lock-launch", force = TRUE, external_only = TRUE) + UnregisterSignal(src, COMSIG_ATOM_DIR_CHANGE) ..() +/obj/docking_port/mobile/emergency_response/register() + . = ..() + + for(var/turf/current_turf as anything in return_turfs()) + for(var/obj/effect/landmark/landmark in current_turf.GetAllContents()) + LAZYADD(local_landmarks[landmark.type], landmark) + +/obj/docking_port/mobile/emergency_response/initiate_docking(obj/docking_port/stationary/new_dock, movement_direction, force) + . = ..() + if(. != DOCKING_SUCCESS) + return + + if(!is_mainship_level(z)) + return + + if(!distress_beacon || !distress_beacon.home_base) + return + + var/obj/structure/machinery/computer/shuttle/ert/console = getControlConsole() + console.must_launch_home = TRUE + /obj/docking_port/mobile/emergency_response/proc/control_doors(action, force = FALSE, external_only = FALSE) var/list/door_list = doors if(external_only) @@ -61,14 +78,13 @@ INVOKE_ASYNC(src, PROC_REF(lockdown_door_launch), door) /obj/docking_port/mobile/emergency_response/proc/lockdown_door_launch(obj/structure/machinery/door/airlock/air) - for(var/mob/blocking_mob in air.loc) // Bump all mobs outta the way for outside airlocks of shuttles - if(isliving(blocking_mob)) - to_chat(blocking_mob, SPAN_HIGHDANGER("You get thrown back as the dropship doors slam shut!")) - blocking_mob.apply_effect(4, WEAKEN) - for(var/turf/target_turf in orange(1, air)) // Forcemove to a non shuttle turf - if(!istype(target_turf, /turf/open/shuttle) && !istype(target_turf, /turf/closed/shuttle)) - blocking_mob.forceMove(target_turf) - break + for(var/mob/living/blocking_mob in air.loc) // Bump all mobs outta the way for outside airlocks of shuttles + to_chat(blocking_mob, SPAN_HIGHDANGER("You get thrown back as the dropship doors slam shut!")) + blocking_mob.KnockDown(4) + for(var/turf/target_turf in orange(1, air)) // Forcemove to a non shuttle turf + if(!istype(target_turf, /turf/open/shuttle) && !istype(target_turf, /turf/closed/shuttle)) + blocking_mob.forceMove(target_turf) + break lockdown_door(air) /obj/docking_port/mobile/emergency_response/proc/lockdown_door(obj/structure/machinery/door/airlock/air) @@ -78,10 +94,10 @@ air.lock() air.safe = 1 -/obj/docking_port/mobile/emergency_response/setDir(newdir) - . = ..() +/obj/docking_port/mobile/emergency_response/proc/on_dir_change(datum/source, old_dir, new_dir) + SIGNAL_HANDLER for(var/obj/structure/machinery/door/shuttle_door in doors) - shuttle_door.handle_multidoor() + shuttle_door.handle_multidoor(old_dir, new_dir) // ERT Shuttle 1 /obj/docking_port/mobile/emergency_response/ert1 @@ -183,6 +199,7 @@ width = 7 height = 13 var/is_external = FALSE + var/lockdown_on_land = FALSE /obj/docking_port/stationary/emergency_response/on_arrival(obj/docking_port/mobile/arriving_shuttle) . = ..() @@ -190,6 +207,12 @@ var/obj/docking_port/mobile/emergency_response/ert = arriving_shuttle ert.control_doors("unlock", force = FALSE) + if(lockdown_on_land) + var/obj/structure/machinery/computer/shuttle/ert/console = arriving_shuttle.getControlConsole() + console.disable() + console.mission_accomplished = TRUE + lockdown_on_land = FALSE + /obj/docking_port/stationary/emergency_response/port1 name = "Almayer starboard landing pad" dir = NORTH @@ -255,7 +278,7 @@ width = 17 height = 29 airlock_id = "s_umbilical" - airlock_area = /area/almayer/hallways/port_umbilical + airlock_area = /area/almayer/hallways/lower/port_umbilical /obj/docking_port/stationary/emergency_response/external/hangar_starboard name = "Almayer hanger starboard external airlock" @@ -264,7 +287,7 @@ width = 17 height = 29 airlock_id = "n_umbilical" - airlock_area = /area/almayer/hallways/starboard_umbilical + airlock_area = /area/almayer/hallways/lower/starboard_umbilical // These are docking ports not on the almayer /obj/docking_port/stationary/emergency_response/idle_port1 @@ -311,24 +334,24 @@ /datum/map_template/shuttle/response_ert name = "Response Shuttle" - shuttle_id = "ert_response_shuttle" + shuttle_id = MOBILE_SHUTTLE_ID_ERT1 /datum/map_template/shuttle/pmc_ert name = "PMC Shuttle" - shuttle_id = "ert_pmc_shuttle" + shuttle_id = MOBILE_SHUTTLE_ID_ERT2 /datum/map_template/shuttle/upp_ert name = "UPP Shuttle" - shuttle_id = "ert_upp_shuttle" + shuttle_id = MOBILE_SHUTTLE_ID_ERT3 /datum/map_template/shuttle/twe_ert name = "TWE Shuttle" - shuttle_id = "ert_twe_shuttle" + shuttle_id = MOBILE_SHUTTLE_ID_ERT4 /datum/map_template/shuttle/small_ert name = "Rescue Shuttle" - shuttle_id = "ert_small_shuttle_north" + shuttle_id = MOBILE_SHUTTLE_ID_ERT_SMALL /datum/map_template/shuttle/big_ert name = "Boarding Shuttle" - shuttle_id = "ert_shuttle_big" + shuttle_id = MOBILE_SHUTTLE_ID_ERT_BIG diff --git a/code/modules/shuttle/shuttles/trijent_elevator.dm b/code/modules/shuttle/shuttles/trijent_elevator.dm index 457c150212c0..ff10485e8d5a 100644 --- a/code/modules/shuttle/shuttles/trijent_elevator.dm +++ b/code/modules/shuttle/shuttles/trijent_elevator.dm @@ -37,12 +37,6 @@ . = ..() door_control.control_doors("force-lock-launch", "all", force=TRUE) -/obj/docking_port/mobile/trijent_elevator/linkup(datum/map_template/shuttle/template, obj/docking_port/stationary/dock) - ..() - var/datum/map_template/shuttle/trijent_elevator/elev = template - elevator_network = elev.elevator_network - log_debug("Adding network [elev.elevator_network] to [id]") - /obj/docking_port/stationary/trijent_elevator dir=NORTH width=7 diff --git a/code/modules/shuttle/vehicle_elevator.dm b/code/modules/shuttle/vehicle_elevator.dm index d2e102933fd8..8f6a9025ba4f 100644 --- a/code/modules/shuttle/vehicle_elevator.dm +++ b/code/modules/shuttle/vehicle_elevator.dm @@ -7,10 +7,11 @@ id = MOBILE_SHUTTLE_VEHICLE_ELEVATOR - callTime = 5 SECONDS - ignitionTime = 1 SECONDS + // Call and ""ignition"" times are set to line up with the sound effects. + callTime = 4 SECONDS + ignitionTime = 5 SECONDS - ignition_sound = 'sound/machines/asrs_raising.ogg' + ignition_sound = 'sound/machines/asrs_lowering.ogg' ambience_idle = null ambience_flight = null @@ -28,19 +29,50 @@ railings += R /obj/docking_port/mobile/vehicle_elevator/on_ignition() - for(var/i in gears) - var/obj/structure/machinery/gear/G = i - G.start_moving() - -/obj/docking_port/mobile/vehicle_elevator/afterShuttleMove() + . = ..() + // If the elevator isn't in the vehicle bay, start the gears immediately. if(!is_mainship_level(z)) + start_gears() + + // Play the 'raising' sound effect at the destination docking port manually. + // `landing_sound` can't be used since that only plays on the elevator itself, + // and this sound file is too long for that either way. + playsound(destination, 'sound/machines/asrs_raising.ogg', 60) return - for(var/i in gears) - var/obj/structure/machinery/gear/G = i - G.stop_moving() - for(var/i in railings) - var/obj/structure/machinery/door/poddoor/railing/R = i - INVOKE_ASYNC(R, TYPE_PROC_REF(/obj/structure/machinery/door, open)) + + // If the elevator *is* in the vehicle bay, close the railings and start the gears when it leaves. + close_railings() + addtimer(CALLBACK(src, PROC_REF(start_gears)), ignitionTime) + +/obj/docking_port/mobile/vehicle_elevator/afterShuttleMove() + . = ..() + // Check `get_docked()` in order to skip this if it just moved to the 'transit' port. + if(get_docked() == destination) + stop_gears() + + // If the elevator moved to the vehicle bay, open the railings. + if(is_mainship_level(z)) + open_railings() + +/obj/docking_port/mobile/vehicle_elevator/proc/start_gears() + for(var/obj/structure/machinery/gear/gear as anything in gears) + gear.start_moving() + +/obj/docking_port/mobile/vehicle_elevator/proc/stop_gears() + for(var/obj/structure/machinery/gear/gear as anything in gears) + gear.stop_moving() + +/obj/docking_port/mobile/vehicle_elevator/proc/open_railings() + for(var/obj/structure/machinery/door/poddoor/railing/railing as anything in railings) + // If the railing isn't already open. + if(railing.density) + railing.open() + +/obj/docking_port/mobile/vehicle_elevator/proc/close_railings() + for(var/obj/structure/machinery/door/poddoor/railing/railing as anything in railings) + // If the railing isn't already closed. + if(!railing.density) + railing.close() /obj/docking_port/stationary/vehicle_elevator name = "Root Vehicle Elevator Dock" @@ -55,6 +87,46 @@ id = "almayer vehicle" roundstart_template = /datum/map_template/shuttle/vehicle + //elevator effects (four so the entire elevator doesn't vanish when there's one opaque obstacle between you and the actual elevator loc). + var/obj/effect/elevator/vehicle/SW + var/obj/effect/elevator/vehicle/SE + var/obj/effect/elevator/vehicle/NW + var/obj/effect/elevator/vehicle/NE + +/obj/docking_port/stationary/vehicle_elevator/almayer/Initialize(mapload) + . = ..() + // Create and offset some effects for the elevator shaft sprite. + SW = new(locate(src.x - 2, src.y - 2, src.z)) + + SE = new(locate(src.x + 2, src.y - 2, src.z)) + SE.pixel_x = -128 + + NW = new(locate(src.x - 2, src.y + 2, src.z)) + NW.pixel_y = -128 + + NE = new(locate(src.x + 2, src.y + 2, src.z)) + NE.pixel_x = -128 + NE.pixel_y = -128 + + SW.invisibility = INVISIBILITY_ABSTRACT + SE.invisibility = INVISIBILITY_ABSTRACT + NW.invisibility = INVISIBILITY_ABSTRACT + NE.invisibility = INVISIBILITY_ABSTRACT + +// Make the elevator shaft visible when the elevator leaves. +/obj/docking_port/stationary/vehicle_elevator/almayer/on_departure(obj/docking_port/mobile/departing_shuttle) + SW.invisibility = 0 + SE.invisibility = 0 + NW.invisibility = 0 + NE.invisibility = 0 + +// And make it invisible again when the elevator returns. +/obj/docking_port/stationary/vehicle_elevator/almayer/on_arrival(obj/docking_port/mobile/arriving_shuttle) + SW.invisibility = INVISIBILITY_ABSTRACT + SE.invisibility = INVISIBILITY_ABSTRACT + NW.invisibility = INVISIBILITY_ABSTRACT + NE.invisibility = INVISIBILITY_ABSTRACT + /obj/docking_port/stationary/vehicle_elevator/adminlevel name = "Adminlevel Vehicle Elevator Dock" id = "adminlevel vehicle" diff --git a/code/modules/shuttles/marine_ferry.dm b/code/modules/shuttles/marine_ferry.dm index c23d2d689ed6..bd4a08716954 100644 --- a/code/modules/shuttles/marine_ferry.dm +++ b/code/modules/shuttles/marine_ferry.dm @@ -44,7 +44,7 @@ if(!LAZYLEN(locs_land)) return TRUE - if(!main_doors.len && !controls.len) + if(!length(main_doors) && !length(controls)) var/turf/T_src = pick(locs_dock) var/list/turfs = get_shuttle_turfs(T_src, info_datums) for(var/turf/T in turfs) @@ -147,12 +147,12 @@ moving_status = SHUTTLE_WARMUP if(transit_optimized) - recharging = round(recharge_time * SHUTTLE_OPTIMIZE_FACTOR_RECHARGE) //Optimized flight plan means less recharge time + recharging = floor(recharge_time * SHUTTLE_OPTIMIZE_FACTOR_RECHARGE) //Optimized flight plan means less recharge time else recharging = recharge_time //Prevent the shuttle from moving again until it finishes recharging for(var/obj/structure/dropship_equipment/fuel/cooling_system/CS in equipments) - recharging = round(recharging * SHUTTLE_COOLING_FACTOR_RECHARGE) //cooling system reduces recharge time + recharging = floor(recharging * SHUTTLE_COOLING_FACTOR_RECHARGE) //cooling system reduces recharge time break //START: Heavy lifting backend @@ -164,7 +164,7 @@ var/int_rot = locs_move[T_int] var/turf/T_trg var/trg_rot - if(!locs_land.len) // We check here as well to make sure that the order of operations/lag/changing it after launch. Wont mess this up. + if(!length(locs_land)) // We check here as well to make sure that the order of operations/lag/changing it after launch. Wont mess this up. transit_gun_mission = 1 if(transit_gun_mission)//gun mission makes you land back where you started. @@ -194,7 +194,7 @@ for(var/X in equipments) var/obj/structure/dropship_equipment/E = X if(istype(E, /obj/structure/dropship_equipment/fuel/fuel_enhancer)) - travel_time = round(travel_time / SHUTTLE_FUEL_ENHANCE_FACTOR_TRAVEL) //fuel enhancer increases travel time + travel_time = floor(travel_time / SHUTTLE_FUEL_ENHANCE_FACTOR_TRAVEL) //fuel enhancer increases travel time break else if(transit_optimized) @@ -205,7 +205,7 @@ for(var/X in equipments) var/obj/structure/dropship_equipment/E = X if(istype(E, /obj/structure/dropship_equipment/fuel/fuel_enhancer)) - travel_time = round(travel_time * SHUTTLE_FUEL_ENHANCE_FACTOR_TRAVEL) //fuel enhancer reduces travel time + travel_time = floor(travel_time * SHUTTLE_FUEL_ENHANCE_FACTOR_TRAVEL) //fuel enhancer reduces travel time break //START: Heavy lifting backend @@ -324,7 +324,7 @@ if(moving_status != SHUTTLE_IDLE) return moving_status = SHUTTLE_WARMUP if(transit_optimized) - recharging = round(recharge_time * SHUTTLE_OPTIMIZE_FACTOR_RECHARGE) //Optimized flight plan means less recharge time + recharging = floor(recharge_time * SHUTTLE_OPTIMIZE_FACTOR_RECHARGE) //Optimized flight plan means less recharge time else recharging = recharge_time //Prevent the shuttle from moving again until it finishes recharging @@ -349,7 +349,7 @@ for(var/turf/TU in SSoldshuttle.shuttle_controller.locs_crash[target_section]) if(istype(get_area(TU), /area/almayer/hallways/hangar)) crash_turfs += TU - if(crash_turfs.len) T_trg = pick(crash_turfs) + if(length(crash_turfs)) T_trg = pick(crash_turfs) else message_admins("no crash turf found in Almayer Hangar, contact coders.") break @@ -454,17 +454,8 @@ // Break the ultra-reinforced windows. // Break the briefing windows. - for(var/i in GLOB.hijack_bustable_windows) - var/obj/structure/window/H = i - H.deconstruct(FALSE) - for(var/k in GLOB.hijack_bustable_ladders) - var/obj/structure/ladder/fragile_almayer/L = k - L.deconstruct() - - // Delete the briefing door(s). - for(var/D in GLOB.hijack_deletable_windows) - qdel(D) + SEND_GLOBAL_SIGNAL(COMSIG_GLOB_HIJACK_IMPACTED) // Sleep while the explosions do their job var/explosion_alive = TRUE @@ -599,14 +590,13 @@ /datum/shuttle/ferry/marine/force_close_launch(obj/structure/machinery/door/AL) if(!iselevator) - for(var/mob/M in AL.loc) // Bump all mobs outta the way for outside airlocks of shuttles - if(isliving(M)) - to_chat(M, SPAN_HIGHDANGER("You get thrown back as the dropship doors slam shut!")) - M.apply_effect(4, WEAKEN) - for(var/turf/T in orange(1, AL)) // Forcemove to a non shuttle turf - if(!istype(T, /turf/open/shuttle) && !istype(T, /turf/closed/shuttle)) - M.forceMove(T) - break + for(var/mob/living/M in AL.loc) // Bump all mobs outta the way for outside airlocks of shuttles + to_chat(M, SPAN_HIGHDANGER("You get thrown back as the dropship doors slam shut!")) + M.KnockDown(4) + for(var/turf/T in orange(1, AL)) // Forcemove to a non shuttle turf + if(!istype(T, /turf/open/shuttle) && !istype(T, /turf/closed/shuttle)) + M.forceMove(T) + break return ..() // Sleeps /datum/shuttle/ferry/marine/open_doors(list/L) diff --git a/code/modules/shuttles/shuttle.dm b/code/modules/shuttles/shuttle.dm index a5911d18b3a2..1ded77a0e053 100644 --- a/code/modules/shuttles/shuttle.dm +++ b/code/modules/shuttles/shuttle.dm @@ -29,8 +29,6 @@ var/iselevator = 0 //Used to remove some shuttle related procs and texts to make it compatible with elevators var/almayerelevator = 0 //elevators on the almayer without limitations - var/list/last_passangers = list() //list of living creatures that were our last passengers - var/require_link = FALSE var/linked = FALSE var/ambience_muffle = MUFFLE_HIGH @@ -53,7 +51,7 @@ moving_status = SHUTTLE_WARMUP if(transit_optimized) - recharging = round(recharge_time * SHUTTLE_OPTIMIZE_FACTOR_RECHARGE) //Optimized flight plan means less recharge time + recharging = floor(recharge_time * SHUTTLE_OPTIMIZE_FACTOR_RECHARGE) //Optimized flight plan means less recharge time else recharging = recharge_time //Prevent the shuttle from moving again until it finishes recharging spawn(warmup_time) @@ -202,9 +200,7 @@ origin.move_contents_to(destination, direction=direction) - last_passangers.Cut() - for(var/mob/M in destination) - last_passangers += M + for(var/mob/living/M in destination) if(M.client) spawn(0) if(M.buckled && !iselevator) @@ -215,17 +211,18 @@ shake_camera(M, iselevator? 2 : 10, 1) if(istype(M, /mob/living/carbon) && !iselevator) if(!M.buckled) - M.apply_effect(3, WEAKEN) + M.Stun(3) + M.KnockDown(3) for(var/turf/T in origin) // WOW so hacky - who cares. Abby if(iselevator) if(istype(T,/turf/open/space)) if(is_mainship_level(T.z)) - new /turf/open/floor/almayer/empty(T) + T.ChangeTurf(/turf/open/floor/almayer/empty/requisitions) else - new /turf/open/gm/empty(T) + T.ChangeTurf(/turf/open/gm/empty) else if(istype(T,/turf/open/space)) - new /turf/open/floor/plating(T) + T.ChangeTurf(/turf/open/floor/plating) return diff --git a/code/modules/shuttles/shuttle_console.dm b/code/modules/shuttles/shuttle_console.dm index 7fe9d04c91b2..502d7c1ffde4 100644 --- a/code/modules/shuttles/shuttle_console.dm +++ b/code/modules/shuttles/shuttle_console.dm @@ -60,7 +60,7 @@ GLOBAL_LIST_EMPTY(shuttle_controls) if(..(user)) return - if(!allowed(user) || ismaintdrone(user)) + if(!allowed(user)) to_chat(user, SPAN_WARNING("Access denied.")) return 1 @@ -188,8 +188,8 @@ GLOBAL_LIST_EMPTY(shuttle_controls) "gun_mission_allowed" = shuttle.can_do_gun_mission, "shuttle_status_message" = shuttle_status_message, "recharging" = shuttle.recharging, - "recharging_seconds" = round(shuttle.recharging/10), - "flight_seconds" = round(shuttle.in_transit_time_left/10), + "recharging_seconds" = floor(shuttle.recharging/10), + "flight_seconds" = floor(shuttle.in_transit_time_left/10), "can_return_home" = shuttle.transit_gun_mission && shuttle.moving_status == SHUTTLE_INTRANSIT && shuttle.in_transit_time_left>abort_timer, "recharge_time" = effective_recharge_time, "recharge_status" = recharge_status, @@ -231,14 +231,14 @@ GLOBAL_LIST_EMPTY(shuttle_controls) return //Comment to test if(!skip_time_lock && world.time < SSticker.mode.round_time_lobby + SHUTTLE_TIME_LOCK && istype(shuttle, /datum/shuttle/ferry/marine)) - to_chat(usr, SPAN_WARNING("The shuttle is still undergoing pre-flight fueling and cannot depart yet. Please wait another [round((SSticker.mode.round_time_lobby + SHUTTLE_TIME_LOCK-world.time)/600)] minutes before trying again.")) + to_chat(usr, SPAN_WARNING("The shuttle is still undergoing pre-flight fueling and cannot depart yet. Please wait another [floor((SSticker.mode.round_time_lobby + SHUTTLE_TIME_LOCK-world.time)/600)] minutes before trying again.")) return if(SSticker.mode.active_lz != src && !onboard && isqueen(usr)) to_chat(usr, SPAN_WARNING("The shuttle isn't responding to prompts, it looks like this isn't the primary shuttle.")) return if(istype(shuttle, /datum/shuttle/ferry/marine)) var/datum/shuttle/ferry/marine/s = shuttle - if(!s.locs_land.len && !s.transit_gun_mission) + if(!length(s.locs_land) && !s.transit_gun_mission) to_chat(usr, SPAN_WARNING("There is no suitable LZ for this shuttle. Flight configuration changed to fire-mission.")) s.transit_gun_mission = 1 if(shuttle.moving_status == SHUTTLE_IDLE) //Multi consoles, hopefully this will work diff --git a/code/modules/shuttles/shuttle_supply.dm b/code/modules/shuttles/shuttle_supply.dm index 7eb7b96eb2e8..acbcb2937ab9 100644 --- a/code/modules/shuttles/shuttle_supply.dm +++ b/code/modules/shuttles/shuttle_supply.dm @@ -10,10 +10,10 @@ var/max_late_time = 300 var/railing_id = "supply_elevator_railing" var/gear_id = "supply_elevator_gear" - var/obj/effect/elevator/supply/SW //elevator effects (four so the entire elevator doesn't vanish when - var/obj/effect/elevator/supply/SE //there's one opaque obstacle between you and the actual elevator loc). - var/obj/effect/elevator/supply/NW - var/obj/effect/elevator/supply/NE + var/obj/effect/elevator/SW //elevator effects (four so the entire elevator doesn't vanish when + var/obj/effect/elevator/SE //there's one opaque obstacle between you and the actual elevator loc). + var/obj/effect/elevator/NW + var/obj/effect/elevator/NE var/Elevator_x var/Elevator_y var/Elevator_z @@ -34,15 +34,15 @@ Elevator_x = pick_loc().x Elevator_y = pick_loc().y Elevator_z = pick_loc().z - SW = new /obj/effect/elevator/supply(locate(Elevator_x-2,Elevator_y-2,Elevator_z)) + SW = new /obj/effect/elevator(locate(Elevator_x-2,Elevator_y-2,Elevator_z)) SW.vis_contents += elevator_animation - SE = new /obj/effect/elevator/supply(locate(Elevator_x+2,Elevator_y-2,Elevator_z)) + SE = new /obj/effect/elevator(locate(Elevator_x+2,Elevator_y-2,Elevator_z)) SE.pixel_x = -128 SE.vis_contents += elevator_animation - NW = new /obj/effect/elevator/supply(locate(Elevator_x-2,Elevator_y+2,Elevator_z)) + NW = new /obj/effect/elevator(locate(Elevator_x-2,Elevator_y+2,Elevator_z)) NW.pixel_y = -128 NW.vis_contents += elevator_animation - NE = new /obj/effect/elevator/supply(locate(Elevator_x+2,Elevator_y+2,Elevator_z)) + NE = new /obj/effect/elevator(locate(Elevator_x+2,Elevator_y+2,Elevator_z)) NE.pixel_x = -128 NE.pixel_y = -128 NE.vis_contents += elevator_animation @@ -184,15 +184,3 @@ if(M.id == gear_id) spawn() M.icon_state = "gear" - -/obj/effect/landmark/vehicleelevator/Initialize(mapload, ...) - . = ..() - GLOB.vehicle_elevator = get_turf(src) - return INITIALIZE_HINT_QDEL - -/datum/shuttle/ferry/supply/vehicle - railing_id = "vehicle_elevator_railing" - gear_id = "vehicle_elevator_gears" - -/datum/shuttle/ferry/supply/vehicle/pick_loc() - return GLOB.vehicle_elevator diff --git a/code/modules/surgery/bones.dm b/code/modules/surgery/bones.dm index f87caaa54758..399f5f5360c3 100644 --- a/code/modules/surgery/bones.dm +++ b/code/modules/surgery/bones.dm @@ -41,6 +41,24 @@ success_sound = 'sound/handling/bandage.ogg' failure_sound = 'sound/surgery/organ2.ogg' +//Use materials to repair bones, same as /datum/surgery_step/mend_encased +/datum/surgery_step/mend_bones/extra_checks(mob/living/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery, repeating, skipped) + . = ..() + if(istype(tool, /obj/item/tool/surgery/bonegel)) //If bone gel, use some of the gel + var/obj/item/tool/surgery/bonegel/gel = tool + if(!gel.use_gel(gel.fracture_fix_cost)) + to_chat(user, SPAN_BOLDWARNING("[gel] is empty!")) + return FALSE + + else //Otherwise, use metal rods + var/obj/item/stack/rods/rods = user.get_inactive_hand() + if(!istype(rods)) + to_chat(user, SPAN_BOLDWARNING("You need metal rods in your offhand to repair [target]'s [surgery.affected_limb.display_name] with [tool].")) + return FALSE + if(!rods.use(2)) //Refunded on failure + to_chat(user, SPAN_BOLDWARNING("You need more metal rods to mend [target]'s [surgery.affected_limb.display_name] with [tool].")) + return FALSE + /datum/surgery_step/mend_bones/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, tool_type, datum/surgery/bone_repair/surgery) if(surgery.affected_bone) if(tool_type == /obj/item/tool/surgery/bonegel) @@ -118,6 +136,13 @@ target.apply_damage(10, BRUTE, target_zone) log_interact(user, target, "[key_name(user)] failed to begin repairing bones in [key_name(target)]'s [surgery.affected_limb.display_name] with \the [tool], aborting [surgery].") + + if(tool_type != /obj/item/tool/surgery/bonegel) + to_chat(user, SPAN_NOTICE("The metal rods used on [target]'s [surgery.affected_limb.display_name] fall loose from their [surgery.affected_limb].")) + var/obj/item/stack/rods/rods = new /obj/item/stack/rods(get_turf(target)) + rods.amount = 2 //Refund 2 rods on failure + rods.update_icon() + return FALSE //------------------------------------ diff --git a/code/modules/surgery/generic.dm b/code/modules/surgery/generic.dm index ea075080121b..c5d7f37a444c 100644 --- a/code/modules/surgery/generic.dm +++ b/code/modules/surgery/generic.dm @@ -573,6 +573,24 @@ success_sound = 'sound/handling/bandage.ogg' failure_sound = 'sound/surgery/organ2.ogg' +//Use materials to mend bones, same as /datum/surgery_step/mend_bones +/datum/surgery_step/mend_encased/extra_checks(mob/living/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery, repeating, skipped) + . = ..() + if(istype(tool, /obj/item/tool/surgery/bonegel)) //If bone gel, use some of the gel + var/obj/item/tool/surgery/bonegel/gel = tool + if(!gel.use_gel(gel.mend_bones_fix_cost)) + to_chat(user, SPAN_BOLDWARNING("[gel] is empty!")) + return FALSE + + else //Otherwise, use metal rods + var/obj/item/stack/rods/rods = user.get_inactive_hand() + if(!istype(rods)) + to_chat(user, SPAN_BOLDWARNING("You need metal rods in your offhand to mend [target]'s [surgery.affected_limb.display_name] with [tool].")) + return FALSE + if(!rods.use(2)) //Refunded on failure + to_chat(user, SPAN_BOLDWARNING("You need more metal rods to mend [target]'s [surgery.affected_limb.display_name] with [tool].")) + return FALSE + /datum/surgery_step/mend_encased/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, tool_type, datum/surgery/surgery) if(tool_type == /obj/item/tool/surgery/bonegel) user.affected_message(target, @@ -626,6 +644,11 @@ target.apply_damage(10, BRUTE, target_zone) log_interact(user, target, "[key_name(user)] failed to mend [key_name(target)]'s [surgery.affected_limb.encased].") + if(tool_type != /obj/item/tool/surgery/bonegel) + to_chat(user, SPAN_NOTICE("The metal rods used on [target]'s [surgery.affected_limb.display_name] fall loose from their [surgery.affected_limb].")) + var/obj/item/stack/rods/rods = new /obj/item/stack/rods(get_turf(target)) + rods.amount = 2 //Refund 2 rods on failure + rods.update_icon() /*Proof of concept. Functions but does nothing useful. If fiddling with, uncomment /mob/living/attackby surgery code also. It's pointless processing to have live without any surgeries for it to use.*/ diff --git a/code/modules/surgery/surgery_initiator.dm b/code/modules/surgery/surgery_initiator.dm index 706b28d0e94e..1158088e83e6 100644 --- a/code/modules/surgery/surgery_initiator.dm +++ b/code/modules/surgery/surgery_initiator.dm @@ -7,7 +7,6 @@ /proc/initiate_surgery_moment(obj/item/tool, mob/living/carbon/target, obj/limb/affecting, mob/living/user) if(!tool && !(affecting.status & LIMB_UNCALIBRATED_PROSTHETIC)) return FALSE - var/target_zone = user.zone_selected var/list/available_surgeries = list() var/list/valid_steps = list() //Steps that could be performed, if we had the right tool. @@ -45,6 +44,7 @@ //Lying and self-surgery checks. if(surgeryloop.lying_required && target.body_position != LYING_DOWN) continue + if(!surgeryloop.self_operable && target == user) continue @@ -58,12 +58,16 @@ if(affecting.status & LIMB_DESTROYED) continue else - if(!(affecting.status & LIMB_DESTROYED)) - continue - if(affecting.parent && affecting.parent.status & LIMB_DESTROYED) - continue + if(ishuman(target))//otherwise breaks when trying to op xeno + if(!(affecting.status & LIMB_DESTROYED) && ishuman(target)) + continue + + if(affecting.parent && affecting.parent.status & LIMB_DESTROYED && ishuman(target)) + continue + if(surgeryloop.requires_bodypart_type && !(affecting.status & surgeryloop.requires_bodypart_type)) continue + else if(surgeryloop.requires_bodypart) //mob with no limb in surgery zone when we need a limb continue @@ -71,7 +75,6 @@ if(!surgeryloop.can_start(user, target, affecting, tool)) continue - //Tool checks. var/datum/surgery_step/current_step = GLOB.surgery_step_list[surgeryloop.steps[1]] @@ -84,9 +87,7 @@ continue else continue - available_surgeries[surgeryloop.name] = surgeryloop //Add it to the list. - if(!length(available_surgeries)) if(!tool) return FALSE @@ -96,15 +97,16 @@ to_chat(user, SPAN_WARNING("You can't perform surgery on the same \ [target_zone == "r_hand"||target_zone == "l_hand" ? "hand":"arm"] you're using!")) return FALSE - if(!length(valid_steps)) - var/limbname = affecting?.status & LIMB_DESTROYED ? "the stump of [target]'s [affecting.display_name]" : "[target]'s [parse_zone(target_zone)]" - if(target.incision_depths[target_zone] != SURGERY_DEPTH_SURFACE) - to_chat(user, SPAN_WARNING("You don't know of any operations you could perform in the [target.incision_depths[target_zone]] incision on [limbname].")) - else - to_chat(user, SPAN_WARNING("You don't know of any operations you could begin on [limbname].")) - return FALSE - + if(ishuman(target)) + var/limbname = affecting?.status & LIMB_DESTROYED ? "the stump of [target]'s [affecting.display_name]" : "[target]'s [parse_zone(target_zone)]" + if(target.incision_depths[target_zone] != SURGERY_DEPTH_SURFACE) + to_chat(user, SPAN_WARNING("You don't know of any operations you could perform in the [target.incision_depths[target_zone]] incision on [limbname].")) + else + to_chat(user, SPAN_WARNING("You don't know of any operations you could begin on [limbname].")) + return FALSE + if(isxeno(target)) + to_chat(user, SPAN_WARNING("You don't know any operations you could perform on this body part of a xenomorph.")) var/hint_msg for(var/datum/surgery_step/current_step as anything in valid_steps) if(hint_msg) @@ -114,7 +116,8 @@ hint_msg += ", [current_step.desc]" else hint_msg = "You can't [current_step.desc] with \the [tool]" - to_chat(user, SPAN_WARNING("[hint_msg].")) + if(!isnull(hint_msg)) + to_chat(user, SPAN_WARNING("[hint_msg].")) return FALSE var/datum/surgery/surgeryinstance @@ -159,7 +162,6 @@ return TRUE if(!surgeryinstance.can_start(user, target, affecting, tool)) return TRUE - var/datum/surgery/procedure = new surgeryinstance.type(target, target_zone, affecting) #ifdef DEBUG_SURGERY_INIT message_admins("[procedure.name] started.") diff --git a/code/modules/surgery/surgery_procedure.dm b/code/modules/surgery/surgery_procedure.dm index 8620c557eb4b..1ec72ae77673 100644 --- a/code/modules/surgery/surgery_procedure.dm +++ b/code/modules/surgery/surgery_procedure.dm @@ -73,6 +73,7 @@ if(!user.action_busy) //Otherwise, assume it's the same person. to_chat(user, SPAN_WARNING("Someone is already performing surgery on [target]'s [affected_limb.display_name]!")) return FALSE + return TRUE //So that you don't poke them with a tool you're already using. if(user.action_busy) @@ -93,7 +94,6 @@ if(lying_required && target.body_position != LYING_DOWN) to_chat(user, SPAN_WARNING("[user == target ? "You need" : "[target] needs"] to be lying down for this operation!")) return FALSE - if(user == target) if(!self_operable) to_chat(user, SPAN_WARNING("You can't perform this operation on yourself!")) @@ -102,7 +102,6 @@ to_chat(user, SPAN_WARNING("You can't perform surgery on the same \ [user.zone_selected == "r_hand"||user.zone_selected == "l_hand" ? "hand":"arm"] you're using!")) return FALSE - var/datum/surgery_step/current_step = GLOB.surgery_step_list[steps[status]] if(current_step) if(current_step.attempt_step(user, target, user.zone_selected, tool, src, repeating)) //First, try this step. diff --git a/code/modules/surgery/surgery_steps.dm b/code/modules/surgery/surgery_steps.dm index b58c62b57f68..9e1450868d1c 100644 --- a/code/modules/surgery/surgery_steps.dm +++ b/code/modules/surgery/surgery_steps.dm @@ -92,6 +92,7 @@ affected_limb, or location vars. Also, in that case there may be a wait between var/self_surgery var/tool_modifier var/surface_modifier + var/failure_penalties = 0 //Skill speed modifier. step_duration *= user.get_skill_duration_multiplier(SKILL_SURGERY) @@ -134,16 +135,22 @@ affected_limb, or location vars. Also, in that case there may be a wait between message += "this tool is[pick("n't ideal", " not the best")]" if(SURGERY_TOOL_MULT_SUBSTITUTE) message += "this tool is[pick("n't suitable", " a bad fit", " difficult to use")]" - if(SURGERY_TOOL_MULT_BAD_SUBSTITUTE, SURGERY_TOOL_MULT_AWFUL) + if(SURGERY_TOOL_MULT_BAD_SUBSTITUTE) message += "this tool is [pick("awful", "barely usable")]" + failure_penalties += 1 + if(SURGERY_TOOL_MULT_AWFUL) + message += "this tool is [pick("awful", "barely usable")]" + failure_penalties += 2 switch(surface_modifier) if(SURGERY_SURFACE_MULT_ADEQUATE) message += "[pick("it isn't easy, working", "it's tricky to perform complex surgeries", "this would be quicker if you weren't working")] [pick("in the field", "under these conditions", "without a proper surgical theatre")]" if(SURGERY_SURFACE_MULT_UNSUITED) message += "[pick("it's difficult to work", "it's slow going, working", "you need to take your time")] in these [pick("primitive", "rough", "crude")] conditions" + failure_penalties += 1 if(SURGERY_SURFACE_MULT_AWFUL) message += "[pick("you need to work slowly and carefully", "you need to be very careful", "this is delicate work, especially")] [pick("in these", "under such")] [pick("terrible", "awful", "utterly unsuitable")] conditions" + failure_penalties += 2 if(length(message)) to_chat(user, SPAN_WARNING("[capitalize(english_list(message, final_comma_text = ","))].")) @@ -151,6 +158,20 @@ affected_limb, or location vars. Also, in that case there may be a wait between var/advance //Whether to continue to the next step afterwards. var/pain_failure_chance = max(0, (target.pain?.feels_pain ? surgery.pain_reduction_required - target.pain.reduction_pain : 0) * 2 - human_modifiers["pain_reduction"]) //Each extra pain unit increases the chance by 2 + // Skill compensation for difficult conditions/tools + if(skillcheck(user, SKILL_SURGERY, SKILL_SURGERY_EXPERT)) + failure_penalties -= 2 // will ultimately be -3 + if(skillcheck(user, SKILL_SURGERY, SKILL_SURGERY_TRAINED)) + failure_penalties -= 1 + + var/surgery_failure_chance = SURGERY_FAILURE_IMPOSSIBLE + if(failure_penalties == 1) + surgery_failure_chance = SURGERY_FAILURE_UNLIKELY + else if(failure_penalties == 2) + surgery_failure_chance = SURGERY_FAILURE_POSSIBLE + else if(failure_penalties > 2) + surgery_failure_chance = SURGERY_FAILURE_LIKELY + play_preop_sound(user, target, target_zone, tool, surgery) if(tool?.flags_item & ANIMATED_SURGICAL_TOOL) //If we have an animated tool sprite, run it while we do any do_afters. @@ -171,6 +192,17 @@ affected_limb, or location vars. Also, in that case there may be a wait between target.emote("pain") play_failure_sound(user, target, target_zone, tool, surgery) + else if(prob(surgery_failure_chance)) + do_after(user, max(rand(step_duration * 0.1, step_duration * 0.5), 0.5), INTERRUPT_ALL|INTERRUPT_DIFF_INTENT, + BUSY_ICON_FRIENDLY, target, INTERRUPT_MOVED, BUSY_ICON_MEDICAL) //Brief do_after so that the interrupt doesn't happen instantly. + user.visible_message(SPAN_DANGER("[user] is struggling to perform surgery."), + SPAN_DANGER("You are struggling to perform the surgery with these tools and conditions!")) + if(failure(user, target, target_zone, tool, tool_type, surgery)) //Failure returns TRUE if the step should complete anyway. + advance = TRUE + target.emote("pain") + play_failure_sound(user, target, target_zone, tool, surgery) + msg_admin_niche("[user] failed a [surgery] step on [target] because of [failure_penalties] failure possibility penalties ([surgery_failure_chance]%)") + else //Help intent. if(do_after(user, step_duration, INTERRUPT_ALL|INTERRUPT_DIFF_INTENT, BUSY_ICON_FRIENDLY,target,INTERRUPT_MOVED,BUSY_ICON_MEDICAL)) success(user, target, target_zone, tool, tool_type, surgery) diff --git a/code/modules/surgery/xeno.dm b/code/modules/surgery/xeno.dm new file mode 100644 index 000000000000..d3175a2f78d5 --- /dev/null +++ b/code/modules/surgery/xeno.dm @@ -0,0 +1,237 @@ +//Research stuff to extract stuff from xenomorphs for goodies. In other words, to extract useful material that could be used to upgrade marines etc. + +/datum/surgery/xenomorph + name = "Experimental Harvesting Surgery" + invasiveness = list(SURGERY_DEPTH_SURFACE) + required_surgery_skill = SKILL_SURGERY_TRAINED + possible_locs = list("head") + target_mobtypes = list(/mob/living/carbon/xenomorph) + steps = list( + /datum/surgery_step/xenomorph/cut_exoskeleton, + /datum/surgery_step/xenomorph/open_exoskeleton, + /datum/surgery_step/xenomorph/severe_connections, + /datum/surgery_step/xenomorph/remove_organ, + ) + lying_required = FALSE + requires_bodypart_type = NONE + requires_bodypart = FALSE + +/datum/surgery/xenomorph/can_start(mob/user, mob/living/carbon/xenomorph/patient, obj/limb/L, obj/item/tool) + if(islarva(patient) || isfacehugger(patient)) + to_chat(user, SPAN_DANGER("This race is probably too small to have a mature organ worthy to extract...")) + return FALSE + if((patient.tier > 2 || isqueen(patient)) && !istype(tool, /obj/item/tool/surgery/scalpel/laser/advanced)) + to_chat(user, SPAN_DANGER("Chitin of this kind is too thick for an ordinary tool, you would need something special.")) + return FALSE + if(patient.stat == DEAD && !patient.organ_removed) + return TRUE + return FALSE + +/datum/surgery_step/xenomorph/cut_exoskeleton + name = "Cut Exoskeleton Carapace" + desc = "cut the carapace open" + tools = list( + /obj/item/tool/surgery/scalpel/laser/advanced = SURGERY_TOOL_MULT_IDEAL, + /obj/item/tool/surgery/circular_saw = SURGERY_TOOL_MULT_IDEAL, + /obj/item/weapon/twohanded/fireaxe = SURGERY_TOOL_MULT_SUBOPTIMAL, + /obj/item/weapon/sword/machete = SURGERY_TOOL_MULT_SUBOPTIMAL, + /obj/item/tool/hatchet = SURGERY_TOOL_MULT_SUBSTITUTE, + /obj/item/tool/kitchen/knife/butcher = SURGERY_TOOL_MULT_SUBSTITUTE, + /obj/item/attachable/bayonet = SURGERY_TOOL_MULT_BAD_SUBSTITUTE, + ) + + time = 4 SECONDS + preop_sound = 'sound/handling/clothingrustle1.ogg' + success_sound = 'sound/handling/bandage.ogg' + failure_sound = 'sound/surgery/organ2.ogg' + +/datum/surgery_step/xenomorph/cut_exoskeleton/preop(mob/living/carbon/human/user, mob/living/carbon/xenomorph/target, target_zone, obj/item/tool, tool_type, datum/surgery/surgery) + if(tool_type == /obj/item/tool/surgery/circular_saw || tool_type == /obj/item/tool/surgery/scalpel/laser/advanced) + user.affected_message(target, + SPAN_NOTICE("You start to cut [target.caste_type] carapace apart using [tool], carefully, trying to prevent acid leaks."), + SPAN_NOTICE("[user] starts to cut your carapace apart using [tool], carefully, trying to prevent acid leaks."), + SPAN_NOTICE("[user] starts to cut [target.caste_type] carapace. [tool], carefully, trying to prevent acid leaks.")) + else + user.affected_message(target, + SPAN_NOTICE("You start to [pick("smash", "crack", "break")] [target.caste_type] carapace apart using [tool], Recklessly, with acid splashing on you!"), + SPAN_NOTICE("[user] starts to [pick("smash", "crack", "break")] your carapace apart using [tool], recklessly splashing acid everywhere!"), + SPAN_NOTICE("[user] starts to [pick("smash", "crack", "break")] [target.caste_type] carapace with [tool], recklessly splashing acid everywhere!")) + //we dont really need log interact since we're working with dead body... I hope + +/datum/surgery_step/xenomorph/cut_exoskeleton/success(mob/living/carbon/human/user, mob/living/carbon/xenomorph/target, target_zone, obj/item/tool, tool_type, datum/surgery/surgery) + if(tool_type == /obj/item/tool/surgery/circular_saw) + user.affected_message(target, + SPAN_NOTICE("You succesfully cut through [target.caste_type] carapace apart using [tool]."), + SPAN_NOTICE("[user] successfully cuts through your carapace using [tool]."), + SPAN_NOTICE("[user] successfully cuts [target.caste_type] carapace using [tool].")) + else + user.affected_message(target, + SPAN_NOTICE("You successfully destroy [target.caste_type] carapace into bits and pieces using [tool]."), + SPAN_NOTICE("[user] successfully destroys your carapace into bits and pieces using [tool]."),, + SPAN_NOTICE("[user] successfully destroys [target.caste_type] carapace into bits and pieces using [tool].")) + for(var/mob/living/carbon/human/victim in orange(1, target)) + if(istype(victim.wear_suit, /obj/item/clothing/suit/bio_suit) && istype(victim.head, /obj/item/clothing/head/bio_hood)) + continue + to_chat(victim, SPAN_HIGHDANGER("You are covered in acid as you feel agonizing pain!")) + victim.apply_damage(rand(75, 125), BURN) // you WILL wear biosuit. + playsound(victim, "acid_sizzle", 25, TRUE) + animation_flash_color(victim, "#FF0000") + +/datum/surgery_step/xenomorph/cut_exoskeleton/failure(mob/living/carbon/human/user, mob/living/carbon/xenomorph/target, target_zone, obj/item/tool, tool_type, datum/surgery/surgery) + user.affected_message(target, + SPAN_WARNING("Your hand slips, failing to cut [target.caste_type] carapace apart using [tool]!"), + SPAN_WARNING("[user]'s hand slips, failing to cut your carapace apart using [tool]!"), + SPAN_WARNING("[user] hand slips, failing to cut [target.caste_type] carapace using [tool]!")) + return FALSE + +/datum/surgery_step/xenomorph/open_exoskeleton + name = "Pry exoskeleton open" + desc = "open the exoskeleton in the incision" + tools = SURGERY_TOOLS_PRY_ENCASED + time = 2 SECONDS + preop_sound = 'sound/surgery/retractor1.ogg' + success_sound = 'sound/surgery/retractor2.ogg' + failure_sound = 'sound/surgery/organ1.ogg' + +/datum/surgery_step/xenomorph/open_exoskeleton/preop(mob/living/carbon/human/user, mob/living/carbon/xenomorph/target, target_zone, obj/item/tool, tool_type, datum/surgery/surgery) + user.affected_message(target, + SPAN_NOTICE("You start to pry [target.caste_type] carapace open using [tool]"), + SPAN_NOTICE("[user] starts to pry your carapace open with [tool] very carefully"), + SPAN_NOTICE("[user] starts to pry [target.caste_type] carapace open with [tool] very carefully")) + +/datum/surgery_step/xenomorph/open_exoskeleton/success(mob/living/carbon/human/user, mob/living/carbon/xenomorph/target, target_zone, obj/item/tool, tool_type, datum/surgery/surgery) + if(tool_type == /obj/item/tool/surgery/retractor) + user.affected_message(target, + SPAN_NOTICE("You hold [target.caste_type] carapace and exoskeleton open using [tool], exposing [target.caste_type] vital organs"), + SPAN_NOTICE("[user] holds your carapace and exoskeleton open with [tool], exposing [target.caste_type] vital organs "), + SPAN_NOTICE("[user] holds [target.caste_type] carapace and exoskeleton open with [tool], exposing [target.caste_type] vital organs ")) + else + user.affected_message(target, + SPAN_NOTICE("You hold [target.caste_type] carapace open using [tool] like a medieval doctor, exposing [target.caste_type] vital organs"), + SPAN_NOTICE("[user] starts to open your carapace with [tool] very carefully"), + SPAN_NOTICE("[user] starts to open [target.caste_type] carapace with [tool] very carefully")) + +/datum/surgery_step/xenomorph/open_exoskeleton/failure(mob/living/carbon/human/user, mob/living/carbon/xenomorph/target, target_zone, obj/item/tool, tool_type, datum/surgery/surgery) + user.affected_message(target, + SPAN_WARNING("Your hand slips, letting go of [target.caste_type] carapace and exoskeleton, slaming it back into place and splashing acid everywhere!"), + SPAN_WARNING("[user] hand slips, letting go of [target.caste_type] carapace and exoskeleton, slaming it back into place and splashing acid everywhere!"), + SPAN_WARNING("[user] hand slips, letting go of [target.caste_type] carapace and exoskeleton, slaming it back into place and splashing acid everywhere!")) + for(var/mob/living/carbon/human/victim in orange(1, target)) + if(istype(victim.wear_suit, /obj/item/clothing/suit/bio_suit) && istype(victim.head, /obj/item/clothing/head/bio_hood)) + continue + to_chat(victim, SPAN_DANGER("You are covered in blood gushing out from [target.caste_type]")) + victim.apply_damage(rand(50, 75), BURN) // still dangerous + playsound(victim, "acid_sizzle", 25, TRUE) + animation_flash_color(victim, "#FF0000") + return FALSE + +/datum/surgery_step/xenomorph/severe_connections + name = "Sever Organ Connections" + desc = "detach tubes and connections from organ" + tools = list( + /obj/item/tool/surgery/scalpel = SURGERY_TOOL_MULT_IDEAL, + /obj/item/tool/surgery/scalpel/pict_system = SURGERY_TOOL_MULT_IDEAL, + /obj/item/attachable/bayonet = SURGERY_TOOL_MULT_SUBSTITUTE, + /obj/item/tool/kitchen/knife = SURGERY_TOOL_MULT_SUBSTITUTE, + /obj/item/shard = SURGERY_TOOL_MULT_AWFUL, + ) + time = 4 SECONDS + preop_sound = 'sound/surgery/scalpel1.ogg' + success_sound = 'sound/surgery/scalpel2.ogg' + failure_sound = 'sound/surgery/organ2.ogg' + +/datum/surgery_step/xenomorph/severe_connections/preop(mob/living/carbon/human/user, mob/living/carbon/xenomorph/target, target_zone, obj/item/tool, tool_type, datum/surgery/surgery) + user.affected_message(target, + SPAN_NOTICE("You start to sever [target.caste_type] organ links using [tool], with confidence"), + SPAN_NOTICE("[user] start to sever your organ links using [tool], with confidence"), + SPAN_NOTICE("[user] starts to sever [target.caste_type] organ links using [tool], with confidence")) + +/datum/surgery_step/xenomorph/severe_connections/success(mob/living/carbon/human/user, mob/living/carbon/xenomorph/target, target_zone, obj/item/tool, tool_type, datum/surgery/surgery) + if(tool_type == /obj/item/tool/surgery/scalpel || tool_type == /obj/item/tool/surgery/scalpel/pict_system) + user.affected_message(target, + SPAN_NOTICE("You severed [target.caste_type] connections and links to vital organs using [tool]"), + SPAN_NOTICE("[user] severed your connections and links to vital organs using [tool]"), + SPAN_NOTICE("[user] severed [target.caste_type] connections and links to vital organs using [tool]")) + else + user.affected_message(target, + SPAN_NOTICE("You rip [target.caste_type] connections and links to vital organs apart using [tool]"), + SPAN_NOTICE("[user] rips your connections and links to vital organs apart using [tool]"), + SPAN_NOTICE("[user] rips [target.caste_type] connections and links to vital organs apart using [tool]")) + +/datum/surgery_step/xenomorph/severe_connections/failure(mob/living/carbon/human/user, mob/living/carbon/xenomorph/target, target_zone, obj/item/tool, tool_type, datum/surgery/surgery) + user.affected_message(target, + SPAN_WARNING("Your hand slips, damaging one of [target.caste_type] [pick("arteries", "viens")], gushing acid blood everywhere!"), + SPAN_WARNING("[user] hand slips, damaging one of your [pick("arteries", "viens")], gushing acid blood everywhere!"), + SPAN_WARNING("[user] hand slips, damaging one of [target.caste_type] [pick("arteries", "viens")], gushing acid blood everywhere!")) + for(var/mob/living/carbon/human/victim in orange(1, target)) + if(istype(victim.wear_suit, /obj/item/clothing/suit/bio_suit) && istype(victim.head, /obj/item/clothing/head/bio_hood)) + continue + to_chat(victim, SPAN_DANGER("You are covered in blood gushing out from [target.caste_type]")) + victim.apply_damage(rand(50, 75), BURN) // not SO dangerous but still is + playsound(victim, "acid_sizzle", 25, TRUE) + animation_flash_color(victim, "#FF0000") + +/datum/surgery_step/xenomorph/remove_organ + name = "Remove Xenomorph Organ" + desc = "grab a hold of it and pull the organ out" + accept_hand = TRUE + tools = list( + /obj/item/tool/surgery/hemostat = SURGERY_TOOL_MULT_IDEAL, + /obj/item/tool/wirecutters = SURGERY_TOOL_MULT_SUBOPTIMAL, + /obj/item/tool/kitchen/utensil/fork = SURGERY_TOOL_MULT_SUBSTITUTE, + )//shamelessly taken from embryo code + time = 3 SECONDS + preop_sound = 'sound/surgery/scalpel1.ogg' + success_sound = 'sound/surgery/scalpel2.ogg' + failure_sound = 'sound/surgery/organ2.ogg' + +/datum/surgery_step/xenomorph/remove_organ/preop(mob/living/carbon/human/user, mob/living/carbon/xenomorph/target, target_zone, obj/item/tool, tool_type, datum/surgery/surgery) + if(tool) + user.affected_message(target, + SPAN_NOTICE("You start to get a firm grip on the [target.caste_type] organ using [tool] "), + SPAN_NOTICE("[user] start to get a firm grip on your insides using [tool]"), + SPAN_NOTICE("[user] starts to get a firm grip on the [target.caste_type] organ using [tool] ")) + else + user.affected_message(target, + SPAN_NOTICE("You start to get a firm grip on the [target.caste_type] organ"), + SPAN_NOTICE("[user] starts to get a firm grip on your insides"), + SPAN_NOTICE("[user] starts to get a firm grip on the [target.caste_type] organ")) + +/datum/surgery_step/xenomorph/remove_organ/success(mob/living/carbon/human/user, mob/living/carbon/xenomorph/target, target_zone, obj/item/tool, tool_type, datum/surgery/surgery) + if(tool) + user.affected_message(target, + SPAN_NOTICE("You pulled the [target.caste_type] organ out using [tool]"), + SPAN_NOTICE("[user] pulled your organ out using [tool]"), + SPAN_NOTICE("[user] pulled the [target.caste_type] organ out using [tool]")) + else + if(istype(user.wear_suit, /obj/item/clothing/suit/bio_suit)) + user.affected_message(target, + SPAN_NOTICE("You pulled the [target.caste_type] organ out!"), + SPAN_NOTICE("[user] pulles your insides out!"), + SPAN_NOTICE("[user] pulled the [target.caste_type] organ out.")) + else + user.affected_message(target, + SPAN_NOTICE("You burn your hands as you pulled the [target.caste_type] organ out!"), + SPAN_NOTICE("[user] burns their hands as they pulled your insides out!"), + SPAN_NOTICE("[user] burns [user.p_their()] hands as [user.p_they()] pulled the [target.caste_type] organ out.")) + user.emote("pain") + if(user.hand) + user.apply_damage(rand(30,50), BURN, "l_hand") + else + user.apply_damage(rand(30,50), BURN, "r_hand") + playsound(user, "acid_sizzle", 25, TRUE) + animation_flash_color(user, "#FF0000") + var/obj/item/organ/xeno/organ = locate() in target + if(!isnull(organ)) + organ.forceMove(target.loc) + target.organ_removed = TRUE + target.update_wounds() + +/datum/surgery_step/xenomorph/remove_organ/failure(mob/living/carbon/human/user, mob/living/carbon/xenomorph/target, target_zone, obj/item/tool, tool_type, datum/surgery/surgery) + if(tool) + user.affected_message(target, + SPAN_NOTICE("You fail to pull the [target.caste_type] organ out using [tool]"), + SPAN_NOTICE("[user] fails to pull your organ out using [tool]"), + SPAN_NOTICE("[user] fails to pull the [target.caste_type] organ out using [tool]")) + return FALSE + diff --git a/code/modules/teleporters/teleporter.dm b/code/modules/teleporters/teleporter.dm index d3596cf3e9ea..21b362d85822 100644 --- a/code/modules/teleporters/teleporter.dm +++ b/code/modules/teleporters/teleporter.dm @@ -29,12 +29,12 @@ var/list/turf/source_turfs = locations[location_source] var/list/turf/dest_turfs = locations[location_dest] - if(!source_turfs || source_turfs.len == 0) + if(!LAZYLEN(source_turfs)) log_debug("Invalid source location ID [location_source] handed to teleporter [id]. Error code: TELEPORTER_3") log_admin("Invalid source location ID [location_source] handed to teleporter [id]. Tell the devs. Error code: TELEPORTER_3") return FALSE - if(!dest_turfs || dest_turfs.len == 0) + if(!LAZYLEN(dest_turfs)) log_debug("Invalid destination location ID [location_dest] handed to teleporter [id]. Error code: TELEPORTER_3") log_admin("Invalid destination location ID [location_dest] handed to teleporter [id]. Tell the devs. Error code: TELEPORTER_3") return FALSE diff --git a/code/modules/teleporters/teleporter_console.dm b/code/modules/teleporters/teleporter_console.dm index 88384578a939..f1d3a74b902e 100644 --- a/code/modules/teleporters/teleporter_console.dm +++ b/code/modules/teleporters/teleporter_console.dm @@ -175,7 +175,7 @@ if(SSmapping.configs[GROUND_MAP].map_name != MAP_CORSAT) // Bad style, but I'm leaving it here for now until someone wants to add a teleporter to another map return - if(GLOB.teleporters.len) // already made the damn thing + if(length(GLOB.teleporters)) // already made the damn thing return var/datum/teleporter/corsat/teleporter = new diff --git a/code/modules/tents/folded_tents.dm b/code/modules/tents/folded_tents.dm index fe1a748b750d..6496810f1a85 100644 --- a/code/modules/tents/folded_tents.dm +++ b/code/modules/tents/folded_tents.dm @@ -69,8 +69,7 @@ /obj/item/folded_tent/proc/get_deployment_area(turf/ref_turf) RETURN_TYPE(/list/turf) - var/turf/block_end_turf = locate(ref_turf.x + dim_x - 1, ref_turf.y + dim_y - 1, ref_turf.z) - return block(ref_turf, block_end_turf) + return CORNER_BLOCK(ref_turf, dim_x, dim_y) /obj/item/folded_tent/attack_self(mob/living/user) . = ..() diff --git a/code/modules/tgchat/to_chat.dm b/code/modules/tgchat/to_chat.dm index d9f96912f8c8..00996e341d34 100644 --- a/code/modules/tgchat/to_chat.dm +++ b/code/modules/tgchat/to_chat.dm @@ -29,6 +29,14 @@ if(target == world) target = GLOB.clients + var/list/true_targets = list() + if(target == GLOB.admins) + for(var/admin in target) + var/client/admin_client = CLIENT_FROM_VAR(admin) + if(CLIENT_IS_STAFF(admin_client)) + true_targets += admin_client + target = true_targets + // Build a message var/message = list() if(type) message["type"] = type diff --git a/code/modules/tgs/LICENSE b/code/modules/tgs/LICENSE index 2bedf9a63aa0..324c48e993e1 100644 --- a/code/modules/tgs/LICENSE +++ b/code/modules/tgs/LICENSE @@ -1,6 +1,6 @@ The MIT License -Copyright (c) 2017-2023 Jordan Brown +Copyright (c) 2017-2024 Jordan Brown Permission is hereby granted, free of charge, to any person obtaining a copy of this software and diff --git a/code/modules/tgs/core/core.dm b/code/modules/tgs/core/core.dm index b9a9f27a28ae..15622228e91f 100644 --- a/code/modules/tgs/core/core.dm +++ b/code/modules/tgs/core/core.dm @@ -42,11 +42,11 @@ var/datum/tgs_version/max_api_version = TgsMaximumApiVersion(); if(version.suite != null && version.minor != null && version.patch != null && version.deprecated_patch != null && version.deprefixed_parameter > max_api_version.deprefixed_parameter) - TGS_ERROR_LOG("Detected unknown API version! Defaulting to latest. Update the DMAPI to fix this problem.") + TGS_ERROR_LOG("Detected unknown Interop API version! Defaulting to latest. Update the DMAPI to fix this problem.") api_datum = /datum/tgs_api/latest if(!api_datum) - TGS_ERROR_LOG("Found unsupported API version: [raw_parameter]. If this is a valid version please report this, backporting is done on demand.") + TGS_ERROR_LOG("Found unsupported Interop API version: [raw_parameter]. If this is a valid version please report this, backporting is done on demand.") return TGS_INFO_LOG("Activating API for version [version.deprefixed_parameter]") @@ -107,6 +107,13 @@ if(api) return api.ApiVersion() +/world/TgsEngine() +#ifdef OPENDREAM + return TGS_ENGINE_TYPE_OPENDREAM +#else + return TGS_ENGINE_TYPE_BYOND +#endif + /world/TgsInstanceName() var/datum/tgs_api/api = TGS_READ_GLOBAL(tgs) if(api) @@ -159,3 +166,11 @@ var/datum/tgs_api/api = TGS_READ_GLOBAL(tgs) if(api) return api.Visibility() + +/world/TgsTriggerEvent(event_name, list/parameters, wait_for_completion = FALSE) + var/datum/tgs_api/api = TGS_READ_GLOBAL(tgs) + if(api) + if(!istype(parameters, /list)) + parameters = list() + + return api.TriggerEvent(event_name, parameters, wait_for_completion) diff --git a/code/modules/tgs/core/datum.dm b/code/modules/tgs/core/datum.dm index 07ce3b684584..f734fd0527f0 100644 --- a/code/modules/tgs/core/datum.dm +++ b/code/modules/tgs/core/datum.dm @@ -7,7 +7,7 @@ TGS_DEFINE_AND_SET_GLOBAL(tgs, null) var/list/warned_deprecated_command_runs /datum/tgs_api/New(datum/tgs_event_handler/event_handler, datum/tgs_version/version) - . = ..() + ..() src.event_handler = event_handler src.version = version @@ -17,7 +17,7 @@ TGS_DEFINE_AND_SET_GLOBAL(tgs, null) world.sleep_offline = FALSE // https://www.byond.com/forum/post/2894866 del(world) world.sleep_offline = FALSE // just in case, this is BYOND after all... - sleep(1) + sleep(world.tick_lag) TGS_DEBUG_LOG("BYOND DIDN'T TERMINATE THE WORLD!!! TICK IS: [world.time], sleep_offline: [world.sleep_offline]") /datum/tgs_api/latest @@ -69,3 +69,6 @@ TGS_PROTECT_DATUM(/datum/tgs_api) /datum/tgs_api/proc/Visibility() return TGS_UNIMPLEMENTED + +/datum/tgs_api/proc/TriggerEvent(event_name, list/parameters, wait_for_completion) + return FALSE diff --git a/code/modules/tgs/core/tgs_version.dm b/code/modules/tgs/core/tgs_version.dm index a5dae1241a30..bc561e67487a 100644 --- a/code/modules/tgs/core/tgs_version.dm +++ b/code/modules/tgs/core/tgs_version.dm @@ -1,4 +1,5 @@ /datum/tgs_version/New(raw_parameter) + ..() src.raw_parameter = raw_parameter deprefixed_parameter = replacetext(raw_parameter, "/tg/station 13 Server v", "") var/list/version_bits = splittext(deprefixed_parameter, ".") diff --git a/code/modules/tgs/v4/api.dm b/code/modules/tgs/v4/api.dm index 945e2e411767..7c87922750b9 100644 --- a/code/modules/tgs/v4/api.dm +++ b/code/modules/tgs/v4/api.dm @@ -181,7 +181,7 @@ var/json = json_encode(data) while(requesting_new_port && !override_requesting_new_port) - sleep(1) + sleep(world.tick_lag) //we need some port open at this point to facilitate return communication if(!world.port) @@ -209,7 +209,7 @@ requesting_new_port = FALSE while(export_lock) - sleep(1) + sleep(world.tick_lag) export_lock = TRUE last_interop_response = null @@ -217,7 +217,7 @@ text2file(json, server_commands_json_path) for(var/I = 0; I < EXPORT_TIMEOUT_DS && !last_interop_response; ++I) - sleep(1) + sleep(world.tick_lag) if(!last_interop_response) TGS_ERROR_LOG("Failed to get export result for: [json]") diff --git a/code/modules/tgs/v5/__interop_version.dm b/code/modules/tgs/v5/__interop_version.dm index 83420d130a74..f4806f7adb97 100644 --- a/code/modules/tgs/v5/__interop_version.dm +++ b/code/modules/tgs/v5/__interop_version.dm @@ -1 +1 @@ -"5.7.0" +"5.9.0" diff --git a/code/modules/tgs/v5/_defines.dm b/code/modules/tgs/v5/_defines.dm index 48969c0c7d56..92c7a8388a71 100644 --- a/code/modules/tgs/v5/_defines.dm +++ b/code/modules/tgs/v5/_defines.dm @@ -8,16 +8,17 @@ #define DMAPI5_TOPIC_REQUEST_LIMIT 65528 #define DMAPI5_TOPIC_RESPONSE_LIMIT 65529 -#define DMAPI5_BRIDGE_COMMAND_PORT_UPDATE 0 #define DMAPI5_BRIDGE_COMMAND_STARTUP 1 #define DMAPI5_BRIDGE_COMMAND_PRIME 2 #define DMAPI5_BRIDGE_COMMAND_REBOOT 3 #define DMAPI5_BRIDGE_COMMAND_KILL 4 #define DMAPI5_BRIDGE_COMMAND_CHAT_SEND 5 #define DMAPI5_BRIDGE_COMMAND_CHUNK 6 +#define DMAPI5_BRIDGE_COMMAND_EVENT 7 #define DMAPI5_PARAMETER_ACCESS_IDENTIFIER "accessIdentifier" #define DMAPI5_PARAMETER_CUSTOM_COMMANDS "customCommands" +#define DMAPI5_PARAMETER_TOPIC_PORT "topicPort" #define DMAPI5_CHUNK "chunk" #define DMAPI5_CHUNK_PAYLOAD "payload" @@ -34,6 +35,7 @@ #define DMAPI5_BRIDGE_PARAMETER_VERSION "version" #define DMAPI5_BRIDGE_PARAMETER_CHAT_MESSAGE "chatMessage" #define DMAPI5_BRIDGE_PARAMETER_MINIMUM_SECURITY_LEVEL "minimumSecurityLevel" +#define DMAPI5_BRIDGE_PARAMETER_EVENT_INVOCATION "eventInvocation" #define DMAPI5_BRIDGE_RESPONSE_NEW_PORT "newPort" #define DMAPI5_BRIDGE_RESPONSE_RUNTIME_INFORMATION "runtimeInformation" @@ -81,6 +83,7 @@ #define DMAPI5_TOPIC_COMMAND_SEND_CHUNK 9 #define DMAPI5_TOPIC_COMMAND_RECEIVE_CHUNK 10 #define DMAPI5_TOPIC_COMMAND_RECEIVE_BROADCAST 11 +#define DMAPI5_TOPIC_COMMAND_COMPLETE_EVENT 12 #define DMAPI5_TOPIC_PARAMETER_COMMAND_TYPE "commandType" #define DMAPI5_TOPIC_PARAMETER_CHAT_COMMAND "chatCommand" @@ -116,3 +119,9 @@ #define DMAPI5_CUSTOM_CHAT_COMMAND_NAME "name" #define DMAPI5_CUSTOM_CHAT_COMMAND_HELP_TEXT "helpText" #define DMAPI5_CUSTOM_CHAT_COMMAND_ADMIN_ONLY "adminOnly" + +#define DMAPI5_EVENT_ID "eventId" + +#define DMAPI5_EVENT_INVOCATION_NAME "eventName" +#define DMAPI5_EVENT_INVOCATION_PARAMETERS "parameters" +#define DMAPI5_EVENT_INVOCATION_NOTIFY_COMPLETION "notifyCompletion" diff --git a/code/modules/tgs/v5/api.dm b/code/modules/tgs/v5/api.dm index 7226f29bba60..95b8edd3ee5c 100644 --- a/code/modules/tgs/v5/api.dm +++ b/code/modules/tgs/v5/api.dm @@ -8,8 +8,12 @@ var/reboot_mode = TGS_REBOOT_MODE_NORMAL + /// List of chat messages list()s that attempted to be sent during a topic call. To be bundled in the result of the call var/list/intercepted_message_queue + /// List of chat messages list()s that attempted to be sent during a topic call. To be bundled in the result of the call + var/list/offline_message_queue + var/list/custom_commands var/list/test_merges @@ -17,15 +21,20 @@ var/list/chat_channels var/initialized = FALSE + var/initial_bridge_request_received = FALSE + var/datum/tgs_version/interop_version var/chunked_requests = 0 var/list/chunked_topics = list() + var/list/pending_events = list() + var/detached = FALSE /datum/tgs_api/v5/New() . = ..() - TGS_DEBUG_LOG("V5 API created") + interop_version = version + TGS_DEBUG_LOG("V5 API created: [json_encode(args)]") /datum/tgs_api/v5/ApiVersion() return new /datum/tgs_version( @@ -38,8 +47,12 @@ access_identifier = world.params[DMAPI5_PARAM_ACCESS_IDENTIFIER] var/datum/tgs_version/api_version = ApiVersion() - version = null - var/list/bridge_response = Bridge(DMAPI5_BRIDGE_COMMAND_STARTUP, list(DMAPI5_BRIDGE_PARAMETER_MINIMUM_SECURITY_LEVEL = minimum_required_security_level, DMAPI5_BRIDGE_PARAMETER_VERSION = api_version.raw_parameter, DMAPI5_PARAMETER_CUSTOM_COMMANDS = ListCustomCommands())) + version = null // we want this to be the TGS version, not the interop version + + // sleep once to prevent an issue where world.Export on the first tick can hang indefinitely + sleep(world.tick_lag) + + var/list/bridge_response = Bridge(DMAPI5_BRIDGE_COMMAND_STARTUP, list(DMAPI5_BRIDGE_PARAMETER_MINIMUM_SECURITY_LEVEL = minimum_required_security_level, DMAPI5_BRIDGE_PARAMETER_VERSION = api_version.raw_parameter, DMAPI5_PARAMETER_CUSTOM_COMMANDS = ListCustomCommands(), DMAPI5_PARAMETER_TOPIC_PORT = GetTopicPort())) if(!istype(bridge_response)) TGS_ERROR_LOG("Failed initial bridge request!") return FALSE @@ -53,7 +66,8 @@ TGS_INFO_LOG("DMAPI validation, exiting...") TerminateWorld() - version = new /datum/tgs_version(runtime_information[DMAPI5_RUNTIME_INFORMATION_SERVER_VERSION]) + initial_bridge_request_received = TRUE + version = new /datum/tgs_version(runtime_information[DMAPI5_RUNTIME_INFORMATION_SERVER_VERSION]) // reassigning this because it can change if TGS updates security_level = runtime_information[DMAPI5_RUNTIME_INFORMATION_SECURITY_LEVEL] visibility = runtime_information[DMAPI5_RUNTIME_INFORMATION_VISIBILITY] instance_name = runtime_information[DMAPI5_RUNTIME_INFORMATION_INSTANCE_NAME] @@ -102,15 +116,22 @@ initialized = TRUE return TRUE +/datum/tgs_api/v5/proc/GetTopicPort() +#if defined(OPENDREAM) && defined(OPENDREAM_TOPIC_PORT_EXISTS) + return "[world.opendream_topic_port]" +#else + return null +#endif + /datum/tgs_api/v5/proc/RequireInitialBridgeResponse() TGS_DEBUG_LOG("RequireInitialBridgeResponse()") var/logged = FALSE - while(!version) + while(!initial_bridge_request_received) if(!logged) TGS_DEBUG_LOG("RequireInitialBridgeResponse: Starting sleep") logged = TRUE - sleep(1) + sleep(world.tick_lag) TGS_DEBUG_LOG("RequireInitialBridgeResponse: Passed") @@ -183,17 +204,7 @@ var/datum/tgs_chat_channel/channel = I ids += channel.id - message2 = UpgradeDeprecatedChatMessage(message2) - - if (!length(channels)) - return - - var/list/data = message2._interop_serialize() - data[DMAPI5_CHAT_MESSAGE_CHANNEL_IDS] = ids - if(intercepted_message_queue) - intercepted_message_queue += list(data) - else - Bridge(DMAPI5_BRIDGE_COMMAND_CHAT_SEND, list(DMAPI5_BRIDGE_PARAMETER_CHAT_MESSAGE = data)) + SendChatMessageRaw(message2, ids) /datum/tgs_api/v5/ChatTargetedBroadcast(datum/tgs_message_content/message2, admin_only) var/list/channels = list() @@ -202,32 +213,82 @@ if (!channel.is_private_channel && ((channel.is_admin_channel && admin_only) || (!channel.is_admin_channel && !admin_only))) channels += channel.id + SendChatMessageRaw(message2, channels) + +/datum/tgs_api/v5/ChatPrivateMessage(datum/tgs_message_content/message2, datum/tgs_chat_user/user) + SendChatMessageRaw(message2, list(user.channel.id)) + +/datum/tgs_api/v5/proc/SendChatMessageRaw(datum/tgs_message_content/message2, list/channel_ids) message2 = UpgradeDeprecatedChatMessage(message2) - if (!length(channels)) + if (!length(channel_ids)) return var/list/data = message2._interop_serialize() - data[DMAPI5_CHAT_MESSAGE_CHANNEL_IDS] = channels + data[DMAPI5_CHAT_MESSAGE_CHANNEL_IDS] = channel_ids if(intercepted_message_queue) intercepted_message_queue += list(data) - else - Bridge(DMAPI5_BRIDGE_COMMAND_CHAT_SEND, list(DMAPI5_BRIDGE_PARAMETER_CHAT_MESSAGE = data)) + return -/datum/tgs_api/v5/ChatPrivateMessage(datum/tgs_message_content/message2, datum/tgs_chat_user/user) - message2 = UpgradeDeprecatedChatMessage(message2) - var/list/data = message2._interop_serialize() - data[DMAPI5_CHAT_MESSAGE_CHANNEL_IDS] = list(user.channel.id) - if(intercepted_message_queue) - intercepted_message_queue += list(data) + if(offline_message_queue) + offline_message_queue += list(data) + return + + if(detached) + offline_message_queue = list(data) + + WaitForReattach(FALSE) + + data = offline_message_queue + offline_message_queue = null + + for(var/queued_message in data) + SendChatDataRaw(queued_message) else - Bridge(DMAPI5_BRIDGE_COMMAND_CHAT_SEND, list(DMAPI5_BRIDGE_PARAMETER_CHAT_MESSAGE = data)) + SendChatDataRaw(data) + +/datum/tgs_api/v5/proc/SendChatDataRaw(list/data) + Bridge(DMAPI5_BRIDGE_COMMAND_CHAT_SEND, list(DMAPI5_BRIDGE_PARAMETER_CHAT_MESSAGE = data)) /datum/tgs_api/v5/ChatChannelInfo() RequireInitialBridgeResponse() WaitForReattach(TRUE) return chat_channels.Copy() +/datum/tgs_api/v5/TriggerEvent(event_name, list/parameters, wait_for_completion) + RequireInitialBridgeResponse() + WaitForReattach(TRUE) + + if(interop_version.minor < 9) + TGS_WARNING_LOG("Interop version too low for custom events!") + return FALSE + + var/str_parameters = list() + for(var/i in parameters) + str_parameters += "[i]" + + var/list/response = Bridge(DMAPI5_BRIDGE_COMMAND_EVENT, list(DMAPI5_BRIDGE_PARAMETER_EVENT_INVOCATION = list(DMAPI5_EVENT_INVOCATION_NAME = event_name, DMAPI5_EVENT_INVOCATION_PARAMETERS = str_parameters, DMAPI5_EVENT_INVOCATION_NOTIFY_COMPLETION = wait_for_completion))) + if(!response) + return FALSE + + var/event_id = response[DMAPI5_EVENT_ID] + if(!event_id) + return FALSE + + TGS_DEBUG_LOG("Created event ID: [event_id]") + if(!wait_for_completion) + return TRUE + + TGS_DEBUG_LOG("Waiting for completion of event ID: [event_id]") + + while(!pending_events[event_id]) + sleep(world.tick_lag) + + TGS_DEBUG_LOG("Completed wait on event ID: [event_id]") + pending_events -= event_id + + return TRUE + /datum/tgs_api/v5/proc/DecodeChannels(chat_update_json) TGS_DEBUG_LOG("DecodeChannels()") var/list/chat_channels_json = chat_update_json[DMAPI5_CHAT_UPDATE_CHANNELS] diff --git a/code/modules/tgs/v5/bridge.dm b/code/modules/tgs/v5/bridge.dm index 37f58bcdf632..0c5e701a32b6 100644 --- a/code/modules/tgs/v5/bridge.dm +++ b/code/modules/tgs/v5/bridge.dm @@ -48,7 +48,9 @@ var/json = CreateBridgeData(command, data, TRUE) var/encoded_json = url_encode(json) - var/url = "http://127.0.0.1:[server_port]/Bridge?[DMAPI5_BRIDGE_DATA]=[encoded_json]" + var/api_prefix = interop_version.minor >= 8 ? "api/" : "" + + var/url = "http://127.0.0.1:[server_port]/[api_prefix]Bridge?[DMAPI5_BRIDGE_DATA]=[encoded_json]" return url /datum/tgs_api/v5/proc/CreateBridgeData(command, list/data, needs_auth) @@ -63,7 +65,7 @@ if(detached) // Wait up to one minute for(var/i in 1 to 600) - sleep(1) + sleep(world.tick_lag) if(!detached && (!require_channels || length(chat_channels))) break @@ -75,17 +77,25 @@ /datum/tgs_api/v5/proc/PerformBridgeRequest(bridge_request) WaitForReattach(FALSE) + TGS_DEBUG_LOG("Bridge request start") // This is an infinite sleep until we get a response var/export_response = world.Export(bridge_request) + TGS_DEBUG_LOG("Bridge request complete") + if(!export_response) TGS_ERROR_LOG("Failed bridge request: [bridge_request]") return - var/response_json = file2text(export_response["CONTENT"]) - if(!response_json) + var/content = export_response["CONTENT"] + if(!content) TGS_ERROR_LOG("Failed bridge request, missing content!") return + var/response_json = TGS_FILE2TEXT_NATIVE(content) + if(!response_json) + TGS_ERROR_LOG("Failed bridge request, failed to load content!") + return + var/list/bridge_response = json_decode(response_json) if(!bridge_response) TGS_ERROR_LOG("Failed bridge request, bad json: [response_json]") diff --git a/code/modules/tgs/v5/topic.dm b/code/modules/tgs/v5/topic.dm index 2ef0c70a97fa..e1f2cb638578 100644 --- a/code/modules/tgs/v5/topic.dm +++ b/code/modules/tgs/v5/topic.dm @@ -175,6 +175,11 @@ var/list/reattach_response = TopicResponse(error_message) reattach_response[DMAPI5_PARAMETER_CUSTOM_COMMANDS] = ListCustomCommands() + reattach_response[DMAPI5_PARAMETER_TOPIC_PORT] = GetTopicPort() + + for(var/eventId in pending_events) + pending_events[eventId] = TRUE + return reattach_response if(DMAPI5_TOPIC_COMMAND_SEND_CHUNK) @@ -275,6 +280,15 @@ TGS_WORLD_ANNOUNCE(message) return TopicResponse() + if(DMAPI5_TOPIC_COMMAND_COMPLETE_EVENT) + var/event_id = topic_parameters[DMAPI5_EVENT_ID] + if (!istext(event_id)) + return TopicResponse("Invalid or missing [DMAPI5_EVENT_ID]") + + TGS_DEBUG_LOG("Completing event ID [event_id]...") + pending_events[event_id] = TRUE + return TopicResponse() + return TopicResponse("Unknown command: [command]") /datum/tgs_api/v5/proc/WorldBroadcast(message) diff --git a/code/modules/tgs/v5/undefs.dm b/code/modules/tgs/v5/undefs.dm index fd1ed7e4cf54..237207fdfd05 100644 --- a/code/modules/tgs/v5/undefs.dm +++ b/code/modules/tgs/v5/undefs.dm @@ -8,16 +8,17 @@ #undef DMAPI5_TOPIC_REQUEST_LIMIT #undef DMAPI5_TOPIC_RESPONSE_LIMIT -#undef DMAPI5_BRIDGE_COMMAND_PORT_UPDATE #undef DMAPI5_BRIDGE_COMMAND_STARTUP #undef DMAPI5_BRIDGE_COMMAND_PRIME #undef DMAPI5_BRIDGE_COMMAND_REBOOT #undef DMAPI5_BRIDGE_COMMAND_KILL #undef DMAPI5_BRIDGE_COMMAND_CHAT_SEND #undef DMAPI5_BRIDGE_COMMAND_CHUNK +#undef DMAPI5_BRIDGE_COMMAND_EVENT #undef DMAPI5_PARAMETER_ACCESS_IDENTIFIER #undef DMAPI5_PARAMETER_CUSTOM_COMMANDS +#undef DMAPI5_PARAMETER_TOPIC_PORT #undef DMAPI5_CHUNK #undef DMAPI5_CHUNK_PAYLOAD @@ -34,6 +35,7 @@ #undef DMAPI5_BRIDGE_PARAMETER_VERSION #undef DMAPI5_BRIDGE_PARAMETER_CHAT_MESSAGE #undef DMAPI5_BRIDGE_PARAMETER_MINIMUM_SECURITY_LEVEL +#undef DMAPI5_BRIDGE_PARAMETER_EVENT_INVOCATION #undef DMAPI5_BRIDGE_RESPONSE_NEW_PORT #undef DMAPI5_BRIDGE_RESPONSE_RUNTIME_INFORMATION @@ -81,6 +83,7 @@ #undef DMAPI5_TOPIC_COMMAND_SEND_CHUNK #undef DMAPI5_TOPIC_COMMAND_RECEIVE_CHUNK #undef DMAPI5_TOPIC_COMMAND_RECEIVE_BROADCAST +#undef DMAPI5_TOPIC_COMMAND_COMPLETE_EVENT #undef DMAPI5_TOPIC_PARAMETER_COMMAND_TYPE #undef DMAPI5_TOPIC_PARAMETER_CHAT_COMMAND @@ -116,3 +119,9 @@ #undef DMAPI5_CUSTOM_CHAT_COMMAND_NAME #undef DMAPI5_CUSTOM_CHAT_COMMAND_HELP_TEXT #undef DMAPI5_CUSTOM_CHAT_COMMAND_ADMIN_ONLY + +#undef DMAPI5_EVENT_ID + +#undef DMAPI5_EVENT_INVOCATION_NAME +#undef DMAPI5_EVENT_INVOCATION_PARAMETERS +#undef DMAPI5_EVENT_INVOCATION_NOTIFY_COMPLETION diff --git a/code/modules/tgui/states.dm b/code/modules/tgui/states.dm index e43c5c2375a1..d826840dc495 100644 --- a/code/modules/tgui/states.dm +++ b/code/modules/tgui/states.dm @@ -64,10 +64,10 @@ //if(!client && !HAS_TRAIT(src, TRAIT_PRESERVE_UI_WITHOUT_CLIENT)) if(!client) return UI_CLOSE - // Disable UIs if unconcious. + // Disable UIs if unconscious. else if(stat) return UI_DISABLED - // Update UIs if incapicitated but concious. + // Update UIs if incapicitated but conscious. else if(is_mob_incapacitated()) return UI_UPDATE return UI_INTERACTIVE @@ -80,13 +80,6 @@ return UI_UPDATE */ -/mob/living/silicon/robot/shared_ui_interaction(src_object) - // Disable UIs if the object isn't installed in the borg AND the borg is either locked, has a dead cell, or no cell. - var/atom/device = src_object - if((istype(device) && device.loc != src) && (!cell || cell.charge <= 0 || lockcharge)) - return UI_DISABLED - return ..() - /** * public * @@ -112,3 +105,26 @@ return UI_DISABLED // Otherwise, we got nothing. return UI_CLOSE + +/** + * public + * + * Check if in view. Can interact only if adjacent, updates within max distance, otherwise closes + * + * required src_object atom/movable The object which owns the UI. + * + * return UI_state The state of the UI. + */ +/mob/living/proc/shared_living_ui_in_view(atom/movable/src_object, viewcheck = TRUE, max_distance = 7) + // If the object is obscured, close it. + if(viewcheck && !(src_object in view(src))) + return UI_CLOSE + var/dist = get_dist(src_object, src) + // Open and interact if 1-0 tiles away. + if(dist <= 1) + return UI_INTERACTIVE + // View only if within distance. + else if(dist <= max_distance) + return UI_UPDATE + // Otherwise, we got nothing. + return UI_CLOSE diff --git a/code/modules/tgui/states/default.dm b/code/modules/tgui/states/default.dm index fa0a90f613f4..2ad35ef92143 100644 --- a/code/modules/tgui/states/default.dm +++ b/code/modules/tgui/states/default.dm @@ -25,12 +25,3 @@ GLOBAL_DATUM_INIT(default_state, /datum/ui_state/default, new) //if(. == UI_INTERACTIVE && !src.IsAdvancedToolUser())) // unhandy living mobs can only look, not touch. // return UI_UPDATE -/mob/living/silicon/ai/default_can_use_topic(src_object) - . = shared_ui_interaction(src_object) - if(. < UI_INTERACTIVE) - return - - // The AI can interact with anything it can see nearby, or with cameras while wireless control is enabled. - if(!control_disabled && can_see(src_object)) - return UI_INTERACTIVE - return UI_CLOSE diff --git a/code/modules/tgui/states/in_view.dm b/code/modules/tgui/states/in_view.dm new file mode 100644 index 000000000000..76ab16e8c794 --- /dev/null +++ b/code/modules/tgui/states/in_view.dm @@ -0,0 +1,15 @@ +//If in view and within view distance +GLOBAL_DATUM_INIT(in_view, /datum/ui_state/in_view, new) +/datum/ui_state/in_view/can_use_topic(src_object, mob/user) + return user.in_view_can_use_topic(src_object) // Call the individual mob-overridden procs. + +/mob/proc/in_view_can_use_topic(src_object) + return UI_CLOSE // Don't allow interaction by default. + +/mob/ghost/in_view_can_use_topic(src_object) + return UI_UPDATE //ghost can just watch + +/mob/living/in_view_can_use_topic(src_object) + . = shared_ui_interaction(src_object) + if(. > UI_CLOSE && loc) //must not be in nullspace. + . = min(., shared_living_ui_in_view(src_object)) // Check the distance and view... diff --git a/code/modules/tgui/tgui-say/modal.dm b/code/modules/tgui/tgui-say/modal.dm index f1e87e001cef..a57b907499fb 100644 --- a/code/modules/tgui/tgui-say/modal.dm +++ b/code/modules/tgui/tgui-say/modal.dm @@ -10,9 +10,7 @@ * string - A JSON encoded message to open the modal. */ /client/proc/tgui_say_create_open_command(channel) - var/message = TGUI_CREATE_MESSAGE("open", list( - channel = channel, - )) + var/message = TGUI_CREATE_OPEN_MESSAGE(channel) return "\".output tgui_say.browser:update [message]\"" /** @@ -36,6 +34,7 @@ /datum/tgui_say/New(client/client, id) src.client = client window = new(client, id) + winset(client, "tgui_say", "size=1,1;is-visible=0;") window.subscribe(src, PROC_REF(on_message)) window.is_browser = TRUE @@ -62,12 +61,15 @@ */ /datum/tgui_say/proc/load() window_open = FALSE - winshow(client, "tgui_say", FALSE) + + winset(client, "tgui_say", "pos=700,500;size=380,30;is-visible=0;") + window.send_message("props", list( lightMode = client.prefs?.tgui_say_light_mode, maxLength = max_length, - roles = client.admin_holder?.get_tgui_say_roles() + extraChannels = client.admin_holder?.get_tgui_say_extra_channels() )) + stop_thinking() return TRUE @@ -110,10 +112,10 @@ close() return TRUE if (type == "thinking") - if(payload["mode"] == TRUE) + if(payload["visible"] == TRUE) start_thinking() return TRUE - if(payload["mode"] == FALSE) + if(payload["visible"] == FALSE) stop_thinking() return TRUE return FALSE diff --git a/code/modules/tgui/tgui-say/typing.dm b/code/modules/tgui/tgui-say/typing.dm index 3334ff4a349c..e2d8e5fa2a07 100644 --- a/code/modules/tgui/tgui-say/typing.dm +++ b/code/modules/tgui/tgui-say/typing.dm @@ -22,6 +22,7 @@ remove_all_indicators() return ..() +/// Whether or not to show a typing indicator when speaking. Defaults to on. /client/verb/typing_indicator() set name = "Show/Hide Typing Indicator" set category = "Preferences.Chat" diff --git a/code/modules/tgui/tgui.dm b/code/modules/tgui/tgui.dm index c01452a5b421..96c96a45a75c 100644 --- a/code/modules/tgui/tgui.dm +++ b/code/modules/tgui/tgui.dm @@ -11,7 +11,7 @@ var/mob/user /// The object which owns the UI. var/datum/src_object - /// The title of te UI. + /// The title of the UI. var/title /// The window_id for browse() and onclose(). var/datum/tgui_window/window diff --git a/code/modules/tgui/tgui_alert.dm b/code/modules/tgui/tgui_alert.dm index ce606c74254b..a3fa3c519f01 100644 --- a/code/modules/tgui/tgui_alert.dm +++ b/code/modules/tgui/tgui_alert.dm @@ -8,8 +8,10 @@ * * title - The of the alert modal, shown on the top of the TGUI window. * * buttons - The options that can be chosen by the user, each string is assigned a button on the UI. * * timeout - The timeout of the alert, after which the modal will close and qdel itself. Set to zero for no timeout. + * * autofocus - The bool that controls if this alert should grab window focus. + * * ui_state - The TGUI UI state that will be returned in ui_state(). Default: always_state */ -/proc/tgui_alert(mob/user, message, title, list/buttons, timeout = 60 SECONDS) +/proc/tgui_alert(mob/user, message = "", title, list/buttons = list("Ok"), timeout = 60 SECONDS, autofocus = TRUE, ui_state = GLOB.always_state) if (!user) user = usr if (!istype(user)) @@ -17,8 +19,12 @@ var/client/client = user user = client.mob else - return - var/datum/tgui_modal/alert = new(user, message, title, buttons, timeout) + return null + + if(isnull(user.client)) + return null + + var/datum/tgui_modal/alert = new(user, message, title, buttons, timeout, autofocus, ui_state) alert.tgui_interact(user) alert.wait() if (alert) @@ -36,8 +42,10 @@ * * buttons - The options that can be chosen by the user, each string is assigned a button on the UI. * * callback - The callback to be invoked when a choice is made. * * timeout - The timeout of the alert, after which the modal will close and qdel itself. Set to zero for no timeout. + * * autofocus - The bool that controls if this alert should grab window focus. + * * ui_state - The TGUI UI state that will be returned in ui_state(). Default: always_state */ -/proc/tgui_alert_async(mob/user, message, title, list/buttons, datum/callback/callback, timeout = 60 SECONDS) +/proc/tgui_alert_async(mob/user, message = "", title, list/buttons = list("Ok"), datum/callback/callback, timeout = 60 SECONDS, autofocus = TRUE, ui_state = GLOB.always_state) if (!user) user = usr if (!istype(user)) @@ -45,8 +53,12 @@ var/client/client = user user = client.mob else - return - var/datum/tgui_modal/async/alert = new(user, message, title, buttons, callback, timeout) + return null + + if(isnull(user.client)) + return null + + var/datum/tgui_modal/async/alert = new(user, message, title, buttons, callback, timeout, autofocus, ui_state) alert.tgui_interact(user) /** @@ -68,13 +80,19 @@ var/start_time /// The lifespan of the tgui_modal, after which the window will close and delete itself. var/timeout + /// The bool that controls if this modal should grab window focus + var/autofocus /// Boolean field describing if the tgui_modal was closed by the user. var/closed + /// The TGUI UI state that will be returned in ui_state(). Default: always_state + var/datum/ui_state/state -/datum/tgui_modal/New(mob/user, message, title, list/buttons, timeout) - src.title = title - src.message = message +/datum/tgui_modal/New(mob/user, message, title, list/buttons, timeout, autofocus, ui_state) + src.autofocus = autofocus src.buttons = buttons.Copy() + src.message = message + src.title = title + src.state = ui_state if (timeout) src.timeout = timeout start_time = world.time @@ -82,15 +100,16 @@ /datum/tgui_modal/Destroy(force, ...) SStgui.close_uis(src) - buttons = null - . = ..() + state = null + buttons = null // TG QDEL_NULLs this + return ..() /** * Waits for a user's response to the tgui_modal's prompt before returning. Returns early if * the window was closed by the user. */ /datum/tgui_modal/proc/wait() - while (!choice && !closed) + while (!choice && !closed && !QDELETED(src)) stoplag(0.2 SECONDS) /datum/tgui_modal/tgui_interact(mob/user, datum/tgui/ui) @@ -104,30 +123,44 @@ closed = TRUE /datum/tgui_modal/ui_state(mob/user) - return GLOB.always_state + return state + +/datum/tgui_modal/ui_static_data(mob/user) + var/list/data = list() + data["autofocus"] = autofocus + data["buttons"] = buttons + data["message"] = message + data["large_buttons"] = FALSE // Pref? + data["swapped_buttons"] = FALSE // Pref? + data["title"] = title + return data /datum/tgui_modal/ui_data(mob/user) - . = list( - "title" = title, - "message" = message, - "buttons" = buttons - ) - + var/list/data = list() if(timeout) - .["timeout"] = clamp((timeout - (world.time - start_time) - 1 SECONDS) / (timeout - 1 SECONDS), 0, 1) + data["timeout"] = CLAMP01((timeout - (world.time - start_time) - 1 SECONDS) / (timeout - 1 SECONDS)) + return data -/datum/tgui_modal/ui_act(action, list/params) +/datum/tgui_modal/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) . = ..() if (.) return switch(action) if("choose") if (!(params["choice"] in buttons)) - return - choice = params["choice"] + CRASH("[ui.user] entered a non-existent button choice: [params["choice"]]") + set_choice(params["choice"]) + closed = TRUE + SStgui.close_uis(src) + return TRUE + if("cancel") + closed = TRUE SStgui.close_uis(src) return TRUE +/datum/tgui_modal/proc/set_choice(choice) + src.choice = choice + /** * # async tgui_modal * @@ -137,8 +170,8 @@ /// The callback to be invoked by the tgui_modal upon having a choice made. var/datum/callback/callback -/datum/tgui_modal/async/New(mob/user, message, title, list/buttons, callback, timeout) - ..(user, title, message, buttons, timeout) +/datum/tgui_modal/async/New(mob/user, message, title, list/buttons, callback, timeout, autofocus, ui_state) + ..(user, title, message, buttons, timeout, autofocus, ui_state) src.callback = callback /datum/tgui_modal/async/Destroy(force, ...) @@ -149,12 +182,10 @@ . = ..() qdel(src) -/datum/tgui_modal/async/ui_act(action, list/params) +/datum/tgui_modal/async/set_choice(choice) . = ..() - if (!. || choice == null) - return - callback.InvokeAsync(choice) - qdel(src) + if(!isnull(src.choice)) + callback?.InvokeAsync(src.choice) /datum/tgui_modal/async/wait() return diff --git a/code/modules/tgui/tgui_input_list.dm b/code/modules/tgui/tgui_input_list.dm index 198fb58ce5fd..ae15cbf621cd 100644 --- a/code/modules/tgui/tgui_input_list.dm +++ b/code/modules/tgui/tgui_input_list.dm @@ -21,25 +21,35 @@ * * This proc should be used to create alerts that the caller will wait for a response from. * Arguments: - * * user - The user to show the alert to. - * * message - The content of the alert, shown in the body of the TGUI window. + * * user - The user to show the input box to. + * * message - The content of the input box, shown in the body of the TGUI window. * * title - The title of the list input, shown on the top of the TGUI window. * * buttons - The options that can be chosen by the user, each string is assigned a button on the UI. * * timeout - The timeout of the alert, after which the list input will close and qdel itself. Set to zero for no timeout. * * theme - The ui theme to use for the TGUI window. + * * default - If an option is already preselected on the UI. Current values, etc. + * * ui_state - The TGUI UI state that will be returned in ui_state(). Default: always_state */ -/proc/tgui_input_list(mob/user, message, title, list/buttons, timeout = 0, theme = null) +/proc/tgui_input_list(mob/user, message, title = "Select", list/buttons, timeout = 0, theme = null, default, ui_state = GLOB.always_state) if (!user) user = usr if(!length(buttons)) - return + stack_trace("tgui_input_list called with no buttons!") + return null if (!istype(user)) if (istype(user, /client)) var/client/client = user user = client.mob else - return - var/datum/tgui_list_input/input = new(user, message, title, buttons, timeout, theme) + return null + + if(isnull(user.client)) + return null + + var/datum/tgui_list_input/input = new(user, message, title, buttons, timeout, theme, default, ui_state) + if(input.invalid) + qdel(input) + return input.tgui_interact(user) input.wait() if (input) @@ -51,26 +61,35 @@ * * This proc should be used to create inputs that invoke a callback with the user's chosen option. * Arguments: - * * user - The user to show the alert to. - * * message - The content of the alert, shown in the body of the TGUI window. - * * title - The of the alert modal, shown on the top of the TGUI window. + * * user - The user to show the input box to. + * * message - The content of the input box, shown in the body of the TGUI window. + * * title - The title of the list input, shown on the top of the TGUI window. * * buttons - The options that can be chosen by the user, each string is assigned a button on the UI. * * callback - The callback to be invoked when a choice is made. - * * timeout - The timeout of the alert, after which the modal will close and qdel itself. Set to zero for no timeout. + * * timeout - The timeout of the alert, after which the list_input will close and qdel itself. Set to zero for no timeout. * * theme - The ui theme to use for the TGUI window. + * * default - If an option is already preselected on the UI. Current values, etc. + * * ui_state - The TGUI UI state that will be returned in ui_state(). Default: always_state */ -/proc/tgui_input_list_async(mob/user, message, title, list/buttons, datum/callback/callback, timeout = 60 SECONDS, theme = null) +/proc/tgui_input_list_async(mob/user, message, title = "Select", list/buttons, datum/callback/callback, timeout = 60 SECONDS, theme = null, default, ui_state = GLOB.always_state) if (!user) user = usr if(!length(buttons)) - return + return null if (!istype(user)) if (istype(user, /client)) var/client/client = user user = client.mob else - return - var/datum/tgui_list_input/async/input = new(user, message, title, buttons, callback, timeout, theme) + return null + + if(isnull(user.client)) + return null + + var/datum/tgui_list_input/async/input = new(user, message, title, buttons, callback, timeout, theme, default, ui_state) + if(input.invalid) + qdel(input) + return input.tgui_interact(user) /** @@ -90,31 +109,44 @@ var/list/buttons_map /// The button that the user has pressed, null if no selection has been made var/choice - /// The time at which the tgui_modal was created, for displaying timeout progress. + /// The default button to be selected + var/default + /// The time at which the tgui_list_input was created, for displaying timeout progress. var/start_time - /// The lifespan of the tgui_modal, after which the window will close and delete itself. + /// The lifespan of the tgui_list_input, after which the window will close and delete itself. var/timeout - /// Boolean field describing if the tgui_modal was closed by the user. + /// Boolean field describing if the tgui_list_input was closed by the user. var/closed + /// The TGUI UI state that will be returned in ui_state(). Default: always_state + var/datum/ui_state/state /// String field for the theme to use var/ui_theme + /// Whether the tgui list input is invalid or not (i.e. due to all list entries being null) + var/invalid = FALSE -/datum/tgui_list_input/New(mob/user, message, title, list/buttons, timeout, theme = null) +/datum/tgui_list_input/New(mob/user, message, title, list/buttons, timeout, theme = null, default, ui_state) src.title = title src.message = message src.buttons = list() src.buttons_map = list() + src.default = default + src.state = ui_state src.ui_theme = theme - + var/list/repeat_items = list() // Gets rid of illegal characters var/static/regex/whitelistedWords = regex(@{"([^\u0020-\u8000]+)"}) for(var/i in buttons) + if(!i) + continue var/string_key = whitelistedWords.Replace("[i]", "") - + //avoids duplicated keys E.g: when areas have the same name + string_key = avoid_assoc_duplicate_keys(string_key, repeat_items) src.buttons += string_key src.buttons_map[string_key] = i + if(length(src.buttons) == 0) + invalid = TRUE if (timeout) src.timeout = timeout start_time = world.time @@ -122,8 +154,9 @@ /datum/tgui_list_input/Destroy(force, ...) SStgui.close_uis(src) - buttons = null - . = ..() + state = null + buttons = null // TG QDEL_NULLs this + return ..() /** * Waits for a user's response to the tgui_list_input's prompt before returning. Returns early if @@ -136,7 +169,7 @@ /datum/tgui_list_input/tgui_interact(mob/user, datum/tgui/ui) ui = SStgui.try_update_ui(user, src, ui) if(!ui) - ui = new(user, src, "ListInput") + ui = new(user, src, "ListInputWindow") ui.open() /datum/tgui_list_input/ui_close(mob/user) @@ -144,37 +177,45 @@ closed = TRUE /datum/tgui_list_input/ui_state(mob/user) - return GLOB.always_state + return state /datum/tgui_list_input/ui_static_data(mob/user) - . = list( - "title" = title, - "message" = message, - "buttons" = buttons, - "theme" = ui_theme - ) + var/list/data = list() + data["init_value"] = default || buttons[1] + data["items"] = buttons + data["large_buttons"] = FALSE // Pref? + data["message"] = message + data["swapped_buttons"] = FALSE // Pref? + data["title"] = title + data["theme"] = ui_theme + return data /datum/tgui_list_input/ui_data(mob/user) - . = list() + var/list/data = list() if(timeout) - .["timeout"] = clamp((timeout - (world.time - start_time) - 1 SECONDS) / (timeout - 1 SECONDS), 0, 1) + data["timeout"] = clamp((timeout - (world.time - start_time) - 1 SECONDS) / (timeout - 1 SECONDS), 0, 1) + return data -/datum/tgui_list_input/ui_act(action, list/params) +/datum/tgui_list_input/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) . = ..() if (.) return switch(action) - if("choose") - if (!(params["choice"] in buttons)) + if("submit") + if (!(params["entry"] in buttons)) return - choice = buttons_map[params["choice"]] + set_choice(buttons_map[params["entry"]]) + closed = TRUE SStgui.close_uis(src) return TRUE if("cancel") - SStgui.close_uis(src) closed = TRUE + SStgui.close_uis(src) return TRUE +/datum/tgui_list_input/proc/set_choice(choice) + src.choice = choice + /** * # async tgui_list_input * @@ -184,8 +225,8 @@ /// The callback to be invoked by the tgui_modal upon having a choice made. var/datum/callback/callback -/datum/tgui_list_input/async/New(mob/user, message, title, list/buttons, callback, timeout, theme = null) - ..(user, title, message, buttons, timeout, theme) +/datum/tgui_list_input/async/New(mob/user, message, title, list/buttons, callback, timeout, theme = null, default, ui_state) + ..(user, title, message, buttons, timeout, theme, default) src.callback = callback /datum/tgui_list_input/async/Destroy(force, ...) @@ -196,12 +237,10 @@ . = ..() qdel(src) -/datum/tgui_list_input/async/ui_act(action, list/params) +/datum/tgui_list_input/async/set_choice(choice) . = ..() - if (!. || choice == null) - return - callback.InvokeAsync(choice) - qdel(src) + if(!isnull(src.choice)) + callback?.InvokeAsync(src.choice) /datum/tgui_list_input/async/wait() return diff --git a/code/modules/tgui/tgui_number_input.dm b/code/modules/tgui/tgui_number_input.dm index aa189b1d2039..24ab49b22959 100644 --- a/code/modules/tgui/tgui_number_input.dm +++ b/code/modules/tgui/tgui_number_input.dm @@ -13,8 +13,10 @@ * * max_value - Specifies a maximum value. If none is set, any number can be entered. Pressing "max" defaults to 1000. * * min_value - Specifies a minimum value. Often 0. * * timeout - The timeout of the number input, after which the modal will close and qdel itself. Set to zero for no timeout. + * * integer_only - whether the inputted number is rounded down into an integer. + * * ui_state - The TGUI UI state that will be returned in ui_state(). Default: always_state */ -/proc/tgui_input_number(mob/user, message, title = "Number Input", default = 0, max_value = 10000, min_value = 0, timeout = 0, integer_only = TRUE) +/proc/tgui_input_number(mob/user, message, title = "Number Input", default = 0, max_value = 10000, min_value = 0, timeout = 0, integer_only = TRUE, ui_state = GLOB.always_state) if (!user) user = usr if (!istype(user)) @@ -22,8 +24,12 @@ var/client/client = user user = client.mob else - return - var/datum/tgui_input_number/number_input = new(user, message, title, default, max_value, min_value, timeout, integer_only) + return null + + if (isnull(user.client)) + return null + + var/datum/tgui_input_number/number_input = new(user, message, title, default, max_value, min_value, timeout, integer_only, ui_state) number_input.tgui_interact(user) number_input.wait() if (number_input) @@ -31,8 +37,9 @@ qdel(number_input) ///A clone of tgui_input_number that defaults to accepting negative inputs too. -/proc/tgui_input_real_number(mob/user, message, title = "Number Input", default = 0, max_value = SHORT_REAL_LIMIT, min_value = -SHORT_REAL_LIMIT, timeout = 0, integer_only = FALSE) - return tgui_input_number(user, message, title, default, max_value, min_value, timeout, integer_only) +/proc/tgui_input_real_number(mob/user, message, title = "Number Input", default = 0, max_value = SHORT_REAL_LIMIT, min_value = -SHORT_REAL_LIMIT, timeout = 0, integer_only = FALSE, ui_state = GLOB.always_state) + return tgui_input_number(user, message, title, default, max_value, min_value, timeout, integer_only, ui_state) + /** * Creates an asynchronous TGUI number input window with an associated callback. * @@ -47,8 +54,10 @@ * * min_value - Specifies a minimum value. Often 0. * * callback - The callback to be invoked when a choice is made. * * timeout - The timeout of the number input, after which the modal will close and qdel itself. Set to zero for no timeout. + * * integer_only - whether the inputted number is rounded down into an integer. + * * ui_state - The TGUI UI state that will be returned in ui_state(). Default: always_state */ -/proc/tgui_input_number_async(mob/user, message, title = "Number Input", default = 0, max_value = 10000, min_value = 0, datum/callback/callback, timeout = 60 SECONDS) +/proc/tgui_input_number_async(mob/user, message, title = "Number Input", default = 0, max_value = 10000, min_value = 0, datum/callback/callback, timeout = 60 SECONDS, integer_only = TRUE, ui_state = GLOB.always_state) if (!user) user = usr if (!istype(user)) @@ -57,7 +66,7 @@ user = client.mob else return - var/datum/tgui_input_number/async/number_input = new(user, message, title, default, max_value, min_value, callback, timeout) + var/datum/tgui_input_number/async/number_input = new(user, message, title, default, max_value, min_value, callback, timeout, integer_only, ui_state) number_input.tgui_interact(user) /** @@ -79,23 +88,25 @@ var/message /// The minimum value that can be entered. var/min_value + /// If the final value will be rounded + var/integer_only /// The time at which the number input was created, for displaying timeout progress. var/start_time /// The lifespan of the number input, after which the window will close and delete itself. var/timeout /// The title of the TGUI window var/title - /// If the final value will be rounded - var/integer_only + /// The TGUI UI state that will be returned in ui_state(). Default: always_state + var/datum/ui_state/state - -/datum/tgui_input_number/New(mob/user, message, title, default, max_value, min_value, timeout, integer_only) +/datum/tgui_input_number/New(mob/user, message, title, default, max_value, min_value, timeout, integer_only, ui_state) src.default = default src.max_value = max_value src.message = message src.min_value = min_value src.title = title src.integer_only = integer_only + src.state = ui_state if (timeout) src.timeout = timeout start_time = world.time @@ -113,7 +124,8 @@ /datum/tgui_input_number/Destroy(force, ...) SStgui.close_uis(src) - . = ..() + state = null + return ..() /** * Waits for a user's response to the tgui_input_number's prompt before returning. Returns early if @@ -135,38 +147,43 @@ closed = TRUE /datum/tgui_input_number/ui_state(mob/user) - return GLOB.always_state + return state /datum/tgui_input_number/ui_static_data(mob/user) - . = list( - "init_value" = default, // Default is a reserved keyword - "max_value" = max_value, - "message" = message, - "min_value" = min_value, - "preferences" = list(), - "title" = title, - ) + var/list/data = list() + data["init_value"] = default // Default is a reserved keyword + data["large_buttons"] = FALSE // Pref? + data["max_value"] = max_value + data["message"] = message + data["min_value"] = min_value + data["swapped_buttons"] = FALSE // Pref? + data["title"] = title + data["round_value"] = integer_only + return data /datum/tgui_input_number/ui_data(mob/user) - . = list() + var/list/data = list() if(timeout) - .["timeout"] = CLAMP01((timeout - (world.time - start_time) - 1 SECONDS) / (timeout - 1 SECONDS)) + data["timeout"] = CLAMP01((timeout - (world.time - start_time) - 1 SECONDS) / (timeout - 1 SECONDS)) + return data -/datum/tgui_input_number/ui_act(action, list/params) +/datum/tgui_input_number/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) . = ..() if (.) return switch(action) if("submit") - if(!isnum(params["entry"])) - CRASH("A non number was input into tgui input number by [usr]") var/choice = params["entry"] + if(!isnum(choice)) + CRASH("A non number was input into tgui input number by [ui.user]") + if(choice != choice) //isnan + CRASH("A NaN was input into tgui input number by [ui.user]") if(integer_only) - choice = round(params["entry"]) + choice = floor(choice) if(choice > max_value) - CRASH("A number greater than the max value was input into tgui input number by [usr]") + CRASH("A number greater than the max value was input into tgui input number by [ui.user]") if(choice < min_value) - CRASH("A number less than the min value was input into tgui input number by [usr]") + CRASH("A number less than the min value was input into tgui input number by [ui.user]") set_entry(choice) closed = TRUE SStgui.close_uis(src) @@ -177,7 +194,7 @@ return TRUE /datum/tgui_input_number/proc/set_entry(entry) - src.entry = entry + src.entry = entry /** * # async tgui_input_number @@ -188,8 +205,8 @@ /// The callback to be invoked by the tgui_input_number upon having a choice made. var/datum/callback/callback -/datum/tgui_input_number/async/New(mob/user, message, title, default, max_value, min_value, callback, timeout) - ..(user, message, title, default, max_value, min_value, timeout) +/datum/tgui_input_number/async/New(mob/user, message, title, default, max_value, min_value, callback, timeout, integer_only, ui_state) + ..(user, message, title, default, max_value, min_value, timeout, integer_only, ui_state) src.callback = callback /datum/tgui_input_number/async/Destroy(force, ...) diff --git a/code/modules/tgui/tgui_window.dm b/code/modules/tgui/tgui_window.dm index 21f4a8ba9421..987a2aca92a8 100644 --- a/code/modules/tgui/tgui_window.dm +++ b/code/modules/tgui/tgui_window.dm @@ -26,6 +26,18 @@ var/initial_inline_css var/mouse_event_macro_set = FALSE + /** + * Static list used to map in macros that will then emit execute events to the tgui window + * A small disclaimer though I'm no tech wiz: I don't think it's possible to map in right or middle + * clicks in the current state, as they're keywords rather than modifiers. + */ + var/static/list/byondToTguiEventMap = list( + "MouseDown" = "byond/mousedown", + "MouseUp" = "byond/mouseup", + "Ctrl" = "byond/ctrldown", + "Ctrl+UP" = "byond/ctrlup", + ) + /** * public * @@ -382,11 +394,6 @@ if(mouse_event_macro_set) return - var/list/byondToTguiEventMap = list( - "MouseDown" = "byond/mousedown", - "MouseUp" = "byond/mouseup" - ) - for(var/mouseMacro in byondToTguiEventMap) var/command_template = ".output CONTROL PAYLOAD" var/event_message = TGUI_CREATE_MESSAGE(byondToTguiEventMap[mouseMacro], null) @@ -404,14 +411,9 @@ winset(client, "[mouseMacro]Window[id]Macro", params) mouse_event_macro_set = TRUE - /datum/tgui_window/proc/remove_mouse_macro() if(!mouse_event_macro_set) stack_trace("Unsetting mouse macro on tgui window that has none") - var/list/byondToTguiEventMap = list( - "MouseDown" = "byond/mousedown", - "MouseUp" = "byond/mouseup" - ) for(var/mouseMacro in byondToTguiEventMap) winset(client, null, "[mouseMacro]Window[id]Macro.parent=null") mouse_event_macro_set = FALSE diff --git a/code/modules/tgui_input/checkboxes.dm b/code/modules/tgui_input/checkboxes.dm new file mode 100644 index 000000000000..fa90ee51d7b2 --- /dev/null +++ b/code/modules/tgui_input/checkboxes.dm @@ -0,0 +1,211 @@ +/** + * ### tgui_input_checkbox + * Opens a window with a list of checkboxes and returns a list of selected choices. + * + * * Arguments: + * * user - The mob to display the window to + * * message - The message inside the window + * * title - The title of the window + * * list/items - The list of items to display + * * min_checked - The minimum number of checkboxes that must be checked (defaults to 1) + * * max_checked - The maximum number of checkboxes that can be checked (optional) + * * timeout - The timeout for the input (optional) + * * theme - The ui theme to use for the TGUI window (optional). + * * ui_state - The TGUI UI state that will be returned in ui_state(). Default: always_state + */ +/proc/tgui_input_checkboxes(mob/user, message, title = "Select", list/items, min_checked = 1, max_checked = 50, timeout = 0, theme = null, ui_state = GLOB.always_state) + if (!user) + user = usr + if(!length(items)) + return null + if (!istype(user)) + if (istype(user, /client)) + var/client/client = user + user = client.mob + else + return null + + if(isnull(user.client)) + return null + + var/datum/tgui_checkbox_input/input = new(user, message, title, items, min_checked, max_checked, timeout, theme, ui_state) + input.tgui_interact(user) + input.wait() + if (input) + . = input.choices + qdel(input) + +/** + * ### tgui_input_checkbox + * Opens a window with a list of checkboxes and returns a list of selected choices. + * + * * Arguments: + * * user - The mob to display the window to + * * message - The message inside the window + * * title - The title of the window + * * list/items - The list of items to display + * * min_checked - The minimum number of checkboxes that must be checked (defaults to 1) + * * max_checked - The maximum number of checkboxes that can be checked (optional) + * * callback - The callback to be invoked when a choice is made. + * * timeout - The timeout for the input (optional) + * * theme - The ui theme to use for the TGUI window (optional). + * * ui_state - The TGUI UI state that will be returned in ui_state(). Default: always_state + */ +/proc/tgui_input_checkboxes_async(mob/user, message, title = "Select", list/items, min_checked = 1, max_checked = 50, datum/callback/callback, timeout = 0, theme = null, ui_state = GLOB.always_state) + if (!user) + user = usr + if(!length(items)) + return null + if (!istype(user)) + if (istype(user, /client)) + var/client/client = user + user = client.mob + else + return null + + if(isnull(user.client)) + return null + + var/datum/tgui_checkbox_input/async/input = new(user, message, title, items, min_checked, max_checked, callback, timeout, theme, ui_state) + input.tgui_interact(user) + +/// Window for tgui_input_checkboxes +/datum/tgui_checkbox_input + /// Title of the window + var/title + /// Message to display + var/message + /// List of items to display + var/list/items + /// List of selected items + var/list/choices + /// Time when the input was created + var/start_time + /// Timeout for the input + var/timeout + /// Whether the input was closed + var/closed + /// Minimum number of checkboxes that must be checked + var/min_checked + /// Maximum number of checkboxes that can be checked + var/max_checked + /// The TGUI UI state that will be returned in ui_state(). Default: always_state + var/datum/ui_state/state + /// String field for the theme to use + var/ui_theme + +/datum/tgui_checkbox_input/New(mob/user, message, title, list/items, min_checked, max_checked, timeout, theme = null, ui_state) + src.title = title + src.message = message + src.items = items.Copy() + src.min_checked = min_checked + src.max_checked = max_checked + src.state = ui_state + src.ui_theme = theme + + if (timeout) + src.timeout = timeout + start_time = world.time + QDEL_IN(src, timeout) + +/datum/tgui_checkbox_input/Destroy(force) + SStgui.close_uis(src) + state = null + items = null // TG QDEL_NULLs this + return ..() + +/** + * Waits for a user's response to the tgui_checkbox_input's prompt before returning. Returns early if + * the window was closed by the user. + */ +/datum/tgui_checkbox_input/proc/wait() + while (!closed && !QDELETED(src)) + stoplag(0.2 SECONDS) + +/datum/tgui_checkbox_input/tgui_interact(mob/user, datum/tgui/ui) + ui = SStgui.try_update_ui(user, src, ui) + if(!ui) + ui = new(user, src, "CheckboxInput") + ui.open() + +/datum/tgui_checkbox_input/ui_close(mob/user) + . = ..() + closed = TRUE + +/datum/tgui_checkbox_input/ui_state(mob/user) + return state + +/datum/tgui_checkbox_input/ui_data(mob/user) + var/list/data = list() + + if(timeout) + data["timeout"] = CLAMP01((timeout - (world.time - start_time) - 1 SECONDS) / (timeout - 1 SECONDS)) + + return data + +/datum/tgui_checkbox_input/ui_static_data(mob/user) + var/list/data = list() + + data["items"] = items + data["min_checked"] = min_checked + data["max_checked"] = max_checked + data["large_buttons"] = TRUE // Pref? + data["message"] = message + data["swapped_buttons"] = FALSE // Pref? + data["title"] = title + data["theme"] = ui_theme + + return data + +/datum/tgui_checkbox_input/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) + . = ..() + if (.) + return + + switch(action) + if("submit") + var/list/selections = params["entry"] + if(length(selections) >= min_checked && length(selections) <= max_checked) + set_choices(selections) + closed = TRUE + SStgui.close_uis(src) + return TRUE + + if("cancel") + closed = TRUE + SStgui.close_uis(src) + return TRUE + + return FALSE + +/datum/tgui_checkbox_input/proc/set_choices(list/selections) + src.choices = selections.Copy() + +/** + * # async tgui_checkbox_input + * + * An asynchronous version of tgui_checkbox_input to be used with callbacks instead of waiting on user responses. + */ +/datum/tgui_checkbox_input/async + /// The callback to be invoked by the tgui_modal upon having a choice made. + var/datum/callback/callback + +/datum/tgui_checkbox_input/async/New(mob/user, message, title, list/items, min_checked, max_checked, callback, timeout, theme = null, ui_state) + ..(user, message, title, items, min_checked, max_checked, callback, timeout, theme, ui_state) + src.callback = callback + +/datum/tgui_checkbox_input/async/Destroy(force, ...) + QDEL_NULL(callback) + . = ..() + +/datum/tgui_checkbox_input/async/ui_close(mob/user) + . = ..() + qdel(src) + +/datum/tgui_checkbox_input/async/set_choices(list/selections) + . = ..() + if(length(choices)) + callback?.InvokeAsync(choices) + +/datum/tgui_checkbox_input/async/wait() + return diff --git a/code/modules/tgui_input/text.dm b/code/modules/tgui_input/text.dm index 2a9b7f6dfff4..15c50554bb90 100644 --- a/code/modules/tgui_input/text.dm +++ b/code/modules/tgui_input/text.dm @@ -14,8 +14,10 @@ * * multiline - Bool that determines if the input box is much larger. Good for large messages, laws, etc. * * encode - Toggling this determines if input is filtered via html_encode. Setting this to FALSE gives raw input. * * timeout - The timeout of the textbox, after which the modal will close and qdel itself. Set to zero for no timeout. + * * trim - Whether or not to trim leading and trailing whitespace from your input. Defaults to TRUE + * * ui_state - The TGUI UI state that will be returned in ui_state(). Default: always_state */ -/proc/tgui_input_text(mob/user, message = "", title = "Text Input", default, max_length = MAX_MESSAGE_LEN, multiline = FALSE, encode = TRUE, timeout = 0) +/proc/tgui_input_text(mob/user, message = "", title = "Text Input", default, max_length = MAX_MESSAGE_LEN, multiline = FALSE, encode = TRUE, timeout = 0, trim = TRUE, ui_state = GLOB.always_state) if (!user) user = usr if (!istype(user)) @@ -23,7 +25,11 @@ var/client/client = user user = client.mob else - return + return null + + if(isnull(user.client)) + return null + // Client does NOT have tgui_input on: Returns regular input /* if(!user.client.prefs.read_preference(/datum/preference/toggle/tgui_input)) @@ -39,7 +45,7 @@ return input(user, message, title, default) as text|null */ - var/datum/tgui_input_text/text_input = new(user, message, title, default, max_length, multiline, encode, timeout) + var/datum/tgui_input_text/text_input = new(user, message, title, default, max_length, multiline, encode, timeout, trim, ui_state) text_input.tgui_interact(user) text_input.wait() if (text_input) @@ -73,14 +79,20 @@ var/timeout /// The title of the TGUI window var/title + /// The TGUI UI state that will be returned in ui_state(). Default: always_state + var/datum/ui_state/state + /// Whether to trim leading and trailing spaces + var/trim -/datum/tgui_input_text/New(mob/user, message, title, default, max_length, multiline, encode, timeout) +/datum/tgui_input_text/New(mob/user, message, title, default, max_length, multiline, encode, timeout, trim, ui_state) src.default = default src.encode = encode src.max_length = max_length src.message = message src.multiline = multiline src.title = title + src.state = ui_state + src.trim = trim if (timeout) src.timeout = timeout start_time = world.time @@ -88,6 +100,7 @@ /datum/tgui_input_text/Destroy(force, ...) SStgui.close_uis(src) + state = null return ..() /** @@ -109,7 +122,7 @@ closed = TRUE /datum/tgui_input_text/ui_state(mob/user) - return GLOB.always_state + return state /datum/tgui_input_text/ui_static_data(mob/user) var/list/data = list() @@ -141,7 +154,7 @@ CRASH("[usr] typed a text string longer than the max length") if(encode && (length(html_encode(params["entry"])) > max_length)) to_chat(usr, SPAN_NOTICE("Your message was clipped due to special character usage.")) - set_entry(params["entry"]) + set_entry(params["entry"], trim) closed = TRUE SStgui.close_uis(src) return TRUE @@ -156,7 +169,10 @@ * This can sometimes result in a string that is longer than the max length. * If the string is longer than the max length, it will be clipped. */ -/datum/tgui_input_text/proc/set_entry(entry) +/datum/tgui_input_text/proc/set_entry(entry, trim) if(!isnull(entry)) var/converted_entry = encode ? html_encode(entry) : entry - src.entry = trim(converted_entry, max_length) + if(trim) + src.entry = trim(converted_entry) + else + src.entry = converted_entry diff --git a/code/modules/tgui_panel/ping_relay.dm b/code/modules/tgui_panel/ping_relay.dm new file mode 100644 index 000000000000..36929a2e33b0 --- /dev/null +++ b/code/modules/tgui_panel/ping_relay.dm @@ -0,0 +1,52 @@ +GLOBAL_DATUM_INIT(relays_panel, /datum/ping_relay_tgui, new) + +/datum/tgui_panel/proc/ping_relays() + GLOB.relays_panel.tgui_interact(client.mob) + +/datum/ping_relay_tgui/tgui_interact(mob/user, datum/tgui/ui) + var/list/relay_ping_conf = CONFIG_GET(keyed_list/connection_relay_ping) + if(!length(relay_ping_conf)) + to_chat(user, "There are no relays configured to test.") + return + + ui = SStgui.try_update_ui(user, src, ui) + if(!ui) + ui = new(user, src, "PingRelaysPanel", "Relay Pings") + ui.open() + ui.set_autoupdate(FALSE) + +/datum/ping_relay_tgui/ui_state(mob/user) + return GLOB.always_state + +/datum/ping_relay_tgui/ui_static_data(mob/user) + var/list/data = list() + var/list/relay_names = list() + var/list/relay_pings = list() + var/list/relay_cons = list() + + var/list/relay_ping_conf = CONFIG_GET(keyed_list/connection_relay_ping) + var/list/relay_con_conf = CONFIG_GET(keyed_list/connection_relay_con) + for(var/key in relay_ping_conf) + // assumption: keys are the same in both configs + relay_names += key + relay_pings += relay_ping_conf[key] + relay_cons += relay_con_conf[key] + + data["relay_names"] = relay_names + data["relay_pings"] = relay_pings + data["relay_cons"] = relay_cons + return data + +/datum/ping_relay_tgui/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) + . = ..() + if(.) + return + + var/mob/user = ui.user + + switch(action) + if("connect") + to_chat(user, "Now connecting via [params["desc"]]. Please wait..."); + user << link(params["url"]) + ui.close() + return diff --git a/code/modules/tgui_panel/telemetry.dm b/code/modules/tgui_panel/telemetry.dm index eb5c7d96a4d9..bd49596aa19a 100644 --- a/code/modules/tgui_panel/telemetry.dm +++ b/code/modules/tgui_panel/telemetry.dm @@ -85,8 +85,8 @@ var/list/row = telemetry_connections[i] // Check for a malformed history object - if (!row || row.len < 3 || (!row["ckey"] || !row["address"] || !row["computer_id"])) - return + if (LAZYLEN(row) < 3 || (!row["ckey"] || !row["address"] || !row["computer_id"])) + continue /* TODO - Reintroduce this when we get a proper round ID tracking, and we want to log it to database @@ -103,7 +103,7 @@ continue */ - if (world.IsBanned(row["ckey"], row["address"], row["computer_id"], real_bans_only = TRUE)) + if (world.IsBanned(row["ckey"], row["address"], row["computer_id"], real_bans_only = TRUE, is_telemetry = TRUE)) found = row break diff --git a/code/modules/tgui_panel/tgui_panel.dm b/code/modules/tgui_panel/tgui_panel.dm index f33f190d80e0..25338a4a3b5d 100644 --- a/code/modules/tgui_panel/tgui_panel.dm +++ b/code/modules/tgui_panel/tgui_panel.dm @@ -92,6 +92,9 @@ if(type == "telemetry") analyze_telemetry(payload) return TRUE + if(type == "act/ping_relays") + ping_relays() + return TRUE /** * public diff --git a/code/modules/unit_tests/_unit_tests.dm b/code/modules/unit_tests/_unit_tests.dm index 9ed3183e5b3d..6f2b63e5b9e8 100644 --- a/code/modules/unit_tests/_unit_tests.dm +++ b/code/modules/unit_tests/_unit_tests.dm @@ -41,7 +41,7 @@ /// Intended to be used in the manner of `TEST_FOCUS(/datum/unit_test/math)` #define TEST_FOCUS(test_path) ##test_path { focus = TRUE; } -/// Logs a noticable message on GitHub, but will not mark as an error. +/// Logs a noticeable message on GitHub, but will not mark as an error. /// Use this when something shouldn't happen and is of note, but shouldn't block CI. /// Does not mark the test as failed. #define TEST_NOTICE(source, message) source.log_for_test((##message), "notice", __FILE__, __LINE__) @@ -74,19 +74,24 @@ /// A trait source when adding traits through unit tests #define TRAIT_SOURCE_UNIT_TESTS "unit_tests" +// Unit tests #include "autowiki.dm" +#include "check_runtimes.dm" #include "create_and_destroy.dm" -#include "focus_only_tests.dm" +#include "emote_panels.dm" #include "missing_icons.dm" #include "resist.dm" +#include "spawn_humans.dm" #include "spritesheets.dm" #include "subsystem_init.dm" #include "tgui_create_message.dm" #include "timer_sanity.dm" +#include "tutorials.dm" +#include "xeno_strains.dm" + +// Unit tests backend +#include "focus_only_tests.dm" #include "unit_test.dm" -#include "spawn_humans.dm" -#include "check_runtimes.dm" -#include "emote_panels.dm" #undef TEST_ASSERT #undef TEST_ASSERT_EQUAL diff --git a/code/modules/unit_tests/spritesheets.dm b/code/modules/unit_tests/spritesheets.dm index c7c16c6535e8..142d3f958821 100644 --- a/code/modules/unit_tests/spritesheets.dm +++ b/code/modules/unit_tests/spritesheets.dm @@ -2,6 +2,7 @@ /datum/unit_test/spritesheets /datum/unit_test/spritesheets/Run() + var/regex/valid_css_class = new(@"^([\l_][\w\-]|[\l_\-][\l_])") for(var/datum/asset/spritesheet/sheet as anything in subtypesof(/datum/asset/spritesheet)) if(!initial(sheet.name)) //Ignore abstract types continue @@ -9,3 +10,6 @@ for(var/sprite_name in sheet.sprites) if(!sprite_name) TEST_FAIL("Spritesheet [sheet.type] has a nameless icon state.") + if(!valid_css_class.Find(sprite_name)) + // https://www.w3.org/TR/CSS2/syndata.html#value-def-identifier + TEST_FAIL("Spritesheet [sheet.type] has a icon state that doesn't comply with css standards: '[sprite_name]'.") diff --git a/code/modules/unit_tests/tutorials.dm b/code/modules/unit_tests/tutorials.dm new file mode 100644 index 000000000000..d835a4f272cb --- /dev/null +++ b/code/modules/unit_tests/tutorials.dm @@ -0,0 +1,19 @@ +/datum/unit_test/tutorials + +/datum/unit_test/tutorials/Run() + var/datum/tutorial/base_path = /datum/tutorial + for(var/datum/tutorial/tutorial_path as anything in subtypesof(base_path)) + if(initial(tutorial_path.parent_path) == tutorial_path) + continue + + // Make sure these variables are overridden on any subtypes. + TEST_ASSERT_NOTEQUAL(initial(tutorial_path.name), initial(base_path.name), + "[tutorial_path] does not have a name set.") + TEST_ASSERT_NOTEQUAL(initial(tutorial_path.tutorial_id), initial(base_path.tutorial_id), + "[tutorial_path] does not have a tutorial_id set.") + TEST_ASSERT_NOTEQUAL(initial(tutorial_path.desc), initial(base_path.desc), + "[tutorial_path] does not have a desc set.") + TEST_ASSERT_NOTEQUAL(initial(tutorial_path.icon_state), initial(base_path.icon_state), + "[tutorial_path] does not have an icon_state set.") + +// TODO: Add a test verifying that a basic tutorial can be started and completed. (Requires unit test client handling) diff --git a/code/modules/unit_tests/unit_test.dm b/code/modules/unit_tests/unit_test.dm index 30eae6eef44e..cf02cdf62155 100644 --- a/code/modules/unit_tests/unit_test.dm +++ b/code/modules/unit_tests/unit_test.dm @@ -64,7 +64,7 @@ GLOBAL_VAR_INIT(focused_test, focused_test()) /datum/unit_test/Destroy() QDEL_LIST(allocated) // clear the test area - for (var/turf/turf in block(locate(1, 1, run_loc_floor_bottom_left.z), locate(world.maxx, world.maxy, run_loc_floor_bottom_left.z))) + for (var/turf/turf as anything in Z_TURFS(run_loc_floor_bottom_left.z)) for (var/content in turf.contents) if (istype(content, /obj/effect/landmark)) continue @@ -87,7 +87,7 @@ GLOBAL_VAR_INIT(focused_test, focused_test()) /datum/unit_test/proc/allocate(type, ...) var/list/arguments = args.Copy(2) if(ispath(type, /atom)) - if (!arguments.len) + if (!length(arguments)) arguments = list(run_loc_floor_bottom_left) else if (arguments[1] == null) arguments[1] = run_loc_floor_bottom_left diff --git a/code/modules/unit_tests/xeno_strains.dm b/code/modules/unit_tests/xeno_strains.dm new file mode 100644 index 000000000000..6609f977efeb --- /dev/null +++ b/code/modules/unit_tests/xeno_strains.dm @@ -0,0 +1,59 @@ +/datum/unit_test/xeno_strains + +/datum/unit_test/xeno_strains/Run() + for(var/mob/living/carbon/xenomorph/caste_mob as anything in subtypesof(/mob/living/carbon/xenomorph)) + var/datum/caste_datum/caste_datum = GLOB.xeno_datum_list[initial(caste_mob.caste_type)] + if(!caste_datum) + // not really strain related but may as well have this in here + TEST_FAIL("[caste_mob] has no `/datum/caste_datum`! (Possible mismatch of `caste_type`)") + continue + + for(var/datum/xeno_strain/strain_path as anything in caste_datum.available_strains) + // Check for these, but test the strain either way. + if(!initial(strain_path.name)) + TEST_FAIL("[strain_path] has no name!") + if(!initial(strain_path.description)) + TEST_FAIL("[strain_path] has no description!") + + test_strain(caste_mob, strain_path) + +/datum/unit_test/xeno_strains/proc/test_strain(mob_path, strain_path) + var/mob/living/carbon/xenomorph/fred = allocate(mob_path) + var/datum/xeno_strain/strain = new strain_path() + + strain._add_to_xeno(fred) + + // Actions which should have been removed. + var/list/removed_actions = strain.actions_to_remove + // Exclude any actions which are in both strain lists (re-added afterwards). + removed_actions -= (removed_actions & strain.actions_to_add) + + // Actions which should have been added. + var/list/added_actions = strain.actions_to_add.Copy() + + for(var/datum/action/action as anything in fred.actions) + if(action.type in removed_actions) + TEST_FAIL("[strain.type] failed to remove [action.type] when added to a Xenomorph!") + if(action.type in added_actions) + // Remove this action from `added_actions`. + added_actions -= action.type + // If there's anything left in `added_actions`, then something wasn't given to the xeno. + if(length(added_actions)) + TEST_FAIL("[strain.type] failed to give the following actions when added to a Xenomorph: [json_encode(added_actions)]") + + // If the strain has a `/datum/behavior_delegate`, but it wasn't applied to the xeno. + if(strain.behavior_delegate_type && !istype(fred.behavior_delegate, strain.behavior_delegate_type)) + TEST_FAIL("[strain.type]'s behavior_delegate was not applied when added to a Xenomorph!") + + // If the strain doesn't have a custom icon state set. + if(!strain.icon_state_prefix) + // Check if any of the sprites in the xeno's .dmi file belong to this strain. + // If there are any, it probably means that someone just forgot to add an `icon_state_prefix` to the strain. + for(var/icon_state in icon_states(fred.icon)) + if(string_starts_with(icon_state, strain.name)) // (This won't catch everything, but it should get the easy ones.) + TEST_FAIL("[fred.icon] contains sprites for [strain.type] that aren't being used!") + break + + // If the strain *does* have a custom icon state set, but the xeno's sprite wasn't changed to it. + else if(!string_starts_with(fred.icon_state, strain.icon_state_prefix)) + TEST_FAIL("[strain.type]'s icon_state_prefix was not applied when added to a Xenomorph!") diff --git a/code/modules/vehicles/apc/apc.dm b/code/modules/vehicles/apc/apc.dm index 24b137a6804a..b7d35f21fbe3 100644 --- a/code/modules/vehicles/apc/apc.dm +++ b/code/modules/vehicles/apc/apc.dm @@ -87,7 +87,7 @@ GLOBAL_LIST_EMPTY(command_apc_list) /obj/vehicle/multitile/apc/load_role_reserved_slots() var/datum/role_reserved_slots/RRS = new RRS.category_name = "Crewmen" - RRS.roles = list(JOB_CREWMAN, JOB_WO_CREWMAN, JOB_UPP_CREWMAN, JOB_PMC_CREWMAN) + RRS.roles = list(JOB_TANK_CREW, JOB_WO_CREWMAN, JOB_UPP_CREWMAN, JOB_PMC_CREWMAN) RRS.total = 2 role_reserved_slots += RRS @@ -178,7 +178,7 @@ GLOBAL_LIST_EMPTY(command_apc_list) V.add_hardpoint(FPW) FPW.dir = turn(V.dir, 90) FPW.name = "Left "+ initial(FPW.name) - FPW.origins = list(2, 0) + FPW.origins = list(1, 0) FPW.muzzle_flash_pos = list( "1" = list(-18, 14), "2" = list(18, -42), @@ -191,7 +191,7 @@ GLOBAL_LIST_EMPTY(command_apc_list) V.add_hardpoint(FPW) FPW.dir = turn(V.dir, -90) FPW.name = "Right "+ initial(FPW.name) - FPW.origins = list(-2, 0) + FPW.origins = list(-1, 0) FPW.muzzle_flash_pos = list( "1" = list(16, 14), "2" = list(-18, -42), diff --git a/code/modules/vehicles/apc/apc_command.dm b/code/modules/vehicles/apc/apc_command.dm index e0862ae4f2ab..8d056daec2ea 100644 --- a/code/modules/vehicles/apc/apc_command.dm +++ b/code/modules/vehicles/apc/apc_command.dm @@ -43,8 +43,6 @@ return ..() /obj/vehicle/multitile/apc/command/process() - . = ..() - var/turf/apc_turf = get_turf(src) if(health == 0 || !visible_in_tacmap || !is_ground_level(apc_turf.z)) return @@ -70,7 +68,7 @@ /obj/vehicle/multitile/apc/command/load_role_reserved_slots() var/datum/role_reserved_slots/RRS = new RRS.category_name = "Crewmen" - RRS.roles = list(JOB_CREWMAN, JOB_WO_CREWMAN, JOB_UPP_CREWMAN, JOB_PMC_CREWMAN) + RRS.roles = list(JOB_TANK_CREW, JOB_WO_CREWMAN, JOB_UPP_CREWMAN, JOB_PMC_CREWMAN) RRS.total = 2 role_reserved_slots += RRS diff --git a/code/modules/vehicles/apc/apc_medical.dm b/code/modules/vehicles/apc/apc_medical.dm index f8809bedaa73..7d462e7da27b 100644 --- a/code/modules/vehicles/apc/apc_medical.dm +++ b/code/modules/vehicles/apc/apc_medical.dm @@ -32,7 +32,7 @@ /obj/vehicle/multitile/apc/medical/load_role_reserved_slots() var/datum/role_reserved_slots/RRS = new RRS.category_name = "Crewmen" - RRS.roles = list(JOB_CREWMAN, JOB_WO_CREWMAN, JOB_UPP_CREWMAN, JOB_PMC_CREWMAN) + RRS.roles = list(JOB_TANK_CREW, JOB_WO_CREWMAN, JOB_UPP_CREWMAN, JOB_PMC_CREWMAN) RRS.total = 2 role_reserved_slots += RRS diff --git a/code/modules/vehicles/apc/interior.dm b/code/modules/vehicles/apc/interior.dm index d3947db2b8c8..86b33a89c885 100644 --- a/code/modules/vehicles/apc/interior.dm +++ b/code/modules/vehicles/apc/interior.dm @@ -61,7 +61,7 @@ if(!SG_seat) SG_seat = locate() in get_turf(src) if(!SG_seat) - . += SPAN_WARNING("ERROR HAS OCCURED! NO SEAT FOUND, TELL A DEV!") + . += SPAN_WARNING("ERROR HAS OCCURRED! NO SEAT FOUND, TELL A DEV!") return for(var/obj/item/hardpoint/special/firing_port_weapon/FPW in SG_seat.vehicle.hardpoints) if(FPW.allowed_seat == SG_seat.seat) @@ -76,7 +76,7 @@ if(!SG_seat) SG_seat = locate() in get_turf(src) if(!SG_seat) - to_chat(H, SPAN_WARNING("ERROR HAS OCCURED! NO SEAT FOUND, TELL A DEV!")) + to_chat(H, SPAN_WARNING("ERROR HAS OCCURRED! NO SEAT FOUND, TELL A DEV!")) return if(!SG_seat.buckled_mob && !H.buckled) SG_seat.do_buckle(H, H) diff --git a/code/modules/vehicles/arc/arc.dm b/code/modules/vehicles/arc/arc.dm new file mode 100644 index 000000000000..8f5a8ee5d8e9 --- /dev/null +++ b/code/modules/vehicles/arc/arc.dm @@ -0,0 +1,270 @@ +/obj/vehicle/multitile/arc + name = "\improper M540-B Armored Recon Carrier" + desc = "An M540-B Armored Recon Carrier. A lightly armored reconnaissance and intelligence vehicle. Entrances on the sides." + + icon = 'icons/obj/vehicles/arc.dmi' + icon_state = "arc_base" + pixel_x = -48 + pixel_y = -48 + + bound_width = 96 + bound_height = 96 + + bound_x = -32 + bound_y = -32 + + health = 800 + + interior_map = /datum/map_template/interior/arc + + passengers_slots = 2 // 5 total. Reserved slots are added to passenger slots. + xenos_slots = 4 + + entrances = list( + "right" = list(-2, 0), + ) + + entrance_speed = 0.5 SECONDS + + required_skill = SKILL_VEHICLE_LARGE + + movement_sound = 'sound/vehicles/tank_driving.ogg' + + luminosity = 7 + + hardpoints_allowed = list( + /obj/item/hardpoint/locomotion/arc_wheels, + /obj/item/hardpoint/primary/arc_sentry, + /obj/item/hardpoint/support/arc_antenna, + ) + + seats = list( + VEHICLE_DRIVER = null, + ) + + active_hp = list( + VEHICLE_DRIVER = null, + ) + + vehicle_flags = VEHICLE_CLASS_LIGHT + + mob_size_required_to_hit = MOB_SIZE_XENO + + dmg_multipliers = list( + "all" = 1, + "acid" = 1.8, + "slash" = 1.1, + "bullet" = 0.6, + "explosive" = 0.8, + "blunt" = 0.8, + "abstract" = 1, + ) + + move_max_momentum = 2.2 + move_momentum_build_factor = 1.5 + move_turn_momentum_loss_factor = 0.8 + + vehicle_ram_multiplier = VEHICLE_TRAMPLE_DAMAGE_APC_REDUCTION + + /// If the ARC has its antenna up, making it unable to move but enabling the turret and sensor wallhack + var/antenna_deployed = FALSE + /// How long it takes to deploy or retract the antenna + var/antenna_toggle_time = 10 SECONDS + /// Range of the ARC's xenomorph wallhacks + var/sensor_radius = 45 + /// weakrefs of xenos temporarily added to the marine minimap + var/list/minimap_added = list() + +/obj/vehicle/multitile/arc/Initialize() + . = ..() + + var/turf/gotten_turf = get_turf(src) + if(gotten_turf?.z) + SSminimaps.add_marker(src, gotten_turf.z, MINIMAP_FLAG_USCM, "arc", 'icons/ui_icons/map_blips_large.dmi') + + RegisterSignal(src, COMSIG_ARC_ANTENNA_TOGGLED, PROC_REF(on_antenna_toggle)) + +/obj/vehicle/multitile/arc/crew_mousedown(datum/source, atom/object, turf/location, control, params) + var/list/modifiers = params2list(params) + if(modifiers[SHIFT_CLICK] || modifiers[MIDDLE_CLICK] || modifiers[RIGHT_CLICK]) //don't step on examine, point, etc + return + + switch(get_mob_seat(source)) + if(VEHICLE_DRIVER) + if(modifiers[LEFT_CLICK] && modifiers[CTRL_CLICK]) + activate_horn() + +/obj/vehicle/multitile/arc/get_examine_text(mob/user) + . = ..() + if(!isxeno(user)) + return + + if(health > 0) + . += SPAN_XENO("[src] can be crawled under once destroyed.") + else + . += SPAN_XENO("[src] can be crawled under by dragging our sprite to it.") + +/obj/vehicle/multitile/arc/proc/on_antenna_toggle(datum/source) + SIGNAL_HANDLER + + if(antenna_deployed) + START_PROCESSING(SSslowobj, src) + + else + STOP_PROCESSING(SSslowobj, src) + +/obj/vehicle/multitile/arc/process() + var/turf/arc_turf = get_turf(src) + if((health <= 0) || !visible_in_tacmap || !is_ground_level(arc_turf.z)) + return + + var/obj/item/hardpoint/support/arc_antenna/antenna = locate() in hardpoints + if(!antenna || (antenna.health <= 0)) + for(var/datum/weakref/xeno as anything in minimap_added) + SSminimaps.remove_marker(xeno.resolve()) + minimap_added.Remove(xeno) + return + + for(var/mob/living/carbon/xenomorph/current_xeno as anything in GLOB.living_xeno_list) + var/turf/xeno_turf = get_turf(current_xeno) + if(!is_ground_level(xeno_turf.z)) + continue + + var/datum/weakref/xeno_weakref = WEAKREF(current_xeno) + + if(get_dist(src, current_xeno) <= sensor_radius) + if(xeno_weakref in minimap_added) + continue + + SSminimaps.remove_marker(current_xeno) + current_xeno.add_minimap_marker(MINIMAP_FLAG_USCM|MINIMAP_FLAG_XENO) + minimap_added += xeno_weakref + else if(xeno_weakref in minimap_added) + SSminimaps.remove_marker(current_xeno) + current_xeno.add_minimap_marker() + minimap_added -= xeno_weakref + +/obj/vehicle/multitile/arc/relaymove(mob/user, direction) + if(antenna_deployed) + return FALSE + + return ..() + +/obj/vehicle/multitile/arc/load_role_reserved_slots() + var/datum/role_reserved_slots/RRS = new + RRS.category_name = "CIC Officer" + RRS.roles = list(JOB_SO, JOB_SEA, JOB_XO, JOB_CO, JOB_GENERAL) + RRS.total = 2 + role_reserved_slots += RRS + + RRS = new + RRS.category_name = "Intelligence Officer" + RRS.roles = list(JOB_INTEL) + RRS.total = 1 + role_reserved_slots += RRS + +/obj/vehicle/multitile/arc/set_seated_mob(seat, mob/living/M) + . = ..() + if(!.) + return + + give_action(M, /datum/action/human_action/toggle_arc_antenna) + +/obj/vehicle/multitile/arc/add_seated_verbs(mob/living/M, seat) + if(!M.client) + return + add_verb(M.client, list( + /obj/vehicle/multitile/proc/get_status_info, + /obj/vehicle/multitile/arc/proc/open_arc_controls_guide, + /obj/vehicle/multitile/proc/toggle_door_lock, + /obj/vehicle/multitile/proc/activate_horn, + /obj/vehicle/multitile/proc/name_vehicle, + /obj/vehicle/multitile/arc/proc/toggle_antenna, + )) + +/obj/vehicle/multitile/arc/remove_seated_verbs(mob/living/M, seat) + if(!M.client) + return + remove_verb(M.client, list( + /obj/vehicle/multitile/proc/get_status_info, + /obj/vehicle/multitile/arc/proc/open_arc_controls_guide, + /obj/vehicle/multitile/proc/toggle_door_lock, + /obj/vehicle/multitile/proc/activate_horn, + /obj/vehicle/multitile/proc/name_vehicle, + /obj/vehicle/multitile/arc/proc/toggle_antenna, + )) + SStgui.close_user_uis(M, src) + +/obj/vehicle/multitile/arc/initialize_cameras(change_tag = FALSE) + if(!camera) + camera = new /obj/structure/machinery/camera/vehicle(src) + if(change_tag) + camera.c_tag = "#[rand(1,100)] M540-B \"[nickname]\" ARC" + if(camera_int) + camera_int.c_tag = camera.c_tag + " interior" + else + camera.c_tag = "#[rand(1,100)] M540-B ARC" + if(camera_int) + camera_int.c_tag = camera.c_tag + " interior" + +/obj/vehicle/multitile/arc/MouseDrop_T(mob/M, mob/user) + . = ..() + if((M != user) || !isxeno(user)) + return + + if(health > 0) + to_chat(user, SPAN_XENO("We can't go under [src] until it is destroyed!")) + return + + var/turf/current_turf = get_turf(user) + var/dir_to_go = get_dir(current_turf, src) + for(var/i in 1 to 3) + current_turf = get_step(current_turf, dir_to_go) + if(!(current_turf in locs)) + break + + if(current_turf.density) + to_chat(user, SPAN_XENO("The path under [src] is obstructed!")) + return + + // Now we check to make sure the turf on the other side of the ARC isn't dense too + current_turf = get_step(current_turf, dir_to_go) + if(current_turf.density) + to_chat(user, SPAN_XENO("The path under [src] is obstructed!")) + return + + to_chat(user, SPAN_XENO("We begin to crawl under [src]...")) + if(!do_after(user, 3 SECONDS, INTERRUPT_ALL, BUSY_ICON_HOSTILE)) + to_chat(user, SPAN_XENO("We stop crawling under [src].")) + return + + user.forceMove(current_turf) + to_chat(user, SPAN_XENO("We crawl to the other side of [src].")) + +/* +** PRESETS SPAWNERS +*/ +/obj/effect/vehicle_spawner/arc + name = "ARC Transport Spawner" + icon = 'icons/obj/vehicles/apc.dmi' + icon_state = "apc_base" + pixel_x = -48 + pixel_y = -48 + +/obj/effect/vehicle_spawner/arc/Initialize() + . = ..() + spawn_vehicle() + return INITIALIZE_HINT_QDEL + +/obj/effect/vehicle_spawner/arc/spawn_vehicle() + var/obj/vehicle/multitile/arc/ARC = new (loc) + + load_misc(ARC) + load_hardpoints(ARC) + handle_direction(ARC) + ARC.update_icon() + +/obj/effect/vehicle_spawner/arc/load_hardpoints(obj/vehicle/multitile/arc/vehicle) + vehicle.add_hardpoint(new /obj/item/hardpoint/locomotion/arc_wheels) + vehicle.add_hardpoint(new /obj/item/hardpoint/primary/arc_sentry) + vehicle.add_hardpoint(new /obj/item/hardpoint/support/arc_antenna) diff --git a/code/modules/vehicles/arc/interior.dm b/code/modules/vehicles/arc/interior.dm new file mode 100644 index 000000000000..c8d7d0934e4d --- /dev/null +++ b/code/modules/vehicles/arc/interior.dm @@ -0,0 +1,13 @@ +/obj/structure/interior_exit/vehicle/arc + name = "ARC side door" + icon = 'icons/obj/vehicles/interiors/arc.dmi' + icon_state = "exit_door" + +/obj/structure/prop/vehicle/arc + name = "ARC chassis" + + icon = 'icons/obj/vehicles/interiors/arc_chassis.dmi' + icon_state = "arc_chassis" + layer = ABOVE_TURF_LAYER + mouse_opacity = FALSE + diff --git a/code/modules/vehicles/arc/verbs.dm b/code/modules/vehicles/arc/verbs.dm new file mode 100644 index 000000000000..3b866236e77d --- /dev/null +++ b/code/modules/vehicles/arc/verbs.dm @@ -0,0 +1,121 @@ +/obj/vehicle/multitile/arc/proc/toggle_antenna(mob/toggler) + set name = "Toggle Sensor Antenna" + set desc = "Raises or lowers the external sensor antenna. While raised, the ARC cannot move." + set category = "Vehicle" + + var/mob/user = toggler || usr + if(!user || !istype(user)) + return + + var/obj/vehicle/multitile/arc/vehicle = user.interactee + if(!istype(vehicle)) + return + + var/seat + for(var/vehicle_seat in vehicle.seats) + if(vehicle.seats[vehicle_seat] == user) + seat = vehicle_seat + break + + if(!seat) + return + + if(vehicle.health < initial(vehicle.health) * 0.5) + to_chat(user, SPAN_WARNING("[vehicle]'s hull is too damaged to operate!")) + return + + var/obj/item/hardpoint/support/arc_antenna/antenna = locate() in vehicle.hardpoints + if(!antenna) + to_chat(user, SPAN_WARNING("[vehicle] has no antenna mounted!")) + return + + if(antenna.deploying) + return + + if(antenna.health <= 0) + to_chat(user, SPAN_WARNING("[antenna] is broken!")) + return + + if(vehicle.antenna_deployed) + to_chat(user, SPAN_NOTICE("You begin to retract [antenna]...")) + antenna.deploying = TRUE + if(!do_after(user, max(vehicle.antenna_toggle_time - antenna.deploy_animation_time, 1 SECONDS), target = vehicle)) + to_chat(user, SPAN_NOTICE("You stop retracting [antenna].")) + antenna.deploying = FALSE + return + + antenna.retract_antenna() + addtimer(CALLBACK(vehicle, PROC_REF(finish_antenna_retract), user), antenna.deploy_animation_time) + + else + to_chat(user, SPAN_NOTICE("You begin to extend [antenna]...")) + antenna.deploying = TRUE + if(!do_after(user, max(vehicle.antenna_toggle_time - antenna.deploy_animation_time, 1 SECONDS), target = vehicle)) + to_chat(user, SPAN_NOTICE("You stop extending [antenna].")) + antenna.deploying = FALSE + return + + antenna.deploy_antenna() + addtimer(CALLBACK(vehicle, PROC_REF(finish_antenna_deploy), user), antenna.deploy_animation_time) + +/obj/vehicle/multitile/arc/proc/finish_antenna_retract(mob/user) + var/obj/item/hardpoint/support/arc_antenna/antenna = locate() in hardpoints + if(!antenna) + antenna.deploying = FALSE + return + + if(user) + to_chat(user, SPAN_NOTICE("You retract [antenna], enabling the ARC to move again.")) + playsound(user, 'sound/machines/hydraulics_2.ogg', 80, TRUE) + antenna_deployed = !antenna_deployed + antenna.deploying = FALSE + update_icon() + SEND_SIGNAL(src, COMSIG_ARC_ANTENNA_TOGGLED) + +/obj/vehicle/multitile/arc/proc/finish_antenna_deploy(mob/user) + var/obj/item/hardpoint/support/arc_antenna/antenna = locate() in hardpoints + if(!antenna) + antenna.deploying = FALSE + return + + if(user) + to_chat(user, SPAN_NOTICE("You extend [antenna], locking the ARC in place.")) + playsound(user, 'sound/machines/hydraulics_2.ogg', 80, TRUE) + antenna_deployed = !antenna_deployed + antenna.deploying = FALSE + update_icon() + SEND_SIGNAL(src, COMSIG_ARC_ANTENNA_TOGGLED) + +/obj/vehicle/multitile/arc/proc/open_arc_controls_guide() + set name = "Vehicle Controls Guide" + set desc = "MANDATORY FOR FIRST PLAY AS VEHICLE CREWMAN OR AFTER UPDATES." + set category = "Vehicle" + + var/mob/user = usr + if(!istype(user)) + return + + var/obj/vehicle/multitile/arc/vehicle = user.interactee + if(!istype(vehicle)) + return + + var/seat + for(var/vehicle_seat in vehicle.seats) + if(vehicle.seats[vehicle_seat] == user) + seat = vehicle_seat + break + + if(!seat) + return + + var/dat = "Common verbs:
              \ + 1. \"G: Name Vehicle\" - used to add a custom name to the vehicle. Single use. 26 characters maximum.
              \ + 2. \"I: Get Status Info\" - brings up \"Vehicle Status Info\" window with all available information about your vehicle.
              \ + 3. \"G: Toggle Sensor Antenna\" - extend or retract the ARC's sensor antenna. While extended, all unknown lifeforms within a large range can be seen by all on the tacmap, but the ARC cannot move. Additionally enables the automated RE700 cannon.
              \ + Driver verbs:
              1. \"G: Activate Horn\" - activates vehicle horn. Keep in mind, that vehicle horn is very loud and can be heard from afar by both allies and foes.
              \ + 2. \"G: Toggle Door Locks\" - toggles vehicle's access restrictions. Crewman, Brig and Command accesses bypass these restrictions.
              \ + Driver shortcuts:
              1. \"CTRL + Click\" - activates vehicle horn.
              " + + show_browser(user, dat, "Vehicle Controls Guide", "vehicle_help", "size=900x500") + onclose(user, "vehicle_help") + return diff --git a/code/modules/vehicles/hardpoints/armor/ballistic.dm b/code/modules/vehicles/hardpoints/armor/ballistic.dm index 7fa19abf5b37..55f0f6bc4e6b 100644 --- a/code/modules/vehicles/hardpoints/armor/ballistic.dm +++ b/code/modules/vehicles/hardpoints/armor/ballistic.dm @@ -1,5 +1,5 @@ /obj/item/hardpoint/armor/ballistic - name = "Ballistic Armor" + name = "\improper Ballistic Armor" desc = "Protects the vehicle from high-penetration weapons" icon_state = "ballistic_armor" diff --git a/code/modules/vehicles/hardpoints/armor/caustic.dm b/code/modules/vehicles/hardpoints/armor/caustic.dm index 34bcf4c3b224..ac97d3da25f9 100644 --- a/code/modules/vehicles/hardpoints/armor/caustic.dm +++ b/code/modules/vehicles/hardpoints/armor/caustic.dm @@ -1,5 +1,5 @@ /obj/item/hardpoint/armor/caustic - name = "Caustic Armor" + name = "\improper Caustic Armor" desc = "Protects vehicles from most types of acid" icon_state = "caustic_armor" diff --git a/code/modules/vehicles/hardpoints/armor/concussive.dm b/code/modules/vehicles/hardpoints/armor/concussive.dm index a2e674255f2d..6da39b9c4173 100644 --- a/code/modules/vehicles/hardpoints/armor/concussive.dm +++ b/code/modules/vehicles/hardpoints/armor/concussive.dm @@ -1,5 +1,5 @@ /obj/item/hardpoint/armor/concussive - name = "Concussive Armor" + name = "\improper Concussive Armor" desc = "Protects the vehicle from high-impact weapons" icon_state = "concussive_armor" diff --git a/code/modules/vehicles/hardpoints/armor/paladin.dm b/code/modules/vehicles/hardpoints/armor/paladin.dm index 7635ffca74b3..fb131d47151e 100644 --- a/code/modules/vehicles/hardpoints/armor/paladin.dm +++ b/code/modules/vehicles/hardpoints/armor/paladin.dm @@ -1,5 +1,5 @@ /obj/item/hardpoint/armor/paladin - name = "Paladin Armor" + name = "\improper Paladin Armor" desc = "Protects the vehicle from large incoming explosive projectiles" icon_state = "paladin_armor" diff --git a/code/modules/vehicles/hardpoints/armor/snowplow.dm b/code/modules/vehicles/hardpoints/armor/snowplow.dm index 84e589658029..e7823854cff3 100644 --- a/code/modules/vehicles/hardpoints/armor/snowplow.dm +++ b/code/modules/vehicles/hardpoints/armor/snowplow.dm @@ -1,12 +1,12 @@ /obj/item/hardpoint/armor/snowplow - name = "Snowplow" + name = "\improper Snowplow" desc = "Clears a path in the snow for friendlies" icon_state = "snowplow" disp_icon = "tank" disp_icon_state = "snowplow" - health = 600 + health = 150 activatable = 1 /obj/item/hardpoint/armor/snowplow/livingmob_interact(mob/living/M) diff --git a/code/modules/vehicles/hardpoints/hardpoint.dm b/code/modules/vehicles/hardpoints/hardpoint.dm index acdefca18fd2..f94d0dc6b373 100644 --- a/code/modules/vehicles/hardpoints/hardpoint.dm +++ b/code/modules/vehicles/hardpoints/hardpoint.dm @@ -125,11 +125,19 @@ /// Currently selected target to fire at. Set with set_target(). var/atom/target + /// The type of projectile to fire + var/projectile_type = /obj/projectile //----------------------------- //------GENERAL PROCS---------- //----------------------------- +/obj/item/hardpoint/p_s(temp_gender) + if(!temp_gender) + temp_gender = gender + if(temp_gender == PLURAL) + . = "s" + /obj/item/hardpoint/Initialize() . = ..() set_bullet_traits() @@ -149,7 +157,7 @@ if(owner || indestructible) return - health = max(0, health - severity / 2) + take_damage(severity / 2) if(health <= 0) visible_message(SPAN_WARNING("\The [src] disintegrates into useless pile of scrap under the damage it suffered.")) deconstruct(TRUE) @@ -159,7 +167,7 @@ return /obj/item/hardpoint/proc/generate_bullet(mob/user, turf/origin_turf) - var/obj/projectile/P = new(origin_turf, create_cause_data(initial(name), user)) + var/obj/projectile/P = new projectile_type(origin_turf, create_cause_data(initial(name), user)) P.generate_bullet(new ammo.default_ammo) // Apply bullet traits from gun for(var/entry in traits_to_give) @@ -180,7 +188,14 @@ return TRUE /obj/item/hardpoint/proc/take_damage(damage) + if(health <= 0) + return health = max(0, health - damage * damage_multiplier) + if(!health) + on_destroy() + +/obj/item/hardpoint/proc/on_destroy() + return /obj/item/hardpoint/proc/is_activatable() if(health <= 0) @@ -292,7 +307,7 @@ if(health <= 0) data["health"] = null else - data["health"] = round(get_integrity_percent()) + data["health"] = floor(get_integrity_percent()) if(ammo) data["uses_ammo"] = TRUE @@ -305,45 +320,6 @@ return data -/// Traces backwards from the gun origin to the vehicle to check for obstacles between the vehicle and the muzzle. -/obj/item/hardpoint/proc/clear_los() - if(origins[1] == 0 && origins[2] == 0) //skipping check for modules we don't need this - return TRUE - - var/turf/muzzle_turf = get_origin_turf() - - var/turf/checking_turf = muzzle_turf - while(!(owner in checking_turf)) - // Dense turfs block LoS - if(checking_turf.density) - return FALSE - - // Ensure that we can pass over all objects in the turf - for(var/obj/object in checking_turf) - // Since vehicles are multitile the - if(object == owner) - continue - - // Non-dense objects are irrelevant - if(!object.density) - continue - - // Make sure we can pass object from all directions - if(!HAS_FLAG(object.pass_flags.flags_can_pass_all, PASS_OVER_THROW_ITEM)) - if(!HAS_FLAG(object.flags_atom, ON_BORDER)) - return FALSE - //If we're behind the object, check the behind pass flags - else if(dir == object.dir && !HAS_FLAG(object.pass_flags.flags_can_pass_behind, PASS_OVER_THROW_ITEM)) - return FALSE - //If we're in front, check front pass flags - else if(dir == turn(object.dir, 180) && !HAS_FLAG(object.pass_flags.flags_can_pass_front, PASS_OVER_THROW_ITEM)) - return FALSE - - // Trace back towards the vehicle - checking_turf = get_step(checking_turf, turn(dir,180)) - - return TRUE - //----------------------------- //------INTERACTION PROCS---------- //----------------------------- @@ -491,13 +467,13 @@ health += initial(health)/100 * (amount_fixed / amount_fixed_adjustment) if(health >= initial(health)) health = initial(health) - user.visible_message(SPAN_NOTICE("[user] finishes repairing \the [name]."), SPAN_NOTICE("You finish repairing \the [name]. The integrity of the module is at [SPAN_HELPFUL(round(get_integrity_percent()))]%.")) + user.visible_message(SPAN_NOTICE("[user] finishes repairing \the [name]."), SPAN_NOTICE("You finish repairing \the [name]. The integrity of the module is at [SPAN_HELPFUL(floor(get_integrity_percent()))]%.")) being_repaired = FALSE return - to_chat(user, SPAN_NOTICE("The integrity of \the [src] is now at [SPAN_HELPFUL(round(get_integrity_percent()))]%.")) + to_chat(user, SPAN_NOTICE("The integrity of \the [src] is now at [SPAN_HELPFUL(floor(get_integrity_percent()))]%.")) being_repaired = FALSE - user.visible_message(SPAN_NOTICE("[user] stops repairing \the [name]."), SPAN_NOTICE("You stop repairing \the [name]. The integrity of the module is at [SPAN_HELPFUL(round(get_integrity_percent()))]%.")) + user.visible_message(SPAN_NOTICE("[user] stops repairing \the [name]."), SPAN_NOTICE("You stop repairing \the [name]. The integrity of the module is at [SPAN_HELPFUL(floor(get_integrity_percent()))]%.")) return /// Setter proc for the automatic firing flag. @@ -581,7 +557,6 @@ /// Wrapper proc for the autofire system to ensure the important args aren't null. /obj/item/hardpoint/proc/fire_wrapper(atom/target, mob/living/user, params) - SHOULD_NOT_OVERRIDE(TRUE) if(!target) target = src.target if(!user) @@ -605,10 +580,6 @@ to_chat(user, SPAN_WARNING("The target is not within your firing arc!")) return NONE - if(!clear_los()) - to_chat(user, SPAN_WARNING("The muzzle is obstructed!")) - return NONE - return handle_fire(target, user, params) /// Actually fires the gun, sets up the projectile and fires it. @@ -688,7 +659,7 @@ if(muzzle_turf == target_turf) return FALSE - var/angle_diff = SIMPLIFY_DEGREES(dir2angle(dir) - get_angle(muzzle_turf, target_turf)) + var/angle_diff = (dir2angle(dir) - Get_Angle(muzzle_turf, target_turf)) %% 360 if(angle_diff < -180) angle_diff += 360 else if(angle_diff > 180) @@ -716,8 +687,10 @@ /obj/item/hardpoint/proc/get_icon_image(x_offset, y_offset, new_dir) var/is_broken = health <= 0 var/image/I = image(icon = disp_icon, icon_state = "[disp_icon_state]_[is_broken ? "1" : "0"]", pixel_x = x_offset, pixel_y = y_offset, dir = new_dir) - switch(round((health / initial(health)) * 100)) - if(0 to 20) + switch(floor((health / initial(health)) * 100)) + if(0) + I.color = "#888888" + if(1 to 20) I.color = "#4e4e4e" if(21 to 40) I.color = "#6e6e6e" @@ -792,3 +765,11 @@ /obj/item/hardpoint/get_applying_acid_time() return 10 SECONDS //you are not supposed to be able to easily combat-melt irreplaceable things. + +/// Proc to be overridden if you want to have special conditions preventing the removal of the hardpoint. Add chat messages in this proc if you want to tell the player why +/obj/item/hardpoint/proc/can_be_removed(mob/remover) + SHOULD_CALL_PARENT(TRUE) + + if(remover.stat > CONSCIOUS) + return FALSE + return TRUE diff --git a/code/modules/vehicles/hardpoints/hardpoint_ammo/arc_sentry_ammo.dm b/code/modules/vehicles/hardpoints/hardpoint_ammo/arc_sentry_ammo.dm new file mode 100644 index 000000000000..f9c28e151514 --- /dev/null +++ b/code/modules/vehicles/hardpoints/hardpoint_ammo/arc_sentry_ammo.dm @@ -0,0 +1,16 @@ +/obj/item/ammo_magazine/hardpoint/arc_sentry + name = "\improper RE700 Rotary Cannon Magazine" + desc = "A magazine for RE700 Rotary Cannon filled with 20mm rounds. Supports IFF." + caliber = "20mm" + icon_state = "ace_autocannon" + w_class = SIZE_LARGE + default_ammo = /datum/ammo/bullet/re700 + max_rounds = 500 + gun_type = /obj/item/hardpoint/primary/arc_sentry + +/obj/item/ammo_magazine/hardpoint/arc_sentry/update_icon() + if(current_rounds > 0) + icon_state = "ace_autocannon" + else + icon_state = "ace_autocannon_empty" + diff --git a/code/modules/vehicles/hardpoints/hardpoint_ammo/gl_ammo.dm b/code/modules/vehicles/hardpoints/hardpoint_ammo/gl_ammo.dm index 2ab0c3f828fb..bce002de1e36 100644 --- a/code/modules/vehicles/hardpoints/hardpoint_ammo/gl_ammo.dm +++ b/code/modules/vehicles/hardpoints/hardpoint_ammo/gl_ammo.dm @@ -4,7 +4,7 @@ caliber = "grenade" icon_state = "glauncher_2" w_class = SIZE_LARGE - default_ammo = /datum/ammo/grenade_container + default_ammo = /datum/ammo/grenade_container/tank_glauncher max_rounds = 10 gun_type = /obj/item/hardpoint/secondary/grenade_launcher diff --git a/code/modules/vehicles/hardpoints/hardpoint_ammo/tow_ammo.dm b/code/modules/vehicles/hardpoints/hardpoint_ammo/tow_ammo.dm index 59a5a18bb1fa..4e509211c6f6 100644 --- a/code/modules/vehicles/hardpoints/hardpoint_ammo/tow_ammo.dm +++ b/code/modules/vehicles/hardpoints/hardpoint_ammo/tow_ammo.dm @@ -5,6 +5,6 @@ caliber = "rocket" //correlates to any rocket mags icon_state = "quad_rocket" w_class = SIZE_LARGE - default_ammo = /datum/ammo/rocket/ap + default_ammo = /datum/ammo/rocket/ap/tank_towlauncher max_rounds = 5 gun_type = /obj/item/hardpoint/secondary/towlauncher diff --git a/code/modules/vehicles/hardpoints/holder/tank_turret.dm b/code/modules/vehicles/hardpoints/holder/tank_turret.dm index 896628e609bb..5be6a03863f2 100644 --- a/code/modules/vehicles/hardpoints/holder/tank_turret.dm +++ b/code/modules/vehicles/hardpoints/holder/tank_turret.dm @@ -1,5 +1,5 @@ /obj/item/hardpoint/holder/tank_turret - name = "M34A2-A Multipurpose Turret" + name = "\improper M34A2-A Multipurpose Turret" desc = "The centerpiece of the tank. Designed to support quick installation and deinstallation of various tank weapon modules. Has inbuilt smoke screen deployment system." icon = 'icons/obj/vehicles/tank.dmi' @@ -27,7 +27,7 @@ slot = HDPT_TURRET // big beefy chonk of metal - health = 750 + health = 450 damage_multiplier = 0.05 accepted_hardpoints = list( @@ -119,7 +119,7 @@ data += list(list( // turret smokescreen data "name" = "M34A2-A Turret Smoke Screen", - "health" = health <= 0 ? null : round(get_integrity_percent()), + "health" = health <= 0 ? null : floor(get_integrity_percent()), "uses_ammo" = TRUE, "current_rounds" = ammo.current_rounds / 2, "max_rounds"= ammo.max_rounds / 2, @@ -212,8 +212,3 @@ target = L return ..() - -/obj/item/hardpoint/holder/tank_turret/get_origin_turf() - var/origin_turf = ..() - origin_turf = get_step(get_step(origin_turf, owner.dir), owner.dir) //this should get us tile in front of tank to prevent grenade being stuck under us. - return origin_turf diff --git a/code/modules/vehicles/hardpoints/primary/arc_sentry.dm b/code/modules/vehicles/hardpoints/primary/arc_sentry.dm new file mode 100644 index 000000000000..30efdbcfd0e9 --- /dev/null +++ b/code/modules/vehicles/hardpoints/primary/arc_sentry.dm @@ -0,0 +1,194 @@ +// APC cannons +/obj/item/hardpoint/primary/arc_sentry + name = "\improper RE700 Rotary Cannon" + desc = "A primary two-barrel cannon for the ARC that shoots 12.7mm IFF-compatible rounds." + icon = 'icons/obj/vehicles/hardpoints/arc.dmi' + + icon_state = "autocannon" + disp_icon = "arc" + disp_icon_state = "autocannon" + activation_sounds = list('sound/weapons/gun_m60.ogg') + + damage_multiplier = 0.1 + health = 125 + + origins = list(0, 0) + + ammo = new /obj/item/ammo_magazine/hardpoint/arc_sentry + max_clips = 2 + + use_muzzle_flash = TRUE + angle_muzzleflash = FALSE + muzzleflash_icon_state = "muzzle_flash_double" + + muzzle_flash_pos = list( + "1" = list(1, 4), + "2" = list(1, -29), + "4" = list(16, 3), + "8" = list(-16, 3) + ) + gun_firemode = GUN_FIREMODE_BURSTFIRE + gun_firemode_list = list( + GUN_FIREMODE_BURSTFIRE, + ) + burst_delay = 2 + burst_amount = 3 + + /// Potential targets the turret can shoot at + var/list/targets = list() + /// The currently focused sentry target + var/atom/movable/sentry_target = null + /// The range that this turret can shoot at the furthest + var/turret_range = 5 + /// What factions this sentry is aligned with + var/faction_group = FACTION_LIST_MARINE + +/obj/item/hardpoint/primary/arc_sentry/on_install(obj/vehicle/multitile/vehicle) + . = ..() + RegisterSignal(owner, COMSIG_ARC_ANTENNA_TOGGLED, PROC_REF(toggle_processing)) + toggle_processing() // We can't know that the antenna is in the same position as when the gun was removed + +/obj/item/hardpoint/primary/arc_sentry/on_uninstall(obj/vehicle/multitile/vehicle) + . = ..() + UnregisterSignal(owner, COMSIG_ARC_ANTENNA_TOGGLED) + STOP_PROCESSING(SSfastobj, src) + +/obj/item/hardpoint/primary/arc_sentry/Destroy() + STOP_PROCESSING(SSfastobj, src) + sentry_target = null + return ..() + +/obj/item/hardpoint/primary/arc_sentry/proc/toggle_processing() + SIGNAL_HANDLER + if(!owner) + return + + var/obj/vehicle/multitile/arc/vehicle = owner + if(vehicle.antenna_deployed) + START_PROCESSING(SSfastobj, src) + + else + STOP_PROCESSING(SSfastobj, src) + +/obj/item/hardpoint/primary/arc_sentry/process() + for(var/mob/living/in_range_mob in range(turret_range, owner)) + targets |= in_range_mob + + if(!length(targets)) + return FALSE + + if(!sentry_target) + sentry_target = pick(targets) + + get_target(sentry_target) + return TRUE + +/obj/item/hardpoint/primary/arc_sentry/set_bullet_traits() + LAZYADD(traits_to_give, list( + BULLET_TRAIT_ENTRY(/datum/element/bullet_trait_iff, faction_group) + )) + +/obj/item/hardpoint/primary/arc_sentry/fire_wrapper(atom/target, mob/living/user, params) + if(!target) + target = src.target + if(!target) + return NONE + + return try_fire(target, null, params) + +/obj/item/hardpoint/primary/arc_sentry/start_fire(datum/source, atom/object, turf/location, control, params) + if(QDELETED(object)) + return + if(!COOLDOWN_FINISHED(src, fire_cooldown)) + return + + set_target(object) + SEND_SIGNAL(src, COMSIG_GUN_FIRE) + +/obj/item/hardpoint/primary/arc_sentry/proc/get_target(atom/movable/new_target) + if(QDELETED(new_target)) + sentry_target = null + return + + if(!targets.Find(new_target)) + targets.Add(new_target) + + if(!length(targets)) + return + + var/list/conscious_targets = list() + var/list/unconscious_targets = list() + + for(var/mob/living/living_mob as anything in targets) // orange allows sentry to fire through gas and darkness + if(living_mob.stat == DEAD) + purge_target(living_mob) + continue + + if(living_mob.get_target_lock(faction_group) || living_mob.invisibility || HAS_TRAIT(living_mob, TRAIT_ABILITY_BURROWED)) + purge_target(living_mob) + continue + + var/list/turf/path = get_line(get_turf(src), living_mob) + if(!length(path) || get_dist(get_turf(src), living_mob) > turret_range) + purge_target(living_mob) + continue + + var/blocked = FALSE + for(var/turf/tile as anything in path) + if(tile.density || tile.opacity) + blocked = TRUE + break + + for(var/obj/structure/struct in tile) + if(struct.opacity) + blocked = TRUE + break + + for(var/obj/vehicle/multitile/vehicle in tile) + if(vehicle == owner) // Some of the tiles will inevitably be the ARC itself + continue + blocked = TRUE + break + + if(locate(/obj/effect/particle_effect/smoke) in tile) + blocked = TRUE + break + + if(blocked) + purge_target(living_mob) + continue + + if(living_mob.stat & UNCONSCIOUS) + unconscious_targets += living_mob + else + conscious_targets += living_mob + + if((sentry_target in conscious_targets) || (sentry_target in unconscious_targets)) + sentry_target = sentry_target + + else if(length(conscious_targets)) + sentry_target = pick(conscious_targets) + + else if(length(unconscious_targets)) + sentry_target = pick(unconscious_targets) + + if(!sentry_target) //No targets, don't bother firing + return + + start_fire(object = sentry_target) + +/obj/item/hardpoint/primary/arc_sentry/proc/purge_target(mob/target) + if(target == sentry_target) + sentry_target = null + targets.Remove(target) + +/obj/item/hardpoint/primary/arc_sentry/can_be_removed(mob/remover) + var/obj/vehicle/multitile/arc/arc_owner = owner + if(!istype(arc_owner)) + return TRUE + + if(arc_owner.antenna_deployed) + to_chat(remover, SPAN_WARNING("[src] cannot be removed from [owner] while its antenna is deployed.")) + return FALSE + + return ..() diff --git a/code/modules/vehicles/hardpoints/primary/autocannon.dm b/code/modules/vehicles/hardpoints/primary/autocannon.dm index b6dc2cedc674..3e12f52be097 100644 --- a/code/modules/vehicles/hardpoints/primary/autocannon.dm +++ b/code/modules/vehicles/hardpoints/primary/autocannon.dm @@ -1,5 +1,5 @@ /obj/item/hardpoint/primary/autocannon - name = "AC3-E Autocannon" + name = "\improper AC3-E Autocannon" desc = "A primary autocannon for tanks that shoots explosive flak rounds" icon_state = "ace_autocannon" @@ -10,8 +10,6 @@ health = 500 firing_arc = 60 - origins = list(0, -3) - ammo = new /obj/item/ammo_magazine/hardpoint/ace_autocannon max_clips = 2 diff --git a/code/modules/vehicles/hardpoints/primary/dual_cannon.dm b/code/modules/vehicles/hardpoints/primary/dual_cannon.dm index 4033a4bffb2a..b896640a4ff7 100644 --- a/code/modules/vehicles/hardpoints/primary/dual_cannon.dm +++ b/code/modules/vehicles/hardpoints/primary/dual_cannon.dm @@ -1,6 +1,6 @@ // APC cannons /obj/item/hardpoint/primary/dualcannon - name = "PARS-159 Boyars Dualcannon" + name = "\improper PARS-159 Boyars Dualcannon" desc = "A primary two-barrel cannon for the APC that shoots 20mm IFF-compatible rounds." icon = 'icons/obj/vehicles/hardpoints/apc.dmi' @@ -14,7 +14,7 @@ health = 500 firing_arc = 60 - origins = list(0, -2) + origins = list(0, 1) ammo = new /obj/item/ammo_magazine/hardpoint/boyars_dualcannon max_clips = 2 diff --git a/code/modules/vehicles/hardpoints/primary/flamer.dm b/code/modules/vehicles/hardpoints/primary/flamer.dm index 13beee9dd2c2..fce6e7f6a410 100644 --- a/code/modules/vehicles/hardpoints/primary/flamer.dm +++ b/code/modules/vehicles/hardpoints/primary/flamer.dm @@ -1,5 +1,5 @@ /obj/item/hardpoint/primary/flamer - name = "DRG-N Offensive Flamer Unit" + name = "\improper DRG-N Offensive Flamer Unit" desc = "A primary weapon for the tank that spews fire everywhere." icon_state = "drgn_flamer" @@ -10,8 +10,6 @@ health = 400 firing_arc = 90 - origins = list(0, -3) - ammo = new /obj/item/ammo_magazine/hardpoint/primary_flamer max_clips = 1 @@ -33,9 +31,8 @@ BULLET_TRAIT_ENTRY(/datum/element/bullet_trait_iff) )) -/obj/item/hardpoint/primary/flamer/try_fire(target, user, params) - var/turf/origin_turf = get_origin_turf() - if(origin_turf == get_turf(target)) +/obj/item/hardpoint/primary/flamer/try_fire(atom/target, mob/living/user, params) + if(get_turf(target) in owner.locs) to_chat(user, SPAN_WARNING("The target is too close.")) return NONE diff --git a/code/modules/vehicles/hardpoints/primary/ltb.dm b/code/modules/vehicles/hardpoints/primary/ltb.dm index 19b5c7e7b9b4..7ccbc18a2853 100644 --- a/code/modules/vehicles/hardpoints/primary/ltb.dm +++ b/code/modules/vehicles/hardpoints/primary/ltb.dm @@ -1,5 +1,5 @@ /obj/item/hardpoint/primary/cannon - name = "LTB Cannon" + name = "\improper LTB Cannon" desc = "A primary cannon for tanks that shoots explosive rounds" icon_state = "ltb_cannon" @@ -10,8 +10,6 @@ health = 500 firing_arc = 60 - origins = list(0, -3) - ammo = new /obj/item/ammo_magazine/hardpoint/ltb_cannon max_clips = 3 diff --git a/code/modules/vehicles/hardpoints/primary/minigun.dm b/code/modules/vehicles/hardpoints/primary/minigun.dm index 3acf37eec268..8bc7c55bbb8a 100644 --- a/code/modules/vehicles/hardpoints/primary/minigun.dm +++ b/code/modules/vehicles/hardpoints/primary/minigun.dm @@ -1,5 +1,5 @@ /obj/item/hardpoint/primary/minigun - name = "LTAA-AP Minigun" + name = "\improper LTAA-AP Minigun" desc = "A primary weapon for tanks that spews bullets" icon_state = "ltaaap_minigun" @@ -9,8 +9,6 @@ health = 350 firing_arc = 90 - origins = list(0, -3) - ammo = new /obj/item/ammo_magazine/hardpoint/ltaaap_minigun max_clips = 1 @@ -63,7 +61,7 @@ COOLDOWN_START(src, fire_cooldown, fire_delay * stage_delay_mult) /obj/item/hardpoint/primary/minigun/proc/calculate_stage_delay_mult() - var/stage_rate_len = stage_rate.len + var/stage_rate_len = length(stage_rate) var/delta_time = world.time - last_fired var/old_spin_stage = spin_stage @@ -75,10 +73,10 @@ spin_stage -= delta_stage / spindown_time else return - spin_stage = Clamp(spin_stage, 1, stage_rate_len) + spin_stage = clamp(spin_stage, 1, stage_rate_len) - var/old_stage_rate = stage_rate[Floor(old_spin_stage)] - var/new_stage_rate = stage_rate[Floor(spin_stage)] + var/old_stage_rate = stage_rate[floor(old_spin_stage)] + var/new_stage_rate = stage_rate[floor(spin_stage)] if(old_stage_rate != new_stage_rate) stage_delay_mult = 1 / new_stage_rate diff --git a/code/modules/vehicles/hardpoints/secondary/cupola.dm b/code/modules/vehicles/hardpoints/secondary/cupola.dm index f259d6ea2623..a4b40c7dd3a1 100644 --- a/code/modules/vehicles/hardpoints/secondary/cupola.dm +++ b/code/modules/vehicles/hardpoints/secondary/cupola.dm @@ -1,5 +1,5 @@ /obj/item/hardpoint/secondary/m56cupola - name = "M56 Cupola" + name = "\improper M56 Cupola" desc = "A secondary weapon for tanks that shoots bullets" icon_state = "m56_cupola" @@ -10,8 +10,6 @@ health = 350 firing_arc = 120 - origins = list(0, -2) - ammo = new /obj/item/ammo_magazine/hardpoint/m56_cupola max_clips = 1 diff --git a/code/modules/vehicles/hardpoints/secondary/flamer.dm b/code/modules/vehicles/hardpoints/secondary/flamer.dm index 5557cfb24e17..56a9995b60c5 100644 --- a/code/modules/vehicles/hardpoints/secondary/flamer.dm +++ b/code/modules/vehicles/hardpoints/secondary/flamer.dm @@ -1,5 +1,5 @@ /obj/item/hardpoint/secondary/small_flamer - name = "LZR-N Flamer Unit" + name = "\improper LZR-N Flamer Unit" desc = "A secondary weapon for tanks that spews hot fire." icon_state = "flamer" @@ -10,8 +10,6 @@ health = 300 firing_arc = 120 - origins = list(0, -2) - ammo = new /obj/item/ammo_magazine/hardpoint/secondary_flamer max_clips = 1 @@ -29,14 +27,28 @@ scatter = 6 fire_delay = 3.0 SECONDS +/obj/item/hardpoint/secondary/small_flamer/try_fire(atom/target, mob/living/user, params) + if(get_turf(target) in owner.locs) + to_chat(user, SPAN_WARNING("The target is too close.")) + return NONE + + return ..() + /obj/item/hardpoint/secondary/small_flamer/handle_fire(atom/target, mob/living/user, params) - var/turf/origin_turf = get_origin_turf() + //step forward along path so flame starts outside hull + var/list/turfs = get_line(get_origin_turf(), get_turf(target)) + var/turf/origin_turf + for(var/turf/turf as anything in turfs) + if(turf in owner.locs) + continue + origin_turf = turf + break var/distance = get_dist(origin_turf, get_turf(target)) var/fire_amount = min(ammo.current_rounds, distance+1, max_range) ammo.current_rounds -= fire_amount - new /obj/flamer_fire(origin_turf, create_cause_data(initial(name), user), null, fire_amount, null, FLAMESHAPE_LINE, target, CALLBACK(src, PROC_REF(display_ammo), user)) + new /obj/flamer_fire(origin_turf, create_cause_data(initial(name), user), null, fire_amount, null, FLAMESHAPE_LINE, target) play_firing_sounds() diff --git a/code/modules/vehicles/hardpoints/secondary/frontal_cannon.dm b/code/modules/vehicles/hardpoints/secondary/frontal_cannon.dm index 536b5742cfcd..f9e4982bb736 100644 --- a/code/modules/vehicles/hardpoints/secondary/frontal_cannon.dm +++ b/code/modules/vehicles/hardpoints/secondary/frontal_cannon.dm @@ -1,5 +1,5 @@ /obj/item/hardpoint/secondary/frontalcannon - name = "Bleihagel RE-RE700 Frontal Cannon" + name = "\improper Bleihagel RE-RE700 Frontal Cannon" desc = "The marketing department over at Bleihagel would have you believe that the RE-RE700 is an original design. However, experts who pried the cover off the cannon have discovered an object with a striking similarity to the popular M56 Cupola. It is still unknown why the cannon has two barrels." icon = 'icons/obj/vehicles/hardpoints/apc.dmi' @@ -13,7 +13,7 @@ health = 350 firing_arc = 120 - origins = list(0, -2) + origins = list(0, -1) ammo = new /obj/item/ammo_magazine/hardpoint/m56_cupola/frontal_cannon max_clips = 1 diff --git a/code/modules/vehicles/hardpoints/secondary/grenade_launcher.dm b/code/modules/vehicles/hardpoints/secondary/grenade_launcher.dm index efd151e93cb3..060f1f7ae9ef 100644 --- a/code/modules/vehicles/hardpoints/secondary/grenade_launcher.dm +++ b/code/modules/vehicles/hardpoints/secondary/grenade_launcher.dm @@ -1,5 +1,5 @@ /obj/item/hardpoint/secondary/grenade_launcher - name = "M92T Grenade Launcher" + name = "\improper M92T Grenade Launcher" desc = "A secondary weapon for tanks that shoots grenades." icon_state = "glauncher" @@ -9,9 +9,6 @@ health = 500 firing_arc = 90 - var/max_range = 7 - - origins = list(0, -2) ammo = new /obj/item/ammo_magazine/hardpoint/tank_glauncher max_clips = 3 @@ -34,9 +31,8 @@ BULLET_TRAIT_ENTRY(/datum/element/bullet_trait_iff) )) -/obj/item/hardpoint/secondary/grenade_launcher/try_fire(mob/user, atom/A) - var/turf/origin_turf = get_origin_turf() - if(origin_turf == get_turf(A)) +/obj/item/hardpoint/secondary/grenade_launcher/try_fire(atom/target, mob/living/user, params) + if(get_turf(target) in owner.locs) to_chat(user, SPAN_WARNING("The target is too close.")) return NONE diff --git a/code/modules/vehicles/hardpoints/secondary/tow.dm b/code/modules/vehicles/hardpoints/secondary/tow.dm index 7c58f7970c7b..7b0e0ea90a27 100644 --- a/code/modules/vehicles/hardpoints/secondary/tow.dm +++ b/code/modules/vehicles/hardpoints/secondary/tow.dm @@ -1,5 +1,5 @@ /obj/item/hardpoint/secondary/towlauncher - name = "TOW Launcher" + name = "\improper TOW Launcher" desc = "A secondary weapon for tanks that shoots rockets" icon_state = "tow_launcher" @@ -9,8 +9,6 @@ health = 500 firing_arc = 60 - origins = list(0, -2) - ammo = new /obj/item/ammo_magazine/hardpoint/towlauncher max_clips = 1 diff --git a/code/modules/vehicles/hardpoints/special/firing_port_weapon.dm b/code/modules/vehicles/hardpoints/special/firing_port_weapon.dm index 780c195f00be..5561ee48357d 100644 --- a/code/modules/vehicles/hardpoints/special/firing_port_weapon.dm +++ b/code/modules/vehicles/hardpoints/special/firing_port_weapon.dm @@ -1,6 +1,6 @@ //this is Cupola guns that are fired from the sides of APC by support gunners /obj/item/hardpoint/special/firing_port_weapon - name = "M56 FPW" + name = "\improper M56 FPW" desc = "A modified M56B Smartgun installed on the sides of M577 Armored Personnel Carrier as a Firing Port Weapon. Used by support gunners to cover friendly infantry at APC sides." icon = 'icons/obj/vehicles/hardpoints/apc.dmi' @@ -20,8 +20,6 @@ allowed_seat = VEHICLE_SUPPORT_GUNNER_ONE - origins = list(0, 0) - ammo = new /obj/item/ammo_magazine/hardpoint/firing_port_weapon max_clips = 1 diff --git a/code/modules/vehicles/hardpoints/support/antenna.dm b/code/modules/vehicles/hardpoints/support/antenna.dm new file mode 100644 index 000000000000..b4980b7e3a3d --- /dev/null +++ b/code/modules/vehicles/hardpoints/support/antenna.dm @@ -0,0 +1,94 @@ +/obj/item/hardpoint/support/arc_antenna + name = "\improper U-56 Radar Antenna" + desc = "A heavy-duty antenna built for the ARC." + icon = 'icons/obj/vehicles/hardpoints/arc.dmi' + + icon_state = "antenna" + disp_icon = "arc" + disp_icon_state = "antenna" + + damage_multiplier = 0.1 + + health = 500 + + /// How long the antenna deploy/retract animation is, keep accurate to the sprite in the dmi + var/deploy_animation_time = 1.2 SECONDS + /// If the antenna is already deploying + var/deploying = FALSE + +/obj/item/hardpoint/support/arc_antenna/proc/deploy_antenna() + set waitfor = FALSE + + disp_icon_state = "" + if(owner) + owner.update_icon() + var/obj/dummy_obj = new() + dummy_obj.icon = 'icons/obj/vehicles/arc.dmi' + dummy_obj.icon_state = "antenna_cover_0" + dummy_obj.dir = owner.dir + dummy_obj.vis_flags = VIS_INHERIT_ID | VIS_INHERIT_LAYER | VIS_INHERIT_PLANE + owner.vis_contents += dummy_obj + flick("antenna_extending", dummy_obj) + sleep(deploy_animation_time) + qdel(dummy_obj) + disp_icon_state = initial(disp_icon_state) + +/obj/item/hardpoint/support/arc_antenna/proc/retract_antenna() + set waitfor = FALSE + + disp_icon_state = "" + if(owner) + owner.update_icon() + var/obj/dummy_obj = new() + dummy_obj.icon = 'icons/obj/vehicles/arc.dmi' + dummy_obj.icon_state = "antenna_cover_0" + dummy_obj.dir = owner.dir + dummy_obj.vis_flags = VIS_INHERIT_ID | VIS_INHERIT_LAYER | VIS_INHERIT_PLANE + owner.vis_contents += dummy_obj + flick("antenna_retracting", dummy_obj) + sleep(deploy_animation_time) + qdel(dummy_obj) + disp_icon_state = initial(disp_icon_state) + +/obj/item/hardpoint/support/arc_antenna/get_icon_image(x_offset, y_offset, new_dir) + var/is_broken = health <= 0 + var/antenna_extended = FALSE + if(istype(owner, /obj/vehicle/multitile/arc)) + var/obj/vehicle/multitile/arc/arc_owner = owner + antenna_extended = arc_owner.antenna_deployed + + var/image/antenna_img = image(icon = disp_icon, icon_state = "[disp_icon_state]_[antenna_extended ? "extended" : "cover"]_[is_broken ? "1" : "0"]", pixel_x = x_offset, pixel_y = y_offset, dir = new_dir) + switch(floor((health / initial(health)) * 100)) + if(0) + antenna_img.color = "#888888" + if(1 to 20) + antenna_img.color = "#4e4e4e" + if(21 to 40) + antenna_img.color = "#6e6e6e" + if(41 to 60) + antenna_img.color = "#8b8b8b" + if(61 to 80) + antenna_img.color = "#bebebe" + else + antenna_img.color = null + return antenna_img + +/obj/item/hardpoint/support/arc_antenna/can_be_removed(mob/remover) + var/obj/vehicle/multitile/arc/arc_owner = owner + if(!istype(arc_owner)) + return TRUE + + if(arc_owner.antenna_deployed) + to_chat(remover, SPAN_WARNING("[src] cannot be removed from [owner] while it is deployed.")) + return FALSE + + return ..() + +/obj/item/hardpoint/support/arc_antenna/on_destroy() + var/obj/vehicle/multitile/arc/arc_owner = owner + if(!istype(arc_owner)) + return + + if(arc_owner.antenna_deployed) + retract_antenna() + addtimer(CALLBACK(arc_owner, TYPE_PROC_REF(/obj/vehicle/multitile/arc, finish_antenna_retract)), deploy_animation_time) diff --git a/code/modules/vehicles/hardpoints/support/artillery.dm b/code/modules/vehicles/hardpoints/support/artillery.dm index dfcdcaf73f74..dc3db8a3db0d 100644 --- a/code/modules/vehicles/hardpoints/support/artillery.dm +++ b/code/modules/vehicles/hardpoints/support/artillery.dm @@ -1,5 +1,5 @@ /obj/item/hardpoint/support/artillery_module - name = "Artillery Module" + name = "\improper Artillery Module" desc = "Allows the user to look far into the distance." icon_state = "artillery" diff --git a/code/modules/vehicles/hardpoints/support/flare.dm b/code/modules/vehicles/hardpoints/support/flare.dm index 432c9636dadd..0fa37de34d2f 100644 --- a/code/modules/vehicles/hardpoints/support/flare.dm +++ b/code/modules/vehicles/hardpoints/support/flare.dm @@ -1,5 +1,5 @@ /obj/item/hardpoint/support/flare_launcher - name = "M-87F Flare Launcher" + name = "\improper M-87F Flare Launcher" desc = "A support module for APCs that shoots flares." icon = 'icons/obj/vehicles/hardpoints/apc.dmi' @@ -15,8 +15,6 @@ health = 500 firing_arc = 120 - origins = list(0, -2) - ammo = new /obj/item/ammo_magazine/hardpoint/flare_launcher max_clips = 3 diff --git a/code/modules/vehicles/hardpoints/support/iwsa.dm b/code/modules/vehicles/hardpoints/support/iwsa.dm index c3de90c871b6..97fee4e0551a 100644 --- a/code/modules/vehicles/hardpoints/support/iwsa.dm +++ b/code/modules/vehicles/hardpoints/support/iwsa.dm @@ -1,5 +1,5 @@ /obj/item/hardpoint/support/weapons_sensor - name = "Integrated Weapons Sensor Array" + name = "\improper Integrated Weapons Sensor Array" desc = "Improves the accuracy and fire rate of all onboard weapons" icon_state = "warray" diff --git a/code/modules/vehicles/hardpoints/support/overdrive.dm b/code/modules/vehicles/hardpoints/support/overdrive.dm index 1b61d6c63dfb..4daa2fddad0a 100644 --- a/code/modules/vehicles/hardpoints/support/overdrive.dm +++ b/code/modules/vehicles/hardpoints/support/overdrive.dm @@ -1,5 +1,5 @@ /obj/item/hardpoint/support/overdrive_enhancer - name = "Overdrive Enhancer" + name = "\improper Overdrive Enhancer" desc = "Increases the movement speed of the vehicle it's attached to" icon_state = "odrive_enhancer" diff --git a/code/modules/vehicles/hardpoints/wheels/apc_wheels.dm b/code/modules/vehicles/hardpoints/wheels/apc_wheels.dm index 62c5e430c747..4bf8ca59e2ca 100644 --- a/code/modules/vehicles/hardpoints/wheels/apc_wheels.dm +++ b/code/modules/vehicles/hardpoints/wheels/apc_wheels.dm @@ -1,5 +1,5 @@ /obj/item/hardpoint/locomotion/apc_wheels - name = "APC Wheels" + name = "\improper APC Wheels" desc = "Integral to the movement of the APC." icon = 'icons/obj/vehicles/hardpoints/apc.dmi' diff --git a/code/modules/vehicles/hardpoints/wheels/arc_wheels.dm b/code/modules/vehicles/hardpoints/wheels/arc_wheels.dm new file mode 100644 index 000000000000..17726e75c024 --- /dev/null +++ b/code/modules/vehicles/hardpoints/wheels/arc_wheels.dm @@ -0,0 +1,17 @@ +/obj/item/hardpoint/locomotion/arc_wheels + name = "\improper ARC Wheels" + desc = "Integral to the movement of the ARC." + icon = 'icons/obj/vehicles/hardpoints/arc.dmi' + + damage_multiplier = 0.15 + + icon_state = "tires" + disp_icon = "arc" + disp_icon_state = "arc_wheels" + + health = 500 + + move_delay = VEHICLE_SPEED_SUPERFAST + move_max_momentum = 2 + move_momentum_build_factor = 1.5 + move_turn_momentum_loss_factor = 0.5 diff --git a/code/modules/vehicles/hardpoints/wheels/locomotion.dm b/code/modules/vehicles/hardpoints/wheels/locomotion.dm index dd4173c54fa8..a0e57c3e97d4 100644 --- a/code/modules/vehicles/hardpoints/wheels/locomotion.dm +++ b/code/modules/vehicles/hardpoints/wheels/locomotion.dm @@ -12,6 +12,22 @@ var/move_momentum_build_factor = 0 var/move_turn_momentum_loss_factor = 0 +/obj/item/hardpoint/locomotion/p_are(temp_gender) + if(!temp_gender) + temp_gender = gender + . = "is" + if(temp_gender == PLURAL) + . = "are" + +/obj/item/hardpoint/locomotion/p_they(capitalized, temp_gender) + if(!temp_gender) + temp_gender = gender + . = "it" + if(temp_gender == PLURAL) + . = "they" + if(capitalized) + . = capitalize(.) + /obj/item/hardpoint/locomotion/deactivate() owner.move_delay = initial(owner.move_delay) owner.move_max_momentum = initial(owner.move_max_momentum) @@ -46,7 +62,7 @@ //of vehicle enter the spray spawn area, it deals a huge amount of damage. But simply nerfing damage will also nerf it for //acid spraying castes like spitters and praetorians, which is not ideal. if(acid.cause_data.cause_name == "resin acid trap") - take_damage = round(take_damage / 3) + take_damage = floor(take_damage / 3) else if(istype(A, /obj/effect/blocker/toxic_water)) //multitile vehicles are, well, multitile and will be receiving damage for each tile, so damage is low per tile. diff --git a/code/modules/vehicles/hardpoints/wheels/treads.dm b/code/modules/vehicles/hardpoints/wheels/treads.dm index b718d1c8e897..561795b8531e 100644 --- a/code/modules/vehicles/hardpoints/wheels/treads.dm +++ b/code/modules/vehicles/hardpoints/wheels/treads.dm @@ -1,5 +1,5 @@ /obj/item/hardpoint/locomotion/treads - name = "Treads" + name = "\improper Treads" desc = "Integral to the movement of the vehicle." icon_state = "treads" @@ -8,7 +8,7 @@ slot = HDPT_TREADS - health = 500 + health = 300 //with this settings, takes 3 tiles to reach top speed move_delay = 3.8 @@ -17,10 +17,10 @@ move_turn_momentum_loss_factor = 0.6 /obj/item/hardpoint/locomotion/treads/robust - name = "Reinforced Treads" + name = "\improper Reinforced Treads" desc = "These treads are made of a tougher material and are more durable. However, the extra weight slows the tank down slightly." - health = 750 + health = 500 acid_resistant = TRUE move_max_momentum = 5 //same top speed, but takes 5 tiles to reach it diff --git a/code/modules/vehicles/interior/areas.dm b/code/modules/vehicles/interior/areas.dm index 605b32079fcc..399e55e11450 100644 --- a/code/modules/vehicles/interior/areas.dm +++ b/code/modules/vehicles/interior/areas.dm @@ -1,29 +1,37 @@ -/area/vehicle +/area/interior ceiling = CEILING_METAL requires_power = 0 unlimited_power = 1 icon = 'icons/turf/areas_interiors.dmi' + icon_state = "interior" base_lighting_alpha = 255 ambience_exterior = 'sound/ambience/vehicle_interior1.ogg' sound_environment = SOUND_ENVIRONMENT_ROOM -/area/vehicle/tank +/area/interior/vehicle/tank name = "tank interior" icon_state = "tank" -/area/vehicle/apc +/area/interior/vehicle/apc name = "\improper APC interior" icon_state = "apc" -/area/vehicle/apc/med +/area/interior/vehicle/apc/med name = "\improper MED APC interior" icon_state = "apc_med" -/area/vehicle/apc/command +/area/interior/vehicle/apc/command name = "\improper CMD APC interior" icon_state = "apc_cmd" -/area/vehicle/van +/area/interior/vehicle/van name = "van interior" icon_state = "van" + +/area/interior/vehicle/arc + name = "\improper ARC interior" + icon_state = "arc" + +/area/interior/fancylocker + name = "closet interior" diff --git a/code/modules/vehicles/interior/interactable/seats.dm b/code/modules/vehicles/interior/interactable/seats.dm index 253b4a066b4f..1fee4438074a 100644 --- a/code/modules/vehicles/interior/interactable/seats.dm +++ b/code/modules/vehicles/interior/interactable/seats.dm @@ -108,7 +108,7 @@ to_chat(user, SPAN_WARNING("You are unable to use heavy weaponry.")) return - for(var/obj/item/I in user.contents) //prevents shooting while zoomed in, but zoom can still be activated and used without shooting + for(var/obj/item/I in user.contents) //prevents shooting while zoomed in, but zoom can still be activated and used without shooting if(I.zoom) I.zoom(user) diff --git a/code/modules/vehicles/interior/interactable/vehicle_locker.dm b/code/modules/vehicles/interior/interactable/vehicle_locker.dm index 5571995594f0..1ad6fb5bb8df 100644 --- a/code/modules/vehicles/interior/interactable/vehicle_locker.dm +++ b/code/modules/vehicles/interior/interactable/vehicle_locker.dm @@ -15,7 +15,7 @@ unslashable = TRUE indestructible = TRUE - var/list/role_restriction = list(JOB_CREWMAN, JOB_WO_CREWMAN, JOB_UPP_CREWMAN, JOB_PMC_CREWMAN) + var/list/role_restriction = list(JOB_TANK_CREW, JOB_WO_CREWMAN, JOB_UPP_CREWMAN, JOB_PMC_CREWMAN) var/obj/item/storage/internal/container diff --git a/code/modules/vehicles/interior/interactable/vendors.dm b/code/modules/vehicles/interior/interactable/vendors.dm index 6d98bc85e42e..8069c8ba71e4 100644 --- a/code/modules/vehicles/interior/interactable/vendors.dm +++ b/code/modules/vehicles/interior/interactable/vendors.dm @@ -17,10 +17,6 @@ /obj/item/reagent_container/hypospray/autoinjector/skillless, /obj/item/reagent_container/hypospray/autoinjector/skillless/tramadol, ) - stack_refill = list( - /obj/item/stack/medical/bruise_pack, - /obj/item/stack/medical/ointment, - ) //MED APC version of WY Med, provides resupply for basic stuff. Provides a decent amount of cryobags for evacuating hugged marines. /obj/structure/machinery/cm_vending/sorted/medical/vehicle @@ -57,39 +53,31 @@ /obj/item/reagent_container/hypospray/autoinjector/tricord/skillless, ) - stack_refill = list( - /obj/item/stack/medical/advanced/ointment, - /obj/item/stack/medical/advanced/bruise_pack, - /obj/item/stack/medical/ointment, - /obj/item/stack/medical/bruise_pack, - /obj/item/stack/medical/splint, - ) - /obj/structure/machinery/cm_vending/sorted/medical/vehicle/populate_product_list(scale) listed_products = list( list("FIELD SUPPLIES", -1, null, null), - list("Burn Kit", round(scale * 4), /obj/item/stack/medical/advanced/ointment, VENDOR_ITEM_REGULAR), - list("Trauma Kit", round(scale * 4), /obj/item/stack/medical/advanced/bruise_pack, VENDOR_ITEM_REGULAR), - list("Ointment", round(scale * 5), /obj/item/stack/medical/ointment, VENDOR_ITEM_REGULAR), - list("Roll of Gauze", round(scale * 5), /obj/item/stack/medical/bruise_pack, VENDOR_ITEM_REGULAR), - list("Splints", round(scale * 5), /obj/item/stack/medical/splint, VENDOR_ITEM_REGULAR), + list("Burn Kit", floor(scale * 4), /obj/item/stack/medical/advanced/ointment, VENDOR_ITEM_REGULAR), + list("Trauma Kit", floor(scale * 4), /obj/item/stack/medical/advanced/bruise_pack, VENDOR_ITEM_REGULAR), + list("Ointment", floor(scale * 5), /obj/item/stack/medical/ointment, VENDOR_ITEM_REGULAR), + list("Roll of Gauze", floor(scale * 5), /obj/item/stack/medical/bruise_pack, VENDOR_ITEM_REGULAR), + list("Splints", floor(scale * 5), /obj/item/stack/medical/splint, VENDOR_ITEM_REGULAR), list("AUTOINJECTORS", -1, null, null), - list("Autoinjector (Bicaridine)", round(scale * 3), /obj/item/reagent_container/hypospray/autoinjector/bicaridine, VENDOR_ITEM_REGULAR), - list("Autoinjector (Dexalin+)", round(scale * 3), /obj/item/reagent_container/hypospray/autoinjector/dexalinp, VENDOR_ITEM_REGULAR), - list("Autoinjector (Epinephrine)", round(scale * 3), /obj/item/reagent_container/hypospray/autoinjector/adrenaline, VENDOR_ITEM_REGULAR), - list("Autoinjector (Inaprovaline)", round(scale * 3), /obj/item/reagent_container/hypospray/autoinjector/inaprovaline, VENDOR_ITEM_REGULAR), - list("Autoinjector (Kelotane)", round(scale * 3), /obj/item/reagent_container/hypospray/autoinjector/kelotane, VENDOR_ITEM_REGULAR), - list("Autoinjector (Oxycodone)", round(scale * 3), /obj/item/reagent_container/hypospray/autoinjector/oxycodone, VENDOR_ITEM_REGULAR), - list("Autoinjector (Tramadol)", round(scale * 3), /obj/item/reagent_container/hypospray/autoinjector/tramadol, VENDOR_ITEM_REGULAR), - list("Autoinjector (Tricord)", round(scale * 3), /obj/item/reagent_container/hypospray/autoinjector/tricord, VENDOR_ITEM_REGULAR), + list("Autoinjector (Bicaridine)", floor(scale * 3), /obj/item/reagent_container/hypospray/autoinjector/bicaridine, VENDOR_ITEM_REGULAR), + list("Autoinjector (Dexalin+)", floor(scale * 3), /obj/item/reagent_container/hypospray/autoinjector/dexalinp, VENDOR_ITEM_REGULAR), + list("Autoinjector (Epinephrine)", floor(scale * 3), /obj/item/reagent_container/hypospray/autoinjector/adrenaline, VENDOR_ITEM_REGULAR), + list("Autoinjector (Inaprovaline)", floor(scale * 3), /obj/item/reagent_container/hypospray/autoinjector/inaprovaline, VENDOR_ITEM_REGULAR), + list("Autoinjector (Kelotane)", floor(scale * 3), /obj/item/reagent_container/hypospray/autoinjector/kelotane, VENDOR_ITEM_REGULAR), + list("Autoinjector (Oxycodone)", floor(scale * 3), /obj/item/reagent_container/hypospray/autoinjector/oxycodone, VENDOR_ITEM_REGULAR), + list("Autoinjector (Tramadol)", floor(scale * 3), /obj/item/reagent_container/hypospray/autoinjector/tramadol, VENDOR_ITEM_REGULAR), + list("Autoinjector (Tricord)", floor(scale * 3), /obj/item/reagent_container/hypospray/autoinjector/tricord, VENDOR_ITEM_REGULAR), list("MEDICAL UTILITIES", -1, null, null), - list("Surgical Line", round(scale * 2), /obj/item/tool/surgery/surgical_line, VENDOR_ITEM_REGULAR), - list("Synth-Graft", round(scale * 2), /obj/item/tool/surgery/synthgraft, VENDOR_ITEM_REGULAR), - list("Health Analyzer", round(scale * 4), /obj/item/device/healthanalyzer, VENDOR_ITEM_REGULAR), - list("Stasis Bag", round(scale * 6), /obj/item/bodybag/cryobag, VENDOR_ITEM_REGULAR), - list("Syringe", round(scale * 3), /obj/item/reagent_container/syringe, VENDOR_ITEM_REGULAR) + list("Surgical Line", floor(scale * 2), /obj/item/tool/surgery/surgical_line, VENDOR_ITEM_REGULAR), + list("Synth-Graft", floor(scale * 2), /obj/item/tool/surgery/synthgraft, VENDOR_ITEM_REGULAR), + list("Health Analyzer", floor(scale * 4), /obj/item/device/healthanalyzer, VENDOR_ITEM_REGULAR), + list("Stasis Bag", floor(scale * 6), /obj/item/bodybag/cryobag, VENDOR_ITEM_REGULAR), + list("Syringe", floor(scale * 3), /obj/item/reagent_container/syringe, VENDOR_ITEM_REGULAR) ) //MED APC version of Blood Dispenser @@ -125,7 +113,6 @@ wrenchable = FALSE hackable = FALSE density = FALSE - var/being_restocked = FALSE vend_flags = VEND_CLUTTER_PROTECTION | VEND_LIMITED_INVENTORY | VEND_TO_HAND | VEND_LOAD_AMMO_BOXES @@ -180,15 +167,15 @@ /obj/structure/machinery/cm_vending/sorted/vehicle_supply/populate_product_list(scale) listed_products = list( list("PRIMARY FIREARMS", -1, null, null), - list("M37A2 Pump Shotgun", round(scale * 3), /obj/item/weapon/gun/shotgun/pump, VENDOR_ITEM_REGULAR), - list("M39 Submachinegun", round(scale * 2.5), /obj/item/weapon/gun/smg/m39, VENDOR_ITEM_REGULAR), - list("M41A Pulse Rifle MK2", round(scale * 4), /obj/item/weapon/gun/rifle/m41a, VENDOR_ITEM_REGULAR), - list("M4RA Battle Rifle", round(scale * 2), /obj/item/weapon/gun/rifle/m4ra, VENDOR_ITEM_REGULAR), + list("M37A2 Pump Shotgun", floor(scale * 3), /obj/item/weapon/gun/shotgun/pump, VENDOR_ITEM_REGULAR), + list("M39 Submachinegun", floor(scale * 2.5), /obj/item/weapon/gun/smg/m39, VENDOR_ITEM_REGULAR), + list("M41A Pulse Rifle MK2", floor(scale * 4), /obj/item/weapon/gun/rifle/m41a, VENDOR_ITEM_REGULAR), + list("M4RA Battle Rifle", floor(scale * 2), /obj/item/weapon/gun/rifle/m4ra, VENDOR_ITEM_REGULAR), list("SIDEARMS", -1, null, null), - list("88 Mod 4 Combat Pistol", round(scale * 2), /obj/item/weapon/gun/pistol/mod88, VENDOR_ITEM_REGULAR), - list("M44 Combat Revolver", round(scale * 1.5), /obj/item/weapon/gun/revolver/m44, VENDOR_ITEM_REGULAR), - list("M4A3 Service Pistol", round(scale * 2.5), /obj/item/weapon/gun/pistol/m4a3, VENDOR_ITEM_REGULAR), + list("88 Mod 4 Combat Pistol", floor(scale * 2), /obj/item/weapon/gun/pistol/mod88, VENDOR_ITEM_REGULAR), + list("M44 Combat Revolver", floor(scale * 1.5), /obj/item/weapon/gun/revolver/m44, VENDOR_ITEM_REGULAR), + list("M4A3 Service Pistol", floor(scale * 2.5), /obj/item/weapon/gun/pistol/m4a3, VENDOR_ITEM_REGULAR), list("EXPLOSIVES", -1, null, null), list("M15 Fragmentation Grenade", 0, /obj/item/explosive/grenade/high_explosive/m15, VENDOR_ITEM_REGULAR), @@ -196,29 +183,29 @@ list("M40 HEDP Grenade", 0, /obj/item/explosive/grenade/high_explosive, VENDOR_ITEM_REGULAR), list("M40 HIDP Incendiary Grenade", 0, /obj/item/explosive/grenade/incendiary, VENDOR_ITEM_REGULAR), list("M40 HPDP White Phosphorus Smoke Grenade", 0, /obj/item/explosive/grenade/phosphorus, VENDOR_ITEM_REGULAR), - list("M40 HSDP Smoke Grenade", round(scale * 1), /obj/item/explosive/grenade/smokebomb, VENDOR_ITEM_REGULAR), + list("M40 HSDP Smoke Grenade", floor(scale * 1), /obj/item/explosive/grenade/smokebomb, VENDOR_ITEM_REGULAR), list("M74 AGM-Frag Airburst Grenade", 0, /obj/item/explosive/grenade/high_explosive/airburst, VENDOR_ITEM_REGULAR), list("M74 AGM-Incendiary Airburst Grenade", 0, /obj/item/explosive/grenade/incendiary/airburst, VENDOR_ITEM_REGULAR), list("M74 AGM-Smoke Airburst Grenade", 0, /obj/item/explosive/grenade/smokebomb/airburst, VENDOR_ITEM_REGULAR), list("M74 AGM-Star Shell", 2, /obj/item/explosive/grenade/high_explosive/airburst/starshell, VENDOR_ITEM_REGULAR), list("M74 AGM-Hornet Shell", 0, /obj/item/explosive/grenade/high_explosive/airburst/hornet_shell, VENDOR_ITEM_REGULAR), - list("M40 HIRR Baton Slug", round(scale * 2), /obj/item/explosive/grenade/slug/baton, VENDOR_ITEM_REGULAR), + list("M40 HIRR Baton Slug", floor(scale * 2), /obj/item/explosive/grenade/slug/baton, VENDOR_ITEM_REGULAR), list("M40 MFHS Metal Foam Grenade", 0, /obj/item/explosive/grenade/metal_foam, VENDOR_ITEM_REGULAR), list("Breaching Charge", 0, /obj/item/explosive/plastic/breaching_charge, VENDOR_ITEM_REGULAR), list("Plastic Explosives", 2, /obj/item/explosive/plastic, VENDOR_ITEM_REGULAR), list("REGULAR AMMUNITION", -1, null, null), - list("Box Of Buckshot Shells", round(scale * 3), /obj/item/ammo_magazine/shotgun/buckshot, VENDOR_ITEM_REGULAR), - list("Box Of Flechette Shells", round(scale * 2), /obj/item/ammo_magazine/shotgun/flechette, VENDOR_ITEM_REGULAR), - list("Box Of Shotgun Slugs", round(scale * 4), /obj/item/ammo_magazine/shotgun/slugs, VENDOR_ITEM_REGULAR), - list("M4RA Magazine (10x24mm)", round(scale * 5), /obj/item/ammo_magazine/rifle/m4ra, VENDOR_ITEM_REGULAR), - list("M41A MK2 Magazine (10x24mm)", round(scale * 10), /obj/item/ammo_magazine/rifle, VENDOR_ITEM_REGULAR), - list("M39 HV Magazine (10x20mm)", round(scale * 6), /obj/item/ammo_magazine/smg/m39, VENDOR_ITEM_REGULAR), - list("M44 Speed Loader (.44)", round(scale * 4), /obj/item/ammo_magazine/revolver, VENDOR_ITEM_REGULAR), - list("M4A3 Magazine (9mm)", round(scale * 10), /obj/item/ammo_magazine/pistol, VENDOR_ITEM_REGULAR), + list("Box Of Buckshot Shells", floor(scale * 3), /obj/item/ammo_magazine/shotgun/buckshot, VENDOR_ITEM_REGULAR), + list("Box Of Flechette Shells", floor(scale * 2), /obj/item/ammo_magazine/shotgun/flechette, VENDOR_ITEM_REGULAR), + list("Box Of Shotgun Slugs", floor(scale * 4), /obj/item/ammo_magazine/shotgun/slugs, VENDOR_ITEM_REGULAR), + list("M4RA Magazine (10x24mm)", floor(scale * 5), /obj/item/ammo_magazine/rifle/m4ra, VENDOR_ITEM_REGULAR), + list("M41A MK2 Magazine (10x24mm)", floor(scale * 10), /obj/item/ammo_magazine/rifle, VENDOR_ITEM_REGULAR), + list("M39 HV Magazine (10x20mm)", floor(scale * 6), /obj/item/ammo_magazine/smg/m39, VENDOR_ITEM_REGULAR), + list("M44 Speed Loader (.44)", floor(scale * 4), /obj/item/ammo_magazine/revolver, VENDOR_ITEM_REGULAR), + list("M4A3 Magazine (9mm)", floor(scale * 10), /obj/item/ammo_magazine/pistol, VENDOR_ITEM_REGULAR), list("ARMOR-PIERCING AMMUNITION", -1, null, null), - list("88 Mod 4 AP Magazine (9mm)", round(scale * 8), /obj/item/ammo_magazine/pistol/mod88, VENDOR_ITEM_REGULAR), + list("88 Mod 4 AP Magazine (9mm)", floor(scale * 8), /obj/item/ammo_magazine/pistol/mod88, VENDOR_ITEM_REGULAR), list("M4RA AP Magazine (10x24mm)", 0, /obj/item/ammo_magazine/rifle/m4ra/ap, VENDOR_ITEM_REGULAR), list("M39 AP Magazine (10x20mm)", 0, /obj/item/ammo_magazine/smg/m39/ap, VENDOR_ITEM_REGULAR), list("M41A MK2 AP Magazine (10x24mm)", 0, /obj/item/ammo_magazine/rifle/ap, VENDOR_ITEM_REGULAR), @@ -254,8 +241,8 @@ list("M56 Battery", 0, /obj/item/smartgun_battery, VENDOR_ITEM_REGULAR), list("M56 Smartgun Drum", 0, /obj/item/ammo_magazine/smartgun, VENDOR_ITEM_REGULAR), list("M56D Drum Magazine",0, /obj/item/ammo_magazine/m56d, VENDOR_ITEM_REGULAR), - list("SU-6 Smartpistol Magazine (.45)", round(scale * 2), /obj/item/ammo_magazine/pistol/smart, VENDOR_ITEM_REGULAR), - list("VP78 Magazine", round(scale * 1.5), /obj/item/ammo_magazine/pistol/vp78, VENDOR_ITEM_REGULAR), + list("SU-6 Smartpistol Magazine (.45)", floor(scale * 2), /obj/item/ammo_magazine/pistol/smart, VENDOR_ITEM_REGULAR), + list("VP78 Magazine", floor(scale * 1.5), /obj/item/ammo_magazine/pistol/vp78, VENDOR_ITEM_REGULAR), list("BUILDING MATERIALS", -1, null, null), list("Cardboard x10", 1, /obj/item/stack/sheet/cardboard/small_stack, VENDOR_ITEM_REGULAR), @@ -275,23 +262,23 @@ list("SMG Ammunition Box (10x20mm AP)", 0, /obj/item/ammo_box/rounds/smg/ap, VENDOR_ITEM_REGULAR), list("MISCELLANEOUS", -1, null, null), - list("Box Of MREs", round(scale * 1.5), /obj/item/ammo_box/magazine/misc/mre, VENDOR_ITEM_REGULAR), - list("Box Of M94 Marking Flare Packs", round(scale * 2), /obj/item/ammo_box/magazine/misc/flares, VENDOR_ITEM_REGULAR), - list("Entrenching Tool", round(scale * 2), /obj/item/tool/shovel/etool, VENDOR_ITEM_REGULAR), - list("M5 Bayonet", round(scale * 5), /obj/item/attachable/bayonet, VENDOR_ITEM_REGULAR), + list("Box Of MREs", floor(scale * 1.5), /obj/item/ammo_box/magazine/misc/mre, VENDOR_ITEM_REGULAR), + list("Box Of M94 Marking Flare Packs", floor(scale * 2), /obj/item/ammo_box/magazine/misc/flares, VENDOR_ITEM_REGULAR), + list("Entrenching Tool", floor(scale * 2), /obj/item/tool/shovel/etool, VENDOR_ITEM_REGULAR), + list("M5 Bayonet", floor(scale * 5), /obj/item/attachable/bayonet, VENDOR_ITEM_REGULAR), list("M89-S Signal Flare Pack", 0, /obj/item/storage/box/m94/signal, VENDOR_ITEM_REGULAR), - list("M94 Marking Flare Pack", round(scale * 1), /obj/item/storage/box/m94, VENDOR_ITEM_REGULAR), - list("Machete Scabbard (Full)", round(scale * 1), /obj/item/storage/large_holster/machete/full, VENDOR_ITEM_REGULAR), + list("M94 Marking Flare Pack", floor(scale * 1), /obj/item/storage/box/m94, VENDOR_ITEM_REGULAR), + list("Machete Scabbard (Full)", floor(scale * 1), /obj/item/storage/large_holster/machete/full, VENDOR_ITEM_REGULAR), list("MB-6 Folding Barricades (x3)", 0, /obj/item/stack/folding_barricade/three, VENDOR_ITEM_REGULAR), list("Motion Detector", 0, /obj/item/device/motiondetector, VENDOR_ITEM_REGULAR), list("Roller Bed", 2, /obj/item/roller, VENDOR_ITEM_REGULAR), list("ARMOR AND CLOTHING", -1, null, null), list("Heat Absorbent Coif", 10, /obj/item/clothing/mask/rebreather/scarf, VENDOR_ITEM_REGULAR), - list("M10 Pattern Marine Helmet", round(scale * 3), /obj/item/clothing/head/helmet/marine, VENDOR_ITEM_REGULAR), - list("M3 Pattern Marine Armor", round(scale * 1), /obj/item/clothing/suit/storage/marine, VENDOR_ITEM_REGULAR), - list("M3-EOD Pattern Heavy Armor", round(scale * 1), /obj/item/clothing/suit/storage/marine/heavy, VENDOR_ITEM_REGULAR), - list("M3-L Pattern Light Armor", round(scale * 1), /obj/item/clothing/suit/storage/marine/light, VENDOR_ITEM_REGULAR), + list("M10 Pattern Marine Helmet", floor(scale * 3), /obj/item/clothing/head/helmet/marine, VENDOR_ITEM_REGULAR), + list("M3 Pattern Marine Armor", floor(scale * 1), /obj/item/clothing/suit/storage/marine, VENDOR_ITEM_REGULAR), + list("M3-EOD Pattern Heavy Armor", floor(scale * 1), /obj/item/clothing/suit/storage/marine/heavy, VENDOR_ITEM_REGULAR), + list("M3-L Pattern Light Armor", floor(scale * 1), /obj/item/clothing/suit/storage/marine/light, VENDOR_ITEM_REGULAR), ) //combined from req guns and ammo vendors @@ -330,7 +317,7 @@ to_chat(user, SPAN_WARNING("\The [S] are being stored in [SPAN_HELPFUL("stacks of 5")] for convenience. You need \the [S] stack of at least 5 to restock it.")) return FALSE else - stack_restock = Floor(S.amount / 5) + stack_restock = floor(S.amount / 5) //for the ease of finding enough materials to stack, it will be stored in stacks of 10 sheets just like they come in engie vendor else if(S.amount < 10) @@ -338,7 +325,7 @@ to_chat(user, SPAN_WARNING("\The [S] are being stored in [SPAN_HELPFUL("stacks of 10")] for convenience. You need \the [S] stack of at least 10 to restock it.")) return FALSE else - stack_restock = Floor(S.amount / 10) + stack_restock = floor(S.amount / 10) //item we are restocking is a stack and we need to conveniently restock it //instead of demanding user to split it into stacks of appropriate amount @@ -422,11 +409,11 @@ list("ARMOR", -1, null, null), list("M10 Pattern Marine Helmet", 0, /obj/item/clothing/head/helmet/marine, VENDOR_ITEM_REGULAR), - list("M3 Pattern Carrier Marine Armor", 0, /obj/item/clothing/suit/storage/marine/carrier, VENDOR_ITEM_REGULAR), - list("M3 Pattern Padded Marine Armor", 0, /obj/item/clothing/suit/storage/marine/padded, VENDOR_ITEM_REGULAR), - list("M3 Pattern Padless Marine Armor", 0, /obj/item/clothing/suit/storage/marine/padless, VENDOR_ITEM_REGULAR), - list("M3 Pattern Ridged Marine Armor", 0, /obj/item/clothing/suit/storage/marine/padless_lines, VENDOR_ITEM_REGULAR), - list("M3 Pattern Skull Marine Armor", 0, /obj/item/clothing/suit/storage/marine/skull, VENDOR_ITEM_REGULAR), + list("M3 Pattern Carrier Marine Armor", 0, /obj/item/clothing/suit/storage/marine/medium/carrier, VENDOR_ITEM_REGULAR), + list("M3 Pattern Padded Marine Armor", 0, /obj/item/clothing/suit/storage/marine/medium/padded, VENDOR_ITEM_REGULAR), + list("M3 Pattern Padless Marine Armor", 0, /obj/item/clothing/suit/storage/marine/medium/padless, VENDOR_ITEM_REGULAR), + list("M3 Pattern Ridged Marine Armor", 0, /obj/item/clothing/suit/storage/marine/medium/padless_lines, VENDOR_ITEM_REGULAR), + list("M3 Pattern Skull Marine Armor", 0, /obj/item/clothing/suit/storage/marine/medium/skull, VENDOR_ITEM_REGULAR), list("M3-EOD Pattern Heavy Armor", 0, /obj/item/clothing/suit/storage/marine/heavy, VENDOR_ITEM_REGULAR), list("M3-L Pattern Light Armor", 0, /obj/item/clothing/suit/storage/marine/light, VENDOR_ITEM_REGULAR), diff --git a/code/modules/vehicles/interior/interior.dm b/code/modules/vehicles/interior/interior.dm index f2afcd5ae5f7..6aaeb6439176 100644 --- a/code/modules/vehicles/interior/interior.dm +++ b/code/modules/vehicles/interior/interior.dm @@ -118,7 +118,7 @@ var/list/passengers var/list/bounds = get_bound_turfs() - for(var/turf/T in block(bounds[1], bounds[2])) + for(var/turf/T as anything in block(bounds[1], bounds[2])) for(var/atom/A in T) if(isliving(A)) LAZYADD(passengers, A) @@ -304,25 +304,17 @@ // Returns min and max turfs for the interior /datum/interior/proc/get_bound_turfs() - var/turf/min = TURF_FROM_COORDS_LIST(reservation.bottom_left_coords) - if(!min) - return null - - var/turf/max = TURF_FROM_COORDS_LIST(reservation.top_right_coords) - if(!max) - return null - - return list(min, max) + return list(reservation.bottom_left_turfs[1], reservation.top_right_turfs[1]) /datum/interior/proc/get_middle_coords() - var/turf/min = reservation.bottom_left_coords - var/turf/max = reservation.top_right_coords + var/turf/min = reservation.bottom_left_turfs[1] + var/turf/max = reservation.top_right_turfs[1] + return list(floor(min.x + (max.x - min.x)/2), floor(min.y + (max.y - min.y)/2), min.z) - return list(Floor(min[1] + (max[1] - min[1])/2), Floor(min[2] + (max[2] - min[2])/2), min[3]) /datum/interior/proc/get_middle_turf() var/list/turf/bounds = get_bound_turfs() - var/turf/middle = locate(Floor(bounds[1].x + (bounds[2].x - bounds[1].x)/2), Floor(bounds[1].y + (bounds[2].y - bounds[1].y)/2), bounds[1].z) + var/turf/middle = locate(floor(bounds[1].x + (bounds[2].x - bounds[1].x)/2), floor(bounds[1].y + (bounds[2].y - bounds[1].y)/2), bounds[1].z) return middle @@ -330,7 +322,7 @@ /datum/interior/proc/find_entrances() var/list/bounds = get_bound_turfs() - for(var/turf/T in block(bounds[1], bounds[2])) + for(var/turf/T as anything in block(bounds[1], bounds[2])) var/obj/effect/landmark/interior/spawn/entrance/E = locate() in T if(E) LAZYADD(entrance_markers, E) @@ -340,6 +332,6 @@ /datum/interior/proc/handle_landmarks() var/list/bounds = get_bound_turfs() - for(var/turf/T in block(bounds[1], bounds[2])) + for(var/turf/T as anything in block(bounds[1], bounds[2])) for(var/obj/effect/landmark/interior/L in T) L.on_load(src) diff --git a/code/modules/vehicles/interior/interior_landmarks.dm b/code/modules/vehicles/interior/interior_landmarks.dm index 90284682d2d4..cd9f2e74df15 100644 --- a/code/modules/vehicles/interior/interior_landmarks.dm +++ b/code/modules/vehicles/interior/interior_landmarks.dm @@ -227,7 +227,7 @@ Phone.pixel_x = pixel_x Phone.pixel_y = pixel_y Phone.phone_category = "Vehicles" - Phone.phone_id = I.exterior.name + Phone.phone_id = replacetext(Phone.phone_id, "\improper", "") // this has to be done because phone IDs need to be the same as their display name (\improper doesn't display, obviously) qdel(src) @@ -267,6 +267,7 @@ V.vehicle = I.exterior V.pixel_x = pixel_x V.pixel_y = pixel_y + V.layer = layer V.alpha = alpha V.update_icon() @@ -286,6 +287,7 @@ V.vehicle = I.exterior V.pixel_x = pixel_x V.pixel_y = pixel_y + V.layer = layer V.alpha = alpha qdel(src) diff --git a/code/modules/vehicles/interior/objects/fancy_locker.dm b/code/modules/vehicles/interior/objects/fancy_locker.dm index f1068812a793..2cc7a02e548b 100644 --- a/code/modules/vehicles/interior/objects/fancy_locker.dm +++ b/code/modules/vehicles/interior/objects/fancy_locker.dm @@ -2,6 +2,13 @@ name = "fancy closet" desc = "It's a fancy storage unit." + icon_state = "cabinet_closed" + icon_closed = "cabinet_closed" + icon_opened = "cabinet_open" + + unacidable = TRUE + + var/interior_map = /datum/map_template/interior/fancy_locker var/datum/interior/interior = null var/entrance_speed = 1 SECONDS var/passengers_slots = 2 @@ -19,20 +26,52 @@ INVOKE_ASYNC(src, PROC_REF(do_create_interior)) /obj/structure/closet/fancy/proc/do_create_interior() - interior.create_interior("fancylocker") + interior.create_interior(interior_map) /obj/structure/closet/fancy/Destroy() QDEL_NULL(interior) return ..() +/obj/structure/closet/fancy/can_close() + for(var/obj/structure/closet/closet in get_turf(src)) + if(closet != src && !closet.wall_mounted) + return FALSE + return TRUE + /obj/structure/closet/fancy/store_mobs(stored_units) for(var/mob/M in loc) - var/succ = interior.enter(M, "default") + var/succ = interior.enter(M, "fancy") if(!succ) break +/obj/structure/closet/fancy/ex_act(severity) + return + /obj/structure/interior_exit/fancy name = "fancy wooden door" icon = 'icons/obj/structures/doors/mineral_doors.dmi' icon_state = "wood" density = TRUE + +/obj/structure/interior_exit/fancy/attackby(obj/item/O, mob/M) + attack_hand(M) + +/obj/structure/interior_exit/fancy/attack_hand(mob/escapee) + var/obj/structure/closet/fancy/closet = find_closet() + if(istype(closet) && !closet.can_open()) + to_chat(escapee, SPAN_WARNING("Something is blocking the exit!")) + return + ..() + +/obj/structure/interior_exit/fancy/attack_alien(mob/living/carbon/xenomorph/escapee, dam_bonus) + var/obj/structure/closet/fancy/closet = find_closet() + if(istype(closet) && !closet.can_open()) + to_chat(escapee, SPAN_XENOWARNING("Something is blocking the exit!")) + return + ..() + +/obj/structure/interior_exit/fancy/proc/find_closet() + var/obj/structure/closet/fancy/possible_closet = interior.exterior + if(istype(possible_closet)) + return possible_closet + return diff --git a/code/modules/vehicles/multitile/multitile.dm b/code/modules/vehicles/multitile/multitile.dm index f3b7be510b08..bcd48c3633be 100644 --- a/code/modules/vehicles/multitile/multitile.dm +++ b/code/modules/vehicles/multitile/multitile.dm @@ -258,7 +258,7 @@ /obj/vehicle/multitile/get_examine_text(mob/user) . = ..() for(var/obj/item/hardpoint/H in hardpoints) - . += "There is \a [H] module installed." + . += "There [H.p_are()] \a [H] module[H.p_s()] installed." H.examine(user, TRUE) if(clamped) . += "There is a vehicle clamp attached." @@ -267,7 +267,7 @@ for(var/datum/role_reserved_slots/RRS in interior.role_reserved_slots) passengers_amount += RRS.taken if(passengers_amount > 0) - . += "You can sense approximately [passengers_amount] hosts inside." + . += "You can sense approximately [passengers_amount] host\s inside." /obj/vehicle/multitile/proc/load_hardpoints() return @@ -293,14 +293,14 @@ // Health check is done before the hardpoint takes damage // This way, the frame won't take damage at the same time hardpoints break if(H.can_take_damage()) - H.take_damage(round(damage * get_dmg_multi(type))) + H.take_damage(floor(damage * get_dmg_multi(type))) all_broken = FALSE // If all hardpoints are broken, the vehicle frame begins taking full damage if(all_broken) health = max(0, health - damage * get_dmg_multi(type)) else //otherwise, 1/10th of damage lands on the hull - health = max(0, health - round(damage * get_dmg_multi(type) / 10)) + health = max(0, health - floor(damage * get_dmg_multi(type) / 10)) if(ismob(attacker)) var/mob/M = attacker @@ -334,11 +334,12 @@ // Checked here because we want to be able to null the mob in a seat if(!istype(M)) - return + return FALSE M.set_interaction(src) M.reset_view(src) give_action(M, /datum/action/human_action/vehicle_unbuckle) + return TRUE /// Get crewmember of seat. /obj/vehicle/multitile/proc/get_seat_mob(seat) diff --git a/code/modules/vehicles/multitile/multitile_bump.dm b/code/modules/vehicles/multitile/multitile_bump.dm index 48706805948f..11005cc87ea2 100644 --- a/code/modules/vehicles/multitile/multitile_bump.dm +++ b/code/modules/vehicles/multitile/multitile_bump.dm @@ -341,10 +341,24 @@ return TRUE /obj/structure/machinery/m56d_post/handle_vehicle_bump(obj/vehicle/multitile/V) - new /obj/item/device/m56d_post(loc) playsound(V, 'sound/effects/metal_crash.ogg', 20) visible_message(SPAN_DANGER("\The [V] drives over \the [src]!")) - qdel(src) + + if(gun_mounted) + var/obj/item/device/m56d_gun/HMG = new(loc) + transfer_label_component(HMG) + HMG.rounds = gun_rounds + HMG.has_mount = TRUE + if(gun_health) + HMG.health = gun_health + HMG.update_icon() + qdel(src) + else + var/obj/item/device/m56d_post/post = new(loc) + post.health = health + transfer_label_component(post) + qdel(src) + return TRUE /obj/structure/machinery/m56d_hmg/handle_vehicle_bump(obj/vehicle/multitile/V) @@ -352,7 +366,9 @@ HMG.name = name HMG.rounds = rounds HMG.has_mount = TRUE + HMG.health = health HMG.update_icon() + transfer_label_component(HMG) playsound(V, 'sound/effects/metal_crash.ogg', 20) visible_message(SPAN_DANGER("\The [V] drives over \the [src]!")) qdel(src) @@ -368,7 +384,7 @@ var/obj/item/device/m2c_gun/HMG = new(loc) HMG.name = name HMG.rounds = rounds - HMG.overheat_value = round(0.5 * overheat_value) + HMG.overheat_value = floor(0.5 * overheat_value) if(HMG.overheat_value <= 10) HMG.overheat_value = 0 HMG.update_icon() @@ -478,7 +494,7 @@ /obj/vehicle/handle_vehicle_bump(obj/vehicle/multitile/V) V.take_damage_type(5, "blunt", V) - health = health - Ceiling(maxhealth/2.8) //we destroy any simple vehicle in 3 crushes + health = health - ceil(maxhealth/2.8) //we destroy any simple vehicle in 3 crushes healthcheck() visible_message(SPAN_DANGER("\The [V] crushes into \the [src]!")) @@ -710,7 +726,7 @@ //this adds more flexibility for trample damage damage_percentage *= VEHICLE_TRAMPLE_DAMAGE_APC_REDUCTION - damage_percentage -= round((armor_deflection*(armor_integrity/100)) / VEHICLE_TRAMPLE_DAMAGE_REDUCTION_ARMOR_MULT) // Ravager reduces percentage by ~50% by virtue of having very high armor. + damage_percentage -= floor((armor_deflection*(armor_integrity/100)) / VEHICLE_TRAMPLE_DAMAGE_REDUCTION_ARMOR_MULT) // Ravager reduces percentage by ~50% by virtue of having very high armor. if(locate(/obj/item/hardpoint/support/overdrive_enhancer) in V) damage_percentage += VEHICLE_TRAMPLE_DAMAGE_OVERDRIVE_BUFF @@ -718,7 +734,7 @@ damage_percentage = max(VEHICLE_TRAMPLE_DAMAGE_OVERDRIVE_BUFF, max(0, damage_percentage)) damage_percentage = max(damage_percentage, VEHICLE_TRAMPLE_DAMAGE_MIN) - apply_damage(round((maxHealth / 100) * damage_percentage), BRUTE) + apply_damage(floor((maxHealth / 100) * damage_percentage), BRUTE) last_damage_data = create_cause_data("[initial(V.name)] roadkill", V.seats[VEHICLE_DRIVER]) var/mob/living/driver = V.get_seat_mob(VEHICLE_DRIVER) log_attack("[key_name(src)] was rammed by [key_name(driver)] with [V].") @@ -728,7 +744,7 @@ return TRUE else if (mob_moved) if(momentum_penalty) - V.move_momentum = Floor(V.move_momentum*0.8) + V.move_momentum = floor(V.move_momentum*0.8) V.update_next_move() playsound(loc, "punch", 25, 1) return TRUE @@ -753,7 +769,7 @@ visible_message(SPAN_DANGER("[src] digs it's claws into the ground, slowing [V]'s movement!"), SPAN_DANGER("You dig your claws into the ground, slowing [V]'s movement!")) var/mob_moved = step(src, V.last_move_dir) - V.move_momentum = Floor(V.move_momentum/3) + V.move_momentum = floor(V.move_momentum/3) V.update_next_move() return mob_moved diff --git a/code/modules/vehicles/multitile/multitile_hardpoints.dm b/code/modules/vehicles/multitile/multitile_hardpoints.dm index a6014c6cf2cd..b94b8459890f 100644 --- a/code/modules/vehicles/multitile/multitile_hardpoints.dm +++ b/code/modules/vehicles/multitile/multitile_hardpoints.dm @@ -149,7 +149,7 @@ hps += H var/chosen_hp = tgui_input_list(usr, "Select a hardpoint to remove", "Hardpoint Removal", (hps + "Cancel")) - if(chosen_hp == "Cancel" || !chosen_hp) + if(chosen_hp == "Cancel" || !chosen_hp || (get_dist(src, user) > 2)) //get_dist uses 2 because the vehicle is 3x3 return var/obj/item/hardpoint/old = chosen_hp @@ -158,6 +158,9 @@ to_chat(user, SPAN_WARNING("There is nothing installed there.")) return + if(!old.can_be_removed(user)) + return + // It's in a holder if(!(old in hardpoints)) for(var/obj/item/hardpoint/holder/H in hardpoints) diff --git a/code/modules/vehicles/multitile/multitile_interaction.dm b/code/modules/vehicles/multitile/multitile_interaction.dm index aa2025d151b5..84b1d4de0efc 100644 --- a/code/modules/vehicles/multitile/multitile_interaction.dm +++ b/code/modules/vehicles/multitile/multitile_interaction.dm @@ -248,7 +248,7 @@ return XENO_NO_DELAY_ACTION if(X.mob_size < mob_size_required_to_hit) - to_chat(X, SPAN_XENOWARNING("You're too small to do any significant damage to this vehicle!")) + to_chat(X, SPAN_XENOWARNING("We're too small to do any significant damage to this vehicle!")) return XENO_NO_DELAY_ACTION var/damage = (X.melee_vehicle_damage + rand(-5,5)) * XENO_UNIVERSAL_VEHICLE_DAMAGEMULT @@ -269,11 +269,11 @@ if(!damage) playsound(X.loc, 'sound/weapons/alien_claw_swipe.ogg', 25, 1) X.visible_message(SPAN_DANGER("\The [X] swipes at \the [src] to no effect!"), \ - SPAN_DANGER("You swipe at \the [src] to no effect!")) + SPAN_DANGER("We swipe at \the [src] to no effect!")) return XENO_ATTACK_ACTION X.visible_message(SPAN_DANGER("\The [X] slashes \the [src]!"), \ - SPAN_DANGER("You slash \the [src]!")) + SPAN_DANGER("We slash \the [src]!")) playsound(X.loc, pick('sound/effects/metalhit.ogg', 'sound/weapons/alien_claw_metal1.ogg', 'sound/weapons/alien_claw_metal2.ogg', 'sound/weapons/alien_claw_metal3.ogg'), 25, 1) take_damage_type(damage * damage_mult, "slash", X) @@ -297,7 +297,7 @@ if(ammo_flags & AMMO_ANTISTRUCT|AMMO_ANTIVEHICLE) // Multiplier based on tank railgun relationship, so might have to reconsider multiplier for AMMO_SIEGE in general - damage = round(damage*ANTISTRUCT_DMG_MULT_TANK) + damage = floor(damage*ANTISTRUCT_DMG_MULT_TANK) if(ammo_flags & AMMO_ACIDIC) dam_type = "acid" @@ -420,9 +420,9 @@ else if(!entrance_used && !isxeno(M)) return - var/enter_msg = "You start climbing into \the [src]..." + var/enter_msg = "We start climbing into \the [src]..." if(health <= 0 && isxeno(M)) - enter_msg = "You start prying away loose plates, squeezing into \the [src]..." + enter_msg = "We start prying away loose plates, squeezing into \the [src]..." // Check if drag anything var/atom/dragged_atom @@ -507,7 +507,7 @@ var/success = interior.enter(dragged_atom, entrance_used) if(success) - to_chat(user, SPAN_NOTICE("You succesfully fit [dragged_atom] inside \the [src].")) + to_chat(user, SPAN_NOTICE("You successfully fit [dragged_atom] inside \the [src].")) else to_chat(user, SPAN_WARNING("You fail to fit [dragged_atom] inside \the [src]! It's either too big or vehicle is out of space!")) return diff --git a/code/modules/vehicles/multitile/multitile_movement.dm b/code/modules/vehicles/multitile/multitile_movement.dm index b5f308144707..35e909cf7414 100644 --- a/code/modules/vehicles/multitile/multitile_movement.dm +++ b/code/modules/vehicles/multitile/multitile_movement.dm @@ -141,15 +141,18 @@ /obj/vehicle/multitile/proc/can_move(direction) var/can_move = TRUE - var/turf/min_turf = locate(x + bound_x / world.icon_size, y + bound_y / world.icon_size, z) - var/turf/max_turf = locate(min_turf.x + (bound_width / world.icon_size) - 1, min_turf.y + (bound_height / world.icon_size) - 1, z) - var/list/old_turfs = block(min_turf, max_turf) + var/bound_x_tiles = bound_x / world.icon_size + var/bound_y_tiles = bound_y / world.icon_size + var/turf/min_turf = locate(x + bound_x_tiles, y + bound_y_tiles, z) + + var/bound_width_tiles = bound_width / world.icon_size + var/bound_height_tiles = bound_height / world.icon_size + var/list/old_turfs = CORNER_BLOCK(min_turf, bound_width_tiles, bound_height_tiles) var/turf/new_loc = get_step(src, direction) - min_turf = locate(new_loc.x + bound_x / world.icon_size, new_loc.y + bound_y / world.icon_size, z) - max_turf = locate(min_turf.x + (bound_width / world.icon_size) - 1, min_turf.y + (bound_height / world.icon_size) - 1, z) + min_turf = locate(new_loc.x + bound_x_tiles, new_loc.y + bound_y_tiles, z) - for(var/turf/T in block(min_turf, max_turf)) + for(var/turf/T as anything in CORNER_BLOCK(min_turf, bound_width_tiles, bound_height_tiles)) // only check the turfs we're moving to if(T in old_turfs) continue @@ -159,7 +162,7 @@ // Crashed with something that stopped us if(!can_move) - move_momentum = Floor(move_momentum/2) + move_momentum = floor(move_momentum/2) update_next_move() interior_crash_effect() @@ -254,7 +257,7 @@ if(abs(move_momentum) <= 1) return - var/fling_distance = Ceiling(move_momentum/move_max_momentum) * 2 + var/fling_distance = ceil(move_momentum/move_max_momentum) * 2 var/turf/target = interior.get_middle_turf() for (var/x in 0 to fling_distance-1) @@ -264,7 +267,7 @@ break var/list/bounds = interior.get_bound_turfs() - for(var/turf/T in block(bounds[1], bounds[2])) + for(var/turf/T as anything in block(bounds[1], bounds[2])) for(var/atom/movable/A in T) if(A.anchored) continue @@ -272,7 +275,7 @@ if(isliving(A)) var/mob/living/M = A - shake_camera(M, 2, Ceiling(move_momentum/move_max_momentum) * 1) + shake_camera(M, 2, ceil(move_momentum/move_max_momentum) * 1) if(!M.buckled) M.apply_effect(1, STUN) M.apply_effect(2, WEAKEN) diff --git a/code/modules/vehicles/multitile/multitile_verbs.dm b/code/modules/vehicles/multitile/multitile_verbs.dm index 3801cd2e176c..5d73351321e2 100644 --- a/code/modules/vehicles/multitile/multitile_verbs.dm +++ b/code/modules/vehicles/multitile/multitile_verbs.dm @@ -65,7 +65,7 @@ if(!new_hp) new_hp = 0 - new_hp = (new_hp % usable_hps.len) + 1 + new_hp = (new_hp % length(usable_hps)) + 1 var/obj/item/hardpoint/HP = usable_hps[new_hp] if(!HP) return @@ -167,7 +167,7 @@ )) data["resistance_data"] = resist_data_list - data["integrity"] = round(100 * health / initial(health)) + data["integrity"] = floor(100 * health / initial(health)) data["door_locked"] = door_locked data["total_passenger_slots"] = interior.passengers_slots data["total_taken_slots"] = interior.passengers_taken_slots diff --git a/code/modules/vehicles/souto_mobile.dm b/code/modules/vehicles/souto_mobile.dm new file mode 100644 index 000000000000..fa559983d0a4 --- /dev/null +++ b/code/modules/vehicles/souto_mobile.dm @@ -0,0 +1,43 @@ +/obj/vehicle/souto + name = "\improper Soutomobile" + icon_state = "soutomobile" + desc = "Almost, but not quite, the best ride in the universe." + move_delay = 3 //The speed of a fed but shoeless pajamarine, or a bit slower than a heavy-armor marine. + buckling_y = 4 + layer = ABOVE_LYING_MOB_LAYER //Allows it to drive over people, but is below the driver. + +/obj/vehicle/souto/Initialize() + . = ..() + var/image/I = new(icon = 'icons/obj/vehicles/vehicles.dmi', icon_state = "soutomobile_overlay", layer = ABOVE_MOB_LAYER) //over mobs + overlays += I + +/obj/vehicle/souto/manual_unbuckle(mob/user) + if(buckled_mob && buckled_mob != user) + if(do_after(user, 20, INTERRUPT_ALL, BUSY_ICON_GENERIC)) + ..() + else ..() + +/obj/vehicle/souto/relaymove(mob/user, direction) + if(user.is_mob_incapacitated()) return + if(world.time > l_move_time + move_delay) + . = step(src, direction) + +/obj/vehicle/souto/super + desc = "The best ride in the universe, for the one-and-only Souto Man!" + health = 1000 + locked = FALSE + unacidable = TRUE + indestructible = TRUE + +/obj/vehicle/souto/super/explode() + for(var/mob/M as anything in viewers(7, src)) + M.show_message("Somehow, [src] still looks as bright and shiny as a new can of Souto Classic.", SHOW_MESSAGE_VISIBLE) + health = initial(health) //Souto Man never dies, and neither does his bike. + +/obj/vehicle/souto/super/buckle_mob(mob/M, mob/user) + if(!locked) //Vehicle is unlocked until first being mounted, since the Soutomobile is faction-locked and otherwise Souto Man cannot automatically buckle in on spawn as his equipment is spawned before his ID. + locked = TRUE + else if(M == user && M.faction != FACTION_SOUTO && locked == TRUE) //Are you a cool enough dude to drive this bike? Nah, nobody's THAT cool. + to_chat(user, SPAN_WARNING("Somehow, as you take hold of the handlebars, [src] manages to glare at you. You back off. We didn't sign up for haunted motorbikes, man.")) + return + ..() diff --git a/code/modules/vehicles/tank/tank.dm b/code/modules/vehicles/tank/tank.dm index 147e359471df..1cc1174c43fe 100644 --- a/code/modules/vehicles/tank/tank.dm +++ b/code/modules/vehicles/tank/tank.dm @@ -90,7 +90,7 @@ /obj/vehicle/multitile/tank/load_role_reserved_slots() var/datum/role_reserved_slots/RRS = new RRS.category_name = "Crewmen" - RRS.roles = list(JOB_CREWMAN, JOB_WO_CREWMAN, JOB_UPP_CREWMAN, JOB_PMC_CREWMAN) + RRS.roles = list(JOB_TANK_CREW, JOB_WO_CREWMAN, JOB_UPP_CREWMAN, JOB_PMC_CREWMAN) RRS.total = 2 role_reserved_slots += RRS @@ -165,6 +165,39 @@ return TRUE +/obj/vehicle/multitile/tank/MouseDrop_T(mob/dropped, mob/user) + . = ..() + if((dropped != user) || !isxeno(user)) + return + + if(health > 0) + to_chat(user, SPAN_XENO("We can't jump over [src] until it is destroyed!")) + return + + var/turf/current_turf = get_turf(user) + var/dir_to_go = get_dir(current_turf, src) + for(var/i in 1 to 3) + current_turf = get_step(current_turf, dir_to_go) + if(!(current_turf in locs)) + break + + if(current_turf.density) + to_chat(user, SPAN_XENO("The path over [src] is obstructed!")) + return + + // Now we check to make sure the turf on the other side of the tank isn't dense too + current_turf = get_step(current_turf, dir_to_go) + if(current_turf.density) + to_chat(user, SPAN_XENO("The path over [src] is obstructed!")) + return + + to_chat(user, SPAN_XENO("We begin to jump over [src]...")) + if(!do_after(user, 3 SECONDS, INTERRUPT_ALL, BUSY_ICON_HOSTILE)) + to_chat(user, SPAN_XENO("We stop jumping over [src].")) + return + + user.forceMove(current_turf) + to_chat(user, SPAN_XENO("We jump to the other side of [src].")) /* ** PRESETS SPAWNERS */ diff --git a/code/modules/vehicles/van/van.dm b/code/modules/vehicles/van/van.dm index c4aa64360ec0..a2e7d68bf9de 100644 --- a/code/modules/vehicles/van/van.dm +++ b/code/modules/vehicles/van/van.dm @@ -83,7 +83,7 @@ icon_state = null - RegisterSignal(SSdcs, COMSIG_GLOB_MOB_LOGIN, PROC_REF(add_default_image)) + RegisterSignal(SSdcs, COMSIG_GLOB_MOB_LOGGED_IN, PROC_REF(add_default_image)) for(var/I in GLOB.player_list) add_default_image(SSdcs, I) @@ -125,7 +125,7 @@ mobs_under += L RegisterSignal(L, COMSIG_PARENT_QDELETING, PROC_REF(remove_under_van)) - RegisterSignal(L, COMSIG_MOB_LOGIN, PROC_REF(add_client)) + RegisterSignal(L, COMSIG_MOB_LOGGED_IN, PROC_REF(add_client)) RegisterSignal(L, COMSIG_MOVABLE_MOVED, PROC_REF(check_under_van)) if(L.client) @@ -141,7 +141,7 @@ UnregisterSignal(L, list( COMSIG_PARENT_QDELETING, - COMSIG_MOB_LOGIN, + COMSIG_MOB_LOGGED_IN, COMSIG_MOVABLE_MOVED, )) @@ -167,6 +167,8 @@ var/mob/M = I M.client.images -= normal_image + QDEL_NULL(lighting_holder) + return ..() diff --git a/code/modules/vehicles/vehicle.dm b/code/modules/vehicles/vehicle.dm index 2239329d3e44..c78be6fa57ec 100644 --- a/code/modules/vehicles/vehicle.dm +++ b/code/modules/vehicles/vehicle.dm @@ -18,15 +18,19 @@ var/maxhealth = 100 var/fire_dam_coeff = 1 var/brute_dam_coeff = 1 - var/open = 0 //Maint panel + ///Maint panel + var/open = 0 var/locked = TRUE var/stat = 0 - var/powered = 0 //set if vehicle is powered and should use fuel when moving - var/move_delay = 1 //set this to limit the speed of the vehicle + ///set if vehicle is powered and should use fuel when moving + var/powered = 0 + ///set this to limit the speed of the vehicle + var/move_delay = 1 var/buckling_y = 0 var/obj/item/cell/cell - var/charge_use = 5 //set this to adjust the amount of power the vehicle uses per move + ///set this to adjust the amount of power the vehicle uses per move + var/charge_use = 5 can_block_movement = TRUE //------------------------------------------- @@ -80,10 +84,10 @@ else if(W.force) switch(W.damtype) if("fire") - health -= W.force * fire_dam_coeff + health -= W.force * W.demolition_mod * fire_dam_coeff if("brute") - health -= W.force * brute_dam_coeff - playsound(src.loc, "smash.ogg", 25, 1) + health -= W.force * W.demolition_mod * brute_dam_coeff + playsound(loc, "smash.ogg", 25, 1) user.visible_message(SPAN_DANGER("[user] hits [src] with [W]."),SPAN_DANGER("You hit [src] with [W].")) healthcheck() else @@ -155,10 +159,11 @@ // Checked here because we want to be able to null the mob in a seat if(!istype(M)) - return + return FALSE M.forceMove(src) M.set_interaction(src) + return TRUE /obj/vehicle/proc/turn_on() if(stat) @@ -267,48 +272,3 @@ //------------------------------------------------------- /obj/vehicle/proc/update_stats() return - -/obj/vehicle/souto - name = "\improper Soutomobile" - icon_state = "soutomobile" - desc = "Almost, but not quite, the best ride in the universe." - move_delay = 3 //The speed of a fed but shoeless pajamarine, or a bit slower than a heavy-armor marine. - buckling_y = 4 - layer = ABOVE_LYING_MOB_LAYER //Allows it to drive over people, but is below the driver. - -/obj/vehicle/souto/Initialize() - . = ..() - var/image/I = new(icon = 'icons/obj/vehicles/vehicles.dmi', icon_state = "soutomobile_overlay", layer = ABOVE_MOB_LAYER) //over mobs - overlays += I - -/obj/vehicle/souto/manual_unbuckle(mob/user) - if(buckled_mob && buckled_mob != user) - if(do_after(user, 20, INTERRUPT_ALL, BUSY_ICON_GENERIC)) - ..() - else ..() - -/obj/vehicle/souto/relaymove(mob/user, direction) - if(user.is_mob_incapacitated()) return - if(world.time > l_move_time + move_delay) - . = step(src, direction) - - -/obj/vehicle/souto/super - desc = "The best ride in the universe, for the one-and-only Souto Man!" - health = 1000 - locked = FALSE - unacidable = TRUE - indestructible = TRUE - -/obj/vehicle/souto/super/explode() - for(var/mob/M as anything in viewers(7, src)) - M.show_message("Somehow, [src] still looks as bright and shiny as a new can of Souto Classic.", SHOW_MESSAGE_VISIBLE) - health = initial(health) //Souto Man never dies, and neither does his bike. - -/obj/vehicle/souto/super/buckle_mob(mob/M, mob/user) - if(!locked) //Vehicle is unlocked until first being mounted, since the Soutomobile is faction-locked and otherwise Souto Man cannot automatically buckle in on spawn as his equipment is spawned before his ID. - locked = TRUE - else if(M == user && M.faction != FACTION_SOUTO && locked == TRUE) //Are you a cool enough dude to drive this bike? Nah, nobody's THAT cool. - to_chat(user, SPAN_WARNING("Somehow, as you take hold of the handlebars, [src] manages to glare at you. You back off. We didn't sign up for haunted motorbikes, man.")) - return - ..() diff --git a/code/span_macros.dm b/code/span_macros.dm index 77e57f2077a0..218f333d7df9 100644 --- a/code/span_macros.dm +++ b/code/span_macros.dm @@ -50,6 +50,7 @@ #define SPAN_MENTORHELP(X) ("" + X + "") #define SPAN_MENTORSAY(X) ("" + X + "") #define SPAN_MENTORBODY(X) ("" + X + "") +#define SPAN_NICHE(X) "[X]" #define SPAN_PM(X) "[X]" @@ -106,3 +107,4 @@ #define SPAN_MAROON(X) "[X]" #define SPAN_STAFF_IC(X) "[X]" +#define SPAN_BIGNOTICE(X) "[X]" diff --git a/code/stylesheet.dm b/code/stylesheet.dm index ab74dc547cfa..145229e23424 100644 --- a/code/stylesheet.dm +++ b/code/stylesheet.dm @@ -31,6 +31,7 @@ em {font-style: normal; font-weight: bold;} .mentorstaff {color: #b5850d; font-weight: bold;} .staffsay {color: #b5850d; font-weight: bold;} .staff_ic {color: #000099;} +.niche {color: #386aff; font-weight: bold;} .name { font-weight: bold;} diff --git a/colonialmarines.dme b/colonialmarines.dme index 5bb8d0eaa535..9bfccac6a56e 100644 --- a/colonialmarines.dme +++ b/colonialmarines.dme @@ -31,6 +31,7 @@ #include "code\__DEFINES\_tick.dm" #include "code\__DEFINES\access.dm" #include "code\__DEFINES\admin.dm" +#include "code\__DEFINES\alerts.dm" #include "code\__DEFINES\ARES.dm" #include "code\__DEFINES\assert.dm" #include "code\__DEFINES\atmospherics.dm" @@ -77,6 +78,7 @@ #include "code\__DEFINES\MC.dm" #include "code\__DEFINES\minimap.dm" #include "code\__DEFINES\misc.dm" +#include "code\__DEFINES\mob.dm" #include "code\__DEFINES\mob_hud.dm" #include "code\__DEFINES\mobs.dm" #include "code\__DEFINES\mode.dm" @@ -98,6 +100,8 @@ #include "code\__DEFINES\speech_channels.dm" #include "code\__DEFINES\stamina.dm" #include "code\__DEFINES\stats.dm" +#include "code\__DEFINES\status_effects.dm" +#include "code\__DEFINES\strippable.dm" #include "code\__DEFINES\STUI.dm" #include "code\__DEFINES\subsystems.dm" #include "code\__DEFINES\supply.dm" @@ -109,6 +113,8 @@ #include "code\__DEFINES\tgui.dm" #include "code\__DEFINES\traits.dm" #include "code\__DEFINES\turf_flags.dm" +#include "code\__DEFINES\turfs.dm" +#include "code\__DEFINES\tutorial.dm" #include "code\__DEFINES\unit_tests.dm" #include "code\__DEFINES\urls.dm" #include "code\__DEFINES\vehicle.dm" @@ -131,6 +137,7 @@ #include "code\__DEFINES\dcs\signals\atom\signals_obj.dm" #include "code\__DEFINES\dcs\signals\atom\signals_projectile.dm" #include "code\__DEFINES\dcs\signals\atom\signals_turf.dm" +#include "code\__DEFINES\dcs\signals\atom\mob\signals_mind.dm" #include "code\__DEFINES\dcs\signals\atom\mob\signals_mob.dm" #include "code\__DEFINES\dcs\signals\atom\mob\living\signals_human.dm" #include "code\__DEFINES\dcs\signals\atom\mob\living\signals_living.dm" @@ -139,8 +146,11 @@ #include "code\__DEFINES\paygrade_defs\cmb.dm" #include "code\__DEFINES\paygrade_defs\dutch.dm" #include "code\__DEFINES\paygrade_defs\marines.dm" +#include "code\__DEFINES\paygrade_defs\mercs.dm" #include "code\__DEFINES\paygrade_defs\navy.dm" +#include "code\__DEFINES\paygrade_defs\paygrade.dm" #include "code\__DEFINES\paygrade_defs\provost.dm" +#include "code\__DEFINES\paygrade_defs\twe.dm" #include "code\__DEFINES\paygrade_defs\upp.dm" #include "code\__DEFINES\paygrade_defs\weyland.dm" #include "code\__DEFINES\typecheck\assemblers.dm" @@ -164,6 +174,7 @@ #include "code\__HELPERS\guid.dm" #include "code\__HELPERS\icons.dm" #include "code\__HELPERS\job.dm" +#include "code\__HELPERS\lazy_templates.dm" #include "code\__HELPERS\level_traits.dm" #include "code\__HELPERS\lighting.dm" #include "code\__HELPERS\lists.dm" @@ -176,6 +187,7 @@ #include "code\__HELPERS\sanitize_values.dm" #include "code\__HELPERS\shell.dm" #include "code\__HELPERS\status_effects.dm" +#include "code\__HELPERS\string_lists.dm" #include "code\__HELPERS\text.dm" #include "code\__HELPERS\traits.dm" #include "code\__HELPERS\type2type.dm" @@ -201,7 +213,6 @@ #include "code\_onclick\ai.dm" #include "code\_onclick\click.dm" #include "code\_onclick\click_hold.dm" -#include "code\_onclick\cyborg.dm" #include "code\_onclick\double_click.dm" #include "code\_onclick\drag_drop.dm" #include "code\_onclick\human.dm" @@ -220,7 +231,6 @@ #include "code\_onclick\hud\other_mobs.dm" #include "code\_onclick\hud\radial.dm" #include "code\_onclick\hud\radial_persistent.dm" -#include "code\_onclick\hud\robot.dm" #include "code\_onclick\hud\screen_object_holder.dm" #include "code\_onclick\hud\screen_objects.dm" #include "code\_onclick\hud\yautja.dm" @@ -292,6 +302,7 @@ #include "code\controllers\subsystem\sound_loops.dm" #include "code\controllers\subsystem\soundscape.dm" #include "code\controllers\subsystem\statpanel.dm" +#include "code\controllers\subsystem\stickyban.dm" #include "code\controllers\subsystem\techtree.dm" #include "code\controllers\subsystem\tgui.dm" #include "code\controllers\subsystem\ticker.dm" @@ -307,10 +318,12 @@ #include "code\controllers\subsystem\init\lobby_art.dm" #include "code\controllers\subsystem\processing\defprocess.dm" #include "code\controllers\subsystem\processing\effects.dm" +#include "code\controllers\subsystem\processing\fasteffects.dm" #include "code\controllers\subsystem\processing\fastobj.dm" #include "code\controllers\subsystem\processing\hive_status.dm" #include "code\controllers\subsystem\processing\obj_tab_items.dm" #include "code\controllers\subsystem\processing\objects.dm" +#include "code\controllers\subsystem\processing\oldeffects.dm" #include "code\controllers\subsystem\processing\processing.dm" #include "code\controllers\subsystem\processing\shield_pillar.dm" #include "code\controllers\subsystem\processing\slowobj.dm" @@ -319,6 +332,7 @@ #include "code\datums\ASRS.dm" #include "code\datums\beam.dm" #include "code\datums\browser.dm" +#include "code\datums\bug_report.dm" #include "code\datums\callback.dm" #include "code\datums\changelog.dm" #include "code\datums\combat_personalized.dm" @@ -333,6 +347,7 @@ #include "code\datums\fluff_emails.dm" #include "code\datums\global_variables.dm" #include "code\datums\http.dm" +#include "code\datums\lazy_template.dm" #include "code\datums\map_config.dm" #include "code\datums\matrix_editor.dm" #include "code\datums\medal_awards.dm" @@ -343,6 +358,7 @@ #include "code\datums\mutable_appearance.dm" #include "code\datums\quadtree.dm" #include "code\datums\recipe.dm" +#include "code\datums\research_upgrade_datum.dm" #include "code\datums\shuttles.dm" #include "code\datums\soundOutput.dm" #include "code\datums\tgs_event_handler.dm" @@ -368,6 +384,7 @@ #include "code\datums\ammo\rocket.dm" #include "code\datums\ammo\shrapnel.dm" #include "code\datums\ammo\xeno.dm" +#include "code\datums\ammo\bullet\arc.dm" #include "code\datums\ammo\bullet\bullet.dm" #include "code\datums\ammo\bullet\lever_action.dm" #include "code\datums\ammo\bullet\pistol.dm" @@ -390,6 +407,7 @@ #include "code\datums\components\cluster_stack.dm" #include "code\datums\components\connect_mob_behalf.dm" #include "code\datums\components\crate_tag.dm" +#include "code\datums\components\disk_reader.dm" #include "code\datums\components\footstep.dm" #include "code\datums\components\healing_reduction.dm" #include "code\datums\components\id_lock.dm" @@ -398,12 +416,17 @@ #include "code\datums\components\overlay_lighting.dm" #include "code\datums\components\rename.dm" #include "code\datums\components\speed_modifier.dm" +#include "code\datums\components\status_effect_component.dm" +#include "code\datums\components\temporary_mute.dm" #include "code\datums\components\toxin_buildup.dm" +#include "code\datums\components\tutorial_status.dm" #include "code\datums\components\weed_damage_reduction.dm" #include "code\datums\components\weed_food.dm" #include "code\datums\components\autofire\_automated_fire.dm" #include "code\datums\components\autofire\autofire.dm" +#include "code\datums\components\xeno\hivemind_interference.dm" #include "code\datums\components\xeno\shield_slash.dm" +#include "code\datums\components\xeno\xeno_daze.dm" #include "code\datums\construction\construction_template.dm" #include "code\datums\construction\xenomorph\construction_template_xenomorph.dm" #include "code\datums\decorators\decorator.dm" @@ -423,7 +446,6 @@ #include "code\datums\diseases\pierrot_throat.dm" #include "code\datums\diseases\plasmatoid.dm" #include "code\datums\diseases\rhumba_beat.dm" -#include "code\datums\diseases\robotic_transformation.dm" #include "code\datums\diseases\xeno_transformation.dm" #include "code\datums\diseases\advance\advance.dm" #include "code\datums\diseases\advance\presets.dm" @@ -470,6 +492,7 @@ #include "code\datums\elements\light_blocking.dm" #include "code\datums\elements\mouth_drop_item.dm" #include "code\datums\elements\poor_eyesight_correction.dm" +#include "code\datums\elements\strippable.dm" #include "code\datums\elements\suturing.dm" #include "code\datums\elements\yautja_tracked_item.dm" #include "code\datums\elements\bullet_trait\damage_boost.dm" @@ -478,6 +501,7 @@ #include "code\datums\elements\bullet_trait\incendiary.dm" #include "code\datums\elements\bullet_trait\penetrating\heavy.dm" #include "code\datums\elements\bullet_trait\penetrating\penetrating.dm" +#include "code\datums\elements\bullet_trait\penetrating\weak.dm" #include "code\datums\elements\traitbound\_traitbound.dm" #include "code\datums\elements\traitbound\crawler.dm" #include "code\datums\elements\traitbound\gun_silenced.dm" @@ -496,7 +520,9 @@ #include "code\datums\emergency_calls\deus_vult.dm" #include "code\datums\emergency_calls\dutch.dm" #include "code\datums\emergency_calls\emergency_call.dm" +#include "code\datums\emergency_calls\ert_stations.dm" #include "code\datums\emergency_calls\feral_xenos.dm" +#include "code\datums\emergency_calls\forecon.dm" #include "code\datums\emergency_calls\forsaken_xenos.dm" #include "code\datums\emergency_calls\goons.dm" #include "code\datums\emergency_calls\hefa_knight.dm" @@ -613,6 +639,7 @@ #include "code\datums\skills\synthetic.dm" #include "code\datums\skills\upp.dm" #include "code\datums\skills\uscm.dm" +#include "code\datums\skills\wygoons.dm" #include "code\datums\stamina\_stamina.dm" #include "code\datums\stamina\none.dm" #include "code\datums\statistics\cause_data.dm" @@ -634,6 +661,12 @@ #include "code\datums\statistics\random_facts\kills_fact.dm" #include "code\datums\statistics\random_facts\random_fact.dm" #include "code\datums\statistics\random_facts\revives_fact.dm" +#include "code\datums\status_effects\_status_effect.dm" +#include "code\datums\status_effects\_status_effect_helpers.dm" +#include "code\datums\status_effects\grouped_effect.dm" +#include "code\datums\status_effects\limited_effect.dm" +#include "code\datums\status_effects\stacking_effect.dm" +#include "code\datums\status_effects\debuffs\debuffs.dm" #include "code\datums\supply_packs\_supply_packs.dm" #include "code\datums\supply_packs\ammo.dm" #include "code\datums\supply_packs\attachments.dm" @@ -652,7 +685,20 @@ #include "code\datums\supply_packs\restricted_equipment.dm" #include "code\datums\supply_packs\spec_ammo.dm" #include "code\datums\supply_packs\vehicle_ammo.dm" +#include "code\datums\supply_packs\vehicle_equipment.dm" #include "code\datums\supply_packs\weapons.dm" +#include "code\datums\tutorial\_tutorial.dm" +#include "code\datums\tutorial\_tutorial_menu.dm" +#include "code\datums\tutorial\tutorial_example.dm" +#include "code\datums\tutorial\marine\_marine.dm" +#include "code\datums\tutorial\marine\basic_marine.dm" +#include "code\datums\tutorial\marine\medical_basic.dm" +#include "code\datums\tutorial\marine\reqs_line.dm" +#include "code\datums\tutorial\ss13\_ss13.dm" +#include "code\datums\tutorial\ss13\basic_ss13.dm" +#include "code\datums\tutorial\ss13\intents.dm" +#include "code\datums\tutorial\xenomorph\_xenomorph.dm" +#include "code\datums\tutorial\xenomorph\xenomorph_basic.dm" #include "code\datums\weather\weather_event.dm" #include "code\datums\weather\weather_map_holder.dm" #include "code\datums\weather\weather_events\big_red.dm" @@ -713,6 +759,7 @@ #include "code\game\area\techtree.dm" #include "code\game\area\varadero.dm" #include "code\game\area\WhiskeyOutpost.dm" +#include "code\game\camera_manager\camera_manager.dm" #include "code\game\cas_manager\datums\cas_fire_envelope.dm" #include "code\game\cas_manager\datums\cas_fire_mission.dm" #include "code\game\cas_manager\datums\cas_iff_group.dm" @@ -755,10 +802,12 @@ #include "code\game\jobs\job\civilians\support\working_joe.dm" #include "code\game\jobs\job\command\command.dm" #include "code\game\jobs\job\command\auxiliary\auxiliary_support_officer.dm" +#include "code\game\jobs\job\command\auxiliary\cas_pilot.dm" #include "code\game\jobs\job\command\auxiliary\crew_chief.dm" +#include "code\game\jobs\job\command\auxiliary\dropship_pilot.dm" #include "code\game\jobs\job\command\auxiliary\intel.dm" -#include "code\game\jobs\job\command\auxiliary\pilot.dm" #include "code\game\jobs\job\command\auxiliary\senior.dm" +#include "code\game\jobs\job\command\auxiliary\tank_crew.dm" #include "code\game\jobs\job\command\cic\captain.dm" #include "code\game\jobs\job\command\cic\executive.dm" #include "code\game\jobs\job\command\cic\staffofficer.dm" @@ -785,6 +834,8 @@ #include "code\game\jobs\job\special\provost.dm" #include "code\game\jobs\job\special\uaac.dm" #include "code\game\jobs\job\special\uscm.dm" +#include "code\game\jobs\job\special\weyland_yutani.dm" +#include "code\game\machinery\aicore_lockdown.dm" #include "code\game\machinery\air_alarm.dm" #include "code\game\machinery\air_sensor.dm" #include "code\game\machinery\autolathe.dm" @@ -796,6 +847,7 @@ #include "code\game\machinery\buttons.dm" #include "code\game\machinery\cell_charger.dm" #include "code\game\machinery\cloning.dm" +#include "code\game\machinery\colony_floodlights.dm" #include "code\game\machinery\constructable_frame.dm" #include "code\game\machinery\cryo.dm" #include "code\game\machinery\cryopod.dm" @@ -808,7 +860,6 @@ #include "code\game\machinery\fuelcell_recycler.dm" #include "code\game\machinery\fusion_engine.dm" #include "code\game\machinery\gear.dm" -#include "code\game\machinery\groundmap_geothermal.dm" #include "code\game\machinery\hologram.dm" #include "code\game\machinery\holosign.dm" #include "code\game\machinery\igniter.dm" @@ -840,6 +891,7 @@ #include "code\game\machinery\ARES\apollo_pda.dm" #include "code\game\machinery\ARES\ARES.dm" #include "code\game\machinery\ARES\ARES_interface.dm" +#include "code\game\machinery\ARES\ARES_interface_admin.dm" #include "code\game\machinery\ARES\ARES_interface_apollo.dm" #include "code\game\machinery\ARES\ARES_procs.dm" #include "code\game\machinery\ARES\ARES_records.dm" @@ -857,10 +909,7 @@ #include "code\game\machinery\camera\camera.dm" #include "code\game\machinery\camera\motion.dm" #include "code\game\machinery\camera\presets.dm" -#include "code\game\machinery\camera\tracking.dm" #include "code\game\machinery\camera\wires.dm" -#include "code\game\machinery\computer\ai_core.dm" -#include "code\game\machinery\computer\aifixer.dm" #include "code\game\machinery\computer\almayer_control.dm" #include "code\game\machinery\computer\arcade.dm" #include "code\game\machinery\computer\area_air_control.dm" @@ -883,6 +932,7 @@ #include "code\game\machinery\computer\prisoner.dm" #include "code\game\machinery\computer\research.dm" #include "code\game\machinery\computer\robot.dm" +#include "code\game\machinery\computer\robots_props.dm" #include "code\game\machinery\computer\security.dm" #include "code\game\machinery\computer\sentencing.dm" #include "code\game\machinery\computer\skills.dm" @@ -897,12 +947,14 @@ #include "code\game\machinery\doors\door.dm" #include "code\game\machinery\doors\firedoor.dm" #include "code\game\machinery\doors\multi_tile.dm" -#include "code\game\machinery\doors\poddoor.dm" #include "code\game\machinery\doors\railing.dm" #include "code\game\machinery\doors\runed_sandstone.dm" -#include "code\game\machinery\doors\shutters.dm" #include "code\game\machinery\doors\unpowered.dm" #include "code\game\machinery\doors\windowdoor.dm" +#include "code\game\machinery\doors\poddoor\almayer.dm" +#include "code\game\machinery\doors\poddoor\poddoor.dm" +#include "code\game\machinery\doors\poddoor\two_tile.dm" +#include "code\game\machinery\doors\poddoor\shutters\shutters.dm" #include "code\game\machinery\embedded_controller\docking_program.dm" #include "code\game\machinery\embedded_controller\embedded_controller_base.dm" #include "code\game\machinery\embedded_controller\embedded_program_base.dm" @@ -914,6 +966,7 @@ #include "code\game\machinery\kitchen\smartfridge.dm" #include "code\game\machinery\medical_pod\autodoc.dm" #include "code\game\machinery\medical_pod\bodyscanner.dm" +#include "code\game\machinery\medical_pod\bone_gel_refill.dm" #include "code\game\machinery\medical_pod\medical_pod.dm" #include "code\game\machinery\medical_pod\sleeper.dm" #include "code\game\machinery\pipe\construction.dm" @@ -943,7 +996,9 @@ #include "code\game\machinery\vending\vendor_types\antag\antag_gear.dm" #include "code\game\machinery\vending\vendor_types\antag\antag_guns_snowflake.dm" #include "code\game\machinery\vending\vendor_types\antag\antag_guns_sorted.dm" +#include "code\game\machinery\vending\vendor_types\crew\combat_correspondent.dm" #include "code\game\machinery\vending\vendor_types\crew\commanding_officer.dm" +#include "code\game\machinery\vending\vendor_types\crew\engineering.dm" #include "code\game\machinery\vending\vendor_types\crew\medical.dm" #include "code\game\machinery\vending\vendor_types\crew\mp.dm" #include "code\game\machinery\vending\vendor_types\crew\pilot_officer.dm" @@ -961,6 +1016,7 @@ #include "code\game\machinery\vending\vendor_types\squad_prep\squad_smartgunner.dm" #include "code\game\machinery\vending\vendor_types\squad_prep\squad_specialist.dm" #include "code\game\machinery\vending\vendor_types\squad_prep\squad_tl.dm" +#include "code\game\machinery\vending\vendor_types\squad_prep\tutorial.dm" #include "code\game\objects\empulse.dm" #include "code\game\objects\explosion.dm" #include "code\game\objects\explosion_recursive.dm" @@ -1040,10 +1096,10 @@ #include "code\game\objects\items\legcuffs.dm" #include "code\game\objects\items\lightstick.dm" #include "code\game\objects\items\misc.dm" -#include "code\game\objects\items\old_research.dm" #include "code\game\objects\items\ore.dm" #include "code\game\objects\items\paint.dm" #include "code\game\objects\items\pamphlets.dm" +#include "code\game\objects\items\research_upgrades.dm" #include "code\game\objects\items\shards.dm" #include "code\game\objects\items\stock_parts.dm" #include "code\game\objects\items\trash.dm" @@ -1059,7 +1115,6 @@ #include "code\game\objects\items\devices\aicard.dm" #include "code\game\objects\items\devices\autopsy_scanner.dm" #include "code\game\objects\items\devices\binoculars.dm" -#include "code\game\objects\items\devices\camera_bug.dm" #include "code\game\objects\items\devices\cictablet.dm" #include "code\game\objects\items\devices\cloaking.dm" #include "code\game\objects\items\devices\clue_scanner.dm" @@ -1126,11 +1181,11 @@ #include "code\game\objects\items\implants\implantneurostim.dm" #include "code\game\objects\items\implants\implantpad.dm" #include "code\game\objects\items\props\helmetgarb.dm" +#include "code\game\objects\items\props\robots.dm" #include "code\game\objects\items\props\rocks.dm" #include "code\game\objects\items\props\souto_land.dm" #include "code\game\objects\items\reagent_containers\autoinjectors.dm" #include "code\game\objects\items\reagent_containers\blood_pack.dm" -#include "code\game\objects\items\reagent_containers\borghydro.dm" #include "code\game\objects\items\reagent_containers\dropper.dm" #include "code\game\objects\items\reagent_containers\food.dm" #include "code\game\objects\items\reagent_containers\glass.dm" @@ -1138,6 +1193,7 @@ #include "code\game\objects\items\reagent_containers\pill.dm" #include "code\game\objects\items\reagent_containers\reagent_container.dm" #include "code\game\objects\items\reagent_containers\robodropper.dm" +#include "code\game\objects\items\reagent_containers\robot_parts.dm" #include "code\game\objects\items\reagent_containers\spray.dm" #include "code\game\objects\items\reagent_containers\syringes.dm" #include "code\game\objects\items\reagent_containers\food\cans.dm" @@ -1155,9 +1211,6 @@ #include "code\game\objects\items\reagent_containers\food\snacks\meat.dm" #include "code\game\objects\items\reagent_containers\glass\bottle.dm" #include "code\game\objects\items\reagent_containers\glass\bottle\robot.dm" -#include "code\game\objects\items\robot\robot_items.dm" -#include "code\game\objects\items\robot\robot_parts.dm" -#include "code\game\objects\items\robot\robot_upgrades.dm" #include "code\game\objects\items\stacks\barbed_wire.dm" #include "code\game\objects\items\stacks\cable_coil.dm" #include "code\game\objects\items\stacks\catwalk.dm" @@ -1215,6 +1268,7 @@ #include "code\game\objects\items\toys\crayons.dm" #include "code\game\objects\items\toys\toy_weapons.dm" #include "code\game\objects\items\toys\toys.dm" +#include "code\game\objects\items\toys\trading_cards.dm" #include "code\game\objects\items\weapons\blades.dm" #include "code\game\objects\items\weapons\energy.dm" #include "code\game\objects\items\weapons\misc.dm" @@ -1257,13 +1311,17 @@ #include "code\game\objects\structures\musician.dm" #include "code\game\objects\structures\noticeboard.dm" #include "code\game\objects\structures\platforms.dm" +#include "code\game\objects\structures\prop_mech.dm" #include "code\game\objects\structures\props.dm" #include "code\game\objects\structures\reagent_dispensers.dm" #include "code\game\objects\structures\safe.dm" +#include "code\game\objects\structures\shower.dm" #include "code\game\objects\structures\signs.dm" +#include "code\game\objects\structures\sink.dm" #include "code\game\objects\structures\surface.dm" #include "code\game\objects\structures\tables_racks.dm" #include "code\game\objects\structures\tank_dispenser.dm" +#include "code\game\objects\structures\urinal.dm" #include "code\game\objects\structures\vulture_spotter.dm" #include "code\game\objects\structures\watercloset.dm" #include "code\game\objects\structures\windoor_assembly.dm" @@ -1370,10 +1428,8 @@ #include "code\modules\admin\NewBan.dm" #include "code\modules\admin\player_notes.dm" #include "code\modules\admin\server_verbs.dm" -#include "code\modules\admin\stickyban.dm" #include "code\modules\admin\STUI.dm" #include "code\modules\admin\tag.dm" -#include "code\modules\admin\ToRban.dm" #include "code\modules\admin\medal_panel\medals_panel.dm" #include "code\modules\admin\medal_panel\medals_panel_tgui.dm" #include "code\modules\admin\player_panel\player_action.dm" @@ -1459,6 +1515,7 @@ #include "code\modules\asset_cache\asset_list.dm" #include "code\modules\asset_cache\asset_list_items.dm" #include "code\modules\asset_cache\assets\fontawesome.dm" +#include "code\modules\asset_cache\assets\medals.dm" #include "code\modules\asset_cache\assets\tgfont.dm" #include "code\modules\asset_cache\assets\tgui.dm" #include "code\modules\asset_cache\assets\vending.dm" @@ -1538,11 +1595,16 @@ #include "code\modules\clothing\suits\bio.dm" #include "code\modules\clothing\suits\jobs.dm" #include "code\modules\clothing\suits\labcoat.dm" -#include "code\modules\clothing\suits\marine_armor.dm" #include "code\modules\clothing\suits\marine_coat.dm" #include "code\modules\clothing\suits\miscellaneous.dm" #include "code\modules\clothing\suits\storage.dm" #include "code\modules\clothing\suits\utility.dm" +#include "code\modules\clothing\suits\marine_armor\_marine_armor.dm" +#include "code\modules\clothing\suits\marine_armor\ert.dm" +#include "code\modules\clothing\suits\marine_armor\ghillie.dm" +#include "code\modules\clothing\suits\marine_armor\intel.dm" +#include "code\modules\clothing\suits\marine_armor\smartgunner.dm" +#include "code\modules\clothing\suits\marine_armor\spec_fire.dm" #include "code\modules\clothing\under\color.dm" #include "code\modules\clothing\under\gimmick.dm" #include "code\modules\clothing\under\marine_uniform.dm" @@ -1602,6 +1664,7 @@ #include "code\modules\cm_preds\smartdisc.dm" #include "code\modules\cm_preds\thrall_items.dm" #include "code\modules\cm_preds\thrall_procs.dm" +#include "code\modules\cm_preds\yaut_actions.dm" #include "code\modules\cm_preds\yaut_bracers.dm" #include "code\modules\cm_preds\yaut_hudprocs.dm" #include "code\modules\cm_preds\yaut_items.dm" @@ -1639,6 +1702,7 @@ #include "code\modules\cm_tech\resources\resource.dm" #include "code\modules\cm_tech\techs\abstract\repeatable.dm" #include "code\modules\cm_tech\techs\abstract\transitory.dm" +#include "code\modules\cm_tech\techs\marine\tier1\arc.dm" #include "code\modules\cm_tech\techs\marine\tier1\points.dm" #include "code\modules\cm_tech\techs\marine\tier2\orbital_ammo.dm" #include "code\modules\cm_tech\techs\marine\tier3\cryo_spec.dm" @@ -1665,7 +1729,6 @@ #include "code\modules\desert_dam\filtration\floodgates.dm" #include "code\modules\desert_dam\filtration\structures.dm" #include "code\modules\desert_dam\motion_sensor\sensortower.dm" -#include "code\modules\destilery\main.dm" #include "code\modules\discord\discord_embed.dm" #include "code\modules\droppod\container_droppod.dm" #include "code\modules\droppod\droppod_ui.dm" @@ -1722,6 +1785,7 @@ #include "code\modules\gear_presets\uscm.dm" #include "code\modules\gear_presets\uscm_dress.dm" #include "code\modules\gear_presets\uscm_event.dm" +#include "code\modules\gear_presets\uscm_forecon.dm" #include "code\modules\gear_presets\uscm_medical.dm" #include "code\modules\gear_presets\uscm_police.dm" #include "code\modules\gear_presets\uscm_ship.dm" @@ -1734,11 +1798,14 @@ #include "code\modules\gear_presets\survivors\survivors.dm" #include "code\modules\gear_presets\survivors\corsat\preset_corsat.dm" #include "code\modules\gear_presets\survivors\fiorina_sciannex\preset_fiorina_sciannex.dm" +#include "code\modules\gear_presets\survivors\fiorina_sciannex\riot_in_progress_insert_fiorina_nightmare.dm" #include "code\modules\gear_presets\survivors\kutjevo\preset_kutjevo.dm" #include "code\modules\gear_presets\survivors\lv_522\forcon_survivors.dm" #include "code\modules\gear_presets\survivors\lv_624\clfship_insert_lv624.dm" +#include "code\modules\gear_presets\survivors\lv_624\corporate_dome_insert_lv624.dm" #include "code\modules\gear_presets\survivors\lv_624\preset_lv.dm" #include "code\modules\gear_presets\survivors\new_varadero\preset_new_varadero.dm" +#include "code\modules\gear_presets\survivors\shivas_snowball\panic_room_insert_shivas.dm" #include "code\modules\gear_presets\survivors\shivas_snowball\preset_shivas_snowball.dm" #include "code\modules\gear_presets\survivors\solaris\crashlanding-offices_insert_bigred.dm" #include "code\modules\gear_presets\survivors\solaris\preset_solaris.dm" @@ -1870,6 +1937,7 @@ #include "code\modules\mob\living\carbon\human\human_dummy.dm" #include "code\modules\mob\living\carbon\human\human_helpers.dm" #include "code\modules\mob\living\carbon\human\human_movement.dm" +#include "code\modules\mob\living\carbon\human\human_stripping.dm" #include "code\modules\mob\living\carbon\human\inventory.dm" #include "code\modules\mob\living\carbon\human\life.dm" #include "code\modules\mob\living\carbon\human\login.dm" @@ -1940,7 +2008,6 @@ #include "code\modules\mob\living\carbon\xenomorph\xeno_verbs.dm" #include "code\modules\mob\living\carbon\xenomorph\XenoAttacks.dm" #include "code\modules\mob\living\carbon\xenomorph\Xenomorph.dm" -#include "code\modules\mob\living\carbon\xenomorph\XenoMutatorSets.dm" #include "code\modules\mob\living\carbon\xenomorph\XenoOverwatch.dm" #include "code\modules\mob\living\carbon\xenomorph\XenoProcs.dm" #include "code\modules\mob\living\carbon\xenomorph\XenoUpgrade.dm" @@ -1979,6 +2046,7 @@ #include "code\modules\mob\living\carbon\xenomorph\abilities\praetorian\praetorian_macros.dm" #include "code\modules\mob\living\carbon\xenomorph\abilities\praetorian\praetorian_powers.dm" #include "code\modules\mob\living\carbon\xenomorph\abilities\predalien\predalien_abilities.dm" +#include "code\modules\mob\living\carbon\xenomorph\abilities\predalien\predalien_macros.dm" #include "code\modules\mob\living\carbon\xenomorph\abilities\predalien\predalien_powers.dm" #include "code\modules\mob\living\carbon\xenomorph\abilities\queen\queen_abilities.dm" #include "code\modules\mob\living\carbon\xenomorph\abilities\queen\queen_macros.dm" @@ -2020,60 +2088,29 @@ #include "code\modules\mob\living\carbon\xenomorph\castes\Spitter.dm" #include "code\modules\mob\living\carbon\xenomorph\castes\Warrior.dm" #include "code\modules\mob\living\carbon\xenomorph\items\iff_tag.dm" -#include "code\modules\mob\living\carbon\xenomorph\mutators\behavior_delegate.dm" -#include "code\modules\mob\living\carbon\xenomorph\mutators\mutator.dm" -#include "code\modules\mob\living\carbon\xenomorph\mutators\strains\boiler\trapper.dm" -#include "code\modules\mob\living\carbon\xenomorph\mutators\strains\carrier\eggsac.dm" -#include "code\modules\mob\living\carbon\xenomorph\mutators\strains\crusher\charger.dm" -#include "code\modules\mob\living\carbon\xenomorph\mutators\strains\defender\steel_crest.dm" -#include "code\modules\mob\living\carbon\xenomorph\mutators\strains\drone\gardener.dm" -#include "code\modules\mob\living\carbon\xenomorph\mutators\strains\drone\healer.dm" -#include "code\modules\mob\living\carbon\xenomorph\mutators\strains\hivelord\resin_whisperer.dm" -#include "code\modules\mob\living\carbon\xenomorph\mutators\strains\lurker\vampire.dm" -#include "code\modules\mob\living\carbon\xenomorph\mutators\strains\praetorian\dancer.dm" -#include "code\modules\mob\living\carbon\xenomorph\mutators\strains\praetorian\oppressor.dm" -#include "code\modules\mob\living\carbon\xenomorph\mutators\strains\praetorian\vanguard.dm" -#include "code\modules\mob\living\carbon\xenomorph\mutators\strains\praetorian\warden.dm" -#include "code\modules\mob\living\carbon\xenomorph\mutators\strains\ravager\berserker.dm" -#include "code\modules\mob\living\carbon\xenomorph\mutators\strains\ravager\hedgehog.dm" -#include "code\modules\mob\living\carbon\xenomorph\mutators\strains\runner\acid.dm" -#include "code\modules\mob\living\silicon\alarm.dm" +#include "code\modules\mob\living\carbon\xenomorph\strains\behavior_delegate.dm" +#include "code\modules\mob\living\carbon\xenomorph\strains\xeno_strain.dm" +#include "code\modules\mob\living\carbon\xenomorph\strains\castes\boiler\trapper.dm" +#include "code\modules\mob\living\carbon\xenomorph\strains\castes\carrier\eggsac.dm" +#include "code\modules\mob\living\carbon\xenomorph\strains\castes\crusher\charger.dm" +#include "code\modules\mob\living\carbon\xenomorph\strains\castes\defender\steel_crest.dm" +#include "code\modules\mob\living\carbon\xenomorph\strains\castes\drone\gardener.dm" +#include "code\modules\mob\living\carbon\xenomorph\strains\castes\drone\healer.dm" +#include "code\modules\mob\living\carbon\xenomorph\strains\castes\facehugger\watcher.dm" +#include "code\modules\mob\living\carbon\xenomorph\strains\castes\hivelord\resin_whisperer.dm" +#include "code\modules\mob\living\carbon\xenomorph\strains\castes\lurker\vampire.dm" +#include "code\modules\mob\living\carbon\xenomorph\strains\castes\praetorian\dancer.dm" +#include "code\modules\mob\living\carbon\xenomorph\strains\castes\praetorian\oppressor.dm" +#include "code\modules\mob\living\carbon\xenomorph\strains\castes\praetorian\vanguard.dm" +#include "code\modules\mob\living\carbon\xenomorph\strains\castes\praetorian\warden.dm" +#include "code\modules\mob\living\carbon\xenomorph\strains\castes\ravager\berserker.dm" +#include "code\modules\mob\living\carbon\xenomorph\strains\castes\ravager\hedgehog.dm" +#include "code\modules\mob\living\carbon\xenomorph\strains\castes\runner\acid.dm" #include "code\modules\mob\living\silicon\death.dm" #include "code\modules\mob\living\silicon\login.dm" #include "code\modules\mob\living\silicon\say.dm" #include "code\modules\mob\living\silicon\silicon.dm" -#include "code\modules\mob\living\silicon\ai\ai.dm" -#include "code\modules\mob\living\silicon\ai\death.dm" -#include "code\modules\mob\living\silicon\ai\examine.dm" -#include "code\modules\mob\living\silicon\ai\life.dm" -#include "code\modules\mob\living\silicon\ai\login.dm" -#include "code\modules\mob\living\silicon\ai\logout.dm" -#include "code\modules\mob\living\silicon\ai\say.dm" -#include "code\modules\mob\living\silicon\ai\freelook\cameranet.dm" -#include "code\modules\mob\living\silicon\ai\freelook\chunk.dm" -#include "code\modules\mob\living\silicon\ai\freelook\eye.dm" -#include "code\modules\mob\living\silicon\ai\freelook\read_me.dm" -#include "code\modules\mob\living\silicon\ai\freelook\update_triggers.dm" #include "code\modules\mob\living\silicon\decoy\decoy.dm" -#include "code\modules\mob\living\silicon\robot\analyzer.dm" -#include "code\modules\mob\living\silicon\robot\component.dm" -#include "code\modules\mob\living\silicon\robot\death.dm" -#include "code\modules\mob\living\silicon\robot\examine.dm" -#include "code\modules\mob\living\silicon\robot\inventory.dm" -#include "code\modules\mob\living\silicon\robot\life.dm" -#include "code\modules\mob\living\silicon\robot\login.dm" -#include "code\modules\mob\living\silicon\robot\photos.dm" -#include "code\modules\mob\living\silicon\robot\robot.dm" -#include "code\modules\mob\living\silicon\robot\robot_damage.dm" -#include "code\modules\mob\living\silicon\robot\robot_items.dm" -#include "code\modules\mob\living\silicon\robot\robot_movement.dm" -#include "code\modules\mob\living\silicon\robot\wires.dm" -#include "code\modules\mob\living\silicon\robot\drone\drone.dm" -#include "code\modules\mob\living\silicon\robot\drone\drone_abilities.dm" -#include "code\modules\mob\living\silicon\robot\drone\drone_console.dm" -#include "code\modules\mob\living\silicon\robot\drone\drone_damage.dm" -#include "code\modules\mob\living\silicon\robot\drone\drone_items.dm" -#include "code\modules\mob\living\silicon\robot\drone\drone_manufacturer.dm" #include "code\modules\mob\living\simple_animal\bat.dm" #include "code\modules\mob\living\simple_animal\parrot.dm" #include "code\modules\mob\living\simple_animal\simple_animal.dm" @@ -2099,12 +2136,12 @@ #include "code\modules\mob\living\simple_animal\hostile\retaliate\clown.dm" #include "code\modules\mob\living\simple_animal\hostile\retaliate\drone.dm" #include "code\modules\mob\living\simple_animal\hostile\retaliate\retaliate.dm" -#include "code\modules\mob\new_player\body_type.dm" -#include "code\modules\mob\new_player\ethnicity.dm" +#include "code\modules\mob\new_player\body.dm" #include "code\modules\mob\new_player\login.dm" #include "code\modules\mob\new_player\logout.dm" #include "code\modules\mob\new_player\new_player.dm" #include "code\modules\mob\new_player\preferences_setup.dm" +#include "code\modules\mob\new_player\skin_color.dm" #include "code\modules\mob\new_player\sprite_accessories\facial_hair.dm" #include "code\modules\mob\new_player\sprite_accessories\hair.dm" #include "code\modules\mob\new_player\sprite_accessories\hair_gradients.dm" @@ -2149,6 +2186,7 @@ #include "code\modules\organs\wound.dm" #include "code\modules\paperwork\carbonpaper.dm" #include "code\modules\paperwork\clipboard.dm" +#include "code\modules\paperwork\desk_bell.dm" #include "code\modules\paperwork\filingcabinet.dm" #include "code\modules\paperwork\folders.dm" #include "code\modules\paperwork\notepad.dm" @@ -2157,7 +2195,6 @@ #include "code\modules\paperwork\paperbin.dm" #include "code\modules\paperwork\photocopier.dm" #include "code\modules\paperwork\photography.dm" -#include "code\modules\paperwork\silicon_photography.dm" #include "code\modules\power\apc.dm" #include "code\modules\power\batteryrack.dm" #include "code\modules\power\breaker_box.dm" @@ -2239,6 +2276,7 @@ #include "code\modules\reagents\chemistry_machinery\pandemic.dm" #include "code\modules\reagents\chemistry_machinery\reagent_analyzer.dm" #include "code\modules\reagents\chemistry_machinery\reagent_grinder.dm" +#include "code\modules\reagents\chemistry_machinery\xenomorph_analyzer.dm" #include "code\modules\reagents\chemistry_properties\chem_property.dm" #include "code\modules\reagents\chemistry_properties\prop_negative.dm" #include "code\modules\reagents\chemistry_properties\prop_neutral.dm" @@ -2311,6 +2349,7 @@ #include "code\modules\surgery\surgery_steps.dm" #include "code\modules\surgery\surgery_toggle.dm" #include "code\modules\surgery\tendwounds.dm" +#include "code\modules\surgery\xeno.dm" #include "code\modules\teleporters\teleporter.dm" #include "code\modules\teleporters\teleporter_admin_verbs.dm" #include "code\modules\teleporters\teleporter_console.dm" @@ -2341,6 +2380,7 @@ #include "code\modules\tgui\states\default.dm" #include "code\modules\tgui\states\hands.dm" #include "code\modules\tgui\states\human_adjacent.dm" +#include "code\modules\tgui\states\in_view.dm" #include "code\modules\tgui\states\inventory.dm" #include "code\modules\tgui\states\never.dm" #include "code\modules\tgui\states\new_player.dm" @@ -2358,15 +2398,18 @@ #include "code\modules\tgui\tgui-say\modal.dm" #include "code\modules\tgui\tgui-say\speech.dm" #include "code\modules\tgui\tgui-say\typing.dm" +#include "code\modules\tgui_input\checkboxes.dm" #include "code\modules\tgui_input\text.dm" #include "code\modules\tgui_panel\audio.dm" #include "code\modules\tgui_panel\external.dm" +#include "code\modules\tgui_panel\ping_relay.dm" #include "code\modules\tgui_panel\telemetry.dm" #include "code\modules\tgui_panel\tgui_panel.dm" #include "code\modules\tooltip\tooltip.dm" #include "code\modules\unit_tests\_unit_tests.dm" #include "code\modules\vehicles\cargo_train.dm" #include "code\modules\vehicles\powerloader.dm" +#include "code\modules\vehicles\souto_mobile.dm" #include "code\modules\vehicles\train.dm" #include "code\modules\vehicles\vehicle.dm" #include "code\modules\vehicles\vehicle_misc_objects.dm" @@ -2374,6 +2417,9 @@ #include "code\modules\vehicles\apc\apc_command.dm" #include "code\modules\vehicles\apc\apc_medical.dm" #include "code\modules\vehicles\apc\interior.dm" +#include "code\modules\vehicles\arc\arc.dm" +#include "code\modules\vehicles\arc\interior.dm" +#include "code\modules\vehicles\arc\verbs.dm" #include "code\modules\vehicles\hardpoints\hardpoint.dm" #include "code\modules\vehicles\hardpoints\armor\armor.dm" #include "code\modules\vehicles\hardpoints\armor\ballistic.dm" @@ -2381,6 +2427,7 @@ #include "code\modules\vehicles\hardpoints\armor\concussive.dm" #include "code\modules\vehicles\hardpoints\armor\paladin.dm" #include "code\modules\vehicles\hardpoints\armor\snowplow.dm" +#include "code\modules\vehicles\hardpoints\hardpoint_ammo\arc_sentry_ammo.dm" #include "code\modules\vehicles\hardpoints\hardpoint_ammo\autocannon_ammo.dm" #include "code\modules\vehicles\hardpoints\hardpoint_ammo\cupola_ammo.dm" #include "code\modules\vehicles\hardpoints\hardpoint_ammo\dualcannon_ammo.dm" @@ -2396,6 +2443,7 @@ #include "code\modules\vehicles\hardpoints\hardpoint_ammo\tow_ammo.dm" #include "code\modules\vehicles\hardpoints\holder\holder.dm" #include "code\modules\vehicles\hardpoints\holder\tank_turret.dm" +#include "code\modules\vehicles\hardpoints\primary\arc_sentry.dm" #include "code\modules\vehicles\hardpoints\primary\autocannon.dm" #include "code\modules\vehicles\hardpoints\primary\dual_cannon.dm" #include "code\modules\vehicles\hardpoints\primary\flamer.dm" @@ -2410,12 +2458,14 @@ #include "code\modules\vehicles\hardpoints\secondary\tow.dm" #include "code\modules\vehicles\hardpoints\special\firing_port_weapon.dm" #include "code\modules\vehicles\hardpoints\special\special.dm" +#include "code\modules\vehicles\hardpoints\support\antenna.dm" #include "code\modules\vehicles\hardpoints\support\artillery.dm" #include "code\modules\vehicles\hardpoints\support\flare.dm" #include "code\modules\vehicles\hardpoints\support\iwsa.dm" #include "code\modules\vehicles\hardpoints\support\overdrive.dm" #include "code\modules\vehicles\hardpoints\support\support.dm" #include "code\modules\vehicles\hardpoints\wheels\apc_wheels.dm" +#include "code\modules\vehicles\hardpoints\wheels\arc_wheels.dm" #include "code\modules\vehicles\hardpoints\wheels\locomotion.dm" #include "code\modules\vehicles\hardpoints\wheels\treads.dm" #include "code\modules\vehicles\hardpoints\wheels\van_wheels.dm" diff --git a/config/example/config.txt b/config/example/config.txt index 8a976e02a580..d63e6822465c 100644 --- a/config/example/config.txt +++ b/config/example/config.txt @@ -4,6 +4,7 @@ # $include dbconfig.txt # $include resources.txt # $include icon_source.txt +# $include relays.txt ## Server name: This appears at the top of the screen in-game. In this case it will read "tgstation: station_name" where station_name is the randomly generated name of the station for the round. Remove the # infront of SERVERNAME and replace 'tgstation' with the name of your choice # SERVERNAME spacestation13 @@ -151,9 +152,6 @@ BANAPPEALS https://cm-ss13.com/viewforum.php?f=76 ##Defines the ticklag for the world. 0.9 is the normal one, 0.5 is smoother. TICKLAG 0.5 -## Uncomment this to ban use of ToR -#TOR_BAN - ## Uncomment this to have country flags pop up in OOC alongside names if the user has the pref turned on (uses IP-API) #OOC_COUNTRY_FLAGS @@ -243,3 +241,20 @@ GAMEMODE_DEFAULT Extended ## How long the mob will take to chestburst, in seconds #EMBRYO_BURST_TIMER 450 + +## CLIENT VERSION CONTROL +## This allows you to configure the minimum required client version, as well as a warning version, and message for both. +## These trigger for any version below (non-inclusive) the given version, so 510 triggers on 509 or lower. +## These messages will be followed by one stating the clients current version and the required version for clarity. +#CLIENT_WARN_VERSION 514 +#CLIENT_WARN_BUILD 1589 +#CLIENT_WARN_MESSAGE Your version of BYOND may have issues or be blocked from accessing this server in the future. +#CLIENT_WARN_POPUP +CLIENT_ERROR_VERSION 514 +#CLIENT_ERROR_BUILD 1589 +#CLIENT_ERROR_MESSAGE Your version of BYOND is too old, may have issues, and is blocked from accessing this server. + +## GITHUB API +#GITHUB_APP_API +#REPO_NAME cmss13 +#ORG cmss13-devs \ No newline at end of file diff --git a/config/example/relays.txt b/config/example/relays.txt new file mode 100644 index 000000000000..562e917fa484 --- /dev/null +++ b/config/example/relays.txt @@ -0,0 +1,22 @@ +## Settings controlling the relay ping browser accessed via PingIndicator in TGChat +## Pings are performed by timing how long it takes to download favicon.ico from the PingURL + +## Connection Relays: Name must match both ping and connect pairs +## CONNECTION_RELAY_PING Name|PingURL +## CONNECTION_RELAY_CON Name|ConnectURL +CONNECTION_RELAY_PING Direct|play.cm-ss13.com:8998 +CONNECTION_RELAY_CON Direct|play.cm-ss13.com:1400 +CONNECTION_RELAY_PING United Kingdom, London|uk.cm-ss13.com:8998 +CONNECTION_RELAY_CON United Kingdom, London|uk.cm-ss13.com:1400 +CONNECTION_RELAY_PING France, Gravelines|eu-w.cm-ss13.com:8998 +CONNECTION_RELAY_CON France, Gravelines|eu-w.cm-ss13.com:1400 +CONNECTION_RELAY_PING Poland, Warsaw|eu-e.cm-ss13.com:8998 +CONNECTION_RELAY_CON Poland, Warsaw|eu-e.cm-ss13.com:1400 +CONNECTION_RELAY_PING Oregon, Hillsboro|us-w.cm-ss13.com:8998 +CONNECTION_RELAY_CON Oregon, Hillsboro|us-w.cm-ss13.com:1400 +CONNECTION_RELAY_PING Virginia, Vint Hill|us-e.cm-ss13.com:8998 +CONNECTION_RELAY_CON Virginia, Vint Hill|us-e.cm-ss13.com:1400 +CONNECTION_RELAY_PING Singapore|asia-se.cm-ss13.com:8998 +CONNECTION_RELAY_CON Singapore|asia-se.cm-ss13.com:1400 +CONNECTION_RELAY_PING Australia, Sydney|aus.cm-ss13.com:8998 +CONNECTION_RELAY_CON Australia, Sydney|aus.cm-ss13.com:1400 diff --git a/dependencies.sh b/dependencies.sh index f88c2f9b0a4b..e0da4aa75f66 100644 --- a/dependencies.sh +++ b/dependencies.sh @@ -1,23 +1,21 @@ -#!/bin/bash +#!/bin/sh #Project dependencies file #Final authority on what's required to fully build the project # byond version -export BYOND_MAJOR=514 -export BYOND_MINOR=1588 +export BYOND_MAJOR=515 +export BYOND_MINOR=1627 #rust_g git tag -export RUST_G_VERSION=2.1.0 +export RUST_G_VERSION=3.3.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.7.2 +export SPACEMAN_DMM_VERSION=suite-1.8 # Python version for mapmerge and other tools -export PYTHON_VERSION=3.7.9 - -export OPENDREAM_VERSION=0.2.0 +export PYTHON_VERSION=3.9.0 diff --git a/html/changelogs/AutoChangeLog-pr-5169.yml b/html/changelogs/AutoChangeLog-pr-5169.yml deleted file mode 100644 index 833aefea82fd..000000000000 --- a/html/changelogs/AutoChangeLog-pr-5169.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "InsaneRed" -delete-after: True -changes: - - bugfix: "M44 Heavy bullets no longer display a \"4\" when you get hit by them" \ No newline at end of file diff --git a/html/changelogs/archive/2023-12.yml b/html/changelogs/archive/2023-12.yml index 058edaa8a731..6f487820ae46 100644 --- a/html/changelogs/archive/2023-12.yml +++ b/html/changelogs/archive/2023-12.yml @@ -209,3 +209,383 @@ 2023-12-11: ihatethisengine: - bugfix: fusion reactors cannot be destroyed with explosions +2023-12-12: + InsaneRed: + - bugfix: M44 Heavy bullets no longer display a "4" when you get hit by them +2023-12-13: + BadAtThisGame302: + - bugfix: fixed Engie not showing up an Engie Area on tacmap on LV-624 + - bugfix: Fixed Research not showing up as a Research Area on tacmap on LV-624 + Birdtalon: + - bugfix: Fixes a missing area on Almayer + NateDross: + - spellcheck: Edited 'M56 Battery' to 'M56 DV9 Battery' in requisitions munition + vendor + NessiePendragon: + - rscadd: Adds a new braid hairstyle. + blackdragonTOW: + - balance: GAU RoF doubled + harryob: + - rscadd: added a historical medal viewer + realforest2001: + - rscadd: Added a new almayer hull type (heavy reinforced) which is indestructible + by normal means until after hijack collision. + - rscadd: Added a new subtype of shutter that automatically opens or closes depending + on security level. + - maptweak: Maps both of the above around the engineering storeroom. Also adds the + walls between the firing ranges and around uniform vendors. + - maptweak: Manual control button for shutters over engineering storage in the CEs + office. + - code_imp: Changes hijack structural changes (walls/windows/windoors/ladders) to + use signals. + - ui: Shuttle manipulator UI is now slightly wider on initial startup. +2023-12-14: + Contrabang: + - rscadd: The compass headgear will now tell you what direction you're facing when + on a planet. + - code_imp: Added a new ground environmental trait for a ground level in space. + InsaneRed: + - balance: Vanguard dash now restores your shield if you hit ANYONE instead of 2 + people. + - balance: Vanguard buffed root now roots you for 2.5 seconds, unbuffed for 1 second + - qol: Vanguard's pierce has now a hit sound for better feedback + Nanu308: + - balance: Adjusted how much light is given by standard marine armor. + - balance: Light Armor remains the same range & power, Medium armor now gives a + bit more light, Leader B12 armor gives a bit more light & range, M4 (rto) gives + a bit more light, and Heavy armor give the most light and range compared to + before. + - code_imp: Changed inheritance for medium armor as the different sprite versions + were laid directly under the parent type instead of the medium one and so forth. + NateDross: + - bugfix: fixed hardhat action item icon + fira: + - bugfix: Some Xeno throws now immobilize their targets, ensuring they do not walk + out of the toss mid-flight. + realforest2001: + - bugfix: M56D can no longer be used by the dead. +2023-12-15: + BeagleGaming1: + - imageadd: New sprite for Santa hats + Drathek: + - bugfix: Fix dead nested mobs disappearing when weeded + LTNTS: + - maptweak: remapped brig to be more concise, more interconnected, and easier to + navigate. And added more cells for when needed. + - qol: adds RiotTech (SecTech but for Riot Control with Rubber Bullets - obvs Code + Blue+ only) + - qol: CMP's locker requires Armory access to open now + - qol: suspects are now colored nardo gray in security list + NateDross: + - bugfix: Fixed hard hat user inventory head icon + SabreML: + - bugfix: Fixed camera sprites changing to their mapping helper after being EMPed. + Triiodine: + - rscadd: randomized barrels for mappers. You can instance the straps on and off! + - imageadd: 'Resprited the following: traffic cone, goldschlager bottle, cream carton, + oj carton, lime juice carton, tomato juice carton, pineapple juice carton, tequila + bottle, kahlua bottle, bottle of nothing, cognac bottle, critter crate (now + lore accurate), secgear crate, cm barrels, phoron crate, riot shield inhands,' + - imageadd: 'Added unique sprites for the following: vodka bottle, gin bottle,' + - imageadd: Fixed stray pixels on fridgeopen, open_plastic + - imagedel: Removed some unused legacy icons. + - bugfix: Hotdogs and burritos now properly appear when worn in a helmet in packaged + and unpackaged states. + - imageadd: The ME3 hand welder and industrial welder now have unique sprites and + inhands. + - imageadd: Differentiates synth graft and surgical line, color coded now to represent + the damage they fix. +2023-12-16: + Birdtalon: + - rscadd: Xenomorph telegraph effects can now be any rgb colour. + GoldenAlpharex: + - bugfix: Chat highlights now escape special RegEx characters from non-RegEx highlights. + - bugfix: Broken RegEx expressions no longer cause the chat to bluescreen, allowing + you to properly fix them. + InsaneRed: + - spellcheck: Xenomorph text is now WE/OUR instead of YOU/YOUR + blackdragonTOW: + - rscadd: Added Radio Keys to the CL's briefcase +2023-12-17: + BadAtThisGame302: + - rscadd: Added a LV-624 Corporate Liaison Survivor. + - rscadd: Added a Flight Control Operator Survivor to Solaris Ridge (for now, might + be added to more maps soon!). + - qol: made survivor.dm easier to use by moving the basic security surv with the + engineer/scientist/doctor which it wierdly enough it wasn't with. + - balance: rebalanced CL a lockable satchel. + - bugfix: fixed the survivor.dm comments falsely saying that some surv types are + not used anywhere when they are. + - spellcheck: fixed the LV-624 announcement text, made it roll off the tongue easier. + - code_imp: changed CL and ICC survs shoes from centcom? To laceup. + Drathek: + - rscadd: Implemented xeno corpse weed merging + - imageadd: Added 48 sprites, 3 stages per caste silhouette, for xeno weeded corpses + - bugfix: Fixes ghosts not displaying their name on hover if weeded and weird behavior + when orbited via ctrl+click + Huffie56: + - balance: For SG,IO,medic,comtech standartize the binoculars section as fallow + (Binoculars=5, Range Finder =10, Laser Designator=15). + - balance: reduce the number of stages from 5 to 3. each stage take 6 min or 360s. + - balance: rework the logic that handle the disease progress + - balance: A-Set stage_prob to zero to prevent random stage increase. + - balance: B-add a stage_level variable that when is at-least 360 make an increase + of the disease stage... + - balance: C-add an infection_rate variable that handle how fast the stage_level + increase passively. + - balance: D-infection_rate is quadruple when the host is dead. + - balance: E-I also added that the goo messages (you feel warm ....) give a boost + to stage_level to add some randomness to the infection progress. + SpartanBobby, LCMS1: + - maptweak: Numerous Fixes for new brig + cuberound: + - balance: DS doorgun can shoot over cades +2023-12-18: + Huffie56: + - bugfix: added landing zone camera on trijent. + - bugfix: fixed landing zone camera on all map in rotation. + sleepynecrons: + - imageadd: marine snow uniforms and armors given a new look +2023-12-19: + Drathek: + - balance: Added the possibility of surgery steps failing based on tool and surface + suitability compensated by surgery skill. + Huffie56: + - bugfix: fix a nightmare insert that had a wall and a door on same tile. + NateDross: + - bugfix: Requisitions elevator lighting fix + NessiePendragon: + - rscadd: Added new sprites for Warrior. + PurpleCIoud: + - imageadd: added chocolate bar new sprite + - imagedel: deleted old chocolate bar sprite + SabreML: + - rscadd: Updated the 'help' message for xeno special structure construction. + - qol: Added a 'remaining' counter when constructing special structures to let players + know how many can still be built. + - qol: Added a 'Ghost' button for dead xenomorphs. + realforest2001: + - rscadd: Added a proc for comparing the registered name of an ID, to the real name + of a mob. Also checks registered_ref if one exists. + - rscadd: Evacuation can no longer be cancelled without passing above check. + - rscadd: People forced into escape-pod stasis bays against their wishes can now + eject themselves. + - bugfix: Xenos can no longer force humans into escape-pod stasis bays. + - bugfix: Escape-pod stasis bays no longer accept corpses. + stalkerino: + - balance: fixes the balance of the game by making hair gradient trait free +2023-12-20: + Birdtalon, Fira: + - bugfix: Fixes hive UI crash upon pylon giving new larva. + Contrabang: + - bugfix: Matches now do burn damage instead of brute, when you accidently burn + your own hand. + InsaneRed: + - spellcheck: Converted more "YOU" to "WE" for xenomorphs. + LTNTS: + - qol: makes suspect nardo gray + fira: + - rscadd: Added Buckled, Handcuffed and Legcuffed screen alerts + - code_imp: Ported /tg/ status effects backend, modified with timers to let effects + end at appropriate time + - code_imp: Stun, Knockdown and Knockout now use the new effects backend + - balance: Due to backend change, all KO/KD/Stuns may behave differently timing + wise. This is of course subject to adjustments. + - balance: Endurance is now set at 8% effect duration reduction per level above + 1. However it now compounds with species bonus. Feel free to adjust. + - balance: Knockdowns are not inherently incapacitating anymore and many sources + of it have been updated to also stun to make up for it. + - bugfix: KO/KD/Stuns do not artificially and randomly ''stack'' due to incorrect + timer offset calculation anymore. + - bugfix: Stuns now correctly apply Stun reduction values instead of Knockdown reductions. + - bugfix: Crawling can now be interrupted by a normal move, if you are fit enough + to do so. + realforest2001: + - maptweak: Various doors around the Almayer will now close their opposites for + better security. +2023-12-21: + Birdtalon: + - bugfix: Lurker can tail jab over ledges and window frames. + Drathek: + - imageadd: Update weeded warrior sprites to be compatible with knight strain sprite +2023-12-22: + Ben10083: + - rscdel: ' Working Joes can no longer drink' + Cthulhu80: + - ui: tacmap ui tweaks + Doubleumc: + - bugfix: Fixed security tuner not dispalying direction to room's APC + - refactor: Refactored code handling angles + InsaneRed: + - code_imp: Converts xenomorph cooldowns into SECONDS + SabreML: + - bugfix: Fixed being able to remove multiple stacks of fire by spamming resist. + Steelpoint: + - rscadd: Factions are now properly separated in the observe menu as a ghost. + cuberound: + - bugfix: bad DS doorgun placement + fira: + - bugfix: Fix Xmas helmets getting overriden by map camouflage. + realforest2001: + - bugfix: Hijack should no longer end the round immediately. + - rscadd: Ghosts can now toggle hearing listening devices or not. This is dependant + on hearing radios and will not function to allow hearing devices without also + hearing radios. +2023-12-23: + BadAtThisGame302: + - balance: rebalanced goon skillset to include construction 1 + - spellcheck: fixed Liason area typos to Liaison + - spellcheck: fixed the ICC Liason to ICC Liaison typo + fira: + - bugfix: Fixed X-mas barricade wiring not applying properly. + private-tristan: + - balance: xenos can now acid all window frames. +2023-12-24: + BadAtThisGame302: + - rscadd: Added a windbreaker to the Flight Control Operator surv. + - rscadd: Added W-Y Flight Control access to the Flight Control Operator surv. + - bugfix: fixed the Flight Control Operator path. + Cthulhu80: + - rscadd: human mobs now scream whenever they get lunged at by a warrior. + - soundadd: added a new scream sound and put it into the existing scream list. + Drathek: + - bugfix: Fix crusher charge and tumble abilities going over unwired cades + Huffie56: + - bugfix: removed an extra light in bravo cryo room(to do just saw it) + - maptweak: added more areas (stern_point_defense, Lower Deck Stern Hull, Upper + Deck port Hallway Upper Deck starboard Hallway) + SabreML: + - rscdel: Removed the green overlay from camera consoles. + - rscadd: Allowed Xenomorphs to turn off the dropship's launch alarm by hitting + the nav computer. + - spellcheck: Made the `xenoboldnotice` span class bold rather than italic. + cuberound: + - bugfix: DS doorgun no longer drops the gun when destroyed + ihatethisengine: + - balance: "New healer drone ability \u2014 sacrifice. Healer drone can instantly\ + \ transfer 75% of its current health, but for the great cost of the healer\u2019\ + s own life." +2023-12-25: + InsaneRed: + - balance: Tweaks down the buffed root of vanguard down to 1.8 from 2.5 +2023-12-26: + Ben10083: + - rscadd: If ARES is destroyed, systems such as bioscan also shut down, this will + be expanded in the future + - rscadd: ARES plays an announcement when destroyed + - code_imp: Procs to check for APOLLO processor and if ARES is alive added + - refactor: ARES subsystems modified to utilize new procs + - admin: Prompt to force a Marine Bioscan only shows when ARES is unable to perform + the bioscan. + Drathek: + - bugfix: Fix queen death not fully readmitting any banished xenos + - bugfix: Fixed resisting acid + SabreML: + - code_imp: Made the Tech Tree subsystem initialise faster. + Steelpoint: + - rscadd: The Executive Officer now has a personal weapons vendor. It includes the + ability to acquire a full suite of combat and support gear, giving the XO more + agency in customizing their loadout. + - rscadd: Adds a new set of belts to the Executive Officer's uniform vendor. + mullenpaul: + - ui: tgui dropship weapons console + - refactor: added MFD panel + - refactor: creates datum component to manage camera code + - qol: CAS weapons operator can see camera in UI + - rscadd: CAS can offset in X and Y coordinates + - refactor: CAS can offset in different direction to attack vector + realforest2001: + - bugfix: Yautja bracer lock can now properly unlock thrall bracers. +2023-12-27: + Birdtalon: + - rscdel: Removed old crystal code from xenos + - code_imp: Renames still used vars from crystal to plasma + - code_imp: Removes crystal define in place of plasma string + Drathek: + - bugfix: Fix xeno wounds layering over weeds when merged with the weeds + InsaneRed: + - spellcheck: More WE/YOU fixes for xenomorph side. + - bugfix: Spitter's charge spit abiltiy now properly adds and removes the 5 armor + like its supposed to initially. + SabreML: + - bugfix: Fixed the Queen Eye still showing as "Immature" after the Queen ages. + - bugfix: Fixed carriers being unable to reduce their 'reserved facehuggers' number. + - bugfix: Fixed being able to vend infinite alcohol. + - bugfix: Fixed the death message from GAU-21 and Laser Cannon strikes saying that + the player was killed by the ammo crate. + cuberound: + - balance: launchbay price 400 -> 200 + - balance: DS installed sentrygun price lowered to 200 + realforest2001: + - code_imp: Added a new span class that combines bold and big. + - code_imp: Tweaked the way prayer sends notifications to be more efficient. + - admin: Moved the prayer notification sound to a toggle preference, combined with + ARES Interface notifications. +2023-12-28: + InsaneRed: + - bugfix: Synths are no longer immune to lunges / dragging while in 'critical state' + since they dont go into crit. + SabreML: + - bugfix: Fixed inserting/removing an item from shoes sometimes acting weirdly. + - refactor: Refactored shoe item storage. + fira: + - bugfix: Fixed XRF Scanner bricking if people were adding and removing vials at + same time. +2023-12-29: + sleepynecrons: + - imageadd: new sprites for predalien, predlarva and weeded corpse + - imageadd: added predalien wound overlays +2023-12-30: + Birdtalon: + - bugfix: Runtime in inventory.dm + Cthulhu80: + - bugfix: fixes immobilized mobs being able to buckle themselves + InsaneRed: + - qol: '"View Playtime" is now under the "Records" section under OOC' + - qol: '"Remove Your Splints" is now under the "IC" section.' + SabreML: + - bugfix: Fixed the CAS laser cannon only setting fire to a single tile, rather + a 7x7 range. + - qol: Made the designation of a tunnel display in chat when a player enters it. + - bugfix: Fixed the pyro spec's fuel pack sometimes giving weird failure messages + when trying to switch fuel. + Zonespace27: + - rscadd: Added a tutorial system for various roles (and just general information), + find it in the lobby screen. + cuberound: + - bugfix: m56d can not longer shoot backwards when facing north + mullenpaul: + - refactor: tgui js components now jsx +2023-12-31: + AnonHault: + - spellcheck: fixed a typo + BeagleGaming1: + - qol: Adds the ability to hide your action buttons + Birdtalon: + - bugfix: Fixes a runtime on decapping one's self. + - bugfix: Runtime with milk and possibly other reagent's on_mob_life() + - bugfix: Fixes runtime calling post_attack() on a mob which has already been qdeleted + via gibbing. + - code_imp: Refactors some code to new throw_carbon proc + Cthulhu80: + - bugfix: Fixes movement delay stacking on weeds + - bugfix: Fixes evac pods launching with more than the occupant limit + Huffie56: + - qol: creating a new section called engineering supplies for the rifleman and the + team leader. + - balance: added standard binocular to the rifleman vendor at a cost of 5. + - balance: added Range Finder and Laser Designator binoculars to Team leader at + a cost of 10 and 20. + - balance: added ES-11 Mobile Fuel Canister and ME3 hand welder to Team leader and + rifleman for 5 each. + InsaneRed: + - balance: Properly tweaks predator stun resist back to what it should have been. + SabreML: + - bugfix: Fixed the Hive Status window showing an error message when the Queen dies. + - qol: Added a 'Time Since Death' counter to the status tab for ghosts. + blackdragonTOW: + - rscadd: Max CL Headset radio keys from 3 to 5. (+2 increase) + cuberound: + - balance: gives trucker engineer level construction skill + mullenpaul: + - refactor: sentry laptop now uses camera manager component diff --git a/html/changelogs/archive/2024-01.yml b/html/changelogs/archive/2024-01.yml new file mode 100644 index 000000000000..01bc18eaee1b --- /dev/null +++ b/html/changelogs/archive/2024-01.yml @@ -0,0 +1,463 @@ +2024-01-01: + Cthulhu80: + - bugfix: fixes the associated examine text being displayed for different hud types + even when removed. + - balance: slightly increases zombie infection rate in dead mobs + - refactor: refactored some zombie code. + - bugfix: Fixes mobs being able to understand other languages while in crit. + - bugfix: fixes users getting stuck inside of the simulator + - bugfix: fixes xenos being able to view raw html on paper. + - bugfix: Fixes photos not being viewable from any distance as an observer + - bugfix: Fixes permanent lighting buff after using the vulture sniper rifle. + Drathek: + - bugfix: Fix handling of sentry_computer deletion + InsaneRed: + - spellcheck: Changed hit alerts to We instead of You on the xeno side. + Private Tristan: + - bugfix: Eggs are properly converted to Forsaken hive on evac + fira: + - bugfix: Fixed Nuke failing to detonate under specific circumstances. It may involve + a little rodent. + - bugfix: Nuke explosion will now kill mobs on its actual explosion rather than + at the start of the cinematic sequence. + mullenpaul: + - bugfix: properly sorted team lead position in squad info page +2024-01-02: + Cthulhu80: + - bugfix: Fixes voting message not formatting correctly. + SabreML: + - bugfix: Fixed screen alert tooltips ('Buckled' indicator and stuff) getting stuck + open. + Zonespace27: + - rscadd: The Three-World Empire will now occasionally respond to distress beacons. + cuberound: + - balance: m56d can not be placed within five tiles of another one +2024-01-03: + SabreML: + - bugfix: Fixed custom xeno ERTs sending a distress beacon announcement when it + shouldn't. + Steelpoint: + - mapadd: Shivas Snowball is back in rotation. + - maptweak: The south east landing zone on Shivas has been relocated to the south + west, the dig site in the south west has been similarly relocated. + - maptweak: Comms towers on Shivas have been placed in more consistent locations + near each other, instead of some of them being on the opposite sides of the + map from each other. + poltava, ihatethisengine: + - rscadd: added intel chestrig + - imageadd: added sprites for intel chestrig +2024-01-04: + BeagleGaming1, Mr.Crowford: + - rscadd: Added Yautja action buttons + - qol: Added a keybind to control falcon drones + - qol: Thwei crystals and healing capsules say how much time until off cooldown + - code_imp: Yautja keybinds now redirect to action buttons + - code_imp: Changed thwei crystals and healing capsules to cooldowns instead of + timers + - code_imp: Miscellaneous Yautja-related code cleanup + SabreML: + - bugfix: Fixed non-combat synthetics being able to fire the M2C. + - bugfix: Fixed scouts being able to use the M56D or M2C before their cloak's gun + cooldown had ended. + - bugfix: Fixed the M56D and M2C saying that the user is too far away to man it, + even when they successfully man it. + - bugfix: Fixed a runtime which was caused whenever someone manned an M56D or M2C. + - refactor: Refactored some M56D and M2C manning/unmanning code. + fira: + - code_imp: Refactored Daze to use new Status backend + - bugfix: Dazed screen effect now applies immediately + - bugfix: Stuttering now starts properly when dazed + - rscdel: Removed unused disabilities code + - rscdel: Removed an old, goofy and unused decade old horse mask +2024-01-05: + Birdtalon: + - bugfix: Fixed exploit in praetorian hook caused by an oversight. + Huffie56: + - refactor: for the file coulours.dm and other files change define in it from COULOUR + to COLOR + SabreML: + - bugfix: Made the 'Time Since Death' counter show hours if it passes 1 hour, rather + than wrapping the minutes back to 0. + - ui: Separated xeno hivemind chat messages into their own toggleable category, + separate from 'Radio'. +2024-01-06: + private-tristan: + - bugfix: Trijent security southern hallway and engineering east tunnel no longer + have 2 APCs +2024-01-07: + BadAtThisGame302: + - qol: Spruced up the CLs office by adding a new plant, changing the stuck posters + to be random every round + - bugfix: Fixed the ATM Machine in the CLs office having Weyland-Yutani Automatic + Teller Machine and not Wey-Yu. Same thing, useless mapedit. + - bugfix: Fixes the PROUDLY REMEMBER IO! Posters in the CLs office (Again) + - bugfix: Puts the 29th Poster which was a pinup into the pinup posters and not + the music ones. + Birdtalon: + - bugfix: Runtime when consuming xeno fruits. + Blundir: + - rscadd: added approved stamp + - bugfix: fixed being unable to write on papers on noticeboard + - ui: changed noticeboard UI from scratch + - refactor: refactored noticeboard code + - maptweak: added noticeboard to req and approved stamp to QM's office, as well + as some pens in req area to interact with noticeboard + Drathek: + - refactor: Refactored the overlay_lighting component to better handle objects deleting + - bugfix: Fix putting lights in bags somereason keeping the light on + - ui: Polished various aspects of the new dropship weapons UI + - bugfix: Fixed CAS direct firing + - bugfix: Fixed Medevac buttons not moving the dropship (still currently requires + manual winch) + - bugfix: Fixed camera_manager resizing the view incorrectly because of overlay_lighting + - refactor: Ported some hard delete fixes for maps. + - bugfix: Fixed simulators detonation button + - bugfix: Fixed weeded corpses not changing color during forsaken conversion + - code_imp: Add missing bitfield definitions for variable viewer (VV) + LTNTS: + - bugfix: fixes trippy carrot cake sprite + SabreML: + - bugfix: Fixed observing a monkey/farwa/stok/etc. locking the camera onto it. + - bugfix: Fixed the 'busy' circle icon sometimes rendering behind object on the + tile above. + - spellcheck: Updated the night vision goggles 'Tip of the round' to instead relate + to night vision optics. + TheGamerdk: + - rscadd: SLs, SOs and XOs can now recommend people for medals! Do this by right-clicking + your headset, or using the new button in the object panel of the Status Panel! + ihatethisengine: + - balance: Pylons give larva only up to 50% of groundside (weighted) marines, instead + of 40% of all humans. + - balance: Xenos get major boost to evo speed for 3 minutes after hijack. Hijacking + resets ovi cooldown. + - rscadd: Xenos now see marines on the tacmap during hijack if xenos outnumber marines + for more than 25%. + private-tristan: + - spellcheck: Changed a tip related to runner pounce to be more accurate +2024-01-08: + realforest2001: + - bugfix: Yautja scimitars no longer bypass attack delay. +2024-01-09: + private-tristan: + - bugfix: Tunnels are now converted to forsaken on evac. +2024-01-10: + SabreML: + - bugfix: Fixed tunnels not showing on the minimap. + Tsurupeta: + - bugfix: Regular expressions in chat highlights work again. +2024-01-12: + Vicacrov: + - bugfix: Placing flags now anchors the actual flag, not the stack of flags in your + hand. + Zenith, Steelpoint: + - rscadd: Updates Steelpoint's donor armour, replacing it with a new sprite, camouflage + options for all maps and new item descriptions that are lore friendly. + realforest2001: + - rscadd: Added the X17 Riot Breaching Charge. +2024-01-15: + InsaneRed: + - qol: Moves "Banish, Re-admit and De-evolving" queen abilities into one list, making + the queen ui less clutterier + Stakeyng: + - rscadd: Added the ability to combine prescription glasses with eyewear for varying + roles + private-tristan: + - bugfix: removed a light fixture being doubled on trijent + - maptweak: moved some trijent lights in marshals off windows + - maptweak: Alamayer PermaBrig Chairs face the right way +2024-01-16: + Drathek: + - bugfix: Fix all hands on deck message not sending to those in cryopods + Huffie56: + - rscadd: Add the ability to build multi tile assembly from metal sheets. + ItsVyzo: + - balance: m56d loses burst fire + SabreML: + - bugfix: Fixed dead marines being able to man and fire the M56D. + TheGamerdk: + - bugfix: Overwatch now works on Whiskey Outpost again, not that you will use it. + Zonespace27: + - balance: 3 smartgun drums now spawn in the SG's equipment crate. Smartgun drums + cannot be purchased from the SG vendor. +2024-01-17: + SabreML: + - bugfix: Fixed larvae sometimes spawning in space on Fiorina. + TheGamerdk: + - bugfix: The Kutjevo Refinery has been granted an additional SMES +2024-01-18: + Birdtalon: + - bugfix: Fixed buckled mobs unable to move after being thrown by a xeno. + Drathek: + - code_imp: Cleaned up some oversights in attachment Detatch logic + SabreML: + - rscadd: Added a 'balloon alert' when toggling Crest Defense as a Defender. + - code_imp: Made balloon alerts centre themselves on xeno sprites. + Vicacrov: + - bugfix: Fixes an issue where player-controlled facehuggers would ghost out when + smashing against anti-hugging headgear like the B18 helmet. +2024-01-19: + BadAtThisGame302: + - rscadd: Added the Wey-Yu lighter to the CLs briefcase instead of a normal one + BeagleGaming1: + - bugfix: Floor floodlights use correct sprites + Birdtalon: + - bugfix: Bedrolls no longer give metal when wrenched. + - code_imp: INTERRUPT_ALL define now includes resting. + DelineFortune: + - code_imp: Changed value of metal you are getting for recycling attachments via + autolathe. + Huffie56: + - rscdel: deleting machinery called centrifuge in distillery/main.dm and deleted + the distellery/main.dm file and folder. + - refactor: move all the machinery of distillery/main.dm into machinery.dm and remove + all their added functionality. + - rscdel: Remove all the manuals that were nothing to do with CM lore. (cloning, + particle_accelerator, singularity_safety, robotics_cyborgs) + - code_imp: Updated research manual. + - refactor: refactor to reduce the number variable using colour in them instead + of color. + - rscdel: deleting a var called "max_temperature" that created in Walls.dm and didn't + do anything code wise. + InsaneRed: + - bugfix: Fixes praetorian acid ball eating up plasma if its on cooldown + SabreML: + - qol: Made open TGUI windows transfer over when a xeno player evolves. + - rscadd: Made xeno tunnel lists sort by distance to the player. + TheGamerdk: + - rscadd: Groundside Operations console now shows ASL status + - bugfix: FTL is sorted correctly in Groundside Operations console + Vicacrov: + - bugfix: Special xeno structures no longer layer below the Alamo and Normandy's + equipment attach points. + blackdragonTOW: + - soundadd: added unique sound for minimap updates + - soundadd: added unique fax sound for fax announcements. + cuberound: + - bugfix: lowers volume of neurohalucination from 100 (no outher sounds are so laud) + to 65 (just about under queen screech level). + fira: + - rscdel: Removed AIs. + - rscdel: Removed Cyborgs. + - rscdel: Removed Maintenance Drones. + - rscdel: Removed Camera chunking for AIs, and all associated dynamic updates. + - rscdel: Removed Robotic equipment items. + - rscdel: Removed Robotic and AI transformation tools. + - rscdel: Removed Robotic Transformation Disease. + - rscdel: Removed Nanites. Roburgers are now all safe to eat. + - rscdel: Removed functionality from AI machinery and AI card. They're props now. + iloveloopers: + - balance: Being immune to bonebreaks now makes you immune to delimbs. + mullenpaul: + - refactor: upgraded root tgui files to typescript to closer align with tg + - refactor: upgraded typescript to 4.9.4 + - refactor: upgraded yarn to 3.3.1 + - refactor: upgraded a bunch of tgui tooling + realforest2001: + - bugfix: Mutated facehuggers are no longer invisible. + - bugfix: Fancy closet now works as desired and runtime free. + - rscadd: Added an area for the closet to use instead of APC interior. + - code_imp: Repathed /area/vehicle to /area/interior/vehicle. +2024-01-20: + Drathek: + - bugfix: The M56D and the M2C now retain their labels when disassembled + - bugfix: The M56D can now be charger crushed when not fully assembled + - bugfix: The M56D being run over by a vehicle now undeploys the gun correctly (so + it retains the gun if it had a gun) + - bugfix: Fix an edge case that could duplicate the M56D when charger crushed + - balance: The M56D now retains the health of the gun through all of its different + disassembled states + - bugfix: Fixed mobs merged with weeds remaining ignited + SabreML: + - bugfix: Fixed the 'busy' circle icon being drawn above darkness and screen effects. +2024-01-21: + ClairionCM: + - qol: made whistles less spammy + Huffie56: + - rscadd: 'Add some boards to the board vendor in engi on almayer(Air Alarm Electronics, + Security Camera Monitor, + + Station Alerts, Arcade, Atmospheric Monitor).' + Releasethesea: + - rscadd: adds prescription variants of the orange, black, and M1A1 goggles + SabreML: + - rscadd: Made larvae and facehuggers able to use custom emotes. + Vicacrov: + - bugfix: Fixes engine/weapon attach points layering below the dropship walls. +2024-01-22: + cuberound: + - balance: AP rocket applies 3 weaken and 3 paralyze no matter if you hit the mob + directly(from 2), at max range (from 2) or tile under it (from 4) + - balance: indirect AP rocket does the same damage to walls and mobs +2024-01-23: + realforest2001: + - rscadd: Added Whitelist Panel for whitelist senators to manage their own whitelists. + - refactor: Whitelist.txt is no longer functional, owing to the new system. + - rscdel: Removed "Alien Whitelist" checks regarding base SS13 races. +2024-01-24: + BeagleGaming1: + - balance: Repairing bones with bone glue costs a portion of the bone glue's resources + - balance: Repairing bones with a screwdriver costs metal + - rscdel: Removed bone glue from the medilathe + - spellcheck: New description for bone glue + Ben10083: + - maptweak: Workin Joey has returned to the Maintenance Bar + Birdtalon: + - rscadd: Xenomorph basic tutorial. + SabreML: + - bugfix: Fixed being gibbed with the Ctrl or Alt key held sometimes breaking movement + as an observer. + SpartanBobby: + - maptweak: A bunch of edits to big red and big red nightmares for the following + areas, Northcaves, Medical Morgue, maint between cargo and general store, LZ2, + North Libary, EVA, dorms bathroom + VileBeggar: + - balance: M39 burst scatter multiplier reduced from 7 to 4. + fira: + - bugfix: Fixed an exploit involving playing cards. + mullenpaul: + - refactor: switched from infernojs to react + private-tristan: + - rscadd: Added a new xeno tip about where to target. + - spellcheck: changed a few tips' wording. + - rscdel: Removed an outdated xeno tip about slashing NVGs + realforest2001: + - rscadd: Psychic Whisper now broadcasts to deadchat too. + - bugfix: Psychic Whisper can now be used while lying down. +2024-01-25: + Drathek: + - bugfix: Fixed more item exploits + - bugfix: Fixed lingering overlays in inventories for metal stacks and cards + Huffie56: + - refactor: creating it's own file for souto mobile code instead of it being in + vehicle.dm. + TheGamerdk: + - rscadd: A hive collapse (No new Queen) while at 3 xenos or below is now a marine + major, instead of a minor. +2024-01-26: + Huffie56: + - bugfix: corrected the name of an area from "Lower Deck Starboard Hull" to "Lower + Deck Starboard-Aft Hull". + - bugfix: added apc's to area that where missing one. + - maptweak: added some areas to almayers (constr site, Starboard-Bow Maintenance, + Bow Hull(port and starboard),cryo maintenance. + Johannes2262: + - rscadd: Added three more magazines to each of the MP's handgun cases + LTNTS: + - rscadd: bolted version of blood and medical vendors + - rscadd: pill bottle crate + - balance: cheaper medical crates from req + - balance: less items in med vendors, mainly pill bottles + cuberound: + - rscadd: added messages when the CAS sonic boom is played + - soundadd: reduced volume falloff of CAS sonic boom + - bugfix: allows custom flamethrower tanks to be filled directly from oxygentank + realforest2001: + - rscadd: Adds paygrade defines for PMCs, VAI, Mercenaries and TWE. + - code_imp: Adds code to populate reference lists for certain paygrades. + - bugfix: Fixes PMC synth not using the correct grade. + - rscadd: Syndicate ID card repathed and works with paygrades. + - spellcheck: The latejoin menu marine category title is now Marines instead of + Squad Riflemen, as this was an inaccuracy. +2024-01-27: + Contrabang: + - bugfix: Dchat is no longer notified of hugs from tutorials + SabreML: + - bugfix: Fixed the xeno 'queen locator' giving the wrong location when a tunnel + was selected. +2024-01-29: + BadAtThisGame302: + - rscadd: Added a Researcher on Trijent. + - rscadd: Added a CMB Deputy on Trijent. + - rscadd: Added a second RD uniform. + - code_imp: changed the Trijent Security Guard to not use a USCM MP Hat and trenchcoat. + - code_imp: changed a not used "synthetic service uniform" to it's before shamelessly + taken RD Variant. + Contrabang: + - spellcheck: Fixed a few uncommon typos across the entire codebase + Doubleumc: + - refactor: projectile paths are the same in both directions, A->B and B->A + Drathek: + - rscadd: The game will now change game mode to default and initiate a map vote + if a game mode fails to start twice and there are no admins online. + - bugfix: Fixed a runtime during game mode voting + - admin: Admins can now use the Start Round verb to bypass a gamemode's checks + SabreML: + - spellcheck: Made observers see the marine version of CAS warnings, rather than + the xeno one. + private-tristan: + - bugfix: Civilian survs will now spawn with snow gear on snow maps. + realforest2001: + - rscadd: Added biometric checks to command announcements. + - code_imp: Security camera autoname is now determined by a variable rather than + hardcode. +2024-01-30: + Huffie56: + - bugfix: fix upper deck having disposal pipes west of CIC going on a loop. + - bugfix: fix south of alpha briefing having disconnected pipes and disposal from + the main loops. + - bugfix: fix south shooting range having is disposal outside and disposal pipe + east going over vents. + - bugfix: fix pipes in req rest room going in the walls or windows. + - bugfix: fix pipes in control tower in hangar going bellow the windows instead + of the doors. + - refactor: added a few maintenance areas(mess, Port and starboard Midship) ,a few + other hull areas( lower and upper stair hull, Port and starboard stern and bow + hull) + - maptweak: corrected a colored tile west of CIC being the wrong sprite. + InsaneRed: + - balance: You now only need 1 burrowed larva to trade it for evolution as Queen + instead of 3 burrowed larva. + SabreML: + - bugfix: Fixed ponchos not having icon states on specific maps. + mullenpaul: + - code_imp: fixes sticky messages in STUI + - refactor: STUI is now a TSX component +2024-01-31: + Birdtalon: + - code_imp: Added procs for applying a root (immobilise) + Contrabang: + - bugfix: Chestbursting larva no longer get hive orders when there are no hive orders + CyberSpyXD: + - rscadd: Added a new backstory blurb for friendly UPP and some variance to the + backstory of UPP synthetics. + Drathek: + - balance: Increased double throw delay from .4s to 1.5s + Huffie56: + - refactor: turn some "# and use the proper define from colour.dm for 21 files. + LC4492: + - rscadd: Adds a variation of the chef's apron, "Medical's apron", to be used by + medical personnel, mainly nurses. + - bugfix: Fixed the code in the prep vendors to make things of different groups + not act like they are of the same group, like how you couldn't take a labcoat + and a snowcoat, only one of both, which does not make sense. + - code_imp: Update of the medical's vendor preps. Exclusion of most part of medical's + equipment when waking up from cryo. Addition of latejoin landmarks to the same + place where they usually wake up as firstjoiners. + - maptweak: Added the landmarks to the map and changed the CMO's vendor to an unused + space in his room to improve on item grabbing, because the items were being + covered by the bed's sheet, and making player's life to take things from it + more difficult. Also re-added a bedsheet in the medical's area that some old + PR somehow removed. + LTNTS: + - bugfix: removed the tiny square in the MP beret to stop it looking like a french + mime's beret + - refactor: reorganized cm_hats and cm_suits for easier spriter usage + - spellcheck: fixed area typo Marshall to Marshal + Oyu07: + - bugfix: Widens Dropship fabricator UI. Points for ammo are no longer cut off + - bugfix: character pref Green Beret is no longer invisible + SabreML: + - bugfix: Fixed facehuggers being able to flip tables. + - bugfix: Fixed a stray pixel in the warrior 'walking' sprite. + - bugfix: Made the Queen able to automatically climb ledges. + blackdragonTOW: + - soundadd: brought dropship_crash down from 0db to -6db + private-tristan: + - balance: Xenos do greatly increased damage to metal foam (0.8x to 1.75x) + - balance: Iron metal foam hp decreased from 85 to 75, meaning that all T3s other + than boiler can instantly break it. + - balance: Metal foam grenades now create iron foam. + - balance: Aluminum foam reactions are now cap'd at 300u + - balance: amount of metal foam grenades in req doubled. + - balance: Surplus explosive pack now contains 2 metal foam grenades + - rscdel: metal foam is no longer able to be created in chemistry diff --git a/html/changelogs/archive/2024-02.yml b/html/changelogs/archive/2024-02.yml new file mode 100644 index 000000000000..f344da79decb --- /dev/null +++ b/html/changelogs/archive/2024-02.yml @@ -0,0 +1,477 @@ +2024-02-01: + BadAtThisGame302: + - bugfix: fixed the CMB Trijent Survivor + BadAtThisGame302, AmoryBlaine: + - rscadd: Added new brown laceups, adds new ties and tweaks current ones, as well + as new suit, bomber, vest, and corporate clothes to the game. Sprites by AmoryBlaine. + - imageadd: added six new Corporate clothes sprites (Casual/Ivy/Formal/Black/Brown/Blue), + three suit vest sprites (Brown/Tan/Grey), three bomber jacket sprites (Khaki/Red/Grey), + and five suit jacket sprites (Khaki/Formal/Black/Brown/Blue). + Huffie56: + - rscdel: Removed "security robot module" from robot_module.dm + - refactor: change the name of Ripley in game to P-1000, gygax to MAX, Durand to + MOX, Odysseus to Alice to be more in line with the lore. +2024-02-02: + BadAtThisGame302: + - rscadd: Replaced the Political Survivor surv name with State Contractor + - rscadd: Added a USCMC Recruiter to the Solaris surv pool. + - rscadd: Added a USCM Survivor template anycase anyone wants to add USCM Survivors + to other maps. + - bugfix: Every other surv has no 'Ridge' next to Solaris in their assignments, + only the CL. Fixes this. + - spellcheck: Embellished the Solaris Ridge announce text, to make it so the Company + and more fluff about it's actual role like the wiki states. + Diegoflores31: + - rscadd: Disabler bolts now deal a little oxygen damage on each hit. + - rscadd: Replaces Skill lock system on stunbatons with a high chance of hiting + yourself + - qol: adds jittery and sway to Stunbaton and Disabler beams + Drathek: + - balance: Compared to originally, corpsmen now have access to medbay vendors, and + chemistry only requires chemistry access. + - bugfix: 'Fixed unintended change to medbay vendors access:' + Huffie56: + - maptweak: added warning stripe bellow doors that didn't have them. + - maptweak: Removed a bed sheet in medical to restore the lore of the unknown alpha + that stole it. + - maptweak: Reconnect the CIC armory to one of the brig door armory allowing them + to open it at a distance. + InsaneRed: + - balance: Oppressor tailstab no longer ignores armor, and it now roots instead + of stunning. + NervanCatos: + - qol: added M3-L Pattern Light Armor to IO Prep + SabreML: + - bugfix: Fixed lesser drones not being able to flip tables. + VileBeggar: + - rscadd: Added the XM51 breaching scattergun, available in small quantities as + a restricted weapon within Requisitions. + blackdragonTOW: + - imageadd: altered the turret flag to the UA flag, from generic orange + - bugfix: Flag turrets now correct reference the destroyed state + harryob: + - bugfix: medals should save more reliably + hislittlecuzingames: + - balance: Nightmare inserts of crashed ships on Solaris (big red) and Desert dam + can do surgury in them INSTANCE EDIT + mullenpaul: + - refactor: camera consoles now use camera manager component + private-tristan: + - balance: Burrower can no longer spawn as part of the feral xeno ERT +2024-02-03: + Drathek: + - ui: Refactored backend for Weapon Stats panel to use spritesheets instead. +2024-02-04: + BadAtThisGame302: + - bugfix: fixed the CL jackets/vests/bomber jackets sprites. + Drathek: + - imageadd: Changed green fire sprites to work better with lights + - balance: Reduced how many fire stacks a flaregun shot provides + - balance: Reduced starshell's damage, but fixed the application of the incend bullet + trait. + - balance: Reverted damage changes to tazers and batons. + Huffie56: + - bugfix: 'revert PR #5553 as it is causing issues with color on atmo pipe.' + LTNTS: + - imageadd: stamp sprites for TWE, UPP and CLF + - code_imp: added TWE, UPP and CLF channels + MistChristmas: + - maptweak: Add Brig Photocopier + Segrain: + - bugfix: Some cases of calculations for "time remaining until something" no longer + display incorrect results. + Stakeyng: + - qol: Removes the need to cycle through helmet visors that contain HUD effects + that are already active on your character. + cuberound: + - balance: increases flare pouch storage slots from 8 to 16 +2024-02-05: + Drathek: + - bugfix: Added more null testing to helmet visors. + Poltava: + - imageadd: updated intel expedition chestrig sprite + SpartanBobby: + - maptweak: Fixes the two gauss sentry guns that were boxxed in by a mapper over + a year ago on ice 3 + Warfan1815: + - bugfix: Open surgical incisions now show up on a health scanner even if there + is nothing else wrong. + - bugfix: Open surgical incisions in the head "zones" (mouth and eyes) now show + up independently on health scanner + cuberound: + - balance: increases healing node heal from 10hp every 5 sec to 20 hp every 5 sec +2024-02-06: + InsaneRed: + - rscadd: Warden Praetorians can now see how much healing they've done. + - qol: Re-organizes the warden ''hotbar'' + - bugfix: SO's M3 armor now has the proper description. + Vicacrov: + - bugfix: Fixes Defenders staying Fortified in critical state - Fortify now automatically + toggles itself off upon the Defender getting critted. +2024-02-07: + InsaneRed: + - balance: Scout specialist incin/high impact mag crates now only has 3 instead + of 5 + Steelpoint: + - rscadd: USCM Chestrig has been added to squad prep vendors, alternative sprite + of a satchel, similar in appearance to the welder-chestrig. +2024-02-08: + Megaddd: + - imageadd: added 4 bone-gel fill level sprite states + SpartanBobby: + - maptweak: changes to LV624 Engineering and T-comms, mostly detailing but changes + some doors and object placement +2024-02-09: + Huffie56: + - refactor: turning newscasters into "props". + - qol: added two new section to replace ammunition section primary ammunition and + sidearm ammunition and rearranged it for team leader. + - balance: added the ability for comtech, medic, and squad leader to buy M4A3 (HP + and AP) and VP78 magazines for 3 points and M44 Heavy for 6 points. + - balance: added the ability for SG to buy M4A3 (HP and AP) and VP78 magazines for + 5 points and M44 Heavy for 10 points. + - balance: added the ability for rifleman to buy M4A3 (HP and AP) and VP78 magazines + for 5 points. +2024-02-10: + Drathek: + - bugfix: Fixed an oversight with burst point blank firing + SabreML: + - bugfix: Fixed trash carts not being pick-uppable by the dropship's fulton recovery + system. + blackdragonTOW: + - admin: added logging for 3rd party victory events + private-tristan: + - rscadd: Pizza ERT is back, although incredibly unlikely to occur + - bugfix: UPP ERT no longer rolls 3 times (1 for random, 1 for friendly, and 1 for + hostile), due to this, UPP comms will always be scrambled at the beginning, + no way to tell intentions before meeting. + - rscadd: Chem Goon Research Consultant now spawns with reagent scanner goggles. +2024-02-11: + Drathek: + - bugfix: Fix gardener fruit count not always updating + Vicacrov: + - bugfix: Fixed Warden Praetorians being able to move around the ovipositored Queen + with their Retrieve ability. +2024-02-12: + Stakeyng: + - qol: Lets you put an extra accessory item in your helmet. + harryob: + - server: tor banning functionality is removed +2024-02-13: + Huffie56: + - refactor: refactored watercloset.dm file. + SabreML: + - ui: Made the Tutorial Menu automatically close when a tutorial is started. + - code_imp: Made the tutorial Xenomorph not inherit the user's 'age' prefix. + - code_imp: Added a basic unit test for tutorials. +2024-02-14: + SabreML: + - bugfix: Fixed crates and similar objects layering below the dropship's fulton + recovery system. + Zonespace Drathek: + - balance: Lesser drones and Facehuggers cannot speak, custom emote, or point for + 3 minutes after spawning +2024-02-15: + InsaneRed: + - balance: Drop pouch now scales the same as normal webbing + SabreML: + - bugfix: Fixed some changelog icons being smaller than others. + Vicacrov: + - maptweak: LV-624 tfort's floodlights are now colony floodlights. + VileBeggar: + - qol: Attaching the bipod to weapons that have full auto (HPR included) will give + you a button toggle for immediately switching to full auto when deploying the + bipod. +2024-02-16: + BadAtThisGame302: + - rscadd: Added two new beacons for the CL, Lawyer and Bodyguard. + - rscadd: Added an Executive Specialist and Executive Supervisor Lawyer preset. + - rscadd: Added a cyanide pill in the CLs briefcase for an easy way out. + - rscadd: Added a Wey-Yu Coffee Mug in the CLs briefcase as a souvenir sale. + Drathek: + - bugfix: Fixed xeno tutorial allowing evolution/de-evolution + - bugfix: Fixed some runtimes with tutorials + SabreML: + - bugfix: Fixed the 'Clear' button not resetting the number of keybind assignment + slots. (Keybinds menu) + - refactor: Refactored xeno strains. + - rscadd: Added a keybind setting to open the 'Purchase Strain' window. (Also renamed + the macro) + cuberound: + - balance: m4ra ammo looses about 1/5 of initial effect duration per 10 tiles traveled + harryob: + - admin: permanent and sticky bans are now handled in game, instead of being managed + externally +2024-02-17: + MobiusWon: + - rscadd: Adds integral Motion Detector to XM4 IO Armor + - balance: Uniform utility accessories (I.E. Webbing) no longer can be equipped + while the XM4 is worn. Armor slots increased to 5 to compensate. + Steelpoint: + - balance: Royal Marine Commando's firearms now have a higher rate of fire, comparable + to the M41A. + mullenpaul: + - code_imp: rework logic of restrictedinput component to reduce checks +2024-02-19: + Blundir: + - imageadd: updated many old/legacy sprites + Diegoflores31: + - balance: Tail Jab will now target enemies on the same tile it was targeted. + - balance: Aiming Tail Jab directly on a target will do an additional 15 damage +2024-02-20: + BeagleGaming1: + - balance: Xenos can slash reactors + - balance: Reactors that are damaged will still run until reaching weld damage or + being manually de-activated + - balance: Reactors that are damaged will lose fuel (when applicable) and fail more + often when fuel runs out, new cells need to be used to reset the fail rate + - balance: Reactors can be damaged by bullets or explosions + - code_imp: Updated Power all ship reactors admin button code + - imageadd: Updated reactor sprites + - maptweak: Minor changes to reactors and surrounding areas + Drathek: + - code_imp: Autowiki now skips guns and mags without icon_states + - code_imp: Unit testing for spritesheets now enforces css requirements for class + names + - imageadd: Gun stats lineart now uses the no_name sprite again for guns without + lineart + - rscdel: Removed death messages for lesser drones and facehuggers that are still + temporarily muted + Huffie56: + - balance: add the ability for SG to buy an VP78 or an SU-6 each for 15 points. + SabreML: + - ui: Added tooltips to entry icons in the changelog. + - code_imp: Added a unit test for xeno strains. + Vicacrov: + - bugfix: Fixes a missing examine text when you hit an exactly half-full ammo magazine + against your helmet. + Zonespace27: + - bugfix: You can no longer remove vehicle parts from a vehicle at a distance +2024-02-21: + Contrabang: + - rscadd: Falling out of a Dropship en route to an LZ, now lets your corpse plummet + to the ground instead of being deleted. + Drathek: + - maptweak: Fixed access for two doors on the Almayer + - balance: Corrected vampire lurker damage values (Effectively reduction by 5 damage + for most attacks) + Stakeyng: + - rscadd: mou is now compatible with the shotgun scabbard + VileBeggar: + - rscadd: The Vulture can now be loaded with holo-targetting rounds which have severely + hampered ballistic performance, but mark any target that is hit, increasing + their damage taken by 33% for a brief period of time. + hislittlecuzingames: + - maptweak: tweaked Trijent Dam to add a new choke point. + private-tristan: + - rscdel: VAIMS (vaipo med spec) no longer gets a redundant burn line + - balance: VAIMS now gets an extra MAR mag. + - bugfix: Forsaken and Feral xenos can now (correctly) use hive-status + - spellcheck: fixed a case where we/our wouldn't be used when attempting to access + hive status with no queen +2024-02-22: + BadAtThisGame302: + - rscadd: Implemented a probability of playing a static-filled transmission as the + distress received response. + Drathek: + - bugfix: Fixed automatic CMB ERT caused by black market heat + - code_imp: get_specific_call now only accepts a path or a string of a path + - ui: Fix broken admin Medals Panel + - spellcheck: Reworded message when a facehugger's temporary mute ends to not mention + hivemind + Huffie56: + - refactor: refactored files with the aim of making fixing barricade with a welder + more constant. + - bugfix: being unable to repair more than one metal barricade at the time. + Kaga: + - bugfix: Fixed a bug that broke ID-Lockable items in presets. Rejoice, PMC Snipers, + pre-equipped USCM Specs, UPP Commandos, and WY Deathsquads. + LaylaMcC: + - rscadd: Increased levels of acidic blood and carpotoxin in xenomeat and carp fillets. + - rscdel: Xenomeat and carp fillet-based recipes no longer add additional acidic + blood or carpotoxin. + - qol: Master level domestic skill allows the use of the food processor to remove + acidic blood and carpotoxin from xenomeat and carp fillets. + - bugfix: Turning named pieces of human meat into meatballs will retain the human's + name. + SabreML: + - rscadd: Added 'observe' functionality to Xenomorphs, allowing observers to view + the target's UI. + - rscadd: Made observing a player also show their action buttons. + - refactor: Refactored the 'gun action' buttons, making them show their names in + the status bar when hovered over. + TheGamerdk: + - rscadd: CIC can now view helmet cameras of Command Staff. Literally 1984 + iloveloopers: + - qol: Autolathes are now significantly faster. +2024-02-23: + AtticusRezzer: + - bugfix: Fixed the incorrect area flag in lifeboats allowing tunneling + Drathek: + - balance: Increased same tile weed expansion delay for queen from 7s to 10s + Huffie56: + - maptweak: split each Hallway area port and starboard into three areas.(fore midship + aft) + - maptweak: change the area around north and south west staircase to remove emergency + shutters. + - maptweak: change the area west of squad preparation room to remove emergency shutter. + - maptweak: change the area west of lower engi to make emergency shutter be at the + frontier of the area. + InsaneRed: + - rscadd: Added a new ability to the predalien "Feral Rush" that increases it's + armor and speed for a short duration. + - rscadd: Added two new abilities to the predalien "Feral Frenzy" and a toggle. + The predalien can now switch between a single target GUT and an AOE one, both + of which has damage that scale with your kills. + - rscdel: Removed the predaliens gib ability + - rscdel: Removed the predaliens "pounce" ability + - rscdel: Removed the predaliens "Ground Smash" ability + - balance: Predalien no longer has plasma costs, or plasma. + - balance: The Plasma Rifle, which is ONLY used to hunt abominations now has a higher + ROF and has incin bullets. + - spellcheck: Re-wrote the predalien text to be more up to date and remove missinformation + - qol: Everyone can see how many kills the predalien has by examining it. + - rscadd: Added a "Feral Smash" ability that lets you grab somebody and smash them + to the ground, this scales with kills and is a devastating attack. + - balance: Removed screenshake from predalien's screech + - balance: Predalien removes fire stacks faster. + - bugfix: Girders are now slashable by very_sharp_claws instead of just having a + queen chack + SabreML: + - bugfix: Fixed the search function of TGUI input lists. + - qol: Made the TGUI input list search bar automatically focus when toggled. + - bugfix: Fixed Xenomorphs not having their caste's tackle duration values applied + to them. + fira: + - code_imp: Updated mapping backend from /tg/ upstream. + iloveloopers: + - qol: Reagent tanks can now be dragged faster. +2024-02-24: + BadAtThisGame302: + - rscadd: Added a CL and Goon nightmare insert spawn. + - mapadd: added a new nightmare insert on LV which revamps the Corporate Dome into + a holdout. + SabreML: + - bugfix: Fixed the 88 Mod 4 pistol's holster sprite. + Segrain: + - admin: Check Ckey verb is now available on player panel. + - bugfix: Fully healed limbs should now properly remove the overlays for their wounds + and bandages. + TopHatPenguin: + - rscdel: Removes part of MOPP suit desc. + Warfan1815: + - rscadd: Added WeyYu Trading Cards (they come in packs of 5, single, or in special + packs of WeyYu Gold) buyable at rec vendor (and/or colony tobacco vendors in + the case of the special cigarette packs) + - imageadd: Added sprites of the WeyYu Trading Cards, trading card packs, and special + WeyYu Gold cigarette packs. +2024-02-25: + Drathek: + - ui: Added the relay ping browser accessed by the tgchat ping to test and use alternative + connections to the server + - ui: Added onConfirmChange prop to Button.Confirm component. + - config: Added CONNECTION_RELAY_PING and CONNECTION_RELAY_CON in the relays.txt + config that is optionally included in config.txt + - rscadd: Welding a barricade will now repeat automatically if it can still be repaired. + - balance: 'Reverted multi-welding change to barricades: All barricades must be + welded one at a time.' + - refactor: Refactored more barricade code. + Huffie56: + - refactor: refactor marine_armor.dm and split it into multiples files. + SabreML: + - bugfix: Fixed 'hidden' action buttons being shown to observing players. + - qol: Made any observers transfer over when a Xenomorph evolves/de-evolves. + SpartanBobby: + - maptweak: Edits to secure storage LV624s detailing + - maptweak: Make a few unabreakable walls on kutjevo breakable, touches the east + botony caves flanks ands removes some ledges from combat routes + - maptweak: Edits to southwest dorms LV522 + - maptweak: Redetails bigred Libary +2024-02-26: + Mister-moon1: + - balance: Reverted flare range buff 7->5 tiles + SpartanBobby: + - maptweak: Edits to southyard sci-annex + harryob: + - admin: marking a ticket now actually stops other people from messing with your + marked ticket + realforest2001: + - admin: Mods can now run votes where appropriate. + - admin: Moved a few event verbs from Admin level to Senior Mod. + - admin: Added a log to creating new bank accounts. +2024-02-27: + BadAtThisGame302: + - mapadd: added a new nightmare insert in the Operations Panic Room on Shivas + - rscadd: Added trucker hats to the Solaris and Trijent Trucker survs. + - rscadd: Added the CMB Marshal jacket to the CMB Marshal. + - imageadd: Differentiated the CMB Deputy and CMB Marshal jackets to accurately + know which is which. Courtesy of AmoryBlaine. + - imageadd: Added new insulated gloves, coveralls (Tan/Red), updated the blue coveralls, + Five Colonist Clothes (Grey/Khaki/Pink/Blue/Green), updated the Orange/Blue/Black + hazard vests and updated the CMB Uniform and Cap. Courtesy of AmoryBlaine. + Drathek: + - bugfix: Fixed a runtime when swapping tools during cade welding + Huffie56: + - rscadd: adding vendor for maintenance technician. + - code_imp: remove some item that maintenance technician spawned with and put them + in is vendor instead. + - maptweak: replaced secured closet by vendor for maintenance technician. + - balance: set base price for B12 to 30 and for the M4 to 20. + - balance: Medic comtech and SL have a discount of 20% for the B12 and M4. (B12=24 + & M4=16=) + - balance: removed the free M4 for FTL but added FTL the option to buy it for 20. + - balance: changed the price of Drop Pouch from 15 to 10. + InsaneRed: + - balance: Oppressor tailhook is now 8 deciseconds instead of 7. + Megaddd: + - balance: health analyzer no longer shows large custom research chem property text + rows. + SabreML: + - qol: Added a failure message when trying to remove a built-in helmet visor. + paulrpg,kugamo: + - imageadd: shuttle rotation sprites added + - maptweak: escape pods now use new floors +2024-02-28: + Birdtalon: + - bugfix: Admin verbs - Hide will now hide Control Mob verb + Drathek: + - bugfix: Fixed the Mass Screenshot Debug verb bounds + LTNTS: + - rscadd: 'brig areas: warden office, MP bunks, starboard hallway, interrogation + room, evidence storage' + - spellcheck: changes brig surgery to brig medical + - code_imp: removed some brig areas from hijack, added other brig areas + SabreML: + - bugfix: Fixed acid pillars shooting nested marines. + Segrain: + - bugfix: FORECON and RMC now can add their frequences to groundside radiotowers. + - bugfix: Fisticuffs attacks are no longer attributed to wrong mob. + - admin: TWE mobs are now properly counted on Who screen. + - spellcheck: Changed names of "resin node" and "resin hole" to "weed node" and + "resin trap" respectfully. + - bugfix: CLF survivors no longer incorrectly get told that they are not hostile + to marines. + Warfan1815: + - spellcheck: Fixed the order of trading cards (as they were accidentally inverted) + Zonespace27: + - bugfix: M707 spotting scope should no longer teleport its user. + - bugfix: M707's attachments should now correctly reflect the map's camouflage. + ihatethisengine: + - balance: Pried open dropship hatches cannot be remotely locked anymore + mullenpaul: + - bugfix: ammo consumption logic for cas tgui correctly counts +2024-02-29: + MobiusWon: + - balance: Readds M4 armor to FTL vendor as a default item + Nanu: + - balance: Removed the ability for Combat Synths in the UPP/CLF ERT to use guns, + as well as the CLF Survivor Synth. + - rscadd: Did a few minor tweaks to help fill in some of the space given by the + removal of guns/ammo from the Combat Synths loadout. + Segrain: + - bugfix: Removed an exploit involving crates. + cuberound: + - balance: omnisentrygun price down to 300, but it goes up 100 points after each + purchase + mullenpaul: + - code_imp: removed duplicated signal code from dropship equipment diff --git a/html/changelogs/archive/2024-03.yml b/html/changelogs/archive/2024-03.yml new file mode 100644 index 000000000000..1ad71612a6fb --- /dev/null +++ b/html/changelogs/archive/2024-03.yml @@ -0,0 +1,337 @@ +2024-03-01: + BadAtThisGame302: + - rscadd: Added a new uniform to the Flight Control Operator. + - rscadd: Added a new faction IFF grouping for WY Survs. + - rscadd: Added the ICC and the CL survs to the WY IFF System. + - rscadd: Added the USCM CL to the WY IFF System. + Drathek BadAtThisGame: + - maptweak: Fixed various nightmare inserts that were not spawning; removing or + disabling others that were not in use. + - maptweak: Updated containerroom_xenos insert for Solaris Ridge to include coms + tower (BadAtThisGame) + - code_imp: Nightmare errors are now a runtime. + Huffie56: + - refactor: refactored stage three of black goo and added stage four. + Lok1: + - rscadd: maintenance stations stun when exiting like closets + Vicacrov: + - rscadd: 'You can now order the following in Requisitions: M2C ammo, M56D ammo, + UA 45-F mini sentry ammo, UA 60-FP sentry ammo.' +2024-03-02: + GrrrKitten: + - rscadd: New Deployable Fax Backpack for the Civilian Combat Correspondent + - rscadd: New Wieldable Broadcasting Camera for the Civilian Combat Correspondent + - rscadd: Cameras can no longer be turned off but have to be wielded to take photos + - rscadd: Add's new Combat Correspondent vendor with CC's basic outfits and standard + gear + - bugfix: Fixes numerous camera/photo bugs + - imageadd: Adds new itemstates for the polaroid camera + TheGamerdk: + - refactor: Overwatch console will now save your filter settings + Vicacrov: + - bugfix: Hugger and acid traps no longer activate when they get shuttlecrushed. + Warfan1815: + - bugfix: Fixes the pulling of trading cards out of a pack message being visible + to other people + iloveloopers: + - bugfix: custom flamer chemicals now work on the flamer nozzle +2024-03-03: + Drathek: + - bugfix: Fixed skills not getting set for UPP and CLF synths + - spellcheck: Fixed naming of colony synth gen 1 and gen 2 being swapped + TheGamerdk: + - bugfix: Fixes the lifeboat black turfs of Doom + Vicacrov: + - qol: The Transfer Plasma ability now has a blue, healing overlay and causes a + second-long jitter upon success, to show the recipient that they are being targeted. + - rscadd: Larvae now do the attack animation when nudging. + harryob: + - admin: opening a new ticket via pming now automatically marks the ticket +2024-03-04: + Foxtrot: + - rscadd: Added a CLF Team Leader spawn to the nightmare insert on LV-624 + - spellcheck: Updated the CLF & PMC ship nightmare insert intro text + SabreML: + - rscadd: Made the vehicle bay elevator look and sound better when in use. + - bugfix: Fixed the vehicle bay elevator's front railings not closing when the elevator + was lowered. + - bugfix: Fixed the vehicle bay elevator's docking port falling down the elevator + shaft when it was lowered. + - bugfix: Fixed falling into the vehicle bay elevator shaft teleporting players + to the requisitions elevator. + TheGamerdk: + - rscadd: New View Given Medals button to see what medals you've given to others + - bugfix: Sensor tower no longer ignores half the hive + private-tristan: + - qol: Added balloon alerts to smartgunners + realforest2001: + - code_imp: Plastic Explosives and subtypes now have variable controlled skill checks + rather than hard-code. + - bugfix: MPs can now use Riot Breaching Charges as intended. +2024-03-05: + Segrain: + - admin: Marking tickets properly recognises your ckey. + ZephyrTFA, harryob: + - rscadd: framework for new ert stations ported from tgstation/tgstation#71785, + by ZephyrTFA + - rscadd: distress beacons now start in transit to the ship, and will return to + their own home base. they can't keep going back and forth between the ship and + their base + realforest2001: + - imageadd: Added AI Core themed walls, windows and floors from Zenith. + - imageadd: Added AI Core themed blast doors from Zenith. + - imageadd: Added a few additional AI Core themed floors from myself. + - maptweak: Remapped the AI core to use the new walls/floors. + - rscadd: Added a subtype of AI Core floor that glows orange for thematic lighting. +2024-03-06: + Drathek: + - bugfix: Fixed crashed/hijack dropship not staying in the crashed mode. + Vicacrov: + - rscadd: Added a professor dummy cabinet to the CMO office, containing Professor + DUMMY and its control tablet. It is a tool to teach new medical personnel with. + The cabinet is accessible by the CMO and the SEA only. + harryob: + - admin: byond account age and first time connected to server can now be seen in + the player panel + nauticall: + - mapadd: Revamped the Chinook event map. +2024-03-08: + BadAtThisGame302: + - mapadd: added a new Fiorina nightmare insert with CMB and UA Officers responding + to the distress signal. + Drathek: + - bugfix: Fixes some issues with SMES and reactors connecting to the powernet + Vicacrov: + - spellcheck: Fixed some grammar issues when attacking spiderwebs and when producing + eggs as an eggsac carrier. + realforest2001: + - admin: Adds a remote admin ARES Interface so staff can see the interface remotely. + - admin: Staff can now approve and revoke ARES Access tickets via remote interface + if there are no Working Joes. + sleepynecrons: + - imageadd: changed warrior tail to old one + - imageadd: edited weed overlays to reflect altered tail shape + - imageadd: fixed holes in a couple warrior sprites +2024-03-09: + Drathek: + - bugfix: Fix pod doors no longer updating adjacent tiles + iloveloopers: + - balance: ravager empower range is now 4 tiles +2024-03-11: + Segrain: + - admin: Actually fixed the last case of being warned against interacting with ticket + already marked by you. +2024-03-12: + Drathek: + - bugfix: Fix chestrig not displaying on maps with different skins (e.g. Shivas) + Katskan: + - balance: Medical Skill 4 reduced speed buff from -75% duration to -50% duration + - balance: Medical Skill 3 increased speed buff from -0% duration to -25% duration + Segrain: + - rscadd: Requisitions' vendor now has medical radio keys in stock. + - rscadd: CE and CMO can now get spare departmental headsets from their vendors + to recruit survivors without having to go to Requisitions. + - bugfix: Wiping frequencies off radiotowers no longer breaks them forever. + Stakeyng: + - balance: Drop pouch has more space (2 large (unchanged), 4 medium, 8 small) + ihatethisengine2: + - bugfix: Dropship door prying can now always be performed by queen even if open + or not locked + realforest2001: + - soundadd: Added pda_ping.ogg, sourced from Paradise SS13 mailapproved.ogg + - rscadd: Added notification sounds from certain APOLLO ticket interactions. + - rscadd: People making an access ticket request are now notified of the status + changes. +2024-03-13: + Segrain: + - bugfix: Picking up clothes/armour with somebody else's medal attached no longer + makes the medal fall off (trying to wear them still does). + - bugfix: Doctors calling themselves surgeons now properly get playtime medals. + - bugfix: Playtime medals now use assignments instead of backend paygrade codes + (e.g. "Awarded to Squad Leader John Doe" instead of "Awarded to ME5 John Doe"). +2024-03-14: + Vicacrov: + - rscadd: Added an option to hear or silence announcement audio cues (queen screech, + CIC beep, etc.) while being an observer. + nauticall: + - imageadd: Resprites first aid kits, coffins, material stacks, mortar shells, and + chemistry items. Chemistry sprites ported from Baystation / Aurora. + - bugfix: Recolors several reagent sprites to be more in-line with their established + colors, such as on autoinjectors. + - bugfix: Fixed invisible cloth tables. + - bugfix: Fixed wrong shading on the large floodlight. +2024-03-15: + Drathek: + - balance: The light replacer can now be used to skip the crowbar, welding, and + wire steps when repairing colony lights. + - bugfix: Fixes SMES and APC interfaces not checking adjacency or incapacitated + states + - spellcheck: Fixed examine text for colony lights (improper names and not powered + text) + Huffie56: + - balance: adding M44 Marksman Speed Loader and SU-6 Smartpistol Magazine in vendor + of (medic,comtech, SL) at a cost of 6 each. + - balance: adding M44 Marksman Speed Loader and SU-6 Smartpistol Magazine in vendor + of (rifleman, TL, IO) at a cost of 10 each. + - balance: adding VP78 case and SU-6 case in vendor of IO at a cost of 15 each. + - balance: adding M44 Marksman Speed Loader and SU-6 Smartpistol Magazine in SG + vendor for 10 point each. + - balance: adding the ability for to buy smartgun DV9 battery for 15 points in SG + vendor. + Segrain: + - qol: Middleclicking beds/chairs/etc is now a shortcut for buckling to them. +2024-03-16: + nauticall: + - bugfix: Makes pill bottle caps appear on closed pill bottles again. +2024-03-17: + Huffie56: + - refactor: refactored areas replaced stern hallway by aft added two new hallway + area(fore, midship) + - refactor: refactored areas replaced midship maintenance by for and added two new + maintenance areas(fore, aft) with each starboard and port side. + - maptweak: removed all the emergency shutter that weren't at the borders of each + areas. + - maptweak: added back the bear belt in a closet in a dormitory. + - maptweak: reconnect some air pipe in an hallway north upper engi. + Segrain: + - bugfix: Ghosts no longer miss announcements seemingly at random. + SpartanBobby: + - maptweak: Removes some ledges on LV522 + - maptweak: Removes unintended hullwalls on LV522 + realforest2001: + - rscadd: Updated the Insanity law description. +2024-03-18: + Katskan: + - balance: changed medical 4 skill speed multiplier from tier 2 to a non-standard + 0.35 + - balance: changed defib medical skill speed scaling + Nanu308: + - mapadd: Added the Galaxy Pizza Space Diner ERT station, for all your outer expanse + food needs! + - maptweak: Placed APC's on ert stations and minor tweaks+fixes. + Segrain: + - bugfix: Professor Dummy in CMO's office now works properly. +2024-03-19: + 567Turtle: + - rscadd: PO has been split into two roles, the gunship pilot and the dropship pilot, + no more arguing over who gets CAS. + Drathek: + - bugfix: Overdose death messages will now mention last mob that contributed to + the OD + - admin: Many additions to attack, say, interact, and niche logging + - admin: Temporary muted messages/actions are now niche logged instead of say logged + - ui: Added niche log filtering to TGChat (still requires admin niche logs preference) + SabreML: + - admin: Made the 'Join as Xeno' button disable the user's larva protection when + clicked by a moderator. + TheGamerdk: + - bugfix: Synths can now have their heads reattached without being sent to limbo-crit-hell. + TotalEpicness5: + - bugfix: Stamina damage can now be ahealed. + Waseemq1235: + - rscdel: Removes HEAP from all UPP vendor gear presets +2024-03-20: + Huffie56: + - maptweak: Fix ugliness at 5 different areas. + - maptweak: added access restriction for doors that lack them(OT workshop, engi + dormitory, Upper engi back storage door.) + Katskan: + - rscadd: Added some new uniforms and hats + - rscadd: Added blood packs to vendor for 5 points, equal to a pill bottle + - rscadd: Added tactical prybar to vendor for 5 points + - rscadd: Added some surgical tools, very expensive costs essentially your entire + point budget to buy + realforest2001: + - rscadd: Changed all marine presets to use Dress Blues as their dress equipment. + - rscdel: Excluding Whiskey Outpost, removed all previous dress equipment from vendors. +2024-03-21: + BadAtThisGame302: + - rscadd: Heavily Updated Corpse Code. + Birdtalon: + - admin: Xeno eggs now take fingerprints. + Huffie56: + - qol: 'add some balloons for CPR : one is for when it''s a success and the other + is when it''s a failure.' + - refactor: refactored poddoor file and shutters file. + Steelpoint: + - maptweak: Adds several cardboard box spawns in to squad prep rooms. +2024-03-23: + Drathek: + - ui: Tweaked layout for role preferences windows + Vicacrov: + - rscadd: Tacmap announcements are now also muted if you have hear/silence ghost + announcements toggled on. +2024-03-24: + DN9123: + - rscadd: Added a couple of fortunes in strings/fortunes.txt + - spellcheck: fixed a grammar error I found in strings/fortunes.txt + Segrain: + - admin: Spawning nondeathsquad MARSOC now properly recognises "current location" + option. + ihatethisengine: + - bugfix: Fixed delayed launch launching lifeboat even if locked by queen +2024-03-25: + Birdtalon, Kat 'APC' Smith, Thwomp, Waseemq1235: + - rscadd: Desk bell for cargo, medbay, brig, and AI reception. + - soundadd: Desk bell sound effect. +2024-03-26: + Huffie56: + - bugfix: move semiotic in north evac pod so you can't see it when your behind in + hull maintenance. + InsaneRed: + - balance: Wardens can heal eachother once again, but only half the health + - qol: Gives SPAN_XENOHIGHDANGER to heal/reju on positives, since its very easy + to miss if you actually healed soembody. + MobiusWon: + - rscadd: Uniforms vend with USCM patch. + SabreML: + - refactor: Refactored the bodypart selection keybinds. + - bugfix: Fixed a bug where selecting a new body zone would sometimes modify the + wrong HUD element. + vero5123: + - bugfix: fixes users not being able to resist out of the stasis bags + - bugfix: Fixes zombies missing claws on transformation +2024-03-27: + Ben10083: + - rscadd: Working Joes can now respawn as a Working Joe after 15 minutes, previous + restriction on respawn removed. + - admin: New flag to disable Working Joe respawns + - rscadd: Hazard Joes now have their own emotes + - code_imp: Hazard Joes now a seperate species + - code_imp: Updated isworkingjoe and new ishazardjoe define + - refactor: Working Joe emotes and emote categories now a globally defined list + - soundadd: New Hazard Joe voicelines + Katskan: + - balance: Autocompressor gives 7 seconds of grace time every 7.5 seconds, instead + of 7 seconds every 10 seconds. Approximately 93% efficient, increased from 70% + efficient. + QuickLode: + - rscadd: adds a purple armband and uniform to Synth Vendor + - rscadd: adds a renamed uniform commonly used by colonists with a better name + Vicacrov: + - rscadd: Added holocards to health scans to improve communication between medical + players. You can now assign holocards via the health analyzer and the body scanner + as well. The health scan also tells you what the current holocard's colour means. + - rscadd: Added a new purple holocard to tag infected marines. + - rscdel: Clicking yourself no longer removes your own holocard. +2024-03-29: + SpartanBobby: + - maptweak: Changes to hullwall placment on Kutjevo this PR should allow you to + break open much more of the colony buildings aswell as get into new areas to + flank and play around + blackdragonTOW: + - code_imp: Added a third level of zoom to the Toggle Zoom verb + vero5123: + - bugfix: Fixes teleporting when placing mobs onto chairs and beds. +2024-03-30: + cuberound: + - qol: old cosmetic NVG can not be broken + iloveloopers: + - balance: You can now use the mortar while shipside during hijack, but only once. + - rscadd: Ghosts now get a warning when a custom mortar shell is about to land. +2024-03-31: + SpartanBobby: + - maptweak: 'Changes to LV522: Less ledges overall' + - maptweak: 'Changes to LV522: More breakable entry to the reactor' + - maptweak: 'Changes to LV522: Removed dead end in reactor' + - maptweak: New weedable zone west of LZ2 T-comms tower diff --git a/html/changelogs/archive/2024-04.yml b/html/changelogs/archive/2024-04.yml new file mode 100644 index 000000000000..bf3a3c8de208 --- /dev/null +++ b/html/changelogs/archive/2024-04.yml @@ -0,0 +1,355 @@ +2024-04-01: + Drathek: + - rscadd: Moved holocards to the squad hud + Huffie56: + - refactor: refactored the lambda areas. + - maptweak: turned south padlock into a checkpoint. + - bugfix: replace space bellow door in the temple by proper floor. + - maptweak: added a missing platform part. + SabreML: + - bugfix: Fixed a runtime error caused when trying to open an already opened backpack. + - bugfix: Fixed a few runtime errors caused by the 'Cycle Helmet HUD' keybind. + - bugfix: Fixed a runtime error preventing a 'Marine Minor' (Hive collapse) roundend + state. + Segrain: + - bugfix: Mortar works properly once again. + SpartanBobby: + - maptweak: LV522 Cargo containers keeping FORECON out of the crashed ship have + been moved back slightly allowing marines and xenos a new flank route + realforest2001: + - code_imp: Removes an unused camera var. +2024-04-02: + sleepynecrons: + - imageadd: added missing backpack onmob states for "classic" gearset +2024-04-03: + vero5123: + - bugfix: lowers the scalpel and chunk box's ability to destroy various structures. + - rscadd: chunk box is now a melee weapon +2024-04-04: + QuickLode: + - qol: Moves CL's Office and SEA's Office phone lines to "Offices" category. + realforest2001: + - rscadd: Added AI Core camera consoles to CE, CO and Brig offices, along with CIC + and Lifeboat bubble. + - maptweak: Added Tech Control Console to ARES Core. + - rscadd: Added Tech Unlock logs to ARES Interface +2024-04-05: + Drathek: + - bugfix: Fixed some number entry for your pin and access code in the EFTPOS + Git-Nivrak: + - qol: Acid sprays will now extinguish fire from other xenomorphs more consistently + ihatethisengine: + - balance: night vision optics no longer can be used with binoculars. + vero5123: + - bugfix: xenos can no longer attempt to use corrosive acid after death +2024-04-06: + Huffie56: + - balance: add the ability to store fixOvein in the pouch medkit. + QuickLode: + - balance: Metal rods take up less space in an inventory (3 slots to 2) + - code_imp: removes some redundant code on plasteel rods + vero5123: + - bugfix: fixes queen getting stuck in the lobby if they take too long +2024-04-07: + Ben10083: + - balance: Mobs with super strength now have an advantage when resisting of a grab + is done, both as the grabber and the one being grabbed (Xenos not affected, + works as before). + - balance: Mobs with super strength no longer have their passive grabs a guaranteed + resist (unless both super). + Drathek: + - bugfix: Fixed objectives not getting displayed for CMB and cultist ERTs. + - balance: Cryotubes no longer multiply chemicals. + - balance: Cryotubes can now allow chemicals to process in dead if cryoxadone or + clonexadone is present. + - bugfix: Fixed cryotubes not actually updating their icons/power usage when they + become unpowered. + - bugfix: Fixed cryotubes healing despite inoperable. + - bugfix: The cryotube Eject Occupant verb now works for people other than the occupant + (useful if inoperable) + - ui: Cryotubes can optionally announce again on the medical channel. + InsaneRed: + - balance: Goon armor properly has slowdown now + Johannes2262: + - maptweak: All cell shutters are now linked to the button in the warden's office + Kaga: + - rscadd: Added the XM43E1 Anti-Materiel Rifle as a pickable sidegrade option for + USCM Sniper Specs through the vendor, mutually exclusive with the normal M42A + Sniper Rifle. The AMR can shred obstacles, blow a hole through most infantry + and their equipment, and even hit a collateral on multiple targets or through + light cover, but its lack of specialized ammunition and small magazine mean + that you'll need to make every shot count. Ammo can be bought from Req, at the + same cost per magazine as the M42A. + - balance: Completely updated the XM43E1 AMR, adding damage falloff to its wall-piercing + properties whenever it hits something alongside range loss. Most things reduce + its damage by 20%. Dense walls and big xenos reduce both the damage and range + 3 times as much. + NervanCatos: + - balance: removes CT access to marine prep weapons racks, doubles ammo count of + all regular ammo in req to compensate. + SabreML: + - admin: Added attack logging for Xeno tackling. + Vanagandr, totalepicness: + - rscadd: Added a button to event panel to give xenomorphs opposable thumbs and + firearms permits, to individuals, to hives, or to all xenos everywhere. They're + clumsy, though, and have issues with fine manipulation sometimes. Remember that + warriors cannot throw objects and make for poor grenadiers. + - rscadd: Xenos with opposable thumbs can use buckles, drive vehicles, use machine + guns and vendors without care for access or skills + Waseemq1235: + - mapadd: Added an APOLLO maintenance controller to the Warden's Office. + cuberound: + - balance: greatly decreses snow removal time, now it depends on xenomorph size + - balance: allows movement during tactical reload (to perform tactical reload click + and drag from a magazine to gun in your hand) + - balance: reduced GAU spread from 9x9 to 7x7 + - balance: reduced GAU shots fired per shot back to 1 (bullets per tile from 0.99 + to 0.82) + realforest2001: + - rscadd: Added ARES logging for launching supply drops. + - admin: Added staff logs for launching supply drops. + vero5123: + - bugfix: Fixes armor light staying on after removal. +2024-04-08: + BadAtThisGame302: + - rscadd: Added the new UPPA and Naval Patches to all UPP inserts. + - bugfix: Fixed the insulated gloves not having the insulated sprite. + - imageadd: added a black and blue satchel, also an updated red armband sprite courtesy + of AmoryBlaine + - imageadd: added a big UA flag, a UPP table and two new UPP patches all thanks + to the folks over at PVE. AmoryBlaine, Morrow and AndroBetel + HumiliatedGoblin: + - rscadd: Adds a one hour medical timelock for DCC's + - rscadd: 'Adds a tip of the round to accommodate for this PR and #5808' + - balance: DCCs and Pilots can now fix queen broken dropship doors + Mister-moon1: + - balance: increased GL and pyro armour light range to properly match other armours + like it. + SabreML: + - ui: Added a 'search by key' button to the Keybind menu. + Stan_albatross,kugamo,LTNTS,Drathek: + - balance: medical vendors, excepting nanomeds, can now only refill/restock stacks + and autoinjectors/bottles when on special medical supply link ports that can + only be found shipside. Sprite by kugamo. + - bugfix: supply pads will no longer generate ambient occlusion. + Steelpoint: + - rscadd: MRE's will now auto-delete if they do not contain and food items when + they are discarded. + cuberound: + - balance: flames melt the snow + ihatethisengine: + - rscadd: CC camera now can broadcast to TVs. +2024-04-09: + vero5123: + - bugfix: Notifications should no longer emit light. +2024-04-10: + Drathek: + - rscadd: Added preference for a darker crit overlay and black flash overlay +2024-04-12: + BadAtThisGame302: + - bugfix: The CMB Deputy not being able to use his breaching charge by replacing + it with a rubber one. + InsaneRed: + - rscdel: Helmets no longer hide ears + TopHatPenguin: + - bugfix: Fixes Nightmare documentation example. +2024-04-13: + Drathek: + - bugfix: Fixed cryotubes still duplicating chemicals because of touch reactions + HeresKozmos: + - rscadd: Added over a dozen new tips for playing Xenomorph. +2024-04-14: + BadAtThisGame302: + - rscadd: Added a CL Surv to Trijent and a CMB Surv to LV. + - qol: Changes almost all survivors regardless of maps to fit a more modern artstyle + with their uniforms and to remove any marine clothing, as well as updating various + presets. + Ben10083: + - spellcheck: fixed a grammar mistake in a Working Joe voiceline + Drathek: + - bugfix: Fixed colony lights deconstructing sometimes after explosions + - maptweak: Added medlinks under the marinemeds in medbay, hangar panic room, and + CIC armory. + - rscadd: Patting someone that is dizzy will no longer unrest them + - bugfix: Fixed unboxed machines not connecting to the power net + Git-Nivrak: + - rscadd: Throws will now attempt to reach their target rather than the turf they + were on when thrown + Huffie56: + - balance: added the option to buy restricted firearm for the specialist SU-6 and + VP78 each for 15points. + - balance: added the option to buy sidearm ammunition M44 (heavy and Marksman) and + SU-6 mag for 10 point each. + - balance: added the option to buy sidearm ammunition M4A3 HP and AP for 5 point + each. + - balance: added the option to buy a whistle for 5 point and a data detector for + 10 point. + - balance: added the option to buy binoculars for 5 point range finder for 10 point + and laser designator for 15 point. + JohnFulpWillard: + - imageadd: Added the Quebec flag to OOC for all Quebecois. + QuickLode: + - rscadd: 'Adds four new Colony Synthetic Variants: Archaeologist, ICC, Landing + Pad Attendant, Surveyor. These are distinctive RP quirks which should help players + better choose roles they like, they also flesh out the variants.' + - rscadd: Diversifies Colony Synthetic weapons and loadouts to be more flavorful + and fitting to their roles. + - balance: nerfs the backpack of Corporate Protection Synthetic(to 5 spaces) and + nailgun ammo for Engineering Synthetic(from 3 to 1) + - balance: Brings up several antiquated tools to slightly below 'CM' level (kitchen + blades to about a knife, pickaxe to about a machete, police baton to a knife) + - bugfix: adds missing hit sound to pickaxe(slicing) + - bugfix: adds missing pouch for UPP Synthetic Survivor + - spellcheck: properly names reconaissance synthetic in spawn + - rscdel: removes Detective and Janitor Synthetic from rotation(temporary, until + I can better reaestheticize their looks) + Tim Harley cookpet: + - rscadd: Added 2 new flamer fuels craftable by OTs/Chemistry + - balance: CLF3 recipe now gives more units per reaction + - balance: OT rockets explosion power and falloff nerfed to be slightly more explosive + than the OT M15 grenade (240 exp, 90 falloff). + - balance: OT rockets max container volume increased to 210 units (1 beaker, 1 bottle, + 1 vial). + - balance: OT rockets max fire intensity increased to 40 and max duration increased + to 48. + - balance: OT rockets can no longer make a star shaped fire. + - balance: OT rockets max range increased to 7 tiles. + harryob: + - code_imp: 515.1627 is now required for development - this is not enforced to play + on the server, yet + realforest2001: + - bugfix: Fixes praetorian acid ball harming the prae and other xenos. +2024-04-15: + LTNTS: + - maptweak: moves APC in Chance's Claim LZ1 to where it can actually be fixed +2024-04-16: + Huffie56, Zenith, esselnek/sleepynecrons, samy/nauticall, drulikar.: + - rscadd: Added fuel pump as machinery on the almayer sprite will change when power + is on or off. + - rscadd: Fuel pumps are animated when activated and have different state depending + on how full the lifeboats are. + - imageadd: added the fuel pump icon. updated by esselnek /sleepynecrons and Zenith, + they where originally made by nauticall. + - maptweak: added the fuel pump to the proper locations. + ihatethisengine2: + - rscadd: ported stripping menu from TG +2024-04-17: + QuickLode: + - balance: M3A1 Synthetic Utility Vest only has a 10% slowdown. + iloveloopers: + - bugfix: You can no longer buckle xenos onto chairs + realforest2001: + - rscadd: Added Nerve Gas Release control buttons to the ARES and APOLLO interfaces, + allowing the AI core to be secured from large groups or xenomorphs. Built in + cooldowns should prevent fatalities. + - maptweak: Remodelled the AI Core Reception and WJ spawn area. + - maptweak: Switches AI Core cameras over to manual naming. + - imageadd: Added sprites for AI Core windows on black Almayer frames. + usnpeepoo: + - balance: Berserker's rage lock-out duration increased slightly +2024-04-18: + InsaneRed: + - balance: Hedgehog now gains explosion immunity to nades if you have above half + shard amount. + MrStonedOne, LemonInTheDark: + - server: config now allows you to warn players to upgrade their byond version, + or bar them based on their byond version + Steelpoint: + - balance: UPP Synthetic's loadout has been reworked to account for its new status + as a non-combatant. +2024-04-19: + QuickLode: + - rscadd: Adds 3 variations of CMB Marshal and 4 variations of a UA Riot Police + Officer to Fiorina Prison Riot nightmare. These are fine men and women in uniform + prepared to engage what they suspect is a riot(or in the case of CMB, assisting + their underfunded and understaffed colleagues) however, they find something + much more sinister going on.. + - rscadd: Adds a CMB Investigative Synthetic(r) and a UA Police Synthetic. + - rscadd: Allows police baton and telescopic baton to shield clash for intimidation + and riot tactics. + - rscadd: Allows M81 launcher to utilize less lethal baton round + - qol: removes taser from some security synthetics belts, replaced with a more synthetic + friendly version +2024-04-20: + Huffie56: + - balance: Increase damage of standard revolver ammo from 55 to 72. + - balance: Marksman ammo remains 55 damage. + iloveloopers: + - rscadd: adds new flamer fuel type, stabilized metallic foam + - rscadd: Incinerator tanks can now hold stabilized metallic foam + - balance: High-Combustion napalm fuel is now easier to see on the ground +2024-04-21: + 567Turtle: + - balance: ' SO can now do basic surgeries' + Ben10083: + - rscadd: Synthetics when shoved into meat gibber will not be delimbed and spawn + their own flesh, but would not die (they are spat out as a torso and head) + - admin: Adjustment to meatgibber code to notify admins when a synthetic is being + shoved into gibber + Git-Nivrak: + - bugfix: You can no longer infinitely extend facehugger's lifetime by REDACTED + - balance: Lessers now lose 5 hp every 2 seconds off weeds + - bugfix: Fixed a bug which made boilers go way faster than they should + LTNTS: + - rscadd: Adds Command Tablets to Provost Marshal+ + iloveloopers: + - bugfix: White phosphorus will no longer forcefully set a mob's fire_reagent to + be UT napthal + realforest2001: + - rscadd: Added an ARES Log for chambering the OB Cannon. + vero5123: + - bugfix: toggling ghost vision now keeps the user's mob visible. +2024-04-22: + Git-Nivrak: + - rscdel: Reverted back to old throw logic + GrrrKitten: + - rscadd: Adds shockwave VFX to powerful explosions + - rscadd: Adds shockwave VFX to Queen + Predalien screech + LC4492: + - rscadd: Adds a new, better variation of the normal photocopier. + - imageadd: Adds a new sprite to the new photocopier variation and updates the sprites + of both normal, and new photocopiers to look slightly better. + - maptweak: Adds the new photocopiers to the CC and CL offices. + Zonespace27: + - admin: Unmarked tickets now mark themselves when an admin starts responding to + one + harryob: + - bugfix: you can bind to space again + iloveloopers: + - bugfix: custom flamer fuels no longer work for increasing OT assembly's caps + realforest2001: + - bugfix: Delaying round start now shows on the timer again. + - rscadd: Added ID Modification Log to the Access Report printout from an ID Console. +2024-04-23: + Drulikar: + - balance: Cryotubes now also cure external bleeding + - bugfix: Fixed internal bleeding granting blood on its last tick +2024-04-24: + Git-Nivrak: + - bugfix: Fixes boilers slowing themselves by using long range sight while resting. + iloveloopers: + - qol: Alt clicking a reagent tank will now toggle whether its dispensing or filling +2024-04-25: + Drathek: + - bugfix: 'Fixed hugger handling in drone tutorial: Now the hugger dying will put + another hugger into the tutorial morpher.' + Steelpoint: + - rscadd: UPP and CLF Combat Synthetic preset is now available for admins to spawn + them in. + ihatethisengine: + - bugfix: spotlight no longer breaks after every flight + - rscadd: Combat Correspondent can broadcast speech and emotes. + - rscadd: Speech close enough to the camera will be shown above connected TVs as + abovehead messages + realforest2001: + - bugfix: You can delete flight logs from ARES Interface again as intended. +2024-04-26: + Git-Nivrak: + - qol: You can now change the color of pill bottles in the chem master or with a + hand labeler. + realforest2001: + - spellcheck: Fixes a typo for M4RA AP Ammo in the ASRS menu. +2024-04-27: + Lagomorphica: + - balance: The spotter laser designators, scout laser designators, and scout cloak + are now unmeltable and indestructible to explosions. diff --git a/html/changelogs/archive/2024-05.yml b/html/changelogs/archive/2024-05.yml new file mode 100644 index 000000000000..fc239e231d3f --- /dev/null +++ b/html/changelogs/archive/2024-05.yml @@ -0,0 +1,355 @@ +2024-05-02: + Drathek: + - balance: Lurker invisibility recharge time is now 20s (up from 15s) + - balance: Lurker invisibility now ends when devouring but refunds 50% of time unused + - balance: Lurker invisibility bump now refunds 50% of time unused + - balance: Lurker invisibility can now be toggled refunding 90% of time unused (with + dbl click prevention) + - rscdel: Removed defender crest toggle balloon alerts + - bugfix: Lurker invisibility code is refactored to properly use cooldowns and now + doesn't incorrectly get interrupted by bump code + - rscadd: Lurker invisibility recharge time is now displayed in status tab + - maptweak: Added medlinks to WO + - maptweak: Added a medlink to each ground map + Git-Nivrak: + - rscadd: Survivors can now receive command announcements with IFF and a marine + headset. + Huffie56: + - maptweak: Officer cafeteria added back missing emergency shutters and move the + pipes from bellow the windows. + - maptweak: Starboard aft hull removed the two walls. + - maptweak: Upper engi area around lobby remove pipping going bellow window also + rework the area to better fit aestetic of almayer. + - maptweak: some apc are a bit moved around to avoid them having a small light on + them. + HumiliatedGoblin: + - qol: Now needs help intent to repair walls + - qol: Now needs disarm, grab and harm intent to deconstruct walls + cuberound: + - balance: FM sound is 4 seconds before CAS open fire from 5 + - balance: FM direction warning is 1 seconds before CAS open fire from 1.5 + ihatethisengine: + - rscadd: Corrupted Queen can set up personal alliances with humans + realforest2001: + - rscadd: Changed the AI Core Lockdown to the same system as Research Lockdown. + - rscadd: Added a subtype of desk bell for the AI Core reception desk that sends + an alert over APOLLO Link. + - imageadd: Added directional blast door sprites from Thwomper for blended black + shutters. + - code_imp: Renamed operator var in apollo console code to user. +2024-05-03: + InsaneRed: + - spellcheck: New flavor text and better strain information + realforest2001: + - rscadd: Added the name of an announcement sender, if one exists, to ARES logs. +2024-05-04: + AndroBetel: + - qol: Pointing at an item in your hands shows it off. + BasilHerb: + - rscadd: 'Type 80 bayonet to the mouths of the following mobs: CLF Soldier, CLF + Specialist, CLF Medic, CLF Engineer, CLF Leader.' + Drathek: + - bugfix: Fixed weeded corpses staying weeded if they were transported by shuttle + Git-Nivrak: + - bugfix: Synths no longer get affected by boiler's neurotoxin + coldironwarrior: + - rscadd: Added eyewear options, more glove options to the SEA vendor + - rscadd: SEAs now get full versions of the utility holster belt + - rscdel: Removed the CPR dummy from the SEA vendor + iloveloopers: + - qol: Bookcases can now be wrenched or slashed to be deconstructed + - balance: Kutjevo ledges now take only 0.2 seconds to climb instead of 1 whole + second + kivts: + - bugfix: Infinite metal oversight fix. + realforest2001: + - bugfix: Whitelist notes now work properly. Council can add notes to players regarding + whitelist issues. + - rscadd: Changing whitelist flags with the Whitelist Panel now automatically adds + a note with the reason. + - rscadd: Added skillsets specific to WY Goons. + - rscadd: Added a WY Goon Engineer preset. + vero5123: + - bugfix: Fixes microwave food duplication + - bugfix: Fixes scout being able to be decapitated with a helmet on while cloaked. + - bugfix: Fixes sentries firing at xenos while vent crawling. + - bugfix: fixes hugger not dying when squished by predator + - bugfix: Burrower can no longer tunnel across the map. +2024-05-06: + Git-Nivrak: + - balance: Watcher is now immobilized when zoomed out and loses health off weeds + when not zoomed out + ihatethisengine: + - balance: SADAR backblast now knockdowns and is reduced by xeno explosion resistance + s5nt: + - rscadd: Added more materials to pred ship including more sandstone, wood, table + parts, etc for lodge construction, along with more pred specific food to the + pred kitchen. + - maptweak: Slightly expanded pred ship material storage area by moving bracer storage + over to the left side of the ship. +2024-05-07: + Zonespace, d.1.n.a. (original sprites), esselnek (new sprites): + - rscadd: Added the M540-B Armored Recon Carrier as a t1 intel purchase. +2024-05-10: + realforest2001: + - code_imp: Repaths handcuffs and legcuffs to have a shared parent. + - code_imp: Repaths xeno restraints to reduce confusion from the typepath. + - rscadd: Legcuffs work appropriately now, and can be found in small numbers within + security vendors. + - rscadd: Cable restraints can now be adjusted via right-click to fit on wrists + or ankles. + - rscadd: Prison shoe chains now require ankle restraints rather than handcuffs. + - rscadd: Prison shoes that have been chained now have an equp and unequip delay + to account for the chains, proportionate to the breakout time of the item used + in the chains. +2024-05-11: + Tyranicranger4: + - qol: Emptied randomchem vials no longer show up on the data detector + - bugfix: Fixes empty vial storage boxes showing up on the data detector + cuberound: + - balance: projectiles can pass fences + ihatethisengine: + - rscadd: Added paradropping + - rscdel: Removed rappeling + - rscadd: Infection icon now has lower alpha if the human is dead + iloveloopers: + - rscadd: Adds in a new incinerator smoke tank that turns any reagent inside it + into chemsmoke when fired. +2024-05-12: + Git-Nivrak: + - balance: Limbs will now only be delimb-able if they are fractured + XQ: + - qol: Updated the ARES reception bell's description to inform players it notifies + Working Joes when rung. + - qol: Increased the ARES reception bell's cooldown from 5 to 60 seconds. + ihatethisengine: + - balance: only disabled comms can be pyloned + realforest2001: + - rscadd: Handcuffs & Legcuffs now appear on examine. + - rscadd: Added a reason input field to handheld distress beacons. +2024-05-13: + kirieee: + - imageadd: rolled sleeve sprites for all IO uniforms +2024-05-14: + Huffie56: + - balance: added a crowbar to the cryo defense kit. + ihatethisengine: + - bugfix: fixed potential bugs with transparent infection icon + - bugfix: Fixes infinite lifeboat alarm after queen locking + iloveloopers: + - rscadd: Mortar shells will now cook off and explode when flamed + - qol: OT freezer will now play a bell sound when it's done making paraformaldehyde + in a container + neeshacark: + - rscadd: you can now remove shrapnel from your body with the M11 Throwing Knife + and screwdrivers +2024-05-15: + Diegoflores31: + - balance: Removes Generic tail stab from Vampire lurker + - spellcheck: adjusted Vampire lurker description + Git-Nivrak: + - qol: Maintenance jack can now be quick drawn + - code_imp: Added a flag that allows items to be quick draw-able despite not being + weapons. + Zonespace27: + - admin: Added LISTSOURCE and SELECTPRINT options to SDQL queries. + - admin: Added SINGLECALL SQDL query. + - admin: SDQL tab now works. + - admin: Clients can now be selected with SDQL more easily. + ihatethisengine: + - balance: xenos holding on warding don't lose it while on weeds + realforest2001: + - balance: Added a 70% chance groundside reagent tanks start anchored, if they don't + already. + s5nt: + - rscadd: Adds the option for synths to buy different varieties of suit pants, suit + jackets, vests, and dress gloves from their snowflake vendor. +2024-05-16: + Doubleumc: + - bugfix: humans can use vehicle gunner seats again + Drathek: + - balance: Increased the starting stock of most medical vendors but shifts some + reagent bottles from weymeds to weychems + - balance: Med linked medical vendors will now automatically restock items (requires + 20 minutes from round start) and reagents (no time requirement) periodically + if operable + - balance: Groundside medical vendors will now have random stock and reagents missing + if its not WO + - balance: Partial medical item stacks can no longer be refilled at vendors (autoinjectors + and bottles can still be refilled pulling from internal reagent tanks) + - balance: Doubles the starting energy for chemical dispensers + - balance: Discounts all requisitions medical supplies + - ui: Added reagent amount display to vendors that have internal reagent tanks and + tweaked the icon positioning of items slightly + - ui: Tweaked table widths in vendors + - ui: Fixes USCM theme vendors not showing different backgrounds for odd rows + - qol: Restocking a medvendor manually can now be done with just a click rather + than only via mouse drop + - qol: Restocking a vendor can now be performed in bulk from a storage inventory + - click drag the inventory to the vendor and you will restock all the items + you can + - rscadd: Vendors can accept partial stacks when restocking - when an item has a + partial quantity for a stack it is denoted with an asterisk + - rscadd: Added two restock carts for bulk restocking medical vendors, one for items + and the other for reagents (purchasable from requisitions - disassemble with + a wrench - temporary sprites for now) + - bugfix: Fixed some currently unused squad prep vendors + - bugfix: Removing nano splints on a person no longer creates a 0 amount normal + splint + - spellcheck: Tweaked some restock messages and vendor descriptions + - rscadd: Nade boxes now have the same throw away logic when dropped to the ground + instead of in update_icon when empty. + - bugfix: Fixed MREs getting thrown away if you don't drop them to the ground. + - bugfix: Fixed MREs throwing runtimes if spawned on a person that doesn't have + space for the MRE. + - bugfix: Fixed issuing a null order via the issue order verb. + Steelpoint: + - balance: The VP78 pistol has received a rate of fire boost, and it will deal full + damage up to 3 tiles from the shooter's position before suffering damage falloff. + TheGamerdk: + - balance: Milkshakes no longer bring you to absolute zero, just 0 celsius +2024-05-19: + Git-Nivrak: + - rscadd: Changed advanced medhud visor to be displayed on the same eye as normal + medhud visor + iloveloopers: + - spellcheck: Custom rocket description now looks nicer +2024-05-20: + Doubleumc: + - qol: ghost "Scan Health" works at any range + - qol: squad/queen/leader trackers can find targets in interiors + Drathek, mullenpaul: + - ui: Finalizes the TGUI React port and brings us back into parity again with TG's + interface components + - ui: Strip panel is now larger with sprites at 64x64 instead of 48 because as an + Image component now they didn't alias the same. + - ui: VOX panel's second tab now doesn't overlap the other buttons + - ui: Wiring panel for some machines is now restored to use circular indicators + again + - ui: Smart fridge interface is more in line with sorted inventories as far as layout + & tooltips + - ui: Tacmap drawing interface is tweaked a little to deal with the changes to dropdowns + + clicking the tab is now disabled again until the tacmap is ready (It needs + minimap subsystem to fire to have icons when flattening the map to be up to + date) + - ui: Reworks RestrictedInput number handling + - ui: Adds the DMIcon, VirtualList (deferred lazy list), Dialogue, MenuBar, StyleableSection, + and Checkbox TGUI components (but nothing uses them yet) + - ui: 'Chat: Adds a clear chat button clearing the current tab, mute button to disable + unread notifications for a tab, and updates the word highlight regex for case + sensitivity' + - ui: Updates the ship manipulator window to allow replacing any Shuttle + - ui: Fixes the supply pod panel not displaying its byondui map correctly + - ui: Fixes the research terminal duplicating papers in display old mode. + - ui: Updates the tgui_input_list to for new features like hotkey selection, duplicate + key handling, etc + - bugfix: Fixes thinking runtimes when quickly switching between tgsay categories + - code_imp: Shuttle subsystem now is less aggressive with reservations (skipping + deletion if below a threshold, delaying reservation if above a threshold) + - bugfix: Fixes F5 key still refreshing a TGUI window even if default was set to + be prevented (e.g. Hotkey interface) + Git-Nivrak: + - qol: Changed the Queen's pointing color to purple + - balance: Latejoin marines to larva ratio changed to 1:4 for the first 15 minutes, + going back to 1:2.5 afterwards. + HeresKozmos: + - mapadd: Added three new tunnels to New Varadero. + - maptweak: Adjusts placement of some existing tunnels on New Varadero. + Nomoresolvalou: + - balance: unpowered doors are now opened instantly in maintenance jack crowbar + mode instead of in three seconds. + - balance: crowbar mode can now pry doors closed when unpowered. + - bugfix: fixed cats not specifically defined in code displaying wrong info when + held or stored in a container. This should also fix any other mob capable of + being picked up that is not defined in code as well. + doganesi: + - bugfix: Fixed some oversights with custom loadout provided weapon boxes + vero5123: + - qol: Toggleable ammo counter, can now cycle between displaying every fifth or + single bullet. + - bugfix: Light attachments will no longer automatically turn on when the weapon + is equipped from suit storage +2024-05-23: + Drathek: + - ui: TGSay is now opened the same way it used to for more responsiveness +2024-05-24: + Drathek: + - bugfix: Fixed some winset errors with some nanoui windows + - admin: Fixed the adjust_predator_round verb + TheGamerdk: + - rscadd: Adds a sensor tower to the far East of Shivas, between Med-Sec and the + Research labs +2024-05-25: + Doubleumc: + - qol: vehicle weapon projectiles start from the weapon + Git-Nivrak: + - balance: AMR will now reset its focus after two fully charged aimed shots on the + same target. + JackieEstegado: + - qol: Requisition drop pads will now no longer launch open crates + Steelpoint: + - rscadd: The Compact Nailgun that the USCM Synthetic can vend now comes with a + unique nailgun holster, capable of holding the nailgun and two spare magazines. + Tyranicranger4: + - bugfix: Fixes improperly placed APCs on Shivas Snowball + realforest2001: + - bugfix: Fixed ARES remote interface UI crash relating to flight logs. + - rscadd: Added access check for use of escape pod consoles, and access requirement + on the CLs pod. +2024-05-26: + realforest2001: + - imageadd: added sprites for floor-mounted sentry deployment systems. + - rscadd: Added mini-sentry deployment systems, and an AI Core subtype. +2024-05-27: + neeshacark: + - rscadd: lifeboats now come stocked with uno cards, for all your fun-filled needs + vero5123: + - bugfix: Fixes non-synthetic mobs getting stuck in the gibber +2024-05-29: + iloveloopers: + - balance: MST now conflicts with NST, you can only have one in your stim, not both + - balance: Boosting now only boosts other properties by 0.5 levels for each level + - balance: Regulating is now a common property and turns any overdose ammount into + sugar + - balance: Flowing no longer decreases intensity and duration, it is now possible + to make a blueflame equivalent fire chemical with clearance 5 and around 25 + credits (30 if fire penetrating) + - balance: Bonemending is now only 2 levels less efficient when not using a splint + on the broken limb as opposed to 5 levels less efficient and can be made by + combining nutritious and hyper-densificating + - balance: Anti-xeno properties, fire properties and most healing properties no + longer have a cost penalty when above level 5 in create mode + - balance: All anti-xeno properties are now available roundstart at low levels from + basic chemicals + - balance: Fire penetrating is now a rare property and can be made by combining + oxygenating and viscous (both roundstart available) + - balance: Many other various changes to flamers, chemsmoke and anti-xeno properties + - balance: Resin fruits and Warden debuff rejuvenate now clear warcrime's effects + and give a short immunity + - code_imp: Refactored interference to be a component and added new traits for it + - balance: Daze no longer stops xenos from talking and is slightly less punishing + when applied to humans from the neurotoxic property + - code_imp: New snowflake daze component for neurotoxic property +2024-05-30: + Drathek: + - admin: Logging for chem smoke is now niche logged and less spammy + mullenpaul: + - ui: orbit menu now splits marine squads + - ui: orbit menu now splits xeno hives + - ui: orbit menu sorts marines by job +2024-05-31: + Kaga: + - balance: The Heavy Sniper's XM43E1 rounds are now actually heavy. Targets hit + will get screenshake, like slugs and impact rounds, scaling with damage dealt. + - balance: XM43E1 shots can now potentially interrupt targets if it deals enough + damage. The heavier the target, the more force is needed to interrupt them. + Big xenos require a full-damage shot with no piercing, while smaller targets + can also be knocked back with enough damage. + - balance: XM43E1 Aimed Shots can now potentially apply a slow to the main target + only, scaling with base damage and target size. If a slow is applied, vision + range is reduced for a moment as a warning. + - balance: XM43E1 and M42C ammo AP increased to 75 (from 50) + - balance: Removed the Defender exception from the AMR Aimed Shot calculations. + Tyranicranger4: + - bugfix: Fixed an exploit that allowed Burrowers to apply acid to objects while + underground diff --git a/html/changelogs/archive/2024-06.yml b/html/changelogs/archive/2024-06.yml new file mode 100644 index 000000000000..4075db8b6a2c --- /dev/null +++ b/html/changelogs/archive/2024-06.yml @@ -0,0 +1,258 @@ +2024-06-01: + Zonespace27: + - balance: Lifeboats now support surgery. +2024-06-04: + AndroBetel: + - qol: Added radial menu to accessory removal + Huffie56: + - balance: for burrower in whiskey outpost add the ability to make tunnel but remove + the ability to burrow. + - balance: add C4 to the wo weapon vendor. + - balance: updating the clothing surplus vendor on to be as close as main mode as + possible. + realforest2001: + - admin: Added ckey log to ordering ASRS. +2024-06-05: + Huffie56: + - maptweak: remove emergency shutter that aren't on the frontier between two areas. + - maptweak: added emergency shutter that are missing on the frontier between two + areas. + TheGamerdk: + - rscadd: All officers and NCO's can now recommend people for medals. + coldironwarrior: + - rscadd: Doctors will spawn in dark blue scrubs by default; Setting your preferred + job title to "Surgeon" for doctor roles will now spawn you in green scrubs + realforest2001: + - rscadd: Added a print button to the ASRS audit log. + - bugfix: Changing an Identification Computer to is_weyland (formerly is_centcom) + now works correctly and allows assignment of corporate accesses or presets. + - code_imp: Added two procs for interpreting WY access information in the UI. + - code_imp: Added separate role groups for PMC and Corporate job defines. + - rscadd: Added ACCESS_WY_DATABASE as a requirement to use the WY subtype console. + - rscadd: Added a WY subtype for crew monitor. + - code_imp: Renamed the faction defines explicitly relating to static defences due + to confusion over FACTION_WY and FACTION_WEYLAND. + - rscadd: Added Forsaken sub category to orbit menu. Also adds an "Other" sub category + for xeno hives, to split the main hive on its own. + - code_imp: Changed xenoSplitter to pull the hivenumber rather than base things + on the name. + - rscadd: Adds USCM Observer preset, a copy of CO with a different name. + - rscadd: Added cameras to Working Joe uniforms. + vero5123: + - bugfix: Fixes overwatch console coordinate comment UI crash + - bugfix: Fixes chat UI crash after entering a custom font +2024-06-07: + Blundir: + - rscadd: contraband ammo selection in black market + - rscadd: tons of new ammo boxes + GrrrKitten: + - rscadd: replaces the old ethnicity system with a new skintone system + - imageadd: Resprites humans, adds 9 new mix and match body options to replace the + old 3 options + - rscadd: resprites dogtags and adds an accessory dogtag that can be made visible + via attaching to suit/armor + - imageadd: Touches up a lot of the underwear sprites +2024-06-08: + Drathek: + - bugfix: Fixed larva and hugger emotes performing no stat or muted or cooldown + checks + - bugfix: Fixed round time having the wrong timezone offset because of an engine + change to time2text + - bugfix: Fixed linked airlocks destroying their linked airlock incorrectly + Drulikar: + - bugfix: Fixed some usages of the proc range such as for delimbing + TheGamerdk: + - bugfix: Your prayers have been received by the gods will now only be said once + per prayer + coldironwarrior: + - rscdel: removes the nazi jacket sprite from suits.dmi +2024-06-09: + harryob: + - bugfix: predators are not missing the space between their torso and legs + hislittlecuzingames: + - balance: Set CT free plasteel to 40 and added APC Circuit board + realforest2001: + - bugfix: Fixed the USCM Observer icon not displaying. Forest dumb. +2024-06-10: + Kivts, SubjectD9341, Zenith.: + - rscadd: Xenomorph Harvesting Surgery. Allows research to operate dead xenomorphs + to take out their organ. + - rscadd: The Xenomorph analyzer, uses organs extracted from dead xenomorphs, which + when processed gives points to spend on physical upgrades. + - rscadd: a number of machinery upgrades for autodoc, sleeper, and other upgrades + or bonuses research can decide to spend their points on + - rscdel: passive generation increase of research credits is removed + ThePiachu: + - spellcheck: Fixed a typo in Admin Game Panel +2024-06-11: + Zonespace27: + - balance: All squad roles can now use M707 pamphlets + - bugfix: Skillless M707 spotting scopes now consistently work. + - bugfix: M707 magazine overlay no longer disappears when the gun is empty with + an inserted magazine + - bugfix: Fixed M707 being usable without the correct trait +2024-06-13: + Drathek: + - bugfix: Fixed some jobs having no minimap icon in orbit menu + - bugfix: Fixed ghost huds resetting settings if you were ghostized while disconnected + - bugfix: Fixed larva queue time of death not getting recorded if client is missing + TheGamerdk: + - bugfix: Command can now access the helmet cameras of any deploying command staff + ThePiachu: + - bugfix: CLF Engineers now properly spawn with insulated gloves again. + Zonespace27: + - admin: Potentially laggy uses of the drop-bomb verb now have a confirmation warning. + cuberound: + - balance: dropship fabricator extra budget price 12 -> 6 , 2500 -> 2000 points + - balance: supply extra budget 15 -> 7, 10k -> 5k + - balance: all OB 10 -> 5 intel points, one shell and five fuel + fira: + - rscadd: Added a Tutorial for tending to the Requisitions Line +2024-06-15: + AndroBetel: + - balance: Pistol mag pouch now has 4 slots instead of 3. + Blundir: + - imageadd: resprite of spearhead cmb revolver + Comxy: + - rscadd: Adds W-Y branded sentries. + - imageadd: Adds W-Y defenses sprites. + Drathek: + - bugfix: Fixed Queen Mother being unable to award a Queen + - rscadd: Added preference for toggling the fax machine received sound as an observer + TheGamerdk: + - bugfix: Fixes small issue allowing medals to teleport + Zonespace, Zydras: + - bugfix: Vehicle elevator no longer incorrectly rotates vehicles + - rscadd: New ARC exterior and interior + - balance: ARC now fits 5 humans instead of 7 + - balance: ARC now fits 4 xenos intead of 5 + - balance: ARC's RE700 turret armor pen 10->15 + - balance: On account of the smaller size, the ARC no longer has a nanomed. + Zonespace27: + - bugfix: Pyro spec flamer should be linked to its tank more consistently. + - qol: Added some missing objectives to the xenomorph - basic tutorial. + harryob: + - bugfix: the preview window in character setup now remains visible when looking + at it as a ghost +2024-06-16: + Drathek: + - bugfix: Fixed wallets as IDs breaking many things + - admin: Added niche logging for revival attempts +2024-06-17: + GrrrKitten: + - bugfix: fixes a bug that fully jammed guns being used in akimbo + Steelpoint: + - mapadd: Civilian Clothing Storage Vendors have been added to the Gym on the USS + Almayer. These allow anyone to vend civilian clothes. These vendors require + CIC access to unlock however. + TheGamerdk: + - bugfix: The game no longer tricks predators and synths into thinking they're more + damaged than they actually are. + - rscadd: Special insert synthetics on most maps will now be able to gain access + to synthetic equipment vendors, provided they're given access by USCM command + staff. (Synth access on their ID) + coldironwarrior: + - bugfix: fixed corpsmen gloves and the map being mutually exclusive in the corpsman + vendor + - bugfix: incen OB fire now makes blue light. + iloveloopers: + - qol: Grow boxes can now be destroyed by xenos. + realforest2001: + - bugfix: Medical cryo tubes no longer delete their occupant when destroyed. + vero5123: + - bugfix: fixes vampire being able to execute hugged marines + - bugfix: fixes cas being able to target shipside signals +2024-06-19: + Diegoflores31: + - bugfix: Fixes CO being unable to award medals. + Drathek: + - bugfix: Fixed various equipment_presets not getting cached or looked up correctly + Git-Nivrak: + - qol: Dir-assist will now prioritize non-xenos over xenos. + Red-byte3D: + - balance: Synthetic Protective Form now takes 150 charge instead of 50. + TheGamerdk: + - rscadd: Overwatch console shows dead marines by default. + VileBeggar: + - soundadd: The M44 combat revolver has had its firing sound changed. + wshuwshuwshi: + - bugfix: Adds a 1.5x modifier to the amount taken from larva timer based on chem + property level + - bugfix: swaps the 1.5 multiplier for a delta_time multiplier + - bugfix: improved the formatting of the code to have proper spacing +2024-06-20: + Drathek cuberound: + - balance: After three minutes from round start, landing zones will be covered in + a deadly gas + - balance: First dropship deployment will clear gas, and first dropship arrival + will deploy 4 sentries that last 20 minutes + - refactor: Refactored smoke code + - maptweak: Expanded LZ areas on Trijent Dam and Kutjevo Refinery + - maptweak: Shrunk LZ1 on Shivas Snowball and LZ2 on LV624 slightly + - maptweak: Removed fog on Chances Claim since it will be replaced by smoke and + tweaked southern tunnel area to not be considered a LZ + - bugfix: Fixed weird LZ lighting on some maps + - spellcheck: Replaced/removed synth coughing emotes in smoke + Git-Nivrak: + - qol: Added an hud icon for vampires that lets them know when an enemy can be executed. + Nomoresolvalou: + - rscadd: Added masks to synth snowflake vendor + Red-byte3D: + - balance: Re-adds Vehicle Crewmen + - balance: Tank now unlocks at 200 pop. + - balance: Re-adds tank and its attachements back to the tank-bay. + - balance: You can no longer have the ARC & TANK in the same round. if the arc is + bought the tank is unavailable and vice versa. + Zonespace27: + - rscdel: Pyro flamers now start unlinked from their tanks again + iloveloopers: + - rscadd: Added new upgraded incinerator fuel tanks printable by the biomass analyzer. + vero5123: + - rscadd: Adds the ability for users to make bug reports in-game + - ui: New bug report system ui + zzzmike: + - qol: examining eggs/morphers tells you current number of huggers and the limit +2024-06-21: + Drathek: + - bugfix: Fixed the core showing lesser drone counts to humans when examined + Git-Nivrak: + - balance: You can no longer extinguish yourself with your own acid spray. + - balance: Queen will now briefly shove xenos if they are in a tile she is trying + to move to, preventing bodyblock. + cuberound: + - balance: patting fire on ground harms the xeno, more intense fire means more harm + iloveloopers: + - balance: Fence health nerfed, now can be 2 tapped by xenos + - qol: Fuel cell recyclers no longer block movement + - qol: Showcases are now slashable by xenos + zzzmike: + - bugfix: more survivors now listed in survivor category on observe menu +2024-06-22: + Red-byte3D: + - balance: Vampire tail jab now only stuns if you knockback an enemy into an obstacle. + - spellcheck: Vampire lurkers no longer "throw it back" after hitting somebody with + their Tail Jab +2024-06-23: + Drathek: + - bugfix: Fixed LZ gas not penetrating destructible walls + ihatethisengine2: + - bugfix: simple animals don't block projectiles after death anymore + iloveloopers: + - balance: Custom research chemicals with an intensityfire above or equal to 50 + will now burn white. +2024-06-28: + Drathek: + - bugfix: Fixed a crash in the Hotkey menu when searching by key when filtered + - bugfix: Fixed/Added support for various keys (e.g. keypad and media keys) + Git-Nivrak: + - bugfix: Fixes being able to draw weapons when knocked down + HeresKozmos: + - maptweak: Filled in a hole in the map. + - maptweak: Fixed an area in the easter egg section of Sorokyne + coldironwarrior: + - spellcheck: fixed a few typos in the xeno bioscan announcement + kiVts: + - code_imp: Prevented potential unintended behavior with research upgrade items + on initialize + private-tristan: + - qol: Facehuggers no longer show as having any plasma diff --git a/html/changelogs/archive/2024-07.yml b/html/changelogs/archive/2024-07.yml new file mode 100644 index 000000000000..c151c48934c9 --- /dev/null +++ b/html/changelogs/archive/2024-07.yml @@ -0,0 +1,126 @@ +2024-07-03: + Blundir: + - soundadd: larva talking sounds + - imageadd: larva moving sprites, tweak of standing ones +2024-07-04: + Doubleumc: + - qol: ghost health scan & follow right-click actions work at any range + - admin: '"InView" procs use your current view range (e.g. ghost zoom)' + Nomoresolvalou: + - balance: The headset in the synthetic equipment vendor has been replaced with + a synthetic headset as opposed to a senior command headset + zzzmike: + - spellcheck: more clarity for facehugger/lesser drone text +2024-07-05: + AndroBetel: + - rscadd: Adds "Iron teeth" trait. + GrrrKitten: + - qol: Makes screenshake look less low FPS/jumpy + Venuska1117: + - bugfix: Make non-toxic water stop glowing. + coldironwarrior: + - spellcheck: fixed the medical rig belt's description +2024-07-06: + Drathek: + - spellcheck: Fix grammar and plurality for vehicles and their hardpoints +2024-07-07: + Blundir: + - rscadd: white corpsman helmet + Contrabang: + - rscadd: Re-added a fax machine to the WY ERT station + Doubleumc: + - code_imp: environmental reverb applies more reliably and only to positional sounds + - imageadd: adds CMP tracker sprites + - rscadd: adds a SEA headset, can track CO, XO, CMP + - rscadd: adds handheld crew monitor in SEATech vendor + - bugfix: right-click Examine no longer appears for interface buttons + GrrrKitten: + - ui: Swaps TM and MOTD order so that people actually see the MOTD + - admin: Removes the message for when no event info is input + realforest2001: + - code_imp: Changes OOC color settings for donators/non mentor/staff. + - admin: Mentors no longer receive debug logs as a result of being in GLOB.admins +2024-07-08: + ThePiachu: + - qol: Shotgun ammo boxes now behave like other ammo boxes in the Requisitions' + vendors. + - code_imp: Ammo box maping code now handles pre-populated boxes in vendors, letting + devs order them more neatly than before. + Zonespace27: + - bugfix: Fixed a rare case of people on shuttles being inexplicably deleted. + blackdragonTOW: + - code_imp: log the map name at round start + coldironwarrior: + - rscadd: adds olive green and grey scrubs + - spellcheck: cleaned up scrub descriptions + wshuwshuwshi: + - rscadd: Adds the Encephalophrasive property for chemicals + - rscdel: Removed bit of description that falsely said that higher potency affected + clarity of messages + - bugfix: Removes focusing from the combination to prevent conflict between focusing + and nerve-stimulating, thus preventing encephalophrasive from forming + - bugfix: Revises the second overdose to be for critical overdoses, as it was intended + to be + - code_imp: Swaps 'M' variables for 'chem_host' + - code_imp: rehauled how ability 'giving' is handled, and is now only processed + upon initial ingestion of the chemical instead of every tick + - rscadd: Adds a brief piece of flavor text upon initial ingestion. + zzzmike: + - bugfix: converts flash, flashbang to TG effect system, fixing issue(s) +2024-07-09: + AndroBetel: + - qol: Made splint breaking message bigger + Steelpoint: + - mapadd: The USS Kurtz has been added as a USCM affiliated ERT station. The design + off the USS Kurtz is based off of the USS Sulaco, from older versions of CM-SS13. + The USS Kurtz features the entire lower-deck and a snapshot of the upper deck. + - mapadd: The USCM CBRN ERT will use the USS Kurtz as their homebase. + kirieee: + - rscadd: Covert contractors added to the ERT pool +2024-07-10: + Steelpoint: + - rscadd: Marine force reconnaissance gear presets have been added for admin use. + - rscadd: ERT force reconnaissance have functional squad settings, including a squad + colour (green) and a radio channel. These settings do not apply for survivor + force reconnaissance marines. + - rscadd: A marine force reconnaissance distress signal has been added. Spawning + either a 6-man squad, or a 30-man platoon. These are currently for admin use + only. + - rscadd: A set of customized M3-R armour has been added for force reconnaissance + marines. It has comparable defensive values to M3 armour but has the speed slowdown + of M3-L armour. Only ERT force reconnaissance marines will spawn with this. + hislittlecuzingames: + - rscadd: Multiple tools, and welding visor to SO Locker + - qol: Adds free bayonet to Staff Officer Locker +2024-07-11: + Blundir: + - rscadd: jtac and Intel kits to ASRS store + - rscadd: Intel kit to IO points vendor + - balance: intel kit now has large doc pouch instead of small + - balance: jtac kit now has radiopack + Diegoflores31: + - imageadd: changes xeno intent icon for a cooler one. + Doubleumc: + - imageadd: adds CMP tracker sprites for all HUD options + Drathek: + - maptweak: Removed var edits from open turfs to fix ScrapeAway resetting the turf + (e.g. xenos building resin walls) on basically all maps + - maptweak: Fixed bad dir var edits on various map + - maptweak: Fixed stacked structures on various maps + Git-Nivrak: + - balance: Hivelords now have meson vision + - rscadd: Added a toggle for meson vision for hivelord and burrower + Steelpoint: + - rscadd: VAISO Covert Operatives will now spawn with a Night Vision Optic in their + helmet. + Unknownity: + - bugfix: Burrowers now see themselves as partly transparent when burrowed. + blackdragonTOW: + - soundadd: Power Loader sounds have been normalized to -6db + iloveloopers: + - bugfix: Demolitions scanner now properly works for incinerator tanks. + - spellcheck: Fixed some capitalization with custom incinerator tanks. +2024-07-12: + Kivts: + - ui: The Company spent some money to upgrade the chemical simulator to work on + the TGUI, Including a few prepaid features. diff --git a/icons/effects/Targeted.dmi b/icons/effects/Targeted.dmi index fce948574a3d..24b82a90fe6c 100644 Binary files a/icons/effects/Targeted.dmi and b/icons/effects/Targeted.dmi differ diff --git a/icons/effects/fire.dmi b/icons/effects/fire.dmi index 673f1c48de1f..a36e22b9c871 100644 Binary files a/icons/effects/fire.dmi and b/icons/effects/fire.dmi differ diff --git a/icons/effects/spacevines.dmi b/icons/effects/spacevines.dmi index 5f6f19fdd916..bcd121055bf5 100644 Binary files a/icons/effects/spacevines.dmi and b/icons/effects/spacevines.dmi differ diff --git a/icons/effects/warning_stripes.dmi b/icons/effects/warning_stripes.dmi index c962ef88bfeb..f4eae17e3748 100644 Binary files a/icons/effects/warning_stripes.dmi and b/icons/effects/warning_stripes.dmi differ diff --git a/icons/flags.dmi b/icons/flags.dmi index a192d17ff10b..673a3ee7a5dd 100644 Binary files a/icons/flags.dmi and b/icons/flags.dmi differ diff --git a/icons/misc/tutorial.dmi b/icons/misc/tutorial.dmi new file mode 100644 index 000000000000..aee42db11bd7 Binary files /dev/null and b/icons/misc/tutorial.dmi differ diff --git a/icons/mob/hud/actions.dmi b/icons/mob/hud/actions.dmi index 9021db895eb7..3c3e6dd9de3d 100644 Binary files a/icons/mob/hud/actions.dmi and b/icons/mob/hud/actions.dmi differ diff --git a/icons/mob/hud/actions_xeno.dmi b/icons/mob/hud/actions_xeno.dmi index 6a48235a4f3b..c829821730c2 100644 Binary files a/icons/mob/hud/actions_xeno.dmi and b/icons/mob/hud/actions_xeno.dmi differ diff --git a/icons/mob/hud/actions_yautja.dmi b/icons/mob/hud/actions_yautja.dmi new file mode 100644 index 000000000000..c94388456e96 Binary files /dev/null and b/icons/mob/hud/actions_yautja.dmi differ diff --git a/icons/mob/hud/alien_standard.dmi b/icons/mob/hud/alien_standard.dmi index 8bad0b44acc9..0f3902ebf27d 100644 Binary files a/icons/mob/hud/alien_standard.dmi and b/icons/mob/hud/alien_standard.dmi differ diff --git a/icons/mob/hud/hud.dmi b/icons/mob/hud/hud.dmi index c9e4c0c6c23d..8d89fb781264 100644 Binary files a/icons/mob/hud/hud.dmi and b/icons/mob/hud/hud.dmi differ diff --git a/icons/mob/hud/human_bronze.dmi b/icons/mob/hud/human_bronze.dmi index 11a724057245..7548f66b05b6 100644 Binary files a/icons/mob/hud/human_bronze.dmi and b/icons/mob/hud/human_bronze.dmi differ diff --git a/icons/mob/hud/human_dark.dmi b/icons/mob/hud/human_dark.dmi index e572dcb8353b..5b75acf1b360 100644 Binary files a/icons/mob/hud/human_dark.dmi and b/icons/mob/hud/human_dark.dmi differ diff --git a/icons/mob/hud/human_glass.dmi b/icons/mob/hud/human_glass.dmi index 19fb430d8492..b3d8f56ce4e6 100644 Binary files a/icons/mob/hud/human_glass.dmi and b/icons/mob/hud/human_glass.dmi differ diff --git a/icons/mob/hud/human_green.dmi b/icons/mob/hud/human_green.dmi index 9b235a75d870..a07e7a327154 100644 Binary files a/icons/mob/hud/human_green.dmi and b/icons/mob/hud/human_green.dmi differ diff --git a/icons/mob/hud/human_grey.dmi b/icons/mob/hud/human_grey.dmi index 5a522dc30564..6c5c2f326500 100644 Binary files a/icons/mob/hud/human_grey.dmi and b/icons/mob/hud/human_grey.dmi differ diff --git a/icons/mob/hud/human_holo.dmi b/icons/mob/hud/human_holo.dmi index 1554480bd37d..568e364314e9 100644 Binary files a/icons/mob/hud/human_holo.dmi and b/icons/mob/hud/human_holo.dmi differ diff --git a/icons/mob/hud/human_midnight.dmi b/icons/mob/hud/human_midnight.dmi index c6fc989fec2d..78a0b105610e 100644 Binary files a/icons/mob/hud/human_midnight.dmi and b/icons/mob/hud/human_midnight.dmi differ diff --git a/icons/mob/hud/human_old.dmi b/icons/mob/hud/human_old.dmi index e8b682c7c831..66e3f846615b 100644 Binary files a/icons/mob/hud/human_old.dmi and b/icons/mob/hud/human_old.dmi differ diff --git a/icons/mob/hud/human_orange.dmi b/icons/mob/hud/human_orange.dmi index 8a46dad89ed5..4ab6f7558cbd 100644 Binary files a/icons/mob/hud/human_orange.dmi and b/icons/mob/hud/human_orange.dmi differ diff --git a/icons/mob/hud/human_red.dmi b/icons/mob/hud/human_red.dmi index 06725e04a683..17de42f5a17c 100644 Binary files a/icons/mob/hud/human_red.dmi and b/icons/mob/hud/human_red.dmi differ diff --git a/icons/mob/hud/human_white.dmi b/icons/mob/hud/human_white.dmi index be8ad63426ac..7b6429e0ed04 100644 Binary files a/icons/mob/hud/human_white.dmi and b/icons/mob/hud/human_white.dmi differ diff --git a/icons/mob/hud/marine_hud.dmi b/icons/mob/hud/marine_hud.dmi index 5de7b83a9309..def6cdd56a0e 100644 Binary files a/icons/mob/hud/marine_hud.dmi and b/icons/mob/hud/marine_hud.dmi differ diff --git a/icons/mob/hud/sec_hud.dmi b/icons/mob/hud/sec_hud.dmi index 9cc3e66c3e0b..f0fb3b318d0a 100644 Binary files a/icons/mob/hud/sec_hud.dmi and b/icons/mob/hud/sec_hud.dmi differ diff --git a/icons/mob/humans/human_hair.dmi b/icons/mob/humans/human_hair.dmi index 9634a2543aa4..1a91c7f0e43a 100644 Binary files a/icons/mob/humans/human_hair.dmi and b/icons/mob/humans/human_hair.dmi differ diff --git a/icons/mob/humans/onmob/back.dmi b/icons/mob/humans/onmob/back.dmi index 8fc07bc410fb..128b05455d6e 100644 Binary files a/icons/mob/humans/onmob/back.dmi and b/icons/mob/humans/onmob/back.dmi differ diff --git a/icons/mob/humans/onmob/belt.dmi b/icons/mob/humans/onmob/belt.dmi index 8a10910930dd..453f2e9e2b2d 100644 Binary files a/icons/mob/humans/onmob/belt.dmi and b/icons/mob/humans/onmob/belt.dmi differ diff --git a/icons/mob/humans/onmob/contained/war_correspondent.dmi b/icons/mob/humans/onmob/contained/war_correspondent.dmi deleted file mode 100644 index 38bef4845cb3..000000000000 Binary files a/icons/mob/humans/onmob/contained/war_correspondent.dmi and /dev/null differ diff --git a/icons/mob/humans/onmob/feet.dmi b/icons/mob/humans/onmob/feet.dmi index 17b4073c748c..fdf6a4a40e80 100644 Binary files a/icons/mob/humans/onmob/feet.dmi and b/icons/mob/humans/onmob/feet.dmi differ diff --git a/icons/mob/humans/onmob/hands.dmi b/icons/mob/humans/onmob/hands.dmi index d8fc38fff824..923a417f4f89 100644 Binary files a/icons/mob/humans/onmob/hands.dmi and b/icons/mob/humans/onmob/hands.dmi differ diff --git a/icons/mob/humans/onmob/head_0.dmi b/icons/mob/humans/onmob/head_0.dmi index 51cad85586e7..9fc0bc82c123 100644 Binary files a/icons/mob/humans/onmob/head_0.dmi and b/icons/mob/humans/onmob/head_0.dmi differ diff --git a/icons/mob/humans/onmob/head_1.dmi b/icons/mob/humans/onmob/head_1.dmi index df30d657122b..951c7e89f985 100644 Binary files a/icons/mob/humans/onmob/head_1.dmi and b/icons/mob/humans/onmob/head_1.dmi differ diff --git a/icons/mob/humans/onmob/helmet_garb.dmi b/icons/mob/humans/onmob/helmet_garb.dmi index d8b49e8f4516..9876dd8629ad 100644 Binary files a/icons/mob/humans/onmob/helmet_garb.dmi and b/icons/mob/humans/onmob/helmet_garb.dmi differ diff --git a/icons/mob/humans/onmob/items_lefthand_1.dmi b/icons/mob/humans/onmob/items_lefthand_1.dmi index b67106a1f831..cb80cb6cc10c 100644 Binary files a/icons/mob/humans/onmob/items_lefthand_1.dmi and b/icons/mob/humans/onmob/items_lefthand_1.dmi differ diff --git a/icons/mob/humans/onmob/items_righthand_1.dmi b/icons/mob/humans/onmob/items_righthand_1.dmi index 7bcc772c7375..7bad7eb2c583 100644 Binary files a/icons/mob/humans/onmob/items_righthand_1.dmi and b/icons/mob/humans/onmob/items_righthand_1.dmi differ diff --git a/icons/mob/humans/onmob/suit_0.dmi b/icons/mob/humans/onmob/suit_0.dmi index d0f816e2b7fa..737b59f6c4af 100644 Binary files a/icons/mob/humans/onmob/suit_0.dmi and b/icons/mob/humans/onmob/suit_0.dmi differ diff --git a/icons/mob/humans/onmob/suit_1.dmi b/icons/mob/humans/onmob/suit_1.dmi index 636bbf8b9df0..c372b8a6d72c 100644 Binary files a/icons/mob/humans/onmob/suit_1.dmi and b/icons/mob/humans/onmob/suit_1.dmi differ diff --git a/icons/mob/humans/onmob/suit_slot.dmi b/icons/mob/humans/onmob/suit_slot.dmi index e83ce1301fa7..a9142060ab75 100644 Binary files a/icons/mob/humans/onmob/suit_slot.dmi and b/icons/mob/humans/onmob/suit_slot.dmi differ diff --git a/icons/mob/humans/onmob/ties.dmi b/icons/mob/humans/onmob/ties.dmi index c8fb98c0c5c1..ac563deffbac 100644 Binary files a/icons/mob/humans/onmob/ties.dmi and b/icons/mob/humans/onmob/ties.dmi differ diff --git a/icons/mob/humans/onmob/uniform_0.dmi b/icons/mob/humans/onmob/uniform_0.dmi index 40305b9413b0..2dd645697684 100644 Binary files a/icons/mob/humans/onmob/uniform_0.dmi and b/icons/mob/humans/onmob/uniform_0.dmi differ diff --git a/icons/mob/humans/onmob/uniform_1.dmi b/icons/mob/humans/onmob/uniform_1.dmi index ae84c1a1b9eb..89500b39a596 100644 Binary files a/icons/mob/humans/onmob/uniform_1.dmi and b/icons/mob/humans/onmob/uniform_1.dmi differ diff --git a/icons/mob/humans/species/r_human.dmi b/icons/mob/humans/species/r_human.dmi index 3e8f63d9f312..4ab300efe5dc 100644 Binary files a/icons/mob/humans/species/r_human.dmi and b/icons/mob/humans/species/r_human.dmi differ diff --git a/icons/mob/humans/species/r_predator.dmi b/icons/mob/humans/species/r_predator.dmi index e8fe1c1170f2..192f7d698b86 100644 Binary files a/icons/mob/humans/species/r_predator.dmi and b/icons/mob/humans/species/r_predator.dmi differ diff --git a/icons/mob/humans/undershirt.dmi b/icons/mob/humans/undershirt.dmi index 225d413ae0f4..468778851c4c 100644 Binary files a/icons/mob/humans/undershirt.dmi and b/icons/mob/humans/undershirt.dmi differ diff --git a/icons/mob/humans/underwear.dmi b/icons/mob/humans/underwear.dmi index b639d0a61535..3276ca12aeb8 100644 Binary files a/icons/mob/humans/underwear.dmi and b/icons/mob/humans/underwear.dmi differ diff --git a/icons/mob/mob.dmi b/icons/mob/mob.dmi index 179d7076f8c1..f3485de9aa9a 100644 Binary files a/icons/mob/mob.dmi and b/icons/mob/mob.dmi differ diff --git a/icons/mob/screen_alert.dmi b/icons/mob/screen_alert.dmi index af61a47aa885..21cc40876fbc 100644 Binary files a/icons/mob/screen_alert.dmi and b/icons/mob/screen_alert.dmi differ diff --git a/icons/mob/xenonids/facehugger.dmi b/icons/mob/xenonids/facehugger.dmi index 97c4af179626..cd688d441d64 100644 Binary files a/icons/mob/xenonids/facehugger.dmi and b/icons/mob/xenonids/facehugger.dmi differ diff --git a/icons/mob/xenos/boiler.dmi b/icons/mob/xenos/boiler.dmi index 94d45c459e03..4edcf556eb11 100644 Binary files a/icons/mob/xenos/boiler.dmi and b/icons/mob/xenos/boiler.dmi differ diff --git a/icons/mob/xenos/burrower.dmi b/icons/mob/xenos/burrower.dmi index f546776e6b27..c54684e61bc9 100644 Binary files a/icons/mob/xenos/burrower.dmi and b/icons/mob/xenos/burrower.dmi differ diff --git a/icons/mob/xenos/crusher.dmi b/icons/mob/xenos/crusher.dmi index 014246dbee66..a198cc1d5cd9 100644 Binary files a/icons/mob/xenos/crusher.dmi and b/icons/mob/xenos/crusher.dmi differ diff --git a/icons/mob/xenos/drone.dmi b/icons/mob/xenos/drone.dmi index 937ddaa7b96a..a918d6fb95ab 100644 Binary files a/icons/mob/xenos/drone.dmi and b/icons/mob/xenos/drone.dmi differ diff --git a/icons/mob/xenos/effects.dmi b/icons/mob/xenos/effects.dmi index 80cc35fde5ba..132c5f78b0d7 100644 Binary files a/icons/mob/xenos/effects.dmi and b/icons/mob/xenos/effects.dmi differ diff --git a/icons/mob/xenos/facehugger.dmi b/icons/mob/xenos/facehugger.dmi index 2d8665899331..d44903adf941 100644 Binary files a/icons/mob/xenos/facehugger.dmi and b/icons/mob/xenos/facehugger.dmi differ diff --git a/icons/mob/xenos/larva.dmi b/icons/mob/xenos/larva.dmi index d07dad82ed29..72cfb7b4e318 100644 Binary files a/icons/mob/xenos/larva.dmi and b/icons/mob/xenos/larva.dmi differ diff --git a/icons/mob/xenos/predalien.dmi b/icons/mob/xenos/predalien.dmi index 1e3ec5caf806..c6162729b516 100644 Binary files a/icons/mob/xenos/predalien.dmi and b/icons/mob/xenos/predalien.dmi differ diff --git a/icons/mob/xenos/predalien_larva.dmi b/icons/mob/xenos/predalien_larva.dmi index 82786f273980..41eb31a2c809 100644 Binary files a/icons/mob/xenos/predalien_larva.dmi and b/icons/mob/xenos/predalien_larva.dmi differ diff --git a/icons/mob/xenos/warrior.dmi b/icons/mob/xenos/warrior.dmi index 1211da5ac188..21752fc94e79 100644 Binary files a/icons/mob/xenos/warrior.dmi and b/icons/mob/xenos/warrior.dmi differ diff --git a/icons/mob/xenos/weeds.dmi b/icons/mob/xenos/weeds.dmi index 0b9403058109..0b79525544bd 100644 Binary files a/icons/mob/xenos/weeds.dmi and b/icons/mob/xenos/weeds.dmi differ diff --git a/icons/mob/xenos/weeds_48x48.dmi b/icons/mob/xenos/weeds_48x48.dmi new file mode 100644 index 000000000000..198340955eba Binary files /dev/null and b/icons/mob/xenos/weeds_48x48.dmi differ diff --git a/icons/mob/xenos/weeds_64x64.dmi b/icons/mob/xenos/weeds_64x64.dmi new file mode 100644 index 000000000000..895338f542f9 Binary files /dev/null and b/icons/mob/xenos/weeds_64x64.dmi differ diff --git a/icons/mob/xenos/wounds.dmi b/icons/mob/xenos/wounds.dmi index bf7d573b73a9..1b8ca0cebdd5 100644 Binary files a/icons/mob/xenos/wounds.dmi and b/icons/mob/xenos/wounds.dmi differ diff --git a/icons/obj/items/assemblies.dmi b/icons/obj/items/assemblies.dmi index 522e0fb5e55d..eb36d5696741 100644 Binary files a/icons/obj/items/assemblies.dmi and b/icons/obj/items/assemblies.dmi differ diff --git a/icons/obj/items/chemistry.dmi b/icons/obj/items/chemistry.dmi index 1eaef75bb6fb..e540af809714 100644 Binary files a/icons/obj/items/chemistry.dmi and b/icons/obj/items/chemistry.dmi differ diff --git a/icons/obj/items/cigarettes.dmi b/icons/obj/items/cigarettes.dmi index db313199afb2..89b3ca2195fa 100644 Binary files a/icons/obj/items/cigarettes.dmi and b/icons/obj/items/cigarettes.dmi differ diff --git a/icons/obj/items/clothing/backpacks.dmi b/icons/obj/items/clothing/backpacks.dmi index 4119b32a09cf..99240596a9da 100644 Binary files a/icons/obj/items/clothing/backpacks.dmi and b/icons/obj/items/clothing/backpacks.dmi differ diff --git a/icons/obj/items/clothing/belts.dmi b/icons/obj/items/clothing/belts.dmi index 38ff421cfda5..ecbc5fb84969 100644 Binary files a/icons/obj/items/clothing/belts.dmi and b/icons/obj/items/clothing/belts.dmi differ diff --git a/icons/obj/items/clothing/cm_hats.dmi b/icons/obj/items/clothing/cm_hats.dmi index ae446e174575..469d7cb7616a 100644 Binary files a/icons/obj/items/clothing/cm_hats.dmi and b/icons/obj/items/clothing/cm_hats.dmi differ diff --git a/icons/obj/items/clothing/cm_suits.dmi b/icons/obj/items/clothing/cm_suits.dmi index 162d66a2f085..c1910d21b599 100644 Binary files a/icons/obj/items/clothing/cm_suits.dmi and b/icons/obj/items/clothing/cm_suits.dmi differ diff --git a/icons/obj/items/clothing/donor/HEAD.dmi b/icons/obj/items/clothing/donor/HEAD.dmi index d7345e41d94b..3116bdef26b6 100644 Binary files a/icons/obj/items/clothing/donor/HEAD.dmi and b/icons/obj/items/clothing/donor/HEAD.dmi differ diff --git a/icons/obj/items/clothing/donor/SUITS.dmi b/icons/obj/items/clothing/donor/SUITS.dmi index 51c41b837c9a..fc0c9987b9d4 100644 Binary files a/icons/obj/items/clothing/donor/SUITS.dmi and b/icons/obj/items/clothing/donor/SUITS.dmi differ diff --git a/icons/obj/items/clothing/gloves.dmi b/icons/obj/items/clothing/gloves.dmi index f1fe9b303046..b290778d2d28 100644 Binary files a/icons/obj/items/clothing/gloves.dmi and b/icons/obj/items/clothing/gloves.dmi differ diff --git a/icons/obj/items/clothing/hats.dmi b/icons/obj/items/clothing/hats.dmi index a6a0e6fb9099..3e2a1dcfc243 100644 Binary files a/icons/obj/items/clothing/hats.dmi and b/icons/obj/items/clothing/hats.dmi differ diff --git a/icons/obj/items/clothing/pouches.dmi b/icons/obj/items/clothing/pouches.dmi index 6a7af0d3e049..4c7ba6d4d856 100644 Binary files a/icons/obj/items/clothing/pouches.dmi and b/icons/obj/items/clothing/pouches.dmi differ diff --git a/icons/obj/items/clothing/shoes.dmi b/icons/obj/items/clothing/shoes.dmi index 4d99b2ea4b2c..c4e01786e579 100644 Binary files a/icons/obj/items/clothing/shoes.dmi and b/icons/obj/items/clothing/shoes.dmi differ diff --git a/icons/obj/items/clothing/suits.dmi b/icons/obj/items/clothing/suits.dmi index 10fbfff30d7c..41e6be7e89b9 100644 Binary files a/icons/obj/items/clothing/suits.dmi and b/icons/obj/items/clothing/suits.dmi differ diff --git a/icons/obj/items/clothing/ties.dmi b/icons/obj/items/clothing/ties.dmi index f236480c7b9d..63c7010db55a 100644 Binary files a/icons/obj/items/clothing/ties.dmi and b/icons/obj/items/clothing/ties.dmi differ diff --git a/icons/obj/items/clothing/uniforms.dmi b/icons/obj/items/clothing/uniforms.dmi index f05eb3671f91..e444d7a5a40a 100644 Binary files a/icons/obj/items/clothing/uniforms.dmi and b/icons/obj/items/clothing/uniforms.dmi differ diff --git a/icons/obj/items/drinks.dmi b/icons/obj/items/drinks.dmi index 2823407a429c..1203f3d18edd 100644 Binary files a/icons/obj/items/drinks.dmi and b/icons/obj/items/drinks.dmi differ diff --git a/icons/obj/items/food.dmi b/icons/obj/items/food.dmi index 54de858ffc9c..12093cd2c45b 100644 Binary files a/icons/obj/items/food.dmi and b/icons/obj/items/food.dmi differ diff --git a/icons/obj/items/items.dmi b/icons/obj/items/items.dmi index 52b53208e226..81a0e526f1b7 100644 Binary files a/icons/obj/items/items.dmi and b/icons/obj/items/items.dmi differ diff --git a/icons/obj/items/organs.dmi b/icons/obj/items/organs.dmi index 06bf5e302f45..0cbe238f7522 100644 Binary files a/icons/obj/items/organs.dmi and b/icons/obj/items/organs.dmi differ diff --git a/icons/obj/items/paper.dmi b/icons/obj/items/paper.dmi index c39fede23679..b15d4be6076d 100644 Binary files a/icons/obj/items/paper.dmi and b/icons/obj/items/paper.dmi differ diff --git a/icons/obj/items/playing_cards.dmi b/icons/obj/items/playing_cards.dmi index 4db5c94cf063..61b521edddd8 100644 Binary files a/icons/obj/items/playing_cards.dmi and b/icons/obj/items/playing_cards.dmi differ diff --git a/icons/obj/items/reagentfillings.dmi b/icons/obj/items/reagentfillings.dmi index 1514db495e13..4bfd2752482b 100644 Binary files a/icons/obj/items/reagentfillings.dmi and b/icons/obj/items/reagentfillings.dmi differ diff --git a/icons/obj/items/storage.dmi b/icons/obj/items/storage.dmi index 6edbf5b6c7d3..44dfac1c246e 100644 Binary files a/icons/obj/items/storage.dmi and b/icons/obj/items/storage.dmi differ diff --git a/icons/obj/items/surgery_tools.dmi b/icons/obj/items/surgery_tools.dmi index 89c9ebf62869..c5e30c0c8c2f 100644 Binary files a/icons/obj/items/surgery_tools.dmi and b/icons/obj/items/surgery_tools.dmi differ diff --git a/icons/obj/items/weapons/guns/ammo_boxes/boxes_and_lids.dmi b/icons/obj/items/weapons/guns/ammo_boxes/boxes_and_lids.dmi index 42e7c54bbd2b..f01be20a48b4 100644 Binary files a/icons/obj/items/weapons/guns/ammo_boxes/boxes_and_lids.dmi and b/icons/obj/items/weapons/guns/ammo_boxes/boxes_and_lids.dmi differ diff --git a/icons/obj/items/weapons/guns/ammo_boxes/handfuls.dmi b/icons/obj/items/weapons/guns/ammo_boxes/handfuls.dmi index eeef3f91412d..b1b181c182eb 100644 Binary files a/icons/obj/items/weapons/guns/ammo_boxes/handfuls.dmi and b/icons/obj/items/weapons/guns/ammo_boxes/handfuls.dmi differ diff --git a/icons/obj/items/weapons/guns/ammo_boxes/magazines.dmi b/icons/obj/items/weapons/guns/ammo_boxes/magazines.dmi index ff0c6d60d4ac..90c0f341dd88 100644 Binary files a/icons/obj/items/weapons/guns/ammo_boxes/magazines.dmi and b/icons/obj/items/weapons/guns/ammo_boxes/magazines.dmi differ diff --git a/icons/obj/items/weapons/guns/ammo_boxes/text.dmi b/icons/obj/items/weapons/guns/ammo_boxes/text.dmi index 911b727ba5f6..124c40c1afea 100644 Binary files a/icons/obj/items/weapons/guns/ammo_boxes/text.dmi and b/icons/obj/items/weapons/guns/ammo_boxes/text.dmi differ diff --git a/icons/obj/items/weapons/guns/ammo_by_faction/upp.dmi b/icons/obj/items/weapons/guns/ammo_by_faction/upp.dmi index 5632ca31481e..7327bf6a611b 100644 Binary files a/icons/obj/items/weapons/guns/ammo_by_faction/upp.dmi and b/icons/obj/items/weapons/guns/ammo_by_faction/upp.dmi differ diff --git a/icons/obj/items/weapons/guns/ammo_by_faction/uscm.dmi b/icons/obj/items/weapons/guns/ammo_by_faction/uscm.dmi index f6bddae9b090..8b3b5e0f1c80 100644 Binary files a/icons/obj/items/weapons/guns/ammo_by_faction/uscm.dmi and b/icons/obj/items/weapons/guns/ammo_by_faction/uscm.dmi differ diff --git a/icons/obj/items/weapons/guns/ammo_by_faction/wy.dmi b/icons/obj/items/weapons/guns/ammo_by_faction/wy.dmi index 11eab502b0cf..6a8bbca97e4f 100644 Binary files a/icons/obj/items/weapons/guns/ammo_by_faction/wy.dmi and b/icons/obj/items/weapons/guns/ammo_by_faction/wy.dmi differ diff --git a/icons/obj/items/weapons/guns/attachments/stock.dmi b/icons/obj/items/weapons/guns/attachments/stock.dmi index d3a95284a23f..0867f60d6430 100644 Binary files a/icons/obj/items/weapons/guns/attachments/stock.dmi and b/icons/obj/items/weapons/guns/attachments/stock.dmi differ diff --git a/icons/obj/items/weapons/guns/guns_by_faction/colony.dmi b/icons/obj/items/weapons/guns/guns_by_faction/colony.dmi index caa62ef55605..17e7e6f221ae 100644 Binary files a/icons/obj/items/weapons/guns/guns_by_faction/colony.dmi and b/icons/obj/items/weapons/guns/guns_by_faction/colony.dmi differ diff --git a/icons/obj/items/weapons/guns/guns_by_faction/uscm.dmi b/icons/obj/items/weapons/guns/guns_by_faction/uscm.dmi index a7586a656965..1f0b98967a25 100644 Binary files a/icons/obj/items/weapons/guns/guns_by_faction/uscm.dmi and b/icons/obj/items/weapons/guns/guns_by_faction/uscm.dmi differ diff --git a/icons/obj/items/weapons/guns/guns_by_map/classic/back.dmi b/icons/obj/items/weapons/guns/guns_by_map/classic/back.dmi index 63b197dd36c4..fb21be90f8a7 100644 Binary files a/icons/obj/items/weapons/guns/guns_by_map/classic/back.dmi and b/icons/obj/items/weapons/guns/guns_by_map/classic/back.dmi differ diff --git a/icons/obj/items/weapons/guns/guns_by_map/classic/guns_lefthand.dmi b/icons/obj/items/weapons/guns/guns_by_map/classic/guns_lefthand.dmi index 22eae6bd0ba4..df823405fac3 100644 Binary files a/icons/obj/items/weapons/guns/guns_by_map/classic/guns_lefthand.dmi and b/icons/obj/items/weapons/guns/guns_by_map/classic/guns_lefthand.dmi differ diff --git a/icons/obj/items/weapons/guns/guns_by_map/classic/guns_obj.dmi b/icons/obj/items/weapons/guns/guns_by_map/classic/guns_obj.dmi index b9aa8907a806..4a31d29042d4 100644 Binary files a/icons/obj/items/weapons/guns/guns_by_map/classic/guns_obj.dmi and b/icons/obj/items/weapons/guns/guns_by_map/classic/guns_obj.dmi differ diff --git a/icons/obj/items/weapons/guns/guns_by_map/classic/guns_righthand.dmi b/icons/obj/items/weapons/guns/guns_by_map/classic/guns_righthand.dmi index dd432a1fa2c1..21d7b04f6f05 100644 Binary files a/icons/obj/items/weapons/guns/guns_by_map/classic/guns_righthand.dmi and b/icons/obj/items/weapons/guns/guns_by_map/classic/guns_righthand.dmi differ diff --git a/icons/obj/items/weapons/guns/guns_by_map/classic/suit_slot.dmi b/icons/obj/items/weapons/guns/guns_by_map/classic/suit_slot.dmi index 1306cbb7d8f6..0d3b1f715571 100644 Binary files a/icons/obj/items/weapons/guns/guns_by_map/classic/suit_slot.dmi and b/icons/obj/items/weapons/guns/guns_by_map/classic/suit_slot.dmi differ diff --git a/icons/obj/items/weapons/guns/guns_by_map/desert/back.dmi b/icons/obj/items/weapons/guns/guns_by_map/desert/back.dmi index 63771f7ff133..9e5e8d4c9c59 100644 Binary files a/icons/obj/items/weapons/guns/guns_by_map/desert/back.dmi and b/icons/obj/items/weapons/guns/guns_by_map/desert/back.dmi differ diff --git a/icons/obj/items/weapons/guns/guns_by_map/desert/guns_lefthand.dmi b/icons/obj/items/weapons/guns/guns_by_map/desert/guns_lefthand.dmi index 6530e1d6967d..02021756a805 100644 Binary files a/icons/obj/items/weapons/guns/guns_by_map/desert/guns_lefthand.dmi and b/icons/obj/items/weapons/guns/guns_by_map/desert/guns_lefthand.dmi differ diff --git a/icons/obj/items/weapons/guns/guns_by_map/desert/guns_obj.dmi b/icons/obj/items/weapons/guns/guns_by_map/desert/guns_obj.dmi index cae152f237ef..a91d071754ad 100644 Binary files a/icons/obj/items/weapons/guns/guns_by_map/desert/guns_obj.dmi and b/icons/obj/items/weapons/guns/guns_by_map/desert/guns_obj.dmi differ diff --git a/icons/obj/items/weapons/guns/guns_by_map/desert/guns_righthand.dmi b/icons/obj/items/weapons/guns/guns_by_map/desert/guns_righthand.dmi index 9df4a0d86ccc..e408fff750da 100644 Binary files a/icons/obj/items/weapons/guns/guns_by_map/desert/guns_righthand.dmi and b/icons/obj/items/weapons/guns/guns_by_map/desert/guns_righthand.dmi differ diff --git a/icons/obj/items/weapons/guns/guns_by_map/desert/suit_slot.dmi b/icons/obj/items/weapons/guns/guns_by_map/desert/suit_slot.dmi index 2f5324fdb46b..764a51e8b390 100644 Binary files a/icons/obj/items/weapons/guns/guns_by_map/desert/suit_slot.dmi and b/icons/obj/items/weapons/guns/guns_by_map/desert/suit_slot.dmi differ diff --git a/icons/obj/items/weapons/guns/guns_by_map/jungle/back.dmi b/icons/obj/items/weapons/guns/guns_by_map/jungle/back.dmi index 04718caddcd1..5cc73c3e9ec5 100644 Binary files a/icons/obj/items/weapons/guns/guns_by_map/jungle/back.dmi and b/icons/obj/items/weapons/guns/guns_by_map/jungle/back.dmi differ diff --git a/icons/obj/items/weapons/guns/guns_by_map/jungle/guns_lefthand.dmi b/icons/obj/items/weapons/guns/guns_by_map/jungle/guns_lefthand.dmi index 717a1182824e..25f8b823289c 100644 Binary files a/icons/obj/items/weapons/guns/guns_by_map/jungle/guns_lefthand.dmi and b/icons/obj/items/weapons/guns/guns_by_map/jungle/guns_lefthand.dmi differ diff --git a/icons/obj/items/weapons/guns/guns_by_map/jungle/guns_obj.dmi b/icons/obj/items/weapons/guns/guns_by_map/jungle/guns_obj.dmi index 9ce7e553ba45..c5b3b3f3fe73 100644 Binary files a/icons/obj/items/weapons/guns/guns_by_map/jungle/guns_obj.dmi and b/icons/obj/items/weapons/guns/guns_by_map/jungle/guns_obj.dmi differ diff --git a/icons/obj/items/weapons/guns/guns_by_map/jungle/guns_righthand.dmi b/icons/obj/items/weapons/guns/guns_by_map/jungle/guns_righthand.dmi index 9f69b4ac6815..9c2562d5a921 100644 Binary files a/icons/obj/items/weapons/guns/guns_by_map/jungle/guns_righthand.dmi and b/icons/obj/items/weapons/guns/guns_by_map/jungle/guns_righthand.dmi differ diff --git a/icons/obj/items/weapons/guns/guns_by_map/jungle/suit_slot.dmi b/icons/obj/items/weapons/guns/guns_by_map/jungle/suit_slot.dmi index b51ed6044347..0aa7f686a749 100644 Binary files a/icons/obj/items/weapons/guns/guns_by_map/jungle/suit_slot.dmi and b/icons/obj/items/weapons/guns/guns_by_map/jungle/suit_slot.dmi differ diff --git a/icons/obj/items/weapons/guns/guns_by_map/snow/back.dmi b/icons/obj/items/weapons/guns/guns_by_map/snow/back.dmi index b72963ff7917..8ad5352cc440 100644 Binary files a/icons/obj/items/weapons/guns/guns_by_map/snow/back.dmi and b/icons/obj/items/weapons/guns/guns_by_map/snow/back.dmi differ diff --git a/icons/obj/items/weapons/guns/guns_by_map/snow/guns_lefthand.dmi b/icons/obj/items/weapons/guns/guns_by_map/snow/guns_lefthand.dmi index 2c8dedb6cf35..a837e7061417 100644 Binary files a/icons/obj/items/weapons/guns/guns_by_map/snow/guns_lefthand.dmi and b/icons/obj/items/weapons/guns/guns_by_map/snow/guns_lefthand.dmi differ diff --git a/icons/obj/items/weapons/guns/guns_by_map/snow/guns_obj.dmi b/icons/obj/items/weapons/guns/guns_by_map/snow/guns_obj.dmi index fbc98874a4f6..171d0d0eca03 100644 Binary files a/icons/obj/items/weapons/guns/guns_by_map/snow/guns_obj.dmi and b/icons/obj/items/weapons/guns/guns_by_map/snow/guns_obj.dmi differ diff --git a/icons/obj/items/weapons/guns/guns_by_map/snow/guns_righthand.dmi b/icons/obj/items/weapons/guns/guns_by_map/snow/guns_righthand.dmi index 6e7b9cb8c9b5..1de053b6f969 100644 Binary files a/icons/obj/items/weapons/guns/guns_by_map/snow/guns_righthand.dmi and b/icons/obj/items/weapons/guns/guns_by_map/snow/guns_righthand.dmi differ diff --git a/icons/obj/items/weapons/guns/guns_by_map/urban/back.dmi b/icons/obj/items/weapons/guns/guns_by_map/urban/back.dmi index e849b8134004..5996089a64d6 100644 Binary files a/icons/obj/items/weapons/guns/guns_by_map/urban/back.dmi and b/icons/obj/items/weapons/guns/guns_by_map/urban/back.dmi differ diff --git a/icons/obj/items/weapons/guns/guns_by_map/urban/guns_lefthand.dmi b/icons/obj/items/weapons/guns/guns_by_map/urban/guns_lefthand.dmi index c844b637ab7e..ea84f3e69e21 100644 Binary files a/icons/obj/items/weapons/guns/guns_by_map/urban/guns_lefthand.dmi and b/icons/obj/items/weapons/guns/guns_by_map/urban/guns_lefthand.dmi differ diff --git a/icons/obj/items/weapons/guns/guns_by_map/urban/guns_obj.dmi b/icons/obj/items/weapons/guns/guns_by_map/urban/guns_obj.dmi index 09029fb61f2b..78e322e3db8b 100644 Binary files a/icons/obj/items/weapons/guns/guns_by_map/urban/guns_obj.dmi and b/icons/obj/items/weapons/guns/guns_by_map/urban/guns_obj.dmi differ diff --git a/icons/obj/items/weapons/guns/guns_by_map/urban/guns_righthand.dmi b/icons/obj/items/weapons/guns/guns_by_map/urban/guns_righthand.dmi index 78bebfdd4bd9..1b2c96fb9518 100644 Binary files a/icons/obj/items/weapons/guns/guns_by_map/urban/guns_righthand.dmi and b/icons/obj/items/weapons/guns/guns_by_map/urban/guns_righthand.dmi differ diff --git a/icons/obj/items/weapons/guns/guns_by_map/urban/suit_slot.dmi b/icons/obj/items/weapons/guns/guns_by_map/urban/suit_slot.dmi index 3fee1087811a..738add8e1df4 100644 Binary files a/icons/obj/items/weapons/guns/guns_by_map/urban/suit_slot.dmi and b/icons/obj/items/weapons/guns/guns_by_map/urban/suit_slot.dmi differ diff --git a/icons/obj/items/weapons/guns/handful.dmi b/icons/obj/items/weapons/guns/handful.dmi index bbea110531ea..e3fe380c9dfe 100644 Binary files a/icons/obj/items/weapons/guns/handful.dmi and b/icons/obj/items/weapons/guns/handful.dmi differ diff --git a/icons/obj/items/weapons/guns/lineart.dmi b/icons/obj/items/weapons/guns/lineart.dmi index 5d52fd658290..6ea81af6d088 100644 Binary files a/icons/obj/items/weapons/guns/lineart.dmi and b/icons/obj/items/weapons/guns/lineart.dmi differ diff --git a/icons/obj/items/weapons/guns/lineart_modes.dmi b/icons/obj/items/weapons/guns/lineart_modes.dmi new file mode 100644 index 000000000000..787fdd34f241 Binary files /dev/null and b/icons/obj/items/weapons/guns/lineart_modes.dmi differ diff --git a/icons/obj/janitor.dmi b/icons/obj/janitor.dmi index 3c18f1a60f4b..5989745e26eb 100644 Binary files a/icons/obj/janitor.dmi and b/icons/obj/janitor.dmi differ diff --git a/icons/obj/objects.dmi b/icons/obj/objects.dmi index b62860559b16..1dc934be2103 100644 Binary files a/icons/obj/objects.dmi and b/icons/obj/objects.dmi differ diff --git a/icons/obj/structures/closet.dmi b/icons/obj/structures/closet.dmi index 40d6b1d26deb..4377a48779cb 100644 Binary files a/icons/obj/structures/closet.dmi and b/icons/obj/structures/closet.dmi differ diff --git a/icons/obj/structures/crates.dmi b/icons/obj/structures/crates.dmi index a1a494d90da2..07ccce5f0abb 100644 Binary files a/icons/obj/structures/crates.dmi and b/icons/obj/structures/crates.dmi differ diff --git a/icons/obj/structures/doors/blastdoors_shutters.dmi b/icons/obj/structures/doors/blastdoors_shutters.dmi index c5ec97be49b8..1fe1df44b23a 100644 Binary files a/icons/obj/structures/doors/blastdoors_shutters.dmi and b/icons/obj/structures/doors/blastdoors_shutters.dmi differ diff --git a/icons/obj/structures/doors/dropship1_cargo.dmi b/icons/obj/structures/doors/dropship1_cargo.dmi index 699a3cc13b9f..be517592324f 100644 Binary files a/icons/obj/structures/doors/dropship1_cargo.dmi and b/icons/obj/structures/doors/dropship1_cargo.dmi differ diff --git a/icons/obj/structures/doors/dropship1_pilot.dmi b/icons/obj/structures/doors/dropship1_pilot.dmi index 776882a136e4..0ae55add9966 100644 Binary files a/icons/obj/structures/doors/dropship1_pilot.dmi and b/icons/obj/structures/doors/dropship1_pilot.dmi differ diff --git a/icons/obj/structures/doors/dropship1_side.dmi b/icons/obj/structures/doors/dropship1_side.dmi index 346811438914..7f3298d69975 100644 Binary files a/icons/obj/structures/doors/dropship1_side.dmi and b/icons/obj/structures/doors/dropship1_side.dmi differ diff --git a/icons/obj/structures/doors/dropship2_cargo.dmi b/icons/obj/structures/doors/dropship2_cargo.dmi index 4e2ebfe0e3d2..f6bd23184889 100644 Binary files a/icons/obj/structures/doors/dropship2_cargo.dmi and b/icons/obj/structures/doors/dropship2_cargo.dmi differ diff --git a/icons/obj/structures/doors/dropship2_pilot.dmi b/icons/obj/structures/doors/dropship2_pilot.dmi index 9a77adf39f70..226249be4d84 100644 Binary files a/icons/obj/structures/doors/dropship2_pilot.dmi and b/icons/obj/structures/doors/dropship2_pilot.dmi differ diff --git a/icons/obj/structures/doors/dropship2_side.dmi b/icons/obj/structures/doors/dropship2_side.dmi index 03c0492d7df9..8dfa437d6521 100644 Binary files a/icons/obj/structures/doors/dropship2_side.dmi and b/icons/obj/structures/doors/dropship2_side.dmi differ diff --git a/icons/obj/structures/machinery/airlock_machines.dmi b/icons/obj/structures/machinery/airlock_machines.dmi index 0c4643269cdf..30a5fecccda8 100644 Binary files a/icons/obj/structures/machinery/airlock_machines.dmi and b/icons/obj/structures/machinery/airlock_machines.dmi differ diff --git a/icons/obj/structures/machinery/atmos.dmi b/icons/obj/structures/machinery/atmos.dmi index 39440487ab39..651f2481039a 100644 Binary files a/icons/obj/structures/machinery/atmos.dmi and b/icons/obj/structures/machinery/atmos.dmi differ diff --git a/icons/obj/structures/machinery/big_floodlight.dmi b/icons/obj/structures/machinery/big_floodlight.dmi index b76f63956a2c..3e180d9a620e 100644 Binary files a/icons/obj/structures/machinery/big_floodlight.dmi and b/icons/obj/structures/machinery/big_floodlight.dmi differ diff --git a/icons/obj/structures/machinery/biogenerator.dmi b/icons/obj/structures/machinery/biogenerator.dmi index c65a9571b097..373b40e7d40d 100644 Binary files a/icons/obj/structures/machinery/biogenerator.dmi and b/icons/obj/structures/machinery/biogenerator.dmi differ diff --git a/icons/obj/structures/machinery/computer3.dmi b/icons/obj/structures/machinery/computer3.dmi index 047417f303f3..a00ec12ddfa3 100644 Binary files a/icons/obj/structures/machinery/computer3.dmi and b/icons/obj/structures/machinery/computer3.dmi differ diff --git a/icons/obj/structures/machinery/defenses/planted_flag.dmi b/icons/obj/structures/machinery/defenses/planted_flag.dmi index 40616eb0caca..5b9fbb6e6f22 100644 Binary files a/icons/obj/structures/machinery/defenses/planted_flag.dmi and b/icons/obj/structures/machinery/defenses/planted_flag.dmi differ diff --git a/icons/obj/structures/machinery/defenses/upp_defenses.dmi b/icons/obj/structures/machinery/defenses/upp_defenses.dmi new file mode 100644 index 000000000000..09313b374f36 Binary files /dev/null and b/icons/obj/structures/machinery/defenses/upp_defenses.dmi differ diff --git a/icons/obj/structures/machinery/defenses/wy_defenses.dmi b/icons/obj/structures/machinery/defenses/wy_defenses.dmi new file mode 100644 index 000000000000..a05da0cf7703 Binary files /dev/null and b/icons/obj/structures/machinery/defenses/wy_defenses.dmi differ diff --git a/icons/obj/structures/machinery/defenses/wy_heavy.dmi b/icons/obj/structures/machinery/defenses/wy_heavy.dmi new file mode 100644 index 000000000000..a6a7fbf49c8e Binary files /dev/null and b/icons/obj/structures/machinery/defenses/wy_heavy.dmi differ diff --git a/icons/obj/structures/machinery/defenses/wy_static.dmi b/icons/obj/structures/machinery/defenses/wy_static.dmi new file mode 100644 index 000000000000..92a890880221 Binary files /dev/null and b/icons/obj/structures/machinery/defenses/wy_static.dmi differ diff --git a/icons/obj/structures/machinery/drone_fab.dmi b/icons/obj/structures/machinery/drone_fab.dmi index 3a13a8684ac8..785e46c90001 100644 Binary files a/icons/obj/structures/machinery/drone_fab.dmi and b/icons/obj/structures/machinery/drone_fab.dmi differ diff --git a/icons/obj/structures/machinery/floodlight.dmi b/icons/obj/structures/machinery/floodlight.dmi index 7330d1749ab7..1f6b3b3d6d4c 100644 Binary files a/icons/obj/structures/machinery/floodlight.dmi and b/icons/obj/structures/machinery/floodlight.dmi differ diff --git a/icons/obj/structures/machinery/fuelpump.dmi b/icons/obj/structures/machinery/fuelpump.dmi new file mode 100644 index 000000000000..a63fbab88019 Binary files /dev/null and b/icons/obj/structures/machinery/fuelpump.dmi differ diff --git a/icons/obj/structures/machinery/fusion_eng.dmi b/icons/obj/structures/machinery/fusion_eng.dmi index 4d42baac7255..9bd902420151 100644 Binary files a/icons/obj/structures/machinery/fusion_eng.dmi and b/icons/obj/structures/machinery/fusion_eng.dmi differ diff --git a/icons/obj/structures/machinery/geothermal.dmi b/icons/obj/structures/machinery/geothermal.dmi index a3cd64c37421..6d3d5af4ef88 100644 Binary files a/icons/obj/structures/machinery/geothermal.dmi and b/icons/obj/structures/machinery/geothermal.dmi differ diff --git a/icons/obj/structures/machinery/library.dmi b/icons/obj/structures/machinery/library.dmi index 00e90fc7babf..b2e62dc1bb93 100644 Binary files a/icons/obj/structures/machinery/library.dmi and b/icons/obj/structures/machinery/library.dmi differ diff --git a/icons/obj/structures/machinery/meter.dmi b/icons/obj/structures/machinery/meter.dmi index 5f3051d8c05f..7cc681511108 100644 Binary files a/icons/obj/structures/machinery/meter.dmi and b/icons/obj/structures/machinery/meter.dmi differ diff --git a/icons/obj/structures/machinery/power.dmi b/icons/obj/structures/machinery/power.dmi index 76ca47047b63..aae3f3d69c13 100644 Binary files a/icons/obj/structures/machinery/power.dmi and b/icons/obj/structures/machinery/power.dmi differ diff --git a/icons/obj/structures/machinery/robotics.dmi b/icons/obj/structures/machinery/robotics.dmi index c53e7823cab7..5939f215b744 100644 Binary files a/icons/obj/structures/machinery/robotics.dmi and b/icons/obj/structures/machinery/robotics.dmi differ diff --git a/icons/obj/structures/machinery/science_machines_64x32.dmi b/icons/obj/structures/machinery/science_machines_64x32.dmi index 8defd1917720..ab4e42717f84 100644 Binary files a/icons/obj/structures/machinery/science_machines_64x32.dmi and b/icons/obj/structures/machinery/science_machines_64x32.dmi differ diff --git a/icons/obj/structures/machinery/virology.dmi b/icons/obj/structures/machinery/virology.dmi index 2f2f92602196..50a45753b784 100644 Binary files a/icons/obj/structures/machinery/virology.dmi and b/icons/obj/structures/machinery/virology.dmi differ diff --git a/icons/obj/structures/mortar.dmi b/icons/obj/structures/mortar.dmi index 7888d146357d..16e821c3d192 100644 Binary files a/icons/obj/structures/mortar.dmi and b/icons/obj/structures/mortar.dmi differ diff --git a/icons/obj/structures/props/almayer_props.dmi b/icons/obj/structures/props/almayer_props.dmi index e928213f8f30..013a542941a1 100644 Binary files a/icons/obj/structures/props/almayer_props.dmi and b/icons/obj/structures/props/almayer_props.dmi differ diff --git a/icons/obj/structures/props/almayer_props64.dmi b/icons/obj/structures/props/almayer_props64.dmi index c45b37d6ef15..4b69179f5541 100644 Binary files a/icons/obj/structures/props/almayer_props64.dmi and b/icons/obj/structures/props/almayer_props64.dmi differ diff --git a/icons/obj/structures/props/banners.dmi b/icons/obj/structures/props/banners.dmi index d45574de1185..ee30e197d21b 100644 Binary files a/icons/obj/structures/props/banners.dmi and b/icons/obj/structures/props/banners.dmi differ diff --git a/icons/obj/structures/props/stationobjs.dmi b/icons/obj/structures/props/stationobjs.dmi index 66c396f41d12..09868e92fd88 100644 Binary files a/icons/obj/structures/props/stationobjs.dmi and b/icons/obj/structures/props/stationobjs.dmi differ diff --git a/icons/obj/structures/tables.dmi b/icons/obj/structures/tables.dmi index bee6f34772be..39783bfd8b4d 100644 Binary files a/icons/obj/structures/tables.dmi and b/icons/obj/structures/tables.dmi differ diff --git a/icons/obj/vehicles/arc.dmi b/icons/obj/vehicles/arc.dmi new file mode 100644 index 000000000000..c13153072ee2 Binary files /dev/null and b/icons/obj/vehicles/arc.dmi differ diff --git a/icons/obj/vehicles/hardpoints/arc.dmi b/icons/obj/vehicles/hardpoints/arc.dmi new file mode 100644 index 000000000000..b971efecff5e Binary files /dev/null and b/icons/obj/vehicles/hardpoints/arc.dmi differ diff --git a/icons/obj/vehicles/interiors/arc.dmi b/icons/obj/vehicles/interiors/arc.dmi new file mode 100644 index 000000000000..4ab29a7400ff Binary files /dev/null and b/icons/obj/vehicles/interiors/arc.dmi differ diff --git a/icons/obj/vehicles/interiors/arc_chassis.dmi b/icons/obj/vehicles/interiors/arc_chassis.dmi new file mode 100644 index 000000000000..255687f8fa0d Binary files /dev/null and b/icons/obj/vehicles/interiors/arc_chassis.dmi differ diff --git a/icons/rebase_icons.dmi b/icons/rebase_icons.dmi index 14c19d8b27e6..3d9234f3f9f9 100644 Binary files a/icons/rebase_icons.dmi and b/icons/rebase_icons.dmi differ diff --git a/icons/turf/areas.dmi b/icons/turf/areas.dmi index 8b525fd568d6..c8bf32b00b40 100644 Binary files a/icons/turf/areas.dmi and b/icons/turf/areas.dmi differ diff --git a/icons/turf/areas_interiors.dmi b/icons/turf/areas_interiors.dmi index 4da1109803a8..6fc30badd763 100644 Binary files a/icons/turf/areas_interiors.dmi and b/icons/turf/areas_interiors.dmi differ diff --git a/icons/turf/dropship.dmi b/icons/turf/dropship.dmi index b3cf56eb4549..e4261344ebba 100644 Binary files a/icons/turf/dropship.dmi and b/icons/turf/dropship.dmi differ diff --git a/icons/turf/dropship2.dmi b/icons/turf/dropship2.dmi index 754c20d9ead4..53a44fe75b71 100644 Binary files a/icons/turf/dropship2.dmi and b/icons/turf/dropship2.dmi differ diff --git a/icons/turf/ert_shuttle.dmi b/icons/turf/ert_shuttle.dmi index befed9f547b7..39018d4f1611 100644 Binary files a/icons/turf/ert_shuttle.dmi and b/icons/turf/ert_shuttle.dmi differ diff --git a/icons/turf/escapepods.dmi b/icons/turf/escapepods.dmi index 089db3cd3e19..96aa67789bb1 100644 Binary files a/icons/turf/escapepods.dmi and b/icons/turf/escapepods.dmi differ diff --git a/icons/turf/floors/aicore.dmi b/icons/turf/floors/aicore.dmi new file mode 100644 index 000000000000..0396b9bef241 Binary files /dev/null and b/icons/turf/floors/aicore.dmi differ diff --git a/icons/turf/ground_map.dmi b/icons/turf/ground_map.dmi index 1970ad966106..944293c2c423 100644 Binary files a/icons/turf/ground_map.dmi and b/icons/turf/ground_map.dmi differ diff --git a/icons/turf/shuttle.dmi b/icons/turf/shuttle.dmi index 14ff9b3d0ef2..c995c03de342 100644 Binary files a/icons/turf/shuttle.dmi and b/icons/turf/shuttle.dmi differ diff --git a/icons/turf/walls/almayer.dmi b/icons/turf/walls/almayer.dmi index 2cb182c60318..671dcc1fbd94 100644 Binary files a/icons/turf/walls/almayer.dmi and b/icons/turf/walls/almayer.dmi differ diff --git a/icons/turf/walls/almayer_aicore.dmi b/icons/turf/walls/almayer_aicore.dmi new file mode 100644 index 000000000000..5ce7aaf2022f Binary files /dev/null and b/icons/turf/walls/almayer_aicore.dmi differ diff --git a/icons/turf/walls/almayer_aicore_white.dmi b/icons/turf/walls/almayer_aicore_white.dmi new file mode 100644 index 000000000000..721cd7c63f28 Binary files /dev/null and b/icons/turf/walls/almayer_aicore_white.dmi differ diff --git a/icons/turf/walls/window_frames.dmi b/icons/turf/walls/window_frames.dmi index e6dee0c29189..5fbe51615e98 100644 Binary files a/icons/turf/walls/window_frames.dmi and b/icons/turf/walls/window_frames.dmi differ diff --git a/icons/turf/walls/windows.dmi b/icons/turf/walls/windows.dmi index a3f2fd1d4198..c162b83e661c 100644 Binary files a/icons/turf/walls/windows.dmi and b/icons/turf/walls/windows.dmi differ diff --git a/icons/ui_icons/inventory/back.png b/icons/ui_icons/inventory/back.png new file mode 100644 index 000000000000..736b9d64bf99 Binary files /dev/null and b/icons/ui_icons/inventory/back.png differ diff --git a/icons/ui_icons/inventory/belt.png b/icons/ui_icons/inventory/belt.png new file mode 100644 index 000000000000..1be89d450a8f Binary files /dev/null and b/icons/ui_icons/inventory/belt.png differ diff --git a/icons/ui_icons/inventory/collar.png b/icons/ui_icons/inventory/collar.png new file mode 100644 index 000000000000..71803b1b6c6b Binary files /dev/null and b/icons/ui_icons/inventory/collar.png differ diff --git a/icons/ui_icons/inventory/ears.png b/icons/ui_icons/inventory/ears.png new file mode 100644 index 000000000000..e9a8f3c23c4b Binary files /dev/null and b/icons/ui_icons/inventory/ears.png differ diff --git a/icons/ui_icons/inventory/glasses.png b/icons/ui_icons/inventory/glasses.png new file mode 100644 index 000000000000..6e6f1ad098f6 Binary files /dev/null and b/icons/ui_icons/inventory/glasses.png differ diff --git a/icons/ui_icons/inventory/gloves.png b/icons/ui_icons/inventory/gloves.png new file mode 100644 index 000000000000..2c8a16cbdb7a Binary files /dev/null and b/icons/ui_icons/inventory/gloves.png differ diff --git a/icons/ui_icons/inventory/hand_l.png b/icons/ui_icons/inventory/hand_l.png new file mode 100644 index 000000000000..b09228d65f6d Binary files /dev/null and b/icons/ui_icons/inventory/hand_l.png differ diff --git a/icons/ui_icons/inventory/hand_r.png b/icons/ui_icons/inventory/hand_r.png new file mode 100644 index 000000000000..0e05a487e070 Binary files /dev/null and b/icons/ui_icons/inventory/hand_r.png differ diff --git a/icons/ui_icons/inventory/head.png b/icons/ui_icons/inventory/head.png new file mode 100644 index 000000000000..11e2d2254cd0 Binary files /dev/null and b/icons/ui_icons/inventory/head.png differ diff --git a/icons/ui_icons/inventory/id.png b/icons/ui_icons/inventory/id.png new file mode 100644 index 000000000000..4469591d36f5 Binary files /dev/null and b/icons/ui_icons/inventory/id.png differ diff --git a/icons/ui_icons/inventory/mask.png b/icons/ui_icons/inventory/mask.png new file mode 100644 index 000000000000..82e510893796 Binary files /dev/null and b/icons/ui_icons/inventory/mask.png differ diff --git a/icons/ui_icons/inventory/neck.png b/icons/ui_icons/inventory/neck.png new file mode 100644 index 000000000000..78ad3ce3b1c7 Binary files /dev/null and b/icons/ui_icons/inventory/neck.png differ diff --git a/icons/ui_icons/inventory/pocket.png b/icons/ui_icons/inventory/pocket.png new file mode 100644 index 000000000000..f42399dca0f5 Binary files /dev/null and b/icons/ui_icons/inventory/pocket.png differ diff --git a/icons/ui_icons/inventory/shoes.png b/icons/ui_icons/inventory/shoes.png new file mode 100644 index 000000000000..d20f7ef4d106 Binary files /dev/null and b/icons/ui_icons/inventory/shoes.png differ diff --git a/icons/ui_icons/inventory/suit.png b/icons/ui_icons/inventory/suit.png new file mode 100644 index 000000000000..e9c48e8069f7 Binary files /dev/null and b/icons/ui_icons/inventory/suit.png differ diff --git a/icons/ui_icons/inventory/suit_storage.png b/icons/ui_icons/inventory/suit_storage.png new file mode 100644 index 000000000000..9722eb10297a Binary files /dev/null and b/icons/ui_icons/inventory/suit_storage.png differ diff --git a/icons/ui_icons/inventory/uniform.png b/icons/ui_icons/inventory/uniform.png new file mode 100644 index 000000000000..292b3324b5bd Binary files /dev/null and b/icons/ui_icons/inventory/uniform.png differ diff --git a/icons/ui_icons/map_blips_large.dmi b/icons/ui_icons/map_blips_large.dmi index 0cf41b52a4dc..f03433c8c8ef 100644 Binary files a/icons/ui_icons/map_blips_large.dmi and b/icons/ui_icons/map_blips_large.dmi differ diff --git a/interface/interface.dm b/interface/interface.dm index c9112160d94f..5b30eaa53bf7 100644 --- a/interface/interface.dm +++ b/interface/interface.dm @@ -62,14 +62,11 @@ set name = "Submit Bug" set desc = "Submit a bug." set hidden = TRUE - - if(tgui_alert(src, "Please search for the bug first to make sure you aren't posting a duplicate.", "No dupe bugs please", list("OK", "Cancel")) != "OK") - return - - if(tgui_alert(src, "This will open the GitHub in your browser. Are you sure?", "Confirm", list("Yes", "No")) != "Yes") + if(!usr) return + var/datum/tgui_bug_report_form/report = new(usr) - src << link(CONFIG_GET(string/githuburl)) + report.tgui_interact(usr) return /client/verb/set_fps() diff --git a/librust_g.so b/librust_g.so index 56625573d004..382d50e27fe2 100644 Binary files a/librust_g.so and b/librust_g.so differ diff --git a/map_config/maps.txt b/map_config/maps.txt index ba0bd17a89c7..885b1e76faad 100644 --- a/map_config/maps.txt +++ b/map_config/maps.txt @@ -44,8 +44,6 @@ map ice_colony_v2 endmap map shivas_snowball - voteweight 0 - disabled endmap map kutjevo diff --git a/maps/Nightmare/maps/FOP_v3_Sciannex/nightmare.json b/maps/Nightmare/maps/FOP_v3_Sciannex/nightmare.json index 54c13d429c0e..156b291fb203 100644 --- a/maps/Nightmare/maps/FOP_v3_Sciannex/nightmare.json +++ b/maps/Nightmare/maps/FOP_v3_Sciannex/nightmare.json @@ -1,3 +1,10 @@ [ - { "type": "map_sprinkle", "path": "sprinkles/" } + { "type": "map_sprinkle", "path": "sprinkles/" }, +{ + "type": "map_insert", + "landmark": "riot_control", + "chance": 0.5, + "path": "standalone/riot_in_progress.dmm", + "when": { "riot_in_progress": "true" } +} ] diff --git a/maps/Nightmare/maps/FOP_v3_Sciannex/scenario.json b/maps/Nightmare/maps/FOP_v3_Sciannex/scenario.json index fe51488c7066..217ac5a8cb38 100644 --- a/maps/Nightmare/maps/FOP_v3_Sciannex/scenario.json +++ b/maps/Nightmare/maps/FOP_v3_Sciannex/scenario.json @@ -1 +1,9 @@ -[] +[ + { + "type": "pick", "name": "Riot Control", + "choices": [ + { "weight": 4, "type": "def", "values": { "riot_in_progress": "none" } }, + { "weight": 2, "type": "def", "values": { "riot_in_progress": "true" } } + ] + } +] diff --git a/maps/Nightmare/maps/Ice_Colony_v3/nightmare.json b/maps/Nightmare/maps/Ice_Colony_v3/nightmare.json index 9c3008696d3a..301ffa337115 100644 --- a/maps/Nightmare/maps/Ice_Colony_v3/nightmare.json +++ b/maps/Nightmare/maps/Ice_Colony_v3/nightmare.json @@ -96,5 +96,12 @@ "landmark": "lz2-north", "path": "lz2-variations/north/full-closed.dmm", "when": { "lz2-north": "full" } - } + }, + { + "type": "map_insert", + "landmark": "panic_room", + "chance": 0.5, + "path": "standalone/panic_room_hold.dmm", + "when": { "panic_room": "full" } + } ] diff --git a/maps/Nightmare/maps/Ice_Colony_v3/scenario.json b/maps/Nightmare/maps/Ice_Colony_v3/scenario.json index 414bbcb15abc..4b4eb7b6b92f 100644 --- a/maps/Nightmare/maps/Ice_Colony_v3/scenario.json +++ b/maps/Nightmare/maps/Ice_Colony_v3/scenario.json @@ -8,6 +8,13 @@ { "weight": 1, "type": "def", "values": { "lz2-southwest": "half", "lz2-south-gate": "none", "lz2-southeast": "half", "lz2-eastsouth": "full", "lz2-southeast-gate": "full", "lz2-east": "none", "lz2-east-gate": "half", "lz2-north": "none"} }, { "weight": 1, "type": "def", "values": { "lz2-southwest": "full", "lz2-south-gate": "none", "lz2-southeast": "half", "lz2-eastsouth": "none", "lz2-southeast-gate": "open", "lz2-east": "full", "lz2-east-gate": "none", "lz2-north": "open"} } ] +}, +{ + "type": "pick", "name": "Panic Room", + "choices": [ + { "weight": 10, "type": "def", "values": { "panic_room": "none"} }, + { "weight": 3, "type": "def", "values": { "panic_room": "full"} } + ] } ] diff --git a/maps/Nightmare/maps/LV624/nightmare.json b/maps/Nightmare/maps/LV624/nightmare.json index 8f81a61c16de..0fe51643177b 100644 --- a/maps/Nightmare/maps/LV624/nightmare.json +++ b/maps/Nightmare/maps/LV624/nightmare.json @@ -6,6 +6,13 @@ "path": "standalone/clfship.dmm", "when": { "lvevent": "fallen_ship" } }, + { + "type": "map_insert", + "landmark": "corporatedome", + "chance": 0.5, + "path": "standalone/corporatedome.dmm", + "when": { "lvevent": "asset_protection" } + }, { "type": "map_insert", "landmark": "lv-skylight", diff --git a/maps/Nightmare/maps/LV624/scenario.json b/maps/Nightmare/maps/LV624/scenario.json index 3c8051a4eb17..6880cb542f2a 100644 --- a/maps/Nightmare/maps/LV624/scenario.json +++ b/maps/Nightmare/maps/LV624/scenario.json @@ -13,7 +13,8 @@ { "weight": 2, "type": "def", "values": { "lvevent": "none" } }, { "weight": 4, "type": "def", "values": { "lvevent": "last_stand" } }, { "weight": 2, "type": "def", "values": { "lvevent": "fallen_ship", "mainpath": "bridge" } }, - { "weight": 2, "type": "def", "values": { "lvevent": "fallen_ship", "mainpath": "right" } } + { "weight": 2, "type": "def", "values": { "lvevent": "fallen_ship", "mainpath": "right" } }, + { "weight": 2, "type": "def", "values": { "lvevent": "asset_protection", "mainpath": "left" } } ] } ] diff --git a/maps/bigredv2.json b/maps/bigredv2.json index 0a6db01cd498..996d0d44422d 100644 --- a/maps/bigredv2.json +++ b/maps/bigredv2.json @@ -11,8 +11,10 @@ "/datum/equipment_preset/survivor/engineer/solaris", "/datum/equipment_preset/survivor/trucker/solaris", "/datum/equipment_preset/survivor/security/solaris", + "/datum/equipment_preset/survivor/uscm/solaris", "/datum/equipment_preset/survivor/colonial_marshal/solaris", "/datum/equipment_preset/survivor/corporate/solaris", + "/datum/equipment_preset/survivor/flight_control_operator", "/datum/equipment_preset/survivor/clf", "/datum/equipment_preset/survivor/civilian" ], @@ -24,7 +26,7 @@ 0.0 ], "map_item_type": "/obj/item/map/big_red_map", - "announce_text": "We've lost contact with Weyland-Yutani's research facility, Solaris Ridge. The ###SHIPNAME### has been dispatched to assist.", + "announce_text": "Weyland-Yutani has lost contact with one of its Biological Storage Facilities, Solaris Ridge, on the planet of LV-1413. The ###SHIPNAME### has been requested to look into the blackout by Weyland-Yutani.", "monkey_types": [ "neaera" ], diff --git a/maps/corsat.json b/maps/corsat.json index e8192644054a..87a41e840d61 100644 --- a/maps/corsat.json +++ b/maps/corsat.json @@ -4,7 +4,8 @@ "map_file": "Corsat.dmm", "environment_traits": { "Lockdown": true, - "COLD": true + "COLD": true, + "InSpace": true }, "survivor_types": [ "/datum/equipment_preset/survivor/scientist/corsat", @@ -12,7 +13,7 @@ "/datum/equipment_preset/survivor/goon", "/datum/equipment_preset/survivor/doctor/corsat", "/datum/equipment_preset/survivor/security/corsat", - "/datum/equipment_preset/survivor/interstellar_commerce_commission_liason/corsat", + "/datum/equipment_preset/survivor/interstellar_commerce_commission_liaison/corsat", "/datum/equipment_preset/survivor/engineer/corsat", "/datum/equipment_preset/survivor/clf", "/datum/equipment_preset/survivor/civilian" diff --git a/maps/desert_dam.json b/maps/desert_dam.json index b4e535e893d6..b40e9887d15b 100644 --- a/maps/desert_dam.json +++ b/maps/desert_dam.json @@ -5,14 +5,16 @@ "webmap_url": "Trijent", "survivor_types": [ "/datum/equipment_preset/survivor/doctor/trijent", + "/datum/equipment_preset/survivor/scientist/trijent", "/datum/equipment_preset/survivor/roughneck", "/datum/equipment_preset/survivor/chaplain/trijent", - "/datum/equipment_preset/survivor/interstellar_commerce_commission_liason", - "/datum/equipment_preset/survivor/colonial_marshal", + "/datum/equipment_preset/survivor/interstellar_commerce_commission_liaison", + "/datum/equipment_preset/survivor/colonial_marshal/trijent", "/datum/equipment_preset/survivor/engineer/trijent", "/datum/equipment_preset/survivor/engineer/trijent/hydro", "/datum/equipment_preset/survivor/trucker/trijent", "/datum/equipment_preset/survivor/security/trijent", + "/datum/equipment_preset/survivor/corporate/trijent", "/datum/equipment_preset/survivor/clf", "/datum/equipment_preset/survivor/civilian" ], diff --git a/maps/fiorina_sciannex.json b/maps/fiorina_sciannex.json index dfc73655414d..61212c433be0 100644 --- a/maps/fiorina_sciannex.json +++ b/maps/fiorina_sciannex.json @@ -4,15 +4,15 @@ "map_file": "Fiorina_SciAnnex.dmm", "webmap_url": "Fiorina", "survivor_types": [ - "/datum/equipment_preset/survivor/scientist/florina", - "/datum/equipment_preset/survivor/doctor/florina", + "/datum/equipment_preset/survivor/scientist/fiorina", + "/datum/equipment_preset/survivor/doctor/fiorina", "/datum/equipment_preset/survivor/interstellar_human_rights_observer", - "/datum/equipment_preset/survivor/security/florina", - "/datum/equipment_preset/survivor/colonial_marshal/florina", + "/datum/equipment_preset/survivor/security/fiorina", + "/datum/equipment_preset/survivor/colonial_marshal/fiorina", "/datum/equipment_preset/survivor/prisoner", "/datum/equipment_preset/survivor/prisoner", "/datum/equipment_preset/survivor/gangleader", - "/datum/equipment_preset/survivor/engineer/florina", + "/datum/equipment_preset/survivor/engineer/fiorina", "/datum/equipment_preset/survivor/clf", "/datum/equipment_preset/survivor/civilian" ], @@ -26,6 +26,7 @@ "survivor_message": "You are a survivor of the attack on Fiorina Orbital Penitentiary. You worked or lived on the prison station, and managed to avoid the alien attacks... until now.", "map_item_type": "/obj/item/map/FOP_map_v3", "announce_text": "An automated distress signal has been received from maximum-security prison \"Fiorina Orbital Penitentiary\". A response team from the ###SHIPNAME### will be dispatched shortly to investigate.", + "environment_traits": { "InSpace": true }, "traits": [{ "Ground": true }], "nightmare_path": "maps/Nightmare/maps/FOP_v3_Sciannex/", "xvx_hives": { diff --git a/maps/interiors/apc.dmm b/maps/interiors/apc.dmm index 82ca4649acd6..f03d673d99b0 100644 --- a/maps/interiors/apc.dmm +++ b/maps/interiors/apc.dmm @@ -14,10 +14,8 @@ dir = 1; pixel_x = -8 }, -/turf/open/shuttle/vehicle{ - icon_state = "floor_3_13" - }, -/area/vehicle/apc) +/turf/open/shuttle/vehicle/floor_3_13, +/area/interior/vehicle/apc) "c" = ( /obj/structure/bed/chair/vehicle{ dir = 1; @@ -32,10 +30,8 @@ pixel_x = 8; pixel_y = -11 }, -/turf/open/shuttle/vehicle{ - icon_state = "floor_3_5" - }, -/area/vehicle/apc) +/turf/open/shuttle/vehicle/floor_3_5, +/area/interior/vehicle/apc) "d" = ( /obj/structure/bed/chair/vehicle{ dir = 1; @@ -45,10 +41,8 @@ dir = 1; pixel_x = -8 }, -/turf/open/shuttle/vehicle{ - icon_state = "floor_3_8_1" - }, -/area/vehicle/apc) +/turf/open/shuttle/vehicle/floor_3_8_1, +/area/interior/vehicle/apc) "e" = ( /obj/structure/interior_wall/apc{ icon_state = "rear_1" @@ -62,10 +56,8 @@ name = "Right M56 FPW handle"; pixel_y = 2 }, -/turf/open/shuttle/vehicle{ - icon_state = "floor_3_12" - }, -/area/vehicle/apc) +/turf/open/shuttle/vehicle/floor_3_12, +/area/interior/vehicle/apc) "g" = ( /obj/structure/interior_wall/apc{ icon_state = "corner_small_R" @@ -83,10 +75,8 @@ /turf/open/void/vehicle, /area/space) "i" = ( -/turf/open/shuttle/vehicle{ - icon_state = "floor_0_1_15" - }, -/area/vehicle/apc) +/turf/open/shuttle/vehicle/floor_0_1_15, +/area/interior/vehicle/apc) "j" = ( /turf/open/void/vehicle, /area/space) @@ -109,10 +99,8 @@ /obj/effect/landmark/interior/spawn/vehicle_driver_seat/armor{ dir = 4 }, -/turf/open/shuttle/vehicle{ - icon_state = "floor_3_9_1" - }, -/area/vehicle/apc) +/turf/open/shuttle/vehicle/floor_3_9_1, +/area/interior/vehicle/apc) "n" = ( /obj/structure/interior_wall/apc{ icon_state = "front_2" @@ -152,10 +140,8 @@ pixel_x = -32; tag = "rear center" }, -/turf/open/shuttle/vehicle{ - icon_state = "floor_1_13" - }, -/area/vehicle/apc) +/turf/open/shuttle/vehicle/floor_1_13, +/area/interior/vehicle/apc) "t" = ( /obj/structure/interior_wall/apc{ icon_state = "rear_3" @@ -164,10 +150,8 @@ /area/space) "u" = ( /obj/effect/landmark/interior/spawn/weapons_loader, -/turf/open/shuttle/vehicle{ - icon_state = "floor_3_6" - }, -/area/vehicle/apc) +/turf/open/shuttle/vehicle/floor_3_6, +/area/interior/vehicle/apc) "v" = ( /obj/structure/bed/chair/vehicle{ pixel_x = 8 @@ -180,10 +164,8 @@ pixel_x = -14; pixel_y = 38 }, -/turf/open/shuttle/vehicle{ - icon_state = "floor_3_9_1" - }, -/area/vehicle/apc) +/turf/open/shuttle/vehicle/floor_3_9_1, +/area/interior/vehicle/apc) "w" = ( /obj/effect/landmark/interior/spawn/entrance{ alpha = 50; @@ -198,10 +180,8 @@ pixel_x = 5; pixel_y = 8 }, -/turf/open/shuttle/vehicle{ - icon_state = "floor_1_11" - }, -/area/vehicle/apc) +/turf/open/shuttle/vehicle/floor_1_11, +/area/interior/vehicle/apc) "y" = ( /obj/structure/interior_wall/apc{ icon_state = "front_6" @@ -209,15 +189,11 @@ /turf/open/void/vehicle, /area/space) "z" = ( -/turf/open/shuttle/vehicle{ - icon_state = "floor_1_5" - }, -/area/vehicle/apc) +/turf/open/shuttle/vehicle/floor_1_5, +/area/interior/vehicle/apc) "A" = ( -/turf/open/shuttle/vehicle{ - icon_state = "floor_1_6" - }, -/area/vehicle/apc) +/turf/open/shuttle/vehicle/floor_1_6, +/area/interior/vehicle/apc) "B" = ( /obj/structure/interior_wall/apc{ icon_state = "corner_inverse_R"; @@ -233,10 +209,8 @@ pixel_x = -24; pixel_y = 28 }, -/turf/open/shuttle/vehicle{ - icon_state = "floor_1_11" - }, -/area/vehicle/apc) +/turf/open/shuttle/vehicle/floor_1_11, +/area/interior/vehicle/apc) "D" = ( /obj/structure/interior_wall/apc{ icon_state = "wall"; @@ -271,10 +245,8 @@ dir = 1; pixel_x = 8 }, -/turf/open/shuttle/vehicle{ - icon_state = "floor_3_13" - }, -/area/vehicle/apc) +/turf/open/shuttle/vehicle/floor_3_13, +/area/interior/vehicle/apc) "H" = ( /obj/structure/bed/chair/vehicle{ pixel_x = -8 @@ -291,10 +263,8 @@ pixel_x = -8; pixel_y = 28 }, -/turf/open/shuttle/vehicle{ - icon_state = "floor_3_13" - }, -/area/vehicle/apc) +/turf/open/shuttle/vehicle/floor_3_13, +/area/interior/vehicle/apc) "I" = ( /obj/effect/landmark/interior/spawn/vehicle_support_gunner_seat{ dir = 1 @@ -304,10 +274,8 @@ name = "Left M56 FPW handle"; pixel_y = 17 }, -/turf/open/shuttle/vehicle{ - icon_state = "floor_3_11" - }, -/area/vehicle/apc) +/turf/open/shuttle/vehicle/floor_3_11, +/area/interior/vehicle/apc) "J" = ( /obj/structure/interior_wall/apc{ icon_state = "corner_small_L"; @@ -321,10 +289,8 @@ /turf/open/void/vehicle, /area/space) "K" = ( -/turf/open/shuttle/vehicle{ - icon_state = "floor_1_14" - }, -/area/vehicle/apc) +/turf/open/shuttle/vehicle/floor_1_14, +/area/interior/vehicle/apc) "L" = ( /obj/structure/interior_wall/apc{ icon_state = "corner_small_L" @@ -361,10 +327,8 @@ /turf/open/void/vehicle, /area/space) "R" = ( -/turf/open/shuttle/vehicle{ - icon_state = "floor_1_1_3" - }, -/area/vehicle/apc) +/turf/open/shuttle/vehicle/floor_1_1_3, +/area/interior/vehicle/apc) "S" = ( /obj/structure/interior_wall/apc{ alpha = 100; @@ -399,10 +363,8 @@ pixel_x = -7; pixel_y = 23 }, -/turf/open/shuttle/vehicle{ - icon_state = "floor_3_13" - }, -/area/vehicle/apc) +/turf/open/shuttle/vehicle/floor_3_13, +/area/interior/vehicle/apc) "V" = ( /obj/structure/interior_wall/apc{ icon_state = "wall" @@ -417,10 +379,8 @@ layer = 5.21; pixel_y = 28 }, -/turf/open/shuttle/vehicle{ - icon_state = "floor_3_8_1" - }, -/area/vehicle/apc) +/turf/open/shuttle/vehicle/floor_3_8_1, +/area/interior/vehicle/apc) "X" = ( /obj/structure/interior_wall/apc{ icon_state = "front_wheel_R" @@ -439,10 +399,8 @@ pixel_x = 5; pixel_y = 1 }, -/turf/open/shuttle/vehicle{ - icon_state = "floor_1_12" - }, -/area/vehicle/apc) +/turf/open/shuttle/vehicle/floor_1_12, +/area/interior/vehicle/apc) "Z" = ( /obj/structure/interior_wall/apc{ icon_state = "rear_4" diff --git a/maps/interiors/apc_command.dmm b/maps/interiors/apc_command.dmm index 0da5353a6d6a..4af7a56650d1 100644 --- a/maps/interiors/apc_command.dmm +++ b/maps/interiors/apc_command.dmm @@ -7,10 +7,8 @@ /area/space) "b" = ( /obj/structure/prop/vehicle/sensor_equipment, -/turf/open/shuttle/vehicle{ - icon_state = "floor_3_10_1" - }, -/area/vehicle/apc/command) +/turf/open/shuttle/vehicle/floor_3_10_1, +/area/interior/vehicle/apc/command) "c" = ( /obj/structure/bed/chair/vehicle{ dir = 1; @@ -20,10 +18,8 @@ dir = 1; pixel_x = 8 }, -/turf/open/shuttle/vehicle{ - icon_state = "floor_3_5" - }, -/area/vehicle/apc/command) +/turf/open/shuttle/vehicle/floor_3_5, +/area/interior/vehicle/apc/command) "d" = ( /obj/structure/bed/chair/vehicle{ dir = 1; @@ -33,10 +29,8 @@ dir = 1; pixel_x = -8 }, -/turf/open/shuttle/vehicle{ - icon_state = "floor_3_8_1" - }, -/area/vehicle/apc/command) +/turf/open/shuttle/vehicle/floor_3_8_1, +/area/interior/vehicle/apc/command) "e" = ( /obj/structure/interior_wall/apc{ icon_state = "rear_1" @@ -53,10 +47,8 @@ /obj/structure/bed/chair/vehicle{ dir = 4 }, -/turf/open/shuttle/vehicle{ - icon_state = "floor_3_12" - }, -/area/vehicle/apc/command) +/turf/open/shuttle/vehicle/floor_3_12, +/area/interior/vehicle/apc/command) "h" = ( /obj/structure/interior_wall/apc{ icon_state = "rear_wheel_R"; @@ -76,10 +68,8 @@ icon = 'icons/obj/vehicles/interiors/general.dmi'; pixel_y = 28 }, -/turf/open/shuttle/vehicle{ - icon_state = "floor_3_13" - }, -/area/vehicle/apc/command) +/turf/open/shuttle/vehicle/floor_3_13, +/area/interior/vehicle/apc/command) "k" = ( /turf/open/void/vehicle, /area/space) @@ -120,10 +110,8 @@ layer = 2.81; pixel_y = 4 }, -/turf/open/shuttle/vehicle{ - icon_state = "floor_3_7_1" - }, -/area/vehicle/apc/command) +/turf/open/shuttle/vehicle/floor_3_7_1, +/area/interior/vehicle/apc/command) "p" = ( /obj/structure/interior_wall/apc{ icon_state = "rear_6" @@ -137,25 +125,19 @@ /obj/effect/landmark/interior/spawn/vehicle_gunner_seat/armor{ dir = 4 }, -/turf/open/shuttle/vehicle{ - icon_state = "floor_3_8_1" - }, -/area/vehicle/apc/command) +/turf/open/shuttle/vehicle/floor_3_8_1, +/area/interior/vehicle/apc/command) "r" = ( -/turf/open/shuttle/vehicle{ - icon_state = "floor_1_6" - }, -/area/vehicle/apc/command) +/turf/open/shuttle/vehicle/floor_1_6, +/area/interior/vehicle/apc/command) "s" = ( /obj/structure/machinery/prop/almayer/CICmap{ indestructible = 1; unslashable = 1 }, /obj/structure/surface/table/reinforced/prison, -/turf/open/shuttle/vehicle{ - icon_state = "floor_3_6" - }, -/area/vehicle/apc/command) +/turf/open/shuttle/vehicle/floor_3_6, +/area/interior/vehicle/apc/command) "t" = ( /obj/structure/interior_wall/apc{ icon_state = "wheel_back_top_1"; @@ -165,10 +147,8 @@ /turf/open/void/vehicle, /area/space) "u" = ( -/turf/open/shuttle/vehicle{ - icon_state = "floor_1_5" - }, -/area/vehicle/apc/command) +/turf/open/shuttle/vehicle/floor_1_5, +/area/interior/vehicle/apc/command) "v" = ( /obj/structure/interior_wall/apc{ icon_state = "front_3" @@ -191,23 +171,17 @@ pixel_x = -21; pixel_y = 24 }, -/turf/open/shuttle/vehicle{ - icon_state = "floor_3_5" - }, -/area/vehicle/apc/command) +/turf/open/shuttle/vehicle/floor_3_5, +/area/interior/vehicle/apc/command) "x" = ( /obj/effect/landmark/interior/spawn/vehicle_driver_seat/armor{ dir = 4 }, -/turf/open/shuttle/vehicle{ - icon_state = "floor_3_9_1" - }, -/area/vehicle/apc/command) +/turf/open/shuttle/vehicle/floor_3_9_1, +/area/interior/vehicle/apc/command) "y" = ( -/turf/open/shuttle/vehicle{ - icon_state = "floor_1_14" - }, -/area/vehicle/apc/command) +/turf/open/shuttle/vehicle/floor_1_14, +/area/interior/vehicle/apc/command) "z" = ( /obj/structure/interior_wall/apc{ alpha = 100; @@ -231,10 +205,8 @@ pixel_y = 32; tag = "left" }, -/turf/open/shuttle/vehicle{ - icon_state = "floor_1_11" - }, -/area/vehicle/apc/command) +/turf/open/shuttle/vehicle/floor_1_11, +/area/interior/vehicle/apc/command) "C" = ( /obj/structure/interior_wall/apc{ icon_state = "front_1" @@ -249,18 +221,14 @@ /turf/open/void/vehicle, /area/space) "E" = ( -/turf/open/shuttle/vehicle{ - icon_state = "floor_0_1_15" - }, -/area/vehicle/apc/command) +/turf/open/shuttle/vehicle/floor_0_1_15, +/area/interior/vehicle/apc/command) "F" = ( /obj/structure/bed/chair/vehicle{ dir = 4 }, -/turf/open/shuttle/vehicle{ - icon_state = "floor_3_11" - }, -/area/vehicle/apc/command) +/turf/open/shuttle/vehicle/floor_3_11, +/area/interior/vehicle/apc/command) "G" = ( /obj/effect/landmark/interior/spawn/entrance{ alpha = 50; @@ -273,20 +241,14 @@ pixel_x = 5; pixel_y = 1 }, -/turf/open/shuttle/vehicle{ - icon_state = "floor_1_12" - }, -/area/vehicle/apc/command) +/turf/open/shuttle/vehicle/floor_1_12, +/area/interior/vehicle/apc/command) "H" = ( -/turf/open/shuttle/vehicle{ - icon_state = "floor_1_13" - }, -/area/vehicle/apc/command) +/turf/open/shuttle/vehicle/floor_1_13, +/area/interior/vehicle/apc/command) "I" = ( -/turf/open/shuttle/vehicle{ - icon_state = "floor_3_13" - }, -/area/vehicle/apc/command) +/turf/open/shuttle/vehicle/floor_3_13, +/area/interior/vehicle/apc/command) "J" = ( /obj/structure/interior_wall/apc{ icon_state = "wall" @@ -311,10 +273,8 @@ pixel_x = -14; pixel_y = 38 }, -/turf/open/shuttle/vehicle{ - icon_state = "floor_3_9_1" - }, -/area/vehicle/apc/command) +/turf/open/shuttle/vehicle/floor_3_9_1, +/area/interior/vehicle/apc/command) "M" = ( /obj/structure/interior_wall/apc{ icon_state = "corner_small_R"; @@ -412,10 +372,8 @@ /area/space) "Y" = ( /obj/effect/landmark/interior/spawn/weapons_loader, -/turf/open/shuttle/vehicle{ - icon_state = "floor_3_6" - }, -/area/vehicle/apc/command) +/turf/open/shuttle/vehicle/floor_3_6, +/area/interior/vehicle/apc/command) (1,1,1) = {" p diff --git a/maps/interiors/apc_med.dmm b/maps/interiors/apc_med.dmm index f4da99a6fe50..9ca29500eafa 100644 --- a/maps/interiors/apc_med.dmm +++ b/maps/interiors/apc_med.dmm @@ -11,10 +11,8 @@ pixel_x = -5 }, /obj/item/device/defibrillator, -/turf/open/shuttle/vehicle{ - icon_state = "dark_sterile_green_11" - }, -/area/vehicle/apc/med) +/turf/open/shuttle/vehicle/dark_sterile_green_11, +/area/interior/vehicle/apc/med) "c" = ( /obj/effect/decal/medical_decals/permanent{ icon_state = "docdecal2"; @@ -24,10 +22,8 @@ /obj/effect/decal/medical_decals/permanent{ icon_state = "triagedecalbottom" }, -/turf/open/shuttle/vehicle{ - icon_state = "dark_sterile_green_5" - }, -/area/vehicle/apc/med) +/turf/open/shuttle/vehicle/dark_sterile_green_5, +/area/interior/vehicle/apc/med) "d" = ( /obj/effect/decal/medical_decals/permanent{ icon_state = "triagedecalbottom" @@ -35,10 +31,8 @@ /obj/effect/decal/medical_decals/permanent{ icon_state = "triagedecaltopright" }, -/turf/open/shuttle/vehicle{ - icon_state = "dark_sterile_green_14" - }, -/area/vehicle/apc/med) +/turf/open/shuttle/vehicle/dark_sterile_green_14, +/area/interior/vehicle/apc/med) "e" = ( /obj/structure/interior_wall/apc{ icon_state = "rear_1" @@ -67,10 +61,8 @@ dir = 1; pixel_x = -8 }, -/turf/open/shuttle/vehicle{ - icon_state = "floor_3" - }, -/area/vehicle/apc/med) +/turf/open/shuttle/vehicle/floor_3, +/area/interior/vehicle/apc/med) "j" = ( /obj/structure/interior_wall/apc{ icon_state = "rear_6" @@ -102,10 +94,8 @@ icon_state = "triagedecaltop"; pixel_y = -2 }, -/turf/open/shuttle/vehicle{ - icon_state = "dark_sterile_green_7" - }, -/area/vehicle/apc/med) +/turf/open/shuttle/vehicle/dark_sterile_green_7, +/area/interior/vehicle/apc/med) "n" = ( /obj/structure/interior_wall/apc{ icon_state = "wheel_back_top_1"; @@ -176,10 +166,8 @@ dir = 4; icon_state = "triagedecaldir" }, -/turf/open/shuttle/vehicle{ - icon_state = "dark_sterile_green_8" - }, -/area/vehicle/apc/med) +/turf/open/shuttle/vehicle/dark_sterile_green_8, +/area/interior/vehicle/apc/med) "x" = ( /obj/structure/interior_wall/apc{ icon_state = "wall"; @@ -201,10 +189,8 @@ pixel_y = 32; tag = "left" }, -/turf/open/shuttle/vehicle{ - icon_state = "floor_1_11" - }, -/area/vehicle/apc/med) +/turf/open/shuttle/vehicle/floor_1_11, +/area/interior/vehicle/apc/med) "z" = ( /obj/structure/interior_wall/apc{ icon_state = "wheel_front_top_1"; @@ -220,10 +206,8 @@ /obj/structure/bed/chair/vehicle{ pixel_x = -8 }, -/turf/open/shuttle/vehicle{ - icon_state = "floor_3" - }, -/area/vehicle/apc/med) +/turf/open/shuttle/vehicle/floor_3, +/area/interior/vehicle/apc/med) "B" = ( /obj/structure/machinery/iv_drip{ anchored = 1 @@ -233,10 +217,8 @@ pixel_x = -6; pixel_y = 23 }, -/turf/open/shuttle/vehicle{ - icon_state = "dark_sterile_green_12" - }, -/area/vehicle/apc/med) +/turf/open/shuttle/vehicle/dark_sterile_green_12, +/area/interior/vehicle/apc/med) "C" = ( /obj/structure/interior_wall/apc{ icon_state = "front_wheel_L"; @@ -250,10 +232,8 @@ pixel_x = -5; pixel_y = 16 }, -/turf/open/shuttle/vehicle{ - icon_state = "dark_sterile" - }, -/area/vehicle/apc/med) +/turf/open/shuttle/vehicle/dark_sterile, +/area/interior/vehicle/apc/med) "E" = ( /obj/structure/vehicle_locker{ pixel_y = 28 @@ -261,10 +241,8 @@ /obj/effect/landmark/interior/spawn/vehicle_gunner_seat/armor{ dir = 4 }, -/turf/open/shuttle/vehicle{ - icon_state = "floor_3_8_1" - }, -/area/vehicle/apc/med) +/turf/open/shuttle/vehicle/floor_3_8_1, +/area/interior/vehicle/apc/med) "F" = ( /obj/structure/interior_wall/apc{ icon_state = "front_2" @@ -290,18 +268,14 @@ /obj/effect/landmark/interior/spawn/vehicle_driver_seat/armor{ dir = 4 }, -/turf/open/shuttle/vehicle{ - icon_state = "floor_3_9_1" - }, -/area/vehicle/apc/med) +/turf/open/shuttle/vehicle/floor_3_9_1, +/area/interior/vehicle/apc/med) "J" = ( /obj/structure/bed/chair/comfy{ dir = 4 }, -/turf/open/shuttle/vehicle{ - icon_state = "dark_sterile_green_6" - }, -/area/vehicle/apc/med) +/turf/open/shuttle/vehicle/dark_sterile_green_6, +/area/interior/vehicle/apc/med) "K" = ( /obj/effect/landmark/interior/spawn/entrance{ alpha = 50; @@ -314,15 +288,11 @@ pixel_x = 5; pixel_y = 1 }, -/turf/open/shuttle/vehicle{ - icon_state = "floor_1_12" - }, -/area/vehicle/apc/med) +/turf/open/shuttle/vehicle/floor_1_12, +/area/interior/vehicle/apc/med) "L" = ( -/turf/open/shuttle/vehicle{ - icon_state = "floor_1_14" - }, -/area/vehicle/apc/med) +/turf/open/shuttle/vehicle/floor_1_14, +/area/interior/vehicle/apc/med) "M" = ( /obj/structure/interior_wall/apc{ icon_state = "corner_inverse_L"; @@ -352,10 +322,8 @@ pixel_x = -14; pixel_y = 38 }, -/turf/open/shuttle/vehicle{ - icon_state = "dark_sterile_green_13" - }, -/area/vehicle/apc/med) +/turf/open/shuttle/vehicle/dark_sterile_green_13, +/area/interior/vehicle/apc/med) "P" = ( /obj/structure/interior_wall/apc{ icon_state = "door_back" @@ -363,16 +331,12 @@ /turf/open/void/vehicle, /area/space) "Q" = ( -/turf/open/shuttle/vehicle{ - icon_state = "floor_1_6" - }, -/area/vehicle/apc/med) +/turf/open/shuttle/vehicle/floor_1_6, +/area/interior/vehicle/apc/med) "R" = ( /obj/effect/landmark/interior/spawn/weapons_loader, -/turf/open/shuttle/vehicle{ - icon_state = "floor_3_6" - }, -/area/vehicle/apc/med) +/turf/open/shuttle/vehicle/floor_3_6, +/area/interior/vehicle/apc/med) "S" = ( /obj/structure/interior_wall/apc{ icon_state = "front_4" @@ -380,10 +344,8 @@ /turf/open/void/vehicle, /area/space) "T" = ( -/turf/open/shuttle/vehicle{ - icon_state = "floor_1_3_3" - }, -/area/vehicle/apc/med) +/turf/open/shuttle/vehicle/floor_1_3_3, +/area/interior/vehicle/apc/med) "U" = ( /obj/structure/interior_wall/apc{ icon_state = "front_1" @@ -399,10 +361,8 @@ dir = 1; pixel_x = -7 }, -/turf/open/shuttle/vehicle{ - icon_state = "floor_3_13" - }, -/area/vehicle/apc/med) +/turf/open/shuttle/vehicle/floor_3_13, +/area/interior/vehicle/apc/med) "W" = ( /obj/structure/bed/chair/vehicle{ pixel_x = -8 @@ -419,10 +379,8 @@ pixel_x = -8; pixel_y = 28 }, -/turf/open/shuttle/vehicle{ - icon_state = "floor_3_13" - }, -/area/vehicle/apc/med) +/turf/open/shuttle/vehicle/floor_3_13, +/area/interior/vehicle/apc/med) "Y" = ( /obj/structure/interior_wall/apc{ icon_state = "rear_4" diff --git a/maps/interiors/apc_no_fpw.dmm b/maps/interiors/apc_no_fpw.dmm index 6a08e69959ec..a387a19e79e8 100644 --- a/maps/interiors/apc_no_fpw.dmm +++ b/maps/interiors/apc_no_fpw.dmm @@ -3,18 +3,14 @@ /turf/open/void/vehicle, /area/space) "b" = ( -/turf/open/shuttle/vehicle{ - icon_state = "floor_1_6" - }, -/area/vehicle/apc) +/turf/open/shuttle/vehicle/floor_1_6, +/area/interior/vehicle/apc) "c" = ( /obj/structure/bed/chair/vehicle{ dir = 4 }, -/turf/open/shuttle/vehicle{ - icon_state = "floor_3_12" - }, -/area/vehicle/apc) +/turf/open/shuttle/vehicle/floor_3_12, +/area/interior/vehicle/apc) "d" = ( /obj/effect/landmark/interior/spawn/entrance{ alpha = 50; @@ -26,10 +22,8 @@ pixel_x = 5; pixel_y = 1 }, -/turf/open/shuttle/vehicle{ - icon_state = "floor_1_12" - }, -/area/vehicle/apc) +/turf/open/shuttle/vehicle/floor_1_12, +/area/interior/vehicle/apc) "e" = ( /obj/structure/bed/chair/vehicle{ dir = 1; @@ -44,10 +38,8 @@ pixel_x = 8; pixel_y = -11 }, -/turf/open/shuttle/vehicle{ - icon_state = "floor_3_5" - }, -/area/vehicle/apc) +/turf/open/shuttle/vehicle/floor_3_5, +/area/interior/vehicle/apc) "f" = ( /obj/structure/interior_wall/apc{ icon_state = "front_2" @@ -67,10 +59,8 @@ /turf/open/void/vehicle, /area/space) "i" = ( -/turf/open/shuttle/vehicle{ - icon_state = "floor_1_1_3" - }, -/area/vehicle/apc) +/turf/open/shuttle/vehicle/floor_1_1_3, +/area/interior/vehicle/apc) "j" = ( /obj/effect/landmark/interior/spawn/entrance{ dir = 8; @@ -86,10 +76,8 @@ dir = 1; pixel_x = 8 }, -/turf/open/shuttle/vehicle{ - icon_state = "floor_3_13" - }, -/area/vehicle/apc) +/turf/open/shuttle/vehicle/floor_3_13, +/area/interior/vehicle/apc) "k" = ( /obj/structure/interior_wall/apc{ icon_state = "wall"; @@ -105,10 +93,8 @@ layer = 5.21; pixel_y = 28 }, -/turf/open/shuttle/vehicle{ - icon_state = "floor_3_8_1" - }, -/area/vehicle/apc) +/turf/open/shuttle/vehicle/floor_3_8_1, +/area/interior/vehicle/apc) "m" = ( /obj/structure/interior_wall/apc{ icon_state = "front_1" @@ -136,10 +122,8 @@ dir = 1; pixel_x = -8 }, -/turf/open/shuttle/vehicle{ - icon_state = "floor_3_8_1" - }, -/area/vehicle/apc) +/turf/open/shuttle/vehicle/floor_3_8_1, +/area/interior/vehicle/apc) "r" = ( /obj/effect/landmark/interior/spawn/interior_viewport{ dir = 8; @@ -154,10 +138,8 @@ pixel_y = 32; tag = "left" }, -/turf/open/shuttle/vehicle{ - icon_state = "floor_1_11" - }, -/area/vehicle/apc) +/turf/open/shuttle/vehicle/floor_1_11, +/area/interior/vehicle/apc) "s" = ( /obj/structure/interior_wall/apc{ icon_state = "rear_2" @@ -176,10 +158,8 @@ pixel_x = -14; pixel_y = 38 }, -/turf/open/shuttle/vehicle{ - icon_state = "floor_3_9_1" - }, -/area/vehicle/apc) +/turf/open/shuttle/vehicle/floor_3_9_1, +/area/interior/vehicle/apc) "u" = ( /obj/structure/interior_wall/apc{ icon_state = "wheel_front_top_1"; @@ -205,10 +185,8 @@ /area/space) "y" = ( /obj/effect/landmark/interior/spawn/weapons_loader, -/turf/open/shuttle/vehicle{ - icon_state = "floor_3_6" - }, -/area/vehicle/apc) +/turf/open/shuttle/vehicle/floor_3_6, +/area/interior/vehicle/apc) "z" = ( /obj/effect/landmark/interior/spawn/entrance{ dir = 8; @@ -216,10 +194,8 @@ pixel_x = -32; tag = "rear center" }, -/turf/open/shuttle/vehicle{ - icon_state = "floor_1_13" - }, -/area/vehicle/apc) +/turf/open/shuttle/vehicle/floor_1_13, +/area/interior/vehicle/apc) "A" = ( /obj/structure/interior_wall/apc{ icon_state = "wheel_back_top_1"; @@ -237,18 +213,14 @@ dir = 1; pixel_x = -8 }, -/turf/open/shuttle/vehicle{ - icon_state = "floor_3_13" - }, -/area/vehicle/apc) +/turf/open/shuttle/vehicle/floor_3_13, +/area/interior/vehicle/apc) "C" = ( /obj/structure/bed/chair/vehicle{ dir = 4 }, -/turf/open/shuttle/vehicle{ - icon_state = "floor_3_11" - }, -/area/vehicle/apc) +/turf/open/shuttle/vehicle/floor_3_11, +/area/interior/vehicle/apc) "D" = ( /obj/structure/interior_wall/apc{ icon_state = "rear_wheel_L" @@ -256,10 +228,8 @@ /turf/open/void/vehicle, /area/space) "E" = ( -/turf/open/shuttle/vehicle{ - icon_state = "floor_1_5" - }, -/area/vehicle/apc) +/turf/open/shuttle/vehicle/floor_1_5, +/area/interior/vehicle/apc) "F" = ( /obj/structure/interior_wall/apc{ icon_state = "corner_small_R"; @@ -295,10 +265,8 @@ pixel_x = -24; pixel_y = 28 }, -/turf/open/shuttle/vehicle{ - icon_state = "floor_1_11" - }, -/area/vehicle/apc) +/turf/open/shuttle/vehicle/floor_1_11, +/area/interior/vehicle/apc) "J" = ( /obj/structure/interior_wall/apc{ icon_state = "corner_inverse_R"; @@ -319,10 +287,8 @@ /turf/open/void/vehicle, /area/space) "L" = ( -/turf/open/shuttle/vehicle{ - icon_state = "floor_0_1_15" - }, -/area/vehicle/apc) +/turf/open/shuttle/vehicle/floor_0_1_15, +/area/interior/vehicle/apc) "M" = ( /obj/structure/interior_wall/apc{ icon_state = "front_wheel_L"; @@ -340,10 +306,8 @@ /obj/effect/landmark/interior/spawn/vehicle_driver_seat/armor{ dir = 4 }, -/turf/open/shuttle/vehicle{ - icon_state = "floor_3_9_1" - }, -/area/vehicle/apc) +/turf/open/shuttle/vehicle/floor_3_9_1, +/area/interior/vehicle/apc) "P" = ( /obj/structure/interior_wall/apc{ icon_state = "corner_small_L" @@ -382,10 +346,8 @@ /turf/open/void/vehicle, /area/space) "U" = ( -/turf/open/shuttle/vehicle{ - icon_state = "floor_1_14" - }, -/area/vehicle/apc) +/turf/open/shuttle/vehicle/floor_1_14, +/area/interior/vehicle/apc) "V" = ( /obj/structure/interior_wall/apc{ icon_state = "rear_1" @@ -408,10 +370,8 @@ pixel_x = -8; pixel_y = 28 }, -/turf/open/shuttle/vehicle{ - icon_state = "floor_3_13" - }, -/area/vehicle/apc) +/turf/open/shuttle/vehicle/floor_3_13, +/area/interior/vehicle/apc) "X" = ( /obj/structure/interior_wall/apc{ icon_state = "wall_2"; @@ -443,10 +403,8 @@ pixel_x = -7; pixel_y = 23 }, -/turf/open/shuttle/vehicle{ - icon_state = "floor_3_13" - }, -/area/vehicle/apc) +/turf/open/shuttle/vehicle/floor_3_13, +/area/interior/vehicle/apc) (1,1,1) = {" G diff --git a/maps/interiors/arc.dmm b/maps/interiors/arc.dmm new file mode 100644 index 000000000000..f1a7f11a8f34 --- /dev/null +++ b/maps/interiors/arc.dmm @@ -0,0 +1,113 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"dH" = ( +/obj/effect/landmark/interior/spawn/entrance{ + alpha = 50; + exit_type = /obj/structure/interior_exit/vehicle/arc; + name = "ARC exit door"; + pixel_y = -10; + tag = "right" + }, +/turf/open/floor, +/area/interior/vehicle/arc) +"sE" = ( +/turf/open/void/vehicle, +/area/space) +"yX" = ( +/obj/effect/landmark/interior/spawn/telephone{ + pixel_x = -12; + pixel_y = 15 + }, +/obj/effect/landmark/interior/spawn/vehicle_driver_seat/armor{ + dir = 4 + }, +/obj/item/device/megaphone, +/turf/open/floor, +/area/interior/vehicle/arc) +"Dn" = ( +/obj/structure/machinery/prop/almayer/CICmap/computer{ + dir = 4; + layer = 2.98; + pixel_x = -13; + pixel_y = 4 + }, +/obj/structure/machinery/computer/groundside_operations/arc{ + dir = 4; + layer = 2.981; + pixel_x = -13; + pixel_y = -9 + }, +/obj/structure/bed/chair/comfy/arc{ + dir = 8 + }, +/turf/open/floor, +/area/interior/vehicle/arc) +"DG" = ( +/obj/structure/machinery/computer/overwatch/almayer/small{ + dir = 4; + layer = 2.982; + pixel_x = -13; + pixel_y = 10 + }, +/obj/structure/machinery/computer/intel/disk_reader{ + dir = 4; + layer = 2.983; + pixel_x = -13; + pixel_y = -3 + }, +/obj/structure/bed/chair/comfy/arc{ + dir = 8 + }, +/turf/open/floor, +/area/interior/vehicle/arc) +"Ly" = ( +/obj/effect/landmark/interior/spawn/weapons_loader{ + pixel_x = -2 + }, +/turf/open/floor, +/area/interior/vehicle/arc) +"NS" = ( +/obj/effect/landmark/interior/spawn/interior_viewport{ + layer = 2.98; + pixel_x = 8; + pixel_y = 4 + }, +/obj/structure/bed/chair/vehicle{ + pixel_x = -7 + }, +/turf/open/floor, +/area/interior/vehicle/arc) +"Rb" = ( +/obj/structure/prop/vehicle/arc, +/turf/open/void/vehicle, +/area/space) + +(1,1,1) = {" +sE +sE +sE +Rb +"} +(2,1,1) = {" +sE +Dn +DG +sE +"} +(3,1,1) = {" +sE +NS +dH +sE +"} +(4,1,1) = {" +sE +yX +Ly +sE +"} +(5,1,1) = {" +sE +sE +sE +sE +"} diff --git a/maps/interiors/fancylocker.dmm b/maps/interiors/fancylocker.dmm index a6ecb6155e72..2629f6210056 100644 --- a/maps/interiors/fancylocker.dmm +++ b/maps/interiors/fancylocker.dmm @@ -1,96 +1,83 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE "a" = ( /turf/closed/wall/wood, -/area/vehicle/apc) +/area/interior/fancylocker) "b" = ( /turf/open/floor/wood, -/area/vehicle/apc) +/area/interior/fancylocker) "c" = ( /obj/effect/landmark/interior/spawn/entrance/step_toward{ dir = 8; - exit_type = /obj/structure/interior_exit/fancy + exit_type = /obj/structure/interior_exit/fancy; + tag = "fancy" }, /turf/open/floor/wood, -/area/vehicle/apc) +/area/interior/fancylocker) "d" = ( -/turf/open/floor/carpet/edge{ - dir = 9 - }, -/area/vehicle/apc) +/turf/open/floor/carpet/edge/northwest, +/area/interior/fancylocker) "e" = ( -/turf/open/floor/carpet/edge{ - dir = 1 - }, -/area/vehicle/apc) +/turf/open/floor/carpet/edge/north, +/area/interior/fancylocker) "f" = ( -/turf/open/floor/carpet/edge{ - dir = 5 - }, -/area/vehicle/apc) +/turf/open/floor/carpet/edge/northeast, +/area/interior/fancylocker) "g" = ( -/turf/open/floor/carpet/edge{ - dir = 8 - }, -/area/vehicle/apc) +/turf/open/floor/carpet/edge/west, +/area/interior/fancylocker) "h" = ( /obj/structure/bed/sofa/south/white/left, /turf/open/floor/carpet, -/area/vehicle/apc) +/area/interior/fancylocker) "i" = ( /obj/structure/bed/sofa/south/white, /turf/open/floor/carpet, -/area/vehicle/apc) +/area/interior/fancylocker) "j" = ( /obj/structure/bed/sofa/south/white/right, /turf/open/floor/carpet, -/area/vehicle/apc) +/area/interior/fancylocker) "k" = ( -/turf/open/floor/carpet/edge{ - dir = 4 - }, -/area/vehicle/apc) +/turf/open/floor/carpet/edge/east, +/area/interior/fancylocker) "l" = ( /obj/structure/surface/table/woodentable/fancy, /obj/item/device/flashlight/lamp/green, /turf/open/floor/wood, -/area/vehicle/apc) +/area/interior/fancylocker) "m" = ( -/turf/open/floor/carpet/edge{ - dir = 10 - }, -/area/vehicle/apc) +/turf/open/floor/carpet/edge/southwest, +/area/interior/fancylocker) "n" = ( /turf/open/floor/carpet/edge, -/area/vehicle/apc) +/area/interior/fancylocker) "o" = ( -/turf/open/floor/carpet/edge{ - dir = 6 - }, -/area/vehicle/apc) +/turf/open/floor/carpet/edge/southeast, +/area/interior/fancylocker) "p" = ( /obj/structure/surface/table/woodentable/fancy, /turf/open/floor/carpet, -/area/vehicle/apc) +/area/interior/fancylocker) "q" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_10" }, /turf/open/floor/wood, -/area/vehicle/apc) +/area/interior/fancylocker) "r" = ( /obj/structure/coatrack, /turf/open/floor/wood, -/area/vehicle/apc) +/area/interior/fancylocker) "s" = ( /obj/structure/surface/table/woodentable/fancy, /obj/structure/machinery/chem_dispenser/soda, /turf/open/floor/wood, -/area/vehicle/apc) +/area/interior/fancylocker) "t" = ( /obj/structure/surface/table/woodentable/fancy, /obj/structure/machinery/chem_dispenser/soda/beer, /turf/open/floor/wood, -/area/vehicle/apc) +/area/interior/fancylocker) "u" = ( /obj/structure/surface/table/woodentable/fancy, /obj/item/reagent_container/food/snacks/milosoup{ @@ -103,12 +90,12 @@ dir = 1 }, /turf/open/floor/wood, -/area/vehicle/apc) +/area/interior/fancylocker) "v" = ( /obj/structure/surface/table/woodentable/fancy, /obj/item/reagent_container/food/snacks/appletart, /turf/open/floor/wood, -/area/vehicle/apc) +/area/interior/fancylocker) "w" = ( /obj/structure/surface/table/woodentable/fancy, /obj/item/reagent_container/food/snacks/popcorn{ @@ -124,33 +111,33 @@ pixel_x = 5 }, /turf/open/floor/wood, -/area/vehicle/apc) +/area/interior/fancylocker) "x" = ( /obj/structure/surface/table/woodentable/fancy, /obj/item/ashtray/bronze, /turf/open/floor/carpet, -/area/vehicle/apc) +/area/interior/fancylocker) "y" = ( /obj/structure/surface/table/woodentable/fancy, /obj/item/clothing/mask/cigarette/cigar/cohiba, /obj/item/tool/lighter/zippo, /turf/open/floor/carpet, -/area/vehicle/apc) +/area/interior/fancylocker) "z" = ( /obj/structure/bed/chair/wood/wings{ icon_state = "wooden_chair_wings"; dir = 4 }, /turf/open/floor/wood, -/area/vehicle/apc) +/area/interior/fancylocker) "A" = ( /obj/structure/machinery/disposal, /turf/open/floor/wood, -/area/vehicle/apc) +/area/interior/fancylocker) "B" = ( /obj/structure/machinery/light, /turf/open/floor/carpet/edge, -/area/vehicle/apc) +/area/interior/fancylocker) (1,1,1) = {" a diff --git a/maps/interiors/tank.dmm b/maps/interiors/tank.dmm index 75da1e24f72d..e5c019e01993 100644 --- a/maps/interiors/tank.dmm +++ b/maps/interiors/tank.dmm @@ -15,15 +15,11 @@ pixel_x = 22; pixel_y = -14 }, -/turf/open/shuttle/vehicle{ - icon_state = "floor_1_12" - }, -/area/vehicle/tank) +/turf/open/shuttle/vehicle/floor_1_12, +/area/interior/vehicle/tank) "c" = ( /obj/structure/prop/tank{ - icon_state = "prop2"; - layer = 3; - pixel_x = 0 + icon_state = "prop2" }, /obj/effect/landmark/interior/spawn/weapons_loader{ layer = 2; @@ -36,26 +32,18 @@ pixel_x = 12; pixel_y = 58 }, -/turf/open/shuttle/vehicle{ - icon_state = "floor_3_3" - }, -/area/vehicle/tank) +/turf/open/shuttle/vehicle/floor_3_3, +/area/interior/vehicle/tank) "e" = ( /obj/effect/landmark/interior/spawn/vehicle_gunner_seat/armor{ dir = 4 }, -/turf/open/shuttle/vehicle{ - icon_state = "floor_3_13" - }, -/area/vehicle/tank) +/turf/open/shuttle/vehicle/floor_3_13, +/area/interior/vehicle/tank) "f" = ( -/obj/structure/prop/tank{ - pixel_x = 0 - }, -/turf/open/shuttle/vehicle{ - icon_state = "floor_3_1_1" - }, -/area/vehicle/tank) +/obj/structure/prop/tank, +/turf/open/shuttle/vehicle/floor_3_1_1, +/area/interior/vehicle/tank) "g" = ( /obj/structure/interior_wall/tank{ alpha = 50; @@ -91,18 +79,14 @@ /area/space) "u" = ( /obj/structure/prop/tank{ - icon_state = "prop5"; - pixel_x = 0 + icon_state = "prop5" }, /obj/structure/prop/tank{ icon_state = "prop7"; - pixel_x = 0; pixel_y = 32 }, -/turf/open/shuttle/vehicle{ - icon_state = "floor_3_8" - }, -/area/vehicle/tank) +/turf/open/shuttle/vehicle/floor_3_8, +/area/interior/vehicle/tank) "v" = ( /obj/structure/interior_wall/tank{ layer = 2 @@ -140,25 +124,19 @@ /obj/structure/prop/tank{ density = 0; icon_state = "prop6"; - pixel_x = 0; pixel_y = 32 }, /obj/structure/prop/tank{ density = 0; icon_state = "prop8_extra"; - layer = 4.12; - pixel_x = 0 + layer = 4.12 }, /obj/structure/prop/tank{ density = 0; - icon_state = "prop4"; - layer = 3; - pixel_x = 0 - }, -/turf/open/shuttle/vehicle{ - icon_state = "floor_3_7" + icon_state = "prop4" }, -/area/vehicle/tank) +/turf/open/shuttle/vehicle/floor_3_7, +/area/interior/vehicle/tank) "H" = ( /obj/structure/interior_wall/tank{ icon_state = "exterior_3"; @@ -169,22 +147,16 @@ /area/space) "J" = ( /obj/structure/prop/tank{ - icon_state = "prop3"; - pixel_x = 0 - }, -/turf/open/shuttle/vehicle{ - icon_state = "floor_3_4" + icon_state = "prop3" }, -/area/vehicle/tank) +/turf/open/shuttle/vehicle/floor_3_4, +/area/interior/vehicle/tank) "T" = ( /obj/structure/prop/tank{ - icon_state = "prop1"; - pixel_x = 0 + icon_state = "prop1" }, -/turf/open/shuttle/vehicle{ - icon_state = "floor_3_9" - }, -/area/vehicle/tank) +/turf/open/shuttle/vehicle/floor_3_9, +/area/interior/vehicle/tank) "Z" = ( /obj/structure/vehicle_locker/tank{ pixel_y = 11 @@ -198,10 +170,8 @@ pixel_x = 9; pixel_y = 31 }, -/turf/open/shuttle/vehicle{ - icon_state = "floor_1_11" - }, -/area/vehicle/tank) +/turf/open/shuttle/vehicle/floor_1_11, +/area/interior/vehicle/tank) (1,1,1) = {" j diff --git a/maps/interiors/van.dmm b/maps/interiors/van.dmm index 27a42dd93fd7..673f1ef07d2a 100644 --- a/maps/interiors/van.dmm +++ b/maps/interiors/van.dmm @@ -10,10 +10,8 @@ pixel_x = -32; tag = "back_right" }, -/turf/open/shuttle/vehicle{ - icon_state = "floor_1_10" - }, -/area/vehicle/van) +/turf/open/shuttle/vehicle/floor_1_10, +/area/interior/vehicle/van) "e" = ( /obj/structure/interior_wall/van{ icon_state = "background_1" @@ -35,10 +33,8 @@ alpha = 100; pixel_y = -2 }, -/turf/open/shuttle/vehicle{ - icon_state = "floor_1_1" - }, -/area/vehicle/van) +/turf/open/shuttle/vehicle/floor_1_1, +/area/interior/vehicle/van) "i" = ( /obj/structure/interior_wall/van{ icon_state = "front_1" @@ -68,10 +64,8 @@ /obj/effect/vehicle_roof/van{ icon_state = "roof_3" }, -/turf/open/shuttle/vehicle{ - icon_state = "floor_1_8" - }, -/area/vehicle/van) +/turf/open/shuttle/vehicle/floor_1_8, +/area/interior/vehicle/van) "r" = ( /obj/structure/interior_wall/van{ icon_state = "background_3" @@ -91,10 +85,8 @@ pixel_x = -32; tag = "back_left" }, -/turf/open/shuttle/vehicle{ - icon_state = "floor_1_7" - }, -/area/vehicle/van) +/turf/open/shuttle/vehicle/floor_1_7, +/area/interior/vehicle/van) "t" = ( /obj/effect/landmark/interior/spawn/entrance{ dir = 1; @@ -112,10 +104,8 @@ /obj/effect/landmark/interior/spawn/interior_viewport/simple/windshield{ icon_state = "windshield_viewport_bottom" }, -/turf/open/shuttle/vehicle{ - icon_state = "floor_3_11" - }, -/area/vehicle/van) +/turf/open/shuttle/vehicle/floor_3_11, +/area/interior/vehicle/van) "v" = ( /obj/structure/interior_wall/van{ icon_state = "interior_door" @@ -146,13 +136,10 @@ tag = "right" }, /obj/structure/bed/chair/comfy{ - dir = 4; - icon_state = "comfychair" - }, -/turf/open/shuttle/vehicle{ - icon_state = "floor_3_12" + dir = 4 }, -/area/vehicle/van) +/turf/open/shuttle/vehicle/floor_3_12, +/area/interior/vehicle/van) "z" = ( /obj/structure/interior_wall/van{ icon_state = "back_1" @@ -178,10 +165,8 @@ /obj/structure/bed/chair/comfy{ dir = 1 }, -/turf/open/shuttle/vehicle{ - icon_state = "floor_1_9" - }, -/area/vehicle/van) +/turf/open/shuttle/vehicle/floor_1_9, +/area/interior/vehicle/van) "J" = ( /obj/structure/interior_wall/van{ alpha = 50; @@ -199,10 +184,8 @@ /obj/effect/vehicle_roof/van{ icon_state = "roof_2" }, -/turf/open/shuttle/vehicle{ - icon_state = "floor_1_2" - }, -/area/vehicle/van) +/turf/open/shuttle/vehicle/floor_1_2, +/area/interior/vehicle/van) "O" = ( /turf/open/void/vehicle, /area/space) diff --git a/maps/lv624.json b/maps/lv624.json index bec99892a347..7c782c0a43bf 100644 --- a/maps/lv624.json +++ b/maps/lv624.json @@ -9,15 +9,16 @@ "/datum/equipment_preset/survivor/doctor/lv", "/datum/equipment_preset/survivor/chaplain/lv", "/datum/equipment_preset/survivor/engineer/lv", - "/datum/equipment_preset/survivor/corporate", + "/datum/equipment_preset/survivor/corporate/lv", "/datum/equipment_preset/survivor/trucker/lv", "/datum/equipment_preset/survivor/security/lv", + "/datum/equipment_preset/survivor/colonial_marshal/lv", "/datum/equipment_preset/survivor/goon", "/datum/equipment_preset/survivor/clf", "/datum/equipment_preset/survivor/civilian" ], "map_item_type": "/obj/item/map/lazarus_landing_map", - "announce_text": "An automated distress signal has been received from archaeology site Lazarus Landing, on border world LV-624. A response team from the ###SHIPNAME### will be dispatched shortly to investigate.", + "announce_text": "An automated distress signal has been received from the archaeological site of Lazarus Landing, on the border world of LV-624. A response team from the ###SHIPNAME### will be dispatched shortly to investigate.", "monkey_types": [ "farwa", "monkey", diff --git a/maps/map_files/BigRed/BigRed.dmm b/maps/map_files/BigRed/BigRed.dmm index 6a90f35e4de3..b71c76ab1cb9 100644 --- a/maps/map_files/BigRed/BigRed.dmm +++ b/maps/map_files/BigRed/BigRed.dmm @@ -8,76 +8,47 @@ icon_state = "pwall" }, /area/space) -"aac" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W-corner" - }, -/turf/open/mars_cave{ - icon_state = "mars_cave_7" - }, -/area/bigredv2/caves_lambda) "aad" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves_north) "aae" = ( /turf/closed/wall/solaris/reinforced, /area/bigredv2/outside/space_port) "aaf" = ( -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/space_port) "aag" = ( /obj/structure/machinery/floodlight/landing/floor, -/turf/open/floor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/asteroidplating, /area/bigredv2/outside/space_port) "aah" = ( /turf/open/floor/plating, /area/bigredv2/outside/space_port) "aai" = ( /obj/structure/machinery/landinglight/ds1/delaytwo, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/bigredv2/outside/space_port) "aaj" = ( /obj/structure/machinery/landinglight/ds1/delayone, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/bigredv2/outside/space_port) "aak" = ( /obj/structure/machinery/landinglight/ds1, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/bigredv2/outside/space_port) "aal" = ( /obj/structure/machinery/landinglight/ds1/delaythree, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/bigredv2/outside/space_port) "aam" = ( -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/east, /area/bigredv2/outside/space_port) "aan" = ( /obj/effect/landmark/crap_item, /obj/structure/machinery/landinglight/ds1/delaythree{ dir = 4 }, -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/east, /area/bigredv2/outside/space_port) "aao" = ( /turf/closed/wall/solaris/rock, @@ -86,10 +57,7 @@ /obj/structure/machinery/landinglight/ds1/delaythree{ dir = 8 }, -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/west, /area/bigredv2/outside/space_port) "aaq" = ( /obj/structure/sign/safety/hazard, @@ -97,25 +65,16 @@ /area/bigredv2/outside/space_port) "aar" = ( /obj/effect/landmark/hunter_primary, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/space_port) "aas" = ( -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/telecomm) "aat" = ( /obj/structure/machinery/landinglight/ds1{ dir = 4 }, -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/east, /area/bigredv2/outside/space_port) "aau" = ( /obj/docking_port/stationary/marine_dropship/lz1{ @@ -127,10 +86,7 @@ /obj/structure/machinery/landinglight/ds1/delaytwo{ dir = 8 }, -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/west, /area/bigredv2/outside/space_port) "aaw" = ( /turf/closed/wall/solaris, @@ -141,54 +97,42 @@ pixel_x = -32 }, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/space_port) "aay" = ( /obj/structure/machinery/vending/cigarette/colony, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/space_port) "aaz" = ( /obj/structure/machinery/status_display{ pixel_y = 32 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/space_port) "aaA" = ( /obj/structure/extinguisher_cabinet{ pixel_y = 32 }, /obj/structure/machinery/recharge_station, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/space_port) +"aaB" = ( +/turf/open/floor/asteroidwarning/north, +/area/bigredv2/outside/telecomm/n_cave) "aaC" = ( /obj/structure/surface/table, /obj/effect/spawner/random/tool, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/space_port) "aaD" = ( /obj/structure/prop/tower, -/turf/open/floor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/asteroidplating, /area/bigredv2/outside/space_port) "aaE" = ( /obj/structure/machinery/landinglight/ds1/delayone{ dir = 4 }, -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/east, /area/bigredv2/outside/space_port) "aaF" = ( /obj/structure/machinery/camera/autoname/lz_camera, @@ -198,10 +142,7 @@ /obj/structure/machinery/landinglight/ds1/delayone{ dir = 8 }, -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/west, /area/bigredv2/outside/space_port) "aaH" = ( /obj/structure/cargo_container/grant/left, @@ -219,77 +160,54 @@ /obj/structure/surface/table, /obj/effect/spawner/random/technology_scanner, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/telecomm) "aaL" = ( /obj/structure/closet/firecloset, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/space_port) "aaM" = ( /obj/structure/machinery/vending/snack, /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - icon_state = "whitegreenfull" - }, +/turf/open/floor/whitegreenfull, /area/bigredv2/outside/medical) "aaN" = ( /obj/structure/surface/table, /obj/effect/spawner/random/powercell, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/space_port) "aaO" = ( -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/space_port) "aaP" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/space_port) "aaQ" = ( /obj/structure/surface/table, /obj/effect/spawner/random/toolbox, /obj/effect/spawner/random/tool, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/space_port) "aaR" = ( /obj/structure/machinery/computer/telecomms/traffic, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/space_port) "aaS" = ( /obj/structure/machinery/landinglight/ds1/delaytwo{ dir = 4 }, -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/east, /area/bigredv2/outside/space_port) "aaT" = ( /obj/structure/machinery/landinglight/ds1{ dir = 8 }, -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/west, /area/bigredv2/outside/space_port) "aaU" = ( /obj/effect/decal/cleanable/blood/gibs/core, @@ -298,18 +216,14 @@ "aaV" = ( /obj/structure/surface/table, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/telecomm) "aaW" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ dir = 1; name = "\improper Spaceport" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/space_port) "aaX" = ( /obj/structure/closet/secure_closet/injection, @@ -323,25 +237,17 @@ /obj/structure/machinery/camera/autoname{ dir = 8 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/space_port) "aaZ" = ( /obj/effect/landmark/hunter_primary, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/telecomm) "aba" = ( /obj/structure/machinery/landinglight/ds1/delaythree{ dir = 4 }, -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/east, /area/bigredv2/outside/space_port) "abc" = ( /obj/effect/decal/cleanable/blood/oil, @@ -353,23 +259,17 @@ pixel_x = -32; start_charge = 0 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/space_port) "abf" = ( /obj/effect/decal/cleanable/blood/gibs/up, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/space_port) "abg" = ( /obj/structure/bed/chair/office/dark{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/space_port) "abh" = ( /obj/structure/surface/table, @@ -380,26 +280,18 @@ pixel_x = 32 }, /obj/item/tool/pen, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/space_port) "abi" = ( /obj/effect/landmark/crap_item, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/space_port) "abj" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/landinglight/ds1/delaytwo{ dir = 8 }, -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/west, /area/bigredv2/outside/space_port) "abk" = ( /obj/structure/cargo_container/arious/leftmid, @@ -418,49 +310,34 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/space_port) "abo" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/space_port) "abp" = ( /obj/structure/machinery/blackbox_recorder, /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/space_port) "abq" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_10" - }, +/turf/open/mars_cave/mars_cave_10, /area/bigredv2/caves_north) "abr" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_7" - }, +/turf/open/mars_cave/mars_cave_7, /area/bigredv2/caves_north) "abs" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_18" - }, +/turf/open/mars_cave/mars_cave_18, /area/bigredv2/caves_north) "abt" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/landinglight/ds1/delayone{ dir = 8 }, -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/west, /area/bigredv2/outside/space_port) "abu" = ( /obj/structure/cargo_container/watatsumi/leftmid, @@ -488,31 +365,22 @@ /obj/structure/machinery/computer/shuttle/dropship/flight/lz1{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/landing/console) "abA" = ( /obj/structure/bed/chair/office/dark, /obj/effect/decal/cleanable/blood/gibs/core, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/space_port) "abB" = ( /obj/structure/surface/table, /obj/effect/spawner/random/tool, /obj/effect/spawner/random/tech_supply, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/space_port) "abC" = ( /obj/structure/machinery/light, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/space_port) "abD" = ( /obj/effect/decal/cleanable/blood{ @@ -523,73 +391,43 @@ "abE" = ( /obj/structure/surface/table, /obj/effect/spawner/random/tool, -/turf/open/floor{ - dir = 10; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/southwest, /area/bigredv2/outside/space_port) "abF" = ( /obj/structure/surface/table, /obj/effect/spawner/random/bomb_supply, /obj/effect/spawner/random/technology_scanner, /obj/effect/spawner/random/tool, -/turf/open/floor{ - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2, /area/bigredv2/outside/space_port) "abG" = ( /obj/structure/surface/table, /obj/effect/spawner/random/technology_scanner, /obj/effect/spawner/random/tool, -/turf/open/floor{ - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2, /area/bigredv2/outside/space_port) "abH" = ( /obj/structure/machinery/computer/cameras{ dir = 1 }, /obj/structure/surface/table, -/turf/open/floor{ - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2, /area/bigredv2/outside/space_port) "abI" = ( /obj/item/shard, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2, /area/bigredv2/outside/space_port) "abJ" = ( -/turf/open/floor{ - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2, /area/bigredv2/outside/space_port) "abK" = ( /obj/structure/surface/table, /obj/effect/spawner/random/tool, -/turf/open/floor{ - dir = 6; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/southeast, /area/bigredv2/outside/space_port) -"abL" = ( -/obj/effect/landmark/crap_item, -/turf/open/mars_cave{ - icon_state = "mars_cave_19" - }, -/area/bigredv2/caves_north) "abM" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_5" - }, -/area/bigredv2/caves_north) -"abN" = ( -/obj/effect/landmark/hunter_primary, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_5, /area/bigredv2/caves_north) "abO" = ( /turf/open/mars_cave, @@ -598,19 +436,13 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/space_port) "abQ" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/space_port) "abR" = ( /obj/structure/window/framed/solaris, @@ -632,27 +464,8 @@ /obj/structure/window_frame/solaris, /turf/open/floor/plating, /area/bigredv2/outside/space_port) -"abU" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_6" - }, -/area/bigredv2/caves_north) "abV" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_11" - }, -/area/bigredv2/caves_north) -"abW" = ( -/obj/effect/landmark/hunter_secondary, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, -/area/bigredv2/caves_north) -"abX" = ( -/obj/effect/landmark/crap_item, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_11, /area/bigredv2/caves_north) "abY" = ( /obj/structure/barricade/wooden{ @@ -660,18 +473,13 @@ dir = 4; health = 25000 }, -/turf/open/mars_cave{ - icon_state = "mars_cave_7" - }, +/turf/open/mars_cave/mars_cave_7, /area/bigredv2/caves_north) "abZ" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/space_port) "aca" = ( /obj/structure/machinery/light{ @@ -685,19 +493,7 @@ dir = 4; health = 25000 }, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, -/area/bigredv2/caves_north) -"acc" = ( -/obj/structure/barricade/wooden{ - desc = "This barricade is heavily reinforced. Nothing short of blasting it open seems like it'll do the trick, that or melting the breams supporting it..."; - dir = 4; - health = 25000 - }, -/turf/open/mars_cave{ - icon_state = "mars_cave_15" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves_north) "acd" = ( /obj/effect/landmark/good_item, @@ -705,53 +501,33 @@ /area/bigredv2/outside/space_port) "ace" = ( /obj/structure/cargo_container/arious/leftmid, -/turf/open/floor/plating{ - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate, /area/bigredv2/outside/space_port) "acf" = ( /obj/structure/cargo_container/arious/rightmid, -/turf/open/floor/plating{ - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate, /area/bigredv2/outside/space_port) "acg" = ( /obj/structure/cargo_container/arious/right, -/turf/open/floor/plating{ - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate, /area/bigredv2/outside/space_port) "ach" = ( -/turf/open/floor/plating{ - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate, /area/bigredv2/outside/space_port) "acj" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/plating{ - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate, /area/bigredv2/outside/space_port) -"ack" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_23" - }, -/area/bigredv2/caves_north) "acl" = ( /obj/structure/filingcabinet, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/marshal_office) "acm" = ( /obj/item/tool/pickaxe, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/north, /area/bigredv2/outside/filtration_plant) "acn" = ( /obj/effect/decal/cleanable/blood, @@ -787,24 +563,16 @@ /obj/structure/surface/table/reinforced/prison, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, /obj/item/weapon/gun/shotgun/pump/dual_tube/cmb, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/north, /area/bigred/ground/garage_workshop) "acv" = ( /obj/structure/filingcabinet/security, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/marshal_office) "acw" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/east, /area/bigredv2/outside/space_port) "acx" = ( /obj/effect/landmark/crap_item, @@ -812,16 +580,10 @@ /area/bigredv2/outside/space_port) "acy" = ( /obj/structure/machinery/botany, -/turf/open/floor{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/north, /area/bigredv2/outside/marshal_office) "acz" = ( -/turf/open/floor{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/north, /area/bigredv2/outside/marshal_office) "acA" = ( /turf/closed/wall/solaris/reinforced, @@ -831,63 +593,34 @@ /turf/open/floor/plating, /area/bigredv2/outside/space_port) "acC" = ( -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/marshal_office) "acD" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "white" - }, -/area/bigredv2/outside/marshal_office) -"acE" = ( -/obj/structure/window/reinforced, -/obj/structure/machinery/botany, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/marshal_office) "acF" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "white" - }, -/area/bigredv2/outside/marshal_office) -"acG" = ( -/obj/structure/window/reinforced, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/marshal_office) "acH" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/telecomm) "acI" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/telecomm) "acJ" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/space_port) "acK" = ( /obj/structure/machinery/landinglight/ds1/delaythree{ @@ -896,31 +629,22 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/east, /area/bigredv2/outside/space_port) "acL" = ( /obj/structure/machinery/camera/autoname, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/marshal_office) "acM" = ( /obj/structure/surface/table, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/marshal_office) "acO" = ( /obj/structure/bed/chair{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/marshal_office) "acP" = ( /turf/open/mars, @@ -934,55 +658,40 @@ name = "\improper Telecommunications" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/telecomm) "acS" = ( /obj/structure/machinery/landinglight/ds1{ dir = 4 }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/east, /area/bigredv2/outside/space_port) "acT" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/marshal_office) "acU" = ( /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/marshal_office) "acV" = ( /obj/structure/surface/table, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/marshal_office) "acX" = ( /obj/structure/machinery/washing_machine, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/marshal_office) "acY" = ( /obj/structure/surface/table, /obj/item/folder/black, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/telecomm) "acZ" = ( /turf/open/floor/greengrid, @@ -1001,62 +710,43 @@ /obj/structure/platform_decoration/kutjevo/rock{ dir = 4 }, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/space) "adb" = ( /obj/structure/surface/table, /obj/item/tool/hand_labeler, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/telecomm) "adc" = ( /obj/structure/surface/table/woodentable/fancy, /obj/item/clothing/head/det_hat, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/marshal_office) "add" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/telecomm) "ade" = ( -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/telecomm) "adf" = ( /obj/structure/surface/table, /obj/item/folder/black_random, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/telecomm) "adg" = ( /obj/structure/machinery/landinglight/ds1/delayone{ dir = 4 }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/east, /area/bigredv2/outside/space_port) "adh" = ( -/turf/open/floor{ - icon_state = "darkish" - }, +/turf/open/floor/darkish, /area/bigredv2/outside/marshal_office) "adi" = ( /obj/item/shard, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/marshal_office) "adj" = ( /obj/item/shard, @@ -1071,72 +761,52 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg2" - }, +/turf/open/floor/plating/platingdmg2/west, /area/bigredv2/outside/space_port) "adm" = ( /obj/structure/machinery/computer/arcade, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/marshal_office) "adn" = ( /obj/structure/bed/chair{ dir = 8 }, /obj/effect/landmark/corpsespawner/prisoner, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/marshal_office) "ado" = ( /obj/structure/bed/chair{ dir = 4 }, /obj/effect/decal/cleanable/blood, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/marshal_office) "adp" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/east, /area/bigredv2/outside/marshal_office) "adr" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/telecomm) "ads" = ( /obj/structure/surface/table, /obj/item/folder/yellow, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/telecomm) "adt" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/telecomm) "adu" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/telecomm) "adv" = ( /obj/structure/surface/table, @@ -1144,25 +814,18 @@ dir = 4 }, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/telecomm) "adw" = ( /obj/structure/machinery/landinglight/ds1/delaytwo{ dir = 4 }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/east, /area/bigredv2/outside/space_port) "ady" = ( /obj/structure/bed/chair, -/turf/open/floor{ - icon_state = "darkish" - }, +/turf/open/floor/darkish, /area/bigredv2/outside/marshal_office) "adz" = ( /obj/structure/window/framed/solaris/reinforced/tinted, @@ -1184,24 +847,17 @@ "adC" = ( /obj/structure/pipes/vents/pump, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/marshal_office) "adD" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/east, /area/bigredv2/outside/marshal_office) "adE" = ( /obj/structure/sink{ pixel_y = 32 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/bigredv2/outside/marshal_office) "adF" = ( /obj/structure/mirror{ @@ -1209,9 +865,7 @@ pixel_x = 30 }, /obj/item/tool/soap/deluxe, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/bigredv2/outside/marshal_office) "adG" = ( /obj/item/shard, @@ -1226,26 +880,19 @@ /obj/structure/surface/table, /obj/effect/spawner/random/technology_scanner, /obj/effect/spawner/random/tool, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/telecomm) "adI" = ( /obj/structure/surface/table, /obj/item/tool/extinguisher, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/telecomm) "adJ" = ( /obj/structure/machinery/landinglight/ds1/delaythree{ dir = 4 }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/east, /area/bigredv2/outside/space_port) "adL" = ( /obj/structure/machinery/light{ @@ -1256,28 +903,20 @@ "adM" = ( /obj/effect/decal/cleanable/blood, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/marshal_office) "adN" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/marshal_office) "adO" = ( -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/bigredv2/outside/marshal_office) "adP" = ( /obj/structure/machinery/camera/autoname{ dir = 8 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/bigredv2/outside/marshal_office) "adQ" = ( /obj/structure/reagent_dispensers/peppertank{ @@ -1297,9 +936,7 @@ "adT" = ( /obj/structure/closet/secure_closet/marshal, /obj/item/clothing/suit/storage/CMB, -/turf/open/floor{ - icon_state = "floor4" - }, +/turf/open/floor/floor4, /area/bigredv2/outside/marshal_office) "adU" = ( /obj/structure/surface/table, @@ -1311,25 +948,7 @@ /turf/open/floor, /area/bigredv2/outside/marshal_office) "adW" = ( -/turf/open/floor{ - icon_state = "wood" - }, -/area/bigredv2/outside/marshal_office) -"adX" = ( -/obj/structure/bookcase/manuals/engineering, -/obj/structure/machinery/light{ - dir = 1 - }, -/turf/open/floor{ - icon_state = "wood" - }, -/area/bigredv2/outside/marshal_office) -"adY" = ( -/obj/structure/closet/secure_closet/detective, -/obj/item/weapon/gun/smg/fp9000, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/marshal_office) "adZ" = ( /turf/closed/wall/solaris/reinforced, @@ -1345,31 +964,23 @@ phone_id = "Communications"; pixel_x = -18 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/telecomm) "aeb" = ( /obj/item/device/radio/headset, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/telecomm) "aec" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony{ name = "\improper Telecommunications" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/telecomm) "aed" = ( /obj/effect/decal/warning_stripes{ icon_state = "W-corner" }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/telecomm) "aee" = ( /obj/effect/decal/cleanable/dirt, @@ -1377,59 +988,40 @@ /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/telecomm) "aef" = ( /obj/structure/surface/table, /obj/item/device/radio/headset, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/telecomm) "aeg" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/space_port) "aeh" = ( /obj/structure/machinery/landinglight/ds1{ dir = 1 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/north, /area/bigredv2/outside/space_port) "aei" = ( /obj/structure/machinery/landinglight/ds1/delayone{ dir = 1 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/north, /area/bigredv2/outside/space_port) "aej" = ( /obj/structure/machinery/landinglight/ds1/delaytwo{ dir = 1 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/north, /area/bigredv2/outside/space_port) "aek" = ( /obj/structure/machinery/landinglight/ds1/delaythree{ dir = 1 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/north, /area/bigredv2/outside/space_port) "ael" = ( /obj/structure/machinery/camera/autoname{ @@ -1442,9 +1034,7 @@ dir = 1; name = "\improper Marshal Office Prison" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/marshal_office) "aen" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -1452,18 +1042,14 @@ dir = 1; name = "\improper Marshal Office Prison" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/marshal_office) "aeo" = ( /obj/structure/machinery/door/airlock/almayer/generic{ dir = 1; name = "\improper Marshal Office Prison Toilet" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/marshal_office) "aep" = ( /obj/structure/reagent_dispensers/peppertank{ @@ -1484,22 +1070,16 @@ "aes" = ( /obj/structure/surface/table/woodentable/fancy, /obj/structure/machinery/computer/cameras/wooden_tv, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/marshal_office) "aet" = ( /obj/structure/bed/chair/comfy, /obj/effect/decal/cleanable/blood, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/marshal_office) "aeu" = ( /obj/item/clothing/accessory/storage/holster/armpit, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/marshal_office) "aev" = ( /turf/open/floor/plating, @@ -1515,56 +1095,38 @@ /area/bigredv2/caves/lambda/xenobiology) "aey" = ( /obj/structure/machinery/chem_dispenser, -/turf/open/floor{ - dir = 9; - icon_state = "whiteyellow" - }, +/turf/open/floor/whiteyellow/northwest, /area/bigredv2/caves/lambda/xenobiology) "aez" = ( /obj/structure/machinery/chem_dispenser, -/turf/open/floor{ - dir = 1; - icon_state = "whiteyellow" - }, +/turf/open/floor/whiteyellow/north, /area/bigredv2/caves/lambda/xenobiology) "aeA" = ( /obj/structure/machinery/chem_master, -/turf/open/floor{ - dir = 5; - icon_state = "whiteyellow" - }, +/turf/open/floor/whiteyellow/northeast, /area/bigredv2/caves/lambda/xenobiology) "aeB" = ( /obj/structure/machinery/computer/telecomms/server{ req_one_access_txt = "19;200" }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/telecomm) "aeC" = ( /obj/structure/bed/chair/office/dark{ dir = 8 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/telecomm) "aeD" = ( /obj/structure/machinery/alarm{ dir = 4; pixel_x = -30 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/telecomm) "aeE" = ( /obj/structure/surface/table/reinforced, -/turf/open/floor{ - dir = 1; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/north, /area/bigredv2/caves/lambda/xenobiology) "aeF" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -1588,32 +1150,24 @@ /turf/open/mars, /area/bigredv2/outside/nw) "aeJ" = ( -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/marshal_office) "aeK" = ( /obj/structure/surface/table, /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/marshal_office) "aeL" = ( /obj/structure/bed, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/marshal_office) "aeM" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/bigredv2/outside/marshal_office) "aeN" = ( /obj/structure/bed/stool, @@ -1623,38 +1177,27 @@ "aeO" = ( /obj/structure/surface/table/woodentable/fancy, /obj/structure/machinery/recharger, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/marshal_office) "aeP" = ( /obj/structure/surface/table/woodentable/fancy, /obj/item/reagent_container/food/drinks/flask/detflask, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/marshal_office) "aeQ" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/northeast, /area/bigredv2/caves/lambda/xenobiology) "aeS" = ( /obj/structure/closet/crate/freezer, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/bigredv2/caves/lambda/xenobiology) "aeT" = ( /obj/structure/closet/secure_closet/freezer/fridge, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/bigredv2/caves/lambda/xenobiology) "aeU" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, @@ -1665,54 +1208,36 @@ /turf/open/floor/plating, /area/bigredv2/caves/lambda/xenobiology) "aeW" = ( -/turf/open/floor{ - dir = 8; - icon_state = "whiteyellow" - }, +/turf/open/floor/whiteyellow/west, /area/bigredv2/caves/lambda/xenobiology) "aeX" = ( /obj/structure/bed/chair/office/dark{ dir = 1 }, -/turf/open/floor{ - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull, /area/bigredv2/caves/lambda/xenobiology) "aeY" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg2" - }, +/turf/open/floor/plating/platingdmg2/west, /area/bigredv2/caves/lambda/xenobiology) "aeZ" = ( /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowcorner" - }, +/turf/open/floor/whiteyellowcorner/east, /area/bigredv2/caves/lambda/xenobiology) "afa" = ( /obj/structure/closet/secure_closet/chemical, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor{ - dir = 5; - icon_state = "whiteyellow" - }, +/turf/open/floor/whiteyellow/northeast, /area/bigredv2/caves/lambda/xenobiology) "afb" = ( /obj/structure/machinery/computer/telecomms/traffic{ req_one_access_txt = "19;200" }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/telecomm) "afc" = ( /obj/item/folder/yellow, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/telecomm) "afd" = ( /obj/structure/window/framed/solaris/reinforced, @@ -1722,9 +1247,7 @@ /obj/effect/decal/cleanable/mucus, /obj/structure/surface/table, /obj/effect/landmark/monkey_spawn, -/turf/open/floor{ - icon_state = "whitepurplefull" - }, +/turf/open/floor/whitepurplefull, /area/bigredv2/caves/lambda/xenobiology) "afg" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -1745,25 +1268,18 @@ /obj/structure/machinery/camera/autoname{ dir = 1 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/marshal_office) "afk" = ( /obj/structure/toilet{ dir = 4 }, /obj/effect/landmark/monkey_spawn, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/bigredv2/outside/marshal_office) "afl" = ( /obj/structure/machinery/flasher/portable, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/bigredv2/outside/marshal_office) "afm" = ( /obj/structure/closet/l3closet/security, @@ -1771,34 +1287,22 @@ dir = 1 }, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/bigredv2/outside/marshal_office) "afn" = ( /obj/structure/closet/l3closet/security, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/bigredv2/outside/marshal_office) "afo" = ( /obj/structure/surface/rack, /obj/item/weapon/gun/revolver/cmb, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/bigredv2/outside/marshal_office) "afp" = ( /obj/structure/surface/rack, /obj/item/ammo_magazine/revolver/cmb, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/bigredv2/outside/marshal_office) "afq" = ( /obj/structure/surface/rack, @@ -1806,10 +1310,7 @@ dir = 1 }, /obj/item/ammo_magazine/revolver/cmb, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/bigredv2/outside/marshal_office) "afr" = ( /obj/structure/machinery/camera/autoname{ @@ -1822,9 +1323,7 @@ /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/marshal_office) "aft" = ( /obj/structure/surface/table/reinforced, @@ -1832,14 +1331,10 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/bigredv2/caves/lambda/xenobiology) "afu" = ( -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/bigredv2/caves/lambda/xenobiology) "afv" = ( /obj/structure/window/framed/solaris, @@ -1856,24 +1351,17 @@ /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/lambda/xenobiology) "afx" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/lambda/xenobiology) "afy" = ( /obj/structure/surface/table/reinforced, -/turf/open/floor{ - dir = 4; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/east, /area/bigredv2/caves/lambda/xenobiology) "afz" = ( /turf/open/floor/plating, @@ -1888,38 +1376,25 @@ /area/bigredv2/caves/lambda/xenobiology) "afC" = ( /obj/structure/foamed_metal, -/turf/open/floor{ - dir = 10; - icon_state = "whiteyellow" - }, +/turf/open/floor/whiteyellow/southwest, /area/bigredv2/caves/lambda/xenobiology) "afD" = ( /obj/item/device/mass_spectrometer/adv, /obj/structure/foamed_metal, -/turf/open/floor{ - icon_state = "whiteyellow" - }, +/turf/open/floor/whiteyellow, /area/bigredv2/caves/lambda/xenobiology) "afE" = ( -/turf/open/floor{ - icon_state = "whiteyellow" - }, +/turf/open/floor/whiteyellow, /area/bigredv2/caves/lambda/xenobiology) "afF" = ( /obj/structure/machinery/light, /obj/item/storage/fancy/vials/random, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/lambda/xenobiology) "afG" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/reagentgrinder, -/turf/open/floor{ - dir = 6; - icon_state = "whiteyellow" - }, +/turf/open/floor/whiteyellow/southeast, /area/bigredv2/caves/lambda/xenobiology) "afH" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, @@ -1935,15 +1410,11 @@ name = "Storm Shutters"; pixel_x = -32 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/telecomm) "afJ" = ( /obj/structure/bed/chair/office/dark, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/telecomm) "afK" = ( /obj/structure/machinery/power/apc{ @@ -1961,25 +1432,18 @@ /turf/open/floor/greengrid, /area/bigredv2/outside/telecomm) "afM" = ( -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/outside/space_port) "afO" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/marshal_office) "afP" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ dir = 1; name = "\improper Marshal Office Prison" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/marshal_office) "afQ" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -1987,27 +1451,18 @@ dir = 1; name = "\improper Marshal Office Prison" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/marshal_office) "afR" = ( /obj/structure/machinery/deployable/barrier, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/bigredv2/outside/marshal_office) "afS" = ( -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/marshal_office) "afT" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/marshal_office) "afU" = ( /obj/structure/closet/bombclosetsecurity, @@ -2019,9 +1474,7 @@ dir = 4 }, /obj/item/clothing/suit/storage/CMB, -/turf/open/floor{ - icon_state = "floor4" - }, +/turf/open/floor/floor4, /area/bigredv2/outside/marshal_office) "afW" = ( /obj/structure/machinery/door_control{ @@ -2029,53 +1482,37 @@ name = "Storm Shutters"; pixel_x = -32 }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/marshal_office) "afY" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/mars_cave{ - icon_state = "mars_cave_10" - }, +/turf/open/mars_cave/mars_cave_10, /area/bigredv2/caves/lambda/xenobiology) "afZ" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/mars_cave{ - icon_state = "mars_cave_18" - }, +/turf/open/mars_cave/mars_cave_18, /area/bigredv2/caves/lambda/xenobiology) "aga" = ( /obj/structure/machinery/iv_drip, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/bigredv2/caves/lambda/xenobiology) "agb" = ( /obj/item/reagent_container/blood/OMinus, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/bigredv2/caves/lambda/xenobiology) "agc" = ( -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/lambda/xenobiology) "agd" = ( -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/lambda/breakroom) "age" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony{ dir = 1; name = "\improper Lambda Lab Storage" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/caves/lambda/xenobiology) "agf" = ( /obj/structure/surface/table/reinforced, @@ -2087,38 +1524,28 @@ id = "chem_lock"; name = "\improper Chemistry Lockdown" }, -/turf/open/floor{ - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull, /area/bigredv2/caves/lambda/xenobiology) "agg" = ( /obj/structure/machinery/door/airlock/almayer/research/glass/colony{ dir = 1; name = "\improper Lambda Lab Chemistry Lab" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/caves/lambda/xenobiology) "agh" = ( /obj/effect/landmark/monkey_spawn, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/lambda/xenobiology) "agi" = ( /obj/structure/bed, /obj/item/bedsheet/purple, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/lambda/xenobiology) "agj" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/lambda/xenobiology) "agk" = ( /obj/structure/toilet{ @@ -2126,14 +1553,10 @@ }, /obj/structure/machinery/door/window, /obj/structure/window/reinforced, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/caves/lambda/xenobiology) "agl" = ( -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/caves/lambda/xenobiology) "agm" = ( /turf/closed/wall/solaris/rock, @@ -2142,25 +1565,16 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/space_port) "ago" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - dir = 6; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/southeast, /area/bigredv2/outside/space_port) "agq" = ( -/turf/open/floor{ - dir = 9; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/northwest, /area/bigredv2/outside/n) "agr" = ( /obj/structure/pipes/standard/manifold/hidden/green{ @@ -2169,39 +1583,25 @@ /turf/open/floor/plating, /area/bigredv2/outside/space_port) "ags" = ( -/turf/open/floor{ - dir = 5; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/northeast, /area/bigredv2/outside/n) "agt" = ( /obj/structure/surface/table/woodentable/fancy, -/turf/open/floor{ - icon_state = "grimy" - }, +/turf/open/floor/grimy, /area/bigredv2/outside/marshal_office) "agu" = ( /turf/closed/wall/solaris/rock, /area/bigredv2/outside/nw) "agv" = ( -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg2" - }, +/turf/open/floor/plating/platingdmg2/west, /area/bigredv2/outside/space_port) "agw" = ( /obj/item/stack/rods, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/outside/space_port) "agx" = ( /obj/structure/girder/displaced, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/outside/space_port) "agy" = ( /obj/structure/window/framed/solaris/reinforced, @@ -2213,31 +1613,19 @@ /turf/open/floor/plating, /area/bigredv2/outside/marshal_office) "agz" = ( -/turf/open/floor{ - dir = 4; - icon_state = "redcorner" - }, +/turf/open/floor/redcorner/east, /area/bigredv2/outside/marshal_office) "agA" = ( /obj/effect/landmark/hunter_secondary, -/turf/open/floor{ - dir = 4; - icon_state = "redcorner" - }, +/turf/open/floor/redcorner/east, /area/bigredv2/outside/marshal_office) "agB" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 4; - icon_state = "redcorner" - }, +/turf/open/floor/redcorner/east, /area/bigredv2/outside/marshal_office) "agC" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 4; - icon_state = "redcorner" - }, +/turf/open/floor/redcorner/east, /area/bigredv2/outside/marshal_office) "agD" = ( /obj/structure/surface/rack, @@ -2245,82 +1633,61 @@ /obj/item/clothing/accessory/storage/black_vest, /obj/item/clothing/accessory/storage/black_vest, /obj/item/clothing/accessory/storage/black_vest, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/marshal_office) "agE" = ( /obj/structure/surface/rack, /obj/item/weapon/gun/shotgun/pump/dual_tube/cmb, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/marshal_office) "agF" = ( /obj/structure/surface/rack, /obj/item/weapon/gun/shotgun/pump/dual_tube/cmb, /obj/item/ammo_magazine/shotgun/slugs, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/marshal_office) "agG" = ( /obj/structure/surface/rack, /obj/item/weapon/gun/shotgun/pump/dual_tube/cmb, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/marshal_office) "agH" = ( /obj/structure/pipes/vents/pump, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/marshal_office) "agI" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/door/window/brigdoor/eastleft, /obj/item/weapon/shield/riot, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/bigredv2/outside/marshal_office) "agJ" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ dir = 1; name = "\improper Marshal Head Office" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/marshal_office) "agK" = ( /obj/structure/machinery/optable, /obj/effect/decal/cleanable/blood/gibs/limb, /obj/effect/decal/cleanable/blood/gibs/limb, /obj/effect/decal/cleanable/blood/gibs/core, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/bigredv2/caves/lambda/xenobiology) "agL" = ( /obj/effect/decal/cleanable/blood, /obj/item/shard, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/bigredv2/caves/lambda/xenobiology) "agM" = ( /obj/structure/machinery/door/airlock/almayer/research/glass/colony{ name = "\improper Lambda Lab Surgery" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/caves/lambda/xenobiology) "agN" = ( /obj/effect/decal/warning_stripes{ @@ -2330,127 +1697,84 @@ icon_state = "small" }, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/lambda/xenobiology) "agO" = ( /obj/structure/surface/table/woodentable/fancy, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/marshal_office) "agP" = ( /obj/structure/surface/rack, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/general_offices) "agQ" = ( -/turf/open/floor{ - dir = 1; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/north, /area/bigredv2/caves/lambda/xenobiology) "agS" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/north, /area/bigredv2/caves/lambda/xenobiology) "agT" = ( /obj/structure/sign/safety/chem_lab{ pixel_x = 8; pixel_y = 32 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/north, /area/bigredv2/caves/lambda/xenobiology) "agU" = ( -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/bigredv2/caves/lambda/xenobiology) "agV" = ( /obj/structure/foamed_metal, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/bigredv2/caves/lambda/xenobiology) "agW" = ( /obj/structure/foamed_metal, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/lambda/xenobiology) "agX" = ( /obj/structure/foamed_metal, -/turf/open/floor{ - dir = 1; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/north, /area/bigredv2/caves/lambda/xenobiology) "agY" = ( /obj/structure/closet/secure_closet/CMO, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor{ - icon_state = "whitegreenfull" - }, +/turf/open/floor/whitegreenfull, /area/bigredv2/outside/medical) "agZ" = ( /obj/structure/surface/table, /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/lambda/xenobiology) "aha" = ( /obj/structure/surface/table, /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/lambda/xenobiology) "ahb" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/caves/lambda/xenobiology) "ahc" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/telecomm) "ahd" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/telecomm) "ahe" = ( -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/west, /area/bigredv2/outside/n) "ahf" = ( /obj/structure/surface/table, @@ -2458,10 +1782,7 @@ /area/bigredv2/outside/general_offices) "ahg" = ( /obj/item/stack/sheet/metal, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/outside/space_port) "ahh" = ( /obj/structure/girder/reinforced, @@ -2473,9 +1794,7 @@ /area/bigredv2/outside/nw) "ahj" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "redcorner" - }, +/turf/open/floor/redcorner, /area/bigredv2/outside/marshal_office) "ahk" = ( /obj/effect/decal/cleanable/dirt, @@ -2513,9 +1832,7 @@ /obj/structure/machinery/camera/autoname{ dir = 1 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/marshal_office) "ahq" = ( /obj/structure/surface/table, @@ -2523,15 +1840,11 @@ dir = 8 }, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/general_offices) "ahr" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/marshal_office) "ahs" = ( /obj/structure/reagent_dispensers/water_cooler, @@ -2553,59 +1866,43 @@ /area/bigredv2/caves/lambda/breakroom) "ahw" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves_lambda) "ahx" = ( /obj/effect/landmark/crap_item, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves_lambda) "ahy" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/mars_cave{ - icon_state = "mars_cave_11" - }, +/turf/open/mars_cave/mars_cave_11, /area/bigredv2/caves_lambda) "ahz" = ( /obj/structure/surface/table/reinforced, /obj/item/tool/surgery/scalpel/manager, -/turf/open/mars_cave{ - icon_state = "mars_cave_5" - }, +/turf/open/mars_cave/mars_cave_5, /area/bigredv2/caves/lambda/xenobiology) "ahA" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/bigredv2/caves/lambda/xenobiology) "ahB" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/medidoor/colony{ dir = 1; name = "\improper Lambda Lab Surgery" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/caves/lambda/xenobiology) "ahC" = ( -/turf/open/floor{ - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2, /area/bigredv2/caves/lambda/xenobiology) "ahD" = ( /obj/structure/sign/safety/medical{ pixel_x = 8; pixel_y = -32 }, -/turf/open/floor{ - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2, /area/bigredv2/caves/lambda/xenobiology) "ahE" = ( /obj/structure/machinery/cm_vending/sorted/medical/wall_med/limited{ @@ -2613,118 +1910,78 @@ }, /obj/structure/machinery/light, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor{ - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2, /area/bigredv2/caves/lambda/xenobiology) "ahF" = ( /obj/structure/closet/hydrant{ pixel_y = -32 }, -/turf/open/floor{ - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2, /area/bigredv2/caves/lambda/xenobiology) "ahG" = ( /obj/structure/extinguisher_cabinet{ pixel_y = -30 }, -/turf/open/floor{ - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2, /area/bigredv2/caves/lambda/xenobiology) "ahH" = ( -/turf/open/floor{ - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2, /area/bigredv2/caves/lambda/breakroom) "ahI" = ( /obj/structure/foamed_metal, -/turf/open/floor{ - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2, /area/bigredv2/caves/lambda/xenobiology) "ahJ" = ( /obj/structure/foamed_metal, /obj/structure/machinery/light, -/turf/open/floor{ - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2, /area/bigredv2/caves/lambda/xenobiology) "ahK" = ( -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/space_port) "ahL" = ( -/turf/open/floor{ - dir = 4; - icon_state = "darkpurplecorners2" - }, +/turf/open/floor/darkpurplecorners2/east, /area/bigredv2/caves/lambda/xenobiology) "ahM" = ( /obj/structure/machinery/door/airlock/almayer/medical/glass/colony{ dir = 1; name = "\improper Lambda Lab Cell" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/caves/lambda/xenobiology) "ahN" = ( /obj/effect/decal/cleanable/dirt, /turf/closed/wall/solaris/reinforced, /area/bigredv2/outside/telecomm) "ahO" = ( -/turf/open/mars{ - icon_state = "mars_dirt_8" - }, +/turf/open/mars/mars_dirt_8, /area/bigredv2/outside/nw) "ahP" = ( -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/outside/nw) "ahQ" = ( -/turf/open/floor{ - dir = 10; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/southwest, /area/bigredv2/outside/nw) "ahR" = ( -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/bigredv2/outside/nw) "ahS" = ( -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/n) "ahT" = ( -/turf/open/floor{ - dir = 6; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/southeast, /area/bigredv2/outside/nw) "ahU" = ( /obj/structure/lz_sign/solaris_sign, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/bigredv2/outside/nw) "ahV" = ( -/turf/open/mars{ - icon_state = "mars_dirt_12" - }, +/turf/open/mars/mars_dirt_12, /area/bigredv2/outside/nw) "ahW" = ( /obj/item/stack/rods, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/bigredv2/outside/nw) "ahX" = ( /obj/effect/decal/cleanable/dirt, @@ -2734,17 +1991,13 @@ /obj/item/stack/sheet/metal, /obj/item/stack/rods, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/bigredv2/outside/nw) "ahZ" = ( /obj/item/stack/rods, /obj/item/stack/rods, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/bigredv2/outside/nw) "aia" = ( /obj/structure/machinery/door_control{ @@ -2752,47 +2005,33 @@ name = "Storm Shutters"; pixel_x = -32 }, -/turf/open/floor{ - icon_state = "redcorner" - }, +/turf/open/floor/redcorner, /area/bigredv2/outside/marshal_office) "aib" = ( /obj/structure/machinery/light, -/turf/open/floor{ - icon_state = "redcorner" - }, +/turf/open/floor/redcorner, /area/bigredv2/outside/marshal_office) "aic" = ( -/turf/open/floor{ - icon_state = "redcorner" - }, +/turf/open/floor/redcorner, /area/bigredv2/outside/marshal_office) "aid" = ( /obj/structure/machinery/camera/autoname{ dir = 1 }, -/turf/open/floor{ - icon_state = "redcorner" - }, +/turf/open/floor/redcorner, /area/bigredv2/outside/marshal_office) "aie" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/good_item, -/turf/open/floor{ - icon_state = "redcorner" - }, +/turf/open/floor/redcorner, /area/bigredv2/outside/marshal_office) "aif" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "redcorner" - }, +/turf/open/floor/redcorner, /area/bigredv2/outside/marshal_office) "aig" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_4" - }, +/turf/open/mars_cave/mars_cave_4, /area/bigredv2/caves_lambda) "aih" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -2800,25 +2039,19 @@ dir = 1; name = "\improper Marshal Office Armory" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/marshal_office) "aii" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ dir = 1; name = "\improper Marshal Office Equipment" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/marshal_office) "aij" = ( /obj/effect/landmark/hunter_secondary, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves_lambda) "aik" = ( /obj/structure/surface/table/reinforced, @@ -2826,15 +2059,11 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/bigredv2/caves/lambda/xenobiology) "ail" = ( /obj/structure/bed/roller, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/bigredv2/caves/lambda/xenobiology) "aim" = ( /obj/structure/surface/table, @@ -2842,60 +2071,42 @@ pixel_x = -27 }, /obj/item/storage/box/beakers, -/turf/open/floor{ - dir = 1; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/north, /area/bigredv2/outside/medical) "ain" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony{ dir = 1; name = "\improper Lambda Lab Maintenance" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/caves/lambda/xenobiology) "aio" = ( -/turf/open/floor{ - dir = 8; - icon_state = "darkpurplecorners2" - }, +/turf/open/floor/darkpurplecorners2/west, /area/bigredv2/caves/lambda/xenobiology) "aip" = ( /obj/structure/surface/table, /obj/structure/pipes/vents/pump, /obj/item/device/flashlight/lamp, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/medical) "aiq" = ( /obj/structure/largecrate/random, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/lambda/xenobiology) "air" = ( /obj/effect/landmark/crap_item, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/lambda/xenobiology) "ais" = ( /obj/structure/urinal{ pixel_y = 32 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/caves/lambda/xenobiology) "ait" = ( /obj/effect/decal/cleanable/blood/gibs/body, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/caves/lambda/xenobiology) "aiu" = ( /obj/structure/sink{ @@ -2905,9 +2116,7 @@ /obj/structure/mirror{ pixel_x = 30 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/caves/lambda/xenobiology) "aiv" = ( /obj/effect/decal/cleanable/dirt, @@ -2915,58 +2124,37 @@ /turf/closed/wall/solaris/reinforced, /area/bigredv2/outside/telecomm) "aiw" = ( -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/west, /area/bigredv2/outside/nw) "aix" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/nw) "aiy" = ( -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/east, /area/bigredv2/outside/nw) "aiz" = ( -/turf/open/mars{ - icon_state = "mars_dirt_13" - }, +/turf/open/mars/mars_dirt_13, /area/bigredv2/outside/nw) "aiA" = ( -/turf/open/mars{ - icon_state = "mars_dirt_10" - }, +/turf/open/mars/mars_dirt_10, /area/bigredv2/outside/nw) "aiB" = ( -/turf/open/mars{ - icon_state = "mars_dirt_14" - }, +/turf/open/mars/mars_dirt_14, /area/bigredv2/outside/nw) "aiC" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper Marshal Office Brig" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/marshal_office) "aiD" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/marshal_office) "aiE" = ( /obj/structure/closet/secure_closet/marshal, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/marshal_office) "aiF" = ( /obj/structure/surface/table, @@ -2975,53 +2163,41 @@ dir = 1; start_charge = 0 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/marshal_office) "aiG" = ( /obj/structure/surface/table, -/obj/item/handcuffs, +/obj/item/restraint/handcuffs, /obj/structure/transmitter/colony_net/rotary{ phone_category = "Solaris Ridge"; phone_color = "red"; phone_id = "Marshal Office" }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/marshal_office) "aiH" = ( /obj/structure/surface/table, /obj/structure/machinery/camera/autoname, /obj/item/ammo_magazine/shotgun/slugs, /obj/item/ammo_magazine/shotgun/buckshot, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/marshal_office) "aiI" = ( /obj/structure/surface/table, /obj/item/ammo_magazine/shotgun/buckshot, /obj/item/clothing/head/beret/sec/warden, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/marshal_office) "aiJ" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/marshal_office) "aiK" = ( /obj/structure/machinery/computer/secure_data, /obj/structure/surface/table, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/marshal_office) "aiL" = ( /obj/structure/surface/table, @@ -3031,7 +2207,7 @@ /area/bigredv2/outside/marshal_office) "aiM" = ( /obj/structure/surface/table, -/obj/item/handcuffs, +/obj/item/restraint/handcuffs, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, /turf/open/floor, /area/bigredv2/outside/marshal_office) @@ -3054,59 +2230,40 @@ /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper Marshal Office" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/marshal_office) "aiR" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkpurplecorners2" - }, +/turf/open/floor/darkpurplecorners2/west, /area/bigredv2/caves/lambda/xenobiology) "aiS" = ( /obj/effect/landmark/corpsespawner/scientist, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/lambda/xenobiology) "aiT" = ( /obj/structure/pipes/vents/scrubber/on, -/turf/open/floor{ - dir = 4; - icon_state = "darkpurplecorners2" - }, +/turf/open/floor/darkpurplecorners2/east, /area/bigredv2/caves/lambda/xenobiology) "aiU" = ( /obj/structure/machinery/door/airlock/almayer/generic{ name = "\improper Lambda Lab Prison Restroom" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/caves/lambda/xenobiology) "aiV" = ( /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/caves/lambda/xenobiology) "aiW" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/crap_item, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/telecomm) "aiX" = ( -/turf/open/floor{ - icon_state = "bcircuit" - }, +/turf/open/floor/bcircuit, /area/bigredv2/outside/marshal_office) "aiY" = ( /obj/structure/surface/table, @@ -3115,36 +2272,25 @@ }, /obj/item/device/defibrillator, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor{ - icon_state = "whitegreenfull" - }, +/turf/open/floor/whitegreenfull, /area/bigredv2/outside/medical) "aiZ" = ( /obj/structure/machinery/computer/cameras, /obj/structure/surface/table, -/turf/open/floor{ - icon_state = "bcircuit" - }, +/turf/open/floor/bcircuit, /area/bigredv2/outside/marshal_office) "aja" = ( /obj/structure/surface/table, /obj/item/ore/diamond, /obj/item/ore/uranium, -/turf/open/floor{ - icon_state = "bcircuit" - }, +/turf/open/floor/bcircuit, /area/bigredv2/outside/marshal_office) "ajb" = ( -/turf/open/floor{ - dir = 8; - icon_state = "redcorner" - }, +/turf/open/floor/redcorner/west, /area/bigredv2/outside/marshal_office) "ajc" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "redcorner" - }, +/turf/open/floor/redcorner, /area/bigredv2/outside/marshal_office) "ajd" = ( /obj/structure/surface/table/holotable/wood, @@ -3195,16 +2341,11 @@ /obj/effect/spawner/random/bomb_supply, /obj/effect/spawner/random/bomb_supply, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor{ - dir = 1; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/north, /area/bigredv2/outside/medical) "ajl" = ( /obj/structure/surface/table, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/dorms) "ajm" = ( /obj/structure/filingcabinet, @@ -3220,9 +2361,7 @@ /obj/structure/machinery/light/small/built{ dir = 8 }, -/turf/open/floor/bluegrid{ - icon_state = "bcircuitoff" - }, +/turf/open/floor/bluegrid/bcircuitoff, /area/bigredv2/caves/lambda/research) "ajp" = ( /obj/structure/pipes/vents/pump{ @@ -3232,52 +2371,37 @@ dir = 4; pixel_x = -30 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkpurplecorners2" - }, +/turf/open/floor/darkpurplecorners2/west, /area/bigredv2/caves/lambda/xenobiology) "ajq" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 }, -/turf/open/floor{ - icon_state = "darkpurplecorners2" - }, +/turf/open/floor/darkpurplecorners2, /area/bigredv2/caves/lambda/xenobiology) "ajr" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/medidoor/colony{ dir = 1; name = "\improper Lambda Lab Prisoner Room" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/caves/lambda/xenobiology) "ajs" = ( /obj/structure/machinery/light, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/lambda/xenobiology) "ajt" = ( /obj/structure/bed/stool, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/lambda/xenobiology) "aju" = ( /obj/structure/surface/table, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/lambda/xenobiology) "ajv" = ( /obj/structure/machinery/light, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/lambda/xenobiology) "ajw" = ( /obj/structure/sink{ @@ -3290,105 +2414,63 @@ }, /obj/effect/landmark/corpsespawner/scientist, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/caves/lambda/xenobiology) "ajx" = ( -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/nw) "ajy" = ( -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/north, /area/bigredv2/outside/nw) "ajz" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/north, /area/bigredv2/outside/nw) "ajA" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 5; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/northeast, /area/bigredv2/outside/nw) "ajB" = ( /obj/structure/machinery/camera/autoname{ dir = 4 }, -/turf/open/floor{ - icon_state = "bcircuit" - }, +/turf/open/floor/bcircuit, /area/bigredv2/outside/marshal_office) "ajC" = ( /obj/structure/surface/table, /obj/item/device/radio, -/turf/open/floor{ - icon_state = "bcircuit" - }, +/turf/open/floor/bcircuit, /area/bigredv2/outside/marshal_office) -"ajD" = ( -/obj/structure/machinery/power/apc{ - dir = 1; - start_charge = 0 - }, -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/telecomm/n_cave) "ajE" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 8; - icon_state = "redcorner" - }, +/turf/open/floor/redcorner/west, /area/bigredv2/outside/marshal_office) "ajF" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/door/window/brigdoor/westright, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/bigredv2/outside/marshal_office) "ajG" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/crap_item, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/marshal_office) "ajH" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/marshal_office) "ajI" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/marshal_office) "ajJ" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/marshal_office) "ajK" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -3397,9 +2479,7 @@ /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ name = "\improper Marshal Office Armory" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/marshal_office) "ajL" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -3457,9 +2537,7 @@ /area/bigredv2/outside/marshal_office) "ajT" = ( /obj/structure/barricade/wooden, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/bigredv2/outside/n) "ajU" = ( /obj/structure/machinery/light/small, @@ -3472,44 +2550,31 @@ /obj/structure/machinery/door/airlock/multi_tile/almayer/medidoor/colony{ name = "\improper Lambda Lab Break Room" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/caves/lambda/xenobiology) "ajW" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 1 }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/caves/lambda/xenobiology) "ajX" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/nw) "ajY" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/nw) "ajZ" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/nw) "aka" = ( /obj/structure/machinery/faxmachine, @@ -3522,44 +2587,21 @@ /area/bigredv2/outside/marshal_office) "akd" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/east, /area/bigredv2/outside/nw) "ake" = ( /obj/structure/surface/table, /obj/item/ore/uranium, -/turf/open/floor{ - icon_state = "bcircuit" - }, -/area/bigredv2/outside/marshal_office) -"akf" = ( -/obj/structure/machinery/light{ - dir = 8 - }, -/turf/open/floor{ - dir = 8; - icon_state = "red" - }, -/area/bigredv2/outside/marshal_office) -"akg" = ( -/obj/effect/landmark/static_comms/net_one, -/turf/open/floor, +/turf/open/floor/bcircuit, /area/bigredv2/outside/marshal_office) "akh" = ( -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/telecomm/n_cave) "aki" = ( /obj/structure/surface/table, /obj/item/clothing/mask/gas, /obj/item/clothing/mask/gas, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/marshal_office) "akj" = ( /obj/structure/window/framed/solaris, @@ -3574,9 +2616,7 @@ /obj/structure/surface/rack, /obj/item/clothing/suit/armor/riot, /obj/item/clothing/suit/armor/riot, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/marshal_office) "akl" = ( /obj/structure/sign/safety/hazard, @@ -3585,16 +2625,12 @@ "akm" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/marshal_office) "akn" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/computer/prisoner, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/marshal_office) "ako" = ( /turf/closed/wall/solaris, @@ -3636,98 +2672,64 @@ name = "\improper Marshal Office" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/marshal_office) "akw" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/east, /area/bigredv2/outside/n) "aky" = ( /obj/structure/bookcase/manuals/research_and_development, /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - dir = 9; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/northwest, /area/bigredv2/caves/lambda/xenobiology) "akz" = ( /obj/structure/bookcase/manuals/research_and_development, /obj/item/storage/fancy/vials/random, -/turf/open/floor{ - dir = 1; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/north, /area/bigredv2/caves/lambda/xenobiology) "akA" = ( /obj/structure/surface/table/woodentable/fancy, /obj/item/ashtray/bronze, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/marshal_office) "akB" = ( /obj/structure/surface/table/reinforced, /obj/structure/xenoautopsy, -/turf/open/floor{ - dir = 1; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/north, /area/bigredv2/caves/lambda/xenobiology) "akD" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/west, /area/bigredv2/caves/lambda/xenobiology) "akE" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 1 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/east, /area/bigredv2/caves/lambda/xenobiology) "akF" = ( /obj/structure/machinery/botany/editor, /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - dir = 9; - icon_state = "whitegreen_v" - }, +/turf/open/floor/whitegreen_v/northwest, /area/bigredv2/caves/lambda/xenobiology) "akG" = ( /obj/structure/machinery/botany/extractor, -/turf/open/floor{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/north, /area/bigredv2/caves/lambda/xenobiology) "akH" = ( /obj/structure/machinery/centrifuge, -/turf/open/floor{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/north, /area/bigredv2/caves/lambda/xenobiology) "akI" = ( /obj/structure/machinery/mill, -/turf/open/floor{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/north, /area/bigredv2/caves/lambda/xenobiology) "akJ" = ( /obj/structure/surface/table, @@ -3736,71 +2738,41 @@ dir = 1 }, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor{ - dir = 5; - icon_state = "whitegreen_v" - }, +/turf/open/floor/whitegreen_v/northeast, /area/bigredv2/caves/lambda/xenobiology) "akK" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/bigredv2/outside/nw) "akL" = ( /turf/closed/wall/solaris/reinforced, /area/bigredv2/outside/general_offices) "akM" = ( /obj/structure/machinery/light, -/turf/open/floor{ - icon_state = "dark" - }, -/area/bigredv2/outside/marshal_office) -"akN" = ( -/turf/open/floor{ - icon_state = "red" - }, -/area/bigredv2/outside/marshal_office) -"akO" = ( -/turf/open/floor{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/dark, /area/bigredv2/outside/marshal_office) "akP" = ( -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/west, /area/bigredv2/outside/telecomm/n_cave) "akQ" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/door/window/brigdoor/southright, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/bigredv2/outside/marshal_office) "akR" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ dir = 1; name = "\improper Marshal Office" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/marshal_office) "akS" = ( /obj/structure/bed/chair, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/marshal_office) "akT" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/marshal_office) "akU" = ( /obj/structure/window/framed/solaris/reinforced, @@ -3811,135 +2783,80 @@ /turf/open/mars, /area/bigredv2/outside/n) "akW" = ( -/turf/open/mars{ - icon_state = "mars_dirt_13" - }, +/turf/open/mars/mars_dirt_13, /area/bigredv2/caves_north) "akX" = ( -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/caves_north) "akY" = ( -/turf/open/mars_cave{ - icon_state = "mars_dirt_6" - }, +/turf/open/mars_cave/mars_dirt_6, /area/bigredv2/caves_north) "akZ" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_16" - }, +/turf/open/mars_cave/mars_cave_16, /area/bigredv2/caves_north) "ala" = ( -/turf/open/floor{ - dir = 9; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/northwest, /area/bigredv2/caves/lambda/xenobiology) "alb" = ( /obj/effect/landmark/crap_item, -/turf/open/floor{ - dir = 1; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/north, /area/bigredv2/caves/lambda/xenobiology) "alc" = ( -/turf/open/floor{ - icon_state = "whitepurplefull" - }, +/turf/open/floor/whitepurplefull, /area/bigredv2/caves/lambda/xenobiology) "ald" = ( /obj/structure/surface/table/reinforced, /obj/item/book/manual/research_and_development, -/turf/open/floor{ - dir = 4; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/east, /area/bigredv2/caves/lambda/xenobiology) "ale" = ( /obj/effect/landmark/xeno_spawn, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor{ - dir = 8; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/west, /area/bigredv2/caves/lambda/xenobiology) "alf" = ( -/turf/open/floor{ - dir = 8; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/west, /area/bigredv2/caves/lambda/xenobiology) "alg" = ( -/turf/open/floor{ - icon_state = "whitegreenfull" - }, +/turf/open/floor/whitegreenfull, /area/bigredv2/caves/lambda/xenobiology) "alh" = ( /obj/item/tool/hatchet, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor{ - icon_state = "whitegreenfull" - }, +/turf/open/floor/whitegreenfull, /area/bigredv2/caves/lambda/xenobiology) "ali" = ( /obj/item/reagent_container/spray/plantbgone, -/turf/open/floor{ - icon_state = "whitegreenfull" - }, +/turf/open/floor/whitegreenfull, /area/bigredv2/caves/lambda/xenobiology) "alj" = ( -/turf/open/floor{ - dir = 4; - icon_state = "whitegreencorner" - }, +/turf/open/floor/whitegreencorner/east, /area/bigredv2/caves/lambda/xenobiology) "alk" = ( /obj/structure/machinery/portable_atmospherics/hydroponics, -/turf/open/floor{ - dir = 5; - icon_state = "whitegreen_v" - }, +/turf/open/floor/whitegreen_v/northeast, /area/bigredv2/caves/lambda/xenobiology) "all" = ( -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/bigredv2/outside/telecomm) "alm" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/east, /area/bigredv2/outside/nw) "aln" = ( -/turf/open/mars{ - icon_state = "mars_dirt_3" - }, +/turf/open/mars/mars_dirt_3, /area/bigredv2/outside/nw) "alo" = ( /obj/effect/landmark/crap_item, -/turf/open/mars{ - icon_state = "mars_dirt_3" - }, +/turf/open/mars/mars_dirt_3, /area/bigredv2/outside/nw) "alp" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ dir = 1; name = "\improper Marshal Office Evidence Room" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/marshal_office) -"alq" = ( -/obj/effect/landmark/static_comms/net_one, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, -/area/bigredv2/outside/telecomm/n_cave) "alr" = ( /obj/structure/pipes/standard/simple/hidden/green, /turf/open/floor, @@ -3948,17 +2865,11 @@ /obj/structure/closet/hydrant{ pixel_y = 32 }, -/turf/open/floor{ - dir = 4; - icon_state = "redcorner" - }, +/turf/open/floor/redcorner/east, /area/bigredv2/outside/marshal_office) "alt" = ( /obj/effect/landmark/survivor_spawner, -/turf/open/floor{ - dir = 4; - icon_state = "redcorner" - }, +/turf/open/floor/redcorner/east, /area/bigredv2/outside/marshal_office) "alu" = ( /turf/closed/wall/solaris, @@ -3967,10 +2878,7 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - dir = 4; - icon_state = "redcorner" - }, +/turf/open/floor/redcorner/east, /area/bigredv2/outside/marshal_office) "alw" = ( /obj/item/device/radio/intercom{ @@ -3979,10 +2887,7 @@ name = "General Listening Channel"; pixel_x = 30 }, -/turf/open/floor{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/red/northeast, /area/bigredv2/outside/marshal_office) "alx" = ( /obj/structure/bed/chair{ @@ -3990,41 +2895,23 @@ }, /turf/open/floor, /area/bigredv2/outside/marshal_office) -"aly" = ( -/obj/structure/window/reinforced{ - dir = 4; - health = 80 - }, -/obj/structure/bed/chair{ - dir = 4 - }, -/turf/open/floor, -/area/bigredv2/outside/marshal_office) "alz" = ( /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/marshal_office) "alA" = ( /obj/structure/surface/table, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/marshal_office) "alB" = ( -/turf/open/floor{ - icon_state = "grimy" - }, +/turf/open/floor/grimy, /area/bigredv2/outside/marshal_office) "alC" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "grimy" - }, +/turf/open/floor/grimy, /area/bigredv2/outside/marshal_office) "alD" = ( /obj/structure/window/framed/solaris, @@ -4035,31 +2922,20 @@ /turf/open/floor/plating, /area/bigredv2/outside/medical) "alF" = ( -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/east, /area/bigredv2/outside/n) "alG" = ( -/turf/open/mars{ - icon_state = "mars_dirt_8" - }, +/turf/open/mars/mars_dirt_8, /area/bigredv2/caves_north) "alH" = ( -/turf/open/mars_cave{ - icon_state = "mars_dirt_5" - }, +/turf/open/mars_cave/mars_dirt_5, /area/bigredv2/caves_north) "alI" = ( /obj/effect/landmark/hunter_primary, -/turf/open/mars_cave{ - icon_state = "mars_cave_9" - }, +/turf/open/mars_cave/mars_cave_9, /area/bigredv2/caves_north) "alJ" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_15" - }, +/turf/open/mars_cave/mars_cave_15, /area/bigredv2/caves_north) "alK" = ( /obj/effect/landmark/crap_item, @@ -4068,84 +2944,54 @@ /area/bigredv2/caves/lambda/xenobiology) "alL" = ( /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/plating{ - dir = 9; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/northwest, /area/bigredv2/caves/lambda/xenobiology) "alM" = ( /obj/effect/landmark/monkey_spawn, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/plating{ - dir = 1; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/north, /area/bigredv2/caves/lambda/xenobiology) "alN" = ( -/turf/open/floor/plating{ - dir = 1; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/north, /area/bigredv2/caves/lambda/xenobiology) "alO" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/floor/plating{ - dir = 5; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/northeast, /area/bigredv2/caves/lambda/xenobiology) "alP" = ( -/turf/open/floor{ - dir = 8; - icon_state = "warnwhite" - }, +/turf/open/floor/warnwhite/west, /area/bigredv2/caves/lambda/xenobiology) "alQ" = ( /obj/effect/landmark/monkey_spawn, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor{ - icon_state = "whitepurplefull" - }, +/turf/open/floor/whitepurplefull, /area/bigredv2/caves/lambda/xenobiology) "alR" = ( /obj/effect/landmark/monkey_spawn, -/turf/open/floor{ - icon_state = "whitepurplefull" - }, +/turf/open/floor/whitepurplefull, /area/bigredv2/caves/lambda/xenobiology) "alS" = ( /obj/effect/decal/cleanable/vomit, -/turf/open/floor{ - icon_state = "whitepurplefull" - }, +/turf/open/floor/whitepurplefull, /area/bigredv2/caves/lambda/xenobiology) "alT" = ( /obj/structure/surface/table/woodentable, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/dorms) "alU" = ( -/turf/open/floor{ - dir = 8; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/west, /area/bigredv2/caves/lambda/xenobiology) "alV" = ( /obj/structure/machinery/portable_atmospherics/hydroponics, /obj/item/grown/log, -/turf/open/floor{ - icon_state = "whitegreenfull" - }, +/turf/open/floor/whitegreenfull, /area/bigredv2/caves/lambda/xenobiology) "alW" = ( /obj/structure/machinery/portable_atmospherics/hydroponics, -/turf/open/floor{ - icon_state = "whitegreenfull" - }, +/turf/open/floor/whitegreenfull, /area/bigredv2/caves/lambda/xenobiology) "alX" = ( /turf/closed/wall/solaris/reinforced, @@ -4155,10 +3001,7 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/east, /area/bigredv2/caves/lambda/xenobiology) "alZ" = ( /obj/structure/window/framed/solaris, @@ -4169,9 +3012,7 @@ /turf/open/floor/plating, /area/bigredv2/outside/marshal_office) "ama" = ( -/turf/open/mars{ - icon_state = "mars_dirt_9" - }, +/turf/open/mars/mars_dirt_9, /area/bigredv2/outside/nw) "amb" = ( /obj/item/shard, @@ -4185,37 +3026,26 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/nw) "amd" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/marshal_office) "ame" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - dir = 4; - icon_state = "redcorner" - }, +/turf/open/floor/redcorner/east, /area/bigredv2/outside/marshal_office) "amg" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 4; - icon_state = "redcorner" - }, +/turf/open/floor/redcorner/east, /area/bigredv2/outside/marshal_office) "amh" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -4280,10 +3110,7 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/red/east, /area/bigredv2/outside/marshal_office) "amt" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -4292,9 +3119,7 @@ /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ name = "\improper Marshal Office Courtroom" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/marshal_office) "amu" = ( /obj/structure/bed/chair{ @@ -4306,19 +3131,6 @@ /obj/effect/landmark/survivor_spawner, /turf/open/floor, /area/bigredv2/outside/marshal_office) -"amv" = ( -/obj/structure/window/reinforced{ - dir = 4; - health = 80 - }, -/obj/structure/bed/chair{ - dir = 4 - }, -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 4 - }, -/turf/open/floor, -/area/bigredv2/outside/marshal_office) "amw" = ( /obj/structure/bed/chair{ dir = 4 @@ -4326,9 +3138,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/marshal_office) "amx" = ( /obj/structure/surface/table, @@ -4336,47 +3146,34 @@ dir = 4 }, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/marshal_office) "amy" = ( /obj/structure/surface/table/woodentable, /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor{ - icon_state = "cult" - }, +/turf/open/floor/cult, /area/bigredv2/outside/marshal_office) "amz" = ( -/turf/open/floor{ - dir = 1; - icon_state = "rampbottom" - }, +/turf/open/floor/rampbottom/north, /area/bigredv2/outside/marshal_office) "amA" = ( /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/marshal_office) "amB" = ( /obj/effect/landmark/survivor_spawner, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "grimy" - }, +/turf/open/floor/grimy, /area/bigredv2/outside/marshal_office) "amC" = ( /obj/structure/bed/chair/office/light{ dir = 1 }, -/turf/open/floor{ - icon_state = "grimy" - }, +/turf/open/floor/grimy, /area/bigredv2/outside/marshal_office) "amD" = ( /obj/effect/landmark/crap_item, @@ -4386,9 +3183,7 @@ /turf/open/floor/plating, /area/bigredv2/caves_north) "amG" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_8" - }, +/turf/open/mars_cave/mars_cave_8, /area/bigredv2/caves_lambda) "amH" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, @@ -4404,86 +3199,57 @@ /turf/open/floor/plating, /area/bigredv2/outside/dorms) "amJ" = ( -/turf/open/floor/plating{ - dir = 10; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/southwest, /area/bigredv2/caves/lambda/xenobiology) "amK" = ( /obj/effect/landmark/monkey_spawn, -/turf/open/floor/plating{ - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate, /area/bigredv2/caves/lambda/xenobiology) "amL" = ( -/turf/open/floor/plating{ - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate, /area/bigredv2/caves/lambda/xenobiology) "amM" = ( /obj/structure/machinery/door/poddoor/almayer{ dir = 4 }, -/turf/open/floor/plating{ - dir = 6; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/southeast, /area/bigredv2/caves/lambda/xenobiology) "amN" = ( /obj/item/stool, -/turf/open/floor{ - icon_state = "whitepurplefull" - }, +/turf/open/floor/whitepurplefull, /area/bigredv2/caves/lambda/xenobiology) "amO" = ( -/turf/open/floor{ - dir = 4; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/east, /area/bigredv2/caves/lambda/xenobiology) "amP" = ( /obj/structure/machinery/door/airlock/almayer/research/glass/colony{ name = "\improper Lambda Lab Xenobiology" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/caves/lambda/xenobiology) "amQ" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 1 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/east, /area/bigredv2/caves/lambda/xenobiology) "amR" = ( /obj/structure/machinery/door/airlock/almayer/research/glass/colony{ name = "\improper Lambda Lab Hydroponics" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/caves/lambda/xenobiology) "amS" = ( /obj/item/grown/log, -/turf/open/floor{ - icon_state = "whitegreenfull" - }, +/turf/open/floor/whitegreenfull, /area/bigredv2/caves/lambda/xenobiology) "amT" = ( /obj/effect/glowshroom, -/turf/open/floor{ - icon_state = "whitegreenfull" - }, +/turf/open/floor/whitegreenfull, /area/bigredv2/caves/lambda/xenobiology) "amU" = ( /obj/structure/machinery/portable_atmospherics/hydroponics, -/turf/open/floor{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/east, /area/bigredv2/caves/lambda/xenobiology) "amV" = ( /obj/structure/window/framed/solaris, @@ -4499,10 +3265,7 @@ dir = 1 }, /obj/structure/closet/crate/freezer/rations, -/turf/open/floor{ - dir = 1; - icon_state = "elevatorshaft" - }, +/turf/open/floor/elevatorshaft/north, /area/bigredv2/caves/lambda/breakroom) "amX" = ( /obj/structure/window/framed/solaris/reinforced, @@ -4525,44 +3288,33 @@ dir = 1; name = "\improper Marshal Office" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/marshal_office) "anb" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor{ - icon_state = "redcorner" - }, +/turf/open/floor/redcorner, /area/bigredv2/outside/marshal_office) "anc" = ( /obj/structure/machinery/alarm{ dir = 1; pixel_y = -30 }, -/turf/open/floor{ - icon_state = "redcorner" - }, +/turf/open/floor/redcorner, /area/bigredv2/outside/marshal_office) "and" = ( /obj/effect/decal/cleanable/dirt, /obj/item/frame/table, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "redcorner" - }, +/turf/open/floor/redcorner, /area/bigredv2/outside/marshal_office) "ane" = ( /obj/structure/machinery/cm_vending/sorted/medical/wall_med/limited{ name = "Emergency NanoMed"; pixel_x = 30 }, -/turf/open/floor{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/red/southeast, /area/bigredv2/outside/marshal_office) "anf" = ( /obj/structure/bed/chair{ @@ -4574,9 +3326,7 @@ "ang" = ( /obj/structure/surface/table/woodentable, /obj/item/paper/Court, -/turf/open/floor{ - icon_state = "cult" - }, +/turf/open/floor/cult, /area/bigredv2/outside/marshal_office) "anh" = ( /obj/structure/bed/chair/comfy/black{ @@ -4585,9 +3335,7 @@ /obj/structure/machinery/camera/autoname{ dir = 8 }, -/turf/open/floor{ - icon_state = "cult" - }, +/turf/open/floor/cult, /area/bigredv2/outside/marshal_office) "ani" = ( /obj/structure/bed/chair{ @@ -4598,9 +3346,7 @@ name = "Storm Shutters"; pixel_x = -32 }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/marshal_office) "anj" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, @@ -4620,17 +3366,11 @@ /obj/effect/spawner/random/powercell, /turf/open/floor/plating, /area/bigredv2/caves/lambda/xenobiology) -"ann" = ( -/obj/effect/decal/cleanable/dirt, -/turf/closed/wall/solaris, -/area/bigredv2/outside/general_offices) "ano" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony{ name = "\improper Lambda Lab Maintenance Storage" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/caves/lambda/xenobiology) "anp" = ( /turf/closed/wall/solaris/reinforced, @@ -4639,17 +3379,12 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor{ - dir = 8; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/west, /area/bigredv2/caves/lambda/xenobiology) "ans" = ( /obj/structure/surface/table, /obj/item/storage/box/gloves, -/turf/open/floor{ - icon_state = "whitegreencorner" - }, +/turf/open/floor/whitegreencorner, /area/bigredv2/outside/medical) "ant" = ( /obj/structure/window/framed/solaris, @@ -4667,20 +3402,14 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 1 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/east, /area/bigredv2/caves/lambda/xenobiology) "anv" = ( /obj/effect/glowshroom, /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor{ - dir = 8; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/west, /area/bigredv2/caves/lambda/xenobiology) "anw" = ( /obj/structure/sign/safety/bulkhead_door, @@ -4691,18 +3420,14 @@ dir = 1; name = "\improper Marshal Office Holding Cell" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/marshal_office) "any" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ dir = 1; name = "\improper Marshal Office Checkpoint" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/marshal_office) "anz" = ( /obj/effect/decal/cleanable/dirt, @@ -4710,9 +3435,7 @@ /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper Marshal Office" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/marshal_office) "anB" = ( /obj/structure/machinery/light{ @@ -4732,23 +3455,17 @@ "anE" = ( /obj/structure/surface/table/woodentable, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - icon_state = "cult" - }, +/turf/open/floor/cult, /area/bigredv2/outside/marshal_office) "anF" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor{ - icon_state = "cult" - }, +/turf/open/floor/cult, /area/bigredv2/outside/marshal_office) "anH" = ( /obj/structure/bed/chair, -/turf/open/floor{ - icon_state = "grimy" - }, +/turf/open/floor/grimy, /area/bigredv2/outside/marshal_office) "anI" = ( /turf/closed/wall/solaris/reinforced, @@ -4781,10 +3498,7 @@ /area/bigredv2/caves/lambda/xenobiology) "anO" = ( /obj/effect/landmark/monkey_spawn, -/turf/open/floor/plating{ - dir = 9; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/northwest, /area/bigredv2/caves/lambda/xenobiology) "anP" = ( /obj/structure/machinery/light/small{ @@ -4792,33 +3506,21 @@ }, /obj/effect/landmark/monkey_spawn, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/plating{ - dir = 1; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/north, /area/bigredv2/caves/lambda/xenobiology) "anQ" = ( /obj/effect/landmark/monkey_spawn, -/turf/open/floor/plating{ - dir = 1; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/north, /area/bigredv2/caves/lambda/xenobiology) "anR" = ( /obj/structure/machinery/door/poddoor/almayer{ dir = 4 }, -/turf/open/floor/plating{ - dir = 5; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/northeast, /area/bigredv2/caves/lambda/xenobiology) "anS" = ( /obj/item/tool/warning_cone, -/turf/open/floor{ - dir = 8; - icon_state = "warnwhite" - }, +/turf/open/floor/warnwhite/west, /area/bigredv2/caves/lambda/xenobiology) "anT" = ( /turf/closed/wall/solaris, @@ -4833,9 +3535,7 @@ /area/bigredv2/outside/hydroponics) "anV" = ( /obj/item/reagent_container/spray/pepper, -/turf/open/floor{ - icon_state = "whitepurplefull" - }, +/turf/open/floor/whitepurplefull, /area/bigredv2/caves/lambda/xenobiology) "anW" = ( /turf/closed/wall/solaris, @@ -4862,9 +3562,6 @@ }, /turf/open/floor/plating, /area/bigredv2/outside/medical) -"aoa" = ( -/turf/closed/wall/solaris/reinforced/hull, -/area/bigredv2/outside/virology) "aob" = ( /turf/closed/wall/solaris/reinforced, /area/bigredv2/caves/lambda/virology) @@ -4880,23 +3577,17 @@ "aod" = ( /obj/effect/landmark/crap_item, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor{ - icon_state = "whitegreenfull" - }, +/turf/open/floor/whitegreenfull, /area/bigredv2/caves/lambda/xenobiology) "aoe" = ( /obj/item/explosive/grenade/custom/antiweed, -/turf/open/floor{ - icon_state = "whitegreenfull" - }, +/turf/open/floor/whitegreenfull, /area/bigredv2/caves/lambda/xenobiology) "aof" = ( /turf/closed/wall/solaris, /area/bigredv2/outside/admin_building) "aog" = ( -/turf/open/mars{ - icon_state = "mars_dirt_11" - }, +/turf/open/mars/mars_dirt_11, /area/bigredv2/outside/nw) "aoh" = ( /obj/structure/machinery/door_control{ @@ -4904,17 +3595,11 @@ name = "Storm Shutters"; pixel_x = -32 }, -/turf/open/floor{ - dir = 9; - icon_state = "redfull" - }, +/turf/open/floor/redfull/northwest, /area/bigredv2/outside/marshal_office) "aoi" = ( /obj/structure/surface/table, -/turf/open/floor{ - dir = 9; - icon_state = "redfull" - }, +/turf/open/floor/redfull/northwest, /area/bigredv2/outside/marshal_office) "aoj" = ( /obj/effect/decal/cleanable/dirt, @@ -4924,29 +3609,21 @@ "aok" = ( /obj/structure/surface/table/woodentable, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "cult" - }, +/turf/open/floor/cult, /area/bigredv2/outside/marshal_office) "aol" = ( -/turf/open/floor{ - icon_state = "rampbottom" - }, +/turf/open/floor/rampbottom, /area/bigredv2/outside/marshal_office) "aom" = ( /obj/structure/surface/table/woodentable/fancy, /obj/item/clothing/suit/storage/lawyer/bluejacket, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/marshal_office) "aon" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor{ - icon_state = "grimy" - }, +/turf/open/floor/grimy, /area/bigredv2/outside/marshal_office) "aoo" = ( /obj/structure/pipes/vents/pump{ @@ -4969,57 +3646,29 @@ }, /turf/open/floor, /area/bigredv2/outside/general_offices) -"aor" = ( -/obj/structure/machinery/washing_machine, -/obj/item/clothing/under/darkred, -/turf/open/floor{ - icon_state = "freezerfloor" - }, -/area/bigredv2/outside/general_offices) -"aos" = ( -/obj/structure/machinery/washing_machine, -/turf/open/floor{ - icon_state = "freezerfloor" - }, -/area/bigredv2/outside/general_offices) -"aot" = ( -/obj/structure/machinery/washing_machine, -/obj/item/clothing/under/brown, -/turf/open/floor{ - icon_state = "freezerfloor" - }, -/area/bigredv2/outside/general_offices) "aou" = ( /turf/open/floor/plating, /area/bigredv2/outside/general_offices) "aov" = ( /obj/structure/machinery/suit_storage_unit/carbon_unit, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/general_offices) "aow" = ( /obj/structure/machinery/light{ dir = 1 }, /obj/structure/machinery/suit_storage_unit/carbon_unit, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/general_offices) "aox" = ( /obj/structure/machinery/suit_storage_unit/carbon_unit, /obj/structure/machinery/camera/autoname, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/general_offices) "aoy" = ( /obj/structure/machinery/suit_storage_unit/carbon_unit, /obj/effect/decal/cleanable/cobweb2, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/general_offices) "aoz" = ( /obj/structure/window/framed/solaris, @@ -5036,14 +3685,10 @@ /obj/item/stack/sheet/mineral/plastic, /obj/item/stack/sheet/mineral/plastic, /obj/effect/decal/cleanable/cobweb, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/general_offices) "aoB" = ( -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/general_offices) "aoD" = ( /turf/closed/wall/solaris/reinforced, @@ -5055,16 +3700,11 @@ "aoF" = ( /obj/structure/surface/table, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/dorms) "aoG" = ( /obj/effect/landmark/monkey_spawn, -/turf/open/floor/plating{ - dir = 10; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/southwest, /area/bigredv2/caves/lambda/xenobiology) "aoH" = ( /turf/closed/wall/solaris, @@ -5073,102 +3713,66 @@ /obj/item/tool/surgery/scalpel/laser/advanced, /obj/effect/decal/cleanable/blood, /obj/effect/decal/cleanable/blood/gibs/limb, -/turf/open/floor{ - icon_state = "whitepurplefull" - }, +/turf/open/floor/whitepurplefull, /area/bigredv2/caves/lambda/xenobiology) "aoJ" = ( /obj/structure/surface/table/reinforced, -/obj/item/XenoBio/Resin, -/turf/open/floor{ - dir = 4; - icon_state = "whitepurple" - }, +/obj/item/oldresearch/Resin, +/turf/open/floor/whitepurple/east, /area/bigredv2/caves/lambda/xenobiology) "aoK" = ( -/turf/open/floor{ - dir = 8; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/west, /area/bigredv2/caves/lambda/breakroom) "aoL" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 1 }, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor{ - dir = 4; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/east, /area/bigredv2/caves/lambda/xenobiology) "aoM" = ( /obj/item/tool/weedkiller, -/turf/open/floor{ - icon_state = "whitegreenfull" - }, +/turf/open/floor/whitegreenfull, /area/bigredv2/caves/lambda/xenobiology) "aoN" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/nw) "aoO" = ( -/turf/open/floor{ - dir = 9; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/northwest, /area/bigredv2/outside/nw) "aoP" = ( /obj/structure/barricade/wooden, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/north, /area/bigredv2/outside/nw) "aoQ" = ( /obj/effect/decal/cleanable/blood{ layer = 3 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/north, /area/bigredv2/outside/nw) "aoR" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/sign/safety/medical{ pixel_y = -32 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/north, /area/bigredv2/outside/nw) "aoT" = ( /obj/structure/bed, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/marshal_office) "aoU" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor{ - dir = 9; - icon_state = "redfull" - }, +/turf/open/floor/redfull/northwest, /area/bigredv2/outside/marshal_office) "aoV" = ( /obj/structure/bed/chair/office/dark{ dir = 4 }, -/turf/open/floor{ - dir = 9; - icon_state = "redfull" - }, +/turf/open/floor/redfull/northwest, /area/bigredv2/outside/marshal_office) "aoW" = ( /obj/effect/decal/cleanable/dirt, @@ -5178,38 +3782,28 @@ "aoX" = ( /obj/structure/surface/table/woodentable/fancy, /obj/item/device/camera, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/marshal_office) "aoY" = ( /obj/structure/machinery/light, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/marshal_office) "aoZ" = ( /obj/structure/machinery/camera/autoname{ dir = 1 }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/marshal_office) "apa" = ( /obj/structure/bed/chair/office/light{ dir = 1 }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/marshal_office) "apb" = ( /obj/structure/surface/table/woodentable/fancy, /obj/item/device/camera_film, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/marshal_office) "apc" = ( /turf/open/floor, @@ -5219,22 +3813,11 @@ /turf/open/floor, /area/bigredv2/outside/general_offices) "ape" = ( -/turf/open/floor{ - icon_state = "freezerfloor" - }, -/area/bigredv2/outside/general_offices) -"apf" = ( -/obj/item/clothing/under/darkred, -/obj/structure/pipes/vents/pump/on, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/bigredv2/outside/general_offices) "apg" = ( /obj/item/clothing/under/lightbrown, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/bigredv2/outside/general_offices) "aph" = ( /obj/structure/machinery/light{ @@ -5255,25 +3838,19 @@ /obj/structure/machinery/door/airlock/almayer/maint/colony{ name = "\improper Dormitories EVA Maintenance" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/general_offices) "apk" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/general_offices) "apl" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/general_offices) "apm" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -5282,23 +3859,16 @@ /obj/structure/machinery/door/airlock/almayer/engineering/colony{ name = "\improper Dormitories EVA" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/general_offices) "apn" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/general_offices) "apo" = ( -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/ne) "app" = ( /obj/structure/machinery/power/port_gen/pacman, @@ -5343,52 +3913,34 @@ name = "Lambda Lockdown"; pixel_y = -25 }, -/turf/open/floor{ - dir = 10; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/southwest, /area/bigredv2/caves/lambda/xenobiology) "apw" = ( -/turf/open/floor{ - dir = 8; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/west, /area/bigredv2/caves/lambda/xenobiology) "apx" = ( /obj/effect/decal/cleanable/blood/gibs/xeno/core, /obj/item/shard, /obj/effect/landmark/monkey_spawn, -/turf/open/floor{ - icon_state = "whitepurplefull" - }, +/turf/open/floor/whitepurplefull, /area/bigredv2/caves/lambda/xenobiology) "apy" = ( /obj/effect/decal/cleanable/mucus, /obj/structure/pipes/standard/simple/hidden/supply{ dir = 1 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/east, /area/bigredv2/caves/lambda/xenobiology) "apz" = ( /obj/item/grown/sunflower, -/turf/open/floor{ - icon_state = "whitegreenfull" - }, +/turf/open/floor/whitegreenfull, /area/bigredv2/caves/lambda/xenobiology) "apA" = ( -/turf/open/floor{ - icon_state = "whitegreencorner" - }, +/turf/open/floor/whitegreencorner, /area/bigredv2/caves/lambda/xenobiology) "apB" = ( /obj/structure/machinery/portable_atmospherics/hydroponics, -/turf/open/floor{ - dir = 6; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/southeast, /area/bigredv2/caves/lambda/xenobiology) "apC" = ( /turf/closed/wall/solaris/reinforced, @@ -5408,15 +3960,11 @@ /obj/structure/machinery/door/airlock/multi_tile/almayer/medidoor/colony{ name = "\improper Medical Clinic" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/medical) "apF" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/medical) "apG" = ( /turf/closed/wall/solaris, @@ -5426,13 +3974,8 @@ /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper Marshal Office" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/marshal_office) -"apI" = ( -/turf/closed/wall/solaris/reinforced/hull, -/area/bigredv2/outside/lambda_cave_cas) "apJ" = ( /obj/structure/window/framed/solaris/reinforced, /obj/structure/machinery/door/poddoor/shutters/almayer{ @@ -5459,23 +4002,17 @@ /obj/structure/machinery/door/airlock/almayer/medical/glass/colony{ name = "\improper Dormitories Lavatory" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/general_offices) "apN" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/bigredv2/outside/general_offices) "apO" = ( /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/bigredv2/outside/general_offices) "apP" = ( /obj/structure/surface/table, @@ -5483,9 +4020,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/bigredv2/outside/general_offices) "apQ" = ( /obj/structure/window/framed/solaris, @@ -5509,59 +4044,42 @@ dir = 4; pixel_x = -30 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/general_offices) "apU" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/general_offices) "apV" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/general_offices) "apW" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/general_offices) "apX" = ( /obj/structure/surface/rack, /obj/item/stack/sheet/mineral/phoron{ amount = 25 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/general_offices) "apY" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/general_offices) "apZ" = ( /obj/structure/surface/rack, /obj/item/stack/sheet/mineral/uranium{ amount = 50 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/general_offices) "aqa" = ( -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/east, /area/bigredv2/outside/ne) "aqb" = ( /obj/structure/surface/table, @@ -5576,10 +4094,7 @@ /obj/structure/window/reinforced{ dir = 1 }, -/turf/open/floor{ - dir = 10; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/southwest, /area/bigredv2/caves/lambda/xenobiology) "aqe" = ( /obj/structure/xenoautopsy/tank/larva, @@ -5587,18 +4102,14 @@ /obj/structure/window/reinforced{ dir = 1 }, -/turf/open/floor{ - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple, /area/bigredv2/caves/lambda/xenobiology) "aqf" = ( /obj/effect/decal/cleanable/blood, /obj/structure/xenoautopsy/tank/broken, /obj/effect/decal/cleanable/blood/gibs/xeno/body, /obj/effect/decal/warning_stripes, -/turf/open/floor{ - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple, /area/bigredv2/caves/lambda/xenobiology) "aqg" = ( /obj/structure/xenoautopsy/tank/alien, @@ -5606,9 +4117,7 @@ /obj/structure/window/reinforced{ dir = 1 }, -/turf/open/floor{ - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple, /area/bigredv2/caves/lambda/xenobiology) "aqh" = ( /obj/structure/surface/table/reinforced, @@ -5618,10 +4127,7 @@ /obj/structure/window/reinforced{ dir = 1 }, -/turf/open/floor{ - dir = 6; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/southeast, /area/bigredv2/caves/lambda/xenobiology) "aqi" = ( /obj/structure/machinery/light/built{ @@ -5630,10 +4136,7 @@ /obj/structure/pipes/vents/scrubber/on{ dir = 4 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/west, /area/bigredv2/caves/lambda/xenobiology) "aqj" = ( /obj/structure/machinery/light{ @@ -5642,96 +4145,60 @@ /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/east, /area/bigredv2/caves/lambda/xenobiology) "aqk" = ( /obj/structure/machinery/vending/hydroseeds, /obj/structure/machinery/light, -/turf/open/floor{ - dir = 10; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/southwest, /area/bigredv2/caves/lambda/xenobiology) "aql" = ( /obj/structure/machinery/seed_extractor, -/turf/open/floor{ - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen, /area/bigredv2/caves/lambda/xenobiology) "aqm" = ( /obj/structure/machinery/biogenerator, -/turf/open/floor{ - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen, /area/bigredv2/caves/lambda/xenobiology) "aqn" = ( /obj/structure/machinery/portable_atmospherics/hydroponics, -/turf/open/floor{ - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen, /area/bigredv2/caves/lambda/xenobiology) "aqo" = ( /obj/structure/machinery/vending/hydronutrients, /obj/structure/machinery/light, -/turf/open/floor{ - dir = 6; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/southeast, /area/bigredv2/caves/lambda/xenobiology) "aqp" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/west, /area/bigredv2/outside/nw) "aqq" = ( /obj/structure/closet/secure_closet/chemical, -/turf/open/floor{ - dir = 1; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/north, /area/bigredv2/outside/medical) "aqr" = ( -/turf/open/floor{ - dir = 1; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/north, /area/bigredv2/outside/medical) "aqs" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "whitepurplefull" - }, +/turf/open/floor/whitepurplefull, /area/bigredv2/outside/medical) "aqt" = ( /obj/structure/machinery/chem_master, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 4; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/east, /area/bigredv2/outside/medical) "aqu" = ( /obj/structure/machinery/chem_dispenser, -/turf/open/floor{ - dir = 4; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/east, /area/bigredv2/outside/medical) "aqv" = ( /obj/structure/bed, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/medical) "aqw" = ( -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/medical) "aqx" = ( /obj/structure/window/framed/solaris, @@ -5741,20 +4208,6 @@ }, /turf/open/floor/plating, /area/bigredv2/outside/library) -"aqy" = ( -/obj/structure/bed/roller, -/obj/structure/machinery/light{ - dir = 1 - }, -/obj/structure/machinery/door_control{ - id = "Medical"; - name = "Storm Shutters"; - pixel_y = 32 - }, -/turf/open/floor{ - icon_state = "white" - }, -/area/bigredv2/outside/medical) "aqz" = ( /obj/structure/window/framed/solaris, /obj/structure/machinery/door/poddoor/shutters/almayer{ @@ -5763,84 +4216,34 @@ }, /turf/open/floor/plating, /area/bigredv2/outside/bar) -"aqB" = ( -/obj/structure/machinery/computer/crew, -/turf/open/floor{ - icon_state = "whitegreenfull" - }, -/area/bigredv2/outside/medical) "aqC" = ( /obj/structure/surface/table, -/turf/open/floor{ - dir = 5; - icon_state = "whitebluefull" - }, -/area/bigredv2/outside/medical) -"aqD" = ( -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/whitebluefull/northeast, /area/bigredv2/outside/medical) -"aqE" = ( -/obj/structure/morgue{ - dir = 8 - }, -/turf/open/floor{ - icon_state = "dark" - }, -/area/bigredv2/outside/medical) -"aqF" = ( -/obj/structure/morgue, -/turf/open/floor{ - icon_state = "dark" - }, -/area/bigredv2/outside/medical) -"aqG" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 5 - }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, -/area/bigredv2/outside/n) "aqH" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/bigredv2/outside/n) "aqI" = ( -/turf/open/floor{ - dir = 6; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/southeast, /area/bigredv2/outside/n) "aqJ" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/outside/nw) "aqK" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/bigredv2/outside/n) "aqL" = ( -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/outside/n) "aqM" = ( -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/bigredv2/outside/n) "aqN" = ( /obj/structure/barricade/wooden{ @@ -5849,9 +4252,7 @@ health = 25000 }, /obj/structure/barricade/wooden, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/bigredv2/outside/n) "aqO" = ( /obj/structure/barricade/wooden, @@ -5865,15 +4266,11 @@ /area/bigredv2/outside/general_offices) "aqR" = ( /obj/effect/landmark/crap_item, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/bigredv2/outside/general_offices) "aqS" = ( /obj/item/clothing/under/brown, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/bigredv2/outside/general_offices) "aqT" = ( /obj/item/device/radio/intercom{ @@ -5882,9 +4279,7 @@ name = "General Listening Channel"; pixel_x = 30 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/bigredv2/outside/general_offices) "aqU" = ( /obj/structure/window/framed/solaris, @@ -5900,9 +4295,7 @@ /area/bigredv2/outside/general_offices) "aqW" = ( /obj/structure/dispenser/oxygen, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/general_offices) "aqX" = ( /obj/item/storage/toolbox/mechanical, @@ -5912,35 +4305,13 @@ health = 80 }, /obj/structure/surface/rack, -/turf/open/floor{ - dir = 1; - icon_state = "elevatorshaft" - }, +/turf/open/floor/elevatorshaft/north, /area/bigredv2/caves/lambda/breakroom) "aqY" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - dir = 1; - icon_state = "elevatorshaft" - }, -/area/bigredv2/caves/lambda/breakroom) -"aqZ" = ( -/obj/structure/noticeboard{ - dir = 1; - pixel_y = 30; - desc = "A board for pinning important items upon."; - name = "trophy board" - }, -/obj/item/XenoBio/Chitin{ - pixel_y = 27; - anchored = 1 - }, -/turf/open/floor{ - dir = 1; - icon_state = "elevatorshaft" - }, +/turf/open/floor/elevatorshaft/north, /area/bigredv2/caves/lambda/breakroom) "ara" = ( /obj/structure/surface/table/woodentable/fancy, @@ -5948,19 +4319,13 @@ pixel_y = 15 }, /obj/item/paper/bigred/lambda, -/turf/open/floor{ - dir = 1; - icon_state = "elevatorshaft" - }, +/turf/open/floor/elevatorshaft/north, /area/bigredv2/caves/lambda/breakroom) "arb" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/west, /area/bigredv2/caves/lambda/xenobiology) "arc" = ( /obj/structure/sign/safety/medical{ @@ -5969,100 +4334,54 @@ /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/east, /area/bigredv2/caves/lambda/xenobiology) "ard" = ( /obj/effect/landmark/crap_item, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/outside/nw) "are" = ( /obj/structure/surface/table, /obj/item/storage/fancy/vials/random, -/turf/open/floor{ - dir = 1; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/north, /area/bigredv2/outside/medical) "arf" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor{ - dir = 4; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/east, /area/bigredv2/outside/medical) "arg" = ( /obj/structure/bed/chair/office/light{ dir = 4 }, -/turf/open/floor{ - dir = 4; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/east, /area/bigredv2/outside/medical) "ari" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/medical) "arj" = ( /obj/item/trash/chips, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/medical) "ark" = ( /obj/structure/bed/roller, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/medical) "arl" = ( -/turf/open/floor{ - icon_state = "whitegreenfull" - }, +/turf/open/floor/whitegreenfull, /area/bigredv2/outside/medical) "arm" = ( /obj/structure/bed/chair/office/light, -/turf/open/floor{ - icon_state = "white" - }, -/area/bigredv2/outside/medical) -"arn" = ( -/obj/structure/machinery/computer/med_data, -/turf/open/floor{ - icon_state = "whitegreenfull" - }, -/area/bigredv2/outside/medical) -"aro" = ( -/obj/structure/machinery/optable, -/obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/white, /area/bigredv2/outside/medical) "arp" = ( -/turf/open/mars{ - icon_state = "mars_dirt_3" - }, +/turf/open/mars/mars_dirt_3, /area/bigredv2/outside/n) "arq" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, -/area/bigredv2/outside/n) -"arr" = ( -/turf/open/mars{ - icon_state = "mars_dirt_14" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/outside/n) "ars" = ( /obj/structure/bed/chair{ @@ -6070,27 +4389,6 @@ }, /turf/open/floor, /area/bigredv2/outside/general_offices) -"art" = ( -/obj/structure/machinery/washing_machine, -/obj/item/clothing/under/lightbrown, -/turf/open/floor{ - icon_state = "freezerfloor" - }, -/area/bigredv2/outside/general_offices) -"aru" = ( -/obj/structure/machinery/washing_machine, -/obj/structure/machinery/light, -/turf/open/floor{ - icon_state = "freezerfloor" - }, -/area/bigredv2/outside/general_offices) -"arv" = ( -/obj/structure/machinery/washing_machine, -/obj/item/clothing/under/lightred, -/turf/open/floor{ - icon_state = "freezerfloor" - }, -/area/bigredv2/outside/general_offices) "arw" = ( /obj/structure/machinery/power/apc, /turf/open/floor/plating, @@ -6098,9 +4396,7 @@ "arx" = ( /obj/structure/surface/table, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/general_offices) "ary" = ( /obj/structure/surface/table, @@ -6109,35 +4405,20 @@ dir = 8 }, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/general_offices) -"arz" = ( -/obj/structure/toilet{ - pixel_y = 8 - }, -/obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - icon_state = "freezerfloor" - }, -/area/bigredv2/outside/dorms) "arA" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/surface/rack, /obj/item/stack/sheet/mineral/uranium{ amount = 50 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/general_offices) "arB" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/item/stack/sheet/plasteel, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/general_offices) "arC" = ( /obj/structure/machinery/light{ @@ -6151,9 +4432,7 @@ /obj/item/stack/sheet/mineral/phoron{ amount = 25 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/general_offices) "arD" = ( /turf/open/mars, @@ -6165,24 +4444,15 @@ /obj/item/ammo_magazine/shotgun/incendiary, /obj/item/weapon/gun/shotgun/combat, /obj/structure/machinery/door/window/eastleft, -/turf/open/floor{ - dir = 1; - icon_state = "elevatorshaft" - }, +/turf/open/floor/elevatorshaft/north, /area/bigredv2/caves/lambda/breakroom) "arF" = ( -/turf/open/floor{ - dir = 1; - icon_state = "elevatorshaft" - }, +/turf/open/floor/elevatorshaft/north, /area/bigredv2/caves/lambda/breakroom) "arG" = ( /obj/structure/bed, /obj/item/bedsheet/rd, -/turf/open/floor{ - dir = 1; - icon_state = "elevatorshaft" - }, +/turf/open/floor/elevatorshaft/north, /area/bigredv2/caves/lambda/breakroom) "arI" = ( /obj/structure/flora/pottedplant{ @@ -6194,69 +4464,48 @@ /obj/structure/machinery/door/airlock/multi_tile/almayer/medidoor/colony{ name = "\improper Lambda Lab Biology Wing" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/caves/lambda/breakroom) "arK" = ( /turf/closed/wall/solaris/reinforced, /area/bigredv2/caves_lambda) "arL" = ( /obj/effect/glowshroom, -/turf/open/mars_cave{ - icon_state = "mars_cave_10" - }, +/turf/open/mars_cave/mars_cave_10, /area/bigredv2/caves_lambda) "arM" = ( /obj/effect/glowshroom, -/turf/open/mars_cave{ - icon_state = "mars_cave_7" - }, +/turf/open/mars_cave/mars_cave_7, /area/bigredv2/caves_lambda) "arN" = ( /obj/structure/surface/table, /obj/effect/spawner/random/powercell, -/turf/open/floor{ - dir = 8; - icon_state = "purple" - }, +/turf/open/floor/purple/west, /area/bigredv2/caves/lambda/research) "arO" = ( /obj/effect/decal/cleanable/dirt, /obj/item/explosive/grenade/custom/large, -/turf/open/floor{ - icon_state = "whitepurplefull" - }, +/turf/open/floor/whitepurplefull, /area/bigredv2/outside/medical) "arP" = ( /obj/structure/pipes/vents/pump, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 4; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/east, /area/bigredv2/outside/medical) "arQ" = ( /obj/structure/surface/table, /obj/structure/machinery/reagentgrinder, -/turf/open/floor{ - dir = 4; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/east, /area/bigredv2/outside/medical) "arR" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/medical) "arS" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/medical) "arT" = ( /obj/structure/window/framed/solaris, @@ -6264,18 +4513,7 @@ /area/bigredv2/outside/virology) "arU" = ( /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor{ - icon_state = "white" - }, -/area/bigredv2/outside/medical) -"arV" = ( -/obj/structure/pipes/vents/pump{ - dir = 8 - }, -/obj/structure/bed/roller, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/medical) "arW" = ( /obj/structure/surface/table, @@ -6284,64 +4522,37 @@ }, /obj/structure/pipes/vents/pump, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor{ - dir = 5; - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull/northeast, /area/bigredv2/outside/medical) "arX" = ( /obj/structure/closet/secure_closet/medical1, /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor{ - icon_state = "whitegreencorner" - }, -/area/bigredv2/outside/medical) -"arY" = ( -/obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/whitegreencorner, /area/bigredv2/outside/medical) "arZ" = ( /obj/effect/decal/cleanable/blood/gibs/xeno/down, -/turf/open/mars{ - icon_state = "mars_dirt_3" - }, +/turf/open/mars/mars_dirt_3, /area/bigredv2/outside/n) "asa" = ( -/turf/open/mars{ - icon_state = "mars_dirt_9" - }, +/turf/open/mars/mars_dirt_9, /area/bigredv2/outside/n) "asc" = ( -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/north, /area/bigredv2/outside/n) "asd" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/north, /area/bigredv2/outside/n) "ase" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/north, /area/bigredv2/outside/n) "asf" = ( /obj/structure/barricade/wooden, -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/east, /area/bigredv2/outside/n) "asg" = ( /obj/structure/barricade/wooden{ @@ -6354,10 +4565,7 @@ dir = 8; health = 25000 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/north, /area/bigredv2/outside/n) "ash" = ( /obj/structure/barricade/wooden{ @@ -6365,10 +4573,7 @@ dir = 1; health = 25000 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/north, /area/bigredv2/outside/n) "asi" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -6376,9 +4581,7 @@ dir = 1; name = "\improper Dormitories Tool Storage Maintenance" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/general_offices) "asj" = ( /obj/structure/window/framed/solaris, @@ -6394,37 +4597,25 @@ dir = 1; name = "\improper Dormitories EVA" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/general_offices) "asl" = ( /obj/structure/window/framed/solaris/reinforced, /turf/open/floor/plating, /area/bigredv2/outside/virology) -"asm" = ( -/obj/item/device/flashlight/lantern, -/turf/open/mars, -/area/bigredv2/outside/ne) "asn" = ( /obj/structure/surface/rack, /obj/item/clothing/suit/armor/vest, /obj/structure/machinery/door/window/eastright, /obj/structure/window/reinforced, -/turf/open/floor{ - dir = 1; - icon_state = "elevatorshaft" - }, +/turf/open/floor/elevatorshaft/north, /area/bigredv2/caves/lambda/breakroom) "aso" = ( /mob/living/simple_animal/corgi/puppy{ desc = "It's a corgi puppy. MISTER WIGGLES!! HE IS THE GREATEST!"; name = "\improper Mister Wiggles" }, -/turf/open/floor{ - dir = 1; - icon_state = "elevatorshaft" - }, +/turf/open/floor/elevatorshaft/north, /area/bigredv2/caves/lambda/breakroom) "asp" = ( /obj/structure/bed/chair/comfy/black, @@ -6432,9 +4623,7 @@ /area/bigredv2/caves/lambda/breakroom) "asq" = ( /obj/structure/closet/secure_closet/medical1, -/turf/open/floor{ - icon_state = "whitegreencorner" - }, +/turf/open/floor/whitegreencorner, /area/bigredv2/outside/medical) "asr" = ( /obj/structure/bed/chair/comfy{ @@ -6459,14 +4648,10 @@ dir = 4; pixel_x = -30 }, -/turf/open/floor{ - icon_state = "darkish" - }, +/turf/open/floor/darkish, /area/bigredv2/caves/lambda/breakroom) "asu" = ( -/turf/open/floor{ - icon_state = "darkish" - }, +/turf/open/floor/darkish, /area/bigredv2/caves/lambda/breakroom) "asv" = ( /turf/closed/wall/solaris, @@ -6478,9 +4663,7 @@ /obj/structure/machinery/light/built{ dir = 1 }, -/turf/open/floor{ - icon_state = "darkish" - }, +/turf/open/floor/darkish, /area/bigredv2/caves/lambda/breakroom) "asx" = ( /obj/effect/glowshroom, @@ -6492,74 +4675,44 @@ dir = 8 }, /obj/item/tool/surgery/circular_saw, -/turf/open/floor{ - dir = 1; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/north, /area/bigredv2/outside/medical) "asz" = ( /obj/item/device/reagent_scanner, -/turf/open/floor{ - dir = 1; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/north, /area/bigredv2/outside/medical) "asA" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/crap_item, -/turf/open/floor{ - icon_state = "whitepurplefull" - }, +/turf/open/floor/whitepurplefull, /area/bigredv2/outside/medical) "asB" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 4; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/east, /area/bigredv2/outside/medical) "asC" = ( /obj/effect/decal/cleanable/dirt, /obj/item/clothing/gloves/latex, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/medical) "asD" = ( /obj/effect/landmark/crap_item, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/medical) "asE" = ( /obj/structure/bed/chair{ dir = 1 }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/medical) "asF" = ( /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor{ - icon_state = "whitegreenfull" - }, -/area/bigredv2/outside/medical) -"asG" = ( -/obj/structure/pipes/standard/simple/hidden/green, -/obj/structure/surface/table, -/obj/item/bodybag, -/obj/item/bodybag, -/obj/item/bodybag, -/obj/item/bodybag, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/whitegreenfull, /area/bigredv2/outside/medical) "asH" = ( /obj/structure/window/framed/solaris, @@ -6630,25 +4783,17 @@ "asU" = ( /obj/structure/closet/l3closet, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/bigredv2/outside/general_offices) "asV" = ( /obj/structure/sign/safety/airlock{ pixel_y = 32 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/general_offices) "asW" = ( /obj/structure/closet/l3closet, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/bigredv2/outside/general_offices) "asX" = ( /obj/structure/surface/rack, @@ -6658,32 +4803,17 @@ pixel_x = 4; pixel_y = 4 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/general_offices) "asY" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor{ - icon_state = "dark" - }, -/area/bigredv2/outside/general_offices) -"asZ" = ( -/obj/structure/surface/rack, -/obj/item/stack/sheet/mineral/diamond, -/obj/item/clothing/under/redcoat, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/general_offices) "ata" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/east, /area/bigredv2/outside/ne) "atb" = ( /turf/closed/wall/solaris, @@ -6695,10 +4825,7 @@ name = "Safe-Room intercom"; pixel_y = -30 }, -/turf/open/floor{ - dir = 1; - icon_state = "elevatorshaft" - }, +/turf/open/floor/elevatorshaft/north, /area/bigredv2/caves/lambda/breakroom) "atd" = ( /obj/structure/window/framed/solaris, @@ -6717,33 +4844,23 @@ req_access_txt = "106"; specialfunctions = 4 }, -/turf/open/floor{ - dir = 1; - icon_state = "elevatorshaft" - }, +/turf/open/floor/elevatorshaft/north, /area/bigredv2/caves/lambda/breakroom) "atf" = ( /obj/structure/closet/secure_closet/RD, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor{ - dir = 1; - icon_state = "elevatorshaft" - }, +/turf/open/floor/elevatorshaft/north, /area/bigredv2/caves/lambda/breakroom) "atg" = ( /obj/structure/machinery/vending/snack{ icon_state = "snack-broken"; stat = 1 }, -/turf/open/floor{ - icon_state = "darkish" - }, +/turf/open/floor/darkish, /area/bigredv2/caves/lambda/breakroom) "ath" = ( /obj/effect/decal/cleanable/vomit, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/lambda/breakroom) "ati" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -6751,38 +4868,26 @@ }, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /obj/effect/landmark/corpsespawner/pmc, -/turf/open/floor{ - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2, /area/bigredv2/caves/lambda/breakroom) "atj" = ( /obj/structure/machinery/vending/coffee{ icon_state = "coffee-broken"; stat = 1 }, -/turf/open/floor{ - icon_state = "darkish" - }, +/turf/open/floor/darkish, /area/bigredv2/caves/lambda/breakroom) "atk" = ( /obj/effect/glowshroom, -/turf/open/mars_cave{ - icon_state = "mars_cave_5" - }, +/turf/open/mars_cave/mars_cave_5, /area/bigredv2/caves_lambda) "atl" = ( /obj/structure/barricade/wooden, -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/west, /area/bigredv2/outside/n) "atm" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 6; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/southeast, /area/bigredv2/outside/nw) "atn" = ( /obj/structure/closet/secure_closet/personal/cabinet, @@ -6792,65 +4897,15 @@ /obj/structure/machinery/chem_master, /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 4; - icon_state = "whitepurplecorner" - }, -/area/bigredv2/outside/medical) -"atp" = ( -/obj/structure/machinery/cm_vending/sorted/medical/no_access, -/obj/structure/machinery/light{ - dir = 8 - }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/whitepurplecorner/east, /area/bigredv2/outside/medical) "atq" = ( /obj/structure/machinery/cm_vending/sorted/medical/no_access, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/medical) "atr" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "white" - }, -/area/bigredv2/outside/medical) -"ats" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 5 - }, -/obj/structure/surface/table, -/obj/item/bodybag, -/obj/item/bodybag, -/obj/item/bodybag, -/turf/open/floor{ - icon_state = "dark" - }, -/area/bigredv2/outside/medical) -"att" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 10 - }, -/turf/open/floor{ - icon_state = "dark" - }, -/area/bigredv2/outside/medical) -"atu" = ( -/obj/structure/machinery/light, -/turf/open/floor{ - icon_state = "dark" - }, -/area/bigredv2/outside/medical) -"atv" = ( -/obj/structure/machinery/camera/autoname{ - dir = 1 - }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/white, /area/bigredv2/outside/medical) "atw" = ( /obj/structure/window/framed/solaris, @@ -6870,9 +4925,7 @@ /obj/structure/bed{ pixel_y = 13 }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/dorms) "atz" = ( /obj/structure/surface/table, @@ -6880,9 +4933,7 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/dorms) "atA" = ( /obj/structure/window/framed/solaris, @@ -6890,9 +4941,7 @@ /area/bigredv2/outside/cargo) "atB" = ( /obj/structure/closet/crate, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/dorms) "atC" = ( /obj/structure/surface/table, @@ -6939,9 +4988,7 @@ id = "safe_room"; name = "\improper Lambda Lab Director's Safe Room" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/caves/lambda/breakroom) "atJ" = ( /obj/structure/window/framed/solaris, @@ -6957,9 +5004,7 @@ dir = 1; name = "\improper Lambda Lab Administration Office" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/caves/lambda/breakroom) "atL" = ( /obj/structure/bed/chair{ @@ -6968,32 +5013,24 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor{ - icon_state = "darkish" - }, +/turf/open/floor/darkish, /area/bigredv2/caves/lambda/breakroom) "atM" = ( /obj/structure/window/reinforced, -/turf/open/floor{ - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2, /area/bigredv2/caves/lambda/breakroom) "atN" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 1 }, /obj/structure/window/reinforced, -/turf/open/floor{ - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2, /area/bigredv2/caves/lambda/breakroom) "atO" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor{ - icon_state = "darkish" - }, +/turf/open/floor/darkish, /area/bigredv2/caves/lambda/breakroom) "atP" = ( /obj/structure/window/framed/solaris, @@ -7010,17 +5047,11 @@ /area/bigredv2/outside/nw) "atR" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 1; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/north, /area/bigredv2/outside/medical) "atS" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 4; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/east, /area/bigredv2/outside/medical) "atT" = ( /obj/structure/surface/table, @@ -7030,10 +5061,7 @@ }, /obj/item/tool/hand_labeler, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor{ - dir = 4; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/east, /area/bigredv2/outside/medical) "atU" = ( /obj/structure/window_frame/solaris, @@ -7045,19 +5073,7 @@ dir = 1; name = "\improper Medical Clinic CMO's Office" }, -/turf/open/floor{ - icon_state = "delivery" - }, -/area/bigredv2/outside/medical) -"atW" = ( -/obj/structure/pipes/standard/simple/hidden/green, -/obj/structure/machinery/door/airlock/almayer/medical{ - dir = 1; - name = "\improper Medical Clinic Morgue" - }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/medical) "atX" = ( /obj/item/stack/sheet/metal, @@ -7065,22 +5081,16 @@ layer = 3; pixel_x = 24 }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/dorms) "atY" = ( -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/dorms) "atZ" = ( /obj/structure/machinery/door/airlock/almayer/generic{ name = "\improper Dormitories Bedroom" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/dorms) "aua" = ( /obj/effect/decal/cleanable/dirt, @@ -7110,38 +5120,28 @@ /area/bigredv2/outside/general_offices) "aue" = ( /obj/structure/machinery/light, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/general_offices) "auf" = ( /obj/structure/surface/rack, /obj/item/stack/sheet/mineral/gold, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/general_offices) "aug" = ( /obj/item/stack/sheet/plasteel, /obj/structure/machinery/camera/autoname{ dir = 1 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/general_offices) "auh" = ( /obj/structure/surface/rack, /obj/item/stack/sheet/mineral/diamond, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/general_offices) "aui" = ( /obj/structure/surface/table/woodentable, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/library) "auj" = ( /obj/item/device/radio/intercom{ @@ -7166,25 +5166,18 @@ /obj/structure/machinery/door/airlock/almayer/research/glass/colony{ name = "\improper Lambda Lab Director's Office" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/caves/lambda/breakroom) "aun" = ( /obj/structure/closet/firecloset/full, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/north, /area/bigred/ground/garage_workshop) "auo" = ( /obj/structure/sign/safety/maint{ pixel_y = 32 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/lambda/breakroom) "aup" = ( /obj/structure/machinery/light{ @@ -7192,63 +5185,35 @@ }, /obj/effect/landmark/crap_item, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/lambda/breakroom) "auq" = ( /obj/structure/sign/poster{ pixel_y = 32 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/lambda/breakroom) "aur" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/lambda/breakroom) "aus" = ( -/turf/open/floor{ - dir = 10; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/southwest, /area/bigredv2/outside/telecomm/n_cave) "aut" = ( -/turf/open/floor{ - dir = 4; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/east, /area/bigredv2/caves/lambda/breakroom) "auu" = ( /obj/structure/window/reinforced{ dir = 4 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/east, /area/bigredv2/caves/lambda/breakroom) "auv" = ( /obj/structure/showcase{ icon_state = "bus" }, -/turf/open/floor{ - icon_state = "darkish" - }, -/area/bigredv2/caves/lambda/breakroom) -"auw" = ( -/obj/structure/showcase{ - icon_state = "mechfab1" - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 1 - }, -/turf/open/floor{ - icon_state = "darkish" - }, +/turf/open/floor/darkish, /area/bigredv2/caves/lambda/breakroom) "aux" = ( /obj/effect/landmark/xeno_spawn, @@ -7256,15 +5221,10 @@ /obj/structure/window/reinforced{ dir = 8 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/west, /area/bigredv2/caves/lambda/breakroom) "auy" = ( -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/caves/lambda/breakroom) "auz" = ( /obj/structure/machinery/door_control{ @@ -7272,29 +5232,21 @@ name = "Observation Shutters"; pixel_y = 28 }, -/turf/open/floor{ - icon_state = "darkpurplecorners2" - }, +/turf/open/floor/darkpurplecorners2, /area/bigredv2/caves/lambda/breakroom) "auA" = ( /obj/structure/inflatable/door, -/turf/open/floor{ - icon_state = "darkpurplecorners2" - }, +/turf/open/floor/darkpurplecorners2, /area/bigredv2/caves/lambda/breakroom) "auB" = ( /obj/structure/barricade/wooden, -/turf/open/floor{ - icon_state = "darkpurplecorners2" - }, +/turf/open/floor/darkpurplecorners2, /area/bigredv2/caves/lambda/breakroom) "auC" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - icon_state = "darkpurplecorners2" - }, +/turf/open/floor/darkpurplecorners2, /area/bigredv2/caves/lambda/breakroom) "auD" = ( /obj/effect/decal/cleanable/mucus, @@ -7303,147 +5255,65 @@ name = "Observation Shutters"; pixel_y = 28 }, -/turf/open/floor{ - icon_state = "darkpurplecorners2" - }, +/turf/open/floor/darkpurplecorners2, /area/bigredv2/caves/lambda/breakroom) "auE" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/west, /area/bigredv2/outside/n) "auF" = ( -/turf/open/floor{ - dir = 5; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/northeast, /area/bigredv2/outside/nw) "auG" = ( /obj/effect/spawner/random/bomb_supply, -/turf/open/floor{ - dir = 1; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/north, /area/bigredv2/outside/medical) "auH" = ( /obj/structure/bed/chair, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 4; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/east, /area/bigredv2/outside/medical) "auI" = ( /obj/structure/surface/table, /obj/item/storage/box/bodybags, -/turf/open/floor{ - dir = 4; - icon_state = "whitepurplecorner" - }, -/area/bigredv2/outside/medical) -"auJ" = ( -/turf/open/floor{ - dir = 9; - icon_state = "whitegreen" - }, +/turf/open/floor/whitepurplecorner/east, /area/bigredv2/outside/medical) "auK" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/north, /area/bigredv2/outside/medical) "auL" = ( -/turf/open/floor{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/north, /area/bigredv2/outside/medical) "auM" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/north, /area/bigredv2/outside/medical) "auN" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - dir = 1; - icon_state = "whitegreen" - }, -/area/bigredv2/outside/medical) -"auO" = ( -/turf/open/floor{ - dir = 5; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/north, /area/bigredv2/outside/medical) "auP" = ( -/turf/open/floor{ - dir = 9; - icon_state = "whiteblue" - }, -/area/bigredv2/outside/medical) -"auQ" = ( -/obj/structure/machinery/medical_pod/sleeper, -/turf/open/floor{ - dir = 1; - icon_state = "whiteblue" - }, -/area/bigredv2/outside/medical) -"auR" = ( -/obj/structure/machinery/sleep_console, -/turf/open/floor{ - dir = 1; - icon_state = "whiteblue" - }, -/area/bigredv2/outside/medical) -"auS" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/turf/open/floor{ - dir = 1; - icon_state = "whiteblue" - }, -/area/bigredv2/outside/medical) -"auT" = ( -/obj/structure/machinery/sleep_console, -/turf/open/floor{ - dir = 5; - icon_state = "whiteblue" - }, +/turf/open/floor/whiteblue/northwest, /area/bigredv2/outside/medical) "auU" = ( /obj/structure/machinery/door/airlock/almayer/generic{ dir = 1; name = "\improper Dormitories Bedroom" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/dorms) "auV" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper Dormitories Tool Storage" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/general_offices) "auW" = ( /turf/closed/wall/solaris/reinforced/hull, /area/bigredv2/outside/c) -"auX" = ( -/obj/structure/window/framed/solaris/reinforced, -/turf/open/floor/plating, -/area/bigredv2/outside/c) "auY" = ( /turf/open/floor/carpet, /area/bigredv2/caves/lambda/breakroom) @@ -7452,40 +5322,30 @@ dir = 1; pixel_y = -30 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/lambda/breakroom) "ava" = ( /obj/structure/pipes/vents/scrubber/on{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/lambda/breakroom) "avb" = ( /obj/structure/pipes/standard/manifold/hidden/supply, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/lambda/breakroom) "avc" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/lambda/breakroom) "avd" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/lambda/breakroom) "ave" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -7495,17 +5355,13 @@ dir = 1; name = "\improper Lambda Lab Administration Wing" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/caves/lambda/breakroom) "avf" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor{ - icon_state = "darkish" - }, +/turf/open/floor/darkish, /area/bigredv2/caves/lambda/breakroom) "avg" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -7513,10 +5369,7 @@ }, /obj/effect/landmark/monkey_spawn, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor{ - dir = 4; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/east, /area/bigredv2/caves/lambda/breakroom) "avh" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -7525,19 +5378,14 @@ /obj/structure/window/reinforced{ dir = 4 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/east, /area/bigredv2/caves/lambda/breakroom) "avi" = ( /obj/structure/showcase, /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor{ - icon_state = "darkish" - }, +/turf/open/floor/darkish, /area/bigredv2/caves/lambda/breakroom) "avj" = ( /obj/structure/showcase{ @@ -7546,27 +5394,20 @@ /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 }, -/turf/open/floor{ - icon_state = "darkish" - }, +/turf/open/floor/darkish, /area/bigredv2/caves/lambda/breakroom) "avk" = ( /obj/structure/window/reinforced{ dir = 8 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/west, /area/bigredv2/caves/lambda/breakroom) "avl" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/medidoor/colony{ dir = 1; name = "\improper Lambda Lab Break Room" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/caves/lambda/breakroom) "avm" = ( /obj/structure/sign/safety/restrictedarea{ @@ -7574,31 +5415,19 @@ pixel_y = -32 }, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor{ - dir = 4; - icon_state = "darkpurplecorners2" - }, +/turf/open/floor/darkpurplecorners2/east, /area/bigredv2/caves/lambda/breakroom) "avn" = ( /obj/structure/inflatable/door, -/turf/open/floor{ - dir = 4; - icon_state = "darkpurplecorners2" - }, +/turf/open/floor/darkpurplecorners2/east, /area/bigredv2/caves/lambda/breakroom) "avo" = ( /obj/effect/decal/cleanable/vomit, -/turf/open/floor{ - dir = 4; - icon_state = "darkpurplecorners2" - }, +/turf/open/floor/darkpurplecorners2/east, /area/bigredv2/caves/lambda/breakroom) "avp" = ( /obj/structure/machinery/light, -/turf/open/floor{ - dir = 4; - icon_state = "darkpurplecorners2" - }, +/turf/open/floor/darkpurplecorners2/east, /area/bigredv2/caves/lambda/breakroom) "avr" = ( /obj/structure/window_frame/solaris, @@ -7606,63 +5435,41 @@ /area/bigredv2/outside/office_complex) "avt" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/nw/ceiling) "avu" = ( /obj/structure/machinery/door/airlock/almayer/medical/glass/colony{ dir = 1; name = "\improper Medical Clinic Chemistry" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/medical) "avv" = ( /obj/structure/surface/table/reinforced, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/medical) "avw" = ( -/turf/open/floor{ - dir = 8; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/west, /area/bigredv2/outside/medical) "avx" = ( /obj/effect/landmark/crap_item, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/medical) "avy" = ( -/turf/open/floor{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/east, /area/bigredv2/outside/medical) "avz" = ( -/turf/open/floor{ - dir = 10; - icon_state = "whiteblue" - }, +/turf/open/floor/whiteblue/southwest, /area/bigredv2/outside/medical) "avA" = ( -/turf/open/floor{ - icon_state = "whiteblue" - }, +/turf/open/floor/whiteblue, /area/bigredv2/outside/medical) "avB" = ( /obj/structure/machinery/camera/autoname{ dir = 8 }, -/turf/open/floor{ - dir = 6; - icon_state = "whiteblue" - }, +/turf/open/floor/whiteblue/southeast, /area/bigredv2/outside/medical) "avC" = ( /obj/effect/decal/cleanable/dirt, @@ -7677,13 +5484,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor, /area/bigredv2/outside/dorms) -"avE" = ( -/obj/structure/machinery/camera/autoname{ - dir = 4; - pixel_y = 21 - }, -/turf/open/floor, -/area/bigredv2/outside/dorms) "avF" = ( /obj/structure/machinery/power/apc{ dir = 1; @@ -7723,13 +5523,6 @@ }, /turf/open/floor, /area/bigredv2/outside/general_offices) -"avK" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/obj/structure/machinery/vending/cola, -/turf/open/floor, -/area/bigredv2/outside/general_offices) "avM" = ( /obj/structure/machinery/light{ dir = 8 @@ -7744,26 +5537,19 @@ /obj/structure/machinery/door/airlock/multi_tile/almayer/medidoor/colony{ name = "\improper Lambda Lab Relaxation Room" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/caves/lambda/breakroom) "avP" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor{ - icon_state = "darkish" - }, +/turf/open/floor/darkish, /area/bigredv2/caves/lambda/breakroom) "avQ" = ( /obj/structure/window/reinforced{ dir = 1 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/north, /area/bigredv2/caves/lambda/breakroom) "avR" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -7772,10 +5558,7 @@ /obj/structure/window/reinforced{ dir = 1 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/north, /area/bigredv2/caves/lambda/breakroom) "avS" = ( /obj/effect/decal/cleanable/dirt, @@ -7798,27 +5581,18 @@ /obj/structure/surface/table, /obj/item/trash/burger, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 9; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/northwest, /area/bigredv2/outside/medical) "avX" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/north, /area/bigredv2/outside/medical) "avY" = ( /obj/structure/pipes/standard/manifold/hidden/green, /obj/effect/decal/cleanable/blood, -/turf/open/floor{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/north, /area/bigredv2/outside/medical) "avZ" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -7827,36 +5601,25 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/north, /area/bigredv2/outside/medical) "awa" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/north, /area/bigredv2/outside/medical) "awb" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - dir = 1; - icon_state = "whitegreencorner" - }, +/turf/open/floor/whitegreencorner/north, /area/bigredv2/outside/medical) "awc" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/medical) "awd" = ( /turf/closed/wall/solaris/reinforced, @@ -7864,23 +5627,14 @@ "awe" = ( /obj/structure/surface/table, /obj/effect/spawner/random/toolbox, -/turf/open/floor{ - dir = 10; - icon_state = "purple" - }, +/turf/open/floor/purple/southwest, /area/bigredv2/caves/lambda/research) -"awf" = ( -/obj/structure/window/framed/solaris, -/turf/open/floor/plating, -/area/bigredv2/outside/office_complex) "awg" = ( /obj/effect/decal/cleanable/blood, /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/medical) "awh" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -7888,44 +5642,21 @@ }, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/medical) "awi" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor{ - icon_state = "white" - }, -/area/bigredv2/outside/medical) -"awj" = ( -/obj/structure/machinery/door/airlock/almayer/medical/glass/colony{ - name = "\improper Medical Clinic Scanner Room" - }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/white, /area/bigredv2/outside/medical) "awk" = ( /obj/structure/machinery/medical_pod/sleeper, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/medical) "awl" = ( /obj/structure/machinery/sleep_console, -/turf/open/floor{ - icon_state = "white" - }, -/area/bigredv2/outside/medical) -"awm" = ( -/obj/structure/machinery/sleep_console, -/turf/open/floor{ - dir = 4; - icon_state = "whiteblue" - }, +/turf/open/floor/white, /area/bigredv2/outside/medical) "awn" = ( /obj/effect/decal/cleanable/dirt, @@ -7940,17 +5671,13 @@ /turf/closed/wall/solaris, /area/bigredv2/outside/filtration_plant) "awq" = ( -/turf/open/floor{ - icon_state = "grimy" - }, +/turf/open/floor/grimy, /area/bigredv2/outside/dorms) "awr" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor{ - icon_state = "grimy" - }, +/turf/open/floor/grimy, /area/bigredv2/outside/dorms) "aws" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -7991,14 +5718,6 @@ /obj/effect/landmark/crap_item, /turf/open/floor, /area/bigredv2/outside/general_offices) -"awx" = ( -/obj/structure/machinery/vending/cigarette/colony, -/turf/open/floor, -/area/bigredv2/outside/general_offices) -"awy" = ( -/obj/effect/landmark/crap_item, -/turf/open/mars, -/area/bigredv2/outside/ne) "awz" = ( /obj/item/ashtray/bronze{ pixel_x = -7 @@ -8021,10 +5740,7 @@ dir = 8 }, /obj/item/tool/pickaxe/drill, -/turf/open/floor{ - dir = 10; - icon_state = "purple" - }, +/turf/open/floor/purple/southwest, /area/bigredv2/caves/lambda/research) "awB" = ( /obj/structure/transmitter/colony_net/rotary{ @@ -8045,97 +5761,68 @@ /area/bigredv2/caves/lambda/breakroom) "awE" = ( /obj/structure/machinery/vending/cigarette/colony, -/turf/open/floor{ - icon_state = "darkish" - }, +/turf/open/floor/darkish, /area/bigredv2/caves/lambda/breakroom) "awF" = ( /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor{ - icon_state = "darkish" - }, +/turf/open/floor/darkish, /area/bigredv2/caves/lambda/breakroom) "awG" = ( /obj/structure/machinery/vending/cola, -/turf/open/floor{ - icon_state = "darkish" - }, +/turf/open/floor/darkish, /area/bigredv2/caves/lambda/breakroom) "awH" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/north, /area/bigredv2/caves/lambda/breakroom) "awI" = ( /obj/structure/pipes/standard/manifold/fourway/hidden/supply, -/turf/open/floor{ - dir = 1; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/north, /area/bigredv2/caves/lambda/breakroom) "awJ" = ( /obj/structure/pipes/vents/scrubber/on{ dir = 8 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/lambda/breakroom) "awK" = ( /obj/structure/machinery/vending/sovietsoda{ icon_state = "sovietsoda-broken"; stat = 1 }, -/turf/open/floor{ - icon_state = "darkish" - }, +/turf/open/floor/darkish, /area/bigredv2/caves/lambda/breakroom) "awL" = ( /obj/structure/surface/table, /obj/item/storage/pill_bottle/tramadol, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 8; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/west, /area/bigredv2/outside/medical) "awM" = ( /turf/closed/wall/solaris/reinforced/hull, /area/bigredv2/outside/filtration_plant) "awN" = ( -/turf/open/floor{ - icon_state = "whitegreencorner" - }, +/turf/open/floor/whitegreencorner, /area/bigredv2/outside/medical) "awO" = ( -/turf/open/floor{ - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen, /area/bigredv2/outside/medical) "awP" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen, /area/bigredv2/outside/medical) "awQ" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/medical) "awR" = ( /obj/structure/machinery/iv_drip, -/turf/open/floor{ - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen, /area/bigredv2/outside/medical) "awS" = ( /obj/structure/machinery/door_control{ @@ -8143,41 +5830,26 @@ name = "Storm Shutters"; pixel_y = -32 }, -/turf/open/floor{ - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen, /area/bigredv2/outside/medical) "awT" = ( -/turf/open/floor{ - dir = 8; - icon_state = "whitegreencorner" - }, +/turf/open/floor/whitegreencorner/west, /area/bigredv2/outside/medical) "awU" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/medical) "awV" = ( /obj/effect/decal/cleanable/blood, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/medical) "awW" = ( -/turf/open/floor{ - dir = 1; - icon_state = "whiteblue" - }, +/turf/open/floor/whiteblue/north, /area/bigredv2/outside/medical) "awX" = ( -/turf/open/floor{ - dir = 5; - icon_state = "whiteblue" - }, +/turf/open/floor/whiteblue/northeast, /area/bigredv2/outside/medical) "awY" = ( /obj/structure/bed/chair{ @@ -8213,31 +5885,18 @@ "axe" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/good_item, -/turf/open/floor{ - icon_state = "grimy" - }, -/area/bigredv2/outside/dorms) -"axf" = ( -/obj/structure/pipes/vents/pump, -/obj/effect/decal/cleanable/blood/gibs/limb, -/turf/open/floor{ - icon_state = "grimy" - }, +/turf/open/floor/grimy, /area/bigredv2/outside/dorms) "axg" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "grimy" - }, +/turf/open/floor/grimy, /area/bigredv2/outside/dorms) "axh" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ dir = 1; name = "\improper Dormitories" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/dorms) "axi" = ( /obj/structure/machinery/light, @@ -8261,10 +5920,6 @@ /obj/structure/barricade/wooden, /turf/open/floor, /area/bigredv2/outside/general_offices) -"axm" = ( -/obj/structure/machinery/vending/snack, -/turf/open/floor, -/area/bigredv2/outside/general_offices) "axn" = ( /obj/structure/window/reinforced/toughened{ dir = 1; @@ -8275,10 +5930,7 @@ dir = 8 }, /obj/structure/surface/table/reinforced, -/turf/open/floor{ - dir = 9; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/northwest, /area/bigredv2/caves/lambda/virology) "axo" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, @@ -8303,9 +5955,7 @@ pixel_x = -30; start_charge = 0 }, -/turf/open/floor{ - icon_state = "darkish" - }, +/turf/open/floor/darkish, /area/bigredv2/caves/lambda/breakroom) "axr" = ( /obj/structure/window/framed/solaris, @@ -8320,97 +5970,52 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 1 }, -/turf/open/floor{ - icon_state = "darkish" - }, +/turf/open/floor/darkish, /area/bigredv2/caves/lambda/breakroom) "axt" = ( /obj/structure/machinery/light, -/turf/open/floor{ - icon_state = "darkish" - }, +/turf/open/floor/darkish, /area/bigredv2/caves/lambda/breakroom) "axu" = ( /obj/effect/landmark/crap_item, -/turf/open/mars{ - icon_state = "mars_dirt_8" - }, +/turf/open/mars/mars_dirt_8, /area/bigredv2/outside/nw) "axv" = ( -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/nw/ceiling) "axw" = ( /obj/structure/surface/table, /obj/item/storage/firstaid/adv, -/turf/open/floor{ - icon_state = "whitegreencorner" - }, +/turf/open/floor/whitegreencorner, /area/bigredv2/outside/medical) "axx" = ( /obj/structure/machinery/cm_vending/sorted/medical/no_access, -/turf/open/floor{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/east, /area/bigredv2/outside/medical) "axy" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/machinery/door/airlock/multi_tile/almayer/medidoor/colony{ name = "\improper Medical Clinic Treatment" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/medical) "axz" = ( /obj/structure/machinery/iv_drip, -/turf/open/floor{ - dir = 8; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/west, /area/bigredv2/outside/medical) "axA" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/crap_item, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/medical) "axB" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 4; - icon_state = "whitegreen" - }, -/area/bigredv2/outside/medical) -"axC" = ( -/obj/structure/machinery/medical_pod/sleeper, -/turf/open/floor{ - icon_state = "whiteblue" - }, -/area/bigredv2/outside/medical) -"axD" = ( -/obj/structure/machinery/sleep_console, -/turf/open/floor{ - icon_state = "whiteblue" - }, -/area/bigredv2/outside/medical) -"axE" = ( -/obj/structure/machinery/sleep_console, -/turf/open/floor{ - dir = 6; - icon_state = "whiteblue" - }, +/turf/open/floor/whitegreen/east, /area/bigredv2/outside/medical) "axF" = ( /obj/structure/barricade/wooden, /obj/structure/barricade/wooden, -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/east, /area/bigredv2/outside/n) "axG" = ( /obj/structure/machinery/camera/autoname{ @@ -8453,23 +6058,17 @@ /area/bigredv2/outside/cargo) "axM" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "grimy" - }, +/turf/open/floor/grimy, /area/bigredv2/outside/dorms) "axN" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "grimy" - }, +/turf/open/floor/grimy, /area/bigredv2/outside/dorms) "axO" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "grimy" - }, +/turf/open/floor/grimy, /area/bigredv2/outside/dorms) "axP" = ( /obj/structure/bed/chair{ @@ -8488,18 +6087,14 @@ dir = 1; name = "\improper Dormitories Bedroom" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/general_offices) "axS" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper Dormitories" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/general_offices) "axT" = ( /obj/effect/landmark/xeno_spawn, @@ -8509,21 +6104,14 @@ "axU" = ( /obj/item/tool/pickaxe/drill, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves_lambda) "axV" = ( /obj/effect/glowshroom, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves_lambda) "axW" = ( -/turf/open/floor{ - dir = 6; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/southeast, /area/bigredv2/outside/c) "axX" = ( /turf/closed/wall/solaris/reinforced, @@ -8532,9 +6120,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/nw/ceiling) "axZ" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -8565,18 +6151,14 @@ dir = 1; name = "\improper Medical Clinic" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/medical) "aye" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/structure/machinery/light, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/medical) "ayf" = ( /turf/closed/wall/solaris/reinforced, @@ -8585,55 +6167,38 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/medical) "ayh" = ( /obj/structure/machinery/cm_vending/sorted/medical/no_access, -/turf/open/floor{ - dir = 9; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/northwest, /area/bigredv2/outside/medical) "ayi" = ( /obj/structure/sign/safety/autodoc{ pixel_x = 32 }, -/turf/open/floor{ - dir = 5; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/northeast, /area/bigredv2/outside/medical) "ayj" = ( /obj/structure/pipes/unary/freezer{ icon_state = "freezer_1" }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/medical) "ayk" = ( /obj/structure/machinery/cryo_cell, /obj/structure/pipes/standard/cap, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/medical) "ayl" = ( /obj/structure/pipes/standard/tank/oxygen, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/medical) "aym" = ( /obj/structure/sign/safety/autodoc{ pixel_x = -32 }, -/turf/open/floor{ - dir = 8; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/west, /area/bigredv2/outside/medical) "ayn" = ( /obj/effect/decal/cleanable/dirt, @@ -8646,10 +6211,7 @@ name = "General Listening Channel"; pixel_x = 30 }, -/turf/open/floor{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/east, /area/bigredv2/outside/medical) "ayo" = ( /obj/effect/decal/cleanable/dirt, @@ -8676,9 +6238,7 @@ /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/floor{ - icon_state = "grimy" - }, +/turf/open/floor/grimy, /area/bigredv2/outside/dorms) "ayt" = ( /obj/effect/decal/cleanable/dirt, @@ -8686,18 +6246,14 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "grimy" - }, +/turf/open/floor/grimy, /area/bigredv2/outside/dorms) "ayu" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor{ - icon_state = "grimy" - }, +/turf/open/floor/grimy, /area/bigredv2/outside/dorms) "ayv" = ( /obj/item/device/radio/intercom{ @@ -8709,28 +6265,11 @@ /turf/open/floor, /area/bigredv2/outside/dorms) "ayw" = ( -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/general_offices) "ayx" = ( /obj/structure/surface/table, -/turf/open/floor{ - icon_state = "wood" - }, -/area/bigredv2/outside/general_offices) -"ayy" = ( -/obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, -/area/bigredv2/outside/general_offices) -"ayz" = ( -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/wood, /area/bigredv2/outside/general_offices) "ayA" = ( /obj/structure/machinery/vending/snack, @@ -8748,23 +6287,17 @@ /turf/open/floor/carpet, /area/bigredv2/caves/lambda/breakroom) "ayC" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_10" - }, +/turf/open/mars_cave/mars_cave_10, /area/bigredv2/caves/lambda/research) "ayD" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 1 }, -/turf/open/mars_cave{ - icon_state = "mars_cave_7" - }, +/turf/open/mars_cave/mars_cave_7, /area/bigredv2/caves/lambda/research) "ayE" = ( /obj/structure/girder/reinforced, -/turf/open/mars_cave{ - icon_state = "mars_cave_7" - }, +/turf/open/mars_cave/mars_cave_7, /area/bigredv2/caves/lambda/research) "ayF" = ( /obj/structure/window/framed/solaris, @@ -8772,109 +6305,72 @@ /area/bigredv2/outside/filtration_plant) "ayG" = ( /obj/structure/bed/roller, -/turf/open/floor{ - dir = 8; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/west, /area/bigredv2/outside/medical) "ayH" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor{ - dir = 8; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/west, /area/bigredv2/outside/medical) "ayI" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/crap_item, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/medical) "ayJ" = ( -/turf/open/floor{ - dir = 8; - icon_state = "warnwhite" - }, +/turf/open/floor/warnwhite/west, /area/bigredv2/outside/medical) "ayK" = ( /obj/structure/pipes/standard/simple/visible{ dir = 5 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/medical) "ayL" = ( /obj/structure/pipes/standard/manifold/visible, -/turf/open/floor{ - dir = 5; - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull/northeast, /area/bigredv2/outside/medical) "ayM" = ( /obj/structure/pipes/standard/simple/visible{ dir = 9 }, -/turf/open/floor{ - dir = 5; - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull/northeast, /area/bigredv2/outside/medical) "ayN" = ( -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/medical) "ayO" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/blood, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/medical) "ayP" = ( /obj/item/weapon/broken_bottle, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/medical) "ayQ" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 4; - icon_state = "whitegreencorner" - }, +/turf/open/floor/whitegreencorner/east, /area/bigredv2/outside/medical) "ayR" = ( /obj/structure/machinery/cm_vending/sorted/medical/no_access, -/turf/open/floor{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/north, /area/bigredv2/outside/medical) "ayS" = ( /obj/structure/surface/table, /obj/item/bodybag/cryobag, /obj/item/bodybag/cryobag, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/north, /area/bigredv2/outside/medical) "ayT" = ( /obj/structure/surface/table, /obj/item/bodybag/cryobag, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/north, /area/bigredv2/outside/medical) "ayU" = ( /obj/structure/surface/table, @@ -8885,23 +6381,11 @@ /obj/item/storage/box/gloves, /obj/item/reagent_container/spray/cleaner, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 5; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/northeast, /area/bigredv2/outside/medical) "ayV" = ( /turf/open/floor/plating, /area/bigredv2/outside/medical) -"ayW" = ( -/obj/structure/machinery/light{ - dir = 4 - }, -/obj/structure/machinery/power/apc{ - dir = 1 - }, -/turf/open/floor/plating, -/area/bigredv2/outside/medical) "ayX" = ( /obj/effect/landmark/good_item, /turf/open/floor, @@ -8916,9 +6400,7 @@ /area/bigredv2/outside/engineering) "aza" = ( /obj/effect/landmark/survivor_spawner, -/turf/open/floor{ - icon_state = "grimy" - }, +/turf/open/floor/grimy, /area/bigredv2/outside/dorms) "azb" = ( /obj/structure/window/framed/solaris/reinforced, @@ -8932,32 +6414,16 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/general_offices) "azd" = ( /obj/structure/bed, -/turf/open/floor{ - icon_state = "wood" - }, -/area/bigredv2/outside/general_offices) -"aze" = ( -/obj/structure/machinery/light{ - dir = 8 - }, -/obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/wood, /area/bigredv2/outside/general_offices) "azf" = ( /obj/effect/landmark/crap_item, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/mars_cave{ - icon_state = "mars_cave_18" - }, +/turf/open/mars_cave/mars_cave_18, /area/bigredv2/caves_lambda) "azg" = ( /obj/structure/surface/table, @@ -8966,41 +6432,27 @@ dir = 1 }, /obj/item/cell/hyper, -/turf/open/floor{ - dir = 9; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/northwest, /area/bigredv2/caves/lambda/research) "azh" = ( /obj/structure/surface/table, /obj/structure/machinery/computer/objective, /obj/item/clothing/glasses/science, -/turf/open/floor{ - dir = 1; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/north, /area/bigredv2/caves/lambda/research) "azi" = ( /obj/structure/machinery/r_n_d/protolathe, -/turf/open/floor{ - dir = 1; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/north, /area/bigredv2/caves/lambda/research) "azj" = ( /obj/structure/machinery/autolathe, /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/northeast, /area/bigredv2/caves/lambda/research) "azk" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_6" - }, +/turf/open/mars_cave/mars_cave_6, /area/bigredv2/caves/lambda/research) "azl" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -9025,39 +6477,27 @@ "azp" = ( /obj/structure/bed/roller, /obj/effect/decal/cleanable/blood, -/turf/open/floor{ - dir = 10; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/southwest, /area/bigredv2/outside/medical) "azq" = ( /obj/structure/machinery/camera/autoname{ dir = 1 }, -/turf/open/floor{ - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen, /area/bigredv2/outside/medical) "azr" = ( /obj/structure/bed/roller, -/turf/open/floor{ - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen, /area/bigredv2/outside/medical) "azs" = ( /obj/structure/bed/roller, -/turf/open/floor{ - dir = 6; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/southeast, /area/bigredv2/outside/medical) "azt" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/medical) "azu" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -9065,45 +6505,32 @@ }, /obj/effect/decal/cleanable/blood, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/medical) "azv" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/medical) "azw" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - dir = 8; - icon_state = "warnwhite" - }, +/turf/open/floor/warnwhite/west, /area/bigredv2/outside/medical) "azx" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - dir = 5; - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull/northeast, /area/bigredv2/outside/medical) "azy" = ( /obj/effect/decal/cleanable/blood, /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - dir = 5; - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull/northeast, /area/bigredv2/outside/medical) "azz" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -9113,18 +6540,14 @@ dir = 1; name = "\improper Medical Clinic Treatment" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/medical) "azA" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/medical) "azB" = ( /obj/structure/window/framed/solaris/reinforced, @@ -9141,9 +6564,7 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/medical) "azE" = ( /obj/item/shard, @@ -9155,9 +6576,7 @@ /obj/effect/decal/warning_stripes{ icon_state = "W-corner" }, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves_lambda) "azG" = ( /obj/structure/window/framed/solaris, @@ -9171,9 +6590,7 @@ /obj/structure/machinery/door/airlock/almayer/maint/colony{ name = "\improper Medical Clinic Power Station" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/medical) "azK" = ( /obj/effect/decal/cleanable/dirt, @@ -9181,15 +6598,11 @@ /area/bigredv2/outside/n) "azM" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/dorms) "azN" = ( /obj/item/stack/sheet/metal, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/dorms) "azO" = ( /turf/closed/wall/solaris/reinforced/hull, @@ -9208,9 +6621,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor, /area/bigredv2/outside/dorms) -"azR" = ( -/turf/closed/wall/solaris/reinforced/hull, -/area/bigredv2/caves) "azS" = ( /obj/structure/machinery/vending/snack{ icon_state = "snack-broken"; @@ -9250,21 +6660,6 @@ }, /turf/open/floor, /area/bigredv2/outside/dorms) -"azX" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 4 - }, -/obj/structure/machinery/door_control{ - id = "Dormitories"; - name = "Storm Shutters"; - pixel_y = -32 - }, -/obj/structure/machinery/camera/autoname{ - dir = 4; - pixel_y = -16 - }, -/turf/open/floor, -/area/bigredv2/outside/dorms) "azY" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 @@ -9292,29 +6687,6 @@ }, /turf/open/floor, /area/bigredv2/outside/dorms) -"aAc" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 4 - }, -/obj/structure/machinery/door/airlock/almayer/maint/colony{ - name = "\improper Bar Maintenance" - }, -/turf/open/floor{ - icon_state = "delivery" - }, -/area/bigredv2/outside/dorms) -"aAd" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 4 - }, -/turf/open/floor/plating, -/area/bigredv2/outside/dorms) -"aAe" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 10 - }, -/turf/open/floor/plating, -/area/bigredv2/outside/dorms) "aAf" = ( /obj/structure/machinery/light{ dir = 1 @@ -9324,50 +6696,27 @@ "aAg" = ( /turf/open/floor/plating, /area/bigredv2/outside/bar) -"aAh" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, -/area/bigredv2/outside/general_offices) "aAi" = ( -/turf/open/floor{ - dir = 8; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/west, /area/bigredv2/caves/lambda/research) "aAj" = ( /obj/item/tool/extinguisher/mini, -/turf/open/floor{ - icon_state = "whitepurplefull" - }, +/turf/open/floor/whitepurplefull, /area/bigredv2/caves/lambda/research) "aAk" = ( -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg2" - }, +/turf/open/floor/plating/platingdmg2/west, /area/bigredv2/caves/lambda/research) "aAl" = ( -/turf/open/floor{ - dir = 4; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/east, /area/bigredv2/caves/lambda/research) "aAm" = ( /obj/structure/closet/hydrant{ pixel_x = 32 }, -/turf/open/floor{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/northeast, /area/bigredv2/caves/lambda/research) "aAn" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_23" - }, +/turf/open/mars_cave/mars_cave_23, /area/bigredv2/caves/lambda/research) "aAo" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -9387,53 +6736,35 @@ dir = 2; name = "\improper Medical Clinic Operating Theatre" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/medical) "aAs" = ( -/turf/open/floor{ - dir = 10; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/southwest, /area/bigredv2/outside/medical) "aAt" = ( /obj/structure/machinery/medical_pod/bodyscanner, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/medical) "aAu" = ( /obj/structure/machinery/body_scanconsole, -/turf/open/floor{ - dir = 6; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/southeast, /area/bigredv2/outside/medical) "aAv" = ( /obj/structure/machinery/light, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/medical) "aAw" = ( /obj/item/clothing/gloves/latex, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/medical) "aAx" = ( /obj/effect/decal/cleanable/vomit, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/medical) "aAy" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/medical) "aAz" = ( /obj/effect/decal/cleanable/dirt, @@ -9444,10 +6775,7 @@ dir = 8; pixel_x = 32 }, -/turf/open/floor{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/east, /area/bigredv2/outside/medical) "aAA" = ( /obj/effect/decal/cleanable/dirt, @@ -9458,42 +6786,19 @@ /obj/effect/decal/cleanable/blood{ icon_state = "gib6" }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/dorms) "aAC" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, /turf/open/floor, /area/bigredv2/outside/dorms) -"aAD" = ( -/obj/structure/pipes/standard/simple/hidden/green, -/obj/structure/machinery/door/airlock/almayer/generic{ - dir = 1; - name = "\improper Dormitories Restroom" - }, -/turf/open/floor{ - icon_state = "delivery" - }, -/area/bigredv2/outside/dorms) "aAE" = ( /obj/structure/machinery/door/airlock/almayer/medical/glass/colony{ dir = 1; name = "\improper Recreation" }, -/turf/open/floor{ - icon_state = "delivery" - }, -/area/bigredv2/outside/dorms) -"aAF" = ( -/turf/open/floor/plating, -/area/bigredv2/outside/dorms) -"aAG" = ( -/obj/structure/pipes/standard/manifold/hidden/green{ - dir = 8 - }, -/turf/open/floor/plating, +/turf/open/floor/delivery, /area/bigredv2/outside/dorms) "aAH" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -9515,28 +6820,19 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/ne) "aAK" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/ne) "aAL" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/ne) "aAM" = ( /obj/structure/reagent_dispensers/fueltank, @@ -9555,56 +6851,39 @@ /obj/effect/decal/warning_stripes{ icon_state = "W-corner" }, -/turf/open/floor{ - dir = 8; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/west, /area/bigredv2/caves/lambda/research) "aAQ" = ( -/turf/open/floor{ - dir = 1; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/north, /area/bigredv2/caves/lambda/research) "aAR" = ( /obj/structure/barricade/metal{ dir = 4; icon_state = "barricade" }, -/turf/open/floor{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/northeast, /area/bigredv2/caves/lambda/research) "aAS" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 1 }, -/turf/open/mars_cave{ - icon_state = "mars_cave_4" - }, +/turf/open/mars_cave/mars_cave_4, /area/bigredv2/caves/lambda/research) "aAT" = ( /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor{ - icon_state = "podhatchfloor" - }, +/turf/open/floor/podhatchfloor, /area/bigredv2/caves/lambda/research) "aAU" = ( -/turf/open/floor{ - icon_state = "podhatchfloor" - }, +/turf/open/floor/podhatchfloor, /area/bigredv2/caves/lambda/research) "aAV" = ( /obj/structure/machinery/conveyor{ dir = 4; id = "anomalybelt" }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/lambda/research) "aAW" = ( /obj/structure/machinery/conveyor{ @@ -9612,23 +6891,17 @@ id = "anomalybelt" }, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/lambda/research) "aAX" = ( /obj/structure/machinery/light/small/built{ dir = 1 }, -/turf/open/floor{ - icon_state = "podhatchfloor" - }, +/turf/open/floor/podhatchfloor, /area/bigredv2/caves/lambda/research) "aAY" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor{ - icon_state = "podhatchfloor" - }, +/turf/open/floor/podhatchfloor, /area/bigredv2/caves/lambda/research) "aAZ" = ( /obj/structure/cargo_container/horizontal/blue/bottom, @@ -9640,23 +6913,17 @@ /area/bigredv2/outside/nw/ceiling) "aBb" = ( /obj/structure/bed/chair, -/turf/open/floor{ - icon_state = "darkish" - }, +/turf/open/floor/darkish, /area/bigredv2/outside/medical) "aBc" = ( -/turf/open/floor{ - icon_state = "darkish" - }, +/turf/open/floor/darkish, /area/bigredv2/outside/medical) "aBd" = ( /obj/structure/bed/chair, /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor{ - icon_state = "darkish" - }, +/turf/open/floor/darkish, /area/bigredv2/outside/medical) "aBe" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -9664,15 +6931,11 @@ dir = 1; name = "\improper Medical Clinic" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/medical) "aBf" = ( /obj/item/device/healthanalyzer, -/turf/open/floor{ - icon_state = "whitegreencorner" - }, +/turf/open/floor/whitegreencorner, /area/bigredv2/outside/medical) "aBg" = ( /obj/effect/decal/cleanable/dirt, @@ -9682,18 +6945,13 @@ pixel_y = -32 }, /obj/structure/machinery/iv_drip, -/turf/open/floor{ - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen, /area/bigredv2/outside/medical) "aBh" = ( /obj/structure/sign/safety/galley{ pixel_x = 32 }, -/turf/open/floor{ - dir = 6; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/southeast, /area/bigredv2/outside/medical) "aBi" = ( /obj/structure/machinery/light{ @@ -9710,14 +6968,10 @@ /obj/structure/mirror{ pixel_x = -28 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/bigredv2/outside/dorms) "aBk" = ( -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/bigredv2/outside/dorms) "aBl" = ( /obj/structure/urinal{ @@ -9726,9 +6980,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/bigredv2/outside/dorms) "aBm" = ( /obj/structure/urinal{ @@ -9737,9 +6989,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/bigredv2/outside/dorms) "aBn" = ( /obj/structure/machinery/light{ @@ -9748,51 +6998,35 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/bigredv2/outside/dorms) "aBo" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/bigredv2/outside/dorms) "aBp" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/bigredv2/outside/dorms) "aBq" = ( /obj/structure/machinery/shower{ dir = 8 }, /obj/structure/window/reinforced/tinted, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/bigredv2/outside/dorms) "aBr" = ( /obj/structure/surface/table/woodentable, /obj/item/toy/beach_ball, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - icon_state = "wood" - }, -/area/bigredv2/outside/dorms) -"aBt" = ( -/obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/plating, +/turf/open/floor/wood, /area/bigredv2/outside/dorms) "aBu" = ( -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/bigredv2/outside/ne) "aBv" = ( /turf/closed/wall/solaris/reinforced, @@ -9801,16 +7035,6 @@ /obj/structure/window/framed/solaris/reinforced, /turf/open/floor/plating, /area/bigredv2/caves/eta/research) -"aBx" = ( -/obj/structure/pipes/standard/simple/hidden/green, -/obj/structure/machinery/door/airlock/almayer/medical/glass/colony{ - dir = 1; - name = "\improper Greenhouse" - }, -/turf/open/floor{ - icon_state = "delivery" - }, -/area/bigredv2/outside/hydroponics) "aBy" = ( /obj/structure/window/framed/solaris/reinforced, /turf/open/floor/plating, @@ -9818,48 +7042,35 @@ "aBz" = ( /obj/effect/landmark/hunter_secondary, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/mars_cave{ - icon_state = "mars_cave_7" - }, +/turf/open/mars_cave/mars_cave_7, /area/bigredv2/caves_lambda) "aBA" = ( /turf/closed/wall/solaris, /area/bigredv2/caves/eta/research) "aBB" = ( /obj/item/device/multitool, -/turf/open/floor{ - icon_state = "whitepurplefull" - }, +/turf/open/floor/whitepurplefull, /area/bigredv2/caves/lambda/research) "aBC" = ( /obj/item/clothing/suit/storage/labcoat/science, -/turf/open/floor{ - icon_state = "whitepurplefull" - }, +/turf/open/floor/whitepurplefull, /area/bigredv2/caves/lambda/research) "aBD" = ( /obj/item/tool/weldingtool/experimental, -/turf/open/floor{ - icon_state = "whitepurplefull" - }, +/turf/open/floor/whitepurplefull, /area/bigredv2/caves/lambda/research) "aBE" = ( /turf/closed/wall/solaris, /area/bigredv2/caves/eta/storage) "aBF" = ( /obj/effect/decal/cleanable/vomit, -/turf/open/floor{ - dir = 8; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/west, /area/bigredv2/caves/lambda/research) "aBG" = ( /obj/effect/decal/warning_stripes{ icon_state = "U-S" }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/lambda/research) "aBH" = ( /obj/structure/machinery/conveyor{ @@ -9868,38 +7079,27 @@ /obj/structure/window/reinforced{ dir = 8 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/lambda/research) "aBI" = ( /obj/structure/bed/chair, /obj/structure/sign/nosmoking_2{ pixel_x = -28 }, -/turf/open/floor{ - icon_state = "darkish" - }, +/turf/open/floor/darkish, /area/bigredv2/outside/medical) "aBJ" = ( /obj/structure/machinery/cm_vending/sorted/medical/blood, -/turf/open/floor{ - dir = 5; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/northeast, /area/bigredv2/outside/medical) "aBK" = ( /obj/structure/closet/wardrobe/medic_white, -/turf/open/floor{ - icon_state = "whitegreencorner" - }, +/turf/open/floor/whitegreencorner, /area/bigredv2/outside/medical) "aBM" = ( /obj/structure/closet/secure_closet/medical1, /obj/item/storage/fancy/vials/random, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/medical) "aBN" = ( /obj/structure/surface/table, @@ -9912,23 +7112,17 @@ phone_id = "Clinic"; pixel_y = 24 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/medical) "aBO" = ( /obj/structure/surface/table, /obj/structure/machinery/recharger, -/turf/open/floor{ - icon_state = "whitegreencorner" - }, +/turf/open/floor/whitegreencorner, /area/bigredv2/outside/medical) "aBP" = ( /obj/structure/surface/table, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor{ - icon_state = "whitegreencorner" - }, +/turf/open/floor/whitegreencorner, /area/bigredv2/outside/medical) "aBQ" = ( /obj/structure/window/framed/solaris, @@ -9939,102 +7133,54 @@ /area/bigredv2/outside/c) "aBS" = ( /obj/effect/landmark/hunter_secondary, -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/east, /area/bigredv2/outside/c) "aBT" = ( /obj/structure/machinery/door/airlock/almayer/generic{ name = "\improper Dormitories Storage" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/dorms) "aBU" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/item/trash/candy, /turf/open/floor, /area/bigredv2/outside/dorms) -"aBV" = ( -/obj/structure/sink{ - dir = 8; - pixel_x = -12; - pixel_y = 2 - }, -/obj/structure/sink{ - dir = 8; - pixel_x = -12; - pixel_y = 2 - }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, -/area/bigredv2/outside/dorms) "aBW" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/bigredv2/outside/dorms) "aBX" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "freezerfloor" - }, -/area/bigredv2/outside/dorms) -"aBY" = ( -/obj/structure/machinery/shower{ - dir = 8 - }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/bigredv2/outside/dorms) "aBZ" = ( /obj/structure/bed/stool, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/dorms) "aCa" = ( /obj/structure/machinery/computer/arcade, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/dorms) "aCb" = ( /obj/structure/pipes/standard/simple/hidden/green, /turf/open/floor/plating, /area/bigredv2/outside/bar) "aCc" = ( -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/outside/ne) "aCd" = ( -/turf/open/mars{ - icon_state = "mars_dirt_3" - }, +/turf/open/mars/mars_dirt_3, /area/bigredv2/outside/ne) "aCe" = ( /turf/closed/wall/solaris/reinforced, /area/bigredv2/caves/eta/xenobiology) "aCf" = ( /obj/structure/machinery/portable_atmospherics/hydroponics, -/turf/open/floor{ - icon_state = "whitegreenfull" - }, -/area/bigredv2/outside/hydroponics) -"aCg" = ( -/obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "whitegreenfull" - }, +/turf/open/floor/whitegreenfull, /area/bigredv2/outside/hydroponics) "aCh" = ( /obj/structure/window/framed/solaris, @@ -10053,9 +7199,7 @@ /obj/item/paper/courtroom{ name = "A Crash Course in Legal SOP" }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/marshal_office) "aCl" = ( /obj/structure/surface/table, @@ -10088,26 +7232,18 @@ /area/bigredv2/caves/lambda/research) "aCr" = ( /obj/structure/reagent_dispensers/watertank, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/caves/lambda/research) "aCs" = ( /obj/effect/decal/warning_stripes{ icon_state = "W-corner" }, /obj/item/clipboard, -/turf/open/floor{ - dir = 8; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/west, /area/bigredv2/caves/lambda/research) "aCt" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/lambda/research) "aCu" = ( /obj/structure/barricade/metal{ @@ -10115,26 +7251,18 @@ icon_state = "barricade" }, /obj/structure/ore_box, -/turf/open/floor{ - dir = 4; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/east, /area/bigredv2/caves/lambda/research) "aCv" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/medidoor/colony{ dir = 1; name = "\improper Lambda Lab Technical Lab" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/caves/lambda/research) "aCw" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor{ - dir = 8; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/west, /area/bigredv2/caves/lambda/research) "aCx" = ( /obj/structure/machinery/light{ @@ -10143,24 +7271,17 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 1 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/east, /area/bigredv2/caves/lambda/research) "aCy" = ( -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/caves/lambda/xenobiology) "aCz" = ( /obj/structure/machinery/power/port_gen/pacman, /obj/effect/decal/warning_stripes{ icon_state = "U-N" }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/lambda/research) "aCA" = ( /obj/structure/machinery/conveyor{ @@ -10170,19 +7291,14 @@ dir = 8 }, /obj/structure/plasticflaps, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/lambda/research) "aCB" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/east, /area/bigredv2/outside/medical) "aCC" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -10191,17 +7307,13 @@ /obj/structure/machinery/door/airlock/almayer/medical/glass/colony{ name = "\improper Medical Clinic Storage" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/medical) "aCD" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "whitegreencorner" - }, +/turf/open/floor/whitegreencorner, /area/bigredv2/outside/medical) "aCE" = ( /obj/item/clothing/glasses/meson, @@ -10209,26 +7321,20 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "whitegreencorner" - }, +/turf/open/floor/whitegreencorner, /area/bigredv2/outside/medical) "aCF" = ( /obj/item/reagent_container/pill/happy, /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/medical) "aCG" = ( /obj/structure/machinery/door/airlock/almayer/medical/glass/colony{ name = "\improper Medical Clinic Storage" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/medical) "aCH" = ( /obj/structure/window/framed/solaris/reinforced, @@ -10236,22 +7342,16 @@ /area/bigredv2/caves/eta/xenobiology) "aCI" = ( /obj/structure/bed/chair, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/medical) "aCJ" = ( /obj/structure/bed/chair, -/turf/open/floor{ - icon_state = "whitegreenfull" - }, +/turf/open/floor/whitegreenfull, /area/bigredv2/outside/medical) "aCK" = ( /obj/structure/bed/chair, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/medical) "aCL" = ( /turf/closed/wall/solaris, @@ -10262,55 +7362,33 @@ /area/bigredv2/outside/c) "aCN" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/west, /area/bigredv2/outside/c) "aCO" = ( /obj/structure/surface/table, /obj/item/stack/cable_coil, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 10; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/southwest, /area/bigredv2/outside/filtration_plant) "aCP" = ( /obj/structure/closet/secure_closet/bar, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/bar) -"aCQ" = ( -/obj/structure/machinery/door/airlock/almayer/generic{ - name = "\improper Dormitories Restroom" - }, -/turf/open/floor{ - icon_state = "delivery" - }, -/area/bigredv2/outside/dorms) "aCR" = ( /obj/effect/decal/cleanable/blood{ icon_state = "gib6" }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/bigredv2/outside/dorms) "aCS" = ( /obj/structure/closet/boxinggloves, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/dorms) "aCT" = ( /obj/effect/landmark/crap_item, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/dorms) "aCU" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -10318,25 +7396,11 @@ dir = 1; name = "\improper Bar Maintenance" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/bar) -"aCV" = ( -/obj/effect/landmark/hunter_primary, -/turf/open/mars, -/area/bigredv2/outside/ne) "aCW" = ( -/turf/open/mars{ - icon_state = "mars_dirt_8" - }, +/turf/open/mars/mars_dirt_8, /area/bigredv2/outside/ne) -"aCX" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 6 - }, -/turf/open/floor, -/area/bigredv2/outside/hydroponics) "aCY" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/simple/hidden/green{ @@ -10361,62 +7425,17 @@ }, /turf/open/floor, /area/bigredv2/outside/hydroponics) -"aDc" = ( -/obj/structure/bookcase{ - density = 0 - }, -/turf/open/floor{ - icon_state = "wood" - }, -/area/bigredv2/outside/library) -"aDd" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/turf/open/floor{ - icon_state = "wood" - }, -/area/bigredv2/outside/library) "aDe" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor{ - icon_state = "wood" - }, -/area/bigredv2/outside/library) -"aDf" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 4 - }, -/obj/structure/machinery/door/airlock/almayer/generic{ - name = "\improper Library Backroom" - }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/wood, /area/bigredv2/outside/library) "aDg" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "wood" - }, -/area/bigredv2/outside/library) -"aDh" = ( -/obj/structure/machinery/light{ - dir = 4 - }, -/obj/structure/machinery/power/apc{ - dir = 1 - }, -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 10 - }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/library) "aDi" = ( /obj/structure/machinery/light/small, @@ -10429,48 +7448,32 @@ "aDk" = ( /obj/effect/landmark/monkey_spawn, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor{ - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner, /area/bigredv2/caves/lambda/research) "aDl" = ( /obj/structure/ore_box, -/turf/open/floor{ - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple, /area/bigredv2/caves/lambda/research) "aDm" = ( /obj/structure/barricade/metal{ dir = 4; icon_state = "barricade" }, -/turf/open/floor{ - dir = 6; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/southeast, /area/bigredv2/caves/lambda/research) "aDn" = ( /obj/structure/pipes/vents/scrubber/on{ dir = 4 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/west, /area/bigredv2/caves/lambda/research) "aDp" = ( /obj/structure/surface/table, /obj/effect/spawner/random/technology_scanner, -/turf/open/floor{ - dir = 9; - icon_state = "purple" - }, +/turf/open/floor/purple/northwest, /area/bigredv2/caves/lambda/research) "aDq" = ( -/turf/open/floor{ - dir = 1; - icon_state = "purple" - }, +/turf/open/floor/purple/north, /area/bigredv2/caves/lambda/research) "aDr" = ( /obj/structure/machinery/light{ @@ -10479,19 +7482,13 @@ /obj/structure/sign/safety/laser{ pixel_y = 32 }, -/turf/open/floor{ - dir = 1; - icon_state = "purple" - }, +/turf/open/floor/purple/north, /area/bigredv2/caves/lambda/research) "aDs" = ( /obj/structure/machinery/conveyor{ id = "anomalybelt" }, -/turf/open/floor{ - dir = 1; - icon_state = "purple" - }, +/turf/open/floor/purple/north, /area/bigredv2/caves/lambda/research) "aDt" = ( /obj/structure/machinery/conveyor_switch{ @@ -10500,16 +7497,10 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - dir = 1; - icon_state = "purple" - }, +/turf/open/floor/purple/north, /area/bigredv2/caves/lambda/research) "aDu" = ( -/turf/open/floor{ - dir = 5; - icon_state = "purple" - }, +/turf/open/floor/purple/northeast, /area/bigredv2/caves/lambda/research) "aDv" = ( /obj/structure/window/framed/solaris, @@ -10517,89 +7508,59 @@ /area/bigredv2/caves/eta/living) "aDw" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 10; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/southwest, /area/bigredv2/outside/nw) "aDx" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/nw) "aDy" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/e) "aDz" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/nw) "aDA" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/east, /area/bigredv2/outside/nw) "aDB" = ( -/turf/open/floor{ - dir = 5; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/northeast, /area/bigredv2/caves/lambda/virology) "aDC" = ( /obj/structure/surface/table, /obj/item/tool/surgery/bonesetter, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 5; - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull/northeast, /area/bigredv2/outside/medical) "aDD" = ( /obj/structure/surface/table, /obj/item/storage/box/masks, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 5; - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull/northeast, /area/bigredv2/outside/medical) "aDE" = ( /obj/structure/surface/table, /obj/item/tool/surgery/FixOVein, -/turf/open/floor{ - dir = 5; - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull/northeast, /area/bigredv2/outside/medical) "aDF" = ( /obj/structure/surface/table, /obj/item/tool/surgery/cautery, /obj/item/reagent_container/spray/cleaner, -/turf/open/floor{ - dir = 5; - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull/northeast, /area/bigredv2/outside/medical) "aDG" = ( /obj/structure/sign/safety/medical{ @@ -10607,64 +7568,43 @@ }, /obj/effect/decal/cleanable/dirt, /obj/item/clothing/head/surgery/blue, -/turf/open/floor{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/east, /area/bigredv2/outside/medical) "aDH" = ( /obj/structure/closet/secure_closet/medical1, /obj/structure/machinery/camera/autoname{ dir = 4 }, -/turf/open/floor{ - icon_state = "whitegreencorner" - }, +/turf/open/floor/whitegreencorner, /area/bigredv2/outside/medical) "aDI" = ( /obj/effect/decal/cleanable/dirt, /obj/item/tool/extinguisher, -/turf/open/floor{ - icon_state = "whitegreencorner" - }, +/turf/open/floor/whitegreencorner, /area/bigredv2/outside/medical) "aDJ" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "whitegreencorner" - }, +/turf/open/floor/whitegreencorner, /area/bigredv2/outside/medical) "aDK" = ( /obj/structure/curtain/medical, -/turf/open/floor{ - dir = 8; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/west, /area/bigredv2/outside/medical) "aDL" = ( /obj/structure/curtain/open/medical, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/medical) "aDM" = ( /obj/structure/curtain/medical, -/turf/open/floor{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/east, /area/bigredv2/outside/medical) "aDN" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "whitegreenfull" - }, +/turf/open/floor/whitegreenfull, /area/bigredv2/outside/medical) "aDO" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor{ - icon_state = "whitegreenfull" - }, +/turf/open/floor/whitegreenfull, /area/bigredv2/outside/medical) "aDP" = ( /obj/effect/decal/cleanable/blood{ @@ -10673,9 +7613,7 @@ }, /obj/item/trash/chips, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "whitegreenfull" - }, +/turf/open/floor/whitegreenfull, /area/bigredv2/outside/medical) "aDQ" = ( /obj/effect/decal/cleanable/dirt, @@ -10686,46 +7624,24 @@ }, /turf/open/floor, /area/bigredv2/outside/dorms) -"aDR" = ( -/obj/structure/sink{ - dir = 8; - pixel_x = -12; - pixel_y = 2 - }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, -/area/bigredv2/outside/dorms) -"aDT" = ( -/obj/structure/machinery/recharge_station, -/turf/open/floor{ - icon_state = "freezerfloor" - }, -/area/bigredv2/outside/dorms) "aDU" = ( /obj/structure/closet/athletic_mixed, /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/dorms) "aDV" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/bar) "aDW" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/bar) "aDX" = ( /turf/closed/wall/solaris, @@ -10740,53 +7656,30 @@ /obj/structure/machinery/door/airlock/almayer/generic{ name = "\improper Bar Backroom" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/bar) "aEa" = ( /obj/structure/machinery/camera/autoname, /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/bar) "aEb" = ( /obj/structure/machinery/power/apc{ dir = 1; name = "Bar APC" }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/bar) "aEc" = ( /obj/structure/reagent_dispensers/beerkeg, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/bar) "aEd" = ( /obj/structure/pipes/standard/simple/hidden/green, /turf/open/floor, /area/bigredv2/outside/hydroponics) -"aEe" = ( -/obj/structure/machinery/portable_atmospherics/hydroponics, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "whitegreenfull" - }, -/area/bigredv2/outside/hydroponics) -"aEf" = ( -/obj/structure/machinery/portable_atmospherics/hydroponics, -/obj/effect/decal/cleanable/dirt, -/obj/effect/landmark/crap_item, -/turf/open/floor{ - icon_state = "whitegreenfull" - }, -/area/bigredv2/outside/hydroponics) "aEg" = ( /obj/effect/decal/cleanable/dirt, /obj/item/trash/popcorn, @@ -10797,60 +7690,30 @@ /turf/open/floor, /area/bigredv2/outside/hydroponics) "aEi" = ( -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/library) "aEj" = ( /obj/structure/window/framed/solaris/reinforced, /turf/open/floor/plating, /area/bigredv2/caves/eta/living) -"aEk" = ( -/obj/structure/surface/table/woodentable, -/obj/structure/pipes/vents/pump{ - dir = 4 - }, -/obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - icon_state = "wood" - }, -/area/bigredv2/outside/library) -"aEl" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 9 - }, -/turf/open/floor{ - icon_state = "wood" - }, -/area/bigredv2/outside/library) "aEm" = ( /obj/structure/machinery/power/apc{ dir = 8; pixel_x = -30; start_charge = 0 }, -/turf/open/floor{ - dir = 8; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/west, /area/bigredv2/caves/lambda/research) "aEn" = ( /obj/effect/landmark/crap_item, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor{ - icon_state = "whitepurplefull" - }, +/turf/open/floor/whitepurplefull, /area/bigredv2/caves/lambda/research) "aEo" = ( -/turf/open/floor{ - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner, /area/bigredv2/caves/lambda/research) "aEp" = ( -/turf/open/floor{ - dir = 6; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/southeast, /area/bigredv2/caves/lambda/research) "aEq" = ( /obj/structure/extinguisher_cabinet{ @@ -10859,10 +7722,7 @@ /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/west, /area/bigredv2/caves/lambda/research) "aEs" = ( /obj/structure/bed/chair/comfy/lime{ @@ -10872,80 +7732,49 @@ /area/bigredv2/caves/lambda/breakroom) "aEt" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor{ - dir = 4; - icon_state = "purple" - }, +/turf/open/floor/purple/east, /area/bigredv2/caves/lambda/research) "aEu" = ( /turf/closed/wall/solaris/rock, /area/bigredv2/outside) "aEv" = ( /obj/effect/landmark/crap_item, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/bigredv2/outside/nw) "aEw" = ( /obj/structure/surface/table, /obj/item/tool/surgery/scalpel/manager, -/turf/open/floor{ - dir = 5; - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull/northeast, /area/bigredv2/outside/medical) "aEx" = ( /obj/item/alien_embryo, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/medical) "aEz" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/blood, /obj/effect/landmark/crap_item, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/medical) "aEA" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/camera/autoname{ dir = 8 }, -/turf/open/floor{ - dir = 4; - icon_state = "whitegreen" - }, -/area/bigredv2/outside/medical) -"aEB" = ( -/obj/structure/surface/table, -/obj/structure/pipes/vents/pump, -/obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/whitegreen/east, /area/bigredv2/outside/medical) "aEC" = ( /obj/effect/decal/cleanable/blood/gibs/body, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/medical) "aED" = ( /obj/structure/bed, /obj/item/clothing/glasses/regular/hipster, -/turf/open/floor{ - dir = 8; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/west, /area/bigredv2/outside/medical) "aEE" = ( /obj/structure/bed, -/turf/open/floor{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/east, /area/bigredv2/outside/medical) "aEF" = ( /turf/closed/wall/solaris/rock, @@ -10955,95 +7784,61 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "whitegreenfull" - }, +/turf/open/floor/whitegreenfull, /area/bigredv2/outside/medical) "aEH" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/landmark/corpsespawner/doctor, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/medical) "aEI" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "whitegreenfull" - }, +/turf/open/floor/whitegreenfull, /area/bigredv2/outside/medical) "aEJ" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor{ - icon_state = "whitegreenfull" - }, +/turf/open/floor/whitegreenfull, /area/bigredv2/outside/medical) "aEK" = ( /obj/structure/pipes/vents/pump, /turf/open/floor, /area/bigredv2/outside/dorms) -"aEL" = ( -/obj/structure/machinery/camera/autoname{ - dir = 1; - pixel_x = -14 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor, -/area/bigredv2/outside/dorms) "aEM" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/blood{ layer = 3 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/bigredv2/outside/dorms) "aEN" = ( /obj/structure/machinery/door/airlock/almayer/generic{ dir = 1; name = "\improper Dormitories Toilet" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/dorms) "aEO" = ( -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/bar) "aEP" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/landmark/crap_item, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/bar) "aEQ" = ( /obj/structure/bed/chair/wood/normal, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/bar) "aER" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/bar) -"aES" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 5 - }, -/turf/open/floor, -/area/bigredv2/outside/hydroponics) "aET" = ( /obj/effect/decal/cleanable/dirt, /obj/item/tool/shovel/spade, @@ -11059,9 +7854,6 @@ }, /turf/open/floor, /area/bigredv2/outside/hydroponics) -"aEV" = ( -/turf/closed/wall/solaris/rock, -/area/bigredv2/outside/virology) "aEW" = ( /obj/item/tool/hatchet, /obj/effect/decal/cleanable/dirt, @@ -11075,10 +7867,7 @@ /area/bigredv2/outside/se) "aEY" = ( /obj/structure/closet/firecloset/full, -/turf/open/floor{ - dir = 5; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/northeast, /area/bigred/ground/garage_workshop) "aEZ" = ( /obj/effect/decal/cleanable/dirt, @@ -11112,41 +7901,28 @@ /obj/structure/closet/secure_closet/scientist, /obj/structure/machinery/light, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor{ - dir = 10; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/southwest, /area/bigredv2/caves/lambda/research) "aFg" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/toolbox, -/turf/open/floor{ - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple, /area/bigredv2/caves/lambda/research) "aFh" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/technology_scanner, -/turf/open/floor{ - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple, /area/bigredv2/caves/lambda/research) "aFi" = ( /obj/structure/closet/secure_closet/scientist, /obj/structure/machinery/light/built, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor{ - dir = 6; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/southeast, /area/bigredv2/caves/lambda/research) "aFj" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/floor{ - dir = 8; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/west, /area/bigredv2/caves/lambda/research) "aFk" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -11158,10 +7934,7 @@ }, /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/floor{ - dir = 4; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/east, /area/bigredv2/caves/lambda/research) "aFl" = ( /obj/structure/surface/table, @@ -11172,94 +7945,59 @@ phone_id = "Observation"; pixel_x = -18 }, -/turf/open/floor{ - dir = 10; - icon_state = "purple" - }, +/turf/open/floor/purple/southwest, /area/bigredv2/caves/lambda/research) "aFm" = ( -/turf/open/floor{ - dir = 8; - icon_state = "purplecorner" - }, +/turf/open/floor/purplecorner/west, /area/bigredv2/caves/lambda/research) "aFn" = ( /obj/effect/landmark/xeno_spawn, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/lambda/research) "aFo" = ( -/turf/open/floor{ - icon_state = "purplecorner" - }, +/turf/open/floor/purplecorner, /area/bigredv2/caves/lambda/research) "aFp" = ( -/turf/open/floor{ - dir = 6; - icon_state = "purple" - }, +/turf/open/floor/purple/southeast, /area/bigredv2/caves/lambda/research) "aFq" = ( /obj/structure/machinery/smartfridge/secure/virology, -/turf/open/floor{ - dir = 9; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/northwest, /area/bigredv2/caves/lambda/virology) "aFr" = ( /obj/structure/machinery/smartfridge/secure/virology, -/turf/open/floor{ - dir = 5; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/northeast, /area/bigredv2/caves/lambda/virology) "aFs" = ( -/turf/open/mars_cave{ - icon_state = "mars_dirt_5" - }, +/turf/open/mars_cave/mars_dirt_5, /area/bigredv2/outside/virology) "aFt" = ( -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/outside/virology) "aFu" = ( -/turf/open/mars{ - icon_state = "mars_dirt_12" - }, +/turf/open/mars/mars_dirt_12, /area/bigredv2/outside/virology) "aFv" = ( /turf/open/mars, /area/bigredv2/outside/virology) "aFw" = ( -/turf/open/mars{ - icon_state = "mars_dirt_11" - }, +/turf/open/mars/mars_dirt_11, /area/bigredv2/outside/virology) "aFx" = ( -/turf/open/floor{ - dir = 5; - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull/northeast, /area/bigredv2/outside/medical) "aFy" = ( /obj/structure/machinery/optable, /obj/effect/decal/cleanable/dirt, /obj/item/organ/heart/prosthetic, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/medical) "aFz" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor{ - dir = 5; - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull/northeast, /area/bigredv2/outside/medical) "aFA" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -11268,71 +8006,51 @@ /obj/structure/machinery/door/airlock/almayer/medical/glass/colony{ name = "\improper Medical Clinic Operating Theatre" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/medical) "aFB" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - dir = 8; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/west, /area/bigredv2/outside/medical) "aFC" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/medical) "aFE" = ( /obj/item/reagent_container/pill/happy, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/medical) "aFF" = ( /obj/structure/sink{ dir = 4; pixel_x = 11 }, -/turf/open/floor{ - icon_state = "whitegreencorner" - }, +/turf/open/floor/whitegreencorner, /area/bigredv2/outside/medical) "aFG" = ( /obj/structure/bed, -/turf/open/floor{ - dir = 8; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/west, /area/bigredv2/outside/medical) "aFH" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "whitegreenfull" - }, +/turf/open/floor/whitegreenfull, /area/bigredv2/outside/medical) "aFI" = ( /obj/structure/surface/table/reinforced, /obj/item/trash/buritto, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - icon_state = "whitegreenfull" - }, +/turf/open/floor/whitegreenfull, /area/bigredv2/outside/medical) "aFJ" = ( /obj/structure/surface/table/reinforced, /obj/item/device/healthanalyzer, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/medical) "aFK" = ( /obj/structure/machinery/door/airlock/almayer/medical/glass/colony{ @@ -11341,19 +8059,14 @@ name = "Medbay Reception"; req_one_access_txt = "2;8;19" }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/medical) "aFL" = ( /obj/effect/landmark/crap_item, /turf/open/mars, /area/bigredv2/outside/c) "aFM" = ( -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/west, /area/bigredv2/outside/c) "aFN" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -11368,9 +8081,7 @@ /obj/structure/machinery/door/airlock/almayer/generic{ name = "\improper Dormitories Storage" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/dorms) "aFP" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -11379,34 +8090,11 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor, /area/bigredv2/outside/dorms) -"aFQ" = ( -/obj/structure/machinery/light{ - dir = 8 - }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, -/area/bigredv2/outside/dorms) -"aFR" = ( -/obj/item/tool/hatchet, -/turf/open/floor{ - icon_state = "freezerfloor" - }, -/area/bigredv2/outside/dorms) -"aFS" = ( -/obj/item/tool/surgery/hemostat, -/obj/effect/decal/cleanable/blood, -/turf/open/floor{ - icon_state = "freezerfloor" - }, -/area/bigredv2/outside/dorms) "aFT" = ( /obj/structure/surface/table/woodentable, /obj/item/device/radio, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/dorms) "aFU" = ( /obj/structure/machinery/door_control{ @@ -11417,58 +8105,37 @@ /obj/structure/machinery/camera/autoname{ dir = 1 }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/dorms) "aFV" = ( /obj/structure/machinery/light/small/built{ dir = 8 }, -/turf/open/floor{ - dir = 10; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/southwest, /area/bigredv2/caves/lambda/virology) "aFW" = ( /obj/structure/surface/table/woodentable, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/bar) "aFX" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/bar) "aFY" = ( /obj/structure/reagent_dispensers/beerkeg, /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/bar) -"aFZ" = ( -/obj/structure/machinery/portable_atmospherics/hydroponics, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "whitegreenfull" - }, -/area/bigredv2/outside/hydroponics) "aGa" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ dir = 1; name = "\improper Greenhouse Storage" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/hydroponics) "aGb" = ( /obj/effect/decal/cleanable/dirt, @@ -11484,35 +8151,18 @@ /obj/structure/machinery/door/airlock/almayer/medical/glass/colony{ name = "\improper Greenhouse Storage" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/library) "aGd" = ( /obj/structure/closet/l3closet/virology, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor{ - dir = 10; - icon_state = "warnwhite" - }, +/turf/open/floor/warnwhite/southwest, /area/bigredv2/caves/lambda/virology) "aGe" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "wood" - }, -/area/bigredv2/outside/library) -"aGf" = ( -/obj/structure/machinery/door_control{ - id = "Library"; - name = "Storm Shutters"; - pixel_x = 32 - }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/library) "aGg" = ( /obj/structure/machinery/light/built{ @@ -11521,10 +8171,7 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 1 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/east, /area/bigredv2/caves/lambda/research) "aGh" = ( /obj/structure/filingcabinet/filingcabinet, @@ -11532,18 +8179,12 @@ /area/bigredv2/caves/lambda/breakroom) "aGi" = ( /obj/item/clothing/glasses/welding, -/turf/open/floor{ - dir = 8; - icon_state = "purplecorner" - }, +/turf/open/floor/purplecorner/west, /area/bigredv2/caves/lambda/research) "aGj" = ( /obj/structure/closet/l3closet/virology, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor{ - dir = 6; - icon_state = "warnwhite" - }, +/turf/open/floor/warnwhite/southeast, /area/bigredv2/caves/lambda/virology) "aGk" = ( /obj/effect/decal/warning_stripes{ @@ -11555,29 +8196,20 @@ /obj/structure/reagent_dispensers/virusfood{ pixel_y = 32 }, -/turf/open/floor{ - dir = 9; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/northwest, /area/bigredv2/caves/lambda/virology) "aGl" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" }, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor{ - dir = 1; - icon_state = "whitegreencorner" - }, +/turf/open/floor/whitegreencorner/north, /area/bigredv2/caves/lambda/virology) "aGm" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor{ - dir = 4; - icon_state = "whitegreencorner" - }, +/turf/open/floor/whitegreencorner/east, /area/bigredv2/caves/lambda/virology) "aGn" = ( /obj/effect/decal/warning_stripes{ @@ -11586,87 +8218,58 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - dir = 5; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/northeast, /area/bigredv2/caves/lambda/virology) "aGo" = ( /obj/structure/fence, -/turf/open/mars_cave{ - icon_state = "mars_cave_7" - }, +/turf/open/mars_cave/mars_cave_7, /area/bigredv2/outside/virology) "aGp" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_14" - }, +/turf/open/mars_cave/mars_cave_14, /area/bigredv2/outside/virology) "aGq" = ( -/turf/open/mars_cave{ - icon_state = "mars_dirt_6" - }, +/turf/open/mars_cave/mars_dirt_6, /area/bigredv2/outside/virology) "aGr" = ( -/turf/open/mars{ - icon_state = "mars_dirt_10" - }, +/turf/open/mars/mars_dirt_10, /area/bigredv2/outside/virology) "aGs" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor{ - dir = 9; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/northwest, /area/bigredv2/outside/virology) "aGt" = ( /obj/item/reagent_container/spray/cleaner{ desc = "Someone has crossed out the Space from Space Cleaner and written in Surgery. 'Do not remove under punishment of death!!!' is scrawled on the back."; name = "Surgery Cleaner" }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/medical) "aGu" = ( /obj/item/clothing/mask/breath/medical, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/medical) "aGv" = ( /obj/effect/decal/cleanable/vomit, -/turf/open/floor{ - dir = 5; - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull/northeast, /area/bigredv2/outside/medical) "aGw" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 8; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/west, /area/bigredv2/outside/medical) "aGx" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/medical) "aGy" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/east, /area/bigredv2/outside/medical) "aGz" = ( /obj/structure/surface/table, @@ -11674,137 +8277,81 @@ dir = 8 }, /obj/item/storage/firstaid/adv, -/turf/open/floor{ - icon_state = "whitegreencorner" - }, +/turf/open/floor/whitegreencorner, /area/bigredv2/outside/medical) "aGA" = ( /obj/structure/surface/table, /obj/item/storage/firstaid/o2, -/turf/open/floor{ - icon_state = "whitegreencorner" - }, +/turf/open/floor/whitegreencorner, /area/bigredv2/outside/medical) "aGB" = ( /obj/structure/bed, /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/east, /area/bigredv2/outside/medical) "aGC" = ( /obj/structure/bed/chair{ dir = 4 }, /obj/item/trash/kepler, -/turf/open/floor{ - icon_state = "whitegreenfull" - }, +/turf/open/floor/whitegreenfull, /area/bigredv2/outside/medical) "aGD" = ( /obj/structure/surface/table, /obj/structure/machinery/computer/objective, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/admin_building) "aGE" = ( /obj/structure/bed/chair/office/light{ dir = 8 }, -/turf/open/floor{ - icon_state = "whitegreenfull" - }, +/turf/open/floor/whitegreenfull, /area/bigredv2/outside/medical) "aGF" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper Dormitories" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/dorms) "aGG" = ( /obj/structure/surface/table/woodentable, /obj/item/device/binoculars, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/admin_building) "aGH" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/bar) "aGI" = ( /obj/structure/bed/chair/wood/normal{ dir = 1 }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/bar) "aGJ" = ( /obj/structure/machinery/squeezer, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/bar) -"aGK" = ( -/obj/structure/machinery/light, -/turf/open/floor, -/area/bigredv2/outside/hydroponics) "aGL" = ( /obj/structure/machinery/biogenerator, /turf/open/floor, /area/bigredv2/outside/hydroponics) -"aGN" = ( -/obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 8; - icon_state = "carpet6-2" - }, -/area/bigredv2/outside/library) -"aGO" = ( -/turf/open/floor{ - dir = 8; - icon_state = "carpet10-8" - }, -/area/bigredv2/outside/library) "aGP" = ( /obj/structure/filingcabinet/medical, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/virology) -"aGQ" = ( -/obj/structure/machinery/light{ - dir = 4 - }, -/turf/open/floor{ - icon_state = "wood" - }, -/area/bigredv2/outside/library) "aGT" = ( /obj/structure/surface/table, -/turf/open/floor{ - dir = 5; - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull/northeast, /area/bigredv2/outside/general_store) "aGU" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 1 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkpurplecorners2" - }, +/turf/open/floor/darkpurplecorners2/east, /area/bigredv2/caves/lambda/research) "aGV" = ( /obj/structure/surface/table, @@ -11813,31 +8360,22 @@ dir = 4 }, /obj/item/weapon/gun/pistol/holdout, -/turf/open/floor{ - icon_state = "yellowfull" - }, +/turf/open/floor/yellowfull, /area/bigredv2/outside/general_store) "aGW" = ( -/turf/open/floor{ - icon_state = "purple" - }, +/turf/open/floor/purple, /area/bigredv2/caves/lambda/research) "aGX" = ( /obj/structure/surface/table, /obj/item/tool/weedkiller/D24, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/virology) "aGY" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor{ - dir = 6; - icon_state = "purple" - }, +/turf/open/floor/purple/southeast, /area/bigredv2/caves/lambda/research) "aGZ" = ( /obj/effect/decal/warning_stripes{ @@ -11848,81 +8386,51 @@ pixel_y = 28; start_charge = 0 }, -/turf/open/floor{ - dir = 9; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/northwest, /area/bigredv2/caves/lambda/virology) "aHa" = ( /obj/structure/surface/table, /obj/item/storage/pill_bottle/spaceacillin, /obj/structure/machinery/computer/objective, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/virology) "aHc" = ( /obj/structure/surface/table/reinforced, -/turf/open/floor{ - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen, /area/bigredv2/caves/lambda/virology) "aHd" = ( /obj/effect/decal/warning_stripes{ icon_state = "NE-in" }, -/turf/open/floor{ - dir = 4; - icon_state = "whitegreencorner" - }, +/turf/open/floor/whitegreencorner/east, /area/bigredv2/caves/lambda/virology) "aHe" = ( /obj/effect/decal/warning_stripes{ icon_state = "SW-out" }, -/turf/open/floor{ - dir = 5; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/northeast, /area/bigredv2/caves/lambda/virology) "aHf" = ( /obj/structure/fence, -/turf/open/mars_cave{ - icon_state = "mars_cave_13" - }, +/turf/open/mars_cave/mars_cave_13, /area/bigredv2/outside/virology) "aHg" = ( -/turf/open/floor{ - dir = 9; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/northwest, /area/bigredv2/outside/virology) "aHh" = ( -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/north, /area/bigredv2/outside/virology) "aHj" = ( -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/virology) "aHl" = ( /obj/effect/decal/cleanable/blood/gibs/body, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/nw) "aHm" = ( /obj/effect/decal/cleanable/blood, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/east, /area/bigredv2/outside/nw) "aHn" = ( /obj/effect/decal/cleanable/blood, @@ -11930,185 +8438,112 @@ /area/bigredv2/outside/nw) "aHo" = ( /obj/structure/closet/secure_closet/medical2, -/turf/open/floor{ - dir = 5; - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull/northeast, /area/bigredv2/outside/medical) "aHp" = ( /obj/structure/machinery/light, -/turf/open/floor{ - dir = 5; - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull/northeast, /area/bigredv2/outside/medical) "aHq" = ( /obj/structure/machinery/bioprinter{ stored_metal = 1000 }, -/turf/open/floor{ - dir = 5; - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull/northeast, /area/bigredv2/outside/medical) "aHr" = ( /obj/structure/machinery/medical_pod/bodyscanner, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 10; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/southwest, /area/bigredv2/outside/medical) "aHs" = ( /obj/structure/machinery/body_scanconsole, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen, /area/bigredv2/outside/medical) "aHt" = ( /obj/structure/machinery/light, -/turf/open/floor{ - dir = 6; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/southeast, /area/bigredv2/outside/medical) "aHu" = ( /obj/structure/surface/table, /obj/item/storage/firstaid/fire, /obj/item/storage/firstaid/fire, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "whitegreencorner" - }, +/turf/open/floor/whitegreencorner, /area/bigredv2/outside/medical) "aHv" = ( /obj/structure/surface/table, /obj/item/storage/firstaid/toxin, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/medical) "aHw" = ( /obj/structure/surface/table, /obj/item/storage/firstaid/regular, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/medical) "aHy" = ( /obj/structure/surface/table, /obj/item/storage/firstaid/rad, -/turf/open/floor{ - icon_state = "whitegreencorner" - }, +/turf/open/floor/whitegreencorner, /area/bigredv2/outside/medical) "aHz" = ( /obj/structure/bed, -/turf/open/floor{ - dir = 10; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/southwest, /area/bigredv2/outside/medical) "aHA" = ( /obj/structure/bed, /obj/effect/landmark/monkey_spawn, -/turf/open/floor{ - dir = 6; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/southeast, /area/bigredv2/outside/medical) "aHB" = ( /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/medical) "aHC" = ( -/turf/open/floor{ - dir = 10; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/southwest, /area/bigredv2/outside/c) "aHD" = ( -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/bigredv2/outside/c) "aHF" = ( -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/c) "aHG" = ( -/turf/open/floor{ - dir = 8; - icon_state = "carpet15-15" - }, +/turf/open/floor/carpet15_15/west, /area/bigredv2/outside/bar) "aHH" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - dir = 8; - icon_state = "carpet15-15" - }, +/turf/open/floor/carpet15_15/west, /area/bigredv2/outside/bar) "aHI" = ( -/turf/open/floor{ - dir = 8; - icon_state = "carpet11-12" - }, +/turf/open/floor/carpet11_12/west, /area/bigredv2/outside/bar) "aHJ" = ( /obj/structure/machinery/reagentgrinder, /obj/structure/surface/table/woodentable, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/bar) "aHK" = ( /obj/structure/surface/table, /obj/item/toy/sword, -/turf/open/floor{ - dir = 5; - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull/northeast, /area/bigredv2/outside/general_store) "aHL" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper Kitchen Storage" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/hydroponics) -"aHM" = ( -/obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 8; - icon_state = "carpet7-3" - }, -/area/bigredv2/outside/library) -"aHN" = ( -/obj/effect/landmark/crap_item, -/turf/open/floor{ - dir = 8; - icon_state = "carpet11-12" - }, -/area/bigredv2/outside/library) "aHO" = ( /obj/structure/bed/chair/wood/normal, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/library) "aHP" = ( /obj/structure/prop/almayer/computers/mapping_computer{ @@ -12118,18 +8553,13 @@ /turf/open/floor/greengrid, /area/bigredv2/caves/lambda/research) "aHQ" = ( -/turf/open/floor{ - dir = 4; - icon_state = "darkpurplecorners2" - }, +/turf/open/floor/darkpurplecorners2/east, /area/bigredv2/caves/lambda/research) "aHR" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/medidoor/colony{ name = "\improper Lambda Lab Anomaly Lab" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/caves/lambda/research) "aHS" = ( /obj/effect/decal/warning_stripes{ @@ -12142,19 +8572,13 @@ master_tag = "viro_controller"; pixel_y = 28 }, -/turf/open/floor{ - dir = 9; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/northwest, /area/bigredv2/caves/lambda/virology) "aHT" = ( /obj/effect/decal/warning_stripes{ icon_state = "NW-in" }, -/turf/open/floor{ - dir = 1; - icon_state = "whitegreencorner" - }, +/turf/open/floor/whitegreencorner/north, /area/bigredv2/caves/lambda/virology) "aHU" = ( /obj/structure/window/reinforced/toughened{ @@ -12165,25 +8589,16 @@ icon_state = "fwindow"; pixel_y = 12 }, -/turf/open/floor{ - dir = 9; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/northwest, /area/bigredv2/caves/lambda/virology) "aHV" = ( -/turf/open/floor{ - dir = 1; - icon_state = "darkgreencorners2" - }, +/turf/open/floor/darkgreencorners2/north, /area/bigredv2/caves/lambda/virology) "aHW" = ( /obj/structure/bed/chair/office/light{ dir = 1 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkgreencorners2" - }, +/turf/open/floor/darkgreencorners2/east, /area/bigredv2/caves/lambda/virology) "aHX" = ( /obj/structure/window/reinforced/toughened{ @@ -12195,10 +8610,7 @@ pixel_y = 12 }, /obj/structure/machinery/disease2/diseaseanalyser, -/turf/open/floor{ - dir = 5; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/northeast, /area/bigredv2/caves/lambda/virology) "aHY" = ( /obj/effect/decal/warning_stripes{ @@ -12207,41 +8619,33 @@ /obj/structure/machinery/light/built{ dir = 4 }, -/turf/open/floor{ - dir = 5; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/northeast, /area/bigredv2/caves/lambda/virology) "aHZ" = ( -/turf/open/mars{ - icon_state = "mars_dirt_3" - }, +/turf/open/mars/mars_dirt_3, /area/bigredv2/outside/virology) "aIa" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/west, /area/bigredv2/outside/virology) "aIb" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/virology) "aIc" = ( /obj/structure/closet/wardrobe/virology_white, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/virology) +"aIe" = ( +/obj/structure/surface/table/reinforced, +/obj/item/pizzabox/vegetable, +/turf/open/floor/redfull/northwest, +/area/bigredv2/outside/lambda_cave_cas) "aIg" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 @@ -12251,48 +8655,33 @@ id = "viro"; name = "Virology Lockdown" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/virology) "aIi" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/east, /area/bigredv2/outside/nw) "aIj" = ( /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor{ - icon_state = "whitegreenfull" - }, +/turf/open/floor/whitegreenfull, /area/bigredv2/outside/medical) "aIk" = ( /obj/structure/machinery/light, -/turf/open/floor{ - icon_state = "whitegreenfull" - }, +/turf/open/floor/whitegreenfull, /area/bigredv2/outside/medical) "aIl" = ( /obj/item/reagent_container/glass/rag, -/turf/open/floor{ - icon_state = "whitegreenfull" - }, +/turf/open/floor/whitegreenfull, /area/bigredv2/outside/medical) "aIm" = ( -/turf/open/mars{ - icon_state = "mars_dirt_8" - }, +/turf/open/mars/mars_dirt_8, /area/bigredv2/outside/c) "aIn" = ( -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/outside/c) "aIo" = ( /obj/structure/machinery/light{ @@ -12303,82 +8692,57 @@ /turf/open/floor, /area/bigredv2/outside/office_complex) "aIp" = ( -/turf/open/mars{ - icon_state = "mars_dirt_9" - }, +/turf/open/mars/mars_dirt_9, /area/bigredv2/outside/c) "aIq" = ( /obj/structure/machinery/alarm{ dir = 4; pixel_x = -30 }, -/turf/open/floor{ - dir = 8; - icon_state = "carpet15-15" - }, +/turf/open/floor/carpet15_15/west, /area/bigredv2/outside/bar) "aIr" = ( /obj/structure/bed/chair/wood/normal{ dir = 8 }, -/turf/open/floor{ - dir = 8; - icon_state = "carpet15-15" - }, +/turf/open/floor/carpet15_15/west, /area/bigredv2/outside/bar) "aIs" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor{ - dir = 8; - icon_state = "carpet15-15" - }, +/turf/open/floor/carpet15_15/west, /area/bigredv2/outside/bar) "aIt" = ( /obj/effect/decal/cleanable/blood/gibs/body, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/bar) "aIu" = ( /obj/structure/reagent_dispensers/fueltank, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/bar) "aIv" = ( /obj/structure/bed, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/bar) "aIw" = ( /obj/structure/surface/table, /obj/structure/machinery/microwave, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/bigredv2/outside/hydroponics) "aIx" = ( /obj/structure/machinery/vending/dinnerware, /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/bigredv2/outside/hydroponics) "aIy" = ( /obj/structure/machinery/vending/sovietsoda, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/bigredv2/outside/hydroponics) "aIz" = ( /obj/structure/closet/secure_closet/freezer/fridge, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/bigredv2/outside/hydroponics) "aIA" = ( /obj/structure/sign/safety/biolab{ @@ -12389,82 +8753,43 @@ dir = 4; pixel_x = -30 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/bigredv2/outside/hydroponics) "aIB" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/bigredv2/outside/hydroponics) "aIC" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/bigredv2/outside/hydroponics) "aID" = ( -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/bigredv2/outside/hydroponics) "aIE" = ( -/turf/open/floor{ - icon_state = "yellowfull" - }, +/turf/open/floor/yellowfull, /area/bigredv2/outside/hydroponics) "aIF" = ( /obj/structure/machinery/vending/snack, /turf/open/floor, /area/bigredv2/outside/hydroponics) -"aIG" = ( -/turf/open/floor{ - dir = 8; - icon_state = "carpet11-12" - }, -/area/bigredv2/outside/library) -"aIH" = ( -/obj/structure/surface/table/woodentable, -/obj/item/paper, -/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - icon_state = "wood" - }, -/area/bigredv2/outside/library) "aIJ" = ( -/turf/open/floor{ - dir = 9; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/northwest, /area/bigredv2/caves/lambda/research) "aIK" = ( -/turf/open/floor{ - dir = 1; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/north, /area/bigredv2/caves/lambda/research) "aIL" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor{ - dir = 1; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/north, /area/bigredv2/caves/lambda/research) "aIM" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/floor{ - dir = 1; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/north, /area/bigredv2/caves/lambda/research) "aIN" = ( -/turf/open/floor{ - dir = 1; - icon_state = "darkpurplecorners2" - }, +/turf/open/floor/darkpurplecorners2/north, /area/bigredv2/caves/lambda/research) "aIO" = ( /obj/effect/landmark/crap_item, @@ -12472,39 +8797,27 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 1 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/lambda/research) "aIP" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/north, /area/bigredv2/caves/lambda/research) "aIQ" = ( -/turf/open/floor/bluegrid{ - icon_state = "damaged5" - }, +/turf/open/floor/bluegrid/damaged5, /area/bigredv2/caves/lambda/research) "aIR" = ( /obj/effect/landmark/monkey_spawn, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/floor/bluegrid{ - icon_state = "damaged4" - }, +/turf/open/floor/bluegrid/damaged4, /area/bigredv2/caves/lambda/research) "aIS" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor{ - dir = 1; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/north, /area/bigredv2/caves/lambda/research) "aIT" = ( /obj/structure/surface/table, @@ -12518,10 +8831,7 @@ /obj/structure/pipes/vents/scrubber/on, /obj/effect/landmark/crap_item, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor{ - dir = 1; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/north, /area/bigredv2/caves/lambda/research) "aIV" = ( /obj/effect/decal/warning_stripes{ @@ -12531,16 +8841,10 @@ pixel_x = 32; pixel_y = 32 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/north, /area/bigredv2/caves/lambda/research) "aIW" = ( -/turf/open/floor{ - dir = 9; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/northwest, /area/bigredv2/caves/lambda/virology) "aIX" = ( /obj/structure/sign/safety/biohazard{ @@ -12550,10 +8854,7 @@ /obj/structure/machinery/light/small/built{ dir = 1 }, -/turf/open/floor{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/north, /area/bigredv2/caves/lambda/virology) "aIY" = ( /obj/structure/surface/table, @@ -12564,10 +8865,7 @@ /obj/effect/decal/warning_stripes{ icon_state = "E" }, -/turf/open/floor{ - dir = 8; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/west, /area/bigredv2/caves/lambda/virology) "aJa" = ( /obj/structure/window/reinforced/toughened{ @@ -12580,10 +8878,7 @@ }, /obj/effect/landmark/crap_item, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor{ - dir = 9; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/northwest, /area/bigredv2/caves/lambda/virology) "aJb" = ( /obj/structure/surface/table, @@ -12591,25 +8886,17 @@ /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor{ - dir = 8; - icon_state = "carpet15-15" - }, +/turf/open/floor/carpet15_15/west, /area/bigredv2/outside/admin_building) "aJc" = ( /obj/effect/landmark/monkey_spawn, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor{ - icon_state = "darkish" - }, +/turf/open/floor/darkish, /area/bigredv2/caves/lambda/virology) "aJd" = ( /obj/effect/landmark/monkey_spawn, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor{ - dir = 4; - icon_state = "darkgreencorners2" - }, +/turf/open/floor/darkgreencorners2/east, /area/bigredv2/caves/lambda/virology) "aJe" = ( /obj/structure/window/reinforced/toughened{ @@ -12620,82 +8907,52 @@ /obj/structure/machinery/door/window{ layer = 4 }, -/turf/open/floor{ - dir = 5; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/northeast, /area/bigredv2/caves/lambda/virology) "aJf" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" }, /obj/effect/decal/cleanable/mucus, -/turf/open/floor{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/east, /area/bigredv2/caves/lambda/virology) "aJg" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/west, /area/bigredv2/outside/virology) "aJh" = ( -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/east, /area/bigredv2/outside/virology) "aJi" = ( /obj/item/trash/popcorn, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/bigredv2/outside/virology) "aJj" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor{ - dir = 10; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/southwest, /area/bigredv2/outside/virology) "aJl" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/machinery/door/airlock/multi_tile/almayer/medidoor/colony{ name = "\improper Medical Clinic" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/medical) "aJm" = ( /obj/effect/decal/cleanable/blood/gibs/limb, -/turf/open/mars{ - icon_state = "mars_dirt_12" - }, +/turf/open/mars/mars_dirt_12, /area/bigredv2/outside/c) "aJn" = ( -/turf/open/floor{ - dir = 8; - icon_state = "carpet13-5" - }, +/turf/open/floor/carpet13_5/west, /area/bigredv2/outside/bar) "aJo" = ( /obj/effect/landmark/crap_item, -/turf/open/floor{ - dir = 8; - icon_state = "carpet13-5" - }, +/turf/open/floor/carpet13_5/west, /area/bigredv2/outside/bar) "aJp" = ( -/turf/open/floor{ - dir = 8; - icon_state = "carpet9-4" - }, +/turf/open/floor/carpet9_4/west, /area/bigredv2/outside/bar) "aJq" = ( /obj/structure/bed/chair/wood/normal{ @@ -12707,47 +8964,35 @@ name = "General Listening Channel"; pixel_x = 30 }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/bar) "aJr" = ( /obj/structure/machinery/door/airlock/almayer/generic{ dir = 1; name = "\improper Bar Backroom" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/bar) "aJs" = ( /obj/effect/decal/cleanable/flour, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/bigredv2/outside/hydroponics) "aJt" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/bigredv2/outside/hydroponics) "aJv" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/bigredv2/outside/hydroponics) "aJw" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/bigredv2/outside/hydroponics) "aJx" = ( /obj/effect/decal/cleanable/dirt, @@ -12755,15 +9000,11 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/bigredv2/outside/hydroponics) "aJy" = ( /obj/structure/surface/table/woodentable, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/chapel) "aJz" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -12772,9 +9013,7 @@ /obj/structure/machinery/door/airlock/almayer/generic{ name = "\improper Kitchen Storage" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/hydroponics) "aJA" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -12782,72 +9021,47 @@ }, /turf/open/floor, /area/bigredv2/outside/hydroponics) -"aJB" = ( -/obj/structure/machinery/vending/cola, -/obj/structure/machinery/light{ - dir = 4 - }, -/turf/open/floor{ - icon_state = "yellowfull" - }, -/area/bigredv2/outside/hydroponics) "aJC" = ( /obj/structure/machinery/alarm{ dir = 4; pixel_x = -30 }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/library) "aJD" = ( /obj/structure/surface/table/woodentable, /obj/item/toy/dice/d20, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/library) "aJE" = ( -/turf/open/floor{ - icon_state = "darkpurplecorners2" - }, +/turf/open/floor/darkpurplecorners2, /area/bigredv2/caves/lambda/research) "aJF" = ( /obj/effect/landmark/xeno_spawn, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor{ - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2, /area/bigredv2/caves/lambda/research) "aJG" = ( -/turf/open/floor{ - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2, /area/bigredv2/caves/lambda/research) "aJH" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/floor{ - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2, /area/bigredv2/caves/lambda/research) "aJI" = ( /obj/structure/surface/table, /obj/effect/spawner/random/tech_supply, /obj/effect/spawner/random/tech_supply, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/office_complex) "aJJ" = ( /obj/structure/machinery/light/built, /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor{ - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2, /area/bigredv2/caves/lambda/research) "aJL" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -12855,26 +9069,20 @@ }, /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/floor{ - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2, /area/bigredv2/caves/lambda/research) "aJM" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/bluegrid{ - icon_state = "damaged3" - }, +/turf/open/floor/bluegrid/damaged3, /area/bigredv2/caves/lambda/research) "aJN" = ( /obj/structure/extinguisher_cabinet{ pixel_y = -30 }, /obj/structure/pipes/standard/manifold/hidden/supply, -/turf/open/floor{ - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2, /area/bigredv2/caves/lambda/research) "aJO" = ( /obj/structure/machinery/light, @@ -12884,15 +9092,11 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor{ - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2, /area/bigredv2/caves/lambda/research) "aJQ" = ( /obj/structure/pipes/standard/manifold/hidden/supply, -/turf/open/floor{ - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2, /area/bigredv2/caves/lambda/research) "aJR" = ( /obj/structure/machinery/access_button/airlock_exterior{ @@ -12902,9 +9106,7 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor{ - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2, /area/bigredv2/caves/lambda/research) "aJS" = ( /obj/structure/sign/safety/biohazard{ @@ -12917,43 +9119,31 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor{ - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2, /area/bigredv2/caves/lambda/research) "aJT" = ( /obj/structure/filingcabinet/medical, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/admin_building) "aJU" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor{ - dir = 8; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/west, /area/bigredv2/caves/lambda/virology) "aJV" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/caves/lambda/virology) "aJW" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/east, /area/bigredv2/caves/lambda/virology) "aJX" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -12963,9 +9153,7 @@ dir = 1; name = "\improper Lambda Lab Virology Wing" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/caves/lambda/virology) "aJY" = ( /obj/effect/decal/warning_stripes{ @@ -12977,10 +9165,7 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor{ - dir = 8; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/west, /area/bigredv2/caves/lambda/virology) "aJZ" = ( /obj/structure/window/reinforced/toughened, @@ -12990,27 +9175,19 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor{ - dir = 10; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/southwest, /area/bigredv2/caves/lambda/virology) "aKa" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkgreencorners2" - }, +/turf/open/floor/darkgreencorners2/west, /area/bigredv2/caves/lambda/virology) "aKb" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 10 }, -/turf/open/floor{ - icon_state = "darkish" - }, +/turf/open/floor/darkish, /area/bigredv2/caves/lambda/virology) "aKc" = ( /obj/structure/pipes/vents/scrubber/on{ @@ -13018,64 +9195,44 @@ }, /obj/effect/landmark/monkey_spawn, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor{ - icon_state = "darkish" - }, +/turf/open/floor/darkish, /area/bigredv2/caves/lambda/virology) "aKd" = ( -/turf/open/floor{ - icon_state = "darkgreencorners2" - }, +/turf/open/floor/darkgreencorners2, /area/bigredv2/caves/lambda/virology) "aKe" = ( /obj/structure/window/reinforced/toughened, /obj/structure/machinery/door/window{ layer = 4 }, -/turf/open/floor{ - dir = 6; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/southeast, /area/bigredv2/caves/lambda/virology) "aKf" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" }, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/east, /area/bigredv2/caves/lambda/virology) "aKg" = ( /obj/effect/landmark/hunter_secondary, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/virology) "aKi" = ( -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/eta/xenobiology) "aKk" = ( /obj/effect/decal/cleanable/dirt, /turf/open/mars, /area/bigredv2/outside/c) "aKl" = ( -/turf/open/mars{ - icon_state = "mars_dirt_11" - }, +/turf/open/mars/mars_dirt_11, /area/bigredv2/outside/c) "aKm" = ( /obj/structure/sign/safety/medical{ pixel_x = 32 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/c) "aKn" = ( /obj/structure/surface/table, @@ -13084,94 +9241,61 @@ /area/bigredv2/outside/office_complex) "aKo" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/admin_building) "aKp" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/admin_building) "aKq" = ( /obj/structure/sign/safety/medical{ pixel_x = -32 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/c) "aKr" = ( /obj/effect/landmark/hunter_primary, /turf/open/mars, /area/bigredv2/outside/c) "aKt" = ( -/turf/open/mars{ - icon_state = "mars_dirt_12" - }, +/turf/open/mars/mars_dirt_12, /area/bigredv2/outside/c) "aKv" = ( /obj/structure/bed/chair/wood/normal, /obj/item/weapon/gun/shotgun/pump/dual_tube/cmb, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/bar) "aKw" = ( /obj/item/clothing/head/welding, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/bar) "aKx" = ( /obj/structure/bed/stool, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/bar) "aKy" = ( /obj/structure/surface/table/woodentable, /obj/item/ashtray/glass, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/bar) "aKz" = ( /obj/structure/machinery/cm_vending/sorted/boozeomat, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/bar) -"aKA" = ( -/turf/open/mars{ - icon_state = "mars_dirt_10" - }, -/area/bigredv2/outside/ne) -"aKB" = ( -/turf/open/mars{ - icon_state = "mars_dirt_14" - }, -/area/bigredv2/outside/ne) "aKC" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/bigredv2/outside/hydroponics) "aKD" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/bigredv2/outside/hydroponics) "aKE" = ( /obj/structure/machinery/door_control{ @@ -13182,103 +9306,48 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/bigredv2/outside/hydroponics) "aKF" = ( /obj/structure/reagent_dispensers/watertank, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/bigredv2/outside/hydroponics) "aKG" = ( /obj/structure/machinery/gibber, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/bigredv2/outside/hydroponics) "aKH" = ( /obj/structure/machinery/power/apc, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/bigredv2/outside/hydroponics) "aKI" = ( /obj/structure/machinery/processor, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/bigredv2/outside/hydroponics) "aKJ" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "yellowfull" - }, -/area/bigredv2/outside/hydroponics) -"aKK" = ( -/obj/structure/machinery/vending/coffee, -/turf/open/floor, +/turf/open/floor/yellowfull, /area/bigredv2/outside/hydroponics) -"aKL" = ( -/obj/structure/bookcase{ - density = 0 - }, -/obj/structure/machinery/light{ - dir = 8 - }, -/turf/open/floor{ - icon_state = "wood" - }, -/area/bigredv2/outside/library) -"aKM" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 5 - }, -/turf/open/floor{ - dir = 8; - icon_state = "carpet7-3" - }, -/area/bigredv2/outside/library) -"aKN" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 10 - }, -/turf/open/floor{ - dir = 8; - icon_state = "carpet11-12" - }, -/area/bigredv2/outside/library) "aKO" = ( /obj/structure/bed/chair/wood/normal{ dir = 1 }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/library) "aKP" = ( /turf/open/mars, /area/bigredv2/outside/e) "aKQ" = ( -/turf/open/floor{ - dir = 4; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/east, /area/bigredv2/caves/lambda/research) "aKS" = ( -/turf/open/floor{ - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen, /area/bigredv2/caves/lambda/virology) "aKT" = ( /obj/structure/machinery/light/small/built{ dir = 4 }, -/turf/open/floor{ - dir = 6; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/southeast, /area/bigredv2/caves/lambda/virology) "aKU" = ( /obj/effect/decal/warning_stripes{ @@ -13292,44 +9361,30 @@ pixel_y = -30 }, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor{ - dir = 10; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/southwest, /area/bigredv2/caves/lambda/virology) "aKV" = ( /obj/effect/decal/warning_stripes{ icon_state = "SW-in" }, -/turf/open/floor{ - dir = 8; - icon_state = "whitegreencorner" - }, +/turf/open/floor/whitegreencorner/west, /area/bigredv2/caves/lambda/virology) "aKW" = ( /obj/structure/window/reinforced/toughened{ dir = 8 }, /obj/structure/window/reinforced/toughened, -/turf/open/floor{ - dir = 10; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/southwest, /area/bigredv2/caves/lambda/virology) "aKX" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 5 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkgreencorners2" - }, +/turf/open/floor/darkgreencorners2/west, /area/bigredv2/caves/lambda/virology) "aKY" = ( /obj/structure/pipes/standard/manifold/fourway/hidden/supply, -/turf/open/floor{ - icon_state = "darkgreencorners2" - }, +/turf/open/floor/darkgreencorners2, /area/bigredv2/caves/lambda/virology) "aKZ" = ( /obj/structure/window/reinforced/toughened{ @@ -13341,18 +9396,13 @@ dir = 8 }, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor{ - dir = 6; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/southeast, /area/bigredv2/caves/lambda/virology) "aLa" = ( /obj/effect/decal/warning_stripes{ icon_state = "SE-in" }, -/turf/open/floor{ - icon_state = "whitegreencorner" - }, +/turf/open/floor/whitegreencorner, /area/bigredv2/caves/lambda/virology) "aLb" = ( /obj/effect/decal/warning_stripes{ @@ -13361,10 +9411,7 @@ /obj/structure/machinery/light/built{ dir = 4 }, -/turf/open/floor{ - dir = 6; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/southeast, /area/bigredv2/caves/lambda/virology) "aLc" = ( /obj/effect/decal/cleanable/blood{ @@ -13373,17 +9420,13 @@ /turf/open/mars, /area/bigredv2/outside/c) "aLd" = ( -/turf/open/mars{ - icon_state = "mars_dirt_13" - }, +/turf/open/mars/mars_dirt_13, /area/bigredv2/outside/c) "aLe" = ( /obj/structure/machinery/door/airlock/almayer/medical/glass/colony{ name = "\improper Medical Command Complex" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/admin_building) "aLf" = ( /obj/structure/surface/table, @@ -13391,32 +9434,19 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/office_complex) "aLg" = ( /obj/structure/surface/table, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - icon_state = "grimy" - }, +/turf/open/floor/grimy, /area/bigredv2/outside/office_complex) -"aLh" = ( -/obj/effect/landmark/nightmare{ - insert_tag = "lz1north" - }, -/turf/closed/wall/solaris/reinforced, -/area/bigredv2/outside/space_port) "aLi" = ( /obj/structure/closet/jcloset, /obj/structure/machinery/camera/autoname{ dir = 8 }, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/bigredv2/outside/office_complex) "aLl" = ( /obj/structure/filingcabinet, @@ -13426,12 +9456,6 @@ /obj/effect/landmark/objective_landmark/close, /turf/open/floor, /area/bigredv2/outside/cargo) -"aLn" = ( -/obj/structure/surface/table, -/obj/structure/machinery/light, -/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor, -/area/bigredv2/outside/cargo) "aLo" = ( /obj/structure/surface/table, /obj/item/device/radio, @@ -13445,35 +9469,27 @@ /obj/structure/bed/chair/wood/normal{ dir = 4 }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/bar) "aLq" = ( /obj/structure/surface/table/woodentable, /obj/structure/pipes/vents/pump, /obj/item/trash/cheesie, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/bar) "aLr" = ( /obj/structure/bed/chair/wood/normal{ dir = 8 }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/bar) "aLs" = ( /obj/structure/bed/chair/wood/normal{ dir = 4 }, /obj/item/tool/extinguisher, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/bar) "aLt" = ( /obj/structure/surface/table/woodentable{ @@ -13481,105 +9497,66 @@ }, /obj/effect/decal/cleanable/blood, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/bar) "aLu" = ( /obj/structure/surface/table/woodentable, /obj/effect/landmark/monkey_spawn, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/bar) "aLv" = ( /obj/structure/machinery/cm_vending/sorted/boozeomat, /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/bar) "aLw" = ( /obj/structure/surface/table/reinforced, /obj/item/trash/waffles, -/turf/open/floor{ - icon_state = "yellowfull" - }, +/turf/open/floor/yellowfull, /area/bigredv2/outside/hydroponics) "aLx" = ( /obj/structure/surface/table/reinforced, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "yellowfull" - }, +/turf/open/floor/yellowfull, /area/bigredv2/outside/hydroponics) "aLy" = ( /obj/structure/surface/table/reinforced, /obj/item/tool/kitchen/knife, -/turf/open/floor{ - icon_state = "yellowfull" - }, +/turf/open/floor/yellowfull, /area/bigredv2/outside/hydroponics) "aLz" = ( /obj/structure/surface/table/reinforced, /obj/effect/decal/cleanable/dirt, /obj/item/trash/waffles, -/turf/open/floor{ - icon_state = "yellowfull" - }, +/turf/open/floor/yellowfull, /area/bigredv2/outside/hydroponics) "aLA" = ( /obj/structure/surface/table/reinforced, -/turf/open/floor{ - icon_state = "yellowfull" - }, +/turf/open/floor/yellowfull, /area/bigredv2/outside/hydroponics) "aLB" = ( /obj/structure/surface/table/reinforced, /obj/item/trash/plate, -/turf/open/floor{ - icon_state = "yellowfull" - }, +/turf/open/floor/yellowfull, /area/bigredv2/outside/hydroponics) "aLC" = ( /obj/structure/surface/table/reinforced, /obj/item/tool/kitchen/rollingpin, -/turf/open/floor{ - icon_state = "yellowfull" - }, +/turf/open/floor/yellowfull, /area/bigredv2/outside/hydroponics) "aLD" = ( /obj/structure/surface/table/reinforced, /obj/item/tool/kitchen/knife/butcher, -/turf/open/floor{ - icon_state = "yellowfull" - }, +/turf/open/floor/yellowfull, /area/bigredv2/outside/hydroponics) "aLE" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "yellowfull" - }, +/turf/open/floor/yellowfull, /area/bigredv2/outside/hydroponics) -"aLF" = ( -/turf/open/floor{ - dir = 8; - icon_state = "carpet7-3" - }, -/area/bigredv2/outside/library) -"aLG" = ( -/obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 8; - icon_state = "carpet11-12" - }, -/area/bigredv2/outside/library) "aLH" = ( -/turf/open/floor/bluegrid{ - icon_state = "bcircuitoff" - }, +/turf/open/floor/bluegrid/bcircuitoff, /area/bigredv2/caves/lambda/research) "aLI" = ( /turf/open/floor/greengrid, @@ -13587,10 +9564,7 @@ "aLJ" = ( /obj/structure/filingcabinet, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/bigredv2/outside/engineering) "aLM" = ( /obj/structure/machinery/shower{ @@ -13607,27 +9581,20 @@ dir = 1; opacity = 1 }, -/turf/open/floor{ - icon_state = "warnwhite" - }, +/turf/open/floor/warnwhite, /area/bigredv2/caves/lambda/virology) "aLO" = ( /obj/effect/decal/warning_stripes{ icon_state = "NE-out" }, /obj/effect/decal/cleanable/mucus, -/turf/open/floor{ - dir = 10; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/southwest, /area/bigredv2/caves/lambda/virology) "aLP" = ( /obj/structure/surface/table, /obj/item/tool/lighter/random, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/bigredv2/outside/engineering) "aLQ" = ( /obj/structure/window/reinforced/toughened{ @@ -13636,10 +9603,7 @@ /obj/structure/window/reinforced/toughened{ dir = 8 }, -/turf/open/floor{ - dir = 10; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/southwest, /area/bigredv2/caves/lambda/virology) "aLR" = ( /obj/structure/window/reinforced/toughened{ @@ -13650,141 +9614,89 @@ }, /obj/structure/machinery/computer/pandemic, /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor{ - dir = 6; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/southeast, /area/bigredv2/caves/lambda/virology) "aLS" = ( /obj/effect/decal/warning_stripes{ icon_state = "NW-out" }, -/turf/open/floor{ - dir = 6; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/southeast, /area/bigredv2/caves/lambda/virology) "aLT" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/north, /area/bigredv2/outside/virology) "aLU" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/virology) "aLV" = ( /obj/structure/sign/safety/biohazard{ pixel_x = 7; pixel_y = -24 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/virology) "aLW" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/virology) "aLX" = ( /obj/structure/machinery/light, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/virology) "aLY" = ( -/turf/open/mars{ - icon_state = "mars_dirt_14" - }, +/turf/open/mars/mars_dirt_14, /area/bigredv2/outside/virology) "aLZ" = ( /obj/effect/decal/cleanable/blood{ icon_state = "gib6" }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/north, /area/bigredv2/outside/nw) "aMa" = ( /obj/effect/decal/cleanable/dirt, /obj/item/stack/sheet/wood{ amount = 2 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/north, /area/bigredv2/outside/nw) "aMb" = ( /obj/effect/landmark/crap_item, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/north, /area/bigredv2/outside/nw) "aMc" = ( -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/north, /area/bigredv2/outside/c) "aMd" = ( -/turf/open/floor{ - dir = 5; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/northeast, /area/bigredv2/outside/c) "aMf" = ( -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/admin_building) "aMg" = ( -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/east, /area/bigredv2/outside/c) "aMh" = ( /obj/structure/bed/chair/wood/normal{ dir = 1 }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/bar) "aMi" = ( /obj/structure/surface/table/woodentable, /obj/effect/spawner/random/tool, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/bar) "aMj" = ( /obj/effect/landmark/survivor_spawner, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/bar) "aMk" = ( -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/north, /area/bigredv2/outside/ne) "aMl" = ( /obj/structure/machinery/light{ @@ -13796,25 +9708,19 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - icon_state = "yellowfull" - }, +/turf/open/floor/yellowfull, /area/bigredv2/outside/hydroponics) "aMn" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor{ - icon_state = "yellowfull" - }, +/turf/open/floor/yellowfull, /area/bigredv2/outside/hydroponics) "aMo" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor{ - icon_state = "yellowfull" - }, +/turf/open/floor/yellowfull, /area/bigredv2/outside/hydroponics) "aMp" = ( /obj/effect/decal/cleanable/dirt, @@ -13825,9 +9731,7 @@ /obj/structure/machinery/door/airlock/multi_tile/almayer/medidoor/colony{ name = "\improper Lambda Lab" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/caves/lambda/research) "aMr" = ( /obj/structure/machinery/computer3/server/rack, @@ -13865,18 +9769,13 @@ req_access_txt = "7"; specialfunctions = 4 }, -/turf/open/floor{ - dir = 10; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/southwest, /area/bigredv2/caves/lambda/virology) "aMw" = ( /obj/effect/decal/warning_stripes{ icon_state = "N" }, -/turf/open/floor{ - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen, /area/bigredv2/caves/lambda/virology) "aMx" = ( /obj/effect/decal/warning_stripes{ @@ -13884,9 +9783,7 @@ }, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor{ - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen, /area/bigredv2/caves/lambda/virology) "aMy" = ( /obj/effect/decal/warning_stripes{ @@ -13897,19 +9794,13 @@ pixel_y = -32 }, /obj/structure/machinery/light/built, -/turf/open/floor{ - dir = 6; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/southeast, /area/bigredv2/caves/lambda/virology) "aMB" = ( /obj/structure/surface/table, /obj/effect/decal/cleanable/dirt, /obj/item/tool/pen, -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/bigredv2/outside/engineering) "aMC" = ( /obj/effect/landmark/railgun_camera_pos, @@ -13920,18 +9811,14 @@ dir = 1; name = "\improper General Store" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/general_store) "aMF" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/machinery/door/airlock/multi_tile/almayer/comdoor/colony{ name = "\improper Operations" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/admin_building) "aMG" = ( /obj/structure/machinery/light{ @@ -13940,25 +9827,18 @@ /obj/structure/surface/table, /obj/item/tool/surgery/retractor, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/west, /area/bigredv2/caves/eta/research) "aMH" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/bar) "aMI" = ( /obj/structure/surface/table/woodentable, /obj/item/trash/sosjerky, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/bar) "aMJ" = ( /obj/structure/machinery/chem_dispenser/soda{ @@ -13973,18 +9853,14 @@ /obj/structure/machinery/camera/autoname{ dir = 8 }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/bar) "aMK" = ( /obj/structure/machinery/alarm{ dir = 4; pixel_x = -30 }, -/turf/open/floor{ - icon_state = "yellowfull" - }, +/turf/open/floor/yellowfull, /area/bigredv2/outside/hydroponics) "aML" = ( /obj/structure/bed/chair, @@ -13992,16 +9868,12 @@ /area/bigredv2/outside/hydroponics) "aMM" = ( /obj/structure/bed/chair, -/turf/open/floor{ - icon_state = "yellowfull" - }, +/turf/open/floor/yellowfull, /area/bigredv2/outside/hydroponics) "aMN" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "yellowfull" - }, +/turf/open/floor/yellowfull, /area/bigredv2/outside/hydroponics) "aMO" = ( /obj/structure/bed/chair, @@ -14013,9 +9885,7 @@ /obj/structure/bed/chair, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "yellowfull" - }, +/turf/open/floor/yellowfull, /area/bigredv2/outside/hydroponics) "aMQ" = ( /obj/effect/decal/cleanable/dirt, @@ -14023,118 +9893,76 @@ /turf/open/floor, /area/bigredv2/outside/hydroponics) "aMR" = ( -/turf/open/mars{ - icon_state = "mars_dirt_13" - }, +/turf/open/mars/mars_dirt_13, /area/bigredv2/outside/e) -"aMS" = ( -/turf/open/floor{ - dir = 10; - icon_state = "asteroidwarning" - }, -/area/bigredv2/caves_lambda) "aMT" = ( -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/bigredv2/caves_lambda) "aMV" = ( -/turf/open/floor{ - dir = 6; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/southeast, /area/bigredv2/caves_lambda) "aMW" = ( /obj/effect/landmark/monkey_spawn, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/bluegrid{ - icon_state = "bcircuitoff" - }, +/turf/open/floor/bluegrid/bcircuitoff, /area/bigredv2/caves/lambda/research) "aMX" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/medidoor/colony{ name = "\improper Lambda Lab Virology Quarantine" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/caves/lambda/virology) "aMY" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/caves/lambda/virology) "aMZ" = ( /obj/structure/closet/firecloset/full, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/virology) "aNa" = ( /obj/structure/closet/l3closet/general, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/virology) "aNb" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/virology) "aNc" = ( -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/virology) "aNd" = ( /obj/structure/machinery/shower{ dir = 8 }, /obj/structure/window/reinforced, -/turf/open/floor{ - dir = 8; - icon_state = "warnwhite" - }, +/turf/open/floor/warnwhite/west, /area/bigredv2/outside/virology) "aNe" = ( /obj/structure/machinery/cm_vending/sorted/medical/no_access, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/virology) "aNf" = ( /obj/structure/machinery/cm_vending/sorted/medical/blood, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/virology) "aNg" = ( /obj/structure/surface/table, /obj/item/tool/surgery/surgicaldrill, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/virology) "aNh" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/caves/eta/research) "aNi" = ( -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/bigredv2/outside/virology) "aNj" = ( /obj/effect/landmark/monkey_spawn, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/bigredv2/outside/virology) "aNk" = ( /obj/structure/barricade/wooden{ @@ -14142,32 +9970,20 @@ dir = 1; health = 25000 }, -/turf/open/floor{ - dir = 5; - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull/northeast, /area/bigredv2/outside/general_store) "aNl" = ( /obj/item/stack/sheet/wood{ amount = 2 }, -/turf/open/floor{ - dir = 5; - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull/northeast, /area/bigredv2/outside/general_store) "aNm" = ( -/turf/open/floor{ - dir = 5; - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull/northeast, /area/bigredv2/outside/general_store) "aNn" = ( /obj/structure/machinery/camera/autoname, -/turf/open/floor{ - dir = 5; - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull/northeast, /area/bigredv2/outside/general_store) "aNo" = ( /turf/open/floor, @@ -14183,59 +9999,42 @@ "aNr" = ( /obj/effect/decal/cleanable/blood, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "yellowfull" - }, +/turf/open/floor/yellowfull, /area/bigredv2/outside/general_store) "aNs" = ( /obj/structure/machinery/computer/arcade, -/turf/open/floor{ - icon_state = "yellowfull" - }, +/turf/open/floor/yellowfull, /area/bigredv2/outside/general_store) "aNt" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/computer/arcade, -/turf/open/floor{ - icon_state = "yellowfull" - }, +/turf/open/floor/yellowfull, /area/bigredv2/outside/general_store) "aNu" = ( /obj/structure/barricade/wooden, -/turf/open/floor{ - icon_state = "yellowfull" - }, +/turf/open/floor/yellowfull, /area/bigredv2/outside/general_store) "aNv" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/vending/snack, -/turf/open/floor{ - icon_state = "yellowfull" - }, +/turf/open/floor/yellowfull, /area/bigredv2/outside/general_store) "aNw" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/east, /area/bigredv2/outside/c) "aNx" = ( /obj/structure/surface/table, /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/eta/storage) "aNy" = ( /obj/structure/surface/table, /obj/item/paper_bin, /obj/item/tool/pen, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/admin_building) "aNz" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -14244,9 +10043,7 @@ dir = 1; health = 25000 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/admin_building) "aNA" = ( /obj/structure/barricade/wooden{ @@ -14254,23 +10051,17 @@ dir = 1; health = 25000 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/admin_building) "aNB" = ( /obj/structure/machinery/computer/cameras, /obj/structure/surface/table, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/admin_building) "aNC" = ( /obj/structure/machinery/computer/station_alert, /obj/structure/surface/table, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/admin_building) "aND" = ( /obj/structure/surface/table, @@ -14278,9 +10069,7 @@ density = 0; req_one_access_txt = "200" }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/admin_building) "aNE" = ( /obj/structure/surface/table, @@ -14293,18 +10082,13 @@ phone_color = "blue"; phone_id = "Administration" }, -/turf/open/floor{ - dir = 4; - icon_state = "warnwhite" - }, +/turf/open/floor/warnwhite/east, /area/bigredv2/outside/admin_building) "aNG" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/admin_building) "aNH" = ( /obj/structure/machinery/door/airlock/almayer/command/colony{ @@ -14313,151 +10097,107 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/admin_building) "aNI" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 9; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/northwest, /area/bigredv2/outside/admin_building) "aNJ" = ( -/turf/open/floor{ - dir = 5; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/northeast, /area/bigredv2/outside/admin_building) "aNK" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 9; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/northwest, /area/bigredv2/outside/admin_building) "aNL" = ( -/turf/open/floor{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/north, /area/bigredv2/outside/admin_building) "aNM" = ( /obj/structure/machinery/light{ dir = 1 }, /obj/structure/machinery/vending/cola, -/turf/open/floor{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/north, /area/bigredv2/outside/admin_building) "aNN" = ( /obj/structure/machinery/vending/coffee, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/north, /area/bigredv2/outside/admin_building) "aNO" = ( /obj/structure/closet/secure_closet/personal/cabinet, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/admin_building) "aNP" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/admin_building) "aNQ" = ( /obj/structure/bed, /obj/item/bedsheet/brown{ layer = 3.1 }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/admin_building) "aNR" = ( /obj/structure/bed/chair/wood/normal, /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/bar) "aNS" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/bar) "aNT" = ( /obj/structure/bed/chair/wood/normal, /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/bar) "aNU" = ( /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/bar) "aNV" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/bar) "aNW" = ( /obj/structure/bed/stool, /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/bar) "aNX" = ( /obj/structure/surface/table/woodentable, /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/bar) "aNY" = ( /obj/structure/surface/table/woodentable, /obj/item/trash/raisins, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/bar) "aNZ" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/crap_item, -/turf/open/floor{ - icon_state = "yellowfull" - }, +/turf/open/floor/yellowfull, /area/bigredv2/outside/hydroponics) "aOa" = ( /obj/structure/bed/chair{ @@ -14471,9 +10211,7 @@ /obj/effect/decal/cleanable/dirt, /obj/item/trash/plate, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - icon_state = "yellowfull" - }, +/turf/open/floor/yellowfull, /area/bigredv2/outside/hydroponics) "aOc" = ( /obj/structure/surface/table, @@ -14485,9 +10223,7 @@ dir = 8 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "yellowfull" - }, +/turf/open/floor/yellowfull, /area/bigredv2/outside/hydroponics) "aOe" = ( /obj/structure/bed/chair{ @@ -14502,9 +10238,7 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - icon_state = "yellowfull" - }, +/turf/open/floor/yellowfull, /area/bigredv2/outside/hydroponics) "aOg" = ( /obj/structure/surface/table, @@ -14516,103 +10250,62 @@ "aOh" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "yellowfull" - }, +/turf/open/floor/yellowfull, /area/bigredv2/outside/hydroponics) -"aOi" = ( -/obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 8; - icon_state = "carpet15-15" - }, -/area/bigredv2/outside/library) -"aOj" = ( -/turf/open/floor{ - dir = 8; - icon_state = "carpet14-10" - }, -/area/bigredv2/outside/library) "aOk" = ( -/turf/open/mars{ - icon_state = "mars_dirt_11" - }, +/turf/open/mars/mars_dirt_11, /area/bigredv2/outside/e) "aOl" = ( /obj/structure/surface/table, /obj/item/paper_bin, /obj/item/disk/nuclear, -/turf/open/floor{ - dir = 8; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/west, /area/bigredv2/caves/eta/research) "aOm" = ( -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/west, /area/bigredv2/caves_lambda) "aOn" = ( -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/east, /area/bigredv2/caves_lambda) "aOo" = ( /obj/structure/bed/chair/office/light{ dir = 8 }, -/turf/open/floor/bluegrid{ - icon_state = "bcircuitoff" - }, +/turf/open/floor/bluegrid/bcircuitoff, /area/bigredv2/caves/lambda/research) "aOp" = ( /obj/structure/machinery/light/small/built{ dir = 8 }, -/turf/open/floor{ - icon_state = "whitegreenfull" - }, +/turf/open/floor/whitegreenfull, /area/bigredv2/caves/lambda/virology) "aOq" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor{ - icon_state = "whitegreenfull" - }, +/turf/open/floor/whitegreenfull, /area/bigredv2/caves/lambda/virology) "aOr" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/blood{ layer = 3 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/virology) "aOs" = ( /obj/structure/machinery/shower{ dir = 8 }, -/turf/open/floor{ - dir = 8; - icon_state = "warnwhite" - }, +/turf/open/floor/warnwhite/west, /area/bigredv2/outside/virology) "aOt" = ( /obj/effect/landmark/monkey_spawn, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/bigredv2/outside/virology) "aOu" = ( /obj/structure/machinery/camera/autoname{ dir = 8 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/bigredv2/outside/virology) "aOv" = ( /obj/structure/barricade/wooden{ @@ -14620,10 +10313,7 @@ dir = 8; health = 25000 }, -/turf/open/floor{ - dir = 5; - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull/northeast, /area/bigredv2/outside/general_store) "aOw" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -14668,33 +10358,24 @@ "aOD" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/vending/cola, -/turf/open/floor{ - icon_state = "yellowfull" - }, +/turf/open/floor/yellowfull, /area/bigredv2/outside/general_store) "aOE" = ( /obj/effect/decal/cleanable/blood/gibs/up, -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/west, /area/bigredv2/outside/c) "aOF" = ( /obj/structure/machinery/computer/atmos_alert{ dir = 4 }, /obj/structure/surface/table, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/admin_building) "aOG" = ( /obj/structure/bed/chair/office/dark{ dir = 1 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/admin_building) "aOH" = ( /obj/structure/surface/table, @@ -14703,16 +10384,11 @@ dir = 4; health = 80 }, -/turf/open/floor{ - dir = 4; - icon_state = "warnwhite" - }, +/turf/open/floor/warnwhite/east, /area/bigredv2/outside/admin_building) "aOI" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/admin_building) "aOJ" = ( /obj/structure/surface/table, @@ -14721,40 +10397,26 @@ /turf/open/floor/plating, /area/bigredv2/caves/eta/research) "aOK" = ( -/turf/open/floor{ - dir = 4; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/east, /area/bigredv2/outside/admin_building) "aOL" = ( -/turf/open/floor{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/west, /area/bigredv2/outside/admin_building) "aOM" = ( -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/admin_building) "aON" = ( /obj/structure/machinery/door/airlock/almayer/generic{ name = "\improper Operations Bedroom" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/admin_building) "aOO" = ( -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/admin_building) "aOP" = ( /obj/structure/surface/table, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/eta/storage) "aOQ" = ( /obj/structure/surface/table, @@ -14763,43 +10425,31 @@ phone_color = "Blue"; phone_id = "Director" }, -/turf/open/floor{ - dir = 6; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/southeast, /area/bigredv2/caves/eta/research) "aOR" = ( /obj/effect/decal/cleanable/blood/gibs/down, -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/west, /area/bigredv2/outside/c) "aOS" = ( /obj/structure/surface/table/woodentable, /obj/item/trash/cheesie, /obj/item/trash/pistachios, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/bar) "aOU" = ( /obj/structure/machinery/door/airlock/almayer/medical/glass/colony{ dir = 1; name = "\improper Crew Habitation Complex" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/hydroponics) "aOV" = ( /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor{ - icon_state = "yellowfull" - }, +/turf/open/floor/yellowfull, /area/bigredv2/outside/hydroponics) "aOW" = ( /obj/structure/surface/table, @@ -14816,9 +10466,7 @@ }, /obj/item/trash/tray, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - icon_state = "yellowfull" - }, +/turf/open/floor/yellowfull, /area/bigredv2/outside/hydroponics) "aOY" = ( /obj/structure/bed/chair{ @@ -14836,9 +10484,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "yellowfull" - }, +/turf/open/floor/yellowfull, /area/bigredv2/outside/hydroponics) "aPa" = ( /obj/structure/surface/table, @@ -14864,16 +10510,11 @@ /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor{ - icon_state = "yellowfull" - }, +/turf/open/floor/yellowfull, /area/bigredv2/outside/hydroponics) "aPd" = ( /obj/structure/filingcabinet, -/turf/open/floor{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/north, /area/bigredv2/caves/eta/research) "aPe" = ( /obj/structure/surface/table, @@ -14882,9 +10523,7 @@ }, /obj/item/trash/plate, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - icon_state = "yellowfull" - }, +/turf/open/floor/yellowfull, /area/bigredv2/outside/hydroponics) "aPf" = ( /obj/structure/surface/table, @@ -14892,19 +10531,14 @@ phone_category = "Eta Labs"; phone_id = "Workshop" }, -/turf/open/floor{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/north, /area/bigredv2/caves/eta/research) "aPg" = ( /obj/structure/surface/table, -/obj/item/XenoBio/Blood, -/obj/item/XenoBio/Blood, +/obj/item/oldresearch/Blood, +/obj/item/oldresearch/Blood, /obj/item/paper, -/turf/open/floor{ - icon_state = "darkredcorners2" - }, +/turf/open/floor/darkredcorners2, /area/bigredv2/caves/eta/xenobiology) "aPh" = ( /obj/structure/bed/chair{ @@ -14928,66 +10562,17 @@ /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor{ - icon_state = "yellowfull" - }, +/turf/open/floor/yellowfull, /area/bigredv2/outside/hydroponics) -"aPk" = ( -/turf/open/floor{ - dir = 8; - icon_state = "carpet5-1" - }, -/area/bigredv2/outside/library) -"aPl" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 5 - }, -/turf/open/floor{ - dir = 8; - icon_state = "carpet13-5" - }, -/area/bigredv2/outside/library) -"aPm" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 10 - }, -/turf/open/floor{ - dir = 8; - icon_state = "carpet13-5" - }, -/area/bigredv2/outside/library) -"aPn" = ( -/obj/effect/landmark/crap_item, -/turf/open/floor{ - dir = 8; - icon_state = "carpet13-5" - }, -/area/bigredv2/outside/library) -"aPo" = ( -/turf/open/floor{ - dir = 8; - icon_state = "carpet13-5" - }, -/area/bigredv2/outside/library) -"aPp" = ( -/turf/open/floor{ - dir = 8; - icon_state = "carpet9-4" - }, -/area/bigredv2/outside/library) "aPq" = ( /obj/structure/machinery/door/airlock/almayer/research/glass/colony{ dir = 1; name = "\improper Lambda Lab Anomaly Chamber" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/caves/lambda/research) "aPr" = ( -/turf/open/floor{ - icon_state = "whitegreenfull" - }, +/turf/open/floor/whitegreenfull, /area/bigredv2/caves/lambda/virology) "aPs" = ( /obj/structure/machinery/light/small/built{ @@ -14996,9 +10581,7 @@ /obj/structure/pipes/standard/simple/hidden/supply, /obj/effect/landmark/xeno_spawn, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor{ - icon_state = "whitegreenfull" - }, +/turf/open/floor/whitegreenfull, /area/bigredv2/caves/lambda/virology) "aPt" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -15006,24 +10589,17 @@ dir = 1; name = "\improper Virology Lab Decontamination" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/virology) "aPu" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/bigredv2/outside/virology) "aPv" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 5; - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull/northeast, /area/bigredv2/outside/general_store) "aPw" = ( /obj/structure/surface/table, @@ -15032,58 +10608,40 @@ /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor{ - dir = 5; - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull/northeast, /area/bigredv2/outside/general_store) "aPx" = ( /obj/structure/surface/table, /obj/item/reagent_container/food/snacks/chips, /obj/item/reagent_container/food/snacks/cookie, /obj/item/reagent_container/food/snacks/donut, -/turf/open/floor{ - dir = 5; - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull/northeast, /area/bigredv2/outside/general_store) "aPy" = ( /obj/structure/surface/table, /obj/item/reagent_container/food/snacks/candy, -/turf/open/floor{ - dir = 5; - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull/northeast, /area/bigredv2/outside/general_store) "aPz" = ( /obj/structure/surface/table, /obj/item/reagent_container/food/drinks/cans/waterbottle, /obj/item/reagent_container/food/drinks/cans/cola, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 5; - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull/northeast, /area/bigredv2/outside/general_store) "aPA" = ( /obj/structure/surface/table, /obj/item/reagent_container/food/drinks/cans/waterbottle, /obj/item/reagent_container/food/drinks/cans/cola, /obj/item/reagent_container/food/drinks/cans/beer, -/turf/open/floor{ - dir = 5; - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull/northeast, /area/bigredv2/outside/general_store) "aPB" = ( /obj/structure/surface/table, /obj/item/reagent_container/food/drinks/flask, /obj/item/reagent_container/food/drinks/cans/waterbottle, /obj/item/reagent_container/food/drinks/cans/beer, -/turf/open/floor{ - dir = 5; - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull/northeast, /area/bigredv2/outside/general_store) "aPC" = ( /obj/effect/landmark/hunter_primary, @@ -15092,28 +10650,19 @@ "aPD" = ( /obj/structure/surface/table, /obj/item/storage/briefcase, -/turf/open/floor{ - dir = 5; - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull/northeast, /area/bigredv2/outside/general_store) "aPE" = ( /obj/structure/surface/table, /obj/structure/machinery/camera/autoname{ dir = 1 }, -/turf/open/floor{ - dir = 5; - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull/northeast, /area/bigredv2/outside/general_store) "aPF" = ( /obj/structure/surface/table, /obj/item/storage/box/snappops, -/turf/open/floor{ - dir = 5; - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull/northeast, /area/bigredv2/outside/general_store) "aPG" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -15123,55 +10672,40 @@ "aPH" = ( /obj/structure/surface/table, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/west, /area/bigredv2/caves/eta/research) "aPI" = ( /obj/structure/machinery/camera/autoname{ dir = 4 }, -/turf/open/floor{ - icon_state = "yellowfull" - }, +/turf/open/floor/yellowfull, /area/bigredv2/outside/general_store) "aPJ" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor{ - icon_state = "yellowfull" - }, +/turf/open/floor/yellowfull, /area/bigredv2/outside/general_store) "aPK" = ( /obj/structure/machinery/computer/communications{ dir = 4 }, /obj/structure/surface/table, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/admin_building) "aPL" = ( /obj/structure/bed/chair/office/dark{ dir = 8 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/admin_building) "aPM" = ( /obj/effect/landmark/survivor_spawner, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/admin_building) "aPN" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/admin_building) "aPO" = ( /obj/structure/surface/table, @@ -15180,19 +10714,14 @@ health = 80 }, /obj/item/phone, -/turf/open/floor{ - dir = 4; - icon_state = "warnwhite" - }, +/turf/open/floor/warnwhite/east, /area/bigredv2/outside/admin_building) "aPP" = ( /obj/structure/stairs/perspective{ dir = 1; icon_state = "p_stair_full" }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/admin_building) "aPQ" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -15200,33 +10729,24 @@ dir = 1; icon_state = "p_stair_full" }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/admin_building) "aPS" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/admin_building) "aPT" = ( /obj/structure/surface/table, /obj/effect/spawner/random/technology_scanner, -/turf/open/floor{ - dir = 4; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/east, /area/bigredv2/caves/eta/research) "aPV" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/admin_building) "aPW" = ( /obj/structure/coatrack{ @@ -15240,32 +10760,23 @@ pixel_x = -6; pixel_y = 15 }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/admin_building) "aPX" = ( /obj/structure/surface/table/woodentable, /obj/item/tool/lighter/zippo, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/admin_building) "aPY" = ( /obj/effect/decal/cleanable/blood{ icon_state = "gib6" }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/bar) "aPZ" = ( /obj/structure/surface/table, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor{ - dir = 8; - icon_state = "darkredcorners2" - }, +/turf/open/floor/darkredcorners2/west, /area/bigredv2/caves/eta/xenobiology) "aQa" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -15286,9 +10797,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "yellowfull" - }, +/turf/open/floor/yellowfull, /area/bigredv2/outside/hydroponics) "aQd" = ( /obj/structure/bed/chair{ @@ -15306,9 +10815,7 @@ dir = 4 }, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - icon_state = "yellowfull" - }, +/turf/open/floor/yellowfull, /area/bigredv2/outside/hydroponics) "aQf" = ( /obj/structure/surface/table, @@ -15329,18 +10836,14 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor{ - icon_state = "yellowfull" - }, +/turf/open/floor/yellowfull, /area/bigredv2/outside/hydroponics) "aQh" = ( /obj/structure/bed/chair{ dir = 1 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "yellowfull" - }, +/turf/open/floor/yellowfull, /area/bigredv2/outside/hydroponics) "aQi" = ( /obj/structure/bed/chair{ @@ -15352,9 +10855,7 @@ "aQj" = ( /obj/item/tool/wet_sign, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "yellowfull" - }, +/turf/open/floor/yellowfull, /area/bigredv2/outside/hydroponics) "aQk" = ( /obj/structure/pipes/vents/pump{ @@ -15366,9 +10867,7 @@ /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor{ - icon_state = "yellowfull" - }, +/turf/open/floor/yellowfull, /area/bigredv2/outside/hydroponics) "aQm" = ( /obj/structure/bed/chair{ @@ -15389,9 +10888,7 @@ "aQp" = ( /obj/structure/surface/table, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - icon_state = "yellowfull" - }, +/turf/open/floor/yellowfull, /area/bigredv2/outside/hydroponics) "aQq" = ( /obj/structure/bed/chair{ @@ -15399,52 +10896,26 @@ }, /turf/open/floor, /area/bigredv2/outside/hydroponics) -"aQr" = ( -/obj/structure/machinery/camera/autoname{ - dir = 4 - }, -/turf/open/floor{ - icon_state = "wood" - }, -/area/bigredv2/outside/library) -"aQs" = ( -/obj/structure/machinery/light, -/turf/open/floor{ - icon_state = "wood" - }, -/area/bigredv2/outside/library) "aQt" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/library) "aQu" = ( -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/outside/e) "aQv" = ( /obj/effect/landmark/objective_landmark/far, -/turf/open/floor{ - dir = 1; - icon_state = "podhatch" - }, +/turf/open/floor/podhatch/north, /area/bigredv2/caves/lambda/research) "aQw" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor{ - dir = 5; - icon_state = "podhatch" - }, +/turf/open/floor/podhatch/northeast, /area/bigredv2/caves/lambda/research) "aQy" = ( /obj/structure/surface/table, /obj/item/tool/pen, /obj/item/paper_bundle, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/caves/eta/living) "aQz" = ( /obj/structure/machinery/light{ @@ -15455,59 +10926,42 @@ "aQA" = ( /obj/item/frame/table, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/virology) "aQB" = ( /obj/item/frame/table, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/virology) "aQC" = ( /obj/structure/machinery/power/apc{ dir = 1; name = "Virology APC" }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/virology) "aQD" = ( /obj/structure/surface/table, /obj/item/stock_parts/smes_coil, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/caves/eta/living) "aQE" = ( /obj/structure/machinery/camera/autoname{ dir = 8 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/virology) "aQF" = ( -/turf/open/mars{ - icon_state = "mars_dirt_5" - }, +/turf/open/mars/mars_dirt_5, /area/bigredv2/outside/w) "aQG" = ( -/turf/open/mars{ - icon_state = "mars_dirt_6" - }, +/turf/open/mars/mars_dirt_6, /area/bigredv2/outside/w) "aQH" = ( /obj/structure/surface/table, /obj/item/reagent_container/food/snacks/chips, /obj/item/reagent_container/food/snacks/cookie, /obj/item/reagent_container/food/snacks/donkpocket, -/turf/open/floor{ - dir = 5; - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull/northeast, /area/bigredv2/outside/general_store) "aQI" = ( /obj/structure/surface/table, @@ -15517,10 +10971,7 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor{ - dir = 5; - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull/northeast, /area/bigredv2/outside/general_store) "aQJ" = ( /obj/structure/surface/table, @@ -15529,20 +10980,14 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor{ - dir = 5; - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull/northeast, /area/bigredv2/outside/general_store) "aQL" = ( /obj/structure/surface/table, /obj/structure/machinery/camera/autoname{ dir = 4 }, -/turf/open/floor{ - dir = 5; - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull/northeast, /area/bigredv2/outside/general_store) "aQM" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -15553,10 +10998,7 @@ dir = 4; icon_state = "gib6" }, -/turf/open/floor{ - dir = 5; - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull/northeast, /area/bigredv2/outside/general_store) "aQO" = ( /obj/structure/surface/table, @@ -15564,18 +11006,14 @@ /obj/effect/decal/cleanable/blood, /obj/item/alien_embryo, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - icon_state = "yellowfull" - }, +/turf/open/floor/yellowfull, /area/bigredv2/outside/general_store) "aQP" = ( /obj/structure/surface/table, /obj/effect/decal/cleanable/blood, /obj/item/tool/kitchen/knife, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - icon_state = "yellowfull" - }, +/turf/open/floor/yellowfull, /area/bigredv2/outside/general_store) "aQQ" = ( /obj/structure/surface/table, @@ -15583,9 +11021,7 @@ /obj/item/tool/lighter/random, /obj/item/storage/toolbox/mechanical, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - icon_state = "yellowfull" - }, +/turf/open/floor/yellowfull, /area/bigredv2/outside/general_store) "aQR" = ( /obj/structure/surface/table, @@ -15595,14 +11031,10 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - icon_state = "yellowfull" - }, +/turf/open/floor/yellowfull, /area/bigredv2/outside/general_store) "aQS" = ( -/turf/open/floor{ - icon_state = "yellowfull" - }, +/turf/open/floor/yellowfull, /area/bigredv2/outside/general_store) "aQT" = ( /obj/effect/decal/cleanable/dirt, @@ -15611,62 +11043,46 @@ /area/bigredv2/outside/general_store) "aQU" = ( /obj/item/device/flashlight, -/turf/open/floor{ - icon_state = "yellowfull" - }, +/turf/open/floor/yellowfull, /area/bigredv2/outside/general_store) "aQV" = ( /obj/structure/surface/table, /obj/item/paper, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/admin_building) "aQW" = ( /obj/effect/landmark/crap_item, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/admin_building) "aQX" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/admin_building) "aQY" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/landmark/crap_item, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/admin_building) "aQZ" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/admin_building) "aRa" = ( /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/admin_building) "aRb" = ( /obj/structure/machinery/light, /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/admin_building) "aRc" = ( /obj/item/device/radio/intercom{ @@ -15678,31 +11094,22 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/admin_building) "aRd" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/west, /area/bigredv2/outside/admin_building) "aRe" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/comdoor/colony{ dir = 1; name = "\improper Operations" }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/admin_building) "aRf" = ( /obj/structure/surface/table, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/caves/eta/living) "aRh" = ( /obj/structure/machinery/door_control{ @@ -15711,71 +11118,52 @@ pixel_y = -32 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "darkred2" - }, +/turf/open/floor/darkred2, /area/bigredv2/outside/admin_building) "aRi" = ( -/turf/open/floor{ - dir = 8; - icon_state = "darkredcorners2" - }, +/turf/open/floor/darkredcorners2/west, /area/bigredv2/outside/admin_building) "aRj" = ( /obj/structure/barricade/wooden, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/bar) "aRk" = ( /obj/structure/machinery/light, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/bar) "aRl" = ( /obj/structure/barricade/wooden, /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/bar) "aRm" = ( /obj/structure/barricade/wooden, /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/bar) "aRn" = ( /obj/effect/decal/cleanable/blood{ layer = 3 }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/bar) "aRo" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ dir = 1; name = "\improper Bar" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/bar) "aRp" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ dir = 1; name = "\improper Kitchen" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/hydroponics) "aRq" = ( /obj/effect/decal/cleanable/dirt, @@ -15796,43 +11184,22 @@ name = "Storm Shutters"; pixel_x = 32 }, -/turf/open/floor{ - icon_state = "yellowfull" - }, +/turf/open/floor/yellowfull, /area/bigredv2/outside/hydroponics) "aRu" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper Library" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/library) -"aRv" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_22" - }, -/area/bigredv2/outside/lambda_cave_cas) -"aRw" = ( -/obj/effect/landmark/crap_item, -/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/mars_cave{ - icon_state = "mars_cave_6" - }, -/area/bigredv2/outside/lambda_cave_cas) "aRx" = ( /obj/structure/machinery/teleport/station, -/turf/open/floor{ - icon_state = "podhatch" - }, +/turf/open/floor/podhatch, /area/bigredv2/caves/lambda/research) "aRy" = ( /obj/structure/machinery/teleport/hub, -/turf/open/floor{ - dir = 6; - icon_state = "podhatch" - }, +/turf/open/floor/podhatch/southeast, /area/bigredv2/caves/lambda/research) "aRz" = ( /obj/structure/machinery/cm_vending/sorted/medical/wall_med/limited{ @@ -15847,28 +11214,19 @@ }, /obj/effect/landmark/corpsespawner/doctor, /obj/effect/decal/cleanable/blood, -/turf/open/floor{ - dir = 9; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/northwest, /area/bigredv2/caves/lambda/virology) "aRA" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 6 }, -/turf/open/floor{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/north, /area/bigredv2/caves/lambda/virology) "aRB" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 }, -/turf/open/floor{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/north, /area/bigredv2/caves/lambda/virology) "aRC" = ( /obj/structure/machinery/cm_vending/sorted/medical/wall_med/limited{ @@ -15882,10 +11240,7 @@ /obj/structure/machinery/light/built{ dir = 1 }, -/turf/open/floor{ - dir = 5; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/northeast, /area/bigredv2/caves/lambda/virology) "aRD" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, @@ -15896,51 +11251,38 @@ /area/bigredv2/outside/virology) "aRF" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/virology) "aRG" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/virology) "aRH" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/virology) "aRI" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/virology) "aRJ" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/virology) "aRK" = ( /obj/structure/surface/table, /obj/item/reagent_container/food/snacks/cheesewedge, /obj/item/reagent_container/food/snacks/chips, /obj/item/reagent_container/food/snacks/cookie, -/turf/open/floor{ - dir = 5; - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull/northeast, /area/bigredv2/outside/general_store) "aRL" = ( /obj/structure/surface/table, @@ -15950,10 +11292,7 @@ /obj/item/reagent_container/food/snacks/candy, /obj/item/reagent_container/food/snacks/candy, /obj/item/reagent_container/food/snacks/donkpocket, -/turf/open/floor{ - dir = 5; - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull/northeast, /area/bigredv2/outside/general_store) "aRM" = ( /obj/effect/landmark/crap_item, @@ -15964,18 +11303,12 @@ /obj/item/reagent_container/food/drinks/cans/thirteenloko, /obj/item/reagent_container/food/drinks/cans/cola, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 5; - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull/northeast, /area/bigredv2/outside/general_store) "aRO" = ( /obj/structure/surface/table, /obj/item/reagent_container/food/drinks/flask, -/turf/open/floor{ - dir = 5; - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull/northeast, /area/bigredv2/outside/general_store) "aRP" = ( /obj/effect/decal/cleanable/dirt, @@ -15987,201 +11320,124 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor{ - icon_state = "yellowfull" - }, +/turf/open/floor/yellowfull, /area/bigredv2/outside/general_store) "aRR" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "yellowfull" - }, +/turf/open/floor/yellowfull, /area/bigredv2/outside/general_store) "aRS" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor{ - icon_state = "yellowfull" - }, +/turf/open/floor/yellowfull, /area/bigredv2/outside/general_store) "aRT" = ( /obj/structure/machinery/photocopier, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/admin_building) "aRU" = ( /obj/structure/machinery/light, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/admin_building) "aRV" = ( /obj/structure/sign/safety/terminal{ pixel_y = -32 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/admin_building) "aRX" = ( /obj/structure/machinery/lapvend, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/admin_building) "aRY" = ( /obj/structure/machinery/light{ dir = 8 }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/west, /area/bigredv2/outside/admin_building) "aRZ" = ( /obj/structure/machinery/door/airlock/almayer/maint{ dir = 1 }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/admin_building) "aSc" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper Bar" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/bar) "aSe" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper Kitchen" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/hydroponics) "aSf" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/west, /area/bigredv2/outside/e) "aSg" = ( -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/east, /area/bigredv2/outside/e) "aSh" = ( -/turf/open/mars{ - icon_state = "mars_dirt_10" - }, +/turf/open/mars/mars_dirt_10, /area/bigredv2/outside/e) "aSi" = ( -/turf/open/floor{ - dir = 9; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/northwest, /area/bigredv2/outside/e) -"aSj" = ( -/obj/effect/decal/remains/human, -/obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/floor{ - dir = 5; - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/lambda_cave_cas) -"aSk" = ( -/obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, -/obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/mars_cave{ - icon_state = "mars_cave_8" - }, -/area/bigredv2/outside/lambda_cave_cas) "aSl" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/west, /area/bigredv2/caves_lambda) "aSm" = ( -/turf/open/floor{ - dir = 5; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/northeast, /area/bigredv2/caves_lambda) "aSn" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/mars_cave{ - icon_state = "mars_cave_6" - }, +/turf/open/mars_cave/mars_cave_6, /area/bigredv2/caves_lambda) "aSo" = ( /obj/structure/curtain/medical, -/turf/open/floor{ - dir = 9; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/northwest, /area/bigredv2/caves/lambda/virology) "aSp" = ( /obj/effect/landmark/objective_landmark/science, -/turf/open/floor{ - dir = 9; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/northwest, /area/bigredv2/caves/lambda/virology) "aSq" = ( /obj/effect/decal/cleanable/blood, /obj/structure/pipes/vents/scrubber/on{ dir = 1 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/north, /area/bigredv2/caves/lambda/virology) "aSr" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/north, /area/bigredv2/caves/lambda/virology) "aSs" = ( -/turf/open/floor{ - dir = 5; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/northeast, /area/bigredv2/caves/lambda/virology) "aSt" = ( /obj/structure/curtain/medical, -/turf/open/floor{ - dir = 5; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/northeast, /area/bigredv2/caves/lambda/virology) "aSu" = ( /obj/structure/barricade/wooden{ desc = "This barricade is heavily reinforced. Nothing short of blasting it open seems like it'll do the trick, that or melting the breams supporting it..."; health = 25000 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/virology) "aSv" = ( /obj/structure/barricade/wooden{ @@ -16194,45 +11450,32 @@ /obj/effect/decal/cleanable/blood{ layer = 3 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/virology) "aSx" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/virology) "aSy" = ( /obj/structure/machinery/iv_drip, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/virology) "aSA" = ( /obj/structure/machinery/door/airlock/almayer/research/glass/colony{ dir = 1; name = "\improper Virology Lab Cell" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/virology) "aSB" = ( -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/outside/w) "aSC" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/camera/autoname{ dir = 4 }, -/turf/open/floor{ - dir = 5; - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull/northeast, /area/bigredv2/outside/general_store) "aSD" = ( /obj/structure/surface/table, @@ -16240,10 +11483,7 @@ /obj/item/reagent_container/food/snacks/chips, /obj/item/reagent_container/food/snacks/donkpocket, /obj/item/reagent_container/food/snacks/donut, -/turf/open/floor{ - dir = 5; - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull/northeast, /area/bigredv2/outside/general_store) "aSE" = ( /obj/structure/surface/table, @@ -16251,10 +11491,7 @@ /obj/item/reagent_container/food/snacks/candy, /obj/item/reagent_container/food/snacks/candy, /obj/item/reagent_container/food/snacks/chips, -/turf/open/floor{ - dir = 5; - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull/northeast, /area/bigredv2/outside/general_store) "aSF" = ( /obj/structure/surface/table, @@ -16262,19 +11499,13 @@ /obj/item/reagent_container/food/drinks/cans/waterbottle, /obj/item/reagent_container/food/drinks/cans/aspen, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 5; - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull/northeast, /area/bigredv2/outside/general_store) "aSG" = ( /obj/structure/surface/table, /obj/item/reagent_container/food/drinks/flask/vacuumflask, /obj/item/reagent_container/food/drinks/flask, -/turf/open/floor{ - dir = 5; - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull/northeast, /area/bigredv2/outside/general_store) "aSH" = ( /obj/structure/surface/table, @@ -16282,10 +11513,7 @@ /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor{ - dir = 5; - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull/northeast, /area/bigredv2/outside/general_store) "aSI" = ( /obj/structure/pipes/standard/manifold/hidden/green, @@ -16297,10 +11525,7 @@ dir = 4 }, /obj/structure/bed/roller, -/turf/open/floor{ - dir = 5; - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull/northeast, /area/bigredv2/outside/general_store) "aSK" = ( /obj/structure/surface/table, @@ -16309,9 +11534,7 @@ }, /obj/item/tool/surgery/surgicaldrill, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - icon_state = "yellowfull" - }, +/turf/open/floor/yellowfull, /area/bigredv2/outside/general_store) "aSL" = ( /obj/structure/surface/table, @@ -16320,9 +11543,7 @@ }, /obj/item/device/healthanalyzer, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - icon_state = "yellowfull" - }, +/turf/open/floor/yellowfull, /area/bigredv2/outside/general_store) "aSM" = ( /obj/structure/surface/table, @@ -16331,9 +11552,7 @@ }, /obj/item/device/multitool, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - icon_state = "yellowfull" - }, +/turf/open/floor/yellowfull, /area/bigredv2/outside/general_store) "aSN" = ( /obj/structure/surface/table, @@ -16343,17 +11562,13 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "yellowfull" - }, +/turf/open/floor/yellowfull, /area/bigredv2/outside/general_store) "aSO" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor{ - icon_state = "yellowfull" - }, +/turf/open/floor/yellowfull, /area/bigredv2/outside/general_store) "aSP" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -16361,9 +11576,7 @@ dir = 1; name = "\improper General Store Security" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/general_store) "aSQ" = ( /obj/effect/decal/warning_stripes{ @@ -16378,64 +11591,44 @@ dir = 1; name = "\improper Operations" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/admin_building) "aSR" = ( /obj/structure/pipes/vents/pump, /obj/structure/surface/rack, /obj/item/weapon/gun/smg/mp27, -/turf/open/floor{ - dir = 8; - icon_state = "redcorner" - }, +/turf/open/floor/redcorner/west, /area/bigredv2/outside/admin_building) "aSS" = ( /obj/structure/surface/rack, /obj/item/weapon/gun/smg/mp27, -/turf/open/floor{ - dir = 8; - icon_state = "redcorner" - }, +/turf/open/floor/redcorner/west, /area/bigredv2/outside/admin_building) "aST" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor{ - dir = 9; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/northwest, /area/bigredv2/outside/admin_building) "aSU" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/landmark/good_item, -/turf/open/floor{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/north, /area/bigredv2/outside/admin_building) "aSV" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/item/prop/alien/hugger, -/turf/open/floor{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/north, /area/bigredv2/outside/admin_building) "aSW" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkredcorners2" - }, +/turf/open/floor/darkredcorners2/north, /area/bigredv2/outside/admin_building) "aSX" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -16443,9 +11636,7 @@ dir = 1; icon_state = "p_stair_full" }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/admin_building) "aSZ" = ( /obj/structure/machinery/power/apc{ @@ -16462,40 +11653,28 @@ dir = 1; icon_state = "p_stair_full" }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/admin_building) "aTc" = ( /obj/effect/decal/cleanable/blood/gibs/body, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/bigredv2/outside/c) "aTd" = ( /obj/effect/decal/cleanable/blood{ dir = 4; icon_state = "gib6" }, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/bigredv2/outside/c) "aTe" = ( /obj/effect/decal/cleanable/blood/gibs/xeno/limb, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/c) "aTf" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/c) "aTg" = ( /obj/structure/sign/double/barsign{ @@ -16504,188 +11683,95 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/c) "aTh" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/bigredv2/outside/c) "aTi" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/c) "aTj" = ( /obj/effect/decal/cleanable/blood, /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/c) "aTk" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/bigredv2/outside/e) "aTl" = ( /obj/effect/decal/cleanable/blood/xeno, /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, -/area/bigredv2/outside/e) -"aTo" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 10 - }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/e) "aTp" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/e) "aTq" = ( -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/e) "aTr" = ( -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/north, /area/bigredv2/outside/e) "aTs" = ( -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigred/ground/garage_workshop) "aTt" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/e) "aTu" = ( -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/west, /area/bigredv2/outside/e) "aTv" = ( -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/caves_lambda) "aTw" = ( -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, -/area/bigredv2/caves_lambda) -"aTx" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/lambda_cave_cas) -"aTy" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/north, /area/bigredv2/caves_lambda) -"aTz" = ( -/obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, -/obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/lambda_cave_cas) "aTC" = ( /obj/structure/bed, /obj/item/bedsheet/medical, -/turf/open/floor{ - dir = 9; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/northwest, /area/bigredv2/caves/lambda/virology) "aTD" = ( /obj/structure/curtain/medical, -/turf/open/floor{ - dir = 9; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/northwest, /area/bigredv2/caves/lambda/virology) "aTE" = ( /obj/effect/decal/cleanable/vomit, -/turf/open/floor{ - dir = 1; - icon_state = "darkgreencorners2" - }, +/turf/open/floor/darkgreencorners2/north, /area/bigredv2/caves/lambda/virology) "aTG" = ( /obj/effect/decal/cleanable/mucus, -/turf/open/floor{ - icon_state = "darkish" - }, +/turf/open/floor/darkish, /area/bigredv2/caves/lambda/virology) "aTH" = ( -/turf/open/floor{ - dir = 4; - icon_state = "darkgreencorners2" - }, +/turf/open/floor/darkgreencorners2/east, /area/bigredv2/caves/lambda/virology) "aTI" = ( /obj/structure/curtain/medical, -/turf/open/floor{ - dir = 5; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/northeast, /area/bigredv2/caves/lambda/virology) "aTJ" = ( /obj/structure/bed, /obj/item/bedsheet/medical, -/turf/open/floor{ - dir = 5; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/northeast, /area/bigredv2/caves/lambda/virology) "aTK" = ( /obj/structure/barricade/wooden{ @@ -16693,15 +11779,11 @@ dir = 8; health = 25000 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/virology) "aTL" = ( /obj/item/tool/extinguisher, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/virology) "aTM" = ( /obj/structure/surface/table, @@ -16709,10 +11791,7 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor{ - dir = 5; - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull/northeast, /area/bigredv2/outside/general_store) "aTN" = ( /obj/structure/surface/table, @@ -16722,28 +11801,19 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor{ - dir = 5; - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull/northeast, /area/bigredv2/outside/general_store) "aTO" = ( /obj/structure/surface/table, /obj/item/reagent_container/food/drinks/cans/waterbottle, /obj/item/reagent_container/food/drinks/cans/aspen, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 5; - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull/northeast, /area/bigredv2/outside/general_store) "aTP" = ( /obj/structure/surface/table, /obj/item/reagent_container/food/drinks/flask/vacuumflask, -/turf/open/floor{ - dir = 5; - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull/northeast, /area/bigredv2/outside/general_store) "aTQ" = ( /obj/structure/reagent_dispensers/watertank, @@ -16755,10 +11825,7 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor{ - dir = 5; - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull/northeast, /area/bigredv2/outside/general_store) "aTS" = ( /obj/structure/surface/table, @@ -16766,63 +11833,40 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor{ - dir = 5; - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull/northeast, /area/bigredv2/outside/general_store) "aTU" = ( /obj/structure/prop/server_equipment/yutani_server{ density = 0; pixel_y = 16 }, -/turf/open/floor{ - icon_state = "podhatchfloor" - }, +/turf/open/floor/podhatchfloor, /area/bigredv2/outside/admin_building) "aTV" = ( -/turf/open/floor{ - icon_state = "podhatchfloor" - }, +/turf/open/floor/podhatchfloor, /area/bigredv2/outside/admin_building) "aTY" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 8; - icon_state = "redcorner" - }, +/turf/open/floor/redcorner/west, /area/bigredv2/outside/admin_building) "aTZ" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor{ - dir = 8; - icon_state = "redcorner" - }, +/turf/open/floor/redcorner/west, /area/bigredv2/outside/admin_building) "aUa" = ( -/turf/open/floor{ - icon_state = "darkredcorners2" - }, +/turf/open/floor/darkredcorners2, /area/bigredv2/outside/admin_building) "aUb" = ( -/turf/open/floor{ - icon_state = "darkred2" - }, +/turf/open/floor/darkred2, /area/bigredv2/outside/admin_building) "aUc" = ( -/turf/open/floor{ - dir = 6; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/southeast, /area/bigredv2/outside/admin_building) "aUd" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 5; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/northeast, /area/bigredv2/outside/admin_building) "aUe" = ( /obj/structure/machinery/light{ @@ -16838,244 +11882,95 @@ "aUf" = ( /obj/effect/landmark/good_item, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/west, /area/bigredv2/outside/admin_building) "aUg" = ( /obj/structure/closet/secure_closet/personal/cabinet, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/admin_building) "aUh" = ( /obj/effect/decal/cleanable/blood{ icon_state = "xgib4" }, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/outside/c) "aUi" = ( /obj/effect/decal/cleanable/blood/xeno, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/c) "aUk" = ( -/turf/open/mars{ - icon_state = "mars_dirt_3" - }, +/turf/open/mars/mars_dirt_3, /area/bigredv2/outside/e) "aUl" = ( /obj/effect/decal/cleanable/blood, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/outside/e) "aUm" = ( /obj/effect/decal/cleanable/blood{ layer = 3 }, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/outside/e) "aUn" = ( /obj/effect/decal/cleanable/blood/gibs/limb, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, -/area/bigredv2/outside/e) -"aUo" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 5 - }, -/turf/open/floor{ - dir = 10; - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/e) -"aUp" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/e) -"aUq" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/e) -"aUr" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 4 - }, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/e) -"aUs" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/pipes/standard/manifold/hidden/green{ - dir = 1 - }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/outside/e) -"aUu" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 4 - }, -/obj/structure/machinery/door/poddoor/almayer/closed{ - dir = 4; - id = "lambda"; - name = "Lambda Lockdown" - }, -/turf/open/floor{ - icon_state = "delivery" - }, -/area/bigredv2/outside/lambda_cave_cas) "aUv" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, -/area/bigredv2/outside/lambda_cave_cas) -"aUw" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 4 - }, -/obj/structure/machinery/door/poddoor/almayer/closed{ - dir = 4; - id = "lambda"; - name = "Lambda Lockdown" - }, -/turf/open/floor{ - icon_state = "delivery" - }, -/area/bigredv2/outside/lambda_cave_cas) -"aUx" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 4 - }, -/obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, -/area/bigredv2/outside/lambda_cave_cas) -"aUy" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 4 - }, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, -/area/bigredv2/caves_lambda) -"aUA" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 4 - }, -/obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, -/obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/lambda_cave_cas) "aUD" = ( /obj/structure/bed, /obj/item/bedsheet/medical, -/turf/open/floor{ - dir = 10; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/southwest, /area/bigredv2/caves/lambda/virology) "aUE" = ( /obj/structure/curtain/medical, -/turf/open/floor{ - dir = 10; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/southwest, /area/bigredv2/caves/lambda/virology) "aUF" = ( -/turf/open/floor{ - dir = 8; - icon_state = "darkgreencorners2" - }, +/turf/open/floor/darkgreencorners2/west, /area/bigredv2/caves/lambda/virology) "aUG" = ( /obj/effect/spawner/random/toolbox, -/turf/open/floor{ - icon_state = "darkish" - }, +/turf/open/floor/darkish, /area/bigredv2/caves/lambda/virology) "aUH" = ( /obj/effect/decal/cleanable/mucus, -/turf/open/floor{ - icon_state = "darkgreencorners2" - }, +/turf/open/floor/darkgreencorners2, /area/bigredv2/caves/lambda/virology) "aUI" = ( /obj/structure/curtain/medical, -/turf/open/floor{ - dir = 6; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/southeast, /area/bigredv2/caves/lambda/virology) "aUJ" = ( /obj/structure/bed, /obj/item/bedsheet/medical, /obj/effect/landmark/objective_landmark/science, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor{ - dir = 6; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/southeast, /area/bigredv2/caves/lambda/virology) "aUM" = ( /obj/structure/machinery/computer/operating, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/virology) "aUO" = ( /obj/structure/surface/table, /obj/item/tank/anesthetic, /obj/item/storage/pill_bottle/spaceacillin, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/virology) "aUP" = ( /obj/effect/landmark/crap_item, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/virology) "aUQ" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/w) "aUS" = ( /obj/structure/surface/table, @@ -17083,10 +11978,7 @@ /obj/item/reagent_container/food/snacks/bun, /obj/item/reagent_container/food/snacks/cheesewedge, /obj/item/reagent_container/food/snacks/donut, -/turf/open/floor{ - dir = 5; - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull/northeast, /area/bigredv2/outside/general_store) "aUT" = ( /obj/structure/surface/table, @@ -17094,19 +11986,13 @@ /obj/item/reagent_container/food/snacks/bun, /obj/item/reagent_container/food/snacks/cheesewedge, /obj/structure/machinery/camera/autoname, -/turf/open/floor{ - dir = 5; - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull/northeast, /area/bigredv2/outside/general_store) "aUU" = ( /obj/structure/surface/table, /obj/item/reagent_container/food/snacks/candy, /obj/item/reagent_container/food/snacks/bun, -/turf/open/floor{ - dir = 5; - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull/northeast, /area/bigredv2/outside/general_store) "aUV" = ( /obj/effect/decal/cleanable/dirt, @@ -17122,86 +12008,61 @@ /obj/structure/surface/table, /obj/item/reagent_container/food/drinks/coffee, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 5; - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull/northeast, /area/bigredv2/outside/general_store) "aUY" = ( /obj/structure/surface/table, /obj/item/reagent_container/food/drinks/coffee, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor{ - dir = 5; - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull/northeast, /area/bigredv2/outside/general_store) "aUZ" = ( /obj/structure/surface/table, /obj/item/reagent_container/food/drinks/flask/vacuumflask, /obj/item/reagent_container/food/drinks/cans/aspen, -/turf/open/floor{ - dir = 5; - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull/northeast, /area/bigredv2/outside/general_store) "aVa" = ( /obj/structure/surface/table, /obj/item/device/flashlight, -/turf/open/floor{ - dir = 5; - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull/northeast, /area/bigredv2/outside/general_store) "aVb" = ( /obj/structure/surface/table, /obj/item/storage/box/snappops, /obj/item/storage/box/snappops, -/turf/open/floor{ - dir = 5; - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull/northeast, /area/bigredv2/outside/general_store) "aVc" = ( /obj/structure/platform/kutjevo/rock{ dir = 1 }, -/turf/open/mars{ - icon_state = "mars_dirt_9" - }, +/turf/open/mars/mars_dirt_9, /area/space) "aVd" = ( /obj/structure/surface/table, /obj/item/toy/dice, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - icon_state = "yellowfull" - }, +/turf/open/floor/yellowfull, /area/bigredv2/outside/general_store) "aVe" = ( /obj/structure/surface/table, /obj/item/weapon/gun/pistol/holdout, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - icon_state = "yellowfull" - }, +/turf/open/floor/yellowfull, /area/bigredv2/outside/general_store) "aVf" = ( /obj/structure/surface/table, /obj/item/tool/kitchen/knife, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - icon_state = "yellowfull" - }, +/turf/open/floor/yellowfull, /area/bigredv2/outside/general_store) "aVg" = ( /obj/structure/surface/table, /obj/structure/machinery/computer/pod/old{ name = "Register" }, -/turf/open/floor{ - icon_state = "yellowfull" - }, +/turf/open/floor/yellowfull, /area/bigredv2/outside/general_store) "aVh" = ( /obj/structure/bed/chair/office/dark{ @@ -17216,129 +12077,76 @@ name = "Storm Shutters"; pixel_x = 32 }, -/turf/open/floor{ - icon_state = "yellowfull" - }, +/turf/open/floor/yellowfull, /area/bigredv2/outside/general_store) "aVj" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor{ - icon_state = "podhatchfloor" - }, +/turf/open/floor/podhatchfloor, /area/bigredv2/outside/admin_building) "aVk" = ( -/turf/open/floor{ - dir = 8; - icon_state = "redcorner" - }, +/turf/open/floor/redcorner/west, /area/bigredv2/outside/admin_building) "aVl" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/landmark/crap_item, -/turf/open/floor{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/west, /area/bigredv2/outside/admin_building) "aVm" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/west, /area/bigredv2/outside/admin_building) "aVn" = ( /obj/effect/landmark/hunter_primary, -/turf/open/floor{ - dir = 9; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/northwest, /area/bigredv2/outside/c) "aVo" = ( -/turf/open/mars{ - icon_state = "mars_dirt_10" - }, +/turf/open/mars/mars_dirt_10, /area/bigredv2/outside/c) "aVp" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/c) "aVq" = ( -/turf/open/mars{ - icon_state = "mars_dirt_12" - }, +/turf/open/mars/mars_dirt_12, /area/bigredv2/outside/e) "aVr" = ( -/turf/open/mars{ - icon_state = "mars_dirt_8" - }, +/turf/open/mars/mars_dirt_8, /area/bigredv2/outside/e) "aVs" = ( -/turf/open/mars{ - icon_state = "mars_dirt_9" - }, +/turf/open/mars/mars_dirt_9, /area/bigredv2/outside/e) "aVt" = ( /obj/effect/landmark/hunter_primary, /turf/open/mars, /area/bigredv2/outside/e) "aVv" = ( -/turf/open/floor{ - dir = 10; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/southwest, /area/bigredv2/outside/e) -"aVw" = ( -/obj/effect/decal/cleanable/blood{ - dir = 4; - icon_state = "gib6" - }, -/turf/open/mars_cave{ - icon_state = "mars_cave_8" - }, -/area/bigredv2/outside/lambda_cave_cas) "aVx" = ( /obj/structure/curtain/medical, /obj/structure/machinery/alarm{ dir = 1; pixel_y = -30 }, -/turf/open/floor{ - dir = 10; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/southwest, /area/bigredv2/caves/lambda/virology) "aVy" = ( -/turf/open/floor{ - dir = 10; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/southwest, /area/bigredv2/caves/lambda/virology) "aVz" = ( -/turf/open/floor{ - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2, /area/bigredv2/caves/lambda/virology) "aVA" = ( /obj/effect/landmark/corpsespawner/scientist, -/turf/open/floor{ - dir = 6; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/southeast, /area/bigredv2/caves/lambda/virology) "aVB" = ( /obj/structure/curtain/medical, -/turf/open/floor{ - dir = 6; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/southeast, /area/bigredv2/caves/lambda/virology) "aVC" = ( /obj/structure/machinery/camera/autoname{ @@ -17349,57 +12157,37 @@ name = "Virology Lockdown"; pixel_x = -25 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/virology) "aVD" = ( /obj/structure/bed/stool, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/virology) "aVE" = ( /obj/structure/surface/table, /obj/structure/machinery/reagentgrinder, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/virology) "aVF" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 9; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/northwest, /area/bigredv2/outside/w) "aVG" = ( -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/north, /area/bigredv2/outside/w) "aVH" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/north, /area/bigredv2/outside/w) "aVI" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/west, /area/bigredv2/outside/w) "aVJ" = ( /obj/structure/machinery/door/airlock/almayer/medical/glass/colony{ name = "\improper General Store" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/general_store) "aVK" = ( /obj/effect/decal/cleanable/blood{ @@ -17409,7 +12197,7 @@ /area/bigredv2/outside/general_store) "aVL" = ( /obj/effect/decal/cleanable/dirt, -/obj/item/handcuffs/cable, +/obj/item/restraint/adjustable/cable, /turf/open/floor, /area/bigredv2/outside/general_store) "aVM" = ( @@ -17421,24 +12209,18 @@ /area/bigredv2/outside/general_store) "aVN" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "yellowfull" - }, +/turf/open/floor/yellowfull, /area/bigredv2/outside/general_store) "aVO" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "yellowfull" - }, +/turf/open/floor/yellowfull, /area/bigredv2/outside/general_store) "aVP" = ( /obj/structure/machinery/camera/autoname{ dir = 1 }, -/turf/open/floor{ - icon_state = "yellowfull" - }, +/turf/open/floor/yellowfull, /area/bigredv2/outside/general_store) "aVQ" = ( /obj/structure/platform_decoration/kutjevo/rock, @@ -17448,39 +12230,26 @@ /obj/structure/platform_decoration/kutjevo/rock{ dir = 1 }, -/turf/open/mars{ - icon_state = "mars_dirt_12" - }, +/turf/open/mars/mars_dirt_12, /area/space) "aVS" = ( /obj/structure/machinery/camera/autoname{ dir = 1; network = list("interrogation") }, -/turf/open/floor{ - icon_state = "podhatchfloor" - }, +/turf/open/floor/podhatchfloor, /area/bigredv2/outside/admin_building) "aVT" = ( -/turf/open/floor{ - dir = 9; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/northwest, /area/bigredv2/outside/admin_building) "aVU" = ( -/turf/open/floor{ - dir = 1; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/north, /area/bigredv2/outside/admin_building) "aVV" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/north, /area/bigredv2/outside/admin_building) "aVW" = ( /obj/structure/bed/chair/office/dark{ @@ -17493,20 +12262,14 @@ pixel_y = 24 }, /obj/item/prop/alien/hugger, -/turf/open/floor{ - dir = 1; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/north, /area/bigredv2/outside/admin_building) "aVX" = ( /obj/structure/machinery/computer/cameras{ dir = 8 }, /obj/structure/surface/table, -/turf/open/floor{ - dir = 5; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/northeast, /area/bigredv2/outside/admin_building) "aVY" = ( /obj/effect/landmark/crap_item, @@ -17516,10 +12279,7 @@ /obj/structure/surface/table/reinforced, /obj/structure/machinery/microwave, /obj/structure/machinery/light, -/turf/open/floor{ - dir = 10; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/southwest, /area/bigredv2/caves/lambda/virology) "aWb" = ( /obj/structure/surface/table/reinforced, @@ -17528,18 +12288,13 @@ pixel_x = 6; pixel_y = 8 }, -/turf/open/floor{ - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen, /area/bigredv2/caves/lambda/virology) "aWc" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/microwave, /obj/structure/machinery/light, -/turf/open/floor{ - dir = 6; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/southeast, /area/bigredv2/caves/lambda/virology) "aWd" = ( /obj/structure/sink{ @@ -17547,112 +12302,83 @@ pixel_x = -12; pixel_y = 2 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/virology) "aWe" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/virology) "aWf" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/virology) "aWg" = ( /obj/structure/machinery/computer/pandemic, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/virology) "aWh" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 9; - icon_state = "warnwhite" - }, +/turf/open/floor/warnwhite/northwest, /area/bigredv2/outside/virology) "aWi" = ( -/turf/open/floor{ - dir = 1; - icon_state = "warnwhite" - }, +/turf/open/floor/warnwhite/north, /area/bigredv2/outside/virology) -"aWk" = ( -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" +"aWj" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_x = 1; + pixel_y = 1 }, +/turf/open/floor/red/southwest, +/area/bigredv2/outside/marshal_office) +"aWk" = ( +/turf/open/floor/asteroidwarning/west, /area/bigredv2/outside/w) "aWs" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor{ - dir = 5; - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull/northeast, /area/bigredv2/outside/general_store) "aWt" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 5; - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull/northeast, /area/bigredv2/outside/general_store) "aWu" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor{ - dir = 5; - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull/northeast, /area/bigredv2/outside/general_store) "aWv" = ( /obj/structure/machinery/alarm{ dir = 1; pixel_y = -30 }, -/turf/open/floor{ - dir = 5; - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull/northeast, /area/bigredv2/outside/general_store) "aWw" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/camera/autoname{ dir = 1 }, -/turf/open/floor{ - dir = 5; - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull/northeast, /area/bigredv2/outside/general_store) "aWx" = ( /obj/structure/machinery/light, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 5; - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull/northeast, /area/bigredv2/outside/general_store) "aWy" = ( -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/bigredv2/outside/telecomm/n_cave) "aWz" = ( /obj/structure/showcase{ @@ -17667,10 +12393,7 @@ name = "General Listening Channel"; pixel_x = 30 }, -/turf/open/floor{ - dir = 5; - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull/northeast, /area/bigredv2/outside/general_store) "aWC" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -17678,61 +12401,39 @@ dir = 1; name = "\improper Operations Armory" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/admin_building) "aWD" = ( -/turf/open/floor{ - dir = 8; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/west, /area/bigredv2/outside/admin_building) "aWE" = ( -/turf/open/floor{ - icon_state = "darkbluecorners2" - }, +/turf/open/floor/darkbluecorners2, /area/bigredv2/outside/admin_building) "aWF" = ( /obj/structure/bed/chair/office/dark{ dir = 4 }, -/turf/open/floor{ - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2, /area/bigredv2/outside/admin_building) "aWG" = ( /obj/structure/machinery/computer/communications{ dir = 8 }, /obj/structure/surface/table, -/turf/open/floor{ - dir = 6; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/southeast, /area/bigredv2/outside/admin_building) "aWH" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/north, /area/bigredv2/outside/admin_building) "aWI" = ( -/turf/open/floor{ - dir = 9; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/northwest, /area/bigredv2/outside/c) "aWJ" = ( -/turf/open/mars{ - icon_state = "mars_dirt_3" - }, +/turf/open/mars/mars_dirt_3, /area/bigredv2/outside/c) "aWK" = ( -/turf/open/mars{ - icon_state = "mars_dirt_14" - }, +/turf/open/mars/mars_dirt_14, /area/bigredv2/outside/e) "aWL" = ( /obj/effect/landmark/hunter_secondary, @@ -17741,26 +12442,19 @@ "aWM" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/landmark/crap_item, -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/west, /area/bigredv2/outside/e) "aWN" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves_lambda) "aWO" = ( /obj/structure/reagent_dispensers/virusfood{ pixel_x = -32 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/virology) "aWP" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -17769,9 +12463,7 @@ /obj/structure/machinery/door/airlock/almayer/research/glass/colony{ name = "\improper Virology Lab Chemistry" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/virology) "aWQ" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -17782,32 +12474,23 @@ dir = 8; health = 25000 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/virology) "aWR" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor{ - dir = 8; - icon_state = "warnwhite" - }, +/turf/open/floor/warnwhite/west, /area/bigredv2/outside/virology) "aWS" = ( /obj/structure/surface/table, /obj/item/reagent_container/glass/bottle/toxin, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/bigredv2/outside/virology) "aWT" = ( /obj/structure/bed, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/bigredv2/outside/virology) "aWU" = ( /obj/structure/sink{ @@ -17817,36 +12500,25 @@ /obj/structure/machinery/camera/autoname{ dir = 8 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/bigredv2/outside/virology) "aWV" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/east, /area/bigredv2/outside/w) "aWW" = ( /obj/effect/landmark/crap_item, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/north, /area/bigredv2/outside/c) "aWX" = ( /obj/structure/surface/table, /obj/item/toy/prize/ripley, /obj/item/toy/prize/odysseus, -/turf/open/floor{ - dir = 5; - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull/northeast, /area/bigredv2/outside/general_store) "aWY" = ( /obj/effect/decal/cleanable/dirt, -/obj/item/handcuffs/cable/cyan, +/obj/item/restraint/adjustable/cable/cyan, /turf/open/floor, /area/bigredv2/outside/general_store) "aXb" = ( @@ -17858,9 +12530,7 @@ /area/bigredv2/outside/cargo) "aXc" = ( /obj/structure/machinery/light, -/turf/open/floor/bluegrid{ - icon_state = "bcircuitoff" - }, +/turf/open/floor/bluegrid/bcircuitoff, /area/bigredv2/caves/lambda/research) "aXd" = ( /obj/structure/machinery/light{ @@ -17877,32 +12547,23 @@ dir = 10; icon_state = "p_stair_full" }, -/turf/open/floor{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/north, /area/bigredv2/outside/admin_building) "aXj" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/admin_building) "aXk" = ( /obj/item/prop/alien/hugger, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/admin_building) "aXl" = ( /obj/structure/bed/chair/office/dark{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/admin_building) "aXm" = ( /obj/structure/surface/table, @@ -17914,69 +12575,46 @@ name = "General Listening Channel"; pixel_x = 30 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/east, /area/bigredv2/outside/admin_building) "aXn" = ( /obj/structure/surface/table/woodentable, /obj/item/reagent_container/spray/cleaner, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/admin_building) "aXo" = ( /obj/effect/decal/cleanable/blood{ icon_state = "gib6" }, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/outside/c) "aXq" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper Office Complex" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/office_complex) "aXr" = ( /turf/open/floor, /area/bigredv2/outside/office_complex) -"aXt" = ( -/turf/open/mars_cave{ - icon_state = "mars_dirt_6" - }, -/area/bigredv2/outside/e) "aXu" = ( /obj/structure/machinery/computer/med_data, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/virology) "aXw" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 8; - icon_state = "warnwhite" - }, +/turf/open/floor/warnwhite/west, /area/bigredv2/outside/virology) "aXx" = ( /obj/structure/machinery/door/airlock/almayer/research/glass/colony{ name = "\improper Virology Lab Cell" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/virology) "aXy" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/bigredv2/outside/virology) "aXz" = ( /obj/structure/toilet{ @@ -17985,42 +12623,28 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/bigredv2/outside/virology) "aXA" = ( -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/east, /area/bigredv2/outside/w) "aXB" = ( /obj/structure/surface/table, /obj/item/toy/prize/mauler, /obj/item/toy/prize/odysseus, -/turf/open/floor{ - dir = 5; - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull/northeast, /area/bigredv2/outside/general_store) "aXC" = ( /obj/structure/surface/table, /obj/structure/machinery/light, /obj/item/toy/prize/ripley, /obj/item/toy/prize/odysseus, -/turf/open/floor{ - dir = 5; - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull/northeast, /area/bigredv2/outside/general_store) "aXD" = ( /obj/structure/surface/table, /obj/item/toy/prize/mauler, -/turf/open/floor{ - dir = 5; - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull/northeast, /area/bigredv2/outside/general_store) "aXE" = ( /obj/structure/surface/table, @@ -18029,42 +12653,24 @@ /obj/structure/machinery/camera/autoname{ dir = 1 }, -/turf/open/floor{ - dir = 5; - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull/northeast, /area/bigredv2/outside/general_store) "aXG" = ( /obj/structure/surface/table, /obj/item/toy/sword, /obj/item/toy/gun, -/turf/open/floor{ - dir = 5; - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull/northeast, /area/bigredv2/outside/general_store) "aXH" = ( /turf/open/floor/plating, /area/bigredv2/outside/cargo) -"aXJ" = ( -/obj/structure/machinery/door/airlock/almayer/maint/colony{ - name = "\improper General Store Storage" - }, -/turf/open/floor/plating, -/area/bigredv2/outside/cargo) "aXL" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/west, /area/bigredv2/outside/admin_building) "aXM" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 4; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/east, /area/bigredv2/outside/admin_building) "aXN" = ( /obj/structure/surface/table, @@ -18075,31 +12681,21 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor{ - dir = 10; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/southwest, /area/bigredv2/outside/admin_building) "aXO" = ( /obj/item/prop/alien/hugger, -/turf/open/floor{ - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2, /area/bigredv2/outside/admin_building) "aXP" = ( /obj/structure/surface/table, /obj/item/tool/pen, -/turf/open/floor{ - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2, /area/bigredv2/outside/admin_building) "aXQ" = ( /obj/structure/surface/table, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - dir = 6; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/southeast, /area/bigredv2/outside/admin_building) "aXS" = ( /obj/structure/machinery/vending/snack, @@ -18123,21 +12719,10 @@ /turf/open/floor, /area/bigredv2/outside/office_complex) "aXW" = ( -/turf/open/floor{ - dir = 5; - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/e) -"aXX" = ( -/turf/open/mars_cave{ - icon_state = "mars_dirt_5" - }, +/turf/open/floor/asteroidwarning/northeast, /area/bigredv2/outside/e) "aXY" = ( -/turf/open/floor{ - dir = 10; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/southwest, /area/bigredv2/outside/w) "aXZ" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -18145,61 +12730,38 @@ dir = 1; name = "\improper General Store Maintenance" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/general_store) "aYc" = ( /obj/structure/machinery/light, /turf/open/floor/plating, /area/bigredv2/outside/cargo) -"aYe" = ( -/obj/structure/surface/rack, -/turf/open/floor/plating, -/area/bigredv2/outside/cargo) -"aYf" = ( -/obj/structure/machinery/light, -/obj/structure/surface/rack, -/turf/open/floor/plating, -/area/bigredv2/outside/cargo) "aYh" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 8; - icon_state = "darkredcorners2" - }, +/turf/open/floor/darkredcorners2/west, /area/bigredv2/outside/admin_building) "aYi" = ( /obj/effect/spawner/random/toolbox, /obj/structure/platform_decoration, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/admin_building) "aYk" = ( /obj/effect/landmark/survivor_spawner, /obj/structure/platform_decoration{ dir = 1 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/admin_building) "aYl" = ( /obj/item/cell/hyper/empty, -/turf/open/floor{ - dir = 4; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/east, /area/bigredv2/outside/admin_building) "aYm" = ( /obj/structure/machinery/door/airlock/almayer/command/colony{ dir = 1; name = "\improper Operations Office" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/admin_building) "aYo" = ( /obj/effect/decal/warning_stripes{ @@ -18207,18 +12769,13 @@ pixel_y = -1 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 5; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/northeast, /area/bigredv2/outside/admin_building) "aYp" = ( /obj/structure/machinery/door/airlock/almayer/generic{ name = "\improper Operations Toilet" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/admin_building) "aYq" = ( /obj/effect/landmark/objective_landmark/far, @@ -18229,9 +12786,7 @@ /obj/structure/mirror{ pixel_y = 29 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/bigredv2/outside/admin_building) "aYr" = ( /obj/structure/toilet{ @@ -18241,9 +12796,7 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/bigredv2/outside/admin_building) "aYs" = ( /obj/structure/machinery/vending/cola, @@ -18268,45 +12821,17 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, -/area/bigredv2/outside/e) -"aYw" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 4 - }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/e) "aYx" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/e) -"aYy" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 10 - }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/north, /area/bigredv2/outside/e) "aYA" = ( /obj/structure/closet/l3closet/virology, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/virology) "aYB" = ( /obj/structure/closet/l3closet/virology, @@ -18315,14 +12840,10 @@ /area/bigredv2/outside/virology) "aYC" = ( /obj/structure/surface/table, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/bigredv2/outside/virology) "aYE" = ( -/turf/open/mars{ - icon_state = "mars_dirt_12" - }, +/turf/open/mars/mars_dirt_12, /area/bigredv2/outside/w) "aYF" = ( /turf/open/mars, @@ -18355,40 +12876,28 @@ /turf/open/floor/plating, /area/bigredv2/outside/cargo) "aYK" = ( -/turf/open/mars{ - icon_state = "mars_dirt_14" - }, +/turf/open/mars/mars_dirt_14, /area/bigredv2/outside/c) "aYL" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/admin_building) "aYM" = ( /obj/item/prop/alien/hugger, -/turf/open/floor{ - dir = 4; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/east, /area/bigredv2/outside/admin_building) "aYN" = ( /obj/structure/machinery/door/airlock/almayer/command/colony{ dir = 1; name = "\improper Operations Meeting Room" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/admin_building) "aYO" = ( /turf/open/floor, /area/bigredv2/outside/admin_building) "aYS" = ( -/turf/open/floor{ - dir = 4; - icon_state = "darkredcorners2" - }, +/turf/open/floor/darkredcorners2/east, /area/bigredv2/outside/admin_building) "aYT" = ( /obj/structure/machinery/atm{ @@ -18396,50 +12905,32 @@ pixel_y = 30 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/north, /area/bigredv2/outside/admin_building) "aYU" = ( /obj/structure/machinery/light{ dir = 1 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/north, /area/bigredv2/outside/admin_building) "aYV" = ( /obj/effect/landmark/crap_item, -/turf/open/floor{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/north, /area/bigredv2/outside/admin_building) "aYW" = ( -/turf/open/floor{ - dir = 1; - icon_state = "darkredcorners2" - }, +/turf/open/floor/darkredcorners2/north, /area/bigredv2/outside/admin_building) "aYX" = ( /obj/structure/machinery/robotic_fabricator, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/office_complex) "aYY" = ( -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/office_complex) "aYZ" = ( /obj/structure/machinery/mech_bay_recharge_port, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/office_complex) "aZa" = ( /obj/effect/decal/mecha_wreckage/ripley/firefighter, @@ -18447,9 +12938,7 @@ /area/bigredv2/outside/office_complex) "aZb" = ( /obj/structure/machinery/mecha_part_fabricator, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/office_complex) "aZc" = ( /obj/structure/surface/table, @@ -18464,33 +12953,24 @@ /area/bigredv2/outside/office_complex) "aZe" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/west, /area/bigredv2/outside/e) "aZh" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper Chapel" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/chapel) "aZi" = ( -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/chapel) "aZj" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/virology) "aZk" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -18499,19 +12979,14 @@ /obj/structure/machinery/door/airlock/almayer/research/colony{ name = "\improper Virology Lab Decontamination" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/virology) "aZl" = ( /obj/structure/machinery/light, /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor{ - dir = 8; - icon_state = "warnwhite" - }, +/turf/open/floor/warnwhite/west, /area/bigredv2/outside/virology) "aZm" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -18529,18 +13004,6 @@ /obj/effect/landmark/objective_landmark/medium, /turf/open/floor, /area/bigredv2/outside/cargo) -"aZp" = ( -/turf/open/floor{ - dir = 9; - icon_state = "red" - }, -/area/bigredv2/outside/marshal_office) -"aZq" = ( -/turf/open/floor{ - dir = 1; - icon_state = "red" - }, -/area/bigredv2/outside/marshal_office) "aZr" = ( /obj/structure/surface/table, /obj/effect/spawner/random/toolbox, @@ -18583,15 +13046,10 @@ dir = 8 }, /obj/item/prop/alien/hugger, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/admin_building) "aZA" = ( -/turf/open/floor{ - dir = 8; - icon_state = "carpet15-15" - }, +/turf/open/floor/carpet15_15/west, /area/bigredv2/outside/admin_building) "aZB" = ( /obj/structure/bed/chair/comfy/black, @@ -18601,64 +13059,34 @@ /turf/open/floor/carpet, /area/bigredv2/outside/admin_building) "aZE" = ( -/turf/open/floor{ - icon_state = "warnwhite" - }, +/turf/open/floor/warnwhite, /area/bigredv2/outside/office_complex) "aZF" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 8; - icon_state = "redcorner" - }, +/turf/open/floor/redcorner/west, /area/bigredv2/outside/office_complex) "aZG" = ( /obj/structure/sign/safety/galley{ pixel_x = 32 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "redcorner" - }, +/turf/open/floor/redcorner, /area/bigredv2/outside/office_complex) "aZH" = ( /obj/structure/closet/wardrobe/chaplain_black, -/turf/open/floor{ - icon_state = "cult" - }, -/area/bigredv2/outside/chapel) -"aZI" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 6 - }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/cult, /area/bigredv2/outside/chapel) "aZJ" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 6; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/southeast, /area/bigredv2/outside/filtration_plant) -"aZK" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 9 - }, -/turf/open/floor{ - icon_state = "dark" - }, -/area/bigredv2/outside/chapel) "aZL" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/machinery/door/airlock/almayer/maint/colony{ dir = 1; name = "\improper General Store Maintenance" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/cargo) "aZM" = ( /obj/effect/landmark/crap_item, @@ -18668,13 +13096,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor, /area/bigredv2/outside/cargo) -"aZP" = ( -/obj/structure/machinery/camera/autoname, -/turf/open/floor{ - dir = 5; - icon_state = "red" - }, -/area/bigredv2/outside/marshal_office) "aZQ" = ( /obj/structure/surface/table, /obj/item/tool/lighter/random, @@ -18697,9 +13118,7 @@ /obj/structure/machinery/camera/autoname{ dir = 1 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/admin_building) "aZT" = ( /obj/structure/surface/table, @@ -18716,26 +13135,19 @@ /obj/structure/surface/table, /obj/effect/spawner/random/tool, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/west, /area/bigredv2/outside/filtration_plant) "aZW" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "darkredcorners2" - }, +/turf/open/floor/darkredcorners2, /area/bigredv2/outside/admin_building) "aZX" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "darkred2" - }, +/turf/open/floor/darkred2, /area/bigredv2/outside/admin_building) "aZY" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -18747,150 +13159,92 @@ pixel_y = -32 }, /obj/effect/landmark/good_item, -/turf/open/floor{ - icon_state = "darkred2" - }, +/turf/open/floor/darkred2, /area/bigredv2/outside/admin_building) "aZZ" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/admin_building) "baa" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/c) "bac" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/office_complex) "bad" = ( /obj/item/device/analyzer, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/office_complex) "bae" = ( /obj/structure/machinery/camera/autoname, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/office_complex) "baf" = ( /obj/structure/surface/table, /obj/item/cell/hyper, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/office_complex) "bag" = ( /obj/structure/surface/table, /obj/item/reagent_container/glass/beaker/sulphuric, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/office_complex) "bah" = ( /obj/structure/surface/table, /obj/effect/spawner/random/toolbox, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/office_complex) "bai" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "redcorner" - }, +/turf/open/floor/redcorner, /area/bigredv2/outside/office_complex) "baj" = ( /obj/structure/bed/chair/office/light, /turf/open/floor, /area/bigredv2/outside/office_complex) "bal" = ( -/turf/open/floor{ - icon_state = "cult" - }, +/turf/open/floor/cult, /area/bigredv2/outside/chapel) "bam" = ( -/turf/open/floor{ - dir = 1; - icon_state = "rampbottom" - }, +/turf/open/floor/rampbottom/north, /area/bigredv2/outside/chapel) "ban" = ( /obj/structure/surface/table/woodentable, /obj/item/device/radio/headset, -/turf/open/floor{ - icon_state = "cult" - }, +/turf/open/floor/cult, /area/bigredv2/outside/chapel) "bao" = ( -/turf/open/floor{ - dir = 1; - icon_state = "chapel" - }, +/turf/open/floor/chapel/north, /area/bigredv2/outside/chapel) "bap" = ( /obj/structure/bed/chair/wood/normal{ dir = 8 }, -/turf/open/floor{ - dir = 4; - icon_state = "chapel" - }, +/turf/open/floor/chapel/east, /area/bigredv2/outside/chapel) "baq" = ( /obj/structure/bed/chair/wood/normal{ dir = 8 }, /obj/effect/landmark/crap_item, -/turf/open/floor{ - dir = 1; - icon_state = "chapel" - }, +/turf/open/floor/chapel/north, /area/bigredv2/outside/chapel) "bar" = ( /obj/structure/bed/chair/wood/normal{ dir = 8 }, -/turf/open/floor{ - dir = 1; - icon_state = "chapel" - }, -/area/bigredv2/outside/chapel) -"bas" = ( -/obj/structure/bed/chair/wood/normal{ - dir = 8 - }, -/obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 1; - icon_state = "chapel" - }, +/turf/open/floor/chapel/north, /area/bigredv2/outside/chapel) "bat" = ( -/turf/open/floor{ - dir = 4; - icon_state = "chapel" - }, +/turf/open/floor/chapel/east, /area/bigredv2/outside/chapel) -"bax" = ( -/turf/open/mars{ - icon_state = "mars_dirt_11" - }, -/area/bigredv2/outside/w) "bay" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 @@ -18937,10 +13291,7 @@ /turf/open/floor, /area/bigredv2/outside/cargo) "baF" = ( -/turf/open/floor{ - dir = 1; - icon_state = "bot" - }, +/turf/open/floor/bot/north, /area/bigredv2/outside/cargo) "baG" = ( /obj/structure/bed/chair/comfy/blue{ @@ -18952,9 +13303,7 @@ /obj/structure/machinery/door/airlock/multi_tile/almayer/comdoor/colony{ name = "\improper Operations" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/admin_building) "baJ" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -18965,29 +13314,21 @@ /obj/structure/surface/rack, /obj/effect/spawner/random/tech_supply, /obj/effect/spawner/random/tech_supply, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/office_complex) "baL" = ( /obj/effect/decal/cleanable/dirt, /obj/item/trash/hotdog, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/office_complex) "baM" = ( /obj/effect/decal/cleanable/dirt, /obj/item/folder/black, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/office_complex) "baN" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/mars_cave{ - icon_state = "mars_cave_10" - }, +/turf/open/mars_cave/mars_cave_10, /area/bigredv2/caves_sw) "baO" = ( /obj/structure/machinery/light{ @@ -19002,57 +13343,32 @@ /area/bigredv2/outside/office_complex) "baR" = ( /obj/structure/surface/table/woodentable, -/turf/open/floor{ - icon_state = "cult" - }, +/turf/open/floor/cult, /area/bigredv2/outside/chapel) "baS" = ( -/turf/open/floor{ - dir = 8; - icon_state = "chapel" - }, +/turf/open/floor/chapel/west, /area/bigredv2/outside/chapel) "baT" = ( /obj/structure/bed/chair/wood/normal{ dir = 8 }, -/turf/open/floor{ - icon_state = "chapel" - }, +/turf/open/floor/chapel, /area/bigredv2/outside/chapel) "baU" = ( /obj/structure/bed/chair/wood/normal{ dir = 8 }, -/turf/open/floor{ - dir = 8; - icon_state = "chapel" - }, -/area/bigredv2/outside/chapel) -"baV" = ( -/obj/structure/pipes/standard/simple/hidden/green, -/obj/structure/bed/chair/wood/normal{ - dir = 8 - }, -/turf/open/floor{ - dir = 8; - icon_state = "chapel" - }, +/turf/open/floor/chapel/west, /area/bigredv2/outside/chapel) "baW" = ( -/turf/open/floor{ - icon_state = "chapel" - }, +/turf/open/floor/chapel, /area/bigredv2/outside/chapel) "bba" = ( /obj/effect/decal/cleanable/blood{ dir = 4; icon_state = "gib6" }, -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/east, /area/bigredv2/outside/w) "bbb" = ( /obj/effect/decal/cleanable/blood{ @@ -19062,9 +13378,7 @@ /turf/open/mars, /area/bigredv2/outside/w) "bbc" = ( -/turf/open/mars{ - icon_state = "mars_dirt_13" - }, +/turf/open/mars/mars_dirt_13, /area/bigredv2/outside/w) "bbe" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -19080,9 +13394,7 @@ dir = 1; name = "\improper Cargo Bay" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/cargo) "bbh" = ( /obj/effect/landmark/survivor_spawner, @@ -19106,10 +13418,7 @@ dir = 4 }, /obj/effect/spawner/random/toolbox, -/turf/open/floor{ - dir = 4; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/east, /area/bigredv2/outside/admin_building) "bbl" = ( /obj/structure/bed/chair{ @@ -19118,28 +13427,20 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - dir = 8; - icon_state = "carpet7-3" - }, +/turf/open/floor/carpet7_3/west, /area/bigredv2/outside/admin_building) "bbm" = ( /obj/structure/surface/table, /obj/structure/machinery/computer/med_data/laptop{ dir = 4 }, -/turf/open/floor{ - dir = 8; - icon_state = "carpet15-15" - }, +/turf/open/floor/carpet15_15/west, /area/bigredv2/outside/admin_building) "bbn" = ( /obj/structure/safe, /obj/effect/landmark/objective_landmark/close, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/admin_building) "bbo" = ( /obj/structure/bed/chair/comfy/blue, @@ -19179,26 +13480,20 @@ /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/office_complex) "bbt" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/office_complex) "bbu" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/office_complex) "bbv" = ( /obj/effect/decal/cleanable/blood, @@ -19207,9 +13502,7 @@ dir = 4 }, /obj/effect/landmark/crap_item, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/office_complex) "bbw" = ( /obj/effect/decal/cleanable/dirt, @@ -19217,9 +13510,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/office_complex) "bbx" = ( /obj/effect/decal/cleanable/dirt, @@ -19227,39 +13518,28 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/office_complex) "bby" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/office_complex) "bbz" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/office_complex) "bbA" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 8; - icon_state = "redcorner" - }, +/turf/open/floor/redcorner/west, /area/bigredv2/outside/office_complex) "bbB" = ( -/turf/open/floor{ - icon_state = "redcorner" - }, +/turf/open/floor/redcorner, /area/bigredv2/outside/office_complex) "bbC" = ( /obj/structure/bed/chair/office/light{ @@ -19271,9 +13551,7 @@ /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor{ - icon_state = "cult" - }, +/turf/open/floor/cult, /area/bigredv2/outside/chapel) "bbE" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -19282,45 +13560,33 @@ /obj/structure/surface/table/woodentable, /obj/item/storage/bible, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor{ - icon_state = "cult" - }, +/turf/open/floor/cult, /area/bigredv2/outside/chapel) "bbF" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/chapel) "bbG" = ( /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/chapel) "bbH" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/landmark/crap_item, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/chapel) "bbI" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/chapel) "bbJ" = ( -/turf/open/mars{ - icon_state = "mars_dirt_14" - }, +/turf/open/mars/mars_dirt_14, /area/bigredv2/outside/w) "bbM" = ( /obj/structure/machinery/camera/autoname{ @@ -19374,9 +13640,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/admin_building) "bbW" = ( /obj/structure/bed/chair{ @@ -19385,16 +13649,11 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - dir = 8; - icon_state = "carpet7-3" - }, +/turf/open/floor/carpet7_3/west, /area/bigredv2/outside/admin_building) "bbY" = ( /obj/structure/bed/chair/comfy/blue, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/admin_building) "bbZ" = ( /obj/structure/surface/table, @@ -19404,9 +13663,7 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/admin_building) "bca" = ( /obj/structure/machinery/camera/autoname{ @@ -19416,14 +13673,10 @@ /area/bigredv2/outside/admin_building) "bcb" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "grimy" - }, +/turf/open/floor/grimy, /area/bigredv2/outside/admin_building) "bcc" = ( -/turf/open/floor{ - icon_state = "grimy" - }, +/turf/open/floor/grimy, /area/bigredv2/outside/admin_building) "bcd" = ( /obj/effect/landmark/survivor_spawner, @@ -19432,114 +13685,67 @@ "bce" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/tech_supply, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/office_complex) "bcf" = ( /obj/structure/machinery/light, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/office_complex) "bcg" = ( /obj/effect/decal/cleanable/liquid_fuel, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/bigredv2/outside/engineering) "bch" = ( /obj/structure/surface/table, /obj/item/clipboard, -/turf/open/floor{ - icon_state = "warnwhite" - }, +/turf/open/floor/warnwhite, /area/bigredv2/outside/office_complex) "bci" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "warnwhite" - }, +/turf/open/floor/warnwhite, /area/bigredv2/outside/office_complex) "bcj" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor{ - icon_state = "redcorner" - }, +/turf/open/floor/redcorner, /area/bigredv2/outside/office_complex) "bck" = ( /obj/structure/machinery/door/airlock/almayer/generic{ dir = 1; name = "\improper Private Office" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/office_complex) "bcl" = ( /obj/structure/bed/chair/wood/normal{ dir = 8 }, /obj/effect/landmark/survivor_spawner, -/turf/open/floor{ - dir = 4; - icon_state = "chapel" - }, +/turf/open/floor/chapel/east, /area/bigredv2/outside/chapel) "bcn" = ( /obj/effect/landmark/crap_item, -/turf/open/mars_cave{ - icon_state = "mars_cave_6" - }, +/turf/open/mars_cave/mars_cave_6, /area/bigredv2/caves_virology) "bco" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/virology) -"bcp" = ( -/turf/open/mars{ - icon_state = "mars_dirt_10" - }, -/area/bigredv2/outside/w) "bcq" = ( /obj/effect/landmark/crap_item, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/north, /area/bigredv2/outside/w) -"bcr" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/cargo) -"bcs" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, -/area/bigredv2/outside/cargo) "bct" = ( /obj/structure/barricade/wooden{ desc = "This barricade is heavily reinforced. Nothing short of blasting it open seems like it'll do the trick, that or melting the breams supporting it..."; dir = 8; health = 25000 }, -/turf/open/floor{ - dir = 4; - icon_state = "loadingarea" - }, +/turf/open/floor/loadingarea/east, /area/bigredv2/outside/cargo) "bcu" = ( /obj/structure/barricade/wooden{ @@ -19547,9 +13753,7 @@ dir = 8; health = 25000 }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/cargo) "bcv" = ( /obj/effect/decal/cleanable/blood, @@ -19609,9 +13813,7 @@ dir = 1; name = "\improper Cargo Bay Offices" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/cargo) "bcE" = ( /obj/structure/surface/table, @@ -19640,27 +13842,19 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/admin_building) "bcI" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/west, /area/bigredv2/outside/admin_building) "bcJ" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/west, /area/bigredv2/outside/admin_building) "bcK" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -19669,36 +13863,24 @@ /obj/structure/machinery/door/airlock/almayer/command/colony{ name = "\improper Operations Office" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/admin_building) "bcL" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/admin_building) "bcM" = ( -/turf/open/floor{ - dir = 8; - icon_state = "carpet5-1" - }, +/turf/open/floor/carpet5_1/west, /area/bigredv2/outside/admin_building) "bcN" = ( -/turf/open/floor{ - dir = 8; - icon_state = "carpet13-5" - }, +/turf/open/floor/carpet13_5/west, /area/bigredv2/outside/admin_building) "bcO" = ( /obj/structure/surface/table, /obj/item/clothing/mask/cigarette/cigar, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/admin_building) "bcP" = ( /obj/structure/surface/table, @@ -19706,9 +13888,7 @@ density = 0; req_one_access_txt = "200" }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/admin_building) "bcQ" = ( /obj/structure/machinery/vending/cola, @@ -19718,26 +13898,20 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor{ - icon_state = "grimy" - }, +/turf/open/floor/grimy, /area/bigredv2/outside/admin_building) "bcS" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "grimy" - }, +/turf/open/floor/grimy, /area/bigredv2/outside/admin_building) "bcT" = ( /obj/effect/landmark/crap_item, /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "grimy" - }, +/turf/open/floor/grimy, /area/bigredv2/outside/admin_building) "bcU" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -19751,6 +13925,10 @@ }, /turf/open/floor/plating, /area/bigredv2/outside/admin_building) +"bcW" = ( +/obj/effect/landmark/lv624/xeno_tunnel, +/turf/open/mars, +/area/bigredv2/outside/space_port_lz2) "bcX" = ( /obj/structure/pipes/standard/simple/hidden/green, /turf/open/floor, @@ -19780,20 +13958,10 @@ /turf/open/floor, /area/bigredv2/outside/office_complex) "bdd" = ( -/turf/open/floor{ - icon_state = "rampbottom" - }, +/turf/open/floor/rampbottom, /area/bigredv2/outside/chapel) -"bdf" = ( -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, -/area/bigredv2/outside/cargo) "bdg" = ( -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/cargo) "bdh" = ( /obj/effect/spawner/random/tool, @@ -19811,27 +13979,19 @@ dir = 1; name = "\improper Cargo Bay Offices" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/cargo) "bdk" = ( /obj/effect/landmark/crap_item, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/outside/c) "bdl" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "darkred2" - }, +/turf/open/floor/darkred2, /area/bigredv2/outside/admin_building) "bdm" = ( /obj/structure/surface/table/woodentable, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/admin_building) "bdn" = ( /obj/structure/machinery/light{ @@ -19839,30 +13999,20 @@ }, /obj/structure/surface/table/woodentable, /obj/item/device/camera, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/admin_building) "bdo" = ( -/turf/open/floor{ - dir = 10; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/southwest, /area/bigredv2/outside/admin_building) "bdp" = ( /obj/effect/decal/cleanable/dirt, /obj/item/prop/alien/hugger, -/turf/open/floor{ - dir = 6; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/southeast, /area/bigredv2/outside/admin_building) "bdq" = ( /obj/structure/surface/table, /obj/item/trash/snack_bowl, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/admin_building) "bdr" = ( /obj/structure/machinery/vending/snack, @@ -19871,9 +14021,7 @@ /area/bigredv2/outside/admin_building) "bds" = ( /obj/effect/spawner/random/toolbox, -/turf/open/floor{ - icon_state = "grimy" - }, +/turf/open/floor/grimy, /area/bigredv2/outside/admin_building) "bdt" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -19881,23 +14029,17 @@ /area/bigredv2/outside/admin_building) "bdu" = ( /obj/structure/machinery/photocopier, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/office_complex) "bdv" = ( /obj/effect/decal/cleanable/blood, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/office_complex) "bdx" = ( /obj/structure/surface/table, /obj/effect/spawner/random/tech_supply, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/office_complex) "bdy" = ( /obj/structure/bed/chair/comfy/lime{ @@ -19924,9 +14066,7 @@ /obj/structure/machinery/door/airlock/almayer/generic{ name = "\improper Private Office" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/office_complex) "bdD" = ( /obj/structure/machinery/light{ @@ -19944,30 +14084,22 @@ name = "Storm Shutters"; pixel_x = -32 }, -/turf/open/floor{ - icon_state = "cult" - }, +/turf/open/floor/cult, /area/bigredv2/outside/chapel) "bdF" = ( /obj/structure/machinery/light, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/chapel) "bdG" = ( /obj/structure/machinery/power/apc, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/chapel) "bdI" = ( /obj/structure/machinery/alarm{ dir = 1; pixel_y = -30 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/chapel) "bdK" = ( /obj/structure/largecrate, @@ -19989,15 +14121,11 @@ /area/bigredv2/outside/cargo) "bdO" = ( /obj/structure/machinery/vending/coffee, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/admin_building) "bdP" = ( /obj/structure/machinery/photocopier, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/admin_building) "bdU" = ( /obj/structure/machinery/door_control{ @@ -20006,10 +14134,7 @@ pixel_x = -32 }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 8; - icon_state = "redcorner" - }, +/turf/open/floor/redcorner/west, /area/bigredv2/outside/office_complex) "bdW" = ( /obj/structure/bed/chair{ @@ -20025,24 +14150,8 @@ /turf/open/floor, /area/bigredv2/outside/office_complex) "bdZ" = ( -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/w) -"beb" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/structure/barricade/wooden{ - desc = "This barricade is heavily reinforced. Nothing short of blasting it open seems like it'll do the trick, that or melting the breams supporting it..."; - dir = 8; - health = 25000 - }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, -/area/bigredv2/outside/cargo) "bec" = ( /obj/effect/decal/cleanable/blood, /turf/open/floor, @@ -20086,52 +14195,35 @@ /obj/structure/machinery/door/airlock/multi_tile/almayer/comdoor/colony{ name = "\improper Operations" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/admin_building) "bek" = ( /obj/structure/machinery/deployable/barrier, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/admin_building) "bel" = ( /obj/structure/machinery/autolathe, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/office_complex) "bem" = ( /obj/item/device/taperecorder, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/office_complex) "ben" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper Robotics" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/office_complex) "bep" = ( -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/east, /area/bigredv2/outside/se) "beq" = ( -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/outside/se) "ber" = ( -/turf/open/mars{ - icon_state = "mars_dirt_14" - }, +/turf/open/mars/mars_dirt_14, /area/bigredv2/outside/se) "bes" = ( /turf/open/mars, @@ -20139,40 +14231,22 @@ "bet" = ( /obj/effect/landmark/xeno_spawn, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves_east) "beu" = ( /obj/effect/landmark/hunter_primary, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/bigredv2/outside/w) "bev" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/bigredv2/outside/w) -"bew" = ( -/turf/open/floor{ - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/cargo) "bex" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, /turf/open/floor, /area/bigredv2/outside/cargo) -"bey" = ( -/obj/structure/closet/emcloset, -/obj/structure/pipes/vents/pump{ - dir = 8 - }, -/turf/open/floor, -/area/bigredv2/outside/cargo) "bez" = ( /obj/structure/machinery/autolathe, /turf/open/floor, @@ -20185,70 +14259,44 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/c) "beC" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/c) "beE" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/c) "beF" = ( /obj/structure/barricade/wooden, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/bigredv2/outside/c) "beG" = ( /obj/structure/barricade/wooden, -/turf/open/floor{ - dir = 6; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/southeast, /area/bigredv2/outside/c) "beH" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 8; - icon_state = "redcorner" - }, +/turf/open/floor/redcorner/west, /area/bigredv2/outside/office_complex) "beI" = ( -/turf/open/floor{ - dir = 4; - icon_state = "redcorner" - }, +/turf/open/floor/redcorner/east, /area/bigredv2/outside/office_complex) "beJ" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 4; - icon_state = "redcorner" - }, +/turf/open/floor/redcorner/east, /area/bigredv2/outside/office_complex) "beK" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/camera/autoname, -/turf/open/floor{ - dir = 4; - icon_state = "redcorner" - }, +/turf/open/floor/redcorner/east, /area/bigredv2/outside/office_complex) "beL" = ( /obj/effect/decal/cleanable/dirt, @@ -20267,37 +14315,15 @@ /obj/structure/sign/prop3{ pixel_y = 32 }, -/turf/open/floor{ - dir = 4; - icon_state = "redcorner" - }, +/turf/open/floor/redcorner/east, /area/bigredv2/outside/office_complex) "beP" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/outside/w) "beQ" = ( -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/bigredv2/outside/w) -"beR" = ( -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, -/area/bigredv2/outside/cargo) -"beS" = ( -/obj/structure/machinery/light{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/cargo) "beT" = ( /obj/structure/machinery/light{ dir = 8 @@ -20305,18 +14331,14 @@ /turf/open/floor, /area/bigredv2/outside/cargo) "beU" = ( -/turf/open/floor{ - icon_state = "loadingarea" - }, +/turf/open/floor/loadingarea, /area/bigredv2/outside/cargo) "beV" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper Cargo Offices" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/cargo) "beW" = ( /obj/structure/machinery/computer/cameras, @@ -20331,29 +14353,20 @@ /area/bigredv2/outside/cargo) "beY" = ( /obj/effect/decal/cleanable/blood, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/outside/c) "beZ" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/west, /area/bigredv2/outside/c) "bfb" = ( /obj/structure/barricade/wooden, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/outside/c) "bfc" = ( /obj/structure/barricade/wooden, -/turf/open/mars{ - icon_state = "mars_dirt_10" - }, +/turf/open/mars/mars_dirt_10, /area/bigredv2/outside/c) "bfd" = ( /obj/structure/surface/table, @@ -20362,41 +14375,12 @@ dir = 4 }, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/office_complex) "bfe" = ( /obj/structure/surface/table, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - icon_state = "dark" - }, -/area/bigredv2/outside/office_complex) -"bff" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/turf/open/floor{ - icon_state = "dark" - }, -/area/bigredv2/outside/office_complex) -"bfg" = ( -/obj/structure/pipes/vents/pump{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "dark" - }, -/area/bigredv2/outside/office_complex) -"bfh" = ( -/obj/structure/pipes/standard/manifold/hidden/green{ - dir = 1 - }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/office_complex) "bfi" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -20405,19 +14389,14 @@ /obj/structure/machinery/door/airlock/almayer/generic{ name = "\improper Office Complex Storage" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/office_complex) "bfj" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, /obj/effect/landmark/crap_item, -/turf/open/floor{ - dir = 8; - icon_state = "redcorner" - }, +/turf/open/floor/redcorner/west, /area/bigredv2/outside/office_complex) "bfk" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -20427,9 +14406,7 @@ /area/bigredv2/outside/office_complex) "bfl" = ( /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor{ - icon_state = "redcorner" - }, +/turf/open/floor/redcorner, /area/bigredv2/outside/office_complex) "bfn" = ( /obj/structure/machinery/light, @@ -20437,25 +14414,19 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "redcorner" - }, +/turf/open/floor/redcorner, /area/bigredv2/outside/office_complex) "bfo" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor{ - icon_state = "redcorner" - }, +/turf/open/floor/redcorner, /area/bigredv2/outside/office_complex) "bfp" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "redcorner" - }, +/turf/open/floor/redcorner, /area/bigredv2/outside/office_complex) "bfq" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -20476,25 +14447,19 @@ dir = 4 }, /obj/item/trash/cheesie, -/turf/open/floor{ - icon_state = "redcorner" - }, +/turf/open/floor/redcorner, /area/bigredv2/outside/office_complex) "bft" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "redcorner" - }, +/turf/open/floor/redcorner, /area/bigredv2/outside/office_complex) "bfu" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor{ - icon_state = "redcorner" - }, +/turf/open/floor/redcorner, /area/bigredv2/outside/office_complex) "bfv" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ @@ -20504,16 +14469,11 @@ /turf/open/floor, /area/bigredv2/outside/office_complex) "bfw" = ( -/turf/open/mars{ - icon_state = "mars_dirt_12" - }, +/turf/open/mars/mars_dirt_12, /area/bigredv2/outside/se) "bfy" = ( /obj/structure/largecrate/random, -/turf/open/floor{ - dir = 1; - icon_state = "bot" - }, +/turf/open/floor/bot/north, /area/bigredv2/outside/cargo) "bfz" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -20521,16 +14481,6 @@ }, /turf/open/floor, /area/bigredv2/outside/cargo) -"bfA" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 4 - }, -/obj/structure/closet/emcloset/legacy, -/turf/open/floor{ - dir = 1; - icon_state = "bot" - }, -/area/bigredv2/outside/cargo) "bfB" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 @@ -20542,20 +14492,14 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - dir = 1; - icon_state = "bot" - }, +/turf/open/floor/bot/north, /area/bigredv2/outside/cargo) "bfD" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 1; - icon_state = "bot" - }, +/turf/open/floor/bot/north, /area/bigredv2/outside/cargo) "bfE" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -20565,10 +14509,7 @@ /area/bigredv2/outside/cargo) "bfF" = ( /obj/structure/largecrate, -/turf/open/floor{ - dir = 1; - icon_state = "bot" - }, +/turf/open/floor/bot/north, /area/bigredv2/outside/cargo) "bfG" = ( /obj/structure/bed/chair/office/dark{ @@ -20586,117 +14527,67 @@ /area/bigredv2/outside/cargo) "bfI" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/west, /area/bigredv2/outside/c) "bfJ" = ( /obj/item/trash/raisins, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/office_complex) "bfK" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/office_complex) "bfL" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/office_complex) "bfM" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/office_complex) "bfO" = ( /obj/structure/machinery/light{ dir = 8 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 8; - icon_state = "redcorner" - }, +/turf/open/floor/redcorner/west, /area/bigredv2/outside/office_complex) "bfP" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "redcorner" - }, +/turf/open/floor/redcorner, /area/bigredv2/outside/office_complex) "bfQ" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper Office Complex Janitor Room" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/office_complex) "bfR" = ( -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/bigredv2/outside/office_complex) -"bfT" = ( -/obj/effect/landmark/crap_item, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, -/area/bigredv2/outside/w) -"bfU" = ( -/obj/effect/landmark/hunter_secondary, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, -/area/bigredv2/outside/w) "bfV" = ( /obj/structure/largecrate/random, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 1; - icon_state = "bot" - }, -/area/bigredv2/outside/cargo) -"bfW" = ( -/obj/structure/largecrate, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 1; - icon_state = "bot" - }, +/turf/open/floor/bot/north, /area/bigredv2/outside/cargo) "bfX" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/closet/crate/trashcart, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - dir = 1; - icon_state = "bot" - }, +/turf/open/floor/bot/north, /area/bigredv2/outside/cargo) "bfY" = ( /obj/structure/largecrate/cow, -/turf/open/floor{ - dir = 1; - icon_state = "bot" - }, +/turf/open/floor/bot/north, /area/bigredv2/outside/cargo) "bfZ" = ( /obj/effect/decal/cleanable/dirt, @@ -20712,9 +14603,7 @@ /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ name = "\improper Cargo Bay Security" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/cargo) "bgb" = ( /obj/structure/surface/table, @@ -20725,48 +14614,34 @@ /turf/open/floor, /area/bigredv2/outside/cargo) "bgc" = ( -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/office_complex) "bgd" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/office_complex) "bge" = ( /obj/effect/decal/cleanable/blood/gibs/down, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/office_complex) "bgf" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/office_complex) "bgg" = ( -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/office_complex) "bgh" = ( /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor{ - icon_state = "grimy" - }, +/turf/open/floor/grimy, /area/bigredv2/outside/office_complex) "bgi" = ( /obj/structure/surface/table, /obj/structure/machinery/computer3/laptop/secure_data, -/turf/open/floor{ - icon_state = "grimy" - }, +/turf/open/floor/grimy, /area/bigredv2/outside/office_complex) "bgj" = ( /obj/structure/surface/table, @@ -20774,19 +14649,14 @@ icon_state = "pottedplant_15"; pixel_y = 10 }, -/turf/open/floor{ - icon_state = "grimy" - }, +/turf/open/floor/grimy, /area/bigredv2/outside/office_complex) "bgk" = ( /obj/structure/machinery/alarm{ dir = 4; pixel_x = -30 }, -/turf/open/floor{ - dir = 8; - icon_state = "redcorner" - }, +/turf/open/floor/redcorner/west, /area/bigredv2/outside/office_complex) "bgl" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -20796,46 +14666,29 @@ name = "General Listening Channel"; pixel_x = 30 }, -/turf/open/floor{ - icon_state = "redcorner" - }, +/turf/open/floor/redcorner, /area/bigredv2/outside/office_complex) "bgm" = ( /obj/structure/janitorialcart, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/bigredv2/outside/office_complex) "bgn" = ( /obj/structure/janitorialcart, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/bigredv2/outside/office_complex) "bgo" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/bigredv2/outside/office_complex) "bgp" = ( /obj/item/reagent_container/glass/bucket/mopbucket, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/bigredv2/outside/office_complex) "bgq" = ( /obj/structure/closet/emcloset, -/turf/open/floor{ - dir = 1; - icon_state = "bot" - }, +/turf/open/floor/bot/north, /area/bigredv2/outside/cargo) "bgr" = ( /obj/structure/closet/secure_closet/security, @@ -20844,84 +14697,55 @@ /area/bigredv2/outside/cargo) "bgs" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/office_complex) "bgt" = ( /obj/structure/surface/table, /obj/effect/decal/cleanable/dirt, /obj/item/trash/syndi_cakes, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/office_complex) "bgu" = ( -/turf/open/floor{ - icon_state = "grimy" - }, +/turf/open/floor/grimy, /area/bigredv2/outside/office_complex) "bgv" = ( /obj/structure/surface/table, /obj/item/tool/pen/blue, -/turf/open/floor{ - icon_state = "grimy" - }, +/turf/open/floor/grimy, /area/bigredv2/outside/office_complex) "bgw" = ( /obj/structure/bed/chair/office/light{ dir = 8 }, -/turf/open/floor{ - icon_state = "grimy" - }, +/turf/open/floor/grimy, /area/bigredv2/outside/office_complex) "bgx" = ( -/turf/open/floor{ - dir = 8; - icon_state = "redcorner" - }, +/turf/open/floor/redcorner/west, /area/bigredv2/outside/office_complex) "bgy" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/bigredv2/outside/office_complex) "bgz" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/bigredv2/outside/office_complex) "bgA" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/bigredv2/outside/office_complex) "bgB" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/bigredv2/outside/office_complex) -"bgC" = ( -/obj/effect/landmark/hunter_secondary, -/turf/open/mars, -/area/bigredv2/outside/w) "bgD" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/simple/hidden/green, @@ -20929,10 +14753,7 @@ /area/bigredv2/outside/cargo) "bgE" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 1; - icon_state = "bot" - }, +/turf/open/floor/bot/north, /area/bigredv2/outside/cargo) "bgF" = ( /obj/structure/barricade/wooden{ @@ -20940,10 +14761,7 @@ dir = 4; health = 25000 }, -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/east, /area/bigredv2/outside/c) "bgI" = ( /obj/structure/surface/table, @@ -20951,31 +14769,23 @@ /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/office_complex) "bgJ" = ( /obj/structure/surface/table/reinforced, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/medical) "bgK" = ( /obj/structure/surface/table, /obj/item/device/multitool, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/office_complex) "bgL" = ( /obj/structure/surface/table, /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/office_complex) "bgM" = ( /obj/item/device/radio/intercom{ @@ -20984,39 +14794,29 @@ name = "General Listening Channel"; pixel_x = 30 }, -/turf/open/floor{ - icon_state = "redcorner" - }, +/turf/open/floor/redcorner, /area/bigredv2/outside/office_complex) "bgN" = ( /obj/structure/machinery/camera/autoname{ dir = 4 }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/office_complex) "bgO" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/crap_item, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/office_complex) "bgP" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/machinery/floodlight/landing/floor, -/turf/open/floor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/asteroidplating, /area/bigredv2/outside/space_port) "bgQ" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor{ - icon_state = "grimy" - }, +/turf/open/floor/grimy, /area/bigredv2/outside/office_complex) "bgR" = ( /obj/structure/machinery/door_control{ @@ -21024,10 +14824,7 @@ name = "Storm Shutters"; pixel_x = -32 }, -/turf/open/floor{ - dir = 8; - icon_state = "redcorner" - }, +/turf/open/floor/redcorner/west, /area/bigredv2/outside/office_complex) "bgS" = ( /obj/structure/machinery/light{ @@ -21038,25 +14835,16 @@ /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/bigredv2/outside/office_complex) "bgT" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/crap_item, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/bigredv2/outside/office_complex) "bgU" = ( /obj/item/clothing/shoes/galoshes, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/bigredv2/outside/office_complex) "bgV" = ( /obj/item/device/radio/intercom{ @@ -21065,57 +14853,27 @@ name = "General Listening Channel"; pixel_x = 30 }, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/bigredv2/outside/office_complex) "bgW" = ( -/turf/open/mars{ - icon_state = "mars_dirt_8" - }, +/turf/open/mars/mars_dirt_8, /area/bigredv2/outside/space_port_lz2) "bgX" = ( -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/north, /area/bigredv2/outside/space_port_lz2) "bgZ" = ( /obj/effect/decal/cleanable/dirt, /obj/item/explosive/grenade/high_explosive/frag{ desc = "High-Explosive Fragmenting-Antipersonnel. A small, but deceptively strong fragmentation grenade that has been phasing out the M15 fragmentation grenades alongside the M40 HEDP. Capable of being loaded in the M92 Launcher, or thrown by hand. This one seems to have weird insciptions all over it. You can barely make out 'PrAIs3 thE H3f@ G0d'" }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "bhb" = ( -/turf/open/floor{ - icon_state = "floor4" - }, -/area/bigredv2/outside/cargo) -"bhc" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/pipes/vents/pump/on, -/turf/open/floor{ - icon_state = "floor4" - }, -/area/bigredv2/outside/cargo) -"bhd" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "floor4" - }, +/turf/open/floor/floor4, /area/bigredv2/outside/cargo) "bhe" = ( /obj/structure/machinery/light, -/turf/open/floor{ - dir = 1; - icon_state = "bot" - }, +/turf/open/floor/bot/north, /area/bigredv2/outside/cargo) "bhf" = ( /obj/structure/machinery/power/apc{ @@ -21128,35 +14886,24 @@ /area/bigredv2/outside/c) "bhk" = ( /obj/effect/landmark/survivor_spawner, -/turf/open/floor{ - dir = 8; - icon_state = "redcorner" - }, +/turf/open/floor/redcorner/west, /area/bigredv2/outside/office_complex) "bhl" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor{ - icon_state = "redcorner" - }, +/turf/open/floor/redcorner, /area/bigredv2/outside/office_complex) "bhm" = ( /obj/structure/surface/table, /obj/item/trash/kepler, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/bigredv2/outside/office_complex) "bhn" = ( /obj/effect/decal/cleanable/dirt, /obj/item/tool/lighter/random, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/bigredv2/outside/office_complex) "bhp" = ( /obj/structure/closet/jcloset, @@ -21167,15 +14914,10 @@ /obj/item/clothing/head/beret/jan, /obj/item/clothing/head/beret/jan, /obj/item/clothing/head/beret/jan, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/bigredv2/outside/office_complex) "bhq" = ( -/turf/open/mars{ - icon_state = "mars_dirt_9" - }, +/turf/open/mars/mars_dirt_9, /area/bigredv2/outside/se) "bhr" = ( /obj/effect/landmark/crap_item, @@ -21183,60 +14925,42 @@ /area/bigredv2/outside/se) "bhs" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/mars_cave{ - icon_state = "mars_cave_5" - }, +/turf/open/mars_cave/mars_cave_5, /area/bigredv2/caves_east) "bhu" = ( /obj/structure/machinery/landinglight/ds2/delaytwo, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/bigredv2/outside/space_port_lz2) "bhv" = ( /obj/structure/machinery/landinglight/ds2/delayone, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/bigredv2/outside/space_port_lz2) "bhw" = ( /obj/structure/machinery/landinglight/ds2, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/bigredv2/outside/space_port_lz2) "bhx" = ( /obj/structure/machinery/landinglight/ds2/delaythree, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/bigredv2/outside/space_port_lz2) "bhy" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/landinglight/ds2/delayone, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/bigredv2/outside/space_port_lz2) "bhz" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/landinglight/ds2/delaythree, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/bigredv2/outside/space_port_lz2) "bhA" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/landinglight/ds2/delaytwo, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/bigredv2/outside/space_port_lz2) "bhD" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "floor4" - }, +/turf/open/floor/floor4, /area/bigredv2/outside/cargo) "bhE" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -21245,36 +14969,14 @@ }, /turf/open/floor, /area/bigredv2/outside/cargo) -"bhH" = ( -/turf/open/floor{ - dir = 8; - icon_state = "red" - }, -/area/bigredv2/outside/marshal_office) "bhI" = ( /obj/item/stack/sheet/metal/med_small_stack, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/outside/c) "bhL" = ( /obj/item/prop/helmetgarb/gunoil, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/outside/c) -"bhM" = ( -/turf/open/floor{ - dir = 4; - icon_state = "red" - }, -/area/bigredv2/outside/marshal_office) -"bhN" = ( -/turf/open/floor{ - dir = 10; - icon_state = "red" - }, -/area/bigredv2/outside/marshal_office) "bhO" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 @@ -21289,66 +14991,39 @@ /area/bigredv2/outside/c) "bhQ" = ( /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/west, /area/bigredv2/outside/c) "bhR" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, -/area/bigredv2/outside/c) -"bhS" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 10 - }, -/turf/open/mars{ - icon_state = "mars_dirt_12" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/c) "bhT" = ( /obj/effect/decal/cleanable/blood{ icon_state = "gib6" }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/c) "bhU" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/c) "bhX" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_10" }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/office_complex) "bhY" = ( /obj/structure/flora/pottedplant, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/office_complex) "bhZ" = ( /obj/structure/surface/table, /obj/effect/decal/cleanable/dirt, /obj/item/paper/janitor, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/bigredv2/outside/office_complex) "bia" = ( /obj/structure/noticeboard{ @@ -21356,10 +15031,7 @@ pixel_y = -27 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/bigredv2/outside/office_complex) "bic" = ( /obj/effect/landmark/yautja_teleport, @@ -21369,10 +15041,7 @@ /obj/structure/machinery/landinglight/ds2/delaythree{ dir = 4 }, -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/east, /area/bigredv2/outside/space_port_lz2) "bie" = ( /turf/open/floor/plating, @@ -21381,18 +15050,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "floor4" - }, -/area/bigredv2/outside/cargo) -"bio" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 4 - }, -/obj/structure/machinery/light{ - dir = 1 - }, -/turf/open/floor, +/turf/open/floor/floor4, /area/bigredv2/outside/cargo) "biq" = ( /obj/effect/decal/cleanable/dirt, @@ -21423,33 +15081,23 @@ dir = 4; health = 25000 }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/cargo) "bix" = ( /obj/structure/closet/secure_closet/freezer/fridge, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/bigredv2/outside/hydroponics) "biy" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/north, /area/bigredv2/outside/c) "biz" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/north, /area/bigredv2/outside/c) "biA" = ( /obj/structure/machinery/door_control{ @@ -21457,34 +15105,25 @@ name = "Storm Shutters"; pixel_x = -32 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/marshal_office) "biD" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper Office Complex" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/office_complex) "biE" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper Office Complex Janitor Room" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/office_complex) "biH" = ( /obj/structure/machinery/landinglight/ds2{ dir = 4 }, -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/east, /area/bigredv2/outside/space_port_lz2) "biI" = ( /obj/docking_port/stationary/marine_dropship/lz2{ @@ -21517,36 +15156,27 @@ desc = "This barricade is heavily reinforced. Nothing short of blasting it open seems like it'll do the trick, that or melting the breams supporting it..."; health = 25000 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/c) "biS" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/bigredv2/outside/c) "biT" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/bigredv2/outside/c) "biU" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/bigredv2/outside/c) "biV" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -21555,92 +15185,49 @@ /obj/item/stack/cable_coil/cut, /turf/open/floor/plating, /area/bigredv2/outside/c) -"biX" = ( -/obj/structure/machinery/power/geothermal, -/turf/open/floor/plating, -/area/bigredv2/caves/lambda/xenobiology) "biY" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/north, /area/bigredv2/outside/c) "bja" = ( -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/bigredv2/outside/se) "bjb" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/bigredv2/outside/se) "bjc" = ( -/turf/open/floor{ - dir = 6; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/southeast, /area/bigredv2/outside/se) "bjd" = ( /obj/structure/machinery/landinglight/ds2/delayone{ dir = 4 }, -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/east, /area/bigredv2/outside/space_port_lz2) "bje" = ( /obj/structure/machinery/camera/autoname/lz_camera, /turf/open/floor/plating, /area/bigredv2/outside/space_port_lz2) -"bjg" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "SE-in" - }, -/turf/open/floor, -/area/bigredv2/outside/cargo) -"bjh" = ( -/obj/item/reagent_container/spray/cleaner, -/obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor, -/area/bigredv2/outside/cargo) "bji" = ( /obj/item/reagent_container/glass/bottle/tramadol, /turf/open/floor, /area/bigredv2/outside/cargo) -"bjj" = ( -/turf/open/floor/plating{ - dir = 8; - icon_state = "warnplate" - }, -/area/bigredv2/outside/telecomm/warehouse) "bjk" = ( /obj/effect/landmark/crap_item, -/turf/open/floor{ - icon_state = "redcorner" - }, +/turf/open/floor/redcorner, /area/bigredv2/outside/office_complex) "bjl" = ( -/turf/open/mars{ - icon_state = "mars_dirt_8" - }, +/turf/open/mars/mars_dirt_8, /area/bigredv2/outside/se) "bjm" = ( -/turf/open/mars{ - icon_state = "mars_dirt_3" - }, +/turf/open/mars/mars_dirt_3, /area/bigredv2/outside/se) "bjn" = ( /obj/structure/machinery/landinglight/ds2/delaytwo{ dir = 4 }, -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/east, /area/bigredv2/outside/space_port_lz2) "bjo" = ( /obj/effect/landmark/crap_item, @@ -21651,54 +15238,25 @@ /obj/structure/machinery/landinglight/ds2{ dir = 8 }, -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/west, /area/bigredv2/outside/space_port_lz2) -"bjt" = ( -/obj/effect/decal/warning_stripes, -/obj/structure/machinery/constructable_frame{ - density = 1; - icon_state = "box_1" - }, -/turf/open/floor, -/area/bigredv2/outside/cargo) -"bjv" = ( -/turf/open/floor/plating{ - dir = 4; - icon_state = "warnplate" - }, -/area/bigredv2/outside/telecomm/warehouse) "bjw" = ( -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/s) "bjx" = ( -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/east, /area/bigredv2/outside/s) "bjy" = ( -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/outside/s) "bjz" = ( -/turf/open/mars{ - icon_state = "mars_dirt_12" - }, +/turf/open/mars/mars_dirt_12, /area/bigredv2/outside/s) "bjA" = ( /turf/open/mars, /area/bigredv2/outside/s) "bjB" = ( -/turf/open/mars{ - icon_state = "mars_dirt_8" - }, +/turf/open/mars/mars_dirt_8, /area/bigredv2/outside/s) "bjC" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -21710,68 +15268,47 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/outside/s) "bjE" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/decal/cleanable/blood/oil/streak, -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/west, /area/bigredv2/outside/s) "bjF" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/east, /area/bigredv2/outside/s) "bjG" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/outside/s) "bjH" = ( -/turf/open/mars{ - icon_state = "mars_dirt_10" - }, +/turf/open/mars/mars_dirt_10, /area/bigredv2/outside/s) "bjJ" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - dir = 4; - icon_state = "redcorner" - }, +/turf/open/floor/redcorner/east, /area/bigredv2/outside/office_complex) "bjK" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor{ - dir = 4; - icon_state = "redcorner" - }, +/turf/open/floor/redcorner/east, /area/bigredv2/outside/office_complex) "bjL" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - dir = 4; - icon_state = "redcorner" - }, +/turf/open/floor/redcorner/east, /area/bigredv2/outside/office_complex) "bjM" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -21788,112 +15325,52 @@ /obj/structure/machinery/landinglight/ds2/delaythree{ dir = 8 }, -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/west, /area/bigredv2/outside/space_port_lz2) -"bjP" = ( -/obj/structure/surface/table, -/obj/item/clothing/ears/earmuffs, -/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor, -/area/bigredv2/outside/cargo) -"bjQ" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W-corner" - }, -/turf/open/floor, -/area/bigredv2/outside/cargo) "bjR" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/machinery/door/airlock/almayer/engineering/colony{ dir = 1; name = "\improper Cargo Bay Quartermaster" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/cargo) -"bjX" = ( -/turf/open/floor/plating{ - icon_state = "warnplate" - }, -/area/bigredv2/outside/telecomm/warehouse) "bjY" = ( -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/bigredv2/outside/s) "bjZ" = ( /obj/structure/barricade/wooden, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/c) "bka" = ( -/turf/open/mars{ - icon_state = "mars_dirt_3" - }, +/turf/open/mars/mars_dirt_3, /area/bigredv2/outside/s) "bkb" = ( -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/west, /area/bigredv2/outside/s) "bkc" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/east, /area/bigredv2/outside/s) "bkd" = ( -/turf/open/floor{ - dir = 9; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/northwest, /area/bigredv2/outside/s) -"bke" = ( -/obj/structure/pipes/standard/simple/hidden/green, -/obj/effect/decal/cleanable/dirt, -/turf/open/mars{ - icon_state = "mars_dirt_12" - }, -/area/bigredv2/outside/c) "bkf" = ( /obj/structure/sign/safety/distribution_pipes{ pixel_y = -32 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/c) "bkg" = ( /obj/structure/machinery/light, -/turf/open/floor{ - dir = 8; - icon_state = "redcorner" - }, +/turf/open/floor/redcorner/west, /area/bigredv2/outside/office_complex) "bkh" = ( -/turf/open/mars{ - icon_state = "mars_dirt_13" - }, +/turf/open/mars/mars_dirt_13, /area/bigredv2/outside/se) "bki" = ( -/turf/open/mars{ - icon_state = "mars_dirt_10" - }, +/turf/open/mars/mars_dirt_10, /area/bigredv2/outside/se) -"bkk" = ( -/obj/effect/decal/warning_stripes, -/obj/structure/machinery/constructable_frame, -/turf/open/floor, -/area/bigredv2/outside/cargo) "bkl" = ( /obj/structure/filingcabinet, /obj/effect/landmark/objective_landmark/science, @@ -21908,30 +15385,21 @@ dir = 1; name = "\improper Cargo Bay Storage" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/cargo) "bkp" = ( -/turf/open/mars{ - icon_state = "mars_dirt_9" - }, +/turf/open/mars/mars_dirt_9, /area/bigredv2/outside/s) "bkq" = ( /obj/effect/landmark/crap_item, /turf/open/mars, /area/bigredv2/outside/s) "bkr" = ( -/turf/open/mars{ - icon_state = "mars_dirt_11" - }, +/turf/open/mars/mars_dirt_11, /area/bigredv2/outside/s) "bks" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/west, /area/bigredv2/outside/s) "bku" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -21939,18 +15407,14 @@ dir = 1; name = "\improper Atmospherics Condenser" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/bigredv2/outside/filtration_plant) "bkw" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony{ dir = 1; name = "\improper Atmospherics Condenser" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/bigredv2/outside/filtration_plant) "bkx" = ( /obj/effect/spawner/gibspawner/human, @@ -21959,22 +15423,16 @@ dir = 1; name = "\improper Atmospherics Condenser" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/bigredv2/outside/filtration_plant) "bky" = ( -/turf/open/mars_cave{ - icon_state = "mars_dirt_7" - }, +/turf/open/mars_cave/mars_dirt_7, /area/bigredv2/outside/se) "bkz" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony{ name = "\improper Cargo Bay Quartermaster" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/cargo) "bkA" = ( /obj/structure/bed/chair/office/dark, @@ -21988,60 +15446,40 @@ /turf/open/floor, /area/bigredv2/outside/cargo) "bkC" = ( -/turf/open/mars{ - icon_state = "mars_dirt_13" - }, +/turf/open/mars/mars_dirt_13, /area/bigredv2/outside/s) "bkD" = ( /obj/structure/machinery/vending/sovietsoda{ icon_state = "sovietsoda-broken"; stat = 1 }, -/turf/open/floor{ - dir = 9; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/northwest, /area/bigredv2/outside/filtration_plant) "bkE" = ( -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/bigredv2/outside/filtration_plant) "bkG" = ( /obj/structure/reagent_dispensers/watertank, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/bigredv2/outside/filtration_plant) "bkH" = ( /obj/structure/dispenser/oxygen, -/turf/open/floor{ - dir = 5; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/northeast, /area/bigredv2/outside/filtration_plant) "bkI" = ( /obj/structure/cryofeed/right{ name = "\improper coolant feed" }, -/turf/open/floor/bluegrid{ - icon_state = "bcircuitoff" - }, +/turf/open/floor/bluegrid/bcircuitoff, /area/bigredv2/outside/filtration_plant) "bkJ" = ( /obj/structure/cryofeed, -/turf/open/floor/bluegrid{ - icon_state = "bcircuitoff" - }, +/turf/open/floor/bluegrid/bcircuitoff, /area/bigredv2/outside/filtration_plant) "bkK" = ( /obj/structure/closet/toolcloset, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/bigredv2/outside/filtration_plant) "bkL" = ( /obj/structure/surface/table, @@ -22049,43 +15487,29 @@ dir = 1 }, /obj/item/tank/air, -/turf/open/floor{ - dir = 9; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/northwest, /area/bigredv2/outside/filtration_plant) "bkM" = ( /obj/structure/surface/table, /obj/effect/spawner/random/bomb_supply, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/bigredv2/outside/filtration_plant) "bkN" = ( /obj/structure/surface/table, /obj/effect/spawner/random/tool, -/turf/open/floor{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/west, /area/bigredv2/outside/filtration_plant) "bkO" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/bigredv2/outside/filtration_plant) "bkP" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony{ name = "\improper Atmospherics Condenser Storage" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/bigredv2/outside/filtration_plant) "bkS" = ( /obj/structure/closet/toolcloset, @@ -22093,10 +15517,7 @@ dir = 1 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/bigredv2/outside/filtration_plant) "bkT" = ( /obj/structure/machinery/portable_atmospherics/powered/scrubber/huge/chan, @@ -22106,9 +15527,7 @@ /turf/open/floor/plating, /area/bigredv2/outside/filtration_plant) "bkV" = ( -/turf/open/mars{ - icon_state = "mars_dirt_11" - }, +/turf/open/mars/mars_dirt_11, /area/bigredv2/outside/se) "bkY" = ( /obj/structure/sink{ @@ -22119,21 +15538,8 @@ pixel_x = 30 }, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/caves/lambda/xenobiology) -"blb" = ( -/obj/structure/machinery/blackbox_recorder, -/turf/open/floor, -/area/bigredv2/outside/cargo) -"blc" = ( -/obj/effect/decal/warning_stripes, -/obj/structure/machinery/constructable_frame{ - icon_state = "box_1" - }, -/turf/open/floor, -/area/bigredv2/outside/cargo) "bld" = ( /obj/structure/surface/table, /obj/effect/spawner/random/tech_supply, @@ -22202,73 +15608,48 @@ /turf/open/floor, /area/bigredv2/outside/cargo) "blq" = ( -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/north, /area/bigredv2/outside/s) "blr" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/north, /area/bigredv2/outside/s) "bls" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/camera/autoname{ dir = 1 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/north, /area/bigredv2/outside/s) "blt" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/s) "blu" = ( -/turf/open/floor{ - dir = 5; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/northeast, /area/bigredv2/outside/s) "blv" = ( -/turf/open/mars{ - icon_state = "mars_dirt_14" - }, +/turf/open/mars/mars_dirt_14, /area/bigredv2/outside/s) "blx" = ( /obj/structure/surface/table, /obj/effect/spawner/random/toolbox, /obj/item/tool/extinguisher, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/west, /area/bigredv2/outside/filtration_plant) "bly" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/filtration_plant) "blA" = ( /obj/structure/dispenser/oxygen, /obj/structure/machinery/camera/autoname{ dir = 8 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/bigredv2/outside/filtration_plant) "blB" = ( /obj/effect/landmark/survivor_spawner, @@ -22280,34 +15661,24 @@ dir = 4; pixel_x = -30 }, -/turf/open/floor{ - dir = 9; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/northwest, /area/bigredv2/outside/filtration_plant) "blC" = ( /obj/structure/closet/firecloset/full, -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/bigredv2/outside/filtration_plant) "blD" = ( /obj/structure/surface/table, /obj/item/circuitboard/firealarm, /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/west, /area/bigredv2/outside/filtration_plant) "blE" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/crap_item, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/filtration_plant) "blF" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony{ @@ -22328,9 +15699,7 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/filtration_plant) "blV" = ( /obj/structure/bed/chair/office/light{ @@ -22339,9 +15708,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/filtration_plant) "blW" = ( /obj/structure/surface/table, @@ -22351,35 +15718,25 @@ dir = 8 }, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/bigredv2/outside/filtration_plant) "blX" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 9; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/northwest, /area/bigredv2/outside/filtration_plant) "blY" = ( /obj/structure/bed/chair{ dir = 8 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/filtration_plant) "blZ" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/filtration_plant) "bma" = ( /obj/effect/decal/cleanable/dirt, @@ -22388,9 +15745,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/filtration_plant) "bmb" = ( /obj/structure/surface/table, @@ -22399,19 +15754,14 @@ pixel_x = 32 }, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/bigredv2/outside/filtration_plant) "bme" = ( /turf/open/mars, /area/bigredv2/outside/sw) "bmf" = ( /obj/structure/closet/secure_closet/engineering_personal, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/bigredv2/outside/engineering) "bmg" = ( /obj/effect/decal/cleanable/dirt, @@ -22419,49 +15769,33 @@ icon_state = "W"; pixel_x = -1 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/west, /area/bigredv2/outside/engineering) "bmh" = ( /obj/effect/decal/cleanable/liquid_fuel, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/bigredv2/outside/engineering) "bmi" = ( /obj/effect/decal/cleanable/liquid_fuel, /obj/structure/curtain/red, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/bigredv2/outside/engineering) "bmj" = ( /obj/effect/decal/cleanable/liquid_fuel, /obj/structure/machinery/shower{ dir = 8 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/bigredv2/outside/engineering) "bml" = ( /obj/structure/machinery/portable_atmospherics/canister/air, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 9; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/northwest, /area/bigredv2/outside/engineering) "bmm" = ( /obj/structure/machinery/portable_atmospherics/canister/air, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/bigredv2/outside/engineering) "bmn" = ( /obj/structure/machinery/power/smes/buildable{ @@ -22471,41 +15805,26 @@ /area/bigredv2/outside/engineering) "bmp" = ( /obj/structure/machinery/mill, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/bigredv2/outside/engineering) "bmq" = ( /obj/structure/surface/table, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/bigredv2/outside/engineering) "bms" = ( /obj/structure/machinery/autolathe, -/turf/open/floor{ - dir = 5; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/northeast, /area/bigredv2/outside/engineering) "bmt" = ( /obj/structure/machinery/computer/atmos_alert, /obj/structure/surface/table, -/turf/open/floor{ - dir = 9; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/northwest, /area/bigredv2/outside/engineering) "bmu" = ( /obj/structure/machinery/computer/station_alert, /obj/structure/surface/table, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/bigredv2/outside/engineering) "bmw" = ( /obj/structure/closet/secure_closet/engineering_chief, @@ -22513,45 +15832,28 @@ dir = 1 }, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/bigredv2/outside/engineering) "bmx" = ( /obj/structure/bookcase/manuals/engineering, -/turf/open/floor{ - dir = 5; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/northeast, /area/bigredv2/outside/engineering) "bmy" = ( /obj/effect/decal/cleanable/liquid_fuel, -/turf/open/floor{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/west, /area/bigredv2/outside/engineering) "bmz" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/bigredv2/outside/engineering) "bmA" = ( /obj/structure/barricade/wooden, -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/east, /area/bigredv2/outside/s) "bmB" = ( /obj/structure/barricade/wooden, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/outside/s) "bmC" = ( /obj/structure/surface/table, @@ -22560,59 +15862,40 @@ dir = 4 }, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/west, /area/bigredv2/outside/filtration_plant) "bmD" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/filtration_plant) "bmF" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/filtration_plant) "bmG" = ( /obj/structure/closet/wardrobe/atmospherics_yellow, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/bigredv2/outside/filtration_plant) "bmH" = ( /obj/structure/surface/table, /obj/item/tool/lighter/random, /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/west, /area/bigredv2/outside/filtration_plant) "bmJ" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/bigredv2/outside/filtration_plant) "bmM" = ( /obj/effect/landmark/hunter_primary, /turf/open/floor/plating, /area/bigredv2/outside/space_port_lz2) "bmN" = ( -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/east, /area/bigredv2/outside/space_port_lz2) "bmO" = ( /obj/effect/decal/cleanable/liquid_fuel, @@ -22621,28 +15904,20 @@ icon_state = "W"; pixel_x = -1 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/west, /area/bigredv2/outside/engineering) "bmP" = ( /obj/effect/decal/cleanable/liquid_fuel, /obj/effect/decal/cleanable/liquid_fuel, /obj/item/stack/sheet/metal, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/bigredv2/outside/engineering) "bmQ" = ( /obj/structure/machinery/shower{ dir = 8 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/bigredv2/outside/engineering) "bmR" = ( /obj/structure/machinery/portable_atmospherics/canister/air, @@ -22650,18 +15925,13 @@ dir = 8 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/west, /area/bigredv2/outside/engineering) "bmS" = ( /obj/structure/machinery/portable_atmospherics/canister/air, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/engineering) "bmT" = ( /obj/structure/machinery/power/terminal{ @@ -22670,15 +15940,6 @@ /obj/structure/machinery/light, /turf/open/floor/plating, /area/bigredv2/outside/engineering) -"bmU" = ( -/obj/structure/machinery/power/terminal{ - dir = 1 - }, -/obj/structure/machinery/power/terminal{ - dir = 1 - }, -/turf/open/floor/plating, -/area/bigredv2/outside/engineering) "bmV" = ( /obj/structure/machinery/power/terminal{ dir = 1 @@ -22687,33 +15948,23 @@ /area/bigredv2/outside/engineering) "bmW" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/engineering) "bmX" = ( /obj/structure/bed/chair/office/dark, /obj/effect/landmark/corpsespawner/engineer, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/engineering) "bmZ" = ( /obj/effect/decal/cleanable/liquid_fuel, /obj/effect/decal/cleanable/liquid_fuel, -/turf/open/floor{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/west, /area/bigredv2/outside/engineering) "bna" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/liquid_fuel, -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/bigredv2/outside/engineering) "bnb" = ( /obj/structure/machinery/door_control{ @@ -22721,36 +15972,25 @@ name = "Storm Shutters"; pixel_x = -32 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/west, /area/bigredv2/outside/filtration_plant) "bnd" = ( /obj/structure/machinery/light{ dir = 4 }, /obj/structure/machinery/computer3/server, -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/bigredv2/outside/filtration_plant) "bne" = ( /obj/structure/cryofeed, /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/bluegrid{ - icon_state = "bcircuitoff" - }, +/turf/open/floor/bluegrid/bcircuitoff, /area/bigredv2/outside/filtration_plant) "bnf" = ( /obj/structure/machinery/computer3/server/rack, -/turf/open/floor{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/west, /area/bigredv2/outside/filtration_plant) "bng" = ( /obj/effect/decal/cleanable/dirt, @@ -22758,16 +15998,12 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/filtration_plant) "bnh" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/filtration_plant) "bnj" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -22776,50 +16012,37 @@ /obj/structure/machinery/door/airlock/almayer/engineering/colony{ name = "\improper Atmospherics Condenser Storage" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/bigredv2/outside/filtration_plant) "bnl" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/filtration_plant) "bnm" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/filtration_plant) "bnn" = ( /obj/structure/pipes/vents/pump, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/filtration_plant) "bno" = ( /obj/effect/decal/cleanable/dirt, /obj/item/device/radio/headset, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/filtration_plant) "bnp" = ( /obj/structure/machinery/computer/area_atmos/area, /obj/structure/surface/table, -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/bigredv2/outside/filtration_plant) "bnq" = ( /obj/effect/decal/cleanable/dirt, @@ -22827,51 +16050,36 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/bigredv2/outside/engineering) "bnr" = ( /obj/structure/largecrate/random, -/turf/open/floor{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/west, /area/bigredv2/outside/engineering) "bns" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony{ dir = 1; name = "\improper Engineering SMES" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/bigredv2/outside/engineering) "bnt" = ( /obj/effect/decal/cleanable/dirt, /obj/item/clothing/glasses/welding, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/engineering) "bnu" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/bigredv2/outside/engineering) "bnw" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/engineering) "bnx" = ( /obj/structure/surface/table, @@ -22881,9 +16089,7 @@ /obj/effect/decal/cleanable/dirt, /obj/item/clothing/glasses/meson, /obj/effect/landmark/crap_item, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/engineering) "bny" = ( /obj/structure/window/reinforced/toughened{ @@ -22899,64 +16105,45 @@ phone_category = "Lambda Labs"; phone_id = "Virology" }, -/turf/open/floor{ - dir = 5; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/northeast, /area/bigredv2/caves/lambda/virology) "bnz" = ( /obj/structure/surface/table, /obj/item/tool/lighter/zippo, /obj/item/tool/lighter/zippo, -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/bigredv2/outside/engineering) "bnA" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/engidoor/glass/colony{ dir = 1; name = "\improper Atmospherics Condenser" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/bigredv2/outside/filtration_plant) "bnB" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/filtration_plant) "bnE" = ( /obj/effect/decal/cleanable/blood, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/filtration_plant) "bnF" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/filtration_plant) "bnH" = ( /obj/structure/machinery/computer/general_air_control, -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/bigredv2/outside/filtration_plant) "bnI" = ( /obj/structure/machinery/light, -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/bigredv2/outside/filtration_plant) "bnK" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -22965,99 +16152,72 @@ /obj/structure/machinery/camera/autoname{ dir = 1 }, -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/bigredv2/outside/filtration_plant) "bnL" = ( /obj/structure/pipes/standard/manifold/hidden/green, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/bigredv2/outside/filtration_plant) "bnM" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/bigredv2/outside/filtration_plant) "bnN" = ( /obj/structure/bed/chair{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/bigredv2/outside/filtration_plant) "bnO" = ( /obj/structure/machinery/computer/atmos_alert{ dir = 8 }, /obj/structure/surface/table, -/turf/open/floor{ - dir = 6; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/southeast, /area/bigredv2/outside/filtration_plant) "bnQ" = ( /obj/structure/closet/secure_closet/engineering_personal, /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/bigredv2/outside/engineering) "bnR" = ( /obj/structure/machinery/shower{ dir = 8 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/bigredv2/outside/engineering) "bnS" = ( /obj/item/trash/eat, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/engineering) "bnT" = ( /obj/structure/machinery/door/airlock/almayer/secure/colony{ name = "\improper Engineering Secure Storage" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/bigredv2/outside/engineering) "bnV" = ( /obj/structure/sign/safety/electronics{ pixel_y = 32 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/bigredv2/outside/engineering) "bnW" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/darkyellowcorners2/north, /area/bigredv2/outside/engineering) "bnX" = ( /obj/item/folder/yellow, /obj/effect/landmark/crap_item, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/engineering) "bnY" = ( /obj/structure/machinery/photocopier, @@ -23067,36 +16227,26 @@ name = "General Listening Channel"; pixel_x = 30 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/bigredv2/outside/engineering) "bnZ" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/engineering) "boa" = ( /obj/structure/bed/chair{ dir = 1 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/engineering) "bob" = ( /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/bigredv2/outside/engineering) "boc" = ( /obj/structure/machinery/light{ @@ -23104,159 +16254,105 @@ }, /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/landmark/crap_item, -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/bigredv2/outside/engineering) "boe" = ( -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/bigredv2/outside/filtration_plant) "bof" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/filtration_plant) "boj" = ( /obj/structure/closet/secure_closet/engineering_welding, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/bigredv2/outside/engineering) "bok" = ( /obj/structure/largecrate/random, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/west, /area/bigredv2/outside/engineering) "boq" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/bigredv2/outside/engineering) "bor" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/bigredv2/outside/engineering) "bos" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/engineering) "bou" = ( /obj/structure/machinery/light{ dir = 8 }, /obj/structure/machinery/computer3/server/rack, -/turf/open/floor{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/west, /area/bigredv2/outside/filtration_plant) "bov" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, /obj/item/weapon/twohanded/fireaxe, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/filtration_plant) "box" = ( /obj/item/frame/table, -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/bigredv2/outside/filtration_plant) "boy" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves_sw) "boA" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/bigredv2/outside/filtration_plant) -"boD" = ( -/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ - dir = 1; - name = "\improper Engineering Complex" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/bigredv2/outside/engineering) "boG" = ( /obj/structure/closet/secure_closet/engineering_electrical, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/bigredv2/outside/engineering) "boH" = ( /obj/effect/decal/cleanable/liquid_fuel, /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/crap_item, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 4; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/darkyellowcorners2/east, /area/bigredv2/outside/engineering) "boI" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/bigredv2/outside/engineering) "boK" = ( /obj/item/trash/pistachios, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/engineering) "boL" = ( /obj/structure/reagent_dispensers/fueltank, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/bigredv2/outside/engineering) "boM" = ( /obj/structure/closet/firecloset/full, /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/bigredv2/outside/engineering) "boN" = ( /obj/structure/closet/firecloset/full, -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/bigredv2/outside/engineering) "boR" = ( /obj/structure/surface/table, @@ -23265,19 +16361,14 @@ dir = 1 }, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/bigredv2/outside/engineering) "boS" = ( /obj/structure/surface/table, /obj/effect/spawner/random/tool, /obj/effect/spawner/random/technology_scanner, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 6; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/southeast, /area/bigredv2/outside/engineering) "boU" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -23285,31 +16376,22 @@ dir = 1; name = "\improper Chief Engineer's Office" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/bigredv2/outside/engineering) "boV" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper Engineering Complex" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/bigredv2/outside/engineering) "boW" = ( /obj/structure/closet/secure_closet/atmos_personal, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/bigredv2/outside/filtration_plant) "boX" = ( /obj/structure/machinery/pipedispenser, -/turf/open/floor{ - dir = 9; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/northwest, /area/bigredv2/outside/filtration_plant) "boY" = ( /obj/structure/machinery/cm_vending/sorted/tech/tool_storage, @@ -23319,30 +16401,21 @@ phone_id = "Filtration"; pixel_y = 24 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/bigredv2/outside/filtration_plant) "boZ" = ( /obj/effect/landmark/crap_item, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/filtration_plant) "bpa" = ( /obj/effect/decal/cleanable/blood, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/filtration_plant) "bpc" = ( /obj/structure/barricade/handrail, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/bigredv2/outside/filtration_plant) "bpe" = ( /obj/effect/landmark/survivor_spawner, @@ -23350,37 +16423,26 @@ icon_state = "W"; pixel_x = -1 }, -/turf/open/floor{ - dir = 10; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/southwest, /area/bigredv2/outside/engineering) "bpf" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/engineering) "bpi" = ( /obj/structure/reagent_dispensers/watertank, /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/west, /area/bigredv2/outside/engineering) "bpj" = ( /obj/structure/reagent_dispensers/watertank, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/bigredv2/outside/engineering) "bpk" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -23388,26 +16450,19 @@ dir = 1; name = "\improper Engineering Tool Storage" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/bigredv2/outside/engineering) "bpl" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor{ - dir = 9; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/northwest, /area/bigredv2/outside/engineering) "bpm" = ( /obj/structure/surface/table, /obj/effect/decal/cleanable/dirt, /obj/item/clothing/glasses/welding, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/engineering) "bpn" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -23416,68 +16471,44 @@ /obj/structure/machinery/camera/autoname{ dir = 4 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/west, /area/bigredv2/outside/filtration_plant) "bpo" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/filtration_plant) "bpp" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/filtration_plant) "bpq" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /obj/item/frame/table, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/filtration_plant) "bpu" = ( /obj/structure/machinery/landinglight/ds2/delaythree{ dir = 8 }, -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/west, /area/bigredv2/outside/space_port_lz2) -"bpv" = ( -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, -/area/bigredv2/outside/sw) "bpx" = ( -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/outside/sw) "bpy" = ( -/turf/open/mars{ - icon_state = "mars_dirt_12" - }, +/turf/open/mars/mars_dirt_12, /area/bigredv2/outside/sw) "bpz" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony{ dir = 1; name = "\improper Engineering Lockers" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/bigredv2/outside/engineering) "bpA" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -23485,51 +16516,34 @@ dir = 1; name = "\improper Engineering Lockers" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/bigredv2/outside/engineering) "bpC" = ( /obj/structure/reagent_dispensers/fueltank, -/turf/open/floor{ - dir = 6; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/southeast, /area/bigredv2/outside/engineering) "bpD" = ( /obj/structure/surface/rack, /obj/item/device/camera_film, -/turf/open/floor{ - dir = 9; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/northwest, /area/bigredv2/outside/engineering) "bpE" = ( /obj/structure/surface/rack, /obj/item/device/analyzer, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/bigredv2/outside/engineering) "bpF" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/bigredv2/outside/engineering) "bpH" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/bigredv2/outside/engineering) "bpI" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -23537,10 +16551,7 @@ }, /obj/effect/decal/cleanable/dirt, /obj/item/device/lightreplacer, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/bigredv2/outside/engineering) "bpK" = ( /obj/structure/machinery/light{ @@ -23549,43 +16560,31 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/bigredv2/outside/engineering) "bpL" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/landmark/hunter_secondary, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/darkyellowcorners2/north, /area/bigredv2/outside/engineering) "bpM" = ( /obj/structure/pipes/standard/manifold/fourway/hidden/green, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/engineering) "bpN" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/decal/cleanable/liquid_fuel, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/engineering) "bpO" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/engineering) "bpP" = ( /obj/structure/machinery/camera/autoname{ @@ -23594,9 +16593,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/filtration_plant) "bpQ" = ( /obj/structure/machinery/light{ @@ -23606,32 +16603,24 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/filtration_plant) "bpR" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/filtration_plant) "bpS" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/landmark/good_item, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/filtration_plant) "bpT" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/outside/c) "bpU" = ( /obj/structure/machinery/portable_atmospherics/powered/scrubber/huge/stationary, @@ -23646,84 +16635,48 @@ /turf/open/floor/plating, /area/bigredv2/outside/filtration_plant) "bpX" = ( -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/north, /area/bigredv2/outside/se) "bpY" = ( -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/west, /area/bigredv2/outside/se) "bpZ" = ( /obj/structure/fence, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/filtration_cave_cas) "bqa" = ( -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/se) "bqb" = ( /obj/effect/landmark/crap_item, -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/east, /area/bigredv2/outside/filtration_cave_cas) "bqc" = ( /obj/effect/decal/cleanable/blood/drip{ pixel_y = 6 }, -/turf/open/mars_cave{ - icon_state = "mars_cave_17" - }, +/turf/open/mars_cave/mars_cave_17, /area/bigredv2/caves/mining) "bqd" = ( /obj/structure/machinery/landinglight/ds2/delaytwo{ dir = 8 }, -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/west, /area/bigredv2/outside/space_port_lz2) -"bqe" = ( -/turf/open/floor{ - dir = 5; - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/sw) "bqf" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony{ dir = 1; name = "\improper Engineering Break Room" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/bigredv2/outside/engineering) -"bqg" = ( -/turf/open/floor/plating{ - dir = 6; - icon_state = "warnplate" - }, -/area/bigredv2/outside/telecomm/warehouse) "bqk" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/alarm{ dir = 1; pixel_y = -30 }, -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/bigredv2/outside/engineering) "bql" = ( /obj/structure/machinery/door_control{ @@ -23731,17 +16684,13 @@ name = "Storm Shutters"; pixel_y = -32 }, -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/bigredv2/outside/engineering) "bqo" = ( /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/engineering) "bqv" = ( /obj/effect/decal/warning_stripes{ @@ -23764,40 +16713,28 @@ /obj/structure/machinery/landinglight/ds2/delayone{ dir = 8 }, -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/west, /area/bigredv2/outside/space_port_lz2) "bqI" = ( /obj/structure/machinery/vending/snack{ icon_state = "snack-broken"; stat = 1 }, -/turf/open/floor{ - dir = 9; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/northwest, /area/bigredv2/outside/engineering) "bqJ" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/camera/autoname{ dir = 4 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/darkyellowcorners2/north, /area/bigredv2/outside/engineering) "bqK" = ( /obj/item/folder/yellow, /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/darkyellowcorners2/east, /area/bigredv2/outside/engineering) "bqL" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -23806,27 +16743,21 @@ /obj/structure/machinery/door/airlock/almayer/engineering/colony{ name = "\improper Engineering Workshop" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/bigredv2/outside/engineering) "bqM" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/engineering) "bqN" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/engineering) "bqP" = ( /obj/effect/decal/warning_stripes{ @@ -23838,16 +16769,12 @@ dir = 1; name = "\improper Engine Reactor Control" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/bigredv2/outside/engineering) "bqT" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/survivor_spawner, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/filtration_plant) "bqV" = ( /obj/structure/machinery/light{ @@ -23856,10 +16783,7 @@ /obj/structure/surface/table, /obj/item/paper, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/bigredv2/outside/filtration_plant) "bqX" = ( /obj/effect/decal/warning_stripes{ @@ -23871,111 +16795,65 @@ /obj/structure/machinery/landinglight/ds2{ dir = 8 }, -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/west, /area/bigredv2/outside/space_port_lz2) -"brc" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E-corner" - }, -/turf/open/mars_cave{ - icon_state = "mars_cave_15" - }, -/area/bigredv2/caves_north) -"brd" = ( -/turf/open/floor{ - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/sw) "bre" = ( /obj/structure/bed/chair, -/turf/open/floor{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/west, /area/bigredv2/outside/engineering) "brf" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony{ name = "\improper Engineering Workshop" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/bigredv2/outside/engineering) "brg" = ( /obj/structure/machinery/light{ dir = 1 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/engineering) "bri" = ( /obj/effect/decal/cleanable/dirt, /obj/item/stack/sheet/metal, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/engineering) "brj" = ( /obj/structure/surface/table, /obj/effect/spawner/random/toolbox, /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/bigredv2/outside/engineering) "brn" = ( /obj/structure/machinery/power/breakerbox/activated, /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor{ - dir = 9; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/northwest, /area/bigredv2/outside/engineering) "bro" = ( /obj/structure/machinery/camera/autoname, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/bigredv2/outside/engineering) "bru" = ( /obj/structure/machinery/vending/cigarette/colony, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/bigredv2/outside/engineering) "brv" = ( /obj/structure/machinery/vending/snack, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/bigredv2/outside/engineering) "brw" = ( /obj/structure/machinery/vending/cola, -/turf/open/floor{ - dir = 5; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/northeast, /area/bigredv2/outside/engineering) "brx" = ( /obj/structure/surface/table, /obj/item/stack/cable_coil, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/west, /area/bigredv2/outside/filtration_plant) "bry" = ( /obj/structure/pipes/standard/manifold/hidden/green{ @@ -23983,18 +16861,14 @@ }, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/filtration_plant) "brz" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/filtration_plant) "brA" = ( /obj/structure/surface/table, @@ -24009,25 +16883,17 @@ pixel_x = 30 }, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/bigredv2/outside/filtration_plant) "brB" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/west, /area/bigredv2/outside/filtration_plant) "brC" = ( /obj/effect/landmark/good_item, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/filtration_plant) "brD" = ( /turf/open/floor/plating, @@ -24035,12 +16901,6 @@ "brE" = ( /turf/open/floor/greengrid, /area/bigredv2/outside/filtration_cave_cas) -"brG" = ( -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/sw) "brI" = ( /obj/structure/sign/safety/galley{ pixel_x = -32 @@ -24048,50 +16908,36 @@ /obj/item/stack/sheet/metal{ amount = 30 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/engineering) "brJ" = ( /obj/effect/decal/cleanable/dirt, /obj/item/stack/sheet/glass, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/engineering) "brK" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/hunter_primary, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/engineering) "brL" = ( /obj/structure/bed/chair/office/light{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/engineering) "brM" = ( /obj/structure/surface/table, /obj/effect/spawner/random/powercell, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/bigredv2/outside/engineering) "brO" = ( /obj/structure/machinery/light{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/bigredv2/outside/engineering) "brP" = ( /obj/structure/bed/chair/office/light{ @@ -24100,9 +16946,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/engineering) "brR" = ( /obj/item/device/radio/intercom{ @@ -24111,92 +16955,64 @@ name = "General Listening Channel"; pixel_x = 30 }, -/turf/open/floor{ - icon_state = "podhatchfloor" - }, +/turf/open/floor/podhatchfloor, /area/bigredv2/outside/engineering) "brU" = ( /obj/structure/surface/table, /obj/item/stack/cable_coil, /obj/item/stack/cable_coil, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/west, /area/bigredv2/outside/filtration_plant) "brV" = ( /obj/structure/bed/chair/office/light{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/filtration_plant) "brW" = ( /obj/structure/surface/table, /obj/item/weapon/baton, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/bigredv2/outside/filtration_plant) "brY" = ( /obj/structure/bed/chair/office/light, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/filtration_plant) "brZ" = ( /obj/structure/bed/chair/office/light, -/turf/open/floor{ - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/darkyellowcorners2, /area/bigredv2/outside/filtration_plant) "bsa" = ( /obj/structure/machinery/floodlight/landing/floor, -/turf/open/floor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/asteroidplating, /area/bigredv2/outside/space_port_lz2) "bsb" = ( /obj/structure/machinery/landinglight/ds2{ dir = 1 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/north, /area/bigredv2/outside/space_port_lz2) "bsc" = ( /obj/structure/machinery/landinglight/ds2/delayone{ dir = 1 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/north, /area/bigredv2/outside/space_port_lz2) "bsd" = ( /obj/structure/machinery/landinglight/ds2/delaytwo{ dir = 1 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/north, /area/bigredv2/outside/space_port_lz2) "bse" = ( /obj/structure/machinery/landinglight/ds2/delaythree{ dir = 1 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/north, /area/bigredv2/outside/space_port_lz2) "bsm" = ( /obj/effect/decal/cleanable/dirt, @@ -24204,9 +17020,7 @@ amount = 30 }, /obj/effect/landmark/crap_item, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/engineering) "bss" = ( /obj/structure/prop/invuln/minecart_tracks{ @@ -24221,81 +17035,58 @@ /obj/structure/surface/table, /obj/effect/spawner/random/tool, /obj/effect/spawner/random/tool, -/turf/open/floor{ - dir = 10; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/southwest, /area/bigredv2/outside/filtration_plant) "bsC" = ( /obj/structure/surface/table, /obj/effect/spawner/random/technology_scanner, -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/bigredv2/outside/filtration_plant) "bsD" = ( /obj/structure/surface/table, /obj/effect/spawner/random/tool, /obj/effect/spawner/random/toolbox, -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/bigredv2/outside/filtration_plant) "bsE" = ( /obj/structure/surface/table, /obj/effect/spawner/random/toolbox, -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/bigredv2/outside/filtration_plant) "bsF" = ( /obj/structure/surface/table, /obj/item/circuitboard/solar_tracker, -/turf/open/floor{ - dir = 6; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/southeast, /area/bigredv2/outside/filtration_plant) "bsG" = ( /obj/structure/closet/wardrobe/engineering_yellow, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/bigredv2/outside/filtration_plant) "bsH" = ( /obj/effect/landmark/hunter_primary, /turf/open/floor, /area/bigredv2/outside/filtration_cave_cas) "bsI" = ( -/turf/open/mars{ - icon_state = "mars_dirt_3" - }, +/turf/open/mars/mars_dirt_3, /area/bigredv2/outside/sw) "bsJ" = ( /obj/structure/machinery/vending/coffee{ icon_state = "coffee-broken"; stat = 1 }, -/turf/open/floor{ - dir = 10; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/southwest, /area/bigredv2/outside/engineering) "bsK" = ( /obj/structure/machinery/light, /obj/structure/surface/table, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/bigredv2/outside/engineering) "bsL" = ( /obj/effect/landmark/crap_item, /obj/structure/surface/table, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/bigredv2/outside/engineering) "bsM" = ( /obj/structure/machinery/door_control{ @@ -24303,10 +17094,7 @@ name = "Storm Shutters"; pixel_y = -32 }, -/turf/open/floor{ - dir = 6; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/southeast, /area/bigredv2/outside/engineering) "bsN" = ( /obj/structure/surface/table, @@ -24318,62 +17106,44 @@ /obj/item/stack/sheet/glass{ amount = 30 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/west, /area/bigredv2/outside/engineering) "bsP" = ( /obj/structure/closet/radiation, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/bigredv2/outside/engineering) "bsX" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper Engineering Complex" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/bigredv2/outside/engineering) "bsY" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper Atmospherics Condenser" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/bigredv2/outside/engineering) "bsZ" = ( /obj/structure/janitorialcart, -/turf/open/floor{ - dir = 10; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/southwest, /area/bigredv2/outside/engineering) "bta" = ( /obj/structure/machinery/constructable_frame{ icon_state = "box_1" }, -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/bigredv2/outside/engineering) "btb" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/constructable_frame, -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/bigredv2/outside/engineering) "btc" = ( /obj/structure/surface/table, /obj/structure/machinery/light, /obj/effect/spawner/random/tool, -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/bigredv2/outside/engineering) "btd" = ( /obj/structure/surface/table, @@ -24381,10 +17151,7 @@ /obj/item/stack/sheet/metal{ amount = 30 }, -/turf/open/floor{ - dir = 6; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/southeast, /area/bigredv2/outside/engineering) "bte" = ( /obj/structure/machinery/light{ @@ -24393,88 +17160,56 @@ /obj/structure/sign/safety/high_rad{ pixel_x = 32 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/west, /area/bigredv2/outside/engineering) "bti" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/reagent_dispensers/fueltank, -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/bigredv2/outside/engineering) "btj" = ( /obj/structure/bed/chair, /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/bigredv2/outside/engineering) "btk" = ( /obj/structure/bed/chair, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/bigredv2/outside/engineering) "btn" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/bigredv2/outside/s) "bto" = ( /obj/item/tool/warning_cone, -/turf/open/floor{ - dir = 6; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/southeast, /area/bigredv2/outside/se) "btr" = ( -/turf/open/floor{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/west, /area/bigredv2/outside/engineering) "btt" = ( /obj/structure/bed/chair/office/light, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/engineering) "btu" = ( -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/bigredv2/outside/engineering) "btw" = ( /turf/open/floor/plating, /area/bigredv2/outside/lz2_south_cas) "btA" = ( /obj/effect/landmark/hunter_primary, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/engineering) "btB" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/reagent_dispensers/fueltank, -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/bigredv2/outside/engineering) "btD" = ( -/turf/open/mars_cave{ - icon_state = "mars_dirt_7" - }, +/turf/open/mars_cave/mars_dirt_7, /area/bigredv2/outside/s) "btH" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -24484,28 +17219,21 @@ dir = 1; name = "\improper Engineering Complex" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/bigredv2/outside/engineering) "btJ" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/structure/machinery/light, -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/bigredv2/outside/engineering) "btK" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/item/stack/sheet/metal, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/bigredv2/outside/engineering) "btN" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -24515,116 +17243,68 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor{ - dir = 6; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/southeast, /area/bigredv2/outside/engineering) "bua" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper Engineering Complex" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/bigredv2/outside/engineering) "bub" = ( -/turf/open/mars_cave{ - icon_state = "mars_dirt_5" - }, +/turf/open/mars_cave/mars_dirt_5, /area/bigredv2/outside/s) "buc" = ( -/turf/open/mars_cave{ - icon_state = "mars_dirt_6" - }, +/turf/open/mars_cave/mars_dirt_6, /area/bigredv2/outside/s) "bud" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_19" - }, +/turf/open/mars_cave/mars_cave_19, /area/bigredv2/outside/s) "buj" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_5" - }, +/turf/open/mars_cave/mars_cave_5, /area/bigredv2/caves/mining) "bun" = ( -/turf/open/floor{ - dir = 10; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/southwest, /area/bigredv2/outside/s) "buo" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/s) "buu" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_17" - }, +/turf/open/mars_cave/mars_cave_17, /area/bigredv2/outside/s) "buy" = ( /obj/effect/landmark/crap_item, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves_east) "buz" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_19" - }, +/turf/open/mars_cave/mars_cave_19, /area/bigredv2/caves_sw) "buB" = ( /obj/effect/landmark/lv624/xeno_tunnel, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/n) "buJ" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/west, /area/bigredv2/outside/s) -"buP" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E-corner" - }, -/turf/open/mars_cave{ - icon_state = "mars_dirt_5" - }, -/area/bigredv2/caves_north) "buQ" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/caves_north) "buR" = ( /obj/effect/landmark/hunter_primary, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/outside/lz2_south_cas) "buY" = ( /obj/effect/decal/cleanable/blood{ icon_state = "xgib1" }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "bvk" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_16" - }, +/turf/open/mars_cave/mars_cave_16, /area/bigredv2/outside/s) "bvv" = ( /obj/structure/machinery/light{ @@ -24634,9 +17314,7 @@ /area/bigredv2/outside/lz2_south_cas) "bvw" = ( /obj/effect/landmark/yautja_teleport, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/outside/lz2_south_cas) "bvz" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -24644,17 +17322,13 @@ id = "eta"; name = "Eta Lockdown" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/eta) "bvD" = ( /obj/structure/prop/invuln/minecart_tracks{ dir = 1 }, -/turf/open/mars_cave{ - icon_state = "mars_cave_14" - }, +/turf/open/mars_cave/mars_cave_14, /area/bigredv2/caves/mining) "bvF" = ( /obj/structure/bed/chair/office/light{ @@ -24664,40 +17338,29 @@ /area/bigredv2/outside/lz2_south_cas) "bvH" = ( /obj/effect/landmark/crap_item, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/outside/eta) "bvK" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony{ dir = 1; name = "\improper Power Substation" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/lz2_south_cas) "bvO" = ( -/turf/open/mars{ - icon_state = "mars_dirt_12" - }, +/turf/open/mars/mars_dirt_12, /area/bigredv2/caves/eta/xenobiology) "bvP" = ( /turf/open/mars, /area/bigredv2/caves/eta/research) "bvQ" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/east, /area/bigredv2/outside/eta) "bvR" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/mars_cave{ - icon_state = "mars_cave_23" - }, +/turf/open/mars_cave/mars_cave_23, /area/bigredv2/caves_se) "bvS" = ( /obj/structure/machinery/power/port_gen/pacman/super, @@ -24705,25 +17368,16 @@ /area/bigredv2/outside/lz2_south_cas) "bvV" = ( /obj/structure/machinery/door/poddoor/almayer/closed, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "bvW" = ( /obj/effect/landmark/crap_item, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/north, /area/bigredv2/outside/eta) "bvX" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/north, /area/bigredv2/outside/eta) "bvY" = ( /turf/open/floor/plating, @@ -24731,38 +17385,24 @@ "bvZ" = ( /obj/effect/landmark/crap_item, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/eta) "bwa" = ( /obj/effect/landmark/hunter_primary, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/eta) "bwb" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/eta) "bwc" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/eta) "bwj" = ( -/turf/open/mars{ - icon_state = "mars_dirt_10" - }, +/turf/open/mars/mars_dirt_10, /area/bigredv2/caves/eta/xenobiology) "bwr" = ( /obj/structure/machinery/light, @@ -24772,23 +17412,17 @@ phone_color = "green"; phone_id = "Virology Lab" }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/virology) "bww" = ( /turf/open/floor/plating, /area/bigredv2/caves/eta/storage) "bwx" = ( -/turf/open/mars_cave{ - icon_state = "mars_dirt_5" - }, +/turf/open/mars_cave/mars_dirt_5, /area/bigredv2/caves/eta/xenobiology) "bwz" = ( /obj/structure/surface/table, -/turf/open/floor{ - icon_state = "warnwhite" - }, +/turf/open/floor/warnwhite, /area/bigredv2/outside/office_complex) "bwA" = ( /obj/structure/surface/table, @@ -24799,23 +17433,17 @@ /obj/structure/machinery/door/airlock/multi_tile/almayer/medidoor/colony{ name = "\improper Eta Lab Storage Bay" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/caves/eta/storage) "bwH" = ( -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/caves/eta/storage) "bwI" = ( /obj/structure/machinery/door/airlock/almayer/research/colony{ dir = 1; name = "\improper Eta Lab Decontamination" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/caves/eta/research) "bwK" = ( /obj/effect/decal/cleanable/blood, @@ -24825,19 +17453,13 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor{ - dir = 1; - icon_state = "loadingarea" - }, +/turf/open/floor/loadingarea/north, /area/bigredv2/caves/eta/storage) "bwM" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - dir = 1; - icon_state = "loadingarea" - }, +/turf/open/floor/loadingarea/north, /area/bigredv2/caves/eta/storage) "bwN" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -24853,9 +17475,7 @@ /area/bigredv2/caves/eta/storage) "bwP" = ( /obj/structure/filingcabinet, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/eta/storage) "bwQ" = ( /obj/structure/surface/table, @@ -24865,86 +17485,57 @@ phone_color = "yellow"; phone_id = "Robotics" }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/eta/storage) "bwR" = ( /obj/structure/machinery/cm_vending/sorted/tech/electronics_storage, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/eta/storage) "bwS" = ( /obj/structure/machinery/cm_vending/sorted/tech/tool_storage, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/eta/storage) "bwT" = ( /obj/structure/surface/table, /obj/effect/spawner/random/tool, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/eta/storage) "bwU" = ( /obj/structure/machinery/shower{ dir = 4 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/bigredv2/caves/eta/research) "bwV" = ( -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/bigredv2/caves/eta/research) "bwW" = ( /obj/structure/closet/l3closet/scientist, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/bigredv2/caves/eta/research) "bwX" = ( /obj/structure/surface/table, /obj/effect/spawner/random/tech_supply, -/turf/open/floor{ - dir = 9; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/northwest, /area/bigredv2/caves/eta/research) "bwY" = ( /obj/structure/surface/table, /obj/effect/spawner/random/tech_supply, /obj/structure/pipes/vents/pump, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/bigredv2/caves/eta/research) "bwZ" = ( /obj/structure/machinery/cm_vending/sorted/medical/no_access, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/bigredv2/caves/eta/research) "bxa" = ( /obj/structure/surface/rack, /obj/item/storage/fancy/vials/random, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/bigredv2/caves/eta/research) "bxb" = ( /obj/structure/surface/rack, -/turf/open/floor{ - dir = 5; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/northeast, /area/bigredv2/caves/eta/research) "bxc" = ( /turf/open/floor, @@ -24963,23 +17554,15 @@ /turf/open/floor, /area/bigredv2/caves/eta/storage) "bxh" = ( -/turf/open/floor{ - dir = 9; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/northwest, /area/bigredv2/caves/eta/storage) "bxi" = ( -/turf/open/floor{ - dir = 5; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/northeast, /area/bigredv2/caves/eta/storage) "bxj" = ( /obj/structure/surface/table, /obj/effect/spawner/random/technology_scanner, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/eta/storage) "bxk" = ( /obj/structure/surface/table, @@ -24992,34 +17575,23 @@ pixel_x = -4; pixel_y = 7 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/eta/storage) "bxl" = ( /obj/effect/decal/cleanable/blood, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/bigredv2/caves/eta/research) "bxn" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/eta/research) "bxo" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/eta/research) "bxp" = ( -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/bigredv2/caves/eta/research) "bxq" = ( /obj/effect/decal/cleanable/dirt, @@ -25035,44 +17607,29 @@ /obj/structure/machinery/door/airlock/almayer/research/glass/colony{ name = "\improper Eta Lab Robotics" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/caves/eta/storage) "bxs" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/eta/storage) "bxt" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor{ - dir = 8; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/west, /area/bigredv2/caves/eta/storage) "bxu" = ( -/turf/open/floor{ - dir = 4; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/east, /area/bigredv2/caves/eta/storage) "bxv" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 8; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/west, /area/bigredv2/caves/eta/storage) "bxw" = ( /obj/structure/machinery/recharge_station, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/eta/storage) "bxx" = ( /obj/structure/closet/l3closet/scientist, @@ -25080,42 +17637,29 @@ dir = 4 }, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/bigredv2/caves/eta/research) "bxy" = ( -/turf/open/floor{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/west, /area/bigredv2/caves/eta/research) "bxz" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/eta/research) "bxA" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/eta/research) "bxB" = ( /obj/structure/largecrate/guns, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "bot" - }, +/turf/open/floor/bot, /area/bigredv2/caves/eta/storage) "bxC" = ( /obj/structure/largecrate/guns, -/turf/open/floor{ - icon_state = "bot" - }, +/turf/open/floor/bot, /area/bigredv2/caves/eta/storage) "bxD" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -25125,32 +17669,22 @@ "bxE" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/eta/storage) "bxF" = ( -/turf/open/floor{ - dir = 8; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/west, /area/bigredv2/caves/eta/storage) "bxG" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/crap_item, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor{ - dir = 8; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/west, /area/bigredv2/caves/eta/storage) "bxH" = ( /obj/structure/surface/table, /obj/effect/spawner/random/tool, /obj/structure/pipes/vents/pump, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/eta/storage) "bxI" = ( /obj/structure/sink{ @@ -25158,17 +17692,11 @@ pixel_x = -12; pixel_y = 2 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/west, /area/bigredv2/caves/eta/research) "bxJ" = ( /obj/structure/machinery/r_n_d/organic_analyzer, -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/bigredv2/caves/eta/research) "bxK" = ( /obj/structure/machinery/light{ @@ -25178,60 +17706,42 @@ /area/bigredv2/caves/eta/storage) "bxL" = ( /obj/structure/powerloader_wreckage/ft, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/eta/storage) "bxM" = ( /obj/structure/surface/table, /obj/effect/spawner/random/tool, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/eta/storage) "bxO" = ( /obj/structure/machinery/r_n_d/protolathe, -/turf/open/floor{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/west, /area/bigredv2/caves/eta/research) "bxP" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/xeno_spawn, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/eta/research) "bxQ" = ( /obj/structure/machinery/light{ dir = 4 }, /obj/structure/machinery/r_n_d/destructive_analyzer, -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/bigredv2/caves/eta/research) "bxR" = ( /obj/structure/bed, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/caves/eta/research) "bxS" = ( -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/caves/eta/research) "bxT" = ( /obj/structure/bed, /obj/structure/pipes/vents/pump, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/caves/eta/research) "bxU" = ( /obj/structure/largecrate/cow, @@ -25239,53 +17749,35 @@ /area/bigredv2/caves/eta/storage) "bxV" = ( /obj/structure/largecrate/cow, -/turf/open/floor{ - icon_state = "bot" - }, +/turf/open/floor/bot, /area/bigredv2/caves/eta/storage) "bxW" = ( /obj/effect/spawner/random/toolbox, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/eta/storage) "bxX" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 4; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/east, /area/bigredv2/caves/eta/storage) "bxY" = ( -/turf/open/floor{ - dir = 8; - icon_state = "darkgreencorners2" - }, +/turf/open/floor/darkgreencorners2/west, /area/bigredv2/caves/eta/research) "bya" = ( -/turf/open/floor{ - icon_state = "darkgreencorners2" - }, +/turf/open/floor/darkgreencorners2, /area/bigredv2/caves/eta/research) "byb" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/crap_item, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/eta/research) "byc" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/caves/eta/research) "bye" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_12" - }, +/turf/open/mars_cave/mars_cave_12, /area/bigredv2/caves_research) "byf" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, @@ -25305,107 +17797,76 @@ dir = 8 }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/eta/storage) "byj" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 4; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/east, /area/bigredv2/caves/eta/storage) "byk" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/crap_item, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/eta/storage) "byl" = ( /obj/structure/machinery/photocopier, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/eta/storage) "byn" = ( /obj/structure/machinery/r_n_d/bioprinter, -/turf/open/floor{ - dir = 10; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/southwest, /area/bigredv2/caves/eta/research) "byo" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/bigredv2/caves/eta/research) "byp" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/bigredv2/caves/eta/research) "byq" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/bigredv2/caves/eta/research) "byr" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/bigredv2/caves/eta/research) "bys" = ( /obj/structure/machinery/r_n_d/circuit_imprinter, -/turf/open/floor{ - dir = 6; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/southeast, /area/bigredv2/caves/eta/research) "byt" = ( /obj/structure/bed, /obj/effect/landmark/corpsespawner/pmc, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/caves/eta/research) "byu" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/caves/eta/research) "byv" = ( /obj/structure/machinery/light, /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/caves/eta/research) "byw" = ( /obj/structure/largecrate/mule, -/turf/open/floor{ - icon_state = "bot" - }, +/turf/open/floor/bot, /area/bigredv2/caves/eta/storage) "byx" = ( /obj/structure/largecrate/mule, @@ -25415,35 +17876,21 @@ "byy" = ( /obj/structure/largecrate/lisa, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "bot" - }, +/turf/open/floor/bot, /area/bigredv2/caves/eta/storage) "byz" = ( -/turf/open/floor{ - dir = 10; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/southwest, /area/bigredv2/caves/eta/storage) "byA" = ( -/turf/open/floor{ - dir = 6; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/southeast, /area/bigredv2/caves/eta/storage) "byB" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 10; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/southwest, /area/bigredv2/caves/eta/storage) "byC" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 6; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/southeast, /area/bigredv2/caves/eta/storage) "byE" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -25451,9 +17898,7 @@ dir = 1; name = "\improper Eta Lab Technical Storage" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/caves/eta/research) "byF" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -25461,16 +17906,12 @@ dir = 1; name = "\improper Eta Lab Dormitories" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/caves/eta/research) "byG" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/mars_cave{ - icon_state = "mars_cave_18" - }, +/turf/open/mars_cave/mars_cave_18, /area/bigredv2/caves_se) "byH" = ( /obj/structure/machinery/light, @@ -25490,125 +17931,88 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/eta/storage) "byK" = ( /obj/structure/closet/l3closet/scientist, /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/eta/storage) "byL" = ( /obj/structure/machinery/cm_vending/sorted/tech/comp_storage, /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/eta/storage) "byM" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/eta/storage) "byN" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/eta/storage) "byO" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/eta/storage) "byP" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/eta/research) "byQ" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/decal/cleanable/blood, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/eta/research) "byR" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkgreencorners2" - }, +/turf/open/floor/darkgreencorners2/north, /area/bigredv2/caves/eta/research) "byS" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkgreencorners2" - }, +/turf/open/floor/darkgreencorners2/north, /area/bigredv2/caves/eta/research) "byT" = ( -/turf/open/floor{ - dir = 1; - icon_state = "darkgreencorners2" - }, +/turf/open/floor/darkgreencorners2/north, /area/bigredv2/caves/eta/research) "byU" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 1; - icon_state = "darkgreencorners2" - }, +/turf/open/floor/darkgreencorners2/north, /area/bigredv2/caves/eta/research) "byV" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkgreencorners2" - }, +/turf/open/floor/darkgreencorners2/north, /area/bigredv2/caves/eta/research) "byW" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - dir = 9; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/northwest, /area/bigredv2/caves/eta/research) "byX" = ( -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/bigredv2/caves/eta/research) "byY" = ( /obj/structure/flora/pottedplant{ @@ -25622,95 +18026,65 @@ dir = 1; name = "\improper Eta Lab Robotics" }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/eta/storage) "bza" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkgreencorners2" - }, +/turf/open/floor/darkgreencorners2/west, /area/bigredv2/caves/eta/research) "bzb" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/eta/research) "bzc" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkgreencorners2" - }, +/turf/open/floor/darkgreencorners2/west, /area/bigredv2/caves/eta/research) "bzd" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor{ - dir = 8; - icon_state = "darkgreencorners2" - }, +/turf/open/floor/darkgreencorners2/west, /area/bigredv2/caves/eta/research) "bze" = ( /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor{ - dir = 8; - icon_state = "darkgreencorners2" - }, +/turf/open/floor/darkgreencorners2/west, /area/bigredv2/caves/eta/research) "bzf" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkgreencorners2" - }, +/turf/open/floor/darkgreencorners2/west, /area/bigredv2/caves/eta/research) "bzg" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/decal/cleanable/blood/xeno, -/turf/open/floor{ - dir = 8; - icon_state = "darkgreencorners2" - }, +/turf/open/floor/darkgreencorners2/west, /area/bigredv2/caves/eta/research) "bzh" = ( /obj/structure/pipes/standard/manifold/fourway/hidden/green, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/eta/research) "bzi" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/decal/cleanable/blood, -/turf/open/floor{ - dir = 8; - icon_state = "darkgreencorners2" - }, +/turf/open/floor/darkgreencorners2/west, /area/bigredv2/caves/eta/research) "bzj" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/west, /area/bigredv2/caves/eta/research) "bzk" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -25718,18 +18092,14 @@ }, /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/eta/research) "bzl" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/eta/research) "bzm" = ( /obj/structure/pipes/vents/pump{ @@ -25738,37 +18108,24 @@ /turf/open/floor/plating, /area/bigredv2/caves/eta/research) "bzn" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_22" - }, +/turf/open/mars_cave/mars_cave_22, /area/bigredv2/caves/eta/research) "bzo" = ( /obj/effect/landmark/crap_item, -/turf/open/mars_cave{ - icon_state = "mars_cave_7" - }, +/turf/open/mars_cave/mars_cave_7, /area/bigredv2/caves_research) "bzp" = ( -/turf/open/floor{ - dir = 4; - icon_state = "darkgreencorners2" - }, +/turf/open/floor/darkgreencorners2/east, /area/bigredv2/caves/eta/storage) "bzq" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor{ - dir = 4; - icon_state = "darkgreencorners2" - }, +/turf/open/floor/darkgreencorners2/east, /area/bigredv2/caves/eta/storage) "bzr" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkgreencorners2" - }, +/turf/open/floor/darkgreencorners2/east, /area/bigredv2/caves/eta/storage) "bzs" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -25776,56 +18133,39 @@ dir = 1; name = "\improper Eta Lab Armory" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/caves/eta/research) "bzt" = ( /obj/structure/surface/table, -/turf/open/floor{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/west, /area/bigredv2/caves/eta/research) "bzu" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_10" - }, +/turf/open/mars_cave/mars_cave_10, /area/bigredv2/caves/eta/research) "bzv" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/mars_cave{ - icon_state = "mars_cave_11" - }, +/turf/open/mars_cave/mars_cave_11, /area/bigredv2/caves/eta/research) "bzw" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "darkgreencorners2" - }, +/turf/open/floor/darkgreencorners2, /area/bigredv2/caves/eta/storage) "bzx" = ( /obj/structure/machinery/light, -/turf/open/floor{ - icon_state = "darkgreencorners2" - }, +/turf/open/floor/darkgreencorners2, /area/bigredv2/caves/eta/storage) "bzy" = ( /obj/effect/landmark/crap_item, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/eta/storage) "bzz" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/eta/storage) "bzA" = ( /obj/effect/decal/cleanable/dirt, @@ -25833,91 +18173,63 @@ dir = 4 }, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor{ - icon_state = "darkgreencorners2" - }, +/turf/open/floor/darkgreencorners2, /area/bigredv2/caves/eta/storage) "bzB" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor{ - icon_state = "darkgreencorners2" - }, +/turf/open/floor/darkgreencorners2, /area/bigredv2/caves/eta/storage) "bzC" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "darkgreencorners2" - }, +/turf/open/floor/darkgreencorners2, /area/bigredv2/caves/eta/storage) "bzD" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/eta/research) "bzE" = ( /obj/structure/bed/chair/office/dark{ dir = 4 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/north, /area/bigredv2/caves/eta/research) "bzF" = ( /obj/structure/surface/table, /obj/effect/spawner/random/tech_supply, /obj/item/phone, -/turf/open/floor{ - dir = 1; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/north, /area/bigredv2/caves/eta/research) "bzG" = ( /obj/structure/surface/table, /obj/item/storage/fancy/vials/random, -/turf/open/floor{ - dir = 1; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/north, /area/bigredv2/caves/eta/research) "bzH" = ( /obj/structure/closet/secure_closet/RD, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor{ - dir = 1; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/north, /area/bigredv2/caves/eta/research) "bzI" = ( /obj/structure/machinery/computer/cameras, /obj/structure/surface/table, -/turf/open/floor{ - dir = 5; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/northeast, /area/bigredv2/caves/eta/research) "bzJ" = ( /obj/item/weapon/gun/smg/m39, /obj/structure/closet/secure_closet/guncabinet/wy, -/turf/open/floor{ - dir = 9; - icon_state = "redfull" - }, +/turf/open/floor/redfull/northwest, /area/bigredv2/caves/eta/research) "bzK" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/eta/research) "bzL" = ( /obj/structure/machinery/light{ @@ -25927,46 +18239,31 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor{ - dir = 9; - icon_state = "redfull" - }, +/turf/open/floor/redfull/northwest, /area/bigredv2/caves/eta/research) "bzM" = ( /obj/structure/closet/secure_closet, -/turf/open/floor{ - dir = 9; - icon_state = "redfull" - }, +/turf/open/floor/redfull/northwest, /area/bigredv2/caves/eta/research) "bzN" = ( /obj/structure/machinery/computer/cameras, -/turf/open/floor{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/west, /area/bigredv2/caves/eta/research) "bzO" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/mars_cave{ - icon_state = "mars_cave_6" - }, +/turf/open/mars_cave/mars_cave_6, /area/bigredv2/caves/eta/research) "bzP" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/mars_cave{ - icon_state = "mars_cave_10" - }, +/turf/open/mars_cave/mars_cave_10, /area/bigredv2/caves/eta/research) "bzQ" = ( /obj/structure/machinery/door/airlock/almayer/research/glass/colony{ dir = 1; name = "\improper Eta Lab Server" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/caves/eta/storage) "bzR" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -25974,24 +18271,17 @@ dir = 1; name = "\improper Eta Lab Security Office" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/caves/eta/storage) "bzT" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 8; - icon_state = "darkgreencorners2" - }, +/turf/open/floor/darkgreencorners2/west, /area/bigredv2/caves/eta/research) "bzU" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/landmark/crap_item, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/eta/research) "bzW" = ( /obj/structure/bed/chair/office/light{ @@ -26000,34 +18290,23 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor{ - dir = 5; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/northeast, /area/bigredv2/caves/eta/research) "bzX" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/eta/research) "bzY" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 9; - icon_state = "redfull" - }, +/turf/open/floor/redfull/northwest, /area/bigredv2/caves/eta/research) "bzZ" = ( /obj/structure/machinery/vending/snack, -/turf/open/floor{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/west, /area/bigredv2/caves/eta/research) "bAa" = ( /obj/structure/bed/chair, @@ -26035,85 +18314,60 @@ /area/bigredv2/caves/eta/research) "bAb" = ( /obj/structure/bed/chair, -/turf/open/mars_cave{ - icon_state = "mars_cave_23" - }, +/turf/open/mars_cave/mars_cave_23, /area/bigredv2/caves/eta/research) "bAc" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_5" - }, +/turf/open/mars_cave/mars_cave_5, /area/bigredv2/caves/eta/research) "bAd" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/mars_cave{ - icon_state = "mars_cave_5" - }, +/turf/open/mars_cave/mars_cave_5, /area/bigredv2/caves/eta/research) "bAe" = ( /obj/effect/landmark/crap_item, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/mars_cave{ - icon_state = "mars_cave_5" - }, +/turf/open/mars_cave/mars_cave_5, /area/bigredv2/caves_se) "bAf" = ( /obj/structure/machinery/r_n_d/server, -/turf/open/floor{ - icon_state = "podhatchfloor" - }, +/turf/open/floor/podhatchfloor, /area/bigredv2/caves/eta/storage) "bAg" = ( -/turf/open/floor{ - icon_state = "podhatchfloor" - }, +/turf/open/floor/podhatchfloor, /area/bigredv2/caves/eta/storage) "bAh" = ( -/turf/open/floor{ - icon_state = "darkish" - }, +/turf/open/floor/darkish, /area/bigredv2/caves/eta/storage) "bAi" = ( /obj/structure/machinery/computer/cameras, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/eta/storage) "bAj" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/eta/storage) "bAn" = ( /obj/structure/bed/chair/office/dark{ dir = 4 }, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/eta/research) "bAo" = ( /obj/structure/surface/table, /obj/item/trash/kepler, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/engineering) "bAp" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/east, /area/bigredv2/caves/eta/research) "bAq" = ( /obj/structure/machinery/light{ @@ -26121,25 +18375,16 @@ }, /obj/structure/machinery/computer/aifixer, /obj/structure/surface/table, -/turf/open/floor{ - dir = 4; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/east, /area/bigredv2/caves/eta/research) "bAr" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor{ - dir = 9; - icon_state = "redfull" - }, +/turf/open/floor/redfull/northwest, /area/bigredv2/caves/eta/research) "bAs" = ( /obj/structure/machinery/vending/cola, -/turf/open/floor{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/west, /area/bigredv2/caves/eta/research) "bAu" = ( /obj/structure/surface/table, @@ -26151,64 +18396,47 @@ dir = 8 }, /obj/effect/landmark/objective_landmark/far, -/turf/open/floor{ - icon_state = "darkish" - }, +/turf/open/floor/darkish, /area/bigredv2/caves/eta/storage) "bAw" = ( /obj/structure/machinery/door/airlock/almayer/research/glass/colony{ name = "\improper Eta Lab Server" }, -/turf/open/floor{ - icon_state = "darkish" - }, +/turf/open/floor/darkish, /area/bigredv2/caves/eta/storage) "bAx" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor{ - icon_state = "darkish" - }, +/turf/open/floor/darkish, /area/bigredv2/caves/eta/storage) "bAy" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor{ - icon_state = "darkish" - }, +/turf/open/floor/darkish, /area/bigredv2/caves/eta/storage) "bAz" = ( /obj/structure/machinery/light{ dir = 8 }, /obj/structure/closet/secure_closet/security, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/eta/storage) "bAA" = ( /obj/structure/bed/chair/office/light{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/eta/storage) "bAB" = ( /obj/effect/decal/cleanable/blood/xeno, -/turf/open/floor{ - dir = 8; - icon_state = "darkgreencorners2" - }, +/turf/open/floor/darkgreencorners2/west, /area/bigredv2/caves/eta/research) "bAC" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/eta/research) "bAD" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -26217,50 +18445,33 @@ /obj/structure/machinery/door/airlock/almayer/research/glass/colony{ name = "\improper Eta Lab Director's Office" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/caves/eta/research) "bAE" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/west, /area/bigredv2/caves/eta/research) "bAF" = ( /obj/structure/surface/table, /obj/effect/spawner/random/technology_scanner, -/turf/open/floor{ - dir = 10; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/southwest, /area/bigredv2/caves/eta/research) "bAH" = ( /obj/structure/lamarr, -/turf/open/floor{ - dir = 4; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/east, /area/bigredv2/caves/eta/research) "bAI" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 9; - icon_state = "redfull" - }, +/turf/open/floor/redfull/northwest, /area/bigredv2/caves/eta/research) "bAJ" = ( /obj/structure/machinery/vending/coffee, -/turf/open/floor{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/west, /area/bigredv2/caves/eta/research) "bAK" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, @@ -26271,86 +18482,59 @@ /turf/open/floor/plating, /area/bigredv2/caves/eta/research) "bAM" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_12" - }, +/turf/open/mars_cave/mars_cave_12, /area/bigredv2/caves/eta/research) "bAN" = ( /obj/structure/machinery/telecomms/server, -/turf/open/floor{ - icon_state = "podhatchfloor" - }, +/turf/open/floor/podhatchfloor, /area/bigredv2/caves/eta/storage) "bAO" = ( /obj/structure/closet/secure_closet/engineering_personal, -/turf/open/floor{ - icon_state = "darkish" - }, +/turf/open/floor/darkish, /area/bigredv2/caves/eta/storage) "bAP" = ( /obj/structure/closet/secure_closet/engineering_electrical, -/turf/open/floor{ - icon_state = "darkish" - }, +/turf/open/floor/darkish, /area/bigredv2/caves/eta/storage) "bAQ" = ( /obj/structure/closet/secure_closet/security/science, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/eta/storage) "bAR" = ( /obj/structure/machinery/light, /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor{ - dir = 10; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/southwest, /area/bigredv2/caves/eta/research) "bAS" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2, /area/bigredv2/caves/eta/research) "bAT" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor{ - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2, /area/bigredv2/caves/eta/research) "bAU" = ( /obj/structure/machinery/light, -/turf/open/floor{ - dir = 9; - icon_state = "redfull" - }, +/turf/open/floor/redfull/northwest, /area/bigredv2/caves/eta/research) "bAV" = ( /obj/structure/machinery/vending/cigarette/colony, -/turf/open/floor{ - dir = 10; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/southwest, /area/bigredv2/caves/eta/research) "bAW" = ( -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/bigredv2/caves/eta/research) "bAX" = ( /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/bigredv2/caves/eta/research) "bAY" = ( /obj/structure/machinery/light{ @@ -26363,141 +18547,88 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/blood/drip, /obj/effect/decal/cleanable/blood/gibs/down, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/eta/research) "bBa" = ( /obj/structure/machinery/light{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "darkgreencorners2" - }, +/turf/open/floor/darkgreencorners2, /area/bigredv2/caves/eta/research) "bBb" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - dir = 9; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/northwest, /area/bigredv2/caves/eta/xenobiology) "bBc" = ( -/turf/open/floor{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/north, /area/bigredv2/caves/eta/xenobiology) "bBd" = ( /obj/structure/target, -/turf/open/floor{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/north, /area/bigredv2/caves/eta/xenobiology) "bBe" = ( /obj/effect/landmark/monkey_spawn, -/turf/open/floor{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/north, /area/bigredv2/caves/eta/xenobiology) "bBf" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - dir = 5; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/northeast, /area/bigredv2/caves/eta/xenobiology) "bBg" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/bigredv2/outside/filtration_plant) "bBh" = ( /obj/structure/filingcabinet, -/turf/open/floor{ - dir = 9; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/northwest, /area/bigredv2/caves/eta/research) "bBj" = ( /obj/structure/machinery/light{ dir = 1 }, /obj/structure/filingcabinet, -/turf/open/floor{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/north, /area/bigredv2/caves/eta/research) "bBk" = ( /obj/structure/filingcabinet/medical, -/turf/open/floor{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/north, /area/bigredv2/caves/eta/research) "bBl" = ( /obj/structure/machinery/photocopier, -/turf/open/floor{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/north, /area/bigredv2/caves/eta/research) "bBn" = ( /obj/structure/machinery/light{ dir = 1 }, /obj/structure/machinery/biogenerator, -/turf/open/floor{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/north, /area/bigredv2/caves/eta/research) "bBo" = ( /obj/structure/machinery/seed_extractor, -/turf/open/floor{ - dir = 5; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/northeast, /area/bigredv2/caves/eta/research) "bBp" = ( -/turf/open/jungle{ - bushes_spawn = 0; - icon_state = "grass_impenetrable" - }, +/turf/open/jungle/impenetrable, /area/bigredv2/caves/eta/research) "bBq" = ( -/turf/open/floor{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/west, /area/bigredv2/caves/eta/xenobiology) "bBr" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/eta/xenobiology) "bBs" = ( /obj/effect/landmark/xeno_spawn, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/eta/xenobiology) "bBt" = ( -/turf/open/floor{ - dir = 4; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/east, /area/bigredv2/caves/eta/xenobiology) "bBv" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, @@ -26507,66 +18638,44 @@ /obj/structure/machinery/door/airlock/almayer/maint/colony{ name = "\improper Eta Lab Maintenance Storage" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/caves/eta/storage) "bBA" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/blood, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/eta/research) "bBB" = ( /obj/effect/landmark/crap_item, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/eta/research) "bBC" = ( /obj/effect/landmark/monkey_spawn, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/jungle{ - bushes_spawn = 0; - icon_state = "grass_impenetrable" - }, +/turf/open/jungle/impenetrable, /area/bigredv2/caves/eta/research) "bBH" = ( /obj/structure/machinery/door/airlock/almayer/research/glass/colony{ name = "\improper Eta Lab Cell" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/caves/eta/research) "bBI" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/jungle{ - bushes_spawn = 0; - icon_state = "grass_impenetrable" - }, +/turf/open/jungle/impenetrable, /area/bigredv2/caves/eta/research) "bBJ" = ( -/turf/open/floor{ - dir = 10; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/southwest, /area/bigredv2/caves/eta/xenobiology) "bBK" = ( -/turf/open/floor{ - icon_state = "darkred2" - }, +/turf/open/floor/darkred2, /area/bigredv2/caves/eta/xenobiology) "bBL" = ( -/turf/open/floor{ - dir = 6; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/southeast, /area/bigredv2/caves/eta/xenobiology) "bBN" = ( /obj/structure/closet/firecloset, @@ -26577,269 +18686,175 @@ /turf/open/floor/plating, /area/bigredv2/caves/eta/storage) "bBP" = ( -/turf/open/floor{ - icon_state = "darkredcorners2" - }, +/turf/open/floor/darkredcorners2, /area/bigredv2/caves/eta/research) "bBQ" = ( /obj/structure/machinery/light, -/turf/open/floor{ - icon_state = "darkred2" - }, +/turf/open/floor/darkred2, /area/bigredv2/caves/eta/research) "bBR" = ( -/turf/open/floor{ - dir = 8; - icon_state = "darkredcorners2" - }, +/turf/open/floor/darkredcorners2/west, /area/bigredv2/caves/eta/research) "bBS" = ( /obj/structure/machinery/door/airlock/almayer/research/glass/colony{ dir = 1; name = "\improper Eta Lab Cell" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/caves/eta/xenobiology) "bBT" = ( /obj/structure/machinery/light{ dir = 8 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 8; - icon_state = "darkgreencorners2" - }, +/turf/open/floor/darkgreencorners2/west, /area/bigredv2/caves/eta/research) "bBU" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/eta/living) "bBV" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/blood/drip, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/eta/research) "bBW" = ( /obj/item/tool/pen, /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/eta/research) "bBX" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/east, /area/bigredv2/caves/eta/research) "bBY" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/west, /area/bigredv2/caves/eta/research) "bBZ" = ( /obj/effect/landmark/xeno_spawn, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/eta/research) "bCa" = ( /obj/structure/xenoautopsy/tank, -/turf/open/floor{ - dir = 8; - icon_state = "darkredcorners2" - }, +/turf/open/floor/darkredcorners2/west, /area/bigredv2/caves/eta/xenobiology) "bCb" = ( /obj/effect/decal/cleanable/blood/xeno, -/turf/open/floor{ - dir = 4; - icon_state = "darkredcorners2" - }, +/turf/open/floor/darkredcorners2/east, /area/bigredv2/caves/eta/xenobiology) "bCc" = ( /obj/structure/machinery/computer/cameras, -/turf/open/floor{ - dir = 4; - icon_state = "darkredcorners2" - }, +/turf/open/floor/darkredcorners2/east, /area/bigredv2/caves/eta/xenobiology) "bCd" = ( /obj/structure/surface/table, /obj/effect/spawner/random/technology_scanner, -/turf/open/floor{ - dir = 4; - icon_state = "darkredcorners2" - }, +/turf/open/floor/darkredcorners2/east, /area/bigredv2/caves/eta/xenobiology) "bCe" = ( /obj/structure/surface/table, /obj/item/alienjar, -/turf/open/floor{ - dir = 4; - icon_state = "darkredcorners2" - }, +/turf/open/floor/darkredcorners2/east, /area/bigredv2/caves/eta/xenobiology) "bCf" = ( /obj/structure/surface/table, /obj/structure/xenoautopsy, -/turf/open/floor{ - dir = 4; - icon_state = "darkredcorners2" - }, +/turf/open/floor/darkredcorners2/east, /area/bigredv2/caves/eta/xenobiology) "bCg" = ( /obj/structure/surface/table, -/obj/item/XenoBio/Blood, -/obj/item/XenoBio/Blood, +/obj/item/oldresearch/Blood, +/obj/item/oldresearch/Blood, /obj/item/tool/pen, -/turf/open/floor{ - dir = 4; - icon_state = "darkredcorners2" - }, +/turf/open/floor/darkredcorners2/east, /area/bigredv2/caves/eta/xenobiology) "bCi" = ( /obj/structure/closet/l3closet/scientist, -/turf/open/floor{ - dir = 9; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/northwest, /area/bigredv2/caves/eta/xenobiology) "bCj" = ( /obj/structure/closet/l3closet/scientist, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor{ - dir = 1; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/north, /area/bigredv2/caves/eta/xenobiology) "bCk" = ( /obj/structure/closet/l3closet/scientist, -/turf/open/floor{ - dir = 5; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/northeast, /area/bigredv2/caves/eta/xenobiology) "bCl" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/crap_item, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor{ - dir = 8; - icon_state = "darkgreencorners2" - }, +/turf/open/floor/darkgreencorners2/west, /area/bigredv2/caves/eta/research) "bCm" = ( /obj/structure/surface/table, /obj/structure/machinery/faxmachine, -/turf/open/floor{ - dir = 4; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/east, /area/bigredv2/caves/eta/research) "bCn" = ( /obj/structure/machinery/chem_dispenser, -/turf/open/floor{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/west, /area/bigredv2/caves/eta/research) "bCo" = ( /obj/structure/xenoautopsy/tank/broken, -/turf/open/floor{ - dir = 8; - icon_state = "darkredcorners2" - }, +/turf/open/floor/darkredcorners2/west, /area/bigredv2/caves/eta/xenobiology) "bCp" = ( /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/eta/xenobiology) "bCq" = ( -/turf/open/floor{ - dir = 8; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/west, /area/bigredv2/caves/eta/xenobiology) "bCr" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/floor{ - dir = 4; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/east, /area/bigredv2/caves/eta/xenobiology) "bCs" = ( /obj/effect/landmark/good_item, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/eta/research) "bCt" = ( /obj/structure/surface/table, /obj/effect/spawner/random/tool, -/turf/open/floor{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/west, /area/bigredv2/caves/eta/research) "bCu" = ( /obj/structure/bed/chair/office/dark{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/eta/research) "bCv" = ( /obj/structure/surface/table, /obj/structure/machinery/reagentgrinder, -/turf/open/floor{ - dir = 4; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/east, /area/bigredv2/caves/eta/research) "bCw" = ( /obj/structure/machinery/chem_master, -/turf/open/floor{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/west, /area/bigredv2/caves/eta/research) "bCx" = ( /obj/structure/xenoautopsy/tank/hugger, -/turf/open/floor{ - dir = 8; - icon_state = "darkredcorners2" - }, +/turf/open/floor/darkredcorners2/west, /area/bigredv2/caves/eta/xenobiology) "bCy" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/eta/xenobiology) "bCz" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -26848,18 +18863,14 @@ /obj/structure/machinery/door/airlock/almayer/research/glass/colony{ name = "\improper Eta Lab Xenobiology Lab" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/caves/eta/xenobiology) "bCA" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/eta/xenobiology) "bCC" = ( /obj/structure/surface/table, @@ -26867,10 +18878,7 @@ /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/east, /area/bigredv2/caves/eta/research) "bCE" = ( /obj/item/stack/sheet/xenochitin, @@ -26884,17 +18892,12 @@ /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/eta/xenobiology) "bCI" = ( /obj/structure/surface/table, /obj/effect/spawner/random/technology_scanner, -/turf/open/floor{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/west, /area/bigredv2/caves/eta/research) "bCJ" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, @@ -26914,171 +18917,112 @@ /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkredcorners2" - }, +/turf/open/floor/darkredcorners2/west, /area/bigredv2/caves/eta/xenobiology) "bCN" = ( /obj/structure/closet/crate/secure, -/turf/open/floor{ - icon_state = "darkredcorners2" - }, +/turf/open/floor/darkredcorners2, /area/bigredv2/caves/eta/xenobiology) "bCO" = ( -/turf/open/floor{ - dir = 10; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/southwest, /area/bigredv2/caves/eta/xenobiology) "bCP" = ( /obj/structure/machinery/light, -/turf/open/floor{ - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2, /area/bigredv2/caves/eta/xenobiology) "bCQ" = ( -/turf/open/floor{ - dir = 6; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/southeast, /area/bigredv2/caves/eta/xenobiology) "bCR" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/machinery/door/airlock/multi_tile/almayer/medidoor/colony{ name = "\improper Eta Lab" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/caves/eta/living) "bCS" = ( /obj/structure/machinery/autolathe, -/turf/open/floor{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/west, /area/bigredv2/caves/eta/research) "bCT" = ( /obj/structure/surface/table, /obj/effect/spawner/random/tool, -/turf/open/floor{ - dir = 4; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/east, /area/bigredv2/caves/eta/research) "bCU" = ( /obj/structure/surface/table, /obj/item/tool/pickaxe/plasmacutter, -/turf/open/floor{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/west, /area/bigredv2/caves/eta/research) "bCV" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/eta/xenobiology) "bCW" = ( /obj/structure/machinery/light{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "darkredcorners2" - }, +/turf/open/floor/darkredcorners2, /area/bigredv2/caves/eta/xenobiology) "bCX" = ( -/turf/open/floor{ - dir = 8; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/darkyellowcorners2/west, /area/bigredv2/caves/eta/living) "bCY" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/eta/living) "bCZ" = ( -/turf/open/floor{ - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/darkyellowcorners2, /area/bigredv2/caves/eta/living) "bDa" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor{ - icon_state = "darkred2" - }, +/turf/open/floor/darkred2, /area/bigredv2/caves/eta/research) "bDb" = ( /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/west, /area/bigredv2/caves/eta/xenobiology) "bDc" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "darkredcorners2" - }, +/turf/open/floor/darkredcorners2, /area/bigredv2/caves/eta/xenobiology) "bDd" = ( /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/east, /area/bigredv2/caves/eta/xenobiology) "bDe" = ( /obj/effect/landmark/monkey_spawn, -/turf/open/jungle{ - bushes_spawn = 0; - icon_state = "grass_impenetrable" - }, +/turf/open/jungle/impenetrable, /area/bigredv2/caves/eta/xenobiology) "bDf" = ( /obj/effect/decal/cleanable/blood/drip, -/turf/open/floor{ - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/darkyellowcorners2, /area/bigredv2/caves/eta/living) "bDg" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor{ - dir = 6; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/southeast, /area/bigredv2/caves/eta/research) "bDh" = ( /obj/structure/machinery/light{ dir = 8 }, /obj/structure/machinery/teleport/station, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/eta/research) "bDi" = ( -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/eta/storage) "bDj" = ( /obj/structure/machinery/computer/WYresearch, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/eta/research) "bDk" = ( /obj/structure/machinery/light{ @@ -27092,33 +19036,23 @@ }, /obj/effect/landmark/monkey_spawn, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/jungle{ - bushes_spawn = 0; - icon_state = "grass_impenetrable" - }, +/turf/open/jungle/impenetrable, /area/bigredv2/caves/eta/xenobiology) "bDm" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/darkyellowcorners2/west, /area/bigredv2/caves/eta/living) "bDn" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/blood/drip, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/eta/living) "bDo" = ( /obj/structure/bookcase/manuals/research_and_development, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/caves/eta/living) "bDp" = ( /obj/structure/machinery/light{ @@ -27128,9 +19062,7 @@ /obj/item/disk/nuclear, /obj/item/weapon/gun/pistol/mod88, /obj/structure/pipes/vents/pump/on, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/caves/eta/living) "bDq" = ( /obj/structure/machinery/light{ @@ -27139,9 +19071,7 @@ /obj/structure/closet/cabinet, /obj/item/clothing/accessory/armband, /obj/structure/pipes/vents/pump/on, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/caves/eta/living) "bDr" = ( /obj/structure/machinery/light{ @@ -27150,41 +19080,29 @@ /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/floor{ - dir = 8; - icon_state = "darkredcorners2" - }, +/turf/open/floor/darkredcorners2/west, /area/bigredv2/caves/eta/xenobiology) "bDs" = ( /obj/structure/machinery/alarm{ dir = 4; pixel_x = -30 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/darkyellowcorners2/west, /area/bigredv2/caves/eta/living) "bDt" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/good_item, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/eta/living) "bDu" = ( /obj/structure/surface/table, /obj/item/book/manual/nuclear, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/caves/eta/living) "bDv" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/caves/eta/living) "bDx" = ( /obj/structure/machinery/light{ @@ -27200,42 +19118,32 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor{ - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/darkyellowcorners2, /area/bigredv2/caves/eta/living) "bDA" = ( /obj/structure/surface/table, /obj/structure/machinery/computer/pod/old{ name = "Personal Computer" }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/caves/eta/living) "bDB" = ( /obj/structure/bed/chair/office/light{ dir = 8 }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/caves/eta/living) "bDC" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/landmark/crap_item, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/caves/eta/living) "bDD" = ( /obj/structure/bed/chair/office/light{ dir = 4 }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/caves/eta/living) "bDE" = ( /obj/item/trash/kepler, @@ -27250,40 +19158,28 @@ "bDG" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/blood/xeno, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/eta/living) "bDH" = ( /obj/effect/landmark/crap_item, -/turf/open/floor{ - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/darkyellowcorners2, /area/bigredv2/caves/eta/living) "bDJ" = ( /obj/structure/showcase, -/turf/open/floor{ - dir = 8; - icon_state = "carpet6-2" - }, +/turf/open/floor/carpet6_2/west, /area/bigredv2/caves/eta/living) "bDK" = ( /obj/structure/showcase{ desc = "A stand with a plastic display of some kind of weird machine."; icon_state = "coinpress0" }, -/turf/open/floor{ - dir = 8; - icon_state = "carpet10-8" - }, +/turf/open/floor/carpet10_8/west, /area/bigredv2/caves/eta/living) "bDL" = ( /obj/structure/surface/table, /obj/effect/spawner/random/tool, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/caves/eta/living) "bDM" = ( /obj/structure/surface/table, @@ -27292,9 +19188,7 @@ /area/bigredv2/caves/eta/living) "bDN" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/darkyellowcorners2, /area/bigredv2/caves/eta/living) "bDO" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -27302,31 +19196,23 @@ dir = 1; name = "\improper Eta Lab Research Office" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/caves/eta/living) "bDP" = ( /obj/structure/machinery/door/airlock/almayer/research/glass/colony{ dir = 1; name = "\improper Eta Lab Canteen" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/caves/eta/living) "bDQ" = ( -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/bigredv2/caves/eta/living) "bDR" = ( /obj/structure/toilet{ dir = 8 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/bigredv2/caves/eta/living) "bDS" = ( /obj/structure/machinery/light{ @@ -27336,48 +19222,32 @@ /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/floor{ - icon_state = "darkredcorners2" - }, +/turf/open/floor/darkredcorners2, /area/bigredv2/caves/eta/xenobiology) "bDT" = ( /obj/structure/machinery/light{ dir = 8 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 8; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/darkyellowcorners2/west, /area/bigredv2/caves/eta/living) "bDU" = ( -/turf/open/floor{ - dir = 1; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/darkyellowcorners2/north, /area/bigredv2/caves/eta/living) "bDV" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/darkyellowcorners2/north, /area/bigredv2/caves/eta/living) "bDW" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 8; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/darkyellowcorners2/west, /area/bigredv2/caves/eta/living) "bDX" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/decal/cleanable/blood/drip, -/turf/open/floor{ - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/darkyellowcorners2, /area/bigredv2/caves/eta/living) "bEc" = ( /obj/structure/machinery/light, @@ -27385,18 +19255,14 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/darkyellowcorners2, /area/bigredv2/caves/eta/living) "bEd" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/eta/living) "bEe" = ( /obj/structure/sink{ @@ -27405,82 +19271,56 @@ pixel_y = 2 }, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/bigredv2/caves/eta/living) "bEf" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/mars_cave{ - icon_state = "mars_dirt_7" - }, +/turf/open/mars_cave/mars_dirt_7, /area/bigredv2/caves/eta/xenobiology) "bEg" = ( /obj/effect/landmark/xeno_spawn, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/mars{ - icon_state = "mars_dirt_10" - }, +/turf/open/mars/mars_dirt_10, /area/bigredv2/caves/eta/xenobiology) "bEh" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/darkyellowcorners2, /area/bigredv2/caves/eta/living) "bEi" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor{ - dir = 8; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/darkyellowcorners2/west, /area/bigredv2/caves/eta/living) "bEj" = ( /obj/structure/machinery/door/airlock/almayer/generic{ name = "\improper Eta Lab Restroom" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/caves/eta/living) "bEk" = ( -/turf/open/mars_cave{ - icon_state = "mars_dirt_6" - }, +/turf/open/mars_cave/mars_dirt_6, /area/bigredv2/caves/eta/xenobiology) "bEl" = ( /obj/structure/showcase{ icon_state = "mechfab1" }, -/turf/open/floor{ - dir = 8; - icon_state = "carpet5-1" - }, +/turf/open/floor/carpet5_1/west, /area/bigredv2/caves/eta/living) "bEm" = ( /obj/structure/showcase{ icon_state = "bus" }, -/turf/open/floor{ - dir = 8; - icon_state = "carpet9-4" - }, +/turf/open/floor/carpet9_4/west, /area/bigredv2/caves/eta/living) "bEn" = ( /obj/structure/bookcase/manuals/medical, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/caves/eta/living) "bEo" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 8; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/darkyellowcorners2/west, /area/bigredv2/caves/eta/living) "bEp" = ( /obj/structure/sink{ @@ -27488,58 +19328,41 @@ pixel_x = -12; pixel_y = 2 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/bigredv2/caves/eta/living) "bEq" = ( /obj/structure/machinery/shower{ dir = 8 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/bigredv2/caves/eta/living) "bEr" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_22" - }, +/turf/open/mars_cave/mars_cave_22, /area/bigredv2/caves/eta/xenobiology) "bEt" = ( /obj/effect/landmark/crap_item, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/caves/eta/living) "bEv" = ( /obj/structure/machinery/light{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/darkyellowcorners2, /area/bigredv2/caves/eta/living) "bEw" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor{ - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/darkyellowcorners2, /area/bigredv2/caves/eta/living) "bEx" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/jungle{ - bushes_spawn = 0; - icon_state = "grass_impenetrable" - }, +/turf/open/jungle/impenetrable, /area/bigredv2/caves/eta/living) "bEy" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/caves/eta/living) "bEz" = ( /obj/structure/bed/chair/comfy/orange, @@ -27548,17 +19371,12 @@ "bEA" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/darkyellowcorners2, /area/bigredv2/caves/eta/living) "bEB" = ( /obj/structure/surface/table, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - dir = 9; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/northwest, /area/bigredv2/caves/eta/research) "bEC" = ( /obj/structure/machinery/light, @@ -27566,24 +19384,18 @@ /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/caves/eta/living) "bED" = ( /obj/structure/bed, /obj/effect/landmark/corpsespawner/scientist, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/caves/eta/living) "bEE" = ( /obj/structure/surface/table, /obj/item/spacecash/c1000, /obj/item/spacecash/c1000, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/caves/eta/living) "bEF" = ( /obj/structure/surface/table, @@ -27595,10 +19407,7 @@ /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/darkyellowcorners2/west, /area/bigredv2/caves/eta/living) "bEH" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -27607,9 +19416,7 @@ /obj/structure/machinery/door/airlock/almayer/research/glass/colony{ name = "\improper Eta Lab Relaxation" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/caves/eta/living) "bEI" = ( /obj/structure/bed/chair/comfy/orange{ @@ -27626,19 +19433,14 @@ dir = 5 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/eta/living) "bEK" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/darkyellowcorners2/north, /area/bigredv2/caves/eta/living) "bEL" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -27646,19 +19448,13 @@ }, /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/darkyellowcorners2/north, /area/bigredv2/caves/eta/living) "bEM" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/darkyellowcorners2/north, /area/bigredv2/caves/eta/living) "bEN" = ( /obj/structure/machinery/vending/coffee, @@ -27666,38 +19462,28 @@ /area/bigredv2/caves/eta/living) "bEO" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor{ - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/darkyellowcorners2, /area/bigredv2/caves/eta/living) "bEP" = ( /obj/structure/machinery/light, -/turf/open/floor{ - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/darkyellowcorners2, /area/bigredv2/caves/eta/living) "bEQ" = ( /obj/structure/machinery/light, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/darkyellowcorners2, /area/bigredv2/caves/eta/living) "bER" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor{ - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/darkyellowcorners2, /area/bigredv2/caves/eta/living) "bES" = ( /obj/structure/machinery/light, /turf/open/floor, /area/bigredv2/caves/eta/living) "bET" = ( -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/office_complex) "bFw" = ( /turf/closed/wall/solaris/reinforced, @@ -27708,18 +19494,16 @@ /obj/item/tool/hand_labeler, /turf/open/floor, /area/bigred/ground/garage_workshop) +"bGC" = ( +/turf/open/mars_cave/mars_cave_5, +/area/bigredv2/outside/n) "bGL" = ( -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/lz2_south_cas) "bII" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/caves/mining) "bJz" = ( /obj/structure/bed/chair{ @@ -27727,11 +19511,11 @@ pixel_x = -9; pixel_y = 13 }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) +"bJQ" = ( +/turf/open/mars/mars_dirt_10, +/area/bigredv2/outside/n) "bJS" = ( /obj/structure/largecrate/random/barrel/green, /obj/effect/decal/cleanable/dirt, @@ -27740,41 +19524,27 @@ "bKY" = ( /obj/structure/fence, /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/mars_cave{ - icon_state = "mars_cave_16" - }, +/turf/open/mars_cave/mars_cave_16, /area/bigredv2/outside/filtration_cave_cas) "bLA" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves_se) "bMa" = ( /obj/structure/surface/rack, /obj/item/weapon/gun/pistol/mod88, /obj/item/weapon/gun/pistol/mod88, -/turf/open/floor{ - dir = 8; - icon_state = "redcorner" - }, +/turf/open/floor/redcorner/west, /area/bigredv2/outside/admin_building) "bMf" = ( -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/bigredv2/outside/filtration_plant) "bMz" = ( -/turf/open/floor{ - dir = 5; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/northeast, /area/bigredv2/outside/ne) "bNl" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves/lambda/xenobiology) "bNA" = ( /obj/structure/surface/table, @@ -27783,31 +19553,35 @@ /area/bigredv2/outside/dorms) "bNE" = ( /obj/structure/closet/secure_closet/brig, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/marshal_office) +"bOZ" = ( +/obj/structure/pipes/vents/pump{ + dir = 8 + }, +/turf/open/floor/white, +/area/bigredv2/outside/medical) "bPy" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_nest, /obj/effect/landmark/structure_spawner/xvx_hive/xeno_nest, -/turf/open/mars_cave{ - icon_state = "mars_cave_17" - }, +/turf/open/mars_cave/mars_cave_17, /area/bigredv2/caves/mining) "bQb" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_18" - }, +/turf/open/mars_cave/mars_cave_18, /area/bigredv2/outside/lz2_west_cas) "bQe" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor, /area/bigredv2/outside/admin_building) +"bQh" = ( +/turf/open/mars/mars_dirt_11, +/area/bigredv2/outside/n) "bQi" = ( -/turf/open/floor{ - icon_state = "darkish" - }, +/turf/open/floor/darkish, /area/bigredv2/caves/lambda/virology) +"bQG" = ( +/turf/open/mars_cave/mars_dirt_6, +/area/bigredv2/caves_lambda) "bRd" = ( /obj/structure/cable{ icon_state = "1-4" @@ -27816,10 +19590,14 @@ /area/bigredv2/oob) "bRm" = ( /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/mars_cave{ - icon_state = "mars_cave_7" - }, +/turf/open/mars_cave/mars_cave_7, /area/bigredv2/outside/lz1_telecomm_cas) +"bRC" = ( +/obj/effect/landmark/nightmare{ + insert_tag = "reactor_meltdown" + }, +/turf/closed/wall/solaris/rock, +/area/bigredv2/caves) "bRK" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/surface/rack, @@ -27830,11 +19608,12 @@ pixel_y = -8 }, /obj/item/tool/pickaxe/drill, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) +"bRV" = ( +/obj/structure/machinery/power/reactor/colony, +/turf/open/floor/white, +/area/bigredv2/outside/virology) "bSw" = ( /obj/structure/cable{ icon_state = "1-4" @@ -27842,39 +19621,40 @@ /obj/structure/cable{ icon_state = "4-10" }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) +"bSy" = ( +/obj/structure/barricade/handrail{ + dir = 8 + }, +/turf/open/floor/asteroidwarning/west, +/area/bigredv2/outside/c) "bTm" = ( /obj/structure/surface/table, /obj/item/folder/black_random, /obj/item/device/flashlight/lamp{ pixel_y = 15 }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "bTW" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_7" - }, +/turf/open/mars_cave/mars_cave_7, /area/bigredv2/caves_se) -"bWk" = ( -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" +"bVX" = ( +/obj/structure/barricade/wooden{ + desc = "This barricade is heavily reinforced. Nothing short of blasting it open seems like it'll do the trick, that or melting the breams supporting it..."; + dir = 8; + health = 25000 }, +/obj/structure/blocker/forcefield/multitile_vehicles, +/turf/open/mars_cave/mars_cave_13, +/area/bigredv2/caves_north) +"bWk" = ( +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/filtration_plant) "bWl" = ( /obj/structure/largecrate/random/barrel/red, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigred/ground/garage_workshop) "bXe" = ( /obj/structure/closet/crate/freezer/rations, @@ -27885,19 +19665,9 @@ /obj/item/reagent_container/spray/cleaner, /turf/open/floor, /area/bigredv2/outside/cargo) -"bYp" = ( -/obj/effect/decal/cleanable/blood/oil, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/telecomm/lz2_cave) "bYW" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/bigredv2/outside/engineering) "bZp" = ( /obj/structure/bed/chair{ @@ -27908,43 +19678,42 @@ "bZJ" = ( /obj/effect/decal/cleanable/dirt, /obj/item/clothing/suit/radiation, -/turf/open/floor{ - dir = 8; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/darkyellowcorners2/west, /area/bigredv2/outside/engineering) "bZL" = ( /obj/effect/landmark/monkey_spawn, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor{ - icon_state = "whitepurplefull" - }, +/turf/open/floor/whitepurplefull, /area/bigredv2/caves/lambda/research) "caD" = ( /obj/effect/landmark/crap_item, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/north, /area/bigredv2/outside/s) "caN" = ( /obj/structure/surface/table, /obj/effect/landmark/objective_landmark/close, /turf/open/floor/carpet, /area/bigredv2/outside/admin_building) +"ccI" = ( +/obj/structure/machinery/power/apc{ + dir = 1; + start_charge = 0 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "W"; + layer = 2.5; + pixel_x = -1 + }, +/turf/open/floor/plating/warnplate/east, +/area/bigredv2/outside/telecomm/warehouse) "ccP" = ( /obj/structure/surface/table, /obj/effect/spawner/random/bomb_supply, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/bigredv2/outside/filtration_plant) "cdA" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_5" - }, +/turf/open/mars_cave/mars_cave_5, /area/bigredv2/outside/lz2_west_cas) "cec" = ( /obj/structure/bed, @@ -27955,69 +19724,63 @@ /obj/effect/landmark/corpsespawner/ua_riot, /obj/item/weapon/gun/rifle/m41a/training, /obj/effect/spawner/gibspawner/human, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves/mining) +"ceA" = ( +/obj/structure/machinery/light{ + dir = 4 + }, +/turf/open/mars_cave/mars_dirt_4, +/area/bigredv2/outside/e) "cfr" = ( /obj/item/explosive/grenade/baton{ dir = 8 }, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/caves/mining) "cgt" = ( -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/dorms) +"cgO" = ( +/turf/open/floor/asteroidwarning/northeast, +/area/bigredv2/outside/telecomm/n_cave) "chq" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/mars_cave{ - icon_state = "mars_cave_18" - }, +/turf/open/mars_cave/mars_cave_18, /area/bigredv2/caves_lambda) +"ciG" = ( +/obj/effect/landmark/hunter_secondary, +/turf/open/mars_cave/mars_cave_7, +/area/bigredv2/outside/n) "ciY" = ( /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/caves/mining) "cla" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/engineering) "clB" = ( -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigred/ground/garage_workshop) "cmC" = ( /obj/effect/decal/cleanable/blood/drip{ pixel_x = -1; pixel_y = 5 }, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves/mining) "cmG" = ( /obj/item/ore/iron{ pixel_x = 6; pixel_y = 9 }, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves/mining) "cnk" = ( /obj/structure/platform/kutjevo/rock{ @@ -28035,9 +19798,7 @@ /obj/structure/platform_decoration/kutjevo/rock{ dir = 4 }, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/space) "cns" = ( /obj/effect/landmark/nightmare{ @@ -28046,105 +19807,105 @@ /obj/structure/blocker/forcefield/multitile_vehicles, /turf/closed/wall/solaris/rock, /area/bigredv2/caves) +"cnG" = ( +/obj/structure/platform{ + dir = 1 + }, +/turf/open/floor/asteroidfloor/north, +/area/bigredv2/outside/telecomm/n_cave) "coT" = ( /obj/effect/landmark/objective_landmark/science, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/bar) "cpc" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/mars_cave{ - icon_state = "mars_cave_6" - }, +/turf/open/mars_cave/mars_cave_6, /area/bigredv2/caves_se) +"cpQ" = ( +/obj/structure/machinery/camera/autoname{ + dir = 1 + }, +/turf/open/floor/asteroidwarning, +/area/bigredv2/outside/space_port_lz2) "cqj" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/eta/storage) "cqZ" = ( /obj/effect/decal/cleanable/blood/drip, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves/mining) +"crd" = ( +/obj/structure/bed/chair/wood/normal{ + dir = 8 + }, +/obj/structure/pipes/standard/simple/hidden/green, +/turf/open/floor/chapel/east, +/area/bigredv2/outside/chapel) +"crl" = ( +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 4 + }, +/turf/open/floor/asteroidfloor/north, +/area/bigredv2/outside/space_port_lz2) "crv" = ( /obj/structure/surface/table, /obj/structure/machinery/prop/almayer/computer/PC{ pixel_x = 3; pixel_y = 12 }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) +"cry" = ( +/obj/structure/surface/table/reinforced, +/obj/item/restraint/handcuffs, +/turf/open/floor/redfull/northwest, +/area/bigredv2/outside/lambda_cave_cas) "crQ" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_18" - }, +/turf/open/mars_cave/mars_cave_18, /area/bigredv2/caves_virology) "csB" = ( /obj/structure/prop/dam/crane/damaged, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "csC" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/eta/research) "csE" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_6" - }, +/turf/open/mars_cave/mars_cave_6, /area/bigredv2/outside/lz1_telecomm_cas) "ctT" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/floor{ - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/darkyellowcorners2, /area/bigredv2/caves/eta/living) "cud" = ( /obj/effect/decal/warning_stripes{ icon_state = "W"; pixel_x = -1 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/west, /area/bigredv2/outside/engineering) +"cuG" = ( +/obj/structure/pipes/standard/simple/hidden/green, +/turf/open/floor/dark, +/area/bigredv2/outside/chapel) "cvi" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/tunnel{ id = "hole2" }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/eta/xenobiology) -"cwk" = ( -/obj/effect/landmark/objective_landmark/close, -/turf/open/floor, -/area/bigredv2/outside/cargo) "cxi" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/jungle{ - bushes_spawn = 0; - icon_state = "grass_impenetrable" - }, +/turf/open/jungle/impenetrable, /area/bigredv2/caves/eta/xenobiology) "cyv" = ( /obj/structure/machinery/prop/almayer/computer/PC{ @@ -28160,50 +19921,52 @@ /area/bigredv2/outside/admin_building) "czV" = ( /obj/item/tool/pickaxe, -/turf/open/mars_cave{ - icon_state = "mars_dirt_6" - }, +/turf/open/mars_cave/mars_dirt_6, /area/bigredv2/caves/mining) +"cAf" = ( +/obj/item/stack/sheet/wood, +/turf/open/mars_cave/mars_dirt_4, +/area/bigredv2/caves_north) "cAs" = ( -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/north, /area/bigredv2/outside/filtration_cave_cas) "cAN" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/blood/oil, /turf/open/floor/plating, /area/bigredv2/caves/mining) +"cBq" = ( +/obj/structure/machinery/camera/autoname{ + dir = 1 + }, +/turf/open/floor/asteroidwarning/north, +/area/bigredv2/outside/n) "cCr" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/mars_cave{ - icon_state = "mars_cave_3" - }, +/turf/open/mars_cave/mars_cave_3, /area/bigredv2/caves_sw) "cCu" = ( /obj/structure/machinery/portable_atmospherics/powered/scrubber, -/turf/open/mars_cave{ - icon_state = "mars_dirt_6" - }, +/turf/open/mars_cave/mars_dirt_6, /area/bigredv2/caves/mining) "cDx" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ dir = 1; name = "\improper Abandoned Mining Storage" }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) -"cGQ" = ( -/obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/floor{ - dir = 6; - icon_state = "asteroidwarning" +"cGc" = ( +/obj/structure/machinery/botany, +/turf/open/floor/white, +/area/bigredv2/outside/marshal_office) +"cGi" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 }, -/area/bigredv2/caves) +/turf/open/floor/red/west, +/area/bigredv2/outside/marshal_office) "cGT" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/power/apc{ @@ -28211,45 +19974,38 @@ pixel_x = -32; start_charge = 0 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/west, /area/bigredv2/outside/filtration_plant) "cGZ" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_20" - }, +/turf/open/mars_cave/mars_cave_20, /area/bigredv2/outside/lz1_north_cas) "cHn" = ( -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/west, /area/bigredv2/outside/lz2_south_cas) "cHy" = ( /obj/item/device/flashlight, /obj/effect/decal/cleanable/dirt, /turf/open/floor, /area/bigredv2/outside/cargo) +"cHz" = ( +/obj/effect/decal/cleanable/blood/oil, +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/turf/open/floor/asteroidfloor/north, +/area/bigredv2/outside/telecomm/lz2_cave) +"cHH" = ( +/turf/open/mars/mars_dirt_11, +/area/bigredv2/outside/ne) "cHI" = ( /obj/structure/closet/crate, /obj/structure/machinery/light{ dir = 4 }, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/dorms) -"cIq" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/turf/open/mars_cave{ - icon_state = "mars_cave_23" - }, -/area/bigredv2/outside/lambda_cave_cas) "cIP" = ( /obj/item/paper/bigred/smuggling, /turf/open/floor, @@ -28267,58 +20023,54 @@ dir = 1; name = "\improper Operations" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/admin_building) +"cJd" = ( +/turf/open/space/basic, +/area/space) "cJh" = ( /obj/structure/bed/chair{ dir = 8; pixel_x = 7; pixel_y = 7 }, -/turf/open/mars_cave{ - icon_state = "mars_cave_13" - }, +/turf/open/mars_cave/mars_cave_13, /area/bigredv2/caves/mining) "cJA" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_core, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves/mining) "cJG" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_20" - }, +/turf/open/mars_cave/mars_cave_20, /area/bigredv2/caves_north) "cKu" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/bigredv2/outside/engineering) +"cLq" = ( +/obj/structure/bed/chair{ + dir = 4 + }, +/obj/structure/barricade/handrail{ + dir = 4 + }, +/turf/open/floor, +/area/bigredv2/outside/marshal_office) "cLZ" = ( /obj/structure/closet/secure_closet/brig, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/marshal_office) "cNb" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/engineering) "cNH" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/bar) "cOa" = ( /obj/structure/bed/chair{ @@ -28326,51 +20078,59 @@ }, /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/crap_item, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/engineering) "cOl" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_18" - }, +/turf/open/mars_cave/mars_cave_18, /area/bigredv2/caves_research) "cOt" = ( /obj/structure/sign/poster/clf, /turf/closed/wall/solaris/reinforced, /area/bigredv2/caves/mining) +"cOu" = ( +/obj/structure/machinery/vending/coffee, +/turf/open/floor/yellowfull, +/area/bigredv2/outside/hydroponics) "cOJ" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/caves/eta/research) +"cPg" = ( +/obj/effect/landmark/crap_item, +/turf/open/mars_cave/mars_cave_2, +/area/bigredv2/outside/n) "cPZ" = ( /obj/structure/window/framed/solaris/reinforced, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "cQi" = ( /obj/effect/landmark/nightmare{ insert_tag = "medbay-v3" }, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/bigredv2/outside/c) +"cQO" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/machinery/light{ + dir = 1 + }, +/turf/open/floor, +/area/bigredv2/outside/general_offices) +"cRb" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/machinery/camera/autoname{ + dir = 4 + }, +/turf/open/floor, +/area/bigredv2/outside/cargo) "cRP" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "cSu" = ( /obj/structure/prop/invuln/minecart_tracks{ @@ -28383,9 +20143,7 @@ /obj/structure/prop/invuln/minecart_tracks{ dir = 1 }, -/turf/open/mars_cave{ - icon_state = "mars_dirt_7" - }, +/turf/open/mars_cave/mars_dirt_7, /area/bigredv2/caves/mining) "cVd" = ( /obj/effect/decal/cleanable/dirt, @@ -28402,9 +20160,7 @@ "cVL" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/mars_cave{ - icon_state = "mars_cave_11" - }, +/turf/open/mars_cave/mars_cave_11, /area/bigredv2/caves_se) "cVY" = ( /turf/open/mars, @@ -28413,22 +20169,22 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/admin_building) +"cYy" = ( +/obj/structure/pipes/standard/manifold/hidden/green{ + dir = 8 + }, +/turf/open/floor/plating, +/area/bigredv2/outside/bar) "cYI" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/hydroponics) "cYJ" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/outside/lz2_west_cas) "cZj" = ( /obj/structure/filingcabinet, @@ -28437,15 +20193,11 @@ /area/bigredv2/caves/mining) "cZB" = ( /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/engineering) "daf" = ( /obj/effect/landmark/crap_item, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves_sw) "daB" = ( /obj/structure/surface/table/reinforced, @@ -28453,10 +20205,7 @@ phone_category = "Lambda Labs"; phone_id = "Xenobiology" }, -/turf/open/floor{ - dir = 4; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/east, /area/bigredv2/caves/lambda/xenobiology) "dbi" = ( /turf/closed/wall/solaris/reinforced/hull, @@ -28465,18 +20214,17 @@ /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/mars_cave{ - icon_state = "mars_cave_3" - }, +/turf/open/mars_cave/mars_cave_3, /area/bigredv2/caves/mining) "dgy" = ( /obj/structure/barricade/handrail/wire{ dir = 4 }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/c) +"dgH" = ( +/turf/open/floor/asteroidwarning, +/area/bigredv2/caves_north) "dhN" = ( /obj/structure/window/framed/solaris, /obj/structure/machinery/door/poddoor/almayer{ @@ -28489,16 +20237,12 @@ /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/mars_cave{ - icon_state = "mars_cave_15" - }, +/turf/open/mars_cave/mars_cave_15, /area/bigredv2/caves/mining) "dij" = ( /obj/structure/fence, /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/outside/filtration_cave_cas) "din" = ( /obj/structure/machinery/blackbox_recorder, @@ -28506,24 +20250,33 @@ pixel_x = -6; pixel_y = 10 }, -/turf/open/floor{ - icon_state = "podhatchfloor" - }, +/turf/open/floor/podhatchfloor, /area/bigredv2/outside/admin_building) -"dlr" = ( -/obj/effect/landmark/static_comms/net_two, -/turf/open/floor, -/area/bigredv2/outside/general_store) +"djo" = ( +/obj/structure/surface/table/reinforced, +/obj/structure/machinery/recharger, +/obj/structure/blocker/forcefield/multitile_vehicles, +/turf/open/floor/redfull/northwest, +/area/bigredv2/outside/lambda_cave_cas) +"dka" = ( +/obj/effect/landmark/crap_item, +/turf/open/mars_cave/mars_dirt_4, +/area/bigredv2/outside/n) +"dkY" = ( +/obj/structure/platform, +/turf/open/floor/asteroidfloor/north, +/area/bigredv2/outside/telecomm/n_cave) "dmB" = ( /obj/item/tool/pickaxe, /turf/open/mars, /area/bigredv2/outside/filtration_plant) +"dmO" = ( +/obj/structure/machinery/fuelcell_recycler, +/turf/open/floor/plating, +/area/bigredv2/caves/eta/storage) "dnV" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/west, /area/bigredv2/outside/filtration_plant) "dot" = ( /obj/structure/barricade/wooden{ @@ -28535,31 +20288,36 @@ /area/bigredv2/outside/cargo) "dov" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/outside/filtration_cave_cas) "dqy" = ( /obj/structure/prop/invuln/minecart_tracks{ dir = 8 }, -/turf/open/mars_cave{ - icon_state = "mars_dirt_7" - }, +/turf/open/mars_cave/mars_dirt_7, /area/bigredv2/caves/mining) "drq" = ( /obj/item/weapon/twohanded/folded_metal_chair, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/caves/mining) +"drx" = ( +/obj/structure/filingcabinet{ + density = 0; + pixel_x = 8; + pixel_y = 16 + }, +/obj/structure/filingcabinet{ + density = 0; + pixel_x = -8; + pixel_y = 18 + }, +/turf/open/floor/wood, +/area/bigredv2/outside/library) "drT" = ( /obj/structure/disposalpipe/broken{ dir = 4 }, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves/mining) "dsh" = ( /obj/effect/decal/cleanable/blood, @@ -28571,16 +20329,11 @@ dir = 8 }, /obj/item/ammo_magazine/pistol/m1911, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "dsm" = ( /obj/item/stack/sheet/metal, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/engineering) "dsy" = ( /obj/structure/platform, @@ -28591,10 +20344,7 @@ /area/bigredv2/outside/engineering) "dtf" = ( /obj/structure/prop/server_equipment/broken, -/turf/open/floor{ - dir = 10; - icon_state = "podhatch" - }, +/turf/open/floor/podhatch/southwest, /area/bigredv2/caves/lambda/research) "dtX" = ( /obj/structure/barricade/wooden{ @@ -28602,9 +20352,7 @@ dir = 4; health = 25000 }, -/turf/open/mars_cave{ - icon_state = "mars_cave_14" - }, +/turf/open/mars_cave/mars_cave_14, /area/bigredv2/caves_north) "duo" = ( /obj/effect/landmark/corpsespawner/colonist/burst, @@ -28616,31 +20364,37 @@ }, /turf/open/gm/river, /area/bigredv2/outside/engineering) +"dvz" = ( +/obj/structure/blocker/forcefield/multitile_vehicles, +/turf/closed/wall/solaris/reinforced, +/area/bigredv2/outside/lambda_cave_cas) "dvB" = ( /obj/item/ore/coal{ pixel_x = 9; pixel_y = 8 }, /obj/item/ore/coal, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/caves/mining) "dvC" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/bigredv2/outside/engineering) +"dws" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + pixel_x = -1; + pixel_y = 1 + }, +/turf/open/floor/plating/warnplate/southeast, +/area/bigredv2/outside/telecomm/warehouse) "dwL" = ( /obj/structure/bed/chair{ buckling_y = 5; dir = 1; pixel_y = 5 }, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves/mining) "dwO" = ( /obj/structure/machinery/light/small{ @@ -28653,9 +20407,7 @@ /turf/open/floor/plating, /area/bigredv2/caves/mining) "dxV" = ( -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/caves_sw) "dyv" = ( /turf/open/mars, @@ -28665,38 +20417,36 @@ dir = 1 }, /obj/structure/surface/table, -/turf/open/floor{ - dir = 6; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/southeast, /area/bigredv2/outside/engineering) "dzY" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/bigredv2/outside/c) +"dAd" = ( +/obj/structure/surface/table/reinforced, +/obj/structure/machinery/recharger, +/turf/open/floor/redfull/northwest, +/area/bigredv2/outside/lambda_cave_cas) "dAi" = ( /obj/effect/landmark/objective_landmark/close, /turf/open/floor/plating, /area/bigredv2/outside/lz2_south_cas) +"dAX" = ( +/turf/open/floor/asteroidwarning, +/area/bigredv2/outside/space_port_lz2) "dBa" = ( /obj/effect/decal/cleanable/blood/drip{ pixel_y = 9 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "dBm" = ( /obj/structure/platform{ dir = 8 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/admin_building) "dBE" = ( /obj/item/trash/cigbutt/cigarbutt{ @@ -28709,10 +20459,7 @@ icon_state = "map"; name = "Pipe manifold" }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "dBU" = ( /obj/structure/barricade/handrail{ @@ -28720,10 +20467,7 @@ layer = 3.01; pixel_y = 9 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/bigredv2/outside/engineering) "dCb" = ( /obj/effect/landmark/corpsespawner/security/marshal, @@ -28736,16 +20480,17 @@ icon_state = "1-5" }, /obj/item/clothing/head/helmet/marine/veteran/ua_riot, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "dCA" = ( /obj/effect/decal/cleanable/dirt, /obj/item/weapon/twohanded/folded_metal_chair, /turf/open/floor/plating, /area/bigredv2/caves/mining) +"dCU" = ( +/obj/structure/cargo_container/horizontal/blue/middle, +/turf/open/mars, +/area/bigredv2/outside/space_port_lz2) "dEf" = ( /obj/structure/closet/toolcloset, /obj/structure/machinery/light, @@ -28755,14 +20500,10 @@ "dEr" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/mars_cave{ - icon_state = "mars_cave_7" - }, +/turf/open/mars_cave/mars_cave_7, /area/bigredv2/caves_se) "dEV" = ( -/turf/open/mars_cave{ - icon_state = "mars_dirt_7" - }, +/turf/open/mars_cave/mars_dirt_7, /area/bigredv2/outside/lz2_south_cas) "dFz" = ( /obj/item/tool/pickaxe{ @@ -28772,17 +20513,20 @@ /obj/effect/decal/cleanable/blood{ icon_state = "xgib1" }, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/caves/mining) +"dFL" = ( +/obj/effect/landmark/corpsespawner/security, +/obj/effect/decal/cleanable/blood{ + layer = 3 + }, +/turf/open/floor, +/area/bigredv2/outside/lambda_cave_cas) "dFR" = ( /obj/item/stack/sheet/wood{ pixel_y = -8 }, -/turf/open/mars_cave{ - icon_state = "mars_cave_16" - }, +/turf/open/mars_cave/mars_cave_16, /area/bigredv2/caves/mining) "dHr" = ( /obj/effect/decal/cleanable/blood{ @@ -28793,17 +20537,13 @@ /area/bigredv2/caves/mining) "dHH" = ( /obj/effect/landmark/crap_item, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves/mining) "dIb" = ( /turf/open/floor, /area/bigredv2/caves) "dIz" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_8" - }, +/turf/open/mars_cave/mars_cave_8, /area/bigredv2/caves_virology) "dIG" = ( /obj/structure/machinery/light{ @@ -28815,25 +20555,33 @@ /obj/item/ore/uranium{ desc = "You feel fuzzy just looking at it.... it's slightly lumanesant" }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) +"dIH" = ( +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 5 + }, +/turf/open/floor/asteroidfloor/north, +/area/bigredv2/outside/space_port_lz2) "dJc" = ( /obj/structure/surface/table, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, /turf/open/floor, /area/bigredv2/outside/dorms) +"dJr" = ( +/obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, +/obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, +/turf/open/floor/asteroidwarning/northeast, +/area/bigredv2/caves_lambda) "dJM" = ( /obj/structure/surface/rack, /obj/item/storage/pouch/shotgun, /obj/item/storage/toolbox/mechanical, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) +"dKk" = ( +/turf/open/floor/redcorner/west, +/area/bigredv2/outside/lambda_cave_cas) "dKo" = ( /obj/item/ore/iron{ pixel_x = 6; @@ -28849,26 +20597,26 @@ "dKR" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_nest, /obj/effect/landmark/structure_spawner/setup/distress/xeno_nest, -/turf/open/mars_cave{ - icon_state = "mars_cave_5" - }, +/turf/open/mars_cave/mars_cave_5, /area/bigredv2/caves_lambda) -"dLe" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_5" +"dLS" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_17"; + pixel_x = 7; + pixel_y = 14 }, -/area/bigredv2/outside/lambda_cave_cas) +/obj/structure/window{ + dir = 8 + }, +/turf/open/floor/wood, +/area/bigredv2/outside/library) "dNd" = ( /obj/item/stack/cable_coil/cut, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/caves/mining) "dNn" = ( -/turf/open/floor{ - dir = 6; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/southeast, /area/bigred/ground/garage_workshop) "dNr" = ( /obj/structure/machinery/light{ @@ -28877,11 +20625,12 @@ /obj/structure/machinery/firealarm{ dir = 1 }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) +"dNX" = ( +/obj/effect/landmark/crap_item, +/turf/open/floor/carpet, +/area/bigredv2/outside/library) "dOu" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, @@ -28889,54 +20638,53 @@ pixel_x = -4; pixel_y = 7 }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) +"dOZ" = ( +/obj/effect/landmark/crap_item, +/turf/open/mars_cave/mars_cave_16, +/area/bigredv2/outside/n) "dPb" = ( /obj/item/tool/pickaxe/drill, -/turf/open/mars_cave{ - icon_state = "mars_cave_15" - }, +/turf/open/mars_cave/mars_cave_15, /area/bigredv2/caves/mining) "dPs" = ( /obj/effect/landmark/monkey_spawn, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/jungle{ - bushes_spawn = 0; - icon_state = "grass_impenetrable" - }, +/turf/open/jungle/impenetrable, /area/bigredv2/caves/eta/xenobiology) "dPC" = ( /obj/structure/barricade/wooden{ dir = 1; pixel_y = 7 }, -/turf/open/mars_cave{ - icon_state = "mars_cave_23" - }, +/turf/open/mars_cave/mars_cave_23, /area/bigredv2/caves/mining) +"dPJ" = ( +/turf/closed/wall/r_wall/unmeltable, +/area/bigredv2/outside/c) "dQw" = ( /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/mars_cave{ - icon_state = "mars_cave_5" - }, +/turf/open/mars_cave/mars_cave_5, /area/bigredv2/caves_sw) "dQF" = ( /obj/effect/spawner/random/tool, -/turf/open/mars_cave{ - icon_state = "mars_dirt_5" - }, +/turf/open/mars_cave/mars_dirt_5, /area/bigredv2/caves/mining) +"dQR" = ( +/turf/open/mars_cave/mars_cave_2, +/area/bigredv2/outside/n) "dQZ" = ( /obj/structure/closet/toolcloset, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 5; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/northeast, /area/bigredv2/outside/filtration_plant) +"dRc" = ( +/obj/structure/machinery/door/airlock/almayer/security/glass/colony{ + name = "\improper Lambda Checkpoint" + }, +/turf/open/floor/delivery, +/area/bigredv2/outside/lambda_cave_cas) "dSg" = ( /obj/effect/landmark/crap_item, /obj/effect/decal/cleanable/dirt, @@ -28945,65 +20693,63 @@ }, /turf/open/floor/plating, /area/bigredv2/caves/mining) +"dTi" = ( +/obj/item/stack/sheet/wood, +/turf/open/mars_cave/mars_cave_9, +/area/bigredv2/caves_north) +"dTB" = ( +/turf/closed/wall/solaris/reinforced, +/area/bigredv2/outside/lambda_cave_cas) "dUj" = ( /obj/effect/decal/cleanable/blood/drip{ pixel_x = -8; pixel_y = 6 }, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves/mining) "dUz" = ( /obj/effect/landmark/corpsespawner/miner, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/mars_cave{ - icon_state = "mars_cave_6" - }, +/turf/open/mars_cave/mars_cave_6, /area/bigredv2/caves/mining) +"dVp" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/asteroidfloor/north, +/area/bigredv2/outside/space_port_lz2) "dVA" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_5" - }, +/turf/open/mars_cave/mars_cave_5, /area/bigredv2/outside/lz2_south_cas) +"dVM" = ( +/obj/structure/largecrate/supply/supplies, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/asteroidfloor/north, +/area/bigredv2/outside/n) "dWd" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/engineering) -"dWg" = ( -/obj/structure/pipes/standard/simple/hidden/green, -/turf/open/mars{ - icon_state = "mars_dirt_12" - }, -/area/bigredv2/outside/c) "dWl" = ( /obj/structure/closet/toolcloset, -/turf/open/floor{ - dir = 9; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/northwest, /area/bigredv2/outside/engineering) "dXs" = ( /obj/item/tool/pickaxe{ pixel_y = 12 }, /obj/effect/decal/cleanable/blood/oil/streak, -/turf/open/mars_cave{ - icon_state = "mars_dirt_5" - }, +/turf/open/mars_cave/mars_dirt_5, /area/bigredv2/caves/mining) "dXu" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/eta) +"dXK" = ( +/turf/open/mars_cave/mars_cave_13, +/area/bigredv2/outside/n) "dZO" = ( /obj/effect/decal/cleanable/blood{ dir = 8; @@ -29012,9 +20758,7 @@ pixel_x = 12; pixel_y = 3 }, -/turf/open/mars_cave{ - icon_state = "mars_cave_14" - }, +/turf/open/mars_cave/mars_cave_14, /area/bigredv2/caves/mining) "eaW" = ( /obj/structure/disposalpipe/segment, @@ -29024,27 +20768,23 @@ dir = 1 }, /obj/structure/pipes/valve/open, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) +"eaZ" = ( +/obj/structure/machinery/light{ + dir = 4 + }, +/turf/open/floor/yellowfull, +/area/bigredv2/outside/hydroponics) "ebr" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 4; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/darkyellowcorners2/east, /area/bigredv2/outside/engineering) "ebZ" = ( -/turf/open/floor{ - icon_state = "darkgreencorners2" - }, +/turf/open/floor/darkgreencorners2, /area/bigredv2/caves/eta/storage) "eci" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_11" - }, +/turf/open/mars_cave/mars_cave_11, /area/bigredv2/outside/lz1_telecomm_cas) "ecy" = ( /obj/structure/prop/invuln/minecart_tracks{ @@ -29057,55 +20797,71 @@ /obj/item/trash/cigbutt{ pixel_x = 7 }, -/turf/open/mars_cave{ - icon_state = "mars_cave_19" - }, +/turf/open/mars_cave/mars_cave_19, /area/bigredv2/caves/mining) "ecK" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_7" - }, +/turf/open/mars_cave/mars_cave_7, /area/bigredv2/caves_east) "ecX" = ( /obj/structure/machinery/light{ dir = 4 }, /obj/structure/largecrate, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigred/ground/garage_workshop) +"eeI" = ( +/obj/structure/machinery/light, +/obj/structure/window{ + dir = 4 + }, +/obj/structure/surface/table/woodentable, +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_10"; + pixel_y = 11 + }, +/turf/open/floor/wood, +/area/bigredv2/outside/library) +"efh" = ( +/obj/structure/machinery/cm_vending/sorted/medical/no_access, +/obj/structure/medical_supply_link, +/turf/open/floor/darkyellow2/north, +/area/bigredv2/caves/eta/research) +"efK" = ( +/obj/structure/machinery/computer/crew{ + density = 0; + pixel_y = 16 + }, +/turf/open/floor/whitegreenfull, +/area/bigredv2/outside/medical) "egI" = ( /obj/item/ore, /obj/item/ore{ pixel_x = 13; pixel_y = 12 }, -/turf/open/mars_cave{ - icon_state = "mars_dirt_6" - }, +/turf/open/mars_cave/mars_dirt_6, /area/bigredv2/caves/mining) "egL" = ( /obj/structure/surface/table, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 10; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/southwest, /area/bigredv2/outside/engineering) "egS" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/plating, /area/bigredv2/caves/mining) +"ejp" = ( +/obj/effect/landmark/nightmare{ + insert_tag = "filtration_restored" + }, +/turf/open/mars_cave/mars_cave_2, +/area/bigredv2/outside/s) "eju" = ( /obj/item/ore{ pixel_x = 9; pixel_y = 2 }, -/turf/open/mars_cave{ - icon_state = "mars_dirt_7" - }, +/turf/open/mars_cave/mars_dirt_7, /area/bigredv2/caves/mining) "ejP" = ( /turf/closed/wall/solaris, @@ -29120,32 +20876,25 @@ }, /obj/effect/decal/cleanable/blood, /obj/effect/landmark/corpsespawner/miner, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) +"elh" = ( +/turf/open/mars_cave/mars_cave_6, +/area/bigredv2/outside/n) "els" = ( /obj/structure/ore_box, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves/mining) "elM" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/darkyellowcorners2, /area/bigredv2/caves/eta/living) "emC" = ( /obj/effect/decal/cleanable/ash, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "ene" = ( /obj/structure/surface/table, @@ -29171,58 +20920,51 @@ }, /turf/open/floor/plating, /area/bigredv2/caves/mining) -"eoU" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "w-y2" +"enJ" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic/solid{ + name = "\improper Dormitories Restroom" }, +/turf/open/floor/delivery, +/area/bigredv2/outside/dorms) +"eoU" = ( +/turf/open/floor/almayer/w_y2/north, /area/bigredv2/outside/admin_building) "epe" = ( -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/north, /area/bigredv2/outside/eta) "eql" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_9" - }, +/turf/open/mars_cave/mars_cave_9, /area/bigredv2/caves/mining) -"erf" = ( -/turf/closed/wall/solaris, -/area/bigredv2/outside/c) -"ers" = ( -/obj/effect/landmark/nightmare{ - insert_tag = "etatunnel" +"eqr" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic/solid{ + dir = 1; + name = "\improper Dormitories Restroom" }, -/turf/closed/wall/solaris/rock, -/area/bigredv2/caves) +/turf/open/floor/delivery, +/area/bigredv2/outside/dorms) "erA" = ( /obj/item/ore, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/caves/mining) "erG" = ( /obj/effect/decal/hefa_cult_decals/d32, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "erJ" = ( -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/west, /area/bigredv2/outside/eta) "erX" = ( /obj/structure/machinery/light/small, -/turf/open/mars_cave{ - icon_state = "mars_cave_20" - }, +/turf/open/mars_cave/mars_cave_20, /area/bigredv2/caves/mining) +"esS" = ( +/obj/structure/machinery/light{ + dir = 4 + }, +/obj/structure/window, +/turf/open/floor/wood, +/area/bigredv2/outside/library) "eup" = ( /obj/structure/bed/chair, /obj/item/trash/cigbutt, @@ -29232,14 +20974,10 @@ /turf/open/floor/plating, /area/bigredv2/caves/mining) "euF" = ( -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/outside/lz2_south_cas) "euO" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_22" - }, +/turf/open/mars_cave/mars_cave_22, /area/bigredv2/caves_research) "euP" = ( /obj/structure/prop/invuln/minecart_tracks{ @@ -29248,50 +20986,33 @@ /obj/structure/closet/crate/miningcar/yellow{ layer = 3 }, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves_sw) "evA" = ( /obj/structure/platform_decoration/shiva{ dir = 8 }, /obj/structure/platform_decoration/shiva, -/turf/open/floor/bluegrid{ - icon_state = "bcircuitoff" - }, +/turf/open/floor/bluegrid/bcircuitoff, /area/bigredv2/caves/lambda/research) "evX" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves/mining) "ewv" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/curtain/red, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/bigredv2/outside/engineering) "exc" = ( -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/east, /area/bigred/ground/garage_workshop) "ezQ" = ( /obj/structure/largecrate/supply/supplies/flares, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "eAU" = ( -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/east, /area/bigredv2/outside/eta) "eBn" = ( /obj/effect/decal/cleanable/blood/drip{ @@ -29299,10 +21020,14 @@ pixel_y = 15 }, /obj/effect/spawner/gibspawner/xeno, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/caves/mining) +"eBL" = ( +/obj/structure/bookcase{ + icon_state = "book-5" + }, +/turf/open/floor/wood, +/area/bigredv2/outside/library) "eDQ" = ( /obj/structure/closet/secure_closet/engineering_personal, /obj/effect/landmark/objective_landmark/medium, @@ -29315,9 +21040,7 @@ "eEm" = ( /obj/effect/landmark/crap_item, /obj/effect/landmark/queen_spawn, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/eta/xenobiology) "eEy" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, @@ -29325,21 +21048,21 @@ /area/bigredv2/outside/lz2_west_cas) "eER" = ( /obj/structure/machinery/power/port_gen/pacman/super, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "eFh" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_5" - }, +/turf/open/mars_cave/mars_cave_5, /area/bigredv2/caves_lambda) +"eFr" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S"; + pixel_y = -1 + }, +/turf/open/floor/red/north, +/area/bigredv2/outside/marshal_office) "eGa" = ( /obj/item/weapon/gun/shotgun/pump/dual_tube/cmb, -/turf/open/mars_cave{ - icon_state = "mars_cave_17" - }, +/turf/open/mars_cave/mars_cave_17, /area/bigredv2/caves_research) "eGb" = ( /obj/structure/barricade/wooden{ @@ -29350,40 +21073,26 @@ /obj/item/weapon/twohanded/spear{ pixel_x = 5 }, -/turf/open/mars_cave{ - icon_state = "mars_cave_3" - }, +/turf/open/mars_cave/mars_cave_3, /area/bigredv2/caves/mining) "eGf" = ( /obj/structure/machinery/light/double, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves_sw) "eGM" = ( -/turf/open/floor{ - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/darkyellowcorners2, /area/bigredv2/outside/engineering) "eHA" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/eta/xenobiology) "eIN" = ( /obj/structure/machinery/power/port_gen/pacman, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/west, /area/bigredv2/outside/engineering) "eJE" = ( -/turf/open/floor{ - dir = 4; - icon_state = "darkpurplecorners2" - }, +/turf/open/floor/darkpurplecorners2/east, /area/bigredv2/caves/lambda/breakroom) "eJU" = ( /obj/structure/surface/table, @@ -29392,10 +21101,12 @@ dir = 4 }, /obj/effect/landmark/objective_landmark/far, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/bigredv2/outside/general_offices) +"eKm" = ( +/obj/structure/pipes/vents/pump, +/turf/open/floor/asteroidfloor/north, +/area/bigredv2/outside/n) "eKU" = ( /obj/structure/machinery/door_control{ id = "filtration"; @@ -29403,17 +21114,19 @@ pixel_x = 30; throw_range = 15 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/bigredv2/outside/filtration_plant) +"eKZ" = ( +/obj/structure/surface/table/reinforced, +/obj/structure/machinery/computer/cameras/wooden_tv{ + dir = 4 + }, +/turf/open/floor/redfull/northwest, +/area/bigredv2/outside/lambda_cave_cas) "eLp" = ( /obj/structure/closet/secure_closet/brig, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/marshal_office) "eLq" = ( /obj/structure/surface/rack, @@ -29425,15 +21138,16 @@ /turf/open/floor, /area/bigredv2/outside/cargo) "eLQ" = ( -/turf/open/mars_cave{ - icon_state = "mars_dirt_5" - }, +/turf/open/mars_cave/mars_dirt_5, /area/bigredv2/outside/filtration_plant) "eMX" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_23" - }, +/turf/open/mars_cave/mars_cave_23, /area/bigredv2/caves_lambda) +"eNe" = ( +/obj/item/clothing/under/darkred, +/obj/structure/surface/rack, +/turf/open/floor/freezerfloor, +/area/bigredv2/outside/general_offices) "eNx" = ( /obj/effect/landmark/nightmare{ insert_tag = "lambda-cave-mushroom" @@ -29442,65 +21156,46 @@ /area/bigredv2/caves) "eNN" = ( /obj/structure/machinery/portable_atmospherics/powered/scrubber/huge/stationary, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "eOd" = ( /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/outside/lz1_telecomm_cas) "ePk" = ( /obj/structure/prop/server_equipment/broken, /turf/open/floor/greengrid, /area/bigredv2/caves/lambda/research) "eRc" = ( -/turf/open/floor{ - dir = 6; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/southeast, /area/bigredv2/outside/filtration_plant) -"eRI" = ( -/turf/open/floor{ - icon_state = "delivery" +"eRe" = ( +/obj/structure/pipes/vents/pump{ + dir = 8 }, +/turf/open/floor, +/area/bigredv2/outside/cargo) +"eRI" = ( +/turf/open/floor/delivery, /area/bigredv2/outside/c) -"eRW" = ( -/obj/effect/landmark/nightmare{ - insert_tag = "crashlanding-eva" - }, -/turf/closed/wall/solaris, -/area/bigredv2/outside/dorms) "eSm" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/bigredv2/outside/engineering) "eSu" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/mars_cave{ - icon_state = "mars_dirt_7" - }, +/turf/open/mars_cave/mars_dirt_7, /area/bigredv2/caves/mining) "eSN" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; pixel_y = 1 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/admin_building) "eTj" = ( /obj/structure/reagent_dispensers/fueltank/gas, -/turf/open/mars{ - icon_state = "mars_dirt_14" - }, +/turf/open/mars/mars_dirt_14, /area/bigredv2/outside/c) "eUs" = ( /obj/effect/decal/cleanable/dirt, @@ -29512,12 +21207,6 @@ }, /turf/open/floor/plating, /area/bigredv2/caves/mining) -"eUT" = ( -/obj/effect/landmark/nightmare{ - insert_tag = "viro-rock" - }, -/turf/closed/wall/solaris/reinforced, -/area/bigredv2/outside/virology) "eVo" = ( /obj/effect/decal/cleanable/dirt, /obj/item/weapon/gun/pistol/m4a3, @@ -29531,34 +21220,46 @@ /obj/structure/cable{ icon_state = "9-10" }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) +"eVM" = ( +/obj/structure/largecrate/random/barrel/true_random, +/turf/open/floor/asteroidfloor/north, +/area/bigredv2/outside/n) "eWd" = ( -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/space_port_lz2) "eWo" = ( /obj/effect/decal/cleanable/dirt, /turf/open/mars, /area/bigredv2/outside/filtration_plant) +"eWv" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/asteroidwarning/northwest, +/area/bigredv2/outside/telecomm/n_cave) "eWy" = ( /obj/effect/decal/cleanable/dirt, /obj/item/moneybag, /obj/effect/landmark/objective_landmark/close, /turf/open/floor/plating, /area/bigredv2/caves/mining) +"eWB" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/machinery/recharge_station, +/turf/open/floor/freezerfloor, +/area/bigredv2/outside/dorms) +"eWE" = ( +/obj/structure/barricade/wooden{ + desc = "This barricade is heavily reinforced. Nothing short of blasting it open seems like it'll do the trick, that or melting the breams supporting it..."; + dir = 4; + health = 25000 + }, +/turf/open/mars_cave/mars_cave_19, +/area/bigredv2/caves_north) "eWG" = ( /obj/structure/filingcabinet, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "eWP" = ( /obj/structure/surface/table, @@ -29570,6 +21271,29 @@ }, /turf/open/floor, /area/bigredv2/outside/cargo) +"eYy" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/machinery/fuelcell_recycler/full, +/turf/open/floor/darkyellow2, +/area/bigredv2/outside/engineering) +"eYA" = ( +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 10 + }, +/turf/open/floor/asteroidwarning/north, +/area/bigredv2/outside/e) +"eYH" = ( +/obj/structure/machinery/camera/autoname{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor, +/area/bigredv2/outside/dorms) +"eYK" = ( +/obj/item/reagent_container/spray/cleaner, +/obj/structure/pipes/standard/simple/hidden/green, +/turf/open/floor/floor4, +/area/bigredv2/outside/cargo) "eZw" = ( /obj/effect/decal/warning_stripes{ icon_state = "N" @@ -29580,49 +21304,38 @@ }, /turf/open/floor/plating, /area/bigredv2/caves/mining) -"fbF" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E-corner" - }, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" +"fbf" = ( +/turf/open/mars/mars_dirt_8, +/area/bigredv2/outside/sw) +"fbB" = ( +/obj/effect/landmark/nightmare{ + insert_tag = "crashlanding-eva" }, -/area/bigredv2/caves_north) +/turf/closed/wall/solaris, +/area/bigredv2/outside/bar) "fcG" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/closet/firecloset, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "fdr" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_10" - }, +/turf/open/mars_cave/mars_cave_10, /area/bigredv2/caves_sw) "fdy" = ( /turf/open/floor, /area/bigredv2/caves/eta/living) "feN" = ( -/turf/open/floor{ - dir = 9; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/northwest, /area/bigredv2/outside/space_port_lz2) "feS" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_5" - }, +/turf/open/mars_cave/mars_cave_5, /area/bigredv2/caves_sw) "fgD" = ( /obj/structure/machinery/door/airlock/almayer/research/glass/colony{ name = "\improper Lambda Lab Server Room" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/caves/lambda/research) "fgE" = ( /obj/effect/decal/cleanable/dirt, @@ -29630,24 +21343,17 @@ /obj/effect/landmark/static_comms/net_two{ broken_on_spawn = 1 }, -/turf/open/floor{ - icon_state = "podhatchfloor" - }, +/turf/open/floor/podhatchfloor, /area/bigredv2/outside/engineering) "fhy" = ( /obj/structure/bed/chair/comfy/blue{ dir = 8 }, -/turf/open/floor{ - dir = 8; - icon_state = "carpet15-15" - }, +/turf/open/floor/carpet15_15/west, /area/bigredv2/outside/admin_building) "fhI" = ( /obj/effect/landmark/hunter_secondary, -/turf/open/mars_cave{ - icon_state = "mars_cave_16" - }, +/turf/open/mars_cave/mars_cave_16, /area/bigredv2/caves_north) "fin" = ( /turf/open/floor/plating, @@ -29657,42 +21363,28 @@ /obj/structure/machinery/computer/objective{ dir = 8 }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/caves/eta/living) "fjF" = ( /obj/effect/landmark/lv624/xeno_tunnel, -/turf/open/mars{ - icon_state = "mars_dirt_6" - }, +/turf/open/mars/mars_dirt_6, /area/bigredv2/outside/w) "fjP" = ( -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/caves) "fmd" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - dir = 5; - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull/northeast, /area/bigredv2/outside/general_store) "fmn" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_23" - }, +/turf/open/mars_cave/mars_cave_23, /area/bigredv2/caves_virology) "fmL" = ( /obj/effect/decal/cleanable/dirt, /obj/item/device/camera/oldcamera, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "fnh" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -29700,34 +21392,24 @@ }, /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor{ - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/darkyellowcorners2, /area/bigredv2/caves/eta/living) +"fni" = ( +/obj/structure/machinery/door/airlock/almayer/medical{ + name = "\improper Medical Clinic Morgue" + }, +/turf/open/floor/delivery, +/area/bigredv2/outside/medical) "fnv" = ( /obj/structure/bed/chair/comfy, /turf/open/floor/carpet, /area/bigredv2/caves/lambda/breakroom) "fnO" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_13" - }, +/turf/open/mars_cave/mars_cave_13, /area/bigredv2/caves/mining) "foB" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_22" - }, +/turf/open/mars_cave/mars_cave_22, /area/bigredv2/caves_east) -"foT" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, -/area/bigredv2/outside/e) "fpa" = ( /obj/effect/decal/cleanable/blood/drip{ pixel_x = -8; @@ -29735,31 +21417,31 @@ }, /turf/closed/wall/wood, /area/bigredv2/caves/mining) +"fsT" = ( +/turf/open/mars_cave/mars_dirt_7, +/area/bigredv2/outside/n) +"fsY" = ( +/turf/open/mars/mars_dirt_6, +/area/bigredv2/outside/space_port_lz2) +"ftY" = ( +/turf/open/mars_cave/mars_dirt_7, +/area/bigredv2/outside/sw) "fus" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_7" - }, +/turf/open/mars_cave/mars_cave_7, /area/bigredv2/outside/lz2_south_cas) "fvb" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/prop/invuln/minecart_tracks{ dir = 1 }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "fvu" = ( /obj/structure/machinery/light/double, -/turf/open/mars_cave{ - icon_state = "mars_cave_5" - }, +/turf/open/mars_cave/mars_cave_5, /area/bigredv2/outside/lz2_south_cas) "fwa" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_7" - }, +/turf/open/mars_cave/mars_cave_7, /area/bigredv2/caves_virology) "fwD" = ( /obj/structure/barricade/wooden{ @@ -29767,10 +21449,7 @@ dir = 4; health = 25000 }, -/turf/open/floor{ - dir = 8; - icon_state = "loadingarea" - }, +/turf/open/floor/loadingarea/west, /area/bigredv2/outside/cargo) "fwO" = ( /obj/structure/prop/almayer/cannon_cables{ @@ -29781,9 +21460,7 @@ desc = "A bewildering tangle of machinery and pipes."; name = "\improper coolant feed" }, -/turf/open/shuttle/escapepod{ - icon_state = "floor5" - }, +/turf/open/shuttle/escapepod/floor5, /area/bigredv2/oob) "fwV" = ( /obj/structure/surface/table, @@ -29793,33 +21470,26 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/eta/living) "fxn" = ( /obj/item/stack/cable_coil/cut, -/turf/open/floor/plating{ - dir = 8; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/west, /area/bigredv2/oob) "fxK" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_10" - }, +/turf/open/mars_cave/mars_cave_10, /area/bigredv2/outside/lz1_telecomm_cas) +"fxZ" = ( +/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, +/turf/open/mars_cave/mars_dirt_4, +/area/bigredv2/caves_lambda) "fyp" = ( /obj/structure/machinery/power/apc, -/turf/open/floor{ - icon_state = "darkgreencorners2" - }, +/turf/open/floor/darkgreencorners2, /area/bigredv2/caves/eta/storage) "fyz" = ( /obj/structure/bed, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/caves/eta/living) "fyO" = ( /obj/structure/transmitter/colony_net{ @@ -29828,53 +21498,64 @@ phone_id = "Clinic Labs"; pixel_y = 24 }, -/turf/open/floor{ - dir = 1; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/north, /area/bigredv2/outside/medical) +"fyZ" = ( +/obj/structure/surface/table/reinforced, +/obj/item/device/camera, +/obj/structure/machinery/light/small, +/obj/structure/blocker/forcefield/multitile_vehicles, +/turf/open/floor/redfull/northwest, +/area/bigredv2/outside/lambda_cave_cas) "fBc" = ( /obj/structure/pipes/standard/tank/phoron, /turf/open/floor/plating, /area/bigredv2/caves/mining) "fBo" = ( -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/filtration_plant) "fCb" = ( /turf/open/floor, /area/bigredv2/outside/filtration_cave_cas) -"fDr" = ( -/turf/open/floor{ - dir = 1; - icon_state = "darkred2" +"fDf" = ( +/obj/structure/pipes/standard/simple/hidden/green, +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ + name = "\improper Greenhouse Storage" }, +/turf/open/floor/delivery, +/area/bigredv2/outside/hydroponics) +"fDr" = ( +/turf/open/floor/darkred2/north, /area/bigredv2/caves/eta/research) "fEv" = ( /obj/structure/machinery/door/airlock/almayer/secure/colony{ name = "\improper Engine Reactor" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/engineering) +"fEE" = ( +/turf/open/mars_cave/mars_cave_15, +/area/bigredv2/outside/ne) "fFG" = ( /obj/structure/largecrate/random/barrel, -/turf/open/mars_cave{ - icon_state = "mars_cave_13" - }, +/turf/open/mars_cave/mars_cave_13, /area/bigredv2/caves/mining) "fFO" = ( -/turf/open/mars{ - icon_state = "mars_dirt_3" - }, +/turf/open/mars/mars_dirt_3, /area/bigredv2/outside/space_port_lz2) -"fGN" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_20" +"fGK" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E-corner" }, +/turf/open/mars_cave/mars_cave_16, +/area/bigredv2/caves_north) +"fGN" = ( +/turf/open/mars_cave/mars_cave_20, /area/bigredv2/caves_research) +"fHw" = ( +/obj/structure/barricade/handrail, +/turf/open/floor/asteroidwarning, +/area/bigredv2/outside/c) "fHF" = ( /obj/effect/landmark/corpsespawner/miner, /obj/effect/decal/cleanable/blood{ @@ -29882,55 +21563,51 @@ icon_state = "gib6" }, /obj/item/weapon/baseballbat, -/turf/open/mars_cave{ - icon_state = "mars_cave_3" - }, +/turf/open/mars_cave/mars_cave_3, /area/bigredv2/caves/mining) "fJH" = ( -/turf/open/floor{ - dir = 10; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/southwest, /area/bigredv2/outside/eta) +"fJW" = ( +/obj/structure/window, +/obj/structure/surface/table/woodentable, +/obj/item/newspaper, +/turf/open/floor/wood, +/area/bigredv2/outside/library) +"fKO" = ( +/obj/structure/barricade/wooden{ + desc = "This barricade is heavily reinforced. Nothing short of blasting it open seems like it'll do the trick, that or melting the breams supporting it..."; + dir = 8; + health = 25000 + }, +/obj/structure/blocker/forcefield/multitile_vehicles, +/turf/open/mars_cave/mars_cave_5, +/area/bigredv2/caves_north) "fKW" = ( /obj/structure/machinery/power/apc{ dir = 1 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/darkyellowcorners2/north, /area/bigredv2/caves/eta/living) "fLj" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_6" - }, +/turf/open/mars_cave/mars_cave_6, /area/bigredv2/caves_virology) "fLl" = ( -/turf/open/floor{ - dir = 5; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/northeast, /area/bigredv2/outside/engineering) "fLA" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/eta/living) "fLR" = ( /obj/item/tool/pickaxe, -/turf/open/mars_cave{ - icon_state = "mars_dirt_7" - }, +/turf/open/mars_cave/mars_dirt_7, /area/bigredv2/caves/mining) "fMl" = ( /obj/item/device/flashlight/lantern, -/turf/open/mars_cave{ - icon_state = "mars_dirt_6" - }, +/turf/open/mars_cave/mars_dirt_6, /area/bigredv2/caves/mining) "fML" = ( /obj/effect/decal/cleanable/dirt, @@ -29943,9 +21620,7 @@ pixel_x = -9; pixel_y = 13 }, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/caves/mining) "fMZ" = ( /obj/structure/machinery/light{ @@ -29956,14 +21631,10 @@ phone_id = "Surgery"; pixel_y = 24 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/lambda/xenobiology) "fOc" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_3" - }, +/turf/open/mars_cave/mars_cave_3, /area/bigredv2/caves_virology) "fOo" = ( /obj/effect/decal/warning_stripes{ @@ -29979,23 +21650,16 @@ pixel_x = 14; pixel_y = 3 }, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/caves/mining) "fOx" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/outside/filtration_cave_cas) "fOK" = ( /obj/structure/surface/table, /obj/effect/spawner/random/toolbox, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/west, /area/bigredv2/outside/engineering) "fOM" = ( /obj/effect/decal/warning_stripes{ @@ -30004,6 +21668,10 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/bigredv2/caves/mining) +"fPe" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/asteroidwarning/west, +/area/bigredv2/outside/telecomm/n_cave) "fPB" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, @@ -30019,44 +21687,38 @@ /obj/structure/bed/chair{ dir = 1 }, -/turf/open/mars_cave{ - icon_state = "mars_cave_17" - }, +/turf/open/mars_cave/mars_cave_17, /area/bigredv2/caves/mining) "fRo" = ( /obj/item/tool/pickaxe/drill, -/turf/open/mars_cave{ - icon_state = "mars_cave_20" - }, +/turf/open/mars_cave/mars_cave_20, /area/bigredv2/caves/mining) "fRH" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_10" - }, +/turf/open/mars_cave/mars_cave_10, /area/bigredv2/caves_se) "fRW" = ( /obj/structure/machinery/light/small, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/caves/mining) "fSJ" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/space_port) "fST" = ( /obj/structure/machinery/light, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/admin_building) "fSY" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_10" - }, +/turf/open/mars_cave/mars_cave_10, /area/bigredv2/outside/lz2_west_cas) +"fTg" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_x = 1; + pixel_y = 1 + }, +/turf/open/floor/asteroidfloor/north, +/area/bigredv2/outside/c) "fUk" = ( /obj/structure/surface/table, /obj/item/clothing/head/hardhat, @@ -30064,36 +21726,51 @@ pixel_x = 7; pixel_y = 12 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/north, /area/bigredv2/outside/filtration_plant) "fUp" = ( /obj/structure/machinery/door/airlock/almayer/secure/colony{ dir = 1; name = "\improper Engine Reactor" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/engineering) -"fWw" = ( -/turf/open/jungle{ - bushes_spawn = 0; - icon_state = "grass_impenetrable" +"fVt" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/surface/table, +/obj/structure/machinery/light{ + dir = 4 }, +/obj/item/stack/sheet/glass{ + amount = 30 + }, +/turf/open/floor, +/area/bigredv2/outside/cargo) +"fWw" = ( +/turf/open/jungle/impenetrable, /area/bigredv2/caves/eta/xenobiology) +"fWY" = ( +/obj/structure/window, +/obj/structure/window{ + dir = 8 + }, +/obj/structure/surface/table/woodentable, +/obj/effect/landmark/objective_landmark/close, +/obj/item/prop/magazine/book/starshiptroopers, +/turf/open/floor/wood, +/area/bigredv2/outside/library) "fXm" = ( /obj/effect/decal/warning_stripes{ icon_state = "E"; pixel_x = 1 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/bigredv2/outside/engineering) +"fXR" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/machinery/portable_atmospherics/hydroponics, +/turf/open/floor/whitegreenfull, +/area/bigredv2/outside/hydroponics) "fYH" = ( /turf/closed/wall/solaris/reinforced/hull, /area/bigredv2/caves/mining) @@ -30101,10 +21778,7 @@ /obj/structure/closet/boxinggloves, /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/light, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "fZg" = ( /obj/structure/window/framed/solaris/reinforced, @@ -30112,20 +21786,13 @@ /obj/structure/sign/safety/hvac{ pixel_x = -32 }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "fZm" = ( -/turf/open/mars{ - icon_state = "mars_dirt_10" - }, +/turf/open/mars/mars_dirt_10, /area/bigredv2/outside/eta) "gad" = ( -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/bigredv2/outside/filtration_plant) "gan" = ( /obj/structure/platform_decoration/shiva{ @@ -30134,56 +21801,49 @@ /obj/structure/platform_decoration/shiva{ dir = 4 }, -/turf/open/floor/bluegrid{ - icon_state = "bcircuitoff" - }, +/turf/open/floor/bluegrid/bcircuitoff, /area/bigredv2/caves/lambda/research) +"gbA" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/asteroidfloor/north, +/area/bigredv2/outside/ne) "gcR" = ( /obj/effect/landmark/crap_item, -/turf/open/mars_cave{ - icon_state = "mars_cave_3" - }, +/turf/open/mars_cave/mars_cave_3, /area/bigredv2/caves_sw) "gda" = ( /turf/open/mars_cave, /area/bigredv2/outside/lz1_telecomm_cas) "gdx" = ( -/turf/open/floor{ - dir = 6; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/southeast, /area/bigredv2/outside/engineering) +"gdK" = ( +/turf/open/mars_cave/mars_dirt_6, +/area/bigredv2/outside/n) "gdN" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /turf/open/mars, /area/bigredv2/caves/eta/xenobiology) +"gej" = ( +/turf/open/floor/whiteblue/southeast, +/area/bigredv2/outside/medical) "geC" = ( -/turf/open/mars_cave{ - icon_state = "mars_dirt_6" - }, +/turf/open/mars_cave/mars_dirt_6, /area/bigredv2/outside/lz1_north_cas) "gfX" = ( /obj/structure/sign/safety/hazard{ pixel_y = -32 }, -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/bigredv2/outside/engineering) "ggC" = ( /obj/structure/surface/rack, /obj/effect/landmark/good_item, /obj/item/stack/sheet/metal/small_stack, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "ggW" = ( -/turf/open/floor{ - dir = 4; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/east, /area/bigredv2/caves/lambda/research) "gio" = ( /turf/open/mars_cave, @@ -30199,23 +21859,17 @@ /obj/structure/barricade/handrail/wire{ dir = 1 }, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/outside/s) "gke" = ( /obj/item/tool/warning_cone, -/turf/open/mars_cave{ - icon_state = "mars_dirt_7" - }, +/turf/open/mars_cave/mars_dirt_7, /area/bigredv2/outside/s) "gki" = ( /obj/effect/decal/cleanable/blood{ icon_state = "xgib2" }, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/caves/mining) "gkD" = ( /obj/structure/barricade/wooden{ @@ -30223,9 +21877,7 @@ dir = 4; health = 25000 }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/cargo) "glB" = ( /obj/structure/blocker/forcefield/multitile_vehicles, @@ -30241,17 +21893,12 @@ /turf/open/floor/plating, /area/bigredv2/outside/engineering) "gmN" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_18" - }, +/turf/open/mars_cave/mars_cave_18, /area/bigredv2/caves_lambda) "gnR" = ( /obj/structure/largecrate/random/barrel/red, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "gpg" = ( /turf/open/mars_cave, @@ -30260,30 +21907,27 @@ /obj/effect/decal/cleanable/blood/splatter, /obj/item/ore/diamond, /obj/effect/landmark/corpsespawner/miner, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "gpt" = ( /obj/effect/landmark/crap_item, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/bigredv2/outside/c) +"gpA" = ( +/obj/structure/surface/table, +/obj/structure/machinery/light, +/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, +/turf/open/floor/asteroidwarning, +/area/bigredv2/outside/space_port_lz2) "gpB" = ( -/turf/open/mars_cave{ - icon_state = "mars_dirt_6" - }, +/turf/open/mars_cave/mars_dirt_6, /area/bigredv2/caves_research) "gpR" = ( /turf/open/gm/river, /area/bigredv2/outside/c) "gpT" = ( /obj/effect/landmark/crap_item, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/outside/lz2_south_cas) "gqS" = ( /obj/structure/surface/table/reinforced/prison, @@ -30291,46 +21935,51 @@ /obj/structure/machinery/light, /turf/open/floor, /area/bigred/ground/garage_workshop) +"gri" = ( +/obj/effect/landmark/nightmare{ + insert_tag = "containerroom_xenos" + }, +/turf/closed/wall/solaris/reinforced, +/area/bigredv2/outside/nw/ceiling) "grU" = ( /obj/structure/machinery/door/poddoor/almayer/closed{ dir = 4; id = "viro"; name = "Virology Lockdown" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/virology) "gsW" = ( /obj/structure/platform/kutjevo/rock, /obj/structure/platform/kutjevo/rock{ dir = 8 }, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/space) +"gts" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/obj/structure/morgue{ + dir = 2 + }, +/turf/open/floor/whiteblue/north, +/area/bigredv2/outside/medical) "gtX" = ( /turf/open/mars_cave, /area/bigredv2/caves_se) "guu" = ( /obj/structure/machinery/light, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/engineering) "guM" = ( -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/caves_research) "gvd" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/medidoor/colony{ name = "\improper Lambda Lab Break Room" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/caves/lambda/breakroom) "gvI" = ( /obj/structure/transmitter/colony_net{ @@ -30341,55 +21990,39 @@ phone_id = "Director's Safe Room"; pixel_x = -18 }, -/turf/open/floor{ - dir = 1; - icon_state = "elevatorshaft" - }, +/turf/open/floor/elevatorshaft/north, /area/bigredv2/caves/lambda/breakroom) "gwg" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/bigredv2/outside/engineering) "gxJ" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_18" - }, +/turf/open/mars_cave/mars_cave_18, /area/bigredv2/caves_sw) "gyJ" = ( /obj/structure/machinery/power/port_gen/pacman/super, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves/mining) "gyL" = ( /obj/item/ore{ pixel_x = 13; pixel_y = 12 }, -/turf/open/mars_cave{ - icon_state = "mars_dirt_7" - }, +/turf/open/mars_cave/mars_dirt_7, /area/bigredv2/caves/mining) "gyU" = ( /obj/item/ore{ pixel_x = -7; pixel_y = 7 }, -/turf/open/mars_cave{ - icon_state = "mars_dirt_7" - }, +/turf/open/mars_cave/mars_dirt_7, /area/bigredv2/caves/mining) "gzG" = ( /obj/effect/decal/cleanable/blood/drip{ pixel_x = -9; pixel_y = 18 }, -/turf/open/mars_cave{ - icon_state = "mars_cave_14" - }, +/turf/open/mars_cave/mars_cave_14, /area/bigredv2/caves/mining) "gAE" = ( /obj/structure/sink{ @@ -30398,13 +22031,22 @@ }, /turf/open/floor, /area/bigredv2/outside/hydroponics) +"gAK" = ( +/obj/effect/landmark/nightmare{ + insert_tag = "chapel_cult" + }, +/turf/closed/wall/solaris, +/area/bigredv2/outside/chapel) +"gAX" = ( +/obj/structure/pipes/standard/manifold/hidden/green{ + dir = 8 + }, +/turf/open/floor/dark, +/area/bigredv2/outside/office_complex) "gCx" = ( /obj/structure/surface/table, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/bigredv2/outside/filtration_plant) "gCC" = ( /obj/structure/closet/secure_closet, @@ -30428,98 +22070,97 @@ /turf/open/floor/plating, /area/bigredv2/caves/mining) "gCE" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves_east) +"gEM" = ( +/obj/structure/machinery/vending/security, +/obj/structure/blocker/forcefield/multitile_vehicles, +/turf/open/floor/red, +/area/bigredv2/outside/lambda_cave_cas) "gFR" = ( /obj/structure/machinery/power/port_gen/pacman, -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/bigredv2/outside/engineering) "gGO" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg2" - }, +/turf/open/floor/plating/platingdmg2/west, /area/bigredv2/caves/mining) "gHH" = ( /obj/structure/largecrate/random/barrel/white, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves/mining) "gHV" = ( /obj/structure/surface/table, -/turf/open/floor{ - dir = 6; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/southeast, /area/bigredv2/outside/engineering) +"gIT" = ( +/obj/structure/machinery/door/poddoor/almayer/closed{ + dir = 4; + id = "lambda-interior"; + name = "Lambda Checkpoint Interior" + }, +/turf/open/floor/delivery, +/area/bigredv2/caves_north) "gJw" = ( /obj/structure/blocker/forcefield/multitile_vehicles, /turf/open/mars_cave, /area/bigredv2/caves_virology) "gKk" = ( /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/mars_cave{ - icon_state = "mars_cave_4" - }, +/turf/open/mars_cave/mars_cave_4, /area/bigredv2/caves_virology) +"gMj" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + pixel_x = -1; + pixel_y = 1 + }, +/turf/open/floor/asteroidfloor/north, +/area/bigredv2/outside/c) +"gMC" = ( +/obj/structure/surface/table, +/obj/effect/spawner/random/bomb_supply, +/turf/open/floor, +/area/bigredv2/outside/cargo) "gML" = ( /obj/structure/machinery/power/turbine, -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/bigredv2/outside/engineering) "gNz" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/mars_cave{ - icon_state = "mars_cave_10" - }, +/turf/open/mars_cave/mars_cave_10, /area/bigredv2/caves_se) "gNH" = ( /turf/closed/wall/solaris/reinforced, /area/bigredv2/caves) -"gOf" = ( -/obj/structure/machinery/power/geothermal, -/turf/open/floor/plating, -/area/bigredv2/caves/eta/storage) "gOr" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves_research) +"gPc" = ( +/turf/open/floor/asteroidwarning/east, +/area/bigredv2/outside/telecomm/n_cave) "gPh" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/door/airlock/almayer/secure/colony{ name = "\improper Engine Reactor" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/engineering) "gPE" = ( /obj/effect/decal/cleanable/dirt, /obj/item/device/flashlight/lantern, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) +"gQj" = ( +/obj/structure/cargo_container/horizontal/blue/top, +/turf/open/mars, +/area/bigredv2/outside/space_port_lz2) "gSg" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/se) "gSB" = ( /obj/structure/sign/safety/restrictedarea{ @@ -30534,20 +22175,14 @@ "gTN" = ( /obj/structure/window/framed/solaris/reinforced/hull, /obj/structure/cable, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/oob) "gTS" = ( /obj/effect/decal/cleanable/dirt, /obj/item/shard{ icon_state = "small" }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "gUD" = ( /obj/structure/barricade/handrail{ @@ -30555,10 +22190,7 @@ layer = 3.01; pixel_y = 9 }, -/turf/open/floor{ - dir = 9; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/northwest, /area/bigredv2/outside/engineering) "gVl" = ( /obj/effect/decal/warning_stripes{ @@ -30566,17 +22198,20 @@ pixel_x = 1; pixel_y = 1 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/darkyellowcorners2/east, /area/bigredv2/outside/engineering) "gVm" = ( -/turf/open/floor{ - dir = 6; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/southeast, /area/bigredv2/caves/eta/research) +"gWv" = ( +/obj/effect/landmark/nightmare{ + insert_tag = "eta_carp" + }, +/turf/closed/wall/solaris/reinforced, +/area/bigredv2/caves/eta/xenobiology) +"gWD" = ( +/turf/closed/wall/solaris, +/area/bigredv2/outside/space_port_lz2) "gWU" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -30586,33 +22221,23 @@ icon_state = "S"; pixel_y = -1 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/admin_building) "gXp" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_6" - }, +/turf/open/mars_cave/mars_cave_6, /area/bigredv2/caves_lambda) "gXs" = ( /obj/effect/spawner/random/toolbox, -/turf/open/shuttle/escapepod{ - icon_state = "floor5" - }, +/turf/open/shuttle/escapepod/floor5, /area/bigredv2/oob) "gYl" = ( /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/mars_cave{ - icon_state = "mars_cave_18" - }, +/turf/open/mars_cave/mars_cave_18, /area/bigredv2/caves_virology) "gYt" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves_sw) "gZc" = ( /obj/structure/machinery/light{ @@ -30621,43 +22246,49 @@ /obj/structure/sign/safety/high_rad{ pixel_x = -32 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/bigredv2/outside/engineering) +"hah" = ( +/obj/structure/machinery/light{ + dir = 8 + }, +/turf/open/floor/loadingarea, +/area/bigredv2/outside/cargo) "haT" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/bigredv2/outside/filtration_plant) +"hbx" = ( +/obj/structure/machinery/light{ + dir = 8 + }, +/obj/structure/bed/roller, +/turf/open/floor/white, +/area/bigredv2/outside/medical) "hcb" = ( /obj/effect/landmark/hunter_secondary, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/outside/lz1_telecomm_cas) "hcH" = ( /obj/structure/surface/table, /obj/effect/spawner/random/tool, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/bigredv2/outside/engineering) "hdc" = ( /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/west, /area/bigredv2/outside/engineering) +"heD" = ( +/obj/structure/machinery/light{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood, +/area/bigredv2/outside/library) "heG" = ( /obj/structure/bed/chair{ can_buckle = 0; @@ -30666,48 +22297,42 @@ pixel_y = 6 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) -"heI" = ( -/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/obj/structure/machinery/door/poddoor/almayer/closed{ - dir = 4; - id = "lambda"; - name = "Lambda Lockdown" - }, -/turf/open/floor{ - icon_state = "delivery" - }, -/area/bigredv2/caves_lambda) -"heU" = ( -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/sw) "hfB" = ( /obj/item/ore{ pixel_x = -5; pixel_y = 2 }, -/turf/open/mars_cave{ - icon_state = "mars_dirt_6" - }, +/turf/open/mars_cave/mars_dirt_6, /area/bigredv2/caves/mining) +"hgr" = ( +/obj/structure/blocker/forcefield/multitile_vehicles, +/turf/open/mars_cave/mars_cave_16, +/area/bigredv2/outside/ne) +"hgO" = ( +/obj/structure/blocker/forcefield/multitile_vehicles, +/turf/open/mars_cave/mars_cave_14, +/area/bigredv2/outside/n) "hgT" = ( -/turf/open/mars_cave{ - icon_state = "mars_dirt_7" - }, +/turf/open/mars_cave/mars_dirt_7, /area/bigredv2/outside/lz1_north_cas) -"hhK" = ( -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" +"hho" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/bed/chair/wood/normal{ + dir = 4 }, +/turf/open/floor/wood, +/area/bigredv2/outside/library) +"hhK" = ( +/turf/open/floor/darkyellow2/north, /area/bigredv2/outside/engineering) +"hhX" = ( +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 10 + }, +/turf/open/floor/plating, +/area/bigredv2/outside/bar) "hiP" = ( /obj/structure/sign/safety/one{ pixel_x = 16 @@ -30715,9 +22340,7 @@ /turf/closed/wall/solaris/reinforced, /area/bigredv2/caves/mining) "hiY" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_15" - }, +/turf/open/mars_cave/mars_cave_15, /area/bigredv2/caves_sw) "hkv" = ( /obj/structure/reagent_dispensers/fueltank, @@ -30727,15 +22350,10 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/east, /area/bigredv2/outside/admin_building) "hmm" = ( -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/caves/lambda/research) "hmJ" = ( /obj/item/weapon/gun/pistol/holdout, @@ -30746,50 +22364,34 @@ pixel_x = -1; pixel_y = -8 }, -/turf/open/mars_cave{ - icon_state = "mars_dirt_7" - }, +/turf/open/mars_cave/mars_dirt_7, /area/bigredv2/caves/mining) "hnh" = ( /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/mars_cave{ - icon_state = "mars_cave_17" - }, +/turf/open/mars_cave/mars_cave_17, /area/bigredv2/caves_research) "hoQ" = ( /obj/effect/landmark/hunter_secondary, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves_sw) "hoY" = ( /obj/structure/machinery/portable_atmospherics/powered/scrubber/huge/stationary, /obj/structure/cable{ icon_state = "11-6" }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "hpg" = ( -/turf/open/mars{ - icon_state = "mars_dirt_13" - }, +/turf/open/mars/mars_dirt_13, /area/bigredv2/outside/space_port_lz2) "hqC" = ( /obj/item/ammo_magazine/rifle/mar40/lmg, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves/mining) "hqD" = ( -/turf/open/floor{ - dir = 10; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/southwest, /area/bigredv2/outside/lz2_south_cas) "hqO" = ( /obj/structure/blocker/forcefield/multitile_vehicles, @@ -30799,24 +22401,22 @@ /obj/effect/decal/warning_stripes{ icon_state = "E-corner" }, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/outside/filtration_cave_cas) "hsF" = ( /obj/structure/closet/firecloset/full, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/bigredv2/outside/filtration_plant) "hsJ" = ( /obj/item/ore, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/filtration_plant) +"hto" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/machinery/vending/cola, +/turf/open/floor, +/area/bigredv2/outside/general_offices) "hvQ" = ( /obj/structure/machinery/light/small{ dir = 8 @@ -30828,31 +22428,26 @@ pixel_x = -8; pixel_y = 6 }, -/turf/open/mars_cave{ - icon_state = "mars_cave_17" - }, +/turf/open/mars_cave/mars_cave_17, /area/bigredv2/caves/mining) "hwy" = ( /obj/effect/landmark/crap_item, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/lambda/research) "hxs" = ( /obj/structure/closet/secure_closet/personal/cabinet, /obj/effect/landmark/objective_landmark/far, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/admin_building) "hyv" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, /obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, -/turf/open/mars_cave{ - icon_state = "mars_dirt_7" - }, +/turf/open/mars_cave/mars_dirt_7, /area/bigredv2/caves/mining) +"hyC" = ( +/turf/open/floor/bcircuit, +/area/bigredv2/outside/telecomm/warehouse) "hzg" = ( /obj/structure/cable{ icon_state = "1-6" @@ -30860,10 +22455,7 @@ /obj/structure/cable{ icon_state = "1-9" }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "hzy" = ( /obj/structure/surface/table, @@ -30872,9 +22464,7 @@ /area/bigredv2/outside/cargo) "hzP" = ( /obj/item/paper/bigred/final, -/turf/open/mars_cave{ - icon_state = "mars_cave_13" - }, +/turf/open/mars_cave/mars_cave_13, /area/bigredv2/caves/mining) "hAj" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, @@ -30900,80 +22490,97 @@ pixel_x = -3; pixel_y = 16 }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) +"hDK" = ( +/obj/structure/largecrate/supply, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/asteroidfloor/north, +/area/bigredv2/outside/n) "hEz" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_6" - }, +/turf/open/mars_cave/mars_cave_6, /area/bigredv2/caves/mining) "hEC" = ( /obj/structure/machinery/light, /turf/open/floor/plating, /area/bigredv2/outside/lz2_south_cas) "hEE" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_6" - }, +/turf/open/mars_cave/mars_cave_6, /area/bigredv2/outside/lz2_south_cas) "hEK" = ( /obj/structure/reagent_dispensers/fueltank/gas, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) +"hFg" = ( +/obj/effect/landmark/crap_item, +/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, +/turf/open/mars_cave/mars_cave_6, +/area/bigredv2/caves_lambda) +"hFv" = ( +/obj/structure/platform{ + dir = 4 + }, +/turf/open/floor/asteroidfloor/north, +/area/bigredv2/outside/telecomm/n_cave) "hFP" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/item_pool_spawner/survivor_ammo, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) +"hFV" = ( +/obj/structure/blocker/forcefield/multitile_vehicles, +/turf/open/mars_cave/mars_cave_9, +/area/bigredv2/outside/n) +"hGv" = ( +/obj/structure/machinery/light, +/turf/open/floor/asteroidwarning/north, +/area/bigredv2/outside/n) +"hHa" = ( +/obj/structure/fence, +/turf/open/floor/asteroidfloor/north, +/area/bigredv2/outside/n) "hHb" = ( /obj/structure/sign/safety/ladder, /turf/closed/wall/solaris/reinforced/hull, /area/bigredv2/oob) +"hHG" = ( +/obj/structure/machinery/power/reactor/colony, +/turf/open/floor/plating, +/area/bigredv2/caves/eta/storage) +"hJH" = ( +/obj/effect/landmark/static_comms/net_one, +/turf/open/floor/podhatchfloor, +/area/bigredv2/outside/telecomm/n_cave) "hKl" = ( /obj/structure/surface/rack, /obj/item/reagent_container/food/drinks/bottle/goldschlager, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "hKt" = ( /obj/item/device/flashlight/lantern, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves/mining) "hKD" = ( /obj/effect/landmark/crap_item, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves_se) "hKM" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_17" - }, +/turf/open/mars_cave/mars_cave_17, /area/bigredv2/caves_north) +"hKO" = ( +/obj/structure/machinery/light{ + dir = 8 + }, +/turf/open/floor/red/southwest, +/area/bigredv2/outside/lambda_cave_cas) "hLp" = ( /obj/effect/landmark/corpsespawner/ua_riot, /turf/open/mars_cave, /area/bigredv2/caves/mining) "hLs" = ( -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/north, /area/bigredv2/outside/lambda_cave_cas) "hLS" = ( /obj/structure/sign/poster/safety, @@ -30983,51 +22590,37 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/crap_item, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/eta/research) +"hNW" = ( +/obj/structure/machinery/light, +/turf/open/floor/asteroidfloor/north, +/area/bigredv2/outside/lambda_cave_cas) "hOx" = ( /obj/structure/machinery/portable_atmospherics/powered/scrubber/huge/stationary, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/north, /area/bigredv2/outside/filtration_plant) "hOS" = ( /obj/structure/surface/table, /obj/item/clothing/head/collectable/tophat/super, -/turf/open/floor{ - dir = 5; - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull/northeast, /area/bigredv2/outside/general_store) "hPS" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, /obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves_se) +"hQO" = ( +/turf/open/mars_cave/mars_cave_14, +/area/bigredv2/outside/n) "hRy" = ( /obj/structure/surface/rack, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) -"hSs" = ( -/obj/structure/machinery/light, -/turf/open/mars_cave{ - icon_state = "mars_cave_8" - }, -/area/bigredv2/outside/lambda_cave_cas) "hSP" = ( /obj/structure/machinery/vending/cigarette/colony, -/turf/open/mars_cave{ - icon_state = "mars_dirt_6" - }, +/turf/open/mars_cave/mars_dirt_6, /area/bigredv2/caves/mining) "hTO" = ( /obj/effect/decal/cleanable/blood/gibs/xeno/body, @@ -31036,29 +22629,26 @@ id = "viro"; name = "Virology Lockdown" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/virology) "hUh" = ( /obj/item/spacecash/c1, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) -"hWa" = ( -/turf/open/floor{ - icon_state = "dark" +"hVP" = ( +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 4 }, +/turf/open/floor/bot/north, +/area/bigredv2/outside/cargo) +"hWa" = ( +/turf/open/floor/dark, /area/bigredv2/caves/lambda/research) "hWM" = ( /obj/structure/machinery/filtration/console{ pixel_y = 15 }, -/turf/open/mars_cave{ - icon_state = "mars_cave_15" - }, +/turf/open/mars_cave/mars_cave_15, /area/bigredv2/caves/mining) "hYB" = ( /obj/structure/platform{ @@ -31075,17 +22665,13 @@ "hYI" = ( /obj/effect/landmark/xeno_hive_spawn, /obj/effect/landmark/ert_spawns/groundside_xeno, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/virology) "hZc" = ( /obj/structure/platform/shiva{ dir = 4 }, -/turf/open/floor/bluegrid{ - icon_state = "bcircuitoff" - }, +/turf/open/floor/bluegrid/bcircuitoff, /area/bigredv2/caves/lambda/research) "hZl" = ( /obj/effect/decal/cleanable/blood/drip{ @@ -31116,33 +22702,54 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/bigredv2/caves/mining) +"iaS" = ( +/obj/structure/bed/chair/comfy{ + dir = 8 + }, +/turf/open/floor/wood, +/area/bigredv2/outside/library) "iaX" = ( /obj/item/weapon/twohanded/folded_metal_chair, /obj/effect/landmark/corpsespawner/colonist/random/burst, -/turf/open/mars_cave{ - icon_state = "mars_cave_16" - }, +/turf/open/mars_cave/mars_cave_16, /area/bigredv2/caves/mining) "ibP" = ( /turf/open/floor/plating, /area/bigredv2/caves_research) -"ibZ" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_16" +"ibV" = ( +/obj/structure/toilet{ + dir = 1 }, +/obj/effect/landmark/lv624/xeno_tunnel, +/turf/open/floor/freezerfloor, +/area/bigredv2/outside/dorms) +"ibZ" = ( +/turf/open/mars_cave/mars_cave_16, /area/bigredv2/caves_sw) +"ice" = ( +/obj/structure/surface/table, +/obj/item/clothing/ears/earmuffs, +/turf/open/floor/asteroidwarning, +/area/bigredv2/outside/space_port_lz2) "icQ" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_6" - }, +/turf/open/mars_cave/mars_cave_6, /area/bigredv2/caves_sw) +"idn" = ( +/obj/structure/blocker/forcefield/multitile_vehicles, +/turf/open/mars_cave/mars_dirt_4, +/area/bigredv2/outside/n) "idM" = ( /obj/structure/reagent_dispensers/fueltank, -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/bigredv2/outside/engineering) +"idT" = ( +/turf/open/mars_cave/mars_cave_9, +/area/bigredv2/caves_lambda) +"ied" = ( +/obj/structure/surface/table, +/obj/item/clothing/under/brown, +/turf/open/floor/freezerfloor, +/area/bigredv2/outside/general_offices) "iep" = ( /obj/structure/surface/rack, /obj/item/clothing/head/hardhat/dblue{ @@ -31156,9 +22763,7 @@ /obj/item/clothing/head/hardhat/dblue{ pixel_x = 7 }, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves/mining) "ieD" = ( /obj/structure/surface/rack, @@ -31171,10 +22776,7 @@ /obj/item/stack/sheet/mineral/platinum{ pixel_y = 12 }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "ifF" = ( /obj/effect/decal/cleanable/dirt, @@ -31184,38 +22786,36 @@ pixel_y = 12 }, /obj/item/ammo_box/magazine/misc/flares/empty, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "igM" = ( /obj/effect/decal/cleanable/blood/drip{ pixel_x = 6 }, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/caves/mining) "igU" = ( /obj/effect/decal/cleanable/blood/drip{ pixel_x = -5; pixel_y = 10 }, -/turf/open/mars_cave{ - icon_state = "mars_cave_16" - }, +/turf/open/mars_cave/mars_cave_16, /area/bigredv2/caves/mining) "ihW" = ( -/turf/open/mars_cave{ - icon_state = "mars_dirt_7" - }, +/turf/open/mars_cave/mars_dirt_7, /area/bigredv2/outside/eta) "iig" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/window/framed/solaris, /turf/open/floor/plating, /area/bigredv2/outside/engineering) +"iis" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/turf/open/floor/red, +/area/bigredv2/outside/marshal_office) "ijU" = ( /obj/structure/prop/almayer/cannon_cables{ name = "\improper Cables" @@ -31225,30 +22825,27 @@ desc = "A bewildering tangle of machinery and pipes."; name = "coolant feed" }, -/turf/open/shuttle/escapepod{ - icon_state = "floor1" - }, +/turf/open/shuttle/escapepod/floor1, /area/bigredv2/oob) +"ilH" = ( +/obj/structure/machinery/light, +/obj/structure/machinery/portable_atmospherics/hydroponics, +/turf/open/floor/whitegreenfull, +/area/bigredv2/outside/hydroponics) "ilO" = ( /obj/structure/prop/invuln/minecart_tracks{ dir = 1 }, -/turf/open/mars_cave{ - icon_state = "mars_cave_20" - }, +/turf/open/mars_cave/mars_cave_20, /area/bigredv2/caves/mining) "iml" = ( /obj/effect/landmark/crap_item, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves_research) "inx" = ( /obj/item/tool/warning_cone, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/bigredv2/outside/filtration_plant) "ioA" = ( /obj/item/tool/pickaxe{ @@ -31265,15 +22862,10 @@ dir = 8 }, /obj/structure/surface/rack, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "ioS" = ( -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/eta/living) "ipf" = ( /obj/item/device/flashlight/lantern{ @@ -31286,91 +22878,64 @@ /obj/item/storage/fancy/cigarettes/kpack{ pixel_x = 6 }, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves/mining) +"ipo" = ( +/obj/structure/barricade/wooden{ + desc = "This barricade is heavily reinforced. Nothing short of blasting it open seems like it'll do the trick, that or melting the breams supporting it..."; + dir = 8; + health = 25000 + }, +/turf/open/mars_cave/mars_dirt_4, +/area/bigredv2/caves_north) "iqF" = ( /obj/structure/prop/invuln/minecart_tracks, -/turf/open/mars_cave{ - icon_state = "mars_dirt_7" - }, +/turf/open/mars_cave/mars_dirt_7, /area/bigredv2/caves/mining) "irM" = ( /obj/item/weapon/shield/riot, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/caves_research) "irN" = ( /obj/effect/spawner/random/technology_scanner, /turf/open/floor/plating, /area/bigredv2/outside/filtration_plant) -"isr" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E-corner" - }, -/turf/open/mars_cave{ - icon_state = "mars_cave_19" +"irZ" = ( +/obj/structure/machinery/light{ + dir = 4 }, -/area/bigredv2/caves_north) +/turf/open/floor/red/southeast, +/area/bigredv2/outside/lambda_cave_cas) "itL" = ( /obj/structure/closet/l3closet/virology, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/virology) "iuu" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_16" - }, +/turf/open/mars_cave/mars_cave_16, /area/bigredv2/outside/lz1_north_cas) +"ivW" = ( +/turf/open/mars_cave/mars_cave_9, +/area/bigredv2/outside/ne) "iwG" = ( /obj/effect/landmark/crap_item, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves_virology) "ixA" = ( /obj/item/ore, -/turf/open/mars_cave{ - icon_state = "mars_dirt_6" - }, +/turf/open/mars_cave/mars_dirt_6, /area/bigredv2/caves/mining) -"ixR" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, -/area/bigredv2/outside/lambda_cave_cas) -"iyd" = ( -/obj/structure/machinery/computer/general_air_control, -/obj/structure/surface/table, -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, -/area/bigredv2/outside/filtration_plant) "iyY" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_13" - }, +/turf/open/mars_cave/mars_cave_13, /area/bigredv2/outside/lz1_north_cas) "izb" = ( /obj/structure/surface/table, /obj/effect/spawner/random/tool, /obj/effect/spawner/random/technology_scanner, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/engineering) "izh" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves_se) "iAi" = ( /obj/structure/surface/rack, @@ -31385,15 +22950,10 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/decal/hefa_cult_decals/d96, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "iAF" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_11" - }, +/turf/open/mars_cave/mars_cave_11, /area/bigredv2/caves_sw) "iAI" = ( /obj/structure/platform{ @@ -31401,6 +22961,16 @@ }, /turf/open/gm/river, /area/bigredv2/outside/engineering) +"iCu" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/barricade/wooden{ + desc = "This barricade is heavily reinforced. Nothing short of blasting it open seems like it'll do the trick, that or melting the breams supporting it..."; + dir = 8; + health = 25000 + }, +/turf/open/floor/asteroidfloor/north, +/area/bigredv2/outside/w) "iDJ" = ( /obj/effect/landmark/corpsespawner/miner, /obj/effect/decal/cleanable/blood{ @@ -31411,17 +22981,13 @@ pixel_y = 3 }, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/caves/mining) "iDL" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "darkgreencorners2" - }, +/turf/open/floor/darkgreencorners2, /area/bigredv2/caves/eta/research) "iDT" = ( /obj/effect/decal/warning_stripes{ @@ -31429,90 +22995,82 @@ pixel_x = 1 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 1; - icon_state = "darkredcorners2" - }, +/turf/open/floor/darkredcorners2/north, /area/bigredv2/outside/admin_building) "iDW" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/floor{ - dir = 8; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/darkyellowcorners2/west, /area/bigredv2/caves/eta/living) "iEj" = ( /obj/structure/disposalpipe/segment, /obj/structure/machinery/portable_atmospherics/powered/scrubber/huge/stationary, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) +"iEm" = ( +/obj/structure/bed/chair/wood/normal, +/turf/open/floor/carpet, +/area/bigredv2/outside/library) "iFa" = ( /obj/effect/decal/cleanable/dirt, /obj/item/bananapeel, -/turf/open/floor{ +/turf/open/floor/darkyellow2/east, +/area/bigredv2/outside/engineering) +"iFz" = ( +/obj/structure/machinery/door/poddoor/almayer/closed{ dir = 4; - icon_state = "darkyellow2" + id = "lambda-interior"; + name = "Lambda Checkpoint Interior" }, -/area/bigredv2/outside/engineering) +/turf/open/floor/delivery, +/area/bigredv2/outside/lambda_cave_cas) "iGK" = ( /turf/open/mars_cave, /area/bigredv2/caves_sw) -"iIp" = ( -/obj/effect/landmark/nightmare{ - insert_tag = "chapel" - }, -/turf/closed/wall/solaris, -/area/bigredv2/outside/chapel) +"iGY" = ( +/obj/item/stack/sheet/wood, +/turf/open/mars_cave/mars_cave_6, +/area/bigredv2/caves_north) +"iHe" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/asteroidwarning/west, +/area/bigredv2/outside/space_port_lz2) "iJF" = ( /obj/effect/decal/cleanable/blood{ icon_state = "gib6"; pixel_y = 12 }, /obj/item/stack/sheet/wood, -/turf/open/mars_cave{ - icon_state = "mars_cave_13" - }, +/turf/open/mars_cave/mars_cave_13, /area/bigredv2/caves/mining) "iKn" = ( -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/lambda_cave_cas) "iLs" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/caves/mining) "iLu" = ( /obj/structure/girder, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) +"iNE" = ( +/obj/effect/landmark/static_comms/net_one, +/turf/open/floor/bcircuit, +/area/bigredv2/outside/telecomm/warehouse) "iNR" = ( /turf/open/gm/river, /area/bigredv2/outside/engineering) -"iOL" = ( +"iOR" = ( /obj/effect/landmark/crap_item, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, -/area/bigredv2/caves_north) +/turf/open/floor/asteroidfloor/north, +/area/bigredv2/outside/ne) "iPE" = ( /obj/structure/prop/invuln/minecart_tracks{ dir = 1 }, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/caves/mining) "iQw" = ( /obj/item/ore, @@ -31520,37 +23078,25 @@ /area/bigredv2/outside/filtration_plant) "iQC" = ( /obj/effect/landmark/crap_item, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/engineering) "iQG" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/mars_cave{ - icon_state = "mars_cave_6" - }, +/turf/open/mars_cave/mars_cave_6, /area/bigredv2/caves_research) "iRf" = ( /obj/structure/fence, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/telecomm/n_cave) "iRw" = ( /obj/structure/closet/secure_closet, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor{ - dir = 9; - icon_state = "redfull" - }, +/turf/open/floor/redfull/northwest, /area/bigredv2/caves/eta/research) "iRG" = ( /obj/effect/landmark/xeno_hive_spawn, /obj/effect/landmark/ert_spawns/groundside_xeno, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves_research) "iSz" = ( /obj/structure/barricade/handrail{ @@ -31561,11 +23107,16 @@ /obj/structure/barricade/handrail, /turf/open/floor/plating/plating_catwalk, /area/bigredv2/outside/engineering) -"iUe" = ( -/turf/open/floor{ - dir = 6; - icon_state = "darkred2" +"iTN" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_x = 1; + pixel_y = 1 }, +/turf/open/floor/plating/warnplate/southwest, +/area/bigredv2/outside/telecomm/warehouse) +"iUe" = ( +/turf/open/floor/darkred2/southeast, /area/bigredv2/caves/eta/research) "iVd" = ( /obj/structure/platform/kutjevo/rock{ @@ -31584,59 +23135,54 @@ /turf/open/mars, /area/bigredv2/outside/se) "iXp" = ( -/turf/open/floor{ - dir = 6; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/southeast, /area/bigredv2/outside/filtration_cave_cas) +"iXs" = ( +/obj/structure/platform_decoration{ + dir = 1 + }, +/obj/structure/prop/server_equipment/yutani_server{ + density = 0; + pixel_y = 16 + }, +/turf/open/floor/asteroidfloor/north, +/area/bigredv2/outside/telecomm/n_cave) +"iXx" = ( +/turf/open/mars_cave, +/area/bigredv2/outside/n) "iXN" = ( /obj/item/ore{ pixel_x = -7; pixel_y = 7 }, -/turf/open/mars_cave{ - icon_state = "mars_dirt_6" - }, +/turf/open/mars_cave/mars_dirt_6, /area/bigredv2/caves/mining) "iYN" = ( /obj/structure/closet/secure_closet, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - dir = 9; - icon_state = "redfull" - }, +/turf/open/floor/redfull/northwest, /area/bigredv2/caves/eta/research) "iYR" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/east, /area/bigredv2/outside/filtration_plant) "iZc" = ( /obj/structure/stairs/perspective{ icon_state = "p_stair_full" }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/admin_building) -"iZh" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E-corner" - }, -/turf/open/mars_cave, -/area/bigredv2/caves_north) -"iZi" = ( -/obj/structure/machinery/light, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/lambda_cave_cas) "iZA" = ( /obj/structure/surface/rack, /turf/open/floor, /area/bigredv2/caves) +"jay" = ( +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 5 + }, +/obj/structure/machinery/portable_atmospherics/hydroponics, +/turf/open/floor/whitegreenfull, +/area/bigredv2/outside/hydroponics) "jbU" = ( /obj/effect/decal/cleanable/blood{ base_icon = 'icons/obj/items/weapons/grenade.dmi'; @@ -31645,30 +23191,17 @@ icon_state = "grenade_custom"; name = "M55C Teargas grenade" }, -/turf/open/mars_cave{ - icon_state = "mars_cave_13" - }, +/turf/open/mars_cave/mars_cave_13, /area/bigredv2/caves/mining) -"jcn" = ( -/obj/effect/landmark/nightmare{ - insert_tag = "tcomms" - }, -/turf/closed/wall/solaris/rock, -/area/bigredv2/caves) "jcR" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves_research) "jdj" = ( /obj/effect/landmark/nightmare{ insert_tag = "crashlanding-offices" }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/c) "jdQ" = ( /obj/structure/prop/dam/truck/mining{ @@ -31677,47 +23210,35 @@ icon_state = "crawler_crate_alt"; name = "crawler" }, -/turf/open/mars{ - icon_state = "mars_dirt_3" - }, +/turf/open/mars/mars_dirt_3, /area/bigredv2/outside/s) +"jeO" = ( +/turf/open/mars/mars_dirt_13, +/area/bigredv2/outside/n) "jfr" = ( -/turf/open/floor{ - dir = 5; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/northeast, /area/bigredv2/outside/se) "jgw" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/eta/xenobiology) "jgW" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_10" - }, +/turf/open/mars_cave/mars_cave_10, /area/bigredv2/caves_lambda) "jhj" = ( /obj/structure/machinery/vending/sovietsoda{ icon_state = "sovietsoda-broken"; stat = 1 }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "jhM" = ( /obj/effect/decal/cleanable/dirt, /obj/item/paper/bigred/witness, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "jiS" = ( /obj/structure/machinery/power/apc{ @@ -31739,10 +23260,7 @@ pixel_x = -1; pixel_y = 14 }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "jkO" = ( /obj/item/explosive/grenade/high_explosive/frag, @@ -31755,17 +23273,18 @@ /obj/structure/reagent_dispensers/fueltank/gas, /turf/open/floor/plating, /area/bigredv2/caves/mining) +"jlS" = ( +/turf/open/floor/asteroidwarning/southwest, +/area/bigredv2/outside/space_port_lz2) +"jmD" = ( +/turf/open/mars_cave/mars_cave_6, +/area/bigredv2/outside/ne) "jna" = ( /obj/item/prop/alien/hugger, -/turf/open/floor{ - icon_state = "darkred2" - }, +/turf/open/floor/darkred2, /area/bigredv2/outside/admin_building) "jnR" = ( -/turf/open/floor{ - dir = 9; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/northwest, /area/bigredv2/caves/eta/research) "jnV" = ( /obj/structure/prop/invuln/minecart_tracks{ @@ -31777,89 +23296,72 @@ /obj/structure/cable{ icon_state = "2-9" }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) -"joa" = ( +"jph" = ( /obj/structure/pipes/standard/simple/hidden/green{ - dir = 5 + dir = 4 }, -/obj/effect/landmark/nightmare{ - insert_tag = "dorms" +/obj/structure/machinery/camera/autoname{ + dir = 1 }, /turf/open/floor, /area/bigredv2/outside/dorms) -"joi" = ( -/obj/effect/landmark/static_comms/net_one, -/turf/open/floor/plating, -/area/bigredv2/outside/telecomm/warehouse) "jpT" = ( /obj/structure/surface/table, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/dorms) "jrA" = ( /obj/structure/prop/invuln/minecart_tracks{ dir = 1 }, -/turf/open/mars_cave{ - icon_state = "mars_dirt_7" - }, +/turf/open/mars_cave/mars_dirt_7, /area/bigredv2/caves/mining) "jrD" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves_research) +"jrN" = ( +/obj/structure/closet/crate/trashcart, +/turf/open/floor/asteroidplating, +/area/bigredv2/outside/space_port_lz2) "jsL" = ( /obj/effect/decal/warning_stripes{ icon_state = "N" }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg2" - }, +/turf/open/floor/plating/platingdmg2/west, /area/bigredv2/caves/mining) "jtL" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_7" - }, +/turf/open/mars_cave/mars_cave_7, /area/bigredv2/caves/mining) -"jtX" = ( -/turf/open/floor/plating{ - dir = 10; - icon_state = "warnplate" - }, -/area/bigredv2/outside/telecomm/warehouse) "juo" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor{ - dir = 9; - icon_state = "podhatch" - }, +/turf/open/floor/podhatch/northwest, /area/bigredv2/caves/lambda/research) -"jvt" = ( -/obj/structure/lz_sign/solaris_sign, -/turf/open/mars, -/area/bigredv2/outside/w) +"juZ" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/turf/open/floor/asteroidwarning/north, +/area/bigredv2/outside/lambda_cave_cas) +"jvW" = ( +/obj/structure/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/asteroidwarning/southeast, +/area/bigredv2/caves_lambda) "jwj" = ( /obj/structure/platform/shiva{ dir = 8 }, /obj/item/disk, -/turf/open/floor/bluegrid{ - icon_state = "bcircuitoff" - }, +/turf/open/floor/bluegrid/bcircuitoff, /area/bigredv2/caves/lambda/research) "jxA" = ( /obj/structure/barricade/handrail, @@ -31869,16 +23371,11 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/west, /area/bigredv2/outside/engineering) "jzD" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor{ - icon_state = "darkish" - }, +/turf/open/floor/darkish, /area/bigredv2/caves/lambda/virology) "jAm" = ( /obj/structure/coatrack{ @@ -31888,44 +23385,37 @@ /obj/item/clothing/shoes/black{ pixel_y = -7 }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/admin_building) "jAo" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/mars_cave{ - icon_state = "mars_cave_5" - }, +/turf/open/mars_cave/mars_cave_5, /area/bigredv2/caves_sw) "jAJ" = ( -/turf/open/floor{ - icon_state = "podhatchfloor" - }, +/turf/open/floor/podhatchfloor, /area/bigredv2/outside/engineering) "jAN" = ( /obj/item/tool/pickaxe, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves/mining) +"jAR" = ( +/obj/structure/bookcase/manuals/engineering, +/turf/open/floor/wood, +/area/bigredv2/outside/marshal_office) +"jAX" = ( +/turf/open/mars_cave/mars_cave_17, +/area/bigredv2/caves_lambda) "jBq" = ( /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/eta) "jCg" = ( /obj/effect/spawner/random/attachment, /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "jCq" = ( /obj/effect/landmark/corpsespawner/ua_riot, @@ -31940,15 +23430,15 @@ layer = 3 }, /obj/item/weapon/baton/loaded, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/caves/mining) "jCY" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_10" - }, +/turf/open/mars_cave/mars_cave_10, /area/bigredv2/caves_virology) +"jDo" = ( +/obj/effect/landmark/hunter_secondary, +/turf/open/mars_cave/mars_dirt_4, +/area/bigredv2/outside/space_port_lz2) "jDy" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/warning_stripes{ @@ -31962,22 +23452,15 @@ "jDT" = ( /obj/structure/surface/table, /obj/effect/spawner/random/technology_scanner, -/turf/open/floor{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/west, /area/bigredv2/outside/engineering) "jEx" = ( /obj/structure/machinery/power/port_gen/pacman/super, -/turf/open/mars_cave{ - icon_state = "mars_cave_16" - }, +/turf/open/mars_cave/mars_cave_16, /area/bigredv2/caves/mining) "jGd" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves_se) "jGn" = ( /obj/structure/machinery/door_control{ @@ -31986,23 +23469,16 @@ pixel_x = 26; range = 500 }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/marshal_office) "jGQ" = ( /obj/effect/decal/cleanable/dirt, /obj/item/device/flashlight/lantern, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg2" - }, +/turf/open/floor/plating/platingdmg2/west, /area/bigredv2/caves/mining) "jGT" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/outside/filtration_cave_cas) "jHS" = ( /obj/structure/surface/table/reinforced/prison, @@ -32014,9 +23490,7 @@ /turf/open/floor, /area/bigred/ground/garage_workshop) "jIQ" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_19" - }, +/turf/open/mars_cave/mars_cave_19, /area/bigredv2/outside/lz1_north_cas) "jJB" = ( /obj/effect/decal/cleanable/dirt, @@ -32030,10 +23504,18 @@ icon_state = "4-8"; name = "heavy duty power cable" }, -/turf/open/mars_cave{ - icon_state = "mars_dirt_5" - }, +/turf/open/mars_cave/mars_dirt_5, /area/bigredv2/caves/mining) +"jJO" = ( +/obj/structure/blocker/forcefield/multitile_vehicles, +/turf/open/mars_cave/mars_cave_13, +/area/bigredv2/caves_north) +"jKp" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/turf/open/floor/red/north, +/area/bigredv2/outside/lambda_cave_cas) "jKI" = ( /obj/structure/platform_decoration/shiva{ dir = 8 @@ -32042,38 +23524,47 @@ /obj/item/shard{ icon_state = "medium" }, -/turf/open/floor/bluegrid{ - icon_state = "bcircuitoff" - }, +/turf/open/floor/bluegrid/bcircuitoff, /area/bigredv2/caves/lambda/research) "jMm" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves_sw) "jMn" = ( /obj/structure/machinery/light{ dir = 8 }, /obj/effect/decal/cleanable/ash, -/turf/open/floor{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/west, /area/bigredv2/outside/engineering) +"jNE" = ( +/obj/structure/machinery/washing_machine, +/obj/structure/machinery/washing_machine{ + pixel_y = 13 + }, +/turf/open/floor/freezerfloor, +/area/bigredv2/outside/general_offices) +"jNN" = ( +/obj/structure/bed/chair/wood/normal, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood, +/area/bigredv2/outside/library) "jOc" = ( /obj/structure/machinery/door/poddoor/almayer/closed{ dir = 4; id = "eta"; name = "Eta Lockdown" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/lz2_south_cas) +"jOj" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/tool/surgery/hemostat, +/obj/effect/decal/cleanable/blood, +/turf/open/floor/freezerfloor, +/area/bigredv2/outside/dorms) "jOS" = ( /obj/structure/surface/rack, /obj/item/tool/pickaxe/plasmacutter{ @@ -32083,10 +23574,7 @@ pixel_y = -5 }, /obj/item/tool/pickaxe/plasmacutter, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "jPm" = ( /obj/structure/bed/chair/office/dark{ @@ -32095,6 +23583,9 @@ }, /turf/open/floor/plating, /area/bigredv2/caves/mining) +"jPQ" = ( +/turf/open/mars_cave/mars_cave_16, +/area/bigredv2/outside/ne) "jPV" = ( /obj/effect/decal/cleanable/blood/drip{ pixel_x = -1; @@ -32105,9 +23596,7 @@ pixel_y = 15 }, /obj/effect/spawner/gibspawner/human, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/caves/mining) "jPX" = ( /obj/item/ore/diamond{ @@ -32121,9 +23610,7 @@ /obj/structure/prop/almayer/cannon_cable_connector{ name = "\improper Cable connector" }, -/turf/open/shuttle/escapepod{ - icon_state = "floor5" - }, +/turf/open/shuttle/escapepod/floor5, /area/bigredv2/oob) "jRi" = ( /obj/item/ammo_magazine/smg/bizon{ @@ -32142,37 +23629,62 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "jRn" = ( /obj/structure/machinery/computer3/server, -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/bigredv2/outside/filtration_plant) +"jRH" = ( +/obj/structure/surface/table, +/obj/effect/landmark/objective_landmark/close, +/turf/open/floor/whiteblue/northeast, +/area/bigredv2/outside/medical) +"jSe" = ( +/obj/item/stack/sheet/wood, +/turf/open/mars_cave/mars_cave_20, +/area/bigredv2/caves_north) +"jTa" = ( +/obj/structure/machinery/camera/autoname, +/obj/effect/decal/warning_stripes{ + icon_state = "SW-out"; + pixel_x = -1; + pixel_y = -1 + }, +/turf/open/floor/red/northeast, +/area/bigredv2/outside/marshal_office) "jTk" = ( /obj/structure/surface/table, /obj/effect/decal/cleanable/molten_item, -/turf/open/floor{ - dir = 10; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/southwest, /area/bigredv2/outside/engineering) "jUc" = ( /obj/structure/surface/table, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, /turf/open/floor, /area/bigredv2/outside/hydroponics) +"jUd" = ( +/obj/structure/machinery/door/airlock/almayer/maint/colony{ + name = "\improper General Store Storage" + }, +/turf/open/floor/delivery, +/area/bigredv2/outside/cargo) +"jUJ" = ( +/obj/structure/machinery/light, +/obj/structure/surface/table/woodentable, +/obj/structure/window{ + dir = 8 + }, +/obj/structure/machinery/door_control{ + id = "Library"; + name = "Storm Shutters" + }, +/turf/open/floor/wood, +/area/bigredv2/outside/library) "jUM" = ( /obj/structure/surface/table/woodentable, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/bar) "jUW" = ( /obj/structure/prop/invuln/minecart_tracks{ @@ -32185,10 +23697,7 @@ /obj/structure/cable{ icon_state = "2-5" }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "jUY" = ( /turf/open/mars_cave, @@ -32197,16 +23706,12 @@ /obj/effect/decal/cleanable/blood/drip{ pixel_x = 6 }, -/turf/open/mars_cave{ - icon_state = "mars_cave_9" - }, +/turf/open/mars_cave/mars_cave_9, /area/bigredv2/caves/mining) "jVN" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, /obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/caves/mining) "jVW" = ( /obj/effect/decal/cleanable/blood{ @@ -32215,20 +23720,14 @@ /obj/item/stack/sheet/wood{ pixel_y = -8 }, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/caves/mining) "jWj" = ( /obj/effect/decal/cleanable/blood, -/turf/open/mars_cave{ - icon_state = "mars_dirt_6" - }, +/turf/open/mars_cave/mars_dirt_6, /area/bigredv2/caves/mining) "jWA" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_17" - }, +/turf/open/mars_cave/mars_cave_17, /area/bigredv2/outside/lz2_south_cas) "jWF" = ( /obj/structure/prop/invuln/minecart_tracks{ @@ -32238,77 +23737,63 @@ icon_state = "intact"; name = "Pipe" }, -/turf/open/mars_cave{ - icon_state = "mars_cave_13" - }, +/turf/open/mars_cave/mars_cave_13, /area/bigredv2/caves/mining) +"jWR" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SE-out"; + pixel_x = 1; + pixel_y = -1 + }, +/turf/open/floor/red/northwest, +/area/bigredv2/outside/marshal_office) "jXf" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/bigredv2/outside/engineering) "jXJ" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/light_construct{ dir = 8 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/west, /area/bigredv2/outside/engineering) "jXP" = ( /obj/item/stack/cable_coil/cut, -/turf/open/mars_cave{ - icon_state = "mars_cave_16" - }, +/turf/open/mars_cave/mars_cave_16, /area/bigredv2/caves/mining) "jXX" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_14" - }, +/turf/open/mars_cave/mars_cave_14, /area/bigredv2/caves_sw) "jYD" = ( /obj/effect/decal/cleanable/blood/drip{ pixel_y = 9 }, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves/mining) "jYF" = ( /obj/structure/machinery/recharge_station, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/bigredv2/outside/engineering) "jYS" = ( /obj/effect/decal/cleanable/blood, /obj/effect/landmark/corpsespawner/miner, -/turf/open/mars_cave{ - icon_state = "mars_dirt_7" - }, +/turf/open/mars_cave/mars_dirt_7, /area/bigredv2/caves/mining) "jZp" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/dorms) "jZy" = ( /obj/structure/prop/invuln/minecart_tracks{ dir = 1 }, /obj/structure/barricade/wooden, -/turf/open/mars_cave{ - icon_state = "mars_dirt_7" - }, +/turf/open/mars_cave/mars_dirt_7, /area/bigredv2/caves/mining) "jZM" = ( /obj/effect/decal/warning_stripes{ @@ -32318,34 +23803,29 @@ icon_state = "gib6"; pixel_y = -8 }, -/turf/open/mars_cave{ - icon_state = "mars_cave_6" - }, +/turf/open/mars_cave/mars_cave_6, /area/bigredv2/caves/mining) "kcx" = ( /obj/effect/decal/cleanable/dirt, /obj/item/weapon/broken_bottle, /turf/open/floor/plating, /area/bigredv2/caves/mining) +"kcH" = ( +/turf/open/mars/mars_dirt_9, +/area/bigredv2/outside/sw) "kcZ" = ( /obj/structure/blocker/forcefield/multitile_vehicles, /obj/structure/fence, -/turf/open/mars_cave{ - icon_state = "mars_cave_17" - }, +/turf/open/mars_cave/mars_cave_17, /area/bigredv2/outside/filtration_cave_cas) "kdf" = ( /obj/item/tool/warning_cone{ pixel_y = 17 }, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/bigredv2/outside/filtration_plant) "kdh" = ( -/turf/open/mars_cave{ - icon_state = "mars_dirt_6" - }, +/turf/open/mars_cave/mars_dirt_6, /area/bigredv2/outside/sw) "kdp" = ( /obj/structure/prop/invuln/minecart_tracks{ @@ -32355,15 +23835,10 @@ icon_state = "4-8"; name = "heavy duty power cable" }, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves/mining) "kdr" = ( -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/eta) "keg" = ( /turf/closed/wall/solaris/reinforced, @@ -32376,10 +23851,7 @@ /obj/structure/prop/invuln/minecart_tracks{ dir = 1 }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "key" = ( /obj/effect/decal/cleanable/blood/drip, @@ -32390,30 +23862,24 @@ /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, /turf/open/mars_cave, /area/bigredv2/caves_lambda) +"kfx" = ( +/turf/open/mars_cave/mars_cave_15, +/area/bigredv2/outside/n) "kfY" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/eta/research) "kgn" = ( /obj/item/paper/bigred/crazy, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "kgw" = ( /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/mars_cave{ - icon_state = "mars_cave_18" - }, +/turf/open/mars_cave/mars_cave_18, /area/bigredv2/outside/lz2_west_cas) "kgx" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/outside/lz2_south_cas) "khl" = ( /obj/structure/machinery/light/small{ @@ -32423,10 +23889,7 @@ /obj/structure/cable{ icon_state = "11-2" }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "khx" = ( /obj/structure/barricade/wooden{ @@ -32437,23 +23900,27 @@ pixel_x = -4; pixel_y = 3 }, -/turf/open/mars_cave{ - icon_state = "mars_dirt_7" - }, +/turf/open/mars_cave/mars_dirt_7, /area/bigredv2/caves/mining) +"khB" = ( +/obj/structure/prop/vehicles/crawler{ + icon_state = "crawler_covered_bed" + }, +/turf/open/mars_cave/mars_dirt_4, +/area/bigredv2/caves_lambda) +"khK" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/asteroidfloor/north, +/area/bigredv2/outside/n) "khP" = ( /obj/structure/platform{ dir = 1 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/admin_building) "khR" = ( /obj/structure/machinery/floodlight, -/turf/open/mars_cave{ - icon_state = "mars_dirt_6" - }, +/turf/open/mars_cave/mars_dirt_6, /area/bigredv2/caves/mining) "kjr" = ( /obj/effect/decal/cleanable/dirt, @@ -32465,19 +23932,21 @@ }, /obj/item/weapon/gun/shotgun/pump/dual_tube/cmb, /obj/effect/spawner/random/attachment, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) +"kjH" = ( +/obj/structure/surface/table, +/obj/item/stack/sheet/glass{ + amount = 30 + }, +/turf/open/floor, +/area/bigredv2/outside/cargo) "kjT" = ( /obj/item/ore{ pixel_x = 13; pixel_y = 12 }, -/turf/open/mars_cave{ - icon_state = "mars_dirt_6" - }, +/turf/open/mars_cave/mars_dirt_6, /area/bigredv2/caves/mining) "kka" = ( /obj/structure/barricade/handrail, @@ -32490,18 +23959,14 @@ /area/bigredv2/outside/engineering) "kli" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/mars_cave{ - icon_state = "mars_cave_20" - }, +/turf/open/mars_cave/mars_cave_20, /area/bigredv2/caves/mining) "klp" = ( /obj/structure/prop/almayer/cannon_cables{ name = "\improper Large Cables"; pixel_y = 13 }, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/caves/mining) "kmb" = ( /obj/structure/prop/invuln/minecart_tracks{ @@ -32511,58 +23976,45 @@ icon_state = "intact"; name = "Pipe" }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "kmm" = ( -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/admin_building) "kmx" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/darkyellowcorners2, /area/bigredv2/outside/engineering) "knN" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/darkyellowcorners2, /area/bigredv2/caves/eta/living) "kok" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/mars_cave{ - icon_state = "mars_cave_7" - }, +/turf/open/mars_cave/mars_cave_7, /area/bigredv2/outside/filtration_cave_cas) -"kpf" = ( -/turf/closed/wall/solaris/rock, +"kpd" = ( +/turf/open/mars_cave/mars_cave_14, +/area/bigredv2/outside/ne) +"kqO" = ( +/obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, +/obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/caves_lambda) "kqS" = ( -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/caves/eta/living) "kqV" = ( /obj/effect/decal/cleanable/blood/drip{ pixel_x = 5; pixel_y = 11 }, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves/mining) "krx" = ( -/turf/open/floor{ - dir = 6; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/southeast, /area/bigredv2/outside/lz2_south_cas) "krW" = ( /obj/effect/decal/cleanable/dirt, @@ -32572,9 +24024,7 @@ "ksO" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/engineering) "ktE" = ( /obj/item/tool/wrench{ @@ -32584,21 +24034,14 @@ /obj/item/storage/toolbox/mechanical{ pixel_x = 4 }, -/turf/open/mars_cave{ - icon_state = "mars_cave_20" - }, +/turf/open/mars_cave/mars_cave_20, /area/bigredv2/caves/mining) "ktN" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_17" - }, +/turf/open/mars_cave/mars_cave_17, /area/bigredv2/outside/filtration_plant) "ktY" = ( /obj/effect/landmark/survivor_spawner, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/bigredv2/outside/engineering) "kuu" = ( /obj/effect/decal/cleanable/dirt, @@ -32606,37 +24049,40 @@ /turf/open/floor/plating, /area/bigredv2/caves/mining) "kuw" = ( -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/north, /area/bigredv2/outside/filtration_plant) "kvp" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_7" - }, +/turf/open/mars_cave/mars_cave_7, /area/bigredv2/caves_sw) "kvB" = ( /obj/item/device/flashlight, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) -"kwQ" = ( -/turf/open/floor{ - dir = 10; - icon_state = "asteroidwarning" +"kwq" = ( +/obj/structure/machinery/light{ + dir = 8 }, +/obj/structure/pipes/standard/simple/hidden/green, +/turf/open/floor/asteroidfloor/north, +/area/bigredv2/outside/ne) +"kwQ" = ( +/turf/open/floor/asteroidwarning/southwest, /area/bigredv2/outside/se) "kxi" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/floor{ - icon_state = "darkredcorners2" - }, +/turf/open/floor/darkredcorners2, /area/bigredv2/caves/eta/xenobiology) +"kxr" = ( +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 5 + }, +/obj/effect/landmark/nightmare{ + insert_tag = "dorms_party" + }, +/turf/open/floor, +/area/bigredv2/outside/dorms) "kyz" = ( /obj/structure/transmitter/colony_net{ dir = 4; @@ -32644,19 +24090,33 @@ phone_id = "Observation"; pixel_x = -18 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/eta/xenobiology) +"kzF" = ( +/turf/open/mars_cave/mars_cave_2, +/area/bigredv2/outside/ne) +"kAj" = ( +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 5 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/carpet, +/area/bigredv2/outside/library) +"kAs" = ( +/obj/structure/platform_decoration{ + dir = 8 + }, +/obj/effect/landmark/objective_landmark/close, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/asteroidfloor/north, +/area/bigredv2/outside/telecomm/n_cave) "kBn" = ( /turf/closed/wall/solaris, /area/bigredv2/caves) "kBB" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_nest, /obj/effect/landmark/structure_spawner/setup/distress/xeno_nest, -/turf/open/mars_cave{ - icon_state = "mars_cave_23" - }, +/turf/open/mars_cave/mars_cave_23, /area/bigredv2/caves_lambda) "kBE" = ( /obj/structure/largecrate/supply/supplies/water, @@ -32664,33 +24124,33 @@ /area/bigredv2/caves/mining) "kCe" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) +"kCR" = ( +/obj/structure/machinery/light{ + dir = 8 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/turf/open/floor/red/west, +/area/bigredv2/outside/marshal_office) "kDs" = ( /obj/structure/surface/table, /obj/item/reagent_container/food/drinks/cans/waterbottle{ pixel_y = 17 }, /obj/item/reagent_container/food/snacks/jellysandwich/cherry, -/turf/open/mars_cave{ - icon_state = "mars_cave_3" - }, +/turf/open/mars_cave/mars_cave_3, /area/bigredv2/caves/mining) "kFe" = ( /obj/structure/largecrate/random/barrel/white, -/turf/open/floor{ - dir = 5; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/northeast, /area/bigred/ground/garage_workshop) "kGm" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "darkgreencorners2" - }, +/turf/open/floor/darkgreencorners2, /area/bigredv2/caves/eta/research) "kGw" = ( /obj/effect/landmark/objective_landmark/medium, @@ -32698,17 +24158,12 @@ /area/bigredv2/caves/eta/storage) "kHK" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/space_port_lz2) "kIv" = ( /obj/structure/curtain/red, /obj/item/prop/alien/hugger, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/admin_building) "kIF" = ( /obj/structure/bed/chair/comfy/orange{ @@ -32718,10 +24173,7 @@ /area/bigredv2/caves/lambda/breakroom) "kIW" = ( /obj/structure/fence, -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/east, /area/bigredv2/outside/se) "kKx" = ( /obj/effect/decal/cleanable/dirt, @@ -32729,10 +24181,12 @@ /turf/open/floor/plating, /area/bigredv2/caves/mining) "kKB" = ( -/turf/open/floor{ - icon_state = "darkred2" - }, +/turf/open/floor/darkred2, /area/bigredv2/caves/eta/research) +"kMk" = ( +/obj/effect/landmark/hunter_primary, +/turf/open/floor/asteroidfloor/north, +/area/bigredv2/outside/ne) "kMs" = ( /obj/structure/prop/invuln/minecart_tracks{ desc = "Righty tighty, lefty loosey!"; @@ -32750,10 +24204,7 @@ /obj/structure/cable{ icon_state = "4-5" }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "kMJ" = ( /obj/structure/prop/invuln/minecart_tracks{ @@ -32763,59 +24214,46 @@ icon_state = "1-2"; name = "heavy duty power cable" }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "kNc" = ( /obj/effect/landmark/crap_item, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves_research) "kNK" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/engineering) -"kNP" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 9 - }, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, -/area/bigredv2/caves_lambda) +"kOv" = ( +/obj/structure/largecrate/random, +/turf/open/floor/asteroidplating, +/area/bigredv2/outside/space_port_lz2) "kPu" = ( /obj/structure/machinery/power/terminal{ dir = 1 }, /obj/structure/pipes/valve/open, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "kPP" = ( /obj/structure/prop/almayer/cannon_cable_connector{ name = "\improper Control Module"; pixel_y = 13 }, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/caves/mining) "kQc" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, /turf/open/mars_cave, /area/bigredv2/caves_east) -"kRo" = ( +"kRy" = ( +/obj/structure/machinery/power/apc{ + dir = 1 + }, /turf/open/floor/plating, -/area/bigredv2/outside/telecomm/warehouse) +/area/bigredv2/outside/medical) "kRK" = ( /obj/structure/window/framed/solaris/reinforced, /turf/open/floor/plating, @@ -32828,77 +24266,87 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "kSt" = ( /obj/structure/cable{ icon_state = "11-2" }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "kSH" = ( /obj/structure/ore_box, -/turf/open/mars_cave{ - icon_state = "mars_cave_19" - }, +/turf/open/mars_cave/mars_cave_19, /area/bigredv2/caves/mining) "kSL" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_7" - }, +/turf/open/mars_cave/mars_cave_7, /area/bigredv2/outside/filtration_cave_cas) "kTs" = ( /obj/effect/decal/cleanable/blood, /turf/open/floor, /area/bigredv2/outside/filtration_cave_cas) +"kUW" = ( +/obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, +/obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, +/obj/structure/machinery/light{ + dir = 8 + }, +/turf/open/floor/asteroidwarning/east, +/area/bigredv2/caves_lambda) +"kVR" = ( +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 5 + }, +/turf/open/floor/asteroidwarning, +/area/bigredv2/outside/n) "kVS" = ( /obj/effect/landmark/crap_item, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/outside/filtration_cave_cas) "kVT" = ( -/turf/open/floor{ - dir = 10; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/southwest, /area/bigredv2/outside/engineering) "kVY" = ( /obj/structure/surface/rack, /obj/item/stack/sheet/mineral/gold/small_stack, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "kWV" = ( /obj/effect/landmark/crap_item, -/turf/open/mars_cave{ - icon_state = "mars_cave_6" - }, +/turf/open/mars_cave/mars_cave_6, /area/bigredv2/caves_se) -"kYd" = ( -/turf/closed/wall/solaris/reinforced/hull, -/area/bigredv2/outside/e) +"kWW" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/turf/open/floor/asteroidfloor/north, +/area/bigredv2/outside/telecomm/lz2_cave) +"kXV" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/bed/roller, +/turf/open/floor/whitegreen/north, +/area/bigredv2/outside/medical) "kZG" = ( /obj/effect/decal/cleanable/dirt, /obj/item/storage/bible/hefa, /turf/open/floor/plating, /area/bigredv2/caves/mining) +"kZI" = ( +/obj/structure/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/asteroidwarning/southwest, +/area/bigredv2/caves_lambda) "laj" = ( /obj/structure/tunnel{ id = "hole5" }, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves_lambda) +"lbh" = ( +/turf/open/mars_cave/mars_cave_17, +/area/bigredv2/outside/n) "lbZ" = ( /obj/item/frame/rack, /obj/effect/decal/cleanable/dirt, @@ -32916,10 +24364,7 @@ /area/bigredv2/caves/mining) "lck" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/west, /area/bigredv2/outside/engineering) "lcu" = ( /obj/structure/surface/table/reinforced/prison, @@ -32937,16 +24382,19 @@ /obj/item/device/flashlight/on{ pixel_x = 8 }, -/turf/open/shuttle/escapepod{ - icon_state = "floor1" - }, +/turf/open/shuttle/escapepod/floor1, /area/bigredv2/oob) +"ldD" = ( +/obj/item/tool/warning_cone{ + pixel_x = 16; + pixel_y = 14 + }, +/turf/open/mars, +/area/bigredv2/outside/n) "lhh" = ( /obj/structure/fence, /obj/structure/disposalpipe/segment, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves/mining) "lhE" = ( /obj/structure/prop/almayer/cannon_cable_connector{ @@ -32954,9 +24402,7 @@ pixel_y = 15 }, /obj/item/stack/cable_coil/cut, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves/mining) "llS" = ( /obj/structure/prop/almayer/cannon_cable_connector{ @@ -32969,9 +24415,7 @@ name = "\improper massive vent"; pixel_x = -15 }, -/turf/open/shuttle/escapepod{ - icon_state = "floor1" - }, +/turf/open/shuttle/escapepod/floor1, /area/bigredv2/oob) "lmg" = ( /obj/structure/bed/chair/office/light{ @@ -32981,17 +24425,24 @@ /area/bigredv2/outside/lz2_south_cas) "lmi" = ( /obj/structure/closet/toolcloset, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/bigredv2/outside/engineering) "lms" = ( -/turf/open/floor{ - dir = 6; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/southeast, /area/bigredv2/outside/eta) +"lmO" = ( +/obj/structure/surface/table/woodentable, +/obj/item/newspaper{ + pixel_x = -7 + }, +/obj/item/prop/magazine/book/theartofwar{ + pixel_x = 11 + }, +/obj/item/tool/pen{ + pixel_x = -7 + }, +/turf/open/floor/wood, +/area/bigredv2/outside/library) "lom" = ( /obj/effect/landmark/corpsespawner/miner, /obj/effect/decal/cleanable/blood{ @@ -33001,9 +24452,7 @@ pixel_x = 12; pixel_y = 3 }, -/turf/open/mars_cave{ - icon_state = "mars_cave_3" - }, +/turf/open/mars_cave/mars_cave_3, /area/bigredv2/caves/mining) "lqo" = ( /obj/item/tool/lighter/random, @@ -33011,15 +24460,24 @@ dir = 4 }, /obj/structure/surface/table, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/engineering) +"lqp" = ( +/obj/structure/platform{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/asteroidfloor/north, +/area/bigredv2/outside/telecomm/n_cave) +"lrs" = ( +/obj/structure/machinery/door/airlock/almayer/command/colony{ + name = "\improper Operations" + }, +/turf/open/floor/delivery, +/area/bigredv2/outside/admin_building) "lrH" = ( /obj/effect/landmark/crap_item, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/outside/lz1_telecomm_cas) "lrW" = ( /obj/structure/prop/invuln/minecart_tracks{ @@ -33029,33 +24487,32 @@ icon_state = "intact"; name = "Pipe" }, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves/mining) "lsq" = ( /obj/item/device/flashlight/lantern, -/turf/open/mars_cave{ - icon_state = "mars_dirt_7" - }, +/turf/open/mars_cave/mars_dirt_7, /area/bigredv2/caves/mining) "lst" = ( -/turf/open/floor{ - dir = 8; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/west, /area/bigredv2/caves/eta/research) "ltu" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_19" - }, +/turf/open/mars_cave/mars_cave_19, /area/bigredv2/outside/filtration_plant) +"ltK" = ( +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 4 + }, +/obj/structure/machinery/door_control{ + id = "Dormitories"; + name = "Storm Shutters"; + pixel_y = -32 + }, +/turf/open/floor, +/area/bigredv2/outside/dorms) "luA" = ( /obj/item/tool/crowbar/red, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "lvh" = ( /obj/item/weapon/gun/rifle/m4ra, @@ -33067,9 +24524,7 @@ pixel_x = 12; pixel_y = 3 }, -/turf/open/mars_cave{ - icon_state = "mars_cave_3" - }, +/turf/open/mars_cave/mars_cave_3, /area/bigredv2/caves_research) "lvy" = ( /obj/effect/decal/cleanable/dirt, @@ -33079,51 +24534,59 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigred/ground/garage_workshop) "lwX" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/mars_cave{ - icon_state = "mars_cave_7" - }, +/turf/open/mars_cave/mars_cave_7, /area/bigredv2/caves_sw) "lxQ" = ( /obj/effect/decal/cleanable/dirt, /obj/item/paper/bigred/union, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) +"lym" = ( +/obj/structure/bed/chair{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 4 + }, +/obj/structure/barricade/handrail{ + dir = 4 + }, +/turf/open/floor, +/area/bigredv2/outside/marshal_office) "lyx" = ( /obj/structure/surface/table, /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/dorms) "lzI" = ( /obj/structure/blocker/forcefield/multitile_vehicles, /turf/closed/wall/solaris/reinforced, /area/bigredv2/caves) +"lAC" = ( +/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, +/turf/open/mars_cave/mars_cave_2, +/area/bigredv2/outside/ne) "lAF" = ( /obj/item/paper_bin, /obj/item/tool/pen, /obj/structure/surface/table/woodentable/fancy, /turf/open/floor/wood, /area/bigredv2/caves/lambda/breakroom) -"lAK" = ( -/obj/effect/landmark/static_comms/net_two, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" +"lAR" = ( +/obj/structure/surface/table/reinforced, +/obj/structure/machinery/door_control{ + id = "lambda-interior"; + name = "Lambda Checkpoint Interior"; + pixel_x = null }, -/area/bigredv2/outside/telecomm/lz2_cave) +/turf/open/floor/redfull/northwest, +/area/bigredv2/outside/lambda_cave_cas) "lBc" = ( /turf/closed/wall/solaris/reinforced, /area/bigredv2/outside/c) @@ -33136,11 +24599,14 @@ dir = 1; name = "\improper Machine room" }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) +"lCt" = ( +/obj/structure/machinery/power/reactor/colony{ + name = "Reactor Turbine" + }, +/turf/open/floor/delivery, +/area/bigredv2/outside/engineering) "lCR" = ( /obj/structure/surface/table, /obj/item/reagent_container/food/drinks/flask/vacuumflask{ @@ -33160,108 +24626,106 @@ "lDa" = ( /obj/structure/surface/table/woodentable, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/library) "lDp" = ( /obj/structure/closet/secure_closet, /obj/effect/landmark/objective_landmark/far, -/turf/open/floor{ - dir = 9; - icon_state = "redfull" - }, +/turf/open/floor/redfull/northwest, /area/bigredv2/caves/eta/research) "lEi" = ( /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/engineering) "lEw" = ( /obj/item/tool/pickaxe{ pixel_y = -3 }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) -"lGt" = ( -/turf/open/floor{ - icon_state = "delivery" +"lFR" = ( +/obj/effect/landmark/nightmare{ + insert_tag = "viro_open" }, +/turf/closed/wall/solaris/rock, +/area/bigredv2/caves) +"lGt" = ( +/turf/open/floor/delivery, /area/bigredv2/caves/eta/living) "lIe" = ( /obj/item/weapon/twohanded/folded_metal_chair, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) +"lID" = ( +/obj/structure/barricade/handrail{ + dir = 4 + }, +/turf/open/floor/asteroidwarning/east, +/area/bigredv2/outside/c) "lIL" = ( /obj/structure/sign/safety/fire_haz, /turf/closed/wall/wood, /area/bigredv2/caves/mining) +"lIS" = ( +/turf/open/mars_cave/mars_cave_19, +/area/bigredv2/outside/ne) "lKw" = ( /obj/item/paper/bigred/walls, /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) +"lLe" = ( +/turf/open/mars_cave/mars_cave_18, +/area/bigredv2/outside/lambda_cave_cas) "lLf" = ( /obj/structure/largecrate/random/case, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) -"lMt" = ( -/obj/effect/landmark/nightmare{ - insert_tag = "cargo" - }, -/turf/closed/wall/solaris, -/area/bigredv2/outside/cargo) "lMw" = ( /obj/structure/machinery/sensortower{ pixel_x = -9 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/caves_lambda) -"lMB" = ( -/obj/effect/landmark/nightmare{ - insert_tag = "lz1cave" - }, -/turf/closed/wall/solaris/reinforced, -/area/bigredv2/outside/space_port) "lMC" = ( /obj/structure/machinery/light{ dir = 4 }, /obj/structure/largecrate/random/barrel/green, -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/east, /area/bigred/ground/garage_workshop) +"lNp" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/obj/structure/pipes/vents/pump{ + dir = 4 + }, +/turf/open/floor/dark, +/area/bigredv2/outside/office_complex) +"lOL" = ( +/turf/open/mars_cave/mars_cave_20, +/area/bigredv2/outside/n) +"lOY" = ( +/obj/effect/landmark/nightmare{ + insert_tag = "etatunnel_open" + }, +/turf/closed/wall/solaris/rock, +/area/bigredv2/caves) +"lPg" = ( +/turf/closed/wall/solaris, +/area/bigredv2/outside/n) "lPh" = ( /obj/item/weapon/twohanded/folded_metal_chair{ pixel_x = 3; pixel_y = 12 }, -/turf/open/mars_cave{ - icon_state = "mars_cave_15" - }, +/turf/open/mars_cave/mars_cave_15, /area/bigredv2/caves/mining) "lPL" = ( /obj/structure/platform/shiva{ @@ -33270,136 +24734,110 @@ /obj/item/shard{ icon_state = "medium" }, -/turf/open/floor/bluegrid{ - icon_state = "bcircuitoff" - }, +/turf/open/floor/bluegrid/bcircuitoff, /area/bigredv2/caves/lambda/research) "lQN" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_18" - }, +/turf/open/mars_cave/mars_cave_18, /area/bigredv2/outside/lz2_south_cas) "lQU" = ( -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/bigredv2/outside/virology) -"lRu" = ( -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" +"lRC" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/barricade/handrail{ + dir = 8 }, -/area/bigredv2/outside/telecomm/lz2_cave) +/turf/open/floor/asteroidwarning/west, +/area/bigredv2/outside/c) +"lSb" = ( +/obj/structure/blocker/forcefield/multitile_vehicles, +/turf/open/mars_cave/mars_cave_9, +/area/bigredv2/outside/ne) "lSm" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /obj/item/shard{ icon_state = "small" }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "lSH" = ( /obj/structure/largecrate/guns/merc{ icon_state = "case_double"; name = "supply crate" }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) -"lSL" = ( -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/telecomm/lz2_cave) "lSS" = ( /obj/item/tool/warning_cone, /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/floor{ - dir = 5; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/northeast, /area/bigredv2/outside/filtration_cave_cas) "lTi" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; pixel_y = 1 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/bigredv2/outside/filtration_plant) +"lTC" = ( +/obj/structure/machinery/light{ + dir = 4 + }, +/obj/structure/machinery/power/apc{ + dir = 1 + }, +/turf/open/floor/wood, +/area/bigredv2/outside/library) "lTM" = ( /obj/item/folder/yellow, -/turf/open/floor{ - dir = 4; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/darkyellowcorners2/east, /area/bigredv2/outside/engineering) +"lTV" = ( +/obj/structure/surface/table, +/turf/open/floor/asteroidwarning, +/area/bigredv2/outside/space_port_lz2) +"lUa" = ( +/turf/open/mars/mars_dirt_8, +/area/bigredv2/outside/n) "lUd" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/floor{ - dir = 8; - icon_state = "darkredcorners2" - }, +/turf/open/floor/darkredcorners2/west, /area/bigredv2/caves/eta/xenobiology) "lUq" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_18" - }, +/turf/open/mars_cave/mars_cave_18, /area/bigredv2/caves_se) -"lVm" = ( -/obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/telecomm/n_cave) +"lUM" = ( +/obj/structure/machinery/power/reactor/colony, +/turf/open/floor/plating, +/area/bigredv2/caves/lambda/xenobiology) "lVr" = ( /obj/effect/landmark/monkey_spawn, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/lambda/breakroom) "lWA" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_15" - }, +/turf/open/mars_cave/mars_cave_15, /area/bigredv2/outside/lz2_south_cas) "lWE" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/mars_cave{ - icon_state = "mars_cave_7" - }, +/turf/open/mars_cave/mars_cave_7, /area/bigredv2/caves_sw) "lYi" = ( /obj/structure/ore_box, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/caves/mining) "lYC" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/mucus, /obj/structure/largecrate/random/barrel/yellow, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg2" - }, +/turf/open/floor/plating/platingdmg2/west, /area/bigredv2/caves/mining) "lYH" = ( /obj/structure/reagent_dispensers/watertank, -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/bigredv2/outside/filtration_plant) "lYZ" = ( /obj/structure/bed/chair/office/dark{ @@ -33408,14 +24846,16 @@ /turf/open/floor, /area/bigred/ground/garage_workshop) "lZV" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_23" - }, +/turf/open/mars_cave/mars_cave_23, /area/bigredv2/caves/mining) -"maD" = ( -/turf/open/floor/almayer{ - icon_state = "test_floor4" +"maB" = ( +/obj/effect/landmark/nightmare{ + insert_tag = "viro-rock_open" }, +/turf/closed/wall/solaris/reinforced, +/area/bigredv2/outside/virology) +"maD" = ( +/turf/open/floor/almayer/test_floor4, /area/bigredv2/outside/engineering) "maF" = ( /obj/item/frame/rack, @@ -33426,21 +24866,20 @@ "maH" = ( /obj/structure/surface/table, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/west, /area/bigredv2/outside/engineering) -"mdU" = ( -/obj/structure/machinery/power/apc{ - dir = 1; - start_charge = 0 +"mbz" = ( +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 4 }, -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" +/obj/structure/machinery/door/airlock/almayer/maint/colony{ + name = "\improper Bar Maintenance" }, -/area/bigredv2/outside/telecomm/lz2_cave) +/turf/open/floor/delivery, +/area/bigredv2/outside/bar) +"mda" = ( +/turf/open/mars_cave/mars_cave_16, +/area/bigredv2/caves_lambda) "meT" = ( /turf/open/mars, /area/bigredv2/outside/eta) @@ -33448,17 +24887,26 @@ /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/mars_cave{ - icon_state = "mars_dirt_7" - }, +/turf/open/mars_cave/mars_dirt_7, /area/bigredv2/caves/mining) +"mfG" = ( +/obj/structure/pipes/vents/pump/on, +/turf/open/floor/freezerfloor, +/area/bigredv2/outside/general_offices) +"mfQ" = ( +/obj/structure/surface/rack, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/turf/open/floor/darkyellow2/southwest, +/area/bigredv2/outside/engineering) "mhF" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/dorms) "mhG" = ( /obj/structure/sign/safety/bulkhead_door{ @@ -33469,28 +24917,24 @@ }, /turf/closed/wall/solaris/reinforced/hull, /area/bigredv2/caves/mining) +"mhV" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/asteroidfloor/north, +/area/bigredv2/outside/telecomm/n_cave) "mhZ" = ( /obj/structure/machinery/portable_atmospherics/canister/air, -/turf/open/floor{ - dir = 5; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/northeast, /area/bigredv2/outside/engineering) "mij" = ( /obj/item/folder/yellow, /obj/effect/landmark/crap_item, -/turf/open/floor{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/west, /area/bigredv2/outside/engineering) "miD" = ( /obj/effect/decal/cleanable/blood, /obj/effect/landmark/corpsespawner/security/marshal, /obj/item/weapon/gun/revolver/cmb, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves/mining) "mji" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/engidoor{ @@ -33498,12 +24942,14 @@ }, /turf/open/floor, /area/bigred/ground/garage_workshop) +"mkt" = ( +/obj/structure/cargo_container/kelland/right, +/turf/open/mars, +/area/bigredv2/outside/space_port_lz2) "mlV" = ( /obj/structure/surface/table, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/engineering) "mmg" = ( /obj/effect/decal/cleanable/dirt, @@ -33514,15 +24960,25 @@ /obj/item/reagent_container/food/snacks/tofu{ pixel_y = 11 }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) -"moE" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_9" +"mnv" = ( +/obj/structure/pipes/vents/pump, +/turf/open/floor/grimy, +/area/bigredv2/outside/dorms) +"mnY" = ( +/obj/structure/pipes/standard/simple/hidden/green, +/turf/open/floor/asteroidfloor/north, +/area/bigredv2/outside/ne) +"moe" = ( +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 10 }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/carpet, +/area/bigredv2/outside/library) +"moE" = ( +/turf/open/mars_cave/mars_cave_9, /area/bigredv2/caves_research) "mqf" = ( /obj/structure/bed/chair{ @@ -33530,42 +24986,29 @@ pixel_y = 3 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "mqh" = ( /obj/structure/window/framed/solaris, -/turf/open/floor{ - icon_state = "panelscorched" - }, +/turf/open/floor/panelscorched, /area/bigredv2/outside/engineering) "mqX" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/mars_cave{ - icon_state = "mars_cave_3" - }, +/turf/open/mars_cave/mars_cave_3, /area/bigredv2/caves/mining) "mrH" = ( /obj/structure/machinery/computer3/server, -/turf/open/floor{ - icon_state = "podhatchfloor" - }, +/turf/open/floor/podhatchfloor, /area/bigredv2/outside/admin_building) "mrS" = ( /obj/structure/prop/almayer/cannon_cable_connector{ name = "\improper Cable connector" }, /obj/structure/cable, -/turf/open/shuttle/escapepod{ - icon_state = "floor5" - }, +/turf/open/shuttle/escapepod/floor5, /area/bigredv2/oob) "msf" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_11" - }, +/turf/open/mars_cave/mars_cave_11, /area/bigredv2/caves/lambda/xenobiology) "msq" = ( /obj/structure/sink{ @@ -33573,22 +25016,15 @@ pixel_x = -12; pixel_y = 2 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/bigredv2/outside/hydroponics) "msS" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/north, /area/bigred/ground/garage_workshop) "mts" = ( /obj/item/ore, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/outside/filtration_cave_cas) "mtL" = ( /obj/structure/bed/chair/office/dark{ @@ -33598,21 +25034,28 @@ }, /turf/open/floor/plating, /area/bigredv2/caves/mining) +"mtM" = ( +/obj/structure/closet/secure_closet/detective, +/obj/item/weapon/gun/smg/fp9000, +/obj/structure/machinery/light{ + dir = 1 + }, +/turf/open/floor/wood, +/area/bigredv2/outside/marshal_office) +"mtS" = ( +/obj/structure/fence, +/turf/open/floor/asteroidwarning/west, +/area/bigredv2/outside/n) "muP" = ( /turf/closed/wall/wood, /area/bigredv2/caves_research) "mxf" = ( -/turf/open/floor{ - dir = 9; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/northwest, /area/bigredv2/outside/filtration_cave_cas) "mya" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/mars_cave{ - icon_state = "mars_cave_6" - }, +/turf/open/mars_cave/mars_cave_6, /area/bigredv2/caves_east) "myc" = ( /obj/structure/surface/table, @@ -33628,18 +25071,23 @@ pixel_x = 10; pixel_y = 2 }, -/turf/open/mars_cave{ - icon_state = "mars_cave_15" - }, +/turf/open/mars_cave/mars_cave_15, /area/bigredv2/caves/mining) "myY" = ( -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/filtration_cave_cas) "mzV" = ( /turf/open/mars, /area/bigredv2/outside/filtration_plant) +"mAY" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/asteroidwarning/north, +/area/bigredv2/outside/space_port_lz2) +"mBc" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/tool/hatchet, +/turf/open/floor/freezerfloor, +/area/bigredv2/outside/dorms) "mBo" = ( /obj/item/weapon/twohanded/folded_metal_chair{ pixel_x = -7; @@ -33656,59 +25104,55 @@ /turf/open/floor/plating, /area/bigredv2/outside/filtration_plant) "mDs" = ( -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/filtration_cave_cas) +"mDt" = ( +/turf/open/floor/asteroidplating, +/area/bigredv2/outside/space_port_lz2) "mDN" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_15" - }, +/turf/open/mars_cave/mars_cave_15, /area/bigredv2/outside/lz1_north_cas) +"mEC" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E-corner" + }, +/turf/open/mars_cave/mars_cave_2, +/area/bigredv2/caves_north) "mEH" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/north, /area/bigredv2/outside/admin_building) "mFT" = ( /obj/item/weapon/gun/shotgun/pump/dual_tube/cmb, /obj/effect/landmark/corpsespawner/russian, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/mars_cave{ - icon_state = "mars_cave_3" - }, +/turf/open/mars_cave/mars_cave_3, /area/bigredv2/caves/mining) "mGq" = ( /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/mars_cave{ - icon_state = "mars_cave_17" - }, +/turf/open/mars_cave/mars_cave_17, /area/bigredv2/outside/lz1_north_cas) -"mGS" = ( -/obj/effect/landmark/static_comms/net_one, -/turf/open/floor{ - icon_state = "podhatchfloor" - }, -/area/bigredv2/outside/admin_building) "mHp" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves_se) +"mIc" = ( +/obj/effect/landmark/static_comms/net_two, +/turf/open/floor/podhatchfloor, +/area/bigredv2/outside/admin_building) "mIr" = ( -/turf/open/mars_cave{ - icon_state = "mars_dirt_7" - }, +/turf/open/mars_cave/mars_dirt_7, /area/bigredv2/outside/filtration_plant) +"mIs" = ( +/obj/structure/pipes/standard/simple/hidden/green, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood, +/area/bigredv2/outside/library) "mIu" = ( /obj/structure/machinery/light{ dir = 4 @@ -33721,11 +25165,14 @@ dir = 8 }, /obj/item/tank/air, -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/west, /area/bigredv2/outside/filtration_plant) +"mKi" = ( +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_10" + }, +/turf/open/floor/wood, +/area/bigredv2/outside/library) "mKM" = ( /obj/effect/decal/cleanable/blood/drip{ pixel_y = 6 @@ -33733,52 +25180,48 @@ /turf/closed/wall/solaris/rock, /area/bigredv2/caves) "mMf" = ( -/turf/open/mars{ - icon_state = "mars_dirt_11" - }, +/turf/open/mars/mars_dirt_11, /area/bigredv2/outside/space_port_lz2) +"mNT" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/pipes/standard/manifold/hidden/green, +/turf/open/floor/asteroidfloor/north, +/area/bigredv2/outside/e) +"mOc" = ( +/obj/structure/machinery/door/airlock/almayer/maint/colony{ + dir = 1; + name = "\improper General Store Maintenance" + }, +/turf/open/floor/delivery, +/area/bigredv2/outside/cargo) "mOW" = ( /obj/structure/pipes/standard/tank/oxygen, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "mOZ" = ( /obj/effect/landmark/crap_item, /obj/effect/landmark/queen_spawn, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves/mining) "mPC" = ( /obj/structure/blocker/forcefield/multitile_vehicles, /obj/structure/fence, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/outside/filtration_cave_cas) "mPF" = ( /obj/effect/decal/cleanable/blood/drip{ pixel_y = 6 }, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves/mining) "mPK" = ( /obj/effect/decal/cleanable/liquid_fuel, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/west, /area/bigredv2/outside/engineering) "mRi" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_core, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves_lambda) "mRD" = ( /obj/structure/surface/table, @@ -33787,16 +25230,10 @@ /area/bigredv2/caves) "mSn" = ( /obj/effect/decal/cleanable/blood/oil/streak, -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/west, /area/bigredv2/outside/c) "mSS" = ( -/turf/open/floor{ - dir = 8; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/darkyellowcorners2/west, /area/bigredv2/outside/engineering) "mST" = ( /obj/effect/decal/warning_stripes{ @@ -33805,24 +25242,26 @@ pixel_y = -1 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/west, /area/bigredv2/outside/admin_building) -"mUy" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_7" +"mUb" = ( +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 9 }, +/obj/structure/bed/chair/comfy{ + dir = 4 + }, +/turf/open/floor/wood, +/area/bigredv2/outside/library) +"mUy" = ( +/turf/open/mars_cave/mars_cave_7, /area/bigredv2/caves/eta/xenobiology) "mWg" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/comdoor/colony{ dir = 2; name = "\improper Operations" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/admin_building) "mWt" = ( /obj/structure/prop/almayer/missile_tube{ @@ -33830,16 +25269,19 @@ name = "\improper Massive mining drill"; pixel_y = 13 }, -/turf/open/mars_cave{ - icon_state = "mars_dirt_5" - }, +/turf/open/mars_cave/mars_dirt_5, /area/bigredv2/caves/mining) "mXw" = ( /obj/item/storage/toolbox/mechanical, -/turf/open/mars_cave{ - icon_state = "mars_dirt_6" - }, +/turf/open/mars_cave/mars_dirt_6, /area/bigredv2/caves/mining) +"mYV" = ( +/obj/structure/machinery/power/apc{ + dir = 1; + start_charge = 0 + }, +/turf/open/floor/red/north, +/area/bigredv2/outside/lambda_cave_cas) "mYW" = ( /obj/structure/prop/invuln/minecart_tracks{ desc = "A heavy duty power cable for high voltage applications"; @@ -33848,29 +25290,24 @@ icon_state = "4-8"; name = "heavy duty power cable" }, -/turf/open/mars_cave{ - icon_state = "mars_cave_13" - }, +/turf/open/mars_cave/mars_cave_13, /area/bigredv2/caves/mining) "mZC" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_11" - }, +/turf/open/mars_cave/mars_cave_11, /area/bigredv2/caves_virology) "nbc" = ( /obj/item/tool/warning_cone, -/turf/open/floor{ - dir = 5; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/northeast, /area/bigredv2/outside/se) "nbi" = ( /obj/effect/landmark/hunter_secondary, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves_research) +"nbu" = ( +/obj/effect/landmark/hunter_secondary, +/turf/open/mars, +/area/bigredv2/outside/space_port_lz2) "ncv" = ( /obj/effect/landmark/corpsespawner/ua_riot, /obj/effect/decal/cleanable/blood{ @@ -33880,9 +25317,7 @@ pixel_x = 12; pixel_y = 3 }, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/caves_research) "ncL" = ( /obj/structure/bed/chair{ @@ -33891,70 +25326,70 @@ pixel_x = 2; pixel_y = 6 }, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/caves/mining) "ndw" = ( -/turf/open/floor{ - dir = 4; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/darkyellowcorners2/east, /area/bigredv2/outside/engineering) "ndy" = ( /obj/effect/decal/cleanable/blood/drip{ pixel_x = -3; pixel_y = 11 }, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/caves/mining) "neH" = ( -/turf/open/floor{ - dir = 5; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/northeast, /area/bigredv2/outside/filtration_cave_cas) +"nfY" = ( +/turf/open/floor/asteroidwarning/east, +/area/bigredv2/caves_east) "ngJ" = ( /obj/item/stack/cable_coil/cut, -/turf/open/mars_cave{ - icon_state = "mars_dirt_6" - }, +/turf/open/mars_cave/mars_dirt_6, /area/bigredv2/caves/mining) +"nhF" = ( +/obj/structure/machinery/camera/autoname{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood, +/area/bigredv2/outside/library) "niQ" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/darkyellowcorners2/west, /area/bigredv2/outside/engineering) "njf" = ( -/turf/open/mars_cave{ - icon_state = "mars_dirt_6" - }, +/turf/open/mars_cave/mars_dirt_6, /area/bigredv2/outside/lz2_south_cas) "nky" = ( /obj/structure/machinery/vending/coffee, /obj/effect/decal/cleanable/dirt, /turf/open/floor, /area/bigredv2/outside/admin_building) -"nkQ" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_23" +"nkE" = ( +/obj/structure/surface/table/woodentable, +/obj/item/paper_bin/wy{ + pixel_x = 7; + pixel_y = 8 + }, +/obj/item/paper_bin/wy{ + pixel_x = -4; + pixel_y = 8 }, +/turf/open/floor/wood, +/area/bigredv2/outside/library) +"nkQ" = ( +/turf/open/mars_cave/mars_cave_23, /area/bigredv2/caves_se) "nkW" = ( /obj/item/ore/gold, /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "nkY" = ( /obj/item/ore{ @@ -33962,15 +25397,14 @@ pixel_y = -8 }, /obj/effect/decal/cleanable/blood/oil, -/turf/open/mars_cave{ - icon_state = "mars_dirt_6" - }, +/turf/open/mars_cave/mars_dirt_6, /area/bigredv2/caves/mining) +"nlB" = ( +/turf/open/mars_cave/mars_cave_16, +/area/bigredv2/outside/n) "nlJ" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/bigredv2/outside/filtration_plant) "nlW" = ( /obj/structure/platform/kutjevo/rock, @@ -33983,21 +25417,27 @@ "nmU" = ( /obj/structure/surface/table, /obj/item/device/analyzer, -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/bigredv2/outside/engineering) "nny" = ( -/turf/open/mars_cave{ - icon_state = "mars_dirt_7" - }, +/turf/open/mars_cave/mars_dirt_7, /area/bigredv2/caves_research) +"nnz" = ( +/turf/open/mars_cave/mars_dirt_5, +/area/bigredv2/outside/n) +"nnA" = ( +/obj/structure/surface/table/woodentable, +/obj/structure/window{ + dir = 8 + }, +/obj/structure/machinery/computer/emails{ + dir = 4 + }, +/turf/open/floor/wood, +/area/bigredv2/outside/library) "nnK" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/e) "nnU" = ( /obj/structure/machinery/door_control{ @@ -34011,10 +25451,7 @@ icon_state = "N"; pixel_y = 1 }, -/turf/open/floor{ - dir = 5; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/northeast, /area/bigredv2/outside/engineering) "npz" = ( /obj/structure/surface/table, @@ -34022,10 +25459,7 @@ /obj/item/ammo_magazine/shotgun/buckshot{ pixel_y = 12 }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "nqr" = ( /obj/structure/prop/invuln/minecart_tracks{ @@ -34034,26 +25468,26 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/bigredv2/caves/mining) +"nra" = ( +/turf/open/mars/mars_dirt_13, +/area/bigredv2/outside/sw) "nrj" = ( /obj/effect/decal/cleanable/blood/drip{ pixel_x = -1; pixel_y = 5 }, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/caves/mining) "nrw" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_6" - }, +/turf/open/mars_cave/mars_cave_6, /area/bigredv2/outside/filtration_cave_cas) +"nrA" = ( +/obj/effect/landmark/objective_landmark/close, +/turf/open/floor/asteroidfloor/north, +/area/bigredv2/outside/ne) "ntX" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/filtration_plant) "nub" = ( /obj/structure/surface/rack, @@ -34068,10 +25502,7 @@ /obj/item/clothing/head/hardhat/dblue{ pixel_x = 7 }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "nug" = ( /obj/structure/platform{ @@ -34091,46 +25522,52 @@ pixel_x = 1; pixel_y = 1 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/admin_building) "nuz" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/barricade/handrail, -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/bigredv2/outside/engineering) -"nwB" = ( -/turf/open/floor{ - dir = 8; - icon_state = "darkyellow2" +"nuQ" = ( +/obj/structure/surface/table/woodentable, +/obj/effect/landmark/objective_landmark/close, +/turf/open/floor/wood, +/area/bigredv2/outside/library) +"nvn" = ( +/obj/structure/machinery/portable_atmospherics/powered/scrubber/huge/stationary{ + density = 0; + pixel_y = 16 }, +/turf/open/floor/asteroidwarning/north, +/area/bigredv2/outside/c) +"nwB" = ( +/turf/open/floor/darkyellow2/west, /area/bigredv2/outside/filtration_plant) "nwS" = ( /obj/item/ore{ pixel_x = -7; pixel_y = 7 }, -/turf/open/mars_cave{ - icon_state = "mars_dirt_5" - }, +/turf/open/mars_cave/mars_dirt_5, /area/bigredv2/caves/mining) "nxa" = ( /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/mars_cave{ - icon_state = "mars_cave_3" - }, +/turf/open/mars_cave/mars_cave_3, /area/bigredv2/caves/mining) +"nzB" = ( +/obj/structure/machinery/computer/general_air_control{ + dir = 8; + pixel_y = 6 + }, +/obj/structure/surface/table, +/turf/open/floor/darkyellow2/east, +/area/bigredv2/outside/filtration_plant) "nzN" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/bigredv2/outside/engineering) "nBb" = ( /obj/item/ammo_magazine/pistol/b92fs, @@ -34138,16 +25575,12 @@ pixel_x = 13; pixel_y = -7 }, -/turf/open/mars_cave{ - icon_state = "mars_dirt_6" - }, +/turf/open/mars_cave/mars_dirt_6, /area/bigredv2/caves/mining) "nCp" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_nest, /obj/effect/landmark/structure_spawner/setup/distress/xeno_nest, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves_se) "nCT" = ( /obj/structure/sign/poster/ad, @@ -34160,22 +25593,18 @@ /turf/open/floor/plating, /area/bigredv2/caves/mining) "nEl" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_13" - }, +/turf/open/mars_cave/mars_cave_13, /area/bigredv2/outside/lz2_south_cas) +"nEH" = ( +/turf/open/mars_cave/mars_cave_10, +/area/bigredv2/outside/n) "nEJ" = ( -/turf/open/mars_cave{ - icon_state = "mars_dirt_5" - }, +/turf/open/mars_cave/mars_dirt_5, /area/bigredv2/outside/eta) "nEP" = ( /obj/structure/surface/table, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 8; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/darkyellowcorners2/west, /area/bigredv2/outside/filtration_plant) "nEV" = ( /obj/item/weapon/twohanded/folded_metal_chair{ @@ -34183,45 +25612,30 @@ pixel_y = 12 }, /obj/effect/decal/cleanable/blood, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) +"nFp" = ( +/obj/structure/window, +/obj/structure/window{ + dir = 8 + }, +/turf/open/floor/wood, +/area/bigredv2/outside/library) "nFB" = ( /obj/item/weapon/gun/rifle/m16, /obj/item/ammo_magazine/rifle/m16, /obj/item/ammo_magazine/rifle/m16, -/turf/open/mars_cave{ - icon_state = "mars_cave_3" - }, +/turf/open/mars_cave/mars_cave_3, /area/bigredv2/caves/mining) "nFH" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/north, /area/bigredv2/caves_lambda) "nGm" = ( /obj/structure/fence, /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/mars_cave{ - icon_state = "mars_cave_17" - }, +/turf/open/mars_cave/mars_cave_17, /area/bigredv2/outside/filtration_cave_cas) -"nGt" = ( -/obj/effect/landmark/nightmare{ - insert_tag = "admin" - }, -/turf/closed/wall/solaris/reinforced, -/area/bigredv2/outside/admin_building) -"nHb" = ( -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, -/area/bigredv2/outside/telecomm/lz2_cave) "nHQ" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /obj/structure/machinery/door/poddoor/almayer/closed{ @@ -34229,19 +25643,20 @@ id = "filtration"; name = "Filtration Lockdown" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/filtration_cave_cas) "nIi" = ( /obj/structure/machinery/door/airlock/almayer/secure/colony{ dir = 1; name = "\improper Engine Reactor" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/bigredv2/outside/engineering) +"nIS" = ( +/obj/structure/surface/table/reinforced, +/obj/item/storage/donut_box, +/turf/open/floor/redfull/northwest, +/area/bigredv2/outside/lambda_cave_cas) "nKL" = ( /obj/structure/prop/invuln/minecart_tracks{ desc = "An exchange valve"; @@ -34250,16 +25665,11 @@ icon_state = "map"; name = "Automated Valve" }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "nLw" = ( /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/outside/sw) "nMB" = ( /obj/structure/machinery/door_control{ @@ -34267,27 +25677,24 @@ name = "Workshop Garage Lockdown"; pixel_x = 28 }, -/turf/open/floor{ - dir = 5; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/northeast, /area/bigred/ground/garage_workshop) "nMZ" = ( /obj/structure/machinery/door/poddoor/almayer/closed, /obj/structure/cable, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) +"nOe" = ( +/obj/structure/toilet{ + dir = 1 + }, +/turf/open/floor/freezerfloor, +/area/bigredv2/outside/dorms) "nPz" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/bigredv2/outside/engineering) "nQl" = ( /obj/item/ore{ @@ -34297,27 +25704,19 @@ /obj/effect/decal/cleanable/blood/oil/streak{ pixel_y = 4 }, -/turf/open/mars_cave{ - icon_state = "mars_dirt_7" - }, +/turf/open/mars_cave/mars_dirt_7, /area/bigredv2/caves/mining) "nRS" = ( /obj/structure/prop/invuln/minecart_tracks{ dir = 8 }, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/caves/mining) "nRT" = ( -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/chapel) "nSP" = ( -/turf/open/mars_cave{ - icon_state = "mars_dirt_7" - }, +/turf/open/mars_cave/mars_dirt_7, /area/bigredv2/caves/mining) "nTF" = ( /obj/structure/barricade/wooden{ @@ -34325,93 +25724,76 @@ dir = 4; health = 25000 }, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/caves/mining) "nTG" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_20" - }, +/turf/open/mars_cave/mars_cave_20, /area/bigredv2/outside/lz2_south_cas) "nUK" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/eta/xenobiology) "nUV" = ( /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/east, /area/bigredv2/outside/filtration_cave_cas) "nVq" = ( -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/engineering) -"nVw" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_23" - }, -/area/bigredv2/outside/lambda_cave_cas) "nVx" = ( -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/east, /area/bigredv2/outside/filtration_plant) "nWD" = ( /obj/effect/decal/cleanable/dirt, /obj/item/trash/burger, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) +"nWG" = ( +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 6 + }, +/obj/structure/machinery/portable_atmospherics/hydroponics, +/turf/open/floor/whitegreenfull, +/area/bigredv2/outside/hydroponics) "nXh" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/remains/human, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "nXw" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/eta/xenobiology) "nXC" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_15" - }, +/turf/open/mars_cave/mars_cave_15, /area/bigredv2/caves_research) "nYC" = ( /obj/structure/surface/table, /obj/item/tool/pickaxe/plasmacutter, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "nYV" = ( /obj/item/tool/warning_cone, /turf/open/mars, /area/bigredv2/outside/s) +"nZd" = ( +/obj/effect/landmark/nightmare{ + insert_tag = "lz1cave_flank" + }, +/turf/closed/wall/solaris/reinforced, +/area/bigredv2/outside/space_port) +"nZB" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/asteroidwarning/north, +/area/bigredv2/outside/telecomm/n_cave) "nZD" = ( /obj/structure/platform_decoration{ dir = 8 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/admin_building) "nZK" = ( /obj/item/ore/diamond, @@ -34435,35 +25817,26 @@ /obj/item/stack/sheet/wood{ pixel_y = -8 }, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/caves/mining) "ocp" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/bigredv2/caves/eta/research) "ocA" = ( -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/library) "ocG" = ( /obj/structure/bookcase/manuals/research_and_development, /obj/item/storage/fancy/vials/random, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/caves/eta/living) "ocR" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/caves_lambda) "odw" = ( /obj/structure/bed, @@ -34472,10 +25845,13 @@ "oea" = ( /obj/effect/landmark/crap_item, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/lambda/breakroom) +"oes" = ( +/obj/structure/surface/table/woodentable, +/obj/item/newspaper, +/turf/open/floor/wood, +/area/bigredv2/outside/library) "ofn" = ( /obj/effect/decal/cleanable/dirt, /turf/closed/wall/solaris, @@ -34483,10 +25859,7 @@ "ofu" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/largecrate, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "ofJ" = ( /obj/structure/surface/table, @@ -34495,9 +25868,7 @@ phone_color = "red"; phone_id = "Security" }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/eta/storage) "ofX" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -34511,31 +25882,25 @@ dir = 1; name = "\improper Abandoned Mining Storage" }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "ohg" = ( /obj/vehicle/train/cargo/trolley, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves/mining) "ohD" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_11" - }, +/turf/open/mars_cave/mars_cave_11, /area/bigredv2/caves_east) "ohY" = ( /obj/structure/cargo_container/hd/left/alt, /turf/open/floor/plating, /area/bigredv2/caves/mining) -"oip" = ( -/turf/open/mars{ - icon_state = "mars_dirt_6" +"oji" = ( +/obj/structure/morgue{ + dir = 2 }, -/area/bigredv2/outside/sw) +/turf/open/floor/whiteblue/north, +/area/bigredv2/outside/medical) "ojD" = ( /obj/structure/platform_decoration{ dir = 4 @@ -34555,36 +25920,28 @@ /obj/structure/cable{ icon_state = "1-8" }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) +"okt" = ( +/obj/structure/surface/table, +/obj/effect/spawner/random/tool, +/turf/open/floor/asteroidwarning, +/area/bigredv2/outside/space_port_lz2) "ole" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "w-y0" - }, +/turf/open/floor/almayer/w_y0/north, /area/bigredv2/outside/admin_building) "olT" = ( /obj/effect/landmark/corpsespawner/engineer, -/turf/open/shuttle/escapepod{ - icon_state = "floor1" - }, +/turf/open/shuttle/escapepod/floor1, /area/bigredv2/oob) "oma" = ( /obj/structure/window/framed/solaris/reinforced, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "omw" = ( /obj/item/clothing/head/helmet/marine/veteran/ua_riot, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves/mining) "omG" = ( /obj/effect/decal/cleanable/blood/drip{ @@ -34592,9 +25949,7 @@ pixel_y = 10 }, /obj/structure/barricade/wooden, -/turf/open/mars_cave{ - icon_state = "mars_cave_13" - }, +/turf/open/mars_cave/mars_cave_13, /area/bigredv2/caves/mining) "omX" = ( /obj/item/stack/cable_coil/cut{ @@ -34609,17 +25964,13 @@ pixel_x = 6; pixel_y = 4 }, -/turf/open/mars_cave{ - icon_state = "mars_cave_6" - }, +/turf/open/mars_cave/mars_cave_6, /area/bigredv2/caves/mining) "onh" = ( /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/caves/mining) "onR" = ( /obj/effect/decal/cleanable/dirt, @@ -34632,52 +25983,31 @@ }, /obj/structure/platform_decoration/shiva, /obj/item/stack/cable_coil, -/turf/open/floor/bluegrid{ - icon_state = "bcircuitoff" - }, +/turf/open/floor/bluegrid/bcircuitoff, /area/bigredv2/caves/lambda/research) "ooD" = ( -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/bigredv2/outside/filtration_cave_cas) -"ooP" = ( -/obj/structure/toilet{ - pixel_y = 8 - }, -/obj/effect/landmark/lv624/xeno_tunnel, -/turf/open/floor{ - icon_state = "freezerfloor" - }, -/area/bigredv2/outside/dorms) "opz" = ( /obj/effect/landmark/crap_item, -/turf/open/mars_cave{ - icon_state = "mars_dirt_5" - }, +/turf/open/mars_cave/mars_dirt_5, /area/bigredv2/caves/mining) "opK" = ( /obj/item/stack/cable_coil/cut, -/turf/open/mars_cave{ - icon_state = "mars_cave_3" - }, +/turf/open/mars_cave/mars_cave_3, /area/bigredv2/caves/mining) "oqr" = ( /obj/item/ore{ pixel_x = -1 }, -/turf/open/mars_cave{ - icon_state = "mars_dirt_6" - }, +/turf/open/mars_cave/mars_dirt_6, /area/bigredv2/caves/mining) "oqM" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/eta/research) "orT" = ( /obj/structure/machinery/vending/coffee, @@ -34686,43 +26016,33 @@ "orZ" = ( /obj/structure/closet/secure_closet/atmos_personal, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/bigredv2/outside/filtration_plant) "otb" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves_se) "oud" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/blood/oil/streak, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "ouh" = ( /obj/item/tool/extinguisher, -/turf/open/floor{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/west, /area/bigredv2/outside/engineering) "ovq" = ( -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/general_offices) "ovB" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/outside/lz2_west_cas) +"ovQ" = ( +/obj/structure/blocker/forcefield/multitile_vehicles, +/turf/open/mars_cave/mars_dirt_4, +/area/bigredv2/outside/ne) "ovZ" = ( /obj/effect/decal/warning_stripes{ icon_state = "N" @@ -34732,36 +26052,25 @@ pixel_y = 15 }, /obj/effect/spawner/gibspawner/human, -/turf/open/mars_cave{ - icon_state = "mars_cave_3" - }, +/turf/open/mars_cave/mars_cave_3, /area/bigredv2/caves/mining) "owR" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_16" - }, +/turf/open/mars_cave/mars_cave_16, /area/bigredv2/caves/mining) "oxh" = ( /obj/effect/decal/cleanable/dirt, /obj/item/stack/sheet/plasteel/medium_stack, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "oxk" = ( /obj/structure/reagent_dispensers/fueltank, /turf/open/floor, /area/bigred/ground/garage_workshop) "oxp" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_5" - }, +/turf/open/mars_cave/mars_cave_5, /area/bigredv2/caves_research) "oye" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_5" - }, +/turf/open/mars_cave/mars_cave_5, /area/bigredv2/outside/filtration_cave_cas) "ozf" = ( /obj/structure/prop/invuln/minecart_tracks{ @@ -34771,58 +26080,63 @@ icon_state = "4-8"; name = "heavy duty power cable" }, -/turf/open/mars_cave{ - icon_state = "mars_cave_20" - }, +/turf/open/mars_cave/mars_cave_20, /area/bigredv2/caves/mining) "ozv" = ( /obj/structure/blocker/forcefield/multitile_vehicles, /turf/open/floor/plating, /area/bigredv2/caves_virology) +"ozO" = ( +/obj/structure/toilet{ + dir = 1 + }, +/obj/effect/landmark/objective_landmark/close, +/turf/open/floor/freezerfloor, +/area/bigredv2/outside/dorms) "ozQ" = ( /obj/effect/landmark/xeno_hive_spawn, /obj/effect/landmark/ert_spawns/groundside_xeno, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves_lambda) "oAf" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_5" - }, +/turf/open/mars_cave/mars_cave_5, /area/bigredv2/caves_virology) "oDB" = ( /obj/structure/closet/l3closet, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/bigredv2/outside/general_offices) "oDW" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor{ +/turf/open/floor/darkred2/west, +/area/bigredv2/outside/admin_building) +"oFj" = ( +/obj/structure/barricade/wooden{ + desc = "This barricade is heavily reinforced. Nothing short of blasting it open seems like it'll do the trick, that or melting the breams supporting it..."; dir = 8; - icon_state = "darkred2" + health = 25000 }, -/area/bigredv2/outside/admin_building) -"oEJ" = ( -/obj/structure/surface/table, -/obj/effect/spawner/random/toolbox, -/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor, -/area/bigredv2/outside/cargo) +/obj/structure/blocker/forcefield/multitile_vehicles, +/turf/open/mars_cave/mars_cave_2, +/area/bigredv2/caves_north) +"oFx" = ( +/obj/item/device/flashlight/lantern, +/turf/open/mars_cave/mars_dirt_4, +/area/bigredv2/outside/ne) "oFY" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/item/prop/alien/hugger, -/turf/open/floor{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/west, /area/bigredv2/outside/admin_building) +"oHn" = ( +/obj/structure/bed/chair{ + dir = 4 + }, +/turf/open/floor, +/area/bigredv2/outside/lambda_cave_cas) "oIc" = ( /obj/effect/decal/cleanable/blood{ base_icon = 'icons/obj/items/weapons/grenade.dmi'; @@ -34831,9 +26145,7 @@ icon_state = "grenade_custom"; name = "M55C Teargas grenade" }, -/turf/open/mars_cave{ - icon_state = "mars_cave_3" - }, +/turf/open/mars_cave/mars_cave_3, /area/bigredv2/caves/mining) "oIK" = ( /obj/structure/platform, @@ -34854,11 +26166,15 @@ name = "heavy duty power cable" }, /obj/structure/machinery/power/port_gen/pacman/super, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) +"oJv" = ( +/obj/structure/surface/table/reinforced, +/obj/structure/machinery/computer/cameras/wooden_tv{ + dir = 8 + }, +/turf/open/floor/redfull/northwest, +/area/bigredv2/outside/lambda_cave_cas) "oJO" = ( /obj/effect/decal/cleanable/blood/drip{ pixel_x = -8; @@ -34867,104 +26183,87 @@ /obj/effect/decal/cleanable/blood/drip{ pixel_x = 6 }, -/turf/open/mars_cave{ - icon_state = "mars_dirt_7" - }, +/turf/open/mars_cave/mars_dirt_7, /area/bigredv2/caves/mining) "oKc" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/floor{ - dir = 8; - icon_state = "darkgreencorners2" - }, +/turf/open/floor/darkgreencorners2/west, /area/bigredv2/caves/eta/research) "oKy" = ( /obj/structure/window/framed/solaris/reinforced, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "oMd" = ( /obj/effect/decal/cleanable/blood/drip{ pixel_y = 13 }, -/turf/open/mars_cave{ - icon_state = "mars_dirt_7" - }, +/turf/open/mars_cave/mars_dirt_7, /area/bigredv2/caves/mining) +"oMf" = ( +/obj/structure/fence, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/asteroidfloor/north, +/area/bigredv2/outside/telecomm/n_cave) "oNu" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_11" - }, +/turf/open/mars_cave/mars_cave_11, /area/bigredv2/outside/lz2_west_cas) "oOk" = ( /obj/effect/landmark/xeno_spawn, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves_research) "oOr" = ( /obj/effect/landmark/item_pool_spawner/survivor_ammo, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) +"oOw" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/gm/river, +/area/bigredv2/outside/c) +"oPM" = ( +/obj/structure/surface/table/reinforced, +/obj/structure/machinery/door_control{ + id = "lambda-exterior"; + name = "Lambda Checkpoint Exterior"; + pixel_x = null + }, +/turf/open/floor/redfull/northwest, +/area/bigredv2/outside/lambda_cave_cas) "oQz" = ( /obj/structure/machinery/light/double{ dir = 1 }, -/turf/open/mars_cave{ - icon_state = "mars_cave_7" - }, +/turf/open/mars_cave/mars_cave_7, /area/bigredv2/outside/lz2_south_cas) "oQI" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_23" - }, +/turf/open/mars_cave/mars_cave_23, /area/bigredv2/caves_sw) "oRs" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_13" - }, +/turf/open/mars_cave/mars_cave_13, /area/bigredv2/caves_north) "oRK" = ( /obj/structure/computer3frame/wallcomp, /obj/structure/cable{ icon_state = "11-2" }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "oTf" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/barricade/handrail{ dir = 8 }, -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/west, /area/bigredv2/outside/filtration_plant) "oTv" = ( /obj/structure/largecrate/supply, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "oTL" = ( /obj/structure/largecrate/random/barrel, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "oTM" = ( /obj/structure/prop/invuln/minecart_tracks{ @@ -34974,9 +26273,7 @@ icon_state = "1-4-8"; name = "heavy duty power cable" }, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves/mining) "oUs" = ( /obj/structure/prop/invuln/minecart_tracks{ @@ -34986,10 +26283,21 @@ icon_state = "4-8"; name = "heavy duty power cable" }, -/turf/open/mars_cave{ - icon_state = "mars_dirt_7" - }, +/turf/open/mars_cave/mars_dirt_7, /area/bigredv2/caves/mining) +"oUY" = ( +/obj/structure/platform_decoration{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/asteroidfloor/north, +/area/bigredv2/outside/telecomm/n_cave) +"oVq" = ( +/obj/effect/landmark/nightmare{ + insert_tag = "lz1entrance_v2" + }, +/turf/open/mars, +/area/bigredv2/outside/nw) "oWc" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -34997,27 +26305,26 @@ /obj/structure/prop/invuln/minecart_tracks{ dir = 1 }, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves_sw) "oWe" = ( /obj/structure/machinery/photocopier{ density = 0; pixel_y = 16 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/north, /area/bigredv2/outside/admin_building) +"oWk" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/turf/open/floor/asteroidwarning/west, +/area/bigredv2/outside/telecomm/lz2_cave) "oWp" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/barricade/handrail, -/turf/open/floor{ - dir = 10; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/southwest, /area/bigredv2/outside/engineering) "oWC" = ( /obj/structure/prop/invuln/minecart_tracks{ @@ -35027,16 +26334,11 @@ icon_state = "1-2"; name = "heavy duty power cable" }, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves/mining) "oXr" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/west, /area/bigredv2/outside/eta) "oXH" = ( /obj/structure/prop/invuln/minecart_tracks{ @@ -35046,19 +26348,14 @@ icon_state = "intact"; name = "Pipe" }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "oZA" = ( /obj/structure/prop/almayer/cannon_cables{ name = "\improper Large Cables"; pixel_y = 12 }, -/turf/open/mars_cave{ - icon_state = "mars_cave_17" - }, +/turf/open/mars_cave/mars_cave_17, /area/bigredv2/caves/mining) "oZQ" = ( /turf/closed/wall/r_wall/unmeltable, @@ -35071,18 +26368,13 @@ /obj/structure/cable{ icon_state = "11-2" }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "paz" = ( /obj/effect/decal/cleanable/blood{ icon_state = "xgib1" }, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/caves/mining) "pbr" = ( /obj/structure/blocker/forcefield/multitile_vehicles, @@ -35090,18 +26382,13 @@ /area/bigredv2/outside/filtration_cave_cas) "pbs" = ( /obj/effect/landmark/objective_landmark/far, -/turf/open/jungle{ - bushes_spawn = 0; - icon_state = "grass_impenetrable" - }, +/turf/open/jungle/impenetrable, /area/bigredv2/caves/eta/living) "pbK" = ( /obj/effect/landmark/hunter_secondary, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /obj/effect/landmark/queen_spawn, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves_lambda) "pbX" = ( /obj/effect/spawner/random/tool, @@ -35128,82 +26415,73 @@ dir = 1; pixel_y = 7 }, -/turf/open/mars_cave{ - icon_state = "mars_cave_14" - }, +/turf/open/mars_cave/mars_cave_14, /area/bigredv2/caves/mining) "pcF" = ( /obj/structure/blocker/forcefield/multitile_vehicles, /turf/closed/wall/solaris/rock, /area/bigredv2/caves) "pcI" = ( -/turf/open/mars{ - icon_state = "mars_dirt_10" - }, +/turf/open/mars/mars_dirt_10, /area/bigredv2/outside/filtration_plant) "pdG" = ( /obj/item/prop/alien/hugger, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/admin_building) -"pdN" = ( -/obj/effect/landmark/nightmare{ - insert_tag = "lz1entrance" - }, -/turf/open/mars, -/area/bigredv2/outside/nw) "pdW" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_13" - }, +/turf/open/mars_cave/mars_cave_13, /area/bigredv2/outside/virology) "per" = ( /obj/structure/window_frame/solaris, /turf/open/floor/plating, /area/bigredv2/outside/dorms) +"pgh" = ( +/turf/open/mars_cave/mars_cave_17, +/area/bigredv2/outside/ne) "pgi" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_nest, /obj/effect/landmark/structure_spawner/xvx_hive/xeno_nest, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves/mining) "pgk" = ( /obj/structure/machinery/portable_atmospherics/canister/air, -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/bigredv2/outside/engineering) "pgu" = ( /obj/effect/decal/warning_stripes{ icon_state = "W-corner" }, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/outside/filtration_cave_cas) -"phi" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_6" +"pgP" = ( +/obj/structure/surface/table, +/turf/open/floor/freezerfloor, +/area/bigredv2/outside/general_offices) +"pgV" = ( +/obj/structure/machinery/light{ + dir = 8 }, +/turf/open/floor/asteroidwarning/southeast, +/area/bigredv2/caves_east) +"phi" = ( +/turf/open/mars_cave/mars_cave_6, /area/bigredv2/caves_research) +"phx" = ( +/obj/structure/pipes/standard/manifold/hidden/green{ + dir = 1 + }, +/turf/open/floor/asteroidfloor/north, +/area/bigredv2/outside/e) "plx" = ( /obj/structure/machinery/power/apc{ dir = 4 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/east, /area/bigredv2/caves/eta/research) "pmk" = ( /obj/structure/surface/table, /obj/item/spacecash/c1, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves/mining) "pmN" = ( /obj/effect/decal/cleanable/blood{ @@ -35213,17 +26491,19 @@ icon_state = "grenade_custom"; name = "M55C Teargas grenade" }, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves/mining) "pmS" = ( /turf/open/mars, /area/bigredv2/caves_north) -"pnL" = ( -/turf/open/mars{ - icon_state = "mars_dirt_11" +"pmV" = ( +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 4 }, +/turf/open/floor/asteroidfloor/north, +/area/bigredv2/caves_lambda) +"pnL" = ( +/turf/open/mars/mars_dirt_11, /area/bigredv2/caves_north) "pog" = ( /obj/structure/platform{ @@ -35236,28 +26516,40 @@ /area/bigredv2/outside/engineering) "pow" = ( /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/outside/lz1_north_cas) "poF" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/east, /area/bigredv2/caves/lambda/research) "ppp" = ( /obj/structure/sign/safety/hazard, /turf/closed/wall/solaris/rock, /area/bigredv2/caves) +"pri" = ( +/obj/structure/barricade/wooden{ + desc = "This barricade is heavily reinforced. Nothing short of blasting it open seems like it'll do the trick, that or melting the breams supporting it..."; + dir = 8; + health = 25000 + }, +/turf/open/mars_cave/mars_cave_15, +/area/bigredv2/caves_north) +"prU" = ( +/obj/structure/machinery/light{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/surface/table/woodentable, +/obj/item/prop/magazine/book/bladerunner{ + pixel_y = 3 + }, +/turf/open/floor/wood, +/area/bigredv2/outside/library) "psE" = ( /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/bar) "ptL" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -35267,17 +26559,17 @@ /area/bigredv2/caves/eta/living) "puU" = ( /obj/item/paper/bigred/witness, -/turf/open/mars_cave{ - icon_state = "mars_cave_17" - }, +/turf/open/mars_cave/mars_cave_17, /area/bigredv2/outside/lz2_south_cas) "pvg" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/eta/xenobiology) +"pvj" = ( +/obj/structure/machinery/camera/autoname, +/turf/open/floor, +/area/bigredv2/outside/dorms) "pvk" = ( /obj/structure/prop/invuln/minecart_tracks{ desc = "Righty tighty, lefty loosey!"; @@ -35286,22 +26578,14 @@ icon_state = "map_valve1"; name = "Pressure Valve" }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "pvp" = ( -/turf/open/mars{ - icon_state = "mars_dirt_13" - }, +/turf/open/mars/mars_dirt_13, /area/bigredv2/outside/filtration_plant) "pxp" = ( /obj/structure/ore_box, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "pxv" = ( /obj/structure/barricade/wooden{ @@ -35312,18 +26596,22 @@ /obj/item/weapon/twohanded/spear{ pixel_x = 5 }, -/turf/open/mars_cave{ - icon_state = "mars_cave_14" - }, +/turf/open/mars_cave/mars_cave_14, /area/bigredv2/caves/mining) "pxH" = ( /obj/structure/platform_decoration{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/admin_building) +"pyq" = ( +/obj/structure/surface/table, +/obj/structure/machinery/computer/emails{ + dir = 8; + pixel_y = 4 + }, +/turf/open/floor/wood, +/area/bigredv2/outside/library) "pyU" = ( /obj/effect/decal/warning_stripes{ icon_state = "NW-out"; @@ -35337,22 +26625,22 @@ icon_state = "E"; pixel_x = 1 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/admin_building) +"pzC" = ( +/obj/structure/window/framed/solaris, +/obj/structure/curtain, +/turf/open/floor/plating, +/area/bigredv2/outside/medical) +"pAX" = ( +/turf/open/floor, +/area/bigredv2/outside/lambda_cave_cas) "pBv" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 10; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/southwest, /area/bigredv2/outside/filtration_plant) "pBD" = ( -/turf/open/floor{ - dir = 4; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/east, /area/bigredv2/caves/eta/research) "pCR" = ( /obj/structure/barricade/wooden{ @@ -35366,106 +26654,92 @@ /obj/item/weapon/twohanded/spear{ pixel_x = 5 }, -/turf/open/mars_cave{ - icon_state = "mars_cave_13" - }, +/turf/open/mars_cave/mars_cave_13, /area/bigredv2/caves/mining) "pDV" = ( /obj/effect/landmark/crap_item, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "pGP" = ( /obj/structure/barricade/handrail{ dir = 4 }, -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/east, /area/bigredv2/outside/filtration_plant) "pHb" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/mars_cave{ - icon_state = "mars_cave_7" - }, +/turf/open/mars_cave/mars_cave_7, /area/bigredv2/caves_sw) -"pIh" = ( -/obj/structure/machinery/power/geothermal, -/turf/open/floor{ - icon_state = "white" +"pIl" = ( +/obj/structure/morgue{ + dir = 2 }, -/area/bigredv2/outside/virology) +/turf/open/floor/whiteblue/northwest, +/area/bigredv2/outside/medical) "pIN" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves_lambda) +"pJd" = ( +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 4 + }, +/obj/structure/machinery/door/airlock/almayer/security/glass/colony{ + name = "\improper Lambda Checkpoint" + }, +/turf/open/floor/delivery, +/area/bigredv2/outside/lambda_cave_cas) +"pJn" = ( +/obj/structure/blocker/forcefield/multitile_vehicles, +/turf/open/mars_cave/mars_cave_2, +/area/bigredv2/outside/ne) +"pJt" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/asteroidwarning/east, +/area/bigredv2/outside/telecomm/n_cave) "pJS" = ( /obj/effect/decal/cleanable/blood/drip{ pixel_x = -4; pixel_y = 20 }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "pJX" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_14" - }, +/turf/open/mars_cave/mars_cave_14, /area/bigredv2/caves/mining) "pKP" = ( /obj/structure/surface/table, /obj/effect/spawner/random/tool, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/west, /area/bigredv2/outside/engineering) "pLj" = ( /obj/structure/largecrate/random/barrel/red, -/turf/open/mars_cave{ - icon_state = "mars_cave_19" - }, +/turf/open/mars_cave/mars_cave_19, /area/bigredv2/caves/mining) +"pLH" = ( +/turf/open/mars_cave/mars_dirt_6, +/area/bigredv2/outside/ne) "pMi" = ( /obj/effect/decal/cleanable/dirt, /obj/item/tool/extinguisher, -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/bigredv2/outside/engineering) "pMm" = ( -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/west, /area/bigredv2/outside/filtration_plant) "pMv" = ( -/turf/open/mars_cave{ - icon_state = "mars_dirt_5" - }, +/turf/open/mars_cave/mars_dirt_5, /area/bigredv2/outside/lz1_north_cas) "pMB" = ( /obj/structure/machinery/light/small, -/turf/open/mars_cave{ - icon_state = "mars_cave_3" - }, +/turf/open/mars_cave/mars_cave_3, /area/bigredv2/caves/mining) "pNa" = ( -/turf/open/floor{ - dir = 10; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/southwest, /area/bigredv2/caves/eta/research) "pNU" = ( /obj/structure/bed, @@ -35473,31 +26747,33 @@ /obj/item/bedsheet/brown{ layer = 3.1 }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/admin_building) "pOg" = ( /obj/structure/machinery/compressor{ dir = 1 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/west, /area/bigredv2/outside/engineering) +"pOt" = ( +/obj/structure/machinery/optable, +/turf/open/floor/whiteblue/east, +/area/bigredv2/outside/medical) "pOL" = ( /obj/structure/closet/crate/miningcar/yellow, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/caves/mining) +"pPh" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/turf/open/floor/plating/warnplate, +/area/bigredv2/outside/telecomm/warehouse) "pPo" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/filtration_plant) "pQv" = ( /obj/structure/surface/table, @@ -35518,20 +26794,28 @@ "pRG" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/bigredv2/outside/engineering) "pRP" = ( /turf/closed/wall/solaris/reinforced, /area/bigredv2/outside/telecomm/n_cave) "pSa" = ( -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) +"pSf" = ( +/turf/open/floor/carpet, +/area/bigredv2/outside/library) +"pTo" = ( +/obj/structure/machinery/power/apc{ + dir = 1; + start_charge = 0 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "W"; + pixel_x = -1 + }, +/turf/open/floor/asteroidwarning/east, +/area/bigredv2/outside/telecomm/lz2_cave) "pTA" = ( /obj/structure/platform_decoration/shiva{ dir = 1 @@ -35540,15 +26824,11 @@ dir = 4 }, /obj/effect/landmark/objective_landmark/far, -/turf/open/floor/bluegrid{ - icon_state = "bcircuitoff" - }, +/turf/open/floor/bluegrid/bcircuitoff, /area/bigredv2/caves/lambda/research) "pTH" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_core, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves_se) "pUi" = ( /obj/item/weapon/broken_bottle, @@ -35558,26 +26838,18 @@ /obj/structure/prop/invuln/minecart_tracks{ dir = 1 }, -/turf/open/mars_cave{ - icon_state = "mars_cave_13" - }, +/turf/open/mars_cave/mars_cave_13, /area/bigredv2/caves/mining) "pVv" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/compressor{ dir = 1 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/west, /area/bigredv2/outside/engineering) "pVP" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigred/ground/garage_workshop) "pWs" = ( /obj/structure/barricade/handrail{ @@ -35592,10 +26864,7 @@ dir = 4 }, /obj/structure/machinery/camera/autoname, -/turf/open/floor{ - dir = 4; - icon_state = "redcorner" - }, +/turf/open/floor/redcorner/east, /area/bigredv2/outside/marshal_office) "pXn" = ( /obj/structure/closet/fireaxecabinet{ @@ -35603,15 +26872,10 @@ }, /obj/structure/closet/toolcloset, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "pXu" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/outside/lz1_north_cas) "pXB" = ( /obj/effect/landmark/corpsespawner/ua_riot, @@ -35630,85 +26894,77 @@ pixel_y = 3 }, /obj/item/weapon/gun/rifle/m41a/training, -/turf/open/mars_cave{ - icon_state = "mars_cave_17" - }, +/turf/open/mars_cave/mars_cave_17, /area/bigredv2/caves/mining) "pYt" = ( -/turf/open/mars_cave{ - icon_state = "mars_dirt_7" - }, +/turf/open/mars_cave/mars_dirt_7, /area/bigredv2/caves_sw) "pYE" = ( /obj/item/weapon/gun/shotgun/pump/dual_tube/cmb, -/turf/open/shuttle/escapepod{ - icon_state = "floor5" - }, +/turf/open/shuttle/escapepod/floor5, /area/bigredv2/oob) "pZe" = ( /obj/effect/decal/cleanable/dirt, /obj/item/weapon/twohanded/folded_metal_chair, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "pZu" = ( /obj/structure/surface/rack, /obj/item/storage/bag/ore{ pixel_y = 5 }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "qaK" = ( /obj/structure/largecrate, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigred/ground/garage_workshop) "qaR" = ( /obj/vehicle/powerloader/ft, /turf/open/floor/plating, /area/bigredv2/outside/nw/ceiling) -"qez" = ( -/obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" +"qby" = ( +/turf/open/floor/bcircuit, +/area/bigredv2/outside/telecomm/lz2_cave) +"qbG" = ( +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 4 }, -/area/bigredv2/caves_north) +/obj/structure/machinery/door/poddoor/almayer/closed{ + dir = 4; + id = "lambda-interior"; + name = "Lambda Checkpoint Interior" + }, +/turf/open/floor/delivery, +/area/bigredv2/outside/lambda_cave_cas) +"qcE" = ( +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 10 + }, +/turf/open/floor/carpet, +/area/bigredv2/outside/library) +"qcQ" = ( +/turf/open/mars_cave/mars_dirt_7, +/area/bigredv2/outside/space_port_lz2) "qeK" = ( /obj/structure/surface/table, /obj/effect/spawner/random/tool, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 5; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/northeast, /area/bigredv2/outside/filtration_plant) "qeX" = ( /obj/structure/largecrate, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "qeZ" = ( /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/mars_cave{ - icon_state = "mars_cave_3" - }, +/turf/open/mars_cave/mars_cave_3, /area/bigredv2/caves/mining) "qgY" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_17" - }, +/turf/open/mars_cave/mars_cave_17, /area/bigredv2/caves_sw) "qhk" = ( /obj/effect/decal/cleanable/blood/drip{ @@ -35726,10 +26982,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/e) "qhH" = ( /obj/structure/prop/invuln/minecart_tracks{ @@ -35739,18 +26992,13 @@ icon_state = "1-2"; name = "heavy duty power cable" }, -/turf/open/mars_cave{ - icon_state = "mars_cave_6" - }, +/turf/open/mars_cave/mars_cave_6, /area/bigredv2/caves/mining) "qiA" = ( /obj/structure/surface/table/reinforced/prison, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, /obj/item/tool/extinguisher, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/north, /area/bigred/ground/garage_workshop) "qjA" = ( /obj/structure/machinery/light/small{ @@ -35771,20 +27019,11 @@ /obj/structure/machinery/door/airlock/almayer/maint/colony{ name = "\improper Access door" }, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/caves/mining) -"qkB" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_8" - }, -/area/bigredv2/caves) "qkC" = ( /obj/structure/fence, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/bigredv2/outside/filtration_cave_cas) "qlK" = ( /obj/structure/surface/rack, @@ -35802,63 +27041,72 @@ /obj/item/stack/sheet/wood{ pixel_y = -7 }, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/caves/mining) -"qmY" = ( -/obj/effect/landmark/hunter_secondary, -/turf/open/mars_cave{ - icon_state = "mars_cave_7" - }, -/area/bigredv2/caves_north) "qoj" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_23" - }, +/turf/open/mars_cave/mars_cave_23, /area/bigredv2/outside/filtration_cave_cas) "qot" = ( /obj/effect/decal/cleanable/blood/drip{ pixel_x = 6; pixel_y = 10 }, -/turf/open/mars_cave{ - icon_state = "mars_dirt_7" - }, +/turf/open/mars_cave/mars_dirt_7, /area/bigredv2/caves/mining) "qoN" = ( /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/admin_building) +"qoQ" = ( +/obj/structure/morgue{ + dir = 1 + }, +/turf/open/floor/whiteblue/southwest, +/area/bigredv2/outside/medical) +"qoS" = ( +/obj/structure/machinery/light{ + dir = 4 + }, +/turf/open/floor/asteroidwarning/west, +/area/bigredv2/outside/e) "qpn" = ( /obj/item/tool/warning_cone{ pixel_x = -6 }, -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/west, /area/bigredv2/outside/filtration_plant) "qqw" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/bigredv2/outside/filtration_plant) "qrZ" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/storage/firstaid/fire, /turf/open/floor, /area/bigred/ground/garage_workshop) +"qsd" = ( +/obj/structure/cargo_container/kelland/left, +/turf/open/mars, +/area/bigredv2/outside/space_port_lz2) +"qse" = ( +/obj/structure/largecrate/supply, +/turf/open/floor/asteroidfloor/north, +/area/bigredv2/outside/n) "qsE" = ( /turf/closed/wall/solaris/reinforced, /area/bigred/ground/garage_workshop) -"qtx" = ( -/turf/closed/wall/solaris/reinforced/hull, -/area/bigredv2/outside/space_port_lz2) +"qsV" = ( +/obj/structure/bookcase{ + icon_state = "book-5" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood, +/area/bigredv2/outside/library) +"qus" = ( +/obj/structure/pipes/standard/simple/hidden/green, +/turf/open/floor/delivery, +/area/bigredv2/outside/dorms) "qux" = ( /obj/effect/decal/cleanable/blood/drip{ pixel_x = 6 @@ -35871,27 +27119,31 @@ pixel_x = 2; pixel_y = 17 }, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/caves/mining) +"quX" = ( +/obj/structure/window/framed/solaris/reinforced, +/obj/structure/machinery/door/poddoor/shutters/almayer{ + dir = 4; + id = "Engineering"; + name = "\improper Engineering Shutters" + }, +/turf/open/floor/almayer/test_floor4, +/area/bigredv2/outside/engineering) "qvA" = ( /obj/effect/landmark/xeno_spawn, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves_lambda) "qvI" = ( /obj/item/clothing/head/helmet/marine/veteran/ua_riot, -/turf/open/mars_cave{ - icon_state = "mars_cave_3" - }, +/turf/open/mars_cave/mars_cave_3, /area/bigredv2/caves/mining) +"qwm" = ( +/turf/open/mars/mars_dirt_12, +/area/bigredv2/outside/n) "qwx" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/eta/living) "qwy" = ( /obj/effect/decal/cleanable/dirt, @@ -35900,20 +27152,14 @@ pixel_y = 7 }, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "qyi" = ( /obj/effect/decal/warning_stripes{ icon_state = "NW-out"; pixel_y = 1 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkredcorners2" - }, +/turf/open/floor/darkredcorners2/east, /area/bigredv2/outside/admin_building) "qzO" = ( /obj/structure/blocker/forcefield/multitile_vehicles, @@ -35921,29 +27167,24 @@ id = "eta"; name = "Eta Lockdown" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/lz2_south_cas) "qzY" = ( /obj/effect/decal/cleanable/blood/drip{ pixel_x = -1; pixel_y = 5 }, -/turf/open/mars_cave{ - icon_state = "mars_cave_13" - }, +/turf/open/mars_cave/mars_cave_13, /area/bigredv2/caves/mining) "qCK" = ( -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/bigredv2/outside/lz2_south_cas) +"qDZ" = ( +/turf/open/floor/podhatchfloor, +/area/bigredv2/outside/telecomm/n_cave) "qEs" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/outside/lz2_south_cas) "qEJ" = ( /obj/structure/machinery/door/poddoor/almayer{ @@ -35951,9 +27192,7 @@ id = "workshop_br_g"; name = "\improper Workshop Garage" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigred/ground/garage_workshop) "qFg" = ( /obj/effect/decal/cleanable/blood{ @@ -35963,9 +27202,7 @@ pixel_x = 12; pixel_y = 3 }, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/caves_research) "qFh" = ( /obj/item/tool/pickaxe, @@ -35973,14 +27210,10 @@ pixel_x = -11; pixel_y = 10 }, -/turf/open/mars_cave{ - icon_state = "mars_dirt_7" - }, +/turf/open/mars_cave/mars_dirt_7, /area/bigredv2/caves/mining) "qFY" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_5" - }, +/turf/open/mars_cave/mars_cave_5, /area/bigredv2/caves_east) "qGg" = ( /obj/item/device/flashlight/lamp{ @@ -35989,29 +27222,18 @@ }, /obj/item/ashtray/plastic, /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "qGY" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/bigredv2/outside/engineering) "qHc" = ( -/turf/open/floor{ - dir = 1; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/darkyellowcorners2/north, /area/bigredv2/outside/filtration_plant) "qHY" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_10" - }, +/turf/open/mars_cave/mars_cave_10, /area/bigredv2/outside/lz2_south_cas) "qHZ" = ( /obj/structure/surface/table, @@ -36019,51 +27241,72 @@ /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, /turf/open/floor, /area/bigredv2/outside/cargo) +"qJB" = ( +/obj/effect/decal/cleanable/blood{ + dir = 4; + icon_state = "gib6" + }, +/turf/open/floor/asteroidfloor/north, +/area/bigredv2/outside/lambda_cave_cas) +"qJM" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/carpet, +/area/bigredv2/outside/library) "qJV" = ( /obj/effect/decal/cleanable/blood/drip{ pixel_x = -5; pixel_y = 10 }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) -"qKx" = ( -/obj/effect/landmark/nightmare{ - insert_tag = "prison" +"qKH" = ( +/obj/structure/machinery/light{ + dir = 1 }, -/turf/closed/wall/solaris/reinforced, -/area/bigredv2/outside/medical) +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 4 + }, +/turf/open/floor/asteroidwarning/north, +/area/bigredv2/caves_lambda) "qLk" = ( /obj/item/device/flashlight/lantern, -/turf/open/mars_cave{ - icon_state = "mars_dirt_5" - }, +/turf/open/mars_cave/mars_dirt_5, /area/bigredv2/caves/mining) +"qLD" = ( +/turf/open/floor/red, +/area/bigredv2/outside/lambda_cave_cas) "qLV" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/eta) +"qMS" = ( +/turf/open/mars_cave/mars_cave_18, +/area/bigredv2/outside/n) "qNu" = ( /obj/structure/surface/table, /obj/structure/machinery/light/small{ dir = 4 }, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/lambda/xenobiology) +"qNH" = ( +/obj/structure/closet/firecloset/full, +/turf/open/floor/asteroidplating, +/area/bigredv2/outside/space_port_lz2) "qNP" = ( /obj/structure/bed/chair{ dir = 8 }, /turf/open/floor, /area/bigred/ground/garage_workshop) +"qNU" = ( +/obj/structure/surface/table, +/obj/structure/machinery/computer/shuttle/dropship/flight/lz2{ + dir = 1 + }, +/turf/open/floor/asteroidwarning, +/area/bigredv2/landing/console2) "qOM" = ( /obj/effect/decal/cleanable/blood/drip{ pixel_x = -9; @@ -36076,98 +27319,115 @@ /obj/effect/decal/cleanable/blood{ icon_state = "gib6" }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "qPT" = ( /turf/closed/wall/solaris/reinforced, /area/bigredv2/outside/eta) +"qQl" = ( +/obj/effect/landmark/static_comms/net_one, +/turf/open/floor/bcircuit, +/area/bigredv2/outside/marshal_office) "qQn" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/mars_cave{ - icon_state = "mars_cave_6" - }, +/turf/open/mars_cave/mars_cave_6, /area/bigredv2/caves_lambda) +"qQr" = ( +/obj/item/stack/sheet/wood, +/obj/structure/blocker/forcefield/multitile_vehicles, +/turf/open/mars_cave/mars_cave_7, +/area/bigredv2/caves_north) "qSj" = ( /obj/structure/cargo_container/hd/mid/alt, /turf/open/floor/plating, /area/bigredv2/caves/mining) -"qTu" = ( -/obj/effect/landmark/nightmare{ - insert_tag = "viro" - }, -/turf/closed/wall/solaris/rock, -/area/bigredv2/caves) "qTC" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/eta/xenobiology) "qUF" = ( /obj/structure/machinery/computer/area_atmos{ dir = 1 }, /obj/structure/surface/table, -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/bigredv2/outside/engineering) "qUS" = ( -/turf/open/mars_cave{ - icon_state = "mars_dirt_6" - }, +/turf/open/mars_cave/mars_dirt_6, /area/bigredv2/caves_sw) "qVd" = ( /obj/item/reagent_container/food/snacks/sausage, /obj/structure/platform_decoration/kutjevo/rock{ dir = 8 }, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/space) "qVi" = ( /obj/structure/window/framed/solaris/reinforced, /turf/open/floor/plating, /area/bigredv2/caves/mining) +"qVw" = ( +/turf/open/floor/asteroidwarning/northeast, +/area/bigredv2/outside/virology) "qVB" = ( /obj/item/weapon/shield/riot, /obj/effect/decal/cleanable/blood/drip{ pixel_x = -8; pixel_y = 6 }, -/turf/open/mars_cave{ - icon_state = "mars_cave_17" - }, +/turf/open/mars_cave/mars_cave_17, /area/bigredv2/caves/mining) +"qWA" = ( +/obj/structure/surface/table/woodentable, +/obj/item/paper, +/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood, +/area/bigredv2/outside/library) +"qWT" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/machinery/door/poddoor/almayer/closed{ + dir = 4; + id = "lambda-exterior"; + name = "Lambda Checkpoint Exterior" + }, +/obj/structure/blocker/forcefield/multitile_vehicles, +/turf/open/floor/delivery, +/area/bigredv2/outside/lambda_cave_cas) "qXi" = ( /obj/structure/surface/table/woodentable, /obj/item/device/pinpointer, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/admin_building) +"qYB" = ( +/obj/structure/sink{ + dir = 8; + pixel_x = -12; + pixel_y = 2 + }, +/obj/structure/sink{ + dir = 8; + pixel_x = -12; + pixel_y = 2 + }, +/obj/structure/mirror{ + pixel_x = -28 + }, +/turf/open/floor/freezerfloor, +/area/bigredv2/outside/dorms) "qYY" = ( /obj/structure/prop/invuln/minecart_tracks{ dir = 8 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "qZo" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/eta/research) "qZU" = ( /obj/structure/machinery/light/small{ @@ -36180,25 +27440,38 @@ icon_state = "4-8"; name = "heavy duty power cable" }, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/caves/mining) +"rat" = ( +/obj/structure/machinery/light, +/turf/open/floor/bcircuit, +/area/bigredv2/outside/marshal_office) "raQ" = ( /obj/structure/barricade/handrail/wire{ dir = 4 }, -/turf/open/mars_cave{ - icon_state = "mars_cave_9" - }, +/turf/open/mars_cave/mars_cave_9, /area/bigredv2/outside/telecomm/lz2_cave) +"raU" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W"; + layer = 2.5; + pixel_x = -1 + }, +/turf/open/floor/red/east, +/area/bigredv2/outside/marshal_office) +"rbs" = ( +/obj/structure/window/framed/solaris/reinforced, +/turf/open/floor/plating, +/area/bigredv2/outside/lambda_cave_cas) "rbD" = ( /obj/structure/largecrate/random, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) +"rbV" = ( +/obj/structure/pipes/standard/simple/hidden/green, +/turf/open/floor/asteroidwarning/east, +/area/bigredv2/outside/n) "rcc" = ( /obj/structure/prop/almayer/missile_tube{ desc = "A detached drill arm of a big old Seegson D-602 Mining Robot. Seems to be jury rigged to run without the main robot assembly."; @@ -36210,21 +27483,14 @@ pixel_y = 12 }, /obj/structure/cable, -/turf/open/mars_cave{ - icon_state = "mars_dirt_6" - }, +/turf/open/mars_cave/mars_dirt_6, /area/bigredv2/caves/mining) "rcN" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_16" - }, +/turf/open/mars_cave/mars_cave_16, /area/bigredv2/caves_research) "rdr" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/bigredv2/outside/engineering) "rdR" = ( /turf/open/floor, @@ -36242,9 +27508,7 @@ /obj/item/weapon/twohanded/spear{ pixel_x = 5 }, -/turf/open/mars_cave{ - icon_state = "mars_cave_13" - }, +/turf/open/mars_cave/mars_cave_13, /area/bigredv2/caves/mining) "reL" = ( /obj/effect/landmark/nightmare{ @@ -36262,26 +27526,26 @@ /obj/structure/platform_decoration/kutjevo/rock{ dir = 4 }, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/space) +"rfX" = ( +/obj/structure/surface/table, +/obj/item/bodybag, +/obj/item/bodybag, +/obj/item/bodybag, +/turf/open/floor/whitegreen/northeast, +/area/bigredv2/outside/medical) +"rgm" = ( +/obj/structure/bed/chair/wood/normal{ + dir = 8 + }, +/obj/structure/pipes/standard/simple/hidden/green, +/turf/open/floor/chapel, +/area/bigredv2/outside/chapel) "rgp" = ( /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/outside/lz1_north_cas) -"rhx" = ( -/obj/structure/machinery/power/apc{ - dir = 1; - start_charge = 0 - }, -/turf/open/floor/plating{ - dir = 4; - icon_state = "warnplate" - }, -/area/bigredv2/outside/telecomm/warehouse) "rhP" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/warning_stripes{ @@ -36289,10 +27553,7 @@ pixel_x = -1; pixel_y = 1 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/darkyellowcorners2/north, /area/bigredv2/outside/engineering) "rie" = ( /obj/effect/decal/cleanable/blood/drip, @@ -36300,10 +27561,7 @@ pixel_x = 6; pixel_y = 4 }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "rjw" = ( /obj/effect/decal/cleanable/dirt, @@ -36315,14 +27573,15 @@ }, /turf/closed/wall/solaris/reinforced, /area/bigredv2/caves/mining) +"rkh" = ( +/obj/structure/blocker/forcefield/multitile_vehicles, +/turf/open/floor/red, +/area/bigredv2/outside/lambda_cave_cas) "rkS" = ( /obj/structure/cable{ icon_state = "5-6" }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "rml" = ( /obj/structure/machinery/cm_vending/sorted/tech/electronics_storage, @@ -36331,93 +27590,72 @@ "rnc" = ( /turf/open/mars_cave, /area/bigredv2/caves_research) +"rnK" = ( +/obj/structure/machinery/door/poddoor/almayer/closed{ + dir = 4; + id = "lambda-exterior"; + name = "Lambda Checkpoint Exterior" + }, +/obj/structure/blocker/forcefield/multitile_vehicles, +/turf/open/floor/delivery, +/area/bigredv2/outside/lambda_cave_cas) "rnV" = ( /obj/item/stack/sheet/glass, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/engineering) "row" = ( -/turf/open/floor{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/west, /area/bigredv2/caves/eta/research) "roP" = ( /obj/item/ore{ pixel_x = 9; pixel_y = -4 }, -/turf/open/mars_cave{ - icon_state = "mars_dirt_7" - }, +/turf/open/mars_cave/mars_dirt_7, /area/bigredv2/caves/mining) "rpl" = ( /obj/structure/machinery/light/small, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves/mining) "rpI" = ( /obj/effect/decal/warning_stripes{ icon_state = "W"; layer = 2.5 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/east, /area/bigredv2/outside/admin_building) "rqa" = ( /obj/structure/tunnel{ id = "hole4" }, -/turf/open/floor{ - icon_state = "whitepurplefull" - }, +/turf/open/floor/whitepurplefull, /area/bigredv2/caves/lambda/xenobiology) "rqv" = ( /obj/structure/prop/invuln/minecart_tracks{ dir = 1 }, -/turf/open/mars_cave{ - icon_state = "mars_cave_19" - }, +/turf/open/mars_cave/mars_cave_19, /area/bigredv2/caves/mining) -"rrl" = ( -/obj/effect/landmark/nightmare{ - insert_tag = "filtration" - }, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, -/area/bigredv2/outside/s) +"rrF" = ( +/turf/open/mars_cave/mars_cave_13, +/area/bigredv2/outside/ne) "rsv" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_3" - }, +/turf/open/mars_cave/mars_cave_3, /area/bigredv2/caves/mining) "rtL" = ( /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/mars_cave{ - icon_state = "mars_cave_6" - }, +/turf/open/mars_cave/mars_cave_6, /area/bigredv2/outside/lz2_west_cas) "rtR" = ( /obj/effect/landmark/corpsespawner/security/marshal, /obj/effect/decal/cleanable/blood, /obj/item/weapon/classic_baton, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/caves_research) "rtS" = ( /obj/effect/decal/cleanable/dirt, /obj/item/stack/sheet/wetleather, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "rtV" = ( /obj/effect/decal/cleanable/blood/drip, @@ -36428,41 +27666,29 @@ /obj/item/ammo_magazine/rifle/m16, /obj/item/ammo_magazine/rifle/m16, /obj/effect/decal/cleanable/blood, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/caves/mining) "ruS" = ( /obj/structure/bed/chair{ dir = 8; pixel_y = 3 }, -/turf/open/mars_cave{ - icon_state = "mars_dirt_6" - }, +/turf/open/mars_cave/mars_dirt_6, /area/bigredv2/caves/mining) "rvS" = ( /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves_sw) "rxh" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves/mining) "rxJ" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/mars_cave{ - icon_state = "mars_cave_23" - }, +/turf/open/mars_cave/mars_cave_23, /area/bigredv2/caves_east) "rzb" = ( /obj/structure/bed/chair, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/engineering) "rzO" = ( /obj/effect/decal/cleanable/dirt, @@ -36472,32 +27698,34 @@ }, /turf/open/floor/plating, /area/bigredv2/outside/filtration_plant) +"rzR" = ( +/turf/open/floor/asteroidwarning/southeast, +/area/bigredv2/outside/ne) "rzT" = ( /obj/structure/sign/nosmoking_1, /turf/closed/wall/solaris/reinforced, /area/bigredv2/caves/mining) "rAs" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_6" - }, +/turf/open/mars_cave/mars_cave_6, /area/bigredv2/caves_east) +"rBn" = ( +/obj/structure/window, +/turf/open/floor/wood, +/area/bigredv2/outside/library) "rBK" = ( /obj/structure/fence, -/turf/open/mars{ - icon_state = "mars_dirt_12" - }, +/turf/open/mars/mars_dirt_12, /area/bigredv2/outside/se) "rCd" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/bigred/ground/garage_workshop) "rCA" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_7" - }, +/turf/open/mars_cave/mars_cave_7, /area/bigredv2/outside/lz1_telecomm_cas) +"rDa" = ( +/turf/open/floor/redcorner, +/area/bigredv2/outside/lambda_cave_cas) "rDl" = ( /obj/effect/decal/cleanable/blood/drip{ pixel_x = -3; @@ -36506,45 +27734,32 @@ /obj/effect/decal/cleanable/blood/drip{ pixel_y = 13 }, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves/mining) "rDO" = ( /obj/structure/bed/chair{ dir = 8; pixel_y = 3 }, -/turf/open/mars_cave{ - icon_state = "mars_cave_13" - }, +/turf/open/mars_cave/mars_cave_13, /area/bigredv2/caves/mining) "rDP" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves_virology) "rDV" = ( /obj/structure/barricade/handrail{ dir = 1; pixel_y = 2 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/north, /area/bigredv2/outside/filtration_plant) "rGP" = ( /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/mars_cave{ - icon_state = "mars_cave_7" - }, +/turf/open/mars_cave/mars_cave_7, /area/bigredv2/caves_virology) "rHr" = ( /obj/item/ore, -/turf/open/mars_cave{ - icon_state = "mars_dirt_7" - }, +/turf/open/mars_cave/mars_dirt_7, /area/bigredv2/caves/mining) "rHA" = ( /obj/effect/decal/cleanable/dirt, @@ -36552,26 +27767,24 @@ /area/bigredv2/outside/filtration_plant) "rHD" = ( /obj/effect/landmark/lv624/xeno_tunnel, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/c) "rIl" = ( /turf/closed/wall/solaris/reinforced/hull, /area/bigredv2/oob) "rJJ" = ( -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/north, /area/bigredv2/outside/lz2_south_cas) "rJR" = ( /obj/structure/reagent_dispensers/fueltank/gas, -/turf/open/mars_cave{ - icon_state = "mars_cave_15" - }, +/turf/open/mars_cave/mars_cave_15, /area/bigredv2/caves/mining) +"rKe" = ( +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 5 + }, +/turf/open/floor/carpet, +/area/bigredv2/outside/library) "rKs" = ( /obj/item/stack/medical/splint{ pixel_x = 4; @@ -36584,36 +27797,35 @@ }, /turf/open/floor/plating, /area/bigredv2/caves/mining) +"rKy" = ( +/obj/structure/machinery/light{ + dir = 8 + }, +/obj/structure/machinery/recharge_station, +/turf/open/floor/freezerfloor, +/area/bigredv2/outside/dorms) "rKP" = ( /obj/structure/machinery/portable_atmospherics/powered/scrubber, -/turf/open/floor/plating{ - dir = 8; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/west, /area/bigredv2/oob) +"rLM" = ( +/turf/open/mars/mars_dirt_12, +/area/bigredv2/outside/ne) "rLR" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_nest, /obj/effect/landmark/structure_spawner/setup/distress/xeno_nest, -/turf/open/mars_cave{ - icon_state = "mars_cave_11" - }, +/turf/open/mars_cave/mars_cave_11, /area/bigredv2/caves_lambda) "rMg" = ( /obj/structure/toilet{ pixel_y = 8 }, /obj/effect/decal/cleanable/vomit, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "rMw" = ( /obj/effect/decal/cleanable/blood/oil/streak, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigred/ground/garage_workshop) "rMG" = ( /obj/structure/machinery/cm_vending/sorted/tech/comp_storage, @@ -36631,15 +27843,24 @@ pixel_x = -1; pixel_y = 5 }, -/turf/open/mars_cave{ - icon_state = "mars_cave_16" - }, +/turf/open/mars_cave/mars_cave_16, /area/bigredv2/caves/mining) "rNc" = ( /obj/effect/decal/cleanable/dirt, /obj/item/weapon/harpoon, /turf/open/floor/plating, /area/bigredv2/caves/mining) +"rNd" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/crap_item, +/turf/open/floor, +/area/bigredv2/outside/hydroponics) +"rNs" = ( +/obj/effect/landmark/nightmare{ + insert_tag = "tcomms_open" + }, +/turf/closed/wall/solaris/rock, +/area/bigredv2/caves) "rOK" = ( /obj/effect/landmark/corpsespawner/ua_riot, /obj/item/weapon/baton/loaded, @@ -36657,9 +27878,7 @@ pixel_x = 12; pixel_y = 3 }, -/turf/open/mars_cave{ - icon_state = "mars_cave_15" - }, +/turf/open/mars_cave/mars_cave_15, /area/bigredv2/caves/mining) "rPh" = ( /obj/item/ore{ @@ -36670,9 +27889,7 @@ pixel_x = -7; pixel_y = 7 }, -/turf/open/mars_cave{ - icon_state = "mars_dirt_5" - }, +/turf/open/mars_cave/mars_dirt_5, /area/bigredv2/caves/mining) "rQs" = ( /obj/structure/bed/sofa/south{ @@ -36685,23 +27902,15 @@ /area/bigredv2/oob) "rRO" = ( /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/floor{ - dir = 6; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/southeast, /area/bigredv2/outside/filtration_cave_cas) "rTq" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/eta/storage) "rTN" = ( /obj/structure/fence, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/filtration_plant) "rUn" = ( /obj/effect/decal/warning_stripes{ @@ -36734,35 +27943,35 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/caves/mining) "rVh" = ( /obj/effect/decal/cleanable/blood{ icon_state = "xgib3" }, -/turf/open/mars_cave{ - icon_state = "mars_dirt_7" - }, +/turf/open/mars_cave/mars_dirt_7, /area/bigredv2/caves/mining) +"rVE" = ( +/obj/effect/landmark/crap_item, +/turf/open/mars_cave/mars_cave_19, +/area/bigredv2/outside/n) +"rVT" = ( +/obj/structure/fence, +/turf/open/floor/asteroidwarning, +/area/bigredv2/outside/n) "rWF" = ( /obj/item/stack/cable_coil/cut{ pixel_x = 6; pixel_y = 4 }, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves/mining) "rWN" = ( /obj/effect/decal/cleanable/blood/drip{ pixel_x = -9; pixel_y = 18 }, -/turf/open/mars_cave{ - icon_state = "mars_cave_16" - }, +/turf/open/mars_cave/mars_cave_16, /area/bigredv2/caves/mining) "rXy" = ( /obj/effect/decal/cleanable/dirt, @@ -36771,32 +27980,22 @@ /obj/item/ammo_magazine/handful/shotgun/buckshot/incendiary{ pixel_y = 12 }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "rXY" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 1 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/east, /area/bigredv2/caves/lambda/research) "rYr" = ( /obj/structure/surface/table, /obj/effect/decal/cleanable/ash, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/engineering) "rYt" = ( /obj/effect/landmark/crap_item, -/turf/open/mars_cave{ - icon_state = "mars_dirt_6" - }, +/turf/open/mars_cave/mars_dirt_6, /area/bigredv2/caves_north) "rYD" = ( /obj/effect/decal/cleanable/dirt, @@ -36804,45 +28003,52 @@ dir = 1 }, /obj/structure/largecrate/supply/supplies/mre, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) +"rYS" = ( +/obj/structure/machinery/light{ + dir = 8 + }, +/obj/structure/surface/table, +/obj/effect/spawner/random/toolbox, +/turf/open/floor, +/area/bigredv2/outside/cargo) +"rZn" = ( +/turf/closed/wall/solaris/reinforced, +/area/bigredv2/outside/w) "rZQ" = ( /obj/structure/surface/table, /obj/item/reagent_container/food/snacks/csandwich, /obj/item/toy/deck/uno{ pixel_y = 18 }, -/turf/open/mars_cave{ - icon_state = "mars_cave_15" - }, +/turf/open/mars_cave/mars_cave_15, /area/bigredv2/caves/mining) +"rZU" = ( +/obj/structure/fence, +/turf/open/floor/asteroidwarning/north, +/area/bigredv2/outside/n) "sap" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; pixel_y = 1 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/bigredv2/outside/engineering) "saX" = ( /obj/structure/machinery/power/turbine, -/turf/open/floor{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/west, /area/bigredv2/outside/engineering) "sbk" = ( /obj/effect/landmark/corpsespawner/miner, /obj/effect/decal/cleanable/blood, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/caves/mining) +"sbm" = ( +/obj/structure/surface/table, +/obj/effect/spawner/random/toolbox, +/turf/open/floor/asteroidfloor/north, +/area/bigredv2/outside/space_port_lz2) "sbz" = ( /obj/structure/platform/kutjevo/rock{ dir = 8 @@ -36851,9 +28057,7 @@ /obj/structure/platform_decoration/kutjevo/rock{ dir = 1 }, -/turf/open/mars{ - icon_state = "mars_dirt_12" - }, +/turf/open/mars/mars_dirt_12, /area/space) "sbA" = ( /obj/item/frame/rack, @@ -36867,10 +28071,21 @@ /area/bigredv2/caves/mining) "sbQ" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/eta/living) +"scK" = ( +/obj/structure/platform{ + dir = 8 + }, +/turf/open/floor/asteroidfloor/north, +/area/bigredv2/outside/telecomm/n_cave) +"sdl" = ( +/obj/structure/bed/chair/comfy{ + dir = 4 + }, +/obj/structure/window, +/turf/open/floor/wood, +/area/bigredv2/outside/library) "sdP" = ( /obj/structure/largecrate/random/barrel/white, /turf/open/floor/plating, @@ -36880,14 +28095,10 @@ pixel_x = -1; pixel_y = 5 }, -/turf/open/mars_cave{ - icon_state = "mars_dirt_7" - }, +/turf/open/mars_cave/mars_dirt_7, /area/bigredv2/caves/mining) "sfI" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_23" - }, +/turf/open/mars_cave/mars_cave_23, /area/bigredv2/caves_east) "sgF" = ( /obj/structure/cable{ @@ -36896,32 +28107,36 @@ /obj/structure/cable{ icon_state = "6-8" }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "sgT" = ( /obj/item/trash/burger, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) -"shV" = ( -/turf/open/floor{ - icon_state = "asteroidwarning" +"shn" = ( +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 4 + }, +/obj/structure/machinery/door/poddoor/almayer/closed{ + dir = 4; + id = "lambda-exterior"; + name = "Lambda Checkpoint Exterior" }, +/obj/structure/blocker/forcefield/multitile_vehicles, +/turf/open/floor/delivery, +/area/bigredv2/outside/lambda_cave_cas) +"shK" = ( +/obj/structure/cargo_container/arious/right, +/turf/open/mars_cave/mars_dirt_4, +/area/bigredv2/outside/space_port_lz2) +"shV" = ( +/turf/open/floor/asteroidwarning, /area/bigred/ground/garage_workshop) "siu" = ( -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/bigredv2/outside/eta) "siM" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_18" - }, +/turf/open/mars_cave/mars_cave_18, /area/bigredv2/outside/lz1_telecomm_cas) "ski" = ( /turf/open/mars_cave, @@ -36930,21 +28145,14 @@ /obj/effect/decal/cleanable/blood{ icon_state = "xgib4" }, -/turf/open/mars_cave{ - icon_state = "mars_dirt_5" - }, +/turf/open/mars_cave/mars_dirt_5, /area/bigredv2/caves/mining) "slC" = ( -/turf/open/floor{ - dir = 1; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/darkyellowcorners2/north, /area/bigredv2/outside/engineering) "slG" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/engineering) "smh" = ( /obj/structure/blocker/forcefield/multitile_vehicles, @@ -36952,9 +28160,7 @@ /area/bigredv2/caves_north) "smy" = ( /obj/item/stack/cable_coil/cut, -/turf/open/mars_cave{ - icon_state = "mars_cave_13" - }, +/turf/open/mars_cave/mars_cave_13, /area/bigredv2/caves/mining) "smF" = ( /obj/structure/bed/chair{ @@ -36962,29 +28168,20 @@ pixel_x = 13; pixel_y = 10 }, -/turf/open/mars_cave{ - icon_state = "mars_cave_16" - }, +/turf/open/mars_cave/mars_cave_16, /area/bigredv2/caves/mining) "smO" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_9" - }, +/turf/open/mars_cave/mars_cave_9, /area/bigredv2/outside/lz1_north_cas) "snk" = ( /obj/item/tank/air, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/outside/filtration_cave_cas) "snv" = ( /obj/structure/machinery/light_construct{ dir = 4 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/bigredv2/outside/engineering) "sog" = ( /obj/item/explosive/grenade/slug/baton{ @@ -37009,10 +28206,7 @@ icon_state = "4-8" }, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "sqc" = ( /obj/effect/decal/cleanable/blood{ @@ -37022,27 +28216,22 @@ icon_state = "grenade_custom"; name = "M55C Teargas grenade" }, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/caves/mining) "sqj" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_10" - }, +/turf/open/mars_cave/mars_cave_10, /area/bigredv2/caves_research) +"sqt" = ( +/obj/effect/landmark/lv624/xeno_tunnel, +/turf/open/floor/asteroidfloor/north, +/area/bigredv2/outside/ne) "sqQ" = ( /obj/item/paper/bigred/them, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "sso" = ( /obj/structure/bed/chair, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves/mining) "ssE" = ( /obj/structure/window/framed/solaris, @@ -37050,20 +28239,18 @@ /area/bigredv2/caves) "ssI" = ( /obj/structure/prop/dam/truck/damaged, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/outside/s) "ssO" = ( /obj/item/weapon/twohanded/folded_metal_chair, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves/mining) +"stZ" = ( +/obj/effect/landmark/static_comms/net_two, +/turf/open/floor/bcircuit, +/area/bigredv2/outside/telecomm/lz2_cave) "sus" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_23" - }, +/turf/open/mars_cave/mars_cave_23, /area/bigredv2/caves_research) "suD" = ( /obj/structure/prop/almayer/cannon_cables{ @@ -37092,31 +28279,25 @@ pixel_x = -5; pixel_y = 25 }, -/turf/open/shuttle/escapepod{ - icon_state = "floor1" - }, +/turf/open/shuttle/escapepod/floor1, /area/bigredv2/oob) "suV" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/engidoor{ dir = 1; name = "\improper Engineering Workshop" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigred/ground/garage_workshop) -"svp" = ( -/obj/structure/surface/table, -/obj/effect/spawner/random/technology_scanner, -/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor, -/area/bigredv2/outside/cargo) +"swk" = ( +/obj/structure/machinery/light{ + dir = 4 + }, +/turf/open/floor/asteroidwarning/west, +/area/bigredv2/outside/w) "swJ" = ( /obj/structure/surface/table, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/bigredv2/outside/virology) "sxs" = ( /obj/effect/decal/cleanable/blood/drip{ @@ -37126,63 +28307,45 @@ /obj/effect/decal/cleanable/blood/drip{ pixel_x = 6 }, -/turf/open/mars_cave{ - icon_state = "mars_cave_17" - }, +/turf/open/mars_cave/mars_cave_17, /area/bigredv2/caves/mining) "syi" = ( /obj/structure/surface/table, /obj/item/device/radio{ pixel_y = 8 }, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves/mining) "syu" = ( /obj/effect/decal/cleanable/blood{ icon_state = "xgib3" }, -/turf/open/mars_cave{ - icon_state = "mars_cave_16" - }, +/turf/open/mars_cave/mars_cave_16, /area/bigredv2/caves/mining) -"szg" = ( -/obj/structure/machinery/door/poddoor/almayer/closed{ - dir = 4; - id = "lambda"; - name = "Lambda Lockdown" - }, -/turf/open/floor{ - icon_state = "delivery" - }, -/area/bigredv2/caves_lambda) "szi" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "darkred2" - }, +/turf/open/floor/darkred2, /area/bigredv2/outside/admin_building) "szw" = ( -/turf/open/mars_cave{ - icon_state = "mars_dirt_6" - }, +/turf/open/mars_cave/mars_dirt_6, /area/bigredv2/caves/mining) "szy" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 8; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/darkyellowcorners2/west, /area/bigredv2/outside/engineering) +"szZ" = ( +/obj/structure/window/reinforced/tinted, +/obj/structure/machinery/shower{ + dir = 8 + }, +/turf/open/floor/freezerfloor, +/area/bigredv2/outside/dorms) "sAG" = ( /obj/effect/landmark/hunter_primary, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves_sw) "sAS" = ( /obj/item/toy/prize/fireripley{ @@ -37198,27 +28361,19 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/engineering) "sBu" = ( /obj/effect/landmark/hunter_secondary, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves_east) "sCj" = ( /obj/item/stack/cable_coil/cut, -/turf/open/mars_cave{ - icon_state = "mars_cave_17" - }, +/turf/open/mars_cave/mars_cave_17, /area/bigredv2/caves/mining) "sCt" = ( -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/bigredv2/outside/engineering) "sDs" = ( /obj/structure/closet/crate/miningcar, @@ -37228,66 +28383,63 @@ /obj/item/ammo_magazine/smg/nailgun, /obj/item/ammo_magazine/smg/nailgun, /obj/item/ammo_magazine/smg/nailgun, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "sDC" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_9" - }, +/turf/open/mars_cave/mars_cave_9, /area/bigredv2/caves_sw) "sDO" = ( /obj/structure/machinery/power/port_gen/pacman, -/turf/open/floor{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/west, /area/bigredv2/outside/engineering) "sDZ" = ( /obj/effect/decal/cleanable/dirt, /obj/item/clothing/head/welding, -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/bigredv2/outside/engineering) +"sEb" = ( +/obj/structure/filingcabinet{ + density = 0; + pixel_x = 8; + pixel_y = 3 + }, +/turf/open/floor/wood, +/area/bigredv2/outside/library) +"sEh" = ( +/turf/open/floor/asteroidwarning, +/area/bigredv2/outside/e) "sEi" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/floor{ - dir = 8; - icon_state = "darkgreencorners2" - }, +/turf/open/floor/darkgreencorners2/west, /area/bigredv2/caves/eta/research) +"sFv" = ( +/turf/open/floor/asteroidwarning/north, +/area/bigredv2/caves_north) "sFW" = ( /obj/effect/decal/cleanable/blood/oil/streak, -/turf/open/mars_cave{ - icon_state = "mars_cave_17" - }, +/turf/open/mars_cave/mars_cave_17, /area/bigredv2/caves/mining) "sGi" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_5" - }, +/turf/open/mars_cave/mars_cave_5, /area/bigredv2/outside/lz1_telecomm_cas) "sGT" = ( /obj/item/tool/weldpack, /obj/item/frame/rack, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "sHz" = ( /obj/item/ore{ pixel_x = 9; pixel_y = 13 }, -/turf/open/mars_cave{ - icon_state = "mars_dirt_6" - }, +/turf/open/mars_cave/mars_dirt_6, /area/bigredv2/caves/mining) +"sHO" = ( +/obj/effect/landmark/crap_item, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood, +/area/bigredv2/outside/library) "sIh" = ( /obj/effect/landmark/nightmare{ insert_tag = "lambda-cave-extratunnel" @@ -37297,33 +28449,22 @@ "sIP" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/mars_cave{ - icon_state = "mars_cave_5" - }, +/turf/open/mars_cave/mars_cave_5, /area/bigredv2/caves_se) "sIY" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/c) "sJq" = ( /obj/structure/fence, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/north, /area/bigredv2/outside/filtration_cave_cas) "sLr" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_11" - }, +/turf/open/mars_cave/mars_cave_11, /area/bigredv2/caves_se) "sLy" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves_sw) "sLS" = ( /obj/structure/machinery/suit_storage_unit/carbon_unit, @@ -37331,45 +28472,30 @@ /area/bigredv2/outside/admin_building) "sNP" = ( /obj/structure/window/framed/solaris, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, +/turf/open/floor/plating/panelscorched, /area/bigredv2/outside/engineering) "sNQ" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_11" - }, +/turf/open/mars_cave/mars_cave_11, /area/bigredv2/caves_lambda) "sOi" = ( /obj/structure/airlock_assembly, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "sOE" = ( /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/mars_cave{ - icon_state = "mars_cave_6" - }, +/turf/open/mars_cave/mars_cave_6, /area/bigredv2/outside/lz1_telecomm_cas) "sON" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_10" - }, +/turf/open/mars_cave/mars_cave_10, /area/bigredv2/caves_east) "sPv" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/bar) "sQw" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_23" - }, +/turf/open/mars_cave/mars_cave_23, /area/bigredv2/outside/lz1_telecomm_cas) "sRy" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -37378,62 +28504,87 @@ /obj/structure/machinery/door/airlock/almayer/command/colony{ name = "\improper Operations Meeting Room" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/admin_building) -"sSU" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_19" +"sRV" = ( +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 4 }, +/turf/open/floor/asteroidwarning/north, +/area/bigredv2/caves_lambda) +"sSU" = ( +/turf/open/mars_cave/mars_cave_19, /area/bigredv2/outside/lz2_south_cas) +"sSY" = ( +/obj/structure/pipes/standard/simple/hidden/green, +/obj/structure/bed/chair/comfy{ + dir = 4 + }, +/turf/open/floor/wood, +/area/bigredv2/outside/library) "sUQ" = ( /obj/structure/machinery/photocopier, /turf/open/floor/wood, /area/bigredv2/caves/lambda/breakroom) +"sVk" = ( +/obj/effect/decal/remains/human, +/turf/open/floor/asteroidwarning/north, +/area/bigredv2/outside/lambda_cave_cas) +"sVB" = ( +/obj/structure/window_frame/solaris, +/turf/open/floor/plating, +/area/bigredv2/outside/marshal_office) +"sVM" = ( +/obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, +/obj/effect/landmark/structure_spawner/setup/distress/xeno_door, +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 4 + }, +/turf/open/floor/asteroidfloor/north, +/area/bigredv2/caves_lambda) "sWa" = ( /obj/item/ore{ pixel_x = 12; pixel_y = 13 }, -/turf/open/mars_cave{ - icon_state = "mars_dirt_7" - }, +/turf/open/mars_cave/mars_dirt_7, /area/bigredv2/caves/mining) +"sWh" = ( +/obj/structure/platform_decoration, +/obj/structure/machinery/power/apc{ + dir = 1; + start_charge = 0 + }, +/turf/open/floor/asteroidfloor/north, +/area/bigredv2/outside/telecomm/n_cave) "sWS" = ( /obj/structure/largecrate/random/barrel/white, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) +"sXd" = ( +/obj/effect/landmark/nightmare{ + insert_tag = "prison_breakout" + }, +/turf/closed/wall/solaris/reinforced, +/area/bigredv2/outside/marshal_office) "sXv" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/blood/drip{ pixel_x = 2; pixel_y = 17 }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "sYL" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_8" - }, +/turf/open/mars_cave/mars_cave_8, /area/bigredv2/outside/lambda_cave_cas) "sYR" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /obj/item/stack/cable_coil/cut, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves/mining) "sZh" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_15" - }, +/turf/open/mars_cave/mars_cave_15, /area/bigredv2/caves/mining) "sZi" = ( /obj/effect/decal/warning_stripes{ @@ -37442,9 +28593,7 @@ /obj/structure/prop/invuln/minecart_tracks{ dir = 1 }, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/caves/mining) "taf" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -37452,16 +28601,23 @@ }, /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/eta/xenobiology) "tap" = ( /obj/structure/machinery/message_server, -/turf/open/floor{ - icon_state = "podhatchfloor" - }, +/turf/open/floor/podhatchfloor, /area/bigredv2/outside/admin_building) +"taV" = ( +/obj/structure/closet/coffin/woodencrate, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/asteroidfloor/north, +/area/bigredv2/outside/n) +"tbS" = ( +/obj/structure/morgue{ + dir = 1 + }, +/turf/open/floor/whiteblue, +/area/bigredv2/outside/medical) "tcb" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/pizzabox/meat, @@ -37469,46 +28625,32 @@ /area/bigred/ground/garage_workshop) "tcq" = ( /obj/item/explosive/grenade/baton, -/turf/open/mars_cave{ - icon_state = "mars_cave_3" - }, +/turf/open/mars_cave/mars_cave_3, /area/bigredv2/caves_research) "tcP" = ( /obj/effect/decal/cleanable/dirt/greenglow, /turf/closed/wall/solaris/reinforced, /area/bigredv2/outside/engineering) -"tdn" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 6 - }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, -/area/bigredv2/caves_lambda) "tdp" = ( /obj/effect/decal/cleanable/blood{ icon_state = "xgib4" }, -/turf/open/mars_cave{ - icon_state = "mars_cave_16" - }, +/turf/open/mars_cave/mars_cave_16, /area/bigredv2/caves/mining) +"tdz" = ( +/obj/effect/decal/cleanable/blood/gibs/limb, +/turf/open/floor/grimy, +/area/bigredv2/outside/dorms) "tdB" = ( /obj/structure/tunnel{ id = "hole1" }, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves_se) "tdN" = ( /obj/structure/surface/table, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 9; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/northwest, /area/bigredv2/outside/engineering) "tdZ" = ( /obj/item/tool/pickaxe/drill, @@ -37530,10 +28672,7 @@ icon_state = "4-8"; name = "heavy duty power cable" }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "tff" = ( /obj/effect/decal/cleanable/blood{ @@ -37543,9 +28682,7 @@ pixel_x = 12; pixel_y = 3 }, -/turf/open/mars_cave{ - icon_state = "mars_cave_16" - }, +/turf/open/mars_cave/mars_cave_16, /area/bigredv2/caves/mining) "tfp" = ( /obj/structure/prop/almayer/computers/sensor_computer1{ @@ -37558,10 +28695,7 @@ /obj/structure/cable{ icon_state = "11-10" }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "tft" = ( /obj/structure/blocker/forcefield/multitile_vehicles, @@ -37571,23 +28705,17 @@ /obj/effect/decal/cleanable/ash, /turf/open/floor/plating, /area/bigredv2/caves/mining) -"tgk" = ( -/obj/structure/surface/table, -/obj/structure/machinery/computer/shuttle/dropship/flight/lz2{ - dir = 4 - }, +"tgf" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/machinery/vending/snack, /turf/open/floor, -/area/bigredv2/landing/console2) +/area/bigredv2/outside/general_offices) "tgF" = ( /obj/effect/spawner/random/tool, -/turf/open/shuttle/escapepod{ - icon_state = "floor5" - }, +/turf/open/shuttle/escapepod/floor5, /area/bigredv2/oob) "tgL" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_6" - }, +/turf/open/mars_cave/mars_cave_6, /area/bigredv2/caves_se) "tiD" = ( /obj/effect/decal/cleanable/blood{ @@ -37596,9 +28724,7 @@ }, /obj/effect/decal/cleanable/blood, /obj/item/weapon/gun/pistol/highpower, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/caves/mining) "tju" = ( /obj/structure/machinery/shower{ @@ -37607,24 +28733,30 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/bigredv2/outside/engineering) +"tjX" = ( +/turf/open/mars_cave/mars_cave_7, +/area/bigredv2/outside/n) "tkN" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 5 }, -/turf/open/floor{ - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2, /area/bigredv2/caves/lambda/research) -"tlj" = ( -/obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/mars_cave{ - icon_state = "mars_cave_15" +"tkY" = ( +/obj/structure/noticeboard{ + desc = "A board for pinning important items upon."; + dir = 1; + name = "trophy board"; + pixel_y = 30 }, -/area/bigredv2/outside/lz1_north_cas) +/obj/item/oldresearch/Chitin{ + anchored = 1; + pixel_y = 27 + }, +/turf/open/floor/elevatorshaft/north, +/area/bigredv2/caves/lambda/breakroom) "tlP" = ( /obj/structure/machinery/cm_vending/sorted/tech/tool_storage, /obj/structure/machinery/light{ @@ -37632,24 +28764,33 @@ }, /turf/open/floor, /area/bigred/ground/garage_workshop) +"tlU" = ( +/obj/structure/surface/table, +/obj/structure/window, +/obj/structure/machinery/computer/emails{ + dir = 8; + pixel_y = 4 + }, +/turf/open/floor/wood, +/area/bigredv2/outside/library) "tmH" = ( /obj/structure/closet/crate, /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/dorms) "tnd" = ( /obj/effect/decal/cleanable/blood/drip{ pixel_x = -3; pixel_y = 11 }, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/caves_research) +"tnG" = ( +/obj/structure/blocker/forcefield/multitile_vehicles, +/turf/open/mars_cave/mars_cave_2, +/area/bigredv2/outside/n) "toA" = ( /obj/effect/decal/cleanable/dirt, /obj/item/prop/alien/hugger, @@ -37661,43 +28802,41 @@ pixel_x = 13; pixel_y = 10 }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) +"tpU" = ( +/obj/structure/pipes/standard/simple/hidden/green, +/obj/structure/machinery/portable_atmospherics/hydroponics, +/turf/open/floor/whitegreenfull, +/area/bigredv2/outside/hydroponics) +"tpY" = ( +/obj/structure/lz_sign/solaris_sign, +/turf/open/mars, +/area/bigredv2/outside/space_port_lz2) "tqi" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_19" - }, +/turf/open/mars_cave/mars_cave_19, /area/bigredv2/caves/mining) +"tqS" = ( +/turf/closed/wall/solaris/reinforced, +/area/bigredv2/caves_north) "trk" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_13" - }, +/turf/open/mars_cave/mars_cave_13, /area/bigredv2/caves_sw) "trr" = ( /obj/structure/surface/table, /obj/effect/spawner/random/tool, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/bigredv2/outside/engineering) "trW" = ( /obj/item/clothing/suit/storage/hazardvest, /obj/effect/decal/cleanable/blood, /obj/item/clothing/head/hardhat, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/caves/mining) "tsc" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves/mining) "tsy" = ( /obj/effect/decal/cleanable/dirt{ @@ -37726,23 +28865,16 @@ "tsB" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /obj/effect/landmark/xeno_spawn, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves_east) "tsK" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_14" - }, +/turf/open/mars_cave/mars_cave_14, /area/bigredv2/outside/lz2_south_cas) "tub" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor{ - dir = 10; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/southwest, /area/bigredv2/outside/engineering) "tuu" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -37753,65 +28885,41 @@ dir = 4; health = 25000 }, -/turf/open/floor{ - dir = 8; - icon_state = "loadingarea" - }, +/turf/open/floor/loadingarea/west, /area/bigredv2/outside/cargo) "tuN" = ( /obj/structure/machinery/light/small, /turf/open/mars_cave, /area/bigredv2/caves/mining) "tvh" = ( -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/east, /area/bigredv2/outside/lz2_south_cas) "tvH" = ( /obj/structure/machinery/compressor{ dir = 1 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/bigredv2/outside/engineering) -"twS" = ( -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/telecomm/lz2_cave) "tzJ" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony{ name = "\improper Engine Reactor Control" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/bigredv2/outside/engineering) "tAe" = ( /obj/structure/bed, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/caves/eta/living) "tAW" = ( /obj/effect/landmark/lv624/xeno_tunnel, -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/east, /area/bigredv2/outside/ne) "tBb" = ( /obj/structure/prop/invuln/minecart_tracks{ dir = 1 }, -/turf/open/mars_cave{ - icon_state = "mars_cave_9" - }, +/turf/open/mars_cave/mars_cave_9, /area/bigredv2/caves/mining) "tBf" = ( /obj/structure/largecrate/random/barrel, @@ -37832,16 +28940,10 @@ /obj/structure/cable{ icon_state = "5-9" }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "tBD" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "w-y1" - }, +/turf/open/floor/almayer/w_y1/north, /area/bigredv2/outside/admin_building) "tBK" = ( /obj/structure/surface/rack, @@ -37855,10 +28957,7 @@ /obj/item/tool/pickaxe{ pixel_y = 4 }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "tCh" = ( /obj/structure/machinery/door/poddoor/almayer/closed, @@ -37873,9 +28972,7 @@ pixel_x = 12; pixel_y = 3 }, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves/mining) "tDk" = ( /obj/structure/machinery/light/double{ @@ -37885,55 +28982,44 @@ /area/bigredv2/caves/mining) "tDl" = ( /obj/structure/machinery/power/apc, -/turf/open/floor{ - dir = 8; - icon_state = "darkredcorners2" - }, +/turf/open/floor/darkredcorners2/west, /area/bigredv2/caves/eta/xenobiology) "tDv" = ( /obj/effect/landmark/crap_item, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/outside/lz2_west_cas) "tEc" = ( /obj/structure/machinery/light/small, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/caves_research) -"tFM" = ( -/obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, -/area/bigredv2/caves_north) +"tFt" = ( +/obj/structure/surface/table, +/obj/structure/machinery/light, +/turf/open/floor/freezerfloor, +/area/bigredv2/outside/general_offices) "tFO" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 1 }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/caves/lambda/breakroom) "tHl" = ( /obj/structure/reagent_dispensers/watertank, -/turf/open/mars{ - icon_state = "mars_dirt_10" +/turf/open/mars/mars_dirt_10, +/area/bigredv2/outside/c) +"tHB" = ( +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 10 }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/c) "tIq" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/mars_cave{ - icon_state = "mars_cave_7" - }, +/turf/open/mars_cave/mars_cave_7, /area/bigredv2/caves_lambda) "tIv" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/west, /area/bigredv2/outside/filtration_plant) "tIA" = ( /obj/structure/surface/rack, @@ -37952,26 +29038,20 @@ icon_state = "E"; pixel_x = 1 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/admin_building) "tJv" = ( /obj/structure/tunnel{ id = "hole3" }, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/caves/mining) "tKr" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/filtration_plant) "tKC" = ( /obj/structure/surface/table, @@ -37987,42 +29067,44 @@ pixel_y = 8 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "tKR" = ( -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/hydroponics) "tLt" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_14" - }, +/turf/open/mars_cave/mars_cave_14, /area/bigredv2/caves_north) +"tLO" = ( +/obj/structure/machinery/computer/med_data{ + density = 0; + pixel_y = 16 + }, +/turf/open/floor/white, +/area/bigredv2/outside/medical) +"tMa" = ( +/obj/structure/surface/table, +/obj/effect/spawner/random/technology_scanner, +/turf/open/floor/asteroidfloor/north, +/area/bigredv2/outside/space_port_lz2) "tNz" = ( /obj/effect/decal/warning_stripes{ icon_state = "E-corner" }, -/turf/open/mars_cave{ - icon_state = "mars_cave_7" - }, +/turf/open/mars_cave/mars_cave_7, /area/bigredv2/outside/filtration_cave_cas) "tOh" = ( /obj/structure/surface/table, /obj/item/device/megaphone, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves/mining) -"tPr" = ( -/obj/effect/landmark/lv624/xeno_tunnel, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, -/area/bigredv2/outside/ne) +"tQg" = ( +/obj/structure/cargo_container/horizontal/blue/bottom, +/turf/open/mars, +/area/bigredv2/outside/space_port_lz2) +"tQj" = ( +/turf/open/mars_cave/mars_cave_20, +/area/bigredv2/caves_lambda) "tQo" = ( /obj/effect/decal/cleanable/dirt, /obj/item/ore/uranium{ @@ -38030,15 +29112,10 @@ pixel_x = -7; pixel_y = 4 }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg2" - }, +/turf/open/floor/plating/platingdmg2/west, /area/bigredv2/caves/mining) "tQw" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves_lambda) "tRd" = ( /obj/structure/prop/invuln/minecart_tracks{ @@ -38048,15 +29125,10 @@ icon_state = "intact"; name = "Pipe" }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "tRI" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_7" - }, +/turf/open/mars_cave/mars_cave_7, /area/bigredv2/caves_research) "tRV" = ( /obj/item/ore/uranium{ @@ -38072,69 +29144,58 @@ /obj/item/ore/uranium{ desc = "You feel fuzzy just looking at it.... it's slightly lumanesant" }, -/turf/open/mars_cave{ - icon_state = "mars_cave_14" - }, +/turf/open/mars_cave/mars_cave_14, /area/bigredv2/caves/mining) "tSI" = ( /obj/structure/platform/shiva{ dir = 8 }, -/turf/open/floor/bluegrid{ - icon_state = "bcircuitoff" - }, +/turf/open/floor/bluegrid/bcircuitoff, /area/bigredv2/caves/lambda/research) "tTI" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/engineering) "tUL" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/hefa_cult_decals/d32, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) +"tUY" = ( +/obj/structure/machinery/light{ + dir = 4 + }, +/turf/open/floor/asteroidwarning/west, +/area/bigredv2/outside/space_port_lz2) "tVn" = ( /obj/item/tool/lighter/zippo, /turf/open/floor, /area/bigred/ground/garage_workshop) "tVp" = ( -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/outside/space_port_lz2) "tVy" = ( /obj/effect/decal/cleanable/blood/drip{ pixel_y = 6 }, -/turf/open/mars_cave{ - icon_state = "mars_cave_15" - }, +/turf/open/mars_cave/mars_cave_15, /area/bigredv2/caves/mining) +"tWf" = ( +/obj/structure/cargo_container/arious/leftmid, +/turf/open/mars_cave/mars_dirt_4, +/area/bigredv2/outside/space_port_lz2) "tWS" = ( /obj/effect/landmark/item_pool_spawner/survivor_ammo, -/turf/open/mars_cave{ - icon_state = "mars_cave_13" - }, +/turf/open/mars_cave/mars_cave_13, /area/bigredv2/caves/mining) "tZU" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/mineral/processing_unit, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "uaB" = ( -/turf/open/floor{ - dir = 8; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/west, /area/bigredv2/caves/lambda/research) "uaS" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -38143,80 +29204,68 @@ /obj/structure/machinery/door/airlock/almayer/engineering/colony{ name = "\improper Engine Reactor Control" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/bigredv2/outside/engineering) "ubY" = ( /obj/structure/barricade/wooden, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/caves/mining) +"ucl" = ( +/obj/structure/cargo_container/arious/rightmid, +/turf/open/mars, +/area/bigredv2/outside/space_port_lz2) "ucH" = ( /turf/open/mars_cave, /area/bigredv2/caves_virology) "ucN" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_4" - }, +/turf/open/mars_cave/mars_cave_4, /area/bigredv2/caves_se) "ueL" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/window/framed/solaris, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, +/turf/open/floor/plating/panelscorched, /area/bigredv2/outside/engineering) +"ufc" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/asteroidwarning/east, +/area/bigredv2/outside/space_port_lz2) "ufu" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "ufB" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/floor{ - icon_state = "darkgreencorners2" - }, +/turf/open/floor/darkgreencorners2, /area/bigredv2/caves/eta/research) -"ufD" = ( -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/sw) +"ugc" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/largecrate/random/barrel, +/turf/open/floor, +/area/bigredv2/outside/cargo) "ugW" = ( /obj/structure/machinery/light/small, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "uij" = ( -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/west, /area/bigredv2/outside/filtration_cave_cas) "uiE" = ( /obj/structure/bed/chair{ dir = 8; pixel_y = 3 }, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves/mining) +"ujq" = ( +/obj/structure/bed/roller, +/turf/open/floor/whitegreen/northwest, +/area/bigredv2/outside/medical) "ujC" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves_lambda) "ujD" = ( /obj/structure/machinery/door/poddoor/almayer/closed{ @@ -38224,9 +29273,7 @@ id = "filtration"; name = "Filtration Lockdown" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/filtration_cave_cas) "ujU" = ( /obj/item/ammo_magazine/handful/shotgun/custom_color{ @@ -38235,10 +29282,14 @@ name = "handful of HE/FRAG shells (12g)"; pixel_y = 3 }, -/turf/open/shuttle/escapepod{ - icon_state = "floor5" - }, +/turf/open/shuttle/escapepod/floor5, /area/bigredv2/oob) +"ukv" = ( +/turf/open/mars_cave/mars_cave_15, +/area/bigredv2/caves_lambda) +"ukW" = ( +/turf/open/mars_cave/mars_cave_20, +/area/bigredv2/outside/ne) "ulk" = ( /obj/structure/prop/invuln/minecart_tracks{ desc = "A heavy duty power cable for high voltage applications"; @@ -38247,16 +29298,25 @@ icon_state = "4-8"; name = "heavy duty power cable" }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "ulH" = ( /obj/effect/decal/cleanable/dirt, /obj/item/device/flashlight/on, /turf/open/floor/plating, /area/bigredv2/caves/mining) +"ume" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/obj/structure/machinery/door_control{ + id = "Medical"; + name = "Storm Shutters"; + pixel_y = 32 + }, +/obj/structure/bed, +/turf/open/floor/white, +/area/bigredv2/outside/medical) "umK" = ( /obj/effect/decal/cleanable/blood/drip{ pixel_x = -8; @@ -38265,20 +29325,18 @@ /obj/effect/decal/cleanable/blood/drip{ pixel_x = 6 }, -/turf/open/mars_cave{ - icon_state = "mars_cave_16" - }, +/turf/open/mars_cave/mars_cave_16, /area/bigredv2/caves/mining) "unC" = ( -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/telecomm/lz2_cave) +"unS" = ( +/obj/structure/pipes/standard/simple/hidden/green, +/turf/open/floor/carpet, +/area/bigredv2/outside/library) "uoj" = ( /obj/effect/decal/remains/human, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/bigredv2/caves_lambda) "upE" = ( /obj/effect/decal/cleanable/dirt, @@ -38287,23 +29345,16 @@ "upV" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/admin_building) "urn" = ( /obj/structure/surface/table, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 6; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/southeast, /area/bigredv2/outside/filtration_plant) "usg" = ( /obj/item/tool/warning_cone, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/bigredv2/outside/c) "ust" = ( /obj/effect/decal/cleanable/blood/drip{ @@ -38314,88 +29365,67 @@ /turf/open/floor/plating, /area/bigredv2/caves/mining) "usG" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_18" - }, +/turf/open/mars_cave/mars_cave_18, /area/bigredv2/caves_east) -"uuo" = ( -/obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/mars_cave{ - icon_state = "mars_cave_18" - }, -/area/bigredv2/outside/lambda_cave_cas) "uuO" = ( /obj/item/shard{ icon_state = "small" }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "uvl" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves/lambda/xenobiology) "uvz" = ( -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/north, /area/bigred/ground/garage_workshop) "uvZ" = ( -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/outside/filtration_plant) +"uwV" = ( +/obj/effect/decal/cleanable/dirt, +/turf/closed/wall/solaris/reinforced, +/area/bigredv2/outside/general_offices) "uxx" = ( /obj/structure/machinery/door/poddoor/almayer/closed, /turf/open/floor/plating, /area/bigredv2/caves/mining) -"uyk" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_7" +"uyd" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W"; + pixel_x = -1 }, +/turf/open/floor/asteroidwarning/east, +/area/bigredv2/outside/telecomm/lz2_cave) +"uyk" = ( +/turf/open/mars_cave/mars_cave_7, /area/bigredv2/outside/lz2_west_cas) "uzv" = ( /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/mars_cave{ - icon_state = "mars_dirt_7" - }, +/turf/open/mars_cave/mars_dirt_7, /area/bigredv2/outside/lz1_north_cas) "uzB" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/blood/oil, /obj/item/device/flashlight/lantern, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "uBi" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/engineering) +"uBP" = ( +/obj/structure/cargo_container/arious/leftmid, +/turf/open/mars, +/area/bigredv2/outside/space_port_lz2) "uCa" = ( /obj/effect/landmark/corpsespawner/miner, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) -"uCD" = ( -/obj/effect/landmark/nightmare{ - insert_tag = "reactor" - }, -/turf/closed/wall/solaris/rock, -/area/bigredv2/caves) "uDn" = ( /obj/structure/sign/safety/west, /obj/structure/sign/safety/hazard{ @@ -38403,11 +29433,16 @@ }, /turf/closed/wall/wood, /area/bigredv2/caves/mining) +"uDt" = ( +/obj/structure/surface/table, +/obj/item/bodybag, +/obj/item/bodybag, +/obj/item/bodybag, +/turf/open/floor/whitegreen/north, +/area/bigredv2/outside/medical) "uDA" = ( /obj/item/stack/sheet/glass, -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/bigredv2/outside/engineering) "uDI" = ( /obj/structure/prop/invuln/minecart_tracks{ @@ -38416,18 +29451,13 @@ icon_state = "map"; name = "Pipe manifold" }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "uDZ" = ( /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves/mining) "uFi" = ( /obj/item/paper/bigred/finance{ @@ -38446,40 +29476,29 @@ pixel_x = 2; pixel_y = 6 }, -/turf/open/mars_cave{ - icon_state = "mars_cave_9" - }, +/turf/open/mars_cave/mars_cave_9, /area/bigredv2/caves/mining) "uFF" = ( /obj/effect/decal/cleanable/blood/drip{ pixel_x = 6 }, -/turf/open/mars_cave{ - icon_state = "mars_cave_15" - }, +/turf/open/mars_cave/mars_cave_15, /area/bigredv2/caves/mining) "uGs" = ( /obj/structure/surface/table, /obj/effect/decal/cleanable/ash, -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/bigredv2/outside/engineering) "uGz" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/floor{ - icon_state = "darkredcorners2" - }, +/turf/open/floor/darkredcorners2, /area/bigredv2/caves/eta/xenobiology) "uHE" = ( /obj/item/tool/warning_cone{ pixel_y = 19 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/filtration_plant) "uHQ" = ( /turf/closed/wall/solaris/reinforced, @@ -38487,35 +29506,28 @@ "uHT" = ( /obj/effect/decal/cleanable/dirt, /obj/item/stack/cable_coil/cut, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) +"uIz" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/asteroidwarning/southeast, +/area/bigredv2/outside/telecomm/n_cave) "uIB" = ( /obj/effect/vehicle_spawner/van/decrepit, /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigred/ground/garage_workshop) "uJj" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/bigredv2/outside/engineering) "uJu" = ( /obj/item/robot_parts/robot_component/diagnosis_unit{ pixel_y = 15 }, -/turf/open/mars_cave{ - icon_state = "mars_dirt_5" - }, +/turf/open/mars_cave/mars_dirt_5, /area/bigredv2/caves/mining) "uJF" = ( /obj/structure/machinery/power/apc{ @@ -38529,19 +29541,14 @@ /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves/mining) "uKH" = ( /obj/structure/stairs/perspective{ dir = 6; icon_state = "p_stair_full" }, -/turf/open/floor{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/north, /area/bigredv2/outside/admin_building) "uNW" = ( /obj/effect/decal/cleanable/blood{ @@ -38553,22 +29560,16 @@ }, /obj/effect/landmark/corpsespawner/miner, /obj/effect/decal/cleanable/blood, -/turf/open/mars_cave{ - icon_state = "mars_cave_13" - }, +/turf/open/mars_cave/mars_cave_13, /area/bigredv2/caves/mining) "uPm" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_5" - }, +/turf/open/mars_cave/mars_cave_5, /area/bigredv2/caves_se) "uPF" = ( /obj/structure/machinery/filtration/console{ pixel_y = 13 }, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/caves/mining) "uPK" = ( /obj/structure/platform/shiva{ @@ -38578,9 +29579,7 @@ /obj/structure/machinery/light/small/built{ dir = 4 }, -/turf/open/floor/bluegrid{ - icon_state = "bcircuitoff" - }, +/turf/open/floor/bluegrid/bcircuitoff, /area/bigredv2/caves/lambda/research) "uRE" = ( /obj/effect/landmark/nightmare{ @@ -38589,91 +29588,67 @@ /turf/closed/wall/solaris/reinforced, /area/bigredv2/outside/admin_building) "uSf" = ( -/turf/open/shuttle/escapepod{ - icon_state = "floor1" - }, +/turf/open/shuttle/escapepod/floor1, /area/bigredv2/oob) "uSt" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/eta/research) "uSC" = ( -/turf/open/mars{ - icon_state = "mars_dirt_10" - }, +/turf/open/mars/mars_dirt_10, /area/bigredv2/outside/space_port_lz2) -"uTO" = ( -/obj/structure/machinery/pipedispenser, -/turf/open/floor{ +"uST" = ( +/obj/structure/machinery/door/airlock/almayer/maint/colony{ dir = 1; - icon_state = "darkyellow2" + name = "\improper Medical Clinic Power Station" }, +/turf/open/floor/delivery, +/area/bigredv2/outside/medical) +"uTO" = ( +/obj/structure/machinery/pipedispenser, +/turf/open/floor/darkyellow2/north, /area/bigredv2/outside/filtration_plant) "uUV" = ( /obj/structure/prop/server_equipment/yutani_server/broken, /turf/open/floor/greengrid, /area/bigredv2/caves/lambda/research) "uVe" = ( -/turf/open/floor{ - dir = 10; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/southwest, /area/bigredv2/outside/filtration_cave_cas) +"uVi" = ( +/obj/structure/surface/table, +/obj/item/clothing/under/lightbrown, +/turf/open/floor/freezerfloor, +/area/bigredv2/outside/general_offices) "uVn" = ( /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/mars_cave{ - icon_state = "mars_cave_7" - }, +/turf/open/mars_cave/mars_cave_7, /area/bigredv2/caves_sw) "uWo" = ( /obj/structure/pipes/standard/manifold/fourway/hidden/green, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/eta/living) "uXW" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_8" - }, +/turf/open/mars_cave/mars_cave_8, /area/bigredv2/caves_research) "uYb" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_3" - }, +/turf/open/mars_cave/mars_cave_3, /area/bigredv2/caves_sw) "vbi" = ( -/turf/open/floor{ - dir = 5; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/northeast, /area/bigredv2/caves/lambda/research) "vbp" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/west, /area/bigredv2/outside/engineering) -"vcm" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 4 - }, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/lambda_cave_cas) "vct" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/mars_cave{ - icon_state = "mars_cave_5" - }, +/turf/open/mars_cave/mars_cave_5, /area/bigredv2/outside/lz2_south_cas) "vcA" = ( /obj/effect/landmark/corpsespawner/miner, @@ -38682,9 +29657,7 @@ }, /obj/item/weapon/gun/rifle/mar40/lmg, /obj/item/ammo_magazine/rifle/mar40/lmg, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves/mining) "vdl" = ( /obj/effect/decal/cleanable/liquid_fuel, @@ -38692,10 +29665,7 @@ icon_state = "W"; pixel_x = -1 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/west, /area/bigredv2/outside/engineering) "vdS" = ( /obj/item/explosive/grenade/incendiary/molotov{ @@ -38707,10 +29677,7 @@ pixel_y = 7 }, /obj/item/explosive/grenade/incendiary/molotov, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "vec" = ( /obj/structure/pipes/standard/tank, @@ -38719,50 +29686,49 @@ "vex" = ( /turf/closed/wall/wood, /area/bigredv2/outside/lz2_south_cas) -"vfI" = ( -/turf/open/mars{ - icon_state = "mars_dirt_13" +"vfo" = ( +/obj/structure/sink{ + dir = 4; + pixel_x = 9; + pixel_y = -3 }, +/turf/open/floor/white, +/area/bigredv2/outside/medical) +"vfI" = ( +/turf/open/mars/mars_dirt_13, /area/bigredv2/outside/eta) "vfQ" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, /obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, -/turf/open/mars_cave{ - icon_state = "mars_cave_3" - }, +/turf/open/mars_cave/mars_cave_3, /area/bigredv2/caves/mining) +"vgE" = ( +/obj/structure/fence, +/turf/open/floor/asteroidwarning/east, +/area/bigredv2/outside/n) "vgZ" = ( /obj/structure/platform/shiva, /obj/structure/platform/shiva{ dir = 1 }, -/turf/open/floor/bluegrid{ - icon_state = "bcircuitoff" - }, +/turf/open/floor/bluegrid/bcircuitoff, /area/bigredv2/caves/lambda/research) +"vhw" = ( +/obj/structure/machinery/light{ + dir = 4 + }, +/turf/open/floor/plating, +/area/bigredv2/outside/medical) "vhF" = ( /obj/item/device/flashlight/lantern, -/turf/open/mars_cave{ - icon_state = "mars_cave_13" - }, +/turf/open/mars_cave/mars_cave_13, /area/bigredv2/caves/mining) "vin" = ( /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/filtration_plant) -"vis" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 4 - }, -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/c) "viN" = ( /obj/structure/machinery/door_control{ id = "workshop_br_g"; @@ -38772,26 +29738,32 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/north, /area/bigredv2/outside/nw) "vjc" = ( /obj/item/tool/warning_cone{ pixel_x = -13; pixel_y = 11 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/filtration_plant) +"vkf" = ( +/obj/effect/landmark/crap_item, +/obj/structure/blocker/forcefield/multitile_vehicles, +/turf/open/mars_cave/mars_dirt_4, +/area/bigredv2/outside/ne) +"vkv" = ( +/turf/open/floor/darkyellow2/northwest, +/area/bigredv2/outside/engineering) +"vkF" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/surface/table, +/obj/effect/spawner/random/tool, +/turf/open/floor, +/area/bigredv2/outside/cargo) "vld" = ( /obj/item/tool/warning_cone, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/outside/filtration_cave_cas) "vlr" = ( /obj/effect/decal/warning_stripes{ @@ -38799,31 +29771,21 @@ }, /obj/effect/decal/cleanable/dirt, /obj/structure/largecrate/random/barrel/white, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "vlA" = ( /obj/effect/decal/cleanable/blood/drip{ pixel_y = 6 }, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/caves/mining) "vmm" = ( /obj/structure/barricade/wooden, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/north, /area/bigredv2/outside/c) "vmI" = ( /obj/item/device/flashlight/lantern, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/caves/mining) "vmL" = ( /obj/effect/decal/cleanable/dirt, @@ -38850,66 +29812,51 @@ /area/bigredv2/caves/mining) "voz" = ( /obj/structure/machinery/camera/autoname, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/library) "voG" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/barricade/handrail, -/turf/open/floor{ - dir = 6; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/southeast, /area/bigredv2/outside/engineering) "vpu" = ( /obj/item/weapon/twohanded/folded_metal_chair, -/turf/open/mars_cave{ - icon_state = "mars_cave_3" - }, +/turf/open/mars_cave/mars_cave_3, /area/bigredv2/caves/mining) "vpx" = ( /obj/structure/platform, /obj/structure/flora/jungle/planttop1{ pixel_y = 10 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/admin_building) "vpY" = ( /obj/structure/machinery/door/poddoor/almayer/closed{ id = "eta"; name = "Eta Lockdown" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/eta) "vqY" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_11" - }, +/turf/open/mars_cave/mars_cave_11, /area/bigredv2/caves_research) "vrt" = ( -/turf/open/mars{ - icon_state = "mars_dirt_14" - }, +/turf/open/mars/mars_dirt_14, /area/bigredv2/outside/eta) +"vsi" = ( +/obj/structure/pipes/vents/pump/on, +/turf/open/floor/asteroidfloor/north, +/area/bigredv2/outside/space_port_lz2) "vti" = ( /obj/structure/closet/crate, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/dorms) "vty" = ( /obj/structure/machinery/door/airlock/almayer/research/glass/colony{ name = "\improper Eta Lab Cell" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/caves/eta/xenobiology) "vuz" = ( /obj/structure/machinery/door_control{ @@ -38918,20 +29865,8 @@ pixel_x = 30; throw_range = 15 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/east, /area/bigredv2/caves/eta/research) -"vvi" = ( -/obj/effect/landmark/nightmare{ - insert_tag = "lz1containers" - }, -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/space_port) "vvj" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, @@ -38952,17 +29887,16 @@ pixel_x = -4; pixel_y = 7 }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) -"vwP" = ( -/obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/mars_cave{ - icon_state = "mars_cave_7" +"vxv" = ( +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 5 }, -/area/bigredv2/outside/lz1_north_cas) +/obj/structure/surface/table, +/obj/structure/machinery/light, +/turf/open/floor/asteroidfloor/north, +/area/bigredv2/outside/n) "vxQ" = ( /obj/item/tool/pickaxe/gold, /turf/open/floor/plating, @@ -38973,36 +29907,26 @@ /area/bigredv2/caves/lambda/xenobiology) "vzL" = ( /obj/item/weapon/gun/boltaction, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "vAs" = ( /obj/structure/window/framed/solaris/reinforced/tinted, /turf/open/floor/plating, /area/bigredv2/caves/lambda/xenobiology) -"vAy" = ( -/obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/mars_cave{ - icon_state = "mars_cave_9" - }, -/area/bigredv2/caves_north) "vBy" = ( /obj/item/ammo_magazine/shotgun/beanbag/riot, -/turf/open/mars_cave{ - icon_state = "mars_cave_17" - }, +/turf/open/mars_cave/mars_cave_17, /area/bigredv2/caves_research) +"vBI" = ( +/turf/open/mars_cave/mars_cave_9, +/area/bigredv2/outside/n) "vBT" = ( /obj/structure/surface/table/reinforced, /obj/structure/transmitter/colony_net/rotary{ phone_category = "Solaris Ridge"; phone_id = "Clinic Reception" }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/medical) "vCd" = ( /obj/structure/surface/rack, @@ -39012,83 +29936,89 @@ /obj/item/weapon/twohanded/lungemine{ pixel_y = -7 }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "vCf" = ( /obj/structure/surface/table, /obj/effect/spawner/random/toolbox, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/engineering) "vCU" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_16" - }, +/turf/open/mars_cave/mars_cave_16, /area/bigredv2/outside/lz2_south_cas) "vEF" = ( /obj/structure/surface/table, /obj/item/clothing/head/hardhat/orange{ pixel_y = 10 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/north, /area/bigredv2/outside/filtration_plant) "vEU" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/mars{ - icon_state = "mars_dirt_10" - }, +/turf/open/mars/mars_dirt_10, /area/bigredv2/outside/s) +"vFA" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood, +/area/bigredv2/outside/library) +"vFH" = ( +/obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, +/obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, +/turf/open/floor/asteroidwarning/north, +/area/bigredv2/caves_lambda) "vFS" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/eta/living) +"vGE" = ( +/turf/open/floor/asteroidwarning/southeast, +/area/bigredv2/outside/space_port_lz2) +"vGN" = ( +/obj/effect/decal/cleanable/blood{ + icon_state = "gib6" + }, +/obj/structure/machinery/door/airlock/multi_tile/almayer/medidoor/colony{ + name = "\improper Medical Clinic" + }, +/obj/structure/pipes/standard/simple/hidden/green, +/turf/open/floor/delivery, +/area/bigredv2/outside/medical) "vHw" = ( /turf/closed/wall/wood, /area/bigredv2/caves/mining) +"vHU" = ( +/obj/effect/landmark/hunter_primary, +/turf/open/mars_cave/mars_cave_2, +/area/bigredv2/outside/n) +"vIQ" = ( +/obj/structure/pipes/standard/simple/hidden/green, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/asteroidfloor/north, +/area/bigredv2/outside/c) "vKv" = ( -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/west, /area/bigredv2/outside/space_port_lz2) "vLd" = ( /turf/open/floor, /area/bigred/ground/garage_workshop) "vMj" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_6" - }, +/turf/open/mars_cave/mars_cave_6, /area/bigredv2/outside/lz2_west_cas) "vMm" = ( /obj/effect/decal/cleanable/blood/drip{ pixel_y = 13 }, /obj/structure/closet/crate/miningcar/yellow, -/turf/open/mars_cave{ - icon_state = "mars_cave_9" - }, +/turf/open/mars_cave/mars_cave_9, /area/bigredv2/caves/mining) "vNh" = ( /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves_virology) "vNm" = ( /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/mars_cave{ - icon_state = "mars_cave_5" - }, +/turf/open/mars_cave/mars_cave_5, /area/bigredv2/caves_virology) "vOs" = ( /obj/structure/coatrack{ @@ -39099,34 +30029,26 @@ pixel_x = 11; pixel_y = 4 }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/admin_building) "vPP" = ( /obj/effect/decal/cleanable/blood/drip{ pixel_x = 6 }, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves/mining) "vPZ" = ( /obj/structure/bed/chair{ dir = 8 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/marshal_office) "vQZ" = ( /obj/effect/decal/cleanable/blood{ icon_state = "gib6" }, -/turf/open/mars_cave{ - icon_state = "mars_cave_9" - }, +/turf/open/mars_cave/mars_cave_9, /area/bigredv2/caves_research) "vRs" = ( /obj/structure/sign/safety/high_voltage, @@ -39135,104 +30057,92 @@ "vRK" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/mars_cave{ - icon_state = "mars_cave_11" - }, +/turf/open/mars_cave/mars_cave_11, /area/bigredv2/caves/lambda/xenobiology) "vRR" = ( -/turf/open/mars_cave{ - icon_state = "mars_dirt_7" - }, +/turf/open/mars_cave/mars_dirt_7, /area/bigredv2/caves_north) "vTh" = ( /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves/mining) "vTt" = ( /obj/structure/surface/table, -/turf/open/floor{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/west, /area/bigredv2/outside/engineering) +"vUw" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/asteroidfloor/north, +/area/bigredv2/outside/lambda_cave_cas) +"vUy" = ( +/obj/structure/cargo_container/kelland/left, +/turf/open/mars_cave/mars_dirt_4, +/area/bigredv2/outside/space_port_lz2) +"vUN" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/machinery/light{ + dir = 8 + }, +/turf/open/floor/wood, +/area/bigredv2/outside/library) "vVl" = ( /obj/structure/machinery/door/airlock/almayer/generic{ name = "\improper Dormitories Toilet" }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) -"vVz" = ( -/obj/structure/machinery/power/geothermal{ - name = "Reactor Turbine"; - power_generation_max = 100000 - }, -/turf/open/floor{ - icon_state = "delivery" - }, -/area/bigredv2/outside/engineering) "vVF" = ( /obj/effect/decal/cleanable/blood/drip{ pixel_x = -5; pixel_y = 10 }, -/turf/open/mars_cave{ - icon_state = "mars_cave_5" - }, +/turf/open/mars_cave/mars_cave_5, /area/bigredv2/caves/mining) "vVZ" = ( /turf/closed/wall/solaris, /area/bigredv2/outside/filtration_cave_cas) "vWm" = ( /obj/structure/surface/table, -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/bigredv2/outside/engineering) "vXp" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/bigredv2/outside/nw) +"vXJ" = ( +/turf/open/mars_cave/mars_dirt_4, +/area/bigredv2/caves_lambda) "vYw" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/caves/mining) +"vZh" = ( +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 4 + }, +/obj/item/clothing/under/darkred, +/turf/open/floor/freezerfloor, +/area/bigredv2/outside/general_offices) "waJ" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves_east) "waN" = ( /obj/structure/surface/table, /obj/item/device/flashlight, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves/mining) "waX" = ( /obj/item/stack/cable_coil/cut, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves/mining) "wbp" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves) "wbx" = ( /obj/structure/prop/invuln/minecart_tracks{ @@ -39244,11 +30154,17 @@ }, /turf/open/floor/plating, /area/bigredv2/caves/mining) +"wbD" = ( +/obj/effect/landmark/crap_item, +/turf/open/mars_cave/mars_dirt_4, +/area/bigredv2/outside/space_port_lz2) +"wbY" = ( +/obj/effect/landmark/hunter_secondary, +/turf/open/mars_cave/mars_cave_2, +/area/bigredv2/outside/n) "wcs" = ( /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/mars_cave{ - icon_state = "mars_dirt_6" - }, +/turf/open/mars_cave/mars_dirt_6, /area/bigredv2/outside/lz1_north_cas) "wcw" = ( /turf/open/gm/river, @@ -39263,9 +30179,7 @@ /obj/structure/platform_decoration/kutjevo/rock{ dir = 8 }, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/space) "weO" = ( /obj/structure/closet/secure_closet/medical_wall{ @@ -39289,9 +30203,7 @@ pixel_y = 16 }, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/admin_building) "wfm" = ( /obj/structure/bed/chair{ @@ -39299,25 +30211,19 @@ dir = 1; pixel_y = 5 }, -/turf/open/mars_cave{ - icon_state = "mars_cave_16" - }, +/turf/open/mars_cave/mars_cave_16, /area/bigredv2/caves/mining) "wfx" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/floor{ - icon_state = "darkgreencorners2" - }, +/turf/open/floor/darkgreencorners2, /area/bigredv2/caves/eta/research) "wfC" = ( /obj/effect/landmark/xeno_hive_spawn, /obj/effect/landmark/ert_spawns/groundside_xeno, /obj/effect/landmark/queen_spawn, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves_se) "wfR" = ( /obj/structure/cable{ @@ -39326,101 +30232,87 @@ /obj/structure/cable{ icon_state = "5-6" }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "whi" = ( -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/east, /area/bigredv2/outside/filtration_cave_cas) +"whw" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/surface/table/woodentable, +/turf/open/floor/wood, +/area/bigredv2/outside/library) "whE" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/filtration_plant) "whZ" = ( /obj/effect/decal/cleanable/blood/oil/streak, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/bigred/ground/garage_workshop) "wix" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/north, /area/bigred/ground/garage_workshop) "wiK" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "podhatchfloor" - }, +/turf/open/floor/podhatchfloor, /area/bigredv2/outside/engineering) "wjW" = ( /obj/structure/platform/shiva{ dir = 1 }, -/turf/open/floor/bluegrid{ - icon_state = "bcircuitoff" - }, +/turf/open/floor/bluegrid/bcircuitoff, /area/bigredv2/caves/lambda/research) "wko" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor{ - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2, /area/bigredv2/caves/lambda/research) "wlE" = ( /obj/item/stack/cable_coil/cut, -/turf/open/mars_cave{ - icon_state = "mars_dirt_7" - }, +/turf/open/mars_cave/mars_dirt_7, /area/bigredv2/caves/mining) "wmh" = ( /obj/effect/decal/cleanable/blood{ icon_state = "gib6"; pixel_y = -8 }, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/caves/mining) +"wmN" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/asteroidwarning, +/area/bigredv2/outside/telecomm/n_cave) "wni" = ( -/turf/open/floor{ - icon_state = "darkredcorners2" - }, +/turf/open/floor/darkredcorners2, /area/bigredv2/caves/eta/xenobiology) +"woe" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/mars_cave/mars_dirt_4, +/area/bigredv2/outside/space_port_lz2) "wog" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves_sw) -"wpf" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_19" +"woK" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + pixel_x = -1; + pixel_y = 1 }, +/turf/open/floor/red/southeast, +/area/bigredv2/outside/marshal_office) +"wpf" = ( +/turf/open/mars_cave/mars_cave_19, /area/bigredv2/caves_north) "wpn" = ( /obj/structure/closet/radiation, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/engineering) -"wpT" = ( -/obj/effect/landmark/lv624/xeno_tunnel, -/turf/open/mars, -/area/bigredv2/outside/w) "wry" = ( /obj/structure/surface/table, /obj/structure/transmitter/colony_net/rotary{ @@ -39428,15 +30320,11 @@ phone_color = "blue"; phone_id = "Space Port" }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/space_port) "wrz" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/mars_cave{ - icon_state = "mars_cave_11" - }, +/turf/open/mars_cave/mars_cave_11, /area/bigredv2/caves_lambda) "wrS" = ( /obj/structure/prop/invuln/minecart_tracks{ @@ -39445,6 +30333,12 @@ /obj/structure/plasticflaps, /turf/open/floor/plating, /area/bigredv2/caves/mining) +"wss" = ( +/obj/item/tool/warning_cone{ + pixel_y = 20 + }, +/turf/open/floor/asteroidwarning/west, +/area/bigredv2/outside/telecomm/n_cave) "wtj" = ( /turf/open/floor/plating, /area/bigredv2/caves/mining) @@ -39452,16 +30346,11 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/filtration_plant) "wtG" = ( /obj/structure/machinery/computer3/server/rack, -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/bigredv2/outside/filtration_plant) "wtJ" = ( /obj/effect/decal/cleanable/blood{ @@ -39474,9 +30363,7 @@ pixel_x = 12; pixel_y = 16 }, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/caves/mining) "wuz" = ( /obj/structure/sink{ @@ -39484,37 +30371,25 @@ pixel_x = -12; pixel_y = 2 }, -/turf/open/floor{ - dir = 5; - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull/northeast, /area/bigredv2/outside/medical) "wuC" = ( /obj/effect/decal/cleanable/dirt, /obj/item/device/flashlight/flare{ pixel_y = -7 }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "wvk" = ( /obj/structure/fence, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/outside/virology) "wvK" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/filtration_plant) "wvR" = ( -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/caves/lambda/virology) "wwT" = ( /obj/effect/decal/cleanable/dirt, @@ -39522,36 +30397,43 @@ /area/bigredv2/outside/engineering) "wxo" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/bigredv2/outside/c) "wyF" = ( /obj/structure/surface/table, /obj/effect/spawner/random/toolbox, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/bigredv2/outside/engineering) +"wyP" = ( +/obj/structure/cargo_container/kelland/right, +/turf/open/mars_cave/mars_dirt_4, +/area/bigredv2/outside/space_port_lz2) "wBi" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/outside/lz2_south_cas) "wBq" = ( /obj/structure/fence, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves/mining) -"wCo" = ( -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" +"wBu" = ( +/obj/structure/barricade/handrail{ + dir = 1; + pixel_y = 2 + }, +/turf/open/floor/asteroidwarning/north, +/area/bigredv2/outside/c) +"wBK" = ( +/obj/structure/bed/chair/wood/normal{ + dir = 4 }, +/turf/open/floor/wood, +/area/bigredv2/outside/library) +"wCo" = ( +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/caves/mining) "wCs" = ( /obj/structure/machinery/vending/cigarette/colony, @@ -39565,41 +30447,29 @@ pixel_x = -8; pixel_y = 6 }, -/turf/open/mars_cave{ - icon_state = "mars_cave_17" - }, +/turf/open/mars_cave/mars_cave_17, /area/bigredv2/caves/mining) -"wDK" = ( -/obj/structure/barricade/wooden{ - desc = "This barricade is heavily reinforced. Nothing short of blasting it open seems like it'll do the trick, that or melting the breams supporting it..."; - dir = 4; - health = 25000 - }, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" +"wET" = ( +/obj/structure/machinery/light{ + dir = 8 }, -/area/bigredv2/caves_north) +/turf/open/floor/wood, +/area/bigredv2/outside/library) "wFL" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/sign/safety/hazard{ pixel_x = 8; pixel_y = -32 }, -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/bigredv2/outside/engineering) "wFO" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_20" - }, +/turf/open/mars_cave/mars_cave_20, /area/bigredv2/caves/mining) "wFP" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/caves/eta/living) "wGr" = ( /obj/structure/closet/firecloset/full, @@ -39619,39 +30489,50 @@ layer = 2.5 }, /obj/item/prop/alien/hugger, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/admin_building) "wGF" = ( /obj/item/tool/warning_cone, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/bigredv2/outside/se) "wGV" = ( /obj/item/tool/wrench, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/north, /area/bigredv2/outside/c) +"wHg" = ( +/obj/effect/landmark/nightmare{ + insert_tag = "lz1north_mining" + }, +/turf/closed/wall/solaris/reinforced, +/area/bigredv2/outside/space_port) "wHx" = ( /obj/effect/decal/warning_stripes{ icon_state = "S"; pixel_y = -1 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkredcorners2" - }, +/turf/open/floor/darkredcorners2/east, /area/bigredv2/outside/admin_building) +"wHM" = ( +/obj/structure/pipes/vents/pump{ + dir = 4 + }, +/obj/structure/machinery/light{ + dir = 1 + }, +/obj/structure/bed/chair/comfy{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood, +/area/bigredv2/outside/library) +"wIj" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/asteroidwarning, +/area/bigredv2/outside/e) "wIw" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/mars_cave{ - icon_state = "mars_cave_23" - }, +/turf/open/mars_cave/mars_cave_23, /area/bigredv2/caves_east) "wJd" = ( /obj/effect/decal/cleanable/dirt, @@ -39662,44 +30543,37 @@ "wKf" = ( /obj/structure/surface/table, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/office_complex) "wKx" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_17" - }, +/turf/open/mars_cave/mars_cave_17, /area/bigredv2/outside/lz1_north_cas) +"wKA" = ( +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood, +/area/bigredv2/outside/library) "wLD" = ( /obj/structure/largecrate/random/barrel/yellow, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "wLU" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/cargo) "wMg" = ( /obj/item/tool/warning_cone{ pixel_x = 5; pixel_y = 13 }, -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/west, /area/bigredv2/outside/filtration_plant) "wMp" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_9" - }, +/turf/open/mars_cave/mars_cave_9, /area/bigredv2/caves_north) "wMM" = ( /obj/structure/pipes/vents/pump{ @@ -39709,39 +30583,29 @@ icon_state = "E"; pixel_x = 1 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/bigredv2/outside/engineering) "wMQ" = ( /obj/structure/largecrate/random/secure, /turf/open/floor, /area/bigred/ground/garage_workshop) -"wNw" = ( -/obj/structure/machinery/door/poddoor/almayer/closed{ - dir = 4; - id = "lambda"; - name = "Lambda Lockdown" - }, -/turf/open/floor{ - icon_state = "delivery" - }, -/area/bigredv2/outside/lambda_cave_cas) "wNA" = ( /obj/effect/decal/cleanable/dirt, /obj/item/ammo_magazine/pistol/m1911, /turf/open/floor/plating, /area/bigredv2/caves/mining) +"wOK" = ( +/obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, +/obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, +/turf/open/floor/asteroidwarning/east, +/area/bigredv2/caves_lambda) "wPk" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/structure_spawner/xvx_hive/xeno_core, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/eta/xenobiology) "wQa" = ( /obj/structure/surface/table, @@ -39749,21 +30613,21 @@ pixel_x = 9; pixel_y = 11 }, -/turf/open/mars_cave{ - icon_state = "mars_cave_16" - }, +/turf/open/mars_cave/mars_cave_16, /area/bigredv2/caves/mining) "wQC" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_7" - }, +/turf/open/mars_cave/mars_cave_7, /area/bigredv2/caves_lambda) +"wRl" = ( +/obj/effect/landmark/nightmare{ + insert_tag = "admin_pmc" + }, +/turf/closed/wall/solaris/reinforced, +/area/bigredv2/outside/admin_building) "wRH" = ( /obj/effect/decal/cleanable/dirt, /obj/item/device/flashlight, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves/mining) "wSj" = ( /obj/structure/sign/safety/life_support, @@ -39776,27 +30640,18 @@ /obj/item/stack/sheet/wood{ pixel_y = -8 }, -/turf/open/mars_cave{ - icon_state = "mars_cave_15" - }, +/turf/open/mars_cave/mars_cave_15, /area/bigredv2/caves/mining) "wUD" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/mars_cave{ - icon_state = "mars_cave_5" - }, +/turf/open/mars_cave/mars_cave_5, /area/bigredv2/caves_se) "wVd" = ( /obj/structure/largecrate/random/barrel/red, -/turf/open/mars_cave{ - icon_state = "mars_cave_13" - }, +/turf/open/mars_cave/mars_cave_13, /area/bigredv2/caves/mining) "wVw" = ( -/turf/open/floor{ - dir = 6; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/southeast, /area/bigredv2/outside/filtration_plant) "wVB" = ( /obj/structure/platform, @@ -39809,29 +30664,26 @@ /turf/open/gm/river, /area/bigredv2/outside/engineering) "wVQ" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_17" - }, +/turf/open/mars_cave/mars_cave_17, /area/bigredv2/caves/mining) +"wWE" = ( +/turf/open/mars_cave/mars_cave_19, +/area/bigredv2/outside/n) "wWK" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves_east) "wWN" = ( /obj/structure/largecrate/random/barrel/green, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "wXg" = ( -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/outside/lz1_north_cas) +"wXv" = ( +/turf/open/mars/mars_dirt_14, +/area/bigredv2/outside/space_port_lz2) "wXz" = ( /turf/open/floor/plating, /area/bigredv2/caves/eta/research) @@ -39839,33 +30691,39 @@ /obj/structure/surface/table/woodentable, /obj/item/ashtray/glass, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/bar) "wYE" = ( /obj/structure/prop/server_equipment/yutani_server{ density = 0; pixel_y = 16 }, -/turf/open/floor{ - dir = 5; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/northeast, /area/bigredv2/outside/engineering) +"wZv" = ( +/obj/structure/machinery/light, +/turf/open/floor/asteroidfloor/north, +/area/bigredv2/outside/c) "wZC" = ( -/turf/open/mars{ - icon_state = "mars_dirt_11" - }, +/turf/open/mars/mars_dirt_11, /area/bigredv2/outside/eta) +"wZP" = ( +/obj/structure/cargo_container/arious/rightmid, +/turf/open/mars_cave/mars_dirt_4, +/area/bigredv2/outside/space_port_lz2) +"xaE" = ( +/obj/structure/machinery/door/airlock/almayer/security/glass/colony{ + dir = 1; + name = "\improper Lambda Checkpoint" + }, +/turf/open/floor/delivery, +/area/bigredv2/outside/lambda_cave_cas) "xaH" = ( /turf/closed/wall/wood, /area/bigredv2/caves_sw) "xbV" = ( /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/mars_cave{ - icon_state = "mars_cave_14" - }, +/turf/open/mars_cave/mars_cave_14, /area/bigredv2/outside/lz1_north_cas) "xck" = ( /obj/effect/decal/cleanable/blood/drip{ @@ -39883,24 +30741,26 @@ dir = 4; icon_state = "gib6" }, -/turf/open/mars_cave{ - icon_state = "mars_dirt_7" - }, +/turf/open/mars_cave/mars_dirt_7, /area/bigredv2/caves/mining) +"xcz" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W"; + layer = 2.5; + pixel_x = -1 + }, +/turf/open/floor/plating/warnplate/east, +/area/bigredv2/outside/telecomm/warehouse) "xej" = ( /obj/effect/decal/warning_stripes{ icon_state = "S"; pixel_y = -1 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/admin_building) "xeN" = ( /obj/effect/landmark/lv624/xeno_tunnel, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/outside/filtration_plant) "xfx" = ( /obj/structure/prop/invuln/minecart_tracks{ @@ -39910,9 +30770,7 @@ icon_state = "4-8"; name = "heavy duty power cable" }, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/caves/mining) "xfN" = ( /obj/structure/platform_decoration/shiva{ @@ -39925,15 +30783,10 @@ icon_state = "medium" }, /obj/item/stack/cable_coil/random, -/turf/open/floor/bluegrid{ - icon_state = "bcircuitoff" - }, +/turf/open/floor/bluegrid/bcircuitoff, /area/bigredv2/caves/lambda/research) "xfW" = ( -/turf/open/jungle{ - bushes_spawn = 0; - icon_state = "grass_impenetrable" - }, +/turf/open/jungle/impenetrable, /area/bigredv2/caves/eta/living) "xgi" = ( /obj/effect/decal/cleanable/blood{ @@ -39943,43 +30796,37 @@ pixel_x = 12; pixel_y = 3 }, -/turf/open/mars_cave{ - icon_state = "mars_cave_3" - }, +/turf/open/mars_cave/mars_cave_3, /area/bigredv2/caves/mining) +"xgm" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/asteroidwarning, +/area/bigredv2/outside/ne) "xgw" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_9" - }, +/turf/open/mars_cave/mars_cave_9, /area/bigredv2/outside/lz2_south_cas) "xhy" = ( /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves/mining) "xhB" = ( /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "xhU" = ( /obj/structure/closet/fireaxecabinet{ pixel_y = 27 }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) +"xjU" = ( +/obj/structure/cargo_container/arious/right, +/turf/open/mars, +/area/bigredv2/outside/space_port_lz2) "xkq" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_3" - }, +/turf/open/mars_cave/mars_cave_3, /area/bigredv2/caves_research) "xkH" = ( /obj/structure/cable{ @@ -39989,10 +30836,7 @@ icon_state = "4-10" }, /obj/structure/pipes/standard/tank/oxygen, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "xkR" = ( /obj/effect/decal/cleanable/blood{ @@ -40003,14 +30847,10 @@ pixel_x = -9; pixel_y = 13 }, -/turf/open/mars_cave{ - icon_state = "mars_cave_13" - }, +/turf/open/mars_cave/mars_cave_13, /area/bigredv2/caves/mining) "xmy" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/outside/lz1_telecomm_cas) "xmT" = ( /obj/structure/platform/kutjevo/rock, @@ -40020,20 +30860,13 @@ /obj/structure/platform_decoration/kutjevo/rock{ dir = 1 }, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/space) "xpb" = ( -/turf/open/floor{ - dir = 5; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/northeast, /area/bigredv2/outside/lz2_south_cas) "xpl" = ( -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/eta/research) "xpG" = ( /obj/structure/sign/safety/hazard, @@ -40041,10 +30874,7 @@ /area/bigredv2/outside/filtration_plant) "xpL" = ( /obj/item/tool/wirecutters, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/north, /area/bigredv2/outside/c) "xqf" = ( /obj/effect/decal/cleanable/dirt, @@ -40068,17 +30898,20 @@ }, /obj/effect/decal/cleanable/blood, /obj/effect/landmark/corpsespawner/miner, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/caves/mining) +"xsX" = ( +/obj/structure/bed/chair{ + dir = 8; + pixel_y = 3 + }, +/obj/structure/blocker/forcefield/multitile_vehicles, +/turf/open/floor, +/area/bigredv2/outside/lambda_cave_cas) "xte" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/light, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "xtB" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -40088,9 +30921,7 @@ /obj/structure/barricade/handrail/wire{ dir = 1 }, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/outside/s) "xuP" = ( /obj/item/trash/cigbutt/cigarbutt{ @@ -40109,15 +30940,11 @@ "xuU" = ( /obj/effect/landmark/crap_item, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves_east) "xwo" = ( /obj/structure/disposalpipe/junction, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves/mining) "xwy" = ( /obj/structure/machinery/light/small{ @@ -40129,10 +30956,7 @@ /obj/structure/cable{ icon_state = "11-2" }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "xya" = ( /obj/structure/barricade/wooden{ @@ -40143,127 +30967,86 @@ /obj/item/weapon/twohanded/spear{ pixel_x = 5 }, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/caves/mining) "xyu" = ( /obj/structure/closet/l3closet/security, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/bigredv2/outside/marshal_office) "xyz" = ( /obj/structure/girder, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) +"xzb" = ( +/obj/structure/surface/rack, +/turf/open/floor/freezerfloor, +/area/bigredv2/outside/general_offices) "xzi" = ( /obj/effect/decal/remains/xeno, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "xzs" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/eta/living) "xAh" = ( /obj/effect/landmark/xeno_spawn, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves_se) "xAv" = ( /obj/item/weapon/twohanded/folded_metal_chair, -/turf/open/mars_cave{ - icon_state = "mars_cave_15" - }, +/turf/open/mars_cave/mars_cave_15, /area/bigredv2/caves/mining) "xAX" = ( /obj/structure/machinery/power/apc{ dir = 1 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/bigredv2/outside/engineering) "xBn" = ( /obj/structure/platform{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/admin_building) "xBr" = ( /obj/item/ore{ pixel_x = 9 }, -/turf/open/mars_cave{ - icon_state = "mars_dirt_6" - }, +/turf/open/mars_cave/mars_dirt_6, /area/bigredv2/caves/mining) "xBS" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_14" - }, +/turf/open/mars_cave/mars_cave_14, /area/bigredv2/outside/lz1_north_cas) "xDO" = ( -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/oob) "xDW" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/bigredv2/outside/engineering) "xFZ" = ( /turf/open/mars_cave, /area/bigredv2/caves_lambda) -"xGT" = ( -/turf/open/floor{ - dir = 9; - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/w) "xIo" = ( /obj/structure/window/framed/solaris/reinforced/hull, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/oob) "xIv" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ dir = 8; name = "\improper Abandoned Mining Storage" }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "xIx" = ( /obj/item/clothing/mask/gas, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/outside/filtration_plant) "xIP" = ( /obj/structure/surface/table, @@ -40277,17 +31060,13 @@ /obj/effect/landmark/corpsespawner/miner, /obj/item/tool/pickaxe, /obj/effect/decal/cleanable/blood, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves/mining) "xJT" = ( /obj/structure/prop/invuln/minecart_tracks{ dir = 10 }, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/caves/mining) "xKb" = ( /obj/structure/prop/server_equipment/yutani_server, @@ -40300,15 +31079,18 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor, /area/bigredv2/outside/admin_building) +"xLz" = ( +/obj/effect/landmark/nightmare{ + insert_tag = "lz1containers_scramble" + }, +/turf/open/floor/asteroidwarning/east, +/area/bigredv2/outside/space_port) "xLM" = ( /obj/structure/machinery/light{ dir = 1 }, /obj/structure/largecrate/supply/supplies/water, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "xMr" = ( /obj/effect/decal/cleanable/dirt, @@ -40319,10 +31101,7 @@ /obj/effect/decal/cleanable/dirt, /obj/item/weapon/gun/pistol/holdout, /obj/structure/machinery/light, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "xMT" = ( /obj/structure/closet, @@ -40334,66 +31113,84 @@ /obj/item/ammo_magazine/shotgun/buckshot, /obj/item/weapon/gun/shotgun/pump/dual_tube/cmb, /obj/item/reagent_container/food/snacks/packaged_burger, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "xNL" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 1 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/lambda/research) +"xOk" = ( +/obj/effect/landmark/nightmare{ + insert_tag = "cargo_containers" + }, +/turf/closed/wall/solaris, +/area/bigredv2/outside/cargo) "xPg" = ( /obj/structure/barricade/handrail/wire, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/outside/c) "xQb" = ( /obj/structure/pipes/vents/pump/on, /obj/effect/decal/cleanable/dirt, /turf/open/floor, /area/bigredv2/outside/cargo) +"xQd" = ( +/obj/structure/largecrate/random/barrel/true_random, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/asteroidfloor/north, +/area/bigredv2/outside/n) "xRl" = ( /obj/item/weapon/gun/pistol/b92fs{ pixel_x = 13; pixel_y = -7 }, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/caves/mining) +"xRn" = ( +/turf/open/floor/asteroidfloor/north, +/area/bigredv2/caves_north) "xSa" = ( /obj/structure/prop/dam/crane, -/turf/open/mars_cave{ - icon_state = "mars_cave_13" - }, +/turf/open/mars_cave/mars_cave_13, /area/bigredv2/caves/mining) +"xTk" = ( +/obj/limb/arm/l_arm, +/obj/effect/decal/cleanable/blood/drip, +/obj/structure/blocker/forcefield/multitile_vehicles, +/turf/open/floor, +/area/bigredv2/outside/lambda_cave_cas) "xTM" = ( /obj/structure/closet/medical_wall, /turf/closed/wall/solaris/reinforced, /area/bigredv2/caves/mining) +"xTV" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 4 + }, +/turf/open/floor/asteroidfloor/north, +/area/bigredv2/outside/lambda_cave_cas) "xUo" = ( /obj/effect/landmark/monkey_spawn, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/lambda/research) "xUS" = ( /obj/effect/landmark/crap_item, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/caves/mining) -"xWm" = ( -/turf/open/floor{ - icon_state = "whitepurplefull" +"xWl" = ( +/obj/structure/machinery/door/poddoor/almayer/closed{ + dir = 4; + id = "lambda"; + name = "Lambda Lockdown" }, +/turf/open/floor/delivery, +/area/bigredv2/caves_north) +"xWm" = ( +/turf/open/floor/whitepurplefull, /area/bigredv2/caves/lambda/research) "xWr" = ( /obj/item/ore/uranium{ @@ -40411,29 +31208,30 @@ }, /turf/open/floor/plating, /area/bigredv2/caves/mining) +"xWv" = ( +/obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, +/obj/effect/landmark/structure_spawner/setup/distress/xeno_door, +/turf/open/floor/asteroidfloor/north, +/area/bigredv2/caves_lambda) "xWz" = ( /obj/effect/decal/cleanable/dirt{ pixel_x = 17 }, /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "xWH" = ( /obj/structure/barricade/wooden, -/turf/open/mars_cave{ - icon_state = "mars_cave_16" - }, +/turf/open/mars_cave/mars_cave_16, /area/bigredv2/caves/mining) -"xWI" = ( -/obj/effect/landmark/crap_item, -/turf/open/mars_cave{ - icon_state = "mars_cave_16" +"xWR" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 }, -/area/bigredv2/caves_north) +/turf/open/floor/plating/warnplate/west, +/area/bigredv2/outside/telecomm/warehouse) "xWV" = ( /obj/structure/machinery/power/apc{ dir = 1 @@ -40441,18 +31239,13 @@ /obj/structure/cable{ icon_state = "1-2" }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "xXg" = ( /obj/effect/decal/cleanable/blood{ icon_state = "xgib1" }, -/turf/open/mars_cave{ - icon_state = "mars_dirt_7" - }, +/turf/open/mars_cave/mars_dirt_7, /area/bigredv2/caves/mining) "xXq" = ( /obj/structure/barricade/handrail{ @@ -40460,17 +31253,17 @@ layer = 3.01; pixel_y = 9 }, -/turf/open/floor{ - dir = 5; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/northeast, /area/bigredv2/outside/engineering) "xXP" = ( /obj/structure/prop/invuln/minecart_tracks/bumper, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves_sw) +"xXT" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/machinery/vending/cigarette/colony, +/turf/open/floor, +/area/bigredv2/outside/general_offices) "xYc" = ( /obj/structure/prop/invuln/minecart_tracks{ desc = "A heavy duty power cable for high voltage applications"; @@ -40479,17 +31272,13 @@ icon_state = "4-8"; name = "heavy duty power cable" }, -/turf/open/mars_cave{ - icon_state = "mars_cave_17" - }, +/turf/open/mars_cave/mars_cave_17, /area/bigredv2/caves/mining) "xZf" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/eta/xenobiology) "xZm" = ( /obj/structure/barricade/wooden{ @@ -40497,41 +31286,30 @@ dir = 4; health = 25000 }, -/turf/open/mars_cave{ - icon_state = "mars_dirt_7" - }, +/turf/open/mars_cave/mars_dirt_7, /area/bigredv2/caves/mining) +"xZL" = ( +/turf/closed/wall/solaris/rock, +/area/bigredv2/outside/lambda_cave_cas) "yar" = ( -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/bigredv2/outside/filtration_plant) "ybk" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_17" - }, +/turf/open/mars_cave/mars_cave_17, /area/bigredv2/caves_research) "ybT" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony{ name = "\improper Machine room" }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "ycM" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_7" - }, +/turf/open/mars_cave/mars_cave_7, /area/bigredv2/caves/lambda/xenobiology) "ycP" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/eta/storage) "yda" = ( /obj/effect/decal/warning_stripes{ @@ -40540,9 +31318,7 @@ /obj/effect/decal/cleanable/blood/splatter, /obj/effect/landmark/corpsespawner/security/marshal, /obj/item/weapon/gun/shotgun/pump/dual_tube/cmb, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/caves/mining) "ydd" = ( /obj/item/weapon/shield/riot{ @@ -40552,37 +31328,28 @@ layer = 3 }, /obj/effect/landmark/corpsespawner/ua_riot, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves_research) "ydn" = ( -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/outside/eta) -"yfe" = ( -/obj/effect/landmark/nightmare{ - insert_tag = "eta" +"yej" = ( +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 10 }, -/turf/closed/wall/solaris/reinforced, -/area/bigredv2/caves/eta/xenobiology) +/turf/open/floor/asteroidwarning/north, +/area/bigredv2/outside/n) "yfs" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "yfz" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /obj/effect/landmark/xeno_spawn, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves_research) "yfN" = ( /obj/structure/closet/hydrant{ @@ -40591,11 +31358,16 @@ /obj/structure/bed/chair, /obj/effect/decal/cleanable/dirt, /obj/item/ammo_box/magazine/misc/flares, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) +"ygN" = ( +/obj/structure/machinery/washing_machine, +/obj/item/clothing/under/brown, +/obj/structure/machinery/washing_machine{ + pixel_y = 13 + }, +/turf/open/floor/freezerfloor, +/area/bigredv2/outside/general_offices) "ygP" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -40605,10 +31377,7 @@ icon_state = "W"; pixel_x = -1 }, -/turf/open/floor{ - dir = 9; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/northwest, /area/bigredv2/outside/engineering) "yha" = ( /obj/structure/surface/table, @@ -40616,37 +31385,36 @@ pixel_y = 8 }, /obj/effect/landmark/objective_landmark/close, -/turf/open/mars_cave{ - icon_state = "mars_cave_3" - }, +/turf/open/mars_cave/mars_cave_3, /area/bigredv2/caves/mining) "yhc" = ( -/turf/open/mars_cave{ - icon_state = "mars_dirt_5" - }, +/turf/open/mars_cave/mars_dirt_5, /area/bigredv2/caves/mining) +"yhG" = ( +/obj/structure/showcase{ + icon = 'icons/obj/structures/machinery/research.dmi'; + icon_state = "d_analyzer_la" + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 1 + }, +/turf/open/floor/darkish, +/area/bigredv2/caves/lambda/breakroom) "yhN" = ( /obj/effect/decal/cleanable/blood{ layer = 3 }, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves/mining) "yhV" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/bigredv2/outside/filtration_plant) "yjU" = ( /obj/item/weapon/broken_bottle, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "yjV" = ( /obj/structure/platform_decoration{ @@ -40666,9 +31434,7 @@ pixel_x = -8; pixel_y = 6 }, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves/mining) "yln" = ( /obj/effect/decal/cleanable/dirt, @@ -40682,17 +31448,11 @@ /obj/item/ammo_magazine/rifle/nsg23/ap, /obj/item/ammo_magazine/rifle/nsg23/ap, /obj/item/ammo_magazine/rifle/nsg23/extended, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "ymi" = ( /obj/item/tool/wet_sign, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) (1,1,1) = {" @@ -42699,7 +33459,7 @@ aao aao aao aao -jcn +rNs aao aao xmy @@ -44030,7 +34790,7 @@ aao aao aao aao -qTu +lFR aao aao aao @@ -44923,14 +35683,14 @@ aao aao aao aao -azR -azR -aao -aao -aao -aao -aao -qtx +ayf +ayf +ayf +ayf +ayf +ayf +ayf +ayf ayf ayf ayf @@ -45140,13 +35900,13 @@ aao aao aao aao -azR -wpT -aYF -aYF -aYF +ayf +bcW cVY +ayf cVY +uBP +ayf cVY cVY cVY @@ -45357,15 +36117,15 @@ aao aao aao aao -azR -aYF -aYF -aYF -aYF +ayf cVY cVY cVY cVY +ucl +gQj +dCU +tQg cVY cVY bjN @@ -45482,8 +36242,7 @@ aae aaf aai aah -aah -aah +aaF aah aah aah @@ -45501,6 +36260,7 @@ aah aah aah aah +aaF aah aeh aaf @@ -45574,13 +36334,13 @@ aao aao aao aao -azR -azR -aYF -aYF -bgC +ayf +ayf +cVY cVY cVY +xjU +cVY cVY cVY cVY @@ -45589,7 +36349,7 @@ cVY cVY cVY ayf -aao +ayf aao aao aao @@ -45700,7 +36460,6 @@ aaf aaj aah aah -aaF aah aah aah @@ -45716,7 +36475,8 @@ aah aah aah aah -aaF +aah +aah aah aah aei @@ -45791,11 +36551,11 @@ aao aao aao aao -azR -aYF -aYF -aYF -aYF +ayf +qsd +cVY +cVY +nbu cVY cVY cVY @@ -45805,6 +36565,7 @@ mMf cVY cVY cVY +cVY ayf ayf ayf @@ -45822,8 +36583,7 @@ ayf ayf ayf ayf -ayf -ayf +aao aao aao aao @@ -45982,7 +36742,7 @@ aIb aHj aJh aJh -aJh +aHj aoD aNe aNc @@ -46008,11 +36768,11 @@ aao aao aao aao -azR -aYF -aYF -aYF -bbc +ayf +mkt +cVY +cVY +hpg bgW cVY hpg @@ -46022,13 +36782,13 @@ tVp mMf mMf mMf -tVp -tVp -tVp +mMf +ayf +ayf bsa -tVp -tVp -tVp +ayf +ayf +qcQ tVp fFO cVY @@ -46039,7 +36799,7 @@ fFO cVY cVY cVY -uSC +ayf ayf aao aao @@ -46199,7 +36959,7 @@ aIb lQU aFt aFt -aFt +aHh aoD aNf aNc @@ -46217,19 +36977,19 @@ aXw aXw aZl aoD -pIh -pIh +bRV +bRV aoD aoD aoD aoD aao aao -azR -azR -aYF -aYF -aSB +ayf +ayf +cVY +cVY +tVp feN vKv vKv @@ -46242,6 +37002,7 @@ vKv vKv vKv vKv +eWd vKv vKv vKv @@ -46254,11 +37015,10 @@ vKv vKv vKv vKv -vKv -vKv -vKv +jlS +tVp +ayf ayf -aao aao aao aao @@ -46416,7 +37176,7 @@ aIb lQU aFt aFu -aFt +qVw aoD aNg aNc @@ -46442,11 +37202,11 @@ aNc aoD aao aao -azR -aYF -aYF -bbc -aSB +ayf +cVY +cVY +hpg +tVp bgX eWd eWd @@ -46472,14 +37232,14 @@ eWd eWd eWd eWd -eWd -eWd +dAX +tVp +tVp ayf aao aao aao aao -aao kvp wog wog @@ -46659,11 +37419,11 @@ aNc aoD aao aao -azR -aYF -aYF -bcp -aSB +ayf +cVY +cVY +uSC +tVp bgX bsa bid @@ -46689,14 +37449,14 @@ bjn bid bsa eWd -eWd -eWd +dAX +vUy +tVp ayf aao aao aao aao -aao gxJ iGK wog @@ -46876,15 +37636,15 @@ aNc aoD aao aao -azR -azR -aYF -bcp -aSB +ayf +ayf +cVY +uSC +tVp bgX bhu bie -bie +bje bie bie bie @@ -46902,12 +37662,13 @@ bie bie bie bie -bie +bje bie bsb eWd -eWd -eWd +dAX +wyP +tVp ayf aao aao @@ -46915,7 +37676,6 @@ aao aao aao aao -aao gxJ iGK wog @@ -47093,16 +37853,16 @@ aXx aoD aao aao -azR -aYF -aYF -bcp -aSB +ayf +tpY +cVY +uSC +tVp bgX bhv bie bie -bje +bie bie bie bie @@ -47118,13 +37878,14 @@ bie bie bjo bie -bje +bie bie bie bsc eWd -eWd -eWd +dAX +tVp +tVp ayf aao aao @@ -47134,7 +37895,6 @@ aao aao aao aao -aao kvp wog wog @@ -47310,11 +38070,11 @@ aNi aoD aao aao -azR -aYF -aYF -bcp -aSB +ayf +cVY +cVY +uSC +tVp bgX bhw bie @@ -47340,8 +38100,9 @@ bie bie bsd eWd -eWd -eWd +dAX +tVp +tVp ayf aao aao @@ -47351,7 +38112,6 @@ aao aao aao aao -aao kvp wog sLy @@ -47436,7 +38196,6 @@ aaf aaj aah aah -aaF aah aah aah @@ -47452,7 +38211,8 @@ aah aah aah aah -aaF +aah +aah aah aah aei @@ -47527,11 +38287,11 @@ aXy aoD aao aao -azR -azR -aYF -bbJ -aSB +ayf +ayf +cVY +wXv +tVp bgX bhx bie @@ -47557,8 +38317,9 @@ bie bie bse eWd -eWd -eWd +dAX +tVp +tVp ayf aao aao @@ -47568,7 +38329,6 @@ aao aao aao aao -aao kvp wog wog @@ -47652,8 +38412,7 @@ aae aaf aak aah -aah -aah +aaF aah aah aah @@ -47671,6 +38430,7 @@ aah aah aah aah +aaF aah aej aaf @@ -47744,11 +38504,11 @@ aXz aoD aao aao -azR -jvt -aYF -aYF -bcp +ayf +cVY +cVY +cVY +uSC bgX bhu bie @@ -47774,8 +38534,9 @@ bie bie bsb eWd -eWd -eWd +dAX +tVp +tVp ayf aao aao @@ -47785,7 +38546,6 @@ aao aao aao aao -aao kvp wog feS @@ -47906,7 +38666,7 @@ ajx aoN ajx vXp -pdN +oVq aeI aeI aeI @@ -47944,7 +38704,7 @@ aoD aoD aoD aoD -eUT +maB aoD aoD aoD @@ -47953,19 +38713,19 @@ aoD aoD aoD aoD -aoa aoD aoD aoD aoD -aoa -azR -azR -azR -aYF -aYF -bbc -aSB +aoD +aoD +ayf +ayf +ayf +cVY +cVY +hpg +tVp bgX bhy bie @@ -47991,8 +38751,9 @@ bie bie bsc eWd -eWd -eWd +dAX +tVp +tVp ayf aao aao @@ -48002,7 +38763,6 @@ aao aao aao aao -aao kvp wog feS @@ -48104,7 +38864,7 @@ acw acw aam aam -vvi +xLz aam aam aam @@ -48150,7 +38910,7 @@ aoD grU aIg grU -aoa +aoD aln aoD aEu @@ -48167,22 +38927,22 @@ aEu aoD aEu aEu -aEV +aoD aEu aEu -aoa -aSB -aSB aoD aSB aSB -azR -aSB +aoD aSB -bax -bax aSB +rZn aSB +tVp +mMf +mMf +tVp +tVp bgX bhw bie @@ -48208,8 +38968,9 @@ bie bie bsd eWd -eWd -eWd +dAX +tVp +tVp ayf aao aao @@ -48219,7 +38980,6 @@ aao aao aao aao -aao kvp wog iAF @@ -48395,11 +39155,11 @@ aSB beP beP beP -aSB -aSB -aSB -aSB -aSB +tVp +tVp +tVp +tVp +tVp bgX bhz bie @@ -48425,8 +39185,9 @@ bie bie bse eWd -eWd -eWd +dAX +tVp +tVp ayf aao aao @@ -48436,7 +39197,6 @@ aao aao aao aao -aao gxJ iAF aao @@ -48612,11 +39372,11 @@ aWk aVI aWk aWk -aVI -aVI -aWk -aWk -aWk +iHe +iHe +vKv +vKv +vKv eWd bhA bie @@ -48642,8 +39402,9 @@ bie bjo bsb eWd -eWd -eWd +dAX +tVp +tVp ayf aao aao @@ -48659,7 +39420,6 @@ aao aao aao aao -aao kvp wog daf @@ -48792,7 +39552,7 @@ axv anp anp anp -anp +gri ajx ajY akK @@ -48829,16 +39589,15 @@ aUQ bdZ bdZ bdZ -aXA -aWV -aXA -aXA -aXA +bmN +ufc +bmN +bmN +bmN eWd bhv bie bie -bje bie bie bie @@ -48854,13 +39613,15 @@ bie bie bie bie -bje +bie +bie bie bie bsc eWd -eWd -eWd +dAX +tVp +tVp ayf aao aao @@ -48876,7 +39637,6 @@ aao aao aao aao -aao kvp wog wog @@ -49046,15 +39806,15 @@ bdZ bdZ bdZ beu -beP -aSB -aSB -aSB -aSB +woe +tVp +tVp +tVp +tVp bgX bhw bie -bie +bje bie bie bie @@ -49072,12 +39832,13 @@ bie bie bie bie -bie +bje bie bsd eWd -eWd -eWd +dAX +tVp +tWf ayf aao aao @@ -49093,7 +39854,6 @@ aao aao aao aao -aao gxJ iGK iGK @@ -49170,7 +39930,7 @@ wcs aae aae aae -aLh +wHg aah aah aaU @@ -49218,9 +39978,9 @@ ahR aln ajy bFw -bjj -bjj -jtX +xWR +xWR +iTN axZ avT azo @@ -49263,11 +40023,11 @@ bdZ aUQ bdZ bev -beP -aSB -bfT -aSB -aSB +woe +tVp +wbD +tVp +tVp bgX bsa bpu @@ -49293,8 +40053,9 @@ brb bpu bsa eWd -eWd -eWd +dAX +tVp +wZP ayf aao aao @@ -49313,7 +40074,6 @@ aao aao aao aao -aao kvp wog wog @@ -49435,9 +40195,9 @@ akK aln ajy bFw -kRo -joi -bjX +hyC +iNE +pPh axZ avT avT @@ -49470,7 +40230,7 @@ asj aoH aoH asK -asK +jUd asK beQ aYF @@ -49480,11 +40240,11 @@ bdZ aUQ bdZ bev -beP -aSB -aSB -aSB -aSB +woe +tVp +tVp +tVp +tVp bgX eWd eWd @@ -49510,8 +40270,9 @@ eWd eWd eWd eWd -eWd -eWd +dAX +tVp +shK ayf aao aao @@ -49530,7 +40291,6 @@ aao aao aao aao -aao kvp wog wog @@ -49652,9 +40412,9 @@ ahR aln ajy bFw -kRo -kRo -bjX +hyC +hyC +pPh axZ avT avT @@ -49697,24 +40457,24 @@ bdZ aUQ bdZ bev -aSB -aSB -aSB -xGT -aWk -eWd -eWd +tVp +aao +aao +tVp +tVp +bgX +sbm kHK kHK -eWd -eWd -eWd -eWd +bmN +bmN +bmN eWd eWd eWd bmN bmN +eWd bmN bmN bmN @@ -49727,10 +40487,10 @@ eWd bmN bmN bmN -bmN -bmN +vGE +tVp +ayf ayf -aao aao aao aao @@ -49869,9 +40629,9 @@ atm aln ajy bFw -rhx -bjv -bqg +ccI +xcz +dws aya avT azo @@ -49914,38 +40674,38 @@ bdZ bdZ bdZ bev -aSB -aSB -aSB -aVG -asK -asK -asK -bdg -bbg -asK -atw -atw -atw -atw -atw -asK +tVp +tVp +aao +aao +tVp +bgX +sbm +eWd +dAX +kOv +qNH +mDt +bgX +eWd +cpQ +ayf ayf bsa ayf -axX -maD -boD -axX -bpx -ufD -bpv -brd -bpx -bpx -bpx -bpx -bpx +ayf +qcQ +tVp +tVp +tVp +bgX +eWd +dAX +tVp +qcQ +tVp +tVp +tVp aao aao aao @@ -50131,39 +40891,39 @@ bdZ bdZ bdZ bev -aSB -aSB -bfU -aVG -asK -svp -svp -aZu -aZu -bbM -aZu -bjP -tgk -qHZ -qHZ -asK +tVp +tVp +jDo +tVp +tVp +bgX +eWd +eWd +eWd +vKv +vKv +vKv +eWd +eWd +qNU ayf ayf ayf -azb -hhK -sCt -azb -bpx -ufD -bpv -brd -bpx -bpx -bpx -bpx -bpx -bpx +ayf +ayf +tVp +tVp +qcQ +tVp +bgX +eWd +dAX +tVp +tVp +tVp +tVp +tVp +qcQ aao aao aao @@ -50348,40 +41108,40 @@ bdZ bdZ bdZ beQ -aSB -aSB -aSB -aVG -asK -bhb -bhb -bhb -bhD -bhb -bhb -bhb -bhb -bhb -aLn -asK +tVp +tVp +tVp +tVp +tVp +bgX +eWd +eWd +kHK +bmN +bmN +bmN +eWd +eWd +gpA +ayf aFc aFc aFc -azb -hhK -sCt -azb -bpx -ufD -bpv -brd -bpx -bpx -bpx -bpx -bpx -bpx -oip +ayf +quX +quX +axX +tVp +bgX +eWd +dAX +tVp +tVp +tVp +tVp +tVp +tVp +fsY lzI aao aao @@ -50565,40 +41325,40 @@ bdZ bdZ bdZ beQ -aSB -aSB -aSB -aVG -asK -bhc -bbe -bfz -aZu -aZu -aZu -aZu -aZu -bhb -blb -asK +tVp +tVp +tVp +tVp +tVp +mAY +vsi +dIH +dAX +mDt +jrN +kOv +bgX +eWd +lTV +gWD aFc aFc -bme +bsI azb -hhK -sCt +vkv +kVT azb -bpx -ufD -bpv -bpv -brG -brG -brG -brG -brG -brG -brG +vKv +eWd +eWd +eWd +vKv +vKv +vKv +vKv +vKv +vKv +vKv qzO cHn cHn @@ -50774,48 +41534,48 @@ aoH aYH aXH asK -beQ -aSB -beR -bcr -bcs -bcs -bcs -bew -beR -aSB -aSB -aVG -asK -bhd -bhD -bik -bhD -bhb -bhb -bhb -bhb -bhb -aZu -asK +bdZ +aWk +swk +aUQ +aUQ +aUQ +aUQ +bdZ +tUY +vKv +vKv +vKv +vKv +dVp +kHK +crl +kHK +vKv +vKv +vKv +eWd +eWd +okt +gWD aFc aFc -bme +bsI azb hhK -sCt -azb -bpy -ufD -bpv -bpv -bpv -bpv -bpv -bpv -bpv -bpv -bpv +nVq +bqf +eWd +eWd +eWd +eWd +eWd +eWd +eWd +eWd +eWd +eWd +eWd qzO bGL bGL @@ -50850,7 +41610,7 @@ aao aao aao aao -ers +lOY aao uHQ oRK @@ -50992,47 +41752,47 @@ aYI aXH asK bdZ -aWk -beS -bcs -bdf -bdf -beb -bdf -beS -aWk -aWk bdZ asK -oEJ -oEJ -baz -aZO -bjg -bjt -bjQ -bkk -bjQ -blc +aUQ +bdZ +bdZ +iCu +bdZ asK +eWd +eWd +eWd +asK +eWd +eWd +crl +kHK +tMa +tMa +gWD +eWd +eWd +ice +gWD aFc aFc -bme +bsI azb hhK sCt azb -bme -bqe -heU -heU -heU -heU -heU -heU -heU -heU -heU +bmN +bmN +bmN +bmN +bmN +bmN +bmN +bmN +bmN +bmN +bmN qzO bGL bGL @@ -51231,10 +41991,10 @@ asK asK bkz asK -lMt +xOk aFc -bme -bme +ftY +kcH azb hhK sCt @@ -51427,30 +42187,30 @@ aZm aZL bay aZu -bbM +asK bcu bdg bdg bcu bdg -beT -aZu -aZu -aZu +asK aZu aZu aZu +asK +kjH +beT baz aZu bbM -beT +rYS asK aZw aZu bld asK -bme -bme +ftY +kcH bme azb hhK @@ -51644,29 +42404,29 @@ aXH asK baz aZu -aZO +cRb aZu aZu aZu aZu aZu -beU +hah bfy bfV -bfF -baF -baF -aZu -baz -aZu -aZu +bgq +atA +gMC +bhb +bik +bhb +bhb aZu asK aZu bkA hzy axL -bme +bsI bme bme azb @@ -51871,19 +42631,19 @@ bbe bfz aZO aZu -aZu -aZu -aZu +atA +bkn +bhb bfB bgD -bjh +eYK bbe bjR bbe bbe aLo axL -bme +bsI bme bme azb @@ -51899,7 +42659,7 @@ rzb bsK axX bme -bme +nra aao glB xpb @@ -52007,7 +42767,7 @@ aae aae aae aae -lMB +nZd aae aae aaq @@ -52085,22 +42845,22 @@ bdK aZM aZu beU -bfA -bfW -bgq -bfy +hVP +bgE baF +asK aZu -baz -aZu -aZO -aZO +bhb +bik +bhb +bhD +ugc atA bkl aZO blg axL -bme +bsI bme bme azb @@ -52115,7 +42875,7 @@ tTI rzb bsL azb -bme +nra bpx aao euF @@ -52305,19 +43065,19 @@ aZu bfB bbe bbe -bgD +bjR bbe bhE bbR biK -aZO -aZO +vkF +fVt atA bkl aZu aZu axL -bme +bsI bme bme azb @@ -52521,21 +43281,21 @@ aZu beU bfC bfX -baF -bgE bhe asK -bio -cwk -aZu -aZu +asK +asK +wLU +bbg +asK +asK asK aLl aZu blh asK -bme -bme +ftY +fbf bme axX azB @@ -53152,7 +43912,7 @@ aQM aQM aSI aOB -dlr +aNo aNo aNm aoH @@ -53166,7 +43926,7 @@ bbg auk asK asK -aZu +bee aZu bex bbe @@ -53383,7 +44143,7 @@ aZO baz bcy asK -aZu +bee aZu baz beU @@ -53592,7 +44352,7 @@ aWB aoH aXH aXH -asK +mOc aZu aZO aZO @@ -53601,8 +44361,8 @@ bbR bcz asK bdM -bee -bey +aZu +eRe aZu aZu aZu @@ -53869,7 +44629,7 @@ wog wog wog aao -uCD +bRC aao aao aao @@ -54177,7 +44937,7 @@ aao aao aao aao -rgp +asc acp adh adh @@ -54277,7 +45037,7 @@ bnr bok bnr bpi -kVT +mfQ ayr nPz nVq @@ -54392,9 +45152,9 @@ aao aao aao aao -pXu -iyY -xbV +dQR +dXK +asc acp adi adz @@ -54418,13 +45178,13 @@ ahP aog aoR alu -aqv +atq aqw aqw aqw -atp +hbx amj -auJ +ujq avw awb awP @@ -54608,10 +45368,10 @@ aao aao aao aao -iyY -xBS -wXg -uzv +dXK +hQO +aqL +asc acp adj adA @@ -54635,13 +45395,13 @@ ahP ahP ajz alD -aqv +atq aqw arR arR -atq +ark amj -auK +kXV aqw awc awQ @@ -54824,11 +45584,11 @@ aao aao aao aao -mDN -wXg -pMv -wXg -pow +kfx +aqL +nnz +aqL +asc acp adk adk @@ -54852,11 +45612,11 @@ ahP ahP ajz alD -aqv +atq aqw arR asC -atq +ark amj auK aqw @@ -54892,7 +45652,7 @@ aOB aVO aoH asK -aXJ +jUd asK asK aZu @@ -55040,12 +45800,12 @@ aao aao aao aao -pXu -mDN -wXg -wXg -wXg -wcs +dQR +kfx +aqL +aqL +aqL +asc acp aaX adB @@ -55069,7 +45829,7 @@ ahP ahP ajy alD -aqv +aqw ari arS asD @@ -55108,9 +45868,9 @@ aQS aQS aQS aoH -aYe -aXH -aYe +aHF +aHF +aHF asK aZv aZR @@ -55256,13 +46016,13 @@ pXu aao aao aao -pXu -pXu -xBS -wXg -pow -pow -pow +dQR +dQR +hQO +aqL +agq +ahe +ahS acp acp acp @@ -55325,9 +46085,9 @@ apQ apQ apQ aoH -aYe -aXH -aYe +aHF +aHF +aHF asK aZu aZu @@ -55356,7 +46116,7 @@ asK asK axX bmn -bmU +bmV bns hhK tTI @@ -55470,14 +46230,14 @@ cGZ pXu pXu pXu -pXu -pXu -iyY -pXu -tlj -pow -wcs -pow +rgp +dQR +dXK +dQR +agq +ahe +ahe +ahS acp acp acp @@ -55542,9 +46302,9 @@ aGV aVh aVP aoH -aYe -aXH -aYf +aHF +aHF +wZv asK aZw aZu @@ -55577,7 +46337,7 @@ bmV ayr bnV tTI -cKu +eYy ayZ bpF slG @@ -55687,14 +46447,14 @@ wXg wKx pXu pXu -pXu -xBS -wXg -cGZ -vwP -acp +tnG +hQO +aqL +lOL +asc acp acp +agy acp acL acT @@ -55719,12 +46479,12 @@ ana acp acp acp -qKx -aqy -ark -arV -ark -ark +sXd +ume +aqv +bOZ +aqv +aqv amj auL avx @@ -55759,9 +46519,9 @@ aSO aVi aVO aoH -aYe -aXH -aYe +aHF +aHF +aHF asK aZx aZx @@ -55794,7 +46554,7 @@ ayr ayr xAX tTI -cKu +eYy ayZ nPz tTI @@ -55904,15 +46664,15 @@ wXg wKx pXu pXu -xBS -wXg -pMv -wXg -mGq +hgO +aqL +nnz +aqL +asc acp acy -acC -acE +cGc +cGc acC acU acC @@ -55930,13 +46690,13 @@ aiX afS afS afS -alp +acr ame aic aer afS cLZ -alX +acp amj amj amj @@ -55976,9 +46736,9 @@ aoH aoH aoH aoH -asK -asK -asK +aHF +aHF +aHF asK atw atw @@ -56119,17 +46879,17 @@ aao wXg wXg wKx -pXu -mDN -wXg -geC -wXg -wXg -mGq +dQR +kfx +idn +gdK +aqL +aqL +asc acq -acy +acz +acC acC -acE acM acM acM @@ -56146,14 +46906,14 @@ acp aiZ afS afS -akM -acr +afS +alp ame ahj anx afS akM -alX +acp agY arl arl @@ -56193,9 +46953,9 @@ aMg aMg aNw aNw -aNw -aNw -aMg +bhU +bhU +aHF aMg aNw aNw @@ -56333,20 +47093,20 @@ aao aao aao aao -pRP -ajD -akP -akP -aus -akX -alH -akX -wpf -vwP +aao +nlB +dQR +dQR +dQR +idn +nnz +aqL +wWE +asc acr -acy +acz +acC acC -acE acM acM acM @@ -56363,15 +47123,15 @@ acp aja ajC ake -aiX +rat acr ame ahj aer afS aoT -alX -aqw +acp +tLO arm aip asE @@ -56410,9 +47170,9 @@ aBR aBR aBR aBR -aBR -aBR -aBR +aMc +aHF +aHD aYK aIp aBR @@ -56550,16 +47310,16 @@ aao aao aao aao -iRf -akh -akh -alq -aWy -wMp -akX -akX -hKM -vwP +aao +dQR +dQR +dQR +dQR +hFV +aqL +aqL +lbh +asc acs acz acC @@ -56587,9 +47347,9 @@ ahj acp acp acp -alX -aqB -arn +acp +efK +arl aiY asF arl @@ -56627,9 +47387,9 @@ aBR aBR aFL aBR -aBR -aBR -aBR +aMc +aHF +aHD aBR aBR aBR @@ -56678,9 +47438,9 @@ duA ykR iaC pWs -vVz -vVz -vVz +lCt +lCt +lCt jxA duA ykR @@ -56767,17 +47527,17 @@ aao aao aao aao -iRf -akh -akh -akh -lVm -aad -akZ -akZ -aad -vwP -acp +aao +dQR +dQR +dQR +dQR +tnG +nlB +nlB +dQR +asc +acq acz acD acF @@ -56794,19 +47554,19 @@ agz ahm ahj acp -aZp -bhH -akf -bhN +jWR +cGi +kCR +aWj biA ame ahj aer afS bNE -alX -alu -alu +acp +anZ +anZ alu alu alu @@ -56844,9 +47604,9 @@ aFM aFM aFM aFM -aFM -aFM -aFM +aHF +aHF +aHF aFM aFM aFM @@ -56984,20 +47744,20 @@ aao aao aao aao -iRf -akh -akh -akh -aWy -aad -aad -aad -aad -xbV +aao +aao +aao +dQR +dQR +tnG +dQR +dQR +dQR +asc acq acz acD -acG +acD acM acM acM @@ -57011,24 +47771,24 @@ agz ahm aie acp -aZq -adS -akg -akN +eFr +aiX +qQl +iis afS ame ahj anx afS akM -alX -aEB -aro -arY -asG -ats +acp +eKm +rbV +rbV +rbV +vxv alu -auL +auN aqw awh awU @@ -57062,7 +47822,7 @@ apC apC apC apJ -apJ +lrs apJ apC apC @@ -57072,7 +47832,7 @@ apC apC apC apC -nGt +wRl aHF aHD aBR @@ -57201,20 +47961,20 @@ aao aao aao aao -iRf -iRf -iRf -iRf -iRf aao -aad -aad -alJ -tFM +aao +aao +aao +aao +aao +dQR +dQR +kfx +asc acp -acy +acz +acC acC -acE acM acV acV @@ -57228,23 +47988,23 @@ agz ahn ahj acp -aZq -adS -adS -akN +eFr +aiX +aiX +iis afS amg ahj aer afS aoT -alX -aqD -aqD -aqD -aqD -att -atW +acp +aqM +gdK +gdK +aqL +yej +vGN atr atr arU @@ -57275,7 +48035,7 @@ aQV aRT aof aTV -mGS +mIc tap aof aNK @@ -57424,14 +48184,14 @@ aao aao aao aao -aad -abU -alJ -tFM +dQR +elh +kfx +asc acq -acy +acz +acC acC -acE acC vPZ acD @@ -57445,23 +48205,23 @@ agz ahn aic acp -aZP -bhM -bhM -akO +jTa +raU +raU +woK afS amg aic acp acp acp -alX -aqD -aqD -aqD -aqD -aqD -alu +acp +aqM +gdK +aqL +aqL +asc +ayN auL aqw azv @@ -57546,9 +48306,9 @@ duA ykR iaC pWs -vVz -vVz -vVz +lCt +lCt +lCt jxA duA ykR @@ -57641,14 +48401,14 @@ aao aao aao aao -abr -aad -alJ -tFM +tjX +dQR +kfx +asc acp acy -acC -acE +cGc +cGc acC acC adp @@ -57672,14 +48432,14 @@ aic aer afS eLp -alX -aqD -aqD -aqD -aqD -atu -alu -auN +acp +aqM +aqL +aqL +aqL +asc +alD +auL arR awi awV @@ -57857,14 +48617,14 @@ aao aao aao aao -akY -cJG -aad -abO -vAy -acp +gdK +lOL +dQR +iXx +asc acp acp +agy acp acp acX @@ -57889,14 +48649,14 @@ aic anx afS akM -alX -aqE -aqE -aqE -aqE -atv -alu -auL +acp +aqM +aqL +aqL +aqL +asc +alD +uDt arR arR aqw @@ -58074,14 +48834,14 @@ aao aao aao aao -akX -akX -hKM -aad -qez -aao -aao -aao +aqL +aqL +lbh +dQR +ags +alF +alF +alF aao acp acp @@ -58106,14 +48866,14 @@ anb aer afS aoT -alX -aqF -aqF -aqF -aqF -aqD -alu -auO +acp +aqM +aqL +aqL +aqL +asc +alD +rfX avy aqw avy @@ -58291,14 +49051,14 @@ aao aao aao aao -akX -akX -hKM -aad -aad -aao -aao -aao +aqL +aqL +lbh +dQR +kfx +aqL +arp +acP aao aao aao @@ -58323,18 +49083,18 @@ anc acp acp acp -alX -aqD -aqD -aqD -aqD -aqD +acp +aqM +aqL +aqL +aqL +hGv +alu +alu +pzC +fni +pzC alu -amj -amj -awj -amj -amj alu ayR azv @@ -58382,9 +49142,9 @@ aBR tHl bhi dbi -lSL -lSL -aMc +oWk +oWk +fTg aHD aIn bjD @@ -58507,16 +49267,16 @@ aao aao aao aao -akX -akX -akX -hKM -aad -aad -aao -aao -aao -aao +aqL +aqL +aqL +lbh +dQR +bGC +aqL +arp +acP +acP aao aao aao @@ -58540,18 +49300,18 @@ aic aer afS bNE -alX -aqD -aqD -aqD -aqD -aqD +acp +aqM +aqL +aqL +aqL +cBq alu -auP +pIl avz aqw auP -avz +qoQ alu ayS azv @@ -58599,9 +49359,9 @@ aBR bhi bhi dbi -nHb -lAK -bYp +qby +stZ +cHz aHD eRI ofX @@ -58723,21 +49483,21 @@ aao aao aao aao -akX -alH -akX -abL -aad -aad -aad -aao -aao -aao -aao -aao -aao -aao -aao +aqL +nnz +aqL +rVE +dQR +dXK +hQO +aqL +arp +ldD +acP +acP +acP +acP +acP acP asc acp @@ -58757,18 +49517,18 @@ ahj anx afS akM -alX -aqE -aqE -aqE -aqE -aqD +acp +aqM +aqL +aqL +aqL +asc alu -auQ +oji avA -awk +aqw awW -axC +tbS alu ayT awi @@ -58816,9 +49576,9 @@ aBR bhi bhi dbi -nHb -nHb -twS +qby +qby +kWW aHF mSn bjE @@ -58940,21 +49700,21 @@ aao aao aao aao -akX -akX -wpf -aad -aad -aad -aad -aao -aao -aao -aao -aao -aao -aao -aao +aqL +aqL +wWE +dQR +eWv +fPe +fPe +wss +akP +fPe +fPe +aus +acP +acP +acP acP asc acp @@ -58974,18 +49734,18 @@ ahj aer afS aoT -alX -aqF -aqF -aqF -aqF -aqD +acp +aqM +aqL +aqL +aqL +asc alu -auR +oji avA -awl +aqw awW -axD +tbS alu ayU aqw @@ -59033,9 +49793,9 @@ aBR eTj bhi dbi -mdU -lRu -aMc +pTo +uyd +gMj aHF aMg bjF @@ -59157,22 +49917,22 @@ aao aao aao aao -wpf -akZ -aad -aad -aad -aad -aad -aao -aao -aao -aao -aao -aao -aao +wWE +nlB +dQR +dQR +nZB +pRP +iRf +akh +mhV +oMf +pRP +aWy +acP acP acP +jeO asc acp afn @@ -59191,18 +49951,18 @@ ahj acp acp acp -alX -aqD -aqD -aqD -aqD -aqD +acp +aqM +aqL +aqL +aqL +asc alu -auS +gts avA aqw awW -avA +tbS alu alu azH @@ -59374,23 +50134,23 @@ aao aao aao aao -abr -aad -aad -oRs -oRs -aad -aad -aao -aao -aao -aao -aao -aao +tjX +dQR +dQR +dXK +aaB +pRP +sWh +hFv +hFv +kAs +oMf +aWy acP acP acP -asc +bJQ +aao acp afo afT @@ -59408,20 +50168,20 @@ ahj any aoh aoU -alX -aqD -aqD -aqD -aqD -aqD +acq +aqM +aqL +aqL +aqL +asc alu -auQ +oji avA -awk +vfo awW -axC +tbS alu -ayV +kRy ayV ayV alu @@ -59591,23 +50351,23 @@ aao aao aao aao -abs -aad -alJ -vRR -akX -hKM -aad -aao -aao -aao -aao -aao -acP -acP +qMS +dQR +kfx +fsT +aaB +oMf +dkY +qDZ +hJH +lqp +iRf +aWy acP acP -asc +jeO +aqL +aao acp afp afT @@ -59625,20 +50385,20 @@ ahj aer aoi aoV -alX -aqE -aqE -aqE -aqE -atu +acq +aqM +aqL +aqL +asa +hGv alu -auT +jRH avB -awm +pOt awX -axE -alu -ayW +gej +uST +vhw ayV ayV alu @@ -59809,22 +50569,22 @@ aao aao aao aao -abr -alJ -akX -akX -cJG -aad -aao -aao -aao +tjX +kfx +aqL +nZB +oMf +dkY +qDZ +qDZ +cnG +iRf +aWy +acP +jeO +aqL aao aao -acP -acP -acP -acP -asc acp afo afT @@ -59842,12 +50602,12 @@ ahj acp aer aer -alX -alu -alu -alu -alu -alu +acp +aqM +aqL +arp +acP +asc alu alu alu @@ -60026,22 +50786,22 @@ aao aao aao aao -abr -alJ -akX -akX -akY -hKM -aao -aao +tjX +kfx +aqL +nZB +pRP +iXs +scK +scK +oUY +oMf +wmN +acP +agq aao aao aao -acP -agq -ahe -ahe -ahS acp afq afS @@ -60060,11 +50820,11 @@ anz aoj aoj apH -aqG -alF -alF -alF -alF +kVR +aqL +arp +acP +ags alF alF alF @@ -60228,32 +50988,32 @@ aaa (91,1,1) = {" aaa aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab aao -abs -abs -wMp -alH -akX -hKM aao aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +qMS +qMS +vBI +aaB +pRP +oMf +iRf +oMf +oMf +pRP +wmN acP asc acp @@ -60422,7 +51182,7 @@ aCe aCe aCe aCe -yfe +gWv aao jrD jrD @@ -60444,33 +51204,33 @@ aaa "} (92,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao -abr -alJ -akX -akX -hKM aao aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +tjX +kfx +cgO +pJt +pJt +gPc +gPc +gPc +pJt +uIz acP asc acp @@ -60661,32 +51421,32 @@ aaa "} (93,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao -abr -aad -akZ -akZ -aad aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +dQR +nlB +nlB +vBI +arp +acP +acP +acP acP acP asc @@ -60878,34 +51638,34 @@ aaa "} (94,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao -aad -aad -aad -aad -aad aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +dQR +dQR +kfx +arp acP acP +aao +aao +acP asc acp adS @@ -61095,34 +51855,34 @@ aaa "} (95,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao -abr -aad -aad -aad -oRs aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +tjX +dQR +dQR +dQR +hQO +arp +acP acP acP +aao +acP asc acp adT @@ -61312,33 +52072,33 @@ aaa "} (96,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao -abr -abN -aad -tLt -akX aao aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +tjX +vHU +dQR +hQO +aqL +aqL +lUa +acP +acP +acP acP asc acp @@ -61350,7 +52110,7 @@ acp acp acp acp -aiN +akr adS ajL akq @@ -61529,33 +52289,33 @@ aaa "} (97,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao -abs -aad -alJ -akX -akX aao aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +qMS +dQR +kfx +aqL +aqL +aqL +arp +acP +acP +acP acP asc acp @@ -61570,7 +52330,7 @@ adS ahk adk ajL -akr +aiN acr adS ajL @@ -61636,14 +52396,14 @@ aNw aNw aNw aNw -aMg -aMg -vis aHF aHF -aMg -aMg -aMg +bhR +aHF +aHF +aHF +aHF +aHF awp bkD blx @@ -61746,33 +52506,33 @@ aaa "} (98,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao aao -abr -alJ -akX -alH aao aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +tjX +kfx +aqL +nnz +aqL +arp +acP +acP +acP acP asc acq @@ -61853,14 +52613,14 @@ aIn aIn aIn aKt -aKt -aKt -bhS -biY -dzY -dWg -dWg -bke +aMc +aHF +tHB +aVp +aVp +aVp +aVp +vIQ bku bmF wtC @@ -61963,33 +52723,33 @@ aaa "} (99,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao aao -abr -qmY -wMp -akX aao aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +tjX +ciG +vBI +aqL +aqL +aqL +lUa +acP +acP acP asc adG @@ -62006,12 +52766,12 @@ aje ajM adS acr -aly -amv -aly +cLq +lym +alx adS -aly -aly +cLq +cLq acr aqK arq @@ -62026,13 +52786,13 @@ ayY axG ayY ayY -joa +kxr asJ asJ aua asJ aDQ -aEL +eYH aws amI aHD @@ -62070,14 +52830,14 @@ aIn aKt aIp aBR -aWI -aFM -aFM +aMc +aHF +aHF +aHF +aHF +aHF aHF aHF -aFM -aFM -aFM awp bkE bly @@ -62180,37 +52940,37 @@ aaa "} (100,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao aao -abr -abr -alJ -akX aao aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +tjX +tjX +kfx +aqL +aqL +aqL +arp +acP +acP acP asc acq -adX +jAR aeu adc afs @@ -62288,12 +53048,12 @@ aBR aBR aBR aMc -erf -auX -auX -auX -auX -erf +aHF +aMg +lID +lID +aMg +aHF aHF awp bkG @@ -62397,37 +53157,37 @@ aaa "} (101,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao aao -abr -abr -tLt -akX aao aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +tjX +tjX +hQO +aqL +aqL +aao +aqL +lUa +acP acP asc acp -adY +mtM jGn adW adW @@ -62446,7 +53206,7 @@ adS anD alA alA -acr +sVB aqM aqL ase @@ -62505,12 +53265,12 @@ aKl aIm aBR aMc -auX -gpR -gpR +aHD +dPJ gpR gpR -auX +dPJ +nvn bkf awp bkH @@ -62614,33 +53374,33 @@ aaa "} (102,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao -abq -aad -tLt -akX -akX aao aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +nEH +dQR +hQO +aqL +aqL +aqL +aao +aao +arp +acP acP asc acp @@ -62663,9 +53423,9 @@ adS adk adk adS -alZ +acr aqM -arr +qwm asc amI aty @@ -62722,12 +53482,12 @@ aFM aHC aBR aMc -auX +fHw gpR gpR gpR gpR -auX +wBu aHF awM awM @@ -62787,7 +53547,7 @@ byM ycP rTq aBE -bww +dmO bww bww hkv @@ -62831,33 +53591,33 @@ aaa "} (103,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao -abr -alJ -akX -akX -akX aao aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +tjX +kfx +aqL +aqL +aqL +aqL +aqL +aao +arp +acP acP ags alF @@ -62880,7 +53640,7 @@ ang anE aok adk -acr +alZ aqM acP asc @@ -62898,8 +53658,8 @@ azS amn amn amn -aCQ -amn +cgt +eqr amn amn amn @@ -62939,12 +53699,12 @@ aHF aHD aBR aMc -auX +fHw gpR gpR gpR gpR -auX +wBu aHF awM bkI @@ -63004,7 +53764,7 @@ aNx bAA bDi aBE -gOf +hHG bBv bww bBN @@ -63048,33 +53808,33 @@ aaa "} (104,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao -aad -aad -wMp -akX -akX aao aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +dQR +dQR +vBI +aqL +aqL +aqL +aqL +aqL +arp +acP acP acP acP @@ -63105,7 +53865,7 @@ amn atz atY amn -avE +pvj asJ awY axH @@ -63114,11 +53874,11 @@ asJ azT amn aBj -aBV +qYB +aBk aBk -aDR aBj -aFQ +rKy amn aHD aIp @@ -63156,12 +53916,12 @@ aMc aHD aIm aMc -auX -gpR -gpR -gpR +aHD +dPJ gpR -auX +oOw +dPJ +aMc aHF awM bkJ @@ -63221,7 +53981,7 @@ ofJ aOP aOP aBE -gOf +hHG bww bww bBO @@ -63265,39 +54025,39 @@ aaa "} (105,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao -abq -aad -aad -aad -wMp -akX -akY aao aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +nEH +dQR +dQR +dQR +vBI +aqL +gdK +aqL +aqL +arp acP acP -acP -acP -acP +lPg +mtS +mtS +mtS +lPg acP asc acr @@ -63335,7 +54095,7 @@ aBW aCR aBW aEM -aBW +eWB amn aHD aBR @@ -63373,12 +54133,12 @@ vmm aHF aFM aHF -erf -auX -auX -auX -auX -erf +aHF +aCN +lRC +bSy +aCN +aHF aHF awM awM @@ -63482,39 +54242,39 @@ aaa "} (106,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao -cJG -aad -aad -abX -aad -akZ -wMp aao aao aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +lOL +dQR +dQR +cPg +dQR +nlB +vBI +aqL +aqL +arp acP acP -acP -acP +rZU +khK +taV +dVM +rVT acP ags alF @@ -63549,11 +54309,11 @@ azV amn aBl aBX +aBk +aBk amn amn amn -aBk -amn aHD aBR aBR @@ -63699,29 +54459,8 @@ aaa "} (107,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao -akX -cJG -oRs -aad -aad -aad -aad aao aao aao @@ -63730,8 +54469,29 @@ aao aao aao aao +aao +aao +aao +aao +aao +aao +aqL +lOL +dXK +dQR +dQR +dQR +bGC +aqL +aqL +arp acP acP +rZU +khK +ahS +dVM +rVT acP acP acP @@ -63762,14 +54522,14 @@ dJc axK ayp asJ -aws +jph amn aBm -aBW -amn -ooP +mBc +aBk +aBk aEN -aFR +ibV amn aHD aBR @@ -63807,12 +54567,12 @@ aMc aHD aIn aMc -erf -auX -auX -auX -auX -erf +aHF +aMg +lID +lID +aMg +aHF aHF awp bkK @@ -63916,29 +54676,8 @@ aaa "} (108,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao -akX -akX -akX -hKM -aad -aad -abM aao aao aao @@ -63947,8 +54686,29 @@ aao aao aao aao +aao +aao +aao +aao +aao +aao +aqL +aqL +aqL +lbh +dQR +dQR +kfx +aqL +aqL +arp acP acP +rZU +ahS +ahS +qse +rVT acP acP acP @@ -63982,11 +54742,11 @@ asJ azW amn aBn -aBW -amn +jOj +aBk +aBk amn amn -aFS amn aHD aBR @@ -64024,12 +54784,12 @@ aHF aHD aWJ aMc -auX -gpR -gpR +aHD +dPJ gpR gpR -auX +dPJ +nvn aHF awp bkL @@ -64133,29 +54893,8 @@ aaa "} (109,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao -akX -akY -akX -hKM -aad -aad -abV aao aao aao @@ -64165,8 +54904,29 @@ aao aao aao aao +aao +aao +aao +aao +aao +aqL +gdK +aqL +lbh +dQR +dQR +hQO +aqL +aqL +arp acP acP +ase +ahS +ahS +ahS +aqM +acP acP acP acP @@ -64196,14 +54956,14 @@ axc awZ ayp asJ -azX -amn +aws +enJ aBo aBW -amn -arz -aEN aBk +aBk +aEN +ozO amn aHD aBR @@ -64241,12 +55001,12 @@ aMg axW aIp aMc -auX +fHw gpR gpR gpR gpR -auX +wBu aHF awp bkM @@ -64350,28 +55110,8 @@ aaa "} (110,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao -akX -akX -akX -hKM -aad -abM aao aao aao @@ -64382,7 +55122,27 @@ aao aao aao aao +aao +aao +aao +aao +aqL +aqL +aqL +lbh +dQR +kfx +aqL +aqL +aqL +arp +acP acP +rZU +ahS +ahS +khK +rVT acP acP acP @@ -64414,14 +55174,14 @@ axd asJ asJ azY -aAD +qus aBp aBW +aBk +aBk amn amn amn -aBk -amn aHD aBR aBR @@ -64458,12 +55218,12 @@ aKt aIp aBR aMc -auX +fHw gpR gpR gpR gpR -auX +wBu aHF awp qeK @@ -64475,8 +55235,8 @@ bnH yar box yar -iyd -iyd +nzB +nzB eKU yar yar @@ -64567,28 +55327,9 @@ aaa "} (111,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao -alH -wpf -aad -aad -abM aao aao aao @@ -64599,8 +55340,27 @@ aao aao aao aao +aao +aao +aao +aao +nnz +wWE +dQR +dQR +kfx +aqL +aqL +aqL +arp acP acP +rZU +ahS +khK +taV +rVT +acP acP acP acP @@ -64630,14 +55390,14 @@ aua aua awn aua -aws +ltK amn aBq -aBY -amn -aDT -aEN +aBq +szZ aBk +aEN +nOe amn aHF aFM @@ -64675,12 +55435,12 @@ aBR aBR aBR aWW -auX -gpR -gpR -gpR +aHD +dPJ gpR -auX +oOw +dPJ +aMc aHF awp awp @@ -64710,7 +55470,7 @@ buc buc buc buu -rrl +ejp azO meT meT @@ -64784,29 +55544,9 @@ aaa "} (112,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao -akX -hKM -aad -aad -alJ -vRR aao aao aao @@ -64818,6 +55558,26 @@ aao aao aao aao +aao +aao +aao +aqL +lbh +dQR +dQR +kfx +fsT +aqL +aqL +aqL +lUa +acP +rZU +hDK +xQd +eVM +rVT +acP acP acP acP @@ -64892,12 +55652,12 @@ aBR aBR aBR aMc -erf -auX -auX -auX -auX -erf +aHF +aCN +lRC +bSy +aCN +aHF aHF awp bkO @@ -65001,29 +55761,11 @@ aaa "} (113,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao aao aao -abY -acb -dtX -wDK aao aao aao @@ -65036,6 +55778,24 @@ aao aao aao aao +aao +aao +tjX +dQR +hQO +aqL +aqL +aqL +aqL +arp +acP +lPg +vgE +vgE +vgE +lPg +acP +acP acP acP ags @@ -65061,7 +55821,7 @@ amn avG awq awq -awq +tdz awq axM aws @@ -65157,7 +55917,7 @@ bvY kdr kdr aBv -bwZ +efh bxo bxz bxo @@ -65218,29 +55978,11 @@ aaa "} (114,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao aao aao -abs -alJ -akX -akX aao aao aao @@ -65253,6 +55995,24 @@ aao aao aao aao +aao +aao +qMS +kfx +aqL +aqL +aqL +aao +aqL +aqL +lUa +acP +acP +acP +acP +acP +acP +acP acP acP acP @@ -65277,7 +56037,7 @@ atY amn asJ awq -axf +mnv axN ays axN @@ -65330,9 +56090,9 @@ asv aHF aHF aHF -asv -awf -awf +aHF +aHF +aHF awp bkE blC @@ -65435,29 +56195,12 @@ aaa "} (115,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao aao aao aao -alJ -alH -akX aao aao aao @@ -65471,6 +56214,23 @@ aao aao aao aao +aao +kfx +nnz +aqL +aao +aao +aao +aqL +arp +acP +acP +acP +acP +acP +acP +acP +acP acP acP acP @@ -65548,8 +56308,8 @@ aHF aHF aHF asv -bjJ -bgx +atJ +atJ awp bkP awp @@ -65652,29 +56412,12 @@ aaa "} (116,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao aao aao aao -acc -wDK -wDK aao aao aao @@ -65689,6 +56432,23 @@ aao aao aao aao +kfx +aqL +aqL +aqL +aqL +aqL +aqL +arp +acP +acP +acP +acP +acP +acP +acP +acP +acP acP acP acP @@ -65709,7 +56469,7 @@ amI aty atY amn -avE +pvj awr axg axO @@ -65765,7 +56525,7 @@ aHF aHF aHF asv -beI +bjJ bgx bkw blX @@ -65869,30 +56629,12 @@ aaa "} (117,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao aao aao aao -aad -wMp -akX -akX aao aao aao @@ -65907,6 +56649,24 @@ aao aao aao aao +dQR +vBI +aqL +aqL +aqL +aqL +aqL +aqL +lUa +acP +acP +acP +acP +acP +acP +acP +acP +acP acP acP acP @@ -65964,7 +56724,7 @@ asH aYZ aZE bac -bbt +aYY bbt bac bac @@ -65972,8 +56732,8 @@ bdv bac bcf asv -bff -bfK +lNp +gAX bge bgs bfM @@ -66086,32 +56846,12 @@ aaa "} (118,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao aao aao aao -aad -abr -akZ -xWI -akZ -ack aao aao aao @@ -66125,13 +56865,33 @@ aao aao aao aao +aao +dQR +tjX +nlB +dOZ +nlB +vBI +aqL +aqL +aqL +bQh +bQh +lUa acP acP acP acP acP -acP -asc +agq +ahe +ahe +ahe +ahe +ahe +ahe +ahe +ahS aku aoo apc @@ -66148,12 +56908,12 @@ jZp axh amn amn -amn -aAc -amn -amn -amn -eRW +anJ +mbz +anJ +anJ +anJ +fbB amn amn amn @@ -66189,7 +56949,7 @@ aJI bac bem asv -bfg +bgd bfL bgc bgc @@ -66303,33 +57063,12 @@ aaa "} (119,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao aao aao aao -aad -aad -abO -aad -aad -aad -ack aao aao aao @@ -66344,11 +57083,32 @@ aao aao aao aao +dQR +dQR +iXx +dQR +dQR +dQR +vBI +aqL +aqL +aqL +aqL +aqL +lUa acP acP acP acP asc +lPg +hHa +hHa +hHa +hHa +ahS +ahS +ahS aku aop apc @@ -66365,10 +57125,10 @@ awt avJ axP ahf -amn -aAd -aAF -aAF +anJ +aAH +aAg +aAg aAg anJ aDV @@ -66406,7 +57166,7 @@ bdx bdx bdx asv -bfh +bfK bfM bgc bgt @@ -66520,20 +57280,6 @@ aaa "} (120,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao @@ -66541,15 +57287,6 @@ aao aao aao aao -aad -aad -abs -aad -aad -oRs -abU -abU -ack aao aao aao @@ -66561,11 +57298,34 @@ aao aao aao aao -acP +aao +aao +aao +dQR +dQR +qMS +dQR +dQR +dXK +elh +elh +vBI +aqL +aqL +aqL +lUa acP acP acP asc +hHa +hDK +hDK +khK +ahS +ahS +ahS +ahS aku aop apc @@ -66582,10 +57342,10 @@ aop apc apc ars -amn -aAe -aAG -aBt +anJ +hhX +cYy +aCb aCb aCU aDW @@ -66737,20 +57497,6 @@ aaa "} (121,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao @@ -66759,14 +57505,6 @@ aao aao aao aao -aad -aad -aad -tLt -akX -cJG -oRs -abM aao aao aao @@ -66778,11 +57516,33 @@ aao aao aao aao -acP +aao +aao +aao +dQR +dQR +dQR +hQO +aqL +lOL +dXK +bGC +aqL +aqL +aqL +arp acP acP acP asc +hHa +taV +khK +ahS +ahS +khK +ahS +ahS aku aoq apd @@ -66954,20 +57714,6 @@ aaa "} (122,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao @@ -66978,13 +57724,6 @@ aao aao aao aao -alJ -akX -akX -akX -akX -hKM -ack aao aao aao @@ -66996,10 +57735,31 @@ aao aao aao aao -acP +aao +aao +aao +kfx +aqL +aqL +aqL +aqL +lbh +vBI +aqL +aqL +aqL +lUa acP acP asc +hHa +xQd +ahS +ahS +khK +khK +ahS +ahS ako ako ako @@ -67171,20 +57931,6 @@ aaa "} (123,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao @@ -67195,14 +57941,6 @@ aao aao aao aao -alJ -akX -akY -akX -akX -hKM -aad -ack aao aao aao @@ -67213,16 +57951,38 @@ aao aao aao aao -acP +aao +aao +aao +aao +kfx +aqL +gdK +aqL +aqL +lbh +dQR +vBI +aqL +aqL +arp acP acP asc +hHa +ahS +ahS +ahS +khK +ahS +ahS +khK ako -aor +eNe ape apN ape -art +uVi ako asL atD @@ -67282,10 +58042,10 @@ asv asv asv asv +atJ +atJ asv asv -awf -awf awp bkT bkU @@ -67388,20 +58148,6 @@ aaa "} (124,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao @@ -67412,14 +58158,6 @@ aao aao aao aao -aad -wMp -akX -vRR -akX -hKM -aad -abM aao aao aao @@ -67431,21 +58169,43 @@ aao aao aao aao -acP +aao +aao +aao +dQR +vBI +aqL +fsT +aqL +lbh +dQR +bGC +aqL +aqL +aqL +lUa acP asc +ahS +ahS +ahS +ahS +ahS +ahS +ahS +khK ako -aos +xzb ape apN ape -aos +pgP ako asM atE apc ako -atE +tgf aop apc axR @@ -67453,8 +58213,8 @@ ayw azc ako aAJ -aBu -tPr +apo +sqt anJ aEa aER @@ -67605,20 +58365,6 @@ aaa "} (125,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao @@ -67629,14 +58375,6 @@ aao aao aao aao -aad -alJ -akX -akX -wpf -aad -abX -tLt aao aao aao @@ -67649,20 +58387,42 @@ aao aao aao aao +aao +aao +dQR +kfx +aqL +aqL +wWE +dQR +cPg +hQO +aqL +aao +aqL +arp acP asc +ahS +khK +khK +ahS +ahS +ahS +khK +taV ako -aos ape -apN ape -aot +vZh +ape +ied ako asN atE apc ako -atE +xXT aop apc ako @@ -67670,8 +58430,8 @@ ayx azd ako aAJ -aBu -aCc +apo +apo anJ aEb aEO @@ -67822,20 +58582,6 @@ aaa "} (126,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao @@ -67847,13 +58593,6 @@ aao aao aao aao -aad -akZ -akZ -aad -aad -alJ -vRR aao aao aao @@ -67866,20 +58605,41 @@ aao aao aao aao -acP +aao +aao +dQR +nlB +nlB +dQR +dQR +kfx +fsT +aqL +aao +aao +aqL +lUa asc +hHa +ahS +khK +ahS +ahS +khK +xQd +xQd ako -aos -apf +ape +mfG apO aqR -aru +tFt ako asO atE apc ako -atE +hto aop axi ako @@ -67887,8 +58647,8 @@ ako ako ako aAJ -aBu -aCc +apo +apo anJ aEc aEc @@ -68039,20 +58799,6 @@ aaa "} (127,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao @@ -68062,15 +58808,6 @@ aao aao aao aao -abq -abU -abU -aad -aad -aad -aad -tLt -akX aao aao aao @@ -68085,12 +58822,35 @@ aao aao aao aao +nEH +elh +elh +dQR +dQR +dQR +dQR +hQO +aqL +aqL +aqL +aao +aqL +arp +asc +hHa +ahS +ahS +ahS +dVM +aao +aao +aao ako -aos +jNE ape eJU aqS -aos +ape ako asP apc @@ -68104,8 +58864,8 @@ ayw azc ako aAJ -aBu -aCc +apo +apo anJ anJ anJ @@ -68256,20 +59016,6 @@ aaa "} (128,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao @@ -68278,16 +59024,6 @@ aao aao aao aao -oRs -oRs -abW -aad -aad -aad -aad -alJ -akX -akX aao aao aao @@ -68302,12 +59038,36 @@ aao aao aao aao +dXK +dXK +wbY +dQR +dQR +dQR +dQR +kfx +aqL +aqL +aqL +aqL +aqL +aqL +arp +asc +hHa +xQd +hDK +aao +aao +aao +aao +aao ako -aot +ygN apg apP ape -aos +ape ako asQ atE @@ -68321,19 +59081,19 @@ ayx azd ako aAK -aBu -aCd -aCV -arD -arD -arD -arD -arD -arD -arD -aKA -aCc -aMk +apo +apo +kMk +apo +apo +apo +apo +apo +apo +apo +apo +apo +apo apo apo anT @@ -68473,20 +59233,6 @@ aaa "} (129,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao @@ -68495,16 +59241,6 @@ aao aao aao aao -alH -akX -cJG -oRs -aad -aad -abW -alJ -akX -akY aao aao aao @@ -68519,12 +59255,36 @@ aao aao aao aao +nnz +aqL +lOL +dXK +dQR +dQR +wbY +kfx +aqL +gdK +aqL +aqL +aqL +aqL +aqL +asc +hHa +aao +aao +aao +aao +aao +aao +aao ako -aos +jNE ape apN aqT -arv +ape ako asR atF @@ -68538,19 +59298,19 @@ ako ako ako aAK -aBu -aCc -aCW -arD -arD -arD -arD -arD -awy -arD -aKB -aCc -aMk +apo +apo +apo +apo +apo +apo +apo +apo +iOR +apo +apo +apo +apo apo apo aOU @@ -68690,20 +59450,6 @@ aaa "} (130,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao @@ -68712,16 +59458,6 @@ aao aao aao aao -akX -akX -akX -akX -cJG -aad -aad -alJ -akX -akX aao aao aao @@ -68736,6 +59472,30 @@ aao aao aao aao +aqL +aqL +aqL +aqL +lOL +dQR +dQR +kfx +aqL +aqL +aao +aao +aao +aao +aqL +aao +aao +aao +aao +aao +aao +aao +aao +aao ako ako ako @@ -68755,19 +59515,19 @@ ayw azc ako aAJ -aBu -aCc -aCd -arD -arD -arD -arD -arD -arD -arD -arD -aKA -aMk +apo +apo +apo +apo +apo +apo +apo +apo +apo +apo +apo +apo +apo apo apo anT @@ -68907,20 +59667,6 @@ aaa "} (131,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao @@ -68929,12 +59675,26 @@ aao aao aao aao -akX -akX -akX -akX -akX -hKM +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aqL +aqL +aqL +aqL +aqL +lbh aad alJ akX @@ -68972,13 +59732,13 @@ ayx azd ako aAJ +apo anT anX anX anX anX anX -anX anT anT anT @@ -69124,20 +59884,6 @@ aaa "} (132,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao @@ -69146,15 +59892,29 @@ aao aao aao aao -akY -akX -iOL -vRR -akX +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +gdK +aqL +dka +fsT +aqL hKM aad aad -wMp +dTi aao aao aao @@ -69189,13 +59949,13 @@ ako ako ako aAK +apo anU +nWG +tpU +jay aCf -aCX -aEd -aES -aCZ -aGK +ilH anT aIw msq @@ -69341,20 +60101,6 @@ aaa "} (133,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao @@ -69363,6 +60109,20 @@ aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao akX akX akX @@ -69402,16 +60162,16 @@ avI apc axk axS -ayy -aze -ayy +mnY +kwq +mnY aAL -aBx -aCg +mnY +fDf aCY -aCf +aCZ aET -aFZ +aMQ aCZ anT aIw @@ -69558,20 +60318,6 @@ aaa "} (134,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao @@ -69582,11 +60328,25 @@ aao aao aao aao -akX -wpf -aad +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +cAf +eWE aad aad +acb abM aao aao @@ -69619,17 +60379,17 @@ avJ apc axl ovq -ayz -ayz -aAh +apo aqa -anU -aCf +ata +apo +apo +tKR aCo -aCf -aEU -aFZ aCZ +aEU +aMQ +gAE anT aIw aJs @@ -69775,20 +60535,6 @@ aaa "} (135,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao @@ -69800,11 +60546,25 @@ aao aao aao aao -abr -aad -oRs -oRs -abM +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +qQr +oFj +jJO +bVX +fKO aao aao aao @@ -69836,16 +60596,16 @@ apc avJ apc ako -ako -ako -ako +aBu arD +arD +aMk +apo anU -aCf aCZ -aCf +aCZ aQa -aCf +aCZ aCZ anT aIx @@ -69992,36 +60752,36 @@ aaa "} (136,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aab -aab -aab -aab -aab aab aao aao aao aao aao -abr -tLt +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +abY +dtX akX akX -cJG +jSe aao aao aao @@ -70052,18 +60812,18 @@ aml apc apc apc -axR -ayw -azc -ako +aku +aBu +arD arD +aMk +apo anU -aCf +fXR aCo -aEe aEU -aCf aCZ +aCf anT aIy aIC @@ -70209,36 +60969,36 @@ aaa "} (137,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao abq -abU -alJ -akX -akX +iGY +pri +ipo +ipo rYt -akX +ipo aao aao aao @@ -70269,18 +61029,18 @@ ask apc apc apc -ako -ayx -azd -ako +aku +aBu +arD arD +aMk +apo anU -aCf +fXR aCo -aEe aEW -aCf aCZ +aCf anT aIz aIC @@ -70426,29 +61186,29 @@ aaa "} (138,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao oRs aad alJ @@ -70486,18 +61246,18 @@ aml atE aww apc -ako -ako -ako -ako +aku +aBu +arD arD +aMk +apo anU -aCf -aCo -aEf +fXR +rNd aEU +aCZ aCf -gAE anT bix aIC @@ -70643,36 +61403,36 @@ aaa "} (139,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao akX hKM aad wMp akX akX -akX +cAf akX aao aao @@ -70682,9 +61442,9 @@ akX akX wpf aad -ack aad -abq +aad +aad akZ alI alH @@ -70703,18 +61463,18 @@ ako xqf apc apc -axR -ayw -azc -ako +aku +aBu arD +arD +aMk +apo anU aCf aCZ -aCZ aQa aCZ -aGK +ilH anT aIz aIC @@ -70860,29 +61620,29 @@ aaa "} (140,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao alH cJG aad @@ -70899,9 +61659,9 @@ akZ fhI aad aad -abM aad -abr +aad +aad aad alJ akY @@ -70921,12 +61681,12 @@ avJ avJ axi ako -ayx -azd -ako +aBu +arD arD +aMk +anT anT -anY anY anY cYI @@ -71077,29 +61837,29 @@ aaa "} (141,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao akY akX hKM @@ -71134,15 +61894,15 @@ akL akL akL akL -atE +cQO apc avJ ako -ako -ako -ako +aBu arD -anT +arD +aMk +anU aCi aCZ aCZ @@ -71294,31 +62054,31 @@ aaa "} (142,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao hKM aad aad @@ -71350,16 +62110,16 @@ apU asX aoB auf -akL -atE -apc -apc +uwV +ant +ant +ant ako -aao -arD +aBu arD arD -anT +aMk +anU aCj aCo aCo @@ -71511,25 +62271,6 @@ aaa "} (143,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao @@ -71537,6 +62278,25 @@ aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao abr aad aad @@ -71568,15 +62328,15 @@ aoB apU aoB akL -atE -apc -apc -ako -aao -arD -arD -arD -anT +gbA +aqa +aqa +aqa +rzR +cHH +aCW +aMk +anU aOc aCo aCo @@ -71728,25 +62488,6 @@ aaa "} (144,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao @@ -71754,6 +62495,25 @@ aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao abs aad aad @@ -71785,14 +62545,14 @@ asY aoB aug akL -atE -apc -apc -ako -aao -aao -arD -arD +xgm +aCc +aCc +aCc +aCc +aCc +aCd +aMk anT aCl aDa @@ -71945,25 +62705,6 @@ aaa "} (145,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao @@ -71972,6 +62713,25 @@ aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao abs abO aad @@ -71998,18 +62758,18 @@ apZ aoB arC aoB -asZ +auh aoB auh akL -apc -apc -apc -ako -aao -aao -arD -arD +aBu +aCc +pLH +lIS +jmD +ivW +aCd +aMk anT aCm aCZ @@ -72162,25 +62922,6 @@ aaa "} (146,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao @@ -72190,6 +62931,25 @@ aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao abr alJ akX @@ -72219,15 +62979,15 @@ akL akL akL akL -avK -awx -axm -ako -aao +aBu +aCc +pLH +pgh aao -arD -arD -anT +kzF +ivW +aMk +anU aCn aCZ aCo @@ -72246,8 +63006,8 @@ aOb aQo aQl aqU -aTo -aUo +qhl +aVv aUk aKP aKP @@ -72379,25 +63139,6 @@ aaa "} (147,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao @@ -72408,11 +63149,6 @@ aao aao aao aao -brc -buP -fbF -isr -iZh aao aao aao @@ -72427,6 +63163,30 @@ aao aao aao aao +aao +aao +aao +aao +aao +mEC +fGK +fGK +fGK +mEC +mEC +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tAW aqa aqa @@ -72435,16 +63195,16 @@ aqa ata ata ata -ann -ant -ant -ant -ako +aqa +rzR +aCc +aCc +pgh aao aao -arD -arD -anT +fEE +aMk +anU aCo aCZ aEg @@ -72452,7 +63212,7 @@ aCo aQa aCZ anT -aIE +cOu aJA aKJ aEd @@ -72463,8 +63223,8 @@ aPi aQp aQm aqU -aTp -aTk +qhl +sEh aUk aKP aKP @@ -72596,25 +63356,6 @@ aaa "} (148,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao @@ -72624,11 +63365,6 @@ aao aao aao aao -arK -szg -szg -szg -arK aao aao aao @@ -72640,28 +63376,52 @@ aao aao aao aao -amG aao aao aao aao aao aao -arD -asm -arD -arD -arD -arD -arD -arD -arD -arD aao aao -arD -arD -anT +tqS +xWl +xWl +gIT +xWl +xWl +tqS +aao +aao +aao +aao +aao +aao +aao +aao +aao +amG +aao +aao +aao +aao +aao +aao +aCc +oFx +aCc +aCc +aCc +pLH +aCc +aCc +aCc +ukW +kzF +aao +fEE +aMk +anU aCp aDb aEh @@ -72670,8 +63430,8 @@ aQa aCZ anT aIF -aJB -aKK +eaZ +aCZ aLE aMp aLE @@ -72680,8 +63440,8 @@ aPj aQq aRs anT -aTp -aUp +qhl +wIj aUk aKP aKP @@ -72813,25 +63573,6 @@ aaa "} (149,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao @@ -72841,11 +63582,6 @@ aao aao aao aao -aTv -aTv -aTv -aTv -aTv aao aao aao @@ -72857,6 +63593,30 @@ aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +tqS +sFv +xRn +xRn +xRn +dgH +tqS +aao +aao +aao +aao +aao +aao +aao +aao +aao wQC gXp eMX @@ -72867,17 +63627,17 @@ aao aao aao aao -arD -arD -arD +hgr +hgr aao -arD -arD -arD aao -arD -arD -arD +pLH +aCc +pLH +ukW +rrF +kpd +aMk anW anW anW @@ -72897,8 +63657,8 @@ anW anW anW anW -aTq -aUp +aDy +wIj aUk aKP aKP @@ -73030,25 +63790,6 @@ aaa "} (150,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao @@ -73057,14 +63798,33 @@ aao aao aao aao -gNH -szg -szg -szg -heI -szg -szg -gNH +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +tqS +xWl +xWl +xWl +xWl +xWl +tqS aao aao aao @@ -73083,39 +63843,39 @@ aao aao aao aao +tQj +kzF +kzF +lAC aao -arD -arD -arD -arD -arD -arD -arD -arD -arD -arD -arD -aMk +aao +aCc +aCc +aCc +aCc +pLH +bMz +apo anW -aDc -aEi -aDc -aDg -aDc -aEi -aDc -aJC -aKL -aEi -aDc -aEi -aDc -aEi -aQr +qsV +vFA +heD +wKA +nhF +anW +eBL +qsV +qsV +anW +qsV +anW +eBL +eBL +eBL anW aTq -aTq -aTk +aDy +sEh aUk aKP aWL @@ -73130,7 +63890,7 @@ atP atP atP atb -iIp +gAK bja bes bes @@ -73247,25 +64007,6 @@ aaa "} (151,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao @@ -73274,7 +64015,26 @@ aao aao aao aao -aac +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao azF azF azF @@ -73282,7 +64042,7 @@ azF azF azF aao -kpf +aao tQw tQw tQw @@ -73298,41 +64058,41 @@ tQw aao aao aao -aao -aao -aao -aao -arD -arD -arD -arD -arD -arD -arD -arD -arD -arD +bQG +vXJ +khB +tQj +kzF +fEE +pLH +ovQ +aCc +aCc +aCc +aCc +aCc +aCc aMk anW -aDc +qsV aEi -aDc -aDg -aDc aEi -aDc +wKA +aEi +aJC aEi -aDc aEi -aDc +vFA +vUN +vFA +wET aEi -aDc aEi aEi aqx aTq -aTq -aUp +aDy +wIj aUk aKP aKP @@ -73464,25 +64224,6 @@ aaa "} (152,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao @@ -73491,6 +64232,25 @@ aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw tQw @@ -73514,42 +64274,42 @@ tQw tQw aao aao -aao -aao -aao -aao -aao -aao -arD -arD -arD -arD -arD -arD -arD -arD -arD +fxZ +vXJ +vXJ +vXJ +bQG +jAX +fEE +pLH +ovQ +aCc +aCc +pLH +aCc +aCc +pLH aMk anW -aDc -aEi +qsV +vFA aDe aGe -aGN -aHM -aHM -aHM -aKM -aLF -aLF -aLF -aLF -aPk +unS +unS +unS +mIs +kAj +qJM +pSf aEi +pSf +iEm +lmO aqx aTq -aTq -aUp +aDy +wIj aQu aVr aKP @@ -73681,25 +64441,6 @@ aaa "} (153,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao @@ -73708,6 +64449,25 @@ aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw ahw tQw @@ -73729,44 +64489,44 @@ tQw tQw tQw tQw -tQw -aao -aao -aao -aao -aao aao -aao -arD -arD -awy -arD -arD -arD -arD -arD -arD +bQG +vXJ +vXJ +vXJ +vXJ +khB +jAX +kzF +ivW +vkf +aCc +pLH +aCc +aCc +aCc +aCc aMk anW -aDc -aEi +anW +dLS aDg +nFp +pSf +dNX +pSf aEi -aGO -aHN -aIG -aIG -aKN -aLG -aLG -aLG -aOi -aPl -aQs +moe +unS +unS +aQt +unS +rKe +eeI anW aTq -aTp -aUp +qhl +wIj aQu aUk aKP @@ -73898,25 +64658,6 @@ aaa "} (154,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao @@ -73925,6 +64666,25 @@ aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw tQw @@ -73947,43 +64707,43 @@ tQw ahw tQw tQw -tQw -aao -aao +idT +vXJ +vXJ +vXJ +vXJ +vXJ aao aao -aao -arD -arD -arD -arD -arD -arD -arD -arD -arD -arD +kzF +lSb +aCc +aCc +aCc +aCc +aCc +aCc aMk anW -aDd -aEi -aDg -aEi +wHM +sSY +mUb +sdl +vFA +vFA +vFA aEi aEi aEi -aEi -aEi -aEi -aDc -aEi -aOj -aPm -aQt +aHO +fWY +pSf +qcE +mIs aRu nnK -aTt -aUq +mNT +wIj aQu aUk aKP @@ -74115,25 +64875,6 @@ aaa "} (155,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao @@ -74141,6 +64882,25 @@ aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw tQw @@ -74164,43 +64924,43 @@ tQw ujC ujC tQw -tQw +ukv +bQG +vXJ +vXJ aao aao aao aao -arD -arD -arD -arD -arD -arD -arD -arD -arD -arD -arD +aao +pJn +ivW +pLH +pLH +aCc +aCc +aCc aMk anW -aDe -aQt -aEl -aGf +pyq +tlU +pyq +tlU aEi -aHO -aIH +jNN +qWA aJD aKO aEi +aHO +fJW aEi -aEi -aOj -aPn -aEi +sHO +vFA ocA aTq -aTp -aUr +qhl +wIj aQu aQu aOk @@ -74332,25 +65092,6 @@ aaa "} (156,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao @@ -74358,6 +65099,25 @@ aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw tQw @@ -74382,42 +65142,42 @@ ujC ujC tQw tQw -tQw -tQw +mda +mda aao aao -arD -arD -arD -arD -arD -arD -arD -arD -arD -arD -arD +aao +kzF +lAC +kzF +kzF +lAC +jPQ +ivW +aCc +aCc +aCc aMk anW -aDf anW anW anW -aEi +anW +drx aHO lDa lDa aKO aEi -aDc aEi -aOj -aPo -aQs +rBn +oes +nnA +jUJ anW aTq -aTq -aUs +phx +aTt aSf aSf aWM @@ -74549,31 +65309,31 @@ aaa "} (157,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw tQw @@ -74605,36 +65365,36 @@ aao aao aao aao -arD -arD -arD +kzF +kzF +kzF aao aao aao -arD -arD -arD +aCc +aCc +aCc aMk -anW -aDg -aEk -aui +apo +apo +nrA +apo anW voz +wBK +wBK +vFA +hho +wBK aEi aEi aEi -aEi -aEi -aDc -aEi -aGO -aPp -aEi +iaS +aui aqx aTq -aTq -foT +aDy +aTp aSg aSg aSg @@ -74766,31 +65526,31 @@ aaa "} (158,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw ahw tQw @@ -74822,36 +65582,36 @@ tQw aao aao aao -arD -arD +kzF +lAC aao aao aao aao -arD -arD -arD +pLH +pLH +aCc aMk +apo +apo +apo +apo anW -aDh -aEl -aEi -anW -aGQ -aEi -aEi -aEi -aGQ -aEi -aEi -aGQ -aEi -aEi -aEi +lTC +nuQ +whw +vFA +prU +whw +mKi +esS +sEb +sEb +nkE aqx aTq -aTq -aUp +aDy +wIj aQu aVq aVq @@ -74983,30 +65743,30 @@ aaa "} (159,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw tQw @@ -75047,12 +65807,12 @@ aao aao aao aao -arD +rLM aMk -anW -anW -anW -anW +apo +apo +apo +apo anW anW anW @@ -75067,8 +65827,8 @@ aoc anW anW aTq -aTp -aUp +qhl +wIj aUk aKP aKP @@ -75200,29 +65960,29 @@ aaa "} (160,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw tQw @@ -75283,9 +66043,9 @@ aSg aSg aSg aSg -aSg -aTp -aUp +aTq +qhl +wIj aUk aKP aKP @@ -75293,10 +66053,10 @@ aKP aSh aYx atb -aZI -bas -baV -bbG +nRT +bar +baU +bbF bar baU nRT @@ -75417,29 +66177,29 @@ aaa "} (161,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw tQw @@ -75500,20 +66260,20 @@ aKP aKP aKP aMR -aQu aTr -aUp +aDy +wIj aQu aVr aKP aKP aSh -aYx -atd -bbF -bap -baT -bbF +eYA +aZh +cuG +crd +rgm +bbG bap baT nRT @@ -75634,28 +66394,28 @@ aaa "} (162,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw tQw @@ -75717,17 +66477,17 @@ aKP aKP aMR aQu -aSi -aTq -foT -aVv -aQu -aOk -aOk -aQu -aYw -atd -bbF +aTr +aDy +aTp +aTu +qoS +aTu +aTu +aTu +aTp +aZi +nRT bar baU bbH @@ -75851,28 +66611,28 @@ aaa "} (163,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw tQw @@ -75933,18 +66693,18 @@ aMR aOk aOk aQu -kYd -wNw -wNw -aUu -wNw -kYd -aQu -aQu aQu -aYw -atb -bbF +aTr +aDy +aTq +aTq +dTB +rbs +rbs +dRc +dTB +dTB +nRT bap baT bbF @@ -76068,28 +66828,28 @@ aaa "} (164,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw ahw @@ -76147,21 +66907,21 @@ aao aao aao aao -apI -apI -apI -apI -hLs -iKn -aUv -iZi -kYd aQu aQu -aXX -aYy -aZh -aZK +aQu +ceA +aTr +aDy +aTq +aTq +rbs +oPM +eKZ +pAX +hKO +dTB +nRT bao baS bbF @@ -76285,29 +67045,29 @@ aaa "} (165,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw tQw @@ -76367,17 +67127,17 @@ aao aao aao aao -apI -wNw -wNw -aUw -wNw -apI -apI -aXt -aXX -aTr -aZi +dvz +rnK +shn +qWT +rnK +dvz +djo +xsX +xTk +rkh +dvz nRT bat baW @@ -76502,29 +67262,29 @@ aaa "} (166,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw tQw @@ -76584,18 +67344,18 @@ aao aao aao aao -uuo -aSj -ixR -aUx -cGQ -aao -aao -aXt -aXt -aTr -atb -nRT +lLe +sVk +xTV +vUw +iKn +rbs +aIe +pAX +pAX +qLD +dvz +dTB aJy aJy nRT @@ -76719,29 +67479,29 @@ aaa "} (167,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw tQw @@ -76802,17 +67562,17 @@ aao aao aao aao -sYL -aTx -vcm -qkB -aao -aao -aao -aao -aTr -atb -atb +hLs +xTV +iKn +hNW +dTB +jKp +dFL +pAX +dKk +fyZ +dTB atb atb atb @@ -76936,29 +67696,29 @@ aaa "} (168,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw tQw @@ -76980,7 +67740,7 @@ aev adZ aao gNH -biX +lUM aev aev aoE @@ -77018,17 +67778,17 @@ aao aao aao aao -aao -sYL -aTx -vcm -sYL -aao -aao -aao -aao -aao -aao +dTB +juZ +xTV +iKn +iKn +xaE +pAX +pAX +pAX +pAX +gEM aao aao aao @@ -77153,29 +67913,29 @@ aaa "} (169,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw tQw @@ -77197,13 +67957,13 @@ aev adZ aao gNH -biX +lUM aev anM aqb aps adZ -aqZ +tkY arF aso arF @@ -77236,16 +67996,16 @@ aao aao aao aao -sYL -aTx -vcm -aVw -aao -aao -aao -aao -aao -aao +hLs +xTV +iKn +qJB +dTB +mYV +pAX +pAX +rDa +cry aao aao aao @@ -77370,29 +68130,29 @@ aaa "} (170,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw tQw @@ -77452,17 +68212,17 @@ eMX aao aao aao -gNH -cIq +sYL hLs -vcm -hSs -gNH -aao -aao -aao -aao -aao +aUv +iKn +iKn +rbs +nIS +pAX +pAX +qLD +dTB aao aao aao @@ -77587,29 +68347,29 @@ aaa "} (171,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw tQw @@ -77669,20 +68429,20 @@ eFh aao aao aao -aRv -nVw -hLs -vcm -qkB -aao -aao -aao -aao +dTB +iFz +qbG +iFz +iFz +dTB +dAd +oHn +pAX +qLD +xZL aao aao -sON -sfI -aao +gCE aao aao aao @@ -77804,29 +68564,29 @@ aaa "} (172,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw tQw @@ -77887,17 +68647,17 @@ aao aao aao aao -sYL -hLs -vcm -aao -aao -aao -aao -aao +aTw +pmV +aTv +aTv +rbs +lAR +oJv +pAX +irZ +dTB aao -sON -gCE gCE rAs rAs @@ -78021,29 +68781,29 @@ aaa "} (173,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw tQw @@ -78104,16 +68864,16 @@ tQw aao aao aao -sYL -hLs -vcm -aao -aao -aao -aao -aao -aao -ecK +vFH +pmV +aTv +kqO +dTB +rbs +rbs +pJd +dTB +dTB gCE gCE gCE @@ -78238,29 +68998,29 @@ aaa "} (174,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw tQw @@ -78321,15 +69081,15 @@ tQw tQw aao aao -aSk -aTz -aUA -aao -aao -aao -aao -aao -sON +dJr +sVM +xWv +wOK +kUW +aOn +nfY +nfY +pgV gCE gCE gCE @@ -78455,29 +69215,29 @@ aaa "} (175,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw tQw @@ -78537,16 +69297,16 @@ tQw gXp gXp gXp -aRw -dLe -hLs -vcm -aao -aao -aao -aao -aao -ecK +hFg +eFh +sRV +aMT +tQw +ujC +ujC +gCE +gCE +gCE gCE gCE gCE @@ -78672,29 +69432,29 @@ aaa "} (176,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw ahw tQw @@ -78756,14 +69516,14 @@ tQw tQw tQw eFh -aTw -aUy -amG -aao -aao -aao -aao -ecK +sRV +aMT +tQw +tQw +pIN +gCE +gCE +gCE gCE gCE gCE @@ -78889,29 +69649,29 @@ aaa "} (177,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw tQw @@ -78973,14 +69733,14 @@ tQw tQw tQw eFh -aTw -aUy -wQC -eMX -aao -aao -aao -ecK +sRV +aMT +tQw +tQw +aWN +gCE +gCE +gCE gCE xuU qFY @@ -79106,29 +69866,29 @@ aaa "} (178,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw tQw @@ -79184,19 +69944,19 @@ anI anI anI anI -aMS +kZI gmN tQw tQw tQw arK -aTy -aUy -wQC -sNQ -aao -aao -sON +qKH +aMT +tQw +tQw +ujC +gCE +gCE gCE gCE gCE @@ -79323,29 +70083,29 @@ aaa "} (179,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw tQw @@ -79401,18 +70161,18 @@ uaB uaB uaB aMq -aMT +aTv aOm aOm aOm aOm aSl -aTv -aUy -amG -aao -aao -jgW +pmV +aMT +tQw +ujC +ujC +gCE gCE gCE gCE @@ -79540,29 +70300,29 @@ aaa "} (180,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw tQw @@ -79618,18 +70378,18 @@ aJE aKQ aKQ hmm -aMT +aTv aOn aOn aOn aOn aTv -tdn -kNP -wQC -gXp -qQn +pmV +aMT +tQw tQw +pIN +gCE gCE gCE gpg @@ -79757,29 +70517,29 @@ aaa "} (181,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw tQw @@ -79835,7 +70595,7 @@ aJF anI anI anI -aMV +jvW gXp gXp gXp @@ -79843,10 +70603,10 @@ gXp aTw ocR uoj -wQC tQw -aWN tQw +aWN +gCE gCE ohD aao @@ -79974,29 +70734,29 @@ aaa "} (182,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw tQw @@ -80062,9 +70822,9 @@ aTv aMT tQw tQw -pIN -xFZ -ohD +ujC +gCE +gCE aao aao aao @@ -80145,75 +70905,75 @@ aao aao aao aao -izh -izh -izh -izh -izh -izh -izh -izh -aao -aao -aao -aao -aao -aao -aao -aao -izh -izh -izh -otb -otb -izh -izh -izh -aao -aao -aao -aao -aao -aao -aao -aao -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(183,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aab -aao -aao -aao +izh +izh +izh +izh +izh +izh +izh +izh +aao +aao +aao +aao +aao +aao +aao +aao +izh +izh +izh +otb +otb +izh +izh +izh +aao +aao +aao +aao +aao +aao +aao +aao +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(183,1,1) = {" +aaa +aab +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao aao tQw tQw @@ -80278,8 +71038,8 @@ aSm lMw aMT tQw -xFZ -ahy +tQw +ujC aao aao aao @@ -80408,30 +71168,30 @@ aaa "} (184,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw tQw @@ -80494,7 +71254,7 @@ aao aao aSm aMV -sNQ +tQw aao aao sIh @@ -80625,30 +71385,30 @@ aaa "} (185,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw tQw @@ -80842,31 +71602,31 @@ aaa "} (186,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw tQw @@ -81059,31 +71819,31 @@ aaa "} (187,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw tQw @@ -81114,7 +71874,7 @@ tFO axs ati atN -auw +yhG avj avR awI @@ -81276,25 +72036,6 @@ aaa "} (188,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao @@ -81302,6 +72043,25 @@ aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw ahw @@ -81493,25 +72253,6 @@ aaa "} (189,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao @@ -81519,6 +72260,25 @@ aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw tQw @@ -81710,25 +72470,6 @@ aaa "} (190,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao @@ -81737,6 +72478,25 @@ aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw tQw @@ -81927,25 +72687,6 @@ aaa "} (191,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao @@ -81954,6 +72695,25 @@ aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw tQw @@ -82144,25 +72904,6 @@ aaa "} (192,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao @@ -82171,6 +72912,25 @@ aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw tQw @@ -82361,25 +73121,6 @@ aaa "} (193,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao @@ -82388,6 +73129,25 @@ aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw tQw @@ -82578,25 +73338,6 @@ aaa "} (194,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao @@ -82605,6 +73346,25 @@ aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw tQw @@ -82795,25 +73555,6 @@ aaa "} (195,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao @@ -82823,6 +73564,25 @@ aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw tQw @@ -83012,25 +73772,6 @@ aaa "} (196,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao @@ -83041,6 +73782,25 @@ aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw tQw @@ -83229,25 +73989,6 @@ aaa "} (197,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao @@ -83258,6 +73999,25 @@ aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw wQC @@ -83446,25 +74206,6 @@ aaa "} (198,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao @@ -83475,6 +74216,25 @@ aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw wQC @@ -83663,25 +74423,6 @@ aaa "} (199,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao @@ -83692,6 +74433,25 @@ aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw wQC @@ -83880,25 +74640,6 @@ aaa "} (200,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao @@ -83909,6 +74650,25 @@ aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw tIq @@ -84097,25 +74857,6 @@ aaa "} (201,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao @@ -84126,6 +74867,25 @@ aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw gmN @@ -84314,25 +75074,6 @@ aaa "} (202,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao @@ -84343,6 +75084,25 @@ aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw tQw @@ -84531,25 +75291,6 @@ aaa "} (203,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao @@ -84560,6 +75301,25 @@ aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw tQw @@ -84748,25 +75508,6 @@ aaa "} (204,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao @@ -84774,6 +75515,25 @@ aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw tQw @@ -84965,30 +75725,30 @@ aaa "} (205,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw tQw @@ -85182,30 +75942,30 @@ aaa "} (206,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw tQw @@ -85399,30 +76159,30 @@ aaa "} (207,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw tQw @@ -85573,73 +76333,73 @@ aao aao aao aao -izh -izh -izh -izh -otb -otb -izh -izh -izh -izh -izh -izh -izh -aao -aao -aao -aao -aao -aao -aao -aao -aao -aao -aao -aao -aao -aao -aao -aao -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(208,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aab -aao -aao -aao -aao +izh +izh +izh +izh +otb +otb +izh +izh +izh +izh +izh +izh +izh +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(208,1,1) = {" +aaa +aab +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw tQw @@ -85833,30 +76593,30 @@ aaa "} (209,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw tQw @@ -86050,30 +76810,30 @@ aaa "} (210,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw tQw @@ -86267,30 +77027,30 @@ aaa "} (211,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw tQw @@ -86484,30 +77244,30 @@ aaa "} (212,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw tQw @@ -86701,30 +77461,30 @@ aaa "} (213,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw tQw @@ -86904,40 +77664,40 @@ aao aao aao aao -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(214,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aab +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(214,1,1) = {" +aaa +aab +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao aao aao aao @@ -87135,30 +77895,30 @@ aaa "} (215,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw ahw @@ -87352,30 +78112,30 @@ aaa "} (216,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw tQw @@ -87569,30 +78329,30 @@ aaa "} (217,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw tQw @@ -87786,31 +78546,31 @@ aaa "} (218,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw tQw @@ -87895,6 +78655,7 @@ aab aaa aaa aaa +cJd aaa aaa aaa @@ -87963,71 +78724,70 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(219,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(219,1,1) = {" +aaa aab aao aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw tQw @@ -88112,7 +78872,7 @@ aab aaa aaa aaa -aaa +cJd aaa aaa aaa @@ -88220,25 +78980,6 @@ aaa "} (220,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao @@ -88288,6 +79029,25 @@ aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw tQw @@ -88331,7 +79091,7 @@ aaa aaa aaa aaa -aaa +cJd aaa aaa aaa @@ -88437,25 +79197,6 @@ aaa "} (221,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao @@ -88508,6 +79249,25 @@ aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw tQw @@ -88548,15 +79308,15 @@ aaa aaa aaa aaa +cJd aaa aaa aaa aaa aaa -aaa -aaa -aaa -aaa +cJd +cJd +cJd aaa aaa aaa @@ -88654,25 +79414,6 @@ aaa "} (222,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao @@ -88751,6 +79492,25 @@ aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao gCE gCE gCE @@ -88771,9 +79531,9 @@ aaa aaa aaa aaa -aaa -aaa -aaa +cJd +cJd +cJd aaa aaa aaa @@ -88871,25 +79631,6 @@ aaa "} (223,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao @@ -88976,6 +79717,25 @@ aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao aab aaa aaa @@ -89088,25 +79848,25 @@ aaa "} (224,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab aab aab aab diff --git a/maps/map_files/BigRed/sprinkles/10.prison_breakout.dmm b/maps/map_files/BigRed/sprinkles/10.prison_breakout.dmm index 931fb53a0b2a..29f3f5b1e4dd 100644 --- a/maps/map_files/BigRed/sprinkles/10.prison_breakout.dmm +++ b/maps/map_files/BigRed/sprinkles/10.prison_breakout.dmm @@ -1,54 +1,39 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE "aa" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/marshal_office) "ab" = ( -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/marshal_office) "ac" = ( /obj/structure/surface/table, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/marshal_office) "ad" = ( /obj/structure/bed/chair{ dir = 8 }, /obj/effect/landmark/corpsespawner/prisoner, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/marshal_office) "ae" = ( /obj/structure/bed/chair{ dir = 4 }, /obj/effect/decal/cleanable/blood, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/marshal_office) "af" = ( /obj/structure/surface/table, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/marshal_office) "ag" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/east, /area/bigredv2/outside/marshal_office) "ah" = ( /turf/closed/wall/solaris/reinforced, @@ -62,24 +47,17 @@ "ak" = ( /obj/structure/pipes/vents/pump, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/marshal_office) "al" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/east, /area/bigredv2/outside/marshal_office) "am" = ( /obj/structure/sink{ pixel_y = 32 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/bigredv2/outside/marshal_office) "an" = ( /obj/structure/mirror{ @@ -87,45 +65,32 @@ pixel_x = 30 }, /obj/item/tool/soap/deluxe, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/bigredv2/outside/marshal_office) "ao" = ( /obj/effect/decal/cleanable/blood, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/marshal_office) "ap" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/marshal_office) "aq" = ( -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/bigredv2/outside/marshal_office) "ar" = ( /obj/structure/machinery/camera/autoname{ dir = 8 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/bigredv2/outside/marshal_office) "as" = ( /obj/structure/machinery/door/airlock/almayer/medical/glass/colony{ dir = 1; name = "\improper Marshal Office Prison" }, -/turf/open/floor{ - dir = 5; - icon_state = "whitegreenfull" - }, +/turf/open/floor/whitegreenfull/northeast, /area/bigredv2/outside/marshal_office) "at" = ( /turf/closed/wall/solaris, @@ -136,107 +101,74 @@ dir = 1; name = "\improper Marshal Office Prison" }, -/turf/open/floor{ - dir = 5; - icon_state = "whitegreenfull" - }, +/turf/open/floor/whitegreenfull/northeast, /area/bigredv2/outside/marshal_office) "av" = ( /obj/structure/machinery/door/airlock/almayer/generic{ dir = 1; name = "\improper Marshal Office Prison Toilet" }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/bigredv2/outside/marshal_office) "aw" = ( /obj/structure/bed, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/marshal_office) "ax" = ( /obj/structure/surface/table, /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/marshal_office) "ay" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/bigredv2/outside/marshal_office) "az" = ( /obj/structure/surface/table, /obj/structure/machinery/camera/autoname{ dir = 1 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/marshal_office) "aA" = ( /obj/structure/toilet{ dir = 4 }, /obj/effect/landmark/monkey_spawn, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/bigredv2/outside/marshal_office) "aB" = ( /obj/structure/machinery/flasher/portable, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/bigredv2/outside/marshal_office) "aC" = ( /obj/structure/closet/l3closet/security, /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/bigredv2/outside/marshal_office) "aD" = ( /obj/structure/closet/l3closet/security, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/bigredv2/outside/marshal_office) "aE" = ( /obj/structure/surface/rack, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/bigredv2/outside/marshal_office) "aF" = ( /obj/structure/surface/rack, /obj/item/ammo_magazine/revolver/cmb, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/bigredv2/outside/marshal_office) "aG" = ( /obj/structure/surface/rack, /obj/item/weapon/gun/revolver/cmb, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/bigredv2/outside/marshal_office) "aH" = ( /obj/structure/surface/rack, @@ -244,35 +176,24 @@ dir = 1 }, /obj/item/ammo_magazine/revolver/cmb, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/bigredv2/outside/marshal_office) "aI" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ dir = 1; icon_state = "door_locked"; - locked = 0; name = "\improper Marshal Office Prison" }, -/turf/open/floor{ - dir = 5; - icon_state = "whitegreenfull" - }, +/turf/open/floor/whitegreenfull/northeast, /area/bigredv2/outside/marshal_office) "aJ" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ dir = 1; icon_state = "door_locked"; - locked = 0; name = "\improper Marshal Office Prison" }, -/turf/open/floor{ - dir = 5; - icon_state = "whitegreenfull" - }, +/turf/open/floor/whitegreenfull/northeast, /area/bigredv2/outside/marshal_office) "aK" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ @@ -281,96 +202,63 @@ icon_state = "door_open"; name = "\improper Marshal Office Prison" }, -/turf/open/floor{ - dir = 5; - icon_state = "whitegreenfull" - }, +/turf/open/floor/whitegreenfull/northeast, /area/bigredv2/outside/marshal_office) "aL" = ( /obj/structure/machinery/deployable/barrier, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/bigredv2/outside/marshal_office) "aN" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/marshal_office) "aO" = ( /obj/effect/landmark/hunter_secondary, -/turf/open/floor{ - dir = 4; - icon_state = "redcorner" - }, +/turf/open/floor/redcorner/east, /area/bigredv2/outside/marshal_office) "aP" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 4; - icon_state = "redcorner" - }, +/turf/open/floor/redcorner/east, /area/bigredv2/outside/marshal_office) "aQ" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 4; - icon_state = "redcorner" - }, +/turf/open/floor/redcorner/east, /area/bigredv2/outside/marshal_office) "aR" = ( -/turf/open/floor{ - dir = 4; - icon_state = "redcorner" - }, +/turf/open/floor/redcorner/east, /area/bigredv2/outside/marshal_office) "aS" = ( /obj/structure/surface/rack, /obj/item/clothing/accessory/storage/black_vest, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/marshal_office) "aT" = ( /obj/structure/surface/rack, /obj/item/weapon/gun/shotgun/pump/dual_tube/cmb, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/marshal_office) "aU" = ( /obj/structure/surface/rack, /obj/item/ammo_magazine/shotgun, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/marshal_office) "aV" = ( /obj/structure/surface/rack, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/marshal_office) "aW" = ( /obj/structure/pipes/vents/pump, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/marshal_office) "aX" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/door/window/brigdoor/eastleft, /obj/item/weapon/shield/riot, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/bigredv2/outside/marshal_office) "aY" = ( /obj/effect/decal/cleanable/dirt, @@ -413,62 +301,44 @@ /obj/structure/machinery/camera/autoname{ dir = 1 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/marshal_office) "bg" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/marshal_office) "bh" = ( /obj/structure/machinery/light, -/turf/open/floor{ - icon_state = "redcorner" - }, +/turf/open/floor/redcorner, /area/bigredv2/outside/marshal_office) "bi" = ( -/turf/open/floor{ - icon_state = "redcorner" - }, +/turf/open/floor/redcorner, /area/bigredv2/outside/marshal_office) "bj" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/camera/autoname{ dir = 1 }, -/turf/open/floor{ - icon_state = "redcorner" - }, +/turf/open/floor/redcorner, /area/bigredv2/outside/marshal_office) "bk" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "redcorner" - }, +/turf/open/floor/redcorner, /area/bigredv2/outside/marshal_office) "bl" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/good_item, -/turf/open/floor{ - icon_state = "redcorner" - }, +/turf/open/floor/redcorner, /area/bigredv2/outside/marshal_office) "bm" = ( /obj/effect/landmark/corpsespawner/prisoner, /obj/effect/decal/cleanable/blood, -/turf/open/floor{ - icon_state = "redcorner" - }, +/turf/open/floor/redcorner, /area/bigredv2/outside/marshal_office) "bn" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "redcorner" - }, +/turf/open/floor/redcorner, /area/bigredv2/outside/marshal_office) "bp" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -478,105 +348,77 @@ icon_state = "door_open"; name = "\improper Marshal Office Armory" }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/marshal_office) "bq" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper Marshal Office Brig" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/marshal_office) "br" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/marshal_office) "bs" = ( /obj/structure/closet/secure_closet/marshal, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/marshal_office) "bt" = ( /obj/structure/surface/table, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/marshal_office) "bu" = ( /obj/structure/surface/table, /obj/item/ammo_magazine/shotgun/buckshot, /obj/structure/machinery/camera/autoname, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/marshal_office) "bv" = ( /obj/structure/surface/table, /obj/item/clothing/head/beret/sec/warden, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/marshal_office) "bw" = ( /obj/structure/machinery/light{ dir = 1 }, /obj/item/ammo_casing/shell, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/marshal_office) "bx" = ( /obj/structure/machinery/computer/secure_data, /obj/structure/surface/table, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/marshal_office) "by" = ( -/turf/open/floor{ - icon_state = "bcircuit" - }, +/turf/open/floor/bcircuit, /area/bigredv2/outside/marshal_office) "bA" = ( /obj/structure/machinery/computer/cameras, /obj/structure/surface/table, -/turf/open/floor{ - icon_state = "bcircuit" - }, +/turf/open/floor/bcircuit, /area/bigredv2/outside/marshal_office) "bB" = ( /obj/structure/surface/table, /obj/item/ore/diamond, /obj/item/ore/uranium, -/turf/open/floor{ - icon_state = "bcircuit" - }, +/turf/open/floor/bcircuit, /area/bigredv2/outside/marshal_office) "bD" = ( -/obj/structure/bed/chair, -/turf/open/floor{ - icon_state = "darkish" +/obj/effect/decal/warning_stripes{ + icon_state = "S"; + pixel_y = -1 }, +/turf/open/floor/red/north, /area/bigredv2/outside/marshal_office) "bE" = ( -/turf/open/floor{ - dir = 8; - icon_state = "redcorner" - }, +/turf/open/floor/redcorner/west, /area/bigredv2/outside/marshal_office) "bF" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "redcorner" - }, +/turf/open/floor/redcorner, /area/bigredv2/outside/marshal_office) "bG" = ( /obj/structure/window/framed/solaris/reinforced, @@ -589,25 +431,19 @@ icon_state = "gib6" }, /obj/item/ammo_casing/shell, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/marshal_office) "bI" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/corpsespawner/prisoner, /obj/effect/decal/cleanable/blood, /obj/item/tool/screwdriver, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/marshal_office) "bK" = ( /obj/effect/landmark/corpsespawner/prison_security, /obj/effect/decal/cleanable/blood, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/marshal_office) "bL" = ( /obj/structure/window_frame/solaris, @@ -619,77 +455,53 @@ /obj/structure/machinery/camera/autoname{ dir = 4 }, -/turf/open/floor{ - icon_state = "bcircuit" - }, +/turf/open/floor/bcircuit, /area/bigredv2/outside/marshal_office) "bN" = ( /obj/structure/surface/table, /obj/item/device/radio, -/turf/open/floor{ - icon_state = "bcircuit" - }, +/turf/open/floor/bcircuit, /area/bigredv2/outside/marshal_office) "bO" = ( -/obj/structure/surface/table, -/obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - icon_state = "darkish" - }, -/area/bigredv2/outside/marshal_office) +/turf/open/mars/mars_dirt_13, +/area/bigredv2/outside/n) "bP" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 8; - icon_state = "redcorner" - }, +/turf/open/floor/redcorner/west, /area/bigredv2/outside/marshal_office) "bQ" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/door/window/brigdoor/westright, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/bigredv2/outside/marshal_office) "bR" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/crap_item, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/marshal_office) "bS" = ( /obj/effect/decal/cleanable/dirt, /obj/item/shard, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/marshal_office) "bT" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/marshal_office) "bU" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, /obj/item/ammo_casing/shell, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/marshal_office) "bV" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/marshal_office) "bW" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -697,136 +509,102 @@ }, /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ icon_state = "door_locked"; - locked = 0; name = "\improper Marshal Office Armory" }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/marshal_office) "bX" = ( /obj/structure/surface/table, /obj/item/ore/uranium, -/turf/open/floor{ - icon_state = "bcircuit" - }, +/turf/open/floor/bcircuit, /area/bigredv2/outside/marshal_office) "bY" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor{ - icon_state = "darkish" +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 }, +/turf/open/floor/red/west, /area/bigredv2/outside/marshal_office) "bZ" = ( -/obj/structure/surface/table, -/obj/item/device/taperecorder, -/turf/open/floor{ - icon_state = "darkish" - }, +/obj/effect/landmark/static_comms/net_one, +/turf/open/floor/bcircuit, /area/bigredv2/outside/marshal_office) "ca" = ( -/turf/open/floor{ - icon_state = "darkish" +/obj/effect/decal/warning_stripes{ + icon_state = "SE-out"; + pixel_x = 1; + pixel_y = -1 }, +/turf/open/floor/red/northwest, /area/bigredv2/outside/marshal_office) "cb" = ( -/obj/structure/machinery/door/airlock/almayer/security/glass/colony{ - name = "\improper Marshal Office Interrogation" - }, -/turf/open/floor{ - icon_state = "darkish" - }, -/area/bigredv2/outside/marshal_office) +/turf/open/floor/asteroidwarning/northwest, +/area/bigredv2/outside/n) "cc" = ( /obj/structure/surface/table, /obj/item/clothing/mask/gas, /obj/item/clothing/mask/gas, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/marshal_office) "ce" = ( /obj/structure/surface/rack, /obj/item/clothing/suit/armor/riot, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/marshal_office) "cf" = ( /obj/item/shard, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/marshal_office) "cg" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/marshal_office) "ch" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/computer/prisoner, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/marshal_office) "ci" = ( /obj/structure/machinery/light, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/marshal_office) "cj" = ( -/obj/structure/bed/chair{ - dir = 1 - }, -/turf/open/floor{ - icon_state = "darkish" +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 }, +/turf/open/floor/red, /area/bigredv2/outside/marshal_office) "ck" = ( -/obj/structure/machinery/camera/autoname{ - dir = 8 - }, -/turf/open/floor{ - icon_state = "darkish" +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + pixel_x = -1; + pixel_y = 1 }, +/turf/open/floor/red/southeast, /area/bigredv2/outside/marshal_office) "cl" = ( -/obj/structure/machinery/door_control{ - id = "Marshal Offices"; - name = "Storm Shutters"; - pixel_x = -32 - }, /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/corpsespawner/prison_security, /obj/effect/decal/cleanable/blood, /obj/item/ammo_casing/shell, /obj/item/weapon/gun/shotgun/pump/dual_tube/cmb, -/turf/open/floor{ - dir = 8; - icon_state = "redcorner" - }, +/turf/open/floor/redcorner/west, /area/bigredv2/outside/marshal_office) "cm" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, /obj/item/ammo_casing/shell, -/turf/open/floor{ - icon_state = "redcorner" - }, +/turf/open/floor/redcorner, /area/bigredv2/outside/marshal_office) "cn" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/door/window/brigdoor/southright, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/bigredv2/outside/marshal_office) "co" = ( /obj/structure/window_frame/solaris, @@ -838,23 +616,11 @@ /turf/open/floor/plating, /area/bigredv2/outside/marshal_office) "cq" = ( -/obj/structure/machinery/door/airlock/almayer/security/glass/colony{ - dir = 1; - name = "\improper Marshal Office Evidence Room" - }, -/turf/open/floor{ - icon_state = "dark" - }, -/area/bigredv2/outside/marshal_office) +/turf/open/floor/asteroidwarning/north, +/area/bigredv2/outside/n) "cr" = ( -/obj/structure/machinery/light{ - dir = 8 - }, /obj/item/ammo_casing/shell, -/turf/open/floor{ - dir = 8; - icon_state = "redcorner" - }, +/turf/open/floor/redcorner/west, /area/bigredv2/outside/marshal_office) "cs" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -864,79 +630,52 @@ /obj/structure/closet/hydrant{ pixel_y = 32 }, -/turf/open/floor{ - dir = 4; - icon_state = "redcorner" - }, +/turf/open/floor/redcorner/east, /area/bigredv2/outside/marshal_office) "cu" = ( /obj/effect/landmark/survivor_spawner, -/turf/open/floor{ - dir = 4; - icon_state = "redcorner" - }, +/turf/open/floor/redcorner/east, /area/bigredv2/outside/marshal_office) "cw" = ( /obj/effect/decal/cleanable/dirt, /obj/item/shard, -/turf/open/floor{ - dir = 4; - icon_state = "redcorner" - }, +/turf/open/floor/redcorner/east, /area/bigredv2/outside/marshal_office) "cx" = ( /obj/item/shard, -/turf/open/floor{ - dir = 4; - icon_state = "redcorner" - }, +/turf/open/floor/redcorner/east, /area/bigredv2/outside/marshal_office) "cy" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - dir = 4; - icon_state = "redcorner" - }, +/turf/open/floor/redcorner/east, /area/bigredv2/outside/marshal_office) "cz" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/red/west, /area/bigredv2/outside/marshal_office) "cA" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - dir = 4; - icon_state = "redcorner" - }, +/turf/open/floor/redcorner/east, /area/bigredv2/outside/marshal_office) "cB" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/structure/machinery/camera/autoname, -/turf/open/floor{ - dir = 4; - icon_state = "redcorner" - }, +/turf/open/floor/redcorner/east, /area/bigredv2/outside/marshal_office) "cC" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 4; - icon_state = "redcorner" - }, +/turf/open/floor/redcorner/east, /area/bigredv2/outside/marshal_office) "cE" = ( /obj/structure/pipes/standard/manifold/fourway/hidden/green, @@ -974,10 +713,7 @@ dir = 1; name = "\improper Marshal Office" }, -/turf/open/floor{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/red/west, /area/bigredv2/outside/marshal_office) "cO" = ( /obj/effect/decal/cleanable/dirt, @@ -985,50 +721,38 @@ dir = 4; icon_state = "gib6" }, -/turf/open/floor{ - icon_state = "redcorner" - }, +/turf/open/floor/redcorner, /area/bigredv2/outside/marshal_office) "cP" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/corpsespawner/prisoner, /obj/effect/decal/cleanable/blood, /obj/item/tool/kitchen/knife, -/turf/open/floor{ - icon_state = "redcorner" - }, +/turf/open/floor/redcorner, /area/bigredv2/outside/marshal_office) "cQ" = ( /obj/effect/decal/cleanable/dirt, /obj/item/shard, -/turf/open/floor{ - icon_state = "redcorner" - }, +/turf/open/floor/redcorner, /area/bigredv2/outside/marshal_office) "cR" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor{ - icon_state = "redcorner" - }, +/turf/open/floor/redcorner, /area/bigredv2/outside/marshal_office) "cS" = ( /obj/structure/machinery/alarm{ dir = 1; pixel_y = -30 }, -/turf/open/floor{ - icon_state = "redcorner" - }, +/turf/open/floor/redcorner, /area/bigredv2/outside/marshal_office) "cT" = ( /obj/effect/decal/cleanable/dirt, /obj/item/frame/table, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "redcorner" - }, +/turf/open/floor/redcorner, /area/bigredv2/outside/marshal_office) "cU" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ @@ -1037,30 +761,22 @@ icon_state = "door_open"; name = "\improper Marshal Office Holding Cell" }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/marshal_office) "cV" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ dir = 1; icon_state = "door_locked"; - locked = 0; name = "\improper Marshal Office Holding Cell" }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/marshal_office) "cW" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ dir = 1; name = "\improper Marshal Office Checkpoint" }, -/turf/open/floor{ - dir = 9; - icon_state = "redfull" - }, +/turf/open/floor/redfull/northwest, /area/bigredv2/outside/marshal_office) "cX" = ( /obj/effect/decal/cleanable/dirt, @@ -1074,16 +790,12 @@ /turf/open/floor, /area/bigredv2/outside/marshal_office) "cZ" = ( -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/marshal_office) "da" = ( /obj/effect/landmark/corpsespawner/prisoner, /obj/effect/decal/cleanable/blood, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/marshal_office) "db" = ( /obj/structure/machinery/door_control{ @@ -1091,17 +803,11 @@ name = "Storm Shutters"; pixel_x = -32 }, -/turf/open/floor{ - dir = 9; - icon_state = "redfull" - }, +/turf/open/floor/redfull/northwest, /area/bigredv2/outside/marshal_office) "dc" = ( /obj/structure/surface/table, -/turf/open/floor{ - dir = 9; - icon_state = "redfull" - }, +/turf/open/floor/redfull/northwest, /area/bigredv2/outside/marshal_office) "dd" = ( /obj/effect/decal/cleanable/dirt, @@ -1110,33 +816,23 @@ /area/bigredv2/outside/marshal_office) "de" = ( /obj/structure/closet/secure_closet/brig, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/marshal_office) "df" = ( /obj/structure/bed, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/marshal_office) "dg" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor{ - dir = 9; - icon_state = "redfull" - }, +/turf/open/floor/redfull/northwest, /area/bigredv2/outside/marshal_office) "dh" = ( /obj/structure/bed/chair/office/dark{ dir = 4 }, -/turf/open/floor{ - dir = 9; - icon_state = "redfull" - }, +/turf/open/floor/redfull/northwest, /area/bigredv2/outside/marshal_office) "di" = ( /obj/effect/decal/cleanable/dirt, @@ -1153,6 +849,16 @@ }, /turf/open/floor, /area/bigredv2/outside/marshal_office) +"do" = ( +/turf/open/mars/mars_dirt_10, +/area/bigredv2/outside/n) +"fh" = ( +/obj/structure/machinery/door/airlock/almayer/security/glass/colony{ + dir = 1; + name = "\improper Marshal Office Evidence Room" + }, +/turf/open/floor/delivery, +/area/bigredv2/outside/marshal_office) "fD" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 @@ -1162,34 +868,91 @@ /obj/effect/landmark/objective_landmark/far, /turf/open/floor, /area/bigredv2/outside/marshal_office) +"gu" = ( +/turf/open/mars_cave/mars_dirt_4, +/area/bigredv2/outside/n) "gJ" = ( /obj/structure/closet/secure_closet/brig, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/marshal_office) +"if" = ( +/turf/open/floor/asteroidwarning/east, +/area/bigredv2/outside/n) "ix" = ( /obj/structure/closet/secure_closet/brig, /obj/effect/landmark/objective_landmark/far, -/turf/open/floor{ - icon_state = "dark" +/turf/open/floor/dark, +/area/bigredv2/outside/marshal_office) +"jq" = ( +/obj/structure/machinery/camera/autoname, +/obj/effect/decal/warning_stripes{ + icon_state = "SW-out"; + pixel_x = -1; + pixel_y = -1 }, +/turf/open/floor/red/northeast, /area/bigredv2/outside/marshal_office) "qm" = ( /obj/structure/bed, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor{ - icon_state = "dark" +/turf/open/floor/dark, +/area/bigredv2/outside/marshal_office) +"rC" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W"; + layer = 2.5; + pixel_x = -1 }, +/turf/open/floor/red/east, +/area/bigredv2/outside/marshal_office) +"rL" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_x = 1; + pixel_y = 1 + }, +/turf/open/floor/red/southwest, +/area/bigredv2/outside/marshal_office) +"wL" = ( +/obj/structure/machinery/light, +/turf/open/floor/bcircuit, /area/bigredv2/outside/marshal_office) "zX" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor{ - icon_state = "dark" +/turf/open/floor/dark, +/area/bigredv2/outside/marshal_office) +"MM" = ( +/obj/structure/window/framed/solaris/reinforced, +/obj/structure/machinery/door/poddoor/shutters/almayer{ + id = "Marshal Offices"; + name = "\improper Marshal Offices Shutters" + }, +/turf/open/floor/plating, +/area/bigredv2/outside/medical) +"No" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 }, +/turf/open/floor/red/west, /area/bigredv2/outside/marshal_office) +"NW" = ( +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 4 + }, +/obj/structure/machinery/door_control{ + id = "Marshal Offices"; + name = "Storm Shutters"; + pixel_y = 24 + }, +/turf/open/floor/redcorner/east, +/area/bigredv2/outside/marshal_office) +"RJ" = ( +/obj/effect/landmark/lv624/xeno_tunnel, +/turf/open/floor/asteroidfloor/north, +/area/bigredv2/outside/n) (1,1,1) = {" aa @@ -1231,7 +994,7 @@ by cZ cZ cZ -cq +at cA bi bG @@ -1254,8 +1017,8 @@ ah bA cZ cZ -ci -at +cZ +fh cA cO cU @@ -1278,7 +1041,7 @@ ah bB bN bX -by +wL at cA cP @@ -1304,7 +1067,7 @@ at at at at -cA +NW bk ah ah @@ -1324,10 +1087,10 @@ bb bk ah ca -ca +No bY -ca -at +rL +cZ cA bk bG @@ -1348,10 +1111,10 @@ bb bl ah bD -bO +by bZ cj -at +cZ cB bk cV @@ -1371,11 +1134,11 @@ aR bc bk ah -ca -ca -ca -ca -at +bD +by +by +cj +cZ cC cQ bL @@ -1395,11 +1158,11 @@ aR bc bm ah -ca -ca -ca +jq +rC +rC ck -at +cZ cC bi ah @@ -1419,11 +1182,11 @@ aR bb bh ah -at -at -cb -at -at +cZ +cZ +cZ +cZ +cZ cC bi bG @@ -1506,8 +1269,8 @@ dj (14,1,1) = {" ai ai -aj -aj +if +RJ ah aB aL @@ -1528,10 +1291,10 @@ de dj "} (15,1,1) = {" -ai -ai aj aj +aj +cq ah aC cZ @@ -1552,10 +1315,10 @@ ci dj "} (16,1,1) = {" -ai -ai aj aj +aj +cq ah aD cZ @@ -1576,10 +1339,10 @@ df dj "} (17,1,1) = {" -ai -aj aj aj +bO +cq ah aD aN @@ -1602,8 +1365,8 @@ dj (18,1,1) = {" aj aj -aj -aj +do +ai ah aE zX @@ -1621,13 +1384,13 @@ bk cW db dg -dj +MM "} (19,1,1) = {" aj -aj -aj -aj +bO +gu +ai ah aF aN @@ -1645,13 +1408,13 @@ bk bG dc dh -dj +MM "} (20,1,1) = {" -aj -aj -aj -aj +bO +gu +ai +ai ah aG aN @@ -1672,10 +1435,10 @@ bG dj "} (21,1,1) = {" -aj -aj -aj -aj +cb +ai +ai +ai ah aH cZ @@ -1696,7 +1459,7 @@ dd dk "} (22,1,1) = {" -aj +cq ah ah ah diff --git a/maps/map_files/BigRed/sprinkles/10.tcomms_open.dmm b/maps/map_files/BigRed/sprinkles/10.tcomms_open.dmm index 99728fdf50f6..8b49fafe5290 100644 --- a/maps/map_files/BigRed/sprinkles/10.tcomms_open.dmm +++ b/maps/map_files/BigRed/sprinkles/10.tcomms_open.dmm @@ -6,121 +6,73 @@ /turf/closed/wall/solaris/reinforced, /area/bigredv2/outside/telecomm) "c" = ( -/turf/open/floor{ - dir = 8; - icon_state = "damaged5" - }, +/turf/open/floor/damaged5/west, /area/bigredv2/outside/telecomm) "d" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/crap_item, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/telecomm) "e" = ( -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/telecomm) "f" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/telecomm) "g" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/blood, -/turf/open/floor{ - dir = 8; - icon_state = "damaged4" - }, +/turf/open/floor/damaged4/west, /area/bigredv2/outside/telecomm) "h" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/blood/tracks, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/telecomm) "j" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/telecomm) "k" = ( /obj/effect/decal/cleanable/blood/tracks, /obj/effect/decal/cleanable/blood/drip, -/turf/open/floor{ - dir = 8; - icon_state = "damaged4" - }, +/turf/open/floor/damaged4/west, /area/bigredv2/outside/telecomm) "l" = ( /obj/effect/landmark/hunter_primary, -/turf/open/floor{ - dir = 8; - icon_state = "damaged5" - }, +/turf/open/floor/damaged5/west, /area/bigredv2/outside/telecomm) "m" = ( /obj/effect/decal/cleanable/blood/tracks, /obj/effect/decal/cleanable/blood/drip, -/turf/open/floor{ - dir = 8; - icon_state = "damaged5" - }, +/turf/open/floor/damaged5/west, /area/bigredv2/outside/telecomm) "n" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 8; - icon_state = "damaged4" - }, +/turf/open/floor/damaged4/west, /area/bigredv2/outside/telecomm) "o" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/blood/drip, -/turf/open/floor{ - dir = 8; - icon_state = "damaged3" - }, +/turf/open/floor/damaged3/west, /area/bigredv2/outside/telecomm) "p" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/blood/tracks, /obj/effect/decal/cleanable/blood/drip, -/turf/open/floor{ - dir = 8; - icon_state = "damaged4" - }, +/turf/open/floor/damaged4/west, /area/bigredv2/outside/telecomm) "q" = ( -/turf/open/floor{ - dir = 8; - icon_state = "damaged3" - }, +/turf/open/floor/damaged3/west, /area/bigredv2/outside/telecomm) "r" = ( -/turf/open/floor{ - dir = 8; - icon_state = "damaged4" - }, +/turf/open/floor/damaged4/west, /area/bigredv2/outside/telecomm) "s" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/blood/drip, -/turf/open/floor{ - dir = 8; - icon_state = "damaged5" - }, +/turf/open/floor/damaged5/west, /area/bigredv2/outside/telecomm) "t" = ( /obj/effect/decal/cleanable/dirt, @@ -130,14 +82,10 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/blood/tracks, /obj/effect/decal/cleanable/blood/drip, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/telecomm) "v" = ( -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/bigredv2/outside/telecomm) "w" = ( /obj/structure/sign/safety/hazard, @@ -145,31 +93,21 @@ /area/bigredv2/outside/telecomm) "x" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/telecomm) "y" = ( /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/mars_cave{ - icon_state = "mars_cave_7" - }, +/turf/open/mars_cave/mars_cave_7, /area/bigredv2/outside/lz1_telecomm_cas) "z" = ( /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/mars_cave{ - icon_state = "mars_cave_6" - }, +/turf/open/mars_cave/mars_cave_6, /area/bigredv2/outside/lz1_telecomm_cas) "A" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/outside/lz1_telecomm_cas) "B" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_6" - }, +/turf/open/mars_cave/mars_cave_6, /area/bigredv2/outside/lz1_telecomm_cas) "C" = ( /turf/open/mars_cave, @@ -183,19 +121,13 @@ /area/bigredv2/outside/lz1_telecomm_cas) "F" = ( /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/outside/lz1_telecomm_cas) "G" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_23" - }, +/turf/open/mars_cave/mars_cave_23, /area/bigredv2/outside/lz1_telecomm_cas) "U" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_5" - }, +/turf/open/mars_cave/mars_cave_5, /area/bigredv2/outside/lz1_telecomm_cas) (1,1,1) = {" diff --git a/maps/map_files/BigRed/sprinkles/15.reactor_meltdown.dmm b/maps/map_files/BigRed/sprinkles/15.reactor_meltdown.dmm index 8f6063172ff5..897f76d0f656 100644 --- a/maps/map_files/BigRed/sprinkles/15.reactor_meltdown.dmm +++ b/maps/map_files/BigRed/sprinkles/15.reactor_meltdown.dmm @@ -1,9 +1,7 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE "ai" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/engineering) "ak" = ( /obj/effect/spawner/random/tool, @@ -12,35 +10,25 @@ "al" = ( /obj/structure/surface/table, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/engineering) "am" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor{ - dir = 10; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/southwest, /area/bigredv2/outside/engineering) "an" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/bigredv2/outside/engineering) "ao" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/engineering) "aq" = ( /turf/closed/wall/solaris/reinforced, @@ -54,17 +42,13 @@ "aD" = ( /obj/structure/surface/table, /obj/effect/spawner/random/toolbox, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/engineering) "aE" = ( /obj/structure/surface/table, /obj/effect/spawner/random/tool, /obj/effect/spawner/random/technology_scanner, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/engineering) "aF" = ( /obj/structure/window/framed/solaris, @@ -72,51 +56,34 @@ /area/bigredv2/outside/engineering) "aT" = ( /obj/structure/reagent_dispensers/fueltank, -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/bigredv2/outside/engineering) "aU" = ( /obj/structure/surface/rack, /obj/item/device/camera_film, -/turf/open/floor{ - dir = 9; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/northwest, /area/bigredv2/outside/engineering) "aV" = ( /obj/structure/surface/rack, /obj/item/device/analyzer, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/bigredv2/outside/engineering) "aW" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/bigredv2/outside/engineering) "aY" = ( /obj/structure/pipes/standard/manifold/fourway/hidden/green, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/engineering) "aZ" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/bigredv2/outside/engineering) "ba" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -124,20 +91,14 @@ }, /obj/effect/decal/cleanable/dirt, /obj/item/device/lightreplacer, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/bigredv2/outside/engineering) "bb" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/item/stack/sheet/metal, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/bigredv2/outside/engineering) "bc" = ( /obj/structure/machinery/light{ @@ -146,58 +107,41 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/bigredv2/outside/engineering) "bd" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/landmark/hunter_secondary, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/darkyellowcorners2/north, /area/bigredv2/outside/engineering) "be" = ( /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/engineering) "bf" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/decal/cleanable/liquid_fuel, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/engineering) "bg" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/bigredv2/outside/engineering) "bi" = ( /obj/effect/decal/cleanable/dirt, /obj/item/clothing/mask/breath, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/engineering) "bj" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/item/stack/sheet/metal, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/engineering) "bk" = ( /obj/effect/decal/cleanable/dirt, @@ -205,9 +149,7 @@ dir = 1; pixel_y = -30 }, -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/bigredv2/outside/engineering) "bl" = ( /obj/effect/decal/cleanable/liquid_fuel, @@ -216,9 +158,7 @@ name = "Storm Shutters"; pixel_y = -32 }, -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/bigredv2/outside/engineering) "bm" = ( /obj/structure/bed/chair{ @@ -226,35 +166,26 @@ }, /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/crap_item, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/engineering) "bn" = ( /obj/structure/surface/table, /obj/effect/decal/cleanable/dirt, /obj/item/clothing/glasses/welding, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/engineering) "bo" = ( /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/engineering) "bp" = ( /obj/item/folder/yellow, /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/darkyellowcorners2/east, /area/bigredv2/outside/engineering) "bq" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -263,87 +194,62 @@ /obj/structure/machinery/door/airlock/almayer/engineering/colony{ name = "\improper Engineering Workshop" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/engineering) "br" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/engineering) "bs" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, +/turf/open/floor/plating/panelscorched, /area/bigredv2/outside/engineering) "bu" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony{ dir = 1; name = "\improper Engine Reactor Control" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/telecomm/engi) "bv" = ( /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/engineering) "bw" = ( -/turf/open/floor{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/west, /area/bigredv2/outside/engineering) "bx" = ( /obj/structure/machinery/computer/arcade, -/turf/open/floor{ - dir = 5; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/northeast, /area/bigredv2/outside/engineering) "by" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/engineering) "bz" = ( /obj/effect/decal/cleanable/dirt, /obj/item/stack/sheet/metal, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/engineering) "bA" = ( /obj/structure/surface/table, /obj/effect/spawner/random/toolbox, /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/bigredv2/outside/engineering) "bB" = ( /obj/item/stack/sheet/glass, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/engineering) "bC" = ( /obj/effect/decal/cleanable/dirt, @@ -361,30 +267,19 @@ dir = 8 }, /obj/effect/spawner/random/technology_scanner, -/turf/open/floor{ - dir = 9; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/northwest, /area/bigredv2/outside/telecomm/engi) "bF" = ( /obj/structure/machinery/camera/autoname, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/bigredv2/outside/telecomm/engi) "bG" = ( -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/bigredv2/outside/telecomm/engi) "bH" = ( /obj/structure/surface/table, /obj/effect/decal/cleanable/ash, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/engineering) "bJ" = ( /obj/structure/bed/chair{ @@ -393,70 +288,46 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/engineering) "bK" = ( /obj/item/folder/yellow, -/turf/open/floor{ - dir = 4; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/darkyellowcorners2/east, /area/bigredv2/outside/engineering) "bL" = ( /obj/structure/machinery/vending/cigarette/colony, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/bigredv2/outside/engineering) "bM" = ( /obj/structure/machinery/vending/snack, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/bigredv2/outside/engineering) "bN" = ( /obj/structure/machinery/vending/cola, -/turf/open/floor{ - dir = 5; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/northeast, /area/bigredv2/outside/engineering) "bO" = ( /obj/structure/bed/chair/office/light{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/engineering) "bP" = ( /obj/structure/surface/table, /obj/effect/spawner/random/powercell, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/bigredv2/outside/engineering) "bQ" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/darkyellowcorners2, /area/bigredv2/outside/engineering) "bR" = ( /obj/structure/machinery/light{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/bigredv2/outside/engineering) "bS" = ( /obj/structure/bed/chair/office/light{ @@ -465,18 +336,13 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/telecomm/engi) "bT" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/bigredv2/outside/telecomm/engi) "bU" = ( /obj/item/device/radio/intercom{ @@ -485,27 +351,21 @@ name = "General Listening Channel"; pixel_x = 30 }, -/turf/open/floor{ - icon_state = "podhatchfloor" - }, +/turf/open/floor/podhatchfloor, /area/bigredv2/outside/telecomm/engi) "bV" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/engineering) "bX" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/engineering) "bY" = ( /obj/effect/decal/cleanable/dirt, @@ -513,27 +373,19 @@ amount = 30 }, /obj/effect/landmark/crap_item, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/engineering) "bZ" = ( /obj/structure/surface/table, /obj/effect/decal/cleanable/dirt, /obj/item/tool/pen, -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/bigredv2/outside/engineering) "ca" = ( /obj/structure/sign/safety/hazard{ pixel_y = -32 }, -/turf/open/floor{ - dir = 10; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/southwest, /area/bigredv2/outside/engineering) "ce" = ( /obj/item/tool/lighter/random, @@ -541,87 +393,59 @@ dir = 4 }, /obj/effect/decal/cleanable/ash, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/engineering) "cf" = ( /obj/item/stack/sheet/metal, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, +/turf/open/floor/plating/panelscorched, /area/bigredv2/outside/engineering) "cg" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, +/turf/open/floor/plating/panelscorched, /area/bigredv2/outside/engineering) "ch" = ( /obj/effect/landmark/crap_item, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/engineering) "ck" = ( /obj/effect/decal/cleanable/dirt, /obj/item/clothing/suit/radiation, -/turf/open/floor{ - dir = 8; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/darkyellowcorners2/west, /area/bigredv2/outside/engineering) "cl" = ( /obj/effect/decal/cleanable/dirt, /obj/item/clothing/head/welding, -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/bigredv2/outside/engineering) "cm" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/bigredv2/outside/engineering) "cn" = ( /obj/structure/machinery/door/airlock/almayer/secure/colony{ dir = 1; name = "\improper Engine Reactor" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/engineering) "co" = ( /obj/structure/closet/radiation, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/engineering) "cp" = ( /obj/item/folder/yellow, /obj/effect/landmark/crap_item, -/turf/open/floor{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/west, /area/bigredv2/outside/engineering) "cq" = ( /obj/effect/decal/cleanable/ash, /obj/structure/machinery/power/breakerbox, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, +/turf/open/floor/plating/panelscorched, /area/bigredv2/outside/telecomm/engi) "cr" = ( /obj/effect/decal/cleanable/molten_item, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/bigredv2/outside/telecomm/engi) "cs" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -630,9 +454,7 @@ /obj/structure/machinery/door/airlock/almayer/engineering/colony{ name = "\improper Engine Reactor Control" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/telecomm/engi) "ct" = ( /obj/structure/machinery/door_control{ @@ -642,48 +464,36 @@ pixel_x = 30; req_access_txt = "7" }, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, +/turf/open/floor/plating/panelscorched, /area/bigredv2/outside/telecomm/engi) "cv" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony{ name = "\improper Engine Reactor Control" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/telecomm/engi) "cw" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, +/turf/open/floor/plating/panelscorched, /area/bigredv2/outside/engineering) "cx" = ( /obj/structure/machinery/constructable_frame{ icon_state = "box_1" }, -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/bigredv2/outside/engineering) "cy" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/constructable_frame, -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/bigredv2/outside/engineering) "cz" = ( /obj/structure/surface/table, /obj/structure/machinery/light, /obj/effect/spawner/random/tool, -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/bigredv2/outside/engineering) "cA" = ( /obj/structure/surface/table, @@ -691,10 +501,7 @@ /obj/item/stack/sheet/metal{ amount = 30 }, -/turf/open/floor{ - dir = 6; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/southeast, /area/bigredv2/outside/engineering) "cB" = ( /obj/structure/machinery/light{ @@ -703,24 +510,17 @@ /obj/structure/sign/safety/high_rad{ pixel_x = 32 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/engineering) "cC" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, +/turf/open/floor/plating/panelscorched, /area/bigredv2/outside/engineering) "cD" = ( /obj/structure/machinery/computer/area_atmos, -/turf/open/floor{ - dir = 6; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/southeast, /area/bigredv2/outside/engineering) "cE" = ( /obj/structure/machinery/light{ @@ -729,17 +529,12 @@ /obj/structure/sign/safety/high_rad{ pixel_x = -32 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/engineering) "cF" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/reagent_dispensers/fueltank, -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/bigredv2/outside/engineering) "cG" = ( /obj/structure/window/framed/solaris/reinforced, @@ -755,9 +550,7 @@ /obj/effect/landmark/static_comms/net_two{ broken_on_spawn = 1 }, -/turf/open/floor{ - icon_state = "podhatchfloor" - }, +/turf/open/floor/podhatchfloor, /area/bigredv2/outside/telecomm/engi) "cI" = ( /obj/structure/sign/safety/hazard{ @@ -765,29 +558,21 @@ }, /obj/effect/decal/cleanable/dirt, /obj/item/tool/extinguisher, -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/bigredv2/outside/engineering) "cK" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/molten_item, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/telecomm/engi) "cM" = ( /turf/open/mars, /area/bigredv2/outside/lz2_south_cas) "cN" = ( -/turf/open/mars{ - icon_state = "mars_dirt_11" - }, +/turf/open/mars/mars_dirt_11, /area/bigredv2/outside/lz2_south_cas) "cO" = ( -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/outside/lz2_south_cas) "cP" = ( /turf/open/floor/plating, @@ -800,9 +585,7 @@ /turf/open/gm/river, /area/bigredv2/outside/engineering) "cT" = ( -/turf/open/mars{ - icon_state = "mars_dirt_13" - }, +/turf/open/mars/mars_dirt_13, /area/bigredv2/outside/lz2_south_cas) "cX" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -812,14 +595,10 @@ dir = 1; name = "\improper Engineering Complex" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/engineering) "cY" = ( -/turf/open/mars_cave{ - icon_state = "mars_dirt_5" - }, +/turf/open/mars_cave/mars_dirt_5, /area/bigredv2/outside/lz2_south_cas) "da" = ( /turf/closed/wall/mineral/uranium, @@ -830,20 +609,14 @@ /turf/open/floor/plating, /area/bigredv2/outside/engineering) "dc" = ( -/turf/open/mars_cave{ - icon_state = "mars_dirt_7" - }, +/turf/open/mars_cave/mars_dirt_7, /area/bigredv2/outside/lz2_south_cas) "dd" = ( -/turf/open/mars_cave{ - icon_state = "mars_dirt_6" - }, +/turf/open/mars_cave/mars_dirt_6, /area/bigredv2/outside/lz2_south_cas) "de" = ( /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/mars_cave{ - icon_state = "mars_cave_19" - }, +/turf/open/mars_cave/mars_cave_19, /area/bigredv2/outside/lz2_south_cas) "df" = ( /obj/structure/machinery/power/port_gen/pacman, @@ -854,10 +627,7 @@ dir = 8 }, /obj/effect/decal/cleanable/ash, -/turf/open/floor{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/west, /area/bigredv2/outside/engineering) "dj" = ( /obj/effect/decal/cleanable/dirt/greenglow, @@ -868,9 +638,7 @@ /turf/open/floor/plating, /area/bigredv2/outside/engineering) "dl" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_17" - }, +/turf/open/mars_cave/mars_cave_17, /area/bigredv2/outside/lz2_south_cas) "dn" = ( /turf/open/mars_cave, @@ -901,9 +669,7 @@ /turf/open/floor/plating, /area/bigredv2/outside/engineering) "dt" = ( -/turf/open/mars{ - icon_state = "mars_dirt_13" - }, +/turf/open/mars/mars_dirt_13, /area/bigredv2/outside/s) "dv" = ( /obj/structure/machinery/power/turbine, @@ -911,14 +677,11 @@ /area/bigredv2/outside/engineering) "dx" = ( /obj/effect/decal/cleanable/dirt/greenglow, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, +/turf/open/floor/plating/panelscorched, /area/bigredv2/outside/engineering) "dy" = ( -/obj/structure/machinery/power/geothermal{ - name = "Reactor Turbine"; - power_generation_max = 1e+006 +/obj/structure/machinery/power/reactor/colony{ + name = "Reactor Turbine" }, /turf/open/floor/plating, /area/bigredv2/outside/engineering) @@ -927,23 +690,17 @@ /turf/open/floor/plating, /area/bigredv2/outside/engineering) "dA" = ( -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/outside/s) "dC" = ( -/turf/open/mars{ - icon_state = "mars_dirt_10" - }, +/turf/open/mars/mars_dirt_10, /area/bigredv2/outside/s) "dE" = ( /obj/structure/window_frame/solaris/reinforced, /turf/open/floor/plating, /area/bigredv2/outside/engineering) "dF" = ( -/turf/open/mars_cave{ - icon_state = "mars_dirt_7" - }, +/turf/open/mars_cave/mars_dirt_7, /area/bigredv2/outside/s) "dG" = ( /obj/structure/machinery/power/port_gen/pacman, @@ -952,9 +709,7 @@ /area/bigredv2/outside/engineering) "dJ" = ( /obj/effect/landmark/hunter_primary, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/outside/lz2_south_cas) "dK" = ( /obj/structure/machinery/compressor{ @@ -964,38 +719,26 @@ /turf/open/floor/plating, /area/bigredv2/outside/engineering) "dO" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_6" - }, +/turf/open/mars_cave/mars_cave_6, /area/bigredv2/outside/lz2_south_cas) "dR" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/outside/lz2_south_cas) "dS" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_7" - }, +/turf/open/mars_cave/mars_cave_7, /area/bigredv2/outside/lz2_south_cas) "dT" = ( /turf/closed/wall/solaris/rock, /area/bigredv2/caves) "dU" = ( /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/mars_cave{ - icon_state = "mars_cave_10" - }, +/turf/open/mars_cave/mars_cave_10, /area/bigredv2/outside/lz2_south_cas) "dV" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_5" - }, +/turf/open/mars_cave/mars_cave_5, /area/bigredv2/outside/lz2_south_cas) "dW" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_23" - }, +/turf/open/mars_cave/mars_cave_23, /area/bigredv2/outside/lz2_south_cas) "dX" = ( /obj/structure/girder/reinforced, @@ -1003,9 +746,7 @@ /area/bigredv2/outside/engineering) "dY" = ( /obj/effect/decal/cleanable/dirt/greenglow, -/turf/open/floor{ - icon_state = "wall_thermite" - }, +/turf/open/floor/wall_thermite, /area/bigredv2/outside/engineering) "dZ" = ( /obj/effect/decal/cleanable/dirt/greenglow, @@ -1014,9 +755,7 @@ "eb" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt/greenglow, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, +/turf/open/floor/plating/panelscorched, /area/bigredv2/outside/engineering) "ec" = ( /obj/structure/catwalk/bigred, @@ -1041,17 +780,13 @@ /obj/structure/machinery/compressor{ dir = 1 }, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, +/turf/open/floor/plating/panelscorched, /area/bigredv2/outside/engineering) "ej" = ( /obj/structure/machinery/light_construct{ dir = 4 }, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, +/turf/open/floor/plating/panelscorched, /area/bigredv2/outside/engineering) "ek" = ( /obj/structure/machinery/camera/autoname{ @@ -1082,9 +817,7 @@ "eo" = ( /obj/effect/decal/cleanable/dirt/greenglow, /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/mars_cave{ - icon_state = "mars_cave_7" - }, +/turf/open/mars_cave/mars_cave_7, /area/bigredv2/outside/lz2_south_cas) "ep" = ( /obj/item/tool/extinguisher, @@ -1092,9 +825,7 @@ /area/bigredv2/outside/engineering) "eq" = ( /obj/effect/decal/cleanable/molten_item, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, +/turf/open/floor/plating/panelscorched, /area/bigredv2/outside/engineering) "er" = ( /obj/effect/decal/cleanable/dirt, @@ -1103,27 +834,19 @@ /area/bigredv2/outside/engineering) "et" = ( /obj/structure/bed/chair/office/light, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, +/turf/open/floor/plating/panelscorched, /area/bigredv2/outside/telecomm/engi) "ev" = ( /obj/structure/machinery/light_construct, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, +/turf/open/floor/plating/panelscorched, /area/bigredv2/outside/engineering) "ew" = ( -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, +/turf/open/floor/plating/panelscorched, /area/bigredv2/outside/engineering) "ex" = ( /obj/effect/decal/cleanable/molten_item, /obj/effect/decal/cleanable/dirt/greenglow, -/turf/open/floor{ - icon_state = "wall_thermite" - }, +/turf/open/floor/wall_thermite, /area/bigredv2/outside/engineering) "ey" = ( /obj/structure/machinery/light_construct{ @@ -1134,17 +857,13 @@ /area/bigredv2/outside/engineering) "ez" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, +/turf/open/floor/plating/panelscorched, /area/bigredv2/outside/engineering) "eA" = ( /obj/structure/machinery/light_construct{ dir = 1 }, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, +/turf/open/floor/plating/panelscorched, /area/bigredv2/outside/engineering) "eB" = ( /obj/effect/decal/cleanable/dirt/greenglow, @@ -1154,55 +873,38 @@ "eC" = ( /obj/structure/surface/table, /obj/effect/decal/cleanable/molten_item, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, +/turf/open/floor/plating/panelscorched, /area/bigredv2/outside/telecomm/engi) "eD" = ( /obj/structure/surface/table, /obj/effect/decal/cleanable/ash, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, +/turf/open/floor/plating/panelscorched, /area/bigredv2/outside/telecomm/engi) "eE" = ( /obj/structure/computerframe, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, +/turf/open/floor/plating/panelscorched, /area/bigredv2/outside/telecomm/engi) "eF" = ( /obj/structure/surface/table, /obj/item/device/analyzer, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, +/turf/open/floor/plating/panelscorched, /area/bigredv2/outside/telecomm/engi) "eG" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt/greenglow, -/turf/open/floor{ - icon_state = "wall_thermite" - }, +/turf/open/floor/wall_thermite, /area/bigredv2/outside/engineering) "eH" = ( /obj/effect/decal/cleanable/molten_item, -/turf/open/floor{ - icon_state = "panelscorched" - }, +/turf/open/floor/panelscorched, /area/bigredv2/outside/engineering) "eI" = ( /obj/effect/decal/cleanable/ash, -/turf/open/floor{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/west, /area/bigredv2/outside/telecomm/engi) "eJ" = ( /obj/effect/decal/cleanable/molten_item, -/turf/open/floor{ - icon_state = "wall_thermite" - }, +/turf/open/floor/wall_thermite, /area/bigredv2/outside/engineering) "eK" = ( /obj/effect/decal/cleanable/molten_item, @@ -1211,9 +913,7 @@ /area/bigredv2/outside/engineering) "eL" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "wall_thermite" - }, +/turf/open/floor/wall_thermite, /area/bigredv2/outside/engineering) "eM" = ( /obj/effect/decal/cleanable/dirt/greenglow, @@ -1222,43 +922,31 @@ /area/bigredv2/outside/engineering) "eN" = ( /obj/effect/decal/cleanable/dirt/greenglow, -/turf/open/mars_cave{ - icon_state = "mars_cave_5" - }, +/turf/open/mars_cave/mars_cave_5, /area/bigredv2/outside/lz2_south_cas) "eO" = ( /turf/closed/wall/mineral/uranium/leaking, /area/bigredv2/outside/engineering) "fI" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/engineering) "gT" = ( -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/bigredv2/outside/engineering) "im" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/engineering) "iQ" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/bigredv2/outside/engineering) "jr" = ( /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/mars_cave{ - icon_state = "mars_dirt_5" - }, +/turf/open/mars_cave/mars_dirt_5, /area/bigredv2/outside/lz2_south_cas) "kN" = ( /obj/structure/blocker/forcefield/multitile_vehicles, @@ -1268,9 +956,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/engineering) "oE" = ( /obj/structure/machinery/door/poddoor/almayer{ @@ -1281,23 +967,15 @@ /area/bigredv2/outside/telecomm/engi) "oK" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/west, /area/bigredv2/outside/engineering) "sU" = ( /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/mars_cave{ - icon_state = "mars_dirt_6" - }, +/turf/open/mars_cave/mars_dirt_6, /area/bigredv2/outside/lz2_south_cas) "to" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/bigredv2/outside/engineering) "vs" = ( /turf/closed/wall/solaris/reinforced, @@ -1306,30 +984,21 @@ /obj/structure/machinery/power/apc/fully_broken{ dir = 4 }, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, +/turf/open/floor/plating/panelscorched, /area/bigredv2/outside/telecomm/engi) "xl" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 8; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/darkyellowcorners2/west, /area/bigredv2/outside/engineering) "xz" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/telecomm/engi) "yH" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, +/turf/open/floor/plating/panelscorched, /area/bigredv2/outside/telecomm/engi) "Ah" = ( /obj/structure/blocker/forcefield/multitile_vehicles, @@ -1337,44 +1006,29 @@ /area/bigredv2/outside/lz2_south_cas) "Bo" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/telecomm/engi) "CA" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, +/turf/open/floor/plating/panelscorched, /area/bigredv2/outside/telecomm/engi) "Dh" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 4; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/darkyellowcorners2/east, /area/bigredv2/outside/engineering) "Dq" = ( -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/bigredv2/outside/engineering) "ET" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/west, /area/bigredv2/outside/engineering) "IE" = ( /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/mars_cave{ - icon_state = "mars_cave_7" - }, +/turf/open/mars_cave/mars_cave_7, /area/bigredv2/outside/lz2_south_cas) "KJ" = ( /obj/structure/window_frame/solaris/reinforced, @@ -1384,72 +1038,46 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/bigredv2/outside/engineering) "LE" = ( /obj/effect/decal/cleanable/ash, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, +/turf/open/floor/plating/panelscorched, /area/bigredv2/outside/telecomm/engi) "Nv" = ( -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/engineering) "NT" = ( -/turf/open/floor{ - dir = 4; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/darkyellowcorners2/east, /area/bigredv2/outside/telecomm/engi) "NX" = ( /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/mars{ - icon_state = "mars_dirt_11" - }, +/turf/open/mars/mars_dirt_11, /area/bigredv2/outside/lz2_south_cas) "Ph" = ( /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/outside/lz2_south_cas) "RN" = ( -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, +/turf/open/floor/plating/panelscorched, /area/bigredv2/outside/telecomm/engi) "Sz" = ( /obj/item/stack/sheet/glass, -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/bigredv2/outside/engineering) "SC" = ( -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/engineering) "Tv" = ( -/turf/open/floor{ - icon_state = "podhatchfloor" - }, +/turf/open/floor/podhatchfloor, /area/bigredv2/outside/telecomm/engi) "Uo" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "podhatchfloor" - }, +/turf/open/floor/podhatchfloor, /area/bigredv2/outside/telecomm/engi) "WI" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/bigredv2/outside/engineering) (1,1,1) = {" diff --git a/maps/map_files/BigRed/sprinkles/20.etatunnel_open.dmm b/maps/map_files/BigRed/sprinkles/20.etatunnel_open.dmm index 633a79f6acb9..ac01a7d1f4f7 100644 --- a/maps/map_files/BigRed/sprinkles/20.etatunnel_open.dmm +++ b/maps/map_files/BigRed/sprinkles/20.etatunnel_open.dmm @@ -1,39 +1,26 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE "ao" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_23" - }, +/turf/open/mars_cave/mars_cave_23, /area/bigredv2/outside/lz2_south_cas) "au" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/weapon/shield/riot, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "az" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves_research) "bu" = ( /obj/structure/closet/secure_closet/marshal, /obj/item/clothing/suit/storage/CMB, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "cj" = ( /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "cR" = ( /turf/closed/wall/solaris/rock, @@ -42,48 +29,32 @@ /turf/open/mars_cave, /area/bigredv2/caves_research) "fo" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_15" - }, +/turf/open/mars_cave/mars_cave_15, /area/bigredv2/outside/lz2_south_cas) "fK" = ( /obj/structure/machinery/light/double{ dir = 1 }, -/turf/open/mars_cave{ - icon_state = "mars_cave_7" - }, +/turf/open/mars_cave/mars_cave_7, /area/bigredv2/outside/lz2_south_cas) "fQ" = ( -/turf/open/mars_cave{ - icon_state = "mars_dirt_6" - }, +/turf/open/mars_cave/mars_dirt_6, /area/bigredv2/outside/lz2_south_cas) "gQ" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_9" - }, +/turf/open/mars_cave/mars_cave_9, /area/bigredv2/caves_sw) "ie" = ( /obj/item/prop/helmetgarb/spent_buckshot, -/turf/open/mars_cave{ - icon_state = "mars_cave_17" - }, +/turf/open/mars_cave/mars_cave_17, /area/bigredv2/outside/lz2_south_cas) "ii" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_15" - }, +/turf/open/mars_cave/mars_cave_15, /area/bigredv2/caves_sw) "ik" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_13" - }, +/turf/open/mars_cave/mars_cave_13, /area/bigredv2/outside/lz2_south_cas) "io" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_6" - }, +/turf/open/mars_cave/mars_cave_6, /area/bigredv2/caves_research) "iF" = ( /obj/structure/surface/table/reinforced/prison, @@ -98,24 +69,16 @@ pixel_x = -8; pixel_y = 7 }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "jj" = ( -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/outside/lz2_south_cas) "ki" = ( /obj/structure/machinery/light/double{ dir = 4 }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "kq" = ( /obj/structure/surface/table/reinforced/prison, @@ -140,91 +103,57 @@ pixel_x = -7; pixel_y = -3 }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "kS" = ( -/turf/open/mars_cave{ - icon_state = "mars_dirt_7" - }, +/turf/open/mars_cave/mars_dirt_7, /area/bigredv2/caves_sw) "lQ" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/caves_sw) "mT" = ( /obj/item/clothing/head/helmet/riot, -/turf/open/floor/plating{ - burnt = 1; - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/burnt_platingdmg3/west, /area/bigredv2/caves/mining) "nx" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/mars_cave{ - icon_state = "mars_dirt_7" - }, +/turf/open/mars_cave/mars_dirt_7, /area/bigredv2/outside/lz2_south_cas) "pn" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_17" - }, +/turf/open/mars_cave/mars_cave_17, /area/bigredv2/caves_sw) "qm" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/outside/lz2_south_cas) "qW" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_13" - }, +/turf/open/mars_cave/mars_cave_13, /area/bigredv2/caves_sw) "sJ" = ( /obj/item/clothing/suit/storage/CMB, /obj/structure/closet/secure_closet/marshal, /obj/structure/machinery/light/double, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "sV" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_7" - }, +/turf/open/mars_cave/mars_cave_7, /area/bigredv2/caves_sw) "uJ" = ( /obj/item/shard{ pixel_x = 11; pixel_y = 8 }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "vX" = ( -/turf/open/mars_cave{ - icon_state = "mars_dirt_5" - }, +/turf/open/mars_cave/mars_dirt_5, /area/bigredv2/caves_sw) "wn" = ( /obj/effect/landmark/crap_item, -/turf/open/mars_cave{ - icon_state = "mars_cave_13" - }, +/turf/open/mars_cave/mars_cave_13, /area/bigredv2/outside/lz2_south_cas) "wJ" = ( -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/lz2_south_cas) "wK" = ( /obj/structure/bed/chair{ @@ -232,10 +161,7 @@ }, /obj/effect/landmark/corpsespawner/security, /obj/effect/decal/cleanable/blood, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "wW" = ( /obj/structure/surface/table/reinforced/prison, @@ -250,14 +176,11 @@ pixel_x = -11; pixel_y = 1 }, -/obj/item/handcuffs{ +/obj/item/restraint/handcuffs{ pixel_x = 1; pixel_y = 5 }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "xS" = ( /obj/item/trash/cigbutt, @@ -265,22 +188,16 @@ pixel_x = 9; pixel_y = -5 }, -/turf/open/mars_cave{ - icon_state = "mars_cave_17" - }, +/turf/open/mars_cave/mars_cave_17, /area/bigredv2/outside/lz2_south_cas) "yw" = ( /turf/closed/wall/solaris/reinforced, /area/bigredv2/caves) "zB" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves_sw) "zP" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_20" - }, +/turf/open/mars_cave/mars_cave_20, /area/bigredv2/outside/lz2_south_cas) "AD" = ( /obj/effect/decal/cleanable/blood{ @@ -288,43 +205,28 @@ icon_state = "gib6"; pixel_y = 20 }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "Be" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ name = "\improper Marshals Mining Security Post" }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "Bm" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_14" - }, +/turf/open/mars_cave/mars_cave_14, /area/bigredv2/caves_sw) "Bz" = ( /obj/effect/decal/cleanable/blood{ icon_state = "gib6" }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "BO" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_17" - }, +/turf/open/mars_cave/mars_cave_17, /area/bigredv2/outside/lz2_south_cas) "BY" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_11" - }, +/turf/open/mars_cave/mars_cave_11, /area/bigredv2/caves_research) "En" = ( /obj/structure/window_frame/solaris/reinforced, @@ -337,40 +239,26 @@ pixel_y = -9 }, /obj/item/shard, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "Et" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_10" - }, +/turf/open/mars_cave/mars_cave_10, /area/bigredv2/caves_research) "Fp" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_19" - }, +/turf/open/mars_cave/mars_cave_19, /area/bigredv2/caves_sw) "FB" = ( /obj/structure/surface/rack, /obj/item/clothing/suit/storage/marine/veteran/ua_riot, /obj/item/clothing/suit/storage/marine/veteran/ua_riot, /obj/item/clothing/under/marine/ua_riot, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "FW" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_11" - }, +/turf/open/mars_cave/mars_cave_11, /area/bigredv2/outside/lz2_south_cas) "Jm" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_7" - }, +/turf/open/mars_cave/mars_cave_7, /area/bigredv2/outside/lz2_south_cas) "Jy" = ( /obj/structure/surface/table/reinforced/prison, @@ -381,32 +269,22 @@ }, /obj/item/clothing/mask/cigarette/cigar/havana, /obj/item/shard, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "JV" = ( /turf/closed/wall/wood, /area/bigredv2/outside/lz2_south_cas) "JW" = ( /obj/structure/machinery/light/double, -/turf/open/mars_cave{ - icon_state = "mars_cave_5" - }, +/turf/open/mars_cave/mars_cave_5, /area/bigredv2/outside/lz2_south_cas) "KI" = ( /obj/effect/landmark/corpsespawner/ua_riot, /obj/effect/decal/cleanable/blood, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "Le" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves_research) "MN" = ( /obj/structure/reagent_dispensers/peppertank{ @@ -419,20 +297,15 @@ icon_state = "grenade_custom"; name = "M55C Teargas grenade" }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "Nu" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves_sw) "OV" = ( /obj/structure/surface/rack, -/obj/item/handcuffs{ +/obj/item/restraint/handcuffs{ pixel_x = 1; pixel_y = 5 }, @@ -440,58 +313,38 @@ /obj/item/clothing/head/helmet/riot{ pixel_y = 11 }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "OY" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_14" - }, +/turf/open/mars_cave/mars_cave_14, /area/bigredv2/outside/lz2_south_cas) "Qn" = ( /obj/structure/window_frame/solaris/reinforced, /obj/item/shard, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "QO" = ( /obj/effect/landmark/crap_item, -/turf/open/mars_cave{ - icon_state = "mars_cave_7" - }, +/turf/open/mars_cave/mars_cave_7, /area/bigredv2/caves_research) "QS" = ( /obj/structure/machinery/door/poddoor/two_tile{ name = "\improper Eta Tunnel Lockdown" }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/lz2_south_cas) "QV" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_20" - }, +/turf/open/mars_cave/mars_cave_20, /area/bigredv2/caves_sw) "Rm" = ( /obj/item/shard{ icon_state = "small" }, -/turf/open/mars_cave{ - icon_state = "mars_cave_17" - }, +/turf/open/mars_cave/mars_cave_17, /area/bigredv2/outside/lz2_south_cas) "Sy" = ( /obj/item/weapon/broken_bottle, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "Tm" = ( /obj/effect/decal/cleanable/blood{ @@ -501,102 +354,66 @@ icon_state = "grenade_custom"; name = "M55C Teargas grenade" }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "Ue" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/paper_bundle, -/obj/item/handcuffs{ +/obj/item/restraint/handcuffs{ pixel_y = -3 }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "Uh" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/mars_cave{ - icon_state = "mars_cave_15" - }, +/turf/open/mars_cave/mars_cave_15, /area/bigredv2/caves_sw) "UG" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves_sw) "UX" = ( -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/caves_sw) "VR" = ( /turf/closed/wall/solaris/reinforced, /area/bigredv2/caves/mining) "Wy" = ( /obj/structure/window/framed/solaris/reinforced, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "WV" = ( -/turf/open/mars_cave{ - icon_state = "mars_dirt_6" - }, +/turf/open/mars_cave/mars_dirt_6, /area/bigredv2/caves_sw) "Xl" = ( -/turf/open/mars_cave{ - icon_state = "mars_dirt_7" - }, +/turf/open/mars_cave/mars_dirt_7, /area/bigredv2/outside/lz2_south_cas) "Xm" = ( -/turf/open/floor/plating{ - burnt = 1; - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/burnt_platingdmg3/west, /area/bigredv2/caves/mining) "XE" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/computer/cameras{ dir = 4 }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "XV" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/door/window{ dir = 1 }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) "Yt" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_16" - }, +/turf/open/mars_cave/mars_cave_16, /area/bigredv2/outside/lz2_south_cas) "Zk" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_16" - }, +/turf/open/mars_cave/mars_cave_16, /area/bigredv2/caves_sw) "Zz" = ( -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/caves/mining) (1,1,1) = {" diff --git a/maps/map_files/BigRed/sprinkles/20.lz1entrance_v2.dmm b/maps/map_files/BigRed/sprinkles/20.lz1entrance_v2.dmm index 3774e4222fae..729d541cbc96 100644 --- a/maps/map_files/BigRed/sprinkles/20.lz1entrance_v2.dmm +++ b/maps/map_files/BigRed/sprinkles/20.lz1entrance_v2.dmm @@ -1,19 +1,12 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE "aa" = ( /obj/structure/machinery/landinglight/ds1/delaythree{ - dir = 8; - icon_state = "landingstripe" - }, -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" + dir = 8 }, +/turf/open/floor/asteroidwarning/west, /area/bigredv2/outside/space_port) "ab" = ( -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/east, /area/bigredv2/outside/space_port) "ac" = ( /turf/closed/wall/solaris/reinforced, @@ -46,177 +39,113 @@ /turf/closed/wall/solaris/reinforced, /area/bigredv2/outside/space_port) "ak" = ( -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/space_port) "al" = ( /obj/item/shard, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/space_port) "am" = ( /obj/structure/largecrate/random/barrel, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/space_port) "an" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/toolbox, -/turf/open/floor{ - dir = 9; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/northwest, /area/bigredv2/outside/space_port) "ao" = ( /obj/structure/machinery/disposal, -/turf/open/floor{ - dir = 1; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/north, /area/bigredv2/outside/space_port) "ap" = ( /obj/item/shard, -/turf/open/floor{ - dir = 1; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/north, /area/bigredv2/outside/space_port) "aq" = ( -/turf/open/floor{ - dir = 1; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/north, /area/bigredv2/outside/space_port) "ar" = ( /obj/structure/noticeboard{ pixel_y = 30 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/north, /area/bigredv2/outside/space_port) "as" = ( /obj/structure/machinery/vending/cigarette/colony, -/turf/open/floor{ - dir = 5; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/northeast, /area/bigredv2/outside/space_port) "at" = ( -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/north, /area/bigredv2/outside/space_port) "au" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/north, /area/bigredv2/outside/space_port) "av" = ( /obj/effect/landmark/crap_item, -/turf/open/floor{ - dir = 5; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/northeast, /area/bigredv2/outside/space_port) "aw" = ( -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/space_port) "ax" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/space_port) "ay" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/space_port) "az" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/space_port) "aA" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/space_port) "aB" = ( /obj/structure/filingcabinet, -/turf/open/floor{ - dir = 4; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/east, /area/bigredv2/outside/space_port) "aC" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/space_port) "aD" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/space_port) "aE" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/space_port) "aF" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/space_port) "aG" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/east, /area/bigredv2/outside/space_port) "aI" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -226,23 +155,17 @@ dir = 1; name = "\improper Spaceport" }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/space_port) "aJ" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/space_port) "aK" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/space_port) "aL" = ( /obj/structure/surface/table, @@ -252,28 +175,18 @@ name = "Storm Shutters"; pixel_x = 32 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/east, /area/bigredv2/outside/space_port) "aM" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/space_port) "aN" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/bigredv2/outside/space_port) "aO" = ( -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/bigredv2/outside/space_port) "aP" = ( /obj/structure/window/framed/solaris/reinforced, @@ -285,114 +198,76 @@ /turf/open/floor/plating, /area/bigredv2/outside/space_port) "aQ" = ( -/turf/open/floor{ - dir = 8; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/west, /area/bigredv2/outside/space_port) "aR" = ( /obj/structure/bed/chair/office/dark, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/space_port) "aS" = ( /obj/structure/bed/chair/office/dark{ dir = 4; layer = 3.25 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/space_port) "aT" = ( /obj/structure/surface/table, -/turf/open/floor{ - dir = 4; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/east, /area/bigredv2/outside/space_port) "aU" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/east, /area/bigredv2/outside/space_port) "aV" = ( /obj/structure/largecrate, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/space_port) "aW" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/west, /area/bigredv2/outside/space_port) "aX" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/space_port) "aY" = ( /obj/structure/surface/table, /obj/effect/landmark/crap_item, -/turf/open/floor{ - dir = 10; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/southwest, /area/bigredv2/outside/space_port) "aZ" = ( /obj/structure/surface/table, /obj/structure/machinery/computer/cameras{ dir = 1 }, -/turf/open/floor{ - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2, /area/bigredv2/outside/space_port) "ba" = ( /obj/structure/surface/table, /obj/item/device/radio, -/turf/open/floor{ - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2, /area/bigredv2/outside/space_port) "bb" = ( -/turf/open/floor{ - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2, /area/bigredv2/outside/space_port) "bc" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2, /area/bigredv2/outside/space_port) "bd" = ( /obj/structure/surface/table, /obj/item/paper, /obj/item/tool/pen, -/turf/open/floor{ - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2, /area/bigredv2/outside/space_port) "be" = ( /obj/structure/surface/table, /obj/item/paper_bin, -/turf/open/floor{ - dir = 6; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/southeast, /area/bigredv2/outside/space_port) "bh" = ( /turf/closed/wall/solaris/rock, @@ -401,93 +276,63 @@ /turf/open/mars, /area/bigredv2/outside/nw) "bj" = ( -/turf/open/mars{ - icon_state = "mars_dirt_11" - }, +/turf/open/mars/mars_dirt_11, /area/bigredv2/outside/nw) "bk" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/outside/nw) "bl" = ( -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/outside/nw) "bm" = ( -/turf/open/floor{ - dir = 10; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/southwest, /area/bigredv2/outside/nw) "bn" = ( -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/bigredv2/outside/nw) "bo" = ( -/obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/obj/item/stack/rods, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/asteroidwarning, /area/bigredv2/outside/nw) "bp" = ( +/obj/item/stack/sheet/metal, +/obj/item/stack/rods, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 6; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/bigredv2/outside/nw) "bq" = ( /obj/structure/lz_sign/solaris_sign, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/bigredv2/outside/nw) "br" = ( -/turf/open/floor{ - dir = 6; - icon_state = "asteroidwarning" - }, +/obj/item/stack/rods, +/obj/item/stack/rods, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/asteroidwarning, /area/bigredv2/outside/nw) "bs" = ( -/turf/open/mars{ - icon_state = "mars_dirt_12" - }, +/turf/open/mars/mars_dirt_12, /area/bigredv2/outside/nw) "bt" = ( -/turf/open/mars{ - icon_state = "mars_dirt_13" - }, +/turf/open/mars/mars_dirt_13, /area/bigredv2/outside/nw) "bu" = ( /obj/structure/fence, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/outside/nw) "bv" = ( -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/west, /area/bigredv2/outside/nw) "bw" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/nw) "bx" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/east, /area/bigredv2/outside/nw) "by" = ( /obj/effect/decal/cleanable/dirt, @@ -495,185 +340,117 @@ /area/bigredv2/outside/nw) "bz" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/nw) "bA" = ( -/turf/open/mars{ - icon_state = "mars_dirt_10" - }, +/turf/open/mars/mars_dirt_10, /area/bigredv2/outside/nw) "bB" = ( /obj/structure/fence, -/turf/open/mars{ - icon_state = "mars_dirt_10" - }, +/turf/open/mars/mars_dirt_10, /area/bigredv2/outside/nw) "bC" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/mars{ - icon_state = "mars_dirt_11" - }, +/turf/open/mars/mars_dirt_11, /area/bigredv2/outside/nw) "bD" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/largecrate, -/turf/open/floor{ - dir = 9; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/northwest, /area/bigredv2/outside/nw) "bE" = ( -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/north, /area/bigredv2/outside/nw) "bF" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/west, /area/bigredv2/outside/nw) "bG" = ( -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/nw) "bH" = ( /obj/structure/cargo_container/wy/left, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/nw) "bI" = ( /obj/structure/cargo_container/wy/mid, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/nw) "bJ" = ( /obj/structure/cargo_container/wy/right, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/nw) "bK" = ( /obj/effect/landmark/crap_item, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/west, /area/bigredv2/outside/nw) "bL" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/nw) "bM" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/nw) "bN" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/nw) "bP" = ( /obj/structure/cargo_container/kelland/left, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/bigredv2/outside/nw) "bQ" = ( /obj/structure/cargo_container/kelland/right, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/bigredv2/outside/nw) "bS" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/nw) "bT" = ( /obj/structure/fence, /turf/open/mars, /area/bigredv2/outside/nw) "bU" = ( -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/east, /area/bigredv2/outside/nw) "bV" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/east, /area/bigredv2/outside/nw) "bW" = ( /obj/structure/fence, -/turf/open/mars{ - icon_state = "mars_dirt_3" - }, +/turf/open/mars/mars_dirt_3, /area/bigredv2/outside/nw) "bX" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/bigredv2/outside/nw) "bY" = ( /turf/template_noop, /area/template_noop) "bZ" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/north, /area/bigredv2/outside/nw) "ca" = ( -/turf/open/mars{ - icon_state = "mars_dirt_9" - }, +/turf/open/mars/mars_dirt_9, /area/bigredv2/outside/nw) "cb" = ( -/turf/open/mars{ - icon_state = "mars_dirt_14" - }, +/turf/open/mars/mars_dirt_14, /area/bigredv2/outside/nw) "cc" = ( /obj/effect/decal/cleanable/blood, /obj/effect/landmark/corpsespawner/engineer, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/space_port) "Dc" = ( /obj/effect/decal/cleanable/dirt, @@ -835,7 +612,7 @@ aE ak aW aW -bm +bG bv bv bF @@ -856,7 +633,7 @@ aF aM aX aM -bo +bz bw bz bz @@ -877,7 +654,7 @@ aG ab ab ab -bp +bS bx bx bG @@ -919,7 +696,7 @@ aI aP aP ac -br +bn bl bu bE @@ -940,7 +717,7 @@ aJ aQ aY ac -bs +bn bs bl bE @@ -961,7 +738,7 @@ aA aR aZ ac -bi +bo bi bA bE @@ -982,7 +759,7 @@ aw aK ba ai -bi +bX bi bA bE @@ -1003,7 +780,7 @@ aA aA bb ai -bi +bp bi bB bE @@ -1024,7 +801,7 @@ cc aw bc ai -bi +bn bi bB bE @@ -1045,7 +822,7 @@ aA aS bd ac -bi +br bi bB bE @@ -1066,7 +843,7 @@ aL aT be ac -bi +bX bi bB bE diff --git a/maps/map_files/BigRed/sprinkles/20.lz1north_mining.dmm b/maps/map_files/BigRed/sprinkles/20.lz1north_mining.dmm index 15bfc057bae8..5285427c0079 100644 --- a/maps/map_files/BigRed/sprinkles/20.lz1north_mining.dmm +++ b/maps/map_files/BigRed/sprinkles/20.lz1north_mining.dmm @@ -5,63 +5,45 @@ "b" = ( /obj/structure/surface/rack, /obj/item/tool/shovel, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/outside/lz1_north_cas) "c" = ( /obj/structure/surface/rack, /obj/item/tool/pickaxe, /obj/item/tool/pickaxe, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/outside/lz1_north_cas) "d" = ( /obj/structure/surface/rack, /obj/item/clothing/mask/gas, /obj/item/clothing/mask/gas, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/outside/lz1_north_cas) "e" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/outside/lz1_north_cas) "f" = ( /obj/structure/surface/table, /obj/item/storage/toolbox, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/outside/lz1_north_cas) "g" = ( /obj/structure/surface/table, /obj/effect/spawner/random/technology_scanner, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/outside/lz1_north_cas) "h" = ( /obj/structure/surface/table, /obj/item/tool/pickaxe, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/outside/lz1_north_cas) "i" = ( /obj/item/ore, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/outside/lz1_north_cas) "j" = ( /obj/effect/decal/remains/human, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/outside/lz1_north_cas) "k" = ( /obj/structure/barricade/wooden{ @@ -69,9 +51,7 @@ dir = 4; health = 25000 }, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/outside/lz1_north_cas) "l" = ( /obj/structure/surface/rack, @@ -81,61 +61,45 @@ /obj/item/lightstick/red, /obj/item/storage/box/lightstick/red, /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/outside/lz1_north_cas) "m" = ( /obj/item/tool/shovel, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/outside/lz1_north_cas) "n" = ( /turf/closed/wall/solaris/reinforced, /area/bigredv2/outside/space_port) "o" = ( /obj/item/tool/pickaxe, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/outside/lz1_north_cas) "p" = ( /obj/item/tool/warning_cone, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/outside/lz1_north_cas) "q" = ( /obj/structure/surface/table, /obj/item/clothing/mask/gas, /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/outside/lz1_north_cas) "r" = ( /obj/structure/surface/table, /obj/item/pizzabox, /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/outside/lz1_north_cas) "s" = ( /obj/structure/surface/table, /obj/item/device/flashlight, /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/outside/lz1_north_cas) "t" = ( /obj/structure/ore_box, /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/outside/lz1_north_cas) "u" = ( /obj/structure/sign/safety/hazard, @@ -150,16 +114,12 @@ /area/bigredv2/outside/space_port) "A" = ( /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/outside/lz1_north_cas) "P" = ( /obj/item/ore, /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/outside/lz1_north_cas) (1,1,1) = {" diff --git a/maps/map_files/BigRed/sprinkles/25.chapel_cult.dmm b/maps/map_files/BigRed/sprinkles/25.chapel_cult.dmm index 7acf197b3ddb..af347ca1f772 100644 --- a/maps/map_files/BigRed/sprinkles/25.chapel_cult.dmm +++ b/maps/map_files/BigRed/sprinkles/25.chapel_cult.dmm @@ -15,63 +15,41 @@ /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper Chapel" }, -/turf/open/floor{ - icon_state = "darkish" - }, +/turf/open/floor/darkish, /area/bigredv2/outside/chapel) "ae" = ( -/turf/open/floor{ - icon_state = "darkish" - }, +/turf/open/floor/darkish, /area/bigredv2/outside/chapel) "af" = ( /obj/structure/closet/wardrobe/chaplain_black, -/turf/open/floor{ - icon_state = "cult" - }, +/turf/open/floor/cult, /area/bigredv2/outside/chapel) "ag" = ( /obj/item/tool/candle, -/turf/open/floor{ - icon_state = "darkish" - }, +/turf/open/floor/darkish, /area/bigredv2/outside/chapel) "ah" = ( /obj/effect/decal/cleanable/blood{ icon_state = "gib6" }, -/turf/open/floor{ - dir = 1; - icon_state = "chapel" - }, +/turf/open/floor/chapel/north, /area/bigredv2/outside/chapel) "ai" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor{ - icon_state = "darkish" - }, -/area/bigredv2/outside/chapel) -"aj" = ( -/turf/open/floor{ - icon_state = "darkish" - }, +/turf/open/floor/darkish, /area/bigredv2/outside/chapel) "ak" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor{ - icon_state = "darkish" - }, +/turf/open/floor/darkish, /area/bigredv2/outside/chapel) "al" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/item/tool/candle, -/turf/open/floor{ - icon_state = "darkish" - }, +/turf/open/floor/darkish, /area/bigredv2/outside/chapel) "an" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -81,9 +59,7 @@ layer = 3; pixel_x = 24 }, -/turf/open/floor{ - icon_state = "darkish" - }, +/turf/open/floor/darkish, /area/bigredv2/outside/chapel) "ao" = ( /obj/structure/window/framed/solaris, @@ -95,113 +71,76 @@ /turf/open/floor/plating, /area/bigredv2/outside/chapel) "ap" = ( -/turf/open/floor{ - icon_state = "cult" - }, +/turf/open/floor/cult, /area/bigredv2/outside/chapel) "aq" = ( -/turf/open/floor{ - dir = 1; - icon_state = "rampbottom" - }, +/turf/open/floor/rampbottom/north, /area/bigredv2/outside/chapel) "as" = ( /obj/effect/decal/cleanable/blood{ icon_state = "gib6" }, -/turf/open/floor{ - dir = 8; - icon_state = "chapel" - }, +/turf/open/floor/chapel/west, /area/bigredv2/outside/chapel) "at" = ( /obj/structure/bed/chair/wood/normal{ dir = 8 }, /obj/effect/decal/cleanable/ash, -/turf/open/floor{ - dir = 4; - icon_state = "chapel" - }, +/turf/open/floor/chapel/east, /area/bigredv2/outside/chapel) "au" = ( /obj/effect/decal/cleanable/blood/gibs/body, -/turf/open/floor{ - icon_state = "cult" - }, +/turf/open/floor/cult, /area/bigredv2/outside/chapel) "av" = ( /obj/structure/bed/chair/wood/normal{ dir = 8 }, -/turf/open/floor{ - dir = 4; - icon_state = "chapel" - }, +/turf/open/floor/chapel/east, /area/bigredv2/outside/chapel) "aw" = ( /obj/structure/bed/chair/wood/normal{ dir = 8 }, /obj/effect/decal/cleanable/ash, -/turf/open/floor{ - dir = 1; - icon_state = "chapel" - }, +/turf/open/floor/chapel/north, /area/bigredv2/outside/chapel) "ax" = ( /obj/structure/bed/chair/wood/normal{ dir = 8 }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 1; - icon_state = "chapel" - }, +/turf/open/floor/chapel/north, /area/bigredv2/outside/chapel) "ay" = ( /obj/structure/bed/chair/wood/normal{ dir = 8 }, -/turf/open/floor{ - dir = 1; - icon_state = "chapel" - }, +/turf/open/floor/chapel/north, /area/bigredv2/outside/chapel) "az" = ( /obj/item/tool/candle, -/turf/open/floor{ - dir = 1; - icon_state = "chapel" - }, +/turf/open/floor/chapel/north, /area/bigredv2/outside/chapel) "aA" = ( -/turf/open/floor{ - dir = 4; - icon_state = "chapel" - }, +/turf/open/floor/chapel/east, /area/bigredv2/outside/chapel) "aB" = ( /obj/structure/surface/table/woodentable, /obj/item/tool/candle, -/turf/open/floor{ - icon_state = "darkish" - }, +/turf/open/floor/darkish, /area/bigredv2/outside/chapel) "aC" = ( /obj/item/tool/candle{ icon_state = "candle2" }, -/turf/open/floor{ - icon_state = "darkish" - }, +/turf/open/floor/darkish, /area/bigredv2/outside/chapel) "aD" = ( /obj/structure/surface/table/woodentable, /obj/item/weapon/chainofcommand, -/turf/open/floor{ - icon_state = "cult" - }, +/turf/open/floor/cult, /area/bigredv2/outside/chapel) "aE" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -210,66 +149,46 @@ /obj/effect/decal/cleanable/blood{ icon_state = "gib6" }, -/turf/open/floor{ - icon_state = "darkish" - }, +/turf/open/floor/darkish, /area/bigredv2/outside/chapel) "aF" = ( /obj/structure/bed/chair/wood/normal{ dir = 8 }, /obj/effect/decal/cleanable/ash, -/turf/open/floor{ - icon_state = "chapel" - }, +/turf/open/floor/chapel, /area/bigredv2/outside/chapel) "aG" = ( /obj/structure/bed/chair/wood/normal{ dir = 8 }, /obj/effect/decal/cleanable/ash, -/turf/open/floor{ - dir = 8; - icon_state = "chapel" - }, +/turf/open/floor/chapel/west, /area/bigredv2/outside/chapel) "aH" = ( /obj/structure/bed/chair/wood/normal{ dir = 8 }, -/turf/open/floor{ - dir = 8; - icon_state = "chapel" - }, +/turf/open/floor/chapel/west, /area/bigredv2/outside/chapel) "aI" = ( /obj/structure/bed/chair/wood/normal{ dir = 8 }, -/turf/open/floor{ - icon_state = "chapel" - }, +/turf/open/floor/chapel, /area/bigredv2/outside/chapel) "aJ" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/bed/chair/wood/normal{ dir = 8 }, -/turf/open/floor{ - dir = 8; - icon_state = "chapel" - }, +/turf/open/floor/chapel/west, /area/bigredv2/outside/chapel) "aK" = ( -/turf/open/floor{ - dir = 8; - icon_state = "chapel" - }, +/turf/open/floor/chapel/west, /area/bigredv2/outside/chapel) "aL" = ( -/turf/open/floor{ - icon_state = "chapel" - }, +/turf/open/floor/chapel, /area/bigredv2/outside/chapel) "aN" = ( /obj/structure/pipes/vents/pump{ @@ -278,9 +197,7 @@ /obj/effect/decal/cleanable/ash, /obj/effect/decal/cleanable/blood, /obj/item/clothing/head/cardborg, -/turf/open/floor{ - icon_state = "cult" - }, +/turf/open/floor/cult, /area/bigredv2/outside/chapel) "aO" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -288,25 +205,19 @@ }, /obj/structure/surface/table/woodentable, /obj/item/storage/bible, -/turf/open/floor{ - icon_state = "cult" - }, +/turf/open/floor/cult, /area/bigredv2/outside/chapel) "aP" = ( /obj/item/tool/candle{ icon_state = "candle3"; item_state = "candle3" }, -/turf/open/floor{ - icon_state = "cult" - }, +/turf/open/floor/cult, /area/bigredv2/outside/chapel) "aR" = ( /obj/item/organ/heart, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor{ - icon_state = "cult" - }, +/turf/open/floor/cult, /area/bigredv2/outside/chapel) "aS" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -316,9 +227,7 @@ dir = 4; icon_state = "gib6" }, -/turf/open/floor{ - icon_state = "darkish" - }, +/turf/open/floor/darkish, /area/bigredv2/outside/chapel) "aT" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -327,83 +236,58 @@ /obj/item/tool/candle{ icon_state = "candle3" }, -/turf/open/floor{ - icon_state = "darkish" - }, +/turf/open/floor/darkish, /area/bigredv2/outside/chapel) "aU" = ( /obj/structure/pipes/standard/manifold/hidden/green, /obj/item/tool/candle, -/turf/open/floor{ - icon_state = "darkish" - }, +/turf/open/floor/darkish, /area/bigredv2/outside/chapel) "aW" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "darkish" - }, +/turf/open/floor/darkish, /area/bigredv2/outside/chapel) "aX" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor{ - icon_state = "darkish" - }, +/turf/open/floor/darkish, /area/bigredv2/outside/chapel) "aZ" = ( /obj/structure/surface/table/woodentable, -/turf/open/floor{ - icon_state = "cult" - }, +/turf/open/floor/cult, /area/bigredv2/outside/chapel) "ba" = ( /obj/structure/bed/chair/wood/normal{ dir = 8 }, /obj/effect/landmark/survivor_spawner, -/turf/open/floor{ - dir = 4; - icon_state = "chapel" - }, +/turf/open/floor/chapel/east, /area/bigredv2/outside/chapel) "bc" = ( /obj/effect/decal/cleanable/blood{ layer = 3; pixel_x = 24 }, -/turf/open/floor{ - dir = 1; - icon_state = "chapel" - }, +/turf/open/floor/chapel/north, /area/bigredv2/outside/chapel) "be" = ( -/turf/open/floor{ - icon_state = "rampbottom" - }, +/turf/open/floor/rampbottom, /area/bigredv2/outside/chapel) "bh" = ( /obj/item/tool/candle, -/turf/open/floor{ - dir = 8; - icon_state = "chapel" - }, +/turf/open/floor/chapel/west, /area/bigredv2/outside/chapel) "bi" = ( /obj/item/tool/candle, -/turf/open/floor{ - icon_state = "chapel" - }, +/turf/open/floor/chapel, /area/bigredv2/outside/chapel) "bj" = ( /obj/structure/surface/table/woodentable, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - icon_state = "darkish" - }, +/turf/open/floor/darkish, /area/bigredv2/outside/chapel) "bk" = ( /obj/structure/machinery/door_control{ @@ -412,41 +296,31 @@ pixel_x = -32 }, /obj/effect/decal/cleanable/blood, -/turf/open/floor{ - icon_state = "cult" - }, +/turf/open/floor/cult, /area/bigredv2/outside/chapel) "bl" = ( /obj/structure/machinery/light, -/turf/open/floor{ - icon_state = "darkish" - }, +/turf/open/floor/darkish, /area/bigredv2/outside/chapel) "bm" = ( /obj/structure/machinery/power/apc, /obj/effect/decal/cleanable/blood{ icon_state = "gib6" }, -/turf/open/floor{ - icon_state = "darkish" - }, +/turf/open/floor/darkish, /area/bigredv2/outside/chapel) "bp" = ( /obj/structure/machinery/alarm{ dir = 1; pixel_y = -30 }, -/turf/open/floor{ - icon_state = "darkish" - }, +/turf/open/floor/darkish, /area/bigredv2/outside/chapel) "bq" = ( /obj/item/tool/candle{ icon_state = "candle4" }, -/turf/open/floor{ - icon_state = "cult" - }, +/turf/open/floor/cult, /area/bigredv2/outside/chapel) (1,1,1) = {" @@ -550,7 +424,7 @@ ab "} (10,1,1) = {" ac -aj +ae av aI aW diff --git a/maps/map_files/BigRed/sprinkles/25.containerroom_xenos.dmm b/maps/map_files/BigRed/sprinkles/25.containerroom_xenos.dmm index 6aa3dfd2cfc2..215c6f874cb2 100644 --- a/maps/map_files/BigRed/sprinkles/25.containerroom_xenos.dmm +++ b/maps/map_files/BigRed/sprinkles/25.containerroom_xenos.dmm @@ -3,17 +3,11 @@ /turf/closed/wall/solaris/reinforced, /area/bigredv2/outside/nw) "c" = ( -/turf/open/floor/plating{ - dir = 1; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/north, /area/bigredv2/outside/nw) "d" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/plating{ - dir = 1; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/north, /area/bigredv2/outside/nw) "e" = ( /obj/structure/largecrate/random/barrel/red, @@ -21,8 +15,7 @@ /area/bigredv2/outside/nw) "f" = ( /obj/structure/machinery/light{ - dir = 1; - icon_state = "tube1" + dir = 1 }, /obj/structure/largecrate/random/case/small, /turf/open/floor/plating, @@ -36,12 +29,8 @@ /turf/open/floor/plating, /area/bigredv2/outside/nw) "i" = ( -/obj/structure/machinery/light{ - dir = 1; - icon_state = "tube1" - }, -/turf/open/floor/plating, -/area/bigredv2/outside/nw) +/turf/closed/wall/solaris/reinforced, +/area/bigredv2/outside/telecomm/warehouse) "j" = ( /turf/open/floor/plating, /area/bigredv2/outside/nw) @@ -58,33 +47,24 @@ /turf/open/floor/plating, /area/bigredv2/outside/nw) "n" = ( -/turf/open/floor/plating{ - dir = 8; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/west, /area/bigredv2/outside/nw) "p" = ( /obj/structure/pipes/standard/simple/hidden/green{ - dir = 4; - layer = 2.4 - }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "warnplate" + dir = 4 }, +/turf/open/floor/plating/warnplate/west, /area/bigredv2/outside/nw) "q" = ( /obj/structure/pipes/standard/simple/hidden/green{ - dir = 4; - layer = 2.4 + dir = 4 }, /turf/open/floor/plating, /area/bigredv2/outside/nw) "r" = ( /obj/effect/landmark/hunter_primary, /obj/structure/pipes/standard/simple/hidden/green{ - dir = 4; - layer = 2.4 + dir = 4 }, /turf/open/floor/plating, /area/bigredv2/outside/nw) @@ -94,9 +74,7 @@ /area/bigredv2/outside/nw) "u" = ( /obj/structure/machinery/light{ - dir = 8; - icon_state = "tube1"; - pixel_y = 0 + dir = 8 }, /turf/open/floor/plating, /area/bigredv2/outside/nw) @@ -130,6 +108,63 @@ /obj/structure/machinery/light, /turf/open/floor/plating, /area/bigredv2/outside/nw) +"D" = ( +/obj/effect/landmark/static_comms/net_one, +/turf/open/floor/bcircuit, +/area/bigredv2/outside/telecomm/warehouse) +"H" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_x = 1; + pixel_y = 1 + }, +/turf/open/floor/plating/warnplate/southwest, +/area/bigredv2/outside/telecomm/warehouse) +"K" = ( +/turf/open/floor/bcircuit, +/area/bigredv2/outside/telecomm/warehouse) +"O" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/turf/open/floor/plating/warnplate/west, +/area/bigredv2/outside/telecomm/warehouse) +"S" = ( +/obj/structure/machinery/power/apc{ + dir = 1; + start_charge = 0 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "W"; + layer = 2.5; + pixel_x = -1 + }, +/turf/open/floor/plating/warnplate/east, +/area/bigredv2/outside/telecomm/warehouse) +"T" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + pixel_x = -1; + pixel_y = 1 + }, +/turf/open/floor/plating/warnplate/southeast, +/area/bigredv2/outside/telecomm/warehouse) +"V" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/turf/open/floor/plating/warnplate, +/area/bigredv2/outside/telecomm/warehouse) +"Z" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W"; + layer = 2.5; + pixel_x = -1 + }, +/turf/open/floor/plating/warnplate/east, +/area/bigredv2/outside/telecomm/warehouse) (1,1,1) = {" b @@ -144,10 +179,10 @@ b b "} (2,1,1) = {" -b -e -j -j +i +O +O +H q j u @@ -156,10 +191,10 @@ j b "} (3,1,1) = {" -b -f -j -j +i +K +D +V q j v @@ -168,10 +203,10 @@ y b "} (4,1,1) = {" -b -g -m -j +i +K +K +V q j j @@ -180,10 +215,10 @@ j b "} (5,1,1) = {" -b -h -m -j +i +S +Z +T q j j @@ -194,7 +229,7 @@ b (6,1,1) = {" b g -j +m j r j @@ -205,8 +240,8 @@ b "} (7,1,1) = {" b -g -j +h +m j q j @@ -217,7 +252,7 @@ b "} (8,1,1) = {" b -i +f j j q @@ -301,7 +336,7 @@ b "} (15,1,1) = {" b -j +e j j q diff --git a/maps/map_files/BigRed/sprinkles/25.lz1cave_flank.dmm b/maps/map_files/BigRed/sprinkles/25.lz1cave_flank.dmm index 32d85ba1078f..291b83899b4b 100644 --- a/maps/map_files/BigRed/sprinkles/25.lz1cave_flank.dmm +++ b/maps/map_files/BigRed/sprinkles/25.lz1cave_flank.dmm @@ -3,13 +3,15 @@ /turf/closed/wall/solaris/rock, /area/bigredv2/caves) "c" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/outside/lz1_north_cas) "d" = ( /turf/closed/wall/solaris/reinforced, /area/bigredv2/outside/space_port) +"e" = ( +/obj/structure/blocker/forcefield/multitile_vehicles, +/turf/open/floor/asteroidwarning/north, +/area/bigredv2/outside/lz1_north_cas) "f" = ( /obj/item/tool/warning_cone, /turf/open/floor/plating, @@ -18,15 +20,11 @@ /turf/open/floor/plating, /area/bigredv2/outside/space_port) "i" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_6" - }, +/turf/open/mars_cave/mars_cave_6, /area/bigredv2/outside/lz1_north_cas) "j" = ( /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/outside/lz1_north_cas) "F" = ( /obj/structure/sign/safety/hazard, @@ -218,7 +216,7 @@ c c c c -j +e "} (12,1,1) = {" c @@ -235,7 +233,7 @@ c c c c -j +e "} (13,1,1) = {" c @@ -252,7 +250,7 @@ c c c c -j +e "} (14,1,1) = {" c @@ -269,7 +267,7 @@ c c c c -j +e "} (15,1,1) = {" c @@ -286,5 +284,5 @@ c i c c -j +e "} diff --git a/maps/map_files/BigRed/sprinkles/25.lz1containers_scramble.dmm b/maps/map_files/BigRed/sprinkles/25.lz1containers_scramble.dmm index 74be8d01d4ab..ba7296705642 100644 --- a/maps/map_files/BigRed/sprinkles/25.lz1containers_scramble.dmm +++ b/maps/map_files/BigRed/sprinkles/25.lz1containers_scramble.dmm @@ -1,9 +1,6 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE "ab" = ( -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/east, /area/bigredv2/outside/space_port) "ac" = ( /turf/open/floor/plating, @@ -17,23 +14,14 @@ dir = 1; name = "\improper Spaceport" }, -/turf/open/floor{ - dir = 2; - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/space_port) "ah" = ( -/turf/open/floor{ - dir = 2; - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/space_port) "ai" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 2; - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/space_port) "aj" = ( /obj/structure/surface/table, @@ -42,10 +30,7 @@ /obj/structure/machinery/camera/autoname{ dir = 8 }, -/turf/open/floor{ - dir = 2; - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/space_port) "al" = ( /obj/effect/decal/cleanable/blood/oil, @@ -53,8 +38,7 @@ /area/bigredv2/outside/space_port) "am" = ( /obj/structure/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /turf/open/floor/plating, /area/bigredv2/outside/space_port) @@ -67,26 +51,17 @@ pixel_x = -32; start_charge = 0 }, -/turf/open/floor{ - dir = 2; - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/space_port) "ap" = ( /obj/effect/decal/cleanable/blood/gibs/up, -/turf/open/floor{ - dir = 2; - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/space_port) "aq" = ( /obj/structure/bed/chair/office/dark{ dir = 4 }, -/turf/open/floor{ - dir = 2; - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/space_port) "ar" = ( /obj/structure/surface/table, @@ -97,38 +72,25 @@ pixel_x = 32 }, /obj/item/tool/pen, -/turf/open/floor{ - dir = 2; - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/space_port) "at" = ( /obj/structure/machinery/disposal, /obj/structure/machinery/light{ - dir = 8; - icon_state = "tube1" - }, -/turf/open/floor{ - dir = 2; - icon_state = "dark" + dir = 8 }, +/turf/open/floor/dark, /area/bigredv2/outside/space_port) "au" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor{ - dir = 2; - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/space_port) "av" = ( /obj/structure/machinery/blackbox_recorder, /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor{ - dir = 2; - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/space_port) "ax" = ( /obj/structure/window/framed/solaris, @@ -144,18 +106,12 @@ /obj/structure/machinery/computer/shuttle/dropship/flight/lz1{ dir = 4 }, -/turf/open/floor{ - dir = 2; - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/landing/console) "az" = ( /obj/structure/surface/table, /obj/effect/spawner/random/powercell, -/turf/open/floor{ - dir = 2; - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/space_port) "aA" = ( /obj/structure/cargo_container/watatsumi/leftmid, @@ -173,27 +129,18 @@ /obj/structure/surface/table, /obj/effect/spawner/random/tool, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 2; - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/space_port) "aE" = ( /obj/structure/bed/chair/office/dark, /obj/effect/decal/cleanable/blood/gibs/core, -/turf/open/floor{ - dir = 2; - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/space_port) "aF" = ( /obj/structure/surface/table, /obj/effect/spawner/random/tool, /obj/effect/spawner/random/tech_supply, -/turf/open/floor{ - dir = 2; - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/space_port) "aG" = ( /obj/effect/decal/cleanable/blood{ @@ -205,58 +152,37 @@ /obj/structure/surface/table, /obj/effect/spawner/random/tool, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 10; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/southwest, /area/bigredv2/outside/space_port) "aI" = ( /obj/structure/surface/table, /obj/effect/spawner/random/bomb_supply, /obj/effect/spawner/random/technology_scanner, /obj/effect/spawner/random/tool, -/turf/open/floor{ - dir = 2; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2, /area/bigredv2/outside/space_port) "aJ" = ( /obj/structure/surface/table, /obj/effect/spawner/random/technology_scanner, /obj/effect/spawner/random/tool, -/turf/open/floor{ - dir = 2; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2, /area/bigredv2/outside/space_port) "aK" = ( /obj/structure/machinery/computer/cameras, -/turf/open/floor{ - dir = 2; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2, /area/bigredv2/outside/space_port) "aL" = ( /obj/item/shard, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 2; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2, /area/bigredv2/outside/space_port) "aM" = ( -/turf/open/floor{ - dir = 2; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2, /area/bigredv2/outside/space_port) "aN" = ( /obj/structure/surface/table, /obj/effect/spawner/random/tool, -/turf/open/floor{ - dir = 6; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/southeast, /area/bigredv2/outside/space_port) "aP" = ( /obj/structure/window/framed/solaris, @@ -280,44 +206,28 @@ /area/bigredv2/outside/space_port) "aT" = ( /obj/structure/machinery/light{ - dir = 1; - icon_state = "tube1" + dir = 1 }, /turf/open/floor/plating, /area/bigredv2/outside/space_port) "aU" = ( /obj/structure/machinery/floodlight/landing, -/turf/open/floor{ - dir = 2; - icon_state = "asteroidplating" - }, +/turf/open/floor/asteroidplating, /area/bigredv2/outside/space_port) "aV" = ( -/turf/open/floor/plating{ - dir = 2; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate, /area/bigredv2/outside/space_port) "aW" = ( /obj/structure/cargo_container/arious/leftmid, -/turf/open/floor/plating{ - dir = 2; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate, /area/bigredv2/outside/space_port) "aX" = ( /obj/structure/cargo_container/arious/rightmid, -/turf/open/floor/plating{ - dir = 2; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate, /area/bigredv2/outside/space_port) "aY" = ( /obj/structure/cargo_container/arious/right, -/turf/open/floor/plating{ - dir = 2; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate, /area/bigredv2/outside/space_port) "bd" = ( /obj/effect/decal/cleanable/blood, @@ -329,10 +239,7 @@ /area/bigredv2/outside/space_port) "bf" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/east, /area/bigredv2/outside/space_port) "bg" = ( /obj/effect/landmark/crap_item, diff --git a/maps/map_files/BigRed/sprinkles/25.vault_v2.dmm b/maps/map_files/BigRed/sprinkles/25.vault_v2.dmm index f62f085e7ea2..5c1c05d3e258 100644 --- a/maps/map_files/BigRed/sprinkles/25.vault_v2.dmm +++ b/maps/map_files/BigRed/sprinkles/25.vault_v2.dmm @@ -5,25 +5,18 @@ pixel_x = -11; pixel_y = 10 }, -/turf/open/floor{ - icon_state = "darkpurplecorners2" - }, +/turf/open/floor/darkpurplecorners2, /area/bigredv2/caves/lambda/breakroom) "ab" = ( /obj/effect/decal/cleanable/blood/drip{ pixel_y = 6 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkpurplecorners2" - }, +/turf/open/floor/darkpurplecorners2/east, /area/bigredv2/caves/lambda/breakroom) "ac" = ( /obj/item/tool/pickaxe/drill, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves_lambda) "ad" = ( /obj/effect/glowshroom, @@ -31,39 +24,26 @@ /area/bigredv2/caves_lambda) "ae" = ( /obj/effect/glowshroom, -/turf/open/mars_cave{ - icon_state = "mars_cave_7" - }, +/turf/open/mars_cave/mars_cave_7, /area/bigredv2/caves_lambda) "af" = ( /obj/effect/decal/cleanable/blood/xeno, -/turf/open/mars_cave{ - icon_state = "mars_cave_7" - }, +/turf/open/mars_cave/mars_cave_7, /area/bigredv2/caves_lambda) "ag" = ( /obj/structure/barricade/wooden, -/turf/open/floor{ - dir = 4; - icon_state = "darkpurplecorners2" - }, +/turf/open/floor/darkpurplecorners2/east, /area/bigredv2/caves/lambda/breakroom) "ah" = ( /obj/effect/glowshroom, -/turf/open/mars_cave{ - icon_state = "mars_cave_10" - }, +/turf/open/mars_cave/mars_cave_10, /area/bigredv2/caves_lambda) "ai" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_6" - }, +/turf/open/mars_cave/mars_cave_6, /area/bigredv2/caves_lambda) "aj" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/mars_cave{ - icon_state = "mars_cave_11" - }, +/turf/open/mars_cave/mars_cave_11, /area/bigredv2/caves_lambda) "ak" = ( /turf/closed/wall/solaris/rock, @@ -74,10 +54,7 @@ pixel_y = -32 }, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor{ - dir = 4; - icon_state = "darkpurplecorners2" - }, +/turf/open/floor/darkpurplecorners2/east, /area/bigredv2/caves/lambda/breakroom) "am" = ( /obj/structure/machinery/door_control{ @@ -86,9 +63,7 @@ pixel_y = 28 }, /obj/effect/decal/cleanable/blood/gibs/xeno, -/turf/open/floor{ - icon_state = "darkpurplecorners2" - }, +/turf/open/floor/darkpurplecorners2, /area/bigredv2/caves/lambda/breakroom) "an" = ( /obj/effect/decal/cleanable/mucus, @@ -99,28 +74,21 @@ }, /obj/effect/landmark/corpsespawner/pmc, /obj/effect/decal/cleanable/vomit, -/turf/open/floor{ - icon_state = "darkpurplecorners2" - }, +/turf/open/floor/darkpurplecorners2, /area/bigredv2/caves/lambda/breakroom) "ao" = ( /obj/effect/decal/cleanable/blood/drip{ pixel_x = -8; pixel_y = 6 }, -/turf/open/floor{ - icon_state = "darkpurplecorners2" - }, +/turf/open/floor/darkpurplecorners2, /area/bigredv2/caves/lambda/breakroom) "ap" = ( /obj/structure/sign/safety/bulkhead_door, /turf/closed/wall/solaris/reinforced, /area/bigredv2/caves/lambda/breakroom) "aq" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "w-y0" - }, +/turf/open/floor/almayer/w_y0/north, /area/bigredv2/caves/lambda/breakroom) "ar" = ( /obj/structure/filingcabinet{ @@ -134,10 +102,7 @@ pixel_x = -8; pixel_y = 20 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/bigredv2/caves/lambda/breakroom) "as" = ( /obj/structure/filingcabinet{ @@ -151,19 +116,13 @@ /obj/structure/filingcabinet{ pixel_x = -9 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/bigredv2/caves/lambda/breakroom) "at" = ( /turf/open/floor/plating/almayer, /area/bigredv2/caves/lambda/breakroom) "au" = ( -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/bigredv2/caves/lambda/breakroom) "av" = ( /obj/structure/filingcabinet{ @@ -176,54 +135,35 @@ pixel_x = -8; pixel_y = 16 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/bigredv2/caves/lambda/breakroom) "aw" = ( /obj/structure/inflatable/popped/door, -/turf/open/floor{ - icon_state = "darkpurplecorners2" - }, +/turf/open/floor/darkpurplecorners2, /area/bigredv2/caves/lambda/breakroom) "ax" = ( /obj/structure/machinery/light{ dir = 1 }, /obj/effect/decal/cleanable/blood, -/turf/open/floor{ - icon_state = "darkpurplecorners2" - }, +/turf/open/floor/darkpurplecorners2, /area/bigredv2/caves/lambda/breakroom) "aA" = ( /turf/template_noop, /area/template_noop) "aB" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "w-y1" - }, +/turf/open/floor/almayer/w_y1/north, /area/bigredv2/caves/lambda/breakroom) "aC" = ( /obj/structure/machinery/light, -/turf/open/floor{ - dir = 4; - icon_state = "darkpurplecorners2" - }, +/turf/open/floor/darkpurplecorners2/east, /area/bigredv2/caves/lambda/breakroom) "aD" = ( /obj/structure/inflatable/popped/door, -/turf/open/floor{ - dir = 4; - icon_state = "darkpurplecorners2" - }, +/turf/open/floor/darkpurplecorners2/east, /area/bigredv2/caves/lambda/breakroom) "aE" = ( -/turf/open/floor{ - dir = 4; - icon_state = "darkpurplecorners2" - }, +/turf/open/floor/darkpurplecorners2/east, /area/bigredv2/caves/lambda/breakroom) "aF" = ( /obj/structure/machinery/light{ @@ -244,10 +184,7 @@ /obj/item/clothing/accessory/medal/bronze/science{ pixel_x = -5 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/bigredv2/caves/lambda/breakroom) "aG" = ( /obj/structure/window/framed/solaris/reinforced, @@ -262,19 +199,14 @@ dir = 1; pixel_y = 7 }, -/turf/open/floor{ - icon_state = "darkpurplecorners2" - }, +/turf/open/floor/darkpurplecorners2, /area/bigredv2/caves/lambda/breakroom) "aI" = ( /turf/closed/wall/solaris/reinforced, /area/bigredv2/caves/lambda/breakroom) "aJ" = ( /obj/structure/machinery/light, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/bigredv2/caves/lambda/breakroom) "aK" = ( /obj/structure/surface/table/reinforced/prison, @@ -282,10 +214,7 @@ id = "vault"; name = "Vault Lockdown" }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/bigredv2/caves/lambda/breakroom) "aL" = ( /obj/structure/surface/table/reinforced/prison, @@ -293,29 +222,19 @@ /obj/item/spacecash/c1000, /obj/item/spacecash/c1000, /obj/item/spacecash/c1000, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/bigredv2/caves/lambda/breakroom) "aM" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "w-y2" - }, +/turf/open/floor/almayer/w_y2/north, /area/bigredv2/caves/lambda/breakroom) "aN" = ( /turf/open/mars_cave, /area/bigredv2/caves_lambda) "aP" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_7" - }, +/turf/open/mars_cave/mars_cave_7, /area/bigredv2/caves_lambda) "aQ" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_18" - }, +/turf/open/mars_cave/mars_cave_18, /area/bigredv2/caves_lambda) "aR" = ( /obj/structure/filingcabinet{ @@ -328,27 +247,18 @@ pixel_x = -9; pixel_y = 20 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/bigredv2/caves/lambda/breakroom) "aS" = ( /obj/effect/glowshroom, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves_lambda) "aT" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_4" - }, +/turf/open/mars_cave/mars_cave_4, /area/bigredv2/caves_lambda) "aV" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves_lambda) "aW" = ( /obj/structure/machinery/door/airlock/almayer/secure/reinforced/colony{ @@ -359,43 +269,29 @@ id = "vault"; name = "Vault Lockdown" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/caves/lambda/breakroom) "aX" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_8" - }, +/turf/open/mars_cave/mars_cave_8, /area/bigredv2/caves_lambda) "aY" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_10" - }, +/turf/open/mars_cave/mars_cave_10, /area/bigredv2/caves_lambda) "aZ" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_5" - }, +/turf/open/mars_cave/mars_cave_5, /area/bigredv2/caves_lambda) "ba" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves_lambda) "vm" = ( /obj/item/shard{ icon_state = "small" }, -/turf/open/mars_cave{ - icon_state = "mars_cave_18" - }, +/turf/open/mars_cave/mars_cave_18, /area/bigredv2/caves_lambda) "zP" = ( /obj/effect/glowshroom, -/turf/open/mars_cave{ - icon_state = "mars_cave_5" - }, +/turf/open/mars_cave/mars_cave_5, /area/bigredv2/caves_lambda) "EW" = ( /obj/structure/machinery/door/poddoor/almayer{ @@ -421,9 +317,7 @@ /obj/item/shard{ icon_state = "medium" }, -/turf/open/mars_cave{ - icon_state = "mars_cave_6" - }, +/turf/open/mars_cave/mars_cave_6, /area/bigredv2/caves_lambda) (1,1,1) = {" diff --git a/maps/map_files/BigRed/sprinkles/30.cargo_containers.dmm b/maps/map_files/BigRed/sprinkles/30.cargo_containers.dmm index 30531e6b085e..0b51c63b39be 100644 --- a/maps/map_files/BigRed/sprinkles/30.cargo_containers.dmm +++ b/maps/map_files/BigRed/sprinkles/30.cargo_containers.dmm @@ -8,9 +8,7 @@ /turf/open/floor/plating, /area/bigredv2/outside/cargo) "ab" = ( -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/cargo) "ad" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -52,9 +50,7 @@ dir = 8; health = 25000 }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/cargo) "am" = ( /obj/structure/largecrate/cow, @@ -66,9 +62,7 @@ /area/bigredv2/outside/cargo) "ao" = ( /obj/structure/largecrate/cow, -/turf/open/floor{ - icon_state = "loadingarea" - }, +/turf/open/floor/loadingarea, /area/bigredv2/outside/cargo) "ap" = ( /obj/structure/closet/emcloset, @@ -123,7 +117,6 @@ /turf/open/floor, /area/bigredv2/outside/cargo) "ay" = ( -/obj/structure/closet/emcloset, /obj/structure/pipes/vents/pump{ dir = 8 }, @@ -141,19 +134,19 @@ /obj/structure/machinery/light{ dir = 8 }, +/obj/structure/surface/table, +/obj/effect/spawner/random/tool, /turf/open/floor, /area/bigredv2/outside/cargo) "aC" = ( -/turf/open/floor{ - icon_state = "loadingarea" - }, +/turf/open/floor/loadingarea, /area/bigredv2/outside/cargo) "aD" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper Cargo Offices" }, -/turf/open/floor, +/turf/open/floor/delivery, /area/bigredv2/outside/cargo) "aE" = ( /obj/structure/window/framed/solaris, @@ -166,30 +159,21 @@ /area/bigredv2/outside/cargo) "aF" = ( /obj/structure/cargo_container/arious/leftmid, -/turf/open/floor{ - dir = 1; - icon_state = "bot" - }, +/turf/open/floor/bot/north, /area/bigredv2/outside/cargo) "aG" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, /obj/structure/cargo_container/arious/rightmid, -/turf/open/floor{ - dir = 1; - icon_state = "bot" - }, +/turf/open/floor/bot/north, /area/bigredv2/outside/cargo) "aH" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/structure/cargo_container/arious/right, -/turf/open/floor{ - dir = 1; - icon_state = "bot" - }, +/turf/open/floor/bot/north, /area/bigredv2/outside/cargo) "aI" = ( /obj/structure/pipes/standard/manifold/hidden/green{ @@ -202,29 +186,20 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - dir = 1; - icon_state = "bot" - }, +/turf/open/floor/bot/north, /area/bigredv2/outside/cargo) "aK" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 1; - icon_state = "bot" - }, +/turf/open/floor/bot/north, /area/bigredv2/outside/cargo) "aL" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor{ - dir = 1; - icon_state = "bot" - }, +/turf/open/floor/bot/north, /area/bigredv2/outside/cargo) "aN" = ( /obj/structure/machinery/light{ @@ -234,55 +209,34 @@ /area/bigredv2/outside/cargo) "aO" = ( /obj/structure/largecrate/random/barrel, -/turf/open/floor{ - dir = 1; - icon_state = "bot" - }, +/turf/open/floor/bot/north, /area/bigredv2/outside/cargo) "aP" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/largecrate, -/turf/open/floor{ - dir = 1; - icon_state = "bot" - }, +/turf/open/floor/bot/north, /area/bigredv2/outside/cargo) "aQ" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/good_item, -/turf/open/floor{ - dir = 1; - icon_state = "bot" - }, +/turf/open/floor/bot/north, /area/bigredv2/outside/cargo) "aR" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/closet/crate/trashcart, -/turf/open/floor{ - dir = 1; - icon_state = "bot" - }, +/turf/open/floor/bot/north, /area/bigredv2/outside/cargo) "aS" = ( /obj/structure/cargo_container/grant/left, -/turf/open/floor{ - dir = 1; - icon_state = "bot" - }, +/turf/open/floor/bot/north, /area/bigredv2/outside/cargo) "aT" = ( /obj/structure/cargo_container/grant/rightmid, -/turf/open/floor{ - dir = 1; - icon_state = "bot" - }, +/turf/open/floor/bot/north, /area/bigredv2/outside/cargo) "aU" = ( /obj/structure/cargo_container/grant/right, -/turf/open/floor{ - dir = 1; - icon_state = "bot" - }, +/turf/open/floor/bot/north, /area/bigredv2/outside/cargo) "aV" = ( /obj/effect/decal/cleanable/dirt, @@ -298,34 +252,28 @@ /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ name = "\improper Cargo Bay Security" }, -/turf/open/floor, +/turf/open/floor/delivery, /area/bigredv2/outside/cargo) "aX" = ( -/turf/open/floor{ - dir = 1; - icon_state = "bot" - }, +/turf/open/floor/bot/north, /area/bigredv2/outside/cargo) "aY" = ( -/obj/structure/cargo_container/wy/left, -/turf/open/floor{ - dir = 1; - icon_state = "bot" +/obj/structure/machinery/light{ + dir = 8 }, +/turf/open/floor/loadingarea, /area/bigredv2/outside/cargo) "aZ" = ( -/obj/structure/cargo_container/wy/mid, -/turf/open/floor{ - dir = 1; - icon_state = "bot" - }, +/obj/structure/surface/table, +/obj/effect/spawner/random/bomb_supply, +/turf/open/floor, /area/bigredv2/outside/cargo) "ba" = ( -/obj/structure/cargo_container/wy/right, -/turf/open/floor{ - dir = 1; - icon_state = "bot" +/obj/structure/surface/table, +/obj/item/stack/sheet/glass{ + amount = 30 }, +/turf/open/floor, /area/bigredv2/outside/cargo) "bb" = ( /obj/effect/decal/cleanable/dirt, @@ -335,53 +283,31 @@ "bc" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cargo_container/watatsumi/leftmid, -/turf/open/floor{ - dir = 1; - icon_state = "bot" - }, +/turf/open/floor/bot/north, /area/bigredv2/outside/cargo) "bd" = ( /obj/structure/cargo_container/watatsumi/rightmid, -/turf/open/floor{ - dir = 1; - icon_state = "bot" - }, +/turf/open/floor/bot/north, /area/bigredv2/outside/cargo) "be" = ( /obj/structure/cargo_container/watatsumi/right, -/turf/open/floor{ - dir = 1; - icon_state = "bot" - }, +/turf/open/floor/bot/north, /area/bigredv2/outside/cargo) "bf" = ( /obj/structure/cargo_container/kelland/left, -/turf/open/floor{ - dir = 1; - icon_state = "bot" - }, +/turf/open/floor/bot/north, /area/bigredv2/outside/cargo) "bg" = ( /obj/structure/cargo_container/kelland/right, -/turf/open/floor{ - dir = 1; - icon_state = "bot" - }, +/turf/open/floor/bot/north, /area/bigredv2/outside/cargo) "bh" = ( -/obj/structure/closet/crate/trashcart, -/obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - dir = 1; - icon_state = "bot" - }, +/obj/structure/largecrate/random/barrel, +/turf/open/floor, /area/bigredv2/outside/cargo) "bj" = ( /obj/structure/largecrate, -/turf/open/floor{ - dir = 1; - icon_state = "bot" - }, +/turf/open/floor/bot/north, /area/bigredv2/outside/cargo) "bk" = ( /obj/structure/machinery/power/apc{ @@ -402,8 +328,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/obj/structure/machinery/light, -/turf/open/floor, +/turf/open/floor/delivery, /area/bigredv2/outside/cargo) "bs" = ( /obj/effect/decal/cleanable/dirt, @@ -430,17 +355,13 @@ dir = 1; name = "\improper Cargo Bay" }, -/turf/open/floor, +/turf/open/floor/delivery, /area/bigredv2/outside/cargo) "bz" = ( -/obj/effect/landmark/corpsespawner/security, -/obj/structure/machinery/light{ - dir = 4 - }, +/obj/effect/landmark/corpsespawner/security/marshal, /turf/open/floor, /area/bigredv2/outside/cargo) "bA" = ( -/obj/effect/decal/cleanable/dirt, /obj/structure/machinery/light{ dir = 8 }, @@ -475,34 +396,21 @@ "bI" = ( /obj/item/reagent_container/spray/cleaner, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor, +/turf/open/floor/floor4, /area/bigredv2/outside/cargo) "bJ" = ( -/obj/structure/largecrate, -/obj/structure/machinery/light{ - dir = 1 - }, -/turf/open/floor, +/turf/open/floor/floor4, /area/bigredv2/outside/cargo) "bK" = ( -/turf/open/floor{ - dir = 4; - icon_state = "loadingarea" - }, +/turf/open/floor/loadingarea/east, /area/bigredv2/outside/cargo) "bM" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/largecrate/random/barrel, -/turf/open/floor{ - dir = 1; - icon_state = "bot" - }, +/turf/open/floor/bot/north, /area/bigredv2/outside/cargo) "bN" = ( -/turf/open/floor{ - dir = 8; - icon_state = "loadingarea" - }, +/turf/open/floor/loadingarea/west, /area/bigredv2/outside/cargo) "bO" = ( /obj/structure/machinery/door_control{ @@ -514,12 +422,14 @@ /area/bigredv2/outside/cargo) "bP" = ( /obj/effect/decal/cleanable/dirt, -/obj/structure/largecrate, +/obj/structure/reagent_dispensers/fueltank, /turf/open/floor, /area/bigredv2/outside/cargo) "bQ" = ( -/obj/structure/closet/crate/trashcart, -/obj/effect/landmark/objective_landmark/close, +/obj/structure/pipes/standard/simple/hidden/green, +/obj/structure/machinery/light{ + dir = 4 + }, /turf/open/floor, /area/bigredv2/outside/cargo) "bR" = ( @@ -528,7 +438,7 @@ dir = 1; name = "\improper Cargo Bay Quartermaster" }, -/turf/open/floor, +/turf/open/floor/delivery, /area/bigredv2/outside/cargo) "bS" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -540,20 +450,14 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - dir = 4; - icon_state = "loadingarea" - }, +/turf/open/floor/loadingarea/east, /area/bigredv2/outside/cargo) "bV" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/structure/cargo_container/kelland/left, -/turf/open/floor{ - dir = 1; - icon_state = "bot" - }, +/turf/open/floor/bot/north, /area/bigredv2/outside/cargo) "bW" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -561,10 +465,7 @@ }, /obj/effect/decal/cleanable/dirt, /obj/structure/cargo_container/kelland/right, -/turf/open/floor{ - dir = 1; - icon_state = "bot" - }, +/turf/open/floor/bot/north, /area/bigredv2/outside/cargo) "bX" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -572,20 +473,14 @@ }, /obj/effect/decal/cleanable/dirt, /obj/structure/cargo_container/kelland/left, -/turf/open/floor{ - dir = 1; - icon_state = "bot" - }, +/turf/open/floor/bot/north, /area/bigredv2/outside/cargo) "bY" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, /obj/structure/cargo_container/kelland/right, -/turf/open/floor{ - dir = 1; - icon_state = "bot" - }, +/turf/open/floor/bot/north, /area/bigredv2/outside/cargo) "bZ" = ( /obj/structure/reagent_dispensers/watertank, @@ -612,7 +507,7 @@ /obj/structure/machinery/door/airlock/almayer/engineering/colony{ name = "\improper Cargo Bay Quartermaster" }, -/turf/open/floor, +/turf/open/floor/delivery, /area/bigredv2/outside/cargo) "cf" = ( /obj/structure/bed/chair/office/dark, @@ -725,16 +620,37 @@ /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper Engineering Complex" }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/engineering) "cx" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/engineering) +"zL" = ( +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 4 + }, +/turf/open/floor/floor4, +/area/bigredv2/outside/cargo) +"AS" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/floor4, +/area/bigredv2/outside/cargo) +"Gu" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/surface/table, +/obj/structure/machinery/light{ + dir = 4 + }, +/obj/effect/spawner/random/toolbox, +/turf/open/floor, +/area/bigredv2/outside/cargo) +"KO" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/surface/table, +/obj/effect/spawner/random/tool, +/turf/open/floor, +/area/bigredv2/outside/cargo) (1,1,1) = {" aa @@ -747,7 +663,7 @@ aE ai ai ai -ax +bq by ai ai @@ -761,13 +677,13 @@ ai ab al ab -aB -av -av -av +ai av av av +ai +aZ +bA ax av bH @@ -782,16 +698,16 @@ ai av av av -aC +aY aF aO av -aY -bf -av -ax -av -av +ak +ba +bJ +zL +bJ +bJ av ai av @@ -807,9 +723,9 @@ ad aG aP av -aZ -bg -am +ak +bh +bJ aI bb bI @@ -828,12 +744,12 @@ aC aH aQ av -ba -bh -av -ax +ai av -af +bJ +zL +bJ +AS bP ak cb @@ -849,13 +765,13 @@ am aI ad ad -bb -ad +bR ad +bQ bp bz -af -af +KO +Gu ak cb av @@ -870,13 +786,13 @@ aC aJ aR aX -aP -aX -av +ai +ai +ai bq +by +ai ai -bJ -bQ ai cc av @@ -895,8 +811,8 @@ af av av ax +af bA -av ae ai ak @@ -926,7 +842,7 @@ aA cv "} (10,1,1) = {" -av +ap av aw ad @@ -947,7 +863,7 @@ cl cw "} (11,1,1) = {" -av +ap av ax ao @@ -969,7 +885,7 @@ cx "} (12,1,1) = {" ah -ap +av ay av av @@ -1076,11 +992,11 @@ cv av at af -av +ab af ar av -av +ab av af bs diff --git a/maps/map_files/BigRed/sprinkles/30.cave-north_lambdapath.dmm b/maps/map_files/BigRed/sprinkles/30.cave-north_lambdapath.dmm deleted file mode 100644 index 69d091b39d02..000000000000 --- a/maps/map_files/BigRed/sprinkles/30.cave-north_lambdapath.dmm +++ /dev/null @@ -1,214 +0,0 @@ -//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE -"a" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_18" - }, -/area/bigredv2/caves_north) -"b" = ( -/turf/closed/wall/solaris/rock, -/area/bigredv2/caves) -"c" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, -/area/bigredv2/caves_lambda) -"d" = ( -/turf/open/mars_cave, -/area/bigredv2/caves_north) -"e" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, -/area/bigredv2/caves_north) -"f" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_7" - }, -/area/bigredv2/caves_north) -"g" = ( -/obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, -/obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, -/area/bigredv2/caves_lambda) -"h" = ( -/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, -/area/bigredv2/caves_lambda) -"j" = ( -/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, -/area/bigredv2/caves_north) -"m" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_14" - }, -/area/bigredv2/caves_north) -"n" = ( -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, -/area/bigredv2/caves_north) -"o" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_17" - }, -/area/bigredv2/caves_north) -"s" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_15" - }, -/area/bigredv2/caves_north) -"C" = ( -/turf/open/mars_cave{ - icon_state = "mars_dirt_6" - }, -/area/bigredv2/caves_north) -"H" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_19" - }, -/area/bigredv2/caves_north) -"M" = ( -/turf/open/mars_cave{ - icon_state = "mars_dirt_5" - }, -/area/bigredv2/caves_north) -"S" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_7" - }, -/area/bigredv2/caves_lambda) -"Z" = ( -/obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, -/obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/mars_cave{ - icon_state = "mars_cave_16" - }, -/area/bigredv2/caves_lambda) - -(1,1,1) = {" -a -d -e -m -C -n -H -e -e -s -"} -(2,1,1) = {" -b -f -s -n -j -n -o -e -e -m -"} -(3,1,1) = {" -b -b -s -M -n -H -d -b -b -b -"} -(4,1,1) = {" -b -b -g -Z -Z -b -b -b -b -b -"} -(5,1,1) = {" -b -c -c -c -c -c -b -b -b -b -"} -(6,1,1) = {" -b -c -c -c -h -c -c -b -b -b -"} -(7,1,1) = {" -S -c -c -c -c -c -c -b -c -c -"} -(8,1,1) = {" -c -c -c -c -c -c -c -g -c -c -"} -(9,1,1) = {" -c -h -c -c -c -h -c -g -c -c -"} -(10,1,1) = {" -c -c -c -c -c -c -c -g -c -h -"} diff --git a/maps/map_files/BigRed/sprinkles/30.viro-rock_open.dmm b/maps/map_files/BigRed/sprinkles/30.viro-rock_open.dmm index 62d8c1f9d5ab..8f710225f0c5 100644 --- a/maps/map_files/BigRed/sprinkles/30.viro-rock_open.dmm +++ b/maps/map_files/BigRed/sprinkles/30.viro-rock_open.dmm @@ -13,65 +13,40 @@ /area/bigredv2/outside/nw) "e" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/west, /area/bigredv2/outside/nw) "f" = ( -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/west, /area/bigredv2/outside/nw) "g" = ( /turf/open/mars, /area/bigredv2/outside/w) "h" = ( -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/west, /area/bigredv2/outside/w) "i" = ( -/turf/open/mars{ - icon_state = "mars_dirt_13" - }, +/turf/open/mars/mars_dirt_13, /area/bigredv2/outside/nw) "j" = ( -/turf/open/mars{ - icon_state = "mars_dirt_11" - }, +/turf/open/mars/mars_dirt_11, /area/bigredv2/outside/nw) "k" = ( -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/outside/nw) "l" = ( -/turf/open/mars{ - icon_state = "mars_dirt_5" - }, +/turf/open/mars/mars_dirt_5, /area/bigredv2/outside/w) "m" = ( -/turf/open/mars{ - icon_state = "mars_dirt_11" - }, +/turf/open/mars/mars_dirt_11, /area/bigredv2/outside/w) "n" = ( -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/outside/w) "o" = ( -/turf/open/mars{ - icon_state = "mars_dirt_6" - }, +/turf/open/mars/mars_dirt_6, /area/bigredv2/outside/w) "U" = ( -/turf/open/mars{ - icon_state = "mars_dirt_13" - }, +/turf/open/mars/mars_dirt_13, /area/bigredv2/outside/w) (1,1,1) = {" diff --git a/maps/map_files/BigRed/sprinkles/35.filtration_restored.dmm b/maps/map_files/BigRed/sprinkles/35.filtration_restored.dmm index adbdf51bd259..10252b55284c 100644 --- a/maps/map_files/BigRed/sprinkles/35.filtration_restored.dmm +++ b/maps/map_files/BigRed/sprinkles/35.filtration_restored.dmm @@ -7,9 +7,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/filtration_plant) "ad" = ( /obj/effect/decal/cleanable/dirt, @@ -19,16 +17,12 @@ /obj/structure/pipes/vents/pump, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/filtration_plant) "af" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/filtration_plant) "ah" = ( /obj/structure/window/framed/solaris, @@ -42,100 +36,67 @@ /area/bigredv2/caves) "ak" = ( /obj/structure/closet/wardrobe/atmospherics_yellow, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/bigredv2/outside/filtration_plant) "al" = ( /obj/structure/surface/table, /obj/item/tool/lighter/random, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/west, /area/bigredv2/outside/filtration_plant) "am" = ( -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/se) "an" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/filtration_plant) "ap" = ( /obj/structure/reagent_dispensers/watertank, -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/bigredv2/outside/filtration_plant) "aq" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/camera/autoname{ dir = 1 }, -/turf/open/floor{ - dir = 10; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/southwest, /area/bigredv2/outside/filtration_plant) "ar" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/filtration_plant) "as" = ( /obj/structure/pipes/standard/manifold/hidden/green, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/bigredv2/outside/filtration_plant) "at" = ( /obj/structure/bed/chair{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/filtration_plant) "au" = ( /obj/structure/machinery/computer/atmos_alert{ dir = 8 }, /obj/structure/surface/table, -/turf/open/floor{ - dir = 6; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/southeast, /area/bigredv2/outside/filtration_plant) "av" = ( /obj/item/tool/warning_cone, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/north, /area/bigredv2/outside/se) "aw" = ( -/turf/open/mars{ - icon_state = "mars_dirt_6" - }, +/turf/open/mars/mars_dirt_6, /area/bigredv2/outside/se) "ax" = ( -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/north, /area/bigredv2/outside/se) "ay" = ( /obj/effect/decal/cleanable/dirt, @@ -151,27 +112,21 @@ /obj/structure/machinery/door/airlock/almayer/engineering/colony{ name = "\improper Atmospherics Condenser Storage" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/bigredv2/outside/filtration_plant) "aB" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony{ dir = 1; name = "\improper Atmospherics Condenser" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/bigredv2/outside/filtration_plant) "aC" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/filtration_plant) "aD" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony{ @@ -179,126 +134,86 @@ name = "\improper Atmospherics Condenser" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/bigredv2/outside/filtration_plant) "aE" = ( /obj/effect/decal/cleanable/dirt, /obj/item/device/radio/headset, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/filtration_plant) "aF" = ( /obj/structure/machinery/portable_atmospherics/powered/scrubber/huge/chan, /turf/open/floor/plating, /area/bigredv2/outside/filtration_plant) "aG" = ( -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/east, /area/bigredv2/outside/se) "aH" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/filtration_plant) "aJ" = ( -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/bigredv2/outside/se) "aK" = ( -/turf/open/mars{ - icon_state = "mars_dirt_3" - }, +/turf/open/mars/mars_dirt_3, /area/bigredv2/outside/se) "aL" = ( /obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/bigredv2/outside/filtration_plant) "aM" = ( /obj/structure/reagent_dispensers/watertank, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/bigredv2/outside/filtration_plant) "aN" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/filtration_plant) "aO" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/filtration_plant) "aP" = ( /obj/effect/landmark/crap_item, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/filtration_plant) "aQ" = ( /obj/structure/surface/table, /obj/effect/landmark/good_item, -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/bigredv2/outside/filtration_plant) "aR" = ( /obj/structure/surface/table, /obj/effect/spawner/random/toolbox, -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/bigredv2/outside/filtration_plant) "aS" = ( -/turf/open/floor{ - dir = 1; - icon_state = "bot" - }, +/turf/open/floor/bot/north, /area/bigredv2/outside/filtration_plant) "aT" = ( /obj/structure/dispenser/oxygen, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/bigredv2/outside/filtration_plant) "aV" = ( /obj/effect/decal/warning_stripes{ icon_state = "U-N" }, /obj/structure/machinery/computer3/server/rack, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/filtration_plant) "aW" = ( /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/filtration_plant) "aX" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/filtration_plant) "aY" = ( /turf/closed/wall/solaris/reinforced, @@ -306,10 +221,7 @@ "aZ" = ( /obj/structure/machinery/computer/general_air_control, /obj/structure/surface/table, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/bigredv2/outside/filtration_plant) "bb" = ( /obj/structure/surface/table, @@ -317,34 +229,23 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/bigredv2/outside/filtration_plant) "bc" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/surface/rack, /obj/effect/spawner/random/tool, -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/bigredv2/outside/filtration_plant) "bd" = ( /obj/structure/surface/table, /obj/effect/spawner/random/tool, -/turf/open/floor{ - dir = 5; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/northeast, /area/bigredv2/outside/filtration_plant) "be" = ( /obj/structure/surface/table, /obj/item/circuitboard/solar_tracker, -/turf/open/floor{ - dir = 6; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/southeast, /area/bigredv2/outside/filtration_plant) "bf" = ( /obj/structure/machinery/light{ @@ -357,36 +258,26 @@ /obj/effect/decal/warning_stripes{ icon_state = "U-S" }, -/turf/open/floor{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/west, /area/bigredv2/outside/filtration_plant) "bh" = ( /obj/effect/decal/warning_stripes{ icon_state = "U-S" }, /obj/structure/machinery/computer3/server/rack, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/filtration_plant) "bj" = ( /obj/structure/surface/rack, /obj/item/tank/air, /obj/item/tool/pickaxe, -/turf/open/floor{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/west, /area/bigredv2/outside/filtration_plant) "bk" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/tool, /obj/structure/machinery/light, -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/bigredv2/outside/filtration_plant) "bl" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony{ @@ -402,9 +293,7 @@ icon_state = "NW-out"; pixel_y = 1 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/bigredv2/outside/filtration_plant) "bm" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony{ @@ -412,42 +301,31 @@ name = "\improper Filtration Facility" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/bigredv2/outside/filtration_plant) "bn" = ( /obj/structure/sign/safety/distribution_pipes{ pixel_x = 32 }, -/turf/open/floor{ - dir = 5; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/northeast, /area/bigredv2/outside/filtration_plant) "bo" = ( /obj/item/tank/air, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/filtration_plant) "bp" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/filtration_plant) "bq" = ( /obj/effect/landmark/crap_item, /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/filtration_plant) "br" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony{ @@ -456,9 +334,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/bigredv2/outside/filtration_plant) "bt" = ( /obj/effect/decal/cleanable/dirt, @@ -469,9 +345,7 @@ dir = 4 }, /obj/item/frame/table, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/filtration_plant) "bv" = ( /obj/structure/machinery/portable_atmospherics/powered/scrubber/huge/chan, @@ -486,17 +360,12 @@ dir = 9 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/filtration_plant) "bz" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/reagent_dispensers/fueltank, -/turf/open/floor{ - dir = 1; - icon_state = "bot" - }, +/turf/open/floor/bot/north, /area/bigredv2/outside/filtration_plant) "bA" = ( /obj/effect/decal/cleanable/dirt, @@ -508,10 +377,7 @@ /obj/structure/machinery/computer/atmos_alert{ dir = 4 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/west, /area/bigredv2/outside/filtration_plant) "bD" = ( /obj/structure/window/framed/solaris/reinforced/hull, @@ -521,32 +387,22 @@ /obj/structure/cryofeed/right{ name = "\improper coolant feed" }, -/turf/open/floor/bluegrid{ - icon_state = "bcircuitoff" - }, +/turf/open/floor/bluegrid/bcircuitoff, /area/bigredv2/outside/filtration_plant) "bF" = ( /obj/structure/cryofeed, -/turf/open/floor/bluegrid{ - icon_state = "bcircuitoff" - }, +/turf/open/floor/bluegrid/bcircuitoff, /area/bigredv2/outside/filtration_plant) "bG" = ( /obj/structure/surface/table, -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/bigredv2/outside/filtration_plant) "bH" = ( /obj/structure/machinery/computer/area_atmos/area{ dir = 8 }, /obj/structure/surface/table, -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/bigredv2/outside/filtration_plant) "bI" = ( /obj/structure/window_frame/solaris/reinforced, @@ -557,10 +413,7 @@ /area/bigredv2/outside/filtration_plant) "bJ" = ( /obj/item/weapon/twohanded/fireaxe, -/turf/open/floor{ - dir = 10; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/southwest, /area/bigredv2/outside/filtration_plant) "bK" = ( /turf/open/mars, @@ -568,57 +421,39 @@ "bN" = ( /obj/structure/surface/table, /obj/effect/spawner/random/technology_scanner, -/turf/open/floor{ - dir = 10; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/southwest, /area/bigredv2/outside/filtration_plant) "bO" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/outside/filtration_cave_cas) "bP" = ( /obj/item/tank/air, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/outside/filtration_cave_cas) "bQ" = ( /obj/structure/surface/table, /obj/effect/spawner/random/technology_scanner, /obj/structure/machinery/light, -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/bigredv2/outside/filtration_plant) "bS" = ( /obj/item/frame/table, /obj/structure/machinery/light, -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/bigredv2/outside/filtration_plant) "bT" = ( /obj/effect/decal/cleanable/dirt, /obj/item/frame/table, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/filtration_plant) "bU" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/surface/table, -/turf/open/floor{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/west, /area/bigredv2/outside/filtration_plant) "bW" = ( -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/filtration_plant) "bX" = ( /obj/structure/sign/safety/distribution_pipes{ @@ -627,10 +462,7 @@ /turf/closed/wall/solaris/reinforced, /area/bigredv2/outside/filtration_plant) "bZ" = ( -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/filtration_plant) "cb" = ( /obj/structure/machinery/door_control{ @@ -639,25 +471,18 @@ pixel_x = -32 }, /obj/structure/machinery/light, -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/bigredv2/outside/filtration_plant) "ce" = ( /obj/structure/machinery/light, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/filtration_plant) "cf" = ( /obj/structure/machinery/door/poddoor/shutters/almayer{ id = "FiltrationShutters"; name = "\improper Airlock Shutters" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/bigredv2/outside/filtration_plant) "cg" = ( /obj/structure/machinery/door_control{ @@ -669,80 +494,52 @@ /area/bigredv2/outside/filtration_plant) "ch" = ( /obj/structure/dispenser/oxygen, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/outside/filtration_cave_cas) "ci" = ( /obj/item/tool/warning_cone, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/outside/filtration_cave_cas) "cj" = ( /obj/item/tool/pickaxe, -/turf/open/floor{ - dir = 1; - icon_state = "bot" - }, +/turf/open/floor/bot/north, /area/bigredv2/outside/filtration_plant) "ck" = ( /obj/effect/decal/warning_stripes{ icon_state = "E-corner" }, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/outside/filtration_cave_cas) "cl" = ( -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/west, /area/bigredv2/outside/filtration_plant) "cn" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/filtration_plant) "cO" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/bigredv2/outside/filtration_plant) "et" = ( -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/bigredv2/outside/filtration_plant) "eL" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - dir = 5; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/northeast, /area/bigredv2/outside/filtration_plant) "ff" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/filtration_plant) "gt" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/bigredv2/outside/filtration_plant) "hk" = ( -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/bigredv2/outside/filtration_plant) "jh" = ( /obj/structure/machinery/light, @@ -750,17 +547,11 @@ /area/bigredv2/outside/filtration_plant) "ka" = ( /obj/structure/closet/firecloset/full, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/bigredv2/outside/filtration_plant) "kE" = ( /obj/structure/machinery/light, -/turf/open/floor{ - dir = 6; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/southeast, /area/bigredv2/outside/filtration_plant) "nk" = ( /obj/structure/blocker/forcefield/multitile_vehicles, @@ -782,103 +573,62 @@ icon_state = "E"; pixel_x = 1 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/filtration_plant) "qi" = ( /obj/structure/machinery/light{ dir = 1 }, /obj/structure/closet/firecloset/full, -/turf/open/floor{ - dir = 1; - icon_state = "bot" - }, +/turf/open/floor/bot/north, /area/bigredv2/outside/filtration_plant) "ti" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 1; - icon_state = "bot" - }, +/turf/open/floor/bot/north, /area/bigredv2/outside/filtration_plant) "tp" = ( /obj/structure/largecrate/random, -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/bigredv2/outside/filtration_plant) "tz" = ( -/turf/open/floor{ - dir = 9; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/northwest, /area/bigredv2/outside/filtration_plant) "tB" = ( /obj/effect/landmark/crap_item, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/outside/filtration_cave_cas) "vK" = ( -/turf/open/floor{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/west, /area/bigredv2/outside/filtration_plant) "xd" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/bigredv2/outside/filtration_plant) "yi" = ( /obj/structure/reagent_dispensers/fueltank, -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/bigredv2/outside/filtration_plant) "yZ" = ( -/turf/open/floor{ - dir = 8; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/darkyellowcorners2/west, /area/bigredv2/outside/filtration_plant) "zu" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_7" - }, +/turf/open/mars_cave/mars_cave_7, /area/bigredv2/outside/filtration_cave_cas) "Ap" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 4; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/darkyellowcorners2/east, /area/bigredv2/outside/filtration_plant) "AD" = ( -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/bigredv2/outside/filtration_plant) "Ee" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/west, /area/bigredv2/outside/filtration_plant) "FI" = ( -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/bigredv2/outside/filtration_plant) "FK" = ( /obj/effect/decal/warning_stripes{ @@ -889,147 +639,95 @@ icon_state = "E"; pixel_x = 1 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/filtration_plant) "Jy" = ( /obj/structure/closet/firecloset/full, -/turf/open/floor{ - dir = 1; - icon_state = "bot" - }, +/turf/open/floor/bot/north, /area/bigredv2/outside/filtration_plant) "Kp" = ( /obj/structure/surface/table, -/turf/open/floor{ - dir = 10; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/southwest, /area/bigredv2/outside/filtration_plant) "Ms" = ( /obj/structure/machinery/computer3/server/rack, /obj/effect/decal/warning_stripes{ icon_state = "U-N" }, -/turf/open/floor{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/west, /area/bigredv2/outside/filtration_plant) "Qx" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/east, /area/bigredv2/outside/filtration_plant) "QJ" = ( -/turf/open/floor{ - dir = 10; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/southwest, /area/bigredv2/outside/filtration_plant) "Rv" = ( /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/east, /area/bigredv2/outside/filtration_plant) "Sj" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony{ dir = 1; name = "\improper Filtration Facility" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/bigredv2/outside/filtration_plant) "Sk" = ( /obj/structure/machinery/light, /obj/structure/largecrate/random, -/turf/open/floor{ - dir = 6; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/southeast, /area/bigredv2/outside/filtration_plant) "TC" = ( /obj/structure/machinery/light, -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/bigredv2/outside/filtration_plant) "TX" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/filtration_plant) "UH" = ( /obj/effect/decal/warning_stripes{ icon_state = "E-corner" }, -/turf/open/mars_cave{ - icon_state = "mars_cave_7" - }, +/turf/open/mars_cave/mars_cave_7, /area/bigredv2/outside/filtration_cave_cas) "US" = ( -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/filtration_plant) "VW" = ( /obj/structure/cargo_container/grant/left, -/turf/open/floor{ - dir = 1; - icon_state = "bot" - }, +/turf/open/floor/bot/north, /area/bigredv2/outside/filtration_plant) "Wc" = ( -/turf/open/floor{ - dir = 1; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/darkyellowcorners2/north, /area/bigredv2/outside/filtration_plant) "Wz" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/bigredv2/outside/filtration_plant) "WD" = ( /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/outside/filtration_cave_cas) "Xx" = ( /obj/structure/surface/table, /obj/effect/spawner/random/technology_scanner, -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/bigredv2/outside/filtration_plant) "XC" = ( /obj/structure/cargo_container/grant/right, -/turf/open/floor{ - dir = 1; - icon_state = "bot" - }, +/turf/open/floor/bot/north, /area/bigredv2/outside/filtration_plant) "Yg" = ( /obj/structure/cargo_container/grant/rightmid, -/turf/open/floor{ - dir = 1; - icon_state = "bot" - }, +/turf/open/floor/bot/north, /area/bigredv2/outside/filtration_plant) (1,1,1) = {" diff --git a/maps/map_files/BigRed/sprinkles/40.admin_pmc.dmm b/maps/map_files/BigRed/sprinkles/40.admin_pmc.dmm index 7a66b2422807..6e418ce24e08 100644 --- a/maps/map_files/BigRed/sprinkles/40.admin_pmc.dmm +++ b/maps/map_files/BigRed/sprinkles/40.admin_pmc.dmm @@ -12,31 +12,22 @@ "af" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/blood/xeno, -/turf/open/floor{ - dir = 8; - icon_state = "darkredcorners2" - }, +/turf/open/floor/darkredcorners2/west, /area/bigredv2/outside/admin_building) "ag" = ( /obj/effect/spawner/random/toolbox, /obj/structure/platform_decoration, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/admin_building) "ai" = ( /obj/effect/landmark/survivor_spawner, /obj/structure/platform_decoration{ dir = 1 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/admin_building) "aj" = ( -/turf/open/floor{ - icon_state = "darkred2" - }, +/turf/open/floor/darkred2, /area/bigredv2/outside/admin_building) "ak" = ( /obj/structure/window_frame/solaris, @@ -48,25 +39,18 @@ dir = 1; name = "\improper Operations Meeting Room" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/admin_building) "am" = ( /obj/structure/platform, /obj/structure/flora/jungle/planttop1{ pixel_y = 10 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/admin_building) "an" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/west, /area/bigredv2/outside/admin_building) "ap" = ( /obj/structure/flora/jungle/plantbot1{ @@ -81,9 +65,7 @@ /obj/effect/decal/cleanable/blood{ icon_state = "gib6" }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/admin_building) "at" = ( /obj/structure/bed/chair/comfy/black, @@ -98,29 +80,21 @@ dir = 4; icon_state = "metal_2" }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/admin_building) "aw" = ( /obj/structure/platform_decoration{ dir = 8 }, /obj/effect/decal/cleanable/blood/xeno, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/admin_building) "ay" = ( -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/admin_building) "aA" = ( /obj/effect/landmark/corpsespawner/wygoon, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/admin_building) "aB" = ( /obj/structure/surface/table, @@ -141,18 +115,14 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "darkredcorners2" - }, +/turf/open/floor/darkredcorners2, /area/bigredv2/outside/admin_building) "aH" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/decal/cleanable/blood/xeno, -/turf/open/floor{ - icon_state = "darkred2" - }, +/turf/open/floor/darkred2, /area/bigredv2/outside/admin_building) "aJ" = ( /obj/structure/bed/chair/comfy/blue{ @@ -177,17 +147,11 @@ "aM" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/barricade/sandbags/wired, -/turf/open/floor{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/west, /area/bigredv2/outside/admin_building) "aN" = ( /obj/structure/barricade/sandbags/wired, -/turf/open/floor{ - dir = 4; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/east, /area/bigredv2/outside/admin_building) "aO" = ( /obj/item/storage/secure/briefcase, @@ -197,9 +161,7 @@ /obj/structure/barricade/metal/wired{ dir = 4 }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/admin_building) "aQ" = ( /turf/open/floor/carpet, @@ -214,19 +176,14 @@ /area/bigredv2/outside/admin_building) "aT" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/admin_building) "aU" = ( /obj/structure/machinery/light{ dir = 4 }, /obj/item/storage/toolbox/syndicate, -/turf/open/floor{ - dir = 4; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/east, /area/bigredv2/outside/admin_building) "aV" = ( /obj/structure/surface/table, @@ -241,16 +198,10 @@ "aX" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/landmark/crap_item, -/turf/open/floor{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/west, /area/bigredv2/outside/admin_building) "aY" = ( -/turf/open/floor{ - dir = 4; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/east, /area/bigredv2/outside/admin_building) "aZ" = ( /obj/structure/machinery/light{ @@ -264,9 +215,7 @@ /obj/item/ammo_box/magazine/m4a3{ num_of_magazines = 2 }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/admin_building) "ba" = ( /obj/structure/surface/table, @@ -302,35 +251,25 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/admin_building) "be" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/west, /area/bigredv2/outside/admin_building) "bf" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/admin_building) "bg" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/east, /area/bigredv2/outside/admin_building) "bh" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -339,38 +278,26 @@ /obj/structure/machinery/door/airlock/almayer/command/colony{ name = "\improper Operations Office" }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/admin_building) "bi" = ( /obj/item/ammo_box/magazine/ext{ num_of_magazines = 1 }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/admin_building) "bl" = ( -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/admin_building) "bm" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/west, /area/bigredv2/outside/admin_building) "bn" = ( -/turf/open/floor{ - dir = 10; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/southwest, /area/bigredv2/outside/admin_building) "bo" = ( /obj/item/device/radio/intercom{ @@ -379,10 +306,7 @@ name = "General Listening Channel"; pixel_x = 30 }, -/turf/open/floor{ - dir = 6; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/southeast, /area/bigredv2/outside/admin_building) "bp" = ( /obj/structure/machinery/vending/coffee, @@ -408,9 +332,7 @@ /obj/item/ammo_magazine/pistol/rubber{ current_rounds = 0 }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/admin_building) "jq" = ( /obj/item/weapon/gun/rifle/m41a/corporate{ @@ -426,17 +348,22 @@ current_rounds = 0; pixel_y = 11 }, -/turf/open/floor{ - icon_state = "wood" +/turf/open/floor/wood, +/area/bigredv2/outside/admin_building) +"mq" = ( +/obj/structure/window/framed/solaris/reinforced, +/obj/structure/machinery/door/poddoor/shutters/almayer{ + dir = 4; + id = "Operations"; + name = "\improper Operations Shutters" }, +/turf/open/floor/plating, /area/bigredv2/outside/admin_building) "rv" = ( /obj/item/ammo_magazine/rifle{ current_rounds = 0 }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/admin_building) "si" = ( /obj/item/ammo_box/magazine{ @@ -452,9 +379,7 @@ pixel_x = 14; pixel_y = 17 }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/admin_building) "uv" = ( /obj/item/ammo_magazine/rifle{ @@ -462,33 +387,25 @@ pixel_x = -9; pixel_y = 7 }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/admin_building) "vH" = ( /obj/structure/platform{ dir = 8 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/admin_building) "vO" = ( /obj/structure/platform{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/admin_building) "yf" = ( /obj/structure/platform_decoration{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/admin_building) "za" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -515,17 +432,13 @@ /area/bigredv2/outside/admin_building) "ND" = ( /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/admin_building) "Pk" = ( /obj/structure/platform{ dir = 1 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/admin_building) "QR" = ( /obj/structure/barricade/metal/wired{ @@ -534,9 +447,7 @@ /obj/item/ammo_magazine/pistol/rubber{ current_rounds = 0 }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/admin_building) "Sz" = ( /obj/item/ammo_magazine/rifle/rubber{ @@ -548,7 +459,7 @@ /area/bigredv2/outside/admin_building) (1,1,1) = {" -aj +mq ab ab ab diff --git a/maps/map_files/BigRed/sprinkles/40.dorms_party.dmm b/maps/map_files/BigRed/sprinkles/40.dorms_party.dmm index 2c3f634a6502..c2336bae0b40 100644 --- a/maps/map_files/BigRed/sprinkles/40.dorms_party.dmm +++ b/maps/map_files/BigRed/sprinkles/40.dorms_party.dmm @@ -47,32 +47,24 @@ /turf/open/floor, /area/bigredv2/outside/dorms) "al" = ( -/turf/open/floor{ - icon_state = "grimy" - }, +/turf/open/floor/grimy, /area/bigredv2/outside/dorms) "an" = ( /obj/item/trash/chunk, -/turf/open/floor{ - icon_state = "grimy" - }, +/turf/open/floor/grimy, /area/bigredv2/outside/dorms) "ao" = ( /obj/item/trash/chunk{ pixel_x = 3; pixel_y = -4 }, -/turf/open/floor{ - icon_state = "grimy" - }, +/turf/open/floor/grimy, /area/bigredv2/outside/dorms) "ap" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor{ - icon_state = "grimy" - }, +/turf/open/floor/grimy, /area/bigredv2/outside/dorms) "aq" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -119,34 +111,26 @@ "ay" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/good_item, -/turf/open/floor{ - icon_state = "grimy" - }, +/turf/open/floor/grimy, /area/bigredv2/outside/dorms) "az" = ( /obj/structure/pipes/vents/pump, /obj/effect/decal/cleanable/blood/gibs/limb, -/turf/open/floor{ - icon_state = "grimy" - }, +/turf/open/floor/grimy, /area/bigredv2/outside/dorms) "aA" = ( /obj/effect/decal/cleanable/blood{ icon_state = "xgib4" }, /obj/effect/landmark/corpsespawner/colonist/random, -/turf/open/floor{ - icon_state = "grimy" - }, +/turf/open/floor/grimy, /area/bigredv2/outside/dorms) "aB" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/item/trash/chunk{ pixel_y = 5 }, -/turf/open/floor{ - icon_state = "grimy" - }, +/turf/open/floor/grimy, /area/bigredv2/outside/dorms) "aC" = ( /obj/structure/machinery/camera/autoname{ @@ -193,16 +177,12 @@ /area/bigredv2/outside/dorms) "aJ" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "grimy" - }, +/turf/open/floor/grimy, /area/bigredv2/outside/dorms) "aK" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "grimy" - }, +/turf/open/floor/grimy, /area/bigredv2/outside/dorms) "aL" = ( /obj/effect/decal/cleanable/dirt, @@ -211,17 +191,13 @@ pixel_y = 4 }, /obj/item/reagent_container/food/drinks/bottle/rum, -/turf/open/floor{ - icon_state = "grimy" - }, +/turf/open/floor/grimy, /area/bigredv2/outside/dorms) "aM" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/simple/hidden/green, /obj/item/trash/chunk, -/turf/open/floor{ - icon_state = "grimy" - }, +/turf/open/floor/grimy, /area/bigredv2/outside/dorms) "aN" = ( /obj/item/trash/chunk, @@ -246,18 +222,14 @@ /area/bigredv2/outside/dorms) "aS" = ( /obj/item/device/megaphone, -/turf/open/floor{ - icon_state = "grimy" - }, +/turf/open/floor/grimy, /area/bigredv2/outside/dorms) "aT" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, /obj/item/reagent_container/food/drinks/bottle/rum, -/turf/open/floor{ - icon_state = "grimy" - }, +/turf/open/floor/grimy, /area/bigredv2/outside/dorms) "aU" = ( /obj/effect/decal/cleanable/dirt, @@ -265,18 +237,14 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "grimy" - }, +/turf/open/floor/grimy, /area/bigredv2/outside/dorms) "aV" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor{ - icon_state = "grimy" - }, +/turf/open/floor/grimy, /area/bigredv2/outside/dorms) "aW" = ( /obj/item/device/radio/intercom{ @@ -297,9 +265,7 @@ /area/bigredv2/outside/dorms) "ba" = ( /obj/effect/landmark/survivor_spawner, -/turf/open/floor{ - icon_state = "grimy" - }, +/turf/open/floor/grimy, /area/bigredv2/outside/dorms) "bb" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -404,17 +370,13 @@ /area/bigredv2/outside/dorms) "dl" = ( /obj/item/reagent_container/food/drinks/bottle/rum, -/turf/open/floor{ - icon_state = "grimy" - }, +/turf/open/floor/grimy, /area/bigredv2/outside/dorms) "do" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/corpsespawner/colonist/random, /obj/effect/decal/cleanable/blood, -/turf/open/floor{ - icon_state = "grimy" - }, +/turf/open/floor/grimy, /area/bigredv2/outside/dorms) "el" = ( /obj/effect/landmark/corpsespawner/colonist/random, @@ -429,9 +391,7 @@ /area/bigredv2/outside/dorms) "lN" = ( /obj/structure/machinery/cm_vending/sorted/boozeomat, -/turf/open/floor{ - icon_state = "grimy" - }, +/turf/open/floor/grimy, /area/bigredv2/outside/dorms) "zO" = ( /obj/structure/pipes/standard/simple/hidden/green{ diff --git a/maps/map_files/BigRed/sprinkles/40.viro_open.dmm b/maps/map_files/BigRed/sprinkles/40.viro_open.dmm index 05e058c4071a..3a06d7aae8d4 100644 --- a/maps/map_files/BigRed/sprinkles/40.viro_open.dmm +++ b/maps/map_files/BigRed/sprinkles/40.viro_open.dmm @@ -4,28 +4,19 @@ /area/bigredv2/caves) "ab" = ( /obj/structure/fence, -/turf/open/mars_cave{ - icon_state = "mars_cave_13" - }, +/turf/open/mars_cave/mars_cave_13, /area/bigredv2/outside/virology) "ac" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "asteroidwarning"; - dir = 10 - }, +/turf/open/floor/asteroidwarning/southwest, /area/bigredv2/outside/nw) "ad" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/bigredv2/outside/nw) "ae" = ( /obj/effect/landmark/crap_item, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/bigredv2/outside/nw) "af" = ( /obj/effect/decal/cleanable/blood/gibs/xeno/body, @@ -37,205 +28,131 @@ id = "viro"; name = "Virology Lockdown" }, -/turf/open/floor{ - icon_state = "asteroidfloor"; - dir = 1 - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/virology) "ag" = ( -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/outside/virology) "ah" = ( -/turf/open/mars{ - icon_state = "mars_dirt_12" - }, +/turf/open/mars/mars_dirt_12, /area/bigredv2/outside/virology) "ai" = ( /turf/open/mars, /area/bigredv2/outside/virology) "ak" = ( -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/outside/nw) "al" = ( /obj/structure/fence, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/outside/virology) "am" = ( /obj/effect/decal/cleanable/ash, -/turf/open/mars_cave{ - icon_state = "mars_cave_13" - }, +/turf/open/mars_cave/mars_cave_13, /area/bigredv2/outside/virology) "an" = ( /obj/effect/decal/cleanable/ash, -/turf/open/mars_cave{ - icon_state = "mars_dirt_6" - }, +/turf/open/mars_cave/mars_dirt_6, /area/bigredv2/outside/virology) "ao" = ( /obj/structure/closet/bodybag{ icon_state = "bodybag_open" }, -/turf/open/mars{ - icon_state = "mars_dirt_12" - }, +/turf/open/mars/mars_dirt_12, /area/bigredv2/outside/virology) "aq" = ( /obj/structure/inflatable, -/turf/open/mars_cave{ - icon_state = "mars_dirt_5" - }, +/turf/open/mars_cave/mars_dirt_5, /area/bigredv2/outside/virology) "ar" = ( /obj/structure/fence, -/turf/open/mars_cave{ - icon_state = "mars_cave_7" - }, +/turf/open/mars_cave/mars_cave_7, /area/bigredv2/outside/virology) "as" = ( -/turf/open/floor{ - icon_state = "asteroidwarning"; - dir = 9 - }, +/turf/open/floor/asteroidwarning/northwest, /area/bigredv2/outside/virology) "at" = ( -/turf/open/floor{ - icon_state = "asteroidwarning"; - dir = 1 - }, +/turf/open/floor/asteroidwarning/north, /area/bigredv2/outside/virology) "au" = ( /obj/structure/inflatable, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/outside/virology) "av" = ( -/turf/open/floor{ - icon_state = "asteroidfloor"; - dir = 1 - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/virology) "aw" = ( /obj/structure/machinery/light{ dir = 4 }, /obj/structure/inflatable, -/turf/open/floor{ - icon_state = "asteroidwarning"; - dir = 9 - }, +/turf/open/floor/asteroidwarning/northwest, /area/bigredv2/outside/virology) "ax" = ( -/turf/open/floor{ - icon_state = "asteroidwarning"; - dir = 1 - }, +/turf/open/floor/asteroidwarning/north, /area/bigredv2/outside/nw) "ay" = ( /obj/structure/closet/bodybag{ icon_state = "bodybag_open" }, -/turf/open/mars_cave{ - icon_state = "mars_dirt_5" - }, +/turf/open/mars_cave/mars_dirt_5, /area/bigredv2/outside/virology) "az" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor{ - icon_state = "asteroidwarning"; - dir = 8 - }, +/turf/open/floor/asteroidwarning/west, /area/bigredv2/outside/virology) "aA" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "asteroidfloor"; - dir = 1 - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/virology) "aE" = ( /obj/structure/inflatable, -/turf/open/floor{ - icon_state = "asteroidwarning"; - dir = 5 - }, +/turf/open/floor/asteroidwarning/northeast, /area/bigredv2/outside/nw) "aF" = ( /obj/structure/inflatable/door, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/outside/virology) "aG" = ( /obj/structure/inflatable/door, -/turf/open/floor{ - icon_state = "asteroidwarning"; - dir = 8 - }, +/turf/open/floor/asteroidwarning/west, /area/bigredv2/outside/virology) "aH" = ( /obj/structure/machinery/light{ dir = 4 }, /obj/structure/inflatable, -/turf/open/floor{ - icon_state = "asteroidwarning"; - dir = 4 - }, +/turf/open/floor/asteroidwarning/east, /area/bigredv2/outside/virology) "aI" = ( /obj/structure/inflatable/door, -/turf/open/floor{ - icon_state = "asteroidwarning"; - dir = 4 - }, +/turf/open/floor/asteroidwarning/east, /area/bigredv2/outside/nw) "aJ" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "asteroidwarning"; - dir = 8 - }, +/turf/open/floor/asteroidwarning/west, /area/bigredv2/outside/virology) "aK" = ( -/turf/open/floor{ - icon_state = "asteroidwarning"; - dir = 4 - }, +/turf/open/floor/asteroidwarning/east, /area/bigredv2/outside/virology) "aM" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/structure/inflatable/popped/door, -/turf/open/floor{ - icon_state = "asteroidfloor"; - dir = 1 - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/virology) "aN" = ( /obj/effect/decal/cleanable/ash, -/turf/open/mars_cave{ - icon_state = "mars_dirt_5" - }, +/turf/open/mars_cave/mars_dirt_5, /area/bigredv2/outside/virology) "aO" = ( /obj/effect/landmark/hunter_secondary, -/turf/open/floor{ - icon_state = "asteroidfloor"; - dir = 1 - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/virology) "aR" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -246,10 +163,7 @@ id = "viro"; name = "Virology Lockdown" }, -/turf/open/floor{ - icon_state = "asteroidfloor"; - dir = 1 - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/virology) "aU" = ( /turf/open/mars, @@ -263,41 +177,27 @@ dir = 4 }, /obj/structure/inflatable/door, -/turf/open/floor{ - icon_state = "asteroidfloor"; - dir = 1 - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/nw) "aX" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "asteroidwarning"; - dir = 10 - }, +/turf/open/floor/asteroidwarning/southwest, /area/bigredv2/outside/virology) "aY" = ( /obj/structure/sign/safety/biohazard, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/bigredv2/outside/virology) "aZ" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/bigredv2/outside/virology) "ba" = ( /obj/structure/machinery/light, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/bigredv2/outside/virology) "bb" = ( -/turf/open/mars{ - icon_state = "mars_dirt_14" - }, +/turf/open/mars/mars_dirt_14, /area/bigredv2/outside/virology) "bc" = ( /turf/closed/wall/solaris/rock, @@ -311,10 +211,7 @@ dir = 1; name = "\improper Virology Lab Decontamination" }, -/turf/open/floor{ - icon_state = "warnwhite"; - dir = 1 - }, +/turf/open/floor/warnwhite/north, /area/bigredv2/outside/virology) "bf" = ( /obj/effect/decal/cleanable/blood{ @@ -324,73 +221,47 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "asteroidfloor"; - dir = 1 - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/nw) "bg" = ( /obj/structure/inflatable, -/turf/open/mars{ - icon_state = "mars_dirt_11" - }, +/turf/open/mars/mars_dirt_11, /area/bigredv2/outside/virology) "bj" = ( /obj/structure/inflatable, -/turf/open/floor{ - icon_state = "asteroidwarning"; - dir = 6 - }, +/turf/open/floor/asteroidwarning/southeast, /area/bigredv2/outside/nw) "bk" = ( /obj/structure/inflatable/door, -/turf/open/floor{ - icon_state = "asteroidwarning"; - dir = 10 - }, +/turf/open/floor/asteroidwarning/southwest, /area/bigredv2/outside/virology) "bl" = ( /obj/structure/inflatable, -/turf/open/floor{ - icon_state = "asteroidwarning"; - dir = 9 - }, +/turf/open/floor/asteroidwarning/northwest, /area/bigredv2/outside/virology) "bm" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/inflatable, -/turf/open/floor{ - icon_state = "asteroidwarning"; - dir = 1 - }, +/turf/open/floor/asteroidwarning/north, /area/bigredv2/outside/virology) "bn" = ( /obj/structure/inflatable, -/turf/open/floor{ - icon_state = "asteroidwarning"; - dir = 8 - }, +/turf/open/floor/asteroidwarning/west, /area/bigredv2/outside/virology) "bo" = ( /obj/structure/closet/bodybag{ icon_state = "bodybag_open" }, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/outside/virology) "bp" = ( -/turf/open/mars_cave{ - icon_state = "mars_dirt_6" - }, +/turf/open/mars_cave/mars_dirt_6, /area/bigredv2/outside/virology) "bq" = ( /obj/structure/closet/bodybag{ icon_state = "bodybag_open" }, -/turf/open/mars{ - icon_state = "mars_dirt_3" - }, +/turf/open/mars/mars_dirt_3, /area/bigredv2/outside/virology) "br" = ( /obj/structure/inflatable/popped, @@ -400,86 +271,56 @@ /obj/structure/surface/table/almayer, /obj/item/tool/surgery/scalpel, /obj/item/device/autopsy_scanner, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/outside/virology) "bt" = ( /obj/structure/bed/roller, -/turf/open/mars{ - icon_state = "mars_dirt_10" - }, +/turf/open/mars/mars_dirt_10, /area/bigredv2/outside/virology) "bu" = ( /obj/structure/bed/roller, /obj/effect/decal/cleanable/blood, -/turf/open/floor{ - icon_state = "asteroidwarning"; - dir = 9 - }, +/turf/open/floor/asteroidwarning/northwest, /area/bigredv2/outside/virology) "bv" = ( /obj/structure/inflatable/popped, -/turf/open/floor{ - icon_state = "asteroidwarning"; - dir = 1 - }, +/turf/open/floor/asteroidwarning/north, /area/bigredv2/outside/virology) "bw" = ( /obj/structure/bed/roller, -/turf/open/floor{ - icon_state = "asteroidwarning"; - dir = 1 - }, +/turf/open/floor/asteroidwarning/north, /area/bigredv2/outside/virology) "bx" = ( /obj/structure/inflatable/popped, -/turf/open/mars{ - icon_state = "mars_dirt_10" - }, +/turf/open/mars/mars_dirt_10, /area/bigredv2/outside/virology) "by" = ( /obj/structure/inflatable/popped/door, /obj/effect/decal/cleanable/blood{ icon_state = "gib6" }, -/turf/open/floor{ - icon_state = "asteroidwarning"; - dir = 8 - }, +/turf/open/floor/asteroidwarning/west, /area/bigredv2/outside/virology) "bz" = ( /obj/structure/inflatable, -/turf/open/floor{ - icon_state = "asteroidfloor"; - dir = 1 - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/virology) "bA" = ( /obj/structure/inflatable/door, -/turf/open/floor{ - icon_state = "asteroidfloor"; - dir = 1 - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/virology) "bE" = ( /obj/structure/bed/chair/office/light{ dir = 4 }, -/turf/open/floor{ - icon_state = "asteroidfloor"; - dir = 1 - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/virology) "bF" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/med_data/laptop{ dir = 8 }, -/turf/open/floor{ - icon_state = "asteroidwarning"; - dir = 5 - }, +/turf/open/floor/asteroidwarning/northeast, /area/bigredv2/outside/virology) "bG" = ( /obj/structure/surface/table/almayer, @@ -487,39 +328,25 @@ /obj/item/storage/syringe_case/regular{ pixel_y = 10 }, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/bigredv2/outside/virology) "bH" = ( /obj/structure/surface/table/almayer, -/obj/item/handcuffs, -/turf/open/floor{ - dir = 6; - icon_state = "asteroidwarning" - }, +/obj/item/restraint/handcuffs, +/turf/open/floor/asteroidwarning/southeast, /area/bigredv2/outside/virology) "lB" = ( -/turf/open/floor{ - dir = 6; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/southeast, /area/bigredv2/outside/virology) "qP" = ( /obj/structure/inflatable/popped/door, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/bigredv2/outside/nw) "rG" = ( -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/bigredv2/outside/nw) "uN" = ( -/turf/open/mars_cave{ - icon_state = "mars_dirt_5" - }, +/turf/open/mars_cave/mars_dirt_5, /area/bigredv2/outside/virology) "zC" = ( /obj/structure/machinery/door/poddoor/almayer/open{ @@ -527,22 +354,14 @@ id = "viro"; name = "Virology Lockdown" }, -/turf/open/floor{ - icon_state = "asteroidwarning"; - dir = 1 - }, +/turf/open/floor/asteroidwarning/north, /area/bigredv2/outside/virology) "FK" = ( /obj/structure/inflatable, -/turf/open/floor{ - icon_state = "asteroidwarning"; - dir = 4 - }, +/turf/open/floor/asteroidwarning/east, /area/bigredv2/outside/virology) "GE" = ( -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/bigredv2/outside/virology) "Kk" = ( /obj/structure/machinery/door/poddoor/almayer/open{ @@ -550,35 +369,23 @@ id = "viro"; name = "Virology Lockdown" }, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/bigredv2/outside/virology) "Kv" = ( /obj/item/weapon/gun/flamer, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/outside/virology) "Po" = ( /obj/structure/inflatable, -/turf/open/floor{ - icon_state = "asteroidwarning"; - dir = 5 - }, +/turf/open/floor/asteroidwarning/northeast, /area/bigredv2/outside/virology) "Ry" = ( /obj/effect/decal/cleanable/ash, -/turf/open/mars_cave{ - icon_state = "mars_cave_14" - }, +/turf/open/mars_cave/mars_cave_14, /area/bigredv2/outside/virology) "Vr" = ( /obj/structure/inflatable/popped, -/turf/open/floor{ - icon_state = "asteroidfloor"; - dir = 1 - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/virology) (1,1,1) = {" diff --git a/maps/map_files/BigRed/sprinkles/5+gruesome_medicaleast.dmm b/maps/map_files/BigRed/sprinkles/5+gruesome_medicaleast.dmm deleted file mode 100644 index 96ed195a9bee..000000000000 --- a/maps/map_files/BigRed/sprinkles/5+gruesome_medicaleast.dmm +++ /dev/null @@ -1,53 +0,0 @@ -//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE -"a" = ( -/obj/item/prop/helmetgarb/rosary{ - pixel_y = 6 - }, -/turf/template_noop, -/area/template_noop) -"d" = ( -/obj/item/clothing/head/soft/blue{ - pixel_x = 5 - }, -/turf/template_noop, -/area/template_noop) -"g" = ( -/obj/item/weapon/gun/pistol/holdout{ - pixel_x = -4 - }, -/turf/template_noop, -/area/template_noop) -"A" = ( -/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/template_noop, -/area/template_noop) -"K" = ( -/obj/item/limb/arm/l_arm{ - dir = 8 - }, -/obj/item/limb/arm/r_arm, -/obj/item/limb/foot/l_foot{ - dir = 1; - pixel_y = 21 - }, -/obj/item/limb/head{ - dir = 4; - pixel_x = 6 - }, -/obj/effect/decal/cleanable/blood, -/turf/template_noop, -/area/template_noop) -"M" = ( -/turf/template_noop, -/area/template_noop) - -(1,1,1) = {" -d -A -a -"} -(2,1,1) = {" -K -g -M -"} diff --git a/maps/map_files/BigRed/sprinkles/5.eta_carp.dmm b/maps/map_files/BigRed/sprinkles/5.eta_carp.dmm index f3fa4dbcc6e9..51e1ab45af22 100644 --- a/maps/map_files/BigRed/sprinkles/5.eta_carp.dmm +++ b/maps/map_files/BigRed/sprinkles/5.eta_carp.dmm @@ -2,9 +2,7 @@ "a" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/eta/xenobiology) "b" = ( /turf/closed/wall/solaris/reinforced, @@ -13,25 +11,18 @@ /turf/closed/wall/solaris, /area/bigredv2/caves/eta/xenobiology) "d" = ( -/turf/open/floor{ - dir = 8; - icon_state = "darkredcorners2" - }, +/turf/open/floor/darkredcorners2/west, /area/bigredv2/caves/eta/xenobiology) "e" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/eta/xenobiology) "f" = ( /obj/structure/machinery/light{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "darkredcorners2" - }, +/turf/open/floor/darkredcorners2, /area/bigredv2/caves/eta/xenobiology) "g" = ( /turf/open/mars, @@ -48,31 +39,21 @@ /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/west, /area/bigredv2/caves/eta/xenobiology) "k" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/eta/xenobiology) "l" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "darkredcorners2" - }, +/turf/open/floor/darkredcorners2, /area/bigredv2/caves/eta/xenobiology) "m" = ( /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/east, /area/bigredv2/caves/eta/xenobiology) "n" = ( /obj/item/toy/beach_ball, @@ -91,20 +72,14 @@ /obj/structure/machinery/door/airlock/almayer/research/glass/colony{ name = "\improper Eta Lab Cell" }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/eta/xenobiology) "r" = ( -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/eta/xenobiology) "s" = ( /obj/effect/landmark/monkey_spawn, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/caves/eta/xenobiology) "t" = ( /mob/living/simple_animal/hostile/carp{ @@ -124,10 +99,7 @@ dir = 8 }, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor{ - dir = 8; - icon_state = "darkredcorners2" - }, +/turf/open/floor/darkredcorners2/west, /area/bigredv2/caves/eta/xenobiology) "w" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, @@ -143,59 +115,39 @@ }, /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor{ - icon_state = "darkredcorners2" - }, +/turf/open/floor/darkredcorners2, /area/bigredv2/caves/eta/xenobiology) "z" = ( -/turf/open/mars{ - icon_state = "mars_dirt_12" - }, +/turf/open/mars/mars_dirt_12, /area/bigredv2/caves/eta/xenobiology) "A" = ( -/turf/open/floor{ - icon_state = "darkredcorners2" - }, +/turf/open/floor/darkredcorners2, /area/bigredv2/caves/eta/xenobiology) "B" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/mars_cave{ - icon_state = "mars_dirt_7" - }, +/turf/open/mars_cave/mars_dirt_7, /area/bigredv2/caves/eta/xenobiology) "C" = ( /obj/effect/landmark/xeno_spawn, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/mars{ - icon_state = "mars_dirt_10" - }, +/turf/open/mars/mars_dirt_10, /area/bigredv2/caves/eta/xenobiology) "D" = ( -/turf/open/mars{ - icon_state = "mars_dirt_10" - }, +/turf/open/mars/mars_dirt_10, /area/bigredv2/caves/eta/xenobiology) "E" = ( -/turf/open/mars_cave{ - icon_state = "mars_dirt_6" - }, +/turf/open/mars_cave/mars_dirt_6, /area/bigredv2/caves/eta/xenobiology) "F" = ( -/turf/open/mars_cave{ - icon_state = "mars_dirt_5" - }, +/turf/open/mars_cave/mars_dirt_5, /area/bigredv2/caves/eta/xenobiology) "G" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_22" - }, +/turf/open/mars_cave/mars_cave_22, /area/bigredv2/caves/eta/xenobiology) "H" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_7" - }, +/turf/open/mars_cave/mars_cave_7, /area/bigredv2/caves/eta/xenobiology) "O" = ( /obj/effect/decal/cleanable/dirt, diff --git a/maps/map_files/BigRed/sprinkles/70.se-checkpoint.dmm b/maps/map_files/BigRed/sprinkles/70.se-checkpoint.dmm index 8907ab630fcb..16bdac130168 100644 --- a/maps/map_files/BigRed/sprinkles/70.se-checkpoint.dmm +++ b/maps/map_files/BigRed/sprinkles/70.se-checkpoint.dmm @@ -17,7 +17,6 @@ "bp" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ icon_state = "door_locked"; - locked = 0; name = "\improper Checkpoint Office" }, /turf/open/floor, @@ -29,22 +28,16 @@ /area/bigred/ground/security) "cO" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/north, /area/bigredv2/outside/filtration_cave_cas) "dz" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/floor{ - dir = 6; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/southeast, /area/bigredv2/outside/filtration_cave_cas) "el" = ( /obj/structure/surface/table/almayer, -/obj/item/handcuffs, +/obj/item/restraint/handcuffs, /turf/open/floor, /area/bigred/ground/security) "ge" = ( @@ -57,15 +50,11 @@ name = "\improper Checkpoint Office" }, /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigred/ground/security) "ie" = ( /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/outside/filtration_cave_cas) "kd" = ( /obj/structure/surface/table/almayer, @@ -78,47 +67,32 @@ /area/bigred/ground/security) "kG" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 6; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/southeast, /area/bigredv2/outside/filtration_cave_cas) "kL" = ( /obj/structure/machinery/light{ dir = 1 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 9; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/northwest, /area/bigredv2/outside/filtration_cave_cas) "kX" = ( /turf/closed/wall/solaris/reinforced, /area/bigred/ground/security) "mp" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 9; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/northwest, /area/bigredv2/outside/filtration_cave_cas) "oT" = ( /turf/closed/wall/solaris/reinforced, /area/bigredv2/outside/filtration_cave_cas) "pb" = ( /obj/item/tool/warning_cone, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/north, /area/bigredv2/outside/filtration_cave_cas) "pJ" = ( /obj/item/tool/warning_cone, -/turf/open/floor{ - dir = 5; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/northeast, /area/bigredv2/outside/se) "pV" = ( /obj/structure/surface/table/almayer, @@ -127,9 +101,7 @@ /area/bigred/ground/security) "qg" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/bigredv2/outside/filtration_cave_cas) "qy" = ( /obj/item/device/radio, @@ -152,9 +124,7 @@ id = "filtration"; name = "Filtration Lockdown" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/filtration_cave_cas) "uk" = ( /obj/effect/decal/cleanable/dirt, @@ -170,9 +140,7 @@ dir = 1; name = "\improper Checkpoint Office" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigred/ground/security) "vH" = ( /obj/effect/decal/cleanable/blood, @@ -185,10 +153,7 @@ /area/bigred/ground/security) "wi" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/east, /area/bigredv2/outside/filtration_cave_cas) "xa" = ( /turf/open/floor/greengrid, @@ -210,68 +175,42 @@ /area/bigred/ground/security) "zE" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/west, /area/bigredv2/outside/filtration_cave_cas) "Aq" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/filtration_cave_cas) "AY" = ( /turf/open/floor, /area/bigred/ground/security) "AZ" = ( -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/north, /area/bigredv2/outside/filtration_cave_cas) "EV" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/east, /area/bigredv2/outside/se) "Ge" = ( /obj/effect/landmark/crap_item, -/turf/open/floor{ - dir = 5; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/northeast, /area/bigredv2/outside/filtration_cave_cas) "Gm" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/north, /area/bigredv2/outside/filtration_cave_cas) "GJ" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/east, /area/bigredv2/outside/filtration_cave_cas) "HH" = ( -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/bigredv2/outside/filtration_cave_cas) "Ih" = ( -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/filtration_cave_cas) "IS" = ( /obj/structure/filingcabinet, @@ -305,17 +244,11 @@ /turf/open/floor, /area/bigred/ground/security) "OD" = ( -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/east, /area/bigredv2/outside/se) "OM" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 10; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/southwest, /area/bigredv2/outside/filtration_cave_cas) "Pf" = ( /obj/effect/decal/cleanable/blood, @@ -332,9 +265,7 @@ id = "filtration"; name = "Filtration Lockdown" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/bigredv2/outside/filtration_cave_cas) "Qo" = ( /obj/structure/blocker/forcefield/multitile_vehicles, @@ -354,16 +285,10 @@ /area/bigred/ground/security) "Ue" = ( /obj/structure/machinery/camera/autoname, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/north, /area/bigredv2/outside/filtration_cave_cas) "Vg" = ( -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/west, /area/bigredv2/outside/filtration_cave_cas) "Vn" = ( /obj/structure/surface/table/almayer, @@ -376,16 +301,10 @@ /turf/open/floor, /area/bigred/ground/security) "Wa" = ( -/turf/open/floor{ - dir = 6; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/southeast, /area/bigredv2/outside/se) "XU" = ( -/turf/open/floor{ - dir = 10; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/southwest, /area/bigredv2/outside/filtration_cave_cas) "Yo" = ( /obj/structure/surface/rack, @@ -402,10 +321,7 @@ "Zu" = ( /obj/effect/landmark/hunter_primary, /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/floor{ - dir = 5; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/northeast, /area/bigredv2/outside/filtration_cave_cas) "ZK" = ( /obj/effect/landmark/crap_item, diff --git a/maps/map_files/BigRed/standalone/crashlanding-eva.dmm b/maps/map_files/BigRed/standalone/crashlanding-eva.dmm index fb08fd251c0a..c473dc6b8580 100644 --- a/maps/map_files/BigRed/standalone/crashlanding-eva.dmm +++ b/maps/map_files/BigRed/standalone/crashlanding-eva.dmm @@ -18,9 +18,7 @@ /area/bigredv2/caves_north) "av" = ( /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/mars{ - icon_state = "mars_dirt_11" - }, +/turf/open/mars/mars_dirt_11, /area/bigredv2/caves_north) "aw" = ( /turf/closed/shuttle/ert{ @@ -47,9 +45,7 @@ /area/bigredv2/outside/general_offices) "aE" = ( /obj/structure/computerframe, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/medium_grey_single_wide_up_to_down, /area/bigredv2/outside/general_offices) "aF" = ( /turf/closed/shuttle/ert{ @@ -75,26 +71,18 @@ "aL" = ( /obj/structure/machinery/washing_machine, /obj/item/clothing/under/darkred, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/bigredv2/outside/general_offices) "aM" = ( /obj/structure/machinery/washing_machine, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/bigredv2/outside/general_offices) "aN" = ( /obj/structure/machinery/washing_machine, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/general_offices) "aO" = ( -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/general_offices) "aP" = ( /turf/closed/shuttle/ert{ @@ -107,26 +95,18 @@ /turf/open/mars, /area/bigredv2/caves_north) "aR" = ( -/turf/open/shuttle/dropship{ - icon_state = "rasputin6" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_top_left, /area/bigredv2/outside/general_offices) "aS" = ( -/turf/open/shuttle/dropship{ - icon_state = "floor8" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_left_to_right, /area/bigredv2/outside/general_offices) "aT" = ( -/turf/open/shuttle/dropship{ - icon_state = "rasputin7" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_top_right, /area/bigredv2/outside/general_offices) "aU" = ( /obj/structure/surface/rack, /obj/item/map/big_red_map, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/medium_grey_single_wide_up_to_down, /area/bigredv2/outside/general_offices) "aV" = ( /turf/closed/shuttle/ert{ @@ -134,20 +114,14 @@ }, /area/bigredv2/outside/general_offices) "aW" = ( -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, +/turf/open/floor/plating/panelscorched, /area/bigredv2/outside/general_offices) "aX" = ( -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3, /area/bigredv2/outside/general_offices) "aY" = ( /obj/structure/machinery/suit_storage_unit/carbon_unit, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/general_offices) "aZ" = ( /obj/structure/window_frame/solaris, @@ -159,88 +133,62 @@ /obj/item/stack/sheet/mineral/plastic, /obj/item/stack/sheet/mineral/plastic, /obj/item/stack/sheet/mineral/plastic, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/general_offices) "bb" = ( -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/general_offices) "bc" = ( /obj/structure/surface/rack, /obj/item/device/mass_spectrometer/adv, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/general_offices) "bd" = ( -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/bigredv2/outside/general_offices) "be" = ( /obj/item/clothing/under/darkred, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/bigredv2/outside/general_offices) "bf" = ( /turf/open/floor/plating, /area/bigredv2/outside/general_offices) "bg" = ( /obj/structure/machinery/door/airlock/almayer/generic, -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/can_surgery, /area/bigredv2/outside/general_offices) "bh" = ( -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/medium_grey_single_wide_up_to_down, /area/bigredv2/outside/general_offices) "bi" = ( /obj/item/paper/crumpled/bloody, /obj/effect/decal/cleanable/blood{ icon_state = "u_psycopath_l" }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_up_to_down, /area/bigredv2/outside/general_offices) "bj" = ( /obj/structure/bed/chair/dropship/passenger, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/medium_grey_single_wide_up_to_down, /area/bigredv2/outside/general_offices) "bk" = ( -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_up_to_down, /area/bigredv2/outside/general_offices) "bl" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/general_offices) "bm" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony{ name = "\improper Dormitories EVA" }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/general_offices) "bo" = ( /obj/structure/machinery/door/airlock/almayer/medical/glass/colony{ name = "\improper Dormitories Lavatory" }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/bigredv2/outside/general_offices) "bp" = ( /obj/structure/surface/table, @@ -249,9 +197,7 @@ /area/bigredv2/outside/general_offices) "bq" = ( /obj/effect/landmark/corpsespawner/wygoon, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/medium_grey_single_wide_up_to_down, /area/bigredv2/outside/general_offices) "br" = ( /turf/closed/shuttle/ert{ @@ -262,22 +208,16 @@ /obj/structure/bed/chair/dropship/passenger{ dir = 4 }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/medium_grey_single_wide_up_to_down, /area/bigredv2/outside/general_offices) "bt" = ( /obj/effect/decal/cleanable/blood, /obj/effect/landmark/corpsespawner/wygoon, -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_up_to_down, /area/bigredv2/outside/general_offices) "bu" = ( /obj/effect/decal/cleanable/blood, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/medium_grey_single_wide_up_to_down, /area/bigredv2/outside/general_offices) "bv" = ( /obj/structure/bed/chair/dropship/passenger{ @@ -287,9 +227,7 @@ dir = 1; icon_state = "gib6" }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/medium_grey_single_wide_up_to_down, /area/bigredv2/outside/general_offices) "bw" = ( /turf/closed/shuttle/ert{ @@ -301,33 +239,25 @@ /obj/item/stack/sheet/mineral/phoron{ amount = 25 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/general_offices) "by" = ( /obj/structure/surface/rack, /obj/item/stack/sheet/mineral/uranium{ amount = 50 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/general_offices) "bz" = ( /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/caves_north) "bA" = ( /obj/structure/surface/table, /turf/open/floor, /area/bigredv2/outside/general_offices) "bD" = ( -/turf/open/floor{ - icon_state = "wall_thermite" - }, +/turf/open/floor/wall_thermite, /area/bigredv2/outside/general_offices) "bE" = ( /turf/closed/shuttle/ert{ @@ -339,9 +269,7 @@ dir = 1; icon_state = "gib6" }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_up_to_down, /area/bigredv2/outside/general_offices) "bG" = ( /turf/closed/shuttle/ert{ @@ -350,29 +278,21 @@ /area/bigredv2/outside/general_offices) "bH" = ( /obj/structure/dispenser/oxygen, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/general_offices) "bI" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/general_offices) "bK" = ( /obj/structure/machinery/washing_machine, /obj/item/clothing/under/lightbrown, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/bigredv2/outside/general_offices) "bL" = ( /obj/structure/machinery/washing_machine, /obj/item/clothing/under/brown, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/bigredv2/outside/general_offices) "bM" = ( /turf/closed/shuttle/ert{ @@ -386,15 +306,11 @@ /area/bigredv2/outside/general_offices) "bO" = ( /obj/effect/landmark/crap_item, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/general_offices) "bP" = ( /obj/structure/surface/table, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/general_offices) "bQ" = ( /obj/effect/decal/cleanable/dirt, @@ -402,15 +318,11 @@ /obj/item/stack/sheet/mineral/uranium{ amount = 50 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/general_offices) "bR" = ( /obj/item/stack/sheet/plasteel, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/general_offices) "bS" = ( /obj/structure/machinery/light{ @@ -424,21 +336,15 @@ /obj/item/stack/sheet/mineral/phoron{ amount = 25 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/general_offices) "bT" = ( /obj/structure/girder, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/general_offices) "bU" = ( /obj/structure/girder, -/turf/open/floor{ - icon_state = "wall_thermite" - }, +/turf/open/floor/wall_thermite, /area/bigredv2/outside/general_offices) "bV" = ( /obj/structure/surface/rack, @@ -451,27 +357,19 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/general_offices) "bX" = ( /obj/structure/machinery/cm_vending/sorted/tech/electronics_storage, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/general_offices) "bY" = ( /obj/structure/machinery/cm_vending/sorted/tech/comp_storage, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/general_offices) "bZ" = ( /obj/structure/machinery/cm_vending/sorted/tech/tool_storage, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/general_offices) "ca" = ( /turf/closed/shuttle/ert{ @@ -480,26 +378,18 @@ /area/bigredv2/outside/general_offices) "cb" = ( /obj/structure/surface/rack, -/obj/item/restraints, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/obj/item/xeno_restraints, +/turf/open/shuttle/dropship/can_surgery/medium_grey_single_wide_up_to_down, /area/bigredv2/outside/general_offices) "cc" = ( -/turf/open/shuttle/dropship{ - icon_state = "rasputin4" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_bottom_left, /area/bigredv2/outside/general_offices) "cd" = ( -/turf/open/shuttle/dropship{ - icon_state = "rasputin8" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_bottom_right, /area/bigredv2/outside/general_offices) "ce" = ( /obj/structure/surface/rack, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/medium_grey_single_wide_up_to_down, /area/bigredv2/outside/general_offices) "cf" = ( /turf/closed/shuttle/ert{ @@ -508,15 +398,11 @@ /area/bigredv2/outside/general_offices) "cg" = ( /obj/effect/spawner/gibspawner/human, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/general_offices) "ch" = ( /obj/structure/closet/l3closet, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/general_offices) "ci" = ( /obj/structure/surface/rack, @@ -526,17 +412,14 @@ pixel_x = 4; pixel_y = 4 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/general_offices) "cj" = ( -/obj/structure/surface/rack, -/obj/item/stack/sheet/mineral/diamond, -/obj/item/clothing/under/redcoat, -/turf/open/floor{ - icon_state = "dark" +/obj/effect/decal/cleanable/dirt, +/obj/structure/machinery/light{ + dir = 1 }, +/turf/open/floor, /area/bigredv2/outside/general_offices) "cl" = ( /obj/structure/surface/rack, @@ -547,9 +430,7 @@ "cm" = ( /obj/effect/spawner/gibspawner/human, /obj/effect/decal/cleanable/blood, -/turf/open/shuttle/dropship{ - icon_state = "floor8" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_left_to_right, /area/bigredv2/outside/general_offices) "cn" = ( /turf/closed/shuttle/ert{ @@ -574,9 +455,7 @@ "cr" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/general_offices) "cs" = ( /turf/closed/shuttle/ert{ @@ -587,9 +466,7 @@ "cu" = ( /obj/effect/decal/cleanable/blood, /obj/effect/decal/remains, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/medium_grey_single_wide_up_to_down, /area/bigredv2/outside/general_offices) "cv" = ( /turf/closed/shuttle/ert{ @@ -600,23 +477,17 @@ "cw" = ( /obj/structure/surface/rack, /obj/item/stack/sheet/mineral/gold, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/general_offices) "cx" = ( /obj/structure/machinery/camera/autoname, /obj/item/stack/sheet/plasteel, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/general_offices) "cy" = ( /obj/structure/surface/rack, /obj/item/stack/sheet/mineral/diamond, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/general_offices) "cA" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ @@ -626,9 +497,7 @@ /area/bigredv2/outside/general_offices) "cB" = ( /obj/effect/decal/cleanable/blood/oil/streak, -/turf/open/floor{ - icon_state = "wall_thermite" - }, +/turf/open/floor/wall_thermite, /area/bigredv2/outside/general_offices) "cC" = ( /turf/closed/shuttle/ert{ @@ -690,38 +559,32 @@ dir = 8; health = 25000 }, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3, /area/bigredv2/outside/general_offices) "cN" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, -/area/bigredv2/outside/general_offices) +/turf/open/floor/plating/panelscorched, +/area/bigredv2/outside/ne) "cO" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating{ - icon_state = "platingdmg3" +/obj/structure/window/framed/solaris, +/obj/structure/machinery/door/poddoor/shutters/almayer{ + dir = 4; + id = "Dormitories"; + name = "\improper Dormitories Shutters" }, +/turf/open/floor/plating, /area/bigredv2/outside/general_offices) "cP" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor, -/area/bigredv2/outside/general_offices) -"cQ" = ( -/obj/structure/machinery/light{ - dir = 1 +/obj/structure/barricade/wooden{ + desc = "This barricade is heavily reinforced. Nothing short of blasting it open seems like it'll do the trick, that or melting the breams supporting it..."; + dir = 8; + health = 25000 }, -/obj/structure/machinery/vending/cola, /turf/open/floor, /area/bigredv2/outside/general_offices) "cU" = ( /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/mars_cave{ - icon_state = "mars_dirt_5" - }, +/turf/open/mars_cave/mars_dirt_5, /area/bigredv2/caves_north) "cV" = ( /obj/item/stack/sheet/metal, @@ -729,49 +592,32 @@ /area/bigredv2/caves_north) "cW" = ( /obj/item/stack/rods, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3, /area/bigredv2/outside/general_offices) "cX" = ( /obj/effect/decal/cleanable/blood{ dir = 1; icon_state = "gib6" }, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/general_offices) "cY" = ( -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/outside/general_offices) "cZ" = ( /obj/effect/decal/cleanable/blood{ dir = 1; icon_state = "gib6" }, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, -/area/bigredv2/outside/general_offices) -"da" = ( -/obj/structure/machinery/vending/cigarette/colony, -/turf/open/floor, +/turf/open/floor/plating/panelscorched, /area/bigredv2/outside/general_offices) "dc" = ( /obj/item/stack/rods, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/general_offices) "dd" = ( /obj/structure/machinery/light, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3, /area/bigredv2/outside/general_offices) "de" = ( /obj/effect/decal/cleanable/dirt, @@ -779,19 +625,11 @@ dir = 1; icon_state = "gib6" }, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/general_offices) "df" = ( /obj/structure/machinery/light, -/turf/open/floor{ - icon_state = "platingdmg1" - }, -/area/bigredv2/outside/general_offices) -"dg" = ( -/obj/structure/machinery/vending/snack, -/turf/open/floor, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/general_offices) "di" = ( /obj/structure/bed/chair{ @@ -804,84 +642,54 @@ dir = 1; name = "\improper Dormitories Bedroom" }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/general_offices) "dk" = ( /obj/effect/decal/cleanable/blood{ dir = 1; icon_state = "gib6" }, -/turf/open/floor{ - icon_state = "wall_thermite" - }, +/turf/open/floor/wall_thermite, /area/bigredv2/outside/general_offices) "dl" = ( /obj/item/stack/sheet/wood, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/general_offices) "dm" = ( -/turf/open/floor/plating{ - icon_state = "wood" - }, +/turf/open/floor/plating/wood, /area/bigredv2/outside/general_offices) "dn" = ( /obj/structure/surface/table, -/turf/open/floor/plating{ - icon_state = "wood" - }, +/turf/open/floor/plating/wood, /area/bigredv2/outside/general_offices) "do" = ( -/turf/open/floor/plating{ - icon_state = "wood-broken5" - }, +/turf/open/floor/plating/wood_broken5, /area/bigredv2/outside/general_offices) "dp" = ( /obj/structure/surface/table, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/general_offices) "dq" = ( -/turf/open/floor/plating{ - icon_state = "wood-broken6" - }, +/turf/open/floor/plating/wood_broken6, /area/bigredv2/outside/general_offices) "dr" = ( -/turf/open/floor/plating{ - icon_state = "wood-broken3" - }, +/turf/open/floor/plating/wood_broken3, /area/bigredv2/outside/general_offices) "ds" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/spawner/gibspawner/human, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/general_offices) "dt" = ( /obj/effect/decal/cleanable/blood{ dir = 1; icon_state = "gib6" }, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, -/area/bigredv2/outside/general_offices) +/turf/open/floor/plating/platingdmg3, +/area/bigredv2/outside/ne) "du" = ( -/turf/open/floor/plating{ - icon_state = "wood-broken" - }, -/area/bigredv2/outside/general_offices) -"dv" = ( -/obj/structure/surface/table, -/turf/open/floor/plating{ - icon_state = "wood-broken5" - }, -/area/bigredv2/outside/general_offices) +/turf/open/floor/plating/panelscorched, +/area/bigredv2/outside/ne) "dx" = ( /turf/closed/wall/solaris, /area/bigredv2/outside/bar) @@ -889,311 +697,151 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/plating{ - icon_state = "wood" - }, +/turf/open/floor/plating/wood, /area/bigredv2/outside/general_offices) "dz" = ( /obj/structure/bed, -/turf/open/floor/plating{ - icon_state = "wood" - }, +/turf/open/floor/plating/wood, /area/bigredv2/outside/general_offices) "dA" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/plating{ - icon_state = "wood-broken2" - }, +/turf/open/floor/plating/wood_broken2, /area/bigredv2/outside/general_offices) "dB" = ( /obj/structure/bed, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/bigredv2/outside/general_offices) "dC" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/plating{ - icon_state = "wood-broken3" - }, +/turf/open/floor/plating/wood_broken3, /area/bigredv2/outside/general_offices) "dD" = ( -/turf/open/floor/plating{ - icon_state = "wood-broken4" - }, +/turf/open/floor/plating/wood_broken4, /area/bigredv2/outside/general_offices) "dE" = ( /obj/effect/decal/cleanable/blood{ dir = 1; icon_state = "gib6" }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, -/area/bigredv2/outside/general_offices) -"dF" = ( -/obj/structure/bed, -/turf/open/floor/plating{ - icon_state = "wood-broken6" - }, -/area/bigredv2/outside/general_offices) -"dG" = ( -/turf/open/mars, -/area/bigredv2/outside/ne) -"dQ" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/outside/ne) "dS" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/ne) "dT" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, +/turf/open/floor/plating/panelscorched, /area/bigredv2/outside/ne) "dU" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/ne) "dV" = ( -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, -/area/bigredv2/outside/ne) -"dW" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/blood{ - dir = 1; - icon_state = "gib6" - }, -/turf/open/mars, -/area/bigredv2/outside/ne) -"dX" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/mars, -/area/bigredv2/outside/ne) -"ea" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/plating/platingdmg3, /area/bigredv2/outside/ne) "eb" = ( -/turf/open/floor{ - icon_state = "wall_thermite" - }, +/turf/open/floor/wall_thermite, /area/bigredv2/outside/hydroponics) "ec" = ( -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3, /area/bigredv2/outside/hydroponics) "ed" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/hydroponics) "ee" = ( /obj/effect/decal/cleanable/blood{ dir = 1; icon_state = "gib6" }, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3, /area/bigredv2/outside/hydroponics) "ef" = ( -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/hydroponics) "eg" = ( /obj/item/stack/sheet/wood, -/turf/open/floor/plating{ - icon_state = "wood-broken2" - }, +/turf/open/floor/plating/panelscorched, /area/bigredv2/outside/general_offices) -"eh" = ( -/turf/closed/wall/solaris, -/area/bigredv2/outside/hydroponics) -"ej" = ( -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, -/area/bigredv2/outside/ne) -"el" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, -/area/bigredv2/outside/ne) "em" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3, /area/bigredv2/outside/hydroponics) "en" = ( /obj/effect/spawner/gibspawner/human, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, -/area/bigredv2/outside/hydroponics) -"eo" = ( -/obj/structure/machinery/portable_atmospherics/hydroponics, -/turf/open/floor{ - icon_state = "whitegreenfull" - }, +/turf/open/floor/plating/platingdmg3, /area/bigredv2/outside/hydroponics) -"ep" = ( -/obj/structure/window/framed/solaris, -/turf/open/floor/plating, -/area/bigredv2/outside/hydroponics) -"ey" = ( -/turf/open/mars{ - icon_state = "mars_dirt_8" - }, -/area/bigredv2/outside/ne) -"ez" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/mars{ - icon_state = "mars_dirt_3" - }, -/area/bigredv2/outside/ne) "eA" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3, /area/bigredv2/outside/hydroponics) "eB" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3, /area/bigredv2/outside/hydroponics) "eC" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, -/area/bigredv2/outside/hydroponics) -"eD" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor, -/area/bigredv2/outside/hydroponics) -"eE" = ( -/turf/open/floor, +/turf/open/floor/plating/platingdmg3, /area/bigredv2/outside/hydroponics) "eF" = ( /turf/template_noop, /area/template_noop) -"eG" = ( -/obj/item/shard, -/turf/open/floor{ - icon_state = "platingdmg1" - }, -/area/bigredv2/outside/hydroponics) -"eH" = ( -/obj/structure/window_frame/solaris, -/obj/item/shard, -/turf/open/floor/plating, -/area/bigredv2/outside/hydroponics) "eI" = ( /obj/item/stack/sheet/metal, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3, /area/bigredv2/outside/hydroponics) "eJ" = ( /obj/item/stack/sheet/metal, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/general_offices) "eK" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /obj/item/stack/rods, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/general_offices) "eL" = ( /obj/structure/machinery/door/airlock/almayer/generic{ dir = 2 }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery, /area/bigredv2/outside/general_offices) "eM" = ( /obj/item/stack/rods, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/bigredv2/outside/general_offices) "eN" = ( /obj/item/stack/sheet/metal, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3, /area/bigredv2/outside/ne) "eO" = ( /obj/item/stack/rods, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3, /area/bigredv2/outside/hydroponics) -"eU" = ( -/obj/effect/spawner/gibspawner/human, -/turf/open/floor/plating{ - icon_state = "wood-broken6" - }, -/area/bigredv2/outside/general_offices) "oB" = ( /obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/general_offices) "xT" = ( /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/mars_cave{ - icon_state = "mars_dirt_6" - }, +/turf/open/mars_cave/mars_dirt_6, /area/bigredv2/caves_north) "EO" = ( /turf/closed/shuttle/ert{ @@ -1202,22 +850,16 @@ /area/bigredv2/outside/general_offices) "IB" = ( /obj/item/stack/rods, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, +/turf/open/floor/plating/panelscorched, /area/bigredv2/outside/general_offices) "Kf" = ( /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, +/turf/open/floor/plating/panelscorched, /area/bigredv2/outside/general_offices) "Zt" = ( /obj/structure/bed/chair/dropship/passenger, /obj/effect/landmark/corpsespawner/wygoon, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/medium_grey_single_wide_up_to_down, /area/bigredv2/outside/general_offices) (1,1,1) = {" @@ -1587,10 +1229,10 @@ aB aB aB aB -dQ -ea -ej -ey +eF +eF +eF +eF "} (13,1,1) = {" eF @@ -1620,8 +1262,8 @@ dC bU dS eN -el -ez +eF +eF "} (14,1,1) = {" eF @@ -1739,8 +1381,8 @@ cJ aW aO aO -aW -aW +du +du cN dV ec @@ -1773,7 +1415,7 @@ dk dt dE dt -dW +eF ee en ec @@ -1801,10 +1443,10 @@ cK bl bl eg -du -dD -cY -dX +eF +eF +eF +eF eO ec eC @@ -1832,13 +1474,13 @@ cL aW aO eK -dr -eU -aW -dX +eF +eF +eF +eF ef ec -eD +eF "} (21,1,1) = {" eF @@ -1862,14 +1504,14 @@ bD bl bO aW -bU -dc -eJ -bU -dX -eG -eo -eD +aW +eF +eF +eF +eF +eF +eF +eF "} (22,1,1) = {" eF @@ -1893,14 +1535,14 @@ eJ bl aW aO -dj -dq -dr -aB -dG -eH -eo -eE +bU +eF +eF +eF +eF +eF +eF +eF "} (23,1,1) = {" eF @@ -1925,13 +1567,13 @@ cM cM df aB -dv -dF -aB -dG -eh -ep -ep +eF +eF +eF +eF +eF +eF +eF "} (24,1,1) = {" eF @@ -1952,17 +1594,17 @@ aI aI aI aI -cN -aW -cM -aB -aB -aB +cj +aK +cP aB eF eF eF eF +eF +eF +eF "} (25,1,1) = {" eF @@ -1985,7 +1627,7 @@ cw aI cO cO -cF +cO aB eF eF @@ -2014,10 +1656,10 @@ bb bI bb aI -cF -cF -aK -aB +eF +eF +eF +eF eF eF eF @@ -2045,10 +1687,10 @@ oB bb cx aI -cP -aK -aK -aB +eF +eF +eF +eF eF eF eF @@ -2072,14 +1714,14 @@ by bb bS bb -cj +cy bb cy aI -aK -aK -aK -aB +eF +eF +eF +eF eF eF eF @@ -2107,10 +1749,10 @@ aI aI aI aI -cQ -da -dg -aB +eF +eF +eF +eF eF eF eF diff --git a/maps/map_files/BigRed/standalone/crashlanding-offices.dmm b/maps/map_files/BigRed/standalone/crashlanding-offices.dmm index e0c625805375..783caff03343 100644 --- a/maps/map_files/BigRed/standalone/crashlanding-offices.dmm +++ b/maps/map_files/BigRed/standalone/crashlanding-offices.dmm @@ -1,73 +1,43 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE "ab" = ( -/turf/open/floor{ - dir = 5; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/northeast, /area/bigredv2/outside/e) "ac" = ( -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/outside/c) "ad" = ( -/turf/open/mars{ - icon_state = "mars_dirt_3" - }, +/turf/open/mars/mars_dirt_3, /area/bigredv2/outside/c) "ae" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/c) "ag" = ( -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/west, /area/bigredv2/outside/e) "ah" = ( -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/north, /area/bigredv2/outside/c) "ai" = ( /turf/open/mars, /area/bigredv2/outside/e) "aj" = ( -/turf/open/mars{ - icon_state = "mars_dirt_12" - }, +/turf/open/mars/mars_dirt_12, /area/bigredv2/outside/e) "ak" = ( -/turf/open/mars{ - icon_state = "mars_dirt_11" - }, +/turf/open/mars/mars_dirt_11, /area/bigredv2/outside/e) "al" = ( -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/east, /area/bigredv2/outside/e) "am" = ( -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/bigredv2/outside/e) "an" = ( -/turf/open/mars{ - icon_state = "mars_dirt_9" - }, +/turf/open/mars/mars_dirt_9, /area/bigredv2/outside/c) "ao" = ( -/turf/open/floor{ - dir = 9; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/northwest, /area/bigredv2/outside/c) "ap" = ( /turf/closed/wall/solaris, @@ -77,14 +47,10 @@ /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper Office Complex" }, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, +/turf/open/floor/plating/panelscorched, /area/bigredv2/outside/office_complex) "ar" = ( -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, +/turf/open/floor/plating/panelscorched, /area/bigredv2/outside/office_complex) "as" = ( /obj/structure/window/framed/solaris, @@ -95,30 +61,21 @@ /turf/open/floor/plating, /area/bigredv2/outside/office_complex) "at" = ( -/turf/open/mars{ - icon_state = "mars_dirt_10" - }, +/turf/open/mars/mars_dirt_10, /area/bigredv2/outside/e) "au" = ( /obj/effect/landmark/crap_item, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/north, /area/bigredv2/outside/c) "av" = ( /obj/structure/machinery/vending/snack, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, +/turf/open/floor/plating/panelscorched, /area/bigredv2/outside/office_complex) "aw" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3, /area/bigredv2/outside/office_complex) "ax" = ( /obj/structure/window_frame/solaris, @@ -127,9 +84,7 @@ /area/bigredv2/outside/office_complex) "ay" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, +/turf/open/floor/plating/panelscorched, /area/bigredv2/outside/office_complex) "az" = ( /obj/structure/bed/chair/comfy/black{ @@ -142,22 +97,14 @@ name = "General Listening Channel"; pixel_x = 30 }, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3, /area/bigredv2/outside/office_complex) "aA" = ( -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/north, /area/bigredv2/outside/e) "aB" = ( /obj/effect/landmark/lv624/xeno_tunnel, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/c) "aC" = ( /turf/closed/shuttle/ert{ @@ -175,38 +122,24 @@ }, /area/bigredv2/outside/office_complex) "aF" = ( -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3, /area/bigredv2/outside/office_complex) "aG" = ( -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/e) "aH" = ( -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/west, /area/bigredv2/outside/c) "aI" = ( /obj/structure/machinery/robotic_fabricator, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/office_complex) "aJ" = ( -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/office_complex) "aK" = ( /obj/structure/machinery/mech_bay_recharge_port, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/office_complex) "aL" = ( /obj/effect/decal/mecha_wreckage/ripley/firefighter, @@ -214,9 +147,7 @@ /area/bigredv2/outside/office_complex) "aM" = ( /obj/structure/machinery/mecha_part_fabricator, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/office_complex) "aN" = ( /turf/closed/shuttle/ert{ @@ -230,9 +161,7 @@ /area/bigredv2/outside/office_complex) "aP" = ( /obj/structure/computerframe, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/medium_grey_single_wide_up_to_down, /area/bigredv2/outside/office_complex) "aQ" = ( /turf/closed/shuttle/ert{ @@ -240,14 +169,10 @@ }, /area/bigredv2/outside/office_complex) "aR" = ( -/turf/open/floor{ - icon_state = "warnwhite" - }, +/turf/open/floor/warnwhite, /area/bigredv2/outside/office_complex) "aS" = ( -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/office_complex) "aT" = ( /turf/closed/shuttle/ert{ @@ -256,23 +181,17 @@ /area/bigredv2/outside/office_complex) "aU" = ( /obj/structure/surface/rack, -/obj/item/restraints, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/obj/item/xeno_restraints, +/turf/open/shuttle/dropship/can_surgery/medium_grey_single_wide_up_to_down, /area/bigredv2/outside/office_complex) "aV" = ( -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/medium_grey_single_wide_up_to_down, /area/bigredv2/outside/office_complex) "aW" = ( /obj/structure/bed/chair/dropship/pilot{ dir = 1 }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_up_to_down, /area/bigredv2/outside/office_complex) "aX" = ( /turf/closed/shuttle/ert{ @@ -290,9 +209,7 @@ /area/bigredv2/outside/office_complex) "aZ" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/office_complex) "ba" = ( /obj/structure/window_frame/solaris, @@ -306,20 +223,14 @@ dir = 8 }, /obj/item/stack/sheet/metal, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, +/turf/open/floor/plating/panelscorched, /area/bigredv2/outside/office_complex) "bc" = ( -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_up_to_down, /area/bigredv2/outside/office_complex) "bd" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/office_complex) "be" = ( /turf/open/floor, @@ -332,23 +243,17 @@ /obj/structure/surface/rack, /obj/effect/spawner/random/tech_supply, /obj/effect/spawner/random/tech_supply, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/office_complex) "bh" = ( /obj/effect/decal/cleanable/dirt, /obj/item/trash/hotdog, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/office_complex) "bi" = ( /obj/effect/decal/cleanable/dirt, /obj/item/folder/black, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/office_complex) "bj" = ( /turf/closed/shuttle/ert{ @@ -356,32 +261,22 @@ }, /area/bigredv2/outside/office_complex) "bl" = ( -/turf/open/shuttle/dropship{ - icon_state = "rasputin6" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_top_left, /area/bigredv2/outside/office_complex) "bm" = ( -/turf/open/shuttle/dropship{ - icon_state = "floor8" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_left_to_right, /area/bigredv2/outside/office_complex) "bn" = ( -/turf/open/shuttle/dropship{ - icon_state = "rasputin13" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_middle, /area/bigredv2/outside/office_complex) "bo" = ( -/turf/open/shuttle/dropship{ - icon_state = "rasputin7" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_top_right, /area/bigredv2/outside/office_complex) "bp" = ( /obj/structure/bed/chair/dropship/passenger{ dir = 8 }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/medium_grey_single_wide_up_to_down, /area/bigredv2/outside/office_complex) "bq" = ( /turf/closed/shuttle/ert{ @@ -392,9 +287,7 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, +/turf/open/floor/plating/panelscorched, /area/bigredv2/outside/office_complex) "bs" = ( /obj/structure/machinery/light{ @@ -408,43 +301,25 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, +/turf/open/floor/plating/panelscorched, /area/bigredv2/outside/office_complex) "bu" = ( /obj/item/stack/rods, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, -/area/bigredv2/outside/office_complex) -"bv" = ( -/obj/structure/surface/rack, -/obj/effect/landmark/crap_item, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/floor/plating/platingdmg3, /area/bigredv2/outside/office_complex) "bw" = ( /obj/effect/decal/cleanable/blood, /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/crap_item, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/office_complex) "bx" = ( /obj/item/shard, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/e) "by" = ( /obj/structure/girder, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/office_complex) "bz" = ( /turf/closed/shuttle/ert{ @@ -458,29 +333,21 @@ /area/bigredv2/outside/office_complex) "bB" = ( /obj/item/clothing/head/welding, -/turf/open/floor{ - icon_state = "warnwhite" - }, +/turf/open/floor/warnwhite, /area/bigredv2/outside/office_complex) "bC" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/tech_supply, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/office_complex) "bD" = ( /obj/structure/machinery/light, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/office_complex) "bE" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3, /area/bigredv2/outside/office_complex) "bF" = ( /turf/closed/shuttle/ert{ @@ -501,9 +368,7 @@ /area/bigredv2/outside/office_complex) "bI" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "wall_thermite" - }, +/turf/open/floor/wall_thermite, /area/bigredv2/outside/office_complex) "bJ" = ( /obj/structure/machinery/door/airlock/almayer/generic, @@ -516,16 +381,12 @@ /area/bigredv2/outside/office_complex) "bL" = ( /obj/structure/machinery/photocopier, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/office_complex) "bM" = ( /obj/effect/decal/cleanable/blood, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/office_complex) "bN" = ( /obj/structure/window_frame/solaris, @@ -535,16 +396,12 @@ "bO" = ( /obj/item/device/analyzer, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/office_complex) "bP" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/crap_item, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/office_complex) "bQ" = ( /obj/effect/decal/cleanable/dirt, @@ -552,27 +409,20 @@ /area/bigredv2/outside/office_complex) "bR" = ( /obj/item/shard, -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/west, /area/bigredv2/outside/c) "bS" = ( /obj/structure/bed/chair{ dir = 1 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, +/turf/open/floor/plating/panelscorched, /area/bigredv2/outside/office_complex) "bT" = ( /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/office_complex) "bU" = ( /obj/structure/bed/chair{ @@ -582,28 +432,19 @@ /area/bigredv2/outside/office_complex) "bV" = ( /obj/structure/machinery/autolathe, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/office_complex) "bW" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/spawner/random/tech_supply, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/office_complex) "bX" = ( /obj/structure/girder, -/turf/open/floor{ - icon_state = "wall_thermite" - }, +/turf/open/floor/wall_thermite, /area/bigredv2/outside/office_complex) "bY" = ( -/turf/open/floor{ - dir = 4; - icon_state = "redcorner" - }, +/turf/open/floor/redcorner/east, /area/bigredv2/outside/office_complex) "bZ" = ( /obj/structure/surface/table, @@ -611,37 +452,27 @@ /obj/structure/machinery/camera/autoname{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/office_complex) "ca" = ( /obj/structure/surface/table, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/office_complex) "cb" = ( /obj/structure/bed/chair/office/light{ dir = 1 }, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/office_complex) "cc" = ( /obj/effect/decal/cleanable/dirt, /obj/item/frame/table, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/office_complex) "cd" = ( /obj/effect/decal/cleanable/dirt, /obj/item/device/mass_spectrometer/adv, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/office_complex) "ce" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -650,170 +481,119 @@ /obj/structure/machinery/door/airlock/almayer/generic{ name = "\improper Office Complex Storage" }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/office_complex) "cf" = ( /obj/effect/landmark/crap_item, /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, +/turf/open/floor/plating/panelscorched, /area/bigredv2/outside/office_complex) "cg" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "redcorner" - }, +/turf/open/floor/redcorner, /area/bigredv2/outside/office_complex) "ch" = ( -/turf/open/floor{ - icon_state = "redcorner" - }, +/turf/open/floor/redcorner, /area/bigredv2/outside/office_complex) "ci" = ( /obj/item/stack/sheet/metal, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/office_complex) "cj" = ( /obj/item/trash/raisins, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/office_complex) "ck" = ( /obj/effect/decal/cleanable/dirt, /obj/item/frame/table, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/office_complex) "cl" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/office_complex) "cm" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/office_complex) "cn" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, +/turf/open/floor/plating/panelscorched, /area/bigredv2/outside/office_complex) "co" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper Office Complex Janitor Room" }, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/bigredv2/outside/office_complex) "cp" = ( -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/bigredv2/outside/office_complex) "cq" = ( -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/office_complex) "cr" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/office_complex) "cs" = ( /obj/effect/decal/cleanable/blood/gibs/down, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/office_complex) "cu" = ( /obj/structure/bed/chair/dropship/passenger{ dir = 4 }, /obj/effect/decal/cleanable/blood, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/medium_grey_single_wide_up_to_down, /area/bigredv2/outside/office_complex) "cv" = ( -/turf/open/shuttle/dropship{ - icon_state = "rasputin10" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_top, /area/bigredv2/outside/office_complex) "cw" = ( /obj/item/weapon/gun/rifle/nsg23/no_lock/stripped{ desc = "A rare sight, this rifle is seen most commonly in the hands of Weyland-Yutani PMCs. Compared to the M41A MK2, it has noticeably improved handling and vastly improved performance at long and medium range, but compares similarly up close. This one seems to have been heavily damaged from impact, you can still see some debris that resembles a scope and underbarrel attachment point on it."; name = "smashed NSG 23 assault rifle" }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin12" - }, +/turf/open/shuttle/dropship/can_surgery/dark_grey_bottom, /area/bigredv2/outside/office_complex) "cx" = ( /obj/effect/spawner/gibspawner/human, /obj/item/limb/arm/l_arm, /obj/item/limb/leg/l_leg, /obj/item/limb/hand/r_hand, -/turf/open/shuttle/dropship{ - icon_state = "rasputin8" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_bottom_right, /area/bigredv2/outside/office_complex) "cy" = ( /obj/structure/janitorialcart, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/office_complex) "cz" = ( /obj/item/frame/table, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/office_complex) "cA" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/bigredv2/outside/office_complex) "cB" = ( /obj/effect/decal/cleanable/dirt, /obj/item/device/taperecorder, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/office_complex) "cC" = ( /obj/effect/spawner/random/tech_supply, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/office_complex) "cD" = ( /turf/closed/shuttle/ert{ @@ -841,9 +621,7 @@ /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/office_complex) "cI" = ( /obj/structure/surface/table, @@ -852,24 +630,18 @@ dir = 4 }, /obj/item/device/healthanalyzer, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/office_complex) "cJ" = ( /obj/structure/machinery/light, /obj/effect/decal/cleanable/dirt, /obj/item/frame/table, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/office_complex) "cK" = ( /obj/item/frame/table, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/office_complex) "cL" = ( /turf/closed/shuttle/ert{ @@ -896,16 +668,11 @@ "cP" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/crap_item, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/bigredv2/outside/office_complex) "cQ" = ( /obj/item/stack/rods, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/office_complex) "cR" = ( /obj/structure/window_frame/solaris, @@ -914,9 +681,7 @@ "cS" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/office_complex) "cT" = ( /turf/closed/shuttle/ert{ @@ -932,40 +697,25 @@ /area/bigredv2/outside/office_complex) "cV" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 4; - icon_state = "redcorner" - }, +/turf/open/floor/redcorner/east, /area/bigredv2/outside/office_complex) "cW" = ( /obj/effect/decal/cleanable/dirt, /obj/item/paper, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/bigredv2/outside/office_complex) "cX" = ( -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/c) "cY" = ( /obj/effect/decal/cleanable/blood{ icon_state = "gib6" }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/c) "cZ" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/c) "da" = ( /obj/effect/decal/cleanable/dirt, @@ -974,9 +724,7 @@ "db" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3, /area/bigredv2/outside/office_complex) "dc" = ( /turf/closed/shuttle/ert{ @@ -996,17 +744,12 @@ pixel_y = -27 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/bigredv2/outside/office_complex) "df" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3, /area/bigredv2/outside/office_complex) "dg" = ( /turf/closed/shuttle/ert{ @@ -1024,9 +767,7 @@ }, /area/bigredv2/outside/office_complex) "dj" = ( -/turf/open/floor{ - icon_state = "wall_thermite" - }, +/turf/open/floor/wall_thermite, /area/bigredv2/outside/office_complex) "dk" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ @@ -1036,9 +777,7 @@ /area/bigredv2/outside/office_complex) "dl" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3, /area/bigredv2/outside/office_complex) "dm" = ( /turf/closed/shuttle/ert{ @@ -1058,22 +797,15 @@ /area/bigredv2/outside/se) "dp" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/bigredv2/outside/se) "dq" = ( -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/bigredv2/outside/se) "dr" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 8; - icon_state = "redcorner" - }, +/turf/open/floor/redcorner/west, /area/bigredv2/outside/office_complex) "ds" = ( /obj/effect/decal/cleanable/dirt, @@ -1082,137 +814,97 @@ "dt" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/mars{ - icon_state = "mars_dirt_12" - }, +/turf/open/mars/mars_dirt_12, /area/bigredv2/outside/se) "du" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/mars{ - icon_state = "mars_dirt_8" - }, +/turf/open/mars/mars_dirt_8, /area/bigredv2/outside/se) "dv" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/mars{ - icon_state = "mars_dirt_3" - }, +/turf/open/mars/mars_dirt_3, /area/bigredv2/outside/se) "dw" = ( -/turf/open/floor{ - dir = 10; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/southwest, /area/bigredv2/outside/se) "dx" = ( /obj/item/tool/warning_cone, -/turf/open/floor{ - dir = 6; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/southeast, /area/bigredv2/outside/se) "dz" = ( /obj/effect/spawner/gibspawner/human, -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_up_to_down, /area/bigredv2/outside/office_complex) "dA" = ( /obj/structure/bed/chair/dropship/passenger{ dir = 8 }, /obj/effect/decal/cleanable/blood, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/medium_grey_single_wide_up_to_down, /area/bigredv2/outside/office_complex) "dB" = ( /obj/effect/decal/cleanable/blood, -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_up_to_down, /area/bigredv2/outside/office_complex) "dC" = ( /obj/effect/spawner/gibspawner/human, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, +/turf/open/floor/plating/panelscorched, /area/bigredv2/outside/office_complex) "dD" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/spawner/gibspawner/human, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/office_complex) "dE" = ( /obj/effect/decal/cleanable/blood{ dir = 1; icon_state = "gib6" }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_up_to_down, /area/bigredv2/outside/office_complex) "dF" = ( /obj/effect/decal/cleanable/blood{ dir = 4; icon_state = "gib6" }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin4" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_bottom_left, /area/bigredv2/outside/office_complex) "dG" = ( /obj/effect/decal/cleanable/blood{ dir = 4; icon_state = "gib6" }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin10" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_top, /area/bigredv2/outside/office_complex) "dH" = ( /obj/effect/decal/cleanable/blood, /obj/effect/landmark/corpsespawner/wygoon, -/turf/open/shuttle/dropship{ - icon_state = "floor8" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_left_to_right, /area/bigredv2/outside/office_complex) "dI" = ( /obj/structure/surface/rack, /obj/item/ammo_magazine/rifle/nsg23, /obj/item/ammo_magazine/rifle/nsg23/extended, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/medium_grey_single_wide_up_to_down, /area/bigredv2/outside/office_complex) "dJ" = ( /obj/effect/decal/cleanable/blood{ icon_state = "gib6" }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_up_to_down, /area/bigredv2/outside/office_complex) "dK" = ( /obj/effect/spawner/gibspawner/human, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/office_complex) "dL" = ( /obj/structure/surface/rack, /obj/item/device/binoculars, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/medium_grey_single_wide_up_to_down, /area/bigredv2/outside/office_complex) "dM" = ( /obj/structure/surface/rack, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/medium_grey_single_wide_up_to_down, /area/bigredv2/outside/office_complex) "dN" = ( /obj/structure/surface/rack, @@ -1220,23 +912,17 @@ /obj/item/ammo_magazine/pistol/rubber, /obj/item/ammo_magazine/pistol/rubber, /obj/item/ammo_magazine/pistol/rubber, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/medium_grey_single_wide_up_to_down, /area/bigredv2/outside/office_complex) "dO" = ( /obj/effect/decal/cleanable/dirt, /obj/item/stack/sheet/metal, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/office_complex) "dP" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/tech_supply, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/medium_grey_single_wide_up_to_down, /area/bigredv2/outside/office_complex) "dQ" = ( /obj/structure/bed/chair/dropship/passenger{ @@ -1244,204 +930,145 @@ }, /obj/effect/decal/cleanable/blood, /obj/effect/spawner/gibspawner/human, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/medium_grey_single_wide_up_to_down, /area/bigredv2/outside/office_complex) "dR" = ( /obj/structure/surface/rack, /obj/item/map/big_red_map, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/medium_grey_single_wide_up_to_down, /area/bigredv2/outside/office_complex) "dS" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/tool, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/medium_grey_single_wide_up_to_down, /area/bigredv2/outside/office_complex) "dT" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/toolbox, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/medium_grey_single_wide_up_to_down, /area/bigredv2/outside/office_complex) "dU" = ( /obj/effect/decal/cleanable/dirt, /obj/item/stack/rods, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/office_complex) "dV" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /obj/item/stack/rods, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/office_complex) "dW" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/east, /area/bigredv2/outside/se) "dX" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/e) "dY" = ( /obj/item/stack/sheet/metal, -/turf/open/floor{ - icon_state = "wall_thermite" - }, +/turf/open/floor/wall_thermite, /area/bigredv2/outside/office_complex) "dZ" = ( /obj/structure/girder, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3, /area/bigredv2/outside/office_complex) "ea" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/office_complex) "eb" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/office_complex) "ec" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/office_complex) "ed" = ( /obj/item/frame/table, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/office_complex) "ee" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/office_complex) "ef" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/office_complex) "eg" = ( /obj/item/stack/rods, -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/west, /area/bigredv2/outside/c) "eh" = ( /obj/item/device/multitool, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/office_complex) "ei" = ( /obj/structure/janitorialcart, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/bigredv2/outside/office_complex) "ej" = ( /obj/effect/decal/cleanable/dirt, /obj/item/trash/syndi_cakes, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/bigredv2/outside/office_complex) "ek" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/office_complex) "el" = ( /obj/item/clothing/shoes/galoshes, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/bigredv2/outside/office_complex) "em" = ( /obj/effect/decal/cleanable/dirt, /obj/item/tool/lighter/random, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/office_complex) "fv" = ( /obj/structure/bed/chair/dropship/passenger{ dir = 8 }, /obj/effect/landmark/survivor_spawner/bigred_crashed_pmc, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/medium_grey_single_wide_up_to_down, /area/bigredv2/outside/office_complex) "fG" = ( /obj/structure/bed/chair/dropship/passenger{ dir = 8 }, /obj/item/device/radio/headset/distress/pmc/hvh, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/medium_grey_single_wide_up_to_down, /area/bigredv2/outside/office_complex) "hN" = ( /obj/structure/bed/chair/dropship/passenger{ dir = 4 }, /obj/effect/landmark/survivor_spawner/bigred_crashed_pmc_medic, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/medium_grey_single_wide_up_to_down, /area/bigredv2/outside/office_complex) "id" = ( /obj/structure/bed/chair/dropship/passenger{ dir = 4 }, /obj/effect/landmark/survivor_spawner/bigred_crashed_pmc, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/medium_grey_single_wide_up_to_down, /area/bigredv2/outside/office_complex) "jx" = ( /obj/effect/decal/cleanable/blood{ @@ -1449,26 +1076,25 @@ icon_state = "gib6" }, /obj/item/limb/leg/l_leg, -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_up_to_down, +/area/bigredv2/outside/office_complex) +"nE" = ( +/obj/structure/surface/rack, +/obj/effect/landmark/crap_item, +/turf/open/shuttle/dropship/can_surgery/medium_grey_single_wide_up_to_down, /area/bigredv2/outside/office_complex) "oF" = ( /obj/structure/bed/chair/dropship/passenger{ dir = 4 }, /obj/item/clothing/under/marine/veteran/pmc, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/medium_grey_single_wide_up_to_down, /area/bigredv2/outside/office_complex) "qX" = ( /obj/effect/decal/cleanable/blood, /obj/effect/landmark/corpsespawner/pmc, /obj/item/weapon/gun/rifle/nsg23/no_lock, -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/light_grey_single_wide_up_to_down, /area/bigredv2/outside/office_complex) "rF" = ( /obj/structure/bed/chair/dropship/passenger{ @@ -1479,9 +1105,7 @@ /obj/item/clothing/head/helmet/marine/veteran/pmc, /obj/item/clothing/under/marine/veteran/pmc, /obj/item/clothing/head/helmet/marine/veteran/pmc, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/medium_grey_single_wide_up_to_down, /area/bigredv2/outside/office_complex) "rK" = ( /obj/structure/bed/chair/dropship/passenger{ @@ -1489,21 +1113,15 @@ }, /obj/effect/decal/cleanable/blood, /obj/effect/landmark/corpsespawner/wygoon, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/medium_grey_single_wide_up_to_down, /area/bigredv2/outside/office_complex) "si" = ( /obj/item/clothing/head/helmet/marine/veteran/pmc, -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_up_to_down, /area/bigredv2/outside/office_complex) "sR" = ( /obj/item/storage/firstaid, -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_up_to_down, /area/bigredv2/outside/office_complex) "uC" = ( /obj/effect/spawner/gibspawner/human, @@ -1511,29 +1129,21 @@ desc = "A Weyland-Yutani creation, this M41A MK2 comes equipped in corporate white. Uses 10x24mm caseless ammunition. The IFF electronics appear to be non-functional."; name = "battered M41A pulse rifle Mk2" }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_up_to_down, /area/bigredv2/outside/office_complex) "uL" = ( /obj/item/weapon/gun/rifle/nsg23/no_lock, -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_up_to_down, /area/bigredv2/outside/office_complex) "vw" = ( /obj/item/limb/arm/l_arm, -/turf/open/shuttle/dropship{ - icon_state = "floor8" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_left_to_right, /area/bigredv2/outside/office_complex) "yS" = ( /obj/structure/bed/chair/dropship/passenger{ dir = 4 }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/medium_grey_single_wide_up_to_down, /area/bigredv2/outside/office_complex) "AB" = ( /obj/structure/bed/chair/dropship/passenger{ @@ -1545,9 +1155,7 @@ name = "dented M4A3 service pistol" }, /obj/effect/landmark/corpsespawner/wygoon, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/medium_grey_single_wide_up_to_down, /area/bigredv2/outside/office_complex) "Bu" = ( /obj/effect/decal/cleanable/blood, @@ -1555,82 +1163,60 @@ /obj/item/limb/arm/l_arm, /obj/item/limb/leg/l_leg, /obj/item/limb/hand/r_hand, -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_up_to_down, /area/bigredv2/outside/office_complex) "EE" = ( /obj/structure/bed/chair/dropship/passenger{ dir = 8 }, /obj/item/limb/hand/l_hand, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/medium_grey_single_wide_up_to_down, /area/bigredv2/outside/office_complex) "GG" = ( /obj/item/weapon/gun/rifle/m41a/corporate/no_lock{ desc = "A Weyland-Yutani creation, this M41A MK2 comes equipped in corporate white. Uses 10x24mm caseless ammunition. The IFF electronics appear to be non-functional."; name = "battered M41A pulse rifle Mk2" }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_up_to_down, /area/bigredv2/outside/office_complex) "Ha" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/se) "Lk" = ( /obj/structure/bed/chair/dropship/passenger{ dir = 4 }, /obj/item/device/radio/headset/distress/pmc/hvh, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/medium_grey_single_wide_up_to_down, /area/bigredv2/outside/office_complex) "NK" = ( /obj/structure/surface/rack, /obj/item/ammo_magazine/rifle/rubber, /obj/item/ammo_magazine/rifle/rubber, /obj/item/ammo_magazine/rifle/rubber, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/medium_grey_single_wide_up_to_down, /area/bigredv2/outside/office_complex) "PR" = ( -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/se) "Qc" = ( /obj/structure/bed/chair/dropship/passenger{ dir = 8 }, /obj/effect/landmark/survivor_spawner/bigred_crashed_cl, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/medium_grey_single_wide_up_to_down, /area/bigredv2/outside/office_complex) "Vg" = ( /obj/effect/landmark/objective_landmark/medium, -/turf/open/shuttle/dropship{ - icon_state = "floor8" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_left_to_right, /area/bigredv2/outside/office_complex) "XH" = ( /obj/structure/bed/chair/dropship/passenger{ dir = 4 }, /obj/effect/landmark/survivor_spawner/bigred_crashed_pmc_engineer, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/medium_grey_single_wide_up_to_down, /area/bigredv2/outside/office_complex) (1,1,1) = {" @@ -1915,7 +1501,7 @@ XH AB yS aV -bv +nE dN dP aV @@ -1964,7 +1550,7 @@ av ar aN aU -bv +nE bm dA fv @@ -2003,9 +1589,9 @@ yS yS yS dH -bv -bv -bv +nE +nE +nE dT cF do @@ -2071,7 +1657,7 @@ ap az bu aN -bv +nE dL bm yS @@ -2132,8 +1718,8 @@ rK bp aV dM -bv -bv +nE +nE aV fv dA diff --git a/maps/map_files/BigRed/standalone/lambda-cave_extratunnel.dmm b/maps/map_files/BigRed/standalone/lambda-cave_extratunnel.dmm index 104546cbd8ed..d191e7b68068 100644 --- a/maps/map_files/BigRed/standalone/lambda-cave_extratunnel.dmm +++ b/maps/map_files/BigRed/standalone/lambda-cave_extratunnel.dmm @@ -1,76 +1,49 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE "a" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_18" - }, +/turf/open/mars_cave/mars_cave_18, /area/bigredv2/caves_lambda) "b" = ( /turf/closed/wall/solaris/rock, /area/bigredv2/caves) "c" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_11" - }, +/turf/open/mars_cave/mars_cave_11, /area/bigredv2/caves_lambda) "d" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg2" - }, +/turf/open/floor/plating/platingdmg2/west, /area/bigredv2/caves/lambda/virology) "e" = ( -/turf/open/floor/bluegrid{ - icon_state = "damaged3" - }, +/turf/open/floor/bluegrid/damaged3, /area/bigredv2/caves/lambda/virology) "f" = ( -/turf/open/floor{ - dir = 9; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/northwest, /area/bigredv2/caves/lambda/virology) "g" = ( /obj/effect/decal/cleanable/vomit, -/turf/open/floor{ - dir = 1; - icon_state = "darkgreencorners2" - }, +/turf/open/floor/darkgreencorners2/north, /area/bigredv2/caves/lambda/virology) "h" = ( /turf/open/mars_cave, /area/bigredv2/caves_lambda) "i" = ( -/turf/open/floor{ - dir = 10; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/southwest, /area/bigredv2/caves/lambda/virology) "j" = ( -/turf/open/floor/bluegrid{ - icon_state = "damaged5" - }, +/turf/open/floor/bluegrid/damaged5, /area/bigredv2/caves/lambda/virology) "k" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor{ - dir = 8; - icon_state = "darkgreencorners2" - }, +/turf/open/floor/darkgreencorners2/west, /area/bigredv2/caves/lambda/virology) "l" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/mars_cave{ - icon_state = "mars_cave_11" - }, +/turf/open/mars_cave/mars_cave_11, /area/bigredv2/caves_lambda) "m" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/mars_cave{ - icon_state = "mars_cave_11" - }, +/turf/open/mars_cave/mars_cave_11, /area/bigredv2/caves_lambda) "n" = ( /turf/closed/wall/solaris/reinforced, @@ -81,72 +54,45 @@ dir = 1; pixel_y = -30 }, -/turf/open/floor{ - dir = 10; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/southwest, /area/bigredv2/caves/lambda/virology) "p" = ( -/turf/open/floor{ - dir = 10; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/southwest, /area/bigredv2/caves/lambda/virology) "q" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/microwave, /obj/structure/machinery/light, -/turf/open/floor{ - dir = 10; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/southwest, /area/bigredv2/caves/lambda/virology) "r" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_7" - }, +/turf/open/mars_cave/mars_cave_7, /area/bigredv2/caves_lambda) "w" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/mars_cave{ - icon_state = "mars_cave_10" - }, +/turf/open/mars_cave/mars_cave_10, /area/bigredv2/caves_lambda) "F" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_8" - }, +/turf/open/mars_cave/mars_cave_8, /area/bigredv2/caves_lambda) "H" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_3" - }, +/turf/open/mars_cave/mars_cave_3, /area/bigredv2/caves_lambda) "I" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_12" - }, +/turf/open/mars_cave/mars_cave_12, /area/bigredv2/caves_lambda) "K" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_10" - }, +/turf/open/mars_cave/mars_cave_10, /area/bigredv2/caves_lambda) "O" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_23" - }, +/turf/open/mars_cave/mars_cave_23, /area/bigredv2/caves_lambda) "P" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves_lambda) "X" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/mars_cave{ - icon_state = "mars_cave_8" - }, +/turf/open/mars_cave/mars_cave_8, /area/bigredv2/caves_lambda) (1,1,1) = {" diff --git a/maps/map_files/BigRed/standalone/lambda-cave_mushroom.dmm b/maps/map_files/BigRed/standalone/lambda-cave_mushroom.dmm index d7710b7a0bed..8bf2e282de1f 100644 --- a/maps/map_files/BigRed/standalone/lambda-cave_mushroom.dmm +++ b/maps/map_files/BigRed/standalone/lambda-cave_mushroom.dmm @@ -1,23 +1,17 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE "a" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves_lambda) "b" = ( /turf/closed/wall/solaris/rock, /area/bigredv2/caves) "c" = ( /obj/effect/glowshroom, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves_lambda) "g" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/bigredv2/caves_lambda) (1,1,1) = {" diff --git a/maps/map_files/BigRed/standalone/lambda-graveyard.dmm b/maps/map_files/BigRed/standalone/lambda-graveyard.dmm index 8dc12acf8d53..47964ff5ea79 100644 --- a/maps/map_files/BigRed/standalone/lambda-graveyard.dmm +++ b/maps/map_files/BigRed/standalone/lambda-graveyard.dmm @@ -3,33 +3,23 @@ /turf/open/mars, /area/bigredv2/outside/se) "e" = ( -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/bigredv2/outside/se) "f" = ( /obj/item/stool, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/bigredv2/outside/se) "g" = ( -/turf/open/mars{ - icon_state = "mars_dirt_11" - }, +/turf/open/mars/mars_dirt_11, /area/bigredv2/outside/se) "h" = ( /obj/structure/flora/bush/ausbushes{ cut_level = 1 }, -/turf/open/mars{ - icon_state = "mars_dirt_14" - }, +/turf/open/mars/mars_dirt_14, /area/bigredv2/outside/se) "i" = ( -/turf/open/mars{ - icon_state = "mars_dirt_12" - }, +/turf/open/mars/mars_dirt_12, /area/bigredv2/outside/se) "j" = ( /obj/item/trash/cigbutt{ @@ -50,19 +40,13 @@ /turf/open/mars, /area/bigredv2/outside/se) "l" = ( -/turf/open/mars{ - icon_state = "mars_dirt_8" - }, +/turf/open/mars/mars_dirt_8, /area/bigredv2/outside/se) "m" = ( -/turf/open/mars{ - icon_state = "mars_dirt_3" - }, +/turf/open/mars/mars_dirt_3, /area/bigredv2/outside/se) "n" = ( -/turf/open/mars{ - icon_state = "mars_dirt_9" - }, +/turf/open/mars/mars_dirt_9, /area/bigredv2/outside/se) "o" = ( /turf/closed/wall/solaris/rock, diff --git a/maps/map_files/BigRed/standalone/medbay-passage.dmm b/maps/map_files/BigRed/standalone/medbay-passage.dmm index d5b7db11d82b..9dc1327ab65c 100644 --- a/maps/map_files/BigRed/standalone/medbay-passage.dmm +++ b/maps/map_files/BigRed/standalone/medbay-passage.dmm @@ -4,59 +4,36 @@ /area/template_noop) "c" = ( /obj/structure/sign/safety/medical{ - pixel_x = 0; pixel_y = 32 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/c) "d" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/c) "e" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/c) "f" = ( /obj/structure/sign/safety/medical{ - pixel_x = 0; pixel_y = 32 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/c) "h" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/c) "i" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/blood, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/c) "l" = ( -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/c) "m" = ( /obj/effect/decal/cleanable/dirt, @@ -65,20 +42,14 @@ dir = 5; icon_state = "p_stair_full" }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/c) "n" = ( /obj/structure/stairs/perspective{ dir = 9; icon_state = "p_stair_full" }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/c) "w" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -86,10 +57,7 @@ dir = 1; icon_state = "p_stair_full" }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/c) "R" = ( /turf/closed/wall/solaris/reinforced, @@ -99,24 +67,17 @@ /obj/structure/machinery/door/airlock/multi_tile/almayer/comdoor/colony{ name = "\improper Operations" }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/admin_building) "T" = ( -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/admin_building) "X" = ( /obj/structure/stairs/perspective{ dir = 1; icon_state = "p_stair_full" }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/c) (1,1,1) = {" diff --git a/maps/map_files/BigRed/standalone/medbay-v3.dmm b/maps/map_files/BigRed/standalone/medbay-v3.dmm index aded8e8bb7cb..8f90727068d6 100644 --- a/maps/map_files/BigRed/standalone/medbay-v3.dmm +++ b/maps/map_files/BigRed/standalone/medbay-v3.dmm @@ -4,9 +4,7 @@ /area/bigredv2/outside/medical) "ab" = ( /obj/structure/girder, -/turf/open/floor{ - icon_state = "wall_thermite" - }, +/turf/open/floor/wall_thermite, /area/bigredv2/outside/medical) "ac" = ( /obj/structure/window_frame/solaris, @@ -19,39 +17,26 @@ /obj/structure/machinery/door/airlock/multi_tile/almayer/medidoor/colony{ name = "\improper Medical Clinic" }, -/turf/open/floor{ - dir = 1; - icon_state = "warnwhite" - }, +/turf/open/floor/warnwhite/north, /area/bigredv2/outside/medical) "ae" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 1; - icon_state = "warnwhite" - }, +/turf/open/floor/warnwhite/north, /area/bigredv2/outside/medical) "af" = ( /turf/closed/wall/solaris/reinforced, /area/bigredv2/outside/medical) "ag" = ( /obj/structure/closet/secure_closet/chemical, -/turf/open/floor{ - dir = 1; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/north, /area/bigredv2/outside/medical) "ah" = ( /obj/item/stack/sheet/metal, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/medical) "ai" = ( -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/medical) "aj" = ( /obj/structure/window_frame/solaris, @@ -59,36 +44,23 @@ /turf/open/floor/plating, /area/bigredv2/outside/medical) "ak" = ( -/turf/open/floor{ - dir = 8; - icon_state = "damaged2" - }, +/turf/open/floor/damaged2/west, /area/bigredv2/outside/medical) "al" = ( /obj/structure/bed, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/medical) "am" = ( -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/medical) "an" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 8; - icon_state = "damaged2" - }, +/turf/open/floor/damaged2/west, /area/bigredv2/outside/medical) "ao" = ( /obj/structure/machinery/chem_master, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 8; - icon_state = "damaged4" - }, +/turf/open/floor/damaged4/west, /area/bigredv2/outside/medical) "ap" = ( /obj/structure/window/framed/solaris, @@ -97,96 +69,49 @@ "aq" = ( /obj/structure/closet/secure_closet/CMO, /obj/item/device/healthanalyzer, -/turf/open/floor{ - icon_state = "whitegreenfull" - }, +/turf/open/floor/whitegreenfull, /area/bigredv2/outside/medical) "ar" = ( /obj/structure/machinery/computer/crew, -/turf/open/floor{ - icon_state = "whitegreenfull" - }, +/turf/open/floor/whitegreenfull, /area/bigredv2/outside/medical) "as" = ( -/obj/structure/surface/table, /obj/structure/pipes/vents/pump, -/obj/item/device/autopsy_scanner, -/turf/open/floor{ - icon_state = "dark" - }, -/area/bigredv2/outside/medical) -"at" = ( -/turf/open/floor{ - icon_state = "dark" - }, -/area/bigredv2/outside/medical) -"au" = ( -/obj/structure/morgue{ - dir = 8 - }, -/turf/open/floor{ - icon_state = "dark" - }, -/area/bigredv2/outside/medical) -"av" = ( -/obj/structure/morgue, -/turf/open/floor{ - icon_state = "dark" - }, -/area/bigredv2/outside/medical) +/turf/open/floor/asteroidfloor/north, +/area/bigredv2/outside/n) "aw" = ( /obj/structure/machinery/chem_dispenser, -/turf/open/floor{ - dir = 8; - icon_state = "damaged4" - }, +/turf/open/floor/damaged4/west, /area/bigredv2/outside/medical) "ax" = ( -/turf/open/floor{ - dir = 8; - icon_state = "damaged4" - }, +/turf/open/floor/damaged4/west, /area/bigredv2/outside/medical) "ay" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/item/trash/chips, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/medical) "az" = ( /obj/structure/bed, -/turf/open/floor{ - dir = 8; - icon_state = "damaged2" - }, +/turf/open/floor/damaged2/west, /area/bigredv2/outside/medical) "aA" = ( /obj/structure/surface/table, -/turf/open/floor{ - dir = 8; - icon_state = "damaged4" - }, +/turf/open/floor/damaged4/west, /area/bigredv2/outside/medical) "aB" = ( /obj/structure/bed/roller, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/medical) "aC" = ( /obj/structure/bed/chair/office/light, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/medical) "aD" = ( -/turf/open/floor{ - icon_state = "whitegreenfull" - }, +/turf/open/floor/whitegreenfull, /area/bigredv2/outside/medical) "aE" = ( /obj/structure/surface/table, @@ -195,29 +120,15 @@ }, /obj/item/storage/box/beakers, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 1; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/north, /area/bigredv2/outside/medical) "aF" = ( /obj/structure/machinery/computer/med_data, -/turf/open/floor{ - icon_state = "whitegreenfull" - }, -/area/bigredv2/outside/medical) -"aG" = ( -/obj/structure/machinery/optable, -/obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/whitegreenfull, /area/bigredv2/outside/medical) "aH" = ( /obj/effect/spawner/gibspawner/human, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/medical) "aI" = ( /obj/structure/bed/roller, @@ -225,122 +136,79 @@ dir = 1 }, /obj/item/frame/table, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/medical) "aJ" = ( /obj/item/device/defibrillator, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/medical) "aK" = ( /obj/structure/surface/table, /obj/effect/spawner/random/bomb_supply, -/obj/item/stack/sheet/metal{ - amount = 1 - }, -/turf/open/floor{ - dir = 8; - icon_state = "damaged2" - }, +/obj/item/stack/sheet/metal, +/turf/open/floor/damaged2/west, /area/bigredv2/outside/medical) "aL" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/medical) "aM" = ( -/turf/open/floor{ - dir = 8; - icon_state = "damaged5" - }, +/turf/open/floor/damaged5/west, /area/bigredv2/outside/medical) "aN" = ( /obj/effect/decal/cleanable/blood, /obj/effect/landmark/corpsespawner/wygoon, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3, /area/bigredv2/outside/medical) "aO" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3, /area/bigredv2/outside/medical) "aP" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, /obj/structure/bed/roller, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/medical) "aQ" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 8; - icon_state = "damaged3" - }, +/turf/open/floor/damaged3/west, /area/bigredv2/outside/medical) "aR" = ( /obj/structure/bed/chair/office/light{ dir = 4 }, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/medical) "aS" = ( /obj/structure/surface/table/reinforced, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/medical) "aT" = ( -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3, /area/bigredv2/outside/medical) "aU" = ( -/turf/open/floor{ - dir = 8; - icon_state = "damaged3" - }, +/turf/open/floor/damaged3/west, /area/bigredv2/outside/medical) "aV" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor{ - dir = 8; - icon_state = "damaged2" - }, +/turf/open/floor/damaged2/west, /area/bigredv2/outside/medical) "aX" = ( /obj/structure/window_frame/solaris, /obj/item/stack/sheet/metal, -/turf/open/floor{ - dir = 8; - icon_state = "damaged4" - }, +/turf/open/floor/damaged4/west, /area/bigredv2/outside/medical) "aY" = ( /obj/item/shard, -/turf/open/floor{ - dir = 8; - icon_state = "damaged5" - }, +/turf/open/floor/damaged5/west, /area/bigredv2/outside/medical) "aZ" = ( /obj/effect/decal/cleanable/dirt, /obj/item/explosive/grenade/custom/large, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/medical) "ba" = ( /obj/structure/surface/table, @@ -348,91 +216,60 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "whitegreenfull" - }, +/turf/open/floor/whitegreenfull, /area/bigredv2/outside/medical) "bb" = ( /obj/structure/pipes/vents/pump, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/medical) "bc" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, +/turf/open/floor/plating/panelscorched, /area/bigredv2/outside/medical) "bd" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/medical) "bf" = ( /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor{ - dir = 8; - icon_state = "damaged5" - }, +/turf/open/floor/damaged5/west, /area/bigredv2/outside/medical) "bg" = ( /obj/item/stack/sheet/metal, -/turf/open/floor{ - dir = 8; - icon_state = "damaged5" - }, +/turf/open/floor/damaged5/west, /area/bigredv2/outside/medical) "bh" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "dark" - }, -/area/bigredv2/outside/medical) +/turf/open/mars_cave/mars_dirt_4, +/area/bigredv2/outside/n) "bi" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 8; - icon_state = "damaged5" - }, +/turf/open/floor/damaged5/west, /area/bigredv2/outside/medical) "bj" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/crap_item, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/medical) "bk" = ( /obj/effect/decal/cleanable/dirt, /obj/item/frame/table, -/turf/open/floor{ - dir = 8; - icon_state = "damaged2" - }, +/turf/open/floor/damaged2/west, /area/bigredv2/outside/medical) "bl" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/medical) "bm" = ( /obj/item/shard, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/medical) "bn" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/medical) "bo" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -440,98 +277,66 @@ dir = 1; name = "\improper Medical Clinic" }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/medical) "bp" = ( /obj/effect/decal/cleanable/dirt, /obj/item/clothing/gloves/latex, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/medical) "bq" = ( /obj/effect/landmark/crap_item, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/medical) "br" = ( /obj/item/ammo_casing/shell, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3, /area/bigredv2/outside/medical) "bs" = ( /obj/item/ammo_casing/bullet, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/medical) "bt" = ( /obj/structure/bed/chair{ dir = 1 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "whitegreenfull" - }, +/turf/open/floor/whitegreenfull, /area/bigredv2/outside/medical) "bu" = ( -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, +/turf/open/floor/plating/panelscorched, /area/bigredv2/outside/medical) "bv" = ( /obj/structure/bed/chair{ dir = 1 }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 8; - icon_state = "damaged3" - }, +/turf/open/floor/damaged3/west, /area/bigredv2/outside/medical) "bw" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 8; - icon_state = "damaged2" - }, -/area/bigredv2/outside/medical) +/turf/open/floor/asteroidwarning/east, +/area/bigredv2/outside/n) "bx" = ( /obj/item/stack/rods, -/turf/open/floor{ - dir = 8; - icon_state = "damaged3" - }, +/turf/open/floor/damaged3/west, /area/bigredv2/outside/medical) "by" = ( /obj/effect/decal/cleanable/dirt, /obj/item/shard, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/medical) "bz" = ( -/turf/open/floor{ - dir = 5; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/northeast, /area/bigredv2/outside/medical) "bA" = ( /obj/structure/machinery/chem_dispenser, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/medical) "bB" = ( /obj/item/stack/sheet/metal, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/medical) "bC" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -540,74 +345,45 @@ icon_state = "coil2" }, /obj/item/ammo_casing/bullet, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/medical) "bD" = ( /obj/effect/landmark/crap_item, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/medical) "bE" = ( /obj/effect/decal/cleanable/blood, /obj/effect/landmark/corpsespawner/wygoon, -/turf/open/floor{ - icon_state = "platingdmg1" - }, -/area/bigredv2/outside/medical) -"bF" = ( -/obj/structure/machinery/camera/autoname{ - network = list("interrogation") - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/medical) "bG" = ( /obj/item/ammo_casing/bullet, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, +/turf/open/floor/plating/panelscorched, /area/bigredv2/outside/medical) "bH" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/blood, /obj/effect/landmark/corpsespawner/wygoon, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3, /area/bigredv2/outside/medical) "bI" = ( /obj/item/shard, /obj/item/frame/table, -/turf/open/floor{ - dir = 8; - icon_state = "damaged5" - }, +/turf/open/floor/damaged5/west, /area/bigredv2/outside/medical) "bJ" = ( /obj/structure/bed/roller, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/medical) "bK" = ( /obj/item/stack/rods, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/medical) "bL" = ( /obj/structure/pipes/standard/manifold/hidden/green, /obj/effect/decal/cleanable/blood, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/north, /area/bigredv2/outside/medical) "bM" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -617,60 +393,42 @@ dir = 1 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/north, /area/bigredv2/outside/medical) "bN" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, +/turf/open/floor/plating/panelscorched, /area/bigredv2/outside/medical) "bO" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor{ - icon_state = "platingdmg1" - }, -/area/bigredv2/outside/medical) +/obj/structure/surface/table, +/turf/open/floor/asteroidfloor/north, +/area/bigredv2/outside/n) "bP" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/medical) "bQ" = ( -/obj/structure/machinery/light, -/turf/open/floor{ - dir = 8; - icon_state = "damaged5" - }, -/area/bigredv2/outside/medical) +/turf/open/floor/asteroidwarning/north, +/area/bigredv2/outside/n) "bR" = ( /obj/effect/decal/cleanable/dirt, /obj/item/shard, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3, /area/bigredv2/outside/medical) "bS" = ( /obj/structure/machinery/door/airlock/almayer/medical/glass/colony{ name = "\improper Medical Clinic Scanner Room" }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/medical) "bT" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/medical) "bV" = ( /obj/effect/decal/cleanable/dirt, @@ -681,41 +439,29 @@ dir = 1 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/medical) "bX" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen, /area/bigredv2/outside/medical) "bY" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/medical) "bZ" = ( /obj/structure/window_frame/solaris, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/medical) "ca" = ( /obj/structure/window_frame/solaris, /obj/item/shard, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/medical) "cb" = ( /obj/item/stack/rods, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3, /area/bigredv2/outside/medical) "cc" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -723,55 +469,43 @@ dir = 1; name = "\improper Medical Clinic CMO's Office" }, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/medical) "cd" = ( /obj/effect/decal/cleanable/blood, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/medical) "ce" = ( -/turf/open/floor{ - icon_state = "wall_thermite" - }, +/turf/open/floor/wall_thermite, /area/bigredv2/outside/medical) "cf" = ( -/obj/structure/pipes/standard/simple/hidden/green, -/obj/item/stack/sheet/metal, -/turf/open/floor{ - icon_state = "platingdmg1" +/obj/effect/decal/cleanable/blood{ + icon_state = "gib6" + }, +/obj/structure/machinery/door/airlock/multi_tile/almayer/medidoor/colony{ + name = "\improper Medical Clinic" }, +/obj/structure/pipes/standard/simple/hidden/green, +/turf/open/floor/delivery, /area/bigredv2/outside/medical) "cg" = ( /obj/structure/surface/table, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/medical) "ch" = ( /obj/effect/decal/cleanable/dirt, /obj/item/ammo_casing/shell, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/medical) "ci" = ( /obj/effect/decal/cleanable/dirt, /obj/item/stack/sheet/metal, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/medical) "cj" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/east, /area/bigredv2/outside/medical) "ck" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -779,32 +513,23 @@ amount = 1; icon_state = "coil2" }, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, +/turf/open/floor/plating/panelscorched, /area/bigredv2/outside/medical) "cl" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/medical) "cm" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/item/ammo_casing/bullet, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/medical) "cn" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/obj/item/stack/rods, -/turf/open/floor{ - icon_state = "platingdmg1" +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 10 }, -/area/bigredv2/outside/medical) +/turf/open/floor/asteroidwarning/north, +/area/bigredv2/outside/n) "co" = ( /obj/structure/window_frame/solaris, /obj/item/stack/sheet/metal, @@ -813,81 +538,52 @@ "cp" = ( /obj/structure/surface/table/reinforced, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/medical) "cq" = ( /obj/item/ammo_casing/bullet, -/turf/open/floor{ - dir = 8; - icon_state = "damaged5" - }, +/turf/open/floor/damaged5/west, /area/bigredv2/outside/medical) "cr" = ( /obj/item/ammo_casing/bullet, -/turf/open/floor{ - dir = 8; - icon_state = "damaged3" - }, +/turf/open/floor/damaged3/west, /area/bigredv2/outside/medical) "cs" = ( /obj/item/ammo_casing/bullet, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3, /area/bigredv2/outside/medical) "ct" = ( /obj/effect/landmark/crap_item, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/medical) "cu" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 8; - icon_state = "damaged4" - }, +/turf/open/floor/damaged4/west, /area/bigredv2/outside/medical) "cv" = ( /obj/item/ammo_casing/bullet, -/turf/open/floor{ - dir = 8; - icon_state = "damaged4" - }, +/turf/open/floor/damaged4/west, /area/bigredv2/outside/medical) "cw" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/crap_item, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/medical) "cx" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 8; - icon_state = "damaged5" - }, +/turf/open/floor/damaged5/west, /area/bigredv2/outside/medical) "cy" = ( /obj/item/stack/sheet/metal, -/turf/open/floor{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/east, /area/bigredv2/outside/medical) "cz" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, /obj/item/shard, -/turf/open/floor{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/north, /area/bigredv2/outside/medical) "cA" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -897,9 +593,7 @@ amount = 1; icon_state = "coil2" }, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3, /area/bigredv2/outside/medical) "cB" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -909,20 +603,14 @@ amount = 1; icon_state = "coil2" }, -/turf/open/floor{ - dir = 8; - icon_state = "damaged3" - }, +/turf/open/floor/damaged3/west, /area/bigredv2/outside/medical) "cC" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 8; - icon_state = "damaged2" - }, +/turf/open/floor/damaged2/west, /area/bigredv2/outside/medical) "cD" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -933,10 +621,7 @@ amount = 1; icon_state = "coil2" }, -/turf/open/floor{ - dir = 8; - icon_state = "damaged4" - }, +/turf/open/floor/damaged4/west, /area/bigredv2/outside/medical) "cE" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -947,16 +632,11 @@ amount = 1; icon_state = "coil2" }, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, +/turf/open/floor/plating/panelscorched, /area/bigredv2/outside/medical) "cF" = ( /obj/structure/machinery/cm_vending/sorted/medical/no_access, -/turf/open/floor{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/north, /area/bigredv2/outside/medical) "cH" = ( /obj/structure/pipes/standard/manifold/hidden/green, @@ -964,10 +644,7 @@ amount = 1; icon_state = "coil2" }, -/turf/open/floor{ - dir = 8; - icon_state = "damaged5" - }, +/turf/open/floor/damaged5/west, /area/bigredv2/outside/medical) "cI" = ( /obj/effect/decal/cleanable/blood, @@ -978,10 +655,7 @@ amount = 1; icon_state = "coil2" }, -/turf/open/floor{ - dir = 8; - icon_state = "damaged3" - }, +/turf/open/floor/damaged3/west, /area/bigredv2/outside/medical) "cJ" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -991,10 +665,7 @@ amount = 1; icon_state = "coil2" }, -/turf/open/floor{ - dir = 8; - icon_state = "damaged5" - }, +/turf/open/floor/damaged5/west, /area/bigredv2/outside/medical) "cK" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -1007,10 +678,7 @@ icon_state = "coil2" }, /obj/item/ammo_casing/bullet, -/turf/open/floor{ - dir = 8; - icon_state = "damaged3" - }, +/turf/open/floor/damaged3/west, /area/bigredv2/outside/medical) "cL" = ( /obj/structure/pipes/standard/manifold/hidden/green, @@ -1018,17 +686,13 @@ amount = 1; icon_state = "coil2" }, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, +/turf/open/floor/plating/panelscorched, /area/bigredv2/outside/medical) "cM" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/medical) "cN" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -1038,38 +702,26 @@ amount = 1; icon_state = "coil2" }, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/medical) "cQ" = ( /obj/effect/decal/cleanable/dirt, /obj/item/shard, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/medical) "cR" = ( /obj/item/stack/sheet/metal, -/turf/open/floor{ - dir = 8; - icon_state = "damaged4" - }, +/turf/open/floor/damaged4/west, /area/bigredv2/outside/medical) "cS" = ( /obj/structure/surface/table, /obj/item/storage/pill_bottle/tramadol, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/medical) "cT" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 8; - icon_state = "damaged2" - }, +/turf/open/floor/damaged2/west, /area/bigredv2/outside/medical) "cU" = ( /obj/effect/decal/cleanable/blood, @@ -1077,55 +729,38 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/medical) "cV" = ( /obj/structure/pipes/standard/manifold/hidden/green, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/medical) "cW" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 8; - icon_state = "damaged4" - }, +/turf/open/floor/damaged4/west, /area/bigredv2/outside/medical) "cX" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 8; - icon_state = "damaged2" - }, +/turf/open/floor/damaged2/west, /area/bigredv2/outside/medical) "cY" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/blood, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/medical) "cZ" = ( /obj/effect/decal/cleanable/blood, /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/landmark/corpsespawner/wygoon, -/turf/open/floor{ - dir = 8; - icon_state = "damaged5" - }, +/turf/open/floor/damaged5/west, /area/bigredv2/outside/medical) "db" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/blood, /obj/effect/landmark/corpsespawner/wygoon, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/medical) "dc" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -1134,33 +769,23 @@ /obj/effect/decal/cleanable/blood, /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/corpsespawner/wygoon, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/medical) "dd" = ( /obj/item/stack/rods, /obj/item/shard, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, +/turf/open/floor/plating/panelscorched, /area/bigredv2/outside/medical) "df" = ( /obj/structure/bed/chair, -/turf/open/floor{ - icon_state = "darkish" - }, +/turf/open/floor/darkish, /area/bigredv2/outside/medical) "dg" = ( -/turf/open/floor{ - icon_state = "darkish" - }, +/turf/open/floor/darkish, /area/bigredv2/outside/medical) "dh" = ( /obj/structure/machinery/cm_vending/sorted/medical/no_access, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/medical) "di" = ( /obj/effect/decal/cleanable/dirt, @@ -1170,32 +795,23 @@ /area/bigredv2/outside/medical) "dj" = ( /obj/item/shard, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, +/turf/open/floor/plating/panelscorched, /area/bigredv2/outside/medical) "dk" = ( /obj/structure/girder, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/medical) "dl" = ( /obj/structure/bed/chair, /obj/structure/sign/nosmoking_2{ pixel_x = -28 }, -/turf/open/floor{ - icon_state = "darkish" - }, +/turf/open/floor/darkish, /area/bigredv2/outside/medical) "dm" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 8; - icon_state = "damaged3" - }, +/turf/open/floor/damaged3/west, /area/bigredv2/outside/medical) "dn" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -1206,51 +822,37 @@ icon_state = "coil2" }, /obj/item/ammo_casing/shell, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/medical) "do" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, /obj/item/ammo_casing/bullet, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/medical) "dp" = ( /obj/structure/sign/safety/autodoc{ pixel_x = 32 }, /obj/item/stack/sheet/metal, -/turf/open/floor{ - dir = 8; - icon_state = "damaged3" - }, +/turf/open/floor/damaged3/west, /area/bigredv2/outside/medical) "dq" = ( /obj/structure/sign/safety/autodoc{ pixel_x = -32 }, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3, /area/bigredv2/outside/medical) "dr" = ( /obj/effect/decal/cleanable/dirt, /obj/item/ammo_casing/bullet, -/turf/open/floor{ - dir = 8; - icon_state = "damaged3" - }, +/turf/open/floor/damaged3/west, /area/bigredv2/outside/medical) "ds" = ( /obj/effect/decal/cleanable/dirt, /obj/item/ammo_casing/bullet, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/medical) "dt" = ( /obj/effect/decal/cleanable/dirt, @@ -1263,72 +865,50 @@ name = "General Listening Channel"; pixel_x = 30 }, -/turf/open/floor{ - dir = 8; - icon_state = "damaged4" - }, +/turf/open/floor/damaged4/west, /area/bigredv2/outside/medical) "du" = ( /obj/item/ammo_casing/shell, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, +/turf/open/floor/plating/panelscorched, /area/bigredv2/outside/medical) "dv" = ( /obj/item/stack/sheet/metal, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, +/turf/open/floor/plating/panelscorched, /area/bigredv2/outside/medical) "dw" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/blood, -/obj/item/stack/sheet/metal{ - amount = 1 - }, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/obj/item/stack/sheet/metal, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/medical) "dx" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/medical) "dy" = ( /obj/structure/bed/roller, /obj/effect/decal/cleanable/blood, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/medical) "dz" = ( /obj/structure/machinery/camera/autoname{ network = list("interrogation") }, /obj/item/stack/sheet/metal, -/turf/open/floor{ - dir = 8; - icon_state = "damaged4" - }, +/turf/open/floor/damaged4/west, /area/bigredv2/outside/medical) "dA" = ( /obj/structure/bed/roller, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3, /area/bigredv2/outside/medical) "dB" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, +/turf/open/floor/plating/panelscorched, /area/bigredv2/outside/medical) "dC" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -1336,53 +916,39 @@ }, /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor{ - dir = 5; - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull/northeast, /area/bigredv2/outside/medical) "dD" = ( /obj/structure/surface/table, /obj/item/device/autopsy_scanner, -/turf/open/floor{ - dir = 5; - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull/northeast, /area/bigredv2/outside/medical) "dE" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/medical) "dF" = ( /obj/effect/decal/cleanable/blood, /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/medical) "dG" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/item/stack/sheet/metal, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/medical) "dH" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/medical) "dI" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -1390,141 +956,97 @@ }, /obj/effect/decal/cleanable/dirt, /obj/item/ammo_casing/bullet, -/turf/open/floor{ - dir = 8; - icon_state = "damaged3" - }, +/turf/open/floor/damaged3/west, /area/bigredv2/outside/medical) "dL" = ( /obj/item/stack/sheet/metal, /obj/item/ammo_casing/bullet, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/medical) "dM" = ( /obj/item/clothing/gloves/latex, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/medical) "dN" = ( /obj/effect/decal/cleanable/vomit, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/medical) "dP" = ( /obj/item/ammo_casing/shell, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/medical) "dQ" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "whitegreenfull" - }, +/turf/open/floor/whitegreenfull, /area/bigredv2/outside/medical) "dR" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor{ - icon_state = "whitegreenfull" - }, +/turf/open/floor/whitegreenfull, /area/bigredv2/outside/medical) "dS" = ( /obj/structure/surface/table, /obj/item/reagent_container/food/snacks/sliceable/pizza/margherita, -/turf/open/floor{ - dir = 5; - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull/northeast, /area/bigredv2/outside/medical) "dT" = ( /obj/structure/bed/chair, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/medical) "dU" = ( /obj/structure/bed/chair, /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/medical) "dV" = ( /obj/structure/machinery/medical_pod/bodyscanner, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/medical) "dW" = ( /obj/structure/machinery/body_scanconsole, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 6; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/southeast, /area/bigredv2/outside/medical) "dX" = ( /obj/item/stack/rods, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, +/turf/open/floor/plating/panelscorched, /area/bigredv2/outside/medical) "dY" = ( /obj/item/shard, -/turf/open/floor{ - icon_state = "darkish" - }, +/turf/open/floor/darkish, /area/bigredv2/outside/medical) "dZ" = ( /obj/structure/bed/chair, -/turf/open/floor{ - dir = 8; - icon_state = "damaged2" - }, +/turf/open/floor/damaged2/west, /area/bigredv2/outside/medical) "ea" = ( /obj/structure/machinery/cm_vending/sorted/medical/blood, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/medical) "eb" = ( /obj/structure/machinery/medical_pod/sleeper, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/medical) "ec" = ( /obj/structure/closet/secure_closet/medical1, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/medical) "ed" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "whitegreenfull" - }, +/turf/open/floor/whitegreenfull, /area/bigredv2/outside/medical) "ee" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/landmark/corpsespawner/doctor, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/medical) "ef" = ( /obj/structure/sink{ @@ -1534,39 +1056,28 @@ pixel_y = 2 }, /obj/item/tool/surgery/scalpel/manager, -/turf/open/floor{ - dir = 5; - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull/northeast, /area/bigredv2/outside/medical) "eg" = ( /obj/item/device/healthanalyzer, /obj/structure/pipes/vents/pump, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, +/turf/open/floor/plating/panelscorched, /area/bigredv2/outside/medical) "eh" = ( /obj/item/stack/sheet/metal, -/turf/open/floor{ - icon_state = "wall_thermite" - }, +/turf/open/floor/wall_thermite, /area/bigredv2/outside/medical) "ei" = ( /obj/structure/machinery/sleep_console, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/medical) "ej" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, /obj/item/ammo_casing/bullet, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, +/turf/open/floor/plating/panelscorched, /area/bigredv2/outside/medical) "ek" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -1575,9 +1086,7 @@ /obj/structure/machinery/door/airlock/almayer/medical/glass/colony{ name = "\improper Medical Clinic Storage" }, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/medical) "el" = ( /obj/item/clothing/glasses/meson, @@ -1585,26 +1094,20 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/medical) "em" = ( /obj/item/reagent_container/pill/happy, /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/medical) "en" = ( /obj/structure/machinery/door/airlock/almayer/medical/glass/colony{ name = "\improper Medical Clinic Storage" }, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/medical) "eo" = ( /obj/structure/machinery/vending/snack, @@ -1612,46 +1115,32 @@ dir = 1 }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/medical) "ep" = ( /obj/structure/bed/chair, /obj/item/ammo_casing/shell, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/medical) "eq" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "whitegreenfull" - }, +/turf/open/floor/whitegreenfull, /area/bigredv2/outside/medical) "er" = ( /obj/structure/bed/chair, /obj/item/shard, -/turf/open/floor{ - dir = 8; - icon_state = "damaged4" - }, +/turf/open/floor/damaged4/west, /area/bigredv2/outside/medical) "es" = ( -/turf/open/floor{ - dir = 5; - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull/northeast, /area/bigredv2/outside/medical) "et" = ( /obj/item/reagent_container/spray/cleaner{ desc = "Someone has crossed out the Space from Space Cleaner and written in Surgery. 'Do not remove under punishment of death!!!' is scrawled on the back."; name = "Surgery Cleaner" }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/medical) "eu" = ( /obj/effect/decal/cleanable/dirt, @@ -1660,48 +1149,32 @@ name = "Storm Shutters"; pixel_y = -32 }, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/medical) "ev" = ( /obj/structure/bed/chair, /obj/effect/decal/cleanable/dirt, /obj/item/shard, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/medical) "ew" = ( /obj/structure/surface/table, -/turf/open/floor{ - dir = 5; - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull/northeast, /area/bigredv2/outside/medical) "ex" = ( /obj/structure/surface/table, /obj/item/storage/box/masks, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 8; - icon_state = "damaged4" - }, +/turf/open/floor/damaged4/west, /area/bigredv2/outside/medical) "ey" = ( /obj/effect/decal/cleanable/dirt, /obj/item/frame/table, -/turf/open/floor{ - dir = 1; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/north, /area/bigredv2/outside/medical) "ez" = ( /obj/item/device/healthanalyzer, -/turf/open/floor{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/east, /area/bigredv2/outside/medical) "eA" = ( /obj/structure/sign/safety/medical{ @@ -1709,25 +1182,19 @@ }, /obj/effect/decal/cleanable/dirt, /obj/item/clothing/head/surgery/blue, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/medical) "eB" = ( /obj/effect/decal/cleanable/dirt, /obj/item/tool/extinguisher, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/medical) "eC" = ( /obj/structure/bed/chair{ dir = 4 }, /obj/item/trash/kepler, -/turf/open/floor{ - icon_state = "whitegreenfull" - }, +/turf/open/floor/whitegreenfull, /area/bigredv2/outside/medical) "eD" = ( /obj/structure/surface/table/reinforced, @@ -1735,180 +1202,123 @@ phone_category = "Solaris Ridge"; phone_id = "Clinic Reception" }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/medical) "eE" = ( /obj/structure/closet/secure_closet/medical2, -/turf/open/floor{ - dir = 5; - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull/northeast, /area/bigredv2/outside/medical) "eF" = ( /obj/structure/closet/secure_closet/medical1, -/turf/open/floor{ - dir = 8; - icon_state = "damaged4" - }, +/turf/open/floor/damaged4/west, /area/bigredv2/outside/medical) "eG" = ( /obj/structure/machinery/bioprinter{ stored_metal = 1000 }, -/turf/open/floor{ - dir = 5; - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull/northeast, /area/bigredv2/outside/medical) "eH" = ( /obj/structure/machinery/optable, /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/corpsespawner/wygoon, /obj/item/reagent_container/food/snacks/margheritaslice, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/medical) "eI" = ( /obj/structure/curtain/medical, -/turf/open/floor{ - dir = 8; - icon_state = "damaged5" - }, +/turf/open/floor/damaged5/west, /area/bigredv2/outside/medical) "eJ" = ( /obj/effect/decal/cleanable/dirt, /obj/item/ammo_casing/shell, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, +/turf/open/floor/plating/panelscorched, /area/bigredv2/outside/medical) "eK" = ( /obj/effect/decal/cleanable/dirt, /obj/item/tool/surgery/bonesetter, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/medical) "eL" = ( /obj/structure/machinery/light{ dir = 4 }, /obj/item/shard, -/turf/open/floor{ - dir = 8; - icon_state = "damaged2" - }, +/turf/open/floor/damaged2/west, /area/bigredv2/outside/medical) "eM" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/blood, /obj/effect/landmark/crap_item, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/medical) "eN" = ( /obj/effect/decal/cleanable/blood, /obj/item/reagent_container/food/snacks/margheritaslice, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/medical) "eO" = ( /obj/effect/decal/cleanable/blood/gibs/body, -/turf/open/floor{ - dir = 8; - icon_state = "damaged2" - }, +/turf/open/floor/damaged2/west, /area/bigredv2/outside/medical) "eP" = ( /obj/effect/decal/cleanable/dirt, /obj/item/ammo_casing/bullet, -/turf/open/floor{ - dir = 8; - icon_state = "damaged5" - }, +/turf/open/floor/damaged5/west, /area/bigredv2/outside/medical) "eQ" = ( /obj/structure/surface/table, /obj/item/trash/burger, /obj/effect/decal/cleanable/dirt, /obj/item/frame/table, -/turf/open/floor{ - dir = 9; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/northwest, /area/bigredv2/outside/medical) "eR" = ( /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/medical) "eS" = ( /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor{ - icon_state = "whitegreenfull" - }, +/turf/open/floor/whitegreenfull, /area/bigredv2/outside/medical) "eT" = ( -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/bigredv2/outside/c) "eU" = ( -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/bigredv2/outside/medical) "eV" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/machinery/door/airlock/multi_tile/almayer/medidoor/colony{ name = "\improper Medical Clinic" }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/medical) "eW" = ( /obj/effect/landmark/corpsespawner/doctor, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/medical) "eX" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor{ - dir = 8; - icon_state = "damaged5" - }, +/turf/open/floor/damaged5/west, /area/bigredv2/outside/medical) "eY" = ( /obj/structure/bed, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/east, /area/bigredv2/outside/medical) "eZ" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor{ - dir = 8; - icon_state = "damaged5" - }, +/turf/open/floor/damaged5/west, /area/bigredv2/outside/medical) "fa" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -1917,32 +1327,23 @@ /obj/structure/machinery/door/airlock/almayer/medical/glass/colony{ name = "\improper Medical Clinic Operating Theatre" }, -/turf/open/floor{ - dir = 8; - icon_state = "damaged2" - }, +/turf/open/floor/damaged2/west, /area/bigredv2/outside/medical) "fb" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, /obj/item/ammo_casing/bullet, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, +/turf/open/floor/plating/panelscorched, /area/bigredv2/outside/medical) "fc" = ( /obj/effect/decal/cleanable/dirt, /obj/item/ammo_casing/shell, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3, /area/bigredv2/outside/medical) "fd" = ( /obj/item/reagent_container/pill/happy, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/medical) "fe" = ( /obj/structure/sink{ @@ -1950,37 +1351,26 @@ icon_state = "sink"; pixel_x = 11 }, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/medical) "ff" = ( /obj/item/clothing/mask/breath/medical, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/medical) "fg" = ( /obj/item/stack/sheet/metal, /obj/item/ammo_casing/bullet, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, +/turf/open/floor/plating/panelscorched, /area/bigredv2/outside/medical) "fh" = ( /obj/structure/surface/table/reinforced, /obj/item/trash/buritto, -/turf/open/floor{ - icon_state = "whitegreenfull" - }, +/turf/open/floor/whitegreenfull, /area/bigredv2/outside/medical) "fj" = ( /obj/effect/decal/cleanable/vomit, -/turf/open/floor{ - dir = 8; - icon_state = "damaged4" - }, +/turf/open/floor/damaged4/west, /area/bigredv2/outside/medical) "fk" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -1988,100 +1378,74 @@ }, /obj/effect/decal/cleanable/dirt, /obj/item/ammo_casing/shell, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/medical) "fl" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/medical) "fm" = ( /obj/item/stack/sheet/metal, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/bigredv2/outside/c) "fn" = ( /obj/structure/bed, /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/medical) "fo" = ( /obj/structure/machinery/light, /obj/item/tool/surgery/cautery, -/turf/open/floor{ - dir = 5; - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull/northeast, /area/bigredv2/outside/medical) "fp" = ( /obj/structure/machinery/medical_pod/bodyscanner, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/medical) "fq" = ( /obj/structure/bed, /obj/effect/landmark/monkey_spawn, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/medical) "fr" = ( /obj/effect/decal/cleanable/dirt, /obj/item/frame/table, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/bigredv2/outside/medical) "fs" = ( /obj/item/frame/table, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/bigredv2/outside/medical) +"gS" = ( +/obj/structure/machinery/light, +/turf/open/floor/asteroidwarning/north, +/area/bigredv2/outside/n) "hn" = ( -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/bigredv2/outside/medical) "om" = ( -/obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/asteroidwarning, +/area/bigredv2/outside/n) +"CW" = ( +/turf/open/floor/delivery, /area/bigredv2/outside/medical) "DL" = ( /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3, /area/bigredv2/outside/medical) "GP" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor{ - dir = 8; - icon_state = "damaged3" - }, +/turf/open/floor/damaged3/west, /area/bigredv2/outside/medical) "MK" = ( /obj/effect/landmark/objective_landmark/science, -/turf/open/floor{ - dir = 8; - icon_state = "damaged5" - }, +/turf/open/floor/damaged5/west, /area/bigredv2/outside/medical) "Xh" = ( /obj/structure/transmitter/colony_net{ @@ -2090,10 +1454,7 @@ phone_id = "Clinic Labs"; pixel_y = 24 }, -/turf/open/floor{ - dir = 8; - icon_state = "damaged2" - }, +/turf/open/floor/damaged2/west, /area/bigredv2/outside/medical) (1,1,1) = {" @@ -2631,8 +1992,8 @@ hn (20,1,1) = {" af as -aG -bi +bw +bw bw bO ce @@ -2658,11 +2019,11 @@ hn "} (21,1,1) = {" af -at -ax -aU -ai -bP +om +bh +bh +bh +cn cf cm bi @@ -2686,12 +2047,12 @@ hn "} (22,1,1) = {" af -at -at -aM -bu -aT -ab +om +bh +bh +bh +bQ +CW aT bu cN @@ -2715,12 +2076,12 @@ aa (23,1,1) = {" af om -at +bh bh bh bQ -aa -cn +ac +bK an bP cZ @@ -2742,12 +2103,12 @@ aa "} (24,1,1) = {" af -au -au -au -au -bF -aa +om +bh +bh +bh +bQ +ac ax cx cQ @@ -2770,12 +2131,12 @@ eV "} (25,1,1) = {" af -av -av -av -av -at -aa +om +bh +bh +bh +bQ +ac bz cy cR @@ -2798,11 +2159,11 @@ am "} (26,1,1) = {" af -at -at -at -at -at +om +bh +bh +bh +gS aa ap ap diff --git a/maps/map_files/CORSAT/Corsat.dmm b/maps/map_files/CORSAT/Corsat.dmm index 7029d71a6076..ea56dacf0fa3 100644 --- a/maps/map_files/CORSAT/Corsat.dmm +++ b/maps/map_files/CORSAT/Corsat.dmm @@ -30,27 +30,19 @@ /turf/open/floor/wood, /area/corsat/gamma/residential/east) "aag" = ( -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/gamma/hangar/flightcontrol) "aah" = ( /obj/effect/landmark/teleporter_loc/corsat_sigma_remote{ index = "1" }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "corsat_teleporter_static" - }, +/turf/open/floor/corsat/corsat_teleporter_static/southwest, /area/corsat/gamma/sigmaremote/teleporter) "aai" = ( /obj/structure/noticeboard{ pixel_y = 30 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/gamma/residential/west) "aaj" = ( /turf/closed/wall/r_wall/biodome/biodome_unmeltable, @@ -63,10 +55,7 @@ /turf/open/floor/plating, /area/corsat/gamma/residential/east) "aam" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/north, /area/corsat/gamma/hangar/office) "aan" = ( /turf/closed/wall/r_wall/biodome/biodome_unmeltable, @@ -91,50 +80,35 @@ /turf/open/floor/plating, /area/corsat/gamma/sigmaremote) "aas" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/west, /area/corsat/gamma/sigmaremote) "aat" = ( /obj/structure/surface/rack, /obj/structure/prop/mech/drill, -/turf/open/floor/corsat{ - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow, /area/corsat/sigma/south/robotics) "aau" = ( /obj/structure/machinery/power/smes/buildable{ capacity = 1e+006; dir = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/north, /area/corsat/gamma/engineering/core) "aav" = ( -/turf/open/floor/corsat{ - dir = 9; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/northwest, /area/corsat/gamma/sigmaremote) "aaw" = ( /obj/structure/machinery/power/smes/buildable{ capacity = 1e+006; dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/southeast/generator) "aax" = ( /turf/closed/wall/r_wall/biodome, /area/corsat/gamma/sigmaremote) "aay" = ( -/turf/open/floor/almayer{ - icon_state = "tcomms" - }, +/turf/open/floor/almayer/tcomms, /area/corsat/gamma/sigmaremote) "aaz" = ( /obj/structure/window/framed/corsat/research, @@ -144,10 +118,7 @@ /obj/effect/landmark/teleporter_loc/corsat_sigma_remote{ index = "2" }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "corsat_teleporter_static" - }, +/turf/open/floor/corsat/corsat_teleporter_static/southwest, /area/corsat/gamma/sigmaremote/teleporter) "aaB" = ( /obj/structure/surface/table/woodentable, @@ -163,14 +134,10 @@ req_access_txt = "101" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/gamma/hangar/security) "aaD" = ( -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/hangar) "aaE" = ( /obj/structure/window/framed/corsat/hull, @@ -179,21 +146,16 @@ "aaF" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ dir = 1; - locked = 0; name = "CORSAT Armory"; req_access_txt = "101" }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/security/armory) "aaG" = ( /turf/open/floor/plating, /area/corsat/gamma/hangar) "aaH" = ( -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/gamma/hangar/office) "aaI" = ( /obj/structure/machinery/landinglight/ds1/delaytwo, @@ -204,79 +166,47 @@ /turf/open/floor/plating, /area/corsat/gamma/hangar) "aaK" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "plating_striped" - }, +/turf/open/floor/almayer/plating_striped/north, /area/corsat/gamma/sigmaremote) "aaL" = ( -/turf/open/floor/almayer{ - icon_state = "plating_striped" - }, +/turf/open/floor/almayer/plating_striped, /area/corsat/gamma/sigmaremote) "aaM" = ( /obj/structure/machinery/landinglight/ds1, -/turf/open/floor/plating{ - dir = 4; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/east, /area/corsat/gamma/hangar) "aaN" = ( -/turf/open/floor/plating{ - dir = 9; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/northwest, /area/corsat/gamma/hangar) "aaO" = ( -/turf/open/floor/plating{ - dir = 1; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/north, /area/corsat/gamma/hangar) "aaP" = ( -/turf/open/floor/plating{ - dir = 5; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/northeast, /area/corsat/gamma/hangar) "aaQ" = ( /obj/structure/machinery/landinglight/ds1/delaythree, -/turf/open/floor/plating{ - dir = 8; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/west, /area/corsat/gamma/hangar) "aaR" = ( /obj/structure/machinery/landinglight/ds1, /turf/open/floor/plating, /area/corsat/gamma/hangar) "aaS" = ( -/turf/open/floor/plating{ - dir = 8; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/west, /area/corsat/gamma/hangar) "aaU" = ( -/turf/open/floor/plating{ - dir = 4; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/east, /area/corsat/gamma/hangar) "aaV" = ( /obj/structure/machinery/landinglight/ds1/delaythree, -/turf/open/floor/plating{ - dir = 4; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/east, /area/corsat/gamma/hangar) "aaW" = ( /obj/effect/landmark/teleporter_loc/corsat_sigma_remote{ index = "3" }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "corsat_teleporter_static" - }, +/turf/open/floor/corsat/corsat_teleporter_static/southwest, /area/corsat/gamma/sigmaremote/teleporter) "aaX" = ( /obj/structure/machinery/camera/autoname/lz_camera, @@ -284,10 +214,7 @@ /area/corsat/gamma/hangar) "aaY" = ( /obj/structure/machinery/landinglight/ds1/delaytwo, -/turf/open/floor/plating{ - dir = 8; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/west, /area/corsat/gamma/hangar) "aaZ" = ( /obj/structure/machinery/landinglight/ds1/delaythree{ @@ -340,35 +267,25 @@ /obj/structure/machinery/landinglight/ds1/delaytwo{ dir = 4 }, -/turf/open/floor/plating{ - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate, /area/corsat/gamma/hangar) "abk" = ( /obj/structure/machinery/landinglight/ds1{ dir = 8 }, -/turf/open/floor/plating{ - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate, /area/corsat/gamma/hangar) "abl" = ( /obj/structure/machinery/landinglight/ds1/delaythree{ dir = 4 }, -/turf/open/floor/plating{ - dir = 1; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/north, /area/corsat/gamma/hangar) "abm" = ( /obj/structure/machinery/landinglight/ds1/delaythree{ dir = 8 }, -/turf/open/floor/plating{ - dir = 1; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/north, /area/corsat/gamma/hangar) "abn" = ( /obj/structure/surface/rack, @@ -378,33 +295,21 @@ /obj/item/ammo_magazine/pistol/mod88, /obj/item/ammo_magazine/pistol/mod88, /obj/item/ammo_magazine/pistol/mod88, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/corsat/red/northwest, /area/corsat/gamma/security/armory) "abo" = ( /obj/structure/machinery/camera/autoname/lz_camera, -/turf/open/floor/plating{ - dir = 8; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/west, /area/corsat/gamma/hangar) "abp" = ( /obj/structure/machinery/camera/autoname/lz_camera, -/turf/open/floor/plating{ - dir = 4; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/east, /area/corsat/gamma/hangar) "abq" = ( /obj/effect/landmark/teleporter_loc/corsat_sigma_remote{ index = "4" }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "corsat_teleporter_static" - }, +/turf/open/floor/corsat/corsat_teleporter_static/southwest, /area/corsat/gamma/sigmaremote/teleporter) "abr" = ( /obj/structure/bed/chair/wood/normal{ @@ -436,9 +341,7 @@ /obj/structure/surface/rack, /obj/item/cell/hyper, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/corsat{ - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow, /area/corsat/sigma/south/robotics) "abx" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, @@ -448,17 +351,13 @@ /obj/structure/machinery/landinglight/ds1/delayone{ dir = 4 }, -/turf/open/floor/plating{ - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate, /area/corsat/gamma/hangar) "abz" = ( /obj/structure/machinery/landinglight/ds1/delayone{ dir = 8 }, -/turf/open/floor/plating{ - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate, /area/corsat/gamma/hangar) "abA" = ( /turf/closed/wall/r_wall/biodome, @@ -467,19 +366,13 @@ /obj/structure/machinery/landinglight/ds1/delaytwo{ dir = 4 }, -/turf/open/floor/plating{ - dir = 1; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/north, /area/corsat/gamma/hangar) "abC" = ( /obj/structure/machinery/landinglight/ds1{ dir = 8 }, -/turf/open/floor/plating{ - dir = 1; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/north, /area/corsat/gamma/hangar) "abD" = ( /turf/closed/wall/biodome, @@ -518,10 +411,7 @@ /obj/effect/landmark/teleporter_loc/corsat_sigma_remote{ index = "7" }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "corsat_teleporter_static" - }, +/turf/open/floor/corsat/corsat_teleporter_static/southwest, /area/corsat/gamma/sigmaremote/teleporter) "abL" = ( /obj/structure/bookcase{ @@ -548,16 +438,10 @@ /turf/closed/wall/biodome, /area/corsat/gamma/residential/researcher) "abQ" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "whitetancorner" - }, +/turf/open/floor/corsat/whitetancorner/west, /area/corsat/gamma/residential/researcher) "abR" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/north, /area/corsat/gamma/residential/researcher) "abS" = ( /obj/structure/window/framed/corsat, @@ -574,43 +458,28 @@ /turf/open/floor/wood, /area/corsat/gamma/residential/east) "abU" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/gamma/residential/researcher) "abV" = ( -/turf/open/floor/plating{ - dir = 10; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/southwest, /area/corsat/gamma/hangar) "abX" = ( -/turf/open/floor/plating/icefloor{ - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate, /area/corsat/gamma/hangar) "abY" = ( -/turf/open/floor/plating{ - dir = 6; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/southeast, /area/corsat/gamma/hangar) "abZ" = ( /obj/structure/machinery/landinglight/ds1{ dir = 4 }, -/turf/open/floor/plating/icefloor{ - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate, /area/corsat/gamma/hangar) "aca" = ( /obj/structure/machinery/landinglight/ds1/delaytwo{ dir = 8 }, -/turf/open/floor/plating/icefloor{ - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate, /area/corsat/gamma/hangar) "acc" = ( /obj/structure/closet/cabinet, @@ -631,29 +500,20 @@ /obj/structure/machinery/landinglight/ds1/delayone{ dir = 4 }, -/turf/open/floor/plating{ - dir = 1; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/north, /area/corsat/gamma/hangar) "acf" = ( /obj/structure/machinery/landinglight/ds1/delayone{ dir = 8 }, -/turf/open/floor/plating{ - dir = 1; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/north, /area/corsat/gamma/hangar) "acg" = ( /obj/structure/machinery/door/airlock/almayer/generic{ dir = 1; name = "Bathroom" }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "whitebluefull" - }, +/turf/open/floor/corsat/whitebluefull/southwest, /area/corsat/gamma/residential/researcher) "ach" = ( /obj/structure/bed, @@ -670,25 +530,17 @@ dir = 1 }, /obj/item/tool/soap, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "whitebluefull" - }, +/turf/open/floor/corsat/whitebluefull/southwest, /area/corsat/gamma/residential/researcher) "acj" = ( /obj/structure/sink{ dir = 8; pixel_x = -11 }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "whitebluefull" - }, +/turf/open/floor/corsat/whitebluefull/southwest, /area/corsat/gamma/residential/researcher) "ack" = ( -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/residential/east) "acl" = ( /obj/structure/machinery/light{ @@ -697,10 +549,7 @@ /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "white" - }, +/turf/open/floor/corsat/white/west, /area/corsat/gamma/residential/east) "acm" = ( /obj/structure/machinery/shower{ @@ -710,10 +559,7 @@ dir = 1; layer = 2.8 }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "whitebluefull" - }, +/turf/open/floor/corsat/whitebluefull/southwest, /area/corsat/gamma/residential/researcher) "acn" = ( /obj/structure/machinery/landinglight/ds1{ @@ -731,19 +577,13 @@ /obj/structure/machinery/landinglight/ds1/delaytwo{ dir = 1 }, -/turf/open/floor/plating{ - dir = 4; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/east, /area/corsat/gamma/hangar) "acq" = ( /obj/structure/machinery/landinglight/ds1/delaythree{ dir = 1 }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/west, /area/corsat/gamma/hangar) "acr" = ( /obj/structure/machinery/landinglight/ds1/delaytwo{ @@ -755,19 +595,13 @@ /obj/structure/machinery/landinglight/ds1/delaythree{ dir = 1 }, -/turf/open/floor/plating{ - dir = 4; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/east, /area/corsat/gamma/hangar) "act" = ( /obj/structure/machinery/landinglight/ds1{ dir = 1 }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/west, /area/corsat/gamma/hangar) "acu" = ( /obj/structure/bookcase/manuals/research_and_development, @@ -787,29 +621,20 @@ /obj/structure/machinery/door/airlock/almayer/generic{ name = "\improper Bathroom" }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "whitebluefull" - }, +/turf/open/floor/corsat/whitebluefull/southwest, /area/corsat/gamma/residential/researcher) "acx" = ( /obj/structure/sink{ dir = 4; pixel_x = 11 }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "whitebluefull" - }, +/turf/open/floor/corsat/whitebluefull/southwest, /area/corsat/gamma/residential/researcher) "acy" = ( /obj/effect/landmark/teleporter_loc/corsat_sigma_remote{ index = "8" }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "corsat_teleporter_static" - }, +/turf/open/floor/corsat/corsat_teleporter_static/southwest, /area/corsat/gamma/sigmaremote/teleporter) "acz" = ( /obj/structure/coatrack, @@ -830,35 +655,22 @@ /obj/structure/machinery/shower{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "whitebluefull" - }, +/turf/open/floor/corsat/whitebluefull/southwest, /area/corsat/gamma/residential/researcher) "acC" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/east, /area/corsat/gamma/foyer) "acD" = ( -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/foyer) "acE" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/north, /area/corsat/gamma/foyer) "acF" = ( /turf/closed/wall/r_wall/biodome, /area/corsat/gamma/hangar) "acG" = ( -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/hangar) "acH" = ( /obj/structure/bed/chair/office/dark, @@ -875,18 +687,13 @@ /obj/effect/landmark/teleporter_loc/corsat_sigma_remote{ index = "5" }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "corsat_teleporter_static" - }, +/turf/open/floor/corsat/corsat_teleporter_static/southwest, /area/corsat/gamma/sigmaremote/teleporter) "acK" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/residential) "acL" = ( /obj/structure/window/framed/corsat/hull, @@ -899,56 +706,38 @@ /turf/closed/wall/biodome, /area/corsat/gamma/residential/lounge) "acO" = ( -/turf/open/floor/corsat{ - icon_state = "whitecorner" - }, +/turf/open/floor/corsat/whitecorner, /area/corsat/gamma/residential/east) "acP" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_21" }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "darkgreen" - }, +/turf/open/floor/corsat/darkgreen/north, /area/corsat/gamma/hallwaysouth) "acQ" = ( /obj/structure/bed/sofa/vert/grey/top, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/hangar/monorail) "acR" = ( /obj/structure/machinery/light, /obj/structure/bed/sofa/vert/grey/bot, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/hangar/monorail) "acS" = ( /obj/effect/landmark/crap_item, /obj/structure/surface/table/woodentable, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "white" - }, +/turf/open/floor/corsat/white/east, /area/corsat/gamma/residential) "acT" = ( /obj/structure/surface/table/woodentable, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "white" - }, +/turf/open/floor/corsat/white/west, /area/corsat/gamma/residential/east) "acU" = ( /obj/effect/landmark/teleporter_loc/corsat_sigma_remote{ index = "6" }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "corsat_teleporter_static" - }, +/turf/open/floor/corsat/corsat_teleporter_static/southwest, /area/corsat/gamma/sigmaremote/teleporter) "acV" = ( /obj/structure/window/framed/corsat, @@ -963,19 +752,13 @@ dir = 1 }, /obj/item/tool/soap, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "whitebluefull" - }, +/turf/open/floor/corsat/whitebluefull/southwest, /area/corsat/gamma/residential/researcher) "acX" = ( /obj/effect/landmark/teleporter_loc/corsat_sigma_remote{ index = "10" }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "corsat_teleporter_static" - }, +/turf/open/floor/corsat/corsat_teleporter_static/southwest, /area/corsat/gamma/sigmaremote/teleporter) "acY" = ( /obj/structure/surface/rack, @@ -987,19 +770,13 @@ /obj/effect/landmark/teleporter_loc/corsat_sigma_remote{ index = "11" }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "corsat_teleporter_static" - }, +/turf/open/floor/corsat/corsat_teleporter_static/southwest, /area/corsat/gamma/sigmaremote/teleporter) "ada" = ( /obj/effect/landmark/teleporter_loc/corsat_sigma_remote{ index = "12" }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "corsat_teleporter_static" - }, +/turf/open/floor/corsat/corsat_teleporter_static/southwest, /area/corsat/gamma/sigmaremote/teleporter) "adb" = ( /turf/closed/wall/r_wall/biodome, @@ -1012,44 +789,29 @@ /obj/item/ammo_magazine/pistol/mod88, /obj/item/ammo_magazine/pistol/mod88, /obj/item/ammo_magazine/pistol/mod88, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/corsat/gamma/security/armory) "add" = ( /turf/closed/wall/biodome, /area/corsat/sigma/cafe) "ade" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "white" - }, +/turf/open/floor/corsat/white/east, /area/corsat/gamma/residential/east) "adf" = ( /obj/effect/landmark/teleporter_loc/corsat_sigma_remote{ index = "13" }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "corsat_teleporter_static" - }, +/turf/open/floor/corsat/corsat_teleporter_static/southwest, /area/corsat/gamma/sigmaremote/teleporter) "adg" = ( /obj/effect/landmark/crap_item, /obj/structure/surface/table/woodentable, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "white" - }, +/turf/open/floor/corsat/white/east, /area/corsat/gamma/residential/east) "adh" = ( /obj/structure/bed/chair, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "white" - }, +/turf/open/floor/corsat/white/northwest, /area/corsat/gamma/residential/east) "adi" = ( /obj/structure/surface/table/woodentable, @@ -1067,18 +829,12 @@ /obj/effect/landmark/teleporter_loc/corsat_sigma_remote{ index = "14" }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "corsat_teleporter_static" - }, +/turf/open/floor/corsat/corsat_teleporter_static/southwest, /area/corsat/gamma/sigmaremote/teleporter) "adl" = ( /obj/structure/surface/table/woodentable, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "white" - }, +/turf/open/floor/corsat/white/west, /area/corsat/gamma/residential) "adm" = ( /obj/structure/bed/chair/wood/normal, @@ -1094,16 +850,10 @@ /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "white" - }, +/turf/open/floor/corsat/white/southwest, /area/corsat/gamma/residential/east) "adp" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/east, /area/corsat/sigma/south/engineering) "adq" = ( /obj/structure/window/framed/corsat/hull/security, @@ -1125,9 +875,7 @@ /area/corsat/sigma/cafe) "adu" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/hangar/security) "adv" = ( /obj/structure/surface/table/woodentable, @@ -1140,10 +888,7 @@ /obj/item/ammo_magazine/smg/mp5, /obj/item/weapon/gun/smg/mp5, /obj/structure/surface/rack, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/corsat/gamma/security/armory) "adx" = ( /obj/structure/surface/table/woodentable, @@ -1152,14 +897,10 @@ /area/corsat/gamma/residential/east) "ady" = ( /obj/structure/fence, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/hangar/checkpoint) "adz" = ( -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/hangar/checkpoint) "adA" = ( /obj/structure/surface/table/reinforced, @@ -1169,26 +910,19 @@ /obj/structure/machinery/door/window/brigdoor/eastleft{ name = "Identification Desk" }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/hangar/checkpoint) "adB" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_18" }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/corsat/gamma/residential/lounge) "adC" = ( /obj/structure/bookcase{ icon_state = "book-5" }, -/turf/open/floor/corsat{ - icon_state = "spiralwoodalt" - }, +/turf/open/floor/corsat/spiralwoodalt, /area/corsat/gamma/residential/lounge) "adD" = ( /obj/structure/coatrack, @@ -1209,10 +943,7 @@ /turf/open/floor/wood, /area/corsat/gamma/residential/east) "adH" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/gamma/residential/west) "adI" = ( /turf/closed/wall/r_wall/biodome, @@ -1224,10 +955,7 @@ /obj/structure/flora/pottedplant{ icon_state = "pottedplant_21" }, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/northeast, /area/corsat/gamma/residential/west) "adL" = ( /obj/structure/window/framed/corsat, @@ -1250,16 +978,10 @@ /obj/structure/flora/pottedplant{ icon_state = "pottedplant_10" }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/corsat/gamma/residential/lounge) "adP" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/corsat/sigma/cafe) "adQ" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ @@ -1281,20 +1003,13 @@ /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "white" - }, +/turf/open/floor/corsat/white/east, /area/corsat/gamma/residential/east) "adT" = ( -/turf/open/floor/corsat{ - icon_state = "darkgreen" - }, +/turf/open/floor/corsat/darkgreen, /area/corsat/gamma/foyer) "adU" = ( -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/hangar/cargo) "adV" = ( /turf/closed/wall/r_wall/biodome/biodome_unmeltable, @@ -1305,10 +1020,7 @@ pixel_x = -24; start_charge = 0 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/gamma/hangar) "adX" = ( /obj/structure/fence, @@ -1321,24 +1033,16 @@ /turf/open/floor/wood, /area/corsat/gamma/residential/east) "adZ" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplecorner" - }, +/turf/open/floor/corsat/purplecorner/north, /area/corsat/gamma/residential) "aea" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "white" - }, +/turf/open/floor/corsat/white/east, /area/corsat/gamma/residential) "aeb" = ( /turf/closed/wall/r_wall/biodome/biodome_unmeltable, /area/corsat/gamma/hangar/cargo) "aec" = ( -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/residential) "aed" = ( /obj/structure/surface/table/woodentable, @@ -1359,10 +1063,7 @@ /area/corsat/gamma/residential/east) "aeg" = ( /obj/structure/bed/chair/comfy/beige, -/turf/open/floor{ - dir = 8; - icon_state = "carpet6-2" - }, +/turf/open/floor/carpet6_2/west, /area/corsat/gamma/residential/lounge) "aei" = ( /obj/structure/bed, @@ -1386,10 +1087,7 @@ /turf/open/floor/plating, /area/corsat/gamma/hangar/cargo) "aem" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "white" - }, +/turf/open/floor/corsat/white/north, /area/corsat/gamma/residential) "aen" = ( /turf/open/mars, @@ -1399,36 +1097,25 @@ /area/corsat/gamma/biodome) "aep" = ( /obj/structure/bed/chair/comfy/beige, -/turf/open/floor{ - dir = 8; - icon_state = "carpet14-10" - }, +/turf/open/floor/carpet14_10/west, /area/corsat/gamma/residential/lounge) "aeq" = ( /obj/structure/bed/chair/comfy/beige, -/turf/open/floor{ - dir = 8; - icon_state = "carpet10-8" - }, +/turf/open/floor/carpet10_8/west, /area/corsat/gamma/residential/lounge) "aer" = ( /turf/closed/wall/r_wall/biodome/biodome_unmeltable, /area/corsat/gamma/residential/lounge) "aes" = ( /obj/structure/machinery/vending/snack, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/hangar/arrivals) "aet" = ( /turf/closed/wall/r_wall/biodome/biodome_unmeltable, /area/corsat/gamma/cargo) "aeu" = ( /obj/structure/machinery/vending/cigarette/colony, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/corsat/gamma/residential/lounge) "aev" = ( /obj/structure/window/reinforced{ @@ -1445,10 +1132,7 @@ /obj/effect/landmark/teleporter_loc/corsat_sigma_remote{ index = "15" }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "corsat_teleporter_static" - }, +/turf/open/floor/corsat/corsat_teleporter_static/southwest, /area/corsat/gamma/sigmaremote/teleporter) "aex" = ( /obj/structure/window/framed/corsat/hull, @@ -1457,10 +1141,7 @@ "aey" = ( /obj/structure/bed/chair/comfy/beige, /obj/effect/landmark/survivor_spawner, -/turf/open/floor{ - dir = 8; - icon_state = "carpet14-10" - }, +/turf/open/floor/carpet14_10/west, /area/corsat/gamma/residential/lounge) "aez" = ( /obj/structure/surface/rack, @@ -1469,10 +1150,7 @@ /obj/item/weapon/gun/shotgun/combat, /obj/item/weapon/gun/shotgun/pump/dual_tube/cmb, /obj/item/weapon/gun/shotgun/pump/dual_tube/cmb, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/corsat/red/northeast, /area/corsat/gamma/security/armory) "aeA" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ @@ -1481,67 +1159,37 @@ req_access_txt = "101" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/security/cells) "aeB" = ( -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/hangar) "aeC" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "darkgreen" - }, +/turf/open/floor/corsat/darkgreen/north, /area/corsat/sigma/hangar/arrivals) "aeD" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "darkgreencorner" - }, +/turf/open/floor/corsat/darkgreencorner/north, /area/corsat/sigma/hangar/arrivals) "aeE" = ( -/turf/open/floor/plating{ - dir = 9; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/northwest, /area/corsat/sigma/hangar) "aeF" = ( -/turf/open/floor/plating{ - dir = 1; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/north, /area/corsat/sigma/hangar) "aeG" = ( -/turf/open/floor/plating{ - dir = 5; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/northeast, /area/corsat/sigma/hangar) "aeH" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/north, /area/corsat/gamma/hangar/flightcontrol) "aeI" = ( -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/hangar) "aeJ" = ( -/turf/open/floor/plating{ - dir = 8; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/west, /area/corsat/sigma/hangar) "aeL" = ( -/turf/open/floor/plating{ - dir = 4; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/east, /area/corsat/sigma/hangar) "aeM" = ( /turf/closed/wall/r_wall/biodome, @@ -1553,62 +1201,40 @@ "aeO" = ( /obj/structure/surface/table/reinforced, /obj/item/device/flashlight/lamp, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/corsat/red/northwest, /area/corsat/sigma/airlock/south/id) "aeP" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/corsat/gamma/sigmaremote) "aeQ" = ( -/turf/open/floor/corsat{ - dir = 9; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/northwest, /area/corsat/sigma/hangar) "aeR" = ( -/turf/open/floor/corsat{ - icon_state = "red" - }, +/turf/open/floor/corsat/red, /area/corsat/sigma/hangar) "aeS" = ( /obj/structure/surface/table/woodentable, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "white" - }, +/turf/open/floor/corsat/white/east, /area/corsat/gamma/residential) "aeT" = ( /obj/structure/surface/table/woodentable, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "white" - }, +/turf/open/floor/corsat/white/east, /area/corsat/gamma/residential/east) "aeU" = ( /turf/closed/wall/r_wall/biodome, /area/corsat/sigma/hangar) "aeV" = ( -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/sigma/hangar/arrivals) "aeW" = ( /obj/effect/landmark/crap_item, /obj/structure/surface/table/woodentable, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "white" - }, +/turf/open/floor/corsat/white/west, /area/corsat/gamma/residential) "aeX" = ( /obj/structure/surface/table/woodentable, @@ -1624,34 +1250,23 @@ }, /obj/structure/machinery/faxmachine, /obj/structure/surface/table/woodentable/fancy, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/gamma/security) "aeZ" = ( -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/sigma/airlock/south) "afa" = ( /turf/closed/wall/r_wall/biodome/biodome_unmeltable, /area/corsat/gamma/cargo/disposal) "afb" = ( /obj/structure/machinery/vending/snack, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/corsat/gamma/residential/lounge) "afc" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "darkgreen" - }, +/turf/open/floor/corsat/darkgreen/west, /area/corsat/gamma/hallwaysouth) "afd" = ( /obj/structure/window/framed/corsat/hull, @@ -1662,24 +1277,16 @@ /turf/open/floor/plating, /area/corsat/sigma/hangar/office) "aff" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/west, /area/corsat/sigma/hangar) "afg" = ( -/turf/open/floor/corsat{ - icon_state = "brown" - }, +/turf/open/floor/corsat/brown, /area/corsat/gamma/foyer) "afh" = ( /obj/effect/landmark/teleporter_loc/corsat_sigma_remote{ index = "16" }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "corsat_teleporter_static" - }, +/turf/open/floor/corsat/corsat_teleporter_static/southwest, /area/corsat/gamma/sigmaremote/teleporter) "afi" = ( /turf/open/floor/plating, @@ -1688,10 +1295,7 @@ /obj/structure/bed/chair/comfy/beige{ dir = 1 }, -/turf/open/floor{ - dir = 8; - icon_state = "carpet5-1" - }, +/turf/open/floor/carpet5_1/west, /area/corsat/gamma/residential/lounge) "afk" = ( /obj/structure/machinery/landinglight/ds2/delaytwo, @@ -1703,31 +1307,19 @@ /area/corsat/sigma/hangar) "afm" = ( /obj/structure/machinery/landinglight/ds2, -/turf/open/floor/plating{ - dir = 4; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/east, /area/corsat/sigma/hangar) "afn" = ( /obj/structure/machinery/camera/autoname/lz_camera, -/turf/open/floor/plating{ - dir = 8; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/west, /area/corsat/sigma/hangar) "afo" = ( /obj/structure/machinery/camera/autoname/lz_camera, -/turf/open/floor/plating{ - dir = 4; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/east, /area/corsat/sigma/hangar) "afp" = ( /obj/structure/machinery/landinglight/ds2/delaythree, -/turf/open/floor/plating{ - dir = 8; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/west, /area/corsat/sigma/hangar) "afq" = ( /obj/structure/machinery/landinglight/ds2, @@ -1737,33 +1329,21 @@ /obj/structure/bed/chair/comfy/beige{ dir = 1 }, -/turf/open/floor{ - dir = 8; - icon_state = "carpet13-5" - }, +/turf/open/floor/carpet13_5/west, /area/corsat/gamma/residential/lounge) "afs" = ( /obj/structure/machinery/landinglight/ds2/delaythree, -/turf/open/floor/plating{ - dir = 4; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/east, /area/corsat/sigma/hangar) "aft" = ( /obj/structure/machinery/landinglight/ds2/delaytwo, -/turf/open/floor/plating{ - dir = 8; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/west, /area/corsat/sigma/hangar) "afu" = ( /obj/effect/landmark/teleporter_loc/corsat_sigma_remote{ index = "17" }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "corsat_teleporter_static" - }, +/turf/open/floor/corsat/corsat_teleporter_static/southwest, /area/corsat/gamma/sigmaremote/teleporter) "afv" = ( /obj/structure/machinery/landinglight/ds2/delaythree{ @@ -1775,10 +1355,7 @@ /obj/structure/bed/chair/comfy/beige{ dir = 1 }, -/turf/open/floor{ - dir = 8; - icon_state = "carpet9-4" - }, +/turf/open/floor/carpet9_4/west, /area/corsat/gamma/residential/lounge) "afy" = ( /obj/structure/surface/table/woodentable, @@ -1788,17 +1365,11 @@ /area/corsat/gamma/residential/east) "afz" = ( /obj/structure/filingcabinet/filingcabinet, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/gamma/airlock/north/id) "afA" = ( /obj/structure/machinery/vending/coffee, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/corsat/gamma/residential/lounge) "afB" = ( /obj/structure/machinery/landinglight/ds2/delayone{ @@ -1822,43 +1393,30 @@ /obj/structure/machinery/landinglight/ds2/delayone{ dir = 4 }, -/turf/open/floor/plating{ - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate, /area/corsat/sigma/hangar) "afF" = ( /obj/structure/machinery/landinglight/ds2/delaythree{ dir = 8 }, -/turf/open/floor/plating{ - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate, /area/corsat/sigma/hangar) "afG" = ( /obj/structure/machinery/landinglight/ds2/delaytwo{ dir = 4 }, -/turf/open/floor/plating{ - dir = 1; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/north, /area/corsat/sigma/hangar) "afH" = ( /obj/structure/machinery/landinglight/ds2/delaytwo{ dir = 8 }, -/turf/open/floor/plating{ - dir = 1; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/north, /area/corsat/sigma/hangar) "afI" = ( /obj/structure/surface/table/almayer, /obj/item/folder/black_random, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/northeast, /area/corsat/gamma/hangar/office) "afJ" = ( /turf/closed/wall/r_wall/biodome, @@ -1866,9 +1424,7 @@ "afK" = ( /obj/structure/window/reinforced, /obj/structure/surface/table/almayer, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/sigma/hangar/office) "afL" = ( /obj/structure/machinery/landinglight/ds2/delayone{ @@ -1883,26 +1439,16 @@ /turf/open/floor/plating, /area/corsat/sigma/hangar) "afN" = ( -/turf/open/floor/plating{ - dir = 10; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/southwest, /area/corsat/sigma/hangar) "afP" = ( -/turf/open/floor/plating/icefloor{ - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate, /area/corsat/sigma/hangar) "afQ" = ( -/turf/open/floor/plating{ - dir = 6; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/southeast, /area/corsat/sigma/hangar) "afR" = ( -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/corsat/gamma/airlock/north) "afS" = ( /obj/structure/machinery/landinglight/ds2/delaytwo{ @@ -1920,53 +1466,37 @@ /obj/effect/landmark/teleporter_loc/corsat_sigma_remote{ index = "18" }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "corsat_teleporter_static" - }, +/turf/open/floor/corsat/corsat_teleporter_static/southwest, /area/corsat/gamma/sigmaremote/teleporter) "afV" = ( /obj/structure/machinery/landinglight/ds2{ dir = 4 }, -/turf/open/floor/plating{ - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate, /area/corsat/sigma/hangar) "afW" = ( /obj/structure/machinery/landinglight/ds2{ dir = 8 }, -/turf/open/floor/plating{ - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate, /area/corsat/sigma/hangar) "afX" = ( /obj/structure/machinery/landinglight/ds2/delayone{ dir = 4 }, -/turf/open/floor/plating{ - dir = 1; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/north, /area/corsat/sigma/hangar) "afY" = ( /obj/structure/machinery/landinglight/ds2/delaythree{ dir = 8 }, -/turf/open/floor/plating{ - dir = 1; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/north, /area/corsat/sigma/hangar) "afZ" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "darkgreen" - }, +/turf/open/floor/corsat/darkgreen/west, /area/corsat/gamma/hangar) "aga" = ( /turf/closed/wall/r_wall/biodome/biodome_unmeltable, @@ -1978,22 +1508,15 @@ /obj/effect/landmark/teleporter_loc/corsat_sigma_remote{ index = "19" }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "corsat_teleporter_static" - }, +/turf/open/floor/corsat/corsat_teleporter_static/southwest, /area/corsat/gamma/sigmaremote/teleporter) "agd" = ( /obj/structure/window/reinforced, /obj/structure/platform, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/north) "age" = ( -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/airlock/south/id) "agf" = ( /obj/structure/machinery/light{ @@ -2002,9 +1525,7 @@ /obj/structure/machinery/medical_pod/sleeper{ flags_atom = 18 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/residential/east) "agg" = ( /obj/structure/window/framed/corsat/security, @@ -2014,19 +1535,13 @@ /obj/effect/landmark/teleporter_loc/corsat_sigma_remote{ index = "20" }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "corsat_teleporter_static" - }, +/turf/open/floor/corsat/corsat_teleporter_static/southwest, /area/corsat/gamma/sigmaremote/teleporter) "agi" = ( /obj/effect/landmark/teleporter_loc/corsat_sigma_remote{ index = "21" }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "corsat_teleporter_static" - }, +/turf/open/floor/corsat/corsat_teleporter_static/southwest, /area/corsat/gamma/sigmaremote/teleporter) "agj" = ( /turf/closed/wall/r_wall/biodome, @@ -2042,78 +1557,51 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/east, /area/corsat/gamma/residential/west) "agm" = ( /obj/structure/surface/table, /obj/item/clipboard, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/east, /area/corsat/gamma/residential/west) "agn" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "darkgreen" - }, +/turf/open/floor/corsat/darkgreen/east, /area/corsat/gamma/hangar) "ago" = ( /obj/effect/landmark/teleporter_loc/corsat_sigma_remote{ index = "22" }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "corsat_teleporter_static" - }, +/turf/open/floor/corsat/corsat_teleporter_static/southwest, /area/corsat/gamma/sigmaremote/teleporter) "agp" = ( /obj/effect/landmark/teleporter_loc/corsat_sigma_remote{ index = "23" }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "corsat_teleporter_static" - }, +/turf/open/floor/corsat/corsat_teleporter_static/southwest, /area/corsat/gamma/sigmaremote/teleporter) "agq" = ( /obj/structure/machinery/atm{ pixel_x = -30 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/corsat/gamma/rnr/arcade) "agr" = ( /obj/effect/landmark/teleporter_loc/corsat_sigma_remote{ index = "24" }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "corsat_teleporter_static" - }, +/turf/open/floor/corsat/corsat_teleporter_static/southwest, /area/corsat/gamma/sigmaremote/teleporter) "ags" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/north, /area/corsat/sigma/hangar/security) "agt" = ( /obj/structure/bed/chair/office/light{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/gamma/hangar/security) "agu" = ( /obj/structure/machinery/door/airlock/almayer/generic{ @@ -2121,21 +1609,13 @@ name = "Laundry Unit" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "whitebluefull" - }, +/turf/open/floor/corsat/whitebluefull/southwest, /area/corsat/sigma/laundry) "agv" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/corsat/sigma/hangar/security) "agw" = ( -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/hangar/security) "agx" = ( /obj/structure/window/framed/corsat, @@ -2145,40 +1625,27 @@ /obj/effect/landmark/teleporter_loc/corsat_sigma_remote{ index = "25" }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "corsat_teleporter_static" - }, +/turf/open/floor/corsat/corsat_teleporter_static/southwest, /area/corsat/gamma/sigmaremote/teleporter) "agz" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/hangar/security) "agA" = ( /obj/structure/surface/table/almayer, /obj/item/paper, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/gamma/hangar/flightcontrol) "agB" = ( /obj/effect/landmark/teleporter_loc/corsat_sigma_local{ index = "1" }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "corsat_teleporter_static" - }, +/turf/open/floor/corsat/corsat_teleporter_static/southwest, /area/corsat/sigma/south/complex/teleporter) "agC" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/corsat/sigma/north) "agD" = ( /obj/structure/window/framed/corsat/hull, @@ -2188,27 +1655,16 @@ /obj/effect/landmark/teleporter_loc/corsat_sigma_local{ index = "2" }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "corsat_teleporter_static" - }, +/turf/open/floor/corsat/corsat_teleporter_static/southwest, /area/corsat/sigma/south/complex/teleporter) "agF" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/east, /area/corsat/gamma/hallwaysouth) "agG" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/corsat/sigma/south) "agH" = ( -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/sigma/north) "agI" = ( /turf/closed/wall/r_wall/biodome/biodome_unmeltable, @@ -2219,9 +1675,7 @@ name = "Airlock Control" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/gamma/airlock/north) "agK" = ( /turf/closed/wall/biodome, @@ -2233,59 +1687,37 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/east, /area/corsat/gamma/residential) "agN" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/corsat/omega/hallways) "agO" = ( /obj/structure/filingcabinet/filingcabinet, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/corsat/omega/checkpoint) "agP" = ( /obj/effect/landmark/teleporter_loc/corsat_sigma_local{ index = "3" }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "corsat_teleporter_static" - }, +/turf/open/floor/corsat/corsat_teleporter_static/southwest, /area/corsat/sigma/south/complex/teleporter) "agQ" = ( -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/omega/hallways) "agR" = ( -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/omega/checkpoint) "agS" = ( /obj/structure/machinery/computer/teleporter_console/corsat{ dir = 8 }, /obj/structure/surface/table/reinforced, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/east, /area/corsat/gamma/sigmaremote) "agT" = ( /obj/structure/machinery/disposal, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "white" - }, +/turf/open/floor/corsat/white/northwest, /area/corsat/gamma/residential) "agU" = ( /turf/closed/wall/r_wall/biodome/biodome_unmeltable, @@ -2293,9 +1725,7 @@ "agV" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/computer/secure_data, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/hangar/security) "agW" = ( /obj/structure/machinery/door/poddoor/almayer/open{ @@ -2304,9 +1734,7 @@ name = "Hangar Lockdown"; use_power = 0 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/corsat/sigma/hangar) "agX" = ( /mob/living/simple_animal/hostile/carp{ @@ -2316,17 +1744,13 @@ melee_damage_lower = 0; melee_damage_upper = 0 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/theta/biodome/complex) "agY" = ( /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/south) "agZ" = ( /turf/closed/wall/r_wall/biodome, @@ -2337,104 +1761,71 @@ name = "Gamma Checkpoint"; use_power = 0 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/corsat/omega/checkpoint) "ahb" = ( /obj/effect/landmark/teleporter_loc/corsat_sigma_local{ index = "4" }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "corsat_teleporter_static" - }, +/turf/open/floor/corsat/corsat_teleporter_static/southwest, /area/corsat/sigma/south/complex/teleporter) "ahc" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony{ damage_cap = 4000; dir = 1; - locked = 0; name = "\improper Emergency Access"; req_access_txt = "100"; req_one_access = null }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/emergency_access) "ahd" = ( /obj/structure/bed/chair/office/light{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan, /area/corsat/gamma/residential/west) "ahe" = ( /obj/effect/landmark/teleporter_loc/corsat_sigma_local{ index = "5" }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "corsat_teleporter_static" - }, +/turf/open/floor/corsat/corsat_teleporter_static/southwest, /area/corsat/sigma/south/complex/teleporter) "ahf" = ( /obj/structure/filingcabinet/filingcabinet, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/corsat/red/northwest, /area/corsat/sigma/hangar/checkpoint) "ahg" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/sigma/hangar/id) "ahh" = ( /obj/effect/landmark/teleporter_loc/corsat_sigma_local{ index = "6" }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "corsat_teleporter_static" - }, +/turf/open/floor/corsat/corsat_teleporter_static/southwest, /area/corsat/sigma/south/complex/teleporter) "ahi" = ( /obj/structure/machinery/vending/shared_vending, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/hallwaysouth) "ahj" = ( /obj/effect/landmark/teleporter_loc/corsat_sigma_local{ index = "7" }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "corsat_teleporter_static" - }, +/turf/open/floor/corsat/corsat_teleporter_static/southwest, /area/corsat/sigma/south/complex/teleporter) "ahk" = ( -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/gamma/sigmaremote) "ahl" = ( /obj/structure/surface/table/woodentable/fancy, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/security) "ahm" = ( /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/south) "ahn" = ( /turf/closed/wall/biodome, @@ -2443,27 +1834,19 @@ /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/hangar/checkpoint) "ahp" = ( /obj/structure/bed/chair/comfy/black{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/checkpoint) "ahq" = ( -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/checkpoint) "ahr" = ( -/turf/open/floor/corsat{ - icon_state = "brown" - }, +/turf/open/floor/corsat/brown, /area/corsat/sigma/north) "ahs" = ( /turf/closed/wall/r_wall/biodome/biodome_unmeltable, @@ -2472,9 +1855,7 @@ /turf/closed/wall/r_wall/biodome/biodome_unmeltable, /area/corsat/gamma/engineering/atmos) "ahu" = ( -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/sigma/south) "ahv" = ( /obj/structure/window/reinforced{ @@ -2496,9 +1877,7 @@ "ahx" = ( /obj/structure/computerframe, /obj/effect/decal/cleanable/cobweb, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/emergency_access) "ahy" = ( /obj/structure/window/reinforced{ @@ -2528,18 +1907,14 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/omega/hallways) "ahD" = ( /obj/structure/machinery/door/airlock/almayer/marine/requisitions/colony{ name = "Cargo Bay"; req_one_access_txt = "100" }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/cargo) "ahE" = ( /turf/closed/wall/r_wall/biodome/biodome_unmeltable, @@ -2548,14 +1923,10 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/omega/checkpoint) "ahG" = ( -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/airlock/south) "ahH" = ( /obj/structure/surface/table/reinforced, @@ -2580,66 +1951,44 @@ pixel_y = 2; use_power = 0 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/gamma/hangar/cargo) "ahI" = ( /obj/effect/landmark/teleporter_loc/corsat_sigma_local{ index = "8" }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "corsat_teleporter_static" - }, +/turf/open/floor/corsat/corsat_teleporter_static/southwest, /area/corsat/sigma/south/complex/teleporter) "ahJ" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/omega/checkpoint) "ahK" = ( /obj/effect/landmark/teleporter_loc/corsat_sigma_local{ index = "9" }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "corsat_teleporter_static" - }, +/turf/open/floor/corsat/corsat_teleporter_static/southwest, /area/corsat/sigma/south/complex/teleporter) "ahL" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/gamma/hangar/cargo) "ahM" = ( -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/hangar/id) "ahN" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/omega/checkpoint) "ahO" = ( /obj/structure/machinery/vending/snack, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/hangar/arrivals) "ahP" = ( -/turf/open/floor/corsat{ - icon_state = "gamma" - }, +/turf/open/floor/corsat/gamma, /area/corsat/gamma/residential) "ahQ" = ( /turf/closed/wall/r_wall/biodome, @@ -2653,10 +2002,7 @@ pixel_y = 2; use_power = 0 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/east, /area/corsat/gamma/hangar/office) "ahS" = ( /obj/structure/window/framed/corsat, @@ -2666,19 +2012,13 @@ /obj/effect/landmark/teleporter_loc/corsat_sigma_local{ index = "10" }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "corsat_teleporter_static" - }, +/turf/open/floor/corsat/corsat_teleporter_static/southwest, /area/corsat/sigma/south/complex/teleporter) "ahU" = ( /obj/effect/landmark/teleporter_loc/corsat_sigma_local{ index = "11" }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "corsat_teleporter_static" - }, +/turf/open/floor/corsat/corsat_teleporter_static/southwest, /area/corsat/sigma/south/complex/teleporter) "ahV" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -2687,9 +2027,7 @@ name = "Hangar Security"; req_access_txt = "101" }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/hangar/security) "ahW" = ( /turf/open/floor/plating, @@ -2706,15 +2044,10 @@ }, /obj/item/weapon/gun/flamer, /obj/item/explosive/grenade/incendiary, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/corsat/red/northwest, /area/corsat/omega/hangar/security) "ahZ" = ( -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/hangar) "aia" = ( /turf/closed/shuttle/ert{ @@ -2722,9 +2055,7 @@ }, /area/prison/hangar_storage/research/shuttle) "aib" = ( -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/prison/hangar_storage/research/shuttle) "aic" = ( /obj/structure/surface/table/reinforced, @@ -2733,15 +2064,10 @@ name = "Checkpoint Control"; use_power = 0 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/corsat/omega/hangar/security) "aid" = ( -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/corsat/omega/hangar/security) "aie" = ( /turf/closed/shuttle/ert{ @@ -2752,16 +2078,11 @@ /obj/effect/landmark/teleporter_loc/corsat_sigma_local{ index = "12" }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "corsat_teleporter_static" - }, +/turf/open/floor/corsat/corsat_teleporter_static/southwest, /area/corsat/sigma/south/complex/teleporter) "aig" = ( /obj/structure/machinery/computer3, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/prison/hangar_storage/research/shuttle) "aih" = ( /obj/structure/machinery/light, @@ -2776,49 +2097,34 @@ }, /area/prison/hangar_storage/research/shuttle) "aij" = ( -/turf/open/shuttle/dropship{ - icon_state = "floor8" - }, +/turf/open/shuttle/dropship/light_grey_single_wide_left_to_right, /area/prison/hangar_storage/research/shuttle) "aik" = ( -/turf/open/shuttle/dropship{ - icon_state = "rasputin7" - }, +/turf/open/shuttle/dropship/light_grey_top_right, /area/prison/hangar_storage/research/shuttle) "ail" = ( -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/corsat/theta/airlock/west) "aim" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/tech_supply, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/prison/hangar_storage/research/shuttle) "ain" = ( -/turf/open/shuttle/dropship{ - icon_state = "rasputin6" - }, +/turf/open/shuttle/dropship/light_grey_top_left, /area/prison/hangar_storage/research/shuttle) "aio" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, /obj/structure/surface/table/almayer, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/corsat/sigma/hangar/security) "aip" = ( /obj/structure/bed/chair/dropship/passenger{ dir = 4 }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/prison/hangar_storage/research/shuttle) "aiq" = ( /turf/closed/shuttle/ert{ @@ -2829,19 +2135,13 @@ /obj/effect/landmark/teleporter_loc/corsat_sigma_local{ index = "13" }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "corsat_teleporter_static" - }, +/turf/open/floor/corsat/corsat_teleporter_static/southwest, /area/corsat/sigma/south/complex/teleporter) "ais" = ( /obj/effect/landmark/teleporter_loc/corsat_sigma_local{ index = "14" }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "corsat_teleporter_static" - }, +/turf/open/floor/corsat/corsat_teleporter_static/southwest, /area/corsat/sigma/south/complex/teleporter) "ait" = ( /obj/structure/machinery/door/window/brigdoor/eastleft{ @@ -2854,17 +2154,13 @@ name = "Identification Desk"; req_access_txt = "104" }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/omega/hangar/security) "aiu" = ( /obj/structure/bed/chair/dropship/passenger{ dir = 8 }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/prison/hangar_storage/research/shuttle) "aiv" = ( /turf/closed/shuttle/ert{ @@ -2877,18 +2173,13 @@ }, /area/prison/hangar_storage/research/shuttle) "aix" = ( -/turf/open/shuttle/dropship{ - icon_state = "rasputin8" - }, +/turf/open/shuttle/dropship/light_grey_bottom_right, /area/prison/hangar_storage/research/shuttle) "aiy" = ( /obj/effect/landmark/teleporter_loc/corsat_sigma_local{ index = "15" }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "corsat_teleporter_static" - }, +/turf/open/floor/corsat/corsat_teleporter_static/southwest, /area/corsat/sigma/south/complex/teleporter) "aiz" = ( /turf/closed/shuttle/ert{ @@ -2908,10 +2199,7 @@ /obj/effect/landmark/teleporter_loc/corsat_sigma_local{ index = "16" }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "corsat_teleporter_static" - }, +/turf/open/floor/corsat/corsat_teleporter_static/southwest, /area/corsat/sigma/south/complex/teleporter) "aiD" = ( /obj/structure/window/framed/corsat/hull/security, @@ -2923,9 +2211,7 @@ }, /area/prison/hangar_storage/research/shuttle) "aiF" = ( -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/light_grey_single_wide_up_to_down, /area/prison/hangar_storage/research/shuttle) "aiG" = ( /turf/closed/shuttle/ert{ @@ -2954,10 +2240,7 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/corsat/omega/checkpoint) "aiL" = ( /turf/closed/wall/biodome, @@ -2966,19 +2249,13 @@ /obj/effect/landmark/teleporter_loc/corsat_sigma_local{ index = "17" }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "corsat_teleporter_static" - }, +/turf/open/floor/corsat/corsat_teleporter_static/southwest, /area/corsat/sigma/south/complex/teleporter) "aiN" = ( /obj/effect/landmark/teleporter_loc/corsat_sigma_local{ index = "18" }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "corsat_teleporter_static" - }, +/turf/open/floor/corsat/corsat_teleporter_static/southwest, /area/corsat/sigma/south/complex/teleporter) "aiO" = ( /turf/closed/wall/r_wall/biodome, @@ -2987,10 +2264,7 @@ /obj/effect/landmark/teleporter_loc/corsat_sigma_local{ index = "19" }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "corsat_teleporter_static" - }, +/turf/open/floor/corsat/corsat_teleporter_static/southwest, /area/corsat/sigma/south/complex/teleporter) "aiQ" = ( /obj/structure/window/framed/corsat, @@ -3000,21 +2274,13 @@ /obj/structure/surface/table/reinforced, /obj/structure/machinery/computer/card, /obj/structure/machinery/computer/guestpass, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/corsat/red/northeast, /area/corsat/gamma/hangar/security) "aiS" = ( -/turf/open/floor{ - dir = 8; - icon_state = "carpet6-2" - }, +/turf/open/floor/carpet6_2/west, /area/corsat/gamma/administration) "aiT" = ( -/turf/open/floor/corsat{ - icon_state = "gamma" - }, +/turf/open/floor/corsat/gamma, /area/corsat/gamma/airlock/north) "aiU" = ( /turf/closed/wall/r_wall/biodome/biodome_unmeltable, @@ -3023,85 +2289,60 @@ /obj/structure/machinery/constructable_frame{ icon_state = "box_1" }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/emergency_access) "aiX" = ( /obj/structure/sign/safety/airlock{ pixel_y = -32 }, -/turf/open/floor/corsat{ - icon_state = "brown" - }, +/turf/open/floor/corsat/brown, /area/corsat/sigma/north) "aiY" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/door/window/brigdoor/westleft, /obj/structure/machinery/door/window/brigdoor/eastleft, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/airlock/control) "aiZ" = ( -/turf/open/floor/corsat{ - icon_state = "sigma" - }, +/turf/open/floor/corsat/sigma, /area/corsat/gamma/hallwaysouth) "aja" = ( /turf/closed/wall/r_wall/biodome, /area/corsat/gamma/airlock/south/id) "ajb" = ( /obj/structure/flora/pottedplant, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/northwest, /area/corsat/gamma/airlock/north) "ajc" = ( -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/south) "ajd" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/north, /area/corsat/gamma/airlock/north) "aje" = ( -/turf/open/floor/corsat{ - icon_state = "purple" - }, +/turf/open/floor/corsat/purple, /area/corsat/sigma/south) "ajf" = ( /obj/structure/window/framed/corsat/security, /turf/open/floor/plating, /area/corsat/omega/security) "ajg" = ( -/turf/open/floor/corsat{ - dir = 9; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/northwest, /area/corsat/gamma/cargo) "ajh" = ( /obj/structure/machinery/landinglight/ds2/delaythree{ dir = 4 }, -/turf/open/floor/plating/icefloor{ - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate, /area/corsat/sigma/hangar) "aji" = ( /obj/structure/machinery/landinglight/ds2/delayone{ dir = 8 }, -/turf/open/floor/plating/icefloor{ - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate, /area/corsat/sigma/hangar) "ajj" = ( /turf/closed/wall/biodome, @@ -3113,30 +2354,21 @@ /obj/effect/landmark/teleporter_loc/corsat_sigma_local{ index = "20" }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "corsat_teleporter_static" - }, +/turf/open/floor/corsat/corsat_teleporter_static/southwest, /area/corsat/sigma/south/complex/teleporter) "ajm" = ( /obj/structure/window/framed/corsat, /turf/open/floor/plating, /area/corsat/sigma/airlock/south) "ajn" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/west, /area/corsat/sigma/south) "ajo" = ( /obj/structure/window/framed/corsat, /turf/open/floor/plating, /area/corsat/sigma/cargo) "ajp" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/north, /area/corsat/omega/control) "ajq" = ( /turf/closed/wall/r_wall/biodome/biodome_unmeltable, @@ -3146,58 +2378,36 @@ /turf/open/floor/plating, /area/corsat/sigma/laundry) "ajs" = ( -/turf/open/floor/corsat{ - dir = 10; - icon_state = "whitebluefull" - }, +/turf/open/floor/corsat/whitebluefull/southwest, /area/corsat/sigma/laundry) "ajt" = ( /obj/structure/machinery/washing_machine, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "whitebluefull" - }, +/turf/open/floor/corsat/whitebluefull/southwest, /area/corsat/sigma/laundry) "aju" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/west, /area/corsat/sigma/north) "ajv" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/west, /area/corsat/sigma/cargo) "ajw" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner/east, /area/corsat/sigma/cargo) "ajx" = ( -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/cargo) "ajy" = ( /obj/structure/window/framed/corsat, /turf/open/floor/plating, /area/corsat/sigma/laundry) "ajz" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "darkgreen" - }, +/turf/open/floor/corsat/darkgreen/north, /area/corsat/sigma/north) "ajA" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/sigma/hangar/checkpoint) "ajB" = ( /turf/closed/wall/biodome, @@ -3205,68 +2415,46 @@ "ajC" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/communications, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/gamma/hangar/flightcontrol) "ajD" = ( /turf/closed/wall/r_wall/biodome, /area/corsat/gamma/hangar/monorail/control) "ajE" = ( /obj/structure/curtain, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "whitebluefull" - }, +/turf/open/floor/corsat/whitebluefull/southwest, /area/corsat/sigma/lavatory) "ajF" = ( /obj/effect/landmark/teleporter_loc/corsat_sigma_local{ index = "21" }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "corsat_teleporter_static" - }, +/turf/open/floor/corsat/corsat_teleporter_static/southwest, /area/corsat/sigma/south/complex/teleporter) "ajG" = ( -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/corsat/sigma/airlock/east) "ajH" = ( /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/sigma/hangar/checkpoint) "ajI" = ( /obj/structure/surface/table, /obj/effect/landmark/crap_item, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/sigma/hangar/checkpoint) "ajJ" = ( /obj/structure/machinery/landinglight/ds2{ dir = 4 }, -/turf/open/floor/plating{ - dir = 1; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/north, /area/corsat/sigma/hangar) "ajK" = ( /obj/structure/machinery/landinglight/ds2{ dir = 8 }, -/turf/open/floor/plating{ - dir = 1; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/north, /area/corsat/sigma/hangar) "ajL" = ( /obj/structure/window/framed/corsat/security, @@ -3280,26 +2468,17 @@ "ajM" = ( /obj/structure/surface/table, /obj/item/device/flashlight/lamp, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/east, /area/corsat/gamma/residential/west) "ajN" = ( /obj/item/clothing/mask/breath, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/north, /area/corsat/omega/control) "ajO" = ( /obj/effect/landmark/teleporter_loc/corsat_sigma_local{ index = "22" }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "corsat_teleporter_static" - }, +/turf/open/floor/corsat/corsat_teleporter_static/southwest, /area/corsat/sigma/south/complex/teleporter) "ajP" = ( /obj/structure/machinery/door_control{ @@ -3311,37 +2490,26 @@ /obj/structure/bed/chair/office/light{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/corsat/red/southeast, /area/corsat/gamma/hangar/security) "ajQ" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/airlock/east/id) "ajR" = ( /obj/structure/machinery/light{ dir = 8 }, /obj/item/device/flashlight, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/west, /area/corsat/omega/control) "ajS" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/northwest, /area/corsat/gamma/sigmaremote) "ajT" = ( /obj/structure/machinery/landinglight/ds2/delaythree{ @@ -3359,19 +2527,13 @@ /obj/structure/machinery/landinglight/ds2/delayone{ dir = 1 }, -/turf/open/floor/plating{ - dir = 4; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/east, /area/corsat/sigma/hangar) "ajW" = ( /obj/effect/landmark/teleporter_loc/corsat_sigma_local{ index = "23" }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "corsat_teleporter_static" - }, +/turf/open/floor/corsat/corsat_teleporter_static/southwest, /area/corsat/sigma/south/complex/teleporter) "ajX" = ( /turf/closed/wall/biodome, @@ -3380,10 +2542,7 @@ /obj/effect/landmark/teleporter_loc/corsat_sigma_local{ index = "24" }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "corsat_teleporter_static" - }, +/turf/open/floor/corsat/corsat_teleporter_static/southwest, /area/corsat/sigma/south/complex/teleporter) "ajZ" = ( /obj/structure/foamed_metal, @@ -3393,19 +2552,13 @@ /obj/effect/landmark/teleporter_loc/corsat_sigma_local{ index = "25" }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "corsat_teleporter_static" - }, +/turf/open/floor/corsat/corsat_teleporter_static/southwest, /area/corsat/sigma/south/complex/teleporter) "akb" = ( /obj/structure/machinery/landinglight/ds2/delaytwo{ dir = 1 }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/west, /area/corsat/sigma/hangar) "akc" = ( /obj/structure/machinery/landinglight/ds2/delayone{ @@ -3418,10 +2571,7 @@ /turf/open/floor/plating, /area/corsat/sigma/south/complex) "ake" = ( -/turf/open/floor/corsat{ - dir = 10; - icon_state = "whitebluefull" - }, +/turf/open/floor/corsat/whitebluefull/southwest, /area/corsat/sigma/lavatory) "akf" = ( /obj/structure/machinery/light{ @@ -3429,10 +2579,7 @@ }, /obj/structure/surface/table/reinforced, /obj/item/paper, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/southeast, /area/corsat/gamma/sigmaremote) "akg" = ( /obj/structure/machinery/door/airlock/almayer/marine/requisitions/colony{ @@ -3442,18 +2589,13 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/cargo) "akh" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/west, /area/corsat/gamma/hangar/flightcontrol) "aki" = ( /obj/structure/window/framed/corsat/hull, @@ -3464,10 +2606,7 @@ /area/corsat/sigma/hangar/monorail) "akk" = ( /obj/structure/stairs, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/sigma/dorms) "akl" = ( /turf/closed/wall/biodome, @@ -3481,10 +2620,7 @@ "akn" = ( /obj/structure/stairs, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/sigma/dorms) "ako" = ( /obj/structure/machinery/light{ @@ -3492,14 +2628,10 @@ }, /obj/structure/surface/table/almayer, /obj/effect/landmark/item_pool_spawner/corsat_bio_lock, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/gamma/hangar/flightcontrol) "akp" = ( -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/hangar/arrivals) "akq" = ( /turf/closed/wall/biodome, @@ -3508,42 +2640,30 @@ /obj/structure/computer3frame/server{ icon_state = "4" }, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/northwest, /area/corsat/sigma/south/complex) "aks" = ( -/turf/open/floor/corsat{ - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite, /area/corsat/sigma/south/complex) "akt" = ( /turf/closed/wall/r_wall/biodome/biodome_unmeltable, /area/corsat/gamma/rnr/library) "aku" = ( -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/sigma/south/complex) "akv" = ( /turf/closed/wall/r_wall/biodome, /area/corsat/sigma/south/complex) "akw" = ( /obj/effect/alien/weeds/node, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/control) "akx" = ( /obj/structure/machinery/light{ dir = 4 }, /obj/item/clothing/head/welding, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/east, /area/corsat/omega/control) "aky" = ( /obj/structure/window/framed/corsat/hull, @@ -3557,41 +2677,27 @@ /area/corsat/theta/airlock/east) "akC" = ( /obj/structure/surface/table/reinforced, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/northwest, /area/corsat/gamma/sigmaremote) "akD" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/bed/chair/office/light, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/gamma/residential/west) "akE" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/computer/emails{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/west, /area/corsat/gamma/sigmaremote) "akG" = ( /obj/structure/surface/table/reinforced, /obj/item/device/flashlight/lamp, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/southwest, /area/corsat/gamma/sigmaremote) "akH" = ( -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/residential) "akI" = ( /obj/structure/machinery/door/airlock/almayer/medical/glass/colony{ @@ -3600,40 +2706,26 @@ req_one_access = null }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/gamma/residential/west) "akJ" = ( /obj/structure/bed/chair, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "white" - }, +/turf/open/floor/corsat/white/northeast, /area/corsat/gamma/residential) "akK" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/hangar) "akL" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/gamma/hangar/cargo) "akM" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/east, /area/corsat/gamma/hangar/flightcontrol) "akN" = ( /obj/item/device/flashlight/lamp, @@ -3641,34 +2733,24 @@ dir = 1 }, /obj/structure/surface/table/woodentable/fancy, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/security) "akP" = ( /obj/item/paper_bin, /obj/item/tool/pen, /obj/item/tool/stamp/hos, /obj/structure/surface/table/woodentable/fancy, -/turf/open/floor/corsat{ - icon_state = "red" - }, +/turf/open/floor/corsat/red, /area/corsat/gamma/security) "akQ" = ( /obj/structure/surface/table/almayer, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/north, /area/corsat/gamma/engineering) "akR" = ( /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "white" - }, +/turf/open/floor/corsat/white/southeast, /area/corsat/gamma/residential) "akS" = ( /obj/structure/surface/table/woodentable, @@ -3676,33 +2758,23 @@ /area/corsat/gamma/residential/east) "akT" = ( /obj/structure/surface/table/almayer, -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/gamma/medbay/morgue) "akU" = ( /obj/structure/surface/table/almayer, /obj/effect/landmark/item_pool_spawner/corsat_bio_lock, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/east, /area/corsat/sigma/airlock/control) "akV" = ( /obj/structure/bed/chair/office/light{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/northeast, /area/corsat/sigma/airlock/south) "akW" = ( /obj/structure/surface/table/almayer, /obj/effect/landmark/item_pool_spawner/corsat_bio_lock, -/turf/open/floor/corsat{ - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey, /area/corsat/sigma/southeast/datalab) "akX" = ( /obj/structure/surface/table/woodentable, @@ -3715,18 +2787,13 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/corsat/sigma/airlock/south/id) "akZ" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/hangar/monorail/control) "ala" = ( /obj/structure/surface/table/woodentable, @@ -3743,10 +2810,7 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/east, /area/corsat/gamma/residential/west) "ald" = ( /turf/closed/wall/r_wall/biodome, @@ -3757,10 +2821,7 @@ /turf/open/floor/wood, /area/corsat/gamma/residential/east) "alh" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/north, /area/corsat/gamma/cargo) "ali" = ( /obj/structure/pipes/vents/pump{ @@ -3768,15 +2829,10 @@ }, /obj/structure/surface/table/reinforced, /obj/structure/machinery/keycard_auth/lockdown/corsat, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/east, /area/corsat/gamma/administration) "alj" = ( -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/cargo) "alk" = ( /obj/structure/machinery/light{ @@ -3786,18 +2842,13 @@ /obj/structure/machinery/computer/skills{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/west, /area/corsat/gamma/administration) "all" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/residential) "alp" = ( /obj/structure/machinery/door_control{ @@ -3810,10 +2861,7 @@ /obj/structure/machinery/computer/secure_data{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/east, /area/corsat/gamma/administration) "alr" = ( /obj/structure/surface/table/woodentable, @@ -3826,33 +2874,22 @@ dir = 4; layer = 2 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/gamma/residential/west) "alt" = ( -/turf/open/floor/corsat{ - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner, /area/corsat/gamma/residential) "alu" = ( /obj/structure/surface/table, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/gamma/residential/west) "alv" = ( /obj/structure/stairs, /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/east, /area/corsat/gamma/residential/west) "alw" = ( /turf/closed/wall/r_wall/biodome, @@ -3869,15 +2906,10 @@ dir = 1 }, /obj/structure/surface/table/reinforced, -/turf/open/floor/corsat{ - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite, /area/corsat/sigma/south/complex) "alA" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "bluegreycorner" - }, +/turf/open/floor/corsat/bluegreycorner/north, /area/corsat/gamma/airlock/north) "alB" = ( /obj/structure/surface/table/reinforced, @@ -3886,26 +2918,19 @@ name = "Security Shutters"; use_power = 0 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/sigma/airlock/south/id) "alC" = ( /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/dorms) "alD" = ( /obj/item/clothing/head/beret/sec/warden, /obj/effect/landmark/item_pool_spawner/corsat_bio_lock, /obj/structure/surface/table/woodentable/fancy, -/turf/open/floor/corsat{ - icon_state = "red" - }, +/turf/open/floor/corsat/red, /area/corsat/gamma/security) "alE" = ( /obj/structure/bed/chair{ @@ -3914,19 +2939,14 @@ /obj/structure/barricade/handrail{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/dorms) "alF" = ( /obj/structure/machinery/light{ dir = 8 }, /obj/structure/machinery/disposal, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/northwest, /area/corsat/gamma/cargo) "alG" = ( /obj/structure/platform{ @@ -3935,10 +2955,7 @@ /obj/structure/flora/pottedplant{ icon_state = "pottedplant_21" }, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "white" - }, +/turf/open/floor/corsat/white/northwest, /area/corsat/sigma/dorms) "alH" = ( /obj/structure/surface/rack, @@ -3961,10 +2978,7 @@ /obj/structure/flora/pottedplant{ icon_state = "pottedplant_21" }, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "white" - }, +/turf/open/floor/corsat/white/northeast, /area/corsat/sigma/dorms) "alM" = ( /obj/structure/bed/chair{ @@ -3973,9 +2987,7 @@ /obj/structure/barricade/handrail{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/dorms) "alN" = ( /obj/structure/surface/table/woodentable, @@ -3987,22 +2999,14 @@ /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/dorms) "alP" = ( /obj/structure/filingcabinet/filingcabinet, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/northwest, /area/corsat/gamma/hangar/office) "alQ" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/sigma/airlock/south/id) "alR" = ( /obj/structure/bed, @@ -4012,10 +3016,7 @@ /area/corsat/gamma/residential/east) "alS" = ( /obj/structure/machinery/light, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/corsat/gamma/sigmaremote) "alU" = ( /obj/structure/bookcase/manuals/research_and_development, @@ -4042,46 +3043,32 @@ name = "Cargo Desk"; req_access_txt = "101" }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/cargo/lobby) "alX" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/west, /area/corsat/gamma/hangar) "alY" = ( /obj/structure/bed/chair, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/dorms) "alZ" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/residential) "ama" = ( /obj/structure/barricade/handrail{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "sigma" - }, +/turf/open/floor/corsat/sigma, /area/corsat/sigma/dorms) "amb" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner/west, /area/corsat/gamma/residential) "amc" = ( /obj/structure/machinery/power/apc/high{ @@ -4090,19 +3077,13 @@ start_charge = 0 }, /obj/structure/closet/crate/trashcart, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/east, /area/corsat/gamma/residential/maint) "amd" = ( /obj/structure/platform{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "white" - }, +/turf/open/floor/corsat/white/west, /area/corsat/sigma/dorms) "ame" = ( /obj/structure/surface/table/woodentable, @@ -4117,10 +3098,7 @@ dir = 4; layer = 2.7 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "white" - }, +/turf/open/floor/corsat/white/east, /area/corsat/sigma/dorms) "amg" = ( /obj/structure/machinery/power/apc/high{ @@ -4128,29 +3106,19 @@ pixel_x = -24; start_charge = 0 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/corsat/gamma/rnr/arcade) "amh" = ( /obj/structure/barricade/handrail{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "sigma" - }, +/turf/open/floor/corsat/sigma, /area/corsat/sigma/dorms) "ami" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/corsat/gamma/rnr/bar) "amj" = ( -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/hangar/monorail/control) "amk" = ( /turf/open/floor/wood, @@ -4163,9 +3131,7 @@ /area/corsat/gamma/residential/east) "amm" = ( /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/dorms) "amn" = ( /obj/structure/bed/chair/wood/normal, @@ -4185,9 +3151,7 @@ req_one_access_txt = "100" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/cargo) "amq" = ( /obj/structure/surface/table/woodentable, @@ -4227,21 +3191,13 @@ /turf/open/floor/wood, /area/corsat/sigma/dorms) "amx" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "white" - }, +/turf/open/floor/corsat/white/north, /area/corsat/sigma/dorms) "amy" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "white" - }, +/turf/open/floor/corsat/white/west, /area/corsat/sigma/dorms) "amz" = ( -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/sigma/dorms) "amA" = ( /obj/structure/surface/table/woodentable, @@ -4275,10 +3231,7 @@ /turf/open/floor/wood, /area/corsat/sigma/dorms) "amG" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/sigma/dorms) "amH" = ( /obj/structure/flora/pottedplant{ @@ -4298,9 +3251,7 @@ /turf/open/floor/wood, /area/corsat/sigma/dorms) "amK" = ( -/turf/open/floor/corsat{ - icon_state = "red" - }, +/turf/open/floor/corsat/red, /area/corsat/sigma/dorms) "amL" = ( /obj/structure/surface/table/woodentable, @@ -4319,50 +3270,35 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "gamma" - }, +/turf/open/floor/corsat/gamma, /area/corsat/gamma/residential) "amP" = ( /obj/structure/surface/table/woodentable, /turf/open/floor/wood, /area/corsat/sigma/dorms) "amQ" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "whitetancorner" - }, +/turf/open/floor/corsat/whitetancorner/west, /area/corsat/sigma/dorms) "amR" = ( /obj/structure/window/reinforced, /obj/structure/surface/table/woodentable, -/turf/open/floor/corsat{ - icon_state = "darkgreen" - }, +/turf/open/floor/corsat/darkgreen, /area/corsat/gamma/foyer) "amS" = ( /obj/structure/surface/table/reinforced, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/corsat/sigma/checkpoint) "amT" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/sigma/north) "amU" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/north, /area/corsat/sigma/dorms) "amV" = ( /obj/structure/barricade/handrail{ @@ -4374,14 +3310,10 @@ /obj/structure/barricade/handrail{ layer = 3 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/dorms) "amW" = ( -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/checkpoint) "amX" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony{ @@ -4391,9 +3323,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/cargo/disposal) "amY" = ( /obj/structure/barricade/handrail{ @@ -4405,9 +3335,7 @@ /obj/structure/barricade/handrail{ layer = 3 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/dorms) "amZ" = ( /obj/structure/machinery/door/window/brigdoor/eastleft{ @@ -4420,19 +3348,14 @@ name = "Engineering Desk"; req_access_txt = "13" }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/engineering/lobby) "ana" = ( /obj/structure/machinery/camera/autoname{ dir = 4; network = list("sigma") }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/sigma/checkpoint) "anb" = ( /obj/structure/stairs{ @@ -4441,9 +3364,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/sigma/dorms) "anc" = ( /obj/structure/surface/table/reinforced, @@ -4451,9 +3372,7 @@ dir = 8; network = list("sigma") }, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/sigma/airlock/south) "and" = ( /obj/structure/platform{ @@ -4461,17 +3380,11 @@ layer = 2.7 }, /obj/structure/reagent_dispensers/water_cooler, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "white" - }, +/turf/open/floor/corsat/white/north, /area/corsat/sigma/dorms) "ane" = ( /obj/structure/stairs, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "white" - }, +/turf/open/floor/corsat/white/north, /area/corsat/sigma/dorms) "anf" = ( /obj/structure/flora/pottedplant, @@ -4485,28 +3398,19 @@ dir = 1; layer = 2.7 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "white" - }, +/turf/open/floor/corsat/white/north, /area/corsat/sigma/dorms) "ani" = ( /obj/structure/machinery/landinglight/ds2/delaytwo{ dir = 1 }, -/turf/open/floor/plating{ - dir = 4; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/east, /area/corsat/sigma/hangar) "anj" = ( /obj/structure/machinery/landinglight/ds2/delaythree{ dir = 1 }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/west, /area/corsat/sigma/hangar) "ank" = ( /obj/structure/bed/chair/office/dark{ @@ -4520,10 +3424,7 @@ dir = 4; icon_state = "platform_deco" }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "whitecorner" - }, +/turf/open/floor/corsat/whitecorner/north, /area/corsat/sigma/dorms) "anm" = ( /obj/structure/platform{ @@ -4531,10 +3432,7 @@ dir = 8; icon_state = "platform_deco" }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "whitecorner" - }, +/turf/open/floor/corsat/whitecorner/east, /area/corsat/sigma/dorms) "ann" = ( /turf/closed/wall/biodome, @@ -4545,10 +3443,7 @@ layer = 2.7 }, /obj/structure/reagent_dispensers/water_cooler, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "white" - }, +/turf/open/floor/corsat/white/northeast, /area/corsat/sigma/dorms) "anp" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony{ @@ -4557,24 +3452,17 @@ req_one_access = null }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/hangar/monorail/control) "anq" = ( /obj/structure/surface/table/almayer, /obj/effect/spawner/random/tool, /obj/effect/spawner/random/tool, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/northwest, /area/corsat/gamma/engineering/atmos) "anr" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/gamma/airlock/north) "ans" = ( /obj/structure/surface/table/woodentable, @@ -4586,37 +3474,26 @@ /obj/structure/stairs{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/sigma/dorms) "anu" = ( /obj/structure/stairs{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/sigma/dorms) "anv" = ( -/turf/open/floor/corsat{ - icon_state = "sigma" - }, +/turf/open/floor/corsat/sigma, /area/corsat/sigma/airlock/east) "anw" = ( /turf/closed/wall/r_wall/biodome/biodome_unmeltable, /area/corsat/gamma/hallwaysouth) "anx" = ( -/turf/open/floor/corsat{ - dir = 10; - icon_state = "tcomms" - }, +/turf/open/floor/corsat/tcomms/southwest, /area/corsat/sigma/south/complex) "any" = ( /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/emergency_access) "anz" = ( /obj/structure/bookcase/manuals/research_and_development, @@ -4624,10 +3501,7 @@ /turf/open/floor/wood, /area/corsat/sigma/dorms) "anA" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "bluecorner" - }, +/turf/open/floor/corsat/bluecorner/west, /area/corsat/omega/hallways) "anB" = ( /obj/structure/surface/table/woodentable, @@ -4639,9 +3513,7 @@ id = "GammaEastW"; name = "Gamma East Airlock" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/corsat/gamma/airlock/control) "anD" = ( /obj/structure/window/framed/corsat/hull, @@ -4655,44 +3527,31 @@ dir = 8; network = list("sigma") }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/airlock/south/id) "anG" = ( -/turf/open/floor/corsat{ - icon_state = "purple" - }, +/turf/open/floor/corsat/purple, /area/corsat/omega/hallways) "anH" = ( /obj/structure/machinery/light{ dir = 8 }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/hangar) "anI" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/omega/hallways) "anJ" = ( /obj/structure/closet/emcloset, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/east, /area/corsat/sigma/hangar/monorail) "anK" = ( /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/dorms) "anL" = ( /obj/effect/landmark/xeno_spawn, @@ -4707,9 +3566,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/checkpoint) "anN" = ( /obj/structure/surface/table/almayer, @@ -4717,25 +3574,17 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/north, /area/corsat/omega/complex) "anO" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "purplewhitecorner" - }, +/turf/open/floor/corsat/purplewhitecorner/west, /area/corsat/omega/containment) "anP" = ( /obj/effect/landmark/monkey_spawn, /turf/open/floor/almayer/research/containment/floor2, /area/corsat/inaccessible) "anQ" = ( -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/omega/containment) "anR" = ( /turf/open/floor/almayer/research/containment/corner1, @@ -4747,46 +3596,30 @@ /turf/closed/wall/r_wall/biodome, /area/corsat/omega/airlocknorth/id) "anU" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "bluegreycorner" - }, +/turf/open/floor/corsat/bluegreycorner/west, /area/corsat/sigma/airlock/south) "anV" = ( /obj/structure/surface/table/reinforced, /obj/item/tool/surgery/scalpel, /obj/item/tool/surgery/retractor, /obj/item/tool/surgery/bonegel, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/northwest, /area/corsat/gamma/sigmaremote) "anW" = ( /obj/structure/machinery/recharge_station, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/north, /area/corsat/gamma/cargo/disposal) "anX" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "purple" - }, +/turf/open/floor/corsat/purple/west, /area/corsat/gamma/residential) "anY" = ( -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/hangar/id) "anZ" = ( -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/cargo) "aoa" = ( /obj/structure/window/framed/corsat/security, @@ -4802,10 +3635,7 @@ /obj/structure/machinery/camera/autoname{ network = list("gamma") }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/north, /area/corsat/gamma/cargo/lobby) "aoc" = ( /turf/closed/wall/biodome, @@ -4814,10 +3644,7 @@ /obj/structure/platform{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "white" - }, +/turf/open/floor/corsat/white/west, /area/corsat/gamma/hallwaysouth) "aoe" = ( /turf/closed/wall/r_wall/biodome, @@ -4827,51 +3654,32 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/corsat/omega/checkpoint) "aog" = ( /turf/closed/wall/r_wall/biodome/biodome_unmeltable, /area/corsat/sigma/hangar/checkpoint) "aoh" = ( /obj/structure/machinery/light, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/west, /area/corsat/omega/checkpoint) "aoi" = ( -/turf/open/floor/corsat{ - icon_state = "arrow_west" - }, +/turf/open/floor/corsat/arrow_west, /area/corsat/sigma/cargo) "aoj" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "bluecorner" - }, +/turf/open/floor/corsat/bluecorner/west, /area/corsat/sigma/dorms) "aok" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhitecorner" - }, +/turf/open/floor/corsat/purplewhitecorner/north, /area/corsat/omega/complex) "aol" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/east, /area/corsat/omega/complex) "aom" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "sigma" - }, +/turf/open/floor/corsat/sigma, /area/corsat/sigma/north) "aon" = ( /obj/structure/shuttle/diagonal{ @@ -4884,28 +3692,18 @@ "aoo" = ( /obj/structure/filingcabinet/filingcabinet, /obj/structure/machinery/light, -/turf/open/floor/corsat{ - icon_state = "red" - }, +/turf/open/floor/corsat/red, /area/corsat/omega/checkpoint) "aop" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "bluegreycorner" - }, +/turf/open/floor/corsat/bluegreycorner/east, /area/corsat/gamma/airlock/north) "aoq" = ( /obj/structure/surface/table/almayer, -/obj/item/handcuffs, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/obj/item/restraint/handcuffs, +/turf/open/floor/corsat/red/east, /area/corsat/omega/security) "aor" = ( -/turf/open/floor/corsat{ - icon_state = "cargo" - }, +/turf/open/floor/corsat/cargo, /area/corsat/sigma/cargo) "aos" = ( /turf/open/floor/almayer/research/containment/corner2, @@ -4914,30 +3712,20 @@ /turf/open/floor/almayer/research/containment/corner3, /area/corsat/inaccessible) "aou" = ( -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/cargo/disposal) "aov" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/west, /area/corsat/sigma/airlock/south) "aow" = ( -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/theta/airlock/west) "aox" = ( /obj/structure/sink, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "whitebluefull" - }, +/turf/open/floor/corsat/whitebluefull/southwest, /area/corsat/gamma/residential/researcher) "aoy" = ( /obj/structure/machinery/door/window/southleft{ @@ -4947,35 +3735,22 @@ /obj/structure/machinery/shower{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "whitebluefull" - }, +/turf/open/floor/corsat/whitebluefull/southwest, /area/corsat/gamma/residential/researcher) "aoz" = ( -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/airlock/south) "aoA" = ( /turf/closed/wall/r_wall/biodome, /area/corsat/omega/airlocknorth) "aoB" = ( -/turf/open/floor/corsat{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/corsat/red/northwest, /area/corsat/omega/airlocknorth) "aoC" = ( -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/omega/airlocknorth) "aoD" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/west, /area/corsat/sigma/dorms) "aoE" = ( /turf/closed/wall/r_wall/biodome, @@ -4994,14 +3769,10 @@ name = "Omega Lockdown"; use_power = 0 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/omega/airlocknorth/id) "aoG" = ( -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/omega/airlocknorth) "aoH" = ( /obj/structure/window/framed/corsat/security, @@ -5011,9 +3782,7 @@ /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "white" - }, +/turf/open/floor/corsat/white, /area/corsat/sigma/dorms) "aoJ" = ( /obj/structure/window/framed/corsat/security, @@ -5023,27 +3792,20 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/west, /area/corsat/omega/hallways) "aoL" = ( /obj/structure/window/reinforced, /obj/structure/surface/table/woodentable, /obj/effect/landmark/crap_item, -/turf/open/floor/corsat{ - icon_state = "darkgreen" - }, +/turf/open/floor/corsat/darkgreen, /area/corsat/gamma/foyer) "aoM" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/hangar/arrivals) "aoN" = ( /obj/structure/window/framed/corsat/research, @@ -5053,20 +3815,14 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/omega/checkpoint) "aoP" = ( -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/theta/airlock/west/id) "aoQ" = ( /obj/structure/machinery/light, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/omega/checkpoint) "aoR" = ( /obj/structure/window/framed/corsat/hull/security, @@ -5076,28 +3832,19 @@ /obj/structure/surface/table/reinforced, /obj/structure/machinery/door/window/brigdoor/westleft, /obj/structure/machinery/door/window/brigdoor/eastleft, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/airlock/control) "aoT" = ( -/turf/open/floor/corsat{ - icon_state = "omega" - }, +/turf/open/floor/corsat/omega, /area/corsat/omega/checkpoint) "aoU" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/corsat/gamma/security/cells) "aoV" = ( -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/hangar/security) "aoW" = ( /turf/closed/wall/r_wall/biodome/biodome_unmeltable, @@ -5109,35 +3856,22 @@ /turf/closed/wall/biodome, /area/corsat/omega/maint) "aoZ" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/east, /area/corsat/omega/maint) "apa" = ( -/turf/open/floor/corsat{ - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow, /area/corsat/omega/maint) "apb" = ( /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "white" - }, +/turf/open/floor/corsat/white/southeast, /area/corsat/sigma/dorms) "apc" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner/east, /area/corsat/omega/hallways) "apd" = ( -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/maint) "ape" = ( /obj/structure/window/framed/corsat/research, @@ -5153,10 +3887,7 @@ /obj/structure/sink{ pixel_y = 24 }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "whitebluefull" - }, +/turf/open/floor/corsat/whitebluefull/southwest, /area/corsat/gamma/residential/lavatory) "apg" = ( /turf/closed/wall/r_wall/biodome, @@ -5168,9 +3899,7 @@ /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/hangar/security) "apj" = ( /turf/closed/shuttle/ert{ @@ -5195,10 +3924,7 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/corsat/red/northwest, /area/corsat/omega/hangar/security) "apo" = ( /obj/structure/machinery/door/airlock/almayer/generic{ @@ -5215,15 +3941,10 @@ "apq" = ( /obj/structure/surface/table/reinforced, /obj/item/folder/red, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/corsat/omega/hangar/security) "apr" = ( -/turf/open/floor/corsat{ - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow, /area/corsat/gamma/residential) "aps" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ @@ -5231,18 +3952,13 @@ name = "Security Office"; req_access_txt = "101" }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/hangar/id) "apt" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/northwest, /area/corsat/sigma/southeast/generator) "apu" = ( /turf/closed/wall/r_wall/biodome, @@ -5251,52 +3967,35 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "gamma" - }, +/turf/open/floor/corsat/gamma, /area/corsat/gamma/residential) "apw" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/airlock/north/id) "apx" = ( /obj/structure/largecrate/random, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/east, /area/corsat/gamma/residential/maint) "apy" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/east, /area/corsat/gamma/residential/maint) "apz" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/northeast, /area/corsat/sigma/southeast/generator) "apA" = ( /obj/structure/fence, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/hangar/checkpoint) "apB" = ( /obj/structure/bed/chair/comfy/black, -/turf/open/floor/corsat{ - icon_state = "brown" - }, +/turf/open/floor/corsat/brown, /area/corsat/gamma/cargo/lobby) "apC" = ( /obj/structure/surface/table/reinforced, @@ -5311,26 +4010,19 @@ id = "GammaSecC"; name = "Security Shutters" }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/hangar/security) "apD" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner/north, /area/corsat/sigma/southeast/generator) "apE" = ( /obj/effect/landmark/corpsespawner/engineer, /obj/effect/decal/cleanable/blood/splatter, /obj/structure/pipes/vents/pump, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/southeast/generator) "apF" = ( /obj/structure/machinery/computer3/laptop/secure_data, @@ -5338,10 +4030,7 @@ /turf/open/floor/wood, /area/corsat/gamma/residential/researcher) "apG" = ( -/turf/open/floor/corsat{ - dir = 9; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/northwest, /area/corsat/omega/cargo) "apH" = ( /obj/structure/machinery/computer/telecomms/monitor{ @@ -5350,9 +4039,7 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "tcomms" - }, +/turf/open/floor/almayer/tcomms, /area/corsat/sigma/southeast/telecomm) "apI" = ( /turf/closed/wall/r_wall/biodome, @@ -5364,47 +4051,31 @@ /obj/structure/flora/pottedplant{ icon_state = "pottedplant_10" }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/west, /area/corsat/gamma/residential/researcher) "apL" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/southeast/generator) "apM" = ( /obj/structure/closet/crate/trashcart, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/east, /area/corsat/gamma/residential/maint) "apN" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/southeast/generator) "apO" = ( -/turf/open/floor/corsat{ - dir = 5; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/northeast, /area/corsat/gamma/engineering/core) "apP" = ( /obj/structure/machinery/door/airlock/almayer/generic{ dir = 1; name = "\improper Toilet Unit" }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "whitebluefull" - }, +/turf/open/floor/corsat/whitebluefull/southwest, /area/corsat/gamma/residential/lavatory) "apQ" = ( /turf/closed/wall/r_wall/biodome, @@ -5413,9 +4084,7 @@ /turf/closed/wall/biodome, /area/corsat/gamma/residential/maint) "apS" = ( -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/residential/maint) "apT" = ( /turf/closed/wall/biodome, @@ -5427,46 +4096,32 @@ start_charge = 0 }, /obj/structure/flora/pottedplant, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/northeast, /area/corsat/gamma/airlock/north) "apV" = ( /turf/closed/wall/r_wall/biodome/biodome_unmeltable, /area/corsat/sigma/dorms) "apW" = ( /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/southeast/generator) "apX" = ( /obj/effect/decal/cleanable/cobweb{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/emergency_access) "apY" = ( /obj/structure/stairs{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/sigma/dorms) "apZ" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner/west, /area/corsat/gamma/engineering/core) "aqa" = ( -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/engineering/core) "aqb" = ( /obj/structure/bed/chair/office/dark{ @@ -5475,68 +4130,43 @@ /turf/open/floor/wood, /area/corsat/gamma/residential/researcher) "aqc" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/west, /area/corsat/gamma/residential/maint) "aqd" = ( /obj/structure/closet/crate/trashcart, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/southeast, /area/corsat/gamma/residential/maint) "aqe" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/west, /area/corsat/gamma/airlock/north) "aqf" = ( -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/gamma/airlock/north) "aqg" = ( -/turf/open/floor/corsat{ - icon_state = "cargo" - }, +/turf/open/floor/corsat/cargo, /area/corsat/omega/cargo) "aqh" = ( -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/airlock/north) "aqi" = ( /turf/closed/wall/biodome, /area/corsat/gamma/engineering) "aqj" = ( -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/engineering) "aqk" = ( /obj/structure/window/framed/corsat/hull, /turf/open/floor/plating, /area/corsat/gamma/airlock/north) "aql" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/west, /area/corsat/gamma/engineering) "aqm" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner/north, /area/corsat/gamma/engineering) "aqn" = ( /obj/effect/landmark/survivor_spawner, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/engineering) "aqo" = ( /turf/closed/wall/r_wall/biodome/biodome_unmeltable, @@ -5544,16 +4174,12 @@ "aqp" = ( /obj/structure/machinery/light, /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor/corsat{ - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner, /area/corsat/sigma/southeast/generator) "aqq" = ( /obj/structure/surface/table/almayer, /obj/item/paper, -/turf/open/floor/corsat{ - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey, /area/corsat/gamma/hangar/flightcontrol) "aqr" = ( /turf/closed/wall/r_wall/biodome/biodome_unmeltable, @@ -5565,25 +4191,17 @@ /turf/closed/wall/biodome, /area/corsat/gamma/engineering/atmos) "aqu" = ( -/turf/open/floor/corsat{ - dir = 6; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/southeast, /area/corsat/gamma/engineering/atmos) "aqv" = ( -/turf/open/floor/corsat{ - dir = 10; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/southwest, /area/corsat/gamma/engineering/atmos) "aqw" = ( /obj/structure/window/framed/corsat/hull, /turf/open/floor/plating, /area/corsat/gamma/residential/maint) "aqx" = ( -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/engineering/atmos) "aqy" = ( /turf/closed/wall/biodome, @@ -5595,79 +4213,53 @@ req_one_access_txt = "102" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/engineering) "aqA" = ( /obj/structure/machinery/camera/autoname{ dir = 1; network = list("gamma") }, -/turf/open/floor/corsat{ - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow, /area/corsat/gamma/engineering/lobby) "aqB" = ( /obj/structure/bed/chair/comfy/black{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/north, /area/corsat/gamma/engineering/lobby) "aqC" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow, /area/corsat/sigma/southeast/generator) "aqD" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/station_alert, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/north, /area/corsat/gamma/engineering/atmos) "aqE" = ( /obj/structure/machinery/meter, /obj/structure/pipes/standard/simple/visible{ dir = 6 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/engineering/atmos) "aqF" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "darkgreen" - }, +/turf/open/floor/corsat/darkgreen/west, /area/corsat/gamma/hallwaysouth) "aqG" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "darkgreen" - }, +/turf/open/floor/corsat/darkgreen/north, /area/corsat/gamma/hallwaysouth) "aqH" = ( -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/hallwaysouth) "aqI" = ( -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/hallwaysouth) "aqJ" = ( -/turf/open/floor/corsat{ - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner, /area/corsat/gamma/hallwaysouth) "aqK" = ( /obj/structure/window/framed/corsat/hull, @@ -5677,10 +4269,7 @@ /turf/closed/wall/r_wall/biodome/biodome_unmeltable, /area/corsat/theta/biodome) "aqM" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "greencorner" - }, +/turf/open/floor/corsat/greencorner/west, /area/corsat/gamma/hallwaysouth) "aqN" = ( /turf/closed/wall/almayer/white, @@ -5689,48 +4278,32 @@ /turf/closed/wall/almayer/white, /area/corsat/gamma/medbay) "aqP" = ( -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/gamma/medbay) "aqQ" = ( /obj/structure/bed/chair, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/hallwaysouth) "aqR" = ( /obj/structure/surface/table/almayer, /obj/item/clipboard, /obj/item/paper, /obj/item/tool/pen, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite/northwest, /area/corsat/gamma/medbay/morgue) "aqS" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/med_data/laptop, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite/north, /area/corsat/gamma/medbay/morgue) "aqT" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite/north, /area/corsat/gamma/medbay) "aqU" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner/west, /area/corsat/sigma/southeast/generator) "aqV" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony{ @@ -5740,45 +4313,31 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "tcomms" - }, +/turf/open/floor/almayer/tcomms, /area/corsat/sigma/southeast/generator) "aqW" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/medbay/morgue) "aqX" = ( /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/hallwaysouth) "aqY" = ( /turf/closed/wall/almayer/white, /area/corsat/gamma/medbay/lobby) "aqZ" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite/east, /area/corsat/gamma/medbay/lobby) "ara" = ( -/turf/open/floor/corsat{ - icon_state = "greenwhitecorner" - }, +/turf/open/floor/corsat/greenwhitecorner, /area/corsat/gamma/medbay/lobby) "arb" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "greenwhitecorner" - }, +/turf/open/floor/corsat/greenwhitecorner/west, /area/corsat/gamma/medbay/lobby) "arc" = ( /turf/closed/shuttle, @@ -5788,18 +4347,14 @@ icon_state = "broadcast receiver"; name = "Subspace Receiver" }, -/turf/open/floor/almayer{ - icon_state = "tcomms" - }, +/turf/open/floor/almayer/tcomms, /area/corsat/sigma/southeast/telecomm) "are" = ( /obj/structure/showcase{ icon_state = "processor"; name = "Processor Unit" }, -/turf/open/floor/almayer{ - icon_state = "tcomms" - }, +/turf/open/floor/almayer/tcomms, /area/corsat/sigma/southeast/telecomm) "arf" = ( /turf/closed/wall/almayer/white, @@ -5809,27 +4364,19 @@ dir = 4; network = list("gamma") }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite/west, /area/corsat/gamma/medbay/surgery) "arh" = ( /turf/closed/wall/almayer/white, /area/corsat/gamma/medbay/chemistry) "ari" = ( -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/medbay) "arj" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite/west, /area/corsat/gamma/medbay/surgery) "ark" = ( /obj/structure/showcase{ @@ -5837,9 +4384,7 @@ name = "Communications Server" }, /obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "tcomms" - }, +/turf/open/floor/almayer/tcomms, /area/corsat/sigma/southeast/telecomm) "arl" = ( /obj/structure/closet/crate/freezer, @@ -5850,21 +4395,13 @@ /obj/item/organ/lungs, /obj/item/organ/brain, /obj/item/organ/eyes, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite/northwest, /area/corsat/gamma/medbay) "arm" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner/west, /area/corsat/sigma/north) "aro" = ( -/turf/open/floor/corsat{ - icon_state = "blue" - }, +/turf/open/floor/corsat/blue, /area/corsat/gamma/hallwaysouth) "arp" = ( /turf/closed/wall/biodome, @@ -5873,10 +4410,7 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/gamma/security/armory) "arr" = ( /obj/structure/window/framed/corsat, @@ -5886,19 +4420,14 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/gamma/security/armory) "art" = ( /obj/structure/computerframe, /obj/effect/decal/cleanable/cobweb{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/emergency_access) "aru" = ( /obj/structure/flora/pottedplant{ @@ -5908,21 +4437,16 @@ dir = 4; layer = 2 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/north) "arv" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony{ damage_cap = 4000; - locked = 0; name = "\improper Emergency Access"; req_access_txt = "100"; req_one_access = null }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/emergency_access) "arx" = ( /turf/closed/wall/biodome, @@ -5961,22 +4485,16 @@ /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "cargo" - }, +/turf/open/floor/corsat/cargo, /area/corsat/gamma/freezer) "arG" = ( /turf/closed/wall/r_wall/biodome, /area/corsat/sigma/north) "arH" = ( -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/freezer) "arI" = ( -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/hydroponics) "arJ" = ( /turf/closed/wall/r_wall/biodome/biodome_unmeltable, @@ -5986,10 +4504,7 @@ /obj/structure/machinery/computer/secure_data{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/corsat/red/northeast, /area/corsat/omega/hangar/security) "arL" = ( /turf/closed/wall/biodome, @@ -6005,30 +4520,18 @@ /turf/closed/wall/biodome, /area/corsat/gamma/residential/laundry) "arO" = ( -/turf/open/floor/corsat{ - dir = 10; - icon_state = "whitebluefull" - }, +/turf/open/floor/corsat/whitebluefull/southwest, /area/corsat/gamma/residential/laundry) "arP" = ( /obj/structure/closet/crate/trashcart, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner/west, /area/corsat/gamma/cargo/disposal) "arQ" = ( /obj/structure/bedsheetbin, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "whitebluefull" - }, +/turf/open/floor/corsat/whitebluefull/southwest, /area/corsat/gamma/residential/laundry) "arR" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/corsat/gamma/rnr/arcade) "arT" = ( /obj/structure/flora/bush/ausbushes/var3/brflowers, @@ -6037,10 +4540,7 @@ /area/corsat/sigma/north) "arU" = ( /obj/structure/machinery/washing_machine, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "whitebluefull" - }, +/turf/open/floor/corsat/whitebluefull/southwest, /area/corsat/gamma/residential/laundry) "arV" = ( /turf/closed/wall/r_wall/biodome/biodome_unmeltable, @@ -6049,9 +4549,7 @@ /turf/closed/wall/biodome, /area/corsat/gamma/residential/lavatory) "arY" = ( -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/rnr) "arZ" = ( /obj/structure/window/reinforced{ @@ -6063,10 +4561,7 @@ /turf/open/gm/grass/grass1/weedable, /area/corsat/sigma/north) "asa" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "darkgreen" - }, +/turf/open/floor/corsat/darkgreen/north, /area/corsat/gamma/rnr) "asb" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony{ @@ -6074,23 +4569,16 @@ name = "Reactor Core"; req_one_access_txt = "102" }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/engineering/core) "asc" = ( /turf/closed/wall/biodome, /area/corsat/gamma/kitchen) "asd" = ( -/turf/open/floor/corsat{ - dir = 6; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/southeast, /area/corsat/sigma/cargo) "ase" = ( -/turf/open/floor/corsat{ - icon_state = "sterileplate" - }, +/turf/open/floor/corsat/sterileplate, /area/corsat/gamma/kitchen) "asf" = ( /obj/structure/machinery/light{ @@ -6101,10 +4589,7 @@ /turf/open/floor/corsat, /area/corsat/gamma/sigmaremote) "asg" = ( -/turf/open/floor/corsat{ - dir = 10; - icon_state = "whitebluefull" - }, +/turf/open/floor/corsat/whitebluefull/southwest, /area/corsat/gamma/residential/lavatory) "ash" = ( /obj/structure/window/reinforced{ @@ -6128,10 +4613,7 @@ pixel_x = -24; start_charge = 0 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/west, /area/corsat/gamma/hangar/flightcontrol) "ask" = ( /obj/structure/closet/crate/trashcart, @@ -6146,10 +4628,7 @@ /turf/open/gm/grass/grass1/weedable, /area/corsat/sigma/north) "aso" = ( -/turf/open/floor/corsat{ - dir = 10; - icon_state = "whitebluefull" - }, +/turf/open/floor/corsat/whitebluefull/southwest, /area/corsat/gamma/residential/showers) "asp" = ( /turf/closed/wall/biodome, @@ -6159,10 +4638,7 @@ /turf/open/floor/plating, /area/corsat/gamma/rnr/library) "asr" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/corsat/gamma/rnr/library) "ass" = ( /obj/structure/window/framed/corsat/hull, @@ -6181,10 +4657,7 @@ /area/corsat/gamma/residential/east) "asv" = ( /obj/structure/curtain/shower, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "whitebluefull" - }, +/turf/open/floor/corsat/whitebluefull/southwest, /area/corsat/gamma/residential/showers) "asw" = ( /obj/structure/machinery/light/small{ @@ -6205,9 +4678,7 @@ /area/corsat/gamma/hangar/monorail/railcart) "asB" = ( /obj/structure/surface/table/reinforced, -/turf/open/floor/corsat{ - icon_state = "sterileplate" - }, +/turf/open/floor/corsat/sterileplate, /area/corsat/gamma/kitchen) "asC" = ( /turf/closed/wall/biodome, @@ -6216,22 +4687,13 @@ /turf/closed/wall/r_wall/biodome/biodome_unmeltable, /area/corsat/sigma/airlock/south) "asE" = ( -/turf/open/floor/corsat{ - dir = 9; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/northwest, /area/corsat/gamma/canteen) "asF" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/north, /area/corsat/gamma/canteen) "asG" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/gamma/canteen) "asH" = ( /turf/closed/wall/r_wall/biodome/biodome_unmeltable, @@ -6284,18 +4746,13 @@ }, /obj/item/weapon/shield/riot, /obj/item/weapon/shield/riot, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/corsat/red/southwest, /area/corsat/gamma/security/armory) "asP" = ( /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/hangar/cargo) "asQ" = ( /obj/structure/flora/pottedplant{ @@ -6308,9 +4765,7 @@ /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/hangar/cargo) "asS" = ( /obj/structure/surface/table/woodentable, @@ -6343,15 +4798,10 @@ /turf/open/floor/corsat, /area/corsat/sigma/southeast/generator) "asY" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/west, /area/corsat/sigma/southeast) "asZ" = ( -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/sigma/southeast) "atb" = ( /obj/structure/surface/rack, @@ -6363,9 +4813,7 @@ /obj/item/paper, /obj/item/tool/pen, /obj/item/tool/stamp, -/turf/open/floor/corsat{ - icon_state = "brown" - }, +/turf/open/floor/corsat/brown, /area/corsat/gamma/cargo/lobby) "atd" = ( /obj/structure/window/framed/corsat/hull, @@ -6373,36 +4821,26 @@ /area/corsat/sigma/southeast) "ate" = ( /obj/structure/machinery/light, -/turf/open/floor/corsat{ - icon_state = "darkgreen" - }, +/turf/open/floor/corsat/darkgreen, /area/corsat/sigma/north) "atf" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/cargo) "atg" = ( /obj/structure/window/framed/corsat/hull, /turf/open/floor/plating, /area/corsat/sigma/southeast/dataoffice) "ath" = ( -/turf/open/floor{ - dir = 8; - icon_state = "carpet14-10" - }, +/turf/open/floor/carpet14_10/west, /area/corsat/gamma/administration) "ati" = ( /turf/closed/wall/r_wall/biodome/biodome_unmeltable, /area/corsat/sigma/southeast/generator) "atj" = ( -/turf/open/floor{ - dir = 8; - icon_state = "carpet10-8" - }, +/turf/open/floor/carpet10_8/west, /area/corsat/gamma/administration) "atk" = ( /turf/closed/wall/biodome, @@ -6411,19 +4849,13 @@ /turf/closed/wall/r_wall/biodome, /area/corsat/sigma/southeast/generator) "atm" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "bluecorner" - }, +/turf/open/floor/corsat/bluecorner/west, /area/corsat/sigma/southeast) "atn" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/west, /area/corsat/gamma/sigmaremote) "ato" = ( /turf/closed/wall/r_wall/biodome/biodome_unmeltable, @@ -6436,26 +4868,18 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/cargo) "ats" = ( /obj/structure/machinery/disposal, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/east, /area/corsat/sigma/dorms) "att" = ( /turf/closed/wall/biodome, /area/corsat/sigma/southeast/datalab) "atu" = ( /obj/structure/machinery/disposal, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/north, /area/corsat/gamma/residential/researcher) "atv" = ( /obj/structure/window/framed/corsat, @@ -6469,16 +4893,10 @@ dir = 1 }, /obj/structure/machinery/disposal, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purple" - }, +/turf/open/floor/corsat/purple/north, /area/corsat/gamma/residential) "aty" = ( -/turf/open/floor{ - dir = 8; - icon_state = "carpet5-1" - }, +/turf/open/floor/carpet5_1/west, /area/corsat/gamma/administration) "atz" = ( /turf/closed/wall/r_wall/biodome, @@ -6515,26 +4933,17 @@ /area/corsat/sigma/airlock/east/id) "atK" = ( /obj/effect/landmark/survivor_spawner, -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/gamma/airlock/north) "atL" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/west, /area/corsat/gamma/security/armory) "atM" = ( -/turf/open/floor/corsat{ - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner, /area/corsat/gamma/security/armory) "atN" = ( /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/southeast/generator) "atO" = ( /obj/structure/machinery/light/small{ @@ -6547,22 +4956,16 @@ /turf/open/floor/corsat, /area/corsat/sigma/hangar/id) "atQ" = ( -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/sigma/airlock/east) "atR" = ( -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/corsat/omega/checkpoint) "atS" = ( /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/southeast/generator) "atT" = ( /obj/structure/window/framed/corsat/security, @@ -6577,15 +4980,10 @@ /obj/structure/surface/rack, /obj/item/storage/box/handcuffs, /obj/item/storage/box/handcuffs, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/corsat/red/southeast, /area/corsat/gamma/security/armory) "atV" = ( -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/corsat/gamma/airlock/south) "atW" = ( /obj/structure/bed/chair/office/light{ @@ -6594,26 +4992,19 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/checkpoint) "atX" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/hangar/checkpoint) "atY" = ( /obj/structure/surface/table/reinforced, /obj/item/paper_bin, /obj/item/tool/pen/blue, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/east, /area/corsat/gamma/airlock/north) "atZ" = ( /obj/structure/machinery/door/airlock/almayer/medical/glass/colony{ @@ -6623,14 +5014,10 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/freezer) "aua" = ( -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/airlock/north/id) "aub" = ( /obj/structure/bed/chair/wood/normal{ @@ -6654,21 +5041,13 @@ /turf/closed/wall/biodome, /area/corsat/sigma/airlock/east) "aue" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/sigma/south/security) "auf" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/sigma/south/security) "aug" = ( -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/south/security) "auh" = ( /turf/closed/wall/r_wall/biodome, @@ -6683,10 +5062,7 @@ "auk" = ( /obj/structure/window/reinforced, /obj/structure/machinery/disposal, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/east, /area/corsat/sigma/airlock/south) "aul" = ( /obj/structure/flora/pottedplant{ @@ -6695,9 +5071,7 @@ /obj/structure/barricade/handrail{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/hallwaysouth) "aum" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/comdoor{ @@ -6708,9 +5082,7 @@ id = "GammaAdmin"; name = "Security Shutters" }, -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/gamma/administration) "aun" = ( /obj/structure/window/reinforced, @@ -6718,9 +5090,7 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/sigma/airlock/south) "auo" = ( /obj/structure/machinery/constructable_frame{ @@ -6736,66 +5106,47 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/engineering) "auq" = ( /turf/closed/wall/r_wall/biodome, /area/corsat/gamma/security) "aur" = ( -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/theta/airlock/east) "aus" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/corsat/omega/checkpoint) "aut" = ( /obj/structure/machinery/door/poddoor/two_tile/four_tile/open{ id = "SigmaSouthN"; name = "Sigma South Airlock" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/corsat/sigma/airlock/south) "auu" = ( /obj/structure/bed/chair/office/light{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/checkpoint) "auv" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "white" - }, +/turf/open/floor/corsat/white/north, /area/corsat/sigma/south) "auw" = ( /obj/structure/bed/chair, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/south) "aux" = ( /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/south) "auy" = ( /obj/structure/machinery/vending/snack, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/south) "auz" = ( /turf/closed/wall/r_wall/biodome/biodome_unmeltable, @@ -6804,19 +5155,14 @@ /obj/structure/bed/chair/comfy/black{ dir = 1 }, -/turf/open/floor{ - dir = 8; - icon_state = "carpet13-5" - }, +/turf/open/floor/carpet13_5/west, /area/corsat/gamma/administration) "auB" = ( /turf/closed/wall/biodome, /area/corsat/sigma/south/offices) "auC" = ( /obj/structure/machinery/vending/coffee, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/south) "auD" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ @@ -6825,19 +5171,14 @@ req_access_txt = "101" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/airlock/south/id) "auE" = ( /obj/structure/window/framed/corsat/hull, /turf/open/floor/plating, /area/corsat/sigma/south/offices) "auF" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/west, /area/corsat/sigma/south) "auG" = ( /turf/closed/wall/r_wall/biodome/biodome_unmeltable, @@ -6856,25 +5197,18 @@ /turf/closed/wall/r_wall/biodome/biodome_unmeltable, /area/corsat/omega/airlocknorth) "auN" = ( -/turf/open/floor/corsat{ - dir = 6; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/southeast, /area/corsat/sigma/south/engineering) "auO" = ( /obj/structure/machinery/disposal, -/turf/open/floor/corsat{ - icon_state = "whitecorner" - }, +/turf/open/floor/corsat/whitecorner, /area/corsat/sigma/dorms) "auP" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony{ name = "Maintainance"; req_one_access = null }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/southeast/generator) "auQ" = ( /obj/structure/window/framed/corsat/hull, @@ -6898,10 +5232,7 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/corsat/sigma/south) "auW" = ( /obj/structure/machinery/power/smes, @@ -6911,17 +5242,13 @@ /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/gamma/airlock/north) "auY" = ( /obj/structure/bed/chair/office/light{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/gamma/airlock/north) "auZ" = ( /obj/structure/surface/table/reinforced, @@ -6939,20 +5266,14 @@ pixel_y = -3; use_power = 0 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/east, /area/corsat/gamma/airlock/north) "ava" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/computer/atmos_alert{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/west, /area/corsat/gamma/airlock/north) "avb" = ( /obj/structure/machinery/door/airlock/almayer/generic{ @@ -6960,21 +5281,14 @@ name = "\improper Bar Rear" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/corsat/gamma/rnr/bar) "avc" = ( /obj/structure/bed/chair/office/light, -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/gamma/airlock/north) "avd" = ( -/turf/open/floor/corsat{ - icon_state = "bluegreycorner" - }, +/turf/open/floor/corsat/bluegreycorner, /area/corsat/gamma/airlock/north) "ave" = ( /obj/structure/machinery/power/apc/hyper{ @@ -6986,10 +5300,7 @@ /obj/item/evidencebag, /obj/item/evidencebag, /obj/item/evidencebag, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/corsat/gamma/security/cells) "avf" = ( /obj/item/cell/crap, @@ -7001,10 +5312,7 @@ "avg" = ( /obj/structure/surface/table/reinforced, /obj/item/folder/black_random, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/gamma/hangar/checkpoint) "avh" = ( /obj/structure/machinery/power/apc/hyper{ @@ -7012,40 +5320,26 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/northwest, /area/corsat/gamma/engineering/core) "avj" = ( /turf/closed/wall/r_wall/biodome, /area/corsat/sigma/hangar/checkpoint) "avl" = ( -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/sigma/hangar/checkpoint) "avm" = ( /turf/closed/wall/r_wall/biodome/biodome_unmeltable, /area/corsat/sigma/south/offices) "avn" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/sigma/hangar/checkpoint) "avo" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/east, /area/corsat/sigma/hangar/checkpoint) "avp" = ( /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/sigma/hangar/security) "avq" = ( /obj/structure/machinery/door/airlock/almayer/medical/glass/colony{ @@ -7054,14 +5348,10 @@ req_one_access = null }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/medbay) "avr" = ( -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/corsat/sigma/airlock/south) "avs" = ( /obj/structure/machinery/light/small{ @@ -7074,17 +5364,13 @@ id = "SigmaEastW"; name = "Sigma East Airlock" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/corsat/sigma/airlock/east) "avu" = ( /obj/structure/bed/chair/comfy/black{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/airlock/south/id) "avv" = ( /obj/structure/machinery/door_control{ @@ -7093,10 +5379,7 @@ pixel_x = 25; use_power = 0 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/gamma/hangar/security) "avx" = ( /obj/structure/machinery/power/apc/high{ @@ -7104,10 +5387,7 @@ pixel_x = 24; start_charge = 0 }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "whitebluefull" - }, +/turf/open/floor/corsat/whitebluefull/southwest, /area/corsat/gamma/residential/lavatory) "avy" = ( /obj/structure/machinery/power/apc/high{ @@ -7115,22 +5395,14 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/north, /area/corsat/omega/cargo) "avz" = ( -/turf/open/floor{ - dir = 8; - icon_state = "carpet9-4" - }, +/turf/open/floor/carpet9_4/west, /area/corsat/gamma/administration) "avA" = ( /obj/structure/bed/chair/comfy/black, -/turf/open/floor/corsat{ - icon_state = "red" - }, +/turf/open/floor/corsat/red, /area/corsat/sigma/airlock/south/id) "avD" = ( /obj/structure/surface/table/woodentable, @@ -7143,14 +5415,10 @@ /area/corsat/gamma/residential/researcher) "avE" = ( /obj/structure/largecrate/random, -/turf/open/floor/corsat{ - icon_state = "cargo" - }, +/turf/open/floor/corsat/cargo, /area/corsat/omega/hangar) "avF" = ( -/turf/open/floor/corsat{ - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey, /area/corsat/gamma/airlock/north) "avG" = ( /obj/structure/machinery/door/window/brigdoor/southleft{ @@ -7158,40 +5426,26 @@ name = "Cell 1" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/security/cells) "avH" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/airlock/east/id) "avI" = ( -/turf/open/floor/corsat{ - icon_state = "cargo" - }, +/turf/open/floor/corsat/cargo, /area/corsat/omega/hangar) "avJ" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/east, /area/corsat/omega/hangar) "avK" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner/north, /area/corsat/omega/cargo) "avL" = ( -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/omega/cargo) "avM" = ( /obj/structure/machinery/power/apc/high{ @@ -7199,26 +5453,16 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/north, /area/corsat/sigma/southeast) "avN" = ( -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/cargo) "avO" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "bluecorner" - }, +/turf/open/floor/corsat/bluecorner/west, /area/corsat/gamma/residential) "avP" = ( -/turf/open/floor/corsat{ - icon_state = "bluecorner" - }, +/turf/open/floor/corsat/bluecorner, /area/corsat/gamma/residential) "avQ" = ( /turf/closed/wall/r_wall/biodome/biodome_unmeltable, @@ -7228,17 +5472,13 @@ name = "Security Office"; req_access_txt = "101" }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/checkpoint) "avS" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/cargo) "avT" = ( /obj/structure/window/framed/corsat/cell/research, @@ -7252,90 +5492,58 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/medbay/morgue) "avV" = ( -/turf/open/floor/corsat{ - icon_state = "blue" - }, +/turf/open/floor/corsat/blue, /area/corsat/gamma/residential) "avW" = ( /obj/structure/sign/safety/airlock{ pixel_y = -32 }, -/turf/open/floor/corsat{ - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner, /area/corsat/gamma/residential) "avX" = ( -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/omega/biodome) "avY" = ( -/turf/open/floor/corsat{ - icon_state = "red" - }, +/turf/open/floor/corsat/red, /area/corsat/gamma/residential) "avZ" = ( /obj/structure/machinery/photocopier, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/northwest, /area/corsat/gamma/residential/west) "awa" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/west, /area/corsat/gamma/residential) "awb" = ( /turf/closed/wall/r_wall/biodome/biodome_unmeltable, /area/corsat/gamma/airlock/north) "awc" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/west, /area/corsat/gamma/residential) "awd" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner/north, /area/corsat/gamma/residential) "awe" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "darkgreencorner" - }, +/turf/open/floor/corsat/darkgreencorner/east, /area/corsat/gamma/residential) "awf" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor/corsat{ - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner, /area/corsat/gamma/residential/maint) "awg" = ( /obj/structure/machinery/bot/medbot/mysterious, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite/north, /area/corsat/gamma/medbay) "awh" = ( /obj/structure/surface/table/almayer, /obj/item/roller, /obj/item/roller, /obj/item/roller, -/turf/open/floor/corsat{ - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite, /area/corsat/gamma/medbay) "awi" = ( /obj/structure/surface/table/reinforced, @@ -7350,42 +5558,29 @@ id = "GammaHangarCargoC"; name = "Security Shutters" }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/hangar/cargo) "awj" = ( /obj/structure/surface/table/reinforced, /obj/item/ashtray/bronze, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/gamma/hangar/checkpoint) "awk" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/residential) "awl" = ( /obj/structure/surface/rack, /obj/item/storage/fancy/vials/random, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite/northwest, /area/corsat/gamma/medbay/chemistry) "awm" = ( /obj/structure/closet/secure_closet/chemical{ req_access_txt = "100" }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite/north, /area/corsat/gamma/medbay/chemistry) "awn" = ( /obj/structure/machinery/power/apc/high{ @@ -7393,29 +5588,19 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "greenwhitecorner" - }, +/turf/open/floor/corsat/greenwhitecorner/north, /area/corsat/gamma/medbay/chemistry) "awo" = ( /obj/structure/surface/table/almayer, -/turf/open/floor/corsat{ - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite, /area/corsat/gamma/medbay/chemistry) "awp" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/hangar/id) "awq" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/corsat/green/north, /area/corsat/gamma/hallwaysouth) "awr" = ( /obj/structure/shuttle/diagonal{ @@ -7429,33 +5614,23 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/hallwaysouth) "awt" = ( /obj/structure/noticeboard{ pixel_y = 32 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "bluegreycorner" - }, +/turf/open/floor/corsat/bluegreycorner/east, /area/corsat/gamma/administration) "awu" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/foyer) "awv" = ( /obj/structure/machinery/photocopier, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/north, /area/corsat/gamma/administration) "aww" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ @@ -7463,9 +5638,7 @@ name = "Administration Desk"; req_access_txt = "101" }, -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/gamma/administration) "awx" = ( /obj/structure/window/framed/corsat/security, @@ -7494,9 +5667,7 @@ id = "GammaDSC"; name = "Security Shutters" }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/airlock/north/id) "awA" = ( /obj/structure/machinery/light{ @@ -7510,18 +5681,13 @@ dir = 4 }, /obj/structure/surface/table/reinforced, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/corsat/red/northwest, /area/corsat/gamma/airlock/north/id) "awC" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/cargo) "awD" = ( /obj/structure/machinery/door/window/brigdoor/southleft{ @@ -7529,45 +5695,33 @@ name = "Cell 2" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/security/cells) "awE" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/cargo) "awF" = ( -/turf/open/floor/corsat{ - icon_state = "cargo" - }, +/turf/open/floor/corsat/cargo, /area/corsat/gamma/cargo) "awG" = ( /obj/structure/bed/chair/comfy/black{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/airlock/north/id) "awH" = ( /obj/structure/machinery/camera/autoname{ dir = 1; network = list("gamma") }, -/turf/open/floor/corsat{ - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey, /area/corsat/gamma/airlock/north) "awJ" = ( /obj/vehicle/train/cargo/trolley, -/turf/open/floor/corsat{ - icon_state = "cargo" - }, +/turf/open/floor/corsat/cargo, /area/corsat/gamma/cargo) "awK" = ( /obj/structure/surface/table/reinforced, @@ -7576,46 +5730,31 @@ name = "Security Shutters"; use_power = 0 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/gamma/airlock/north/id) "awL" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/rnr) "awM" = ( /obj/structure/filingcabinet/filingcabinet, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/corsat/sigma/airlock/south/id) "awN" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/airlock/north/id) "awO" = ( /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/freezer) "awP" = ( /obj/structure/bed/chair/comfy/black, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/gamma/hangar/checkpoint) "awQ" = ( /turf/closed/wall/r_wall/biodome, @@ -7624,9 +5763,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor/corsat{ - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner, /area/corsat/gamma/airlock/north/id) "awS" = ( /obj/structure/machinery/door/airlock/almayer/medical/glass/colony{ @@ -7636,23 +5773,17 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/medbay/morgue) "awT" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/cargo/disposal) "awU" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/freezer) "awV" = ( /obj/structure/surface/table/reinforced, @@ -7660,10 +5791,7 @@ dir = 1; network = list("gamma") }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/corsat/red/southwest, /area/corsat/gamma/airlock/north/id) "awW" = ( /obj/structure/surface/table/reinforced, @@ -7672,9 +5800,7 @@ name = "Security Shutters"; use_power = 0 }, -/turf/open/floor/corsat{ - icon_state = "red" - }, +/turf/open/floor/corsat/red, /area/corsat/gamma/airlock/north/id) "awX" = ( /obj/structure/closet/wardrobe/white, @@ -7688,10 +5814,7 @@ /obj/item/clothing/head/ushanka, /obj/item/clothing/suit/storage/snow_suit, /obj/item/clothing/suit/storage/snow_suit, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/corsat/red/southeast, /area/corsat/gamma/airlock/north/id) "awY" = ( /turf/closed/wall/r_wall/biodome, @@ -7702,10 +5825,7 @@ dir = 1 }, /obj/structure/surface/table/woodentable/fancy, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/corsat/gamma/residential/lounge) "axa" = ( /obj/structure/bed/chair{ @@ -7714,18 +5834,13 @@ /obj/structure/barricade/handrail{ layer = 3 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/hallwaysouth) "axb" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/gamma/hangar/checkpoint) "axc" = ( /obj/structure/machinery/vending/coffee, @@ -7733,64 +5848,43 @@ dir = 1; layer = 2.7 }, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "white" - }, +/turf/open/floor/corsat/white/northwest, /area/corsat/gamma/hallwaysouth) "axd" = ( /obj/structure/bed, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/gamma/security/cells) "axe" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/residential) "axf" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "white" - }, +/turf/open/floor/corsat/white/southwest, /area/corsat/gamma/hallwaysouth) "axg" = ( /obj/structure/filingcabinet/filingcabinet, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/sigma/airlock/south/id) "axh" = ( /obj/structure/machinery/light{ dir = 8 }, /obj/structure/flora/pottedplant, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "bluegreycorner" - }, +/turf/open/floor/corsat/bluegreycorner/west, /area/corsat/gamma/administration) "axi" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/gamma/administration) "axj" = ( -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/sigmaremote) "axk" = ( /obj/structure/machinery/light{ @@ -7800,9 +5894,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor/corsat{ - icon_state = "bluegreycorner" - }, +/turf/open/floor/corsat/bluegreycorner, /area/corsat/gamma/administration) "axl" = ( /obj/structure/bed/chair{ @@ -7811,28 +5903,19 @@ /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "whitebluefull" - }, +/turf/open/floor/corsat/whitebluefull/southwest, /area/corsat/gamma/residential/showers) "axm" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/gamma/security) "axn" = ( /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/west, /area/corsat/gamma/administration) "axo" = ( /obj/structure/machinery/camera/autoname{ @@ -7840,24 +5923,16 @@ network = list("gamma") }, /obj/structure/filingcabinet/filingcabinet, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/corsat/red/southeast, /area/corsat/gamma/airlock/north/id) "axp" = ( /obj/structure/machinery/power/terminal{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/engineering/core) "axq" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/gamma/airlock/north/id) "axr" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony{ @@ -7866,50 +5941,35 @@ req_one_access = null }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/residential/maint) "axs" = ( /obj/structure/janitorialcart, /obj/item/tool/mop, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/west, /area/corsat/gamma/residential/maint) "axt" = ( /obj/structure/largecrate/random, -/turf/open/floor/corsat{ - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow, /area/corsat/gamma/residential/maint) "axu" = ( -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/gamma/administration) "axv" = ( /obj/structure/machinery/light, -/turf/open/floor/corsat{ - icon_state = "red" - }, +/turf/open/floor/corsat/red, /area/corsat/gamma/airlock/north/id) "axw" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/rnr) "axx" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/gamma/administration) "axy" = ( /obj/structure/machinery/door/airlock/almayer/generic{ @@ -7918,66 +5978,46 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "whitebluefull" - }, +/turf/open/floor/corsat/whitebluefull/southwest, /area/corsat/gamma/residential/lavatory) "axz" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/gamma/administration) "axB" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/engineering/core) "axC" = ( /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/east, /area/corsat/gamma/administration) "axD" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/rnr) "axE" = ( /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/southwest, /area/corsat/gamma/administration) "axF" = ( /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/southeast, /area/corsat/gamma/administration) "axG" = ( -/turf/open/floor/corsat{ - icon_state = "gamma" - }, +/turf/open/floor/corsat/gamma, /area/corsat/omega/checkpoint) "axH" = ( /obj/structure/machinery/constructable_frame{ @@ -7987,39 +6027,27 @@ /turf/open/floor/corsat, /area/corsat/emergency_access) "axI" = ( -/turf/open/floor/corsat{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/corsat/red/northwest, /area/corsat/sigma/hangar/checkpoint) "axJ" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper Laundry" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "whitebluefull" - }, +/turf/open/floor/corsat/whitebluefull/southwest, /area/corsat/gamma/residential/laundry) "axK" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/north, /area/corsat/sigma/hangar/checkpoint) "axL" = ( /obj/structure/machinery/camera/autoname{ dir = 4; network = list("sigma") }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/sigma/hangar/checkpoint) "axM" = ( /obj/structure/surface/table/reinforced, @@ -8027,60 +6055,38 @@ dir = 1; network = list("gamma") }, -/turf/open/floor/corsat{ - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey, /area/corsat/gamma/airlock/north) "axN" = ( /obj/structure/surface/table/reinforced, /obj/item/folder/black_random, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/southeast, /area/corsat/gamma/airlock/north) "axO" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/engineering) "axP" = ( /obj/structure/surface/table/reinforced, /obj/item/device/flashlight/lamp, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/corsat/red/northwest, /area/corsat/sigma/airlock/east/id) "axQ" = ( /obj/structure/bed/chair, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/gamma/canteen) "axR" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/north, /area/corsat/sigma/airlock/east/id) "axS" = ( /obj/structure/filingcabinet/filingcabinet, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/corsat/red/northeast, /area/corsat/sigma/airlock/east/id) "axT" = ( /obj/structure/filingcabinet/filingcabinet, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/corsat/sigma/airlock/east/id) "axV" = ( /obj/structure/surface/table/woodentable, @@ -8092,31 +6098,22 @@ dir = 4; network = list("sigma") }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/sigma/airlock/east/id) "axX" = ( -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/airlock/east/id) "axY" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "Bar" }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/rnr/bar) "axZ" = ( /obj/structure/bed/chair/comfy/black{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/airlock/east/id) "aya" = ( /obj/structure/surface/table/reinforced, @@ -8125,15 +6122,10 @@ name = "Security Shutters"; use_power = 0 }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/corsat/red/southwest, /area/corsat/sigma/airlock/east/id) "ayb" = ( -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/sigma/hangar/office) "ayc" = ( /obj/structure/window/framed/corsat/security, @@ -8149,36 +6141,24 @@ name = "Hangar Lockdown"; use_power = 0 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/corsat/sigma/hangar/id) "aye" = ( -/turf/open/floor/corsat{ - icon_state = "sigma" - }, +/turf/open/floor/corsat/sigma, /area/corsat/sigma/north) "ayf" = ( /obj/structure/machinery/camera/autoname{ network = list("sigma") }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/corsat/sigma/north) "ayg" = ( /obj/structure/surface/table/almayer, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/corsat/red/northwest, /area/corsat/sigma/hangar/id) "ayh" = ( /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/hallwaysouth) "ayi" = ( /obj/structure/machinery/power/apc/high{ @@ -8186,66 +6166,42 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/north, /area/corsat/sigma/hangar/id) "ayj" = ( /obj/structure/filingcabinet/filingcabinet, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/sigma/hangar/id) "ayk" = ( /obj/effect/decal/cleanable/blood/splatter, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/sigma/north) "ayl" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/sigma/hangar/checkpoint) "aym" = ( /obj/structure/bed, /obj/item/bedsheet, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite/north, /area/corsat/gamma/medbay) "ayn" = ( /obj/structure/surface/table/almayer, /obj/item/ashtray/plastic, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/sigma/hangar/id) "ayo" = ( -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/medbay/lobby) "ayp" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/sigma/hangar/id) "ayq" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/east, /area/corsat/sigma/hangar/id) "ayr" = ( /obj/structure/surface/table/reinforced, @@ -8253,10 +6209,7 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/corsat/red/northeast, /area/corsat/sigma/hangar/id) "ays" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ @@ -8266,41 +6219,27 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/security) "ayt" = ( /obj/structure/sign/safety/airlock{ pixel_y = -32 }, -/turf/open/floor/corsat{ - icon_state = "sigma" - }, +/turf/open/floor/corsat/sigma, /area/corsat/sigma/north) "ayu" = ( -/turf/open/floor/corsat{ - icon_state = "bluecorner" - }, +/turf/open/floor/corsat/bluecorner, /area/corsat/sigma/north) "ayv" = ( /obj/structure/machinery/optable, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/north, /area/corsat/gamma/sigmaremote) "ayw" = ( -/turf/open/floor/corsat{ - icon_state = "blue" - }, +/turf/open/floor/corsat/blue, /area/corsat/sigma/north) "ayx" = ( /obj/structure/bed/chair/comfy/black, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/sigma/hangar/id) "ayy" = ( /obj/structure/surface/table/almayer, @@ -8308,10 +6247,7 @@ dir = 1; network = list("sigma") }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/corsat/red/southwest, /area/corsat/sigma/hangar/id) "ayz" = ( /obj/structure/bed, @@ -8319,18 +6255,12 @@ dir = 1 }, /obj/item/bedsheet, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite/north, /area/corsat/gamma/medbay) "ayA" = ( /obj/structure/surface/table/almayer, /obj/item/device/flashlight/lamp, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/west, /area/corsat/sigma/hangar/id) "ayB" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ @@ -8339,34 +6269,22 @@ req_access_txt = "101" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/security) "ayC" = ( /obj/structure/largecrate/random/barrel, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/north, /area/corsat/gamma/cargo) "ayD" = ( /obj/structure/bed, /obj/item/bedsheet, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite/northeast, /area/corsat/gamma/medbay) "ayE" = ( -/turf/open/floor/corsat{ - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner, /area/corsat/sigma/hangar/id) "ayF" = ( -/turf/open/floor/corsat{ - icon_state = "red" - }, +/turf/open/floor/corsat/red, /area/corsat/sigma/hangar/id) "ayG" = ( /obj/structure/machinery/power/apc/high{ @@ -8375,16 +6293,10 @@ start_charge = 0 }, /obj/structure/closet/wardrobe/atmospherics_yellow, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/west, /area/corsat/sigma/airlock/control) "ayH" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purple" - }, +/turf/open/floor/corsat/purple/east, /area/corsat/omega/airlocknorth) "ayI" = ( /obj/structure/surface/table/reinforced, @@ -8406,10 +6318,7 @@ pixel_x = 5; use_power = 0 }, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/corsat/red/southeast, /area/corsat/sigma/hangar/id) "ayJ" = ( /obj/structure/machinery/door_control{ @@ -8425,10 +6334,7 @@ use_power = 0 }, /obj/structure/surface/table/reinforced, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/northwest, /area/corsat/sigma/airlock/east) "ayK" = ( /obj/structure/machinery/door/poddoor/almayer/open{ @@ -8436,45 +6342,33 @@ name = "Hangar Lockdown"; use_power = 0 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/corsat/sigma/hangar/id) "ayL" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/computer/cameras{ network = list("sigma") }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/north, /area/corsat/sigma/airlock/east) "ayM" = ( /obj/structure/surface/rack, /obj/item/storage/box/chemimp, /obj/item/storage/box/trackimp, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/northeast, /area/corsat/gamma/sigmaremote) "ayN" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/north) "ayO" = ( /obj/structure/machinery/light{ dir = 1 }, /obj/structure/closet/firecloset, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/hangar) "ayP" = ( /obj/structure/surface/table/reinforced, @@ -8484,28 +6378,17 @@ /obj/item/clipboard, /obj/item/paper, /obj/item/tool/pen/blue, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/north, /area/corsat/sigma/airlock/east) "ayQ" = ( /obj/structure/flora/pottedplant, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/north, /area/corsat/sigma/airlock/east) "ayR" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/north, /area/corsat/gamma/administration) "ayS" = ( -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/gamma/administration) "ayT" = ( /obj/structure/surface/table/reinforced, @@ -8514,34 +6397,23 @@ health = 250 }, /obj/structure/machinery/computer/station_alert, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/north, /area/corsat/sigma/airlock/east) "ayU" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/hallwaysouth) "ayV" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/computer/atmos_alert, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/north, /area/corsat/sigma/airlock/east) "ayW" = ( /obj/structure/surface/table/reinforced, /obj/item/folder/black_random, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/north, /area/corsat/sigma/airlock/east) "ayX" = ( /obj/structure/machinery/power/apc/hyper{ @@ -8550,41 +6422,28 @@ start_charge = 0 }, /obj/structure/flora/pottedplant, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/northeast, /area/corsat/sigma/airlock/east) "ayY" = ( /obj/structure/surface/table/reinforced, /obj/item/folder/black_random, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/southwest, /area/corsat/sigma/airlock/east) "ayZ" = ( /obj/structure/bed/chair/office/light{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "bluegreycorner" - }, +/turf/open/floor/corsat/bluegreycorner/west, /area/corsat/sigma/airlock/east) "aza" = ( /obj/structure/machinery/door/poddoor/two_tile/four_tile/open{ id = "GammaNorthN"; name = "Gamma North Airlock" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/corsat/gamma/airlock/north) "azb" = ( -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/sigma/airlock/east) "azc" = ( /obj/structure/surface/table/reinforced, @@ -8592,96 +6451,67 @@ dir = 8; health = 250 }, -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/sigma/airlock/east) "azd" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/sigma/dorms) "aze" = ( /obj/structure/bed/chair/office/light{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/sigma/airlock/east) "azf" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/omega/hallways) "azg" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/omega/checkpoint) "azh" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "bluegreycorner" - }, +/turf/open/floor/corsat/bluegreycorner/east, /area/corsat/sigma/airlock/east) "azi" = ( /obj/structure/pipes/binary/pump/on{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/engineering/atmos) "azj" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/west, /area/corsat/sigma/airlock/east) "azk" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/omega/hallways) "azl" = ( /obj/structure/stairs{ dir = 1 }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/sigma/dorms) "azm" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/sigma/dorms) "azn" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/sigma/airlock/east) "azo" = ( -/turf/open/floor/corsat{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/corsat/red/northeast, /area/corsat/omega/security) "azp" = ( /obj/structure/surface/table/almayer, @@ -8689,61 +6519,43 @@ dir = 8; network = list("omega") }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/omega/checkpoint) "azq" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/sigma/airlock/east) "azr" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/checkpoint) "azs" = ( /obj/structure/bed/chair/office/light{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/omega/checkpoint) "azt" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/sigma/airlock/east) "azu" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/corsat/omega/security) "azv" = ( -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/omega/security) "azw" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/omega/hallways) "azx" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/comdoor{ @@ -8751,124 +6563,85 @@ name = "Airlock Control"; req_access_txt = "102" }, -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/sigma/airlock/east) "azy" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/corsat/sigma/biodome) "azz" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/sigma/north) "azA" = ( /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/sigma/south) "azB" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/sigma/south) "azC" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "bluegreycorner" - }, +/turf/open/floor/corsat/bluegreycorner/east, /area/corsat/gamma/administration) "azD" = ( /obj/effect/landmark/static_comms/net_two, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/southwest, /area/corsat/sigma/airlock/east) "azE" = ( /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/omega/hallways) "azF" = ( /obj/structure/machinery/light, -/turf/open/floor/corsat{ - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey, /area/corsat/sigma/airlock/east) "azG" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/sigma/south/complex) "azH" = ( /obj/structure/filingcabinet/filingcabinet, -/turf/open/floor/corsat{ - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey, /area/corsat/sigma/airlock/east) "azI" = ( /obj/structure/machinery/camera/autoname{ dir = 1; network = list("sigma") }, -/turf/open/floor/corsat{ - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey, /area/corsat/sigma/airlock/east) "azJ" = ( /obj/structure/surface/table/almayer, /obj/item/paper_bin, -/turf/open/floor/corsat{ - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey, /area/corsat/sigma/airlock/east) "azK" = ( -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/security) "azL" = ( /obj/structure/machinery/light, /obj/structure/machinery/photocopier, -/turf/open/floor/corsat{ - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey, /area/corsat/sigma/airlock/east) "azM" = ( /obj/structure/machinery/disposal, -/turf/open/floor/corsat{ - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey, /area/corsat/sigma/airlock/east) "azN" = ( -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/theta/airlock/east) "azO" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/omega/complex) "azP" = ( /obj/structure/machinery/light{ @@ -8877,10 +6650,7 @@ /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/west, /area/corsat/sigma/south) "azQ" = ( /obj/structure/machinery/power/apc/hyper{ @@ -8893,39 +6663,29 @@ name = "secure evidence locker"; req_access_txt = "104" }, -/turf/open/floor/corsat{ - icon_state = "red" - }, +/turf/open/floor/corsat/red, /area/corsat/gamma/security) "azR" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/corsat/gamma/airlock/south) "azS" = ( /obj/structure/closet/secure_closet{ name = "secure evidence locker"; req_access_txt = "104" }, -/turf/open/floor/corsat{ - icon_state = "red" - }, +/turf/open/floor/corsat/red, /area/corsat/gamma/security) "azT" = ( /obj/structure/surface/table/almayer, /obj/item/folder/black_random, /obj/item/paper, /obj/item/tool/pen/blue, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/sigma/airlock/south) "azU" = ( /obj/structure/machinery/light, -/turf/open/floor/corsat{ - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite, /area/corsat/gamma/sigmaremote) "azV" = ( /obj/structure/window/framed/corsat/security, @@ -8938,10 +6698,7 @@ /area/corsat/sigma/airlock/south/id) "azW" = ( /obj/structure/closet/emcloset, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/southwest, /area/corsat/gamma/biodome/toxins) "azX" = ( /turf/closed/wall/r_wall/biodome/biodome_unmeltable, @@ -8949,9 +6706,7 @@ "azY" = ( /obj/structure/surface/table/almayer, /obj/effect/landmark/item_pool_spawner/corsat_bio_lock, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/sigma/airlock/south) "azZ" = ( /obj/structure/machinery/door/airlock/almayer/marine/requisitions/colony{ @@ -8959,9 +6714,7 @@ name = "Cargo Bay"; req_one_access_txt = "100" }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/cargo) "aAa" = ( /obj/structure/machinery/door/airlock/almayer/marine/requisitions/colony{ @@ -8970,57 +6723,38 @@ req_one_access_txt = "100" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/cargo) "aAb" = ( /obj/structure/flora/pottedplant, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/sigma/airlock/south) "aAc" = ( /obj/structure/surface/table/reinforced, /obj/item/device/flashlight/lamp, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/sigma/airlock/south) "aAd" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/cargo) "aAe" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/sigma/dorms) "aAf" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/west, /area/corsat/sigma/airlock/south) "aAg" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/north, /area/corsat/omega/hangar/security) "aAh" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/corsat/omega/hangar/security) "aAi" = ( /obj/structure/closet/secure_closet/security_empty, @@ -9031,15 +6765,10 @@ /obj/item/ammo_magazine/pistol/mod88, /obj/item/storage/pouch/general/medium, /obj/item/storage/pouch/pistol, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/omega/hangar/security) "aAj" = ( -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/hangar/security) "aAk" = ( /obj/structure/surface/table/reinforced, @@ -9055,24 +6784,17 @@ pixel_x = -5; use_power = 0 }, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/sigma/airlock/south) "aAl" = ( /obj/structure/filingcabinet/filingcabinet, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/sigma/airlock/south) "aAm" = ( /obj/structure/pipes/standard/simple/visible{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/east, /area/corsat/gamma/engineering/atmos) "aAo" = ( /obj/structure/pipes/unary/outlet_injector{ @@ -9083,17 +6805,12 @@ /area/space) "aAp" = ( /obj/structure/machinery/portable_atmospherics/canister/carbon_dioxide, -/turf/open/floor/corsat{ - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow, /area/corsat/gamma/engineering/atmos) "aAq" = ( /obj/structure/surface/table/reinforced, /obj/item/device/flashlight/lamp, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/east, /area/corsat/sigma/airlock/south) "aAr" = ( /obj/structure/machinery/power/apc/high{ @@ -9101,68 +6818,46 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/north, /area/corsat/gamma/canteen) "aAs" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/computer/station_alert{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/sigma/airlock/south) "aAt" = ( /obj/structure/pipes/standard/simple/hidden/universal, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/engineering/atmos) "aAu" = ( /obj/structure/reagent_dispensers/peppertank{ pixel_y = 32 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/east, /area/corsat/gamma/security) "aAv" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner/north, /area/corsat/gamma/engineering/lobby) "aAw" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/engineering) "aAx" = ( /obj/structure/sign/safety/airlock{ pixel_x = 32 }, -/turf/open/floor/corsat{ - icon_state = "sigma" - }, +/turf/open/floor/corsat/sigma, /area/corsat/sigma/south) "aAy" = ( -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/cargo) "aAz" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/north, /area/corsat/sigma/airlock/south) "aAA" = ( /obj/structure/surface/table/almayer, @@ -9170,89 +6865,61 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/sigma/airlock/south) "aAB" = ( /obj/structure/surface/table/almayer, /obj/item/clipboard, /obj/item/paper, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/sigma/airlock/south) "aAC" = ( /obj/structure/machinery/cm_vending/sorted/medical/no_access{ req_access_txt = "100" }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite/north, /area/corsat/gamma/medbay) "aAD" = ( /obj/structure/bed/chair/office/light{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/east, /area/corsat/sigma/airlock/south) "aAE" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/medbay/morgue) "aAF" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/computer/atmos_alert{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/sigma/airlock/south) "aAG" = ( /obj/effect/decal/mecha_wreckage/hoverpod, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/corsat/sigma/biodome/scrapyard) "aAH" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "bluegreycorner" - }, +/turf/open/floor/corsat/bluegreycorner/east, /area/corsat/sigma/airlock/south) "aAI" = ( -/turf/open/floor/corsat{ - icon_state = "bluegreycorner" - }, +/turf/open/floor/corsat/bluegreycorner, /area/corsat/sigma/airlock/south) "aAJ" = ( -/turf/open/floor/corsat{ - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey, /area/corsat/sigma/airlock/south) "aAK" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "bluegreycorner" - }, +/turf/open/floor/corsat/bluegreycorner/north, /area/corsat/sigma/airlock/south) "aAL" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/medbay/lobby) "aAM" = ( /obj/structure/machinery/power/apc/high{ @@ -9260,10 +6927,7 @@ pixel_x = -24; start_charge = 0 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "greenwhitecorner" - }, +/turf/open/floor/corsat/greenwhitecorner/west, /area/corsat/gamma/medbay/surgery) "aAN" = ( /obj/structure/machinery/light, @@ -9272,9 +6936,7 @@ dir = 1; network = list("gamma") }, -/turf/open/floor/corsat{ - icon_state = "red" - }, +/turf/open/floor/corsat/red, /area/corsat/gamma/hangar/checkpoint) "aAO" = ( /obj/structure/machinery/power/apc/high{ @@ -9282,24 +6944,16 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite/northwest, /area/corsat/gamma/medbay/lobby) "aAP" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey, /area/corsat/sigma/airlock/south) "aAQ" = ( -/turf/open/floor/corsat{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/corsat/red/southeast, /area/corsat/sigma/hangar/checkpoint) "aAR" = ( /obj/structure/machinery/power/apc/hyper{ @@ -9307,22 +6961,15 @@ pixel_x = 24; start_charge = 0 }, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/sigma/airlock/south) "aAS" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/computer/guestpass, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/gamma/hangar/security) "aAT" = ( -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/sigma/airlock/south) "aAU" = ( /obj/item/tool/pen, @@ -9330,93 +6977,61 @@ network = list("gamma") }, /obj/structure/surface/table/woodentable/fancy, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/corsat/gamma/residential/lounge) "aAV" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "bluecorner" - }, +/turf/open/floor/corsat/bluecorner/north, /area/corsat/sigma/south) "aAW" = ( /obj/structure/machinery/camera/autoname{ dir = 8; network = list("sigma") }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "purple" - }, +/turf/open/floor/corsat/purple/west, /area/corsat/sigma/south) "aAX" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/north, /area/corsat/sigma/south) "aAY" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/east, /area/corsat/sigma/airlock/south) "aAZ" = ( /obj/structure/machinery/door/poddoor/shutters/almayer/open{ id = "GammaAdmin"; name = "Security Shutters" }, -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/gamma/administration) "aBa" = ( -/turf/open/floor/corsat{ - icon_state = "gamma" - }, +/turf/open/floor/corsat/gamma, /area/corsat/gamma/airlock/south) "aBb" = ( /obj/structure/machinery/conveyor, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/cargo) "aBc" = ( -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/sigma/airlock/south) "aBe" = ( -/turf/open/floor/corsat{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/corsat/red/northeast, /area/corsat/omega/hallways) "aBf" = ( -/turf/open/floor/corsat{ - icon_state = "arrow_east" - }, +/turf/open/floor/corsat/arrow_east, /area/corsat/omega/cargo) "aBg" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/cargo) "aBh" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/cargo) "aBi" = ( /obj/structure/machinery/door/airlock/almayer/marine/requisitions/colony{ @@ -9426,192 +7041,128 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/cargo) "aBj" = ( -/turf/open/floor/almayer/research/containment/corner_var1{ - icon_state = "containment_corner_variant_2" - }, +/turf/open/floor/almayer/research/containment/corner_var1/containment_corner_variant_2, /area/corsat/inaccessible) "aBk" = ( -/turf/open/floor/almayer/research/containment/floor2{ - dir = 1 - }, +/turf/open/floor/almayer/research/containment/floor2/north, /area/corsat/inaccessible) "aBl" = ( -/turf/open/floor/almayer/research/containment/corner_var1{ - dir = 4 - }, +/turf/open/floor/almayer/research/containment/corner_var1/east, /area/corsat/inaccessible) "aBm" = ( /obj/item/clothing/mask/gas, /obj/structure/surface/rack, -/turf/open/floor/corsat{ - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite, /area/corsat/gamma/biodome/toxins) "aBn" = ( -/turf/open/floor/almayer/research/containment/entrance{ - dir = 8 - }, +/turf/open/floor/almayer/research/containment/entrance/west, /area/corsat/inaccessible) "aBo" = ( -/turf/open/floor/almayer/research/containment/floor2{ - dir = 8 - }, +/turf/open/floor/almayer/research/containment/floor2/west, /area/corsat/inaccessible) "aBq" = ( -/turf/open/floor/almayer/research/containment/corner{ - dir = 4 - }, +/turf/open/floor/almayer/research/containment/corner/east, /area/corsat/inaccessible) "aBr" = ( -/turf/open/floor/almayer/research/containment/corner{ - dir = 1 - }, +/turf/open/floor/almayer/research/containment/corner/north, /area/corsat/inaccessible) "aBs" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/west, /area/corsat/sigma/airlock/south) "aBt" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/sigma/airlock/south) "aBu" = ( /obj/structure/machinery/light, -/turf/open/floor/corsat{ - icon_state = "red" - }, +/turf/open/floor/corsat/red, /area/corsat/gamma/security) "aBv" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/west, /area/corsat/sigma/airlock/south) "aBw" = ( -/turf/open/floor/corsat{ - icon_state = "sigma" - }, +/turf/open/floor/corsat/sigma, /area/corsat/sigma/airlock/south) "aBx" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/north, /area/corsat/gamma/residential/researcher) "aBy" = ( /obj/structure/surface/table/almayer, /obj/item/folder/black_random, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/sigma/airlock/south) "aBz" = ( /obj/structure/surface/table/almayer, /obj/item/storage/donut_box, /obj/structure/machinery/light, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/sigma/airlock/south) "aBD" = ( /obj/structure/surface/table/almayer, /obj/item/ashtray/bronze, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/sigma/airlock/south) "aBE" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/theta/airlock/west/id) "aBF" = ( /obj/structure/machinery/door/poddoor/two_tile/four_tile/vertical{ id = "SigmaEastE"; name = "Sigma East Airlock" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/corsat/sigma/airlock/east) "aBG" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/theta/airlock/west) "aBH" = ( /obj/structure/bed/chair/comfy/black{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/gamma/airlock/south/id) "aBJ" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/omega/complex) "aBK" = ( /obj/structure/machinery/photocopier, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/southwest, /area/corsat/sigma/airlock/south) "aBL" = ( /obj/structure/bed/chair/office/light, -/turf/open/floor/corsat{ - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey, /area/corsat/sigma/airlock/south) "aBM" = ( -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/omega/hangar/security) "aBO" = ( -/turf/open/floor/corsat{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/corsat/red/northwest, /area/corsat/omega/hangar/office) "aBP" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/hangar/office) "aBQ" = ( /obj/structure/surface/table/almayer, /obj/item/clipboard, /obj/item/tool/pen/blue, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/sigma/airlock/south) "aBR" = ( /obj/structure/machinery/door_control{ @@ -9627,50 +7178,35 @@ pixel_x = 5; use_power = 0 }, -/turf/open/floor/corsat{ - icon_state = "blue" - }, +/turf/open/floor/corsat/blue, /area/corsat/sigma/airlock/control) "aBS" = ( /obj/structure/bed/chair/office/light, /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor/corsat{ - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey, /area/corsat/sigma/airlock/south) "aBT" = ( -/turf/open/floor/corsat{ - icon_state = "sigma" - }, +/turf/open/floor/corsat/sigma, /area/corsat/sigma/south) "aBU" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/southeast, /area/corsat/sigma/airlock/south) "aBV" = ( -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/hallways) "aBW" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/sigma/airlock/south) "aBX" = ( -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/theta/airlock/east) "aBY" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/comdoor{ @@ -9681,9 +7217,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/sigma/airlock/south) "aBZ" = ( /obj/structure/machinery/power/apc/high{ @@ -9691,10 +7225,7 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/northwest, /area/corsat/omega/maint) "aCa" = ( /obj/structure/machinery/portable_atmospherics/canister/empty, @@ -9703,55 +7234,39 @@ "aCb" = ( /obj/structure/surface/table/almayer, /obj/item/device/flashlight/lamp, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/sigma/airlock/south) "aCc" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/maint) "aCd" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/emails{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/sigma/airlock/south) "aCe" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/corsat/omega/airlocknorth/id) "aCf" = ( /obj/structure/surface/table/almayer, /obj/item/clipboard, /obj/item/paper, /obj/item/tool/pen/blue, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/sigma/airlock/south) "aCg" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/west, /area/corsat/sigma/south/robotics) "aCh" = ( -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/south/engineering) "aCi" = ( /obj/structure/surface/table/almayer, @@ -9760,16 +7275,11 @@ dir = 8; health = 250 }, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/sigma/airlock/south) "aCj" = ( /obj/structure/machinery/vending/security, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/corsat/red/northeast, /area/corsat/gamma/security) "aCk" = ( /obj/structure/surface/table/almayer, @@ -9777,9 +7287,7 @@ dir = 4 }, /obj/item/device/flashlight/lamp, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/gamma/hangar/flightcontrol) "aCl" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/comdoor{ @@ -9787,15 +7295,10 @@ name = "Airlock Control Office"; req_access_txt = "102" }, -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/theta/airlock/east) "aCm" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/west, /area/corsat/theta/airlock/east) "aCn" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ @@ -9804,9 +7307,7 @@ req_access_txt = "101" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/gamma/administration) "aCo" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony{ @@ -9814,44 +7315,31 @@ name = "Maintainance"; req_one_access = null }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/airlock/south) "aCp" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/sigma/south) "aCq" = ( /obj/structure/showcase{ icon_state = "processor"; name = "Processor Unit" }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/inaccessible) "aCr" = ( -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/south/engineering) "aCs" = ( -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/south/robotics) "aCt" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/atmos_alert, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/northwest, /area/corsat/gamma/engineering) "aCu" = ( /turf/open/floor/corsat, @@ -9862,69 +7350,49 @@ /obj/item/implantcase, /obj/item/implantcase, /obj/item/implantpad, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/north, /area/corsat/gamma/sigmaremote) "aCw" = ( /obj/structure/machinery/light{ dir = 4 }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/sigma/south) "aCx" = ( /obj/structure/prop/almayer/cannon_cables{ color = "#55BBFF"; name = "\improper Cables" }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/inaccessible) "aCy" = ( -/turf/open/floor/corsat{ - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner, /area/corsat/sigma/southeast) "aCz" = ( -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/southeast/generator) "aCA" = ( /obj/structure/machinery/power/terminal{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/north, /area/corsat/sigma/southeast/generator) "aCB" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/sigma/southeast) "aCC" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/sigma/southeast) "aCD" = ( /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/sigma/southeast) "aCE" = ( /obj/structure/machinery/light{ @@ -9932,31 +7400,21 @@ }, /obj/structure/surface/table/almayer, /obj/item/pamphlet/skill/powerloader, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/southwest, /area/corsat/gamma/cargo/lobby) "aCF" = ( /obj/structure/machinery/cm_vending/sorted/boozeomat, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/corsat/gamma/rnr/bar) "aCG" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/sigma/southeast) "aCH" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/almayer{ - icon_state = "tcomms" - }, +/turf/open/floor/almayer/tcomms, /area/corsat/sigma/southeast/telecomm) "aCI" = ( /obj/structure/machinery/door/airlock/almayer/medical/glass/colony{ @@ -9966,17 +7424,13 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/medbay) "aCJ" = ( /obj/structure/prop/almayer/cannon_cable_connector{ name = "\improper Cable connector" }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/inaccessible) "aCK" = ( /obj/structure/machinery/light/small{ @@ -9994,10 +7448,7 @@ dir = 8 }, /obj/structure/surface/table/almayer, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/northwest, /area/corsat/gamma/engineering/lobby) "aCM" = ( /obj/structure/machinery/door/airlock/almayer/research/glass/colony{ @@ -10007,17 +7458,13 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/sigma/south/complex) "aCN" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/sigma/south/complex) "aCO" = ( /obj/structure/machinery/light/small{ @@ -10029,30 +7476,11 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/sigma/south) "aCQ" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "bluegreycorner" - }, +/turf/open/floor/corsat/bluegreycorner/west, /area/corsat/theta/airlock/east) -"aCR" = ( -/obj/structure/machinery/power/geothermal{ - desc = "A high-tech thermoelectric generator fueled by a superheated uranium rod."; - fail_rate = 4; - name = "\improper G-17 Thermoelectric Generator" - }, -/obj/structure/cable/yellow{ - d2 = 4; - icon_state = "0-4" - }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, -/area/corsat/sigma/southeast/generator) "aCS" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony{ name = "Reception Desk"; @@ -10061,33 +7489,25 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/engineering/lobby) "aCT" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "tcomms" - }, +/turf/open/floor/almayer/tcomms, /area/corsat/sigma/southeast/telecomm) "aCU" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor/almayer{ - icon_state = "tcomms" - }, +/turf/open/floor/almayer/tcomms, /area/corsat/sigma/southeast/telecomm) "aCV" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/hangar/checkpoint) "aCW" = ( /obj/structure/machinery/power/apc/high{ @@ -10095,10 +7515,7 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/corsat/sigma/checkpoint) "aCX" = ( /turf/open/floor/corsat, @@ -10112,81 +7529,55 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/medbay/lobby) "aCZ" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/dorms) "aDa" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/sigma/dorms) "aDb" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/north, /area/corsat/theta/airlock/east) "aDc" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/sigma/dorms) "aDd" = ( -/turf/open/floor/corsat{ - dir = 10; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/southwest, /area/corsat/sigma/south) "aDe" = ( -/turf/open/floor/corsat{ - icon_state = "blue" - }, +/turf/open/floor/corsat/blue, /area/corsat/sigma/south) "aDf" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/sigma/dorms) "aDg" = ( /obj/structure/closet/crate/science, /obj/item/cell/hyper/empty, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/northwest, /area/corsat/sigma/south/complex) "aDh" = ( /obj/structure/closet/firecloset, -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/sigma/south/complex) "aDi" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purple" - }, +/turf/open/floor/corsat/purple/north, /area/corsat/gamma/residential) "aDj" = ( /obj/structure/surface/table/reinforced, @@ -10196,38 +7587,27 @@ /obj/structure/machinery/door/window/eastright{ name = "Medical Desk" }, -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/gamma/medbay/lobby) "aDk" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/southwest, /area/corsat/theta/airlock/east) "aDl" = ( /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/sigma/north) "aDm" = ( /obj/structure/bed/chair/office/light, -/turf/open/floor/corsat{ - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey, /area/corsat/theta/airlock/east) "aDn" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/sigma/north) "aDo" = ( /obj/structure/machinery/power/apc/high{ @@ -10235,48 +7615,32 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "whitebluefull" - }, +/turf/open/floor/corsat/whitebluefull/southwest, /area/corsat/sigma/laundry) "aDp" = ( /obj/structure/surface/rack, /obj/item/storage/bag/trash, /obj/item/storage/bag/trash, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/northwest, /area/corsat/sigma/north) "aDq" = ( -/turf/open/floor/corsat{ - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey, /area/corsat/theta/airlock/east) "aDr" = ( /obj/structure/bed/chair/office/light{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey, /area/corsat/theta/airlock/east) "aDs" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "whitebluefull" - }, +/turf/open/floor/corsat/whitebluefull/southwest, /area/corsat/sigma/laundry) "aDt" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "whitebluefull" - }, +/turf/open/floor/corsat/whitebluefull/southwest, /area/corsat/sigma/laundry) "aDu" = ( /obj/structure/machinery/power/apc/high{ @@ -10284,23 +7648,16 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner/north, /area/corsat/sigma/cargo) "aDv" = ( /obj/structure/closet/emcloset, -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/sigma/south/complex) "aDw" = ( /obj/structure/surface/table/reinforced, /obj/item/storage/fancy/cigarettes/lucky_strikes, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/theta/airlock/east) "aDx" = ( /obj/structure/surface/table/reinforced, @@ -10308,9 +7665,7 @@ dir = 1; network = list("theta") }, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/theta/airlock/east) "aDy" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ @@ -10340,24 +7695,18 @@ pixel_x = -5; use_power = 0 }, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/theta/airlock/east) "aDB" = ( /obj/structure/machinery/disposal, -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/sigma/south/complex) "aDC" = ( /obj/structure/showcase{ icon_state = "broadcast receiver"; name = "Subspace Receiver" }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/inaccessible) "aDD" = ( /obj/structure/machinery/door/airlock/almayer/generic{ @@ -10366,18 +7715,13 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "whitebluefull" - }, +/turf/open/floor/corsat/whitebluefull/southwest, /area/corsat/sigma/lavatory) "aDE" = ( /obj/structure/surface/table/reinforced, /obj/item/paper, /obj/item/tool/pen/blue, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/theta/airlock/east) "aDF" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony{ @@ -10385,9 +7729,7 @@ name = "Maintainance"; req_one_access = null }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/theta/airlock/east) "aDG" = ( /obj/structure/machinery/power/apc/high{ @@ -10395,19 +7737,14 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "whitebluefull" - }, +/turf/open/floor/corsat/whitebluefull/southwest, /area/corsat/sigma/lavatory) "aDH" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/computer/atmos_alert{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/theta/airlock/east) "aDI" = ( /obj/structure/machinery/door/poddoor/almayer/open{ @@ -10416,9 +7753,7 @@ use_power = 0 }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/corsat/sigma/hangar/id) "aDJ" = ( /obj/structure/machinery/door_control{ @@ -10428,16 +7763,11 @@ use_power = 0 }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/cargo) "aDK" = ( /obj/structure/machinery/vending/coffee, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "bluecorner" - }, +/turf/open/floor/corsat/bluecorner/east, /area/corsat/sigma/hangar) "aDL" = ( /obj/structure/machinery/camera/autoname{ @@ -10445,36 +7775,26 @@ network = list("sigma") }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/cargo) "aDM" = ( /obj/structure/machinery/light{ dir = 8 }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/cargo) "aDN" = ( /obj/structure/machinery/vending/coffee, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/hangar/arrivals) "aDO" = ( /obj/effect/landmark/survivor_spawner, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/gamma/administration) "aDP" = ( /obj/structure/machinery/vending/cigarette/colony, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/hangar/arrivals) "aDQ" = ( /obj/structure/machinery/power/apc/hyper{ @@ -10482,25 +7802,17 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "bluecorner" - }, +/turf/open/floor/corsat/bluecorner/north, /area/corsat/sigma/hangar) "aDR" = ( /obj/structure/machinery/disposal, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/hangar/arrivals) "aDS" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "darkgreen" - }, +/turf/open/floor/corsat/darkgreen/northwest, /area/corsat/gamma/hangar/arrivals) "aDT" = ( /obj/structure/machinery/power/apc/high{ @@ -10512,9 +7824,7 @@ dir = 8 }, /obj/structure/machinery/chem_master/condimaster, -/turf/open/floor/corsat{ - icon_state = "sterileplate" - }, +/turf/open/floor/corsat/sterileplate, /area/corsat/gamma/kitchen) "aDU" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony{ @@ -10524,9 +7834,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/maint) "aDV" = ( /obj/structure/machinery/door/airlock/almayer/generic{ @@ -10535,17 +7843,11 @@ req_access_txt = "106"; use_power = 0 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/corsat/sigma/biodome/gunrange) "aDX" = ( /obj/structure/reagent_dispensers/water_cooler, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "darkgreen" - }, +/turf/open/floor/corsat/darkgreen/north, /area/corsat/sigma/hangar/arrivals) "aDY" = ( /turf/closed/shuttle/ert{ @@ -10557,9 +7859,7 @@ name = "Control Room"; req_access_txt = "103" }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/sigmaremote) "aEa" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony{ @@ -10568,19 +7868,14 @@ req_access_txt = "103"; req_one_access = null }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/sigmaremote) "aEb" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/computer/secure_data{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/corsat/red/southeast, /area/corsat/gamma/hangar/checkpoint) "aEc" = ( /turf/closed/shuttle/ert{ @@ -10609,64 +7904,33 @@ "aEg" = ( /obj/structure/surface/rack, /obj/item/device/flashlight, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/corsat/red/southwest, /area/corsat/gamma/hangar/checkpoint) "aEh" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/hangar) "aEi" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/hallways) "aEj" = ( -/turf/open/floor/plating{ - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate, /area/prison/hangar_storage/research/shuttle) "aEk" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purplecorner" - }, +/turf/open/floor/corsat/purplecorner/east, /area/corsat/omega/airlocknorth) "aEl" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purple" - }, +/turf/open/floor/corsat/purple/north, /area/corsat/omega/airlocknorth) "aEn" = ( /obj/effect/decal/cleanable/blood/xtracks, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/omega/airlocknorth) -"aEp" = ( -/obj/structure/machinery/power/geothermal{ - desc = "A high-tech thermoelectric generator fueled by a superheated uranium rod."; - fail_rate = 4; - name = "\improper G-17 Thermoelectric Generator" - }, -/obj/structure/cable/yellow{ - d2 = 4; - icon_state = "0-4" - }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, -/area/corsat/gamma/engineering/core) "aEq" = ( /obj/structure/window/framed/corsat, /turf/open/floor/plating, @@ -10675,39 +7939,17 @@ /obj/structure/window/framed/corsat, /turf/open/floor/plating, /area/corsat/gamma/cargo/lobby) -"aEs" = ( -/obj/structure/machinery/power/geothermal{ - desc = "A high-tech thermoelectric generator fueled by a superheated uranium rod."; - fail_rate = 4; - name = "\improper G-17 Thermoelectric Generator" - }, -/obj/structure/cable/yellow{ - d1 = 2; - d2 = 4; - icon_state = "0-8"; - layer = 2.1 - }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, -/area/corsat/gamma/engineering/core) "aEt" = ( -/turf/open/floor/corsat{ - icon_state = "arrow_west" - }, +/turf/open/floor/corsat/arrow_west, /area/corsat/gamma/engineering/core) "aEu" = ( /obj/structure/sign/safety/airlock{ pixel_x = 32 }, -/turf/open/floor/corsat{ - icon_state = "purplecorner" - }, +/turf/open/floor/corsat/purplecorner, /area/corsat/omega/airlocknorth) "aEv" = ( -/turf/open/floor/corsat{ - icon_state = "arrow_north" - }, +/turf/open/floor/corsat/arrow_north, /area/corsat/sigma/southeast/generator) "aEw" = ( /turf/closed/wall/r_wall/biodome/biodome_unmeltable, @@ -10720,46 +7962,20 @@ /area/corsat/omega/hangar) "aEz" = ( /obj/structure/closet/firecloset, -/turf/open/floor/corsat{ - icon_state = "darkgreen" - }, +/turf/open/floor/corsat/darkgreen, /area/corsat/gamma/hangar/monorail) -"aEA" = ( -/obj/structure/machinery/power/geothermal{ - desc = "A high-tech thermoelectric generator fueled by a superheated uranium rod."; - fail_rate = 4; - name = "\improper G-17 Thermoelectric Generator" - }, -/obj/structure/cable/yellow{ - d1 = 2; - d2 = 4; - icon_state = "0-8"; - layer = 2.1 - }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, -/area/corsat/sigma/southeast/generator) "aEC" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/east, /area/corsat/omega/airlocknorth) "aED" = ( /obj/structure/surface/table/reinforced, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/corsat/omega/airlocknorth) "aEE" = ( /obj/structure/bed/chair/comfy/black{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "red" - }, +/turf/open/floor/corsat/red, /area/corsat/omega/airlocknorth) "aEF" = ( /obj/structure/surface/table/reinforced, @@ -10768,44 +7984,29 @@ name = "Dome Lockdown"; use_power = 0 }, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/corsat/red/southeast, /area/corsat/omega/airlocknorth) "aEG" = ( /obj/structure/filingcabinet/filingcabinet, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/omega/airlocknorth) "aEH" = ( /obj/structure/surface/table/reinforced, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/omega/airlocknorth) "aEJ" = ( /obj/structure/bed/chair/office/light, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/gamma/residential/west) "aEK" = ( -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/southeast/generator) "aEL" = ( /obj/structure/bed/chair{ dir = 1 }, /obj/structure/machinery/light, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/southwest, /area/corsat/omega/complex) "aEM" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony{ @@ -10815,18 +8016,14 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/southeast/generator) "aEN" = ( /obj/structure/bed/chair{ dir = 1 }, /obj/structure/machinery/light, -/turf/open/floor/corsat{ - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite, /area/corsat/omega/complex) "aEP" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, @@ -10836,9 +8033,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor/almayer{ - icon_state = "tcomms" - }, +/turf/open/floor/almayer/tcomms, /area/corsat/sigma/southeast/telecomm) "aER" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -10850,43 +8045,29 @@ "aES" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/station_alert, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/north, /area/corsat/gamma/engineering) "aET" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/comdoor{ name = "Administration"; req_access_txt = "106" }, -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/gamma/administration) "aEU" = ( /obj/structure/closet/secure_closet/engineering_chief{ req_access_txt = "101" }, /obj/effect/landmark/item_pool_spawner/corsat_bio_lock, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/northeast, /area/corsat/gamma/engineering) "aEV" = ( /obj/effect/landmark/survivor_spawner, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/north, /area/corsat/gamma/cargo/disposal) "aEW" = ( /obj/effect/landmark/survivor_spawner, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "whitebluefull" - }, +/turf/open/floor/corsat/whitebluefull/southwest, /area/corsat/gamma/residential/lavatory) "aEX" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -10899,9 +8080,7 @@ /obj/structure/bed, /obj/structure/machinery/light, /obj/item/bedsheet, -/turf/open/floor/corsat{ - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite, /area/corsat/gamma/medbay) "aEZ" = ( /obj/effect/alien/weeds/node, @@ -10911,16 +8090,11 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/gamma/hangar/checkpoint) "aFc" = ( /obj/effect/alien/weeds/node, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/omega/biodome) "aFd" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -10929,16 +8103,12 @@ /area/corsat/gamma/biodome) "aFe" = ( /obj/effect/landmark/xeno_spawn, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/omega/biodome) "aFf" = ( /obj/effect/landmark/xeno_spawn, /obj/effect/alien/weeds/node, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/omega/biodome) "aFg" = ( /obj/structure/bed/chair/wood/normal{ @@ -10957,10 +8127,7 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "whitebluefull" - }, +/turf/open/floor/corsat/whitebluefull/southwest, /area/corsat/gamma/residential/researcher) "aFj" = ( /obj/structure/toilet{ @@ -10969,19 +8136,13 @@ /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "whitebluefull" - }, +/turf/open/floor/corsat/whitebluefull/southwest, /area/corsat/gamma/residential/researcher) "aFk" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/east, /area/corsat/gamma/residential/researcher) "aFl" = ( /obj/structure/barricade/handrail{ @@ -11002,10 +8163,7 @@ /obj/structure/flora/pottedplant{ icon_state = "pottedplant_21" }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "white" - }, +/turf/open/floor/corsat/white/west, /area/corsat/gamma/residential) "aFn" = ( /obj/structure/filingcabinet/filingcabinet, @@ -11022,10 +8180,7 @@ /area/corsat/gamma/residential/researcher) "aFp" = ( /obj/structure/machinery/photocopier, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/northwest, /area/corsat/gamma/engineering) "aFq" = ( /obj/structure/barricade/handrail{ @@ -11041,15 +8196,11 @@ /area/corsat/gamma/residential/east) "aFr" = ( /obj/structure/machinery/light, -/turf/open/floor/corsat{ - icon_state = "red" - }, +/turf/open/floor/corsat/red, /area/corsat/gamma/hangar/checkpoint) "aFs" = ( /obj/structure/bed/chair/comfy, -/turf/open/shuttle{ - icon_state = "floor7" - }, +/turf/open/shuttle/black, /area/corsat/gamma/hangar/monorail/railcart) "aFt" = ( /obj/structure/closet/cabinet, @@ -11061,9 +8212,7 @@ "aFu" = ( /obj/structure/surface/rack, /obj/item/storage/toolbox/electrical, -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/sigma/south/complex) "aFv" = ( /obj/structure/surface/table/woodentable, @@ -11074,9 +8223,7 @@ /turf/open/floor/wood, /area/corsat/gamma/residential/researcher) "aFw" = ( -/turf/open/shuttle{ - icon_state = "floor7" - }, +/turf/open/shuttle/black, /area/corsat/gamma/hangar/monorail/railcart) "aFx" = ( /obj/structure/surface/table/woodentable, @@ -11091,38 +8238,27 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/gamma/hangar) "aFz" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/corsat/gamma/foyer) "aFA" = ( /obj/effect/decal/cleanable/blood/splatter, /obj/structure/barricade/handrail{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/northeast, /area/corsat/sigma/south/complex) "aFB" = ( /obj/structure/machinery/light, /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/hangar) "aFC" = ( /obj/structure/surface/table/woodentable, @@ -11136,9 +8272,7 @@ "aFD" = ( /obj/effect/landmark/corpsespawner/scientist, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/south/complex) "aFE" = ( /obj/structure/machinery/light, @@ -11149,26 +8283,17 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/gamma/foyer) "aFG" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/gamma/hangar/monorail/control) "aFH" = ( /obj/structure/surface/table/woodentable/fancy, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/corsat/gamma/residential/lounge) "aFI" = ( /obj/structure/bed{ @@ -11181,17 +8306,11 @@ /area/corsat/gamma/residential/researcher) "aFJ" = ( /obj/structure/machinery/photocopier, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/northwest, /area/corsat/theta/airlock/east) "aFK" = ( /obj/structure/machinery/light, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "darkgreencorner" - }, +/turf/open/floor/corsat/darkgreencorner/west, /area/corsat/gamma/foyer) "aFL" = ( /obj/structure/machinery/power/apc/hyper{ @@ -11199,10 +8318,7 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "bluegreycorner" - }, +/turf/open/floor/corsat/bluegreycorner/north, /area/corsat/theta/airlock/east) "aFM" = ( /obj/structure/machinery/light{ @@ -11215,27 +8331,18 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/corsat/gamma/residential/lounge) "aFO" = ( /obj/item/paper, /obj/structure/surface/table/woodentable/fancy, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/corsat/gamma/residential/lounge) "aFP" = ( /obj/structure/machinery/camera/autoname{ network = list("sigma") }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "bluegreycorner" - }, +/turf/open/floor/corsat/bluegreycorner/east, /area/corsat/theta/airlock/east) "aFR" = ( /obj/structure/bed, @@ -11247,19 +8354,13 @@ /area/corsat/gamma/residential/east) "aFS" = ( /obj/structure/filingcabinet/filingcabinet, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/north, /area/corsat/theta/airlock/east) "aFT" = ( /obj/structure/machinery/computer/general_air_control/large_tank_control{ name = "Waste Tank Control" }, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/northwest, /area/corsat/sigma/airlock/control) "aFU" = ( /obj/structure/bed/chair{ @@ -11269,9 +8370,7 @@ /area/corsat/gamma/residential/east) "aFV" = ( /obj/structure/machinery/light, -/turf/open/floor/corsat{ - icon_state = "red" - }, +/turf/open/floor/corsat/red, /area/corsat/gamma/hangar/cargo) "aFW" = ( /obj/structure/toilet{ @@ -11280,10 +8379,7 @@ /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "whitebluefull" - }, +/turf/open/floor/corsat/whitebluefull/southwest, /area/corsat/gamma/residential/researcher) "aFX" = ( /obj/structure/bed/chair{ @@ -11295,10 +8391,10 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellow" - }, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/structure/surface/rack, +/turf/open/floor/corsat/yellow/north, /area/corsat/gamma/engineering/core) "aGb" = ( /obj/structure/surface/table/woodentable, @@ -11320,10 +8416,7 @@ /obj/item/ammo_magazine/pistol/mod88, /obj/item/ammo_magazine/pistol/mod88, /obj/item/ammo_magazine/pistol/mod88, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/corsat/red/northwest, /area/corsat/sigma/south/security) "aGd" = ( /obj/structure/surface/table, @@ -11335,19 +8428,13 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/gamma/residential/west) "aGe" = ( /obj/structure/barricade/handrail{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/east, /area/corsat/sigma/south/complex) "aGf" = ( /turf/closed/wall/r_wall/biodome/biodome_unmeltable, @@ -11358,27 +8445,19 @@ dir = 8 }, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/south/complex) "aGh" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/north, /area/corsat/gamma/cargo) "aGi" = ( /obj/structure/surface/table/almayer, /obj/item/paper_bin, /obj/item/tool/pen/blue, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/southwest, /area/corsat/theta/airlock/east) "aGj" = ( /obj/structure/filingcabinet/filingcabinet, @@ -11391,10 +8470,7 @@ /obj/structure/bed/chair/comfy/black{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/gamma/hangar/cargo) "aGl" = ( /obj/structure/machinery/door/poddoor/almayer/open{ @@ -11402,27 +8478,19 @@ name = "Hangar Lockdown"; use_power = 0 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/corsat/gamma/hangar) "aGm" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/north, /area/corsat/gamma/cargo) "aGn" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner/north, /area/corsat/gamma/cargo) "aGo" = ( /obj/structure/machinery/power/apc/high{ @@ -11431,41 +8499,29 @@ start_charge = 0 }, /obj/structure/surface/table/woodentable/fancy, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/corsat/gamma/residential/lounge) "aGp" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/airlocknorth/id) "aGq" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/airlocknorth/id) "aGr" = ( -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/airlock/south) "aGs" = ( /obj/structure/toilet, /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "whitebluefull" - }, +/turf/open/floor/corsat/whitebluefull/southwest, /area/corsat/gamma/residential/lavatory) "aGt" = ( /obj/structure/machinery/door/airlock/almayer/medical/glass/colony{ @@ -11474,30 +8530,22 @@ req_one_access = null }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/medbay/surgery) "aGu" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/theta/airlock/east) "aGv" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/theta/airlock/east) "aGw" = ( -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/corsat/theta/airlock/east) "aGx" = ( /obj/structure/window/framed/corsat, @@ -11512,57 +8560,38 @@ id = "OmegaN"; name = "Omega Airlock" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/corsat/omega/airlocknorth) "aGz" = ( /obj/structure/machinery/light, -/turf/open/floor/corsat{ - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite, /area/corsat/sigma/south/complex) "aGA" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "bluecorner" - }, +/turf/open/floor/corsat/bluecorner/north, /area/corsat/gamma/residential) "aGB" = ( -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/corsat/omega/airlocknorth) "aGC" = ( /obj/structure/machinery/light, -/turf/open/floor/corsat{ - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner, /area/corsat/gamma/cargo) "aGD" = ( /obj/structure/machinery/light, -/turf/open/floor/corsat{ - icon_state = "brown" - }, +/turf/open/floor/corsat/brown, /area/corsat/gamma/cargo) "aGE" = ( /obj/structure/stairs{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/south/complex) "aGF" = ( /obj/effect/landmark/survivor_spawner, -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/theta/airlock/east) "aGG" = ( -/turf/open/floor/corsat{ - icon_state = "bluegreycorner" - }, +/turf/open/floor/corsat/bluegreycorner, /area/corsat/theta/airlock/east) "aGI" = ( /obj/structure/toilet{ @@ -11571,37 +8600,26 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "whitebluefull" - }, +/turf/open/floor/corsat/whitebluefull/southwest, /area/corsat/gamma/residential/lavatory) "aGJ" = ( /obj/structure/surface/table/almayer, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/omega/offices) "aGK" = ( /obj/structure/bedsheetbin, /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "whitebluefull" - }, +/turf/open/floor/corsat/whitebluefull/southwest, /area/corsat/gamma/residential/laundry) "aGL" = ( /obj/structure/machinery/washing_machine, /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "whitebluefull" - }, +/turf/open/floor/corsat/whitebluefull/southwest, /area/corsat/gamma/residential/laundry) "aGM" = ( /obj/structure/surface/rack, @@ -11611,26 +8629,17 @@ /obj/item/ammo_magazine/smg/mp27, /obj/item/ammo_magazine/smg/mp27, /obj/item/ammo_magazine/smg/mp27, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/corsat/sigma/south/security) "aGN" = ( /obj/structure/machinery/bioprinter{ req_access_txt = "100" }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite/north, /area/corsat/gamma/medbay) "aGO" = ( /obj/structure/machinery/vending/security, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/corsat/red/northeast, /area/corsat/sigma/south/security) "aGP" = ( /obj/structure/machinery/door/airlock/almayer/command/colony{ @@ -11639,9 +8648,7 @@ req_access_txt = "106;102;103" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/southeast/datalab) "aGQ" = ( /obj/structure/machinery/door/airlock/almayer/medical/glass/colony{ @@ -11650,18 +8657,14 @@ req_one_access_txt = "103" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/medbay/chemistry) "aGR" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony{ name = "Engineering"; req_one_access_txt = "102" }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/engineering) "aGS" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony{ @@ -11670,24 +8673,16 @@ req_one_access_txt = "102" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/southeast/generator) "aGT" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/west, /area/corsat/sigma/southeast/datalab) "aGU" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/sigma/south/security) "aGV" = ( /obj/structure/closet/secure_closet/guncabinet{ @@ -11696,16 +8691,10 @@ }, /obj/item/weapon/shield/riot, /obj/item/weapon/shield/riot, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/corsat/red/southwest, /area/corsat/sigma/south/security) "aGW" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/north, /area/corsat/sigma/southeast/datalab) "aGX" = ( /obj/structure/machinery/power/apc/high{ @@ -11713,33 +8702,23 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/north, /area/corsat/sigma/southeast/datalab) "aGY" = ( /obj/structure/surface/rack, /obj/item/storage/toolbox/mechanical, -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/sigma/south/complex) "aHa" = ( /obj/structure/surface/rack, /obj/item/storage/toolbox/emergency, -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/sigma/south/complex) "aHb" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/west, /area/corsat/gamma/cargo) "aHc" = ( /obj/structure/machinery/door/airlock/almayer/command/colony{ @@ -11747,9 +8726,7 @@ name = "Administration"; req_access_txt = "106" }, -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/gamma/administration) "aHd" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ @@ -11758,23 +8735,16 @@ req_access_txt = "101" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/airlock/east/id) "aHe" = ( -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/omega/offices) "aHf" = ( /obj/structure/machinery/door/airlock/almayer/generic{ name = "\improper Toilet Unit" }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "whitebluefull" - }, +/turf/open/floor/corsat/whitebluefull/southwest, /area/corsat/sigma/lavatory) "aHg" = ( /obj/structure/machinery/door/airlock/almayer/generic{ @@ -11791,9 +8761,7 @@ name = "Administration"; req_access_txt = "106" }, -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/sigma/south/offices) "aHi" = ( /obj/structure/machinery/door/airlock/almayer/command/colony{ @@ -11803,9 +8771,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/sigma/south/offices) "aHj" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ @@ -11814,9 +8780,7 @@ req_access_txt = "101" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/checkpoint) "aHk" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ @@ -11826,33 +8790,23 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/south/security) "aHm" = ( /obj/structure/largecrate/random/barrel, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/northeast, /area/corsat/gamma/cargo) "aHn" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "omega" - }, +/turf/open/floor/corsat/omega, /area/corsat/omega/hallways) "aHo" = ( /obj/structure/machinery/cm_vending/sorted/medical/blood{ req_access_txt = "100" }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite/north, /area/corsat/gamma/medbay) "aHp" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ @@ -11862,9 +8816,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/theta/airlock/west/id) "aHq" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ @@ -11874,9 +8826,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/theta/airlock/west) "aHr" = ( /obj/structure/machinery/door/airlock/almayer/marine/requisitions/colony{ @@ -11886,15 +8836,11 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/cargo) "aHs" = ( /obj/structure/closet/firecloset, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/hangar) "aHt" = ( /obj/structure/closet/secure_closet/security_empty, @@ -11902,33 +8848,20 @@ /obj/item/clothing/accessory/storage/holster/armpit, /obj/item/storage/pouch/general/medium, /obj/item/storage/pouch/pistol, -/turf/open/floor/corsat{ - icon_state = "red" - }, +/turf/open/floor/corsat/red, /area/corsat/sigma/south/security) "aHu" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/west, /area/corsat/omega/offices) "aHv" = ( -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/southeast/datalab) "aHw" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/north, /area/corsat/omega/offices) "aHx" = ( /obj/structure/machinery/vending/security, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/corsat/red/southeast, /area/corsat/sigma/south/security) "aHy" = ( /obj/structure/machinery/door/airlock/almayer/research/glass/colony{ @@ -11937,9 +8870,7 @@ req_one_access_txt = "103" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/sigmaremote) "aHz" = ( /obj/structure/machinery/door/airlock/almayer/research/glass/colony{ @@ -11949,9 +8880,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/sigmaremote) "aHA" = ( /obj/structure/machinery/door/airlock/almayer/research/glass/colony{ @@ -11961,17 +8890,13 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/biodome/virology) "aHB" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/cargo) "aHC" = ( /obj/structure/machinery/door/airlock/almayer/research/glass/colony{ @@ -11980,9 +8905,7 @@ req_one_access_txt = "103" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/biodome/virology) "aHD" = ( /obj/structure/machinery/door/airlock/almayer/research/glass/colony{ @@ -11996,16 +8919,12 @@ name = "Virology Lockdown" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/biodome/virology) "aHE" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/juicer, -/turf/open/floor/corsat{ - icon_state = "sterileplate" - }, +/turf/open/floor/corsat/sterileplate, /area/corsat/gamma/kitchen) "aHF" = ( /obj/structure/machinery/door/airlock/almayer/research/glass/colony{ @@ -12020,9 +8939,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/biodome/virology) "aHG" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ @@ -12032,17 +8949,13 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/checkpoint) "aHH" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner, /area/corsat/omega/cargo) "aHI" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -12052,23 +8965,16 @@ dir = 1; network = list("omega") }, -/turf/open/floor/corsat{ - icon_state = "brown" - }, +/turf/open/floor/corsat/brown, /area/corsat/omega/cargo) "aHJ" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/sigma/south/complex) "aHK" = ( /obj/structure/surface/table/reinforced, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/sigma/south/security) "aHL" = ( /turf/closed/wall/r_wall/biodome/biodome_unmeltable, @@ -12079,19 +8985,14 @@ name = "Omega Airlock" }, /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/corsat/omega/airlocknorth) "aHN" = ( /obj/structure/machinery/light{ dir = 4 }, /obj/structure/flora/pottedplant, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/southeast, /area/corsat/theta/airlock/east) "aHO" = ( /obj/structure/machinery/door/airlock/almayer/medical/glass/colony{ @@ -12101,9 +9002,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/hydroponics) "aHP" = ( /obj/structure/machinery/door/airlock/almayer/medical/glass/colony{ @@ -12112,9 +9011,7 @@ req_one_access = null }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/freezer) "aHQ" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -12123,9 +9020,7 @@ name = "Food Storage"; req_one_access = null }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/hydroponics) "aHR" = ( /obj/structure/machinery/power/apc/high{ @@ -12133,27 +9028,20 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/freezer) "aHS" = ( /obj/structure/machinery/light{ dir = 8 }, /obj/structure/flora/pottedplant, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/southwest, /area/corsat/theta/airlock/east) "aHT" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/freezer) "aHU" = ( /obj/structure/machinery/light{ @@ -12163,9 +9051,7 @@ /obj/structure/machinery/computer/station_alert{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey, /area/corsat/theta/airlock/east) "aHV" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ @@ -12175,9 +9061,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "sterileplate" - }, +/turf/open/floor/corsat/sterileplate, /area/corsat/gamma/kitchen) "aHW" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ @@ -12187,17 +9071,11 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/gamma/canteen) "aHX" = ( /obj/structure/surface/table/woodentable, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/corsat/sigma/cafe) "aHY" = ( /obj/structure/machinery/door/airlock/almayer/medical/glass/colony{ @@ -12207,15 +9085,10 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/corsat/sigma/cafe) "aHZ" = ( -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/sigma/south/complex) "aIa" = ( /obj/structure/machinery/door/airlock/almayer/research/glass/colony{ @@ -12224,9 +9097,7 @@ req_one_access_txt = "101" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/biodome/complex) "aIb" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony{ @@ -12235,9 +9106,7 @@ req_one_access = null }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/residential/maint) "aIc" = ( /obj/structure/machinery/door/airlock/almayer/research/glass/colony{ @@ -12247,22 +9116,14 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/biodome/toxins) "aId" = ( -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/corsat/gamma/sigmaremote) "aIe" = ( /obj/structure/closet/secure_closet/security, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/corsat/red/northwest, /area/corsat/gamma/security) "aIf" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ @@ -12271,9 +9132,7 @@ req_access_txt = "101" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/theta/airlock/east/id) "aIg" = ( /obj/structure/machinery/door/window/brigdoor/eastleft{ @@ -12290,22 +9149,14 @@ id = "GammaAdmin"; name = "Security Shutters" }, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/gamma/administration) "aIh" = ( /obj/structure/closet/crate/science, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/north, /area/corsat/sigma/south/complex) "aIi" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/corsat/omega/airlocknorth) "aIj" = ( /obj/effect/landmark/survivor_spawner, @@ -12329,55 +9180,37 @@ /turf/open/floor/plating, /area/corsat/gamma/biodome/virology) "aIo" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhitecorner" - }, +/turf/open/floor/corsat/purplewhitecorner/north, /area/corsat/gamma/biodome/virology) "aIp" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/north, /area/corsat/gamma/biodome/virology) "aIq" = ( -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/biodome/virology) "aIr" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/gamma/biodome/virology) "aIs" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/biodome/virology) "aIt" = ( /turf/closed/wall/biodome, /area/corsat/gamma/biodome/complex) "aIu" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhitecorner" - }, +/turf/open/floor/corsat/purplewhitecorner/north, /area/corsat/gamma/biodome/complex) "aIv" = ( /turf/closed/wall/r_wall/biodome/biodome_unmeltable, /area/corsat/omega/hangar/office) "aIw" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/west, /area/corsat/gamma/biodome/complex) "aIx" = ( /turf/closed/wall/r_wall/biodome, @@ -12392,85 +9225,53 @@ name = "Gamma Lockdown"; use_power = 0 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/corsat/gamma/airlock/north) "aIz" = ( /obj/structure/closet/crate/science, /obj/item/storage/fancy/vials/random, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/northeast, /area/corsat/sigma/south/complex) "aIA" = ( /turf/closed/wall/r_wall/biodome, /area/corsat/sigma/airlock/control) "aIB" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "purple" - }, +/turf/open/floor/corsat/purple/west, /area/corsat/gamma/biodome/complex) "aIC" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/west, /area/corsat/gamma/airlock/control) "aID" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/gamma/airlock/control) "aIE" = ( -/turf/open/floor/corsat{ - dir = 5; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/northeast, /area/corsat/sigma/airlock/control) "aIF" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/east, /area/corsat/sigma/airlock/control) "aIG" = ( -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/biodome/complex) "aIH" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/north, /area/corsat/gamma/biodome/complex) "aII" = ( /obj/structure/window/framed/corsat/research, /turf/open/floor/plating, /area/corsat/gamma/biodome/complex) "aIJ" = ( -/turf/open/floor/corsat{ - dir = 9; - icon_state = "purple" - }, +/turf/open/floor/corsat/purple/northwest, /area/corsat/gamma/biodome/complex) "aIK" = ( /obj/structure/window/framed/corsat/security, /turf/open/floor/plating, /area/corsat/gamma/airlock/control) "aIL" = ( -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/airlock/control) "aIM" = ( -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/airlock/control) "aIN" = ( /obj/structure/surface/table/reinforced, @@ -12478,23 +9279,16 @@ dir = 4; network = list("sigma") }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/sigma/south/security) "aIO" = ( /turf/closed/wall/biodome, /area/corsat/gamma/biodome) "aIP" = ( -/turf/open/floor/corsat{ - icon_state = "gamma" - }, +/turf/open/floor/corsat/gamma, /area/corsat/gamma/biodome/complex) "aIQ" = ( -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/corsat/gamma/airlock/control) "aIR" = ( /obj/structure/closet/secure_closet/brig{ @@ -12505,20 +9299,13 @@ name = "Cell 1"; pixel_x = -32 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/gamma/security/cells) "aIS" = ( -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/airlock/control) "aIT" = ( -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/airlock/control) "aIU" = ( /obj/structure/machinery/door/airlock/almayer/research/glass/colony{ @@ -12527,9 +9314,7 @@ req_one_access_txt = "103" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/sigmaremote) "aIV" = ( /obj/structure/closet/secure_closet/brig{ @@ -12540,18 +9325,13 @@ name = "Cell 2"; pixel_x = 32 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/gamma/security/cells) "aIW" = ( /obj/structure/bed/chair/comfy/black{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/airlock/control) "aIX" = ( /turf/open/floor/wood, @@ -12561,9 +9341,7 @@ /turf/open/floor/plating, /area/corsat/gamma/biodome/toxins) "aIZ" = ( -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/biodome/toxins) "aJa" = ( /turf/closed/wall/biodome, @@ -12575,10 +9353,7 @@ req_access_txt = "100"; req_one_access_txt = "0" }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "whitebluefull" - }, +/turf/open/floor/corsat/whitebluefull/southwest, /area/corsat/gamma/biodome/complex) "aJc" = ( /obj/structure/window/framed/corsat, @@ -12586,21 +9361,13 @@ /area/corsat/gamma/airlock/control) "aJd" = ( /obj/structure/coatrack, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/corsat/gamma/biodome/complex) "aJe" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/east, /area/corsat/gamma/biodome/toxins) "aJf" = ( -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/gamma/biodome/toxins) "aJg" = ( /obj/structure/sink{ @@ -12610,19 +9377,13 @@ /obj/structure/mirror{ pixel_y = 24 }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "whitebluefull" - }, +/turf/open/floor/corsat/whitebluefull/southwest, /area/corsat/gamma/biodome/complex) "aJh" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/east, /area/corsat/gamma/cargo) "aJi" = ( /obj/structure/sink{ @@ -12632,23 +9393,15 @@ /obj/structure/mirror{ pixel_y = 24 }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "whitebluefull" - }, +/turf/open/floor/corsat/whitebluefull/southwest, /area/corsat/gamma/biodome/complex) "aJj" = ( /obj/structure/surface/table/reinforced, /obj/effect/landmark/item_pool_spawner/corsat_bio_lock, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/theta/airlock/east) "aJk" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/east, /area/corsat/sigma/airlock/control) "aJl" = ( /obj/structure/window/framed/corsat, @@ -12658,83 +9411,48 @@ /turf/closed/wall/r_wall, /area/corsat/sigma/biodome/gunrange) "aJn" = ( -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/north, /area/corsat/sigma/biodome) "aJo" = ( -/turf/open/floor{ - dir = 8; - icon_state = "carpet6-2" - }, +/turf/open/floor/carpet6_2/west, /area/corsat/gamma/biodome/complex) "aJp" = ( /obj/structure/bed/chair/comfy/beige, -/turf/open/floor{ - dir = 8; - icon_state = "carpet14-10" - }, +/turf/open/floor/carpet14_10/west, /area/corsat/gamma/biodome/complex) "aJq" = ( -/turf/open/floor{ - dir = 8; - icon_state = "carpet10-8" - }, +/turf/open/floor/carpet10_8/west, /area/corsat/gamma/biodome/complex) "aJr" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/west, /area/corsat/gamma/biodome/toxins) "aJs" = ( /obj/structure/toilet{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "whitebluefull" - }, +/turf/open/floor/corsat/whitebluefull/southwest, /area/corsat/gamma/biodome/complex) "aJt" = ( -/turf/open/floor/corsat{ - icon_state = "gamma" - }, +/turf/open/floor/corsat/gamma, /area/corsat/gamma/airlock/control) "aJu" = ( -/turf/open/floor/corsat{ - icon_state = "gamma" - }, +/turf/open/floor/corsat/gamma, /area/corsat/gamma/hallwaysouth) "aJv" = ( -/turf/open/floor/corsat{ - icon_state = "sigma" - }, +/turf/open/floor/corsat/sigma, /area/corsat/sigma/airlock/control) "aJw" = ( -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/west, /area/corsat/sigma/biodome) "aJx" = ( -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/corsat/sigma/biodome) "aJy" = ( /obj/structure/bed/sofa/south/grey/left, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/foyer) "aJz" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/sigma/south) "aJA" = ( /obj/structure/machinery/power/apc/high{ @@ -12745,71 +9463,42 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/northwest, /area/corsat/gamma/cargo/disposal) "aJB" = ( -/turf/open/floor{ - dir = 8; - icon_state = "carpet5-1" - }, +/turf/open/floor/carpet5_1/west, /area/corsat/gamma/biodome/complex) "aJC" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 8; - icon_state = "carpet13-5" - }, +/turf/open/floor/carpet13_5/west, /area/corsat/gamma/biodome/complex) "aJD" = ( /obj/structure/bed/chair/comfy/beige{ dir = 1 }, -/turf/open/floor{ - dir = 8; - icon_state = "carpet13-5" - }, +/turf/open/floor/carpet13_5/west, /area/corsat/gamma/biodome/complex) "aJE" = ( /obj/structure/disposaloutlet, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/northeast, /area/corsat/gamma/cargo/disposal) "aJF" = ( -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/biodome/toxins) "aJG" = ( -/turf/open/floor/corsat{ - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner, /area/corsat/gamma/airlock/control) "aJH" = ( -/turf/open/floor/corsat{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/corsat/red/southeast, /area/corsat/sigma/airlock/control) "aJI" = ( -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/corsat/sigma/biodome) "aJJ" = ( -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/east, /area/corsat/sigma/biodome) "aJK" = ( -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/corsat/sigma/airlock/control) "aJL" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/comdoor{ @@ -12819,22 +9508,14 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "blue" - }, +/turf/open/floor/corsat/blue, /area/corsat/sigma/airlock/control) "aJM" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/corsat/sigma/south/security) "aJN" = ( /obj/structure/closet/secure_closet/security, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/gamma/security) "aJO" = ( /obj/structure/window/framed/corsat/security, @@ -12842,9 +9523,7 @@ /area/corsat/sigma/airlock/control) "aJP" = ( /obj/vehicle/train/cargo/engine, -/turf/open/floor/corsat{ - icon_state = "arrow_east" - }, +/turf/open/floor/corsat/arrow_east, /area/corsat/gamma/cargo) "aJQ" = ( /obj/structure/machinery/power/apc/high{ @@ -12852,10 +9531,7 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/corsat/sigma/south/security) "aJR" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ @@ -12863,46 +9539,29 @@ req_access_txt = "103" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/sigmaremote) "aJS" = ( -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/theta/airlock/control) "aJT" = ( /obj/structure/closet/secure_closet/security, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/corsat/red/northeast, /area/corsat/sigma/south/security) "aJU" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/theta/airlock/control) "aJV" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/east, /area/corsat/theta/airlock/control) "aJW" = ( /turf/closed/wall/r_wall/biodome, /area/corsat/theta/airlock/control) "aJX" = ( -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/theta/airlock/control) "aJY" = ( -/turf/open/floor/corsat{ - icon_state = "theta" - }, +/turf/open/floor/corsat/theta, /area/corsat/theta/airlock/control) "aJZ" = ( /turf/open/gm/grass/grass1/weedable, @@ -12919,9 +9578,7 @@ dir = 1; layer = 2.7 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/south/complex) "aKc" = ( /obj/structure/machinery/door/poddoor/almayer/open{ @@ -12929,20 +9586,13 @@ name = "Hangar Lockdown"; use_power = 0 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/corsat/sigma/hangar/id) "aKe" = ( -/turf/open/floor/corsat{ - dir = 9; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/northwest, /area/corsat/gamma/airlock/control) "aKf" = ( -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/corsat/theta/airlock/control) "aKg" = ( /obj/structure/window/framed/corsat, @@ -12992,94 +9642,63 @@ "aKv" = ( /obj/structure/closet/crate/science, /obj/item/ore/diamond, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/northwest, /area/corsat/sigma/south/complex) "aKw" = ( /obj/structure/closet/secure_closet/security, /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/sigma/south/security) "aKx" = ( /obj/structure/sign/safety/airlock{ pixel_y = 32 }, -/turf/open/floor/corsat{ - icon_state = "theta" - }, +/turf/open/floor/corsat/theta, /area/corsat/sigma/south) "aKy" = ( /obj/structure/window/framed/corsat, /turf/open/floor/plating, /area/corsat/theta/biodome/hydroeast) "aKz" = ( -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/theta/biodome/hydrowest) "aKA" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "bluecorner" - }, +/turf/open/floor/corsat/bluecorner/east, /area/corsat/sigma/south) "aKB" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/north, /area/corsat/sigma/south) "aKC" = ( /obj/structure/sink{ pixel_y = 24 }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "whitebluefull" - }, +/turf/open/floor/corsat/whitebluefull/southwest, /area/corsat/theta/biodome/complex) "aKD" = ( /obj/structure/machinery/door/airlock/almayer/generic{ name = "\improper Bathroom" }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "whitebluefull" - }, +/turf/open/floor/corsat/whitebluefull/southwest, /area/corsat/theta/biodome/complex) "aKE" = ( -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/theta/biodome/complex) "aKF" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/north, /area/corsat/sigma/south) "aKG" = ( -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/theta/biodome/hydroeast) "aKH" = ( /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "theta" - }, +/turf/open/floor/corsat/theta, /area/corsat/theta/biodome/complex) "aKI" = ( /obj/structure/machinery/door_control{ @@ -13095,20 +9714,14 @@ pixel_x = 5; use_power = 0 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/north, /area/corsat/gamma/airlock/control) "aKJ" = ( /obj/structure/machinery/camera/autoname{ dir = 4; network = list("theta") }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "purplecorner" - }, +/turf/open/floor/corsat/purplecorner/west, /area/corsat/theta/biodome/complex) "aKK" = ( /turf/closed/wall/biodome, @@ -13117,115 +9730,74 @@ /turf/closed/wall/biodome, /area/corsat/theta/biodome/hydroeast) "aKM" = ( -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/theta/biodome/hydrowest) "aKN" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/north, /area/corsat/theta/biodome/hydrowest) "aKO" = ( -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/theta/biodome/hydrowest) "aKP" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purplewhitecorner" - }, +/turf/open/floor/corsat/purplewhitecorner/east, /area/corsat/theta/biodome/hydrowest) "aKQ" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/north, /area/corsat/theta/biodome/hydroeast) "aKR" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purplewhitecorner" - }, +/turf/open/floor/corsat/purplewhitecorner/east, /area/corsat/theta/biodome/hydroeast) "aKS" = ( -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/theta/biodome/hydroeast) "aKT" = ( -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/theta/biodome/hydroeast) "aKV" = ( /obj/structure/prop/almayer/particle_cannon/corsat, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/inaccessible) "aKW" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/computer/secure_data{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/sigma/south/security) "aKX" = ( /obj/structure/closet/crate/freezer, -/turf/open/floor/corsat{ - icon_state = "cargo" - }, +/turf/open/floor/corsat/cargo, /area/corsat/gamma/freezer) "aKY" = ( /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "whitebluefull" - }, +/turf/open/floor/corsat/whitebluefull/southwest, /area/corsat/gamma/biodome/complex) "aKZ" = ( /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "whitebluefull" - }, +/turf/open/floor/corsat/whitebluefull/southwest, /area/corsat/gamma/biodome/complex) "aLa" = ( /obj/structure/closet/crate/trashcart, /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/west, /area/corsat/gamma/cargo/disposal) "aLb" = ( /obj/structure/closet/secure_closet{ name = "secure evidence locker"; req_access_txt = "104" }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/sigma/south/security) "aLc" = ( /obj/structure/surface/table/almayer, /obj/item/paper, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/sigma/airlock/south) "aLd" = ( /obj/structure/closet/secure_closet{ @@ -13235,10 +9807,7 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/sigma/south/security) "aLe" = ( /obj/structure/machinery/light{ @@ -13246,26 +9815,18 @@ }, /obj/structure/surface/table/almayer, /obj/item/storage/box/donkpockets, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/west, /area/corsat/sigma/south/complex) "aLf" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/machinery/door/airlock/multi_tile/almayer/comdoor{ name = "Hangar Office" }, -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/sigma/hangar/office) "aLg" = ( /obj/structure/machinery/vending/snack, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/west, /area/corsat/sigma/south/complex) "aLh" = ( /turf/closed/wall/r_wall/biodome, @@ -13280,41 +9841,25 @@ name = "Virology Wing"; req_access_txt = "103" }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/biodome/virology) "aLj" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/corsat/omega/control) "aLk" = ( -/turf/open/floor/corsat{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/corsat/red/northwest, /area/corsat/omega/control) "aLl" = ( -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/control) "aLm" = ( /obj/structure/machinery/vending/coffee, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/southwest, /area/corsat/sigma/south/complex) "aLn" = ( /obj/structure/surface/table/reinforced, /obj/item/device/flashlight/lamp, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/north, /area/corsat/gamma/airlock/control) "aLo" = ( /obj/structure/window/framed/corsat/security, @@ -13332,39 +9877,25 @@ dir = 8; network = list("omega") }, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/corsat/red/northeast, /area/corsat/omega/airlocknorth) "aLq" = ( /obj/structure/bed/chair/comfy/black{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/airlock/control) "aLs" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/north, /area/corsat/omega/control) "aLt" = ( -/turf/open/floor/corsat{ - icon_state = "omega" - }, +/turf/open/floor/corsat/omega, /area/corsat/omega/control) "aLu" = ( -/turf/open/floor/corsat{ - icon_state = "omega" - }, +/turf/open/floor/corsat/omega, /area/corsat/omega/hallways) "aLv" = ( -/turf/open/floor/corsat{ - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow, /area/corsat/omega/control) "aLw" = ( /obj/structure/machinery/power/apc/high{ @@ -13372,38 +9903,25 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/corsat/red/northeast, /area/corsat/gamma/airlock/south/id) "aLx" = ( -/turf/open/floor/corsat{ - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner, /area/corsat/theta/airlock/east/id) "aLy" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "theta" - }, +/turf/open/floor/corsat/theta, /area/corsat/sigma/south) "aLA" = ( -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/airlock/south/id) "aLB" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/airlock/south/id) "aLC" = ( /obj/structure/filingcabinet/filingcabinet, -/turf/open/floor/corsat{ - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey, /area/corsat/sigma/southeast/dataoffice) "aLD" = ( /obj/structure/machinery/power/apc/high{ @@ -13411,15 +9929,10 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/west, /area/corsat/omega/cargo) "aLE" = ( -/turf/open/floor/corsat{ - icon_state = "red" - }, +/turf/open/floor/corsat/red, /area/corsat/sigma/south) "aLH" = ( /obj/structure/machinery/door/poddoor/almayer{ @@ -13427,9 +9940,7 @@ name = "Gamma Cargo Bay"; use_power = 0 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/corsat/gamma/cargo) "aLI" = ( /obj/structure/machinery/door_control{ @@ -13438,60 +9949,40 @@ pixel_x = -24; use_power = 0 }, -/turf/open/floor/corsat{ - icon_state = "arrow_north" - }, +/turf/open/floor/corsat/arrow_north, /area/corsat/gamma/cargo) "aLK" = ( /obj/structure/machinery/vending/cigarette/colony, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/corsat/red/northeast, /area/corsat/omega/security) "aLL" = ( -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/omega/hallways) "aLM" = ( /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/omega/hallways) "aLN" = ( /obj/structure/surface/table, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/omega/hallways) "aLO" = ( /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/omega/hallways) "aLP" = ( /obj/structure/machinery/light, -/turf/open/floor/corsat{ - icon_state = "red" - }, +/turf/open/floor/corsat/red, /area/corsat/sigma/south) "aLQ" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/west, /area/corsat/sigma/south) "aLR" = ( -/turf/open/floor/corsat{ - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey, /area/corsat/gamma/hangar/flightcontrol) "aLS" = ( /obj/structure/surface/table/reinforced, @@ -13499,19 +9990,13 @@ dir = 4; network = list("sigma") }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/theta/airlock/east/id) "aLT" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/west, /area/corsat/sigma/south/complex) "aLU" = ( /obj/structure/window/framed/corsat/security, @@ -13527,14 +10012,10 @@ "aLW" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/sigma/south/complex) "aLX" = ( -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/omega/complex) "aLY" = ( /obj/structure/window/framed/corsat/security, @@ -13545,26 +10026,17 @@ /turf/open/floor/plating, /area/corsat/theta/airlock/east/id) "aLZ" = ( -/turf/open/floor/corsat{ - icon_state = "theta" - }, +/turf/open/floor/corsat/theta, /area/corsat/theta/airlock/west) "aMa" = ( -/turf/open/floor/corsat{ - icon_state = "theta" - }, +/turf/open/floor/corsat/theta, /area/corsat/theta/airlock/east) "aMb" = ( /obj/structure/surface/table/almayer, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/northeast, /area/corsat/sigma/south/complex) "aMc" = ( -/turf/open/floor/corsat{ - icon_state = "omega" - }, +/turf/open/floor/corsat/omega, /area/corsat/omega/airlocknorth) "aMd" = ( /obj/structure/machinery/door/window/brigdoor/eastleft{ @@ -13577,16 +10049,11 @@ name = "Identification Desk"; req_access_txt = "104" }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/theta/airlock/west/id) "aMf" = ( /obj/structure/bed/chair, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/corsat/red/northwest, /area/corsat/sigma/south/security) "aMg" = ( /obj/structure/surface/table/reinforced, @@ -13595,97 +10062,65 @@ name = "Security Shutters"; use_power = 0 }, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/corsat/red/northwest, /area/corsat/theta/airlock/east/id) "aMh" = ( /obj/structure/surface/table/reinforced, /obj/item/clothing/mask/cigarette/cigar/cohiba, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/corsat/theta/airlock/east/id) "aMi" = ( -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/south/robotics) "aMj" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/corsat/theta/airlock/east/id) "aMk" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/north, /area/corsat/theta/airlock/east/id) "aMl" = ( /obj/structure/bed/chair/office/light{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/east, /area/corsat/theta/airlock/east/id) "aMm" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/computer/secure_data{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/corsat/red/northeast, /area/corsat/theta/airlock/east/id) "aMn" = ( /obj/effect/landmark/survivor_spawner, /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/south/robotics) "aMo" = ( /obj/item/device/assembly/voice, /obj/structure/surface/rack, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/north, /area/corsat/sigma/south/complex) "aMp" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/airlock/control) "aMq" = ( /obj/structure/machinery/autolathe, /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/north, /area/corsat/sigma/south/complex) "aMr" = ( -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/south/security) "aMs" = ( /obj/structure/machinery/power/apc/hyper{ @@ -13694,10 +10129,7 @@ start_charge = 0 }, /obj/structure/closet/wardrobe/medic_white, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite/north, /area/corsat/gamma/medbay) "aMt" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ @@ -13707,16 +10139,11 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/airlocknorth/id) "aMu" = ( /obj/structure/machinery/r_n_d/organic_analyzer, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/north, /area/corsat/sigma/south/complex) "aMv" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ @@ -13725,15 +10152,11 @@ req_access_txt = "101" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/airlocknorth/id) "aMw" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/airlocknorth/id) "aMx" = ( /obj/structure/surface/table/reinforced, @@ -13743,32 +10166,24 @@ start_charge = 0 }, /obj/structure/machinery/computer/station_alert, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/omega/airlocknorth/id) "aMy" = ( /obj/structure/bed/chair/office/light{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/theta/airlock/east/id) "aMz" = ( /obj/structure/bed/chair/comfy/black{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/airlocknorth/id) "aMA" = ( /obj/structure/surface/table/reinforced, -/obj/item/restraints, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/obj/item/xeno_restraints, +/turf/open/floor/corsat/plate, /area/corsat/omega/airlocknorth/id) "aMB" = ( /obj/structure/closet/secure_closet/security_empty, @@ -13779,76 +10194,51 @@ /obj/item/ammo_magazine/pistol/mod88, /obj/item/storage/pouch/general/medium, /obj/item/storage/pouch/pistol, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/omega/airlocknorth) "aMC" = ( -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/airlocknorth) "aMD" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/east, /area/corsat/omega/airlocknorth) "aME" = ( /obj/structure/bedsheetbin, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "whitebluefull" - }, +/turf/open/floor/corsat/whitebluefull/southwest, /area/corsat/sigma/laundry) "aMF" = ( /obj/structure/machinery/light, /obj/structure/machinery/disposal, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/corsat/gamma/rnr/bar) "aMG" = ( -/turf/open/floor/corsat{ - icon_state = "arrow_south" - }, +/turf/open/floor/corsat/arrow_south, /area/corsat/gamma/cargo) "aMH" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "arrow_west" - }, +/turf/open/floor/corsat/arrow_west, /area/corsat/gamma/cargo) "aMI" = ( /obj/structure/machinery/camera/autoname{ dir = 1; network = list("sigma") }, -/turf/open/floor/corsat{ - icon_state = "red" - }, +/turf/open/floor/corsat/red, /area/corsat/theta/airlock/east/id) "aMJ" = ( -/turf/open/floor/corsat{ - icon_state = "arrow_north" - }, +/turf/open/floor/corsat/arrow_north, /area/corsat/gamma/cargo) "aMK" = ( -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/cargo/disposal) "aML" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/freezer) "aMM" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony{ @@ -13857,23 +10247,17 @@ req_one_access = null }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/southeast/datamaint) "aMN" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "red" - }, +/turf/open/floor/corsat/red, /area/corsat/theta/airlock/east/id) "aMO" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/southeast/datamaint) "aMP" = ( /obj/structure/bed{ @@ -13885,9 +10269,7 @@ /turf/open/floor/wood, /area/corsat/gamma/residential/researcher) "aMR" = ( -/turf/open/floor/corsat{ - icon_state = "red" - }, +/turf/open/floor/corsat/red, /area/corsat/theta/airlock/east/id) "aMS" = ( /obj/structure/surface/table/reinforced, @@ -13896,44 +10278,28 @@ name = "Security Shutters"; use_power = 0 }, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/corsat/red/southeast, /area/corsat/theta/airlock/east/id) "aMT" = ( -/turf/open/floor/corsat{ - icon_state = "bluecorner" - }, +/turf/open/floor/corsat/bluecorner, /area/corsat/sigma/south) "aMU" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/sigma/south) "aMV" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/north, /area/corsat/sigma/south/complex) "aMW" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/east, /area/corsat/sigma/southeast/datamaint) "aMX" = ( -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/southeast/datamaint) "aMY" = ( /obj/structure/closet/crate, @@ -13945,40 +10311,26 @@ /obj/item/stack/rods{ amount = 25 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/west, /area/corsat/gamma/residential/maint) "aMZ" = ( -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/omega/offices) "aNa" = ( /obj/structure/machinery/light{ dir = 1 }, /obj/structure/machinery/vending/cigarette/colony, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/north, /area/corsat/gamma/hangar/flightcontrol) "aNb" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/comdoor{ name = "Administration Office" }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/west, /area/corsat/omega/offices) "aNc" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/north, /area/corsat/sigma/southeast/dataoffice) "aNe" = ( /obj/structure/machinery/power/apc/high{ @@ -13986,32 +10338,22 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/north, /area/corsat/sigma/southeast/dataoffice) "aNg" = ( -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/sigma/southeast/dataoffice) "aNh" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "purple" - }, +/turf/open/floor/corsat/purple/northeast, /area/corsat/sigma/south) "aNi" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/hangar/arrivals) "aNj" = ( /obj/structure/surface/rack, @@ -14021,10 +10363,7 @@ pixel_x = -24; start_charge = 0 }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/corsat/red/southwest, /area/corsat/theta/airlock/east/id) "aNk" = ( /obj/structure/machinery/computer/cameras{ @@ -14035,10 +10374,7 @@ /area/corsat/gamma/administration) "aNl" = ( /obj/structure/filingcabinet/filingcabinet, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/corsat/red/southeast, /area/corsat/theta/airlock/east/id) "aNm" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/comdoor{ @@ -14049,17 +10385,13 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/sigma/southeast/dataoffice) "aNn" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/omega/offices) "aNo" = ( /obj/structure/machinery/door/airlock/almayer/command/colony{ @@ -14068,9 +10400,7 @@ req_access_txt = "106" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/omega/offices) "aNp" = ( /obj/structure/machinery/door/airlock/almayer/command/colony{ @@ -14078,28 +10408,19 @@ name = "Administration"; req_access_txt = "106" }, -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/omega/offices) "aNq" = ( /turf/closed/wall/r_wall/biodome, /area/corsat/sigma/south/offices) "aNr" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "bluegreycorner" - }, +/turf/open/floor/corsat/bluegreycorner/east, /area/corsat/sigma/southeast/datalab) "aNs" = ( -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/sigma/southeast/datalab) "aNt" = ( -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/sigma/southeast/datalab) "aNu" = ( /obj/structure/machinery/door/airlock/almayer/command/colony{ @@ -14109,35 +10430,24 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/sigma/southeast/datalab) "aNv" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/north, /area/corsat/sigma/south/offices) "aNw" = ( /obj/structure/window/framed/corsat/hull/security, /turf/open/floor/plating, /area/corsat/theta/airlock/east/id) "aNx" = ( -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/sigma/south/offices) "aNy" = ( -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/sigma/south/offices) "aNz" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/sigma/south/offices) "aNB" = ( /obj/structure/machinery/power/apc/high{ @@ -14146,34 +10456,23 @@ start_charge = 0 }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/sigma/south/offices) "aNC" = ( -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/gamma/medbay/surgery) "aND" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/medbay/chemistry) "aNE" = ( /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/corsat/red/southwest, /area/corsat/sigma/south/security) "aNF" = ( -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/medbay/chemistry) "aNG" = ( /obj/structure/surface/rack, @@ -14186,9 +10485,7 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/sigma/south/complex) "aNH" = ( /obj/structure/window/framed/corsat/security, @@ -14206,9 +10503,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/hangar/cargo) "aNJ" = ( /obj/structure/machinery/door_control{ @@ -14217,9 +10512,7 @@ pixel_x = 24; use_power = 0 }, -/turf/open/floor/corsat{ - icon_state = "arrow_north" - }, +/turf/open/floor/corsat/arrow_north, /area/corsat/gamma/cargo) "aNK" = ( /turf/closed/wall/r_wall/biodome, @@ -14229,10 +10522,7 @@ /obj/item/paper_bin, /obj/item/tool/pen/blue, /obj/item/tool/pen/blue, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/gamma/security/cells) "aNM" = ( /obj/structure/surface/rack, @@ -14242,125 +10532,77 @@ req_access_txt = "103" }, /obj/structure/window/reinforced/toughened, -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/sigma/south/complex) "aNN" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/gamma/hangar/security) "aNO" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/gamma/hangar/flightcontrol) "aNP" = ( /turf/closed/wall/r_wall/biodome, /area/corsat/gamma/security/cells) "aNQ" = ( -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/security/cells) "aNR" = ( -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/security/armory) "aNS" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/east, /area/corsat/gamma/security/cells) "aNT" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor/corsat{ - icon_state = "red" - }, +/turf/open/floor/corsat/red, /area/corsat/gamma/security/cells) "aNU" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/east, /area/corsat/gamma/security) "aNV" = ( -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/security) "aNW" = ( -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/security) "aNX" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/corsat/gamma/security) "aNY" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "bluecorner" - }, +/turf/open/floor/corsat/bluecorner/west, /area/corsat/gamma/hangar/arrivals) "aNZ" = ( -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/hangar/arrivals) "aOa" = ( -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/hangar/checkpoint) "aOb" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/gamma/hangar/checkpoint) "aOc" = ( /obj/structure/fence, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/hangar/checkpoint) "aOd" = ( -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/hangar/checkpoint) "aOe" = ( -/turf/open/shuttle/dropship{ - icon_state = "floor8" - }, +/turf/open/shuttle/dropship/light_grey_single_wide_left_to_right, /area/corsat/gamma/hangar/monorail/railcart) "aOf" = ( -/turf/open/floor/corsat{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/corsat/red/southwest, /area/corsat/gamma/hangar/checkpoint) "aOg" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purplecorner" - }, +/turf/open/floor/corsat/purplecorner/east, /area/corsat/sigma/south) "aOh" = ( /obj/structure/machinery/power/apc/high{ @@ -14368,39 +10610,26 @@ pixel_x = 24; start_charge = 0 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/gamma/foyer) "aOi" = ( -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/gamma/hangar/flightcontrol) "aOj" = ( /obj/effect/landmark/hunter_primary, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/sigma/south/security) "aOk" = ( /obj/structure/machinery/light{ dir = 4 }, /obj/structure/filingcabinet/filingcabinet, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/corsat/red/northeast, /area/corsat/sigma/south/security) "aOl" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/toolbox, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/hangar/monorail/control) "aOm" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/medidoor{ @@ -14411,22 +10640,14 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/medbay/lobby) "aOn" = ( /obj/structure/machinery/disposal, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/corsat/red/northeast, /area/corsat/sigma/south/security) "aOo" = ( -/turf/open/floor/corsat{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/corsat/red/northeast, /area/corsat/sigma/south) "aOp" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ @@ -14435,88 +10656,55 @@ req_access_txt = "101" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/hangar/security) "aOq" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "bluegreycorner" - }, +/turf/open/floor/corsat/bluegreycorner/north, /area/corsat/gamma/hangar/office) "aOr" = ( -/turf/open/floor/corsat{ - dir = 9; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/northwest, /area/corsat/gamma/hangar) "aOs" = ( /obj/structure/machinery/recharge_station, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/corsat/red/northeast, /area/corsat/gamma/hangar) "aOt" = ( -/turf/open/floor/corsat{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/corsat/red/southwest, /area/corsat/gamma/hangar) "aOu" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/west, /area/corsat/gamma/hangar/arrivals) "aOv" = ( /obj/structure/machinery/photocopier, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/sigma/south/security) "aOw" = ( -/turf/open/floor/corsat{ - icon_state = "gamma" - }, +/turf/open/floor/corsat/gamma, /area/corsat/gamma/hangar) "aOx" = ( -/turf/open/floor/corsat{ - icon_state = "arrow_west" - }, +/turf/open/floor/corsat/arrow_west, /area/corsat/gamma/hangar) "aOy" = ( /obj/structure/surface/table/almayer, /obj/item/paper_bin, /obj/item/tool/pen/blue, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/corsat/red/southwest, /area/corsat/sigma/south/security) "aOz" = ( -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/hangar/cargo) "aOA" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "gamma" - }, +/turf/open/floor/corsat/gamma, /area/corsat/gamma/hangar/cargo) "aOB" = ( /obj/structure/bed/chair{ dir = 1 }, /obj/structure/machinery/light, -/turf/open/floor/corsat{ - icon_state = "red" - }, +/turf/open/floor/corsat/red, /area/corsat/sigma/south/security) "aOC" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, @@ -14529,9 +10717,7 @@ dir = 4 }, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/sigma/south/complex) "aOE" = ( /obj/structure/showcase, @@ -14546,71 +10732,44 @@ dir = 1; layer = 2.9 }, -/turf/open/floor/corsat{ - icon_state = "sigma" - }, +/turf/open/floor/corsat/sigma, /area/corsat/sigma/south) "aOF" = ( /obj/structure/surface/table/almayer, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/east, /area/corsat/sigma/south/complex) "aOG" = ( /obj/structure/surface/table/reinforced, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/corsat/red/northwest, /area/corsat/gamma/hangar/monorail/control) "aOH" = ( /obj/structure/prop/almayer/computers/sensor_computer3, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/south/complex) "aOI" = ( /obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/southwest, /area/corsat/sigma/south/complex) "aOJ" = ( -/turf/open/floor/corsat{ - icon_state = "sigma" - }, +/turf/open/floor/corsat/sigma, /area/corsat/sigma/hangar) "aOK" = ( /obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/corsat{ - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite, /area/corsat/sigma/south/complex) "aOL" = ( /obj/structure/reagent_dispensers/watertank, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/west, /area/corsat/sigma/south/complex) "aOM" = ( -/turf/open/floor/corsat{ - icon_state = "arrow_south" - }, +/turf/open/floor/corsat/arrow_south, /area/corsat/sigma/hangar) "aON" = ( -/turf/open/floor/corsat{ - icon_state = "sigma" - }, +/turf/open/floor/corsat/sigma, /area/corsat/sigma/hangar/id) "aOP" = ( /obj/structure/reagent_dispensers/water_cooler/stacks, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/west, /area/corsat/sigma/south/complex) "aOQ" = ( /obj/structure/pipes/standard/simple/visible{ @@ -14625,9 +10784,7 @@ dir = 1; icon_state = "platform_deco" }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/south/complex) "aOS" = ( /obj/structure/showcase{ @@ -14639,35 +10796,26 @@ dir = 4; icon_state = "platform_deco" }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/south/complex) "aOT" = ( /turf/closed/wall/biodome, /area/corsat/emergency_access) "aOU" = ( -/turf/open/floor/corsat{ - icon_state = "purplecorner" - }, +/turf/open/floor/corsat/purplecorner, /area/corsat/theta/biodome/complex) "aOW" = ( /obj/structure/bed/chair, /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/southeast, /area/corsat/sigma/south/complex) "aOX" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/gamma/hangar/office) "aOY" = ( /obj/structure/machinery/power/apc/hyper{ @@ -14675,24 +10823,17 @@ pixel_x = -24; start_charge = 0 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/west, /area/corsat/gamma/hangar/office) "aOZ" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/gamma/hangar/office) "aPa" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/hangar/arrivals) "aPb" = ( /obj/structure/computerframe, @@ -14708,36 +10849,25 @@ /obj/structure/machinery/constructable_frame{ icon_state = "box_1" }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/emergency_access) "aPd" = ( /obj/structure/machinery/power/apc/hyper{ dir = 1; pixel_y = 25 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/corsat/gamma/security/armory) "aPe" = ( -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/security/armory) "aPf" = ( /obj/effect/alien/weeds/node, -/turf/open/mars_cave{ - icon_state = "mars_cave_18" - }, +/turf/open/mars_cave/mars_cave_18, /area/corsat/sigma/biodome) "aPg" = ( /obj/structure/surface/table/almayer, -/turf/open/floor/corsat{ - icon_state = "red" - }, +/turf/open/floor/corsat/red, /area/corsat/gamma/security) "aPh" = ( /obj/structure/machinery/power/apc/hyper{ @@ -14745,33 +10875,23 @@ pixel_x = -24; start_charge = 0 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/gamma/hangar/security) "aPj" = ( /obj/item/paper, /obj/item/tool/pen, /obj/structure/surface/table/woodentable/fancy, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/corsat/gamma/residential/lounge) "aPk" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/hangar/security) "aPl" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/corsat/sigma/biodome) "aPm" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony{ @@ -14779,93 +10899,67 @@ name = "Maintainance"; req_one_access = null }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/engineering/atmos) "aPn" = ( /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/security) "aPo" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/hangar/security) "aPp" = ( /obj/effect/landmark/item_pool_spawner/corsat_bio_lock/master, /obj/structure/surface/table/woodentable/fancy, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/corsat/gamma/residential/lounge) "aPq" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/corsat/sigma/biodome) "aPr" = ( -/turf/open/floor/corsat{ - icon_state = "whitetancorner" - }, +/turf/open/floor/corsat/whitetancorner, /area/corsat/gamma/residential/researcher) "aPs" = ( /obj/structure/bed/chair/office/light{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/sigma/airlock/south) "aPt" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony{ name = "Maintainence"; req_one_access = null }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/hallwaysouth) "aPu" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/hangar/checkpoint) "aPv" = ( /obj/structure/flora/pottedplant, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/northwest, /area/corsat/sigma/airlock/south) "aPw" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/hangar/checkpoint) "aPx" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/hangar/checkpoint) "aPy" = ( /obj/structure/window/framed/corsat, @@ -14883,54 +10977,38 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/gamma/hangar/checkpoint) "aPA" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/hangar/checkpoint) "aPB" = ( /obj/structure/bed/chair/comfy{ dir = 1 }, -/turf/open/shuttle{ - icon_state = "floor7" - }, +/turf/open/shuttle/black, /area/corsat/gamma/hangar/monorail/railcart) "aPC" = ( /obj/effect/landmark/yautja_teleport, /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/hallwaysouth) "aPD" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/foyer) "aPE" = ( -/turf/open/floor/corsat{ - icon_state = "arrow_south" - }, +/turf/open/floor/corsat/arrow_south, /area/corsat/gamma/hangar) "aPF" = ( /obj/structure/surface/table/woodentable, /obj/effect/landmark/crap_item, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "darkgreen" - }, +/turf/open/floor/corsat/darkgreen/north, /area/corsat/gamma/foyer) "aPG" = ( /obj/structure/flora/bush/ausbushes/var3/sunnybush, @@ -14941,9 +11019,7 @@ /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "Arrivals" }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/hangar/checkpoint) "aPJ" = ( /obj/structure/flora/jungle/alienplant1, @@ -14955,10 +11031,7 @@ /obj/structure/machinery/computer/cameras{ network = list("sigma") }, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/corsat/red/northeast, /area/corsat/gamma/hangar/monorail/control) "aPL" = ( /obj/structure/shuttle/diagonal{ @@ -14974,9 +11047,7 @@ req_access_txt = "101" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/hangar/checkpoint) "aPN" = ( /obj/effect/landmark/yautja_teleport, @@ -14995,21 +11066,14 @@ /obj/structure/machinery/door/airlock/dropship_hatch/monorail{ dir = 1 }, -/turf/open/shuttle{ - icon_state = "floor7" - }, +/turf/open/shuttle/black, /area/corsat/gamma/hangar/monorail/railcart) "aPR" = ( /obj/structure/flora/pottedplant, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/southwest, /area/corsat/sigma/airlock/south) "aPS" = ( -/turf/open/floor/corsat{ - icon_state = "arrow_east" - }, +/turf/open/floor/corsat/arrow_east, /area/corsat/gamma/engineering/core) "aPT" = ( /obj/structure/window/framed/corsat, @@ -15030,65 +11094,47 @@ id = "ThetaIDEC"; name = "Security Shutters" }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/theta/airlock/east/id) "aPV" = ( /obj/structure/surface/table/woodentable, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "darkgreen" - }, +/turf/open/floor/corsat/darkgreen/north, /area/corsat/gamma/foyer) "aPW" = ( /obj/structure/window/framed/corsat, /turf/open/floor/plating, /area/corsat/gamma/engineering/lobby) "aPX" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellow" - }, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/structure/surface/rack, +/turf/open/floor/corsat/yellow/north, /area/corsat/gamma/engineering/core) "aPY" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/engineering) "aPZ" = ( -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/engineering) "aQa" = ( /obj/structure/bed/chair/comfy/black, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/gamma/hangar/cargo) "aQb" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/secure_data{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/omega/checkpoint) "aQc" = ( -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/omega/checkpoint) "aQd" = ( /obj/structure/closet/jcloset, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/east, /area/corsat/gamma/residential/maint) "aQe" = ( /turf/closed/shuttle/ert{ @@ -15112,10 +11158,7 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/corsat/red/northeast, /area/corsat/omega/hangar/office) "aQi" = ( /obj/structure/window/framed/corsat/hull/security, @@ -15139,18 +11182,13 @@ pixel_y = 5; use_power = 0 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/west, /area/corsat/theta/airlock/control) "aQm" = ( /turf/closed/wall/r_wall/biodome, /area/corsat/omega/hangar/office) "aQn" = ( -/turf/open/shuttle/dropship{ - icon_state = "rasputin4" - }, +/turf/open/shuttle/dropship/light_grey_bottom_left, /area/prison/hangar_storage/research/shuttle) "aQo" = ( /obj/structure/window/framed/corsat/security, @@ -15160,106 +11198,71 @@ /obj/structure/surface/table/almayer, /obj/item/trash/raisins, /obj/effect/spawner/random/tool, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/engineering) "aQq" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/west, /area/corsat/gamma/engineering/core) "aQr" = ( -/turf/open/floor/corsat{ - icon_state = "omega" - }, +/turf/open/floor/corsat/omega, /area/corsat/omega/hangar) "aQs" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/omega/hangar) "aQt" = ( -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/omega/hangar) "aQu" = ( -/turf/open/floor/corsat{ - icon_state = "arrow_west" - }, +/turf/open/floor/corsat/arrow_west, /area/corsat/omega/hangar) "aQv" = ( /obj/structure/surface/table/woodentable, /obj/item/ashtray/glass, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/corsat/gamma/rnr/arcade) "aQw" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/east, /area/corsat/gamma/engineering/core) "aQx" = ( /obj/effect/alien/weeds/node, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/corsat/sigma/biodome) "aQy" = ( /obj/structure/tunnel{ id = "hole4" }, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/corsat/sigma/biodome) "aQz" = ( /turf/closed/wall/r_wall/biodome/biodome_unmeltable, /area/corsat/emergency_access) "aQA" = ( -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/hangar/office) "aQB" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/hangar/office) "aQC" = ( /turf/closed/wall/r_wall/biodome, /area/corsat/emergency_access) "aQD" = ( -/turf/open/floor/corsat{ - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner, /area/corsat/omega/hangar/security) "aQE" = ( -/turf/open/floor/corsat{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/corsat/red/northeast, /area/corsat/omega/hangar/office) "aQF" = ( /obj/structure/closet/emcloset, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/omega/checkpoint) "aQG" = ( /obj/structure/bookcase/manuals/research_and_development, @@ -15270,15 +11273,11 @@ /area/corsat/gamma/residential/researcher) "aQH" = ( /obj/effect/decal/cleanable/cobweb, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/emergency_access) "aQI" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/emergency_access) "aQJ" = ( /obj/effect/decal/cleanable/dirt, @@ -15287,9 +11286,7 @@ "aQK" = ( /obj/item/tool/wet_sign, /obj/structure/machinery/light, -/turf/open/floor/corsat{ - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow, /area/corsat/gamma/residential/maint) "aQL" = ( /obj/structure/machinery/light{ @@ -15298,19 +11295,13 @@ /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/gamma/security/cells) "aQM" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "darkgreen" - }, +/turf/open/floor/corsat/darkgreen/west, /area/corsat/gamma/rnr) "aQN" = ( /obj/structure/closet/crate, @@ -15320,10 +11311,7 @@ /obj/item/stack/sheet/glass{ amount = 30 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/west, /area/corsat/gamma/residential/maint) "aQO" = ( /turf/open/floor/corsat, @@ -15332,45 +11320,30 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "darkgreen" - }, +/turf/open/floor/corsat/darkgreen/east, /area/corsat/gamma/rnr) "aQQ" = ( -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/emergency_access) "aQR" = ( -/turf/open/floor/corsat{ - icon_state = "cargo" - }, +/turf/open/floor/corsat/cargo, /area/corsat/gamma/freezer) "aQS" = ( /obj/structure/bed/chair/comfy/black, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner/north, /area/corsat/gamma/engineering) "aQT" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/east, /area/corsat/gamma/engineering) "aQU" = ( /obj/effect/decal/cleanable/cobweb{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/emergency_access) "aQV" = ( /obj/structure/computerframe, @@ -15385,9 +11358,7 @@ /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan, /area/corsat/gamma/residential/researcher) "aQY" = ( /obj/structure/sink{ @@ -15395,25 +11366,17 @@ pixel_y = -10 }, /obj/structure/machinery/light, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "whitebluefull" - }, +/turf/open/floor/corsat/whitebluefull/southwest, /area/corsat/gamma/residential/lavatory) "aQZ" = ( /obj/item/paper_bin, /obj/structure/surface/table/woodentable/fancy, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 8; - icon_state = "carpet7-3" - }, +/turf/open/floor/carpet7_3/west, /area/corsat/gamma/residential/lounge) "aRa" = ( /obj/structure/closet/firecloset, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/omega/checkpoint) "aRb" = ( /obj/structure/computerframe, @@ -15427,42 +11390,29 @@ dir = 8 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/emergency_access) "aRd" = ( /obj/structure/machinery/light, -/turf/open/floor/corsat{ - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow, /area/corsat/gamma/engineering) "aRe" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/corsat/gamma/rnr/library) "aRf" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22" }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/corsat/gamma/rnr/library) "aRg" = ( /obj/item/tool/pen, /obj/structure/surface/table/woodentable/fancy, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 8; - icon_state = "carpet15-15" - }, +/turf/open/floor/carpet15_15/west, /area/corsat/gamma/residential/lounge) "aRh" = ( /obj/item/reagent_container/food/snacks/grown/tomato, @@ -15476,27 +11426,19 @@ /obj/item/reagent_container/food/snacks/grown/tomato, /obj/item/reagent_container/food/snacks/grown/tomato, /obj/structure/closet/crate/freezer, -/turf/open/floor/corsat{ - icon_state = "cargo" - }, +/turf/open/floor/corsat/cargo, /area/corsat/gamma/freezer) "aRj" = ( /obj/item/paper, /obj/structure/surface/table/woodentable/fancy, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 8; - icon_state = "carpet15-15" - }, +/turf/open/floor/carpet15_15/west, /area/corsat/gamma/residential/lounge) "aRk" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner/west, /area/corsat/gamma/engineering) "aRl" = ( /obj/structure/surface/table/woodentable, @@ -15512,9 +11454,7 @@ /obj/structure/surface/table/almayer, /obj/item/folder/yellow, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/engineering) "aRn" = ( /obj/structure/window/framed/corsat, @@ -15529,9 +11469,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/biodome/complex) "aRp" = ( /turf/open/floor/plating, @@ -15540,24 +11478,16 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/north, /area/corsat/gamma/biodome/virology) "aRr" = ( /obj/structure/machinery/vending/coffee, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/hangar/arrivals) "aRs" = ( /obj/structure/surface/table/woodentable/fancy, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 8; - icon_state = "carpet15-15" - }, +/turf/open/floor/carpet15_15/west, /area/corsat/gamma/residential/lounge) "aRt" = ( /obj/structure/sign/safety/airlock, @@ -15567,9 +11497,7 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/hangar/arrivals) "aRv" = ( /obj/structure/window/framed/corsat, @@ -15579,113 +11507,76 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/corsat/gamma/rnr/library) "aRx" = ( /obj/structure/machinery/light{ dir = 1 }, /obj/structure/flora/pottedplant, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/north, /area/corsat/sigma/hangar) "aRy" = ( /obj/structure/machinery/light{ dir = 1 }, /obj/structure/pipes/vents/pump, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/biodome/virology) "aRz" = ( /obj/structure/bed/chair/wood/normal, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/corsat/gamma/rnr/library) "aRA" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/north, /area/corsat/gamma/canteen) "aRB" = ( /obj/structure/machinery/light, -/turf/open/floor/corsat{ - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite, /area/corsat/gamma/biodome/virology) "aRD" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "darkgreen" - }, +/turf/open/floor/corsat/darkgreen/north, /area/corsat/gamma/hallwaysouth) "aRE" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/north, /area/corsat/gamma/hallwaysouth) "aRF" = ( /obj/item/paper, /obj/item/tool/pen, /obj/structure/surface/table/woodentable/fancy, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 8; - icon_state = "carpet11-12" - }, +/turf/open/floor/carpet11_12/west, /area/corsat/gamma/residential/lounge) "aRG" = ( /obj/item/tool/pen, /obj/structure/surface/table/woodentable/fancy, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/corsat/gamma/residential/lounge) "aRH" = ( /obj/structure/machinery/disposal, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/north, /area/corsat/gamma/hangar/office) "aRJ" = ( /obj/structure/machinery/camera/autoname{ dir = 8; network = list("sigma") }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/east, /area/corsat/sigma/hangar) "aRK" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/east, /area/corsat/gamma/biodome/virology) "aRM" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony{ @@ -15693,34 +11584,23 @@ name = "Maintainance"; req_one_access = null }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/freezer) "aRN" = ( /obj/structure/bed/chair/comfy, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "darkgreen" - }, +/turf/open/floor/corsat/darkgreen/north, /area/corsat/gamma/hangar/monorail) "aRO" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "purplewhitecorner" - }, +/turf/open/floor/corsat/purplewhitecorner/west, /area/corsat/gamma/biodome/virology) "aRP" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite/north, /area/corsat/gamma/medbay/morgue) "aRQ" = ( /obj/structure/machinery/light, @@ -15728,84 +11608,60 @@ dir = 1 }, /obj/structure/surface/table/woodentable/fancy, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/corsat/gamma/residential/lounge) "aRS" = ( /obj/structure/machinery/computer/emails{ dir = 1 }, /obj/structure/surface/table/woodentable/fancy, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/corsat/gamma/residential/lounge) "aRT" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_10" }, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite/southeast, /area/corsat/gamma/medbay) "aRU" = ( /obj/structure/machinery/light{ dir = 8 }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/hangar) "aRV" = ( /obj/structure/machinery/light{ dir = 4 }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/hangar) "aRW" = ( /obj/structure/machinery/shower{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/biodome/virology) "aRX" = ( /obj/structure/machinery/conveyor, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/east, /area/corsat/gamma/cargo/disposal) "aRY" = ( /obj/structure/surface/table/woodentable, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/residential) "aRZ" = ( /obj/structure/machinery/light, -/turf/open/floor/corsat{ - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite, /area/corsat/gamma/medbay) "aSa" = ( /obj/structure/lattice, /turf/open/space, /area/space) "aSb" = ( -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/hallwaysouth) "aSc" = ( /obj/structure/machinery/light{ @@ -15813,49 +11669,34 @@ }, /obj/structure/surface/table/woodentable, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/residential) "aSd" = ( /obj/structure/surface/table/woodentable, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "darkgreen" - }, +/turf/open/floor/corsat/darkgreen/west, /area/corsat/gamma/rnr) "aSe" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite/west, /area/corsat/gamma/medbay) "aSf" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite/north, /area/corsat/gamma/medbay) "aSg" = ( /obj/structure/surface/table/woodentable, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/rnr) "aSh" = ( /obj/structure/machinery/light, /obj/structure/closet/firecloset, -/turf/open/floor/corsat{ - icon_state = "red" - }, +/turf/open/floor/corsat/red, /area/corsat/sigma/hangar) "aSi" = ( /obj/structure/surface/table/almayer, @@ -15863,37 +11704,25 @@ /obj/item/bodybag, /obj/item/bodybag, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite/northwest, /area/corsat/gamma/medbay) "aSj" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/west, /area/corsat/gamma/biodome/complex) "aSk" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/east, /area/corsat/gamma/biodome/complex) "aSl" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_10" }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "greenwhitecorner" - }, +/turf/open/floor/corsat/greenwhitecorner/west, /area/corsat/gamma/medbay) "aSm" = ( /obj/structure/window/framed/almayer/white, @@ -15907,10 +11736,7 @@ /obj/structure/flora/pottedplant{ icon_state = "pottedplant_10" }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite/west, /area/corsat/gamma/medbay) "aSp" = ( /obj/structure/window/framed/almayer/white, @@ -15927,25 +11753,16 @@ /obj/structure/closet/secure_closet/medical2{ req_access_txt = "100" }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite/north, /area/corsat/gamma/medbay) "aSs" = ( -/turf/open/floor/corsat{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/corsat/red/northeast, /area/corsat/sigma/hangar/checkpoint) "aSt" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/corsat/gamma/airlock/control) "aSu" = ( /obj/structure/machinery/light{ @@ -15953,26 +11770,18 @@ }, /obj/structure/surface/table/woodentable, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/rnr) "aSv" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/north, /area/corsat/sigma/airlock/control) "aSw" = ( /obj/structure/surface/table/almayer, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "whitebluefull" - }, +/turf/open/floor/corsat/whitebluefull/southwest, /area/corsat/gamma/residential/showers) "aSx" = ( /obj/structure/surface/table/reinforced, @@ -15987,60 +11796,43 @@ id = "SigmaHangarC"; name = "Security Shutters" }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/hangar/checkpoint) "aSy" = ( /obj/structure/machinery/light{ dir = 1 }, /obj/structure/filingcabinet/filingcabinet, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/north, /area/corsat/gamma/biodome/complex) "aSz" = ( /obj/effect/landmark/crap_item, /obj/structure/surface/table/woodentable, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/hangar/monorail) "aSA" = ( /obj/structure/machinery/light, /obj/structure/surface/rack, /obj/item/device/lightreplacer, /obj/item/storage/box/lights, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/biodome/complex) "aSB" = ( /obj/structure/surface/table/woodentable, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/hangar/monorail) "aSC" = ( /obj/structure/machinery/light{ dir = 8 }, /obj/structure/flora/pottedplant, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/west, /area/corsat/gamma/biodome/complex) "aSD" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "purple" - }, +/turf/open/floor/corsat/purple/west, /area/corsat/gamma/biodome/complex) "aSE" = ( /obj/structure/machinery/light{ @@ -16049,50 +11841,36 @@ /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purple" - }, +/turf/open/floor/corsat/purple/east, /area/corsat/gamma/biodome/complex) "aSF" = ( /obj/structure/machinery/light{ dir = 1 }, /obj/structure/surface/table/woodentable, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/hallwaysouth) "aSG" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/airlock/control) "aSH" = ( /obj/effect/landmark/crap_item, /obj/structure/surface/table/woodentable, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/hallwaysouth) "aSJ" = ( /obj/structure/machinery/light, -/turf/open/floor/corsat{ - icon_state = "red" - }, +/turf/open/floor/corsat/red, /area/corsat/sigma/hangar/security) "aSL" = ( /obj/structure/machinery/light{ dir = 8 }, /obj/structure/surface/rack, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/northwest, /area/corsat/gamma/biodome/complex) "aSM" = ( /obj/structure/machinery/door/airlock/almayer/marine/requisitions/colony{ @@ -16102,65 +11880,47 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/cargo/lobby) "aSN" = ( /obj/structure/machinery/light, -/turf/open/floor/corsat{ - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite, /area/corsat/gamma/biodome/complex) "aSO" = ( /obj/structure/machinery/light, -/turf/open/floor/corsat{ - icon_state = "purple" - }, +/turf/open/floor/corsat/purple, /area/corsat/gamma/biodome/complex) "aSP" = ( /obj/structure/bed/sofa/vert/grey/top, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/sigma/hangar/arrivals) "aSQ" = ( /obj/structure/machinery/light, /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/hangar) "aSR" = ( /obj/item/trash/chips, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/sigma/hangar/arrivals) "aSS" = ( /obj/structure/surface/table/almayer, /obj/effect/spawner/random/technology_scanner, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/engineering) "aST" = ( /obj/item/trash/candy, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/sigma/hangar/arrivals) "aSU" = ( /obj/structure/machinery/light{ dir = 1 }, /obj/structure/pipes/vents/pump, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/airlock/control) "aSV" = ( /obj/structure/pipes/vents/pump/siphon/on{ @@ -16178,93 +11938,65 @@ /area/corsat/inaccessible) "aSX" = ( /obj/structure/pipes/standard/manifold/fourway/hidden/green, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/theta/biodome/hydrowest) "aSY" = ( /obj/structure/machinery/light{ dir = 8 }, /obj/structure/closet/wardrobe/toxins_white, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/west, /area/corsat/gamma/biodome/toxins) "aSZ" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/gamma/biodome/toxins) "aTa" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/north, /area/corsat/gamma/airlock/control) "aTb" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "bluecorner" - }, +/turf/open/floor/corsat/bluecorner/east, /area/corsat/gamma/airlock/control) "aTc" = ( /obj/structure/barricade/handrail{ layer = 3 }, /obj/structure/surface/table/woodentable, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/hallwaysouth) "aTd" = ( /obj/structure/surface/table/woodentable, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/hallwaysouth) "aTe" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/west, /area/corsat/sigma/airlock/control) "aTf" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/north, /area/corsat/sigma/airlock/control) "aTg" = ( /obj/effect/landmark/crap_item, /obj/structure/surface/table/woodentable, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/hallwaysouth) "aTi" = ( -/turf/open/floor/corsat{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/corsat/red/northeast, /area/corsat/sigma/hangar/security) "aTj" = ( /obj/structure/surface/table/woodentable, @@ -16273,87 +12005,60 @@ /area/corsat/gamma/rnr/bar) "aTk" = ( /obj/item/trash/burger, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/sigma/hangar/arrivals) "aTl" = ( /obj/structure/machinery/light{ dir = 4 }, /obj/structure/filingcabinet/filingcabinet, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/corsat/gamma/biodome/complex) "aTm" = ( /obj/structure/machinery/light{ dir = 1 }, /obj/effect/landmark/yautja_teleport, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/biodome/toxins) "aTn" = ( /obj/structure/machinery/light, /obj/structure/surface/rack, /obj/item/reagent_container/glass/bottle/capsaicin, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/southeast, /area/corsat/gamma/biodome/toxins) "aTo" = ( /obj/structure/machinery/light, -/turf/open/floor/corsat{ - icon_state = "blue" - }, +/turf/open/floor/corsat/blue, /area/corsat/gamma/airlock/control) "aTp" = ( /obj/structure/machinery/light, -/turf/open/floor/corsat{ - icon_state = "brown" - }, +/turf/open/floor/corsat/brown, /area/corsat/gamma/hallwaysouth) "aTq" = ( /obj/structure/machinery/light, -/turf/open/floor/corsat{ - icon_state = "blue" - }, +/turf/open/floor/corsat/blue, /area/corsat/sigma/airlock/control) "aTr" = ( /obj/structure/bed/chair/comfy/black{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/sigma/hangar/id) "aTs" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/sigma/hangar/id) "aTt" = ( /obj/item/trash/buritto, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/sigma/hangar/arrivals) "aTu" = ( /obj/item/device/camera, /obj/structure/surface/table/woodentable/fancy, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/corsat/gamma/biodome/complex) "aTv" = ( /obj/structure/pipes/vents/pump/siphon/on{ @@ -16365,84 +12070,58 @@ "aTw" = ( /obj/item/storage/fancy/cigar, /obj/structure/surface/table/woodentable/fancy, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/corsat/gamma/biodome/complex) "aTx" = ( /obj/structure/machinery/light, /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/airlock/control) "aTy" = ( /obj/structure/closet/firecloset, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/hangar/monorail) "aTz" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/sigma/north) "aTA" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/west, /area/corsat/gamma/biodome/toxins) "aTB" = ( /obj/structure/machinery/light{ dir = 4 }, /obj/structure/surface/rack, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/east, /area/corsat/gamma/biodome/toxins) "aTC" = ( /obj/item/device/flashlight/lamp/green, /obj/structure/surface/table/woodentable/fancy, -/turf/open/floor{ - dir = 8; - icon_state = "carpet7-3" - }, +/turf/open/floor/carpet7_3/west, /area/corsat/gamma/biodome/complex) "aTD" = ( /obj/structure/machinery/light, -/turf/open/floor/corsat{ - icon_state = "red" - }, +/turf/open/floor/corsat/red, /area/corsat/sigma/airlock/control) "aTE" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "bluecorner" - }, +/turf/open/floor/corsat/bluecorner/north, /area/corsat/sigma/north) "aTF" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/north, /area/corsat/sigma/north) "aTG" = ( /obj/structure/machinery/light{ @@ -16460,17 +12139,11 @@ /obj/item/phone, /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/surface/table/woodentable/fancy, -/turf/open/floor{ - dir = 8; - icon_state = "carpet15-15" - }, +/turf/open/floor/carpet15_15/west, /area/corsat/gamma/biodome/complex) "aTK" = ( /obj/structure/surface/table/woodentable/fancy, -/turf/open/floor{ - dir = 8; - icon_state = "carpet15-15" - }, +/turf/open/floor/carpet15_15/west, /area/corsat/gamma/biodome/complex) "aTL" = ( /obj/structure/sign/safety/airlock, @@ -16479,19 +12152,13 @@ "aTM" = ( /obj/structure/machinery/faxmachine, /obj/structure/surface/table/woodentable/fancy, -/turf/open/floor{ - dir = 8; - icon_state = "carpet11-12" - }, +/turf/open/floor/carpet11_12/west, /area/corsat/gamma/biodome/complex) "aTN" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/east, /area/corsat/sigma/north) "aTO" = ( /obj/structure/machinery/light{ @@ -16501,15 +12168,10 @@ dir = 4 }, /obj/structure/surface/table/woodentable/fancy, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/corsat/gamma/biodome/complex) "aTP" = ( -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/corsat/omega/biodome) "aTQ" = ( /obj/structure/machinery/light{ @@ -16519,10 +12181,7 @@ req_access_txt = "100"; req_one_access = null }, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/northwest, /area/corsat/gamma/biodome/toxins) "aTR" = ( /obj/structure/machinery/light{ @@ -16531,29 +12190,20 @@ /obj/structure/surface/rack, /obj/item/reagent_container/ld50_syringe/choral, /obj/item/reagent_container/ld50_syringe, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/northeast, /area/corsat/gamma/biodome/toxins) "aTS" = ( /obj/structure/machinery/light{ dir = 8 }, /obj/structure/machinery/space_heater, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/west, /area/corsat/gamma/biodome/toxins) "aTT" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/west, /area/corsat/gamma/administration) "aTU" = ( /obj/structure/machinery/door_control{ @@ -16575,30 +12225,21 @@ use_power = 0 }, /obj/structure/surface/table/woodentable/fancy, -/turf/open/floor{ - dir = 8; - icon_state = "carpet9-4" - }, +/turf/open/floor/carpet9_4/west, /area/corsat/gamma/biodome/complex) "aTV" = ( /obj/structure/machinery/computer/skills{ dir = 4 }, /obj/structure/surface/table/woodentable/fancy, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/corsat/gamma/biodome/complex) "aTW" = ( /obj/structure/machinery/washing_machine, /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "whitebluefull" - }, +/turf/open/floor/corsat/whitebluefull/southwest, /area/corsat/sigma/laundry) "aTX" = ( /obj/item/storage/box/monkeycubes, @@ -16606,10 +12247,7 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/east, /area/corsat/omega/containment) "aTY" = ( /obj/structure/machinery/light{ @@ -16618,63 +12256,43 @@ /obj/structure/flora/pottedplant{ icon_state = "pottedplant_10" }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/west, /area/corsat/gamma/canteen) "aTZ" = ( /obj/structure/lamarr, /obj/structure/surface/table/woodentable/fancy, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/corsat/gamma/biodome/complex) "aUa" = ( /obj/item/tool/stamp/rd, /obj/structure/surface/table/woodentable/fancy, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/corsat/gamma/biodome/complex) "aUb" = ( /obj/structure/largecrate/supply/floodlights, -/turf/open/floor/corsat{ - icon_state = "cargo" - }, +/turf/open/floor/corsat/cargo, /area/corsat/gamma/cargo) "aUc" = ( /obj/item/paper_bin, /obj/item/tool/pen, /obj/structure/surface/table/woodentable/fancy, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/corsat/gamma/biodome/complex) "aUd" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "sigma" - }, +/turf/open/floor/corsat/sigma, /area/corsat/sigma/north) "aUe" = ( /obj/structure/machinery/light, /obj/structure/closet/emcloset, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/hangar) "aUf" = ( /obj/structure/machinery/light, /obj/structure/flora/pottedplant, -/turf/open/floor/corsat{ - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite, /area/corsat/gamma/biodome/toxins) "aUg" = ( /obj/structure/machinery/light, @@ -16683,35 +12301,25 @@ dir = 1; network = list("gamma") }, -/turf/open/floor/corsat{ - icon_state = "red" - }, +/turf/open/floor/corsat/red, /area/corsat/gamma/security) "aUh" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/cargo) "aUi" = ( /obj/structure/machinery/light, -/turf/open/floor/corsat{ - icon_state = "darkgreencorner" - }, +/turf/open/floor/corsat/darkgreencorner, /area/corsat/sigma/north) "aUj" = ( /obj/structure/machinery/light, -/turf/open/floor/corsat{ - icon_state = "brown" - }, +/turf/open/floor/corsat/brown, /area/corsat/sigma/cargo) "aUk" = ( /obj/structure/machinery/light, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/biodome/toxins) "aUl" = ( /obj/structure/surface/table/almayer, @@ -16720,16 +12328,12 @@ health = 250 }, /obj/item/ashtray/bronze, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/gamma/hangar/flightcontrol) "aUm" = ( /obj/structure/surface/table/almayer, /obj/item/storage/donut_box, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/gamma/hangar/flightcontrol) "aUn" = ( /obj/structure/sign/safety/airlock, @@ -16744,19 +12348,13 @@ "aUp" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/computer/secure_data, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/corsat/red/northwest, /area/corsat/gamma/hangar/cargo) "aUq" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/west, /area/corsat/sigma/cargo) "aUr" = ( /obj/item/storage/fancy/cigar, @@ -16777,28 +12375,19 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner/east, /area/corsat/gamma/foyer) "aUw" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "green" - }, +/turf/open/floor/corsat/green/west, /area/corsat/gamma/hallwaysouth) "aUx" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "whitebluefull" - }, +/turf/open/floor/corsat/whitebluefull/southwest, /area/corsat/sigma/lavatory) "aUy" = ( /obj/item/disk/botany, @@ -16809,25 +12398,17 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/east, /area/corsat/sigma/cargo) "aUA" = ( /obj/structure/closet/emcloset, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/hangar) "aUB" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "white" - }, +/turf/open/floor/corsat/white/north, /area/corsat/sigma/dorms) "aUC" = ( /obj/item/toy/prize/ripley{ @@ -16880,10 +12461,7 @@ dir = 8 }, /obj/structure/surface/table/woodentable/fancy, -/turf/open/floor{ - dir = 8; - icon_state = "carpet10-8" - }, +/turf/open/floor/carpet10_8/west, /area/corsat/gamma/administration) "aUL" = ( /obj/structure/surface/table/woodentable, @@ -16898,10 +12476,7 @@ /obj/item/tank/air, /obj/item/tank/air, /obj/item/clothing/mask/breath, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/west, /area/corsat/gamma/engineering/atmos) "aUN" = ( /obj/structure/pipes/vents/pump/siphon/on{ @@ -16914,26 +12489,17 @@ /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/northwest, /area/corsat/sigma/dorms) "aUP" = ( /obj/structure/surface/table, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/sigma/dorms) "aUQ" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/sigma/dorms) "aUR" = ( /obj/effect/decal/cleanable/cobweb{ @@ -16949,26 +12515,18 @@ /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/theta/airlock/control) "aUT" = ( /obj/structure/surface/rack, /obj/item/tank/oxygen, /obj/item/tank/oxygen, /obj/item/clothing/mask/breath, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/west, /area/corsat/gamma/engineering/atmos) "aUU" = ( /obj/structure/surface/table/woodentable/fancy, -/turf/open/floor{ - dir = 8; - icon_state = "carpet6-2" - }, +/turf/open/floor/carpet6_2/west, /area/corsat/gamma/administration) "aUV" = ( /obj/structure/machinery/light{ @@ -16977,19 +12535,13 @@ /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/east, /area/corsat/sigma/dorms) "aUW" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/north, /area/corsat/sigma/checkpoint) "aUX" = ( /obj/structure/machinery/light{ @@ -16998,51 +12550,36 @@ /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/sigma/dorms) "aUY" = ( /obj/structure/machinery/light, /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan, /area/corsat/sigma/dorms) "aUZ" = ( /obj/structure/machinery/computer/emails{ dir = 4 }, /obj/structure/surface/table/woodentable/fancy, -/turf/open/floor{ - dir = 8; - icon_state = "carpet6-2" - }, +/turf/open/floor/carpet6_2/west, /area/corsat/gamma/administration) "aVa" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/north, /area/corsat/omega/cargo) "aVb" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/omega/checkpoint) "aVc" = ( -/turf/open/floor/corsat{ - icon_state = "blue" - }, +/turf/open/floor/corsat/blue, /area/corsat/theta/airlock/control) "aVd" = ( /obj/structure/flora/pottedplant, @@ -17077,17 +12614,13 @@ /area/corsat/sigma/dorms) "aVh" = ( /obj/structure/machinery/light, -/turf/open/floor/corsat{ - icon_state = "white" - }, +/turf/open/floor/corsat/white, /area/corsat/sigma/dorms) "aVi" = ( /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/engineering) "aVj" = ( /obj/structure/surface/table/woodentable, @@ -17100,10 +12633,7 @@ "aVl" = ( /obj/item/folder/blue, /obj/structure/surface/table/woodentable/fancy, -/turf/open/floor{ - dir = 8; - icon_state = "carpet7-3" - }, +/turf/open/floor/carpet7_3/west, /area/corsat/gamma/administration) "aVm" = ( /obj/item/paper, @@ -17111,18 +12641,12 @@ /obj/item/tool/stamp/rd, /obj/structure/pipes/vents/pump, /obj/structure/surface/table/woodentable/fancy, -/turf/open/floor{ - dir = 8; - icon_state = "carpet15-15" - }, +/turf/open/floor/carpet15_15/west, /area/corsat/gamma/administration) "aVn" = ( /obj/structure/surface/table/woodentable/fancy, /obj/item/tool/stamp/rd, -/turf/open/floor{ - dir = 8; - icon_state = "carpet15-15" - }, +/turf/open/floor/carpet15_15/west, /area/corsat/omega/offices) "aVo" = ( /obj/structure/shuttle/diagonal{ @@ -17136,68 +12660,45 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/north, /area/corsat/theta/airlock/control) "aVq" = ( /obj/structure/closet/secure_closet/CMO, /obj/effect/landmark/item_pool_spawner/corsat_bio_lock, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite/northeast, /area/corsat/gamma/medbay) "aVr" = ( /obj/structure/surface/table/woodentable/fancy, -/turf/open/floor{ - dir = 8; - icon_state = "carpet15-15" - }, +/turf/open/floor/carpet15_15/west, /area/corsat/gamma/administration) "aVs" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/east, /area/corsat/omega/cargo) "aVt" = ( /obj/item/device/flashlight/lamp, /obj/structure/surface/table/woodentable/fancy, -/turf/open/floor{ - dir = 8; - icon_state = "carpet11-12" - }, +/turf/open/floor/carpet11_12/west, /area/corsat/gamma/administration) "aVu" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner, /area/corsat/omega/hallways) "aVv" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/west, /area/corsat/omega/checkpoint) "aVw" = ( /obj/item/folder/black, /obj/item/tool/stamp/rd, /obj/structure/surface/table/woodentable/fancy, -/turf/open/floor{ - dir = 8; - icon_state = "carpet7-3" - }, +/turf/open/floor/carpet7_3/west, /area/corsat/gamma/administration) "aVx" = ( /obj/structure/machinery/light{ @@ -17206,19 +12707,14 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/airlock/south/id) "aVy" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, /obj/structure/surface/table/woodentable/fancy, -/turf/open/floor{ - dir = 8; - icon_state = "carpet15-15" - }, +/turf/open/floor/carpet15_15/west, /area/corsat/gamma/administration) "aVz" = ( /obj/item/device/flashlight/lamp, @@ -17226,10 +12722,7 @@ dir = 10 }, /obj/structure/surface/table/woodentable/fancy, -/turf/open/floor{ - dir = 8; - icon_state = "carpet11-12" - }, +/turf/open/floor/carpet11_12/west, /area/corsat/gamma/administration) "aVA" = ( /obj/item/folder/white, @@ -17238,10 +12731,7 @@ dir = 6 }, /obj/structure/surface/table/woodentable/fancy, -/turf/open/floor{ - dir = 8; - icon_state = "carpet7-3" - }, +/turf/open/floor/carpet7_3/west, /area/corsat/gamma/administration) "aVB" = ( /obj/structure/toilet{ @@ -17250,101 +12740,70 @@ /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "whitebluefull" - }, +/turf/open/floor/corsat/whitebluefull/southwest, /area/corsat/theta/biodome/complex) "aVC" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, /obj/structure/surface/table/woodentable/fancy, -/turf/open/floor{ - dir = 8; - icon_state = "carpet15-15" - }, +/turf/open/floor/carpet15_15/west, /area/corsat/gamma/administration) "aVD" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/south) "aVE" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/east, /area/corsat/sigma/southeast) "aVF" = ( /obj/structure/machinery/light, -/turf/open/floor/corsat{ - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey, /area/corsat/omega/offices) "aVG" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/corsat/gamma/airlock/north) "aVH" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/west, /area/corsat/theta/airlock/control) "aVI" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/east, /area/corsat/theta/airlock/control) "aVJ" = ( /obj/item/paper, /obj/item/tool/pen/red, /obj/item/tool/stamp/rd, /obj/structure/surface/table/woodentable/fancy, -/turf/open/floor{ - dir = 8; - icon_state = "carpet7-3" - }, +/turf/open/floor/carpet7_3/west, /area/corsat/gamma/administration) "aVK" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/east, /area/corsat/sigma/south) "aVL" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "cargo" - }, +/turf/open/floor/corsat/cargo, /area/corsat/omega/cargo) "aVM" = ( /obj/structure/surface/table/almayer, /obj/item/folder/black_random, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/gamma/hangar/flightcontrol) "aVO" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ @@ -17352,44 +12811,30 @@ name = "Security Armory"; req_access_txt = "101" }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/checkpoint) "aVP" = ( /obj/structure/noticeboard{ pixel_y = 32 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/north, /area/corsat/gamma/hangar/flightcontrol) "aVQ" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "bluegreycorner" - }, +/turf/open/floor/corsat/bluegreycorner/east, /area/corsat/sigma/southeast/dataoffice) "aVT" = ( /obj/item/folder/yellow, /obj/structure/surface/table/woodentable/fancy, -/turf/open/floor{ - dir = 8; - icon_state = "carpet15-15" - }, +/turf/open/floor/carpet15_15/west, /area/corsat/gamma/administration) "aVU" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/west, /area/corsat/omega/cargo) "aVV" = ( /obj/structure/machinery/door/poddoor/almayer/open{ @@ -17401,52 +12846,37 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/corsat/sigma/hangar/arrivals) "aVW" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/south) "aVX" = ( /obj/item/storage/fancy/cigarettes/lucky_strikes, /obj/structure/pipes/vents/pump, /obj/structure/surface/table/woodentable/fancy, -/turf/open/floor{ - dir = 8; - icon_state = "carpet15-15" - }, +/turf/open/floor/carpet15_15/west, /area/corsat/gamma/administration) "aVY" = ( /obj/structure/bed/chair/comfy{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/hangar/monorail) "aVZ" = ( /obj/structure/surface/table/reinforced, /obj/item/folder/black_random, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/gamma/airlock/south) "aWa" = ( /obj/structure/machinery/light{ dir = 8 }, /obj/structure/closet/secure_closet/security, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/gamma/security) "aWb" = ( /obj/structure/machinery/light{ @@ -17454,43 +12884,29 @@ }, /obj/structure/surface/rack, /obj/item/storage/firstaid/rad, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/north, /area/corsat/sigma/south/complex) "aWc" = ( /obj/structure/machinery/light, -/turf/open/floor/corsat{ - icon_state = "red" - }, +/turf/open/floor/corsat/red, /area/corsat/omega/security) "aWd" = ( -/turf/open/floor/corsat{ - icon_state = "arrow_north" - }, +/turf/open/floor/corsat/arrow_north, /area/corsat/sigma/cargo) "aWf" = ( /obj/structure/machinery/light{ dir = 4 }, /obj/structure/surface/table/woodentable, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/hallwaysouth) "aWh" = ( /obj/structure/largecrate/cow, -/turf/open/floor/corsat{ - icon_state = "cargo" - }, +/turf/open/floor/corsat/cargo, /area/corsat/gamma/freezer) "aWi" = ( /obj/structure/machinery/light, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/west, /area/corsat/omega/cargo) "aWj" = ( /obj/structure/surface/table/woodentable, @@ -17499,9 +12915,7 @@ layer = 2.8 }, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/north) "aWk" = ( /obj/structure/machinery/light{ @@ -17512,10 +12926,7 @@ }, /obj/item/clothing/head/beret/sec/warden, /obj/item/clothing/mask/fakemoustache, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/corsat/red/northwest, /area/corsat/omega/security) "aWl" = ( /obj/structure/surface/table/woodentable, @@ -17525,9 +12936,7 @@ layer = 2.8 }, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/north) "aWm" = ( /obj/item/paper_bin, @@ -17537,112 +12946,76 @@ /area/corsat/gamma/administration) "aWn" = ( /obj/structure/machinery/light, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "purplewhitecorner" - }, +/turf/open/floor/corsat/purplewhitecorner/west, /area/corsat/sigma/south/complex) "aWo" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/corsat/omega/airlocknorth/id) "aWp" = ( -/turf/open/floor/corsat{ - icon_state = "bluegreycorner" - }, +/turf/open/floor/corsat/bluegreycorner, /area/corsat/sigma/hangar/office) "aWq" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/west, /area/corsat/omega/hallways) "aWr" = ( /obj/structure/machinery/conveyor{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/cargo) "aWs" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "sigma" - }, +/turf/open/floor/corsat/sigma, /area/corsat/sigma/south) "aWt" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner/east, /area/corsat/sigma/southeast) "aWu" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/secure_data, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/gamma/hangar/cargo) "aWv" = ( /obj/structure/machinery/conveyor_switch, -/turf/open/floor/corsat{ - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner, /area/corsat/gamma/cargo/disposal) "aWw" = ( /obj/structure/machinery/light, -/turf/open/floor/corsat{ - icon_state = "blue" - }, +/turf/open/floor/corsat/blue, /area/corsat/sigma/southeast) "aWx" = ( /obj/structure/machinery/light, -/turf/open/floor/corsat{ - icon_state = "red" - }, +/turf/open/floor/corsat/red, /area/corsat/omega/hallways) "aWy" = ( /obj/structure/machinery/light, -/turf/open/floor/corsat{ - icon_state = "purple" - }, +/turf/open/floor/corsat/purple, /area/corsat/omega/hallways) "aWz" = ( /obj/structure/surface/table/reinforced, /obj/item/tool/lighter/random, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/gamma/airlock/south/id) "aWA" = ( /obj/structure/machinery/conveyor, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/cargo) "aWB" = ( /obj/structure/machinery/light, /obj/structure/surface/rack, /obj/item/storage/firstaid/rad, -/turf/open/floor/corsat{ - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite, /area/corsat/sigma/south/complex) "aWC" = ( /obj/structure/machinery/power/apc/hyper{ @@ -17650,9 +13023,7 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/almayer{ - icon_state = "tcomms" - }, +/turf/open/floor/almayer/tcomms, /area/corsat/sigma/southeast/telecomm) "aWD" = ( /obj/structure/machinery/light{ @@ -17660,43 +13031,29 @@ }, /obj/structure/surface/table/almayer, /obj/item/folder/black_random, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/north, /area/corsat/gamma/hangar/flightcontrol) "aWF" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/north, /area/corsat/sigma/southeast/datalab) "aWG" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "bluecorner" - }, +/turf/open/floor/corsat/bluecorner/east, /area/corsat/sigma/southeast/datalab) "aWH" = ( /obj/structure/machinery/light, -/turf/open/floor/corsat{ - icon_state = "purple" - }, +/turf/open/floor/corsat/purple, /area/corsat/sigma/south) "aWI" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/west, /area/corsat/sigma/southeast/datalab) "aWK" = ( /obj/structure/surface/table/woodentable/fancy, @@ -17705,59 +13062,40 @@ "aWM" = ( /obj/item/tool/stamp/hop, /obj/structure/surface/table/woodentable/fancy, -/turf/open/floor{ - dir = 8; - icon_state = "carpet15-15" - }, +/turf/open/floor/carpet15_15/west, /area/corsat/gamma/administration) "aWN" = ( /obj/item/ashtray/bronze, /obj/structure/surface/table/woodentable/fancy, -/turf/open/floor{ - dir = 8; - icon_state = "carpet15-15" - }, +/turf/open/floor/carpet15_15/west, /area/corsat/gamma/administration) "aWO" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/corsat/red/southeast, /area/corsat/sigma/south/security) "aWP" = ( /obj/structure/machinery/light, /obj/structure/surface/table/almayer, -/turf/open/floor/corsat{ - icon_state = "blue" - }, +/turf/open/floor/corsat/blue, /area/corsat/sigma/southeast/datalab) "aWQ" = ( /obj/structure/machinery/light{ dir = 4 }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/omega/airlocknorth/id) "aWR" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/west, /area/corsat/omega/containment) "aWS" = ( /obj/structure/machinery/light, -/turf/open/floor/corsat{ - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner, /area/corsat/omega/hallways) "aWT" = ( /obj/structure/machinery/faxmachine{ @@ -17765,38 +13103,26 @@ req_one_access_txt = "106" }, /obj/structure/surface/table/woodentable/fancy, -/turf/open/floor{ - dir = 8; - icon_state = "carpet15-15" - }, +/turf/open/floor/carpet15_15/west, /area/corsat/gamma/administration) "aWW" = ( /obj/structure/machinery/light{ dir = 4 }, /obj/structure/closet/radiation, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/east, /area/corsat/sigma/south/complex) "aWY" = ( /obj/structure/surface/rack, /obj/item/device/toner, /obj/item/device/toner, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/north, /area/corsat/gamma/residential/maint) "aWZ" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/north, /area/corsat/sigma/southeast/datalab) "aXa" = ( /obj/structure/surface/table/woodentable, @@ -17808,9 +13134,7 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "tcomms" - }, +/turf/open/floor/almayer/tcomms, /area/corsat/sigma/southeast/datalab) "aXc" = ( /obj/structure/machinery/light{ @@ -17819,41 +13143,28 @@ /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/airlocknorth/id) "aXd" = ( /obj/structure/surface/table/almayer, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/sigma/airlock/south) "aXe" = ( /obj/structure/machinery/faxmachine, /obj/structure/surface/table/woodentable/fancy, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/corsat/red/northwest, /area/corsat/omega/security) "aXg" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/sigma/south/security) "aXh" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/west, /area/corsat/sigma/southeast/datalab) "aXi" = ( /obj/structure/machinery/light{ @@ -17862,28 +13173,20 @@ /obj/structure/flora/pottedplant{ icon_state = "pottedplant_10" }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/east, /area/corsat/gamma/canteen) "aXj" = ( /obj/structure/sink{ dir = 4; pixel_x = 11 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purplewhitecorner" - }, +/turf/open/floor/corsat/purplewhitecorner/east, /area/corsat/omega/complex) "aXk" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/omega/checkpoint) "aXl" = ( /obj/structure/machinery/light{ @@ -17891,52 +13194,39 @@ }, /obj/structure/surface/table/woodentable, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/dorms) "aXm" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/cameras{ network = list("gamma") }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/gamma/hangar/cargo) "aXn" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "omega" - }, +/turf/open/floor/corsat/omega, /area/corsat/omega/airlocknorth) "aXo" = ( /obj/structure/machinery/computer/telecomms/server{ req_one_access_txt = "19;106;102" }, -/turf/open/floor/almayer{ - icon_state = "tcomms" - }, +/turf/open/floor/almayer/tcomms, /area/corsat/sigma/southeast/telecomm) "aXp" = ( /obj/structure/showcase{ icon_state = "broadcaster_send" }, -/turf/open/floor/almayer{ - icon_state = "tcomms" - }, +/turf/open/floor/almayer/tcomms, /area/corsat/sigma/southeast/telecomm) "aXq" = ( /obj/structure/showcase{ icon_state = "relay"; name = "Telecommunication Relay" }, -/turf/open/floor/almayer{ - icon_state = "tcomms" - }, +/turf/open/floor/almayer/tcomms, /area/corsat/sigma/southeast/telecomm) "aXr" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony{ @@ -17946,9 +13236,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/southeast/telecomm) "aXs" = ( /obj/structure/machinery/door_control{ @@ -17964,34 +13252,23 @@ use_power = 0 }, /obj/structure/surface/table/woodentable/fancy, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/omega/security) "aXt" = ( /obj/structure/machinery/recycler, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/southeast, /area/corsat/gamma/cargo/disposal) "aXu" = ( /obj/item/folder/black_random, /obj/item/clothing/mask/cigarette/cigar/havana, /obj/structure/surface/table/woodentable/fancy, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/north, /area/corsat/omega/security) "aXv" = ( /obj/item/storage/fancy/cigarettes/lucky_strikes, /obj/item/tool/lighter/random, /obj/structure/surface/table/woodentable/fancy, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/security) "aXw" = ( /obj/structure/window/framed/corsat/hull, @@ -18003,21 +13280,14 @@ }, /obj/structure/surface/table/woodentable, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/south) "aXy" = ( -/turf/open/floor/almayer{ - icon_state = "tcomms" - }, +/turf/open/floor/almayer/tcomms, /area/corsat/sigma/southeast/telecomm) "aXz" = ( /obj/structure/surface/table/almayer, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/northwest, /area/corsat/sigma/southeast/datalab) "aXB" = ( /obj/structure/barricade/handrail{ @@ -18026,9 +13296,7 @@ /obj/structure/surface/table/woodentable, /obj/effect/landmark/crap_item, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/dorms) "aXC" = ( /obj/structure/barricade/handrail{ @@ -18036,24 +13304,17 @@ }, /obj/structure/surface/table/woodentable, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/dorms) "aXD" = ( /obj/structure/machinery/light, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/corsat/red/southwest, /area/corsat/omega/airlocknorth) "aXE" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner, /area/corsat/omega/airlocknorth) "aXF" = ( /obj/structure/surface/table/almayer, @@ -18062,9 +13323,7 @@ dir = 1; network = list("gamma") }, -/turf/open/floor/corsat{ - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite, /area/corsat/gamma/biodome/virology) "aXG" = ( /obj/structure/reagent_dispensers/virusfood{ @@ -18072,41 +13331,30 @@ }, /obj/structure/surface/rack, /obj/item/reagent_container/glass/bottle/random, -/turf/open/floor/corsat{ - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite, /area/corsat/gamma/biodome/virology) "aXH" = ( /obj/structure/closet/wardrobe/science_white, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/west, /area/corsat/omega/complex) "aXJ" = ( /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/hangar/id) "aXM" = ( /obj/structure/bed/chair/comfy{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "darkgreencorner" - }, +/turf/open/floor/corsat/darkgreencorner, /area/corsat/gamma/hangar/monorail) "aXN" = ( /obj/structure/machinery/camera/autoname{ dir = 8; network = list("sigma") }, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/sigma/south/offices) "aXO" = ( /obj/structure/machinery/door/airlock/almayer/research/glass/colony{ @@ -18116,49 +13364,37 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/omega/complex) "aXP" = ( /obj/structure/bed/chair/comfy{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "darkgreen" - }, +/turf/open/floor/corsat/darkgreen, /area/corsat/gamma/hangar/monorail) "aXQ" = ( /obj/structure/machinery/light, /obj/structure/bed/chair/comfy{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "darkgreen" - }, +/turf/open/floor/corsat/darkgreen, /area/corsat/gamma/hangar/monorail) "aXR" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "theta" - }, +/turf/open/floor/corsat/theta, /area/corsat/theta/biodome/complex) "aXS" = ( /obj/effect/landmark/crap_item, /obj/structure/surface/table/woodentable, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/south) "aXT" = ( /obj/structure/surface/table/woodentable, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/south) "aXU" = ( /turf/open/floor/wood, @@ -18167,42 +13403,30 @@ /obj/item/paper_bin, /obj/item/tool/pen/blue, /obj/structure/surface/table/woodentable/fancy, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/corsat/red/southwest, /area/corsat/omega/security) "aXW" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/shuttle/escapepod{ - icon_state = "floor1" - }, +/turf/open/shuttle/escapepod/floor1, /area/corsat/theta/biodome/complex) "aXX" = ( /obj/item/toy/deck, /obj/structure/machinery/light, /obj/structure/surface/table/woodentable, -/turf/open/floor/corsat{ - icon_state = "white" - }, +/turf/open/floor/corsat/white, /area/corsat/sigma/dorms) "aXY" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/north, /area/corsat/theta/biodome/complex) "aXZ" = ( /obj/item/folder/black_random, /obj/structure/surface/table/woodentable/fancy, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/south/security) "aYa" = ( /obj/structure/surface/table/almayer, @@ -18214,26 +13438,19 @@ /obj/item/ammo_magazine/smg/nailgun, /obj/item/ammo_magazine/smg/nailgun, /obj/item/ammo_magazine/smg/nailgun, -/turf/open/floor/corsat{ - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow, /area/corsat/gamma/engineering) "aYb" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/atmos_alert, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/north, /area/corsat/gamma/engineering/atmos) "aYc" = ( /obj/structure/machinery/light{ dir = 8 }, /obj/structure/machinery/bot/cleanbot, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/theta/biodome/hydrowest) "aYd" = ( /obj/structure/machinery/shower, @@ -18244,10 +13461,7 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "whitebluefull" - }, +/turf/open/floor/corsat/whitebluefull/southwest, /area/corsat/sigma/lavatory) "aYe" = ( /obj/structure/machinery/shower, @@ -18257,39 +13471,28 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "whitebluefull" - }, +/turf/open/floor/corsat/whitebluefull/southwest, /area/corsat/sigma/lavatory) "aYf" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/theta/biodome/hydroeast) "aYg" = ( /obj/structure/machinery/light, -/turf/open/floor/corsat{ - icon_state = "purplewhitecorner" - }, +/turf/open/floor/corsat/purplewhitecorner, /area/corsat/theta/biodome/hydrowest) "aYh" = ( /obj/structure/machinery/light, /obj/structure/bed/chair/comfy{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/hangar/monorail) "aYi" = ( /obj/structure/machinery/light, -/turf/open/floor/corsat{ - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite, /area/corsat/theta/biodome/complex) "aYj" = ( /obj/structure/sink{ @@ -18300,10 +13503,7 @@ dir = 4; pixel_x = -32 }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "whitebluefull" - }, +/turf/open/floor/corsat/whitebluefull/southwest, /area/corsat/sigma/lavatory) "aYk" = ( /obj/structure/toilet{ @@ -18312,64 +13512,43 @@ /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "whitebluefull" - }, +/turf/open/floor/corsat/whitebluefull/southwest, /area/corsat/sigma/lavatory) "aYl" = ( /obj/item/clothing/mask/cigarette/cigar/cohiba, /obj/structure/surface/table/woodentable/fancy, -/turf/open/floor/corsat{ - icon_state = "red" - }, +/turf/open/floor/corsat/red, /area/corsat/sigma/south/security) "aYn" = ( /obj/structure/machinery/light, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "purplewhitecorner" - }, +/turf/open/floor/corsat/purplewhitecorner/west, /area/corsat/theta/biodome/hydroeast) "aYp" = ( -/turf/open/floor/corsat{ - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite, /area/corsat/omega/complex) "aYq" = ( /obj/structure/machinery/computer/general_air_control/large_tank_control{ name = "Waste Tank Control" }, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/northeast, /area/corsat/gamma/engineering/atmos) "aYr" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/west, /area/corsat/theta/biodome/complex) "aYs" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/east, /area/corsat/theta/biodome/complex) "aYt" = ( /obj/structure/machinery/light, /obj/item/clothing/mask/gas, /obj/structure/surface/rack, -/turf/open/floor/corsat{ - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite, /area/corsat/gamma/biodome/toxins) "aYu" = ( /obj/structure/machinery/light{ @@ -18377,18 +13556,13 @@ }, /obj/structure/surface/table/woodentable, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/south) "aYv" = ( /obj/structure/bed/chair/comfy/black{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/east, /area/corsat/gamma/hangar/monorail/control) "aYw" = ( /obj/structure/machinery/light, @@ -18398,71 +13572,49 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/south) "aYz" = ( /obj/structure/machinery/light{ dir = 1 }, /obj/structure/closet/wardrobe/virology_white, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/north, /area/corsat/gamma/biodome/virology) "aYA" = ( /obj/structure/surface/rack, /obj/item/reagent_container/glass/bottle/random, -/turf/open/floor/corsat{ - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite, /area/corsat/gamma/biodome/virology) "aYB" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/corsat/omega/hangar) "aYC" = ( /obj/structure/closet/secure_closet/engineering_welding, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/west, /area/corsat/gamma/hangar/monorail/control) "aYD" = ( /obj/structure/cargo_container/arious/leftmid, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/corsat/sigma/biodome/scrapyard) "aYE" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/west, /area/corsat/sigma/south/robotics) "aYF" = ( /obj/effect/decal/mecha_wreckage/ripley/firefighter, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/corsat/sigma/biodome/scrapyard) "aYG" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/hangar/security) "aYH" = ( /obj/structure/machinery/light{ @@ -18471,124 +13623,85 @@ /obj/effect/landmark/crap_item, /obj/structure/surface/table/woodentable, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/south) "aYI" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/omega/hangar) "aYJ" = ( /obj/structure/cargo_container/arious/rightmid, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/corsat/sigma/biodome/scrapyard) "aYK" = ( /obj/effect/landmark/survivor_spawner, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/medbay) "aYL" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "greenwhitecorner" - }, +/turf/open/floor/corsat/greenwhitecorner/east, /area/corsat/gamma/medbay/chemistry) "aYM" = ( /obj/structure/machinery/light{ dir = 8 }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/hangar) "aYN" = ( /obj/structure/machinery/pipedispenser, /obj/structure/machinery/camera/autoname{ network = list("gamma") }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/north, /area/corsat/gamma/engineering) "aYO" = ( /obj/structure/bed/chair/office/light, -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/omega/offices) "aYP" = ( /obj/structure/cargo_container/arious/right, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/corsat/sigma/biodome/scrapyard) "aYQ" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/omega/hangar/security) "aYR" = ( /turf/closed/wall/r_wall/biodome, /area/corsat/theta/biodome) "aYS" = ( /obj/structure/machinery/processor, -/turf/open/floor/corsat{ - icon_state = "sterileplate" - }, +/turf/open/floor/corsat/sterileplate, /area/corsat/gamma/kitchen) "aYT" = ( /obj/structure/closet/emcloset, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/west, /area/corsat/sigma/south/engineering) "aYV" = ( /obj/structure/cargo_container/watatsumi/leftmid, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/corsat/sigma/biodome/scrapyard) "aYW" = ( /obj/structure/machinery/camera/autoname{ dir = 4; network = list("sigma") }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/west, /area/corsat/sigma/airlock/south) "aYX" = ( /obj/structure/machinery/light{ dir = 1 }, /obj/structure/pipes/vents/pump, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/hangar/security) "aYY" = ( /obj/structure/machinery/disposal, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/northeast, /area/corsat/gamma/residential/researcher) "aYZ" = ( /obj/structure/surface/table/almayer, @@ -18597,10 +13710,7 @@ dir = 4; network = list("sigma") }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/west, /area/corsat/sigma/south/complex) "aZa" = ( /obj/structure/window/framed/corsat/hull/security, @@ -18610,10 +13720,7 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/omega/hangar/security) "aZc" = ( /obj/structure/surface/table/reinforced, @@ -18623,18 +13730,13 @@ pixel_y = 5; use_power = 0 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/corsat/omega/checkpoint) "aZd" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/omega/hangar) "aZe" = ( /turf/closed/wall/r_wall/biodome, @@ -18643,57 +13745,39 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/corsat/omega/hangar/office) "aZg" = ( /obj/structure/machinery/light, -/turf/open/floor/corsat{ - icon_state = "red" - }, +/turf/open/floor/corsat/red, /area/corsat/omega/hangar/office) "aZh" = ( /obj/structure/stairs, /obj/structure/platform{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/gamma/residential/west) "aZi" = ( /obj/structure/machinery/light, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/omega/hangar) "aZj" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/west, /area/corsat/gamma/engineering) "aZk" = ( /obj/structure/surface/table/almayer, /obj/item/paper_bin, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite/north, /area/corsat/gamma/medbay/morgue) "aZl" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/omega/checkpoint) "aZm" = ( /obj/structure/flora/bush/ausbushes/var3/fullgrass, @@ -18706,10 +13790,7 @@ dir = 8; icon_state = "platform_deco" }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/gamma/residential/west) "aZo" = ( /obj/structure/machinery/power/apc/hyper{ @@ -18717,16 +13798,11 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/corsat/omega/checkpoint) "aZp" = ( /obj/structure/cargo_container/watatsumi/rightmid, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/corsat/sigma/biodome/scrapyard) "aZq" = ( /obj/structure/bed/chair/wood/normal, @@ -18746,9 +13822,7 @@ /area/corsat/sigma/dorms) "aZs" = ( /obj/structure/cargo_container/watatsumi/right, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/corsat/sigma/biodome/scrapyard) "aZt" = ( /obj/structure/platform{ @@ -18756,17 +13830,11 @@ layer = 2.7 }, /obj/structure/bed/chair/office/light, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/gamma/residential/west) "aZu" = ( /obj/structure/machinery/vending/cigarette/colony, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/corsat/red/southeast, /area/corsat/sigma/hangar/security) "aZv" = ( /obj/structure/pipes/vents/pump{ @@ -18777,10 +13845,7 @@ layer = 2.7 }, /obj/structure/bed/chair/office/light, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/gamma/residential/west) "aZw" = ( /obj/structure/bed/chair/wood/normal, @@ -18809,9 +13874,7 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/omega/offices) "aZA" = ( /obj/structure/surface/table/almayer, @@ -18820,9 +13883,7 @@ health = 80 }, /obj/item/folder/black_random, -/turf/open/floor/corsat{ - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey, /area/corsat/gamma/hangar/flightcontrol) "aZB" = ( /obj/structure/bed/chair/wood/normal{ @@ -18845,27 +13906,21 @@ pixel_x = 5; use_power = 0 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/corsat/omega/checkpoint) "aZD" = ( /obj/structure/machinery/door/poddoor/two_tile/four_tile/open{ id = "SigmaSouthS"; name = "Sigma South Airlock" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/corsat/sigma/airlock/south) "aZE" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/obj/structure/machinery/fuelcell_recycler/full, +/turf/open/floor/corsat/plate, /area/corsat/sigma/southeast/generator) "aZF" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -18876,10 +13931,7 @@ layer = 2.7 }, /obj/structure/bed/chair/office/light, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/gamma/residential/west) "aZG" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -18890,33 +13942,23 @@ layer = 2.7 }, /obj/structure/bed/chair/office/light, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/gamma/residential/west) "aZH" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/east, /area/corsat/sigma/southeast/generator) "aZI" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/omega/offices) "aZJ" = ( /obj/structure/machinery/light, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/omega/offices) "aZK" = ( /obj/effect/decal/cleanable/blood/splatter, @@ -18925,19 +13967,13 @@ dir = 4; icon_state = "platform_deco" }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/gamma/residential/west) "aZL" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "tcomms" - }, +/turf/open/floor/corsat/tcomms/southwest, /area/corsat/sigma/south/complex) "aZM" = ( /obj/structure/stairs, @@ -18945,43 +13981,31 @@ dir = 4; layer = 2.7 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/gamma/residential/west) "aZN" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "tcomms" - }, +/turf/open/floor/corsat/tcomms/southwest, /area/corsat/sigma/south/complex) "aZQ" = ( /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/almayer/research/containment/entrance{ - dir = 8 - }, +/turf/open/floor/almayer/research/containment/entrance/west, /area/corsat/inaccessible) "aZR" = ( /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/almayer/research/containment/floor2{ - dir = 8 - }, +/turf/open/floor/almayer/research/containment/floor2/west, /area/corsat/inaccessible) "aZS" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/southeast/datamaint) "aZT" = ( /obj/structure/platform{ @@ -18989,10 +14013,7 @@ dir = 4; icon_state = "platform_deco" }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/gamma/residential/west) "aZV" = ( /obj/structure/machinery/light{ @@ -19001,40 +14022,28 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/south/engineering) "aZW" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/east, /area/corsat/sigma/south/robotics) "aZX" = ( /obj/structure/machinery/light, -/turf/open/floor/corsat{ - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow, /area/corsat/sigma/south/engineering) "aZY" = ( /obj/structure/bed/chair/office/light{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/omega/offices) "aZZ" = ( /obj/structure/surface/table, /obj/item/folder/black, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/gamma/residential/west) "baa" = ( /obj/structure/machinery/light{ @@ -19043,29 +14052,20 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/omega/control) "bab" = ( /obj/structure/platform{ dir = 1; layer = 2.7 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/gamma/residential/west) "bac" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/corsat/omega/control) "bad" = ( /obj/structure/surface/table/almayer, @@ -19075,18 +14075,13 @@ dir = 8 }, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/engineering) "bae" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/west, /area/corsat/omega/control) "baf" = ( /obj/structure/closet/secure_closet/security_empty, @@ -19097,17 +14092,12 @@ /obj/item/ammo_magazine/pistol/mod88, /obj/item/storage/pouch/general/medium, /obj/item/storage/pouch/pistol, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/corsat/omega/control) "bag" = ( /obj/structure/surface/table/almayer, /obj/effect/spawner/random/tool, -/turf/open/floor/corsat{ - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner, /area/corsat/gamma/engineering) "bah" = ( /obj/structure/closet/secure_closet/security_empty, @@ -19118,28 +14108,21 @@ /obj/item/ammo_magazine/pistol/mod88, /obj/item/storage/pouch/general/medium, /obj/item/storage/pouch/pistol, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/corsat/red/northeast, /area/corsat/omega/control) "bai" = ( /obj/structure/machinery/door/poddoor/two_tile/four_tile/open{ id = "OmegaHangarN"; name = "Landing Bay Omega" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/corsat/omega/hangar/security) "baj" = ( /obj/structure/machinery/door/poddoor/two_tile/four_tile/vertical/opened{ id = "OmegaHangarNE"; name = "Landing Bay Omega" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/corsat/omega/hangar/security) "bak" = ( /obj/effect/decal/cleanable/blood/splatter, @@ -19147,38 +14130,27 @@ dir = 1; layer = 2.7 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/gamma/residential/west) "bal" = ( /obj/structure/bed/chair/comfy/black{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/corsat/omega/hangar/security) "bam" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/computer/cameras{ network = list("omega") }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/corsat/omega/checkpoint) "ban" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ name = "ID Checkpoint"; req_access_txt = "101" }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/hangar/security) "bao" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/comdoor{ @@ -19188,27 +14160,21 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "blue" - }, +/turf/open/floor/corsat/blue, /area/corsat/omega/control) "bap" = ( /obj/structure/machinery/door/poddoor/two_tile/four_tile/vertical{ id = "OmegaHangarW"; name = "Landing Bay Omega" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/corsat/omega/hangar/security) "baq" = ( /obj/structure/machinery/door/poddoor/two_tile/four_tile/vertical{ id = "OmegaHangarE"; name = "Landing Bay Omega" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/corsat/omega/hangar/security) "bar" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ @@ -19217,9 +14183,7 @@ req_access_txt = "101" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/hangar/security) "bas" = ( /obj/structure/surface/table/almayer, @@ -19228,19 +14192,13 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/west, /area/corsat/gamma/engineering/atmos) "bat" = ( /obj/structure/surface/table/almayer, /obj/item/storage/donut_box, /obj/item/tool/lighter/random, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/corsat/red/northeast, /area/corsat/gamma/airlock/control) "bau" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ @@ -19249,9 +14207,7 @@ req_access_txt = "101" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/hangar/office) "bav" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ @@ -19259,26 +14215,18 @@ name = "ID Checkpoint"; req_access_txt = "101" }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/omega/control) "baw" = ( /obj/structure/closet/emcloset, /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/corsat/omega/control) "bax" = ( /obj/structure/closet/firecloset, -/turf/open/floor/corsat{ - icon_state = "omega" - }, +/turf/open/floor/corsat/omega, /area/corsat/omega/control) "bay" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/comdoor{ @@ -19289,9 +14237,7 @@ dir = 4 }, /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/control) "baz" = ( /obj/effect/decal/cleanable/cobweb{ @@ -19302,30 +14248,19 @@ "baA" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/computer/secure_data, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/corsat/red/northeast, /area/corsat/omega/checkpoint) "baB" = ( -/turf/open/floor/corsat{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/corsat/red/northwest, /area/corsat/omega/checkpoint) "baC" = ( -/turf/open/floor/corsat{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/corsat/red/northeast, /area/corsat/omega/checkpoint) "baD" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/omega/hangar/security) "baE" = ( /obj/structure/surface/table/reinforced, @@ -19333,24 +14268,16 @@ dir = 4; network = list("omega") }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/omega/checkpoint) "baF" = ( /obj/structure/bed/chair/comfy/black{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/checkpoint) "baG" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/omega/checkpoint) "baH" = ( /obj/structure/surface/table/reinforced, @@ -19366,9 +14293,7 @@ name = "Security Shutters" }, /obj/structure/window/reinforced, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/omega/checkpoint) "baI" = ( /obj/structure/machinery/door/poddoor/two_tile/four_tile/vertical/secure/open{ @@ -19376,9 +14301,7 @@ name = "Gamma Emergency Access"; use_power = 0 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/corsat/omega/checkpoint) "baJ" = ( /obj/structure/sign/safety/airlock, @@ -19386,9 +14309,7 @@ /area/corsat/gamma/hangar/checkpoint) "baK" = ( /obj/structure/bed/chair/comfy/black, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/checkpoint) "baL" = ( /obj/structure/machinery/power/apc/hyper{ @@ -19396,27 +14317,20 @@ pixel_x = 24; start_charge = 0 }, -/turf/open/floor/corsat{ - icon_state = "omega" - }, +/turf/open/floor/corsat/omega, /area/corsat/omega/control) "baM" = ( /obj/structure/machinery/disposal, /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow, /area/corsat/omega/control) "baN" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/toolbox, /obj/effect/spawner/random/toolbox, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/northwest, /area/corsat/omega/control) "baO" = ( /obj/structure/surface/table/reinforced, @@ -19431,9 +14345,7 @@ id = "OmegaAccessC"; name = "Security Shutters" }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/omega/checkpoint) "baR" = ( /obj/structure/surface/table/reinforced, @@ -19449,15 +14361,10 @@ pixel_x = 5; use_power = 0 }, -/turf/open/floor/corsat{ - icon_state = "red" - }, +/turf/open/floor/corsat/red, /area/corsat/omega/checkpoint) "baT" = ( -/turf/open/floor/corsat{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/corsat/red/southeast, /area/corsat/omega/hallways) "baU" = ( /obj/structure/window/framed/corsat/hull, @@ -19475,9 +14382,7 @@ network = list("omega") }, /obj/structure/surface/table/reinforced, -/turf/open/floor/corsat{ - icon_state = "red" - }, +/turf/open/floor/corsat/red, /area/corsat/omega/checkpoint) "baY" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony{ @@ -19486,18 +14391,14 @@ req_one_access_txt = "102" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/south/robotics) "baZ" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony{ name = "Engineering"; req_one_access_txt = "102" }, -/turf/open/floor/corsat{ - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow, /area/corsat/sigma/south/engineering) "bba" = ( /obj/structure/window/framed/corsat/security, @@ -19509,9 +14410,7 @@ /area/corsat/omega/control) "bbb" = ( /obj/structure/bed/chair/comfy/black, -/turf/open/floor/corsat{ - icon_state = "red" - }, +/turf/open/floor/corsat/red, /area/corsat/omega/control) "bbc" = ( /obj/structure/machinery/door/window/brigdoor/eastleft{ @@ -19528,9 +14427,7 @@ id = "OmegaCSC"; name = "Security Shutters" }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/omega/control) "bbd" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony{ @@ -19538,10 +14435,7 @@ name = "Sigma Dome Control"; req_one_access_txt = "102" }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/west, /area/corsat/sigma/airlock/control) "bbe" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony{ @@ -19550,19 +14444,14 @@ req_one_access = null }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/north) "bbf" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/computer/secure_data{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/corsat/red/southeast, /area/corsat/omega/checkpoint) "bbg" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ @@ -19570,18 +14459,13 @@ name = "ID Checkpoint"; req_access_txt = "101" }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/airlock/control) "bbh" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/comdoor{ name = "Theta Dome Control" }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/west, /area/corsat/theta/airlock/control) "bbi" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ @@ -19591,26 +14475,18 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/corsat/theta/airlock/control) "bbj" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony{ name = "Theta Dome Control"; req_one_access_txt = "102" }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/north, /area/corsat/theta/airlock/control) "bbk" = ( /obj/structure/bed/chair/comfy/black, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/theta/airlock/control) "bbl" = ( /obj/structure/machinery/door/window/brigdoor/eastleft{ @@ -19623,46 +14499,31 @@ name = "Identification Desk"; req_access_txt = "104" }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/theta/airlock/control) "bbm" = ( -/turf/open/floor/corsat{ - icon_state = "theta" - }, +/turf/open/floor/corsat/theta, /area/corsat/omega/checkpoint) "bbn" = ( /obj/structure/surface/table/reinforced, /obj/item/tool/lighter/random, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/corsat/red/northwest, /area/corsat/omega/checkpoint) "bbo" = ( /obj/structure/machinery/door/poddoor/two_tile/four_tile{ id = "ThetaNorthS"; name = "Theta North Airlock" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/corsat/theta/airlock/control) "bbp" = ( /obj/structure/surface/table/reinforced, /obj/item/folder/black_random, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/corsat/omega/checkpoint) "bbr" = ( /obj/structure/closet/secure_closet/guncabinet/riot_control, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/corsat/omega/checkpoint) "bbs" = ( /obj/structure/surface/table/reinforced, @@ -19678,10 +14539,7 @@ pixel_x = -5; use_power = 0 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/corsat/theta/airlock/west) "bbt" = ( /obj/structure/machinery/door/poddoor/two_tile/four_tile/vertical/opened{ @@ -19693,60 +14551,42 @@ name = "Theta Lockdown"; use_power = 0 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/corsat/theta/airlock/east) "bbu" = ( /obj/structure/machinery/door/poddoor/two_tile/four_tile/vertical/opened{ id = "ThetaEastE"; name = "Theta East Airlock" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/corsat/theta/airlock/east) "bbv" = ( /obj/structure/surface/rack, /obj/item/device/flashlight, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/corsat/omega/checkpoint) "bbx" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ name = "Hangar Security"; req_access_txt = "101" }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/hangar/security) "bby" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/corsat/omega/checkpoint) "bbz" = ( /obj/structure/closet/secure_closet/engineering_electrical{ req_access_txt = "102" }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/west, /area/corsat/sigma/hangar/monorail/control) "bbA" = ( /obj/structure/closet/secure_closet/engineering_welding{ req_access_txt = "102" }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/west, /area/corsat/sigma/hangar/monorail/control) "bbB" = ( /obj/structure/window/framed/corsat/research, @@ -19763,15 +14603,11 @@ name = "Research Complex Gamma"; req_access_txt = "103" }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/biodome/complex) "bbD" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/omega/checkpoint) "bbE" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -19781,9 +14617,7 @@ name = "Maintainence"; req_one_access = null }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/biodome/complex) "bbF" = ( /obj/structure/surface/table/almayer, @@ -19793,10 +14627,7 @@ pixel_y = 5; use_power = 0 }, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/corsat/red/northeast, /area/corsat/omega/checkpoint) "bbG" = ( /obj/structure/machinery/door/window/brigdoor/eastleft{ @@ -19804,19 +14635,13 @@ name = "Research Desk" }, /obj/structure/surface/table/reinforced, -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/gamma/biodome/complex) "bbH" = ( -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/biodome/complex) "bbI" = ( -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/biodome/complex) "bbJ" = ( /obj/structure/window/framed/corsat/research, @@ -19835,18 +14660,14 @@ /obj/structure/machinery/computer/secure_data{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/omega/security) "bbL" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ dir = 1; name = "Research Complex Gamma" }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/biodome/complex) "bbM" = ( /obj/structure/window/framed/corsat/research, @@ -19861,24 +14682,15 @@ /obj/structure/closet/secure_closet/engineering_electrical{ req_access_txt = "102" }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/north, /area/corsat/gamma/engineering) "bbO" = ( /obj/structure/filingcabinet/filingcabinet, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/omega/checkpoint) "bbP" = ( /obj/structure/filingcabinet/filingcabinet, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/corsat/red/southwest, /area/corsat/omega/checkpoint) "bbQ" = ( /obj/structure/machinery/door/poddoor/shutters/almayer/open{ @@ -19900,10 +14712,7 @@ name = "Toxins Lockdown" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/east, /area/corsat/gamma/biodome/toxins) "bbS" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony{ @@ -19912,9 +14721,7 @@ req_one_access = null }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/hangar/monorail/control) "bbT" = ( /obj/structure/machinery/door_control{ @@ -19923,32 +14730,21 @@ pixel_y = 24; use_power = 0 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhitecorner" - }, +/turf/open/floor/corsat/purplewhitecorner/north, /area/corsat/gamma/biodome/toxins) "bbU" = ( /obj/structure/closet/secure_closet/engineering_welding{ req_access_txt = "102" }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner/north, /area/corsat/gamma/engineering) "bbV" = ( -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/theta/biodome/complex) "bbW" = ( /obj/structure/surface/table/almayer, /obj/item/reagent_container/spray/cleaner, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/north, /area/corsat/omega/containment) "bbX" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony{ @@ -19956,9 +14752,7 @@ name = "Maintainance"; req_one_access = null }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/biodome/toxins) "bbZ" = ( /obj/structure/machinery/light{ @@ -19967,10 +14761,7 @@ /obj/structure/sink{ pixel_y = 25 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/north, /area/corsat/omega/complex) "bca" = ( /obj/structure/machinery/door/airlock/almayer/research/glass/colony{ @@ -19979,18 +14770,14 @@ req_one_access_txt = "101" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/theta/biodome/hydrowest) "bcb" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony{ name = "Maintainence"; req_one_access = null }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/theta/biodome/hydrowest) "bcc" = ( /obj/structure/machinery/door/poddoor/shutters/almayer/open{ @@ -20002,19 +14789,14 @@ name = "Toxins Lab"; req_one_access_txt = "103" }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/west, /area/corsat/gamma/biodome/toxins) "bcd" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony{ name = "Maintainence"; req_one_access = null }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/theta/biodome/hydroeast) "bce" = ( /obj/structure/machinery/door/airlock/almayer/research/glass/colony{ @@ -20023,9 +14805,7 @@ req_one_access_txt = "103" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/theta/biodome/complex) "bcf" = ( /obj/structure/window/framed/corsat/research, @@ -20147,24 +14927,17 @@ pixel_x = -24; use_power = 0 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/north, /area/corsat/gamma/security) "bct" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "red" - }, +/turf/open/floor/corsat/red, /area/corsat/omega/checkpoint) "bcu" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/corsat/omega/checkpoint) "bcv" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ @@ -20172,9 +14945,7 @@ name = "Hangar Security"; req_access_txt = "101" }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/hangar/security) "bcw" = ( /obj/structure/surface/table/reinforced, @@ -20182,9 +14953,7 @@ dir = 1 }, /obj/structure/machinery/light, -/turf/open/floor/corsat{ - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner, /area/corsat/sigma/hangar/checkpoint) "bcx" = ( /obj/effect/decal/cleanable/cobweb{ @@ -20205,9 +14974,7 @@ id = "SigmaHCargoC"; name = "Security Shutters" }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/hangar/id) "bcz" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ @@ -20215,9 +14982,7 @@ name = "Gamma Dome Control"; req_access_txt = "101" }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/airlock/control) "bcA" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/comdoor{ @@ -20227,9 +14992,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/airlock/control) "bcB" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony{ @@ -20237,9 +15000,7 @@ name = "Gamma Dome Control"; req_one_access_txt = "102" }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/airlock/control) "bcC" = ( /obj/structure/surface/table/reinforced, @@ -20250,9 +15011,7 @@ name = "Research Desk" }, /obj/structure/machinery/bot/medbot, -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/theta/biodome/complex) "bcD" = ( /obj/structure/flora/jungle/vines/light_1, @@ -20306,9 +15065,7 @@ /obj/structure/sign/safety/airlock{ pixel_x = 32 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/cargo) "bcP" = ( /obj/structure/sign/safety/storage, @@ -20326,9 +15083,7 @@ /obj/item/reagent_container/food/snacks/grown/potato, /obj/item/reagent_container/food/snacks/grown/potato, /obj/structure/closet/crate/freezer, -/turf/open/floor/corsat{ - icon_state = "cargo" - }, +/turf/open/floor/corsat/cargo, /area/corsat/gamma/freezer) "bcR" = ( /obj/structure/flora/bush/ausbushes/var3/fullgrass, @@ -20385,117 +15140,75 @@ /area/corsat/theta/biodome) "bdc" = ( /obj/structure/fence, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/corsat/sigma/biodome/gunrange) "bdd" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_19" - }, +/turf/open/mars_cave/mars_cave_19, /area/corsat/sigma/biodome/gunrange) "bde" = ( -/turf/open/mars{ - icon_state = "mars_dirt_13" - }, +/turf/open/mars/mars_dirt_13, /area/corsat/sigma/biodome) "bdf" = ( -/turf/open/mars{ - icon_state = "mars_dirt_10" - }, +/turf/open/mars/mars_dirt_10, /area/corsat/sigma/biodome) "bdg" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_17" - }, +/turf/open/mars_cave/mars_cave_17, /area/corsat/sigma/biodome/gunrange) "bdh" = ( /obj/structure/target/syndicate, -/turf/open/mars_cave{ - icon_state = "mars_cave_17" - }, +/turf/open/mars_cave/mars_cave_17, /area/corsat/sigma/biodome/gunrange) "bdi" = ( /obj/structure/fence, -/turf/open/mars_cave{ - icon_state = "mars_cave_17" - }, +/turf/open/mars_cave/mars_cave_17, /area/corsat/sigma/biodome/gunrange) "bdj" = ( /obj/structure/target, /obj/item/clothing/suit/storage/militia, -/turf/open/mars_cave{ - icon_state = "mars_cave_17" - }, +/turf/open/mars_cave/mars_cave_17, /area/corsat/sigma/biodome/gunrange) "bdk" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_20" - }, +/turf/open/mars_cave/mars_cave_20, /area/corsat/sigma/biodome/gunrange) "bdl" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_16" - }, +/turf/open/mars_cave/mars_cave_16, /area/corsat/sigma/biodome/gunrange) "bdm" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/corsat/sigma/biodome/gunrange) "bdn" = ( -/turf/open/mars{ - icon_state = "mars_dirt_14" - }, +/turf/open/mars/mars_dirt_14, /area/corsat/sigma/biodome) "bdo" = ( -/turf/open/mars{ - icon_state = "mars_dirt_11" - }, +/turf/open/mars/mars_dirt_11, /area/corsat/sigma/biodome) "bdp" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_18" - }, +/turf/open/mars_cave/mars_cave_18, /area/corsat/sigma/biodome/gunrange) "bdq" = ( -/turf/open/mars{ - icon_state = "mars_dirt_12" - }, +/turf/open/mars/mars_dirt_12, /area/corsat/sigma/biodome) "bdr" = ( /obj/structure/fence, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/corsat/sigma/biodome/gunrange) "bds" = ( /obj/structure/target, /obj/item/clothing/suit/storage/militia, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/corsat/sigma/biodome/gunrange) "bdt" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_13" - }, +/turf/open/mars_cave/mars_cave_13, /area/corsat/sigma/biodome/gunrange) "bdu" = ( /obj/structure/target/syndicate, -/turf/open/mars_cave{ - icon_state = "mars_cave_16" - }, +/turf/open/mars_cave/mars_cave_16, /area/corsat/sigma/biodome/gunrange) "bdv" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_22" - }, +/turf/open/mars_cave/mars_cave_22, /area/corsat/sigma/biodome/gunrange) "bdw" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_11" - }, +/turf/open/mars_cave/mars_cave_11, /area/corsat/sigma/biodome/gunrange) "bdx" = ( /turf/open/gm/dirtgrassborder/grassdirt_corner/north_west, @@ -20612,9 +15325,7 @@ /turf/open/gm/dirtgrassborder/south, /area/corsat/theta/biodome) "bef" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_4" - }, +/turf/open/mars_cave/mars_cave_4, /area/corsat/sigma/biodome/gunrange) "beg" = ( /obj/structure/flora/bush/ausbushes/ppflowers, @@ -20633,9 +15344,7 @@ name = "Research Complex Sigma"; req_access_txt = "103" }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/sigma/south/complex) "bek" = ( /obj/structure/machinery/door/poddoor/two_tile/four_tile/vertical/secure{ @@ -20643,9 +15352,7 @@ name = "Omega Checkpoint"; use_power = 0 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/corsat/omega/checkpoint) "bel" = ( /obj/structure/flora/bush/ausbushes/var3/fernybush, @@ -20669,9 +15376,7 @@ /turf/closed/gm/dense, /area/corsat/theta/biodome) "beq" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_6" - }, +/turf/open/mars_cave/mars_cave_6, /area/corsat/sigma/biodome/gunrange) "ber" = ( /obj/structure/flora/jungle/alienplant1, @@ -20689,15 +15394,11 @@ use_power = 0 }, /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/corsat/omega/checkpoint) "beu" = ( /obj/structure/target/syndicate, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/corsat/sigma/biodome/gunrange) "bev" = ( /obj/structure/flora/bush/ausbushes/var3/fernybush, @@ -20760,24 +15461,16 @@ /turf/open/gm/dirtgrassborder/grassdirt_corner/north_east, /area/corsat/theta/biodome) "beK" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_12" - }, +/turf/open/mars_cave/mars_cave_12, /area/corsat/sigma/biodome/gunrange) "beL" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_8" - }, +/turf/open/mars_cave/mars_cave_8, /area/corsat/sigma/biodome/gunrange) "beM" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_23" - }, +/turf/open/mars_cave/mars_cave_23, /area/corsat/sigma/biodome/gunrange) "beN" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_7" - }, +/turf/open/mars_cave/mars_cave_7, /area/corsat/sigma/biodome/gunrange) "beO" = ( /turf/open/auto_turf/snow/layer3, @@ -20808,19 +15501,13 @@ "beU" = ( /obj/structure/target, /obj/item/clothing/suit/storage/militia, -/turf/open/mars_cave{ - icon_state = "mars_cave_13" - }, +/turf/open/mars_cave/mars_cave_13, /area/corsat/sigma/biodome/gunrange) "beV" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_9" - }, +/turf/open/mars_cave/mars_cave_9, /area/corsat/sigma/biodome/gunrange) "beW" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_15" - }, +/turf/open/mars_cave/mars_cave_15, /area/corsat/sigma/biodome/gunrange) "beX" = ( /turf/open/auto_turf/snow/layer1, @@ -20972,9 +15659,7 @@ /area/corsat/gamma/biodome) "bfw" = ( /obj/structure/fence, -/turf/open/mars_cave{ - icon_state = "mars_cave_15" - }, +/turf/open/mars_cave/mars_cave_15, /area/corsat/sigma/biodome/gunrange) "bfx" = ( /obj/structure/ice/ice_rock/cornerOverlay{ @@ -21099,17 +15784,13 @@ /turf/closed/ice_rock/corners, /area/corsat/gamma/biodome) "bfO" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_14" - }, +/turf/open/mars_cave/mars_cave_14, /area/corsat/sigma/biodome/gunrange) "bfP" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/checkpoint) "bfQ" = ( /turf/closed/ice, @@ -21205,81 +15886,51 @@ /turf/open/ice, /area/corsat/gamma/biodome) "bgj" = ( -/turf/open/floor{ - dir = 9; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/northwest, /area/corsat/sigma/biodome/gunrange) "bgk" = ( /turf/closed/ice_rock/singleEnd, /area/corsat/gamma/biodome) "bgl" = ( -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/north, /area/corsat/sigma/biodome/gunrange) "bgm" = ( -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/corsat/sigma/biodome/gunrange) "bgn" = ( -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/corsat/sigma/biodome) "bgo" = ( -/turf/open/floor{ - dir = 5; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/northeast, /area/corsat/sigma/biodome/gunrange) "bgp" = ( -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/west, /area/corsat/sigma/biodome/gunrange) "bgq" = ( -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/east, /area/corsat/sigma/biodome/gunrange) "bgr" = ( /turf/closed/wall, /area/corsat/sigma/biodome/gunrange) "bgs" = ( -/turf/open/floor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/asteroidplating, /area/corsat/sigma/biodome/gunrange) "bgt" = ( /obj/structure/largecrate/random, -/turf/open/floor/corsat{ - icon_state = "cargo" - }, +/turf/open/floor/corsat/cargo, /area/corsat/gamma/cargo) "bgu" = ( -/turf/open/mars{ - icon_state = "mars_dirt_3" - }, +/turf/open/mars/mars_dirt_3, /area/corsat/sigma/biodome) "bgv" = ( -/turf/open/mars{ - icon_state = "mars_dirt_9" - }, +/turf/open/mars/mars_dirt_9, /area/corsat/sigma/biodome) "bgw" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "Research Complex Gamma"; req_access_txt = "103" }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/omega/complex) "bgx" = ( /obj/structure/machinery/constructable_frame{ @@ -21294,9 +15945,7 @@ /obj/structure/surface/table/almayer, /obj/item/explosive/grenade/high_explosive, /obj/item/explosive/grenade/high_explosive, -/turf/open/floor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/asteroidplating, /area/corsat/sigma/biodome/gunrange) "bgz" = ( /obj/structure/machinery/m56d_hmg{ @@ -21306,167 +15955,104 @@ name = "Firing Lane" }, /obj/structure/surface/table/almayer, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/corsat/sigma/biodome/gunrange) "bgB" = ( /turf/closed/wall, /area/corsat/sigma/biodome/scrapyard) "bgC" = ( /obj/structure/fence, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/corsat/sigma/biodome/scrapyard) "bgD" = ( -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/west, /area/corsat/sigma/biodome/scrapyard) "bgE" = ( -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/corsat/sigma/biodome/scrapyard) "bgF" = ( /obj/structure/machinery/camera/autoname{ dir = 8; network = list("sigma") }, -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/east, /area/corsat/sigma/biodome/scrapyard) "bgG" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_19" - }, +/turf/open/mars_cave/mars_cave_19, /area/corsat/sigma/biodome/scrapyard) "bgH" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_17" - }, +/turf/open/mars_cave/mars_cave_17, /area/corsat/sigma/biodome/scrapyard) "bgI" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/corsat/sigma/biodome/scrapyard) "bgJ" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_20" - }, +/turf/open/mars_cave/mars_cave_20, /area/corsat/sigma/biodome/scrapyard) "bgK" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_16" - }, +/turf/open/mars_cave/mars_cave_16, /area/corsat/sigma/biodome/scrapyard) "bgL" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_18" - }, +/turf/open/mars_cave/mars_cave_18, /area/corsat/sigma/biodome/scrapyard) "bgM" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_6" - }, +/turf/open/mars_cave/mars_cave_6, /area/corsat/sigma/biodome/scrapyard) "bgN" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_13" - }, +/turf/open/mars_cave/mars_cave_13, /area/corsat/sigma/biodome/scrapyard) "bgO" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_22" - }, +/turf/open/mars_cave/mars_cave_22, /area/corsat/sigma/biodome/scrapyard) "bgP" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_11" - }, +/turf/open/mars_cave/mars_cave_11, /area/corsat/sigma/biodome/scrapyard) "bgQ" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_4" - }, +/turf/open/mars_cave/mars_cave_4, /area/corsat/sigma/biodome/scrapyard) "bgR" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_12" - }, +/turf/open/mars_cave/mars_cave_12, /area/corsat/sigma/biodome/scrapyard) "bgS" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_23" - }, +/turf/open/mars_cave/mars_cave_23, /area/corsat/sigma/biodome/scrapyard) "bgT" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_8" - }, +/turf/open/mars_cave/mars_cave_8, /area/corsat/sigma/biodome/scrapyard) "bgU" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_7" - }, +/turf/open/mars_cave/mars_cave_7, /area/corsat/sigma/biodome/scrapyard) "bgV" = ( -/turf/open/mars{ - icon_state = "mars_dirt_8" - }, +/turf/open/mars/mars_dirt_8, /area/corsat/sigma/biodome) "bgW" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_9" - }, +/turf/open/mars_cave/mars_cave_9, /area/corsat/sigma/biodome/scrapyard) "bgX" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_15" - }, +/turf/open/mars_cave/mars_cave_15, /area/corsat/sigma/biodome/scrapyard) "bgY" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_14" - }, +/turf/open/mars_cave/mars_cave_14, /area/corsat/sigma/biodome/scrapyard) "bgZ" = ( /turf/closed/wall/r_wall, /area/corsat/sigma/biodome/testgrounds) "bha" = ( /obj/structure/fence, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/corsat/sigma/biodome/testgrounds) "bhb" = ( -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/corsat/sigma/biodome/testgrounds) "bhc" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/corsat/sigma/biodome) "bhd" = ( /obj/structure/largecrate/supply/ammo/m39/half, -/turf/open/floor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/asteroidplating, /area/corsat/sigma/biodome/gunrange) "bhe" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_11" - }, +/turf/open/mars_cave/mars_cave_11, /area/corsat/sigma/biodome) "bhf" = ( /obj/structure/surface/rack, @@ -21477,27 +16063,19 @@ dir = 1 }, /obj/item/weapon/gun/shotgun/pump/dual_tube/cmb, -/turf/open/floor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/asteroidplating, /area/corsat/sigma/biodome/gunrange) "bhg" = ( /turf/open/floor/plating, /area/corsat/sigma/biodome/testgrounds) "bhh" = ( -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/corsat/sigma/biodome/testgrounds) "bhi" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "white" - }, +/turf/open/floor/corsat/white/north, /area/corsat/gamma/residential) "bhj" = ( /obj/structure/surface/rack, @@ -21508,15 +16086,11 @@ dir = 1 }, /obj/item/weapon/gun/rifle/m41a, -/turf/open/floor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/asteroidplating, /area/corsat/sigma/biodome/gunrange) "bhk" = ( /obj/effect/alien/weeds/node, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/omega/hallways) "bhl" = ( /obj/structure/foamed_metal, @@ -21524,9 +16098,7 @@ /area/corsat/sigma/biodome/testgrounds) "bhm" = ( /obj/structure/largecrate/supply/ammo/pistol/half, -/turf/open/floor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/asteroidplating, /area/corsat/sigma/biodome/gunrange) "bhn" = ( /turf/closed/mineral{ @@ -21534,52 +16106,34 @@ }, /area/corsat/sigma/biodome) "bho" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_23" - }, +/turf/open/mars_cave/mars_cave_23, /area/corsat/sigma/biodome) "bhp" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_22" - }, +/turf/open/mars_cave/mars_cave_22, /area/corsat/sigma/biodome) "bhq" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_12" - }, +/turf/open/mars_cave/mars_cave_12, /area/corsat/sigma/biodome) "bhr" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_18" - }, +/turf/open/mars_cave/mars_cave_18, /area/corsat/sigma/biodome) "bhs" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_6" - }, +/turf/open/mars_cave/mars_cave_6, /area/corsat/sigma/biodome) "bht" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_15" - }, +/turf/open/mars_cave/mars_cave_15, /area/corsat/sigma/biodome) "bhu" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_13" - }, +/turf/open/mars_cave/mars_cave_13, /area/corsat/sigma/biodome) "bhv" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_9" - }, +/turf/open/mars_cave/mars_cave_9, /area/corsat/sigma/biodome) "bhw" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/mars_cave{ - icon_state = "mars_cave_14" - }, +/turf/open/mars_cave/mars_cave_14, /area/corsat/sigma/biodome) "bhx" = ( /obj/structure/bed/chair/wood/wings{ @@ -21589,15 +16143,11 @@ /area/corsat/gamma/rnr/bar) "bhy" = ( /obj/structure/machinery/botany/editor, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/hydroponics) "bhz" = ( /obj/structure/closet/firecloset, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/rnr) "bhA" = ( /obj/structure/machinery/light{ @@ -21606,69 +16156,47 @@ /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/gamma/security/cells) "bhB" = ( /obj/structure/machinery/seed_extractor, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/hydroponics) "bhC" = ( /obj/structure/machinery/computer/shuttle_control/monorail{ dir = 8 }, /obj/structure/surface/table/reinforced, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/gamma/hangar/monorail/control) "bhD" = ( /obj/structure/sink{ dir = 8; pixel_x = -11 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/hydroponics) "bhE" = ( /obj/structure/closet/emcloset, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/hallwaysouth) "bhF" = ( /obj/structure/machinery/vending/coffee, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/rnr) "bhI" = ( /obj/structure/machinery/vending/hydronutrients, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/hydroponics) "bhJ" = ( /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/corsat/red/southwest, /area/corsat/gamma/security/cells) "bhK" = ( /obj/structure/machinery/photocopier, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/north, /area/corsat/gamma/cargo/lobby) "bhL" = ( /obj/structure/machinery/light{ @@ -21677,163 +16205,107 @@ /obj/structure/machinery/computer/general_air_control/large_tank_control{ name = "Mixed Air Control" }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/west, /area/corsat/gamma/engineering/atmos) "bhM" = ( /obj/structure/machinery/portable_atmospherics/canister/empty/oxygen, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/north, /area/corsat/gamma/engineering/atmos) "bhN" = ( /obj/structure/machinery/cm_vending/sorted/tech/comp_storage{ req_access_txt = "102" }, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/northeast, /area/corsat/gamma/engineering) "bhO" = ( /obj/structure/machinery/power/port_gen/pacman/super, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/west, /area/corsat/gamma/engineering) "bhP" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/alien/weeds/node, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/omega/hallways) "bhQ" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/alien/weeds/node, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/omega/hallways) "bhR" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony{ name = "Atmospherics"; req_one_access_txt = "102" }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/engineering/atmos) "bhS" = ( /obj/effect/alien/weeds/node, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/east, /area/corsat/omega/hallways) "bhT" = ( /obj/structure/machinery/power/monitor{ name = "Core Power Monitoring" }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/north, /area/corsat/gamma/engineering) "bhU" = ( /obj/structure/machinery/portable_atmospherics/canister/air, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/engineering/atmos) "bhV" = ( /obj/structure/machinery/cm_vending/sorted/tech/electronics_storage{ req_access_txt = "102" }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/east, /area/corsat/gamma/engineering) "bhW" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/door/window/northright{ name = "Firing Lane" }, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/corsat/sigma/biodome/gunrange) "bhX" = ( /obj/structure/closet/emcloset, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/corsat/red/northwest, /area/corsat/theta/airlock/control) "bhY" = ( /obj/structure/closet/emcloset, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/corsat/theta/airlock/control) "bhZ" = ( /obj/structure/machinery/portable_atmospherics/canister/empty, -/turf/open/floor/corsat{ - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow, /area/corsat/gamma/engineering/atmos) "bia" = ( /obj/structure/closet/toolcloset, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/west, /area/corsat/gamma/engineering) "bib" = ( -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/omega/complex) "bic" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/emails{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/southwest, /area/corsat/gamma/cargo/lobby) "bid" = ( /obj/structure/pipes/standard/simple/visible{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/west, /area/corsat/gamma/engineering/atmos) "bie" = ( /obj/structure/closet/toolcloset, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner/north, /area/corsat/gamma/engineering) "bif" = ( /obj/structure/machinery/portable_atmospherics/canister/air, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/northwest, /area/corsat/gamma/engineering/atmos) "big" = ( /obj/structure/machinery/light{ @@ -21842,55 +16314,37 @@ /obj/structure/machinery/cm_vending/sorted/tech/tool_storage{ req_access_txt = "102" }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/east, /area/corsat/gamma/engineering) "bih" = ( /obj/structure/closet/secure_closet/engineering_personal{ req_access_txt = "102" }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/west, /area/corsat/gamma/engineering) "bii" = ( /obj/structure/closet/wardrobe/atmospherics_yellow, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/engineering) "bij" = ( /obj/structure/machinery/floodlight{ - name = "Floodlight"; - unacidable = 0 + name = "Floodlight" }, /turf/open/auto_turf/snow/layer3, /area/corsat/gamma/biodome) "bik" = ( /obj/structure/machinery/portable_atmospherics/canister/empty/oxygen, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/northeast, /area/corsat/gamma/engineering/atmos) "bil" = ( /obj/structure/pipes/binary/pump/high_power/on{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/west, /area/corsat/gamma/engineering/atmos) "bim" = ( /obj/structure/machinery/portable_atmospherics/canister/empty, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/southeast, /area/corsat/gamma/engineering/atmos) "bin" = ( /obj/structure/machinery/light{ @@ -21899,88 +16353,55 @@ /obj/structure/machinery/computer/general_air_control/large_tank_control{ name = "Nitrogen Control Console" }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/west, /area/corsat/gamma/engineering/atmos) "bio" = ( /obj/structure/dispenser/phoron, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/north, /area/corsat/gamma/engineering/atmos) "bip" = ( /obj/structure/dispenser/oxygen, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/north, /area/corsat/gamma/engineering/atmos) "biq" = ( /obj/structure/surface/table/almayer, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/west, /area/corsat/gamma/biodome/virology) "bir" = ( /obj/structure/bed/stool, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite/east, /area/corsat/gamma/medbay/chemistry) "bis" = ( /obj/structure/powerloader_wreckage, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/corsat/sigma/biodome/scrapyard) "biu" = ( /obj/structure/machinery/computer/crew, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite/east, /area/corsat/gamma/medbay) "biv" = ( /obj/structure/closet/crate/internals, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite/west, /area/corsat/gamma/medbay) "biw" = ( /obj/effect/alien/weeds/node, -/turf/open/floor/corsat{ - icon_state = "purple" - }, +/turf/open/floor/corsat/purple, /area/corsat/omega/hallways) "bix" = ( /obj/structure/machinery/iv_drip, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite/east, /area/corsat/gamma/medbay) "biy" = ( /obj/structure/surface/table/woodentable, /obj/item/toy/dice, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/corsat/gamma/rnr/arcade) "biz" = ( /obj/structure/pipes/vents/pump{ dir = 8; id_tag = "mining_outpost_pump" }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/omega/security) "biA" = ( /obj/structure/machinery/light{ @@ -21989,104 +16410,64 @@ /obj/structure/surface/table/almayer, /obj/item/paper_bin, /obj/item/tool/pen, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite/east, /area/corsat/gamma/medbay) "biB" = ( /obj/structure/largecrate/supply/ammo/m41a/half, -/turf/open/floor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/asteroidplating, /area/corsat/sigma/biodome/gunrange) "biC" = ( /obj/structure/pipes/trinary/mixer{ dir = 4; name = "Gas mixer N2/O2" }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/west, /area/corsat/gamma/engineering/atmos) "biE" = ( /obj/structure/machinery/medical_pod/bodyscanner, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite/north, /area/corsat/gamma/medbay) "biF" = ( /obj/structure/machinery/body_scanconsole, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite/north, /area/corsat/gamma/medbay) "biG" = ( /obj/structure/machinery/space_heater, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/north, /area/corsat/gamma/biodome/complex) "biH" = ( /obj/structure/machinery/optable, -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/gamma/medbay/surgery) "biI" = ( /obj/structure/machinery/iv_drip, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite/east, /area/corsat/gamma/medbay/surgery) "biJ" = ( /obj/structure/surface/table/almayer, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite/northeast, /area/corsat/gamma/medbay/morgue) "biK" = ( /obj/structure/largecrate/supply/medicine/blood, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite/southwest, /area/corsat/gamma/medbay) "biL" = ( /obj/structure/machinery/light, /obj/structure/surface/table/almayer, /obj/item/storage/firstaid/toxin, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "greenwhitecorner" - }, +/turf/open/floor/corsat/greenwhitecorner/west, /area/corsat/gamma/medbay) "biM" = ( /obj/structure/machinery/chem_master, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite/southeast, /area/corsat/gamma/medbay/chemistry) "biO" = ( /obj/structure/machinery/photocopier, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/corsat/gamma/biodome/complex) "biP" = ( /obj/structure/machinery/cm_vending/sorted/tech/science, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/northeast, /area/corsat/gamma/biodome/toxins) "biQ" = ( /obj/structure/machinery/smartfridge/chemistry{ @@ -22097,10 +16478,7 @@ dir = 4; network = list("gamma") }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/west, /area/corsat/gamma/biodome/toxins) "biR" = ( /obj/structure/surface/table/woodentable, @@ -22109,28 +16487,19 @@ pixel_x = 15 }, /obj/item/reagent_container/food/drinks/drinkingglass, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/corsat/gamma/rnr/bar) "biS" = ( /obj/effect/alien/weeds/node, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/omega/airlocknorth) "biT" = ( /obj/structure/machinery/constructable_frame, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/corsat/sigma/biodome/scrapyard) "biU" = ( /obj/structure/machinery/constructable_frame, -/turf/open/mars_cave{ - icon_state = "mars_cave_7" - }, +/turf/open/mars_cave/mars_cave_7, /area/corsat/sigma/biodome/scrapyard) "biV" = ( /obj/structure/surface/table/woodentable, @@ -22139,17 +16508,11 @@ pixel_x = 15 }, /obj/item/reagent_container/food/drinks/shaker, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/corsat/gamma/rnr/bar) "biW" = ( /obj/effect/alien/weeds/node, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/east, /area/corsat/omega/hallways) "biX" = ( /obj/structure/machinery/light{ @@ -22157,19 +16520,14 @@ }, /obj/structure/surface/table/almayer, /obj/item/paper_bin, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/west, /area/corsat/gamma/engineering) "biY" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, /obj/effect/alien/weeds/node, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/omega/hallways) "biZ" = ( /obj/structure/reagent_dispensers/watertank, @@ -22178,92 +16536,60 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/hydroponics) "bja" = ( /obj/structure/machinery/message_server, -/turf/open/floor/almayer{ - icon_state = "tcomms" - }, +/turf/open/floor/almayer/tcomms, /area/corsat/sigma/southeast/telecomm) "bjb" = ( /obj/structure/showcase{ icon_state = "hub"; name = "Telecommunication Hub" }, -/turf/open/floor/almayer{ - icon_state = "tcomms" - }, +/turf/open/floor/almayer/tcomms, /area/corsat/sigma/southeast/telecomm) "bjc" = ( /obj/structure/machinery/photocopier, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite/east, /area/corsat/gamma/medbay) "bjd" = ( /obj/structure/machinery/seed_extractor, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/north, /area/corsat/theta/biodome/complex) "bje" = ( /obj/structure/machinery/botany/extractor, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/north, /area/corsat/theta/biodome/complex) "bjf" = ( /obj/structure/machinery/r_n_d/bioprinter, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/northeast, /area/corsat/theta/biodome/complex) "bjg" = ( /obj/structure/machinery/vending/hydronutrients, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/northwest, /area/corsat/theta/biodome/complex) "bjh" = ( /obj/structure/machinery/biogenerator, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/northeast, /area/corsat/theta/biodome/complex) "bji" = ( /obj/structure/machinery/light{ dir = 8 }, /obj/structure/machinery/smartfridge/seeds, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/west, /area/corsat/theta/biodome/complex) "bjj" = ( /obj/structure/machinery/light{ dir = 8 }, /obj/structure/machinery/disposal, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/west, /area/corsat/gamma/hangar/flightcontrol) "bjk" = ( /obj/structure/machinery/light, -/turf/open/floor/corsat{ - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner, /area/corsat/gamma/engineering/atmos) "bjl" = ( /obj/structure/surface/table/almayer, @@ -22274,10 +16600,7 @@ pixel_y = 6; use_power = 0 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/north, /area/corsat/omega/complex) "bjm" = ( /obj/structure/bed, @@ -22292,17 +16615,11 @@ /obj/item/implanter/adrenalin, /obj/item/implanter/loyalty, /obj/item/implanter/loyalty, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/north, /area/corsat/gamma/sigmaremote) "bjp" = ( /obj/structure/machinery/r_n_d/circuit_imprinter, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/east, /area/corsat/sigma/south/engineering) "bjq" = ( /obj/structure/bed, @@ -22312,49 +16629,33 @@ /area/corsat/sigma/dorms) "bjr" = ( /obj/item/broken_device, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/corsat/sigma/biodome/scrapyard) "bjs" = ( /obj/structure/machinery/mech_bay_recharge_port, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/south/robotics) "bjt" = ( /obj/structure/machinery/mecha_part_fabricator, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/east, /area/corsat/sigma/south/robotics) "bju" = ( /obj/item/cell/crap, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/corsat/sigma/biodome/scrapyard) "bjv" = ( /obj/structure/surface/table/almayer, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/south/robotics) "bjw" = ( /obj/structure/surface/table/almayer, /obj/effect/landmark/item_pool_spawner/corsat_bio_lock, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/south/engineering) "bjx" = ( /obj/effect/alien/weeds/node, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/omega/hallways) "bjy" = ( /obj/structure/sink{ @@ -22370,9 +16671,7 @@ /obj/item/reagent_container/glass/rag{ pixel_y = 10 }, -/turf/open/floor/corsat{ - icon_state = "sterileplate" - }, +/turf/open/floor/corsat/sterileplate, /area/corsat/gamma/kitchen) "bjz" = ( /obj/structure/machinery/light{ @@ -22380,9 +16679,7 @@ }, /obj/structure/machinery/microwave, /obj/structure/surface/table/almayer, -/turf/open/floor/corsat{ - icon_state = "sterileplate" - }, +/turf/open/floor/corsat/sterileplate, /area/corsat/gamma/kitchen) "bjA" = ( /obj/item/reagent_container/food/snacks/meat/monkey, @@ -22396,9 +16693,7 @@ /obj/item/reagent_container/food/snacks/flour, /obj/item/reagent_container/food/snacks/flour, /obj/structure/closet/crate/freezer, -/turf/open/floor/corsat{ - icon_state = "cargo" - }, +/turf/open/floor/corsat/cargo, /area/corsat/gamma/freezer) "bjB" = ( /obj/structure/surface/table/almayer, @@ -22406,10 +16701,7 @@ /obj/structure/machinery/camera/autoname{ network = list("gamma") }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "bluegreycorner" - }, +/turf/open/floor/corsat/bluegreycorner/north, /area/corsat/gamma/administration) "bjC" = ( /obj/structure/surface/table/almayer, @@ -22419,9 +16711,7 @@ /obj/item/clipboard, /obj/item/paper, /obj/item/tool/pen/red, -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/gamma/administration) "bjD" = ( /obj/structure/bed/chair/wood/wings{ @@ -22434,9 +16724,7 @@ dir = 4 }, /obj/effect/alien/weeds/node, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/control) "bjG" = ( /obj/structure/closet/crate/medical, @@ -22445,52 +16733,36 @@ network = list("gamma") }, /obj/item/storage/fancy/vials/random, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite/west, /area/corsat/gamma/medbay) "bjH" = ( /obj/structure/surface/table/almayer, /obj/item/storage/firstaid/adv, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/medbay) "bjI" = ( /obj/structure/pipes/standard/simple/visible, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/west, /area/corsat/gamma/engineering/atmos) "bjJ" = ( /obj/effect/alien/weeds/node, -/turf/open/floor/corsat{ - icon_state = "red" - }, +/turf/open/floor/corsat/red, /area/corsat/omega/hallways) "bjK" = ( /obj/structure/closet/crate/trashcart, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/freezer) "bjM" = ( /obj/structure/surface/table/almayer, /obj/item/explosive/grenade/incendiary, /obj/item/explosive/grenade/incendiary, -/turf/open/floor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/asteroidplating, /area/corsat/sigma/biodome/gunrange) "bjN" = ( /obj/structure/surface/table/almayer, /obj/item/explosive/grenade/smokebomb, /obj/item/explosive/grenade/smokebomb, -/turf/open/floor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/asteroidplating, /area/corsat/sigma/biodome/gunrange) "bjO" = ( /obj/structure/surface/rack, @@ -22502,9 +16774,7 @@ }, /obj/item/weapon/gun/pistol/m4a3, /obj/item/weapon/gun/pistol/m4a3, -/turf/open/floor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/asteroidplating, /area/corsat/sigma/biodome/gunrange) "bjP" = ( /obj/structure/surface/rack, @@ -22515,9 +16785,7 @@ name = "Weapon Rack" }, /obj/item/weapon/gun/smg/mp5, -/turf/open/floor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/asteroidplating, /area/corsat/sigma/biodome/gunrange) "bjQ" = ( /obj/structure/machinery/power/apc/high{ @@ -22527,27 +16795,19 @@ }, /obj/structure/surface/table/almayer, /obj/item/device/camera, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/north, /area/corsat/omega/containment) "bjR" = ( /obj/structure/surface/table/almayer, /obj/item/ashtray/bronze, /obj/item/tool/lighter/random, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/omega/offices) "bjU" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "CORSAT Library" }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/corsat/gamma/rnr/library) "bjV" = ( /obj/structure/machinery/door/airlock/almayer/medical/glass/colony{ @@ -22557,10 +16817,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/corsat/gamma/rnr/library) "bjW" = ( /obj/structure/machinery/door/poddoor/almayer{ @@ -22568,9 +16825,7 @@ name = "Sigma Cargo Bay"; use_power = 0 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/corsat/sigma/cargo) "bjY" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ @@ -22578,9 +16833,7 @@ name = "Security Armory"; req_access_txt = "101" }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/security) "bjZ" = ( /obj/structure/machinery/door_control{ @@ -22589,10 +16842,7 @@ pixel_x = -24; use_power = 0 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/west, /area/corsat/omega/cargo) "bka" = ( /obj/structure/machinery/door/poddoor/almayer{ @@ -22601,9 +16851,7 @@ use_power = 0 }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/corsat/omega/cargo) "bkb" = ( /obj/structure/machinery/door/poddoor/almayer{ @@ -22611,25 +16859,19 @@ name = "Omega Cargo Bay"; use_power = 0 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/corsat/omega/cargo) "bkc" = ( /obj/structure/bed/chair/office/light{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/airlock/south/id) "bkd" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "Research Complex Theta" }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/theta/biodome/complex) "bke" = ( /obj/structure/machinery/light{ @@ -22650,10 +16892,7 @@ pixel_y = 24; use_power = 0 }, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/northeast, /area/corsat/gamma/sigmaremote) "bki" = ( /obj/structure/machinery/door/poddoor/almayer{ @@ -22662,9 +16901,7 @@ name = "Gate Shutters"; use_power = 0 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/corsat/gamma/sigmaremote) "bko" = ( /obj/structure/machinery/door/airlock/almayer/research/glass/colony{ @@ -22673,18 +16910,14 @@ req_one_access_txt = "101" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/theta/biodome/hydroeast) "bkp" = ( /obj/structure/machinery/door/airlock/almayer/research/glass/colony{ name = "Research Complex"; req_one_access_txt = "101" }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/theta/biodome/complex) "bkq" = ( /obj/structure/surface/rack{ @@ -22692,10 +16925,7 @@ unacidable = 1 }, /obj/item/weed_extract, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/northeast, /area/corsat/omega/complex) "bkr" = ( /obj/structure/machinery/door/airlock/almayer/research/glass/colony{ @@ -22705,36 +16935,27 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/sigmaremote) "bks" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/computer/station_alert{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/corsat/red/northeast, /area/corsat/gamma/hangar/monorail/control) "bku" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/comdoor{ name = "Hangar Office" }, -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/gamma/hangar/office) "bkv" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/comdoor{ name = "Flight Control" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/gamma/hangar/flightcontrol) "bkx" = ( /obj/structure/machinery/door/poddoor/almayer/open{ @@ -22742,9 +16963,7 @@ name = "Hangar Lockdown"; use_power = 0 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/corsat/gamma/hangar/cargo) "bky" = ( /obj/structure/window/framed/corsat/hull, @@ -22756,9 +16975,7 @@ name = "Gamma Cargo Checkpoint"; use_power = 0 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/corsat/gamma/hangar/cargo) "bkB" = ( /obj/structure/machinery/door/poddoor/almayer/open{ @@ -22767,9 +16984,7 @@ name = "Gamma Cargo Checkpoint"; use_power = 0 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/corsat/gamma/hangar/cargo) "bkC" = ( /obj/structure/surface/table/reinforced, @@ -22778,10 +16993,7 @@ name = "Security Shutters"; use_power = 0 }, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/corsat/red/northwest, /area/corsat/sigma/checkpoint) "bkD" = ( /obj/structure/surface/table/reinforced, @@ -22790,10 +17002,7 @@ name = "Security Shutters"; use_power = 0 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/west, /area/corsat/sigma/airlock/south/id) "bkE" = ( /obj/structure/window/framed/corsat/security, @@ -22818,9 +17027,7 @@ id = "SigmaIDSC"; name = "Security Shutters" }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/airlock/south/id) "bkJ" = ( /obj/structure/window/framed/corsat/security, @@ -22838,16 +17045,11 @@ pixel_x = -24; use_power = 0 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/north, /area/corsat/sigma/south/security) "bkL" = ( /obj/structure/bed/chair/comfy/black, -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/gamma/administration) "bkM" = ( /obj/structure/window/framed/corsat/security, @@ -22870,18 +17072,14 @@ name = "Privacy Shutters" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/security) "bkO" = ( /obj/structure/machinery/door/poddoor/two_tile/four_tile/open{ id = "OmegaO"; name = "Omega Lockdown" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/corsat/omega/biodome) "bkP" = ( /obj/structure/window/framed/corsat/cell/security, @@ -22894,10 +17092,7 @@ /obj/structure/machinery/camera/autoname{ network = list("omega") }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/north, /area/corsat/omega/containment) "bkS" = ( /obj/structure/machinery/light{ @@ -22906,10 +17101,7 @@ /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "purple" - }, +/turf/open/floor/corsat/purple/west, /area/corsat/omega/complex) "bkT" = ( /obj/structure/closet/crate/science{ @@ -22918,9 +17110,7 @@ opened = 1 }, /obj/item/organ/lungs, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/omega/complex) "bkU" = ( /obj/structure/closet/crate/science{ @@ -22929,24 +17119,17 @@ opened = 1 }, /obj/item/organ/heart, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/omega/complex) "bkV" = ( /obj/structure/surface/table/almayer, /obj/item/clipboard, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/north, /area/corsat/omega/containment) "bkW" = ( /obj/structure/surface/table/almayer, /obj/item/tool/stamp/ce, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/engineering) "bkX" = ( /obj/structure/surface/table/almayer, @@ -22955,9 +17138,7 @@ /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/engineering) "bkY" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony{ @@ -22967,9 +17148,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/engineering) "bkZ" = ( /obj/structure/machinery/door/poddoor/almayer/open{ @@ -22978,25 +17157,19 @@ name = "Omega Lockdown"; use_power = 0 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/omega/complex) "blb" = ( /obj/structure/janitorialcart, /obj/item/tool/mop, /obj/structure/machinery/light, -/turf/open/floor/corsat{ - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner, /area/corsat/gamma/engineering) "blc" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/toolbox, /obj/structure/machinery/light, -/turf/open/floor/corsat{ - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow, /area/corsat/gamma/engineering) "bld" = ( /obj/structure/target/syndicate, @@ -23008,40 +17181,29 @@ desc = "A rectangular steel crate containing firing targets."; name = "target crate" }, -/turf/open/floor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/asteroidplating, /area/corsat/sigma/biodome/gunrange) "blg" = ( /obj/structure/surface/table/almayer, /obj/item/explosive/grenade/flashbang, /obj/item/explosive/grenade/flashbang, -/turf/open/floor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/asteroidplating, /area/corsat/sigma/biodome/gunrange) "blh" = ( /obj/structure/surface/table/almayer, /obj/item/explosive/grenade/high_explosive/training, -/turf/open/floor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/asteroidplating, /area/corsat/sigma/biodome/gunrange) "blj" = ( /obj/structure/machinery/pipedispenser, /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/north, /area/corsat/gamma/engineering) "blk" = ( /obj/structure/largecrate/random, -/turf/open/floor/corsat{ - icon_state = "cargo" - }, +/turf/open/floor/corsat/cargo, /area/corsat/sigma/cargo) "bll" = ( /obj/structure/surface/table/almayer, @@ -23049,76 +17211,47 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/north, /area/corsat/gamma/engineering) "blm" = ( /obj/structure/closet/wardrobe/chemistry_white, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite/north, /area/corsat/gamma/medbay/chemistry) "bln" = ( /obj/structure/machinery/door/airlock/dropship_hatch/monorail{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/hangar/monorail) "blo" = ( -/turf/open/floor/corsat{ - icon_state = "darkgreen" - }, +/turf/open/floor/corsat/darkgreen, /area/corsat/gamma/hangar/monorail) "blp" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/north, /area/corsat/gamma/hangar/monorail) "blr" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "darkgreen" - }, +/turf/open/floor/corsat/darkgreen/north, /area/corsat/gamma/hangar/monorail) "bls" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "darkgreencorner" - }, +/turf/open/floor/corsat/darkgreencorner/north, /area/corsat/gamma/hangar/monorail) "blt" = ( -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/hangar/monorail) "bly" = ( -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/hangar/monorail) "blz" = ( /obj/structure/machinery/light, /obj/structure/closet/emcloset, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "darkgreencorner" - }, +/turf/open/floor/corsat/darkgreencorner/west, /area/corsat/gamma/hangar/monorail) "blA" = ( /obj/structure/machinery/disposal, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/gamma/security) "blB" = ( /turf/closed/wall/r_wall/biodome, @@ -23126,9 +17259,7 @@ "blC" = ( /obj/structure/surface/rack, /obj/item/device/flashlight, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/hangar) "blD" = ( /obj/structure/machinery/door/poddoor/almayer/open{ @@ -23137,23 +17268,16 @@ name = "Hangar Lockdown"; use_power = 0 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/corsat/gamma/hangar) "blF" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/hangar/arrivals) "blG" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "darkgreen" - }, +/turf/open/floor/corsat/darkgreen/west, /area/corsat/gamma/hangar) "blH" = ( /obj/structure/machinery/light{ @@ -23161,24 +17285,17 @@ }, /obj/structure/surface/rack, /obj/effect/spawner/random/toolbox, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/hangar) "blI" = ( /obj/structure/machinery/camera/autoname{ network = list("gamma") }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "darkgreen" - }, +/turf/open/floor/corsat/darkgreen/north, /area/corsat/gamma/hangar) "blJ" = ( /obj/structure/machinery/light, -/turf/open/floor/corsat{ - icon_state = "red" - }, +/turf/open/floor/corsat/red, /area/corsat/gamma/hangar) "blK" = ( /turf/closed/wall/biodome, @@ -23190,9 +17307,7 @@ req_access_txt = "101" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/hangar/cargo) "blM" = ( /turf/closed/wall/r_wall/biodome, @@ -23207,10 +17322,7 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/gamma/hangar/cargo) "blP" = ( /obj/structure/machinery/power/apc/hyper{ @@ -23218,32 +17330,21 @@ pixel_x = 24; start_charge = 0 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/east, /area/corsat/gamma/hangar/arrivals) "blQ" = ( /obj/structure/surface/table/almayer, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/east, /area/corsat/gamma/hangar/office) "blS" = ( /obj/structure/closet/toolcloset, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/west, /area/corsat/sigma/hangar/monorail/control) "blT" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/gamma/hangar/flightcontrol) "blU" = ( /obj/structure/monorail, @@ -23269,10 +17370,7 @@ /area/space) "blZ" = ( /obj/structure/closet/secure_closet/engineering_electrical, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/west, /area/corsat/gamma/hangar/monorail/control) "bma" = ( /obj/structure/machinery/power/apc/high{ @@ -23280,46 +17378,29 @@ pixel_x = -24; start_charge = 0 }, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/northwest, /area/corsat/sigma/hangar/monorail/control) "bmb" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/corsat/sigma/hangar/monorail/control) "bmc" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "darkgreen" - }, +/turf/open/floor/corsat/darkgreen/west, /area/corsat/sigma/hangar) "bmd" = ( /obj/structure/machinery/light{ dir = 8 }, /obj/structure/machinery/recharge_station, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "darkgreen" - }, +/turf/open/floor/corsat/darkgreen/northwest, /area/corsat/sigma/hangar) "bme" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "darkgreen" - }, +/turf/open/floor/corsat/darkgreen/north, /area/corsat/sigma/hangar) "bmh" = ( -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/hangar/monorail/control) "bmi" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ @@ -23331,9 +17412,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/omega/complex) "bmj" = ( /obj/structure/window/framed/corsat/hull, @@ -23343,50 +17422,33 @@ /obj/structure/machinery/door/airlock/dropship_hatch/monorail{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/sigma/hangar/monorail) "bml" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, /obj/structure/bed/sofa/vert/grey/top, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/hangar/monorail) "bmm" = ( /obj/structure/window/framed/corsat/security, /turf/open/floor/plating, /area/corsat/sigma/hangar/monorail/control) "bmn" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "darkgreencorner" - }, +/turf/open/floor/corsat/darkgreencorner/east, /area/corsat/sigma/hangar/monorail) "bmo" = ( -/turf/open/floor/corsat{ - dir = 9; - icon_state = "darkgreen" - }, +/turf/open/floor/corsat/darkgreen/northwest, /area/corsat/sigma/hangar/monorail) "bmp" = ( -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/sigma/hangar/monorail) "bmq" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/north, /area/corsat/sigma/hangar/monorail) "bmr" = ( -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/hangar/monorail) "bms" = ( /obj/structure/machinery/door/poddoor/almayer/open{ @@ -23394,17 +17456,12 @@ name = "Hangar Lockdown"; use_power = 0 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/corsat/sigma/hangar/monorail) "bmu" = ( /obj/structure/surface/table/reinforced, /obj/item/storage/fancy/cigarettes/lucky_strikes, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/gamma/hangar/monorail/control) "bmv" = ( /obj/structure/monorail, @@ -23416,33 +17473,22 @@ dir = 4 }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/hangar/monorail/control) "bmx" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "darkgreencorner" - }, +/turf/open/floor/corsat/darkgreencorner/north, /area/corsat/sigma/hangar/monorail) "bmz" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/east, /area/corsat/sigma/hangar/monorail) "bmA" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "darkgreencorner" - }, +/turf/open/floor/corsat/darkgreencorner/west, /area/corsat/sigma/hangar/monorail) "bmB" = ( /obj/structure/monorail{ @@ -23472,17 +17518,13 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/gamma/hangar/flightcontrol) "bmI" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/hangar/arrivals) "bmJ" = ( /obj/structure/machinery/door/airlock/almayer/command/colony{ @@ -23491,40 +17533,28 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/gamma/hangar/office) "bmL" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/gamma/hangar/flightcontrol) "bmM" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/west, /area/corsat/gamma/hangar/office) "bmN" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/hangar/arrivals) "bmO" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/gamma/hangar/arrivals) "bmS" = ( /obj/structure/window/framed/corsat, @@ -23545,9 +17575,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/omega/complex) "bmW" = ( /obj/structure/machinery/door/poddoor/two_tile/four_tile{ @@ -23555,20 +17583,14 @@ name = "Gamma Checkpoint"; unacidable = 1 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/corsat/gamma/hangar/checkpoint) "bmX" = ( -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/corsat/gamma/hangar/checkpoint) "bmY" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/corsat/gamma/hangar/checkpoint) "bmZ" = ( /obj/structure/window/framed/corsat/hull/security, @@ -23579,29 +17601,20 @@ dir = 4 }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/hangar/arrivals) "bnb" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner, /area/corsat/gamma/hangar/arrivals) "bnd" = ( /obj/structure/fence, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/hangar/arrivals) "bne" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/gamma/hangar/monorail/control) "bnf" = ( /obj/structure/sign/safety/fridge, @@ -23613,17 +17626,12 @@ /obj/item/storage/bag/trash, /obj/item/storage/bag/trash, /obj/item/storage/bag/trash, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/southwest, /area/corsat/gamma/residential/maint) "bnj" = ( /obj/structure/machinery/cryo_cell, /obj/structure/pipes/standard/cap/hidden, -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/gamma/medbay) "bnk" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony{ @@ -23632,9 +17640,7 @@ req_access_txt = "103"; req_one_access = null }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/omega/complex) "bnl" = ( /obj/structure/sign/safety/high_voltage, @@ -23646,15 +17652,10 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner/north, /area/corsat/gamma/cargo) "bnn" = ( -/turf/open/floor/corsat{ - icon_state = "darkgreen" - }, +/turf/open/floor/corsat/darkgreen, /area/corsat/gamma/hallwaysouth) "bno" = ( /obj/structure/sign/safety/airlock{ @@ -23667,19 +17668,13 @@ /area/corsat/gamma/biodome) "bnp" = ( /obj/structure/reagent_dispensers/water_cooler, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/northwest, /area/corsat/gamma/canteen) "bnq" = ( /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/gamma/canteen) "bnr" = ( /obj/structure/sign/safety/galley, @@ -23687,10 +17682,7 @@ /area/corsat/gamma/canteen) "bns" = ( /obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/west, /area/corsat/gamma/engineering) "bnw" = ( /obj/structure/sign/safety/airlock, @@ -23698,24 +17690,18 @@ /area/corsat/sigma/hangar/monorail) "bnx" = ( /obj/structure/surface/table, -/turf/open/floor/corsat{ - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan, /area/corsat/gamma/canteen) "bny" = ( /obj/structure/machinery/light, -/turf/open/floor/corsat{ - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan, /area/corsat/gamma/canteen) "bnz" = ( /obj/structure/sign/safety/biohazard, /obj/structure/surface/table/almayer, /obj/structure/machinery/reagentgrinder, /obj/item/stack/sheet/mineral/phoron/small_stack, -/turf/open/floor/corsat{ - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite, /area/corsat/gamma/biodome/virology) "bnA" = ( /obj/structure/surface/rack{ @@ -23723,30 +17709,19 @@ unacidable = 1 }, /obj/item/xenos_claw, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purplewhitecorner" - }, +/turf/open/floor/corsat/purplewhitecorner/east, /area/corsat/omega/complex) "bnB" = ( /obj/structure/machinery/vending/snack, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/northeast, /area/corsat/gamma/biodome/virology) "bnC" = ( /obj/structure/sign/safety/biohazard, -/turf/open/floor/corsat{ - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite, /area/corsat/gamma/biodome/virology) "bnD" = ( /obj/structure/machinery/space_heater, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/southwest, /area/corsat/gamma/biodome/virology) "bnE" = ( /obj/structure/machinery/light{ @@ -23756,16 +17731,11 @@ /obj/structure/machinery/computer/general_air_control/large_tank_control{ name = "Oxygen Supply Console" }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/west, /area/corsat/gamma/engineering/atmos) "bnF" = ( /obj/structure/pipes/standard/tank/oxygen, -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/gamma/medbay) "bnH" = ( /obj/structure/sign/safety/biohazard, @@ -23774,10 +17744,7 @@ "bnI" = ( /obj/structure/sign/safety/biohazard, /obj/structure/machinery/space_heater, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/west, /area/corsat/gamma/biodome/virology) "bnJ" = ( /obj/structure/sign/nosmoking_1, @@ -23797,9 +17764,7 @@ /area/corsat/gamma/medbay) "bnN" = ( /obj/structure/reagent_dispensers/water_cooler, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/biodome/complex) "bnO" = ( /obj/structure/sign/safety/medical, @@ -23813,17 +17778,13 @@ /obj/structure/sign/safety/chem_lab{ pixel_y = -30 }, -/turf/open/floor/corsat{ - icon_state = "greenwhitecorner" - }, +/turf/open/floor/corsat/greenwhitecorner, /area/corsat/gamma/medbay) "bnR" = ( /obj/structure/sign/safety/airlock{ pixel_y = 32 }, -/turf/open/floor/corsat{ - icon_state = "gamma" - }, +/turf/open/floor/corsat/gamma, /area/corsat/gamma/airlock/control) "bnU" = ( /obj/structure/sign/safety/airlock, @@ -23833,18 +17794,13 @@ /obj/structure/sign/safety/airlock{ pixel_y = 32 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/sigma/hangar/id) "bnW" = ( /obj/structure/sign/safety/airlock{ pixel_x = 32 }, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/corsat/sigma/biodome) "bnY" = ( /obj/structure/safe, @@ -23856,9 +17812,7 @@ /area/corsat/sigma/hangar/id) "boc" = ( /obj/structure/machinery/light, -/turf/open/floor/corsat{ - icon_state = "brown" - }, +/turf/open/floor/corsat/brown, /area/corsat/sigma/north) "boe" = ( /obj/structure/sign/safety/airlock, @@ -23872,28 +17826,19 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/north, /area/corsat/sigma/cargo) "boh" = ( /obj/structure/cargo_container/grant/left, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/corsat/sigma/biodome/scrapyard) "boi" = ( /obj/structure/cargo_container/grant/rightmid, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/corsat/sigma/biodome/scrapyard) "boj" = ( /obj/structure/cargo_container/grant/right, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/corsat/sigma/biodome/scrapyard) "bon" = ( /obj/structure/fence, @@ -23906,18 +17851,13 @@ /obj/structure/sign/safety/airlock{ pixel_y = -32 }, -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/west, /area/corsat/sigma/biodome) "bop" = ( /obj/structure/sign/safety/airlock{ pixel_x = -32 }, -/turf/open/floor/corsat{ - icon_state = "theta" - }, +/turf/open/floor/corsat/theta, /area/corsat/theta/airlock/control) "boq" = ( /obj/structure/sign/safety/storage, @@ -23935,9 +17875,7 @@ /obj/structure/sign/safety/storage{ pixel_y = 32 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/omega/hallways) "bow" = ( /obj/structure/sign/safety/airlock, @@ -23961,9 +17899,7 @@ /obj/structure/sign/safety/airlock{ pixel_x = 32 }, -/turf/open/floor/corsat{ - icon_state = "omega" - }, +/turf/open/floor/corsat/omega, /area/corsat/omega/hallways) "boB" = ( /obj/structure/sign/safety/airlock{ @@ -23976,44 +17912,31 @@ /area/corsat/theta/biodome) "boD" = ( /obj/structure/machinery/disposal, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/gamma/security) "boE" = ( /obj/structure/sign/safety/biolab{ pixel_y = 32 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/north, /area/corsat/theta/biodome/hydrowest) "boF" = ( /obj/structure/sign/safety/biolab{ pixel_y = 32 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/north, /area/corsat/theta/biodome/hydroeast) "boG" = ( /obj/structure/sign/safety/biolab{ pixel_y = -32 }, -/turf/open/floor/corsat{ - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite, /area/corsat/theta/biodome/hydrowest) "boH" = ( /obj/structure/sign/safety/biolab{ pixel_y = -32 }, -/turf/open/floor/corsat{ - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite, /area/corsat/theta/biodome/hydroeast) "boJ" = ( /obj/structure/sign/safety/airlock, @@ -24025,22 +17948,14 @@ pixel_x = -24; start_charge = 0 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/omega/hangar) "boL" = ( /obj/structure/machinery/vending/cigarette/colony, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner/east, /area/corsat/gamma/cargo) "boM" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner/west, /area/corsat/gamma/cargo/lobby) "boN" = ( /obj/structure/surface/table/almayer, @@ -24051,129 +17966,90 @@ dir = 8 }, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "greenwhitecorner" - }, +/turf/open/floor/corsat/greenwhitecorner/north, /area/corsat/gamma/medbay) "boP" = ( /obj/structure/machinery/vending/snack, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/north, /area/corsat/gamma/cargo) "boQ" = ( /obj/vehicle/train/cargo/engine{ dir = 2 }, -/turf/open/floor/corsat{ - icon_state = "arrow_west" - }, +/turf/open/floor/corsat/arrow_west, /area/corsat/sigma/cargo) "boR" = ( /obj/vehicle/train/cargo/trolley, -/turf/open/floor/corsat{ - icon_state = "cargo" - }, +/turf/open/floor/corsat/cargo, /area/corsat/sigma/cargo) "boT" = ( /obj/structure/machinery/disposal, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/corsat/red/northeast, /area/corsat/gamma/hangar/cargo) "boU" = ( /obj/structure/machinery/light{ dir = 4 }, /obj/structure/machinery/vending/coffee, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/northeast, /area/corsat/gamma/cargo) "boV" = ( /obj/structure/surface/table/almayer, /obj/item/trash/chips, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/cargo) "boW" = ( /obj/item/bananapeel, /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/gamma/canteen) "boX" = ( /obj/structure/surface/rack, -/turf/open/floor/corsat{ - icon_state = "cargo" - }, +/turf/open/floor/corsat/cargo, /area/corsat/gamma/freezer) "boY" = ( /obj/structure/surface/rack, /obj/item/reagent_container/food/condiment/sugar, /obj/item/reagent_container/food/condiment/sugar, /obj/item/reagent_container/food/condiment/sugar, -/turf/open/floor/corsat{ - icon_state = "cargo" - }, +/turf/open/floor/corsat/cargo, /area/corsat/gamma/freezer) "bpa" = ( /obj/structure/machinery/computer/arcade, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/corsat/gamma/rnr/arcade) "bpb" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_21" }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplecorner" - }, +/turf/open/floor/corsat/purplecorner/north, /area/corsat/gamma/residential) "bpd" = ( /obj/structure/surface/rack, /obj/item/reagent_container/food/condiment/enzyme, /obj/item/reagent_container/food/condiment/enzyme, /obj/item/reagent_container/food/condiment/enzyme, -/turf/open/floor/corsat{ - icon_state = "cargo" - }, +/turf/open/floor/corsat/cargo, /area/corsat/gamma/freezer) "bpe" = ( /obj/structure/machinery/disposal, -/turf/open/floor/corsat{ - icon_state = "white" - }, +/turf/open/floor/corsat/white, /area/corsat/gamma/residential/east) "bph" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/gm/river/desert/shallow{ - name = "pool" - }, +/turf/open/gm/river/desert/shallow/pool, /area/corsat/gamma/residential/showers) "bpi" = ( /obj/structure/machinery/light{ dir = 8 }, /obj/structure/closet/secure_closet/freezer/fridge, -/turf/open/floor/corsat{ - icon_state = "cargo" - }, +/turf/open/floor/corsat/cargo, /area/corsat/gamma/freezer) "bpj" = ( /obj/structure/surface/rack, @@ -24182,23 +18058,16 @@ /obj/item/reagent_container/food/snacks/chocolatebar, /obj/item/reagent_container/food/snacks/chocolatebar, /obj/item/reagent_container/food/snacks/chocolatebar, -/turf/open/floor/corsat{ - icon_state = "cargo" - }, +/turf/open/floor/corsat/cargo, /area/corsat/gamma/freezer) "bpl" = ( /obj/structure/machinery/disposal, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/hydroponics) "bpn" = ( /obj/structure/surface/table/almayer, /obj/item/light_bulb/tube/large, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/east, /area/corsat/gamma/engineering) "bpq" = ( /obj/structure/surface/table/almayer, @@ -24206,71 +18075,49 @@ /obj/item/paper, /obj/item/tool/pen, /obj/item/tool/stamp/cmo, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite/west, /area/corsat/gamma/medbay) "bpr" = ( /obj/structure/machinery/disposal, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "darkgreen" - }, +/turf/open/floor/corsat/darkgreen/southeast, /area/corsat/gamma/rnr) "bps" = ( /obj/structure/machinery/disposal, /obj/structure/machinery/light, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/hangar/monorail) "bpt" = ( /obj/structure/closet/secure_closet/freezer/meat, -/turf/open/floor/corsat{ - icon_state = "sterileplate" - }, +/turf/open/floor/corsat/sterileplate, /area/corsat/gamma/kitchen) "bpv" = ( /obj/structure/bed/chair/comfy/black{ dir = 4 }, /obj/structure/pipes/vents/pump, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/hangar/monorail/control) "bpz" = ( /obj/structure/machinery/botany/editor, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/west, /area/corsat/theta/biodome/complex) "bpA" = ( /obj/item/tool/minihoe, /obj/structure/surface/table/almayer, /obj/item/reagent_container/glass/bucket, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/hydroponics) "bpB" = ( /obj/structure/machinery/light{ dir = 8 }, /obj/structure/closet/wardrobe/science_white, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/west, /area/corsat/omega/complex) "bpC" = ( /obj/structure/surface/table/almayer, /obj/item/book/manual/chef_recipes, -/turf/open/floor/corsat{ - icon_state = "sterileplate" - }, +/turf/open/floor/corsat/sterileplate, /area/corsat/gamma/kitchen) "bpD" = ( /obj/structure/surface/table/almayer, @@ -24279,9 +18126,7 @@ }, /obj/item/tool/kitchen/tray, /obj/item/tool/kitchen/knife, -/turf/open/floor/corsat{ - icon_state = "sterileplate" - }, +/turf/open/floor/corsat/sterileplate, /area/corsat/gamma/kitchen) "bpE" = ( /obj/structure/surface/table/almayer, @@ -24291,103 +18136,69 @@ dir = 1 }, /obj/item/tool/kitchen/rollingpin, -/turf/open/floor/corsat{ - icon_state = "sterileplate" - }, +/turf/open/floor/corsat/sterileplate, /area/corsat/gamma/kitchen) "bpF" = ( /obj/structure/machinery/disposal, -/turf/open/floor/corsat{ - icon_state = "sterileplate" - }, +/turf/open/floor/corsat/sterileplate, /area/corsat/gamma/kitchen) "bpG" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/microwave, -/turf/open/floor/corsat{ - icon_state = "sterileplate" - }, +/turf/open/floor/corsat/sterileplate, /area/corsat/gamma/kitchen) "bpH" = ( /obj/structure/machinery/meter, /obj/structure/pipes/standard/simple/visible{ dir = 9 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/west, /area/corsat/gamma/engineering/atmos) "bpK" = ( /obj/structure/surface/table, /obj/item/storage/donut_box, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/gamma/canteen) "bpL" = ( /obj/structure/machinery/light, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/southeast, /area/corsat/gamma/engineering/atmos) "bpM" = ( /obj/structure/surface/rack, /obj/item/device/transfer_valve, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/north, /area/corsat/gamma/engineering) "bpN" = ( /obj/structure/surface/rack, /obj/item/device/flashlight, /obj/item/device/flashlight, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/north, /area/corsat/gamma/engineering) "bpO" = ( /obj/structure/machinery/disposal, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/southwest, /area/corsat/gamma/canteen) "bpP" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/toolbox, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/hangar) "bpR" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/emails{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey, /area/corsat/gamma/hangar/flightcontrol) "bpS" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "darkgreencorner" - }, +/turf/open/floor/corsat/darkgreencorner/west, /area/corsat/sigma/north) "bpT" = ( /obj/structure/surface/table/almayer, /obj/item/tool/surgery/scalpel, /obj/item/tool/surgery/retractor, /obj/item/tool/surgery/circular_saw, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "greenwhitecorner" - }, +/turf/open/floor/corsat/greenwhitecorner/east, /area/corsat/gamma/medbay/morgue) "bpU" = ( /obj/structure/barricade/handrail{ @@ -24400,100 +18211,65 @@ /area/corsat/gamma/residential/east) "bpW" = ( /obj/structure/machinery/medical_pod/bodyscanner, -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/gamma/medbay) "bpX" = ( /obj/structure/machinery/disposal, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite/north, /area/corsat/gamma/medbay) "bqa" = ( /obj/structure/pipes/standard/manifold/visible, -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/gamma/medbay) "bqb" = ( /obj/structure/pipes/standard/simple/visible{ dir = 9 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite/west, /area/corsat/gamma/medbay) "bqd" = ( /obj/structure/machinery/disposal, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purple" - }, +/turf/open/floor/corsat/purple/north, /area/corsat/gamma/biodome/complex) "bqe" = ( /obj/structure/machinery/disposal, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/northeast, /area/corsat/gamma/biodome/complex) "bqf" = ( /obj/structure/machinery/body_scanconsole, -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/gamma/medbay) "bqg" = ( /obj/structure/machinery/disposal, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite/northeast, /area/corsat/gamma/medbay/chemistry) "bqh" = ( /obj/structure/reagent_dispensers/water_cooler, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite/north, /area/corsat/gamma/medbay/lobby) "bqi" = ( /obj/item/cell/super/empty, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/corsat/sigma/biodome/scrapyard) "bqj" = ( /obj/structure/surface/table/almayer, /obj/item/storage/firstaid/fire, -/turf/open/floor/corsat{ - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite, /area/corsat/gamma/medbay) "bqk" = ( /obj/structure/surface/table/almayer, /obj/item/storage/firstaid/regular, -/turf/open/floor/corsat{ - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite, /area/corsat/gamma/medbay) "bqm" = ( /obj/structure/closet/secure_closet/medical2{ req_access_txt = "100" }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite/north, /area/corsat/gamma/medbay) "bqn" = ( /obj/structure/machinery/disposal, -/turf/open/floor/corsat{ - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite, /area/corsat/gamma/medbay/lobby) "bqo" = ( /obj/structure/pipes/vents/pump/siphon/on{ @@ -24510,10 +18286,7 @@ /area/corsat/inaccessible) "bqq" = ( /obj/structure/bed/chair/comfy/orange, -/turf/open/floor{ - dir = 8; - icon_state = "carpet14-10" - }, +/turf/open/floor/carpet14_10/west, /area/corsat/gamma/administration) "bqr" = ( /obj/structure/machinery/door/poddoor/shutters/almayer/open{ @@ -24528,16 +18301,11 @@ dir = 1 }, /obj/structure/machinery/disposal, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/north, /area/corsat/gamma/hallwaysouth) "bqw" = ( /obj/structure/machinery/disposal, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/gamma/administration) "bqx" = ( /obj/structure/surface/table/almayer, @@ -24545,49 +18313,35 @@ dir = 4 }, /obj/item/storage/donut_box, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/gamma/hangar/flightcontrol) "bqy" = ( /obj/structure/surface/table/almayer, /obj/structure/window/reinforced{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/gamma/administration) "bqz" = ( /obj/structure/machinery/disposal, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/north, /area/corsat/gamma/administration) "bqA" = ( /obj/structure/bed/chair/office/light{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/southwest, /area/corsat/gamma/administration) "bqC" = ( /obj/structure/surface/table/almayer, /obj/item/device/flashlight/lamp, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/gamma/hangar/flightcontrol) "bqD" = ( /obj/structure/bed/chair/office/light{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey, /area/corsat/gamma/administration) "bqE" = ( /obj/structure/surface/table/almayer, @@ -24598,18 +18352,13 @@ /obj/structure/machinery/computer/emails{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey, /area/corsat/gamma/hangar/flightcontrol) "bqG" = ( /obj/structure/pipes/binary/pump/on{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner/east, /area/corsat/theta/airlock/control) "bqI" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony{ @@ -24617,91 +18366,59 @@ name = "Maintainance"; req_one_access = null }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/theta/airlock/west/id) "bqJ" = ( -/turf/open/floor/corsat{ - icon_state = "brown" - }, +/turf/open/floor/corsat/brown, /area/corsat/gamma/cargo) "bqK" = ( /obj/structure/surface/table/almayer, /obj/item/folder/black_random, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/cargo) "bqL" = ( /obj/structure/machinery/disposal, -/turf/open/floor/corsat{ - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow, /area/corsat/gamma/engineering) "bqM" = ( /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/cargo) "bqO" = ( /obj/structure/bed/chair/comfy, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "darkgreen" - }, +/turf/open/floor/corsat/darkgreen/north, /area/corsat/sigma/hangar/monorail) "bqR" = ( /obj/structure/bed/chair/comfy{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "darkgreencorner" - }, +/turf/open/floor/corsat/darkgreencorner, /area/corsat/sigma/hangar/monorail) "bqS" = ( /obj/structure/bed/chair/comfy{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "darkgreen" - }, +/turf/open/floor/corsat/darkgreen, /area/corsat/sigma/hangar/monorail) "bqU" = ( /obj/structure/flora/pottedplant, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/west, /area/corsat/sigma/hangar/office) "bqV" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "bluegreycorner" - }, +/turf/open/floor/corsat/bluegreycorner/east, /area/corsat/sigma/hangar/office) "bqW" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/west, /area/corsat/sigma/hangar/office) "bqY" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/east, /area/corsat/sigma/hangar/office) "bqZ" = ( /obj/structure/machinery/disposal, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner/east, /area/corsat/gamma/engineering) "brd" = ( /obj/structure/bed/chair{ @@ -24711,10 +18428,7 @@ dir = 8; network = list("gamma") }, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/corsat/red/southeast, /area/corsat/gamma/security/cells) "brf" = ( /obj/structure/pipes/vents/pump{ @@ -24724,38 +18438,24 @@ dir = 8; network = list("gamma") }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "white" - }, +/turf/open/floor/corsat/white/east, /area/corsat/gamma/residential) "brg" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/emails, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/sigma/southeast/dataoffice) "brj" = ( /obj/structure/reagent_dispensers/water_cooler, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/west, /area/corsat/sigma/hangar/office) "brm" = ( /obj/structure/machinery/vending/coffee, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/north, /area/corsat/gamma/biodome/complex) "brn" = ( /obj/structure/machinery/vending/snack, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/north, /area/corsat/gamma/biodome/complex) "bro" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -24765,24 +18465,18 @@ /area/corsat/gamma/biodome) "brq" = ( /obj/structure/machinery/vending/coffee, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/gamma/administration) "brr" = ( /obj/structure/machinery/light{ dir = 1 }, /obj/structure/machinery/disposal, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/north) "brs" = ( /obj/structure/machinery/disposal, -/turf/open/floor/corsat{ - icon_state = "brown" - }, +/turf/open/floor/corsat/brown, /area/corsat/sigma/cargo) "brt" = ( /obj/structure/machinery/disposal, @@ -24790,48 +18484,33 @@ /area/corsat/sigma/cafe) "bru" = ( /obj/structure/machinery/vending/coffee, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/sigma/dorms) "brw" = ( /obj/structure/surface/table/almayer, /obj/item/paper_bin, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/omega/offices) "brx" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/emails{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/omega/offices) "bry" = ( /obj/structure/bed/chair/office/light{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/omega/offices) "brz" = ( /obj/structure/machinery/disposal, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/corsat/red/northwest, /area/corsat/omega/checkpoint) "brB" = ( /obj/structure/bed/chair/comfy/beige, -/turf/open/floor{ - dir = 8; - icon_state = "carpet14-10" - }, +/turf/open/floor/carpet14_10/west, /area/corsat/omega/offices) "brD" = ( /obj/structure/surface/table/almayer, @@ -24841,15 +18520,11 @@ }, /obj/structure/window/reinforced, /obj/item/tool/lighter/random, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/omega/offices) "brE" = ( /obj/structure/surface/table/almayer, -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/omega/offices) "brF" = ( /obj/structure/flora/pottedplant{ @@ -24858,147 +18533,99 @@ /obj/structure/barricade/handrail{ layer = 3 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/south) "brI" = ( /obj/structure/machinery/disposal, -/turf/open/floor/corsat{ - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey, /area/corsat/omega/offices) "brN" = ( /obj/structure/machinery/disposal, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/corsat/red/southwest, /area/corsat/omega/security) "brO" = ( /obj/structure/bed/chair/office/light{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/omega/offices) "brP" = ( /obj/structure/bed/chair/office/light{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/omega/offices) "brQ" = ( /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/cargo) "brR" = ( /obj/structure/machinery/vending/coffee, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/north, /area/corsat/omega/offices) "brT" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/west, /area/corsat/omega/offices) "brU" = ( /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/omega/offices) "brX" = ( /obj/structure/bed/chair, -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/omega/offices) "brY" = ( /obj/structure/surface/table/almayer, /obj/item/ashtray/bronze, /obj/item/tool/lighter/random, -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/omega/offices) "brZ" = ( /obj/structure/machinery/disposal, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/west, /area/corsat/omega/cargo) "bsa" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/microwave, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/west, /area/corsat/omega/offices) "bsb" = ( /obj/structure/noticeboard{ pixel_y = 32 }, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "bluegreycorner" - }, +/turf/open/floor/corsat/bluegreycorner/east, /area/corsat/gamma/administration) "bsd" = ( /obj/structure/machinery/disposal, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/southeast, /area/corsat/sigma/southeast/dataoffice) "bse" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/microwave, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/corsat/red/northwest, /area/corsat/omega/security) "bsf" = ( /obj/structure/machinery/vending/coffee, /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/corsat/omega/security) "bsg" = ( /obj/structure/machinery/vending/snack, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/corsat/red/northeast, /area/corsat/omega/security) "bsi" = ( /obj/structure/surface/table/almayer, -/turf/open/floor/corsat{ - icon_state = "red" - }, +/turf/open/floor/corsat/red, /area/corsat/omega/security) "bsl" = ( /obj/structure/surface/table/almayer, @@ -25006,71 +18633,50 @@ dir = 4; network = list("omega") }, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/corsat/red/northwest, /area/corsat/omega/security) "bsm" = ( /obj/structure/sign/safety/airlock{ pixel_y = 32 }, /obj/structure/machinery/disposal, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/omega/hallways) "bsn" = ( /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/security) "bso" = ( /obj/structure/surface/rack, /obj/item/device/flashlight, /obj/item/device/flashlight, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/corsat/red/northwest, /area/corsat/omega/checkpoint) "bsp" = ( /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/omega/security) "bsq" = ( /obj/structure/bed/chair{ dir = 4 }, /obj/structure/machinery/light, -/turf/open/floor/corsat{ - icon_state = "red" - }, +/turf/open/floor/corsat/red, /area/corsat/omega/security) "bsr" = ( /obj/structure/surface/rack, /obj/item/evidencebag, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/corsat/red/northeast, /area/corsat/omega/security) "bss" = ( /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/corsat/red/southeast, /area/corsat/omega/security) "bsx" = ( /obj/structure/barricade/handrail{ @@ -25079,81 +18685,56 @@ /obj/structure/flora/pottedplant{ icon_state = "pottedplant_21" }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/south) "bsy" = ( /obj/structure/surface/table/reinforced, /obj/item/tool/surgery/scalpel/laser{ pixel_y = 10 }, -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/omega/complex) "bsz" = ( /obj/structure/machinery/vending/snack, -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/omega/complex) "bsB" = ( /obj/structure/bed/chair, -/turf/open/floor/corsat{ - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite, /area/corsat/sigma/south/complex) "bsD" = ( /obj/structure/machinery/computer/cameras{ network = list("omega") }, /obj/structure/surface/table/reinforced, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/corsat/omega/airlocknorth) "bsE" = ( /obj/structure/surface/table/almayer, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/sigma/south/complex) "bsG" = ( /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/north, /area/corsat/sigma/south/complex) "bsI" = ( /obj/structure/surface/table/woodentable, /obj/structure/machinery/chem_dispenser/soda{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/corsat/sigma/cafe) "bsJ" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/emails, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/north, /area/corsat/sigma/south/offices) "bsK" = ( /obj/structure/machinery/disposal, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "purplewhitecorner" - }, +/turf/open/floor/corsat/purplewhitecorner/west, /area/corsat/omega/complex) "bsL" = ( /obj/structure/machinery/vending/cigarette/colony, @@ -25163,155 +18744,107 @@ /obj/structure/bed/chair/office/light{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "bluegreycorner" - }, +/turf/open/floor/corsat/bluegreycorner, /area/corsat/sigma/south/offices) "bsN" = ( /obj/structure/surface/table/woodentable, /obj/structure/machinery/chem_dispenser/soda/beer{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/corsat/sigma/cafe) "bsO" = ( /obj/structure/machinery/botany{ name = "hydroponics tray" }, -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/theta/biodome/hydrowest) "bsP" = ( /obj/structure/machinery/botany{ name = "hydroponics tray" }, -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/theta/biodome/hydroeast) "bsQ" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/emails{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/sigma/south/offices) "bsR" = ( /obj/structure/bed/chair/office/light{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/west, /area/corsat/sigma/south/offices) "bsS" = ( /obj/structure/surface/table/almayer, /obj/item/ashtray/bronze, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/omega/offices) "bsT" = ( /obj/structure/machinery/vending/coffee, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/corsat/red/northwest, /area/corsat/sigma/south/security) "bsU" = ( /obj/structure/machinery/vending/snack, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/corsat/sigma/south/security) "bsW" = ( /obj/structure/machinery/light, /obj/structure/machinery/botany{ name = "hydroponics tray" }, -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/theta/biodome/hydrowest) "bsX" = ( /obj/structure/machinery/disposal, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/southwest, /area/corsat/theta/biodome/complex) "bsY" = ( /obj/structure/machinery/light, /obj/structure/machinery/botany{ name = "hydroponics tray" }, -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/theta/biodome/hydroeast) "bsZ" = ( /obj/structure/machinery/vending/coffee, -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/theta/biodome/complex) "bta" = ( /obj/structure/machinery/vending/snack, -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/theta/biodome/complex) "btb" = ( /obj/structure/machinery/light{ dir = 8 }, /obj/structure/machinery/photocopier, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/west, /area/corsat/sigma/south/offices) "btf" = ( /obj/structure/machinery/disposal, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/west, /area/corsat/sigma/south/offices) "btg" = ( /obj/structure/machinery/vending/coffee, -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/sigma/south/offices) "bth" = ( /obj/structure/machinery/lapvend, -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/sigma/south/offices) "bti" = ( /obj/structure/machinery/light, /obj/structure/machinery/disposal, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "purplewhitecorner" - }, +/turf/open/floor/corsat/purplewhitecorner/west, /area/corsat/theta/biodome/hydrowest) "btj" = ( /obj/structure/machinery/light, /obj/structure/machinery/disposal, -/turf/open/floor/corsat{ - icon_state = "purplewhitecorner" - }, +/turf/open/floor/corsat/purplewhitecorner, /area/corsat/theta/biodome/hydroeast) "btk" = ( /obj/structure/pipes/standard/manifold/hidden/green{ @@ -25321,10 +18854,7 @@ /area/corsat/theta/biodome) "btl" = ( /obj/structure/machinery/disposal, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/southeast, /area/corsat/theta/biodome/complex) "btn" = ( /obj/structure/machinery/light{ @@ -25333,9 +18863,7 @@ /obj/structure/machinery/botany{ name = "hydroponics tray" }, -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/theta/biodome/hydrowest) "bto" = ( /obj/structure/machinery/light{ @@ -25344,22 +18872,15 @@ /obj/structure/machinery/botany{ name = "hydroponics tray" }, -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/theta/biodome/hydroeast) "btq" = ( /obj/structure/flora/pottedplant, -/turf/open/floor/corsat{ - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey, /area/corsat/sigma/south/offices) "bts" = ( /obj/structure/machinery/disposal, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/corsat/red/southeast, /area/corsat/omega/hallways) "btt" = ( /obj/structure/surface/table/reinforced, @@ -25367,17 +18888,12 @@ name = "Acid Resistant Hemostat"; unacidable = 1 }, -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/omega/complex) "btv" = ( /obj/structure/surface/table/almayer, /obj/item/storage/box/botanydisk, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/northwest, /area/corsat/theta/biodome/complex) "btw" = ( /obj/structure/surface/rack, @@ -25386,38 +18902,26 @@ maxcharge = 3000; name = "overpowered potato" }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/north, /area/corsat/sigma/south/engineering) "btx" = ( /obj/structure/machinery/light{ dir = 4 }, /obj/structure/machinery/disposal, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/east, /area/corsat/theta/biodome/complex) "btz" = ( /obj/structure/surface/rack, /obj/item/circuitboard/apc, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/north, /area/corsat/sigma/south/engineering) "btB" = ( /obj/structure/machinery/light{ dir = 8 }, /obj/structure/machinery/disposal, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/omega/hangar/security) "btC" = ( /obj/structure/machinery/light{ @@ -25426,17 +18930,13 @@ /obj/structure/surface/table/almayer, /obj/item/storage/fancy/cigarettes/lucky_strikes, /obj/item/tool/pen/blue, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/gamma/hangar/flightcontrol) "btD" = ( /obj/structure/bed/chair/office/light{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/gamma/hangar/flightcontrol) "btE" = ( /obj/structure/machinery/light{ @@ -25446,9 +18946,7 @@ /obj/item/clipboard, /obj/item/paper, /obj/item/tool/pen/blue, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/gamma/hangar/flightcontrol) "btF" = ( /obj/structure/machinery/light{ @@ -25457,9 +18955,7 @@ /obj/structure/surface/table/almayer, /obj/item/paper, /obj/item/tool/pen/blue, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/gamma/hangar/flightcontrol) "btG" = ( /obj/structure/surface/table/almayer, @@ -25467,19 +18963,13 @@ /obj/structure/machinery/computer/atmos_alert{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/west, /area/corsat/gamma/hangar/flightcontrol) "btH" = ( /obj/structure/bed/chair/office/light{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/north, /area/corsat/gamma/hangar/flightcontrol) "btI" = ( /obj/structure/machinery/vending/cola, @@ -25488,36 +18978,25 @@ "btJ" = ( /obj/structure/surface/table/almayer, /obj/item/device/flashlight/lamp, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/northwest, /area/corsat/gamma/hangar/flightcontrol) "btK" = ( /obj/structure/bed/chair/office/light{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/north, /area/corsat/gamma/hangar/flightcontrol) "btL" = ( /obj/structure/bed/chair/office/light{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/gamma/hangar/flightcontrol) "btM" = ( /obj/structure/surface/table/almayer, /obj/item/clipboard, /obj/item/tool/pen/blue, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/north, /area/corsat/gamma/hangar/flightcontrol) "btN" = ( /obj/structure/window/framed/corsat, @@ -25525,66 +19004,44 @@ /area/corsat/gamma/hangar/flightcontrol) "btO" = ( /obj/structure/bed/chair/office/light, -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/gamma/hangar/flightcontrol) "btQ" = ( /obj/structure/machinery/light{ dir = 4 }, /obj/structure/machinery/photocopier, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/east, /area/corsat/gamma/hangar/flightcontrol) "btR" = ( /obj/structure/machinery/vending/coffee, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/northwest, /area/corsat/gamma/hangar/flightcontrol) "btS" = ( /obj/structure/machinery/light{ dir = 8 }, /obj/structure/filingcabinet/filingcabinet, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/west, /area/corsat/gamma/hangar/office) "btT" = ( /obj/structure/sign/safety/biohazard, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purplewhitecorner" - }, +/turf/open/floor/corsat/purplewhitecorner/east, /area/corsat/gamma/biodome/virology) "btU" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/communications, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/omega/offices) "btV" = ( /obj/structure/surface/table/almayer, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/north, /area/corsat/sigma/southeast/dataoffice) "btW" = ( /obj/structure/bed/chair/office/light{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/north, /area/corsat/sigma/southeast/dataoffice) "btX" = ( /obj/structure/surface/table/almayer, @@ -25593,17 +19050,13 @@ health = 80 }, /obj/item/device/flashlight/lamp, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/omega/offices) "btY" = ( /obj/structure/bed/chair/office/light{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/sigma/southeast/dataoffice) "btZ" = ( /obj/structure/surface/table/almayer, @@ -25613,18 +19066,13 @@ }, /obj/item/clipboard, /obj/item/tool/pen/blue, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/omega/offices) "bua" = ( /obj/structure/bed/chair/office/light{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "bluegreycorner" - }, +/turf/open/floor/corsat/bluegreycorner/west, /area/corsat/sigma/southeast/dataoffice) "bub" = ( /obj/structure/machinery/light{ @@ -25634,67 +19082,46 @@ /obj/structure/machinery/computer/emails{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/west, /area/corsat/sigma/southeast/dataoffice) "buc" = ( /obj/structure/bed/chair/office/light{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/sigma/southeast/dataoffice) "bud" = ( /obj/structure/bed/chair/office/light, -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/sigma/southeast/dataoffice) "bue" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/station_alert, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/omega/offices) "bug" = ( /obj/structure/surface/table/almayer, /obj/item/phone, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/west, /area/corsat/sigma/southeast/datalab) "buh" = ( /obj/structure/bed/chair/office/light{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/sigma/southeast/datalab) "bui" = ( /obj/structure/bed/chair/office/light, -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/sigma/southeast/datalab) "buj" = ( /obj/structure/machinery/light, /obj/structure/surface/table/almayer, -/turf/open/floor/corsat{ - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey, /area/corsat/sigma/southeast/datalab) "bum" = ( /obj/structure/filingcabinet/filingcabinet, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/north, /area/corsat/gamma/hangar/flightcontrol) "bun" = ( /obj/structure/bed/chair/wood/wings{ @@ -25745,38 +19172,27 @@ dir = 1 }, /obj/structure/machinery/vending/cigarette/colony, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/corsat/sigma/south/security) "bux" = ( /obj/structure/machinery/vending/snack, -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/sigma/south/offices) "buy" = ( /obj/structure/machinery/vending/cigarette/colony, -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/sigma/south/offices) "buz" = ( /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "brown" - }, +/turf/open/floor/corsat/brown, /area/corsat/gamma/cargo) "buA" = ( /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "brown" - }, +/turf/open/floor/corsat/brown, /area/corsat/gamma/cargo) "buB" = ( /obj/structure/sign/safety/distribution_pipes{ @@ -25791,69 +19207,47 @@ pixel_y = 7 }, /obj/item/tool/pen, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/northwest, /area/corsat/omega/complex) "buD" = ( /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/west, /area/corsat/gamma/engineering) "buE" = ( /obj/structure/surface/table/almayer, /obj/item/paper, /obj/item/tool/pen, /obj/item/tool/stamp, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/north, /area/corsat/gamma/engineering/lobby) "buF" = ( /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/northwest, /area/corsat/gamma/engineering) "buG" = ( /obj/structure/surface/table/almayer, /obj/item/ashtray/plastic, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/north, /area/corsat/gamma/engineering) "buI" = ( /obj/structure/machinery/vending/snack, -/turf/open/floor/corsat{ - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow, /area/corsat/gamma/engineering) "buJ" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/gamma/hangar) "buK" = ( /obj/structure/machinery/light, /obj/structure/surface/rack, /obj/item/device/flashlight, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/hangar) "buL" = ( /obj/structure/machinery/power/apc/high{ @@ -25862,45 +19256,30 @@ start_charge = 0 }, /obj/structure/closet/wardrobe/virology_white, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/north, /area/corsat/gamma/biodome/virology) "buM" = ( /obj/structure/machinery/light, /obj/structure/flora/pottedplant, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/southeast, /area/corsat/sigma/hangar/office) "buN" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/gamma/hangar/cargo) "buO" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/east, /area/corsat/gamma/hallwaysouth) "buP" = ( /obj/structure/closet/secure_closet/engineering_personal{ req_access_txt = "102" }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner/north, /area/corsat/gamma/engineering) "buQ" = ( /obj/item/alien_embryo, @@ -25914,18 +19293,14 @@ icon_state = "open_science"; opened = 1 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/omega/complex) "buR" = ( /obj/structure/machinery/vending/dinnerware, /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "sterileplate" - }, +/turf/open/floor/corsat/sterileplate, /area/corsat/gamma/kitchen) "buS" = ( /obj/structure/machinery/light{ @@ -25936,16 +19311,10 @@ dir = 8; network = list("gamma") }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/gamma/airlock/control) "buT" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/east, /area/corsat/gamma/hallwaysouth) "buU" = ( /obj/structure/window/framed/corsat/hull, @@ -25959,28 +19328,19 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/north, /area/corsat/sigma/dorms) "buW" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/sigma/checkpoint) "buX" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/east, /area/corsat/omega/containment) "buY" = ( /obj/structure/prop/mech/drill, @@ -26001,9 +19361,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/south/engineering) "bvh" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony{ @@ -26012,18 +19370,13 @@ req_one_access_txt = "102" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/south/engineering) "bvi" = ( /obj/structure/surface/rack, /obj/item/tool/soap/deluxe, /obj/item/tool/soap/deluxe, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/southeast, /area/corsat/gamma/residential/maint) "bvj" = ( /turf/open/floor/mech_bay_recharge_floor, @@ -26036,67 +19389,44 @@ /area/corsat/sigma/south/robotics) "bvm" = ( /obj/structure/machinery/bioprinter, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/east, /area/corsat/sigma/south/robotics) "bvn" = ( /obj/structure/surface/table/almayer, /obj/item/circuitboard/robot_module/engineering, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/northeast, /area/corsat/sigma/south/robotics) "bvo" = ( /obj/structure/surface/table/almayer, /obj/item/circuitboard/robot_module/butler, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/west, /area/corsat/sigma/south/robotics) "bvp" = ( /obj/structure/machinery/light{ dir = 4 }, /obj/structure/machinery/robotic_fabricator, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/east, /area/corsat/sigma/south/robotics) "bvq" = ( /obj/structure/surface/table/reinforced, /obj/item/clothing/head/welding, /obj/item/tool/weldingtool, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/southwest, /area/corsat/sigma/south/robotics) "bvs" = ( /obj/structure/machinery/constructable_frame{ icon_state = "box_1" }, -/turf/open/mars_cave{ - icon_state = "mars_cave_17" - }, +/turf/open/mars_cave/mars_cave_17, /area/corsat/sigma/biodome/scrapyard) "bvt" = ( /obj/structure/filingcabinet/filingcabinet, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/east, /area/corsat/sigma/south/offices) "bvw" = ( /obj/structure/filingcabinet/filingcabinet, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner/east, /area/corsat/sigma/south/engineering) "bvx" = ( /obj/structure/bed, @@ -26106,34 +19436,25 @@ /area/corsat/sigma/dorms) "bvy" = ( /obj/structure/machinery/photocopier, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/northwest, /area/corsat/sigma/south/engineering) "bvB" = ( /obj/structure/closet/wardrobe/engineering_yellow, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/south/engineering) "bvC" = ( /obj/structure/machinery/light{ dir = 1 }, /obj/structure/closet/wardrobe/engineering_yellow, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/south/engineering) "bvD" = ( /obj/structure/surface/rack, /obj/item/stack/sheet/mineral/gold{ amount = 10 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/south/engineering) "bvE" = ( /obj/structure/surface/rack, @@ -26143,18 +19464,13 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/west, /area/corsat/sigma/south/engineering) "bvF" = ( /obj/structure/machinery/constructable_frame{ icon_state = "box_1" }, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/corsat/sigma/biodome/scrapyard) "bvJ" = ( /obj/structure/bed, @@ -26169,19 +19485,14 @@ /obj/item/paper, /obj/item/tool/pen, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/south/engineering) "bvL" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/powercell, /obj/effect/spawner/random/powercell, /obj/effect/spawner/random/powercell, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/northeast, /area/corsat/sigma/south/robotics) "bvM" = ( /obj/structure/machinery/light{ @@ -26191,36 +19502,26 @@ /obj/item/stack/sheet/metal{ amount = 30 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/west, /area/corsat/sigma/south/engineering) "bvN" = ( /obj/structure/surface/rack, /obj/item/stack/sheet/mineral/silver{ amount = 10 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/south/engineering) "bvO" = ( /obj/structure/surface/rack, /obj/item/stack/sheet/metal{ amount = 30 }, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/southeast, /area/corsat/sigma/south/robotics) "bvP" = ( /obj/structure/surface/table/almayer, /obj/item/stock_parts/smes_coil, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/south/engineering) "bvQ" = ( /obj/structure/bed, @@ -26253,130 +19554,87 @@ "bvX" = ( /obj/item/tool/weldingtool/experimental, /obj/structure/surface/table/almayer, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/south/engineering) "bvY" = ( /obj/structure/surface/rack, /obj/item/stack/sheet/glass{ amount = 30 }, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/northwest, /area/corsat/sigma/south/engineering) "bvZ" = ( /obj/structure/surface/rack, /obj/item/stack/sheet/mineral/platinum{ amount = 10 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner/north, /area/corsat/sigma/south/engineering) "bwa" = ( /obj/structure/machinery/smartfridge/secure/virology{ req_access_txt = "103" }, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/southeast, /area/corsat/gamma/biodome/virology) "bwb" = ( /obj/structure/machinery/smartfridge/chemistry/virology{ req_access_txt = "103"; req_one_access = null }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/east, /area/corsat/gamma/biodome/virology) "bwc" = ( /obj/structure/surface/rack, /obj/item/device/chameleon, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/north, /area/corsat/sigma/south/complex) "bwe" = ( /obj/structure/filingcabinet/filingcabinet, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/east, /area/corsat/sigma/south/engineering) "bwg" = ( /obj/structure/machinery/light{ dir = 1 }, /obj/structure/bookcase/manuals/engineering, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/north, /area/corsat/sigma/south/engineering) "bwh" = ( /obj/structure/bookcase/manuals/engineering, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/northeast, /area/corsat/sigma/south/engineering) "bwi" = ( /obj/structure/surface/table/almayer, /obj/item/circuitboard/robot_module/medic, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/east, /area/corsat/sigma/south/robotics) "bwk" = ( /obj/structure/closet/firecloset, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/west, /area/corsat/sigma/south/engineering) "bwm" = ( /obj/structure/machinery/autolathe, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/east, /area/corsat/sigma/south/engineering) "bwn" = ( /obj/structure/surface/rack, /obj/item/stack/sheet/mineral/phoron{ amount = 15 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/west, /area/corsat/sigma/south/engineering) "bwo" = ( /obj/structure/bed/chair, /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/south/engineering) "bwp" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/east, /area/corsat/sigma/south/engineering) "bwq" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony{ @@ -26385,15 +19643,11 @@ req_one_access_txt = "102" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/south/robotics) "bwr" = ( /obj/structure/bed/chair, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/south/engineering) "bwt" = ( /obj/structure/machinery/light{ @@ -26401,16 +19655,11 @@ }, /obj/structure/surface/table/almayer, /obj/item/device/analyzer, -/turf/open/floor/corsat{ - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner, /area/corsat/sigma/south/engineering) "bwu" = ( /obj/structure/surface/table/almayer, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner/west, /area/corsat/sigma/south/engineering) "bww" = ( /obj/structure/machinery/power/apc/hyper{ @@ -26418,9 +19667,7 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/southeast/generator) "bwx" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony{ @@ -26428,9 +19675,7 @@ name = "Robotics"; req_one_access_txt = "102" }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/south/robotics) "bwz" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony{ @@ -26439,64 +19684,45 @@ req_one_access_txt = "102" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/south/robotics) "bwA" = ( /obj/structure/machinery/vending/snack, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/south/engineering) "bwB" = ( /obj/structure/machinery/light{ dir = 1 }, /obj/structure/machinery/vending/coffee, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/south/engineering) "bwC" = ( /obj/structure/surface/table/almayer, /obj/item/device/t_scanner, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/east, /area/corsat/sigma/south/engineering) "bwD" = ( /obj/structure/bed/chair/office/light{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow, /area/corsat/sigma/south/engineering) "bwE" = ( /obj/structure/surface/table/almayer, /obj/item/device/flashlight/lamp, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/south/engineering) "bwG" = ( /obj/structure/surface/rack, /obj/item/tool/crowbar, /obj/item/tool/wirecutters, /obj/item/tool/screwdriver, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/north, /area/corsat/gamma/residential/maint) "bwH" = ( /obj/structure/surface/table/almayer, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/east, /area/corsat/sigma/south/engineering) "bwI" = ( /obj/structure/surface/table/almayer, @@ -26504,42 +19730,30 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/south/engineering) "bwJ" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/station_alert, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/east, /area/corsat/sigma/south/engineering) "bwK" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/atmos_alert, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/south/engineering) "bwN" = ( /obj/structure/machinery/power/monitor{ name = "Main Power Grid Monitoring" }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/south/engineering) "bwO" = ( /obj/structure/machinery/light{ dir = 4 }, /obj/structure/surface/table/almayer, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/east, /area/corsat/sigma/south/engineering) "bwP" = ( /turf/open/floor/corsat, @@ -26548,16 +19762,12 @@ /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/south/engineering) "bwR" = ( /obj/structure/surface/rack, /obj/item/tool/weldingtool, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/south/robotics) "bwS" = ( /obj/structure/machinery/light, @@ -26565,57 +19775,34 @@ /area/corsat/sigma/south/engineering) "bwT" = ( /obj/structure/machinery/power/port_gen/pacman, -/turf/open/floor/corsat{ - icon_state = "cargo" - }, +/turf/open/floor/corsat/cargo, /area/corsat/sigma/south/engineering) "bwU" = ( /obj/structure/closet/crate, /obj/item/stack/sheet/plasteel{ amount = 10 }, -/turf/open/floor/corsat{ - icon_state = "cargo" - }, +/turf/open/floor/corsat/cargo, /area/corsat/sigma/south/engineering) "bwV" = ( /obj/structure/surface/table/almayer, /obj/item/paper, /obj/item/tool/pen, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/west, /area/corsat/sigma/south/robotics) "bwW" = ( /obj/structure/bed/chair/office/light, -/turf/open/floor/corsat{ - icon_state = "squares" - }, -/area/corsat/sigma/south/robotics) -"bwY" = ( -/obj/structure/surface/rack, -/obj/item/circuitboard/mecha/gygax/main, -/obj/item/circuitboard/mecha/gygax/targeting, -/obj/item/circuitboard/mecha/gygax/peripherals, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/south/robotics) "bwZ" = ( /obj/structure/surface/table/almayer, /obj/item/tool/screwdriver, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/southwest, /area/corsat/sigma/south/robotics) "bxa" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/toolbox, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/south/robotics) "bxb" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony{ @@ -26624,9 +19811,7 @@ req_one_access_txt = "102" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/south/engineering) "bxe" = ( /obj/structure/machinery/light{ @@ -26635,26 +19820,17 @@ /obj/structure/surface/table/reinforced, /obj/item/tool/surgery/surgicaldrill, /obj/item/tool/surgery/circular_saw, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/west, /area/corsat/gamma/sigmaremote) "bxf" = ( /obj/structure/surface/table/reinforced, /obj/item/tool/surgery/cautery, /obj/item/tool/surgery/hemostat, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/west, /area/corsat/gamma/sigmaremote) "bxg" = ( /obj/structure/closet/secure_closet/medical2, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/southwest, /area/corsat/gamma/sigmaremote) "bxh" = ( /obj/item/implant/neurostim, @@ -26662,9 +19838,7 @@ /obj/item/implant/adrenalin, /obj/item/implant/adrenalin, /obj/structure/surface/rack, -/turf/open/floor/corsat{ - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite, /area/corsat/gamma/sigmaremote) "bxi" = ( /obj/item/implant/loyalty, @@ -26672,9 +19846,7 @@ /obj/item/implant/compressed, /obj/item/implant/compressed, /obj/structure/surface/rack, -/turf/open/floor/corsat{ - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite, /area/corsat/gamma/sigmaremote) "bxj" = ( /obj/item/implant/death_alarm, @@ -26682,107 +19854,54 @@ /obj/item/implant/tracking, /obj/item/implant/tracking, /obj/structure/surface/rack, -/turf/open/floor/corsat{ - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite, /area/corsat/gamma/sigmaremote) "bxm" = ( /obj/structure/surface/table/almayer, /obj/structure/prop/mech/tesla_energy_relay, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/north, /area/corsat/sigma/south/robotics) "bxn" = ( /obj/structure/surface/table/almayer, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/north, /area/corsat/sigma/south/robotics) "bxo" = ( /obj/structure/surface/table/almayer, /obj/item/tool/wirecutters, /obj/item/stack/cable_coil, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/north, /area/corsat/sigma/south/robotics) "bxp" = ( /obj/structure/surface/table/almayer, /obj/item/tool/weldingtool, /obj/item/tool/screwdriver, /obj/item/tool/wrench, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "yellow" - }, -/area/corsat/sigma/south/robotics) -"bxr" = ( -/obj/structure/prop/mech/mech_parts/part/durand_head, -/turf/open/floor/corsat{ - icon_state = "arrow_north" - }, +/turf/open/floor/corsat/yellow/northeast, /area/corsat/sigma/south/robotics) "bxs" = ( /obj/structure/surface/table/almayer, /obj/item/book/manual/ripley_build_and_repair, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/east, /area/corsat/sigma/south/robotics) "bxt" = ( /obj/structure/surface/table/almayer, /obj/structure/prop/mech/armor_booster, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellow" - }, -/area/corsat/sigma/south/robotics) -"bxu" = ( -/obj/structure/prop/mech/mech_parts/part/durand_right_arm, -/turf/open/floor/corsat{ - icon_state = "arrow_west" - }, -/area/corsat/sigma/south/robotics) -"bxv" = ( -/obj/structure/prop/mech/mech_parts/part/durand_torso, -/turf/open/floor/corsat{ - icon_state = "cargo" - }, +/turf/open/floor/corsat/yellow/west, /area/corsat/sigma/south/robotics) "bxw" = ( -/turf/open/floor/corsat{ - icon_state = "arrow_east" - }, +/turf/open/floor/corsat/arrow_east, /area/corsat/sigma/south/robotics) "bxx" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner/east, /area/corsat/sigma/south/robotics) "bxy" = ( -/turf/open/floor/corsat{ - icon_state = "arrow_west" - }, +/turf/open/floor/corsat/arrow_west, /area/corsat/sigma/south/robotics) "bxz" = ( -/turf/open/floor/corsat{ - icon_state = "cargo" - }, -/area/corsat/sigma/south/robotics) -"bxA" = ( -/obj/structure/prop/mech/mech_parts/part/durand_left_leg, -/turf/open/floor/corsat{ - icon_state = "arrow_east" - }, +/turf/open/floor/corsat/cargo, /area/corsat/sigma/south/robotics) "bxB" = ( /obj/structure/girder/displaced, @@ -26791,55 +19910,36 @@ "bxC" = ( /obj/structure/surface/rack, /obj/structure/prop/mech/hydralic_clamp, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/southwest, /area/corsat/sigma/south/robotics) "bxF" = ( /obj/structure/surface/rack, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/corsat{ - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner, /area/corsat/sigma/south/robotics) "bxH" = ( /obj/structure/surface/table/almayer, /obj/item/folder/yellow, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/south/engineering) "bxI" = ( /obj/structure/surface/rack, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/southeast, /area/corsat/sigma/south/robotics) "bxJ" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/north, /area/corsat/sigma/south/robotics) "bxK" = ( /obj/structure/surface/rack, /obj/item/holder/drone, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/northeast, /area/corsat/sigma/south/robotics) "bxL" = ( /obj/structure/surface/rack, /obj/item/device/lightreplacer, /obj/item/light_bulb/tube/large, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner/east, /area/corsat/sigma/south/engineering) "bxM" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony{ @@ -26848,9 +19948,7 @@ req_one_access_txt = "102" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/south/engineering) "bxN" = ( /obj/structure/machinery/power/apc/high{ @@ -26860,10 +19958,7 @@ }, /obj/structure/surface/rack, /obj/item/powerloader_clamp, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/north, /area/corsat/sigma/south/robotics) "bxO" = ( /obj/structure/machinery/door/airlock/almayer/research/glass/colony{ @@ -26874,9 +19969,7 @@ name = "Containment Cell 1"; req_one_access_txt = "103" }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/inaccessible) "bxP" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony{ @@ -26886,27 +19979,19 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/south/robotics) "bxQ" = ( /obj/structure/machinery/light{ dir = 4 }, /obj/structure/machinery/r_n_d/protolathe, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/east, /area/corsat/sigma/south/engineering) "bxR" = ( /obj/structure/surface/table/almayer, /obj/item/device/camera, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/southwest, /area/corsat/gamma/airlock/control) "bxS" = ( /obj/structure/machinery/door/airlock/almayer/research/glass/colony{ @@ -26917,9 +20002,7 @@ name = "Containment Cell 4"; req_one_access_txt = "103" }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/inaccessible) "bxT" = ( /obj/structure/machinery/light{ @@ -26927,17 +20010,11 @@ }, /obj/structure/surface/rack, /obj/item/cell/secborg, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/north, /area/corsat/sigma/south/robotics) "bxU" = ( /obj/structure/machinery/r_n_d/server, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/north, /area/corsat/sigma/south/complex) "bxV" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony{ @@ -26946,9 +20023,7 @@ req_one_access_txt = "102" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/south/robotics) "bxW" = ( /obj/structure/closet/crate, @@ -26958,18 +20033,13 @@ /obj/item/organ/kidneys/prosthetic, /obj/item/organ/liver/prosthetic, /obj/item/organ/lungs/prosthetic, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/east, /area/corsat/sigma/south/robotics) "bxX" = ( /obj/structure/bed/chair/office/light{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/south/engineering) "bxY" = ( /obj/structure/machinery/door/airlock/almayer/research/glass/colony{ @@ -26980,9 +20050,7 @@ name = "Containment Cell 4"; req_one_access_txt = "103" }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/inaccessible) "bxZ" = ( /obj/structure/closet/crate, @@ -26990,10 +20058,7 @@ /obj/item/robot_parts/robot_component/armour, /obj/item/robot_parts/robot_component/camera, /obj/item/robot_parts/robot_component/diagnosis_unit, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/east, /area/corsat/sigma/south/robotics) "bya" = ( /obj/structure/machinery/light{ @@ -27004,32 +20069,22 @@ /obj/item/tool/screwdriver, /obj/item/tool/wrench, /obj/item/stack/nanopaste, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/west, /area/corsat/sigma/south/robotics) "byb" = ( /obj/structure/machinery/optable, /obj/item/robot_parts/robot_suit, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/south/robotics) "byc" = ( /obj/structure/surface/rack, /obj/item/frame/firstaid_arm_assembly, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/southwest, /area/corsat/sigma/south/robotics) "byd" = ( /obj/structure/surface/rack, /obj/item/frame/bucket_sensor, -/turf/open/floor/corsat{ - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow, /area/corsat/sigma/south/robotics) "bye" = ( /obj/structure/machinery/door/airlock/almayer/command/colony{ @@ -27042,18 +20097,13 @@ /area/corsat/gamma/administration) "byg" = ( /obj/structure/bed/chair/office/light, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/south/engineering) "byh" = ( /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/southwest, /area/corsat/sigma/south/robotics) "byi" = ( /obj/structure/closet/crate, @@ -27062,42 +20112,31 @@ pixel_x = 2; pixel_y = 2 }, -/turf/open/floor/corsat{ - icon_state = "cargo" - }, +/turf/open/floor/corsat/cargo, /area/corsat/sigma/south/engineering) "byj" = ( /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/southeast, /area/corsat/sigma/south/robotics) "byk" = ( /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/south/robotics) "byl" = ( /obj/structure/surface/table/almayer, /obj/item/ashtray/plastic, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/corsat{ - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow, /area/corsat/sigma/south/robotics) "bym" = ( /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/south/robotics) "byn" = ( /obj/structure/machinery/door/airlock/almayer/command/colony{ @@ -27128,9 +20167,7 @@ /area/corsat/gamma/administration) "byr" = ( /obj/structure/machinery/light, -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/gamma/administration) "bys" = ( /obj/structure/machinery/microwave, @@ -27138,18 +20175,12 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/corsat/sigma/cafe) "byt" = ( /obj/structure/machinery/juicer, /obj/structure/surface/table/woodentable, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/corsat/sigma/cafe) "byu" = ( /obj/structure/surface/table/woodentable, @@ -27160,64 +20191,43 @@ "byv" = ( /obj/structure/surface/table/woodentable, /obj/item/storage/box/drinkingglasses, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/corsat/sigma/cafe) "byw" = ( /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/north, /area/corsat/omega/complex) "byy" = ( /obj/structure/machinery/light, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/omega/complex) "byz" = ( /obj/structure/filingcabinet/chestdrawer, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/north, /area/corsat/omega/complex) "byB" = ( /obj/structure/surface/table/almayer, /obj/item/storage/box/masks, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/west, /area/corsat/omega/complex) "byE" = ( /obj/structure/bed/chair/office/light, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/omega/complex) "byF" = ( /obj/structure/bed/chair/office/light{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/omega/complex) "byG" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/emails{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/east, /area/corsat/omega/complex) "byH" = ( /obj/structure/closet/crate/science{ @@ -27226,9 +20236,7 @@ opened = 1 }, /obj/item/organ/liver, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/omega/complex) "byI" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/medidoor{ @@ -27237,24 +20245,17 @@ req_one_access = null }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/medbay) "byJ" = ( /obj/structure/surface/rack, -/obj/item/restraints, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhite" - }, +/obj/item/xeno_restraints, +/turf/open/floor/corsat/purplewhite/north, /area/corsat/omega/complex) "byL" = ( /obj/structure/surface/table/reinforced, /obj/item/device/camera, -/turf/open/floor/corsat{ - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite, /area/corsat/omega/complex) "byM" = ( /obj/structure/machinery/light{ @@ -27264,32 +20265,22 @@ /area/corsat/omega/complex) "byN" = ( /obj/structure/machinery/shower, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/north, /area/corsat/omega/complex) "byO" = ( /obj/structure/surface/table/reinforced, /obj/item/paper, /obj/item/tool/pen, -/turf/open/floor/corsat{ - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite, /area/corsat/omega/complex) "byP" = ( /obj/structure/machinery/optable, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/omega/complex) "byQ" = ( /obj/structure/surface/table/reinforced, /obj/item/form_printer, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/southeast, /area/corsat/omega/complex) "byR" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony{ @@ -27299,26 +20290,18 @@ req_one_access = null }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/omega/complex) "byS" = ( /obj/structure/sink{ pixel_y = 25 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/north, /area/corsat/omega/complex) "byT" = ( /obj/item/storage/box/masks, /obj/structure/surface/rack, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/north, /area/corsat/omega/complex) "byU" = ( /obj/structure/machinery/light{ @@ -27326,10 +20309,7 @@ }, /obj/structure/surface/rack, /obj/item/storage/box/gloves, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/north, /area/corsat/omega/complex) "byV" = ( /obj/structure/closet/crate/science{ @@ -27338,16 +20318,11 @@ opened = 1 }, /obj/item/organ/eyes, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/omega/complex) "byW" = ( /obj/structure/surface/table/almayer, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/northeast, /area/corsat/omega/complex) "byX" = ( /obj/item/xeno_egg, @@ -27358,91 +20333,65 @@ icon_state = "open_science"; opened = 1 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/omega/complex) "byY" = ( /obj/structure/bed/chair/office/light{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/south/robotics) "byZ" = ( /obj/structure/surface/rack, /obj/item/stock_parts/console_screen, /obj/item/stock_parts/console_screen, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/northeast, /area/corsat/sigma/south/engineering) "bzb" = ( /obj/structure/surface/table/almayer, /obj/item/stock_parts/matter_bin/super, /obj/item/stock_parts/capacitor/super, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/west, /area/corsat/sigma/south/engineering) "bzc" = ( /obj/structure/surface/table/almayer, /obj/item/device/assembly/igniter, /obj/item/device/assembly/voice, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/south/engineering) "bzd" = ( /obj/structure/surface/table/almayer, /obj/item/clothing/glasses/meson, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/corsat{ - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow, /area/corsat/sigma/south/robotics) "bze" = ( /obj/structure/surface/table/almayer, /obj/effect/spawner/random/powercell, /obj/effect/landmark/lv624/xeno_tunnel, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/south/robotics) "bzf" = ( /obj/structure/surface/table/almayer, /obj/item/tool/lighter/random, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/south/robotics) "bzg" = ( /obj/structure/surface/table/almayer, /obj/item/device/camera, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/northwest, /area/corsat/omega/complex) "bzj" = ( /obj/structure/surface/table/almayer, /obj/item/form_printer, /obj/item/tool/pen, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/north, /area/corsat/omega/complex) "bzk" = ( /obj/structure/surface/table/almayer, /obj/item/form_printer, /obj/item/tool/pen, -/turf/open/floor/corsat{ - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite, /area/corsat/omega/complex) "bzl" = ( /obj/structure/machinery/power/apc/hyper{ @@ -27450,10 +20399,7 @@ pixel_x = -30; start_charge = 0 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/west, /area/corsat/omega/complex) "bzm" = ( /obj/structure/window/framed/corsat/hull/research, @@ -27468,9 +20414,7 @@ name = "Containment Cell 3"; req_one_access_txt = "103" }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/inaccessible) "bzo" = ( /obj/structure/machinery/door/window/brigdoor/eastleft{ @@ -27487,27 +20431,21 @@ id = "SigmaIDSC"; name = "Security Shutters" }, -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/omega/complex) "bzp" = ( /obj/structure/machinery/light{ dir = 1 }, /obj/structure/pipes/vents/pump, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/omega/complex) "bzq" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "Research Complex Theta"; req_one_access_txt = "103" }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/theta/biodome/complex) "bzr" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony{ @@ -27515,44 +20453,34 @@ req_access_txt = "103"; req_one_access = null }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/omega/complex) "bzs" = ( /obj/structure/machinery/door/airlock/almayer/research{ name = "\improper Containment Chambers"; req_access_txt = "103" }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/omega/complex) "bzt" = ( /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/omega/complex) "bzu" = ( /obj/structure/machinery/door/airlock/almayer/research{ name = "\improper Xeno Autopsy"; req_access_txt = "103" }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/omega/complex) "bzv" = ( /obj/structure/machinery/light{ dir = 4 }, /obj/structure/filingcabinet/filingcabinet, -/turf/open/floor/corsat{ - icon_state = "purplewhitecorner" - }, +/turf/open/floor/corsat/purplewhitecorner, /area/corsat/omega/complex) "bzw" = ( /obj/structure/machinery/door/airlock/almayer/research{ @@ -27561,9 +20489,7 @@ name = "\improper Decontamination Chamber"; req_access_txt = "103" }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/omega/complex) "bzx" = ( /obj/structure/machinery/door/airlock/almayer/research/glass/colony{ @@ -27571,17 +20497,12 @@ name = "Xenobiology Reception Desk"; req_one_access_txt = "103" }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/omega/complex) "bzy" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/emails, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/north, /area/corsat/omega/complex) "bzz" = ( /obj/structure/surface/rack, @@ -27589,10 +20510,7 @@ /obj/item/tool/extinguisher, /obj/item/tool/extinguisher, /obj/item/clothing/glasses/welding, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/north, /area/corsat/gamma/residential/maint) "bzA" = ( /obj/structure/surface/rack, @@ -27610,24 +20528,15 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/north, /area/corsat/omega/complex) "bzB" = ( /obj/structure/filingcabinet/filingcabinet, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/southeast, /area/corsat/omega/complex) "bzC" = ( /obj/structure/closet/emcloset, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/west, /area/corsat/omega/complex) "bzD" = ( /obj/structure/surface/rack, @@ -27639,150 +20548,99 @@ name = "Secure Racks"; req_access_txt = "103" }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/north, /area/corsat/omega/complex) "bzE" = ( /obj/structure/surface/table/almayer, /obj/item/circuitboard/machine/clonescanner, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/south/engineering) "bzF" = ( /obj/structure/surface/table/almayer, /obj/effect/spawner/random/tool, /obj/effect/landmark/lv624/xeno_tunnel, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/south/engineering) "bzG" = ( /obj/structure/surface/table/almayer, /obj/item/device/flashlight, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/south/engineering) "bzH" = ( /obj/structure/surface/table/almayer, /obj/item/tool/lighter/random, /obj/item/clothing/glasses/meson, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/south/engineering) "bzI" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer3/laptop/secure_data, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/south/engineering) "bzJ" = ( /obj/structure/machinery/light{ dir = 1 }, /obj/structure/machinery/disposal, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/north, /area/corsat/sigma/south/robotics) "bzK" = ( /obj/structure/machinery/disposal, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/south/engineering) "bzL" = ( /obj/structure/machinery/light, /obj/structure/machinery/vending/cigarette/colony, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/south/engineering) "bzM" = ( /obj/structure/surface/table/reinforced, /obj/item/tool/wirecutters, /obj/item/stack/cable_coil, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/northwest, /area/corsat/sigma/south/robotics) "bzN" = ( /obj/structure/surface/table/almayer, /obj/item/device/assembly/infra, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/west, /area/corsat/sigma/south/engineering) "bzP" = ( /obj/structure/machinery/vending/coffee, -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/omega/complex) "bzQ" = ( /obj/structure/machinery/computer/pandemic, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/west, /area/corsat/omega/complex) "bzS" = ( /obj/structure/surface/table/almayer, /obj/item/book/manual/engineering_guide, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/south/engineering) "bzT" = ( /obj/structure/closet/emcloset, -/turf/open/floor/corsat{ - icon_state = "purplewhitecorner" - }, +/turf/open/floor/corsat/purplewhitecorner, /area/corsat/omega/complex) -"bzU" = ( -/obj/structure/surface/table/almayer, -/obj/item/book/manual/robotics_cyborgs, -/turf/open/floor/corsat{ - icon_state = "yellow" - }, -/area/corsat/sigma/south/robotics) "bzV" = ( /obj/structure/surface/table/almayer, /obj/item/device/robotanalyzer, -/turf/open/floor/corsat{ - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow, /area/corsat/sigma/south/robotics) "bzW" = ( /obj/structure/surface/table/almayer, /obj/item/storage/firstaid/regular, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/medbay) "bzY" = ( /obj/structure/surface/table/almayer, /obj/item/device/mmi/radio_enabled, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/southeast, /area/corsat/sigma/south/robotics) "bzZ" = ( /obj/structure/bed/chair/office/light{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/omega/complex) "bAa" = ( /obj/structure/surface/table/almayer, @@ -27790,114 +20648,77 @@ dir = 8 }, /obj/item/storage/fancy/vials/random, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/west, /area/corsat/omega/complex) "bAb" = ( /obj/structure/machinery/optable, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/gamma/medbay/morgue) "bAd" = ( /obj/structure/curtain/open/medical, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/medbay) "bAe" = ( /obj/structure/bed/chair/office/light, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/medbay) "bAf" = ( /obj/structure/surface/table/almayer, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/medbay) "bAg" = ( /obj/structure/machinery/cm_vending/sorted/medical/no_access, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "greenwhite" - }, +/obj/structure/medical_supply_link, +/turf/open/floor/corsat/greenwhite/northeast, /area/corsat/gamma/medbay) "bAh" = ( /obj/structure/bed/chair/office/light{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/omega/complex) "bAi" = ( /obj/structure/bed/chair, -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/omega/complex) "bAj" = ( /obj/structure/surface/table/almayer, /obj/item/storage/syringe_case/regular, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/southwest, /area/corsat/omega/complex) "bAk" = ( /obj/structure/machinery/cm_vending/sorted/medical/no_access{ req_access_txt = "100" }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "greenwhitecorner" - }, +/turf/open/floor/corsat/greenwhitecorner/east, /area/corsat/gamma/medbay) "bAl" = ( /obj/structure/machinery/chem_dispenser{ req_access_txt = "100" }, /obj/item/reagent_container/glass/beaker/bluespace, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite/east, /area/corsat/gamma/medbay/chemistry) "bAm" = ( /obj/structure/closet/firecloset/full, -/turf/open/floor/corsat{ - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite, /area/corsat/omega/complex) "bAn" = ( /obj/structure/surface/table/almayer, /obj/item/reagent_container/spray/cleaner, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/southeast, /area/corsat/omega/complex) "bAo" = ( /obj/structure/bed/chair/wheelchair, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite/north, /area/corsat/gamma/medbay/lobby) "bAp" = ( /obj/structure/machinery/light{ dir = 1 }, /obj/structure/bed/chair/wheelchair, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite/north, /area/corsat/gamma/medbay/lobby) "bAq" = ( /obj/structure/surface/rack, @@ -27909,75 +20730,43 @@ name = "Secure Racks"; req_access_txt = "103" }, -/obj/item/XenoItem/AntiAcid, -/turf/open/floor/corsat{ - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite, /area/corsat/omega/complex) "bAr" = ( /obj/structure/surface/table/almayer, /obj/item/storage/firstaid/o2, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/medbay) "bAs" = ( /obj/structure/surface/table/almayer, /obj/item/storage/firstaid/fire, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/medbay) -"bAt" = ( -/obj/structure/surface/rack, -/obj/structure/window/reinforced/toughened{ - dir = 8 - }, -/obj/structure/machinery/door/window/eastright{ - dir = 1; - name = "Secure Racks"; - req_access_txt = "103" - }, -/obj/item/XenoItem/ResinPaste, -/turf/open/floor/corsat{ - icon_state = "purplewhite" - }, -/area/corsat/omega/complex) "bAu" = ( /obj/structure/machinery/vending/snack, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite/north, /area/corsat/gamma/medbay/lobby) "bAv" = ( /obj/structure/machinery/vending/coffee, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite/north, /area/corsat/gamma/medbay/lobby) "bAw" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "Hydroponics Lab"; req_access_txt = "103" }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/theta/biodome/complex) "bAx" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "Laboratory"; req_access_txt = "103" }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/omega/complex) "bAy" = ( /obj/structure/surface/rack, -/obj/item/XenoBio/Resin, +/obj/item/oldresearch/Resin, /obj/structure/window/reinforced/toughened{ dir = 8 }, @@ -27986,41 +20775,28 @@ name = "Secure Racks"; req_access_txt = "103" }, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/southeast, /area/corsat/omega/complex) "bAz" = ( /obj/structure/surface/table/almayer, -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/omega/complex) "bAA" = ( /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite/east, /area/corsat/gamma/medbay/lobby) "bAB" = ( /obj/structure/surface/table/almayer, /obj/item/device/flashlight/lamp, /obj/structure/pipes/vents/pump, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/medbay) "bAC" = ( /obj/structure/surface/table/reinforced, /obj/item/tool/surgery/hemostat, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite/east, /area/corsat/gamma/medbay/surgery) "bAD" = ( /obj/structure/machinery/light, @@ -28033,9 +20809,7 @@ pixel_x = 12; pixel_y = 2 }, -/turf/open/floor/corsat{ - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite, /area/corsat/gamma/medbay/surgery) "bAE" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/medidoor{ @@ -28043,146 +20817,96 @@ name = "Genetics Lab"; req_one_access_txt = "103" }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/theta/biodome/complex) "bAF" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhitecorner" - }, +/turf/open/floor/corsat/purplewhitecorner/north, /area/corsat/omega/complex) "bAG" = ( /obj/structure/closet/l3closet/virology, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purplewhitecorner" - }, +/turf/open/floor/corsat/purplewhitecorner/east, /area/corsat/omega/complex) "bAH" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/recharger, -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/gamma/medbay) "bAI" = ( /obj/structure/machinery/cm_vending/sorted/medical/wall_med/limited{ name = "Emergency NanoMed"; pixel_x = 30 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite/east, /area/corsat/gamma/medbay) "bAJ" = ( /obj/structure/closet/l3closet/virology, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/north, /area/corsat/omega/complex) "bAK" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/med_data/laptop{ pixel_y = 3 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/north, /area/corsat/omega/complex) "bAL" = ( /obj/structure/bed/chair/office/light{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/north, /area/corsat/omega/complex) "bAO" = ( /obj/structure/machinery/medical_pod/sleeper, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite/north, /area/corsat/gamma/medbay) "bAP" = ( /obj/structure/machinery/sleep_console, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "greenwhitecorner" - }, +/turf/open/floor/corsat/greenwhitecorner/north, /area/corsat/gamma/medbay) "bAR" = ( /obj/structure/filingcabinet/filingcabinet, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/northeast, /area/corsat/omega/complex) "bAS" = ( /obj/structure/surface/table/almayer, /obj/item/storage/firstaid/rad, -/turf/open/floor/corsat{ - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite, /area/corsat/gamma/medbay) "bAT" = ( /obj/structure/bed/chair/comfy/black{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite/northeast, /area/corsat/gamma/medbay) "bAV" = ( /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/medbay) "bAW" = ( /obj/structure/machinery/light{ dir = 8 }, /obj/structure/closet/firecloset, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/west, /area/corsat/omega/complex) "bAX" = ( /obj/structure/machinery/disposal, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite/southwest, /area/corsat/gamma/medbay/surgery) "bAY" = ( /obj/structure/surface/table/reinforced, /obj/item/tool/surgery/retractor, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite/southeast, /area/corsat/gamma/medbay/surgery) "bAZ" = ( /obj/structure/surface/table/almayer, /obj/item/storage/firstaid/regular, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite/southwest, /area/corsat/gamma/medbay/lobby) "bBa" = ( /obj/structure/machinery/light{ @@ -28194,10 +20918,7 @@ /obj/structure/surface/table/almayer, /obj/item/device/defibrillator, /obj/item/device/defibrillator, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite/east, /area/corsat/gamma/medbay) "bBc" = ( /obj/structure/machinery/door/airlock/almayer/medical/glass/colony{ @@ -28206,42 +20927,30 @@ req_one_access_txt = "103" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/medbay) "bBd" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/med_data/laptop, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite/east, /area/corsat/gamma/medbay) "bBe" = ( /obj/structure/surface/table/almayer, /obj/item/bodybag/cryobag, /obj/item/bodybag/cryobag, /obj/item/bodybag/cryobag, -/turf/open/floor/corsat{ - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite, /area/corsat/gamma/medbay) "bBf" = ( /obj/structure/surface/table/almayer, -/turf/open/floor/corsat{ - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite, /area/corsat/gamma/medbay) "bBh" = ( /obj/structure/sink{ dir = 4; pixel_x = 11 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite/east, /area/corsat/gamma/medbay/surgery) "bBj" = ( /obj/structure/surface/rack, @@ -28252,19 +20961,14 @@ /obj/item/storage/pill_bottle/antitox{ pixel_x = -5 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite/west, /area/corsat/gamma/medbay/chemistry) "bBk" = ( /obj/structure/machinery/smartfridge/chemistry{ req_access_txt = "100"; req_one_access = null }, -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/gamma/medbay/chemistry) "bBl" = ( /obj/structure/surface/rack, @@ -28279,50 +20983,36 @@ dir = 4; network = list("gamma") }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite/west, /area/corsat/gamma/medbay/chemistry) "bBm" = ( /obj/structure/surface/table/almayer, /obj/item/storage/box/syringes, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite/southwest, /area/corsat/gamma/medbay/chemistry) "bBn" = ( /obj/structure/machinery/light, /obj/structure/surface/table/almayer, /obj/item/storage/box/pillbottles, /obj/item/storage/box/pillbottles, -/turf/open/floor/corsat{ - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite, /area/corsat/gamma/medbay/chemistry) "bBo" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/reagentgrinder, -/turf/open/floor/corsat{ - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite, /area/corsat/gamma/medbay/chemistry) "bBp" = ( /obj/structure/surface/table/almayer, /obj/item/storage/box/beakers, /obj/item/storage/box/beakers, /obj/item/tool/hand_labeler, -/turf/open/floor/corsat{ - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite, /area/corsat/gamma/medbay/chemistry) "bBq" = ( /obj/structure/surface/table/almayer, /obj/item/storage/firstaid/regular, -/turf/open/floor/corsat{ - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite, /area/corsat/gamma/medbay/lobby) "bBr" = ( /obj/structure/surface/table/almayer, @@ -28330,9 +21020,7 @@ /obj/item/paper, /obj/item/paper, /obj/item/tool/pen, -/turf/open/floor/corsat{ - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite, /area/corsat/gamma/medbay/lobby) "bBs" = ( /obj/structure/machinery/light, @@ -28340,48 +21028,34 @@ /obj/item/clipboard, /obj/item/clipboard, /obj/item/clipboard, -/turf/open/floor/corsat{ - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite, /area/corsat/gamma/medbay/lobby) "bBt" = ( /obj/structure/surface/table/almayer, /obj/item/paper_bin, /obj/item/tool/pen, -/turf/open/floor/corsat{ - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite, /area/corsat/gamma/medbay/lobby) "bBu" = ( /obj/structure/machinery/light, /obj/structure/machinery/disposal, -/turf/open/floor/corsat{ - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite, /area/corsat/gamma/medbay) "bBw" = ( /obj/structure/surface/table/almayer, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/omega/complex) "bBx" = ( /obj/structure/machinery/light{ dir = 4 }, /obj/structure/filingcabinet/filingcabinet, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purplewhitecorner" - }, +/turf/open/floor/corsat/purplewhitecorner/east, /area/corsat/omega/complex) "bBy" = ( /obj/structure/surface/table/almayer, /obj/item/storage/firstaid/adv, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/southwest, /area/corsat/omega/complex) "bBz" = ( /obj/structure/surface/table/almayer, @@ -28390,60 +21064,39 @@ dir = 1; network = list("omega") }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "purplewhitecorner" - }, +/turf/open/floor/corsat/purplewhitecorner/west, /area/corsat/omega/complex) "bBA" = ( /obj/structure/machinery/photocopier, /obj/structure/machinery/light, -/turf/open/floor/corsat{ - icon_state = "purplewhitecorner" - }, +/turf/open/floor/corsat/purplewhitecorner, /area/corsat/omega/complex) "bBB" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/faxmachine, -/turf/open/floor/corsat{ - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite, /area/corsat/omega/complex) "bBC" = ( /obj/structure/surface/table/almayer, -/turf/open/floor/corsat{ - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite, /area/corsat/omega/complex) "bBD" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purple" - }, +/turf/open/floor/corsat/purple/north, /area/corsat/gamma/residential/researcher) "bBE" = ( /obj/structure/surface/table/almayer, /obj/item/storage/box/gloves, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/northwest, /area/corsat/omega/complex) "bBF" = ( /obj/item/storage/box/masks, /obj/structure/surface/table/almayer, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhitecorner" - }, +/turf/open/floor/corsat/purplewhitecorner/north, /area/corsat/omega/complex) "bBG" = ( /obj/structure/surface/table/almayer, /obj/item/storage/fancy/vials/random, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/north, /area/corsat/omega/complex) "bBH" = ( /obj/structure/surface/rack, @@ -28455,21 +21108,16 @@ name = "Secure Racks"; req_access_txt = "103" }, -/obj/item/XenoBio/Blood, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhite" - }, +/obj/item/oldresearch/Blood, +/turf/open/floor/corsat/purplewhite/north, /area/corsat/omega/complex) "bBI" = ( /obj/structure/filingcabinet/filingcabinet, -/turf/open/floor/corsat{ - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite, /area/corsat/omega/complex) "bBJ" = ( /obj/structure/surface/rack, -/obj/item/XenoBio/Chitin, +/obj/item/oldresearch/Chitin, /obj/structure/window/reinforced/toughened{ dir = 8 }, @@ -28478,9 +21126,7 @@ name = "Secure Racks"; req_access_txt = "103" }, -/turf/open/floor/corsat{ - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite, /area/corsat/omega/complex) "bBL" = ( /obj/structure/machinery/door/poddoor/almayer/open{ @@ -28494,27 +21140,20 @@ name = "Containment"; req_access_txt = "103" }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/omega/complex) "bBM" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/omega/complex) "bBN" = ( /obj/structure/window/reinforced{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/northeast, /area/corsat/omega/complex) "bBO" = ( /obj/structure/window/reinforced{ @@ -28535,34 +21174,23 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/theta/biodome/complex) "bBT" = ( /obj/structure/machinery/door/window/eastright, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/east, /area/corsat/omega/complex) "bBW" = ( /obj/structure/surface/table/almayer, /obj/item/device/camera, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/omega/complex) "bBX" = ( -/turf/open/floor/plating{ - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate, /area/corsat/gamma/hangar) "bBY" = ( /obj/structure/machinery/disposal, -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/omega/complex) "bBZ" = ( /obj/structure/surface/table/woodentable, @@ -28576,10 +21204,7 @@ /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22" }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/corsat/gamma/rnr/library) "bCb" = ( /obj/structure/bed/chair/wood/normal{ @@ -28594,19 +21219,13 @@ /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22" }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/corsat/gamma/rnr/library) "bCd" = ( /obj/structure/bookcase{ icon_state = "book-5" }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/corsat/gamma/rnr/library) "bCe" = ( /obj/structure/bookcase/manuals/medical, @@ -28627,17 +21246,11 @@ icon_state = "book-5"; name = "\improper Mentor's Guide Bookcase" }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/corsat/gamma/rnr/library) "bCi" = ( /obj/structure/bookcase/manuals/research_and_development, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/corsat/gamma/rnr/library) "bCj" = ( /obj/structure/surface/rack, @@ -28647,9 +21260,7 @@ req_access_txt = "103" }, /obj/structure/window/reinforced/toughened, -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/sigma/south/complex) "bCk" = ( /obj/structure/bookcase/manuals/research_and_development, @@ -28661,10 +21272,7 @@ /area/corsat/gamma/rnr/library) "bCn" = ( /obj/structure/bookcase, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/corsat/gamma/rnr/library) "bCo" = ( /obj/structure/bed/chair/wood/normal, @@ -28679,20 +21287,14 @@ /obj/structure/bed/chair/wood/normal{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/corsat/gamma/rnr/library) "bCr" = ( /obj/structure/machinery/light, /obj/structure/bed/chair/wood/normal{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/corsat/gamma/rnr/library) "bCu" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ @@ -28700,44 +21302,30 @@ req_access_txt = "103" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/omega/complex) "bCv" = ( -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/omega/complex) "bCw" = ( /obj/structure/filingcabinet/filingcabinet, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/corsat/red/northwest, /area/corsat/gamma/security) "bCx" = ( /obj/structure/bed/chair/comfy/beige, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/security) "bCy" = ( /obj/structure/bed/chair/comfy/beige, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/security) "bCB" = ( /obj/structure/machinery/vending/cigarette/colony, /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/gamma/security) "bCD" = ( /obj/item/storage/belt/gun/m4a3/vp78{ @@ -28750,18 +21338,13 @@ /obj/item/device/flash, /obj/item/device/hailer, /obj/item/device/megaphone, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/gamma/security) "bCE" = ( /obj/structure/bed/chair/comfy/lime{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/security) "bCF" = ( /obj/structure/closet/secure_closet/security_empty{ @@ -28777,10 +21360,7 @@ /obj/item/clothing/accessory/storage/holster/armpit, /obj/item/device/binoculars, /obj/item/device/flashlight, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/corsat/red/southwest, /area/corsat/gamma/security) "bCG" = ( /obj/structure/machinery/door_control{ @@ -28796,17 +21376,12 @@ pixel_y = -24; use_power = 0 }, -/turf/open/floor/corsat{ - icon_state = "red" - }, +/turf/open/floor/corsat/red, /area/corsat/gamma/security) "bCH" = ( /obj/item/storage/toolbox/mechanical, /obj/structure/surface/rack, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/gamma/security) "bCI" = ( /obj/structure/window/framed/corsat/security, @@ -28820,50 +21395,35 @@ /obj/structure/bed/chair/office/light{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/gamma/hangar/cargo) "bCL" = ( /obj/structure/machinery/camera/autoname{ dir = 8; network = list("sigma") }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/sigma/hangar/checkpoint) "bCM" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/computer/secure_data, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/airlock/control) "bCN" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/computer/secure_data, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/corsat/sigma/hangar/id) "bCQ" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/computer/secure_data{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/airlock/control) "bCR" = ( /obj/structure/surface/table/reinforced, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/theta/airlock/control) "bCS" = ( /obj/structure/window/framed/corsat/security, @@ -28887,10 +21447,7 @@ /obj/structure/machinery/computer/secure_data{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/corsat/red/southwest, /area/corsat/sigma/airlock/south/id) "bCX" = ( /obj/structure/window/framed/corsat/security, @@ -28903,17 +21460,11 @@ /area/corsat/gamma/airlock/south) "bCZ" = ( /obj/structure/machinery/r_n_d/destructive_analyzer, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/north, /area/corsat/sigma/south/complex) "bDa" = ( /obj/structure/machinery/computer/rdservercontrol, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/north, /area/corsat/sigma/south/complex) "bDd" = ( /obj/item/storage/belt/security/MP/full, @@ -28924,33 +21475,22 @@ /obj/item/storage/pouch/general/medium, /obj/item/storage/pouch/pistol, /obj/structure/closet/secure_closet/security, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/corsat/red/northeast, /area/corsat/omega/security) "bDe" = ( /obj/structure/machinery/vending/security, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/omega/security) "bDf" = ( /obj/structure/closet/secure_closet/guncabinet{ name = "riot cabinet"; req_access_txt = "100" }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/omega/security) "bDg" = ( /obj/structure/bed/chair/comfy/black, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/security) "bDk" = ( /obj/item/storage/belt/security/MP/full, @@ -28961,17 +21501,11 @@ /obj/item/storage/pouch/general/medium, /obj/item/storage/pouch/pistol, /obj/structure/closet/secure_closet/security, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/omega/security) "bDl" = ( /obj/structure/filingcabinet/filingcabinet, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/corsat/omega/security) "bDn" = ( /obj/structure/machinery/light{ @@ -28989,35 +21523,23 @@ /area/corsat/omega/security) "bDs" = ( /obj/structure/filingcabinet/filingcabinet, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/corsat/red/northwest, /area/corsat/sigma/south/security) "bDt" = ( /obj/structure/filingcabinet/filingcabinet, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/corsat/sigma/south/security) "bDu" = ( /obj/structure/surface/table/almayer, -/obj/item/handcuffs, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/obj/item/restraint/handcuffs, +/turf/open/floor/corsat/red/west, /area/corsat/omega/checkpoint) "bDv" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ - locked = 0; name = "Security Armory"; req_access_txt = "101" }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/south/security) "bDw" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ @@ -29027,9 +21549,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/south/security) "bDy" = ( /obj/structure/machinery/light{ @@ -29038,43 +21558,31 @@ /obj/structure/bed/chair/comfy/black{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/sigma/south/security) "bDz" = ( /obj/structure/window/reinforced{ dir = 4; health = 80 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/security) "bDC" = ( /obj/structure/bed/chair, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/south/security) "bDD" = ( /obj/structure/bed/chair, /obj/structure/machinery/flasher{ pixel_y = 24 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/corsat/sigma/south/security) "bDF" = ( /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "red" - }, +/turf/open/floor/corsat/red, /area/corsat/sigma/south/security) "bDH" = ( /obj/structure/window/framed/corsat/cell/security, @@ -29090,10 +21598,7 @@ /obj/structure/machinery/computer/secure_data{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/corsat/red/northeast, /area/corsat/theta/airlock/west/id) "bDJ" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ @@ -29108,9 +21613,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/south/security) "bDM" = ( /obj/structure/pipes/vents/pump/siphon/on{ @@ -29124,33 +21627,21 @@ dir = 5 }, /obj/structure/machinery/meter, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/north, /area/corsat/sigma/airlock/control) "bDO" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/skills, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/northwest, /area/corsat/gamma/administration) "bDP" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/keycard_auth/lockdown/corsat, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/west, /area/corsat/gamma/administration) "bDT" = ( /obj/structure/surface/table/almayer, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/west, /area/corsat/gamma/airlock/control) "bDU" = ( /obj/structure/surface/table/reinforced, @@ -29158,57 +21649,37 @@ dir = 4; network = list("sigma") }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/sigma/checkpoint) "bDX" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/computer/cameras{ network = list("sigma") }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/corsat/sigma/airlock/south/id) "bDY" = ( /obj/item/device/taperecorder, /obj/structure/surface/table/reinforced, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/omega/security) "bDZ" = ( /obj/structure/surface/rack, /obj/item/storage/toolbox/mechanical, /obj/effect/spawner/random/toolbox, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/omega/security) "bEb" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/north, /area/corsat/sigma/southeast/datalab) "bEf" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/north, /area/corsat/theta/biodome/complex) "bEg" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/north, /area/corsat/sigma/south/robotics) "bEi" = ( /obj/structure/surface/table/reinforced, @@ -29217,63 +21688,45 @@ name = "Checkpoint Control"; use_power = 0 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/east, /area/corsat/omega/hangar/security) "bEj" = ( /obj/structure/surface/table/reinforced, /obj/item/storage/fancy/cigarettes/lucky_strikes, /obj/item/tool/lighter/random, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/corsat/red/northwest, /area/corsat/omega/control) "bEk" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/computer/cameras{ network = list("omega") }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/corsat/omega/control) "bEl" = ( /obj/structure/machinery/light, /obj/structure/machinery/cm_vending/sorted/medical/no_access{ req_access_txt = "100" }, -/turf/open/floor/corsat{ - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite, /area/corsat/gamma/medbay/chemistry) "bEm" = ( /obj/structure/bed/chair/comfy/black{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/control) "bEn" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/computer/secure_data{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "red" - }, +/turf/open/floor/corsat/red, /area/corsat/omega/control) "bEo" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/computer/secure_data, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/corsat/omega/hangar/security) "bEp" = ( /obj/structure/surface/table/reinforced, @@ -29289,40 +21742,27 @@ pixel_x = -7; use_power = 0 }, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/corsat/red/northeast, /area/corsat/omega/hangar/security) "bEq" = ( /obj/structure/surface/table/reinforced, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/omega/hangar/security) "bEr" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/computer/cameras{ network = list("omega") }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/hangar/security) "bEs" = ( /obj/structure/surface/table/reinforced, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/omega/hangar/security) "bEt" = ( /obj/structure/surface/table/reinforced, /obj/item/phone, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/omega/hangar/security) "bEv" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ @@ -29330,25 +21770,18 @@ name = "Research Complex Omega"; req_access_txt = "103" }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/omega/complex) "bEy" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "Laboratory"; req_access_txt = "103" }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/west, /area/corsat/theta/biodome/complex) "bEC" = ( /obj/structure/machinery/lapvend, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/gamma/administration) "bED" = ( /obj/structure/machinery/power/apc/high{ @@ -29359,10 +21792,7 @@ /obj/structure/surface/table/almayer, /obj/item/paper_bin, /obj/item/tool/pen, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/north, /area/corsat/gamma/administration) "bEE" = ( /obj/structure/machinery/light{ @@ -29373,10 +21803,7 @@ /obj/structure/window/reinforced{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/north, /area/corsat/gamma/administration) "bEF" = ( /obj/structure/machinery/disposal, @@ -29395,24 +21822,16 @@ "bEI" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/communications, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/west, /area/corsat/gamma/administration) "bEK" = ( /obj/structure/bed/chair/office/light, -/turf/open/floor{ - dir = 8; - icon_state = "carpet14-10" - }, +/turf/open/floor/carpet14_10/west, /area/corsat/gamma/administration) "bEM" = ( /obj/structure/surface/table/almayer, /obj/item/device/flashlight/lamp, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/omega/offices) "bEN" = ( /obj/structure/surface/table/almayer, @@ -29420,21 +21839,13 @@ /obj/structure/window/reinforced{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/gamma/administration) "bEO" = ( -/turf/open/floor{ - dir = 8; - icon_state = "carpet7-3" - }, +/turf/open/floor/carpet7_3/west, /area/corsat/gamma/administration) "bES" = ( -/turf/open/floor{ - dir = 8; - icon_state = "carpet11-12" - }, +/turf/open/floor/carpet11_12/west, /area/corsat/gamma/administration) "bET" = ( /obj/structure/machinery/photocopier, @@ -29449,9 +21860,7 @@ /obj/structure/machinery/computer/med_data/laptop{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey, /area/corsat/gamma/administration) "bEV" = ( /obj/structure/surface/table/almayer, @@ -29461,38 +21870,27 @@ /obj/structure/machinery/computer/station_alert{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey, /area/corsat/gamma/administration) "bEW" = ( /obj/structure/bed/chair/office/light{ dir = 1 }, -/turf/open/floor{ - dir = 8; - icon_state = "carpet13-5" - }, +/turf/open/floor/carpet13_5/west, /area/corsat/gamma/administration) "bEX" = ( /obj/structure/machinery/light, /obj/structure/bed/chair/office/light{ dir = 1 }, -/turf/open/floor{ - dir = 8; - icon_state = "carpet13-5" - }, +/turf/open/floor/carpet13_5/west, /area/corsat/gamma/administration) "bFc" = ( /obj/structure/machinery/vending/cola, /turf/open/floor/wood, /area/corsat/sigma/cafe) "bFf" = ( -/turf/open/floor{ - dir = 8; - icon_state = "carpet6-2" - }, +/turf/open/floor/carpet6_2/west, /area/corsat/omega/offices) "bFg" = ( /obj/structure/surface/table/almayer, @@ -29502,9 +21900,7 @@ }, /obj/structure/window/reinforced, /obj/item/storage/fancy/cigarettes/lucky_strikes, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/omega/offices) "bFi" = ( /obj/structure/machinery/light{ @@ -29514,30 +21910,20 @@ /obj/structure/window/reinforced, /obj/item/paper, /obj/item/tool/pen/blue, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/omega/offices) "bFj" = ( /obj/structure/surface/table/almayer, /obj/item/storage/fancy/cigarettes/lucky_strikes, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/omega/offices) "bFm" = ( -/turf/open/floor{ - dir = 8; - icon_state = "carpet7-3" - }, +/turf/open/floor/carpet7_3/west, /area/corsat/omega/offices) "bFn" = ( /obj/structure/surface/table/woodentable/fancy, /obj/item/device/flashlight/lamp/green, -/turf/open/floor{ - dir = 8; - icon_state = "carpet15-15" - }, +/turf/open/floor/carpet15_15/west, /area/corsat/omega/offices) "bFo" = ( /obj/structure/surface/table/almayer, @@ -29547,23 +21933,16 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/omega/offices) "bFp" = ( /obj/structure/surface/table/almayer, /obj/item/paper, -/turf/open/floor/corsat{ - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey, /area/corsat/sigma/south/offices) "bFq" = ( /obj/structure/machinery/vending/snack, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/corsat/red/northeast, /area/corsat/gamma/security) "bFr" = ( /obj/structure/window/reinforced{ @@ -29573,16 +21952,11 @@ /obj/structure/bed/chair/office/light{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/security) "bFs" = ( /obj/structure/machinery/vending/coffee, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/gamma/security) "bFt" = ( /obj/structure/machinery/light{ @@ -29590,141 +21964,99 @@ }, /obj/structure/window/reinforced, /obj/structure/surface/table/reinforced, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/security) "bFu" = ( /obj/structure/window/reinforced, /obj/structure/machinery/door/window/brigdoor/eastleft{ name = "Forensics" }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/security) "bFv" = ( /obj/structure/bed/chair, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/security) "bFw" = ( /obj/structure/machinery/light{ dir = 4 }, /obj/structure/bed/chair, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/gamma/security) "bFx" = ( /obj/structure/machinery/computer/secure_data, /obj/structure/surface/table/almayer, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/corsat/red/northwest, /area/corsat/gamma/security) "bFy" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/cameras{ network = list("gamma") }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/north, /area/corsat/gamma/security) "bFz" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ name = "Holding Cell 1"; req_access_txt = "101" }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/checkpoint) "bFA" = ( /obj/structure/surface/table/almayer, /obj/item/ashtray/bronze, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/gamma/security) "bFB" = ( /obj/structure/bed/chair/office/light{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/corsat/red/southwest, /area/corsat/gamma/security) "bFC" = ( /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "red" - }, +/turf/open/floor/corsat/red, /area/corsat/gamma/security) "bFD" = ( /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/corsat/red/southeast, /area/corsat/gamma/security) "bFF" = ( /obj/structure/surface/table/almayer, -/obj/item/handcuffs, -/obj/item/handcuffs, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/obj/item/restraint/handcuffs, +/obj/item/restraint/handcuffs, +/turf/open/floor/corsat/red/west, /area/corsat/omega/security) "bFG" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/recharger, -/turf/open/floor/corsat{ - icon_state = "red" - }, +/turf/open/floor/corsat/red, /area/corsat/gamma/security) "bFH" = ( /obj/structure/surface/table/reinforced, /obj/item/clothing/gloves/latex, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/security) "bFI" = ( /obj/structure/surface/table/reinforced, /obj/item/device/taperecorder, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/security) "bFK" = ( /obj/structure/surface/table/almayer, /obj/item/device/camera, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/security) "bFL" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/toolbox, /obj/effect/spawner/random/toolbox, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/northwest, /area/corsat/gamma/residential/maint) "bFM" = ( /obj/structure/surface/table/almayer, @@ -29734,10 +22066,7 @@ /obj/structure/machinery/computer/station_alert{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/north, /area/corsat/gamma/hangar/flightcontrol) "bFN" = ( /obj/structure/surface/table/almayer, @@ -29749,17 +22078,11 @@ dir = 4; network = list("gamma") }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/north, /area/corsat/gamma/hangar/flightcontrol) "bFO" = ( /obj/structure/flora/pottedplant, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/northeast, /area/corsat/gamma/hangar/flightcontrol) "bFP" = ( /obj/structure/surface/table/almayer, @@ -29769,9 +22092,7 @@ /obj/item/clipboard, /obj/item/paper, /obj/item/tool/pen/blue, -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/gamma/hangar/flightcontrol) "bFQ" = ( /obj/structure/surface/table/almayer, @@ -29780,71 +22101,48 @@ health = 250 }, /obj/item/storage/fancy/cigarettes/lucky_strikes, -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/gamma/hangar/flightcontrol) "bFR" = ( /obj/structure/surface/table/almayer, /obj/item/paper, /obj/item/tool/pen/blue, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/west, /area/corsat/gamma/hangar/flightcontrol) "bFT" = ( /obj/structure/surface/table/almayer, /obj/item/device/flashlight/lamp, -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/gamma/hangar/flightcontrol) "bFU" = ( /obj/structure/surface/table/almayer, /obj/item/paper_bin, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/southwest, /area/corsat/gamma/hangar/flightcontrol) "bFV" = ( /obj/structure/surface/table/almayer, /obj/item/clipboard, -/turf/open/floor/corsat{ - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey, /area/corsat/gamma/hangar/flightcontrol) "bFW" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/faxmachine, -/turf/open/floor/corsat{ - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey, /area/corsat/gamma/hangar/flightcontrol) "bFX" = ( /obj/structure/flora/pottedplant, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "bluegreycorner" - }, +/turf/open/floor/corsat/bluegreycorner/west, /area/corsat/gamma/hangar/flightcontrol) "bFY" = ( /obj/structure/surface/table/almayer, /obj/item/paper_bin, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/north, /area/corsat/gamma/hangar/flightcontrol) "bFZ" = ( /obj/structure/surface/table/almayer, /obj/item/paper_bin, /obj/item/tool/pen/blue, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/north, /area/corsat/gamma/hangar/flightcontrol) "bGa" = ( /obj/structure/surface/table/almayer, @@ -29852,23 +22150,15 @@ /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/omega/offices) "bGc" = ( /obj/structure/reagent_dispensers/water_cooler, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/west, /area/corsat/gamma/hangar/flightcontrol) "bGd" = ( /obj/structure/flora/pottedplant, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/west, /area/corsat/gamma/hangar/flightcontrol) "bGe" = ( /obj/structure/surface/table/almayer, @@ -29877,9 +22167,7 @@ health = 80 }, /obj/item/device/flashlight/lamp, -/turf/open/floor/corsat{ - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey, /area/corsat/gamma/hangar/flightcontrol) "bGf" = ( /obj/structure/surface/table/almayer, @@ -29889,9 +22177,7 @@ }, /obj/item/clipboard, /obj/item/tool/pen/blue, -/turf/open/floor/corsat{ - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey, /area/corsat/gamma/hangar/flightcontrol) "bGg" = ( /obj/structure/surface/table/almayer, @@ -29899,9 +22185,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/omega/offices) "bGh" = ( /obj/structure/surface/table/almayer, @@ -29909,9 +22193,7 @@ dir = 4 }, /obj/item/storage/donut_box, -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/gamma/hangar/flightcontrol) "bGi" = ( /obj/structure/surface/table/almayer, @@ -29920,22 +22202,15 @@ health = 80 }, /obj/item/storage/fancy/cigarettes/lucky_strikes, -/turf/open/floor/corsat{ - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey, /area/corsat/gamma/hangar/flightcontrol) "bGj" = ( /obj/structure/largecrate/random/barrel, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/east, /area/corsat/gamma/residential/maint) "bGn" = ( /obj/structure/largecrate/random/barrel, -/turf/open/floor/corsat{ - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow, /area/corsat/gamma/residential/maint) "bGp" = ( /obj/structure/machinery/power/apc/hyper{ @@ -29943,16 +22218,11 @@ start_charge = 0 }, /obj/structure/bed/sofa/vert/grey/bot, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/hangar/monorail) "bGq" = ( /obj/structure/closet/toolcloset, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/west, /area/corsat/gamma/hangar/monorail/control) "bGr" = ( /obj/structure/machinery/power/apc/hyper{ @@ -29961,27 +22231,18 @@ start_charge = 0 }, /obj/structure/closet/jcloset, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/west, /area/corsat/gamma/hangar/monorail/control) "bGs" = ( /obj/structure/surface/table/reinforced, /obj/item/paper, /obj/item/tool/pen/blue, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/gamma/hangar/monorail/control) "bGt" = ( /obj/structure/janitorialcart, /obj/item/tool/mop, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/west, /area/corsat/gamma/hangar/monorail/control) "bGu" = ( /obj/structure/machinery/power/apc/hyper{ @@ -29989,10 +22250,7 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "darkgreen" - }, +/turf/open/floor/corsat/darkgreen/north, /area/corsat/sigma/hangar/monorail) "bGy" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ @@ -30001,53 +22259,37 @@ req_access_txt = "101" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/hangar/monorail/control) "bGB" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "darkgreen" - }, +/turf/open/floor/corsat/darkgreen/east, /area/corsat/sigma/hangar/arrivals) "bGE" = ( /obj/structure/machinery/camera/autoname{ network = list("sigma") }, /obj/structure/bed/sofa/vert/grey/bot, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "darkgreen" - }, +/turf/open/floor/corsat/darkgreen/north, /area/corsat/sigma/hangar/arrivals) "bGH" = ( /obj/structure/bed/chair/office/light{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/gamma/hangar/office) "bGI" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/shuttle/dropship/flight/lz1{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/east, /area/corsat/landing/console) "bGJ" = ( /obj/structure/filingcabinet/filingcabinet, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/west, /area/corsat/gamma/hangar/office) "bGL" = ( /obj/structure/flora/pottedplant, @@ -30055,29 +22297,21 @@ dir = 8; network = list("gamma") }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/east, /area/corsat/gamma/hangar/office) "bGM" = ( /obj/structure/machinery/light{ dir = 4 }, /obj/structure/flora/pottedplant, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/east, /area/corsat/gamma/hangar/office) "bGN" = ( /obj/structure/bed/chair/office/light{ dir = 4 }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/gamma/hangar/office) "bGO" = ( /obj/structure/surface/table/almayer, @@ -30085,118 +22319,81 @@ dir = 8; network = list("gamma") }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/east, /area/corsat/gamma/hangar/office) "bGP" = ( /obj/structure/prop/dam/crane, -/turf/open/floor/corsat{ - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow, /area/corsat/sigma/south/robotics) "bGQ" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22" }, -/turf/open/floor/corsat{ - icon_state = "darkgreencorner" - }, +/turf/open/floor/corsat/darkgreencorner, /area/corsat/gamma/foyer) "bGR" = ( /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "darkgreen" - }, +/turf/open/floor/corsat/darkgreen/north, /area/corsat/gamma/foyer) "bGT" = ( /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "darkgreen" - }, +/turf/open/floor/corsat/darkgreen/north, /area/corsat/gamma/foyer) "bGW" = ( /obj/structure/pipes/standard/simple/visible{ dir = 5 }, -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/gamma/medbay) "bGZ" = ( /obj/structure/bed/chair, /obj/item/bananapeel, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/gamma/canteen) "bHa" = ( /obj/structure/bed/chair/comfy/black{ dir = 1 }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 8; - icon_state = "carpet9-4" - }, +/turf/open/floor/carpet9_4/west, /area/corsat/gamma/administration) "bHb" = ( /obj/structure/bed/chair/comfy/black{ dir = 1 }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 8; - icon_state = "carpet5-1" - }, +/turf/open/floor/carpet5_1/west, /area/corsat/gamma/administration) "bHc" = ( /obj/structure/machinery/computer/prisoner, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/corsat/gamma/security) "bHd" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purple" - }, +/turf/open/floor/corsat/purple/north, /area/corsat/gamma/residential/researcher) "bHe" = ( /obj/structure/surface/table, /obj/item/book, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/gamma/residential/west) "bHf" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22" }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/foyer) "bHg" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22" }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/hallwaysouth) "bHi" = ( /obj/structure/machinery/light{ @@ -30205,10 +22402,7 @@ /obj/structure/flora/pottedplant{ icon_state = "pottedplant_10" }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/west, /area/corsat/gamma/residential/researcher) "bHj" = ( /obj/structure/machinery/light{ @@ -30217,70 +22411,48 @@ /obj/structure/flora/pottedplant{ icon_state = "pottedplant_10" }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/east, /area/corsat/gamma/residential/researcher) "bHk" = ( /obj/structure/machinery/vending/snack, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/rnr) "bHl" = ( /obj/structure/platform{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "white" - }, +/turf/open/floor/corsat/white/north, /area/corsat/gamma/residential/east) "bHy" = ( /obj/structure/surface/table/almayer, /obj/item/ashtray/plastic, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/maint) "bHz" = ( /obj/structure/showcase{ icon_state = "bus" }, -/turf/open/floor/almayer{ - icon_state = "tcomms" - }, +/turf/open/floor/almayer/tcomms, /area/corsat/sigma/southeast/telecomm) "bHA" = ( /obj/structure/surface/table, /obj/item/trash/plate, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/gamma/canteen) "bHB" = ( /obj/structure/surface/table, /obj/item/trash/plate, -/turf/open/floor/corsat{ - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan, /area/corsat/gamma/canteen) "bHC" = ( /obj/structure/machinery/botany{ name = "hydroponics tray" }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/hydroponics) "bHL" = ( /obj/structure/machinery/disposal, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "darkgreen" - }, +/turf/open/floor/corsat/darkgreen/north, /area/corsat/sigma/hangar/arrivals) "bHR" = ( /obj/structure/surface/table/woodentable, @@ -30291,24 +22463,18 @@ /obj/structure/surface/table/almayer, /obj/item/paper_bin, /obj/item/tool/pen/blue, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/sigma/hangar/office) "bIe" = ( /obj/effect/decal/cleanable/blood/splatter, /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/sigma/hangar/arrivals) "bIk" = ( /obj/structure/reagent_dispensers/water_cooler, -/turf/open/floor/corsat{ - icon_state = "darkgreen" - }, +/turf/open/floor/corsat/darkgreen, /area/corsat/sigma/hangar/arrivals) "bIU" = ( /obj/structure/surface/table/reinforced, @@ -30316,96 +22482,63 @@ dir = 8; network = list("omega") }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/gamma/airlock/south/id) "bIX" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/faxmachine, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/sigma/south/offices) "bJa" = ( /obj/structure/machinery/conveyor_switch, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/cargo) "bJc" = ( /obj/structure/machinery/conveyor_switch, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/cargo) "bJf" = ( /obj/structure/surface/table, /obj/item/tool/kitchen/utensil/fork, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/gamma/canteen) "bJg" = ( /obj/structure/surface/table, /obj/item/tool/kitchen/utensil/fork, -/turf/open/floor/corsat{ - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan, /area/corsat/gamma/canteen) "bJh" = ( /obj/structure/machinery/photocopier, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/west, /area/corsat/omega/offices) "bJi" = ( /obj/structure/surface/table/almayer, /obj/item/storage/box/donkpockets, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/omega/security) "bJj" = ( /obj/vehicle/powerloader, -/turf/open/floor/corsat{ - icon_state = "cargo" - }, +/turf/open/floor/corsat/cargo, /area/corsat/gamma/cargo) "bJk" = ( /obj/vehicle/powerloader, -/turf/open/floor/corsat{ - icon_state = "cargo" - }, +/turf/open/floor/corsat/cargo, /area/corsat/sigma/cargo) "bJl" = ( /obj/vehicle/powerloader, -/turf/open/floor/corsat{ - icon_state = "cargo" - }, +/turf/open/floor/corsat/cargo, /area/corsat/omega/cargo) "bJm" = ( /obj/structure/powerloader_wreckage, -/turf/open/mars_cave{ - icon_state = "mars_cave_22" - }, +/turf/open/mars_cave/mars_cave_22, /area/corsat/sigma/biodome/scrapyard) "bJq" = ( /obj/structure/surface/table/reinforced, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/theta/airlock/west) "bJr" = ( /obj/structure/bed/chair/office/light, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/theta/airlock/west) "bJu" = ( /obj/structure/machinery/light, @@ -30413,64 +22546,43 @@ /obj/structure/machinery/computer/station_alert{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "red" - }, +/turf/open/floor/corsat/red, /area/corsat/theta/airlock/west) "bJw" = ( /obj/structure/surface/table/almayer, /obj/item/device/assembly/infra, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/northeast, /area/corsat/gamma/engineering) "bJx" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/computer/guestpass, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/corsat/gamma/hangar/cargo) "bJA" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/computer/cameras{ network = list("gamma") }, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/northeast, /area/corsat/gamma/airlock/control) "bJB" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/computer/atmos_alert, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/northwest, /area/corsat/sigma/airlock/control) "bJC" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/computer/station_alert, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/north, /area/corsat/sigma/airlock/control) "bJD" = ( /obj/structure/surface/table/almayer, /obj/item/device/flashlight/lamp, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/northwest, /area/corsat/gamma/airlock/control) "bJE" = ( /obj/structure/machinery/floodlight{ - name = "Floodlight"; - unacidable = 0 + name = "Floodlight" }, /turf/open/mars, /area/corsat/sigma/biodome) @@ -30478,81 +22590,59 @@ /obj/structure/bed/chair/office/light{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/airlock/control) "bJG" = ( /obj/structure/bed/chair/office/light{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/airlock/control) "bJH" = ( /obj/structure/surface/table/almayer, /obj/item/storage/donut_box, /obj/item/tool/lighter/random, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/corsat/red/northwest, /area/corsat/theta/airlock/control) "bJI" = ( /obj/structure/bed/chair/office/light{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/airlock/control) "bJJ" = ( /obj/structure/bed/chair/office/light{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/airlock/control) "bJK" = ( /obj/structure/surface/table/almayer, /obj/item/storage/fancy/cigarettes/lucky_strikes, /obj/item/tool/lighter/random, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/security) "bJL" = ( /obj/structure/bed/chair/office/light, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/airlock/control) "bJM" = ( /obj/structure/bed/chair/office/light, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/airlock/control) "bJN" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/computer/station_alert{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "blue" - }, +/turf/open/floor/corsat/blue, /area/corsat/gamma/airlock/control) "bJO" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/computer/atmos_alert{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/southeast, /area/corsat/gamma/airlock/control) "bJP" = ( /obj/structure/surface/table/reinforced, @@ -30560,10 +22650,7 @@ dir = 1; network = list("sigma") }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/southwest, /area/corsat/sigma/airlock/control) "bJQ" = ( /obj/structure/surface/table/reinforced, @@ -30571,67 +22658,46 @@ dir = 4; network = list("theta") }, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/northwest, /area/corsat/theta/airlock/control) "bJR" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/computer/atmos_alert{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/northeast, /area/corsat/theta/airlock/control) "bJS" = ( /obj/structure/bed/chair/office/light{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/theta/airlock/control) "bJT" = ( /obj/structure/bed/chair/office/light{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/theta/airlock/control) "bJU" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/computer/station_alert{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/east, /area/corsat/theta/airlock/control) "bJV" = ( /obj/structure/flora/pottedplant, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/north, /area/corsat/sigma/airlock/control) "bJW" = ( /obj/structure/bed/chair/office/light, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/theta/airlock/control) "bJX" = ( /obj/structure/surface/table/almayer, /obj/item/device/camera, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/southeast, /area/corsat/sigma/airlock/control) "bJY" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony{ @@ -30646,16 +22712,11 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/airlock/control) "bJZ" = ( /obj/structure/surface/table/almayer, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/north, /area/corsat/sigma/airlock/control) "bKa" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony{ @@ -30668,24 +22729,16 @@ name = "Access Shutter" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/airlock/control) "bKb" = ( /obj/structure/closet/secure_closet/security, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/corsat/theta/airlock/control) "bKc" = ( /obj/structure/surface/table/almayer, /obj/item/device/camera, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/southwest, /area/corsat/theta/airlock/control) "bKd" = ( /obj/structure/surface/table/reinforced, @@ -30694,45 +22747,29 @@ /obj/structure/machinery/camera/autoname{ network = list("sigma") }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/north, /area/corsat/sigma/airlock/control) "bKe" = ( /obj/structure/filingcabinet/filingcabinet, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/north, /area/corsat/sigma/airlock/control) "bKf" = ( /obj/structure/machinery/photocopier, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/northeast, /area/corsat/sigma/airlock/control) "bKg" = ( /obj/structure/machinery/photocopier, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/southwest, /area/corsat/gamma/airlock/control) "bKh" = ( /obj/structure/filingcabinet/filingcabinet, -/turf/open/floor/corsat{ - icon_state = "blue" - }, +/turf/open/floor/corsat/blue, /area/corsat/gamma/airlock/control) "bKi" = ( /obj/structure/surface/table/reinforced, /obj/item/paper_bin, /obj/item/tool/pen/red, -/turf/open/floor/corsat{ - icon_state = "blue" - }, +/turf/open/floor/corsat/blue, /area/corsat/gamma/airlock/control) "bKj" = ( /obj/structure/surface/table/reinforced, @@ -30742,157 +22779,104 @@ dir = 8; network = list("theta") }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/east, /area/corsat/theta/airlock/control) "bKk" = ( /obj/structure/filingcabinet/filingcabinet, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/east, /area/corsat/theta/airlock/control) "bKl" = ( /obj/structure/machinery/photocopier, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/southeast, /area/corsat/theta/airlock/control) "bKm" = ( /obj/structure/surface/table/almayer, /obj/item/device/flashlight/lamp, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/northeast, /area/corsat/sigma/airlock/control) "bKn" = ( /obj/structure/surface/table/almayer, /obj/item/clipboard, /obj/item/paper, /obj/item/tool/pen/red, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/west, /area/corsat/gamma/airlock/control) "bKo" = ( /obj/structure/bed/chair/office/light{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/airlock/control) "bKp" = ( /obj/structure/surface/table/almayer, /obj/item/clipboard, /obj/item/paper, /obj/item/tool/pen/red, -/turf/open/floor/corsat{ - icon_state = "blue" - }, +/turf/open/floor/corsat/blue, /area/corsat/sigma/airlock/control) "bKq" = ( /obj/structure/bed/chair/office/light, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/airlock/control) "bKr" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/emails{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "blue" - }, +/turf/open/floor/corsat/blue, /area/corsat/gamma/airlock/control) "bKs" = ( /obj/structure/surface/table/reinforced, /obj/item/device/flashlight/lamp, -/turf/open/floor/corsat{ - icon_state = "blue" - }, +/turf/open/floor/corsat/blue, /area/corsat/sigma/airlock/control) "bKt" = ( /obj/structure/surface/table/reinforced, /obj/item/device/flashlight/lamp, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/west, /area/corsat/theta/airlock/control) "bKv" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/emails{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/east, /area/corsat/theta/airlock/control) "bKw" = ( /obj/structure/surface/table/almayer, /obj/item/clipboard, /obj/item/paper, /obj/item/tool/pen/red, -/turf/open/floor/corsat{ - icon_state = "blue" - }, +/turf/open/floor/corsat/blue, /area/corsat/theta/airlock/control) "bKx" = ( /obj/structure/surface/table/almayer, /obj/item/device/flashlight/lamp, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/southeast, /area/corsat/theta/airlock/control) "bKy" = ( /obj/structure/machinery/computer3, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/north, /area/corsat/gamma/airlock/control) "bKz" = ( /obj/structure/machinery/computer3, -/turf/open/floor/corsat{ - icon_state = "blue" - }, +/turf/open/floor/corsat/blue, /area/corsat/sigma/airlock/control) "bKA" = ( -/turf/open/floor/corsat{ - dir = 6; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/southeast, /area/corsat/sigma/airlock/control) "bKB" = ( /obj/structure/machinery/computer3, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/west, /area/corsat/theta/airlock/control) "bKC" = ( -/turf/open/floor/corsat{ - dir = 10; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/southwest, /area/corsat/theta/airlock/control) "bKD" = ( /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/northeast, /area/corsat/sigma/dorms) "bKE" = ( /obj/structure/machinery/light{ @@ -30901,10 +22885,7 @@ /obj/structure/flora/pottedplant{ icon_state = "pottedplant_21" }, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/northwest, /area/corsat/sigma/dorms) "bKF" = ( /obj/structure/machinery/light{ @@ -30913,99 +22894,65 @@ /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/east, /area/corsat/sigma/dorms) "bKG" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_21" }, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/northwest, /area/corsat/sigma/dorms) "bKH" = ( /obj/structure/bed/chair, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/northwest, /area/corsat/sigma/dorms) "bKI" = ( /obj/structure/bed/chair, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "whitetancorner" - }, +/turf/open/floor/corsat/whitetancorner/north, /area/corsat/sigma/dorms) "bKJ" = ( /obj/structure/surface/table, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/west, /area/corsat/sigma/dorms) "bKK" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/landmark/static_comms/net_two, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/sigma/dorms) "bKL" = ( /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/southwest, /area/corsat/sigma/dorms) "bKM" = ( /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "whitetancorner" - }, +/turf/open/floor/corsat/whitetancorner/west, /area/corsat/sigma/dorms) "bKN" = ( /obj/structure/flora/pottedplant, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/southwest, /area/corsat/gamma/administration) "bKQ" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/toolbox, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/hangar/monorail/control) "bKR" = ( /obj/structure/bed/chair/comfy/black{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/hangar/monorail/control) "bKS" = ( /obj/structure/surface/table/reinforced, /obj/item/paper, /obj/item/tool/pen/blue, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/sigma/hangar/monorail/control) "bKT" = ( /obj/structure/machinery/light{ @@ -31013,29 +22960,18 @@ }, /obj/structure/surface/rack, /obj/effect/spawner/random/toolbox, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/hangar/monorail/control) "bKU" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner/north, /area/corsat/sigma/hangar/monorail) "bKX" = ( /obj/structure/machinery/light, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/east, /area/corsat/sigma/hangar/monorail) "bKY" = ( /obj/structure/closet/jcloset, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/north, /area/corsat/omega/maint) "bKZ" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ @@ -31044,257 +22980,169 @@ req_access_txt = "101" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/hangar/monorail/control) "bLc" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner/north, /area/corsat/gamma/hangar/monorail) "bLd" = ( /obj/structure/surface/table/reinforced, /obj/item/folder/black_random, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/sigma/hangar/monorail/control) "bLg" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/computer/station_alert, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/corsat/red/northwest, /area/corsat/sigma/hangar/monorail/control) "bLh" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/computer/cameras{ network = list("gamma") }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/corsat/sigma/hangar/monorail/control) "bLi" = ( /obj/structure/bed/chair/comfy/black{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/hangar/monorail/control) "bLk" = ( /obj/structure/surface/rack, /obj/item/circuitboard/airlock, /obj/item/circuitboard/airlock, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/southwest, /area/corsat/gamma/residential/maint) "bLl" = ( /obj/structure/filingcabinet/filingcabinet, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner/west, /area/corsat/omega/maint) "bLm" = ( /obj/structure/closet/jcloset, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/hangar/monorail/control) "bLn" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/computer/shuttle_control/monorail{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/sigma/hangar/monorail/control) "bLq" = ( /obj/structure/machinery/light{ dir = 4 }, /obj/structure/closet/jcloset, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/hangar/monorail/control) "bLr" = ( /obj/structure/surface/table/reinforced, /obj/item/storage/fancy/cigarettes/lucky_strikes, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/corsat/red/southwest, /area/corsat/sigma/hangar/monorail/control) "bLs" = ( /obj/structure/closet/secure_closet/engineering_welding{ req_access_txt = "102" }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/east, /area/corsat/omega/maint) "bLu" = ( /obj/structure/janitorialcart, /obj/item/tool/mop, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/hangar/monorail/control) "bLw" = ( /obj/structure/surface/table/almayer, /obj/item/paper, /obj/item/tool/pen/blue, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/east, /area/corsat/gamma/hangar/office) "bLx" = ( /obj/structure/bed/chair/office/light{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/engineering) "bLy" = ( /obj/structure/machinery/cm_vending/sorted/tech/tool_storage{ req_access_txt = "102" }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/west, /area/corsat/omega/maint) "bLz" = ( /obj/structure/closet/secure_closet/engineering_electrical{ req_access_txt = "102" }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/east, /area/corsat/omega/maint) "bLA" = ( /obj/structure/closet/wardrobe/engineering_yellow, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/east, /area/corsat/gamma/engineering) "bLB" = ( /obj/structure/closet/wardrobe/engineering_yellow, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner/east, /area/corsat/gamma/engineering) "bLC" = ( /obj/structure/janitorialcart, /obj/item/tool/mop, -/turf/open/floor/corsat{ - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow, /area/corsat/omega/maint) "bLD" = ( /obj/structure/closet/l3closet/janitor, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/northeast, /area/corsat/omega/maint) "bLE" = ( /obj/structure/machinery/disposal, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/north, /area/corsat/omega/maint) "bLF" = ( /obj/structure/machinery/power/monitor{ name = "Main Power Grid Monitoring" }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/north, /area/corsat/omega/maint) "bLG" = ( /obj/structure/surface/rack, /obj/item/stock_parts/capacitor/super, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/north, /area/corsat/omega/maint) "bLI" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony{ name = "Custodial Closet"; req_one_access = null }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/maint) "bLL" = ( /obj/structure/surface/rack, /obj/item/device/lightreplacer, /obj/item/storage/box/lights, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/southeast, /area/corsat/omega/maint) "bLM" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/west, /area/corsat/omega/maint) "bLO" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer3/laptop/secure_data, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/east, /area/corsat/omega/maint) "bLQ" = ( /obj/structure/closet/firecloset, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/north, /area/corsat/omega/maint) "bLR" = ( /obj/structure/closet/emcloset, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/north, /area/corsat/omega/maint) "bLS" = ( /obj/structure/closet/wardrobe/engineering_yellow, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/north, /area/corsat/omega/maint) "bLT" = ( /obj/structure/surface/table/almayer, @@ -31305,50 +23153,32 @@ dir = 8; network = list("omega") }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/east, /area/corsat/omega/maint) "bLW" = ( /obj/structure/surface/table/almayer, /obj/item/stock_parts/matter_bin/super, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/east, /area/corsat/omega/maint) "bLY" = ( /obj/structure/closet/secure_closet/engineering_personal{ req_access_txt = "102" }, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/southeast, /area/corsat/omega/maint) "bMb" = ( /obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/west, /area/corsat/omega/maint) "bMc" = ( /obj/structure/closet/secure_closet/engineering_personal{ req_access_txt = "102" }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/north, /area/corsat/sigma/south/engineering) "bMf" = ( /obj/structure/machinery/power/port_gen/pacman, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/west, /area/corsat/omega/maint) "bMh" = ( /obj/structure/machinery/door/airlock/almayer/marine/requisitions/colony{ @@ -31357,31 +23187,20 @@ req_one_access_txt = "100" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/cargo) "bMi" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/toolbox, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/west, /area/corsat/omega/maint) "bMj" = ( /obj/structure/closet/toolcloset, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/east, /area/corsat/omega/maint) "bMk" = ( /obj/structure/filingcabinet/filingcabinet, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/west, /area/corsat/omega/maint) "bMm" = ( /obj/structure/surface/rack, @@ -31393,52 +23212,35 @@ /obj/item/stack/sheet/plasteel{ amount = 10 }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/southwest, /area/corsat/omega/maint) "bMo" = ( /obj/structure/machinery/cm_vending/sorted/tech/electronics_storage{ req_access_txt = "102" }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/southwest, /area/corsat/omega/maint) "bMp" = ( /obj/structure/surface/table/almayer, /obj/item/clothing/glasses/meson, /obj/effect/spawner/random/tool, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/southeast, /area/corsat/omega/maint) "bMu" = ( /obj/structure/closet/emcloset, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/engineering) "bMv" = ( /obj/structure/surface/table/almayer, /obj/item/device/assembly/timer, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/east, /area/corsat/gamma/engineering) "bMw" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/emails{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/northwest, /area/corsat/gamma/engineering/lobby) "bMA" = ( /obj/structure/machinery/light, @@ -31446,9 +23248,7 @@ /obj/structure/machinery/computer/communications{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey, /area/corsat/gamma/hangar/flightcontrol) "bMB" = ( /obj/structure/machinery/light, @@ -31456,9 +23256,7 @@ /obj/structure/window/reinforced{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey, /area/corsat/gamma/hangar/flightcontrol) "bMC" = ( /obj/structure/surface/table/almayer, @@ -31468,10 +23266,7 @@ /obj/structure/machinery/camera/autoname{ network = list("gamma") }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/north, /area/corsat/gamma/hangar/flightcontrol) "bMD" = ( /obj/structure/surface/table/almayer, @@ -31480,9 +23275,7 @@ health = 80 }, /obj/item/ashtray/bronze, -/turf/open/floor/corsat{ - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey, /area/corsat/gamma/hangar/flightcontrol) "bME" = ( /obj/structure/surface/table/almayer, @@ -31491,9 +23284,7 @@ health = 80 }, /obj/item/paper, -/turf/open/floor/corsat{ - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey, /area/corsat/gamma/hangar/flightcontrol) "bMI" = ( /obj/structure/surface/table/almayer, @@ -31501,79 +23292,52 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/omega/offices) "bMM" = ( /obj/structure/flora/pottedplant, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/southwest, /area/corsat/omega/offices) "bMN" = ( /obj/structure/surface/table/almayer, /obj/item/clipboard, /obj/item/tool/pen/blue, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/northwest, /area/corsat/omega/offices) "bMO" = ( /obj/structure/surface/table/almayer, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/north, /area/corsat/omega/offices) "bMP" = ( /obj/structure/surface/table/almayer, /obj/item/storage/donut_box, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/north, /area/corsat/omega/offices) "bMQ" = ( /obj/structure/surface/table/almayer, /obj/item/device/flashlight/lamp, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/northeast, /area/corsat/omega/offices) "bMR" = ( /obj/structure/surface/table/almayer, /obj/item/folder/black_random, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/sigma/southeast/dataoffice) "bMS" = ( /obj/structure/surface/table/almayer, /obj/item/device/flashlight/lamp, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/sigma/southeast/dataoffice) "bMT" = ( /obj/structure/surface/table/almayer, /obj/item/ashtray/plastic, /obj/effect/landmark/lv624/xeno_tunnel, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/northwest, /area/corsat/sigma/southeast/dataoffice) "bMU" = ( /obj/structure/flora/pottedplant, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/northeast, /area/corsat/sigma/southeast/dataoffice) "bMX" = ( /obj/structure/machinery/light{ @@ -31581,10 +23345,7 @@ }, /obj/structure/surface/table/almayer, /obj/item/storage/fancy/cigarettes/lucky_strikes, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/west, /area/corsat/sigma/southeast/dataoffice) "bMY" = ( /obj/structure/surface/table/almayer, @@ -31592,41 +23353,29 @@ /obj/item/paper, /obj/item/tool/pen/blue, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/sigma/southeast/dataoffice) "bNb" = ( /obj/structure/surface/table/almayer, /obj/item/storage/donut_box, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/omega/offices) "bNc" = ( /obj/structure/surface/table/almayer, /obj/item/clipboard, /obj/item/paper, /obj/item/tool/pen/blue, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/omega/offices) "bNd" = ( /obj/structure/filingcabinet/filingcabinet, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/corsat/omega/offices) "bNe" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/omega/security) "bNh" = ( /obj/structure/surface/table/almayer, @@ -31635,9 +23384,7 @@ dir = 4 }, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/sigma/southeast/dataoffice) "bNi" = ( /obj/structure/surface/table/almayer, @@ -31646,39 +23393,29 @@ dir = 4 }, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/sigma/southeast/dataoffice) "bNj" = ( /obj/structure/surface/table/almayer, /obj/item/clipboard, /obj/item/tool/pen/blue, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/omega/offices) "bNk" = ( /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/security) "bNl" = ( /obj/structure/surface/table/almayer, /obj/item/folder/black_random, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/omega/offices) "bNm" = ( /obj/structure/surface/table/almayer, /obj/item/clipboard, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/omega/offices) "bNo" = ( /obj/structure/surface/table/almayer, @@ -31686,10 +23423,7 @@ pixel_y = 32 }, /obj/item/paper_bin, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/north, /area/corsat/omega/offices) "bNp" = ( /obj/structure/surface/table/almayer, @@ -31699,35 +23433,24 @@ /obj/structure/noticeboard{ pixel_y = 32 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/north, /area/corsat/omega/offices) "bNq" = ( /obj/structure/machinery/light{ dir = 4 }, /obj/structure/flora/pottedplant, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/east, /area/corsat/sigma/southeast/dataoffice) "bNr" = ( /obj/structure/surface/table/almayer, /obj/item/clipboard, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/southwest, /area/corsat/sigma/southeast/dataoffice) "bNs" = ( /obj/structure/surface/table/almayer, /obj/item/folder/black_random, -/turf/open/floor/corsat{ - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey, /area/corsat/sigma/southeast/dataoffice) "bNt" = ( /obj/structure/surface/table/almayer, @@ -31736,40 +23459,27 @@ }, /obj/item/paper, /obj/item/tool/pen/blue, -/turf/open/floor/corsat{ - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey, /area/corsat/sigma/southeast/dataoffice) "bNu" = ( /obj/structure/surface/table/almayer, /obj/item/clipboard, /obj/item/paper, /obj/item/tool/pen/blue, -/turf/open/floor/corsat{ - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey, /area/corsat/sigma/southeast/dataoffice) "bNv" = ( /obj/structure/flora/pottedplant, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/southeast, /area/corsat/omega/offices) "bNw" = ( /obj/structure/surface/table/almayer, /obj/item/storage/fancy/cigarettes/lucky_strikes, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/northwest, /area/corsat/sigma/south/offices) "bNx" = ( /obj/structure/flora/pottedplant, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/north, /area/corsat/sigma/south/offices) "bNy" = ( /obj/structure/surface/table/almayer, @@ -31777,10 +23487,7 @@ /obj/item/paper, /obj/item/tool/pen/blue, /obj/effect/landmark/lv624/xeno_tunnel, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/northeast, /area/corsat/sigma/south/offices) "bNz" = ( /obj/structure/machinery/light{ @@ -31789,10 +23496,7 @@ /obj/structure/surface/table/almayer, /obj/structure/window/reinforced, /obj/item/storage/donut_box, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/west, /area/corsat/sigma/south/offices) "bNA" = ( /obj/structure/machinery/light{ @@ -31800,33 +23504,24 @@ }, /obj/structure/surface/table/almayer, /obj/item/folder/black_random, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/east, /area/corsat/sigma/south/offices) "bNB" = ( /obj/structure/surface/table/almayer, /obj/item/ashtray/bronze, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/sigma/south/offices) "bNC" = ( /obj/structure/surface/table/almayer, /obj/item/device/flashlight/lamp, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/sigma/south/offices) "bND" = ( /obj/structure/surface/table/almayer, /obj/item/folder/black_random, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/sigma/south/offices) "bNE" = ( /obj/structure/surface/table/almayer, @@ -31834,18 +23529,13 @@ /obj/item/paper, /obj/item/tool/pen/blue, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/sigma/south/offices) "bNF" = ( /obj/structure/surface/table/almayer, /obj/item/paper_bin, /obj/item/tool/pen/blue, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/west, /area/corsat/sigma/south/offices) "bNI" = ( /obj/structure/machinery/light{ @@ -31853,38 +23543,25 @@ }, /obj/structure/surface/table/almayer, /obj/item/device/flashlight/lamp, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/east, /area/corsat/sigma/south/offices) "bNJ" = ( /obj/structure/surface/table/almayer, /obj/item/folder/black_random, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/southwest, /area/corsat/sigma/south/offices) "bNK" = ( /obj/structure/surface/table/almayer, /obj/item/paper, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/southeast, /area/corsat/sigma/south/offices) "bNM" = ( /obj/structure/closet/firecloset, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/engineering) "bNN" = ( /obj/structure/machinery/photocopier, -/turf/open/floor/corsat{ - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow, /area/corsat/gamma/engineering/lobby) "bNO" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony{ @@ -31893,31 +23570,21 @@ req_one_access_txt = "102" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/engineering) "bNP" = ( /obj/structure/machinery/vending/snack, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/northwest, /area/corsat/sigma/cargo) "bNQ" = ( /obj/structure/machinery/autolathe, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/east, /area/corsat/gamma/engineering) "bNR" = ( /obj/structure/surface/rack, /obj/item/circuitboard/apc, /obj/item/circuitboard/apc, -/turf/open/floor/corsat{ - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow, /area/corsat/gamma/residential/maint) "bNS" = ( /obj/structure/machinery/light{ @@ -31926,64 +23593,41 @@ /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/northeast, /area/corsat/gamma/engineering) "bNT" = ( /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner/east, /area/corsat/gamma/engineering) "bNW" = ( /obj/structure/machinery/vending/coffee, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/southwest, /area/corsat/gamma/engineering) "bNX" = ( /obj/structure/machinery/vending/cigarette/colony, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/southeast, /area/corsat/gamma/engineering) "bNY" = ( /obj/structure/surface/table/almayer, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/southwest, /area/corsat/gamma/engineering) "bNZ" = ( /obj/structure/surface/table/almayer, /obj/item/tool/extinguisher, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/southeast, /area/corsat/gamma/engineering) "bOa" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/computer/station_alert, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/northwest, /area/corsat/omega/control) "bOb" = ( /obj/structure/machinery/light, /obj/structure/surface/table/almayer, /obj/item/tool/lighter/random, -/turf/open/floor/corsat{ - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow, /area/corsat/gamma/engineering) "bOc" = ( /obj/structure/surface/table/almayer, @@ -31994,56 +23638,37 @@ }, /obj/item/pamphlet/skill/powerloader, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/corsat{ - icon_state = "brown" - }, +/turf/open/floor/corsat/brown, /area/corsat/gamma/cargo) "bOd" = ( /obj/structure/surface/table/almayer, /obj/item/tool/lighter/random, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/corsat{ - icon_state = "brown" - }, +/turf/open/floor/corsat/brown, /area/corsat/gamma/cargo) "bOe" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/computer/atmos_alert, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/northeast, /area/corsat/omega/control) "bOf" = ( /obj/structure/machinery/light{ dir = 1 }, /obj/structure/bed/chair, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/north, /area/corsat/sigma/cargo) "bOg" = ( /obj/structure/bed/chair, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/north, /area/corsat/sigma/cargo) "bOh" = ( /obj/structure/bed/chair, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/northeast, /area/corsat/sigma/cargo) "bOi" = ( /obj/structure/machinery/vending/coffee, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/west, /area/corsat/sigma/cargo) "bOj" = ( /obj/structure/machinery/door/poddoor/shutters/almayer/open{ @@ -32052,162 +23677,109 @@ name = "Virology Lockdown" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/biodome/virology) "bOl" = ( /obj/structure/machinery/vending/cigarette/colony, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/west, /area/corsat/sigma/cargo) "bOm" = ( /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/cargo) "bOn" = ( /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner/east, /area/corsat/sigma/cargo) "bOo" = ( /obj/structure/largecrate/random/barrel, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/east, /area/corsat/sigma/cargo) "bOp" = ( /obj/structure/machinery/light{ dir = 8 }, /obj/structure/largecrate/random/barrel, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner/west, /area/corsat/sigma/cargo) "bOq" = ( /obj/structure/machinery/light, /obj/structure/largecrate/random/barrel, -/turf/open/floor/corsat{ - icon_state = "brown" - }, +/turf/open/floor/corsat/brown, /area/corsat/sigma/cargo) "bOr" = ( /obj/structure/largecrate/random, -/turf/open/floor/corsat{ - icon_state = "cargo" - }, +/turf/open/floor/corsat/cargo, /area/corsat/omega/cargo) "bOs" = ( /obj/structure/largecrate/lisa, -/turf/open/floor/corsat{ - icon_state = "cargo" - }, +/turf/open/floor/corsat/cargo, /area/corsat/omega/cargo) "bOt" = ( /obj/structure/machinery/light{ dir = 8 }, /obj/structure/largecrate/random/barrel, -/turf/open/floor/corsat{ - icon_state = "cargo" - }, +/turf/open/floor/corsat/cargo, /area/corsat/omega/cargo) "bOu" = ( /obj/structure/largecrate/random/barrel, -/turf/open/floor/corsat{ - icon_state = "cargo" - }, +/turf/open/floor/corsat/cargo, /area/corsat/omega/cargo) "bOw" = ( /obj/structure/largecrate/random/barrel/yellow, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/east, /area/corsat/omega/cargo) "bOx" = ( /obj/structure/largecrate/random/barrel, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/east, /area/corsat/omega/cargo) "bOy" = ( /obj/structure/machinery/vending/snack, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/east, /area/corsat/omega/cargo) "bOA" = ( /obj/structure/largecrate/random/barrel/white, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/west, /area/corsat/omega/cargo) "bOB" = ( /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/west, /area/corsat/omega/cargo) "bOC" = ( /obj/structure/surface/table/almayer, /obj/item/pamphlet/skill/powerloader, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/cargo) "bOD" = ( /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/east, /area/corsat/omega/cargo) "bOE" = ( /obj/structure/machinery/light, /obj/structure/surface/table/almayer, /obj/item/trash/popcorn, -/turf/open/floor/corsat{ - icon_state = "brown" - }, +/turf/open/floor/corsat/brown, /area/corsat/omega/cargo) "bOF" = ( /obj/structure/machinery/light, /obj/structure/largecrate/random/barrel, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/east, /area/corsat/omega/cargo) "bOG" = ( /obj/structure/surface/rack, /obj/item/cell/high, /obj/item/cell/high, /obj/item/cell/high, -/turf/open/floor/corsat{ - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow, /area/corsat/gamma/residential/maint) "bOH" = ( /obj/structure/machinery/power/apc/high{ @@ -32217,200 +23789,133 @@ }, /obj/structure/surface/table/almayer, /obj/item/paper_bin, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/northwest, /area/corsat/gamma/cargo/lobby) "bOI" = ( /obj/structure/filingcabinet/filingcabinet, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/north, /area/corsat/gamma/cargo/lobby) "bOJ" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/west, /area/corsat/omega/maint) "bOK" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/east, /area/corsat/omega/maint) "bOL" = ( /obj/structure/surface/table/almayer, /obj/item/tool/lighter/random, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/omega/offices) "bON" = ( /obj/structure/machinery/autolathe, /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/west, /area/corsat/omega/maint) "bOP" = ( /obj/structure/machinery/light, -/turf/open/floor/corsat{ - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow, /area/corsat/omega/maint) "bOQ" = ( /obj/structure/surface/table/almayer, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/hangar/cargo) "bOR" = ( /obj/structure/surface/table/almayer, /obj/item/ashtray/bronze, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/hangar/cargo) "bOS" = ( /obj/structure/surface/rack, /obj/item/device/flashlight, /obj/item/tool/crowbar, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/west, /area/corsat/gamma/hangar/cargo) "bOT" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/toolbox, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/corsat/red/southwest, /area/corsat/gamma/hangar/cargo) "bOU" = ( /obj/structure/closet/emcloset, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/rnr) "bOV" = ( /obj/structure/closet/firecloset, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/west, /area/corsat/gamma/hangar/arrivals) "bOW" = ( /obj/structure/closet/emcloset, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/west, /area/corsat/gamma/hangar/arrivals) "bOX" = ( /obj/structure/closet/emcloset, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/corsat/gamma/hangar/checkpoint) "bOY" = ( /obj/structure/machinery/light{ dir = 1 }, /obj/structure/closet/emcloset, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/corsat/gamma/hangar/checkpoint) "bOZ" = ( /obj/structure/closet/firecloset, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/gamma/hangar/checkpoint) "bPa" = ( /obj/structure/machinery/light{ dir = 8 }, /obj/structure/closet/firecloset, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/gamma/hangar/checkpoint) "bPb" = ( /obj/structure/closet/firecloset, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/hallwaysouth) "bPe" = ( /obj/structure/surface/table/almayer, /obj/item/robot_parts/robot_component/radio, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/southwest, /area/corsat/sigma/south/robotics) "bPf" = ( /obj/structure/machinery/light, /obj/structure/surface/rack, /obj/item/device/radio, /obj/item/device/radio, -/turf/open/floor/corsat{ - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow, /area/corsat/gamma/residential/maint) "bPg" = ( /obj/structure/surface/rack, /obj/item/device/lightreplacer, /obj/item/storage/box/lights, -/turf/open/floor/corsat{ - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow, /area/corsat/gamma/residential/maint) "bPh" = ( /obj/structure/surface/rack, /obj/item/tool/wet_sign, /obj/item/tool/wet_sign, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/northeast, /area/corsat/sigma/hangar/monorail/control) "bPi" = ( /obj/structure/surface/table, /obj/item/corncob, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/gamma/canteen) "bPj" = ( /obj/structure/surface/table/almayer, /obj/item/device/assembly/mousetrap, /obj/item/device/assembly/mousetrap, /obj/item/clothing/glasses/welding, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner/west, /area/corsat/gamma/engineering) "bPk" = ( /obj/structure/machinery/light{ @@ -32420,33 +23925,21 @@ /obj/item/reagent_container/glass/bucket, /obj/item/storage/bag/trash, /obj/item/storage/bag/trash, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner/east, /area/corsat/sigma/southeast/datamaint) "bPl" = ( /obj/structure/closet/jcloset, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/north, /area/corsat/sigma/southeast/datamaint) "bPm" = ( /obj/structure/surface/table/almayer, /obj/item/device/radio, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner/west, /area/corsat/gamma/engineering) "bPn" = ( /obj/structure/surface/table/almayer, /obj/item/paper_bin, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/northwest, /area/corsat/sigma/cargo) "bPp" = ( /obj/structure/surface/table/almayer, @@ -32455,93 +23948,63 @@ /obj/item/tool/stamp{ name = "Quartermaster's stamp" }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/north, /area/corsat/sigma/cargo) "bPq" = ( /obj/structure/surface/table/almayer, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/north, /area/corsat/sigma/cargo) "bPr" = ( /obj/structure/closet/secure_closet/quartermaster, /obj/effect/landmark/item_pool_spawner/corsat_bio_lock, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/northeast, /area/corsat/sigma/cargo) "bPs" = ( /obj/structure/bed/chair/comfy/black, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/cargo) "bPt" = ( /obj/structure/surface/table/almayer, /obj/item/paper, /obj/item/tool/pen/blue, -/turf/open/floor/corsat{ - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite, /area/corsat/gamma/biodome/complex) "bPv" = ( /obj/structure/machinery/photocopier, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/west, /area/corsat/sigma/cargo) "bPw" = ( /obj/structure/surface/table/almayer, /obj/item/pamphlet/skill/powerloader, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/cargo) "bPx" = ( /obj/structure/surface/table/almayer, /obj/item/storage/fancy/cigar, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/cargo) "bPy" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22" }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/southwest, /area/corsat/sigma/cargo) "bPC" = ( /obj/structure/surface/table/almayer, /obj/item/trash/chips, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/cargo) "bPD" = ( /obj/structure/surface/table/almayer, /obj/item/device/radio, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/cargo) "bPE" = ( /obj/structure/surface/table/almayer, /obj/item/pizzabox/meat{ pixel_y = 8 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/east, /area/corsat/sigma/cargo) "bPG" = ( /obj/structure/surface/table/almayer, @@ -32550,47 +24013,32 @@ pixel_x = 3; pixel_y = 3 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/west, /area/corsat/sigma/cargo) "bPH" = ( /obj/structure/surface/table/almayer, /obj/effect/spawner/random/toolbox, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/southwest, /area/corsat/sigma/cargo) "bPI" = ( /obj/structure/surface/table/almayer, /obj/item/paper_bin, /obj/item/tool/pen, /obj/item/pamphlet/skill/powerloader, -/turf/open/floor/corsat{ - icon_state = "brown" - }, +/turf/open/floor/corsat/brown, /area/corsat/sigma/cargo) "bPJ" = ( /obj/structure/machinery/light, /obj/structure/closet/secure_closet/cargotech, -/turf/open/floor/corsat{ - icon_state = "brown" - }, +/turf/open/floor/corsat/brown, /area/corsat/sigma/cargo) "bPK" = ( /obj/structure/closet/secure_closet/cargotech, -/turf/open/floor/corsat{ - icon_state = "brown" - }, +/turf/open/floor/corsat/brown, /area/corsat/sigma/cargo) "bPL" = ( /obj/structure/closet/secure_closet/cargotech, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/southeast, /area/corsat/sigma/cargo) "bPM" = ( /obj/structure/machinery/power/apc/high{ @@ -32598,26 +24046,17 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/north, /area/corsat/sigma/north) "bPO" = ( /obj/structure/surface/rack, /obj/item/storage/box/lights, /obj/item/device/lightreplacer, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/north, /area/corsat/sigma/north) "bPQ" = ( /obj/structure/machinery/computer/general_air_control, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/west, /area/corsat/gamma/engineering/atmos) "bPR" = ( /obj/structure/machinery/power/apc/hyper{ @@ -32625,20 +24064,14 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner/east, /area/corsat/gamma/engineering/atmos) "bPS" = ( /obj/structure/machinery/light{ dir = 1 }, /obj/structure/surface/table/almayer, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/northeast, /area/corsat/gamma/engineering/atmos) "bPV" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony{ @@ -32648,38 +24081,27 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/engineering/atmos) "bPW" = ( /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/engineering/atmos) "bPX" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/engineering/atmos) "bPY" = ( /obj/structure/surface/rack, /obj/item/reagent_container/glass/bucket, /obj/item/reagent_container/glass/bucket, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/northeast, /area/corsat/sigma/north) "bPZ" = ( /obj/structure/pipes/standard/simple/visible, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/engineering/atmos) "bQa" = ( /obj/structure/machinery/light{ @@ -32688,33 +24110,22 @@ /obj/structure/surface/rack, /obj/effect/spawner/random/toolbox, /obj/effect/spawner/random/toolbox, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/west, /area/corsat/sigma/north) "bQb" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/east, /area/corsat/sigma/north) "bQc" = ( /obj/structure/closet/jcloset, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/west, /area/corsat/sigma/north) "bQd" = ( /obj/structure/janitorialcart, /obj/item/tool/mop, -/turf/open/floor/corsat{ - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner, /area/corsat/sigma/north) "bQe" = ( /obj/structure/machinery/power/apc/high{ @@ -32726,10 +24137,7 @@ /obj/item/stack/sheet/mineral/phoron{ amount = 15 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner/east, /area/corsat/gamma/engineering) "bQf" = ( /obj/structure/closet/crate, @@ -32739,10 +24147,7 @@ /obj/item/stack/sheet/glass{ amount = 30 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/north, /area/corsat/gamma/engineering) "bQg" = ( /obj/structure/closet/crate, @@ -32752,19 +24157,13 @@ /obj/item/stack/sheet/wood{ amount = 10 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/north, /area/corsat/gamma/engineering) "bQh" = ( /obj/structure/surface/rack, /obj/item/device/lightreplacer, /obj/item/light_bulb/tube/large, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/north, /area/corsat/gamma/engineering) "bQi" = ( /obj/structure/surface/rack, @@ -32774,65 +24173,43 @@ /obj/item/device/assembly/timer, /obj/item/device/assembly/prox_sensor, /obj/item/device/assembly/prox_sensor, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/north, /area/corsat/gamma/engineering) "bQj" = ( /obj/structure/surface/rack, /obj/item/cell, /obj/item/cell, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/north, /area/corsat/gamma/engineering) "bQk" = ( /obj/structure/surface/table/reinforced, /obj/item/device/camera, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/northwest, /area/corsat/omega/control) "bQl" = ( /obj/structure/machinery/portable_atmospherics/canister/nitrogen, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/east, /area/corsat/gamma/engineering/atmos) "bQm" = ( /obj/structure/surface/table/almayer, /obj/item/paper_bin, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/southwest, /area/corsat/gamma/engineering/lobby) "bQn" = ( /obj/structure/filingcabinet/filingcabinet, -/turf/open/floor/corsat{ - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow, /area/corsat/gamma/engineering/lobby) "bQo" = ( /obj/structure/janitorialcart, /obj/item/tool/mop, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/southeast, /area/corsat/sigma/north) "bQp" = ( /obj/structure/closet/crate, /obj/item/stack/sheet/plasteel{ amount = 10 }, -/turf/open/floor/corsat{ - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow, /area/corsat/gamma/engineering) "bQq" = ( /obj/structure/closet/crate, @@ -32841,24 +24218,17 @@ pixel_x = 2; pixel_y = 2 }, -/turf/open/floor/corsat{ - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow, /area/corsat/gamma/engineering) "bQr" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/toolbox, -/turf/open/floor/corsat{ - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow, /area/corsat/gamma/engineering) "bQs" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/toolbox, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/southeast, /area/corsat/gamma/engineering) "bQt" = ( /obj/structure/machinery/portable_atmospherics/canister/air, @@ -32881,18 +24251,13 @@ /obj/structure/surface/rack, /obj/item/device/lightreplacer, /obj/item/storage/box/lights, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/northeast, /area/corsat/sigma/southeast/datamaint) "bQx" = ( /obj/structure/pipes/standard/simple/visible{ dir = 9 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/engineering/atmos) "bQy" = ( /turf/open/floor/corsat, @@ -32902,46 +24267,33 @@ /obj/structure/surface/rack, /obj/item/storage/belt/utility/full, /obj/item/device/multitool, -/turf/open/floor/corsat{ - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow, /area/corsat/sigma/southeast/datamaint) "bQB" = ( /obj/structure/machinery/meter, /obj/structure/pipes/standard/simple/visible{ dir = 10 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/engineering/atmos) "bQC" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/toolbox, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/southeast, /area/corsat/sigma/southeast/datamaint) "bQE" = ( /obj/structure/pipes/binary/pump/on{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/engineering/atmos) "bQF" = ( -/turf/open/floor/corsat{ - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow, /area/corsat/sigma/southeast) "bQG" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer3/laptop/secure_data, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/engineering) "bQH" = ( /obj/structure/machinery/portable_atmospherics/canister/nitrogen, @@ -32952,36 +24304,26 @@ dir = 4 }, /obj/structure/machinery/portable_atmospherics/powered/pump, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/east, /area/corsat/gamma/engineering/atmos) "bQK" = ( /obj/item/tool/wet_sign, /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/west, /area/corsat/sigma/southeast/datamaint) "bQL" = ( /obj/structure/surface/table/almayer, /obj/effect/spawner/random/toolbox, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/engineering) "bQM" = ( /obj/structure/surface/table/almayer, /obj/effect/spawner/random/tool, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/engineering) "bQN" = ( /obj/structure/window/framed/corsat, @@ -32991,48 +24333,32 @@ /obj/structure/surface/rack, /obj/item/cell/high, /obj/item/cell/high, -/turf/open/floor/corsat{ - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow, /area/corsat/sigma/southeast/datamaint) "bQP" = ( /obj/structure/machinery/portable_atmospherics/powered/scrubber, -/turf/open/floor/corsat{ - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow, /area/corsat/gamma/engineering/atmos) "bQQ" = ( /obj/structure/machinery/portable_atmospherics/powered/pump, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/northeast, /area/corsat/gamma/engineering/atmos) "bQR" = ( /obj/structure/machinery/light{ dir = 4 }, /obj/item/tool/wet_sign, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/east, /area/corsat/omega/maint) "bQS" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/computer/emails, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/north, /area/corsat/omega/control) "bQT" = ( /obj/structure/surface/table/almayer, /obj/item/clothing/glasses/science, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/north, /area/corsat/omega/complex) "bQU" = ( /obj/structure/machinery/light{ @@ -33040,66 +24366,46 @@ }, /obj/structure/surface/table/almayer, /obj/item/clothing/glasses/meson, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/west, /area/corsat/gamma/engineering) "bQV" = ( /obj/structure/machinery/portable_atmospherics/canister/oxygen, /turf/open/floor/corsat, /area/corsat/inaccessible) "bQW" = ( -/turf/open/floor/corsat{ - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite, /area/corsat/theta/biodome/complex) "bQX" = ( /obj/structure/surface/table/almayer, /obj/effect/spawner/random/toolbox, -/turf/open/floor/corsat{ - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow, /area/corsat/gamma/engineering) "bQY" = ( /obj/structure/surface/table/almayer, /obj/item/ashtray/plastic, /obj/item/clothing/glasses/welding, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/south/engineering) "bQZ" = ( -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/theta/biodome/complex) "bRa" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/recharger, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/omega/security) "bRc" = ( /obj/structure/machinery/light{ dir = 4 }, /obj/structure/surface/table/almayer, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/east, /area/corsat/theta/biodome/complex) "bRd" = ( /obj/item/device/analyzer/plant_analyzer, /obj/structure/surface/table/almayer, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/east, /area/corsat/theta/biodome/complex) "bRe" = ( /obj/item/reagent_container/glass/bucket, @@ -33108,16 +24414,11 @@ /obj/item/tool/minihoe, /obj/item/tool/hatchet, /obj/item/tool/shovel/spade, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/southeast, /area/corsat/theta/biodome/complex) "bRf" = ( /obj/structure/machinery/photocopier, -/turf/open/floor/corsat{ - icon_state = "red" - }, +/turf/open/floor/corsat/red, /area/corsat/omega/security) "bRg" = ( /obj/structure/window/framed/corsat/security, @@ -33138,35 +24439,24 @@ name = "Privacy Shutters" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/security) "bRj" = ( /obj/structure/surface/table/almayer, /obj/item/tool/lighter/random, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/north, /area/corsat/omega/offices) "bRk" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/toolbox, /obj/effect/spawner/random/toolbox, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/north, /area/corsat/omega/checkpoint) "bRn" = ( /obj/structure/surface/rack, -/obj/item/handcuffs, -/obj/item/handcuffs, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/obj/item/restraint/handcuffs, +/obj/item/restraint/handcuffs, +/turf/open/floor/corsat/red/east, /area/corsat/omega/checkpoint) "bRo" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony{ @@ -33174,9 +24464,7 @@ name = "Maintainance"; req_one_access = null }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/theta/biodome/complex) "bRp" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony{ @@ -33185,17 +24473,12 @@ req_one_access = null }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/maint) "bRq" = ( /obj/structure/surface/rack, /obj/item/device/flashlight, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/omega/security) "bRr" = ( /obj/structure/closet/secure_closet{ @@ -33205,33 +24488,24 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/omega/security) "bRv" = ( /obj/structure/window/reinforced{ dir = 4; health = 80 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/omega/security) "bRw" = ( /obj/item/clothing/gloves/latex, /obj/structure/surface/table/reinforced, /obj/item/clothing/gloves/latex, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/omega/security) "bRx" = ( /obj/structure/closet/emcloset, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/omega/hallways) "bRy" = ( /obj/structure/bed/chair, @@ -33239,10 +24513,7 @@ dir = 8; network = list("sigma") }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/sigma/south/security) "bRz" = ( /obj/structure/closet/secure_closet/security_empty{ @@ -33250,10 +24521,7 @@ }, /obj/item/clothing/head/beret/sec/warden, /obj/effect/landmark/item_pool_spawner/corsat_bio_lock, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/corsat/red/northeast, /area/corsat/sigma/south/security) "bRE" = ( /obj/structure/bed/chair/office/light{ @@ -33263,31 +24531,22 @@ dir = 4; health = 80 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/omega/security) "bRH" = ( /obj/structure/machinery/door/window/brigdoor/eastleft{ name = "Forensics" }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/omega/security) "bRI" = ( /obj/structure/machinery/computer/rdconsole, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/north, /area/corsat/sigma/south/complex) "bRJ" = ( /obj/structure/surface/table/reinforced, /obj/item/evidencebag, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/omega/security) "bRK" = ( /obj/structure/surface/table/reinforced, @@ -33296,16 +24555,11 @@ dir = 4; health = 80 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/omega/security) "bRQ" = ( /obj/structure/filingcabinet/filingcabinet, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/corsat/red/southeast, /area/corsat/omega/security) "bRT" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -33317,40 +24571,29 @@ /obj/structure/surface/table/almayer, /obj/item/storage/fancy/cigarettes/lucky_strikes, /obj/item/tool/lighter/random, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/south/security) "bRW" = ( /obj/structure/surface/table/almayer, /obj/item/folder/black_random, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/sigma/south/security) "bRX" = ( /obj/structure/surface/rack, /obj/item/device/flashlight, /obj/item/device/flashlight, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/south/security) "bRY" = ( /obj/effect/spawner/random/toolbox, /obj/structure/surface/rack, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/south/security) "bRZ" = ( /obj/structure/surface/rack, /obj/item/evidencebag, /obj/item/evidencebag, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/south/security) "bSa" = ( /obj/structure/surface/table/almayer, @@ -33359,34 +24602,25 @@ pixel_y = 7 }, /obj/item/tool/pen/blue, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/south/security) "bSb" = ( /obj/structure/surface/table/almayer, /obj/item/clipboard, -/obj/item/handcuffs/zip, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/obj/item/restraint/handcuffs/zip, +/turf/open/floor/corsat/plate, /area/corsat/sigma/south/security) "bSe" = ( /obj/structure/surface/table/almayer, /obj/item/ashtray/glass, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/security) "bSf" = ( /obj/structure/machinery/light{ dir = 4 }, /obj/structure/closet/firecloset, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/omega/checkpoint) "bSg" = ( /obj/structure/closet/secure_closet/guncabinet{ @@ -33395,28 +24629,20 @@ }, /obj/item/weapon/shield/riot, /obj/item/weapon/shield/riot, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/corsat/red/southwest, /area/corsat/omega/checkpoint) "bSh" = ( /obj/structure/closet/secure_closet/guncabinet{ name = "riot cabinet"; req_access_txt = "100" }, -/obj/item/handcuffs, -/obj/item/handcuffs, -/turf/open/floor/corsat{ - icon_state = "red" - }, +/obj/item/restraint/handcuffs, +/obj/item/restraint/handcuffs, +/turf/open/floor/corsat/red, /area/corsat/omega/checkpoint) "bSi" = ( /obj/structure/closet/emcloset, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/corsat/red/southeast, /area/corsat/omega/checkpoint) "bSk" = ( /obj/structure/window/framed/corsat/cell/security, @@ -33426,23 +24652,15 @@ /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/omega/checkpoint) "bSm" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/recharger, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/omega/checkpoint) "bSn" = ( -/turf/open/floor/corsat{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/corsat/red/southwest, /area/corsat/omega/security) "bSo" = ( /obj/structure/machinery/door_control{ @@ -33455,20 +24673,14 @@ name = "secure evidence locker"; req_access_txt = "104" }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/corsat/red/southwest, /area/corsat/omega/checkpoint) "bSp" = ( /obj/structure/closet/secure_closet{ name = "secure evidence locker"; req_access_txt = "104" }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/west, /area/corsat/omega/checkpoint) "bSr" = ( /obj/structure/machinery/power/apc/high{ @@ -33476,24 +24688,16 @@ pixel_x = 24; start_charge = 0 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/sigma/hangar/security) "bSx" = ( /obj/structure/surface/table/almayer, /obj/item/book/manual/engineering_construction, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/east, /area/corsat/omega/maint) "bSE" = ( /obj/structure/bed/chair, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/hangar/security) "bSG" = ( /obj/structure/surface/table/reinforced, @@ -33503,43 +24707,29 @@ pixel_x = 7; use_power = 0 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/sigma/hangar/checkpoint) "bSK" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/computer/guestpass, -/turf/open/floor/corsat{ - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner, /area/corsat/sigma/hangar/checkpoint) "bSM" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/west, /area/corsat/sigma/hangar/checkpoint) "bSO" = ( /obj/structure/surface/table/almayer, /obj/item/ashtray/plastic, /obj/item/trash/cigbutt, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/hangar/security) "bSW" = ( /obj/structure/machinery/disposal, -/turf/open/floor/corsat{ - icon_state = "darkgreen" - }, +/turf/open/floor/corsat/darkgreen, /area/corsat/sigma/hangar/arrivals) "bSX" = ( /obj/structure/closet/firecloset, -/turf/open/floor/corsat{ - icon_state = "red" - }, +/turf/open/floor/corsat/red, /area/corsat/sigma/hangar) "bSZ" = ( /obj/structure/bed/chair, @@ -33547,9 +24737,7 @@ dir = 4; layer = 2 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/north) "bTb" = ( /obj/structure/bed/chair{ @@ -33559,22 +24747,15 @@ dir = 4; layer = 2 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/north) "bTh" = ( /obj/structure/surface/table/almayer, /obj/item/folder/black_random, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/sigma/hangar) "bTj" = ( -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/hangar/checkpoint) "bTk" = ( /turf/closed/wall/r_wall/biodome/biodome_unmeltable, @@ -33591,27 +24772,19 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/sigma/hangar/security) "bTo" = ( /obj/structure/machinery/light{ dir = 4 }, /obj/structure/bed/chair, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/sigma/hangar/security) "bTp" = ( /obj/structure/surface/table/almayer, /obj/item/storage/fancy/vials/random, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/hydroponics) "bTq" = ( /obj/structure/surface/rack, @@ -33623,9 +24796,7 @@ }, /obj/item/weapon/gun/revolver/m44, /obj/item/weapon/gun/revolver/m44, -/turf/open/floor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/asteroidplating, /area/corsat/sigma/biodome/gunrange) "bTr" = ( /obj/structure/surface/rack, @@ -33636,9 +24807,7 @@ name = "Weapon Rack" }, /obj/item/weapon/gun/smg/m39, -/turf/open/floor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/asteroidplating, /area/corsat/sigma/biodome/gunrange) "bTs" = ( /obj/structure/target, @@ -33651,26 +24820,18 @@ desc = "A rectangular steel crate containing firing targets."; name = "target crate" }, -/turf/open/floor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/asteroidplating, /area/corsat/sigma/biodome/gunrange) "bTt" = ( /obj/structure/closet/bombcloset, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/corsat/sigma/biodome/testgrounds) "bTu" = ( /obj/structure/machinery/door/poddoor/almayer/open{ id = "SigmaGrounds"; name = "Testing Grounds" }, -/turf/open/floor/plating{ - dir = 1; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/north, /area/corsat/sigma/biodome/testgrounds) "bTv" = ( /obj/structure/machinery/door_control{ @@ -33678,10 +24839,7 @@ name = "Testing Grounds"; pixel_x = 24 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/corsat/sigma/biodome/testgrounds) "bTw" = ( /obj/structure/machinery/door/airlock/almayer/generic{ @@ -33689,10 +24847,7 @@ req_access_txt = "106"; use_power = 0 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/corsat/sigma/biodome/testgrounds) "bTx" = ( /obj/structure/machinery/door/poddoor/almayer/open{ @@ -33700,10 +24855,7 @@ id = "SigmaGrounds"; name = "Testing Grounds" }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/west, /area/corsat/sigma/biodome/testgrounds) "bTy" = ( /obj/structure/machinery/door/poddoor/almayer/open{ @@ -33711,10 +24863,7 @@ id = "SigmaGrounds"; name = "Testing Grounds" }, -/turf/open/floor/plating{ - dir = 4; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/east, /area/corsat/sigma/biodome/testgrounds) "bTz" = ( /obj/item/explosive/plastic, @@ -33725,10 +24874,7 @@ name = "explosives cabinet"; req_access_txt = "100" }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/corsat/sigma/biodome/testgrounds) "bTA" = ( /obj/item/explosive/mine/pmc, @@ -33739,10 +24885,7 @@ name = "explosives cabinet"; req_access_txt = "100" }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/corsat/sigma/biodome/testgrounds) "bTB" = ( /obj/item/explosive/grenade/high_explosive/frag, @@ -33753,39 +24896,28 @@ name = "explosives cabinet"; req_access_txt = "100" }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/corsat/sigma/biodome/testgrounds) "bTC" = ( /obj/structure/machinery/door/poddoor/almayer/open{ id = "SigmaGrounds"; name = "Testing Grounds" }, -/turf/open/floor/plating{ - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate, /area/corsat/sigma/biodome/testgrounds) "bTH" = ( /obj/item/paper/crumpled, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/sigma/south/complex) "bTM" = ( /obj/structure/surface/table/reinforced, /obj/item/device/suit_cooling_unit, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/sigma/south/complex) "bTN" = ( /obj/structure/surface/table/reinforced, /obj/item/clothing/suit/armor/laserproof, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/sigma/south/complex) "bTO" = ( /obj/structure/machinery/power/apc/high{ @@ -33794,55 +24926,38 @@ start_charge = 0 }, /obj/structure/closet/l3closet/scientist, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/east, /area/corsat/gamma/biodome/complex) "bTQ" = ( /obj/structure/surface/table/reinforced, /obj/item/device/gripper, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/sigma/south/complex) "bTU" = ( /obj/structure/machinery/light{ dir = 8 }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/west, /area/corsat/gamma/biodome/complex) "bTV" = ( /obj/structure/surface/table/reinforced, /obj/item/cell/hyper/empty, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/sigma/south/complex) "bTW" = ( /obj/structure/surface/table/reinforced, /obj/item/clothing/head/helmet/augment, /obj/item/tool/pen/paralysis, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/sigma/south/complex) "bTX" = ( /obj/item/paper/crumpled, -/turf/open/floor/corsat{ - icon_state = "purplewhitecorner" - }, +/turf/open/floor/corsat/purplewhitecorner, /area/corsat/sigma/south/complex) "bTZ" = ( /obj/structure/machinery/photocopier, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/southeast, /area/corsat/sigma/south/complex) "bUa" = ( /obj/structure/surface/rack, @@ -33851,9 +24966,7 @@ name = "Prototype Racks"; req_access_txt = "103" }, -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/sigma/south/complex) "bUc" = ( /obj/structure/machinery/door/airlock/almayer/research/glass/colony{ @@ -33862,17 +24975,13 @@ req_one_access_txt = "101" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/sigma/south/complex) "bUg" = ( /obj/effect/decal/warning_stripes{ icon_state = "SE-out" }, -/turf/open/floor/almayer/research/containment/corner_var1{ - icon_state = "containment_corner_variant_2" - }, +/turf/open/floor/almayer/research/containment/corner_var1/containment_corner_variant_2, /area/corsat/sigma/south/complex) "bUh" = ( /obj/structure/machinery/door/airlock/almayer/research/glass/colony{ @@ -33882,25 +24991,18 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/sigma/south/complex) "bUi" = ( /obj/structure/machinery/blackbox_recorder, -/turf/open/floor/almayer{ - icon_state = "tcomms" - }, +/turf/open/floor/almayer/tcomms, /area/corsat/sigma/southeast/telecomm) "bUl" = ( /obj/structure/surface/table/woodentable, /obj/item/reagent_container/food/drinks/drinkingglass, /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/corsat/sigma/cafe) "bUm" = ( /obj/structure/machinery/power/smes, @@ -33916,61 +25018,44 @@ name = "specimen control cabinet"; req_access_txt = "103" }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/north, /area/corsat/omega/complex) "bUr" = ( /obj/structure/surface/table/reinforced, /obj/item/explosive/grenade/custom/metal_foam, -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/sigma/south/complex) "bUs" = ( /obj/structure/surface/table/reinforced, /obj/item/device/assembly/infra, -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/sigma/south/complex) "bUt" = ( /obj/structure/surface/table/reinforced, /obj/item/explosive/grenade/empgrenade, -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/sigma/south/complex) "bUv" = ( /obj/structure/surface/table/reinforced, /obj/item/explosive/grenade/custom/large, -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/sigma/south/complex) "bUx" = ( /obj/structure/surface/table/reinforced, /obj/item/paper, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/sigma/south/complex) "bUz" = ( /obj/structure/safe{ spawnkey = 0 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/omega/complex) "bUA" = ( /obj/structure/surface/table/almayer, /obj/item/paper, /obj/item/explosive/grenade/custom/antiweed, -/turf/open/floor/corsat{ - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite, /area/corsat/omega/complex) "bUC" = ( /obj/structure/machinery/portable_atmospherics/canister/carbon_dioxide, @@ -33981,10 +25066,7 @@ dir = 4 }, /obj/structure/machinery/portable_atmospherics/canister/nitrogen, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/east, /area/corsat/gamma/engineering/atmos) "bUF" = ( /obj/structure/machinery/portable_atmospherics/canister/empty/phoron, @@ -33992,10 +25074,7 @@ dir = 8; id_tag = "mix_sigma_out" }, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/southeast, /area/corsat/gamma/biodome/toxins) "bUI" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony{ @@ -34003,9 +25082,7 @@ name = "Maintainance"; req_one_access = null }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/theta/airlock/control) "bUJ" = ( /obj/structure/flora/bush/ausbushes/var3/fernybush, @@ -34018,9 +25095,7 @@ /area/corsat/theta/biodome) "bUL" = ( /obj/structure/machinery/light, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/theta/airlock/control) "bUM" = ( /obj/structure/machinery/light{ @@ -34030,16 +25105,11 @@ /obj/effect/landmark/nightmare{ insert_tag = "lockdown-theta-control" }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/corsat/theta/airlock/control) "bUN" = ( /obj/structure/closet/firecloset, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/theta/airlock/control) "bUO" = ( /obj/structure/machinery/door_control{ @@ -34047,57 +25117,38 @@ name = "Access Shutters"; pixel_y = 24 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/airlock/control) "bUP" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/station_alert, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/north, /area/corsat/theta/airlock/control) "bUQ" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/atmos_alert, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/north, /area/corsat/theta/airlock/control) "bUS" = ( /obj/structure/pipes/standard/simple/hidden/universal, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/theta/airlock/control) "bUT" = ( /obj/structure/pipes/standard/simple/hidden/universal, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/east, /area/corsat/theta/airlock/control) "bUU" = ( /obj/structure/machinery/computer/general_air_control/large_tank_control{ name = "CO2 Control" }, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/northwest, /area/corsat/theta/airlock/control) "bUV" = ( /obj/structure/pipes/standard/simple/visible{ dir = 6 }, /obj/structure/machinery/meter, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/east, /area/corsat/theta/airlock/control) "bUW" = ( /obj/structure/pipes/unary/outlet_injector{ @@ -34108,28 +25159,19 @@ /area/corsat/inaccessible) "bUY" = ( /obj/structure/pipes/trinary/mixer, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/southwest, /area/corsat/theta/airlock/control) "bUZ" = ( /obj/structure/pipes/binary/pump/high_power/on{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/southeast, /area/corsat/theta/airlock/control) "bVb" = ( /obj/structure/pipes/binary/pump/on{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner/north, /area/corsat/sigma/airlock/control) "bVc" = ( /obj/structure/surface/rack, @@ -34137,33 +25179,23 @@ /obj/item/tank/air, /obj/item/clothing/mask/breath, /obj/item/clothing/mask/breath, -/turf/open/floor/corsat{ - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow, /area/corsat/sigma/airlock/control) "bVg" = ( /obj/structure/machinery/computer/general_air_control/large_tank_control{ name = "Mixed Air Control" }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/west, /area/corsat/sigma/airlock/control) "bVh" = ( /obj/structure/closet/emcloset, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/gamma/airlock/control) "bVm" = ( /obj/structure/pipes/standard/simple/hidden/universal{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/airlock/control) "bVn" = ( /obj/item/device/binoculars, @@ -34174,10 +25206,7 @@ pixel_y = 5; use_power = 0 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/north, /area/corsat/gamma/airlock/control) "bVs" = ( /obj/structure/machinery/power/apc/high{ @@ -34186,18 +25215,12 @@ start_charge = 0 }, /obj/structure/closet/wardrobe/atmospherics_yellow, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/east, /area/corsat/gamma/airlock/control) "bVv" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/atmos_alert, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/west, /area/corsat/sigma/airlock/control) "bVw" = ( /obj/structure/machinery/power/apc/high{ @@ -34206,18 +25229,13 @@ start_charge = 0 }, /obj/structure/closet/wardrobe/atmospherics_yellow, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/north, /area/corsat/theta/airlock/control) "bVx" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/airlock/control) "bVC" = ( /obj/item/device/binoculars, @@ -34228,20 +25246,13 @@ pixel_y = 5; use_power = 0 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/east, /area/corsat/sigma/airlock/control) "bVD" = ( /obj/structure/machinery/floodlight{ - name = "Floodlight"; - unacidable = 0 - }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" + name = "Floodlight" }, +/turf/open/floor/asteroidfloor/north, /area/corsat/sigma/biodome/testgrounds) "bVE" = ( /obj/structure/pipes/standard/manifold/hidden/green{ @@ -34255,9 +25266,7 @@ name = "Access Shutters"; pixel_y = -24 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/airlock/control) "bVH" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -34267,35 +25276,26 @@ /area/corsat/theta/biodome) "bVI" = ( /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/theta/airlock/control) "bVJ" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/theta/airlock/control) "bVL" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner/west, /area/corsat/theta/airlock/control) "bVM" = ( /obj/structure/machinery/light{ dir = 4 }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner, /area/corsat/theta/airlock/control) "bVN" = ( /obj/structure/pipes/vents/pump/siphon/on{ @@ -34310,19 +25310,13 @@ /area/corsat/inaccessible) "bVQ" = ( /obj/structure/closet/wardrobe/atmospherics_yellow, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/northeast, /area/corsat/theta/airlock/control) "bVS" = ( /obj/structure/machinery/computer/general_air_control/large_tank_control{ name = "Mixed Air Control" }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/north, /area/corsat/theta/airlock/control) "bVT" = ( /obj/structure/pipes/unary/outlet_injector{ @@ -34334,26 +25328,17 @@ "bVU" = ( /obj/structure/surface/table/almayer, /obj/effect/spawner/random/technology_scanner, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner/north, /area/corsat/theta/airlock/control) "bVV" = ( /obj/structure/pipes/standard/simple/visible, /obj/structure/machinery/meter, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/west, /area/corsat/theta/airlock/control) "bVW" = ( /obj/structure/pipes/standard/simple/visible, /obj/structure/machinery/meter, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/east, /area/corsat/theta/airlock/control) "bVX" = ( /obj/structure/flora/bush/ausbushes/var3/fullgrass, @@ -34362,9 +25347,7 @@ /area/corsat/theta/biodome) "bWb" = ( /obj/structure/surface/table/almayer, -/turf/open/floor/corsat{ - icon_state = "theta" - }, +/turf/open/floor/corsat/theta, /area/corsat/theta/airlock/control) "bWc" = ( /obj/structure/machinery/light{ @@ -34374,25 +25357,16 @@ network = list("theta") }, /obj/structure/surface/table/almayer, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/corsat/theta/airlock/control) "bWd" = ( /obj/structure/closet/secure_closet/security, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/corsat/red/northeast, /area/corsat/theta/airlock/control) "bWe" = ( /obj/structure/surface/table/almayer, /obj/item/folder/black_random, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/corsat/theta/airlock/control) "bWf" = ( /obj/structure/bed/chair/office/light{ @@ -34401,9 +25375,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/theta/airlock/control) "bWg" = ( /obj/structure/machinery/light{ @@ -34413,160 +25385,112 @@ /obj/structure/machinery/computer/secure_data{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/theta/airlock/control) "bWh" = ( /obj/structure/bed/chair/office/light{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/theta/airlock/control) "bWi" = ( /obj/structure/surface/table/reinforced, /obj/item/folder/black_random, -/turf/open/floor/corsat{ - icon_state = "red" - }, +/turf/open/floor/corsat/red, /area/corsat/theta/airlock/control) "bWj" = ( /obj/structure/surface/table/almayer, /obj/item/folder/black_random, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/theta/airlock/control) "bWk" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/emails, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/theta/airlock/control) "bWl" = ( /obj/structure/surface/table/almayer, /obj/item/device/flashlight/lamp, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/airlock/control) "bWm" = ( /obj/structure/bed/chair/office/light{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/west, /area/corsat/theta/airlock/control) "bWn" = ( /obj/structure/bed/chair/office/light{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner, /area/corsat/theta/airlock/control) "bWo" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/toolbox, /obj/effect/spawner/random/toolbox, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/west, /area/corsat/theta/airlock/control) "bWp" = ( /obj/structure/surface/table/almayer, -/turf/open/floor/corsat{ - icon_state = "blue" - }, +/turf/open/floor/corsat/blue, /area/corsat/theta/airlock/control) "bWq" = ( /obj/structure/surface/table/almayer, /obj/item/paper_bin, /obj/item/tool/pen/red, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/corsat/red/northwest, /area/corsat/theta/airlock/control) "bWr" = ( /obj/structure/surface/table/almayer, /obj/item/device/flashlight, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/corsat/red/southwest, /area/corsat/theta/airlock/control) "bWs" = ( /obj/structure/filingcabinet/filingcabinet, -/turf/open/floor/corsat{ - icon_state = "red" - }, +/turf/open/floor/corsat/red, /area/corsat/theta/airlock/control) "bWt" = ( /obj/structure/machinery/photocopier, -/turf/open/floor/corsat{ - icon_state = "red" - }, +/turf/open/floor/corsat/red, /area/corsat/theta/airlock/control) "bWu" = ( /obj/structure/surface/table/almayer, /obj/effect/spawner/random/technology_scanner, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/theta/airlock/control) "bWv" = ( /obj/structure/surface/table/almayer, /obj/item/device/flashlight, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/theta/airlock/control) "bWw" = ( /obj/structure/surface/table/almayer, /obj/item/device/flashlight/lamp, -/turf/open/floor/corsat{ - icon_state = "theta" - }, +/turf/open/floor/corsat/theta, /area/corsat/theta/airlock/control) "bWx" = ( /obj/structure/surface/table/almayer, /obj/item/device/flashlight/lamp, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/theta/airlock/control) "bWy" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/station_alert, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/west, /area/corsat/sigma/airlock/control) "bWz" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony{ name = "Maintainence"; req_one_access = null }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/airlock/control) "bWA" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/airlock/control) "bWB" = ( /obj/structure/machinery/light{ @@ -34575,162 +25499,111 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner/east, /area/corsat/sigma/airlock/control) "bWC" = ( /obj/structure/pipes/standard/simple/hidden/universal{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/north, /area/corsat/sigma/airlock/control) "bWD" = ( /obj/structure/pipes/standard/simple/visible{ dir = 4 }, /obj/structure/machinery/meter, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/north, /area/corsat/sigma/airlock/control) "bWE" = ( /obj/structure/pipes/binary/pump/high_power/on{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/northeast, /area/corsat/sigma/airlock/control) "bWG" = ( /obj/structure/bed/chair/office/light{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/north, /area/corsat/gamma/airlock/control) "bWH" = ( /obj/structure/surface/table/almayer, /obj/effect/spawner/random/technology_scanner, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/southwest, /area/corsat/sigma/airlock/control) "bWI" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/emails{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/airlock/control) "bWJ" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/toolbox, /obj/effect/spawner/random/toolbox, -/turf/open/floor/corsat{ - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow, /area/corsat/sigma/airlock/control) "bWK" = ( /obj/structure/surface/table/almayer, /obj/effect/spawner/random/technology_scanner, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner/west, /area/corsat/sigma/airlock/control) "bWL" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/airlock/control) "bWM" = ( /obj/structure/pipes/standard/simple/visible{ dir = 4 }, /obj/structure/machinery/meter, -/turf/open/floor/corsat{ - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow, /area/corsat/sigma/airlock/control) "bWN" = ( /obj/structure/pipes/trinary/mixer{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/southeast, /area/corsat/sigma/airlock/control) "bWO" = ( /obj/structure/machinery/light{ dir = 4 }, /obj/structure/closet/firecloset, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/gamma/airlock/control) "bWQ" = ( /obj/structure/machinery/computer/general_air_control/large_tank_control{ name = "CO2 Control" }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/southwest, /area/corsat/sigma/airlock/control) "bWR" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/airlock/control) "bWS" = ( /obj/structure/closet/wardrobe/atmospherics_yellow, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/northwest, /area/corsat/sigma/airlock/control) "bWT" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/north, /area/corsat/sigma/airlock/control) "bWU" = ( /obj/structure/machinery/computer/general_air_control/large_tank_control{ name = "Waste Tank Control" }, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/northeast, /area/corsat/theta/airlock/control) "bWV" = ( /obj/structure/surface/table/almayer, /obj/item/device/flashlight, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/airlock/control) "bWW" = ( /obj/structure/surface/table/almayer, @@ -34740,132 +25613,91 @@ pixel_x = 5; use_power = 0 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/airlock/control) "bWX" = ( /obj/structure/surface/table/almayer, /obj/effect/spawner/random/technology_scanner, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/airlock/control) "bWZ" = ( /obj/structure/machinery/light{ dir = 8 }, /obj/structure/machinery/disposal, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/west, /area/corsat/sigma/airlock/control) "bXa" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/emails{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/airlock/control) "bXb" = ( /obj/structure/bed/chair/office/light{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner/east, /area/corsat/sigma/airlock/control) "bXc" = ( /obj/structure/surface/table/almayer, /obj/item/device/flashlight/lamp, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/airlock/control) "bXd" = ( /obj/structure/surface/table/almayer, /obj/item/folder/black_random, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/airlock/control) "bXe" = ( /obj/structure/surface/table/almayer, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/airlock/control) "bXh" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/sigma/southeast) "bXl" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/airlock/control) "bXn" = ( /obj/structure/surface/table/almayer, /obj/item/device/flashlight, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/airlock/control) "bXo" = ( /obj/structure/machinery/light{ dir = 8 }, /obj/structure/closet/firecloset, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/sigma/airlock/control) "bXp" = ( /obj/structure/bed/chair/office/light{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner, /area/corsat/sigma/airlock/control) "bXq" = ( /obj/structure/closet/emcloset, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/sigma/airlock/control) "bXr" = ( -/turf/open/floor/corsat{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/corsat/red/southwest, /area/corsat/sigma/airlock/control) "bXs" = ( /obj/structure/closet/secure_closet/security, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/sigma/airlock/control) "bXu" = ( /obj/item/folder/black_random, /obj/structure/surface/table/reinforced, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/sigma/airlock/control) "bXv" = ( /obj/structure/machinery/light{ @@ -34874,17 +25706,11 @@ /obj/structure/surface/table/almayer, /obj/item/storage/donut_box, /obj/item/tool/lighter/random, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/corsat/red/southwest, /area/corsat/sigma/airlock/control) "bXw" = ( /obj/structure/machinery/photocopier, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/sigma/airlock/control) "bXx" = ( /obj/structure/surface/table/almayer, @@ -34892,40 +25718,26 @@ dir = 4; network = list("sigma") }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/sigma/airlock/control) "bXz" = ( /obj/structure/filingcabinet/filingcabinet, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/sigma/airlock/control) "bXA" = ( /obj/structure/surface/table/almayer, /obj/item/folder/black_random, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/sigma/airlock/control) "bXB" = ( /obj/structure/bed/chair/office/light, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/airlock/control) "bXC" = ( /obj/structure/surface/table/almayer, /obj/item/paper_bin, /obj/item/tool/pen/red, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/corsat/red/southwest, /area/corsat/sigma/airlock/control) "bXD" = ( /obj/structure/machinery/light, @@ -34933,85 +25745,60 @@ /obj/structure/machinery/computer/secure_data{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "red" - }, +/turf/open/floor/corsat/red, /area/corsat/sigma/airlock/control) "bXE" = ( /obj/structure/surface/table/almayer, /obj/item/device/flashlight, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/corsat/red/southeast, /area/corsat/sigma/airlock/control) "bXG" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/corsat/theta/airlock/control) "bXH" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/theta/airlock/control) "bXI" = ( /obj/structure/machinery/light{ dir = 1 }, /obj/structure/machinery/disposal, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/north, /area/corsat/theta/airlock/control) "bXK" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/theta/airlock/control) "bXN" = ( /obj/structure/machinery/disposal, -/turf/open/floor/corsat{ - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite, /area/corsat/gamma/sigmaremote) "bXO" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/airlock/control) "bXQ" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/airlock/control) "bXW" = ( /obj/structure/surface/table/almayer, /obj/effect/spawner/random/technology_scanner, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/airlock/control) "bXY" = ( /obj/structure/bed/chair/office/light{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner/west, /area/corsat/gamma/airlock/control) "bXZ" = ( /obj/structure/machinery/light{ @@ -35021,10 +25808,7 @@ /obj/effect/landmark/nightmare{ insert_tag = "lockdown-gamma-control" }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/east, /area/corsat/gamma/airlock/control) "bYa" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony{ @@ -35034,16 +25818,12 @@ }, /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/airlock/control) "bYb" = ( /obj/structure/surface/table/almayer, /obj/item/folder/black_random, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/airlock/control) "bYd" = ( /obj/structure/pipes/vents/pump/siphon/on{ @@ -35055,26 +25835,17 @@ /obj/structure/machinery/computer/general_air_control/large_tank_control{ name = "Mixed Air Control" }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/east, /area/corsat/gamma/airlock/control) "bYh" = ( /obj/structure/closet/wardrobe/atmospherics_yellow, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/southeast, /area/corsat/gamma/airlock/control) "bYl" = ( /obj/structure/machinery/computer/general_air_control/large_tank_control{ name = "Nitrogen Control Console" }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/east, /area/corsat/gamma/airlock/control) "bYm" = ( /obj/structure/pipes/unary/outlet_injector{ @@ -35087,54 +25858,37 @@ /obj/structure/pipes/trinary/mixer{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/northwest, /area/corsat/gamma/airlock/control) "bYp" = ( /obj/structure/pipes/standard/simple/visible{ dir = 4 }, /obj/structure/machinery/meter, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/north, /area/corsat/gamma/airlock/control) "bYq" = ( /obj/structure/pipes/standard/simple/hidden/universal{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/airlock/control) "bYr" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "purple" - }, +/turf/open/floor/corsat/purple/west, /area/corsat/omega/hallways) "bYs" = ( /obj/structure/surface/table/almayer, /obj/effect/spawner/random/technology_scanner, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner/east, /area/corsat/gamma/airlock/control) "bYt" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/toolbox, /obj/effect/spawner/random/toolbox, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/north, /area/corsat/gamma/airlock/control) "bYu" = ( /obj/structure/surface/rack, @@ -35142,18 +25896,12 @@ /obj/item/tank/air, /obj/item/clothing/mask/breath, /obj/item/clothing/mask/breath, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner/north, /area/corsat/gamma/airlock/control) "bYv" = ( /obj/structure/surface/table/almayer, /obj/effect/spawner/random/technology_scanner, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/east, /area/corsat/gamma/airlock/control) "bYw" = ( /obj/structure/pipes/vents/pump/siphon/on{ @@ -35166,56 +25914,41 @@ /obj/structure/pipes/binary/pump/high_power/on{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/southwest, /area/corsat/gamma/airlock/control) "bYy" = ( /obj/structure/pipes/standard/simple/visible{ dir = 4 }, /obj/structure/machinery/meter, -/turf/open/floor/corsat{ - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow, /area/corsat/gamma/airlock/control) "bYz" = ( /obj/structure/pipes/standard/simple/hidden/universal{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow, /area/corsat/gamma/airlock/control) "bYA" = ( /obj/structure/machinery/light, /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner/west, /area/corsat/gamma/airlock/control) "bYC" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony{ name = "Maintainence"; req_one_access = null }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/airlock/control) "bYD" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/station_alert{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/east, /area/corsat/gamma/airlock/control) "bYE" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony{ @@ -35228,19 +25961,14 @@ name = "Access Shutter" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/airlock/control) "bYF" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/atmos_alert{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/east, /area/corsat/gamma/airlock/control) "bYI" = ( /obj/structure/pipes/standard/manifold/hidden/green{ @@ -35261,35 +25989,26 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/airlock/control) "bYK" = ( /obj/structure/pipes/binary/pump/on{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner, /area/corsat/gamma/airlock/control) "bYL" = ( /obj/structure/pipes/standard/simple/visible{ dir = 10 }, /obj/structure/machinery/meter, -/turf/open/floor/corsat{ - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow, /area/corsat/gamma/airlock/control) "bYM" = ( /obj/structure/machinery/computer/general_air_control/large_tank_control{ name = "Waste Tank Control" }, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/southeast, /area/corsat/gamma/airlock/control) "bYN" = ( /obj/structure/pipes/unary/outlet_injector{ @@ -35316,10 +26035,7 @@ /obj/item/tank/air, /obj/item/clothing/mask/breath, /obj/item/clothing/mask/breath, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/west, /area/corsat/theta/airlock/control) "bYS" = ( /obj/structure/pipes/vents/pump/siphon/on{ @@ -35337,84 +26053,60 @@ /area/corsat/inaccessible) "bYU" = ( /obj/structure/closet/l3closet/general, -/turf/open/floor/corsat{ - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow, /area/corsat/omega/control) "bYW" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/station_alert{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow, /area/corsat/omega/control) "bYX" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/north, /area/corsat/omega/control) "bYY" = ( /obj/structure/bed/chair/office/light{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "bluecorner" - }, +/turf/open/floor/corsat/bluecorner/north, /area/corsat/omega/control) "bYZ" = ( /obj/structure/bed/chair/office/light{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/control) "bZa" = ( /obj/structure/surface/table/reinforced, /obj/item/device/binoculars, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/west, /area/corsat/omega/control) "bZb" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/emails, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/omega/control) "bZc" = ( /obj/structure/surface/table/reinforced, /obj/item/clipboard, /obj/item/paper, /obj/item/tool/pen/red, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/southwest, /area/corsat/omega/control) "bZd" = ( /obj/structure/bed/chair/office/light{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow, /area/corsat/omega/control) "bZe" = ( /obj/structure/surface/table/reinforced, /obj/item/folder/black_random, -/turf/open/floor/corsat{ - icon_state = "blue" - }, +/turf/open/floor/corsat/blue, /area/corsat/omega/control) "bZf" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony{ @@ -35423,93 +26115,64 @@ req_one_access_txt = "102" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/west, /area/corsat/omega/control) "bZg" = ( /obj/structure/machinery/light, /obj/structure/machinery/photocopier, -/turf/open/floor/corsat{ - icon_state = "blue" - }, +/turf/open/floor/corsat/blue, /area/corsat/omega/control) "bZh" = ( /obj/structure/bed/chair/office/light, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "bluecorner" - }, +/turf/open/floor/corsat/bluecorner/west, /area/corsat/omega/control) "bZi" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/atmos_alert{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/southeast, /area/corsat/omega/control) "bZj" = ( /obj/structure/surface/table/almayer, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/omega/control) "bZk" = ( /obj/structure/surface/table/almayer, /obj/item/device/flashlight/lamp, -/turf/open/floor/corsat{ - icon_state = "omega" - }, +/turf/open/floor/corsat/omega, /area/corsat/omega/control) "bZl" = ( /obj/structure/surface/table/reinforced, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/southeast, /area/corsat/omega/control) "bZm" = ( /obj/structure/machinery/light, /obj/structure/surface/table/almayer, /obj/item/paper, /obj/item/tool/pen/red, -/turf/open/floor/corsat{ - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow, /area/corsat/omega/control) "bZp" = ( /obj/structure/machinery/door/airlock/almayer/research/glass/colony{ dir = 1; name = "Weapons Development"; - req_access = null; req_one_access_txt = "103" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/sigma/south/complex) "bZq" = ( /obj/structure/machinery/light{ dir = 8 }, /obj/structure/surface/table/reinforced, -/obj/item/restraints, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/obj/item/xeno_restraints, +/turf/open/floor/corsat/red/west, /area/corsat/omega/control) "bZr" = ( /obj/structure/surface/table/reinforced, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/corsat/red/southwest, /area/corsat/omega/control) "bZt" = ( /obj/structure/bed, @@ -35521,28 +26184,20 @@ /obj/structure/flora/pottedplant{ icon_state = "pottedplant_21" }, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "white" - }, +/turf/open/floor/corsat/white/northwest, /area/corsat/sigma/dorms) "bZv" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_21" }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/east, /area/corsat/sigma/dorms) "bZy" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/computer/cameras{ network = list("gamma") }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/hangar/cargo) "bZz" = ( /obj/structure/machinery/light, @@ -35550,33 +26205,25 @@ /obj/structure/machinery/computer/guestpass{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "red" - }, +/turf/open/floor/corsat/red, /area/corsat/gamma/hangar/cargo) "bZD" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/biodome/complex) "bZE" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/biodome/complex) "bZF" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/biodome/complex) "bZI" = ( /obj/structure/machinery/door/airlock/almayer/research/glass/colony{ @@ -35590,9 +26237,7 @@ name = "Toxins Lockdown" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/biodome/toxins) "bZK" = ( /obj/structure/machinery/power/apc/high{ @@ -35601,54 +26246,38 @@ start_charge = 0 }, /obj/structure/closet/wardrobe/toxins_white, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/west, /area/corsat/gamma/biodome/toxins) "bZN" = ( /obj/structure/bed/chair/office/light, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "purplewhitecorner" - }, +/turf/open/floor/corsat/purplewhitecorner/west, /area/corsat/sigma/south/complex) "bZP" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/airlock/south) "bZW" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/theta/airlock/east) "bZX" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/corsat/theta/airlock/east) "cab" = ( /obj/structure/pipes/vents/pump{ dir = 8; id_tag = "mining_outpost_pump" }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/theta/airlock/west) "caf" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/theta/biodome/complex) "cah" = ( /obj/structure/machinery/power/apc/high{ @@ -35656,10 +26285,7 @@ pixel_x = -24; start_charge = 0 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhitecorner" - }, +/turf/open/floor/corsat/purplewhitecorner/north, /area/corsat/theta/biodome/hydrowest) "cai" = ( /obj/structure/machinery/power/apc/high{ @@ -35667,18 +26293,13 @@ pixel_x = 24; start_charge = 0 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purplewhitecorner" - }, +/turf/open/floor/corsat/purplewhitecorner/east, /area/corsat/theta/biodome/hydroeast) "cak" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/theta/biodome/hydrowest) "cal" = ( /obj/structure/machinery/door/airlock/almayer/research/glass/colony{ @@ -35688,32 +26309,24 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/theta/biodome/complex) "cam" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/theta/biodome/complex) "cao" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, /obj/effect/landmark/structure_spawner/xvx_hive/xeno_core, -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/theta/biodome/complex) "cap" = ( /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/theta/biodome/complex) "caq" = ( /obj/structure/machinery/door/airlock/almayer/research/glass/colony{ @@ -35723,17 +26336,13 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/theta/biodome/complex) "car" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/theta/biodome/hydroeast) "cau" = ( /obj/structure/machinery/power/apc/high{ @@ -35741,10 +26350,7 @@ pixel_x = -24; start_charge = 0 }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/southwest, /area/corsat/theta/biodome/complex) "caw" = ( /obj/structure/machinery/power/apc/high{ @@ -35752,51 +26358,38 @@ pixel_x = -24; start_charge = 0 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/corsat/sigma/biodome/testgrounds) "caA" = ( /obj/structure/machinery/camera/autoname{ dir = 1; network = list("gamma") }, -/turf/open/floor/corsat{ - icon_state = "green" - }, +/turf/open/floor/corsat/green, /area/corsat/gamma/hallwaysouth) "caG" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/sigma/south) "caH" = ( /obj/structure/machinery/light, /obj/structure/closet/firecloset, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/airlock/control) "caI" = ( /obj/structure/sign/safety/airlock{ pixel_y = -32 }, -/turf/open/floor/corsat{ - icon_state = "sigma" - }, +/turf/open/floor/corsat/sigma, /area/corsat/sigma/airlock/control) "caM" = ( /obj/structure/machinery/door/poddoor/two_tile/four_tile/vertical/opened{ id = "SigmaWestE"; name = "Sigma West Airlock" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/corsat/sigma/airlock/control) "caQ" = ( /obj/item/weapon/gun/flamer, @@ -35805,15 +26398,11 @@ name = "specimen control cabinet"; req_access_txt = "103" }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/corsat/omega/control) "caS" = ( /obj/structure/machinery/floodlight{ - name = "Floodlight"; - unacidable = 0 + name = "Floodlight" }, /turf/open/floor/plating, /area/corsat/sigma/biodome/testgrounds) @@ -35823,10 +26412,7 @@ /obj/structure/machinery/colony_floodlight_switch{ desc = "This switch controls the floodlights around the biodome. It only functions when there is power." }, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/northwest, /area/corsat/theta/airlock/control) "caU" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony{ @@ -35835,9 +26421,7 @@ req_one_access = null }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/theta/airlock/control) "caV" = ( /obj/structure/machinery/door_control{ @@ -35845,9 +26429,7 @@ name = "Access Shutters"; pixel_x = 24 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/theta/airlock/control) "caW" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony{ @@ -35857,9 +26439,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/theta/airlock/control) "caX" = ( /obj/item/device/binoculars, @@ -35870,10 +26450,7 @@ pixel_y = 5; use_power = 0 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/west, /area/corsat/theta/airlock/control) "caZ" = ( /obj/structure/surface/table/reinforced, @@ -35889,10 +26466,7 @@ req_one_access_txt = "106;103"; use_power = 0 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/west, /area/corsat/omega/control) "cbc" = ( /obj/structure/surface/table/reinforced, @@ -35901,27 +26475,19 @@ name = "Dome Lockdown"; use_power = 0 }, -/turf/open/floor/corsat{ - icon_state = "red" - }, +/turf/open/floor/corsat/red, /area/corsat/omega/control) "cbo" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_10" }, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite/northwest, /area/corsat/gamma/medbay) "cbS" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_21" }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "darkgreen" - }, +/turf/open/floor/corsat/darkgreen/east, /area/corsat/gamma/rnr) "cbV" = ( /obj/structure/bookcase{ @@ -35930,10 +26496,7 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/east, /area/corsat/gamma/residential/west) "cbW" = ( /obj/structure/flora/bush/ausbushes/var3/stalkybush, @@ -35941,27 +26504,18 @@ /area/corsat/theta/biodome) "cce" = ( /obj/effect/landmark/survivor_spawner, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "whitebluefull" - }, +/turf/open/floor/corsat/whitebluefull/southwest, /area/corsat/gamma/residential/showers) "ccq" = ( /obj/structure/pipes/standard/simple/hidden/green, /turf/open/gm/dirtgrassborder/grassdirt_corner/south_east, /area/corsat/theta/biodome) "cec" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner/north, /area/corsat/theta/airlock/control) "cem" = ( /obj/structure/stairs, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/east, /area/corsat/gamma/residential/west) "ces" = ( /obj/structure/surface/table/almayer, @@ -35972,25 +26526,18 @@ /obj/item/clipboard, /obj/item/paper, /obj/item/tool/pen/blue, -/turf/open/floor/corsat{ - icon_state = "blue" - }, +/turf/open/floor/corsat/blue, /area/corsat/sigma/southeast/datalab) "ceB" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/theta/airlock/east) "ceE" = ( /obj/structure/surface/table/reinforced, /obj/item/clipboard, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/southeast, /area/corsat/gamma/sigmaremote) "ceR" = ( /obj/structure/flora/bush/ausbushes/var3/fernybush, @@ -36009,89 +26556,56 @@ /obj/item/device/flashlight/slime{ pixel_x = 10 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/west, /area/corsat/theta/biodome/complex) "cfA" = ( /obj/structure/flora/pottedplant, -/turf/open/floor/corsat{ - icon_state = "bluegreycorner" - }, +/turf/open/floor/corsat/bluegreycorner, /area/corsat/sigma/south/offices) "cfO" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/east, /area/corsat/gamma/foyer) "cfZ" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/north, /area/corsat/gamma/hallwaysouth) "cgh" = ( /obj/structure/surface/rack, /obj/item/storage/wallet, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/corsat/omega/hangar/security) "cgs" = ( /obj/structure/surface/table, /obj/item/clipboard, /obj/item/paper, /obj/item/tool/pen/blue, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/gamma/residential/west) "cgt" = ( /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/corsat/omega/checkpoint) "chg" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/gamma/canteen) "chJ" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/gamma/residential/researcher) "chL" = ( /obj/structure/machinery/camera/autoname{ dir = 8; network = list("sigma") }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/east, /area/corsat/sigma/cargo) "cia" = ( -/turf/open/floor/corsat{ - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite, /area/corsat/theta/biodome/hydroeast) "cii" = ( -/turf/open/floor/corsat{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/corsat/red/southeast, /area/corsat/omega/checkpoint) "ciW" = ( /obj/structure/machinery/shower{ @@ -36102,10 +26616,7 @@ dir = 4; layer = 2.8 }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "whitebluefull" - }, +/turf/open/floor/corsat/whitebluefull/southwest, /area/corsat/gamma/residential/showers) "cjg" = ( /obj/structure/machinery/door/airlock/almayer/generic{ @@ -36113,76 +26624,50 @@ name = "\improper Dressing room" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "whitebluefull" - }, +/turf/open/floor/corsat/whitebluefull/southwest, /area/corsat/gamma/residential/showers) "cjs" = ( /turf/closed/wall/r_wall/biodome, /area/corsat/gamma/hallwaysouth) "cjy" = ( -/turf/open/floor/corsat{ - icon_state = "purplewhitecorner" - }, +/turf/open/floor/corsat/purplewhitecorner, /area/corsat/omega/containment) "ckt" = ( /obj/structure/filingcabinet/filingcabinet, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/gamma/airlock/control) "cku" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/omega/complex) "ckz" = ( -/turf/open/floor/corsat{ - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner, /area/corsat/gamma/hangar/checkpoint) "ckY" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/sigma/hangar/arrivals) "clg" = ( /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/north, /area/corsat/sigma/hangar/security) "clp" = ( -/turf/open/floor/corsat{ - icon_state = "bluegreycorner" - }, +/turf/open/floor/corsat/bluegreycorner, /area/corsat/omega/offices) "clI" = ( -/turf/open/floor/corsat{ - dir = 10; - icon_state = "darkgreen" - }, +/turf/open/floor/corsat/darkgreen/southwest, /area/corsat/gamma/rnr) "clN" = ( /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/corsat/gamma/airlock/south) "cmk" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/hallwaysouth) "cms" = ( /obj/structure/pipes/vents/pump{ @@ -36192,23 +26677,17 @@ dir = 1; network = list("gamma") }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/biodome/complex) "cmy" = ( /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/cargo) "cnj" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/south/security) "cnA" = ( /obj/structure/surface/rack, @@ -36221,85 +26700,55 @@ name = "Secure Racks"; req_access_txt = "103" }, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/northeast, /area/corsat/omega/complex) "cnC" = ( /obj/effect/landmark/survivor_spawner, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/residential/east) "cog" = ( /obj/structure/surface/table/almayer, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/east, /area/corsat/omega/complex) "cok" = ( -/turf/open/floor/corsat{ - icon_state = "red" - }, +/turf/open/floor/corsat/red, /area/corsat/omega/hangar/office) "coy" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/north, /area/corsat/gamma/residential/researcher) "coS" = ( /obj/structure/bed/chair/comfy{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "darkgreencorner" - }, +/turf/open/floor/corsat/darkgreencorner/west, /area/corsat/sigma/hangar/monorail) "cpS" = ( /obj/item/bodybag, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/omega/hangar) "cpU" = ( /obj/structure/surface/rack, /obj/item/device/flashlight, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/prison/hangar_storage/research/shuttle) "cqv" = ( /obj/structure/computerframe, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/emergency_access) "cqy" = ( /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/corsat/sigma/biodome/gunrange) "cqT" = ( /obj/effect/landmark/corpsespawner/wysec, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/south/security) "cru" = ( -/turf/open/floor/plating{ - dir = 10; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/southwest, /area/corsat/omega/hangar) "crC" = ( /obj/structure/barricade/handrail{ @@ -36308,26 +26757,19 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/hallwaysouth) "crG" = ( /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite, /area/corsat/omega/complex) "crH" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/corsat/gamma/rnr/library) "csk" = ( /obj/structure/surface/table/almayer, @@ -36335,9 +26777,7 @@ dir = 8; health = 80 }, -/turf/open/floor/corsat{ - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey, /area/corsat/gamma/hangar/flightcontrol) "cst" = ( /obj/structure/toilet, @@ -36345,46 +26785,32 @@ dir = 8 }, /obj/effect/landmark/lv624/xeno_tunnel, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "whitebluefull" - }, +/turf/open/floor/corsat/whitebluefull/southwest, /area/corsat/gamma/residential/lavatory) "csE" = ( -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/inaccessible) "csI" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/hangar/cargo) "csM" = ( /obj/structure/surface/table/almayer, /obj/item/phone, -/turf/open/floor/corsat{ - icon_state = "bluegreycorner" - }, +/turf/open/floor/corsat/bluegreycorner, /area/corsat/sigma/southeast/datalab) "cth" = ( /obj/effect/decal/cleanable/blood/xtracks, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/airlocknorth) "ctA" = ( /obj/structure/machinery/camera/autoname{ dir = 4; network = list("gamma") }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/west, /area/corsat/gamma/residential/west) "cuo" = ( /obj/structure/pipes/vents/pump{ @@ -36393,24 +26819,17 @@ /obj/structure/bed/chair/office/light{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/sigma/south/complex) "cut" = ( /obj/structure/sign/safety/biolab, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "darkgreencorner" - }, +/turf/open/floor/corsat/darkgreencorner/west, /area/corsat/gamma/hallwaysouth) "cuO" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/biodome/toxins) "cvi" = ( /obj/structure/closet/crate/science, @@ -36418,19 +26837,13 @@ /area/corsat/gamma/sigmaremote) "cvm" = ( /obj/structure/surface/rack, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "whitebluefull" - }, +/turf/open/floor/corsat/whitebluefull/southwest, /area/corsat/gamma/residential/showers) "cvr" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_10" }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "white" - }, +/turf/open/floor/corsat/white/north, /area/corsat/gamma/residential/researcher) "cvO" = ( /obj/structure/flora/jungle/plantbot1, @@ -36441,21 +26854,15 @@ /area/corsat/theta/biodome) "cvW" = ( /obj/structure/machinery/door/window/westleft, -/turf/open/floor/almayer{ - icon_state = "tcomms" - }, +/turf/open/floor/almayer/tcomms, /area/corsat/sigma/southeast/datalab) "cwp" = ( /obj/structure/machinery/portable_atmospherics/canister/empty/phoron, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/biodome/toxins) "cwr" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/residential/maint) "cwF" = ( /obj/structure/pipes/vents/pump{ @@ -36476,97 +26883,63 @@ id = "SigmaHangarC-N"; name = "Security Shutters" }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/hangar/security) "cxE" = ( /obj/structure/machinery/light, -/turf/open/floor/corsat{ - icon_state = "brown" - }, +/turf/open/floor/corsat/brown, /area/corsat/gamma/foyer) "cxO" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/gamma/residential/west) "cyK" = ( /obj/structure/machinery/light{ dir = 8 }, /obj/structure/window/reinforced, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/west, /area/corsat/sigma/southeast/datalab) "cyX" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_10" }, -/turf/open/floor/corsat{ - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite, /area/corsat/gamma/medbay/lobby) "czg" = ( -/turf/open/floor/corsat{ - dir = 10; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/southwest, /area/corsat/omega/control) "czh" = ( /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/security) "cAg" = ( /obj/structure/closet/firecloset, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "darkgreen" - }, +/turf/open/floor/corsat/darkgreen/north, /area/corsat/sigma/hangar) "cAV" = ( /obj/structure/machinery/vending/coffee, -/turf/open/floor/corsat{ - icon_state = "purplewhitecorner" - }, +/turf/open/floor/corsat/purplewhitecorner, /area/corsat/gamma/sigmaremote) "cAW" = ( /obj/structure/closet/secure_closet/security, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/gamma/airlock/control) "cAX" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/corsat/sigma/cafe) "cCK" = ( /obj/structure/machinery/camera/autoname{ dir = 4; network = list("omega") }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/omega/hallways) "cCP" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "darkgreen" - }, +/turf/open/floor/corsat/darkgreen/east, /area/corsat/sigma/hangar) "cEC" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -36574,75 +26947,50 @@ dir = 8; network = list("gamma") }, -/turf/open/floor/corsat{ - icon_state = "sterileplate" - }, +/turf/open/floor/corsat/sterileplate, /area/corsat/gamma/kitchen) "cEI" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "greenwhitecorner" - }, +/turf/open/floor/corsat/greenwhitecorner/east, /area/corsat/gamma/medbay/lobby) "cEQ" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/mars{ - icon_state = "mars_dirt_14" - }, +/turf/open/mars/mars_dirt_14, /area/corsat/sigma/biodome) "cFe" = ( /obj/structure/bed/chair/office/light{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/west, /area/corsat/gamma/residential/west) "cGb" = ( /obj/structure/sink{ dir = 4; pixel_x = 11 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/biodome/virology) "cGi" = ( -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/medbay/morgue) "cGF" = ( /obj/structure/sign/safety/airlock, /turf/closed/wall/r_wall/biodome, /area/corsat/sigma/hangar/arrivals) "cGO" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "bluecorner" - }, +/turf/open/floor/corsat/bluecorner/north, /area/corsat/gamma/hangar/arrivals) "cIs" = ( -/turf/open/floor/corsat{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/corsat/red/southwest, /area/corsat/theta/airlock/west/id) "cIB" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/biodome/complex) "cJS" = ( /obj/structure/filingcabinet/filingcabinet, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/east, /area/corsat/gamma/engineering) "cJU" = ( /obj/structure/platform{ @@ -36650,19 +26998,14 @@ dir = 4; icon_state = "platform_deco" }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "whitecorner" - }, +/turf/open/floor/corsat/whitecorner/north, /area/corsat/sigma/south) "cJW" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, /obj/structure/machinery/door/window/southright, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/southeast/datalab) "cKa" = ( /obj/structure/flora/pottedplant{ @@ -36671,9 +27014,7 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/residential) "cKi" = ( /obj/structure/flora/pottedplant{ @@ -36691,27 +27032,18 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/residential) "cLh" = ( /obj/structure/bed/chair/office/light, -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/sigma/south/complex) "cLF" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "purplewhitecorner" - }, +/turf/open/floor/corsat/purplewhitecorner/west, /area/corsat/gamma/biodome/toxins) "cLZ" = ( /obj/structure/machinery/light, -/turf/open/floor/corsat{ - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan, /area/corsat/gamma/residential/west) "cMa" = ( /obj/structure/flora/bush/ausbushes/var3/ywflowers, @@ -36726,24 +27058,17 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/hangar/checkpoint) "cMw" = ( /obj/structure/machinery/computer/telecomms/traffic{ req_one_access_txt = "19;106;102" }, -/turf/open/floor/almayer{ - icon_state = "tcomms" - }, +/turf/open/floor/almayer/tcomms, /area/corsat/sigma/southeast/telecomm) "cMy" = ( /obj/structure/machinery/photocopier, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/gamma/airlock/control) "cNG" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ @@ -36752,34 +27077,21 @@ req_access_txt = "101" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/omega/control) "cNI" = ( /obj/structure/machinery/light/small, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/cargo) "cOf" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/north, /area/corsat/sigma/cargo) "cOv" = ( /obj/structure/surface/table/almayer, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/gamma/hangar/flightcontrol) "cOU" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/north, /area/corsat/omega/hangar) "cPi" = ( /obj/structure/monorail{ @@ -36788,57 +27100,39 @@ /turf/open/space/transit/east/shuttlespace_ew10, /area/space) "cPC" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/west, /area/corsat/gamma/hangar/checkpoint) "cPR" = ( /obj/structure/pipes/standard/manifold/hidden/green, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/sigma/dorms) "cPT" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner/north, /area/corsat/omega/hallways) "cQs" = ( /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/rnr) "cQv" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/airlock/control) "cQR" = ( /obj/structure/machinery/camera/autoname{ network = list("gamma") }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellow" - }, +/obj/structure/machinery/fuelcell_recycler/full, +/turf/open/floor/corsat/yellow/north, /area/corsat/gamma/engineering/core) "cRn" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/gamma/residential/researcher) "cRx" = ( /obj/item/cell/crap, @@ -36846,31 +27140,22 @@ /area/corsat/gamma/cargo/disposal) "cSi" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/mars{ - icon_state = "mars_dirt_9" - }, +/turf/open/mars/mars_dirt_9, /area/corsat/sigma/biodome) "cSI" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/corsat/green/north, /area/corsat/gamma/hallwaysouth) "cTc" = ( /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite, /area/corsat/gamma/medbay/lobby) "cTs" = ( /obj/structure/stairs{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan, /area/corsat/gamma/residential/west) "cUc" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -36879,18 +27164,12 @@ /turf/open/mars, /area/corsat/sigma/biodome) "cUp" = ( -/turf/open/floor/corsat{ - dir = 5; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/northeast, /area/corsat/omega/offices) "cUT" = ( /obj/effect/decal/cleanable/blood/xeno, /obj/effect/landmark/corpsespawner/wysec, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/corsat/sigma/hangar/security) "cVq" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -36898,15 +27177,10 @@ dir = 4; network = list("sigma") }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/sigma/north) "cVK" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "greencorner" - }, +/turf/open/floor/corsat/greencorner/east, /area/corsat/gamma/hallwaysouth) "cVR" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -36914,40 +27188,25 @@ /area/corsat/gamma/rnr/library) "cWa" = ( /obj/effect/landmark/lv624/xeno_tunnel, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/sigmaremote) "cWf" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner/east, /area/corsat/gamma/hallwaysouth) "cWu" = ( -/turf/open/floor/corsat{ - icon_state = "darkgreen" - }, +/turf/open/floor/corsat/darkgreen, /area/corsat/gamma/residential) "cWI" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "darkgreen" - }, +/turf/open/floor/corsat/darkgreen/east, /area/corsat/gamma/rnr) "cWX" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "whitecorner" - }, +/turf/open/floor/corsat/whitecorner/north, /area/corsat/sigma/south) "cXm" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/airlock/control) "cXt" = ( /obj/structure/machinery/power/apc/high{ @@ -36958,10 +27217,7 @@ /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/corsat/gamma/rnr/bar) "cXH" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -36969,9 +27225,7 @@ /area/corsat/sigma/cafe) "cYj" = ( /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/medbay/lobby) "cYL" = ( /obj/structure/machinery/light{ @@ -36981,17 +27235,11 @@ /obj/structure/machinery/computer/secure_data{ req_access_txt = "201" }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/corsat/gamma/airlock/control) "cYU" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "whitecorner" - }, +/turf/open/floor/corsat/whitecorner/east, /area/corsat/gamma/residential) "cZu" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -37002,38 +27250,26 @@ dir = 1; network = list("theta") }, -/turf/open/floor/corsat{ - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite, /area/corsat/theta/biodome/complex) "cZO" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/airlock/south/id) "daL" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/gamma/residential/west) "daO" = ( /obj/structure/surface/table/almayer, /obj/item/tool/hand_labeler, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/northeast, /area/corsat/gamma/biodome/toxins) "daR" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "bluecorner" - }, +/turf/open/floor/corsat/bluecorner, /area/corsat/sigma/southeast/datalab) "dbn" = ( /obj/structure/surface/table, @@ -37043,38 +27279,26 @@ }, /obj/item/paper, /obj/item/tool/pen/blue, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/gamma/residential/west) "dbr" = ( /obj/effect/decal/cleanable/blood/xtracks, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/omega/containment) "dbV" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/airlock/control) "dbY" = ( /obj/structure/bed/chair/office/light{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/gamma/residential/west) "dcr" = ( -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/biodome/virology) "dct" = ( /turf/open/floor/corsat, @@ -37084,18 +27308,13 @@ dir = 9 }, /obj/structure/machinery/light, -/turf/open/floor/corsat{ - icon_state = "red" - }, +/turf/open/floor/corsat/red, /area/corsat/gamma/airlock/south/id) "dcK" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "whitetancorner" - }, +/turf/open/floor/corsat/whitetancorner/west, /area/corsat/gamma/residential/researcher) "dcU" = ( /obj/structure/pipes/standard/manifold/hidden/green{ @@ -37105,19 +27324,13 @@ /area/corsat/theta/biodome) "ddo" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purplewhitecorner" - }, +/turf/open/floor/corsat/purplewhitecorner/east, /area/corsat/omega/complex) "ddS" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "whitecorner" - }, +/turf/open/floor/corsat/whitecorner/west, /area/corsat/gamma/residential/east) "dem" = ( /obj/effect/decal/cleanable/blood/splatter, @@ -37128,30 +27341,20 @@ /obj/structure/machinery/camera/autoname{ network = list("sigma") }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/north, /area/corsat/sigma/south/complex) "deD" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/corsat/omega/checkpoint) "deG" = ( /obj/structure/bed/chair/office/light{ dir = 8 }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/airlock/control) "deR" = ( -/turf/open/floor/corsat{ - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow, /area/corsat/gamma/hallwaysouth) "dfg" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -37164,37 +27367,24 @@ dir = 4; network = list("gamma") }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/corsat/gamma/rnr/library) "dfT" = ( /obj/item/reagent_container/glass/bucket/janibucket, /obj/item/tool/mop, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/biodome/complex) "dfV" = ( /obj/structure/surface/table/almayer, /obj/item/reagent_container/glass/beaker, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/biodome/virology) "dgp" = ( /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "whitetancorner" - }, +/turf/open/floor/corsat/whitetancorner/west, /area/corsat/gamma/residential/west) "dgq" = ( -/turf/open/floor/corsat{ - dir = 9; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/northwest, /area/corsat/omega/offices) "dgx" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -37202,10 +27392,7 @@ dir = 8; network = list("gamma") }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/east, /area/corsat/gamma/residential/west) "dgJ" = ( /obj/structure/machinery/door_control{ @@ -37215,38 +27402,26 @@ use_power = 0 }, /obj/structure/closet/crate/science, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/corsat/gamma/sigmaremote) "dhG" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/medbay) "dhN" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "whitebluefull" - }, +/turf/open/floor/corsat/whitebluefull/southwest, /area/corsat/gamma/residential/showers) "dio" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/hangar/monorail/control) "diw" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/mars_cave{ - icon_state = "mars_cave_9" - }, +/turf/open/mars_cave/mars_cave_9, /area/corsat/sigma/biodome) "diD" = ( /obj/structure/flora/bush/ausbushes/var3/ywflowers, @@ -37257,91 +27432,61 @@ /area/corsat/theta/biodome) "diI" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/gamma/residential/west) "diP" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "whitetancorner" - }, +/turf/open/floor/corsat/whitetancorner/north, /area/corsat/gamma/residential/researcher) "djC" = ( /obj/effect/landmark/corpsespawner/scientist, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/southeast/datalab) "djF" = ( /turf/open/floor/corsat, /area/corsat/gamma/residential/researcher) "djM" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/corsat/omega/offices) "djR" = ( /obj/structure/surface/table/almayer, /obj/item/storage/box/donkpockets, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/east, /area/corsat/omega/complex) "dky" = ( /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/foyer) "dkK" = ( /obj/effect/decal/cleanable/blood/splatter, /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/sigma/hangar/arrivals) "dlz" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/reagent_analyzer, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/biodome/toxins) "dlO" = ( /obj/structure/barricade/handrail{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/hallwaysouth) "dlP" = ( /obj/structure/closet/coffin, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "green" - }, +/turf/open/floor/corsat/green/west, /area/corsat/gamma/medbay/morgue) "dlU" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/corsat/sigma/cafe) "dml" = ( -/turf/open/floor/corsat{ - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner, /area/corsat/sigma/hangar/checkpoint) "dmD" = ( /obj/structure/machinery/door_control{ @@ -37350,62 +27495,44 @@ pixel_y = 24; use_power = 0 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/north, /area/corsat/sigma/south/complex) "dmE" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/theta/airlock/east) "dmK" = ( /obj/effect/landmark/hunter_primary, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/cargo) "dmP" = ( /obj/structure/pipes/standard/manifold/fourway/hidden/green, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/theta/biodome/hydroeast) "dmR" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/northeast, /area/corsat/theta/biodome/complex) "dnZ" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "purple" - }, +/turf/open/floor/corsat/purple, /area/corsat/omega/hallways) "dos" = ( /obj/structure/surface/table/almayer, /obj/item/folder/black_random, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/biodome/toxins) "dqi" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/airlock/control) "dqt" = ( /obj/structure/machinery/door/airlock/almayer/medical/glass/colony{ @@ -37415,33 +27542,23 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/gamma/residential/west) "dqu" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "whitetancorner" - }, +/turf/open/floor/corsat/whitetancorner/north, /area/corsat/sigma/dorms) "dqQ" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/south/robotics) "dqR" = ( /obj/structure/closet/firecloset, -/turf/open/floor/corsat{ - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite, /area/corsat/gamma/biodome/virology) "drp" = ( /obj/docking_port/stationary/marine_dropship/lz1{ @@ -37451,24 +27568,27 @@ /area/corsat/gamma/hangar) "drv" = ( /obj/effect/landmark/hunter_secondary, -/turf/open/gm/river/desert/shallow{ - name = "pool" - }, +/turf/open/gm/river/desert/shallow/pool, /area/corsat/gamma/residential/showers) "drC" = ( /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "whitetancorner" - }, +/turf/open/floor/corsat/whitetancorner/west, /area/corsat/sigma/dorms) -"drW" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellowcorner" +"drE" = ( +/obj/structure/machinery/power/reactor/colony{ + desc = "A high-tech thermoelectric generator fueled by a superheated uranium rod."; + name = "\improper G-17 Thermoelectric Generator" + }, +/obj/structure/cable/yellow{ + d2 = 4; + icon_state = "0-4" }, +/turf/open/floor/corsat/plate, +/area/corsat/gamma/engineering/core) +"drW" = ( +/turf/open/floor/corsat/yellowcorner/west, /area/corsat/sigma/southeast/datamaint) "dso" = ( /obj/structure/surface/table/almayer, @@ -37478,18 +27598,13 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/west, /area/corsat/omega/offices) "dsw" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/south/security) "dsF" = ( /obj/structure/toilet{ @@ -37499,64 +27614,42 @@ dir = 8 }, /obj/effect/landmark/lv624/xeno_tunnel, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "whitebluefull" - }, +/turf/open/floor/corsat/whitebluefull/southwest, /area/corsat/gamma/residential/lavatory) "dta" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/omega/hallways) "dtd" = ( /obj/structure/barricade/handrail{ layer = 3 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/south) "dte" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner/north, /area/corsat/sigma/south/engineering) "dtl" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/east, /area/corsat/gamma/hangar/flightcontrol) "dtU" = ( /obj/structure/bed/chair/office/light{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite, /area/corsat/gamma/biodome/complex) "dug" = ( /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/hangar/arrivals) "dui" = ( -/turf/open/floor/corsat{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/corsat/red/southwest, /area/corsat/theta/airlock/control) "duk" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/engineering/core) "duC" = ( /obj/structure/platform{ @@ -37567,31 +27660,21 @@ dir = 8; layer = 2.7 }, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "white" - }, +/turf/open/floor/corsat/white/northwest, /area/corsat/sigma/south) "duW" = ( /obj/structure/machinery/blackbox_recorder, -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/theta/biodome/complex) "duY" = ( /obj/structure/platform{ dir = 8; layer = 2.7 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "white" - }, +/turf/open/floor/corsat/white/west, /area/corsat/gamma/hallwaysouth) "dvn" = ( -/turf/open/floor/corsat{ - icon_state = "whitecorner" - }, +/turf/open/floor/corsat/whitecorner, /area/corsat/gamma/hallwaysouth) "dvp" = ( /obj/structure/pipes/vents/pump{ @@ -37599,23 +27682,16 @@ }, /obj/structure/window/reinforced, /obj/structure/platform, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/north) "dvx" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/cargo) "dvE" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "purplecorner" - }, +/turf/open/floor/corsat/purplecorner/west, /area/corsat/gamma/residential) "dvI" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -37623,9 +27699,7 @@ }, /obj/effect/landmark/xeno_hive_spawn, /obj/effect/landmark/ert_spawns/groundside_xeno, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/hangar) "dwa" = ( /obj/structure/bed/chair{ @@ -37633,28 +27707,17 @@ }, /obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purplecorner" - }, +/turf/open/floor/corsat/purplecorner/east, /area/corsat/theta/biodome/complex) "dwl" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "darkgreencorner" - }, +/turf/open/floor/corsat/darkgreencorner/east, /area/corsat/gamma/hangar) "dwr" = ( -/turf/open/floor/corsat{ - icon_state = "sigma" - }, +/turf/open/floor/corsat/sigma, /area/corsat/sigma/dorms) "dwH" = ( /obj/structure/prop/almayer/computers/mapping_computer, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/north, /area/corsat/gamma/sigmaremote) "dwM" = ( /obj/structure/prop/almayer/cannon_cables{ @@ -37665,17 +27728,13 @@ desc = "A bewildering tangle of machinery and pipes."; name = "\improper coolant feed" }, -/turf/open/shuttle/escapepod{ - icon_state = "floor5" - }, +/turf/open/shuttle/escapepod/floor5, /area/corsat/theta/biodome/complex) "dwS" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/control) "dwW" = ( /obj/structure/pipes/standard/manifold/hidden/green{ @@ -37686,20 +27745,14 @@ "dxx" = ( /obj/structure/surface/table/reinforced, /obj/item/device/assembly/signaller, -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/sigma/south/complex) "dxy" = ( -/turf/open/gm/river/desert/shallow{ - name = "pool" - }, +/turf/open/gm/river/desert/shallow/pool, /area/corsat/gamma/residential/showers) "dxB" = ( /obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/south/robotics) "dxS" = ( /obj/structure/machinery/door/poddoor/almayer{ @@ -37708,50 +27761,36 @@ use_power = 0 }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/corsat/gamma/cargo) "dyd" = ( /obj/structure/machinery/light, /obj/structure/closet/firecloset, -/turf/open/floor/corsat{ - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite, /area/corsat/gamma/biodome/complex) "dyK" = ( /obj/structure/pipes/vents/pump, /turf/open/auto_turf/snow/layer0, /area/corsat/gamma/biodome) "dyU" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/east, /area/corsat/sigma/hangar/monorail) "dyY" = ( /obj/structure/pipes/vents/pump{ dir = 8; id_tag = "mining_outpost_pump" }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/theta/airlock/west) "dzB" = ( /obj/structure/machinery/photocopier, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/north, /area/corsat/sigma/south/complex) "dzT" = ( /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "red" - }, +/turf/open/floor/corsat/red, /area/corsat/sigma/hangar/security) "dzV" = ( /obj/structure/flora/bush/ausbushes/var3/fullgrass, @@ -37761,97 +27800,67 @@ /turf/open/gm/grass/grass1/weedable, /area/corsat/theta/biodome) "dzX" = ( -/turf/open/floor/corsat{ - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner, /area/corsat/gamma/foyer) "dzZ" = ( /obj/structure/machinery/camera/autoname{ network = list("omega") }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/corsat/omega/control) "dAk" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/airlock/south) "dAW" = ( /obj/structure/closet/crate/science, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/omega/complex) "dBi" = ( -/turf/open/floor/corsat{ - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner, /area/corsat/omega/security) "dBx" = ( /obj/structure/window/reinforced{ dir = 8; health = 80 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/southeast/datalab) "dBy" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/mars{ - icon_state = "mars_dirt_13" - }, +/turf/open/mars/mars_dirt_13, /area/corsat/sigma/biodome) "dBW" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purplewhitecorner" - }, +/turf/open/floor/corsat/purplewhitecorner/east, /area/corsat/gamma/sigmaremote) "dCv" = ( /obj/structure/bed/chair{ dir = 1 }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/medbay) "dCP" = ( /obj/structure/stairs{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "white" - }, +/turf/open/floor/corsat/white/east, /area/corsat/sigma/south) "dDj" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/sigma/south) "dDl" = ( /obj/structure/closet/secure_closet/security, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/omega/airlocknorth/id) "dDt" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "darkgreen" - }, +/turf/open/floor/corsat/darkgreen/east, /area/corsat/gamma/foyer) "dEe" = ( /obj/structure/machinery/power/apc/hyper{ @@ -37865,14 +27874,11 @@ /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/omega/hallways) "dFb" = ( /obj/structure/machinery/floodlight{ - name = "Floodlight"; - unacidable = 0 + name = "Floodlight" }, /turf/open/auto_turf/snow/layer0, /area/corsat/gamma/biodome) @@ -37880,9 +27886,7 @@ /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/hallwaysouth) "dFL" = ( /obj/structure/bed/chair/comfy/black{ @@ -37891,63 +27895,40 @@ /turf/open/floor/wood, /area/corsat/theta/biodome/complex) "dFP" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/east, /area/corsat/sigma/southeast/generator) "dGb" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "whitebluefull" - }, +/turf/open/floor/corsat/whitebluefull/southwest, /area/corsat/gamma/residential/showers) "dHa" = ( /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/omega/complex) "dHG" = ( /obj/structure/bed/chair/office/light{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/north, /area/corsat/gamma/biodome/virology) "dIa" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/corsat/sigma/biodome) "dIo" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purplewhitecorner" - }, +/turf/open/floor/corsat/purplewhitecorner/east, /area/corsat/theta/biodome/complex) "dII" = ( -/turf/open/floor/corsat{ - dir = 6; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/southeast, /area/corsat/sigma/south/complex) "dJR" = ( /obj/structure/surface/table/woodentable/fancy, /obj/item/ashtray/bronze, -/turf/open/floor{ - dir = 8; - icon_state = "carpet15-15" - }, +/turf/open/floor/carpet15_15/west, /area/corsat/omega/offices) "dJV" = ( /turf/closed/shuttle/ert{ @@ -37958,10 +27939,7 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/west, /area/corsat/omega/hangar/security) "dKn" = ( /obj/effect/landmark/hunter_primary, @@ -37972,96 +27950,66 @@ dir = 4; health = 80 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/southeast/datalab) "dKE" = ( /obj/structure/grille, /turf/open/floor/plating, /area/corsat/gamma/hangar/monorail) "dLL" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/north, /area/corsat/gamma/residential/west) "dLX" = ( /obj/structure/surface/rack, /obj/item/storage/firstaid/rad, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/northeast, /area/corsat/gamma/sigmaremote) "dMo" = ( /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/south/robotics) "dMH" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/north, /area/corsat/gamma/administration) "dMR" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/airlocknorth) "dNa" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/corsat/sigma/biodome/gunrange) "dNb" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/residential/east) "dNd" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/gamma/administration) "dNs" = ( /obj/structure/surface/rack, /obj/item/tool/weldpack, /obj/item/tool/weldingtool, /obj/item/clothing/head/welding, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/northeast, /area/corsat/omega/maint) "dNC" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "bluecorner" - }, +/turf/open/floor/corsat/bluecorner/west, /area/corsat/sigma/north) "dNS" = ( /obj/structure/machinery/camera/autoname{ dir = 1; network = list("sigma") }, -/turf/open/floor/corsat{ - icon_state = "brown" - }, +/turf/open/floor/corsat/brown, /area/corsat/sigma/cargo) "dOo" = ( /obj/structure/pipes/standard/manifold/hidden/green{ @@ -38073,76 +28021,50 @@ /obj/structure/bed/chair/office/light{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/southeast, /area/corsat/gamma/residential/west) "dOu" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/freezer) "dOw" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/computer/station_alert{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/omega/hangar/security) "dOB" = ( -/turf/open/floor/corsat{ - icon_state = "whitetancorner" - }, +/turf/open/floor/corsat/whitetancorner, /area/corsat/gamma/canteen) "dOF" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/corsat/sigma/biodome/gunrange) "dPH" = ( /obj/structure/bed/nest, /obj/effect/landmark/corpsespawner/pmc, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/omega/biodome) "dPK" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/west, /area/corsat/gamma/engineering/core) "dPV" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/north, /area/corsat/omega/control) "dQc" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/gamma/administration) "dQp" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/corsat/omega/airlocknorth/id) "dQJ" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -38150,17 +28072,13 @@ }, /obj/effect/landmark/xeno_hive_spawn, /obj/effect/landmark/ert_spawns/groundside_xeno, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/hangar) "dQL" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/biodome/complex) "dQQ" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -38172,53 +28090,43 @@ /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/hangar) "dRz" = ( -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/airlock/south) "dRI" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "bluegreycorner" - }, +/turf/open/floor/corsat/bluegreycorner/east, /area/corsat/gamma/hangar/flightcontrol) +"dSc" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/obj/item/fuel_cell, +/obj/structure/surface/rack, +/turf/open/floor/corsat/yellow/north, +/area/corsat/gamma/engineering/core) "dSi" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/hangar/cargo) "dSM" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "darkgreen" - }, +/turf/open/floor/corsat/darkgreen/west, /area/corsat/gamma/foyer) "dTb" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "whitebluefull" - }, +/turf/open/floor/corsat/whitebluefull/southwest, /area/corsat/gamma/residential/laundry) "dTy" = ( /obj/structure/closet/radiation, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/east, /area/corsat/omega/complex) "dUj" = ( /obj/docking_port/stationary/marine_dropship/lz2{ @@ -38230,10 +28138,7 @@ /obj/structure/machinery/camera/autoname{ network = list("gamma") }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/north, /area/corsat/gamma/canteen) "dVM" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony{ @@ -38243,24 +28148,17 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/engineering) "dVN" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/biodome/virology) "dVQ" = ( /obj/effect/landmark/survivor_spawner, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/gamma/canteen) "dWc" = ( /obj/structure/machinery/light{ @@ -38268,88 +28166,59 @@ }, /obj/structure/surface/table/almayer, /obj/item/paper_bin, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/west, /area/corsat/gamma/biodome/complex) "dWk" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "whitecorner" - }, +/turf/open/floor/corsat/whitecorner/north, /area/corsat/gamma/residential) "dWJ" = ( /obj/structure/bed/nest, /obj/effect/landmark/corpsespawner/scientist, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/omega/biodome) "dWY" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner, /area/corsat/sigma/south/engineering) "dXm" = ( /obj/effect/decal/cleanable/blood/splatter, /obj/effect/landmark/corpsespawner/scientist, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/residential) "dXp" = ( /obj/effect/spawner/gibspawner/human, -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/light_grey_single_wide_up_to_down, /area/prison/hangar_storage/research/shuttle) "dXq" = ( /obj/structure/surface/table/almayer, /obj/item/folder/black_random, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/southwest, /area/corsat/gamma/biodome/virology) "dXy" = ( -/turf/open/floor/corsat{ - dir = 6; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/southeast, /area/corsat/gamma/engineering/core) "dXO" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/corsat/sigma/biodome/scrapyard) "dXW" = ( /obj/structure/surface/rack, /obj/item/ammo_magazine/shotgun/slugs, -/turf/open/floor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/asteroidplating, /area/corsat/sigma/biodome/gunrange) "dYh" = ( /obj/structure/surface/table/woodentable/fancy, /obj/item/phone, -/turf/open/floor{ - dir = 8; - icon_state = "carpet15-15" - }, +/turf/open/floor/carpet15_15/west, /area/corsat/omega/offices) "dYk" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/airlock/control) "dYB" = ( /obj/structure/machinery/light{ @@ -38358,25 +28227,16 @@ /obj/structure/bed/chair/office/light{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/north, /area/corsat/gamma/biodome/virology) "dYJ" = ( /obj/structure/machinery/camera/autoname{ network = list("gamma") }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/north, /area/corsat/gamma/engineering) "dYM" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "darkgreen" - }, +/turf/open/floor/corsat/darkgreen/west, /area/corsat/gamma/hangar/arrivals) "dZe" = ( /obj/structure/surface/table/almayer, @@ -38384,25 +28244,17 @@ dir = 8; network = list("omega") }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/omega/security) "dZu" = ( /obj/structure/surface/rack, /obj/item/device/lightreplacer, /obj/item/storage/box/lights, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/residential) "dZH" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/corsat/gamma/rnr/library) "dZW" = ( /obj/structure/machinery/disposal, @@ -38412,9 +28264,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/hallwaysouth) "eaN" = ( /obj/effect/landmark/hunter_primary, @@ -38422,37 +28272,26 @@ /area/corsat/sigma/dorms) "ebq" = ( /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/airlock/control) "eby" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/residential) "ebE" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/sigma/south) "ebH" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "whitecorner" - }, +/turf/open/floor/corsat/whitecorner/east, /area/corsat/gamma/residential/east) "ebK" = ( /obj/structure/flora/pottedplant, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/biodome/virology) "ect" = ( /obj/structure/bed/chair/office/light{ @@ -38461,17 +28300,12 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/omega/complex) "ecA" = ( /obj/structure/machinery/light, /obj/structure/filingcabinet/filingcabinet, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/southwest, /area/corsat/gamma/biodome/toxins) "ecX" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -38486,63 +28320,43 @@ /obj/structure/barricade/handrail{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/south) "edN" = ( /obj/structure/flora/pottedplant, -/turf/open/floor/corsat{ - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey, /area/corsat/omega/offices) "edO" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "darkgreencorner" - }, +/turf/open/floor/corsat/darkgreencorner/east, /area/corsat/gamma/hangar) "edP" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/foyer) "eeG" = ( /obj/effect/landmark/xeno_spawn, /obj/effect/landmark/queen_spawn, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/omega/biodome) "eeL" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner/west, /area/corsat/gamma/cargo) "eeN" = ( /obj/structure/surface/table, /obj/structure/machinery/computer3/laptop/secure_data, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/north, /area/corsat/gamma/residential/west) "efN" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/north, /area/corsat/theta/airlock/west) "egd" = ( /obj/structure/pipes/standard/manifold/hidden/green{ @@ -38555,32 +28369,22 @@ dir = 4; network = list("sigma") }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/south/engineering) "egJ" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/west, /area/corsat/sigma/airlock/control) "egM" = ( /obj/structure/machinery/camera/autoname{ network = list("omega") }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/north, /area/corsat/omega/offices) "egZ" = ( /obj/effect/decal/warning_stripes{ icon_state = "N" }, -/turf/open/floor/almayer/research/containment/floor2{ - dir = 1 - }, +/turf/open/floor/almayer/research/containment/floor2/north, /area/corsat/sigma/south/complex) "ehg" = ( /obj/structure/flora/bush/ausbushes/var3/fullgrass, @@ -38589,36 +28393,24 @@ /area/corsat/theta/biodome) "ehj" = ( /obj/structure/flora/pottedplant, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/northwest, /area/corsat/omega/offices) "ehy" = ( /obj/structure/flora/pottedplant, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "bluegreycorner" - }, +/turf/open/floor/corsat/bluegreycorner/north, /area/corsat/gamma/hangar/flightcontrol) "ehC" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/corsat/sigma/biodome) "ehN" = ( /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/gamma/hangar/flightcontrol) "ehS" = ( -/turf/open/floor/corsat{ - icon_state = "white" - }, +/turf/open/floor/corsat/white, /area/corsat/gamma/residential/researcher) "ehU" = ( /obj/structure/surface/table, @@ -38628,10 +28420,7 @@ dir = 4; network = list("gamma") }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/west, /area/corsat/gamma/residential/west) "eii" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -38651,37 +28440,23 @@ pixel_x = -24; start_charge = 0 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "darkgreen" - }, +/turf/open/floor/corsat/darkgreen/west, /area/corsat/gamma/rnr) "eiR" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/omega/hallways) "ejb" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/north, /area/corsat/omega/security) "eji" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/omega/airlocknorth/id) "ejk" = ( /obj/structure/cargo_container/hd/mid/alt, -/turf/open/floor/corsat{ - icon_state = "cargo" - }, +/turf/open/floor/corsat/cargo, /area/corsat/gamma/cargo) "ejl" = ( /obj/structure/pipes/standard/manifold/hidden/green{ @@ -38695,56 +28470,39 @@ /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/hangar) "ejL" = ( /obj/structure/surface/table/almayer, /obj/item/explosive/grenade/high_explosive/frag, /obj/item/explosive/grenade/high_explosive/frag, -/turf/open/floor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/asteroidplating, /area/corsat/sigma/biodome/gunrange) "ekd" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/cargo) "ekK" = ( /obj/structure/machinery/smartfridge/seeds, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/north, /area/corsat/theta/biodome/hydrowest) "ekM" = ( /obj/structure/filingcabinet/filingcabinet, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/east, /area/corsat/sigma/south/security) "elt" = ( /obj/structure/machinery/camera/autoname{ network = list("omega") }, /obj/structure/filingcabinet/filingcabinet, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/corsat/gamma/airlock/south/id) "elG" = ( /obj/effect/landmark/xeno_hive_spawn, /obj/effect/landmark/ert_spawns/groundside_xeno, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/omega/biodome) "elR" = ( /obj/structure/flora/bush/ausbushes/ppflowers, @@ -38758,105 +28516,68 @@ /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite, /area/corsat/sigma/south/complex) "ema" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/theta/biodome/hydrowest) "emb" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/east, /area/corsat/sigma/south) "eme" = ( /obj/structure/janitorialcart, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/theta/biodome/hydroeast) "emC" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/biodome/virology) "enf" = ( /obj/structure/machinery/light, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "purplewhitecorner" - }, +/turf/open/floor/corsat/purplewhitecorner/west, /area/corsat/omega/complex) "enu" = ( -/turf/open/floor/corsat{ - dir = 6; - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite/southeast, /area/corsat/gamma/medbay/morgue) "enU" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/corsat/sigma/biodome) "eon" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/engineering/atmos) "eoE" = ( -/turf/open/floor/corsat{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/corsat/red/southwest, /area/corsat/omega/checkpoint) "eoF" = ( /obj/structure/window/framed/corsat/hull/security, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/hangar/office) "eoZ" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/med_data/laptop{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/east, /area/corsat/theta/biodome/complex) "epc" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purplecorner" - }, +/turf/open/floor/corsat/purplecorner/east, /area/corsat/omega/hallways) "epg" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "whitetancorner" - }, +/turf/open/floor/corsat/whitetancorner, /area/corsat/sigma/dorms) "epm" = ( /obj/structure/surface/table/almayer, /obj/item/device/flashlight, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/omega/security) "epq" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -38872,26 +28593,19 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/west, /area/corsat/omega/security) "eqa" = ( /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/hangar/checkpoint) "eqg" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/checkpoint) "eql" = ( /obj/structure/flora/bush/ausbushes/var3/ywflowers, @@ -38902,16 +28616,10 @@ /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/corsat/gamma/rnr/arcade) "equ" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner/west, /area/corsat/gamma/airlock/control) "eqz" = ( /turf/closed/wall/r_wall/biodome, @@ -38920,25 +28628,17 @@ /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "white" - }, +/turf/open/floor/corsat/white, /area/corsat/gamma/residential) "eqK" = ( -/turf/open/floor/corsat{ - icon_state = "gamma" - }, +/turf/open/floor/corsat/gamma, /area/corsat/gamma/foyer) "eqM" = ( /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/hallwaysouth) "erb" = ( -/turf/open/floor/corsat{ - icon_state = "brown" - }, +/turf/open/floor/corsat/brown, /area/corsat/omega/cargo) "erc" = ( /obj/structure/bed/chair/office/dark, @@ -38951,17 +28651,11 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/east, /area/corsat/theta/airlock/control) "ero" = ( /obj/effect/alien/weeds/node, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/west, /area/corsat/omega/complex) "erP" = ( /obj/structure/platform{ @@ -38973,90 +28667,61 @@ layer = 2.7 }, /obj/structure/reagent_dispensers/water_cooler, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "white" - }, +/turf/open/floor/corsat/white/northwest, /area/corsat/gamma/residential/east) "ese" = ( /obj/effect/landmark/monkey_spawn, -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/gamma/biodome/toxins) "esg" = ( /obj/structure/surface/table/reinforced, /obj/item/ashtray/plastic, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/omega/hangar/security) "esA" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "bluegreycorner" - }, +/turf/open/floor/corsat/bluegreycorner/west, /area/corsat/sigma/south/offices) "esF" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "whitebluefull" - }, +/turf/open/floor/corsat/whitebluefull/southwest, /area/corsat/gamma/residential/showers) "esV" = ( /obj/structure/morgue, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "green" - }, +/turf/open/floor/corsat/green/west, /area/corsat/gamma/medbay/morgue) "etb" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/theta/biodome/complex) "etp" = ( /obj/effect/landmark/corpsespawner/pmc, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/theta/airlock/west) "etD" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/mars{ - icon_state = "mars_dirt_12" - }, +/turf/open/mars/mars_dirt_12, /area/corsat/sigma/biodome) "euc" = ( /obj/structure/machinery/camera/autoname{ dir = 4; network = list("sigma") }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/west, /area/corsat/sigma/southeast/generator) "eun" = ( /obj/structure/machinery/vending/coffee, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/biodome/complex) "euV" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/mars_cave{ - icon_state = "mars_cave_18" - }, +/turf/open/mars_cave/mars_cave_18, /area/corsat/sigma/biodome) "evq" = ( /obj/item/stack/sheet/wood, @@ -39066,10 +28731,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner/east, /area/corsat/sigma/south/robotics) "ewM" = ( /obj/structure/machinery/door/airlock/almayer/medical/glass/colony{ @@ -39077,31 +28739,22 @@ name = "CORSAT Academy"; req_one_access = null }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/gamma/residential/west) "ewN" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/hangar/monorail) "ewP" = ( -/turf/open/floor/corsat{ - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner, /area/corsat/sigma/checkpoint) "ewT" = ( /obj/effect/decal/warning_stripes{ icon_state = "NE-out" }, -/turf/open/floor/almayer/research/containment/corner{ - dir = 4 - }, +/turf/open/floor/almayer/research/containment/corner/east, /area/corsat/gamma/sigmaremote) "ewW" = ( /obj/structure/blocker/forcefield/multitile_vehicles, @@ -39117,9 +28770,7 @@ /area/corsat/gamma/residential/researcher) "exf" = ( /obj/structure/machinery/computer3/server/rack, -/turf/open/floor/almayer{ - icon_state = "tcomms" - }, +/turf/open/floor/almayer/tcomms, /area/corsat/sigma/southeast/datalab) "exz" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony{ @@ -39128,34 +28779,22 @@ req_access_txt = "103"; req_one_access = null }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/south/complex) "exC" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/theta/airlock/west/id) "exY" = ( /obj/structure/surface/table/woodentable, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/hallwaysouth) "eym" = ( /obj/structure/machinery/light, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/southeast) "eyz" = ( -/turf/open/floor/plating{ - dir = 5; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/northeast, /area/corsat/omega/hangar) "eyA" = ( /obj/structure/bed{ @@ -39172,30 +28811,21 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/south/robotics) "ezx" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/theta/biodome/hydrowest) "ezJ" = ( /obj/structure/flora/pottedplant, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/west, /area/corsat/gamma/biodome/virology) "ezQ" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/maint) "ezR" = ( /obj/structure/flora/bush/ausbushes/var3/ywflowers, @@ -39211,62 +28841,43 @@ /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "white" - }, +/turf/open/floor/corsat/white/east, /area/corsat/gamma/residential/east) "eBx" = ( /obj/structure/surface/table/almayer, /obj/effect/spawner/random/tool, /obj/effect/spawner/random/tool, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/east, /area/corsat/gamma/engineering/atmos) "eCr" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/hangar/arrivals) "eDd" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/biodome/virology) "eDe" = ( /obj/structure/filingcabinet/filingcabinet, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/corsat/omega/hangar/security) "eDq" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/airlock/south/id) "eDz" = ( -/turf/open/floor/plating{ - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate, /area/corsat/sigma/hangar) "eDK" = ( /obj/structure/morgue{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/omega/complex) "eDM" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -39275,59 +28886,36 @@ /area/corsat/theta/biodome) "eDP" = ( /obj/structure/bed/chair/office/light, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/sigma/hangar/security) "eDZ" = ( -/turf/open/floor/corsat{ - dir = 5; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/northeast, /area/corsat/gamma/hallwaysouth) "eEJ" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/east, /area/corsat/theta/airlock/control) "eEW" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner/east, /area/corsat/sigma/southeast/generator) "eGx" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/east, /area/corsat/omega/hangar/security) "eGM" = ( /obj/structure/bed/chair/office/light{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/west, /area/corsat/theta/biodome/complex) "eGQ" = ( /obj/structure/surface/table, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/gamma/canteen) "eHn" = ( /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/residential) "eIq" = ( /obj/structure/machinery/light/small{ @@ -39340,52 +28928,36 @@ /turf/open/gm/dirtgrassborder/grassdirt_corner2/south_east, /area/corsat/theta/biodome) "eJg" = ( -/turf/open/floor/corsat{ - dir = 5; - icon_state = "green" - }, +/turf/open/floor/corsat/green/northeast, /area/corsat/gamma/hallwaysouth) "eJz" = ( /obj/effect/landmark/corpsespawner/wysec, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/checkpoint) "eKm" = ( /obj/structure/machinery/camera/autoname{ dir = 1; network = list("gamma") }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/residential) "eKJ" = ( /obj/structure/sink{ pixel_y = 24 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/north, /area/corsat/gamma/biodome/toxins) "eKL" = ( /obj/structure/bed/chair/comfy/black{ dir = 1 }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 8; - icon_state = "carpet13-5" - }, +/turf/open/floor/carpet13_5/west, /area/corsat/gamma/administration) "eKV" = ( /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "purplewhitecorner" - }, +/turf/open/floor/corsat/purplewhitecorner/west, /area/corsat/sigma/south/complex) "eLc" = ( /obj/structure/bed/chair/office/light{ @@ -39394,31 +28966,21 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/east, /area/corsat/gamma/residential/west) "eLP" = ( /obj/effect/decal/cleanable/blood/xtracks, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/omega/hallways) "eLR" = ( /obj/structure/stairs{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/north, /area/corsat/gamma/residential/west) "eMu" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/rnr/bar) "eMB" = ( /obj/structure/flora/jungle/planttop1, @@ -39437,33 +28999,24 @@ "eMM" = ( /obj/effect/alien/weeds/node, /obj/effect/landmark/xeno_spawn, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/omega/biodome) "eNm" = ( /obj/structure/machinery/disposal, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/southeast, /area/corsat/gamma/sigmaremote) "eNn" = ( /obj/effect/decal/warning_stripes{ icon_state = "NW-out" }, -/turf/open/floor/almayer/research/containment/corner{ - dir = 1 - }, +/turf/open/floor/almayer/research/containment/corner/north, /area/corsat/sigma/south/complex) "eNI" = ( /obj/structure/platform{ density = 0; icon_state = "platform_deco" }, -/turf/open/floor/corsat{ - icon_state = "whitecorner" - }, +/turf/open/floor/corsat/whitecorner, /area/corsat/sigma/south) "eNM" = ( /obj/structure/flora/bush/ausbushes/var3/fernybush, @@ -39477,19 +29030,13 @@ /turf/open/auto_turf/snow/layer2, /area/corsat/gamma/biodome) "eOI" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/sigma/hangar/security) "eOS" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_10" }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite/southwest, /area/corsat/gamma/medbay) "eOZ" = ( /obj/structure/flora/bush/ausbushes/var3/leafybush, @@ -39497,32 +29044,23 @@ /area/corsat/theta/biodome) "ePL" = ( /obj/structure/closet/l3closet/general, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/biodome/virology) "eQR" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/sigma/dorms) "eRg" = ( /obj/structure/surface/table/almayer, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/north, /area/corsat/gamma/biodome/toxins) "eRi" = ( /obj/structure/bed/chair/office/light{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/biodome/toxins) "eRE" = ( /obj/structure/filingcabinet/filingcabinet, @@ -39530,24 +29068,17 @@ dir = 8; network = list("omega") }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/theta/airlock/west/id) "eRX" = ( /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/south/robotics) "eSg" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/sigma/hangar/monorail) "eSC" = ( /obj/structure/machinery/light, @@ -39555,31 +29086,22 @@ /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/biodome/virology) "eSY" = ( /obj/structure/largecrate/random/barrel, -/turf/open/floor/corsat{ - icon_state = "brown" - }, +/turf/open/floor/corsat/brown, /area/corsat/sigma/cargo) "eTf" = ( /obj/effect/decal/cleanable/blood/splatter, /obj/effect/landmark/corpsespawner/scientist, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/hangar/arrivals) "eTg" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner/west, /area/corsat/theta/airlock/control) "eTj" = ( /obj/structure/filingcabinet/filingcabinet, @@ -39589,128 +29111,80 @@ /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "whitecorner" - }, +/turf/open/floor/corsat/whitecorner, /area/corsat/gamma/residential/east) "eTR" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/sigma/hangar/security) "eUe" = ( /obj/structure/surface/table, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/east, /area/corsat/gamma/residential/west) "eUf" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplecorner" - }, +/turf/open/floor/corsat/purplecorner/north, /area/corsat/sigma/south) "eUn" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhitecorner" - }, +/turf/open/floor/corsat/purplewhitecorner/north, /area/corsat/omega/containment) "eUB" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "green" - }, +/turf/open/floor/corsat/green/east, /area/corsat/gamma/hallwaysouth) "eUE" = ( /obj/structure/machinery/camera/autoname{ network = list("sigma") }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/corsat/sigma/biodome) "eUK" = ( -/turf/open/floor/corsat{ - icon_state = "purplewhitecorner" - }, +/turf/open/floor/corsat/purplewhitecorner, /area/corsat/theta/biodome/hydrowest) "eUR" = ( /obj/structure/bed/chair/office/light, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/airlock/south) "eVe" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner/north, /area/corsat/omega/hallways) "eVr" = ( /obj/structure/coatrack, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/corsat/omega/offices) "eVI" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/emails{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/northeast, /area/corsat/gamma/biodome/complex) "eVQ" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "purplewhitecorner" - }, +/turf/open/floor/corsat/purplewhitecorner, /area/corsat/sigma/south/complex) "eWX" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/north, /area/corsat/sigma/south/complex) "eXi" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "darkgreen" - }, +/turf/open/floor/corsat/darkgreen/north, /area/corsat/gamma/hangar/arrivals) "eXO" = ( /obj/structure/surface/table/reinforced, /obj/item/device/camera, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/sigmaremote) "eXS" = ( /obj/structure/machinery/light, /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "whitetancorner" - }, +/turf/open/floor/corsat/whitetancorner/west, /area/corsat/sigma/dorms) "eXX" = ( /obj/structure/surface/table/reinforced, /obj/item/paper, /obj/item/tool/pen/red, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/sigmaremote) "eYe" = ( /obj/structure/bedsheetbin, @@ -39718,52 +29192,33 @@ dir = 1; network = list("gamma") }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "whitebluefull" - }, +/turf/open/floor/corsat/whitebluefull/southwest, /area/corsat/gamma/residential/laundry) "eYr" = ( /obj/structure/surface/rack, /obj/item/storage/briefcase, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/corsat/red/northwest, /area/corsat/omega/hangar/security) "eYv" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey, /area/corsat/sigma/south/offices) "eYG" = ( /obj/structure/surface/table/almayer, /obj/item/storage/fancy/cigarettes/lucky_strikes, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/west, /area/corsat/omega/offices) "eYT" = ( -/turf/open/floor/corsat{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/corsat/red/northwest, /area/corsat/omega/security) "eZq" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "whitetancorner" - }, +/turf/open/floor/corsat/whitetancorner/east, /area/corsat/gamma/residential/west) "eZv" = ( /obj/structure/closet/jcloset, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/theta/biodome/hydroeast) "eZQ" = ( /obj/structure/flora/bush/ausbushes/var3/fullgrass, @@ -39775,65 +29230,44 @@ dir = 4 }, /obj/structure/closet/l3closet/scientist, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/east, /area/corsat/gamma/biodome/complex) "faF" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_10" }, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/northeast, /area/corsat/gamma/biodome/complex) "faT" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner/north, /area/corsat/gamma/cargo) "fbe" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/corsat/sigma/biodome) "fbs" = ( /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/south/robotics) "fcd" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/theta/biodome/complex) "fcq" = ( /obj/structure/surface/table/almayer, /obj/item/folder/black_random, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/east, /area/corsat/omega/offices) "fdc" = ( /obj/structure/machinery/light/small, /turf/open/floor/corsat, /area/corsat/gamma/residential/researcher) "fdf" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "bluecorner" - }, +/turf/open/floor/corsat/bluecorner/north, /area/corsat/omega/hallways) "fdh" = ( /obj/structure/pipes/vents/pump{ @@ -39844,9 +29278,7 @@ "feg" = ( /obj/structure/closet/crate/science, /obj/item/storage/fancy/vials/random, -/turf/open/floor/corsat{ - icon_state = "cargo" - }, +/turf/open/floor/corsat/cargo, /area/corsat/gamma/cargo) "fey" = ( /obj/structure/flora/pottedplant{ @@ -39856,10 +29288,7 @@ dir = 4; network = list("sigma") }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/west, /area/corsat/sigma/cargo) "feC" = ( /obj/structure/surface/table/woodentable, @@ -39868,64 +29297,42 @@ /area/corsat/sigma/dorms) "feD" = ( /obj/effect/landmark/hunter_secondary, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/freezer) "feQ" = ( /obj/structure/surface/table/almayer, /obj/item/paper_bin, /obj/item/tool/pen/blue, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/east, /area/corsat/gamma/biodome/virology) "feZ" = ( /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner/east, /area/corsat/sigma/south/robotics) "ffa" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/east, /area/corsat/gamma/hallwaysouth) "ffc" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/east, /area/corsat/omega/security) "ffl" = ( /obj/structure/machinery/light, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/south/complex) "ffp" = ( /obj/structure/stairs, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "white" - }, +/turf/open/floor/corsat/white/north, /area/corsat/gamma/residential/east) "ffC" = ( /obj/structure/machinery/light{ dir = 1 }, /obj/structure/flora/pottedplant, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/northeast, /area/corsat/sigma/hangar/office) "ffF" = ( /obj/structure/surface/table/woodentable, @@ -39934,18 +29341,13 @@ /turf/open/floor/wood, /area/corsat/gamma/rnr/library) "ffQ" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/sigma/south) "fgs" = ( /obj/effect/decal/warning_stripes{ icon_state = "E" }, -/turf/open/floor/almayer/research/containment/floor2{ - dir = 8 - }, +/turf/open/floor/almayer/research/containment/floor2/west, /area/corsat/sigma/south/complex) "fgu" = ( /obj/structure/pipes/vents/pump{ @@ -39954,10 +29356,7 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "whitebluefull" - }, +/turf/open/floor/corsat/whitebluefull/southwest, /area/corsat/gamma/residential/showers) "fgN" = ( /obj/structure/machinery/power/apc/high{ @@ -39965,46 +29364,29 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/north, /area/corsat/sigma/south/engineering) "fha" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "bluecorner" - }, +/turf/open/floor/corsat/bluecorner/north, /area/corsat/sigma/north) "fhb" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "whitebluefull" - }, +/turf/open/floor/corsat/whitebluefull/southwest, /area/corsat/sigma/lavatory) "fhG" = ( /obj/structure/surface/table/woodentable/fancy, /obj/item/folder/black_random, -/turf/open/floor{ - dir = 8; - icon_state = "carpet15-15" - }, +/turf/open/floor/carpet15_15/west, /area/corsat/omega/offices) "fid" = ( /obj/structure/machinery/chem_master, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purplewhitecorner" - }, +/turf/open/floor/corsat/purplewhitecorner/east, /area/corsat/gamma/biodome/toxins) "fie" = ( /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/omega/hangar/security) "fip" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -40016,10 +29398,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/north, /area/corsat/sigma/south/offices) "fkG" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -40029,39 +29408,29 @@ name = "Hangar Security"; req_access_txt = "101" }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/hangar/security) "fkV" = ( /obj/structure/closet/crate/trashcart, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/dorms) "fkX" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/medbay) "flh" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner, /area/corsat/omega/cargo) "fll" = ( /obj/structure/bed/chair/office/light{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/airlock/south) "flo" = ( /obj/structure/window/reinforced{ @@ -40077,9 +29446,7 @@ "flt" = ( /obj/vehicle/train/cargo/trolley, /obj/item/pamphlet/skill/powerloader, -/turf/open/floor/corsat{ - icon_state = "cargo" - }, +/turf/open/floor/corsat/cargo, /area/corsat/gamma/cargo) "flB" = ( /obj/structure/pipes/standard/manifold/hidden/green{ @@ -40091,10 +29458,7 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/corsat/gamma/rnr/arcade) "fmd" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony{ @@ -40104,19 +29468,13 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/north, /area/corsat/sigma/south/engineering) "fmk" = ( /obj/structure/noticeboard{ pixel_y = 30 }, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/northwest, /area/corsat/gamma/residential/west) "fmq" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -40128,23 +29486,16 @@ /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/theta/biodome/hydrowest) "fmC" = ( /obj/structure/pipes/vents/pump, /obj/structure/surface/table/reinforced, /obj/item/device/assembly/voice, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/north, /area/corsat/gamma/sigmaremote) "fmF" = ( -/turf/open/floor/corsat{ - icon_state = "red" - }, +/turf/open/floor/corsat/red, /area/corsat/gamma/hangar) "fmM" = ( /obj/structure/pipes/vents/pump{ @@ -40154,49 +29505,35 @@ dir = 1; network = list("gamma") }, -/turf/open/floor/corsat{ - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite, /area/corsat/gamma/biodome/virology) "fmR" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/theta/biodome/complex) "fmZ" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner/west, /area/corsat/sigma/north) "fnd" = ( /obj/structure/machinery/camera/autoname{ dir = 1; network = list("omega") }, -/turf/open/floor/corsat{ - icon_state = "purple" - }, +/turf/open/floor/corsat/purple, /area/corsat/omega/hallways) "fnz" = ( /obj/structure/sink{ dir = 4; pixel_x = 11 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/east, /area/corsat/sigma/south/complex) "fog" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/checkpoint) "foQ" = ( /obj/structure/tunnel{ @@ -40208,9 +29545,7 @@ /obj/structure/machinery/atm{ pixel_y = -30 }, -/turf/open/floor/corsat{ - icon_state = "darkgreen" - }, +/turf/open/floor/corsat/darkgreen, /area/corsat/gamma/foyer) "fpI" = ( /obj/structure/flora/jungle/vines/light_1, @@ -40223,25 +29558,18 @@ /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/foyer) "fqj" = ( /obj/structure/surface/table/almayer, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/east, /area/corsat/gamma/biodome/toxins) "fqk" = ( /obj/structure/machinery/camera/autoname{ dir = 1; network = list("theta") }, -/turf/open/floor/corsat{ - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite, /area/corsat/theta/biodome/hydrowest) "fqp" = ( /obj/structure/bed/chair/office/dark{ @@ -40256,43 +29584,29 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/mars_cave{ - icon_state = "mars_cave_15" - }, +/turf/open/mars_cave/mars_cave_15, /area/corsat/sigma/biodome) "fsd" = ( /obj/structure/surface/table/reinforced, /obj/item/folder/red, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/hangar/office) "fsn" = ( /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow, /area/corsat/sigma/south/robotics) "fsr" = ( /obj/effect/decal/cleanable/blood/splatter, /obj/effect/landmark/corpsespawner/pmc, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/hallwaysouth) "fst" = ( /obj/effect/landmark/xeno_hive_spawn, /obj/effect/landmark/ert_spawns/groundside_xeno, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/corsat/gamma/sigmaremote) "fsu" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/east, /area/corsat/omega/hallways) "fsx" = ( /turf/open/auto_turf/snow/layer4, @@ -40307,43 +29621,30 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/rnr) "fsS" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/theta/biodome/complex) "ftj" = ( /obj/structure/surface/table/almayer, /obj/item/storage/box/syringes, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/west, /area/corsat/gamma/biodome/virology) "ftx" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "white" - }, +/turf/open/floor/corsat/white/west, /area/corsat/gamma/residential/east) "ftX" = ( /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/corsat/red/southeast, /area/corsat/sigma/hangar) "fue" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -40353,28 +29654,20 @@ /area/corsat/theta/biodome) "fum" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/airlock/south) "fuG" = ( /obj/structure/machinery/light{ dir = 4 }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "white" - }, +/turf/open/floor/corsat/white/east, /area/corsat/gamma/residential/east) "fuK" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/north, /area/corsat/omega/airlocknorth/id) "fwq" = ( /obj/structure/flora/jungle/vines/light_1, @@ -40382,9 +29675,7 @@ /turf/open/gm/grass/grass1/weedable, /area/corsat/theta/biodome) "fwQ" = ( -/turf/open/floor/corsat{ - icon_state = "red" - }, +/turf/open/floor/corsat/red, /area/corsat/omega/hangar/security) "fxf" = ( /obj/structure/window/framed/corsat, @@ -40394,50 +29685,32 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/airlocknorth) "fxM" = ( -/turf/open/floor/corsat{ - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner, /area/corsat/sigma/airlock/control) "fxW" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner, /area/corsat/omega/airlocknorth/id) "fyq" = ( /obj/structure/largecrate/random/barrel, -/turf/open/floor/corsat{ - icon_state = "brown" - }, +/turf/open/floor/corsat/brown, /area/corsat/gamma/cargo) "fyy" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner/north, /area/corsat/gamma/engineering/atmos) "fyC" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "bluegreycorner" - }, +/turf/open/floor/corsat/bluegreycorner/west, /area/corsat/gamma/hangar/office) "fyM" = ( /obj/effect/landmark/survivor_spawner, -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/sigma/southeast/datalab) "fyO" = ( /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/corsat/sigma/biodome) "fzd" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -40448,26 +29721,18 @@ "fzm" = ( /obj/structure/surface/table/almayer, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "whitebluefull" - }, +/turf/open/floor/corsat/whitebluefull/southwest, /area/corsat/gamma/residential/laundry) "fzo" = ( /obj/structure/filingcabinet/filingcabinet, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/corsat/red/northwest, /area/corsat/sigma/hangar/security) "fzy" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/theta/biodome/complex) "fzV" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ @@ -40477,18 +29742,13 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/hangar/security) "fBG" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/omega/hallways) "fCi" = ( /obj/structure/surface/table, @@ -40496,19 +29756,13 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/west, /area/corsat/gamma/residential/west) "fCx" = ( /obj/structure/bed/chair/office/light{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/southeast, /area/corsat/gamma/administration) "fCK" = ( /obj/structure/barricade/handrail{ @@ -40523,47 +29777,32 @@ /obj/item/storage/box/masks, /obj/structure/surface/table/almayer, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite/west, /area/corsat/gamma/medbay) "fDx" = ( /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/hangar/security) "fDY" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/residential/east) "fEl" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/security) "fEC" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/hangar) "fEI" = ( -/turf/open/floor/corsat{ - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan, /area/corsat/gamma/residential/west) "fEP" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/hangar/arrivals) "fFa" = ( /obj/effect/landmark/corpsespawner/scientist, @@ -40571,17 +29810,13 @@ /turf/open/floor/wood, /area/corsat/gamma/residential/researcher) "fFh" = ( -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/omega/maint) "fFI" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/south/engineering) "fGJ" = ( /obj/structure/machinery/door/airlock/almayer/research/glass/colony{ @@ -40589,18 +29824,12 @@ name = "Teleportation Chamber"; req_one_access_txt = "103" }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/corsat/gamma/sigmaremote) "fGM" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/emails, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/west, /area/corsat/gamma/biodome/virology) "fGO" = ( /obj/structure/machinery/light{ @@ -40609,87 +29838,57 @@ /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhitecorner" - }, +/turf/open/floor/corsat/purplewhitecorner/north, /area/corsat/gamma/sigmaremote) "fGP" = ( /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/cargo) "fGS" = ( /obj/structure/barricade/handrail{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "gamma" - }, +/turf/open/floor/corsat/gamma, /area/corsat/gamma/hallwaysouth) "fGU" = ( /obj/effect/landmark/survivor_spawner, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purplewhitecorner" - }, +/turf/open/floor/corsat/purplewhitecorner/east, /area/corsat/sigma/south/complex) "fGV" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/sigma/south/complex) "fHO" = ( /obj/structure/largecrate/random, /turf/open/floor/corsat, /area/corsat/sigma/hangar) "fHP" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/east, /area/corsat/sigma/dorms) "fHX" = ( /obj/structure/closet, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite/northeast, /area/corsat/gamma/medbay/morgue) "fIr" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhitecorner" - }, +/turf/open/floor/corsat/purplewhitecorner/north, /area/corsat/theta/biodome/complex) "fIY" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/east, /area/corsat/omega/hallways) "fIZ" = ( /obj/structure/closet/firecloset, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/corsat/sigma/north) "fJf" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "bluecorner" - }, +/turf/open/floor/corsat/bluecorner/north, /area/corsat/sigma/southeast) "fJm" = ( /obj/structure/closet/crate/trashcart, @@ -40698,32 +29897,22 @@ "fJx" = ( /obj/structure/surface/table/almayer, /obj/item/storage/box/beakers, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/east, /area/corsat/gamma/biodome/complex) "fJZ" = ( /obj/structure/surface/table/almayer, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/hangar) "fKw" = ( /obj/structure/pipes/standard/simple/hidden/green, /turf/open/floor/corsat, /area/corsat/gamma/sigmaremote) "fLm" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purple" - }, +/turf/open/floor/corsat/purple/north, /area/corsat/gamma/biodome/complex) "fLz" = ( /obj/structure/surface/table/almayer, -/turf/open/floor/corsat{ - icon_state = "sterileplate" - }, +/turf/open/floor/corsat/sterileplate, /area/corsat/gamma/kitchen) "fMi" = ( /obj/structure/machinery/light{ @@ -40732,36 +29921,23 @@ /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/hallwaysouth) "fMn" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/south/engineering) "fMv" = ( /obj/structure/closet/emcloset, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/north, /area/corsat/gamma/biodome/virology) "fMN" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "whitetancorner" - }, +/turf/open/floor/corsat/whitetancorner/north, /area/corsat/gamma/canteen) "fNy" = ( -/turf/open/floor/corsat{ - dir = 6; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/southeast, /area/corsat/gamma/canteen) "fOd" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -40772,9 +29948,7 @@ "fOh" = ( /obj/effect/landmark/corpsespawner/prisoner, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/south/security) "fPp" = ( /obj/structure/surface/table/almayer, @@ -40784,34 +29958,23 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/east, /area/corsat/omega/offices) "fPK" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/north, /area/corsat/gamma/airlock/control) "fQl" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/west, /area/corsat/sigma/airlock/control) "fQm" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, /obj/structure/bed/chair/office/light, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/southeast/datalab) "fQC" = ( /obj/structure/machinery/door/poddoor/almayer/open{ @@ -40820,21 +29983,14 @@ use_power = 0 }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/corsat/gamma/hangar/cargo) "fRD" = ( /obj/structure/closet/emcloset, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/hangar/arrivals) "fRR" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/sigma/airlock/control) "fSo" = ( /obj/structure/bed/stool, @@ -40848,25 +30004,17 @@ dir = 8; network = list("gamma") }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/east, /area/corsat/gamma/hallwaysouth) "fSA" = ( /obj/structure/flora/bush/ausbushes/ppflowers, /turf/open/gm/dirtgrassborder/grassdirt_corner2/north_west, /area/corsat/theta/biodome) "fSB" = ( -/turf/open/floor/corsat{ - icon_state = "darkgreencorner" - }, +/turf/open/floor/corsat/darkgreencorner, /area/corsat/sigma/hangar/arrivals) "fSU" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/east, /area/corsat/sigma/hangar/security) "fSX" = ( /obj/structure/machinery/door/airlock/almayer/generic{ @@ -40876,46 +30024,36 @@ /area/prison/hangar_storage/research/shuttle) "fTw" = ( /obj/structure/closet/firecloset, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/southeast/datamaint) "fTx" = ( /obj/structure/surface/table/almayer, /obj/effect/spawner/random/tool, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/southwest, /area/corsat/gamma/engineering) +"fTK" = ( +/obj/structure/prop/mech/parts/durand_left_leg, +/turf/open/floor/corsat/arrow_east, +/area/corsat/sigma/south/robotics) "fTT" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/airlocknorth) "fUj" = ( /obj/effect/landmark/survivor_spawner, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/sigmaremote) "fUp" = ( /obj/structure/machinery/light, /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite, /area/corsat/theta/biodome/complex) "fUA" = ( -/turf/open/floor/corsat{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/corsat/red/southeast, /area/corsat/omega/security) "fVl" = ( /obj/structure/pipes/vents/pump{ @@ -40929,25 +30067,18 @@ dir = 1; network = list("sigma") }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner/west, /area/corsat/sigma/south/robotics) "fVo" = ( /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/omega/offices) "fWe" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/sigma/hangar/monorail) "fWx" = ( /obj/structure/pipes/vents/pump{ @@ -40959,9 +30090,7 @@ /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/sigma/south) "fWM" = ( /obj/structure/pipes/standard/manifold/hidden/green{ @@ -40970,23 +30099,16 @@ /turf/open/ice, /area/corsat/gamma/biodome) "fWN" = ( -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/hangar/checkpoint) "fXx" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/medbay) "fXA" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner/north, /area/corsat/sigma/airlock/control) "fXE" = ( /obj/structure/machinery/power/apc/high{ @@ -40995,20 +30117,14 @@ start_charge = 0 }, /obj/effect/landmark/yautja_teleport, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/residential) "fXJ" = ( /obj/effect/landmark/hunter_primary, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/residential) "fXP" = ( -/turf/open/floor/corsat{ - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner, /area/corsat/sigma/hangar/security) "fYL" = ( /obj/structure/pipes/standard/manifold/hidden/green, @@ -41018,179 +30134,121 @@ /obj/structure/machinery/camera/autoname{ network = list("omega") }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/corsat/omega/security) "fZQ" = ( /obj/structure/surface/table/almayer, /obj/item/folder/black_random, -/turf/open/floor/corsat{ - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey, /area/corsat/gamma/hangar/flightcontrol) "fZW" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/hydroponics) "gab" = ( /obj/structure/pipes/vents/pump, /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/north, /area/corsat/gamma/residential/researcher) "gak" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/corsat/sigma/airlock/east) "gaF" = ( -/turf/open/floor/corsat{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/corsat/red/northeast, /area/corsat/gamma/security) "gaO" = ( /obj/effect/landmark/corpsespawner/pmc, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/airlock/south) "gaP" = ( /obj/structure/surface/table/almayer, /obj/item/paper, /obj/item/tool/pen/blue, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/northwest, /area/corsat/gamma/biodome/virology) "gbd" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/omega/hangar/security) "gbm" = ( /obj/structure/bed/chair/office/light{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/west, /area/corsat/gamma/biodome/toxins) "gbw" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner/east, /area/corsat/gamma/cargo) "gbQ" = ( -/turf/open/floor/corsat{ - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey, /area/corsat/omega/offices) "gcs" = ( -/turf/open/floor/corsat{ - icon_state = "purplewhitecorner" - }, +/turf/open/floor/corsat/purplewhitecorner, /area/corsat/theta/biodome/hydroeast) "gcy" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/east, /area/corsat/sigma/hangar) "gcE" = ( /obj/structure/machinery/camera/autoname{ dir = 4; network = list("gamma") }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "darkgreen" - }, +/turf/open/floor/corsat/darkgreen/west, /area/corsat/gamma/hallwaysouth) "gcM" = ( -/turf/open/floor/plating{ - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate, /area/corsat/omega/hangar) "gcW" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "bluecorner" - }, +/turf/open/floor/corsat/bluecorner/north, /area/corsat/theta/airlock/control) "gdy" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "sterileplate" - }, +/turf/open/floor/corsat/sterileplate, /area/corsat/gamma/kitchen) "gdD" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/mars_cave{ - icon_state = "mars_cave_12" - }, +/turf/open/mars_cave/mars_cave_12, /area/corsat/sigma/biodome) "gdM" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/hangar/id) "gdO" = ( /obj/structure/machinery/vending/coffee, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/north, /area/corsat/theta/biodome/complex) "ged" = ( /obj/structure/filingcabinet/filingcabinet, /obj/structure/machinery/light, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/omega/airlocknorth) "gei" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/hangar) "gew" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/airlock/south) "geN" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -41199,27 +30257,19 @@ "geV" = ( /obj/effect/landmark/corpsespawner/scientist, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/sigma/dorms) "gft" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/east, /area/corsat/gamma/biodome/toxins) "gfC" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/biodome/virology) "gfL" = ( /obj/structure/machinery/camera/autoname{ @@ -41230,104 +30280,69 @@ /area/corsat/theta/biodome) "gfM" = ( /obj/structure/machinery/smartfridge/seeds, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/north, /area/corsat/theta/biodome/hydroeast) "ggc" = ( /obj/structure/closet/crate/science, /obj/item/storage/fancy/vials/random, -/turf/open/floor/corsat{ - icon_state = "cargo" - }, +/turf/open/floor/corsat/cargo, /area/corsat/omega/cargo) "ggh" = ( /obj/structure/machinery/camera/autoname{ dir = 4; network = list("gamma") }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/gamma/hangar/monorail/control) "ggq" = ( -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/foyer) "ggO" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/gamma/security/cells) "ggU" = ( /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/hallwaysouth) "ghu" = ( /obj/effect/landmark/corpsespawner/wysec, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/security) "ghx" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/residential/maint) "ghB" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/medbay) "ghJ" = ( /obj/structure/surface/table/almayer, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/sigma/hangar/security) "gio" = ( /obj/structure/surface/table/almayer, /obj/item/device/flashlight, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/corsat/red/northwest, /area/corsat/gamma/airlock/control) "giX" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "purplecorner" - }, +/turf/open/floor/corsat/purplecorner/west, /area/corsat/sigma/south) "gjb" = ( /obj/effect/decal/cleanable/blood/oil, -/turf/open/mars_cave{ - icon_state = "mars_cave_6" - }, +/turf/open/mars_cave/mars_cave_6, /area/corsat/sigma/biodome/scrapyard) "gjh" = ( /obj/structure/bed/chair, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/corsat/sigma/hangar/security) "gjj" = ( /obj/structure/bed/chair/office/light{ @@ -41337,9 +30352,7 @@ dir = 4; health = 80 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/southeast/datalab) "gjt" = ( /obj/structure/machinery/door/airlock/almayer/generic, @@ -41349,28 +30362,20 @@ /obj/structure/flora/pottedplant{ icon_state = "pottedplant_10" }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/east, /area/corsat/gamma/biodome/complex) "gjX" = ( /obj/structure/blocker/forcefield/multitile_vehicles, /turf/closed/wall/r_wall/biodome/biodome_unmeltable, /area/corsat/omega/checkpoint) "gke" = ( -/turf/open/floor/corsat{ - dir = 10; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/southwest, /area/corsat/sigma/cargo) "gki" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/hangar/monorail) "gkx" = ( /obj/structure/pipes/standard/manifold/hidden/green{ @@ -41382,24 +30387,17 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/maint) "gkC" = ( /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/hangar/monorail) "gkH" = ( /obj/structure/surface/table/reinforced, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purplewhitecorner" - }, +/turf/open/floor/corsat/purplewhitecorner/east, /area/corsat/gamma/sigmaremote) "gkU" = ( /obj/structure/window/framed/corsat/security, @@ -41415,32 +30413,20 @@ /turf/open/gm/dirtgrassborder/grassdirt_corner/south_east, /area/corsat/theta/biodome) "gne" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/north, /area/corsat/omega/hallways) "gnm" = ( /obj/structure/closet/wardrobe/toxins_white, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/west, /area/corsat/gamma/biodome/toxins) "gnC" = ( /obj/structure/bed, /obj/item/bedsheet, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite/southeast, /area/corsat/gamma/medbay) "gnF" = ( /obj/structure/machinery/photocopier, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/southwest, /area/corsat/sigma/southeast/datalab) "gnO" = ( /obj/structure/bed/chair{ @@ -41449,9 +30435,7 @@ /obj/structure/barricade/handrail{ layer = 3 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/hallwaysouth) "gnR" = ( /obj/structure/flora/bush/ausbushes/var3/fernybush, @@ -41462,9 +30446,7 @@ /area/corsat/theta/biodome) "goe" = ( /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/corsat/omega/airlocknorth) "gok" = ( /obj/structure/surface/table/almayer, @@ -41472,33 +30454,25 @@ dir = 8 }, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/sigma/south/complex) "goV" = ( /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/biodome/complex) "gpn" = ( /obj/structure/machinery/camera/autoname{ dir = 1; network = list("sigma") }, -/turf/open/floor/corsat{ - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner, /area/corsat/sigma/south/robotics) "gpu" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony{ name = "Engineering Storage"; req_one_access_txt = "102" }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/south/engineering) "gpP" = ( /obj/structure/flora/bush/ausbushes/ppflowers, @@ -41507,19 +30481,14 @@ "gqd" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/computer/secure_data, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/hangar/office) "gqi" = ( /obj/structure/bed/chair/office/light, /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/gamma/residential/west) "gqo" = ( /obj/structure/closet/toolcloset, @@ -41527,33 +30496,23 @@ dir = 4; network = list("gamma") }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/west, /area/corsat/gamma/engineering) "gqE" = ( /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/hangar) "gqH" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/corsat/sigma/cafe) "gqK" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite, /area/corsat/sigma/south/complex) "gqT" = ( /obj/structure/flora/bush/ausbushes/var3/fullgrass, @@ -41565,19 +30524,13 @@ /turf/open/gm/grass/grass1/weedable, /area/corsat/theta/biodome) "gra" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/north, /area/corsat/sigma/airlock/control) "grc" = ( /obj/structure/closet/secure_closet/engineering_personal{ req_access_txt = "102" }, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/northeast, /area/corsat/sigma/south/engineering) "gre" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -41587,9 +30540,7 @@ /area/corsat/theta/biodome) "grf" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/maint) "grg" = ( /obj/structure/surface/table, @@ -41597,10 +30548,7 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/west, /area/corsat/gamma/residential/west) "grD" = ( /obj/structure/flora/bush/ausbushes/var3/fullgrass, @@ -41608,10 +30556,7 @@ /turf/open/gm/dirtgrassborder/north, /area/corsat/theta/biodome) "grK" = ( -/turf/open/floor/corsat{ - dir = 6; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/southeast, /area/corsat/gamma/residential/west) "gsg" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -41621,10 +30566,7 @@ dir = 1; network = list("sigma") }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/corsat/sigma/cafe) "gtc" = ( /obj/structure/barricade/handrail{ @@ -41638,43 +30580,30 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/gamma/residential/researcher) "gtp" = ( /obj/structure/surface/table/almayer, /obj/item/device/flashlight/lamp, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/sigma/south/offices) "gtr" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/rnr) "gtI" = ( /obj/structure/surface/table/almayer, /obj/item/storage/fancy/vials/random, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/north, /area/corsat/theta/biodome/complex) "gtP" = ( /obj/structure/machinery/camera/autoname{ network = list("gamma") }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purple" - }, +/turf/open/floor/corsat/purple/north, /area/corsat/gamma/residential) "gtX" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -41683,10 +30612,7 @@ /turf/open/gm/dirt, /area/corsat/theta/biodome) "gud" = ( -/turf/open/floor/corsat{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/corsat/red/southwest, /area/corsat/omega/hallways) "gui" = ( /obj/structure/machinery/vending/coffee, @@ -41699,58 +30625,42 @@ dir = 4 }, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/engineering) "guA" = ( /obj/structure/curtain/open/medical, /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/medbay) "guG" = ( /obj/structure/bed/chair, /obj/structure/machinery/camera/autoname{ network = list("gamma") }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite/north, /area/corsat/gamma/medbay/lobby) "guS" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/east, /area/corsat/gamma/foyer) "gvh" = ( /obj/effect/alien/weeds/node, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/hangar) "gvi" = ( /obj/structure/machinery/disposal, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/hallwaysouth) "gvl" = ( /obj/structure/surface/table, /obj/structure/machinery/computer/emails{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan, /area/corsat/gamma/residential/west) "gvs" = ( /obj/structure/bed/chair/comfy/black, @@ -41758,17 +30668,12 @@ /area/corsat/theta/biodome/complex) "gwV" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/theta/airlock/east/id) "gwW" = ( /obj/structure/surface/table/reinforced, /obj/item/phone, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/corsat/red/southwest, /area/corsat/omega/hangar/office) "gwY" = ( /obj/structure/machinery/disposal, @@ -41779,38 +30684,26 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/south/robotics) "gxp" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purplewhitecorner" - }, +/turf/open/floor/corsat/purplewhitecorner/east, /area/corsat/gamma/biodome/virology) "gxu" = ( /obj/structure/surface/table/woodentable, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/corsat/sigma/cafe) "gyg" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/sigma/southeast/datalab) "gys" = ( /obj/structure/surface/rack, /obj/item/weapon/gun/revolver/cmb, -/turf/open/floor/corsat{ - icon_state = "red" - }, +/turf/open/floor/corsat/red, /area/corsat/omega/hangar/security) "gyx" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ @@ -41820,25 +30713,17 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/hangar/security) "gyK" = ( /obj/structure/machinery/camera/autoname{ dir = 4; network = list("sigma") }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/west, /area/corsat/sigma/south/robotics) "gze" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "darkgreencorner" - }, +/turf/open/floor/corsat/darkgreencorner/north, /area/corsat/gamma/hangar/monorail) "gzf" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony{ @@ -41852,35 +30737,24 @@ dir = 8 }, /obj/structure/window/reinforced, -/turf/open/floor/corsat{ - icon_state = "darkgreen" - }, +/turf/open/floor/corsat/darkgreen, /area/corsat/gamma/foyer) "gzB" = ( /obj/effect/landmark/hunter_secondary, -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/gamma/hangar/flightcontrol) "gzL" = ( -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/theta/airlock/west) "gAh" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/gamma/medbay/morgue) "gAt" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "white" - }, +/turf/open/floor/corsat/white/west, /area/corsat/gamma/residential) "gAv" = ( /obj/structure/surface/table/reinforced, @@ -41888,9 +30762,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/omega/hangar/security) "gBh" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -41909,21 +30781,14 @@ /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "white" - }, +/turf/open/floor/corsat/white/west, /area/corsat/gamma/residential) "gCN" = ( /obj/effect/landmark/survivor_spawner, -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/sigma/southeast/dataoffice) "gCO" = ( -/turf/open/floor/corsat{ - icon_state = "green" - }, +/turf/open/floor/corsat/green, /area/corsat/gamma/hallwaysouth) "gEf" = ( /obj/structure/machinery/light{ @@ -41931,16 +30796,11 @@ }, /obj/structure/surface/table/almayer, /obj/effect/spawner/random/tech_supply, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/east, /area/corsat/sigma/south/robotics) "gEm" = ( /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/hangar/checkpoint) "gEy" = ( /obj/structure/flora/bush/ausbushes/var3/fullgrass, @@ -41957,10 +30817,7 @@ /turf/open/gm/dirtgrassborder/east, /area/corsat/theta/biodome) "gEV" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "bluecorner" - }, +/turf/open/floor/corsat/bluecorner/west, /area/corsat/gamma/airlock/control) "gFh" = ( /obj/structure/flora/jungle/alienplant1, @@ -41972,15 +30829,10 @@ "gGb" = ( /obj/structure/surface/table, /obj/item/book, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/east, /area/corsat/gamma/residential/west) "gGF" = ( -/turf/open/floor/corsat{ - icon_state = "greenwhitecorner" - }, +/turf/open/floor/corsat/greenwhitecorner, /area/corsat/gamma/medbay/morgue) "gGQ" = ( /obj/structure/surface/table/reinforced, @@ -41988,69 +30840,45 @@ dir = 1; network = list("omega") }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/southwest, /area/corsat/omega/control) "gGR" = ( /obj/structure/surface/rack, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/prison/hangar_storage/research/shuttle) "gGT" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/corsat/sigma/biodome/gunrange) "gGZ" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/rnr) "gHg" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/west, /area/corsat/theta/biodome/complex) "gHn" = ( /obj/structure/machinery/computer/crew, -/turf/open/floor/corsat{ - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite, /area/corsat/gamma/medbay) "gIe" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purple" - }, +/turf/open/floor/corsat/purple/east, /area/corsat/omega/hallways) "gIT" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "bluegreycorner" - }, +/turf/open/floor/corsat/bluegreycorner/east, /area/corsat/omega/offices) "gJn" = ( /obj/structure/machinery/disposal, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "darkgreen" - }, +/turf/open/floor/corsat/darkgreen/west, /area/corsat/gamma/foyer) "gJr" = ( /obj/structure/surface/table/almayer, @@ -42058,9 +30886,7 @@ dir = 8 }, /obj/structure/machinery/computer/emails, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/omega/offices) "gJz" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -42070,10 +30896,7 @@ /turf/open/auto_turf/snow/layer0, /area/corsat/gamma/biodome) "gJS" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/corsat/sigma/hangar/checkpoint) "gJX" = ( /obj/structure/blocker/forcefield/multitile_vehicles, @@ -42081,24 +30904,16 @@ /area/corsat/theta/airlock/west/id) "gKn" = ( /obj/structure/closet/wardrobe, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "whitebluefull" - }, +/turf/open/floor/corsat/whitebluefull/southwest, /area/corsat/gamma/residential/showers) "gKu" = ( -/turf/open/floor/corsat{ - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner, /area/corsat/gamma/hallwaysouth) "gKQ" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "tcomms" - }, +/turf/open/floor/corsat/tcomms/southwest, /area/corsat/gamma/sigmaremote) "gLs" = ( /turf/closed/wall/r_wall/biodome, @@ -42111,41 +30926,29 @@ /turf/open/gm/dirt, /area/corsat/theta/biodome) "gLW" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "darkgreencorner" - }, +/turf/open/floor/corsat/darkgreencorner/east, /area/corsat/gamma/hangar/arrivals) "gMC" = ( /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "red" - }, +/turf/open/floor/corsat/red, /area/corsat/sigma/hangar) "gMY" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/west, /area/corsat/gamma/hangar/security) "gNb" = ( -/turf/open/floor/corsat{ - icon_state = "purple" - }, +/turf/open/floor/corsat/purple, /area/corsat/omega/complex) "gNt" = ( /obj/structure/platform{ dir = 1; layer = 2.7 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/north) "gOk" = ( /obj/structure/flora/jungle/vines/light_1, @@ -42159,79 +30962,55 @@ /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "darkgreen" - }, +/turf/open/floor/corsat/darkgreen/east, /area/corsat/gamma/rnr) "gOO" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhitecorner" - }, +/turf/open/floor/corsat/purplewhitecorner/north, /area/corsat/gamma/biodome/complex) "gOP" = ( /obj/structure/machinery/light, /obj/structure/surface/table/reinforced, /obj/item/paper_bin, /obj/item/tool/pen, -/turf/open/floor/corsat{ - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite, /area/corsat/sigma/south/complex) "gOU" = ( /obj/structure/surface/table/almayer, /obj/item/device/flashlight/lamp, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/biodome/virology) "gOZ" = ( /obj/effect/landmark/corpsespawner/scientist, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/sigma/hangar/checkpoint) "gPd" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/hangar) "gPk" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22" }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "darkgreencorner" - }, +/turf/open/floor/corsat/darkgreencorner/east, /area/corsat/gamma/foyer) "gPo" = ( /obj/structure/platform{ dir = 4; layer = 2 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "white" - }, +/turf/open/floor/corsat/white/east, /area/corsat/gamma/hallwaysouth) "gPC" = ( /obj/structure/bed/sofa/vert/grey/top, -/turf/open/floor/corsat{ - icon_state = "darkgreen" - }, +/turf/open/floor/corsat/darkgreen, /area/corsat/sigma/hangar/arrivals) "gPN" = ( /obj/structure/bed/chair/office/light{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/omega/security) "gPU" = ( /obj/structure/machinery/light{ @@ -42240,19 +31019,14 @@ /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/east, /area/corsat/omega/complex) "gPX" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, /obj/structure/surface/table/almayer, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/sigma/hangar/office) "gQj" = ( /obj/structure/machinery/light/small{ @@ -42262,53 +31036,34 @@ /area/corsat/gamma/airlock/south/id) "gQL" = ( /obj/structure/bed/chair, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite/northeast, /area/corsat/gamma/medbay/lobby) "gRf" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "purple" - }, +/turf/open/floor/corsat/purple/west, /area/corsat/sigma/south) "gRg" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/corsat/sigma/biodome) "gRm" = ( /obj/structure/bed/stool{ pixel_y = 15 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/corsat/gamma/rnr/arcade) "gRB" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/north, /area/corsat/sigma/north) "gRE" = ( /obj/structure/closet/wardrobe/science_white, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/east, /area/corsat/gamma/biodome/complex) "gRH" = ( /obj/structure/surface/table/reinforced, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/sigma/south/complex) "gRP" = ( /obj/structure/machinery/door/airlock/almayer/medical/glass/colony{ @@ -42318,22 +31073,15 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/medbay/morgue) "gSm" = ( /obj/structure/surface/rack, /obj/item/storage/firstaid, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/prison/hangar_storage/research/shuttle) "gSu" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "purplewhitecorner" - }, +/turf/open/floor/corsat/purplewhitecorner/west, /area/corsat/sigma/south/complex) "gSC" = ( /obj/structure/largecrate/random/barrel, @@ -42343,52 +31091,36 @@ /turf/open/floor/corsat, /area/corsat/gamma/cargo/disposal) "gSI" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/omega/hangar/office) "gSQ" = ( /obj/structure/prop/almayer/cannon_cable_connector{ name = "\improper Cable connector" }, -/turf/open/shuttle/escapepod{ - icon_state = "floor5" - }, +/turf/open/shuttle/escapepod/floor5, /area/corsat/theta/biodome/complex) "gTe" = ( /obj/structure/bed/chair{ dir = 1 }, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/gamma/canteen) "gUe" = ( /obj/structure/machinery/light{ dir = 1 }, /obj/structure/prop/almayer/computers/mapping_computer, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/north, /area/corsat/sigma/south/complex) "gUj" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/sigma/dorms) "gUs" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/cargo) "gUw" = ( /obj/structure/closet/crate/science{ @@ -42397,18 +31129,13 @@ opened = 1 }, /obj/item/organ/kidneys, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/omega/complex) "gUX" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/northwest, /area/corsat/theta/biodome/complex) "gVr" = ( /obj/structure/pipes/standard/manifold/hidden/green{ @@ -42421,27 +31148,20 @@ dir = 4; network = list("sigma") }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/sigma/dorms) "gVM" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony{ name = "Maintainance"; req_one_access = null }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/south/offices) "gVR" = ( /obj/structure/machinery/cm_vending/sorted/tech/tool_storage{ req_access_txt = "102" }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/south/robotics) "gWS" = ( /obj/structure/surface/table, @@ -42450,56 +31170,39 @@ layer = 2 }, /obj/structure/machinery/computer3/laptop/secure_data, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/gamma/residential/west) "gWU" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/corsat/sigma/biodome) "gXp" = ( /obj/structure/bed/chair/office/light, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/west, /area/corsat/gamma/residential/west) "gXv" = ( /obj/structure/machinery/cm_vending/sorted/tech/electronics_storage{ req_access_txt = "102" }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/south/robotics) "gXG" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/sigma/south/complex) "gXL" = ( /obj/structure/surface/rack, /obj/item/device/lightreplacer, /obj/item/storage/box/lights, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/theta/biodome/hydroeast) "gXM" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "purple" - }, +/turf/open/floor/corsat/purple/southwest, /area/corsat/sigma/south) "gXN" = ( /obj/structure/flora/bush/ausbushes/var3/fullgrass, @@ -42513,68 +31216,47 @@ name = "Maintainence"; req_one_access = null }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/omega/maint) "gYr" = ( /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan, /area/corsat/gamma/residential/west) "gYA" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/checkpoint) "gYL" = ( -/turf/open/floor/corsat{ - dir = 10; - icon_state = "tcomms" - }, +/turf/open/floor/corsat/tcomms/southwest, /area/corsat/gamma/sigmaremote) "gZc" = ( /obj/structure/platform{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/theta/biodome/complex) "gZj" = ( /obj/structure/surface/table/almayer, /obj/item/clipboard, /obj/item/paper, /obj/item/tool/pen/blue, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/west, /area/corsat/sigma/southeast/dataoffice) "gZs" = ( /obj/structure/platform{ dir = 4; layer = 2 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "white" - }, +/turf/open/floor/corsat/white/east, /area/corsat/sigma/south) "gZw" = ( /obj/effect/landmark/corpsespawner/chef, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - icon_state = "sterileplate" - }, +/turf/open/floor/corsat/sterileplate, /area/corsat/gamma/kitchen) "gZB" = ( /obj/structure/machinery/photocopier, -/turf/open/floor/corsat{ - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite, /area/corsat/gamma/sigmaremote) "gZF" = ( /obj/structure/bed, @@ -42585,36 +31267,27 @@ "gZH" = ( /obj/structure/surface/table/almayer, /obj/item/tool/screwdriver, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/south/engineering) "hap" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/sigmaremote) "hat" = ( /obj/structure/machinery/light, /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "whitetancorner" - }, +/turf/open/floor/corsat/whitetancorner, /area/corsat/sigma/dorms) "hay" = ( /obj/structure/closet/secure_closet/security_empty{ name = "Warden's Locker" }, /obj/item/clothing/head/beret/sec/warden, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/omega/hangar/office) "haG" = ( /obj/structure/machinery/door/airlock/almayer/generic{ @@ -42622,57 +31295,37 @@ name = "\improper Showers" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "whitebluefull" - }, +/turf/open/floor/corsat/whitebluefull/southwest, /area/corsat/gamma/residential/showers) "hbu" = ( /obj/structure/surface/rack, /obj/item/storage/box/beakers, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/biodome/toxins) "hbB" = ( /obj/structure/surface/table/almayer, /obj/effect/spawner/random/tech_supply, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/northwest, /area/corsat/sigma/south/robotics) "hbF" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "bluecorner" - }, +/turf/open/floor/corsat/bluecorner/north, /area/corsat/omega/control) "hbX" = ( -/turf/open/floor{ - dir = 8; - icon_state = "carpet5-1" - }, +/turf/open/floor/carpet5_1/west, /area/corsat/omega/offices) "hcg" = ( /obj/structure/pipes/vents/pump, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/corsat/sigma/biodome) "hcH" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/north) "hcU" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/residential/east) "hdB" = ( /obj/structure/flora/jungle/plantbot1, @@ -42681,21 +31334,15 @@ /area/corsat/theta/biodome) "hdG" = ( /obj/structure/machinery/photocopier, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/sigma/hangar/office) "hdR" = ( /obj/structure/pipes/standard/manifold/fourway/hidden/green, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/omega/hallways) "heb" = ( /obj/effect/landmark/monkey_spawn, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/biodome/toxins) "hed" = ( /obj/structure/sign/safety/storage, @@ -42706,32 +31353,22 @@ dir = 8 }, /obj/item/storage/toolbox/electrical, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/theta/biodome/complex) "hel" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/corsat/sigma/biodome) "heo" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/north, /area/corsat/gamma/hallwaysouth) "hep" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/corsat/red/northeast, /area/corsat/omega/security) "heL" = ( /obj/structure/flora/bush/ausbushes/var3/fullgrass, @@ -42748,60 +31385,43 @@ dir = 8; layer = 2.8 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/north) "hgB" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/north, /area/corsat/omega/airlocknorth/id) "hhb" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/hangar/monorail) "hhj" = ( /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/corsat/theta/airlock/west) "hho" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/almayer/research/containment/floor2{ - dir = 1 - }, +/turf/open/floor/almayer/research/containment/floor2/north, /area/corsat/gamma/sigmaremote) "hhA" = ( /obj/structure/machinery/light, -/turf/open/floor/corsat{ - icon_state = "blue" - }, +/turf/open/floor/corsat/blue, /area/corsat/gamma/hallwaysouth) "hhP" = ( /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/freezer) "hhT" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/sigma/north) "hiw" = ( /obj/structure/bed/chair/comfy/black{ @@ -42816,9 +31436,7 @@ /obj/structure/disposalpipe/trunk{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite, /area/corsat/theta/biodome/complex) "hjU" = ( /obj/structure/machinery/light{ @@ -42827,9 +31445,7 @@ /obj/structure/barricade/handrail{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/hallwaysouth) "hkn" = ( /obj/structure/pipes/vents/pump{ @@ -42845,23 +31461,16 @@ /turf/open/gm/dirtgrassborder/west, /area/corsat/theta/biodome) "hkZ" = ( -/turf/open/floor/corsat{ - dir = 6; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/southeast, /area/corsat/omega/cargo) "hle" = ( /obj/structure/surface/rack, /obj/item/stack/sheet/mineral/phoron/medium_stack, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/biodome/toxins) "hlf" = ( /obj/vehicle/train/cargo/trolley, -/turf/open/floor/almayer{ - icon_state = "plating_striped" - }, +/turf/open/floor/almayer/plating_striped, /area/corsat/gamma/sigmaremote) "hls" = ( /obj/structure/xenoautopsy/tank/hugger, @@ -42873,40 +31482,27 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/east, /area/corsat/omega/security) "hlM" = ( /obj/structure/machinery/door/poddoor/two_tile/four_tile/vertical/opened{ id = "SigmaWestW"; name = "Sigma West Airlock" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/corsat/sigma/airlock/control) "hmO" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/theta/airlock/control) "hnr" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "darkgreen" - }, +/turf/open/floor/corsat/darkgreen/west, /area/corsat/sigma/hangar/arrivals) "hnx" = ( /obj/structure/surface/table, -/turf/open/floor/corsat{ - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan, /area/corsat/gamma/residential/west) "hnR" = ( /obj/structure/flora/jungle/plantbot1, @@ -42917,80 +31513,54 @@ /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/theta/biodome/complex) "hok" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/north, /area/corsat/sigma/south/offices) "hoC" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/omega/security) "hpB" = ( /obj/structure/bed/chair, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "darkgreen" - }, +/turf/open/floor/corsat/darkgreen/west, /area/corsat/gamma/rnr) "hpC" = ( /obj/structure/closet/secure_closet{ name = "secure evidence locker"; req_access_txt = "104" }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/omega/security) "hpM" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/rnr) "hqa" = ( /obj/structure/machinery/light, /obj/structure/bed/sofa/vert/grey/top, -/turf/open/floor/corsat{ - icon_state = "darkgreen" - }, +/turf/open/floor/corsat/darkgreen, /area/corsat/sigma/hangar/arrivals) "hqd" = ( /obj/structure/surface/table/almayer, /obj/item/paper_bin, /obj/item/tool/pen/red, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/corsat/red/northeast, /area/corsat/gamma/airlock/control) "hqv" = ( /obj/structure/surface/table/almayer, /obj/effect/spawner/random/tech_supply, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/north, /area/corsat/sigma/south/robotics) "hqA" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/west, /area/corsat/gamma/cargo) "hqU" = ( /obj/structure/pipes/standard/manifold/hidden/green{ @@ -43004,31 +31574,20 @@ "hrf" = ( /obj/structure/surface/table, /obj/item/folder/yellow, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/gamma/residential/west) "hsq" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "whitebluefull" - }, +/turf/open/floor/corsat/whitebluefull/southwest, /area/corsat/gamma/residential/showers) "hsr" = ( /obj/effect/landmark/hunter_secondary, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/hangar/cargo) "hsD" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/gamma/airlock/south) "hsJ" = ( /obj/structure/surface/table, @@ -43038,10 +31597,7 @@ layer = 2 }, /obj/item/tool/pen/blue, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/gamma/residential/west) "hsM" = ( /obj/structure/surface/table/almayer, @@ -43052,64 +31608,42 @@ pixel_y = 2; use_power = 0 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "bluegreycorner" - }, +/turf/open/floor/corsat/bluegreycorner/west, /area/corsat/sigma/hangar/office) "hta" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/hangar/checkpoint) "hte" = ( /obj/structure/machinery/vending/coffee, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/northeast, /area/corsat/gamma/residential/west) "htv" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/hangar) "htZ" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "white" - }, +/turf/open/floor/corsat/white/west, /area/corsat/gamma/residential) "huc" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/maint) "hun" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/airlock/control) "huo" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/residential/maint) "hur" = ( /obj/structure/pipes/standard/manifold/fourway/hidden/green, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/gamma/residential/researcher) "huu" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, @@ -43122,24 +31656,18 @@ dir = 4; network = list("gamma") }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/hangar) "huK" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner, /area/corsat/sigma/airlock/control) "huL" = ( /obj/structure/surface/table/almayer, /obj/item/storage/box/bodybags, -/turf/open/floor/corsat{ - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite, /area/corsat/gamma/medbay/morgue) "huQ" = ( /obj/structure/bed/chair/wood/wings{ @@ -43152,55 +31680,37 @@ /turf/open/floor/wood, /area/corsat/gamma/rnr/bar) "hva" = ( -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/dorms) "hvj" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "white" - }, +/turf/open/floor/corsat/white/southeast, /area/corsat/gamma/hallwaysouth) "hvl" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/north, /area/corsat/gamma/residential/west) "hvn" = ( /obj/effect/landmark/monkey_spawn, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/west, /area/corsat/theta/biodome/complex) "hvz" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/sigma/dorms) "hvD" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/airlock/south) "hvT" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/rnr) "hvZ" = ( /obj/structure/pipes/vents/pump, @@ -43208,25 +31718,19 @@ /area/corsat/sigma/dorms) "hwe" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/omega/biodome) "hws" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/sigma/hangar/monorail) "hwI" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor/corsat{ - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner, /area/corsat/omega/security) "hwV" = ( /obj/structure/platform{ @@ -43234,66 +31738,47 @@ dir = 4; icon_state = "platform_deco" }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/north) "hwW" = ( /obj/structure/machinery/camera/autoname{ dir = 4; network = list("gamma") }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/west, /area/corsat/gamma/airlock/control) "hxc" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/residential/researcher) "hxl" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey, /area/corsat/sigma/south/offices) "hxW" = ( /obj/structure/bed/chair/office/light{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/sigma/hangar/office) "hyf" = ( /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/west, /area/corsat/gamma/sigmaremote) "hyG" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purplewhitecorner" - }, +/turf/open/floor/corsat/purplewhitecorner/east, /area/corsat/gamma/biodome/toxins) "hyY" = ( /obj/structure/surface/table/reinforced, /obj/item/device/binoculars, -/turf/open/floor/corsat{ - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite, /area/corsat/sigma/south/complex) "hze" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_core, @@ -43304,10 +31789,7 @@ dir = 1 }, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite/west, /area/corsat/gamma/medbay/surgery) "hzm" = ( /obj/structure/barricade/handrail{ @@ -43323,56 +31805,39 @@ /area/corsat/gamma/residential/east) "hzM" = ( /obj/effect/landmark/lv624/xeno_tunnel, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/east, /area/corsat/sigma/southeast/datamaint) "hzU" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/west, /area/corsat/gamma/residential/researcher) "hAB" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/hangar) "hBo" = ( -/turf/open/floor/corsat{ - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow, /area/corsat/gamma/engineering/core) "hBp" = ( /obj/structure/machinery/medical_pod/sleeper{ flags_atom = 18 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/residential/east) "hBq" = ( /obj/structure/window/reinforced, /obj/structure/window/reinforced{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/north, /area/corsat/gamma/biodome/toxins) "hBA" = ( /obj/effect/landmark/hunter_secondary, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/medbay) "hBF" = ( /obj/structure/pipes/vents/pump{ @@ -43382,10 +31847,7 @@ dir = 1; network = list("sigma") }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner/west, /area/corsat/sigma/south/robotics) "hBM" = ( /obj/structure/machinery/landinglight/ds1/delayone{ @@ -43395,25 +31857,17 @@ /area/corsat/gamma/hangar) "hCm" = ( /obj/structure/cargo_container/wy/left, -/turf/open/floor/corsat{ - icon_state = "cargo" - }, +/turf/open/floor/corsat/cargo, /area/corsat/gamma/cargo) "hCt" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "whitecorner" - }, +/turf/open/floor/corsat/whitecorner/west, /area/corsat/gamma/residential/east) "hCG" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/atmos_alert{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/east, /area/corsat/gamma/engineering/atmos) "hCJ" = ( /obj/structure/machinery/door/airlock/almayer/generic{ @@ -43423,10 +31877,7 @@ use_power = 0 }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/corsat/sigma/biodome/gunrange) "hCY" = ( /obj/structure/safe, @@ -43440,15 +31891,10 @@ /area/corsat/gamma/administration) "hDl" = ( /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/hangar/monorail) "hDE" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "greenwhitecorner" - }, +/turf/open/floor/corsat/greenwhitecorner/west, /area/corsat/gamma/medbay/morgue) "hDF" = ( /turf/open/floor/corsat, @@ -43461,10 +31907,7 @@ /turf/open/gm/dirtgrassborder/grassdirt_corner/north_west, /area/corsat/theta/biodome) "hDX" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner/west, /area/corsat/omega/cargo) "hEb" = ( /obj/structure/closet/cabinet, @@ -43473,31 +31916,21 @@ /area/corsat/gamma/residential/east) "hEi" = ( /obj/structure/machinery/photocopier, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/west, /area/corsat/gamma/biodome/toxins) "hEt" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/airlock/east) "hEH" = ( /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/east, /area/corsat/sigma/south/robotics) "hFc" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor/corsat{ - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite, /area/corsat/gamma/sigmaremote) "hFh" = ( /obj/structure/window/framed/corsat/security, @@ -43514,21 +31947,13 @@ /area/corsat/gamma/rnr/bar) "hFo" = ( /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/hangar/security) "hFR" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/east, /area/corsat/sigma/hangar/monorail/control) "hFW" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/west, /area/corsat/gamma/hangar) "hGd" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ @@ -43537,9 +31962,7 @@ req_access_txt = "101" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/security) "hGf" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -43548,33 +31971,24 @@ "hGg" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/residential) "hHg" = ( /obj/item/reagent_container/spray/cleaner, /obj/structure/surface/rack, /obj/item/reagent_container/spray/cleaner, /obj/item/reagent_container/spray/cleaner, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/biodome/virology) "hHn" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ name = "Airlock Control"; req_access_txt = "101" }, -/turf/open/floor/corsat{ - icon_state = "red" - }, +/turf/open/floor/corsat/red, /area/corsat/theta/airlock/control) "hHx" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/east, /area/corsat/omega/hangar) "hHy" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -43586,31 +32000,23 @@ /area/corsat/gamma/biodome) "hHA" = ( /obj/effect/landmark/monkey_spawn, -/turf/open/floor/almayer/research/containment/floor2{ - dir = 1 - }, +/turf/open/floor/almayer/research/containment/floor2/north, /area/corsat/inaccessible) "hHL" = ( /obj/item/alien_embryo{ color = "#00ff80"; name = "corrupted alien embryo" }, -/turf/open/floor/almayer/research/containment/floor2{ - dir = 1 - }, +/turf/open/floor/almayer/research/containment/floor2/north, /area/corsat/inaccessible) "hHM" = ( /obj/structure/surface/table/reinforced, /obj/item/device/flashlight/lamp, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/omega/hangar/security) "hId" = ( -/turf/open/floor/corsat{ - icon_state = "whitecorner" - }, +/turf/open/floor/corsat/whitecorner, /area/corsat/gamma/residential) "hIh" = ( /obj/structure/closet/secure_closet/security_empty, @@ -43621,16 +32027,11 @@ /obj/item/ammo_magazine/pistol/mod88, /obj/item/storage/pouch/general/medium, /obj/item/storage/pouch/pistol, -/turf/open/floor/corsat{ - icon_state = "red" - }, +/turf/open/floor/corsat/red, /area/corsat/omega/hangar/security) "hIo" = ( /obj/effect/landmark/static_comms/net_one, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "bluegreycorner" - }, +/turf/open/floor/corsat/bluegreycorner/north, /area/corsat/gamma/hangar/flightcontrol) "hJw" = ( /obj/structure/flora/bush/ausbushes/ppflowers, @@ -43638,31 +32039,21 @@ /area/corsat/theta/biodome) "hJG" = ( /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "darkgreen" - }, +/turf/open/floor/corsat/darkgreen/east, /area/corsat/gamma/hangar/arrivals) "hJI" = ( -/turf/open/floor/corsat{ - icon_state = "purplewhitecorner" - }, +/turf/open/floor/corsat/purplewhitecorner, /area/corsat/omega/complex) "hKc" = ( /obj/effect/landmark/corpsespawner/engineer, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/engineering/core) "hKi" = ( /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "white" - }, +/turf/open/floor/corsat/white/southeast, /area/corsat/gamma/residential/east) "hKt" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -43680,9 +32071,7 @@ /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/residential) "hKH" = ( /obj/structure/flora/bush/ausbushes/var3/fernybush, @@ -43691,32 +32080,22 @@ /area/corsat/theta/biodome) "hKZ" = ( /obj/structure/largecrate/random/barrel, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/southeast/generator) "hLh" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "sterileplate" - }, +/turf/open/floor/corsat/sterileplate, /area/corsat/gamma/kitchen) "hLL" = ( /obj/structure/bed/chair/office/light{ dir = 1 }, /obj/structure/window/reinforced, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/west, /area/corsat/gamma/administration) "hMo" = ( /obj/structure/flora/pottedplant, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/west, /area/corsat/sigma/south/offices) "hMx" = ( /obj/structure/toilet{ @@ -43727,30 +32106,20 @@ }, /obj/effect/decal/cleanable/blood/splatter, /obj/effect/landmark/corpsespawner/scientist, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "whitebluefull" - }, +/turf/open/floor/corsat/whitebluefull/southwest, /area/corsat/gamma/residential/lavatory) "hMR" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/hangar/monorail) "hNh" = ( /obj/item/tool/wet_sign, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/residential) "hNA" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "purplewhitecorner" - }, +/turf/open/floor/corsat/purplewhitecorner/west, /area/corsat/theta/biodome/hydrowest) "hNI" = ( /obj/structure/flora/jungle/vines/heavy, @@ -43759,6 +32128,19 @@ }, /turf/open/gm/grass/grass1/weedable, /area/corsat/theta/biodome) +"hNL" = ( +/obj/structure/machinery/power/reactor/colony{ + desc = "A high-tech thermoelectric generator fueled by a superheated uranium rod."; + name = "\improper G-17 Thermoelectric Generator" + }, +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 4; + icon_state = "0-8"; + layer = 2.1 + }, +/turf/open/floor/corsat/plate, +/area/corsat/gamma/engineering/core) "hOb" = ( /obj/structure/blocker/forcefield/multitile_vehicles, /turf/closed/wall/r_wall/biodome, @@ -43767,9 +32149,7 @@ /obj/structure/bed/chair/office/light{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "red" - }, +/turf/open/floor/corsat/red, /area/corsat/omega/hangar/office) "hOU" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony{ @@ -43777,165 +32157,116 @@ name = "Maintenance Closet"; req_one_access = null }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/sigmaremote) "hOV" = ( /obj/structure/machinery/light, /obj/structure/reagent_dispensers/water_cooler, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/hallwaysouth) "hPg" = ( /obj/structure/barricade/handrail{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/south) "hPi" = ( /obj/structure/bed/chair/office/light{ dir = 4 }, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/gamma/residential/west) "hPr" = ( /obj/item/storage/box/gloves, /obj/structure/surface/table/almayer, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite/west, /area/corsat/gamma/medbay) "hPy" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/hangar/office) "hPF" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/east, /area/corsat/omega/offices) "hPL" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/computer/station_alert{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite, /area/corsat/sigma/south/complex) "hQb" = ( /obj/effect/decal/cleanable/cobweb{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/emergency_access) "hQf" = ( /obj/structure/machinery/light{ dir = 1 }, /obj/structure/filingcabinet/filingcabinet, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/corsat/sigma/hangar/checkpoint) "hQS" = ( -/turf/open/floor/corsat{ - icon_state = "blue" - }, +/turf/open/floor/corsat/blue, /area/corsat/omega/hallways) "hRb" = ( /obj/structure/surface/table/reinforced, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/gamma/airlock/control) "hRI" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/residential) "hRK" = ( /obj/structure/machinery/camera/autoname{ dir = 4; network = list("gamma") }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/west, /area/corsat/gamma/engineering) "hRQ" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/hangar) "hSo" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/north, /area/corsat/omega/checkpoint) "hSr" = ( /obj/structure/bed/chair, /obj/effect/landmark/hunter_secondary, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/sigma/hangar/checkpoint) "hSv" = ( /obj/structure/machinery/door/window/brigdoor/eastleft{ dir = 2; name = "Research Desk" }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/biodome/toxins) "hSQ" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/computer/cameras{ network = list("gamma") }, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/corsat/red/northeast, /area/corsat/gamma/airlock/south) "hST" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/alien/weeds/node, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/omega/complex) "hTd" = ( /obj/structure/showcase, @@ -43951,17 +32282,12 @@ dir = 1; layer = 2 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/gamma/residential/west) "hTe" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/sigma/hangar/office) "hTr" = ( /obj/structure/platform{ @@ -43972,10 +32298,7 @@ dir = 4; layer = 2.7 }, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "white" - }, +/turf/open/floor/corsat/white/northeast, /area/corsat/gamma/hallwaysouth) "hTI" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony{ @@ -43984,66 +32307,43 @@ req_one_access = null }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/residential) "hUR" = ( /obj/structure/machinery/door/window/southleft, /obj/structure/machinery/door/window/northleft, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/east, /area/corsat/theta/biodome/complex) "hUS" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/southwest, /area/corsat/gamma/sigmaremote) "hUY" = ( -/turf/open/floor/corsat{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/corsat/red/northwest, /area/corsat/omega/hallways) "hVq" = ( -/turf/open/floor/corsat{ - dir = 5; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/northeast, /area/corsat/omega/complex) "hVx" = ( /obj/structure/surface/table/almayer, /obj/item/device/flashlight, -/turf/open/floor/corsat{ - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow, /area/corsat/omega/maint) "hVF" = ( /obj/structure/machinery/door/poddoor/two_tile/four_tile/vertical/opened{ id = "ThetaWestW"; name = "Theta West Airlock" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/corsat/theta/airlock/west) "hVR" = ( /obj/effect/decal/cleanable/blood/xeno, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/omega/containment) "hWg" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/north, /area/corsat/sigma/southeast) "hWx" = ( /obj/structure/machinery/camera/autoname{ @@ -44054,60 +32354,40 @@ "hWW" = ( /obj/structure/surface/table/almayer, /obj/item/storage/box/monkeycubes, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/north, /area/corsat/theta/biodome/complex) "hXH" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "bluegreycorner" - }, +/turf/open/floor/corsat/bluegreycorner/east, /area/corsat/sigma/south/offices) "hYo" = ( /obj/structure/barricade/handrail{ layer = 3 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/south) "hYs" = ( /obj/structure/machinery/camera/autoname{ dir = 4; network = list("gamma") }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/gamma/hangar/security) "hYI" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner/west, /area/corsat/sigma/southeast/datamaint) "hYU" = ( /obj/effect/landmark/static_comms/net_one, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/foyer) "hYZ" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/south/security) "hZu" = ( -/turf/open/floor/corsat{ - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner, /area/corsat/gamma/security) "hZO" = ( /obj/structure/surface/rack, @@ -44116,9 +32396,7 @@ /obj/item/reagent_container/glass/beaker/vial, /obj/item/reagent_container/glass/beaker/vial, /obj/item/reagent_container/glass/beaker/vial, -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/gamma/biodome/virology) "hZU" = ( /obj/structure/machinery/botany{ @@ -44128,24 +32406,17 @@ dir = 8; network = list("gamma") }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/hydroponics) "iav" = ( /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/north, /area/corsat/sigma/south/security) "ibe" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/cargo) "ibz" = ( /obj/structure/bed/chair/wood/normal{ @@ -44158,37 +32429,27 @@ /turf/open/floor/wood, /area/corsat/gamma/residential/east) "ick" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplecorner" - }, +/turf/open/floor/corsat/purplecorner/north, /area/corsat/omega/hallways) "ict" = ( /obj/structure/machinery/light{ dir = 4 }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/hangar/monorail/control) "icZ" = ( /obj/structure/machinery/light, /obj/structure/surface/table/reinforced, /obj/item/paper_bin, /obj/item/tool/pen, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/southeast, /area/corsat/sigma/south/complex) "idf" = ( /obj/structure/machinery/light, /obj/structure/surface/table/reinforced, /obj/item/tank/air, -/turf/open/floor/corsat{ - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite, /area/corsat/gamma/sigmaremote) "idU" = ( /obj/structure/flora/bush/ausbushes/var3/stalkybush, @@ -44198,9 +32459,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor/corsat{ - icon_state = "sterileplate" - }, +/turf/open/floor/corsat/sterileplate, /area/corsat/gamma/kitchen) "iem" = ( /obj/structure/machinery/landinglight/ds1/delayone{ @@ -44212,46 +32471,33 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/airlock/control) "ieZ" = ( /obj/structure/surface/table, /obj/structure/machinery/computer3/laptop/secure_data, -/turf/open/floor/corsat{ - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan, /area/corsat/gamma/residential/west) "ifh" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "whitetancorner" - }, +/turf/open/floor/corsat/whitetancorner/north, /area/corsat/gamma/residential/researcher) "ifj" = ( /obj/structure/window/reinforced, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/gamma/administration) "ifx" = ( /obj/structure/surface/table/reinforced, /obj/item/device/flashlight/lamp, -/turf/open/floor/corsat{ - icon_state = "red" - }, +/turf/open/floor/corsat/red, /area/corsat/omega/hangar/security) "ifS" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/airlock/east) "ifX" = ( /turf/closed/wall/r_wall/biodome/biodome_unmeltable, @@ -44260,23 +32506,16 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/sigmaremote) "iho" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "white" - }, +/turf/open/floor/corsat/white/east, /area/corsat/sigma/dorms) "ihD" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/engineering) "ihL" = ( /obj/structure/window/reinforced{ @@ -44284,24 +32523,17 @@ health = 80 }, /obj/structure/surface/table/almayer, -/turf/open/floor/almayer{ - icon_state = "tcomms" - }, +/turf/open/floor/almayer/tcomms, /area/corsat/sigma/southeast/datalab) "ihN" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhitecorner" - }, +/turf/open/floor/corsat/purplewhitecorner/north, /area/corsat/theta/biodome/complex) "iik" = ( /obj/structure/machinery/camera/autoname{ dir = 8; network = list("omega") }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/checkpoint) "iiI" = ( /obj/structure/flora/jungle/plantbot1, @@ -44315,21 +32547,14 @@ start_charge = 0 }, /obj/item/device/flashlight/lamp, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/corsat/red/northwest, /area/corsat/gamma/airlock/south) "iiX" = ( -/turf/open/floor/corsat{ - icon_state = "red" - }, +/turf/open/floor/corsat/red, /area/corsat/sigma/airlock/east/id) "iiY" = ( /obj/effect/landmark/hunter_secondary, -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/gamma/hangar/office) "ijA" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -44345,25 +32570,17 @@ /obj/item/clipboard, /obj/item/paper, /obj/item/tool/pen/blue, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/east, /area/corsat/gamma/biodome/virology) "ikv" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "bluecorner" - }, +/turf/open/floor/corsat/bluecorner/west, /area/corsat/sigma/southeast/datalab) "ikC" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ name = "Holding Cell"; req_access_txt = "101" }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/hangar/security) "ikQ" = ( /obj/structure/machinery/light/small{ @@ -44378,46 +32595,31 @@ dir = 1; network = list("gamma") }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "whitetancorner" - }, +/turf/open/floor/corsat/whitetancorner/west, /area/corsat/gamma/residential/researcher) "ilm" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/theta/airlock/west/id) "ilo" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/toolbox, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/prison/hangar_storage/research/shuttle) "ilr" = ( /obj/structure/closet/emcloset, -/turf/open/floor/corsat{ - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite, /area/corsat/gamma/biodome/toxins) "ilF" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/hangar/security) "ilI" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/north, /area/corsat/theta/airlock/west/id) "ilZ" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -44426,10 +32628,7 @@ /obj/structure/machinery/camera/autoname{ network = list("gamma") }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/north, /area/corsat/gamma/residential/west) "ims" = ( /obj/structure/bed/nest, @@ -44443,114 +32642,80 @@ "imK" = ( /obj/structure/surface/table/reinforced, /obj/item/device/assembly/timer, -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/sigma/south/complex) "ing" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/hangar) "inT" = ( /obj/structure/machinery/camera/autoname{ dir = 8; network = list("gamma") }, -/turf/open/floor/corsat{ - icon_state = "greenwhitecorner" - }, +/turf/open/floor/corsat/greenwhitecorner, /area/corsat/gamma/medbay) "inY" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/mars{ - icon_state = "mars_dirt_3" - }, +/turf/open/mars/mars_dirt_3, /area/corsat/sigma/biodome) "inZ" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner/west, /area/corsat/omega/cargo) "ioh" = ( /obj/structure/bed/chair/comfy/beige{ dir = 1 }, /obj/effect/landmark/hunter_secondary, -/turf/open/floor{ - dir = 8; - icon_state = "carpet13-5" - }, +/turf/open/floor/carpet13_5/west, /area/corsat/gamma/residential/lounge) "ipE" = ( /obj/structure/closet/radiation, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/east, /area/corsat/theta/biodome/complex) "iqp" = ( /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/theta/biodome/complex) "iqx" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/southeast/generator) "iqE" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/computer/cameras{ network = list("gamma") }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/north, /area/corsat/sigma/south/complex) "iqY" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/east, /area/corsat/sigma/north) "irp" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "arrow_south" - }, +/turf/open/floor/corsat/arrow_south, /area/corsat/sigma/hangar) "irP" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/medbay/lobby) "ish" = ( /obj/structure/machinery/camera/autoname{ network = list("omega") }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/corsat/omega/hallways) "isS" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ @@ -44558,136 +32723,92 @@ req_access_txt = "103" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/west, /area/corsat/theta/biodome/complex) "isY" = ( /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "whitetancorner" - }, +/turf/open/floor/corsat/whitetancorner/north, /area/corsat/sigma/dorms) "itb" = ( /obj/structure/machinery/light, /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor/corsat{ - icon_state = "purplewhitecorner" - }, +/turf/open/floor/corsat/purplewhitecorner, /area/corsat/gamma/biodome/virology) "ito" = ( /obj/structure/janitorialcart, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/biodome/complex) "its" = ( /obj/structure/filingcabinet/filingcabinet, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite/west, /area/corsat/gamma/medbay) "itD" = ( /obj/structure/machinery/camera/autoname{ dir = 4; network = list("omega") }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/omega/airlocknorth) "iul" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/corsat/gamma/hangar) "iuz" = ( /obj/structure/closet/emcloset, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/west, /area/corsat/sigma/hangar) "iuD" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/landmark/xeno_hive_spawn, /obj/effect/landmark/ert_spawns/groundside_xeno, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/sigma/south/complex) "ivy" = ( /obj/structure/machinery/camera/autoname{ dir = 1; network = list("gamma") }, -/turf/open/floor/corsat{ - icon_state = "red" - }, +/turf/open/floor/corsat/red, /area/corsat/gamma/security) "ivW" = ( /obj/structure/bed/chair/comfy/black, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/gamma/airlock/north/id) "iwx" = ( /obj/structure/bed/sofa/vert/grey/bot, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/hangar/monorail) "iwB" = ( /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/southwest, /area/corsat/gamma/residential/west) "iwU" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "white" - }, +/turf/open/floor/corsat/white/east, /area/corsat/gamma/residential/east) "ixd" = ( /obj/structure/surface/table/almayer, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/north, /area/corsat/sigma/southeast/datalab) "ixm" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/biodome/toxins) "ixZ" = ( /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/gamma/administration) "iyp" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -44699,83 +32820,57 @@ name = "Security Shutters"; use_power = 0 }, -/turf/open/floor/corsat{ - icon_state = "red" - }, +/turf/open/floor/corsat/red, /area/corsat/sigma/hangar/security) "iys" = ( /obj/structure/surface/table/almayer, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/airlock/control) "iyA" = ( /obj/structure/bookcase{ icon_state = "book-5" }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/corsat/gamma/biodome/complex) "izl" = ( /obj/structure/closet/secure_closet/guncabinet{ name = "riot cabinet"; req_access_txt = "100" }, -/obj/item/restraints, -/obj/item/restraints, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "red" - }, +/obj/item/xeno_restraints, +/obj/item/xeno_restraints, +/turf/open/floor/corsat/red/southeast, /area/corsat/omega/security) "izn" = ( /obj/structure/prop/almayer/computers/sensor_computer1, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/northeast, /area/corsat/gamma/sigmaremote) "izt" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "bluecorner" - }, +/turf/open/floor/corsat/bluecorner, /area/corsat/sigma/airlock/control) "iAy" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/east, /area/corsat/sigma/southeast/datalab) "iAD" = ( /obj/structure/machinery/camera/autoname{ dir = 8; network = list("sigma") }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "whitebluefull" - }, +/turf/open/floor/corsat/whitebluefull/southwest, /area/corsat/sigma/laundry) "iAI" = ( /obj/effect/landmark/hunter_primary, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/hangar/arrivals) "iAO" = ( /obj/structure/surface/table/almayer, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/southeast, /area/corsat/gamma/biodome/toxins) "iBg" = ( /obj/structure/flora/bush/ausbushes/var3/ywflowers, @@ -44789,9 +32884,7 @@ dir = 1 }, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/sigma/north) "iBs" = ( /obj/structure/surface/table/woodentable, @@ -44805,26 +32898,19 @@ dir = 8; id_tag = "mining_outpost_pump" }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/sigmaremote) "iCm" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/omega/hallways) "iCo" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "darkgreen" - }, +/turf/open/floor/corsat/darkgreen/east, /area/corsat/gamma/rnr) "iCA" = ( /obj/structure/machinery/botany{ @@ -44833,44 +32919,30 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/hydroponics) "iCN" = ( /obj/structure/surface/table/almayer, /obj/item/circuitboard/machine/clonepod, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/east, /area/corsat/sigma/south/engineering) "iCP" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/airlock/south/id) "iDB" = ( -/turf/open/floor/corsat{ - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner, /area/corsat/sigma/dorms) "iDD" = ( -/turf/open/floor/plating{ - dir = 6; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/southeast, /area/corsat/omega/hangar) "iDH" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/biodome/complex) "iDV" = ( /obj/structure/bed/chair{ @@ -44879,25 +32951,18 @@ /obj/structure/barricade/handrail{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/hallwaysouth) "iEg" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/east, /area/corsat/sigma/hangar/security) "iEF" = ( /obj/effect/landmark/corpsespawner/doctor, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/medbay) "iEH" = ( /obj/structure/flora/jungle/vines/heavy, @@ -44911,46 +32976,30 @@ /obj/structure/machinery/computer/emails{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/west, /area/corsat/omega/offices) "iEY" = ( -/turf/open/floor/corsat{ - dir = 6; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/southeast, /area/corsat/gamma/cargo) "iFy" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/hangar/security) "iFL" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/east, /area/corsat/omega/hallways) "iGT" = ( /obj/structure/machinery/light{ dir = 1 }, /obj/structure/machinery/disposal, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/northwest, /area/corsat/sigma/south/complex) "iHc" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/medbay/morgue) "iHo" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -44959,10 +33008,7 @@ /turf/open/gm/dirtgrassborder/west, /area/corsat/theta/biodome) "iHY" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner/east, /area/corsat/omega/hallways) "iIf" = ( /obj/structure/machinery/door/airlock/almayer/medical/glass/colony{ @@ -44972,104 +33018,70 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/gamma/residential/researcher) "iIu" = ( /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "whitetancorner" - }, +/turf/open/floor/corsat/whitetancorner/north, /area/corsat/gamma/residential/west) "iIK" = ( /obj/structure/bed/sofa/vert/white/bot, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/gamma/residential/west) "iIU" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/omega/offices) "iJv" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/sigma/southeast) "iJz" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/hangar/cargo) "iJB" = ( /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/hangar/checkpoint) "iKn" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_21" }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "white" - }, +/turf/open/floor/corsat/white/southwest, /area/corsat/sigma/dorms) "iLj" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/sigma/hangar/office) "iLv" = ( /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/corsat/sigma/biodome) "iLw" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/corsat/red/northeast, /area/corsat/gamma/hangar/cargo) "iLN" = ( /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/biodome/complex) "iLZ" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/omega/offices) "iMM" = ( -/turf/open/floor/corsat{ - icon_state = "bluegreycorner" - }, +/turf/open/floor/corsat/bluegreycorner, /area/corsat/gamma/administration) "iNk" = ( /obj/structure/flora/bush/ausbushes/var3/sunnybush, @@ -45084,29 +33096,18 @@ dir = 1 }, /obj/structure/filingcabinet/filingcabinet, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/corsat/gamma/airlock/south/id) "iNZ" = ( -/turf/open/floor{ - dir = 8; - icon_state = "carpet9-4" - }, +/turf/open/floor/carpet9_4/west, /area/corsat/omega/offices) "iOe" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purple" - }, +/turf/open/floor/corsat/purple/north, /area/corsat/omega/hallways) "iOi" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/toolbox, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/theta/biodome/hydrowest) "iOL" = ( /obj/structure/disposaloutlet{ @@ -45115,38 +33116,24 @@ /obj/structure/disposalpipe/trunk{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/north, /area/corsat/theta/biodome/complex) "iOP" = ( /obj/structure/flora/pottedplant, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/omega/offices) "iOR" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/east, /area/corsat/gamma/hangar/checkpoint) "iOW" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/north, /area/corsat/gamma/biodome/toxins) "iPn" = ( /obj/structure/platform{ density = 0; icon_state = "platform_deco" }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "white" - }, +/turf/open/floor/corsat/white/east, /area/corsat/gamma/residential/east) "iPo" = ( /obj/structure/machinery/constructable_frame{ @@ -45161,27 +33148,20 @@ /turf/open/auto_turf/snow/layer0, /area/corsat/gamma/biodome) "iQi" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "green" - }, +/turf/open/floor/corsat/green/east, /area/corsat/gamma/medbay/morgue) "iQs" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/south/robotics) "iQE" = ( /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/residential/researcher) "iQH" = ( /obj/structure/flora/jungle/vines/light_1, @@ -45190,35 +33170,24 @@ /area/corsat/theta/biodome) "iQL" = ( /obj/structure/closet/wardrobe/robotics_black, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/north, /area/corsat/sigma/south/robotics) "iQQ" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "whitebluefull" - }, +/turf/open/floor/corsat/whitebluefull/southwest, /area/corsat/gamma/residential/showers) "iQY" = ( /obj/structure/barricade/handrail{ dir = 8 }, /obj/structure/barricade/handrail, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/hallwaysouth) "iRw" = ( /obj/structure/bed/chair, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/north, /area/corsat/sigma/hangar) "iSB" = ( /obj/structure/window/framed/corsat, @@ -45230,16 +33199,10 @@ dir = 1; icon_state = "platform_deco" }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "whitecorner" - }, +/turf/open/floor/corsat/whitecorner/west, /area/corsat/gamma/hallwaysouth) "iTL" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purplewhitecorner" - }, +/turf/open/floor/corsat/purplewhitecorner/east, /area/corsat/sigma/south/complex) "iTT" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ @@ -45247,9 +33210,7 @@ req_access_txt = "101" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/airlock/north/id) "iTW" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -45259,30 +33220,20 @@ /obj/structure/machinery/light, /obj/structure/janitorialcart, /obj/item/tool/mop, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/residential) "iVA" = ( /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/corsat/sigma/biodome/gunrange) "iWo" = ( /obj/structure/surface/table/almayer, /obj/item/paper, /obj/item/tool/pen/blue, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/hangar/security) "iWx" = ( -/turf/open/floor/corsat{ - dir = 10; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/southwest, /area/corsat/gamma/residential/west) "iWA" = ( /obj/structure/surface/table/woodentable, @@ -45293,51 +33244,33 @@ /area/corsat/gamma/residential/researcher) "iWH" = ( /obj/structure/machinery/disposal, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/southwest, /area/corsat/gamma/engineering) "iWK" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/residential/east) "iWO" = ( /obj/structure/surface/table, /obj/item/folder/blue, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/gamma/residential/west) "iXU" = ( -/turf/open/floor/corsat{ - icon_state = "whitetancorner" - }, +/turf/open/floor/corsat/whitetancorner, /area/corsat/sigma/dorms) "iYj" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/north, /area/corsat/gamma/sigmaremote) "iYG" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "purplewhitecorner" - }, +/turf/open/floor/corsat/purplewhitecorner/west, /area/corsat/theta/biodome/complex) "iYR" = ( -/turf/open/floor/corsat{ - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner, /area/corsat/gamma/engineering/core) "iZu" = ( /obj/structure/platform{ @@ -45345,16 +33278,11 @@ layer = 2.7 }, /obj/structure/reagent_dispensers/water_cooler, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "white" - }, +/turf/open/floor/corsat/white/north, /area/corsat/gamma/hallwaysouth) "iZv" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/southeast/datalab) "iZz" = ( /obj/structure/closet/cabinet, @@ -45372,28 +33300,21 @@ "iZZ" = ( /obj/structure/surface/table, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/north, /area/corsat/sigma/dorms) "jai" = ( /obj/structure/platform{ density = 0; icon_state = "platform_deco" }, -/turf/open/floor/corsat{ - icon_state = "whitecorner" - }, +/turf/open/floor/corsat/whitecorner, /area/corsat/gamma/hallwaysouth) "jaJ" = ( /obj/structure/bed/chair/office/light{ dir = 1 }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/omega/offices) "jba" = ( /obj/structure/flora/bush/ausbushes/var3/fullgrass, @@ -45401,10 +33322,7 @@ /turf/open/gm/dirt, /area/corsat/theta/biodome) "jbj" = ( -/turf/open/floor/corsat{ - dir = 5; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/northeast, /area/corsat/gamma/residential/west) "jbN" = ( /obj/structure/window/framed/corsat, @@ -45412,16 +33330,12 @@ /area/corsat/gamma/hangar/checkpoint) "jcl" = ( /obj/structure/machinery/light, -/turf/open/floor/corsat{ - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow, /area/corsat/sigma/south/robotics) "jcA" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/medbay/lobby) "jdj" = ( /obj/structure/surface/table/almayer, @@ -45436,9 +33350,7 @@ pixel_x = 8; pixel_y = 3 }, -/turf/open/floor/corsat{ - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite, /area/corsat/gamma/biodome/complex) "jdk" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -45455,9 +33367,7 @@ /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/theta/biodome/complex) "jee" = ( /obj/structure/machinery/power/apc/high{ @@ -45465,35 +33375,32 @@ pixel_x = 24; start_charge = 0 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/theta/airlock/west/id) "jeE" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "bluecorner" - }, +/turf/open/floor/corsat/bluecorner/west, /area/corsat/theta/airlock/control) "jfP" = ( /turf/closed/wall/biodome, /area/corsat/gamma/rnr) +"jfW" = ( +/obj/structure/surface/rack, +/obj/item/circuitboard/exosuit/main/max, +/obj/item/circuitboard/exosuit/peripherals/max/targeting, +/obj/item/circuitboard/exosuit/peripherals/max, +/turf/open/floor/corsat/plate, +/area/corsat/sigma/south/robotics) "jgb" = ( /obj/structure/surface/table/reinforced, /obj/item/tool/surgery/retractor, /obj/item/tool/surgery/bonesetter, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite/east, /area/corsat/gamma/medbay/surgery) "jgG" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/corsat/omega/hangar/security) "jgI" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -45503,105 +33410,70 @@ dir = 8; network = list("sigma") }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/hangar/monorail/control) "jgM" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/west, /area/corsat/gamma/airlock/control) "jho" = ( /obj/structure/surface/table/almayer, /obj/item/paper_bin, -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/gamma/biodome/complex) "jhz" = ( /obj/structure/platform{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/north, /area/corsat/theta/biodome/complex) "jhL" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/corsat/sigma/biodome) "jhN" = ( -/turf/open/floor/corsat{ - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner, /area/corsat/theta/airlock/control) "jhO" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/east, /area/corsat/gamma/administration) "jhR" = ( /obj/effect/landmark/corpsespawner/pmc, -/turf/open/shuttle/dropship{ - icon_state = "floor8" - }, +/turf/open/shuttle/dropship/light_grey_single_wide_left_to_right, /area/prison/hangar_storage/research/shuttle) "jja" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "bluecorner" - }, +/turf/open/floor/corsat/bluecorner/west, /area/corsat/gamma/hallwaysouth) "jjb" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/tool, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/prison/hangar_storage/research/shuttle) "jjz" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/gamma/medbay/morgue) "jjC" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/medbay) "jjN" = ( /obj/structure/closet/emcloset, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/airlock/control) "jkb" = ( -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/sigmaremote) "jlp" = ( /obj/structure/bed/chair/office/light{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/northeast, /area/corsat/gamma/residential/west) "jlL" = ( /obj/structure/flora/bush/ausbushes/lavendergrass, @@ -45615,37 +33487,25 @@ /turf/open/gm/dirt, /area/corsat/theta/biodome) "jme" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/east, /area/corsat/gamma/residential/west) "jmg" = ( -/turf/open/floor/corsat{ - icon_state = "red" - }, +/turf/open/floor/corsat/red, /area/corsat/sigma/checkpoint) "jmL" = ( /obj/structure/surface/table/almayer, /obj/item/storage/box/syringes, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/southeast, /area/corsat/gamma/biodome/complex) "jmO" = ( /obj/structure/machinery/light, -/turf/open/floor/corsat{ - icon_state = "darkgreen" - }, +/turf/open/floor/corsat/darkgreen, /area/corsat/gamma/foyer) "jmQ" = ( /obj/effect/decal/warning_stripes{ icon_state = "NE-out" }, -/turf/open/floor/almayer/research/containment/corner{ - dir = 4 - }, +/turf/open/floor/almayer/research/containment/corner/east, /area/corsat/sigma/south/complex) "jmU" = ( /obj/structure/pipes/standard/manifold/hidden/green{ @@ -45658,22 +33518,14 @@ dir = 1 }, /obj/structure/closet/firecloset, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/airlock/control) "jno" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "darkgreen" - }, +/turf/open/floor/corsat/darkgreen/east, /area/corsat/sigma/hangar/monorail) "jns" = ( /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/gamma/residential/west) "jnt" = ( /obj/structure/surface/table/reinforced, @@ -45685,10 +33537,7 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/sigma/airlock/east/id) "jnA" = ( /obj/structure/surface/table/woodentable, @@ -45704,33 +33553,22 @@ dir = 8 }, /obj/structure/closet/emcloset, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/theta/airlock/control) "jok" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/skills{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/southeast, /area/corsat/gamma/biodome/complex) "jpn" = ( /obj/structure/surface/rack, /obj/item/toy/plush/farwa, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/corsat/red/northeast, /area/corsat/omega/hangar/security) "jpB" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "darkgreen" - }, +/turf/open/floor/corsat/darkgreen/east, /area/corsat/gamma/hangar/arrivals) "jqo" = ( /obj/structure/blocker/forcefield/multitile_vehicles, @@ -45747,10 +33585,7 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/corsat/gamma/rnr/arcade) "jsp" = ( /obj/structure/machinery/camera/autoname{ @@ -45764,26 +33599,18 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/gamma/residential/west) "jsK" = ( /obj/item/pamphlet/skill/powerloader, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/west, /area/corsat/gamma/cargo) "jtY" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/sigma/hangar/monorail) "juf" = ( /obj/structure/closet/cabinet, @@ -45795,81 +33622,53 @@ /area/corsat/gamma/residential/researcher) "juh" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/south/engineering) "juk" = ( /obj/structure/filingcabinet/filingcabinet, /obj/structure/machinery/camera/autoname{ network = list("omega") }, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/corsat/red/northwest, /area/corsat/omega/security) "juq" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/gamma/residential/west) "juA" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/hangar/security) "juI" = ( -/turf/open/floor/corsat{ - dir = 5; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/northeast, /area/corsat/gamma/sigmaremote) "jvk" = ( /obj/effect/landmark/hunter_primary, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/gamma/canteen) "jvC" = ( -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/dorms) "jvG" = ( /obj/effect/landmark/corpsespawner/scientist, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/biodome/complex) "jwv" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/mars{ - icon_state = "mars_dirt_11" - }, +/turf/open/mars/mars_dirt_11, /area/corsat/sigma/biodome) "jwx" = ( /obj/structure/machinery/blackbox_recorder, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/northeast, /area/corsat/sigma/south/complex) "jwE" = ( /obj/structure/closet/radiation, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/southeast, /area/corsat/sigma/south/complex) "jxA" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -45877,15 +33676,11 @@ }, /obj/effect/landmark/corpsespawner/scientist, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/sigma/hangar/monorail) "jxN" = ( /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/foyer) "jxR" = ( /obj/structure/pipes/vents/pump{ @@ -45897,28 +33692,19 @@ /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/residential) "jyk" = ( /obj/structure/surface/rack, /obj/item/device/binoculars, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/prison/hangar_storage/research/shuttle) "jyK" = ( /obj/effect/decal/cleanable/blood/splatter, -/turf/open/shuttle{ - icon_state = "floor7" - }, +/turf/open/shuttle/black, /area/corsat/gamma/hangar/monorail/railcart) "jyM" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner/west, /area/corsat/omega/hallways) "jyR" = ( /obj/structure/machinery/light{ @@ -45927,53 +33713,38 @@ /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/hallwaysouth) "jyX" = ( /obj/structure/bed/nest, /obj/effect/landmark/corpsespawner/engineer, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/omega/biodome) "jyZ" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/north, /area/corsat/gamma/residential/researcher) "jzn" = ( /obj/structure/flora/pottedplant, -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/gamma/biodome/virology) "jzM" = ( /obj/structure/machinery/light, /obj/structure/surface/table/almayer, /obj/item/clipboard, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/omega/offices) "jAd" = ( /obj/effect/landmark/hunter_primary, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/engineering) "jAq" = ( /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/hangar/security) "jAz" = ( /obj/structure/surface/table/almayer, @@ -45982,16 +33753,11 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/north, /area/corsat/omega/offices) "jAE" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/residential) "jAO" = ( /obj/structure/machinery/light/small{ @@ -46001,9 +33767,7 @@ /area/corsat/sigma/hangar) "jBx" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/mars{ - icon_state = "mars_dirt_12" - }, +/turf/open/mars/mars_dirt_12, /area/corsat/sigma/biodome) "jBC" = ( /obj/structure/machinery/vending/cigarette/colony, @@ -46027,31 +33791,21 @@ dir = 1; pixel_y = 2 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/hallwaysouth) "jDO" = ( /obj/structure/surface/table/almayer, /obj/item/storage/box/gloves, -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/gamma/biodome/virology) "jEI" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "bluecorner" - }, +/turf/open/floor/corsat/bluecorner/east, /area/corsat/sigma/southeast) "jEK" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "whitetancorner" - }, +/turf/open/floor/corsat/whitetancorner/west, /area/corsat/gamma/residential/west) "jFF" = ( /obj/structure/machinery/power/apc/high{ @@ -46059,15 +33813,10 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/residential/researcher) "jFJ" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "darkgreencorner" - }, +/turf/open/floor/corsat/darkgreencorner/west, /area/corsat/sigma/hangar/arrivals) "jFP" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -46082,10 +33831,7 @@ /obj/structure/flora/pottedplant{ icon_state = "pottedplant_21" }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/southwest, /area/corsat/sigma/dorms) "jGd" = ( /obj/structure/platform{ @@ -46093,53 +33839,33 @@ dir = 1; icon_state = "platform_deco" }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "white" - }, +/turf/open/floor/corsat/white/west, /area/corsat/gamma/hallwaysouth) "jGk" = ( /obj/structure/machinery/light, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "tcomms" - }, +/turf/open/floor/corsat/tcomms/southwest, /area/corsat/gamma/sigmaremote) "jGH" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/sigma/airlock/east) "jGZ" = ( /obj/structure/surface/table/almayer, /obj/item/ashtray/plastic, /obj/item/trash/cigbutt, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/east, /area/corsat/sigma/hangar) "jHa" = ( /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/corsat/sigma/biodome) "jHF" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "bluecorner" - }, +/turf/open/floor/corsat/bluecorner/east, /area/corsat/gamma/hallwaysouth) "jHV" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "darkgreencorner" - }, +/turf/open/floor/corsat/darkgreencorner/north, /area/corsat/sigma/hangar/monorail) "jIm" = ( /obj/structure/flora/bush/ausbushes/var3/leafybush, @@ -46149,35 +33875,24 @@ /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/north, /area/corsat/omega/hallways) "jJm" = ( /obj/effect/landmark/xeno_hive_spawn, /obj/effect/landmark/ert_spawns/groundside_xeno, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/corsat/sigma/biodome/testgrounds) "jJp" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/corsat/sigma/cafe) "jJt" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "Arrivals" }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/sigma/hangar/checkpoint) "jJv" = ( /obj/structure/machinery/light{ @@ -46186,46 +33901,29 @@ /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/corsat/sigma/cafe) "jJD" = ( -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/hangar/arrivals) "jJM" = ( /obj/structure/machinery/light{ dir = 1 }, /obj/structure/machinery/disposal, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "greenwhitecorner" - }, +/turf/open/floor/corsat/greenwhitecorner/east, /area/corsat/gamma/medbay) "jJN" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner/east, /area/corsat/gamma/hangar/monorail) "jJQ" = ( /obj/structure/bed/chair/office/light{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/gamma/residential/west) "jKy" = ( -/turf/open/floor/corsat{ - dir = 9; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/northwest, /area/corsat/omega/complex) "jLa" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -46239,9 +33937,7 @@ dir = 8; layer = 2.8 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/north) "jLU" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -46253,10 +33949,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/corsat/sigma/biodome) "jOh" = ( /turf/closed/wall/r_wall/biodome, @@ -46265,10 +33958,7 @@ /obj/structure/flora/pottedplant{ icon_state = "pottedplant_21" }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/southwest, /area/corsat/gamma/residential/west) "jOw" = ( /obj/structure/machinery/light{ @@ -46277,33 +33967,22 @@ /obj/structure/flora/pottedplant{ icon_state = "pottedplant_21" }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "white" - }, +/turf/open/floor/corsat/white/north, /area/corsat/gamma/residential) "jOE" = ( -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/residential/researcher) "jPe" = ( /obj/structure/machinery/light{ dir = 8 }, /obj/structure/closet/emcloset, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/west, /area/corsat/sigma/south/complex) "jPL" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/sparker, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/southeast, /area/corsat/sigma/south/complex) "jQL" = ( /obj/structure/closet/wardrobe, @@ -46311,16 +33990,11 @@ dir = 4; network = list("gamma") }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "whitebluefull" - }, +/turf/open/floor/corsat/whitebluefull/southwest, /area/corsat/gamma/residential/showers) "jQT" = ( /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/sigma/hangar/monorail) "jRl" = ( /obj/structure/pipes/vents/pump, @@ -46334,10 +34008,7 @@ /turf/closed/wall/r_wall/biodome, /area/corsat/omega/hallways) "jSm" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/east, /area/corsat/gamma/residential) "jTg" = ( /obj/structure/machinery/door_control{ @@ -46346,145 +34017,95 @@ pixel_x = 24; use_power = 0 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner/east, /area/corsat/omega/cargo) "jTS" = ( /obj/structure/bed/chair/office/light{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/maint) "jUa" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "darkgreencorner" - }, +/turf/open/floor/corsat/darkgreencorner/east, /area/corsat/gamma/rnr) "jUn" = ( /obj/structure/bed/nest, /obj/effect/landmark/corpsespawner/pmc, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/corsat/sigma/biodome) "jUx" = ( /obj/structure/window/reinforced, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/biodome/toxins) "jUJ" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, /obj/effect/alien/weeds/node, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/omega/hallways) "jVn" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "whitetancorner" - }, +/turf/open/floor/corsat/whitetancorner/east, /area/corsat/sigma/dorms) "jVW" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "bluecorner" - }, +/turf/open/floor/corsat/bluecorner/north, /area/corsat/gamma/hallwaysouth) "jWb" = ( /obj/structure/pipes/standard/cap/hidden{ dir = 1 }, -/turf/open/shuttle/escapepod{ - icon_state = "floor1" - }, +/turf/open/shuttle/escapepod/floor1, /area/corsat/theta/biodome/complex) "jWw" = ( /obj/structure/machinery/light, /obj/structure/surface/table/almayer, /obj/item/paper, /obj/item/tool/pen/blue, -/turf/open/floor/corsat{ - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite, /area/corsat/gamma/biodome/toxins) "jWy" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_10" }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/east, /area/corsat/gamma/residential/researcher) "jWB" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/north, /area/corsat/theta/biodome/complex) "jWE" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "darkgreen" - }, +/turf/open/floor/corsat/darkgreen/west, /area/corsat/sigma/north) "jXg" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner/west, /area/corsat/sigma/cargo) "jXo" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/sigma/hangar/id) "jYc" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony{ name = "Maintainence"; req_one_access = null }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/sigmaremote) "jYs" = ( /obj/structure/bed/chair/comfy/black{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/sigma/hangar/security) "jYC" = ( /obj/structure/surface/table/almayer, /obj/item/clipboard, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/west, /area/corsat/sigma/hangar/office) "jYD" = ( -/turf/open/floor/corsat{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/corsat/red/southwest, /area/corsat/sigma/south/security) "jYY" = ( /obj/structure/surface/table/almayer, @@ -46492,10 +34113,7 @@ pixel_y = 5 }, /obj/item/stack/sheet/mineral/phoron/medium_stack, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/west, /area/corsat/theta/biodome/complex) "jZk" = ( /obj/structure/fence, @@ -46503,66 +34121,42 @@ /turf/open/auto_turf/snow/layer1, /area/corsat/gamma/biodome) "jZA" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "white" - }, +/turf/open/floor/corsat/white/north, /area/corsat/gamma/residential/researcher) "jZU" = ( /obj/structure/machinery/light{ dir = 4 }, /obj/structure/flora/pottedplant, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/east, /area/corsat/gamma/biodome/complex) "kad" = ( -/turf/open/floor/corsat{ - dir = 6; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/southeast, /area/corsat/sigma/south/robotics) "kaf" = ( /obj/structure/bookcase{ icon_state = "book-5" }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/north, /area/corsat/gamma/residential/west) "kap" = ( -/turf/open/floor/corsat{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/corsat/red/southwest, /area/corsat/omega/airlocknorth) "kar" = ( /obj/structure/bed/chair/office/light, /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/gamma/residential/west) "kat" = ( /obj/structure/closet/radiation, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/northeast, /area/corsat/sigma/south/complex) "kbm" = ( /obj/structure/surface/table, /obj/item/device/megaphone, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/gamma/residential/west) "kbS" = ( /obj/structure/platform{ @@ -46571,58 +34165,42 @@ /obj/structure/machinery/mech_bay_recharge_port{ pixel_x = 8 }, -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/theta/biodome/complex) "kcb" = ( /obj/structure/machinery/camera/autoname{ dir = 8; network = list("gamma") }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/east, /area/corsat/gamma/engineering/atmos) "kdl" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/computer/station_alert{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/southwest, /area/corsat/gamma/airlock/north) "kdn" = ( /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/medbay) "kdA" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/theta/biodome/hydroeast) "kdH" = ( /obj/structure/surface/table/almayer, /obj/item/tool/screwdriver, /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/south/robotics) "ker" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/theta/biodome/hydroeast) "keE" = ( /obj/structure/flora/bush/ausbushes/ppflowers, @@ -46632,247 +34210,160 @@ /obj/structure/flora/pottedplant{ icon_state = "pottedplant_10" }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purplewhitecorner" - }, +/turf/open/floor/corsat/purplewhitecorner/east, /area/corsat/gamma/biodome/complex) "kfJ" = ( /obj/structure/machinery/light, -/turf/open/floor/corsat{ - icon_state = "whitetancorner" - }, +/turf/open/floor/corsat/whitetancorner, /area/corsat/gamma/residential/west) "kfZ" = ( /obj/structure/closet/jcloset, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/residential) "kgn" = ( /obj/structure/machinery/light{ dir = 8 }, /obj/structure/reagent_dispensers/water_cooler, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite/west, /area/corsat/gamma/medbay) "kgD" = ( -/turf/open/floor/corsat{ - dir = 5; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/northeast, /area/corsat/gamma/cargo) "kgO" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/decal/cleanable/blood/xtracks, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/foyer) "kha" = ( /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/west, /area/corsat/gamma/security/cells) "khv" = ( /obj/structure/machinery/lapvend, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/west, /area/corsat/gamma/residential/west) "khD" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "bluecorner" - }, +/turf/open/floor/corsat/bluecorner/west, /area/corsat/sigma/south) "kiO" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/west, /area/corsat/omega/control) "kje" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/gamma/administration) "kjm" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "whitetancorner" - }, +/turf/open/floor/corsat/whitetancorner/north, /area/corsat/gamma/residential/west) "kjC" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "whitecorner" - }, +/turf/open/floor/corsat/whitecorner/north, /area/corsat/gamma/residential) "kjH" = ( -/turf/open/floor/corsat{ - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow, /area/corsat/sigma/south/robotics) "kjU" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "bluecorner" - }, +/turf/open/floor/corsat/bluecorner, /area/corsat/gamma/airlock/control) "kjZ" = ( /obj/effect/landmark/yautja_teleport, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/maint) "kky" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/sigmaremote) "kkI" = ( /obj/effect/landmark/hunter_secondary, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/cargo) "kkK" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/rnr) "kkR" = ( -/turf/open/floor/corsat{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/corsat/red/southeast, /area/corsat/sigma/south/security) "kkV" = ( /obj/structure/closet, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite/north, /area/corsat/gamma/medbay/morgue) "klD" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/security/cells) "klS" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/biodome/complex) "kmf" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/theta/biodome/complex) "kmj" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_21" }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/west, /area/corsat/sigma/dorms) "kmC" = ( /obj/structure/machinery/photocopier, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/north, /area/corsat/gamma/biodome/complex) "kmI" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/corsat/sigma/biodome/scrapyard) "kmV" = ( /obj/structure/surface/table/almayer, /obj/item/folder/black_random, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/biodome/complex) "knx" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite, /area/corsat/gamma/sigmaremote) "knD" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/omega/security) "knG" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/east, /area/corsat/sigma/hangar/security) "knS" = ( -/turf/open/floor/corsat{ - dir = 10; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/southwest, /area/corsat/gamma/cargo) "kof" = ( /obj/structure/machinery/computer/secure_data{ dir = 8 }, /obj/structure/surface/table/reinforced, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/corsat/red/southeast, /area/corsat/sigma/airlock/east/id) "koh" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/east, /area/corsat/omega/complex) "kow" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -46885,128 +34376,87 @@ dir = 8 }, /obj/structure/pipes/vents/pump, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/gamma/residential/west) "koY" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/east, /area/corsat/gamma/hallwaysouth) "kps" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/mars{ - icon_state = "mars_dirt_8" - }, +/turf/open/mars/mars_dirt_8, /area/corsat/sigma/biodome) "kpD" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/residential/east) "kpS" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/north, /area/corsat/omega/cargo) "kqm" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/control) "kqp" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/north, /area/corsat/gamma/biodome/toxins) "kqs" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "white" - }, +/turf/open/floor/corsat/white/east, /area/corsat/gamma/residential) "kqA" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/computer/secure_data{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/omega/airlocknorth/id) "kqE" = ( /obj/effect/landmark/corpsespawner/engineer, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow, /area/corsat/sigma/south/robotics) "kqZ" = ( /obj/structure/bookcase{ icon_state = "book-5" }, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/northeast, /area/corsat/gamma/residential/west) "krn" = ( /obj/structure/platform{ dir = 1 }, -/turf/open/shuttle/escapepod{ - icon_state = "floor1" - }, +/turf/open/shuttle/escapepod/floor1, /area/corsat/theta/biodome/complex) "krK" = ( /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/airlock/control) "krR" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/sigma/north) "ksk" = ( /obj/structure/machinery/processor, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/east, /area/corsat/theta/biodome/complex) "ksn" = ( -/turf/open/floor/corsat{ - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner, /area/corsat/sigma/cargo) "ksF" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/south/engineering) "ksH" = ( /obj/effect/landmark/nightmare{ @@ -47018,28 +34468,20 @@ /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/engineering) "ksX" = ( /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/southeast, /area/corsat/sigma/dorms) "kuq" = ( /obj/structure/machinery/camera/autoname{ dir = 8; network = list("sigma") }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/east, /area/corsat/sigma/airlock/control) "kuC" = ( /obj/structure/flora/jungle/vines/heavy, @@ -47051,51 +34493,38 @@ "kuO" = ( /obj/structure/surface/table/reinforced, /obj/item/folder/black_random, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/airlock/south/id) "kuU" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/hallwaysouth) "kuW" = ( /obj/structure/machinery/light/small{ dir = 8 }, /obj/structure/bed/nest, -/turf/open/floor/almayer/research/containment/entrance{ - dir = 8 - }, +/turf/open/floor/almayer/research/containment/entrance/west, /area/corsat/inaccessible) "kvm" = ( /obj/structure/reagent_dispensers/water_cooler, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/corsat/gamma/foyer) "kvN" = ( /obj/structure/machinery/camera/autoname{ dir = 1; network = list("gamma") }, -/turf/open/floor/corsat{ - icon_state = "darkgreen" - }, +/turf/open/floor/corsat/darkgreen, /area/corsat/gamma/rnr) "kwK" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/residential) "kxc" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -47104,40 +34533,28 @@ name = "Hangar Office"; req_access_txt = "106" }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/sigma/hangar/office) "kxs" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/southwest, /area/corsat/gamma/cargo) "kyb" = ( /obj/structure/surface/rack, /obj/item/storage/donut_box, -/turf/open/floor/corsat{ - icon_state = "cargo" - }, +/turf/open/floor/corsat/cargo, /area/corsat/gamma/freezer) "kyQ" = ( /turf/closed/wall/r_wall/biodome, /area/corsat/omega/maint) "kzd" = ( /obj/structure/machinery/recharge_station, -/turf/open/floor/corsat{ - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow, /area/corsat/sigma/south/robotics) "kzm" = ( -/turf/open/floor/corsat{ - dir = 6; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/southeast, /area/corsat/gamma/sigmaremote) "kzA" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -47150,69 +34567,47 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/gamma/canteen) "kAq" = ( /obj/effect/landmark/corpsespawner/engineer, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/south/robotics) "kAM" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplecorner" - }, +/turf/open/floor/corsat/purplecorner/north, /area/corsat/gamma/biodome/complex) "kBA" = ( /obj/structure/machinery/disease2/diseaseanalyser, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/east, /area/corsat/gamma/biodome/virology) "kBE" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/residential/east) "kBN" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/sigma/south/complex) "kBW" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purplewhitecorner" - }, +/turf/open/floor/corsat/purplewhitecorner/east, /area/corsat/gamma/sigmaremote) "kCb" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/mars_cave{ - icon_state = "mars_cave_12" - }, +/turf/open/mars_cave/mars_cave_12, /area/corsat/sigma/biodome) "kCk" = ( /obj/structure/pipes/vents/pump, -/turf/open/mars_cave{ - icon_state = "mars_cave_6" - }, +/turf/open/mars_cave/mars_cave_6, /area/corsat/sigma/biodome) "kCm" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -47221,16 +34616,11 @@ /turf/open/gm/grass/grass1/weedable, /area/corsat/theta/biodome) "kCq" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/north, /area/corsat/omega/airlocknorth) "kCH" = ( /obj/structure/machinery/vending/snack, -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/gamma/biodome/virology) "kDt" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -47247,23 +34637,16 @@ /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/biodome/virology) "kEq" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/west, /area/corsat/sigma/southeast/generator) "kEJ" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/south/engineering) "kFo" = ( /obj/structure/surface/table/woodentable, @@ -47275,17 +34658,12 @@ /obj/effect/decal/warning_stripes{ icon_state = "E" }, -/turf/open/floor/almayer/research/containment/floor2{ - dir = 8 - }, +/turf/open/floor/almayer/research/containment/floor2/west, /area/corsat/gamma/sigmaremote) "kFE" = ( /obj/structure/surface/rack, /obj/item/storage/box/monkeycubes, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/east, /area/corsat/gamma/biodome/toxins) "kFZ" = ( /obj/structure/flora/jungle/plantbot1, @@ -47298,38 +34676,24 @@ /obj/structure/flora/pottedplant{ icon_state = "pottedplant_21" }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/hallwaysouth) "kGJ" = ( /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "green" - }, +/turf/open/floor/corsat/green/west, /area/corsat/gamma/hallwaysouth) "kGK" = ( /obj/structure/surface/table, /obj/item/book, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/north, /area/corsat/gamma/residential/west) "kGP" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/north, /area/corsat/omega/complex) "kGV" = ( /obj/structure/surface/table, /obj/item/paper_bin, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/gamma/residential/west) "kHe" = ( /obj/effect/landmark/corpsespawner/scientist, @@ -47338,28 +34702,21 @@ /area/corsat/gamma/residential/lounge) "kHk" = ( /obj/effect/landmark/survivor_spawner, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/airlock/control) "kHP" = ( /obj/structure/flora/bush/ausbushes/palebush, /turf/open/gm/dirtgrassborder/grassdirt_corner2/north_east, /area/corsat/theta/biodome) "kIz" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "greencorner" - }, +/turf/open/floor/corsat/greencorner/north, /area/corsat/gamma/hallwaysouth) "kID" = ( /obj/structure/machinery/camera/autoname{ dir = 1; network = list("theta") }, -/turf/open/floor/corsat{ - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite, /area/corsat/theta/biodome/hydroeast) "kIW" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -47379,16 +34736,11 @@ dir = 1 }, /obj/structure/machinery/light, -/turf/open/floor/corsat{ - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite, /area/corsat/theta/biodome/hydroeast) "kJT" = ( /obj/structure/closet/wardrobe/virology_white, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/northwest, /area/corsat/gamma/biodome/virology) "kKs" = ( /obj/structure/machinery/power/apc/high{ @@ -47396,49 +34748,35 @@ pixel_x = 24; start_charge = 0 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/dorms) "kKw" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/omega/hallways) "kKB" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/east, /area/corsat/sigma/hangar/security) "kKK" = ( /obj/structure/closet/fireaxecabinet{ pixel_y = -32 }, -/turf/open/floor/corsat{ - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite, /area/corsat/theta/biodome/complex) "kLC" = ( /obj/structure/surface/table/reinforced, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/west, /area/corsat/gamma/sigmaremote) "kMu" = ( /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/hangar/security) "kMZ" = ( /obj/structure/platform{ @@ -47446,114 +34784,80 @@ dir = 4; icon_state = "platform_deco" }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "whitecorner" - }, +/turf/open/floor/corsat/whitecorner/north, /area/corsat/gamma/residential/east) "kNB" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/medbay/chemistry) "kNQ" = ( /obj/structure/bed/nest, /obj/effect/landmark/corpsespawner/scientist, -/turf/open/mars_cave{ - icon_state = "mars_cave_12" - }, +/turf/open/mars_cave/mars_cave_12, /area/corsat/sigma/biodome) "kOc" = ( /obj/structure/flora/pottedplant, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/east, /area/corsat/omega/offices) "kOd" = ( -/turf/open/floor/corsat{ - icon_state = "white" - }, +/turf/open/floor/corsat/white, /area/corsat/gamma/hallwaysouth) "kOi" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/computer/station_alert{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "red" - }, +/turf/open/floor/corsat/red, /area/corsat/gamma/airlock/south) "kOv" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/theta/biodome/complex) "kOA" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "whitecorner" - }, +/turf/open/floor/corsat/whitecorner/west, /area/corsat/gamma/residential/east) "kOL" = ( /obj/effect/decal/cleanable/blood/oil, /obj/effect/decal/cleanable/cobweb, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/emergency_access) "kPl" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/freezer) "kPp" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/omega/security) "kPC" = ( /obj/effect/landmark/corpsespawner/scientist, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/hangar/monorail) "kPH" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/airlock/control) "kPP" = ( /obj/structure/machinery/light{ dir = 8 }, /obj/structure/surface/table/almayer, -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/theta/biodome/complex) "kPS" = ( /obj/structure/bed/chair/office/light{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/sigma/hangar/security) "kQb" = ( /obj/structure/fence, @@ -47566,57 +34870,40 @@ /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/engineering) "kQe" = ( /obj/structure/filingcabinet/filingcabinet, -/turf/open/floor/corsat{ - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey, /area/corsat/omega/offices) "kQS" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/shuttle/escapepod{ - icon_state = "floor5" - }, +/turf/open/shuttle/escapepod/floor5, /area/corsat/theta/biodome/complex) "kRa" = ( /obj/effect/landmark/teleporter_loc/corsat_sigma_remote{ index = "9" }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "corsat_teleporter_static" - }, +/turf/open/floor/corsat/corsat_teleporter_static/southwest, /area/corsat/gamma/sigmaremote/teleporter) "kRc" = ( /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/south/engineering) "kRB" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/cargo) "kRO" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/engineering/core) "kSa" = ( -/turf/open/floor/corsat{ - icon_state = "greenwhitecorner" - }, +/turf/open/floor/corsat/greenwhitecorner, /area/corsat/gamma/medbay) "kSt" = ( /obj/structure/flora/pottedplant{ @@ -47625,95 +34912,63 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite/north, /area/corsat/gamma/medbay/lobby) "kSx" = ( /obj/structure/surface/table/reinforced, /obj/item/bananapeel{ name = "tactical banana peel" }, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/southeast, /area/corsat/sigma/south/complex) "kSD" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/biodome/toxins) "kSG" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_21" }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/residential) "kSM" = ( -/turf/open/floor/corsat{ - dir = 10; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/southwest, /area/corsat/sigma/south/engineering) "kSY" = ( -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/airlock/south/id) "kTg" = ( /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "white" - }, +/turf/open/floor/corsat/white/southwest, /area/corsat/gamma/residential) "kTx" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "purplecorner" - }, +/turf/open/floor/corsat/purplecorner/west, /area/corsat/sigma/south) "kUp" = ( -/turf/open/floor/corsat{ - icon_state = "white" - }, +/turf/open/floor/corsat/white, /area/corsat/gamma/residential/east) "kUt" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/emails{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/east, /area/corsat/omega/offices) "kUV" = ( /obj/structure/surface/table/woodentable, /obj/item/toy/deck, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/corsat/gamma/rnr/arcade) "kVn" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/north, /area/corsat/sigma/dorms) "kVy" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -47721,46 +34976,32 @@ }, /obj/effect/decal/cleanable/blood/splatter, /obj/effect/landmark/corpsespawner/engineer, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/residential) "kVT" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan, /area/corsat/gamma/residential/west) "kVZ" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/west, /area/corsat/omega/complex) "kWe" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_10" }, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite/southeast, /area/corsat/gamma/medbay/lobby) "kWL" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/airlock/control) "kWZ" = ( /obj/structure/machinery/disposal, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/sigma/hangar/office) "kXj" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -47770,43 +35011,30 @@ /area/corsat/gamma/biodome) "kXp" = ( /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/control) "kXz" = ( /obj/structure/machinery/light{ dir = 1 }, /obj/structure/machinery/disposal, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/northeast, /area/corsat/gamma/sigmaremote) "kYn" = ( /obj/structure/surface/table/almayer, /obj/item/tool/pen, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/omega/complex) "kYC" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/corsat/gamma/foyer) "kZy" = ( /obj/structure/machinery/power/apc/hyper{ dir = 1; pixel_y = 25 }, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/corsat/red/northwest, /area/corsat/theta/airlock/west) "lac" = ( /turf/closed/wall/r_wall/biodome, @@ -47820,83 +35048,53 @@ "laV" = ( /obj/structure/surface/table/almayer, /obj/effect/spawner/random/tool, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/east, /area/corsat/omega/maint) "lbC" = ( /obj/structure/surface/rack, /obj/item/storage/box/pillbottles, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/north, /area/corsat/gamma/biodome/complex) "lbY" = ( /obj/structure/filingcabinet/filingcabinet, -/turf/open/floor/corsat{ - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey, /area/corsat/sigma/south/offices) "lco" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "white" - }, +/turf/open/floor/corsat/white/east, /area/corsat/gamma/residential/east) "lcF" = ( /obj/structure/flora/pottedplant, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhitecorner" - }, +/turf/open/floor/corsat/purplewhitecorner/north, /area/corsat/gamma/biodome/toxins) "lda" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/omega/airlocknorth) "ldg" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "whitecorner" - }, +/turf/open/floor/corsat/whitecorner/north, /area/corsat/gamma/residential/east) "ldy" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhitecorner" - }, +/turf/open/floor/corsat/purplewhitecorner/north, /area/corsat/gamma/sigmaremote) "ldE" = ( /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/residential) "ldN" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "whitebluefull" - }, +/turf/open/floor/corsat/whitebluefull/southwest, /area/corsat/sigma/lavatory) "ldS" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/theta/biodome/hydroeast) "leg" = ( /obj/structure/sign/safety/laser{ @@ -47907,88 +35105,62 @@ dir = 4; icon_state = "platform_deco" }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/east, /area/corsat/theta/biodome/complex) "leI" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, /obj/structure/machinery/door/window/southright, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/southeast/datalab) "leJ" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "darkgreen" - }, +/turf/open/floor/corsat/darkgreen/east, /area/corsat/sigma/hangar/arrivals) "leM" = ( /obj/effect/decal/cleanable/blood/splatter, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "white" - }, +/turf/open/floor/corsat/white/east, /area/corsat/gamma/residential/east) "leP" = ( /obj/structure/surface/table/reinforced, -/turf/open/floor/corsat{ - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite, /area/corsat/gamma/sigmaremote) "leR" = ( /obj/structure/bed/chair/office/light{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "red" - }, +/turf/open/floor/corsat/red, /area/corsat/theta/airlock/west/id) "leS" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/corsat/sigma/biodome/scrapyard) "leW" = ( /obj/structure/machinery/camera/autoname{ dir = 4; network = list("theta") }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/west, /area/corsat/theta/biodome/complex) "lfF" = ( /obj/structure/machinery/camera/autoname{ dir = 1; network = list("gamma") }, -/turf/open/floor/corsat{ - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite, /area/corsat/gamma/medbay/morgue) "lfH" = ( /obj/structure/pipes/standard/manifold/hidden/green, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/medbay/morgue) "lgo" = ( /obj/structure/window/reinforced{ dir = 8; health = 80 }, -/turf/open/floor/almayer{ - icon_state = "tcomms" - }, +/turf/open/floor/almayer/tcomms, /area/corsat/sigma/southeast/datalab) "lgt" = ( /obj/structure/platform{ @@ -47996,28 +35168,19 @@ dir = 4; icon_state = "platform_deco" }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "whitecorner" - }, +/turf/open/floor/corsat/whitecorner/north, /area/corsat/gamma/hallwaysouth) "lgv" = ( /obj/structure/surface/table, /obj/item/paper, /obj/item/tool/pen/blue, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/gamma/residential/west) "lgx" = ( /obj/structure/stairs{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "white" - }, +/turf/open/floor/corsat/white/east, /area/corsat/gamma/hallwaysouth) "lhi" = ( /obj/structure/surface/rack, @@ -48025,39 +35188,26 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "whitebluefull" - }, +/turf/open/floor/corsat/whitebluefull/southwest, /area/corsat/gamma/residential/showers) "lhl" = ( /obj/structure/machinery/light{ dir = 1 }, /obj/structure/reagent_dispensers/water_cooler, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/north, /area/corsat/gamma/administration) "lhI" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/north, /area/corsat/gamma/security/cells) "lhL" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/recharger, -/turf/open/floor/corsat{ - icon_state = "red" - }, +/turf/open/floor/corsat/red, /area/corsat/sigma/hangar/security) "lhS" = ( /obj/structure/machinery/disposal, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/omega/airlocknorth) "lib" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -48066,31 +35216,21 @@ /obj/structure/bed/chair/office/light{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/sigma/south/complex) "lig" = ( /obj/structure/surface/table/almayer, /obj/item/storage/fancy/vials/random, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/southeast, /area/corsat/theta/biodome/complex) "liQ" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/medbay/lobby) "ljw" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purple" - }, +/turf/open/floor/corsat/purple/north, /area/corsat/gamma/residential) "lkd" = ( /obj/structure/machinery/camera/autoname{ @@ -48101,14 +35241,10 @@ /area/corsat/gamma/biodome) "lki" = ( /obj/structure/surface/table/almayer, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/biodome/toxins) "lkk" = ( -/turf/open/floor/almayer{ - icon_state = "tcomms" - }, +/turf/open/floor/almayer/tcomms, /area/corsat/sigma/southeast/datalab) "lkm" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -48127,31 +35263,21 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/sigma/hangar/security) "lkv" = ( /obj/structure/filingcabinet/filingcabinet, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/southeast, /area/corsat/gamma/sigmaremote) "lkF" = ( /obj/structure/closet/secure_closet/freezer/meat, -/turf/open/floor/corsat{ - icon_state = "cargo" - }, +/turf/open/floor/corsat/cargo, /area/corsat/gamma/freezer) "lla" = ( /obj/structure/surface/table/almayer, /obj/item/paper_bin, /obj/item/tool/pen/blue, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/biodome/virology) "llr" = ( /obj/structure/pipes/vents/pump{ @@ -48163,42 +35289,29 @@ /obj/structure/platform{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "white" - }, +/turf/open/floor/corsat/white/north, /area/corsat/sigma/south) "lmx" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/theta/biodome/complex) "lmD" = ( /obj/structure/machinery/autodispenser{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/north, /area/corsat/gamma/biodome/complex) "lmV" = ( /obj/structure/pipes/vents/pump, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/corsat/sigma/biodome) "lnc" = ( /obj/structure/surface/table/almayer, /obj/item/storage/box/donkpockets, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/west, /area/corsat/omega/offices) "lnG" = ( /obj/structure/surface/table/reinforced, @@ -48207,16 +35320,10 @@ name = "Security Shutters"; use_power = 0 }, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/corsat/red/northwest, /area/corsat/gamma/airlock/south/id) "lnM" = ( -/turf/open/floor/corsat{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/corsat/red/southeast, /area/corsat/sigma/hangar/security) "lnQ" = ( /obj/structure/window_frame/corsat, @@ -48225,96 +35332,65 @@ "lnW" = ( /obj/structure/surface/table/reinforced, /obj/item/phone, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/east, /area/corsat/gamma/sigmaremote) "lom" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/computer/secure_data{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/gamma/airlock/south/id) "lop" = ( /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/biodome/virology) "loF" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "whitetancorner" - }, +/turf/open/floor/corsat/whitetancorner/north, /area/corsat/gamma/residential/researcher) "lps" = ( /obj/structure/bed/chair/comfy, /obj/structure/machinery/camera/autoname{ network = list("sigma") }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "darkgreen" - }, +/turf/open/floor/corsat/darkgreen/north, /area/corsat/sigma/hangar/monorail) "lqm" = ( /obj/structure/pipes/vents/pump/on, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purple" - }, +/turf/open/floor/corsat/purple/north, /area/corsat/omega/hallways) "lqK" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/airlock/south) "lqR" = ( /obj/structure/surface/table/gamblingtable, /obj/item/toy/deck/uno, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/corsat/gamma/rnr/arcade) "lqX" = ( /obj/item/pamphlet/skill/powerloader, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/cargo) "lrQ" = ( /obj/structure/machinery/door/poddoor/two_tile/four_tile/open{ id = "GammaSouthS"; name = "Gamma South Airlock" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/corsat/gamma/airlock/south) "lsc" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/east, /area/corsat/omega/offices) "lsk" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/theta/biodome/complex) "lsu" = ( /obj/effect/landmark/lv624/xeno_tunnel, @@ -48337,31 +35413,20 @@ /obj/structure/bed/chair/office/light{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/biodome/virology) "ltl" = ( -/turf/open/floor/corsat{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/corsat/red/southeast, /area/corsat/theta/airlock/control) "ltX" = ( /obj/structure/closet/cabinet, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/corsat/gamma/biodome/complex) "lue" = ( /obj/structure/surface/table/gamblingtable, /obj/item/toy/dice/d20, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/corsat/gamma/rnr/arcade) "lug" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/comdoor{ @@ -48373,36 +35438,23 @@ id = "OmegaOffice"; name = "Privacy Shutters" }, -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/omega/offices) "luj" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/omega/hangar/security) "luE" = ( /obj/structure/surface/table/almayer, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/northwest, /area/corsat/gamma/biodome/virology) "luQ" = ( -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/south/complex) "lvg" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner/north, /area/corsat/gamma/hallwaysouth) "lvE" = ( /obj/effect/landmark/yautja_teleport, @@ -48410,28 +35462,18 @@ /area/corsat/sigma/dorms) "lvR" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/hallwaysouth) "lvU" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/medbay) "lwk" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner/east, /area/corsat/sigma/south/engineering) "lwl" = ( /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "plating_striped" - }, +/turf/open/floor/almayer/plating_striped/north, /area/corsat/gamma/sigmaremote) "lwu" = ( /turf/open/floor/corsat, @@ -48440,96 +35482,65 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/biodome/toxins) "lwL" = ( /obj/structure/surface/rack, /obj/item/ammo_magazine/smg/mp5, /obj/item/ammo_magazine/smg/mp5, -/turf/open/floor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/asteroidplating, /area/corsat/sigma/biodome/gunrange) "lxi" = ( /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/airlock/control) "lxj" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_21" }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/north, /area/corsat/gamma/residential/west) "lxS" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/medbay) "lyd" = ( /obj/structure/machinery/door/airlock/almayer/research/glass/colony{ dir = 1; name = "Teleportation Lab"; - req_access = null; req_one_access_txt = "103" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/sigma/south/complex) "lyu" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/engineering/lobby) "lyK" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/east, /area/corsat/sigma/hangar/office) "lyW" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "purplecorner" - }, +/turf/open/floor/corsat/purplecorner/west, /area/corsat/gamma/biodome/complex) "lzc" = ( /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/corsat{ - icon_state = "brown" - }, +/turf/open/floor/corsat/brown, /area/corsat/gamma/cargo) "lzI" = ( -/turf/open/floor/corsat{ - icon_state = "sigma" - }, +/turf/open/floor/corsat/sigma, /area/corsat/sigma/southeast) "lAd" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "greenwhitecorner" - }, +/turf/open/floor/corsat/greenwhitecorner/west, /area/corsat/gamma/medbay) "lBj" = ( /obj/structure/surface/table/almayer, -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/theta/biodome/complex) "lBx" = ( /obj/structure/machinery/vending/snack, @@ -48537,57 +35548,38 @@ dir = 1; layer = 2.7 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "white" - }, +/turf/open/floor/corsat/white/north, /area/corsat/gamma/hallwaysouth) "lCa" = ( /obj/structure/surface/table/almayer, /obj/effect/spawner/random/tech_supply, /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/south/robotics) "lCq" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "whitetancorner" - }, +/turf/open/floor/corsat/whitetancorner/east, /area/corsat/sigma/dorms) "lCr" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "darkgreencorner" - }, +/turf/open/floor/corsat/darkgreencorner/east, /area/corsat/sigma/hangar/arrivals) "lCv" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/floor/corsat{ - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite, /area/corsat/theta/biodome/complex) "lDb" = ( /obj/effect/landmark/corpsespawner/prisoner, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/gamma/security/cells) "lDh" = ( /obj/structure/surface/table/reinforced, /obj/item/stack/cable_coil, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhitecorner" - }, +/turf/open/floor/corsat/purplewhitecorner/north, /area/corsat/gamma/sigmaremote) "lDJ" = ( /obj/structure/machinery/door_control{ @@ -48596,20 +35588,13 @@ pixel_y = 24; use_power = 0 }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/residential) "lDT" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/north, /area/corsat/sigma/dorms) "lEb" = ( -/turf/open/floor/corsat{ - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner, /area/corsat/omega/hallways) "lER" = ( /obj/structure/barricade/handrail{ @@ -48618,88 +35603,62 @@ /obj/structure/barricade/handrail{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/hallwaysouth) "lFq" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/structure/bed/sofa/vert/grey/top, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/sigma/hangar/arrivals) "lFP" = ( -/turf/open/floor/corsat{ - icon_state = "darkgreen" - }, +/turf/open/floor/corsat/darkgreen, /area/corsat/sigma/hangar/monorail) "lFU" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ name = "Hangar Security"; req_access_txt = "101" }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/hangar/security) "lFX" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/north, /area/corsat/gamma/sigmaremote) "lFY" = ( /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/south/security) "lGj" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/northeast, /area/corsat/theta/biodome/complex) "lGo" = ( /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/sigma/dorms) "lGp" = ( /obj/structure/machinery/door/airlock/almayer/medical/glass/colony{ name = "Hydroponics"; req_one_access = null }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/hydroponics) "lGq" = ( /obj/structure/bed/chair, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/hangar/checkpoint) "lGD" = ( /obj/structure/machinery/camera/autoname{ network = list("sigma") }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/corsat/sigma/hangar/security) "lGP" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -48709,97 +35668,66 @@ /area/corsat/gamma/biodome) "lHk" = ( /obj/structure/machinery/disposal, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/northeast, /area/corsat/sigma/south/complex) "lHB" = ( /obj/effect/decal/cleanable/blood/xeno, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/omega/complex) "lHI" = ( /obj/structure/surface/table/reinforced, /obj/item/ammo_rcd, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/sigma/south/complex) "lHK" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/west, /area/corsat/sigma/south/offices) "lHU" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/structure/machinery/light, -/turf/open/floor/corsat{ - icon_state = "red" - }, +/turf/open/floor/corsat/red, /area/corsat/omega/security) "lId" = ( -/turf/open/floor/corsat{ - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner, /area/corsat/sigma/south/security) "lIf" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/south) "lIq" = ( /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/sigma/south) "lIu" = ( /obj/structure/bed/chair/comfy/black{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/west, /area/corsat/theta/biodome/complex) "lIE" = ( /obj/structure/machinery/smartfridge/chemistry{ req_access_txt = "100"; req_one_access = null }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/north, /area/corsat/gamma/biodome/complex) "lIQ" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner/east, /area/corsat/sigma/north) "lIW" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/sigma/south/complex) "lIX" = ( /obj/structure/surface/table/reinforced, /obj/item/phone, -/turf/open/floor/corsat{ - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite, /area/corsat/sigma/south/complex) "lIY" = ( /obj/structure/platform{ @@ -48808,39 +35736,27 @@ /obj/structure/platform{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "white" - }, +/turf/open/floor/corsat/white/north, /area/corsat/sigma/south) "lJj" = ( /obj/structure/bookcase{ icon_state = "book-5" }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/corsat/gamma/residential/lounge) "lJq" = ( /obj/structure/machinery/light, -/turf/open/floor/corsat{ - icon_state = "white" - }, +/turf/open/floor/corsat/white, /area/corsat/gamma/residential/east) "lJz" = ( -/turf/open/floor/corsat{ - icon_state = "brown" - }, +/turf/open/floor/corsat/brown, /area/corsat/gamma/hallwaysouth) "lJR" = ( /obj/structure/machinery/camera/autoname{ dir = 1; network = list("sigma") }, -/turf/open/floor/corsat{ - icon_state = "red" - }, +/turf/open/floor/corsat/red, /area/corsat/sigma/hangar) "lKy" = ( /obj/structure/flora/bush/ausbushes/lavendergrass, @@ -48850,90 +35766,62 @@ /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/hangar/security) "lLc" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/control) "lLe" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/south/robotics) "lLO" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/east, /area/corsat/gamma/cargo) "lMf" = ( /obj/structure/machinery/bot/cleanbot, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/theta/biodome/hydrowest) "lMU" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/hangar/checkpoint) "lNS" = ( /obj/structure/surface/table/almayer, /obj/item/clipboard, /obj/item/paper, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/west, /area/corsat/sigma/hangar/security) "lOn" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/theta/airlock/east) "lOM" = ( /obj/structure/platform{ dir = 4; layer = 2.7 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "white" - }, +/turf/open/floor/corsat/white/east, /area/corsat/gamma/residential/east) "lON" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "darkgreencorner" - }, +/turf/open/floor/corsat/darkgreencorner/north, /area/corsat/gamma/hangar) "lOS" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/biodome/complex) "lOV" = ( /obj/structure/reagent_dispensers/water_cooler, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/hallwaysouth) "lOW" = ( /obj/structure/machinery/door/airlock/almayer/research/glass/colony{ @@ -48944,9 +35832,7 @@ name = "Containment Cell 5"; req_one_access_txt = "103" }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/inaccessible) "lPh" = ( /obj/structure/blocker/forcefield/multitile_vehicles, @@ -48958,53 +35844,37 @@ dir = 1 }, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/residential) "lPD" = ( /obj/structure/surface/rack, /obj/item/storage/firstaid/rad, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhitecorner" - }, +/turf/open/floor/corsat/purplewhitecorner/north, /area/corsat/gamma/sigmaremote) "lPH" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/computer/secure_data{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/sigma/hangar/security) "lPY" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/hangar/monorail/control) "lQk" = ( /obj/structure/bookcase{ icon_state = "book-5" }, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/northwest, /area/corsat/gamma/residential/west) "lQr" = ( /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/southwest, /area/corsat/sigma/dorms) "lQu" = ( /obj/structure/flora/pottedplant{ @@ -49016,136 +35886,92 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/sigma/southeast/datalab) "lRg" = ( /obj/structure/computer3frame/server{ icon_state = "4" }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "purplewhitecorner" - }, +/turf/open/floor/corsat/purplewhitecorner/west, /area/corsat/gamma/sigmaremote) "lRQ" = ( /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/hangar/id) "lRW" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/west, /area/corsat/gamma/residential/researcher) "lRY" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_10" }, -/turf/open/floor/corsat{ - icon_state = "purplewhitecorner" - }, +/turf/open/floor/corsat/purplewhitecorner, /area/corsat/gamma/biodome/complex) "lSS" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "whitecorner" - }, +/turf/open/floor/corsat/whitecorner/east, /area/corsat/gamma/residential/east) "lSU" = ( /obj/structure/machinery/computer/pandemic, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/northeast, /area/corsat/gamma/biodome/virology) "lTA" = ( /obj/effect/decal/warning_stripes{ icon_state = "SW-out" }, -/turf/open/floor/almayer/research/containment/corner_var1{ - dir = 4 - }, +/turf/open/floor/almayer/research/containment/corner_var1/east, /area/corsat/gamma/sigmaremote) "lTC" = ( /obj/structure/bookcase{ icon_state = "book-5" }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/corsat/omega/offices) "lTU" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_core, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/omega/biodome) "lUc" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/east, /area/corsat/gamma/airlock/south) "lUI" = ( /obj/structure/machinery/camera/autoname{ dir = 1; network = list("sigma") }, -/turf/open/floor/corsat{ - icon_state = "purplewhitecorner" - }, +/turf/open/floor/corsat/purplewhitecorner, /area/corsat/sigma/south/complex) "lUM" = ( /obj/structure/machinery/vending/cigarette/colony, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/corsat/red/northwest, /area/corsat/omega/airlocknorth/id) "lUY" = ( /obj/structure/machinery/floodlight{ - name = "Floodlight"; - unacidable = 0 + name = "Floodlight" }, /obj/structure/pipes/standard/simple/hidden/green, /turf/open/auto_turf/snow/layer3, /area/corsat/gamma/biodome) "lVb" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "bluecorner" - }, +/turf/open/floor/corsat/bluecorner/north, /area/corsat/sigma/airlock/control) "lVo" = ( /obj/structure/machinery/disposal, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/cargo) "lVw" = ( /obj/structure/blocker/forcefield/multitile_vehicles, /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/corsat/theta/airlock/west) "lVx" = ( /obj/structure/bed/chair, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/sigma/hangar/checkpoint) "lVF" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -49153,18 +35979,13 @@ /area/corsat/theta/biodome) "lVW" = ( /obj/structure/platform, -/turf/open/gm/river/desert/shallow{ - name = "pool" - }, +/turf/open/gm/river/desert/shallow/pool, /area/corsat/gamma/residential/showers) "lWf" = ( /obj/structure/machinery/chem_dispenser{ req_access_txt = "100" }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/north, /area/corsat/gamma/biodome/toxins) "lWD" = ( /obj/structure/bed/chair/office/light{ @@ -49173,39 +35994,25 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/gamma/residential/west) "lWG" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/omega/hangar/security) "lXA" = ( /obj/structure/machinery/photocopier, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/north, /area/corsat/omega/security) "lXJ" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "sigma" - }, +/turf/open/floor/corsat/sigma, /area/corsat/sigma/hangar/id) "lXP" = ( /obj/effect/landmark/corpsespawner/engineer, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/corsat/sigma/biodome) "lXV" = ( /obj/structure/machinery/door/airlock/almayer/research/glass/colony{ @@ -49215,9 +36022,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/biodome/virology) "lYc" = ( /obj/structure/flora/bush/ausbushes/var3/fullgrass, @@ -49226,16 +36031,10 @@ /area/corsat/theta/biodome) "lYd" = ( /obj/structure/surface/table/reinforced, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/corsat/red/southwest, /area/corsat/omega/hangar/security) "lYq" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purple" - }, +/turf/open/floor/corsat/purple/east, /area/corsat/omega/complex) "lYt" = ( /obj/structure/sign/safety/high_voltage, @@ -49245,30 +36044,20 @@ /obj/item/stack/sheet/metal{ pixel_x = 1 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/east, /area/corsat/theta/biodome/complex) "lYv" = ( /obj/structure/bed/chair, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/hangar/security) "lYM" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/north, /area/corsat/gamma/airlock/control) "lYO" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/sigma/south/complex) "lYX" = ( /obj/structure/ice/ice_rock/cornerOverlay{ @@ -49293,19 +36082,13 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/north, /area/corsat/gamma/hangar) "mab" = ( /obj/structure/sign/safety/high_rad{ pixel_x = 32 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/east, /area/corsat/theta/biodome/complex) "mag" = ( /obj/structure/pipes/standard/manifold/hidden/green, @@ -49313,40 +36096,29 @@ /area/corsat/gamma/rnr/bar) "mbp" = ( /obj/structure/closet/bodybag, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/omega/hangar) "mbz" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor/corsat{ - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey, /area/corsat/sigma/south/offices) "mbI" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/sigma/north) "mbO" = ( -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/airlocknorth/id) "mbZ" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "whitebluefull" - }, +/turf/open/floor/corsat/whitebluefull/southwest, /area/corsat/gamma/residential/showers) "mcj" = ( /obj/structure/bed/chair{ @@ -49366,10 +36138,7 @@ /area/corsat/gamma/cargo/disposal) "mdV" = ( /obj/structure/filingcabinet/filingcabinet, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/north, /area/corsat/sigma/hangar/security) "mea" = ( /obj/structure/bed/sofa/south/white/right, @@ -49379,69 +36148,47 @@ /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/hallwaysouth) "meu" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor/corsat{ - icon_state = "purplewhitecorner" - }, +/turf/open/floor/corsat/purplewhitecorner, /area/corsat/theta/biodome/complex) "mey" = ( /obj/structure/sign/safety/biohazard, /obj/structure/surface/table/almayer, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/east, /area/corsat/gamma/biodome/virology) "meC" = ( /obj/structure/machinery/camera/autoname{ network = list("gamma") }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/north, /area/corsat/gamma/hallwaysouth) "meD" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purplewhitecorner" - }, +/turf/open/floor/corsat/purplewhitecorner/east, /area/corsat/gamma/biodome/toxins) "meJ" = ( /obj/structure/surface/table/reinforced, /obj/item/folder/black_random, -/turf/open/floor/corsat{ - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite, /area/corsat/gamma/sigmaremote) "mfm" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/theta/biodome/complex) "mfw" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "whitecorner" - }, +/turf/open/floor/corsat/whitecorner/north, /area/corsat/sigma/dorms) "mfH" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "purplewhitecorner" - }, +/turf/open/floor/corsat/purplewhitecorner, /area/corsat/gamma/biodome/toxins) "mfN" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -49452,9 +36199,7 @@ "mfS" = ( /obj/effect/landmark/corpsespawner/wysec, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/security) "mfX" = ( /obj/structure/bed/chair/office/dark{ @@ -49467,16 +36212,12 @@ /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/hangar/monorail/control) "mgt" = ( /obj/structure/surface/table/reinforced, /obj/item/folder/black_random, -/turf/open/floor/corsat{ - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite, /area/corsat/sigma/south/complex) "mgw" = ( /obj/structure/stairs{ @@ -49485,33 +36226,22 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/sigma/dorms) "mgO" = ( /obj/structure/surface/table/almayer, /obj/item/storage/firstaid, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/north, /area/corsat/gamma/biodome/virology) "mgW" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/gamma/residential/west) "mhg" = ( /obj/structure/surface/table/reinforced, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/corsat/red/southeast, /area/corsat/sigma/checkpoint) "mhq" = ( /obj/effect/decal/cleanable/blood/splatter, @@ -49520,68 +36250,44 @@ dir = 8; icon_state = "platform_deco" }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "whitecorner" - }, +/turf/open/floor/corsat/whitecorner/east, /area/corsat/sigma/south) "mim" = ( /obj/effect/landmark/hunter_primary, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/gamma/residential/researcher) "miE" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/gamma/residential) "miJ" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/sigma/hangar/checkpoint) "miU" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner/west, /area/corsat/gamma/cargo) "miX" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/corsat/sigma/biodome) "mjc" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/complex) "mjt" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/omega/hangar/security) "mjv" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "whitebluefull" - }, +/turf/open/floor/corsat/whitebluefull/southwest, /area/corsat/gamma/residential/laundry) "mkM" = ( /obj/structure/machinery/door/poddoor/almayer{ @@ -49590,17 +36296,13 @@ use_power = 0 }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/corsat/sigma/cargo) "mlo" = ( /obj/structure/surface/rack, /obj/item/clothing/under/CM_uniform, /obj/item/clothing/suit/storage/CMB, -/turf/open/floor/corsat{ - icon_state = "red" - }, +/turf/open/floor/corsat/red, /area/corsat/omega/hangar/security) "mlr" = ( /obj/structure/pipes/vents/pump, @@ -49611,66 +36313,44 @@ /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner/west, /area/corsat/gamma/engineering) "mmj" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/theta/biodome/hydrowest) "mmp" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/sigma/south) "mmr" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "whitebluefull" - }, +/turf/open/floor/corsat/whitebluefull/southwest, /area/corsat/gamma/residential/lavatory) "mmy" = ( -/turf/open/floor/corsat{ - dir = 6; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/southeast, /area/corsat/theta/airlock/control) "mop" = ( /obj/structure/surface/rack, /obj/item/tool/soap/deluxe, /obj/item/tool/soap/deluxe, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/residential) "moU" = ( -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/southeast) "mpj" = ( /obj/effect/decal/cleanable/blood/xtracks, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/west, /area/corsat/omega/airlocknorth) "mpS" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/security) "mqn" = ( /obj/structure/pipes/vents/pump{ @@ -49679,24 +36359,15 @@ /turf/open/floor/wood, /area/corsat/gamma/residential/researcher) "mqr" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purplewhitecorner" - }, +/turf/open/floor/corsat/purplewhitecorner/east, /area/corsat/omega/containment) "mqK" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/east, /area/corsat/theta/biodome/complex) "mqL" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/recharger, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/southwest, /area/corsat/theta/biodome/complex) "mqU" = ( /obj/structure/barricade/handrail{ @@ -49722,24 +36393,16 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/corsat/gamma/hangar/cargo) "mrG" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/east, /area/corsat/gamma/hangar/arrivals) "mrO" = ( /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "darkgreen" - }, +/turf/open/floor/corsat/darkgreen/west, /area/corsat/gamma/rnr) "mrQ" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -49747,31 +36410,22 @@ /area/corsat/gamma/biodome/complex) "msj" = ( /obj/structure/flora/pottedplant, -/turf/open/floor/corsat{ - icon_state = "bluegreycorner" - }, +/turf/open/floor/corsat/bluegreycorner, /area/corsat/gamma/hangar/flightcontrol) "msm" = ( -/turf/open/shuttle/dropship{ - icon_state = "rasputin12" - }, +/turf/open/shuttle/dropship/dark_grey_bottom, /area/prison/hangar_storage/research/shuttle) "msp" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/theta/airlock/control) "msu" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/southeast, /area/corsat/gamma/cargo) "msB" = ( /obj/structure/largecrate/random/barrel, @@ -49782,10 +36436,7 @@ /turf/open/gm/dirtgrassborder/north, /area/corsat/theta/biodome) "msY" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/west, /area/corsat/theta/airlock/control) "mti" = ( /obj/structure/pipes/vents/pump{ @@ -49800,18 +36451,13 @@ "muo" = ( /obj/structure/surface/rack, /obj/item/clothing/shoes/sandal, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "whitebluefull" - }, +/turf/open/floor/corsat/whitebluefull/southwest, /area/corsat/gamma/residential/showers) "muu" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/gamma/biodome/virology) "mvL" = ( /obj/structure/pipes/standard/manifold/hidden/green, @@ -49819,42 +36465,26 @@ /area/corsat/sigma/biodome) "mvM" = ( /obj/structure/prop/almayer/computers/sensor_computer1, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/northeast, /area/corsat/sigma/south/complex) "mvS" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "whitecorner" - }, +/turf/open/floor/corsat/whitecorner/west, /area/corsat/sigma/dorms) "mwa" = ( /obj/structure/cargo_container/hd/left/alt, -/turf/open/floor/corsat{ - icon_state = "cargo" - }, +/turf/open/floor/corsat/cargo, /area/corsat/gamma/cargo) "mwk" = ( /obj/structure/surface/table/reinforced, /obj/item/folder/black_random, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/north, /area/corsat/sigma/south/complex) "mwo" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/sigma/north) "mwy" = ( /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/control) "mwC" = ( /obj/structure/blocker/forcefield/multitile_vehicles, @@ -49862,84 +36492,55 @@ /area/corsat/emergency_access) "mwH" = ( /obj/structure/closet/firecloset, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhitecorner" - }, +/turf/open/floor/corsat/purplewhitecorner/north, /area/corsat/gamma/sigmaremote) "mwK" = ( /obj/structure/machinery/chem_master, -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/gamma/biodome/virology) "mxa" = ( /obj/structure/platform{ density = 0; icon_state = "platform_deco" }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/north) "mxc" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "whitetancorner" - }, +/turf/open/floor/corsat/whitetancorner/west, /area/corsat/gamma/residential/researcher) "mxO" = ( /obj/structure/surface/table/woodentable/fancy, /obj/item/storage/fancy/cigar, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/corsat/omega/offices) "mxZ" = ( /obj/structure/surface/table/reinforced, /obj/item/tool/surgery/FixOVein, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite/southeast, /area/corsat/gamma/medbay/surgery) "myt" = ( -/turf/open/floor/corsat{ - icon_state = "bluecorner" - }, +/turf/open/floor/corsat/bluecorner, /area/corsat/sigma/southeast) "mzi" = ( /obj/structure/surface/table/reinforced, /obj/item/folder/black_random, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/corsat/red/southwest, /area/corsat/gamma/airlock/south) "mzn" = ( /obj/effect/decal/warning_stripes{ icon_state = "SW-out" }, -/turf/open/floor/almayer/research/containment/corner_var1{ - dir = 4 - }, +/turf/open/floor/almayer/research/containment/corner_var1/east, /area/corsat/sigma/south/complex) "mAc" = ( /obj/structure/closet/emcloset, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/north, /area/corsat/gamma/hangar/checkpoint) "mAt" = ( /obj/structure/surface/table/almayer, /obj/item/cell, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/east, /area/corsat/omega/maint) "mAx" = ( /obj/structure/pipes/standard/manifold/hidden/green{ @@ -49949,137 +36550,89 @@ /area/corsat/gamma/biodome) "mAK" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/security) "mAV" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/west, /area/corsat/omega/airlocknorth/id) "mBp" = ( /obj/structure/surface/table/reinforced, -/turf/open/floor/corsat{ - icon_state = "red" - }, +/turf/open/floor/corsat/red, /area/corsat/sigma/checkpoint) "mBq" = ( /obj/structure/reagent_dispensers/water_cooler, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "darkgreen" - }, +/turf/open/floor/corsat/darkgreen/east, /area/corsat/gamma/rnr) "mBs" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "darkgreencorner" - }, +/turf/open/floor/corsat/darkgreencorner/north, /area/corsat/gamma/hangar/arrivals) "mCe" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "bluecorner" - }, +/turf/open/floor/corsat/bluecorner/west, /area/corsat/sigma/airlock/control) "mCj" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/hangar/cargo) "mCD" = ( /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/hallwaysouth) "mCE" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/omega/complex) "mCU" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/north, /area/corsat/omega/hallways) "mDe" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/computer/secure_data{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/corsat/red/southwest, /area/corsat/gamma/hangar/cargo) "mEd" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/sigma/dorms) "mEt" = ( /obj/structure/machinery/camera/autoname{ dir = 8; network = list("omega") }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/omega/hallways) "mEy" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/west, /area/corsat/omega/cargo) "mEG" = ( -/turf/open/floor/corsat{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/corsat/red/southeast, /area/corsat/gamma/hangar/cargo) "mFm" = ( -/turf/open/floor/corsat{ - icon_state = "greencorner" - }, +/turf/open/floor/corsat/greencorner, /area/corsat/gamma/hallwaysouth) "mFp" = ( -/turf/open/floor/corsat{ - icon_state = "darkgreencorner" - }, +/turf/open/floor/corsat/darkgreencorner, /area/corsat/sigma/hangar/monorail) "mFE" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "bluecorner" - }, +/turf/open/floor/corsat/bluecorner, /area/corsat/theta/airlock/control) "mFP" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/north, /area/corsat/omega/hangar/security) "mFS" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -50088,9 +36641,7 @@ /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ name = "Interrogation" }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/hangar/security) "mFT" = ( /obj/structure/bed/chair{ @@ -50099,42 +36650,31 @@ /obj/structure/barricade/handrail{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/hallwaysouth) "mGl" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/gamma/residential/researcher) "mGn" = ( /obj/structure/noticeboard{ pixel_y = 32 }, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/sigma/hangar/office) "mGL" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/sigmaremote) "mGN" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/biodome/virology) "mGU" = ( /obj/structure/machinery/door/poddoor/two_tile/four_tile/open{ @@ -50146,22 +36686,16 @@ name = "Theta Lockdown"; use_power = 0 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/corsat/theta/airlock/control) "mHd" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/southeast/datalab) "mHM" = ( -/turf/open/floor/corsat{ - icon_state = "arrow_east" - }, +/turf/open/floor/corsat/arrow_east, /area/corsat/gamma/cargo) "mIa" = ( /obj/structure/surface/table, @@ -50171,32 +36705,21 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/west, /area/corsat/gamma/residential/west) "mIn" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "darkgreen" - }, +/turf/open/floor/corsat/darkgreen/north, /area/corsat/gamma/foyer) "mIs" = ( /obj/structure/machinery/light/small, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/freezer) "mIx" = ( /obj/structure/surface/table/almayer, /obj/item/clipboard, /obj/item/paper, /obj/item/tool/pen/blue, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/west, /area/corsat/sigma/hangar/office) "mIY" = ( /obj/structure/flora/bush/ausbushes/var3/fullgrass, @@ -50207,181 +36730,119 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/mars{ - icon_state = "mars_dirt_11" - }, +/turf/open/mars/mars_dirt_11, /area/corsat/sigma/biodome) "mJm" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/computer/guestpass{ reason = "Visitor" }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/west, /area/corsat/theta/biodome/complex) "mJq" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_21" }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/east, /area/corsat/gamma/residential/west) "mJy" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/engineering) "mJC" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_21" }, -/turf/open/floor/corsat{ - icon_state = "gamma" - }, +/turf/open/floor/corsat/gamma, /area/corsat/gamma/rnr) "mKc" = ( -/turf/open/floor/corsat{ - icon_state = "blue" - }, +/turf/open/floor/corsat/blue, /area/corsat/gamma/airlock/control) "mKk" = ( /obj/structure/surface/rack, /obj/item/storage/box/masks, -/turf/open/floor/corsat{ - icon_state = "purplewhitecorner" - }, +/turf/open/floor/corsat/purplewhitecorner, /area/corsat/gamma/biodome/complex) "mKP" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "white" - }, +/turf/open/floor/corsat/white/east, /area/corsat/gamma/residential/east) "mLq" = ( -/turf/open/floor/corsat{ - dir = 6; - icon_state = "purple" - }, +/turf/open/floor/corsat/purple/southeast, /area/corsat/omega/complex) "mLu" = ( /obj/structure/machinery/camera/autoname{ network = list("gamma") }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/north, /area/corsat/gamma/biodome/virology) "mLL" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/west, /area/corsat/sigma/north) "mLR" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/hangar/cargo) "mNe" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/hangar/cargo) "mNV" = ( /obj/item/tool/soap, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "whitebluefull" - }, +/turf/open/floor/corsat/whitebluefull/southwest, /area/corsat/gamma/residential/showers) "mNW" = ( /obj/structure/reagent_dispensers/water_cooler, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/northwest, /area/corsat/gamma/residential/west) "mOr" = ( /obj/structure/window/reinforced, /obj/structure/window/reinforced{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/north, /area/corsat/gamma/biodome/toxins) "mOw" = ( -/turf/open/floor/corsat{ - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner, /area/corsat/omega/control) "mOV" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/gamma/hangar/flightcontrol) "mPg" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/north, /area/corsat/sigma/hangar/checkpoint) "mPS" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/omega/airlocknorth/id) "mQk" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/checkpoint) "mQu" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_10" }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purple" - }, +/turf/open/floor/corsat/purple/north, /area/corsat/gamma/residential/researcher) "mQF" = ( /obj/structure/surface/table/almayer, /obj/item/circuitboard/robot_module/janitor, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/northwest, /area/corsat/sigma/south/robotics) "mQG" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/southwest, /area/corsat/gamma/sigmaremote) "mQU" = ( /obj/structure/platform{ @@ -50389,33 +36850,22 @@ dir = 8; icon_state = "platform_deco" }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "whitecorner" - }, +/turf/open/floor/corsat/whitecorner/east, /area/corsat/gamma/residential/east) "mRl" = ( /obj/structure/bed/chair/office/light{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite, /area/corsat/gamma/sigmaremote) "mRp" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/gamma/residential/west) "mRB" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "darkgreen" - }, +/turf/open/floor/corsat/darkgreen/west, /area/corsat/gamma/foyer) "mRC" = ( /obj/effect/alien/weeds/node, @@ -50425,18 +36875,13 @@ /area/corsat/omega/biodome) "mRI" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purplewhitecorner" - }, +/turf/open/floor/corsat/purplewhitecorner/east, /area/corsat/gamma/biodome/virology) "mSi" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/residential/east) "mSo" = ( /obj/structure/flora/bush/ausbushes/var3/fullgrass, @@ -50444,23 +36889,15 @@ /area/corsat/theta/biodome) "mSz" = ( /obj/structure/machinery/chem_master, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/west, /area/corsat/gamma/biodome/complex) "mSG" = ( /obj/effect/landmark/corpsespawner/pmc, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/corsat/sigma/biodome/gunrange) "mSR" = ( -/turf/open/floor/corsat{ - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey, /area/corsat/gamma/administration) "mTa" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -50473,83 +36910,61 @@ /obj/effect/landmark/xeno_hive_spawn, /obj/effect/landmark/ert_spawns/groundside_xeno, /obj/effect/landmark/queen_spawn, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/theta/biodome/complex) "mTF" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "whitebluefull" - }, +/turf/open/floor/corsat/whitebluefull/southwest, /area/corsat/sigma/lavatory) "mTO" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor/corsat{ - icon_state = "red" - }, +/turf/open/floor/corsat/red, /area/corsat/gamma/security/cells) "mUj" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/biodome/virology) "mUo" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/cargo) "mUu" = ( /obj/structure/machinery/camera/autoname{ network = list("sigma") }, /obj/structure/surface/rack, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/north, /area/corsat/sigma/south/complex) "mUv" = ( /obj/structure/machinery/conveyor, /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/cargo) "mUA" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/theta/airlock/control) "mUE" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/airlock/east/id) "mVk" = ( /obj/structure/machinery/smartfridge/seeds, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/hydroponics) "mVq" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -50562,50 +36977,33 @@ dir = 8 }, /obj/effect/spawner/gibspawner/human, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/prison/hangar_storage/research/shuttle) "mWj" = ( /obj/structure/flora/pottedplant, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purplewhitecorner" - }, +/turf/open/floor/corsat/purplewhitecorner/east, /area/corsat/gamma/biodome/virology) "mWo" = ( /obj/structure/surface/table/almayer, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/sigma/south/offices) "mWG" = ( /obj/structure/machinery/chem_dispenser{ req_access_txt = "100" }, /obj/item/reagent_container/glass/beaker/bluespace, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/west, /area/corsat/gamma/biodome/complex) "mXC" = ( /obj/effect/landmark/monkey_spawn, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/biodome/virology) "mYe" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "white" - }, +/turf/open/floor/corsat/white/west, /area/corsat/gamma/residential/east) "mYQ" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/sigma/north) "mYS" = ( /obj/structure/machinery/door/poddoor/almayer{ @@ -50614,9 +37012,7 @@ name = "Gate Shutters"; use_power = 0 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/corsat/sigma/south/complex) "mZf" = ( /obj/structure/platform{ @@ -50628,20 +37024,19 @@ layer = 2.7 }, /obj/structure/reagent_dispensers/water_cooler, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "white" - }, +/turf/open/floor/corsat/white/northeast, /area/corsat/gamma/residential/east) +"mZm" = ( +/obj/structure/prop/mech/parts/durand_head, +/turf/open/floor/corsat/arrow_north, +/area/corsat/sigma/south/robotics) "naG" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony{ dir = 2; name = "Maintainance"; req_one_access = null }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/omega/checkpoint) "nbl" = ( /turf/closed/shuttle/ert{ @@ -50650,9 +37045,7 @@ /area/prison/hangar_storage/research/shuttle) "nbn" = ( /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/sigma/north) "nbN" = ( /obj/structure/closet/crate/trashcart, @@ -50662,9 +37055,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/sigma/airlock/south) "nbS" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -50686,38 +37077,26 @@ /area/corsat/theta/biodome) "ncR" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/biodome/complex) "ncW" = ( /obj/item/pamphlet/skill/powerloader, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/east, /area/corsat/omega/cargo) "nde" = ( /obj/structure/barricade/handrail{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/hallwaysouth) "ndr" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/gamma/security) "nds" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/corsat/sigma/biodome) "ndF" = ( /obj/structure/machinery/power/apc/high{ @@ -50725,22 +37104,14 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "whitebluefull" - }, +/turf/open/floor/corsat/whitebluefull/southwest, /area/corsat/gamma/residential/laundry) "nen" = ( /obj/structure/cargo_container/kelland/left, -/turf/open/floor/corsat{ - icon_state = "cargo" - }, +/turf/open/floor/corsat/cargo, /area/corsat/gamma/cargo) "neB" = ( -/turf/open/floor/corsat{ - dir = 10; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/southwest, /area/corsat/sigma/south/complex) "neY" = ( /turf/closed/shuttle/ert{ @@ -50755,45 +37126,32 @@ dir = 1; network = list("omega") }, -/turf/open/floor/corsat{ - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner, /area/corsat/omega/cargo) "ngx" = ( /obj/structure/closet/crate/science, -/turf/open/floor/corsat{ - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite, /area/corsat/theta/biodome/complex) "nhE" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/corsat/sigma/biodome/gunrange) "nhG" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/theta/biodome/complex) "nid" = ( /obj/structure/surface/rack, /obj/item/ammo_magazine/shotgun/buckshot, -/turf/open/floor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/asteroidplating, /area/corsat/sigma/biodome/gunrange) "niv" = ( /obj/structure/bed/chair/office/light{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/hangar/security) "njh" = ( /obj/structure/machinery/light{ @@ -50801,55 +37159,36 @@ }, /obj/structure/surface/table/almayer, /obj/effect/spawner/random/tech_supply, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/west, /area/corsat/sigma/south/robotics) "njv" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/biodome/complex) "njI" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/gamma/hangar/checkpoint) "njL" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/southeast, /area/corsat/theta/biodome/complex) "njP" = ( /obj/structure/closet/wardrobe/virology_white, /obj/structure/machinery/camera/autoname{ network = list("gamma") }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/north, /area/corsat/gamma/biodome/virology) "nkz" = ( /obj/structure/machinery/recharge_station, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/northeast, /area/corsat/sigma/southeast/datalab) "nkO" = ( /obj/structure/machinery/light, -/turf/open/floor/corsat{ - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite, /area/corsat/omega/complex) "nlk" = ( /obj/structure/machinery/door/airlock/almayer/medical/glass/colony{ @@ -50858,10 +37197,7 @@ req_one_access = null }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/gamma/residential/west) "nlm" = ( /obj/structure/flora/bush/ausbushes/ppflowers, @@ -50877,9 +37213,7 @@ /area/corsat/theta/biodome) "nls" = ( /obj/structure/bed/sofa/south/grey/right, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/hangar/arrivals) "nlU" = ( /obj/structure/surface/table/reinforced, @@ -50887,46 +37221,32 @@ dir = 4; network = list("gamma") }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/sigmaremote) "nmb" = ( -/turf/open/floor/corsat{ - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner, /area/corsat/omega/airlocknorth/id) "nmp" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/north, /area/corsat/sigma/south/engineering) "nna" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, /obj/structure/machinery/light, -/turf/open/floor/corsat{ - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan, /area/corsat/gamma/residential/researcher) "nnm" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/theta/biodome/complex) "nnx" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/east, /area/corsat/sigma/north) "nny" = ( /obj/structure/pipes/standard/manifold/hidden/green{ @@ -50943,18 +37263,13 @@ /turf/open/ice, /area/corsat/gamma/biodome) "noy" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite/east, /area/corsat/gamma/medbay) "noK" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/hangar) "noW" = ( /obj/structure/prop/almayer/cannon_cable_connector{ @@ -50967,27 +37282,19 @@ name = "\improper genetic LINAC system"; pixel_x = -15 }, -/turf/open/shuttle/escapepod{ - icon_state = "floor1" - }, +/turf/open/shuttle/escapepod/floor1, /area/corsat/theta/biodome/complex) "noY" = ( /obj/structure/machinery/door/airlock/almayer/research/glass/colony{ dir = 1; name = "Teleportation Chamber"; - req_access = null; req_one_access_txt = "101;103" }, -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/sigma/south/complex) "npl" = ( /obj/structure/machinery/light, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "whitetancorner" - }, +/turf/open/floor/corsat/whitetancorner/west, /area/corsat/gamma/residential/west) "npm" = ( /obj/structure/machinery/door/poddoor/almayer{ @@ -51003,17 +37310,13 @@ dir = 4; network = list("omega") }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/omega/hangar) "npI" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_10" }, -/turf/open/floor/corsat{ - icon_state = "purple" - }, +/turf/open/floor/corsat/purple, /area/corsat/gamma/biodome/complex) "npN" = ( /obj/effect/landmark/hunter_primary, @@ -51026,37 +37329,24 @@ req_one_access_txt = "106;104" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/gamma/administration) "nqE" = ( /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/south/robotics) "nqF" = ( /obj/structure/surface/table/reinforced, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/east, /area/corsat/gamma/sigmaremote) "nqI" = ( -/turf/open/floor/corsat{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/corsat/red/southwest, /area/corsat/omega/hangar/office) "nrd" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/north, /area/corsat/theta/biodome/complex) "nri" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -51068,17 +37358,13 @@ /obj/structure/bed/chair/office/light{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/sigmaremote) "nrO" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/mars{ - icon_state = "mars_dirt_9" - }, +/turf/open/mars/mars_dirt_9, /area/corsat/sigma/biodome) "nrT" = ( /obj/structure/surface/table/reinforced, @@ -51093,29 +37379,20 @@ id = "GammaSouthID"; name = "Security Shutters" }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/airlock/south/id) "nrU" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "darkgreen" - }, +/turf/open/floor/corsat/darkgreen, /area/corsat/gamma/hangar/monorail) "nsg" = ( /obj/structure/bed/chair/comfy/beige{ dir = 1 }, -/turf/open/floor{ - dir = 8; - icon_state = "carpet13-5" - }, +/turf/open/floor/carpet13_5/west, /area/corsat/omega/offices) "ntg" = ( -/turf/open/shuttle/escapepod{ - icon_state = "floor5" - }, +/turf/open/shuttle/escapepod/floor5, /area/corsat/theta/biodome/complex) "ntn" = ( /turf/closed/shuttle/ert{ @@ -51124,10 +37401,7 @@ /area/prison/hangar_storage/research/shuttle) "ntp" = ( /obj/structure/machinery/light, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner/west, /area/corsat/sigma/south) "ntt" = ( /obj/structure/surface/rack, @@ -51138,34 +37412,25 @@ /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/engineering) "nui" = ( /obj/structure/machinery/cm_vending/sorted/tech/comp_storage{ req_access_txt = "102" }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/south/robotics) "nuj" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "red" - }, +/turf/open/floor/corsat/red, /area/corsat/omega/airlocknorth) "nuq" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/west, /area/corsat/sigma/hangar) "nuF" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony{ @@ -51175,16 +37440,11 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow, /area/corsat/theta/airlock/control) "nuI" = ( /obj/structure/closet/athletic_mixed, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "whitebluefull" - }, +/turf/open/floor/corsat/whitebluefull/southwest, /area/corsat/gamma/residential/showers) "nuS" = ( /obj/structure/flora/bush/ausbushes/palebush, @@ -51192,10 +37452,7 @@ /area/corsat/theta/biodome) "nvx" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner/west, /area/corsat/omega/control) "nvA" = ( /obj/structure/platform{ @@ -51203,46 +37460,29 @@ layer = 2.7 }, /obj/structure/stairs, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "white" - }, +/turf/open/floor/corsat/white/northeast, /area/corsat/gamma/residential/east) "nwj" = ( /obj/structure/pipes/standard/simple/hidden/green, /turf/open/gm/dirtgrassborder/south, /area/corsat/theta/biodome) "nws" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/east, /area/corsat/sigma/cargo) "nwu" = ( /obj/structure/surface/rack, /obj/item/storage/firstaid/rad, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/east, /area/corsat/gamma/sigmaremote) "nwL" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/east, /area/corsat/sigma/southeast) "nwT" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/security) "nxh" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/east, /area/corsat/omega/hangar/office) "nxv" = ( /obj/structure/barricade/handrail{ @@ -51252,44 +37492,30 @@ dir = 1; pixel_y = 2 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/hallwaysouth) "nxI" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/airlock/north) "nxN" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/southeast/datalab) "nxP" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/sigma/north) "nxZ" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/east, /area/corsat/gamma/engineering) "nzB" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "bluecorner" - }, +/turf/open/floor/corsat/bluecorner/north, /area/corsat/gamma/airlock/control) "nzR" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -51299,42 +37525,30 @@ dir = 1; network = list("sigma") }, -/turf/open/floor/corsat{ - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan, /area/corsat/sigma/dorms) "nzS" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purplewhitecorner" - }, +/turf/open/floor/corsat/purplewhitecorner/east, /area/corsat/theta/biodome/complex) "nAa" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "whitetancorner" - }, +/turf/open/floor/corsat/whitetancorner/north, /area/corsat/sigma/dorms) "nAl" = ( /turf/open/floor/corsat, /area/corsat/gamma/freezer) "nAm" = ( /obj/effect/landmark/hunter_primary, -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/gamma/medbay/morgue) "nAu" = ( -/turf/open/floor/corsat{ - icon_state = "purplewhitecorner" - }, +/turf/open/floor/corsat/purplewhitecorner, /area/corsat/theta/biodome/complex) "nAE" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony{ @@ -51342,31 +37556,21 @@ name = "Engineering"; req_one_access_txt = "102" }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/south/robotics) "nAO" = ( -/turf/open/floor/corsat{ - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey, /area/corsat/sigma/hangar/office) "nAR" = ( /obj/structure/machinery/camera/autoname{ dir = 8; network = list("sigma") }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/corsat/sigma/biodome/testgrounds) "nBa" = ( /obj/structure/filingcabinet/filingcabinet, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/corsat/gamma/biodome/complex) "nBi" = ( /obj/structure/platform{ @@ -51377,104 +37581,73 @@ dir = 4; layer = 2.7 }, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "white" - }, +/turf/open/floor/corsat/white/northeast, /area/corsat/sigma/south) "nBk" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "whitetancorner" - }, +/turf/open/floor/corsat/whitetancorner/north, /area/corsat/gamma/residential/researcher) "nBw" = ( /obj/structure/surface/table/reinforced, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/sigmaremote) "nBy" = ( /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/south/engineering) "nBD" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, /obj/effect/alien/weeds/node, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/omega/hangar/security) "nBO" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/mars_cave{ - icon_state = "mars_cave_15" - }, +/turf/open/mars_cave/mars_cave_15, /area/corsat/sigma/biodome) "nCh" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/theta/biodome/complex) "nCl" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/sigma/south/offices) "nDc" = ( /obj/structure/machinery/processor, -/turf/open/floor/corsat{ - icon_state = "purplewhitecorner" - }, +/turf/open/floor/corsat/purplewhitecorner, /area/corsat/theta/biodome/complex) "nDs" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/cargo) "nDD" = ( -/turf/open/floor/corsat{ - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow, /area/corsat/sigma/south/engineering) "nDN" = ( /obj/structure/safe, /obj/item/xeno_egg, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/corsat/omega/offices) "nDX" = ( /obj/structure/machinery/door/poddoor/two_tile/four_tile/vertical{ id = "GammaEastE"; name = "Gamma East Airlock" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/corsat/gamma/airlock/control) "nEQ" = ( -/turf/open/floor/corsat{ - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite, /area/corsat/gamma/medbay/morgue) "nFc" = ( /obj/effect/landmark/monkey_spawn, @@ -51483,48 +37656,31 @@ "nFt" = ( /obj/structure/surface/table/reinforced, /obj/item/storage/box/bodybags, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "purple" - }, +/turf/open/floor/corsat/purple/west, /area/corsat/omega/complex) "nFy" = ( /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/mars_cave{ - icon_state = "mars_cave_6" - }, +/turf/open/mars_cave/mars_cave_6, /area/corsat/sigma/biodome) "nGq" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "purple" - }, +/turf/open/floor/corsat/purple/west, /area/corsat/omega/hallways) "nGs" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/west, /area/corsat/gamma/administration) "nGU" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/sigma/south) "nHs" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/centrifuge, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/northwest, /area/corsat/gamma/biodome/virology) "nHu" = ( /obj/structure/pipes/standard/manifold/hidden/green{ @@ -51536,10 +37692,7 @@ /obj/structure/pipes/standard/simple/hidden/universal{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner/north, /area/corsat/gamma/airlock/control) "nHU" = ( /obj/structure/surface/rack, @@ -51554,83 +37707,54 @@ "nIF" = ( /obj/structure/surface/table/almayer, /obj/item/storage/box/pillbottles, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/east, /area/corsat/gamma/biodome/toxins) "nJb" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "gamma" - }, +/turf/open/floor/corsat/gamma, /area/corsat/gamma/residential/east) "nJl" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "bluegreycorner" - }, +/turf/open/floor/corsat/bluegreycorner/west, /area/corsat/gamma/administration) "nJn" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner, /area/corsat/sigma/hangar/security) "nJt" = ( /obj/structure/surface/table/woodentable, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/hallwaysouth) "nJx" = ( /obj/structure/surface/table/almayer, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/theta/airlock/control) "nJC" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/sigma/south) "nJP" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "purple" - }, +/turf/open/floor/corsat/purple/west, /area/corsat/omega/hallways) "nJR" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/mars{ - icon_state = "mars_dirt_10" - }, +/turf/open/mars/mars_dirt_10, /area/corsat/sigma/biodome) "nKt" = ( /obj/structure/pipes/unary/freezer, -/turf/open/shuttle/escapepod{ - icon_state = "floor0" - }, +/turf/open/shuttle/escapepod/floor0, /area/corsat/theta/biodome/complex) "nKH" = ( /obj/structure/bed/chair, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "white" - }, +/turf/open/floor/corsat/white/northwest, /area/corsat/gamma/residential) "nLl" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "darkgreencorner" - }, +/turf/open/floor/corsat/darkgreencorner/north, /area/corsat/gamma/rnr) "nLK" = ( /obj/structure/machinery/door/airlock/almayer/generic{ @@ -51640,38 +37764,27 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/residential/east) "nLP" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner/north, /area/corsat/omega/maint) "nLW" = ( /obj/structure/surface/table/reinforced, /obj/item/tank/air, -/turf/open/floor/corsat{ - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite, /area/corsat/gamma/sigmaremote) "nLX" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/sigma/southeast/datalab) "nMc" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/biodome/toxins) "nMk" = ( /obj/structure/flora/bush/ausbushes/grassybush, @@ -51681,78 +37794,55 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "arrow_west" - }, +/turf/open/floor/corsat/arrow_west, /area/corsat/gamma/hangar) "nNo" = ( /obj/structure/machinery/chem_dispenser{ req_access_txt = "100" }, -/turf/open/floor/corsat{ - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite, /area/corsat/gamma/biodome/toxins) "nNq" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, /obj/effect/landmark/railgun_camera_pos, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/hangar) "nNB" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/hydroponics) "nNW" = ( -/turf/open/floor/corsat{ - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner, /area/corsat/gamma/engineering/atmos) "nOb" = ( -/turf/open/floor/corsat{ - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner, /area/corsat/omega/checkpoint) "nOj" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/sigma/hangar/monorail) "nOH" = ( /obj/structure/machinery/portable_atmospherics/canister/empty, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/omega/complex) "nOP" = ( -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/sigma/southeast/dataoffice) "nQB" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_21" }, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "white" - }, +/turf/open/floor/corsat/white/southeast, /area/corsat/sigma/dorms) "nQZ" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_21" }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/hallwaysouth) "nSb" = ( /obj/structure/surface/rack, @@ -51761,10 +37851,7 @@ /obj/item/ammo_magazine/shotgun/incendiary, /obj/item/weapon/gun/shotgun/combat, /obj/item/weapon/gun/shotgun/pump/dual_tube/cmb, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/corsat/sigma/south/security) "nSm" = ( /obj/structure/machinery/light{ @@ -51773,18 +37860,19 @@ /obj/structure/bookcase{ icon_state = "book-5" }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/east, /area/corsat/gamma/residential/west) +"nSp" = ( +/obj/structure/surface/rack, +/obj/item/circuitboard/exosuit/peripherals/alice, +/obj/item/circuitboard/exosuit/main/alice, +/turf/open/floor/corsat/yellow/north, +/area/corsat/sigma/south/robotics) "nSA" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "arrow_west" - }, +/turf/open/floor/corsat/arrow_west, /area/corsat/sigma/hangar) "nSC" = ( /obj/structure/sink{ @@ -51793,24 +37881,16 @@ }, /obj/effect/landmark/corpsespawner/scientist, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "whitebluefull" - }, +/turf/open/floor/corsat/whitebluefull/southwest, /area/corsat/gamma/residential/researcher) "nSL" = ( /obj/structure/surface/table/almayer, /obj/item/ashtray/glass, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/omega/security) "nSP" = ( /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/sigma/hangar/checkpoint) "nSV" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -51818,22 +37898,15 @@ }, /obj/effect/landmark/corpsespawner/scientist, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/rnr) "nTb" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "greenwhitecorner" - }, +/turf/open/floor/corsat/greenwhitecorner/east, /area/corsat/gamma/medbay/morgue) "nTg" = ( /obj/structure/surface/table/reinforced, /obj/item/device/analyzer, -/turf/open/floor/corsat{ - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite, /area/corsat/gamma/sigmaremote) "nTx" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -51841,33 +37914,23 @@ /area/corsat/theta/biodome/complex) "nTz" = ( /obj/structure/bed/sofa/south/grey/right, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/foyer) "nTO" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "Arcade" }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/corsat/gamma/rnr/arcade) "nUa" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/omega/complex) "nUd" = ( /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/sigma/hangar/security) "nUg" = ( /obj/structure/surface/table/reinforced, @@ -51875,41 +37938,29 @@ dir = 8; network = list("sigma") }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/sigma/checkpoint) "nUi" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/airlock/control) "nUs" = ( /obj/structure/surface/table/almayer, /obj/item/storage/fancy/vials/random, -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/gamma/biodome/toxins) "nUz" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/hallwaysouth) "nUU" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/sigma/hangar/checkpoint) "nWh" = ( /obj/structure/surface/table/woodentable, @@ -51920,93 +37971,62 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "whitebluefull" - }, +/turf/open/floor/corsat/whitebluefull/southwest, /area/corsat/gamma/residential/lavatory) "nWV" = ( /obj/structure/surface/table/almayer, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/sigma/south/offices) "nXj" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/southeast/generator) "nXo" = ( /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/hangar/arrivals) "nXu" = ( /obj/structure/machinery/portable_atmospherics/canister/empty, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/biodome/toxins) "nXv" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "bluegreycorner" - }, +/turf/open/floor/corsat/bluegreycorner/north, /area/corsat/sigma/south/offices) "nXD" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/hangar/cargo) "nXY" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/sigma/dorms) "nYn" = ( /obj/structure/bed/chair/office/light{ dir = 4 }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/airlock/control) "nYO" = ( /obj/structure/filingcabinet/filingcabinet, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/northeast, /area/corsat/gamma/sigmaremote) "nYP" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/corsat/theta/airlock/west) "nZB" = ( /obj/structure/largecrate/random/barrel, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/southeast, /area/corsat/sigma/cargo) "nZN" = ( -/turf/open/floor/corsat{ - icon_state = "darkgreencorner" - }, +/turf/open/floor/corsat/darkgreencorner, /area/corsat/sigma/north) "nZR" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -52019,52 +38039,33 @@ dir = 4 }, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/medbay) "oay" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/omega/airlocknorth) "oaE" = ( /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/southeast, /area/corsat/omega/cargo) "oaF" = ( /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/medbay) "oaV" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/omega/hallways) "obd" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purplewhitecorner" - }, +/turf/open/floor/corsat/purplewhitecorner/east, /area/corsat/gamma/biodome/complex) "obz" = ( /obj/structure/machinery/light{ dir = 1 }, /obj/structure/closet/crate/science, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/north, /area/corsat/gamma/sigmaremote) "obW" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony{ @@ -52072,9 +38073,7 @@ name = "Maintainance"; req_one_access = null }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/cargo/disposal) "ocD" = ( /obj/structure/surface/table/reinforced, @@ -52089,9 +38088,7 @@ id = "SigmaHangarC-S"; name = "Security Shutters" }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/hangar/security) "ocT" = ( /obj/structure/bed/chair{ @@ -52101,52 +38098,35 @@ dir = 1; network = list("omega") }, -/turf/open/floor/corsat{ - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite, /area/corsat/omega/complex) "odm" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/sigmaremote) "odC" = ( -/turf/open/floor/corsat{ - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner, /area/corsat/sigma/north) "odN" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purple" - }, +/turf/open/floor/corsat/purple/north, /area/corsat/sigma/south) "odW" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/sigmaremote) "ofq" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/computer/secure_data{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/corsat/red/southeast, /area/corsat/sigma/hangar/checkpoint) "ofP" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "white" - }, +/turf/open/floor/corsat/white/east, /area/corsat/gamma/residential/east) "oge" = ( /obj/structure/flora/jungle/vines/heavy, @@ -52154,33 +38134,22 @@ /turf/open/gm/grass/grass1/weedable, /area/corsat/theta/biodome) "ohe" = ( -/turf/open/floor/corsat{ - dir = 9; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/northwest, /area/corsat/sigma/southeast) "ohV" = ( /obj/effect/landmark/hunter_secondary, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/east, /area/corsat/gamma/engineering/atmos) "oia" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "purplewhitecorner" - }, +/turf/open/floor/corsat/purplewhitecorner/west, /area/corsat/gamma/biodome/complex) "ois" = ( /obj/structure/bed/chair{ dir = 1 }, /obj/effect/landmark/hunter_secondary, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/south) "oiu" = ( /obj/structure/machinery/light/small{ @@ -52190,17 +38159,13 @@ /area/corsat/sigma/south/engineering) "oiE" = ( /obj/effect/decal/cleanable/blood/oil, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/corsat/sigma/biodome/scrapyard) "oiI" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/hallwaysouth) "oiQ" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -52210,32 +38175,23 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/omega/hallways) "ojN" = ( /obj/structure/surface/table/almayer, /obj/item/paper, /obj/item/tool/pen/blue, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/omega/offices) "oks" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/sigma/hangar/checkpoint) "okE" = ( /obj/structure/machinery/light, -/turf/open/floor/corsat{ - icon_state = "sigma" - }, +/turf/open/floor/corsat/sigma, /area/corsat/sigma/south) "okT" = ( /obj/structure/machinery/camera/autoname{ @@ -52249,34 +38205,26 @@ dir = 1; network = list("theta") }, -/turf/open/floor/corsat{ - icon_state = "blue" - }, +/turf/open/floor/corsat/blue, /area/corsat/theta/airlock/control) "olB" = ( /obj/structure/showcase{ icon_state = "processor"; name = "Processor Unit" }, -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/gamma/sigmaremote) "olD" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/gamma/administration) "olX" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "omega" - }, +/turf/open/floor/corsat/omega, /area/corsat/omega/hallways) "olY" = ( /obj/effect/alien/weeds/node, @@ -52289,27 +38237,19 @@ pixel_x = 24; start_charge = 0 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/east, /area/corsat/gamma/residential/west) "omw" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/gamma/hangar/flightcontrol) "omL" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_21" }, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "white" - }, +/turf/open/floor/corsat/white/northwest, /area/corsat/gamma/residential) "ong" = ( /obj/structure/pipes/vents/pump{ @@ -52319,21 +38259,15 @@ /area/corsat/gamma/residential/east) "onz" = ( /obj/structure/closet/jcloset, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/biodome/complex) "onY" = ( /obj/structure/bed/chair/office/light, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/biodome/toxins) "oob" = ( /obj/structure/filingcabinet/filingcabinet, -/turf/open/floor/corsat{ - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite, /area/corsat/gamma/sigmaremote) "ooX" = ( /obj/structure/flora/jungle/vines/light_1, @@ -52346,15 +38280,11 @@ /obj/structure/prop/almayer/computers/sensor_computer1{ name = "computer" }, -/turf/open/shuttle/escapepod{ - icon_state = "floor12" - }, +/turf/open/shuttle/escapepod/floor12, /area/corsat/theta/biodome/complex) "opi" = ( /obj/effect/landmark/hunter_primary, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/sigma/hangar/monorail) "opl" = ( /obj/structure/surface/table/almayer, @@ -52366,15 +38296,11 @@ /obj/structure/machinery/camera/autoname{ network = list("omega") }, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/omega/offices) "opo" = ( /obj/structure/pipes/vents/pump/on, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/cargo) "opH" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -52382,10 +38308,7 @@ dir = 8; network = list("gamma") }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "white" - }, +/turf/open/floor/corsat/white/east, /area/corsat/gamma/residential/east) "opW" = ( /obj/effect/landmark/hunter_secondary, @@ -52398,38 +38321,26 @@ use_power = 0 }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/corsat/gamma/hangar) "oqz" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/gamma/administration) "oqB" = ( /obj/structure/reagent_dispensers/water_cooler, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/northeast, /area/corsat/gamma/canteen) "oqI" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/east, /area/corsat/sigma/south/complex) "orz" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/engineering/core) "orI" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -52439,9 +38350,7 @@ /obj/structure/platform{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/south/complex) "osY" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -52449,29 +38358,20 @@ /area/corsat/theta/biodome) "otC" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/corsat/omega/hangar/security) "otY" = ( -/turf/open/floor/corsat{ - icon_state = "white" - }, +/turf/open/floor/corsat/white, /area/corsat/gamma/residential) "ouk" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/cargo) "ouv" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/east, /area/corsat/omega/complex) "ouC" = ( /obj/structure/machinery/light{ @@ -52480,104 +38380,65 @@ /obj/structure/machinery/cm_vending/sorted/medical/no_access{ req_access_txt = "100" }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/east, /area/corsat/gamma/biodome/toxins) "ouM" = ( -/turf/open/floor/corsat{ - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow, /area/corsat/theta/airlock/control) "ovc" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_21" }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/southwest, /area/corsat/sigma/dorms) "ovC" = ( /obj/structure/machinery/camera/autoname{ network = list("gamma") }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/corsat/gamma/rnr/library) "ovP" = ( -/turf/open/floor/corsat{ - icon_state = "red" - }, +/turf/open/floor/corsat/red, /area/corsat/gamma/hangar/cargo) "ovT" = ( -/turf/open/floor/corsat{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/corsat/red/northwest, /area/corsat/theta/airlock/west/id) "owL" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "purplewhitecorner" - }, +/turf/open/floor/corsat/purplewhitecorner/west, /area/corsat/gamma/biodome/complex) "owP" = ( /obj/structure/bed/nest, -/turf/open/mars_cave{ - icon_state = "mars_cave_11" - }, +/turf/open/mars_cave/mars_cave_11, /area/corsat/sigma/biodome) "oxk" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "tcomms" - }, +/turf/open/floor/almayer/tcomms, /area/corsat/sigma/southeast/telecomm) "oxr" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/sigma/north) "oxL" = ( /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/residential/researcher) "oyu" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "darkgreen" - }, +/turf/open/floor/corsat/darkgreen/west, /area/corsat/gamma/rnr/bar) "oyA" = ( /obj/structure/surface/table, /obj/effect/landmark/item_pool_spawner/corsat_bio_lock, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/west, /area/corsat/gamma/residential/west) "oyJ" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "whitecorner" - }, +/turf/open/floor/corsat/whitecorner/north, /area/corsat/gamma/residential/east) "ozo" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/east, /area/corsat/theta/airlock/control) "ozp" = ( /obj/structure/machinery/door/poddoor/two_tile/four_tile/open{ @@ -52585,14 +38446,10 @@ name = "Gamma South Airlock" }, /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/corsat/gamma/airlock/south) "ozH" = ( -/turf/open/floor/corsat{ - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey, /area/corsat/sigma/southeast/datalab) "ozR" = ( /turf/open/space/transit/east/shuttlespace_ew10, @@ -52601,21 +38458,14 @@ /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/biodome/complex) "oAa" = ( /obj/structure/cargo_container/kelland/right, -/turf/open/floor/corsat{ - icon_state = "cargo" - }, +/turf/open/floor/corsat/cargo, /area/corsat/gamma/cargo) "oBe" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "bluecorner" - }, +/turf/open/floor/corsat/bluecorner/north, /area/corsat/sigma/southeast/datalab) "oBq" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -52625,79 +38475,57 @@ dir = 1; network = list("sigma") }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/corsat/sigma/biodome/gunrange) "oBX" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_21" }, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/southeast, /area/corsat/gamma/residential/west) "oCa" = ( /obj/effect/landmark/corpsespawner/engineer, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/west, /area/corsat/sigma/south/engineering) "oCp" = ( /obj/structure/surface/rack, /obj/item/device/radio, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/biodome/complex) +"oCt" = ( +/obj/structure/prop/mech/parts/durand_torso, +/turf/open/floor/corsat/cargo, +/area/corsat/sigma/south/robotics) "oCz" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/theta/airlock/west) "oDt" = ( -/turf/open/floor/corsat{ - dir = 10; - icon_state = "white" - }, +/turf/open/floor/corsat/white/southwest, /area/corsat/gamma/residential) "oDD" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/west, /area/corsat/omega/hangar) "oEa" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/freezer) "oEu" = ( /obj/structure/surface/table, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/hangar/checkpoint) "oEE" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ name = "Holding Cell 1"; req_access_txt = "101" }, -/turf/open/floor/corsat{ - icon_state = "red" - }, +/turf/open/floor/corsat/red, /area/corsat/omega/hangar/office) "oEK" = ( /obj/structure/pipes/standard/manifold/hidden/green, @@ -52706,25 +38534,16 @@ "oEU" = ( /obj/structure/surface/table/reinforced, /obj/item/device/binoculars, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/east, /area/corsat/gamma/sigmaremote) "oFe" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_10" }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purple" - }, +/turf/open/floor/corsat/purple/north, /area/corsat/gamma/biodome/complex) "oFq" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "bluecorner" - }, +/turf/open/floor/corsat/bluecorner/east, /area/corsat/sigma/airlock/control) "oFU" = ( /obj/structure/largecrate/random/barrel, @@ -52733,10 +38552,7 @@ "oGe" = ( /obj/structure/surface/table/gamblingtable, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/corsat/gamma/rnr/arcade) "oGf" = ( /obj/structure/machinery/door/poddoor/two_tile/four_tile/vertical/opened{ @@ -52744,9 +38560,7 @@ name = "Theta West Airlock" }, /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/corsat/theta/airlock/west) "oGz" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -52765,52 +38579,33 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/cargo/lobby) "oHP" = ( /obj/structure/bed, /obj/structure/window/reinforced, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/corsat/red/northwest, /area/corsat/gamma/security/cells) "oHT" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/west, /area/corsat/theta/airlock/west) "oHU" = ( -/turf/open/floor/plating{ - dir = 4; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/east, /area/corsat/omega/hangar) "oIf" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "purple" - }, +/turf/open/floor/corsat/purple/west, /area/corsat/gamma/residential) "oIx" = ( /obj/structure/surface/table/reinforced, /obj/item/paper_bin, /obj/item/tool/pen, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/omega/hangar/office) "oJb" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/biodome/toxins) "oJn" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -52819,68 +38614,42 @@ /turf/open/ice, /area/corsat/gamma/biodome) "oJB" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner/east, /area/corsat/gamma/engineering) "oJT" = ( /obj/item/stack/sheet/metal, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/corsat/sigma/biodome/scrapyard) "oJV" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/biodome/virology) "oKg" = ( -/turf/open/floor/corsat{ - dir = 10; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/southwest, /area/corsat/gamma/engineering/core) "oKh" = ( -/turf/open/floor/corsat{ - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner, /area/corsat/gamma/hangar/security) "oKk" = ( -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/theta/airlock/west/id) "oKp" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/east, /area/corsat/omega/hallways) "oKr" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purple" - }, +/turf/open/floor/corsat/purple/east, /area/corsat/theta/biodome/complex) "oKA" = ( -/turf/open/floor/corsat{ - dir = 10; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/southwest, /area/corsat/omega/hallways) "oKQ" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/corsat/sigma/biodome/gunrange) "oLe" = ( /obj/structure/flora/jungle/alienplant1, @@ -52894,9 +38663,7 @@ /obj/structure/flora/pottedplant{ icon_state = "pottedplant_21" }, -/turf/open/floor/corsat{ - icon_state = "white" - }, +/turf/open/floor/corsat/white, /area/corsat/gamma/residential/east) "oLX" = ( /obj/structure/machinery/door/poddoor/almayer{ @@ -52905,127 +38672,89 @@ name = "Gate Shutters"; use_power = 0 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/corsat/gamma/sigmaremote) "oMp" = ( -/turf/open/floor/corsat{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/corsat/red/southwest, /area/corsat/omega/airlocknorth/id) "oMG" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/west, /area/corsat/omega/airlocknorth) "oMZ" = ( -/turf/open/floor/corsat{ - dir = 6; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/southeast, /area/corsat/omega/complex) "oNc" = ( -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/complex) +"oNi" = ( +/obj/structure/surface/rack, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/turf/open/floor/corsat/plate, +/area/corsat/sigma/southeast/generator) "oNI" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/control) "oNL" = ( /obj/structure/machinery/camera/autoname{ dir = 8; network = list("omega") }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/hangar/office) "oNR" = ( /obj/structure/bed, /obj/effect/landmark/monkey_spawn, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/biodome/virology) "oNU" = ( /obj/effect/landmark/survivor_spawner, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/corsat/sigma/biodome/scrapyard) "oOg" = ( -/turf/open/floor/corsat{ - dir = 6; - icon_state = "green" - }, +/turf/open/floor/corsat/green/southeast, /area/corsat/gamma/medbay/morgue) "oOj" = ( /obj/structure/machinery/disposal, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/southeast, /area/corsat/gamma/canteen) "oOk" = ( /obj/structure/bed/chair/office/light, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/east, /area/corsat/gamma/residential/west) "oOr" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "whitebluefull" - }, +/turf/open/floor/corsat/whitebluefull/southwest, /area/corsat/gamma/residential/showers) "oOz" = ( /obj/structure/closet/firecloset, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/west, /area/corsat/sigma/south/complex) "oOH" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/emails{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/southwest, /area/corsat/sigma/southeast/dataoffice) "oOL" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/cameras{ network = list("sigma") }, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/corsat/red/northeast, /area/corsat/sigma/hangar/security) "oPa" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_21" }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "white" - }, +/turf/open/floor/corsat/white/southwest, /area/corsat/gamma/residential) "oPq" = ( /obj/effect/decal/cleanable/blood/splatter, @@ -53033,22 +38762,14 @@ /area/corsat/sigma/dorms) "oPu" = ( /obj/structure/surface/table/almayer, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/southeast, /area/corsat/sigma/southeast/datalab) "oPC" = ( /obj/structure/machinery/light, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/corsat/red/southwest, /area/corsat/omega/security) "oQf" = ( -/turf/open/floor/corsat{ - icon_state = "whitecorner" - }, +/turf/open/floor/corsat/whitecorner, /area/corsat/sigma/dorms) "oQF" = ( /obj/structure/flora/bush/ausbushes/var3/fullgrass, @@ -53058,49 +38779,34 @@ /turf/open/gm/dirtgrassborder/north, /area/corsat/theta/biodome) "oQO" = ( -/turf/open/floor/corsat{ - icon_state = "purplewhitecorner" - }, +/turf/open/floor/corsat/purplewhitecorner, /area/corsat/gamma/biodome/virology) "oQR" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/west, /area/corsat/gamma/hallwaysouth) "oQY" = ( /obj/structure/filingcabinet/filingcabinet, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/biodome/virology) "oRo" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/foyer) "oRJ" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, /obj/effect/landmark/hunter_primary, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/hangar/security) "oTq" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/sigma/southeast/dataoffice) "oTs" = ( -/turf/open/floor/corsat{ - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner, /area/corsat/gamma/engineering) "oTw" = ( /obj/structure/machinery/door/window/brigdoor/eastleft{ @@ -53108,24 +38814,16 @@ name = "Research Desk" }, /obj/effect/landmark/monkey_spawn, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/north, /area/corsat/gamma/biodome/toxins) "oTE" = ( /obj/structure/surface/table, /obj/item/book, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/northwest, /area/corsat/gamma/residential/west) "oUz" = ( /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/cargo) "oUJ" = ( /obj/structure/flora/jungle/vines/light_1, @@ -53136,23 +38834,15 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "darkgreen" - }, +/turf/open/floor/corsat/darkgreen/north, /area/corsat/gamma/rnr) "oVj" = ( /obj/structure/machinery/computer/general_air_control/large_tank_control, -/turf/open/floor/corsat{ - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite, /area/corsat/gamma/biodome/toxins) "oVr" = ( /obj/structure/surface/rack, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/north, /area/corsat/gamma/sigmaremote) "oVF" = ( /obj/structure/flora/bush/ausbushes/ppflowers, @@ -53163,15 +38853,9 @@ /area/corsat/theta/biodome) "oVM" = ( /obj/structure/bed/sofa/vert/grey/bot, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "darkgreen" - }, +/turf/open/floor/corsat/darkgreen/north, /area/corsat/sigma/hangar/arrivals) "oVO" = ( -/obj/structure/machinery/light/small{ - dir = 4 - }, /obj/structure/machinery/light/small{ dir = 4 }, @@ -53181,119 +38865,77 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/sigmaremote) "oWg" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/sigma/hangar) "oXl" = ( /obj/structure/closet/coffin, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "green" - }, +/turf/open/floor/corsat/green/southwest, /area/corsat/gamma/medbay/morgue) "oXK" = ( /obj/structure/closet/coffin, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "green" - }, +/turf/open/floor/corsat/green/northwest, /area/corsat/gamma/medbay/morgue) "oXL" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/omega/security) "oXZ" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ name = "Holding Cell 1"; req_access_txt = "101" }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/corsat/omega/hangar/office) "oYC" = ( /obj/structure/surface/table/almayer, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/gamma/airlock/control) "oYH" = ( /obj/structure/surface/table, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/southwest, /area/corsat/gamma/residential/west) "oYP" = ( /obj/structure/platform{ dir = 8; layer = 2.7 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "white" - }, +/turf/open/floor/corsat/white/west, /area/corsat/gamma/residential/east) "oYY" = ( -/turf/open/floor/corsat{ - icon_state = "theta" - }, +/turf/open/floor/corsat/theta, /area/corsat/gamma/hallwaysouth) "oZj" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, /obj/structure/machinery/light, -/turf/open/floor/corsat{ - icon_state = "red" - }, +/turf/open/floor/corsat/red, /area/corsat/gamma/airlock/south) "oZv" = ( /obj/structure/machinery/light, -/turf/open/floor/corsat{ - icon_state = "darkgreen" - }, +/turf/open/floor/corsat/darkgreen, /area/corsat/gamma/rnr) "oZx" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/gamma/residential/west) "oZD" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/omega/offices) "oZH" = ( /obj/structure/bed/chair/comfy/black{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/airlocknorth) "oZQ" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/east, /area/corsat/gamma/residential/west) "oZW" = ( /obj/structure/flora/bush/ausbushes/var3/stalkybush, @@ -53307,24 +38949,18 @@ /turf/open/gm/grass/grass1/weedable, /area/corsat/theta/biodome) "pbS" = ( -/turf/open/floor/corsat{ - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow, /area/corsat/sigma/south) "pbX" = ( /obj/structure/surface/table/almayer, /obj/item/storage/box/syringes, -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/gamma/biodome/toxins) "pcb" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/biodome/complex) "pcu" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ @@ -53333,40 +38969,28 @@ req_access_txt = "101" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/airlock/control) "pcK" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/east, /area/corsat/omega/checkpoint) "pdg" = ( /turf/open/space/transit/east/shuttlespace_ew10, /area/space) "pdh" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "white" - }, +/turf/open/floor/corsat/white/west, /area/corsat/gamma/hallwaysouth) "pdk" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/theta/airlock/west) "pdw" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/south/engineering) "pdR" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony{ @@ -53374,72 +38998,46 @@ name = "Maintainance"; req_one_access = null }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/residential/researcher) "pdW" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "whitecorner" - }, +/turf/open/floor/corsat/whitecorner/west, /area/corsat/gamma/residential) "peh" = ( /obj/structure/surface/table, /obj/item/book, -/turf/open/floor/corsat{ - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan, /area/corsat/gamma/residential/west) "pfk" = ( /obj/structure/surface/table, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/southeast, /area/corsat/gamma/residential/west) "pfz" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "darkgreen" - }, +/turf/open/floor/corsat/darkgreen/west, /area/corsat/sigma/hangar/monorail) "pfG" = ( /obj/structure/machinery/light, -/turf/open/floor/corsat{ - icon_state = "darkgreen" - }, +/turf/open/floor/corsat/darkgreen, /area/corsat/sigma/hangar/monorail) "pfQ" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/sigma/southeast) "pge" = ( /obj/structure/stairs, /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/west, /area/corsat/gamma/residential/west) "pgf" = ( /obj/structure/machinery/vending/cigarette/colony, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/sigma/dorms) "pgn" = ( /obj/structure/bed/chair/office/light, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/gamma/residential/west) "pgC" = ( /obj/structure/flora/pottedplant{ @@ -53448,17 +39046,13 @@ /obj/structure/barricade/handrail{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/hallwaysouth) "pgH" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner, /area/corsat/sigma/hangar/security) "pgO" = ( /obj/structure/flora/jungle/vines/heavy, @@ -53469,66 +39063,56 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/sigma/airlock/east) "pgX" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/security) +"phl" = ( +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/structure/surface/rack, +/turf/open/floor/corsat/yellow/north, +/area/corsat/gamma/engineering/core) "phK" = ( /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/sigmaremote) "phM" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/omega/offices) "phN" = ( /obj/structure/bed/chair/office/light{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/southwest, /area/corsat/gamma/biodome/virology) "phX" = ( /obj/structure/machinery/camera/autoname{ dir = 1; network = list("sigma") }, -/turf/open/floor/corsat{ - icon_state = "purple" - }, +/turf/open/floor/corsat/purple, /area/corsat/sigma/south) "pir" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/north, /area/corsat/gamma/hallwaysouth) "piI" = ( /obj/structure/surface/table/almayer, /obj/item/stack/cable_coil, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/northeast, /area/corsat/sigma/south/engineering) "piZ" = ( /obj/effect/decal/cleanable/blood/splatter, @@ -53541,35 +39125,25 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/cargo) "pjP" = ( /obj/structure/machinery/camera/autoname{ dir = 8; network = list("gamma") }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/east, /area/corsat/gamma/hallwaysouth) "pkc" = ( /obj/structure/pipes/standard/simple/hidden/green, /turf/open/floor/wood, /area/corsat/gamma/residential/researcher) "pkh" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/west, /area/corsat/omega/hallways) "pkP" = ( /obj/structure/machinery/light, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/south) "plI" = ( /obj/structure/window/framed/corsat, @@ -53579,9 +39153,7 @@ /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "arrow_east" - }, +/turf/open/floor/corsat/arrow_east, /area/corsat/sigma/southeast/datalab) "plV" = ( /obj/structure/machinery/light/small{ @@ -53593,17 +39165,13 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/airlock/control) "pnc" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/south/security) "pnt" = ( /obj/structure/xenoautopsy/tank/alien, @@ -53615,33 +39183,23 @@ /area/corsat/theta/biodome) "pov" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "greenwhitecorner" - }, +/turf/open/floor/corsat/greenwhitecorner/west, /area/corsat/gamma/medbay) "ppi" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/gamma/administration) "ppr" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/south/engineering) "ppy" = ( /obj/structure/machinery/camera/autoname{ network = list("gamma") }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/north, /area/corsat/gamma/residential/researcher) "ppP" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -53654,39 +39212,25 @@ dir = 8; network = list("theta") }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/east, /area/corsat/theta/biodome/complex) "prw" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/west, /area/corsat/theta/airlock/west/id) "prB" = ( /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/cargo) "prF" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/gamma/residential/west) "prG" = ( /obj/effect/decal/cleanable/blood/splatter, /obj/effect/landmark/corpsespawner/engineer, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/north, /area/corsat/gamma/hallwaysouth) "prI" = ( /obj/structure/pipes/vents/pump/on, @@ -53704,50 +39248,35 @@ /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/sigma/south/complex) "pue" = ( /obj/structure/machinery/camera/autoname{ dir = 8; network = list("sigma") }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/east, /area/corsat/sigma/southeast) "puh" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/biodome/complex) "puF" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/corsat/gamma/foyer) "pvh" = ( /obj/structure/bed/chair/office/light{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/east, /area/corsat/gamma/residential/west) "pvo" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/engineering) "pvA" = ( /obj/structure/flora/jungle/vines/heavy, @@ -53760,9 +39289,7 @@ /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/engineering) "pwp" = ( /obj/structure/ice/ice_rock/cornerOverlay{ @@ -53772,38 +39299,25 @@ /turf/closed/ice_rock/corners, /area/corsat/gamma/biodome) "pws" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner/east, /area/corsat/omega/cargo) "pwu" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/west, /area/corsat/gamma/engineering/atmos) "pwO" = ( /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/sigma/south/complex) "pxj" = ( /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/corsat{ - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow, /area/corsat/sigma/south/robotics) "pxl" = ( /obj/structure/machinery/light{ dir = 1 }, /obj/structure/pipes/vents/pump, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/corsat/gamma/foyer) "pxH" = ( /obj/structure/flora/pottedplant{ @@ -53813,9 +39327,7 @@ dir = 8; layer = 2.8 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/north) "pya" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -53823,52 +39335,36 @@ /turf/open/floor/wood, /area/corsat/gamma/rnr/library) "pyL" = ( -/turf/open/floor/corsat{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/corsat/red/southeast, /area/corsat/omega/hangar/security) "pzr" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/hangar/security) "pzH" = ( /obj/structure/machinery/door/poddoor/two_tile/four_tile/vertical/opened{ id = "SigmaWestD"; name = "Sigma Dome Airlock" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/corsat/sigma/airlock/control) "pAo" = ( /obj/structure/cargo_container/hd/right/alt, -/turf/open/floor/corsat{ - icon_state = "cargo" - }, +/turf/open/floor/corsat/cargo, /area/corsat/gamma/cargo) "pAt" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/north, /area/corsat/gamma/airlock/south/id) "pAB" = ( /obj/structure/machinery/door/window/northleft, /obj/structure/machinery/door/window/southleft, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/theta/biodome/complex) "pAM" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/powercell, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/south/robotics) "pBm" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ @@ -53878,61 +39374,41 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/airlock/south/id) "pBJ" = ( /obj/structure/cargo_container/wy/right, -/turf/open/floor/corsat{ - icon_state = "cargo" - }, +/turf/open/floor/corsat/cargo, /area/corsat/gamma/cargo) "pCh" = ( /obj/structure/machinery/light, /obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/floor/corsat{ - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite, /area/corsat/theta/biodome/complex) "pCi" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/south/robotics) "pCT" = ( -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/residential/east) "pCW" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/north, /area/corsat/sigma/hangar/office) "pDt" = ( /obj/structure/surface/table, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/corsat{ - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan, /area/corsat/sigma/dorms) "pDB" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "bluegreycorner" - }, +/turf/open/floor/corsat/bluegreycorner/east, /area/corsat/omega/offices) "pDP" = ( /obj/structure/closet/secure_closet/engineering_personal{ req_access_txt = "102" }, -/turf/open/floor/corsat{ - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow, /area/corsat/sigma/southeast/generator) "pDR" = ( /turf/closed/wall/r_wall/biodome, @@ -53941,63 +39417,41 @@ /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/landmark/corpsespawner/scientist, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "white" - }, +/turf/open/floor/corsat/white/east, /area/corsat/gamma/residential/east) "pEj" = ( /obj/structure/surface/table, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/gamma/residential/west) "pEm" = ( /obj/structure/surface/table/woodentable/fancy, /obj/item/paper, -/turf/open/floor{ - dir = 8; - icon_state = "carpet15-15" - }, +/turf/open/floor/carpet15_15/west, /area/corsat/omega/offices) "pEQ" = ( -/turf/open/floor/corsat{ - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner, /area/corsat/omega/hangar/office) "pEX" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony{ name = "Maintainence"; req_one_access = null }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/residential/researcher) "pFe" = ( -/turf/open/floor/corsat{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/corsat/red/southwest, /area/corsat/omega/hangar) "pFX" = ( /obj/structure/machinery/light{ dir = 1 }, /obj/structure/bed/sofa/vert/grey/bot, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "darkgreen" - }, +/turf/open/floor/corsat/darkgreen/north, /area/corsat/sigma/hangar/arrivals) "pGp" = ( /obj/effect/landmark/corpsespawner/scientist, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/gamma/residential/west) "pIj" = ( /obj/structure/pipes/standard/manifold/hidden/green, @@ -54008,31 +39462,20 @@ /turf/open/floor/wood, /area/corsat/gamma/residential/lounge) "pIU" = ( -/turf/open/floor/corsat{ - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner, /area/corsat/omega/hangar) "pJa" = ( /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/southeast, /area/corsat/gamma/residential/west) "pJn" = ( -/turf/open/floor/corsat{ - dir = 10; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/southwest, /area/corsat/sigma/southeast/datalab) "pJo" = ( /obj/structure/bed/chair/office/light, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/north, /area/corsat/gamma/residential/west) "pJP" = ( /obj/structure/showcase{ @@ -54050,38 +39493,27 @@ }, /obj/structure/surface/table/woodentable, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/hallwaysouth) "pKg" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/landmark/survivor_spawner, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/gamma/residential/west) "pKi" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner/east, /area/corsat/sigma/south/engineering) "pLy" = ( /obj/structure/machinery/camera/autoname{ dir = 8; network = list("gamma") }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purplewhitecorner" - }, +/turf/open/floor/corsat/purplewhitecorner/east, /area/corsat/gamma/biodome/toxins) "pLO" = ( /obj/structure/window/framed/corsat/security, @@ -54093,48 +39525,33 @@ /turf/open/floor/plating, /area/corsat/sigma/hangar/security) "pMh" = ( -/turf/open/floor/corsat{ - dir = 10; - icon_state = "purple" - }, +/turf/open/floor/corsat/purple/southwest, /area/corsat/omega/hallways) "pMI" = ( /obj/effect/landmark/lv624/xeno_tunnel, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/airlock/south) "pMN" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purplecorner" - }, +/turf/open/floor/corsat/purplecorner/east, /area/corsat/gamma/residential) "pMU" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/hallwaysouth) "pMZ" = ( /obj/structure/machinery/camera/autoname{ dir = 4; network = list("sigma") }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/west, /area/corsat/sigma/hangar) "pNa" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/foyer) "pOs" = ( /obj/structure/machinery/colony_floodlight{ @@ -54143,10 +39560,7 @@ /turf/open/gm/dirt, /area/corsat/theta/biodome) "pPp" = ( -/turf/open/floor/corsat{ - dir = 9; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/northwest, /area/corsat/gamma/residential/west) "pPN" = ( /obj/structure/bed/stool, @@ -54160,34 +39574,23 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "whitetancorner" - }, +/turf/open/floor/corsat/whitetancorner/north, /area/corsat/gamma/residential/west) "pQt" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/omega/airlocknorth/id) "pQA" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/east, /area/corsat/gamma/hangar/arrivals) "pQK" = ( -/turf/open/floor/corsat{ - icon_state = "bluegreycorner" - }, +/turf/open/floor/corsat/bluegreycorner, /area/corsat/sigma/south/offices) "pRl" = ( /turf/open/floor/corsat, @@ -54196,9 +39599,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/mars_cave{ - icon_state = "mars_cave_6" - }, +/turf/open/mars_cave/mars_cave_6, /area/corsat/sigma/biodome) "pRX" = ( /obj/structure/platform, @@ -54206,10 +39607,7 @@ dir = 4; layer = 2 }, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "white" - }, +/turf/open/floor/corsat/white/southeast, /area/corsat/sigma/south) "pSb" = ( /obj/structure/machinery/door/poddoor/almayer/open{ @@ -54218,17 +39616,13 @@ use_power = 0 }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/corsat/sigma/hangar/monorail) "pSc" = ( /obj/structure/barricade/handrail{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/hallwaysouth) "pSo" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -54236,26 +39630,17 @@ /area/corsat/gamma/biodome) "pSp" = ( /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "darkgreen" - }, +/turf/open/floor/corsat/darkgreen/west, /area/corsat/sigma/hangar/monorail) "pSu" = ( /obj/structure/bed/chair/office/light{ dir = 8 }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/gamma/residential/west) "pSB" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/east, /area/corsat/omega/security) "pSZ" = ( /obj/structure/machinery/vending/coffee, @@ -54268,54 +39653,41 @@ /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/biodome/toxins) "pTD" = ( -/turf/open/floor/corsat{ - icon_state = "darkgreen" - }, +/turf/open/floor/corsat/darkgreen, /area/corsat/sigma/north) "pUa" = ( /obj/structure/filingcabinet/filingcabinet, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/north, /area/corsat/sigma/south/offices) +"pUy" = ( +/obj/structure/surface/rack, +/obj/item/circuitboard/exosuit/peripherals/work_loader, +/obj/item/circuitboard/exosuit/peripherals/work_loader, +/turf/open/floor/corsat/yellow, +/area/corsat/sigma/south/robotics) "pUA" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "bluegreycorner" - }, +/turf/open/floor/corsat/bluegreycorner/west, /area/corsat/omega/offices) "pUP" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/security) "pVm" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner/north, /area/corsat/gamma/residential/maint) "pVo" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/mars{ - icon_state = "mars_dirt_8" - }, +/turf/open/mars/mars_dirt_8, /area/corsat/sigma/biodome) "pVr" = ( /obj/structure/window/reinforced{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite, /area/corsat/gamma/biodome/toxins) "pVD" = ( /obj/structure/pipes/vents/pump{ @@ -54325,47 +39697,31 @@ dir = 4; network = list("gamma") }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "white" - }, +/turf/open/floor/corsat/white/west, /area/corsat/gamma/residential) "pVL" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/med_data/laptop{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/west, /area/corsat/gamma/biodome/virology) "pVS" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/omega/offices) "pWc" = ( /obj/structure/largecrate/random/barrel, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/west, /area/corsat/omega/cargo) "pWj" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/medbay/lobby) "pWl" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "purplecorner" - }, +/turf/open/floor/corsat/purplecorner/west, /area/corsat/omega/hallways) "pWr" = ( /obj/structure/pipes/unary/freezer{ @@ -54374,19 +39730,13 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite/west, /area/corsat/gamma/medbay) "pWE" = ( /obj/structure/computer3frame/server{ icon_state = "4" }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhitecorner" - }, +/turf/open/floor/corsat/purplewhitecorner/north, /area/corsat/sigma/south/complex) "pWR" = ( /obj/structure/flora/jungle/vines/heavy, @@ -54407,64 +39757,46 @@ /obj/structure/barricade/handrail{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/hallwaysouth) "pXY" = ( /obj/structure/machinery/camera/autoname{ dir = 1; network = list("gamma") }, -/turf/open/floor/corsat{ - icon_state = "red" - }, +/turf/open/floor/corsat/red, /area/corsat/gamma/hangar/checkpoint) "pYS" = ( -/turf/open/floor/corsat{ - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow, /area/corsat/gamma/engineering) "pYW" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/omega/complex) "pZf" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/east, /area/corsat/sigma/south) "pZt" = ( /obj/structure/machinery/camera/autoname{ dir = 1; network = list("sigma") }, -/turf/open/floor/corsat{ - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow, /area/corsat/sigma/south/robotics) "qaa" = ( /obj/structure/machinery/light{ dir = 4 }, /obj/structure/surface/rack, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "whitebluefull" - }, +/turf/open/floor/corsat/whitebluefull/southwest, /area/corsat/gamma/residential/showers) "qac" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_10" }, -/turf/open/floor/corsat{ - icon_state = "white" - }, +/turf/open/floor/corsat/white, /area/corsat/gamma/residential/researcher) "qaf" = ( /obj/structure/machinery/camera/autoname{ @@ -54477,52 +39809,35 @@ health = 80 }, /obj/item/phone, -/turf/open/floor/corsat{ - icon_state = "blue" - }, +/turf/open/floor/corsat/blue, /area/corsat/sigma/southeast/datalab) "qaj" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/sigma/hangar/office) "qaB" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "white" - }, +/turf/open/floor/corsat/white/east, /area/corsat/gamma/hallwaysouth) "qaG" = ( /obj/structure/bed/chair/comfy/black{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/sigma/hangar/checkpoint) "qaO" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "darkgreencorner" - }, +/turf/open/floor/corsat/darkgreencorner/west, /area/corsat/gamma/foyer) "qaS" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/medbay/surgery) "qaY" = ( /obj/effect/decal/warning_stripes{ icon_state = "N" }, -/turf/open/floor/almayer/research/containment/floor2{ - dir = 1 - }, +/turf/open/floor/almayer/research/containment/floor2/north, /area/corsat/gamma/sigmaremote) "qba" = ( /obj/structure/surface/rack, @@ -54530,33 +39845,23 @@ /obj/item/storage/bag/trash, /obj/item/storage/bag/trash, /obj/item/storage/bag/trash, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/residential) "qbc" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/corsat/gamma/rnr/bar) "qbB" = ( /obj/structure/bed/chair, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/corsat/red/northeast, /area/corsat/sigma/hangar/security) "qbG" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/theta/biodome/hydrowest) "qbV" = ( /obj/structure/window/framed/corsat/security, @@ -54577,10 +39882,7 @@ "qcR" = ( /obj/structure/surface/table/woodentable, /obj/item/reagent_container/food/drinks/cans/beer, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/corsat/gamma/rnr/arcade) "qdK" = ( /obj/structure/machinery/light, @@ -54592,63 +39894,44 @@ pixel_y = 2 }, /obj/item/tool/surgery/bonegel, -/turf/open/floor/corsat{ - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite, /area/corsat/gamma/medbay/surgery) "qeg" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/engineering/lobby) "qeh" = ( /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/south/security) "qeC" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/sigma/dorms) "qeE" = ( /obj/structure/sign/safety/airlock{ pixel_y = 32 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purple" - }, +/turf/open/floor/corsat/purple/north, /area/corsat/omega/hallways) "qeF" = ( /obj/structure/surface/table/almayer, /obj/item/device/flashlight/lamp, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/sigma/hangar/security) "qeY" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/hangar/security) "qfl" = ( /obj/structure/bed/nest, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/omega/biodome) "qfp" = ( /obj/structure/window/framed/corsat, @@ -54663,122 +39946,83 @@ /obj/structure/machinery/camera/autoname{ network = list("gamma") }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/north, /area/corsat/gamma/residential/west) "qgl" = ( -/turf/open/floor/corsat{ - icon_state = "red" - }, +/turf/open/floor/corsat/red, /area/corsat/omega/airlocknorth) "qgm" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "bluecorner" - }, +/turf/open/floor/corsat/bluecorner/east, /area/corsat/gamma/hangar/arrivals) "qgo" = ( /obj/structure/machinery/light, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/southeast, /area/corsat/sigma/southeast/datalab) "qgt" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/corsat/sigma/biodome) "qgF" = ( /obj/effect/alien/weeds/node, /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/omega/biodome) "qgR" = ( /obj/structure/machinery/camera/autoname{ dir = 4; network = list("sigma") }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/corsat/sigma/biodome/testgrounds) "qhl" = ( /obj/structure/bed, /obj/structure/window/reinforced, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/corsat/red/northeast, /area/corsat/gamma/security/cells) "qhT" = ( /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - icon_state = "darkgreencorner" - }, +/turf/open/floor/corsat/darkgreencorner, /area/corsat/gamma/residential) "qig" = ( /obj/structure/pipes/standard/manifold/hidden/green, /turf/open/floor/wood, /area/corsat/gamma/rnr/library) "qiw" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/corsat/omega/hangar) "qiW" = ( /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/west, /area/corsat/sigma/south/offices) "qje" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/gamma/medbay) "qjf" = ( /obj/effect/landmark/corpsespawner/scientist, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/sigma/hangar/arrivals) "qjG" = ( /obj/structure/bed/chair/dropship/pilot{ dir = 1 }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/light_grey_single_wide_up_to_down, /area/prison/hangar_storage/research/shuttle) "qjL" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, /obj/effect/alien/weeds/node, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/omega/hallways) "qkr" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/gamma/hangar/office) "qkt" = ( /obj/structure/pipes/standard/manifold/hidden/green{ @@ -54790,29 +40034,18 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "darkgreencorner" - }, +/turf/open/floor/corsat/darkgreencorner/north, /area/corsat/sigma/hangar) "qkz" = ( -/turf/open/floor/corsat{ - icon_state = "brown" - }, +/turf/open/floor/corsat/brown, /area/corsat/sigma/cargo) "qkD" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/north, /area/corsat/omega/hallways) "qkJ" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/bed/sofa/vert/white/bot, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/gamma/residential/researcher) "qkL" = ( /obj/structure/machinery/door/airlock/almayer/generic{ @@ -54821,31 +40054,21 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "whitebluefull" - }, +/turf/open/floor/corsat/whitebluefull/southwest, /area/corsat/gamma/residential/showers) "qkW" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/south/engineering) "qlh" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/east, /area/corsat/sigma/airlock/control) "qlt" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite, /area/corsat/theta/biodome/complex) "qlx" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -54857,48 +40080,32 @@ /obj/structure/machinery/camera/autoname{ network = list("gamma") }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/corsat/gamma/security) "qlI" = ( /obj/structure/surface/table, /obj/structure/machinery/computer/emails{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/west, /area/corsat/gamma/residential/west) "qmD" = ( /obj/structure/surface/table/almayer, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/sigma/southeast/dataoffice) "qmT" = ( /obj/structure/sign/safety/biohazard, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhitecorner" - }, +/turf/open/floor/corsat/purplewhitecorner/north, /area/corsat/gamma/biodome/virology) "qnb" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/east, /area/corsat/sigma/south/security) "qnw" = ( /obj/structure/pipes/vents/pump{ dir = 8; id_tag = "mining_outpost_pump" }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/theta/airlock/west/id) "qoh" = ( /obj/effect/landmark/monkey_spawn, @@ -54909,49 +40116,32 @@ /turf/open/floor/wood, /area/corsat/gamma/administration) "qou" = ( -/turf/open/floor/corsat{ - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite, /area/corsat/gamma/medbay/lobby) "qoN" = ( /obj/effect/landmark/hunter_primary, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/gamma/residential/west) "qpo" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "darkgreencorner" - }, +/turf/open/floor/corsat/darkgreencorner/north, /area/corsat/gamma/hallwaysouth) "qpB" = ( /obj/structure/bookcase{ icon_state = "book-5" }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/east, /area/corsat/gamma/residential/west) "qpC" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhitecorner" - }, +/turf/open/floor/corsat/purplewhitecorner/north, /area/corsat/theta/biodome/complex) "qqg" = ( /obj/structure/computer3frame/server{ icon_state = "4" }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/southwest, /area/corsat/gamma/sigmaremote) "qqF" = ( /obj/structure/machinery/camera/autoname{ @@ -54962,15 +40152,11 @@ /obj/structure/machinery/computer/station_alert{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/sigma/hangar/office) "qqI" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/gamma/hangar/flightcontrol) "qqK" = ( /obj/structure/window/framed/corsat/security, @@ -54980,51 +40166,34 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/hallwaysouth) "qqY" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner, /area/corsat/theta/airlock/control) "qsg" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/east, /area/corsat/sigma/south/offices) "qsC" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "gamma" - }, +/turf/open/floor/corsat/gamma, /area/corsat/gamma/hallwaysouth) "qsT" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/mars_cave{ - icon_state = "mars_cave_18" - }, +/turf/open/mars_cave/mars_cave_18, /area/corsat/sigma/biodome) "qsW" = ( /obj/structure/surface/table/almayer, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/omega/security) "qsY" = ( /obj/structure/flora/pottedplant, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "bluegreycorner" - }, +/turf/open/floor/corsat/bluegreycorner/east, /area/corsat/gamma/hangar/flightcontrol) "qtf" = ( /obj/item/stack/sheet/wood, @@ -55032,34 +40201,24 @@ /area/corsat/sigma/dorms) "qti" = ( /obj/structure/filingcabinet/filingcabinet, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "whitetancorner" - }, +/turf/open/floor/corsat/whitetancorner/east, /area/corsat/gamma/residential/west) "qtm" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/mars_cave{ - icon_state = "mars_cave_11" - }, +/turf/open/mars_cave/mars_cave_11, /area/corsat/sigma/biodome) "qtI" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/east, /area/corsat/theta/biodome/complex) "qtZ" = ( /obj/effect/landmark/hunter_primary, -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/gamma/administration) "quG" = ( /obj/structure/flora/bush/ausbushes/var3/fullgrass, @@ -55071,23 +40230,15 @@ "quI" = ( /obj/structure/pipes/vents/pump, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/gamma/canteen) "qvz" = ( -/turf/open/shuttle/dropship{ - icon_state = "rasputin13" - }, +/turf/open/shuttle/dropship/light_grey_middle, /area/prison/hangar_storage/research/shuttle) "qvB" = ( /obj/structure/surface/table, /obj/structure/machinery/computer3/laptop/secure_data, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/gamma/residential/west) "qvD" = ( /obj/structure/machinery/door/poddoor/almayer/open{ @@ -55099,19 +40250,14 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/corsat/sigma/hangar) "qwr" = ( /obj/structure/machinery/camera/autoname{ dir = 8; network = list("gamma") }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/east, /area/corsat/gamma/residential/west) "qww" = ( /obj/structure/surface/table, @@ -55120,161 +40266,106 @@ dir = 4; layer = 2 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/gamma/residential/west) "qwM" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "purplewhitecorner" - }, +/turf/open/floor/corsat/purplewhitecorner/west, /area/corsat/omega/complex) "qwO" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/gamma/residential/west) "qxi" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/residential/east) "qxB" = ( /obj/structure/surface/table/reinforced, /obj/item/newspaper, -/turf/open/floor/corsat{ - icon_state = "red" - }, +/turf/open/floor/corsat/red, /area/corsat/sigma/checkpoint) "qxR" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "whitetancorner" - }, +/turf/open/floor/corsat/whitetancorner/east, /area/corsat/gamma/residential/west) "qyg" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "darkgreencorner" - }, +/turf/open/floor/corsat/darkgreencorner/west, /area/corsat/gamma/rnr) "qys" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/sigma/hangar/arrivals) "qyO" = ( /obj/structure/surface/table/almayer, /obj/item/storage/firstaid/toxin, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/northeast, /area/corsat/gamma/biodome/virology) "qzo" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/security) "qzy" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/east, /area/corsat/gamma/airlock/control) "qAg" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/south/security) "qAk" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/east, /area/corsat/sigma/south/robotics) "qAl" = ( /turf/closed/wall/r_wall/biodome, /area/corsat/sigma/biodome) "qAs" = ( /obj/structure/filingcabinet/filingcabinet, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/north, /area/corsat/gamma/biodome/toxins) "qAG" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/theta/biodome/complex) "qAH" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/omega/complex) "qBk" = ( /obj/structure/bed/chair, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/northeast, /area/corsat/sigma/hangar) "qBJ" = ( -/turf/open/floor/corsat{ - icon_state = "green" - }, +/turf/open/floor/corsat/green, /area/corsat/gamma/medbay/morgue) "qBZ" = ( /obj/structure/surface/table/reinforced, /obj/item/clothing/glasses/meson, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/east, /area/corsat/gamma/sigmaremote) "qCi" = ( /obj/structure/bed/chair, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite/north, /area/corsat/gamma/medbay/lobby) "qCU" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/north, /area/corsat/gamma/hangar) "qDx" = ( /obj/structure/machinery/light/small{ @@ -55287,33 +40378,23 @@ dir = 4; network = list("sigma") }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "purple" - }, +/turf/open/floor/corsat/purple/west, /area/corsat/sigma/south) "qEk" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "darkgreencorner" - }, +/turf/open/floor/corsat/darkgreencorner/east, /area/corsat/gamma/hangar/monorail) "qEu" = ( /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/biodome/toxins) "qEw" = ( /obj/structure/bed/chair/office/light{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/airlock/control) "qEG" = ( /obj/structure/machinery/camera/autoname{ @@ -55326,10 +40407,7 @@ /obj/structure/bed/chair/office/light{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "bluegreycorner" - }, +/turf/open/floor/corsat/bluegreycorner/west, /area/corsat/sigma/south/offices) "qFq" = ( /obj/structure/surface/table/woodentable, @@ -55339,35 +40417,24 @@ /area/corsat/gamma/residential/east) "qFA" = ( /obj/effect/landmark/hunter_primary, -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/sigma/southeast/dataoffice) "qFJ" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/corsat/sigma/north) "qFK" = ( /obj/structure/surface/table, /obj/item/folder, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/gamma/residential/west) "qGn" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "whitetancorner" - }, +/turf/open/floor/corsat/whitetancorner/east, /area/corsat/gamma/residential/west) "qGz" = ( /obj/structure/flora/bush/ausbushes/var3/fullgrass, @@ -55377,22 +40444,14 @@ "qGF" = ( /obj/structure/janitorialcart, /obj/item/tool/mop, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/east, /area/corsat/sigma/hangar/monorail/control) "qGY" = ( -/turf/open/floor/corsat{ - dir = 10; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/southwest, /area/corsat/omega/complex) "qHF" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/biodome/toxins) "qHM" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ @@ -55405,30 +40464,20 @@ name = "Omega Lockdown"; use_power = 0 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/airlocknorth) "qIr" = ( /obj/effect/landmark/xeno_hive_spawn, /obj/effect/landmark/ert_spawns/groundside_xeno, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/engineering/core) "qIw" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner/north, /area/corsat/sigma/north) "qIS" = ( /obj/structure/surface/table/reinforced, /obj/item/storage/fancy/cigarettes/lucky_strikes, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/east, /area/corsat/gamma/sigmaremote) "qIU" = ( /turf/closed/wall/r_wall/biodome/biodome_unmeltable, @@ -55438,18 +40487,13 @@ dir = 4 }, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/residential) "qJi" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "whitebluefull" - }, +/turf/open/floor/corsat/whitebluefull/southwest, /area/corsat/gamma/residential/showers) "qJl" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -55465,24 +40509,17 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/west, /area/corsat/sigma/hangar/office) "qJJ" = ( /obj/structure/machinery/light, -/turf/open/floor/corsat{ - icon_state = "red" - }, +/turf/open/floor/corsat/red, /area/corsat/omega/hangar/security) "qJO" = ( /obj/structure/pipes/standard/simple/hidden/universal{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow, /area/corsat/sigma/airlock/control) "qJZ" = ( /obj/structure/xenoautopsy/tank/broken, @@ -55495,21 +40532,14 @@ /turf/open/floor/wood, /area/corsat/gamma/residential/east) "qKN" = ( -/turf/open/floor/corsat{ - icon_state = "red" - }, +/turf/open/floor/corsat/red, /area/corsat/omega/hallways) "qKZ" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner/north, /area/corsat/gamma/hallwaysouth) "qLa" = ( /obj/structure/machinery/light, -/turf/open/floor/corsat{ - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow, /area/corsat/gamma/airlock/control) "qLo" = ( /obj/structure/machinery/power/apc/high{ @@ -55517,10 +40547,7 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/north, /area/corsat/gamma/hallwaysouth) "qLz" = ( /obj/structure/prop/mech/tesla_energy_relay, @@ -55530,52 +40557,37 @@ /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/airlock/south) "qLI" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/med_data/laptop{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite/east, /area/corsat/gamma/medbay) "qMT" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/theta/airlock/control) "qNe" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/communications{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/sigma/hangar/office) "qNF" = ( /obj/structure/machinery/light, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/corsat/red/southeast, /area/corsat/gamma/hangar/checkpoint) "qNJ" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "white" - }, +/turf/open/floor/corsat/white/west, /area/corsat/gamma/residential/east) "qNM" = ( /obj/structure/surface/table/woodentable, @@ -55586,9 +40598,7 @@ /obj/structure/surface/table/almayer, /obj/item/storage/fancy/cigarettes/lucky_strikes, /obj/item/tool/lighter/random, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/hangar/security) "qOF" = ( /obj/structure/machinery/door/airlock/almayer/command/colony{ @@ -55596,36 +40606,25 @@ name = "Hangar Office"; req_access_txt = "106" }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/sigma/hangar/office) "qOJ" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/computer/secure_data, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/east, /area/corsat/gamma/hangar/security) "qPo" = ( /obj/structure/window/reinforced, -/turf/open/floor/corsat{ - icon_state = "blue" - }, +/turf/open/floor/corsat/blue, /area/corsat/sigma/southeast/datalab) "qPJ" = ( /obj/structure/bed/nest, /obj/effect/landmark/corpsespawner/scientist, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/corsat/sigma/biodome) "qQe" = ( /obj/structure/window/framed/corsat/research, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/theta/biodome/complex) "qQg" = ( /turf/open/floor/wood, @@ -55634,32 +40633,24 @@ /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/engineering) "qQU" = ( /obj/structure/surface/table/almayer, /obj/item/reagent_container/spray/cleaner, -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/gamma/medbay/morgue) "qRv" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/hallwaysouth) "qRY" = ( /obj/structure/bed/chair/office/light{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/gamma/sigmaremote) "qSi" = ( /turf/closed/wall/r_wall/biodome/biodome_unmeltable, @@ -55676,26 +40667,18 @@ /obj/item/clothing/gloves/black, /obj/item/clothing/suit/storage/snow_suit, /obj/item/clothing/suit/storage/snow_suit, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/corsat/gamma/airlock/south/id) "qSG" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/computer/station_alert{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/east, /area/corsat/gamma/sigmaremote) "qST" = ( /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/sigmaremote) "qTd" = ( /obj/structure/reagent_dispensers/water_cooler, @@ -55704,48 +40687,31 @@ dir = 8; icon_state = "platform_deco" }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "whitecorner" - }, +/turf/open/floor/corsat/whitecorner/east, /area/corsat/gamma/hallwaysouth) "qTe" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/west, /area/corsat/sigma/dorms) "qTj" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/hangar/id) "qTZ" = ( -/turf/open/floor/corsat{ - dir = 10; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/southwest, /area/corsat/gamma/canteen) "qUt" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony{ name = "Maintainence"; req_one_access = null }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/airlock/south/id) "qUI" = ( /obj/effect/landmark/hunter_primary, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/south) "qUT" = ( -/turf/open/floor/corsat{ - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow, /area/corsat/gamma/engineering/atmos) "qVd" = ( /obj/structure/machinery/gravity_generator{ @@ -55757,17 +40723,13 @@ /obj/structure/platform{ dir = 1 }, -/turf/open/shuttle/escapepod{ - icon_state = "floor5" - }, +/turf/open/shuttle/escapepod/floor5, /area/corsat/theta/biodome/complex) "qVe" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/cargo) "qVs" = ( /obj/structure/machinery/camera/autoname{ @@ -55779,16 +40741,12 @@ "qVz" = ( /obj/effect/landmark/corpsespawner/pmc, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/gamma/administration) "qVA" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/omega/biodome) "qVF" = ( /obj/structure/platform{ @@ -55796,117 +40754,80 @@ dir = 1; icon_state = "platform_deco" }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/north) "qVJ" = ( /obj/structure/machinery/camera/autoname{ dir = 1; network = list("sigma") }, -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/east, /area/corsat/sigma/biodome) "qWf" = ( /obj/structure/bed/chair/office/light{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/gamma/medbay/morgue) "qWr" = ( /turf/closed/wall/biodome, /area/corsat/gamma/residential) "qWK" = ( /obj/structure/window/reinforced, -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/gamma/administration) "qWQ" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/sigma/hangar/arrivals) "qWX" = ( -/turf/open/floor/corsat{ - dir = 9; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/northwest, /area/corsat/gamma/hallwaysouth) "qXL" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/theta/biodome/complex) "qYj" = ( -/turf/open/floor/corsat{ - dir = 5; - icon_state = "darkgreen" - }, +/turf/open/floor/corsat/darkgreen/northeast, /area/corsat/gamma/hangar/monorail) "qZj" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "darkgreencorner" - }, +/turf/open/floor/corsat/darkgreencorner/north, /area/corsat/gamma/hangar) "qZs" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/engineering) "qZW" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/cargo) "raw" = ( /obj/effect/landmark/corpsespawner/scientist, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/biodome/virology) "rba" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/east, /area/corsat/gamma/residential/west) "rbo" = ( /obj/structure/bed/chair/comfy/beige, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 8; - icon_state = "carpet14-10" - }, +/turf/open/floor/carpet14_10/west, /area/corsat/gamma/biodome/complex) "rbC" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner/north, /area/corsat/sigma/south/robotics) "rcg" = ( /obj/structure/pipes/vents/pump, @@ -55915,61 +40836,41 @@ "rch" = ( /obj/structure/surface/table/almayer, /obj/item/clipboard, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/southwest, /area/corsat/theta/biodome/complex) "rcT" = ( /obj/structure/computer3frame/server{ icon_state = "4" }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/north, /area/corsat/gamma/sigmaremote) "rdn" = ( /obj/structure/machinery/light, /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/biodome/virology) "rdA" = ( /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/corsat/red/southeast, /area/corsat/sigma/south/security) "rdZ" = ( /obj/structure/machinery/camera/autoname{ dir = 8; network = list("gamma") }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/east, /area/corsat/gamma/foyer) "reh" = ( /obj/structure/stairs, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "white" - }, +/turf/open/floor/corsat/white/north, /area/corsat/gamma/hallwaysouth) "rei" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "bluegreycorner" - }, +/turf/open/floor/corsat/bluegreycorner/east, /area/corsat/sigma/hangar/office) "reN" = ( /obj/structure/machinery/door/airlock/almayer/research/glass/colony{ @@ -55985,82 +40886,55 @@ /obj/structure/machinery/computer/atmos_alert{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/maint) "rfh" = ( /obj/structure/largecrate/random, -/turf/open/floor/corsat{ - icon_state = "cargo" - }, +/turf/open/floor/corsat/cargo, /area/corsat/gamma/freezer) "rfo" = ( /obj/structure/machinery/camera/autoname{ dir = 8; network = list("sigma") }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/east, /area/corsat/sigma/north) "rfQ" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow, /area/corsat/theta/airlock/control) "rgc" = ( /obj/structure/bed/nest, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/corsat/sigma/biodome) "rgm" = ( -/turf/open/floor/corsat{ - dir = 10; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/southwest, /area/corsat/sigma/southeast/datalab) "rhr" = ( /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/sigma/dorms) "rhu" = ( /obj/structure/surface/rack, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/north, /area/corsat/sigma/south/complex) "rhv" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22" }, /obj/structure/window/reinforced, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/hallwaysouth) "riC" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "bluecorner" - }, +/turf/open/floor/corsat/bluecorner/east, /area/corsat/sigma/southeast/datalab) "riE" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/theta/airlock/control) "rjv" = ( /obj/structure/machinery/light{ @@ -56068,17 +40942,13 @@ }, /obj/structure/surface/table/woodentable, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/hallwaysouth) "rjO" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/security/cells) "rjT" = ( /obj/structure/pipes/vents/pump{ @@ -56090,17 +40960,13 @@ /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/south/robotics) "rkK" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/hangar) "rlh" = ( /obj/structure/machinery/shower{ @@ -56112,143 +40978,89 @@ layer = 2.8 }, /obj/item/tool/soap, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "whitebluefull" - }, +/turf/open/floor/corsat/whitebluefull/southwest, /area/corsat/gamma/residential/showers) "rlk" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner, /area/corsat/gamma/airlock/south/id) "rlG" = ( -/turf/open/floor/corsat{ - dir = 10; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/southwest, /area/corsat/sigma/south/robotics) "rlH" = ( -/turf/open/floor/corsat{ - dir = 5; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/northeast, /area/corsat/omega/cargo) "rmc" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/cargo/disposal) "rmk" = ( /obj/structure/bed/chair/office/light, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/northwest, /area/corsat/gamma/biodome/virology) "rmm" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/west, /area/corsat/theta/biodome/complex) "rmI" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/east, /area/corsat/gamma/engineering/atmos) "rno" = ( /obj/structure/machinery/camera/autoname{ network = list("sigma") }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "darkgreen" - }, +/turf/open/floor/corsat/darkgreen/north, /area/corsat/sigma/hangar) "rnK" = ( /obj/structure/reagent_dispensers/water_cooler, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/east, /area/corsat/omega/complex) "roh" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/north, /area/corsat/gamma/engineering) "roj" = ( /obj/structure/safe, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/corsat/gamma/biodome/complex) "ros" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/airlock/north) "rox" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "bluegreycorner" - }, +/turf/open/floor/corsat/bluegreycorner/north, /area/corsat/gamma/administration) "roL" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "darkgreen" - }, +/turf/open/floor/corsat/darkgreen/north, /area/corsat/gamma/hangar) "roZ" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/airlock/control) "rpi" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/sigma/south/complex) "rpr" = ( /obj/effect/landmark/corpsespawner/pmc, -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/light_grey_single_wide_up_to_down, /area/prison/hangar_storage/research/shuttle) "rpB" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/gamma/canteen) "rpP" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/east, /area/corsat/gamma/engineering/core) "rpZ" = ( /obj/structure/flora/bush/ausbushes/var3/fullgrass, @@ -56265,66 +41077,45 @@ /area/corsat/sigma/cafe) "rqo" = ( /obj/structure/bed/chair, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/rnr) "rrs" = ( /obj/structure/prop/almayer/computers/sensor_computer1{ name = "computer" }, -/turf/open/shuttle/escapepod{ - icon_state = "floor2" - }, +/turf/open/shuttle/escapepod/floor2, /area/corsat/theta/biodome/complex) "rrv" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/hangar/monorail/control) "rrE" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/sigma/hangar/security) "rrG" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/shuttle/dropship/flight/lz2{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/west, /area/corsat/landing/console2) "rrY" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/west, /area/corsat/sigma/hangar/security) "rtr" = ( /obj/structure/machinery/camera/autoname{ dir = 4; network = list("gamma") }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner/north, /area/corsat/gamma/cargo/disposal) "rtN" = ( /obj/structure/bed, /obj/item/bedsheet, /obj/effect/landmark/corpsespawner/scientist, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite/north, /area/corsat/gamma/medbay) "rtT" = ( /obj/structure/surface/table/almayer, @@ -56333,60 +41124,43 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purplewhitecorner" - }, +/turf/open/floor/corsat/purplewhitecorner/east, /area/corsat/omega/complex) "rtZ" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/rnr) "rur" = ( /obj/structure/noticeboard{ pixel_y = 30 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/north, /area/corsat/gamma/residential/west) "rut" = ( /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/rnr) "ruw" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/tech_supply, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/north, /area/corsat/sigma/south/engineering) "rvg" = ( /obj/structure/sign/safety/airlock{ pixel_y = 32 }, -/turf/open/floor/corsat{ - icon_state = "theta" - }, +/turf/open/floor/corsat/theta, /area/corsat/theta/airlock/west) "rvp" = ( /obj/effect/decal/warning_stripes{ icon_state = "SE-out" }, -/turf/open/floor/almayer/research/containment/corner_var1{ - icon_state = "containment_corner_variant_2" - }, +/turf/open/floor/almayer/research/containment/corner_var1/containment_corner_variant_2, /area/corsat/gamma/sigmaremote) "rvC" = ( /obj/structure/machinery/power/apc/high{ @@ -56394,33 +41168,22 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/east, /area/corsat/sigma/airlock/east/id) "rvD" = ( /obj/structure/machinery/camera/autoname{ dir = 8; network = list("sigma") }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/east, /area/corsat/sigma/dorms) "rvL" = ( -/turf/open/floor/corsat{ - icon_state = "darkgreen" - }, +/turf/open/floor/corsat/darkgreen, /area/corsat/gamma/rnr) "rwl" = ( /obj/structure/surface/table/reinforced, /obj/item/tool/pen/red, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/east, /area/corsat/gamma/sigmaremote) "rwo" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -56432,68 +41195,47 @@ dir = 1; icon_state = "platform_deco" }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "white" - }, +/turf/open/floor/corsat/white/west, /area/corsat/gamma/residential/east) "rwF" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "darkgreencorner" - }, +/turf/open/floor/corsat/darkgreencorner/north, /area/corsat/sigma/hangar) "rwK" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/east, /area/corsat/omega/hallways) "rxd" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/hangar/cargo) "rxk" = ( /obj/structure/closet/secure_closet/engineering_electrical{ req_access_txt = "102" }, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/southeast, /area/corsat/sigma/south/engineering) "rxD" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/south/security) "ryc" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/hangar/security) +"ryn" = ( +/obj/structure/machinery/fuelcell_recycler/full, +/turf/open/floor/corsat/yellow/north, +/area/corsat/gamma/engineering/core) "ryE" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/checkpoint) "ryR" = ( -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/airlock/east) "rzk" = ( -/turf/open/floor/corsat{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/corsat/red/northwest, /area/corsat/sigma/hangar/security) "rzy" = ( /obj/structure/flora/jungle/vines/light_1, @@ -56505,170 +41247,111 @@ name = "Maintainance"; req_one_access = null }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/south/engineering) "rAc" = ( /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/sigma/hangar/monorail) "rAm" = ( /obj/structure/machinery/camera/autoname{ dir = 8; network = list("sigma") }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "bluecorner" - }, +/turf/open/floor/corsat/bluecorner/east, /area/corsat/sigma/southeast) "rBf" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/security/cells) "rBX" = ( -/turf/open/floor/corsat{ - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey, /area/corsat/sigma/south/offices) "rCb" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner/north, /area/corsat/sigma/south/robotics) "rCd" = ( /obj/structure/closet/emcloset, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/east, /area/corsat/gamma/hangar/arrivals) "rCr" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/medbay) "rCA" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/sigma/hangar) "rCE" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/theta/biodome/hydroeast) "rCH" = ( -/turf/open/floor/corsat{ - icon_state = "purplewhitecorner" - }, +/turf/open/floor/corsat/purplewhitecorner, /area/corsat/gamma/sigmaremote) "rCO" = ( /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/northeast, /area/corsat/gamma/residential/west) "rDr" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/sigma/dorms) "rDF" = ( /obj/structure/machinery/camera/autoname{ dir = 1; network = list("omega") }, -/turf/open/floor/corsat{ - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey, /area/corsat/omega/offices) "rEq" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "darkgreen" - }, +/turf/open/floor/corsat/darkgreen/east, /area/corsat/gamma/residential) "rED" = ( /obj/structure/machinery/photocopier, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/biodome/virology) "rEG" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/sigma/south/complex) "rEX" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "bluecorner" - }, +/turf/open/floor/corsat/bluecorner/east, /area/corsat/omega/control) "rFf" = ( /obj/structure/bed/chair, /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/gamma/canteen) "rFm" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/omega/offices) "rFw" = ( /obj/structure/bed/chair{ dir = 1 }, /obj/effect/landmark/hunter_secondary, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/hallwaysouth) "rFC" = ( -/turf/open/floor/corsat{ - icon_state = "darkgreencorner" - }, +/turf/open/floor/corsat/darkgreencorner, /area/corsat/gamma/hangar/arrivals) "rFJ" = ( -/turf/open/floor{ - dir = 8; - icon_state = "carpet10-8" - }, +/turf/open/floor/carpet10_8/west, /area/corsat/omega/offices) "rFS" = ( -/turf/open/floor/plating{ - dir = 1; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/north, /area/corsat/omega/hangar) "rGb" = ( /obj/structure/prop/almayer/cannon_cables{ @@ -56679,53 +41362,36 @@ desc = "A bewildering tangle of machinery and pipes."; name = "coolant feed" }, -/turf/open/shuttle/escapepod{ - icon_state = "floor1" - }, +/turf/open/shuttle/escapepod/floor1, /area/corsat/theta/biodome/complex) "rGc" = ( /obj/structure/closet/wardrobe/genetics_white, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/northeast, /area/corsat/theta/biodome/complex) "rGn" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "whitecorner" - }, +/turf/open/floor/corsat/whitecorner, /area/corsat/gamma/residential/east) "rGu" = ( /obj/item/paper/crumpled, -/turf/open/floor/corsat{ - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite, /area/corsat/sigma/south/complex) "rGC" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/south/security) "rGH" = ( /obj/structure/closet/secure_closet/freezer/fridge, -/turf/open/floor/corsat{ - icon_state = "sterileplate" - }, +/turf/open/floor/corsat/sterileplate, /area/corsat/gamma/kitchen) "rHb" = ( -/turf/open/floor/corsat{ - icon_state = "red" - }, +/turf/open/floor/corsat/red, /area/corsat/omega/security) "rId" = ( /obj/structure/largecrate/random/barrel/green, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/omega/complex) "rJo" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -56735,71 +41401,49 @@ "rJu" = ( /obj/effect/landmark/corpsespawner/scientist, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/hangar/arrivals) "rKa" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/sigma/dorms) "rKo" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/sigma/hangar/office) "rKq" = ( -/turf/open/floor/corsat{ - icon_state = "bluecorner" - }, +/turf/open/floor/corsat/bluecorner, /area/corsat/sigma/hangar/monorail) "rKy" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/cargo) "rKG" = ( -/turf/open/floor/corsat{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/corsat/red/southwest, /area/corsat/sigma/hangar/checkpoint) "rKN" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhitecorner" - }, +/turf/open/floor/corsat/purplewhitecorner/north, /area/corsat/sigma/south/complex) "rLp" = ( /obj/structure/machinery/camera/autoname{ dir = 8; network = list("sigma") }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/north, /area/corsat/sigma/biodome) "rLw" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/computer/atmos_alert{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/corsat/red/southeast, /area/corsat/theta/airlock/west) "rLZ" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony{ @@ -56807,9 +41451,7 @@ name = "Maintainance"; req_one_access = null }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/omega/maint) "rMq" = ( /obj/effect/landmark/xeno_hive_spawn, @@ -56819,9 +41461,7 @@ "rMD" = ( /obj/structure/surface/table/almayer, /obj/item/tool/hand_labeler, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/biodome/complex) "rMR" = ( /obj/structure/surface/table/almayer, @@ -56829,9 +41469,7 @@ /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/gamma/biodome/virology) "rMU" = ( /obj/structure/foamed_metal, @@ -56839,37 +41477,25 @@ /area/corsat/sigma/dorms) "rMX" = ( /obj/structure/machinery/light, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "tcomms" - }, +/turf/open/floor/corsat/tcomms/southwest, /area/corsat/sigma/south/complex) "rNc" = ( /obj/structure/machinery/camera/autoname{ dir = 8; network = list("omega") }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/omega/hangar/security) "rOq" = ( /obj/structure/bed/sofa, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/east, /area/corsat/gamma/hangar/arrivals) "rOH" = ( /obj/structure/machinery/camera/autoname{ dir = 4; network = list("gamma") }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/north, /area/corsat/gamma/hangar/cargo) "rOP" = ( /obj/structure/window/reinforced, @@ -56877,47 +41503,32 @@ /obj/structure/machinery/computer/atmos_alert{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/sigma/hangar/office) "rOS" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/hangar) "rPI" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "bluecorner" - }, +/turf/open/floor/corsat/bluecorner/west, /area/corsat/omega/control) "rPZ" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/corsat/omega/hallways) "rQh" = ( /obj/effect/decal/cleanable/blood/oil, -/turf/open/mars_cave{ - icon_state = "mars_cave_23" - }, +/turf/open/mars_cave/mars_cave_23, /area/corsat/sigma/biodome/scrapyard) "rQD" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/north, /area/corsat/sigma/hangar/monorail/control) "rQQ" = ( /obj/item/weapon/gun/flamer, @@ -56926,18 +41537,13 @@ name = "specimen control cabinet"; req_access_txt = "103" }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/corsat/omega/hangar/security) "rQY" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/hangar/security) "rRh" = ( /obj/structure/surface/rack, @@ -56945,10 +41551,7 @@ /obj/item/ammo_magazine/revolver/cmb, /obj/item/ammo_magazine/revolver/cmb, /obj/item/ammo_magazine/revolver/cmb, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/corsat/red/southeast, /area/corsat/omega/hangar/security) "rRm" = ( /obj/structure/platform{ @@ -56956,10 +41559,7 @@ layer = 2.7 }, /obj/structure/platform, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "white" - }, +/turf/open/floor/corsat/white/southwest, /area/corsat/gamma/hallwaysouth) "rRR" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -56977,10 +41577,7 @@ /obj/item/clothing/gloves/black, /obj/item/clothing/suit/storage/snow_suit, /obj/item/clothing/suit/storage/snow_suit, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/gamma/airlock/control) "rSG" = ( /obj/structure/machinery/computer/cameras{ @@ -56990,23 +41587,14 @@ /turf/open/floor/wood, /area/corsat/gamma/administration) "rSP" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/omega/hangar) "rSR" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner/west, /area/corsat/sigma/airlock/control) "rTb" = ( /obj/effect/landmark/corpsespawner/scientist, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "darkgreen" - }, +/turf/open/floor/corsat/darkgreen/west, /area/corsat/sigma/hangar/monorail) "rTf" = ( /obj/structure/surface/table, @@ -57014,10 +41602,7 @@ dir = 4; layer = 2 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/gamma/residential/west) "rTj" = ( /obj/structure/flora/jungle/vines/light_1, @@ -57027,16 +41612,10 @@ /turf/open/gm/grass/grass1/weedable, /area/corsat/theta/biodome) "rTo" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "darkgreen" - }, +/turf/open/floor/corsat/darkgreen/north, /area/corsat/sigma/hangar/monorail) "rTw" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/gamma/airlock/south) "rTD" = ( /obj/structure/window/framed/corsat, @@ -57046,15 +41625,10 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/hangar/security) "rUd" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite/west, /area/corsat/gamma/medbay/lobby) "rUq" = ( /obj/structure/flora/jungle/vines/light_1, @@ -57074,181 +41648,121 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "cargo" - }, +/turf/open/floor/corsat/cargo, /area/corsat/omega/cargo) "rUQ" = ( /obj/structure/barricade/handrail{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "gamma" - }, +/turf/open/floor/corsat/gamma, /area/corsat/gamma/hallwaysouth) "rVh" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/alien/weeds/node, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/omega/complex) "rVK" = ( -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/gamma/medbay/morgue) "rVS" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "bluegreycorner" - }, +/turf/open/floor/corsat/bluegreycorner, /area/corsat/omega/offices) "rWh" = ( /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/sigma/hangar/security) "rWE" = ( /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/hallwaysouth) "rWG" = ( /obj/structure/largecrate/random/barrel/green, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/omega/maint) "rWM" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/west, /area/corsat/gamma/biodome/virology) "rWN" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/airlock/control) "rWY" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purplecorner" - }, +/turf/open/floor/corsat/purplecorner/east, /area/corsat/omega/airlocknorth) "rXj" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/corsat/gamma/rnr/arcade) "rXs" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan, /area/corsat/sigma/dorms) "rXB" = ( /obj/structure/filingcabinet/filingcabinet, -/turf/open/floor/corsat{ - icon_state = "purplewhitecorner" - }, +/turf/open/floor/corsat/purplewhitecorner, /area/corsat/omega/complex) "rXE" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/corsat/sigma/biodome) "rYj" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/hangar/monorail/control) "rYp" = ( /obj/structure/closet/radiation, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/east, /area/corsat/gamma/sigmaremote) "rYq" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/corsat/sigma/cafe) "rYB" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purplecorner" - }, +/turf/open/floor/corsat/purplecorner/east, /area/corsat/omega/hallways) "rZC" = ( -/turf/open/floor/corsat{ - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner, /area/corsat/sigma/south) "rZJ" = ( /obj/structure/machinery/disposal, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner/west, /area/corsat/gamma/engineering) "rZK" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/hangar/checkpoint) "rZR" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/north, /area/corsat/sigma/biodome) "rZU" = ( -/turf/open/floor/corsat{ - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner, /area/corsat/gamma/cargo) "sam" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "whitetancorner" - }, +/turf/open/floor/corsat/whitetancorner/east, /area/corsat/gamma/residential/researcher) "sap" = ( /obj/effect/landmark/lv624/xeno_tunnel, @@ -57257,26 +41771,19 @@ "saV" = ( /obj/structure/surface/table, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/sigma/dorms) "sba" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/omega/offices) "sbs" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/southeast/datamaint) "sbw" = ( /obj/structure/bed/chair/office/light{ @@ -57285,45 +41792,28 @@ /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/gamma/residential/west) "sbF" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/microwave, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/east, /area/corsat/omega/complex) "sbJ" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/east, /area/corsat/omega/cargo) "sbN" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner/west, /area/corsat/gamma/engineering) "scj" = ( /obj/structure/window/reinforced, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/north, /area/corsat/gamma/biodome/toxins) "scH" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/biodome/complex) "sdm" = ( /obj/structure/machinery/door/poddoor/two_tile/four_tile/vertical/opened{ @@ -57335,9 +41825,7 @@ name = "Gamma Lockdown"; use_power = 0 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/corsat/gamma/airlock/control) "sdu" = ( /obj/structure/surface/table/woodentable, @@ -57348,15 +41836,11 @@ /area/corsat/gamma/residential/east) "sdv" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/airlock/control) "sdR" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/biodome/complex) "sem" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -57369,18 +41853,13 @@ name = "Security Shutters"; use_power = 0 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/hangar/security) "seB" = ( /obj/structure/bed/chair/office/light{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/gamma/airlock/south) "sfx" = ( /obj/structure/pipes/vents/pump{ @@ -57393,48 +41872,45 @@ name = "\improper Baths" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/residential/showers) "sga" = ( /obj/effect/landmark/hunter_primary, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "darkgreen" - }, +/turf/open/floor/corsat/darkgreen/east, /area/corsat/gamma/hangar/arrivals) "sgl" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/medbay/lobby) "sgn" = ( -/turf/open/floor/corsat{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/corsat/red/northwest, /area/corsat/gamma/airlock/control) "sgu" = ( /obj/structure/surface/table/reinforced, /obj/item/device/flashlight/lamp, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/corsat/omega/hangar/security) +"sgN" = ( +/obj/structure/machinery/power/reactor/colony{ + desc = "A high-tech thermoelectric generator fueled by a superheated uranium rod."; + name = "\improper G-17 Thermoelectric Generator" + }, +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 4; + icon_state = "0-8"; + layer = 2.1 + }, +/turf/open/floor/corsat/plate, +/area/corsat/sigma/southeast/generator) "sgX" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/gamma/hangar/checkpoint) "shg" = ( /obj/structure/machinery/door/airlock/almayer/medical/glass/colony{ @@ -57443,47 +41919,33 @@ req_one_access = null }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/gamma/residential/west) "shq" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/blood/splatter, /obj/effect/landmark/corpsespawner/doctor, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/medbay/lobby) "shW" = ( /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/hangar) "sid" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "whitetancorner" - }, +/turf/open/floor/corsat/whitetancorner/north, /area/corsat/gamma/residential/west) "sii" = ( /obj/structure/surface/table/almayer, -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/gamma/biodome/complex) "sip" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/almayer/research/containment/floor2{ - dir = 1 - }, +/turf/open/floor/almayer/research/containment/floor2/north, /area/corsat/sigma/south/complex) "siu" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -57493,9 +41955,7 @@ /area/corsat/theta/biodome) "siU" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "whitetancorner" - }, +/turf/open/floor/corsat/whitetancorner, /area/corsat/gamma/residential/west) "sjr" = ( /obj/structure/fence, @@ -57503,9 +41963,7 @@ /turf/open/auto_turf/snow/layer3, /area/corsat/gamma/biodome) "sjs" = ( -/turf/open/floor/corsat{ - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner, /area/corsat/gamma/residential) "sjw" = ( /obj/structure/machinery/door_control{ @@ -57515,79 +41973,53 @@ use_power = 0 }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "purplewhitecorner" - }, +/turf/open/floor/corsat/purplewhitecorner, /area/corsat/gamma/biodome/virology) "sjx" = ( /obj/structure/bed/chair/office/light{ dir = 4 }, /obj/effect/landmark/hunter_secondary, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/gamma/residential/west) "sjK" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/medbay/morgue) "sjL" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/corsat/sigma/biodome/gunrange) "sjR" = ( /obj/structure/bed/chair/comfy{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "darkgreencorner" - }, +/turf/open/floor/corsat/darkgreencorner/west, /area/corsat/gamma/hangar/monorail) "skc" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "purple" - }, +/turf/open/floor/corsat/purple/west, /area/corsat/sigma/south) "skf" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/gamma/airlock/south/id) "skk" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/theta/airlock/control) "skp" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/blood/xtracks, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/hangar/security) "skK" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/sigma/hangar/security) "skS" = ( /obj/item/toy/spinningtoy{ @@ -57599,32 +42031,22 @@ /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/sigmaremote) "slL" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22" }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "darkgreencorner" - }, +/turf/open/floor/corsat/darkgreencorner/west, /area/corsat/gamma/foyer) "slU" = ( /obj/structure/flora/pottedplant, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/east, /area/corsat/gamma/biodome/virology) "smk" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - icon_state = "bluegreycorner" - }, +/turf/open/floor/corsat/bluegreycorner, /area/corsat/sigma/hangar/office) "smP" = ( /obj/structure/flora/bush/ausbushes/var3/sunnybush, @@ -57632,44 +42054,31 @@ /area/corsat/theta/biodome) "snc" = ( /obj/structure/morgue, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/medbay/morgue) "snA" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/hallwaysouth) "snG" = ( /obj/structure/machinery/light{ dir = 4 }, /obj/structure/machinery/vending/coffee, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/east, /area/corsat/gamma/biodome/virology) "snO" = ( /obj/structure/closet/emcloset, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "darkgreen" - }, +/turf/open/floor/corsat/darkgreen/north, /area/corsat/sigma/hangar) "snP" = ( /obj/structure/platform{ density = 0; icon_state = "platform_deco" }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "white" - }, +/turf/open/floor/corsat/white/east, /area/corsat/gamma/hallwaysouth) "snS" = ( /mob/living/carbon/human/yiren, @@ -57679,40 +42088,26 @@ /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/sigma/dorms) "snW" = ( /obj/structure/closet/firecloset, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/corsat/gamma/sigmaremote) "soi" = ( /obj/structure/machinery/camera/autoname{ network = list("gamma") }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/corsat/gamma/foyer) "sor" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "whitetancorner" - }, +/turf/open/floor/corsat/whitetancorner/north, /area/corsat/sigma/dorms) "sos" = ( /obj/structure/surface/table/almayer, /obj/item/explosive/grenade/high_explosive/training, /obj/item/explosive/grenade/high_explosive/training, -/turf/open/floor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/asteroidplating, /area/corsat/sigma/biodome/gunrange) "spD" = ( /obj/structure/surface/table/reinforced, @@ -57721,25 +42116,19 @@ name = "Security Shutters"; use_power = 0 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/hangar/security) "spN" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/hangar/security) "spP" = ( /obj/structure/machinery/cm_vending/sorted/medical/no_access{ req_access_txt = "100" }, -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/gamma/biodome/virology) "spU" = ( /obj/structure/flora/bush/ausbushes/palebush, @@ -57756,24 +42145,16 @@ /turf/open/gm/dirtgrassborder/south, /area/corsat/theta/biodome) "sqY" = ( -/turf/open/floor/corsat{ - dir = 5; - icon_state = "darkgreen" - }, +/turf/open/floor/corsat/darkgreen/northeast, /area/corsat/gamma/hangar/arrivals) "srY" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "purplewhitecorner" - }, +/turf/open/floor/corsat/purplewhitecorner/west, /area/corsat/theta/biodome/complex) "ssh" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/biodome/virology) "ssw" = ( /obj/structure/bed/sofa/south/white/left, @@ -57784,17 +42165,11 @@ dir = 1 }, /obj/structure/machinery/autolathe, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/northeast, /area/corsat/sigma/south/complex) "stA" = ( /obj/structure/machinery/photocopier, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/corsat/red/northeast, /area/corsat/sigma/hangar/security) "suf" = ( /obj/structure/flora/bush/ausbushes/var3/fernybush, @@ -57804,78 +42179,51 @@ /turf/open/gm/grass/grass1/weedable, /area/corsat/theta/biodome) "sum" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/east, /area/corsat/gamma/biodome/virology) "sur" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/theta/biodome/complex) "svn" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/sigma/dorms) "svB" = ( /obj/structure/bed/sofa/vert/white/top, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/gamma/residential/west) "svD" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "greenwhitecorner" - }, +/turf/open/floor/corsat/greenwhitecorner/north, /area/corsat/gamma/medbay) "svH" = ( /obj/structure/pipes/unary/freezer, -/turf/open/shuttle/escapepod{ - icon_state = "floor4" - }, +/turf/open/shuttle/escapepod/floor4, /area/corsat/theta/biodome/complex) "svU" = ( /obj/structure/surface/rack, /obj/item/tool/soap, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "whitebluefull" - }, +/turf/open/floor/corsat/whitebluefull/southwest, /area/corsat/gamma/residential/showers) "svX" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/east, /area/corsat/gamma/hangar/cargo) "swf" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner/west, /area/corsat/sigma/south/robotics) "swY" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/emails{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey, /area/corsat/sigma/south/offices) "sxa" = ( /obj/structure/bed/chair/office/light{ @@ -57884,33 +42232,22 @@ /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/gamma/residential/west) "sxB" = ( /obj/structure/machinery/cm_vending/sorted/medical/wall_med/limited{ name = "Emergency NanoMed"; pixel_y = 30 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite/north, /area/corsat/gamma/medbay/lobby) "sxI" = ( /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "darkgreen" - }, +/turf/open/floor/corsat/darkgreen/west, /area/corsat/gamma/hangar/arrivals) "sxJ" = ( /obj/structure/closet/firecloset, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/hangar/arrivals) "sxO" = ( /obj/structure/machinery/door/poddoor/shutters/almayer/open{ @@ -57918,31 +42255,21 @@ id = "OmegaOffice"; name = "Privacy Shutters" }, -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/omega/offices) "sxU" = ( /obj/structure/prop/dam/crane/cargo, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "plating_striped" - }, +/turf/open/floor/almayer/plating_striped/north, /area/corsat/gamma/sigmaremote) "syk" = ( /obj/structure/surface/rack, /obj/item/storage/bag/trash, /obj/item/storage/bag/trash, /obj/item/storage/bag/trash, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/biodome/complex) "syG" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner/west, /area/corsat/sigma/south/engineering) "sAj" = ( /obj/structure/machinery/camera/autoname{ @@ -57956,38 +42283,26 @@ /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/gamma/residential/west) "sBH" = ( /obj/effect/decal/cleanable/blood/splatter, /obj/effect/landmark/corpsespawner/scientist, -/turf/open/shuttle/dropship{ - icon_state = "floor8" - }, +/turf/open/shuttle/dropship/light_grey_single_wide_left_to_right, /area/corsat/gamma/hangar/monorail/railcart) "sBV" = ( /obj/structure/filingcabinet/filingcabinet, -/turf/open/floor/corsat{ - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite, /area/corsat/sigma/south/complex) "sCf" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/gamma/residential/researcher) "sCl" = ( /obj/structure/coatrack, -/turf/open/floor/corsat{ - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan, /area/corsat/gamma/residential/west) "sCv" = ( /obj/structure/window/framed/corsat/security, @@ -57999,10 +42314,7 @@ /turf/open/floor/plating, /area/corsat/gamma/airlock/south/id) "sCZ" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/gamma/security) "sDi" = ( /obj/structure/pipes/vents/pump, @@ -58011,69 +42323,49 @@ "sDx" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/hallwaysouth) "sDV" = ( /obj/structure/machinery/camera/autoname{ dir = 8; network = list("gamma") }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "darkgreen" - }, +/turf/open/floor/corsat/darkgreen/east, /area/corsat/gamma/residential) "sEb" = ( /obj/effect/decal/warning_stripes{ icon_state = "NW-out" }, -/turf/open/floor/almayer/research/containment/corner{ - dir = 1 - }, +/turf/open/floor/almayer/research/containment/corner/north, /area/corsat/gamma/sigmaremote) "sEc" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/biodome/complex) "sEo" = ( /obj/structure/machinery/camera/autoname{ dir = 8; network = list("gamma") }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/gamma/hangar/checkpoint) "sFd" = ( /obj/structure/flora/pottedplant, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/southeast, /area/corsat/gamma/hangar/flightcontrol) "sFD" = ( /obj/structure/closet/l3closet/general, /obj/structure/machinery/light, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/biodome/virology) "sFF" = ( /obj/effect/landmark/queen_spawn, /turf/open/ice, /area/corsat/gamma/biodome) "sFI" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "whitecorner" - }, +/turf/open/floor/corsat/whitecorner/west, /area/corsat/gamma/hallwaysouth) "sGB" = ( /obj/effect/decal/cleanable/blood/splatter, @@ -58090,100 +42382,69 @@ req_access_txt = "106" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/gamma/administration) "sHB" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_10" }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/west, /area/corsat/gamma/biodome/complex) "sHR" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "sterileplate" - }, +/turf/open/floor/corsat/sterileplate, /area/corsat/gamma/kitchen) "sHX" = ( /obj/structure/surface/table, /obj/structure/machinery/computer/emails{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/gamma/residential/west) "sIm" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/computer/cameras{ network = list("theta") }, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/corsat/red/northeast, /area/corsat/theta/airlock/west) "sIs" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/hangar/arrivals) "sIw" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner/north, /area/corsat/sigma/cargo) "sIC" = ( /obj/structure/surface/table, /obj/item/toy/deck/uno, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/omega/hallways) "sIL" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "whitecorner" - }, +/turf/open/floor/corsat/whitecorner/west, /area/corsat/gamma/residential/east) "sIR" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/airlock/south/id) "sIV" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22" }, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/southeast, /area/corsat/sigma/cargo) "sJe" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "whitetancorner" - }, +/turf/open/floor/corsat/whitetancorner/east, /area/corsat/sigma/dorms) "sJg" = ( /turf/closed/shuttle/ert{ @@ -58191,90 +42452,62 @@ }, /area/prison/hangar_storage/research/shuttle) "sJk" = ( -/turf/open/floor/plating{ - dir = 8; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/west, /area/corsat/omega/hangar) "sJr" = ( /obj/structure/bed/chair/comfy/black, -/turf/open/floor/corsat{ - icon_state = "red" - }, +/turf/open/floor/corsat/red, /area/corsat/sigma/airlock/east/id) "sKa" = ( /obj/structure/closet/emcloset, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/northwest, /area/corsat/gamma/sigmaremote) "sKQ" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/sigma/hangar/security) "sKZ" = ( /obj/structure/machinery/door/poddoor/two_tile/four_tile{ id = "ThetaNorthN"; name = "Theta North Airlock" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/corsat/theta/airlock/control) "sLw" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_21" }, -/turf/open/floor/corsat{ - icon_state = "gamma" - }, +/turf/open/floor/corsat/gamma, /area/corsat/gamma/residential) "sLF" = ( -/turf/open/floor/corsat{ - icon_state = "blue" - }, +/turf/open/floor/corsat/blue, /area/corsat/sigma/southeast/datalab) "sMb" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/corsat/sigma/biodome) "sMO" = ( /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "purple" - }, +/turf/open/floor/corsat/purple/northeast, /area/corsat/gamma/biodome/complex) "sMW" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/north, /area/corsat/gamma/residential/west) "sNo" = ( /obj/structure/machinery/light{ dir = 4 }, /obj/structure/closet/radiation, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/east, /area/corsat/gamma/sigmaremote) "sNE" = ( /obj/structure/morgue/crematorium{ @@ -58286,99 +42519,68 @@ pixel_y = 28; req_one_access_txt = "2;8;19" }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/corsat/green/north, /area/corsat/gamma/medbay/morgue) "sNG" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/engineering/core) "sNO" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/corsat/sigma/cafe) "sNU" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/hangar/security) "sOq" = ( /obj/effect/decal/cleanable/blood/splatter, /obj/structure/platform{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "white" - }, +/turf/open/floor/corsat/white/north, /area/corsat/sigma/south) "sOt" = ( /obj/structure/machinery/camera/autoname{ dir = 1; network = list("gamma") }, -/turf/open/floor/corsat{ - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite, /area/corsat/gamma/medbay) "sON" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "bluegreycorner" - }, +/turf/open/floor/corsat/bluegreycorner/north, /area/corsat/omega/offices) "sPx" = ( /obj/structure/surface/table/reinforced, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/gamma/hangar/monorail/control) "sPB" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/omega/hallways) "sPI" = ( /obj/structure/machinery/camera/autoname{ network = list("gamma") }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/corsat/green/north, /area/corsat/gamma/hallwaysouth) "sQb" = ( /obj/structure/bed, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/gamma/security/cells) "sQz" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/omega/offices) "sQI" = ( /obj/structure/platform{ @@ -58386,10 +42588,7 @@ layer = 2.7 }, /obj/structure/stairs, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "white" - }, +/turf/open/floor/corsat/white/northwest, /area/corsat/gamma/residential/east) "sRe" = ( /obj/structure/surface/table/almayer, @@ -58399,52 +42598,33 @@ pixel_x = -5; use_power = 0 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/airlock/control) "sRo" = ( /obj/effect/landmark/corpsespawner/scientist, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/residential/east) "sRx" = ( -/turf/open/floor/corsat{ - dir = 5; - icon_state = "white" - }, +/turf/open/floor/corsat/white/northeast, /area/corsat/gamma/residential) "sRI" = ( /obj/structure/surface/table/reinforced, /obj/item/clipboard, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/north, /area/corsat/sigma/south/complex) "sRK" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/computer/secure_data{ req_one_access_txt = "201;104" }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/sigma/hangar/security) "sSg" = ( -/turf/open/floor/corsat{ - dir = 5; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/northeast, /area/corsat/gamma/biodome/toxins) "sSZ" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "bluecorner" - }, +/turf/open/floor/corsat/bluecorner/east, /area/corsat/omega/hallways) "sTq" = ( /obj/structure/flora/jungle/planttop1, @@ -58452,18 +42632,12 @@ /turf/open/gm/dirt, /area/corsat/theta/biodome) "sTr" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/west, /area/corsat/omega/security) "sTt" = ( /obj/structure/surface/table/reinforced, /obj/item/device/assembly/igniter, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/east, /area/corsat/sigma/south/complex) "sTD" = ( /obj/structure/surface/table/woodentable, @@ -58473,31 +42647,20 @@ /area/corsat/gamma/residential/east) "sTH" = ( /obj/structure/machinery/chem_master, -/turf/open/floor/corsat{ - icon_state = "purplewhitecorner" - }, +/turf/open/floor/corsat/purplewhitecorner, /area/corsat/gamma/biodome/toxins) "sTN" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "bluegreycorner" - }, +/turf/open/floor/corsat/bluegreycorner/west, /area/corsat/gamma/hangar/flightcontrol) "sTW" = ( /obj/structure/surface/table/almayer, /obj/item/clipboard, /obj/item/paper, /obj/item/tool/pen/blue, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/east, /area/corsat/gamma/biodome/complex) "sUR" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner/east, /area/corsat/gamma/engineering/atmos) "sVk" = ( /turf/open/floor/corsat, @@ -58511,43 +42674,32 @@ dir = 4 }, /obj/structure/barricade/handrail, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/hallwaysouth) "sVt" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/cargo) "sVA" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor/almayer/research/containment/floor2{ - dir = 8 - }, +/turf/open/floor/almayer/research/containment/floor2/west, /area/corsat/gamma/sigmaremote) "sVO" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/north, /area/corsat/theta/airlock/control) "sWd" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/southeast/generator) "sWP" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, @@ -58565,9 +42717,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/airlock/control) "sXl" = ( /turf/closed/wall/r_wall/biodome/biodome_unmeltable, @@ -58575,41 +42725,29 @@ "sXG" = ( /obj/structure/surface/table/almayer, /obj/item/clothing/gloves/latex, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "purplewhitecorner" - }, +/turf/open/floor/corsat/purplewhitecorner/west, /area/corsat/gamma/biodome/complex) "sYc" = ( /obj/structure/surface/table/reinforced, /obj/item/device/flashlight/lamp, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/sigmaremote) "sYh" = ( /obj/structure/surface/table/almayer, /obj/item/clipboard, /obj/item/paper/Toxin, /obj/item/tool/pen/blue, -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/gamma/biodome/toxins) "sYk" = ( /obj/structure/stairs, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "white" - }, +/turf/open/floor/corsat/white/north, /area/corsat/sigma/south) "sZc" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/biodome/virology) "sZg" = ( /obj/structure/flora/bush/ausbushes/var3/leafybush, @@ -58619,87 +42757,54 @@ /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/corsat/sigma/biodome) "tae" = ( /obj/structure/machinery/r_n_d/circuit_imprinter, /obj/structure/machinery/light, -/turf/open/floor/corsat{ - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow, /area/corsat/sigma/south/robotics) "tav" = ( /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/engineering/core) "taF" = ( /obj/structure/surface/table/reinforced, -/turf/open/floor/corsat{ - icon_state = "red" - }, +/turf/open/floor/corsat/red, /area/corsat/omega/hangar/security) "taL" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "bluecorner" - }, +/turf/open/floor/corsat/bluecorner/east, /area/corsat/theta/airlock/control) "taO" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/north, /area/corsat/omega/hangar/office) "taQ" = ( /obj/structure/largecrate/random/barrel, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/southeast, /area/corsat/gamma/residential/maint) "taT" = ( /obj/effect/landmark/hunter_primary, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/cargo) "taX" = ( -/turf/open/floor/corsat{ - dir = 10; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/southwest, /area/corsat/gamma/engineering) "taY" = ( -/turf/open/floor/corsat{ - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite, /area/corsat/gamma/biodome/toxins) "tbc" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/west, /area/corsat/sigma/south/complex) "tbd" = ( /obj/structure/surface/rack, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/corsat/red/southwest, /area/corsat/omega/hangar/security) "tbm" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/corsat/sigma/biodome/gunrange) "tbY" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ @@ -58709,33 +42814,22 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/gamma/residential/west) "tcF" = ( /obj/effect/landmark/corpsespawner/doctor, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/gamma/medbay/surgery) "tdi" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/gamma/residential/west) "tdp" = ( /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/west, /area/corsat/gamma/residential/west) "tdH" = ( /obj/structure/machinery/door/airlock/almayer/research/glass/colony{ @@ -58745,17 +42839,12 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/theta/biodome/complex) "teZ" = ( /obj/structure/surface/table/almayer, /obj/item/device/flashlight/lamp, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/southwest, /area/corsat/sigma/hangar/office) "tfi" = ( /obj/structure/barricade/handrail{ @@ -58764,9 +42853,7 @@ /obj/structure/barricade/handrail{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/hallwaysouth) "tfu" = ( /obj/structure/flora/bush/ausbushes/var3/sunnybush, @@ -58774,49 +42861,34 @@ /area/corsat/theta/biodome) "tfz" = ( /obj/structure/surface/table/almayer, -/turf/open/floor/corsat{ - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite, /area/corsat/theta/biodome/complex) "tfC" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "darkgreencorner" - }, +/turf/open/floor/corsat/darkgreencorner/west, /area/corsat/gamma/hallwaysouth) "tfF" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/airlock/control) "tfP" = ( /obj/structure/surface/table/almayer, /obj/item/reagent_container/food/condiment/saltshaker, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/northeast, /area/corsat/theta/biodome/complex) "tfY" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "whitebluefull" - }, +/turf/open/floor/corsat/whitebluefull/southwest, /area/corsat/gamma/residential/showers) "tgE" = ( /obj/structure/machinery/camera/autoname{ dir = 1; network = list("omega") }, -/turf/open/floor/corsat{ - icon_state = "purplewhitecorner" - }, +/turf/open/floor/corsat/purplewhitecorner, /area/corsat/omega/complex) "tgJ" = ( /obj/structure/pipes/vents/pump{ @@ -58825,64 +42897,37 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "white" - }, +/turf/open/floor/corsat/white/east, /area/corsat/gamma/residential/east) "thb" = ( -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/freezer) -"thp" = ( -/obj/structure/surface/rack, -/obj/item/circuitboard/mecha/ripley/peripherals, -/obj/item/circuitboard/mecha/ripley/peripherals, -/turf/open/floor/corsat{ - icon_state = "yellow" - }, -/area/corsat/sigma/south/robotics) "thv" = ( /obj/structure/machinery/power/apc/high{ dir = 1; pixel_y = 24; start_charge = 0 }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "whitebluefull" - }, +/turf/open/floor/corsat/whitebluefull/southwest, /area/corsat/gamma/residential/showers) "tja" = ( -/turf/open/floor/corsat{ - icon_state = "purplewhitecorner" - }, +/turf/open/floor/corsat/purplewhitecorner, /area/corsat/sigma/south/complex) "tjf" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "white" - }, +/turf/open/floor/corsat/white/west, /area/corsat/gamma/residential/east) "tjQ" = ( /obj/structure/surface/rack, /obj/item/storage/firstaid/rad, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/northwest, /area/corsat/gamma/sigmaremote) "tjT" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/east, /area/corsat/theta/biodome/complex) "tkO" = ( /obj/structure/window/framed/corsat/hull, @@ -58895,20 +42940,14 @@ /turf/open/ice, /area/corsat/gamma/biodome) "tlD" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/corsat/theta/airlock/control) "tlP" = ( /obj/structure/platform{ dir = 4; layer = 2.7 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "white" - }, +/turf/open/floor/corsat/white/east, /area/corsat/sigma/south) "tlX" = ( /obj/structure/closet/secure_closet/security_empty, @@ -58919,92 +42958,57 @@ /obj/item/ammo_magazine/pistol/mod88, /obj/item/storage/pouch/general/medium, /obj/item/storage/pouch/pistol, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/west, /area/corsat/omega/hangar/security) "tml" = ( /obj/structure/bed/chair/office/light{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/north, /area/corsat/gamma/biodome/complex) "tmv" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/north, /area/corsat/sigma/north) "tnS" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/station_alert{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/east, /area/corsat/gamma/engineering/atmos) "toa" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/gamma/foyer) "toi" = ( /obj/structure/reagent_dispensers/water_cooler, -/turf/open/floor/corsat{ - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey, /area/corsat/omega/offices) "ton" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/east, /area/corsat/sigma/hangar/monorail) "tov" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "darkgreencorner" - }, +/turf/open/floor/corsat/darkgreencorner/east, /area/corsat/sigma/hangar) "toC" = ( /obj/structure/bed/nest, /obj/effect/landmark/corpsespawner/doctor, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/omega/biodome) "toG" = ( /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/engineering) "toJ" = ( -/turf/open/floor/corsat{ - dir = 5; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/northeast, /area/corsat/sigma/southeast/datalab) "toL" = ( /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/freezer) "tpz" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite/west, /area/corsat/gamma/medbay) "tpA" = ( /obj/structure/machinery/power/apc/high{ @@ -59014,9 +43018,7 @@ }, /obj/structure/surface/table/almayer, /obj/item/storage/fancy/cigarettes/lucky_strikes, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/sigma/hangar/office) "tpF" = ( /obj/structure/flora/jungle/vines/heavy, @@ -59026,23 +43028,16 @@ /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "whitebluefull" - }, +/turf/open/floor/corsat/whitebluefull/southwest, /area/corsat/sigma/laundry) "tpM" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/south) "tpW" = ( -/turf/open/floor/corsat{ - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite, /area/corsat/gamma/sigmaremote) "tqb" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony{ @@ -59056,44 +43051,29 @@ /obj/structure/surface/table/almayer, /obj/item/tool/surgery/scalpel, /obj/item/tool/surgery/circular_saw, -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/theta/biodome/complex) "trV" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/medbay) "tsb" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "darkgreencorner" - }, +/turf/open/floor/corsat/darkgreencorner/east, /area/corsat/sigma/north) "tsA" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "bluecorner" - }, +/turf/open/floor/corsat/bluecorner, /area/corsat/omega/control) "tta" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/sigma/airlock/control) "ttB" = ( /obj/structure/surface/table, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/north, /area/corsat/gamma/residential/west) "ttJ" = ( /obj/structure/machinery/power/apc/high{ @@ -59101,31 +43081,23 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/hallwaysouth) "ttK" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/sigma/hangar/arrivals) "tuo" = ( /obj/effect/landmark/corpsespawner/pmc, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/checkpoint) "tuu" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/theta/airlock/control) "tuB" = ( /obj/structure/surface/rack, @@ -59136,9 +43108,7 @@ /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/omega/hangar/security) "tvf" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -59150,10 +43120,7 @@ /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/north, /area/corsat/theta/airlock/control) "tvO" = ( /obj/structure/machinery/power/apc/high{ @@ -59161,16 +43128,11 @@ pixel_x = 24; start_charge = 0 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "greencorner" - }, +/turf/open/floor/corsat/greencorner/east, /area/corsat/gamma/medbay/morgue) "tvW" = ( /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/sigma/south/offices) "twm" = ( /obj/structure/bed/chair{ @@ -59179,9 +43141,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/security) "twS" = ( /obj/structure/flora/jungle/vines/heavy, @@ -59197,61 +43157,40 @@ dir = 4 }, /obj/structure/window/reinforced, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/southeast/datalab) "txB" = ( /obj/structure/bed/chair/office/light{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/theta/biodome/complex) "txK" = ( /obj/structure/surface/table/almayer, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/west, /area/corsat/sigma/southeast/datalab) "tyb" = ( /obj/structure/surface/table/almayer, /obj/item/clipboard, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/west, /area/corsat/sigma/south/robotics) "tyv" = ( -/turf/open/floor/plating{ - dir = 9; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/northwest, /area/corsat/omega/hangar) "tzz" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purplecorner" - }, +/turf/open/floor/corsat/purplecorner/east, /area/corsat/gamma/biodome/complex) "tzF" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/southeast/datalab) "tzX" = ( /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/corsat/red/southeast, /area/corsat/sigma/hangar/security) "tzY" = ( /obj/structure/pipes/standard/manifold/hidden/green{ @@ -59267,56 +43206,37 @@ /turf/open/gm/grass/grass1/weedable, /area/corsat/theta/biodome) "tBh" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "darkgreencorner" - }, +/turf/open/floor/corsat/darkgreencorner/east, /area/corsat/gamma/hangar/monorail) "tBG" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/hangar/id) "tBI" = ( /obj/structure/surface/table/almayer, /obj/item/circuitboard/robot_module/surgeon, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/east, /area/corsat/sigma/south/robotics) "tBT" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/sigma/hangar/checkpoint) "tCi" = ( /obj/structure/surface/rack, /obj/item/tool/weldpack, /obj/item/tool/weldingtool, /obj/item/clothing/head/welding, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/northeast, /area/corsat/gamma/engineering) "tCn" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/security) "tCs" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner/east, /area/corsat/sigma/north) "tCu" = ( /turf/closed/shuttle/ert{ @@ -59324,44 +43244,30 @@ }, /area/prison/hangar_storage/research/shuttle) "tCH" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "purplewhitecorner" - }, +/turf/open/floor/corsat/purplewhitecorner/west, /area/corsat/theta/biodome/hydroeast) "tCI" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "whitetancorner" - }, +/turf/open/floor/corsat/whitetancorner/west, /area/corsat/sigma/dorms) "tDc" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/gamma/residential/researcher) "tDf" = ( /obj/structure/machinery/disposal, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "darkgreen" - }, +/turf/open/floor/corsat/darkgreen/southeast, /area/corsat/gamma/residential) "tDt" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/hangar/checkpoint) "tDK" = ( /obj/structure/flora/jungle/vines/light_1, @@ -59372,42 +43278,28 @@ dir = 4 }, /obj/structure/window/reinforced, -/turf/open/floor/corsat{ - icon_state = "darkgreen" - }, +/turf/open/floor/corsat/darkgreen, /area/corsat/gamma/foyer) "tEm" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/corsat/gamma/airlock/control) "tEJ" = ( -/turf/open/floor/corsat{ - icon_state = "gamma" - }, +/turf/open/floor/corsat/gamma, /area/corsat/omega/hallways) "tFp" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "green" - }, +/turf/open/floor/corsat/green/west, /area/corsat/gamma/hallwaysouth) "tFs" = ( /obj/structure/surface/table/almayer, /obj/item/weapon/gun/pistol/mod88, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/omega/security) "tFv" = ( /obj/effect/landmark/hunter_secondary, -/turf/open/floor/corsat{ - icon_state = "sterileplate" - }, +/turf/open/floor/corsat/sterileplate, /area/corsat/gamma/kitchen) "tFG" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -59422,18 +43314,13 @@ "tGr" = ( /obj/effect/landmark/corpsespawner/scientist, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/sigma/south/complex) "tGG" = ( /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite/southeast, /area/corsat/gamma/medbay/lobby) "tGV" = ( /obj/structure/flora/bush/ausbushes/lavendergrass, @@ -59450,19 +43337,13 @@ /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purple" - }, +/turf/open/floor/corsat/purple/east, /area/corsat/gamma/biodome/complex) "tHR" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "purple" - }, +/turf/open/floor/corsat/purple/west, /area/corsat/sigma/south) "tIk" = ( /turf/closed/wall/resin/membrane, @@ -59474,16 +43355,11 @@ name = "Security Hub"; req_access_txt = "101" }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/omega/security) "tIP" = ( /obj/structure/stairs, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/west, /area/corsat/gamma/residential/west) "tJf" = ( /obj/structure/flora/bush/ausbushes/var3/ywflowers, @@ -59491,17 +43367,13 @@ /area/corsat/theta/biodome) "tJs" = ( /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/southeast/datalab) "tJv" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/sigma/south/offices) "tJA" = ( /obj/structure/closet/crate/trashcart, @@ -59509,80 +43381,53 @@ /area/corsat/gamma/sigmaremote) "tJY" = ( /obj/structure/machinery/vending/hydronutrients, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/north, /area/corsat/theta/biodome/hydroeast) "tKy" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "purplewhitecorner" - }, +/turf/open/floor/corsat/purplewhitecorner/west, /area/corsat/gamma/sigmaremote) "tKI" = ( /obj/structure/machinery/smartfridge, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/southwest, /area/corsat/theta/biodome/complex) "tLa" = ( -/turf/open/floor/corsat{ - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner, /area/corsat/sigma/hangar) "tLr" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "tcomms" - }, +/turf/open/floor/almayer/tcomms, /area/corsat/sigma/southeast/telecomm) "tLz" = ( /obj/structure/machinery/camera/autoname{ dir = 1; network = list("gamma") }, -/turf/open/floor/corsat{ - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan, /area/corsat/gamma/residential/west) "tLF" = ( -/turf/open/floor/corsat{ - icon_state = "purplecorner" - }, +/turf/open/floor/corsat/purplecorner, /area/corsat/omega/hallways) "tLR" = ( /obj/structure/surface/table/almayer, /obj/item/storage/fancy/cigarettes/lucky_strikes, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/omega/security) "tMq" = ( -/turf/open/floor/corsat{ - icon_state = "bluecorner" - }, +/turf/open/floor/corsat/bluecorner, /area/corsat/sigma/airlock/control) "tMG" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/surface/table/reinforced, /obj/item/folder/black_random, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/sigmaremote) "tMX" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/corsat/sigma/biodome) "tNp" = ( /obj/structure/flora/jungle/vines/light_1, @@ -59596,59 +43441,39 @@ dir = 8; network = list("omega") }, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/corsat/red/southeast, /area/corsat/theta/airlock/west/id) "tNS" = ( /obj/structure/bed/chair/office/light, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/northwest, /area/corsat/gamma/residential/west) "tNT" = ( /obj/structure/surface/table, /obj/structure/machinery/computer/emails{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/north, /area/corsat/gamma/residential/west) "tOa" = ( /obj/structure/bed, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/biodome/virology) "tOo" = ( -/turf/open/floor/corsat{ - dir = 10; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/southwest, /area/corsat/theta/biodome/complex) "tOL" = ( /obj/structure/machinery/light{ dir = 1 }, /obj/structure/largecrate/goat, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/corsat/gamma/sigmaremote) "tOT" = ( /obj/structure/machinery/light{ dir = 8 }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "white" - }, +/turf/open/floor/corsat/white/west, /area/corsat/gamma/residential/east) "tPk" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/comdoor{ @@ -59660,16 +43485,11 @@ name = "Security Shutters" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/gamma/administration) "tPT" = ( /obj/structure/surface/table/almayer, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/sigma/hangar/security) "tPV" = ( /turf/closed/wall/biodome, @@ -59687,39 +43507,27 @@ "tQs" = ( /obj/effect/landmark/corpsespawner/scientist, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/west, /area/corsat/sigma/south/offices) "tRA" = ( /obj/structure/barricade/handrail{ dir = 8 }, /obj/structure/barricade/handrail, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/south) "tRC" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor/corsat{ - icon_state = "whitecorner" - }, +/turf/open/floor/corsat/whitecorner, /area/corsat/gamma/residential/east) "tRM" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "whitecorner" - }, +/turf/open/floor/corsat/whitecorner/east, /area/corsat/sigma/south) "tSo" = ( /obj/structure/machinery/light, -/turf/open/floor/corsat{ - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow, /area/corsat/gamma/residential) "tSu" = ( /obj/structure/surface/table/almayer, @@ -59727,31 +43535,21 @@ dir = 4; network = list("sigma") }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/west, /area/corsat/sigma/hangar/office) "tSD" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/east, /area/corsat/omega/offices) "tSE" = ( /obj/structure/surface/table/almayer, /obj/effect/spawner/random/powercell, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/south/robotics) "tSG" = ( /obj/structure/closet/emcloset, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/southeast/datamaint) "tTd" = ( /obj/structure/flora/bush/ausbushes/lavendergrass, @@ -59761,10 +43559,7 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "darkgreen" - }, +/turf/open/floor/corsat/darkgreen/east, /area/corsat/gamma/residential) "tTv" = ( /obj/structure/pipes/vents/pump{ @@ -59773,75 +43568,49 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "white" - }, +/turf/open/floor/corsat/white/west, /area/corsat/gamma/residential/east) "tTE" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "whitetancorner" - }, +/turf/open/floor/corsat/whitetancorner, /area/corsat/gamma/residential/west) "tUa" = ( /obj/structure/bed/chair/office/light, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "bluegreycorner" - }, +/turf/open/floor/corsat/bluegreycorner/north, /area/corsat/sigma/south/offices) "tUG" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/west, /area/corsat/gamma/residential/west) "tUO" = ( -/turf/open/floor/corsat{ - icon_state = "bluecorner" - }, +/turf/open/floor/corsat/bluecorner, /area/corsat/gamma/hallwaysouth) "tUR" = ( -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/airlock/north) "tVr" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/hangar/arrivals) "tVu" = ( -/turf/open/floor/corsat{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/corsat/red/southeast, /area/corsat/omega/hangar) "tVx" = ( /obj/structure/surface/table/almayer, /obj/item/device/camera, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/southwest, /area/corsat/gamma/biodome/toxins) "tVW" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/east, /area/corsat/omega/complex) "tWu" = ( /obj/structure/surface/table/woodentable/fancy, @@ -59851,17 +43620,11 @@ pixel_y = 1; use_power = 0 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/corsat/omega/offices) "tWw" = ( /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/gamma/canteen) "tWy" = ( /obj/structure/pipes/vents/pump{ @@ -59869,21 +43632,9 @@ }, /turf/open/ice, /area/corsat/gamma/biodome) -"tWD" = ( -/obj/structure/surface/rack, -/obj/item/circuitboard/mecha/odysseus/peripherals, -/obj/item/circuitboard/mecha/odysseus/main, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellow" - }, -/area/corsat/sigma/south/robotics) "tWM" = ( /obj/structure/machinery/vending/cigarette/colony, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/northwest, /area/corsat/omega/offices) "tXa" = ( /obj/structure/surface/table/reinforced, @@ -59907,54 +43658,38 @@ pixel_x = -2; use_power = 0 }, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/corsat/red/northeast, /area/corsat/omega/airlocknorth) "tXo" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/faxmachine, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/sigma/hangar/office) "tXq" = ( /obj/structure/cargo_container/trijent/left, -/turf/open/floor/corsat{ - icon_state = "cargo" - }, +/turf/open/floor/corsat/cargo, /area/corsat/gamma/cargo) "tXB" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/hangar/checkpoint) "tYg" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "whitetancorner" - }, +/turf/open/floor/corsat/whitetancorner/west, /area/corsat/gamma/canteen) "tYF" = ( /obj/structure/pipes/standard/simple/hidden/green, /turf/open/floor/wood, /area/corsat/gamma/administration) "tYX" = ( -/turf/open/shuttle/dropship{ - icon_state = "rasputin10" - }, +/turf/open/shuttle/dropship/light_grey_top, /area/prison/hangar_storage/research/shuttle) "tZp" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/theta/airlock/control) "tZD" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony{ @@ -59963,125 +43698,86 @@ req_one_access_txt = "102" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/engineering/atmos) "tZN" = ( /obj/structure/bed/chair/comfy, /obj/structure/machinery/camera/autoname{ network = list("gamma") }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "darkgreen" - }, +/turf/open/floor/corsat/darkgreen/north, /area/corsat/gamma/hangar/monorail) "tZT" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/computer/emails{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite, /area/corsat/sigma/south/complex) "uag" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/computer/emails{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/southwest, /area/corsat/sigma/south/complex) "ubq" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/blood/oil, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/corsat/sigma/biodome/scrapyard) "ubv" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_10" }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/corsat/gamma/biodome/complex) "ubJ" = ( /obj/structure/bed/chair, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "white" - }, +/turf/open/floor/corsat/white/northeast, /area/corsat/gamma/residential/east) "ubW" = ( /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/corsat/sigma/biodome) "ucj" = ( /obj/structure/machinery/light{ dir = 1 }, /obj/structure/flora/pottedplant, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/north, /area/corsat/gamma/biodome/toxins) "uco" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/north, /area/corsat/sigma/south/offices) "ucu" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/emails{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/gamma/biodome/toxins) "ucx" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/freezer) "ucW" = ( /obj/structure/surface/table/reinforced, /obj/item/explosive/grenade/flashbang/cluster, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/southeast, /area/corsat/sigma/south/complex) "uez" = ( -/turf/open/floor/corsat{ - icon_state = "bluecorner" - }, +/turf/open/floor/corsat/bluecorner, /area/corsat/gamma/hangar/arrivals) "ueK" = ( /obj/structure/bed/chair/office/light{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/north, /area/corsat/gamma/residential/west) "ufN" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony{ @@ -60090,24 +43786,17 @@ req_one_access_txt = "102" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/engineering/core) "ufT" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/security) "ugy" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/east, /area/corsat/omega/control) "ugB" = ( /turf/closed/shuttle/ert{ @@ -60116,40 +43805,27 @@ /area/prison/hangar_storage/research/shuttle) "ugC" = ( /obj/structure/closet/crate/science, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/north, /area/corsat/gamma/sigmaremote) "ugK" = ( /obj/structure/surface/table/reinforced, /obj/item/clipboard, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/sigmaremote) "ugM" = ( /obj/structure/machinery/camera/autoname{ dir = 4; network = list("gamma") }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/west, /area/corsat/gamma/cargo) "uhx" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/cargo) "uip" = ( /obj/structure/surface/table/woodentable/fancy, -/turf/open/floor{ - dir = 8; - icon_state = "carpet15-15" - }, +/turf/open/floor/carpet15_15/west, /area/corsat/omega/offices) "uiW" = ( /obj/structure/closet/wardrobe/science_white, @@ -60157,26 +43833,17 @@ dir = 8; network = list("gamma") }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/east, /area/corsat/gamma/biodome/complex) "uji" = ( /obj/structure/surface/table/almayer, /obj/item/paper_bin, /obj/item/tool/pen/blue, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/corsat/red/southwest, /area/corsat/sigma/hangar/security) "ujX" = ( /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner/west, /area/corsat/sigma/south/robotics) "ukb" = ( /obj/structure/flora/bush/ausbushes/var3/stalkybush, @@ -60184,16 +43851,11 @@ /area/corsat/theta/biodome) "ukf" = ( /obj/effect/landmark/monkey_spawn, -/turf/open/floor/almayer/research/containment/corner_var1{ - dir = 4 - }, +/turf/open/floor/almayer/research/containment/corner_var1/east, /area/corsat/inaccessible) "ukz" = ( /obj/structure/surface/table/reinforced, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/corsat/sigma/hangar/monorail/control) "ukQ" = ( /obj/structure/surface/rack, @@ -60201,9 +43863,7 @@ /obj/item/tool/weldingtool, /obj/item/clothing/head/welding, /obj/effect/spawner/random/toolbox, -/turf/open/floor/corsat{ - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow, /area/corsat/sigma/south/engineering) "ukV" = ( /obj/structure/window_frame/corsat, @@ -60213,46 +43873,29 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/east, /area/corsat/sigma/biodome) "ulb" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "whitetancorner" - }, +/turf/open/floor/corsat/whitetancorner/north, /area/corsat/gamma/residential/west) "uli" = ( /obj/structure/flora/bush/ausbushes/grassybush, /turf/open/gm/dirtgrassborder/north, /area/corsat/theta/biodome) "ulq" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purplecorner" - }, +/turf/open/floor/corsat/purplecorner/east, /area/corsat/sigma/south) "ulr" = ( -/turf/open/floor/corsat{ - dir = 5; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/northeast, /area/corsat/gamma/canteen) "ulC" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/hangar) "umo" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/west, /area/corsat/sigma/south/security) "umz" = ( /obj/structure/machinery/light{ @@ -60261,44 +43904,26 @@ /obj/structure/surface/table/almayer, /obj/item/paper_bin, /obj/item/tool/pen/blue, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/omega/security) "umU" = ( /obj/structure/surface/table/woodentable/fancy, /obj/structure/machinery/faxmachine, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/corsat/omega/offices) "unf" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/north, /area/corsat/sigma/southeast/generator) "unL" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/bed/sofa/vert/white/top, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/gamma/residential/researcher) "unN" = ( -/turf/open/floor/corsat{ - dir = 9; - icon_state = "purple" - }, +/turf/open/floor/corsat/purple/northwest, /area/corsat/omega/hallways) "uoh" = ( -/turf/open/floor/corsat{ - dir = 9; - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite/northwest, /area/corsat/gamma/medbay/morgue) "uov" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -60309,9 +43934,7 @@ "uoQ" = ( /obj/effect/decal/cleanable/blood/splatter, /obj/effect/landmark/corpsespawner/scientist, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/hallwaysouth) "upe" = ( /obj/structure/machinery/computer/cameras{ @@ -60334,9 +43957,7 @@ "upA" = ( /obj/effect/decal/cleanable/blood/splatter, /obj/effect/landmark/static_comms/net_one, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/engineering/core) "upN" = ( /obj/structure/machinery/power/apc/hyper{ @@ -60344,57 +43965,41 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/south/complex) "uqb" = ( /obj/structure/cargo_container/trijent/right, -/turf/open/floor/corsat{ - icon_state = "cargo" - }, +/turf/open/floor/corsat/cargo, /area/corsat/gamma/cargo) "uqx" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/theta/airlock/west) "urx" = ( /obj/structure/largecrate/random/barrel/yellow, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/omega/complex) "urN" = ( /obj/structure/pipes/vents/pump/siphon/on{ dir = 4; id_tag = "oxy_corsat_out" }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/biodome/toxins) "urX" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/security/cells) "usz" = ( /obj/effect/landmark/corpsespawner/pmc, /obj/effect/decal/cleanable/blood/xtracks, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/airlocknorth) "usD" = ( /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/checkpoint) "usK" = ( /obj/structure/flora/jungle/alienplant1, @@ -60413,77 +44018,51 @@ "usW" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/hangar/checkpoint) "utp" = ( /obj/item/tool/extinguisher, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purplewhitecorner" - }, +/turf/open/floor/corsat/purplewhitecorner/east, /area/corsat/theta/biodome/complex) "utS" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purplewhitecorner" - }, +/turf/open/floor/corsat/purplewhitecorner/east, /area/corsat/theta/biodome/complex) "utV" = ( /obj/structure/bed/chair/office/light{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/omega/security) "uua" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/west, /area/corsat/gamma/airlock/south) "uuu" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/south/robotics) "uuP" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/corsat/sigma/biodome/gunrange) "uuQ" = ( /obj/structure/closet/toolcloset, -/turf/open/floor/corsat{ - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow, /area/corsat/sigma/south/engineering) "uuT" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "green" - }, +/turf/open/floor/corsat/green/east, /area/corsat/gamma/medbay/morgue) "uvd" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/west, /area/corsat/gamma/security) "uvy" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ @@ -60493,35 +44072,24 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/airlock/south) "uwo" = ( /obj/structure/surface/table/reinforced, /obj/item/clipboard, /obj/item/paper, -/turf/open/floor/corsat{ - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey, /area/corsat/gamma/airlock/north) "uww" = ( /obj/effect/landmark/hunter_primary, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/cargo) "uwy" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "darkgreencorner" - }, +/turf/open/floor/corsat/darkgreencorner/north, /area/corsat/gamma/foyer) "uwC" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/mars_cave{ - icon_state = "mars_cave_15" - }, +/turf/open/mars_cave/mars_cave_15, /area/corsat/sigma/biodome) "uwP" = ( /obj/structure/machinery/door/airlock/almayer/generic{ @@ -60530,23 +44098,15 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/corsat/gamma/rnr/arcade) "uxj" = ( /obj/structure/machinery/door/window/eastright, /obj/effect/alien/weeds/node, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/east, /area/corsat/omega/complex) "uya" = ( -/turf/open/floor/corsat{ - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan, /area/corsat/gamma/residential/researcher) "uyd" = ( /obj/structure/flora/pottedplant, @@ -60554,10 +44114,7 @@ dir = 4; network = list("sigma") }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/west, /area/corsat/sigma/southeast/dataoffice) "uyg" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ @@ -60566,27 +44123,18 @@ req_access_txt = "101" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/airlock/control) "uyw" = ( /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/engineering) "uyT" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/residential) "uzl" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/corsat/sigma/hangar/monorail) "uzS" = ( /obj/structure/platform{ @@ -60597,20 +44145,14 @@ dir = 8; layer = 2.7 }, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "white" - }, +/turf/open/floor/corsat/white/northwest, /area/corsat/gamma/hallwaysouth) "uzW" = ( /obj/structure/machinery/light{ dir = 8 }, /obj/structure/filingcabinet/filingcabinet, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "purple" - }, +/turf/open/floor/corsat/purple/west, /area/corsat/omega/complex) "uAc" = ( /obj/structure/surface/table/reinforced, @@ -60618,22 +44160,14 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/omega/hangar/security) "uAl" = ( -/turf/open/floor/corsat{ - dir = 10; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/southwest, /area/corsat/gamma/airlock/control) "uAN" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/gamma/residential/west) "uAW" = ( /obj/structure/surface/table/almayer, @@ -60643,18 +44177,14 @@ pixel_y = 5; use_power = 0 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/theta/airlock/control) "uBj" = ( /obj/structure/window/framed/corsat/hull/research, /turf/open/floor/plating, /area/corsat/omega/hallways) "uBk" = ( -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/residential/showers) "uBH" = ( /obj/structure/flora/jungle/vines/light_1, @@ -60667,18 +44197,13 @@ /turf/open/auto_turf/snow/layer2, /area/corsat/gamma/biodome) "uCU" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "whitetancorner" - }, +/turf/open/floor/corsat/whitetancorner/west, /area/corsat/gamma/residential/west) "uDh" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/sigma/north) "uDW" = ( /obj/structure/pipes/vents/pump{ @@ -60690,9 +44215,7 @@ /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/maint) "uEC" = ( /obj/structure/flora/pottedplant{ @@ -60702,90 +44225,61 @@ /area/corsat/gamma/residential/researcher) "uEZ" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "purplewhitecorner" - }, +/turf/open/floor/corsat/purplewhitecorner, /area/corsat/omega/complex) "uFg" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purple" - }, +/turf/open/floor/corsat/purple/north, /area/corsat/omega/hallways) "uFr" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite/east, /area/corsat/gamma/medbay/lobby) "uFy" = ( -/turf/open/floor/corsat{ - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner, /area/corsat/omega/hallways) "uFJ" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/southeast, /area/corsat/gamma/residential/west) "uFM" = ( /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/hangar) "uGv" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhitecorner" - }, +/turf/open/floor/corsat/purplewhitecorner/north, /area/corsat/theta/biodome/hydrowest) "uGC" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/biodome/virology) "uGI" = ( /obj/structure/surface/table/reinforced, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/southwest, /area/corsat/sigma/south/complex) "uGQ" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner, /area/corsat/sigma/airlock/control) "uHb" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/omega/hallways) "uHh" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_10" }, -/turf/open/floor/corsat{ - icon_state = "purplecorner" - }, +/turf/open/floor/corsat/purplecorner, /area/corsat/gamma/biodome/complex) "uHm" = ( /turf/closed/shuttle/ert{ @@ -60805,9 +44299,7 @@ /area/corsat/gamma/biodome) "uIM" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/biodome/toxins) "uIX" = ( /obj/structure/barricade/handrail{ @@ -60816,59 +44308,39 @@ /obj/structure/flora/pottedplant{ icon_state = "pottedplant_21" }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/hallwaysouth) "uIZ" = ( -/turf/open/shuttle/escapepod{ - icon_state = "floor1" - }, +/turf/open/shuttle/escapepod/floor1, /area/corsat/theta/biodome/complex) "uJq" = ( -/turf/open/floor/corsat{ - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner, /area/corsat/sigma/south/robotics) "uJr" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/sigma/southeast) "uJI" = ( /obj/structure/machinery/camera/autoname{ dir = 8; network = list("sigma") }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/sigma/south) "uJV" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/corsat/gamma/rnr/bar) "uKg" = ( /obj/structure/flora/pottedplant, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/west, /area/corsat/omega/offices) "uKy" = ( /obj/structure/surface/table/reinforced, /obj/item/tool/surgery/circular_saw, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite/southeast, /area/corsat/gamma/medbay/surgery) "uKE" = ( /obj/structure/machinery/light{ @@ -60876,37 +44348,25 @@ }, /obj/structure/surface/table/almayer, /obj/item/storage/box/beakers, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/north, /area/corsat/gamma/biodome/virology) "uKV" = ( -/turf/open/floor/corsat{ - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner, /area/corsat/gamma/hangar/cargo) "uLN" = ( /obj/structure/machinery/camera/autoname{ dir = 8; network = list("sigma") }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/sigma/dorms) "uLV" = ( /obj/effect/landmark/xeno_hive_spawn, /obj/effect/landmark/ert_spawns/groundside_xeno, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/cargo) "uMf" = ( -/turf/open/floor/corsat{ - icon_state = "red" - }, +/turf/open/floor/corsat/red, /area/corsat/omega/checkpoint) "uMo" = ( /obj/structure/bed/chair/office/light{ @@ -60916,10 +44376,7 @@ dir = 8; network = list("omega") }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/theta/airlock/west) "uMq" = ( /obj/structure/surface/table/almayer, @@ -60927,52 +44384,36 @@ dir = 4; network = list("omega") }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/omega/security) "uMD" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/residential/east) "uMV" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/hangar) "uNW" = ( -/turf/open/floor/corsat{ - icon_state = "bluecorner" - }, +/turf/open/floor/corsat/bluecorner, /area/corsat/theta/airlock/control) "uOe" = ( /obj/structure/pipes/vents/pump/on, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/theta/airlock/control) "uOi" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/corsat/sigma/biodome) "uOz" = ( /obj/structure/machinery/portable_atmospherics/powered/pump, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/southeast, /area/corsat/gamma/engineering/atmos) "uPy" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -60985,10 +44426,7 @@ /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/corsat/sigma/biodome/gunrange) "uPR" = ( /obj/structure/pipes/standard/manifold/hidden/green{ @@ -60998,63 +44436,41 @@ dir = 4; network = list("gamma") }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "white" - }, +/turf/open/floor/corsat/white/west, /area/corsat/gamma/residential/east) "uQt" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/landmark/survivor_spawner, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/sigmaremote) "uQz" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/east, /area/corsat/gamma/hallwaysouth) "uQT" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/east, /area/corsat/gamma/residential) "uRd" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/west, /area/corsat/omega/hallways) "uRp" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "gamma" - }, +/turf/open/floor/corsat/gamma, /area/corsat/gamma/residential/east) "uRs" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/north, /area/corsat/sigma/south/security) "uRw" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner/east, /area/corsat/theta/airlock/control) "uRA" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -61069,24 +44485,17 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/hydroponics) "uRQ" = ( /obj/structure/surface/table/reinforced, /obj/item/clipboard, -/turf/open/floor/corsat{ - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite, /area/corsat/gamma/sigmaremote) "uRU" = ( /obj/structure/janitorialcart, /obj/item/tool/mop, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/southwest, /area/corsat/sigma/southeast/datamaint) "uSc" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -61095,15 +44504,10 @@ /obj/structure/bed/chair/office/light{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/sigma/south/complex) "uSi" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "darkgreen" - }, +/turf/open/floor/corsat/darkgreen/east, /area/corsat/gamma/hangar/monorail) "uSk" = ( /obj/structure/window/framed/corsat/security, @@ -61116,24 +44520,16 @@ /area/corsat/sigma/hangar/security) "uSy" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "arrow_north" - }, +/turf/open/floor/corsat/arrow_north, /area/corsat/gamma/cargo) "uSz" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_21" }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "darkgreen" - }, +/turf/open/floor/corsat/darkgreen/west, /area/corsat/gamma/rnr) "uSM" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "bluecorner" - }, +/turf/open/floor/corsat/bluecorner/north, /area/corsat/sigma/south) "uST" = ( /obj/structure/surface/table/woodentable, @@ -61150,17 +44546,13 @@ "uTg" = ( /obj/structure/safe, /obj/item/device/locator, -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/gamma/sigmaremote) "uTq" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/freezer) "uTU" = ( /obj/structure/closet/crate/trashcart, @@ -61187,49 +44579,35 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/hangar/security) "uVe" = ( /obj/structure/pipes/standard/manifold/hidden/green, /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/hallwaysouth) "uVo" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/west, /area/corsat/sigma/south) "uVD" = ( /obj/structure/closet/emcloset, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/airlock/control) "uVH" = ( /obj/structure/surface/table, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/sigma/hangar/checkpoint) "uWJ" = ( /obj/structure/window/framed/corsat, /turf/open/floor/plating, /area/corsat/gamma/rnr/arcade) "uXa" = ( -/turf/open/floor/corsat{ - icon_state = "red" - }, +/turf/open/floor/corsat/red, /area/corsat/theta/airlock/control) "uXk" = ( /obj/structure/flora/bush/ausbushes/ppflowers, @@ -61240,9 +44618,7 @@ /area/corsat/theta/biodome) "uXw" = ( /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/sigma/dorms) "uXL" = ( /obj/structure/pipes/standard/manifold/hidden/green{ @@ -61252,10 +44628,7 @@ dir = 8; network = list("gamma") }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "white" - }, +/turf/open/floor/corsat/white/east, /area/corsat/gamma/residential/east) "uXU" = ( /obj/structure/pipes/vents/pump{ @@ -61267,83 +44640,56 @@ /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/corsat/sigma/biodome) "uYe" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/south/robotics) "uYq" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "whitetancorner" - }, +/turf/open/floor/corsat/whitetancorner/east, /area/corsat/gamma/canteen) "uYR" = ( /obj/structure/machinery/vending/security, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/corsat/red/southwest, /area/corsat/omega/security) "uZh" = ( /obj/structure/surface/table/almayer, /obj/item/paper, /obj/item/tool/pen/blue, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/biodome/complex) "uZA" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/checkpoint) "uZL" = ( /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/freezer) "uZM" = ( /obj/structure/closet/emcloset, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/corsat/red/northeast, /area/corsat/gamma/airlock/control) "vad" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "whitetancorner" - }, +/turf/open/floor/corsat/whitetancorner/east, /area/corsat/gamma/residential/researcher) "vaj" = ( /obj/structure/barricade/handrail{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/south) "val" = ( /obj/structure/machinery/optable, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "purple" - }, +/turf/open/floor/corsat/purple/west, /area/corsat/omega/complex) "var" = ( /obj/structure/flora/bush/ausbushes/ppflowers, @@ -61351,10 +44697,7 @@ /area/corsat/theta/biodome) "vaw" = ( /obj/structure/machinery/computer/WYresearch, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/northwest, /area/corsat/theta/biodome/complex) "vaI" = ( /obj/structure/flora/bush/ausbushes/grassybush, @@ -61363,43 +44706,28 @@ "vaK" = ( /obj/structure/surface/rack, /obj/item/storage/box/pillbottles, -/turf/open/floor/corsat{ - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite, /area/corsat/gamma/biodome/complex) "vaY" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/west, /area/corsat/gamma/residential/west) "vbv" = ( /obj/structure/surface/rack, /obj/item/storage/box/gloves, -/turf/open/floor/corsat{ - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite, /area/corsat/gamma/biodome/complex) "vbB" = ( /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/gamma/residential/researcher) "vbW" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/residential) "vcs" = ( -/turf/open/floor/corsat{ - dir = 5; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/northeast, /area/corsat/theta/biodome/complex) "vcx" = ( /obj/structure/flora/jungle/vines/light_1, @@ -61417,9 +44745,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/corsat/sigma/biodome) "vda" = ( /obj/structure/window/framed/corsat, @@ -61428,10 +44754,7 @@ "vdt" = ( /obj/structure/machinery/light, /obj/structure/filingcabinet/filingcabinet, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/southwest, /area/corsat/sigma/south/complex) "vfb" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony{ @@ -61439,30 +44762,21 @@ name = "Maintainance"; req_one_access = null }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/cargo) "vfd" = ( -/turf/open/floor/corsat{ - icon_state = "darkgreencorner" - }, +/turf/open/floor/corsat/darkgreencorner, /area/corsat/gamma/rnr) "vff" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/gamma/administration) "vfK" = ( /obj/structure/surface/rack, /obj/item/storage/firstaid/rad, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/north, /area/corsat/sigma/south/complex) "vfR" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -61474,54 +44788,36 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/theta/biodome/complex) "vgn" = ( /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/northwest, /area/corsat/gamma/residential/west) "vgV" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "darkgreencorner" - }, +/turf/open/floor/corsat/darkgreencorner/east, /area/corsat/gamma/hallwaysouth) "vhg" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/hangar/cargo) "vht" = ( /obj/structure/surface/table/reinforced, /obj/item/folder/black_random, -/turf/open/floor/corsat{ - icon_state = "red" - }, +/turf/open/floor/corsat/red, /area/corsat/gamma/airlock/south/id) "vhz" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/west, /area/corsat/gamma/residential/researcher) "vhN" = ( /obj/structure/surface/table, /obj/structure/machinery/computer3/laptop/secure_data, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/southeast, /area/corsat/gamma/residential/west) "vhS" = ( /obj/structure/machinery/power/apc/high{ @@ -61529,16 +44825,10 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/corsat/sigma/hangar/checkpoint) "vhU" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/west, /area/corsat/theta/airlock/control) "vhZ" = ( /obj/structure/flora/jungle/vines/light_1, @@ -61549,15 +44839,10 @@ icon_state = "processor"; name = "Processor Unit" }, -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/sigma/south/complex) "vii" = ( -/turf/open/floor{ - dir = 8; - icon_state = "carpet11-12" - }, +/turf/open/floor/carpet11_12/west, /area/corsat/omega/offices) "vim" = ( /obj/structure/machinery/light/small{ @@ -61567,130 +44852,87 @@ /area/corsat/omega/maint) "viq" = ( /obj/structure/bed/sofa/south/grey/left, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/hangar/arrivals) "viL" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/omega/control) "vjb" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/gamma/hangar/office) "vjd" = ( /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/omega/hangar/office) "vjA" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/south) "vjF" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/north, /area/corsat/gamma/residential/researcher) "vjW" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "bluegreycorner" - }, +/turf/open/floor/corsat/bluegreycorner/west, /area/corsat/sigma/southeast/datalab) "vka" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/hangar/monorail/control) "vkq" = ( /obj/structure/computer3frame/server{ icon_state = "4" }, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/northwest, /area/corsat/gamma/sigmaremote) "vks" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/south/robotics) "vkt" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/control) "vkO" = ( /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/biodome/virology) "vkW" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/hangar) "vlv" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/hangar/security) "vme" = ( /obj/structure/bed/chair/office/light, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/hangar/security) "vmh" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/omega/checkpoint) "vmm" = ( -/turf/open/floor/corsat{ - icon_state = "purplewhitecorner" - }, +/turf/open/floor/corsat/purplewhitecorner, /area/corsat/gamma/biodome/complex) "vmJ" = ( /obj/structure/filingcabinet/filingcabinet, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/north, /area/corsat/sigma/south/complex) "vnc" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -61702,229 +44944,151 @@ /obj/structure/bed/chair/office/light{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/biodome/complex) "vnH" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_21" }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/hallwaysouth) "voj" = ( /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/rnr) "voo" = ( /obj/structure/machinery/light, -/turf/open/floor/corsat{ - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner, /area/corsat/sigma/south) "voF" = ( -/turf/open/floor/corsat{ - dir = 6; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/southeast, /area/corsat/gamma/engineering) "voM" = ( /obj/structure/surface/table/almayer, /obj/item/folder/black_random, -/turf/open/floor/corsat{ - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite, /area/corsat/gamma/biodome/complex) "vpl" = ( -/turf/open/floor/corsat{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/corsat/red/northeast, /area/corsat/omega/hangar) "vpT" = ( /obj/structure/closet/crate/science, /obj/item/storage/fancy/vials/random, -/turf/open/floor/corsat{ - icon_state = "cargo" - }, +/turf/open/floor/corsat/cargo, /area/corsat/sigma/cargo) "vqA" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "whitecorner" - }, +/turf/open/floor/corsat/whitecorner/north, /area/corsat/gamma/hallwaysouth) "vqF" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony{ damage_cap = 4000; - locked = 0; name = "\improper Emergency Access"; req_access_txt = "100"; req_one_access = null }, /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/emergency_access) "vqP" = ( /obj/structure/surface/table/almayer, /obj/effect/spawner/random/tool, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/southeast, /area/corsat/gamma/engineering) "vrx" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/east, /area/corsat/gamma/biodome/complex) "vrA" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/computer/emails{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/east, /area/corsat/gamma/sigmaremote) "vrC" = ( -/turf/open/floor/corsat{ - icon_state = "purplewhitecorner" - }, +/turf/open/floor/corsat/purplewhitecorner, /area/corsat/gamma/biodome/toxins) "vsg" = ( /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/sigma/hangar/arrivals) "vsn" = ( /obj/effect/landmark/static_comms/net_two, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/cargo) "vsu" = ( /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/northeast, /area/corsat/sigma/south/complex) "vsN" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/north, /area/corsat/gamma/hallwaysouth) "vsP" = ( /obj/structure/surface/table, /obj/structure/machinery/computer/emails{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/gamma/residential/west) "vth" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/reagentgrinder, /obj/item/stack/sheet/mineral/phoron/small_stack, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/biodome/toxins) "vtk" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "purplewhitecorner" - }, +/turf/open/floor/corsat/purplewhitecorner/west, /area/corsat/gamma/biodome/virology) "vtq" = ( -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/southeast) "vuq" = ( /obj/structure/reagent_dispensers/water_cooler/stacks, /turf/open/floor/wood, /area/corsat/gamma/residential/east) "vur" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/west, /area/corsat/gamma/hangar/arrivals) "vuu" = ( /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/gamma/administration) "vwu" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22" }, /obj/structure/window/reinforced, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/foyer) "vxb" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper Baths" }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "whitebluefull" - }, +/turf/open/floor/corsat/whitebluefull/southwest, /area/corsat/gamma/residential/showers) "vxj" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/residential/east) "vxk" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_21" }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/west, /area/corsat/gamma/residential/west) "vxv" = ( /obj/structure/pipes/standard/cap/hidden{ dir = 1 }, -/turf/open/shuttle/escapepod{ - icon_state = "floor5" - }, +/turf/open/shuttle/escapepod/floor5, /area/corsat/theta/biodome/complex) "vyk" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "greenwhitecorner" - }, +/turf/open/floor/corsat/greenwhitecorner/north, /area/corsat/gamma/medbay/morgue) "vyA" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/east, /area/corsat/sigma/southeast/datalab) "vyB" = ( /obj/structure/pipes/standard/manifold/hidden/green{ @@ -61933,19 +45097,13 @@ /turf/open/mars, /area/corsat/sigma/biodome) "vyH" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/north, /area/corsat/theta/airlock/control) "vyR" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22" }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "darkgreencorner" - }, +/turf/open/floor/corsat/darkgreencorner/north, /area/corsat/gamma/foyer) "vyY" = ( /obj/structure/machinery/light{ @@ -61954,9 +45112,7 @@ /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/hallwaysouth) "vza" = ( /obj/structure/flora/jungle/vines/heavy, @@ -61966,24 +45122,18 @@ /area/corsat/theta/biodome) "vzc" = ( /obj/structure/machinery/light, -/turf/open/floor/corsat{ - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow, /area/corsat/sigma/south) "vzp" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/emails{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey, /area/corsat/sigma/southeast/dataoffice) "vzv" = ( /obj/effect/landmark/hunter_primary, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/south/robotics) "vzA" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -61992,9 +45142,7 @@ name = "Hangar Lockdown"; use_power = 0 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/corsat/sigma/hangar/id) "vzK" = ( /obj/effect/landmark/monkey_spawn, @@ -62002,15 +45150,11 @@ /area/corsat/theta/biodome) "vzV" = ( /obj/structure/machinery/disposal, -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/gamma/biodome/complex) "vAm" = ( /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/residential/east) "vAP" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -62022,91 +45166,60 @@ /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/south/security) "vBb" = ( /obj/effect/alien/weeds/node, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/omega/containment) "vBS" = ( -/turf/open/floor/corsat{ - icon_state = "darkgreen" - }, +/turf/open/floor/corsat/darkgreen, /area/corsat/sigma/hangar/arrivals) "vCj" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/corsat/sigma/biodome) "vCo" = ( -/turf/open/floor/corsat{ - dir = 10; - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite/southwest, /area/corsat/gamma/medbay/morgue) "vCr" = ( /obj/item/reagent_container/glass/bucket/janibucket, /obj/item/tool/mop, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/theta/biodome/hydroeast) "vCx" = ( /turf/closed/wall/resin/membrane, /area/corsat/omega/biodome) "vCR" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "greenwhitecorner" - }, +/turf/open/floor/corsat/greenwhitecorner/north, /area/corsat/gamma/medbay/lobby) "vCS" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/west, /area/corsat/sigma/biodome) "vDg" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/residential/east) "vDt" = ( /obj/structure/pipes/vents/pump/on, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/hydroponics) "vDu" = ( /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/north, /area/corsat/gamma/residential/west) "vDF" = ( /obj/structure/flora/pottedplant, -/turf/open/floor/corsat{ - icon_state = "blue" - }, +/turf/open/floor/corsat/blue, /area/corsat/sigma/airlock/control) "vEs" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/corsat/sigma/airlock/south) "vEK" = ( /obj/structure/flora/bush/ausbushes/var3/fernybush, @@ -62115,43 +45228,29 @@ /area/corsat/theta/biodome) "vEM" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/sigma/southeast/datamaint) "vEY" = ( /obj/structure/bed, /obj/item/bedsheet, -/turf/open/floor/corsat{ - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite, /area/corsat/gamma/medbay) "vFf" = ( /obj/effect/landmark/monkey_spawn, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/theta/biodome/complex) "vFk" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/sigma/hangar) "vFm" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/east, /area/corsat/gamma/sigmaremote) "vFo" = ( /obj/effect/landmark/monkey_spawn, -/turf/open/floor/corsat{ - icon_state = "purplewhitecorner" - }, +/turf/open/floor/corsat/purplewhitecorner, /area/corsat/gamma/biodome/virology) "vFJ" = ( /obj/structure/pipes/vents/pump{ @@ -62163,58 +45262,38 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner, /area/corsat/gamma/security/cells) "vGn" = ( -/turf/open/floor/corsat{ - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite, /area/corsat/gamma/biodome/complex) "vGz" = ( /obj/structure/closet/wardrobe/science_white, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/north, /area/corsat/gamma/sigmaremote) "vGW" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purple" - }, +/turf/open/floor/corsat/purple/east, /area/corsat/omega/hallways) "vHf" = ( /obj/structure/noticeboard{ pixel_y = 30 }, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/north, /area/corsat/gamma/residential/west) "vHx" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/toolbox, /obj/effect/spawner/random/toolbox, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/biodome/complex) "vHM" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/north, /area/corsat/gamma/biodome/complex) "vHP" = ( /obj/structure/machinery/disposal, -/turf/open/floor/corsat{ - icon_state = "spiralplate" - }, +/turf/open/floor/corsat/spiralplate, /area/corsat/omega/offices) "vHQ" = ( /obj/structure/bed/chair{ @@ -62223,23 +45302,16 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/cargo) "vHU" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "whitebluefull" - }, +/turf/open/floor/corsat/whitebluefull/southwest, /area/corsat/sigma/lavatory) "vIb" = ( /obj/structure/surface/table/almayer, /obj/item/storage/fancy/vials/random, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/biodome/virology) "vJr" = ( /obj/structure/bed/chair/office/light{ @@ -62248,93 +45320,64 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/gamma/residential/west) "vJz" = ( /obj/structure/surface/table/almayer, /obj/item/storage/box/monkeycubes/farwacubes, -/turf/open/floor/corsat{ - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite, /area/corsat/theta/biodome/complex) "vKa" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/east, /area/corsat/gamma/hangar/cargo) "vKH" = ( /obj/structure/flora/bush/ausbushes/var3/fullgrass, /turf/open/gm/dirtgrassborder/grassdirt_corner/north_west, /area/corsat/theta/biodome) "vKN" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite/north, /area/corsat/gamma/medbay/lobby) "vLb" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/sigma/dorms) "vLO" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/hydroponics) "vLQ" = ( /obj/structure/surface/table/almayer, /obj/item/clipboard, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/gamma/biodome/virology) "vLX" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "darkgreen" - }, +/turf/open/floor/corsat/darkgreen/west, /area/corsat/gamma/rnr) "vLZ" = ( /obj/structure/flora/pottedplant, /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/northeast, /area/corsat/omega/offices) "vMA" = ( /obj/structure/platform{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "white" - }, +/turf/open/floor/corsat/white/north, /area/corsat/gamma/residential) "vMI" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony{ name = "Maintainence"; req_one_access = null }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/freezer) "vMM" = ( /obj/structure/pipes/standard/manifold/hidden/green{ @@ -62344,49 +45387,34 @@ dir = 8; network = list("gamma") }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/hangar/arrivals) "vMP" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/foyer) "vMV" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "whitecorner" - }, +/turf/open/floor/corsat/whitecorner/west, /area/corsat/gamma/residential/east) "vMX" = ( /obj/structure/bed/chair, /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/south/engineering) "vNe" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/gamma/hangar) "vND" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/computer/atmos_alert, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/corsat/gamma/airlock/south) "vOh" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -62394,32 +45422,22 @@ dir = 4; network = list("gamma") }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "white" - }, +/turf/open/floor/corsat/white/west, /area/corsat/gamma/residential/east) "vOw" = ( /obj/effect/landmark/corpsespawner/scientist, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/sigma/hangar/monorail) "vOK" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/theta/biodome/hydrowest) "vPM" = ( /obj/structure/closet/emcloset, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/corsat/red/southeast, /area/corsat/sigma/hangar) "vQg" = ( /obj/structure/flora/bush/ausbushes/ppflowers, @@ -62429,65 +45447,43 @@ "vQs" = ( /obj/structure/surface/table/reinforced, /obj/item/folder/black_random, -/turf/open/floor/corsat{ - icon_state = "red" - }, +/turf/open/floor/corsat/red, /area/corsat/sigma/hangar/monorail/control) "vQt" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purple" - }, +/turf/open/floor/corsat/purple/east, /area/corsat/sigma/south) "vQA" = ( /obj/structure/machinery/vending/snack, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/northwest, /area/corsat/theta/biodome/complex) "vRc" = ( /obj/structure/machinery/light, -/turf/open/floor/corsat{ - icon_state = "darkgreencorner" - }, +/turf/open/floor/corsat/darkgreencorner, /area/corsat/gamma/rnr) "vSa" = ( /obj/structure/surface/table/almayer, /obj/item/device/taperecorder, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/hangar/security) "vSE" = ( /obj/structure/surface/table/almayer, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite/west, /area/corsat/gamma/medbay) "vSF" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/corsat/sigma/biodome) "vTr" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/theta/biodome/hydroeast) "vTF" = ( /obj/structure/surface/table/almayer, /obj/item/clipboard, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/north, /area/corsat/gamma/biodome/toxins) "vTT" = ( /obj/structure/pipes/vents/pump{ @@ -62500,10 +45496,7 @@ dir = 8 }, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/west, /area/corsat/gamma/residential/west) "vUn" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony{ @@ -62511,65 +45504,45 @@ name = "Omega Dome Control"; req_one_access_txt = "102" }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/east, /area/corsat/omega/control) "vVc" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "white" - }, +/turf/open/floor/corsat/white/west, /area/corsat/gamma/residential/east) "vVA" = ( /obj/structure/machinery/light, /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite, /area/corsat/theta/biodome/hydrowest) "vVI" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/airlock/north) "vVJ" = ( /obj/structure/bed/chair/comfy/black{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite/southeast, /area/corsat/gamma/medbay) "vVO" = ( /obj/item/stool, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/north, /area/corsat/gamma/sigmaremote) "vVU" = ( /obj/structure/blocker/forcefield/multitile_vehicles, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/corsat/gamma/airlock/south) "vWM" = ( /obj/structure/machinery/light, -/turf/open/floor/corsat{ - icon_state = "white" - }, +/turf/open/floor/corsat/white, /area/corsat/gamma/residential/researcher) "vXy" = ( /obj/structure/platform{ @@ -62577,10 +45550,7 @@ dir = 8; icon_state = "platform_deco" }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "whitecorner" - }, +/turf/open/floor/corsat/whitecorner/east, /area/corsat/sigma/south) "vYe" = ( /obj/structure/pipes/standard/manifold/hidden/green{ @@ -62596,23 +45566,17 @@ dir = 4 }, /obj/structure/window/reinforced, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/foyer) "vYY" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow, /area/corsat/gamma/engineering) "vZD" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/sigma/hangar/monorail) "vZJ" = ( /obj/effect/alien/weeds/node, @@ -62624,17 +45588,13 @@ name = "ID Checkpoint"; req_access_txt = "101" }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/hangar/id) "waF" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/rnr) "wbf" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -62646,20 +45606,14 @@ /obj/structure/flora/pottedplant{ icon_state = "pottedplant_21" }, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "white" - }, +/turf/open/floor/corsat/white/northeast, /area/corsat/sigma/dorms) "wcn" = ( /obj/structure/machinery/camera/autoname{ dir = 8; network = list("gamma") }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/corsat/gamma/rnr/arcade) "wcw" = ( /obj/structure/pipes/vents/pump{ @@ -62671,71 +45625,51 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/mars{ - icon_state = "mars_dirt_3" - }, +/turf/open/mars/mars_dirt_3, /area/corsat/sigma/biodome) "wda" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/south/security) "wdn" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/medbay/chemistry) "wea" = ( /obj/structure/surface/rack, /obj/item/storage/photo_album, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/corsat/omega/hangar/security) "wet" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor/almayer/research/containment/floor2{ - dir = 8 - }, +/turf/open/floor/almayer/research/containment/floor2/west, /area/corsat/sigma/south/complex) "wfn" = ( /obj/structure/surface/table, /obj/structure/machinery/computer/emails{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "whitetancorner" - }, +/turf/open/floor/corsat/whitetancorner, /area/corsat/gamma/residential/west) "wfD" = ( /obj/structure/tunnel{ id = "hole0" }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/omega/biodome) "wfK" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/sigma/south/complex) "wfL" = ( /obj/structure/closet/wardrobe/science_white, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/southeast, /area/corsat/theta/biodome/complex) "wgY" = ( /obj/structure/machinery/door/poddoor/almayer{ @@ -62753,24 +45687,16 @@ /obj/structure/barricade/handrail{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/south) "wie" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/omega/security) "wim" = ( /obj/structure/bed/chair/office/light{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/east, /area/corsat/sigma/hangar/office) "wiF" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -62787,24 +45713,17 @@ /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "purple" - }, +/turf/open/floor/corsat/purple/west, /area/corsat/omega/hallways) "wjb" = ( /obj/effect/decal/cleanable/blood/splatter, -/turf/open/shuttle/dropship{ - icon_state = "floor8" - }, +/turf/open/shuttle/dropship/light_grey_single_wide_left_to_right, /area/corsat/gamma/hangar/monorail/railcart) "wji" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/medbay/lobby) "wjn" = ( /obj/structure/surface/table/reinforced, @@ -62832,19 +45751,13 @@ /obj/structure/machinery/camera/autoname{ network = list("omega") }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/corsat/gamma/airlock/south) "wjw" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/east, /area/corsat/sigma/hangar/office) "wkm" = ( /obj/structure/flora/bush/ausbushes/var3/fernybush, @@ -62852,31 +45765,20 @@ /area/corsat/theta/biodome) "wkr" = ( /obj/structure/reagent_dispensers/water_cooler, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/corsat/red/northeast, /area/corsat/sigma/hangar/security) "wkG" = ( /obj/structure/bed/chair, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/corsat/red/northeast, /area/corsat/sigma/south/security) "wlc" = ( /obj/vehicle/train/cargo/engine{ dir = 2 }, -/turf/open/floor/almayer{ - icon_state = "plating_striped" - }, +/turf/open/floor/almayer/plating_striped, /area/corsat/gamma/sigmaremote) "wlj" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "bluegreycorner" - }, +/turf/open/floor/corsat/bluegreycorner/west, /area/corsat/sigma/hangar/office) "wlt" = ( /obj/structure/machinery/light{ @@ -62884,10 +45786,7 @@ }, /obj/structure/surface/rack, /obj/item/device/reagent_scanner, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/southwest, /area/corsat/gamma/biodome/complex) "wlY" = ( /obj/structure/pipes/standard/manifold/hidden/green{ @@ -62906,32 +45805,21 @@ "wmj" = ( /obj/structure/surface/table/reinforced, /obj/item/storage/box/gloves, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "purple" - }, +/turf/open/floor/corsat/purple/west, /area/corsat/omega/complex) "wmr" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/computer/emails, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/sigmaremote) "wmE" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/landmark/corpsespawner/scientist, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "white" - }, +/turf/open/floor/corsat/white/west, /area/corsat/gamma/residential/east) "wmU" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/east, /area/corsat/sigma/hangar) "wmV" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -62941,32 +45829,23 @@ name = "\improper Hypersleep Chamber"; req_access_txt = "100" }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/residential/east) "wnB" = ( /obj/structure/showcase{ icon_state = "processor"; name = "Processor Unit" }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/south/complex) "wnJ" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "white" - }, +/turf/open/floor/corsat/white/north, /area/corsat/gamma/residential/east) "wnL" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "arrow_west" - }, +/turf/open/floor/corsat/arrow_west, /area/corsat/omega/hangar) "wnO" = ( /obj/structure/bed/chair{ @@ -62982,29 +45861,20 @@ dir = 4 }, /obj/structure/machinery/optable, -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/theta/biodome/complex) "woz" = ( /obj/structure/safe, /obj/item/device/yautja_teleporter, -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/gamma/sigmaremote) "wpk" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/hangar/monorail) "wpA" = ( /obj/structure/closet/firecloset, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/east, /area/corsat/gamma/hangar/arrivals) "wpO" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony{ @@ -63013,9 +45883,7 @@ req_one_access_txt = "102" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/south/robotics) "wpV" = ( /obj/structure/flora/jungle/planttop1, @@ -63025,42 +45893,28 @@ /obj/structure/bed/chair/office/light{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/omega/hangar/security) "wqn" = ( /obj/structure/closet/emcloset, -/turf/open/floor/corsat{ - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite, /area/corsat/gamma/biodome/complex) "wqr" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/gamma/hangar) "wqN" = ( -/turf/open/floor/corsat{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/corsat/red/southwest, /area/corsat/sigma/hangar/security) "wqP" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/hangar) "wrd" = ( /obj/structure/surface/rack, -/obj/item/restraints, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/obj/item/xeno_restraints, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/prison/hangar_storage/research/shuttle) "wrC" = ( /obj/structure/flora/bush/ausbushes/var3/fullgrass, @@ -63071,28 +45925,19 @@ /area/corsat/theta/biodome) "wrR" = ( /obj/structure/largecrate/random, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/cargo) "wrX" = ( -/turf/open/floor/corsat{ - icon_state = "red" - }, +/turf/open/floor/corsat/red, /area/corsat/sigma/south/security) "wsn" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/south/robotics) "wss" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/sigma/hangar/id) "wsJ" = ( /turf/open/floor/corsat, @@ -63102,18 +45947,14 @@ name = "Construction Yard"; req_one_access_txt = "102" }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/south/robotics) "wtu" = ( /obj/structure/machinery/camera/autoname{ dir = 1; network = list("sigma") }, -/turf/open/floor/corsat{ - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow, /area/corsat/sigma/south/engineering) "wtM" = ( /obj/structure/machinery/light, @@ -63128,21 +45969,14 @@ name = "Maintainance"; req_one_access = null }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/airlock/south/id) "wui" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "whitecorner" - }, +/turf/open/floor/corsat/whitecorner/east, /area/corsat/gamma/hallwaysouth) "wuC" = ( /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - icon_state = "sterileplate" - }, +/turf/open/floor/corsat/sterileplate, /area/corsat/gamma/kitchen) "wuK" = ( /obj/structure/machinery/door/poddoor/almayer/open{ @@ -63154,9 +45988,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/corsat/gamma/hangar) "wuS" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -63168,10 +46000,7 @@ /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/corsat/sigma/biodome/gunrange) "wvG" = ( /obj/effect/decal/cleanable/blood/oil, @@ -63187,10 +46016,7 @@ dir = 6 }, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/gamma/residential/west) "wvZ" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -63200,40 +46026,28 @@ /area/corsat/sigma/dorms) "wwi" = ( /obj/structure/machinery/computer/area_atmos/area, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner/west, /area/corsat/gamma/engineering/atmos) "wwB" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/gm/river/desert/shallow{ - name = "pool" - }, +/turf/open/gm/river/desert/shallow/pool, /area/corsat/gamma/residential/showers) "wwC" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/hangar/arrivals) "wwE" = ( -/turf/open/floor/corsat{ - dir = 5; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/northeast, /area/corsat/sigma/cargo) "wwQ" = ( /obj/structure/largecrate/chick, /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "cargo" - }, +/turf/open/floor/corsat/cargo, /area/corsat/gamma/freezer) "wwT" = ( /obj/structure/pipes/standard/manifold/hidden/green{ @@ -63252,107 +46066,72 @@ name = "Hangar Lockdown"; use_power = 0 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/corsat/sigma/hangar/id) "wya" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "arrow_south" - }, +/turf/open/floor/corsat/arrow_south, /area/corsat/gamma/hangar) "wye" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "darkgreencorner" - }, +/turf/open/floor/corsat/darkgreencorner/north, /area/corsat/sigma/north) "wyz" = ( -/turf/open/floor/corsat{ - icon_state = "arrow_west" - }, +/turf/open/floor/corsat/arrow_west, /area/corsat/sigma/hangar) "wyL" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/north, /area/corsat/gamma/security) "wzK" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/security) "wAk" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/omega/complex) "wAz" = ( /obj/structure/tunnel{ id = "hole1" }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/omega/biodome) "wAF" = ( /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/cargo) "wBc" = ( /obj/structure/filingcabinet/filingcabinet, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/corsat/red/southeast, /area/corsat/gamma/security) "wBf" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "white" - }, +/turf/open/floor/corsat/white/east, /area/corsat/gamma/residential/east) "wBk" = ( /obj/structure/bed/nest, /obj/effect/landmark/corpsespawner/engineer, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, +/turf/open/mars_cave/mars_cave_2, /area/corsat/sigma/biodome) "wBJ" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/foyer) "wBK" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_21" }, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/northwest, /area/corsat/gamma/residential/west) "wBP" = ( -/turf/open/floor/corsat{ - icon_state = "greencorner" - }, +/turf/open/floor/corsat/greencorner, /area/corsat/gamma/medbay/morgue) "wCI" = ( /obj/structure/flora/jungle/vines/light_1, @@ -63363,10 +46142,7 @@ /area/corsat/theta/biodome) "wCJ" = ( /obj/structure/closet/emcloset, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/corsat/sigma/north) "wDi" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony{ @@ -63375,10 +46151,7 @@ req_one_access_txt = "102" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/east, /area/corsat/sigma/airlock/control) "wDw" = ( /obj/structure/platform{ @@ -63386,16 +46159,10 @@ dir = 4; icon_state = "platform_deco" }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "whitecorner" - }, +/turf/open/floor/corsat/whitecorner/north, /area/corsat/gamma/residential) "wDC" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/sigma/hangar) "wEd" = ( /obj/structure/surface/table/reinforced, @@ -63403,22 +46170,14 @@ /obj/item/tool/surgery/scalpel, /obj/item/tool/surgery/hemostat, /obj/item/tool/surgery/circular_saw, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "purple" - }, +/turf/open/floor/corsat/purple/west, /area/corsat/omega/complex) "wEn" = ( /obj/structure/closet/crate/science, -/turf/open/floor/corsat{ - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite, /area/corsat/gamma/biodome/toxins) "wFJ" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/gamma/airlock/control) "wFO" = ( /obj/structure/ice/ice_rock/cornerOverlay{ @@ -63429,31 +46188,23 @@ /area/corsat/gamma/biodome) "wFU" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/medbay/lobby) "wGb" = ( /obj/effect/landmark/hunter_primary, -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/sigma/south/offices) "wGm" = ( /obj/structure/machinery/camera/autoname{ dir = 4; network = list("omega") }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/omega/complex) "wGr" = ( /obj/structure/surface/table/almayer, /obj/item/storage/box/gloves, -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/gamma/biodome/toxins) "wGT" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony{ @@ -63462,9 +46213,7 @@ req_one_access_txt = "102" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/airlock/control) "wGW" = ( /obj/structure/surface/table/almayer, @@ -63472,18 +46221,13 @@ /obj/structure/machinery/camera/autoname{ network = list("gamma") }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/north, /area/corsat/gamma/hangar/flightcontrol) "wGZ" = ( /obj/structure/surface/table/reinforced, /obj/item/clipboard, /obj/item/paper, -/turf/open/floor/corsat{ - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite, /area/corsat/gamma/sigmaremote) "wHN" = ( /obj/item/weapon/gun/flamer, @@ -63492,99 +46236,66 @@ name = "specimen control cabinet"; req_access_txt = "103" }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/omega/airlocknorth) "wHQ" = ( /obj/structure/bed/chair/comfy/black, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/sigma/hangar/security) "wIk" = ( /obj/effect/decal/cleanable/blood/splatter, /obj/effect/landmark/corpsespawner/engineer, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/south/robotics) "wIr" = ( /obj/structure/machinery/light{ dir = 1 }, /obj/structure/closet/wardrobe/science_white, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/north, /area/corsat/gamma/sigmaremote) "wIu" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/corsat/sigma/biodome) "wIy" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "whitecorner" - }, +/turf/open/floor/corsat/whitecorner/east, /area/corsat/gamma/residential) "wII" = ( /obj/structure/bed/chair/office/light{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/sigmaremote) "wIT" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/north, /area/corsat/omega/security) "wIY" = ( /obj/effect/landmark/hunter_primary, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/sigma/dorms) "wIZ" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/bed/sofa/vert/white, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/gamma/residential/researcher) "wJp" = ( /obj/structure/surface/table/reinforced, /obj/item/tool/wrench, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "purplewhitecorner" - }, +/turf/open/floor/corsat/purplewhitecorner/west, /area/corsat/gamma/sigmaremote) "wJq" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/computer/secure_data, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/hangar/checkpoint) "wJz" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/south/engineering) "wJA" = ( /obj/structure/machinery/door/poddoor/almayer/open{ @@ -63593,80 +46304,59 @@ name = "Hangar Lockdown"; use_power = 0 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/corsat/sigma/hangar/arrivals) "wJM" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner/west, /area/corsat/sigma/south) "wJU" = ( /obj/structure/machinery/camera/autoname{ dir = 8; network = list("omega") }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/omega/hangar) "wKb" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/bed/chair/office/light{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/sigmaremote) +"wKf" = ( +/obj/structure/prop/mech/parts/durand_right_arm, +/turf/open/floor/corsat/arrow_west, +/area/corsat/sigma/south/robotics) "wKh" = ( /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/biodome/virology) "wKD" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner/north, /area/corsat/sigma/south/engineering) "wKF" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/east, /area/corsat/gamma/airlock/control) "wKK" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/cargo/lobby) "wKL" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/sigma/airlock/south) "wKT" = ( -/turf/open/floor/corsat{ - dir = 9; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/northwest, /area/corsat/theta/biodome/complex) "wLS" = ( /obj/structure/machinery/door/poddoor/almayer{ @@ -63675,9 +46365,7 @@ name = "Omega Cargo Room"; use_power = 0 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/corsat/omega/cargo) "wMg" = ( /obj/structure/platform{ @@ -63686,18 +46374,13 @@ /obj/item/stack/sheet/metal{ pixel_x = 3 }, -/turf/open/floor/corsat{ - icon_state = "purplewhitecorner" - }, +/turf/open/floor/corsat/purplewhitecorner, /area/corsat/theta/biodome/complex) "wOt" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/east, /area/corsat/gamma/administration) "wOQ" = ( /obj/structure/surface/table/woodentable, @@ -63708,59 +46391,38 @@ "wOX" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/faxmachine, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/southwest, /area/corsat/sigma/southeast/datalab) "wPq" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/rnr) "wPz" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purplewhitecorner" - }, +/turf/open/floor/corsat/purplewhitecorner/east, /area/corsat/theta/biodome/complex) "wQd" = ( /obj/structure/filingcabinet/filingcabinet, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "purple" - }, +/turf/open/floor/corsat/purple/southwest, /area/corsat/omega/complex) "wQG" = ( -/turf/open/floor/corsat{ - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner, /area/corsat/sigma/south) "wQJ" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "white" - }, +/turf/open/floor/corsat/white/west, /area/corsat/gamma/residential/east) "wQZ" = ( /obj/structure/surface/table/almayer, /obj/item/storage/box/bodybags, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "green" - }, +/turf/open/floor/corsat/green/northeast, /area/corsat/gamma/medbay/morgue) "wRH" = ( /obj/vehicle/train/cargo/trolley, /obj/item/pamphlet/skill/powerloader, -/turf/open/floor/corsat{ - icon_state = "cargo" - }, +/turf/open/floor/corsat/cargo, /area/corsat/sigma/cargo) "wSb" = ( /obj/structure/flora/bush/ausbushes/var3/fernybush, @@ -63774,78 +46436,54 @@ /area/corsat/theta/biodome) "wSq" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/control) "wSz" = ( /obj/structure/cargo_container/trijent/mid, -/turf/open/floor/corsat{ - icon_state = "cargo" - }, +/turf/open/floor/corsat/cargo, /area/corsat/gamma/cargo) "wSM" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/control) "wTp" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/emails{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/west, /area/corsat/gamma/biodome/virology) "wTZ" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/west, /area/corsat/gamma/biodome/virology) "wUc" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purplewhitecorner" - }, +/turf/open/floor/corsat/purplewhitecorner/east, /area/corsat/omega/complex) "wUd" = ( /obj/structure/surface/table/almayer, -/obj/item/handcuffs, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/obj/item/restraint/handcuffs, +/turf/open/floor/corsat/red/west, /area/corsat/omega/security) "wUx" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/hallwaysouth) "wUE" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/hangar/checkpoint) "wVb" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/reagentgrinder, /obj/item/stack/sheet/mineral/phoron/small_stack, -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/gamma/biodome/complex) "wVz" = ( /obj/structure/pipes/standard/manifold/hidden/green{ @@ -63858,27 +46496,19 @@ /obj/structure/machinery/computer/emails{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/corsat/red/southeast, /area/corsat/sigma/hangar/security) "wVG" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/cargo) "wWr" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/east, /area/corsat/sigma/south/complex) "wWW" = ( /obj/structure/machinery/door/window/brigdoor/eastleft{ @@ -63895,9 +46525,7 @@ id = "SigmaEastID"; name = "Security Shutters" }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/airlock/east/id) "wXD" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony{ @@ -63906,9 +46534,7 @@ req_one_access = null }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/biodome/toxins) "wXE" = ( /obj/structure/machinery/light/small{ @@ -63920,38 +46546,25 @@ /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/cargo) "wYj" = ( -/turf/open/floor/corsat{ - icon_state = "red" - }, +/turf/open/floor/corsat/red, /area/corsat/gamma/security) "wYt" = ( -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/south) "wYA" = ( /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor/corsat{ - icon_state = "red" - }, +/turf/open/floor/corsat/red, /area/corsat/omega/security) "wYD" = ( /obj/structure/surface/table/almayer, /obj/item/device/camera, -/turf/open/floor/corsat{ - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite, /area/corsat/gamma/medbay/morgue) "wYP" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner/east, /area/corsat/sigma/south/robotics) "wZg" = ( /obj/structure/cryofeed/right{ @@ -63967,9 +46580,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor/corsat{ - icon_state = "whitecorner" - }, +/turf/open/floor/corsat/whitecorner, /area/corsat/gamma/residential/east) "wZC" = ( /obj/structure/platform{ @@ -63977,26 +46588,17 @@ dir = 8; icon_state = "platform_deco" }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "whitecorner" - }, +/turf/open/floor/corsat/whitecorner/east, /area/corsat/gamma/residential) "xap" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/east, /area/corsat/sigma/south) "xaF" = ( /obj/structure/filingcabinet/filingcabinet, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/north, /area/corsat/gamma/biodome/complex) "xaQ" = ( /obj/structure/machinery/vending/coffee, @@ -64004,10 +46606,7 @@ dir = 1; layer = 2.7 }, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "white" - }, +/turf/open/floor/corsat/white/northeast, /area/corsat/gamma/hallwaysouth) "xbu" = ( /obj/structure/platform{ @@ -64015,10 +46614,7 @@ dir = 8; icon_state = "platform_deco" }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "whitecorner" - }, +/turf/open/floor/corsat/whitecorner/east, /area/corsat/gamma/hallwaysouth) "xbW" = ( /obj/structure/safe, @@ -64027,18 +46623,14 @@ /area/corsat/gamma/administration) "xbX" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/engineering) "xcG" = ( /obj/structure/machinery/chem_dispenser{ req_access_txt = "100" }, /obj/item/reagent_container/glass/beaker/bluespace, -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/gamma/biodome/virology) "xdi" = ( /obj/structure/flora/bush/ausbushes/var3/fullgrass, @@ -64051,33 +46643,22 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/corsat/gamma/hangar) "xeO" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "darkgreen" - }, +/turf/open/floor/corsat/darkgreen/west, /area/corsat/gamma/rnr) "xeV" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/security) "xfe" = ( -/turf/open/floor/corsat{ - dir = 6; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/southeast, /area/corsat/theta/biodome/complex) "xfC" = ( /obj/structure/barricade/handrail{ @@ -64092,70 +46673,46 @@ /turf/open/floor/wood, /area/corsat/gamma/residential/east) "xfT" = ( -/turf/open/floor/corsat{ - icon_state = "red" - }, +/turf/open/floor/corsat/red, /area/corsat/omega/hangar) "xha" = ( /obj/structure/pipes/standard/manifold/hidden/green, /turf/open/ice, /area/corsat/gamma/biodome) "xhd" = ( -/turf/open/floor/corsat{ - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner, /area/corsat/sigma/south/engineering) "xhx" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/theta/biodome/hydroeast) "xhA" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "whitecorner" - }, +/turf/open/floor/corsat/whitecorner/east, /area/corsat/sigma/dorms) "xiy" = ( -/turf/open/floor/corsat{ - icon_state = "bluegreycorner" - }, +/turf/open/floor/corsat/bluegreycorner, /area/corsat/sigma/southeast/dataoffice) "xiV" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/east, /area/corsat/gamma/biodome/toxins) "xiW" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/north) "xjw" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/north, /area/corsat/sigma/south/security) "xjX" = ( /obj/structure/surface/table, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/west, /area/corsat/gamma/residential/west) "xkn" = ( -/turf/open/floor/corsat{ - icon_state = "sigma" - }, +/turf/open/floor/corsat/sigma, /area/corsat/sigma/hangar/monorail) "xkt" = ( /obj/structure/surface/table/almayer, @@ -64163,29 +46720,20 @@ /obj/structure/machinery/camera/autoname{ network = list("gamma") }, -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/gamma/biodome/toxins) "xkB" = ( /obj/structure/machinery/constructable_frame{ icon_state = "box_1" }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/south/engineering) "xkE" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/airlock/control) "xkH" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/corsat/green/north, /area/corsat/gamma/medbay/morgue) "xld" = ( /obj/effect/decal/cleanable/blood/splatter, @@ -64193,24 +46741,15 @@ dir = 4; layer = 2 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "white" - }, +/turf/open/floor/corsat/white/east, /area/corsat/sigma/south) "xlg" = ( /obj/structure/surface/table/almayer, /obj/item/tool/extinguisher, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/west, /area/corsat/theta/biodome/complex) "xlv" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/west, /area/corsat/omega/hallways) "xlF" = ( /obj/structure/machinery/light{ @@ -64226,33 +46765,23 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan, /area/corsat/gamma/residential/west) "xlR" = ( /obj/structure/machinery/autolathe, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/east, /area/corsat/sigma/south/complex) "xlU" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/sigma/south) "xmg" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/north, /area/corsat/omega/offices) "xmh" = ( /obj/structure/pipes/vents/pump{ @@ -64262,43 +46791,30 @@ /area/corsat/sigma/cafe) "xmC" = ( /obj/structure/flora/pottedplant, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "bluegreycorner" - }, +/turf/open/floor/corsat/bluegreycorner/east, /area/corsat/sigma/south/offices) "xmF" = ( /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/southwest, /area/corsat/omega/cargo) "xmV" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/corsat/sigma/airlock/control) "xnk" = ( /obj/effect/landmark/hunter_primary, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/medbay/lobby) "xnU" = ( /obj/structure/machinery/vending/snack, /obj/structure/machinery/camera/autoname{ network = list("omega") }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/north, /area/corsat/omega/offices) "xoj" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -64307,9 +46823,7 @@ /turf/open/mars, /area/corsat/sigma/biodome) "xoq" = ( -/turf/open/floor/corsat{ - icon_state = "darkgreencorner" - }, +/turf/open/floor/corsat/darkgreencorner, /area/corsat/gamma/residential) "xoy" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -64321,63 +46835,41 @@ /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/sigma/hangar/checkpoint) "xoK" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner/west, /area/corsat/sigma/southeast/generator) "xoV" = ( /obj/structure/surface/table, /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/gamma/residential/west) "xpk" = ( /obj/structure/window/reinforced{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/east, /area/corsat/omega/complex) "xqh" = ( /obj/structure/closet/radiation, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/southeast, /area/corsat/omega/complex) "xqz" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_10" }, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/northwest, /area/corsat/gamma/biodome/complex) "xsm" = ( /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "bluegreycorner" - }, +/turf/open/floor/corsat/bluegreycorner/north, /area/corsat/sigma/hangar/office) "xsE" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/sigmaremote) "xsU" = ( /obj/structure/flora/bush/ausbushes/var3/leafybush, @@ -64399,36 +46891,25 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/corsat/gamma/rnr/library) "xtR" = ( /obj/structure/machinery/camera/autoname{ dir = 8; network = list("gamma") }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "green" - }, +/turf/open/floor/corsat/green/east, /area/corsat/gamma/medbay/morgue) "xtW" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/gamma/residential/west) "xuo" = ( /obj/item/cell/crap, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/residential/researcher) "xuF" = ( /obj/structure/closet/crate/science{ @@ -64437,23 +46918,16 @@ opened = 1 }, /obj/item/organ/brain, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/omega/complex) "xuI" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite/north, /area/corsat/gamma/medbay/morgue) "xvj" = ( /obj/structure/surface/table/reinforced, /obj/item/form_printer, /obj/item/tool/pen/red, -/turf/open/floor/corsat{ - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite, /area/corsat/gamma/sigmaremote) "xvB" = ( /obj/structure/surface/table/almayer, @@ -64468,76 +46942,49 @@ pixel_x = -4; pixel_y = 4 }, -/turf/open/floor/corsat{ - icon_state = "blue" - }, +/turf/open/floor/corsat/blue, /area/corsat/sigma/southeast/datalab) "xvE" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/sigma/hangar/arrivals) "xvG" = ( /obj/effect/alien/weeds/node, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/omega/complex) "xvV" = ( -/turf/open/floor/corsat{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/corsat/red/northwest, /area/corsat/omega/airlocknorth/id) "xwg" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/east, /area/corsat/omega/control) "xxF" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "darkgreen" - }, +/turf/open/floor/corsat/darkgreen/east, /area/corsat/gamma/hangar) "xxO" = ( /obj/structure/flora/bush/ausbushes/grassybush, /turf/open/gm/dirtgrassborder/grassdirt_corner/south_east, /area/corsat/theta/biodome) "xxZ" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/west, /area/corsat/omega/hangar/office) "xys" = ( -/turf/open/floor/corsat{ - icon_state = "bluegreycorner" - }, +/turf/open/floor/corsat/bluegreycorner, /area/corsat/gamma/hangar/flightcontrol) "xzg" = ( -/turf/open/floor/corsat{ - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite, /area/corsat/gamma/medbay) "xzI" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/airlock/control) "xzU" = ( /obj/structure/filingcabinet/filingcabinet, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/north, /area/corsat/sigma/south/engineering) "xzW" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -64547,21 +46994,14 @@ /area/corsat/sigma/biodome) "xzX" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/east, /area/corsat/theta/airlock/control) "xAo" = ( -/turf/open/floor/corsat{ - icon_state = "darkgreencorner" - }, +/turf/open/floor/corsat/darkgreencorner, /area/corsat/gamma/foyer) "xBa" = ( /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/hangar) "xBb" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ @@ -64572,30 +47012,19 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/omega/complex) "xBs" = ( /obj/structure/filingcabinet/filingcabinet, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/corsat/red/southwest, /area/corsat/theta/airlock/west) "xBz" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "darkgreencorner" - }, +/turf/open/floor/corsat/darkgreencorner/west, /area/corsat/gamma/residential) "xBA" = ( /obj/structure/machinery/light, /obj/structure/machinery/disposal, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/corsat/red/southeast, /area/corsat/sigma/hangar) "xBK" = ( /obj/effect/landmark/corpsespawner/scientist, @@ -64605,10 +47034,7 @@ "xCe" = ( /obj/structure/surface/table/reinforced, /obj/item/device/flashlight/lamp, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/corsat/red/southeast, /area/corsat/gamma/airlock/south/id) "xCy" = ( /obj/structure/bed/nest, @@ -64616,10 +47042,7 @@ /area/corsat/gamma/biodome) "xCE" = ( /obj/effect/landmark/hunter_secondary, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/north, /area/corsat/gamma/administration) "xDC" = ( /obj/structure/window/framed/corsat/security, @@ -64630,51 +47053,34 @@ /turf/open/floor/plating, /area/corsat/sigma/airlock/east/id) "xEP" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/west, /area/corsat/gamma/residential/researcher) "xER" = ( /obj/structure/surface/table, /obj/structure/machinery/computer/emails{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/northwest, /area/corsat/gamma/residential/west) "xEW" = ( -/turf/open/floor/corsat{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/corsat/red/southeast, /area/corsat/omega/hangar/office) "xEX" = ( /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/hangar/monorail) "xFf" = ( /obj/structure/stairs{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "white" - }, +/turf/open/floor/corsat/white/west, /area/corsat/gamma/hallwaysouth) "xFk" = ( /obj/structure/machinery/camera/autoname{ dir = 4; network = list("gamma") }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/west, /area/corsat/gamma/hallwaysouth) "xFK" = ( /obj/structure/window/framed/corsat/research, @@ -64690,18 +47096,13 @@ /turf/open/mars, /area/corsat/sigma/biodome) "xGd" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhitecorner" - }, +/turf/open/floor/corsat/purplewhitecorner/north, /area/corsat/theta/biodome/hydroeast) "xGI" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/omega/complex) "xHd" = ( /obj/structure/machinery/door/poddoor/almayer/open{ @@ -64710,51 +47111,31 @@ use_power = 0 }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/corsat/gamma/hangar/cargo) "xHk" = ( /obj/effect/landmark/hunter_secondary, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/corsat/gamma/rnr/arcade) "xHm" = ( -/turf/open/floor/corsat{ - icon_state = "white" - }, +/turf/open/floor/corsat/white, /area/corsat/sigma/dorms) "xHy" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "greenwhitecorner" - }, +/turf/open/floor/corsat/greenwhitecorner/east, /area/corsat/gamma/medbay) "xHM" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner/east, /area/corsat/sigma/airlock/control) "xHN" = ( -/turf/open/floor/corsat{ - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite, /area/corsat/gamma/biodome/virology) "xHV" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner/east, /area/corsat/gamma/hallwaysouth) "xIJ" = ( /obj/structure/cargo_container/wy/mid, -/turf/open/floor/corsat{ - icon_state = "cargo" - }, +/turf/open/floor/corsat/cargo, /area/corsat/gamma/cargo) "xJc" = ( /obj/structure/barricade/handrail{ @@ -64764,9 +47145,7 @@ dir = 1; pixel_y = 2 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/south) "xJB" = ( /obj/structure/machinery/power/apc/hyper{ @@ -64774,30 +47153,19 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/corsat/red/northwest, /area/corsat/omega/airlocknorth/id) "xJH" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/corsat/sigma/dorms) "xJI" = ( /obj/structure/bed/chair/office/light{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan, /area/corsat/gamma/residential/west) "xKr" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/east, /area/corsat/gamma/hangar/monorail) "xKu" = ( /turf/closed/wall/r_wall/biodome, @@ -64818,63 +47186,43 @@ dir = 4; network = list("omega") }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/omega/airlocknorth/id) "xKV" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/residential/maint) "xLg" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan, /area/corsat/gamma/residential/west) "xLv" = ( /obj/structure/filingcabinet/filingcabinet, /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/corsat/gamma/airlock/south) "xMg" = ( /obj/structure/bed/sofa/vert/grey/bot, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/sigma/hangar/arrivals) "xMi" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/west, /area/corsat/sigma/hangar/monorail/control) "xMy" = ( /obj/structure/machinery/cm_vending/sorted/medical/no_access{ req_access_txt = "100" }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/west, /area/corsat/gamma/biodome/complex) "xMA" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/sigma/southeast/dataoffice) "xMJ" = ( /turf/closed/wall/biodome, @@ -64895,70 +47243,47 @@ /turf/open/ice, /area/corsat/gamma/biodome) "xNw" = ( -/turf/open/floor/corsat{ - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite, /area/corsat/theta/biodome/hydrowest) "xNL" = ( /obj/structure/surface/table/almayer, /obj/item/evidencebag, -/turf/open/floor/corsat{ - icon_state = "red" - }, +/turf/open/floor/corsat/red, /area/corsat/sigma/hangar/security) "xNR" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "arrow_east" - }, +/turf/open/floor/corsat/arrow_east, /area/corsat/sigma/southeast/datalab) "xOJ" = ( -/turf/open/floor/corsat{ - dir = 9; - icon_state = "darkgreen" - }, +/turf/open/floor/corsat/darkgreen/northwest, /area/corsat/gamma/hangar/arrivals) "xPi" = ( /obj/structure/bed/chair/office/light{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/corsat/theta/airlock/west/id) "xPw" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_21" }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/sigma/dorms) "xPy" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/west, /area/corsat/gamma/residential/west) "xPF" = ( /obj/structure/machinery/disposal, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "bluegrey" - }, +/turf/open/floor/corsat/bluegrey/northeast, /area/corsat/omega/offices) "xQb" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "officesquares" - }, +/turf/open/floor/corsat/officesquares, /area/corsat/sigma/south/offices) "xQk" = ( /obj/structure/pipes/standard/manifold/hidden/green{ @@ -64975,17 +47300,13 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "whitetancorner" - }, +/turf/open/floor/corsat/whitetancorner, /area/corsat/gamma/residential/researcher) "xQS" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/hangar/arrivals) "xRb" = ( /obj/structure/platform, @@ -64993,10 +47314,7 @@ dir = 4; layer = 2 }, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "white" - }, +/turf/open/floor/corsat/white/southeast, /area/corsat/gamma/hallwaysouth) "xRq" = ( /obj/structure/flora/bush/ausbushes/ppflowers, @@ -65006,9 +47324,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/corsat/sigma/biodome) "xSj" = ( /obj/structure/window/framed/corsat/hull/security, @@ -65020,58 +47336,37 @@ health = 80 }, /obj/effect/landmark/monkey_spawn, -/turf/open/floor/corsat{ - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite, /area/corsat/gamma/biodome/toxins) "xSL" = ( -/turf/open/floor/corsat{ - icon_state = "purplecorner" - }, +/turf/open/floor/corsat/purplecorner, /area/corsat/sigma/south) "xSO" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/east, /area/corsat/gamma/hangar/arrivals) "xST" = ( /obj/structure/machinery/light{ dir = 1 }, /obj/structure/machinery/vending/snack, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/northeast, /area/corsat/sigma/hangar) "xTU" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/east, /area/corsat/omega/control) "xUd" = ( -/turf/open/floor/corsat{ - icon_state = "whitetancorner" - }, +/turf/open/floor/corsat/whitetancorner, /area/corsat/gamma/residential/west) "xUj" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/north, /area/corsat/omega/hallways) "xUr" = ( /obj/structure/surface/table/reinforced, /obj/item/folder/black_random, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/southeast, /area/corsat/sigma/south/complex) "xVS" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -65087,24 +47382,17 @@ /obj/structure/machinery/computer/med_data/laptop{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/sigma/south/complex) "xWE" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/mars{ - icon_state = "mars_dirt_3" - }, +/turf/open/mars/mars_dirt_3, /area/corsat/sigma/biodome) "xWH" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner/east, /area/corsat/gamma/cargo) "xWS" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -65114,58 +47402,39 @@ /area/corsat/sigma/dorms) "xXp" = ( /obj/effect/alien/weeds/node, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/omega/hangar) "xYI" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "Auditorium" }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/gamma/residential/west) "xYP" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/corsat/gamma/residential/west) "xYY" = ( /obj/item/tool/wet_sign, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/biodome/complex) "xZc" = ( -/turf/open/floor/corsat{ - icon_state = "blue" - }, +/turf/open/floor/corsat/blue, /area/corsat/sigma/southeast) "xZn" = ( /obj/structure/machinery/camera/autoname{ dir = 8; network = list("gamma") }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/gamma/hangar) "xZB" = ( /turf/closed/wall/r_wall/biodome/biodome_unmeltable, /area/corsat/sigma/south/complex) "yaq" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/east, /area/corsat/gamma/residential/researcher) "yau" = ( /obj/structure/pipes/standard/manifold/hidden/green, @@ -65173,40 +47442,26 @@ /area/corsat/gamma/biodome) "yaD" = ( /obj/structure/surface/table/reinforced, -/turf/open/floor/corsat{ - icon_state = "purplewhitecorner" - }, +/turf/open/floor/corsat/purplewhitecorner, /area/corsat/gamma/sigmaremote) "yaN" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/gamma/hangar/security) "ybl" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/west, /area/corsat/gamma/hangar) "ybq" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner/west, /area/corsat/sigma/south/robotics) "ybv" = ( /obj/structure/platform{ dir = 4; layer = 2.7 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "white" - }, +/turf/open/floor/corsat/white/east, /area/corsat/gamma/hallwaysouth) "ybJ" = ( /obj/structure/platform{ @@ -65214,53 +47469,36 @@ dir = 8; icon_state = "platform_deco" }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/north) "ybP" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "greenwhite" - }, +/turf/open/floor/corsat/greenwhite/west, /area/corsat/gamma/medbay/surgery) "ybQ" = ( /obj/structure/bed/chair, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/hangar/monorail) "ycd" = ( -/turf/open/floor/corsat{ - dir = 9; - icon_state = "darkgreen" - }, +/turf/open/floor/corsat/darkgreen/northwest, /area/corsat/gamma/rnr/bar) "ycg" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "darkgreencorner" - }, +/turf/open/floor/corsat/darkgreencorner/east, /area/corsat/sigma/hangar/monorail) "ydU" = ( /obj/structure/surface/table/almayer, -/turf/open/floor/corsat{ - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow, /area/corsat/sigma/south/robotics) "ydX" = ( /obj/structure/machinery/camera/autoname{ network = list("gamma") }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/residential) "ydY" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony{ @@ -65268,36 +47506,24 @@ name = "Maintainance"; req_one_access = null }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/dorms) "ydZ" = ( /obj/structure/machinery/vending/hydronutrients, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/north, /area/corsat/theta/biodome/hydrowest) "yea" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "darkgreen" - }, +/turf/open/floor/corsat/darkgreen/north, /area/corsat/sigma/hangar/monorail) "yeL" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/hangar) "yeW" = ( /obj/structure/surface/table/almayer, /obj/item/storage/box/masks, -/turf/open/floor/corsat{ - icon_state = "lightplate" - }, +/turf/open/floor/corsat/lightplate, /area/corsat/gamma/biodome/virology) "yfh" = ( /turf/open/floor/corsat, @@ -65306,9 +47532,7 @@ /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/airlock/control) "yfH" = ( /obj/structure/flora/jungle/vines/light_1, @@ -65325,32 +47549,22 @@ /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/airlock/north) "yga" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/gamma/biodome/toxins) "ygx" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "purplewhitecorner" - }, +/turf/open/floor/corsat/purplewhitecorner/north, /area/corsat/theta/biodome/complex) "ygy" = ( /obj/structure/pipes/standard/simple/hidden/universal, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/west, /area/corsat/theta/airlock/control) "ygF" = ( /obj/structure/machinery/computer/cameras{ @@ -65366,60 +47580,44 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "white" - }, +/turf/open/floor/corsat/white/east, /area/corsat/gamma/residential) "yhc" = ( /obj/structure/closet/crate/science, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/corsat/omega/complex) "yhw" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/west, /area/corsat/sigma/south/engineering) "yhy" = ( -/turf/open/floor/corsat{ - dir = 9; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/northwest, /area/corsat/gamma/residential/researcher) "yhC" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/cargo) +"yhI" = ( +/obj/structure/surface/rack, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/turf/open/floor/corsat/plate, +/area/corsat/sigma/southeast/generator) "yhK" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "whitebluefull" - }, +/turf/open/floor/corsat/whitebluefull/southwest, /area/corsat/gamma/residential/showers) "yio" = ( /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "whitebluefull" - }, +/turf/open/floor/corsat/whitebluefull/southwest, /area/corsat/gamma/residential/showers) "yji" = ( /obj/structure/machinery/light{ dir = 4 }, /obj/structure/closet/secure_closet/hydroponics, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/east, /area/corsat/theta/biodome/complex) "yjw" = ( /obj/structure/fence, @@ -65430,22 +47628,25 @@ /area/corsat/gamma/biodome) "yki" = ( /obj/structure/filingcabinet/filingcabinet, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "purplewhite" - }, +/turf/open/floor/corsat/purplewhite/southwest, /area/corsat/gamma/sigmaremote) -"ykO" = ( -/turf/open/floor/corsat{ - icon_state = "red" +"ykJ" = ( +/obj/structure/machinery/power/reactor/colony{ + desc = "A high-tech thermoelectric generator fueled by a superheated uranium rod."; + name = "\improper G-17 Thermoelectric Generator" }, +/obj/structure/cable/yellow{ + d2 = 4; + icon_state = "0-4" + }, +/turf/open/floor/corsat/plate, +/area/corsat/sigma/southeast/generator) +"ykO" = ( +/turf/open/floor/corsat/red, /area/corsat/sigma/hangar/security) "yla" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner/north, /area/corsat/omega/control) "yle" = ( /obj/structure/flora/bush/ausbushes/var3/ywflowers, @@ -65456,16 +47657,10 @@ /area/space) "ylS" = ( /obj/structure/reagent_dispensers/water_cooler, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/north, /area/corsat/gamma/residential/west) "ymj" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/north, /area/corsat/gamma/hangar/security) (1,1,1) = {" @@ -76205,7 +58400,7 @@ crG aoc bBH bCv -bAt +bAq aoE bBO bUn @@ -93715,9 +75910,9 @@ apI aau axp aqa -aEp -aEp -aEp +drE +drE +drE axB apZ bnl @@ -94205,9 +76400,9 @@ apI aFY aqa aqa -aEp -aEp -aEp +drE +drE +drE sNG kRO ufN @@ -94937,7 +77132,7 @@ aEq aEq agK apI -aPX +ryn aqa aqa hKc @@ -95427,12 +77622,12 @@ ouk bqM buz apI -aFY +dSc aqa aqa -aEs -aEs -aEs +hNL +hNL +hNL sNG kRO ufN @@ -95672,7 +77867,7 @@ oUz boV bOc apI -aPX +phl aqa aqa aPS @@ -95920,9 +78115,9 @@ apI aau axp aqa -aEs -aEs -aEs +hNL +hNL +hNL orz iYR bnl @@ -109532,7 +91727,7 @@ pbS auJ bxm aCs -bxu +wKf bxy aMi fVm @@ -109776,8 +91971,8 @@ ahu vzc auJ bEg -bxr -bxv +mZm +oCt bxz pCi lLe @@ -110023,7 +92218,7 @@ auJ hqv aCs bxw -bxA +fTK fbs bxF auJ @@ -110525,7 +92720,7 @@ auK bxJ byb aMi -bzU +ydU auR ylo ylo @@ -112238,7 +94433,7 @@ auJ bxT aMi aMi -thp +pUy auR ylo ylo @@ -112478,7 +94673,7 @@ aMi aMi aMi kjH -tWD +nSp auJ bvL bxW @@ -112723,7 +94918,7 @@ aMi uJq qAk kad -bwY +jfW aEx auR auR @@ -121745,11 +103940,11 @@ auO atl aCz unf -aCR +ykJ aCz -aCR +ykJ aCz -aCR +ykJ aEK sWd xoK @@ -122235,11 +104430,11 @@ aXX atl aZE unf -aEA +sgN aCz -aCR +ykJ aCz -aEA +sgN apE apN aqp @@ -122723,13 +104918,13 @@ alw alw alw atl -aCz +oNi unf -aEA +sgN aCz -aEA +sgN aCz -aEA +sgN aEK aEK aqU @@ -122968,7 +105163,7 @@ auU avf asX ati -aCz +yhI apz dFP dFP diff --git a/maps/map_files/CORSAT/standalone/lockdown_gammacontrol.dmm b/maps/map_files/CORSAT/standalone/lockdown_gammacontrol.dmm index 75c0cdfdc87b..b06b31f2b6a9 100644 --- a/maps/map_files/CORSAT/standalone/lockdown_gammacontrol.dmm +++ b/maps/map_files/CORSAT/standalone/lockdown_gammacontrol.dmm @@ -1,14 +1,10 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE "a" = ( /obj/structure/machinery/light{ - dir = 4; - icon_state = "tube1" - }, -/obj/structure/closet/firecloset, -/turf/open/floor/corsat{ - icon_state = "red"; dir = 4 }, +/obj/structure/closet/firecloset, +/turf/open/floor/corsat/red/east, /area/corsat/gamma/airlock/control) "b" = ( /turf/closed/wall/r_wall/biodome/biodome_unmeltable, @@ -18,84 +14,54 @@ /turf/open/floor/plating, /area/corsat/gamma/hallwaysouth) "d" = ( -/turf/open/floor/corsat{ - icon_state = "redcorner"; - dir = 4 - }, +/turf/open/floor/corsat/redcorner/east, /area/corsat/gamma/airlock/control) "e" = ( -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/corsat/gamma/airlock/control) "f" = ( -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/hallwaysouth) "g" = ( /obj/structure/pipes/standard/simple/hidden/green{ - dir = 4; - layer = 2.4 - }, -/turf/open/floor/corsat{ - icon_state = "squares" + dir = 4 }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/airlock/control) "h" = ( /obj/structure/pipes/standard/simple/hidden/green{ - dir = 4; - layer = 2.4 - }, -/turf/open/floor/corsat{ - icon_state = "marked" + dir = 4 }, +/turf/open/floor/corsat/marked, /area/corsat/gamma/airlock/control) "i" = ( /obj/structure/pipes/standard/simple/hidden/green{ - dir = 4; - layer = 2.4 - }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" + dir = 4 }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/hallwaysouth) "j" = ( -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/gamma/airlock/control) "k" = ( -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/hallwaysouth) "l" = ( -/turf/open/floor/corsat{ - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner, /area/corsat/gamma/airlock/control) "m" = ( /obj/structure/machinery/door/poddoor/two_tile/four_tile/vertical/opened{ id = "GammaWestD"; - name = "Gamma Dome Airlock"; - unacidable = 0; - use_power = 1 - }, -/turf/open/floor/corsat{ - icon_state = "marked" + name = "Gamma Dome Airlock" }, +/turf/open/floor/corsat/marked, /area/corsat/gamma/airlock/control) "n" = ( /obj/structure/machinery/light{ - dir = 4; - icon_state = "tube1" - }, -/obj/structure/machinery/disposal, -/turf/open/floor/corsat{ - icon_state = "yellow"; dir = 4 }, +/obj/structure/machinery/disposal, +/turf/open/floor/corsat/yellow/east, /area/corsat/gamma/airlock/control) (1,1,1) = {" diff --git a/maps/map_files/CORSAT/standalone/lockdown_gammanorth.dmm b/maps/map_files/CORSAT/standalone/lockdown_gammanorth.dmm index aa4d3cceae85..e0867f3ef176 100644 --- a/maps/map_files/CORSAT/standalone/lockdown_gammanorth.dmm +++ b/maps/map_files/CORSAT/standalone/lockdown_gammanorth.dmm @@ -4,30 +4,22 @@ /turf/open/floor/plating, /area/corsat/gamma/airlock/north) "b" = ( -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/airlock/north) "c" = ( -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/airlock/north) "d" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/airlock/north) "e" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/airlock/north) "f" = ( /obj/structure/window/framed/corsat/security, @@ -44,24 +36,16 @@ "h" = ( /obj/structure/machinery/door/poddoor/two_tile/four_tile/open{ id = "GammaNorthS"; - name = "Gamma North Airlock"; - unacidable = 0; - use_power = 1 - }, -/turf/open/floor/corsat{ - icon_state = "marked" + name = "Gamma North Airlock" }, +/turf/open/floor/corsat/marked, /area/corsat/gamma/airlock/north) "i" = ( -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/corsat/gamma/airlock/north) "j" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/corsat/gamma/airlock/north) "k" = ( /obj/structure/sign/safety/airlock{ diff --git a/maps/map_files/CORSAT/standalone/lockdown_highsec.dmm b/maps/map_files/CORSAT/standalone/lockdown_highsec.dmm index efd261dd7f83..dd4ef5005c61 100644 --- a/maps/map_files/CORSAT/standalone/lockdown_highsec.dmm +++ b/maps/map_files/CORSAT/standalone/lockdown_highsec.dmm @@ -11,66 +11,45 @@ name = "Gamma Checkpoint"; use_power = 0 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/corsat/omega/checkpoint) "d" = ( -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/corsat/omega/checkpoint) "e" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/corsat/omega/checkpoint) "f" = ( -/turf/open/floor/corsat{ - icon_state = "gamma" - }, +/turf/open/floor/corsat/gamma, /area/corsat/omega/checkpoint) "g" = ( -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/omega/checkpoint) "h" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/omega/checkpoint) "i" = ( -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/omega/checkpoint) "j" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/omega/checkpoint) "k" = ( /obj/structure/pipes/standard/simple/hidden/green{ - dir = 4; - layer = 2.4 - }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" + dir = 4 }, +/turf/open/floor/corsat/retrosquares, /area/corsat/omega/checkpoint) "l" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/omega/checkpoint) "m" = ( /obj/structure/machinery/door/poddoor/two_tile/four_tile/vertical/secure/open{ @@ -78,14 +57,11 @@ name = "Gamma Emergency Access"; use_power = 0 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/corsat/omega/checkpoint) "n" = ( /obj/structure/window/framed/corsat/security, /obj/structure/machinery/door/poddoor/shutters/almayer/open{ - dir = 1; id = "OmegaAccessC"; name = "Security Shutters" }, @@ -97,10 +73,7 @@ /area/corsat/omega/checkpoint) "p" = ( /obj/structure/filingcabinet/filingcabinet, -/turf/open/floor/corsat{ - icon_state = "red"; - dir = 1 - }, +/turf/open/floor/corsat/red/north, /area/corsat/omega/checkpoint) "q" = ( /obj/structure/surface/table/reinforced, @@ -108,41 +81,27 @@ id = "delta_gamma"; name = "Gamma Emergency Access"; pixel_x = -5; - unacidable = 1; use_power = 0 }, /obj/structure/machinery/door_control{ id = "delta_gamma2"; name = "Checkpoint Gamma"; pixel_x = 5; - pixel_y = 0; - unacidable = 1; use_power = 0 }, -/turf/open/floor/corsat{ - icon_state = "red"; - dir = 1 - }, +/turf/open/floor/corsat/red/north, /area/corsat/omega/checkpoint) "r" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/computer/cameras{ - dir = 2; - icon_state = "cameras"; network = list("omega") }, -/turf/open/floor/corsat{ - icon_state = "red"; - dir = 1 - }, +/turf/open/floor/corsat/red/north, /area/corsat/omega/checkpoint) "s" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/computer/secure_data, -/turf/open/floor/corsat{ - icon_state = "red"; - dir = 5 - }, +/turf/open/floor/corsat/red/northeast, /area/corsat/omega/checkpoint) "t" = ( /obj/structure/window/framed/corsat/security, @@ -154,59 +113,38 @@ /turf/open/floor/plating, /area/corsat/omega/checkpoint) "u" = ( -/turf/open/floor/corsat{ - icon_state = "red"; - dir = 9 - }, +/turf/open/floor/corsat/red/northwest, /area/corsat/omega/checkpoint) "v" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "red"; - dir = 1 - }, +/turf/open/floor/corsat/red/north, /area/corsat/omega/checkpoint) "w" = ( -/turf/open/floor/corsat{ - icon_state = "red"; - dir = 1 - }, +/turf/open/floor/corsat/red/north, /area/corsat/omega/checkpoint) "x" = ( -/turf/open/floor/corsat{ - icon_state = "red"; - dir = 5 - }, +/turf/open/floor/corsat/red/northeast, /area/corsat/omega/checkpoint) "y" = ( /obj/structure/lattice, /turf/template_noop, /area/template_noop) "z" = ( -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/checkpoint) "A" = ( /obj/effect/landmark/corpsespawner/pmc, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/checkpoint) "B" = ( /obj/structure/bed/chair/comfy/black{ icon_state = "comfychair"; dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/checkpoint) "C" = ( -/turf/open/floor/corsat{ - icon_state = "red"; - dir = 4 - }, +/turf/open/floor/corsat/red/east, /area/corsat/omega/checkpoint) "D" = ( /obj/structure/surface/table/reinforced, @@ -215,7 +153,6 @@ req_access_txt = "3" }, /obj/structure/machinery/door/window/brigdoor/eastleft{ - dir = 4; name = "Identification Desk" }, /obj/structure/machinery/door/poddoor/shutters/almayer/open{ @@ -224,27 +161,18 @@ name = "Security Shutters" }, /obj/structure/window/reinforced, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/omega/checkpoint) "E" = ( -/turf/open/floor/corsat{ - icon_state = "red"; - dir = 8 - }, +/turf/open/floor/corsat/red/west, /area/corsat/omega/checkpoint) "F" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/omega/checkpoint) "G" = ( /obj/structure/bed/chair/comfy/black, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/omega/checkpoint) "H" = ( /obj/structure/surface/table/reinforced, @@ -253,7 +181,6 @@ req_access_txt = "3" }, /obj/structure/machinery/door/window/brigdoor/eastleft{ - dir = 4; name = "Identification Desk" }, /obj/structure/machinery/door/poddoor/shutters/almayer/open{ @@ -261,15 +188,11 @@ id = "OmegaAccessC"; name = "Security Shutters" }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/omega/checkpoint) "I" = ( /obj/structure/filingcabinet/filingcabinet, -/turf/open/floor/corsat{ - icon_state = "red" - }, +/turf/open/floor/corsat/red, /area/corsat/omega/checkpoint) "J" = ( /obj/structure/surface/table/reinforced, @@ -277,82 +200,55 @@ id = "delta_omega"; name = "Checkpoint Omega"; pixel_x = -5; - unacidable = 1; use_power = 0 }, /obj/structure/machinery/door_control{ id = "delta_theta"; name = "Theta Emergency Access"; pixel_x = 5; - unacidable = 1; use_power = 0 }, -/turf/open/floor/corsat{ - icon_state = "red" - }, +/turf/open/floor/corsat/red, /area/corsat/omega/checkpoint) "K" = ( /obj/structure/machinery/computer/cameras{ dir = 1; - icon_state = "cameras"; network = list("omega") }, /obj/structure/surface/table/reinforced, -/turf/open/floor/corsat{ - icon_state = "red" - }, +/turf/open/floor/corsat/red, /area/corsat/omega/checkpoint) "L" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/computer/secure_data{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "red"; - dir = 6 - }, +/turf/open/floor/corsat/red/southeast, /area/corsat/omega/checkpoint) "M" = ( -/turf/open/floor/corsat{ - icon_state = "red"; - dir = 10 - }, +/turf/open/floor/corsat/red/southwest, /area/corsat/omega/checkpoint) "N" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "red" - }, +/turf/open/floor/corsat/red, /area/corsat/omega/checkpoint) "O" = ( -/turf/open/floor/corsat{ - icon_state = "red" - }, +/turf/open/floor/corsat/red, /area/corsat/omega/checkpoint) "P" = ( -/turf/open/floor/corsat{ - icon_state = "red"; - dir = 6 - }, +/turf/open/floor/corsat/red/southeast, /area/corsat/omega/checkpoint) "Q" = ( -/turf/open/floor/corsat{ - icon_state = "omega" - }, +/turf/open/floor/corsat/omega, /area/corsat/omega/checkpoint) "R" = ( -/turf/open/floor/corsat{ - icon_state = "theta" - }, +/turf/open/floor/corsat/theta, /area/corsat/omega/checkpoint) "S" = ( /obj/structure/pipes/standard/simple/hidden/green{ - dir = 4; - layer = 2.4 - }, -/turf/open/floor/corsat{ - icon_state = "marked" + dir = 4 }, +/turf/open/floor/corsat/marked, /area/corsat/omega/checkpoint) "T" = ( /obj/structure/machinery/door/poddoor/two_tile/four_tile/vertical/secure/open{ @@ -360,9 +256,7 @@ name = "Omega Checkpoint"; use_power = 0 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/corsat/omega/checkpoint) "U" = ( /obj/structure/machinery/door/poddoor/two_tile/four_tile/vertical/secure/open{ @@ -370,9 +264,7 @@ name = "Theta Emergency Access"; use_power = 0 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/corsat/omega/checkpoint) "V" = ( /turf/closed/wall/r_wall/biodome, diff --git a/maps/map_files/CORSAT/standalone/lockdown_thetacontrol.dmm b/maps/map_files/CORSAT/standalone/lockdown_thetacontrol.dmm index c98c46b72e8d..8e41c82f5145 100644 --- a/maps/map_files/CORSAT/standalone/lockdown_thetacontrol.dmm +++ b/maps/map_files/CORSAT/standalone/lockdown_thetacontrol.dmm @@ -4,20 +4,14 @@ /turf/open/floor/plating, /area/corsat/gamma/hallwaysouth) "b" = ( -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/gamma/hallwaysouth) "c" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/hallwaysouth) "d" = ( -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/gamma/hallwaysouth) "e" = ( /turf/closed/wall/r_wall/biodome/biodome_unmeltable, @@ -25,69 +19,43 @@ "f" = ( /obj/structure/machinery/door/poddoor/two_tile/four_tile/open{ id = "ThetaNorthD"; - name = "Theta Dome Airlock"; - unacidable = 0; - use_power = 1 - }, -/turf/open/floor/corsat{ - icon_state = "marked" + name = "Theta Dome Airlock" }, +/turf/open/floor/corsat/marked, /area/corsat/theta/airlock/control) "g" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/corsat/theta/airlock/control) "h" = ( -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/corsat/theta/airlock/control) "i" = ( /obj/structure/machinery/light{ - icon_state = "tube1"; dir = 1 }, /obj/structure/closet/firecloset, -/turf/open/floor/corsat{ - icon_state = "red"; - dir = 1 - }, +/turf/open/floor/corsat/red/north, /area/corsat/theta/airlock/control) "j" = ( -/turf/open/floor/corsat{ - icon_state = "redcorner"; - dir = 1 - }, +/turf/open/floor/corsat/redcorner/north, /area/corsat/theta/airlock/control) "k" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/theta/airlock/control) "l" = ( -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/theta/airlock/control) "m" = ( -/turf/open/floor/corsat{ - icon_state = "yellowcorner"; - dir = 4 - }, +/turf/open/floor/corsat/yellowcorner/east, /area/corsat/theta/airlock/control) "n" = ( /obj/structure/machinery/light{ - icon_state = "tube1"; dir = 1 }, /obj/structure/machinery/disposal, -/turf/open/floor/corsat{ - icon_state = "yellow"; - dir = 1 - }, +/turf/open/floor/corsat/yellow/north, /area/corsat/theta/airlock/control) (1,1,1) = {" diff --git a/maps/map_files/CORSAT/standalone/lockdown_thetaeast.dmm b/maps/map_files/CORSAT/standalone/lockdown_thetaeast.dmm index 61645f5a5b3b..e9b6a3557645 100644 --- a/maps/map_files/CORSAT/standalone/lockdown_thetaeast.dmm +++ b/maps/map_files/CORSAT/standalone/lockdown_thetaeast.dmm @@ -13,62 +13,44 @@ /turf/open/gm/dirt, /area/corsat/theta/biodome) "e" = ( -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/corsat/theta/airlock/east) "f" = ( -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/theta/airlock/east) "g" = ( -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/theta/airlock/east) "h" = ( /obj/structure/pipes/standard/simple/hidden/green{ - dir = 4; - layer = 2.4 + dir = 4 }, /turf/open/gm/dirt, /area/corsat/theta/biodome) "i" = ( /obj/structure/pipes/standard/simple/hidden/green{ - dir = 4; - layer = 2.4 - }, -/turf/open/floor/corsat{ - icon_state = "marked" + dir = 4 }, +/turf/open/floor/corsat/marked, /area/corsat/theta/airlock/east) "j" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor/corsat{ - icon_state = "retrosquares" - }, +/turf/open/floor/corsat/retrosquares, /area/corsat/theta/airlock/east) "k" = ( /obj/structure/machinery/door/poddoor/two_tile/four_tile/vertical/opened{ id = "ThetaEastW"; - name = "Theta East Airlock"; - unacidable = 0; - use_power = 1 - }, -/turf/open/floor/corsat{ - icon_state = "marked" + name = "Theta East Airlock" }, +/turf/open/floor/corsat/marked, /area/corsat/theta/airlock/east) "l" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/theta/airlock/east) "m" = ( /obj/structure/sign/safety/airlock{ @@ -79,7 +61,6 @@ "n" = ( /obj/structure/window/framed/corsat/security, /obj/structure/machinery/door/poddoor/shutters/almayer/open{ - dir = 1; id = "ThetaIDEC2"; name = "Security Shutters" }, diff --git a/maps/map_files/CORSAT/standalone/sigma_ice.dmm b/maps/map_files/CORSAT/standalone/sigma_ice.dmm index c3d3c93b9285..47d72b283e14 100644 --- a/maps/map_files/CORSAT/standalone/sigma_ice.dmm +++ b/maps/map_files/CORSAT/standalone/sigma_ice.dmm @@ -51,9 +51,7 @@ /obj/structure/machinery/computer/secure_data{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "red" - }, +/turf/open/floor/corsat/red, /area/corsat/sigma/airlock/control) "ba" = ( /obj/structure/window/reinforced{ @@ -74,10 +72,7 @@ req_access_txt = "106"; use_power = 0 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/corsat/sigma/biodome/ice) "bo" = ( /obj/structure/surface/rack, @@ -86,9 +81,7 @@ /obj/item/clothing/suit/storage/snow_suit, /obj/item/clothing/suit/storage/snow_suit, /obj/item/clothing/suit/storage/snow_suit, -/turf/open/floor/corsat{ - icon_state = "sigma" - }, +/turf/open/floor/corsat/sigma, /area/corsat/sigma/airlock/control) "bp" = ( /obj/structure/surface/rack, @@ -97,9 +90,7 @@ /obj/item/tool/shovel/snow, /obj/item/tool/shovel/snow, /obj/item/tool/shovel/snow, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/airlock/control) "bs" = ( /turf/open/auto_turf/snow/layer0, @@ -118,10 +109,7 @@ /turf/open/ice, /area/corsat/sigma/biodome/scrapyard) "bN" = ( -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/corsat/sigma/biodome/gunrange) "bT" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -139,26 +127,17 @@ /obj/structure/machinery/door/airlock/almayer/maint/colony{ damage_cap = 4000; dir = 1; - locked = 0; name = "\improper Emergency Access"; req_access_txt = "100"; req_one_access = list() }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/biodome/ice) "cs" = ( -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/west, /area/corsat/sigma/biodome/gunrange) "cv" = ( -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/east, /area/corsat/sigma/biodome/gunrange) "cA" = ( /turf/open/auto_turf/snow/layer4, @@ -175,20 +154,14 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/corsat/sigma/biodome/gunrange) "db" = ( /turf/closed/wall/r_wall/biodome, /area/corsat/inaccessible) "dd" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/corsat/sigma/biodome/gunrange) "dn" = ( /obj/structure/window/framed/corsat/hull, @@ -202,10 +175,7 @@ /obj/structure/machinery/camera/autoname{ network = list("sigma") }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/corsat/sigma/airlock/control) "dr" = ( /turf/open/floor/corsat, @@ -243,10 +213,7 @@ /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/corsat/sigma/biodome/gunrange) "ee" = ( /obj/effect/decal/warning_stripes{ @@ -261,10 +228,7 @@ /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/corsat/sigma/biodome/gunrange) "ev" = ( /obj/structure/window/framed/corsat, @@ -279,10 +243,7 @@ "eV" = ( /obj/effect/landmark/corpsespawner/engineer, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/corsat/sigma/biodome/ice) "fc" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, @@ -305,10 +266,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/west, /area/corsat/sigma/biodome/ice) "fC" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -332,8 +290,7 @@ /area/corsat/sigma/biodome/gunrange) "gi" = ( /obj/structure/machinery/floodlight{ - name = "Floodlight"; - unacidable = 0 + name = "Floodlight" }, /turf/open/auto_turf/snow/layer0, /area/corsat/sigma/biodome/ice) @@ -341,9 +298,7 @@ /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/airlock/control) "gr" = ( /obj/structure/bed/nest, @@ -392,35 +347,23 @@ /turf/open/auto_turf/snow/layer3, /area/corsat/sigma/biodome/ice) "hC" = ( -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/west, /area/corsat/sigma/biodome/ice) "hH" = ( -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/corsat/sigma/biodome/ice) "hQ" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/corsat/sigma/biodome/ice) "hR" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony{ damage_cap = 4000; - locked = 0; name = "\improper Emergency Access"; req_access_txt = "100"; req_one_access = list() }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/inaccessible) "hU" = ( /obj/structure/barricade/wooden, @@ -438,20 +381,14 @@ /area/corsat/sigma/biodome/scrapyard) "ih" = ( /obj/effect/landmark/corpsespawner/pmc, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/corsat/sigma/biodome/gunrange) "io" = ( /obj/effect/alien/weeds/node, /turf/open/ice, /area/corsat/sigma/biodome/ice) "iy" = ( -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/west, /area/corsat/sigma/biodome/scrapyard) "iK" = ( /obj/structure/pipes/standard/manifold/hidden/green{ @@ -462,10 +399,7 @@ "iL" = ( /obj/structure/surface/table/almayer, /obj/item/folder/black_random, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/sigma/airlock/control) "iO" = ( /obj/effect/decal/warning_stripes{ @@ -487,31 +421,20 @@ /obj/structure/machinery/camera/autoname{ network = list("sigma") }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/corsat/sigma/biodome/ice) "jv" = ( -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/north, /area/corsat/sigma/biodome/ice) "jy" = ( /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/corsat/sigma/biodome/ice) "jL" = ( /obj/structure/pipes/standard/simple/hidden/universal{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow, /area/corsat/sigma/airlock/control) "jT" = ( /obj/structure/pipes/vents/pump, @@ -521,29 +444,20 @@ /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/corsat/sigma/biodome/ice) "kl" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/corsat/sigma/biodome/ice) "km" = ( /obj/structure/machinery/camera/autoname{ dir = 8; network = list("sigma") }, -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/east, /area/corsat/sigma/biodome/scrapyard) "kr" = ( /obj/structure/pipes/standard/manifold/hidden/green{ @@ -558,10 +472,7 @@ /area/corsat/sigma/biodome/ice) "kv" = ( /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/corsat/sigma/biodome/ice) "kH" = ( /obj/structure/pipes/standard/manifold/hidden/green{ @@ -631,16 +542,11 @@ name = "Sigma Dome Control"; req_one_access = list(102) }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/west, /area/corsat/sigma/airlock/control) "lY" = ( /obj/structure/bed/chair/office/light, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/airlock/control) "mm" = ( /obj/structure/pipes/vents/pump{ @@ -658,42 +564,28 @@ /obj/structure/surface/rack, /obj/item/clothing/suit/storage/snow_suit, /obj/item/clothing/suit/storage/snow_suit, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/corsat/sigma/biodome/ice) "mX" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/corsat/sigma/biodome/ice) "mY" = ( -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/east, /area/corsat/sigma/biodome/ice) "nb" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/west, /area/corsat/sigma/airlock/control) "ng" = ( /obj/structure/surface/rack, /obj/item/ammo_magazine/smg/mp5, /obj/item/ammo_magazine/smg/mp5, -/turf/open/floor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/asteroidplating, /area/corsat/sigma/biodome/gunrange) "nk" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -728,10 +620,7 @@ /turf/open/auto_turf/snow/layer3, /area/corsat/sigma/biodome/scrapyard) "nZ" = ( -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/corsat/sigma/biodome/scrapyard) "oa" = ( /obj/structure/window/framed/corsat, @@ -793,10 +682,7 @@ /area/corsat/sigma/biodome/ice) "pC" = ( /obj/structure/filingcabinet/filingcabinet, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/sigma/airlock/control) "pP" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -811,9 +697,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/airlock/control) "qs" = ( /obj/structure/pipes/standard/manifold/hidden/green{ @@ -840,9 +724,7 @@ /obj/structure/machinery/door/window/northright{ name = "Firing Lane" }, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/corsat/sigma/biodome/gunrange) "rP" = ( /obj/structure/surface/table/almayer, @@ -859,9 +741,7 @@ name = "Firing Lane" }, /obj/structure/surface/table/almayer, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/corsat/sigma/biodome/gunrange) "rW" = ( /obj/structure/pipes/unary/outlet_injector{ @@ -876,23 +756,14 @@ /turf/open/ice, /area/corsat/sigma/biodome/scrapyard) "sp" = ( -/turf/open/floor{ - dir = 9; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/northwest, /area/corsat/sigma/biodome/gunrange) "ss" = ( -/turf/open/floor{ - dir = 5; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/northeast, /area/corsat/sigma/biodome/gunrange) "sx" = ( /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/corsat/sigma/biodome/gunrange) "sA" = ( /obj/structure/machinery/constructable_frame, @@ -912,18 +783,14 @@ /area/corsat/sigma/biodome/gunrange) "tc" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/corsat/sigma/biodome/gunrange) "tg" = ( /turf/open/auto_turf/snow/layer4, /area/corsat/sigma/biodome/ice) "tm" = ( /obj/structure/machinery/floodlight{ - name = "Floodlight"; - unacidable = 0 + name = "Floodlight" }, /turf/open/auto_turf/snow/layer2, /area/corsat/sigma/biodome/ice) @@ -933,20 +800,14 @@ name = "Waste Tank Control" }, /obj/structure/surface/table/almayer, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/northwest, /area/corsat/sigma/airlock/control) "tM" = ( /obj/structure/pipes/standard/simple/visible{ dir = 5 }, /obj/structure/machinery/meter, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/north, /area/corsat/sigma/airlock/control) "tZ" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -958,18 +819,13 @@ /obj/structure/pipes/binary/pump/on{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner/north, /area/corsat/sigma/airlock/control) "uc" = ( /obj/structure/pipes/standard/simple/hidden/universal{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/airlock/control) "uk" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony{ @@ -984,9 +840,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/airlock/control) "ur" = ( /obj/structure/pipes/standard/manifold/hidden/green{ @@ -997,10 +851,7 @@ "us" = ( /obj/structure/surface/table/almayer, /obj/item/device/flashlight, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/corsat/red/southeast, /area/corsat/sigma/airlock/control) "uy" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -1012,10 +863,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/corsat/sigma/biodome/gunrange) "uO" = ( /turf/closed/wall/r_wall/biodome/biodome_unmeltable, @@ -1024,10 +872,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/east, /area/corsat/sigma/biodome/ice) "ve" = ( /obj/effect/decal/warning_stripes{ @@ -1043,10 +888,7 @@ dir = 4 }, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/corsat/sigma/biodome/gunrange) "vO" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -1056,10 +898,7 @@ dir = 1; network = list("sigma") }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/corsat/sigma/biodome/gunrange) "vU" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -1082,19 +921,13 @@ /area/corsat/sigma/biodome/ice) "ww" = ( /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/corsat/sigma/biodome/gunrange) "wD" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/corsat/sigma/biodome/gunrange) "xk" = ( /obj/structure/cargo_container/watatsumi/rightmid, @@ -1105,18 +938,13 @@ /obj/structure/machinery/computer/atmos_alert{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/west, /area/corsat/sigma/airlock/control) "xK" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/airlock/control) "xM" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony{ @@ -1129,49 +957,35 @@ name = "Access Shutter" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/airlock/control) "xQ" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/station_alert{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/west, /area/corsat/sigma/airlock/control) "xX" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/corsat/sigma/airlock/control) "xZ" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/airlock/control) "yh" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/emergency_access) "yj" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony{ name = "Maintainence"; req_one_access = list() }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/airlock/control) "yl" = ( /obj/structure/machinery/light{ @@ -1180,10 +994,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner/east, /area/corsat/sigma/airlock/control) "yn" = ( /obj/structure/window/reinforced, @@ -1200,10 +1011,7 @@ /obj/structure/pipes/standard/simple/hidden/universal{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/north, /area/corsat/sigma/airlock/control) "yr" = ( /obj/structure/window/reinforced, @@ -1218,22 +1026,14 @@ "yy" = ( /obj/structure/surface/table/almayer, /obj/effect/spawner/random/technology_scanner, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/southwest, /area/corsat/sigma/airlock/control) "yC" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner/west, /area/corsat/sigma/airlock/control) "yG" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner, /area/corsat/sigma/airlock/control) "yJ" = ( /obj/structure/surface/rack, @@ -1241,9 +1041,7 @@ /obj/item/tank/air, /obj/item/clothing/mask/breath, /obj/item/clothing/mask/breath, -/turf/open/floor/corsat{ - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow, /area/corsat/sigma/airlock/control) "yL" = ( /obj/structure/machinery/constructable_frame{ @@ -1263,9 +1061,7 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/emergency_access) "yT" = ( /obj/item/broken_device, @@ -1275,9 +1071,7 @@ /obj/structure/surface/rack, /obj/effect/spawner/random/toolbox, /obj/effect/spawner/random/toolbox, -/turf/open/floor/corsat{ - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow, /area/corsat/sigma/airlock/control) "yX" = ( /turf/template_noop, @@ -1289,44 +1083,31 @@ "zf" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/corsat/sigma/biodome/ice) "zh" = ( /obj/structure/surface/table/almayer, /obj/effect/spawner/random/technology_scanner, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner/west, /area/corsat/sigma/airlock/control) "zo" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/airlock/control) "zJ" = ( /obj/structure/pipes/standard/simple/visible{ dir = 4 }, /obj/structure/machinery/meter, -/turf/open/floor/corsat{ - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow, /area/corsat/sigma/airlock/control) "zQ" = ( /obj/structure/pipes/trinary/mixer{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/southeast, /area/corsat/sigma/airlock/control) "zT" = ( /obj/structure/pipes/unary/outlet_injector{ @@ -1340,9 +1121,7 @@ /turf/open/floor/corsat, /area/corsat/inaccessible) "Aj" = ( -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/airlock/control) "Al" = ( /obj/structure/machinery/door_control{ @@ -1350,17 +1129,13 @@ name = "Access Shutters"; pixel_y = 24 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/airlock/control) "Ao" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/airlock/control) "As" = ( /obj/item/tool/shovel, @@ -1370,19 +1145,13 @@ /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/corsat/sigma/biodome/gunrange) "AJ" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/blood/oil, /obj/effect/landmark/corpsespawner/pmc, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/corsat/sigma/biodome/scrapyard) "AS" = ( /obj/structure/largecrate/supply/ammo/m39{ @@ -1390,16 +1159,12 @@ name = "\improper M39 magazine case (x8)"; supplies = list(/obj/item/ammo_magazine/smg/m39=3) }, -/turf/open/floor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/asteroidplating, /area/corsat/sigma/biodome/gunrange) "AX" = ( /obj/structure/surface/rack, /obj/item/ammo_magazine/shotgun/buckshot, -/turf/open/floor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/asteroidplating, /area/corsat/sigma/biodome/gunrange) "Ba" = ( /obj/effect/decal/warning_stripes{ @@ -1424,9 +1189,7 @@ dir = 1 }, /obj/item/weapon/gun/shotgun/pump/dual_tube/cmb, -/turf/open/floor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/asteroidplating, /area/corsat/sigma/biodome/gunrange) "Bn" = ( /obj/structure/surface/rack, @@ -1437,18 +1200,13 @@ dir = 1 }, /obj/item/weapon/gun/flamer/M240T, -/turf/open/floor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/asteroidplating, /area/corsat/sigma/biodome/gunrange) "Bv" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/corsat/sigma/biodome/gunrange) "BM" = ( /turf/closed/wall/r_wall/biodome, @@ -1459,22 +1217,14 @@ name = "Mixed Air Control" }, /obj/structure/surface/table/almayer, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/west, /area/corsat/sigma/airlock/control) "BV" = ( -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/corsat/sigma/biodome/ice) "Cd" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/east, /area/corsat/sigma/airlock/control) "Ce" = ( /obj/structure/largecrate/supply/ammo/pistol{ @@ -1482,25 +1232,19 @@ name = "sidearm ammunition case (x14)"; supplies = list(/obj/item/ammo_magazine/revolver=6,/obj/item/ammo_magazine/pistol=8) }, -/turf/open/floor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/asteroidplating, /area/corsat/sigma/biodome/gunrange) "Ch" = ( /obj/structure/surface/table/almayer, /obj/item/explosive/grenade/incendiary, /obj/item/explosive/grenade/incendiary, -/turf/open/floor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/asteroidplating, /area/corsat/sigma/biodome/gunrange) "CA" = ( /obj/structure/surface/table/almayer, /obj/item/explosive/grenade/smokebomb, /obj/item/explosive/grenade/smokebomb, -/turf/open/floor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/asteroidplating, /area/corsat/sigma/biodome/gunrange) "CI" = ( /obj/structure/window/reinforced, @@ -1522,9 +1266,7 @@ }, /obj/item/weapon/gun/pistol/m4a3, /obj/item/weapon/gun/pistol/m4a3, -/turf/open/floor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/asteroidplating, /area/corsat/sigma/biodome/gunrange) "Db" = ( /obj/structure/machinery/door/airlock/almayer/generic{ @@ -1533,18 +1275,13 @@ req_access_txt = "106"; use_power = 0 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/corsat/sigma/biodome/gunrange) "Dd" = ( /obj/structure/surface/table/almayer, /obj/item/explosive/grenade/high_explosive, /obj/item/explosive/grenade/high_explosive, -/turf/open/floor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/asteroidplating, /area/corsat/sigma/biodome/gunrange) "Df" = ( /obj/structure/machinery/light{ @@ -1556,9 +1293,7 @@ /obj/structure/surface/table/almayer, /obj/item/explosive/grenade/high_explosive/training, /obj/item/explosive/grenade/high_explosive/training, -/turf/open/floor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/asteroidplating, /area/corsat/sigma/biodome/gunrange) "Dh" = ( /obj/structure/target/syndicate, @@ -1570,25 +1305,17 @@ desc = "A rectangular steel crate containing firing targets."; name = "target crate" }, -/turf/open/floor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/asteroidplating, /area/corsat/sigma/biodome/gunrange) "Dp" = ( /obj/structure/closet/wardrobe/atmospherics_yellow, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/northwest, /area/corsat/sigma/airlock/control) "Ds" = ( /obj/structure/surface/rack, /obj/item/clothing/shoes/snow, /obj/item/clothing/shoes/snow, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/corsat/sigma/biodome/ice) "Dw" = ( /turf/closed/wall/r_wall/biodome, @@ -1598,22 +1325,14 @@ /turf/open/auto_turf/snow/layer1, /area/corsat/sigma/biodome/ice) "DI" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/north, /area/corsat/sigma/airlock/control) "DO" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/biodome/ice) "DT" = ( -/turf/open/floor/corsat{ - dir = 5; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/northeast, /area/corsat/sigma/airlock/control) "DX" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony{ @@ -1622,10 +1341,7 @@ req_one_access = list(102) }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/east, /area/corsat/sigma/airlock/control) "Eg" = ( /obj/structure/machinery/computer/general_air_control/large_tank_control{ @@ -1634,10 +1350,7 @@ /obj/structure/surface/table/almayer{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/southwest, /area/corsat/sigma/airlock/control) "Ev" = ( /obj/structure/largecrate/supply/ammo/m41a{ @@ -1645,24 +1358,18 @@ name = "\improper M41A magazine case (x10)"; supplies = list(/obj/item/ammo_magazine/rifle=10) }, -/turf/open/floor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/asteroidplating, /area/corsat/sigma/biodome/gunrange) "EJ" = ( /obj/structure/surface/rack, /obj/item/ammo_magazine/shotgun/slugs, -/turf/open/floor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/asteroidplating, /area/corsat/sigma/biodome/gunrange) "EM" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "bluecorner" - }, +/turf/open/floor/corsat/bluecorner, /area/corsat/sigma/airlock/control) "ES" = ( /turf/open/auto_turf/snow/layer2, @@ -1680,32 +1387,22 @@ /obj/structure/surface/table/almayer, /obj/item/explosive/grenade/flashbang, /obj/item/explosive/grenade/flashbang, -/turf/open/floor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/asteroidplating, /area/corsat/sigma/biodome/gunrange) "Fu" = ( /obj/structure/surface/table/almayer, /obj/item/explosive/grenade/high_explosive/training, -/turf/open/floor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/asteroidplating, /area/corsat/sigma/biodome/gunrange) "Fx" = ( /obj/structure/pipes/standard/simple/visible{ dir = 4 }, /obj/structure/machinery/meter, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/north, /area/corsat/sigma/airlock/control) "Fy" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner/north, /area/corsat/sigma/airlock/control) "Fz" = ( /obj/structure/surface/rack, @@ -1717,18 +1414,14 @@ }, /obj/item/weapon/gun/revolver/m44, /obj/item/weapon/gun/revolver/m44, -/turf/open/floor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/asteroidplating, /area/corsat/sigma/biodome/gunrange) "FC" = ( /obj/structure/cargo_container/arious/rightmid, /turf/open/ice, /area/corsat/sigma/biodome/scrapyard) "FI" = ( -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/airlock/control) "Gd" = ( /obj/structure/surface/rack, @@ -1739,17 +1432,13 @@ name = "Weapon Rack" }, /obj/item/ammo_magazine/flamer_tank, -/turf/open/floor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/asteroidplating, /area/corsat/sigma/biodome/gunrange) "Gf" = ( /obj/structure/surface/table/almayer, /obj/item/explosive/grenade/high_explosive/frag, /obj/item/explosive/grenade/high_explosive/frag, -/turf/open/floor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/asteroidplating, /area/corsat/sigma/biodome/gunrange) "Gj" = ( /obj/structure/target, @@ -1762,9 +1451,7 @@ desc = "A rectangular steel crate containing firing targets."; name = "target crate" }, -/turf/open/floor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/asteroidplating, /area/corsat/sigma/biodome/gunrange) "GJ" = ( /obj/structure/machinery/power/apc/high{ @@ -1773,43 +1460,28 @@ start_charge = 0 }, /obj/structure/closet/wardrobe/atmospherics_yellow, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/west, /area/corsat/sigma/airlock/control) "GK" = ( -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/emergency_access) "GO" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/airlock/control) "GW" = ( /obj/structure/surface/table/almayer, /obj/effect/spawner/random/technology_scanner, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/airlock/control) "GZ" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/east, /area/corsat/sigma/airlock/control) "Hh" = ( /obj/structure/pipes/binary/pump/high_power/on{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/northeast, /area/corsat/sigma/airlock/control) "HB" = ( /obj/effect/decal/warning_stripes{ @@ -1829,10 +1501,7 @@ use_power = 0 }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/corsat/sigma/biodome/gunrange) "HV" = ( /obj/structure/window/framed/corsat, @@ -1843,37 +1512,26 @@ dir = 8 }, /obj/structure/machinery/disposal, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/west, /area/corsat/sigma/airlock/control) "Ib" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/emails{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/airlock/control) "Ih" = ( /obj/structure/bed/chair/office/light{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner/east, /area/corsat/sigma/airlock/control) "Im" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/north, /area/corsat/sigma/airlock/control) "Iw" = ( /turf/open/auto_turf/snow/layer2, @@ -1881,10 +1539,7 @@ "ID" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/computer/atmos_alert, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/northwest, /area/corsat/sigma/airlock/control) "IJ" = ( /obj/structure/fence, @@ -1892,18 +1547,12 @@ /area/corsat/sigma/biodome/gunrange) "IR" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner/east, /area/corsat/sigma/airlock/control) "IV" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/computer/station_alert, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/north, /area/corsat/sigma/airlock/control) "Jm" = ( /obj/effect/decal/warning_stripes{ @@ -1922,24 +1571,15 @@ /obj/structure/machinery/camera/autoname{ network = list("sigma") }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/north, /area/corsat/sigma/airlock/control) "Jy" = ( /obj/structure/filingcabinet/filingcabinet, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/north, /area/corsat/sigma/airlock/control) "JQ" = ( /obj/structure/machinery/photocopier, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/northeast, /area/corsat/sigma/airlock/control) "JT" = ( /obj/structure/window/framed/corsat, @@ -1959,71 +1599,49 @@ /area/corsat/sigma/biodome/ice) "Kj" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/north, /area/corsat/sigma/biodome/ice) "Kq" = ( /obj/structure/machinery/camera/autoname{ dir = 8; network = list("sigma") }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/north, /area/corsat/sigma/biodome/ice) "Kr" = ( -/turf/open/floor/corsat{ - icon_state = "sigma" - }, +/turf/open/floor/corsat/sigma, /area/corsat/sigma/airlock/control) "Ku" = ( /obj/structure/surface/table/almayer, /obj/item/device/flashlight/lamp, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/airlock/control) "Kw" = ( /obj/structure/surface/table/almayer, /obj/item/folder/black_random, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/airlock/control) "KA" = ( /obj/structure/surface/rack, /obj/item/tool/shovel, /obj/item/tool/shovel, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/corsat/sigma/biodome/ice) "KF" = ( /obj/structure/surface/table/almayer, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/airlock/control) "KN" = ( /turf/open/auto_turf/snow/layer4, /area/corsat/sigma/biodome/gunrange) "KR" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/east, /area/corsat/sigma/airlock/control) "KU" = ( /obj/structure/bed/chair/office/light{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/airlock/control) "KV" = ( /obj/effect/decal/warning_stripes{ @@ -2038,47 +1656,32 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/north, /area/corsat/sigma/airlock/control) "Lg" = ( /obj/structure/surface/table/almayer, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/north, /area/corsat/sigma/airlock/control) "Lr" = ( /obj/structure/surface/table/almayer, /obj/item/device/flashlight/lamp, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/northeast, /area/corsat/sigma/airlock/control) "Ly" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/airlock/control) "LC" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/airlock/control) "LF" = ( /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/airlock/control) "LH" = ( /obj/effect/decal/warning_stripes{ @@ -2096,10 +1699,7 @@ "Ms" = ( /obj/structure/fence, /obj/structure/fence, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/corsat/sigma/biodome/ice) "MA" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -2107,29 +1707,19 @@ }, /obj/effect/decal/cleanable/blood/splatter, /obj/effect/landmark/corpsespawner/pmc, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/airlock/control) "ME" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/north, /area/corsat/sigma/airlock/control) "Nk" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "bluecorner" - }, +/turf/open/floor/corsat/bluecorner/north, /area/corsat/sigma/airlock/control) "Nm" = ( /obj/structure/bed/chair/office/light{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/airlock/control) "Nn" = ( /obj/structure/barricade/wooden{ @@ -2141,32 +1731,20 @@ "Ns" = ( /obj/structure/surface/table/almayer, /obj/effect/landmark/item_pool_spawner/corsat_bio_lock, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/east, /area/corsat/sigma/airlock/control) "NA" = ( /obj/structure/fence, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/corsat/sigma/biodome/ice) "NI" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/corsat/sigma/biodome/ice) "NQ" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "bluecorner" - }, +/turf/open/floor/corsat/bluecorner/east, /area/corsat/sigma/airlock/control) "NS" = ( /obj/effect/decal/warning_stripes{ @@ -2185,24 +1763,17 @@ /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/airlock/control) "Om" = ( /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/airlock/control) "Ot" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "bluecorner" - }, +/turf/open/floor/corsat/bluecorner/west, /area/corsat/sigma/airlock/control) "OI" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/comdoor{ @@ -2213,25 +1784,19 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "blue" - }, +/turf/open/floor/corsat/blue, /area/corsat/sigma/airlock/control) "OK" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/airlock/control) "OR" = ( /obj/structure/bed/chair/office/light{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/airlock/control) "OT" = ( /obj/structure/pipes/standard/manifold/hidden/green, @@ -2246,10 +1811,7 @@ pixel_y = 5; use_power = 0 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/east, /area/corsat/sigma/airlock/control) "Po" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -2260,10 +1822,7 @@ dir = 1; network = list("sigma") }, -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/east, /area/corsat/sigma/biodome/ice) "PE" = ( /obj/structure/window/reinforced, @@ -2273,10 +1832,7 @@ /turf/open/ice, /area/corsat/sigma/biodome/ice) "PH" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/west, /area/corsat/sigma/airlock/control) "PM" = ( /obj/structure/surface/table/almayer, @@ -2286,9 +1842,7 @@ pixel_x = -5; use_power = 0 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/airlock/control) "PY" = ( /obj/item/cell/crap, @@ -2297,50 +1851,35 @@ "PZ" = ( /obj/structure/surface/table/almayer, /obj/item/device/flashlight, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/airlock/control) "Qd" = ( /obj/structure/bed/chair/office/light, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/airlock/control) "Qf" = ( /obj/structure/surface/table/almayer, /obj/item/paper_bin, /obj/item/tool/pen/red, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/corsat/red/southwest, /area/corsat/sigma/airlock/control) "Qi" = ( -/turf/open/floor/corsat{ - icon_state = "bluecorner" - }, +/turf/open/floor/corsat/bluecorner, /area/corsat/sigma/airlock/control) "Qm" = ( /obj/structure/machinery/light, -/turf/open/floor/corsat{ - icon_state = "blue" - }, +/turf/open/floor/corsat/blue, /area/corsat/sigma/airlock/control) "Qr" = ( /obj/structure/flora/pottedplant, -/turf/open/floor/corsat{ - icon_state = "blue" - }, +/turf/open/floor/corsat/blue, /area/corsat/sigma/airlock/control) "Qx" = ( /obj/structure/surface/table/almayer, /obj/item/clipboard, /obj/item/paper, /obj/item/tool/pen/red, -/turf/open/floor/corsat{ - icon_state = "blue" - }, +/turf/open/floor/corsat/blue, /area/corsat/sigma/airlock/control) "QD" = ( /obj/structure/cargo_container/grant/left, @@ -2354,10 +1893,7 @@ "QU" = ( /obj/structure/surface/table/almayer, /obj/item/device/camera, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/southeast, /area/corsat/sigma/airlock/control) "Rb" = ( /obj/structure/machinery/portable_atmospherics/canister/carbon_dioxide, @@ -2368,34 +1904,24 @@ dir = 8 }, /obj/structure/closet/firecloset, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/sigma/airlock/control) "Ri" = ( /obj/structure/bed/chair/office/light{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner, /area/corsat/sigma/airlock/control) "Rn" = ( /obj/structure/machinery/light, -/turf/open/floor/corsat{ - icon_state = "red" - }, +/turf/open/floor/corsat/red, /area/corsat/sigma/airlock/control) "Rp" = ( /obj/structure/machinery/camera/autoname{ dir = 8; network = list("sigma") }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/east, /area/corsat/sigma/airlock/control) "Rq" = ( /obj/structure/surface/table/reinforced, @@ -2403,10 +1929,7 @@ dir = 1; network = list("sigma") }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/southwest, /area/corsat/sigma/airlock/control) "Rw" = ( /obj/structure/bed/chair{ @@ -2428,16 +1951,12 @@ pixel_x = 5; use_power = 0 }, -/turf/open/floor/corsat{ - icon_state = "blue" - }, +/turf/open/floor/corsat/blue, /area/corsat/sigma/airlock/control) "RD" = ( /obj/structure/surface/table/reinforced, /obj/item/device/flashlight/lamp, -/turf/open/floor/corsat{ - icon_state = "blue" - }, +/turf/open/floor/corsat/blue, /area/corsat/sigma/airlock/control) "RI" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -2450,21 +1969,14 @@ /area/corsat/sigma/biodome/scrapyard) "RQ" = ( /obj/structure/machinery/computer3, -/turf/open/floor/corsat{ - icon_state = "blue" - }, +/turf/open/floor/corsat/blue, /area/corsat/sigma/airlock/control) "RR" = ( -/turf/open/floor/corsat{ - dir = 6; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/southeast, /area/corsat/sigma/airlock/control) "Sg" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/corsat/sigma/biodome/ice) "Sh" = ( /obj/structure/cargo_container/arious/leftmid, @@ -2476,28 +1988,17 @@ /area/corsat/sigma/biodome/ice) "Sm" = ( /obj/structure/closet/emcloset, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/sigma/airlock/control) "Ss" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/sigma/airlock/control) "Su" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/sigma/airlock/control) "Sy" = ( /obj/effect/landmark/survivor_spawner, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/airlock/control) "SK" = ( /obj/structure/fence, @@ -2507,21 +2008,13 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/corsat/sigma/biodome/ice) "To" = ( -/turf/open/floor/corsat{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/corsat/red/southwest, /area/corsat/sigma/airlock/control) "Tq" = ( -/turf/open/floor/corsat{ - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner, /area/corsat/sigma/airlock/control) "Tw" = ( /obj/effect/decal/warning_stripes{ @@ -2550,15 +2043,10 @@ /turf/open/auto_turf/snow/layer1, /area/corsat/sigma/biodome/scrapyard) "TC" = ( -/turf/open/floor/corsat{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/corsat/red/southeast, /area/corsat/sigma/airlock/control) "TP" = ( -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/corsat/sigma/airlock/control) "TX" = ( /turf/open/ice, @@ -2571,16 +2059,11 @@ /obj/item/clothing/shoes/snow, /obj/item/clothing/shoes/snow, /obj/item/clothing/shoes/snow, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/airlock/control) "Uu" = ( /obj/structure/closet/athletic_mixed, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/corsat/sigma/biodome/ice) "Uv" = ( /obj/structure/bed/chair, @@ -2599,9 +2082,7 @@ /area/template_noop) "UX" = ( /obj/effect/decal/cleanable/cobweb, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/emergency_access) "Vh" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ @@ -2610,9 +2091,7 @@ req_access_txt = "101" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/airlock/control) "Vi" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ @@ -2620,9 +2099,7 @@ name = "ID Checkpoint"; req_access_txt = "101" }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/airlock/control) "Vq" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -2636,9 +2113,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/corsat/sigma/airlock/control) "Vz" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -2648,13 +2123,9 @@ /area/corsat/sigma/biodome/ice) "VF" = ( /obj/structure/machinery/floodlight{ - name = "Floodlight"; - unacidable = 0 - }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" + name = "Floodlight" }, +/turf/open/floor/asteroidfloor/north, /area/corsat/sigma/biodome/ice) "VJ" = ( /obj/structure/pipes/vents/pump/siphon/on{ @@ -2665,33 +2136,23 @@ /area/corsat/inaccessible) "VL" = ( /obj/structure/closet/secure_closet/security, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/sigma/airlock/control) "VR" = ( /obj/structure/bed/chair/comfy/black{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/airlock/control) "Wd" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/door/window/brigdoor/westleft, /obj/structure/machinery/door/window/brigdoor/eastleft, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/airlock/control) "Wj" = ( /obj/structure/flora/pottedplant, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/north, /area/corsat/sigma/airlock/control) "Wk" = ( /turf/closed/wall/strata_ice, @@ -2710,37 +2171,25 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/airlock/control) "WL" = ( -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/corsat/sigma/airlock/control) "WW" = ( /obj/item/folder/black_random, /obj/structure/surface/table/reinforced, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/sigma/airlock/control) "WY" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/computer/secure_data{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/airlock/control) "Xm" = ( -/turf/open/floor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/asteroidplating, /area/corsat/sigma/biodome/gunrange) "Xv" = ( /turf/open/floor/corsat, @@ -2764,24 +2213,18 @@ /area/corsat/sigma/biodome/ice) "XG" = ( /obj/structure/closet/emcloset, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/airlock/control) "XK" = ( /obj/structure/machinery/light, /obj/structure/closet/firecloset, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/airlock/control) "XM" = ( /obj/structure/sign/safety/airlock{ pixel_y = -32 }, -/turf/open/floor/corsat{ - icon_state = "sigma" - }, +/turf/open/floor/corsat/sigma, /area/corsat/sigma/airlock/control) "XN" = ( /obj/structure/pipes/vents/pump, @@ -2795,9 +2238,7 @@ id = "SigmaWestW"; name = "Sigma West Airlock" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/corsat/sigma/airlock/control) "Yn" = ( /obj/effect/decal/warning_stripes{ @@ -2813,18 +2254,14 @@ /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/corsat/sigma/airlock/control) "Yu" = ( /obj/structure/machinery/door/poddoor/two_tile/four_tile/vertical/opened{ id = "SigmaWestE"; name = "Sigma West Airlock" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/corsat/sigma/airlock/control) "YC" = ( /obj/effect/landmark/survivor_spawner, @@ -2854,19 +2291,14 @@ dir = 4; network = list("sigma") }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/corsat/sigma/airlock/control) "YW" = ( /obj/structure/bed/chair/office/light{ dir = 8 }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/corsat/sigma/airlock/control) "YX" = ( /obj/effect/decal/cleanable/dirt, @@ -2874,10 +2306,7 @@ /area/corsat/emergency_access) "Zd" = ( /obj/structure/machinery/photocopier, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/corsat/sigma/airlock/control) "Zf" = ( /turf/open/auto_turf/snow/layer2, @@ -2891,9 +2320,7 @@ /area/corsat/sigma/biodome/ice) "Zy" = ( /obj/structure/sign/safety/airlock, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/corsat/sigma/airlock/control) "ZB" = ( /obj/effect/decal/warning_stripes{ @@ -2908,33 +2335,22 @@ /obj/structure/surface/table/almayer, /obj/item/storage/donut_box, /obj/item/tool/lighter/random, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/corsat/red/southwest, /area/corsat/sigma/airlock/control) "ZD" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner, /area/corsat/sigma/airlock/control) "ZH" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/west, /area/corsat/sigma/airlock/control) "ZL" = ( -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/north, /area/corsat/sigma/biodome/gunrange) (1,1,1) = {" diff --git a/maps/map_files/DesertDam/Desert_Dam.dmm b/maps/map_files/DesertDam/Desert_Dam.dmm index 4bf4d0e7a88c..2e078646853d 100644 --- a/maps/map_files/DesertDam/Desert_Dam.dmm +++ b/maps/map_files/DesertDam/Desert_Dam.dmm @@ -29,25 +29,17 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/lab_northeast/east_lab_containment) "aaf" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/lab_northeast/east_lab_containment) "aag" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/mars{ - icon_state = "mars_dirt_10" - }, +/turf/open/mars/mars_dirt_10, /area/desert_dam/interior/lab_northeast/east_lab_containment) "aah" = ( /obj/structure/closet/fireaxecabinet, @@ -70,14 +62,10 @@ /turf/open/desert/rock/deep/transition, /area/desert_dam/interior/caves/east_caves) "aam" = ( -/turf/open/desert/rock/deep{ - icon_state = "rock3" - }, +/turf/open/desert/rock/deep/rock3, /area/desert_dam/exterior/valley/valley_wilderness) "aan" = ( -/turf/open/desert/rock/deep/transition{ - dir = 4 - }, +/turf/open/desert/rock/deep/transition/east, /area/desert_dam/exterior/valley/valley_wilderness) "aao" = ( /obj/effect/blocker/toxic_water, @@ -85,14 +73,10 @@ /area/desert_dam/exterior/river/riverside_east) "aap" = ( /obj/effect/blocker/toxic_water, -/turf/open/desert/desert_shore/shore_corner2{ - dir = 8 - }, +/turf/open/desert/desert_shore/shore_corner2/west, /area/desert_dam/exterior/river/riverside_east) "aaq" = ( -/turf/open/desert/dirt{ - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1, /area/desert_dam/interior/caves/east_caves) "aar" = ( /turf/open/gm/river/desert/deep, @@ -111,37 +95,29 @@ /obj/structure/machinery/landinglight/ds2/delayone{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached9" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached9, /area/desert_dam/exterior/landing_pad_two) "aaw" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached1" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached1, /area/desert_dam/exterior/valley/valley_wilderness) "aax" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 4 }, -/turf/open/desert/desert_shore/desert_shore1{ - dir = 8 - }, +/turf/open/desert/desert_shore/desert_shore1/west, /area/desert_dam/interior/caves/east_caves) "aay" = ( /turf/open/gm/river/desert/shallow, /area/desert_dam/interior/caves/east_caves) "aaz" = ( -/turf/open/gm/river/desert/shallow_corner{ - dir = 4 - }, +/turf/open/gm/river/desert/shallow_corner/east, /area/desert_dam/interior/caves/east_caves) "aaA" = ( /obj/structure/desertdam/decals/road_edge{ icon_state = "road_edge_decal11" }, /turf/open/asphalt, -/area/desert_dam/exterior/valley/valley_northwest) +/area/desert_dam/exterior/landing_pad_one) "aaB" = ( /obj/structure/desertdam/decals/road_edge{ icon_state = "road_edge_decal9" @@ -156,24 +132,17 @@ /area/desert_dam/exterior/valley/valley_wilderness) "aaD" = ( /obj/effect/blocker/toxic_water, -/turf/open/desert/desert_shore/desert_shore1{ - dir = 1 - }, +/turf/open/desert/desert_shore/desert_shore1/north, /area/desert_dam/exterior/river/riverside_east) "aaE" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/north, /area/desert_dam/interior/lab_northeast/east_lab_central_hallway) "aaF" = ( /obj/structure/cargo_container/kelland/left, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_labs) "aaG" = ( /obj/structure/prop/brazier, @@ -181,38 +150,28 @@ /area/desert_dam/interior/caves/temple) "aaH" = ( /obj/structure/cargo_container/kelland/right, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_labs) "aaI" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 4 }, /obj/effect/blocker/toxic_water, -/turf/open/desert/desert_shore/shore_edge1{ - dir = 4 - }, +/turf/open/desert/desert_shore/shore_edge1/east, /area/desert_dam/exterior/river/riverside_east) "aaJ" = ( /obj/structure/largecrate/random/case/small, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_labs) "aaK" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 1 }, -/turf/open/desert/dirt{ - icon_state = "dirt2" - }, +/turf/open/desert/dirt/dirt2, /area/desert_dam/exterior/river/riverside_east) "aaL" = ( /obj/item/trash/c_tube, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_labs) "aaM" = ( /obj/structure/disposalpipe/segment{ @@ -225,22 +184,16 @@ /area/desert_dam/exterior/valley/valley_wilderness) "aaN" = ( /obj/structure/largecrate/random/barrel/white, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_labs) "aaO" = ( /obj/effect/blocker/toxic_water, -/turf/open/gm/river/desert/shallow_edge{ - dir = 1 - }, +/turf/open/gm/river/desert/shallow_edge/north, /area/desert_dam/exterior/river/riverside_east) "aaP" = ( /obj/structure/floodgate, /obj/effect/blocker/toxic_water/Group_2, -/turf/open/gm/river/desert/shallow_edge{ - dir = 8 - }, +/turf/open/gm/river/desert/shallow_edge/west, /area/desert_dam/exterior/river/riverside_central_north) "aaQ" = ( /obj/structure/floodgate, @@ -251,9 +204,7 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached2" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached2, /area/desert_dam/exterior/valley/valley_labs) "aaT" = ( /obj/structure/desertdam/decals/road_edge{ @@ -263,9 +214,7 @@ /turf/open/asphalt, /area/desert_dam/exterior/valley/valley_labs) "aaU" = ( -/turf/open/desert/desert_shore/shore_edge1{ - dir = 4 - }, +/turf/open/desert/desert_shore/shore_edge1/east, /area/desert_dam/exterior/valley/valley_labs) "aaV" = ( /obj/structure/desertdam/decals/road_edge{ @@ -276,51 +225,38 @@ /area/desert_dam/exterior/valley/valley_labs) "aaW" = ( /obj/effect/blocker/toxic_water, -/turf/open/gm/river/desert/shallow_edge{ - dir = 5 - }, +/turf/open/gm/river/desert/shallow_edge/northeast, /area/desert_dam/exterior/river/riverside_east) "aaX" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached20" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached20, /area/desert_dam/exterior/valley/valley_labs) "aaY" = ( /obj/effect/decal/sand_overlay/sand1, /obj/structure/machinery/colony_floodlight, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached18" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached18, /area/desert_dam/exterior/valley/valley_medical) "aaZ" = ( /obj/structure/platform, /obj/structure/platform{ dir = 4 }, -/turf/open/desert/dirt{ - icon_state = "dirt2" - }, +/turf/open/desert/dirt/dirt2, /area/desert_dam/exterior/river/riverside_central_north) "aba" = ( /obj/structure/flora/grass/desert/lightgrass_9, -/turf/open/desert/dirt{ - dir = 4; - icon_state = "desert_transition_edge1" - }, -/area/desert_dam/exterior/valley/valley_northwest) +/turf/open/desert/dirt/desert_transition_edge1/east, +/area/desert_dam/exterior/landing_pad_one) "abb" = ( /obj/structure/flora/bush/desert{ icon_state = "tree_3" }, /turf/open/desert/dirt, -/area/desert_dam/exterior/valley/valley_northwest) +/area/desert_dam/exterior/landing_pad_one) "abc" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached3" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached3, /area/desert_dam/exterior/valley/valley_labs) "abd" = ( /obj/effect/decal/cleanable/dirt, @@ -345,41 +281,29 @@ /obj/structure/platform{ dir = 1 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached2" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached2, /area/desert_dam/exterior/valley/valley_medical) "abh" = ( /obj/item/trash/USCMtray, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached13" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached13, /area/desert_dam/exterior/valley/valley_labs) "abi" = ( /obj/structure/closet/firecloset, -/turf/open/floor/prison{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/northeast, /area/desert_dam/interior/lab_northeast/east_lab_east_hallway) "abj" = ( /obj/structure/flora/grass/tallgrass/desert/corner{ dir = 6 }, -/turf/open/desert/dirt{ - dir = 6; - icon_state = "desert_transition_edge1" - }, -/area/desert_dam/exterior/valley/valley_northwest) +/turf/open/desert/dirt/desert_transition_edge1/southeast, +/area/desert_dam/exterior/landing_pad_one) "abk" = ( /turf/closed/wall/hangar{ name = "reinforced metal wall" }, /area/desert_dam/exterior/valley/south_valley_dam) "abl" = ( -/turf/open/desert/desert_shore/desert_shore1{ - dir = 1 - }, +/turf/open/desert/desert_shore/desert_shore1/north, /area/desert_dam/exterior/valley/valley_labs) "abm" = ( /obj/structure/floodgate{ @@ -402,9 +326,7 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached3" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached3, /area/desert_dam/exterior/valley/valley_labs) "abq" = ( /obj/structure/powerloader_wreckage, @@ -412,23 +334,14 @@ /turf/open/asphalt, /area/desert_dam/exterior/valley/valley_labs) "abr" = ( -/turf/open/gm/river/desert/shallow_edge{ - dir = 5 - }, +/turf/open/gm/river/desert/shallow_edge/northeast, /area/desert_dam/exterior/valley/valley_labs) "abs" = ( -/turf/open/desert/desert_shore/shore_corner2{ - dir = 8 - }, +/turf/open/desert/desert_shore/shore_corner2/west, /area/desert_dam/exterior/valley/valley_labs) -"abt" = ( -/turf/open/desert/rock, -/area/desert_dam/exterior/rock) "abu" = ( /obj/effect/blocker/toxic_water, -/turf/open/gm/river/desert/shallow_edge{ - dir = 9 - }, +/turf/open/gm/river/desert/shallow_edge/northwest, /area/desert_dam/exterior/river/riverside_east) "abv" = ( /obj/effect/decal/cleanable/dirt, @@ -442,16 +355,11 @@ /area/desert_dam/exterior/valley/valley_labs) "abx" = ( /obj/effect/landmark/xeno_spawn, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/lab_northeast/east_lab_containment) "aby" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached1" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached1, /area/desert_dam/exterior/valley/valley_labs) "abz" = ( /obj/effect/decal/cleanable/blood/oil, @@ -469,18 +377,14 @@ /obj/structure/platform{ dir = 8 }, -/turf/open/gm/river/desert/shallow_edge{ - dir = 9 - }, +/turf/open/gm/river/desert/shallow_edge/northwest, /area/desert_dam/exterior/valley/valley_labs) "abC" = ( /obj/structure/platform{ dir = 4 }, /obj/effect/blocker/toxic_water/Group_2, -/turf/open/gm/river/desert/shallow_edge{ - dir = 5 - }, +/turf/open/gm/river/desert/shallow_edge/northeast, /area/desert_dam/exterior/river/riverside_central_north) "abD" = ( /obj/structure/disposalpipe/segment{ @@ -501,57 +405,40 @@ dir = 4 }, /obj/effect/blocker/toxic_water/Group_2, -/turf/open/gm/river/desert/shallow_edge{ - dir = 6 - }, +/turf/open/gm/river/desert/shallow_edge/southeast, /area/desert_dam/exterior/river/riverside_central_north) "abH" = ( /obj/effect/landmark/xeno_spawn, /obj/effect/landmark/queen_spawn, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/interior/lab_northeast/east_lab_biology) "abI" = ( /obj/structure/surface/table, /obj/item/tool/shovel/spade, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/desert_dam/building/lab_northwest/west_lab_xenoflora) "abJ" = ( /obj/effect/blocker/toxic_water, -/turf/open/gm/river/desert/shallow_corner{ - dir = 1 - }, +/turf/open/gm/river/desert/shallow_corner/north, /area/desert_dam/exterior/river/riverside_east) "abK" = ( -/turf/open/desert/desert_shore/shore_corner2{ - dir = 1 - }, +/turf/open/desert/desert_shore/shore_corner2/north, /area/desert_dam/exterior/valley/valley_labs) "abL" = ( /obj/structure/disposalpipe/segment{ dir = 2; icon_state = "pipe-c" }, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/interior/lab_northeast/east_lab_east_hallway) "abM" = ( -/turf/open/gm/river/desert/shallow_edge{ - dir = 9 - }, +/turf/open/gm/river/desert/shallow_edge/northwest, /area/desert_dam/exterior/valley/valley_labs) "abN" = ( /obj/structure/flora/grass/desert/lightgrass_10, -/turf/open/desert/dirt{ - dir = 5; - icon_state = "desert_transition_edge1" - }, -/area/desert_dam/exterior/valley/valley_northwest) +/turf/open/desert/dirt/desert_transition_edge1/northeast, +/area/desert_dam/exterior/landing_pad_one) "abO" = ( /obj/structure/surface/rack, /turf/open/floor/prison, @@ -560,29 +447,21 @@ /obj/structure/platform{ dir = 8 }, -/turf/open/gm/river/desert/shallow_edge{ - dir = 8 - }, +/turf/open/gm/river/desert/shallow_edge/west, /area/desert_dam/exterior/valley/valley_labs) "abQ" = ( /obj/structure/machinery/landinglight/ds1/delayone, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached4" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached4, /area/desert_dam/exterior/landing_pad_one) "abR" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 9 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_labs) "abS" = ( /obj/structure/machinery/landinglight/ds2, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached12" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached12, /area/desert_dam/exterior/landing_pad_two) "abT" = ( /obj/structure/machinery/conveyor{ @@ -602,15 +481,11 @@ /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 1 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached3" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached3, /area/desert_dam/exterior/valley/valley_labs) "abW" = ( /obj/structure/fence, -/turf/open/desert/rock/deep{ - icon_state = "rock3" - }, +/turf/open/desert/rock/deep/rock3, /area/desert_dam/interior/caves/east_caves) "abX" = ( /obj/structure/largecrate/random, @@ -630,23 +505,17 @@ /turf/open/asphalt, /area/desert_dam/exterior/valley/valley_wilderness) "aca" = ( -/turf/open/gm/river/desert/shallow_edge{ - dir = 1 - }, +/turf/open/gm/river/desert/shallow_edge/north, /area/desert_dam/exterior/valley/valley_labs) "acb" = ( -/turf/open/gm/river/desert/shallow_corner{ - dir = 1 - }, +/turf/open/gm/river/desert/shallow_corner/north, /area/desert_dam/exterior/valley/valley_labs) "acc" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 8 }, /obj/structure/largecrate/random, -/turf/open/desert/dirt{ - icon_state = "dirt2" - }, +/turf/open/desert/dirt/dirt2, /area/desert_dam/exterior/valley/valley_labs) "acd" = ( /obj/structure/floodgate{ @@ -656,18 +525,13 @@ /area/desert_dam/exterior/river/riverside_east) "acf" = ( /obj/structure/surface/table, -/turf/open/floor{ - dir = 8; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/west, /area/desert_dam/building/lab_northwest/west_lab_xenoflora) "acg" = ( /obj/structure/barricade/wooden{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached13" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached13, /area/desert_dam/exterior/valley/valley_labs) "ach" = ( /turf/open/gm/river/desert/deep, @@ -684,15 +548,11 @@ dir = 10 }, /obj/structure/largecrate/random/secure, -/turf/open/desert/dirt{ - icon_state = "dirt2" - }, +/turf/open/desert/dirt/dirt2, /area/desert_dam/exterior/valley/valley_labs) "ack" = ( /obj/effect/blocker/toxic_water, -/turf/open/gm/river/desert/shallow_corner{ - dir = 4 - }, +/turf/open/gm/river/desert/shallow_corner/east, /area/desert_dam/exterior/river/riverside_east) "acn" = ( /obj/item/trash/eat, @@ -713,9 +573,7 @@ /area/desert_dam/exterior/valley/valley_labs) "acq" = ( /obj/structure/tunnel, -/turf/open/desert/dirt{ - icon_state = "rock1" - }, +/turf/open/desert/dirt/rock1, /area/desert_dam/interior/lab_northeast/east_lab_west_entrance) "acr" = ( /obj/effect/blocker/toxic_water, @@ -744,9 +602,7 @@ /area/desert_dam/interior/dam_interior/east_tunnel_entrance) "acx" = ( /obj/structure/machinery/colony_floodlight, -/turf/open/desert/rock/deep/transition{ - dir = 1 - }, +/turf/open/desert/rock/deep/transition/north, /area/desert_dam/interior/dam_interior/south_tunnel) "acy" = ( /obj/item/trash/plate, @@ -766,38 +622,28 @@ dir = 4 }, /obj/item/trash/used_stasis_bag, -/turf/open/desert/dirt{ - icon_state = "dirt2" - }, +/turf/open/desert/dirt/dirt2, /area/desert_dam/exterior/river/riverside_central_north) "acC" = ( /obj/structure/prop/dam/wide_boulder/boulder1, -/turf/open/desert/dirt{ - icon_state = "dirt2" - }, +/turf/open/desert/dirt/dirt2, /area/desert_dam/exterior/river/riverside_central_north) "acD" = ( -/turf/open/desert/desert_shore/desert_shore1{ - dir = 4 - }, +/turf/open/desert/desert_shore/desert_shore1/east, /area/desert_dam/exterior/valley/valley_labs) "acE" = ( /obj/structure/machinery/sentry_holder/colony{ dir = 8; pixel_x = 24 }, -/turf/open/desert/dirt{ - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1, /area/desert_dam/interior/lab_northeast/east_lab_west_entrance) "acF" = ( /obj/structure/machinery/sentry_holder/colony{ dir = 4; pixel_x = -24 }, -/turf/open/desert/rock/deep/transition{ - dir = 1 - }, +/turf/open/desert/rock/deep/transition/north, /area/desert_dam/interior/lab_northeast/east_lab_west_entrance) "acG" = ( /obj/structure/disposalpipe/segment{ @@ -807,75 +653,51 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/interior/lab_northeast/east_lab_central_hallway) "acH" = ( -/turf/open/gm/river/desert/shallow_corner{ - dir = 4 - }, +/turf/open/gm/river/desert/shallow_corner/east, /area/desert_dam/exterior/valley/valley_labs) "acI" = ( /obj/structure/machinery/landinglight/ds1, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached3" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached3, /area/desert_dam/exterior/landing_pad_one) "acJ" = ( /obj/structure/machinery/landinglight/ds1/delaytwo, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached1" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached1, /area/desert_dam/exterior/landing_pad_one) "acK" = ( -/turf/open/floor/prison{ - dir = 9; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/northwest, /area/desert_dam/interior/lab_northeast/east_lab_west_hallway) "acL" = ( /obj/item/trash/burger, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached16" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached16, /area/desert_dam/exterior/valley/valley_labs) "acM" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 4 }, /obj/structure/largecrate/random/barrel/green, -/turf/open/desert/dirt{ - icon_state = "dirt2" - }, +/turf/open/desert/dirt/dirt2, /area/desert_dam/exterior/river/riverside_central_north) "acN" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 1 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/interior/lab_northeast/east_lab_west_entrance) "acO" = ( /obj/effect/decal/sand_overlay/sand2{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/north, /area/desert_dam/interior/lab_northeast/east_lab_west_entrance) "acP" = ( -/turf/open/gm/river/desert/shallow_edge{ - dir = 6 - }, +/turf/open/gm/river/desert/shallow_edge/southeast, /area/desert_dam/exterior/valley/valley_labs) "acQ" = ( /obj/effect/landmark/xeno_spawn, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/interior/lab_northeast/east_lab_central_hallway) "acR" = ( /obj/effect/decal/warning_stripes{ @@ -884,26 +706,18 @@ /turf/open/asphalt, /area/desert_dam/exterior/valley/valley_labs) "acS" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached9" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached9, /area/desert_dam/interior/lab_northeast/east_lab_west_entrance) "acT" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/interior/lab_northeast/east_lab_west_entrance) "acU" = ( /obj/effect/landmark/xeno_spawn, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/interior/lab_northeast/east_lab_workshop) "acV" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached15" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached15, /area/desert_dam/interior/lab_northeast/east_lab_west_entrance) "acW" = ( /obj/structure/largecrate/random/secure, @@ -913,20 +727,14 @@ /obj/structure/platform{ dir = 8 }, -/turf/open/gm/river/desert/shallow_edge{ - dir = 10 - }, +/turf/open/gm/river/desert/shallow_edge/southwest, /area/desert_dam/exterior/valley/valley_labs) "acY" = ( -/turf/open/desert/rock/deep{ - icon_state = "rock3" - }, +/turf/open/desert/rock/deep/rock3, /area/desert_dam/interior/caves/east_caves) "acZ" = ( /obj/effect/decal/sand_overlay/sand1, -/turf/open/desert/dirt{ - icon_state = "dirt2" - }, +/turf/open/desert/dirt/dirt2, /area/desert_dam/exterior/valley/valley_crashsite) "ada" = ( /turf/open/desert/rock, @@ -936,9 +744,7 @@ /obj/structure/machinery/landinglight/ds1/delaytwo{ dir = 8 }, -/turf/open/floor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/asteroidplating, /area/desert_dam/exterior/landing_pad_one) "adc" = ( /obj/structure/fence, @@ -949,28 +755,19 @@ /area/desert_dam/interior/caves/east_caves) "ade" = ( /obj/structure/machinery/colony_floodlight, -/turf/open/desert/dirt{ - dir = 8; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/west, /area/desert_dam/exterior/valley/valley_labs) "adf" = ( /obj/structure/machinery/landinglight/ds2/delayone, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached12" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached12, /area/desert_dam/exterior/landing_pad_two) "adg" = ( /obj/effect/decal/sand_overlay/sand1/corner1, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached13" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached13, /area/desert_dam/exterior/valley/valley_wilderness) "adh" = ( /obj/effect/decal/sand_overlay/sand1, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/interior/lab_northeast/east_lab_west_entrance) "adi" = ( /obj/structure/surface/table, @@ -982,10 +779,7 @@ /turf/open/floor/prison, /area/desert_dam/exterior/valley/south_valley_dam) "adj" = ( -/turf/open/desert/dirt{ - dir = 8; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/west, /area/desert_dam/exterior/valley/valley_labs) "adk" = ( /obj/structure/surface/table, @@ -1009,10 +803,7 @@ /turf/open/floor/prison, /area/desert_dam/exterior/valley/south_valley_dam) "adn" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/prison/whitepurplecorner/west, /area/desert_dam/interior/lab_northeast/east_lab_west_entrance) "ado" = ( /obj/structure/machinery/vending/coffee, @@ -1020,39 +811,29 @@ /area/desert_dam/exterior/valley/south_valley_dam) "adp" = ( /obj/effect/blocker/toxic_water, -/turf/open/gm/river/desert/shallow_corner{ - dir = 8 - }, +/turf/open/gm/river/desert/shallow_corner/west, /area/desert_dam/exterior/river/riverside_east) "adq" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 8 }, /obj/structure/prop/dam/truck/damaged, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached1" - }, -/area/desert_dam/exterior/valley/valley_northwest) +/turf/open/asphalt/cement_sunbleached/cement_sunbleached1, +/area/desert_dam/exterior/landing_pad_one) "adr" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 6 }, -/turf/open/desert/dirt{ - icon_state = "dirt2" - }, +/turf/open/desert/dirt/dirt2, /area/desert_dam/exterior/valley/valley_crashsite) "ads" = ( -/turf/open/desert/dirt{ - icon_state = "desert_transition_corner1" - }, +/turf/open/desert/dirt/desert_transition_corner1, /area/desert_dam/interior/dam_interior/south_tunnel) "adt" = ( /turf/closed/wall/wood, /area/desert_dam/building/bar/backroom) "adu" = ( -/turf/open/desert/rock/deep/transition{ - dir = 4 - }, +/turf/open/desert/rock/deep/transition/east, /area/desert_dam/interior/dam_interior/north_tunnel_entrance) "adv" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony{ @@ -1069,9 +850,7 @@ /turf/open/floor/interior/wood, /area/desert_dam/building/bar/backroom) "ady" = ( -/turf/open/desert/rock/deep/transition{ - dir = 5 - }, +/turf/open/desert/rock/deep/transition/northeast, /area/desert_dam/exterior/valley/valley_wilderness) "adz" = ( /obj/structure/closet/secure_closet/bar, @@ -1084,9 +863,7 @@ /obj/effect/decal/cleanable/blood{ icon_state = "gib6" }, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/administration/control_room) "adC" = ( /obj/effect/blocker/toxic_water/Group_2, @@ -1100,21 +877,15 @@ /area/desert_dam/interior/caves/east_caves) "adE" = ( /obj/structure/platform, -/turf/open/gm/river/desert/shallow_edge{ - dir = 6 - }, +/turf/open/gm/river/desert/shallow_edge/southeast, /area/desert_dam/exterior/valley/valley_labs) "adF" = ( -/turf/open/desert/rock/deep{ - icon_state = "rock3" - }, +/turf/open/desert/rock/deep/rock3, /area/desert_dam/interior/dam_interior/north_tunnel) "adG" = ( /obj/structure/platform, /obj/effect/blocker/toxic_water/Group_2, -/turf/open/gm/river/desert/shallow_corner{ - dir = 8 - }, +/turf/open/gm/river/desert/shallow_corner/west, /area/desert_dam/exterior/river/riverside_east) "adH" = ( /obj/structure/platform, @@ -1127,18 +898,13 @@ "adJ" = ( /obj/structure/platform, /obj/effect/blocker/toxic_water/Group_2, -/turf/open/gm/river/desert/shallow_corner{ - dir = 4 - }, +/turf/open/gm/river/desert/shallow_corner/east, /area/desert_dam/exterior/river/riverside_east) "adK" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 1 }, -/turf/open/floor/plating{ - dir = 1; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/north, /area/desert_dam/exterior/valley/valley_crashsite) "adL" = ( /obj/effect/blocker/toxic_water, @@ -1148,9 +914,7 @@ "adM" = ( /obj/structure/platform, /obj/effect/blocker/toxic_water, -/turf/open/gm/river/desert/shallow_edge{ - dir = 6 - }, +/turf/open/gm/river/desert/shallow_edge/southeast, /area/desert_dam/exterior/river/riverside_east) "adN" = ( /obj/structure/platform, @@ -1161,25 +925,19 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 8 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached9" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached9, /area/desert_dam/exterior/valley/valley_labs) "adP" = ( /obj/structure/platform, /obj/effect/blocker/toxic_water, -/turf/open/gm/river/desert/shallow_edge{ - dir = 10 - }, +/turf/open/gm/river/desert/shallow_edge/southwest, /area/desert_dam/exterior/river/riverside_east) "adQ" = ( /obj/structure/platform_decoration{ dir = 1 }, /obj/effect/blocker/toxic_water, -/turf/open/gm/river/desert/shallow_corner{ - dir = 8 - }, +/turf/open/gm/river/desert/shallow_corner/west, /area/desert_dam/exterior/river/riverside_east) "adR" = ( /obj/effect/blocker/toxic_water/Group_2, @@ -1190,15 +948,11 @@ dir = 8 }, /obj/effect/blocker/toxic_water, -/turf/open/gm/river/desert/shallow_edge{ - dir = 10 - }, +/turf/open/gm/river/desert/shallow_edge/southwest, /area/desert_dam/exterior/river/riverside_east) "adU" = ( /obj/effect/blocker/toxic_water, -/turf/open/gm/river/desert/shallow_edge{ - dir = 6 - }, +/turf/open/gm/river/desert/shallow_edge/southeast, /area/desert_dam/exterior/river/riverside_east) "adV" = ( /obj/structure/platform, @@ -1206,21 +960,15 @@ /area/desert_dam/exterior/valley/valley_labs) "adW" = ( /obj/structure/platform, -/turf/open/desert/desert_shore/shore_corner2{ - dir = 4 - }, +/turf/open/desert/desert_shore/shore_corner2/east, /area/desert_dam/exterior/valley/valley_labs) "adX" = ( /obj/effect/blocker/toxic_water, -/turf/open/desert/desert_shore/shore_corner2{ - dir = 4 - }, +/turf/open/desert/desert_shore/shore_corner2/east, /area/desert_dam/exterior/river/riverside_east) "adY" = ( /obj/structure/platform, -/turf/open/desert/desert_shore/shore_edge1{ - dir = 8 - }, +/turf/open/desert/desert_shore/shore_edge1/west, /area/desert_dam/exterior/valley/valley_labs) "adZ" = ( /obj/structure/flora/bush/desert/cactus/multiple{ @@ -1232,9 +980,7 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 8 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached13" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached13, /area/desert_dam/exterior/valley/valley_wilderness) "aeb" = ( /obj/effect/blocker/toxic_water, @@ -1260,25 +1006,18 @@ dir = 4; pixel_x = -24 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/west, /area/desert_dam/interior/lab_northeast/east_lab_west_entrance) "aeg" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 8 }, /obj/structure/largecrate/random/case/small, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached1" - }, -/area/desert_dam/exterior/valley/valley_northwest) +/turf/open/asphalt/cement_sunbleached/cement_sunbleached1, +/area/desert_dam/exterior/landing_pad_one) "aeh" = ( /obj/effect/blocker/toxic_water/Group_2, -/turf/open/desert/desert_shore/shore_edge1{ - dir = 8 - }, +/turf/open/desert/desert_shore/shore_edge1/west, /area/desert_dam/exterior/river/riverside_east) "aei" = ( /obj/structure/machinery/power/apc{ @@ -1286,10 +1025,7 @@ pixel_x = 28; start_charge = 0 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/east, /area/desert_dam/building/administration/control_room) "aej" = ( /obj/effect/decal/sand_overlay/sand1{ @@ -1329,27 +1065,16 @@ /turf/open/desert/dirt, /area/desert_dam/exterior/valley/valley_crashsite) "aep" = ( -/turf/open/desert/dirt{ - dir = 1; - icon_state = "desert_transition_corner1" - }, +/turf/open/desert/dirt/desert_transition_corner1/north, /area/desert_dam/exterior/valley/valley_labs) "aeq" = ( -/turf/open/desert/dirt{ - dir = 4; - icon_state = "desert_transition_corner1" - }, +/turf/open/desert/dirt/desert_transition_corner1/east, /area/desert_dam/exterior/valley/valley_labs) "aer" = ( -/turf/open/desert/rock/deep{ - icon_state = "rock3" - }, +/turf/open/desert/rock/deep/rock3, /area/desert_dam/interior/dam_interior/north_tunnel_entrance) "aes" = ( -/turf/open/desert/dirt{ - dir = 9; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/northwest, /area/desert_dam/interior/lab_northeast/east_lab_west_entrance) "aet" = ( /obj/structure/surface/table/reinforced, @@ -1357,31 +1082,19 @@ id = "dam_checkpoint_north"; name = "Checkpoint Lockdown" }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/prison/red/northwest, /area/desert_dam/interior/lab_northeast/east_lab_west_entrance) "aeu" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/prison/whitepurplecorner/east, /area/desert_dam/interior/lab_northeast/east_lab_west_entrance) "aev" = ( -/turf/open/desert/dirt{ - dir = 6; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/southeast, /area/desert_dam/exterior/valley/valley_labs) "aew" = ( -/turf/open/desert/dirt{ - dir = 10; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/southwest, /area/desert_dam/exterior/valley/valley_labs) "aex" = ( /obj/structure/window/reinforced/tinted{ @@ -1394,33 +1107,24 @@ /obj/item/clipboard, /obj/item/tool/stamp, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/administration/control_room) "aey" = ( /obj/effect/blocker/toxic_water, -/turf/open/gm/river/desert/shallow_edge{ - dir = 8 - }, +/turf/open/gm/river/desert/shallow_edge/west, /area/desert_dam/exterior/river/riverside_east) "aez" = ( /turf/open/desert/dirt, /area/desert_dam/exterior/valley/valley_labs) "aeA" = ( -/turf/open/desert/dirt{ - dir = 4; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/east, /area/desert_dam/exterior/valley/valley_labs) "aeB" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/administration/control_room) "aeC" = ( /obj/effect/decal/sand_overlay/sand1{ @@ -1441,18 +1145,14 @@ /area/desert_dam/exterior/valley/valley_wilderness) "aeF" = ( /obj/effect/blocker/toxic_water, -/turf/open/desert/desert_shore/shore_edge1{ - dir = 8 - }, +/turf/open/desert/desert_shore/shore_edge1/west, /area/desert_dam/exterior/river/riverside_east) "aeG" = ( /obj/structure/platform_decoration{ dir = 1 }, /obj/structure/platform, -/turf/open/desert/dirt{ - icon_state = "dirt2" - }, +/turf/open/desert/dirt/dirt2, /area/desert_dam/exterior/river/riverside_east) "aeH" = ( /obj/effect/blocker/toxic_water/Group_2, @@ -1464,31 +1164,23 @@ "aeI" = ( /obj/structure/platform, /obj/effect/blocker/toxic_water, -/turf/open/desert/desert_shore/desert_shore1{ - dir = 8 - }, +/turf/open/desert/desert_shore/desert_shore1/west, /area/desert_dam/exterior/river/riverside_east) "aeJ" = ( /obj/structure/platform, /obj/effect/blocker/toxic_water, -/turf/open/gm/river/desert/shallow_edge{ - dir = 8 - }, +/turf/open/gm/river/desert/shallow_edge/west, /area/desert_dam/exterior/river/riverside_east) "aeK" = ( /obj/structure/platform, /obj/effect/blocker/toxic_water, -/turf/open/gm/river/desert/shallow_edge{ - dir = 4 - }, +/turf/open/gm/river/desert/shallow_edge/east, /area/desert_dam/exterior/river/riverside_east) "aeL" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/desert/rock/deep/transition{ - dir = 4 - }, +/turf/open/desert/rock/deep/transition/east, /area/desert_dam/interior/dam_interior/north_tunnel) "aeM" = ( /obj/effect/decal/sand_overlay/sand1, @@ -1497,28 +1189,20 @@ "aeN" = ( /obj/structure/platform, /obj/effect/blocker/toxic_water, -/turf/open/desert/desert_shore/desert_shore1{ - dir = 4 - }, +/turf/open/desert/desert_shore/desert_shore1/east, /area/desert_dam/exterior/river/riverside_east) "aeO" = ( /obj/effect/decal/sand_overlay/sand1/corner1, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_mining) "aeP" = ( -/turf/open/floor/filtrationside{ - dir = 5 - }, +/turf/open/floor/filtrationside/northeast, /area/desert_dam/exterior/valley/valley_mining) "aeQ" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 8 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_mining) "aeR" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ @@ -1539,9 +1223,7 @@ /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached13" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached13, /area/desert_dam/exterior/valley/valley_wilderness) "aeV" = ( /obj/effect/blocker/toxic_water, @@ -1550,10 +1232,7 @@ "aeW" = ( /obj/structure/surface/table, /obj/structure/machinery/computer/shuttle/dropship/flight/lz1, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/north, /area/desert_dam/landing/console) "aeX" = ( /obj/structure/surface/table/reinforced, @@ -1561,23 +1240,18 @@ name = "Security Cameras - Research"; network = list("chigusa_3") }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/prison/red/west, /area/desert_dam/interior/lab_northeast/east_lab_west_entrance) "aeY" = ( /obj/structure/prop/dam/boulder/boulder1, /turf/open/desert/dirt, -/area/desert_dam/exterior/valley/valley_northwest) +/area/desert_dam/exterior/landing_pad_one) "aeZ" = ( /obj/structure/bed/chair/office/light{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/administration/control_room) "afa" = ( /obj/structure/window/reinforced/tinted{ @@ -1586,18 +1260,14 @@ /obj/structure/machinery/computer/communications, /obj/structure/surface/table/reinforced, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/administration/control_room) "afb" = ( /obj/structure/machinery/colony_floodlight, /turf/open/desert/rock, /area/desert_dam/exterior/valley/valley_crashsite) "afc" = ( -/turf/open/desert/rock/deep/transition{ - dir = 8 - }, +/turf/open/desert/rock/deep/transition/west, /area/desert_dam/interior/dam_interior/hanger) "afd" = ( /turf/open/desert/rock, @@ -1607,27 +1277,17 @@ dir = 8 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/administration/control_room) "aff" = ( /obj/structure/machinery/cm_vending/sorted/tech/electronics_storage, -/turf/open/floor/prison{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/prison/green/north, /area/desert_dam/interior/dam_interior/atmos_storage) "afg" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "redcorner" - }, +/turf/open/floor/prison/redcorner/east, /area/desert_dam/interior/dam_interior/south_tunnel_entrance) "afh" = ( -/turf/open/desert/rock/deep/transition{ - dir = 10 - }, +/turf/open/desert/rock/deep/transition/southwest, /area/desert_dam/interior/dam_interior/hanger) "afi" = ( /turf/open/desert/rock, @@ -1640,49 +1300,35 @@ /turf/open/gm/river/desert/deep, /area/desert_dam/exterior/river_mouth/southern) "afk" = ( -/turf/open/desert/rock/deep/transition{ - dir = 1 - }, +/turf/open/desert/rock/deep/transition/north, /area/desert_dam/interior/dam_interior/western_dam_cave) "afl" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached12" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached12, /area/desert_dam/exterior/valley/valley_wilderness) "afm" = ( /obj/effect/decal/sand_overlay/sand1/corner1, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached12" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached12, /area/desert_dam/exterior/valley/valley_wilderness) "afn" = ( /obj/structure/machinery/colony_floodlight, -/turf/open/desert/rock/deep/transition{ - dir = 1 - }, +/turf/open/desert/rock/deep/transition/north, /area/desert_dam/interior/dam_interior/western_dam_cave) "afo" = ( /obj/structure/surface/table/reinforced, /obj/effect/spawner/random/toolbox, -/turf/open/floor/prison{ - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2, /area/desert_dam/interior/lab_northeast/east_lab_RND) "afp" = ( /obj/structure/disposalpipe/junction, /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/interior/lab_northeast/east_lab_east_hallway) "afq" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/administration/control_room) "afr" = ( /obj/structure/window/reinforced/tinted{ @@ -1694,9 +1340,7 @@ /obj/item/tool/pen/blue, /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/administration/control_room) "afs" = ( /obj/structure/window/reinforced/tinted{ @@ -1707,9 +1351,7 @@ /obj/item/clipboard, /obj/item/tool/stamp, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/administration/control_room) "aft" = ( /obj/effect/blocker/toxic_water/Group_2, @@ -1724,42 +1366,30 @@ /turf/open/desert/rock, /area/desert_dam/interior/dam_interior/central_tunnel) "afv" = ( -/turf/open/desert/rock/deep/transition{ - dir = 8 - }, +/turf/open/desert/rock/deep/transition/west, /area/desert_dam/interior/dam_interior/workshop) "afw" = ( /obj/structure/machinery/vending/snack, /turf/open/floor/prison, /area/desert_dam/exterior/valley/south_valley_dam) "afx" = ( -/turf/open/gm/river/desert/shallow_edge{ - dir = 10 - }, +/turf/open/gm/river/desert/shallow_edge/southwest, /area/desert_dam/exterior/valley/valley_labs) "afy" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/asphalt{ - icon_state = "tile" - }, -/area/desert_dam/exterior/valley/valley_northwest) +/turf/open/asphalt/tile, +/area/desert_dam/exterior/landing_pad_one) "afz" = ( -/turf/open/desert/rock/deep/transition{ - dir = 9 - }, +/turf/open/desert/rock/deep/transition/northwest, /area/desert_dam/interior/dam_interior/workshop) "afA" = ( -/turf/open/desert/rock/deep/transition{ - dir = 4 - }, +/turf/open/desert/rock/deep/transition/east, /area/desert_dam/interior/dam_interior/northeastern_tunnel) "afB" = ( -/turf/open/desert/rock/deep/transition{ - dir = 8 - }, +/turf/open/desert/rock/deep/transition/west, /area/desert_dam/interior/dam_interior/northeastern_tunnel) "afC" = ( /obj/structure/platform{ @@ -1778,36 +1408,22 @@ /area/desert_dam/interior/dam_interior/south_tunnel) "afF" = ( /obj/effect/decal/sand_overlay/sand1/corner1, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_labs) "afG" = ( /turf/closed/wall/r_wall/chigusa, /area/desert_dam/interior/lab_northeast/east_lab_containment) "afH" = ( -/turf/open/floor/plating{ - dir = 9; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/northwest, /area/desert_dam/interior/lab_northeast/east_lab_containment) "afI" = ( -/turf/open/floor/plating{ - dir = 1; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/north, /area/desert_dam/interior/lab_northeast/east_lab_containment) "afJ" = ( -/turf/open/floor/plating{ - dir = 5; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/northeast, /area/desert_dam/interior/lab_northeast/east_lab_containment) "afK" = ( -/turf/open/floor/plating{ - dir = 8; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/west, /area/desert_dam/interior/lab_northeast/east_lab_containment) "afL" = ( /obj/structure/platform{ @@ -1820,26 +1436,19 @@ /turf/open/gm/river/desert/deep, /area/desert_dam/exterior/river/riverside_east) "afM" = ( -/turf/open/floor/filtrationside{ - dir = 4 - }, +/turf/open/floor/filtrationside/east, /area/desert_dam/exterior/valley/valley_mining) "afN" = ( /turf/open/floor/plating, /area/desert_dam/interior/lab_northeast/east_lab_containment) "afO" = ( -/turf/open/desert/rock/deep/transition{ - dir = 6 - }, +/turf/open/desert/rock/deep/transition/southeast, /area/desert_dam/interior/dam_interior/central_tunnel) "afP" = ( /turf/closed/wall/r_wall/chigusa, /area/desert_dam/interior/lab_northeast/east_lab_biology) "afQ" = ( -/turf/open/floor/plating{ - dir = 4; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/east, /area/desert_dam/interior/lab_northeast/east_lab_containment) "afR" = ( /turf/open/desert/rock/deep/transition, @@ -1864,17 +1473,13 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 5 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached3" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached3, /area/desert_dam/exterior/valley/valley_labs) "afV" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 8 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached3" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached3, /area/desert_dam/exterior/valley/valley_labs) "afW" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/comdoor{ @@ -1882,10 +1487,7 @@ name = "\improper Administration Control Room" }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 5; - icon_state = "vault" - }, +/turf/open/floor/vault2/northeast, /area/desert_dam/building/administration/control_room) "afX" = ( /obj/structure/flora/grass/desert/lightgrass_2, @@ -1894,18 +1496,13 @@ "afY" = ( /obj/structure/filingcabinet, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/prison/red/east, /area/desert_dam/interior/dam_interior/south_tunnel_entrance) "afZ" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 1 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_northwest) "aga" = ( /obj/effect/decal/sand_overlay/sand1{ @@ -1925,9 +1522,7 @@ /turf/open/desert/rock, /area/desert_dam/interior/dam_interior/south_tunnel) "age" = ( -/turf/open/desert/rock/deep/transition{ - dir = 4 - }, +/turf/open/desert/rock/deep/transition/east, /area/desert_dam/interior/dam_interior/central_tunnel) "agf" = ( /obj/structure/bed/chair/office/dark{ @@ -1939,25 +1534,19 @@ /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached3" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached3, /area/desert_dam/exterior/valley/valley_wilderness) "agh" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 1 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached18" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached18, /area/desert_dam/exterior/valley/valley_wilderness) "agi" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 1 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached18" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached18, /area/desert_dam/exterior/valley/valley_wilderness) "agj" = ( /obj/effect/decal/sand_overlay/sand1{ @@ -1997,9 +1586,7 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached1" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached1, /area/desert_dam/exterior/valley/valley_northwest) "agq" = ( /obj/structure/prop/dam/boulder/boulder3, @@ -2025,9 +1612,7 @@ /turf/open/gm/river/desert/deep, /area/desert_dam/exterior/river/riverside_east) "agt" = ( -/turf/open/gm/river/desert/shallow_corner{ - dir = 8 - }, +/turf/open/gm/river/desert/shallow_corner/west, /area/desert_dam/exterior/valley/valley_labs) "agu" = ( /obj/structure/disposalpipe/segment{ @@ -2057,9 +1642,7 @@ dir = 1 }, /obj/structure/prop/dam/truck/cargo, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached18" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached18, /area/desert_dam/exterior/valley/valley_northwest) "agy" = ( /turf/open/asphalt/cement_sunbleached, @@ -2073,25 +1656,16 @@ /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached12" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached12, /area/desert_dam/exterior/valley/valley_northwest) "agB" = ( -/turf/open/desert/rock/deep{ - icon_state = "rock3" - }, +/turf/open/desert/rock/deep/rock3, /area/desert_dam/interior/dam_interior/northeastern_tunnel) "agC" = ( -/turf/open/desert/dirt{ - dir = 10; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/southwest, /area/desert_dam/exterior/valley/valley_crashsite) "agD" = ( -/turf/open/desert/dirt{ - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1, /area/desert_dam/exterior/valley/valley_crashsite) "agE" = ( /obj/structure/platform, @@ -2101,9 +1675,7 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 1 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached12" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached12, /area/desert_dam/exterior/valley/valley_northwest) "agG" = ( /obj/structure/surface/table, @@ -2118,10 +1690,7 @@ /turf/open/floor/plating, /area/desert_dam/interior/lab_northeast/east_lab_containment) "agI" = ( -/turf/open/floor/plating{ - dir = 10; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/southwest, /area/desert_dam/interior/lab_northeast/east_lab_containment) "agJ" = ( /obj/structure/platform, @@ -2132,38 +1701,26 @@ /turf/open/gm/river/desert/deep, /area/desert_dam/exterior/river/riverside_east) "agK" = ( -/turf/open/desert/dirt{ - dir = 8; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/west, /area/desert_dam/exterior/valley/valley_crashsite) "agL" = ( -/turf/open/floor/plating{ - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate, /area/desert_dam/interior/lab_northeast/east_lab_containment) "agM" = ( -/turf/open/floor/plating{ - dir = 6; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/southeast, /area/desert_dam/interior/lab_northeast/east_lab_containment) "agN" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 9 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_crashsite) "agO" = ( /turf/open/desert/rock/deep, /area/desert_dam/interior/dam_interior/central_tunnel) "agP" = ( /obj/structure/machinery/colony_floodlight, -/turf/open/desert/rock/deep/transition{ - dir = 10 - }, +/turf/open/desert/rock/deep/transition/southwest, /area/desert_dam/interior/dam_interior/hanger) "agQ" = ( /turf/open/floor/prison, @@ -2173,17 +1730,13 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 1 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached12" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached12, /area/desert_dam/exterior/valley/valley_northwest) "agS" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 1 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached15" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached15, /area/desert_dam/exterior/valley/valley_northwest) "agT" = ( /obj/structure/desertdam/decals/road_edge, @@ -2217,18 +1770,14 @@ /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached14" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached14, /area/desert_dam/exterior/valley/valley_labs) "agY" = ( /obj/effect/blocker/toxic_water/Group_2, /obj/structure/barricade/wooden{ dir = 4 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_labs) "agZ" = ( /obj/structure/disposalpipe/segment, @@ -2249,9 +1798,7 @@ /area/desert_dam/exterior/valley/valley_northwest) "ahb" = ( /obj/structure/window/framed/chigusa, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/desert_dam/interior/lab_northeast/east_lab_containment) "ahc" = ( /obj/structure/desertdam/decals/road_edge{ @@ -2261,16 +1808,10 @@ /turf/open/asphalt, /area/desert_dam/exterior/valley/valley_labs) "ahd" = ( -/turf/open/floor/prison{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/northeast, /area/desert_dam/interior/lab_northeast/east_lab_central_hallway) "ahe" = ( -/turf/open/floor/prison{ - dir = 5; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/northeast, /area/desert_dam/interior/lab_northeast/east_lab_biology) "ahf" = ( /obj/structure/desertdam/decals/road_edge{ @@ -2287,14 +1828,10 @@ /obj/structure/barricade/wooden{ dir = 4 }, -/turf/open/gm/river/desert/shallow_edge/covered{ - dir = 8 - }, +/turf/open/gm/river/desert/shallow_edge/covered/west, /area/desert_dam/exterior/river/riverside_central_north) "ahh" = ( -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_labs) "ahi" = ( /obj/effect/blocker/toxic_water/Group_2, @@ -2314,9 +1851,7 @@ "ahk" = ( /obj/effect/decal/sand_overlay/sand1, /obj/structure/prop/dam/truck/damaged, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached18" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached18, /area/desert_dam/exterior/valley/valley_northwest) "ahl" = ( /obj/structure/desertdam/decals/road_stop{ @@ -2333,27 +1868,20 @@ /turf/open/desert/rock, /area/desert_dam/interior/dam_interior/western_dam_cave) "aho" = ( -/turf/open/desert/rock/deep{ - icon_state = "rock3" - }, +/turf/open/desert/rock/deep/rock3, /area/desert_dam/interior/dam_interior/western_dam_cave) "ahp" = ( /obj/structure/platform{ dir = 1 }, -/turf/open/desert/rock/deep/transition{ - dir = 8 - }, +/turf/open/desert/rock/deep/transition/west, /area/desert_dam/interior/dam_interior/west_tunnel) "ahq" = ( /obj/structure/desertdam/decals/road_stop, /turf/open/asphalt, /area/desert_dam/exterior/valley/valley_northwest) "ahr" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/lab_northeast/east_lab_containment) "ahs" = ( /obj/structure/barricade/wooden{ @@ -2372,9 +1900,7 @@ /turf/open/asphalt, /area/desert_dam/exterior/valley/valley_labs) "ahu" = ( -/turf/open/desert/dirt{ - icon_state = "rock1" - }, +/turf/open/desert/dirt/rock1, /area/desert_dam/exterior/valley/valley_northwest) "ahv" = ( /obj/structure/platform, @@ -2399,16 +1925,12 @@ /turf/open/asphalt, /area/desert_dam/exterior/valley/valley_northwest) "ahy" = ( -/turf/open/floor/filtrationside{ - dir = 10 - }, +/turf/open/floor/filtrationside/southwest, /area/desert_dam/exterior/valley/valley_mining) "ahz" = ( /obj/effect/decal/sand_overlay/sand1, /obj/structure/largecrate/random/case/small, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached18" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached18, /area/desert_dam/exterior/valley/valley_northwest) "ahA" = ( /turf/open/floor/filtrationside, @@ -2433,18 +1955,14 @@ /turf/open/asphalt, /area/desert_dam/exterior/valley/valley_northwest) "ahF" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached2" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached2, /area/desert_dam/exterior/valley/valley_labs) "ahG" = ( /obj/item/limb/foot/r_foot, /turf/open/asphalt, /area/desert_dam/exterior/valley/valley_labs) "ahH" = ( -/turf/open/desert/desert_shore/shore_edge1{ - dir = 8 - }, +/turf/open/desert/desert_shore/shore_edge1/west, /area/desert_dam/exterior/valley/valley_labs) "ahI" = ( /obj/effect/blocker/toxic_water/Group_2, @@ -2452,16 +1970,12 @@ dir = 4 }, /obj/structure/barricade/wooden, -/turf/open/gm/river/desert/shallow_edge/covered{ - dir = 8 - }, +/turf/open/gm/river/desert/shallow_edge/covered/west, /area/desert_dam/exterior/river/riverside_central_north) "ahJ" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_nest, /obj/effect/landmark/structure_spawner/setup/distress/xeno_nest, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/lab_northeast/east_lab_biology) "ahK" = ( /obj/effect/decal/cleanable/vomit, @@ -2506,9 +2020,7 @@ /turf/open/asphalt, /area/desert_dam/exterior/valley/valley_northwest) "ahQ" = ( -/turf/open/floor/filtrationside{ - dir = 6 - }, +/turf/open/floor/filtrationside/southeast, /area/desert_dam/exterior/valley/valley_mining) "ahR" = ( /obj/structure/desertdam/decals/road_edge{ @@ -2541,9 +2053,7 @@ /area/desert_dam/exterior/valley/valley_wilderness) "ahV" = ( /obj/effect/decal/sand_overlay/sand2/corner2, -/turf/open/asphalt/cement{ - icon_state = "cement9" - }, +/turf/open/asphalt/cement/cement9, /area/desert_dam/exterior/valley/valley_wilderness) "ahW" = ( /obj/structure/surface/table/reinforced, @@ -2551,35 +2061,25 @@ density = 0; pixel_y = 32 }, -/turf/open/floor{ - icon_state = "grimy" - }, +/turf/open/floor/grimy, /area/desert_dam/building/bar/bar) "ahX" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 6 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_mining) "ahY" = ( -/turf/open/desert/desert_shore/shore_corner2{ - dir = 4 - }, +/turf/open/desert/desert_shore/shore_corner2/east, /area/desert_dam/exterior/valley/valley_labs) "ahZ" = ( /turf/open/desert/desert_shore/desert_shore1, /area/desert_dam/exterior/valley/valley_labs) "aia" = ( -/turf/open/desert/rock/deep/transition{ - dir = 4 - }, +/turf/open/desert/rock/deep/transition/east, /area/desert_dam/interior/dam_interior/north_tunnel) "aib" = ( -/turf/open/desert/rock/deep/transition{ - dir = 10 - }, +/turf/open/desert/rock/deep/transition/southwest, /area/desert_dam/interior/dam_interior/north_tunnel) "aic" = ( /obj/structure/flora/bush/desert{ @@ -2592,27 +2092,19 @@ /turf/open/asphalt/cement_sunbleached, /area/desert_dam/exterior/valley/valley_mining) "aie" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached15" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached15, /area/desert_dam/exterior/valley/valley_mining) "aif" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached17" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached17, /area/desert_dam/exterior/valley/valley_wilderness) "aig" = ( -/turf/open/desert/rock/deep/transition{ - dir = 4 - }, +/turf/open/desert/rock/deep/transition/east, /area/desert_dam/interior/dam_interior/workshop) "aih" = ( /turf/open/asphalt/cement_sunbleached, /area/desert_dam/exterior/valley/valley_labs) "aii" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached1" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached1, /area/desert_dam/exterior/valley/valley_labs) "aij" = ( /obj/structure/flora/bush/desert{ @@ -2635,14 +2127,10 @@ "ain" = ( /obj/effect/landmark/xeno_spawn, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/interior/lab_northeast/east_lab_central_hallway) "aio" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached19" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached19, /area/desert_dam/exterior/valley/valley_wilderness) "aip" = ( /obj/structure/flora/bush/desert/cactus{ @@ -2652,26 +2140,16 @@ /area/desert_dam/exterior/valley/valley_wilderness) "aiq" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/interior/lab_northeast/east_lab_central_hallway) "air" = ( -/turf/open/desert/dirt{ - dir = 1; - icon_state = "desert_transition_corner1" - }, +/turf/open/desert/dirt/desert_transition_corner1/north, /area/desert_dam/exterior/valley/valley_northwest) "ais" = ( -/turf/open/desert/dirt{ - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1, /area/desert_dam/exterior/valley/valley_northwest) "ait" = ( -/turf/open/desert/dirt{ - dir = 4; - icon_state = "desert_transition_corner1" - }, +/turf/open/desert/dirt/desert_transition_corner1/east, /area/desert_dam/exterior/valley/valley_northwest) "aiu" = ( /obj/structure/platform{ @@ -2699,33 +2177,24 @@ /obj/structure/platform{ dir = 1 }, -/turf/open/gm/river/desert/shallow_edge{ - dir = 8 - }, +/turf/open/gm/river/desert/shallow_edge/west, /area/desert_dam/exterior/river/riverside_central_north) "aiy" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 4 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_mining) "aiz" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/lab_northeast/east_lab_containment) "aiA" = ( /obj/effect/blocker/toxic_water/Group_2, /obj/structure/platform{ dir = 1 }, -/turf/open/gm/river/desert/shallow_edge{ - dir = 4 - }, +/turf/open/gm/river/desert/shallow_edge/east, /area/desert_dam/exterior/river/riverside_central_north) "aiB" = ( /obj/structure/machinery/light, @@ -2743,15 +2212,10 @@ /obj/structure/platform{ dir = 1 }, -/turf/open/desert/desert_shore/shore_corner2{ - dir = 8 - }, +/turf/open/desert/desert_shore/shore_corner2/west, /area/desert_dam/exterior/river/riverside_central_north) "aiE" = ( -/turf/open/floor/prison{ - dir = 6; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/southeast, /area/desert_dam/interior/lab_northeast/east_lab_biology) "aiF" = ( /obj/structure/platform{ @@ -2761,9 +2225,7 @@ /obj/structure/platform{ dir = 1 }, -/turf/open/desert/desert_shore/shore_edge1{ - dir = 4 - }, +/turf/open/desert/desert_shore/shore_edge1/east, /area/desert_dam/exterior/river/riverside_central_north) "aiG" = ( /obj/structure/disposalpipe/segment{ @@ -2776,15 +2238,10 @@ /turf/open/asphalt/cement_sunbleached, /area/desert_dam/exterior/valley/valley_wilderness) "aiH" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/prison/whitepurplecorner/west, /area/desert_dam/interior/lab_northeast/east_lab_east_hallway) "aiI" = ( -/turf/open/floor/prison{ - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2, /area/desert_dam/interior/lab_northeast/east_lab_biology) "aiJ" = ( /obj/effect/decal/sand_overlay/sand1, @@ -2797,21 +2254,14 @@ "aiK" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/lab_northeast/east_lab_containment) "aiL" = ( -/turf/open/desert/rock/deep/transition{ - dir = 9 - }, +/turf/open/desert/rock/deep/transition/northwest, /area/desert_dam/interior/caves/central_caves) "aiM" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/interior/lab_northeast/east_lab_east_entrance) "aiN" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, @@ -2821,22 +2271,14 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/west, /area/desert_dam/interior/lab_northeast/east_lab_east_hallway) "aiP" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached3" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached3, /area/desert_dam/exterior/valley/valley_mining) "aiQ" = ( -/turf/open/desert/dirt{ - dir = 9; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/northwest, /area/desert_dam/exterior/valley/valley_labs) "aiR" = ( /obj/structure/desertdam/decals/road_edge{ @@ -2864,17 +2306,13 @@ /obj/effect/decal/sand_overlay/sand2{ dir = 8 }, -/turf/open/asphalt/cement{ - icon_state = "cement2" - }, +/turf/open/asphalt/cement/cement2, /area/desert_dam/interior/dam_interior/north_tunnel_entrance) "aiU" = ( /obj/effect/decal/sand_overlay/sand2{ dir = 8 }, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/desert_dam/interior/dam_interior/north_tunnel_entrance) "aiV" = ( /obj/structure/desertdam/decals/road_edge{ @@ -2904,27 +2342,19 @@ /turf/open/asphalt, /area/desert_dam/exterior/valley/valley_wilderness) "aiY" = ( -/turf/open/desert/dirt{ - dir = 6; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/southeast, /area/desert_dam/exterior/valley/valley_northwest) "aiZ" = ( /turf/open/desert/dirt, /area/desert_dam/exterior/valley/valley_northwest) "aja" = ( -/turf/open/desert/dirt{ - dir = 10; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/southwest, /area/desert_dam/exterior/valley/valley_northwest) "ajb" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 4 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_northwest) "ajc" = ( /obj/effect/decal/cleanable/dirt, @@ -2941,23 +2371,17 @@ /obj/effect/decal/sand_overlay/sand2/corner2{ dir = 1 }, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/desert_dam/exterior/valley/valley_wilderness) "aje" = ( /obj/structure/fence, -/turf/open/desert/rock/deep/transition{ - dir = 1 - }, +/turf/open/desert/rock/deep/transition/north, /area/desert_dam/interior/caves/east_caves) "ajf" = ( /turf/open/gm/river/desert/shallow_edge, /area/desert_dam/interior/caves/east_caves) "ajg" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached3" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached3, /area/desert_dam/exterior/valley/valley_labs) "ajh" = ( /obj/structure/flora/bush/desert{ @@ -2973,16 +2397,10 @@ /turf/open/asphalt, /area/desert_dam/exterior/valley/valley_wilderness) "ajj" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/southwest, /area/desert_dam/interior/lab_northeast/east_lab_central_hallway) "ajk" = ( -/turf/open/floor/prison{ - dir = 6; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/southeast, /area/desert_dam/interior/lab_northeast/east_lab_central_hallway) "ajl" = ( /obj/structure/window/framed/chigusa, @@ -2996,9 +2414,7 @@ "ajn" = ( /obj/effect/landmark/xeno_spawn, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/interior/lab_northeast/east_lab_biology) "ajo" = ( /obj/structure/desertdam/decals/road_edge{ @@ -3012,9 +2428,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/interior/lab_northeast/east_lab_biology) "ajq" = ( /obj/structure/desertdam/decals/road_edge, @@ -3037,26 +2451,18 @@ /area/desert_dam/interior/lab_northeast/east_lab_containment) "aju" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/lab_northeast/east_lab_containment) "ajv" = ( /obj/effect/landmark/crap_item, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/lab_northeast/east_lab_containment) "ajw" = ( /obj/structure/disposalpipe/segment{ dir = 1; icon_state = "pipe-c" }, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/interior/lab_northeast/east_lab_biology) "ajx" = ( /obj/structure/platform{ @@ -3078,17 +2484,13 @@ /area/desert_dam/interior/lab_northeast/east_lab_workshop) "ajA" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached1" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached1, /area/desert_dam/exterior/valley/valley_mining) "ajB" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 4 }, -/turf/open/desert/desert_shore/shore_edge1{ - dir = 8 - }, +/turf/open/desert/desert_shore/shore_edge1/west, /area/desert_dam/exterior/valley/valley_crashsite) "ajC" = ( /obj/structure/flora/bush/desert/cactus/multiple{ @@ -3098,9 +2500,7 @@ /area/desert_dam/exterior/valley/valley_crashsite) "ajD" = ( /obj/structure/fence, -/turf/open/desert/rock/deep/transition{ - dir = 9 - }, +/turf/open/desert/rock/deep/transition/northwest, /area/desert_dam/interior/caves/east_caves) "ajE" = ( /obj/effect/decal/cleanable/dirt, @@ -3120,9 +2520,7 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 1 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_crashsite) "ajH" = ( /obj/structure/desertdam/decals/road_edge, @@ -3135,32 +2533,22 @@ /obj/effect/decal/sand_overlay/sand2{ dir = 4 }, -/turf/open/asphalt/cement{ - icon_state = "cement2" - }, +/turf/open/asphalt/cement/cement2, /area/desert_dam/exterior/valley/valley_wilderness) "ajJ" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 5 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_crashsite) "ajK" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached14" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached14, /area/desert_dam/exterior/valley/valley_labs) "ajL" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached12" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached12, /area/desert_dam/exterior/valley/valley_labs) "ajM" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached15" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached15, /area/desert_dam/exterior/valley/valley_labs) "ajN" = ( /obj/structure/platform{ @@ -3172,48 +2560,33 @@ /turf/open/floor/plating, /area/desert_dam/interior/lab_northeast/east_lab_containment) "ajO" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/west, /area/desert_dam/interior/lab_northeast/east_lab_central_hallway) "ajP" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/east, /area/desert_dam/interior/lab_northeast/east_lab_central_hallway) "ajQ" = ( /obj/structure/surface/table/reinforced, /obj/effect/spawner/random/technology_scanner, -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/northwest, /area/desert_dam/interior/lab_northeast/east_lab_biology) "ajR" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 9 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_northwest) "ajS" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 1 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_northwest) "ajT" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 1 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_labs) "ajU" = ( /obj/effect/decal/cleanable/dirt, @@ -3226,39 +2599,26 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/north, /area/desert_dam/interior/lab_northeast/east_lab_biology) "ajW" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_mining) "ajX" = ( /obj/effect/decal/sand_overlay/sand2{ dir = 1 }, -/turf/open/asphalt/cement{ - icon_state = "cement15" - }, +/turf/open/asphalt/cement/cement15, /area/desert_dam/exterior/valley/valley_wilderness) "ajY" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/north, /area/desert_dam/interior/lab_northeast/east_lab_biology) "ajZ" = ( /obj/structure/machinery/chem_master, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/north, /area/desert_dam/interior/lab_northeast/east_lab_biology) "aka" = ( /obj/structure/desertdam/decals/road_edge, @@ -3294,18 +2654,12 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/north, /area/desert_dam/interior/lab_northeast/east_lab_biology) "akf" = ( /obj/structure/surface/table/reinforced, /obj/structure/xenoautopsy, -/turf/open/floor/prison{ - dir = 5; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/northeast, /area/desert_dam/interior/lab_northeast/east_lab_biology) "akg" = ( /obj/structure/flora/bush/desert{ @@ -3314,29 +2668,21 @@ /turf/open/desert/dirt, /area/desert_dam/interior/caves/central_caves) "akh" = ( -/turf/open/mars{ - icon_state = "mars_dirt_14" - }, +/turf/open/mars/mars_dirt_14, /area/desert_dam/interior/lab_northeast/east_lab_containment) "aki" = ( /obj/effect/decal/cleanable/dirt, /turf/open/asphalt, /area/desert_dam/exterior/valley/valley_northwest) "akj" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/west, /area/desert_dam/interior/lab_northeast/east_lab_east_hallway) "akk" = ( /turf/closed/wall/r_wall/chigusa, /area/desert_dam/interior/lab_northeast/east_lab_excavation) "akl" = ( /obj/structure/machinery/recharge_station, -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/northwest, /area/desert_dam/interior/lab_northeast/east_lab_excavation) "akm" = ( /obj/structure/machinery/power/apc{ @@ -3344,26 +2690,17 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/north, /area/desert_dam/interior/lab_northeast/east_lab_excavation) "akn" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/north, /area/desert_dam/interior/lab_northeast/east_lab_excavation) "ako" = ( /obj/structure/closet/radiation, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/north, /area/desert_dam/interior/lab_northeast/east_lab_excavation) "akp" = ( /obj/structure/desertdam/decals/road_edge{ @@ -3373,18 +2710,13 @@ /turf/open/asphalt, /area/desert_dam/exterior/valley/valley_northwest) "akq" = ( -/turf/open/desert/dirt{ - dir = 4; - icon_state = "desert_transition_corner1" - }, +/turf/open/desert/dirt/desert_transition_corner1/east, /area/desert_dam/exterior/valley/valley_crashsite) "akr" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 4 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_crashsite) "aks" = ( /obj/structure/desertdam/decals/road_edge{ @@ -3394,22 +2726,14 @@ /turf/open/asphalt, /area/desert_dam/exterior/valley/valley_northwest) "akt" = ( -/turf/open/desert/dirt{ - dir = 1; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/north, /area/desert_dam/exterior/valley/valley_labs) "aku" = ( /obj/structure/machinery/cm_vending/sorted/boozeomat, -/turf/open/floor{ - icon_state = "grimy" - }, +/turf/open/floor/grimy, /area/desert_dam/building/bar/bar) "akv" = ( -/turf/open/desert/dirt{ - dir = 5; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/northeast, /area/desert_dam/exterior/valley/valley_labs) "akw" = ( /obj/structure/machinery/door/poddoor/almayer/locked{ @@ -3417,9 +2741,7 @@ name = "\improper Containment Lock"; unacidable = 0 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/desert_dam/interior/lab_northeast/east_lab_containment) "akx" = ( /obj/structure/platform{ @@ -3428,14 +2750,10 @@ /turf/open/floor/plating, /area/desert_dam/interior/lab_northeast/east_lab_containment) "aky" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached2" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached2, /area/desert_dam/exterior/valley/valley_northwest) "akz" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached9" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached9, /area/desert_dam/exterior/valley/valley_northwest) "akA" = ( /obj/effect/decal/cleanable/dirt, @@ -3460,55 +2778,35 @@ name = "\improper Containment Lock"; unacidable = 0 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/lab_northeast/east_lab_containment) "akE" = ( /obj/structure/surface/table, /obj/item/clothing/gloves/yellow, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/north, /area/desert_dam/interior/lab_northeast/east_lab_excavation) "akF" = ( /obj/structure/surface/table, /obj/item/device/reagent_scanner, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/north, /area/desert_dam/interior/lab_northeast/east_lab_excavation) "akG" = ( /obj/structure/surface/table, /obj/effect/landmark/crap_item, -/turf/open/floor/prison{ - dir = 5; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/northeast, /area/desert_dam/interior/lab_northeast/east_lab_excavation) "akH" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/east, /area/desert_dam/interior/lab_northeast/east_lab_east_hallway) "akI" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/west, /area/desert_dam/interior/lab_northeast/east_lab_excavation) "akJ" = ( /obj/structure/flora/grass/desert/lightgrass_8, -/turf/open/desert/dirt{ - icon_state = "dirt2" - }, +/turf/open/desert/dirt/dirt2, /area/desert_dam/exterior/valley/north_valley_dam) "akK" = ( /turf/open/floor/prison, @@ -3528,18 +2826,13 @@ /turf/open/asphalt, /area/desert_dam/exterior/valley/valley_northwest) "akO" = ( -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/interior/lab_northeast/east_lab_central_hallway) "akP" = ( /turf/open/desert/rock, /area/desert_dam/exterior/valley/valley_mining) "akQ" = ( -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/northwest, /area/desert_dam/interior/lab_northeast/east_lab_biology) "akR" = ( /obj/structure/platform, @@ -3549,23 +2842,17 @@ /obj/structure/platform_decoration{ dir = 1 }, -/turf/open/desert/dirt{ - icon_state = "dirt2" - }, +/turf/open/desert/dirt/dirt2, /area/desert_dam/exterior/valley/north_valley_dam) "akS" = ( /obj/structure/platform_decoration{ dir = 1 }, -/turf/open/desert/dirt{ - icon_state = "dirt2" - }, +/turf/open/desert/dirt/dirt2, /area/desert_dam/exterior/valley/north_valley_dam) "akT" = ( /obj/structure/platform_decoration, -/turf/open/desert/dirt{ - icon_state = "dirt2" - }, +/turf/open/desert/dirt/dirt2, /area/desert_dam/exterior/valley/north_valley_dam) "akU" = ( /obj/structure/prop/dam/truck/cargo, @@ -3581,94 +2868,61 @@ /turf/open/desert/rock, /area/desert_dam/exterior/valley/valley_crashsite) "akW" = ( -/turf/open/jungle{ - bushes_spawn = 0; - icon_state = "grass_impenetrable" - }, +/turf/open/jungle/impenetrable, /area/desert_dam/interior/lab_northeast/east_lab_containment) "akX" = ( /obj/structure/surface/table/reinforced, /obj/item/tool/pen, -/obj/item/XenoBio/Blood, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkpurple2" - }, +/obj/item/oldresearch/Blood, +/turf/open/floor/prison/darkpurple2/west, /area/desert_dam/interior/lab_northeast/east_lab_biology) "akY" = ( /obj/structure/bed/chair/office/light{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "darkpurplecorners2" - }, +/turf/open/floor/prison/darkpurplecorners2, /area/desert_dam/interior/lab_northeast/east_lab_biology) "akZ" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/southwest, /area/desert_dam/interior/lab_northeast/east_lab_biology) "ala" = ( /obj/structure/bed/chair/office/light{ dir = 1 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkpurplecorners2" - }, +/turf/open/floor/prison/darkpurplecorners2/west, /area/desert_dam/interior/lab_northeast/east_lab_biology) "alb" = ( /obj/structure/surface/table/reinforced, /obj/structure/xenoautopsy/tank{ icon_state = "jarshelf_7" }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/east, /area/desert_dam/interior/lab_northeast/east_lab_biology) "alc" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/west, /area/desert_dam/interior/lab_northeast/east_lab_containment) "ald" = ( -/turf/open/mars_cave{ - icon_state = "mars_dirt_7" - }, +/turf/open/mars_cave/mars_dirt_7, /area/desert_dam/interior/lab_northeast/east_lab_containment) "ale" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkpurplecorners2" - }, +/turf/open/floor/prison/darkpurplecorners2/north, /area/desert_dam/interior/lab_northeast/east_lab_excavation) "alf" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/north, /area/desert_dam/interior/lab_northeast/east_lab_excavation) "alg" = ( /obj/structure/closet/crate, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/north, /area/desert_dam/interior/lab_northeast/east_lab_excavation) "alh" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 1 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached12" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached12, /area/desert_dam/exterior/landing_pad_two) "ali" = ( /obj/effect/decal/warning_stripes{ @@ -3684,42 +2938,27 @@ /turf/open/desert/rock, /area/desert_dam/exterior/valley/valley_crashsite) "alk" = ( -/turf/open/mars{ - icon_state = "mars_dirt_12" - }, +/turf/open/mars/mars_dirt_12, /area/desert_dam/interior/lab_northeast/east_lab_containment) "all" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/plating{ - dir = 4; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/east, /area/desert_dam/interior/lab_northeast/east_lab_containment) "alm" = ( /obj/structure/surface/table/reinforced, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/west, /area/desert_dam/interior/lab_northeast/east_lab_biology) "aln" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/east, /area/desert_dam/interior/lab_northeast/east_lab_biology) "alo" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached3" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached3, /area/desert_dam/exterior/valley/valley_northwest) "alp" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached1" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached1, /area/desert_dam/exterior/valley/valley_northwest) "alr" = ( /obj/structure/stairs{ @@ -3729,168 +2968,105 @@ dir = 8; layer = 2.7 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/north_valley_dam) "als" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/interior/lab_northeast/east_lab_biology) "alt" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/west, /area/desert_dam/interior/lab_northeast/east_lab_biology) "alu" = ( /obj/structure/surface/table/reinforced, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/east, /area/desert_dam/interior/lab_northeast/east_lab_biology) "alv" = ( -/turf/open/mars_cave{ - icon_state = "mars_dirt_6" - }, +/turf/open/mars_cave/mars_dirt_6, /area/desert_dam/interior/lab_northeast/east_lab_containment) "alw" = ( -/turf/open/floor/coagulation{ - icon_state = "0,8" - }, +/turf/open/floor/coagulation/icon0_8, /area/desert_dam/exterior/valley/valley_mining) "alx" = ( -/turf/open/floor/coagulation{ - icon_state = "5,8" - }, +/turf/open/floor/coagulation/icon5_8, /area/desert_dam/exterior/valley/valley_mining) "aly" = ( /obj/structure/closet/crate, /obj/item/storage/fancy/vials/random, -/turf/open/floor/prison{ - dir = 5; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/northeast, /area/desert_dam/interior/lab_northeast/east_lab_excavation) "alz" = ( /obj/structure/surface/rack, /obj/item/device/multitool, /obj/item/storage/belt/utility/full, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/west, /area/desert_dam/interior/lab_northeast/east_lab_excavation) "alA" = ( /obj/structure/surface/rack, /obj/item/device/flashlight, /obj/item/device/t_scanner, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/east, /area/desert_dam/interior/lab_northeast/east_lab_excavation) "alB" = ( /obj/structure/surface/rack, /obj/item/device/flashlight, /obj/item/tool/hand_labeler, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/east, /area/desert_dam/interior/lab_northeast/east_lab_excavation) "alC" = ( /obj/structure/surface/rack, /obj/item/tool/shovel/snow, /obj/item/tool/shovel/snow, /obj/effect/landmark/crap_item, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/west, /area/desert_dam/interior/lab_northeast/east_lab_excavation) "alD" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/prison/whitepurplecorner/east, /area/desert_dam/interior/lab_northeast/east_lab_central_hallway) "alE" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/prison/whitepurplecorner/north, /area/desert_dam/interior/lab_northeast/east_lab_central_hallway) "alF" = ( -/turf/open/floor/prison{ - icon_state = "darkpurplecorners2" - }, +/turf/open/floor/prison/darkpurplecorners2, /area/desert_dam/interior/lab_northeast/east_lab_excavation) "alG" = ( -/turf/open/floor/prison{ - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2, /area/desert_dam/interior/lab_northeast/east_lab_excavation) "alH" = ( /obj/structure/largecrate/random, -/turf/open/floor/prison{ - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2, /area/desert_dam/interior/lab_northeast/east_lab_excavation) "alI" = ( -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/interior/lab_northeast/east_lab_biology) "alJ" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkpurplecorners2" - }, +/turf/open/floor/prison/darkpurplecorners2/west, /area/desert_dam/interior/lab_northeast/east_lab_excavation) "alK" = ( /obj/structure/closet/secure_closet/scientist, /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/northwest, /area/desert_dam/interior/lab_northeast/east_lab_biology) "alL" = ( /obj/structure/closet/secure_closet/scientist, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/north, /area/desert_dam/interior/lab_northeast/east_lab_biology) "alM" = ( /obj/structure/closet/secure_closet/scientist, /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/north, /area/desert_dam/interior/lab_northeast/east_lab_biology) "alN" = ( /obj/structure/surface/table/reinforced, /obj/item/storage/fancy/vials/random, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkpurplecorners2" - }, +/turf/open/floor/prison/darkpurplecorners2/east, /area/desert_dam/interior/lab_northeast/east_lab_biology) "alO" = ( -/turf/open/floor/prison{ - dir = 9; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/northwest, /area/desert_dam/interior/lab_northeast/east_lab_east_hallway) "alP" = ( /obj/structure/window/framed/chigusa, @@ -3904,9 +3080,7 @@ dir = 4; layer = 2.7 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/north_valley_dam) "alR" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ @@ -3920,41 +3094,29 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/north, /area/desert_dam/interior/lab_northeast/east_lab_east_hallway) "alT" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/north, /area/desert_dam/interior/lab_northeast/east_lab_east_hallway) "alU" = ( /obj/structure/flora/grass/desert/lightgrass_9, -/turf/open/desert/dirt{ - icon_state = "dirt2" - }, +/turf/open/desert/dirt/dirt2, /area/desert_dam/exterior/river/riverside_central_north) "alV" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/interior/lab_northeast/east_lab_east_hallway) "alW" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 6 }, -/turf/open/asphalt/cement{ - icon_state = "cement15" - }, +/turf/open/asphalt/cement/cement15, /area/desert_dam/exterior/valley/valley_wilderness) "alX" = ( /obj/effect/decal/warning_stripes{ @@ -3965,21 +3127,14 @@ name = "\improper Hangar Shutters" }, /obj/structure/cargo_container/kelland/left, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/desert_dam/interior/dam_interior/hanger) "alY" = ( -/turf/open/floor/coagulation{ - icon_state = "4,8" - }, +/turf/open/floor/coagulation/icon4_8, /area/desert_dam/exterior/valley/valley_mining) "alZ" = ( /obj/effect/decal/cleanable/generic, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/interior/lab_northeast/east_lab_biology) "ama" = ( /obj/structure/pipes/vents/pump{ @@ -3990,19 +3145,14 @@ "amb" = ( /obj/structure/surface/table/reinforced, /obj/item/alienjar, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/east, /area/desert_dam/interior/lab_northeast/east_lab_biology) "amd" = ( /obj/structure/platform, /turf/open/floor/plating, /area/desert_dam/interior/lab_northeast/east_lab_containment) "ame" = ( -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_northwest) "amf" = ( /obj/structure/platform{ @@ -4016,14 +3166,10 @@ /turf/open/desert/dirt, /area/desert_dam/exterior/valley/valley_northwest) "amh" = ( -/turf/open/floor/coagulation{ - icon_state = "6,8-2" - }, +/turf/open/floor/coagulation/icon6_8_2, /area/desert_dam/exterior/valley/valley_mining) "ami" = ( -/turf/open/floor/coagulation{ - icon_state = "7,8-2" - }, +/turf/open/floor/coagulation/icon7_8_2, /area/desert_dam/exterior/valley/valley_mining) "amj" = ( /obj/structure/platform_decoration{ @@ -4063,32 +3209,23 @@ /area/desert_dam/interior/lab_northeast/east_lab_containment) "amo" = ( /obj/structure/surface/table/reinforced, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/interior/lab_northeast/east_lab_biology) "amp" = ( /obj/structure/bed/chair/office/light{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/interior/lab_northeast/east_lab_biology) "amq" = ( /obj/structure/machinery/door/poddoor/almayer/locked{ name = "\improper Containment Lock"; unacidable = 0 }, -/turf/open/floor/plating{ - icon_state = "platebot" - }, +/turf/open/floor/plating/platebot, /area/desert_dam/interior/lab_northeast/east_lab_containment) "amr" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/north, /area/desert_dam/interior/lab_northeast/east_lab_central_hallway) "ams" = ( /obj/effect/decal/warning_stripes{ @@ -4099,10 +3236,7 @@ name = "\improper Hangar Shutters" }, /obj/structure/cargo_container/kelland/right, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/desert_dam/interior/dam_interior/hanger) "amt" = ( /obj/structure/desertdam/decals/road_edge{ @@ -4116,56 +3250,36 @@ dir = 8 }, /obj/structure/platform, -/turf/open/desert/dirt{ - icon_state = "dirt2" - }, +/turf/open/desert/dirt/dirt2, /area/desert_dam/exterior/river/riverside_central_north) "amv" = ( /obj/effect/blocker/toxic_water/Group_2, /obj/structure/platform_decoration{ dir = 1 }, -/turf/open/desert/desert_shore/desert_shore1{ - dir = 8 - }, +/turf/open/desert/desert_shore/desert_shore1/west, /area/desert_dam/exterior/river/riverside_central_north) "amw" = ( /turf/closed/wall/r_wall/bunker/floodgate, /area/desert_dam/exterior/river/riverside_central_north) "amx" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/north, /area/desert_dam/interior/lab_northeast/east_lab_east_hallway) "amy" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/prison/whitepurplecorner/east, /area/desert_dam/interior/lab_northeast/east_lab_east_hallway) "amz" = ( -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/interior/lab_northeast/east_lab_east_hallway) "amA" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/interior/lab_northeast/east_lab_east_hallway) "amB" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/prison/whitepurplecorner/north, /area/desert_dam/interior/lab_northeast/east_lab_east_hallway) "amC" = ( -/turf/open/floor/prison{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/northeast, /area/desert_dam/interior/lab_northeast/east_lab_east_hallway) "amD" = ( /obj/structure/machinery/light{ @@ -4177,46 +3291,31 @@ /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper Isolation Chamber" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/lab_northeast/east_lab_containment) "amF" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/lab_northeast/east_lab_containment) "amG" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/west, /area/desert_dam/interior/lab_northeast/east_lab_central_hallway) "amH" = ( /obj/effect/decal/cleanable/liquid_fuel, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/interior/lab_northeast/east_lab_biology) "amI" = ( /obj/structure/bed/chair/office/light{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/interior/lab_northeast/east_lab_biology) "amJ" = ( -/turf/open/gm/river/desert/shallow_edge{ - dir = 6 - }, +/turf/open/gm/river/desert/shallow_edge/southeast, /area/desert_dam/interior/caves/east_caves) "amK" = ( /obj/structure/desertdam/decals/road_edge{ @@ -4231,10 +3330,7 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/east, /area/desert_dam/interior/lab_northeast/east_lab_biology) "amM" = ( /obj/structure/desertdam/decals/road_edge{ @@ -4247,15 +3343,10 @@ /turf/open/desert/dirt, /area/desert_dam/exterior/valley/valley_northwest) "amO" = ( -/turf/open/floor/coagulation{ - icon_state = "8,8" - }, +/turf/open/floor/coagulation/icon8_8, /area/desert_dam/exterior/valley/valley_mining) "amP" = ( -/turf/open/desert/dirt{ - dir = 4; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/east, /area/desert_dam/exterior/valley/valley_northwest) "amQ" = ( /obj/structure/flora/bush/desert/cactus{ @@ -4279,38 +3370,27 @@ /obj/structure/platform{ dir = 8 }, -/turf/open/desert/desert_shore/desert_shore1{ - dir = 8 - }, +/turf/open/desert/desert_shore/desert_shore1/west, /area/desert_dam/exterior/river/riverside_central_north) "amT" = ( -/turf/open/floor/coagulation{ - icon_state = "0,5" - }, +/turf/open/floor/coagulation/icon0_5, /area/desert_dam/exterior/valley/valley_mining) "amU" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ dir = 2 }, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/interior/lab_northeast/east_lab_biology) "amV" = ( /obj/structure/surface/table/reinforced, /obj/structure/xenoautopsy/tank{ icon_state = "jar_sample" }, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/interior/lab_northeast/east_lab_biology) "amW" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkpurplecorners2" - }, +/turf/open/floor/prison/darkpurplecorners2/north, /area/desert_dam/interior/lab_northeast/east_lab_biology) "amX" = ( /obj/structure/machinery/power/apc{ @@ -4318,63 +3398,42 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/north, /area/desert_dam/interior/lab_northeast/east_lab_biology) "amY" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - dir = 5; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/northeast, /area/desert_dam/interior/lab_northeast/east_lab_biology) "amZ" = ( -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, +/turf/open/mars_cave/mars_dirt_4, /area/desert_dam/interior/lab_northeast/east_lab_containment) "ana" = ( -/turf/open/mars_cave{ - icon_state = "mars_dirt_5" - }, +/turf/open/mars_cave/mars_dirt_5, /area/desert_dam/interior/lab_northeast/east_lab_containment) "anb" = ( /obj/structure/flora/grass/desert/lightgrass_6, -/turf/open/desert/dirt{ - icon_state = "dirt2" - }, +/turf/open/desert/dirt/dirt2, /area/desert_dam/exterior/river/riverside_central_north) "anc" = ( -/turf/open/desert/dirt{ - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1, /area/desert_dam/interior/dam_interior/west_tunnel) "and" = ( /obj/structure/platform{ dir = 4 }, -/turf/open/desert/dirt{ - icon_state = "dirt2" - }, +/turf/open/desert/dirt/dirt2, /area/desert_dam/exterior/river/riverside_central_north) "ane" = ( /obj/effect/decal/sand_overlay/sand2{ dir = 8 }, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/desert_dam/interior/dam_interior/west_tunnel) "anf" = ( /obj/structure/closet/firecloset, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkbrown3" - }, +/turf/open/floor/prison/darkbrown3/west, /area/desert_dam/interior/dam_interior/hanger) "ang" = ( /obj/effect/decal/warning_stripes{ @@ -4388,57 +3447,39 @@ /area/desert_dam/exterior/valley/north_valley_dam) "anh" = ( /obj/effect/decal/sand_overlay/sand1/corner1, -/turf/open/asphalt{ - icon_state = "tile" - }, -/area/desert_dam/exterior/valley/valley_northwest) +/turf/open/asphalt/tile, +/area/desert_dam/exterior/landing_pad_one) "ani" = ( /obj/structure/closet/crate/trashcart, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached1" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached1, /area/desert_dam/exterior/valley/north_valley_dam) "anj" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 8 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_northwest) "ank" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 8 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached9" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached9, /area/desert_dam/exterior/valley/valley_medical) "anl" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/southwest, /area/desert_dam/interior/lab_northeast/east_lab_biology) "anm" = ( /obj/effect/blocker/toxic_water/Group_2, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_medical) "ann" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkpurplecorners2" - }, +/turf/open/floor/prison/darkpurplecorners2/west, /area/desert_dam/interior/lab_northeast/east_lab_biology) "ano" = ( -/turf/open/floor/coagulation{ - icon_state = "1,7" - }, +/turf/open/floor/coagulation/icon1_7, /area/desert_dam/building/water_treatment_two) "anp" = ( /obj/effect/decal/sand_overlay/sand1{ @@ -4447,15 +3488,10 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached9" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached9, /area/desert_dam/interior/dam_interior/west_tunnel) "anq" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/east, /area/desert_dam/interior/lab_northeast/east_lab_east_hallway) "anr" = ( /obj/structure/machinery/power/apc{ @@ -4463,10 +3499,7 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/desert_dam/interior/dam_interior/west_tunnel) "ans" = ( /obj/effect/decal/sand_overlay/sand2/corner2{ @@ -4475,15 +3508,11 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/desert_dam/interior/dam_interior/west_tunnel) "ant" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/interior/lab_northeast/east_lab_east_hallway) "anu" = ( /obj/structure/flora/bush/desert{ @@ -4492,9 +3521,7 @@ /turf/open/desert/dirt, /area/desert_dam/interior/caves/central_caves) "anv" = ( -/turf/open/floor/prison{ - icon_state = "whitepurplecorner" - }, +/turf/open/floor/prison/whitepurplecorner, /area/desert_dam/interior/lab_northeast/east_lab_east_hallway) "anx" = ( /obj/structure/machinery/door/poddoor/almayer/locked{ @@ -4502,16 +3529,10 @@ id = "dam_checkpoint_northeast"; name = "\improper Checkpoint Lock" }, -/turf/open/floor{ - dir = 1; - icon_state = "warning" - }, +/turf/open/floor/warning/north, /area/desert_dam/interior/lab_northeast/east_lab_east_entrance) "any" = ( -/turf/open/floor{ - dir = 1; - icon_state = "warning" - }, +/turf/open/floor/warning/north, /area/desert_dam/interior/lab_northeast/east_lab_east_entrance) "anz" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ @@ -4523,23 +3544,16 @@ name = "\improper Checkpoint Lock" }, /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/floor{ - dir = 1; - icon_state = "warning" - }, +/turf/open/floor/warning/north, /area/desert_dam/interior/lab_northeast/east_lab_east_entrance) "anA" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 5 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/interior/caves/east_caves) "anB" = ( -/turf/open/gm/river/desert/shallow_edge{ - dir = 10 - }, +/turf/open/gm/river/desert/shallow_edge/southwest, /area/desert_dam/interior/caves/east_caves) "anC" = ( /obj/structure/machinery/door/poddoor/almayer/locked{ @@ -4547,15 +3561,11 @@ id = "dam_checkpoint_northeast"; name = "\improper Checkpoint Lock" }, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/interior/lab_northeast/east_lab_east_entrance) "anD" = ( /obj/structure/machinery/light, -/turf/open/floor/prison{ - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple, /area/desert_dam/interior/lab_northeast/east_lab_east_hallway) "anE" = ( /obj/structure/flora/grass/desert/lightgrass_6, @@ -4566,22 +3576,15 @@ /turf/open/desert/dirt, /area/desert_dam/exterior/valley/valley_northwest) "anG" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/southwest, /area/desert_dam/interior/lab_northeast/east_lab_east_hallway) "anH" = ( /obj/structure/xenoautopsy/tank, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/lab_northeast/east_lab_biology) "anI" = ( /obj/structure/xenoautopsy/tank/hugger, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/lab_northeast/east_lab_biology) "anJ" = ( /obj/structure/sign/safety/restrictedarea, @@ -4594,23 +3597,14 @@ "anK" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/lab_northeast/east_lab_containment) "anL" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/east, /area/desert_dam/interior/lab_northeast/east_lab_biology) "anM" = ( -/turf/open/floor/prison{ - dir = 6; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/southeast, /area/desert_dam/interior/lab_northeast/east_lab_east_hallway) "anN" = ( /obj/structure/surface/table, @@ -4618,19 +3612,13 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/northwest, /area/desert_dam/interior/lab_northeast/east_lab_workshop) "anO" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper Containment" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/lab_northeast/east_lab_containment) "anP" = ( /turf/closed/wall/r_wall/bunker, @@ -4641,23 +3629,17 @@ /area/desert_dam/interior/lab_northeast/east_lab_security_armory) "anR" = ( /obj/structure/machinery/vending/security, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/desert_dam/interior/lab_northeast/east_lab_security_armory) "anS" = ( /obj/structure/surface/table/reinforced, /obj/item/ammo_magazine/revolver/cmb, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/desert_dam/interior/lab_northeast/east_lab_security_armory) "anT" = ( /obj/structure/surface/rack, /obj/item/weapon/gun/revolver/cmb, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/desert_dam/interior/lab_northeast/east_lab_security_armory) "anU" = ( /obj/structure/surface/table/reinforced, @@ -4665,23 +3647,14 @@ name = "Security Cameras - Research"; network = list("chigusa_3") }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/northwest, /area/desert_dam/interior/lab_northeast/east_lab_security_armory) "anV" = ( -/turf/open/floor/prison{ - dir = 9; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/northwest, /area/desert_dam/interior/lab_northeast/east_lab_central_hallway) "anX" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/north, /area/desert_dam/interior/lab_northeast/east_lab_central_hallway) "anY" = ( /obj/structure/machinery/power/apc{ @@ -4689,50 +3662,33 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/north, /area/desert_dam/interior/lab_northeast/east_lab_central_hallway) "anZ" = ( /obj/structure/machinery/light, -/turf/open/floor/prison{ - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2, /area/desert_dam/interior/lab_northeast/east_lab_biology) "aoa" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/light, -/turf/open/floor/prison{ - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2, /area/desert_dam/interior/lab_northeast/east_lab_biology) "aob" = ( /obj/structure/surface/table/reinforced, -/turf/open/floor/prison{ - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2, /area/desert_dam/interior/lab_northeast/east_lab_biology) "aoc" = ( /obj/structure/machinery/computer/prisoner, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/north, /area/desert_dam/interior/lab_northeast/east_lab_security_armory) "aod" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/north, /area/desert_dam/interior/lab_northeast/east_lab_security_armory) "aoe" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 8 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_northwest) "aof" = ( /obj/effect/blocker/toxic_water/Group_2, @@ -4743,10 +3699,7 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - dir = 6; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/southeast, /area/desert_dam/interior/lab_northeast/east_lab_biology) "aoi" = ( /turf/closed/wall/hangar{ @@ -4763,25 +3716,19 @@ dir = 4; icon_state = "pipe-c" }, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/interior/lab_northeast/east_lab_central_hallway) "aoq" = ( /obj/effect/landmark/xeno_spawn, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/interior/lab_northeast/east_lab_east_hallway) "aor" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/interior/lab_northeast/east_lab_central_hallway) "aos" = ( /obj/structure/pipes/vents/pump{ @@ -4790,9 +3737,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/interior/lab_northeast/east_lab_central_hallway) "aot" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -4801,18 +3746,14 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/interior/lab_northeast/east_lab_central_hallway) "aou" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/structure/disposalpipe/junction, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/interior/lab_northeast/east_lab_central_hallway) "aov" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -4822,9 +3763,7 @@ dir = 4; icon_state = "pipe-c" }, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/interior/lab_northeast/east_lab_central_hallway) "aow" = ( /turf/closed/wall/r_wall/bunker, @@ -4835,9 +3774,7 @@ /area/desert_dam/exterior/valley/north_valley_dam) "aoy" = ( /obj/item/trash/hotdog, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/north_valley_dam) "aoz" = ( /turf/open/desert/rock, @@ -4845,149 +3782,98 @@ "aoA" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/computer/guestpass, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/north, /area/desert_dam/interior/lab_northeast/east_lab_security_armory) "aoB" = ( /turf/open/asphalt/cement_sunbleached, /area/desert_dam/interior/dam_interior/west_tunnel) "aoC" = ( /obj/structure/machinery/vending/snack, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/north, /area/desert_dam/interior/lab_northeast/east_lab_security_armory) "aoD" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 1 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached18" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached18, /area/desert_dam/exterior/valley/valley_northwest) "aoE" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached18" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached18, /area/desert_dam/exterior/valley/valley_northwest) "aoF" = ( /obj/structure/surface/table/reinforced, /obj/item/ammo_magazine/shotgun/incendiary, /obj/item/ammo_magazine/shotgun/incendiary, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/desert_dam/interior/lab_northeast/east_lab_security_armory) "aoG" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached12" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached12, /area/desert_dam/exterior/valley/valley_northwest) "aoH" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony, -/turf/open/floor/plating{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/plating/asteroidfloor/north, /area/desert_dam/interior/dam_interior/west_tunnel) "aoI" = ( /obj/structure/machinery/door/poddoor/almayer/locked{ name = "\improper Containment Lock"; unacidable = 0 }, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/interior/lab_northeast/east_lab_biology) "aoJ" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/interior/lab_northeast/east_lab_central_hallway) "aoK" = ( /obj/structure/disposalpipe/segment{ dir = 1; icon_state = "pipe-c" }, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/interior/lab_northeast/east_lab_central_hallway) "aoL" = ( /obj/structure/disposalpipe/segment{ dir = 8; icon_state = "pipe-c" }, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/interior/lab_northeast/east_lab_central_hallway) "aoM" = ( -/turf/open/floor/plating{ - dir = 9; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/northwest, /area/desert_dam/interior/lab_northeast/east_lab_biology) "aoN" = ( -/turf/open/floor/plating{ - dir = 1; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/north, /area/desert_dam/interior/lab_northeast/east_lab_biology) "aoO" = ( -/turf/open/floor/plating{ - dir = 5; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/northeast, /area/desert_dam/interior/lab_northeast/east_lab_biology) "aoP" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/interior/lab_northeast/east_lab_central_hallway) "aoQ" = ( -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/northwest, /area/desert_dam/interior/lab_northeast/east_lab_security_armory) "aoR" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkredcorners2" - }, +/turf/open/floor/prison/darkredcorners2/east, /area/desert_dam/interior/lab_northeast/east_lab_security_armory) "aoS" = ( /obj/structure/bed/chair/office/dark{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/lab_northeast/east_lab_security_armory) "aoT" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/lab_northeast/east_lab_security_armory) "aoU" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ name = "\improper Security" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/lab_northeast/east_lab_security_armory) "aoV" = ( /turf/open/asphalt/cement, @@ -4998,42 +3884,24 @@ dir = 1; icon_state = "pipe-j2" }, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/interior/lab_northeast/east_lab_central_hallway) "aoX" = ( /obj/structure/machinery/light, -/turf/open/floor/prison{ - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple, /area/desert_dam/interior/lab_northeast/east_lab_central_hallway) "aoY" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/north, /area/desert_dam/interior/dam_interior/hanger) "aoZ" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/prison/whitepurplecorner/west, /area/desert_dam/interior/lab_northeast/east_lab_central_hallway) -"apa" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached4" - }, -/area/desert_dam/exterior/valley/valley_northwest) "apb" = ( /obj/structure/machinery/computer/shuttle/elevator_controller/elevator_call/trijent/lz1{ pixel_y = 32 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/southwest, /area/desert_dam/interior/dam_interior/hanger) "apc" = ( /obj/structure/flora/grass/desert/lightgrass_2, @@ -5043,39 +3911,25 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 10 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_northwest) "ape" = ( -/turf/open/floor/plating{ - dir = 8; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/west, /area/desert_dam/interior/lab_northeast/east_lab_biology) "apf" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/prison/whitepurplecorner/west, /area/desert_dam/interior/lab_northeast/east_lab_central_hallway) "apg" = ( /turf/open/floor/plating, /area/desert_dam/interior/lab_northeast/east_lab_biology) "aph" = ( -/turf/open/floor/prison{ - icon_state = "whitepurplecorner" - }, +/turf/open/floor/prison/whitepurplecorner, /area/desert_dam/interior/lab_northeast/east_lab_central_hallway) "api" = ( -/turf/open/floor/prison{ - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple, /area/desert_dam/interior/lab_northeast/east_lab_central_hallway) "apj" = ( -/turf/open/floor/prison{ - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple, /area/desert_dam/interior/lab_northeast/east_lab_east_hallway) "apk" = ( /obj/effect/landmark/monkey_spawn, @@ -5084,40 +3938,25 @@ "apl" = ( /obj/structure/surface/rack, /obj/item/weapon/gun/shotgun/pump/dual_tube/cmb, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/desert_dam/interior/lab_northeast/east_lab_security_armory) "apm" = ( -/turf/open/desert/rock/deep/transition{ - dir = 1 - }, +/turf/open/desert/rock/deep/transition/north, /area/desert_dam/interior/lab_northeast/east_lab_west_hallway) "apn" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/west, /area/desert_dam/interior/lab_northeast/east_lab_security_armory) "apo" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ name = "\improper Security Armoury" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/lab_northeast/east_lab_security_armory) "app" = ( -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/interior/lab_northeast/east_lab_east_entrance) "apq" = ( -/turf/open/floor/plating{ - dir = 4; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/east, /area/desert_dam/interior/lab_northeast/east_lab_biology) "apr" = ( /obj/structure/machinery/door/poddoor/almayer/locked{ @@ -5128,30 +3967,19 @@ /turf/open/floor/plating, /area/desert_dam/interior/lab_northeast/east_lab_biology) "apt" = ( -/turf/open/desert/dirt{ - icon_state = "desert_transition_corner1" - }, +/turf/open/desert/dirt/desert_transition_corner1, /area/desert_dam/exterior/valley/valley_northwest) "apu" = ( -/turf/open/desert/dirt{ - dir = 5; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/northeast, /area/desert_dam/exterior/valley/valley_northwest) "apv" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/east, /area/desert_dam/interior/lab_northeast/east_lab_central_hallway) "apw" = ( -/turf/open/floor/plating{ - dir = 10; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/southwest, /area/desert_dam/interior/lab_northeast/east_lab_biology) "apx" = ( /obj/structure/machinery/door/poddoor/almayer/locked{ @@ -5160,15 +3988,10 @@ name = "\improper Checkpoint Lock"; unacidable = 0 }, -/turf/open/floor{ - dir = 1; - icon_state = "warning" - }, +/turf/open/floor/warning/north, /area/desert_dam/interior/lab_northeast/east_lab_west_entrance) "apy" = ( -/turf/open/floor/plating{ - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate, /area/desert_dam/interior/lab_northeast/east_lab_biology) "apz" = ( /obj/structure/desertdam/decals/road_edge{ @@ -5187,47 +4010,30 @@ /turf/open/asphalt, /area/desert_dam/exterior/valley/valley_northwest) "apB" = ( -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/lab_northeast/east_lab_security_armory) "apD" = ( /obj/structure/surface/table, /obj/effect/spawner/random/tech_supply, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/desert_dam/interior/lab_northeast/east_lab_workshop) "apF" = ( -/turf/open/floor/prison{ - icon_state = "darkredcorners2" - }, +/turf/open/floor/prison/darkredcorners2, /area/desert_dam/interior/lab_northeast/east_lab_security_armory) "apH" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredcorners2" - }, +/turf/open/floor/prison/darkredcorners2/southwest, /area/desert_dam/interior/lab_northeast/east_lab_security_armory) "apI" = ( -/turf/open/floor/prison{ - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2, /area/desert_dam/interior/lab_northeast/east_lab_security_armory) "apJ" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 8 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached2" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached2, /area/desert_dam/interior/caves/east_caves) "apK" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkredcorners2" - }, +/turf/open/floor/prison/darkredcorners2/west, /area/desert_dam/interior/lab_northeast/east_lab_security_armory) "apL" = ( /obj/effect/decal/sand_overlay/sand1{ @@ -5242,28 +4048,21 @@ /turf/open/desert/desert_shore/shore_corner2, /area/desert_dam/interior/caves/east_caves) "apN" = ( -/turf/open/desert/desert_shore/shore_corner2{ - dir = 4 - }, +/turf/open/desert/desert_shore/shore_corner2/east, /area/desert_dam/interior/caves/east_caves) "apO" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached14" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached14, /area/desert_dam/exterior/valley/valley_northwest) "apP" = ( /obj/structure/flora/grass/desert/lightgrass_7, /turf/open/desert/dirt, -/area/desert_dam/exterior/valley/valley_northwest) +/area/desert_dam/exterior/landing_pad_one) "apR" = ( /obj/effect/decal/sand_overlay/sand1/corner1, /turf/open/desert/desert_shore/desert_shore1, /area/desert_dam/interior/caves/east_caves) "apS" = ( -/turf/open/floor/plating{ - dir = 6; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/southeast, /area/desert_dam/interior/lab_northeast/east_lab_biology) "apT" = ( /obj/structure/pipes/standard/manifold/hidden/green{ @@ -5273,17 +4072,13 @@ dir = 1; icon_state = "pipe-c" }, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/interior/lab_northeast/east_lab_central_hallway) "apV" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/interior/lab_northeast/east_lab_central_hallway) "apW" = ( /turf/closed/wall/r_wall/chigusa, @@ -5293,36 +4088,25 @@ dir = 1; name = "\improper Research Hallway" }, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/interior/lab_northeast/east_lab_central_hallway) "apY" = ( /obj/effect/decal/sand_overlay/sand2/corner2, -/turf/open/floor/prison{ - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple, /area/desert_dam/interior/lab_northeast/east_lab_central_hallway) "apZ" = ( /obj/structure/machinery/cm_vending/sorted/tech/comp_storage, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/desert_dam/interior/lab_northeast/east_lab_workshop) "aqa" = ( /obj/effect/decal/sand_overlay/sand2, -/turf/open/floor/prison{ - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple, /area/desert_dam/interior/lab_northeast/east_lab_central_hallway) "aqb" = ( /obj/effect/decal/sand_overlay/sand2/corner2{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple, /area/desert_dam/interior/lab_northeast/east_lab_central_hallway) "aqc" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -5331,10 +4115,7 @@ /turf/open/floor/interior/wood, /area/desert_dam/building/bar/backroom) "aqd" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/east, /area/desert_dam/interior/lab_northeast/east_lab_security_armory) "aqe" = ( /obj/structure/machinery/power/apc{ @@ -5342,10 +4123,7 @@ pixel_x = -24; start_charge = 0 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/west, /area/desert_dam/interior/lab_northeast/east_lab_security_armory) "aqf" = ( /obj/structure/desertdam/decals/road_edge, @@ -5353,25 +4131,20 @@ dir = 4 }, /turf/open/asphalt, -/area/desert_dam/exterior/valley/valley_northwest) +/area/desert_dam/exterior/landing_pad_one) "aqg" = ( /turf/open/asphalt, /area/desert_dam/exterior/valley/valley_northwest) "aqi" = ( /obj/structure/machinery/deployable/barrier, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/desert_dam/interior/lab_northeast/east_lab_security_armory) "aqk" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk{ dir = 4 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/west, /area/desert_dam/interior/lab_northeast/east_lab_security_armory) "aql" = ( /obj/effect/decal/warning_stripes{ @@ -5386,9 +4159,7 @@ /obj/structure/platform{ dir = 8 }, -/turf/open/desert/dirt{ - icon_state = "dirt2" - }, +/turf/open/desert/dirt/dirt2, /area/desert_dam/exterior/river/riverside_central_north) "aqn" = ( /obj/effect/decal/cleanable/dirt, @@ -5402,9 +4173,7 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 8 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached14" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached14, /area/desert_dam/interior/caves/east_caves) "aqq" = ( /turf/open/desert/desert_shore/desert_shore1, @@ -5416,41 +4185,28 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/lab_northeast/east_lab_security_armory) "aqt" = ( /obj/structure/disposalpipe/segment{ dir = 2; icon_state = "pipe-c" }, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/lab_northeast/east_lab_security_armory) "aqu" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkredcorners2" - }, +/turf/open/floor/prison/darkredcorners2/north, /area/desert_dam/interior/lab_northeast/east_lab_security_armory) "aqv" = ( /obj/structure/filingcabinet, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/north, /area/desert_dam/interior/lab_northeast/east_lab_security_armory) "aqw" = ( /obj/structure/stairs{ dir = 8 }, /obj/structure/platform, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached14" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached14, /area/desert_dam/exterior/valley/valley_medical) "aqx" = ( /obj/structure/surface/table/reinforced, @@ -5458,16 +4214,10 @@ name = "Security Cameras - Research"; network = list("chigusa_3") }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/north, /area/desert_dam/interior/lab_northeast/east_lab_security_armory) "aqy" = ( -/turf/open/desert/dirt{ - dir = 9; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/northwest, /area/desert_dam/exterior/valley/valley_northwest) "aqz" = ( /obj/structure/flora/grass/desert/lightgrass_9, @@ -5478,34 +4228,24 @@ name = "\improper Lobby" }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/security/lobby) "aqB" = ( -/turf/open/desert/rock/deep/transition{ - dir = 1 - }, +/turf/open/desert/rock/deep/transition/north, /area/desert_dam/interior/lab_northeast/east_lab_maintenence) "aqC" = ( /turf/open/floor/plating, /area/desert_dam/interior/lab_northeast/east_lab_maintenence) "aqD" = ( /obj/structure/closet/secure_closet/security, -/turf/open/floor/prison{ - dir = 5; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/northeast, /area/desert_dam/interior/lab_northeast/east_lab_security_armory) "aqE" = ( /obj/effect/blocker/toxic_water/Group_1, /obj/structure/platform_decoration{ dir = 4 }, -/turf/open/desert/desert_shore/desert_shore1{ - dir = 8 - }, +/turf/open/desert/desert_shore/desert_shore1/west, /area/desert_dam/exterior/river/riverside_central_north) "aqF" = ( /obj/structure/machinery/disposal, @@ -5513,76 +4253,51 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/exterior/valley/valley_wilderness) "aqG" = ( /obj/structure/machinery/vending/cola, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/exterior/valley/valley_wilderness) "aqH" = ( /obj/structure/machinery/vending/coffee, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/exterior/valley/valley_wilderness) "aqI" = ( /obj/structure/machinery/vending/snack, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/exterior/valley/valley_wilderness) "aqJ" = ( /turf/closed/wall/r_wall/chigusa, /area/desert_dam/interior/lab_northeast/east_lab_maintenence) "aqK" = ( -/turf/open/floor{ - dir = 1; - icon_state = "warning" - }, +/turf/open/floor/warning/north, /area/desert_dam/interior/lab_northeast/east_lab_west_entrance) "aqL" = ( /obj/structure/surface/table/reinforced, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/west, /area/desert_dam/interior/lab_northeast/east_lab_security_armory) "aqM" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - dir = 1; - icon_state = "warning" - }, +/turf/open/floor/warning/north, /area/desert_dam/interior/lab_northeast/east_lab_west_entrance) "aqN" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/lab_northeast/east_lab_security_armory) "aqO" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/east, /area/desert_dam/interior/lab_northeast/east_lab_west_hallway) "aqP" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ name = "\improper Security Office" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/lab_northeast/east_lab_security_armory) "aqQ" = ( /turf/closed/wall/r_wall, @@ -5592,17 +4307,13 @@ dir = 8; pixel_x = 24 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached15" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached15, /area/desert_dam/interior/dam_interior/west_tunnel) "aqS" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 9 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached20" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached20, /area/desert_dam/exterior/valley/valley_labs) "aqT" = ( /obj/structure/desertdam/decals/road_edge, @@ -5610,45 +4321,32 @@ dir = 1 }, /turf/open/asphalt, -/area/desert_dam/exterior/valley/valley_northwest) +/area/desert_dam/exterior/landing_pad_one) "aqU" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ dir = 1; name = "\improper Security Armoury" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/lab_northeast/east_lab_security_armory) "aqV" = ( /obj/structure/surface/table/reinforced, /obj/item/storage/donut_box, /obj/item/reagent_container/food/snacks/donut, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/west, /area/desert_dam/interior/lab_northeast/east_lab_security_armory) "aqW" = ( -/turf/open/floor/prison{ - dir = 6; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/southeast, /area/desert_dam/interior/lab_northeast/east_lab_security_armory) "aqX" = ( /obj/effect/decal/sand_overlay/sand1/corner1, -/turf/open/desert/desert_shore/shore_edge1{ - dir = 8 - }, +/turf/open/desert/desert_shore/shore_edge1/west, /area/desert_dam/interior/caves/east_caves) "aqY" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 6 }, -/turf/open/desert/dirt{ - icon_state = "dirt2" - }, +/turf/open/desert/dirt/dirt2, /area/desert_dam/interior/caves/east_caves) "aqZ" = ( /obj/structure/machinery/door/poddoor/almayer/locked{ @@ -5656,9 +4354,7 @@ id = "dam_checkpoint_northeast"; name = "\improper Checkpoint Lock" }, -/turf/open/floor{ - icon_state = "warning" - }, +/turf/open/floor/warning, /area/desert_dam/interior/lab_northeast/east_lab_east_entrance) "ara" = ( /obj/effect/decal/warning_stripes{ @@ -5670,10 +4366,7 @@ /obj/effect/decal/sand_overlay/sand2{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/north, /area/desert_dam/interior/lab_northeast/east_lab_west_hallway) "arc" = ( /obj/structure/machinery/light{ @@ -5682,18 +4375,13 @@ /obj/effect/decal/sand_overlay/sand2{ dir = 1 }, -/turf/open/floor/prison{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/northeast, /area/desert_dam/interior/lab_northeast/east_lab_west_hallway) "ard" = ( /obj/structure/platform_decoration{ dir = 8 }, -/turf/open/desert/dirt{ - icon_state = "dirt2" - }, +/turf/open/desert/dirt/dirt2, /area/desert_dam/exterior/river/riverside_central_north) "are" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -5702,9 +4390,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/interior/lab_northeast/east_lab_east_hallway) "arf" = ( /obj/structure/machinery/door/poddoor/almayer/locked{ @@ -5713,9 +4399,7 @@ name = "\improper Checkpoint Lock"; unacidable = 0 }, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/interior/lab_northeast/east_lab_west_entrance) "arg" = ( /obj/structure/disposalpipe/segment{ @@ -5724,40 +4408,28 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/interior/lab_northeast/east_lab_east_hallway) "arh" = ( /obj/structure/machinery/cm_vending/sorted/tech/electronics_storage, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/desert_dam/interior/lab_northeast/east_lab_workshop) "ari" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/asphalt/cement{ - icon_state = "cement14" - }, +/turf/open/asphalt/cement/cement14, /area/desert_dam/interior/dam_interior/west_tunnel) "arj" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/asphalt/cement{ - icon_state = "cement15" - }, +/turf/open/asphalt/cement/cement15, /area/desert_dam/interior/dam_interior/west_tunnel) "ark" = ( /obj/structure/filingcabinet, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/west, /area/desert_dam/interior/lab_northeast/east_lab_security_armory) "arl" = ( /obj/structure/machinery/power/apc{ @@ -5765,17 +4437,11 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkredcorners2" - }, +/turf/open/floor/prison/darkredcorners2/north, /area/desert_dam/interior/lab_northeast/east_lab_security_armory) "arm" = ( /obj/structure/closet/secure_closet/security, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/north, /area/desert_dam/interior/lab_northeast/east_lab_security_armory) "arn" = ( /obj/structure/surface/table/reinforced, @@ -5787,30 +4453,20 @@ pixel_y = 3 }, /obj/item/tool/stamp, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkredcorners2" - }, +/turf/open/floor/prison/darkredcorners2/east, /area/desert_dam/interior/lab_northeast/east_lab_security_armory) "aro" = ( /obj/structure/machinery/sentry_holder/colony{ dir = 4; pixel_x = -24 }, -/turf/open/asphalt/cement{ - icon_state = "cement14" - }, +/turf/open/asphalt/cement/cement14, /area/desert_dam/interior/dam_interior/west_tunnel) "arp" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/east, /area/desert_dam/interior/dam_interior/hanger) "arq" = ( -/turf/open/floor{ - icon_state = "warning" - }, +/turf/open/floor/warning, /area/desert_dam/interior/lab_northeast/east_lab_east_entrance) "arr" = ( /obj/structure/machinery/power/apc{ @@ -5818,41 +4474,27 @@ pixel_x = 24; start_charge = 0 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/east, /area/desert_dam/interior/lab_northeast/east_lab_security_armory) "ars" = ( -/turf/open/desert/dirt{ - dir = 8; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/west, /area/desert_dam/exterior/valley/valley_northwest) "art" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/security/lobby) "aru" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper Lobby" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/security/lobby) "arv" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 8 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached1" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached1, /area/desert_dam/exterior/valley/valley_medical) "arw" = ( /obj/structure/fence, @@ -5860,18 +4502,14 @@ /area/desert_dam/exterior/river/riverside_east) "arx" = ( /obj/effect/blocker/toxic_water/Group_2, -/turf/open/floor/filtrationside{ - dir = 1 - }, +/turf/open/floor/filtrationside/north, /area/desert_dam/exterior/valley/valley_mining) "ary" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/interior/lab_northeast/east_lab_east_hallway) "arz" = ( /obj/effect/decal/sand_overlay/sand1/corner1, @@ -5881,48 +4519,32 @@ name = "\improper Checkpoint Lock" }, /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/floor{ - icon_state = "warning" - }, +/turf/open/floor/warning, /area/desert_dam/interior/lab_northeast/east_lab_east_entrance) "arA" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 6 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/interior/caves/east_caves) "arB" = ( /obj/structure/machinery/recharge_station, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/desert_dam/interior/lab_northeast/east_lab_workshop) "arC" = ( /obj/structure/surface/rack, /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/desert_dam/interior/lab_northeast/east_lab_workshop) "arD" = ( /obj/structure/surface/rack, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/desert_dam/interior/lab_northeast/east_lab_workshop) "arE" = ( /obj/structure/sink, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/desert_dam/interior/lab_northeast/east_lab_workshop) "arF" = ( /turf/closed/wall/r_wall/bunker, @@ -5933,25 +4555,16 @@ dir = 1; pixel_y = 25 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/desert_dam/interior/lab_northeast/east_lab_workshop) "arH" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/desert_dam/interior/lab_northeast/east_lab_workshop) "arI" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk, -/turf/open/floor/prison{ - dir = 5; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/northeast, /area/desert_dam/interior/lab_northeast/east_lab_workshop) "arJ" = ( /obj/structure/window/framed/chigusa, @@ -5963,10 +4576,7 @@ }, /obj/structure/surface/table, /obj/item/tool/surgery/retractor, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/west, /area/desert_dam/interior/lab_northeast/east_lab_workshop) "arL" = ( /turf/open/floor/prison, @@ -5978,38 +4588,26 @@ /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ name = "\improper Security" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/lab_northeast/east_lab_security_armory) "arR" = ( /obj/structure/prop/dam/large_boulder/boulder2, /turf/open/desert/rock, /area/desert_dam/exterior/valley/bar_valley_dam) "arS" = ( -/turf/open/desert/rock/deep/transition{ - dir = 10 - }, +/turf/open/desert/rock/deep/transition/southwest, /area/desert_dam/interior/dam_interior/south_tunnel) "arT" = ( -/turf/open/desert/rock/deep/transition{ - dir = 6 - }, +/turf/open/desert/rock/deep/transition/southeast, /area/desert_dam/interior/dam_interior/western_dam_cave) "arU" = ( /obj/structure/disposalpipe/junction, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/lab_northeast/east_lab_security_armory) "arV" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/prop/dam/truck/damaged, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/desert_dam/interior/dam_interior/hanger) "arZ" = ( /obj/structure/desertdam/decals/road_edge{ @@ -6039,21 +4637,14 @@ /turf/open/asphalt, /area/desert_dam/exterior/valley/valley_northwest) "asf" = ( -/turf/open/floor/prison{ - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2, /area/desert_dam/interior/dam_interior/hanger) "asg" = ( -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/northwest, /area/desert_dam/interior/dam_interior/hanger) "ash" = ( /obj/structure/fence, -/turf/open/desert/dirt{ - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1, /area/desert_dam/exterior/valley/valley_telecoms) "asl" = ( /obj/structure/platform, @@ -6065,33 +4656,22 @@ "asm" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/computer/guestpass, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/west, /area/desert_dam/interior/lab_northeast/east_lab_security_armory) "asn" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/lab_northeast/east_lab_security_armory) "aso" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony{ dir = 2; name = "\improper Research Substation" }, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/substation/northeast) "asq" = ( /obj/structure/machinery/light, -/turf/open/desert/dirt{ - dir = 4; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/east, /area/desert_dam/interior/dam_interior/north_tunnel_entrance) "asr" = ( /obj/effect/decal/sand_overlay/sand1{ @@ -6101,9 +4681,7 @@ dir = 1; pixel_y = -10 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached17" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached17, /area/desert_dam/interior/dam_interior/north_tunnel_entrance) "ass" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ @@ -6113,9 +4691,7 @@ /area/desert_dam/interior/caves/east_caves) "ast" = ( /obj/effect/decal/sand_overlay/sand1, -/turf/open/desert/dirt{ - icon_state = "dirt2" - }, +/turf/open/desert/dirt/dirt2, /area/desert_dam/interior/caves/east_caves) "asu" = ( /obj/structure/prop/dam/boulder/boulder1, @@ -6126,24 +4702,18 @@ dir = 1; name = "\improper Security Checkpoint" }, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/lab_northeast/east_lab_east_entrance) "asw" = ( /obj/structure/window/framed/bunker/reinforced, /turf/open/floor/plating, /area/desert_dam/interior/lab_northeast/east_lab_east_entrance) "asx" = ( -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/interior/lab_northeast/east_lab_west_entrance) "asy" = ( /obj/structure/platform_decoration, -/turf/open/desert/dirt{ - icon_state = "dirt2" - }, +/turf/open/desert/dirt/dirt2, /area/desert_dam/exterior/river/riverside_central_north) "asz" = ( /obj/structure/machinery/door/poddoor/almayer/locked{ @@ -6152,14 +4722,10 @@ name = "\improper Checkpoint Lock"; unacidable = 0 }, -/turf/open/floor{ - icon_state = "warning" - }, +/turf/open/floor/warning, /area/desert_dam/interior/lab_northeast/east_lab_west_entrance) "asA" = ( -/turf/open/floor{ - icon_state = "warning" - }, +/turf/open/floor/warning, /area/desert_dam/interior/lab_northeast/east_lab_west_entrance) "asB" = ( /obj/structure/window/framed/bunker/reinforced, @@ -6173,22 +4739,14 @@ /obj/structure/machinery/door/window/southleft{ dir = 1 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/desert_dam/interior/lab_northeast/east_lab_west_entrance) "asD" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/prison/darkyellowcorners2/north, /area/desert_dam/interior/lab_northeast/east_lab_workshop) "asE" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/prison/darkyellowcorners2/east, /area/desert_dam/interior/lab_northeast/east_lab_workshop) "asF" = ( /obj/effect/decal/sand_overlay/sand2{ @@ -6200,23 +4758,16 @@ /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ dir = 1 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/desert_dam/interior/lab_northeast/east_lab_west_entrance) "asH" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/door_control, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/southwest, /area/desert_dam/interior/lab_northeast/east_lab_security_armory) "asI" = ( /obj/structure/bed/chair/office/dark, -/turf/open/floor/prison{ - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2, /area/desert_dam/interior/lab_northeast/east_lab_security_armory) "asJ" = ( /obj/structure/surface/table/reinforced, @@ -6224,30 +4775,21 @@ name = "Security Cameras - Research"; network = list("chigusa_3") }, -/turf/open/floor/prison{ - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2, /area/desert_dam/interior/lab_northeast/east_lab_security_armory) "asL" = ( /obj/structure/surface/table/reinforced, -/turf/open/floor/prison{ - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2, /area/desert_dam/interior/lab_northeast/east_lab_security_armory) "asM" = ( -/turf/open/floor{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/west, /area/desert_dam/building/substation/northeast) "asN" = ( /obj/structure/machinery/sentry_holder/colony{ dir = 1; pixel_y = -10 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached17" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached17, /area/desert_dam/interior/dam_interior/north_tunnel_entrance) "asO" = ( /obj/structure/surface/table, @@ -6259,9 +4801,7 @@ /area/desert_dam/building/water_treatment_two/floodgate_control) "asP" = ( /obj/structure/flora/grass/desert/lightgrass_6, -/turf/open/desert/dirt{ - icon_state = "dirt2" - }, +/turf/open/desert/dirt/dirt2, /area/desert_dam/exterior/valley/north_valley_dam) "asQ" = ( /obj/structure/surface/table, @@ -6273,10 +4813,7 @@ /obj/structure/shuttle/diagonal{ icon_state = "swall_f6" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/desert_dam/interior/dam_interior/hanger) "asS" = ( /obj/structure/surface/table, @@ -6291,26 +4828,17 @@ /turf/open/gm/river/desert/deep, /area/desert_dam/exterior/river/riverside_east) "asW" = ( -/turf/open/floor{ - dir = 4; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/darkyellowcorners2/east, /area/desert_dam/building/substation/northeast) "asX" = ( /obj/structure/machinery/power/smes/batteryrack/substation, -/turf/open/floor{ - dir = 5; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/northeast, /area/desert_dam/building/substation/northeast) "asY" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - dir = 5; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/northeast, /area/desert_dam/building/substation/northeast) "asZ" = ( /obj/effect/blocker/toxic_water/Group_2, @@ -6330,9 +4858,7 @@ /obj/structure/machinery/door/window/southleft{ dir = 1 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/desert_dam/interior/lab_northeast/east_lab_east_entrance) "atb" = ( /obj/structure/flora/bush/desert/cactus/multiple{ @@ -6341,17 +4867,13 @@ /turf/open/desert/dirt, /area/desert_dam/interior/caves/east_caves) "atc" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached9" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached9, /area/desert_dam/exterior/valley/valley_mining) "atd" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 10 }, -/turf/open/desert/dirt{ - icon_state = "dirt2" - }, +/turf/open/desert/dirt/dirt2, /area/desert_dam/interior/caves/east_caves) "ate" = ( /obj/structure/stairs{ @@ -6360,9 +4882,7 @@ /obj/structure/platform{ dir = 1 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_mining) "atf" = ( /obj/structure/flora/tree/joshua, @@ -6370,33 +4890,24 @@ /area/desert_dam/interior/caves/east_caves) "atg" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/security/lobby) "ath" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached9" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached9, /area/desert_dam/exterior/valley/valley_wilderness) "ati" = ( /obj/structure/machinery/sentry_holder/colony{ dir = 8; pixel_x = 24 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached20" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached20, /area/desert_dam/interior/dam_interior/west_tunnel) "atj" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/prison, /area/desert_dam/interior/lab_northeast/east_lab_workshop) "atk" = ( -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/interior/lab_northeast/east_lab_workshop) "atl" = ( /turf/open/desert/rock/deep, @@ -6406,10 +4917,7 @@ /obj/item/stack/sheet/mineral/phoron{ amount = 50 }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/west, /area/desert_dam/building/substation/northeast) "atn" = ( /obj/structure/window/framed/chigusa, @@ -6419,49 +4927,35 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/desert_dam/interior/dam_interior/west_tunnel) "atp" = ( /obj/structure/bed/chair/office/dark{ dir = 1 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/desert_dam/interior/lab_northeast/east_lab_west_entrance) "atq" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper Research Hallway" }, /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/interior/lab_northeast/east_lab_lobby) "atr" = ( /turf/open/desert/rock/deep/transition, /area/desert_dam/interior/dam_interior/south_tunnel) "ats" = ( -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/interior/lab_northeast/east_lab_lobby) "att" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/desert_dam/interior/dam_interior/west_tunnel) "atu" = ( -/turf/open/floor/coagulation{ - icon_state = "8,7-2" - }, +/turf/open/floor/coagulation/icon8_7_2, /area/desert_dam/exterior/valley/valley_mining) "atv" = ( /obj/structure/surface/table/reinforced, @@ -6518,9 +5012,7 @@ /obj/structure/filtration/coagulation{ icon_state = "2,7" }, -/turf/open/gm/river/desert/deep{ - icon = 'icons/turf/floors/desert_water_toxic.dmi' - }, +/turf/open/gm/river/desert/deep/toxic, /area/desert_dam/building/water_treatment_two) "atB" = ( /obj/effect/blocker/toxic_water/Group_2, @@ -6546,19 +5038,14 @@ dir = 4; pixel_x = -24 }, -/turf/open/asphalt/cement{ - icon_state = "cement2" - }, +/turf/open/asphalt/cement/cement2, /area/desert_dam/interior/dam_interior/west_tunnel) "atE" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ dir = 1; name = "\improper Security" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/lab_northeast/east_lab_security_armory) "atF" = ( /obj/structure/disposalpipe/segment, @@ -6566,10 +5053,7 @@ dir = 1; name = "\improper Security" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/lab_northeast/east_lab_security_armory) "atG" = ( /obj/structure/machinery/power/apc{ @@ -6577,30 +5061,20 @@ pixel_x = -30; start_charge = 0 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/west, /area/desert_dam/building/substation/northeast) "atH" = ( /obj/effect/decal/sand_overlay/sand2, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/desert_dam/interior/dam_interior/west_tunnel) "atI" = ( /obj/effect/decal/sand_overlay/sand2/corner2{ dir = 8 }, -/turf/open/asphalt/cement{ - icon_state = "cement9" - }, +/turf/open/asphalt/cement/cement9, /area/desert_dam/interior/dam_interior/west_tunnel) "atJ" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/prison/red/north, /area/desert_dam/interior/lab_northeast/east_lab_east_entrance) "atK" = ( /obj/structure/machinery/power/apc{ @@ -6608,15 +5082,10 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/prison/red/north, /area/desert_dam/interior/lab_northeast/east_lab_east_entrance) "atL" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached15" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached15, /area/desert_dam/exterior/valley/valley_wilderness) "atM" = ( /obj/effect/decal/warning_stripes{ @@ -6630,32 +5099,24 @@ dir = 1; icon_state = "pipe-c" }, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/interior/lab_northeast/east_lab_workshop) "atO" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/interior/lab_northeast/east_lab_workshop) "atP" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/interior/lab_northeast/east_lab_west_hallway) "atQ" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/interior/lab_northeast/east_lab_workshop) "atS" = ( /obj/effect/decal/sand_overlay/sand2{ @@ -6664,10 +5125,7 @@ /turf/open/floor/plating, /area/desert_dam/interior/lab_northeast/east_lab_maintenence) "atT" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/prison/red/north, /area/desert_dam/interior/lab_northeast/east_lab_west_entrance) "atU" = ( /obj/effect/decal/sand_overlay/sand2{ @@ -6676,10 +5134,7 @@ /turf/open/floor/plating, /area/desert_dam/interior/lab_northeast/east_lab_maintenence) "atV" = ( -/turf/open/floor{ - dir = 5; - icon_state = "vault" - }, +/turf/open/floor/vault2/northeast, /area/desert_dam/building/substation/northeast) "atW" = ( /obj/effect/blocker/toxic_water/Group_2, @@ -6715,27 +5170,16 @@ /obj/structure/machinery/power/terminal{ dir = 1 }, -/turf/open/floor{ - dir = 5; - icon_state = "vault" - }, +/turf/open/floor/vault2/northeast, /area/desert_dam/building/substation/northeast) "aub" = ( -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/desert_dam/building/substation/northeast) "auc" = ( -/turf/open/floor/plating{ - dir = 8; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/west, /area/desert_dam/building/substation/northeast) "aud" = ( -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/desert_dam/interior/lab_northeast/east_lab_west_entrance) "aue" = ( /obj/structure/machinery/power/apc{ @@ -6743,19 +5187,14 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/prison/red/north, /area/desert_dam/interior/lab_northeast/east_lab_west_entrance) "auf" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ dir = 2; name = "\improper Research Workshop" }, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/interior/lab_northeast/east_lab_workshop) "aug" = ( /obj/structure/window/framed/chigusa, @@ -6765,9 +5204,7 @@ /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper RnD" }, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/lab_northeast/east_lab_RND) "aui" = ( /obj/structure/desertdam/decals/road_edge{ @@ -6779,70 +5216,43 @@ "auj" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/interior/lab_northeast/east_lab_workshop) "auk" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/interior/lab_northeast/east_lab_workshop) "aul" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/prison/darkyellowcorners2/southwest, /area/desert_dam/interior/lab_northeast/east_lab_workshop) "aum" = ( -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/northwest, /area/desert_dam/interior/lab_northeast/east_lab_RND) "aun" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/north, /area/desert_dam/interior/lab_northeast/east_lab_RND) "auo" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached13" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached13, /area/desert_dam/interior/dam_interior/west_tunnel) "aup" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkpurplecorners2" - }, +/turf/open/floor/prison/darkpurplecorners2/east, /area/desert_dam/interior/lab_northeast/east_lab_RND) "auq" = ( -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/lab_northeast/east_lab_RND) "aur" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkpurplecorners2" - }, +/turf/open/floor/prison/darkpurplecorners2/north, /area/desert_dam/interior/lab_northeast/east_lab_RND) "aus" = ( -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/lab_northeast/east_lab_east_entrance) "aut" = ( -/turf/open/desert/rock/deep/transition{ - dir = 10 - }, +/turf/open/desert/rock/deep/transition/southwest, /area/desert_dam/interior/dam_interior/west_tunnel) "auu" = ( /obj/structure/flora/grass/desert/lightgrass_3, @@ -6855,9 +5265,7 @@ /obj/structure/platform{ dir = 8 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached3" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached3, /area/desert_dam/exterior/valley/valley_medical) "auw" = ( /obj/structure/machinery/power/apc{ @@ -6865,10 +5273,7 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/prison{ - dir = 5; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/northeast, /area/desert_dam/interior/lab_northeast/east_lab_RND) "aux" = ( /obj/effect/decal/sand_overlay/sand2/corner2{ @@ -6891,40 +5296,27 @@ /area/desert_dam/building/substation/northeast) "auB" = ( /obj/structure/flora/pottedplant, -/turf/open/floor{ - dir = 8; - icon_state = "whiteblue" - }, +/turf/open/floor/whiteblue/west, /area/desert_dam/interior/lab_northeast/east_lab_lobby) "auC" = ( /obj/structure/disposalpipe/segment{ dir = 1; icon_state = "pipe-c" }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/desert_dam/interior/lab_northeast/east_lab_lobby) "auD" = ( /obj/structure/disposalpipe/segment{ dir = 2; icon_state = "pipe-c" }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/desert_dam/interior/lab_northeast/east_lab_lobby) "auE" = ( -/turf/open/floor{ - dir = 4; - icon_state = "whitebluecorner" - }, +/turf/open/floor/whitebluecorner/east, /area/desert_dam/interior/lab_northeast/east_lab_lobby) "auF" = ( -/turf/open/floor{ - dir = 1; - icon_state = "whiteblue" - }, +/turf/open/floor/whiteblue/north, /area/desert_dam/interior/lab_northeast/east_lab_lobby) "auG" = ( /turf/open/desert/rock, @@ -6933,38 +5325,25 @@ /obj/effect/decal/sand_overlay/sand2{ dir = 4 }, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/desert_dam/interior/dam_interior/west_tunnel) "auI" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/desert_dam/interior/lab_northeast/east_lab_west_entrance) "auK" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/prison/darkyellowcorners2/west, /area/desert_dam/interior/lab_northeast/east_lab_workshop) "auL" = ( /obj/structure/surface/table, /obj/effect/spawner/random/tool, -/turf/open/floor/prison{ - dir = 6; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/southeast, /area/desert_dam/interior/lab_northeast/east_lab_workshop) "auM" = ( /obj/structure/machinery/cm_vending/sorted/tech/science{ req_one_access = null }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/west, /area/desert_dam/interior/lab_northeast/east_lab_RND) "auN" = ( /obj/structure/desertdam/decals/road_edge, @@ -6972,19 +5351,13 @@ /turf/open/asphalt, /area/desert_dam/exterior/valley/north_valley_dam) "auP" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/east, /area/desert_dam/interior/lab_northeast/east_lab_RND) "auQ" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - dir = 1; - icon_state = "whiteblue" - }, +/turf/open/floor/whiteblue/north, /area/desert_dam/interior/lab_northeast/east_lab_lobby) "auR" = ( /obj/structure/machinery/power/apc{ @@ -6992,28 +5365,17 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor{ - dir = 1; - icon_state = "whiteblue" - }, +/turf/open/floor/whiteblue/north, /area/desert_dam/interior/lab_northeast/east_lab_lobby) "auS" = ( -/turf/open/floor{ - dir = 1; - icon_state = "whitebluecorner" - }, +/turf/open/floor/whitebluecorner/north, /area/desert_dam/interior/lab_northeast/east_lab_lobby) "auT" = ( -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/desert_dam/interior/lab_northeast/east_lab_lobby) "auV" = ( /obj/structure/flora/pottedplant, -/turf/open/floor{ - dir = 4; - icon_state = "whiteblue" - }, +/turf/open/floor/whiteblue/east, /area/desert_dam/interior/lab_northeast/east_lab_lobby) "auW" = ( /obj/structure/sign/safety/restrictedarea, @@ -7030,17 +5392,13 @@ /obj/structure/platform{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached1" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached1, /area/desert_dam/exterior/valley/valley_medical) "auY" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 8 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached13" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached13, /area/desert_dam/exterior/valley/valley_medical) "auZ" = ( /obj/structure/surface/rack, @@ -7049,44 +5407,29 @@ /area/desert_dam/building/water_treatment_two/floodgate_control) "ava" = ( /obj/structure/toilet, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/desert_dam/interior/lab_northeast/east_lab_lobby) "avb" = ( -/turf/open/desert/rock/deep{ - icon_state = "rock3" - }, +/turf/open/desert/rock/deep/rock3, /area/desert_dam/interior/dam_interior/west_tunnel) "avc" = ( -/turf/open/desert/rock/deep/transition{ - dir = 8 - }, +/turf/open/desert/rock/deep/transition/west, /area/desert_dam/interior/dam_interior/west_tunnel) "ave" = ( -/turf/open/floor{ - dir = 8; - icon_state = "whiteblue" - }, +/turf/open/floor/whiteblue/west, /area/desert_dam/interior/lab_northeast/east_lab_lobby) "avf" = ( /obj/structure/disposalpipe/segment{ dir = 4; icon_state = "pipe-c" }, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/desert_dam/interior/lab_northeast/east_lab_lobby) "avg" = ( /obj/structure/disposalpipe/junction{ dir = 8 }, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/desert_dam/interior/lab_northeast/east_lab_lobby) "avh" = ( /obj/structure/disposalpipe/segment{ @@ -7098,10 +5441,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/desert_dam/interior/lab_northeast/east_lab_lobby) "avj" = ( /obj/structure/machinery/door/poddoor/almayer/locked{ @@ -7109,44 +5449,31 @@ id = null; name = "\improper Elevator Lock" }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/west, /area/shuttle/trijent_shuttle/engi) "avk" = ( /obj/effect/decal/sand_overlay/sand2{ dir = 1 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/interior/dam_interior/west_tunnel) "avl" = ( /obj/structure/bed/chair/office/dark{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/prison/red/north, /area/desert_dam/interior/lab_northeast/east_lab_east_entrance) "avm" = ( /obj/effect/decal/sand_overlay/sand2/corner2{ dir = 1 }, -/turf/open/asphalt/cement{ - icon_state = "cement13" - }, +/turf/open/asphalt/cement/cement13, /area/desert_dam/interior/dam_interior/west_tunnel) "avn" = ( /obj/structure/closet/secure_closet/security, /obj/item/clothing/suit/armor/vest/security, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/prison/red/southwest, /area/desert_dam/interior/lab_northeast/east_lab_west_entrance) "avo" = ( /obj/structure/surface/table/reinforced, @@ -7154,10 +5481,7 @@ name = "Security Cameras - Research"; network = list("chigusa_3") }, -/turf/open/floor/prison{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/prison/red/northeast, /area/desert_dam/interior/lab_northeast/east_lab_east_entrance) "avp" = ( /obj/structure/surface/table, @@ -7165,33 +5489,23 @@ /turf/open/floor/prison, /area/desert_dam/building/water_treatment_two/floodgate_control) "avq" = ( -/turf/open/floor/prison{ - icon_state = "red" - }, +/turf/open/floor/prison/red, /area/desert_dam/interior/lab_northeast/east_lab_west_entrance) "avr" = ( /obj/structure/machinery/light, -/turf/open/floor/prison{ - icon_state = "red" - }, +/turf/open/floor/prison/red, /area/desert_dam/interior/lab_northeast/east_lab_west_entrance) "avt" = ( /turf/open/asphalt/cement, /area/desert_dam/interior/dam_interior/north_tunnel_entrance) "avu" = ( -/turf/open/desert/dirt{ - dir = 1; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/north, /area/desert_dam/interior/caves/east_caves) "avv" = ( /obj/structure/bed/chair/office/dark{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/desert_dam/building/water_treatment_two/floodgate_control) "avw" = ( /obj/structure/machinery/light{ @@ -7202,67 +5516,46 @@ "avx" = ( /obj/structure/machinery/r_n_d/protolathe, /obj/structure/machinery/light, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/southwest, /area/desert_dam/interior/lab_northeast/east_lab_workshop) "avy" = ( /obj/structure/surface/table, /obj/effect/spawner/random/tool, -/turf/open/floor/prison{ - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2, /area/desert_dam/interior/lab_northeast/east_lab_workshop) "avz" = ( /obj/structure/disposalpipe/junction{ dir = 8 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/desert_dam/interior/lab_northeast/east_lab_lobby) "avA" = ( /obj/structure/surface/table, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/prison{ - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2, /area/desert_dam/interior/lab_northeast/east_lab_workshop) "avB" = ( /obj/structure/machinery/autolathe, -/turf/open/floor/prison{ - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2, /area/desert_dam/interior/lab_northeast/east_lab_workshop) "avC" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached15" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached15, /area/desert_dam/exterior/valley/valley_northwest) "avD" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/prison/darkyellowcorners2/west, /area/desert_dam/interior/lab_northeast/east_lab_workshop) "avE" = ( /obj/structure/machinery/sentry_holder/colony{ pixel_y = 26 }, -/turf/open/asphalt/cement{ - icon_state = "cement9" - }, +/turf/open/asphalt/cement/cement9, /area/desert_dam/interior/dam_interior/north_tunnel_entrance) "avF" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/east, /area/desert_dam/interior/lab_northeast/east_lab_workshop) "avG" = ( /turf/closed/wall/r_wall/chigusa, @@ -7275,67 +5568,46 @@ /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper Research Hallway" }, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/interior/lab_northeast/east_lab_west_hallway) "avJ" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/interior/lab_northeast/east_lab_west_hallway) "avK" = ( /obj/structure/machinery/chem_master, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/west, /area/desert_dam/interior/lab_northeast/east_lab_RND) "avL" = ( /obj/structure/machinery/r_n_d/destructive_analyzer, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/lab_northeast/east_lab_RND) "avM" = ( /obj/structure/machinery/computer/WYresearch, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/lab_northeast/east_lab_RND) "avN" = ( /obj/structure/machinery/r_n_d/protolathe, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/lab_northeast/east_lab_RND) "avO" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk{ dir = 8 }, -/turf/open/floor{ - dir = 4; - icon_state = "whiteblue" - }, +/turf/open/floor/whiteblue/east, /area/desert_dam/interior/lab_northeast/east_lab_lobby) "avP" = ( /obj/structure/machinery/door/airlock/almayer/generic{ dir = 2; name = "\improper Toilet Unit" }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/desert_dam/interior/lab_northeast/east_lab_lobby) "avQ" = ( /obj/structure/reagent_dispensers/fueltank, -/turf/open/floor{ - dir = 10; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/southwest, /area/desert_dam/building/substation/northeast) "avR" = ( /obj/effect/decal/sand_overlay/sand2{ @@ -7344,17 +5616,13 @@ /obj/structure/machinery/sentry_holder/colony{ pixel_y = 26 }, -/turf/open/asphalt/cement{ - icon_state = "cement2" - }, +/turf/open/asphalt/cement/cement2, /area/desert_dam/interior/dam_interior/north_tunnel_entrance) "avS" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/desert/rock/deep/transition{ - dir = 4 - }, +/turf/open/desert/rock/deep/transition/east, /area/desert_dam/interior/dam_interior/north_tunnel_entrance) "avT" = ( /obj/structure/platform{ @@ -7364,51 +5632,34 @@ /turf/open/gm/river/desert/deep, /area/desert_dam/exterior/river/riverside_east) "avU" = ( -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/desert_dam/building/substation/northeast) "avV" = ( -/turf/open/floor{ - dir = 6; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/southeast, /area/desert_dam/building/substation/northeast) "avW" = ( /obj/structure/machinery/power/port_gen/pacman, -/turf/open/floor/plating{ - dir = 8; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/west, /area/desert_dam/building/substation/northeast) "avX" = ( /obj/effect/decal/sand_overlay/sand2, -/turf/open/floor/prison{ - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple, /area/desert_dam/interior/lab_northeast/east_lab_west_hallway) "avY" = ( /obj/effect/decal/sand_overlay/sand2/corner2{ dir = 8 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/prison/whitepurplecorner/west, /area/desert_dam/interior/lab_northeast/east_lab_west_hallway) "avZ" = ( /obj/effect/decal/sand_overlay/sand2, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/interior/dam_interior/west_tunnel) "awa" = ( /obj/effect/decal/sand_overlay/sand2/corner2{ dir = 8 }, -/turf/open/asphalt/cement{ - icon_state = "cement13" - }, +/turf/open/asphalt/cement/cement13, /area/desert_dam/interior/dam_interior/west_tunnel) "awb" = ( /obj/structure/machinery/power/apc{ @@ -7416,36 +5667,24 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/north, /area/desert_dam/interior/lab_northeast/east_lab_west_hallway) "awc" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2, /area/desert_dam/interior/lab_northeast/east_lab_biology) "awd" = ( -/turf/open/desert/dirt{ - icon_state = "rock1" - }, +/turf/open/desert/dirt/rock1, /area/desert_dam/interior/lab_northeast/east_lab_west_hallway) "awe" = ( /obj/structure/machinery/r_n_d/circuit_imprinter, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/lab_northeast/east_lab_RND) "awf" = ( /obj/effect/decal/sand_overlay/sand2{ dir = 4 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/west, /area/desert_dam/interior/lab_northeast/east_lab_west_hallway) "awg" = ( /obj/effect/decal/sand_overlay/sand2/corner2{ @@ -7454,19 +5693,13 @@ /turf/open/floor/plating, /area/desert_dam/interior/lab_northeast/east_lab_maintenence) "awh" = ( -/turf/open/desert/rock/deep/transition{ - dir = 10 - }, +/turf/open/desert/rock/deep/transition/southwest, /area/desert_dam/interior/dam_interior/western_dam_cave) "awi" = ( -/turf/open/desert/rock/deep/transition{ - dir = 4 - }, +/turf/open/desert/rock/deep/transition/east, /area/desert_dam/interior/dam_interior/western_dam_cave) "awj" = ( -/turf/open/desert/rock/deep/transition{ - dir = 5 - }, +/turf/open/desert/rock/deep/transition/northeast, /area/desert_dam/interior/dam_interior/western_dam_cave) "awk" = ( /obj/structure/prop/dam/large_boulder{ @@ -7475,9 +5708,7 @@ /turf/open/desert/rock, /area/desert_dam/exterior/valley/bar_valley_dam) "awl" = ( -/turf/open/desert/rock/deep/transition{ - dir = 5 - }, +/turf/open/desert/rock/deep/transition/northeast, /area/desert_dam/interior/dam_interior/workshop) "awm" = ( /obj/structure/platform{ @@ -7491,35 +5722,24 @@ dir = 4 }, /obj/structure/platform, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_mining) "awo" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached2" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached2, /area/desert_dam/exterior/valley/valley_mining) "awp" = ( /obj/structure/flora/grass/desert/lightgrass_8, -/turf/open/desert/rock/deep{ - icon_state = "rock3" - }, +/turf/open/desert/rock/deep/rock3, /area/desert_dam/interior/dam_interior/west_tunnel) "awq" = ( /obj/structure/machinery/colony_floodlight, -/turf/open/desert/rock/deep{ - icon_state = "rock3" - }, +/turf/open/desert/rock/deep/rock3, /area/desert_dam/interior/dam_interior/west_tunnel) "awr" = ( /obj/structure/surface/table/reinforced, /obj/effect/spawner/random/tool, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/east, /area/desert_dam/interior/lab_northeast/east_lab_RND) "aws" = ( /obj/effect/decal/sand_overlay/sand2/corner2, @@ -7529,46 +5749,30 @@ /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor{ - dir = 8; - icon_state = "whiteblue" - }, +/turf/open/floor/whiteblue/west, /area/desert_dam/interior/lab_northeast/east_lab_lobby) "awu" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowcorner" - }, +/turf/open/floor/whiteyellowcorner/east, /area/desert_dam/interior/lab_northeast/east_lab_lobby) "awv" = ( /obj/structure/prop/dam/drill, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_crashsite) "aww" = ( -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/desert_dam/interior/lab_northeast/east_lab_lobby) "awx" = ( /turf/open/floor, /area/desert_dam/interior/lab_northeast/east_lab_lobby) "awy" = ( -/turf/open/floor{ - dir = 1; - icon_state = "whiteyellowcorner" - }, +/turf/open/floor/whiteyellowcorner/north, /area/desert_dam/interior/lab_northeast/east_lab_lobby) "awz" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/interior/lab_northeast/east_lab_west_hallway) "awA" = ( /obj/structure/surface/table, @@ -7577,79 +5781,52 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/west, /area/desert_dam/interior/dam_interior/engine_east_wing) "awB" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/engine_east_wing) "awC" = ( -/turf/open/desert/rock/deep/transition{ - dir = 8 - }, +/turf/open/desert/rock/deep/transition/west, /area/desert_dam/interior/lab_northeast/east_lab_west_hallway) "awD" = ( /obj/effect/decal/sand_overlay/sand2{ dir = 10 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/southwest, /area/desert_dam/interior/lab_northeast/east_lab_west_hallway) "awE" = ( /obj/effect/decal/sand_overlay/sand2/corner2{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple, /area/desert_dam/interior/lab_northeast/east_lab_west_hallway) "awF" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper Research Workshop" }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/interior/lab_northeast/east_lab_workshop) "awG" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/interior/lab_northeast/east_lab_workshop) "awH" = ( /obj/structure/machinery/chem_dispenser, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/west, /area/desert_dam/interior/lab_northeast/east_lab_RND) "awI" = ( /obj/structure/surface/table/reinforced, /obj/effect/spawner/random/tool, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/southwest, /area/desert_dam/interior/lab_northeast/east_lab_RND) "awJ" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/light, /obj/effect/spawner/random/toolbox, -/turf/open/floor/prison{ - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2, /area/desert_dam/interior/lab_northeast/east_lab_RND) "awK" = ( /obj/structure/platform, @@ -7663,15 +5840,10 @@ /turf/closed/wall/r_wall/prison, /area/desert_dam/building/security/detective) "awN" = ( -/turf/open/floor{ - dir = 4; - icon_state = "whiteblue" - }, +/turf/open/floor/whiteblue/east, /area/desert_dam/interior/lab_northeast/east_lab_lobby) "awO" = ( -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/desert_dam/interior/lab_northeast/east_lab_lobby) "awP" = ( /obj/structure/bed/chair{ @@ -7680,137 +5852,94 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor{ - dir = 8; - icon_state = "whiteblue" - }, +/turf/open/floor/whiteblue/west, /area/desert_dam/interior/lab_northeast/east_lab_lobby) "awQ" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/desert_dam/interior/lab_northeast/east_lab_lobby) "awR" = ( -/turf/open/desert/desert_shore/desert_shore1{ - dir = 1 - }, +/turf/open/desert/desert_shore/desert_shore1/north, /area/desert_dam/exterior/valley/valley_crashsite) "awS" = ( /obj/effect/landmark/xeno_spawn, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/desert_dam/interior/lab_northeast/east_lab_lobby) "awT" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor{ - dir = 4; - icon_state = "whitebluecorner" - }, +/turf/open/floor/whitebluecorner/east, /area/desert_dam/interior/lab_northeast/east_lab_lobby) "awU" = ( /obj/effect/blocker/toxic_water, /obj/structure/filtration/coagulation{ icon_state = "3,7" }, -/turf/open/gm/river/desert/deep{ - icon = 'icons/turf/floors/desert_water_toxic.dmi' - }, +/turf/open/gm/river/desert/deep/toxic, /area/desert_dam/building/water_treatment_two) "awV" = ( /obj/structure/sink{ dir = 4; pixel_x = 11 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/desert_dam/interior/lab_northeast/east_lab_lobby) "awW" = ( -/turf/open/desert/desert_shore/shore_edge1{ - dir = 4 - }, +/turf/open/desert/desert_shore/shore_edge1/east, /area/desert_dam/exterior/valley/valley_crashsite) "awX" = ( -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowcorner" - }, +/turf/open/floor/whiteyellowcorner/east, /area/desert_dam/interior/lab_northeast/east_lab_lobby) "awY" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ name = "\improper Security Checkpoint" }, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/lab_northeast/east_lab_east_entrance) "awZ" = ( /obj/structure/machinery/door/airlock/almayer/generic{ name = "\improper Restroom" }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/desert_dam/interior/lab_northeast/east_lab_lobby) "axa" = ( -/turf/open/floor{ - icon_state = "whitebluecorner" - }, +/turf/open/floor/whitebluecorner, /area/desert_dam/interior/lab_northeast/east_lab_lobby) "axb" = ( /obj/structure/flora/pottedplant, -/turf/open/floor{ - icon_state = "whiteblue" - }, +/turf/open/floor/whiteblue, /area/desert_dam/interior/lab_northeast/east_lab_lobby) "axc" = ( /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor{ - icon_state = "whiteblue" - }, +/turf/open/floor/whiteblue, /area/desert_dam/interior/lab_northeast/east_lab_lobby) "axe" = ( -/turf/open/floor{ - dir = 8; - icon_state = "whitebluecorner" - }, +/turf/open/floor/whitebluecorner/west, /area/desert_dam/interior/lab_northeast/east_lab_lobby) "axf" = ( /obj/structure/machinery/light, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/desert_dam/interior/lab_northeast/east_lab_lobby) "axg" = ( /obj/effect/decal/sand_overlay/sand2/corner2, -/turf/open/floor/prison{ - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple, /area/desert_dam/interior/lab_northeast/east_lab_west_hallway) "axh" = ( /obj/structure/machinery/light, /obj/effect/decal/sand_overlay/sand2/corner2{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple, /area/desert_dam/interior/lab_northeast/east_lab_west_hallway) "axi" = ( /obj/structure/platform{ dir = 8 }, -/turf/open/desert/dirt{ - icon_state = "dirt2" - }, +/turf/open/desert/dirt/dirt2, /area/desert_dam/exterior/valley/valley_labs) "axj" = ( /turf/open/desert/desert_shore/shore_edge1, @@ -7824,15 +5953,11 @@ /area/desert_dam/interior/lab_northeast/east_lab_west_hallway) "axm" = ( /obj/structure/platform, -/turf/open/gm/river/desert/shallow_edge{ - dir = 10 - }, +/turf/open/gm/river/desert/shallow_edge/southwest, /area/desert_dam/exterior/valley/valley_labs) "axn" = ( /obj/structure/platform, -/turf/open/gm/river/desert/shallow_corner{ - dir = 8 - }, +/turf/open/gm/river/desert/shallow_corner/west, /area/desert_dam/exterior/valley/valley_labs) "axo" = ( /obj/structure/desertdam/decals/road_edge{ @@ -7850,10 +5975,7 @@ /turf/open/floor/plating, /area/desert_dam/interior/lab_northeast/east_lab_maintenence) "axr" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/prison/whitepurplecorner/west, /area/desert_dam/interior/lab_northeast/east_lab_west_hallway) "axs" = ( /obj/effect/decal/sand_overlay/sand2{ @@ -7862,10 +5984,7 @@ /turf/open/floor/plating, /area/desert_dam/interior/lab_northeast/east_lab_maintenence) "axt" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/southwest, /area/desert_dam/interior/lab_northeast/east_lab_west_hallway) "axu" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ @@ -7873,18 +5992,14 @@ }, /obj/structure/disposalpipe/segment, /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/desert_dam/interior/lab_northeast/east_lab_lobby) "axv" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper Lobby" }, /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/desert_dam/interior/lab_northeast/east_lab_lobby) "axw" = ( /obj/structure/surface/table/reinforced/prison{ @@ -7894,10 +6009,7 @@ desc = "A bizarre alien device used for trapping and killing prey."; name = "Alien Mine" }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/desert_dam/interior/caves/temple) "axx" = ( /obj/effect/decal/sand_overlay/sand1{ @@ -7911,35 +6023,21 @@ id = "dam_checkpoint_northeast"; name = "Checkpoint Lockdown" }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/prison/red/east, /area/desert_dam/interior/lab_northeast/east_lab_east_entrance) "axz" = ( -/turf/open/desert/dirt{ - dir = 9; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/northwest, /area/desert_dam/interior/caves/east_caves) "axA" = ( -/turf/open/floor/prison{ - icon_state = "red" - }, +/turf/open/floor/prison/red, /area/desert_dam/interior/lab_northeast/east_lab_east_entrance) "axB" = ( /obj/structure/surface/table/reinforced, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/prison{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/prison/red/southeast, /area/desert_dam/interior/lab_northeast/east_lab_east_entrance) "axC" = ( -/turf/open/desert/dirt{ - dir = 8; - icon_state = "desert_transition_corner1" - }, +/turf/open/desert/dirt/desert_transition_corner1/west, /area/desert_dam/interior/caves/east_caves) "axD" = ( /obj/effect/decal/sand_overlay/sand1{ @@ -7948,9 +6046,7 @@ /turf/open/desert/rock, /area/desert_dam/exterior/valley/valley_crashsite) "axE" = ( -/turf/open/floor/prison{ - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2, /area/desert_dam/interior/lab_northeast/east_lab_RND) "axF" = ( /turf/closed/wall/r_wall/prison, @@ -7959,9 +6055,7 @@ /obj/structure/surface/table/reinforced, /obj/effect/spawner/random/toolbox, /obj/structure/machinery/light, -/turf/open/floor/prison{ - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2, /area/desert_dam/interior/lab_northeast/east_lab_RND) "axH" = ( /obj/structure/surface/table/reinforced, @@ -7973,10 +6067,7 @@ /obj/item/stack/sheet/glass{ amount = 30 }, -/turf/open/floor/prison{ - dir = 6; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/southeast, /area/desert_dam/interior/lab_northeast/east_lab_RND) "axI" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony{ @@ -7997,9 +6088,7 @@ /area/desert_dam/interior/lab_northeast/east_lab_west_hallway) "axM" = ( /obj/effect/blocker/toxic_water/Group_2, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_labs) "axN" = ( /obj/structure/reagent_dispensers/fueltank, @@ -8007,31 +6096,19 @@ /area/desert_dam/interior/lab_northeast/east_lab_west_hallway) "axO" = ( /obj/structure/platform, -/turf/open/gm/river/desert/shallow_corner{ - dir = 4 - }, +/turf/open/gm/river/desert/shallow_corner/east, /area/desert_dam/exterior/valley/valley_labs) "axP" = ( -/turf/open/desert/rock/deep/transition{ - dir = 8 - }, +/turf/open/desert/rock/deep/transition/west, /area/desert_dam/exterior/valley/valley_wilderness) "axQ" = ( -/turf/open/floor/prison{ - icon_state = "whitepurplecorner" - }, +/turf/open/floor/prison/whitepurplecorner, /area/desert_dam/interior/lab_northeast/east_lab_west_hallway) "axR" = ( -/turf/open/floor/prison{ - dir = 6; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/southeast, /area/desert_dam/interior/lab_northeast/east_lab_west_hallway) "axS" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/west, /area/desert_dam/interior/lab_northeast/east_lab_west_hallway) "axT" = ( /turf/open/desert/rock/deep/transition, @@ -8040,43 +6117,29 @@ /obj/effect/decal/sand_overlay/sand2{ dir = 4 }, -/turf/open/asphalt/cement{ - icon_state = "cement7" - }, +/turf/open/asphalt/cement/cement7, /area/desert_dam/exterior/valley/valley_wilderness) "axV" = ( /obj/effect/decal/sand_overlay/sand2{ dir = 8 }, -/turf/open/asphalt/cement{ - icon_state = "cement7" - }, +/turf/open/asphalt/cement/cement7, /area/desert_dam/exterior/valley/valley_wilderness) "axW" = ( /obj/structure/bookcase/manuals/research_and_development, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/desert_dam/interior/lab_northeast/east_lab_west_hallway) "axX" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/desert_dam/interior/lab_northeast/east_lab_west_hallway) "axY" = ( -/turf/open/desert/dirt{ - dir = 8; - icon_state = "desert_transition_corner1" - }, +/turf/open/desert/dirt/desert_transition_corner1/west, /area/desert_dam/exterior/valley/valley_northwest) "axZ" = ( -/turf/open/desert/dirt{ - dir = 1; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/north, /area/desert_dam/exterior/valley/valley_northwest) "aya" = ( /obj/structure/window/framed/prison/reinforced, @@ -8085,33 +6148,25 @@ "ayb" = ( /obj/structure/closet/secure_closet/scientist, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/desert_dam/interior/lab_northeast/east_lab_west_hallway) "ayd" = ( /obj/structure/showcase{ icon_state = "mechfab1" }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/desert_dam/interior/lab_northeast/east_lab_west_hallway) "aye" = ( /obj/structure/surface/table, /obj/structure/machinery/computer/pod/old{ name = "Personal Computer" }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/desert_dam/interior/lab_northeast/east_lab_west_hallway) "ayf" = ( /obj/structure/surface/table, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/desert_dam/interior/lab_northeast/east_lab_west_hallway) "ayg" = ( /obj/structure/surface/table, @@ -8127,35 +6182,25 @@ /obj/structure/surface/table, /obj/item/tool/pen, /obj/item/paper_bundle, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/desert_dam/interior/lab_northeast/east_lab_west_hallway) "ayj" = ( -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/desert_dam/interior/lab_northeast/east_lab_west_hallway) "ayk" = ( /obj/effect/landmark/crap_item, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/desert_dam/interior/lab_northeast/east_lab_west_hallway) "ayl" = ( /obj/structure/bed/chair/office/light{ dir = 4 }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/desert_dam/interior/lab_northeast/east_lab_west_hallway) "aym" = ( /obj/structure/surface/table, /obj/effect/spawner/random/tool, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/desert_dam/interior/lab_northeast/east_lab_west_hallway) "ayo" = ( /obj/item/reagent_container/glass/bucket/mopbucket, @@ -8163,26 +6208,20 @@ /turf/open/floor/plating, /area/desert_dam/interior/lab_northeast/east_lab_west_hallway) "ayp" = ( -/turf/open/desert/rock/deep/transition{ - dir = 1 - }, +/turf/open/desert/rock/deep/transition/north, /area/desert_dam/exterior/valley/valley_wilderness) "ayr" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/interior/lab_northeast/east_lab_west_hallway) "ays" = ( /obj/structure/bed/chair/comfy/beige{ dir = 1 }, -/turf/open/desert/rock/deep/transition{ - dir = 1 - }, +/turf/open/desert/rock/deep/transition/north, /area/desert_dam/interior/caves/temple) "ayt" = ( /obj/structure/janitorialcart, @@ -8192,22 +6231,15 @@ /obj/structure/bed/chair/office/light{ dir = 8 }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/desert_dam/interior/lab_northeast/east_lab_west_hallway) "ayv" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/desert_dam/interior/lab_northeast/east_lab_west_hallway) "ayw" = ( /obj/structure/flora/pottedplant, -/turf/open/floor/prison{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/prison/red/northwest, /area/desert_dam/building/security/lobby) "ayx" = ( /obj/structure/surface/rack, @@ -8215,32 +6247,21 @@ /area/desert_dam/interior/lab_northeast/east_lab_west_hallway) "ayz" = ( /obj/structure/showcase, -/turf/open/floor{ - dir = 8; - icon_state = "carpet6-2" - }, +/turf/open/floor/carpet6_2/west, /area/desert_dam/interior/lab_northeast/east_lab_west_hallway) "ayA" = ( /obj/structure/machinery/door/airlock/almayer/research/glass/colony{ dir = 2; name = "\improper Research Office" }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/interior/lab_northeast/east_lab_west_hallway) "ayB" = ( /obj/structure/machinery/computer/aifixer, -/turf/open/floor/prison{ - dir = 9; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/northwest, /area/desert_dam/interior/lab_northeast/east_lab_RND) "ayC" = ( -/turf/open/desert/rock/deep/transition{ - dir = 9 - }, +/turf/open/desert/rock/deep/transition/northwest, /area/desert_dam/interior/caves/temple) "ayD" = ( /turf/open/desert/rock/deep/transition, @@ -8248,166 +6269,106 @@ "ayE" = ( /obj/structure/closet/secure_closet/RD, /obj/effect/landmark/objective_landmark/far, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/north, /area/desert_dam/interior/lab_northeast/east_lab_RND) "ayF" = ( /obj/structure/surface/table, /obj/structure/machinery/computer/guestpass, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/north, /area/desert_dam/interior/lab_northeast/east_lab_RND) "ayG" = ( /obj/structure/surface/table, /obj/effect/spawner/random/tech_supply, /obj/item/phone, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/north, /area/desert_dam/interior/lab_northeast/east_lab_RND) "ayH" = ( -/turf/open/desert/rock/deep{ - icon_state = "rock3" - }, +/turf/open/desert/rock/deep/rock3, /area/desert_dam/interior/caves/temple) "ayI" = ( /obj/structure/bed/chair/office/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/north, /area/desert_dam/interior/lab_northeast/east_lab_RND) "ayJ" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk, -/turf/open/floor/prison{ - dir = 5; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/northeast, /area/desert_dam/interior/lab_northeast/east_lab_RND) "ayK" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/north, /area/desert_dam/interior/lab_northeast/east_lab_west_hallway) "ayL" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/prison/whitepurplecorner/east, /area/desert_dam/interior/lab_northeast/east_lab_west_hallway) "ayM" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/interior/lab_northeast/east_lab_west_hallway) "ayN" = ( /obj/effect/decal/sand_overlay/sand2{ dir = 10 }, -/turf/open/asphalt/cement{ - icon_state = "cement7" - }, +/turf/open/asphalt/cement/cement7, /area/desert_dam/exterior/valley/valley_wilderness) "ayO" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/prison/whitepurplecorner/north, /area/desert_dam/interior/lab_northeast/east_lab_west_hallway) "ayP" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/north, /area/desert_dam/interior/lab_northeast/east_lab_west_hallway) "ayS" = ( -/turf/open/floor/prison{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/northeast, /area/desert_dam/interior/lab_northeast/east_lab_west_hallway) "ayT" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/west, /area/desert_dam/interior/lab_northeast/east_lab_RND) "ayU" = ( /obj/structure/bed/chair/office/light{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/lab_northeast/east_lab_RND) "ayV" = ( /obj/structure/surface/table, /obj/item/paper_bin, /obj/item/disk/nuclear, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/lab_northeast/east_lab_RND) "ayW" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 1; - icon_state = "bluecorner" - }, +/turf/open/floor/prison/bluecorner/north, /area/desert_dam/interior/lab_northeast/east_lab_RND) "ayX" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/interior/lab_northeast/east_lab_west_hallway) "ayY" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/interior/lab_northeast/east_lab_west_hallway) "ayZ" = ( -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/interior/lab_northeast/east_lab_west_hallway) "aza" = ( /obj/structure/platform, -/turf/open/desert/dirt{ - icon_state = "dirt2" - }, +/turf/open/desert/dirt/dirt2, /area/desert_dam/exterior/valley/valley_labs) "azb" = ( -/turf/open/desert/rock/deep/transition{ - dir = 8 - }, +/turf/open/desert/rock/deep/transition/west, /area/desert_dam/interior/dam_interior/western_dam_cave) "azc" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/east, /area/desert_dam/interior/lab_northeast/east_lab_west_hallway) "azd" = ( /obj/structure/machinery/power/apc{ @@ -8415,44 +6376,32 @@ pixel_x = -24; start_charge = 0 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/west, /area/desert_dam/interior/lab_northeast/east_lab_RND) "azf" = ( /obj/structure/closet/firecloset, /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/northwest, /area/desert_dam/building/administration/control_room) "azg" = ( /obj/structure/surface/table, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/lab_northeast/east_lab_RND) "azh" = ( /obj/structure/bed/chair/office/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/lab_northeast/east_lab_RND) "azi" = ( /obj/structure/disposalpipe/segment{ dir = 1; icon_state = "pipe-c" }, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/lab_northeast/east_lab_RND) "azj" = ( /obj/structure/machinery/door/airlock/almayer/research/glass/colony{ @@ -8461,95 +6410,64 @@ /obj/structure/disposalpipe/segment{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/lab_northeast/east_lab_RND) "azk" = ( /obj/effect/landmark/xeno_spawn, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/interior/lab_northeast/east_lab_west_hallway) "azl" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/interior/lab_northeast/east_lab_west_hallway) "azm" = ( /obj/structure/lamarr, -/turf/open/floor/prison{ - dir = 10; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/southwest, /area/desert_dam/interior/lab_northeast/east_lab_RND) "azo" = ( -/turf/open/floor/prison{ - icon_state = "blue" - }, +/turf/open/floor/prison/blue, /area/desert_dam/interior/lab_northeast/east_lab_RND) "azp" = ( -/turf/open/floor/prison{ - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple, /area/desert_dam/interior/lab_northeast/east_lab_west_hallway) "azq" = ( /obj/structure/machinery/light, -/turf/open/floor/prison{ - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple, /area/desert_dam/interior/lab_northeast/east_lab_west_hallway) "azr" = ( -/turf/open/floor/coagulation{ - icon_state = "8,3" - }, +/turf/open/floor/coagulation/icon8_3, /area/desert_dam/exterior/valley/valley_mining) "azs" = ( -/turf/open/desert/rock/deep/transition{ - dir = 9 - }, +/turf/open/desert/rock/deep/transition/northwest, /area/desert_dam/interior/dam_interior/western_dam_cave) "azt" = ( /obj/structure/machinery/light, -/turf/open/floor/prison{ - dir = 6; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/southeast, /area/desert_dam/interior/lab_northeast/east_lab_west_hallway) "azu" = ( /obj/effect/decal/sand_overlay/sand2, -/turf/open/asphalt/cement{ - icon_state = "cement7" - }, +/turf/open/asphalt/cement/cement7, /area/desert_dam/exterior/valley/valley_wilderness) "azv" = ( /obj/effect/decal/sand_overlay/sand2/corner2{ dir = 8 }, -/turf/open/asphalt/cement{ - icon_state = "cement7" - }, +/turf/open/asphalt/cement/cement7, /area/desert_dam/exterior/valley/valley_wilderness) "azw" = ( /obj/structure/disposalpipe/segment{ dir = 8 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/interior/lab_northeast/east_lab_west_hallway) "azx" = ( /obj/structure/disposalpipe/segment{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/interior/lab_northeast/east_lab_west_hallway) "azy" = ( /obj/structure/pipes/vents/pump{ @@ -8559,25 +6477,17 @@ dir = 8; icon_state = "pipe-c" }, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/interior/lab_northeast/east_lab_west_hallway) "azz" = ( /obj/structure/machinery/colony_floodlight, -/turf/open/desert/rock/deep{ - icon_state = "rock3" - }, +/turf/open/desert/rock/deep/rock3, /area/desert_dam/exterior/valley/valley_wilderness) "azA" = ( -/turf/open/desert/rock/deep/transition{ - dir = 9 - }, +/turf/open/desert/rock/deep/transition/northwest, /area/desert_dam/exterior/valley/valley_wilderness) "azB" = ( -/turf/open/desert/rock/deep/transition{ - dir = 4 - }, +/turf/open/desert/rock/deep/transition/east, /area/desert_dam/interior/caves/temple) "azC" = ( /obj/structure/prop/brazier/torch, @@ -8597,43 +6507,32 @@ /obj/effect/decal/sand_overlay/sand2{ dir = 1 }, -/turf/open/asphalt/cement{ - icon_state = "cement14" - }, +/turf/open/asphalt/cement/cement14, /area/desert_dam/exterior/valley/valley_wilderness) "azG" = ( /obj/effect/decal/sand_overlay/sand2/corner2{ dir = 1 }, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/desert_dam/exterior/valley/valley_wilderness) "azH" = ( /obj/effect/decal/sand_overlay/sand2/corner2{ dir = 4 }, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/desert_dam/exterior/valley/valley_wilderness) "azI" = ( /obj/effect/decal/sand_overlay/sand2{ dir = 1 }, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/desert_dam/exterior/valley/valley_wilderness) "azJ" = ( /obj/structure/machinery/portable_atmospherics/canister/air, /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "green" - }, +/turf/open/floor/prison/green/east, /area/desert_dam/interior/dam_interior/atmos_storage) "azK" = ( /obj/structure/platform{ @@ -8648,9 +6547,7 @@ /obj/effect/decal/sand_overlay/sand2{ dir = 4 }, -/turf/open/asphalt/cement{ - icon_state = "cement9" - }, +/turf/open/asphalt/cement/cement9, /area/desert_dam/exterior/valley/valley_wilderness) "azN" = ( /obj/structure/disposalpipe/segment{ @@ -8663,9 +6560,7 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 8 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_crashsite) "azP" = ( /obj/structure/flora/grass/tallgrass/desert/corner, @@ -8679,9 +6574,7 @@ /obj/effect/decal/sand_overlay/sand2{ dir = 4 }, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/desert_dam/exterior/valley/valley_wilderness) "azS" = ( /obj/structure/disposalpipe/segment, @@ -8731,28 +6624,20 @@ /turf/open/asphalt, /area/desert_dam/exterior/valley/valley_wilderness) "aAb" = ( -/turf/open/asphalt/cement{ - icon_state = "cement2" - }, +/turf/open/asphalt/cement/cement2, /area/desert_dam/exterior/valley/valley_wilderness) "aAc" = ( /obj/effect/decal/sand_overlay/sand2/corner2, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/desert_dam/exterior/valley/valley_wilderness) "aAe" = ( /turf/open/desert/excavation/component8, /area/desert_dam/exterior/valley/valley_crashsite) "aAf" = ( -/turf/open/desert/excavation/component8{ - dir = 1 - }, +/turf/open/desert/excavation/component8/north, /area/desert_dam/exterior/valley/valley_crashsite) "aAg" = ( -/turf/open/desert/excavation/component8{ - dir = 4 - }, +/turf/open/desert/excavation/component8/east, /area/desert_dam/exterior/valley/valley_crashsite) "aAh" = ( /obj/structure/machinery/colony_floodlight, @@ -8769,14 +6654,10 @@ /turf/open/desert/rock, /area/desert_dam/exterior/valley/valley_wilderness) "aAk" = ( -/turf/open/desert/excavation/component8{ - dir = 8 - }, +/turf/open/desert/excavation/component8/west, /area/desert_dam/exterior/valley/valley_crashsite) "aAl" = ( -/turf/open/desert/excavation/component8{ - dir = 6 - }, +/turf/open/desert/excavation/component8/southeast, /area/desert_dam/exterior/valley/valley_crashsite) "aAm" = ( /obj/structure/platform{ @@ -8802,9 +6683,7 @@ /obj/effect/decal/sand_overlay/sand2{ dir = 8 }, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/desert_dam/exterior/valley/valley_wilderness) "aAr" = ( /obj/structure/prop/dam/boulder/boulder2, @@ -8814,9 +6693,7 @@ /obj/effect/decal/sand_overlay/sand2/corner2{ dir = 4 }, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/desert_dam/exterior/valley/valley_wilderness) "aAt" = ( /obj/effect/decal/sand_overlay/sand2{ @@ -8842,39 +6719,28 @@ /area/desert_dam/interior/caves/central_caves) "aAx" = ( /obj/effect/decal/sand_overlay/sand2/corner2, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/desert_dam/exterior/valley/valley_wilderness) "aAy" = ( -/turf/open/desert/dirt{ - dir = 4; - icon_state = "desert_transition_corner1" - }, +/turf/open/desert/dirt/desert_transition_corner1/east, /area/desert_dam/exterior/valley/valley_medical) "aAz" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 1 }, -/turf/open/desert/dirt{ - icon_state = "dirt2" - }, +/turf/open/desert/dirt/dirt2, /area/desert_dam/interior/caves/central_caves) "aAA" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 5 }, -/turf/open/desert/dirt{ - icon_state = "dirt2" - }, +/turf/open/desert/dirt/dirt2, /area/desert_dam/interior/caves/central_caves) "aAB" = ( /obj/structure/platform_decoration{ dir = 1 }, -/turf/open/desert/desert_shore/shore_edge1{ - dir = 8 - }, +/turf/open/desert/desert_shore/shore_edge1/west, /area/desert_dam/exterior/valley/valley_labs) "aAC" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ @@ -8889,9 +6755,7 @@ /obj/effect/decal/sand_overlay/sand2/corner2{ dir = 1 }, -/turf/open/asphalt/cement{ - icon_state = "cement15" - }, +/turf/open/asphalt/cement/cement15, /area/desert_dam/exterior/valley/valley_wilderness) "aAE" = ( /obj/structure/platform{ @@ -8906,92 +6770,65 @@ /obj/structure/platform{ dir = 8 }, -/turf/open/desert/excavation/component8{ - dir = 10 - }, +/turf/open/desert/excavation/component8/southwest, /area/desert_dam/exterior/valley/valley_crashsite) "aAG" = ( -/turf/open/desert/desert_shore/desert_shore1{ - dir = 1 - }, +/turf/open/desert/desert_shore/desert_shore1/north, /area/desert_dam/interior/caves/central_caves) "aAH" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 4 }, -/turf/open/desert/desert_shore/shore_edge1{ - dir = 4 - }, +/turf/open/desert/desert_shore/shore_edge1/east, /area/desert_dam/interior/caves/central_caves) "aAI" = ( -/turf/open/desert/desert_shore/shore_corner2{ - dir = 8 - }, +/turf/open/desert/desert_shore/shore_corner2/west, /area/desert_dam/interior/caves/central_caves) "aAJ" = ( -/turf/open/desert/desert_shore/shore_edge1{ - dir = 4 - }, +/turf/open/desert/desert_shore/shore_edge1/east, /area/desert_dam/interior/caves/central_caves) "aAK" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 4 }, -/turf/open/desert/dirt{ - icon_state = "dirt2" - }, +/turf/open/desert/dirt/dirt2, /area/desert_dam/interior/caves/central_caves) "aAL" = ( /obj/structure/prop/dam/large_boulder/boulder2, -/turf/open/desert/dirt{ - dir = 10; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/southwest, /area/desert_dam/interior/caves/central_caves) "aAM" = ( -/turf/open/desert/excavation/component8{ - dir = 5 - }, +/turf/open/desert/excavation/component8/northeast, /area/desert_dam/exterior/valley/valley_crashsite) "aAN" = ( /turf/open/gm/river/desert/shallow_corner, /area/desert_dam/interior/caves/central_caves) "aAO" = ( -/turf/open/gm/river/desert/shallow_edge{ - dir = 1 - }, +/turf/open/gm/river/desert/shallow_edge/north, /area/desert_dam/interior/caves/central_caves) "aAP" = ( -/turf/open/gm/river/desert/shallow_edge{ - dir = 5 - }, +/turf/open/gm/river/desert/shallow_edge/northeast, /area/desert_dam/interior/caves/central_caves) "aAQ" = ( /obj/structure/machinery/sentry_holder/colony{ dir = 1; pixel_y = -10 }, -/turf/open/asphalt/cement{ - icon_state = "cement15" - }, +/turf/open/asphalt/cement/cement15, /area/desert_dam/interior/dam_interior/south_tunnel) "aAR" = ( /obj/structure/machinery/sentry_holder/colony{ dir = 1; pixel_y = -10 }, -/turf/open/asphalt/cement{ - icon_state = "cement14" - }, +/turf/open/asphalt/cement/cement14, /area/desert_dam/interior/dam_interior/south_tunnel) "aAS" = ( /obj/effect/decal/sand_overlay/sand2{ dir = 8 }, /obj/structure/machinery/light, -/turf/open/asphalt/cement{ - icon_state = "cement15" - }, +/turf/open/asphalt/cement/cement15, /area/desert_dam/interior/dam_interior/south_tunnel) "aAT" = ( /obj/effect/decal/warning_stripes{ @@ -9011,22 +6848,16 @@ /area/desert_dam/exterior/valley/valley_wilderness) "aAV" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/lab_northeast/east_lab_east_entrance) "aAW" = ( -/turf/open/gm/river/desert/shallow_edge{ - dir = 8 - }, +/turf/open/gm/river/desert/shallow_edge/west, /area/desert_dam/interior/caves/central_caves) "aAX" = ( /turf/open/gm/river/desert/deep, /area/desert_dam/interior/caves/central_caves) "aAY" = ( -/turf/open/desert/dirt{ - icon_state = "dirt2" - }, +/turf/open/desert/dirt/dirt2, /area/desert_dam/interior/caves/central_caves) "aAZ" = ( /obj/structure/desertdam/decals/road_edge{ @@ -9044,25 +6875,19 @@ /obj/effect/decal/sand_overlay/sand2{ dir = 1 }, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/desert_dam/exterior/valley/valley_wilderness) "aBc" = ( /obj/effect/decal/sand_overlay/sand2{ dir = 1 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached4" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached4, /area/desert_dam/exterior/valley/valley_wilderness) "aBd" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 8 }, -/turf/open/desert/dirt{ - icon_state = "dirt2" - }, +/turf/open/desert/dirt/dirt2, /area/desert_dam/interior/caves/central_caves) "aBe" = ( /turf/open/desert/desert_shore/shore_edge1, @@ -9071,23 +6896,17 @@ /turf/open/desert/desert_shore/shore_corner2, /area/desert_dam/interior/caves/central_caves) "aBg" = ( -/turf/open/gm/river/desert/shallow_edge{ - dir = 10 - }, +/turf/open/gm/river/desert/shallow_edge/southwest, /area/desert_dam/interior/caves/central_caves) "aBh" = ( /turf/open/gm/river/desert/shallow_edge, /area/desert_dam/interior/caves/central_caves) "aBi" = ( -/turf/open/gm/river/desert/shallow_edge{ - dir = 6 - }, +/turf/open/gm/river/desert/shallow_edge/southeast, /area/desert_dam/interior/caves/central_caves) "aBj" = ( /obj/effect/decal/sand_overlay/sand2/corner2, -/turf/open/asphalt/cement{ - icon_state = "cement2" - }, +/turf/open/asphalt/cement/cement2, /area/desert_dam/exterior/valley/valley_wilderness) "aBk" = ( /turf/open/floor/sandstone/runed, @@ -9123,10 +6942,7 @@ /obj/structure/machinery/door/airlock/almayer/engineering/colony{ dir = 1 }, -/turf/open/floor/plating{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/plating/asteroidfloor/north, /area/desert_dam/interior/dam_interior/south_tunnel) "aBq" = ( /obj/effect/decal/sand_overlay/sand1{ @@ -9167,14 +6983,10 @@ /area/desert_dam/exterior/valley/valley_wilderness) "aBv" = ( /obj/effect/decal/sand_overlay/sand2, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached12" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached12, /area/desert_dam/exterior/valley/valley_wilderness) "aBw" = ( -/turf/open/desert/excavation/component8{ - dir = 9 - }, +/turf/open/desert/excavation/component8/northwest, /area/desert_dam/exterior/valley/valley_crashsite) "aBx" = ( /obj/structure/desertdam/decals/road_stop{ @@ -9187,9 +6999,7 @@ /turf/open/desert/excavation/component9, /area/desert_dam/exterior/valley/valley_crashsite) "aBA" = ( -/turf/open/desert/excavation/component9{ - dir = 1 - }, +/turf/open/desert/excavation/component9/north, /area/desert_dam/exterior/valley/valley_crashsite) "aBB" = ( /obj/structure/prop/dam/large_boulder/boulder2, @@ -9201,9 +7011,7 @@ /area/desert_dam/interior/caves/central_caves) "aBD" = ( /obj/structure/machinery/colony_floodlight, -/turf/open/desert/rock/deep/transition{ - dir = 8 - }, +/turf/open/desert/rock/deep/transition/west, /area/desert_dam/exterior/valley/valley_wilderness) "aBE" = ( /turf/open/desert/rock, @@ -9218,26 +7026,19 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/asphalt/cement{ - icon_state = "cement13" - }, +/turf/open/asphalt/cement/cement13, /area/desert_dam/interior/dam_interior/south_tunnel) "aBH" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/desert_dam/interior/dam_interior/south_tunnel) "aBI" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/desert/rock/deep/transition{ - dir = 8 - }, +/turf/open/desert/rock/deep/transition/west, /area/desert_dam/exterior/valley/valley_wilderness) "aBJ" = ( /obj/structure/disposalpipe/segment{ @@ -9246,9 +7047,7 @@ /obj/effect/decal/sand_overlay/sand2{ dir = 4 }, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/desert_dam/exterior/valley/valley_wilderness) "aBK" = ( /obj/structure/desertdam/decals/road_edge, @@ -9262,9 +7061,7 @@ /area/desert_dam/interior/caves/temple) "aBO" = ( /obj/structure/platform_decoration/mineral/sandstone/runed, -/turf/open/desert/desert_shore/shore_edge1{ - dir = 4 - }, +/turf/open/desert/desert_shore/shore_edge1/east, /area/desert_dam/interior/caves/temple) "aBQ" = ( /obj/effect/decal/warning_stripes{ @@ -9276,34 +7073,23 @@ /obj/structure/platform/mineral/sandstone/runed{ dir = 4 }, -/turf/open/desert/desert_shore/shore_corner1{ - dir = 8 - }, +/turf/open/desert/desert_shore/shore_corner1/west, /area/desert_dam/interior/caves/temple) "aBS" = ( -/turf/open/desert/rock/deep{ - icon_state = "rock4" - }, +/turf/open/desert/rock/deep/rock4, /area/desert_dam/interior/caves/temple) "aBT" = ( /obj/structure/disposalpipe/segment, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached2" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached2, /area/desert_dam/exterior/valley/valley_wilderness) "aBU" = ( /turf/open/desert/rock/deep, /area/desert_dam/interior/caves/temple) "aBV" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/desert_dam/interior/caves/temple) "aBW" = ( -/turf/open/desert/desert_shore/shore_edge1{ - dir = 1 - }, +/turf/open/desert/desert_shore/shore_edge1/north, /area/desert_dam/interior/caves/temple) "aBX" = ( /obj/structure/machinery/colony_floodlight, @@ -9316,22 +7102,16 @@ /obj/structure/machinery/sentry_holder/colony{ pixel_y = 26 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached20" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached20, /area/desert_dam/interior/dam_interior/south_tunnel) "aBZ" = ( -/turf/open/desert/rock/deep/transition{ - dir = 1 - }, +/turf/open/desert/rock/deep/transition/north, /area/desert_dam/interior/dam_interior/workshop) "aCa" = ( /obj/structure/machinery/sentry_holder/colony{ pixel_y = 26 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached2" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached2, /area/desert_dam/interior/dam_interior/south_tunnel) "aCb" = ( /obj/effect/decal/sand_overlay/sand2/corner2{ @@ -9340,55 +7120,39 @@ /turf/open/asphalt/cement, /area/desert_dam/exterior/valley/valley_wilderness) "aCc" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached4" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached4, /area/desert_dam/interior/dam_interior/south_tunnel) "aCd" = ( /obj/structure/platform{ dir = 8 }, -/turf/open/desert/dirt{ - dir = 1; - icon_state = "desert_transition_corner1" - }, +/turf/open/desert/dirt/desert_transition_corner1/north, /area/desert_dam/exterior/valley/valley_labs) "aCe" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 8 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached9" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached9, /area/desert_dam/interior/dam_interior/south_tunnel) "aCf" = ( /obj/effect/blocker/toxic_water/Group_1, -/turf/open/floor{ - icon_state = "neutral" - }, +/turf/open/floor/neutral, /area/desert_dam/interior/dam_interior/engine_room) "aCg" = ( /obj/structure/machinery/colony_floodlight, -/turf/open/desert/dirt{ - dir = 10; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/southwest, /area/desert_dam/interior/dam_interior/south_tunnel) "aCh" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 9 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached2" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached2, /area/desert_dam/exterior/valley/valley_wilderness) "aCi" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 1 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached4" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached4, /area/desert_dam/exterior/valley/valley_wilderness) "aCj" = ( /obj/structure/disposalpipe/segment, @@ -9402,9 +7166,7 @@ /turf/open/floor/interior/wood, /area/desert_dam/interior/dam_interior/east_tunnel_entrance) "aCm" = ( -/turf/open/desert/excavation/component9{ - dir = 4 - }, +/turf/open/desert/excavation/component9/east, /area/desert_dam/exterior/valley/valley_crashsite) "aCn" = ( /obj/structure/bed, @@ -9415,9 +7177,7 @@ /area/desert_dam/interior/dam_interior/east_tunnel_entrance) "aCo" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached14" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached14, /area/desert_dam/exterior/valley/valley_mining) "aCp" = ( /obj/structure/desertdam/decals/road_stop{ @@ -9429,17 +7189,13 @@ "aCq" = ( /obj/structure/surface/rack, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/prison{ - icon_state = "redcorner" - }, +/turf/open/floor/prison/redcorner, /area/desert_dam/interior/dam_interior/south_tunnel_entrance) "aCr" = ( /turf/closed/wall/r_wall/chigusa, /area/desert_dam/interior/lab_northeast/east_lab_RND) "aCs" = ( -/turf/open/desert/excavation/component9{ - dir = 8 - }, +/turf/open/desert/excavation/component9/west, /area/desert_dam/exterior/valley/valley_crashsite) "aCt" = ( /obj/structure/closet/cabinet, @@ -9462,9 +7218,7 @@ /turf/open/floor/interior/wood, /area/desert_dam/interior/dam_interior/east_tunnel_entrance) "aCz" = ( -/turf/open/desert/excavation/component9{ - dir = 6 - }, +/turf/open/desert/excavation/component9/southeast, /area/desert_dam/exterior/valley/valley_crashsite) "aCA" = ( /turf/open/floor/interior/wood, @@ -9487,39 +7241,19 @@ "aCD" = ( /obj/structure/surface/table/reinforced, /obj/item/storage/donut_box, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/east_tunnel_entrance) "aCE" = ( /obj/structure/machinery/microwave, /obj/structure/surface/table/reinforced, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/east_tunnel_entrance) "aCF" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/east_tunnel_entrance) "aCG" = ( -/turf/open/desert/dirt{ - dir = 9; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/northwest, /area/desert_dam/exterior/valley/valley_crashsite) -"aCH" = ( -/obj/structure/machinery/power/apc{ - dir = 1; - pixel_y = 24; - start_charge = 0 - }, -/turf/open/floor/interior/wood/alt, -/area/desert_dam/interior/dam_interior/east_tunnel_entrance) "aCI" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/interior/wood/alt, @@ -9528,19 +7262,14 @@ /turf/open/floor/interior/wood/alt, /area/desert_dam/interior/dam_interior/east_tunnel_entrance) "aCK" = ( -/turf/open/desert/excavation/component9{ - dir = 10 - }, +/turf/open/desert/excavation/component9/southwest, /area/desert_dam/exterior/valley/valley_crashsite) "aCL" = ( /obj/effect/decal/cleanable/blood, /turf/open/floor/interior/wood/alt, /area/desert_dam/interior/dam_interior/east_tunnel_entrance) "aCM" = ( -/turf/open/desert/dirt{ - dir = 8; - icon_state = "desert_transition_corner1" - }, +/turf/open/desert/dirt/desert_transition_corner1/west, /area/desert_dam/exterior/valley/valley_crashsite) "aCN" = ( /obj/effect/decal/cleanable/dirt, @@ -9557,9 +7286,7 @@ /turf/open/floor/interior/wood/alt, /area/desert_dam/interior/dam_interior/east_tunnel_entrance) "aCP" = ( -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/desert_dam/interior/dam_interior/west_tunnel) "aCQ" = ( /obj/structure/desertdam/decals/road_edge{ @@ -9568,9 +7295,7 @@ /turf/open/asphalt, /area/desert_dam/exterior/valley/valley_wilderness) "aCR" = ( -/turf/open/asphalt/cement{ - icon_state = "cement14" - }, +/turf/open/asphalt/cement/cement14, /area/desert_dam/interior/dam_interior/west_tunnel) "aCS" = ( /obj/structure/window/framed/colony/reinforced, @@ -9578,10 +7303,7 @@ /area/desert_dam/interior/dam_interior/east_tunnel_entrance) "aCU" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/east_tunnel_entrance) "aCV" = ( /obj/item/ammo_magazine/pistol/holdout, @@ -9642,21 +7364,14 @@ /area/desert_dam/exterior/valley/valley_northwest) "aDe" = ( /obj/effect/decal/sand_overlay/sand1, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_northwest) "aDf" = ( -/turf/open/floor/filtrationside{ - dir = 8 - }, +/turf/open/floor/filtrationside/west, /area/desert_dam/exterior/valley/valley_medical) "aDg" = ( /obj/structure/bed/chair, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/east_tunnel_entrance) "aDh" = ( /obj/effect/decal/cleanable/blood, @@ -9694,19 +7409,13 @@ /obj/structure/surface/table, /obj/item/stack/medical/bruise_pack, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/east_tunnel_entrance) "aDo" = ( /obj/structure/surface/table, /obj/item/tool/pickaxe/drill, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/east_tunnel_entrance) "aDp" = ( /obj/structure/surface/table/woodentable, @@ -9732,20 +7441,14 @@ /area/desert_dam/interior/dam_interior/east_tunnel_entrance) "aDt" = ( /obj/effect/decal/sand_overlay/sand1/corner1, -/turf/open/asphalt/cement{ - icon_state = "cement14" - }, +/turf/open/asphalt/cement/cement14, /area/desert_dam/interior/dam_interior/east_tunnel_entrance) "aDu" = ( /obj/effect/decal/sand_overlay/sand1, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/desert_dam/interior/dam_interior/east_tunnel_entrance) "aDv" = ( -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/interior/dam_interior/south_tunnel_entrance) "aDw" = ( /obj/structure/barricade/wooden, @@ -9773,9 +7476,7 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 5 }, -/turf/open/desert/dirt{ - icon_state = "dirt2" - }, +/turf/open/desert/dirt/dirt2, /area/desert_dam/exterior/valley/valley_crashsite) "aDA" = ( /obj/structure/barricade/wooden, @@ -9791,9 +7492,7 @@ /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 8 }, -/turf/open/asphalt/cement{ - icon_state = "cement15" - }, +/turf/open/asphalt/cement/cement15, /area/desert_dam/interior/dam_interior/east_tunnel_entrance) "aDC" = ( /obj/structure/desertdam/decals/road_edge{ @@ -9827,9 +7526,7 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 8 }, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/desert_dam/interior/dam_interior/east_tunnel_entrance) "aDG" = ( /obj/effect/decal/cleanable/dirt, @@ -9842,9 +7539,7 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 8 }, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/desert_dam/interior/dam_interior/east_tunnel_entrance) "aDI" = ( /obj/structure/disposalpipe/segment{ @@ -9857,39 +7552,29 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/desert/rock/deep/transition{ - dir = 1 - }, +/turf/open/desert/rock/deep/transition/north, /area/desert_dam/interior/dam_interior/east_tunnel_entrance) "aDK" = ( /obj/effect/decal/sand_overlay/sand2{ dir = 1 }, -/turf/open/asphalt/cement{ - icon_state = "cement9" - }, +/turf/open/asphalt/cement/cement9, /area/desert_dam/interior/dam_interior/east_tunnel_entrance) "aDL" = ( /obj/effect/decal/sand_overlay/sand1/corner1, -/turf/open/desert/desert_shore/shore_edge1{ - dir = 8 - }, +/turf/open/desert/desert_shore/shore_edge1/west, /area/desert_dam/exterior/valley/valley_crashsite) "aDM" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/desert_dam/interior/dam_interior/east_tunnel_entrance) "aDN" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/desert_dam/interior/dam_interior/east_tunnel_entrance) "aDO" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ @@ -9898,9 +7583,7 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached2" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached2, /area/desert_dam/interior/dam_interior/east_tunnel_entrance) "aDP" = ( /turf/open/asphalt/cement_sunbleached, @@ -9910,9 +7593,7 @@ dir = 8; pixel_x = 24 }, -/turf/open/asphalt/cement{ - icon_state = "cement15" - }, +/turf/open/asphalt/cement/cement15, /area/desert_dam/interior/dam_interior/east_tunnel_entrance) "aDR" = ( /obj/structure/machinery/power/apc{ @@ -9920,18 +7601,14 @@ pixel_x = 28; start_charge = 0 }, -/turf/open/asphalt/cement{ - icon_state = "cement15" - }, +/turf/open/asphalt/cement/cement15, /area/desert_dam/interior/dam_interior/east_tunnel_entrance) "aDS" = ( /obj/structure/machinery/sentry_holder/colony{ dir = 4; pixel_x = -24 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached14" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached14, /area/desert_dam/interior/dam_interior/east_tunnel_entrance) "aDT" = ( /turf/closed/wall/hangar{ @@ -9942,24 +7619,17 @@ /area/shuttle/trijent_shuttle/omega) "aDU" = ( /obj/structure/flora/tree/joshua, -/turf/open/desert/dirt{ - dir = 4; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/east, /area/desert_dam/exterior/valley/valley_medical) "aDV" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 9 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_medical) "aDY" = ( /obj/structure/prop/dam/boulder/boulder3, -/turf/open/desert/dirt{ - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1, /area/desert_dam/exterior/valley/valley_crashsite) "aDZ" = ( /obj/structure/platform, @@ -9989,9 +7659,7 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 4 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_medical) "aEf" = ( /obj/structure/platform, @@ -10037,9 +7705,7 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 10 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_crashsite) "aEn" = ( /obj/effect/decal/warning_stripes{ @@ -10051,24 +7717,17 @@ "aEp" = ( /obj/structure/prop/dam/boulder/boulder3, /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/desert/dirt{ - dir = 10; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/southwest, /area/desert_dam/exterior/valley/valley_wilderness) "aEq" = ( /obj/effect/decal/sand_overlay/sand1, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_crashsite) "aEr" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 8 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_crashsite) "aEs" = ( /obj/structure/machinery/door/poddoor/almayer/locked{ @@ -10076,10 +7735,7 @@ id = null; name = "\improper Elevator Lock" }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/west, /area/shuttle/trijent_shuttle/omega) "aEu" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ @@ -10092,10 +7748,7 @@ pixel_y = 32; shuttleId = "trijentshuttle22" }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/exterior/valley/valley_medical) "aEv" = ( /obj/structure/stairs{ @@ -10104,9 +7757,7 @@ /obj/structure/platform{ dir = 8 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_crashsite) "aEw" = ( /obj/structure/stairs{ @@ -10115,44 +7766,31 @@ /obj/structure/platform{ dir = 4 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_crashsite) "aEx" = ( /obj/effect/decal/sand_overlay/sand1/corner1, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_crashsite) "aEy" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 6 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_crashsite) "aEz" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 8 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached3" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached3, /area/desert_dam/exterior/valley/valley_crashsite) "aEA" = ( /obj/effect/decal/sand_overlay/sand1/corner1, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached1" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached1, /area/desert_dam/exterior/valley/valley_crashsite) "aEB" = ( /obj/structure/prop/dam/boulder/boulder1, -/turf/open/desert/dirt{ - dir = 5; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/northeast, /area/desert_dam/exterior/valley/valley_crashsite) "aEC" = ( /obj/structure/machinery/power/apc{ @@ -10169,18 +7807,13 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 1 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/exterior/valley/valley_medical) "aED" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 10 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached14" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached14, /area/desert_dam/exterior/valley/valley_northwest) "aEE" = ( /obj/effect/decal/warning_stripes{ @@ -10193,9 +7826,7 @@ /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 8 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached1" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached1, /area/desert_dam/exterior/valley/valley_northwest) "aEG" = ( /obj/structure/machinery/door/poddoor/two_tile/four_tile{ @@ -10203,7 +7834,7 @@ unacidable = 1 }, /turf/open/asphalt, -/area/desert_dam/exterior/valley/valley_northwest) +/area/desert_dam/exterior/landing_pad_one) "aEH" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, @@ -10232,9 +7863,7 @@ /obj/effect/decal/sand_overlay/sand2{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached3" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached3, /area/desert_dam/exterior/valley/valley_crashsite) "aEM" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -10244,9 +7873,7 @@ dir = 4 }, /obj/effect/blocker/toxic_water/Group_1, -/turf/open/floor{ - icon_state = "neutral" - }, +/turf/open/floor/neutral, /area/desert_dam/interior/dam_interior/engine_room) "aEN" = ( /obj/structure/platform{ @@ -10270,9 +7897,7 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 8 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached1" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached1, /area/desert_dam/exterior/valley/valley_crashsite) "aEQ" = ( /obj/structure/desertdam/decals/road_stop{ @@ -10295,52 +7920,35 @@ /turf/open/desert/dirt, /area/desert_dam/exterior/valley/valley_crashsite) "aET" = ( -/turf/open/desert/rock/deep/transition{ - dir = 8 - }, +/turf/open/desert/rock/deep/transition/west, /area/desert_dam/exterior/valley/valley_crashsite) "aEU" = ( -/turf/open/desert/dirt{ - dir = 1; - icon_state = "desert_transition_corner1" - }, +/turf/open/desert/dirt/desert_transition_corner1/north, /area/desert_dam/exterior/valley/valley_crashsite) "aEV" = ( -/turf/open/desert/dirt{ - dir = 6; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/southeast, /area/desert_dam/exterior/valley/valley_crashsite) "aEW" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached3" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached3, /area/desert_dam/exterior/valley/valley_crashsite) "aEX" = ( -/turf/open/desert/dirt{ - dir = 1; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/north, /area/desert_dam/exterior/valley/valley_crashsite) "aEY" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 9 }, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached2" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached2, /area/desert_dam/exterior/valley/valley_crashsite) "aEZ" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 1 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached4" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached4, /area/desert_dam/exterior/valley/valley_crashsite) "aFa" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ @@ -10357,14 +7965,10 @@ /turf/open/desert/dirt, /area/desert_dam/exterior/valley/valley_crashsite) "aFd" = ( -/turf/open/desert/rock/deep/transition{ - dir = 1 - }, +/turf/open/desert/rock/deep/transition/north, /area/desert_dam/exterior/valley/valley_crashsite) "aFe" = ( -/turf/open/desert/rock/deep/transition{ - dir = 9 - }, +/turf/open/desert/rock/deep/transition/northwest, /area/desert_dam/exterior/valley/valley_crashsite) "aFf" = ( /obj/effect/decal/sand_overlay/sand1/corner1, @@ -10375,31 +7979,23 @@ /obj/structure/filtration/coagulation{ icon_state = "6,7" }, -/turf/open/gm/river/desert/deep{ - icon = 'icons/turf/floors/desert_water_toxic.dmi' - }, +/turf/open/gm/river/desert/deep/toxic, /area/desert_dam/building/water_treatment_two) "aFh" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/desert/rock/deep/transition{ - dir = 1 - }, +/turf/open/desert/rock/deep/transition/north, /area/desert_dam/interior/dam_interior/workshop) "aFi" = ( /obj/effect/decal/sand_overlay/sand1, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached12" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached12, /area/desert_dam/exterior/valley/valley_crashsite) "aFj" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 6 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached15" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached15, /area/desert_dam/exterior/valley/valley_crashsite) "aFk" = ( /obj/structure/flora/grass/desert/lightgrass_7, @@ -10425,30 +8021,20 @@ /obj/effect/decal/sand_overlay/sand2{ dir = 1 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached4" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached4, /area/desert_dam/exterior/valley/valley_crashsite) "aFp" = ( /obj/effect/decal/sand_overlay/sand2{ dir = 5 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached9" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached9, /area/desert_dam/exterior/valley/valley_crashsite) "aFq" = ( /obj/structure/prop/dam/boulder/boulder3, -/turf/open/desert/dirt{ - dir = 1; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/north, /area/desert_dam/exterior/valley/valley_crashsite) "aFr" = ( -/turf/open/desert/dirt{ - dir = 5; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/northeast, /area/desert_dam/exterior/valley/valley_crashsite) "aFs" = ( /obj/structure/desertdam/decals/road_edge{ @@ -10461,9 +8047,7 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached13" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached13, /area/desert_dam/exterior/valley/valley_northwest) "aFu" = ( /obj/structure/prop/dam/large_boulder/boulder1, @@ -10471,23 +8055,17 @@ /area/desert_dam/exterior/valley/valley_northwest) "aFv" = ( /obj/effect/decal/sand_overlay/sand1/corner1, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached4" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached4, /area/desert_dam/exterior/valley/valley_telecoms) "aFw" = ( /obj/effect/decal/sand_overlay/sand1, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/desert_dam/exterior/valley/valley_telecoms) "aFx" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 8 }, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/desert_dam/exterior/valley/valley_telecoms) "aFy" = ( /obj/effect/decal/cleanable/dirt, @@ -10500,10 +8078,7 @@ /area/desert_dam/interior/caves/central_caves) "aFA" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/lab_northeast/east_lab_security_armory) "aFB" = ( /obj/structure/machinery/light, @@ -10514,9 +8089,7 @@ dir = 8; pixel_x = 24 }, -/turf/open/asphalt/cement{ - icon_state = "cement9" - }, +/turf/open/asphalt/cement/cement9, /area/desert_dam/interior/dam_interior/east_tunnel_entrance) "aFC" = ( /obj/effect/decal/sand_overlay/sand1, @@ -10525,9 +8098,7 @@ pixel_x = -24 }, /obj/structure/machinery/light, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached19" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached19, /area/desert_dam/interior/dam_interior/east_tunnel_entrance) "aFD" = ( /obj/structure/desertdam/decals/road_edge, @@ -10543,30 +8114,21 @@ /area/desert_dam/interior/dam_interior/south_tunnel) "aFF" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/prison{ - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple, /area/desert_dam/interior/lab_northeast/east_lab_east_hallway) "aFG" = ( /obj/structure/flora/grass/desert/lightgrass_2, -/turf/open/desert/dirt{ - dir = 6; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/southeast, /area/desert_dam/exterior/valley/valley_medical) "aFH" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 10 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached12" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached12, /area/desert_dam/exterior/valley/valley_medical) "aFI" = ( /obj/effect/decal/sand_overlay/sand1, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached15" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached15, /area/desert_dam/exterior/valley/valley_medical) "aFJ" = ( /obj/structure/surface/table/almayer, @@ -10584,17 +8146,12 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 5 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_medical) "aFM" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/medical_pod/autodoc, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/medical/emergency_room) "aFN" = ( /obj/structure/flora/bush/desert/cactus/multiple{ @@ -10630,15 +8187,11 @@ /turf/open/desert/dirt, /area/desert_dam/exterior/valley/valley_crashsite) "aFU" = ( -/turf/open/desert/dirt{ - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1, /area/desert_dam/interior/caves/central_caves) "aFV" = ( /obj/effect/decal/sand_overlay/sand2, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached12" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached12, /area/desert_dam/exterior/valley/valley_crashsite) "aFW" = ( /obj/effect/decal/sand_overlay/sand2/corner2{ @@ -10697,10 +8250,7 @@ /turf/open/asphalt/cement_sunbleached, /area/desert_dam/exterior/valley/valley_crashsite) "aGg" = ( -/turf/open/desert/dirt{ - dir = 5; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/northeast, /area/desert_dam/interior/caves/central_caves) "aGh" = ( /obj/structure/flora/grass/tallgrass/desert/corner{ @@ -10709,9 +8259,7 @@ /turf/open/desert/dirt, /area/desert_dam/interior/caves/central_caves) "aGi" = ( -/turf/open/desert/dirt{ - icon_state = "desert_transition_corner1" - }, +/turf/open/desert/dirt/desert_transition_corner1, /area/desert_dam/exterior/valley/valley_crashsite) "aGj" = ( /obj/structure/flora/grass/tallgrass/desert/corner{ @@ -10733,9 +8281,7 @@ /area/desert_dam/exterior/valley/valley_crashsite) "aGm" = ( /obj/effect/decal/sand_overlay/sand1/corner1, -/turf/open/floor/coagulation{ - icon_state = "8,3" - }, +/turf/open/floor/coagulation/icon8_3, /area/desert_dam/exterior/valley/valley_mining) "aGn" = ( /obj/effect/decal/sand_overlay/sand1, @@ -10760,9 +8306,7 @@ /turf/open/desert/dirt, /area/desert_dam/exterior/valley/valley_crashsite) "aGs" = ( -/turf/open/desert/dirt{ - icon_state = "desert_transition_corner1" - }, +/turf/open/desert/dirt/desert_transition_corner1, /area/desert_dam/interior/caves/central_caves) "aGt" = ( /obj/structure/prop/dam/wide_boulder/boulder1, @@ -10772,9 +8316,7 @@ /obj/effect/decal/sand_overlay/sand2/corner2{ dir = 1 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached3" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached3, /area/desert_dam/exterior/valley/valley_crashsite) "aGv" = ( /obj/structure/flora/bush/desert/cactus{ @@ -10783,9 +8325,7 @@ /turf/open/desert/dirt, /area/desert_dam/interior/caves/central_caves) "aGw" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached3" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached3, /area/desert_dam/exterior/valley/valley_crashsite) "aGx" = ( /obj/structure/desertdam/decals/road_edge{ @@ -10812,9 +8352,7 @@ /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached1" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached1, /area/desert_dam/exterior/valley/valley_crashsite) "aGC" = ( /obj/effect/decal/sand_overlay/sand1, @@ -10828,14 +8366,10 @@ /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 1 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_crashsite) "aGE" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached1" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached1, /area/desert_dam/exterior/valley/valley_crashsite) "aGF" = ( /obj/structure/flora/bush/desert/cactus{ @@ -10853,15 +8387,10 @@ /turf/open/asphalt, /area/desert_dam/exterior/valley/valley_wilderness) "aGH" = ( -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_crashsite) "aGI" = ( -/turf/open/desert/dirt{ - dir = 1; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/north, /area/desert_dam/interior/caves/central_caves) "aGJ" = ( /obj/structure/flora/grass/desert/lightgrass_9, @@ -10884,9 +8413,7 @@ /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 4 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_crashsite) "aGN" = ( /obj/structure/flora/grass/tallgrass/desert/corner{ @@ -10902,34 +8429,21 @@ /turf/open/desert/rock/deep, /area/desert_dam/interior/dam_interior/northeastern_tunnel) "aGQ" = ( -/turf/open/desert/dirt{ - dir = 1; - icon_state = "desert_transition_corner1" - }, +/turf/open/desert/dirt/desert_transition_corner1/north, /area/desert_dam/interior/caves/central_caves) "aGR" = ( -/turf/open/desert/dirt{ - dir = 6; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/southeast, /area/desert_dam/interior/caves/central_caves) "aGS" = ( /obj/structure/prop/dam/boulder/boulder2, -/turf/open/desert/dirt{ - dir = 1; - icon_state = "desert_transition_corner1" - }, +/turf/open/desert/dirt/desert_transition_corner1/north, /area/desert_dam/exterior/valley/valley_crashsite) "aGT" = ( /obj/structure/surface/table, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_crashsite) "aGU" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached9" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached9, /area/desert_dam/exterior/valley/valley_crashsite) "aGV" = ( /obj/structure/flora/bush/desert/cactus/multiple{ @@ -10939,15 +8453,10 @@ /area/desert_dam/exterior/valley/valley_crashsite) "aGW" = ( /obj/structure/machinery/colony_floodlight, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_crashsite) "aGX" = ( -/turf/open/desert/dirt{ - dir = 4; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/east, /area/desert_dam/interior/caves/central_caves) "aGY" = ( /obj/effect/landmark/yautja_teleport, @@ -10959,16 +8468,11 @@ /turf/open/desert/dirt, /area/desert_dam/exterior/valley/valley_crashsite) "aHb" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached4" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached4, /area/desert_dam/exterior/valley/valley_crashsite) "aHc" = ( /obj/structure/prop/dam/boulder/boulder2, -/turf/open/desert/dirt{ - dir = 5; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/northeast, /area/desert_dam/interior/caves/central_caves) "aHd" = ( /obj/structure/desertdam/decals/road_edge{ @@ -10983,9 +8487,7 @@ /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached4" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached4, /area/desert_dam/exterior/valley/valley_crashsite) "aHf" = ( /obj/structure/desertdam/decals/road_edge{ @@ -10997,16 +8499,10 @@ /turf/open/asphalt, /area/desert_dam/interior/dam_interior/south_tunnel_entrance) "aHg" = ( -/turf/open/desert/dirt{ - dir = 9; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/northwest, /area/desert_dam/interior/dam_interior/south_tunnel_entrance) "aHh" = ( -/turf/open/desert/dirt{ - dir = 5; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/northeast, /area/desert_dam/interior/dam_interior/south_tunnel_entrance) "aHi" = ( /obj/structure/machinery/light, @@ -11023,85 +8519,55 @@ dir = 1; pixel_y = -10 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached16" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached16, /area/desert_dam/interior/dam_interior/south_tunnel_entrance) "aHk" = ( /obj/structure/machinery/portable_atmospherics/hydroponics, -/turf/open/floor{ - dir = 9; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/northwest, /area/desert_dam/building/lab_northwest/west_lab_xenoflora) "aHl" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/north, /area/desert_dam/building/lab_northwest/west_lab_xenoflora) "aHm" = ( /obj/structure/machinery/portable_atmospherics/hydroponics, -/turf/open/floor{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/north, /area/desert_dam/building/lab_northwest/west_lab_xenoflora) "aHn" = ( /obj/structure/machinery/vending/hydroseeds, /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/north, /area/desert_dam/building/lab_northwest/west_lab_xenoflora) "aHo" = ( /obj/structure/machinery/centrifuge, -/turf/open/floor{ - icon_state = "whitegreenfull" - }, +/turf/open/floor/whitegreenfull, /area/desert_dam/building/lab_northwest/west_lab_xenoflora) "aHp" = ( /obj/structure/machinery/biogenerator, -/turf/open/floor{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/green/north, /area/desert_dam/building/lab_northwest/west_lab_xenoflora) "aHq" = ( /obj/structure/machinery/seed_extractor, -/turf/open/floor{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/green/north, /area/desert_dam/building/lab_northwest/west_lab_xenoflora) "aHr" = ( /obj/structure/machinery/botany/extractor, -/turf/open/floor{ - icon_state = "whitegreenfull" - }, +/turf/open/floor/whitegreenfull, /area/desert_dam/building/lab_northwest/west_lab_xenoflora) "aHs" = ( /obj/structure/machinery/vending/hydronutrients, /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/north, /area/desert_dam/building/lab_northwest/west_lab_xenoflora) "aHt" = ( /obj/structure/machinery/portable_atmospherics/hydroponics, -/turf/open/floor{ - dir = 5; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/northeast, /area/desert_dam/building/lab_northwest/west_lab_xenoflora) "aHu" = ( /obj/structure/desertdam/decals/road_edge, @@ -11118,15 +8584,10 @@ dir = 1; pixel_y = -10 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached19" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached19, /area/desert_dam/interior/dam_interior/south_tunnel_entrance) "aHw" = ( -/turf/open/desert/dirt{ - dir = 4; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/east, /area/desert_dam/interior/dam_interior/south_tunnel_entrance) "aHx" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ @@ -11138,24 +8599,18 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 5 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached9" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached9, /area/desert_dam/exterior/valley/valley_crashsite) "aHz" = ( /obj/structure/flora/grass/desert/lightgrass_3, /turf/open/desert/dirt, /area/desert_dam/exterior/valley/valley_crashsite) "aHA" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached12" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached12, /area/desert_dam/exterior/valley/valley_crashsite) "aHB" = ( /obj/effect/decal/sand_overlay/sand1/corner1, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached12" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached12, /area/desert_dam/exterior/valley/valley_crashsite) "aHC" = ( /obj/structure/flora/grass/desert/lightgrass_2, @@ -11174,10 +8629,7 @@ /area/desert_dam/exterior/valley/valley_crashsite) "aHF" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/prison/whitepurplecorner/east, /area/desert_dam/interior/lab_northeast/east_lab_west_hallway) "aHG" = ( /obj/structure/flora/grass/desert/heavygrass_3, @@ -11187,9 +8639,7 @@ /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 1 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached3" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached3, /area/desert_dam/exterior/valley/valley_crashsite) "aHI" = ( /obj/structure/flora/grass/tallgrass/desert/corner{ @@ -11200,60 +8650,43 @@ "aHJ" = ( /obj/structure/surface/table, /obj/item/tool/shovel, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_crashsite) "aHK" = ( /obj/structure/stairs, /obj/structure/platform{ dir = 8 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_crashsite) "aHL" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/interior/lab_northeast/east_lab_west_hallway) "aHM" = ( /obj/structure/stairs, /obj/structure/platform{ dir = 4 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_crashsite) "aHN" = ( /obj/structure/flora/grass/desert/heavygrass_3, /turf/open/desert/dirt, /area/desert_dam/interior/caves/central_caves) -"aHO" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached16" - }, -/area/desert_dam/exterior/valley/valley_wilderness) "aHP" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_mining) "aHQ" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 5 }, /obj/structure/machinery/colony_floodlight, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_crashsite) "aHR" = ( /obj/structure/flora/bush/desert/cactus{ @@ -11270,21 +8703,17 @@ /turf/open/desert/dirt, /area/desert_dam/exterior/valley/valley_crashsite) "aHU" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached14" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached14, /area/desert_dam/exterior/valley/valley_crashsite) "aHV" = ( /obj/structure/surface/table, /obj/item/tool/pickaxe/hammer, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_crashsite) "aHW" = ( /obj/structure/flora/grass/desert/lightgrass_4, /turf/open/desert/dirt, -/area/desert_dam/exterior/valley/valley_northwest) +/area/desert_dam/exterior/landing_pad_one) "aHX" = ( /obj/structure/machinery/light{ dir = 1 @@ -11298,9 +8727,7 @@ /obj/structure/machinery/sentry_holder/colony{ pixel_y = 26 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached20" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached20, /area/desert_dam/interior/dam_interior/south_tunnel_entrance) "aHZ" = ( /obj/structure/platform_decoration{ @@ -11312,9 +8739,7 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 1 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached18" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached18, /area/desert_dam/exterior/valley/valley_northwest) "aIb" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ @@ -11326,9 +8751,7 @@ /obj/structure/machinery/sentry_holder/colony{ pixel_y = 26 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/interior/dam_interior/south_tunnel_entrance) "aId" = ( /obj/structure/machinery/colony_floodlight, @@ -11339,25 +8762,17 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor{ - dir = 8; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/west, /area/desert_dam/building/lab_northwest/west_lab_xenoflora) "aIf" = ( -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/desert_dam/building/lab_northwest/west_lab_xenoflora) "aIg" = ( /obj/structure/machinery/portable_atmospherics/hydroponics, /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/east, /area/desert_dam/building/lab_northwest/west_lab_xenoflora) "aIh" = ( /obj/structure/platform{ @@ -11367,9 +8782,7 @@ /turf/open/gm/river/desert/deep, /area/desert_dam/exterior/river/riverside_central_south) "aIi" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached20" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached20, /area/desert_dam/interior/dam_interior/south_tunnel_entrance) "aIj" = ( /obj/structure/platform_decoration{ @@ -11385,14 +8798,10 @@ /turf/open/desert/excavation/component1, /area/desert_dam/exterior/valley/valley_crashsite) "aIm" = ( -/turf/open/desert/excavation/component1{ - dir = 1 - }, +/turf/open/desert/excavation/component1/north, /area/desert_dam/exterior/valley/valley_crashsite) "aIn" = ( -/turf/open/desert/excavation/component1{ - dir = 4 - }, +/turf/open/desert/excavation/component1/east, /area/desert_dam/exterior/valley/valley_crashsite) "aIo" = ( /obj/effect/landmark/monkey_spawn, @@ -11409,19 +8818,13 @@ /turf/open/desert/rock/deep, /area/desert_dam/interior/dam_interior/northeastern_tunnel) "aIr" = ( -/turf/open/desert/excavation/component1{ - dir = 8 - }, +/turf/open/desert/excavation/component1/west, /area/desert_dam/exterior/valley/valley_crashsite) "aIs" = ( -/turf/open/desert/excavation/component1{ - dir = 6 - }, +/turf/open/desert/excavation/component1/southeast, /area/desert_dam/exterior/valley/valley_crashsite) "aIt" = ( -/turf/open/desert/excavation/component1{ - dir = 10 - }, +/turf/open/desert/excavation/component1/southwest, /area/desert_dam/exterior/valley/valley_crashsite) "aIu" = ( /obj/structure/flora/grass/desert/lightgrass_8, @@ -11434,23 +8837,17 @@ /turf/closed/wall/r_wall/chigusa, /area/desert_dam/building/substation/northeast) "aIx" = ( -/turf/open/desert/desert_shore/desert_shore1{ - dir = 4 - }, +/turf/open/desert/desert_shore/desert_shore1/east, /area/desert_dam/exterior/valley/valley_crashsite) "aIy" = ( /obj/effect/decal/sand_overlay/sand1/corner1, -/turf/open/desert/dirt{ - icon_state = "dirt2" - }, +/turf/open/desert/dirt/dirt2, /area/desert_dam/exterior/valley/valley_crashsite) "aIA" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 1 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached4" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached4, /area/desert_dam/exterior/valley/valley_crashsite) "aIB" = ( /obj/structure/stairs{ @@ -11459,15 +8856,11 @@ /obj/structure/platform{ dir = 1 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached9" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached9, /area/desert_dam/exterior/valley/valley_crashsite) "aIC" = ( /obj/effect/landmark/monkey_spawn, -/turf/open/desert/excavation/component1{ - dir = 5 - }, +/turf/open/desert/excavation/component1/northeast, /area/desert_dam/exterior/valley/valley_crashsite) "aID" = ( /obj/structure/stairs{ @@ -11476,9 +8869,7 @@ /obj/structure/platform{ dir = 1 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached9" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached9, /area/desert_dam/exterior/valley/valley_crashsite) "aIE" = ( /obj/effect/decal/sand_overlay/sand1{ @@ -11487,30 +8878,21 @@ /turf/open/asphalt/cement_sunbleached, /area/desert_dam/exterior/valley/valley_crashsite) "aIF" = ( -/turf/open/desert/desert_shore/shore_corner2{ - dir = 4 - }, +/turf/open/desert/desert_shore/shore_corner2/east, /area/desert_dam/exterior/valley/valley_crashsite) "aIG" = ( -/turf/open/desert/desert_shore/shore_edge1{ - dir = 8 - }, +/turf/open/desert/desert_shore/shore_edge1/west, /area/desert_dam/exterior/valley/valley_crashsite) "aIH" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /obj/effect/decal/sand_overlay/sand1/corner1, -/turf/open/desert/dirt{ - dir = 1; - icon_state = "desert_transition_corner1" - }, +/turf/open/desert/dirt/desert_transition_corner1/north, /area/desert_dam/exterior/valley/valley_crashsite) "aII" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 10 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached14" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached14, /area/desert_dam/exterior/valley/valley_crashsite) "aIJ" = ( /obj/structure/desertdam/decals/road_edge{ @@ -11525,26 +8907,16 @@ /turf/open/asphalt, /area/desert_dam/exterior/valley/valley_northwest) "aIL" = ( -/turf/open/floor{ - dir = 1; - icon_state = "whitegreencorner" - }, +/turf/open/floor/whitegreencorner/north, /area/desert_dam/building/lab_northwest/west_lab_xenoflora) "aIM" = ( -/turf/open/floor{ - icon_state = "whitegreencorner" - }, +/turf/open/floor/whitegreencorner, /area/desert_dam/building/lab_northwest/west_lab_xenoflora) "aIN" = ( -/turf/open/floor{ - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen, /area/desert_dam/building/lab_northwest/west_lab_xenoflora) "aIO" = ( -/turf/open/floor{ - dir = 8; - icon_state = "whitegreencorner" - }, +/turf/open/floor/whitegreencorner/west, /area/desert_dam/building/lab_northwest/west_lab_xenoflora) "aIP" = ( /obj/structure/platform{ @@ -11559,24 +8931,18 @@ /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 8 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached12" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached12, /area/desert_dam/exterior/valley/valley_crashsite) "aIR" = ( /obj/structure/stairs{ dir = 4 }, /obj/structure/platform, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached15" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached15, /area/desert_dam/exterior/valley/valley_crashsite) "aIS" = ( /obj/effect/blocker/toxic_water/Group_2, -/turf/open/gm/river/desert/shallow_edge{ - dir = 8 - }, +/turf/open/gm/river/desert/shallow_edge/west, /area/desert_dam/exterior/river/riverside_central_north) "aIT" = ( /obj/structure/stairs, @@ -11589,41 +8955,29 @@ /turf/open/desert/excavation/component2, /area/desert_dam/exterior/valley/valley_crashsite) "aIV" = ( -/turf/open/desert/excavation/component2{ - dir = 1 - }, +/turf/open/desert/excavation/component2/north, /area/desert_dam/exterior/valley/valley_crashsite) "aIW" = ( /obj/structure/stairs{ dir = 8 }, /obj/structure/platform, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached15" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached15, /area/desert_dam/exterior/valley/valley_crashsite) "aIX" = ( -/turf/open/desert/excavation/component2{ - dir = 4 - }, +/turf/open/desert/excavation/component2/east, /area/desert_dam/exterior/valley/valley_crashsite) "aIY" = ( -/turf/open/desert/excavation/component2{ - dir = 8 - }, +/turf/open/desert/excavation/component2/west, /area/desert_dam/exterior/valley/valley_crashsite) "aIZ" = ( -/turf/open/desert/excavation/component2{ - dir = 6 - }, +/turf/open/desert/excavation/component2/southeast, /area/desert_dam/exterior/valley/valley_crashsite) "aJa" = ( /turf/open/desert/excavation/component4, /area/desert_dam/exterior/valley/valley_crashsite) "aJb" = ( -/turf/open/desert/excavation/component4{ - dir = 1 - }, +/turf/open/desert/excavation/component4/north, /area/desert_dam/exterior/valley/valley_crashsite) "aJc" = ( /turf/open/gm/river/desert/shallow, @@ -11636,9 +8990,7 @@ /turf/open/floor/plating, /area/desert_dam/interior/lab_northeast/east_lab_lobby) "aJf" = ( -/turf/open/desert/desert_shore/shore_corner2{ - dir = 4 - }, +/turf/open/desert/desert_shore/shore_corner2/east, /area/desert_dam/interior/caves/central_caves) "aJg" = ( /obj/item/tool/shovel, @@ -11658,72 +9010,48 @@ /turf/open/desert/excavation/component3, /area/desert_dam/exterior/valley/valley_crashsite) "aJk" = ( -/turf/open/desert/excavation/component3{ - dir = 1 - }, +/turf/open/desert/excavation/component3/north, /area/desert_dam/exterior/valley/valley_crashsite) "aJl" = ( -/turf/open/desert/excavation/component3{ - dir = 4 - }, +/turf/open/desert/excavation/component3/east, /area/desert_dam/exterior/valley/valley_crashsite) "aJm" = ( /obj/structure/flora/tree/joshua, /turf/open/desert/dirt, /area/desert_dam/exterior/valley/valley_northwest) "aJn" = ( -/turf/open/desert/excavation/component3{ - dir = 8 - }, +/turf/open/desert/excavation/component3/west, /area/desert_dam/exterior/valley/valley_crashsite) "aJo" = ( -/turf/open/desert/excavation/component4{ - dir = 4 - }, +/turf/open/desert/excavation/component4/east, /area/desert_dam/exterior/valley/valley_crashsite) "aJp" = ( -/turf/open/desert/excavation/component4{ - dir = 8 - }, +/turf/open/desert/excavation/component4/west, /area/desert_dam/exterior/valley/valley_crashsite) "aJq" = ( -/turf/open/desert/excavation/component4{ - dir = 6 - }, +/turf/open/desert/excavation/component4/southeast, /area/desert_dam/exterior/valley/valley_crashsite) "aJr" = ( /obj/structure/machinery/portable_atmospherics/hydroponics, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/desert_dam/building/lab_northwest/west_lab_xenoflora) "aJs" = ( -/turf/open/floor{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/east, /area/desert_dam/building/lab_northwest/west_lab_xenoflora) "aJt" = ( /obj/structure/surface/table, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/desert_dam/building/lab_northwest/west_lab_xenoflora) "aJu" = ( /turf/closed/wall, /area/desert_dam/building/lab_northwest/west_lab_xenoflora) "aJv" = ( /obj/structure/machinery/light, -/turf/open/desert/rock/deep/transition{ - dir = 10 - }, +/turf/open/desert/rock/deep/transition/southwest, /area/desert_dam/interior/dam_interior/workshop) "aJw" = ( -/turf/open/floor{ - dir = 8; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/west, /area/desert_dam/building/lab_northwest/west_lab_xenoflora) "aJx" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ @@ -11755,81 +9083,54 @@ /turf/open/desert/desert_shore/desert_shore1, /area/desert_dam/exterior/valley/valley_crashsite) "aJC" = ( -/turf/open/desert/excavation/component3{ - dir = 6 - }, +/turf/open/desert/excavation/component3/southeast, /area/desert_dam/exterior/valley/valley_crashsite) "aJD" = ( -/turf/open/desert/excavation/component3{ - dir = 10 - }, +/turf/open/desert/excavation/component3/southwest, /area/desert_dam/exterior/valley/valley_crashsite) "aJE" = ( -/turf/open/desert/excavation/component3{ - dir = 5 - }, +/turf/open/desert/excavation/component3/northeast, /area/desert_dam/exterior/valley/valley_crashsite) "aJF" = ( /turf/open/desert/excavation/component5, /area/desert_dam/exterior/valley/valley_crashsite) "aJG" = ( -/turf/open/desert/excavation/component5{ - dir = 1 - }, +/turf/open/desert/excavation/component5/north, /area/desert_dam/exterior/valley/valley_crashsite) "aJH" = ( -/turf/open/desert/desert_shore/shore_edge1{ - dir = 8 - }, +/turf/open/desert/desert_shore/shore_edge1/west, /area/desert_dam/interior/caves/central_caves) "aJI" = ( /obj/effect/decal/sand_overlay/sand1/corner1, -/turf/open/desert/dirt{ - icon_state = "dirt2" - }, +/turf/open/desert/dirt/dirt2, /area/desert_dam/interior/caves/central_caves) "aJJ" = ( -/turf/open/desert/excavation/component5{ - dir = 4 - }, +/turf/open/desert/excavation/component5/east, /area/desert_dam/exterior/valley/valley_crashsite) "aJK" = ( -/turf/open/desert/excavation/component5{ - dir = 8 - }, +/turf/open/desert/excavation/component5/west, /area/desert_dam/exterior/valley/valley_crashsite) "aJL" = ( /obj/structure/prop/dam/boulder/boulder2, -/turf/open/desert/dirt{ - dir = 10; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/southwest, /area/desert_dam/exterior/valley/valley_crashsite) "aJM" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 10 }, -/turf/open/desert/dirt{ - icon_state = "dirt2" - }, +/turf/open/desert/dirt/dirt2, /area/desert_dam/exterior/valley/valley_crashsite) "aJN" = ( /obj/structure/platform, -/turf/open/desert/excavation/component5{ - dir = 6 - }, +/turf/open/desert/excavation/component5/southeast, /area/desert_dam/exterior/valley/valley_crashsite) "aJO" = ( /obj/structure/platform, -/turf/open/desert/excavation/component5{ - dir = 10 - }, +/turf/open/desert/excavation/component5/southwest, /area/desert_dam/exterior/valley/valley_crashsite) "aJP" = ( /obj/structure/platform, -/turf/open/desert/excavation/component5{ - dir = 5 - }, +/turf/open/desert/excavation/component5/northeast, /area/desert_dam/exterior/valley/valley_crashsite) "aJQ" = ( /turf/open/desert/desert_shore/desert_shore1, @@ -11838,9 +9139,7 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 6 }, -/turf/open/desert/dirt{ - icon_state = "dirt2" - }, +/turf/open/desert/dirt/dirt2, /area/desert_dam/interior/caves/central_caves) "aJS" = ( /obj/structure/flora/grass/desert/lightgrass_12, @@ -11852,48 +9151,33 @@ /area/desert_dam/interior/caves/central_caves) "aJU" = ( /obj/structure/prop/dam/large_boulder/boulder2, -/turf/open/desert/dirt{ - dir = 4; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/east, /area/desert_dam/interior/caves/central_caves) "aJV" = ( -/turf/open/desert/dirt{ - dir = 4; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/east, /area/desert_dam/exterior/valley/valley_crashsite) "aJW" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 10 }, /obj/structure/machinery/colony_floodlight, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_crashsite) "aJX" = ( /obj/structure/prop/dam/boulder/boulder3, -/turf/open/desert/dirt{ - dir = 6; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/southeast, /area/desert_dam/exterior/valley/valley_crashsite) "aJY" = ( /turf/open/desert/excavation/component6, /area/desert_dam/exterior/valley/valley_crashsite) "aJZ" = ( -/turf/open/desert/excavation/component6{ - dir = 1 - }, +/turf/open/desert/excavation/component6/north, /area/desert_dam/exterior/valley/valley_crashsite) "aKa" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 4 }, -/turf/open/desert/excavation/component6{ - dir = 4 - }, +/turf/open/desert/excavation/component6/east, /area/desert_dam/exterior/valley/valley_crashsite) "aKb" = ( /obj/effect/decal/sand_overlay/sand1{ @@ -11906,15 +9190,11 @@ /area/desert_dam/exterior/valley/valley_telecoms) "aKc" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/desert_dam/interior/lab_northeast/east_lab_lobby) "aKd" = ( /obj/effect/decal/sand_overlay/sand1, -/turf/open/desert/dirt{ - icon_state = "dirt2" - }, +/turf/open/desert/dirt/dirt2, /area/desert_dam/interior/caves/central_caves) "aKe" = ( /obj/effect/decal/sand_overlay/sand1{ @@ -11923,25 +9203,17 @@ /turf/open/asphalt/cement_sunbleached, /area/desert_dam/exterior/valley/valley_crashsite) "aKf" = ( -/turf/open/desert/excavation/component6{ - dir = 8 - }, +/turf/open/desert/excavation/component6/west, /area/desert_dam/exterior/valley/valley_crashsite) "aKg" = ( -/turf/open/desert/excavation/component6{ - dir = 6 - }, +/turf/open/desert/excavation/component6/southeast, /area/desert_dam/exterior/valley/valley_crashsite) "aKh" = ( -/turf/open/desert/excavation/component6{ - dir = 10 - }, +/turf/open/desert/excavation/component6/southwest, /area/desert_dam/exterior/valley/valley_crashsite) "aKi" = ( /obj/effect/decal/sand_overlay/sand1/corner1, -/turf/open/desert/excavation/component6{ - dir = 5 - }, +/turf/open/desert/excavation/component6/northeast, /area/desert_dam/exterior/valley/valley_crashsite) "aKj" = ( /obj/effect/decal/sand_overlay/sand1{ @@ -11951,16 +9223,11 @@ /area/desert_dam/exterior/valley/valley_crashsite) "aKk" = ( /obj/structure/prop/dam/boulder/boulder3, -/turf/open/desert/dirt{ - dir = 1; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/north, /area/desert_dam/exterior/valley/valley_telecoms) "aKl" = ( /obj/effect/landmark/static_comms/net_two, -/turf/open/floor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/asteroidplating, /area/desert_dam/exterior/telecomm/lz2_tcomms) "aKm" = ( /obj/structure/flora/bush/desert{ @@ -11970,9 +9237,7 @@ /area/desert_dam/exterior/valley/valley_civilian) "aKn" = ( /obj/structure/stairs, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached3" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached3, /area/desert_dam/exterior/valley/valley_telecoms) "aKo" = ( /obj/effect/decal/sand_overlay/sand1{ @@ -11981,18 +9246,14 @@ /obj/structure/platform_decoration{ dir = 8 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached1" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached1, /area/desert_dam/exterior/valley/valley_cargo) "aKp" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ dir = 2; name = "\improper Xenoflora" }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/desert_dam/building/lab_northwest/west_lab_xenoflora) "aKq" = ( /obj/effect/decal/sand_overlay/sand1{ @@ -12001,23 +9262,17 @@ /obj/structure/platform_decoration{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached3" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached3, /area/desert_dam/exterior/valley/valley_cargo) "aKs" = ( -/turf/open/desert/rock/deep/transition{ - dir = 10 - }, +/turf/open/desert/rock/deep/transition/southwest, /area/desert_dam/interior/dam_interior/workshop) "aKt" = ( /obj/effect/decal/sand_overlay/sand1/corner1, /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 4 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_cargo) "aKu" = ( /obj/structure/platform{ @@ -12029,9 +9284,7 @@ /area/desert_dam/exterior/river/riverside_central_south) "aKv" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached18" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached18, /area/desert_dam/exterior/valley/valley_medical) "aKw" = ( /obj/effect/blocker/toxic_water/Group_2, @@ -12039,32 +9292,22 @@ /area/desert_dam/exterior/river/riverside_central_north) "aKx" = ( /obj/effect/blocker/toxic_water/Group_2, -/turf/open/gm/river/desert/shallow_edge{ - dir = 9 - }, +/turf/open/gm/river/desert/shallow_edge/northwest, /area/desert_dam/exterior/river/riverside_central_north) "aKy" = ( -/turf/open/desert/excavation/component7{ - dir = 1 - }, +/turf/open/desert/excavation/component7/north, /area/desert_dam/exterior/valley/valley_crashsite) "aKz" = ( -/turf/open/desert/excavation/component7{ - dir = 4 - }, +/turf/open/desert/excavation/component7/east, /area/desert_dam/exterior/valley/valley_crashsite) "aKA" = ( -/turf/open/desert/excavation/component7{ - dir = 8 - }, +/turf/open/desert/excavation/component7/west, /area/desert_dam/exterior/valley/valley_crashsite) "aKB" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 10 }, -/turf/open/desert/dirt{ - icon_state = "dirt2" - }, +/turf/open/desert/dirt/dirt2, /area/desert_dam/interior/caves/central_caves) "aKC" = ( /obj/structure/flora/bush/desert/cactus{ @@ -12120,34 +9363,24 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 10 }, -/turf/open/desert/excavation/component7{ - dir = 6 - }, +/turf/open/desert/excavation/component7/southeast, /area/desert_dam/exterior/valley/valley_crashsite) "aKM" = ( /obj/effect/decal/sand_overlay/sand1, -/turf/open/desert/excavation/component7{ - dir = 10 - }, +/turf/open/desert/excavation/component7/southwest, /area/desert_dam/exterior/valley/valley_crashsite) "aKN" = ( /obj/effect/decal/sand_overlay/sand1, -/turf/open/desert/excavation/component7{ - dir = 5 - }, +/turf/open/desert/excavation/component7/northeast, /area/desert_dam/exterior/valley/valley_crashsite) "aKO" = ( -/turf/open/desert/desert_shore/desert_shore1{ - dir = 4 - }, +/turf/open/desert/desert_shore/desert_shore1/east, /area/desert_dam/interior/caves/central_caves) "aKP" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 8 }, -/turf/open/desert/dirt{ - icon_state = "dirt2" - }, +/turf/open/desert/dirt/dirt2, /area/desert_dam/interior/caves/central_caves) "aKQ" = ( /obj/structure/platform{ @@ -12179,9 +9412,7 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 1 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_cargo) "aKU" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ @@ -12190,15 +9421,11 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 1 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_cargo) "aKV" = ( /obj/effect/landmark/survivor_spawner, -/turf/open/floor{ - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen, /area/desert_dam/building/lab_northwest/west_lab_xenoflora) "aKW" = ( /obj/structure/desertdam/decals/road_edge{ @@ -12211,10 +9438,7 @@ /area/desert_dam/exterior/valley/valley_northwest) "aKX" = ( /obj/effect/landmark/queen_spawn, -/turf/open/desert/dirt{ - dir = 5; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/northeast, /area/desert_dam/interior/caves/east_caves) "aKY" = ( /obj/effect/decal/sand_overlay/sand1{ @@ -12223,16 +9447,11 @@ /turf/open/asphalt/cement_sunbleached, /area/desert_dam/exterior/landing_pad_two) "aKZ" = ( -/turf/open/floor{ - dir = 4; - icon_state = "whitegreencorner" - }, +/turf/open/floor/whitegreencorner/east, /area/desert_dam/building/lab_northwest/west_lab_xenoflora) "aLa" = ( /obj/structure/machinery/landinglight/ds1/delaythree, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached4" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached4, /area/desert_dam/exterior/landing_pad_one) "aLb" = ( /obj/structure/machinery/power/apc{ @@ -12240,22 +9459,14 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/north, /area/desert_dam/building/lab_northwest/west_lab_xenoflora) "aLc" = ( -/turf/open/floor{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/north, /area/desert_dam/building/lab_northwest/west_lab_xenoflora) "aLd" = ( /obj/effect/blocker/toxic_water/Group_2, -/turf/open/gm/river/desert/shallow_corner{ - dir = 1 - }, +/turf/open/gm/river/desert/shallow_corner/north, /area/desert_dam/exterior/river/riverside_central_north) "aLe" = ( /obj/structure/platform{ @@ -12272,31 +9483,23 @@ }, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/asteroidplating, /area/desert_dam/exterior/valley/valley_crashsite) "aLg" = ( /obj/effect/decal/warning_stripes{ icon_state = "N" }, -/turf/open/floor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/asteroidplating, /area/desert_dam/exterior/valley/valley_crashsite) "aLh" = ( -/turf/open/floor/coagulation{ - icon_state = "0,4" - }, +/turf/open/floor/coagulation/icon0_4, /area/desert_dam/exterior/valley/valley_mining) "aLi" = ( /obj/effect/decal/warning_stripes{ icon_state = "N" }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/asteroidplating, /area/desert_dam/exterior/valley/valley_crashsite) "aLj" = ( /obj/effect/decal/warning_stripes{ @@ -12304,9 +9507,7 @@ }, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/asteroidplating, /area/desert_dam/exterior/valley/valley_crashsite) "aLk" = ( /obj/effect/decal/warning_stripes{ @@ -12315,65 +9516,47 @@ /obj/effect/decal/warning_stripes{ icon_state = "E" }, -/turf/open/floor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/asteroidplating, /area/desert_dam/exterior/valley/valley_crashsite) "aLl" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/asteroidplating, /area/desert_dam/exterior/valley/valley_crashsite) "aLm" = ( /obj/structure/machinery/sensortower, -/turf/open/floor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/asteroidplating, /area/desert_dam/exterior/valley/valley_crashsite) "aLn" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/asteroidplating, /area/desert_dam/exterior/valley/valley_crashsite) "aLo" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/asteroidplating, /area/desert_dam/exterior/valley/valley_crashsite) "aLp" = ( /obj/effect/decal/warning_stripes{ icon_state = "E" }, -/turf/open/floor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/asteroidplating, /area/desert_dam/exterior/valley/valley_crashsite) "aLq" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 9 }, -/turf/open/floor/plating{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/plating/asteroidfloor/north, /area/desert_dam/exterior/valley/valley_crashsite) "aLr" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 1 }, -/turf/open/floor/plating{ - dir = 9; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/northwest, /area/desert_dam/exterior/valley/valley_crashsite) "aLs" = ( /obj/effect/decal/warning_stripes{ @@ -12383,17 +9566,13 @@ icon_state = "S" }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/asteroidplating, /area/desert_dam/exterior/valley/valley_crashsite) "aLt" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/asteroidplating, /area/desert_dam/exterior/valley/valley_crashsite) "aLu" = ( /obj/effect/decal/warning_stripes{ @@ -12402,15 +9581,11 @@ /obj/effect/decal/warning_stripes{ icon_state = "E" }, -/turf/open/floor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/asteroidplating, /area/desert_dam/exterior/valley/valley_crashsite) "aLv" = ( /obj/structure/machinery/colony_floodlight, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached9" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached9, /area/desert_dam/exterior/valley/valley_labs) "aLw" = ( /obj/structure/stairs, @@ -12418,44 +9593,33 @@ dir = 8 }, /obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached3" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached3, /area/desert_dam/exterior/valley/valley_crashsite) "aLx" = ( /obj/structure/stairs, /obj/structure/platform{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached1" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached1, /area/desert_dam/exterior/valley/valley_crashsite) "aLy" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached1" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached1, /area/desert_dam/exterior/landing_pad_two) "aLz" = ( /obj/structure/platform{ dir = 4 }, -/turf/open/desert/dirt{ - dir = 5; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/northeast, /area/desert_dam/exterior/valley/valley_crashsite) "aLA" = ( /obj/structure/platform{ dir = 8 }, /obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached3" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached3, /area/desert_dam/exterior/valley/valley_crashsite) "aLB" = ( /obj/structure/platform_decoration{ @@ -12464,9 +9628,7 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 8 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached1" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached1, /area/desert_dam/exterior/valley/valley_crashsite) "aLC" = ( /obj/structure/platform{ @@ -12484,10 +9646,7 @@ /obj/structure/platform_decoration{ dir = 8 }, -/turf/open/desert/dirt{ - dir = 4; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/east, /area/desert_dam/exterior/valley/valley_crashsite) "aLF" = ( /obj/structure/platform{ @@ -12508,9 +9667,7 @@ /area/desert_dam/exterior/valley/valley_crashsite) "aLH" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/lab_northeast/east_lab_RND) "aLI" = ( /obj/effect/decal/cleanable/dirt, @@ -12527,35 +9684,23 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 1 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached1" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached1, /area/desert_dam/exterior/landing_pad_two) "aLL" = ( /obj/structure/machinery/portable_atmospherics/hydroponics, -/turf/open/floor{ - dir = 10; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/southwest, /area/desert_dam/building/lab_northwest/west_lab_xenoflora) "aLM" = ( /obj/structure/machinery/light, -/turf/open/floor{ - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen, /area/desert_dam/building/lab_northwest/west_lab_xenoflora) "aLN" = ( /obj/structure/machinery/portable_atmospherics/hydroponics, -/turf/open/floor{ - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen, /area/desert_dam/building/lab_northwest/west_lab_xenoflora) "aLO" = ( /obj/structure/machinery/portable_atmospherics/hydroponics, -/turf/open/floor{ - dir = 6; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/southeast, /area/desert_dam/building/lab_northwest/west_lab_xenoflora) "aLP" = ( /turf/closed/wall/hangar{ @@ -12591,17 +9736,13 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached14" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached14, /area/desert_dam/exterior/valley/valley_crashsite) "aLU" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 8 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached15" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached15, /area/desert_dam/exterior/valley/valley_crashsite) "aLV" = ( /obj/structure/girder/displaced, @@ -12633,14 +9774,10 @@ /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper Xenoflora" }, -/turf/open/floor{ - icon_state = "whitegreenfull" - }, +/turf/open/floor/whitegreenfull, /area/desert_dam/building/lab_northwest/west_lab_xenoflora) "aMb" = ( -/turf/open/floor{ - icon_state = "whitegreenfull" - }, +/turf/open/floor/whitegreenfull, /area/desert_dam/building/lab_northwest/west_lab_xenoflora) "aMc" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ @@ -12649,9 +9786,7 @@ /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 1 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_crashsite) "aMd" = ( /obj/effect/decal/sand_overlay/sand1{ @@ -12692,18 +9827,14 @@ /obj/structure/filtration/coagulation{ icon_state = "1,5" }, -/turf/open/gm/river/desert/deep{ - icon = 'icons/turf/floors/desert_water_toxic.dmi' - }, +/turf/open/gm/river/desert/deep/toxic, /area/desert_dam/building/water_treatment_two) "aMm" = ( /obj/structure/platform{ dir = 1 }, /obj/effect/blocker/toxic_water/Group_2, -/turf/open/desert/dirt{ - icon_state = "dirt2" - }, +/turf/open/desert/dirt/dirt2, /area/desert_dam/exterior/river/riverside_east) "aMn" = ( /obj/structure/platform{ @@ -12711,9 +9842,7 @@ }, /obj/effect/blocker/toxic_water/Group_2, /obj/effect/blocker/toxic_water/Group_2, -/turf/open/desert/dirt{ - icon_state = "dirt2" - }, +/turf/open/desert/dirt/dirt2, /area/desert_dam/exterior/river/riverside_east) "aMo" = ( /obj/structure/cargo_container/trijent/left/alt, @@ -12728,18 +9857,14 @@ /turf/open/floor/plating, /area/desert_dam/exterior/valley/valley_crashsite) "aMr" = ( -/turf/open/floor/coagulation{ - icon_state = "7,7-2" - }, +/turf/open/floor/coagulation/icon7_7_2, /area/desert_dam/building/water_treatment_two) "aMs" = ( /obj/effect/blocker/toxic_water, /obj/structure/filtration/coagulation{ icon_state = "6,6" }, -/turf/open/gm/river/desert/deep{ - icon = 'icons/turf/floors/desert_water_toxic.dmi' - }, +/turf/open/gm/river/desert/deep/toxic, /area/desert_dam/building/water_treatment_two) "aMt" = ( /obj/effect/decal/warning_stripes{ @@ -12757,22 +9882,15 @@ "aMv" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/vending/sovietsoda, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/warehouse/warehouse) "aMw" = ( /obj/structure/machinery/cm_vending/sorted/tech/tool_storage, -/turf/open/floor/prison{ - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2, /area/desert_dam/building/warehouse/warehouse) "aMx" = ( /obj/effect/blocker/toxic_water, -/turf/open/gm/river/desert/deep{ - icon = 'icons/turf/floors/desert_water_toxic.dmi' - }, +/turf/open/gm/river/desert/deep/toxic, /area/desert_dam/building/water_treatment_two) "aMy" = ( /obj/structure/disposalpipe/segment{ @@ -12792,10 +9910,7 @@ "aMA" = ( /obj/structure/surface/table, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/northwest, /area/desert_dam/building/substation/northeast) "aMB" = ( /obj/structure/machinery/power/apc{ @@ -12803,54 +9918,38 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/desert_dam/building/substation/northeast) "aMC" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 4 }, /obj/effect/decal/sand_overlay/sand1/corner1, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached13" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached13, /area/desert_dam/exterior/valley/valley_medical) "aMD" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 8 }, /obj/structure/machinery/colony_floodlight, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_medical) "aME" = ( -/turf/open/floor/filtrationside{ - dir = 10 - }, +/turf/open/floor/filtrationside/southwest, /area/desert_dam/exterior/valley/valley_medical) "aMF" = ( /obj/structure/machinery/cm_vending/sorted/tech/electronics_storage, -/turf/open/floor/prison{ - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2, /area/desert_dam/building/warehouse/warehouse) "aMG" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/desert_dam/building/substation/northeast) "aMH" = ( /obj/effect/decal/sand_overlay/sand1/corner1, /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 4 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_mining) "aMI" = ( /obj/structure/sign/poster, @@ -12867,41 +9966,32 @@ icon_state = "S" }, /turf/open/floor/plating, -/area/desert_dam/exterior/valley/valley_cargo) +/area/desert_dam/exterior/landing_pad_two) "aMK" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/tech_supply, /obj/effect/spawner/random/tech_supply, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/desert_dam/building/substation/northeast) "aML" = ( /obj/structure/machinery/light, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_mining) "aMM" = ( /obj/structure/flora/bush/desert{ icon_state = "tree_3" }, /turf/open/desert/dirt, -/area/desert_dam/exterior/valley/valley_cargo) +/area/desert_dam/exterior/landing_pad_two) "aMN" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/warehouse/warehouse) "aMO" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached4" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached4, /area/desert_dam/exterior/valley/valley_northwest) "aMP" = ( /obj/structure/disposalpipe/segment{ @@ -12913,27 +10003,21 @@ /obj/effect/decal/cleanable/dirt, /obj/item/stool, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/warehouse/warehouse) "aMR" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/conveyor_switch{ id = "cargo_storage" }, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/warehouse/warehouse) "aMS" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/warning_stripes{ icon_state = "E" }, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/warehouse/warehouse) "aMT" = ( /obj/effect/decal/warning_stripes{ @@ -12943,81 +10027,59 @@ icon_state = "W" }, /turf/open/floor/plating, -/area/desert_dam/exterior/valley/valley_cargo) +/area/desert_dam/exterior/landing_pad_two) "aMU" = ( /obj/effect/decal/warning_stripes{ icon_state = "N" }, /turf/open/floor/plating, -/area/desert_dam/exterior/valley/valley_cargo) +/area/desert_dam/exterior/landing_pad_two) "aMV" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached13" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached13, /area/desert_dam/exterior/valley/valley_medical) "aMW" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_medical) "aMX" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/technology_scanner, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/desert_dam/building/substation/northeast) "aMY" = ( /obj/effect/blocker/toxic_water, /obj/structure/filtration/coagulation{ icon_state = "7,6" }, -/turf/open/gm/river/desert/deep{ - icon = 'icons/turf/floors/desert_water_toxic.dmi' - }, +/turf/open/gm/river/desert/deep/toxic, /area/desert_dam/building/water_treatment_two) "aMZ" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 8 }, -/turf/open/floor/coagulation{ - icon_state = "8,4" - }, +/turf/open/floor/coagulation/icon8_4, /area/desert_dam/exterior/valley/valley_mining) "aNa" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 8 }, -/turf/open/floor/coagulation{ - icon_state = "8,3" - }, +/turf/open/floor/coagulation/icon8_3, /area/desert_dam/exterior/valley/valley_mining) "aNb" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/desert_dam/building/substation/northeast) "aNc" = ( /obj/structure/machinery/power/smes/batteryrack/substation, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/desert_dam/building/substation/northeast) "aNd" = ( -/turf/open/floor/prison{ - dir = 5; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/northeast, /area/desert_dam/building/substation/northeast) "aNe" = ( /obj/structure/machinery/conveyor{ @@ -13032,7 +10094,7 @@ icon_state = "N" }, /turf/open/floor/plating, -/area/desert_dam/exterior/valley/valley_cargo) +/area/desert_dam/exterior/landing_pad_two) "aNf" = ( /obj/structure/machinery/power/port_gen/pacman, /turf/open/floor/plating, @@ -13040,10 +10102,7 @@ "aNg" = ( /obj/structure/surface/table, /obj/item/clothing/head/welding, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/west, /area/desert_dam/building/substation/northeast) "aNh" = ( /turf/open/floor/prison, @@ -13054,9 +10113,7 @@ /area/desert_dam/building/substation/northeast) "aNj" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached3" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached3, /area/desert_dam/exterior/valley/valley_medical) "aNk" = ( /obj/structure/machinery/power/terminal{ @@ -13065,10 +10122,7 @@ /turf/open/floor/prison, /area/desert_dam/building/substation/northeast) "aNl" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/east, /area/desert_dam/building/substation/northeast) "aNm" = ( /obj/structure/machinery/conveyor{ @@ -13082,7 +10136,7 @@ icon_state = "N" }, /turf/open/floor/plating, -/area/desert_dam/exterior/valley/valley_cargo) +/area/desert_dam/exterior/landing_pad_two) "aNn" = ( /obj/structure/desertdam/decals/road_edge{ icon_state = "road_edge_decal9" @@ -13100,14 +10154,10 @@ /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/warehouse/warehouse) "aNp" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached13" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached13, /area/desert_dam/exterior/valley/valley_northwest) "aNq" = ( /obj/effect/blocker/toxic_water/Group_2, @@ -13122,42 +10172,28 @@ /area/desert_dam/exterior/valley/valley_medical) "aNs" = ( /obj/structure/closet/firecloset, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/north, /area/desert_dam/building/administration/control_room) "aNt" = ( /obj/structure/surface/table, /obj/effect/spawner/random/tool, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/north, /area/desert_dam/building/administration/control_room) "aNu" = ( /obj/structure/surface/table, /obj/effect/spawner/random/toolbox, /obj/effect/spawner/random/tool, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/north, /area/desert_dam/building/administration/control_room) "aNv" = ( /obj/structure/machinery/landinglight/ds1/delayone{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached1" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached1, /area/desert_dam/exterior/landing_pad_one) "aNw" = ( /obj/structure/reagent_dispensers/watertank, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/west, /area/desert_dam/building/substation/northeast) "aNx" = ( /obj/effect/decal/sand_overlay/sand1, @@ -13165,24 +10201,21 @@ icon_state = "W" }, /turf/open/floor/plating, -/area/desert_dam/exterior/valley/valley_cargo) +/area/desert_dam/exterior/landing_pad_two) "aNy" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/desert_dam/building/water_treatment_two/floodgate_control) "aNz" = ( /obj/effect/decal/sand_overlay/sand1, /turf/open/floor/plating, -/area/desert_dam/exterior/valley/valley_cargo) +/area/desert_dam/exterior/landing_pad_two) "aNA" = ( /obj/effect/decal/sand_overlay/sand1, /obj/structure/machinery/conveyor_switch{ id = "cargo_landing" }, /turf/open/floor/plating, -/area/desert_dam/exterior/valley/valley_cargo) +/area/desert_dam/exterior/landing_pad_two) "aNB" = ( /obj/structure/surface/rack, /obj/item/stack/sheet/mineral/phoron{ @@ -13195,16 +10228,11 @@ /turf/open/floor/plating, /area/desert_dam/building/substation/northeast) "aND" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "redcorner" - }, +/turf/open/floor/prison/redcorner/east, /area/desert_dam/building/security/lobby) "aNE" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached12" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached12, /area/desert_dam/exterior/valley/valley_medical) "aNF" = ( /obj/effect/blocker/toxic_water/Group_2, @@ -13212,9 +10240,7 @@ /area/desert_dam/exterior/valley/valley_medical) "aNG" = ( /obj/structure/machinery/light, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_medical) "aNH" = ( /turf/closed/wall/r_wall/prison, @@ -13227,14 +10253,10 @@ /area/desert_dam/building/substation/northeast) "aNJ" = ( /obj/structure/janitorialcart, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/warehouse/warehouse) "aNK" = ( -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/warehouse/warehouse) "aNL" = ( /obj/structure/desertdam/decals/road_stop{ @@ -13249,36 +10271,25 @@ /area/desert_dam/exterior/valley/valley_northwest) "aNN" = ( /obj/structure/machinery/cm_vending/sorted/tech/comp_storage, -/turf/open/floor/prison{ - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2, /area/desert_dam/building/warehouse/warehouse) "aNP" = ( /obj/effect/blocker/toxic_water/Group_2, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached14" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached14, /area/desert_dam/exterior/valley/valley_medical) "aNQ" = ( /obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/prison{ - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2, /area/desert_dam/building/substation/northeast) "aNR" = ( -/turf/open/floor/prison{ - dir = 6; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/southeast, /area/desert_dam/building/substation/northeast) "aNS" = ( /turf/open/floor/prison, /area/desert_dam/building/water_treatment_two/floodgate_control) "aNT" = ( /obj/effect/blocker/toxic_water/Group_2, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached15" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached15, /area/desert_dam/exterior/valley/valley_medical) "aNU" = ( /obj/structure/window/framed/hangar/reinforced, @@ -13288,10 +10299,7 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/west, /area/desert_dam/building/warehouse/loading) "aNY" = ( /obj/structure/sign/safety/restrictedarea, @@ -13303,9 +10311,7 @@ /area/shuttle/trijent_shuttle/lz2) "aNZ" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached2" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached2, /area/desert_dam/exterior/valley/valley_medical) "aOc" = ( /turf/closed/wall, @@ -13315,9 +10321,7 @@ /obj/structure/filtration/coagulation{ icon_state = "1,2" }, -/turf/open/gm/river/desert/deep{ - icon = 'icons/turf/floors/desert_water_toxic.dmi' - }, +/turf/open/gm/river/desert/deep/toxic, /area/desert_dam/building/water_treatment_two) "aOe" = ( /obj/structure/desertdam/decals/road_edge{ @@ -13327,16 +10331,10 @@ /turf/open/asphalt, /area/desert_dam/exterior/valley/valley_telecoms) "aOf" = ( -/turf/open/desert/dirt{ - dir = 1; - icon_state = "desert_transition_corner1" - }, +/turf/open/desert/dirt/desert_transition_corner1/north, /area/desert_dam/exterior/valley/valley_wilderness) "aOg" = ( -/turf/open/desert/dirt{ - dir = 6; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/southeast, /area/desert_dam/exterior/valley/valley_wilderness) "aOh" = ( /turf/open/desert/dirt, @@ -13345,82 +10343,57 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 4 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_wilderness) "aOj" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached2" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached2, /area/desert_dam/exterior/valley/valley_wilderness) "aOk" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached4" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached4, /area/desert_dam/exterior/valley/valley_wilderness) "aOl" = ( /obj/structure/filtration/flacculation_arm, /obj/effect/blocker/toxic_water, -/turf/open/gm/river/desert/deep{ - icon = 'icons/turf/floors/desert_water_toxic.dmi' - }, +/turf/open/gm/river/desert/deep/toxic, /area/desert_dam/building/water_treatment_two) "aOm" = ( -/turf/open/floor/filtrationside{ - dir = 9 - }, +/turf/open/floor/filtrationside/northwest, /area/desert_dam/exterior/valley/valley_mining) "aOn" = ( /obj/structure/surface/rack, /obj/effect/landmark/crap_item, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/desert_dam/building/water_treatment_two/floodgate_control) "aOo" = ( -/turf/open/floor/filtrationside{ - dir = 1 - }, +/turf/open/floor/filtrationside/north, /area/desert_dam/exterior/valley/valley_mining) "aOp" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 8 }, -/turf/open/floor/coagulation{ - icon_state = "8,6" - }, +/turf/open/floor/coagulation/icon8_6, /area/desert_dam/exterior/valley/valley_mining) "aOq" = ( /obj/effect/blocker/toxic_water, -/turf/open/floor/filtrationside{ - dir = 1 - }, +/turf/open/floor/filtrationside/north, /area/desert_dam/exterior/valley/valley_mining) "aOr" = ( /obj/effect/decal/sand_overlay/sand1/corner1, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached4" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached4, /area/desert_dam/exterior/valley/valley_medical) "aOt" = ( /obj/structure/machinery/light, /turf/open/floor/prison, /area/desert_dam/building/water_treatment_two/floodgate_control) "aOu" = ( -/turf/open/desert/dirt{ - icon_state = "dirt2" - }, +/turf/open/desert/dirt/dirt2, /area/desert_dam/exterior/river/riverside_east) "aOv" = ( /obj/effect/blocker/toxic_water, /obj/structure/filtration/coagulation{ icon_state = "7,2" }, -/turf/open/gm/river/desert/deep{ - icon = 'icons/turf/floors/desert_water_toxic.dmi' - }, +/turf/open/gm/river/desert/deep/toxic, /area/desert_dam/building/water_treatment_two) "aOw" = ( /obj/structure/machinery/light{ @@ -13431,19 +10404,13 @@ pixel_x = -12; pixel_y = 2 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/desert_dam/building/security/staffroom) "aOx" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper Floodgate Control" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/desert_dam/building/water_treatment_two/floodgate_control) "aOy" = ( /turf/closed/wall/hangar{ @@ -13459,32 +10426,21 @@ name = "\improper Filtration" }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/desert_dam/building/water_treatment_two/purification) "aOB" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/desert_dam/building/water_treatment_two/purification) "aOC" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/desert_dam/building/security/staffroom) "aOD" = ( /obj/effect/blocker/toxic_water, /obj/structure/filtration/coagulation{ icon_state = "2,1" }, -/turf/open/gm/river/desert/deep{ - icon = 'icons/turf/floors/desert_water_toxic.dmi' - }, +/turf/open/gm/river/desert/deep/toxic, /area/desert_dam/building/water_treatment_two) "aOE" = ( /obj/structure/machinery/light{ @@ -13493,10 +10449,7 @@ /turf/open/floor/prison, /area/desert_dam/building/water_treatment_two/purification) "aOG" = ( -/turf/open/desert/dirt{ - dir = 1; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/north, /area/desert_dam/exterior/valley/valley_medical) "aOH" = ( /turf/open/floor/prison, @@ -13506,34 +10459,22 @@ /turf/open/floor/prison, /area/desert_dam/building/water_treatment_two/purification) "aOK" = ( -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/desert_dam/building/substation/northwest) "aOL" = ( -/turf/open/desert/rock/deep/transition{ - dir = 5 - }, +/turf/open/desert/rock/deep/transition/northeast, /area/desert_dam/interior/dam_interior/north_tunnel) "aOM" = ( -/turf/open/desert/rock/deep/transition{ - dir = 1 - }, +/turf/open/desert/rock/deep/transition/north, /area/desert_dam/interior/dam_interior/north_tunnel) "aOO" = ( /obj/structure/machinery/recharge_station, -/turf/open/floor{ - dir = 5; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/northeast, /area/desert_dam/building/substation/northwest) "aOP" = ( /obj/structure/floodgate, /obj/effect/blocker/toxic_water, -/turf/open/gm/river/desert/shallow_corner{ - dir = 1 - }, +/turf/open/gm/river/desert/shallow_corner/north, /area/desert_dam/exterior/river_mouth/southern) "aOQ" = ( /obj/structure/floodgate, @@ -13544,9 +10485,7 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 4 }, -/turf/open/desert/dirt{ - icon_state = "dirt2" - }, +/turf/open/desert/dirt/dirt2, /area/desert_dam/exterior/river/riverside_central_north) "aOS" = ( /obj/structure/machinery/light{ @@ -13556,14 +10495,10 @@ /turf/open/floor/prison, /area/desert_dam/building/water_treatment_two/purification) "aOT" = ( -/turf/open/desert/dirt{ - icon_state = "rock1" - }, +/turf/open/desert/dirt/rock1, /area/desert_dam/exterior/valley/valley_wilderness) "aOU" = ( -/turf/open/desert/dirt{ - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1, /area/desert_dam/exterior/valley/valley_wilderness) "aOV" = ( /obj/structure/floodgate, @@ -13576,101 +10511,65 @@ id = null; name = "\improper Elevator Lock" }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/east, /area/shuttle/trijent_shuttle/lz2) "aOY" = ( /turf/open/asphalt/cement_sunbleached, /area/desert_dam/exterior/valley/valley_wilderness) "aOZ" = ( -/turf/open/floor/coagulation{ - icon_state = "0,0" - }, +/turf/open/floor/coagulation/icon0_0, /area/desert_dam/exterior/valley/valley_mining) "aPc" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/desert_dam/building/water_treatment_two/purification) "aPd" = ( /obj/structure/machinery/colony_floodlight, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_mining) "aPf" = ( -/turf/open/floor/coagulation{ - icon_state = "7,0" - }, +/turf/open/floor/coagulation/icon7_0, /area/desert_dam/exterior/valley/valley_mining) "aPg" = ( -/turf/open/desert/dirt{ - dir = 10; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/southwest, /area/desert_dam/exterior/valley/valley_wilderness) "aPh" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 8 }, -/turf/open/floor/coagulation{ - icon_state = "8,0" - }, +/turf/open/floor/coagulation/icon8_0, /area/desert_dam/exterior/valley/valley_mining) "aPi" = ( -/turf/open/desert/dirt{ - dir = 4; - icon_state = "desert_transition_corner1" - }, +/turf/open/desert/dirt/desert_transition_corner1/east, /area/desert_dam/exterior/valley/valley_wilderness) "aPj" = ( -/turf/open/floor/coagulation{ - icon_state = "0,8" - }, +/turf/open/floor/coagulation/icon0_8, /area/desert_dam/building/water_treatment_two/purification) "aPk" = ( -/turf/open/floor/filtrationside{ - dir = 8 - }, +/turf/open/floor/filtrationside/west, /area/desert_dam/exterior/valley/valley_mining) "aPl" = ( -/turf/open/floor/coagulation{ - icon_state = "1,1" - }, +/turf/open/floor/coagulation/icon1_1, /area/desert_dam/building/water_treatment_two) "aPm" = ( /obj/effect/blocker/toxic_water, /obj/structure/filtration/coagulation{ icon_state = "6,1" }, -/turf/open/gm/river/desert/deep{ - icon = 'icons/turf/floors/desert_water_toxic.dmi' - }, +/turf/open/gm/river/desert/deep/toxic, /area/desert_dam/building/water_treatment_two) "aPn" = ( -/turf/open/floor/coagulation{ - icon_state = "4,8" - }, +/turf/open/floor/coagulation/icon4_8, /area/desert_dam/building/water_treatment_two/purification) "aPo" = ( -/turf/open/floor/coagulation{ - icon_state = "8,8" - }, +/turf/open/floor/coagulation/icon8_8, /area/desert_dam/building/water_treatment_two/purification) "aPq" = ( /obj/structure/cargo_container/trijent/left/alt, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_mining) "aPr" = ( /obj/structure/cargo_container/trijent/mid/alt, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_mining) "aPs" = ( /obj/effect/blocker/toxic_water/Group_2, @@ -13692,23 +10591,17 @@ /area/desert_dam/exterior/river/riverside_east) "aPw" = ( /obj/structure/cargo_container/trijent/right/alt, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_mining) "aPx" = ( /obj/structure/cargo_container/ferret/left, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_mining) "aPy" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached19" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached19, /area/desert_dam/exterior/valley/valley_medical) "aPz" = ( /obj/structure/desertdam/decals/road_edge{ @@ -13730,45 +10623,29 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 1 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached18" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached18, /area/desert_dam/exterior/landing_pad_one) "aPC" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 5 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached9" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached9, /area/desert_dam/exterior/landing_pad_one) "aPD" = ( /turf/open/floor/plating, /area/desert_dam/building/substation/northwest) "aPE" = ( -/turf/open/floor/plating{ - dir = 4; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/east, /area/desert_dam/building/substation/northwest) "aPF" = ( -/turf/open/floor{ - dir = 5; - icon_state = "vault" - }, +/turf/open/floor/vault2/northeast, /area/desert_dam/building/substation/northwest) "aPG" = ( /obj/effect/blocker/toxic_water/Group_2, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/desert_dam/building/water_treatment_two/purification) "aPI" = ( -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/desert_dam/building/substation/northwest) "aPJ" = ( /obj/structure/desertdam/decals/road_edge{ @@ -13781,7 +10658,7 @@ icon_state = "tree_2" }, /turf/open/desert/dirt, -/area/desert_dam/exterior/valley/valley_cargo) +/area/desert_dam/exterior/landing_pad_two) "aPL" = ( /obj/structure/machinery/shower{ dir = 1 @@ -13795,9 +10672,7 @@ layer = 2 }, /obj/effect/blocker/toxic_water/Group_2, -/turf/open/floor/coagulation{ - icon_state = "0,5" - }, +/turf/open/floor/coagulation/icon0_5, /area/desert_dam/building/water_treatment_two/purification) "aPN" = ( /obj/effect/blocker/toxic_water/Group_2, @@ -13807,14 +10682,10 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 1 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_wilderness) "aPP" = ( -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_wilderness) "aPQ" = ( /obj/structure/desertdam/decals/road_edge{ @@ -13833,9 +10704,7 @@ /turf/open/asphalt, /area/desert_dam/exterior/valley/valley_telecoms) "aPS" = ( -/turf/open/desert/rock/deep/transition{ - dir = 9 - }, +/turf/open/desert/rock/deep/transition/northwest, /area/desert_dam/interior/dam_interior/north_tunnel) "aPT" = ( /obj/structure/desertdam/decals/road_edge{ @@ -13849,10 +10718,7 @@ /turf/open/asphalt, /area/desert_dam/exterior/valley/valley_telecoms) "aPU" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/desert_dam/interior/dam_interior/garage) "aPV" = ( /obj/structure/machinery/light{ @@ -13866,20 +10732,13 @@ /obj/item/tool/extinguisher{ pixel_x = -10 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/desert_dam/interior/dam_interior/garage) "aPW" = ( -/turf/open/floor/coagulation{ - icon_state = "8,3" - }, +/turf/open/floor/coagulation/icon8_3, /area/desert_dam/building/water_treatment_two/purification) "aPX" = ( -/turf/open/floor/coagulation{ - icon_state = "0,5" - }, +/turf/open/floor/coagulation/icon0_5, /area/desert_dam/building/water_treatment_two/purification) "aPY" = ( /obj/structure/desertdam/decals/road_edge{ @@ -13889,9 +10748,7 @@ /area/desert_dam/exterior/valley/valley_telecoms) "aPZ" = ( /obj/structure/cargo_container/ferret/mid, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_mining) "aQa" = ( /obj/structure/machinery/light{ @@ -13904,9 +10761,7 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached4" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached4, /area/desert_dam/exterior/valley/valley_telecoms) "aQc" = ( /obj/effect/decal/sand_overlay/sand1{ @@ -13918,18 +10773,13 @@ /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper Filtration" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/desert_dam/building/water_treatment_two/purification) "aQe" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached13" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached13, /area/desert_dam/exterior/landing_pad_one) "aQf" = ( /obj/effect/decal/warning_stripes{ @@ -13959,17 +10809,13 @@ /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached13" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached13, /area/desert_dam/exterior/landing_pad_one) "aQj" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 1 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/landing_pad_one) "aQk" = ( /obj/structure/machinery/power/apc{ @@ -13977,10 +10823,7 @@ pixel_x = -24; start_charge = 0 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/west, /area/desert_dam/building/warehouse/loading) "aQl" = ( /obj/structure/filtration/collector_pipes{ @@ -13997,49 +10840,34 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/north, /area/desert_dam/building/security/southern_hallway) "aQn" = ( /obj/structure/platform{ dir = 8 }, -/turf/open/desert/dirt{ - dir = 4; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/east, /area/desert_dam/exterior/valley/valley_labs) "aQo" = ( /obj/effect/blocker/toxic_water/Group_2, /obj/structure/filtration/machine_96x96{ icon_state = "disinfection" }, -/turf/open/floor/coagulation{ - icon_state = "8,3" - }, +/turf/open/floor/coagulation/icon8_3, /area/desert_dam/building/water_treatment_two/purification) "aQp" = ( /obj/effect/blocker/toxic_water/Group_2/delay, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/desert_dam/building/water_treatment_two/purification) "aQq" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 4 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_wilderness) "aQr" = ( /obj/effect/blocker/toxic_water/Group_2, -/turf/open/floor/coagulation{ - icon_state = "0,5" - }, +/turf/open/floor/coagulation/icon0_5, /area/desert_dam/building/water_treatment_two/purification) "aQt" = ( /obj/effect/decal/cleanable/dirt, @@ -14055,9 +10883,7 @@ /area/desert_dam/exterior/valley/valley_telecoms) "aQv" = ( /obj/structure/cargo_container/ferret/right, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_mining) "aQw" = ( /obj/structure/machinery/light{ @@ -14066,19 +10892,13 @@ /turf/open/floor/prison, /area/desert_dam/building/water_treatment_two/purification) "aQx" = ( -/turf/open/floor/coagulation{ - icon_state = "0,0" - }, +/turf/open/floor/coagulation/icon0_0, /area/desert_dam/building/water_treatment_two/purification) "aQz" = ( -/turf/open/floor/coagulation{ - icon_state = "2,0" - }, +/turf/open/floor/coagulation/icon2_0, /area/desert_dam/building/water_treatment_two/purification) "aQB" = ( -/turf/open/floor/coagulation{ - icon_state = "8,0" - }, +/turf/open/floor/coagulation/icon8_0, /area/desert_dam/building/water_treatment_two/purification) "aQC" = ( /obj/effect/decal/cleanable/dirt, @@ -14093,15 +10913,10 @@ /area/desert_dam/exterior/valley/valley_telecoms) "aQF" = ( /obj/effect/blocker/toxic_water/Group_2, -/turf/open/floor/coagulation{ - icon_state = "8,0" - }, +/turf/open/floor/coagulation/icon8_0, /area/desert_dam/building/water_treatment_two/purification) "aQG" = ( -/turf/open/floor/plating{ - dir = 8; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/west, /area/desert_dam/building/substation/northwest) "aQH" = ( /obj/structure/disposalpipe/segment{ @@ -14111,10 +10926,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/north, /area/desert_dam/building/security/southern_hallway) "aQI" = ( /obj/effect/decal/sand_overlay/sand1{ @@ -14129,35 +10941,25 @@ /area/desert_dam/exterior/valley/valley_telecoms) "aQK" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/desert_dam/interior/dam_interior/western_dam_cave) "aQL" = ( -/turf/open/floor/coagulation{ - icon_state = "6,8" - }, +/turf/open/floor/coagulation/icon6_8, /area/desert_dam/exterior/valley/valley_mining) "aQM" = ( -/turf/open/floor/coagulation{ - icon_state = "7,8" - }, +/turf/open/floor/coagulation/icon7_8, /area/desert_dam/exterior/valley/valley_mining) "aQN" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 8 }, -/turf/open/floor/coagulation{ - icon_state = "8,8" - }, +/turf/open/floor/coagulation/icon8_8, /area/desert_dam/exterior/valley/valley_mining) "aQO" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached1" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached1, /area/desert_dam/exterior/valley/valley_medical) "aQP" = ( /turf/closed/wall/hangar{ @@ -14175,9 +10977,7 @@ dir = 9 }, /obj/effect/decal/sand_overlay/sand1, -/turf/open/floor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/asteroidplating, /area/desert_dam/exterior/landing_pad_one) "aQT" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ @@ -14189,9 +10989,7 @@ /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 8 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached13" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached13, /area/desert_dam/exterior/landing_pad_one) "aQU" = ( /obj/effect/decal/warning_stripes{ @@ -14209,49 +11007,30 @@ /turf/open/asphalt, /area/desert_dam/exterior/landing_pad_one) "aQX" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached13" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached13, /area/desert_dam/exterior/landing_pad_one) "aQY" = ( /obj/structure/machinery/floodlight/landing, -/turf/open/floor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/asteroidplating, /area/desert_dam/exterior/landing_pad_one) "aQZ" = ( -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/landing_pad_one) "aRc" = ( -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/desert_dam/building/substation/northwest) "aRd" = ( -/turf/open/floor{ - dir = 8; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/darkyellowcorners2/west, /area/desert_dam/building/substation/northwest) "aRf" = ( -/turf/open/floor{ - dir = 4; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/darkyellowcorners2/east, /area/desert_dam/building/substation/northwest) "aRg" = ( -/turf/open/floor{ - dir = 5; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/northeast, /area/desert_dam/building/substation/northwest) "aRh" = ( /obj/structure/filtration/machine_96x96/filtration, -/turf/open/floor/coagulation{ - icon_state = "4,8" - }, +/turf/open/floor/coagulation/icon4_8, /area/desert_dam/building/water_treatment_two/purification) "aRi" = ( /obj/structure/stairs{ @@ -14260,33 +11039,25 @@ /obj/structure/platform{ dir = 1 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached2" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached2, /area/desert_dam/exterior/valley/valley_wilderness) "aRj" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached4" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached4, /area/desert_dam/exterior/valley/valley_wilderness) "aRk" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 1 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached4" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached4, /area/desert_dam/exterior/valley/valley_wilderness) "aRl" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_mining) "aRp" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/medidoor/colony{ @@ -14295,31 +11066,21 @@ }, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/sand_overlay/sand1/corner1, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/medical/north_wing_hallway) "aRq" = ( /obj/effect/decal/sand_overlay/sand1, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached14" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached14, /area/desert_dam/exterior/valley/valley_medical) "aRs" = ( /obj/effect/decal/sand_overlay/sand1, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached12" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached12, /area/desert_dam/exterior/valley/valley_medical) "aRt" = ( /obj/structure/machinery/door/airlock/almayer/generic{ name = "\improper Toilet Unit" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/desert_dam/building/security/staffroom) "aRu" = ( /obj/structure/toilet{ @@ -14328,37 +11089,25 @@ /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/desert_dam/building/security/staffroom) "aRv" = ( /turf/closed/wall, /area/desert_dam/interior/caves/east_caves) "aRw" = ( -/turf/open/desert/dirt{ - icon_state = "desert_transition_corner1" - }, +/turf/open/desert/dirt/desert_transition_corner1, /area/desert_dam/interior/caves/east_caves) "aRx" = ( -/turf/open/desert/dirt{ - dir = 5; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/northeast, /area/desert_dam/interior/caves/east_caves) "aRy" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached4" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached4, /area/desert_dam/exterior/valley/valley_telecoms) "aRz" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 8 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached12" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached12, /area/desert_dam/exterior/valley/valley_medical) "aRA" = ( /obj/structure/flora/tree/joshua, @@ -14375,24 +11124,16 @@ /turf/open/gm/empty, /area/shuttle/trijent_shuttle/lz2) "aRC" = ( -/turf/open/floor{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/west, /area/desert_dam/building/substation/northwest) "aRD" = ( -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/desert_dam/building/substation/northwest) "aRE" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/tech_supply, /obj/effect/spawner/random/tech_supply, -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/desert_dam/building/substation/northwest) "aRF" = ( /obj/structure/desertdam/decals/road_edge{ @@ -14405,24 +11146,18 @@ dir = 8 }, /obj/structure/platform, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached14" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached14, /area/desert_dam/exterior/valley/valley_wilderness) "aRI" = ( /obj/effect/blocker/toxic_water/Group_2, -/turf/open/floor/coagulation{ - icon_state = "8,8" - }, +/turf/open/floor/coagulation/icon8_8, /area/desert_dam/building/water_treatment_two/purification) "aRJ" = ( /obj/effect/blocker/toxic_water, /obj/structure/filtration/coagulation{ icon_state = "2,7" }, -/turf/open/gm/river/desert/shallow{ - icon = 'icons/turf/floors/desert_water_toxic.dmi' - }, +/turf/open/gm/river/desert/shallow/toxic, /area/desert_dam/building/water_treatment_two) "aRK" = ( /obj/structure/prop/dam/large_boulder/boulder2, @@ -14430,22 +11165,13 @@ /area/desert_dam/exterior/valley/valley_medical) "aRL" = ( /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor/prison{ - dir = 6; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/southeast, /area/desert_dam/building/medical/emergency_room) "aRM" = ( -/turf/open/desert/dirt{ - dir = 9; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/northwest, /area/desert_dam/exterior/valley/valley_wilderness) "aRN" = ( -/turf/open/desert/dirt{ - dir = 8; - icon_state = "desert_transition_corner1" - }, +/turf/open/desert/dirt/desert_transition_corner1/west, /area/desert_dam/exterior/valley/valley_wilderness) "aRO" = ( /obj/structure/machinery/power/apc{ @@ -14453,18 +11179,13 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached18" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached18, /area/desert_dam/exterior/valley/valley_hydro) "aRP" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 1 }, -/turf/open/floor/plating{ - dir = 5; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/northeast, /area/desert_dam/exterior/valley/valley_crashsite) "aRQ" = ( /obj/structure/desertdam/decals/road_edge{ @@ -14476,67 +11197,45 @@ /turf/open/asphalt, /area/desert_dam/exterior/valley/valley_hydro) "aRR" = ( -/turf/open/desert/rock/deep/transition{ - dir = 1 - }, +/turf/open/desert/rock/deep/transition/north, /area/desert_dam/interior/dam_interior/northeastern_tunnel) "aRS" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/desert/rock/deep/transition{ - dir = 10 - }, +/turf/open/desert/rock/deep/transition/southwest, /area/desert_dam/exterior/telecomm/lz1_south) "aRT" = ( -/turf/open/desert/dirt{ - dir = 4; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/east, /area/desert_dam/interior/caves/east_caves) "aRU" = ( /obj/effect/decal/sand_overlay/sand1, /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 4 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_crashsite) "aRV" = ( /obj/effect/landmark/xeno_hive_spawn, /obj/effect/landmark/ert_spawns/groundside_xeno, -/turf/open/desert/dirt{ - icon_state = "desert_transition_corner1" - }, +/turf/open/desert/dirt/desert_transition_corner1, /area/desert_dam/interior/caves/east_caves) "aRW" = ( -/turf/open/floor/coagulation{ - icon_state = "7,1" - }, +/turf/open/floor/coagulation/icon7_1, /area/desert_dam/building/water_treatment_two) "aRX" = ( /obj/structure/closet/secure_closet/engineering_welding, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/prison{ - dir = 5; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/northeast, /area/desert_dam/interior/dam_interior/garage) "aRZ" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached14" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached14, /area/desert_dam/exterior/landing_pad_one) "aSa" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached18" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached18, /area/desert_dam/exterior/landing_pad_one) "aSb" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached16" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached16, /area/desert_dam/exterior/landing_pad_one) "aSc" = ( /obj/structure/desertdam/decals/road_edge{ @@ -14551,46 +11250,32 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 1 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached19" - }, -/area/desert_dam/exterior/valley/valley_northwest) +/turf/open/asphalt/cement_sunbleached/cement_sunbleached19, +/area/desert_dam/exterior/landing_pad_one) "aSe" = ( -/turf/open/floor{ - dir = 1; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/darkyellowcorners2/north, /area/desert_dam/building/substation/northwest) "aSf" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/technology_scanner, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/desert_dam/building/substation/northwest) "aSg" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached19" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached19, /area/desert_dam/exterior/valley/valley_labs) "aSh" = ( /obj/effect/blocker/toxic_water, /obj/structure/filtration/coagulation{ icon_state = "3,7" }, -/turf/open/gm/river/desert/shallow{ - icon = 'icons/turf/floors/desert_water_toxic.dmi' - }, +/turf/open/gm/river/desert/shallow/toxic, /area/desert_dam/building/water_treatment_two) "aSi" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 8 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_wilderness) "aSj" = ( /obj/structure/desertdam/decals/road_edge, @@ -14600,10 +11285,7 @@ /turf/open/asphalt, /area/desert_dam/exterior/valley/valley_telecoms) "aSk" = ( -/turf/open/desert/dirt{ - dir = 8; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/west, /area/desert_dam/exterior/valley/valley_wilderness) "aSl" = ( /obj/effect/decal/warning_stripes{ @@ -14621,19 +11303,14 @@ }, /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/hangar_storage) "aSn" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/administration/control_room) "aSo" = ( /obj/structure/disposalpipe/junction{ @@ -14647,37 +11324,27 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/administration/control_room) "aSr" = ( /obj/structure/filtration/collector_pipes{ icon_state = "lower_2"; layer = 2 }, -/turf/open/floor/coagulation{ - icon_state = "0,5" - }, +/turf/open/floor/coagulation/icon0_5, /area/desert_dam/building/water_treatment_two/purification) "aSs" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/dam_interior/garage) "aSt" = ( -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/dam_interior/garage) "aSu" = ( /turf/open/asphalt, /area/desert_dam/exterior/valley/valley_telecoms) "aSv" = ( -/turf/open/desert/rock/deep/transition{ - dir = 8 - }, +/turf/open/desert/rock/deep/transition/west, /area/desert_dam/exterior/valley/valley_telecoms) "aSw" = ( /obj/structure/window/framed/hangar/reinforced, @@ -14700,18 +11367,13 @@ /obj/item/tool/stamp, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, /obj/effect/landmark/objective_landmark/far, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/dam_interior/north_tunnel_entrance) "aSC" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/engidoor/glass/colony{ dir = 1 }, -/turf/open/floor{ - dir = 5; - icon_state = "vault" - }, +/turf/open/floor/vault2/northeast, /area/desert_dam/building/substation/northwest) "aSD" = ( /obj/effect/blocker/toxic_water/Group_2, @@ -14725,28 +11387,20 @@ icon_state = "lower_2"; layer = 2 }, -/turf/open/floor/coagulation{ - icon_state = "8,3" - }, +/turf/open/floor/coagulation/icon8_3, /area/desert_dam/building/water_treatment_two/purification) "aSG" = ( /obj/effect/blocker/toxic_water/Group_2, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached2" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached2, /area/desert_dam/exterior/valley/valley_medical) "aSH" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached4" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached4, /area/desert_dam/exterior/valley/valley_mining) "aSI" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 1 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached4" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached4, /area/desert_dam/exterior/valley/valley_telecoms) "aSJ" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ @@ -14758,54 +11412,34 @@ /turf/open/asphalt/cement_sunbleached, /area/desert_dam/exterior/valley/valley_telecoms) "aSL" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached12" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached12, /area/desert_dam/exterior/valley/valley_telecoms) "aSM" = ( -/turf/open/floor/coagulation{ - icon_state = "0,4" - }, +/turf/open/floor/coagulation/icon0_4, /area/desert_dam/building/water_treatment_two/purification) "aSN" = ( /obj/structure/platform{ dir = 1 }, -/turf/open/desert/rock/deep/transition{ - dir = 8 - }, +/turf/open/desert/rock/deep/transition/west, /area/desert_dam/exterior/valley/valley_telecoms) "aSP" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/northwest, /area/desert_dam/building/mining/workshop) "aSQ" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/garage) "aSR" = ( -/turf/open/floor/coagulation{ - icon_state = "8,7-2" - }, +/turf/open/floor/coagulation/icon8_7_2, /area/desert_dam/building/water_treatment_two/purification) "aST" = ( -/turf/open/floor/plating{ - dir = 4; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/east, /area/desert_dam/exterior/valley/valley_crashsite) "aSU" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/security/lobby) "aSV" = ( /obj/structure/desertdam/decals/road_stop{ @@ -14815,9 +11449,7 @@ /turf/open/asphalt, /area/desert_dam/exterior/valley/valley_telecoms) "aSW" = ( -/turf/open/desert/rock/deep/transition{ - dir = 1 - }, +/turf/open/desert/rock/deep/transition/north, /area/desert_dam/interior/dam_interior/east_tunnel_entrance) "aSX" = ( /obj/effect/decal/cleanable/dirt, @@ -14838,76 +11470,54 @@ /obj/structure/filtration/coagulation{ icon_state = "6,7" }, -/turf/open/gm/river/desert/shallow{ - icon = 'icons/turf/floors/desert_water_toxic.dmi' - }, +/turf/open/gm/river/desert/shallow/toxic, /area/desert_dam/building/water_treatment_two) "aTa" = ( /obj/effect/blocker/toxic_water, /obj/structure/filtration/coagulation{ icon_state = "1,5" }, -/turf/open/gm/river/desert/shallow{ - icon = 'icons/turf/floors/desert_water_toxic.dmi' - }, +/turf/open/gm/river/desert/shallow/toxic, /area/desert_dam/building/water_treatment_two) "aTb" = ( /obj/effect/blocker/toxic_water, /obj/structure/filtration/coagulation{ icon_state = "6,6" }, -/turf/open/gm/river/desert/shallow{ - icon = 'icons/turf/floors/desert_water_toxic.dmi' - }, +/turf/open/gm/river/desert/shallow/toxic, /area/desert_dam/building/water_treatment_two) "aTc" = ( /obj/effect/blocker/toxic_water, /obj/structure/filtration/coagulation{ icon_state = "7,6" }, -/turf/open/gm/river/desert/shallow{ - icon = 'icons/turf/floors/desert_water_toxic.dmi' - }, +/turf/open/gm/river/desert/shallow/toxic, /area/desert_dam/building/water_treatment_two) "aTe" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/desert_dam/building/mining/workshop) "aTg" = ( -/turf/open/floor{ - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/darkyellowcorners2, /area/desert_dam/building/substation/northwest) "aTh" = ( -/turf/open/floor{ - dir = 6; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/southeast, /area/desert_dam/building/substation/northwest) "aTi" = ( /obj/effect/blocker/toxic_water/Group_2, /obj/structure/filtration/machine_32x32{ icon_state = "filtration_segment_A_1" }, -/turf/open/floor/coagulation{ - icon_state = "2,0" - }, +/turf/open/floor/coagulation/icon2_0, /area/desert_dam/building/water_treatment_two/purification) "aTj" = ( /obj/structure/largecrate/random/secure, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_hydro) "aTk" = ( /obj/effect/blocker/toxic_water/Group_2, -/turf/open/gm/river/desert/shallow_corner{ - dir = 4 - }, +/turf/open/gm/river/desert/shallow_corner/east, /area/desert_dam/exterior/river/riverside_central_north) "aTl" = ( /obj/structure/desertdam/decals/road_edge{ @@ -14917,32 +11527,24 @@ /area/desert_dam/exterior/valley/valley_telecoms) "aTm" = ( /obj/effect/blocker/toxic_water/Group_2, -/turf/open/gm/river/desert/shallow_edge{ - dir = 6 - }, +/turf/open/gm/river/desert/shallow_edge/southeast, /area/desert_dam/exterior/river/riverside_central_north) "aTn" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 10 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached14" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached14, /area/desert_dam/exterior/valley/north_valley_dam) "aTo" = ( /obj/effect/blocker/toxic_water/Group_2, -/turf/open/floor/coagulation{ - icon_state = "2,0" - }, +/turf/open/floor/coagulation/icon2_0, /area/desert_dam/building/water_treatment_two/purification) "aTp" = ( /obj/effect/blocker/toxic_water/Group_2, /obj/structure/filtration/machine_32x32{ icon_state = "filtration_segment_A_0" }, -/turf/open/floor/coagulation{ - icon_state = "2,0" - }, +/turf/open/floor/coagulation/icon2_0, /area/desert_dam/building/water_treatment_two/purification) "aTq" = ( /obj/structure/cargo_container/kelland/right, @@ -14950,9 +11552,7 @@ /area/desert_dam/exterior/valley/valley_crashsite) "aTr" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached4" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached4, /area/desert_dam/exterior/valley/valley_crashsite) "aTs" = ( /obj/effect/decal/sand_overlay/sand1{ @@ -14963,15 +11563,11 @@ /area/desert_dam/exterior/valley/valley_civilian) "aTt" = ( /obj/effect/blocker/toxic_water/Group_2, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached3" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached3, /area/desert_dam/exterior/valley/valley_medical) "aTu" = ( /obj/effect/blocker/toxic_water/Group_2, -/turf/open/floor/coagulation{ - icon_state = "0,0" - }, +/turf/open/floor/coagulation/icon0_0, /area/desert_dam/building/water_treatment_two/purification) "aTv" = ( /obj/effect/decal/warning_stripes/asteroid{ @@ -14984,22 +11580,15 @@ /turf/open/asphalt, /area/desert_dam/building/warehouse/loading) "aTw" = ( -/turf/open/desert/rock/deep/transition{ - dir = 9 - }, +/turf/open/desert/rock/deep/transition/northwest, /area/desert_dam/interior/dam_interior/northeastern_tunnel) "aTx" = ( /obj/structure/largecrate, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_mining) "aTy" = ( /obj/structure/closet/secure_closet/personal, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/desert_dam/building/security/staffroom) "aTz" = ( /obj/effect/decal/sand_overlay/sand1/corner1, @@ -15007,21 +11596,14 @@ /turf/open/desert/dirt, /area/desert_dam/exterior/valley/valley_civilian) "aTB" = ( -/turf/open/floor/coagulation{ - icon_state = "7,7" - }, +/turf/open/floor/coagulation/icon7_7, /area/desert_dam/building/water_treatment_two) "aTC" = ( /obj/structure/prop/dam/boulder/boulder3, -/turf/open/desert/dirt{ - dir = 5; - icon_state = "desert_transition_edge1" - }, -/area/desert_dam/exterior/valley/valley_northwest) +/turf/open/desert/dirt/desert_transition_edge1/northeast, +/area/desert_dam/exterior/landing_pad_one) "aTF" = ( -/turf/open/desert/rock/deep/transition{ - dir = 5 - }, +/turf/open/desert/rock/deep/transition/northeast, /area/desert_dam/interior/dam_interior/northeastern_tunnel) "aTG" = ( /turf/closed/wall/hangar{ @@ -15029,9 +11611,7 @@ }, /area/desert_dam/building/water_treatment_two/control_room) "aTH" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached9" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached9, /area/desert_dam/exterior/valley/valley_telecoms) "aTI" = ( /obj/structure/platform{ @@ -15042,24 +11622,18 @@ /area/desert_dam/interior/lab_northeast/east_lab_containment) "aTJ" = ( /obj/effect/decal/sand_overlay/sand1, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached15" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached15, /area/desert_dam/exterior/valley/valley_telecoms) "aTK" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached15" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached15, /area/desert_dam/exterior/valley/valley_telecoms) "aTL" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached15" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached15, /area/desert_dam/exterior/valley/valley_civilian) "aTM" = ( /obj/structure/window/framed/hangar, @@ -15069,10 +11643,7 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/desert_dam/building/mining/workshop) "aTO" = ( /obj/structure/machinery/power/apc{ @@ -15080,10 +11651,7 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/desert_dam/building/mining/workshop) "aTP" = ( /obj/structure/desertdam/decals/road_stop{ @@ -15094,9 +11662,7 @@ /turf/open/asphalt, /area/desert_dam/exterior/valley/valley_telecoms) "aTQ" = ( -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/desert_dam/interior/dam_interior/western_dam_cave) "aTR" = ( /obj/structure/machinery/shower{ @@ -15106,15 +11672,10 @@ /turf/open/floor/plating, /area/desert_dam/building/security/staffroom) "aTS" = ( -/turf/open/floor/prison{ - dir = 5; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/northeast, /area/desert_dam/building/mining/workshop) "aTU" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached15" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached15, /area/desert_dam/exterior/valley/valley_telecoms) "aTW" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ @@ -15122,18 +11683,12 @@ name = "\improper Filtration" }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/desert_dam/building/water_treatment_two/purification) "aTX" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/west, /area/desert_dam/building/mining/workshop) "aTY" = ( /obj/structure/surface/rack, @@ -15141,10 +11696,7 @@ /obj/item/stack/sheet/plasteel{ amount = 10 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/mining/workshop) "aTZ" = ( /turf/closed/wall/r_wall/prison, @@ -15152,16 +11704,10 @@ "aUa" = ( /obj/structure/surface/rack, /obj/item/stack/sheet/metal, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/mining/workshop) "aUb" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/mining/workshop) "aUc" = ( /turf/closed/wall/hangar{ @@ -15174,20 +11720,14 @@ pixel_x = -12; pixel_y = 2 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/desert_dam/building/security/staffroom) "aUe" = ( /obj/structure/window/framed/prison/reinforced, /turf/open/floor/plating, /area/desert_dam/building/security/courtroom) "aUf" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "redcorner" - }, +/turf/open/floor/prison/redcorner/north, /area/desert_dam/building/security/lobby) "aUg" = ( /obj/structure/prop/dam/boulder/boulder2, @@ -15209,42 +11749,30 @@ /area/desert_dam/building/substation/northwest) "aUk" = ( /obj/effect/blocker/toxic_water/Group_2, -/turf/open/desert/desert_shore/desert_shore1{ - dir = 4 - }, +/turf/open/desert/desert_shore/desert_shore1/east, /area/desert_dam/exterior/river/riverside_central_north) "aUl" = ( /obj/effect/blocker/toxic_water/Group_2, -/turf/open/gm/river/desert/shallow_edge{ - dir = 4 - }, +/turf/open/gm/river/desert/shallow_edge/east, /area/desert_dam/exterior/river/riverside_central_north) "aUm" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 4 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_telecoms) "aUn" = ( /obj/effect/blocker/toxic_water/Group_2, -/turf/open/desert/desert_shore/shore_corner2{ - dir = 4 - }, +/turf/open/desert/desert_shore/shore_corner2/east, /area/desert_dam/exterior/river/riverside_central_north) "aUo" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 5 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_civilian) "aUp" = ( -/turf/open/desert/rock/deep/transition{ - dir = 8 - }, +/turf/open/desert/rock/deep/transition/west, /area/desert_dam/exterior/telecomm/lz1_south) "aUq" = ( /obj/structure/prop/dam/wide_boulder/boulder1, @@ -15254,10 +11782,7 @@ /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper Courtroom" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/security/courtroom) "aUs" = ( /obj/structure/window/framed/hangar, @@ -15268,19 +11793,14 @@ /turf/open/floor/prison, /area/desert_dam/building/mining/workshop) "aUu" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached14" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached14, /area/desert_dam/exterior/valley/valley_telecoms) "aUv" = ( /obj/structure/machinery/atm{ name = "Weyland-Yutani Automatic Teller Machine"; pixel_y = 30 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/prison/red/north, /area/desert_dam/building/security/lobby) "aUw" = ( /obj/structure/desertdam/decals/road_edge{ @@ -15302,10 +11822,7 @@ name = "\improper Decontamination" }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/water_treatment_two/equipment) "aUA" = ( /obj/structure/desertdam/decals/road_edge{ @@ -15323,41 +11840,27 @@ /turf/open/asphalt, /area/desert_dam/exterior/valley/valley_telecoms) "aUC" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached2" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached2, /area/desert_dam/exterior/landing_pad_one) "aUD" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached4" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached4, /area/desert_dam/exterior/landing_pad_one) "aUE" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached9" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached9, /area/desert_dam/exterior/landing_pad_one) "aUH" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 8 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached9" - }, -/area/desert_dam/exterior/valley/valley_northwest) +/turf/open/asphalt/cement_sunbleached/cement_sunbleached9, +/area/desert_dam/exterior/landing_pad_one) "aUK" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/security/courtroom) "aUL" = ( /obj/structure/flora/tree/joshua, -/turf/open/desert/dirt{ - dir = 5; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/northeast, /area/desert_dam/exterior/valley/valley_northwest) "aUM" = ( /obj/effect/decal/cleanable/dirt, @@ -15367,10 +11870,7 @@ /turf/open/asphalt, /area/desert_dam/exterior/valley/valley_telecoms) "aUN" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/water_treatment_two/equipment) "aUO" = ( /obj/effect/decal/cleanable/liquid_fuel, @@ -15389,9 +11889,7 @@ /area/desert_dam/building/security/observation) "aUT" = ( /obj/effect/blocker/toxic_water, -/turf/open/gm/river/desert/shallow{ - icon = 'icons/turf/floors/desert_water_toxic.dmi' - }, +/turf/open/gm/river/desert/shallow/toxic, /area/desert_dam/building/water_treatment_two) "aUU" = ( /turf/closed/wall/hangar{ @@ -15404,10 +11902,7 @@ /area/desert_dam/building/mining/workshop) "aUW" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/mining/workshop) "aUX" = ( /obj/structure/surface/rack, @@ -15435,10 +11930,7 @@ /turf/open/floor/prison, /area/desert_dam/building/mining/workshop) "aVc" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/east, /area/desert_dam/building/mining/workshop) "aVd" = ( /turf/closed/wall/hangar{ @@ -15453,31 +11945,23 @@ /turf/closed/wall, /area/desert_dam/building/mining/workshop_foyer) "aVg" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached3" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached3, /area/desert_dam/exterior/landing_pad_one) "aVh" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached12" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached12, /area/desert_dam/exterior/landing_pad_one) "aVi" = ( /turf/open/asphalt/cement_sunbleached, /area/desert_dam/exterior/landing_pad_one) "aVj" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached1" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached1, /area/desert_dam/exterior/landing_pad_one) "aVk" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 8 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached1" - }, -/area/desert_dam/exterior/valley/valley_northwest) +/turf/open/asphalt/cement_sunbleached/cement_sunbleached1, +/area/desert_dam/exterior/landing_pad_one) "aVm" = ( /turf/closed/wall/r_wall, /area/desert_dam/building/administration/office) @@ -15486,57 +11970,30 @@ /turf/open/floor/plating, /area/desert_dam/building/water_treatment_two/hallway) "aVp" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/security/lobby) "aVr" = ( /obj/structure/machinery/computer/area_atmos, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/water_treatment_two/control_room) "aVs" = ( /obj/structure/machinery/computer/turbine_computer, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/water_treatment_two/control_room) "aVu" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper Workshop Foyer" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/mining/workshop_foyer) "aVw" = ( /turf/closed/wall/r_wall/prison, /area/desert_dam/building/security/interrogation) -"aVz" = ( -/obj/structure/flora/pottedplant, -/obj/structure/machinery/power/apc{ - dir = 1; - pixel_y = 24; - start_charge = 0 - }, -/turf/open/floor/prison{ - dir = 5; - icon_state = "red" - }, -/area/desert_dam/building/security/lobby) "aVA" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/east, /area/desert_dam/building/mining/workshop) "aVB" = ( /obj/structure/window/framed/prison/reinforced, @@ -15548,20 +12005,14 @@ }, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/water_treatment_two/hallway) "aVD" = ( /obj/structure/surface/table, /obj/structure/machinery/filtration_button{ id = "filter 2" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/water_treatment_two/control_room) "aVE" = ( /obj/structure/surface/rack, @@ -15575,23 +12026,11 @@ /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 1 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached13" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached13, /area/desert_dam/exterior/landing_pad_one) "aVG" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached15" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached15, /area/desert_dam/exterior/landing_pad_one) -"aVH" = ( -/obj/effect/decal/sand_overlay/sand1{ - dir = 8 - }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached15" - }, -/area/desert_dam/exterior/valley/valley_northwest) "aVI" = ( /turf/closed/wall/r_wall, /area/desert_dam/building/administration/control_room) @@ -15604,16 +12043,11 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - dir = 8; - icon_state = "carpet7-3" - }, +/turf/open/floor/carpet7_3/west, /area/desert_dam/building/administration/office) "aVL" = ( /obj/effect/landmark/monkey_spawn, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/desert_dam/building/dorms/hallway_northwing) "aVM" = ( /obj/structure/window/framed/prison/reinforced, @@ -15651,21 +12085,14 @@ /area/desert_dam/exterior/valley/south_valley_dam) "aVS" = ( /obj/structure/disposalpipe/segment, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/south_valley_dam) "aVT" = ( /obj/effect/blocker/toxic_water/Group_2, -/turf/open/desert/desert_shore/shore_edge1{ - dir = 8 - }, +/turf/open/desert/desert_shore/shore_edge1/west, /area/desert_dam/exterior/river/riverside_central_north) "aVU" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/water_treatment_two/hallway) "aVV" = ( /obj/structure/surface/table, @@ -15673,23 +12100,15 @@ name = "Security Cameras - Habitation"; network = list("chigusa_2") }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/water_treatment_two/control_room) "aVW" = ( /obj/structure/surface/table, /obj/structure/machinery/computer/emails, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/water_treatment_two/control_room) "aVY" = ( -/turf/open/asphalt/cement{ - icon_state = "cement13" - }, +/turf/open/asphalt/cement/cement13, /area/desert_dam/interior/dam_interior/south_tunnel) "aVZ" = ( /turf/open/asphalt, @@ -15745,60 +12164,39 @@ /obj/structure/machinery/landinglight/ds1/delaythree{ dir = 8 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached3" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached3, /area/desert_dam/exterior/landing_pad_one) "aWj" = ( /obj/structure/surface/table, /obj/structure/machinery/faxmachine, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/north, /area/desert_dam/building/administration/control_room) "aWk" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "bluecorner" - }, +/turf/open/floor/prison/bluecorner/east, /area/desert_dam/building/administration/control_room) "aWl" = ( -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/administration/control_room) "aWm" = ( /obj/structure/bed/chair/office/dark{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/administration/control_room) "aWn" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/east, /area/desert_dam/building/administration/control_room) "aWo" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/east, /area/desert_dam/building/administration/control_room) "aWp" = ( /obj/structure/surface/table, /obj/effect/spawner/random/tool, /obj/effect/spawner/random/tech_supply, -/turf/open/floor{ - dir = 5; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/northeast, /area/desert_dam/building/administration/control_room) "aWq" = ( /turf/open/floor/wood, @@ -15808,10 +12206,7 @@ dir = 4; layer = 3.25 }, -/turf/open/floor{ - dir = 8; - icon_state = "carpet7-3" - }, +/turf/open/floor/carpet7_3/west, /area/desert_dam/building/administration/office) "aWs" = ( /obj/structure/platform{ @@ -15821,18 +12216,13 @@ dir = 8 }, /obj/effect/blocker/toxic_water/Group_2, -/turf/open/desert/desert_shore/desert_shore1{ - dir = 1 - }, +/turf/open/desert/desert_shore/desert_shore1/north, /area/desert_dam/exterior/valley/south_valley_dam) "aWt" = ( /obj/structure/bed/chair/office/dark{ dir = 8 }, -/turf/open/floor{ - dir = 8; - icon_state = "carpet11-12" - }, +/turf/open/floor/carpet11_12/west, /area/desert_dam/building/administration/office) "aWv" = ( /obj/structure/pipes/vents/pump, @@ -15846,27 +12236,17 @@ /area/desert_dam/building/administration/office) "aWx" = ( /obj/structure/closet/l3closet/virology, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/desert_dam/building/water_treatment_two/equipment) "aWy" = ( /obj/structure/machinery/colony_floodlight, -/turf/open/asphalt/cement{ - icon_state = "cement15" - }, +/turf/open/asphalt/cement/cement15, /area/desert_dam/exterior/telecomm/lz1_south) "aWz" = ( -/turf/open/desert/dirt{ - dir = 1; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/north, /area/desert_dam/exterior/valley/valley_wilderness) "aWA" = ( -/turf/open/desert/dirt{ - dir = 5; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/northeast, /area/desert_dam/exterior/valley/valley_wilderness) "aWB" = ( /obj/effect/decal/warning_stripes{ @@ -15897,42 +12277,31 @@ /turf/open/floor/interior/wood, /area/desert_dam/building/security/office) "aWG" = ( -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/desert_dam/building/water_treatment_two/equipment) "aWH" = ( -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/river/riverside_east) "aWI" = ( /obj/effect/blocker/toxic_water, /obj/structure/filtration/coagulation{ icon_state = "1,2" }, -/turf/open/gm/river/desert/shallow{ - icon = 'icons/turf/floors/desert_water_toxic.dmi' - }, +/turf/open/gm/river/desert/shallow/toxic, /area/desert_dam/building/water_treatment_two) "aWJ" = ( /obj/effect/blocker/toxic_water, /obj/structure/filtration/coagulation{ icon_state = "7,2" }, -/turf/open/gm/river/desert/shallow{ - icon = 'icons/turf/floors/desert_water_toxic.dmi' - }, +/turf/open/gm/river/desert/shallow/toxic, /area/desert_dam/building/water_treatment_two) "aWK" = ( /turf/closed/wall/r_wall/prison, /area/desert_dam/building/security/evidence) "aWL" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/water_treatment_two/equipment) "aWM" = ( /obj/structure/window/framed/colony/reinforced, @@ -15940,15 +12309,10 @@ /area/desert_dam/building/administration/control_room) "aWN" = ( /obj/structure/toilet, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/building/administration/hallway) "aWO" = ( -/turf/open/floor{ - dir = 5; - icon_state = "vault" - }, +/turf/open/floor/vault2/northeast, /area/desert_dam/building/administration/control_room) "aWQ" = ( /obj/structure/machinery/power/apc{ @@ -15959,22 +12323,13 @@ /turf/open/floor/interior/wood, /area/desert_dam/building/security/office) "aWR" = ( -/turf/open/floor{ - dir = 8; - icon_state = "carpet5-1" - }, +/turf/open/floor/carpet5_1/west, /area/desert_dam/building/administration/office) "aWS" = ( -/turf/open/floor{ - dir = 8; - icon_state = "carpet13-5" - }, +/turf/open/floor/carpet13_5/west, /area/desert_dam/building/administration/office) "aWT" = ( -/turf/open/floor{ - dir = 8; - icon_state = "carpet9-4" - }, +/turf/open/floor/carpet9_4/west, /area/desert_dam/building/administration/office) "aWU" = ( /obj/structure/disposalpipe/segment{ @@ -16002,18 +12357,14 @@ /area/desert_dam/building/administration/hallway) "aWZ" = ( /obj/effect/blocker/toxic_water/Group_2, -/turf/open/gm/river/desert/shallow_corner{ - dir = 8 - }, +/turf/open/gm/river/desert/shallow_corner/west, /area/desert_dam/exterior/river/riverside_central_north) "aXa" = ( /obj/structure/sink{ dir = 4; pixel_x = 11 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/desert_dam/building/water_treatment_two/equipment) "aXb" = ( /obj/structure/flora/pottedplant, @@ -16033,10 +12384,7 @@ "aXf" = ( /obj/structure/closet/secure_closet/engineering_personal, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/east, /area/desert_dam/interior/dam_interior/garage) "aXg" = ( /obj/structure/machinery/light{ @@ -16048,58 +12396,41 @@ /area/desert_dam/building/water_treatment_two/control_room) "aXh" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/water_treatment_two/control_room) "aXi" = ( /obj/structure/bed/chair/office/dark{ dir = 1 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/water_treatment_two/control_room) "aXj" = ( /obj/structure/filtration/machine_32x32{ icon_state = "filtration_catwalk" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/desert_dam/building/water_treatment_two/purification) "aXk" = ( /obj/structure/filtration/machine_64x96{ icon_state = "sedimentation_1"; pixel_y = -16 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/desert_dam/building/water_treatment_two/purification) "aXl" = ( /obj/effect/blocker/toxic_water, /obj/structure/filtration/coagulation{ icon_state = "2,1" }, -/turf/open/gm/river/desert/shallow{ - icon = 'icons/turf/floors/desert_water_toxic.dmi' - }, +/turf/open/gm/river/desert/shallow/toxic, /area/desert_dam/building/water_treatment_two) "aXm" = ( /obj/structure/filtration/machine_96x96{ icon_state = "sedimentation_A_1"; pixel_y = -16 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/desert_dam/building/water_treatment_two/purification) "aXo" = ( /obj/structure/machinery/disposal, @@ -16118,10 +12449,7 @@ /obj/structure/filtration/machine_32x32{ icon_state = "filtration_segment_B_0" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/desert_dam/building/water_treatment_two/purification) "aXr" = ( /obj/structure/disposalpipe/segment, @@ -16137,49 +12465,33 @@ dir = 1; name = "\improper Colony Administration Office" }, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/administration/office) "aXu" = ( /obj/structure/filtration/machine_64x96{ icon_state = "filtration_machine_A_1" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/desert_dam/building/water_treatment_two/purification) "aXv" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached18" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached18, /area/desert_dam/exterior/valley/valley_wilderness) "aXy" = ( /obj/structure/filtration/machine_32x32{ icon_state = "filtration_segment_B_1" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/desert_dam/building/water_treatment_two/purification) "aXz" = ( /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/prison/red/west, /area/desert_dam/building/security/lobby) "aXA" = ( /obj/structure/disposalpipe/segment, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/security/lobby) "aXC" = ( /obj/structure/desertdam/decals/road_edge{ @@ -16191,10 +12503,7 @@ /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/prison/red/east, /area/desert_dam/building/security/lobby) "aXE" = ( /obj/structure/machinery/recharger, @@ -16208,24 +12517,17 @@ dir = 1; name = "\improper Colony Administration Office" }, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/administration/office) "aXJ" = ( /obj/structure/machinery/door/airlock/almayer/generic{ dir = 2; name = "\improper Toilet Unit" }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/building/administration/hallway) "aXK" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "bluecorner" - }, +/turf/open/floor/prison/bluecorner/west, /area/desert_dam/building/administration/control_room) "aXL" = ( /obj/structure/window/framed/colony/reinforced, @@ -16241,32 +12543,23 @@ /area/desert_dam/building/security/detective) "aXO" = ( /obj/structure/machinery/vending/cola, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/desert_dam/building/administration/hallway) "aXP" = ( /obj/structure/machinery/vending/cigarette/colony, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/desert_dam/building/administration/hallway) "aXQ" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk, /obj/structure/disposalpipe/trunk, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/desert_dam/building/administration/hallway) "aXR" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/north, /area/desert_dam/building/administration/hallway) "aXS" = ( /obj/effect/blocker/toxic_water/Group_2, @@ -16279,14 +12572,10 @@ /obj/structure/platform{ dir = 1 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_wilderness) "aXU" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached13" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached13, /area/desert_dam/exterior/valley/valley_wilderness) "aXV" = ( /obj/structure/bookcase/manuals/engineering, @@ -16304,9 +12593,7 @@ /turf/open/floor/interior/wood, /area/desert_dam/building/security/marshals_office) "aXY" = ( -/turf/open/desert/dirt{ - icon_state = "desert_transition_corner1" - }, +/turf/open/desert/dirt/desert_transition_corner1, /area/desert_dam/exterior/valley/valley_wilderness) "aXZ" = ( /obj/structure/filingcabinet/security, @@ -16324,10 +12611,7 @@ "aYb" = ( /obj/effect/decal/cleanable/blood, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/water_treatment_two/control_room) "aYd" = ( /turf/closed/wall/r_wall/prison, @@ -16338,9 +12622,7 @@ /area/desert_dam/exterior/valley/valley_wilderness) "aYf" = ( /obj/effect/decal/sand_overlay/sand1, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached18" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached18, /area/desert_dam/exterior/valley/valley_wilderness) "aYg" = ( /obj/structure/surface/rack, @@ -16350,101 +12632,66 @@ /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor{ - icon_state = "grimy" - }, +/turf/open/floor/grimy, /area/desert_dam/building/bar/bar) "aYi" = ( /obj/structure/filtration/machine_64x96{ icon_state = "filtration_machine_B_1" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/desert_dam/building/water_treatment_two/purification) "aYj" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "bluecorner" - }, +/turf/open/floor/prison/bluecorner/east, /area/desert_dam/building/administration/hallway) "aYk" = ( -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/administration/hallway) "aYl" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "bluecorner" - }, +/turf/open/floor/prison/bluecorner/north, /area/desert_dam/building/administration/hallway) "aYm" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/north, /area/desert_dam/building/administration/hallway) "aYn" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/administration/hallway) "aYo" = ( -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/desert_dam/building/administration/hallway) "aYp" = ( /obj/structure/disposalpipe/segment{ dir = 4; icon_state = "pipe-c" }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/north, /area/desert_dam/building/administration/hallway) "aYq" = ( /obj/structure/disposalpipe/segment{ dir = 8; icon_state = "pipe-c" }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/north, /area/desert_dam/building/administration/hallway) "aYr" = ( -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/building/administration/hallway) "aYs" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/building/administration/hallway) "aYt" = ( /obj/structure/sink{ dir = 4; pixel_x = 11 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/building/administration/hallway) "aYu" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/west, /area/desert_dam/building/administration/control_room) "aYv" = ( /obj/structure/window/reinforced/tinted{ @@ -16456,9 +12703,7 @@ /obj/structure/surface/table/reinforced, /obj/item/clipboard, /obj/item/tool/stamp, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/administration/control_room) "aYw" = ( /obj/structure/window/reinforced/tinted{ @@ -16470,9 +12715,7 @@ /obj/structure/surface/table/reinforced, /obj/item/paper_bin, /obj/item/tool/pen/blue, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/administration/control_room) "aYx" = ( /obj/structure/flora/bush/desert/cactus/multiple{ @@ -16485,15 +12728,10 @@ dir = 8 }, /obj/structure/platform, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_wilderness) "aYz" = ( -/turf/open/desert/dirt{ - dir = 4; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/east, /area/desert_dam/exterior/valley/valley_wilderness) "aYD" = ( /obj/structure/surface/rack, @@ -16510,16 +12748,12 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/administration/hallway) "aYG" = ( /obj/structure/disposalpipe/junction, /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/administration/hallway) "aYH" = ( /obj/structure/disposalpipe/segment{ @@ -16529,34 +12763,26 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/administration/hallway) "aYI" = ( /obj/structure/disposalpipe/junction, /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/administration/hallway) "aYJ" = ( /obj/structure/machinery/door/airlock/almayer/generic{ name = "\improper Restroom" }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/building/administration/hallway) "aYK" = ( /obj/structure/bed/chair/office/light{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/administration/control_room) "aYL" = ( /obj/structure/window/reinforced/tinted{ @@ -16564,9 +12790,7 @@ }, /obj/structure/machinery/computer/atmos_alert, /obj/structure/surface/table/reinforced, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/administration/control_room) "aYM" = ( /obj/structure/window/reinforced/tinted{ @@ -16574,9 +12798,7 @@ }, /obj/structure/machinery/computer/communications, /obj/structure/surface/table/reinforced, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/administration/control_room) "aYN" = ( /obj/structure/closet/secure_closet/detective, @@ -16585,40 +12807,30 @@ "aYQ" = ( /obj/structure/filtration/coagulation_arm, /obj/effect/blocker/toxic_water, -/turf/open/gm/river/desert/shallow{ - icon = 'icons/turf/floors/desert_water_toxic.dmi' - }, +/turf/open/gm/river/desert/shallow/toxic, /area/desert_dam/building/water_treatment_two) "aYR" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 8 }, -/turf/open/floor/coagulation{ - icon_state = "8,7" - }, +/turf/open/floor/coagulation/icon8_7, /area/desert_dam/exterior/valley/valley_mining) "aYS" = ( /obj/structure/bed/chair/office/light{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/administration/control_room) "aYT" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/administration/control_room) "aYU" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/comdoor{ dir = 1; name = "\improper Administration Control Room" }, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/administration/control_room) "aYV" = ( /obj/structure/bed/chair/office/light{ @@ -16633,14 +12845,10 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - icon_state = "grimy" - }, +/turf/open/floor/grimy, /area/desert_dam/building/bar/bar) "aYX" = ( -/turf/open/floor/prison{ - icon_state = "bluecorner" - }, +/turf/open/floor/prison/bluecorner, /area/desert_dam/building/administration/hallway) "aYY" = ( /obj/structure/window/reinforced/tinted{ @@ -16650,9 +12858,7 @@ /obj/structure/surface/table/reinforced, /obj/item/paper_bin, /obj/item/tool/pen/blue, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/administration/control_room) "aYZ" = ( /obj/structure/window/reinforced/tinted{ @@ -16662,64 +12868,44 @@ /obj/structure/surface/table/reinforced, /obj/item/clipboard, /obj/item/tool/stamp, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/administration/control_room) "aZa" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - icon_state = "bluecorner" - }, +/turf/open/floor/prison/bluecorner, /area/desert_dam/building/administration/control_room) "aZb" = ( -/turf/open/floor/prison{ - icon_state = "blue" - }, +/turf/open/floor/prison/blue, /area/desert_dam/building/administration/hallway) "aZc" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "bluecorner" - }, +/turf/open/floor/prison/bluecorner/west, /area/desert_dam/building/administration/hallway) "aZd" = ( /obj/structure/platform{ dir = 8 }, /obj/structure/platform, -/turf/open/desert/dirt{ - icon_state = "dirt2" - }, +/turf/open/desert/dirt/dirt2, /area/desert_dam/exterior/valley/valley_labs) "aZe" = ( /obj/effect/blocker/toxic_water/Group_2, -/turf/open/gm/river/desert/shallow_edge{ - dir = 5 - }, +/turf/open/gm/river/desert/shallow_edge/northeast, /area/desert_dam/exterior/river/riverside_central_north) "aZg" = ( /obj/effect/blocker/toxic_water/Group_2, -/turf/open/gm/river/desert/shallow_edge{ - dir = 10 - }, +/turf/open/gm/river/desert/shallow_edge/southwest, /area/desert_dam/exterior/river/riverside_central_north) "aZh" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/monkey_spawn, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/water_treatment_two/hallway) "aZi" = ( /obj/effect/blocker/toxic_water, /obj/structure/filtration/coagulation{ icon_state = "6,1" }, -/turf/open/gm/river/desert/shallow{ - icon = 'icons/turf/floors/desert_water_toxic.dmi' - }, +/turf/open/gm/river/desert/shallow/toxic, /area/desert_dam/building/water_treatment_two) "aZj" = ( /obj/item/paper/courtroom{ @@ -16743,9 +12929,7 @@ /turf/open/asphalt, /area/desert_dam/exterior/valley/valley_wilderness) "aZm" = ( -/turf/open/asphalt/cement{ - icon_state = "cement14" - }, +/turf/open/asphalt/cement/cement14, /area/desert_dam/interior/dam_interior/south_tunnel) "aZn" = ( /obj/structure/bed/chair{ @@ -16767,75 +12951,43 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "red" - }, -/area/desert_dam/building/security/lobby) -"aZt" = ( -/obj/structure/bed/chair{ - dir = 8 - }, -/obj/structure/machinery/light{ - dir = 4 - }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/prison/red/west, /area/desert_dam/building/security/lobby) "aZu" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/administration/hallway) "aZv" = ( /obj/effect/blocker/toxic_water, -/turf/open/gm/river/desert/shallow{ - icon = 'icons/turf/floors/desert_water_toxic.dmi' - }, +/turf/open/gm/river/desert/shallow/toxic, /area/desert_dam/exterior/river/filtration_a) "aZw" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/east, /area/desert_dam/building/administration/hallway) "aZx" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/west, /area/desert_dam/building/administration/control_room) "aZy" = ( /obj/effect/landmark/survivor_spawner, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/administration/control_room) "aZz" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk{ dir = 1 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/east, /area/desert_dam/building/administration/control_room) "aZA" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/comdoor{ name = "\improper Administration Hallway" }, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/administration/hallway) "aZB" = ( /obj/structure/machinery/power/apc{ @@ -16843,10 +12995,7 @@ pixel_x = -30; start_charge = 0 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/west, /area/desert_dam/building/administration/hallway) "aZC" = ( /turf/closed/wall/r_wall, @@ -16855,16 +13004,12 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 1 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached16" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached16, /area/desert_dam/exterior/valley/valley_labs) "aZI" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached4" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached4, /area/desert_dam/exterior/valley/valley_crashsite) "aZJ" = ( /obj/structure/machinery/computer/cameras/wooden_tv, @@ -16884,19 +13029,14 @@ /area/desert_dam/building/security/marshals_office) "aZN" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached4" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached4, /area/desert_dam/exterior/valley/valley_telecoms) "aZO" = ( /obj/structure/machinery/photocopier, /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/east, /area/desert_dam/building/administration/control_room) "aZP" = ( /obj/structure/window/framed/colony/reinforced, @@ -16907,10 +13047,7 @@ /obj/structure/closet/hydrant{ pixel_y = 32 }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/northwest, /area/desert_dam/building/administration/lobby) "aZR" = ( /obj/structure/window/framed/colony/reinforced, @@ -16918,21 +13055,13 @@ /turf/open/floor/plating, /area/desert_dam/building/administration/hallway) "aZS" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "bluecorner" - }, +/turf/open/floor/prison/bluecorner/east, /area/desert_dam/building/administration/lobby) "aZT" = ( -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/administration/lobby) "aZU" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "bluecorner" - }, +/turf/open/floor/prison/bluecorner/north, /area/desert_dam/building/administration/lobby) "aZV" = ( /obj/structure/surface/table, @@ -16948,16 +13077,12 @@ pixel_x = -3; pixel_y = -1 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/desert_dam/building/administration/archives) "aZW" = ( /obj/structure/filingcabinet, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/desert_dam/building/administration/archives) "aZX" = ( /obj/structure/machinery/power/apc{ @@ -16965,29 +13090,21 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/desert_dam/building/administration/archives) "aZY" = ( -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/desert_dam/building/administration/archives) "aZZ" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/desert_dam/building/administration/archives) "baa" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/desert_dam/building/administration/archives) "bab" = ( /obj/structure/platform{ @@ -17005,9 +13122,7 @@ /area/desert_dam/building/water_treatment_two/hallway) "bae" = ( /obj/structure/disposalpipe/segment, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached4" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached4, /area/desert_dam/exterior/valley/valley_telecoms) "baf" = ( /obj/structure/flora/pottedplant, @@ -17018,35 +13133,23 @@ /turf/open/asphalt/cement_sunbleached, /area/desert_dam/exterior/valley/valley_telecoms) "bai" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/west, /area/desert_dam/building/administration/hallway) "baj" = ( /obj/structure/surface/table, /obj/structure/machinery/faxmachine, -/turf/open/floor/prison{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/east, /area/desert_dam/building/administration/control_room) "bak" = ( /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/west, /area/desert_dam/building/administration/lobby) "bal" = ( /obj/structure/surface/table, /obj/effect/landmark/crap_item, -/turf/open/floor/prison{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/east, /area/desert_dam/building/administration/control_room) "bam" = ( /obj/effect/decal/sand_overlay/sand1{ @@ -17062,25 +13165,17 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 8 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached1" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached1, /area/desert_dam/exterior/valley/valley_telecoms) "bap" = ( /obj/structure/filingcabinet, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/north, /area/desert_dam/building/administration/lobby) "baq" = ( /obj/structure/closet/secure_closet/security, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/north, /area/desert_dam/building/administration/lobby) "bar" = ( /obj/structure/machinery/power/apc{ @@ -17088,10 +13183,7 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor{ - dir = 5; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/northeast, /area/desert_dam/building/administration/lobby) "bas" = ( /obj/structure/disposalpipe/segment{ @@ -17101,9 +13193,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/administration/lobby) "bat" = ( /obj/structure/surface/table, @@ -17115,49 +13205,36 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/desert_dam/building/administration/archives) "bau" = ( /obj/structure/disposalpipe/segment{ dir = 4; icon_state = "pipe-c" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/desert_dam/building/administration/archives) "bav" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/desert_dam/building/administration/archives) "baw" = ( /obj/structure/disposalpipe/segment{ dir = 8; icon_state = "pipe-c" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/desert_dam/building/administration/archives) "bax" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/desert_dam/building/administration/archives) "baz" = ( -/turf/open/desert/dirt{ - dir = 9; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/northwest, /area/desert_dam/exterior/valley/valley_telecoms) "baA" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ @@ -17169,9 +13246,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/administration/hallway) "baC" = ( /obj/structure/surface/table/reinforced, @@ -17188,55 +13263,38 @@ pixel_x = -6 }, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/desert_dam/building/administration/lobby) "baD" = ( /obj/structure/bed/chair/office/light{ dir = 8 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/west, /area/desert_dam/building/administration/lobby) "baE" = ( -/turf/open/floor{ - dir = 4; - icon_state = "darkredcorners2" - }, +/turf/open/floor/darkredcorners2/east, /area/desert_dam/building/administration/lobby) "baF" = ( /obj/structure/surface/table, /obj/item/tool/hand_labeler, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/desert_dam/building/administration/archives) "baG" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/vents/pump, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/desert_dam/building/administration/archives) "baH" = ( /obj/structure/surface/table, /obj/item/paper_bin, /obj/item/tool/pen/blue, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/desert_dam/building/administration/archives) "baI" = ( /obj/structure/platform{ dir = 8 }, -/turf/open/desert/dirt{ - dir = 10; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/southwest, /area/desert_dam/exterior/valley/valley_northwest) "baL" = ( /obj/structure/machinery/light{ @@ -17269,39 +13327,28 @@ /turf/open/floor/prison, /area/desert_dam/building/water_treatment_two/hallway) "baQ" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/southwest, /area/desert_dam/building/administration/control_room) "baR" = ( -/turf/open/floor/prison{ - icon_state = "blue" - }, +/turf/open/floor/prison/blue, /area/desert_dam/building/administration/control_room) "baS" = ( /obj/structure/surface/table, /obj/item/tool/stamp{ icon_state = "stamp-ce" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/desert_dam/building/administration/archives) "baT" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/desert_dam/building/administration/archives) "baV" = ( /obj/structure/surface/table, /obj/item/paper, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/desert_dam/building/administration/archives) "baW" = ( /obj/structure/desertdam/decals/road_edge{ @@ -17312,29 +13359,20 @@ icon_state = "stop_decal5" }, /turf/open/asphalt, -/area/desert_dam/exterior/valley/valley_northwest) +/area/desert_dam/exterior/landing_pad_one) "baX" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached12" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached12, /area/desert_dam/exterior/valley/valley_crashsite) "baZ" = ( -/turf/open/desert/rock/deep/transition{ - dir = 1 - }, +/turf/open/desert/rock/deep/transition/north, /area/desert_dam/interior/dam_interior/central_tunnel) "bba" = ( -/turf/open/desert/rock/deep/transition{ - dir = 9 - }, +/turf/open/desert/rock/deep/transition/northwest, /area/desert_dam/interior/dam_interior/south_tunnel) "bbb" = ( /obj/structure/reagent_dispensers/water_cooler, -/turf/open/floor/prison{ - dir = 6; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/southeast, /area/desert_dam/building/administration/control_room) "bbc" = ( /obj/structure/surface/table, @@ -17342,68 +13380,46 @@ dir = 8 }, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/prison{ - dir = 10; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/southwest, /area/desert_dam/building/administration/lobby) "bbd" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "bluecorner" - }, +/turf/open/floor/prison/bluecorner/west, /area/desert_dam/building/administration/lobby) "bbe" = ( -/turf/open/floor/prison{ - icon_state = "bluecorner" - }, +/turf/open/floor/prison/bluecorner, /area/desert_dam/building/administration/lobby) "bbf" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/administration/hallway) "bbg" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/east, /area/desert_dam/building/administration/hallway) "bbh" = ( /obj/structure/surface/table, /obj/item/tool/stamp, -/turf/open/floor{ - dir = 10; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/southwest, /area/desert_dam/building/administration/lobby) "bbi" = ( /obj/structure/surface/table, /obj/structure/machinery/light, -/turf/open/floor{ - icon_state = "darkred2" - }, +/turf/open/floor/darkred2, /area/desert_dam/building/administration/lobby) "bbj" = ( /obj/structure/surface/rack, -/turf/open/floor{ - icon_state = "darkred2" - }, +/turf/open/floor/darkred2, /area/desert_dam/building/administration/lobby) "bbk" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk{ dir = 1 }, -/turf/open/floor{ - icon_state = "darkred2" - }, +/turf/open/floor/darkred2, /area/desert_dam/building/administration/lobby) "bbl" = ( /obj/structure/machinery/door/airlock/almayer/command/colony{ @@ -17412,26 +13428,20 @@ }, /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/administration/archives) "bbm" = ( /obj/structure/machinery/door/airlock/almayer/command/colony{ dir = 1; name = "\improper Colony Archives" }, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/administration/archives) "bbn" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/comdoor{ name = "\improper Administration Lobby" }, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/administration/lobby) "bbo" = ( /obj/structure/window/framed/prison/reinforced, @@ -17445,28 +13455,20 @@ /area/desert_dam/exterior/valley/valley_northwest) "bbs" = ( /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/interior/lab_northeast/east_lab_west_hallway) "bbv" = ( /obj/effect/decal/sand_overlay/sand1/corner1, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached4" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached4, /area/desert_dam/exterior/valley/valley_wilderness) "bbw" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 6 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached15" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached15, /area/desert_dam/exterior/valley/valley_wilderness) "bbx" = ( -/turf/open/desert/rock/deep/transition{ - dir = 5 - }, +/turf/open/desert/rock/deep/transition/northeast, /area/desert_dam/interior/dam_interior/central_tunnel) "bby" = ( /obj/structure/machinery/light{ @@ -17474,16 +13476,10 @@ }, /obj/structure/closet/toolcloset, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/northwest, /area/desert_dam/building/mining/workshop_foyer) "bbz" = ( -/turf/open/desert/dirt{ - dir = 8; - icon_state = "desert_transition_corner1" - }, +/turf/open/desert/dirt/desert_transition_corner1/west, /area/desert_dam/exterior/valley/valley_telecoms) "bbA" = ( /obj/structure/disposalpipe/segment, @@ -17493,9 +13489,7 @@ "bbB" = ( /obj/effect/decal/sand_overlay/sand2/corner2, /obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/desert_dam/interior/dam_interior/western_dam_cave) "bbC" = ( /turf/closed/wall/r_wall, @@ -17507,9 +13501,7 @@ }, /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/administration/hallway) "bbE" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ @@ -17524,31 +13516,23 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 5 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached9" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached9, /area/desert_dam/exterior/valley/valley_telecoms) "bbH" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 1 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached2" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached2, /area/desert_dam/exterior/valley/valley_northwest) "bbI" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 1 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached4" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached4, /area/desert_dam/exterior/valley/valley_northwest) "bbK" = ( /obj/effect/blocker/toxic_water/Group_2, -/turf/open/desert/desert_shore/desert_shore1{ - dir = 8 - }, +/turf/open/desert/desert_shore/desert_shore1/west, /area/desert_dam/exterior/river/riverside_central_north) "bbL" = ( /obj/effect/blocker/toxic_water/Group_2, @@ -17586,9 +13570,7 @@ /obj/effect/decal/sand_overlay/sand2{ dir = 8 }, -/turf/open/asphalt/cement{ - icon_state = "cement14" - }, +/turf/open/asphalt/cement/cement14, /area/desert_dam/interior/dam_interior/north_tunnel_entrance) "bbT" = ( /obj/structure/desertdam/decals/road_edge{ @@ -17600,9 +13582,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/administration/hallway) "bbV" = ( /obj/structure/machinery/door_control{ @@ -17618,23 +13598,17 @@ dir = 1; name = "\improper Administration Hallway" }, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/administration/hallway) "bbX" = ( /obj/structure/machinery/light, -/turf/open/floor/prison{ - icon_state = "blue" - }, +/turf/open/floor/prison/blue, /area/desert_dam/building/administration/hallway) "bbY" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached2" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached2, /area/desert_dam/exterior/valley/valley_northwest) "bbZ" = ( /obj/structure/stairs{ @@ -17646,9 +13620,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached4" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached4, /area/desert_dam/exterior/valley/valley_northwest) "bca" = ( /obj/structure/platform_decoration{ @@ -17660,9 +13632,7 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 1 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached4" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached4, /area/desert_dam/exterior/valley/valley_northwest) "bcb" = ( /obj/structure/disposalpipe/segment{ @@ -17671,9 +13641,7 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 1 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached4" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached4, /area/desert_dam/exterior/valley/valley_northwest) "bcc" = ( /obj/structure/disposalpipe/segment{ @@ -17682,85 +13650,61 @@ /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 1 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached4" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached4, /area/desert_dam/exterior/valley/valley_northwest) "bck" = ( -/turf/open/desert/dirt{ - dir = 4; - icon_state = "desert_transition_corner1" - }, +/turf/open/desert/dirt/desert_transition_corner1/east, /area/desert_dam/exterior/valley/valley_telecoms) "bcn" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "grimy" - }, +/turf/open/floor/grimy, /area/desert_dam/building/bar/bar) "bco" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached18" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached18, /area/desert_dam/exterior/valley/valley_northwest) "bcp" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 5 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached9" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached9, /area/desert_dam/exterior/valley/valley_northwest) "bcq" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/southwest, /area/desert_dam/building/administration/hallway) "bcr" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/comdoor{ name = "\improper Breakroom" }, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/administration/meetingrooom) "bcs" = ( /obj/structure/stairs{ dir = 4 }, /obj/structure/platform, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached12" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached12, /area/desert_dam/exterior/valley/valley_northwest) "bct" = ( /obj/effect/decal/sand_overlay/sand1, /obj/structure/platform_decoration{ dir = 1 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached12" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached12, /area/desert_dam/exterior/valley/valley_northwest) "bcu" = ( /obj/effect/decal/sand_overlay/sand1, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached12" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached12, /area/desert_dam/exterior/valley/valley_northwest) "bcv" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 8 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached12" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached12, /area/desert_dam/exterior/valley/valley_northwest) "bcy" = ( /obj/structure/flora/bush/desert/cactus{ @@ -17772,9 +13716,7 @@ /obj/effect/decal/sand_overlay/sand2{ dir = 1 }, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/desert_dam/interior/dam_interior/north_tunnel) "bcA" = ( /obj/structure/surface/table/reinforced, @@ -17789,10 +13731,7 @@ name = "Security Cameras - Habitation"; network = list("chigusa_2") }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/desert_dam/building/security/lobby) "bcC" = ( /obj/structure/desertdam/decals/road_edge{ @@ -17800,21 +13739,17 @@ }, /obj/structure/desertdam/decals/road_stop, /turf/open/asphalt, -/area/desert_dam/exterior/valley/valley_northwest) +/area/desert_dam/exterior/landing_pad_one) "bcD" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 8 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached13" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached13, /area/desert_dam/exterior/valley/valley_northwest) "bcE" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/administration/meetingrooom) "bcF" = ( /obj/structure/platform_decoration{ @@ -17823,33 +13758,23 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 4 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_northwest) "bcH" = ( -/turf/open/desert/rock/deep/transition{ - dir = 6 - }, +/turf/open/desert/rock/deep/transition/southeast, /area/desert_dam/interior/dam_interior/south_tunnel) "bcI" = ( /obj/effect/decal/cleanable/blood, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/water_treatment_two/hallway) "bcJ" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ dir = 1; name = "\improper Holding" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/security/holding) "bcK" = ( /obj/structure/window/framed/hangar/reinforced, @@ -17864,10 +13789,7 @@ /area/desert_dam/building/security/prison) "bcO" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/water_treatment_two/hallway) "bcQ" = ( /obj/effect/blocker/toxic_water/Group_2, @@ -17887,17 +13809,11 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/west, /area/desert_dam/building/administration/hallway) "bcW" = ( /obj/structure/surface/table, -/turf/open/floor/prison{ - dir = 5; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/northeast, /area/desert_dam/interior/dam_interior/engine_east_wing) "bcX" = ( /obj/structure/platform{ @@ -17906,22 +13822,15 @@ /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 1 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_northwest) "bcY" = ( -/turf/open/desert/dirt{ - icon_state = "dirt2" - }, +/turf/open/desert/dirt/dirt2, /area/desert_dam/exterior/river/riverside_central_north) "bda" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/water_treatment_two/hallway) "bdb" = ( /obj/structure/machinery/light{ @@ -17939,18 +13848,12 @@ dir = 1 }, /obj/structure/machinery/computer/secure_data, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/desert_dam/building/security/lobby) "bde" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/door/window/brigdoor/northleft, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/desert_dam/building/security/lobby) "bdf" = ( /turf/closed/wall/r_wall, @@ -17961,16 +13864,11 @@ /area/desert_dam/building/administration/overseer_office) "bdh" = ( /obj/structure/machinery/computer/crew, -/turf/open/floor/prison{ - dir = 9; - icon_state = "whitered" - }, +/turf/open/floor/prison/whitered/northwest, /area/desert_dam/building/medical/chemistry) "bdi" = ( /obj/structure/machinery/vending/snack, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/desert_dam/building/administration/meetingrooom) "bdj" = ( /turf/open/floor/wood, @@ -18003,15 +13901,11 @@ /obj/structure/platform{ dir = 8 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_northwest) "bdt" = ( /obj/effect/blocker/toxic_water/Group_2, -/turf/open/desert/desert_shore/shore_corner2{ - dir = 8 - }, +/turf/open/desert/desert_shore/shore_corner2/west, /area/desert_dam/exterior/river/riverside_central_north) "bdw" = ( /obj/structure/surface/table/reinforced, @@ -18019,10 +13913,7 @@ dir = 1 }, /obj/item/storage/donut_box, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/desert_dam/building/security/lobby) "bdz" = ( /obj/structure/surface/table/reinforced, @@ -18034,18 +13925,13 @@ health = 80 }, /obj/item/device/flashlight/lamp, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/desert_dam/building/security/lobby) "bdA" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached13" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached13, /area/desert_dam/exterior/valley/valley_northwest) "bdB" = ( /obj/structure/closet/secure_closet/personal, @@ -18063,16 +13949,11 @@ /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/desert_dam/interior/dam_interior/hanger) "bdE" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/administration/control_room) "bdF" = ( /obj/structure/disposalpipe/trunk{ @@ -18083,17 +13964,12 @@ /area/desert_dam/building/administration/overseer_office) "bdG" = ( /obj/structure/machinery/vending/coffee, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/desert_dam/building/administration/meetingrooom) "bdH" = ( /obj/structure/pipes/vents/pump, /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/security/lobby) "bdI" = ( /obj/structure/pipes/vents/pump{ @@ -18110,19 +13986,8 @@ /area/desert_dam/exterior/valley/valley_northwest) "bdK" = ( /obj/effect/blocker/toxic_water/Group_2, -/turf/open/desert/desert_shore/shore_edge1{ - dir = 4 - }, +/turf/open/desert/desert_shore/shore_edge1/east, /area/desert_dam/exterior/river/riverside_central_north) -"bdL" = ( -/obj/item/reagent_container/food/drinks/flask/detflask, -/obj/item/clothing/head/det_hat, -/obj/structure/machinery/light{ - dir = 8 - }, -/obj/structure/surface/table/woodentable/fancy, -/turf/open/floor/interior/wood, -/area/desert_dam/building/security/detective) "bdM" = ( /obj/item/ashtray/bronze, /obj/item/clothing/mask/cigarette/cigar, @@ -18133,10 +13998,7 @@ /obj/structure/surface/table, /obj/item/tool/wirecutters, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/water_treatment_two/hallway) "bdO" = ( /obj/effect/decal/warning_stripes{ @@ -18161,10 +14023,7 @@ /obj/structure/surface/table, /obj/effect/landmark/crap_item, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/water_treatment_two/hallway) "bdT" = ( /obj/structure/surface/table/woodentable/fancy, @@ -18179,80 +14038,54 @@ /area/desert_dam/building/security/detective) "bdV" = ( /obj/effect/decal/sand_overlay/sand1/corner1, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached18" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached18, /area/desert_dam/exterior/valley/valley_northwest) "bdW" = ( /obj/effect/decal/sand_overlay/sand1, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached18" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached18, /area/desert_dam/exterior/valley/valley_northwest) "bdX" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 8 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached18" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached18, /area/desert_dam/exterior/valley/valley_northwest) "bdY" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor{ - dir = 8; - icon_state = "carpet6-2" - }, +/turf/open/floor/carpet6_2/west, /area/desert_dam/building/administration/overseer_office) "bdZ" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor{ - dir = 8; - icon_state = "carpet14-10" - }, +/turf/open/floor/carpet14_10/west, /area/desert_dam/building/administration/overseer_office) "bec" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached19" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached19, /area/desert_dam/exterior/valley/valley_medical) "bed" = ( /obj/structure/machinery/vending/cigarette/colony, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/desert_dam/building/administration/meetingrooom) "bee" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor/carpet/edge{ - dir = 9 - }, +/turf/open/floor/carpet/edge/northwest, /area/desert_dam/building/administration/meetingrooom) "bef" = ( -/turf/open/floor/carpet/edge{ - dir = 1 - }, +/turf/open/floor/carpet/edge/north, /area/desert_dam/building/administration/meetingrooom) "beg" = ( /obj/structure/bed/chair/wood/normal, -/turf/open/floor/carpet/edge{ - dir = 1 - }, +/turf/open/floor/carpet/edge/north, /area/desert_dam/building/administration/meetingrooom) "beh" = ( /obj/effect/landmark/survivor_spawner, -/turf/open/floor/carpet/edge{ - dir = 1 - }, +/turf/open/floor/carpet/edge/north, /area/desert_dam/building/administration/meetingrooom) "bei" = ( -/turf/open/floor/carpet/edge{ - dir = 5 - }, +/turf/open/floor/carpet/edge/northeast, /area/desert_dam/building/administration/meetingrooom) "bej" = ( /obj/structure/flora/grass/desert/heavygrass_3, @@ -18263,22 +14096,14 @@ dir = 4 }, /obj/effect/blocker/toxic_water/Group_2, -/turf/open/desert/desert_shore/shore_edge1{ - dir = 4 - }, +/turf/open/desert/desert_shore/shore_edge1/east, /area/desert_dam/exterior/river/riverside_central_north) "bel" = ( -/turf/open/desert/dirt{ - dir = 4; - icon_state = "desert_transition_corner1" - }, +/turf/open/desert/dirt/desert_transition_corner1/east, /area/desert_dam/interior/caves/central_caves) "bem" = ( /obj/structure/closet/toolcloset, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/north, /area/desert_dam/building/mining/workshop_foyer) "ben" = ( /obj/structure/machinery/floodlight/landing, @@ -18286,9 +14111,7 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 9 }, -/turf/open/floor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/asteroidplating, /area/desert_dam/exterior/landing_pad_one) "beo" = ( /obj/structure/machinery/light{ @@ -18300,21 +14123,15 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 6 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_northwest) "beq" = ( /obj/structure/disposalpipe/segment, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/river/riverside_east) "ber" = ( /obj/effect/blocker/toxic_water, -/turf/open/gm/river/desert/deep{ - icon = 'icons/turf/floors/desert_water_toxic.dmi' - }, +/turf/open/gm/river/desert/deep/toxic, /area/desert_dam/exterior/river/filtration_a) "bes" = ( /obj/structure/bed/chair/comfy/black, @@ -18325,15 +14142,11 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/desert_dam/building/administration/meetingrooom) "beu" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor/carpet/edge{ - dir = 8 - }, +/turf/open/floor/carpet/edge/west, /area/desert_dam/building/administration/meetingrooom) "bev" = ( /obj/structure/bed/chair/wood/normal{ @@ -18353,9 +14166,7 @@ /turf/open/floor/carpet, /area/desert_dam/building/administration/meetingrooom) "bey" = ( -/turf/open/floor/carpet/edge{ - dir = 4 - }, +/turf/open/floor/carpet/edge/east, /area/desert_dam/building/administration/meetingrooom) "bez" = ( /obj/structure/machinery/light{ @@ -18364,10 +14175,7 @@ /turf/open/floor/wood, /area/desert_dam/building/administration/meetingrooom) "beB" = ( -/turf/open/desert/dirt{ - dir = 8; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/west, /area/desert_dam/interior/caves/central_caves) "beC" = ( /turf/open/desert/rock, @@ -18386,26 +14194,18 @@ /obj/structure/bed/chair/comfy/beige{ dir = 4 }, -/turf/open/floor{ - dir = 8; - icon_state = "carpet7-3" - }, +/turf/open/floor/carpet7_3/west, /area/desert_dam/building/administration/overseer_office) "beG" = ( /obj/structure/disposalpipe/segment, /obj/effect/blocker/toxic_water/Group_2, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/river/riverside_east) "beH" = ( /obj/structure/bed/chair/comfy/beige{ dir = 8 }, -/turf/open/floor{ - dir = 8; - icon_state = "carpet11-12" - }, +/turf/open/floor/carpet11_12/west, /area/desert_dam/building/administration/overseer_office) "beI" = ( /obj/structure/machinery/light{ @@ -18418,9 +14218,7 @@ /obj/structure/disposalpipe/trunk{ dir = 4 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/desert_dam/building/administration/meetingrooom) "beK" = ( /obj/structure/disposalpipe/segment{ @@ -18433,42 +14231,28 @@ dir = 8; icon_state = "pipe-c" }, -/turf/open/floor/carpet/edge{ - dir = 8 - }, +/turf/open/floor/carpet/edge/west, /area/desert_dam/building/administration/meetingrooom) "beM" = ( -/turf/open/desert/dirt{ - dir = 10; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/southwest, /area/desert_dam/interior/caves/central_caves) "beN" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 8 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_telecoms) "beO" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached3" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached3, /area/desert_dam/exterior/valley/valley_telecoms) "beP" = ( /obj/effect/decal/sand_overlay/sand1/corner1, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached12" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached12, /area/desert_dam/exterior/valley/valley_telecoms) "beQ" = ( /obj/structure/surface/table, /obj/item/tool/wrench, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/water_treatment_two/hallway) "beS" = ( /obj/structure/machinery/power/apc{ @@ -18496,23 +14280,16 @@ /obj/structure/platform{ dir = 8 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached13" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached13, /area/desert_dam/exterior/valley/valley_northwest) "beX" = ( /obj/structure/platform{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached13" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached13, /area/desert_dam/exterior/valley/valley_northwest) "beY" = ( -/turf/open/floor{ - dir = 8; - icon_state = "carpet5-1" - }, +/turf/open/floor/carpet5_1/west, /area/desert_dam/building/administration/overseer_office) "beZ" = ( /obj/structure/platform{ @@ -18522,21 +14299,14 @@ /turf/open/gm/river/desert/shallow_edge, /area/desert_dam/exterior/river/riverside_east) "bfa" = ( -/turf/open/floor{ - dir = 8; - icon_state = "carpet9-4" - }, +/turf/open/floor/carpet9_4/west, /area/desert_dam/building/administration/overseer_office) "bfb" = ( /obj/structure/surface/table, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/desert_dam/building/administration/meetingrooom) "bfc" = ( -/turf/open/floor/carpet/edge{ - dir = 10 - }, +/turf/open/floor/carpet/edge/southwest, /area/desert_dam/building/administration/meetingrooom) "bfd" = ( /turf/open/floor/carpet/edge, @@ -18553,10 +14323,7 @@ network = list("chigusa_1") }, /obj/structure/surface/table, -/turf/open/floor{ - dir = 9; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/northwest, /area/desert_dam/building/administration/lobby) "bfg" = ( /obj/structure/prop/dam/large_boulder{ @@ -18565,27 +14332,19 @@ /turf/open/desert/dirt, /area/desert_dam/exterior/valley/valley_northwest) "bfh" = ( -/turf/open/desert/dirt{ - dir = 9; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/northwest, /area/desert_dam/interior/caves/central_caves) "bfi" = ( -/turf/open/desert/dirt{ - dir = 8; - icon_state = "desert_transition_corner1" - }, +/turf/open/desert/dirt/desert_transition_corner1/west, /area/desert_dam/interior/caves/central_caves) "bfj" = ( /obj/effect/decal/sand_overlay/sand2{ dir = 8 }, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/desert_dam/interior/dam_interior/north_tunnel) "bfk" = ( -/obj/item/handcuffs, +/obj/item/restraint/handcuffs, /obj/item/weapon/baton, /obj/structure/surface/table/woodentable/fancy, /turf/open/floor/interior/wood/alt, @@ -18595,10 +14354,7 @@ dir = 2; name = "\improper East Filtration" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/water_treatment_two/hallway) "bfm" = ( /turf/closed/wall/hangar{ @@ -18620,9 +14376,7 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 8 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached13" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached13, /area/desert_dam/exterior/landing_pad_one) "bfp" = ( /obj/structure/flora/grass/desert/heavygrass_9, @@ -18635,10 +14389,7 @@ "bfr" = ( /obj/effect/decal/cleanable/blood, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/water_treatment_two/hallway) "bfs" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ @@ -18654,9 +14405,7 @@ /area/desert_dam/exterior/valley/valley_telecoms) "bfu" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached14" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached14, /area/desert_dam/exterior/valley/valley_telecoms) "bfw" = ( /obj/structure/machinery/photocopier, @@ -18687,18 +14436,14 @@ /obj/structure/platform{ dir = 8 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached3" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached3, /area/desert_dam/exterior/valley/valley_northwest) "bfC" = ( /obj/structure/stairs, /obj/structure/platform{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached1" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached1, /area/desert_dam/exterior/valley/valley_northwest) "bfD" = ( /obj/structure/filtration/machine_64x128{ @@ -18712,9 +14457,7 @@ /area/desert_dam/building/water_treatment_two/purification) "bfG" = ( /obj/structure/disposalpipe/segment, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached15" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached15, /area/desert_dam/exterior/valley/valley_telecoms) "bfH" = ( /obj/structure/prop/dam/large_boulder/boulder2, @@ -18724,9 +14467,7 @@ /obj/structure/platform{ dir = 8 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached3" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached3, /area/desert_dam/exterior/valley/valley_northwest) "bfK" = ( /obj/structure/platform_decoration{ @@ -18738,50 +14479,38 @@ /obj/structure/platform{ dir = 1 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached18" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached18, /area/desert_dam/exterior/valley/valley_northwest) "bfM" = ( /obj/structure/platform{ dir = 1 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached9" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached9, /area/desert_dam/exterior/valley/valley_northwest) "bfN" = ( /obj/structure/platform{ dir = 1 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_northwest) "bfO" = ( /obj/structure/platform_decoration{ dir = 4 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_northwest) "bfP" = ( /obj/structure/platform{ dir = 4 }, /obj/effect/blocker/toxic_water/Group_2, -/turf/open/desert/desert_shore/shore_corner2{ - dir = 8 - }, +/turf/open/desert/desert_shore/shore_corner2/west, /area/desert_dam/exterior/river/riverside_central_north) "bfQ" = ( /obj/structure/platform{ dir = 1 }, -/turf/open/desert/dirt{ - icon_state = "dirt2" - }, +/turf/open/desert/dirt/dirt2, /area/desert_dam/exterior/valley/north_valley_dam) "bfR" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ @@ -18789,10 +14518,7 @@ name = "\improper East Filtration" }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/water_treatment_two/hallway) "bfS" = ( /obj/effect/decal/cleanable/blood, @@ -18802,17 +14528,13 @@ /obj/effect/decal/sand_overlay/sand2{ dir = 8 }, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/desert_dam/interior/dam_interior/northeastern_tunnel) "bfU" = ( /obj/effect/decal/sand_overlay/sand2/corner2{ dir = 4 }, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/desert_dam/interior/dam_interior/northeastern_tunnel) "bfV" = ( /obj/structure/platform{ @@ -18821,9 +14543,7 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/desert_dam/interior/dam_interior/west_tunnel) "bfX" = ( /obj/effect/decal/cleanable/dirt, @@ -18857,26 +14577,19 @@ /area/desert_dam/building/water_treatment_one/breakroom) "bge" = ( /obj/structure/prop/dam/boulder/boulder2, -/turf/open/desert/dirt{ - dir = 5; - icon_state = "desert_transition_edge1" - }, -/area/desert_dam/exterior/valley/valley_northwest) +/turf/open/desert/dirt/desert_transition_edge1/northeast, +/area/desert_dam/exterior/landing_pad_one) "bgf" = ( /obj/structure/platform_decoration{ dir = 8 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached3" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached3, /area/desert_dam/exterior/valley/valley_northwest) "bgg" = ( /obj/structure/platform{ dir = 1 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached4" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached4, /area/desert_dam/exterior/valley/valley_northwest) "bgh" = ( /obj/structure/platform_decoration{ @@ -18888,14 +14601,10 @@ /obj/structure/platform{ dir = 8 }, -/turf/open/desert/dirt{ - icon_state = "dirt2" - }, +/turf/open/desert/dirt/dirt2, /area/desert_dam/exterior/valley/north_valley_dam) "bgj" = ( -/turf/open/desert/dirt{ - icon_state = "dirt2" - }, +/turf/open/desert/dirt/dirt2, /area/desert_dam/exterior/valley/north_valley_dam) "bgk" = ( /obj/structure/curtain/open/shower, @@ -18924,9 +14633,7 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 4 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/north_valley_dam) "bgq" = ( /obj/structure/machinery/shower{ @@ -18936,9 +14643,7 @@ /turf/open/floor/plating, /area/desert_dam/building/water_treatment_one/equipment) "bgr" = ( -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/desert_dam/exterior/valley/valley_wilderness) "bgs" = ( /obj/structure/machinery/door/airlock/almayer/generic{ @@ -18953,56 +14658,39 @@ name = "\improper Treatment Hallway" }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/water_treatment_two/hallway) "bgu" = ( /obj/effect/blocker/toxic_water, /obj/structure/filtration/coagulation{ icon_state = "2,7" }, -/turf/open/gm/river/desert/shallow{ - icon = 'icons/turf/floors/desert_water_toxic.dmi' - }, +/turf/open/gm/river/desert/shallow/toxic, /area/desert_dam/exterior/river/filtration_a) "bgx" = ( -/turf/open/desert/rock/deep/transition{ - dir = 4 - }, +/turf/open/desert/rock/deep/transition/east, /area/desert_dam/interior/dam_interior/south_tunnel) "bgy" = ( /obj/effect/blocker/toxic_water, /obj/structure/filtration/coagulation{ icon_state = "3,7" }, -/turf/open/gm/river/desert/shallow{ - icon = 'icons/turf/floors/desert_water_toxic.dmi' - }, +/turf/open/gm/river/desert/shallow/toxic, /area/desert_dam/exterior/river/filtration_a) "bgz" = ( /turf/open/floor/interior/wood/alt, /area/desert_dam/building/security/courtroom) "bgA" = ( -/turf/open/desert/dirt{ - dir = 4; - icon_state = "desert_transition_corner1" - }, +/turf/open/desert/dirt/desert_transition_corner1/east, /area/desert_dam/exterior/valley/north_valley_dam) "bgC" = ( /obj/structure/disposalpipe/segment, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/desert_dam/exterior/valley/valley_wilderness) "bgD" = ( /obj/structure/surface/rack, /obj/item/weapon/gun/energy/taser, -/turf/open/floor/prison{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/prison/red/west, /area/desert_dam/building/water_treatment_two/lobby) "bgE" = ( /obj/effect/decal/cleanable/dirt, @@ -19015,9 +14703,7 @@ /turf/open/floor/prison, /area/desert_dam/building/water_treatment_two/purification) "bgH" = ( -/turf/open/desert/rock/deep/transition{ - dir = 10 - }, +/turf/open/desert/rock/deep/transition/southwest, /area/desert_dam/exterior/valley/valley_wilderness) "bgI" = ( /obj/structure/surface/table, @@ -19027,16 +14713,12 @@ /area/desert_dam/building/water_treatment_two/control_room) "bgJ" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/desert_dam/building/water_treatment_two/equipment) "bgL" = ( /obj/effect/decal/cleanable/blood, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/desert_dam/building/water_treatment_two/equipment) "bgM" = ( /obj/structure/machinery/light{ @@ -19046,9 +14728,7 @@ dir = 4; pixel_x = 11 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/desert_dam/building/water_treatment_two/equipment) "bgN" = ( /obj/effect/decal/warning_stripes{ @@ -19061,39 +14741,24 @@ /area/desert_dam/exterior/landing_pad_one) "bgO" = ( /obj/structure/prop/dam/wide_boulder/boulder1, -/turf/open/desert/dirt{ - dir = 10; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/southwest, /area/desert_dam/exterior/valley/north_valley_dam) "bgP" = ( -/turf/open/desert/dirt{ - dir = 10; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/southwest, /area/desert_dam/exterior/valley/north_valley_dam) "bgQ" = ( -/turf/open/desert/dirt{ - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1, /area/desert_dam/exterior/valley/north_valley_dam) "bgR" = ( -/turf/open/desert/dirt{ - dir = 4; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/east, /area/desert_dam/exterior/valley/north_valley_dam) "bgT" = ( /obj/structure/platform, -/turf/open/desert/dirt{ - icon_state = "dirt2" - }, +/turf/open/desert/dirt/dirt2, /area/desert_dam/exterior/valley/north_valley_dam) "bgU" = ( /obj/structure/platform, -/turf/open/desert/dirt{ - icon_state = "dirt2" - }, +/turf/open/desert/dirt/dirt2, /area/desert_dam/exterior/river/riverside_central_north) "bgV" = ( /obj/structure/machinery/power/apc{ @@ -19104,10 +14769,7 @@ /turf/open/floor/prison, /area/desert_dam/building/water_treatment_two/control_room) "bgW" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/water_treatment_two/control_room) "bgZ" = ( /obj/structure/surface/rack, @@ -19123,10 +14785,7 @@ "bhb" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/water_treatment_two/equipment) "bhc" = ( /obj/structure/platform, @@ -19137,53 +14796,38 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached17" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached17, /area/desert_dam/exterior/landing_pad_one) "bhf" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached19" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached19, /area/desert_dam/exterior/landing_pad_one) "bhg" = ( /obj/effect/decal/warning_stripes{ icon_state = "E" }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached16" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached16, /area/desert_dam/exterior/landing_pad_one) "bhh" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 8 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached15" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached15, /area/desert_dam/exterior/landing_pad_one) "bhi" = ( /turf/open/desert/dirt, /area/desert_dam/exterior/valley/north_valley_dam) "bhj" = ( -/turf/open/desert/dirt{ - dir = 6; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/southeast, /area/desert_dam/exterior/valley/north_valley_dam) "bhk" = ( -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/north_valley_dam) "bhl" = ( /obj/structure/machinery/colony_floodlight, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/north_valley_dam) "bhn" = ( /obj/structure/machinery/power/apc{ @@ -19196,14 +14840,16 @@ pixel_x = 11 }, /obj/effect/decal/cleanable/blood, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/desert_dam/building/water_treatment_two/equipment) "bho" = ( /obj/structure/surface/table, /turf/open/floor/prison, /area/desert_dam/building/water_treatment_two/control_room) +"bhp" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/asphalt, +/area/desert_dam/exterior/landing_pad_two) "bhq" = ( /turf/open/floor/prison, /area/desert_dam/building/water_treatment_two/control_room) @@ -19218,10 +14864,7 @@ name = "Security Cameras - Habitation"; network = list("chigusa_2") }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/prison/red/east, /area/desert_dam/building/water_treatment_two/lobby) "bht" = ( /turf/closed/wall/r_wall/bunker{ @@ -19237,15 +14880,11 @@ /obj/structure/machinery/landinglight/ds1/delaytwo{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached1" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached1, /area/desert_dam/exterior/landing_pad_one) "bhw" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached15" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached15, /area/desert_dam/exterior/valley/valley_crashsite) "bhx" = ( /obj/structure/bed/chair{ @@ -19255,65 +14894,43 @@ /area/desert_dam/building/security/office) "bhy" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/hanger) "bhz" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/hanger) "bhA" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/desert_dam/interior/dam_interior/hanger) "bhC" = ( /obj/structure/platform{ dir = 8 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached17" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached17, /area/desert_dam/exterior/valley/valley_northwest) "bhD" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 1 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached4" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached4, /area/desert_dam/exterior/valley/north_valley_dam) "bhE" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 1 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached4" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached4, /area/desert_dam/exterior/valley/north_valley_dam) "bhF" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached4" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached4, /area/desert_dam/exterior/valley/north_valley_dam) "bhG" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached9" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached9, /area/desert_dam/exterior/valley/north_valley_dam) "bhH" = ( -/turf/open/desert/dirt{ - dir = 1; - icon_state = "desert_transition_corner1" - }, +/turf/open/desert/dirt/desert_transition_corner1/north, /area/desert_dam/exterior/valley/north_valley_dam) "bhI" = ( /obj/structure/machinery/power/apc{ @@ -19324,108 +14941,72 @@ /turf/open/floor/prison, /area/desert_dam/building/water_treatment_two/lobby) "bhL" = ( -/turf/open/floor/plating{ - dir = 10; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/southwest, /area/desert_dam/building/substation/northwest) "bhM" = ( /obj/structure/platform{ dir = 8 }, -/turf/open/desert/rock/deep/transition{ - dir = 1 - }, +/turf/open/desert/rock/deep/transition/north, /area/desert_dam/interior/dam_interior/south_tunnel) "bhN" = ( /obj/structure/largecrate/random/barrel/blue, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/dam_interior/hanger) "bhO" = ( /obj/effect/decal/warning_stripes{ icon_state = "E" }, /obj/item/tool/warning_cone, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/east, /area/desert_dam/interior/dam_interior/hanger) "bhP" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/desert_dam/interior/dam_interior/hanger) "bhQ" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/west, /area/desert_dam/interior/dam_interior/hanger) "bhR" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/east, /area/desert_dam/interior/dam_interior/hanger) "bhS" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" }, /obj/item/tool/warning_cone, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/west, /area/desert_dam/interior/dam_interior/hanger) "bhT" = ( -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/dam_interior/hanger) "bhV" = ( /obj/effect/decal/sand_overlay/sand1/corner1, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached19" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached19, /area/desert_dam/exterior/valley/valley_northwest) "bhW" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 8 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached4" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached4, /area/desert_dam/exterior/valley/valley_northwest) "bhX" = ( /obj/effect/decal/sand_overlay/sand1/corner1, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached4" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached4, /area/desert_dam/exterior/valley/valley_northwest) "bhY" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 8 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached9" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached9, /area/desert_dam/exterior/valley/valley_northwest) "bhZ" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached12" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached12, /area/desert_dam/exterior/valley/north_valley_dam) "bia" = ( /turf/open/asphalt/cement_sunbleached, /area/desert_dam/exterior/valley/north_valley_dam) "bib" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached1" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached1, /area/desert_dam/exterior/valley/north_valley_dam) "bic" = ( /obj/structure/stairs{ @@ -19434,25 +15015,19 @@ /obj/structure/platform{ dir = 1 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/bar_valley_dam) "bie" = ( /obj/structure/platform{ dir = 4 }, -/turf/open/desert/dirt{ - icon_state = "dirt2" - }, +/turf/open/desert/dirt/dirt2, /area/desert_dam/exterior/valley/north_valley_dam) "bif" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 8 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/north_valley_dam) "big" = ( /obj/structure/bed/chair, @@ -19460,54 +15035,37 @@ /area/desert_dam/building/water_treatment_two/lobby) "bih" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/water_treatment_two/lobby) "bii" = ( /obj/structure/platform, /obj/structure/platform{ dir = 4 }, -/turf/open/desert/dirt{ - icon_state = "dirt2" - }, +/turf/open/desert/dirt/dirt2, /area/desert_dam/exterior/river/riverside_east) "bij" = ( -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/desert_dam/exterior/valley/valley_wilderness) "bik" = ( /obj/structure/largecrate/random/barrel/white, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/dam_interior/hanger) "bil" = ( /obj/effect/decal/warning_stripes{ icon_state = "E" }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/east, /area/desert_dam/interior/dam_interior/hanger) "bim" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/west, /area/desert_dam/interior/dam_interior/hanger) "bin" = ( /obj/structure/largecrate/random/case/double, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/dam_interior/hanger) "bio" = ( /obj/structure/desertdam/decals/road_stop{ @@ -19518,17 +15076,13 @@ /area/desert_dam/exterior/valley/valley_northwest) "bip" = ( /obj/effect/decal/sand_overlay/sand1/corner1, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached3" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached3, /area/desert_dam/exterior/valley/valley_northwest) "biq" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 6 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached15" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached15, /area/desert_dam/exterior/valley/valley_northwest) "bir" = ( /obj/structure/desertdam/decals/road_edge{ @@ -19543,18 +15097,14 @@ /turf/open/asphalt, /area/desert_dam/exterior/valley/north_valley_dam) "bit" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached3" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached3, /area/desert_dam/exterior/valley/north_valley_dam) "biu" = ( /obj/structure/stairs{ dir = 4 }, /obj/structure/platform, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/bar_valley_dam) "biw" = ( /obj/structure/machinery/colony_floodlight, @@ -19581,29 +15131,20 @@ dir = 8 }, /obj/item/evidencebag, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/desert_dam/building/security/lobby) "biC" = ( /obj/structure/machinery/disposal, /turf/open/floor/prison, /area/desert_dam/building/water_treatment_two/lobby) "biD" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkbrown3" - }, +/turf/open/floor/prison/darkbrown3/east, /area/desert_dam/interior/dam_interior/hanger) "biE" = ( /obj/structure/shuttle/diagonal{ icon_state = "swall_f6" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/desert_dam/interior/dam_interior/hanger) "biF" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -19613,23 +15154,14 @@ /obj/structure/shuttle/diagonal{ icon_state = "swall_f10" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/desert_dam/interior/dam_interior/hanger) "biH" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkbrown3" - }, +/turf/open/floor/prison/darkbrown3/west, /area/desert_dam/interior/dam_interior/hanger) "biI" = ( /obj/effect/landmark/survivor_spawner, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/hanger) "biJ" = ( /obj/structure/disposalpipe/segment{ @@ -19688,23 +15220,16 @@ /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 4 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/north_valley_dam) "biT" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 1 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached2" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached2, /area/desert_dam/exterior/valley/north_valley_dam) "biV" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/desert_dam/building/security/lobby) "biW" = ( /obj/structure/window/framed/hangar/reinforced, @@ -19714,54 +15239,22 @@ /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper Treatment Controlroom" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/water_treatment_two/control_room) "biY" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/prison/red/west, /area/desert_dam/building/water_treatment_two/lobby) "biZ" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10 - }, -/area/desert_dam/interior/dam_interior/hanger) -"bja" = ( -/obj/structure/shuttle/diagonal{ - icon_state = "swall_f9" - }, -/turf/open/shuttle{ - icon_state = "floor6" - }, -/area/desert_dam/interior/dam_interior/hanger) -"bjb" = ( -/obj/structure/computerframe, -/turf/open/shuttle{ - icon_state = "floor6" - }, -/area/desert_dam/interior/dam_interior/hanger) -"bjc" = ( -/obj/structure/shuttle/diagonal{ - icon_state = "swall_f5" - }, -/turf/open/shuttle{ - icon_state = "floor6" - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/dam_interior/hanger) "bjd" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/dam_interior/hanger) "bje" = ( /obj/effect/decal/warning_stripes{ @@ -19783,10 +15276,7 @@ /obj/structure/bed/chair/office/dark{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/desert_dam/building/security/lobby) "bjj" = ( /obj/structure/surface/table/reinforced, @@ -19796,32 +15286,16 @@ }, /obj/item/paper_bin, /obj/item/tool/pen/blue, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/desert_dam/building/security/lobby) "bjk" = ( /turf/closed/shuttle{ icon_state = "swall3" }, /area/desert_dam/interior/dam_interior/hanger) -"bjl" = ( -/obj/structure/machinery/light, -/turf/open/shuttle{ - icon_state = "floor6" - }, -/area/desert_dam/interior/dam_interior/hanger) -"bjm" = ( -/turf/open/shuttle{ - icon_state = "floor6" - }, -/area/desert_dam/interior/dam_interior/hanger) "bjn" = ( /obj/structure/machinery/light, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/dam_interior/hanger) "bjo" = ( /obj/structure/desertdam/decals/road_edge{ @@ -19853,23 +15327,17 @@ /obj/structure/platform{ dir = 8 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached14" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached14, /area/desert_dam/exterior/valley/north_valley_dam) "bjt" = ( /obj/structure/stairs, /obj/structure/platform{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached15" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached15, /area/desert_dam/exterior/valley/north_valley_dam) "bju" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached15" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached15, /area/desert_dam/exterior/valley/north_valley_dam) "bjv" = ( /obj/effect/decal/cleanable/blood, @@ -19880,10 +15348,7 @@ /obj/structure/bed/chair/office/light{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/prison/red/east, /area/desert_dam/building/water_treatment_two/lobby) "bjy" = ( /turf/closed/shuttle{ @@ -19895,12 +15360,6 @@ icon_state = "swall8" }, /area/desert_dam/interior/dam_interior/hanger) -"bjA" = ( -/obj/structure/machinery/door/unpowered/shuttle, -/turf/open/shuttle{ - icon_state = "floor6" - }, -/area/desert_dam/interior/dam_interior/hanger) "bjB" = ( /turf/closed/shuttle{ icon_state = "swall4" @@ -19913,17 +15372,13 @@ /area/desert_dam/interior/dam_interior/hanger) "bjE" = ( /obj/effect/decal/sand_overlay/sand1, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached18" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached18, /area/desert_dam/exterior/valley/north_valley_dam) "bjF" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 8 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached4" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached4, /area/desert_dam/exterior/valley/north_valley_dam) "bjG" = ( /obj/structure/desertdam/decals/road_edge, @@ -19932,10 +15387,7 @@ "bjH" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/security/lobby) "bjI" = ( /obj/structure/bed/chair{ @@ -19947,17 +15399,13 @@ /obj/structure/platform_decoration{ dir = 4 }, -/turf/open/desert/dirt{ - icon_state = "dirt2" - }, +/turf/open/desert/dirt/dirt2, /area/desert_dam/exterior/valley/north_valley_dam) "bjK" = ( /obj/structure/platform_decoration{ dir = 8 }, -/turf/open/desert/dirt{ - icon_state = "dirt2" - }, +/turf/open/desert/dirt/dirt2, /area/desert_dam/exterior/valley/north_valley_dam) "bjL" = ( /obj/structure/platform{ @@ -19966,14 +15414,10 @@ /obj/structure/platform{ dir = 4 }, -/turf/open/desert/dirt{ - icon_state = "dirt2" - }, +/turf/open/desert/dirt/dirt2, /area/desert_dam/exterior/valley/north_valley_dam) "bjM" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached13" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached13, /area/desert_dam/exterior/valley/north_valley_dam) "bjN" = ( /obj/structure/desertdam/decals/road_edge{ @@ -20001,16 +15445,12 @@ /obj/item/tool/pen/blue{ pixel_x = -6 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/desert_dam/building/water_treatment_two/lobby) "bjQ" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_crashsite) "bjR" = ( /obj/structure/bed/chair{ @@ -20028,55 +15468,22 @@ /turf/open/desert/dirt, /area/desert_dam/exterior/valley/valley_mining) "bjZ" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/water_treatment_two/lobby) "bka" = ( /turf/open/floor/prison, /area/desert_dam/building/water_treatment_two/lobby) "bkb" = ( -/turf/open/desert/dirt{ - dir = 4; - icon_state = "desert_transition_corner1" - }, +/turf/open/desert/dirt/desert_transition_corner1/east, /area/desert_dam/exterior/valley/valley_mining) "bkc" = ( /obj/structure/platform{ dir = 4 }, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/desert_dam/interior/dam_interior/central_tunnel) -"bkd" = ( -/obj/structure/machinery/light{ - dir = 8 - }, -/obj/structure/bed/chair{ - dir = 4 - }, -/turf/open/shuttle{ - icon_state = "floor6" - }, -/area/desert_dam/interior/dam_interior/hanger) -"bke" = ( -/obj/structure/machinery/light{ - dir = 4 - }, -/obj/structure/bed/chair{ - dir = 8 - }, -/turf/open/shuttle{ - icon_state = "floor6" - }, -/area/desert_dam/interior/dam_interior/hanger) "bkf" = ( -/turf/open/desert/dirt{ - dir = 5; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/northeast, /area/desert_dam/exterior/valley/north_valley_dam) "bkg" = ( /obj/structure/prop/dam/boulder/boulder2, @@ -20086,9 +15493,7 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached3" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached3, /area/desert_dam/exterior/valley/north_valley_dam) "bki" = ( /obj/effect/decal/warning_stripes{ @@ -20109,55 +15514,25 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/prison/red/west, /area/desert_dam/building/water_treatment_two/lobby) "bkm" = ( -/turf/open/desert/dirt{ - dir = 8; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/west, /area/desert_dam/exterior/valley/valley_mining) "bkn" = ( /turf/closed/shuttle{ icon_state = "swall0" }, /area/desert_dam/interior/dam_interior/hanger) -"bko" = ( -/obj/structure/bed/chair{ - dir = 4 - }, -/turf/open/shuttle{ - icon_state = "floor6" - }, -/area/desert_dam/interior/dam_interior/hanger) -"bkp" = ( -/obj/structure/bed/chair{ - dir = 8 - }, -/turf/open/shuttle{ - icon_state = "floor6" - }, -/area/desert_dam/interior/dam_interior/hanger) "bkt" = ( -/turf/open/desert/dirt{ - dir = 8; - icon_state = "desert_transition_corner1" - }, +/turf/open/desert/dirt/desert_transition_corner1/west, /area/desert_dam/exterior/valley/north_valley_dam) "bku" = ( /obj/structure/prop/dam/boulder/boulder1, -/turf/open/desert/dirt{ - icon_state = "desert_transition_corner1" - }, +/turf/open/desert/dirt/desert_transition_corner1, /area/desert_dam/exterior/valley/north_valley_dam) "bkv" = ( -/turf/open/desert/dirt{ - dir = 1; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/north, /area/desert_dam/exterior/valley/north_valley_dam) "bkw" = ( /obj/structure/flora/bush/desert/cactus, @@ -20177,17 +15552,11 @@ /area/desert_dam/interior/dam_interior/west_tunnel) "bkC" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/prison/red/east, /area/desert_dam/building/water_treatment_two/lobby) "bkD" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/water_treatment_two/lobby) "bkE" = ( /obj/effect/decal/warning_stripes{ @@ -20226,46 +15595,30 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "grimy" - }, +/turf/open/floor/grimy, /area/desert_dam/building/bar/bar) "bkM" = ( /obj/structure/surface/table, /obj/item/tool/stamp, -/turf/open/floor/prison{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/prison/red/southwest, /area/desert_dam/building/water_treatment_two/lobby) "bkN" = ( /obj/structure/machinery/vending/security, -/turf/open/floor/prison{ - icon_state = "red" - }, +/turf/open/floor/prison/red, /area/desert_dam/building/water_treatment_two/lobby) "bkO" = ( /obj/structure/filingcabinet, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/prison/red/southeast, /area/desert_dam/building/water_treatment_two/lobby) "bkP" = ( -/turf/open/desert/dirt{ - dir = 9; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/northwest, /area/desert_dam/exterior/valley/valley_mining) "bkR" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkbrown3" - }, +/turf/open/floor/prison/darkbrown3/east, /area/desert_dam/interior/dam_interior/hanger) "bkS" = ( /obj/structure/shuttle/engine/heater, @@ -20277,10 +15630,7 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkbrown3" - }, +/turf/open/floor/prison/darkbrown3/west, /area/desert_dam/interior/dam_interior/hanger) "bkU" = ( /turf/closed/wall/r_wall/bunker{ @@ -20290,9 +15640,7 @@ "bkV" = ( /obj/effect/decal/cleanable/blood, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/administration/control_room) "bkW" = ( /turf/open/asphalt, @@ -20304,20 +15652,13 @@ /turf/open/asphalt, /area/desert_dam/interior/dam_interior/north_tunnel_entrance) "bkY" = ( -/turf/open/desert/dirt{ - icon_state = "rock1" - }, +/turf/open/desert/dirt/rock1, /area/desert_dam/exterior/valley/north_valley_dam) "bkZ" = ( -/turf/open/desert/dirt{ - icon_state = "desert_transition_corner1" - }, +/turf/open/desert/dirt/desert_transition_corner1, /area/desert_dam/exterior/valley/north_valley_dam) "bla" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/prison/red/west, /area/desert_dam/building/security/lobby) "blb" = ( /obj/structure/machinery/power/apc{ @@ -20325,24 +15666,16 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkbrowncorners2" - }, +/turf/open/floor/prison/darkbrowncorners2/east, /area/desert_dam/building/mining/workshop_foyer) "blc" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/mining/workshop_foyer) "bld" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/desert_dam/building/security/observation) "ble" = ( /obj/structure/cargo_container/hd/left, @@ -20357,9 +15690,7 @@ dir = 4 }, /obj/structure/platform, -/turf/open/desert/dirt{ - icon_state = "dirt2" - }, +/turf/open/desert/dirt/dirt2, /area/desert_dam/exterior/valley/north_valley_dam) "blh" = ( /obj/structure/desertdam/decals/road_edge{ @@ -20383,10 +15714,7 @@ /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper Treatment Lobby" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/water_treatment_two/lobby) "bln" = ( /obj/structure/cargo_container/hd/mid, @@ -20397,42 +15725,31 @@ /obj/structure/filtration/coagulation{ icon_state = "6,7" }, -/turf/open/gm/river/desert/shallow{ - icon = 'icons/turf/floors/desert_water_toxic.dmi' - }, +/turf/open/gm/river/desert/shallow/toxic, /area/desert_dam/exterior/river/filtration_a) "blq" = ( /obj/effect/blocker/toxic_water, /obj/structure/filtration/coagulation{ icon_state = "2,7" }, -/turf/open/gm/river/desert/deep{ - icon = 'icons/turf/floors/desert_water_toxic.dmi' - }, +/turf/open/gm/river/desert/deep/toxic, /area/desert_dam/exterior/river/filtration_a) "blr" = ( /obj/effect/blocker/toxic_water, /obj/structure/filtration/coagulation{ icon_state = "3,7" }, -/turf/open/gm/river/desert/deep{ - icon = 'icons/turf/floors/desert_water_toxic.dmi' - }, +/turf/open/gm/river/desert/deep/toxic, /area/desert_dam/exterior/river/filtration_a) "blt" = ( -/turf/open/desert/dirt{ - dir = 10; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/southwest, /area/desert_dam/exterior/valley/valley_mining) "blv" = ( /obj/effect/blocker/toxic_water, /obj/structure/filtration/coagulation{ icon_state = "6,7" }, -/turf/open/gm/river/desert/deep{ - icon = 'icons/turf/floors/desert_water_toxic.dmi' - }, +/turf/open/gm/river/desert/deep/toxic, /area/desert_dam/exterior/river/filtration_a) "blx" = ( /turf/closed/shuttle{ @@ -20454,10 +15771,7 @@ name = "Security Cameras - Operations"; network = list("chigusa_1") }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/north, /area/desert_dam/interior/dam_interior/north_tunnel_entrance) "blC" = ( /obj/structure/window/framed/bunker/reinforced, @@ -20467,9 +15781,7 @@ /obj/structure/machinery/landinglight/ds1/delaytwo{ dir = 8 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached3" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached3, /area/desert_dam/exterior/landing_pad_one) "blE" = ( /obj/structure/desertdam/decals/road_edge, @@ -20491,9 +15803,7 @@ /obj/effect/decal/sand_overlay/sand2/corner2{ dir = 1 }, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/desert_dam/interior/dam_interior/north_tunnel) "blI" = ( /turf/open/desert/rock/deep, @@ -20502,9 +15812,7 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 9 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached2" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached2, /area/desert_dam/exterior/valley/north_valley_dam) "blK" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ @@ -20513,14 +15821,10 @@ /turf/open/asphalt/cement_sunbleached, /area/desert_dam/exterior/valley/north_valley_dam) "blL" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached14" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached14, /area/desert_dam/exterior/valley/north_valley_dam) "blM" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached18" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached18, /area/desert_dam/exterior/valley/north_valley_dam) "blN" = ( /obj/effect/decal/warning_stripes{ @@ -20529,36 +15833,28 @@ /turf/open/asphalt, /area/desert_dam/exterior/valley/north_valley_dam) "blO" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached20" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached20, /area/desert_dam/exterior/valley/south_valley_dam) "blQ" = ( /obj/effect/blocker/toxic_water, /obj/structure/filtration/coagulation{ icon_state = "1,5" }, -/turf/open/gm/river/desert/shallow{ - icon = 'icons/turf/floors/desert_water_toxic.dmi' - }, +/turf/open/gm/river/desert/shallow/toxic, /area/desert_dam/exterior/river/filtration_a) "blR" = ( /obj/effect/blocker/toxic_water, /obj/structure/filtration/coagulation{ icon_state = "6,6" }, -/turf/open/gm/river/desert/shallow{ - icon = 'icons/turf/floors/desert_water_toxic.dmi' - }, +/turf/open/gm/river/desert/shallow/toxic, /area/desert_dam/exterior/river/filtration_a) "blS" = ( /obj/effect/blocker/toxic_water, /obj/structure/filtration/coagulation{ icon_state = "7,6" }, -/turf/open/gm/river/desert/shallow{ - icon = 'icons/turf/floors/desert_water_toxic.dmi' - }, +/turf/open/gm/river/desert/shallow/toxic, /area/desert_dam/exterior/river/filtration_a) "blT" = ( /obj/structure/disposalpipe/segment{ @@ -20571,18 +15867,14 @@ /obj/structure/filtration/coagulation{ icon_state = "1,5" }, -/turf/open/gm/river/desert/deep{ - icon = 'icons/turf/floors/desert_water_toxic.dmi' - }, +/turf/open/gm/river/desert/deep/toxic, /area/desert_dam/exterior/river/filtration_a) "blV" = ( /obj/effect/blocker/toxic_water, /obj/structure/filtration/coagulation{ icon_state = "6,6" }, -/turf/open/gm/river/desert/deep{ - icon = 'icons/turf/floors/desert_water_toxic.dmi' - }, +/turf/open/gm/river/desert/deep/toxic, /area/desert_dam/exterior/river/filtration_a) "blW" = ( /obj/structure/surface/table/reinforced, @@ -20591,10 +15883,7 @@ }, /obj/structure/machinery/light, /obj/item/trash/kepler, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/desert_dam/building/security/lobby) "blX" = ( /obj/structure/surface/table/reinforced, @@ -20604,16 +15893,10 @@ }, /obj/structure/machinery/light, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/desert_dam/building/security/lobby) "blY" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/prison/red/east, /area/desert_dam/building/security/lobby) "blZ" = ( /turf/closed/wall/r_wall/bunker{ @@ -20623,24 +15906,16 @@ "bma" = ( /obj/structure/closet/secure_closet/security, /obj/effect/landmark/objective_landmark/far, -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/northwest, /area/desert_dam/interior/dam_interior/north_tunnel_entrance) "bmb" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkredcorners2" - }, +/turf/open/floor/prison/darkredcorners2/east, /area/desert_dam/interior/dam_interior/north_tunnel_entrance) "bmc" = ( /obj/structure/bed/chair/office/light{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/dam_interior/north_tunnel_entrance) "bmd" = ( /obj/structure/surface/table/reinforced, @@ -20655,23 +15930,17 @@ name = "Security Desk" }, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/dam_interior/north_tunnel_entrance) "bme" = ( /obj/effect/blocker/toxic_water, /obj/structure/filtration/coagulation{ icon_state = "7,6" }, -/turf/open/gm/river/desert/deep{ - icon = 'icons/turf/floors/desert_water_toxic.dmi' - }, +/turf/open/gm/river/desert/deep/toxic, /area/desert_dam/exterior/river/filtration_a) "bmf" = ( -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/desert_dam/interior/dam_interior/north_tunnel) "bmg" = ( /obj/structure/desertdam/decals/road_edge{ @@ -20690,18 +15959,14 @@ /obj/structure/filtration/coagulation{ icon_state = "1,2" }, -/turf/open/gm/river/desert/shallow{ - icon = 'icons/turf/floors/desert_water_toxic.dmi' - }, +/turf/open/gm/river/desert/shallow/toxic, /area/desert_dam/exterior/river/filtration_a) "bmj" = ( /obj/effect/blocker/toxic_water, /obj/structure/filtration/coagulation{ icon_state = "7,2" }, -/turf/open/gm/river/desert/shallow{ - icon = 'icons/turf/floors/desert_water_toxic.dmi' - }, +/turf/open/gm/river/desert/shallow/toxic, /area/desert_dam/exterior/river/filtration_a) "bmk" = ( /obj/structure/bed/chair{ @@ -20712,29 +15977,19 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/desert_dam/building/security/observation) "bml" = ( /obj/structure/surface/table, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/desert_dam/building/security/observation) "bmm" = ( /obj/structure/dispenser, -/turf/open/floor/prison{ - dir = 9; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/northwest, /area/desert_dam/interior/dam_interior/tech_storage) "bmn" = ( /obj/structure/dispenser, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/north, /area/desert_dam/interior/dam_interior/tech_storage) "bmo" = ( /obj/structure/safe, @@ -20743,10 +15998,7 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/north, /area/desert_dam/interior/dam_interior/tech_storage) "bmp" = ( /obj/structure/surface/rack, @@ -20756,56 +16008,39 @@ /obj/item/stack/sheet/plasteel{ amount = 15 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/north, /area/desert_dam/interior/dam_interior/tech_storage) "bmq" = ( /obj/structure/surface/rack, /obj/item/stack/sheet/plasteel{ amount = 15 }, -/turf/open/floor/prison{ - dir = 5; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/northeast, /area/desert_dam/interior/dam_interior/tech_storage) "bmr" = ( /obj/structure/surface/rack, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/west, /area/desert_dam/interior/dam_interior/north_tunnel_entrance) "bms" = ( -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/dam_interior/north_tunnel_entrance) "bmu" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 9 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/north_valley_dam) "bmv" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 1 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/north_valley_dam) "bmw" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 1 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached3" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached3, /area/desert_dam/exterior/valley/north_valley_dam) "bmx" = ( /obj/structure/window/framed/prison/reinforced, @@ -20815,19 +16050,14 @@ /obj/effect/decal/sand_overlay/sand2{ dir = 8 }, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/desert_dam/interior/dam_interior/western_dam_cave) "bmz" = ( /obj/structure/cargo_container/hd/right, /turf/open/floor/plating, /area/desert_dam/exterior/valley/valley_crashsite) "bmA" = ( -/turf/open/floor/plating{ - dir = 8; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/west, /area/desert_dam/exterior/valley/valley_crashsite) "bmB" = ( /obj/structure/cargo_container/kelland/left, @@ -20835,9 +16065,7 @@ /area/desert_dam/exterior/valley/valley_crashsite) "bmC" = ( /obj/structure/flora/grass/desert/lightgrass_1, -/turf/open/desert/dirt{ - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1, /area/desert_dam/exterior/valley/valley_medical) "bmD" = ( /turf/closed/shuttle{ @@ -20846,101 +16074,70 @@ /area/desert_dam/interior/dam_interior/hanger) "bmE" = ( /obj/structure/machinery/cm_vending/sorted/tech/electronics_storage, -/turf/open/floor/prison{ - dir = 9; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/northwest, /area/desert_dam/interior/dam_interior/tech_storage) "bmF" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "bluecorner" - }, +/turf/open/floor/prison/bluecorner/east, /area/desert_dam/interior/dam_interior/tech_storage) "bmG" = ( -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/dam_interior/tech_storage) "bmI" = ( /obj/structure/machinery/cm_vending/sorted/tech/tool_storage, -/turf/open/floor/prison{ - dir = 5; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/northeast, /area/desert_dam/interior/dam_interior/tech_storage) "bmJ" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/desert_dam/interior/dam_interior/west_tunnel) "bmK" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 1 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/north_valley_dam) "bmL" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached2" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached2, /area/desert_dam/exterior/valley/north_valley_dam) "bmN" = ( /obj/effect/blocker/toxic_water, /obj/structure/filtration/coagulation{ icon_state = "1,2" }, -/turf/open/gm/river/desert/deep{ - icon = 'icons/turf/floors/desert_water_toxic.dmi' - }, +/turf/open/gm/river/desert/deep/toxic, /area/desert_dam/exterior/river/filtration_a) "bmQ" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrowncorners2" - }, +/turf/open/floor/prison/darkbrowncorners2/north, /area/desert_dam/building/mining/workshop_foyer) "bmR" = ( /obj/effect/blocker/toxic_water, /obj/structure/filtration/coagulation{ icon_state = "7,2" }, -/turf/open/gm/river/desert/deep{ - icon = 'icons/turf/floors/desert_water_toxic.dmi' - }, +/turf/open/gm/river/desert/deep/toxic, /area/desert_dam/exterior/river/filtration_a) "bmS" = ( /obj/effect/blocker/toxic_water, /obj/structure/filtration/coagulation{ icon_state = "2,1" }, -/turf/open/gm/river/desert/shallow{ - icon = 'icons/turf/floors/desert_water_toxic.dmi' - }, +/turf/open/gm/river/desert/shallow/toxic, /area/desert_dam/exterior/river/filtration_a) "bmT" = ( /obj/effect/blocker/toxic_water, /obj/structure/filtration/coagulation{ icon_state = "6,1" }, -/turf/open/gm/river/desert/shallow{ - icon = 'icons/turf/floors/desert_water_toxic.dmi' - }, +/turf/open/gm/river/desert/shallow/toxic, /area/desert_dam/exterior/river/filtration_a) "bmV" = ( /obj/structure/bed/chair, /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/desert_dam/building/security/interrogation) "bmW" = ( /obj/structure/machinery/power/apc{ @@ -20972,51 +16169,24 @@ /obj/structure/shuttle/diagonal{ icon_state = "swall_f5" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, -/area/desert_dam/interior/dam_interior/hanger) -"bnd" = ( -/obj/structure/shuttle/diagonal{ - icon_state = "swall_f10" - }, -/turf/open/shuttle{ - icon_state = "floor6" - }, -/area/desert_dam/interior/dam_interior/hanger) -"bne" = ( -/obj/structure/shuttle/diagonal{ - icon_state = "swall_f6" - }, -/turf/open/shuttle{ - icon_state = "floor6" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/desert_dam/interior/dam_interior/hanger) "bnf" = ( /obj/structure/shuttle/diagonal{ icon_state = "swall_f9" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/desert_dam/interior/dam_interior/hanger) "bng" = ( /obj/structure/cargo_container/kelland/left, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/dam_interior/hanger) "bnh" = ( /obj/structure/cargo_container/kelland/right, /obj/effect/decal/warning_stripes{ icon_state = "E" }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/east, /area/desert_dam/interior/dam_interior/hanger) "bni" = ( /turf/closed/wall/r_wall/bunker{ @@ -21025,35 +16195,23 @@ /area/desert_dam/interior/dam_interior/auxilary_tool_storage) "bnj" = ( /obj/structure/machinery/cm_vending/sorted/tech/comp_storage, -/turf/open/floor/prison{ - dir = 9; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/northwest, /area/desert_dam/interior/dam_interior/tech_storage) "bnl" = ( /obj/structure/surface/rack, /obj/item/circuitboard/computer/crew, -/turf/open/floor/prison{ - dir = 5; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/northeast, /area/desert_dam/interior/dam_interior/tech_storage) "bnm" = ( /obj/structure/filingcabinet, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/west, /area/desert_dam/interior/dam_interior/north_tunnel_entrance) "bnp" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/desert_dam/interior/dam_interior/north_tunnel_entrance) "bnr" = ( /obj/structure/desertdam/decals/road_edge{ @@ -21076,9 +16234,7 @@ /area/desert_dam/exterior/valley/north_valley_dam) "bnu" = ( /obj/effect/decal/sand_overlay/sand1/corner1, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/north_valley_dam) "bnv" = ( /obj/structure/flora/bush/desert/cactus{ @@ -21087,19 +16243,14 @@ /turf/open/desert/dirt, /area/desert_dam/exterior/valley/valley_telecoms) "bnw" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/north, /area/desert_dam/building/mining/workshop_foyer) "bnx" = ( /obj/effect/blocker/toxic_water, /obj/structure/filtration/coagulation{ icon_state = "2,1" }, -/turf/open/gm/river/desert/deep{ - icon = 'icons/turf/floors/desert_water_toxic.dmi' - }, +/turf/open/gm/river/desert/deep/toxic, /area/desert_dam/exterior/river/filtration_a) "bny" = ( /obj/structure/flora/grass/desert/lightgrass_8, @@ -21109,39 +16260,28 @@ /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 1 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached3" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached3, /area/desert_dam/exterior/valley/valley_telecoms) "bnA" = ( -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_mining) "bnB" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached1" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached1, /area/desert_dam/exterior/valley/valley_telecoms) "bnC" = ( /obj/structure/surface/table, /obj/item/ammo_magazine/shotgun/slugs, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_telecoms) "bnD" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ dir = 1; name = "\improper Security Office Space" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/security/office) "bnF" = ( /turf/closed/wall/r_wall/prison, @@ -21157,60 +16297,40 @@ /area/desert_dam/interior/dam_interior/hanger) "bnI" = ( /obj/structure/largecrate/random/secure, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkbrown3" - }, +/turf/open/floor/prison/darkbrown3/east, /area/desert_dam/interior/dam_interior/hanger) "bnJ" = ( /obj/effect/decal/warning_stripes{ icon_state = "E" }, /obj/structure/largecrate/random/case, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/east, /area/desert_dam/interior/dam_interior/hanger) "bnK" = ( /obj/effect/blocker/toxic_water, /obj/structure/filtration/coagulation{ icon_state = "6,1" }, -/turf/open/gm/river/desert/deep{ - icon = 'icons/turf/floors/desert_water_toxic.dmi' - }, +/turf/open/gm/river/desert/deep/toxic, /area/desert_dam/exterior/river/filtration_a) "bnL" = ( /obj/structure/surface/table, /obj/item/tool/lighter/zippo, /obj/item/tool/lighter/zippo, -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/northwest, /area/desert_dam/interior/dam_interior/auxilary_tool_storage) "bnM" = ( /obj/structure/surface/table, /obj/item/stack/sheet/metal, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/north, /area/desert_dam/interior/dam_interior/auxilary_tool_storage) "bnN" = ( /obj/structure/machinery/cm_vending/sorted/tech/electronics_storage, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/north, /area/desert_dam/interior/dam_interior/auxilary_tool_storage) "bnO" = ( /obj/structure/machinery/cm_vending/sorted/tech/tool_storage, -/turf/open/floor/prison{ - dir = 5; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/northeast, /area/desert_dam/interior/dam_interior/auxilary_tool_storage) "bnP" = ( /obj/structure/machinery/power/apc{ @@ -21218,17 +16338,11 @@ pixel_x = -30; start_charge = 0 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/west, /area/desert_dam/interior/dam_interior/tech_storage) "bnQ" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 1; - icon_state = "bluecorner" - }, +/turf/open/floor/prison/bluecorner/north, /area/desert_dam/building/administration/control_room) "bnT" = ( /obj/structure/surface/rack, @@ -21250,31 +16364,20 @@ /obj/item/circuitboard/airlock, /obj/item/circuitboard/airlock, /obj/item/circuitboard/airlock, -/turf/open/floor/prison{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/east, /area/desert_dam/interior/dam_interior/tech_storage) "bnX" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/west, /area/desert_dam/interior/dam_interior/north_tunnel_entrance) "bnZ" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/desert_dam/interior/dam_interior/north_tunnel_entrance) "bob" = ( /obj/structure/disposalpipe/segment{ dir = 4; icon_state = "pipe-c" }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached3" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached3, /area/desert_dam/exterior/valley/north_valley_dam) "boc" = ( /obj/structure/disposalpipe/segment{ @@ -21286,32 +16389,23 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached12" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached12, /area/desert_dam/exterior/valley/north_valley_dam) "boe" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached18" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached18, /area/desert_dam/exterior/valley/north_valley_dam) "bof" = ( /obj/structure/disposalpipe/segment{ dir = 8; icon_state = "pipe-c" }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached18" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached18, /area/desert_dam/exterior/valley/north_valley_dam) "bog" = ( -/turf/open/desert/dirt{ - dir = 8; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/west, /area/desert_dam/exterior/valley/south_valley_dam) "boh" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ @@ -21319,51 +16413,33 @@ }, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/security/northern_hallway) "bom" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/security/northern_hallway) "bop" = ( -/turf/open/floor/prison{ - dir = 5; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/northeast, /area/desert_dam/building/mining/workshop_foyer) "boq" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/desert_dam/building/security/staffroom) "bor" = ( /obj/structure/machinery/door/airlock/almayer/generic{ name = "\improper Showers" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/desert_dam/building/security/staffroom) "bos" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ dir = 1; name = "\improper Marshal Checkpoint" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/security/northern_hallway) "bot" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -21371,34 +16447,23 @@ /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper Marshal Office" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/security/northern_hallway) "bou" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/security/northern_hallway) "bov" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ dir = 1; name = "\improper Detectives Office" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/security/detective) "bow" = ( /obj/effect/decal/sand_overlay/sand2/corner2{ dir = 4 }, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/desert_dam/interior/dam_interior/western_dam_cave) "box" = ( /obj/structure/machinery/power/apc{ @@ -21406,9 +16471,7 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/desert_dam/building/security/interrogation) "boy" = ( /turf/closed/shuttle{ @@ -21419,29 +16482,18 @@ /obj/structure/surface/table, /obj/item/cell/high/empty, /obj/structure/machinery/cell_charger, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/west, /area/desert_dam/interior/dam_interior/auxilary_tool_storage) "boA" = ( -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/dam_interior/auxilary_tool_storage) "boB" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/east, /area/desert_dam/interior/dam_interior/auxilary_tool_storage) "boC" = ( /obj/structure/surface/table/reinforced, /obj/item/storage/box/trackimp, -/turf/open/floor/prison{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/west, /area/desert_dam/interior/dam_interior/tech_storage) "boD" = ( /obj/structure/disposalpipe/segment{ @@ -21453,9 +16505,7 @@ }, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/administration/control_room) "boF" = ( /obj/structure/surface/rack, @@ -21465,10 +16515,7 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/east, /area/desert_dam/interior/dam_interior/tech_storage) "boG" = ( /obj/structure/flora/grass/tallgrass/desert/corner{ @@ -21480,15 +16527,11 @@ /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ dir = 1 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/desert_dam/interior/dam_interior/north_tunnel_entrance) "boI" = ( /obj/structure/disposalpipe/segment, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached14" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached14, /area/desert_dam/exterior/valley/north_valley_dam) "boJ" = ( /turf/closed/wall/hangar{ @@ -21498,34 +16541,25 @@ "boK" = ( /obj/structure/filtration/flacculation_arm, /obj/effect/blocker/toxic_water, -/turf/open/gm/river/desert/deep{ - icon = 'icons/turf/floors/desert_water_toxic.dmi' - }, +/turf/open/gm/river/desert/deep/toxic, /area/desert_dam/exterior/river/filtration_a) "boL" = ( /obj/effect/decal/sand_overlay/sand1, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/north_valley_dam) "boM" = ( /obj/structure/machinery/colony_floodlight, /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 8 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/north_valley_dam) "boN" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ dir = 1; name = "\improper Marshals Office" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/security/marshals_office) "boO" = ( /obj/structure/window/framed/colony/reinforced, @@ -21538,47 +16572,34 @@ /area/desert_dam/building/warehouse/breakroom) "boQ" = ( /obj/structure/toilet, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/warehouse/breakroom) "boR" = ( /obj/structure/machinery/door/airlock/almayer/generic{ dir = 2; name = "\improper Toilet Unit" }, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/warehouse/breakroom) "boS" = ( /obj/structure/machinery/colony_floodlight, /obj/effect/decal/sand_overlay/sand1/corner1, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/north_valley_dam) "boT" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 8 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/north_valley_dam) "boV" = ( /obj/structure/machinery/landinglight/ds1/delaythree{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached1" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached1, /area/desert_dam/exterior/landing_pad_one) "boW" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "redcorner" - }, +/turf/open/floor/prison/redcorner/east, /area/desert_dam/building/security/northern_hallway) "boX" = ( /obj/structure/disposalpipe/segment{ @@ -21589,39 +16610,24 @@ /area/desert_dam/exterior/valley/bar_valley_dam) "bpa" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 1; - icon_state = "redcorner" - }, +/turf/open/floor/prison/redcorner/north, /area/desert_dam/building/security/northern_hallway) "bpb" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/prison/red/north, /area/desert_dam/building/security/northern_hallway) "bpe" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "redcorner" - }, +/turf/open/floor/prison/redcorner/north, /area/desert_dam/building/security/northern_hallway) "bpf" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/prison/red/north, /area/desert_dam/building/security/northern_hallway) "bpg" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/security/northern_hallway) "bph" = ( /obj/structure/machinery/power/apc{ @@ -21629,27 +16635,18 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "redcorner" - }, +/turf/open/floor/prison/redcorner/north, /area/desert_dam/building/security/northern_hallway) "bpi" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "redcorner" - }, +/turf/open/floor/prison/redcorner/east, /area/desert_dam/building/security/northern_hallway) "bpj" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/security/northern_hallway) "bpk" = ( /obj/structure/barricade/sandbags{ @@ -21661,68 +16658,47 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 1 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_telecoms) "bpl" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 1 }, -/turf/open/floor/plating{ - dir = 9; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/northwest, /area/desert_dam/exterior/valley/valley_telecoms) "bpq" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/prison/red/north, /area/desert_dam/building/security/northern_hallway) "bpr" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 4 }, -/turf/open/floor/coagulation{ - icon_state = "8,3" - }, +/turf/open/floor/coagulation/icon8_3, /area/desert_dam/exterior/valley/valley_mining) "bps" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 1 }, -/turf/open/floor/plating{ - dir = 1; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/north, /area/desert_dam/exterior/valley/valley_telecoms) "bpt" = ( /obj/structure/machinery/door/airlock/almayer/generic{ dir = 2 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/desert_dam/building/security/staffroom) "bpu" = ( /obj/structure/machinery/landinglight/ds1/delayone{ dir = 8 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached3" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached3, /area/desert_dam/exterior/landing_pad_one) "bpv" = ( /obj/structure/surface/table, /obj/item/trash/kepler, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/west, /area/desert_dam/interior/dam_interior/auxilary_tool_storage) "bpw" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -21733,29 +16709,21 @@ }, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/administration/control_room) "bpx" = ( /obj/structure/machinery/light{ dir = 4 }, /obj/structure/machinery/recharge_station, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/east, /area/desert_dam/interior/dam_interior/auxilary_tool_storage) "bpy" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/west, /area/desert_dam/interior/dam_interior/tech_storage) "bpz" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -21766,9 +16734,7 @@ }, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/administration/hallway) "bpA" = ( /obj/structure/surface/rack, @@ -21777,10 +16743,7 @@ /area/desert_dam/interior/dam_interior/tech_storage) "bpB" = ( /obj/structure/surface/rack, -/turf/open/floor/prison{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/east, /area/desert_dam/interior/dam_interior/tech_storage) "bpC" = ( /obj/effect/decal/sand_overlay/sand2{ @@ -21805,9 +16768,7 @@ /turf/open/asphalt, /area/desert_dam/interior/dam_interior/north_tunnel) "bpL" = ( -/turf/open/asphalt/cement{ - icon_state = "cement15" - }, +/turf/open/asphalt/cement/cement15, /area/desert_dam/interior/dam_interior/north_tunnel) "bpM" = ( /turf/closed/wall/r_wall/bunker{ @@ -21815,31 +16776,21 @@ }, /area/desert_dam/interior/dam_interior/engine_west_wing) "bpN" = ( -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/desert_dam/building/security/evidence) "bpO" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic, /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/engine_west_wing) "bpP" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/engine_west_wing) "bpQ" = ( /obj/structure/machinery/landinglight/ds1{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached1" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached1, /area/desert_dam/exterior/landing_pad_one) "bpR" = ( /obj/structure/surface/table, @@ -21851,45 +16802,32 @@ icon_state = "pipe-c" }, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/desert_dam/interior/dam_interior/smes_main) "bpS" = ( /obj/structure/filtration/coagulation_arm, /obj/effect/blocker/toxic_water, -/turf/open/gm/river/desert/shallow{ - icon = 'icons/turf/floors/desert_water_toxic.dmi' - }, +/turf/open/gm/river/desert/shallow/toxic, /area/desert_dam/exterior/river/filtration_a) "bpT" = ( /obj/structure/machinery/landinglight/ds1{ dir = 8 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached3" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached3, /area/desert_dam/exterior/landing_pad_one) "bpU" = ( /obj/structure/surface/rack, /obj/item/stack/sheet/mineral/phoron{ amount = 15 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/desert_dam/interior/dam_interior/smes_main) "bpV" = ( /obj/structure/surface/rack, /obj/item/stack/sheet/metal{ amount = 10 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/desert_dam/interior/dam_interior/smes_main) "bpW" = ( /obj/structure/surface/table, @@ -21899,19 +16837,13 @@ /obj/item/stack/sheet/mineral/phoron{ amount = 15 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/desert_dam/interior/dam_interior/smes_main) "bpX" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 5 }, -/turf/open/floor/plating{ - dir = 5; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/northeast, /area/desert_dam/exterior/valley/valley_telecoms) "bpY" = ( /obj/structure/window/framed/colony/reinforced, @@ -21919,28 +16851,19 @@ /area/desert_dam/building/warehouse/breakroom) "bqa" = ( /obj/effect/decal/sand_overlay/sand2, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached12" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached12, /area/desert_dam/interior/caves/central_caves) "bqc" = ( -/turf/open/desert/dirt{ - dir = 9; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/northwest, /area/desert_dam/exterior/valley/bar_valley_dam) "bqd" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached1" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached1, /area/desert_dam/exterior/valley/valley_telecoms) "bqe" = ( /obj/structure/platform{ dir = 8 }, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/desert_dam/interior/dam_interior/north_tunnel) "bqf" = ( /obj/structure/platform{ @@ -21949,71 +16872,49 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/desert_dam/interior/dam_interior/north_tunnel) "bqg" = ( -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/desert_dam/interior/dam_interior/western_dam_cave) "bqh" = ( /obj/structure/closet, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/desert_dam/building/security/evidence) "bqi" = ( /obj/structure/barricade/sandbags{ dir = 4 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_telecoms) "bqk" = ( /obj/structure/machinery/landinglight/ds1/delaythree{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached15" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached15, /area/desert_dam/exterior/landing_pad_one) "bql" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/security/northern_hallway) "bqm" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/security/northern_hallway) "bqn" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/security/northern_hallway) "bqp" = ( -/turf/open/desert/dirt{ - dir = 8; - icon_state = "desert_transition_corner1" - }, +/turf/open/desert/dirt/desert_transition_corner1/west, /area/desert_dam/exterior/valley/valley_mining) "bqq" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -22021,10 +16922,7 @@ }, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/security/northern_hallway) "bqt" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -22032,19 +16930,13 @@ }, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/security/northern_hallway) "bqu" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/security/northern_hallway) "bqw" = ( /obj/structure/pipes/standard/manifold/hidden/green, @@ -22053,10 +16945,7 @@ icon_state = "pipe-c" }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/security/northern_hallway) "bqx" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -22066,10 +16955,7 @@ dir = 8 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/security/northern_hallway) "bqy" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -22078,10 +16964,7 @@ /obj/structure/disposalpipe/segment{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/security/northern_hallway) "bqA" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -22093,47 +16976,30 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/security/northern_hallway) "bqH" = ( /obj/structure/surface/table, /obj/effect/spawner/random/toolbox, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/west, /area/desert_dam/interior/dam_interior/auxilary_tool_storage) "bqI" = ( /obj/structure/surface/rack, /obj/item/cell/high/empty, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/east, /area/desert_dam/interior/dam_interior/auxilary_tool_storage) "bqJ" = ( /obj/structure/surface/table/reinforced, /obj/item/storage/box/lights/mixed, -/turf/open/floor/prison{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/west, /area/desert_dam/interior/dam_interior/tech_storage) "bqK" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/dam_interior/tech_storage) "bqL" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/east, /area/desert_dam/interior/dam_interior/tech_storage) "bqM" = ( /obj/structure/platform{ @@ -22146,80 +17012,49 @@ /area/desert_dam/interior/dam_interior/north_tunnel) "bqN" = ( /obj/structure/platform_decoration, -/turf/open/asphalt/cement{ - icon_state = "cement2" - }, +/turf/open/asphalt/cement/cement2, /area/desert_dam/interior/dam_interior/northeastern_tunnel) "bqO" = ( /obj/structure/platform, /obj/structure/machinery/light, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/desert_dam/interior/dam_interior/northeastern_tunnel) "bqP" = ( /obj/structure/platform, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/desert_dam/interior/dam_interior/northeastern_tunnel) "bqQ" = ( /obj/structure/platform_decoration{ dir = 1 }, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/desert_dam/interior/dam_interior/northeastern_tunnel) "bqU" = ( /obj/structure/platform_decoration, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/desert_dam/interior/dam_interior/northeastern_tunnel) "bqV" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/west, /area/desert_dam/interior/dam_interior/engine_west_wing) "bqW" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/engine_west_wing) "bqX" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/east, /area/desert_dam/interior/dam_interior/engine_west_wing) "bqY" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/west, /area/desert_dam/interior/dam_interior/smes_main) "bqZ" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/smes_main) "bra" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/smes_main) "brb" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/east, /area/desert_dam/interior/dam_interior/smes_main) "brc" = ( /turf/closed/wall/hangar{ @@ -22230,23 +17065,14 @@ /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper Break Room" }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/warehouse/breakroom) "bre" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/engine_east_wing) "brf" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/engine_east_wing) "brg" = ( /turf/closed/wall/r_wall, @@ -22260,28 +17086,18 @@ /obj/structure/machinery/power/terminal{ dir = 1 }, -/turf/open/floor/plating{ - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate, /area/desert_dam/building/substation/northwest) "brj" = ( -/turf/open/desert/dirt{ - dir = 1; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/north, /area/desert_dam/exterior/valley/valley_mining) "brm" = ( /obj/structure/filingcabinet, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/desert_dam/building/security/evidence) "brn" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/north, /area/desert_dam/building/security/holding) "bro" = ( /obj/structure/pipes/standard/manifold/hidden/green{ @@ -22291,25 +17107,16 @@ dir = 2; icon_state = "pipe-c" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/security/northern_hallway) "brp" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/security/northern_hallway) "brq" = ( -/turf/open/floor/plating{ - dir = 8; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/west, /area/desert_dam/exterior/valley/valley_telecoms) "brr" = ( /turf/open/floor/plating, @@ -22319,41 +17126,27 @@ dir = 1; name = "\improper Marshal Office" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/security/northern_hallway) "brt" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/security/northern_hallway) "bru" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/security/northern_hallway) "brz" = ( /obj/structure/disposalpipe/segment, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached13" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached13, /area/desert_dam/exterior/valley/valley_mining) "brA" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/west, /area/desert_dam/building/mining/workshop) "brB" = ( /obj/structure/machinery/light{ @@ -22362,27 +17155,19 @@ /obj/effect/decal/sand_overlay/sand2/corner2{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/dam_interior/hanger) "brC" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/west, /area/desert_dam/interior/dam_interior/hanger) "brD" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/east, /area/desert_dam/interior/dam_interior/hanger) "brE" = ( /obj/structure/machinery/power/apc{ @@ -22390,9 +17175,7 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/dam_interior/hanger) "brF" = ( /turf/closed/wall/hangar{ @@ -22402,26 +17185,17 @@ "brG" = ( /obj/structure/surface/table, /obj/effect/spawner/random/tool, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/west, /area/desert_dam/interior/dam_interior/auxilary_tool_storage) "brH" = ( /obj/structure/surface/rack, /obj/item/cell/high/empty, /obj/effect/landmark/crap_item, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/east, /area/desert_dam/interior/dam_interior/auxilary_tool_storage) "brI" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkredcorners2" - }, +/turf/open/floor/prison/darkredcorners2/east, /area/desert_dam/building/security/holding) "brK" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -22431,38 +17205,26 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/administration/hallway) "brL" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/warehouse/breakroom) "brM" = ( /obj/structure/surface/rack, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/prison{ - icon_state = "blue" - }, +/turf/open/floor/prison/blue, /area/desert_dam/interior/dam_interior/tech_storage) "brN" = ( /obj/structure/surface/rack, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/prison{ - dir = 6; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/southeast, /area/desert_dam/interior/dam_interior/tech_storage) "brO" = ( /obj/structure/platform{ dir = 4 }, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/desert_dam/interior/dam_interior/northeastern_tunnel) "brP" = ( /obj/structure/desertdam/decals/road_edge{ @@ -22492,27 +17254,19 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/west, /area/desert_dam/interior/dam_interior/engine_west_wing) "brV" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/east, /area/desert_dam/interior/dam_interior/engine_west_wing) "brW" = ( /obj/structure/machinery/landinglight/ds1/delayone{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached9" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached9, /area/desert_dam/exterior/landing_pad_one) "brX" = ( /turf/open/floor/greengrid, @@ -22524,105 +17278,67 @@ /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/disposalpipe/segment, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/security/northern_hallway) "bsa" = ( -/turf/open/floor/plating{ - dir = 6; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/southeast, /area/desert_dam/building/substation/northwest) "bsb" = ( -/turf/open/floor/prison{ - icon_state = "red" - }, +/turf/open/floor/prison/red, /area/desert_dam/building/security/northern_hallway) "bsc" = ( /obj/structure/surface/table/reinforced, -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/northwest, /area/desert_dam/interior/dam_interior/engine_east_wing) "bsd" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/prison/darkyellowcorners2/east, /area/desert_dam/interior/dam_interior/engine_east_wing) "bse" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/prison/darkyellowcorners2/north, /area/desert_dam/interior/dam_interior/engine_east_wing) "bsf" = ( /obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/prison{ - dir = 5; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/northeast, /area/desert_dam/interior/dam_interior/engine_east_wing) "bsg" = ( /obj/structure/coatrack, /turf/open/floor/wood, /area/desert_dam/building/warehouse/breakroom) "bsh" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "redcorner" - }, +/turf/open/floor/prison/redcorner/west, /area/desert_dam/building/security/northern_hallway) "bsi" = ( /obj/structure/platform{ dir = 8 }, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/desert_dam/interior/dam_interior/northwestern_tunnel) "bsj" = ( /obj/structure/platform{ dir = 4 }, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/desert_dam/interior/dam_interior/north_tunnel) "bsk" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/security/northern_hallway) "bsl" = ( -/turf/open/floor/prison{ - icon_state = "redcorner" - }, +/turf/open/floor/prison/redcorner, /area/desert_dam/building/security/northern_hallway) "bsm" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "red" - }, +/turf/open/floor/prison/red, /area/desert_dam/building/security/northern_hallway) "bsn" = ( /obj/structure/machinery/light, -/turf/open/floor/prison{ - icon_state = "red" - }, +/turf/open/floor/prison/red, /area/desert_dam/building/security/northern_hallway) "bso" = ( /obj/structure/machinery/light, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "red" - }, +/turf/open/floor/prison/red, /area/desert_dam/building/security/northern_hallway) "bsp" = ( /obj/structure/window/framed/prison/reinforced, @@ -22635,45 +17351,28 @@ name = "\improper Marshal Office" }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/security/southern_hallway) "bsr" = ( /obj/effect/decal/sand_overlay/sand2{ dir = 10 }, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/dam_interior/hanger) "bss" = ( /obj/effect/decal/sand_overlay/sand2/corner2{ dir = 8 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/prison/darkyellowcorners2/north, /area/desert_dam/interior/dam_interior/hanger) "bst" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/desert_dam/interior/dam_interior/hanger) "bsu" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/prison/darkyellowcorners2/east, /area/desert_dam/interior/dam_interior/hanger) "bsw" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/prison/darkyellowcorners2/north, /area/desert_dam/interior/dam_interior/hanger) "bsy" = ( /obj/structure/surface/table, @@ -22682,18 +17381,12 @@ pixel_x = -24 }, /obj/item/stack/sheet/metal, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/west, /area/desert_dam/interior/dam_interior/auxilary_tool_storage) "bsz" = ( /obj/structure/surface/rack, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/east, /area/desert_dam/interior/dam_interior/auxilary_tool_storage) "bsA" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony{ @@ -22701,9 +17394,7 @@ name = "\improper Secure Tech Storage" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/dam_interior/tech_storage) "bsC" = ( /obj/effect/decal/warning_stripes{ @@ -22713,36 +17404,23 @@ /area/desert_dam/interior/dam_interior/north_tunnel) "bsE" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/administration/hallway) "bsF" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/prison/darkyellowcorners2/north, /area/desert_dam/interior/dam_interior/engine_west_wing) "bsG" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/prison/darkyellowcorners2/east, /area/desert_dam/interior/dam_interior/smes_main) "bsH" = ( /obj/structure/pipes/vents/pump/on, /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/smes_main) "bsJ" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/administration/hallway) "bsK" = ( /obj/structure/machinery/power/terminal{ @@ -22757,9 +17435,7 @@ }, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/administration/hallway) "bsM" = ( /obj/structure/closet/radiation, @@ -22769,34 +17445,21 @@ name = "General Listening Channel"; pixel_x = -30 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/west, /area/desert_dam/interior/dam_interior/engine_east_wing) "bsN" = ( -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/dam_interior/engine_east_wing) "bsO" = ( /obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/east, /area/desert_dam/interior/dam_interior/engine_east_wing) "bsP" = ( /obj/effect/decal/sand_overlay/sand1/corner1, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/desert_dam/exterior/valley/valley_wilderness) "bsQ" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/security/southern_hallway) "bsR" = ( /obj/structure/filingcabinet, @@ -22804,10 +17467,7 @@ /turf/open/floor/wood, /area/desert_dam/building/warehouse/breakroom) "bsS" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/west, /area/desert_dam/building/security/southern_hallway) "bsT" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -22822,59 +17482,36 @@ "btf" = ( /obj/structure/closet/secure_closet/security_empty, /obj/item/clothing/suit/armor/vest/security, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/desert_dam/building/security/staffroom) "bth" = ( /obj/effect/decal/sand_overlay/sand2, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/dam_interior/hanger) "bti" = ( /obj/effect/decal/sand_overlay/sand2/corner2{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/dam_interior/hanger) "btj" = ( -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkbrown3" - }, +/turf/open/floor/prison/darkbrown3/northwest, /area/desert_dam/interior/dam_interior/hanger) "btk" = ( /obj/structure/pipes/vents/pump/on, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/dam_interior/hanger) "btl" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrowncorners3" - }, +/turf/open/floor/prison/darkbrowncorners3/north, /area/desert_dam/interior/dam_interior/hanger) "btm" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkbrowncorners3" - }, +/turf/open/floor/prison/darkbrowncorners3/east, /area/desert_dam/interior/dam_interior/hanger) "btp" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkbrowncorners2" - }, +/turf/open/floor/prison/darkbrowncorners2/east, /area/desert_dam/interior/dam_interior/auxilary_tool_storage) "btq" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrowncorners2" - }, +/turf/open/floor/prison/darkbrowncorners2/north, /area/desert_dam/interior/dam_interior/auxilary_tool_storage) "btr" = ( /obj/structure/machinery/power/apc{ @@ -22882,45 +17519,27 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/north, /area/desert_dam/interior/dam_interior/auxilary_tool_storage) "bts" = ( /obj/structure/closet/firecloset, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/north, /area/desert_dam/interior/dam_interior/auxilary_tool_storage) "btt" = ( /obj/structure/closet/emcloset, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/north, /area/desert_dam/interior/dam_interior/auxilary_tool_storage) "btu" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/auxilary_tool_storage) "btv" = ( /obj/structure/closet/secure_closet/engineering_welding, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/north, /area/desert_dam/interior/dam_interior/auxilary_tool_storage) "btw" = ( /obj/structure/closet/secure_closet/engineering_electrical, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/north, /area/desert_dam/interior/dam_interior/auxilary_tool_storage) "btx" = ( /obj/structure/closet/secure_closet/engineering_electrical, @@ -22928,10 +17547,7 @@ dir = 4 }, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/prison{ - dir = 5; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/northeast, /area/desert_dam/interior/dam_interior/auxilary_tool_storage) "bty" = ( /turf/closed/wall/r_wall, @@ -22952,26 +17568,16 @@ /turf/open/asphalt, /area/desert_dam/interior/dam_interior/northeastern_tunnel) "btD" = ( -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/desert_dam/interior/dam_interior/north_tunnel) "btE" = ( -/turf/open/desert/rock/deep/transition{ - dir = 4 - }, +/turf/open/desert/rock/deep/transition/east, /area/desert_dam/interior/caves/east_caves) "btF" = ( -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/northwest, /area/desert_dam/interior/dam_interior/engine_west_wing) "btG" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/prison/darkyellowcorners2/east, /area/desert_dam/interior/dam_interior/engine_west_wing) "btH" = ( /obj/structure/disposalpipe/segment{ @@ -22980,37 +17586,26 @@ }, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/administration/hallway) "btI" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/administration/hallway) "btJ" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "blue" - }, +/turf/open/floor/prison/blue, /area/desert_dam/building/administration/hallway) "btK" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "blue" - }, +/turf/open/floor/prison/blue, /area/desert_dam/building/administration/hallway) "btL" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 8; - icon_state = "bluecorner" - }, +/turf/open/floor/prison/bluecorner/west, /area/desert_dam/building/administration/hallway) "btM" = ( /obj/structure/disposalpipe/segment, @@ -23018,18 +17613,14 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/administration/hallway) "btP" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/comdoor{ name = "\improper Administration Hallway" }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/administration/hallway) "btQ" = ( /turf/closed/wall/hangar{ @@ -23038,52 +17629,35 @@ /area/desert_dam/interior/dam_interior/engine_room) "btR" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached4" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached4, /area/desert_dam/exterior/valley/valley_mining) "btS" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony{ dir = 2; name = "\improper Engine Room" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/engine_room) "btT" = ( /obj/structure/closet/toolcloset, /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/west, /area/desert_dam/interior/dam_interior/engine_east_wing) "btU" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/engine_east_wing) "btV" = ( /obj/structure/surface/table, /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/east, /area/desert_dam/interior/dam_interior/engine_east_wing) "btW" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkredcorners2" - }, +/turf/open/floor/prison/darkredcorners2/north, /area/desert_dam/building/security/holding) "btX" = ( /turf/open/floor/prison, @@ -23093,10 +17667,7 @@ /turf/open/desert/dirt, /area/desert_dam/exterior/valley/valley_medical) "btZ" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/east, /area/desert_dam/building/security/southern_hallway) "bua" = ( /obj/structure/closet/secure_closet/personal, @@ -23107,9 +17678,7 @@ /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/desert_dam/exterior/valley/valley_telecoms) "buc" = ( /turf/open/floor/wood, @@ -23124,38 +17693,26 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/north, /area/desert_dam/building/security/holding) "buf" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 8 }, -/turf/open/floor/plating{ - dir = 4; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/east, /area/desert_dam/exterior/valley/valley_telecoms) "bug" = ( /obj/structure/closet/secure_closet/security, /obj/item/clothing/suit/armor/vest/security, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/desert_dam/building/security/staffroom) "buh" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached1" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached1, /area/desert_dam/exterior/valley/valley_mining) "bui" = ( /obj/structure/closet/bombclosetsecurity, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/desert_dam/building/security/staffroom) "buj" = ( /turf/open/asphalt/cement, @@ -23168,19 +17725,13 @@ dir = 1 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "grimy" - }, +/turf/open/floor/grimy, /area/desert_dam/building/bar/bar) "bul" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached3" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached3, /area/desert_dam/exterior/valley/valley_mining) "bum" = ( -/turf/open/floor{ - icon_state = "grimy" - }, +/turf/open/floor/grimy, /area/desert_dam/building/bar/bar) "but" = ( /obj/structure/window/framed/wood/reinforced, @@ -23191,29 +17742,19 @@ pixel_x = -32 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/west, /area/desert_dam/building/security/staffroom) "buv" = ( /obj/effect/decal/sand_overlay/sand1/corner1, -/turf/open/floor/coagulation{ - icon_state = "8,4" - }, +/turf/open/floor/coagulation/icon8_4, /area/desert_dam/exterior/valley/valley_mining) "bux" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached12" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached12, /area/desert_dam/exterior/valley/valley_mining) "buz" = ( /obj/structure/surface/rack, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/mining/workshop) "buA" = ( /obj/structure/reagent_dispensers/fueltank, @@ -23227,10 +17768,7 @@ dir = 4; icon_state = "pipe-c" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/hanger) "buC" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -23239,10 +17777,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/hanger) "buD" = ( /obj/structure/pipes/standard/manifold/hidden/green{ @@ -23251,10 +17786,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/hanger) "buI" = ( /obj/structure/machinery/door_control{ @@ -23267,9 +17799,7 @@ /area/desert_dam/interior/dam_interior/hanger) "buJ" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/administration/lobby) "buK" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -23278,49 +17808,32 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/auxilary_tool_storage) "buM" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/west, /area/desert_dam/building/administration/hallway) "buN" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/administration/lobby) "buO" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 4; - icon_state = "bluecorner" - }, +/turf/open/floor/prison/bluecorner/east, /area/desert_dam/building/administration/hallway) "buP" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/auxilary_tool_storage) "buQ" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/auxilary_tool_storage) "buR" = ( /obj/structure/desertdam/decals/road_edge{ @@ -23346,18 +17859,14 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/administration/hallway) "buX" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/administration/hallway) "buY" = ( /obj/structure/disposalpipe/segment{ @@ -23365,32 +17874,21 @@ icon_state = "pipe-c" }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/administration/hallway) "buZ" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/north, /area/desert_dam/building/administration/hallway) "bva" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 1; - icon_state = "bluecorner" - }, +/turf/open/floor/prison/bluecorner/north, /area/desert_dam/building/administration/hallway) "bvb" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/engine_west_wing) "bvc" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ @@ -23400,62 +17898,41 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/smes_main) "bvd" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/smes_main) "bve" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/smes_main) "bvh" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached9" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached9, /area/desert_dam/exterior/valley/valley_northwest) "bvi" = ( -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/dam_interior/engine_room) "bvj" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/dam_interior/engine_room) "bvk" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/engine_room) "bvl" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/tool, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/west, /area/desert_dam/interior/dam_interior/engine_east_wing) "bvm" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -23463,28 +17940,20 @@ dir = 4; icon_state = "pipe-c" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/engine_east_wing) "bvn" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/dam_interior/engine_east_wing) "bvo" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk{ dir = 8 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/east, /area/desert_dam/interior/dam_interior/engine_east_wing) "bvp" = ( /obj/structure/bed/chair/wood/normal{ @@ -23497,10 +17966,7 @@ amount = 10 }, /obj/structure/surface/rack, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/mining/workshop) "bvr" = ( /obj/structure/stairs{ @@ -23509,27 +17975,19 @@ /obj/structure/platform{ dir = 4 }, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/desert_dam/interior/dam_interior/northeastern_tunnel) "bvu" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/prison/darkyellowcorners2/north, /area/desert_dam/building/mining/workshop) "bvv" = ( /obj/structure/window/framed/colony, /turf/open/floor/plating, /area/desert_dam/building/mining/workshop) "bvw" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkbrowncorners2" - }, +/turf/open/floor/prison/darkbrowncorners2/east, /area/desert_dam/building/mining/workshop_foyer) "bvx" = ( /turf/open/floor/prison, @@ -23538,15 +17996,10 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/west, /area/desert_dam/building/security/southern_hallway) "bvz" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached12" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached12, /area/desert_dam/exterior/valley/valley_mining) "bvA" = ( /turf/closed/wall/hangar{ @@ -23558,9 +18011,7 @@ /obj/structure/machinery/computer/objective{ dir = 4 }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/desert_dam/interior/lab_northeast/east_lab_west_hallway) "bvD" = ( /turf/open/floor/prison, @@ -23569,10 +18020,7 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkredcorners2" - }, +/turf/open/floor/prison/darkredcorners2/north, /area/desert_dam/building/security/staffroom) "bvF" = ( /obj/structure/disposalpipe/trunk{ @@ -23580,10 +18028,7 @@ icon_state = "pipe-u" }, /obj/structure/machinery/disposal, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/north, /area/desert_dam/building/security/staffroom) "bvG" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -23592,83 +18037,52 @@ icon_state = "pipe-j2" }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/northwest, /area/desert_dam/building/security/southern_hallway) "bvH" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 5; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/northeast, /area/desert_dam/building/security/southern_hallway) "bvJ" = ( /obj/effect/decal/sand_overlay/sand1/corner1, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_telecoms) "bvK" = ( /obj/structure/machinery/vending/snack, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/north, /area/desert_dam/building/security/staffroom) "bvL" = ( /obj/structure/machinery/computer/secure_data, /obj/structure/surface/table, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/north, /area/desert_dam/building/security/staffroom) "bvM" = ( /obj/structure/machinery/computer/prisoner, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/north, /area/desert_dam/building/security/staffroom) "bvS" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/north, /area/desert_dam/building/security/staffroom) "bvT" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - dir = 5; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/northeast, /area/desert_dam/building/security/staffroom) "bvU" = ( /obj/effect/decal/sand_overlay/sand2{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/dam_interior/hanger) "bvV" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/hanger) "bvW" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/hanger) "bvX" = ( /obj/structure/disposalpipe/segment{ @@ -23676,15 +18090,10 @@ icon_state = "pipe-c" }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/administration/hallway) "bvY" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/auxilary_tool_storage) "bwa" = ( /obj/structure/disposalpipe/junction{ @@ -23694,57 +18103,40 @@ dir = 8 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/administration/hallway) "bwb" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, /obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/desert_dam/interior/dam_interior/northwestern_tunnel) "bwc" = ( -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/desert_dam/interior/dam_interior/northwestern_tunnel) "bwd" = ( /obj/structure/platform, /turf/open/asphalt/cement, /area/desert_dam/interior/dam_interior/northeastern_tunnel) "bwe" = ( -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/desert_dam/interior/dam_interior/north_tunnel) "bwf" = ( /obj/structure/surface/rack, /obj/item/tool/extinguisher/mini, /obj/item/circuitboard/airlock, /obj/effect/landmark/crap_item, -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/northwest, /area/desert_dam/interior/dam_interior/engine_west_wing) "bwg" = ( /obj/structure/machinery/recharge_station, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/desert_dam/interior/dam_interior/engine_west_wing) "bwh" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/desert_dam/interior/dam_interior/engine_west_wing) "bwi" = ( /obj/structure/surface/table, @@ -23753,10 +18145,7 @@ }, /obj/item/storage/toolbox/emergency, /obj/item/circuitboard/firealarm, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/desert_dam/interior/dam_interior/engine_west_wing) "bwj" = ( /obj/structure/surface/table, @@ -23765,19 +18154,13 @@ /obj/item/device/assembly/igniter, /obj/item/device/assembly/signaller, /obj/item/circuitboard/airlock, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/desert_dam/interior/dam_interior/engine_west_wing) "bwk" = ( /obj/structure/surface/table, /obj/item/device/assembly/infra, /obj/item/device/assembly/voice, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/desert_dam/interior/dam_interior/engine_west_wing) "bwl" = ( /obj/structure/machinery/power/apc{ @@ -23785,105 +18168,64 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/desert_dam/interior/dam_interior/engine_west_wing) "bwn" = ( -/turf/open/floor/prison{ - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/prison/darkyellowcorners2, /area/desert_dam/interior/dam_interior/engine_west_wing) "bwo" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/prison/darkyellowcorners2/west, /area/desert_dam/interior/dam_interior/smes_main) "bwp" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/smes_main) "bwr" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony{ name = "\improper SMES" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/desert_dam/interior/dam_interior/smes_main) "bwt" = ( -/turf/open/floor{ - dir = 9; - icon_state = "warning" - }, +/turf/open/floor/warning/northwest, /area/desert_dam/interior/dam_interior/engine_room) "bwu" = ( -/turf/open/floor{ - dir = 1; - icon_state = "warning" - }, +/turf/open/floor/warning/north, /area/desert_dam/interior/dam_interior/engine_room) "bwv" = ( -/turf/open/floor{ - icon_state = "neutral" - }, +/turf/open/floor/neutral, /area/desert_dam/interior/dam_interior/engine_room) "bww" = ( -/turf/open/floor{ - dir = 5; - icon_state = "warning" - }, +/turf/open/floor/warning/northeast, /area/desert_dam/interior/dam_interior/engine_room) "bwx" = ( /obj/structure/surface/table, /obj/item/reagent_container/food/drinks/cans/thirteenloko, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/west, /area/desert_dam/interior/dam_interior/engine_east_wing) "bwy" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/engine_east_wing) "bwz" = ( /obj/effect/landmark/survivor_spawner, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/dam_interior/engine_east_wing) "bwA" = ( /obj/structure/machinery/power/port_gen/pacman/super, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/desert_dam/interior/dam_interior/engine_east_wing) "bwB" = ( /obj/structure/machinery/power/port_gen/pacman/super, -/turf/open/floor/prison{ - dir = 5; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/northeast, /area/desert_dam/interior/dam_interior/engine_east_wing) "bwD" = ( /obj/structure/reagent_dispensers/peppertank{ pixel_x = -32 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/west, /area/desert_dam/building/security/staffroom) "bwE" = ( /obj/structure/bed/chair, @@ -23895,29 +18237,21 @@ /turf/open/floor/interior/wood, /area/desert_dam/building/security/courtroom) "bwH" = ( -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/desert_dam/building/security/observation) "bwI" = ( /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/desert_dam/building/security/observation) "bwK" = ( /obj/structure/surface/table, /obj/item/device/flashlight/lamp, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/desert_dam/building/security/interrogation) "bwL" = ( -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/desert_dam/building/security/interrogation) "bwM" = ( /obj/structure/machinery/power/apc{ @@ -23925,15 +18259,11 @@ pixel_x = -30; start_charge = 0 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/desert_dam/building/security/evidence) "bwO" = ( /obj/effect/landmark/corpsespawner/security/marshal, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/desert_dam/building/security/evidence) "bwQ" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ @@ -23948,73 +18278,49 @@ /turf/open/floor/prison, /area/desert_dam/building/security/holding) "bwT" = ( -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/desert_dam/interior/dam_interior/northwestern_tunnel) "bwU" = ( -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/desert_dam/interior/dam_interior/northwestern_tunnel) "bwV" = ( /obj/structure/machinery/light, /obj/effect/decal/sand_overlay/sand2{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/dam_interior/hanger) "bwW" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkbrowncorners3" - }, +/turf/open/floor/prison/darkbrowncorners3/west, /area/desert_dam/interior/dam_interior/hanger) "bwX" = ( -/turf/open/floor/prison{ - icon_state = "darkbrowncorners3" - }, +/turf/open/floor/prison/darkbrowncorners3, /area/desert_dam/interior/dam_interior/hanger) "bwY" = ( /obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/dam_interior/hanger) "bwZ" = ( /obj/structure/largecrate/random/barrel/white, /obj/structure/machinery/light, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/dam_interior/hanger) "bxa" = ( /obj/structure/largecrate/random/barrel/blue, /obj/structure/machinery/light, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/dam_interior/hanger) "bxb" = ( /obj/structure/largecrate/random/case/small, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/dam_interior/hanger) "bxc" = ( /obj/structure/cargo_container/kelland/left, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkbrowncorners3" - }, +/turf/open/floor/prison/darkbrowncorners3/west, /area/desert_dam/interior/dam_interior/hanger) "bxd" = ( /obj/structure/cargo_container/kelland/right, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/dam_interior/hanger) "bxe" = ( /obj/structure/disposalpipe/segment{ @@ -24025,43 +18331,29 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/administration/hallway) "bxf" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkbrowncorners2" - }, +/turf/open/floor/prison/darkbrowncorners2/west, /area/desert_dam/interior/dam_interior/auxilary_tool_storage) "bxg" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkbrowncorners2" - }, +/turf/open/floor/prison/darkbrowncorners2/southwest, /area/desert_dam/interior/dam_interior/auxilary_tool_storage) "bxh" = ( /obj/structure/machinery/light, -/turf/open/floor/prison{ - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2, /area/desert_dam/interior/dam_interior/auxilary_tool_storage) "bxi" = ( /obj/structure/surface/table, /obj/effect/spawner/random/tool, /obj/effect/spawner/random/toolbox, -/turf/open/floor/prison{ - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2, /area/desert_dam/interior/dam_interior/auxilary_tool_storage) "bxj" = ( /obj/structure/machinery/landinglight/ds1/delayone{ dir = 8 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached14" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached14, /area/desert_dam/exterior/landing_pad_one) "bxk" = ( /obj/structure/surface/table, @@ -24072,17 +18364,13 @@ /obj/effect/spawner/random/toolbox, /obj/effect/spawner/random/technology_scanner, /obj/effect/spawner/random/tool, -/turf/open/floor/prison{ - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2, /area/desert_dam/interior/dam_interior/auxilary_tool_storage) "bxl" = ( /obj/structure/surface/table, /obj/effect/spawner/random/toolbox, /obj/effect/spawner/random/tool, -/turf/open/floor/prison{ - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2, /area/desert_dam/interior/dam_interior/auxilary_tool_storage) "bxm" = ( /obj/structure/disposalpipe/segment{ @@ -24091,16 +18379,11 @@ }, /obj/structure/pipes/standard/manifold/hidden/green, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/administration/hallway) "bxn" = ( /obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/east, /area/desert_dam/interior/dam_interior/auxilary_tool_storage) "bxo" = ( /obj/effect/decal/warning_stripes{ @@ -24114,9 +18397,7 @@ }, /area/desert_dam/interior/dam_interior/northeastern_tunnel) "bxr" = ( -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/interior/dam_interior/northeastern_tunnel) "bxs" = ( /obj/structure/stairs{ @@ -24125,30 +18406,21 @@ /obj/structure/platform{ dir = 8 }, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/desert_dam/interior/dam_interior/northeastern_tunnel) "bxt" = ( -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/desert_dam/interior/dam_interior/northeastern_tunnel) "bxu" = ( /obj/effect/decal/sand_overlay/sand2/corner2, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/interior/dam_interior/northeastern_tunnel) "bxv" = ( /obj/structure/surface/rack, /obj/item/explosive/grenade/custom/metal_foam, /obj/item/explosive/grenade/custom/metal_foam, /obj/item/device/flashlight, -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/northwest, /area/desert_dam/interior/dam_interior/engine_west_wing) "bxy" = ( /obj/structure/disposalpipe/junction{ @@ -24158,9 +18430,7 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/administration/hallway) "bxz" = ( /obj/structure/machinery/power/apc{ @@ -24168,86 +18438,51 @@ pixel_x = -30; start_charge = 0 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/west, /area/desert_dam/interior/dam_interior/smes_main) "bxB" = ( -/turf/open/floor/prison{ - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/prison/darkyellowcorners2, /area/desert_dam/interior/dam_interior/smes_main) "bxD" = ( -/turf/open/floor{ - dir = 8; - icon_state = "warning" - }, -/area/desert_dam/interior/dam_interior/engine_room) -"bxE" = ( -/obj/structure/machinery/power/geothermal, -/turf/open/floor/plating, +/turf/open/floor/warning/west, /area/desert_dam/interior/dam_interior/engine_room) "bxF" = ( /obj/effect/landmark/good_item, /turf/open/floor/plating, /area/desert_dam/building/warehouse/breakroom) -"bxH" = ( -/obj/structure/machinery/power/geothermal, -/turf/open/floor/greengrid, -/area/desert_dam/interior/dam_interior/engine_room) "bxJ" = ( -/turf/open/floor{ - dir = 4; - icon_state = "warning" - }, +/turf/open/floor/warning/east, /area/desert_dam/interior/dam_interior/engine_room) "bxK" = ( /obj/structure/surface/table, /obj/item/device/flashlight/flare, /obj/item/device/radio, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/west, /area/desert_dam/interior/dam_interior/engine_east_wing) "bxL" = ( /obj/structure/bed/stool, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/dam_interior/engine_east_wing) "bxM" = ( /obj/effect/spawner/random/powercell, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/prison/darkyellowcorners2/north, /area/desert_dam/interior/dam_interior/engine_east_wing) "bxN" = ( /obj/structure/surface/table, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/desert_dam/interior/dam_interior/engine_east_wing) "bxQ" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/engine_east_wing) "bxR" = ( /obj/structure/barricade/sandbags, /obj/structure/barricade/sandbags{ dir = 4 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_telecoms) "bxS" = ( /obj/structure/platform{ @@ -24257,9 +18492,7 @@ dir = 8 }, /obj/effect/blocker/toxic_water/Group_2, -/turf/open/gm/river/desert/shallow_edge{ - dir = 8 - }, +/turf/open/gm/river/desert/shallow_edge/west, /area/desert_dam/exterior/river/riverside_east) "bxT" = ( /obj/structure/platform{ @@ -24269,9 +18502,7 @@ dir = 4 }, /obj/effect/blocker/toxic_water/Group_2, -/turf/open/gm/river/desert/shallow_edge{ - dir = 4 - }, +/turf/open/gm/river/desert/shallow_edge/east, /area/desert_dam/exterior/river/riverside_east) "bxU" = ( /obj/structure/platform{ @@ -24281,18 +18512,14 @@ dir = 8 }, /obj/effect/blocker/toxic_water/Group_2, -/turf/open/desert/desert_shore/shore_corner2{ - dir = 1 - }, +/turf/open/desert/desert_shore/shore_corner2/north, /area/desert_dam/exterior/river/riverside_east) "bxV" = ( /obj/structure/platform_decoration{ dir = 4 }, /obj/effect/blocker/toxic_water/Group_2, -/turf/open/gm/river/desert/shallow_edge{ - dir = 8 - }, +/turf/open/gm/river/desert/shallow_edge/west, /area/desert_dam/exterior/river/riverside_east) "bxW" = ( /obj/structure/platform{ @@ -24311,9 +18538,7 @@ /obj/structure/platform{ dir = 1 }, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/desert_dam/interior/dam_interior/northwestern_tunnel) "bxZ" = ( /obj/structure/disposalpipe/segment, @@ -24323,23 +18548,16 @@ /obj/structure/platform_decoration{ dir = 4 }, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/desert_dam/interior/dam_interior/northwestern_tunnel) "byb" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/disposalpipe/segment, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/west, /area/desert_dam/building/security/southern_hallway) "bym" = ( -/turf/open/desert/rock/deep/transition{ - dir = 5 - }, +/turf/open/desert/rock/deep/transition/northeast, /area/desert_dam/interior/caves/east_caves) "byn" = ( /turf/closed/wall/r_wall/bunker{ @@ -24354,19 +18572,13 @@ "byp" = ( /obj/structure/surface/table/woodentable/fancy, /obj/effect/landmark/corpsespawner/security/liaison, -/turf/open/floor{ - dir = 8; - icon_state = "carpet15-15" - }, +/turf/open/floor/carpet15_15/west, /area/desert_dam/building/administration/overseer_office) "byq" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper Hangar" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/hanger) "byr" = ( /obj/structure/machinery/door_control{ @@ -24381,24 +18593,15 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/west, /area/desert_dam/interior/dam_interior/auxilary_tool_storage) "byt" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/west, /area/desert_dam/interior/dam_interior/auxilary_tool_storage) "byu" = ( /obj/structure/surface/table, /obj/item/stack/sheet/metal, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/east, /area/desert_dam/interior/dam_interior/auxilary_tool_storage) "byv" = ( /obj/structure/machinery/light{ @@ -24407,29 +18610,21 @@ /obj/effect/decal/sand_overlay/sand2/corner2{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/interior/dam_interior/northeastern_tunnel) "byw" = ( -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/desert_dam/interior/dam_interior/northeastern_tunnel) "byx" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/disposalpipe/segment, -/turf/open/asphalt/cement{ - icon_state = "cement2" - }, +/turf/open/asphalt/cement/cement2, /area/desert_dam/interior/dam_interior/northeastern_tunnel) "byy" = ( /obj/effect/decal/sand_overlay/sand2{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/interior/dam_interior/northeastern_tunnel) "byz" = ( /obj/structure/pipes/standard/manifold/hidden/green{ @@ -24439,9 +18634,7 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/administration/hallway) "byA" = ( /obj/structure/disposalpipe/junction{ @@ -24451,18 +18644,14 @@ dir = 10 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/administration/hallway) "byB" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/administration/hallway) "byC" = ( /obj/structure/window/framed/hangar, @@ -24474,64 +18663,35 @@ }, /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/control_room) "byE" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/administration/hallway) -"byG" = ( -/obj/structure/machinery/power/geothermal, -/obj/structure/lattice{ - layer = 2.9 - }, -/turf/open/floor/plating, -/area/desert_dam/interior/dam_interior/engine_room) -"byJ" = ( -/obj/structure/machinery/power/geothermal, -/obj/structure/lattice{ - layer = 2.9 - }, -/turf/open/floor/greengrid, -/area/desert_dam/interior/dam_interior/engine_room) "byL" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/dam_interior/engine_room) "byP" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/desert_dam/building/substation/northwest) "byQ" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/east, /area/desert_dam/building/security/staffroom) "byR" = ( /obj/structure/closet/secure_closet/marshal, /obj/item/clothing/suit/storage/CMB, /obj/item/clothing/suit/armor/vest/security, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/desert_dam/building/security/staffroom) "byS" = ( /obj/structure/disposalpipe/segment{ @@ -24543,9 +18703,7 @@ /area/desert_dam/interior/dam_interior/engine_east_wing) "byT" = ( /obj/effect/decal/sand_overlay/sand1, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/desert_dam/exterior/valley/valley_wilderness) "byU" = ( /obj/structure/window/framed/colony/reinforced, @@ -24553,15 +18711,11 @@ /area/desert_dam/building/security/staffroom) "byV" = ( /obj/effect/decal/sand_overlay/sand1/corner1, -/turf/open/floor/coagulation{ - icon_state = "7,0" - }, +/turf/open/floor/coagulation/icon7_0, /area/desert_dam/exterior/valley/valley_mining) "byW" = ( /obj/effect/decal/sand_overlay/sand1, -/turf/open/floor/coagulation{ - icon_state = "7,0" - }, +/turf/open/floor/coagulation/icon7_0, /area/desert_dam/exterior/valley/valley_mining) "byX" = ( /obj/structure/machinery/light{ @@ -24574,14 +18728,10 @@ dir = 1 }, /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_wilderness) "byZ" = ( -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/desert_dam/exterior/valley/valley_wilderness) "bza" = ( /obj/structure/surface/table, @@ -24615,14 +18765,10 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/dam_interior/hangar_storage) "bzi" = ( -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/dam_interior/hangar_storage) "bzj" = ( /obj/structure/machinery/power/apc{ @@ -24630,70 +18776,44 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/dam_interior/hangar_storage) "bzk" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkbrown3" - }, +/turf/open/floor/prison/darkbrown3/west, /area/desert_dam/interior/dam_interior/hangar_storage) "bzl" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/hangar_storage) "bzm" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/hangar_storage) "bzn" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkbrown3" - }, +/turf/open/floor/prison/darkbrown3/east, /area/desert_dam/interior/dam_interior/hangar_storage) "bzo" = ( /obj/structure/largecrate/random, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/desert_dam/interior/dam_interior/hangar_storage) "bzp" = ( /obj/structure/largecrate/random, /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/desert_dam/interior/dam_interior/hangar_storage) "bzq" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/interior/dam_interior/northwestern_tunnel) "bzr" = ( -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/desert_dam/interior/dam_interior/northwestern_tunnel) "bzt" = ( -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/interior/dam_interior/northwestern_tunnel) "bzu" = ( /turf/closed/wall/hangar{ @@ -24702,35 +18822,25 @@ /area/desert_dam/interior/dam_interior/northwestern_tunnel) "bzv" = ( /obj/structure/cargo_container/kelland/left, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/interior/dam_interior/northwestern_tunnel) "bzw" = ( /obj/structure/cargo_container/kelland/right, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/interior/dam_interior/northwestern_tunnel) "bzx" = ( /obj/structure/largecrate/random/barrel/blue, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/interior/dam_interior/northwestern_tunnel) "bzy" = ( /obj/structure/largecrate/random/case/double, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/interior/dam_interior/northwestern_tunnel) "bzz" = ( /obj/structure/platform_decoration{ dir = 8 }, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/desert_dam/interior/dam_interior/northwestern_tunnel) "bzA" = ( /obj/structure/desertdam/decals/road_edge, @@ -24743,40 +18853,28 @@ /obj/structure/platform_decoration{ dir = 4 }, -/turf/open/asphalt/cement{ - icon_state = "cement15" - }, +/turf/open/asphalt/cement/cement15, /area/desert_dam/interior/dam_interior/northwestern_tunnel) "bzD" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper Tool Storage" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/auxilary_tool_storage) "bzE" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/desert_dam/interior/dam_interior/north_tunnel) "bzF" = ( /obj/effect/decal/sand_overlay/sand2{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/interior/dam_interior/northeastern_tunnel) "bzG" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/engine_west_wing) "bzH" = ( /turf/closed/wall/hangar{ @@ -24790,10 +18888,7 @@ /obj/effect/decal/warning_stripes{ pixel_y = 30 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/west, /area/desert_dam/interior/dam_interior/control_room) "bzJ" = ( /obj/structure/disposalpipe/segment, @@ -24803,9 +18898,7 @@ name = "\improper Colony Overseer's Office" }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/administration/overseer_office) "bzK" = ( /obj/structure/machinery/power/apc{ @@ -24813,65 +18906,43 @@ pixel_x = -30; start_charge = 0 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/desert_dam/interior/dam_interior/north_tunnel_entrance) "bzL" = ( /obj/structure/machinery/power/monitor{ name = "Core Power Monitoring" }, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/desert_dam/interior/dam_interior/control_room) "bzM" = ( /obj/structure/surface/table, /obj/item/device/analyzer, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/desert_dam/interior/dam_interior/control_room) "bzN" = ( /obj/structure/machinery/computer3/powermonitor, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/desert_dam/interior/dam_interior/control_room) "bzO" = ( /obj/structure/machinery/computer/atmos_alert, /obj/structure/surface/table, -/turf/open/floor/prison{ - dir = 5; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/northeast, /area/desert_dam/interior/dam_interior/control_room) "bzP" = ( /obj/effect/landmark/survivor_spawner, -/turf/open/floor{ - icon_state = "neutral" - }, +/turf/open/floor/neutral, /area/desert_dam/interior/dam_interior/engine_room) "bzQ" = ( /obj/structure/surface/table, /obj/item/storage/box/lights/mixed, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/west, /area/desert_dam/interior/dam_interior/engine_east_wing) "bzR" = ( /obj/structure/disposalpipe/segment{ dir = 8; icon_state = "pipe-c" }, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/desert_dam/exterior/valley/valley_wilderness) "bzS" = ( /obj/structure/prop/dam/boulder/boulder3, @@ -24879,21 +18950,14 @@ /area/desert_dam/exterior/valley/valley_wilderness) "bzT" = ( /obj/structure/closet/crate/secure, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/desert_dam/building/mining/workshop_foyer) "bzU" = ( /obj/structure/machinery/light, -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/desert_dam/building/substation/northwest) "bzV" = ( -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/desert_dam/exterior/valley/valley_wilderness) "bzW" = ( /obj/effect/landmark/survivor_spawner, @@ -24902,9 +18966,7 @@ "bzX" = ( /obj/structure/surface/table, /obj/item/device/taperecorder, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/desert_dam/building/security/interrogation) "bzY" = ( /turf/open/asphalt/cement_sunbleached, @@ -24916,9 +18978,7 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/desert_dam/building/security/evidence) "bAa" = ( /obj/structure/machinery/power/apc{ @@ -24926,16 +18986,10 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/north, /area/desert_dam/building/security/staffroom) "bAb" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkredcorners2" - }, +/turf/open/floor/prison/darkredcorners2/east, /area/desert_dam/building/security/staffroom) "bAc" = ( /obj/structure/bed/chair, @@ -24943,9 +18997,7 @@ /area/desert_dam/building/security/staffroom) "bAh" = ( /obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/dam_interior/hangar_storage) "bAm" = ( /obj/structure/window/framed/hangar, @@ -24956,9 +19008,7 @@ icon_state = "gib6" }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/administration/hallway) "bAp" = ( /obj/structure/machinery/power/apc{ @@ -24966,9 +19016,7 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/interior/dam_interior/northwestern_tunnel) "bAq" = ( /obj/effect/decal/warning_stripes{ @@ -24986,63 +19034,41 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/interior/dam_interior/north_tunnel) "bAt" = ( -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/interior/dam_interior/north_tunnel) "bAv" = ( /obj/effect/decal/sand_overlay/sand2{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/interior/dam_interior/north_tunnel) "bAw" = ( -/turf/open/desert/rock/deep/transition{ - dir = 1 - }, +/turf/open/desert/rock/deep/transition/north, /area/desert_dam/interior/caves/east_caves) "bAy" = ( /obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/southwest, /area/desert_dam/interior/dam_interior/engine_west_wing) "bAz" = ( -/turf/open/floor/prison{ - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2, /area/desert_dam/interior/dam_interior/engine_west_wing) "bAA" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/prison/darkyellowcorners2/west, /area/desert_dam/interior/dam_interior/engine_west_wing) "bAB" = ( /obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/prison{ - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2, /area/desert_dam/interior/dam_interior/engine_west_wing) "bAC" = ( /obj/structure/machinery/pipedispenser, -/turf/open/floor/prison{ - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2, /area/desert_dam/interior/dam_interior/engine_west_wing) "bAD" = ( /obj/structure/machinery/space_heater, -/turf/open/floor/prison{ - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2, /area/desert_dam/interior/dam_interior/engine_west_wing) "bAE" = ( /obj/structure/disposalpipe/segment{ @@ -25057,22 +19083,16 @@ /obj/structure/machinery/landinglight/ds1/delaytwo{ dir = 1 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached2" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached2, /area/desert_dam/exterior/landing_pad_one) "bAG" = ( -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/dam_interior/control_room) "bAH" = ( /obj/structure/bed/chair/office/light{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/dam_interior/control_room) "bAI" = ( /obj/structure/disposalpipe/segment{ @@ -25082,10 +19102,7 @@ /turf/open/floor/wood, /area/desert_dam/building/administration/overseer_office) "bAJ" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/east, /area/desert_dam/interior/dam_interior/control_room) "bAK" = ( /turf/open/floor/greengrid, @@ -25093,95 +19110,64 @@ "bAM" = ( /obj/structure/surface/table, /obj/item/storage/box/lightstick, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/west, /area/desert_dam/interior/dam_interior/engine_east_wing) "bAN" = ( /obj/effect/decal/sand_overlay/sand2, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/desert_dam/exterior/valley/valley_wilderness) "bAO" = ( /obj/structure/stairs, /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/desert_dam/exterior/valley/valley_wilderness) "bAP" = ( /obj/structure/stairs, /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/desert_dam/exterior/valley/valley_wilderness) "bAR" = ( /obj/effect/decal/sand_overlay/sand2/corner2{ dir = 8 }, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/desert_dam/exterior/valley/valley_wilderness) "bAS" = ( /obj/effect/decal/sand_overlay/sand2{ dir = 4 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_wilderness) "bAY" = ( /obj/effect/decal/sand_overlay/sand1, -/turf/open/floor/coagulation{ - icon_state = "2,0" - }, +/turf/open/floor/coagulation/icon2_0, /area/desert_dam/exterior/valley/valley_mining) "bAZ" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 6 }, -/turf/open/floor/coagulation{ - icon_state = "8,0" - }, +/turf/open/floor/coagulation/icon8_0, /area/desert_dam/exterior/valley/valley_mining) "bBb" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/desert_dam/building/security/evidence) "bBc" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkredcorners2" - }, +/turf/open/floor/prison/darkredcorners2/west, /area/desert_dam/building/security/holding) "bBd" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredcorners2" - }, +/turf/open/floor/prison/darkredcorners2/southwest, /area/desert_dam/building/security/holding) "bBe" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/east, /area/desert_dam/building/security/southern_hallway) "bBf" = ( /obj/effect/decal/sand_overlay/sand1, -/turf/open/floor/plating{ - dir = 10; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/southwest, /area/desert_dam/exterior/valley/valley_telecoms) "bBg" = ( /obj/structure/bed/chair, @@ -25191,25 +19177,17 @@ "bBh" = ( /obj/structure/powerloader_wreckage, /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/dam_interior/hangar_storage) "bBi" = ( /obj/effect/decal/cleanable/blood{ icon_state = "gib6" }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 8; - icon_state = "carpet10-8" - }, +/turf/open/floor/carpet10_8/west, /area/desert_dam/building/administration/overseer_office) "bBj" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/desert_dam/interior/dam_interior/hangar_storage) "bBk" = ( /obj/structure/machinery/power/apc{ @@ -25231,19 +19209,13 @@ /obj/structure/platform_decoration{ dir = 4 }, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/desert_dam/interior/dam_interior/northwestern_tunnel) "bBp" = ( -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/desert_dam/interior/dam_interior/northwestern_tunnel) "bBq" = ( -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/desert_dam/interior/dam_interior/north_tunnel) "bBr" = ( /obj/structure/platform_decoration{ @@ -25264,10 +19236,7 @@ /obj/structure/machinery/door/airlock/multi_tile/almayer/generic, /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/engine_west_wing) "bBv" = ( /obj/structure/machinery/power/apc{ @@ -25275,19 +19244,14 @@ pixel_x = -30; start_charge = 0 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/west, /area/desert_dam/interior/dam_interior/control_room) "bBw" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/desert_dam/interior/dam_interior/northwestern_tunnel) "bBx" = ( /obj/structure/surface/table/reinforced, @@ -25295,10 +19259,7 @@ id = "dam_checkpoint_northwest"; name = "Checkpoint Lockdown" }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/northwest, /area/desert_dam/interior/dam_interior/north_tunnel_entrance) "bBy" = ( /obj/effect/decal/cleanable/dirt, @@ -25307,58 +19268,42 @@ /area/desert_dam/building/security/staffroom) "bBD" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement{ - icon_state = "cement14" - }, +/turf/open/asphalt/cement/cement14, /area/desert_dam/interior/dam_interior/north_tunnel) "bBF" = ( /obj/structure/surface/table, /obj/structure/machinery/cell_charger, -/turf/open/floor/prison{ - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/prison/darkyellowcorners2, /area/desert_dam/interior/dam_interior/engine_east_wing) "bBG" = ( /obj/structure/surface/table, /obj/structure/machinery/light, -/turf/open/floor/prison{ - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2, /area/desert_dam/interior/dam_interior/engine_east_wing) "bBH" = ( /obj/structure/surface/table, -/turf/open/floor/prison{ - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2, /area/desert_dam/interior/dam_interior/engine_east_wing) "bBI" = ( -/turf/open/floor/prison{ - icon_state = "darkyellow2" - }, +/obj/structure/machinery/fuelcell_recycler/full, +/turf/open/floor/prison/darkyellow2, /area/desert_dam/interior/dam_interior/engine_east_wing) "bBL" = ( /turf/closed/wall/r_wall/prison, /area/desert_dam/building/security/deathrow) "bBM" = ( /obj/structure/largecrate/random, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/desert_dam/building/mining/workshop_foyer) "bBO" = ( /obj/structure/surface/table, /obj/item/paper_bin, /obj/item/tool/pen, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/desert_dam/building/security/deathrow) "bBP" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/desert_dam/interior/dam_interior/north_tunnel) "bBQ" = ( /obj/structure/platform{ @@ -25367,32 +19312,16 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/desert_dam/interior/dam_interior/northeastern_tunnel) "bBR" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/east, /area/desert_dam/building/mining/workshop_foyer) "bBS" = ( /obj/structure/bed/chair, /obj/structure/window/reinforced, /turf/open/floor/interior/wood, /area/desert_dam/building/security/courtroom) -"bBU" = ( -/obj/structure/machinery/power/apc{ - dir = 8; - pixel_x = -30; - start_charge = 0 - }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkred2" - }, -/area/desert_dam/building/security/southern_hallway) "bBV" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 @@ -25404,16 +19333,11 @@ /area/desert_dam/building/security/staffroom) "bCe" = ( /obj/structure/largecrate/random/secure, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/dam_interior/hangar_storage) "bCf" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 1; - icon_state = "bluecorner" - }, +/turf/open/floor/prison/bluecorner/north, /area/desert_dam/interior/dam_interior/tech_storage) "bCg" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -25430,9 +19354,7 @@ /obj/structure/platform_decoration{ dir = 1 }, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/desert_dam/interior/dam_interior/northwestern_tunnel) "bCj" = ( /obj/structure/platform_decoration, @@ -25454,33 +19376,25 @@ /obj/effect/decal/sand_overlay/sand2{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/interior/dam_interior/north_tunnel) "bCn" = ( /obj/effect/decal/sand_overlay/sand2/corner2{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/interior/dam_interior/northeastern_tunnel) "bCo" = ( /obj/effect/decal/sand_overlay/sand2{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/interior/dam_interior/northeastern_tunnel) "bCp" = ( /obj/effect/decal/sand_overlay/sand2/corner2{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/interior/dam_interior/northeastern_tunnel) "bCq" = ( /obj/structure/machinery/power/apc{ @@ -25491,15 +19405,11 @@ /obj/effect/decal/sand_overlay/sand2/corner2{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/interior/dam_interior/northeastern_tunnel) "bCr" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement{ - icon_state = "cement9" - }, +/turf/open/asphalt/cement/cement9, /area/desert_dam/interior/dam_interior/northeastern_tunnel) "bCs" = ( /obj/structure/window/framed/hangar, @@ -25507,36 +19417,21 @@ /turf/open/floor/plating, /area/desert_dam/interior/dam_interior/engine_room) "bCt" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/desert_dam/interior/dam_interior/lobby) "bCu" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/prison/darkyellowcorners2/east, /area/desert_dam/interior/dam_interior/lobby) "bCv" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/lobby) "bCw" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/lobby) "bCx" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/prison/darkyellowcorners2/north, /area/desert_dam/interior/dam_interior/lobby) "bCy" = ( /obj/structure/window/framed/hangar, @@ -25544,48 +19439,31 @@ /turf/open/floor/plating, /area/desert_dam/interior/dam_interior/engine_room) "bCz" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/prison/darkyellowcorners2/east, /area/desert_dam/interior/dam_interior/control_room) "bCA" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/dam_interior/tech_storage) "bCB" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/prison/darkyellowcorners2/north, /area/desert_dam/interior/dam_interior/control_room) "bCD" = ( /obj/structure/surface/table, /obj/structure/machinery/cell_charger, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/east, /area/desert_dam/interior/dam_interior/engine_east_wing) "bCH" = ( /obj/structure/cargo_container/grant/left, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_mining) "bCI" = ( /obj/structure/cargo_container/grant/rightmid, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_mining) "bCJ" = ( /obj/structure/cargo_container/grant/right, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_mining) "bCK" = ( /obj/structure/flora/grass/desert/heavygrass_4, @@ -25595,16 +19473,12 @@ /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/desert_dam/building/security/interrogation) "bCN" = ( /obj/structure/surface/table/reinforced, /obj/item/evidencebag, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/desert_dam/building/security/evidence) "bCO" = ( /obj/effect/decal/cleanable/dirt, @@ -25615,48 +19489,34 @@ /area/desert_dam/exterior/valley/valley_hydro) "bCP" = ( /obj/structure/cargo_container/hd/left/alt, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/dam_interior/hangar_storage) "bCQ" = ( /obj/structure/cargo_container/hd/mid/alt, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/dam_interior/hangar_storage) "bCR" = ( /obj/structure/cargo_container/hd/right/alt, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/dam_interior/hangar_storage) "bCS" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/desert_dam/interior/dam_interior/northwestern_tunnel) "bCT" = ( /obj/structure/machinery/light, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/interior/dam_interior/northwestern_tunnel) "bCU" = ( /obj/structure/pipes/vents/pump/on, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/dam_interior/tech_storage) "bCV" = ( /obj/effect/decal/sand_overlay/sand2{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/interior/dam_interior/north_tunnel) "bCW" = ( /obj/structure/stairs{ @@ -25671,14 +19531,10 @@ /obj/structure/platform_decoration{ dir = 8 }, -/turf/open/asphalt/cement{ - icon_state = "cement14" - }, +/turf/open/asphalt/cement/cement14, /area/desert_dam/interior/dam_interior/north_tunnel) "bCY" = ( -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/desert_dam/interior/dam_interior/northeastern_tunnel) "bCZ" = ( /obj/structure/platform_decoration{ @@ -25696,9 +19552,7 @@ /turf/open/asphalt/cement, /area/desert_dam/interior/dam_interior/northeastern_tunnel) "bDb" = ( -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/desert_dam/interior/dam_interior/northeastern_tunnel) "bDc" = ( /obj/structure/disposalpipe/segment{ @@ -25717,17 +19571,13 @@ dir = 4; icon_state = "pipe-c" }, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/desert_dam/interior/dam_interior/northeastern_tunnel) "bDg" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/desert_dam/interior/dam_interior/northeastern_tunnel) "bDh" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -25736,16 +19586,11 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/northeastern_tunnel) "bDi" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/dam_interior/auxilary_tool_storage) "bDj" = ( /obj/structure/surface/rack, @@ -25757,10 +19602,7 @@ icon_state = "W" }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/west, /area/desert_dam/interior/dam_interior/hanger) "bDl" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -25770,40 +19612,26 @@ dir = 2; icon_state = "pipe-c" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/lobby) "bDm" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/lobby) "bDn" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/control_room) "bDo" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/dam_interior/hanger) "bDp" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/control_room) "bDu" = ( /obj/structure/machinery/power/apc{ @@ -25811,9 +19639,7 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor{ - icon_state = "neutral" - }, +/turf/open/floor/neutral, /area/desert_dam/interior/dam_interior/engine_room) "bDw" = ( /obj/structure/machinery/power/apc{ @@ -25821,10 +19647,7 @@ pixel_x = 24; start_charge = 0 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/prison/darkyellowcorners2/north, /area/desert_dam/interior/dam_interior/engine_east_wing) "bDx" = ( /turf/closed/wall/r_wall/bunker{ @@ -25832,23 +19655,15 @@ }, /area/desert_dam/interior/dam_interior/atmos_storage) "bDy" = ( -/turf/open/desert/rock/deep{ - icon_state = "rock4" - }, +/turf/open/desert/rock/deep/rock4, /area/desert_dam/interior/caves/east_caves) "bDz" = ( /obj/structure/machinery/cm_vending/sorted/tech/tool_storage, -/turf/open/floor/prison{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/prison/green/north, /area/desert_dam/interior/dam_interior/atmos_storage) "bDA" = ( /obj/structure/machinery/cm_vending/sorted/tech/comp_storage, -/turf/open/floor/prison{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/prison/green/north, /area/desert_dam/interior/dam_interior/atmos_storage) "bDB" = ( /obj/structure/machinery/power/apc{ @@ -25856,39 +19671,25 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/prison/green/north, /area/desert_dam/interior/dam_interior/atmos_storage) "bDC" = ( /obj/structure/machinery/floodlight, -/turf/open/floor/prison{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/prison/green/north, /area/desert_dam/interior/dam_interior/atmos_storage) "bDD" = ( /obj/structure/machinery/floodlight, -/turf/open/floor/prison{ - dir = 5; - icon_state = "green" - }, +/turf/open/floor/prison/green/northeast, /area/desert_dam/interior/dam_interior/atmos_storage) "bDE" = ( /obj/structure/surface/table/reinforced, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/desert_dam/building/security/evidence) "bDI" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/east, /area/desert_dam/building/security/southern_hallway) "bDJ" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -25903,15 +19704,10 @@ /obj/structure/platform{ dir = 1 }, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/desert_dam/interior/dam_interior/north_tunnel) "bDL" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/north, /area/desert_dam/building/security/southern_hallway) "bDM" = ( /obj/structure/pipes/vents/pump{ @@ -25926,9 +19722,7 @@ /obj/structure/machinery/landinglight/ds1/delaythree{ dir = 1 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached4" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached4, /area/desert_dam/exterior/landing_pad_one) "bDR" = ( /obj/structure/window/framed/hangar, @@ -25956,9 +19750,7 @@ /obj/structure/barricade/wooden{ dir = 1 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached2" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached2, /area/desert_dam/exterior/valley/valley_civilian) "bDZ" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ @@ -25974,46 +19766,32 @@ dir = 2; name = "\improper Workshop" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/mining/workshop) "bEc" = ( /obj/effect/landmark/monkey_spawn, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/desert_dam/building/dorms/restroom) "bEd" = ( /obj/structure/cargo_container/kelland/left, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/dam_interior/hangar_storage) "bEe" = ( /obj/structure/cargo_container/kelland/right, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/dam_interior/hangar_storage) "bEf" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/desert_dam/interior/dam_interior/hangar_storage) "bEg" = ( /obj/structure/stairs, /obj/structure/platform{ dir = 8 }, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/desert_dam/interior/dam_interior/northwestern_tunnel) "bEh" = ( /obj/structure/stairs, @@ -26026,46 +19804,34 @@ /obj/structure/platform_decoration{ dir = 4 }, -/turf/open/asphalt/cement{ - icon_state = "cement15" - }, +/turf/open/asphalt/cement/cement15, /area/desert_dam/interior/dam_interior/north_tunnel) "bEj" = ( /obj/effect/decal/sand_overlay/sand2/corner2{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/interior/dam_interior/north_tunnel) "bEk" = ( /obj/effect/decal/sand_overlay/sand2{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/interior/dam_interior/north_tunnel) "bEl" = ( /obj/effect/decal/sand_overlay/sand2/corner2{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/interior/dam_interior/north_tunnel) "bEo" = ( /obj/effect/landmark/survivor_spawner, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/dam_interior/auxilary_tool_storage) "bEp" = ( /obj/structure/platform, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/desert_dam/interior/dam_interior/northwestern_tunnel) "bEq" = ( /obj/structure/stairs{ @@ -26077,9 +19843,7 @@ "bEr" = ( /obj/structure/platform, /obj/structure/machinery/light, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/desert_dam/interior/dam_interior/northwestern_tunnel) "bEu" = ( /obj/structure/platform_decoration, @@ -26107,17 +19871,11 @@ /area/desert_dam/interior/dam_interior/tech_storage) "bEz" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkbrown3" - }, +/turf/open/floor/prison/darkbrown3/west, /area/desert_dam/interior/dam_interior/hanger) "bEA" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/smes_main) "bEB" = ( /obj/effect/decal/warning_stripes{ @@ -26125,17 +19883,11 @@ }, /obj/item/tool/warning_cone, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/west, /area/desert_dam/interior/dam_interior/hanger) "bEC" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 8; - icon_state = "bluecorner" - }, +/turf/open/floor/prison/bluecorner/west, /area/desert_dam/interior/dam_interior/tech_storage) "bED" = ( /obj/effect/decal/warning_stripes{ @@ -26155,25 +19907,16 @@ dir = 1; icon_state = "pipe-c" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/lobby) "bEF" = ( /obj/structure/disposalpipe/segment, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/engine_west_wing) "bEG" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/engine_west_wing) "bEH" = ( /obj/structure/disposalpipe/segment{ @@ -26183,10 +19926,7 @@ dir = 8; icon_state = "pipe-j2" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/lobby) "bEI" = ( /obj/structure/disposalpipe/segment{ @@ -26196,19 +19936,13 @@ dir = 2; name = "\improper Engineering Hallway" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/control_room) "bEJ" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/control_room) "bEK" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -26217,10 +19951,7 @@ /obj/structure/disposalpipe/junction{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/control_room) "bEL" = ( /obj/effect/decal/cleanable/dirt, @@ -26238,17 +19969,11 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/control_room) "bEO" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/desert_dam/interior/dam_interior/hanger) "bEP" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ @@ -26261,10 +19986,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/engine_room) "bEQ" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -26273,9 +19995,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor{ - icon_state = "warning" - }, +/turf/open/floor/warning, /area/desert_dam/interior/dam_interior/engine_room) "bER" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -26284,9 +20004,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor{ - icon_state = "neutral" - }, +/turf/open/floor/neutral, /area/desert_dam/interior/dam_interior/engine_room) "bES" = ( /obj/structure/pipes/standard/manifold/hidden/green{ @@ -26295,9 +20013,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor{ - icon_state = "neutral" - }, +/turf/open/floor/neutral, /area/desert_dam/interior/dam_interior/engine_room) "bET" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -26310,10 +20026,7 @@ dir = 2; name = "\improper Engine Room" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/engine_room) "bEU" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -26322,10 +20035,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/engine_east_wing) "bEV" = ( /obj/structure/pipes/standard/manifold/hidden/green{ @@ -26335,27 +20045,17 @@ dir = 8; icon_state = "pipe-c" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/engine_east_wing) "bFa" = ( -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/dam_interior/atmos_storage) "bFb" = ( /obj/structure/machinery/portable_atmospherics/canister/air, -/turf/open/floor/prison{ - dir = 4; - icon_state = "green" - }, +/turf/open/floor/prison/green/east, /area/desert_dam/interior/dam_interior/atmos_storage) "bFc" = ( -/turf/open/desert/rock/deep/transition{ - dir = 8 - }, +/turf/open/desert/rock/deep/transition/west, /area/desert_dam/interior/caves/east_caves) "bFd" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ @@ -26364,49 +20064,34 @@ /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 4 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_mining) "bFe" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 4 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_mining) "bFf" = ( /obj/structure/surface/table, -/obj/item/handcuffs, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkred2" - }, +/obj/item/restraint/handcuffs, +/turf/open/floor/prison/darkred2/southwest, /area/desert_dam/building/security/holding) "bFg" = ( /obj/structure/machinery/landinglight/ds1{ dir = 1 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached9" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached9, /area/desert_dam/exterior/landing_pad_one) "bFi" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/north, /area/desert_dam/building/security/southern_hallway) "bFk" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/north, /area/desert_dam/building/security/southern_hallway) "bFl" = ( /obj/structure/machinery/power/apc{ @@ -26414,36 +20099,25 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/north, /area/desert_dam/building/security/southern_hallway) "bFm" = ( /obj/structure/surface/table, /obj/item/device/taperecorder, /obj/item/clothing/glasses/sunglasses, -/turf/open/floor/prison{ - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2, /area/desert_dam/building/security/holding) "bFn" = ( /obj/structure/surface/table, /obj/item/storage/donut_box, -/turf/open/floor/prison{ - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2, /area/desert_dam/building/security/holding) "bFo" = ( /obj/structure/machinery/light, -/turf/open/floor/prison{ - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2, /area/desert_dam/building/security/holding) "bFp" = ( -/turf/open/floor/prison{ - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2, /area/desert_dam/building/security/holding) "bFq" = ( /obj/structure/surface/rack, @@ -26452,36 +20126,23 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/desert_dam/building/substation/northwest) "bFr" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkredcorners2" - }, +/turf/open/floor/prison/darkredcorners2/east, /area/desert_dam/building/security/southern_hallway) "bFs" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkredcorners2" - }, +/turf/open/floor/prison/darkredcorners2/north, /area/desert_dam/building/security/southern_hallway) "bFt" = ( /obj/effect/decal/sand_overlay/sand1, -/turf/open/floor/plating{ - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate, /area/desert_dam/exterior/valley/valley_telecoms) "bFu" = ( /obj/structure/target, /obj/effect/decal/sand_overlay/sand1, -/turf/open/floor/plating{ - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate, /area/desert_dam/exterior/valley/valley_telecoms) "bFv" = ( /obj/structure/surface/table, @@ -26498,16 +20159,11 @@ dir = 1 }, /obj/structure/machinery/disposal, -/turf/open/floor/prison{ - dir = 6; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/southeast, /area/desert_dam/building/security/holding) "bFx" = ( /obj/structure/closet/secure_closet/brig, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/desert_dam/building/security/deathrow) "bFy" = ( /obj/structure/surface/table, @@ -26518,9 +20174,7 @@ "bFA" = ( /obj/structure/platform, /obj/effect/blocker/toxic_water/Group_2, -/turf/open/desert/desert_shore/desert_shore1{ - dir = 8 - }, +/turf/open/desert/desert_shore/desert_shore1/west, /area/desert_dam/exterior/river/riverside_central_north) "bFB" = ( /obj/structure/machinery/landinglight/ds1{ @@ -26528,50 +20182,37 @@ }, /turf/open/asphalt, /area/desert_dam/exterior/landing_pad_one) -"bFD" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" +"bFC" = ( +/obj/structure/flora/grass/tallgrass/desert/corner{ + dir = 9 }, +/turf/open/desert/dirt, +/area/desert_dam/exterior/landing_pad_two) +"bFD" = ( +/turf/open/floor/prison/floor_marked/southwest, /area/desert_dam/building/mining/workshop_foyer) "bFF" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached18" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached18, /area/desert_dam/exterior/valley/valley_mining) "bFG" = ( /obj/structure/largecrate/random/barrel/white, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/dam_interior/hangar_storage) "bFH" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkbrown3" - }, +/turf/open/floor/prison/darkbrown3/west, /area/desert_dam/interior/dam_interior/hangar_storage) "bFI" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/prison/darkyellowcorners2/east, /area/desert_dam/interior/dam_interior/hanger) "bFJ" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrowncorners3" - }, +/turf/open/floor/prison/darkbrowncorners3/north, /area/desert_dam/interior/dam_interior/hangar_storage) "bFK" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrown3" - }, +/turf/open/floor/prison/darkbrown3/north, /area/desert_dam/interior/dam_interior/hangar_storage) "bFL" = ( /obj/structure/platform{ @@ -26586,9 +20227,7 @@ /obj/structure/platform_decoration{ dir = 1 }, -/turf/open/asphalt/cement{ - icon_state = "cement9" - }, +/turf/open/asphalt/cement/cement9, /area/desert_dam/interior/dam_interior/north_tunnel) "bFN" = ( /obj/structure/platform_decoration{ @@ -26598,15 +20237,11 @@ /area/desert_dam/interior/dam_interior/northwestern_tunnel) "bFO" = ( /obj/structure/platform_decoration, -/turf/open/asphalt/cement{ - icon_state = "cement2" - }, +/turf/open/asphalt/cement/cement2, /area/desert_dam/interior/dam_interior/north_tunnel) "bFP" = ( /obj/structure/machinery/light, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/interior/dam_interior/northeastern_tunnel) "bFQ" = ( /obj/structure/disposalpipe/segment{ @@ -26614,55 +20249,34 @@ }, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/desert_dam/interior/dam_interior/northeastern_tunnel) "bFR" = ( /obj/structure/pipes/vents/pump/on, /obj/structure/disposalpipe/segment, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/engine_west_wing) "bFS" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/prison/darkyellowcorners2/west, /area/desert_dam/interior/dam_interior/lobby) "bFT" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/lobby) "bFU" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/prison/darkyellowcorners2, /area/desert_dam/interior/dam_interior/lobby) "bFV" = ( -/turf/open/floor/prison{ - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2, /area/desert_dam/interior/dam_interior/control_room) "bFW" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/prison/darkyellowcorners2/west, /area/desert_dam/interior/dam_interior/control_room) "bFX" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/control_room) "bFY" = ( /obj/structure/machinery/power/smes/buildable{ @@ -26673,25 +20287,19 @@ /turf/open/floor/plating, /area/desert_dam/interior/dam_interior/smes_main) "bFZ" = ( -/turf/open/floor/prison{ - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/prison/darkyellowcorners2, /area/desert_dam/interior/dam_interior/control_room) "bGa" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2, /area/desert_dam/interior/dam_interior/control_room) "bGb" = ( /obj/structure/surface/table, /obj/structure/machinery/cell_charger, -/turf/open/floor/prison{ - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2, /area/desert_dam/interior/dam_interior/control_room) "bGc" = ( /obj/structure/window/framed/colony/reinforced, @@ -26701,79 +20309,53 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached18" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached18, /area/desert_dam/exterior/valley/valley_mining) "bGg" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor{ - icon_state = "neutral" - }, +/turf/open/floor/neutral, /area/desert_dam/interior/dam_interior/engine_room) "bGh" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/prison/darkyellowcorners2/west, /area/desert_dam/interior/dam_interior/engine_east_wing) "bGi" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/engine_east_wing) "bGj" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony{ name = "\improper Atmospheric Storage" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/atmos_storage) "bGk" = ( /obj/structure/machinery/portable_atmospherics/powered/scrubber, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/dam_interior/atmos_storage) "bGn" = ( -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/desert_dam/interior/dam_interior/south_tunnel) "bGp" = ( -/turf/open/desert/rock/deep/transition{ - dir = 10 - }, +/turf/open/desert/rock/deep/transition/southwest, /area/desert_dam/interior/caves/east_caves) "bGs" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached18" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached18, /area/desert_dam/exterior/valley/valley_mining) "bGt" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/east, /area/desert_dam/building/mining/workshop_foyer) "bGu" = ( /obj/structure/platform, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/desert_dam/interior/dam_interior/central_tunnel) "bGv" = ( /obj/structure/surface/table, @@ -26788,9 +20370,7 @@ /area/desert_dam/building/security/staffroom) "bGx" = ( /obj/structure/toilet, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/desert_dam/building/security/deathrow) "bGy" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ @@ -26861,10 +20441,7 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/northwest, /area/desert_dam/building/security/southern_hallway) "bGJ" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ @@ -26877,9 +20454,7 @@ dir = 1; name = "\improper Observation" }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/desert_dam/building/security/observation) "bGL" = ( /obj/structure/pipes/standard/manifold/hidden/green{ @@ -26889,10 +20464,7 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 5; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/northeast, /area/desert_dam/building/security/southern_hallway) "bGO" = ( /obj/structure/pipes/standard/manifold/hidden/green, @@ -26902,20 +20474,14 @@ }, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/northwest, /area/desert_dam/building/security/southern_hallway) "bGP" = ( /obj/structure/machinery/computer/med_data, /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitered" - }, +/turf/open/floor/prison/whitered/north, /area/desert_dam/building/medical/chemistry) "bGQ" = ( /obj/structure/machinery/power/terminal{ @@ -26928,18 +20494,13 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/hangar_storage) "bGT" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/desert_dam/interior/dam_interior/northwestern_tunnel) "bGU" = ( /obj/structure/desertdam/decals/road_edge{ @@ -26973,25 +20534,16 @@ /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper Engineering Central" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/primary_tool_storage) "bHa" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/primary_tool_storage) "bHb" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper Engineering Central" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/primary_tool_storage) "bHc" = ( /turf/closed/wall/hangar{ @@ -27023,19 +20575,14 @@ icon_state = "pipe-c" }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 5; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/northeast, /area/desert_dam/building/security/southern_hallway) "bHh" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony{ dir = 2 }, /obj/structure/disposalpipe/segment, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/desert_dam/interior/dam_interior/lobby) "bHi" = ( /obj/structure/machinery/power/apc{ @@ -27043,20 +20590,14 @@ pixel_x = -30; start_charge = 0 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/west, /area/desert_dam/interior/dam_interior/lobby) "bHl" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk{ dir = 1 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/east, /area/desert_dam/interior/dam_interior/lobby) "bHm" = ( /turf/closed/wall/hangar{ @@ -27072,31 +20613,21 @@ name = "\improper Backup SMES" }, /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/smes_backup) "bHp" = ( /obj/structure/pipes/vents/pump/on, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/dam_interior/hanger) "bHq" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/dam_interior/engine_room) "bHr" = ( -/turf/open/floor{ - dir = 10; - icon_state = "warning" - }, +/turf/open/floor/warning/southwest, /area/desert_dam/interior/dam_interior/engine_room) "bHs" = ( /obj/structure/prop/dam/boulder/boulder3, @@ -27107,40 +20638,26 @@ /turf/open/floor/prison, /area/desert_dam/building/security/staffroom) "bHv" = ( -/turf/open/floor{ - dir = 7; - icon_state = "warning" - }, +/turf/open/floor/warning, /area/desert_dam/interior/dam_interior/engine_room) "bHw" = ( -/turf/open/floor{ - dir = 6; - icon_state = "warning" - }, +/turf/open/floor/warning/southeast, /area/desert_dam/interior/dam_interior/engine_room) "bHx" = ( /obj/structure/surface/table, /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/west, /area/desert_dam/interior/dam_interior/engine_east_wing) "bHy" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/prison/darkyellowcorners2, /area/desert_dam/interior/dam_interior/engine_east_wing) "bHz" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "greencorner" - }, +/turf/open/floor/prison/greencorner/west, /area/desert_dam/interior/dam_interior/atmos_storage) "bHB" = ( /obj/structure/closet/crate, @@ -27157,32 +20674,23 @@ }, /obj/item/storage/briefcase/inflatable, /obj/effect/landmark/objective_landmark/far, -/turf/open/floor/prison{ - dir = 4; - icon_state = "green" - }, +/turf/open/floor/prison/green/east, /area/desert_dam/interior/dam_interior/atmos_storage) "bHD" = ( /obj/effect/decal/sand_overlay/sand2{ dir = 1 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached4" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached4, /area/desert_dam/interior/caves/central_caves) "bHE" = ( -/turf/open/desert/rock/deep/transition{ - dir = 9 - }, +/turf/open/desert/rock/deep/transition/northwest, /area/desert_dam/interior/caves/east_caves) "bHF" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/prison, /area/desert_dam/building/security/staffroom) "bHG" = ( -/turf/open/desert/rock/deep/transition{ - dir = 6 - }, +/turf/open/desert/rock/deep/transition/southeast, /area/desert_dam/interior/caves/east_caves) "bHI" = ( /obj/structure/surface/table, @@ -27210,26 +20718,17 @@ /area/desert_dam/building/security/staffroom) "bHM" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/east, /area/desert_dam/building/security/staffroom) "bHN" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkredcorners2" - }, +/turf/open/floor/prison/darkredcorners2/west, /area/desert_dam/building/security/staffroom) "bHQ" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ dir = 2; name = "\improper Cargo Bay" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/hangar_storage) "bHR" = ( /obj/structure/stairs{ @@ -27249,34 +20748,20 @@ /area/desert_dam/interior/dam_interior/northwestern_tunnel) "bHT" = ( /obj/structure/machinery/light, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/interior/dam_interior/north_tunnel) "bHV" = ( -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/northwest, /area/desert_dam/interior/dam_interior/primary_tool_storage) "bHW" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/prison/darkyellowcorners2/east, /area/desert_dam/interior/dam_interior/primary_tool_storage) "bHX" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/primary_tool_storage) "bHY" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/prison/darkyellowcorners2/north, /area/desert_dam/interior/dam_interior/primary_tool_storage) "bHZ" = ( /obj/structure/surface/rack, @@ -27291,18 +20776,12 @@ /obj/item/ammo_magazine/smg/nailgun, /obj/item/ammo_magazine/smg/nailgun, /obj/item/ammo_magazine/smg/nailgun, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/desert_dam/interior/dam_interior/primary_tool_storage) "bIb" = ( /obj/structure/closet/secure_closet/engineering_welding, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/desert_dam/interior/dam_interior/primary_tool_storage) "bIc" = ( /obj/structure/closet/secure_closet/engineering_welding, @@ -27310,16 +20789,10 @@ dir = 1 }, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/desert_dam/interior/dam_interior/primary_tool_storage) "bId" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/east, /area/desert_dam/interior/dam_interior/primary_tool_storage) "bIe" = ( /obj/item/reagent_container/glass/bucket/mopbucket, @@ -27335,19 +20808,13 @@ /area/desert_dam/interior/dam_interior/northeastern_tunnel) "bIh" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrowncorners3" - }, +/turf/open/floor/prison/darkbrowncorners3/north, /area/desert_dam/interior/dam_interior/hanger) "bIl" = ( /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/east, /area/desert_dam/interior/dam_interior/lobby) "bIm" = ( /obj/structure/machinery/power/apc{ @@ -27355,98 +20822,70 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/northwest, /area/desert_dam/interior/dam_interior/smes_backup) "bIn" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/disposalpipe/segment, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/smes_main) "bIq" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/prison/darkyellowcorners2/north, /area/desert_dam/interior/dam_interior/smes_backup) "bIr" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/desert_dam/interior/dam_interior/smes_backup) "bIs" = ( -/turf/open/floor/plating{ - dir = 8; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/west, /area/desert_dam/interior/dam_interior/smes_backup) "bIt" = ( /turf/open/floor/plating, /area/desert_dam/interior/dam_interior/smes_backup) "bIu" = ( /obj/structure/machinery/light, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/dam_interior/engine_room) "bIv" = ( /obj/structure/surface/table, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/west, /area/desert_dam/interior/dam_interior/engine_east_wing) "bIw" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/east, /area/desert_dam/interior/dam_interior/engine_east_wing) "bIx" = ( /obj/structure/surface/rack, /obj/item/clothing/mask/gas, -/turf/open/floor/prison{ - dir = 10; - icon_state = "green" - }, +/turf/open/floor/prison/green/southwest, /area/desert_dam/interior/dam_interior/atmos_storage) "bIy" = ( /obj/structure/surface/rack, /obj/item/clothing/mask/gas, -/turf/open/floor/prison{ - icon_state = "green" - }, +/turf/open/floor/prison/green, /area/desert_dam/interior/dam_interior/atmos_storage) "bIz" = ( -/turf/open/floor/prison{ - icon_state = "green" - }, +/obj/structure/surface/rack, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/turf/open/floor/prison/green, /area/desert_dam/interior/dam_interior/atmos_storage) "bIA" = ( /obj/structure/machinery/portable_atmospherics/powered/pump, -/turf/open/floor/prison{ - icon_state = "green" - }, +/turf/open/floor/prison/green, /area/desert_dam/interior/dam_interior/atmos_storage) "bIB" = ( /obj/structure/machinery/power/port_gen/pacman, -/turf/open/floor/prison{ - icon_state = "green" - }, +/turf/open/floor/prison/green, /area/desert_dam/interior/dam_interior/atmos_storage) "bIC" = ( /obj/structure/machinery/power/port_gen/pacman, -/turf/open/floor/prison{ - dir = 6; - icon_state = "green" - }, +/turf/open/floor/prison/green/southeast, /area/desert_dam/interior/dam_interior/atmos_storage) "bID" = ( /turf/closed/wall/r_wall/bunker{ @@ -27482,19 +20921,13 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 5; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/northeast, /area/desert_dam/building/security/southern_hallway) "bIU" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 6 }, -/turf/open/floor/plating{ - dir = 6; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/southeast, /area/desert_dam/exterior/valley/valley_telecoms) "bIV" = ( /obj/structure/surface/table/woodentable, @@ -27502,30 +20935,21 @@ /turf/open/floor/interior/wood, /area/desert_dam/building/bar/backroom) "bIW" = ( -/turf/open/floor/prison{ - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2, /area/desert_dam/building/security/southern_hallway) "bIX" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2, /area/desert_dam/building/security/southern_hallway) "bIY" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ dir = 1 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/desert_dam/building/security/interrogation) "bIZ" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkredcorners2" - }, +/turf/open/floor/prison/darkredcorners2/west, /area/desert_dam/building/security/southern_hallway) "bJa" = ( /obj/effect/decal/cleanable/dirt, @@ -27533,31 +20957,21 @@ /area/desert_dam/building/security/southern_hallway) "bJb" = ( /obj/structure/cargo_container/arious/leftmid, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/dam_interior/hangar_storage) "bJc" = ( /obj/structure/cargo_container/arious/rightmid, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/dam_interior/hangar_storage) "bJd" = ( /obj/structure/cargo_container/arious/right, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/dam_interior/hangar_storage) "bJe" = ( -/turf/open/floor/prison{ - icon_state = "darkbrowncorners3" - }, +/turf/open/floor/prison/darkbrowncorners3, /area/desert_dam/interior/dam_interior/hangar_storage) "bJf" = ( -/turf/open/floor/prison{ - icon_state = "darkbrown3" - }, +/turf/open/floor/prison/darkbrown3, /area/desert_dam/interior/dam_interior/hangar_storage) "bJg" = ( /obj/structure/platform_decoration{ @@ -27575,21 +20989,15 @@ /obj/structure/platform{ dir = 8 }, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/desert_dam/interior/dam_interior/north_tunnel) "bJj" = ( -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/desert_dam/interior/dam_interior/north_tunnel) "bJk" = ( /obj/structure/platform, /obj/structure/machinery/light, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/desert_dam/interior/dam_interior/central_tunnel) "bJl" = ( /obj/structure/surface/table/reinforced, @@ -27598,25 +21006,17 @@ }, /obj/item/clothing/glasses/welding, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/west, /area/desert_dam/interior/dam_interior/primary_tool_storage) "bJm" = ( -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/dam_interior/primary_tool_storage) "bJn" = ( /obj/structure/machinery/light{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/east, /area/desert_dam/interior/dam_interior/smes_main) "bJo" = ( /obj/structure/surface/table, @@ -27628,15 +21028,10 @@ /turf/open/floor/plating, /area/desert_dam/interior/dam_interior/northeastern_tunnel) "bJq" = ( -/turf/open/floor{ - dir = 8; - icon_state = "whiteyellow" - }, +/turf/open/floor/whiteyellow/west, /area/desert_dam/interior/dam_interior/lobby) "bJr" = ( -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/desert_dam/interior/dam_interior/lobby) "bJs" = ( /obj/structure/pipes/standard/manifold/hidden/green, @@ -27644,10 +21039,7 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/hanger) "bJt" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -27657,18 +21049,12 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/hanger) "bJv" = ( /obj/structure/bed/stool, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/west, /area/desert_dam/interior/dam_interior/smes_backup) "bJx" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -27678,16 +21064,10 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/auxilary_tool_storage) "bJz" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/smes_backup) "bJB" = ( /obj/structure/machinery/power/port_gen/pacman, @@ -27704,15 +21084,10 @@ /turf/open/asphalt, /area/desert_dam/interior/dam_interior/south_tunnel) "bJF" = ( -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/desert_dam/interior/dam_interior/south_tunnel) "bJH" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredcorners2" - }, +/turf/open/floor/prison/darkredcorners2/southwest, /area/desert_dam/building/security/southern_hallway) "bJI" = ( /obj/structure/bed/chair{ @@ -27725,51 +21100,33 @@ dir = 1 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2, /area/desert_dam/building/security/southern_hallway) "bJK" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkredcorners2" - }, +/turf/open/floor/prison/darkredcorners2/west, /area/desert_dam/building/security/southern_hallway) "bJL" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/southwest, /area/desert_dam/building/security/southern_hallway) "bJM" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/disposalpipe/segment, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 6; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/southeast, /area/desert_dam/building/security/southern_hallway) "bJN" = ( /obj/effect/blocker/toxic_water/Group_2, /obj/structure/platform, -/turf/open/gm/river/desert/shallow_edge{ - dir = 8 - }, +/turf/open/gm/river/desert/shallow_edge/west, /area/desert_dam/exterior/river/riverside_central_north) "bJO" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredcorners2" - }, +/turf/open/floor/prison/darkredcorners2/southwest, /area/desert_dam/building/security/staffroom) "bJP" = ( /obj/structure/machinery/light, -/turf/open/floor/prison{ - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2, /area/desert_dam/building/security/staffroom) "bJQ" = ( /obj/structure/machinery/landinglight/ds1/delaytwo{ @@ -27783,21 +21140,13 @@ icon_state = "pipe-c" }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/southwest, /area/desert_dam/building/security/southern_hallway) "bJS" = ( -/turf/open/floor/prison{ - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2, /area/desert_dam/building/security/staffroom) "bJT" = ( -/turf/open/floor/prison{ - dir = 6; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/southeast, /area/desert_dam/building/security/staffroom) "bJU" = ( /turf/closed/wall/r_wall/prison, @@ -27811,24 +21160,18 @@ dir = 1 }, /obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/desert_dam/interior/dam_interior/western_dam_cave) "bKc" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/desert_dam/interior/dam_interior/western_dam_cave) "bKe" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ dir = 1; name = "\improper Evidence" }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/desert_dam/building/security/evidence) "bKf" = ( /obj/structure/bed/chair, @@ -27840,10 +21183,7 @@ icon_state = "pipe-c" }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 6; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/southeast, /area/desert_dam/building/security/southern_hallway) "bKj" = ( /obj/item/stack/sheet/wood, @@ -27865,22 +21205,16 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/dam_interior/hangar_storage) "bKn" = ( /obj/structure/largecrate/random/case, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/dam_interior/hangar_storage) "bKo" = ( /obj/structure/surface/table/almayer, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/dam_interior/hangar_storage) "bKp" = ( /obj/structure/surface/table/almayer, @@ -27888,9 +21222,7 @@ dir = 4 }, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/dam_interior/hangar_storage) "bKq" = ( /obj/structure/desertdam/decals/road_edge{ @@ -27912,9 +21244,7 @@ /area/desert_dam/interior/dam_interior/northwestern_tunnel) "bKt" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/desert_dam/interior/dam_interior/workshop) "bKv" = ( /obj/structure/platform_decoration{ @@ -27926,10 +21256,7 @@ /obj/structure/surface/table/reinforced, /obj/effect/spawner/random/technology_scanner, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/west, /area/desert_dam/interior/dam_interior/primary_tool_storage) "bKx" = ( /obj/structure/disposalpipe/segment{ @@ -27939,17 +21266,11 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/auxilary_tool_storage) "bKy" = ( /obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/east, /area/desert_dam/interior/dam_interior/primary_tool_storage) "bKz" = ( /obj/structure/machinery/light, @@ -27967,10 +21288,7 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/east, /area/desert_dam/interior/dam_interior/lobby) "bKC" = ( /obj/structure/machinery/landinglight/ds1/delaythree{ @@ -27983,35 +21301,21 @@ dir = 8; icon_state = "pipe-c" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/smes_backup) "bKE" = ( /obj/structure/machinery/power/terminal, -/turf/open/floor/plating{ - dir = 9; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/northwest, /area/desert_dam/interior/dam_interior/smes_backup) "bKF" = ( /obj/structure/machinery/power/terminal, -/turf/open/floor/plating{ - dir = 5; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/northeast, /area/desert_dam/interior/dam_interior/smes_backup) "bKG" = ( -/turf/open/floor/plating{ - dir = 10; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/southwest, /area/desert_dam/interior/dam_interior/smes_backup) "bKH" = ( -/turf/open/floor/plating{ - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate, /area/desert_dam/interior/dam_interior/smes_backup) "bKI" = ( /obj/structure/machinery/colony_floodlight, @@ -28025,10 +21329,7 @@ /area/desert_dam/building/security/courtroom) "bKK" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 6; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/southeast, /area/desert_dam/building/security/southern_hallway) "bKL" = ( /obj/structure/window/framed/hangar, @@ -28046,33 +21347,24 @@ /obj/structure/machinery/door/window/brigdoor/eastleft{ dir = 1 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/desert_dam/building/security/warden) "bKP" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ dir = 1; name = "\improper Visitation" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/desert_dam/building/security/southern_hallway) "bKQ" = ( /obj/structure/surface/table, /obj/effect/spawner/random/toolbox, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/southwest, /area/desert_dam/building/security/staffroom) "bKR" = ( /obj/structure/surface/table, /obj/effect/spawner/random/toolbox, -/turf/open/floor/prison{ - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2, /area/desert_dam/building/security/staffroom) "bKZ" = ( /obj/structure/pipes/standard/manifold/hidden/green, @@ -28081,32 +21373,21 @@ /area/desert_dam/building/security/courtroom) "bLa" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/west, /area/desert_dam/building/security/southern_hallway) "bLb" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/disposalpipe/segment, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/east, /area/desert_dam/building/security/southern_hallway) "bLc" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredcorners2" - }, +/turf/open/floor/prison/darkredcorners2/southwest, /area/desert_dam/building/security/southern_hallway) "bLd" = ( -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/desert_dam/building/security/southern_hallway) "bLe" = ( /obj/structure/surface/table/woodentable, @@ -28129,10 +21410,7 @@ }, /obj/structure/pipes/standard/manifold/hidden/green, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/auxilary_tool_storage) "bLh" = ( /obj/structure/desertdam/decals/road_edge{ @@ -28144,20 +21422,14 @@ /obj/structure/surface/table/reinforced, /obj/item/device/lightreplacer, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/west, /area/desert_dam/interior/dam_interior/primary_tool_storage) "bLk" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/auxilary_tool_storage) "bLl" = ( /obj/structure/pipes/standard/manifold/hidden/green{ @@ -28165,44 +21437,29 @@ }, /obj/structure/disposalpipe/segment, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/engine_west_wing) "bLm" = ( /obj/effect/spawner/random/toolbox, /obj/structure/surface/table/reinforced, /obj/item/device/radio, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/primary_tool_storage) "bLn" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/southwest, /area/desert_dam/building/mining/workshop) "bLo" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/engine_west_wing) "bLp" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/prison/darkyellowcorners2/north, /area/desert_dam/interior/dam_interior/smes_main) "bLq" = ( /turf/closed/wall/r_wall/bunker{ @@ -28219,44 +21476,28 @@ /obj/structure/disposalpipe/trunk{ dir = 1 }, -/turf/open/floor{ - icon_state = "whiteyellow" - }, +/turf/open/floor/whiteyellow, /area/desert_dam/interior/dam_interior/lobby) "bLu" = ( /obj/structure/closet/secure_closet/medical_doctor, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitered" - }, +/turf/open/floor/prison/whitered/north, /area/desert_dam/building/medical/chemistry) "bLv" = ( /obj/structure/surface/table, -/turf/open/floor{ - icon_state = "whiteyellow" - }, +/turf/open/floor/whiteyellow, /area/desert_dam/interior/dam_interior/lobby) "bLw" = ( /obj/structure/flora/pottedplant, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/west, /area/desert_dam/interior/dam_interior/lobby) "bLx" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/hanger) "bLy" = ( /obj/structure/flora/pottedplant, -/turf/open/floor/prison{ - dir = 6; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/southeast, /area/desert_dam/interior/dam_interior/lobby) "bLz" = ( /obj/structure/window/framed/hangar/reinforced, @@ -28267,10 +21508,7 @@ capacity = 1e+006; dir = 1 }, -/turf/open/floor/plating{ - dir = 10; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/southwest, /area/desert_dam/interior/dam_interior/smes_backup) "bLC" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ @@ -28278,21 +21516,13 @@ name = "\improper Tool Storage" }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/auxilary_tool_storage) "bLD" = ( -/turf/open/floor/prison{ - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/prison/darkyellowcorners2, /area/desert_dam/interior/dam_interior/smes_backup) "bLE" = ( -/turf/open/floor/prison{ - dir = 6; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/southeast, /area/desert_dam/interior/dam_interior/smes_backup) "bLF" = ( /obj/structure/platform{ @@ -28307,25 +21537,19 @@ /turf/open/gm/river/desert/deep, /area/desert_dam/exterior/river/riverside_east) "bLK" = ( -/turf/open/floor/prison{ - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2, /area/desert_dam/building/mining/workshop) "bLL" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/desert_dam/building/security/southern_hallway) "bLM" = ( /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/desert_dam/building/security/southern_hallway) "bLN" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ @@ -28334,39 +21558,26 @@ /turf/open/floor/prison, /area/desert_dam/building/security/southern_hallway) "bLO" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkredcorners2" - }, +/turf/open/floor/prison/darkredcorners2/east, /area/desert_dam/building/security/southern_hallway) "bLP" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkredcorners2" - }, +/turf/open/floor/prison/darkredcorners2/north, /area/desert_dam/building/security/southern_hallway) "bLQ" = ( /obj/structure/machinery/light, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkredcorners2" - }, +/turf/open/floor/prison/darkredcorners2/west, /area/desert_dam/building/security/staffroom) "bLR" = ( /obj/structure/largecrate/random/barrel/yellow, /turf/open/floor/plating, /area/desert_dam/building/warehouse/breakroom) "bLS" = ( -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/warehouse/breakroom) "bLT" = ( /obj/structure/machinery/vending/security, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/desert_dam/building/security/staffroom) "bLU" = ( /turf/closed/wall/r_wall/bunker{ @@ -28377,32 +21588,22 @@ /obj/effect/decal/sand_overlay/sand2/corner2{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/interior/dam_interior/workshop) "bLW" = ( -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/interior/dam_interior/workshop) "bLX" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/disposalpipe/segment, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/desert_dam/interior/dam_interior/workshop) "bLY" = ( -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/desert_dam/interior/dam_interior/workshop) "bLZ" = ( /obj/structure/closet/toolcloset, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/interior/dam_interior/workshop) "bMa" = ( /obj/structure/closet/toolcloset, @@ -28410,9 +21611,7 @@ dir = 1 }, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/interior/dam_interior/workshop) "bMb" = ( /turf/closed/wall/hangar{ @@ -28421,10 +21620,7 @@ /area/desert_dam/interior/dam_interior/workshop) "bMc" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/auxilary_tool_storage) "bMd" = ( /obj/structure/pipes/standard/manifold/hidden/green{ @@ -28435,29 +21631,20 @@ "bMe" = ( /obj/structure/surface/table/reinforced, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/west, /area/desert_dam/interior/dam_interior/primary_tool_storage) "bMf" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/primary_tool_storage) "bMg" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/primary_tool_storage) "bMi" = ( /obj/structure/surface/table/reinforced, @@ -28465,10 +21652,7 @@ dir = 4 }, /obj/effect/spawner/random/tool, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/primary_tool_storage) "bMj" = ( /obj/structure/surface/table/reinforced, @@ -28476,32 +21660,20 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/primary_tool_storage) "bMk" = ( /obj/structure/disposalpipe/segment, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/auxilary_tool_storage) "bMl" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/desert_dam/interior/dam_interior/engine_west_wing) "bMm" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/lobby) "bMn" = ( /obj/structure/machinery/disposal, @@ -28511,24 +21683,17 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/southwest, /area/desert_dam/interior/dam_interior/smes_backup) "bMo" = ( -/turf/open/floor/prison{ - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2, /area/desert_dam/interior/dam_interior/smes_backup) "bMp" = ( /obj/structure/surface/rack, /obj/item/stack/sheet/mineral/phoron{ amount = 50 }, -/turf/open/floor/prison{ - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2, /area/desert_dam/interior/dam_interior/smes_backup) "bMq" = ( /obj/structure/surface/rack, @@ -28538,52 +21703,37 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - dir = 6; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/southeast, /area/desert_dam/interior/dam_interior/smes_backup) "bMr" = ( /obj/structure/machinery/computer/prisoner, -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/northwest, /area/desert_dam/building/security/warden) "bMs" = ( /obj/structure/machinery/computer/secure_data, /obj/structure/surface/table, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/north, /area/desert_dam/building/security/warden) "bMt" = ( /obj/structure/platform{ dir = 8 }, /obj/effect/blocker/toxic_water/Group_2, -/turf/open/desert/desert_shore/desert_shore1{ - dir = 8 - }, +/turf/open/desert/desert_shore/desert_shore1/west, /area/desert_dam/exterior/river/riverside_central_north) "bMu" = ( /obj/structure/platform{ dir = 4 }, /obj/effect/blocker/toxic_water/Group_2, -/turf/open/desert/desert_shore/shore_corner2{ - dir = 4 - }, +/turf/open/desert/desert_shore/shore_corner2/east, /area/desert_dam/exterior/river/riverside_central_north) "bMv" = ( /obj/structure/platform{ dir = 4 }, /obj/effect/blocker/toxic_water/Group_2, -/turf/open/desert/desert_shore/desert_shore1{ - dir = 4 - }, +/turf/open/desert/desert_shore/desert_shore1/east, /area/desert_dam/exterior/river/riverside_central_north) "bMw" = ( /obj/structure/window/framed/hangar/reinforced, @@ -28595,34 +21745,24 @@ name = "Security Cameras - Habitation"; network = list("chigusa_2") }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkredcorners2" - }, +/turf/open/floor/prison/darkredcorners2/east, /area/desert_dam/building/security/warden) "bMD" = ( /obj/effect/decal/sand_overlay/sand2{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/interior/dam_interior/workshop) "bME" = ( /obj/structure/surface/rack, /obj/item/stack/sheet/wood{ amount = 10 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/interior/dam_interior/workshop) "bMG" = ( /obj/structure/machinery/light, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/desert_dam/interior/dam_interior/north_tunnel_entrance) "bMH" = ( /obj/effect/decal/warning_stripes{ @@ -28640,68 +21780,45 @@ /turf/open/asphalt, /area/desert_dam/interior/dam_interior/central_tunnel) "bML" = ( -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/desert_dam/interior/dam_interior/central_tunnel) "bMM" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk{ dir = 4 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/west, /area/desert_dam/interior/dam_interior/primary_tool_storage) "bMN" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/primary_tool_storage) "bMO" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/disposalpipe/junction, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/primary_tool_storage) "bMP" = ( /obj/structure/surface/table/reinforced, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/east, /area/desert_dam/interior/dam_interior/primary_tool_storage) "bMQ" = ( /obj/structure/disposalpipe/segment, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached9" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached9, /area/desert_dam/exterior/valley/south_valley_dam) "bMT" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached4" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached4, /area/desert_dam/exterior/valley/valley_mining) "bMW" = ( -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/desert_dam/interior/dam_interior/workshop) "bMX" = ( -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/northwest, /area/desert_dam/building/security/southern_hallway) "bMY" = ( /obj/structure/machinery/light{ @@ -28712,9 +21829,7 @@ "bMZ" = ( /obj/structure/surface/table/woodentable, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - icon_state = "cult" - }, +/turf/open/floor/cult, /area/desert_dam/building/security/courtroom) "bNa" = ( /obj/structure/machinery/light{ @@ -28726,16 +21841,12 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/warehouse/breakroom) "bNc" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/desert_dam/interior/dam_interior/workshop) "bNd" = ( /obj/structure/pipes/standard/manifold/hidden/green{ @@ -28746,10 +21857,7 @@ icon_state = "pipe-c" }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 5; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/northeast, /area/desert_dam/building/security/southern_hallway) "bNe" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -28761,10 +21869,7 @@ /turf/open/floor/prison, /area/desert_dam/building/security/southern_hallway) "bNf" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkredcorners2" - }, +/turf/open/floor/prison/darkredcorners2/west, /area/desert_dam/building/security/southern_hallway) "bNg" = ( /obj/structure/machinery/door_control{ @@ -28776,10 +21881,7 @@ "bNh" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/east, /area/desert_dam/building/security/southern_hallway) "bNi" = ( /turf/open/floor/prison, @@ -28812,32 +21914,22 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/west, /area/desert_dam/interior/dam_interior/primary_tool_storage) "bNo" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/toolbox, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/west, /area/desert_dam/interior/dam_interior/garage) "bNp" = ( /obj/structure/bed/chair/office/light{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/dam_interior/primary_tool_storage) "bNq" = ( /obj/structure/disposalpipe/segment, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached1" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached1, /area/desert_dam/exterior/valley/south_valley_dam) "bNr" = ( /obj/structure/platform{ @@ -28847,27 +21939,21 @@ dir = 8 }, /obj/effect/blocker/toxic_water/Group_1, -/turf/open/gm/river/desert/shallow_edge{ - dir = 8 - }, +/turf/open/gm/river/desert/shallow_edge/west, /area/desert_dam/exterior/river/riverside_central_south) "bNs" = ( /obj/structure/platform{ dir = 8 }, /obj/effect/blocker/toxic_water/Group_1, -/turf/open/gm/river/desert/shallow_edge{ - dir = 8 - }, +/turf/open/gm/river/desert/shallow_edge/west, /area/desert_dam/exterior/river/riverside_central_south) "bNt" = ( /obj/structure/platform_decoration{ dir = 8 }, /obj/effect/blocker/toxic_water/Group_2, -/turf/open/desert/desert_shore/shore_edge1{ - dir = 8 - }, +/turf/open/desert/desert_shore/shore_edge1/west, /area/desert_dam/exterior/river/riverside_central_north) "bNu" = ( /obj/effect/landmark/xeno_spawn, @@ -28875,10 +21961,7 @@ /turf/open/desert/rock/deep/transition, /area/desert_dam/interior/caves/east_caves) "bNv" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/east, /area/desert_dam/building/security/warden) "bNw" = ( /turf/closed/wall/r_wall/prison, @@ -28894,9 +21977,7 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 1 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_mining) "bNE" = ( /turf/closed/wall/r_wall/prison, @@ -28926,10 +22007,7 @@ pixel_x = -3; pixel_y = 2 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/west, /area/desert_dam/building/security/warden) "bNJ" = ( /obj/structure/bed/chair/office/dark{ @@ -28941,63 +22019,43 @@ /obj/structure/stairs{ dir = 8 }, -/turf/open/floor{ - icon_state = "cult" - }, +/turf/open/floor/cult, /area/desert_dam/building/security/courtroom) "bNL" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/west, /area/desert_dam/building/security/southern_hallway) "bNM" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 6; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/southeast, /area/desert_dam/building/security/southern_hallway) "bNN" = ( -/turf/open/floor{ - icon_state = "cult" - }, +/turf/open/floor/cult, /area/desert_dam/building/security/courtroom) "bNO" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor{ - icon_state = "cult" - }, +/turf/open/floor/cult, /area/desert_dam/building/security/courtroom) "bNP" = ( /obj/effect/decal/cleanable/blood, /turf/open/floor/prison, /area/desert_dam/building/security/warden) "bNQ" = ( -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/desert_dam/building/security/warden) "bNS" = ( /obj/structure/surface/rack, /obj/item/clothing/mask/gas, -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/northwest, /area/desert_dam/building/security/armory) "bNT" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkredcorners2" - }, +/turf/open/floor/prison/darkredcorners2/east, /area/desert_dam/building/security/armory) "bNY" = ( /turf/closed/wall/r_wall/bunker, @@ -29005,15 +22063,11 @@ "bNZ" = ( /obj/structure/surface/rack, /obj/item/stack/sheet/metal, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/interior/dam_interior/workshop) "bOa" = ( /obj/structure/machinery/autolathe, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/interior/dam_interior/workshop) "bOb" = ( /obj/structure/platform{ @@ -29021,7 +22075,6 @@ }, /obj/structure/platform, /obj/structure/machinery/light, -/obj/structure/machinery/light, /turf/open/asphalt/cement, /area/desert_dam/interior/dam_interior/northwestern_tunnel) "bOc" = ( @@ -29029,15 +22082,11 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/desert_dam/interior/dam_interior/workshop) "bOf" = ( /obj/effect/decal/sand_overlay/sand1/corner1, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached1" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached1, /area/desert_dam/exterior/valley/valley_telecoms) "bOh" = ( /obj/structure/platform_decoration{ @@ -29057,20 +22106,13 @@ /turf/open/asphalt/cement, /area/desert_dam/interior/dam_interior/northeastern_tunnel) "bOk" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/west, /area/desert_dam/interior/dam_interior/primary_tool_storage) "bOl" = ( -/turf/open/floor/prison{ - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/prison/darkyellowcorners2, /area/desert_dam/interior/dam_interior/primary_tool_storage) "bOm" = ( -/turf/open/floor/prison{ - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2, /area/desert_dam/interior/dam_interior/primary_tool_storage) "bOn" = ( /obj/structure/surface/table/reinforced, @@ -29078,38 +22120,26 @@ /obj/item/stack/sheet/glass{ amount = 30 }, -/turf/open/floor/prison{ - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2, /area/desert_dam/interior/dam_interior/primary_tool_storage) "bOo" = ( /obj/structure/machinery/constructable_frame{ icon_state = "box_1" }, -/turf/open/floor/prison{ - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2, /area/desert_dam/interior/dam_interior/primary_tool_storage) "bOp" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/constructable_frame, -/turf/open/floor/prison{ - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2, /area/desert_dam/interior/dam_interior/primary_tool_storage) "bOq" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/prison/darkyellowcorners2/west, /area/desert_dam/interior/dam_interior/primary_tool_storage) "bOr" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/smes_main) "bOs" = ( /obj/structure/surface/table/reinforced, @@ -29117,17 +22147,12 @@ amount = 30 }, /obj/effect/spawner/random/tool, -/turf/open/floor/prison{ - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2, /area/desert_dam/interior/dam_interior/primary_tool_storage) "bOt" = ( /obj/structure/surface/table/reinforced, /obj/item/device/multitool, -/turf/open/floor/prison{ - dir = 6; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/southeast, /area/desert_dam/interior/dam_interior/primary_tool_storage) "bOu" = ( /obj/effect/blocker/toxic_water/Group_1, @@ -29143,9 +22168,7 @@ "bOw" = ( /obj/structure/platform, /obj/effect/blocker/toxic_water/Group_2, -/turf/open/gm/river/desert/shallow_edge{ - dir = 4 - }, +/turf/open/gm/river/desert/shallow_edge/east, /area/desert_dam/exterior/river/riverside_central_north) "bOx" = ( /obj/structure/platform, @@ -29156,9 +22179,7 @@ /obj/structure/stairs{ dir = 4 }, -/turf/open/floor{ - icon_state = "cult" - }, +/turf/open/floor/cult, /area/desert_dam/building/security/courtroom) "bOB" = ( /obj/structure/bed/chair/wood/normal{ @@ -29180,10 +22201,7 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkredcorners2" - }, +/turf/open/floor/prison/darkredcorners2/east, /area/desert_dam/building/security/prison) "bOG" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -29194,10 +22212,7 @@ "bOH" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/west, /area/desert_dam/building/security/southern_hallway) "bOI" = ( /obj/effect/decal/cleanable/dirt, @@ -29205,10 +22220,7 @@ /turf/open/floor/prison, /area/desert_dam/building/security/prison) "bOJ" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/east, /area/desert_dam/building/security/prison) "bOK" = ( /obj/structure/machinery/power/apc{ @@ -29216,31 +22228,22 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/east, /area/desert_dam/building/security/armory) "bOM" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/interior/dam_interior/workshop) "bON" = ( /obj/structure/machinery/light, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrowncorners3" - }, +/turf/open/floor/prison/darkbrowncorners3, /area/desert_dam/interior/dam_interior/hanger) "bOO" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/desert_dam/interior/dam_interior/workshop) "bOP" = ( /turf/closed/wall/r_wall/bunker, @@ -29257,9 +22260,7 @@ /obj/structure/platform{ dir = 8 }, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/desert_dam/interior/dam_interior/west_tunnel) "bOU" = ( /obj/structure/desertdam/decals/road_edge, @@ -29275,18 +22276,14 @@ /turf/closed/wall/r_wall/bunker, /area/desert_dam/interior/dam_interior/central_tunnel) "bOY" = ( -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/interior/dam_interior/central_tunnel) "bOZ" = ( /obj/structure/stairs, /obj/structure/platform{ dir = 4 }, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/desert_dam/interior/dam_interior/north_tunnel) "bPa" = ( /obj/structure/stairs{ @@ -29295,9 +22292,7 @@ /obj/structure/platform{ dir = 8 }, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/desert_dam/interior/dam_interior/central_tunnel) "bPb" = ( /turf/closed/wall/hangar{ @@ -29308,10 +22303,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/west, /area/desert_dam/interior/dam_interior/primary_tool_storage) "bPe" = ( /obj/structure/machinery/disposal, @@ -29319,16 +22311,11 @@ dir = 1 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2, /area/desert_dam/interior/dam_interior/auxilary_tool_storage) "bPf" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkbrowncorners2" - }, +/turf/open/floor/prison/darkbrowncorners2/west, /area/desert_dam/interior/dam_interior/auxilary_tool_storage) "bPg" = ( /obj/structure/machinery/power/apc{ @@ -29336,19 +22323,13 @@ pixel_x = 28; start_charge = 0 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/east, /area/desert_dam/interior/dam_interior/primary_tool_storage) "bPh" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/engidoor/glass/colony{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/primary_tool_storage) "bPi" = ( /obj/structure/platform{ @@ -29358,48 +22339,36 @@ dir = 8 }, /obj/effect/blocker/toxic_water/Group_1, -/turf/open/desert/desert_shore/desert_shore1{ - dir = 8 - }, +/turf/open/desert/desert_shore/desert_shore1/west, /area/desert_dam/exterior/river/riverside_central_south) "bPj" = ( /obj/structure/platform_decoration{ dir = 4 }, /obj/effect/blocker/toxic_water/Group_1, -/turf/open/gm/river/desert/shallow_edge{ - dir = 8 - }, +/turf/open/gm/river/desert/shallow_edge/west, /area/desert_dam/exterior/river/riverside_central_south) "bPk" = ( /obj/structure/platform, /obj/effect/blocker/toxic_water/Group_2, -/turf/open/desert/desert_shore/desert_shore1{ - dir = 4 - }, +/turf/open/desert/desert_shore/desert_shore1/east, /area/desert_dam/exterior/river/riverside_central_north) "bPl" = ( /obj/effect/blocker/toxic_water/Group_2, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_wilderness) "bPm" = ( /obj/structure/machinery/colony_floodlight, /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 4 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/south_valley_dam) "bPn" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 5 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/south_valley_dam) "bPv" = ( /obj/structure/window/framed/hangar, @@ -29411,25 +22380,19 @@ /area/desert_dam/interior/dam_interior/primary_tool_storage) "bPz" = ( /obj/structure/machinery/computer/prisoner, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/desert_dam/building/security/prison) "bPA" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 1 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_telecoms) "bPB" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 5 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_telecoms) "bPC" = ( /obj/structure/surface/table, @@ -29437,9 +22400,7 @@ name = "Security Cameras - Habitation"; network = list("chigusa_2") }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/desert_dam/building/security/prison) "bPD" = ( /obj/structure/surface/table/reinforced, @@ -29447,24 +22408,16 @@ dir = 8; health = 80 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/desert_dam/building/security/prison) "bPE" = ( /obj/structure/surface/table, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/desert_dam/building/warehouse/breakroom) "bPF" = ( /obj/structure/surface/table, /obj/effect/landmark/good_item, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/desert_dam/building/warehouse/breakroom) "bPG" = ( /obj/structure/bed/chair{ @@ -29484,9 +22437,7 @@ dir = 8 }, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/desert_dam/building/security/prison) "bPJ" = ( /obj/structure/machinery/disposal, @@ -29494,29 +22445,20 @@ dir = 2; icon_state = "pipe-u" }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/desert_dam/building/warehouse/breakroom) "bPK" = ( /obj/structure/bed/chair/office/dark{ dir = 8 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/desert_dam/building/security/prison) "bPL" = ( -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/desert_dam/building/security/prison) "bPM" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/desert_dam/building/security/prison) "bPN" = ( /obj/structure/flora/grass/tallgrass/desert/corner{ @@ -29533,15 +22475,11 @@ amount = 10 }, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/interior/dam_interior/workshop) "bPQ" = ( /obj/structure/machinery/mill, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/interior/dam_interior/workshop) "bPR" = ( /obj/structure/machinery/power/apc{ @@ -29549,23 +22487,17 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/interior/dam_interior/workshop) "bPT" = ( /obj/structure/closet/secure_closet/engineering_personal, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/desert_dam/interior/dam_interior/office) "bPU" = ( /obj/structure/filingcabinet, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/desert_dam/interior/dam_interior/office) "bPV" = ( /obj/structure/desertdam/decals/road_edge, @@ -29581,32 +22513,23 @@ /obj/structure/surface/table/woodentable/fancy, /obj/item/storage/briefcase, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - dir = 8; - icon_state = "carpet13-5" - }, +/turf/open/floor/carpet13_5/west, /area/desert_dam/building/administration/overseer_office) "bPX" = ( /obj/structure/surface/table, /obj/item/device/radio, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/desert_dam/interior/dam_interior/office) "bPY" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement{ - icon_state = "cement2" - }, +/turf/open/asphalt/cement/cement2, /area/desert_dam/interior/dam_interior/central_tunnel) "bPZ" = ( /obj/effect/decal/sand_overlay/sand2/corner2{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/interior/dam_interior/central_tunnel) "bQa" = ( /obj/structure/stairs{ @@ -29615,9 +22538,7 @@ /obj/structure/platform{ dir = 4 }, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/desert_dam/interior/dam_interior/central_tunnel) "bQb" = ( /turf/open/asphalt/cement, @@ -29626,9 +22547,7 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/interior/dam_interior/central_tunnel) "bQd" = ( /obj/structure/machinery/power/monitor{ @@ -29637,16 +22556,10 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/northwest, /area/desert_dam/interior/dam_interior/CE_office) "bQe" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/desert_dam/interior/dam_interior/CE_office) "bQf" = ( /obj/structure/machinery/light{ @@ -29657,38 +22570,23 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/prison{ - dir = 5; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/northeast, /area/desert_dam/interior/dam_interior/CE_office) "bQg" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/desert_dam/interior/dam_interior/primary_tool_storage) "bQh" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/prison/darkyellowcorners2/east, /area/desert_dam/interior/dam_interior/primary_tool_storage) "bQj" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/prison/darkyellowcorners2/north, /area/desert_dam/interior/dam_interior/primary_tool_storage) "bQk" = ( -/turf/open/floor/plating{ - dir = 8; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/west, /area/desert_dam/interior/dam_interior/primary_tool_storage) "bQl" = ( /obj/structure/machinery/power/port_gen/pacman, @@ -29696,57 +22594,43 @@ /area/desert_dam/interior/dam_interior/primary_tool_storage) "bQm" = ( /obj/structure/disposalpipe/segment, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached15" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached15, /area/desert_dam/exterior/valley/south_valley_dam) "bQn" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached18" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached18, /area/desert_dam/exterior/valley/south_valley_dam) "bQo" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 1 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached18" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached18, /area/desert_dam/exterior/valley/south_valley_dam) "bQp" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 1 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached18" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached18, /area/desert_dam/exterior/valley/south_valley_dam) "bQq" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 1 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached15" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached15, /area/desert_dam/exterior/valley/south_valley_dam) "bQr" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached12" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached12, /area/desert_dam/exterior/valley/south_valley_dam) "bQs" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 5 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached9" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached9, /area/desert_dam/exterior/valley/south_valley_dam) "bQt" = ( /turf/open/asphalt, @@ -29756,10 +22640,7 @@ /turf/open/floor/prison, /area/desert_dam/building/security/prison) "bQv" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkredcorners2" - }, +/turf/open/floor/prison/darkredcorners2/west, /area/desert_dam/building/security/prison) "bQw" = ( /obj/structure/closet/l3closet/security, @@ -29767,16 +22648,12 @@ dir = 1 }, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/prison{ - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked, /area/desert_dam/building/security/armory) "bQx" = ( /obj/structure/closet/l3closet/security, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/prison{ - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked, /area/desert_dam/building/security/armory) "bQy" = ( /obj/structure/machinery/power/apc{ @@ -29784,30 +22661,19 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/prison/darkyellowcorners2/east, /area/desert_dam/building/warehouse/breakroom) "bQz" = ( /obj/structure/machinery/deployable/barrier, -/turf/open/floor/prison{ - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked, /area/desert_dam/building/security/armory) "bQA" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/northwest, /area/desert_dam/building/security/southern_hallway) "bQB" = ( /obj/structure/machinery/computer/arcade, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrowncorners2" - }, +/turf/open/floor/prison/darkbrowncorners2/north, /area/desert_dam/building/warehouse/breakroom) "bQC" = ( /obj/structure/surface/table, @@ -29816,24 +22682,16 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/west, /area/desert_dam/building/security/warden) "bQE" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 5; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/northeast, /area/desert_dam/building/security/southern_hallway) "bQF" = ( /obj/effect/blocker/toxic_water/Group_1, -/turf/open/gm/river/desert/shallow_edge/covered{ - dir = 8 - }, +/turf/open/gm/river/desert/shallow_edge/covered/west, /area/desert_dam/exterior/river/riverside_central_north) "bQG" = ( /obj/effect/landmark/corpsespawner/security/marshal, @@ -29850,10 +22708,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/east, /area/desert_dam/building/security/warden) "bQM" = ( /obj/structure/disposalpipe/trunk{ @@ -29863,30 +22718,20 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/desert_dam/building/security/warden) "bQN" = ( -/turf/open/floor{ - dir = 1; - icon_state = "warnwhite" - }, +/turf/open/floor/warnwhite/north, /area/desert_dam/exterior/valley/valley_telecoms) "bQO" = ( -/turf/open/gm/river/desert/shallow_edge{ - dir = 4 - }, +/turf/open/gm/river/desert/shallow_edge/east, /area/desert_dam/interior/dam_interior/western_dam_cave) "bQP" = ( /turf/open/gm/river/desert/shallow, /area/desert_dam/interior/dam_interior/western_dam_cave) "bQQ" = ( /obj/structure/flora/grass/desert/lightgrass_2, -/turf/open/desert/dirt{ - dir = 10; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/southwest, /area/desert_dam/exterior/valley/valley_medical) "bQR" = ( /obj/structure/machinery/power/apc{ @@ -29897,14 +22742,10 @@ /obj/effect/decal/sand_overlay/sand2{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/interior/dam_interior/western_dam_cave) "bQS" = ( -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/interior/dam_interior/western_dam_cave) "bQT" = ( /obj/structure/machinery/light{ @@ -29913,37 +22754,27 @@ /obj/effect/decal/sand_overlay/sand2/corner2{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/interior/dam_interior/workshop) "bQU" = ( /obj/effect/decal/sand_overlay/sand2{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/interior/dam_interior/workshop) "bQV" = ( /obj/effect/decal/sand_overlay/sand2/corner2{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/interior/dam_interior/workshop) "bQW" = ( /obj/effect/landmark/survivor_spawner, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/interior/dam_interior/workshop) "bQY" = ( /obj/effect/decal/sand_overlay/sand2/corner2, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/interior/dam_interior/workshop) "bQZ" = ( /obj/structure/machinery/power/apc{ @@ -29951,29 +22782,21 @@ pixel_x = -30; start_charge = 0 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/desert_dam/interior/dam_interior/office) "bRb" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/desert_dam/interior/dam_interior/office) "bRc" = ( /obj/structure/bed/chair/office/dark{ dir = 1 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/desert_dam/interior/dam_interior/office) "bRd" = ( /obj/structure/machinery/cm_vending/sorted/tech/electronics_storage, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/dam_interior/engine_west_wing) "bRe" = ( /obj/effect/decal/warning_stripes{ @@ -29988,23 +22811,16 @@ /turf/open/asphalt, /area/desert_dam/interior/dam_interior/central_tunnel) "bRg" = ( -/turf/open/desert/rock/deep/transition{ - dir = 6 - }, +/turf/open/desert/rock/deep/transition/southeast, /area/desert_dam/exterior/valley/valley_wilderness) "bRh" = ( /obj/effect/decal/sand_overlay/sand2{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/interior/dam_interior/central_tunnel) "bRi" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/west, /area/desert_dam/interior/dam_interior/CE_office) "bRj" = ( /obj/structure/window/framed/hangar/reinforced, @@ -30015,10 +22831,7 @@ /turf/open/floor/plating, /area/desert_dam/interior/dam_interior/office) "bRl" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/prison/darkyellowcorners2/north, /area/desert_dam/interior/dam_interior/CE_office) "bRn" = ( /obj/effect/landmark/static_comms/net_one, @@ -30031,9 +22844,7 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 10 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/south_valley_dam) "bRq" = ( /obj/structure/desertdam/decals/road_edge{ @@ -30060,24 +22871,17 @@ /turf/open/asphalt, /area/desert_dam/exterior/river/riverside_central_north) "bRv" = ( -/turf/open/floor{ - dir = 5; - icon_state = "warnwhite" - }, +/turf/open/floor/warnwhite/northeast, /area/desert_dam/exterior/valley/valley_telecoms) "bRw" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 8 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_telecoms) "bRx" = ( /obj/structure/machinery/light, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/desert_dam/building/security/prison) "bRy" = ( /obj/structure/window/framed/hangar/reinforced, @@ -30085,17 +22889,11 @@ /area/desert_dam/interior/dam_interior/CE_office) "bRz" = ( /obj/structure/machinery/washing_machine, -/turf/open/floor{ - dir = 9; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/northwest, /area/desert_dam/building/security/prison) "bRA" = ( /obj/structure/machinery/vending/cola, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/desert_dam/building/warehouse/breakroom) "bRB" = ( /obj/structure/machinery/door_control{ @@ -30112,25 +22910,16 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/desert_dam/building/security/prison) "bRD" = ( /obj/structure/surface/table/reinforced, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/desert_dam/building/security/prison) "bRE" = ( /obj/structure/surface/rack, /obj/item/clothing/mask/gas, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/west, /area/desert_dam/building/security/armory) "bRF" = ( /turf/open/floor/prison, @@ -30148,14 +22937,10 @@ /turf/open/gm/river/desert/shallow_corner, /area/desert_dam/interior/dam_interior/western_dam_cave) "bRJ" = ( -/turf/open/gm/river/desert/shallow_edge{ - dir = 5 - }, +/turf/open/gm/river/desert/shallow_edge/northeast, /area/desert_dam/interior/dam_interior/western_dam_cave) "bRK" = ( -/turf/open/desert/cave/cave_shore{ - dir = 5 - }, +/turf/open/desert/cave/cave_shore/northeast, /area/desert_dam/interior/dam_interior/western_dam_cave) "bRL" = ( /obj/effect/decal/sand_overlay/sand2{ @@ -30173,10 +22958,7 @@ /obj/item/clothing/head/welding, /obj/structure/surface/rack, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/smes_main) "bRO" = ( /obj/structure/window/framed/hangar, @@ -30184,16 +22966,11 @@ /area/desert_dam/interior/dam_interior/smes_backup) "bRQ" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/prison/darkyellowcorners2/east, /area/desert_dam/interior/dam_interior/engine_west_wing) "bRR" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/dam_interior/engine_west_wing) "bRS" = ( /obj/structure/pipes/vents/pump{ @@ -30204,35 +22981,26 @@ icon_state = "pipe-c" }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/engine_west_wing) "bRT" = ( /obj/effect/decal/sand_overlay/sand2{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/interior/dam_interior/workshop) "bRU" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/desert_dam/interior/dam_interior/office) "bRV" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/desert_dam/interior/dam_interior/office) "bRW" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -30240,14 +23008,10 @@ dir = 2; icon_state = "pipe-c" }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/desert_dam/interior/dam_interior/office) "bRX" = ( -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/desert_dam/interior/dam_interior/office) "bRY" = ( /obj/structure/surface/table, @@ -30255,31 +23019,21 @@ /obj/effect/spawner/random/tool, /obj/effect/spawner/random/tool, /obj/structure/machinery/light, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/desert_dam/interior/dam_interior/office) "bRZ" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 9 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_telecoms) "bSa" = ( /obj/structure/machinery/computer/arcade, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/desert_dam/building/security/prison) "bSb" = ( /obj/structure/machinery/vending/coffee, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/desert_dam/building/security/prison) "bSc" = ( /obj/structure/pipes/standard/manifold/hidden/green{ @@ -30290,10 +23044,7 @@ icon_state = "pipe-c" }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/engine_west_wing) "bSd" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -30303,10 +23054,7 @@ dir = 2 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/engine_west_wing) "bSe" = ( /obj/structure/pipes/standard/manifold/hidden/green{ @@ -30314,40 +23062,26 @@ }, /obj/structure/disposalpipe/segment, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/engine_west_wing) "bSf" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/control_room) "bSg" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/hangar_storage) "bSh" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/interior/dam_interior/northwestern_tunnel) "bSi" = ( /obj/structure/surface/rack, /obj/item/stack/sheet/mineral/phoron{ amount = 50 }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/west, /area/desert_dam/interior/dam_interior/primary_tool_storage) "bSj" = ( /obj/structure/surface/rack, @@ -30374,27 +23108,18 @@ "bSm" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkredcorners2" - }, +/turf/open/floor/prison/darkredcorners2/north, /area/desert_dam/building/security/southern_hallway) "bSn" = ( /obj/structure/machinery/vending/snack, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/desert_dam/building/security/prison) "bSo" = ( /obj/structure/machinery/vending/cola, /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/desert_dam/building/security/prison) "bSs" = ( /obj/structure/machinery/power/apc{ @@ -30402,144 +23127,90 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/darkyellowcorners2/north, /area/desert_dam/building/security/prison) "bSu" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkredcorners2" - }, +/turf/open/floor/prison/darkredcorners2/north, /area/desert_dam/building/security/armory) "bSv" = ( -/turf/open/floor{ - dir = 9; - icon_state = "warnwhite" - }, +/turf/open/floor/warnwhite/northwest, /area/desert_dam/exterior/valley/valley_telecoms) "bSw" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/disposalpipe/segment, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 5; - icon_state = "vault" - }, +/turf/open/floor/vault2/northeast, /area/desert_dam/building/security/prison) "bSx" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/north, /area/desert_dam/building/security/armory) "bSy" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/north, /area/desert_dam/building/security/armory) "bSz" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 5; - icon_state = "vault" - }, +/turf/open/floor/vault2/northeast, /area/desert_dam/building/security/prison) "bSA" = ( -/turf/open/floor/prison{ - dir = 5; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/northeast, /area/desert_dam/building/security/armory) "bSB" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkredcorners2" - }, +/turf/open/floor/prison/darkredcorners2/east, /area/desert_dam/building/security/warden) "bSG" = ( /obj/structure/holohoop{ dir = 4 }, -/turf/open/floor{ - dir = 8; - icon_state = "warnwhite" - }, +/turf/open/floor/warnwhite/west, /area/desert_dam/exterior/valley/valley_telecoms) "bSH" = ( -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/desert_dam/exterior/valley/valley_telecoms) "bSI" = ( /obj/structure/holohoop{ dir = 8 }, -/turf/open/floor{ - dir = 4; - icon_state = "warnwhite" - }, +/turf/open/floor/warnwhite/east, /area/desert_dam/exterior/valley/valley_telecoms) "bSJ" = ( /obj/effect/decal/sand_overlay/sand2{ dir = 4 }, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/desert_dam/interior/dam_interior/western_dam_cave) "bSK" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/disposalpipe/segment, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/engine_west_wing) "bSL" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/prison/darkyellowcorners2/west, /area/desert_dam/interior/dam_interior/engine_west_wing) "bSM" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/disposalpipe/segment, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/control_room) "bSO" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/desert_dam/interior/dam_interior/northeastern_tunnel) "bSP" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/desert_dam/interior/dam_interior/northeastern_tunnel) "bSQ" = ( -/turf/open/asphalt/cement{ - icon_state = "cement14" - }, +/turf/open/asphalt/cement/cement14, /area/desert_dam/interior/dam_interior/workshop) "bSR" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/prison/darkyellowcorners2, /area/desert_dam/interior/dam_interior/engine_west_wing) "bSS" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -30549,25 +23220,19 @@ /area/desert_dam/interior/dam_interior/workshop) "bST" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/dam_interior/control_room) "bSU" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/desert_dam/interior/dam_interior/workshop) "bSV" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 4 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_telecoms) "bSW" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony{ @@ -30576,15 +23241,10 @@ }, /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/disposalpipe/segment, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/desert_dam/interior/dam_interior/office) "bSX" = ( -/turf/open/floor{ - dir = 4; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/darkyellowcorners2/east, /area/desert_dam/building/security/prison) "bSY" = ( /obj/effect/blocker/toxic_water/Group_1, @@ -30592,9 +23252,7 @@ /area/desert_dam/exterior/river/riverside_central_north) "bSZ" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/prison/darkyellowcorners2, /area/desert_dam/interior/dam_interior/CE_office) "bTa" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -30602,59 +23260,43 @@ dir = 1; icon_state = "pipe-c" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/primary_tool_storage) "bTb" = ( /obj/structure/bed/chair/office/light{ dir = 1 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/dam_interior/control_room) "bTc" = ( /obj/structure/surface/table, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/prison{ - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/prison/darkyellowcorners2, /area/desert_dam/interior/dam_interior/primary_tool_storage) "bTd" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2, /area/desert_dam/interior/dam_interior/primary_tool_storage) "bTe" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/tech_supply, /obj/effect/spawner/random/tech_supply, -/turf/open/floor/prison{ - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2, /area/desert_dam/interior/dam_interior/primary_tool_storage) "bTf" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/technology_scanner, -/turf/open/floor/prison{ - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2, /area/desert_dam/interior/dam_interior/primary_tool_storage) "bTh" = ( /obj/structure/bed, /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/desert_dam/building/security/prison) "bTi" = ( /obj/effect/blocker/toxic_water/Group_2, @@ -30662,10 +23304,7 @@ /area/desert_dam/exterior/river/riverside_central_north) "bTj" = ( /obj/structure/surface/table, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/desert_dam/building/security/prison) "bTk" = ( /obj/structure/machinery/door/poddoor/almayer/locked{ @@ -30681,23 +23320,14 @@ /turf/open/floor/plating, /area/desert_dam/building/security/prison) "bTm" = ( -/turf/open/floor{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/west, /area/desert_dam/building/security/prison) "bTn" = ( -/turf/open/floor{ - dir = 5; - icon_state = "vault" - }, +/turf/open/floor/vault2/northeast, /area/desert_dam/building/security/prison) "bTo" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor{ - dir = 5; - icon_state = "vault" - }, +/turf/open/floor/vault2/northeast, /area/desert_dam/building/security/prison) "bTp" = ( /obj/structure/pipes/vents/pump{ @@ -30705,29 +23335,20 @@ }, /obj/structure/disposalpipe/segment, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 5; - icon_state = "vault" - }, +/turf/open/floor/vault2/northeast, /area/desert_dam/building/security/prison) "bTq" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 6; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/southeast, /area/desert_dam/building/security/southern_hallway) "bTr" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ name = "\improper Cell 1" }, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/desert_dam/building/security/prison) "bTs" = ( /obj/structure/machinery/squeezer, @@ -30745,9 +23366,7 @@ /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2, /area/desert_dam/building/security/southern_hallway) "bTw" = ( /obj/structure/disposalpipe/segment, @@ -30755,42 +23374,29 @@ /turf/open/floor/prison, /area/desert_dam/building/security/warden) "bTz" = ( -/turf/open/desert/cave/cave_shore{ - dir = 4 - }, +/turf/open/desert/cave/cave_shore/east, /area/desert_dam/interior/dam_interior/western_dam_cave) "bTA" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/dam_interior/hangar_storage) "bTB" = ( /obj/effect/decal/sand_overlay/sand2, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/interior/dam_interior/western_dam_cave) "bTC" = ( /obj/effect/decal/sand_overlay/sand2, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/interior/dam_interior/workshop) "bTD" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/disposalpipe/segment, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/hangar_storage) "bTE" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/desert_dam/interior/dam_interior/northwestern_tunnel) "bTF" = ( /obj/structure/pipes/standard/manifold/hidden/green{ @@ -30800,9 +23406,7 @@ /turf/open/asphalt/cement, /area/desert_dam/interior/dam_interior/northwestern_tunnel) "bTG" = ( -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/interior/dam_interior/west_tunnel) "bTH" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -30816,23 +23420,16 @@ /area/desert_dam/interior/dam_interior/west_tunnel) "bTJ" = ( /obj/structure/disposalpipe/segment, -/turf/open/asphalt/cement{ - icon_state = "cement9" - }, +/turf/open/asphalt/cement/cement9, /area/desert_dam/interior/dam_interior/central_tunnel) "bTL" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/southwest, /area/desert_dam/interior/dam_interior/CE_office) "bTM" = ( -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/desert_dam/interior/dam_interior/workshop) "bTN" = ( /obj/structure/machinery/light{ @@ -30842,17 +23439,11 @@ /obj/structure/disposalpipe/trunk{ dir = 1 }, -/turf/open/floor/prison{ - dir = 6; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/southeast, /area/desert_dam/interior/dam_interior/CE_office) "bTO" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/primary_tool_storage) "bTP" = ( /obj/structure/machinery/light{ @@ -30860,10 +23451,7 @@ }, /obj/structure/surface/table, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/prison{ - dir = 6; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/southeast, /area/desert_dam/interior/dam_interior/primary_tool_storage) "bTR" = ( /obj/structure/flora/grass/desert/lightgrass_1, @@ -30873,14 +23461,10 @@ /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 1 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_mining) "bTV" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached13" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached13, /area/desert_dam/exterior/valley/valley_mining) "bTW" = ( /turf/open/asphalt, @@ -30895,54 +23479,37 @@ /turf/open/asphalt, /area/desert_dam/exterior/valley/valley_mining) "bUa" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/prison/darkyellowcorners2/west, /area/desert_dam/building/mining/workshop) "bUb" = ( -/turf/open/floor/prison{ - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/prison/darkyellowcorners2, /area/desert_dam/building/mining/workshop) "bUd" = ( -/turf/open/gm/river/desert/shallow_corner{ - dir = 4 - }, +/turf/open/gm/river/desert/shallow_corner/east, /area/desert_dam/interior/dam_interior/western_dam_cave) "bUe" = ( -/turf/open/gm/river/desert/shallow_edge{ - dir = 6 - }, +/turf/open/gm/river/desert/shallow_edge/southeast, /area/desert_dam/interior/dam_interior/western_dam_cave) "bUf" = ( -/turf/open/desert/cave/cave_shore{ - dir = 6 - }, +/turf/open/desert/cave/cave_shore/southeast, /area/desert_dam/interior/dam_interior/western_dam_cave) "bUg" = ( /turf/open/desert/cave/cave_shore, /area/desert_dam/interior/dam_interior/western_dam_cave) "bUj" = ( /obj/structure/bed/chair/office/dark, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/interior/dam_interior/workshop) "bUk" = ( /obj/structure/disposalpipe/segment{ dir = 4; icon_state = "pipe-c" }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/interior/dam_interior/workshop) "bUl" = ( /obj/structure/disposalpipe/junction, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/interior/dam_interior/workshop) "bUm" = ( /obj/effect/decal/cleanable/dirt, @@ -30951,9 +23518,7 @@ "bUo" = ( /obj/structure/disposalpipe/segment, /obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/desert_dam/interior/dam_interior/workshop) "bUp" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -30969,24 +23534,17 @@ dir = 8 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/interior/dam_interior/north_tunnel) "bUr" = ( -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/desert_dam/interior/dam_interior/west_tunnel) "bUs" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper Tool Storage" }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/auxilary_tool_storage) "bUt" = ( /obj/structure/flora/grass/desert/heavygrass_4, @@ -31020,27 +23578,21 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached2" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached2, /area/desert_dam/exterior/valley/south_valley_dam) "bUB" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, /obj/effect/decal/sand_overlay/sand1/corner1, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached18" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached18, /area/desert_dam/exterior/valley/south_valley_dam) "bUC" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, /obj/effect/decal/sand_overlay/sand1, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached18" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached18, /area/desert_dam/exterior/valley/south_valley_dam) "bUD" = ( /obj/structure/disposalpipe/segment{ @@ -31049,25 +23601,19 @@ /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 8 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached18" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached18, /area/desert_dam/exterior/valley/south_valley_dam) "bUE" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached4" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached4, /area/desert_dam/exterior/valley/south_valley_dam) "bUF" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached9" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached9, /area/desert_dam/exterior/valley/south_valley_dam) "bUG" = ( /obj/structure/desertdam/decals/road_edge, @@ -31104,10 +23650,7 @@ /turf/open/asphalt, /area/desert_dam/exterior/valley/south_valley_dam) "bUM" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkredcorners2" - }, +/turf/open/floor/prison/darkredcorners2/north, /area/desert_dam/building/security/warden) "bUN" = ( /obj/structure/platform, @@ -31116,39 +23659,24 @@ /area/desert_dam/exterior/river/riverside_east) "bUQ" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/dam_interior/north_tunnel_entrance) "bUR" = ( -/turf/open/floor{ - icon_state = "warnwhite" - }, +/turf/open/floor/warnwhite, /area/desert_dam/exterior/valley/valley_telecoms) "bUS" = ( -/turf/open/floor{ - dir = 6; - icon_state = "warnwhite" - }, +/turf/open/floor/warnwhite/southeast, /area/desert_dam/exterior/valley/valley_telecoms) "bUT" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_telecoms) "bUU" = ( /obj/effect/landmark/monkey_spawn, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/desert_dam/building/security/prison) "bUV" = ( -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/desert_dam/building/security/prison) "bUW" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ @@ -31158,36 +23686,26 @@ /area/desert_dam/building/security/prison) "bUX" = ( /obj/structure/machinery/photocopier, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/interior/dam_interior/workshop) "bUY" = ( /obj/structure/surface/table, /obj/effect/spawner/random/tool, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/interior/dam_interior/workshop) "bUZ" = ( /obj/structure/surface/table, /obj/item/tool/lighter/random, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/interior/dam_interior/workshop) "bVa" = ( /obj/structure/machinery/cm_vending/sorted/tech/tool_storage, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/dam_interior/engine_west_wing) "bVb" = ( /obj/structure/surface/table, /obj/effect/spawner/random/toolbox, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/interior/dam_interior/workshop) "bVc" = ( /obj/structure/machinery/light, @@ -31195,32 +23713,24 @@ /obj/structure/disposalpipe/trunk{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/interior/dam_interior/workshop) "bVd" = ( /obj/structure/disposalpipe/segment{ dir = 1; icon_state = "pipe-c" }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/interior/dam_interior/workshop) "bVe" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/interior/dam_interior/workshop) "bVf" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/desert_dam/interior/dam_interior/workshop) "bVg" = ( /obj/structure/pipes/standard/manifold/hidden/green{ @@ -31228,51 +23738,37 @@ }, /obj/structure/disposalpipe/segment, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/control_room) "bVh" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/control_room) "bVj" = ( /obj/effect/landmark/survivor_spawner, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/dam_interior/hangar_storage) "bVk" = ( /obj/effect/decal/sand_overlay/sand2/corner2{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/interior/dam_interior/central_tunnel) "bVl" = ( /obj/effect/decal/sand_overlay/sand2{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/interior/dam_interior/central_tunnel) "bVm" = ( /obj/effect/decal/sand_overlay/sand2/corner2{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/interior/dam_interior/central_tunnel) "bVn" = ( /obj/structure/machinery/power/apc{ @@ -31280,24 +23776,17 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/interior/dam_interior/central_tunnel) "bVo" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkbrown3" - }, +/turf/open/floor/prison/darkbrown3/west, /area/desert_dam/interior/dam_interior/hangar_storage) "bVp" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/desert_dam/interior/dam_interior/central_tunnel) "bVq" = ( /turf/closed/wall/r_wall/bunker{ @@ -31330,24 +23819,18 @@ /obj/structure/platform{ dir = 8 }, -/turf/open/desert/dirt{ - icon_state = "dirt2" - }, +/turf/open/desert/dirt/dirt2, /area/desert_dam/exterior/river/riverside_central_south) "bVx" = ( /obj/structure/platform{ dir = 8 }, /obj/effect/blocker/toxic_water/Group_1, -/turf/open/desert/desert_shore/shore_corner2{ - dir = 1 - }, +/turf/open/desert/desert_shore/shore_corner2/north, /area/desert_dam/exterior/river/riverside_central_south) "bVy" = ( /obj/effect/blocker/toxic_water/Group_1, -/turf/open/gm/river/desert/shallow_edge{ - dir = 8 - }, +/turf/open/gm/river/desert/shallow_edge/west, /area/desert_dam/exterior/river/riverside_central_south) "bVz" = ( /obj/structure/platform{ @@ -31358,10 +23841,7 @@ /turf/open/gm/river/desert/shallow, /area/desert_dam/exterior/river/riverside_central_south) "bVA" = ( -/turf/open/floor{ - dir = 1; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/darkyellowcorners2/north, /area/desert_dam/building/security/prison) "bVD" = ( /turf/closed/wall/r_wall, @@ -31371,15 +23851,11 @@ /turf/open/desert/dirt, /area/desert_dam/exterior/valley/south_valley_dam) "bVF" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached17" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached17, /area/desert_dam/exterior/valley/south_valley_dam) "bVG" = ( /obj/structure/disposalpipe/segment, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached19" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached19, /area/desert_dam/exterior/valley/south_valley_dam) "bVI" = ( /obj/structure/machinery/power/apc{ @@ -31387,16 +23863,10 @@ pixel_x = 28; start_charge = 0 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/north, /area/desert_dam/building/security/warden) "bVJ" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkredcorners2" - }, +/turf/open/floor/prison/darkredcorners2/east, /area/desert_dam/building/security/armory) "bVK" = ( /obj/structure/barricade/sandbags{ @@ -31405,42 +23875,29 @@ /obj/structure/barricade/sandbags{ dir = 4 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_telecoms) "bVN" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/east, /area/desert_dam/building/security/armory) "bVO" = ( /obj/structure/disposalpipe/segment, /obj/effect/decal/sand_overlay/sand2/corner2{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/interior/dam_interior/workshop) "bVP" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/disposalpipe/segment, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/hangar_storage) "bVQ" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/hangar_storage) "bVR" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -31452,9 +23909,7 @@ }, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/desert_dam/interior/dam_interior/workshop) "bVS" = ( /obj/structure/stairs{ @@ -31481,17 +23936,13 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/desert_dam/interior/dam_interior/west_tunnel) "bVV" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/desert_dam/interior/dam_interior/central_tunnel) "bVW" = ( /obj/structure/platform_decoration{ @@ -31500,9 +23951,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/desert_dam/interior/dam_interior/central_tunnel) "bVX" = ( /obj/structure/stairs{ @@ -31521,9 +23970,7 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/desert_dam/interior/dam_interior/central_tunnel) "bVZ" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -31532,9 +23979,7 @@ /area/desert_dam/interior/dam_interior/northwestern_tunnel) "bWa" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/desert_dam/interior/dam_interior/north_tunnel) "bWb" = ( /obj/effect/decal/sand_overlay/sand2/corner2{ @@ -31542,24 +23987,18 @@ }, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/interior/dam_interior/northeastern_tunnel) "bWc" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/desert_dam/interior/dam_interior/northeastern_tunnel) "bWe" = ( /obj/structure/machinery/flasher/portable, -/turf/open/floor/prison{ - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked, /area/desert_dam/building/security/armory) "bWf" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ @@ -31583,9 +24022,7 @@ /turf/open/asphalt/cement, /area/desert_dam/interior/dam_interior/central_tunnel) "bWh" = ( -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/desert_dam/interior/dam_interior/central_tunnel) "bWi" = ( /obj/structure/flora/grass/desert/heavygrass_5, @@ -31603,22 +24040,16 @@ /obj/structure/platform{ dir = 8 }, -/turf/open/desert/dirt{ - icon_state = "dirt2" - }, +/turf/open/desert/dirt/dirt2, /area/desert_dam/exterior/river/riverside_central_south) "bWn" = ( /obj/structure/platform, /obj/effect/blocker/toxic_water/Group_1, -/turf/open/gm/river/desert/shallow_edge{ - dir = 8 - }, +/turf/open/gm/river/desert/shallow_edge/west, /area/desert_dam/exterior/river/riverside_central_south) "bWo" = ( /obj/effect/blocker/toxic_water/Group_1, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached18" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached18, /area/desert_dam/exterior/valley/north_valley_dam) "bWq" = ( /obj/structure/platform{ @@ -31634,9 +24065,7 @@ /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 1 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/south_valley_dam) "bWt" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -31670,9 +24099,7 @@ dir = 1 }, /obj/effect/blocker/toxic_water/Group_2, -/turf/open/desert/desert_shore/desert_shore1{ - dir = 8 - }, +/turf/open/desert/desert_shore/desert_shore1/west, /area/desert_dam/exterior/river/riverside_central_north) "bWA" = ( /obj/structure/pipes/vents/pump{ @@ -31692,9 +24119,7 @@ /area/desert_dam/building/security/warden) "bWD" = ( /obj/structure/disposalpipe/segment, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached14" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached14, /area/desert_dam/exterior/valley/valley_mining) "bWE" = ( /obj/structure/desertdam/decals/road_stop{ @@ -31710,23 +24135,17 @@ /turf/open/asphalt, /area/desert_dam/exterior/valley/valley_mining) "bWH" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached14" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached14, /area/desert_dam/exterior/valley/valley_mining) "bWI" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 8 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_mining) "bWJ" = ( /obj/structure/disposalpipe/segment, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_mining) "bWK" = ( /obj/structure/desertdam/decals/road_edge{ @@ -31743,10 +24162,7 @@ "bWM" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/blood, -/turf/open/floor{ - dir = 5; - icon_state = "vault" - }, +/turf/open/floor/vault2/northeast, /area/desert_dam/building/security/prison) "bWN" = ( /obj/structure/disposalpipe/segment{ @@ -31754,34 +24170,30 @@ icon_state = "pipe-c" }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 5; - icon_state = "vault" - }, +/turf/open/floor/vault2/northeast, /area/desert_dam/building/security/prison) +"bWO" = ( +/obj/item/reagent_container/food/drinks/flask/detflask, +/obj/item/clothing/head/det_hat, +/obj/structure/surface/table/woodentable/fancy, +/turf/open/floor/interior/wood, +/area/desert_dam/building/security/detective) "bWP" = ( /obj/structure/disposalpipe/segment, /obj/effect/decal/sand_overlay/sand2{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/interior/dam_interior/workshop) "bWR" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/interior/dam_interior/west_tunnel) "bWS" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkbrown3" - }, +/turf/open/floor/prison/darkbrown3/east, /area/desert_dam/interior/dam_interior/hangar_storage) "bWT" = ( /obj/structure/stairs{ @@ -31797,15 +24209,11 @@ /turf/open/asphalt/cement, /area/desert_dam/interior/dam_interior/west_tunnel) "bWV" = ( -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/desert_dam/interior/dam_interior/west_tunnel) "bWW" = ( /obj/structure/platform_decoration, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/desert_dam/interior/dam_interior/central_tunnel) "bWX" = ( /obj/structure/stairs{ @@ -31817,14 +24225,10 @@ "bWY" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/desert_dam/interior/dam_interior/northwestern_tunnel) "bXa" = ( -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/desert_dam/interior/dam_interior/central_tunnel) "bXc" = ( /obj/structure/flora/grass/desert/lightgrass_4, @@ -31839,69 +24243,51 @@ dir = 4 }, /obj/effect/blocker/toxic_water/Group_1, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached18" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached18, /area/desert_dam/exterior/valley/south_valley_dam) "bXf" = ( /obj/structure/platform{ dir = 1 }, /obj/effect/blocker/toxic_water/Group_1, -/turf/open/desert/desert_shore/desert_shore1{ - dir = 8 - }, +/turf/open/desert/desert_shore/desert_shore1/west, /area/desert_dam/exterior/river/riverside_central_south) "bXg" = ( /obj/structure/platform{ dir = 8 }, /obj/effect/blocker/toxic_water/Group_1, -/turf/open/desert/desert_shore/shore_edge1{ - dir = 1 - }, +/turf/open/desert/desert_shore/shore_edge1/north, /area/desert_dam/exterior/river/riverside_central_north) "bXh" = ( /obj/effect/blocker/toxic_water/Group_1, -/turf/open/desert/desert_shore/shore_corner2{ - dir = 1 - }, +/turf/open/desert/desert_shore/shore_corner2/north, /area/desert_dam/exterior/river/riverside_central_north) "bXi" = ( /obj/effect/blocker/toxic_water/Group_1, -/turf/open/gm/river/desert/shallow_edge{ - dir = 8 - }, +/turf/open/gm/river/desert/shallow_edge/west, /area/desert_dam/exterior/river/riverside_central_north) "bXj" = ( /obj/structure/platform_decoration{ dir = 8 }, /obj/effect/blocker/toxic_water/Group_2, -/turf/open/desert/desert_shore/desert_shore1{ - dir = 4 - }, +/turf/open/desert/desert_shore/desert_shore1/east, /area/desert_dam/exterior/river/riverside_central_north) "bXk" = ( /obj/structure/platform{ dir = 8 }, /obj/effect/blocker/toxic_water/Group_1, -/turf/open/desert/desert_shore/desert_shore1{ - dir = 8 - }, +/turf/open/desert/desert_shore/desert_shore1/west, /area/desert_dam/exterior/river/riverside_central_north) "bXl" = ( /obj/effect/blocker/toxic_water/Group_1, -/turf/open/gm/river/desert/shallow_edge{ - dir = 9 - }, +/turf/open/gm/river/desert/shallow_edge/northwest, /area/desert_dam/exterior/river/riverside_central_north) "bXm" = ( /obj/effect/blocker/toxic_water/Group_1, -/turf/open/gm/river/desert/shallow_corner{ - dir = 1 - }, +/turf/open/gm/river/desert/shallow_corner/north, /area/desert_dam/exterior/river/riverside_central_north) "bXn" = ( /obj/effect/blocker/toxic_water/Group_1, @@ -31911,25 +24297,19 @@ /obj/structure/platform{ dir = 1 }, -/turf/open/desert/dirt{ - icon_state = "dirt2" - }, +/turf/open/desert/dirt/dirt2, /area/desert_dam/exterior/river/riverside_east) "bXp" = ( /obj/structure/platform_decoration{ dir = 4 }, -/turf/open/desert/dirt{ - icon_state = "dirt2" - }, +/turf/open/desert/dirt/dirt2, /area/desert_dam/exterior/river/riverside_east) "bXq" = ( /obj/structure/platform_decoration{ dir = 8 }, -/turf/open/desert/dirt{ - icon_state = "dirt2" - }, +/turf/open/desert/dirt/dirt2, /area/desert_dam/exterior/river/riverside_east) "bXr" = ( /obj/structure/platform, @@ -31937,9 +24317,7 @@ dir = 8 }, /obj/effect/blocker/toxic_water/Group_1, -/turf/open/desert/desert_shore/desert_shore1{ - dir = 8 - }, +/turf/open/desert/desert_shore/desert_shore1/west, /area/desert_dam/exterior/river/riverside_central_north) "bXs" = ( /obj/structure/platform, @@ -31949,9 +24327,7 @@ "bXt" = ( /obj/structure/platform, /obj/effect/blocker/toxic_water/Group_1, -/turf/open/gm/river/desert/shallow_edge{ - dir = 8 - }, +/turf/open/gm/river/desert/shallow_edge/west, /area/desert_dam/exterior/river/riverside_central_north) "bXu" = ( /obj/structure/platform, @@ -31984,21 +24360,15 @@ "bXz" = ( /obj/structure/platform, /obj/effect/blocker/toxic_water/Group_2, -/turf/open/gm/river/desert/shallow_edge{ - dir = 5 - }, +/turf/open/gm/river/desert/shallow_edge/northeast, /area/desert_dam/exterior/river/riverside_central_north) "bXA" = ( /obj/structure/platform, /obj/effect/blocker/toxic_water/Group_2, -/turf/open/desert/desert_shore/shore_corner2{ - dir = 8 - }, +/turf/open/desert/desert_shore/shore_corner2/west, /area/desert_dam/exterior/river/riverside_central_north) "bXB" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached2" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached2, /area/desert_dam/exterior/valley/valley_mining) "bXC" = ( /obj/structure/desertdam/decals/road_edge{ @@ -32016,10 +24386,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor{ - dir = 5; - icon_state = "vault" - }, +/turf/open/floor/vault2/northeast, /area/desert_dam/building/security/prison) "bXF" = ( /obj/structure/desertdam/decals/road_edge{ @@ -32029,10 +24396,7 @@ /area/desert_dam/exterior/valley/valley_mining) "bXG" = ( /obj/structure/prop/dam/wide_boulder/boulder1, -/turf/open/desert/dirt{ - dir = 9; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/northwest, /area/desert_dam/exterior/valley/valley_mining) "bXH" = ( /obj/structure/desertdam/decals/road_edge, @@ -32062,9 +24426,7 @@ dir = 1; icon_state = "pipe-c" }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_mining) "bXN" = ( /obj/structure/desertdam/decals/road_edge, @@ -32079,17 +24441,12 @@ icon_state = "pipe-c" }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 5; - icon_state = "vault" - }, +/turf/open/floor/vault2/northeast, /area/desert_dam/building/security/prison) "bXP" = ( /obj/effect/decal/sand_overlay/sand1, /obj/effect/decal/cleanable/dirt, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_telecoms) "bXQ" = ( /turf/closed/wall/r_wall/bunker{ @@ -32113,9 +24470,7 @@ pixel_x = -30; start_charge = 0 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/interior/dam_interior/west_tunnel) "bXU" = ( /obj/structure/disposalpipe/segment{ @@ -32126,21 +24481,15 @@ /area/desert_dam/interior/dam_interior/northeastern_tunnel) "bXV" = ( /obj/effect/decal/sand_overlay/sand2/corner2, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/interior/dam_interior/central_tunnel) "bXW" = ( /obj/effect/decal/sand_overlay/sand2, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/interior/dam_interior/central_tunnel) "bXX" = ( /obj/structure/machinery/light, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/interior/dam_interior/central_tunnel) "bXY" = ( /obj/structure/platform{ @@ -32154,27 +24503,19 @@ dir = 1 }, /obj/effect/blocker/toxic_water/Group_1, -/turf/open/gm/river/desert/shallow_edge{ - dir = 8 - }, +/turf/open/gm/river/desert/shallow_edge/west, /area/desert_dam/exterior/river/riverside_central_south) "bYa" = ( /obj/effect/blocker/toxic_water/Group_1, -/turf/open/desert/desert_shore/desert_shore1{ - dir = 8 - }, +/turf/open/desert/desert_shore/desert_shore1/west, /area/desert_dam/exterior/river/riverside_central_south) "bYb" = ( /obj/effect/blocker/toxic_water/Group_1, -/turf/open/gm/river/desert/shallow_edge{ - dir = 9 - }, +/turf/open/gm/river/desert/shallow_edge/northwest, /area/desert_dam/exterior/river/riverside_central_south) "bYc" = ( /obj/effect/blocker/toxic_water/Group_2, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached18" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached18, /area/desert_dam/exterior/valley/north_valley_dam) "bYd" = ( /obj/effect/decal/warning_stripes{ @@ -32199,9 +24540,7 @@ dir = 8 }, /obj/effect/blocker/toxic_water/Group_1, -/turf/open/gm/river/desert/shallow_edge{ - dir = 8 - }, +/turf/open/gm/river/desert/shallow_edge/west, /area/desert_dam/exterior/river/riverside_central_north) "bYg" = ( /obj/effect/decal/cleanable/dirt, @@ -32238,16 +24577,11 @@ /turf/open/gm/river/desert/deep, /area/desert_dam/exterior/river/riverside_central_north) "bYl" = ( -/turf/open/floor{ - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/darkyellowcorners2, /area/desert_dam/building/security/prison) "bYm" = ( /obj/structure/bed, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/desert_dam/building/security/prison) "bYo" = ( /obj/structure/surface/rack, @@ -32294,10 +24628,7 @@ /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/west, /area/desert_dam/building/security/deathrow) "bYt" = ( /turf/open/floor/prison, @@ -32305,10 +24636,7 @@ "bYv" = ( /obj/structure/bed, /obj/effect/landmark/corpsespawner/prisoner, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/east, /area/desert_dam/building/security/deathrow) "bYw" = ( /obj/structure/desertdam/decals/road_edge{ @@ -32335,34 +24663,25 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/desert_dam/interior/dam_interior/northeastern_tunnel) "bYB" = ( /obj/structure/surface/rack, /obj/item/device/flashlight, /obj/item/device/flashlight/flare, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrown3" - }, +/turf/open/floor/prison/darkbrown3/north, /area/desert_dam/interior/dam_interior/disposals) "bYC" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/interior/dam_interior/west_tunnel) "bYD" = ( /obj/effect/decal/sand_overlay/sand2{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/interior/dam_interior/central_tunnel) "bYE" = ( /turf/closed/wall/hangar{ @@ -32371,9 +24690,7 @@ /area/desert_dam/interior/dam_interior/break_room) "bYF" = ( /obj/effect/blocker/toxic_water/Group_2, -/turf/open/gm/river/desert/shallow_edge/covered{ - dir = 4 - }, +/turf/open/gm/river/desert/shallow_edge/covered/east, /area/desert_dam/exterior/river/riverside_central_north) "bYG" = ( /obj/structure/pipes/standard/manifold/hidden/green{ @@ -32387,9 +24704,7 @@ /area/desert_dam/interior/dam_interior/northeastern_tunnel) "bYH" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/desert_dam/interior/dam_interior/break_room) "bYI" = ( /obj/structure/platform{ @@ -32430,22 +24745,15 @@ /area/desert_dam/exterior/valley/valley_mining) "bYN" = ( /obj/effect/decal/sand_overlay/sand1, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_mining) "bYO" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkbrowncorners2" - }, +/turf/open/floor/prison/darkbrowncorners2/west, /area/desert_dam/building/mining/workshop_foyer) "bYP" = ( /obj/effect/decal/sand_overlay/sand1, /obj/effect/decal/cleanable/blood, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_telecoms) "bYQ" = ( /obj/structure/surface/rack, @@ -32457,27 +24765,18 @@ /turf/open/floor/prison, /area/desert_dam/building/security/armory) "bYR" = ( -/turf/open/floor{ - dir = 10; - icon_state = "warnwhite" - }, +/turf/open/floor/warnwhite/southwest, /area/desert_dam/exterior/valley/valley_telecoms) "bYS" = ( /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor{ - dir = 5; - icon_state = "vault" - }, +/turf/open/floor/vault2/northeast, /area/desert_dam/building/security/prison) "bYT" = ( /obj/structure/surface/table/reinforced, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 5; - icon_state = "vault" - }, +/turf/open/floor/vault2/northeast, /area/desert_dam/building/security/prison) "bYV" = ( /obj/structure/desertdam/decals/road_edge{ @@ -32491,10 +24790,7 @@ }, /obj/structure/disposalpipe/segment, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 5; - icon_state = "vault" - }, +/turf/open/floor/vault2/northeast, /area/desert_dam/building/security/prison) "bYX" = ( /obj/structure/machinery/conveyor{ @@ -32526,20 +24822,13 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/lobby) "bZb" = ( -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/dam_interior/disposals) "bZc" = ( -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/desert_dam/interior/dam_interior/west_tunnel) "bZd" = ( /obj/structure/pipes/standard/manifold/hidden/green{ @@ -32550,10 +24839,7 @@ icon_state = "pipe-j2" }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/lobby) "bZe" = ( /turf/closed/wall/r_wall/bunker{ @@ -32562,9 +24848,7 @@ /area/desert_dam/interior/dam_interior/break_room) "bZf" = ( /obj/structure/toilet, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/desert_dam/interior/dam_interior/break_room) "bZg" = ( /obj/structure/machinery/power/apc{ @@ -32572,16 +24856,10 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor{ - dir = 9; - icon_state = "whiteyellow" - }, +/turf/open/floor/whiteyellow/northwest, /area/desert_dam/interior/dam_interior/break_room) "bZh" = ( -/turf/open/floor{ - dir = 1; - icon_state = "whiteyellowcorner" - }, +/turf/open/floor/whiteyellowcorner/north, /area/desert_dam/interior/dam_interior/break_room) "bZi" = ( /obj/structure/pipes/standard/manifold/hidden/green, @@ -32589,28 +24867,20 @@ dir = 8 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/lobby) "bZj" = ( /obj/structure/disposalpipe/segment{ dir = 1; icon_state = "pipe-c" }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/desert_dam/interior/dam_interior/break_room) "bZk" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowcorner" - }, +/turf/open/floor/whiteyellowcorner/east, /area/desert_dam/interior/dam_interior/break_room) "bZl" = ( /obj/structure/machinery/disposal, @@ -32620,54 +24890,36 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - dir = 1; - icon_state = "whiteyellow" - }, +/turf/open/floor/whiteyellow/north, /area/desert_dam/interior/dam_interior/break_room) "bZm" = ( /obj/structure/machinery/vending/cigarette/colony, -/turf/open/floor{ - dir = 1; - icon_state = "whiteyellow" - }, +/turf/open/floor/whiteyellow/north, /area/desert_dam/interior/dam_interior/break_room) "bZn" = ( /obj/structure/machinery/vending/coffee, -/turf/open/floor{ - dir = 1; - icon_state = "whiteyellow" - }, +/turf/open/floor/whiteyellow/north, /area/desert_dam/interior/dam_interior/break_room) "bZo" = ( /obj/structure/machinery/vending/snack, -/turf/open/floor{ - dir = 5; - icon_state = "whiteyellow" - }, +/turf/open/floor/whiteyellow/northeast, /area/desert_dam/interior/dam_interior/break_room) "bZp" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/interior/dam_interior/central_tunnel) "bZq" = ( /obj/effect/blocker/toxic_water/Group_1, -/turf/open/gm/river/desert/shallow_corner{ - dir = 1 - }, +/turf/open/gm/river/desert/shallow_corner/north, /area/desert_dam/exterior/river/riverside_central_south) "bZr" = ( /obj/structure/platform{ dir = 8 }, /obj/effect/blocker/toxic_water/Group_1, -/turf/open/desert/desert_shore/shore_edge1{ - dir = 1 - }, +/turf/open/desert/desert_shore/shore_edge1/north, /area/desert_dam/exterior/river/riverside_central_south) "bZs" = ( /obj/structure/platform{ @@ -32688,16 +24940,10 @@ /area/desert_dam/exterior/river/riverside_central_north) "bZu" = ( /obj/structure/bed, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/east, /area/desert_dam/building/security/deathrow) "bZv" = ( -/turf/open/floor/plating{ - dir = 9; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/northwest, /area/desert_dam/exterior/valley/valley_telecoms) "bZw" = ( /turf/closed/wall/r_wall/prison, @@ -32708,39 +24954,27 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/north, /area/desert_dam/building/medical/north_wing_hallway) "bZy" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/north, /area/desert_dam/building/medical/north_wing_hallway) "bZz" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 5; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/northeast, /area/desert_dam/building/medical/north_wing_hallway) "bZA" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/medical/north_wing_hallway) "bZC" = ( /obj/effect/decal/cleanable/dirt, @@ -32774,19 +25008,13 @@ "bZG" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/corpsespawner/prisoner, -/turf/open/floor{ - dir = 5; - icon_state = "vault" - }, +/turf/open/floor/vault2/northeast, /area/desert_dam/building/security/prison) "bZH" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/desert_dam/building/security/prison) "bZI" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ @@ -32794,20 +25022,14 @@ name = "\improper Rec Yard" }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 5; - icon_state = "vault" - }, +/turf/open/floor/vault2/northeast, /area/desert_dam/building/security/prison) "bZJ" = ( /turf/open/floor/prison, /area/desert_dam/building/security/execution_chamber) "bZK" = ( /obj/structure/target, -/turf/open/floor/plating{ - dir = 1; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/north, /area/desert_dam/exterior/valley/valley_telecoms) "bZL" = ( /obj/structure/machinery/power/apc{ @@ -32857,68 +25079,47 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/control_room) "bZU" = ( /obj/effect/decal/sand_overlay/sand2/corner2{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/interior/dam_interior/north_tunnel) "bZV" = ( /obj/structure/machinery/door/airlock/almayer/generic{ dir = 2; name = "\improper Toilet Unit" }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/desert_dam/interior/dam_interior/break_room) "bZW" = ( -/turf/open/floor{ - dir = 8; - icon_state = "whiteyellow" - }, +/turf/open/floor/whiteyellow/west, /area/desert_dam/interior/dam_interior/break_room) "bZX" = ( -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowcorner" - }, +/turf/open/floor/whiteyellowcorner/east, /area/desert_dam/interior/dam_interior/break_room) "bZY" = ( /obj/effect/decal/sand_overlay/sand2{ dir = 1 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/interior/dam_interior/north_tunnel) "bZZ" = ( /obj/effect/blocker/toxic_water/Group_1, -/turf/open/desert/desert_shore/shore_corner2{ - dir = 1 - }, +/turf/open/desert/desert_shore/shore_corner2/north, /area/desert_dam/exterior/river/riverside_central_south) "cac" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached3" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached3, /area/desert_dam/exterior/valley/valley_medical) "cad" = ( -/turf/open/desert/rock/deep/transition{ - dir = 10 - }, +/turf/open/desert/rock/deep/transition/southwest, /area/desert_dam/interior/caves/central_caves) "cae" = ( /obj/structure/desertdam/decals/road_stop{ @@ -32943,51 +25144,31 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/desert_dam/interior/dam_interior/workshop) "cai" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 4; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/darkyellowcorners2/east, /area/desert_dam/building/security/prison) "caj" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkbrowncorners2" - }, +/turf/open/floor/prison/darkbrowncorners2/southwest, /area/desert_dam/building/mining/workshop_foyer) "cak" = ( -/turf/open/floor{ - dir = 8; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/darkyellowcorners2/west, /area/desert_dam/building/security/prison) "cal" = ( /obj/structure/disposalpipe/segment, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 5; - icon_state = "vault" - }, +/turf/open/floor/vault2/northeast, /area/desert_dam/building/security/prison) "cam" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ name = "\improper Cell 2" }, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/desert_dam/building/security/prison) "can" = ( -/turf/open/floor/plating{ - dir = 1; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/north, /area/desert_dam/exterior/valley/valley_telecoms) "cao" = ( /obj/structure/bed/chair, @@ -32997,32 +25178,20 @@ /turf/open/floor/prison, /area/desert_dam/building/security/execution_chamber) "cap" = ( -/turf/open/floor/plating{ - dir = 5; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/northeast, /area/desert_dam/exterior/valley/valley_telecoms) "caq" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/west, /area/desert_dam/building/security/deathrow) "car" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/east, /area/desert_dam/building/security/deathrow) "cat" = ( /obj/structure/machinery/vending/snack, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/desert_dam/building/warehouse/breakroom) "cau" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ @@ -33031,9 +25200,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached4" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached4, /area/desert_dam/exterior/valley/valley_medical) "cav" = ( /obj/effect/decal/sand_overlay/sand1{ @@ -33042,16 +25209,11 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached4" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached4, /area/desert_dam/exterior/valley/valley_medical) "caw" = ( /obj/structure/machinery/vending/cigarette/colony, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/desert_dam/building/warehouse/breakroom) "cax" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ @@ -33060,9 +25222,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached4" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached4, /area/desert_dam/exterior/valley/valley_medical) "cay" = ( /obj/structure/machinery/conveyor{ @@ -33072,22 +25232,16 @@ /turf/open/floor/plating, /area/desert_dam/interior/dam_interior/disposals) "caB" = ( -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/desert_dam/interior/dam_interior/west_tunnel) "caC" = ( -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/desert_dam/interior/dam_interior/break_room) "caD" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/desert_dam/interior/dam_interior/break_room) "caF" = ( /obj/effect/decal/cleanable/dirt, @@ -33095,14 +25249,10 @@ /area/desert_dam/interior/dam_interior/northeastern_tunnel) "caG" = ( /obj/effect/blocker/toxic_water/Group_1, -/turf/open/gm/river/desert/shallow_corner{ - dir = 4 - }, +/turf/open/gm/river/desert/shallow_corner/east, /area/desert_dam/exterior/river/riverside_central_south) "caH" = ( -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_medical) "caI" = ( /obj/effect/blocker/toxic_water/Group_2, @@ -33122,18 +25272,14 @@ dir = 4 }, /obj/effect/blocker/toxic_water/Group_2, -/turf/open/gm/river/desert/shallow_edge{ - dir = 4 - }, +/turf/open/gm/river/desert/shallow_edge/east, /area/desert_dam/exterior/river/riverside_central_north) "caM" = ( /obj/structure/platform{ dir = 8 }, /obj/effect/blocker/toxic_water/Group_1, -/turf/open/gm/river/desert/shallow_edge{ - dir = 8 - }, +/turf/open/gm/river/desert/shallow_edge/west, /area/desert_dam/exterior/river/riverside_central_north) "caO" = ( /obj/structure/surface/rack, @@ -33154,18 +25300,12 @@ /area/desert_dam/building/security/prison) "caR" = ( /obj/structure/surface/table/reinforced, -/turf/open/floor{ - dir = 10; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/southwest, /area/desert_dam/building/security/prison) "caS" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/light, -/turf/open/floor{ - dir = 8; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/darkyellowcorners2/west, /area/desert_dam/building/security/prison) "caT" = ( /obj/structure/barricade/sandbags, @@ -33173,9 +25313,7 @@ dir = 4 }, /obj/effect/decal/sand_overlay/sand1, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_telecoms) "caU" = ( /obj/effect/landmark/crap_item, @@ -33236,9 +25374,7 @@ dir = 8; icon_state = "pipe-j2" }, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/desert_dam/interior/dam_interior/northeastern_tunnel) "cbg" = ( /obj/structure/window/framed/hangar, @@ -33250,9 +25386,7 @@ }, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/desert_dam/interior/dam_interior/central_tunnel) "cbi" = ( /obj/structure/sink{ @@ -33260,9 +25394,7 @@ pixel_x = -12; pixel_y = 2 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/desert_dam/interior/dam_interior/break_room) "cbj" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -33272,9 +25404,7 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement{ - icon_state = "cement9" - }, +/turf/open/asphalt/cement/cement9, /area/desert_dam/interior/dam_interior/northeastern_tunnel) "cbk" = ( /obj/structure/surface/table, @@ -33284,21 +25414,14 @@ /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowcorner" - }, +/turf/open/floor/whiteyellowcorner/east, /area/desert_dam/interior/dam_interior/break_room) "cbl" = ( -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/desert_dam/interior/dam_interior/northeastern_tunnel) "cbm" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/desert_dam/interior/dam_interior/northeastern_tunnel) "cbn" = ( /obj/structure/disposalpipe/segment, @@ -33311,10 +25434,7 @@ name = "\improper Engineering Hallway" }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/northeastern_tunnel) "cbq" = ( /obj/structure/disposalpipe/segment{ @@ -33322,10 +25442,7 @@ icon_state = "pipe-c" }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/lobby) "cbr" = ( /obj/structure/disposalpipe/segment{ @@ -33333,10 +25450,7 @@ icon_state = "pipe-c" }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/lobby) "cbs" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -33347,28 +25461,21 @@ icon_state = "pipe-j2" }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/control_room) "cbt" = ( /obj/structure/platform{ dir = 1 }, /obj/effect/blocker/toxic_water/Group_1, -/turf/open/desert/desert_shore/shore_edge1{ - dir = 1 - }, +/turf/open/desert/desert_shore/shore_edge1/north, /area/desert_dam/exterior/river/riverside_central_south) "cbu" = ( /obj/structure/platform{ dir = 1 }, /obj/effect/blocker/toxic_water/Group_1, -/turf/open/desert/desert_shore/desert_shore1{ - dir = 1 - }, +/turf/open/desert/desert_shore/desert_shore1/north, /area/desert_dam/exterior/river/riverside_central_south) "cbv" = ( /obj/structure/platform{ @@ -33396,9 +25503,7 @@ dir = 4 }, /obj/effect/blocker/toxic_water/Group_2, -/turf/open/gm/river/desert/shallow_edge{ - dir = 4 - }, +/turf/open/gm/river/desert/shallow_edge/east, /area/desert_dam/exterior/river/riverside_central_north) "cbz" = ( /obj/structure/platform{ @@ -33406,9 +25511,7 @@ }, /obj/structure/platform, /obj/effect/blocker/toxic_water/Group_1, -/turf/open/gm/river/desert/shallow_edge{ - dir = 8 - }, +/turf/open/gm/river/desert/shallow_edge/west, /area/desert_dam/exterior/river/riverside_central_north) "cbA" = ( /obj/structure/window/framed/prison/cell, @@ -33423,18 +25526,13 @@ /obj/structure/disposalpipe/junction{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/desert_dam/building/medical/north_wing_hallway) "cbD" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached4" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached4, /area/desert_dam/exterior/valley/valley_medical) "cbE" = ( /obj/structure/pipes/standard/manifold/hidden/green{ @@ -33444,31 +25542,22 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/control_room) "cbF" = ( /obj/structure/disposalpipe/segment{ dir = 2; icon_state = "pipe-c" }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached1" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached1, /area/desert_dam/exterior/valley/valley_medical) "cbG" = ( /obj/structure/disposalpipe/segment, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached1" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached1, /area/desert_dam/exterior/valley/valley_medical) "cbH" = ( /obj/structure/disposalpipe/segment, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached13" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached13, /area/desert_dam/exterior/valley/valley_medical) "cbI" = ( /obj/structure/disposalpipe/trunk{ @@ -33476,9 +25565,7 @@ }, /obj/structure/machinery/disposal, /obj/structure/machinery/light, -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/desert_dam/building/security/prison) "cbJ" = ( /obj/structure/machinery/light{ @@ -33493,9 +25580,7 @@ /obj/effect/decal/sand_overlay/sand2/corner2{ dir = 1 }, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/desert_dam/interior/dam_interior/western_dam_cave) "cbM" = ( /obj/structure/machinery/light{ @@ -33522,18 +25607,13 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/control_room) "cbR" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/desert_dam/interior/dam_interior/break_room) "cbS" = ( /obj/structure/pipes/standard/manifold/hidden/green{ @@ -33541,29 +25621,20 @@ }, /obj/structure/disposalpipe/segment, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/hangar_storage) "cbT" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/desert_dam/interior/dam_interior/north_tunnel) "cbU" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/interior/dam_interior/northeastern_tunnel) "cbV" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/interior/dam_interior/northeastern_tunnel) "cbW" = ( /obj/structure/surface/table, @@ -33572,62 +25643,43 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowcorner" - }, +/turf/open/floor/whiteyellowcorner/east, /area/desert_dam/interior/dam_interior/break_room) "cbY" = ( /obj/structure/disposalpipe/segment, -/turf/open/asphalt/cement{ - icon_state = "cement14" - }, +/turf/open/asphalt/cement/cement14, /area/desert_dam/interior/dam_interior/northeastern_tunnel) "cbZ" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowcorner" - }, +/turf/open/floor/whiteyellowcorner/east, /area/desert_dam/interior/dam_interior/break_room) "cca" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/lobby) "ccc" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "grimy" - }, +/turf/open/floor/grimy, /area/desert_dam/building/bar/bar) "ccd" = ( /obj/structure/platform{ dir = 1 }, -/turf/open/desert/dirt{ - icon_state = "dirt2" - }, +/turf/open/desert/dirt/dirt2, /area/desert_dam/exterior/river/riverside_central_south) "cce" = ( /obj/structure/platform_decoration{ dir = 4 }, /obj/effect/blocker/toxic_water/Group_1, -/turf/open/desert/desert_shore/shore_corner2{ - dir = 1 - }, +/turf/open/desert/desert_shore/shore_corner2/north, /area/desert_dam/exterior/river/riverside_central_south) "ccf" = ( /obj/structure/platform, -/turf/open/desert/dirt{ - icon_state = "dirt2" - }, +/turf/open/desert/dirt/dirt2, /area/desert_dam/exterior/river/riverside_central_south) "ccg" = ( /obj/structure/platform{ @@ -33659,9 +25711,7 @@ }, /obj/structure/platform, /obj/effect/blocker/toxic_water/Group_2, -/turf/open/gm/river/desert/shallow_edge{ - dir = 4 - }, +/turf/open/gm/river/desert/shallow_edge/east, /area/desert_dam/exterior/river/riverside_central_north) "cck" = ( /obj/effect/decal/warning_stripes{ @@ -33671,34 +25721,21 @@ id = "hangar_dam_2"; name = "\improper Hangar Shutters" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/desert_dam/interior/dam_interior/hanger) "ccl" = ( /obj/effect/blocker/toxic_water/Group_1, -/turf/open/floor{ - dir = 1; - icon_state = "warning" - }, +/turf/open/floor/warning/north, /area/desert_dam/interior/dam_interior/engine_room) "ccm" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached2" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached2, /area/desert_dam/exterior/valley/valley_telecoms) "ccn" = ( /obj/effect/blocker/toxic_water/Group_2, -/turf/open/floor{ - dir = 1; - icon_state = "warning" - }, +/turf/open/floor/warning/north, /area/desert_dam/interior/dam_interior/engine_room) "cco" = ( -/turf/open/desert/rock/deep/transition{ - dir = 8 - }, +/turf/open/desert/rock/deep/transition/west, /area/desert_dam/interior/caves/central_caves) "ccp" = ( /obj/effect/blocker/toxic_water/Group_1, @@ -33709,37 +25746,26 @@ /turf/open/floor/greengrid, /area/desert_dam/interior/dam_interior/engine_room) "ccs" = ( -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/desert_dam/building/security/prison) "cct" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/darkyellowcorners2, /area/desert_dam/building/security/prison) "ccu" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 6 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_telecoms) "ccv" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkredcorners2" - }, +/turf/open/floor/prison/darkredcorners2/east, /area/desert_dam/building/security/deathrow) "ccw" = ( /turf/open/floor, /area/desert_dam/interior/dam_interior/western_dam_cave) "ccx" = ( -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/desert_dam/interior/dam_interior/western_dam_cave) "ccy" = ( /turf/open/floor/plating, @@ -33747,10 +25773,7 @@ "ccz" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/control_room) "ccA" = ( /obj/structure/pipes/standard/manifold/hidden/green{ @@ -33758,48 +25781,33 @@ }, /obj/structure/disposalpipe/segment, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/hangar_storage) "ccB" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/hangar_storage) "ccC" = ( -/turf/open/floor{ - dir = 10; - icon_state = "whiteyellow" - }, +/turf/open/floor/whiteyellow/southwest, /area/desert_dam/interior/dam_interior/break_room) "ccD" = ( /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor{ - icon_state = "whiteyellow" - }, +/turf/open/floor/whiteyellow, /area/desert_dam/interior/dam_interior/break_room) "ccE" = ( /obj/structure/surface/table, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - icon_state = "whiteyellow" - }, +/turf/open/floor/whiteyellow, /area/desert_dam/interior/dam_interior/break_room) "ccF" = ( /obj/structure/surface/table, /obj/item/tool/lighter/random, -/turf/open/floor{ - icon_state = "whiteyellow" - }, +/turf/open/floor/whiteyellow, /area/desert_dam/interior/dam_interior/break_room) "ccG" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -33809,83 +25817,58 @@ /turf/open/asphalt/cement, /area/desert_dam/interior/dam_interior/northwestern_tunnel) "ccH" = ( -/turf/open/floor{ - icon_state = "whiteyellow" - }, +/turf/open/floor/whiteyellow, /area/desert_dam/interior/dam_interior/break_room) "ccI" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "grimy" - }, +/turf/open/floor/grimy, /area/desert_dam/building/bar/bar) "ccJ" = ( -/turf/open/desert/rock/deep/transition{ - dir = 5 - }, +/turf/open/desert/rock/deep/transition/northeast, /area/desert_dam/exterior/valley/valley_crashsite) "ccK" = ( -/turf/open/desert/rock/deep/transition{ - dir = 1 - }, +/turf/open/desert/rock/deep/transition/north, /area/desert_dam/interior/caves/central_caves) "ccL" = ( /obj/structure/platform_decoration{ dir = 1 }, -/turf/open/desert/dirt{ - icon_state = "dirt2" - }, +/turf/open/desert/dirt/dirt2, /area/desert_dam/exterior/river/riverside_central_south) "ccM" = ( /obj/effect/decal/sand_overlay/sand1/corner1, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_medical) "ccN" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 8 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_medical) "ccO" = ( /obj/structure/platform, /obj/structure/platform{ dir = 8 }, -/turf/open/desert/dirt{ - icon_state = "dirt2" - }, +/turf/open/desert/dirt/dirt2, /area/desert_dam/exterior/river/riverside_east) "ccP" = ( /obj/structure/platform_decoration{ dir = 1 }, -/turf/open/desert/dirt{ - icon_state = "dirt2" - }, +/turf/open/desert/dirt/dirt2, /area/desert_dam/exterior/river/riverside_east) "ccQ" = ( /obj/structure/platform_decoration, -/turf/open/desert/dirt{ - icon_state = "dirt2" - }, +/turf/open/desert/dirt/dirt2, /area/desert_dam/exterior/river/riverside_east) "ccR" = ( /obj/structure/platform, -/turf/open/desert/dirt{ - icon_state = "dirt2" - }, +/turf/open/desert/dirt/dirt2, /area/desert_dam/exterior/river/riverside_east) "ccY" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkredcorners2" - }, +/turf/open/floor/prison/darkredcorners2/north, /area/desert_dam/building/security/deathrow) "ccZ" = ( /obj/structure/desertdam/decals/road_edge, @@ -33915,23 +25898,15 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/north, /area/desert_dam/building/security/deathrow) "cdf" = ( /obj/structure/surface/table, /obj/structure/machinery/faxmachine, -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/northwest, /area/desert_dam/building/warehouse/warehouse) "cdg" = ( -/turf/open/floor/prison{ - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2, /area/desert_dam/building/security/warden) "cdh" = ( /turf/closed/wall/r_wall/bunker, @@ -33939,17 +25914,13 @@ "cdi" = ( /obj/structure/machinery/computer/station_alert, /obj/structure/surface/table, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/desert_dam/interior/dam_interior/office) "cdj" = ( /obj/effect/decal/warning_stripes{ icon_state = "E" }, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/desert_dam/exterior/valley/valley_telecoms) "cdk" = ( /obj/effect/decal/sand_overlay/sand1/corner1, @@ -33970,16 +25941,12 @@ }, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/desert_dam/interior/dam_interior/central_tunnel) "cdo" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/disposalpipe/segment, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/desert_dam/interior/dam_interior/central_tunnel) "cdp" = ( /obj/effect/decal/sand_overlay/sand2{ @@ -33989,9 +25956,7 @@ /area/desert_dam/interior/dam_interior/south_tunnel) "cdq" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "grimy" - }, +/turf/open/floor/grimy, /area/desert_dam/building/bar/bar) "cdr" = ( /obj/structure/machinery/power/apc{ @@ -34001,9 +25966,7 @@ }, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "grimy" - }, +/turf/open/floor/grimy, /area/desert_dam/building/bar/bar) "cds" = ( /obj/effect/decal/cleanable/blood, @@ -34018,16 +25981,10 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/desert_dam/building/security/prison) "cdv" = ( -/turf/open/desert/dirt{ - dir = 5; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/northeast, /area/desert_dam/exterior/valley/valley_medical) "cdw" = ( /turf/open/desert/dirt, @@ -34036,9 +25993,7 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 10 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_medical) "cdy" = ( /obj/structure/stairs{ @@ -34047,9 +26002,7 @@ /obj/structure/platform{ dir = 8 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached2" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached2, /area/desert_dam/exterior/valley/valley_medical) "cdz" = ( /obj/structure/stairs{ @@ -34058,24 +26011,18 @@ /obj/structure/platform{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached9" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached9, /area/desert_dam/exterior/valley/valley_medical) "cdA" = ( /obj/effect/decal/sand_overlay/sand1, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_medical) "cdB" = ( /obj/effect/decal/sand_overlay/sand1/corner1, /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 8 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_medical) "cdC" = ( /turf/open/asphalt, @@ -34084,28 +26031,19 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 6 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_medical) "cdE" = ( -/turf/open/desert/dirt{ - dir = 10; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/southwest, /area/desert_dam/exterior/valley/valley_medical) "cdF" = ( -/turf/open/desert/dirt{ - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1, /area/desert_dam/exterior/valley/valley_medical) "cdG" = ( /obj/structure/toilet{ dir = 4 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/desert_dam/building/security/prison) "cdH" = ( /obj/structure/closet/secure_closet/injection, @@ -34124,9 +26062,7 @@ /obj/structure/machinery/door/airlock/almayer/generic{ name = "\improper Toilet Unit" }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/desert_dam/building/security/prison) "cdK" = ( /obj/structure/desertdam/decals/road_edge, @@ -34137,23 +26073,17 @@ /area/desert_dam/exterior/valley/valley_civilian) "cdL" = ( /obj/effect/decal/sand_overlay/sand1, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_telecoms) "cdN" = ( -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/desert_dam/building/security/prison) "cdO" = ( /obj/structure/stairs, /obj/structure/platform{ dir = 8 }, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/desert_dam/interior/dam_interior/west_tunnel) "cdP" = ( /obj/structure/platform{ @@ -34163,9 +26093,7 @@ /obj/structure/platform{ dir = 4 }, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/desert_dam/interior/dam_interior/west_tunnel) "cdQ" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -34174,9 +26102,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/desert_dam/interior/dam_interior/workshop) "cdR" = ( /obj/structure/platform{ @@ -34216,38 +26142,28 @@ /turf/open/asphalt/cement, /area/desert_dam/interior/dam_interior/south_tunnel) "cdX" = ( -/turf/open/desert/rock/deep/transition{ - dir = 6 - }, +/turf/open/desert/rock/deep/transition/southeast, /area/desert_dam/interior/caves/central_caves) "cdY" = ( /obj/structure/surface/table/woodentable, /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - icon_state = "grimy" - }, +/turf/open/floor/grimy, /area/desert_dam/building/bar/bar) "cdZ" = ( /obj/structure/surface/table/woodentable, -/turf/open/floor{ - icon_state = "grimy" - }, +/turf/open/floor/grimy, /area/desert_dam/building/bar/bar) "cea" = ( /obj/structure/surface/table/woodentable, /obj/item/trash/cheesie, -/turf/open/floor{ - icon_state = "grimy" - }, +/turf/open/floor/grimy, /area/desert_dam/building/bar/bar) "ceb" = ( /obj/structure/surface/table/woodentable, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "grimy" - }, +/turf/open/floor/grimy, /area/desert_dam/building/bar/bar) "cec" = ( /obj/structure/machinery/vending/coffee, @@ -34265,9 +26181,7 @@ /area/desert_dam/exterior/valley/bar_valley_dam) "cef" = ( /obj/effect/blocker/toxic_water/Group_1, -/turf/open/gm/river/desert/shallow_edge{ - dir = 6 - }, +/turf/open/gm/river/desert/shallow_edge/southeast, /area/desert_dam/exterior/river/riverside_central_south) "ceg" = ( /obj/effect/blocker/toxic_water/Group_1, @@ -34278,15 +26192,11 @@ dir = 8 }, /obj/effect/blocker/toxic_water/Group_1, -/turf/open/desert/desert_shore/desert_shore1{ - dir = 8 - }, +/turf/open/desert/desert_shore/desert_shore1/west, /area/desert_dam/exterior/river/riverside_central_south) "cei" = ( /obj/effect/blocker/toxic_water/Group_1, -/turf/open/desert/desert_shore/shore_corner2{ - dir = 4 - }, +/turf/open/desert/desert_shore/shore_corner2/east, /area/desert_dam/exterior/river/riverside_central_south) "cej" = ( /obj/structure/flora/grass/desert/lightgrass_6, @@ -34296,14 +26206,10 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 4 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_medical) "cel" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached3" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached3, /area/desert_dam/exterior/valley/valley_medical) "cen" = ( /turf/closed/wall/r_wall, @@ -34321,15 +26227,10 @@ "ceq" = ( /obj/structure/disposalpipe/segment, /obj/effect/decal/sand_overlay/sand1/corner1, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached20" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached20, /area/desert_dam/exterior/valley/valley_medical) "cer" = ( -/turf/open/desert/dirt{ - dir = 6; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/southeast, /area/desert_dam/exterior/valley/valley_medical) "cet" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -34344,16 +26245,11 @@ /obj/structure/surface/table/reinforced, /obj/item/paper_bin, /obj/item/tool/pen, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitered" - }, +/turf/open/floor/prison/whitered/west, /area/desert_dam/building/medical/chemistry) "cev" = ( /obj/effect/blocker/toxic_water/Group_1, -/turf/open/gm/river/desert/shallow_edge/covered{ - dir = 8 - }, +/turf/open/gm/river/desert/shallow_edge/covered/west, /area/desert_dam/exterior/river/riverside_central_south) "cew" = ( /obj/structure/platform_decoration{ @@ -34362,9 +26258,7 @@ /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 1 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached4" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached4, /area/desert_dam/exterior/valley/valley_telecoms) "cex" = ( /obj/structure/stairs{ @@ -34373,23 +26267,16 @@ /obj/structure/platform{ dir = 1 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached4" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached4, /area/desert_dam/exterior/valley/valley_telecoms) "cey" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached4" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached4, /area/desert_dam/exterior/valley/valley_telecoms) "cez" = ( -/turf/open/desert/dirt{ - dir = 5; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/northeast, /area/desert_dam/exterior/valley/valley_telecoms) "ceA" = ( /turf/open/desert/dirt, @@ -34398,24 +26285,17 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached3" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached3, /area/desert_dam/exterior/valley/valley_telecoms) "ceC" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/sand_overlay/sand2{ dir = 4 }, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/desert_dam/interior/dam_interior/western_dam_cave) "ceD" = ( -/turf/open/desert/dirt{ - dir = 8; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/west, /area/desert_dam/exterior/valley/valley_telecoms) "ceF" = ( /obj/structure/machinery/vending/cola, @@ -34423,10 +26303,7 @@ /turf/open/floor/interior/wood, /area/desert_dam/building/bar/bar) "ceG" = ( -/turf/open/desert/dirt{ - dir = 1; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/north, /area/desert_dam/exterior/valley/valley_telecoms) "ceH" = ( /obj/structure/machinery/vending/cigarette/colony, @@ -34439,9 +26316,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/desert_dam/interior/dam_interior/west_tunnel) "ceJ" = ( /obj/structure/machinery/disposal, @@ -34458,53 +26333,38 @@ }, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "grimy" - }, +/turf/open/floor/grimy, /area/desert_dam/building/bar/bar) "ceM" = ( /obj/structure/bed/stool, /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "grimy" - }, +/turf/open/floor/grimy, /area/desert_dam/building/bar/bar) "ceN" = ( /obj/structure/bed/stool, -/turf/open/floor{ - icon_state = "grimy" - }, +/turf/open/floor/grimy, /area/desert_dam/building/bar/bar) "ceO" = ( /obj/structure/bed/stool, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "grimy" - }, +/turf/open/floor/grimy, /area/desert_dam/building/bar/bar) "ceP" = ( /obj/structure/bed/stool, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "grimy" - }, +/turf/open/floor/grimy, /area/desert_dam/building/bar/bar) "ceQ" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/desert_dam/interior/dam_interior/south_tunnel) "ceR" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 1 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached16" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached16, /area/desert_dam/exterior/valley/bar_valley_dam) "ceS" = ( /obj/structure/desertdam/decals/road_edge, @@ -34515,45 +26375,30 @@ /area/desert_dam/exterior/valley/bar_valley_dam) "ceT" = ( /obj/effect/blocker/toxic_water/Group_1, -/turf/open/desert/desert_shore/shore_edge1{ - dir = 8 - }, +/turf/open/desert/desert_shore/shore_edge1/west, /area/desert_dam/exterior/river/riverside_central_south) "ceU" = ( /obj/effect/blocker/toxic_water/Group_1, -/turf/open/gm/river/desert/shallow_edge{ - dir = 4 - }, +/turf/open/gm/river/desert/shallow_edge/east, /area/desert_dam/exterior/river/riverside_central_south) "ceV" = ( /obj/effect/landmark/monkey_spawn, -/turf/open/gm/river{ - name = "pool" - }, +/turf/open/gm/river/pool, /area/desert_dam/building/dorms/pool) "ceW" = ( -/turf/open/desert/dirt{ - dir = 4; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/east, /area/desert_dam/exterior/valley/valley_medical) "ceX" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached14" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached14, /area/desert_dam/exterior/valley/valley_medical) "ceY" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached15" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached15, /area/desert_dam/exterior/valley/valley_medical) "ceZ" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 8 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_medical) "cfa" = ( /obj/effect/decal/sand_overlay/sand1{ @@ -34566,25 +26411,17 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 8 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached17" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached17, /area/desert_dam/exterior/valley/valley_medical) "cfd" = ( /obj/effect/decal/sand_overlay/sand1, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached12" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached12, /area/desert_dam/exterior/valley/valley_cargo) "cfe" = ( -/turf/open/desert/rock/edge1{ - dir = 4 - }, +/turf/open/desert/rock/edge1/east, /area/desert_dam/exterior/valley/valley_telecoms) "cff" = ( -/turf/open/desert/dirt{ - icon_state = "rock1" - }, +/turf/open/desert/dirt/rock1, /area/desert_dam/exterior/valley/valley_telecoms) "cfg" = ( /obj/structure/desertdam/decals/road_edge{ @@ -34616,61 +26453,43 @@ "cfm" = ( /obj/structure/machinery/computer/atmos_alert, /obj/structure/surface/table, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/desert_dam/interior/dam_interior/office) "cfn" = ( /obj/effect/blocker/toxic_water/Group_1, -/turf/open/desert/desert_shore/desert_shore1{ - dir = 4 - }, +/turf/open/desert/desert_shore/desert_shore1/east, /area/desert_dam/exterior/river/riverside_central_south) "cfo" = ( /obj/structure/platform_decoration, /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 8 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached12" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached12, /area/desert_dam/exterior/valley/valley_telecoms) "cfp" = ( /obj/structure/stairs{ dir = 8 }, /obj/structure/platform, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached12" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached12, /area/desert_dam/exterior/valley/valley_telecoms) "cfq" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 8 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached1" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached1, /area/desert_dam/exterior/valley/valley_cargo) "cfr" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/interior/dam_interior/north_tunnel) "cfs" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/smes_backup) "cft" = ( -/turf/open/desert/dirt{ - dir = 1; - icon_state = "desert_transition_corner1" - }, +/turf/open/desert/dirt/desert_transition_corner1/north, /area/desert_dam/exterior/valley/valley_medical) "cfv" = ( /obj/structure/desertdam/decals/road_edge{ @@ -34736,22 +26555,16 @@ dir = 8 }, /obj/effect/blocker/toxic_water, -/turf/open/gm/river/desert/shallow_edge{ - dir = 8 - }, +/turf/open/gm/river/desert/shallow_edge/west, /area/desert_dam/exterior/river_mouth/southern) "cfE" = ( /obj/structure/platform{ dir = 1 }, -/turf/open/desert/rock/edge1{ - dir = 4 - }, +/turf/open/desert/rock/edge1/east, /area/desert_dam/exterior/valley/valley_telecoms) "cfG" = ( -/turf/open/desert/rock/edge1{ - dir = 4 - }, +/turf/open/desert/rock/edge1/east, /area/desert_dam/exterior/valley/valley_cargo) "cfH" = ( /obj/effect/blocker/toxic_water, @@ -34761,16 +26574,12 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached2" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached2, /area/desert_dam/exterior/valley/bar_valley_dam) "cfN" = ( /obj/structure/surface/table, /obj/item/ammo_magazine/shotgun/slugs, -/turf/open/floor/prison{ - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2, /area/desert_dam/building/security/warden) "cfP" = ( /obj/effect/decal/warning_stripes{ @@ -34783,9 +26592,7 @@ dir = 1; icon_state = "pipe-c" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/desert_dam/interior/dam_interior/south_tunnel) "cfR" = ( /obj/structure/disposalpipe/segment{ @@ -34822,9 +26629,7 @@ }, /obj/structure/platform, /obj/effect/blocker/toxic_water/Group_1, -/turf/open/desert/desert_shore/desert_shore1{ - dir = 8 - }, +/turf/open/desert/desert_shore/desert_shore1/west, /area/desert_dam/exterior/river/riverside_central_south) "cga" = ( /obj/structure/platform_decoration{ @@ -34837,14 +26642,10 @@ /obj/structure/platform_decoration{ dir = 8 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached1" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached1, /area/desert_dam/exterior/valley/valley_telecoms) "cgc" = ( -/turf/open/desert/dirt{ - icon_state = "rock1" - }, +/turf/open/desert/dirt/rock1, /area/desert_dam/exterior/valley/valley_medical) "cgd" = ( /obj/structure/desertdam/decals/road_edge, @@ -34867,15 +26668,11 @@ /turf/open/asphalt, /area/desert_dam/exterior/valley/valley_medical) "cgh" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached18" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached18, /area/desert_dam/exterior/landing_pad_two) "cgi" = ( /obj/effect/blocker/toxic_water/Group_2, -/turf/open/floor{ - icon_state = "neutral" - }, +/turf/open/floor/neutral, /area/desert_dam/interior/dam_interior/engine_room) "cgj" = ( /obj/structure/platform{ @@ -34884,9 +26681,7 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 8 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_telecoms) "cgk" = ( /obj/structure/platform{ @@ -34898,24 +26693,17 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 4 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_telecoms) "cgm" = ( /turf/closed/wall/r_wall/bunker, /area/desert_dam/building/substation/west) "cgn" = ( -/turf/open/floor/plating{ - dir = 8; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/west, /area/desert_dam/building/substation/west) "cgo" = ( /obj/effect/blocker/toxic_water, -/turf/open/gm/river/desert/shallow_edge{ - dir = 4 - }, +/turf/open/gm/river/desert/shallow_edge/east, /area/desert_dam/exterior/river_mouth/southern) "cgp" = ( /obj/structure/surface/table, @@ -34933,9 +26721,7 @@ dir = 8 }, /obj/effect/blocker/toxic_water, -/turf/open/gm/river/desert/shallow_corner{ - dir = 1 - }, +/turf/open/gm/river/desert/shallow_corner/north, /area/desert_dam/exterior/river_mouth/southern) "cgs" = ( /obj/structure/platform{ @@ -34962,15 +26748,11 @@ /turf/open/floor/interior/wood, /area/desert_dam/building/bar/bar) "cgB" = ( -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/desert_dam/interior/dam_interior/south_tunnel) "cgC" = ( /obj/effect/blocker/toxic_water/Group_2, -/turf/open/gm/river/desert/shallow_edge/covered{ - dir = 4 - }, +/turf/open/gm/river/desert/shallow_edge/covered/east, /area/desert_dam/exterior/river/riverside_central_south) "cgD" = ( /obj/structure/disposalpipe/segment, @@ -34989,9 +26771,7 @@ /turf/open/floor/plating, /area/desert_dam/building/substation/west) "cgK" = ( -/turf/open/desert/dirt{ - icon_state = "desert_transition_corner1" - }, +/turf/open/desert/dirt/desert_transition_corner1, /area/desert_dam/exterior/valley/valley_medical) "cgL" = ( /obj/effect/decal/warning_stripes{ @@ -35028,29 +26808,19 @@ dir = 4 }, /obj/effect/blocker/toxic_water/Group_2, -/turf/open/floor{ - icon_state = "neutral" - }, +/turf/open/floor/neutral, /area/desert_dam/interior/dam_interior/engine_room) "cgY" = ( -/turf/open/floor/plating{ - dir = 10; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/southwest, /area/desert_dam/building/substation/west) "cgZ" = ( /obj/structure/machinery/power/terminal{ dir = 1 }, -/turf/open/floor/plating{ - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate, /area/desert_dam/building/substation/west) "cha" = ( -/turf/open/floor/plating{ - dir = 6; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/southeast, /area/desert_dam/building/substation/west) "chb" = ( /obj/structure/reagent_dispensers/fueltank, @@ -35060,9 +26830,7 @@ /obj/structure/urinal{ pixel_y = 32 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/desert_dam/building/security/prison) "che" = ( /obj/structure/desertdam/decals/road_edge{ @@ -35106,9 +26874,7 @@ /area/desert_dam/building/bar/bar) "chl" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/desert/rock/deep/transition{ - dir = 5 - }, +/turf/open/desert/rock/deep/transition/northeast, /area/desert_dam/interior/caves/east_caves) "chm" = ( /obj/structure/platform{ @@ -35119,9 +26885,7 @@ /area/desert_dam/exterior/river/riverside_south) "chn" = ( /obj/effect/blocker/toxic_water/Group_1, -/turf/open/gm/river/desert/shallow_edge{ - dir = 8 - }, +/turf/open/gm/river/desert/shallow_edge/west, /area/desert_dam/exterior/river/riverside_south) "cho" = ( /obj/effect/blocker/toxic_water/Group_1, @@ -35129,9 +26893,7 @@ /area/desert_dam/exterior/river/riverside_south) "chp" = ( /obj/effect/blocker/toxic_water/Group_1, -/turf/open/gm/river/desert/shallow_edge{ - dir = 4 - }, +/turf/open/gm/river/desert/shallow_edge/east, /area/desert_dam/exterior/river/riverside_south) "chq" = ( /obj/structure/desertdam/decals/road_edge{ @@ -35178,17 +26940,13 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 1 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_medical) "chy" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 1 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_medical) "chz" = ( /obj/structure/platform{ @@ -35225,9 +26983,7 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 4 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_telecoms) "chD" = ( /obj/effect/decal/warning_stripes{ @@ -35243,9 +26999,7 @@ /area/desert_dam/interior/caves/temple) "chG" = ( /obj/effect/decal/sand_overlay/sand1, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached12" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached12, /area/desert_dam/exterior/valley/valley_telecoms) "chJ" = ( /obj/effect/decal/sand_overlay/sand2, @@ -35281,15 +27035,11 @@ dir = 8 }, /obj/effect/blocker/toxic_water/Group_1, -/turf/open/gm/river/desert/shallow_edge{ - dir = 9 - }, +/turf/open/gm/river/desert/shallow_edge/northwest, /area/desert_dam/exterior/river/riverside_south) "chU" = ( /obj/effect/blocker/toxic_water/Group_1, -/turf/open/gm/river/desert/shallow_corner{ - dir = 1 - }, +/turf/open/gm/river/desert/shallow_corner/north, /area/desert_dam/exterior/river/riverside_south) "chV" = ( /obj/structure/platform{ @@ -35306,50 +27056,33 @@ dir = 4 }, /obj/effect/blocker/toxic_water/Group_1, -/turf/open/gm/river/desert/shallow_edge{ - dir = 8 - }, +/turf/open/gm/river/desert/shallow_edge/west, /area/desert_dam/exterior/river/riverside_south) "chX" = ( /obj/effect/blocker/toxic_water/Group_1, -/turf/open/gm/river/desert/shallow_corner{ - dir = 4 - }, +/turf/open/gm/river/desert/shallow_corner/east, /area/desert_dam/exterior/river/riverside_south) "chY" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached2" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached2, /area/desert_dam/exterior/valley/valley_medical) "chZ" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached4" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached4, /area/desert_dam/exterior/valley/valley_medical) "cia" = ( /obj/structure/disposalpipe/segment, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached4" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached4, /area/desert_dam/exterior/valley/valley_medical) "cib" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached9" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached9, /area/desert_dam/exterior/valley/valley_medical) "cic" = ( -/turf/open/floor/plating{ - dir = 4; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/east, /area/desert_dam/building/substation/west) "cid" = ( /obj/structure/platform_decoration{ dir = 4 }, -/turf/open/desert/dirt{ - icon_state = "dirt2" - }, +/turf/open/desert/dirt/dirt2, /area/desert_dam/exterior/valley/valley_medical) "cie" = ( /obj/structure/platform{ @@ -35400,33 +27133,25 @@ /obj/effect/decal/sand_overlay/sand2{ dir = 4 }, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/desert_dam/interior/dam_interior/west_tunnel) "cin" = ( /obj/structure/platform_decoration{ dir = 8 }, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/desert_dam/interior/dam_interior/west_tunnel) "cio" = ( /obj/structure/platform{ dir = 1 }, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/desert_dam/interior/dam_interior/west_tunnel) "cip" = ( /obj/structure/platform_decoration{ dir = 4 }, -/turf/open/asphalt/cement{ - icon_state = "cement15" - }, +/turf/open/asphalt/cement/cement15, /area/desert_dam/interior/dam_interior/west_tunnel) "cir" = ( /obj/effect/decal/sand_overlay/sand2{ @@ -35442,16 +27167,12 @@ /turf/open/asphalt/cement_sunbleached, /area/desert_dam/exterior/valley/valley_medical) "civ" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached12" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached12, /area/desert_dam/exterior/valley/valley_medical) "ciw" = ( /obj/structure/machinery/light, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/interior/dam_interior/north_tunnel) "cix" = ( /obj/structure/desertdam/decals/road_edge{ @@ -35479,9 +27200,7 @@ dir = 4 }, /obj/effect/blocker/toxic_water/Group_2, -/turf/open/gm/river/desert/shallow_edge{ - dir = 4 - }, +/turf/open/gm/river/desert/shallow_edge/east, /area/desert_dam/exterior/river/riverside_central_south) "ciE" = ( /obj/structure/platform{ @@ -35515,19 +27234,14 @@ amount = 50 }, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/plating{ - dir = 4; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/east, /area/desert_dam/building/substation/west) "ciK" = ( /obj/structure/sink{ dir = 4; pixel_x = 11 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/desert_dam/building/security/prison) "ciL" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -35536,9 +27250,7 @@ /turf/open/floor/prison, /area/desert_dam/building/security/deathrow) "ciM" = ( -/turf/open/asphalt/cement{ - icon_state = "cement14" - }, +/turf/open/asphalt/cement/cement14, /area/desert_dam/interior/dam_interior/central_tunnel) "ciN" = ( /obj/effect/decal/sand_overlay/sand2{ @@ -35548,15 +27260,11 @@ /area/desert_dam/interior/dam_interior/south_tunnel) "ciO" = ( /obj/effect/decal/sand_overlay/sand1/corner1, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached13" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached13, /area/desert_dam/exterior/valley/bar_valley_dam) "ciP" = ( /obj/effect/blocker/toxic_water/Group_1, -/turf/open/gm/river/desert/shallow_edge{ - dir = 6 - }, +/turf/open/gm/river/desert/shallow_edge/southeast, /area/desert_dam/exterior/river/riverside_south) "ciQ" = ( /obj/effect/blocker/toxic_water/Group_1, @@ -35571,15 +27279,10 @@ /area/desert_dam/building/medical/chemistry) "ciT" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/primary_tool_storage) "ciU" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached18" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached18, /area/desert_dam/exterior/valley/valley_medical) "ciV" = ( /turf/closed/wall/r_wall, @@ -35606,34 +27309,26 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 8 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached9" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached9, /area/desert_dam/exterior/valley/bar_valley_dam) "cji" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 8 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached1" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached1, /area/desert_dam/exterior/valley/valley_cargo) "cjj" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 8 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached13" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached13, /area/desert_dam/exterior/valley/bar_valley_dam) "cjk" = ( /obj/structure/platform{ dir = 4 }, /obj/effect/blocker/toxic_water/Group_1, -/turf/open/desert/desert_shore/shore_corner2{ - dir = 4 - }, +/turf/open/desert/desert_shore/shore_corner2/east, /area/desert_dam/exterior/river/riverside_south) "cjl" = ( /obj/structure/platform{ @@ -35648,47 +27343,30 @@ dir = 1 }, /obj/effect/blocker/toxic_water/Group_1, -/turf/open/gm/river/desert/shallow_edge{ - dir = 10 - }, +/turf/open/gm/river/desert/shallow_edge/southwest, /area/desert_dam/exterior/river/riverside_south) "cjn" = ( /obj/structure/machinery/cm_vending/sorted/medical/no_access, -/turf/open/floor{ - dir = 4; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/east, /area/desert_dam/building/medical/chemistry) "cjo" = ( /obj/structure/surface/table/reinforced, /obj/item/tool/stamp, /obj/item/paper_bin, -/turf/open/floor{ - dir = 4; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/east, /area/desert_dam/building/medical/chemistry) "cjp" = ( /obj/structure/surface/table/reinforced, /obj/item/packageWrap, /obj/item/tool/hand_labeler, -/turf/open/floor{ - dir = 4; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/east, /area/desert_dam/building/medical/chemistry) "cjq" = ( -/turf/open/floor{ - dir = 1; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/north, /area/desert_dam/building/medical/chemistry) "cjr" = ( /obj/structure/closet/secure_closet/chemical, -/turf/open/floor{ - dir = 1; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/north, /area/desert_dam/building/medical/chemistry) "cjs" = ( /obj/structure/window/framed/colony/reinforced, @@ -35698,19 +27376,13 @@ /obj/structure/machinery/door/airlock/multi_tile/almayer/medidoor/colony{ name = "\improper Medical" }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/west, /area/desert_dam/building/medical/west_wing_hallway) "cju" = ( /obj/structure/filingcabinet, /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - dir = 8; - icon_state = "whiteyellow" - }, +/turf/open/floor/whiteyellow/west, /area/desert_dam/interior/dam_interior/lobby) "cjv" = ( /turf/closed/wall/r_wall, @@ -35721,16 +27393,10 @@ pixel_x = -12; pixel_y = 2 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/medical/break_room) "cjx" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/medical/break_room) "cjy" = ( /turf/closed/wall, @@ -35740,37 +27406,22 @@ dir = 1 }, /obj/structure/surface/table, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/north, /area/desert_dam/building/medical/break_room) "cjA" = ( /obj/structure/machinery/vending/snack, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/north, /area/desert_dam/building/medical/break_room) "cjB" = ( /obj/structure/machinery/vending/cola, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/north, /area/desert_dam/building/medical/break_room) "cjC" = ( /obj/structure/machinery/computer/arcade, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/north, /area/desert_dam/building/medical/break_room) "cjD" = ( -/turf/open/floor/prison{ - dir = 5; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/northeast, /area/desert_dam/building/medical/break_room) "cjE" = ( /obj/structure/machinery/power/apc{ @@ -35803,14 +27454,10 @@ /obj/effect/decal/warning_stripes{ icon_state = "N" }, -/turf/open/floor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/asteroidplating, /area/desert_dam/exterior/telecomm/lz2_tcomms) "cjO" = ( -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_telecoms) "cjP" = ( /obj/structure/machinery/power/apc{ @@ -35818,16 +27465,11 @@ pixel_x = 24; start_charge = 0 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/desert_dam/interior/dam_interior/south_tunnel) "cjQ" = ( /obj/effect/blocker/toxic_water/Group_1, -/turf/open/gm/river/desert/shallow_corner{ - dir = 8 - }, +/turf/open/gm/river/desert/shallow_corner/west, /area/desert_dam/exterior/river/riverside_south) "cjR" = ( /obj/effect/blocker/toxic_water/Group_1, @@ -35835,86 +27477,56 @@ /area/desert_dam/exterior/river/riverside_south) "cjS" = ( /obj/effect/blocker/toxic_water/Group_1, -/turf/open/gm/river/desert/shallow_edge{ - dir = 5 - }, +/turf/open/gm/river/desert/shallow_edge/northeast, /area/desert_dam/exterior/river/riverside_south) "cjT" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached13" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached13, /area/desert_dam/exterior/valley/valley_medical) "cjU" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor{ - dir = 1; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/north, /area/desert_dam/building/medical/chemistry) "cjV" = ( /obj/structure/window/framed/colony, /turf/open/floor/plating, /area/desert_dam/building/medical/chemistry) "cjW" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreencorner" - }, +/turf/open/floor/prison/whitegreencorner/east, /area/desert_dam/building/medical/west_wing_hallway) "cjX" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/medical/west_wing_hallway) "cjY" = ( /obj/structure/disposalpipe/segment, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/desert_dam/interior/dam_interior/lobby) "cjZ" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/east, /area/desert_dam/building/medical/west_wing_hallway) "cka" = ( /turf/closed/wall, /area/desert_dam/building/medical/morgue) "ckb" = ( /obj/structure/morgue, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/desert_dam/building/medical/morgue) "ckc" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/desert_dam/building/medical/morgue) "ckd" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowcorner" - }, +/turf/open/floor/whiteyellowcorner/east, /area/desert_dam/interior/dam_interior/lobby) "cke" = ( /obj/structure/surface/table, /obj/item/bodybag, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/desert_dam/building/medical/morgue) "ckf" = ( /obj/structure/machinery/power/apc{ @@ -35922,27 +27534,18 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/desert_dam/building/medical/morgue) "ckg" = ( /obj/structure/morgue{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/desert_dam/building/medical/morgue) "ckh" = ( /obj/structure/disposalpipe/segment, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/lobby) "cki" = ( /turf/open/floor/prison, @@ -35952,39 +27555,27 @@ /turf/open/floor/prison, /area/desert_dam/building/medical/break_room) "ckk" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/east, /area/desert_dam/building/medical/break_room) "ckm" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/prison/darkyellowcorners2/east, /area/desert_dam/interior/dam_interior/smes_backup) "ckn" = ( /obj/structure/platform{ dir = 4 }, /obj/effect/blocker/toxic_water/Group_1, -/turf/open/desert/desert_shore/desert_shore1{ - dir = 4 - }, +/turf/open/desert/desert_shore/desert_shore1/east, /area/desert_dam/exterior/river/riverside_south) "cko" = ( -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_civilian) "ckp" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 10 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached17" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached17, /area/desert_dam/exterior/valley/valley_cargo) "ckq" = ( /obj/effect/landmark/survivor_spawner, @@ -35996,16 +27587,11 @@ /obj/effect/decal/warning_stripes{ icon_state = "N" }, -/turf/open/floor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/asteroidplating, /area/desert_dam/exterior/telecomm/lz2_tcomms) "cks" = ( /obj/structure/surface/table, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/north, /area/desert_dam/building/warehouse/warehouse) "ckt" = ( /obj/effect/decal/warning_stripes{ @@ -36014,9 +27600,7 @@ /obj/effect/decal/warning_stripes{ icon_state = "N" }, -/turf/open/floor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/asteroidplating, /area/desert_dam/exterior/telecomm/lz2_tcomms) "cku" = ( /obj/structure/showcase{ @@ -36025,58 +27609,38 @@ /turf/open/floor/greengrid, /area/desert_dam/building/substation/west) "ckv" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/west, /area/desert_dam/building/substation/west) "ckw" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ name = "\improper Cell 3" }, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/desert_dam/building/security/prison) "ckx" = ( /obj/structure/platform{ dir = 8 }, -/turf/open/desert/dirt{ - icon_state = "dirt2" - }, +/turf/open/desert/dirt/dirt2, /area/desert_dam/exterior/river/riverside_south) "cky" = ( /obj/structure/filingcabinet, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/north, /area/desert_dam/building/warehouse/warehouse) "ckA" = ( /obj/structure/bed/chair/office/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/medical/chemistry) "ckB" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/medical/chemistry) "ckC" = ( /obj/structure/surface/table/reinforced, /obj/item/device/flashlight/lamp/green, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitered" - }, +/turf/open/floor/prison/whitered/west, /area/desert_dam/building/medical/chemistry) "ckD" = ( /turf/closed/wall, @@ -36087,34 +27651,25 @@ pixel_x = -30; start_charge = 0 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/desert_dam/building/medical/chemistry) "ckF" = ( /obj/structure/disposalpipe/segment, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/smes_backup) "ckG" = ( /obj/structure/disposalpipe/segment{ dir = 4; icon_state = "pipe-c" }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/desert_dam/building/medical/chemistry) "ckH" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/desert_dam/building/medical/chemistry) "ckI" = ( /obj/structure/pipes/vents/pump{ @@ -36123,9 +27678,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/desert_dam/building/medical/chemistry) "ckJ" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -36134,15 +27687,11 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/desert_dam/building/medical/chemistry) "ckL" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/dam_interior/primary_tool_storage) "ckM" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -36152,62 +27701,39 @@ dir = 1; icon_state = "pipe-j2" }, -/turf/open/floor/prison{ - dir = 5; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/northeast, /area/desert_dam/building/medical/west_wing_hallway) "ckN" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/east, /area/desert_dam/building/medical/west_wing_hallway) "ckO" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/medical/morgue) "ckP" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/medical/morgue) "ckQ" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/dam_interior/primary_tool_storage) "ckR" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/medical/break_room) "ckS" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkbrowncorners2" - }, +/turf/open/floor/prison/darkbrowncorners2/west, /area/desert_dam/building/medical/break_room) "ckT" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/primary_tool_storage) "ckU" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -36218,23 +27744,15 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/east, /area/desert_dam/interior/dam_interior/primary_tool_storage) "ckW" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 8; - icon_state = "whiteyellow" - }, +/turf/open/floor/whiteyellow/west, /area/desert_dam/interior/dam_interior/lobby) "ckX" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/desert_dam/interior/dam_interior/lobby) "ckY" = ( /obj/structure/reagent_dispensers/watertank, @@ -36251,9 +27769,7 @@ dir = 9 }, /obj/structure/disposalpipe/segment, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/desert_dam/interior/dam_interior/central_tunnel) "clb" = ( /obj/structure/largecrate/random/barrel, @@ -36275,18 +27791,14 @@ dir = 4 }, /obj/effect/blocker/toxic_water/Group_2, -/turf/open/gm/river/desert/shallow_edge{ - dir = 4 - }, +/turf/open/gm/river/desert/shallow_edge/east, /area/desert_dam/exterior/river/riverside_central_south) "clf" = ( /obj/structure/platform_decoration{ dir = 8 }, /obj/effect/blocker/toxic_water/Group_2, -/turf/open/gm/river/desert/shallow_edge{ - dir = 4 - }, +/turf/open/gm/river/desert/shallow_edge/east, /area/desert_dam/exterior/river/riverside_central_south) "clg" = ( /obj/structure/platform{ @@ -36296,24 +27808,18 @@ dir = 4 }, /obj/effect/blocker/toxic_water/Group_2, -/turf/open/desert/desert_shore/desert_shore1{ - dir = 4 - }, +/turf/open/desert/desert_shore/desert_shore1/east, /area/desert_dam/exterior/river/riverside_central_south) "clh" = ( /obj/effect/blocker/toxic_water/Group_2, -/turf/open/gm/river/desert/shallow_edge{ - dir = 4 - }, +/turf/open/gm/river/desert/shallow_edge/east, /area/desert_dam/exterior/river/riverside_central_south) "cli" = ( /obj/structure/platform{ dir = 4 }, /obj/effect/blocker/toxic_water/Group_2, -/turf/open/desert/desert_shore/shore_corner2{ - dir = 8 - }, +/turf/open/desert/desert_shore/shore_corner2/west, /area/desert_dam/exterior/river/riverside_central_south) "clj" = ( /turf/open/floor/plating, @@ -36321,9 +27827,7 @@ "clk" = ( /obj/structure/platform, /obj/effect/blocker/toxic_water/Group_2, -/turf/open/gm/river/desert/shallow_edge{ - dir = 4 - }, +/turf/open/gm/river/desert/shallow_edge/east, /area/desert_dam/exterior/river/riverside_central_south) "cll" = ( /obj/structure/platform{ @@ -36335,15 +27839,11 @@ /area/desert_dam/exterior/river/riverside_central_south) "clm" = ( /obj/effect/blocker/toxic_water, -/turf/open/desert/desert_shore/shore_corner2{ - dir = 8 - }, +/turf/open/desert/desert_shore/shore_corner2/west, /area/desert_dam/exterior/river_mouth/southern) "cln" = ( /obj/effect/blocker/toxic_water, -/turf/open/desert/desert_shore/shore_edge1{ - dir = 4 - }, +/turf/open/desert/desert_shore/shore_edge1/east, /area/desert_dam/exterior/river_mouth/southern) "clo" = ( /obj/structure/platform{ @@ -36369,30 +27869,20 @@ /obj/structure/machinery/door/airlock/almayer/maint/colony{ name = "\improper Lab Maintenance" }, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/warehouse/breakroom) "clr" = ( /obj/structure/machinery/door/airlock/almayer/generic{ name = "\improper Restroom" }, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/warehouse/breakroom) "clt" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/warehouse/breakroom) "clw" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/prison/darkyellowcorners2/north, /area/desert_dam/building/substation/west) "clz" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ @@ -36401,9 +27891,7 @@ /turf/open/floor/prison, /area/desert_dam/building/security/prison) "clA" = ( -/turf/open/floor/prison{ - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2, /area/desert_dam/building/mining/workshop_foyer) "clB" = ( /obj/effect/blocker/toxic_water/Group_1, @@ -36411,10 +27899,7 @@ /area/desert_dam/exterior/river/riverside_central_south) "clC" = ( /obj/structure/prop/dam/large_boulder/boulder2, -/turf/open/desert/dirt{ - dir = 6; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/southeast, /area/desert_dam/exterior/valley/bar_valley_dam) "clD" = ( /obj/structure/platform{ @@ -36425,9 +27910,7 @@ /area/desert_dam/exterior/river/riverside_south) "clE" = ( /obj/effect/blocker/toxic_water/Group_1, -/turf/open/gm/river/desert/shallow_edge{ - dir = 10 - }, +/turf/open/gm/river/desert/shallow_edge/southwest, /area/desert_dam/exterior/river/riverside_south) "clF" = ( /obj/structure/flora/grass/tallgrass/desert/corner{ @@ -36439,21 +27922,13 @@ /obj/structure/machinery/door/airlock/almayer/medical/glass/colony{ name = "\improper Medical Office" }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/medical/chemistry) "clH" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitered" - }, +/turf/open/floor/prison/whitered/west, /area/desert_dam/building/medical/chemistry) "clI" = ( -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/desert_dam/building/medical/chemistry) "clJ" = ( /obj/structure/surface/table/reinforced, @@ -36463,68 +27938,47 @@ pixel_y = 3 }, /obj/structure/disposalpipe/segment, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/desert_dam/building/medical/chemistry) "clK" = ( /obj/structure/surface/table/reinforced, /obj/item/reagent_container/glass/beaker/large, /obj/item/reagent_container/glass/beaker/large, /obj/item/reagent_container/glass/beaker, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/desert_dam/building/medical/chemistry) "clL" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/medidoor/colony{ dir = 2; name = "\improper Medical Chemistry" }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/desert_dam/building/medical/chemistry) "clM" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/west, /area/desert_dam/building/medical/west_wing_hallway) "clN" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/east, /area/desert_dam/building/medical/west_wing_hallway) "clO" = ( /obj/structure/surface/table, /obj/item/device/autopsy_scanner, /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/medical/morgue) "clP" = ( /obj/structure/machinery/optable, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/medical/morgue) "clQ" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk{ dir = 4 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/west, /area/desert_dam/building/medical/break_room) "clR" = ( /obj/structure/disposalpipe/segment{ @@ -36537,9 +27991,7 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/desert_dam/interior/dam_interior/lobby) "clT" = ( /obj/structure/surface/table/reinforced, @@ -36547,39 +27999,28 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellow" - }, +/turf/open/floor/whiteyellow/east, /area/desert_dam/interior/dam_interior/lobby) "clU" = ( /obj/structure/disposalpipe/segment, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/desert_dam/interior/dam_interior/central_tunnel) "clV" = ( /obj/structure/stairs, /obj/structure/platform{ dir = 8 }, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/desert_dam/interior/dam_interior/central_tunnel) "clW" = ( /obj/effect/decal/sand_overlay/sand1, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_civilian) "clX" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 8 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_civilian) "clY" = ( /obj/structure/desertdam/decals/road_edge, @@ -36600,9 +28041,7 @@ /area/desert_dam/exterior/valley/valley_civilian) "cmc" = ( /obj/effect/decal/sand_overlay/sand1/corner1, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_civilian) "cmf" = ( /obj/structure/machinery/door/poddoor/almayer/locked{ @@ -36610,10 +28049,7 @@ id = "dam_shutter_hangar"; name = "\improper Hangar Lock" }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkbrown3" - }, +/turf/open/floor/prison/darkbrown3/west, /area/desert_dam/interior/dam_interior/hanger) "cmg" = ( /obj/structure/platform{ @@ -36629,30 +28065,22 @@ /obj/structure/platform{ dir = 4 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_telecoms) "cmi" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/asteroidplating, /area/desert_dam/exterior/telecomm/lz2_tcomms) "cmj" = ( -/turf/open/floor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/asteroidplating, /area/desert_dam/exterior/telecomm/lz2_tcomms) "cmk" = ( /obj/effect/decal/warning_stripes{ icon_state = "E" }, -/turf/open/floor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/asteroidplating, /area/desert_dam/exterior/telecomm/lz2_tcomms) "cml" = ( /turf/open/floor/greengrid, @@ -36671,74 +28099,48 @@ dir = 8 }, /obj/effect/blocker/toxic_water/Group_1, -/turf/open/desert/desert_shore/desert_shore1{ - dir = 8 - }, +/turf/open/desert/desert_shore/desert_shore1/west, /area/desert_dam/exterior/river/riverside_south) "cms" = ( /obj/effect/landmark/survivor_spawner, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/warehouse/breakroom) "cmt" = ( /obj/structure/machinery/photocopier, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitered" - }, +/turf/open/floor/prison/whitered/west, /area/desert_dam/building/medical/chemistry) "cmu" = ( /obj/structure/bed/chair/office/light, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/medical/chemistry) "cmv" = ( /obj/structure/surface/table/reinforced, /obj/item/storage/box/pillbottles, /obj/structure/disposalpipe/segment, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/desert_dam/building/medical/chemistry) "cmw" = ( /obj/structure/surface/table/reinforced, /obj/item/storage/fancy/vials/random, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/desert_dam/building/medical/chemistry) "cmx" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreencorner" - }, +/turf/open/floor/prison/whitegreencorner/west, /area/desert_dam/building/medical/west_wing_hallway) "cmB" = ( /obj/structure/machinery/door/airlock/almayer/generic{ dir = 2; name = "\improper Toilet Unit" }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/medical/break_room) "cmC" = ( /obj/structure/surface/table, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/west, /area/desert_dam/building/medical/break_room) "cmD" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/dam_interior/lobby) "cmE" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -36775,23 +28177,16 @@ /turf/open/floor/carpet, /area/desert_dam/building/warehouse/breakroom) "cmM" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached2" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached2, /area/desert_dam/exterior/valley/valley_civilian) "cmN" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached4" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached4, /area/desert_dam/exterior/valley/valley_civilian) "cmO" = ( /obj/structure/surface/table, /obj/item/paper_bin, /obj/item/tool/pen, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/west, /area/desert_dam/building/warehouse/warehouse) "cmP" = ( /obj/structure/bed/chair/office/light{ @@ -36810,17 +28205,13 @@ /turf/open/gm/river/desert/deep, /area/desert_dam/exterior/river/filtration_a) "cmR" = ( -/turf/open/desert/dirt{ - icon_state = "dirt2" - }, +/turf/open/desert/dirt/dirt2, /area/desert_dam/exterior/valley/valley_civilian) "cmS" = ( /turf/open/floor/prison, /area/desert_dam/building/warehouse/warehouse) "cmU" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached9" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached9, /area/desert_dam/exterior/valley/valley_civilian) "cmV" = ( /obj/structure/machinery/light, @@ -36835,34 +28226,24 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 4 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_civilian) "cmY" = ( /obj/structure/largecrate/random/barrel/white, /turf/open/floor/plating, /area/desert_dam/building/warehouse/breakroom) "cmZ" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/prison/darkyellowcorners2/east, /area/desert_dam/building/substation/west) "cna" = ( /obj/structure/sink{ dir = 1; pixel_y = -10 }, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/warehouse/breakroom) "cnb" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/prison/darkyellowcorners2/west, /area/desert_dam/building/warehouse/breakroom) "cnc" = ( /obj/structure/pipes/vents/pump, @@ -36870,19 +28251,13 @@ dir = 4; icon_state = "pipe-c" }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/warehouse/breakroom) "cne" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/warehouse/breakroom) "cnf" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ @@ -36892,20 +28267,14 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/warehouse/breakroom) "cng" = ( /obj/effect/landmark/crap_item, /turf/open/floor/interior/wood/alt, /area/desert_dam/building/bar/bar) "cni" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "greencorner" - }, +/turf/open/floor/prison/greencorner/north, /area/desert_dam/building/substation/west) "cnp" = ( /obj/structure/disposalpipe/segment{ @@ -36926,10 +28295,7 @@ icon_state = "pipe-c" }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/smes_backup) "cnu" = ( /obj/structure/surface/table/woodentable, @@ -36947,23 +28313,17 @@ /obj/structure/surface/table, /obj/structure/machinery/light, /obj/effect/spawner/random/toolbox, -/turf/open/floor{ - icon_state = "whiteyellow" - }, +/turf/open/floor/whiteyellow, /area/desert_dam/interior/dam_interior/lobby) "cnx" = ( /obj/structure/prop/dam/boulder/boulder2, -/turf/open/desert/dirt{ - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1, /area/desert_dam/exterior/valley/bar_valley_dam) "cny" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached13" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached13, /area/desert_dam/exterior/valley/bar_valley_dam) "cnz" = ( /obj/structure/bed/chair/comfy/beige{ @@ -36979,7 +28339,7 @@ dir = 4 }, /turf/open/asphalt, -/area/desert_dam/exterior/valley/valley_cargo) +/area/desert_dam/exterior/landing_pad_two) "cnB" = ( /obj/structure/platform{ dir = 8 @@ -36995,9 +28355,7 @@ /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 4 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_medical) "cnE" = ( /obj/structure/prop/dam/wide_boulder/boulder1, @@ -37009,31 +28367,21 @@ icon_state = "pipe-c" }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/smes_backup) "cnG" = ( -/turf/open/floor{ - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple, /area/desert_dam/building/medical/chemistry) "cnH" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor{ - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple, /area/desert_dam/building/medical/chemistry) "cnI" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/smes_backup) "cnJ" = ( /obj/structure/machinery/smartfridge/chemistry, @@ -37043,40 +28391,25 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreencorner" - }, +/turf/open/floor/prison/whitegreencorner/east, /area/desert_dam/building/medical/west_wing_hallway) "cnL" = ( /obj/structure/machinery/light, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/desert_dam/building/medical/morgue) "cnN" = ( /obj/structure/toilet{ dir = 1 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/medical/break_room) "cnO" = ( /obj/structure/surface/table, /obj/structure/machinery/light, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/southwest, /area/desert_dam/building/medical/break_room) "cnP" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkbrowncorners2" - }, +/turf/open/floor/prison/darkbrowncorners2/west, /area/desert_dam/building/medical/break_room) "cnQ" = ( /obj/structure/machinery/light, @@ -37089,10 +28422,7 @@ "cnS" = ( /obj/structure/surface/table, /obj/structure/machinery/computer/shuttle/dropship/flight/lz2, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/west, /area/desert_dam/landing/console2) "cnT" = ( /obj/effect/decal/warning_stripes{ @@ -37114,55 +28444,35 @@ /area/desert_dam/building/warehouse/warehouse) "cnW" = ( /obj/effect/decal/sand_overlay/sand1, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached12" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached12, /area/desert_dam/exterior/valley/valley_civilian) "cnX" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 8 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached12" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached12, /area/desert_dam/exterior/valley/valley_civilian) "cnZ" = ( /obj/structure/largecrate, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/north, /area/desert_dam/building/warehouse/warehouse) "coa" = ( /obj/structure/cargo_container/wy/left, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/north, /area/desert_dam/building/warehouse/warehouse) "cob" = ( /obj/structure/cargo_container/wy/mid, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/north, /area/desert_dam/building/warehouse/warehouse) "coc" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached12" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached12, /area/desert_dam/exterior/valley/valley_civilian) "cod" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached1" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached1, /area/desert_dam/exterior/valley/valley_civilian) "coe" = ( /obj/structure/cargo_container/wy/right, -/turf/open/floor/prison{ - dir = 5; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/northeast, /area/desert_dam/building/warehouse/warehouse) "cof" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony{ @@ -37179,10 +28489,7 @@ /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/west, /area/desert_dam/building/warehouse/breakroom) "coj" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -37192,15 +28499,10 @@ id = "dam_shutter_hangar"; name = "\improper Hangar Lock" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/hanger) "cok" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached3" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached3, /area/desert_dam/exterior/valley/valley_civilian) "col" = ( /obj/structure/bed/chair{ @@ -37210,24 +28512,16 @@ dir = 1; icon_state = "pipe-c" }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/warehouse/breakroom) "com" = ( /obj/effect/blocker/toxic_water, -/turf/open/floor/filtrationside{ - dir = 4 - }, +/turf/open/floor/filtrationside/east, /area/desert_dam/exterior/valley/valley_hydro) "con" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/disposalpipe/junction, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/warehouse/breakroom) "coo" = ( /obj/effect/blocker/toxic_water, @@ -37235,22 +28529,16 @@ /area/desert_dam/exterior/river_mouth/southern) "cop" = ( /obj/effect/blocker/toxic_water, -/turf/open/gm/river/desert/shallow_edge{ - dir = 5 - }, +/turf/open/gm/river/desert/shallow_edge/northeast, /area/desert_dam/exterior/river_mouth/southern) "cos" = ( /obj/structure/platform_decoration{ dir = 8 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached4" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached4, /area/desert_dam/exterior/valley/valley_telecoms) "cou" = ( -/turf/open/floor/prison{ - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/prison/darkyellowcorners2, /area/desert_dam/building/warehouse/breakroom) "cov" = ( /obj/effect/decal/sand_overlay/sand1{ @@ -37280,40 +28568,29 @@ "coB" = ( /obj/structure/surface/rack, /obj/item/clothing/suit/storage/hazardvest, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/west, /area/desert_dam/building/warehouse/warehouse) "coC" = ( /obj/structure/cargo_container/grant/left, /turf/open/floor/prison, /area/desert_dam/building/warehouse/warehouse) "coE" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached16" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached16, /area/desert_dam/exterior/valley/bar_valley_dam) "coF" = ( -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/river/riverside_south) "coG" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached19" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached19, /area/desert_dam/exterior/valley/valley_medical) "coH" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 1 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached18" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached18, /area/desert_dam/exterior/valley/valley_medical) "coI" = ( /obj/structure/flora/grass/desert/heavygrass_4, @@ -37327,9 +28604,7 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 1 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached16" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached16, /area/desert_dam/exterior/valley/valley_medical) "coL" = ( /obj/structure/desertdam/decals/road_edge, @@ -37340,50 +28615,36 @@ /area/desert_dam/exterior/valley/valley_medical) "coM" = ( /obj/structure/surface/table/reinforced, -/turf/open/floor/prison{ - icon_state = "whitered" - }, +/turf/open/floor/prison/whitered, /area/desert_dam/building/medical/chemistry) "coN" = ( /obj/structure/machinery/disposal, -/turf/open/floor/prison{ - icon_state = "whitered" - }, +/turf/open/floor/prison/whitered, /area/desert_dam/building/medical/chemistry) "coO" = ( /obj/structure/machinery/chem_master, -/turf/open/floor{ - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner, /area/desert_dam/building/medical/chemistry) "coP" = ( -/turf/open/floor{ - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner, /area/desert_dam/building/medical/chemistry) "coQ" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk{ dir = 1 }, -/turf/open/floor{ - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner, /area/desert_dam/building/medical/chemistry) "coR" = ( /obj/structure/bed/stool, -/turf/open/floor{ - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner, /area/desert_dam/building/medical/chemistry) "coS" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/door/window/brigdoor/northleft{ dir = 4 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/desert_dam/building/medical/chemistry) "coT" = ( /obj/structure/machinery/door/airlock/almayer/generic{ @@ -37391,10 +28652,7 @@ name = "\improper Morgue" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/desert_dam/building/medical/morgue) "coU" = ( /obj/structure/window/framed/colony, @@ -37402,10 +28660,7 @@ /area/desert_dam/building/medical/break_room) "coV" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/smes_backup) "coW" = ( /obj/structure/cargo_container/grant/rightmid, @@ -37433,29 +28688,19 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 10 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_civilian) "cpc" = ( /obj/structure/largecrate, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrowncorners2" - }, +/turf/open/floor/prison/darkbrowncorners2/north, /area/desert_dam/building/warehouse/warehouse) "cpd" = ( /obj/structure/platform_decoration, /obj/effect/blocker/toxic_water, -/turf/open/desert/desert_shore/desert_shore1{ - dir = 4 - }, +/turf/open/desert/desert_shore/desert_shore1/east, /area/desert_dam/exterior/river_mouth/southern) "cpf" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/north, /area/desert_dam/building/warehouse/warehouse) "cpg" = ( /obj/structure/machinery/power/apc{ @@ -37463,31 +28708,19 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkbrowncorners2" - }, +/turf/open/floor/prison/darkbrowncorners2/east, /area/desert_dam/building/warehouse/warehouse) "cph" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrowncorners2" - }, +/turf/open/floor/prison/darkbrowncorners2/north, /area/desert_dam/building/warehouse/warehouse) "cpi" = ( -/turf/open/floor/prison{ - dir = 5; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/northeast, /area/desert_dam/building/warehouse/warehouse) "cpj" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor{ - dir = 8; - icon_state = "carpet6-2" - }, +/turf/open/floor/carpet6_2/west, /area/desert_dam/building/bar/bar) "cpm" = ( /obj/structure/machinery/light{ @@ -37500,32 +28733,22 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 8 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached1" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached1, /area/desert_dam/exterior/valley/bar_valley_dam) "cpp" = ( /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/southwest, /area/desert_dam/building/warehouse/breakroom) "cpq" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 8; - icon_state = "carpet14-10" - }, +/turf/open/floor/carpet14_10/west, /area/desert_dam/building/bar/bar) "cps" = ( /obj/structure/surface/table, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/prison{ - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2, /area/desert_dam/building/warehouse/breakroom) "cpu" = ( /obj/structure/flora/grass/desert/lightgrass_3, @@ -37536,73 +28759,49 @@ dir = 4 }, /obj/effect/blocker/toxic_water/Group_1, -/turf/open/desert/desert_shore/shore_corner2{ - dir = 8 - }, +/turf/open/desert/desert_shore/shore_corner2/west, /area/desert_dam/exterior/river/riverside_south) "cpw" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, /obj/effect/blocker/toxic_water/Group_2, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached18" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached18, /area/desert_dam/exterior/valley/south_valley_dam) "cpx" = ( /obj/structure/machinery/computer/crew, -/turf/open/floor/prison{ - dir = 9; - icon_state = "whitered" - }, +/turf/open/floor/prison/whitered/northwest, /area/desert_dam/building/medical/office1) "cpy" = ( /obj/structure/closet, -/turf/open/floor/prison{ - dir = 5; - icon_state = "whitered" - }, +/turf/open/floor/prison/whitered/northeast, /area/desert_dam/building/medical/office1) "cpz" = ( /obj/structure/machinery/computer/crew, -/turf/open/floor/prison{ - dir = 9; - icon_state = "whitered" - }, +/turf/open/floor/prison/whitered/northwest, /area/desert_dam/building/medical/office2) "cpA" = ( /obj/structure/machinery/chem_dispenser, -/turf/open/floor{ - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner, /area/desert_dam/building/medical/chemistry) "cpB" = ( /obj/structure/bed/chair/office/light, -/turf/open/floor{ - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner, /area/desert_dam/building/medical/chemistry) "cpC" = ( /obj/structure/machinery/reagentgrinder, /obj/structure/surface/table/reinforced, -/turf/open/floor{ - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner, /area/desert_dam/building/medical/chemistry) "cpD" = ( /obj/structure/surface/table/reinforced, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor{ - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner, /area/desert_dam/building/medical/chemistry) "cpE" = ( /obj/structure/machinery/power/port_gen/pacman, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating{ - dir = 8; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/west, /area/desert_dam/interior/dam_interior/smes_backup) "cpF" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -37610,47 +28809,29 @@ dir = 1; icon_state = "pipe-j2" }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/east, /area/desert_dam/building/medical/west_wing_hallway) "cpG" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreencorner" - }, +/turf/open/floor/prison/whitegreencorner/north, /area/desert_dam/building/medical/west_wing_hallway) "cpH" = ( /obj/structure/window/framed/colony/reinforced, /turf/open/floor/plating, /area/desert_dam/building/medical/north_wing_hallway) "cpI" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/north, /area/desert_dam/building/medical/north_wing_hallway) "cpJ" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreencorner" - }, +/turf/open/floor/prison/whitegreencorner/east, /area/desert_dam/building/medical/north_wing_hallway) "cpL" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreencorner" - }, +/turf/open/floor/prison/whitegreencorner/north, /area/desert_dam/building/medical/north_wing_hallway) "cpM" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/north, /area/desert_dam/building/medical/north_wing_hallway) "cpN" = ( /obj/structure/machinery/power/apc{ @@ -37658,18 +28839,13 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/north, /area/desert_dam/building/medical/north_wing_hallway) "cpP" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 1 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached2" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached2, /area/desert_dam/exterior/valley/valley_medical) "cpQ" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ @@ -37698,48 +28874,35 @@ dir = 1 }, /obj/effect/blocker/toxic_water/Group_2, -/turf/open/gm/river/desert/shallow_edge{ - dir = 4 - }, +/turf/open/gm/river/desert/shallow_edge/east, /area/desert_dam/exterior/river/riverside_central_south) "cpV" = ( /obj/structure/platform{ dir = 1 }, /obj/effect/blocker/toxic_water/Group_2, -/turf/open/gm/river/desert/shallow_edge{ - dir = 10 - }, +/turf/open/gm/river/desert/shallow_edge/southwest, /area/desert_dam/exterior/river/riverside_central_south) "cpW" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 6 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_civilian) "cpX" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached13" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached13, /area/desert_dam/exterior/valley/valley_civilian) "cpY" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 8 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_civilian) "cpZ" = ( -/turf/open/desert/dirt{ - dir = 9; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/northwest, /area/desert_dam/exterior/valley/valley_civilian) "cqa" = ( /turf/open/asphalt/cement, @@ -37748,75 +28911,51 @@ /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2, /area/desert_dam/building/warehouse/breakroom) "cqc" = ( /obj/structure/machinery/light, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/prison/darkyellowcorners2/west, /area/desert_dam/building/warehouse/breakroom) "cqd" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "greencorner" - }, +/turf/open/floor/prison/greencorner/east, /area/desert_dam/building/substation/west) "cqf" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/warehouse/breakroom) "cqg" = ( /obj/structure/machinery/light, -/turf/open/floor/prison{ - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/prison/darkyellowcorners2, /area/desert_dam/building/warehouse/breakroom) "cqh" = ( /obj/structure/surface/table, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/prison{ - dir = 6; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/southeast, /area/desert_dam/building/warehouse/breakroom) "cqj" = ( /obj/structure/surface/table, -/obj/item/handcuffs, -/turf/open/floor/prison{ - icon_state = "darkred2" - }, +/obj/item/restraint/handcuffs, +/turf/open/floor/prison/darkred2, /area/desert_dam/building/security/warden) "cqk" = ( /obj/structure/surface/table, /obj/item/ammo_magazine/shotgun/slugs, /obj/item/ammo_magazine/shotgun/buckshot, -/turf/open/floor/prison{ - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2, /area/desert_dam/building/security/warden) "cql" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 8 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached3" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached3, /area/desert_dam/exterior/valley/valley_cargo) "cqm" = ( /obj/structure/surface/table, /obj/item/ammo_magazine/shotgun/buckshot, /obj/item/clothing/head/beret/sec/warden, -/turf/open/floor/prison{ - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2, /area/desert_dam/building/security/warden) "cqn" = ( /turf/closed/wall/r_wall/bunker{ @@ -37827,9 +28966,7 @@ /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 8 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached3" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached3, /area/desert_dam/exterior/valley/valley_telecoms) "cqq" = ( /obj/structure/flora/grass/desert/lightgrass_6, @@ -37840,26 +28977,18 @@ /obj/structure/machinery/door/window/brigdoor/northleft{ dir = 2 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/desert_dam/building/medical/chemistry) "cqt" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/west, /area/desert_dam/building/medical/west_wing_hallway) "cqu" = ( /obj/effect/landmark/survivor_spawner, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/primary_tool_storage) "cqv" = ( /obj/structure/machinery/disposal, @@ -37875,10 +29004,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/north, /area/desert_dam/building/medical/west_wing_hallway) "cqx" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -37887,18 +29013,12 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/north, /area/desert_dam/building/medical/north_wing_hallway) "cqy" = ( /obj/structure/reagent_dispensers/fueltank, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/east, /area/desert_dam/interior/dam_interior/primary_tool_storage) "cqA" = ( /obj/structure/pipes/standard/manifold/hidden/green{ @@ -37907,42 +29027,28 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/north, /area/desert_dam/building/medical/north_wing_hallway) "cqC" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/prison/darkyellowcorners2/west, /area/desert_dam/interior/dam_interior/lobby) "cqE" = ( /obj/structure/pipes/vents/pump, /obj/structure/disposalpipe/segment, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/primary_tool_storage) "cqF" = ( /obj/structure/surface/table/reinforced, /obj/item/clothing/glasses/welding, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/primary_tool_storage) "cqG" = ( /obj/structure/platform_decoration, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached12" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached12, /area/desert_dam/exterior/valley/valley_telecoms) "cqH" = ( /obj/structure/machinery/door/airlock/almayer/command/colony{ @@ -37956,18 +29062,12 @@ /obj/item/folder, /obj/item/device/assembly/signaller, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/primary_tool_storage) "cqJ" = ( /obj/structure/pipes/vents/pump, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/primary_tool_storage) "cqK" = ( /obj/structure/machinery/light, @@ -37981,19 +29081,14 @@ /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 8 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached12" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached12, /area/desert_dam/exterior/valley/valley_wilderness) "cqT" = ( /obj/structure/flora/grass/desert/lightgrass_2, /turf/open/desert/dirt, /area/desert_dam/exterior/valley/valley_civilian) "cqU" = ( -/turf/open/desert/dirt{ - dir = 5; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/northeast, /area/desert_dam/exterior/valley/valley_civilian) "cra" = ( /obj/structure/platform{ @@ -38011,16 +29106,12 @@ /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 4 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_civilian) "crd" = ( /obj/structure/machinery/computer/telecomms/traffic, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/asteroidplating, /area/desert_dam/exterior/telecomm/lz2_tcomms) "crg" = ( /obj/structure/surface/table, @@ -38029,25 +29120,19 @@ pixel_y = 2 }, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/asteroidplating, /area/desert_dam/exterior/telecomm/lz2_tcomms) "crh" = ( /obj/structure/surface/table, /obj/item/device/analyzer, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/asteroidplating, /area/desert_dam/exterior/telecomm/lz2_tcomms) "cri" = ( /obj/structure/surface/table, /obj/effect/spawner/random/toolbox, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/asteroidplating, /area/desert_dam/exterior/telecomm/lz2_tcomms) "crj" = ( /obj/structure/showcase{ @@ -38056,10 +29141,7 @@ /turf/open/floor/greengrid, /area/desert_dam/building/substation/west) "crk" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/prison/darkyellowcorners2/west, /area/desert_dam/building/substation/west) "crl" = ( /obj/structure/surface/table, @@ -38069,19 +29151,14 @@ pixel_y = 2 }, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/east, /area/desert_dam/building/substation/west) "crm" = ( /obj/structure/platform{ dir = 4 }, /obj/effect/decal/sand_overlay/sand1, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_telecoms) "crn" = ( /obj/effect/decal/warning_stripes{ @@ -38090,9 +29167,7 @@ /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/asteroidplating, /area/desert_dam/exterior/telecomm/lz2_tcomms) "cro" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ @@ -38102,15 +29177,10 @@ /turf/open/floor/prison, /area/desert_dam/interior/dam_interior/south_tunnel_entrance) "crq" = ( -/turf/open/desert/dirt{ - icon_state = "desert_transition_corner1" - }, +/turf/open/desert/dirt/desert_transition_corner1, /area/desert_dam/exterior/valley/valley_cargo) "crr" = ( -/turf/open/desert/dirt{ - dir = 5; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/northeast, /area/desert_dam/exterior/valley/valley_cargo) "cru" = ( /obj/structure/flora/grass/desert/lightgrass_3, @@ -38145,34 +29215,19 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/north, /area/desert_dam/building/medical/lobby) "crC" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreencorner" - }, +/turf/open/floor/prison/whitegreencorner/east, /area/desert_dam/building/medical/lobby) "crD" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/medical/lobby) "crE" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/east, /area/desert_dam/building/medical/lobby) "crF" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/north, /area/desert_dam/building/medical/lobby) "crG" = ( /obj/structure/machinery/power/apc{ @@ -38180,10 +29235,7 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/north, /area/desert_dam/building/medical/lobby) "crH" = ( /obj/structure/window/framed/colony, @@ -38191,28 +29243,20 @@ /area/desert_dam/building/medical/lobby) "crI" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/prison/darkyellowcorners2, /area/desert_dam/interior/dam_interior/lobby) "crK" = ( -/turf/open/floor/prison{ - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen, /area/desert_dam/building/medical/west_wing_hallway) "crL" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/medidoor/colony{ dir = 1; name = "\improper Medical Hallway" }, -/turf/open/floor/prison{ - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen, /area/desert_dam/building/medical/north_wing_hallway) "crM" = ( -/turf/open/floor/prison{ - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen, /area/desert_dam/building/medical/north_wing_hallway) "crN" = ( /obj/structure/machinery/power/smes/buildable{ @@ -38220,18 +29264,13 @@ dir = 1 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating{ - dir = 6; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/southeast, /area/desert_dam/interior/dam_interior/smes_backup) "crO" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 8 }, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/desert_dam/exterior/valley/valley_telecoms) "crP" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -38239,39 +29278,26 @@ dir = 2; icon_state = "pipe-c" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/desert_dam/building/medical/north_wing_hallway) "crQ" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/disposalpipe/segment, /obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/desert_dam/interior/dam_interior/workshop) "crR" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/medical/north_wing_hallway) "crS" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/desert_dam/interior/dam_interior/northwestern_tunnel) "crV" = ( -/turf/open/floor/prison{ - dir = 6; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/southeast, /area/desert_dam/building/mining/workshop_foyer) "crW" = ( /obj/structure/desertdam/decals/road_edge{ @@ -38311,14 +29337,10 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/asphalt/cement{ - icon_state = "cement14" - }, +/turf/open/asphalt/cement/cement14, /area/desert_dam/interior/dam_interior/workshop) "csf" = ( -/turf/open/desert/dirt{ - icon_state = "desert_transition_corner1" - }, +/turf/open/desert/dirt/desert_transition_corner1, /area/desert_dam/exterior/valley/valley_civilian) "csg" = ( /obj/structure/platform{ @@ -38328,30 +29350,20 @@ /turf/open/gm/river/desert/deep, /area/desert_dam/exterior/river/filtration_a) "csh" = ( -/turf/open/floor{ - dir = 10; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/southwest, /area/desert_dam/building/security/prison) "csi" = ( -/turf/open/desert/dirt{ - dir = 8; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/west, /area/desert_dam/exterior/valley/valley_civilian) "csj" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/asteroidplating, /area/desert_dam/exterior/telecomm/lz2_tcomms) "csl" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/desert_dam/building/security/prison) "csm" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -38375,9 +29387,7 @@ /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/asteroidplating, /area/desert_dam/exterior/telecomm/lz2_tcomms) "csp" = ( /obj/structure/machinery/power/apc{ @@ -38385,26 +29395,17 @@ pixel_x = -24; start_charge = 0 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/west, /area/desert_dam/building/substation/west) "css" = ( /obj/structure/surface/table, /obj/item/device/analyzer, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/east, /area/desert_dam/building/substation/west) "cst" = ( /obj/structure/closet/secure_closet/engineering_welding, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/east, /area/desert_dam/building/substation/west) "csu" = ( /obj/structure/stairs, @@ -38412,10 +29413,7 @@ /area/desert_dam/exterior/valley/valley_telecoms) "csw" = ( /obj/structure/machinery/computer/telecomms/traffic, -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/northwest, /area/desert_dam/building/substation/west) "csx" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -38424,10 +29422,7 @@ /turf/open/floor/prison, /area/desert_dam/building/security/execution_chamber) "csy" = ( -/turf/open/floor{ - dir = 8; - icon_state = "carpet14-10" - }, +/turf/open/floor/carpet14_10/west, /area/desert_dam/building/bar/bar) "csz" = ( /obj/structure/desertdam/decals/road_edge, @@ -38439,27 +29434,16 @@ /turf/open/asphalt, /area/desert_dam/interior/dam_interior/south_tunnel_entrance) "csA" = ( -/turf/open/desert/dirt{ - dir = 1; - icon_state = "desert_transition_corner1" - }, +/turf/open/desert/dirt/desert_transition_corner1/north, /area/desert_dam/exterior/valley/valley_cargo) "csB" = ( -/turf/open/desert/dirt{ - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1, /area/desert_dam/exterior/valley/valley_cargo) "csC" = ( -/turf/open/desert/dirt{ - dir = 4; - icon_state = "desert_transition_corner1" - }, +/turf/open/desert/dirt/desert_transition_corner1/east, /area/desert_dam/exterior/valley/valley_cargo) "csD" = ( -/turf/open/desert/dirt{ - dir = 6; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/southeast, /area/desert_dam/exterior/valley/valley_cargo) "csE" = ( /obj/structure/flora/grass/desert/lightgrass_2, @@ -38484,35 +29468,23 @@ /turf/open/asphalt, /area/desert_dam/exterior/valley/valley_medical) "csI" = ( -/turf/open/floor/prison{ - dir = 6; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/southeast, /area/desert_dam/building/medical/lobby) "csJ" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/southwest, /area/desert_dam/building/medical/lobby) "csK" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/north, /area/desert_dam/building/medical/lobby) "csL" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/primary_tool_storage) "csM" = ( /obj/effect/spawner/random/toolbox, @@ -38522,10 +29494,7 @@ }, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/primary_tool_storage) "csN" = ( /obj/structure/surface/table/reinforced, @@ -38534,65 +29503,41 @@ }, /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/primary_tool_storage) "csO" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreencorner" - }, +/turf/open/floor/prison/whitegreencorner/east, /area/desert_dam/building/medical/west_wing_hallway) "csP" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/east, /area/desert_dam/building/medical/west_wing_hallway) "csQ" = ( -/turf/open/floor/prison{ - icon_state = "whitegreencorner" - }, +/turf/open/floor/prison/whitegreencorner, /area/desert_dam/building/medical/west_wing_hallway) "csR" = ( /obj/structure/machinery/light, -/turf/open/floor/prison{ - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen, /area/desert_dam/building/medical/north_wing_hallway) "csS" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreencorner" - }, +/turf/open/floor/prison/whitegreencorner/west, /area/desert_dam/building/medical/north_wing_hallway) "csT" = ( -/turf/open/floor/prison{ - icon_state = "whitegreencorner" - }, +/turf/open/floor/prison/whitegreencorner, /area/desert_dam/building/medical/north_wing_hallway) "csU" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/west, /area/desert_dam/building/medical/north_wing_hallway) "csV" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/east, /area/desert_dam/building/medical/north_wing_hallway) "csW" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ @@ -38604,16 +29549,12 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/desert_dam/interior/dam_interior/workshop) "csY" = ( /obj/structure/disposalpipe/junction, /obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/desert_dam/interior/dam_interior/workshop) "csZ" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ @@ -38621,21 +29562,15 @@ name = "\improper Workshop" }, /obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/desert_dam/interior/dam_interior/workshop) "cta" = ( /obj/effect/decal/sand_overlay/sand1, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached18" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached18, /area/desert_dam/exterior/valley/valley_civilian) "ctb" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/desert_dam/interior/dam_interior/west_tunnel) "ctc" = ( /obj/structure/disposalpipe/segment{ @@ -38644,123 +29579,80 @@ }, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement{ - icon_state = "cement14" - }, +/turf/open/asphalt/cement/cement14, /area/desert_dam/interior/dam_interior/west_tunnel) "ctd" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 8 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached18" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached18, /area/desert_dam/exterior/valley/valley_civilian) "cte" = ( /obj/structure/machinery/computer/telecomms/server, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/desert_dam/building/substation/west) "ctf" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/desert_dam/interior/dam_interior/west_tunnel) "ctg" = ( -/turf/open/asphalt/cement{ - icon_state = "cement2" - }, +/turf/open/asphalt/cement/cement2, /area/desert_dam/interior/dam_interior/west_tunnel) "cth" = ( /obj/structure/machinery/computer/telecomms/monitor, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/desert_dam/building/substation/west) "cti" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement{ - icon_state = "cement14" - }, +/turf/open/asphalt/cement/cement14, /area/desert_dam/interior/dam_interior/west_tunnel) "ctj" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/desert_dam/interior/dam_interior/northeastern_tunnel) "ctl" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, /obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/desert_dam/interior/dam_interior/northeastern_tunnel) "ctm" = ( -/turf/open/desert/dirt{ - dir = 1; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/north, /area/desert_dam/exterior/valley/valley_civilian) "ctn" = ( -/turf/open/desert/dirt{ - dir = 4; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/east, /area/desert_dam/exterior/valley/valley_civilian) "cto" = ( /turf/open/asphalt/cement_sunbleached, /area/desert_dam/exterior/valley/valley_civilian) "ctp" = ( -/turf/open/desert/dirt{ - dir = 10; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/southwest, /area/desert_dam/exterior/valley/valley_civilian) "ctq" = ( -/turf/open/desert/dirt{ - dir = 4; - icon_state = "desert_transition_corner1" - }, +/turf/open/desert/dirt/desert_transition_corner1/east, /area/desert_dam/exterior/valley/valley_civilian) "cts" = ( -/turf/open/asphalt/cement{ - icon_state = "cement15" - }, +/turf/open/asphalt/cement/cement15, /area/desert_dam/interior/dam_interior/northeastern_tunnel) "ctt" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement{ - icon_state = "cement14" - }, +/turf/open/asphalt/cement/cement14, /area/desert_dam/interior/dam_interior/northeastern_tunnel) "ctu" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement{ - icon_state = "cement15" - }, +/turf/open/asphalt/cement/cement15, /area/desert_dam/interior/dam_interior/northeastern_tunnel) "ctv" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement{ - icon_state = "cement14" - }, +/turf/open/asphalt/cement/cement14, /area/desert_dam/interior/dam_interior/northeastern_tunnel) "ctw" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/desert_dam/building/substation/west) "ctz" = ( /obj/structure/platform{ @@ -38769,40 +29661,28 @@ /obj/structure/platform{ dir = 4 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_telecoms) "ctA" = ( /obj/item/device/flashlight, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/west, /area/desert_dam/building/substation/west) "ctB" = ( /obj/structure/bed/chair/office/light{ dir = 1 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greencorner" - }, +/turf/open/floor/prison/greencorner/east, /area/desert_dam/building/substation/west) "ctD" = ( /obj/structure/disposalpipe/segment, /obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/desert_dam/interior/dam_interior/northeastern_tunnel) "ctE" = ( /obj/structure/platform_decoration{ dir = 8 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_telecoms) "ctF" = ( /obj/effect/decal/warning_stripes{ @@ -38821,29 +29701,21 @@ /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 8 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_cargo) "ctL" = ( /obj/effect/decal/sand_overlay/sand1/corner1, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached19" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached19, /area/desert_dam/exterior/valley/valley_medical) "ctM" = ( /obj/effect/decal/sand_overlay/sand1, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached18" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached18, /area/desert_dam/exterior/valley/valley_medical) "ctN" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 8 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached9" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached9, /area/desert_dam/exterior/valley/valley_medical) "ctO" = ( /obj/structure/desertdam/decals/road_stop{ @@ -38857,36 +29729,23 @@ dir = 9 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/primary_tool_storage) "ctQ" = ( -/turf/open/floor/prison{ - dir = 5; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/northeast, /area/desert_dam/building/medical/lobby) "ctR" = ( -/turf/open/floor/prison{ - dir = 9; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/northwest, /area/desert_dam/building/medical/lobby) "ctS" = ( -/turf/open/floor/prison{ - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen, /area/desert_dam/building/medical/lobby) "ctT" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/medidoor/colony{ dir = 2; name = "\improper Medical Lobby" }, -/turf/open/floor/prison{ - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen, /area/desert_dam/building/medical/lobby) "ctV" = ( /obj/structure/surface/table/reinforced, @@ -38897,10 +29756,7 @@ pixel_x = 28; start_charge = 0 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/east, /area/desert_dam/building/medical/west_wing_hallway) "ctW" = ( /turf/closed/wall, @@ -38916,16 +29772,10 @@ /obj/structure/machinery/door/airlock/multi_tile/almayer/medidoor/colony{ name = "\improper Observation" }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/medical/surgury_observation) "cua" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/medical/surgury_observation) "cub" = ( /obj/structure/window/framed/colony, @@ -38935,18 +29785,12 @@ /obj/structure/machinery/door/airlock/multi_tile/almayer/medidoor/colony{ name = "\improper Medical Hallway" }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/west, /area/desert_dam/building/medical/east_wing_hallway) "cud" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/east, /area/desert_dam/building/medical/east_wing_hallway) "cue" = ( /turf/closed/wall, @@ -38969,9 +29813,7 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/desert_dam/interior/dam_interior/central_tunnel) "cuk" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -38983,9 +29825,7 @@ }, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/desert_dam/interior/dam_interior/central_tunnel) "cul" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -38996,9 +29836,7 @@ }, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/desert_dam/interior/dam_interior/central_tunnel) "cum" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -39008,9 +29846,7 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/desert_dam/interior/dam_interior/central_tunnel) "cun" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -39020,49 +29856,35 @@ dir = 2; icon_state = "pipe-c" }, -/turf/open/asphalt/cement{ - icon_state = "cement9" - }, +/turf/open/asphalt/cement/cement9, /area/desert_dam/interior/dam_interior/central_tunnel) "cuo" = ( -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/desert_dam/interior/dam_interior/central_tunnel) "cup" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 1 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_civilian) "cuq" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/desert_dam/interior/dam_interior/central_tunnel) "cur" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/desert_dam/interior/dam_interior/central_tunnel) "cus" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement{ - icon_state = "cement14" - }, +/turf/open/asphalt/cement/cement14, /area/desert_dam/interior/dam_interior/central_tunnel) "cut" = ( /obj/structure/disposalpipe/segment, -/turf/open/asphalt/cement{ - icon_state = "cement15" - }, +/turf/open/asphalt/cement/cement15, /area/desert_dam/interior/dam_interior/central_tunnel) "cuu" = ( /obj/structure/platform{ @@ -39071,37 +29893,25 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/desert_dam/interior/dam_interior/central_tunnel) "cuv" = ( /obj/structure/platform_decoration{ dir = 8 }, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/desert_dam/interior/dam_interior/central_tunnel) "cuw" = ( -/turf/open/desert/dirt{ - icon_state = "rock1" - }, +/turf/open/desert/dirt/rock1, /area/desert_dam/exterior/valley/valley_civilian) "cux" = ( -/turf/open/desert/dirt{ - dir = 6; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/southeast, /area/desert_dam/exterior/valley/valley_civilian) "cuy" = ( /obj/structure/platform{ dir = 1 }, -/turf/open/desert/dirt{ - dir = 8; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/west, /area/desert_dam/exterior/valley/valley_telecoms) "cuz" = ( /obj/structure/desertdam/decals/road_edge{ @@ -39113,27 +29923,20 @@ /turf/open/asphalt, /area/desert_dam/exterior/valley/valley_cargo) "cuA" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "greencorner" - }, +/turf/open/floor/prison/greencorner/west, /area/desert_dam/building/substation/west) "cuB" = ( /obj/effect/landmark/survivor_spawner, /turf/open/floor/prison, /area/desert_dam/building/substation/west) "cuH" = ( -/turf/open/desert/dirt{ - icon_state = "rock1" - }, +/turf/open/desert/dirt/rock1, /area/desert_dam/exterior/valley/valley_cargo) "cuI" = ( /obj/effect/decal/sand_overlay/sand2/corner2{ dir = 4 }, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/desert_dam/interior/dam_interior/south_tunnel) "cuJ" = ( /obj/structure/desertdam/decals/road_edge{ @@ -39148,9 +29951,7 @@ /obj/effect/decal/sand_overlay/sand2{ dir = 1 }, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/desert_dam/interior/dam_interior/south_tunnel) "cuL" = ( /obj/structure/desertdam/decals/road_edge{ @@ -39187,15 +29988,11 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 4 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_cargo) "cuQ" = ( /obj/effect/blocker/toxic_water/Group_1, -/turf/open/desert/desert_shore/desert_shore1{ - dir = 8 - }, +/turf/open/desert/desert_shore/desert_shore1/west, /area/desert_dam/exterior/river/riverside_south) "cuR" = ( /obj/structure/platform{ @@ -39206,18 +30003,14 @@ }, /obj/effect/blocker/toxic_water/Group_2, /obj/item/clothing/head/soft/ferret, -/turf/open/desert/desert_shore/shore_edge1{ - dir = 4 - }, +/turf/open/desert/desert_shore/shore_edge1/east, /area/desert_dam/exterior/river/riverside_central_south) "cuS" = ( /obj/structure/platform{ dir = 8 }, /obj/effect/blocker/toxic_water/Group_1, -/turf/open/desert/desert_shore/shore_edge1{ - dir = 1 - }, +/turf/open/desert/desert_shore/shore_edge1/north, /area/desert_dam/exterior/river/riverside_south) "cuT" = ( /obj/structure/platform{ @@ -39226,73 +30019,46 @@ /obj/structure/platform{ dir = 4 }, -/turf/open/desert/dirt{ - icon_state = "dirt2" - }, +/turf/open/desert/dirt/dirt2, /area/desert_dam/exterior/river/riverside_south) "cuU" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached13" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached13, /area/desert_dam/exterior/valley/valley_medical) "cuV" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreencorner" - }, +/turf/open/floor/prison/whitegreencorner/west, /area/desert_dam/building/medical/lobby) "cuW" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2, /area/desert_dam/interior/dam_interior/smes_backup) "cuX" = ( /obj/structure/surface/table/reinforced, /obj/item/clothing/glasses/hud/health, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/east, /area/desert_dam/building/medical/west_wing_hallway) "cuY" = ( /obj/structure/machinery/cm_vending/sorted/medical/no_access, -/turf/open/floor/prison{ - dir = 9; - icon_state = "whitered" - }, +/turf/open/floor/prison/whitered/northwest, /area/desert_dam/building/medical/primary_storage) "cuZ" = ( /obj/structure/machinery/cm_vending/sorted/medical/no_access, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitered" - }, +/turf/open/floor/prison/whitered/north, /area/desert_dam/building/medical/primary_storage) "cva" = ( /obj/structure/machinery/cm_vending/sorted/medical/blood, -/turf/open/floor/prison{ - dir = 5; - icon_state = "whitered" - }, +/turf/open/floor/prison/whitered/northeast, /area/desert_dam/building/medical/primary_storage) "cvb" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/desert_dam/building/medical/surgury_observation) "cvc" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/desert_dam/building/medical/surgury_observation) "cvd" = ( /obj/structure/machinery/power/apc{ @@ -39300,31 +30066,20 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/desert_dam/building/medical/surgury_observation) "cve" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/west, /area/desert_dam/building/medical/east_wing_hallway) "cvf" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/interior/dam_interior/workshop) "cvg" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/east, /area/desert_dam/building/medical/east_wing_hallway) "cvh" = ( /obj/structure/closet/secure_closet/medical_doctor, @@ -39340,10 +30095,7 @@ dir = 1; icon_state = "pipe-c" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/engine_east_wing) "cvk" = ( /obj/structure/machinery/computer/crew, @@ -39357,21 +30109,14 @@ /obj/effect/decal/sand_overlay/sand2/corner2{ dir = 1 }, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/desert_dam/interior/dam_interior/south_tunnel) "cvn" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached13" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached13, /area/desert_dam/exterior/valley/valley_civilian) "cvo" = ( /obj/structure/flora/tree/joshua, -/turf/open/desert/dirt{ - dir = 5; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/northeast, /area/desert_dam/exterior/valley/bar_valley_dam) "cvp" = ( /obj/effect/decal/cleanable/dirt, @@ -39381,10 +30126,7 @@ /turf/open/asphalt/cement_sunbleached, /area/desert_dam/exterior/valley/bar_valley_dam) "cvq" = ( -/turf/open/floor{ - dir = 8; - icon_state = "carpet10-8" - }, +/turf/open/floor/carpet10_8/west, /area/desert_dam/building/bar/bar) "cvr" = ( /obj/effect/decal/cleanable/dirt, @@ -39405,70 +30147,48 @@ /turf/open/floor/interior/tatami, /area/desert_dam/building/bar/bar) "cvv" = ( -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/desert_dam/interior/dam_interior/south_tunnel) "cvw" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached14" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached14, /area/desert_dam/exterior/valley/valley_civilian) "cvx" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached15" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached15, /area/desert_dam/exterior/valley/valley_civilian) "cvz" = ( /obj/effect/decal/sand_overlay/sand2/corner2, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/desert_dam/interior/dam_interior/south_tunnel) "cvA" = ( /obj/effect/decal/sand_overlay/sand2, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/desert_dam/interior/dam_interior/south_tunnel) "cvB" = ( /obj/structure/surface/table, /obj/item/folder/black_random, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/southwest, /area/desert_dam/building/substation/west) "cvC" = ( /obj/structure/surface/table, /obj/item/folder/yellow, /obj/structure/machinery/light, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison{ - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2, /area/desert_dam/building/substation/west) "cvD" = ( /obj/structure/stairs, /obj/structure/platform{ dir = 8 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached3" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached3, /area/desert_dam/exterior/valley/valley_telecoms) "cvE" = ( /obj/structure/surface/table, /obj/item/device/encryptionkey, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/prison/darkyellowcorners2/west, /area/desert_dam/building/substation/west) "cvF" = ( -/turf/open/floor/prison{ - icon_state = "greencorner" - }, +/turf/open/floor/prison/greencorner, /area/desert_dam/building/substation/west) "cvG" = ( /obj/effect/decal/warning_stripes{ @@ -39477,10 +30197,7 @@ /turf/open/asphalt, /area/desert_dam/exterior/valley/valley_cargo) "cvH" = ( -/turf/open/desert/dirt{ - dir = 8; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/west, /area/desert_dam/exterior/valley/bar_valley_dam) "cvI" = ( /obj/structure/desertdam/decals/road_stop{ @@ -39497,15 +30214,11 @@ /area/desert_dam/exterior/valley/valley_cargo) "cvK" = ( /obj/effect/blocker/toxic_water/Group_1, -/turf/open/desert/desert_shore/shore_corner2{ - dir = 1 - }, +/turf/open/desert/desert_shore/shore_corner2/north, /area/desert_dam/exterior/river/riverside_south) "cvL" = ( /obj/effect/blocker/toxic_water/Group_1, -/turf/open/gm/river/desert/shallow_edge{ - dir = 9 - }, +/turf/open/gm/river/desert/shallow_edge/northwest, /area/desert_dam/exterior/river/riverside_south) "cvM" = ( /turf/closed/wall/r_wall, @@ -39517,10 +30230,7 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/west, /area/desert_dam/building/medical/lobby) "cvO" = ( /obj/structure/surface/table/reinforced, @@ -39531,20 +30241,14 @@ dir = 8; health = 80 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/desert_dam/building/medical/lobby) "cvP" = ( /obj/structure/machinery/computer/med_data, /obj/structure/window/reinforced{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/desert_dam/building/medical/lobby) "cvQ" = ( /obj/structure/machinery/computer/crew, @@ -39554,73 +30258,47 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/desert_dam/building/medical/lobby) "cvS" = ( /obj/structure/cargo_container/trijent/mid/alt, /turf/open/floor/prison, /area/desert_dam/building/warehouse/warehouse) "cvT" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitered" - }, +/turf/open/floor/prison/whitered/west, /area/desert_dam/building/medical/primary_storage) "cvU" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/medical/primary_storage) "cvV" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/primary_tool_storage) "cvW" = ( /obj/structure/bed/chair, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/desert_dam/building/medical/surgury_observation) "cvZ" = ( /obj/structure/machinery/door/airlock/almayer/medical/glass/colony{ name = "\improper Observation" }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/medical/surgury_observation) "cwb" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/primary_tool_storage) "cwc" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/prison/darkyellowcorners2, /area/desert_dam/interior/dam_interior/primary_tool_storage) "cwd" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreencorner" - }, +/turf/open/floor/prison/whitegreencorner/north, /area/desert_dam/building/medical/east_wing_hallway) "cwf" = ( /obj/structure/bed/chair/office/light{ @@ -39642,21 +30320,14 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/prison/darkyellowcorners2, /area/desert_dam/building/substation/west) "cwl" = ( -/turf/open/desert/dirt{ - dir = 10; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/southwest, /area/desert_dam/exterior/valley/valley_telecoms) "cwm" = ( /obj/effect/decal/sand_overlay/sand1, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached14" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached14, /area/desert_dam/exterior/valley/valley_telecoms) "cwn" = ( /obj/effect/decal/cleanable/dirt, @@ -39664,18 +30335,13 @@ /turf/open/asphalt, /area/desert_dam/exterior/valley/valley_civilian) "cwo" = ( -/turf/open/desert/dirt{ - dir = 1; - icon_state = "desert_transition_corner1" - }, +/turf/open/desert/dirt/desert_transition_corner1/north, /area/desert_dam/exterior/valley/valley_civilian) "cwp" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 1 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_civilian) "cwq" = ( /obj/structure/desertdam/decals/road_edge{ @@ -39692,10 +30358,7 @@ id = "dam_shutter_hangar"; name = "\improper Hangar Lock" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/hanger) "cws" = ( /obj/structure/disposalpipe/segment{ @@ -39704,39 +30367,25 @@ /turf/open/asphalt, /area/desert_dam/interior/dam_interior/west_tunnel) "cwu" = ( -/turf/open/desert/dirt{ - dir = 8; - icon_state = "desert_transition_corner1" - }, +/turf/open/desert/dirt/desert_transition_corner1/west, /area/desert_dam/exterior/valley/valley_civilian) "cww" = ( /obj/structure/surface/table, /obj/item/tool/hand_labeler, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/west, /area/desert_dam/building/substation/west) "cwx" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/prison/darkyellowcorners2/southwest, /area/desert_dam/building/substation/west) "cwy" = ( /obj/structure/surface/rack, /obj/item/stack/sheet/mineral/phoron{ amount = 50 }, -/turf/open/floor/prison{ - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2, /area/desert_dam/building/substation/west) "cwz" = ( -/turf/open/desert/dirt{ - dir = 10; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/southwest, /area/desert_dam/exterior/valley/valley_cargo) "cwA" = ( /obj/structure/desertdam/decals/road_edge{ @@ -39748,17 +30397,12 @@ /turf/open/asphalt, /area/desert_dam/interior/dam_interior/central_tunnel) "cwB" = ( -/turf/open/desert/dirt{ - dir = 4; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/east, /area/desert_dam/exterior/valley/valley_cargo) "cwC" = ( /obj/effect/decal/sand_overlay/sand1, /obj/effect/decal/cleanable/blood, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached14" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached14, /area/desert_dam/exterior/valley/valley_civilian) "cwD" = ( /obj/structure/disposalpipe/segment{ @@ -39790,10 +30434,7 @@ /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/west, /area/desert_dam/building/medical/lobby) "cwI" = ( /obj/structure/surface/table/reinforced, @@ -39801,106 +30442,68 @@ dir = 8 }, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/desert_dam/building/medical/lobby) "cwJ" = ( /obj/structure/bed/chair/office/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/desert_dam/building/medical/lobby) "cwK" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/desert_dam/building/medical/lobby) "cwL" = ( /obj/structure/machinery/door/airlock/almayer/generic, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/desert_dam/building/medical/lobby) "cwM" = ( /obj/structure/surface/table/reinforced, /obj/item/storage/box/pillbottles, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/east, /area/desert_dam/building/medical/west_wing_hallway) "cwN" = ( /obj/structure/bed/chair/wheelchair, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitered" - }, +/turf/open/floor/prison/whitered/west, /area/desert_dam/building/medical/primary_storage) "cwO" = ( /obj/structure/disposalpipe/segment{ dir = 4; icon_state = "pipe-c" }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/medical/primary_storage) "cwP" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk{ dir = 8 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitered" - }, +/turf/open/floor/prison/whitered/east, /area/desert_dam/building/medical/primary_storage) "cwQ" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/desert_dam/building/medical/surgury_observation) "cwR" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" }, /obj/structure/machinery/light, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/desert_dam/building/medical/surgury_observation) "cwS" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/west, /area/desert_dam/building/medical/east_wing_hallway) "cwT" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/prison/darkyellowcorners2/west, /area/desert_dam/interior/dam_interior/primary_tool_storage) "cwU" = ( /obj/structure/machinery/light, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2, /area/desert_dam/interior/dam_interior/primary_tool_storage) "cwV" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -39909,10 +30512,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/medical/east_wing_hallway) "cwW" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -39924,10 +30524,7 @@ /obj/structure/machinery/door/airlock/almayer/medical/glass/colony{ name = "\improper CMO's Officer" }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/medical/CMO) "cwX" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -39970,9 +30567,7 @@ dir = 1; icon_state = "pipe-j2" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/desert_dam/interior/dam_interior/south_tunnel) "cxf" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -39994,14 +30589,10 @@ "cxj" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/sand_overlay/sand2, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/interior/dam_interior/western_dam_cave) "cxk" = ( -/turf/open/desert/dirt{ - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1, /area/desert_dam/exterior/valley/valley_telecoms) "cxl" = ( /obj/item/stack/sheet/wood, @@ -40012,25 +30603,17 @@ /turf/open/asphalt/cement_sunbleached, /area/desert_dam/exterior/valley/valley_civilian) "cxm" = ( -/turf/open/desert/dirt{ - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1, /area/desert_dam/exterior/valley/valley_civilian) "cxn" = ( -/turf/open/desert/dirt{ - dir = 6; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/southeast, /area/desert_dam/exterior/valley/valley_telecoms) "cxo" = ( /obj/structure/surface/rack, /obj/item/stack/sheet/mineral/phoron{ amount = 50 }, -/turf/open/floor/prison{ - dir = 6; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/southeast, /area/desert_dam/building/substation/west) "cxq" = ( /obj/structure/platform{ @@ -40039,18 +30622,13 @@ /obj/structure/platform{ dir = 8 }, -/turf/open/desert/dirt{ - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1, /area/desert_dam/exterior/valley/valley_cargo) "cxr" = ( /obj/structure/platform{ dir = 1 }, -/turf/open/desert/dirt{ - dir = 4; - icon_state = "desert_transition_corner1" - }, +/turf/open/desert/dirt/desert_transition_corner1/east, /area/desert_dam/exterior/valley/valley_cargo) "cxt" = ( /obj/structure/platform{ @@ -40065,17 +30643,13 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 4 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_cargo) "cxv" = ( /obj/structure/platform_decoration{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached3" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached3, /area/desert_dam/exterior/valley/valley_telecoms) "cxw" = ( /obj/structure/desertdam/decals/road_edge{ @@ -40104,9 +30678,7 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 10 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached14" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached14, /area/desert_dam/exterior/valley/valley_medical) "cxA" = ( /obj/structure/surface/table/reinforced, @@ -40116,25 +30688,17 @@ }, /obj/item/paper_bin, /obj/item/tool/pen, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/desert_dam/building/medical/lobby) "cxB" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "whiteredcorner" - }, +/turf/open/floor/prison/whiteredcorner/east, /area/desert_dam/building/medical/primary_storage) "cxC" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper Workshop" }, /obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/desert_dam/interior/dam_interior/workshop) "cxD" = ( /obj/structure/surface/table, @@ -40145,10 +30709,7 @@ /obj/item/storage/pill_bottle/inaprovaline{ pixel_x = 7 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitered" - }, +/turf/open/floor/prison/whitered/east, /area/desert_dam/building/medical/primary_storage) "cxE" = ( /obj/structure/window/framed/colony, @@ -40160,15 +30721,10 @@ dir = 9 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/primary_tool_storage) "cxH" = ( -/turf/open/floor/prison{ - icon_state = "whitegreencorner" - }, +/turf/open/floor/prison/whitegreencorner, /area/desert_dam/building/medical/east_wing_hallway) "cxI" = ( /obj/structure/disposalpipe/segment, @@ -40176,10 +30732,7 @@ /area/desert_dam/building/medical/CMO) "cxJ" = ( /obj/effect/spawner/random/toolbox, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/west, /area/desert_dam/building/substation/west) "cxK" = ( /obj/structure/machinery/autolathe, @@ -40193,10 +30746,7 @@ /turf/open/floor/prison, /area/desert_dam/building/mining/workshop) "cxN" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/east, /area/desert_dam/building/substation/west) "cxP" = ( /obj/structure/platform{ @@ -40215,34 +30765,23 @@ /area/desert_dam/exterior/valley/valley_cargo) "cxR" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/engidoor/glass/colony, -/turf/open/floor/prison{ - icon_state = "greencorner" - }, +/turf/open/floor/prison/greencorner, /area/desert_dam/building/substation/west) "cxS" = ( /obj/structure/platform{ dir = 1 }, -/turf/open/desert/dirt{ - dir = 4; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/east, /area/desert_dam/exterior/valley/valley_cargo) "cxT" = ( /obj/structure/flora/grass/desert/lightgrass_6, /turf/open/desert/dirt, /area/desert_dam/exterior/valley/valley_cargo) "cxU" = ( -/turf/open/desert/dirt{ - dir = 9; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/northwest, /area/desert_dam/exterior/valley/valley_cargo) "cxV" = ( -/turf/open/desert/dirt{ - dir = 1; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/north, /area/desert_dam/exterior/valley/valley_cargo) "cxW" = ( /obj/structure/platform{ @@ -40250,28 +30789,20 @@ }, /obj/structure/platform, /obj/effect/blocker/toxic_water/Group_1, -/turf/open/desert/desert_shore/desert_shore1{ - dir = 8 - }, +/turf/open/desert/desert_shore/desert_shore1/west, /area/desert_dam/exterior/river/riverside_south) "cxY" = ( /obj/structure/window/reinforced, /obj/structure/surface/table/reinforced, /obj/structure/machinery/recharger, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/desert_dam/building/medical/lobby) "cxZ" = ( /obj/structure/window/reinforced, /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/desert_dam/building/medical/lobby) "cyb" = ( /obj/structure/pipes/standard/manifold/hidden/green{ @@ -40281,10 +30812,7 @@ dir = 1; icon_state = "pipe-c" }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/east, /area/desert_dam/building/medical/west_wing_hallway) "cyc" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -40294,10 +30822,7 @@ dir = 8; icon_state = "pipe-j2" }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/north, /area/desert_dam/building/medical/west_wing_hallway) "cyd" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -40306,10 +30831,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/medical/primary_storage) "cye" = ( /obj/structure/pipes/vents/pump{ @@ -40319,10 +30841,7 @@ dir = 8; icon_state = "pipe-c" }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/medical/primary_storage) "cyf" = ( /obj/structure/machinery/door/poddoor/almayer/locked{ @@ -40336,16 +30855,10 @@ /obj/structure/machinery/bioprinter{ stored_metal = 1000 }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "whitered" - }, +/turf/open/floor/prison/whitered/northwest, /area/desert_dam/building/medical/surgery_room_one) "cyh" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitered" - }, +/turf/open/floor/prison/whitered/north, /area/desert_dam/building/medical/surgery_room_one) "cyj" = ( /obj/structure/closet/secure_closet/medical2, @@ -40354,10 +30867,7 @@ pixel_y = -5 }, /obj/effect/landmark/objective_landmark/far, -/turf/open/floor/prison{ - dir = 5; - icon_state = "whitered" - }, +/turf/open/floor/prison/whitered/northeast, /area/desert_dam/building/medical/surgery_room_one) "cyk" = ( /turf/closed/wall, @@ -40366,23 +30876,14 @@ /obj/structure/machinery/bioprinter{ stored_metal = 1000 }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "whitered" - }, +/turf/open/floor/prison/whitered/northwest, /area/desert_dam/building/medical/surgery_room_two) "cym" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitered" - }, +/turf/open/floor/prison/whitered/north, /area/desert_dam/building/medical/surgery_room_two) "cyn" = ( /obj/structure/machinery/iv_drip, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitered" - }, +/turf/open/floor/prison/whitered/north, /area/desert_dam/building/medical/surgery_room_two) "cyo" = ( /obj/structure/closet/secure_closet/medical2, @@ -40391,10 +30892,7 @@ pixel_y = -5 }, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/prison{ - dir = 5; - icon_state = "whitered" - }, +/turf/open/floor/prison/whitered/northeast, /area/desert_dam/building/medical/surgery_room_two) "cyp" = ( /turf/closed/wall, @@ -40420,10 +30918,7 @@ /area/desert_dam/building/medical/CMO) "cyt" = ( /obj/structure/largecrate/random, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/desert_dam/building/mining/workshop) "cyv" = ( /obj/effect/decal/sand_overlay/sand2/corner2{ @@ -40432,60 +30927,43 @@ /turf/open/asphalt/cement, /area/desert_dam/interior/dam_interior/south_tunnel) "cyw" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/southwest, /area/desert_dam/building/mining/workshop_foyer) "cyx" = ( /obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/prison{ - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2, /area/desert_dam/building/mining/workshop_foyer) "cyB" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 9 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached2" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached2, /area/desert_dam/exterior/valley/valley_cargo) "cyC" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 8 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached2" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached2, /area/desert_dam/exterior/valley/valley_cargo) "cyD" = ( /turf/open/asphalt/cement, /area/desert_dam/interior/dam_interior/east_tunnel_entrance) "cyE" = ( /obj/effect/decal/sand_overlay/sand1/corner1, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached9" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached9, /area/desert_dam/exterior/valley/valley_cargo) "cyG" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 5 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached9" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached9, /area/desert_dam/exterior/valley/valley_cargo) "cyH" = ( -/turf/open/floor/prison{ - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2, /area/desert_dam/building/security/armory) "cyL" = ( /obj/structure/prop/dam/boulder/boulder1, -/turf/open/desert/dirt{ - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1, /area/desert_dam/exterior/valley/valley_cargo) "cyN" = ( /obj/structure/flora/grass/desert/lightgrass_11, @@ -40502,42 +30980,31 @@ "cyR" = ( /obj/structure/platform, /obj/effect/blocker/toxic_water/Group_1, -/turf/open/gm/river/desert/shallow_edge{ - dir = 8 - }, +/turf/open/gm/river/desert/shallow_edge/west, /area/desert_dam/exterior/river/riverside_south) "cyS" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 1 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached13" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached13, /area/desert_dam/exterior/valley/valley_medical) "cyU" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/desert_dam/interior/dam_interior/workshop) "cyV" = ( /obj/structure/disposalpipe/segment{ dir = 8; icon_state = "pipe-c" }, -/turf/open/floor/prison{ - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen, /area/desert_dam/building/medical/west_wing_hallway) "cyW" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ dir = 2; name = "\improper Medical Storage" }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/medical/primary_storage) "cyX" = ( /obj/structure/surface/table, @@ -40546,40 +31013,23 @@ pixel_x = 5; pixel_y = 3 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitered" - }, +/turf/open/floor/prison/whitered/east, /area/desert_dam/building/medical/primary_storage) "cyY" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitered" - }, +/turf/open/floor/prison/whitered/west, /area/desert_dam/building/medical/surgery_room_one) "cyZ" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/medical/surgery_room_one) "cza" = ( /obj/structure/machinery/light, -/turf/open/floor/prison{ - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2, /area/desert_dam/building/mining/workshop_foyer) "czb" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitered" - }, +/turf/open/floor/prison/whitered/west, /area/desert_dam/building/medical/surgery_room_two) "czc" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/medical/surgery_room_two) "czd" = ( /obj/item/tool/surgery/surgicaldrill, @@ -40588,19 +31038,13 @@ /obj/item/tool/surgery/FixOVein, /obj/item/stack/nanopaste, /obj/structure/surface/table/reinforced, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitered" - }, +/turf/open/floor/prison/whitered/east, /area/desert_dam/building/medical/surgery_room_two) "cze" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/east, /area/desert_dam/building/medical/east_wing_hallway) "czf" = ( /turf/closed/wall, @@ -40612,9 +31056,7 @@ /obj/structure/surface/rack, /obj/effect/spawner/random/tech_supply, /obj/effect/spawner/random/tech_supply, -/turf/open/floor/prison{ - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2, /area/desert_dam/building/mining/workshop_foyer) "czj" = ( /obj/effect/blocker/toxic_water/Group_2, @@ -40622,31 +31064,22 @@ /area/desert_dam/exterior/river/riverside_central_south) "czk" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony, -/turf/open/floor/plating{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/plating/asteroidfloor/north, /area/desert_dam/interior/dam_interior/east_tunnel_entrance) "czn" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/technology_scanner, -/turf/open/floor/prison{ - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2, /area/desert_dam/building/mining/workshop_foyer) "czq" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached3" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached3, /area/desert_dam/exterior/valley/valley_cargo) "czt" = ( /obj/structure/prop/dam/boulder/boulder2, -/turf/open/desert/rock/edge1{ - dir = 4 - }, +/turf/open/desert/rock/edge1/east, /area/desert_dam/exterior/valley/valley_cargo) "czv" = ( /obj/structure/flora/grass/desert/lightgrass_1, @@ -40656,10 +31089,7 @@ /obj/structure/platform{ dir = 8 }, -/turf/open/desert/dirt{ - dir = 4; - icon_state = "desert_transition_corner1" - }, +/turf/open/desert/dirt/desert_transition_corner1/east, /area/desert_dam/exterior/valley/valley_cargo) "czx" = ( /obj/structure/flora/grass/desert/lightgrass_8, @@ -40667,30 +31097,19 @@ /area/desert_dam/exterior/valley/bar_valley_dam) "czy" = ( /obj/structure/prop/dam/boulder/boulder2, -/turf/open/desert/dirt{ - dir = 8; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/west, /area/desert_dam/exterior/valley/bar_valley_dam) "czz" = ( /obj/structure/prop/dam/boulder/boulder1, -/turf/open/desert/dirt{ - dir = 1; - icon_state = "desert_transition_corner1" - }, +/turf/open/desert/dirt/desert_transition_corner1/north, /area/desert_dam/exterior/valley/bar_valley_dam) "czA" = ( -/turf/open/desert/dirt{ - dir = 8; - icon_state = "desert_transition_corner1" - }, -/area/desert_dam/exterior/valley/valley_cargo) +/turf/open/desert/dirt/desert_transition_corner1/west, +/area/desert_dam/exterior/landing_pad_two) "czB" = ( /obj/structure/platform, /obj/effect/blocker/toxic_water/Group_1, -/turf/open/gm/river/desert/shallow_edge{ - dir = 4 - }, +/turf/open/gm/river/desert/shallow_edge/east, /area/desert_dam/exterior/river/riverside_south) "czC" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ @@ -40699,16 +31118,11 @@ /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 4 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_medical) "czD" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/desert_dam/interior/dam_interior/CE_office) "czE" = ( /obj/structure/surface/table, @@ -40725,27 +31139,18 @@ pixel_x = -5; pixel_y = -5 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whiteredcorner" - }, +/turf/open/floor/prison/whiteredcorner/west, /area/desert_dam/building/medical/primary_storage) "czF" = ( /obj/structure/surface/table, /obj/item/storage/fancy/vials/random, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitered" - }, +/turf/open/floor/prison/whitered/east, /area/desert_dam/building/medical/primary_storage) "czG" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitered" - }, +/turf/open/floor/prison/whitered/west, /area/desert_dam/building/medical/surgery_room_one) "czH" = ( /obj/item/tool/surgery/scalpel, @@ -40755,19 +31160,13 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitered" - }, +/turf/open/floor/prison/whitered/east, /area/desert_dam/building/medical/surgery_room_one) "czI" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitered" - }, +/turf/open/floor/prison/whitered/west, /area/desert_dam/building/medical/surgery_room_two) "czJ" = ( /obj/item/tool/surgery/scalpel, @@ -40777,32 +31176,20 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitered" - }, +/turf/open/floor/prison/whitered/east, /area/desert_dam/building/medical/surgery_room_two) "czL" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/desert_dam/building/substation/central) "czM" = ( /obj/structure/machinery/power/smes/batteryrack/substation, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/desert_dam/building/substation/central) "czN" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/desert_dam/building/substation/central) "czO" = ( /turf/closed/wall/r_wall, @@ -40829,9 +31216,7 @@ /area/desert_dam/interior/dam_interior/east_tunnel_entrance) "czS" = ( /obj/effect/blocker/toxic_water/Group_2, -/turf/open/gm/river/desert/shallow_edge{ - dir = 5 - }, +/turf/open/gm/river/desert/shallow_edge/northeast, /area/desert_dam/exterior/river/riverside_central_south) "czT" = ( /obj/structure/platform{ @@ -40841,17 +31226,13 @@ dir = 8 }, /obj/effect/blocker/toxic_water/Group_2, -/turf/open/desert/desert_shore/desert_shore1{ - dir = 1 - }, +/turf/open/desert/desert_shore/desert_shore1/north, /area/desert_dam/exterior/river/riverside_east) "czU" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 4 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_civilian) "czV" = ( /obj/effect/blocker/toxic_water/Group_1, @@ -40859,32 +31240,23 @@ /area/desert_dam/exterior/river/riverside_south) "czW" = ( /obj/effect/decal/sand_overlay/sand1/corner1, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached3" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached3, /area/desert_dam/exterior/valley/valley_cargo) "czX" = ( /obj/effect/blocker/toxic_water/Group_1, -/turf/open/gm/river/desert/shallow_edge/covered{ - dir = 4 - }, +/turf/open/gm/river/desert/shallow_edge/covered/east, /area/desert_dam/exterior/river/riverside_south) "czY" = ( /obj/structure/platform{ dir = 8 }, -/turf/open/desert/dirt{ - dir = 10; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/southwest, /area/desert_dam/exterior/valley/valley_cargo) "czZ" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 8 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached17" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached17, /area/desert_dam/exterior/valley/valley_cargo) "cAa" = ( /obj/structure/platform{ @@ -40919,110 +31291,80 @@ }, /obj/structure/platform, /obj/effect/blocker/toxic_water/Group_1, -/turf/open/desert/desert_shore/desert_shore1{ - dir = 4 - }, +/turf/open/desert/desert_shore/desert_shore1/east, /area/desert_dam/exterior/river/riverside_south) "cAf" = ( /obj/effect/blocker/toxic_water/Group_1, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/river/riverside_south) "cAg" = ( /obj/structure/platform{ dir = 1 }, /obj/effect/blocker/toxic_water/Group_2, -/turf/open/desert/desert_shore/desert_shore1{ - dir = 1 - }, +/turf/open/desert/desert_shore/desert_shore1/north, /area/desert_dam/exterior/river/riverside_east) "cAh" = ( /obj/structure/platform_decoration{ dir = 4 }, /obj/effect/blocker/toxic_water/Group_2, -/turf/open/desert/desert_shore/desert_shore1{ - dir = 1 - }, +/turf/open/desert/desert_shore/desert_shore1/north, /area/desert_dam/exterior/river/riverside_east) "cAi" = ( /obj/structure/platform{ dir = 1 }, /obj/effect/blocker/toxic_water/Group_1, -/turf/open/gm/river/desert/shallow_edge{ - dir = 8 - }, +/turf/open/gm/river/desert/shallow_edge/west, /area/desert_dam/exterior/river/riverside_south) "cAj" = ( /obj/structure/platform{ dir = 1 }, /obj/effect/blocker/toxic_water/Group_1, -/turf/open/gm/river/desert/shallow_edge{ - dir = 4 - }, +/turf/open/gm/river/desert/shallow_edge/east, /area/desert_dam/exterior/river/riverside_south) "cAk" = ( /obj/structure/platform{ dir = 1 }, /obj/effect/blocker/toxic_water/Group_1, -/turf/open/desert/desert_shore/desert_shore1{ - dir = 4 - }, +/turf/open/desert/desert_shore/desert_shore1/east, /area/desert_dam/exterior/river/riverside_south) "cAl" = ( /obj/effect/blocker/toxic_water/Group_1, -/turf/open/desert/desert_shore/shore_corner2{ - dir = 8 - }, +/turf/open/desert/desert_shore/shore_corner2/west, /area/desert_dam/exterior/river/riverside_south) "cAm" = ( /obj/structure/platform{ dir = 1 }, -/turf/open/desert/dirt{ - icon_state = "dirt2" - }, +/turf/open/desert/dirt/dirt2, /area/desert_dam/exterior/river/riverside_south) "cAn" = ( /obj/structure/surface/table, /obj/item/bodybag/cryobag, /obj/item/storage/box/syringes, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitered" - }, +/turf/open/floor/prison/whitered/west, /area/desert_dam/building/medical/primary_storage) "cAo" = ( /obj/structure/closet/secure_closet/medical3{ req_access_txt = "100" }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitered" - }, +/turf/open/floor/prison/whitered/east, /area/desert_dam/building/medical/primary_storage) "cAp" = ( /obj/structure/sink{ dir = 8; pixel_x = -11 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitered" - }, +/turf/open/floor/prison/whitered/west, /area/desert_dam/building/medical/surgery_room_one) "cAq" = ( /obj/structure/disposalpipe/segment, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/primary_tool_storage) "cAr" = ( /obj/item/tool/surgery/retractor, @@ -41033,27 +31375,18 @@ desc = "Someone has crossed out the Space from Space Cleaner and written in Surgery. 'Do not remove under punishment of death!!!' is scrawled on the back."; name = "Surgery Cleaner" }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitered" - }, +/turf/open/floor/prison/whitered/east, /area/desert_dam/building/medical/surgery_room_one) "cAs" = ( /obj/structure/sink{ dir = 8; pixel_x = -11 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitered" - }, +/turf/open/floor/prison/whitered/west, /area/desert_dam/building/medical/surgery_room_two) "cAt" = ( /obj/structure/machinery/optable, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/medical/surgery_room_two) "cAu" = ( /obj/item/tool/surgery/retractor, @@ -41064,10 +31397,7 @@ desc = "Someone has crossed out the Space from Space Cleaner and written in Surgery. 'Do not remove under punishment of death!!!' is scrawled on the back."; name = "Surgery Cleaner" }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitered" - }, +/turf/open/floor/prison/whitered/east, /area/desert_dam/building/medical/surgery_room_two) "cAv" = ( /obj/structure/machinery/power/apc{ @@ -41075,10 +31405,7 @@ pixel_x = -30; start_charge = 0 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/west, /area/desert_dam/building/substation/central) "cAx" = ( /obj/structure/machinery/power/terminal{ @@ -41096,33 +31423,22 @@ "cAC" = ( /obj/structure/closet, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/prison{ - dir = 5; - icon_state = "whitered" - }, +/turf/open/floor/prison/whitered/northeast, /area/desert_dam/building/medical/office2) "cAD" = ( /obj/structure/machinery/computer/med_data, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitered" - }, +/turf/open/floor/prison/whitered/north, /area/desert_dam/building/medical/office1) "cAE" = ( /obj/structure/closet/secure_closet/medical_doctor, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitered" - }, +/turf/open/floor/prison/whitered/north, /area/desert_dam/building/medical/office1) "cAF" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 1 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached1" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached1, /area/desert_dam/exterior/valley/valley_cargo) "cAG" = ( /turf/closed/wall, @@ -41139,32 +31455,20 @@ }, /obj/structure/surface/table/reinforced, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/east, /area/desert_dam/building/medical/emergency_room) "cAI" = ( /obj/structure/machinery/computer/med_data, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitered" - }, +/turf/open/floor/prison/whitered/north, /area/desert_dam/building/medical/office2) "cAJ" = ( /obj/structure/closet/secure_closet/medical_doctor, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitered" - }, +/turf/open/floor/prison/whitered/north, /area/desert_dam/building/medical/office2) "cAK" = ( /obj/structure/disposalpipe/segment, /obj/structure/surface/table/reinforced, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreencorner" - }, +/turf/open/floor/prison/whitegreencorner/north, /area/desert_dam/building/medical/emergency_room) "cAL" = ( /obj/structure/flora/grass/desert/lightgrass_8, @@ -41206,9 +31510,7 @@ /obj/structure/platform{ dir = 1 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached4" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached4, /area/desert_dam/exterior/valley/valley_cargo) "cAR" = ( /obj/structure/platform_decoration{ @@ -41217,9 +31519,7 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 1 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached4" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached4, /area/desert_dam/exterior/valley/valley_cargo) "cAT" = ( /obj/structure/desertdam/decals/road_edge{ @@ -41231,10 +31531,7 @@ /turf/open/asphalt, /area/desert_dam/interior/dam_interior/south_tunnel) "cAU" = ( -/turf/open/floor{ - dir = 8; - icon_state = "carpet7-3" - }, +/turf/open/floor/carpet7_3/west, /area/desert_dam/building/bar/bar) "cAV" = ( /obj/structure/desertdam/decals/road_edge{ @@ -41254,36 +31551,26 @@ dir = 4 }, /obj/effect/blocker/toxic_water/Group_1, -/turf/open/desert/desert_shore/shore_edge1{ - dir = 4 - }, +/turf/open/desert/desert_shore/shore_edge1/east, /area/desert_dam/exterior/river/riverside_south) "cAY" = ( /obj/structure/platform{ dir = 4 }, /obj/effect/blocker/toxic_water/Group_1, -/turf/open/gm/river/desert/shallow_edge{ - dir = 5 - }, +/turf/open/gm/river/desert/shallow_edge/northeast, /area/desert_dam/exterior/river/riverside_south) "cAZ" = ( -/turf/open/desert/dirt{ - icon_state = "dirt2" - }, +/turf/open/desert/dirt/dirt2, /area/desert_dam/exterior/river/riverside_south) "cBa" = ( /obj/structure/platform{ dir = 4 }, -/turf/open/desert/dirt{ - icon_state = "dirt2" - }, +/turf/open/desert/dirt/dirt2, /area/desert_dam/exterior/river/riverside_south) "cBb" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached17" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached17, /area/desert_dam/exterior/valley/valley_medical) "cBc" = ( /obj/structure/desertdam/decals/road_edge{ @@ -41302,53 +31589,36 @@ }, /obj/structure/machinery/light, /obj/structure/flora/pottedplant, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreencorner" - }, +/turf/open/floor/prison/whitegreencorner/west, /area/desert_dam/building/medical/lobby) "cBe" = ( /obj/effect/decal/medical_decals{ icon_state = "triagedecalbottom" }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/medical/lobby) "cBf" = ( /obj/effect/decal/medical_decals{ dir = 4; icon_state = "triagedecalbottomleft" }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/east, /area/desert_dam/building/medical/lobby) "cBg" = ( /obj/structure/machinery/light, -/turf/open/floor/prison{ - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen, /area/desert_dam/building/medical/lobby) "cBh" = ( /obj/effect/decal/medical_decals{ icon_state = "triagedecalbottom" }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreencorner" - }, +/turf/open/floor/prison/whitegreencorner/west, /area/desert_dam/building/medical/west_wing_hallway) "cBi" = ( /obj/effect/decal/medical_decals{ icon_state = "triagedecalbottom" }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/west, /area/desert_dam/building/medical/west_wing_hallway) "cBj" = ( /obj/effect/decal/medical_decals{ @@ -41356,19 +31626,13 @@ }, /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/east, /area/desert_dam/building/medical/west_wing_hallway) "cBk" = ( /obj/effect/decal/medical_decals{ icon_state = "triagedecalbottom" }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/east, /area/desert_dam/building/medical/west_wing_hallway) "cBl" = ( /obj/structure/surface/table, @@ -41377,10 +31641,7 @@ pixel_x = 5; pixel_y = 3 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitered" - }, +/turf/open/floor/prison/whitered/west, /area/desert_dam/building/medical/primary_storage) "cBm" = ( /obj/structure/machinery/power/apc{ @@ -41388,27 +31649,18 @@ pixel_x = -30; start_charge = 0 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitered" - }, +/turf/open/floor/prison/whitered/west, /area/desert_dam/building/medical/surgery_room_one) "cBo" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/desert_dam/interior/dam_interior/primary_tool_storage) "cBp" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk{ dir = 8 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitered" - }, +/turf/open/floor/prison/whitered/east, /area/desert_dam/building/medical/surgery_room_one) "cBq" = ( /obj/structure/machinery/power/apc{ @@ -41416,55 +31668,37 @@ pixel_x = -30; start_charge = 0 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitered" - }, +/turf/open/floor/prison/whitered/west, /area/desert_dam/building/medical/surgery_room_two) "cBr" = ( /obj/structure/closet/secure_closet/engineering_welding, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/east, /area/desert_dam/building/substation/west) "cBs" = ( /obj/structure/disposalpipe/segment{ dir = 4; icon_state = "pipe-c" }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/medical/surgery_room_two) "cBt" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk{ dir = 8 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitered" - }, +/turf/open/floor/prison/whitered/east, /area/desert_dam/building/medical/surgery_room_two) "cBu" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/technology_scanner, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/west, /area/desert_dam/building/substation/central) "cBx" = ( /turf/open/floor/prison, /area/desert_dam/building/substation/central) "cBy" = ( -/turf/open/floor/plating{ - dir = 8; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/west, /area/desert_dam/building/substation/central) "cBz" = ( /turf/open/floor/plating, @@ -41473,74 +31707,50 @@ /obj/structure/bed/chair/office/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/medical/office1) "cBC" = ( /obj/effect/landmark/survivor_spawner, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/medical/office1) "cBD" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitered" - }, +/turf/open/floor/prison/whitered/east, /area/desert_dam/building/medical/office1) "cBF" = ( /obj/structure/bed/chair/office/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/medical/office2) "cBG" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/medical/office2) "cBH" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitered" - }, +/turf/open/floor/prison/whitered/east, /area/desert_dam/building/medical/office2) "cBI" = ( /obj/effect/decal/sand_overlay/sand2{ dir = 10 }, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/desert_dam/interior/dam_interior/south_tunnel) "cBJ" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 1 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached18" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached18, /area/desert_dam/exterior/valley/valley_civilian) "cBL" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 1 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached13" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached13, /area/desert_dam/exterior/valley/valley_civilian) "cBN" = ( /obj/effect/decal/cleanable/dirt, @@ -41565,16 +31775,12 @@ /turf/open/asphalt, /area/desert_dam/exterior/valley/valley_civilian) "cBS" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached12" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached12, /area/desert_dam/exterior/landing_pad_two) "cBT" = ( /obj/structure/machinery/light, /obj/effect/decal/sand_overlay/sand2, -/turf/open/asphalt/cement{ - icon_state = "cement2" - }, +/turf/open/asphalt/cement/cement2, /area/desert_dam/interior/dam_interior/east_tunnel_entrance) "cBU" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ @@ -41586,9 +31792,7 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 10 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached14" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached14, /area/desert_dam/exterior/valley/valley_cargo) "cBW" = ( /obj/structure/flora/bush/desert/cactus{ @@ -41599,10 +31803,7 @@ "cBX" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 8; - icon_state = "carpet15-15" - }, +/turf/open/floor/carpet15_15/west, /area/desert_dam/building/bar/bar) "cBY" = ( /obj/structure/flora/grass/desert/lightgrass_5, @@ -41617,10 +31818,7 @@ /area/desert_dam/exterior/valley/south_valley_dam) "cCa" = ( /obj/structure/prop/dam/boulder/boulder3, -/turf/open/desert/dirt{ - dir = 8; - icon_state = "desert_transition_corner1" - }, +/turf/open/desert/dirt/desert_transition_corner1/west, /area/desert_dam/exterior/valley/bar_valley_dam) "cCb" = ( /obj/structure/platform{ @@ -41652,15 +31850,10 @@ "cCh" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/interior/dam_interior/workshop) "cCi" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/medical/emergency_room) "cCj" = ( /obj/structure/window/framed/colony/reinforced, @@ -41670,114 +31863,70 @@ /obj/structure/machinery/door/airlock/multi_tile/almayer/medidoor/colony{ name = "\improper Emergency Room" }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/west, /area/desert_dam/building/medical/emergency_room) "cCl" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/east, /area/desert_dam/building/medical/emergency_room) "cCm" = ( /obj/item/device/defibrillator, /obj/structure/surface/table, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitered" - }, +/turf/open/floor/prison/whitered/southwest, /area/desert_dam/building/medical/primary_storage) "cCn" = ( /obj/structure/machinery/iv_drip, -/turf/open/floor/prison{ - icon_state = "whitered" - }, +/turf/open/floor/prison/whitered, /area/desert_dam/building/medical/primary_storage) "cCo" = ( /obj/structure/closet/secure_closet/medical3{ req_access_txt = "100" }, -/turf/open/floor/prison{ - dir = 6; - icon_state = "whitered" - }, +/turf/open/floor/prison/whitered/southeast, /area/desert_dam/building/medical/primary_storage) "cCp" = ( /obj/structure/machinery/medical_pod/bodyscanner, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitered" - }, +/turf/open/floor/prison/whitered/southwest, /area/desert_dam/building/medical/surgery_room_one) "cCq" = ( /obj/structure/machinery/body_scanconsole, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whiteredcorner" - }, +/turf/open/floor/prison/whiteredcorner/west, /area/desert_dam/building/medical/surgery_room_one) "cCr" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/medical/surgery_room_one) "cCs" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitered" - }, +/turf/open/floor/prison/whitered/east, /area/desert_dam/building/medical/surgery_room_one) "cCt" = ( /obj/structure/machinery/medical_pod/bodyscanner, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitered" - }, +/turf/open/floor/prison/whitered/southwest, /area/desert_dam/building/medical/surgery_room_two) "cCu" = ( /obj/structure/machinery/body_scanconsole, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whiteredcorner" - }, +/turf/open/floor/prison/whiteredcorner/west, /area/desert_dam/building/medical/surgery_room_two) "cCv" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/medical/surgery_room_two) "cCw" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitered" - }, +/turf/open/floor/prison/whitered/east, /area/desert_dam/building/medical/surgery_room_two) "cCx" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/tech_supply, /obj/effect/spawner/random/tech_supply, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/west, /area/desert_dam/building/substation/central) "cCy" = ( /obj/structure/surface/rack, /obj/item/stack/sheet/mineral/phoron{ amount = 50 }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/west, /area/desert_dam/building/substation/central) "cCz" = ( /obj/structure/surface/rack, @@ -41787,10 +31936,7 @@ /turf/open/floor/plating, /area/desert_dam/building/substation/central) "cCA" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/medical/office1) "cCC" = ( /obj/structure/bed, @@ -41799,10 +31945,7 @@ pixel_x = 28; start_charge = 0 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitered" - }, +/turf/open/floor/prison/whitered/east, /area/desert_dam/building/medical/office1) "cCE" = ( /obj/structure/bed, @@ -41811,19 +31954,14 @@ pixel_x = 28; start_charge = 0 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitered" - }, +/turf/open/floor/prison/whitered/east, /area/desert_dam/building/medical/office2) "cCF" = ( /turf/closed/wall/r_wall, /area/desert_dam/building/medical/east_wing_hallway) "cCG" = ( /obj/effect/decal/sand_overlay/sand2, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/desert_dam/interior/dam_interior/east_tunnel_entrance) "cCH" = ( /obj/structure/desertdam/decals/road_edge{ @@ -41845,102 +31983,73 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 6 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached15" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached15, /area/desert_dam/exterior/valley/valley_telecoms) "cCL" = ( /obj/structure/machinery/colony_floodlight, -/turf/open/desert/dirt{ - icon_state = "desert_transition_corner1" - }, +/turf/open/desert/dirt/desert_transition_corner1, /area/desert_dam/exterior/valley/valley_cargo) "cCM" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 10 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached12" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached12, /area/desert_dam/exterior/valley/valley_telecoms) "cCO" = ( /obj/structure/stairs{ dir = 4 }, /obj/structure/platform, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached12" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached12, /area/desert_dam/exterior/valley/valley_cargo) "cCP" = ( -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/dam_interior/CE_office) "cCQ" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/emails, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/dam_interior/CE_office) "cCR" = ( /obj/effect/blocker/toxic_water/Group_2, /obj/structure/barricade/wooden{ dir = 8 }, -/turf/open/gm/river/desert/shallow_edge/covered{ - dir = 4 - }, +/turf/open/gm/river/desert/shallow_edge/covered/east, /area/desert_dam/exterior/river/riverside_central_north) "cCS" = ( /obj/effect/blocker/toxic_water/Group_2, /obj/effect/blocker/toxic_water/Group_2, /obj/structure/barricade/wooden, -/turf/open/gm/river/desert/shallow_edge/covered{ - dir = 4 - }, +/turf/open/gm/river/desert/shallow_edge/covered/east, /area/desert_dam/exterior/river/riverside_central_north) "cCT" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/desert_dam/interior/dam_interior/central_tunnel) "cCU" = ( /obj/structure/platform_decoration{ dir = 1 }, /obj/effect/decal/sand_overlay/sand1, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached12" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached12, /area/desert_dam/exterior/valley/valley_cargo) "cCW" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/tech_supply, -/turf/open/floor/prison{ - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2, /area/desert_dam/building/mining/workshop_foyer) -"cCY" = ( -/turf/open/desert/dirt, -/area/desert_dam/exterior/rock) "cCZ" = ( /obj/structure/machinery/landinglight/ds2/delaytwo{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached9" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached9, /area/desert_dam/exterior/landing_pad_two) "cDb" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 1 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached4" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached4, /area/desert_dam/exterior/landing_pad_two) "cDc" = ( /obj/structure/flora/grass/desert/heavygrass_4, @@ -41957,10 +32066,7 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/plating{ - dir = 4; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/east, /area/desert_dam/building/medical/garage) "cDf" = ( /turf/open/floor/plating, @@ -41969,15 +32075,10 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/west, /area/desert_dam/building/medical/garage) "cDh" = ( -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/desert_dam/building/medical/garage) "cDi" = ( /obj/structure/pipes/portables_connector{ @@ -41987,10 +32088,7 @@ /obj/structure/pipes/standard/cap/hidden{ dir = 4 }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/northwest, /area/desert_dam/building/medical/emergency_room) "cDj" = ( /obj/structure/machinery/light{ @@ -41999,16 +32097,11 @@ /obj/structure/pipes/standard/simple/hidden{ dir = 10 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreencorner" - }, +/turf/open/floor/prison/whitegreencorner/east, /area/desert_dam/building/medical/emergency_room) "cDk" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/dam_interior/CE_office) "cDl" = ( /obj/structure/machinery/cryo_cell, @@ -42016,19 +32109,13 @@ icon_state = "cryotop" }, /obj/structure/pipes/standard/cap/hidden, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/north, /area/desert_dam/building/medical/emergency_room) "cDm" = ( /obj/structure/pipes/unary/freezer{ icon_state = "freezer_1" }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/north, /area/desert_dam/building/medical/emergency_room) "cDn" = ( /obj/effect/decal/medical_decals{ @@ -42036,10 +32123,7 @@ }, /obj/structure/machinery/cryo_cell, /obj/structure/pipes/standard/cap/hidden, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/north, /area/desert_dam/building/medical/emergency_room) "cDo" = ( /obj/structure/surface/table/almayer, @@ -42048,30 +32132,18 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/north, /area/desert_dam/building/medical/emergency_room) "cDp" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreencorner" - }, +/turf/open/floor/prison/whitegreencorner/east, /area/desert_dam/building/medical/emergency_room) "cDq" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/west, /area/desert_dam/building/medical/emergency_room) "cDr" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/east, /area/desert_dam/building/medical/emergency_room) "cDs" = ( /obj/structure/window/framed/colony, @@ -42083,10 +32155,7 @@ dir = 1; name = "\improper Operating Theatre 1" }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/medical/surgery_room_one) "cDu" = ( /obj/structure/window/framed/colony, @@ -42098,10 +32167,7 @@ dir = 1; name = "\improper Operating Theatre 2" }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/medical/surgery_room_two) "cDy" = ( /obj/structure/window/framed/colony, @@ -42112,10 +32178,7 @@ dir = 1; name = "\improper Examination Room" }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/medical/office1) "cDA" = ( /obj/structure/window/framed/colony, @@ -42126,62 +32189,41 @@ dir = 1; name = "\improper Examination Room" }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/medical/office2) "cDC" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/desert_dam/building/medical/east_wing_hallway) "cDD" = ( /obj/structure/machinery/vending/coffee, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/desert_dam/building/medical/east_wing_hallway) "cDE" = ( /obj/structure/machinery/vending/snack, /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/desert_dam/building/medical/east_wing_hallway) "cDF" = ( /obj/structure/machinery/vending/cola, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/desert_dam/building/medical/east_wing_hallway) "cDK" = ( /obj/structure/machinery/landinglight/ds2, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached14" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached14, /area/desert_dam/exterior/landing_pad_two) "cDL" = ( /obj/structure/machinery/landinglight/ds2/delayone{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached15" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached15, /area/desert_dam/exterior/landing_pad_two) "cDM" = ( /obj/structure/machinery/landinglight/ds2/delaythree, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached12" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached12, /area/desert_dam/exterior/landing_pad_two) "cDN" = ( /turf/open/desert/rock/deep/transition, @@ -42191,55 +32233,41 @@ dir = 8 }, /obj/effect/blocker/toxic_water/Group_2, -/turf/open/desert/desert_shore/desert_shore1{ - dir = 1 - }, +/turf/open/desert/desert_shore/desert_shore1/north, /area/desert_dam/exterior/river/riverside_east) "cDQ" = ( /obj/structure/platform{ dir = 1 }, /obj/effect/blocker/toxic_water/Group_2, -/turf/open/desert/desert_shore/shore_corner2{ - dir = 1 - }, +/turf/open/desert/desert_shore/shore_corner2/north, /area/desert_dam/exterior/river/riverside_east) "cDR" = ( /obj/structure/platform_decoration{ dir = 4 }, /obj/effect/blocker/toxic_water/Group_2, -/turf/open/gm/river/desert/shallow_edge{ - dir = 9 - }, +/turf/open/gm/river/desert/shallow_edge/northwest, /area/desert_dam/exterior/river/riverside_east) "cDT" = ( /obj/structure/surface/table/almayer, /obj/item/storage/fancy/cigarettes/kpack, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/dam_interior/CE_office) "cDU" = ( /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/dam_interior/CE_office) "cDV" = ( /obj/structure/machinery/landinglight/ds2/delaytwo, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached15" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached15, /area/desert_dam/exterior/landing_pad_two) "cDX" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached1" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached1, /area/desert_dam/exterior/landing_pad_two) "cDY" = ( /turf/open/floor/plating, @@ -42257,23 +32285,15 @@ /obj/structure/bed/chair/wood/normal{ dir = 8 }, -/turf/open/floor{ - dir = 8; - icon_state = "carpet15-15" - }, +/turf/open/floor/carpet15_15/west, /area/desert_dam/building/bar/bar) "cEc" = ( /obj/structure/machinery/landinglight/ds1, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached4" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached4, /area/desert_dam/exterior/landing_pad_one) "cEd" = ( /obj/structure/prop/dam/wide_boulder/boulder1, -/turf/open/desert/dirt{ - dir = 9; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/northwest, /area/desert_dam/exterior/valley/bar_valley_dam) "cEe" = ( /obj/effect/blocker/toxic_water/Group_2, @@ -42284,24 +32304,16 @@ /turf/open/floor/plating, /area/desert_dam/building/medical/garage) "cEg" = ( -/turf/open/floor/plating{ - dir = 4; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/east, /area/desert_dam/building/medical/garage) "cEh" = ( -/turf/open/floor/plating{ - dir = 8; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/west, /area/desert_dam/building/medical/garage) "cEi" = ( /obj/effect/decal/medical_decals{ icon_state = "triagedecalbottom" }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/desert_dam/building/medical/garage) "cEj" = ( /obj/structure/pipes/portables_connector{ @@ -42311,17 +32323,11 @@ /obj/structure/pipes/standard/cap/hidden{ dir = 4 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/west, /area/desert_dam/building/medical/emergency_room) "cEk" = ( /obj/structure/pipes/standard/manifold/hidden, -/turf/open/floor/prison{ - dir = 9; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/northwest, /area/desert_dam/building/medical/emergency_room) "cEl" = ( /obj/effect/decal/sand_overlay/sand2{ @@ -42331,26 +32337,18 @@ /turf/open/asphalt/cement, /area/desert_dam/interior/dam_interior/western_dam_cave) "cEn" = ( -/turf/open/asphalt/cement{ - icon_state = "cement14" - }, +/turf/open/asphalt/cement/cement14, /area/desert_dam/interior/dam_interior/east_tunnel_entrance) "cEo" = ( /obj/effect/decal/medical_decals{ icon_state = "cryomid" }, /obj/structure/pipes/standard/manifold/hidden, -/turf/open/floor/prison{ - dir = 5; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/northeast, /area/desert_dam/building/medical/emergency_room) "cEp" = ( /obj/structure/pipes/standard/manifold/hidden, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/north, /area/desert_dam/building/medical/emergency_room) "cEq" = ( /obj/effect/decal/medical_decals{ @@ -42359,16 +32357,10 @@ /obj/structure/pipes/standard/simple/hidden{ dir = 9 }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/northwest, /area/desert_dam/building/medical/emergency_room) "cEr" = ( -/turf/open/floor/prison{ - dir = 9; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/northwest, /area/desert_dam/building/medical/emergency_room) "cEs" = ( /obj/effect/decal/cleanable/dirt, @@ -42385,29 +32377,18 @@ dir = 1; icon_state = "pipe-c" }, -/turf/open/floor/prison{ - dir = 5; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/northeast, /area/desert_dam/building/medical/emergency_room) "cEv" = ( -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/desert_dam/interior/dam_interior/east_tunnel_entrance) "cEy" = ( /obj/structure/machinery/cm_vending/sorted/medical/no_access, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/desert_dam/building/medical/treatment_room) "cEz" = ( /obj/structure/machinery/cm_vending/sorted/medical/blood, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/desert_dam/building/medical/treatment_room) "cEA" = ( /obj/structure/machinery/iv_drip, @@ -42416,44 +32397,26 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/northwest, /area/desert_dam/building/medical/treatment_room) "cEB" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/north, /area/desert_dam/building/medical/treatment_room) "cEC" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreencorner" - }, +/turf/open/floor/prison/whitegreencorner/east, /area/desert_dam/building/medical/treatment_room) "cED" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/medical/treatment_room) "cEE" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreencorner" - }, +/turf/open/floor/prison/whitegreencorner/north, /area/desert_dam/building/medical/treatment_room) "cEF" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/north, /area/desert_dam/building/medical/treatment_room) "cEG" = ( /obj/structure/window/framed/colony, @@ -42464,10 +32427,7 @@ dir = 4; icon_state = "triagedecalbottomleft" }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreencorner" - }, +/turf/open/floor/prison/whitegreencorner/east, /area/desert_dam/building/medical/east_wing_hallway) "cEI" = ( /obj/structure/machinery/power/apc{ @@ -42475,52 +32435,31 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/north, /area/desert_dam/building/medical/east_wing_hallway) "cEJ" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreencorner" - }, +/turf/open/floor/prison/whitegreencorner/east, /area/desert_dam/building/medical/east_wing_hallway) "cEM" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/north, /area/desert_dam/building/medical/east_wing_hallway) "cEN" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/north, /area/desert_dam/building/medical/east_wing_hallway) "cEO" = ( -/turf/open/floor/prison{ - dir = 5; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/northeast, /area/desert_dam/building/medical/east_wing_hallway) "cEP" = ( /obj/structure/machinery/light, /obj/effect/decal/sand_overlay/sand2, -/turf/open/asphalt/cement{ - icon_state = "cement9" - }, +/turf/open/asphalt/cement/cement9, /area/desert_dam/interior/dam_interior/east_tunnel_entrance) "cEQ" = ( -/turf/open/asphalt/cement{ - icon_state = "cement9" - }, +/turf/open/asphalt/cement/cement9, /area/desert_dam/interior/dam_interior/south_tunnel) "cES" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached13" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached13, /area/desert_dam/exterior/landing_pad_two) "cET" = ( /obj/effect/decal/warning_stripes{ @@ -42540,14 +32479,10 @@ /area/desert_dam/exterior/valley/valley_civilian) "cEW" = ( /obj/effect/blocker/toxic_water/Group_2, -/turf/open/gm/river/desert/shallow_corner{ - dir = 1 - }, +/turf/open/gm/river/desert/shallow_corner/north, /area/desert_dam/exterior/river/riverside_east) "cEX" = ( -/turf/open/asphalt/cement{ - icon_state = "cement2" - }, +/turf/open/asphalt/cement/cement2, /area/desert_dam/interior/dam_interior/south_tunnel) "cEY" = ( /obj/structure/desertdam/decals/road_edge{ @@ -42561,9 +32496,7 @@ /obj/structure/machinery/landinglight/ds2/delayone{ dir = 4 }, -/turf/open/floor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/asteroidplating, /area/desert_dam/exterior/landing_pad_two) "cFa" = ( /obj/docking_port/stationary/marine_dropship/lz2, @@ -42573,34 +32506,26 @@ /obj/structure/machinery/landinglight/ds2{ dir = 8 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached2" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached2, /area/desert_dam/exterior/landing_pad_two) "cFc" = ( /obj/structure/machinery/landinglight/ds2/delayone{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached1" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached1, /area/desert_dam/exterior/landing_pad_two) "cFd" = ( /obj/structure/stairs, /obj/structure/platform{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached1" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached1, /area/desert_dam/exterior/valley/valley_telecoms) "cFe" = ( /obj/structure/machinery/landinglight/ds2/delaythree{ dir = 8 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached3" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached3, /area/desert_dam/exterior/landing_pad_two) "cFf" = ( /obj/structure/platform{ @@ -42613,9 +32538,7 @@ /obj/effect/decal/medical_decals{ icon_state = "docdecal1" }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/desert_dam/building/medical/garage) "cFh" = ( /obj/effect/decal/medical_decals{ @@ -42626,9 +32549,7 @@ pixel_x = 28; start_charge = 0 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/desert_dam/building/medical/garage) "cFi" = ( /obj/structure/pipes/standard/manifold/hidden/green{ @@ -42640,23 +32561,15 @@ /turf/open/asphalt/cement, /area/desert_dam/interior/dam_interior/workshop) "cFj" = ( -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/desert_dam/interior/dam_interior/south_tunnel) "cFk" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/west, /area/desert_dam/interior/dam_interior/CE_office) "cFl" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/prison{ - dir = 5; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/northeast, /area/desert_dam/building/medical/emergency_room) "cFm" = ( /obj/structure/barricade/wooden, @@ -42667,18 +32580,12 @@ /turf/open/floor/plating, /area/desert_dam/building/medical/emergency_room) "cFp" = ( -/turf/open/floor/prison{ - dir = 9; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/northwest, /area/desert_dam/building/medical/treatment_room) "cFq" = ( /obj/structure/pipes/vents/pump, /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/north, /area/desert_dam/building/medical/treatment_room) "cFr" = ( /obj/structure/bed/chair/office/dark{ @@ -42686,9 +32593,7 @@ layer = 3.25 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/dam_interior/CE_office) "cFs" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ @@ -42697,16 +32602,11 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 8 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached1" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached1, /area/desert_dam/exterior/valley/bar_valley_dam) "cFt" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 8; - icon_state = "carpet11-12" - }, +/turf/open/floor/carpet11_12/west, /area/desert_dam/building/bar/bar) "cFu" = ( /obj/structure/bed/chair{ @@ -42716,9 +32616,7 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/dam_interior/CE_office) "cFv" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -42729,9 +32627,7 @@ icon_state = "pipe-c" }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/desert_dam/interior/dam_interior/CE_office) "cFw" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony{ @@ -42744,10 +32640,7 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/CE_office) "cFx" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -42757,10 +32650,7 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/primary_tool_storage) "cFy" = ( /obj/structure/disposalpipe/segment{ @@ -42771,10 +32661,7 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/primary_tool_storage) "cFA" = ( /obj/structure/disposalpipe/segment{ @@ -42782,10 +32669,7 @@ icon_state = "pipe-c" }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/primary_tool_storage) "cFC" = ( /obj/structure/disposalpipe/segment{ @@ -42809,9 +32693,7 @@ /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 8 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached4" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached4, /area/desert_dam/exterior/valley/valley_civilian) "cFF" = ( /obj/structure/surface/table/woodentable, @@ -42843,9 +32725,7 @@ /obj/structure/machinery/landinglight/ds2/delaytwo{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached1" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached1, /area/desert_dam/exterior/landing_pad_two) "cFJ" = ( /obj/structure/desertdam/decals/road_edge{ @@ -42893,37 +32773,26 @@ /obj/structure/machinery/landinglight/ds2/delaytwo{ dir = 8 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached3" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached3, /area/desert_dam/exterior/landing_pad_two) "cFR" = ( /obj/structure/cargo_container/grant/right, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrowncorners2" - }, +/turf/open/floor/prison/darkbrowncorners2/north, /area/desert_dam/building/warehouse/warehouse) "cFS" = ( /obj/structure/machinery/landinglight/ds2/delaythree{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached1" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached1, /area/desert_dam/exterior/landing_pad_two) "cFT" = ( /obj/effect/decal/medical_decals{ icon_state = "docdecal2" }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/desert_dam/building/medical/garage) "cFV" = ( -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/desert_dam/building/medical/emergency_room) "cFY" = ( /obj/structure/disposalpipe/segment{ @@ -42931,42 +32800,30 @@ icon_state = "pipe-c" }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/primary_tool_storage) "cFZ" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/door/airlock/multi_tile/almayer/engidoor/glass/colony{ dir = 2 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/primary_tool_storage) "cGa" = ( /obj/structure/machinery/landinglight/ds2/delayone{ dir = 8 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached3" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached3, /area/desert_dam/exterior/landing_pad_two) "cGb" = ( /obj/effect/decal/sand_overlay/sand1/corner1, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached1" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached1, /area/desert_dam/exterior/valley/valley_cargo) "cGc" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 1 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached4" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached4, /area/desert_dam/exterior/valley/valley_cargo) "cGe" = ( /obj/effect/decal/medical_decals{ @@ -42979,10 +32836,7 @@ dir = 1; icon_state = "pipe-c" }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/north, /area/desert_dam/building/medical/emergency_room) "cGf" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -42991,10 +32845,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/north, /area/desert_dam/building/medical/emergency_room) "cGg" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -43003,23 +32854,15 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/north, /area/desert_dam/building/medical/treatment_room) "cGh" = ( /obj/structure/flora/grass/desert/lightgrass_4, -/turf/open/desert/dirt{ - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1, /area/desert_dam/exterior/valley/valley_cargo) "cGi" = ( /obj/structure/flora/grass/desert/lightgrass_5, -/turf/open/desert/dirt{ - dir = 10; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/southwest, /area/desert_dam/exterior/valley/valley_cargo) "cGj" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -43078,34 +32921,23 @@ dir = 8; icon_state = "pipe-j2" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/desert_dam/building/medical/east_wing_hallway) "cGq" = ( /obj/structure/pipes/standard/manifold/hidden/green, /obj/structure/disposalpipe/junction{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/desert_dam/building/medical/east_wing_hallway) "cGr" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/desert_dam/interior/dam_interior/central_tunnel) "cGs" = ( /obj/structure/disposalpipe/junction, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/primary_tool_storage) "cGt" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -43114,30 +32946,21 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen, /area/desert_dam/building/medical/east_wing_hallway) "cGu" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached3" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached3, /area/desert_dam/exterior/landing_pad_two) "cGv" = ( /obj/structure/flora/bush/desert, -/turf/open/desert/dirt{ - dir = 6; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/southeast, /area/desert_dam/exterior/valley/valley_cargo) "cGw" = ( /obj/structure/prop/dam/gravestone, -/turf/open/desert/dirt{ - icon_state = "rock1" - }, +/turf/open/desert/dirt/rock1, /area/desert_dam/exterior/valley/valley_hydro) "cGx" = ( /obj/effect/decal/sand_overlay/sand1/corner1, @@ -43147,59 +32970,42 @@ /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/desert_dam/interior/dam_interior/workshop) "cGz" = ( /obj/effect/decal/sand_overlay/sand2/corner2{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/interior/dam_interior/workshop) "cGA" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2, /area/desert_dam/interior/dam_interior/CE_office) "cGB" = ( -/turf/open/floor/prison{ - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen, /area/desert_dam/building/medical/east_wing_hallway) "cGC" = ( -/turf/open/floor/prison{ - dir = 6; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/southeast, /area/desert_dam/building/medical/east_wing_hallway) "cGD" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 10 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached14" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached14, /area/desert_dam/exterior/valley/valley_civilian) "cGF" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached12" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached12, /area/desert_dam/exterior/valley/valley_cargo) "cGG" = ( /obj/structure/machinery/landinglight/ds2{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached1" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached1, /area/desert_dam/exterior/landing_pad_two) "cGH" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ @@ -43212,17 +33018,13 @@ dir = 1 }, /obj/effect/decal/sand_overlay/sand1/corner1, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_cargo) "cGJ" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 8 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached9" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached9, /area/desert_dam/exterior/valley/valley_civilian) "cGK" = ( /obj/structure/prop/dam/boulder/boulder1, @@ -43236,9 +33038,7 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 6 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_cargo) "cGN" = ( /obj/structure/machinery/door_control{ @@ -43250,37 +33050,25 @@ }, /area/desert_dam/building/warehouse/warehouse) "cGO" = ( -/turf/open/desert/dirt{ - dir = 1; - icon_state = "desert_transition_corner1" - }, +/turf/open/desert/dirt/desert_transition_corner1/north, /area/desert_dam/exterior/valley/valley_hydro) "cGP" = ( /obj/structure/machinery/light, -/turf/open/floor/prison{ - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2, /area/desert_dam/building/security/armory) "cGQ" = ( /obj/structure/machinery/landinglight/ds2{ dir = 8 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached3" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached3, /area/desert_dam/exterior/landing_pad_two) "cGR" = ( /obj/structure/prop/dam/boulder/boulder3, -/turf/open/desert/dirt{ - dir = 5; - icon_state = "desert_transition_edge1" - }, -/area/desert_dam/exterior/valley/valley_cargo) +/turf/open/desert/dirt/desert_transition_edge1/northeast, +/area/desert_dam/exterior/landing_pad_two) "cGS" = ( /obj/structure/machinery/landinglight/ds2/delaytwo, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached12" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached12, /area/desert_dam/exterior/landing_pad_two) "cGT" = ( /obj/structure/platform{ @@ -43293,162 +33081,106 @@ /obj/effect/decal/medical_decals{ icon_state = "docdecal3" }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/desert_dam/building/medical/garage) "cGV" = ( /obj/effect/decal/medical_decals{ icon_state = "docstriping" }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/desert_dam/building/medical/garage) "cGW" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/medidoor/colony{ dir = 1; name = "\improper Emergency Room" }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/desert_dam/building/medical/emergency_room) "cGX" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/southwest, /area/desert_dam/building/medical/emergency_room) "cGY" = ( -/turf/open/floor/prison{ - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen, /area/desert_dam/building/medical/emergency_room) "cGZ" = ( -/turf/open/floor/prison{ - dir = 6; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/southeast, /area/desert_dam/building/medical/emergency_room) "cHa" = ( /obj/effect/decal/medical_decals{ icon_state = "docdecal2" }, -/turf/open/floor/prison{ - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen, /area/desert_dam/building/medical/emergency_room) "cHb" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/medidoor/colony{ dir = 2; name = "\improper Surgery" }, -/turf/open/floor/prison{ - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen, /area/desert_dam/building/medical/emergency_room) "cHc" = ( -/turf/open/floor/prison{ - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen, /area/desert_dam/building/medical/treatment_room) "cHd" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/southwest, /area/desert_dam/building/medical/treatment_room) "cHe" = ( /obj/item/reagent_container/hypospray, -/turf/open/floor/prison{ - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen, /area/desert_dam/building/medical/treatment_room) "cHf" = ( -/turf/open/floor/prison{ - dir = 6; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/southeast, /area/desert_dam/building/medical/treatment_room) "cHg" = ( -/turf/open/floor/prison{ - icon_state = "whitegreencorner" - }, +/turf/open/floor/prison/whitegreencorner, /area/desert_dam/building/medical/treatment_room) "cHh" = ( /obj/effect/decal/medical_decals{ icon_state = "triagedecalleft" }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreencorner" - }, +/turf/open/floor/prison/whitegreencorner/west, /area/desert_dam/building/medical/east_wing_hallway) "cHi" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/medical/east_wing_hallway) "cHj" = ( /obj/structure/machinery/light, -/turf/open/floor/prison{ - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen, /area/desert_dam/building/medical/east_wing_hallway) "cHk" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreencorner" - }, +/turf/open/floor/prison/whitegreencorner/west, /area/desert_dam/building/medical/east_wing_hallway) "cHl" = ( /obj/structure/flora/grass/desert/heavygrass_3, -/turf/open/desert/dirt{ - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1, /area/desert_dam/exterior/valley/valley_cargo) "cHn" = ( /obj/structure/machinery/landinglight/ds2/delaytwo{ dir = 8 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached14" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached14, /area/desert_dam/exterior/landing_pad_two) "cHo" = ( -/turf/open/floor/prison{ - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe, /area/desert_dam/building/warehouse/warehouse) "cHp" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe, /area/desert_dam/building/warehouse/warehouse) "cHr" = ( -/turf/open/floor/prison{ - dir = 6; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/southeast, /area/desert_dam/building/security/armory) "cHs" = ( /obj/structure/cargo_container/hd/left, -/turf/open/floor/prison{ - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe, /area/desert_dam/building/warehouse/warehouse) "cHt" = ( /obj/structure/cargo_container/hd/mid, -/turf/open/floor/prison{ - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe, /area/desert_dam/building/warehouse/warehouse) "cHu" = ( /obj/structure/platform_decoration{ @@ -43457,9 +33189,7 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached3" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached3, /area/desert_dam/exterior/valley/valley_cargo) "cHv" = ( /obj/structure/platform_decoration{ @@ -43468,38 +33198,26 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 8 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached1" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached1, /area/desert_dam/exterior/valley/valley_cargo) "cHx" = ( -/turf/open/floor/plating{ - dir = 1; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/north, /area/desert_dam/building/medical/garage) "cHy" = ( /obj/effect/decal/medical_decals{ icon_state = "docdecal4" }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/desert_dam/building/medical/garage) "cHz" = ( /obj/structure/surface/table/reinforced, /obj/item/device/defibrillator, /obj/item/device/defibrillator, /obj/item/device/defibrillator, -/turf/open/floor/prison{ - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen, /area/desert_dam/building/medical/emergency_room) "cHA" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreencorner" - }, +/turf/open/floor/prison/whitegreencorner/west, /area/desert_dam/building/medical/emergency_room) "cHB" = ( /obj/effect/decal/warning_stripes{ @@ -43544,27 +33262,17 @@ /obj/effect/decal/medical_decals{ icon_state = "triagedecaltopright" }, -/turf/open/floor/prison{ - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen, /area/desert_dam/building/medical/emergency_room) "cHI" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreencorner" - }, +/turf/open/floor/prison/whitegreencorner/west, /area/desert_dam/building/medical/treatment_room) "cHJ" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/medical/treatment_room) "cHK" = ( /obj/structure/machinery/light, -/turf/open/floor/prison{ - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen, /area/desert_dam/building/medical/treatment_room) "cHL" = ( /turf/closed/wall, @@ -43586,54 +33294,37 @@ /area/desert_dam/building/medical/virology_wing) "cHP" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/medidoor/colony, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/west, /area/desert_dam/building/medical/virology_wing) "cHQ" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/east, /area/desert_dam/building/medical/virology_wing) "cHR" = ( /obj/structure/machinery/door/airlock/almayer/medical/glass/colony{ dir = 1; name = "\improper Patient Room 1" }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/medical/east_wing_hallway) "cHS" = ( /obj/structure/machinery/door/airlock/almayer/medical/glass/colony{ dir = 1; name = "\improper Patient Room 2" }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/medical/east_wing_hallway) "cHT" = ( /obj/structure/cargo_container/hd/right, -/turf/open/floor/prison{ - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe, /area/desert_dam/building/warehouse/warehouse) "cHU" = ( /obj/structure/machinery/door/airlock/almayer/medical/glass/colony{ dir = 1; name = "\improper Patient Room 3" }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/medical/east_wing_hallway) "cHV" = ( /obj/structure/flora/grass/tallgrass/desert/corner, @@ -43653,9 +33344,7 @@ /area/desert_dam/exterior/valley/valley_telecoms) "cIa" = ( /obj/effect/blocker/toxic_water/Group_2, -/turf/open/gm/river/desert/shallow_edge/covered{ - dir = 1 - }, +/turf/open/gm/river/desert/shallow_edge/covered/north, /area/desert_dam/exterior/river/riverside_east) "cIc" = ( /obj/structure/flora/grass/tallgrass/desert/corner{ @@ -43676,9 +33365,7 @@ /turf/open/desert/dirt, /area/desert_dam/exterior/valley/valley_telecoms) "cIh" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached19" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached19, /area/desert_dam/exterior/valley/valley_cargo) "cIi" = ( /obj/structure/desertdam/decals/road_edge{ @@ -43688,17 +33375,13 @@ /area/desert_dam/exterior/valley/valley_cargo) "cIk" = ( /obj/effect/decal/sand_overlay/sand1/corner1, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached4" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached4, /area/desert_dam/exterior/valley/valley_hydro) "cIl" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe, /area/desert_dam/building/warehouse/warehouse) "cIo" = ( /obj/structure/machinery/door_control{ @@ -43710,38 +33393,26 @@ }, /area/desert_dam/building/warehouse/warehouse) "cIp" = ( -/turf/open/floor/prison{ - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe, /area/desert_dam/building/warehouse/loading) "cIq" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/warehouse/loading) "cIr" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/warehouse/loading) "cIt" = ( /obj/structure/surface/table, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/prison{ - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe, /area/desert_dam/building/warehouse/loading) "cIu" = ( /obj/structure/surface/table, /obj/item/clothing/head/welding, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/prison{ - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe, /area/desert_dam/building/warehouse/loading) "cIv" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ @@ -43751,17 +33422,13 @@ /area/desert_dam/exterior/valley/valley_cargo) "cIx" = ( /obj/structure/largecrate, -/turf/open/floor/prison{ - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe, /area/desert_dam/building/warehouse/loading) "cIy" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe, /area/desert_dam/building/warehouse/loading) "cIz" = ( /obj/structure/surface/table/reinforced, @@ -43791,35 +33458,24 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/desert_dam/building/medical/garage) "cID" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/recharger, /obj/item/reagent_container/spray/cleaner, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/desert_dam/building/medical/emergency_room) "cIE" = ( /obj/structure/machinery/light, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/southwest, /area/desert_dam/building/medical/emergency_room) "cIF" = ( /obj/structure/machinery/door/airlock/almayer/medical/glass/colony{ dir = 1; name = "\improper Medical Office" }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/medical/treatment_room) "cIG" = ( /turf/closed/wall, @@ -43827,25 +33483,16 @@ "cIH" = ( /obj/structure/bed, /obj/item/bedsheet/medical, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/desert_dam/building/medical/treatment_room) "cII" = ( /obj/structure/machinery/iv_drip, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/desert_dam/building/medical/treatment_room) "cIJ" = ( /obj/structure/machinery/iv_drip, /obj/structure/machinery/light, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/desert_dam/building/medical/treatment_room) "cIK" = ( /turf/open/floor/plating, @@ -43858,77 +33505,44 @@ "cIM" = ( /obj/structure/closet/secure_closet/personal, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/prison{ - dir = 9; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/northwest, /area/desert_dam/building/medical/virology_wing) "cIN" = ( /obj/structure/machinery/computer/crew, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/north, /area/desert_dam/building/medical/virology_wing) "cIO" = ( /obj/structure/machinery/computer/med_data, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/north, /area/desert_dam/building/medical/virology_wing) "cIP" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/north, /area/desert_dam/building/medical/virology_wing) "cIQ" = ( /obj/structure/disposalpipe/trunk, /obj/structure/machinery/disposal, -/turf/open/floor/prison{ - dir = 5; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/northeast, /area/desert_dam/building/medical/virology_wing) "cIS" = ( -/turf/open/floor/prison{ - dir = 9; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/northwest, /area/desert_dam/building/medical/virology_wing) "cIT" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/west, /area/desert_dam/building/medical/virology_wing) "cIU" = ( -/turf/open/floor/prison{ - dir = 5; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/northeast, /area/desert_dam/building/medical/virology_wing) "cIV" = ( /obj/structure/surface/table, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/medical/east_wing_hallway) "cIW" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/medical/east_wing_hallway) "cIX" = ( /obj/structure/bed, /obj/item/bedsheet/medical, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/medical/east_wing_hallway) "cIY" = ( /obj/structure/machinery/door_control{ @@ -43976,9 +33590,7 @@ /turf/open/floor/plating, /area/desert_dam/building/church) "cJg" = ( -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/desert_dam/building/church) "cJh" = ( /obj/structure/disposalpipe/segment, @@ -43997,9 +33609,7 @@ /obj/structure/bed/chair/wood/normal{ dir = 8 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/desert_dam/building/church) "cJl" = ( /obj/structure/flora/grass/desert/lightgrass_12, @@ -44007,9 +33617,7 @@ /area/desert_dam/exterior/valley/valley_civilian) "cJm" = ( /obj/effect/decal/sand_overlay/sand1, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached4" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached4, /area/desert_dam/exterior/valley/valley_hydro) "cJn" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -44024,16 +33632,10 @@ /turf/open/asphalt, /area/desert_dam/building/warehouse/loading) "cJo" = ( -/turf/open/floor/plating{ - dir = 1; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/north, /area/desert_dam/exterior/telecomm/lz2_containers) "cJp" = ( -/turf/open/floor/plating{ - dir = 5; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/northeast, /area/desert_dam/exterior/telecomm/lz2_containers) "cJq" = ( /obj/structure/cargo_container/grant/left, @@ -44043,9 +33645,7 @@ /obj/structure/surface/rack, /obj/item/clothing/suit/armor/riot, /obj/item/clothing/suit/armor/riot, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/desert_dam/building/security/armory) "cJs" = ( /obj/structure/surface/rack, @@ -44054,9 +33654,7 @@ pixel_y = -2 }, /obj/item/storage/box/flashbangs, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/desert_dam/building/security/armory) "cJt" = ( /obj/structure/surface/rack, @@ -44065,16 +33663,12 @@ pixel_x = 6; pixel_y = -4 }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/desert_dam/building/security/armory) "cJv" = ( /obj/structure/surface/rack, /obj/item/weapon/gun/revolver/cmb, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/desert_dam/building/security/armory) "cJw" = ( /obj/structure/cargo_container/grant/rightmid, @@ -44084,9 +33678,7 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 1 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached4" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached4, /area/desert_dam/exterior/valley/valley_cargo) "cJz" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ @@ -44107,40 +33699,25 @@ pixel_x = 9; pixel_y = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/desert_dam/building/medical/treatment_room) "cJC" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/computer/med_data/laptop{ pixel_y = 3 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/desert_dam/building/medical/treatment_room) "cJD" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/west, /area/desert_dam/building/medical/treatment_room) "cJE" = ( /obj/structure/machinery/computer/crew, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/east, /area/desert_dam/building/medical/treatment_room) "cJF" = ( /obj/structure/machinery/computer/med_data, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/desert_dam/building/medical/treatment_room) "cJG" = ( /turf/closed/wall, @@ -44157,56 +33734,35 @@ /obj/structure/bed/chair/office/light{ dir = 4 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/medical/virology_wing) "cJJ" = ( /obj/structure/surface/table, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/medical/virology_wing) "cJK" = ( /obj/structure/bed/chair/office/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/medical/virology_wing) "cJL" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreencorner" - }, +/turf/open/floor/prison/whitegreencorner/north, /area/desert_dam/building/medical/virology_wing) "cJM" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/east, /area/desert_dam/building/medical/virology_wing) "cJN" = ( /obj/structure/machinery/iv_drip, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/medical/east_wing_hallway) "cJO" = ( /obj/structure/cargo_container/grant/right, /turf/open/floor/plating, /area/desert_dam/exterior/telecomm/lz2_containers) "cJP" = ( -/turf/open/floor/plating{ - dir = 4; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/east, /area/desert_dam/exterior/telecomm/lz2_containers) "cJQ" = ( /obj/effect/decal/cleanable/dirt, @@ -44216,9 +33772,7 @@ /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 8 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached13" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached13, /area/desert_dam/exterior/valley/valley_hydro) "cJS" = ( /obj/structure/cargo_container/hd/left, @@ -44228,9 +33782,7 @@ /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 8 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached4" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached4, /area/desert_dam/exterior/valley/valley_hydro) "cJU" = ( /obj/structure/cargo_container/hd/mid, @@ -44292,22 +33844,15 @@ /area/desert_dam/building/warehouse/loading) "cKh" = ( /obj/structure/cargo_container/trijent/right/alt, -/turf/open/floor/plating{ - dir = 4; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/east, /area/desert_dam/exterior/telecomm/lz2_containers) "cKi" = ( -/turf/open/floor/plating{ - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate, /area/desert_dam/exterior/telecomm/lz2_containers) "cKj" = ( /obj/structure/surface/rack, /obj/item/weapon/gun/shotgun/pump/dual_tube/cmb, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/desert_dam/building/security/armory) "cKk" = ( /obj/structure/bed, @@ -44325,10 +33870,7 @@ /turf/open/floor/interior/tatami, /area/desert_dam/building/bar/bar) "cKn" = ( -/turf/open/floor/plating{ - dir = 6; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/southeast, /area/desert_dam/exterior/telecomm/lz2_containers) "cKp" = ( /turf/closed/wall/hangar{ @@ -44363,45 +33905,29 @@ pixel_y = 10 }, /obj/effect/landmark/objective_landmark/far, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/desert_dam/building/medical/treatment_room) "cKu" = ( /obj/structure/bed/chair/office/light{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/desert_dam/building/medical/treatment_room) "cKv" = ( /obj/structure/bed/chair/office/light{ dir = 1 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/east, /area/desert_dam/building/medical/treatment_room) "cKw" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/desert_dam/building/medical/treatment_room) "cKx" = ( -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/building/medical/virology_isolation) "cKy" = ( /obj/effect/landmark/monkey_spawn, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/building/medical/virology_isolation) "cKC" = ( /obj/structure/machinery/light{ @@ -44410,39 +33936,27 @@ /turf/open/floor/plating, /area/desert_dam/building/medical/east_wing_hallway) "cKD" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/medical/virology_wing) "cKE" = ( /obj/structure/disposalpipe/segment{ dir = 1; icon_state = "pipe-c" }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/medical/virology_wing) "cKF" = ( /obj/structure/machinery/door/airlock/almayer/generic, /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/medical/virology_wing) "cKG" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/west, /area/desert_dam/building/medical/virology_wing) "cKH" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -44450,10 +33964,7 @@ dir = 1; icon_state = "pipe-j2" }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/east, /area/desert_dam/building/medical/virology_wing) "cKI" = ( /obj/structure/machinery/power/apc{ @@ -44461,26 +33972,19 @@ pixel_x = 28; start_charge = 0 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/east, /area/desert_dam/building/medical/virology_wing) "cKJ" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 1 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached19" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached19, /area/desert_dam/exterior/valley/valley_cargo) "cKK" = ( /obj/structure/flora/grass/tallgrass/desert/corner{ dir = 6 }, -/turf/open/desert/dirt{ - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1, /area/desert_dam/exterior/valley/valley_cargo) "cKL" = ( /obj/effect/decal/warning_stripes{ @@ -44498,9 +34002,7 @@ /area/desert_dam/building/warehouse/warehouse) "cKO" = ( /obj/structure/stairs, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_cargo) "cKP" = ( /obj/structure/desertdam/decals/road_edge{ @@ -44511,31 +34013,23 @@ /area/desert_dam/exterior/valley/valley_cargo) "cKQ" = ( /obj/structure/flora/grass/tallgrass/desert/corner, -/turf/open/desert/dirt{ - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1, /area/desert_dam/exterior/valley/valley_cargo) "cKR" = ( /obj/structure/flora/grass/tallgrass/desert/corner{ dir = 10 }, -/turf/open/desert/dirt{ - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1, /area/desert_dam/exterior/valley/valley_cargo) "cKS" = ( /obj/effect/decal/sand_overlay/sand1, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached19" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached19, /area/desert_dam/exterior/valley/valley_cargo) "cKT" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 6 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached15" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached15, /area/desert_dam/exterior/valley/valley_cargo) "cKU" = ( /obj/effect/decal/sand_overlay/sand1{ @@ -44545,21 +34039,14 @@ /area/desert_dam/exterior/valley/valley_cargo) "cKV" = ( /obj/structure/prop/dam/boulder/boulder1, -/turf/open/desert/dirt{ - dir = 6; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/southeast, /area/desert_dam/exterior/valley/valley_cargo) "cKX" = ( -/turf/open/floor/prison{ - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2, /area/desert_dam/building/security/deathrow) "cLa" = ( /obj/structure/flora/grass/desert/lightgrass_6, -/turf/open/desert/dirt{ - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1, /area/desert_dam/exterior/valley/valley_cargo) "cLc" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -44578,18 +34065,14 @@ /obj/structure/machinery/landinglight/ds2{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached15" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached15, /area/desert_dam/exterior/landing_pad_two) "cLh" = ( /obj/structure/platform{ dir = 1 }, /obj/effect/blocker/toxic_water/Group_1, -/turf/open/gm/river/desert/shallow_edge{ - dir = 5 - }, +/turf/open/gm/river/desert/shallow_edge/northeast, /area/desert_dam/exterior/river/riverside_south) "cLi" = ( /obj/structure/platform{ @@ -44614,33 +34097,22 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/desert_dam/building/medical/treatment_room) "cLm" = ( /obj/structure/surface/table, /turf/open/floor/plating, /area/desert_dam/building/medical/east_wing_hallway) "cLo" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/southwest, /area/desert_dam/building/medical/virology_wing) "cLp" = ( -/turf/open/floor/prison{ - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen, /area/desert_dam/building/medical/virology_wing) "cLq" = ( /obj/structure/surface/table, /obj/item/storage/fancy/vials/random, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/desert_dam/building/medical/virology_wing) "cLr" = ( /obj/structure/machinery/light{ @@ -44648,31 +34120,21 @@ }, /obj/structure/surface/table, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/desert_dam/building/medical/virology_wing) "cLs" = ( /obj/effect/landmark/monkey_spawn, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/building/medical/virology_wing) "cLt" = ( -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/building/medical/virology_wing) "cLu" = ( /turf/closed/wall/r_wall, /area/desert_dam/building/medical/virology_wing) "cLv" = ( /obj/structure/prop/dam/boulder/boulder2, -/turf/open/desert/dirt{ - dir = 4; - icon_state = "desert_transition_corner1" - }, +/turf/open/desert/dirt/desert_transition_corner1/east, /area/desert_dam/exterior/valley/valley_cargo) "cLG" = ( /turf/open/asphalt, @@ -44696,9 +34158,7 @@ /obj/structure/machinery/landinglight/ds2/delayone{ dir = 8 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached14" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached14, /area/desert_dam/exterior/landing_pad_two) "cLO" = ( /obj/effect/decal/warning_stripes{ @@ -44711,9 +34171,7 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 1 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached18" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached18, /area/desert_dam/exterior/valley/valley_cargo) "cLQ" = ( /obj/effect/decal/warning_stripes{ @@ -44723,26 +34181,17 @@ /area/desert_dam/building/warehouse/warehouse) "cLR" = ( /obj/structure/machinery/photocopier, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/desert_dam/building/medical/treatment_room) "cLS" = ( /obj/structure/surface/table/reinforced, /obj/item/book/manual/medical_diagnostics_manual, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/desert_dam/building/medical/treatment_room) "cLT" = ( /obj/structure/surface/table/reinforced, /obj/item/device/defibrillator, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/desert_dam/building/medical/treatment_room) "cLU" = ( /obj/structure/surface/table/reinforced, @@ -44751,51 +34200,32 @@ pixel_x = 5; pixel_y = 3 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/desert_dam/building/medical/treatment_room) "cLV" = ( /obj/structure/surface/table/reinforced, /obj/item/bodybag/cryobag, /obj/item/storage/box/syringes, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/desert_dam/building/medical/treatment_room) "cLX" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/desert_dam/interior/dam_interior/west_tunnel) "cLY" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/east, /area/desert_dam/building/medical/virology_isolation) "cMa" = ( /obj/structure/reagent_dispensers/virusfood{ pixel_x = -32 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/west, /area/desert_dam/building/medical/virology_wing) "cMb" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/desert_dam/building/medical/virology_wing) "cMc" = ( -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/desert_dam/building/medical/virology_wing) "cMd" = ( /obj/effect/decal/warning_stripes{ @@ -44826,9 +34256,7 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached17" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached17, /area/desert_dam/exterior/valley/valley_hydro) "cMj" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -44837,9 +34265,7 @@ /turf/open/asphalt, /area/desert_dam/building/warehouse/loading) "cMl" = ( -/turf/open/desert/dirt{ - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1, /area/desert_dam/exterior/valley/valley_hydro) "cMm" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -44860,18 +34286,13 @@ /turf/open/asphalt, /area/desert_dam/building/warehouse/loading) "cMo" = ( -/turf/open/desert/dirt{ - dir = 6; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/southeast, /area/desert_dam/exterior/valley/valley_hydro) "cMq" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached13" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached13, /area/desert_dam/exterior/landing_pad_two) "cMw" = ( /obj/structure/pipes/standard/manifold/hidden/green{ @@ -44898,17 +34319,13 @@ /area/desert_dam/interior/dam_interior/south_tunnel_entrance) "cMC" = ( /obj/structure/machinery/floodlight/landing, -/turf/open/floor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/asteroidplating, /area/desert_dam/exterior/landing_pad_two) "cMD" = ( /obj/structure/machinery/landinglight/ds2/delaytwo{ dir = 1 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached2" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached2, /area/desert_dam/exterior/landing_pad_two) "cME" = ( /obj/structure/disposalpipe/segment{ @@ -44921,10 +34338,7 @@ /turf/open/desert/dirt, /area/desert_dam/exterior/valley/valley_cargo) "cMI" = ( -/turf/open/desert/dirt{ - dir = 9; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/northwest, /area/desert_dam/exterior/valley/north_valley_dam) "cMJ" = ( /obj/structure/desertdam/decals/road_edge{ @@ -44936,67 +34350,48 @@ /obj/structure/machinery/landinglight/ds2/delaythree{ dir = 1 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached4" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached4, /area/desert_dam/exterior/landing_pad_two) "cMM" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 8 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached13" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached13, /area/desert_dam/exterior/valley/valley_cargo) "cMN" = ( /obj/structure/stairs, /obj/structure/platform{ dir = 8 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_medical) "cMO" = ( /obj/structure/stairs, /obj/structure/platform{ dir = 4 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_medical) "cMP" = ( /turf/closed/wall/r_wall, /area/desert_dam/building/medical/virology_isolation) "cMQ" = ( /obj/structure/surface/table, -/turf/open/floor/prison{ - dir = 9; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/northwest, /area/desert_dam/building/medical/virology_isolation) "cMR" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreencorner" - }, +/turf/open/floor/prison/whitegreencorner/east, /area/desert_dam/building/medical/virology_isolation) "cMS" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/desert/rock/deep/transition{ - dir = 1 - }, +/turf/open/desert/rock/deep/transition/north, /area/desert_dam/exterior/telecomm/lz1_south) "cMT" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk{ dir = 4 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreencorner" - }, +/turf/open/floor/prison/whitegreencorner/north, /area/desert_dam/building/medical/virology_isolation) "cMU" = ( /obj/structure/surface/table, @@ -45004,20 +34399,14 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/north, /area/desert_dam/building/medical/virology_isolation) "cMV" = ( /obj/structure/machinery/computer/operating, /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/north, /area/desert_dam/building/medical/virology_isolation) "cMW" = ( /obj/structure/surface/table, @@ -45028,19 +34417,13 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/north, /area/desert_dam/building/medical/virology_isolation) "cMX" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreencorner" - }, +/turf/open/floor/prison/whitegreencorner/east, /area/desert_dam/building/medical/virology_isolation) "cMY" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -45048,16 +34431,10 @@ dir = 8; icon_state = "pipe-c" }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/medical/virology_isolation) "cMZ" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreencorner" - }, +/turf/open/floor/prison/whitegreencorner/north, /area/desert_dam/building/medical/virology_isolation) "cNa" = ( /obj/structure/window/framed/colony, @@ -45067,46 +34444,31 @@ /obj/structure/machinery/landinglight/ds2{ dir = 1 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached9" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached9, /area/desert_dam/exterior/landing_pad_two) "cNc" = ( /obj/structure/closet/l3closet/virology, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/north, /area/desert_dam/building/medical/virology_wing) "cNd" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreencorner" - }, +/turf/open/floor/prison/whitegreencorner/east, /area/desert_dam/building/medical/virology_wing) "cNe" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/desert/rock/deep/transition{ - dir = 9 - }, +/turf/open/desert/rock/deep/transition/northwest, /area/desert_dam/exterior/telecomm/lz1_south) "cNf" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/east, /area/desert_dam/building/medical/virology_wing) "cNg" = ( /obj/effect/decal/sand_overlay/sand2{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/interior/dam_interior/central_tunnel) "cNh" = ( /obj/structure/desertdam/decals/road_edge, @@ -45152,9 +34514,7 @@ /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached1" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached1, /area/desert_dam/exterior/valley/valley_cargo) "cNo" = ( /obj/structure/window/framed/colony/reinforced, @@ -45163,10 +34523,7 @@ "cNr" = ( /obj/structure/closet/crate/hydroponics/prespawned, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor{ - dir = 1; - icon_state = "vault" - }, +/turf/open/floor/vault2/north, /area/desert_dam/building/hydroponics/hydroponics_storage) "cNs" = ( /obj/structure/prop/dam/gravestone, @@ -45180,10 +34537,7 @@ /obj/structure/bed/chair/wood/normal{ dir = 4 }, -/turf/open/floor{ - dir = 1; - icon_state = "chapel" - }, +/turf/open/floor/chapel/north, /area/desert_dam/building/church) "cNw" = ( /obj/structure/desertdam/decals/road_stop{ @@ -45226,9 +34580,7 @@ /obj/structure/platform_decoration{ dir = 8 }, -/turf/open/desert/dirt{ - icon_state = "dirt2" - }, +/turf/open/desert/dirt/dirt2, /area/desert_dam/exterior/valley/valley_medical) "cND" = ( /obj/structure/platform{ @@ -45237,69 +34589,43 @@ /obj/structure/platform{ dir = 4 }, -/turf/open/desert/dirt{ - icon_state = "dirt2" - }, +/turf/open/desert/dirt/dirt2, /area/desert_dam/exterior/valley/valley_medical) "cNE" = ( /obj/structure/surface/table, /obj/item/storage/fancy/vials/random, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/west, /area/desert_dam/building/medical/virology_isolation) "cNF" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/medical/virology_isolation) "cNG" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/desert_dam/building/medical/virology_isolation) "cNH" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/north, /area/desert_dam/building/medical/virology_isolation) "cNI" = ( /obj/structure/bed/stool, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/north, /area/desert_dam/building/medical/virology_isolation) "cNK" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/north, /area/desert_dam/building/medical/virology_isolation) "cNL" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/north, /area/desert_dam/building/medical/virology_isolation) "cNM" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/north, /area/desert_dam/building/medical/virology_wing) "cNN" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ @@ -45307,10 +34633,7 @@ }, /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/primary_tool_storage) "cNP" = ( /obj/structure/flora/bush/desert/cactus{ @@ -45338,36 +34661,24 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - dir = 4; - icon_state = "chapel" - }, +/turf/open/floor/chapel/east, /area/desert_dam/building/church) "cNU" = ( /obj/structure/bed/chair/wood/normal{ dir = 4 }, -/turf/open/floor{ - dir = 4; - icon_state = "chapel" - }, +/turf/open/floor/chapel/east, /area/desert_dam/building/church) "cNV" = ( /obj/structure/flora/grass/desert/lightgrass_3, -/turf/open/desert/dirt{ - dir = 8; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/west, /area/desert_dam/exterior/valley/valley_hydro) "cNW" = ( /turf/open/desert/dirt, /area/desert_dam/exterior/valley/south_valley_dam) "cNX" = ( /obj/structure/prop/dam/gravestone, -/turf/open/desert/dirt{ - dir = 8; - icon_state = "desert_transition_corner1" - }, +/turf/open/desert/dirt/desert_transition_corner1/west, /area/desert_dam/exterior/valley/valley_hydro) "cNY" = ( /obj/structure/bed/chair/wood/normal{ @@ -45376,29 +34687,20 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - dir = 1; - icon_state = "chapel" - }, +/turf/open/floor/chapel/north, /area/desert_dam/building/church) "cNZ" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/desert_dam/building/church) "cOa" = ( /obj/structure/stairs{ dir = 8 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/desert_dam/building/church) "cOb" = ( -/turf/open/floor{ - icon_state = "cult" - }, +/turf/open/floor/cult, /area/desert_dam/building/church) "cOc" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -45408,9 +34710,7 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/desert_dam/building/church) "cOe" = ( /obj/structure/machinery/power/apc{ @@ -45418,9 +34718,7 @@ pixel_x = -30; start_charge = 0 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/desert_dam/building/church) "cOf" = ( /obj/structure/pipes/vents/pump{ @@ -45437,31 +34735,22 @@ /turf/open/desert/dirt, /area/desert_dam/exterior/valley/valley_cargo) "cOk" = ( -/turf/open/desert/dirt{ - icon_state = "dirt2" - }, +/turf/open/desert/dirt/dirt2, /area/desert_dam/exterior/valley/valley_medical) "cOl" = ( /obj/structure/platform{ dir = 4 }, -/turf/open/desert/dirt{ - icon_state = "dirt2" - }, +/turf/open/desert/dirt/dirt2, /area/desert_dam/exterior/valley/valley_medical) "cOm" = ( -/turf/open/floor/prison{ - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen, /area/desert_dam/building/medical/virology_isolation) "cOn" = ( /obj/structure/bed/chair/wood/normal{ dir = 4 }, -/turf/open/floor{ - dir = 8; - icon_state = "chapel" - }, +/turf/open/floor/chapel/west, /area/desert_dam/building/church) "cOo" = ( /obj/effect/decal/cleanable/dirt, @@ -45482,47 +34771,34 @@ dir = 1 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/interior/dam_interior/central_tunnel) "cOs" = ( /obj/structure/machinery/chem_dispenser, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/desert_dam/building/medical/virology_wing) "cOt" = ( /obj/structure/bed/chair/wood/normal{ dir = 4 }, -/turf/open/floor{ - icon_state = "chapel" - }, +/turf/open/floor/chapel, /area/desert_dam/building/church) "cOu" = ( /obj/structure/surface/table/woodentable, /obj/item/storage/fancy/candle_box, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - icon_state = "cult" - }, +/turf/open/floor/cult, /area/desert_dam/building/church) "cOv" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor{ - icon_state = "cult" - }, +/turf/open/floor/cult, /area/desert_dam/building/church) "cOw" = ( /obj/structure/surface/table/woodentable, /obj/item/trash/candle, -/turf/open/floor{ - icon_state = "cult" - }, +/turf/open/floor/cult, /area/desert_dam/building/church) "cOx" = ( /obj/structure/surface/table/woodentable, @@ -45530,9 +34806,7 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - icon_state = "cult" - }, +/turf/open/floor/cult, /area/desert_dam/building/church) "cOy" = ( /obj/effect/decal/cleanable/liquid_fuel, @@ -45546,23 +34820,14 @@ "cOC" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 8; - icon_state = "carpet6-2" - }, +/turf/open/floor/carpet6_2/west, /area/desert_dam/building/church) "cOD" = ( -/turf/open/floor{ - dir = 8; - icon_state = "carpet14-10" - }, +/turf/open/floor/carpet14_10/west, /area/desert_dam/building/church) "cOE" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 8; - icon_state = "carpet14-10" - }, +/turf/open/floor/carpet14_10/west, /area/desert_dam/building/church) "cOF" = ( /obj/effect/decal/cleanable/dirt, @@ -45570,9 +34835,7 @@ /turf/open/asphalt, /area/desert_dam/building/warehouse/warehouse) "cOG" = ( -/turf/open/desert/dirt{ - icon_state = "dirt2" - }, +/turf/open/desert/dirt/dirt2, /area/desert_dam/exterior/valley/valley_hydro) "cOH" = ( /turf/closed/wall/hangar{ @@ -45581,19 +34844,14 @@ /area/desert_dam/building/substation/southwest) "cOI" = ( /obj/structure/surface/table, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/southwest, /area/desert_dam/building/medical/virology_isolation) "cOJ" = ( /obj/structure/machinery/power/apc{ pixel_y = -24; start_charge = 0 }, -/turf/open/floor/prison{ - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen, /area/desert_dam/building/medical/virology_isolation) "cOK" = ( /obj/effect/decal/sand_overlay/sand2/corner2{ @@ -45601,57 +34859,38 @@ }, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/interior/dam_interior/central_tunnel) "cOL" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/interior/dam_interior/central_tunnel) "cOM" = ( /obj/structure/closet/firecloset/full, -/turf/open/floor/prison{ - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen, /area/desert_dam/building/medical/virology_wing) "cOO" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen, /area/desert_dam/building/medical/virology_wing) "cOP" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/interior/dam_interior/central_tunnel) "cOQ" = ( /obj/structure/bed/stool, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/desert_dam/building/medical/virology_wing) "cOR" = ( /obj/structure/surface/table, /obj/item/tank/anesthetic, /obj/item/storage/pill_bottle/spaceacillin, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/desert_dam/building/medical/virology_wing) "cOS" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 8; - icon_state = "carpet10-8" - }, +/turf/open/floor/carpet10_8/west, /area/desert_dam/building/church) "cOT" = ( /obj/structure/machinery/door/poddoor/almayer/locked{ @@ -45665,9 +34904,7 @@ "cOU" = ( /obj/structure/surface/table/woodentable, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - icon_state = "cult" - }, +/turf/open/floor/cult, /area/desert_dam/building/church) "cOV" = ( /obj/vehicle/train/cargo/trolley, @@ -45680,87 +34917,59 @@ /area/desert_dam/building/warehouse/loading) "cOX" = ( /obj/effect/decal/cleanable/generic, -/turf/open/floor{ - icon_state = "cult" - }, +/turf/open/floor/cult, /area/desert_dam/building/church) "cOY" = ( /obj/effect/landmark/good_item, -/turf/open/floor{ - icon_state = "cult" - }, +/turf/open/floor/cult, /area/desert_dam/building/church) "cOZ" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ dir = 2; name = "\improper Chapel" }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/desert_dam/building/church) "cPd" = ( -/turf/open/floor{ - dir = 8; - icon_state = "carpet5-1" - }, +/turf/open/floor/carpet5_1/west, /area/desert_dam/building/church) "cPe" = ( -/turf/open/floor{ - dir = 8; - icon_state = "carpet13-5" - }, +/turf/open/floor/carpet13_5/west, /area/desert_dam/building/church) "cPf" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 8; - icon_state = "carpet13-5" - }, +/turf/open/floor/carpet13_5/west, /area/desert_dam/building/church) "cPg" = ( -/turf/open/floor{ - dir = 8; - icon_state = "carpet9-4" - }, +/turf/open/floor/carpet9_4/west, /area/desert_dam/building/church) "cPh" = ( /obj/structure/machinery/door/airlock/almayer/generic{ name = "\improper Backroom" }, -/turf/open/floor{ - icon_state = "cult" - }, +/turf/open/floor/cult, /area/desert_dam/building/church) "cPi" = ( /obj/structure/machinery/light, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/desert_dam/building/church) "cPj" = ( /obj/structure/machinery/light, -/turf/open/floor{ - icon_state = "cult" - }, +/turf/open/floor/cult, /area/desert_dam/building/church) "cPk" = ( /obj/structure/bed/chair/wood/normal{ dir = 4 }, /obj/structure/machinery/light, -/turf/open/floor{ - icon_state = "chapel" - }, +/turf/open/floor/chapel, /area/desert_dam/building/church) "cPl" = ( /obj/structure/bed/chair/wood/normal{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "chapel" - }, +/turf/open/floor/chapel, /area/desert_dam/building/church) "cPm" = ( /obj/structure/bed/chair/wood/normal{ @@ -45768,10 +34977,7 @@ }, /obj/structure/machinery/light, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 8; - icon_state = "chapel" - }, +/turf/open/floor/chapel/west, /area/desert_dam/building/church) "cPn" = ( /obj/structure/disposalpipe/segment{ @@ -45799,24 +35005,17 @@ /obj/structure/barricade/wooden{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached3" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached3, /area/desert_dam/exterior/valley/valley_civilian) "cPq" = ( /obj/structure/machinery/light, /turf/open/floor/prison, /area/desert_dam/building/security/execution_chamber) "cPr" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached6" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached6, /area/desert_dam/exterior/telecomm/lz2_storage) "cPt" = ( -/turf/open/desert/dirt{ - dir = 6; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/southeast, /area/desert_dam/exterior/telecomm/lz1_xenoflora) "cPu" = ( /obj/vehicle/train/cargo/engine, @@ -45831,9 +35030,7 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached12" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached12, /area/desert_dam/exterior/valley/valley_civilian) "cPy" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -45849,31 +35046,21 @@ /turf/open/desert/dirt, /area/desert_dam/exterior/valley/valley_civilian) "cPB" = ( -/turf/open/floor{ - dir = 8; - icon_state = "carpet5-1" - }, +/turf/open/floor/carpet5_1/west, /area/desert_dam/building/bar/bar) "cPC" = ( /obj/structure/surface/table, /obj/effect/spawner/random/tool, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/east, /area/desert_dam/building/mining/workshop) "cPF" = ( -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/desert_dam/building/security/deathrow) "cPG" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 1 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_cargo) "cPH" = ( /obj/structure/machinery/power/apc{ @@ -45881,10 +35068,7 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/northwest, /area/desert_dam/building/substation/southwest) "cPI" = ( /obj/structure/desertdam/decals/road_stop{ @@ -45899,16 +35083,10 @@ "cPJ" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/technology_scanner, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/desert_dam/building/substation/southwest) "cPK" = ( -/turf/open/floor/prison{ - dir = 5; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/northeast, /area/desert_dam/building/substation/southwest) "cPL" = ( /turf/closed/wall, @@ -45922,9 +35100,7 @@ dir = 1; name = "\improper Virology Lab Cell" }, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/building/medical/virology_isolation) "cPO" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony{ @@ -45937,58 +35113,38 @@ /obj/structure/disposalpipe/trunk{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/desert_dam/building/medical/virology_wing) "cPQ" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/desert_dam/building/medical/virology_wing) "cPR" = ( /obj/structure/disposalpipe/segment{ dir = 8; icon_state = "pipe-c" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/desert_dam/building/medical/virology_wing) "cPS" = ( /obj/structure/surface/table, /obj/structure/machinery/reagentgrinder, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/desert_dam/building/medical/virology_wing) "cPT" = ( /obj/structure/machinery/chem_master, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/desert_dam/building/medical/virology_wing) "cPU" = ( /obj/structure/surface/table, /obj/item/storage/pill_bottle/spaceacillin, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/desert_dam/building/medical/virology_wing) "cPV" = ( /obj/effect/decal/sand_overlay/sand1, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached15" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached15, /area/desert_dam/exterior/valley/valley_cargo) "cPW" = ( /obj/structure/desertdam/decals/road_edge{ @@ -46006,23 +35162,14 @@ "cPX" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 8; - icon_state = "carpet13-5" - }, +/turf/open/floor/carpet13_5/west, /area/desert_dam/building/bar/bar) "cPY" = ( -/turf/open/floor{ - dir = 8; - icon_state = "carpet13-5" - }, +/turf/open/floor/carpet13_5/west, /area/desert_dam/building/bar/bar) "cPZ" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 8; - icon_state = "carpet9-4" - }, +/turf/open/floor/carpet9_4/west, /area/desert_dam/building/bar/bar) "cQa" = ( /obj/structure/bed/chair/wood/normal{ @@ -46046,7 +35193,7 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /turf/open/asphalt, -/area/desert_dam/exterior/valley/valley_cargo) +/area/desert_dam/exterior/landing_pad_two) "cQd" = ( /obj/item/trash/cheesie, /obj/effect/landmark/objective_landmark/close, @@ -46077,16 +35224,10 @@ id = "dam_shutter_hangar"; name = "\improper Hangar Lock" }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkbrown3" - }, +/turf/open/floor/prison/darkbrown3/east, /area/desert_dam/interior/dam_interior/hanger) "cQi" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/prison/red/west, /area/desert_dam/interior/dam_interior/south_tunnel_entrance) "cQk" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -46099,57 +35240,36 @@ /obj/structure/closet/secure_closet/security, /obj/item/clothing/suit/armor/vest/security, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/prison{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/prison/red/east, /area/desert_dam/interior/dam_interior/south_tunnel_entrance) "cQm" = ( -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_cargo) "cQn" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached14" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached14, /area/desert_dam/exterior/landing_pad_two) "cQo" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/prison/darkyellowcorners2/east, /area/desert_dam/building/substation/southwest) "cQq" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/prison/darkyellowcorners2/north, /area/desert_dam/building/substation/southwest) "cQr" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/desert_dam/building/substation/southwest) "cQs" = ( /obj/structure/machinery/power/smes/batteryrack/substation, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/desert_dam/building/substation/southwest) "cQv" = ( /obj/structure/machinery/power/port_gen/pacman, /turf/open/floor/plating, /area/desert_dam/building/substation/southwest) "cQw" = ( -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/desert_dam/building/hydroponics/hydroponics_breakroom) "cQx" = ( /turf/closed/wall/wood, @@ -46162,17 +35282,13 @@ /obj/structure/machinery/door/airlock/almayer/generic{ name = "\improper Toilet Unit" }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/desert_dam/building/hydroponics/hydroponics_breakroom) "cQA" = ( /obj/structure/toilet{ dir = 8 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/desert_dam/building/hydroponics/hydroponics_breakroom) "cQB" = ( /turf/open/floor/plating, @@ -46188,10 +35304,7 @@ /turf/open/floor/interior/wood/alt, /area/desert_dam/building/bar/bar) "cQE" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/desert_dam/interior/dam_interior/south_tunnel_entrance) "cQF" = ( /obj/structure/desertdam/decals/road_edge, @@ -46199,10 +35312,7 @@ /area/desert_dam/interior/dam_interior/south_tunnel_entrance) "cQG" = ( /obj/structure/sink, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/bar/bar_restroom) "cQH" = ( /obj/structure/machinery/light{ @@ -46218,19 +35328,13 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/bar/bar_restroom) "cQJ" = ( /obj/structure/machinery/door/airlock/almayer/generic{ name = "\improper Toilet Unit" }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/bar/bar_restroom) "cQK" = ( /obj/structure/flora/grass/desert/lightgrass_11, @@ -46241,17 +35345,14 @@ dir = 10 }, /turf/open/desert/dirt, -/area/desert_dam/exterior/valley/valley_northwest) +/area/desert_dam/exterior/landing_pad_one) "cQN" = ( /obj/structure/machinery/power/apc{ dir = 1; pixel_y = 24; start_charge = 0 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/bar/bar_restroom) "cQO" = ( /obj/structure/machinery/computer/cameras{ @@ -46259,19 +35360,13 @@ network = list("chigusa_1") }, /obj/structure/surface/table, -/turf/open/floor{ - dir = 1; - icon_state = "whiteyellow" - }, +/turf/open/floor/whiteyellow/north, /area/desert_dam/interior/dam_interior/lobby) "cQP" = ( /turf/open/asphalt, /area/desert_dam/interior/dam_interior/south_tunnel_entrance) "cQQ" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/bar/bar_restroom) "cQR" = ( /obj/effect/decal/cleanable/dirt, @@ -46297,30 +35392,22 @@ /area/desert_dam/building/bar/bar) "cQV" = ( /obj/structure/machinery/light, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/desert_dam/building/security/deathrow) "cQW" = ( /obj/structure/surface/table/reinforced, /obj/item/clothing/mask/muzzle, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/desert_dam/building/security/deathrow) "cQX" = ( /obj/structure/surface/table/reinforced, /obj/item/clothing/suit/straight_jacket, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/desert_dam/building/security/deathrow) "cQY" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/light, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/desert_dam/building/security/deathrow) "cQZ" = ( /obj/structure/bed/chair/wood/normal{ @@ -46346,37 +35433,22 @@ /turf/open/asphalt, /area/desert_dam/interior/dam_interior/south_tunnel_entrance) "cRg" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/west, /area/desert_dam/building/substation/southwest) "cRi" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/desert_dam/building/substation/southwest) "cRj" = ( /obj/structure/machinery/power/terminal{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/desert_dam/building/substation/southwest) "cRk" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/east, /area/desert_dam/building/substation/southwest) "cRl" = ( -/turf/open/floor/plating{ - dir = 8; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/west, /area/desert_dam/building/substation/southwest) "cRm" = ( /turf/open/floor/plating, @@ -46387,27 +35459,19 @@ pixel_x = -12; pixel_y = 2 }, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/building/medical/virology_isolation) "cRp" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/bar/bar_restroom) "cRq" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/bar/bar_restroom) "cRr" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -46416,9 +35480,7 @@ /obj/structure/machinery/door/airlock/almayer/generic{ name = "\improper Restroom" }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/desert_dam/building/bar/bar_restroom) "cRs" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -46468,9 +35530,7 @@ /turf/open/floor/interior/tatami, /area/desert_dam/building/bar/bar) "cRB" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached15" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached15, /area/desert_dam/exterior/landing_pad_two) "cRC" = ( /obj/effect/decal/sand_overlay/sand1{ @@ -46479,9 +35539,7 @@ /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached13" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached13, /area/desert_dam/exterior/valley/bar_valley_dam) "cRD" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -46493,9 +35551,7 @@ /turf/open/floor/interior/tatami, /area/desert_dam/building/bar/bar) "cRE" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached14" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached14, /area/desert_dam/exterior/landing_pad_two) "cRF" = ( /obj/structure/pipes/vents/pump{ @@ -46505,10 +35561,7 @@ /area/desert_dam/building/bar/bar) "cRG" = ( /obj/structure/machinery/light, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/bar/bar_restroom) "cRH" = ( /obj/effect/decal/cleanable/generic, @@ -46525,17 +35578,13 @@ /turf/open/asphalt, /area/desert_dam/interior/dam_interior/south_tunnel_entrance) "cRK" = ( -/turf/open/asphalt/cement{ - icon_state = "cement2" - }, +/turf/open/asphalt/cement/cement2, /area/desert_dam/interior/dam_interior/south_tunnel_entrance) "cRL" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached13" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached13, /area/desert_dam/exterior/valley/valley_cargo) "cRM" = ( /obj/structure/desertdam/decals/road_edge, @@ -46548,15 +35597,11 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/building/medical/virology_isolation) "cRR" = ( /obj/structure/bed, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/building/medical/virology_isolation) "cRS" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ @@ -46565,19 +35610,13 @@ /turf/open/floor/prison, /area/desert_dam/interior/dam_interior/south_tunnel_entrance) "cRV" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/prison/red/east, /area/desert_dam/interior/dam_interior/south_tunnel_entrance) "cRW" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/desert_dam/interior/dam_interior/south_tunnel_entrance) "cRX" = ( /obj/structure/machinery/light, @@ -46621,9 +35660,7 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/desert_dam/interior/dam_interior/south_tunnel_entrance) "cSe" = ( /obj/structure/surface/table/reinforced, @@ -46631,10 +35668,7 @@ name = "Security Cameras - Operations"; network = list("chigusa_1") }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/prison/red/west, /area/desert_dam/interior/dam_interior/south_tunnel_entrance) "cSg" = ( /obj/structure/machinery/door_control{ @@ -46650,19 +35684,17 @@ pixel_x = -30; start_charge = 0 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/desert_dam/interior/dam_interior/south_tunnel_entrance) "cSl" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 1 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached15" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached15, /area/desert_dam/exterior/valley/valley_civilian) +"cSn" = ( +/turf/open/desert/dirt/desert_transition_edge1/west, +/area/desert_dam/exterior/landing_pad_one) "cSo" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/door/window/eastleft{ @@ -46689,10 +35721,7 @@ /obj/structure/bed/chair/office/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/prison/red/west, /area/desert_dam/interior/dam_interior/south_tunnel_entrance) "cSr" = ( /turf/open/floor/prison, @@ -46701,26 +35730,16 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/prison/red/east, /area/desert_dam/interior/dam_interior/south_tunnel_entrance) "cSu" = ( -/turf/open/floor/prison{ - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/prison/darkyellowcorners2, /area/desert_dam/building/substation/southwest) "cSv" = ( -/turf/open/floor/prison{ - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2, /area/desert_dam/building/substation/southwest) "cSw" = ( -/turf/open/floor/prison{ - dir = 6; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/southeast, /area/desert_dam/building/substation/southwest) "cSx" = ( /obj/structure/surface/rack, @@ -46728,10 +35747,7 @@ amount = 50 }, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/plating{ - dir = 8; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/west, /area/desert_dam/building/substation/southwest) "cSy" = ( /obj/structure/surface/rack, @@ -46746,34 +35762,26 @@ /obj/structure/disposalpipe/trunk{ dir = 4 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/desert_dam/building/hydroponics/hydroponics_breakroom) "cSA" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/desert_dam/building/hydroponics/hydroponics_breakroom) "cSB" = ( /obj/structure/disposalpipe/segment{ dir = 2; icon_state = "pipe-c" }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/desert_dam/building/hydroponics/hydroponics_breakroom) "cSC" = ( /turf/closed/wall, /area/desert_dam/exterior/valley/valley_civilian) "cSE" = ( -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/desert_dam/interior/dam_interior/south_tunnel_entrance) "cSF" = ( /obj/structure/surface/table/reinforced, @@ -46791,25 +35799,18 @@ /turf/open/floor/plating, /area/desert_dam/interior/dam_interior/south_tunnel_entrance) "cSG" = ( -/turf/open/asphalt/cement{ - icon_state = "cement14" - }, +/turf/open/asphalt/cement/cement14, /area/desert_dam/interior/dam_interior/south_tunnel_entrance) "cSH" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/sand_overlay/sand1{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached13" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached13, /area/desert_dam/exterior/valley/bar_valley_dam) "cSK" = ( /obj/structure/surface/rack, -/turf/open/floor/prison{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/prison/red/southeast, /area/desert_dam/interior/dam_interior/south_tunnel_entrance) "cSL" = ( /obj/effect/decal/warning_stripes{ @@ -46840,30 +35841,24 @@ /area/desert_dam/exterior/valley/valley_cargo) "cSU" = ( /obj/structure/surface/rack, -/turf/open/floor/prison{ - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2, /area/desert_dam/building/mining/workshop) "cSX" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/technology_scanner, -/turf/open/floor/prison{ - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2, /area/desert_dam/building/mining/workshop) "cSY" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/toolbox, -/turf/open/floor/prison{ - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2, /area/desert_dam/building/mining/workshop) "cSZ" = ( /obj/structure/flora/grass/tallgrass/desert/corner{ dir = 5 }, /turf/open/desert/dirt, -/area/desert_dam/exterior/valley/valley_northwest) +/area/desert_dam/exterior/landing_pad_one) "cTa" = ( /obj/structure/machinery/door/poddoor/almayer/locked{ dir = 4; @@ -46884,15 +35879,11 @@ }, /obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached4" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached4, /area/desert_dam/exterior/valley/valley_crashsite) "cTg" = ( /obj/structure/machinery/light, -/turf/open/floor/prison{ - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2, /area/desert_dam/building/mining/workshop) "cTh" = ( /obj/structure/flora/grass/desert/heavygrass_10, @@ -46908,44 +35899,27 @@ name = "\improper Restroom" }, /obj/structure/disposalpipe/segment, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/desert_dam/building/hydroponics/hydroponics_breakroom) "cTk" = ( /obj/structure/machinery/computer/arcade, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/hydroponics/hydroponics_breakroom) "cTl" = ( /obj/structure/machinery/vending/cola, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/hydroponics/hydroponics_breakroom) "cTm" = ( /obj/structure/machinery/vending/coffee, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/hydroponics/hydroponics_breakroom) "cTn" = ( /obj/structure/machinery/vending/snack, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/hydroponics/hydroponics_breakroom) "cTo" = ( /obj/structure/machinery/vending/cigarette/colony, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/hydroponics/hydroponics_breakroom) "cTp" = ( /obj/structure/flora/bush/desert/cactus/multiple{ @@ -46955,26 +35929,19 @@ /area/desert_dam/exterior/valley/valley_civilian) "cTq" = ( /obj/structure/fence, -/turf/open/desert/dirt{ - dir = 8; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/west, /area/desert_dam/exterior/valley/valley_civilian) "cTr" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/sand_overlay/sand1{ dir = 1 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached4" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached4, /area/desert_dam/exterior/valley/bar_valley_dam) "cTs" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/sand_overlay/sand1, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached12" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached12, /area/desert_dam/exterior/valley/bar_valley_dam) "cTu" = ( /obj/structure/desertdam/decals/road_edge, @@ -46985,42 +35952,28 @@ /area/desert_dam/exterior/valley/valley_cargo) "cTv" = ( /obj/structure/surface/table, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/prison/darkyellowcorners2/west, /area/desert_dam/building/mining/workshop) "cTw" = ( /obj/structure/bed/chair, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/mining/workshop) "cTA" = ( /obj/structure/surface/table, /obj/effect/spawner/random/tool, -/turf/open/floor/prison{ - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2, /area/desert_dam/building/mining/workshop) "cTB" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 8 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached18" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached18, /area/desert_dam/exterior/valley/valley_hydro) "cTC" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached18" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached18, /area/desert_dam/exterior/valley/valley_cargo) "cTD" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached4" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached4, /area/desert_dam/exterior/valley/valley_cargo) "cTE" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, @@ -47030,36 +35983,26 @@ /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 1 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached18" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached18, /area/desert_dam/exterior/valley/valley_hydro) "cTG" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached1" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached1, /area/desert_dam/exterior/valley/valley_cargo) "cTH" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 1 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached1" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached1, /area/desert_dam/exterior/valley/bar_valley_dam) "cTI" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached16" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached16, /area/desert_dam/exterior/valley/valley_hydro) "cTJ" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 8 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_cargo) "cTL" = ( /obj/structure/surface/table, @@ -47067,10 +36010,7 @@ dir = 1 }, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/hydroponics/hydroponics_breakroom) "cTM" = ( /obj/structure/machinery/power/apc{ @@ -47078,78 +36018,51 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/hydroponics/hydroponics_breakroom) "cTN" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/hydroponics/hydroponics_breakroom) "cTO" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/hydroponics/hydroponics_breakroom) "cTP" = ( /obj/structure/machinery/atm{ name = "Weyland-Yutani Automatic Teller Machine"; pixel_y = 30 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/hydroponics/hydroponics_breakroom) "cTQ" = ( /obj/structure/fence, -/turf/open/desert/dirt{ - dir = 10; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/southwest, /area/desert_dam/exterior/valley/valley_civilian) "cTR" = ( /obj/structure/surface/table, /obj/item/paper_bin, /obj/item/tool/pen, -/turf/open/floor/prison{ - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2, /area/desert_dam/building/mining/workshop) "cTS" = ( /obj/structure/surface/table, -/turf/open/floor/prison{ - dir = 6; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/southeast, /area/desert_dam/building/mining/workshop) "cTU" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 4 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/south_valley_dam) "cTZ" = ( /obj/structure/surface/table, /obj/item/paper_bin, /obj/item/tool/pen, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/southwest, /area/desert_dam/building/mining/workshop) "cUa" = ( /obj/structure/surface/table, -/turf/open/floor/prison{ - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2, /area/desert_dam/building/mining/workshop) "cUb" = ( /obj/structure/disposalpipe/segment{ @@ -47159,45 +36072,31 @@ /turf/open/asphalt, /area/desert_dam/exterior/valley/valley_civilian) "cUc" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached18" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached18, /area/desert_dam/exterior/valley/valley_civilian) "cUd" = ( /obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/prison{ - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2, /area/desert_dam/building/mining/workshop) "cUf" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 10 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_cargo) "cUg" = ( /obj/effect/decal/sand_overlay/sand1, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_cargo) "cUh" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached3" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached3, /area/desert_dam/exterior/valley/valley_cargo) "cUi" = ( /obj/effect/decal/sand_overlay/sand1/corner1, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_hydro) "cUj" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached13" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached13, /area/desert_dam/exterior/valley/valley_hydro) "cUk" = ( /obj/structure/desertdam/decals/road_edge{ @@ -47222,17 +36121,11 @@ /area/desert_dam/exterior/valley/valley_cargo) "cUs" = ( /obj/effect/landmark/survivor_spawner, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/hydroponics/hydroponics_breakroom) "cUv" = ( /obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/prison{ - dir = 6; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/southeast, /area/desert_dam/building/mining/workshop) "cUy" = ( /obj/structure/desertdam/decals/road_edge{ @@ -47248,14 +36141,10 @@ /turf/open/asphalt, /area/desert_dam/building/warehouse/loading) "cUA" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached14" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached14, /area/desert_dam/exterior/valley/valley_cargo) "cUB" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached15" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached15, /area/desert_dam/exterior/valley/valley_cargo) "cUD" = ( /obj/effect/decal/warning_stripes{ @@ -47273,50 +36162,34 @@ dir = 4 }, /obj/structure/machinery/light, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/hydroponics/hydroponics_breakroom) "cUF" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/hydroponics/hydroponics_breakroom) "cUG" = ( /obj/structure/disposalpipe/junction, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/hydroponics/hydroponics_breakroom) "cUH" = ( /obj/structure/bed/chair/office/light, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/hydroponics/hydroponics_breakroom) "cUI" = ( /obj/structure/platform{ dir = 8 }, -/turf/open/desert/dirt{ - icon_state = "dirt2" - }, +/turf/open/desert/dirt/dirt2, /area/desert_dam/exterior/valley/valley_hydro) "cUJ" = ( /obj/structure/platform{ dir = 1 }, /obj/effect/blocker/toxic_water/Group_1, -/turf/open/desert/desert_shore/shore_corner2{ - dir = 8 - }, +/turf/open/desert/desert_shore/shore_corner2/west, /area/desert_dam/exterior/river/riverside_south) "cUK" = ( /obj/structure/flora/bush/desert/cactus/multiple{ @@ -47328,9 +36201,7 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 9 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_civilian) "cUP" = ( /obj/structure/desertdam/decals/road_stop{ @@ -47374,98 +36245,64 @@ /turf/open/asphalt/cement, /area/desert_dam/interior/dam_interior/west_tunnel) "cUY" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/north, /area/desert_dam/building/warehouse/warehouse) "cUZ" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 1; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/north, /area/desert_dam/building/warehouse/warehouse) "cVa" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/liquid_fuel, -/turf/open/floor/prison{ - dir = 1; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/north, /area/desert_dam/building/warehouse/warehouse) "cVh" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/north, /area/desert_dam/building/warehouse/warehouse) "cVi" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/north, /area/desert_dam/building/warehouse/loading) "cVo" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 1; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/north, /area/desert_dam/building/warehouse/loading) "cVq" = ( /obj/structure/machinery/light, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/hydroponics/hydroponics_breakroom) "cVr" = ( /obj/structure/bed/chair/office/light{ dir = 4 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/hydroponics/hydroponics_breakroom) "cVs" = ( /obj/structure/bed/chair/office/light{ dir = 8 }, /obj/structure/machinery/light, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/hydroponics/hydroponics_breakroom) "cVu" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached2" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached2, /area/desert_dam/exterior/valley/valley_civilian) "cVv" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/warehouse/loading) "cVz" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached12" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached12, /area/desert_dam/exterior/valley/valley_civilian) "cVA" = ( /obj/structure/desertdam/decals/road_edge{ @@ -47483,86 +36320,56 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/north, /area/desert_dam/building/warehouse/loading) "cVH" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/warehouse/warehouse) "cVI" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/warehouse/warehouse) "cVJ" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/warehouse/warehouse) "cVK" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/warehouse/warehouse) "cVL" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/prison/darkyellowcorners2/east, /area/desert_dam/building/mining/workshop) "cVM" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached4" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached4, /area/desert_dam/exterior/valley/valley_civilian) "cVN" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/warehouse/loading) "cVO" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/warehouse/loading) "cVP" = ( -/turf/open/floor/prison{ - icon_state = "darkbrowncorners2" - }, +/turf/open/floor/prison/darkbrowncorners2, /area/desert_dam/building/warehouse/loading) "cVS" = ( /obj/structure/disposalpipe/segment, /turf/open/asphalt, /area/desert_dam/exterior/valley/valley_cargo) "cVU" = ( -/turf/open/floor/prison{ - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2, /area/desert_dam/building/warehouse/loading) "cVV" = ( /obj/structure/window/framed/colony/reinforced, @@ -47573,17 +36380,13 @@ dir = 1 }, /obj/effect/blocker/toxic_water/Group_1, -/turf/open/desert/desert_shore/desert_shore1{ - dir = 1 - }, +/turf/open/desert/desert_shore/desert_shore1/north, /area/desert_dam/exterior/river/riverside_south) "cWa" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached3" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached3, /area/desert_dam/exterior/valley/valley_civilian) "cWb" = ( /obj/structure/desertdam/decals/road_edge{ @@ -47610,9 +36413,7 @@ /area/desert_dam/exterior/valley/valley_civilian) "cWj" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2, /area/desert_dam/building/warehouse/loading) "cWk" = ( /obj/structure/window/framed/colony/reinforced, @@ -47623,27 +36424,18 @@ dir = 2; name = "\improper Loading Bay" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/warehouse/warehouse) "cWo" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/liquid_fuel, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/warehouse/warehouse) "cWp" = ( /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/desert_dam/building/cafeteria/cafeteria) "cWq" = ( /obj/effect/decal/sand_overlay/sand1, @@ -47655,15 +36447,11 @@ dir = 8 }, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached3" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached3, /area/desert_dam/exterior/valley/valley_civilian) "cWv" = ( /obj/effect/decal/sand_overlay/sand1/corner1, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached18" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached18, /area/desert_dam/exterior/valley/valley_civilian) "cWw" = ( /obj/effect/decal/warning_stripes{ @@ -47673,118 +36461,81 @@ /turf/open/asphalt, /area/desert_dam/exterior/valley/bar_valley_dam) "cWx" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached2" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached2, /area/desert_dam/exterior/valley/valley_cargo) "cWy" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached9" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached9, /area/desert_dam/exterior/valley/valley_hydro) "cWA" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 4 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_cargo) "cWB" = ( /obj/structure/disposalpipe/segment, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached2" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached2, /area/desert_dam/exterior/valley/valley_hydro) "cWC" = ( /obj/structure/platform{ dir = 1 }, /obj/effect/blocker/toxic_water/Group_1, -/turf/open/desert/desert_shore/shore_edge1{ - dir = 4 - }, +/turf/open/desert/desert_shore/shore_edge1/east, /area/desert_dam/exterior/river/riverside_south) "cWD" = ( /obj/structure/platform_decoration{ dir = 1 }, -/turf/open/desert/dirt{ - icon_state = "dirt2" - }, +/turf/open/desert/dirt/dirt2, /area/desert_dam/exterior/valley/valley_hydro) "cWE" = ( /obj/structure/platform_decoration, -/turf/open/desert/dirt{ - icon_state = "dirt2" - }, +/turf/open/desert/dirt/dirt2, /area/desert_dam/exterior/valley/valley_hydro) "cWF" = ( /obj/structure/platform, -/turf/open/desert/dirt{ - icon_state = "dirt2" - }, +/turf/open/desert/dirt/dirt2, /area/desert_dam/exterior/valley/valley_hydro) "cWH" = ( /obj/structure/fence, -/turf/open/desert/dirt{ - dir = 1; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/north, /area/desert_dam/exterior/valley/valley_civilian) "cWN" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 1 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached4" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached4, /area/desert_dam/exterior/valley/valley_civilian) "cWP" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 5 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached9" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached9, /area/desert_dam/exterior/valley/valley_civilian) "cWV" = ( /obj/effect/decal/sand_overlay/sand1, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached4" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached4, /area/desert_dam/exterior/valley/valley_civilian) "cWW" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/warehouse/loading) "cWX" = ( /obj/effect/decal/cleanable/liquid_fuel, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/warehouse/loading) "cXa" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/east, /area/desert_dam/building/warehouse/loading) "cXd" = ( /obj/structure/surface/table, /obj/effect/spawner/random/toolbox, /obj/item/clothing/head/welding, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/warehouse/loading) "cXh" = ( /obj/structure/desertdam/decals/road_edge{ @@ -47800,25 +36551,19 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 5 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_cargo) "cXl" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 9 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_cargo) "cXm" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 1 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_cargo) "cXn" = ( /obj/structure/stairs{ @@ -47827,9 +36572,7 @@ /obj/structure/platform{ dir = 8 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_hydro) "cXo" = ( /obj/structure/stairs{ @@ -47838,15 +36581,11 @@ /obj/structure/platform{ dir = 4 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_hydro) "cXp" = ( /obj/effect/blocker/toxic_water/Group_1, -/turf/open/desert/desert_shore/desert_shore1{ - dir = 1 - }, +/turf/open/desert/desert_shore/desert_shore1/north, /area/desert_dam/exterior/river/riverside_south) "cXt" = ( /obj/effect/decal/warning_stripes{ @@ -47881,18 +36620,13 @@ }, /obj/effect/decal/cleanable/dirt, /turf/open/asphalt, -/area/desert_dam/exterior/valley/valley_cargo) +/area/desert_dam/exterior/landing_pad_two) "cXD" = ( -/turf/open/floor/prison{ - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2, /area/desert_dam/building/warehouse/warehouse) "cXI" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkbrowncorners2" - }, +/turf/open/floor/prison/darkbrowncorners2/west, /area/desert_dam/building/warehouse/warehouse) "cXK" = ( /obj/effect/decal/cleanable/dirt, @@ -47902,44 +36636,32 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrowncorners2" - }, +/turf/open/floor/prison/darkbrowncorners2, /area/desert_dam/building/warehouse/warehouse) "cXM" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2, /area/desert_dam/building/warehouse/warehouse) "cXN" = ( /obj/structure/machinery/light, -/turf/open/floor/prison{ - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2, /area/desert_dam/building/warehouse/warehouse) "cYe" = ( /obj/structure/platform{ dir = 8 }, /obj/structure/platform, -/turf/open/desert/dirt{ - icon_state = "dirt2" - }, +/turf/open/desert/dirt/dirt2, /area/desert_dam/exterior/river/riverside_south) "cYf" = ( /obj/effect/blocker/toxic_water/Group_1, -/turf/open/desert/desert_shore/shore_edge1{ - dir = 4 - }, +/turf/open/desert/desert_shore/shore_edge1/east, /area/desert_dam/exterior/river/riverside_south) "cYg" = ( /obj/effect/blocker/toxic_water/Group_1, -/turf/open/gm/river/desert/shallow_edge{ - dir = 1 - }, +/turf/open/gm/river/desert/shallow_edge/north, /area/desert_dam/exterior/river/riverside_south) "cYh" = ( /obj/effect/blocker/toxic_water/Group_1, @@ -47959,24 +36681,17 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached3" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached3, /area/desert_dam/exterior/valley/valley_cargo) "cYp" = ( /obj/structure/disposalpipe/segment{ dir = 2; icon_state = "pipe-c" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/engine_east_wing) "cYs" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached19" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached19, /area/desert_dam/exterior/valley/valley_civilian) "cYu" = ( /obj/effect/decal/sand_overlay/sand1{ @@ -48008,41 +36723,28 @@ /turf/open/asphalt/cement_sunbleached, /area/desert_dam/exterior/valley/valley_wilderness) "cYy" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkbrowncorners2" - }, +/turf/open/floor/prison/darkbrowncorners2/west, /area/desert_dam/building/warehouse/loading) "cYz" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2, /area/desert_dam/building/warehouse/loading) "cYA" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkbrowncorners2" - }, +/turf/open/floor/prison/darkbrowncorners2/west, /area/desert_dam/building/warehouse/loading) "cYB" = ( /obj/structure/surface/table, /obj/effect/spawner/random/toolbox, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/warehouse/loading) "cYC" = ( /obj/effect/decal/warning_stripes{ icon_state = "N" }, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/warehouse/warehouse) "cYF" = ( /obj/structure/machinery/light{ @@ -48055,19 +36757,14 @@ }, /obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greencorner" - }, +/turf/open/floor/prison/greencorner/east, /area/desert_dam/building/dorms/hallway_northwing) "cYG" = ( /obj/effect/decal/warning_stripes{ icon_state = "N" }, /obj/effect/landmark/good_item, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/warehouse/warehouse) "cYH" = ( /obj/effect/decal/warning_stripes{ @@ -48077,16 +36774,11 @@ icon_state = "E" }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/warehouse/warehouse) "cYI" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/west, /area/desert_dam/building/warehouse/warehouse) "cYJ" = ( /obj/effect/decal/cleanable/dirt, @@ -48095,16 +36787,10 @@ /area/desert_dam/building/warehouse/warehouse) "cYK" = ( /obj/structure/surface/table, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/desert_dam/building/cafeteria/cafeteria) "cYL" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/east, /area/desert_dam/building/warehouse/warehouse) "cYN" = ( /obj/structure/disposalpipe/segment{ @@ -48130,35 +36816,27 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached3" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached3, /area/desert_dam/exterior/valley/valley_hydro) "cYQ" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached1" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached1, /area/desert_dam/exterior/valley/valley_hydro) "cYR" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, /obj/effect/decal/sand_overlay/sand1/corner1, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_hydro) "cYS" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, /obj/effect/decal/sand_overlay/sand1, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_hydro) "cYT" = ( /obj/structure/disposalpipe/segment{ @@ -48167,9 +36845,7 @@ /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 8 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_hydro) "cYV" = ( /obj/structure/disposalpipe/segment{ @@ -48183,31 +36859,23 @@ icon_state = "pipe-c" }, /obj/effect/decal/sand_overlay/sand1/corner1, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached12" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached12, /area/desert_dam/exterior/valley/valley_hydro) "cYY" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 8 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached12" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached12, /area/desert_dam/exterior/valley/valley_cargo) "cYZ" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached12" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached12, /area/desert_dam/exterior/valley/valley_cargo) "cZb" = ( /turf/open/asphalt/cement_sunbleached, /area/desert_dam/exterior/valley/valley_cargo) "cZc" = ( /obj/structure/largecrate/random, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_hydro) "cZd" = ( /obj/structure/platform_decoration{ @@ -48218,15 +36886,11 @@ /area/desert_dam/exterior/river/riverside_south) "cZe" = ( /obj/structure/largecrate/random/barrel/blue, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_hydro) "cZf" = ( /obj/structure/machinery/cm_vending/sorted/tech/comp_storage, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/dam_interior/engine_west_wing) "cZl" = ( /obj/effect/decal/warning_stripes{ @@ -48236,9 +36900,7 @@ icon_state = "W" }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/warehouse/warehouse) "cZn" = ( /obj/effect/decal/sand_overlay/sand1, @@ -48268,18 +36930,13 @@ id = "dam_shutter_hangar"; name = "\improper Hangar Lock" }, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/dam_interior/hanger) "cZs" = ( /obj/structure/disposalpipe/junction{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/engine_east_wing) "cZt" = ( /obj/effect/decal/sand_overlay/sand1/corner1, @@ -48290,10 +36947,7 @@ /turf/open/floor/plating, /area/desert_dam/building/cafeteria/cafeteria) "cZv" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/west, /area/desert_dam/building/warehouse/loading) "cZw" = ( /obj/structure/flora/grass/tallgrass/desert/corner{ @@ -48302,25 +36956,16 @@ /turf/open/desert/dirt, /area/desert_dam/exterior/valley/valley_hydro) "cZx" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/east, /area/desert_dam/building/warehouse/loading) "cZy" = ( /obj/effect/landmark/survivor_spawner, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/warehouse/loading) "cZz" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/west, /area/desert_dam/building/warehouse/loading) "cZB" = ( /turf/closed/wall/hangar{ @@ -48341,9 +36986,7 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 8 }, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/desert_dam/exterior/valley/valley_wilderness) "cZF" = ( /obj/structure/prop/dam/wide_boulder/boulder1, @@ -48354,16 +36997,11 @@ /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 8 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached9" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached9, /area/desert_dam/exterior/valley/valley_medical) "cZK" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/medical/morgue) "cZP" = ( /obj/effect/decal/cleanable/dirt, @@ -48381,16 +37019,12 @@ /area/desert_dam/exterior/valley/valley_civilian) "cZR" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached13" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached13, /area/desert_dam/exterior/valley/valley_civilian) "cZS" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached13" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached13, /area/desert_dam/exterior/valley/valley_civilian) "cZV" = ( /obj/effect/decal/cleanable/blood, @@ -48400,14 +37034,10 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 8 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached15" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached15, /area/desert_dam/exterior/telecomm/lz2_storage) "dak" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached20" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached20, /area/desert_dam/exterior/valley/valley_civilian) "dam" = ( /obj/structure/disposalpipe/segment{ @@ -48434,7 +37064,7 @@ icon_state = "W" }, /turf/open/floor/plating, -/area/desert_dam/exterior/valley/valley_cargo) +/area/desert_dam/exterior/landing_pad_two) "dax" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 @@ -48446,10 +37076,7 @@ /turf/open/floor/prison, /area/desert_dam/building/dorms/hallway_northwing) "daB" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/desert_dam/interior/dam_interior/engine_west_wing) "daD" = ( /obj/structure/desertdam/decals/road_edge{ @@ -48462,38 +37089,23 @@ /area/desert_dam/building/hydroponics/hydroponics) "daG" = ( /obj/structure/machinery/portable_atmospherics/hydroponics, -/turf/open/floor/prison{ - dir = 10; - icon_state = "yellowfull" - }, +/turf/open/floor/prison/yellowfull/southwest, /area/desert_dam/building/hydroponics/hydroponics) "daH" = ( /obj/structure/machinery/portable_atmospherics/hydroponics, /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "yellowfull" - }, +/turf/open/floor/prison/yellowfull/southwest, /area/desert_dam/building/hydroponics/hydroponics) "daI" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/west, /area/desert_dam/building/hydroponics/hydroponics) "daK" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/hydroponics/hydroponics) "daL" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/east, /area/desert_dam/building/hydroponics/hydroponics) "daM" = ( /obj/item/reagent_container/glass/bucket/mopbucket, @@ -48509,15 +37121,11 @@ /area/desert_dam/building/cafeteria/cafeteria) "daP" = ( /obj/structure/machinery/gibber, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/desert_dam/building/cafeteria/cold_room) "daQ" = ( /obj/structure/closet/secure_closet/freezer/fridge, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/desert_dam/building/cafeteria/cold_room) "daT" = ( /obj/structure/desertdam/decals/road_edge, @@ -48529,9 +37137,6 @@ }, /turf/open/asphalt, /area/desert_dam/exterior/valley/valley_civilian) -"daU" = ( -/turf/open/floor/plating, -/area/desert_dam/exterior/valley/valley_cargo) "daX" = ( /obj/structure/disposalpipe/segment{ dir = 8; @@ -48545,10 +37150,7 @@ /area/desert_dam/building/dorms/hallway_northwing) "daY" = ( /obj/structure/machinery/light, -/turf/open/floor/prison{ - dir = 6; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/southeast, /area/desert_dam/interior/dam_interior/engine_west_wing) "dba" = ( /obj/effect/decal/cleanable/blood, @@ -48559,105 +37161,70 @@ id = "cargo_landing" }, /turf/open/floor/plating, -/area/desert_dam/exterior/valley/valley_cargo) +/area/desert_dam/exterior/landing_pad_two) "dbd" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/warehouse/warehouse) "dbe" = ( /obj/item/stool, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/warehouse/warehouse) "dbf" = ( /obj/structure/machinery/conveyor_switch{ id = "cargo_storage" }, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/warehouse/warehouse) "dbh" = ( /obj/effect/decal/warning_stripes{ icon_state = "E" }, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/warehouse/warehouse) "dbi" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/west, /area/desert_dam/building/warehouse/warehouse) "dbj" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/east, /area/desert_dam/building/warehouse/warehouse) "dbk" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/warehouse/warehouse) "dbm" = ( /obj/structure/largecrate, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/warehouse/warehouse) "dbn" = ( /obj/structure/machinery/portable_atmospherics/hydroponics, -/turf/open/floor/prison{ - icon_state = "yellowfull" - }, +/turf/open/floor/prison/yellowfull, /area/desert_dam/building/hydroponics/hydroponics) "dbo" = ( /obj/structure/window/framed/colony, /turf/open/floor/plating, /area/desert_dam/building/hydroponics/hydroponics) "dbp" = ( -/turf/open/floor/prison{ - dir = 9; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/northwest, /area/desert_dam/building/hydroponics/hydroponics) "dbq" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/north, /area/desert_dam/building/hydroponics/hydroponics) "dbr" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "yellowcorner" - }, +/turf/open/floor/prison/yellowcorner/east, /area/desert_dam/building/hydroponics/hydroponics) "dbs" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "yellowcorner" - }, +/turf/open/floor/prison/yellowcorner/north, /area/desert_dam/building/hydroponics/hydroponics) "dbt" = ( -/turf/open/floor/prison{ - dir = 5; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/northeast, /area/desert_dam/building/hydroponics/hydroponics) "dbu" = ( /obj/structure/window/framed/colony/reinforced, @@ -48674,22 +37241,16 @@ /area/desert_dam/building/cafeteria/backroom) "dby" = ( /obj/structure/closet/secure_closet/freezer/fridge, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/building/cafeteria/cafeteria) "dbz" = ( /obj/structure/machinery/vending/dinnerware, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/building/cafeteria/cafeteria) "dbA" = ( /obj/structure/surface/table/reinforced, /obj/item/reagent_container/food/snacks/bigbiteburger, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/building/cafeteria/cafeteria) "dbB" = ( /obj/structure/surface/table/reinforced, @@ -48697,9 +37258,7 @@ pixel_y = 30 }, /obj/item/tool/kitchen/knife/butcher, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/building/cafeteria/cafeteria) "dbC" = ( /obj/structure/machinery/conveyor_switch{ @@ -48708,22 +37267,16 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/warehouse/warehouse) "dbD" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/reagentgrinder, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/building/cafeteria/cafeteria) "dbE" = ( /obj/structure/machinery/chem_master/condimaster, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/building/cafeteria/cafeteria) "dbF" = ( /obj/structure/machinery/power/apc{ @@ -48733,16 +37286,12 @@ }, /obj/structure/machinery/microwave, /obj/structure/surface/table/reinforced, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/building/cafeteria/cafeteria) "dbG" = ( /obj/structure/machinery/microwave, /obj/structure/surface/table/reinforced, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/building/cafeteria/cafeteria) "dbH" = ( /obj/structure/surface/table/reinforced, @@ -48750,9 +37299,7 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/building/cafeteria/cafeteria) "dbI" = ( /obj/structure/machinery/conveyor_switch{ @@ -48765,9 +37312,7 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/building/cafeteria/cafeteria) "dbK" = ( /turf/closed/wall, @@ -48800,28 +37345,20 @@ /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/desert_dam/building/cafeteria/cold_room) "dbP" = ( -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/desert_dam/building/cafeteria/cold_room) "dbQ" = ( /obj/structure/disposalpipe/segment, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached4" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached4, /area/desert_dam/exterior/valley/valley_civilian) "dbR" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 8 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached1" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached1, /area/desert_dam/exterior/valley/valley_civilian) "dbT" = ( /obj/item/stool, @@ -48851,67 +37388,44 @@ /area/desert_dam/exterior/valley/valley_cargo) "dca" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe, /area/desert_dam/building/warehouse/loading) "dcb" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrowncorners2" - }, +/turf/open/floor/prison/darkbrowncorners2/north, /area/desert_dam/building/warehouse/loading) "dcc" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/north, /area/desert_dam/building/warehouse/loading) "dcf" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/north, /area/desert_dam/building/hydroponics/hydroponics) "dcg" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/north, /area/desert_dam/building/hydroponics/hydroponics) "dch" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "yellowcorner" - }, +/turf/open/floor/prison/yellowcorner/east, /area/desert_dam/building/hydroponics/hydroponics) "dci" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "yellowcorner" - }, +/turf/open/floor/prison/yellowcorner/north, /area/desert_dam/building/hydroponics/hydroponics) "dcj" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/north, /area/desert_dam/building/hydroponics/hydroponics) "dck" = ( /turf/closed/wall, @@ -48921,17 +37435,11 @@ /turf/open/floor/plating, /area/desert_dam/building/hydroponics/hydroponics_storage) "dcn" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/hydroponics/hydroponics_storage) "dco" = ( /obj/structure/fence, -/turf/open/desert/dirt{ - dir = 4; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/east, /area/desert_dam/exterior/valley/valley_civilian) "dcp" = ( /obj/structure/machinery/light{ @@ -48948,14 +37456,10 @@ /area/desert_dam/building/cafeteria/backroom) "dcs" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/desert_dam/building/cafeteria/backroom) "dcw" = ( -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/building/cafeteria/cafeteria) "dcx" = ( /obj/structure/machinery/light{ @@ -48967,17 +37471,13 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/desert_dam/building/cafeteria/cold_room) "dcz" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/desert_dam/building/cafeteria/cold_room) "dcD" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ @@ -48992,10 +37492,7 @@ start_charge = 0 }, /obj/effect/spawner/random/toolbox, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitered" - }, +/turf/open/floor/prison/whitered/east, /area/desert_dam/building/medical/primary_storage) "dcM" = ( /obj/structure/disposalpipe/segment, @@ -49041,17 +37538,11 @@ dir = 1 }, /obj/effect/landmark/objective_landmark/far, -/turf/open/floor{ - dir = 1; - icon_state = "vault" - }, +/turf/open/floor/vault2/north, /area/desert_dam/building/hydroponics/hydroponics_storage) "dcW" = ( /obj/structure/closet/crate/hydroponics/prespawned, -/turf/open/floor{ - dir = 1; - icon_state = "vault" - }, +/turf/open/floor/vault2/north, /area/desert_dam/building/hydroponics/hydroponics_storage) "dcY" = ( /turf/open/floor/prison, @@ -49069,14 +37560,10 @@ /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper Loading" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/desert_dam/building/hydroponics/hydroponics_loading) "ddd" = ( -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/desert_dam/building/hydroponics/hydroponics_loading) "dde" = ( /obj/structure/window/framed/colony/reinforced, @@ -49087,17 +37574,13 @@ dir = 4; icon_state = "pipe-c" }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/building/cafeteria/cafeteria) "ddi" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/building/cafeteria/cafeteria) "ddl" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -49106,9 +37589,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/building/cafeteria/cafeteria) "ddm" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -49158,25 +37639,19 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/desert_dam/building/cafeteria/cold_room) "ddr" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/desert_dam/building/cafeteria/cold_room) "dds" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/desert_dam/building/cafeteria/cold_room) "ddu" = ( /obj/structure/machinery/power/apc{ @@ -49184,9 +37659,7 @@ pixel_x = 28; start_charge = 0 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/desert_dam/building/cafeteria/cold_room) "ddv" = ( /obj/effect/decal/sand_overlay/sand1/corner1, @@ -49194,9 +37667,7 @@ /area/desert_dam/exterior/valley/valley_civilian) "ddw" = ( /obj/effect/decal/sand_overlay/sand1, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached15" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached15, /area/desert_dam/exterior/valley/valley_civilian) "ddx" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ @@ -49264,16 +37735,11 @@ dir = 2; name = "\improper Hydroponics" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/hydroponics/hydroponics) "ddP" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/interior/dam_interior/west_tunnel) "ddQ" = ( /obj/structure/machinery/disposal, @@ -49324,15 +37790,10 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/desert_dam/building/hydroponics/hydroponics_loading) "ddY" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/desert_dam/building/hydroponics/hydroponics_loading) "ddZ" = ( /obj/structure/machinery/power/apc{ @@ -49365,15 +37826,11 @@ /area/desert_dam/building/cafeteria/backroom) "dee" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/building/cafeteria/cafeteria) "deg" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/building/cafeteria/cafeteria) "deh" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -49381,21 +37838,15 @@ /area/desert_dam/building/cafeteria/loading) "dej" = ( /obj/structure/kitchenspike, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/desert_dam/building/cafeteria/cold_room) "dek" = ( /obj/structure/closet/crate/freezer/rations, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/desert_dam/building/cafeteria/cold_room) "del" = ( /obj/structure/disposalpipe/segment, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached15" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached15, /area/desert_dam/exterior/valley/valley_civilian) "dem" = ( /obj/structure/disposalpipe/segment{ @@ -49426,18 +37877,12 @@ /area/desert_dam/building/warehouse/loading) "dep" = ( /obj/structure/largecrate/random, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/desert_dam/building/warehouse/loading) "deq" = ( /obj/structure/largecrate/random, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/desert_dam/building/warehouse/loading) "der" = ( /obj/effect/decal/warning_stripes{ @@ -49449,40 +37894,27 @@ /turf/open/asphalt, /area/desert_dam/exterior/valley/valley_civilian) "des" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "yellowcorner" - }, +/turf/open/floor/prison/yellowcorner/west, /area/desert_dam/building/hydroponics/hydroponics) "det" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/desert_dam/interior/dam_interior/west_tunnel) "deu" = ( -/turf/open/floor/prison{ - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow, /area/desert_dam/building/hydroponics/hydroponics) "dev" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/hydroponics/hydroponics) "dex" = ( /obj/structure/machinery/seed_extractor, /turf/open/floor/prison, /area/desert_dam/building/hydroponics/hydroponics) "dey" = ( -/turf/open/floor{ - dir = 1; - icon_state = "vault" - }, +/turf/open/floor/vault2/north, /area/desert_dam/building/hydroponics/hydroponics_storage) "dez" = ( /obj/structure/desertdam/decals/road_stop{ @@ -49491,13 +37923,10 @@ }, /obj/effect/landmark/railgun_camera_pos, /turf/open/asphalt, -/area/desert_dam/exterior/valley/valley_northwest) +/area/desert_dam/exterior/landing_pad_one) "deA" = ( /obj/structure/largecrate/random, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/desert_dam/building/hydroponics/hydroponics_loading) "deB" = ( /obj/structure/machinery/light{ @@ -49505,54 +37934,37 @@ }, /obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/building/cafeteria/cafeteria) "deC" = ( /obj/structure/machinery/vending/coffee, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/building/cafeteria/cafeteria) "deD" = ( /obj/structure/machinery/vending/snack, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/building/cafeteria/cafeteria) "deE" = ( /obj/structure/machinery/vending/cola, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/building/cafeteria/cafeteria) "deF" = ( /obj/structure/machinery/vending/cigarette/colony, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/building/cafeteria/cafeteria) "deG" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/building/cafeteria/cafeteria) "deH" = ( /obj/structure/surface/table/reinforced, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/building/cafeteria/cafeteria) "deI" = ( /obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/northwest, /area/desert_dam/building/substation/central) "deJ" = ( /obj/effect/decal/cleanable/dirt, @@ -49572,36 +37984,24 @@ /turf/open/asphalt, /area/desert_dam/exterior/valley/valley_civilian) "deP" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/desert_dam/building/warehouse/loading) "deQ" = ( /obj/structure/reagent_dispensers/watertank, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/desert_dam/building/warehouse/loading) "deR" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/west, /area/desert_dam/building/warehouse/loading) "deS" = ( /obj/effect/decal/cleanable/blood{ layer = 3 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/warehouse/loading) "deU" = ( /obj/effect/decal/warning_stripes{ @@ -49611,20 +38011,18 @@ icon_state = "S" }, /turf/open/floor/plating, -/area/desert_dam/exterior/valley/valley_cargo) +/area/desert_dam/exterior/landing_pad_two) "deV" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" }, /turf/open/floor/plating, -/area/desert_dam/exterior/valley/valley_cargo) +/area/desert_dam/exterior/landing_pad_two) "deW" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/warehouse/warehouse) "deX" = ( /obj/effect/decal/warning_stripes{ @@ -49634,17 +38032,12 @@ icon_state = "S" }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/warehouse/warehouse) "deY" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/liquid_fuel, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/west, /area/desert_dam/building/warehouse/warehouse) "deZ" = ( /obj/effect/decal/cleanable/dirt, @@ -49659,9 +38052,7 @@ /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/warehouse/warehouse) "dfb" = ( /obj/effect/decal/warning_stripes{ @@ -49684,43 +38075,27 @@ /turf/open/floor/prison, /area/desert_dam/building/hydroponics/hydroponics_storage) "dfh" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/desert_dam/building/hydroponics/hydroponics_storage) "dfi" = ( /obj/structure/largecrate/random, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/desert_dam/building/hydroponics/hydroponics_storage) "dfj" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/hydroponics/hydroponics_loading) "dfk" = ( /obj/structure/closet/crate/hydroponics/prespawned, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/desert_dam/building/hydroponics/hydroponics_loading) "dfm" = ( -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/desert_dam/building/cafeteria/cafeteria) "dfn" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/building/cafeteria/cafeteria) "dfo" = ( /obj/effect/decal/warning_stripes{ @@ -49733,34 +38108,24 @@ /area/desert_dam/building/warehouse/loading) "dfp" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/desert_dam/building/warehouse/loading) "dfq" = ( /obj/structure/disposalpipe/segment{ dir = 8; icon_state = "pipe-c" }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/building/cafeteria/cafeteria) "dfr" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/desert/dirt{ - dir = 1; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/north, /area/desert_dam/exterior/valley/valley_wilderness) "dfs" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/building/cafeteria/cafeteria) "dft" = ( /obj/structure/machinery/light{ @@ -49780,67 +38145,43 @@ /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached18" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached18, /area/desert_dam/exterior/valley/valley_civilian) "dfx" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 1 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached18" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached18, /area/desert_dam/exterior/valley/valley_civilian) "dfy" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ dir = 2; name = "\improper Loading Bay" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/warehouse/loading) "dfz" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/north, /area/desert_dam/building/warehouse/warehouse) "dfA" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkbrowncorners2" - }, +/turf/open/floor/prison/darkbrowncorners2/east, /area/desert_dam/building/warehouse/warehouse) "dfB" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkbrowncorners2" - }, +/turf/open/floor/prison/darkbrowncorners2/east, /area/desert_dam/building/warehouse/loading) "dfC" = ( /obj/structure/largecrate, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/desert_dam/building/warehouse/loading) "dfD" = ( /obj/structure/reagent_dispensers/watertank, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/desert_dam/building/warehouse/loading) "dfE" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrowncorners2" - }, +/turf/open/floor/prison/darkbrowncorners2, /area/desert_dam/building/warehouse/loading) "dfG" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony, @@ -49857,36 +38198,24 @@ "dfJ" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/liquid_fuel, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/warehouse/loading) "dfK" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/toolbox, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/warehouse/loading) "dfL" = ( /obj/structure/surface/rack, /obj/item/stack/sheet/metal, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/warehouse/loading) "dfN" = ( /obj/structure/machinery/light{ dir = 4 }, /obj/structure/surface/rack, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/warehouse/loading) "dfS" = ( /obj/effect/decal/cleanable/dirt, @@ -49914,33 +38243,23 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/building/cafeteria/cafeteria) "dgb" = ( /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/desert_dam/building/cafeteria/cafeteria) "dgc" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/desert_dam/building/cafeteria/cafeteria) "dgd" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/building/cafeteria/cafeteria) "dge" = ( /obj/effect/decal/warning_stripes{ @@ -49961,9 +38280,7 @@ /obj/structure/surface/rack, /obj/effect/spawner/random/toolbox, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/prison{ - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2, /area/desert_dam/building/warehouse/warehouse) "dgh" = ( /obj/structure/desertdam/decals/road_edge{ @@ -50014,33 +38331,21 @@ "dgr" = ( /obj/structure/reagent_dispensers/fueltank, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/desert_dam/building/warehouse/loading) "dgs" = ( /obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/desert_dam/building/warehouse/loading) "dgt" = ( /obj/structure/surface/rack, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/warehouse/loading) "dgu" = ( /obj/structure/surface/table, /obj/effect/spawner/random/toolbox, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/west, /area/desert_dam/building/warehouse/loading) "dgv" = ( /obj/effect/decal/warning_stripes{ @@ -50065,23 +38370,14 @@ /obj/structure/machinery/light, /obj/structure/surface/table, /obj/effect/spawner/random/toolbox, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/southwest, /area/desert_dam/building/warehouse/loading) "dgA" = ( -/turf/open/floor/prison{ - dir = 6; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/southeast, /area/desert_dam/building/warehouse/loading) "dgC" = ( /obj/structure/machinery/light, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/warehouse/loading) "dgD" = ( /obj/effect/decal/warning_stripes{ @@ -50090,10 +38386,7 @@ /turf/open/asphalt, /area/desert_dam/exterior/river/riverside_south) "dgE" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/southwest, /area/desert_dam/building/warehouse/loading) "dgF" = ( /turf/open/asphalt, @@ -50101,7 +38394,7 @@ "dgG" = ( /obj/structure/prop/dam/large_boulder/boulder2, /turf/open/desert/dirt, -/area/desert_dam/exterior/valley/valley_cargo) +/area/desert_dam/exterior/landing_pad_two) "dgH" = ( /obj/structure/disposalpipe/segment{ dir = 1; @@ -50123,26 +38416,19 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached4" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached4, /area/desert_dam/exterior/valley/valley_hydro) "dgK" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached9" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached9, /area/desert_dam/exterior/valley/valley_hydro) "dgL" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/hydroponics/hydroponics) "dgM" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -50191,46 +38477,31 @@ /obj/structure/platform{ dir = 4 }, -/turf/open/desert/dirt{ - icon_state = "dirt2" - }, +/turf/open/desert/dirt/dirt2, /area/desert_dam/exterior/valley/valley_civilian) "dgY" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/desert_dam/building/cafeteria/cafeteria) "dhc" = ( /obj/structure/toilet, /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/building/cafeteria/cafeteria) "dhd" = ( /obj/structure/machinery/door/airlock/almayer/generic{ dir = 2; name = "\improper Toilet Unit" }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/building/cafeteria/cafeteria) "dhe" = ( /obj/structure/largecrate/random, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/desert_dam/building/cafeteria/loading) "dhf" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/desert_dam/building/cafeteria/loading) "dhg" = ( /obj/effect/decal/warning_stripes{ @@ -50261,37 +38532,27 @@ "dhT" = ( /obj/effect/decal/sand_overlay/sand2, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/interior/dam_interior/central_tunnel) "dhU" = ( /obj/effect/decal/sand_overlay/sand2/corner2{ dir = 8 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/interior/dam_interior/central_tunnel) "dhX" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ dir = 2 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/hydroponics/hydroponics_storage) "dhZ" = ( /turf/open/asphalt, /area/desert_dam/building/hydroponics/hydroponics_loading) "dia" = ( /obj/effect/spawner/random/toolbox, -/turf/open/floor/prison{ - dir = 6; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/southeast, /area/desert_dam/building/medical/emergency_room) "dib" = ( /obj/effect/blocker/toxic_water/Group_2, @@ -50311,10 +38572,7 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 4 }, -/turf/open/floor/plating{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/plating/asteroidfloor/north, /area/desert_dam/exterior/valley/valley_crashsite) "dil" = ( /obj/structure/window/framed/hangar/reinforced, @@ -50338,42 +38596,31 @@ /area/desert_dam/building/substation/northwest) "diG" = ( /obj/structure/machinery/light, -/turf/open/floor/prison{ - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow, /area/desert_dam/building/hydroponics/hydroponics) "diH" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow, /area/desert_dam/building/hydroponics/hydroponics) "diI" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "yellowcorner" - }, +/turf/open/floor/prison/yellowcorner/west, /area/desert_dam/building/hydroponics/hydroponics) "diJ" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "yellowcorner" - }, +/turf/open/floor/prison/yellowcorner, /area/desert_dam/building/hydroponics/hydroponics) "diK" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow, /area/desert_dam/building/hydroponics/hydroponics) "diL" = ( /obj/effect/blocker/toxic_water/Group_2, @@ -50397,15 +38644,11 @@ dir = 4 }, /obj/effect/decal/sand_overlay/sand1/corner1, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_civilian) "diP" = ( /obj/effect/decal/sand_overlay/sand1/corner1, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached1" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached1, /area/desert_dam/exterior/valley/valley_civilian) "diR" = ( /obj/structure/desertdam/decals/road_edge{ @@ -50416,6 +38659,12 @@ }, /turf/open/asphalt, /area/desert_dam/exterior/valley/valley_civilian) +"dja" = ( +/obj/structure/flora/grass/tallgrass/desert/corner{ + dir = 8 + }, +/turf/open/desert/dirt, +/area/desert_dam/exterior/landing_pad_one) "djg" = ( /obj/item/paper_bin, /obj/item/tool/stamp, @@ -50441,23 +38690,15 @@ /turf/open/asphalt, /area/desert_dam/exterior/landing_pad_two) "djr" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/southwest, /area/desert_dam/building/hydroponics/hydroponics) "djs" = ( -/turf/open/floor/prison{ - dir = 6; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/southeast, /area/desert_dam/building/hydroponics/hydroponics) "djt" = ( /obj/structure/machinery/portable_atmospherics/hydroponics, /obj/structure/machinery/light, -/turf/open/floor/prison{ - icon_state = "yellowfull" - }, +/turf/open/floor/prison/yellowfull, /area/desert_dam/building/hydroponics/hydroponics) "dju" = ( /obj/structure/machinery/light, @@ -50465,9 +38706,7 @@ /area/desert_dam/building/hydroponics/hydroponics_loading) "djw" = ( /obj/effect/blocker/toxic_water/Group_1, -/turf/open/desert/desert_shore/desert_shore1{ - dir = 4 - }, +/turf/open/desert/desert_shore/desert_shore1/east, /area/desert_dam/exterior/river/riverside_south) "djx" = ( /obj/effect/blocker/toxic_water/Group_1, @@ -50478,9 +38717,7 @@ dir = 1 }, /obj/effect/blocker/toxic_water/Group_1, -/turf/open/desert/desert_shore/desert_shore1{ - dir = 8 - }, +/turf/open/desert/desert_shore/desert_shore1/west, /area/desert_dam/exterior/river/riverside_south) "djz" = ( /obj/structure/platform, @@ -50519,10 +38756,7 @@ dir = 1 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkbrown3" - }, +/turf/open/floor/prison/darkbrown3/northwest, /area/desert_dam/interior/dam_interior/disposals) "djZ" = ( /obj/structure/desertdam/decals/road_edge{ @@ -50536,9 +38770,7 @@ dir = 2; name = "\improper Loading" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/desert_dam/building/hydroponics/hydroponics_loading) "dkb" = ( /obj/structure/stairs{ @@ -50547,9 +38779,7 @@ /obj/structure/platform{ dir = 8 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached2" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached2, /area/desert_dam/exterior/valley/valley_hydro) "dkc" = ( /obj/structure/stairs{ @@ -50558,17 +38788,13 @@ /obj/structure/platform{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached9" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached9, /area/desert_dam/exterior/valley/valley_hydro) "dkd" = ( /obj/structure/machinery/door/airlock/almayer/generic{ name = "\improper Restroom" }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/building/cafeteria/cafeteria) "dke" = ( /obj/structure/disposalpipe/segment{ @@ -50599,17 +38825,13 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/desert_dam/building/cafeteria/loading) "dkk" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_civilian) "dkl" = ( /obj/structure/desertdam/decals/road_edge{ @@ -50652,34 +38874,23 @@ /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper Hydroponics" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/hydroponics/hydroponics) "dkH" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper Packaging" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/hydroponics/hydroponics_storage) "dkI" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached20" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached20, /area/desert_dam/exterior/valley/valley_hydro) "dkJ" = ( /obj/structure/reagent_dispensers/watertank, -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/northwest, /area/desert_dam/building/substation/southwest) "dkK" = ( /obj/structure/platform, @@ -50690,9 +38901,7 @@ /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper Breakroom" }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/building/cafeteria/loading) "dkM" = ( /obj/structure/disposalpipe/segment, @@ -50700,9 +38909,7 @@ /area/desert_dam/building/cafeteria/loading) "dkN" = ( /obj/effect/decal/sand_overlay/sand1, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached19" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached19, /area/desert_dam/exterior/valley/valley_civilian) "dkZ" = ( /obj/structure/prop/dam/large_boulder/boulder1, @@ -50727,19 +38934,14 @@ start_charge = 0 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrown3" - }, +/turf/open/floor/prison/darkbrown3/north, /area/desert_dam/interior/dam_interior/disposals) "dle" = ( /obj/structure/toilet, /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/building/cafeteria/loading) "dlu" = ( /obj/structure/reagent_dispensers/fueltank, @@ -50749,34 +38951,26 @@ /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached18" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached18, /area/desert_dam/exterior/valley/valley_hydro) "dly" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 1 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached15" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached15, /area/desert_dam/exterior/valley/valley_cargo) "dlz" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached19" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached19, /area/desert_dam/exterior/valley/valley_civilian) "dlA" = ( /obj/structure/sink{ dir = 4; pixel_x = 11 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/building/cafeteria/cafeteria) "dlB" = ( /obj/structure/window/framed/colony, @@ -50786,30 +38980,22 @@ /obj/structure/machinery/door/airlock/almayer/generic{ name = "\improper Toilet Unit" }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/building/cafeteria/loading) "dlD" = ( /obj/structure/sink{ dir = 1; pixel_y = -10 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/building/cafeteria/loading) "dlE" = ( /obj/structure/machinery/vending/cola, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/building/cafeteria/loading) "dlF" = ( /obj/structure/machinery/vending/cigarette/colony, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/building/cafeteria/loading) "dlJ" = ( /obj/effect/blocker/toxic_water/Group_2, @@ -50827,9 +39013,7 @@ /obj/structure/machinery/light, /obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/building/cafeteria/cafeteria) "dlP" = ( /obj/structure/platform{ @@ -50840,62 +39024,46 @@ dir = 4 }, /obj/structure/disposalpipe/segment, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/desert_dam/interior/dam_interior/central_tunnel) "dlQ" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/building/cafeteria/loading) "dlR" = ( -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/building/cafeteria/loading) "dlS" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/building/cafeteria/loading) "dlT" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/building/cafeteria/loading) "dme" = ( /obj/structure/disposalpipe/segment{ dir = 1; icon_state = "pipe-c" }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/building/cafeteria/loading) "dmf" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/building/cafeteria/loading) "dmg" = ( /obj/structure/disposalpipe/segment{ dir = 2; icon_state = "pipe-c" }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/building/cafeteria/loading) "dmz" = ( /obj/effect/blocker/toxic_water/Group_2, @@ -50927,40 +39095,30 @@ /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper Mess Hall" }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/building/cafeteria/cafeteria) "dmO" = ( /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/building/cafeteria/loading) "dmP" = ( /obj/structure/surface/table, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/building/cafeteria/loading) "dmQ" = ( /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/building/cafeteria/loading) "dmR" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/building/cafeteria/loading) "dny" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ @@ -50968,9 +39126,7 @@ }, /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/desert_dam/interior/dam_interior/break_room) "dnB" = ( /obj/structure/desertdam/decals/road_stop{ @@ -50992,14 +39148,10 @@ /turf/open/desert/desert_shore/shore_edge1, /area/desert_dam/exterior/river/riverside_south) "dnP" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached1" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached1, /area/desert_dam/exterior/valley/valley_medical) "dod" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached12" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached12, /area/desert_dam/exterior/valley/bar_valley_dam) "dof" = ( /obj/structure/reagent_dispensers/fueltank, @@ -51007,33 +39159,23 @@ /area/desert_dam/building/cafeteria/backroom) "doi" = ( /obj/effect/decal/sand_overlay/sand1/corner1, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached2" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached2, /area/desert_dam/exterior/valley/valley_hydro) "doj" = ( /obj/effect/decal/sand_overlay/sand1, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached18" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached18, /area/desert_dam/exterior/valley/valley_cargo) "dok" = ( /obj/effect/decal/sand_overlay/sand1/corner1, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached18" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached18, /area/desert_dam/exterior/valley/valley_hydro) "dol" = ( /obj/effect/decal/sand_overlay/sand1, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached16" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached16, /area/desert_dam/exterior/valley/bar_valley_dam) "dom" = ( /obj/effect/decal/sand_overlay/sand1/corner1, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached19" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached19, /area/desert_dam/exterior/valley/valley_civilian) "doE" = ( /turf/open/desert/dirt, @@ -51060,40 +39202,24 @@ /area/desert_dam/exterior/river/riverside_south) "doQ" = ( /obj/effect/decal/sand_overlay/sand1, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached14" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached14, /area/desert_dam/exterior/valley/valley_civilian) "dpc" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached13" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached13, /area/desert_dam/exterior/valley/valley_hydro) "dps" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached1" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached1, /area/desert_dam/exterior/valley/valley_civilian) "dpu" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk{ dir = 4 }, -/turf/open/floor{ - icon_state = "wood" - }, -/area/desert_dam/building/water_treatment_one/hallway) -"dpv" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/desert_dam/building/water_treatment_one/hallway) "dpw" = ( /obj/structure/disposalpipe/segment{ @@ -51116,9 +39242,7 @@ /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached15" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached15, /area/desert_dam/exterior/valley/valley_hydro) "dpB" = ( /turf/closed/wall/hangar{ @@ -51145,16 +39269,12 @@ "dpF" = ( /obj/structure/machinery/vending/dinnerware, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/building/cafeteria/cafeteria) "dpG" = ( /obj/structure/closet/secure_closet/freezer/fridge, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/building/cafeteria/cafeteria) "dpH" = ( /obj/effect/decal/warning_stripes{ @@ -51204,11 +39324,6 @@ "dqd" = ( /turf/open/desert/rock/deep, /area/desert_dam/interior/lab_northeast/east_lab_central_hallway) -"dqe" = ( -/turf/open/floor{ - icon_state = "wood" - }, -/area/desert_dam/building/water_treatment_one/hallway) "dqf" = ( /turf/open/floor/wood, /area/desert_dam/building/water_treatment_one/hallway) @@ -51236,23 +39351,16 @@ /turf/open/floor/prison, /area/desert_dam/building/water_treatment_one/control_room) "dqp" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/desert_dam/building/water_treatment_one/purification) "dqs" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/building/cafeteria/cafeteria) "dqt" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/building/cafeteria/cafeteria) "dqu" = ( /obj/structure/machinery/power/apc{ @@ -51261,9 +39369,7 @@ start_charge = 0 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/building/cafeteria/cafeteria) "dqJ" = ( /obj/effect/blocker/toxic_water/Group_1, @@ -51276,9 +39382,7 @@ /obj/structure/bed/chair/office/light{ dir = 8 }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/desert_dam/building/water_treatment_one/hallway) "dqR" = ( /obj/structure/flora/pottedplant, @@ -51311,16 +39415,11 @@ /obj/structure/bed/chair/office/dark{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/water_treatment_one/control_room) "drg" = ( /obj/structure/largecrate/random/barrel/white, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_hydro) "drh" = ( /obj/structure/flora/grass/tallgrass/desert/corner{ @@ -51333,9 +39432,7 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/building/cafeteria/cafeteria) "drL" = ( /obj/structure/flora/grass/tallgrass/desert/corner{ @@ -51358,10 +39455,7 @@ "drQ" = ( /obj/structure/surface/table, /obj/item/tool/stamp, -/turf/open/floor/prison{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/prison/red/north, /area/desert_dam/building/water_treatment_one/lobby) "drT" = ( /obj/structure/flora/grass/tallgrass/desert/corner{ @@ -51387,9 +39481,7 @@ }, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/building/cafeteria/cafeteria) "drZ" = ( /obj/structure/surface/table/reinforced, @@ -51406,26 +39498,18 @@ pixel_x = -6 }, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/desert_dam/building/water_treatment_one/lobby) "dsa" = ( /obj/structure/filingcabinet, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/prison/red/northeast, /area/desert_dam/building/water_treatment_one/lobby) "dsb" = ( /obj/structure/bed/chair/office/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/prison/red/west, /area/desert_dam/building/water_treatment_one/lobby) "dsc" = ( /obj/effect/landmark/survivor_spawner, @@ -51433,9 +39517,7 @@ /area/desert_dam/building/water_treatment_one/lobby) "dsf" = ( /obj/effect/blocker/toxic_water/Group_2, -/turf/open/gm/river/desert/shallow_corner{ - dir = 4 - }, +/turf/open/gm/river/desert/shallow_corner/east, /area/desert_dam/exterior/river/riverside_central_south) "dsg" = ( /obj/effect/blocker/toxic_water/Group_2, @@ -51443,33 +39525,24 @@ /area/desert_dam/exterior/river/riverside_central_south) "dsh" = ( /obj/effect/blocker/toxic_water/Group_2, -/turf/open/gm/river/desert/shallow_corner{ - dir = 8 - }, +/turf/open/gm/river/desert/shallow_corner/west, /area/desert_dam/exterior/river/riverside_central_south) "dsi" = ( /obj/structure/platform_decoration{ dir = 8 }, /obj/effect/blocker/toxic_water/Group_2, -/turf/open/gm/river/desert/shallow_edge{ - dir = 1 - }, +/turf/open/gm/river/desert/shallow_edge/north, /area/desert_dam/exterior/river/riverside_central_south) "dsk" = ( /obj/structure/platform{ dir = 1 }, /obj/effect/blocker/toxic_water/Group_2, -/turf/open/gm/river/desert/shallow_edge{ - dir = 1 - }, +/turf/open/gm/river/desert/shallow_edge/north, /area/desert_dam/exterior/river/riverside_central_south) "dsA" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/prison/red/west, /area/desert_dam/building/water_treatment_one/lobby) "dsE" = ( /obj/structure/flora/grass/tallgrass/desert/corner, @@ -51486,10 +39559,7 @@ /area/desert_dam/building/water_treatment_one/garage) "dsO" = ( /obj/structure/surface/rack, -/turf/open/floor/prison{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/prison/red/east, /area/desert_dam/building/water_treatment_one/lobby) "dsR" = ( /obj/structure/machinery/disposal, @@ -51497,36 +39567,26 @@ /turf/open/floor/prison, /area/desert_dam/building/water_treatment_one/control_room) "dsS" = ( -/turf/open/floor/filtrationside{ - dir = 9 - }, +/turf/open/floor/filtrationside/northwest, /area/desert_dam/exterior/valley/valley_hydro) "dsT" = ( -/turf/open/floor/filtrationside{ - dir = 1 - }, +/turf/open/floor/filtrationside/north, /area/desert_dam/exterior/valley/valley_hydro) "dsU" = ( /obj/structure/platform_decoration{ dir = 1 }, -/turf/open/desert/dirt{ - icon_state = "dirt2" - }, +/turf/open/desert/dirt/dirt2, /area/desert_dam/exterior/river/riverside_south) "dsV" = ( -/turf/open/floor/filtrationside{ - dir = 5 - }, +/turf/open/floor/filtrationside/northeast, /area/desert_dam/exterior/valley/valley_hydro) "dsW" = ( /obj/structure/platform{ dir = 1 }, /obj/effect/blocker/toxic_water/Group_2, -/turf/open/gm/river/desert/shallow_edge{ - dir = 5 - }, +/turf/open/gm/river/desert/shallow_edge/northeast, /area/desert_dam/exterior/river/riverside_central_south) "dto" = ( /obj/structure/surface/table, @@ -51538,10 +39598,7 @@ "dtq" = ( /obj/structure/surface/table, /obj/effect/spawner/random/toolbox, -/turf/open/floor/prison{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/prison/green/north, /area/desert_dam/building/dorms/hallway_northwing) "dtr" = ( /turf/open/asphalt, @@ -51555,10 +39612,7 @@ /turf/open/floor/prison, /area/desert_dam/building/water_treatment_one/garage) "dtu" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/water_treatment_one/garage) "dtw" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -51568,76 +39622,53 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/building/cafeteria/cafeteria) "dtx" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/water_treatment_one/hallway) "dty" = ( /obj/structure/machinery/washing_machine, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/desert_dam/building/water_treatment_one/breakroom) "dtz" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/prison, /area/desert_dam/building/water_treatment_one/control_room) "dtE" = ( -/turf/open/floor/filtrationside{ - dir = 8 - }, +/turf/open/floor/filtrationside/west, /area/desert_dam/exterior/valley/valley_hydro) "dtF" = ( /obj/effect/blocker/toxic_water/Group_1, -/turf/open/desert/desert_shore/shore_edge1{ - dir = 4 - }, +/turf/open/desert/desert_shore/shore_edge1/east, /area/desert_dam/exterior/valley/valley_civilian) "dtG" = ( /obj/structure/platform{ dir = 4 }, /obj/effect/blocker/toxic_water/Group_1, -/turf/open/desert/desert_shore/shore_edge1{ - dir = 4 - }, +/turf/open/desert/desert_shore/shore_edge1/east, /area/desert_dam/exterior/valley/valley_civilian) "dtH" = ( /obj/effect/blocker/toxic_water/Group_1, -/turf/open/desert/desert_shore/shore_edge1{ - dir = 1 - }, +/turf/open/desert/desert_shore/shore_edge1/north, /area/desert_dam/exterior/river/riverside_south) "dtI" = ( -/turf/open/floor/filtrationside{ - dir = 4 - }, +/turf/open/floor/filtrationside/east, /area/desert_dam/exterior/valley/valley_hydro) "dtT" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/disposalpipe/segment, /obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/desert_dam/interior/dam_interior/central_tunnel) "dtX" = ( /obj/structure/platform_decoration, -/turf/open/desert/dirt{ - icon_state = "dirt2" - }, +/turf/open/desert/dirt/dirt2, /area/desert_dam/exterior/river/riverside_south) "dtY" = ( /obj/structure/platform, -/turf/open/desert/dirt{ - icon_state = "dirt2" - }, +/turf/open/desert/dirt/dirt2, /area/desert_dam/exterior/river/riverside_south) "duc" = ( /obj/structure/flora/grass/tallgrass/desert/corner{ @@ -51654,18 +39685,12 @@ "dun" = ( /obj/structure/machinery/computer/med_data/laptop, /obj/structure/surface/table/woodentable/fancy, -/turf/open/floor{ - dir = 8; - icon_state = "carpet15-15" - }, +/turf/open/floor/carpet15_15/west, /area/desert_dam/building/administration/office) "duo" = ( /obj/structure/machinery/computer/guestpass, /obj/structure/surface/table/woodentable/fancy, -/turf/open/floor{ - dir = 8; - icon_state = "carpet11-12" - }, +/turf/open/floor/carpet11_12/west, /area/desert_dam/building/administration/office) "duq" = ( /obj/structure/desertdam/decals/road_edge, @@ -51681,10 +39706,7 @@ /area/desert_dam/building/water_treatment_one/hallway) "dut" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/water_treatment_one/hallway) "duu" = ( /obj/structure/machinery/power/apc{ @@ -51713,9 +39735,7 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/building/cafeteria/cafeteria) "duy" = ( /obj/structure/platform{ @@ -51729,38 +39749,26 @@ dir = 4 }, /obj/effect/blocker/toxic_water/Group_1, -/turf/open/desert/desert_shore/desert_shore1{ - dir = 4 - }, +/turf/open/desert/desert_shore/desert_shore1/east, /area/desert_dam/exterior/valley/valley_civilian) "duA" = ( /obj/structure/platform, /obj/effect/blocker/toxic_water/Group_1, -/turf/open/desert/desert_shore/desert_shore1{ - dir = 8 - }, +/turf/open/desert/desert_shore/desert_shore1/west, /area/desert_dam/exterior/river/riverside_south) "duB" = ( /obj/structure/fence, -/turf/open/desert/dirt{ - dir = 9; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/northwest, /area/desert_dam/exterior/valley/valley_civilian) "duC" = ( /turf/closed/wall, /area/desert_dam/building/dorms/hallway_northwing) "duD" = ( /obj/structure/disposalpipe/segment, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached1" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached1, /area/desert_dam/exterior/valley/valley_civilian) "duJ" = ( -/turf/open/desert/dirt{ - dir = 4; - icon_state = "desert_transition_corner1" - }, +/turf/open/desert/dirt/desert_transition_corner1/east, /area/desert_dam/exterior/valley/bar_valley_dam) "duP" = ( /obj/structure/window/reinforced{ @@ -51769,16 +39777,11 @@ }, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkbrown3" - }, +/turf/open/floor/prison/darkbrown3/west, /area/desert_dam/interior/dam_interior/disposals) "duR" = ( /obj/structure/xenoautopsy/tank/broken, -/turf/open/shuttle{ - icon_state = "floor6" - }, +/turf/open/shuttle/red, /area/desert_dam/interior/caves/temple) "duU" = ( /obj/structure/machinery/computer/med_data/laptop, @@ -51802,18 +39805,12 @@ "duY" = ( /obj/structure/machinery/computer/cameras/wooden_tv, /obj/structure/surface/table/woodentable/fancy, -/turf/open/floor{ - dir = 8; - icon_state = "carpet7-3" - }, +/turf/open/floor/carpet7_3/west, /area/desert_dam/building/administration/overseer_office) "duZ" = ( /obj/structure/machinery/computer/med_data/laptop, /obj/structure/surface/table/woodentable/fancy, -/turf/open/floor{ - dir = 8; - icon_state = "carpet15-15" - }, +/turf/open/floor/carpet15_15/west, /area/desert_dam/building/administration/overseer_office) "dvf" = ( /obj/structure/machinery/door/airlock/almayer/generic{ @@ -51821,40 +39818,28 @@ name = "\improper Kitchen" }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/building/cafeteria/cafeteria) "dvg" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/building/cafeteria/cafeteria) "dvj" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached2" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached2, /area/desert_dam/exterior/valley/valley_civilian) "dvk" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached4" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached4, /area/desert_dam/exterior/valley/valley_civilian) "dvm" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached9" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached9, /area/desert_dam/exterior/valley/valley_civilian) "dvn" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/building/cafeteria/cafeteria) "dvo" = ( /obj/effect/decal/cleanable/dirt, @@ -51867,9 +39852,7 @@ "dvx" = ( /obj/structure/platform, /obj/effect/blocker/toxic_water/Group_1, -/turf/open/gm/river/desert/shallow_edge{ - dir = 10 - }, +/turf/open/gm/river/desert/shallow_edge/southwest, /area/desert_dam/exterior/river/riverside_south) "dvy" = ( /obj/structure/platform_decoration{ @@ -51880,48 +39863,38 @@ /area/desert_dam/exterior/river/riverside_south) "dvz" = ( /obj/effect/blocker/toxic_water/Group_1, -/turf/open/desert/desert_shore/shore_corner2{ - dir = 4 - }, +/turf/open/desert/desert_shore/shore_corner2/east, /area/desert_dam/exterior/river/riverside_south) "dvA" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 9 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/south_valley_dam) "dvB" = ( /obj/structure/platform{ dir = 8 }, /obj/effect/blocker/toxic_water/Group_1, -/turf/open/gm/river/desert/shallow_edge{ - dir = 8 - }, +/turf/open/gm/river/desert/shallow_edge/west, /area/desert_dam/exterior/river/riverside_south) "dvD" = ( /obj/structure/bed, /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/desert_dam/building/dorms/hallway_northwing) "dvE" = ( /obj/structure/closet/cabinet, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/desert_dam/building/dorms/hallway_northwing) "dvW" = ( /obj/structure/flora/grass/tallgrass/desert/corner{ dir = 1 }, /turf/open/desert/dirt, -/area/desert_dam/exterior/valley/valley_northwest) +/area/desert_dam/exterior/landing_pad_one) "dvZ" = ( /obj/structure/flora/grass/tallgrass/desert/corner{ dir = 9 @@ -51936,10 +39909,7 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/northwest, /area/desert_dam/interior/dam_interior/smes_main) "dwe" = ( /obj/structure/surface/table, @@ -51947,19 +39917,13 @@ amount = 25 }, /obj/effect/spawner/random/toolbox, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/desert_dam/interior/dam_interior/smes_main) "dwf" = ( /obj/structure/surface/table, /obj/item/stack/cable_coil, /obj/effect/spawner/random/toolbox, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/desert_dam/interior/dam_interior/smes_main) "dwg" = ( /obj/structure/surface/table, @@ -51968,26 +39932,18 @@ }, /obj/effect/spawner/random/toolbox, /obj/effect/spawner/random/toolbox, -/turf/open/floor/prison{ - dir = 5; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/northeast, /area/desert_dam/interior/dam_interior/smes_main) "dwh" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/west, /area/desert_dam/interior/dam_interior/control_room) "dwl" = ( /obj/structure/surface/table, /obj/structure/bedsheetbin, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/desert_dam/building/water_treatment_one/breakroom) "dwm" = ( /obj/structure/surface/table, @@ -51995,9 +39951,7 @@ dir = 1 }, /obj/effect/spawner/random/toolbox, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/building/dorms/restroom) "dws" = ( /turf/open/asphalt, @@ -52007,22 +39961,16 @@ /turf/open/floor/prison, /area/desert_dam/building/water_treatment_one/control_room) "dwC" = ( -/turf/open/floor/filtrationside{ - dir = 10 - }, +/turf/open/floor/filtrationside/southwest, /area/desert_dam/exterior/valley/valley_hydro) "dwD" = ( /turf/open/floor/filtrationside, /area/desert_dam/exterior/valley/valley_hydro) "dwE" = ( -/turf/open/floor/filtrationside{ - dir = 6 - }, +/turf/open/floor/filtrationside/southeast, /area/desert_dam/exterior/valley/valley_hydro) "dwF" = ( -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/desert_dam/building/dorms/hallway_northwing) "dwG" = ( /obj/effect/decal/sand_overlay/sand1{ @@ -52050,19 +39998,13 @@ icon_state = "pipe-c" }, /obj/effect/spawner/random/toolbox, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/west, /area/desert_dam/interior/dam_interior/smes_backup) "dwX" = ( /obj/structure/surface/table/reinforced, /obj/structure/disposalpipe/segment, /obj/effect/spawner/random/toolbox, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/west, /area/desert_dam/interior/dam_interior/smes_backup) "dxb" = ( /obj/effect/decal/warning_stripes{ @@ -52092,77 +40034,51 @@ dir = 1; name = "\improper Dormitories Bedroom" }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/desert_dam/building/dorms/hallway_northwing) "dxg" = ( /obj/structure/surface/table, -/turf/open/floor/prison{ - dir = 9; - icon_state = "green" - }, +/turf/open/floor/prison/green/northwest, /area/desert_dam/building/dorms/hallway_northwing) "dxh" = ( /obj/structure/surface/table, -/turf/open/floor/prison{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/prison/green/north, /area/desert_dam/building/dorms/hallway_northwing) "dxi" = ( /obj/structure/flora/pottedplant, -/turf/open/floor/prison{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/prison/green/north, /area/desert_dam/building/dorms/hallway_northwing) "dxj" = ( /obj/structure/machinery/atm{ name = "Weyland-Yutani Automatic Teller Machine"; pixel_y = 30 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greencorner" - }, +/turf/open/floor/prison/greencorner/east, /area/desert_dam/building/dorms/hallway_northwing) "dxk" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "greencorner" - }, +/turf/open/floor/prison/greencorner/north, /area/desert_dam/building/dorms/hallway_northwing) "dxl" = ( /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/prison/green/north, /area/desert_dam/building/dorms/hallway_northwing) "dxm" = ( /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/prison/green/north, /area/desert_dam/building/dorms/hallway_northwing) "dxL" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper Hydroponics Breakroom" }, /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/hydroponics/hydroponics_breakroom) "dxM" = ( /obj/structure/surface/table/reinforced, @@ -52170,16 +40086,12 @@ pixel_y = 30 }, /obj/item/reagent_container/food/snacks/cheesewedge, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/building/cafeteria/cafeteria) "dxN" = ( /obj/structure/surface/table/reinforced, /obj/effect/spawner/random/toolbox, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/building/cafeteria/cafeteria) "dxO" = ( /obj/structure/flora/grass/tallgrass/desert/corner{ @@ -52190,10 +40102,7 @@ "dxR" = ( /obj/structure/surface/table, /obj/item/reagent_container/food/snacks/donut, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/desert_dam/building/cafeteria/cafeteria) "dxS" = ( /obj/structure/disposalpipe/segment{ @@ -52201,24 +40110,16 @@ icon_state = "pipe-c" }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/building/cafeteria/cafeteria) "dxT" = ( /obj/structure/surface/table, /obj/item/reagent_container/food/snacks/candy, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/desert_dam/building/cafeteria/cafeteria) "dxW" = ( /obj/structure/reagent_dispensers/fueltank, -/turf/open/floor{ - dir = 1; - icon_state = "bot" - }, +/turf/open/floor/bot/north, /area/desert_dam/building/water_treatment_one/garage) "dxX" = ( /obj/structure/machinery/disposal, @@ -52236,9 +40137,7 @@ "dya" = ( /obj/structure/surface/table, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/desert_dam/building/water_treatment_one/garage) "dyb" = ( /turf/closed/wall/hangar{ @@ -52271,30 +40170,19 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 1 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached9" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached9, /area/desert_dam/exterior/valley/valley_civilian) "dym" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/prison/green/north, /area/desert_dam/building/dorms/hallway_northwing) "dyn" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/prison/green/north, /area/desert_dam/building/dorms/hallway_northwing) "dyo" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "greencorner" - }, +/turf/open/floor/prison/greencorner/east, /area/desert_dam/building/dorms/hallway_northwing) "dyp" = ( /obj/structure/bed/chair{ @@ -52308,20 +40196,14 @@ dir = 1 }, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/north, /area/desert_dam/building/dorms/pool) "dyS" = ( /obj/structure/surface/table, /obj/item/reagent_container/food/snacks/chips, /obj/item/reagent_container/food/snacks/cookie, /obj/item/reagent_container/food/snacks/donkpocket, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/desert_dam/building/cafeteria/cafeteria) "dyT" = ( /obj/structure/disposalpipe/segment{ @@ -52331,55 +40213,36 @@ dir = 1 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/building/cafeteria/cafeteria) "dyU" = ( /obj/effect/decal/cleanable/blood{ icon_state = "gib6" }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/building/cafeteria/cafeteria) "dyW" = ( -/turf/open/floor{ - dir = 5; - icon_state = "vault" - }, +/turf/open/floor/vault2/northeast, /area/desert_dam/building/substation/central) "dyX" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk{ dir = 4 }, -/turf/open/floor{ - dir = 9; - icon_state = "whiteyellow" - }, +/turf/open/floor/whiteyellow/northwest, /area/desert_dam/building/water_treatment_one/breakroom) "dyY" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor{ - dir = 1; - icon_state = "whiteyellowcorner" - }, +/turf/open/floor/whiteyellowcorner/north, /area/desert_dam/building/water_treatment_one/breakroom) "dzb" = ( -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowcorner" - }, +/turf/open/floor/whiteyellowcorner/east, /area/desert_dam/building/water_treatment_one/breakroom) "dzc" = ( /obj/structure/machinery/vending/cola, -/turf/open/floor{ - dir = 1; - icon_state = "whiteyellow" - }, +/turf/open/floor/whiteyellow/north, /area/desert_dam/building/water_treatment_one/breakroom) "dzd" = ( /obj/effect/blocker/toxic_water, @@ -52387,21 +40250,13 @@ /area/desert_dam/exterior/river/filtration_a) "dze" = ( /obj/structure/machinery/vending/snack, -/turf/open/floor{ - dir = 5; - icon_state = "whiteyellow" - }, +/turf/open/floor/whiteyellow/northeast, /area/desert_dam/building/water_treatment_one/breakroom) "dzf" = ( -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/desert_dam/building/water_treatment_one/equipment) "dzg" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/water_treatment_one/equipment) "dzh" = ( /obj/structure/filtration/collector_pipes{ @@ -52417,16 +40272,12 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/desert_dam/building/water_treatment_one/equipment) "dzj" = ( /obj/structure/closet/l3closet/virology, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/desert_dam/building/water_treatment_one/equipment) "dzk" = ( /obj/structure/desertdam/decals/road_edge{ @@ -52441,16 +40292,11 @@ /turf/open/asphalt, /area/desert_dam/interior/dam_interior/west_tunnel) "dzm" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/desert_dam/building/water_treatment_one/floodgate_control) "dzo" = ( /obj/effect/blocker/toxic_water/Group_1, -/turf/open/desert/desert_shore/shore_edge1{ - dir = 8 - }, +/turf/open/desert/desert_shore/shore_edge1/west, /area/desert_dam/exterior/river/riverside_south) "dzr" = ( /turf/closed/wall/hangar{ @@ -52489,9 +40335,7 @@ /area/desert_dam/building/dorms/hallway_northwing) "dzy" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached15" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached15, /area/desert_dam/exterior/valley/valley_civilian) "dzz" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -52508,9 +40352,7 @@ name = "\improper Mess Hall" }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/desert_dam/building/cafeteria/cafeteria) "dzB" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -52518,28 +40360,21 @@ }, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/building/cafeteria/cafeteria) "dzC" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/building/cafeteria/cafeteria) "dzD" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/desert_dam/building/cafeteria/cafeteria) "dzE" = ( /obj/structure/flora/grass/desert/lightgrass_10, @@ -52548,10 +40383,7 @@ "dzO" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/desert/dirt{ - dir = 9; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/northwest, /area/desert_dam/exterior/valley/valley_crashsite) "dzU" = ( /obj/structure/desertdam/decals/road_edge{ @@ -52569,37 +40401,25 @@ /obj/item/reagent_container/food/snacks/chips, /obj/item/reagent_container/food/snacks/cookie, /obj/item/reagent_container/food/snacks/donut, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/desert_dam/building/cafeteria/cafeteria) "dAf" = ( /obj/structure/surface/table, /obj/item/reagent_container/food/snacks/cheesewedge, /obj/item/reagent_container/food/snacks/chips, /obj/item/reagent_container/food/snacks/cookie, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/desert_dam/building/cafeteria/cafeteria) "dAg" = ( /obj/structure/surface/table, /obj/item/reagent_container/food/snacks/chips, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/desert_dam/building/cafeteria/cafeteria) "dAk" = ( /obj/structure/surface/table, /obj/item/reagent_container/food/snacks/bun, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/desert_dam/building/cafeteria/cafeteria) "dAl" = ( /obj/structure/flora/grass/tallgrass/desert/corner{ @@ -52608,18 +40428,14 @@ /turf/open/desert/dirt, /area/desert_dam/exterior/valley/valley_hydro) "dAn" = ( -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/desert_dam/building/water_treatment_one/breakroom) "dAo" = ( /obj/effect/blocker/toxic_water, /turf/open/gm/river/desert/deep/covered, /area/desert_dam/exterior/river_mouth/southern) "dAq" = ( -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/desert_dam/building/water_treatment_one/breakroom) "dAr" = ( /obj/structure/machinery/door/poddoor/almayer/locked{ @@ -52643,20 +40459,13 @@ dir = 1 }, /obj/effect/blocker/toxic_water/Group_2, -/turf/open/desert/desert_shore/shore_corner2{ - dir = 8 - }, +/turf/open/desert/desert_shore/shore_corner2/west, /area/desert_dam/exterior/river/riverside_east) "dAD" = ( -/turf/open/floor/prison{ - icon_state = "green" - }, +/turf/open/floor/prison/green, /area/desert_dam/building/dorms/hallway_northwing) "dAF" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "greencorner" - }, +/turf/open/floor/prison/greencorner/west, /area/desert_dam/building/dorms/hallway_northwing) "dAG" = ( /obj/structure/bed/chair{ @@ -52664,30 +40473,21 @@ }, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/desert_dam/building/cafeteria/cafeteria) "dAH" = ( -/turf/open/floor/prison{ - icon_state = "greencorner" - }, +/turf/open/floor/prison/greencorner, /area/desert_dam/building/dorms/hallway_northwing) "dAI" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - icon_state = "green" - }, +/turf/open/floor/prison/green, /area/desert_dam/building/dorms/hallway_northwing) "dAJ" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, /obj/structure/machinery/light, -/turf/open/floor/prison{ - icon_state = "green" - }, +/turf/open/floor/prison/green, /area/desert_dam/building/dorms/hallway_northwing) "dAK" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -52697,18 +40497,12 @@ "dAL" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/desert_dam/building/cafeteria/cafeteria) "dBb" = ( /obj/structure/surface/table, /obj/item/reagent_container/food/snacks/cookie, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/desert_dam/building/cafeteria/cafeteria) "dBc" = ( /obj/structure/surface/table, @@ -52718,10 +40512,7 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/desert_dam/building/cafeteria/cafeteria) "dBd" = ( /obj/structure/surface/table, @@ -52729,28 +40520,19 @@ /obj/item/reagent_container/food/snacks/bun, /obj/item/reagent_container/food/snacks/cheesewedge, /obj/item/reagent_container/food/snacks/donut, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/desert_dam/building/cafeteria/cafeteria) "dBe" = ( /obj/structure/surface/table, /obj/effect/landmark/crap_item, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/desert_dam/building/cafeteria/cafeteria) "dBf" = ( /obj/structure/surface/table, /obj/item/reagent_container/food/snacks/candy, /obj/item/reagent_container/food/snacks/bun, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/desert_dam/building/cafeteria/cafeteria) "dBh" = ( /obj/structure/flora/grass/tallgrass/desert/corner{ @@ -52760,9 +40542,7 @@ /area/desert_dam/exterior/valley/valley_medical) "dBi" = ( /obj/structure/machinery/door/airlock/almayer/generic, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/desert_dam/building/water_treatment_one/breakroom) "dBj" = ( /obj/structure/machinery/power/apc{ @@ -52770,10 +40550,7 @@ pixel_x = -24; start_charge = 0 }, -/turf/open/floor{ - dir = 1; - icon_state = "whiteyellowcorner" - }, +/turf/open/floor/whiteyellowcorner/north, /area/desert_dam/building/water_treatment_one/breakroom) "dBo" = ( /obj/structure/window/framed/colony, @@ -52788,48 +40565,30 @@ /area/desert_dam/building/dorms/hallway_westwing) "dBs" = ( /obj/structure/machinery/vending/snack, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/desert_dam/building/dorms/hallway_northwing) "dBt" = ( /obj/structure/machinery/vending/cigarette/colony, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/desert_dam/building/dorms/hallway_northwing) "dBu" = ( /obj/structure/machinery/vending/coffee, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/desert_dam/building/dorms/hallway_northwing) "dBv" = ( /obj/structure/machinery/vending/cola, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/desert_dam/building/dorms/hallway_northwing) "dBw" = ( /obj/structure/surface/table, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/desert_dam/building/dorms/hallway_northwing) "dBx" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk{ dir = 1 }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/desert_dam/building/dorms/hallway_northwing) "dBy" = ( /turf/closed/wall, @@ -52841,9 +40600,7 @@ dir = 1; name = "\improper Restroom" }, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/dorms/restroom) "dBC" = ( /obj/item/weapon/baseballbat/metal, @@ -52854,34 +40611,25 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/east, /area/desert_dam/building/dorms/pool) "dBD" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/building/dorms/pool) "dBF" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/desert_dam/interior/dam_interior/break_room) "dBJ" = ( /obj/structure/machinery/computer/pod/old{ name = "Personal Computer" }, /obj/structure/surface/table/woodentable/fancy, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/desert_dam/building/water_treatment_one/hallway) "dBK" = ( /obj/structure/disposalpipe/segment, @@ -52894,22 +40642,15 @@ /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/hydroponics/hydroponics) "dBN" = ( /obj/structure/machinery/colony_floodlight, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached9" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached9, /area/desert_dam/exterior/valley/valley_medical) "dBO" = ( /obj/structure/machinery/colony_floodlight, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached4" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached4, /area/desert_dam/exterior/valley/valley_medical) "dBP" = ( /obj/structure/machinery/colony_floodlight, @@ -52921,58 +40662,41 @@ /area/desert_dam/exterior/valley/valley_medical) "dBR" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/dam_interior/disposals) "dBT" = ( /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/desert_dam/building/water_treatment_one/breakroom) "dBU" = ( /obj/structure/surface/table, /obj/item/clothing/head/soft/ferret, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/desert_dam/building/water_treatment_one/breakroom) "dBV" = ( /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/desert_dam/building/water_treatment_one/breakroom) "dBW" = ( -/turf/open/floor{ - icon_state = "whiteyellowcorner" - }, +/turf/open/floor/whiteyellowcorner, /area/desert_dam/building/water_treatment_one/breakroom) "dBY" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/dam_interior/disposals) "dCb" = ( /turf/open/floor/prison, /area/desert_dam/building/dorms/hallway_westwing) "dCc" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "green" - }, +/turf/open/floor/prison/green/east, /area/desert_dam/building/dorms/hallway_westwing) "dCd" = ( -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/dorms/restroom) "dCe" = ( /obj/effect/decal/cleanable/dirt, @@ -52980,18 +40704,13 @@ dir = 4; icon_state = "gib6" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/desert_dam/building/cafeteria/cafeteria) "dCf" = ( /obj/structure/machinery/door/airlock/almayer/generic{ name = "\improper Toilet Unit" }, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/dorms/restroom) "dCg" = ( /obj/structure/toilet{ @@ -53000,27 +40719,19 @@ /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/dorms/restroom) "dCj" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull, /area/desert_dam/building/dorms/pool) "dCo" = ( /obj/structure/surface/table/reinforced, /obj/item/storage/fancy/vials/random, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/interior/lab_northeast/east_lab_biology) "dCt" = ( -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/south_valley_dam) "dCw" = ( /obj/structure/surface/table/almayer, @@ -53034,9 +40745,7 @@ name = "\improper Disposals" }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/dam_interior/disposals) "dCz" = ( /obj/structure/pipes/vents/pump{ @@ -53052,10 +40761,7 @@ "dCD" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowcorner" - }, +/turf/open/floor/whiteyellowcorner/east, /area/desert_dam/interior/dam_interior/break_room) "dCE" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -53063,56 +40769,39 @@ dir = 2; icon_state = "pipe-c" }, -/turf/open/floor/prison{ - icon_state = "whitegreencorner" - }, +/turf/open/floor/prison/whitegreencorner, /area/desert_dam/building/medical/west_wing_hallway) "dCF" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk{ dir = 1 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/desert_dam/building/water_treatment_one/breakroom) "dCG" = ( -/turf/open/floor{ - dir = 8; - icon_state = "whiteyellowcorner" - }, +/turf/open/floor/whiteyellowcorner/west, /area/desert_dam/building/water_treatment_one/breakroom) "dCH" = ( /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor{ - icon_state = "whiteyellow" - }, +/turf/open/floor/whiteyellow, /area/desert_dam/building/water_treatment_one/breakroom) "dCI" = ( /obj/structure/surface/table, /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/west, /area/desert_dam/building/dorms/pool) "dCJ" = ( /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor{ - icon_state = "whiteyellow" - }, +/turf/open/floor/whiteyellow, /area/desert_dam/building/water_treatment_one/breakroom) "dCK" = ( -/turf/open/floor{ - dir = 6; - icon_state = "whiteyellow" - }, +/turf/open/floor/whiteyellow/southeast, /area/desert_dam/building/water_treatment_one/breakroom) "dCL" = ( /turf/closed/wall/hangar{ @@ -53120,203 +40809,132 @@ }, /area/desert_dam/building/water_treatment_one/equipment) "dCM" = ( -/turf/open/floor/coagulation{ - icon_state = "0,8" - }, +/turf/open/floor/coagulation/icon0_8, /area/desert_dam/exterior/valley/valley_hydro) "dCN" = ( -/turf/open/floor/coagulation{ - icon_state = "5,8" - }, +/turf/open/floor/coagulation/icon5_8, /area/desert_dam/exterior/valley/valley_hydro) "dCO" = ( -/turf/open/floor/coagulation{ - icon_state = "4,8" - }, +/turf/open/floor/coagulation/icon4_8, /area/desert_dam/exterior/valley/valley_hydro) "dCP" = ( -/turf/open/floor/coagulation{ - icon_state = "6,8" - }, +/turf/open/floor/coagulation/icon6_8, /area/desert_dam/exterior/valley/valley_hydro) "dCQ" = ( -/turf/open/floor/coagulation{ - icon_state = "7,8" - }, +/turf/open/floor/coagulation/icon7_8, /area/desert_dam/exterior/valley/valley_hydro) "dCR" = ( -/turf/open/floor/coagulation{ - icon_state = "8,8" - }, +/turf/open/floor/coagulation/icon8_8, /area/desert_dam/exterior/valley/valley_hydro) "dCS" = ( -/turf/open/floor/coagulation{ - icon_state = "6,8-2" - }, +/turf/open/floor/coagulation/icon6_8_2, /area/desert_dam/exterior/valley/valley_hydro) "dCT" = ( -/turf/open/floor/coagulation{ - icon_state = "7,8-2" - }, +/turf/open/floor/coagulation/icon7_8_2, /area/desert_dam/exterior/valley/valley_hydro) "dCU" = ( /obj/structure/platform{ dir = 1 }, /obj/effect/blocker/toxic_water/Group_2, -/turf/open/desert/desert_shore/shore_edge1{ - dir = 4 - }, +/turf/open/desert/desert_shore/shore_edge1/east, /area/desert_dam/exterior/river/riverside_east) "dCV" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull, /area/desert_dam/building/dorms/pool) "dCW" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "greencorner" - }, +/turf/open/floor/prison/greencorner/north, /area/desert_dam/building/dorms/hallway_westwing) "dCX" = ( /obj/structure/machinery/washing_machine, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/building/dorms/restroom) "dCY" = ( /obj/structure/surface/table, /obj/structure/bedsheetbin, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/building/dorms/restroom) "dDa" = ( /obj/structure/closet/secure_closet/personal, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/building/dorms/restroom) "dDb" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/dorms/restroom) "dDk" = ( /obj/structure/machinery/iv_drip, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitered" - }, +/turf/open/floor/prison/whitered/north, /area/desert_dam/building/medical/surgery_room_one) "dDs" = ( -/turf/open/floor/coagulation{ - icon_state = "0,5" - }, +/turf/open/floor/coagulation/icon0_5, /area/desert_dam/exterior/valley/valley_hydro) "dDt" = ( -/turf/open/floor/coagulation{ - icon_state = "1,7" - }, +/turf/open/floor/coagulation/icon1_7, /area/desert_dam/exterior/valley/valley_hydro) "dDv" = ( /obj/structure/surface/table/reinforced, /obj/item/clothing/head/welding, -/turf/open/floor/prison{ - dir = 10; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/southwest, /area/desert_dam/interior/dam_interior/tech_storage) "dDw" = ( /obj/structure/surface/table, /obj/item/clothing/head/welding, -/turf/open/floor/prison{ - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2, /area/desert_dam/interior/dam_interior/auxilary_tool_storage) "dDx" = ( /obj/item/clothing/head/welding, /obj/structure/surface/rack, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/smes_main) "dDz" = ( -/turf/open/floor/coagulation{ - icon_state = "7,7" - }, +/turf/open/floor/coagulation/icon7_7, /area/desert_dam/exterior/valley/valley_hydro) "dDA" = ( -/turf/open/floor/coagulation{ - icon_state = "8,7" - }, +/turf/open/floor/coagulation/icon8_7, /area/desert_dam/exterior/valley/valley_hydro) "dDB" = ( /obj/structure/flora/tree/joshua, -/turf/open/desert/dirt{ - icon_state = "desert_transition_edge1" - }, -/area/desert_dam/exterior/valley/valley_northwest) +/turf/open/desert/dirt/desert_transition_edge1, +/area/desert_dam/exterior/landing_pad_one) "dDD" = ( /obj/structure/surface/table/reinforced, /obj/item/clothing/head/welding, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/primary_tool_storage) "dDG" = ( -/turf/open/floor/coagulation{ - icon_state = "7,7-2" - }, +/turf/open/floor/coagulation/icon7_7_2, /area/desert_dam/exterior/valley/valley_hydro) "dDH" = ( -/turf/open/floor/coagulation{ - icon_state = "8,7-2" - }, +/turf/open/floor/coagulation/icon8_7_2, /area/desert_dam/exterior/valley/valley_hydro) "dDI" = ( /obj/structure/platform{ dir = 8 }, /obj/effect/blocker/toxic_water/Group_1, -/turf/open/gm/river/desert/shallow_corner{ - dir = 1 - }, +/turf/open/gm/river/desert/shallow_corner/north, /area/desert_dam/exterior/river/riverside_south) "dDJ" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "green" - }, +/turf/open/floor/prison/green/west, /area/desert_dam/building/dorms/hallway_westwing) "dDK" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/desert_dam/building/cafeteria/cafeteria) "dDL" = ( -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/building/dorms/restroom) "dDM" = ( /obj/structure/machinery/door/airlock/almayer/generic{ name = "\improper Showers" }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/building/dorms/restroom) "dDQ" = ( /obj/item/seeds/soyaseed, @@ -53324,66 +40942,48 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/east, /area/desert_dam/building/hydroponics/hydroponics) "dDZ" = ( /obj/structure/toilet{ dir = 8 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/desert_dam/building/water_treatment_one/breakroom) "dEb" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowcorner" - }, +/turf/open/floor/whiteyellowcorner/east, /area/desert_dam/interior/dam_interior/break_room) "dEe" = ( -/turf/open/floor/coagulation{ - icon_state = "8,3" - }, +/turf/open/floor/coagulation/icon8_3, /area/desert_dam/exterior/valley/valley_hydro) "dEj" = ( /obj/structure/platform{ dir = 1 }, /obj/effect/blocker/toxic_water/Group_2, -/turf/open/desert/desert_shore/shore_edge1{ - dir = 1 - }, +/turf/open/desert/desert_shore/shore_edge1/north, /area/desert_dam/exterior/river/riverside_east) "dEk" = ( /obj/structure/platform{ dir = 1 }, /obj/effect/blocker/toxic_water/Group_2, -/turf/open/gm/river/desert/shallow_edge{ - dir = 9 - }, +/turf/open/gm/river/desert/shallow_edge/northwest, /area/desert_dam/exterior/river/riverside_east) "dEl" = ( /obj/structure/platform{ dir = 1 }, /obj/effect/blocker/toxic_water/Group_2, -/turf/open/gm/river/desert/shallow_edge{ - dir = 1 - }, +/turf/open/gm/river/desert/shallow_edge/north, /area/desert_dam/exterior/river/riverside_east) "dEm" = ( /obj/structure/platform{ dir = 1 }, /obj/effect/blocker/toxic_water/Group_2, -/turf/open/gm/river/desert/shallow_corner{ - dir = 1 - }, +/turf/open/gm/river/desert/shallow_corner/north, /area/desert_dam/exterior/river/riverside_east) "dEn" = ( /obj/structure/platform{ @@ -53404,15 +41004,11 @@ /area/desert_dam/exterior/river/riverside_south) "dEr" = ( /obj/structure/closet/cabinet, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/desert_dam/building/dorms/hallway_westwing) "dEt" = ( /obj/structure/bed, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/desert_dam/building/dorms/hallway_westwing) "dEu" = ( /obj/structure/machinery/power/apc{ @@ -53420,40 +41016,28 @@ pixel_x = -30; start_charge = 0 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "green" - }, +/turf/open/floor/prison/green/west, /area/desert_dam/building/dorms/hallway_westwing) "dEv" = ( /obj/structure/surface/table, /obj/item/reagent_container/food/snacks/chips, /obj/item/reagent_container/food/snacks/donut, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/desert_dam/building/cafeteria/cafeteria) "dEx" = ( -/turf/open/floor/prison{ - icon_state = "greencorner" - }, +/turf/open/floor/prison/greencorner, /area/desert_dam/building/dorms/hallway_westwing) "dEP" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 8 }, /obj/structure/machinery/colony_floodlight, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_civilian) "dEV" = ( /obj/structure/filtration/collector_pipes, -/turf/open/floor/filtrationside{ - dir = 8 - }, +/turf/open/floor/filtrationside/west, /area/desert_dam/exterior/valley/valley_hydro) "dEW" = ( /obj/structure/platform{ @@ -53467,24 +41051,18 @@ dir = 4 }, /obj/effect/blocker/toxic_water/Group_2, -/turf/open/gm/river/desert/shallow_edge{ - dir = 1 - }, +/turf/open/gm/river/desert/shallow_edge/north, /area/desert_dam/exterior/river/riverside_east) "dEY" = ( /obj/effect/blocker/toxic_water/Group_2, -/turf/open/gm/river/desert/shallow_edge{ - dir = 1 - }, +/turf/open/gm/river/desert/shallow_edge/north, /area/desert_dam/exterior/river/riverside_east) "dEZ" = ( /obj/structure/platform{ dir = 4 }, /obj/effect/blocker/toxic_water, -/turf/open/desert/desert_shore/shore_corner2{ - dir = 8 - }, +/turf/open/desert/desert_shore/shore_corner2/west, /area/desert_dam/exterior/river_mouth/southern) "dFc" = ( /obj/structure/platform_decoration{ @@ -53498,20 +41076,14 @@ dir = 4 }, /obj/effect/blocker/toxic_water/Group_1, -/turf/open/gm/river/desert/shallow_edge{ - dir = 1 - }, +/turf/open/gm/river/desert/shallow_edge/north, /area/desert_dam/exterior/river/riverside_south) "dFe" = ( /obj/effect/blocker/toxic_water/Group_1, -/turf/open/floor/filtrationside{ - dir = 4 - }, +/turf/open/floor/filtrationside/east, /area/desert_dam/exterior/valley/valley_hydro) "dFf" = ( -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/desert_dam/building/dorms/hallway_westwing) "dFg" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -53520,10 +41092,7 @@ "dFh" = ( /obj/item/frame/table, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/desert_dam/building/cafeteria/cafeteria) "dFi" = ( /obj/structure/catwalk, @@ -53535,19 +41104,14 @@ pixel_x = -30; start_charge = 0 }, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/dorms/restroom) "dFk" = ( /obj/structure/bed/chair{ dir = 8 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/desert_dam/building/cafeteria/cafeteria) "dFn" = ( /obj/structure/desertdam/decals/road_edge{ @@ -53568,35 +41132,25 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "yellowfull" - }, +/turf/open/floor/prison/yellowfull, /area/desert_dam/building/hydroponics/hydroponics) "dFD" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrowncorners3" - }, +/turf/open/floor/prison/darkbrowncorners3, /area/desert_dam/interior/dam_interior/disposals) "dFL" = ( /obj/structure/sink{ dir = 1; pixel_y = -10 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/desert_dam/building/water_treatment_one/breakroom) "dFM" = ( -/turf/open/floor/coagulation{ - icon_state = "0,4" - }, +/turf/open/floor/coagulation/icon0_4, /area/desert_dam/exterior/valley/valley_hydro) "dFN" = ( -/turf/open/floor/coagulation{ - icon_state = "8,4" - }, +/turf/open/floor/coagulation/icon8_4, /area/desert_dam/exterior/valley/valley_hydro) "dFP" = ( /obj/structure/platform, @@ -53626,45 +41180,33 @@ dir = 8 }, /obj/effect/blocker/toxic_water/Group_1, -/turf/open/gm/river/desert/shallow_corner{ - dir = 8 - }, +/turf/open/gm/river/desert/shallow_corner/west, /area/desert_dam/exterior/river/riverside_south) "dFU" = ( /obj/structure/machinery/door/airlock/almayer/generic{ dir = 1; name = "\improper Dormitories Bedroom" }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/desert_dam/building/dorms/hallway_westwing) "dFV" = ( /obj/structure/closet/secure_closet/personal, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/desert_dam/building/dorms/restroom) "dFW" = ( -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/desert_dam/building/dorms/restroom) "dFX" = ( /obj/structure/machinery/shower{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/desert_dam/building/dorms/restroom) "dFZ" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/dorms/restroom) "dGa" = ( /obj/structure/surface/table, @@ -53673,33 +41215,23 @@ /obj/item/reagent_container/food/snacks/candy, /obj/item/reagent_container/food/snacks/donkpocket, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/desert_dam/building/cafeteria/cafeteria) "dGr" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 8 }, -/turf/open/floor/coagulation{ - icon_state = "0,5" - }, +/turf/open/floor/coagulation/icon0_5, /area/desert_dam/exterior/valley/valley_hydro) "dGs" = ( /obj/effect/decal/sand_overlay/sand1/corner1, -/turf/open/floor/plating{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/plating/asteroidfloor/north, /area/desert_dam/exterior/valley/valley_civilian) "dGt" = ( /obj/structure/filtration/collector_pipes{ icon_state = "lower_1" }, -/turf/open/floor/filtrationside{ - dir = 8 - }, +/turf/open/floor/filtrationside/west, /area/desert_dam/exterior/valley/valley_hydro) "dGu" = ( /obj/structure/platform{ @@ -53726,27 +41258,20 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/blood/oil/streak, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/garage) "dGy" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 8 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached12" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached12, /area/desert_dam/exterior/valley/valley_medical) "dGz" = ( /obj/structure/platform{ dir = 1 }, /obj/effect/blocker/toxic_water/Group_2, -/turf/open/gm/river/desert/shallow_edge{ - dir = 5 - }, +/turf/open/gm/river/desert/shallow_edge/northeast, /area/desert_dam/exterior/river/riverside_east) "dGA" = ( /obj/structure/platform{ @@ -53761,43 +41286,27 @@ }, /obj/structure/platform, /obj/effect/blocker/toxic_water/Group_1, -/turf/open/gm/river/desert/shallow_edge{ - dir = 10 - }, +/turf/open/gm/river/desert/shallow_edge/southwest, /area/desert_dam/exterior/river/riverside_south) "dGC" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/prison/green/north, /area/desert_dam/building/dorms/hallway_westwing) "dGD" = ( /obj/structure/surface/table, /obj/item/reagent_container/food/snacks/donkpocket, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/desert_dam/building/cafeteria/cafeteria) "dGE" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "greencorner" - }, +/turf/open/floor/prison/greencorner/east, /area/desert_dam/building/dorms/hallway_westwing) "dGF" = ( /obj/structure/surface/table, -/turf/open/floor/prison{ - dir = 4; - icon_state = "green" - }, +/turf/open/floor/prison/green/east, /area/desert_dam/building/dorms/hallway_westwing) "dGG" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/desert_dam/building/dorms/restroom) "dGI" = ( /obj/structure/disposalpipe/segment, @@ -53810,18 +41319,13 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 4 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_telecoms) "dGQ" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 8 }, -/turf/open/floor/plating{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/plating/asteroidfloor/north, /area/desert_dam/exterior/valley/valley_civilian) "dGU" = ( /obj/docking_port/stationary/marine_dropship/lz1, @@ -53831,22 +41335,16 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 4 }, -/turf/open/floor/coagulation{ - icon_state = "0,5" - }, +/turf/open/floor/coagulation/icon0_5, /area/desert_dam/exterior/valley/valley_hydro) "dGY" = ( -/turf/open/floor/coagulation{ - icon_state = "8,6" - }, +/turf/open/floor/coagulation/icon8_6, /area/desert_dam/exterior/valley/valley_hydro) "dHa" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 1 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached9" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached9, /area/desert_dam/exterior/valley/valley_cargo) "dHb" = ( /obj/effect/blocker/toxic_water/Group_2, @@ -53865,9 +41363,7 @@ dir = 8 }, /obj/effect/blocker/toxic_water, -/turf/open/gm/river/desert/shallow_corner{ - dir = 8 - }, +/turf/open/gm/river/desert/shallow_corner/west, /area/desert_dam/exterior/river_mouth/southern) "dHe" = ( /obj/structure/platform{ @@ -53879,9 +41375,7 @@ "dHf" = ( /obj/structure/platform, /obj/effect/blocker/toxic_water/Group_1, -/turf/open/gm/river/desert/shallow_corner{ - dir = 8 - }, +/turf/open/gm/river/desert/shallow_corner/west, /area/desert_dam/exterior/river/riverside_south) "dHg" = ( /obj/structure/platform, @@ -53896,19 +41390,13 @@ /area/desert_dam/building/dorms/hallway_westwing) "dHi" = ( /obj/item/frame/table, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/desert_dam/building/cafeteria/cafeteria) "dHj" = ( /obj/structure/surface/table, /obj/item/reagent_container/food/snacks/candy, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/desert_dam/building/cafeteria/cafeteria) "dHk" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -53921,33 +41409,22 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/desert_dam/building/cafeteria/cafeteria) "dHm" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached12" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached12, /area/desert_dam/exterior/valley/valley_civilian) "dHo" = ( /obj/structure/surface/table, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/desert_dam/building/cafeteria/cafeteria) "dHp" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/desert_dam/building/cafeteria/cafeteria) "dHr" = ( /obj/structure/surface/table, @@ -53956,56 +41433,39 @@ }, /obj/effect/spawner/random/toolbox, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/hydroponics/hydroponics_breakroom) "dHs" = ( /obj/structure/surface/table, /obj/item/clothing/head/welding, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/hydroponics/hydroponics_breakroom) "dHt" = ( -/turf/open/floor/coagulation{ - icon_state = "1,1" - }, +/turf/open/floor/coagulation/icon1_1, /area/desert_dam/exterior/valley/valley_hydro) "dHv" = ( /obj/effect/decal/sand_overlay/sand1/corner1, /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 4 }, -/turf/open/floor/plating{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/plating/asteroidfloor/north, /area/desert_dam/exterior/valley/valley_civilian) "dHw" = ( -/turf/open/floor/coagulation{ - icon_state = "7,1" - }, +/turf/open/floor/coagulation/icon7_1, /area/desert_dam/exterior/valley/valley_hydro) "dHx" = ( /obj/effect/decal/sand_overlay/sand1/corner1, /obj/effect/decal/sand_overlay/sand1/corner1, -/turf/open/floor/coagulation{ - icon_state = "8,3" - }, +/turf/open/floor/coagulation/icon8_3, /area/desert_dam/exterior/valley/valley_hydro) "dHy" = ( /obj/effect/blocker/toxic_water, /obj/structure/platform_decoration{ dir = 4 }, -/turf/open/desert/desert_shore/shore_corner2{ - dir = 1 - }, +/turf/open/desert/desert_shore/shore_corner2/north, /area/desert_dam/exterior/river_mouth/southern) "dHA" = ( /obj/structure/platform{ @@ -54020,32 +41480,22 @@ dir = 4 }, /obj/effect/blocker/toxic_water/Group_1, -/turf/open/desert/desert_shore/shore_edge1{ - dir = 8 - }, +/turf/open/desert/desert_shore/shore_edge1/west, /area/desert_dam/exterior/river/riverside_south) "dHD" = ( -/turf/open/floor/prison{ - icon_state = "green" - }, +/turf/open/floor/prison/green, /area/desert_dam/building/dorms/hallway_westwing) "dHE" = ( /obj/structure/machinery/light, -/turf/open/floor/prison{ - icon_state = "green" - }, +/turf/open/floor/prison/green, /area/desert_dam/building/dorms/hallway_westwing) "dHF" = ( /obj/structure/machinery/light, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/desert_dam/building/dorms/restroom) "dHG" = ( /obj/structure/machinery/light, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/dorms/restroom) "dHI" = ( /obj/structure/surface/table, @@ -54054,10 +41504,7 @@ /obj/item/reagent_container/food/snacks/candy, /obj/item/reagent_container/food/snacks/chips, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/desert_dam/building/cafeteria/cafeteria) "dHK" = ( /obj/effect/landmark/crap_item, @@ -54080,74 +41527,52 @@ }, /obj/effect/spawner/random/toolbox, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/hydroponics/hydroponics) "dHS" = ( /obj/structure/surface/table, /obj/effect/landmark/crap_item, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/desert_dam/building/cafeteria/cafeteria) "dHT" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 10 }, -/turf/open/floor/coagulation{ - icon_state = "0,0" - }, +/turf/open/floor/coagulation/icon0_0, /area/desert_dam/exterior/valley/valley_hydro) "dHX" = ( /obj/effect/decal/sand_overlay/sand1/corner1, /obj/effect/decal/sand_overlay/sand1, -/turf/open/floor/coagulation{ - icon_state = "7,0" - }, +/turf/open/floor/coagulation/icon7_0, /area/desert_dam/exterior/valley/valley_hydro) "dHY" = ( /obj/effect/decal/sand_overlay/sand1, -/turf/open/floor/coagulation{ - icon_state = "2,0" - }, +/turf/open/floor/coagulation/icon2_0, /area/desert_dam/exterior/valley/valley_hydro) "dIa" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 6 }, -/turf/open/floor/coagulation{ - icon_state = "8,0" - }, +/turf/open/floor/coagulation/icon8_0, /area/desert_dam/exterior/valley/valley_hydro) "dId" = ( /obj/effect/decal/sand_overlay/sand1, -/turf/open/floor/coagulation{ - icon_state = "7,0" - }, +/turf/open/floor/coagulation/icon7_0, /area/desert_dam/exterior/valley/valley_hydro) "dIe" = ( /obj/effect/decal/sand_overlay/sand1, -/turf/open/floor/coagulation{ - icon_state = "8,0" - }, +/turf/open/floor/coagulation/icon8_0, /area/desert_dam/exterior/valley/valley_hydro) "dIf" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 8 }, /obj/structure/machinery/colony_floodlight, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_civilian) "dIh" = ( /obj/effect/blocker/toxic_water/Group_2, -/turf/open/gm/river/desert/shallow_edge{ - dir = 10 - }, +/turf/open/gm/river/desert/shallow_edge/southwest, /area/desert_dam/exterior/river/riverside_central_south) "dIi" = ( /obj/structure/machinery/colony_floodlight, @@ -54157,10 +41582,7 @@ /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 4 }, -/turf/open/floor/plating{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/plating/asteroidfloor/north, /area/desert_dam/exterior/valley/valley_civilian) "dIk" = ( /turf/closed/wall, @@ -54174,25 +41596,18 @@ /obj/effect/decal/cleanable/blood{ icon_state = "gib6" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/desert_dam/building/cafeteria/cafeteria) "dIn" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/building/dorms/pool) "dIo" = ( /obj/structure/machinery/door/airlock/almayer/generic{ dir = 2; name = "\improper Showers" }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/desert_dam/building/dorms/pool) "dIp" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -54201,9 +41616,7 @@ dir = 1; name = "\improper Restroom" }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/building/dorms/pool) "dIq" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -54211,15 +41624,10 @@ /obj/effect/decal/cleanable/blood{ icon_state = "gib6" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/desert_dam/building/cafeteria/cafeteria) "dIr" = ( -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/building/dorms/pool) "dIs" = ( /obj/structure/surface/table, @@ -54229,30 +41637,22 @@ /area/desert_dam/building/hydroponics/hydroponics_storage) "dIu" = ( /obj/effect/landmark/crap_item, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/building/cafeteria/loading) "dIw" = ( /obj/structure/machinery/colony_floodlight, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_hydro) "dIz" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 1 }, /obj/structure/machinery/colony_floodlight, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached15" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached15, /area/desert_dam/exterior/valley/valley_hydro) "dIA" = ( /obj/structure/machinery/colony_floodlight, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached14" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached14, /area/desert_dam/exterior/valley/valley_hydro) "dIC" = ( /obj/structure/stairs{ @@ -54261,32 +41661,24 @@ /obj/structure/platform{ dir = 1 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached9" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached9, /area/desert_dam/exterior/valley/valley_hydro) "dID" = ( /obj/structure/platform{ dir = 1 }, -/turf/open/desert/dirt{ - icon_state = "dirt2" - }, +/turf/open/desert/dirt/dirt2, /area/desert_dam/exterior/valley/valley_hydro) "dIG" = ( /obj/structure/platform{ dir = 8 }, /obj/effect/blocker/toxic_water, -/turf/open/gm/river/desert/shallow_edge{ - dir = 10 - }, +/turf/open/gm/river/desert/shallow_edge/southwest, /area/desert_dam/exterior/river_mouth/southern) "dIH" = ( /obj/effect/blocker/toxic_water, -/turf/open/gm/river/desert/shallow_corner{ - dir = 8 - }, +/turf/open/gm/river/desert/shallow_corner/west, /area/desert_dam/exterior/river_mouth/southern) "dII" = ( /obj/structure/platform{ @@ -54296,51 +41688,33 @@ /turf/open/desert/desert_shore/shore_corner2, /area/desert_dam/exterior/river_mouth/southern) "dIJ" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/west, /area/desert_dam/building/dorms/pool) "dIK" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "bluecorner" - }, +/turf/open/floor/prison/bluecorner/north, /area/desert_dam/building/dorms/pool) "dIL" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/north, /area/desert_dam/building/dorms/pool) "dIM" = ( /obj/structure/machinery/atm{ name = "Weyland-Yutani Automatic Teller Machine"; pixel_y = 30 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/north, /area/desert_dam/building/dorms/pool) "dIN" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "bluecorner" - }, +/turf/open/floor/prison/bluecorner/east, /area/desert_dam/building/dorms/pool) "dIO" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk{ dir = 4 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/north, /area/desert_dam/building/dorms/pool) "dIP" = ( /obj/structure/closet/athletic_mixed, @@ -54351,10 +41725,7 @@ dir = 1 }, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/north, /area/desert_dam/building/dorms/pool) "dIQ" = ( /obj/item/clothing/under/shorts/red, @@ -54362,10 +41733,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/north, /area/desert_dam/building/dorms/pool) "dIR" = ( /obj/structure/machinery/power/apc{ @@ -54376,10 +41744,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "bluecorner" - }, +/turf/open/floor/prison/bluecorner/east, /area/desert_dam/building/dorms/pool) "dIS" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -54387,123 +41752,85 @@ dir = 8; icon_state = "pipe-c" }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/building/dorms/pool) "dIT" = ( /obj/structure/closet/lasertag/red, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/north, /area/desert_dam/building/dorms/pool) "dJd" = ( /obj/structure/stairs{ dir = 4 }, /obj/structure/platform, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached15" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached15, /area/desert_dam/exterior/valley/valley_hydro) "dJe" = ( -/turf/open/desert/dirt{ - icon_state = "dirt2" - }, +/turf/open/desert/dirt/dirt2, /area/desert_dam/exterior/river_mouth/southern) "dJf" = ( /obj/effect/blocker/toxic_water, -/turf/open/gm/river/desert/shallow_edge{ - dir = 8 - }, +/turf/open/gm/river/desert/shallow_edge/west, /area/desert_dam/exterior/river_mouth/southern) "dJg" = ( /obj/structure/platform{ dir = 4 }, /obj/effect/blocker/toxic_water, -/turf/open/desert/desert_shore/shore_corner2{ - dir = 4 - }, +/turf/open/desert/desert_shore/shore_corner2/east, /area/desert_dam/exterior/river_mouth/southern) "dJh" = ( /obj/structure/machinery/light, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/desert_dam/building/dorms/hallway_westwing) "dJi" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/desert_dam/building/cafeteria/cafeteria) "dJj" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/building/dorms/pool) "dJm" = ( /obj/item/tool/mop, /obj/structure/surface/rack, -/turf/open/floor/prison{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/east, /area/desert_dam/building/dorms/pool) "dJA" = ( /obj/structure/platform{ dir = 8 }, /obj/effect/blocker/toxic_water, -/turf/open/desert/desert_shore/desert_shore1{ - dir = 8 - }, +/turf/open/desert/desert_shore/desert_shore1/west, /area/desert_dam/exterior/river_mouth/southern) "dJB" = ( /obj/effect/blocker/toxic_water/Group_2, -/turf/open/gm/river/desert/shallow_edge{ - dir = 5 - }, +/turf/open/gm/river/desert/shallow_edge/northeast, /area/desert_dam/exterior/river/riverside_east) "dJC" = ( /obj/effect/blocker/toxic_water, -/turf/open/gm/river/desert/shallow_corner{ - dir = 4 - }, +/turf/open/gm/river/desert/shallow_corner/east, /area/desert_dam/exterior/river_mouth/southern) "dJD" = ( /obj/effect/blocker/toxic_water, -/turf/open/gm/river/desert/shallow_edge{ - dir = 6 - }, +/turf/open/gm/river/desert/shallow_edge/southeast, /area/desert_dam/exterior/river_mouth/southern) "dJE" = ( /obj/structure/platform{ dir = 4 }, /obj/effect/blocker/toxic_water, -/turf/open/desert/desert_shore/desert_shore1{ - dir = 4 - }, +/turf/open/desert/desert_shore/desert_shore1/east, /area/desert_dam/exterior/river_mouth/southern) "dJG" = ( -/turf/open/floor/prison{ - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull, /area/desert_dam/building/dorms/pool) "dJJ" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 8; - icon_state = "whiteyellow" - }, +/turf/open/floor/whiteyellow/west, /area/desert_dam/interior/dam_interior/break_room) "dJK" = ( /obj/structure/sink{ @@ -54511,40 +41838,29 @@ pixel_x = 11 }, /obj/effect/decal/cleanable/vomit, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/building/administration/hallway) "dJL" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/administration/control_room) "dJN" = ( /obj/effect/decal/cleanable/blood{ layer = 3 }, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/administration/lobby) "dJP" = ( /obj/effect/decal/cleanable/blood{ icon_state = "gib6" }, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/administration/lobby) "dJQ" = ( /obj/effect/decal/cleanable/blood{ layer = 3 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/west, /area/desert_dam/building/administration/lobby) "dJR" = ( /obj/structure/lz_sign/dam_sign/damaged, @@ -54555,9 +41871,7 @@ dir = 1 }, /obj/effect/blocker/toxic_water, -/turf/open/desert/desert_shore/shore_edge1{ - dir = 1 - }, +/turf/open/desert/desert_shore/shore_edge1/north, /area/desert_dam/exterior/river_mouth/southern) "dJT" = ( /obj/effect/blocker/toxic_water/Group_2, @@ -54567,34 +41881,23 @@ /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/building/dorms/pool) "dJV" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/desert_dam/building/cafeteria/cafeteria) "dJW" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/desert_dam/building/cafeteria/cafeteria) "dJX" = ( /obj/structure/surface/rack, -/turf/open/floor/prison{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/east, /area/desert_dam/building/dorms/pool) "dJY" = ( /obj/structure/pipes/vents/pump{ @@ -54603,17 +41906,13 @@ /obj/effect/decal/cleanable/blood{ layer = 3 }, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/administration/lobby) "dJZ" = ( /obj/effect/decal/cleanable/blood{ icon_state = "gib6" }, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/administration/hallway) "dKa" = ( /obj/structure/disposalpipe/segment, @@ -54627,24 +41926,17 @@ /obj/effect/decal/cleanable/blood{ layer = 3 }, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/administration/hallway) "dKc" = ( /obj/effect/decal/cleanable/blood{ layer = 3 }, -/turf/open/floor{ - dir = 8; - icon_state = "carpet11-12" - }, +/turf/open/floor/carpet11_12/west, /area/desert_dam/building/administration/overseer_office) "dKd" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/carpet/edge{ - dir = 6 - }, +/turf/open/floor/carpet/edge/southeast, /area/desert_dam/building/administration/meetingrooom) "dKe" = ( /obj/effect/decal/cleanable/blood{ @@ -54675,58 +41967,37 @@ "dKk" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowcorner" - }, +/turf/open/floor/whiteyellowcorner/east, /area/desert_dam/interior/dam_interior/break_room) "dKl" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowcorner" - }, +/turf/open/floor/whiteyellowcorner/east, /area/desert_dam/interior/dam_interior/break_room) "dKm" = ( /obj/structure/surface/table, -/turf/open/floor/prison{ - dir = 10; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/southwest, /area/desert_dam/building/dorms/pool) "dKn" = ( /obj/structure/surface/table, -/turf/open/floor/prison{ - icon_state = "blue" - }, +/turf/open/floor/prison/blue, /area/desert_dam/building/dorms/pool) "dKo" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "bluecorner" - }, +/turf/open/floor/prison/bluecorner/west, /area/desert_dam/building/dorms/pool) "dKp" = ( /obj/item/toy/beach_ball, -/turf/open/floor/prison{ - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull, /area/desert_dam/building/dorms/pool) "dKs" = ( /obj/effect/landmark/survivor_spawner, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowcorner" - }, +/turf/open/floor/whiteyellowcorner/east, /area/desert_dam/interior/dam_interior/break_room) "dKt" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/desert_dam/interior/dam_interior/break_room) "dKv" = ( /obj/structure/window/reinforced{ @@ -54734,57 +42005,40 @@ health = 80 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkbrown3" - }, +/turf/open/floor/prison/darkbrown3/west, /area/desert_dam/interior/dam_interior/disposals) "dKx" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/desert_dam/interior/dam_interior/west_tunnel) "dKz" = ( /obj/structure/machinery/light{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/interior/dam_interior/west_tunnel) "dKA" = ( /obj/effect/blocker/toxic_water/Group_2, -/turf/open/desert/desert_shore/shore_corner2{ - dir = 8 - }, +/turf/open/desert/desert_shore/shore_corner2/west, /area/desert_dam/exterior/river/riverside_east) "dKB" = ( /obj/structure/platform{ dir = 1 }, /obj/effect/blocker/toxic_water, -/turf/open/desert/desert_shore/desert_shore1{ - dir = 1 - }, +/turf/open/desert/desert_shore/desert_shore1/north, /area/desert_dam/exterior/river_mouth/southern) "dKE" = ( /obj/effect/decal/sand_overlay/sand1, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached18" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached18, /area/desert_dam/exterior/valley/bar_valley_dam) "dKF" = ( -/turf/open/floor/prison{ - icon_state = "blue" - }, +/turf/open/floor/prison/blue, /area/desert_dam/building/dorms/pool) "dKG" = ( /obj/structure/machinery/light, -/turf/open/floor/prison{ - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull, /area/desert_dam/building/dorms/pool) "dKI" = ( /obj/structure/bed/chair{ @@ -54793,55 +42047,38 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/crap_item, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowcorner" - }, +/turf/open/floor/whiteyellowcorner/east, /area/desert_dam/interior/dam_interior/break_room) "dKJ" = ( /obj/effect/blocker/toxic_water, -/turf/open/desert/desert_shore/shore_corner2{ - dir = 4 - }, +/turf/open/desert/desert_shore/shore_corner2/east, /area/desert_dam/exterior/river_mouth/southern) "dKK" = ( /obj/structure/platform{ dir = 4 }, /obj/effect/blocker/toxic_water, -/turf/open/desert/desert_shore/shore_edge1{ - dir = 8 - }, +/turf/open/desert/desert_shore/shore_edge1/west, /area/desert_dam/exterior/river_mouth/southern) "dKL" = ( /obj/effect/blocker/toxic_water, -/turf/open/desert/desert_shore/desert_shore1{ - dir = 8 - }, +/turf/open/desert/desert_shore/desert_shore1/west, /area/desert_dam/exterior/river_mouth/southern) "dKM" = ( /obj/effect/blocker/toxic_water, -/turf/open/desert/desert_shore/desert_shore1{ - dir = 4 - }, +/turf/open/desert/desert_shore/desert_shore1/east, /area/desert_dam/exterior/river_mouth/southern) "dKN" = ( /obj/effect/blocker/toxic_water, -/turf/open/gm/river/desert/shallow_edge{ - dir = 9 - }, +/turf/open/gm/river/desert/shallow_edge/northwest, /area/desert_dam/exterior/river_mouth/southern) "dKO" = ( /obj/effect/blocker/toxic_water, -/turf/open/gm/river/desert/shallow_corner{ - dir = 1 - }, +/turf/open/gm/river/desert/shallow_corner/north, /area/desert_dam/exterior/river_mouth/southern) "dKP" = ( /obj/effect/blocker/toxic_water, -/turf/open/desert/desert_shore/shore_edge1{ - dir = 8 - }, +/turf/open/desert/desert_shore/shore_edge1/west, /area/desert_dam/exterior/river_mouth/southern) "dKQ" = ( /obj/effect/blocker/toxic_water, @@ -54853,9 +42090,7 @@ /area/desert_dam/exterior/river_mouth/southern) "dKS" = ( /obj/structure/machinery/colony_floodlight, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached2" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached2, /area/desert_dam/exterior/valley/valley_hydro) "dKT" = ( /obj/structure/surface/table, @@ -54864,10 +42099,7 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowcorner" - }, +/turf/open/floor/whiteyellowcorner/east, /area/desert_dam/interior/dam_interior/break_room) "dKU" = ( /obj/structure/bed/chair{ @@ -54877,39 +42109,28 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowcorner" - }, +/turf/open/floor/whiteyellowcorner/east, /area/desert_dam/interior/dam_interior/break_room) "dKV" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowcorner" - }, +/turf/open/floor/whiteyellowcorner/east, /area/desert_dam/interior/dam_interior/break_room) "dKW" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowcorner" - }, +/turf/open/floor/whiteyellowcorner/east, /area/desert_dam/interior/dam_interior/break_room) "dKY" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/desert_dam/interior/dam_interior/break_room) "dKZ" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ @@ -54920,9 +42141,7 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/desert_dam/interior/dam_interior/break_room) "dLa" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -54944,10 +42163,7 @@ dir = 8 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkbrown3" - }, +/turf/open/floor/prison/darkbrown3/west, /area/desert_dam/interior/dam_interior/disposals) "dLe" = ( /obj/structure/surface/table, @@ -54956,31 +42172,22 @@ /obj/item/storage/toolbox/emergency, /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkbrown3" - }, +/turf/open/floor/prison/darkbrown3/east, /area/desert_dam/interior/dam_interior/disposals) "dLf" = ( /obj/effect/blocker/toxic_water/Group_2, -/turf/open/desert/desert_shore/desert_shore1{ - dir = 1 - }, +/turf/open/desert/desert_shore/desert_shore1/north, /area/desert_dam/exterior/river/riverside_east) "dLg" = ( /obj/effect/blocker/toxic_water/Group_2, -/turf/open/desert/desert_shore/shore_corner2{ - dir = 1 - }, +/turf/open/desert/desert_shore/shore_corner2/north, /area/desert_dam/exterior/river/riverside_east) "dLh" = ( /obj/structure/platform{ dir = 4 }, /obj/effect/blocker/toxic_water/Group_2, -/turf/open/desert/desert_shore/desert_shore1{ - dir = 1 - }, +/turf/open/desert/desert_shore/desert_shore1/north, /area/desert_dam/exterior/river/riverside_east) "dLi" = ( /obj/structure/platform{ @@ -54991,9 +42198,7 @@ /area/desert_dam/exterior/river/riverside_east) "dLj" = ( /obj/effect/blocker/toxic_water/Group_2, -/turf/open/gm/river/desert/shallow_edge{ - dir = 9 - }, +/turf/open/gm/river/desert/shallow_edge/northwest, /area/desert_dam/exterior/river/riverside_east) "dLk" = ( /obj/effect/blocker/toxic_water/Group_2, @@ -55004,27 +42209,21 @@ dir = 4 }, /obj/effect/blocker/toxic_water/Group_2, -/turf/open/gm/river/desert/shallow_edge{ - dir = 1 - }, +/turf/open/gm/river/desert/shallow_edge/north, /area/desert_dam/exterior/river/riverside_east) "dLn" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/desert_dam/interior/dam_interior/break_room) "dLp" = ( /obj/structure/platform{ dir = 8 }, /obj/effect/blocker/toxic_water/Group_2, -/turf/open/gm/river/desert/shallow_edge{ - dir = 1 - }, +/turf/open/gm/river/desert/shallow_edge/north, /area/desert_dam/exterior/river/riverside_east) "dLq" = ( /obj/effect/blocker/toxic_water/Group_2, @@ -55036,9 +42235,7 @@ /area/desert_dam/exterior/river/riverside_central_south) "dLt" = ( /obj/effect/blocker/toxic_water/Group_2, -/turf/open/gm/river/desert/shallow_corner{ - dir = 4 - }, +/turf/open/gm/river/desert/shallow_corner/east, /area/desert_dam/exterior/river/riverside_east) "dLu" = ( /obj/effect/blocker/toxic_water/Group_2, @@ -55046,21 +42243,15 @@ /area/desert_dam/exterior/river/riverside_east) "dLv" = ( /obj/effect/blocker/toxic_water/Group_2, -/turf/open/gm/river/desert/shallow_corner{ - dir = 8 - }, +/turf/open/gm/river/desert/shallow_corner/west, /area/desert_dam/exterior/river/riverside_east) "dLz" = ( /obj/effect/blocker/toxic_water/Group_2, -/turf/open/gm/river/desert/shallow_edge{ - dir = 6 - }, +/turf/open/gm/river/desert/shallow_edge/southeast, /area/desert_dam/exterior/river/riverside_east) "dLA" = ( /obj/effect/blocker/toxic_water/Group_2, -/turf/open/gm/river/desert/shallow_edge{ - dir = 10 - }, +/turf/open/gm/river/desert/shallow_edge/southwest, /area/desert_dam/exterior/river/riverside_east) "dLC" = ( /obj/effect/blocker/toxic_water/Group_2, @@ -55074,9 +42265,7 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/desert_dam/interior/dam_interior/break_room) "dLF" = ( /obj/structure/platform{ @@ -55103,9 +42292,7 @@ "dLL" = ( /obj/structure/platform, /obj/effect/blocker/toxic_water/Group_2, -/turf/open/desert/desert_shore/shore_corner2{ - dir = 4 - }, +/turf/open/desert/desert_shore/shore_corner2/east, /area/desert_dam/exterior/river/riverside_central_south) "dLM" = ( /obj/structure/platform, @@ -55129,9 +42316,7 @@ /area/desert_dam/exterior/river/riverside_east) "dLQ" = ( /obj/effect/blocker/toxic_water/Group_2, -/turf/open/desert/desert_shore/shore_corner2{ - dir = 4 - }, +/turf/open/desert/desert_shore/shore_corner2/east, /area/desert_dam/exterior/river/riverside_east) "dLR" = ( /obj/structure/platform{ @@ -55176,16 +42361,12 @@ "dLY" = ( /obj/structure/platform, /obj/effect/blocker/toxic_water/Group_2, -/turf/open/desert/desert_shore/shore_corner2{ - dir = 4 - }, +/turf/open/desert/desert_shore/shore_corner2/east, /area/desert_dam/exterior/river/riverside_east) "dLZ" = ( /obj/structure/platform, /obj/effect/blocker/toxic_water/Group_2, -/turf/open/desert/desert_shore/shore_edge1{ - dir = 8 - }, +/turf/open/desert/desert_shore/shore_edge1/west, /area/desert_dam/exterior/river/riverside_east) "dMf" = ( /obj/effect/blocker/toxic_water/Group_2, @@ -55199,10 +42380,7 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 8; - icon_state = "whiteyellow" - }, +/turf/open/floor/whiteyellow/west, /area/desert_dam/interior/dam_interior/break_room) "dMo" = ( /obj/structure/bed/chair{ @@ -55212,10 +42390,7 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowcorner" - }, +/turf/open/floor/whiteyellowcorner/east, /area/desert_dam/interior/dam_interior/break_room) "dMq" = ( /obj/structure/platform, @@ -55224,28 +42399,20 @@ /area/desert_dam/exterior/river/riverside_east) "dMw" = ( /obj/effect/blocker/toxic_water/Group_2, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/river/riverside_east) "dMx" = ( /obj/structure/surface/table, /obj/item/clothing/ears/earmuffs, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowcorner" - }, +/turf/open/floor/whiteyellowcorner/east, /area/desert_dam/interior/dam_interior/break_room) "dMC" = ( /obj/structure/bed/chair{ dir = 8 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowcorner" - }, +/turf/open/floor/whiteyellowcorner/east, /area/desert_dam/interior/dam_interior/break_room) "dMN" = ( /obj/structure/flora/grass/tallgrass/desert/corner{ @@ -55269,10 +42436,7 @@ start_charge = 150 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/desert_dam/interior/dam_interior/garage) "dNa" = ( /obj/structure/flora/grass/tallgrass/desert/corner{ @@ -55294,10 +42458,7 @@ /area/desert_dam/interior/dam_interior/west_tunnel) "dNh" = ( /obj/item/seeds/riceseed, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/hydroponics/hydroponics) "dNi" = ( /obj/structure/machinery/computer/cameras{ @@ -55305,23 +42466,16 @@ network = list("chigusa_1") }, /obj/structure/surface/table, -/turf/open/floor/prison{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/prison/red/northwest, /area/desert_dam/building/water_treatment_one/lobby) "dNk" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "whiteyellowcorner" - }, +/turf/open/floor/whiteyellowcorner, /area/desert_dam/interior/dam_interior/break_room) "dNl" = ( /obj/structure/disposalpipe/segment, /obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/desert_dam/interior/dam_interior/central_tunnel) "dNm" = ( /obj/structure/window/reinforced{ @@ -55330,20 +42484,13 @@ }, /obj/structure/machinery/light, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkbrown3" - }, +/turf/open/floor/prison/darkbrown3/southwest, /area/desert_dam/interior/dam_interior/disposals) "dNo" = ( -/turf/open/desert/dirt{ - icon_state = "desert_transition_corner1" - }, +/turf/open/desert/dirt/desert_transition_corner1, /area/desert_dam/exterior/valley/valley_hydro) "dNp" = ( -/turf/open/desert/dirt{ - icon_state = "rock1" - }, +/turf/open/desert/dirt/rock1, /area/desert_dam/exterior/valley/valley_hydro) "dNr" = ( /obj/effect/blocker/toxic_water/Group_1, @@ -55360,51 +42507,37 @@ dir = 1 }, /obj/effect/blocker/toxic_water/Group_1, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_hydro) "dNu" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 1 }, /obj/effect/blocker/toxic_water/Group_1, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_hydro) "dNv" = ( /obj/effect/blocker/toxic_water/Group_1, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached3" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached3, /area/desert_dam/exterior/valley/valley_hydro) "dNw" = ( /obj/effect/blocker/toxic_water/Group_1, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached1" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached1, /area/desert_dam/exterior/valley/valley_hydro) "dNx" = ( /obj/effect/blocker/toxic_water/Group_1, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_hydro) "dNB" = ( /obj/structure/surface/table, /obj/item/storage/box/lightstick/red, /obj/effect/landmark/good_item, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2, /area/desert_dam/interior/dam_interior/disposals) "dNC" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached12" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached12, /area/desert_dam/exterior/valley/valley_civilian) "dNF" = ( /obj/structure/surface/table, @@ -55412,25 +42545,18 @@ /obj/effect/spawner/random/tool, /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 6; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/southeast, /area/desert_dam/interior/dam_interior/disposals) "dNG" = ( /obj/structure/bed/chair{ dir = 8 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "whiteyellow" - }, +/turf/open/floor/whiteyellow, /area/desert_dam/interior/dam_interior/break_room) "dNI" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached4" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached4, /area/desert_dam/exterior/valley/valley_medical) "dNR" = ( /obj/effect/decal/warning_stripes{ @@ -55453,17 +42579,12 @@ "dNV" = ( /obj/structure/disposalpipe/segment, /obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached12" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached12, /area/desert_dam/exterior/valley/valley_medical) "dNW" = ( /obj/structure/disposalpipe/segment, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/east, /area/desert_dam/building/medical/west_wing_hallway) "dNX" = ( /obj/effect/decal/cleanable/blood, @@ -55471,17 +42592,11 @@ /area/desert_dam/building/water_treatment_one/control_room) "dNY" = ( /obj/item/weapon/gun/shotgun/pump/dual_tube/cmb, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/water_treatment_one/control_room) "dOa" = ( /obj/item/stack/sheet/wood, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/water_treatment_one/control_room) "dOc" = ( /obj/structure/disposalpipe/segment, @@ -55521,10 +42636,7 @@ /area/desert_dam/building/medical/break_room) "dOj" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreencorner" - }, +/turf/open/floor/prison/whitegreencorner/east, /area/desert_dam/building/medical/west_wing_hallway) "dOk" = ( /obj/item/shard, @@ -55536,35 +42648,23 @@ /area/desert_dam/building/water_treatment_one/equipment) "dOl" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/medical/west_wing_hallway) "dOm" = ( /obj/structure/disposalpipe/segment, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/medical/west_wing_hallway) "dOn" = ( /obj/structure/machinery/light{ dir = 1 }, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/desert_dam/building/medical/morgue) "dOo" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/medical/break_room) "dOp" = ( /obj/structure/machinery/door/airlock/almayer/generic{ @@ -55584,9 +42684,7 @@ /area/desert_dam/building/medical/break_room) "dOt" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/desert_dam/building/medical/chemistry) "dOu" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -55596,10 +42694,7 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/medical/west_wing_hallway) "dOv" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -55609,10 +42704,7 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 9; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/northwest, /area/desert_dam/building/medical/west_wing_hallway) "dOw" = ( /obj/structure/flora/grass/tallgrass/desert/corner{ @@ -55622,27 +42714,18 @@ /area/desert_dam/exterior/valley/valley_civilian) "dOx" = ( /obj/item/alien_embryo, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/medical/morgue) "dOy" = ( /obj/effect/decal/cleanable/blood{ icon_state = "gib6" }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/medical/morgue) "dOA" = ( /obj/effect/decal/cleanable/dirt, /obj/item/weapon/broken_bottle, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/east, /area/desert_dam/building/medical/break_room) "dOC" = ( /obj/structure/bed/chair{ @@ -55665,26 +42748,17 @@ /area/desert_dam/building/medical/break_room) "dOG" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/west, /area/desert_dam/building/medical/west_wing_hallway) "dOH" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/disposalpipe/segment, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/east, /area/desert_dam/building/medical/west_wing_hallway) "dOI" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/medical/morgue) "dOJ" = ( /obj/structure/disposalpipe/segment{ @@ -55706,10 +42780,7 @@ "dOL" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/east, /area/desert_dam/building/medical/break_room) "dOM" = ( /obj/structure/surface/table/almayer, @@ -55732,20 +42803,14 @@ /area/desert_dam/building/medical/break_room) "dOS" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/medical/chemistry) "dOT" = ( /obj/effect/decal/cleanable/blood{ dir = 4; icon_state = "gib6" }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/medical/morgue) "dOV" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -55755,10 +42820,7 @@ /area/desert_dam/building/medical/break_room) "dOW" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/east, /area/desert_dam/building/medical/break_room) "dOX" = ( /obj/effect/decal/cleanable/dirt, @@ -55789,22 +42851,15 @@ dir = 4 }, /obj/effect/decal/cleanable/blood, -/turf/open/floor{ - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple, /area/desert_dam/building/medical/chemistry) "dPb" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/desert_dam/building/medical/morgue) "dPd" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor{ - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner, /area/desert_dam/building/medical/chemistry) "dPe" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/medidoor/colony, @@ -55821,10 +42876,7 @@ "dPj" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/light, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitered" - }, +/turf/open/floor/prison/whitered/southwest, /area/desert_dam/building/medical/chemistry) "dPk" = ( /obj/structure/disposalpipe/segment{ @@ -55832,44 +42884,29 @@ icon_state = "pipe-c" }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/west, /area/desert_dam/building/medical/west_wing_hallway) "dPl" = ( /obj/structure/machinery/light{ dir = 1 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/north, /area/desert_dam/building/medical/north_wing_hallway) "dPm" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreencorner" - }, +/turf/open/floor/prison/whitegreencorner/east, /area/desert_dam/building/medical/north_wing_hallway) "dPo" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/disposalpipe/segment, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/medical/north_wing_hallway) "dPr" = ( /obj/structure/disposalpipe/segment, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/west, /area/desert_dam/building/medical/west_wing_hallway) "dPs" = ( /obj/structure/pipes/standard/manifold/hidden/green{ @@ -55880,10 +42917,7 @@ icon_state = "pipe-c" }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreencorner" - }, +/turf/open/floor/prison/whitegreencorner/north, /area/desert_dam/building/medical/west_wing_hallway) "dPt" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -55893,10 +42927,7 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/north, /area/desert_dam/building/medical/north_wing_hallway) "dPu" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -55907,10 +42938,7 @@ }, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/north, /area/desert_dam/building/medical/north_wing_hallway) "dPy" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -55920,10 +42948,7 @@ dir = 4 }, /obj/item/clothing/gloves/latex, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/north, /area/desert_dam/building/medical/north_wing_hallway) "dPz" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -55935,17 +42960,11 @@ }, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/desert_dam/building/medical/north_wing_hallway) "dPG" = ( /obj/item/trash/sosjerky, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/medical/lobby) "dPH" = ( /obj/structure/disposalpipe/segment{ @@ -55953,23 +42972,16 @@ icon_state = "pipe-c" }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/west, /area/desert_dam/building/medical/west_wing_hallway) "dPI" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen, /area/desert_dam/building/medical/north_wing_hallway) "dPJ" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen, /area/desert_dam/building/medical/north_wing_hallway) "dPK" = ( /obj/structure/pipes/vents/pump{ @@ -55977,17 +42989,13 @@ }, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen, /area/desert_dam/building/medical/north_wing_hallway) "dPL" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /obj/item/trash/raisins, -/turf/open/floor/prison{ - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen, /area/desert_dam/building/medical/north_wing_hallway) "dPM" = ( /obj/structure/disposalpipe/segment{ @@ -55995,24 +43003,15 @@ icon_state = "pipe-c" }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/desert_dam/building/medical/north_wing_hallway) "dPN" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 6; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/southeast, /area/desert_dam/building/medical/north_wing_hallway) "dPO" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/medical/north_wing_hallway) "dPR" = ( /obj/structure/desertdam/decals/road_edge{ @@ -56023,43 +43022,30 @@ /area/desert_dam/exterior/valley/valley_medical) "dPS" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached13" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached13, /area/desert_dam/exterior/valley/valley_medical) "dPT" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/medical/lobby) "dPU" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/north, /area/desert_dam/building/medical/lobby) "dPW" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/north, /area/desert_dam/building/medical/west_wing_hallway) "dPX" = ( /obj/structure/machinery/light, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen, /area/desert_dam/building/medical/north_wing_hallway) "dPY" = ( /obj/effect/decal/cleanable/dirt, @@ -56078,82 +43064,53 @@ name = "\improper Medical Lobby" }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/medical/lobby) "dQb" = ( /obj/effect/decal/cleanable/blood, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 5; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/northeast, /area/desert_dam/building/medical/lobby) "dQc" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/east, /area/desert_dam/building/medical/lobby) "dQd" = ( /obj/effect/decal/cleanable/dirt, /obj/item/clothing/gloves/latex, -/turf/open/floor/prison{ - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen, /area/desert_dam/building/medical/lobby) "dQe" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen, /area/desert_dam/building/medical/lobby) "dQf" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen, /area/desert_dam/building/medical/west_wing_hallway) "dQg" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreencorner" - }, +/turf/open/floor/prison/whitegreencorner/west, /area/desert_dam/building/medical/west_wing_hallway) "dQh" = ( /obj/effect/decal/cleanable/dirt, /obj/item/device/healthanalyzer, -/turf/open/floor/prison{ - icon_state = "whitegreencorner" - }, +/turf/open/floor/prison/whitegreencorner, /area/desert_dam/building/medical/lobby) "dQj" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/disposalpipe/segment, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/east, /area/desert_dam/building/medical/east_wing_hallway) "dQk" = ( /obj/effect/decal/cleanable/dirt, /obj/item/tool/extinguisher, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/west, /area/desert_dam/building/medical/west_wing_hallway) "dQl" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitered" - }, +/turf/open/floor/prison/whitered/east, /area/desert_dam/building/medical/primary_storage) "dQm" = ( /obj/structure/disposalpipe/segment{ @@ -56161,10 +43118,7 @@ icon_state = "pipe-c" }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/west, /area/desert_dam/building/medical/east_wing_hallway) "dQn" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -56173,26 +43127,17 @@ icon_state = "pipe-j2" }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/east, /area/desert_dam/building/medical/east_wing_hallway) "dQp" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/medical/lobby) "dQq" = ( /obj/structure/disposalpipe/segment, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/west, /area/desert_dam/building/medical/east_wing_hallway) "dQr" = ( /obj/structure/pipes/standard/manifold/hidden/green{ @@ -56206,28 +43151,19 @@ /obj/effect/decal/cleanable/blood{ icon_state = "gib6" }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/east, /area/desert_dam/building/medical/east_wing_hallway) "dQs" = ( /obj/effect/decal/cleanable/blood{ icon_state = "gib6" }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/medical/lobby) "dQt" = ( /obj/structure/disposalpipe/segment, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/medical/primary_storage) "dQu" = ( /obj/structure/disposalpipe/segment{ @@ -56236,10 +43172,7 @@ }, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/west, /area/desert_dam/building/medical/east_wing_hallway) "dQv" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -56252,18 +43185,12 @@ /obj/effect/decal/cleanable/blood{ icon_state = "gib6" }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/east, /area/desert_dam/building/medical/east_wing_hallway) "dQw" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/west, /area/desert_dam/building/medical/east_wing_hallway) "dQx" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -56272,10 +43199,7 @@ /obj/structure/bed/roller, /obj/effect/landmark/corpsespawner/scientist, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/east, /area/desert_dam/building/medical/east_wing_hallway) "dQy" = ( /obj/effect/decal/cleanable/blood{ @@ -56283,17 +43207,11 @@ icon_state = "gib6" }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/medical/lobby) "dQz" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreencorner" - }, +/turf/open/floor/prison/whitegreencorner/north, /area/desert_dam/building/medical/lobby) "dQA" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -56302,10 +43220,7 @@ icon_state = "pipe-c" }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/east, /area/desert_dam/building/medical/west_wing_hallway) "dQB" = ( /obj/effect/decal/cleanable/dirt, @@ -56314,74 +43229,45 @@ dir = 4; icon_state = "gib6" }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/west, /area/desert_dam/building/medical/east_wing_hallway) "dQC" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 6; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/southeast, /area/desert_dam/building/medical/lobby) "dQD" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/southwest, /area/desert_dam/building/medical/lobby) "dQE" = ( /obj/effect/decal/cleanable/dirt, /obj/item/weapon/broken_bottle, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/medical/lobby) "dQF" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/north, /area/desert_dam/building/medical/lobby) "dQG" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/north, /area/desert_dam/building/medical/west_wing_hallway) "dQH" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "whitegreencorner" - }, +/turf/open/floor/prison/whitegreencorner, /area/desert_dam/building/medical/west_wing_hallway) "dQI" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/medical/surgery_room_one) "dQJ" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 9; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/northwest, /area/desert_dam/building/medical/lobby) "dQK" = ( /obj/effect/decal/cleanable/blood, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/east, /area/desert_dam/building/medical/lobby) "dQL" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/medidoor/colony{ @@ -56389,33 +43275,22 @@ name = "\improper Medical Lobby" }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen, /area/desert_dam/building/medical/lobby) "dQM" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/east, /area/desert_dam/building/medical/west_wing_hallway) "dQO" = ( /obj/structure/machinery/optable, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/medical/surgery_room_one) "dQP" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /obj/item/trash/kepler, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/west, /area/desert_dam/building/medical/east_wing_hallway) "dQQ" = ( /obj/structure/disposalpipe/segment{ @@ -56425,134 +43300,86 @@ /obj/effect/decal/cleanable/blood{ icon_state = "gib6" }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/medical/surgery_room_one) "dQR" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/medidoor/colony{ name = "\improper Emergency Room" }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/medical/emergency_room) "dQX" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/medical/emergency_room) "dQY" = ( /obj/item/trash/used_stasis_bag, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreencorner" - }, +/turf/open/floor/prison/whitegreencorner/north, /area/desert_dam/building/medical/emergency_room) "dRc" = ( /obj/structure/pipes/standard/simple/hidden{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 9; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/northwest, /area/desert_dam/building/medical/emergency_room) "dRd" = ( /obj/structure/pipes/standard/simple/hidden{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/north, /area/desert_dam/building/medical/emergency_room) "dRe" = ( /obj/structure/pipes/standard/simple/hidden{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 5; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/northeast, /area/desert_dam/building/medical/emergency_room) "dRf" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/vomit, -/turf/open/floor/prison{ - dir = 9; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/northwest, /area/desert_dam/building/medical/emergency_room) "dRg" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/north, /area/desert_dam/building/medical/emergency_room) "dRh" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 5; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/northeast, /area/desert_dam/building/medical/emergency_room) "dRi" = ( /obj/item/clothing/head/surgery/blue, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreencorner" - }, +/turf/open/floor/prison/whitegreencorner/east, /area/desert_dam/building/medical/treatment_room) "dRj" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreencorner" - }, +/turf/open/floor/prison/whitegreencorner/east, /area/desert_dam/building/medical/east_wing_hallway) "dRk" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/medical/east_wing_hallway) "dRl" = ( /obj/effect/decal/cleanable/blood{ dir = 4; icon_state = "gib6" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/desert_dam/building/medical/emergency_room) "dRm" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/desert_dam/building/medical/emergency_room) "dRn" = ( /obj/effect/decal/medical_decals{ icon_state = "cryocell1decal" }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 5; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/northeast, /area/desert_dam/building/medical/emergency_room) "dRo" = ( /obj/effect/decal/medical_decals{ @@ -56560,123 +43387,78 @@ }, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 9; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/northwest, /area/desert_dam/building/medical/emergency_room) "dRp" = ( /obj/effect/decal/cleanable/blood, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/desert_dam/building/medical/emergency_room) "dRq" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/north, /area/desert_dam/building/medical/treatment_room) "dRr" = ( /obj/structure/disposalpipe/segment, /obj/effect/decal/cleanable/dirt, /obj/item/device/healthanalyzer, -/turf/open/floor/prison{ - dir = 5; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/northeast, /area/desert_dam/building/medical/treatment_room) "dRs" = ( /obj/effect/decal/medical_decals{ icon_state = "triagedecalleft" }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/north, /area/desert_dam/building/medical/east_wing_hallway) "dRt" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/desert_dam/building/medical/east_wing_hallway) "dRu" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/disposalpipe/segment, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/desert_dam/building/medical/east_wing_hallway) "dRv" = ( /obj/structure/pipes/vents/pump, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/north, /area/desert_dam/building/medical/east_wing_hallway) "dRy" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/north, /area/desert_dam/building/medical/east_wing_hallway) "dRz" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/desert_dam/building/medical/east_wing_hallway) "dRA" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/vomit, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/desert_dam/building/medical/east_wing_hallway) "dRC" = ( /obj/item/device/healthanalyzer, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/north, /area/desert_dam/building/medical/east_wing_hallway) "dRD" = ( /obj/structure/disposalpipe/segment, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/north, /area/desert_dam/building/medical/east_wing_hallway) "dRE" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/desert_dam/building/medical/emergency_room) "dRF" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/vomit, -/turf/open/floor/prison{ - dir = 6; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/southeast, /area/desert_dam/building/medical/emergency_room) "dRG" = ( /obj/structure/pipes/vents/pump{ @@ -56684,10 +43466,7 @@ }, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/medical/emergency_room) "dRH" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -56695,20 +43474,14 @@ }, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/southwest, /area/desert_dam/building/medical/emergency_room) "dRI" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/desert_dam/building/medical/emergency_room) "dRJ" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -56718,10 +43491,7 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/north, /area/desert_dam/building/medical/treatment_room) "dRL" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -56731,10 +43501,7 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/west, /area/desert_dam/building/medical/treatment_room) "dRM" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -56744,10 +43511,7 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/desert_dam/building/medical/treatment_room) "dRN" = ( /obj/structure/pipes/standard/manifold/hidden/green, @@ -56755,10 +43519,7 @@ dir = 8 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/desert_dam/building/medical/treatment_room) "dRO" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -56768,10 +43529,7 @@ dir = 8 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/east, /area/desert_dam/building/medical/treatment_room) "dRP" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -56781,9 +43539,7 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen, /area/desert_dam/building/medical/treatment_room) "dRQ" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/medidoor/colony{ @@ -56797,9 +43553,7 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen, /area/desert_dam/building/medical/treatment_room) "dRR" = ( /obj/effect/decal/medical_decals{ @@ -56812,9 +43566,7 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen, /area/desert_dam/building/medical/east_wing_hallway) "dRS" = ( /obj/structure/pipes/standard/manifold/hidden/green, @@ -56822,9 +43574,7 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen, /area/desert_dam/building/medical/east_wing_hallway) "dRT" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -56834,9 +43584,7 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen, /area/desert_dam/building/medical/east_wing_hallway) "dRV" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -56847,9 +43595,7 @@ }, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen, /area/desert_dam/building/medical/east_wing_hallway) "dRX" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -56861,9 +43607,7 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /obj/item/weapon/broken_bottle, -/turf/open/floor/prison{ - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen, /area/desert_dam/building/medical/east_wing_hallway) "dRY" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -56874,10 +43618,7 @@ }, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/desert_dam/building/medical/east_wing_hallway) "dRZ" = ( /obj/structure/pipes/standard/manifold/hidden/green{ @@ -56888,10 +43629,7 @@ icon_state = "pipe-j2" }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/desert_dam/building/medical/east_wing_hallway) "dSa" = ( /obj/structure/disposalpipe/segment{ @@ -56901,9 +43639,7 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen, /area/desert_dam/building/medical/east_wing_hallway) "dSb" = ( /obj/structure/pipes/vents/pump{ @@ -56913,18 +43649,14 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen, /area/desert_dam/building/medical/east_wing_hallway) "dSc" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen, /area/desert_dam/building/medical/east_wing_hallway) "dSd" = ( /obj/structure/disposalpipe/segment{ @@ -56932,86 +43664,55 @@ icon_state = "pipe-c" }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen, /area/desert_dam/building/medical/east_wing_hallway) "dSe" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/southwest, /area/desert_dam/building/medical/emergency_room) "dSf" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen, /area/desert_dam/building/medical/emergency_room) "dSg" = ( /obj/effect/decal/cleanable/blood, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 6; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/southeast, /area/desert_dam/building/medical/emergency_room) "dSh" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/southwest, /area/desert_dam/building/medical/emergency_room) "dSi" = ( /obj/effect/decal/cleanable/dirt, /obj/item/clothing/gloves/latex, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/southwest, /area/desert_dam/building/medical/emergency_room) "dSj" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen, /area/desert_dam/building/medical/emergency_room) "dSk" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 6; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/southeast, /area/desert_dam/building/medical/emergency_room) "dSl" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen, /area/desert_dam/building/medical/treatment_room) "dSm" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/southwest, /area/desert_dam/building/medical/treatment_room) "dSn" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen, /area/desert_dam/building/medical/east_wing_hallway) "dSo" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/west, /area/desert_dam/building/medical/east_wing_hallway) "dSq" = ( /obj/effect/decal/cleanable/blood{ @@ -57020,135 +43721,91 @@ }, /obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/building/cafeteria/cafeteria) "dSr" = ( /obj/item/frame/table, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/desert_dam/building/cafeteria/cafeteria) "dSs" = ( /obj/structure/machinery/medical_pod/bodyscanner, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/medical/emergency_room) "dSt" = ( /obj/structure/machinery/body_scanconsole, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/medical/emergency_room) "dSu" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "whitegreencorner" - }, +/turf/open/floor/prison/whitegreencorner, /area/desert_dam/building/medical/emergency_room) "dSv" = ( /obj/structure/surface/table/reinforced, /obj/item/roller, /obj/item/roller, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen, /area/desert_dam/building/medical/emergency_room) "dSw" = ( /obj/structure/machinery/medical_pod/sleeper, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen, /area/desert_dam/building/medical/emergency_room) "dSx" = ( /obj/structure/machinery/sleep_console, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen, /area/desert_dam/building/medical/emergency_room) "dSy" = ( /obj/structure/machinery/light, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen, /area/desert_dam/building/medical/emergency_room) "dSB" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/west, /area/desert_dam/building/medical/virology_wing) "dSD" = ( /obj/item/trash/semki, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/west, /area/desert_dam/building/medical/treatment_room) "dSF" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/west, /area/desert_dam/building/medical/virology_wing) "dSG" = ( /obj/effect/landmark/monkey_spawn, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/building/medical/virology_isolation) "dSH" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/disposalpipe/segment, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/east, /area/desert_dam/building/medical/virology_wing) "dSO" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/medidoor/colony{ name = "\improper Containment Pen" }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/west, /area/desert_dam/building/medical/virology_isolation) "dSS" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/west, /area/desert_dam/building/medical/virology_isolation) "dSU" = ( /obj/item/clothing/gloves/latex, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/west, /area/desert_dam/building/medical/virology_wing) "dSV" = ( /obj/structure/pipes/standard/manifold/hidden/green{ @@ -57156,47 +43813,33 @@ }, /obj/structure/disposalpipe/segment, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/east, /area/desert_dam/building/medical/virology_wing) "dSW" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/medidoor/colony{ dir = 2; name = "\improper Containment Pen" }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/desert_dam/building/medical/virology_wing) "dSX" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/desert_dam/building/medical/virology_isolation) "dSY" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/item/clothing/glasses/meson, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/north, /area/desert_dam/building/medical/virology_wing) "dSZ" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/desert_dam/building/medical/virology_wing) "dTa" = ( /obj/structure/machinery/chem_master, @@ -57204,56 +43847,40 @@ dir = 9 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/desert_dam/building/medical/virology_wing) "dTb" = ( /obj/effect/decal/cleanable/dirt, /obj/item/weapon/broken_bottle, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/desert_dam/building/medical/virology_isolation) "dTc" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen, /area/desert_dam/building/medical/virology_isolation) "dTd" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen, /area/desert_dam/building/medical/virology_isolation) "dTf" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen, /area/desert_dam/building/medical/virology_isolation) "dTg" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/medidoor/colony{ dir = 2 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen, /area/desert_dam/building/medical/virology_isolation) "dTh" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen, /area/desert_dam/building/medical/virology_wing) "dTi" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/medidoor/colony{ @@ -57261,25 +43888,17 @@ }, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen, /area/desert_dam/building/medical/virology_wing) "dTj" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/desert_dam/building/medical/virology_wing) "dTk" = ( /obj/structure/bed/stool, /obj/structure/disposalpipe/segment, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/desert_dam/building/medical/virology_wing) "dTl" = ( /obj/structure/window/framed/colony, @@ -57288,39 +43907,26 @@ /area/desert_dam/building/medical/virology_isolation) "dTm" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreencorner" - }, +/turf/open/floor/prison/whitegreencorner/west, /area/desert_dam/building/medical/virology_wing) "dTn" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/medical/virology_wing) "dTo" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "whitegreencorner" - }, +/turf/open/floor/prison/whitegreencorner, /area/desert_dam/building/medical/virology_wing) "dTp" = ( /obj/item/trash/sosjerky, -/turf/open/floor/prison{ - dir = 6; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/southeast, /area/desert_dam/building/medical/virology_wing) "dTs" = ( /turf/closed/wall/rock/orange, /area/desert_dam/exterior/rock) "dTv" = ( /obj/structure/prop/dam/large_boulder/boulder2, -/turf/open/desert/dirt{ - icon_state = "desert_transition_corner1" - }, +/turf/open/desert/dirt/desert_transition_corner1, /area/desert_dam/exterior/valley/valley_civilian) "dTx" = ( /obj/structure/flora/grass/tallgrass/desert/corner{ @@ -57334,17 +43940,13 @@ pixel_x = -12; pixel_y = 2 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/desert_dam/building/hydroponics/hydroponics_breakroom) "dTB" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/desert_dam/building/hydroponics/hydroponics_breakroom) "dTH" = ( /obj/structure/desertdam/decals/road_edge{ @@ -57352,41 +43954,25 @@ }, /turf/open/asphalt, /area/desert_dam/exterior/river/riverside_south) -"dTI" = ( -/turf/open/desert/rock, -/area/desert_dam/building/hydroponics/hydroponics_breakroom) "dTK" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached14" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached14, /area/desert_dam/exterior/valley/valley_hydro) "dTL" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached15" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached15, /area/desert_dam/exterior/valley/valley_hydro) "dTP" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/hydroponics/hydroponics) "dTQ" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/east, /area/desert_dam/building/hydroponics/hydroponics) "dTX" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/hydroponics/hydroponics_storage) "dTY" = ( /obj/effect/decal/cleanable/dirt, @@ -57395,10 +43981,7 @@ "dTZ" = ( /obj/effect/decal/cleanable/blood, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/hydroponics/hydroponics) "dUa" = ( /obj/structure/disposalpipe/segment{ @@ -57406,27 +43989,19 @@ icon_state = "pipe-c" }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/hydroponics/hydroponics) "dUb" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/hydroponics/hydroponics) "dUc" = ( /obj/structure/machinery/door/airlock/almayer/generic{ dir = 1; name = "\improper Kitchen" }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/building/cafeteria/cafeteria) "dUd" = ( /obj/structure/disposalpipe/segment, @@ -57437,9 +44012,7 @@ /obj/structure/machinery/door/poddoor/shutters{ dir = 2 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/building/cafeteria/cafeteria) "dUf" = ( /obj/structure/surface/table/reinforced, @@ -57447,149 +44020,98 @@ /obj/structure/machinery/door/poddoor/shutters{ dir = 2 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/building/cafeteria/cafeteria) "dUg" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "yellowcorner" - }, +/turf/open/floor/prison/yellowcorner, /area/desert_dam/building/hydroponics/hydroponics) "dUh" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 8; - icon_state = "yellowcorner" - }, +/turf/open/floor/prison/yellowcorner/west, /area/desert_dam/building/hydroponics/hydroponics) "dUi" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow, /area/desert_dam/building/hydroponics/hydroponics) "dUj" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow, /area/desert_dam/building/hydroponics/hydroponics) "dUm" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/west, /area/desert_dam/building/hydroponics/hydroponics) "dUn" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/hydroponics/hydroponics) "dUo" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/east, /area/desert_dam/building/hydroponics/hydroponics) "dUp" = ( /obj/structure/machinery/portable_atmospherics/hydroponics, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "yellowfull" - }, +/turf/open/floor/prison/yellowfull/southwest, /area/desert_dam/building/hydroponics/hydroponics) "dUq" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/desert_dam/building/hydroponics/hydroponics_storage) "dUr" = ( /obj/structure/largecrate/random, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/desert_dam/building/hydroponics/hydroponics_storage) "dUt" = ( /obj/structure/window/framed/colony, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/building/cafeteria/cafeteria) "dUu" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/window/framed/colony, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/building/cafeteria/cafeteria) "dUv" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/north, /area/desert_dam/building/hydroponics/hydroponics) "dUw" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 4; - icon_state = "yellowcorner" - }, +/turf/open/floor/prison/yellowcorner/east, /area/desert_dam/building/hydroponics/hydroponics) "dUx" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/hydroponics/hydroponics) "dUy" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 1; - icon_state = "yellowcorner" - }, +/turf/open/floor/prison/yellowcorner/north, /area/desert_dam/building/hydroponics/hydroponics) "dUz" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/desert/dirt{ - dir = 6; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/southeast, /area/desert_dam/interior/caves/central_caves) "dUA" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/hydroponics/hydroponics) "dUB" = ( /obj/structure/disposalpipe/segment{ @@ -57597,10 +44119,7 @@ }, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/hydroponics/hydroponics) "dUC" = ( /obj/structure/disposalpipe/segment{ @@ -57609,10 +44128,7 @@ /obj/item/seeds/soyaseed, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/hydroponics/hydroponics) "dUD" = ( /obj/structure/disposalpipe/junction{ @@ -57620,18 +44136,12 @@ icon_state = "pipe-j2" }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/hydroponics/hydroponics) "dUF" = ( /obj/effect/landmark/survivor_spawner, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/hydroponics/hydroponics) "dUG" = ( /obj/structure/disposalpipe/segment{ @@ -57639,64 +44149,43 @@ icon_state = "pipe-c" }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/hydroponics/hydroponics) "dUH" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/west, /area/desert_dam/building/hydroponics/hydroponics) "dUI" = ( /obj/structure/pipes/vents/pump{ dir = 8; id_tag = "mining_outpost_pump" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/hydroponics/hydroponics) "dUJ" = ( /obj/effect/landmark/survivor_spawner, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/hydroponics/hydroponics_storage) "dUK" = ( /obj/effect/decal/cleanable/vomit, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/hydroponics/hydroponics) "dUL" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached2" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached2, /area/desert_dam/exterior/valley/valley_hydro) "dUM" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached9" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached9, /area/desert_dam/exterior/valley/valley_hydro) "dUN" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached12" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached12, /area/desert_dam/exterior/valley/valley_hydro) "dUO" = ( /obj/structure/desertdam/decals/road_edge{ @@ -57738,16 +44227,11 @@ /obj/structure/surface/table, /obj/item/reagent_container/food/snacks/cookie, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/desert_dam/building/cafeteria/cafeteria) "dVm" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached18" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached18, /area/desert_dam/exterior/valley/valley_hydro) "dVn" = ( /obj/structure/desertdam/decals/road_edge{ @@ -57763,24 +44247,16 @@ /obj/item/reagent_container/food/snacks/bun, /obj/item/reagent_container/food/snacks/cheesewedge, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/desert_dam/building/cafeteria/cafeteria) "dVp" = ( /obj/structure/disposalpipe/segment, /obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached18" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached18, /area/desert_dam/exterior/valley/valley_hydro) "dVr" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/water_treatment_one/lobby) "dVs" = ( /obj/structure/surface/table, @@ -57798,10 +44274,7 @@ "dVu" = ( /obj/structure/disposalpipe/segment, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/water_treatment_one/lobby) "dVv" = ( /obj/structure/surface/table, @@ -57810,19 +44283,13 @@ /area/desert_dam/building/water_treatment_one/control_room) "dVw" = ( /obj/effect/decal/cleanable/blood/gibs/body, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/water_treatment_one/control_room) "dVx" = ( /obj/structure/disposalpipe/segment, /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/hydroponics/hydroponics) "dVy" = ( /obj/effect/decal/cleanable/blood{ @@ -57830,10 +44297,7 @@ }, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/water_treatment_one/control_room) "dVz" = ( /obj/structure/machinery/door_control{ @@ -57888,10 +44352,7 @@ /obj/effect/landmark/corpsespawner/engineer, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/water_treatment_one/control_room) "dVE" = ( /obj/effect/decal/cleanable/dirt, @@ -57906,34 +44367,22 @@ /area/desert_dam/building/water_treatment_one/garage) "dVG" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/prison{ - dir = 4; - icon_state = "yellowcorner" - }, +/turf/open/floor/prison/yellowcorner/east, /area/desert_dam/building/hydroponics/hydroponics) "dVH" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/water_treatment_one/hallway) "dVI" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/water_treatment_one/control_room) "dVJ" = ( /obj/structure/barricade/wooden, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/water_treatment_one/control_room) "dVK" = ( /obj/effect/decal/warning_stripes{ @@ -57945,10 +44394,7 @@ /area/desert_dam/building/water_treatment_one/garage) "dVL" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/water_treatment_one/garage) "dVM" = ( /obj/structure/disposalpipe/segment{ @@ -57956,10 +44402,7 @@ icon_state = "pipe-c" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/hydroponics/hydroponics) "dVN" = ( /obj/structure/machinery/power/apc{ @@ -57973,10 +44416,7 @@ "dVO" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/water_treatment_one/control_room) "dVP" = ( /obj/effect/decal/cleanable/blood/xeno, @@ -57985,38 +44425,26 @@ "dVR" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/hydroponics/hydroponics) "dVS" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/water_treatment_one/garage) "dVT" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/water_treatment_one/hallway) "dVU" = ( /obj/structure/disposalpipe/junction, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/water_treatment_one/hallway) "dVY" = ( /obj/structure/disposalpipe/segment{ @@ -58024,10 +44452,7 @@ icon_state = "pipe-c" }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/water_treatment_one/hallway) "dVZ" = ( /obj/structure/disposalpipe/segment{ @@ -58037,26 +44462,17 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/hydroponics/hydroponics) "dWa" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/water_treatment_one/hallway) "dWd" = ( /obj/structure/disposalpipe/segment, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/water_treatment_one/control_room) "dWe" = ( /obj/effect/decal/cleanable/dirt, @@ -58064,10 +44480,7 @@ /obj/effect/decal/cleanable/blood{ icon_state = "xgib4" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/water_treatment_one/control_room) "dWf" = ( /obj/effect/decal/warning_stripes{ @@ -58108,10 +44521,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/hydroponics/hydroponics) "dWk" = ( /obj/structure/disposalpipe/segment{ @@ -58122,10 +44532,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/hydroponics/hydroponics) "dWl" = ( /obj/structure/disposalpipe/segment{ @@ -58134,10 +44541,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/hydroponics/hydroponics) "dWm" = ( /obj/structure/disposalpipe/segment{ @@ -58146,10 +44550,7 @@ /obj/item/seeds/riceseed, /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/hydroponics/hydroponics) "dWn" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ @@ -58162,10 +44563,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/hydroponics/hydroponics_storage) "dWo" = ( /obj/structure/disposalpipe/segment{ @@ -58175,29 +44573,20 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/hydroponics/hydroponics_storage) "dWp" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/hydroponics/hydroponics_storage) "dWq" = ( /obj/structure/bed/chair/office/dark{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/water_treatment_one/control_room) "dWr" = ( /obj/effect/decal/cleanable/dirt, @@ -58210,10 +44599,7 @@ dir = 8; id_tag = "mining_outpost_pump" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/hydroponics/hydroponics_storage) "dWu" = ( /obj/structure/surface/rack, @@ -58225,18 +44611,13 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/desert_dam/building/water_treatment_one/breakroom) "dWy" = ( /obj/structure/surface/rack, /obj/effect/landmark/crap_item, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/desert_dam/building/water_treatment_one/floodgate_control) "dWz" = ( /obj/structure/surface/table, @@ -58252,38 +44633,25 @@ /obj/item/reagent_container/food/snacks/bun, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/desert_dam/building/cafeteria/cafeteria) "dWB" = ( /obj/item/shard/shrapnel, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/desert_dam/building/cafeteria/cafeteria) "dWC" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/desert_dam/building/water_treatment_one/breakroom) "dWE" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/desert_dam/building/water_treatment_one/breakroom) "dWF" = ( /obj/structure/bed/chair/office/dark{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/desert_dam/building/water_treatment_one/floodgate_control) "dWG" = ( /obj/structure/surface/table, @@ -58292,9 +44660,7 @@ /area/desert_dam/building/water_treatment_one/floodgate_control) "dWH" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/desert_dam/building/water_treatment_one/breakroom) "dWJ" = ( /obj/structure/pipes/vents/pump, @@ -58313,49 +44679,37 @@ /area/desert_dam/building/water_treatment_one/floodgate_control) "dWM" = ( /obj/effect/decal/cleanable/vomit, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/desert_dam/building/water_treatment_one/breakroom) "dWN" = ( /obj/structure/surface/table, /obj/item/paper_bin, /obj/item/tool/pen, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/desert_dam/building/water_treatment_one/breakroom) "dWO" = ( /obj/structure/machinery/light, /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/building/cafeteria/cafeteria) "dWP" = ( /obj/structure/surface/table, /obj/effect/landmark/crap_item, -/turf/open/floor{ - icon_state = "whiteyellow" - }, +/turf/open/floor/whiteyellow, /area/desert_dam/building/water_treatment_one/breakroom) "dWQ" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper Mess Hall" }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/building/cafeteria/cafeteria) "dWT" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached18" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached18, /area/desert_dam/exterior/valley/valley_civilian) "dWV" = ( /obj/structure/desertdam/decals/road_edge{ @@ -58469,27 +44823,21 @@ /obj/structure/barricade/wooden{ dir = 1 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_civilian) "dXr" = ( /obj/structure/barricade/wooden{ dir = 1 }, /obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached3" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached3, /area/desert_dam/exterior/valley/valley_civilian) "dXs" = ( /obj/structure/barricade/wooden{ dir = 1 }, /obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached1" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached1, /area/desert_dam/exterior/valley/valley_civilian) "dXt" = ( /obj/effect/decal/sand_overlay/sand1/corner1, @@ -58499,9 +44847,7 @@ /obj/structure/barricade/wooden{ dir = 4 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_civilian) "dXu" = ( /obj/effect/decal/sand_overlay/sand1{ @@ -58510,15 +44856,11 @@ /obj/structure/barricade/wooden{ dir = 8 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_civilian) "dXv" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached14" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached14, /area/desert_dam/exterior/valley/valley_civilian) "dXw" = ( /obj/effect/decal/sand_overlay/sand1{ @@ -58527,9 +44869,7 @@ /obj/structure/barricade/wooden{ dir = 4 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_civilian) "dXx" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ @@ -58562,16 +44902,11 @@ /obj/structure/barricade/wooden{ dir = 8 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_civilian) "dXC" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/prison/green/north, /area/desert_dam/building/dorms/hallway_northwing) "dXD" = ( /obj/effect/decal/cleanable/dirt, @@ -58589,9 +44924,7 @@ /obj/structure/barricade/wooden{ dir = 8 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached16" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached16, /area/desert_dam/exterior/valley/valley_civilian) "dXI" = ( /obj/structure/pipes/vents/pump{ @@ -58647,29 +44980,20 @@ /obj/structure/barricade/wooden{ dir = 8 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_civilian) "dXY" = ( /obj/structure/machinery/light, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "green" - }, +/turf/open/floor/prison/green, /area/desert_dam/building/dorms/hallway_northwing) "dXZ" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "green" - }, +/turf/open/floor/prison/green, /area/desert_dam/building/dorms/hallway_northwing) "dYa" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 8; - icon_state = "greencorner" - }, +/turf/open/floor/prison/greencorner/west, /area/desert_dam/building/dorms/hallway_northwing) "dYb" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -58678,18 +45002,14 @@ /area/desert_dam/building/dorms/hallway_northwing) "dYc" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "greencorner" - }, +/turf/open/floor/prison/greencorner, /area/desert_dam/building/dorms/hallway_northwing) "dYi" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/disposalpipe/segment, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/dorms/restroom) "dYk" = ( /obj/effect/decal/cleanable/dirt, @@ -58697,55 +45017,38 @@ /area/desert_dam/building/dorms/hallway_westwing) "dYm" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/dorms/restroom) "dYx" = ( /obj/structure/machinery/door/airlock/almayer/generic{ name = "\improper Showers" }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/building/dorms/hallway_westwing) "dYy" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/building/dorms/restroom) "dYz" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/disposalpipe/segment, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/dorms/restroom) "dYC" = ( /obj/structure/surface/table, /obj/item/device/radio, -/turf/open/floor/prison{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/prison/green/north, /area/desert_dam/building/dorms/hallway_northwing) "dYD" = ( /obj/structure/surface/table, /obj/item/ashtray/bronze, -/turf/open/floor/prison{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/prison/green/north, /area/desert_dam/building/dorms/hallway_northwing) "dYI" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/prison/green/north, /area/desert_dam/building/dorms/hallway_northwing) "dYK" = ( /obj/item/trash/boonie, @@ -58761,24 +45064,16 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 4; - icon_state = "green" - }, +/turf/open/floor/prison/green/east, /area/desert_dam/building/dorms/hallway_westwing) "dYP" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/dorms/restroom) "dYR" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 4; - icon_state = "green" - }, +/turf/open/floor/prison/green/east, /area/desert_dam/building/dorms/hallway_westwing) "dYS" = ( /obj/structure/pipes/standard/manifold/hidden/green{ @@ -58787,29 +45082,20 @@ /obj/structure/disposalpipe/segment, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/dorms/restroom) "dYX" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/prison/green/north, /area/desert_dam/building/dorms/hallway_westwing) "dZf" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/light, -/turf/open/floor/prison{ - icon_state = "green" - }, +/turf/open/floor/prison/green, /area/desert_dam/building/dorms/hallway_northwing) "dZk" = ( /obj/item/stack/sheet/wood, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached16" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached16, /area/desert_dam/exterior/valley/valley_civilian) "dZl" = ( /obj/structure/flora/grass/desert/lightgrass_1, @@ -58840,29 +45126,21 @@ "dZz" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/prison{ - icon_state = "green" - }, +/turf/open/floor/prison/green, /area/desert_dam/building/dorms/hallway_westwing) "dZE" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/building/dorms/pool) "dZG" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/building/dorms/pool) "dZH" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/building/dorms/pool) "dZI" = ( /obj/structure/pipes/standard/manifold/hidden/green{ @@ -58870,74 +45148,47 @@ }, /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/building/dorms/pool) "dZL" = ( -/turf/open/gm/river{ - name = "pool" - }, +/turf/open/gm/river/pool, /area/desert_dam/building/dorms/pool) "dZM" = ( -/turf/open/gm/river{ - color = "#995555"; - name = "pool" - }, +/turf/open/gm/river/red_pool, /area/desert_dam/building/dorms/pool) "dZN" = ( -/turf/open/gm/river{ - color = "#990000"; - name = "pool" - }, +/turf/open/gm/river/darkred_pool, /area/desert_dam/building/dorms/pool) "dZO" = ( /obj/item/toy/inflatable_duck, -/turf/open/gm/river{ - color = "#995555"; - name = "pool" - }, +/turf/open/gm/river/red_pool, /area/desert_dam/building/dorms/pool) "dZR" = ( /obj/structure/machinery/computer/arcade, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/desert_dam/building/dorms/hallway_westwing) "dZS" = ( /obj/structure/closet/boxinggloves, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/desert_dam/building/dorms/hallway_westwing) "dZT" = ( /obj/structure/closet/athletic_mixed, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/desert_dam/building/dorms/hallway_westwing) "dZU" = ( /obj/structure/surface/table, -/turf/open/floor/prison{ - dir = 8; - icon_state = "green" - }, +/turf/open/floor/prison/green/west, /area/desert_dam/building/dorms/hallway_westwing) "dZX" = ( /obj/item/stool, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/desert_dam/building/dorms/hallway_westwing) "dZY" = ( /obj/structure/surface/table, /obj/item/trash/plate, -/turf/open/floor/prison{ - dir = 8; - icon_state = "green" - }, +/turf/open/floor/prison/green/west, /area/desert_dam/building/dorms/hallway_westwing) "ead" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -58947,19 +45198,13 @@ /obj/structure/disposalpipe/segment, /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/vents/pump, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/water_treatment_one/lobby) "eag" = ( /obj/structure/disposalpipe/segment, /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/water_treatment_one/lobby) "eak" = ( /obj/structure/pipes/vents/pump, @@ -58972,10 +45217,7 @@ /area/desert_dam/building/dorms/hallway_westwing) "eau" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/water_treatment_one/garage) "eav" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -58985,43 +45227,30 @@ /obj/structure/disposalpipe/segment, /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/water_treatment_one/hallway) "eaz" = ( /obj/structure/surface/table/woodentable, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/desert_dam/building/dorms/hallway_westwing) "eaA" = ( /obj/item/stool, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/desert_dam/building/dorms/hallway_westwing) "eaC" = ( /obj/structure/surface/table/gamblingtable, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/desert_dam/building/dorms/hallway_westwing) "eaG" = ( /obj/structure/surface/table/woodentable, /obj/item/paper_bin, /obj/item/tool/pen, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/desert_dam/building/dorms/hallway_westwing) "eaH" = ( /obj/structure/surface/table/woodentable, /obj/structure/machinery/computer/emails, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/desert_dam/building/dorms/hallway_westwing) "eaK" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -59038,33 +45267,22 @@ /obj/structure/mirror{ pixel_x = -28 }, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/dorms/restroom) "eaO" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/water_treatment_one/hallway) "eaP" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/prison/green/north, /area/desert_dam/building/dorms/hallway_westwing) "eaQ" = ( /obj/item/tool/hatchet, -/turf/open/floor/prison{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/prison/green/north, /area/desert_dam/building/dorms/hallway_westwing) "eaT" = ( /obj/structure/disposalpipe/segment{ @@ -59073,16 +45291,11 @@ }, /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/water_treatment_one/garage) "eaU" = ( /obj/structure/machinery/light, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached18" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached18, /area/desert_dam/exterior/valley/valley_hydro) "eaV" = ( /obj/structure/machinery/light{ @@ -59100,15 +45313,11 @@ /area/desert_dam/building/water_treatment_one/hallway) "eaX" = ( /obj/structure/machinery/light, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached16" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached16, /area/desert_dam/exterior/valley/valley_hydro) "eba" = ( /obj/structure/machinery/light, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached19" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached19, /area/desert_dam/exterior/valley/valley_hydro) "ebb" = ( /obj/effect/decal/cleanable/dirt, @@ -59130,57 +45339,38 @@ dir = 8 }, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/desert_dam/building/water_treatment_one/hallway) "ebi" = ( /obj/effect/landmark/corpsespawner/security/marshal, -/turf/open/gm/river{ - color = "#990000"; - name = "pool" - }, +/turf/open/gm/river/darkred_pool, /area/desert_dam/building/dorms/pool) "ebj" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - icon_state = "green" - }, +/turf/open/floor/prison/green, /area/desert_dam/building/dorms/hallway_westwing) "ebk" = ( /obj/structure/surface/table, /obj/effect/spawner/random/powercell, -/turf/open/floor/prison{ - dir = 4; - icon_state = "green" - }, +/turf/open/floor/prison/green/east, /area/desert_dam/building/dorms/hallway_westwing) "ebn" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/building/dorms/pool) "ebo" = ( /obj/item/weapon/gun/revolver/small, -/turf/open/floor/prison{ - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull, /area/desert_dam/building/dorms/pool) "ebp" = ( /obj/structure/surface/table, /obj/effect/spawner/random/powercell, -/turf/open/floor/prison{ - dir = 10; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/southwest, /area/desert_dam/building/dorms/pool) "ebq" = ( /obj/structure/surface/table, /obj/item/device/radio, -/turf/open/floor/prison{ - icon_state = "blue" - }, +/turf/open/floor/prison/blue, /area/desert_dam/building/dorms/pool) "ebs" = ( /turf/closed/wall/hangar{ @@ -59200,10 +45390,7 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/prison/red/east, /area/desert_dam/building/water_treatment_one/lobby) "ebv" = ( /obj/structure/machinery/light{ @@ -59230,10 +45417,7 @@ }, /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/water_treatment_one/hallway) "ebA" = ( /obj/structure/surface/table, @@ -59263,59 +45447,43 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - dir = 1; - icon_state = "whiteyellow" - }, +/turf/open/floor/whiteyellow/north, /area/desert_dam/building/water_treatment_one/breakroom) "ebF" = ( /obj/structure/closet/l3closet/virology, /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/desert_dam/building/water_treatment_one/equipment) "ebG" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_hydro) "ebJ" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/desert_dam/building/water_treatment_one/breakroom) "ebK" = ( /obj/structure/flora/pottedplant, /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor{ - dir = 8; - icon_state = "whiteyellow" - }, +/turf/open/floor/whiteyellow/west, /area/desert_dam/building/water_treatment_one/breakroom) "ebL" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/desert_dam/building/water_treatment_one/breakroom) "ebM" = ( /obj/structure/machinery/light, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/desert_dam/building/water_treatment_one/equipment) "ebN" = ( /obj/structure/flora/grass/tallgrass/desert/corner{ @@ -59325,9 +45493,7 @@ /area/desert_dam/exterior/valley/valley_cargo) "ebO" = ( /obj/structure/machinery/light, -/turf/open/floor{ - icon_state = "whiteyellowcorner" - }, +/turf/open/floor/whiteyellowcorner, /area/desert_dam/building/water_treatment_one/breakroom) "ebP" = ( /obj/structure/machinery/light{ @@ -59342,16 +45508,11 @@ /area/desert_dam/interior/dam_interior/control_room) "ebT" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/interior/lab_northeast/east_lab_west_hallway) "ebU" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/engidoor/glass/colony, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/desert_dam/building/substation/southwest) "ebW" = ( /obj/structure/disposalpipe/junction{ @@ -59361,10 +45522,7 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/water_treatment_one/hallway) "ebZ" = ( /obj/structure/window/framed/hangar/reinforced, @@ -59376,20 +45534,14 @@ /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/water_treatment_one/garage) "ecf" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/water_treatment_one/garage) "ecg" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ @@ -59399,27 +45551,18 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/water_treatment_one/hallway) "ech" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/water_treatment_one/hallway) "eci" = ( /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/water_treatment_one/hallway) "ecj" = ( /obj/structure/disposalpipe/segment{ @@ -59430,10 +45573,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/water_treatment_one/hallway) "eck" = ( /obj/structure/disposalpipe/junction{ @@ -59442,10 +45582,7 @@ /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/water_treatment_one/hallway) "ecl" = ( /obj/structure/disposalpipe/segment{ @@ -59454,10 +45591,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/water_treatment_one/hallway) "ecm" = ( /obj/structure/disposalpipe/segment{ @@ -59467,10 +45601,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/water_treatment_one/hallway) "ecn" = ( /obj/structure/disposalpipe/segment{ @@ -59481,10 +45612,7 @@ /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/water_treatment_one/hallway) "eco" = ( /obj/structure/disposalpipe/segment{ @@ -59493,10 +45621,7 @@ }, /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/water_treatment_one/hallway) "ecp" = ( /obj/structure/disposalpipe/segment{ @@ -59506,10 +45631,7 @@ /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/water_treatment_one/hallway) "ecq" = ( /obj/structure/disposalpipe/segment{ @@ -59520,10 +45642,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/water_treatment_one/hallway) "ecr" = ( /obj/structure/disposalpipe/segment{ @@ -59532,10 +45651,7 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/water_treatment_one/hallway) "ect" = ( /obj/structure/disposalpipe/segment{ @@ -59544,10 +45660,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/water_treatment_one/control_room) "ecu" = ( /obj/structure/disposalpipe/segment{ @@ -59558,35 +45671,23 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/water_treatment_one/control_room) "ecv" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/water_treatment_one/control_room) "ecw" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/water_treatment_one/garage) "ecx" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/water_treatment_one/hallway) "ecy" = ( /obj/structure/machinery/light, @@ -59606,10 +45707,7 @@ "ecB" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/water_treatment_one/breakroom) "ecD" = ( /obj/structure/disposalpipe/segment{ @@ -59618,74 +45716,54 @@ }, /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/desert_dam/building/water_treatment_one/breakroom) "ecE" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/water_treatment_one/equipment) "ecH" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/desert_dam/building/water_treatment_one/breakroom) "ecI" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/desert_dam/building/water_treatment_one/breakroom) "ecK" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/desert_dam/building/water_treatment_one/breakroom) "ecL" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/water_treatment_one/equipment) "ecM" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/desert_dam/building/water_treatment_one/breakroom) "ecN" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/desert_dam/building/water_treatment_one/breakroom) "ecO" = ( /obj/structure/pipes/vents/pump{ dir = 8; id_tag = "mining_outpost_pump" }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/desert_dam/building/water_treatment_one/breakroom) "edo" = ( /obj/effect/decal/warning_stripes{ @@ -59705,10 +45783,7 @@ }, /obj/structure/disposalpipe/segment, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/water_treatment_one/lobby) "edK" = ( /obj/structure/machinery/door/airlock/almayer/generic{ @@ -59716,10 +45791,7 @@ name = "\improper Office" }, /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/water_treatment_one/hallway) "edL" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ @@ -59728,17 +45800,11 @@ /obj/structure/disposalpipe/segment, /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/water_treatment_one/hallway) "edM" = ( /obj/structure/prop/dam/large_boulder/boulder1, -/turf/open/desert/dirt{ - dir = 9; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/northwest, /area/desert_dam/exterior/valley/valley_civilian) "edO" = ( /obj/structure/window/framed/hangar, @@ -59750,20 +45816,14 @@ name = "\improper Treatment Checkpoint" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/water_treatment_one/lobby) "edQ" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ dir = 2; name = "\improper Water Treatment" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/desert_dam/building/water_treatment_one/purification) "edR" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ @@ -59776,29 +45836,20 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/water_treatment_one/control_room) "edT" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper Treatment Breakroom" }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/water_treatment_one/breakroom) "edU" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper Decontamination" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/water_treatment_one/hallway) "edY" = ( /obj/structure/window/framed/hangar, @@ -59811,9 +45862,7 @@ }, /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/desert_dam/building/water_treatment_one/breakroom) "eee" = ( /obj/structure/window/framed/hangar, @@ -59839,10 +45888,7 @@ dir = 2; name = "\improper Floodgate Controlroom" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/desert_dam/building/water_treatment_one/floodgate_control) "ees" = ( /obj/effect/decal/warning_stripes{ @@ -59857,56 +45903,40 @@ /obj/structure/machinery/door/airlock/almayer/generic{ name = "\improper Treatment Breakroom" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/water_treatment_one/breakroom) "eev" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ dir = 2; name = "\improper Decontamination" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/water_treatment_one/equipment) "eez" = ( /obj/structure/machinery/door/airlock/almayer/generic{ name = "\improper Showers" }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/desert_dam/building/water_treatment_one/breakroom) "eeC" = ( /obj/structure/machinery/door/airlock/almayer/generic{ dir = 2; name = "\improper Restroom" }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/desert_dam/building/water_treatment_one/breakroom) "eeD" = ( /obj/structure/machinery/door/airlock/almayer/generic{ dir = 2; name = "\improper Treatment Garage" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/water_treatment_one/garage) "eeE" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper Water Treatment" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/desert_dam/building/water_treatment_one/purification) "eeK" = ( /obj/structure/machinery/door/poddoor/shutters/almayer{ @@ -59937,10 +45967,7 @@ name = "\improper Hydroponics" }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/hydroponics/hydroponics) "eeR" = ( /obj/effect/decal/warning_stripes{ @@ -59976,9 +46003,7 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_civilian) "eeV" = ( /obj/structure/machinery/door/poddoor/shutters/almayer{ @@ -60014,9 +46039,7 @@ /obj/structure/machinery/door/airlock/almayer/generic{ name = "\improper Toilet Unit" }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/desert_dam/building/water_treatment_one/breakroom) "eft" = ( /turf/open/asphalt, @@ -60030,10 +46053,7 @@ dir = 4 }, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/hydroponics/hydroponics) "ehg" = ( /obj/structure/desertdam/decals/road_edge{ @@ -60047,9 +46067,7 @@ /area/desert_dam/exterior/valley/south_valley_dam) "ehx" = ( /obj/structure/fence, -/turf/open/desert/dirt{ - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1, /area/desert_dam/exterior/valley/valley_medical) "ehz" = ( /obj/effect/decal/sand_overlay/sand1{ @@ -60058,132 +46076,90 @@ /turf/open/desert/dirt, /area/desert_dam/exterior/valley/valley_medical) "ehB" = ( -/turf/open/floor/coagulation{ - icon_state = "0,8" - }, +/turf/open/floor/coagulation/icon0_8, /area/desert_dam/building/water_treatment_one/purification) "ehC" = ( -/turf/open/floor/coagulation{ - icon_state = "4,8" - }, +/turf/open/floor/coagulation/icon4_8, /area/desert_dam/building/water_treatment_one/purification) "ehD" = ( /obj/structure/filtration/machine_64x96{ icon_state = "sedimentation_0" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/desert_dam/building/water_treatment_one/purification) "ehE" = ( /obj/structure/filtration/machine_96x96{ icon_state = "sedimentation_A_1" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/desert_dam/building/water_treatment_one/purification) "ehF" = ( /obj/structure/filtration/machine_64x128{ icon_state = "filtration_1" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/desert_dam/building/water_treatment_one/purification) "ehG" = ( /obj/structure/filtration/machine_32x32{ icon_state = "filtration_segment_A_1" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/desert_dam/building/water_treatment_one/purification) "ehH" = ( /obj/structure/filtration/machine_32x32{ icon_state = "filtration_segment_A_0" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/desert_dam/building/water_treatment_one/purification) "ehI" = ( /obj/structure/filtration/machine_32x32{ icon_state = "filtration_catwalk" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/desert_dam/building/water_treatment_one/purification) "ehJ" = ( /obj/structure/filtration/machine_32x32{ icon_state = "filtration_segment_B_0" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/desert_dam/building/water_treatment_one/purification) "ehK" = ( /obj/structure/filtration/machine_32x32{ icon_state = "filtration_segment_B_1" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/desert_dam/building/water_treatment_one/purification) "ehL" = ( /obj/structure/filtration/machine_64x96{ icon_state = "filtration_machine_A_1" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/desert_dam/building/water_treatment_one/purification) "ehM" = ( /obj/structure/filtration/machine_64x96{ icon_state = "filtration_machine_B_1" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/desert_dam/building/water_treatment_one/purification) "ehN" = ( -/turf/open/floor/coagulation{ - icon_state = "8,8" - }, +/turf/open/floor/coagulation/icon8_8, /area/desert_dam/building/water_treatment_one/purification) "ehO" = ( /obj/structure/filtration/collector_pipes{ icon_state = "lower_1" }, /obj/effect/blocker/toxic_water/Group_1, -/turf/open/floor/coagulation{ - icon_state = "0,5" - }, +/turf/open/floor/coagulation/icon0_5, /area/desert_dam/building/water_treatment_one/purification) "ehP" = ( /obj/effect/blocker/toxic_water/Group_1, /turf/open/gm/river/desert/shallow, /area/desert_dam/building/water_treatment_one/purification) "ehQ" = ( -/turf/open/floor/coagulation{ - icon_state = "8,3" - }, +/turf/open/floor/coagulation/icon8_3, /area/desert_dam/building/water_treatment_one/purification) "ehR" = ( -/turf/open/floor/coagulation{ - icon_state = "0,5" - }, +/turf/open/floor/coagulation/icon0_5, /area/desert_dam/building/water_treatment_one/purification) "ehS" = ( /obj/structure/filtration/collector_pipes{ @@ -60195,24 +46171,16 @@ /area/desert_dam/building/water_treatment_one/purification) "ehT" = ( /obj/effect/blocker/toxic_water/Group_1, -/turf/open/floor/coagulation{ - icon_state = "8,3" - }, +/turf/open/floor/coagulation/icon8_3, /area/desert_dam/building/water_treatment_one/purification) "ehU" = ( -/turf/open/floor/coagulation{ - icon_state = "0,0" - }, +/turf/open/floor/coagulation/icon0_0, /area/desert_dam/building/water_treatment_one/purification) "ehV" = ( -/turf/open/floor/coagulation{ - icon_state = "2,0" - }, +/turf/open/floor/coagulation/icon2_0, /area/desert_dam/building/water_treatment_one/purification) "ehW" = ( -/turf/open/floor/coagulation{ - icon_state = "8,0" - }, +/turf/open/floor/coagulation/icon8_0, /area/desert_dam/building/water_treatment_one/purification) "ehX" = ( /obj/effect/blocker/toxic_water/Group_1, @@ -60225,79 +46193,62 @@ /obj/structure/filtration/machine_96x96{ icon_state = "disinfection" }, -/turf/open/floor/coagulation{ - icon_state = "8,3" - }, +/turf/open/floor/coagulation/icon8_3, /area/desert_dam/building/water_treatment_one/purification) "eia" = ( /obj/effect/blocker/toxic_water/Group_1, -/turf/open/floor/coagulation{ - icon_state = "8,8" - }, +/turf/open/floor/coagulation/icon8_8, /area/desert_dam/building/water_treatment_one/purification) "eib" = ( /obj/effect/blocker/toxic_water/Group_1/delay, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/desert_dam/building/water_treatment_one/purification) "eic" = ( /obj/effect/blocker/toxic_water/Group_1, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/desert_dam/building/water_treatment_one/purification) "eid" = ( /obj/structure/filtration/machine_64x96{ icon_state = "sedimentation_1" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/desert_dam/building/water_treatment_one/purification) "eiq" = ( /obj/structure/filtration/machine_96x96{ icon_state = "distribution" }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_hydro) "ejR" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 8 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/south_valley_dam) "ekg" = ( /obj/effect/decal/remains/xeno{ pixel_x = 1; pixel_y = 31 }, -/turf/open/desert/rock/deep/transition{ - dir = 8 - }, +/turf/open/desert/rock/deep/transition/west, /area/desert_dam/interior/caves/temple) "ekH" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 5 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached9" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached9, /area/desert_dam/exterior/valley/bar_valley_dam) +"ekN" = ( +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal7" + }, +/turf/open/asphalt, +/area/desert_dam/exterior/landing_pad_one) "emt" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 1 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_telecoms) "eqo" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, @@ -60311,11 +46262,11 @@ /obj/item/tool/surgery/FixOVein, /obj/item/stack/nanopaste, /obj/structure/surface/table/reinforced, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitered" - }, +/turf/open/floor/prison/whitered/east, /area/desert_dam/building/medical/surgery_room_one) +"erF" = ( +/turf/open/desert/dirt/desert_transition_edge1/northeast, +/area/desert_dam/exterior/landing_pad_two) "esG" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" @@ -60329,9 +46280,7 @@ /turf/open/desert/dirt, /area/desert_dam/exterior/telecomm/lz1_valley) "euG" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached2" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached2, /area/desert_dam/exterior/valley/south_valley_dam) "eyL" = ( /turf/open/gm/empty, @@ -60345,10 +46294,7 @@ "eBZ" = ( /obj/item/storage/fancy/vials/random, /obj/structure/surface/table/reinforced, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/desert_dam/building/medical/treatment_room) "eCk" = ( /obj/structure/desertdam/decals/road_edge{ @@ -60356,7 +46302,7 @@ }, /obj/effect/decal/sand_overlay/sand1/corner1, /turf/open/asphalt, -/area/desert_dam/exterior/valley/valley_cargo) +/area/desert_dam/exterior/landing_pad_two) "eCK" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/liquid_fuel, @@ -60371,9 +46317,7 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 1 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached4" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached4, /area/desert_dam/exterior/valley/bar_valley_dam) "eJh" = ( /obj/structure/flora/grass/tallgrass/desert, @@ -60381,16 +46325,11 @@ /area/desert_dam/exterior/valley/bar_valley_dam) "eKN" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/west, /area/desert_dam/interior/dam_interior/hanger) "eNU" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/prison{ - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple, /area/desert_dam/interior/lab_northeast/east_lab_central_hallway) "eRn" = ( /obj/structure/desertdam/decals/road_edge{ @@ -60398,13 +46337,22 @@ }, /turf/open/asphalt, /area/desert_dam/exterior/valley/valley_labs) +"eRL" = ( +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal2" + }, +/turf/open/asphalt, +/area/desert_dam/exterior/landing_pad_one) +"eRX" = ( +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal8" + }, +/turf/open/asphalt, +/area/desert_dam/exterior/landing_pad_two) "eTi" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - dir = 5; - icon_state = "vault" - }, +/turf/open/floor/vault2/northeast, /area/desert_dam/building/security/prison) "eVk" = ( /obj/effect/decal/warning_stripes{ @@ -60416,9 +46364,7 @@ "eVo" = ( /obj/structure/closet/secure_closet/brig, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/desert_dam/building/security/deathrow) "eVJ" = ( /obj/structure/window/framed/chigusa, @@ -60429,16 +46375,12 @@ /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 8 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached12" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached12, /area/desert_dam/exterior/valley/valley_hydro) "eWn" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/prison{ - icon_state = "green" - }, +/turf/open/floor/prison/green, /area/desert_dam/building/dorms/hallway_northwing) "eXM" = ( /obj/effect/decal/cleanable/dirt, @@ -60454,19 +46396,24 @@ /area/desert_dam/building/medical/CMO) "eYK" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/building/dorms/pool) "eYP" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 10 }, /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached14" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached14, /area/desert_dam/exterior/valley/valley_civilian) +"eZC" = ( +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal2" + }, +/obj/effect/decal/sand_overlay/sand1{ + dir = 8 + }, +/turf/open/asphalt, +/area/desert_dam/exterior/landing_pad_one) "eZE" = ( /obj/structure/desertdam/decals/road_edge{ icon_state = "road_edge_decal2" @@ -60476,6 +46423,12 @@ }, /turf/open/asphalt, /area/desert_dam/exterior/valley/valley_hydro) +"eZN" = ( +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal10" + }, +/turf/open/asphalt, +/area/desert_dam/exterior/landing_pad_one) "faE" = ( /obj/structure/flora/grass/tallgrass/desert/corner{ dir = 1 @@ -60490,9 +46443,7 @@ /obj/effect/landmark/nightmare{ insert_tag = "uppcrash-supply" }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_civilian) "fcE" = ( /obj/structure/flora/bush/desert{ @@ -60504,9 +46455,7 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/desert/rock/deep/transition{ - dir = 1 - }, +/turf/open/desert/rock/deep/transition/north, /area/desert_dam/exterior/telecomm/lz1_south) "fdk" = ( /obj/structure/desertdam/decals/road_edge{ @@ -60515,9 +46464,7 @@ /turf/open/asphalt, /area/desert_dam/exterior/valley/valley_hydro) "feU" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached15" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached15, /area/desert_dam/exterior/valley/valley_crashsite) "fgo" = ( /obj/structure/platform/mineral/sandstone/runed{ @@ -60543,23 +46490,16 @@ "flj" = ( /obj/structure/filingcabinet, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/desert_dam/building/administration/archives) "flq" = ( /obj/structure/closet/l3closet/virology, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/north, /area/desert_dam/building/medical/virology_wing) "flu" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached1" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached1, /area/desert_dam/exterior/valley/valley_crashsite) "fmP" = ( /turf/open/gm/empty, @@ -60572,9 +46512,7 @@ /turf/open/asphalt, /area/desert_dam/exterior/valley/bar_valley_dam) "fpu" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached9" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached9, /area/desert_dam/exterior/valley/south_valley_dam) "fpJ" = ( /obj/structure/disposalpipe/segment{ @@ -60582,39 +46520,31 @@ }, /turf/closed/wall/rock/orange, /area/desert_dam/exterior/rock) +"fqj" = ( +/turf/open/desert/dirt/desert_transition_corner1/west, +/area/desert_dam/exterior/landing_pad_one) "fqt" = ( -/turf/open/desert/dirt{ - dir = 9; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/northwest, /area/desert_dam/exterior/telecomm/lz2_storage) "fqy" = ( /obj/effect/decal/sand_overlay/sand1, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_civilian) "fqI" = ( /obj/structure/surface/table, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/desert_dam/building/lab_northwest/west_lab_xenoflora) "fsK" = ( /obj/effect/decal/sand_overlay/sand1, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached12" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached12, /area/desert_dam/exterior/valley/valley_civilian) "fsP" = ( /obj/structure/surface/table/gamblingtable, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/desert_dam/building/dorms/hallway_westwing) "fxs" = ( /obj/structure/desertdam/decals/road_edge{ @@ -60623,17 +46553,11 @@ /turf/open/asphalt, /area/desert_dam/exterior/valley/bar_valley_dam) "fyq" = ( -/turf/open/desert/dirt{ - dir = 10; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/southwest, /area/desert_dam/exterior/valley/south_valley_dam) "fyO" = ( /obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/desert_dam/interior/dam_interior/garage) "fBF" = ( /obj/structure/desertdam/decals/road_edge{ @@ -60671,14 +46595,10 @@ /obj/structure/prop/dam/boulder/boulder2{ desc = "A large rock. It looks very hard to get around." }, -/turf/open/desert/rock/deep{ - icon_state = "rock3" - }, +/turf/open/desert/rock/deep/rock3, /area/desert_dam/interior/caves/temple) "fHg" = ( -/turf/open/desert/dirt{ - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1, /area/desert_dam/exterior/valley/south_valley_dam) "fHr" = ( /obj/effect/decal/sand_overlay/sand1{ @@ -60686,31 +46606,21 @@ }, /obj/effect/landmark/structure_spawner/xvx_hive/xeno_nest, /obj/effect/landmark/structure_spawner/setup/distress/xeno_nest, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached1" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached1, /area/desert_dam/exterior/valley/valley_crashsite) "fHJ" = ( /obj/structure/surface/table, /obj/effect/landmark/objective_landmark/medium, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_crashsite) "fHX" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/xeno_hive_spawn, /obj/effect/landmark/ert_spawns/groundside_xeno, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/warehouse/loading) "fNw" = ( -/turf/open/desert/dirt{ - dir = 4; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/east, /area/desert_dam/exterior/valley/bar_valley_dam) "fPc" = ( /turf/closed/wall/r_wall/bunker{ @@ -60719,10 +46629,7 @@ /area/desert_dam/interior/dam_interior/garage) "fPp" = ( /obj/structure/surface/rack, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/desert_dam/interior/dam_interior/primary_tool_storage) "fRy" = ( /obj/structure/stairs, @@ -60730,56 +46637,47 @@ dir = 4 }, /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached15" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached15, /area/desert_dam/exterior/valley/valley_crashsite) "fSc" = ( /obj/structure/flora/grass/desert/lightgrass_12, /turf/open/desert/dirt, -/area/desert_dam/exterior/valley/valley_cargo) +/area/desert_dam/exterior/landing_pad_two) "fTk" = ( /obj/structure/sink/kitchen, /obj/structure/surface/table/reinforced, /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/building/cafeteria/cafeteria) "fUO" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 1 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached4" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached4, /area/desert_dam/exterior/valley/valley_hydro) +"fYz" = ( +/obj/structure/flora/grass/tallgrass/desert/corner, +/turf/open/desert/dirt, +/area/desert_dam/exterior/landing_pad_two) "fYS" = ( /obj/structure/largecrate/random, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/desert_dam/building/cafeteria/loading) "fZd" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/dam_interior/tech_storage) "fZj" = ( /obj/effect/landmark/static_comms/net_one, /obj/structure/platform_decoration{ dir = 4 }, -/turf/open/desert/dirt{ - icon_state = "rock1" - }, +/turf/open/desert/dirt/rock1, /area/desert_dam/exterior/telecomm/lz1_valley) "gab" = ( /obj/structure/blocker/forcefield/multitile_vehicles, @@ -60787,35 +46685,25 @@ /area/desert_dam/interior/lab_northeast/east_lab_lobby) "gak" = ( /obj/effect/landmark/survivor_spawner, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreencorner" - }, +/turf/open/floor/prison/whitegreencorner/east, /area/desert_dam/building/medical/emergency_room) "gca" = ( /obj/structure/fence, /turf/open/desert/dirt, /area/desert_dam/exterior/valley/bar_valley_dam) "gdW" = ( -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_hydro) "gea" = ( /obj/effect/decal/sand_overlay/sand1, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached15" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached15, /area/desert_dam/exterior/valley/bar_valley_dam) "ggn" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/warning_stripes{ icon_state = "E" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/garage) "ghz" = ( /obj/effect/decal/cleanable/dirt, @@ -60823,17 +46711,12 @@ /obj/effect/decal/warning_stripes{ icon_state = "E" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/garage) "gls" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/building/dorms/restroom) "glx" = ( /obj/effect/decal/warning_stripes{ @@ -60846,18 +46729,13 @@ /area/desert_dam/exterior/valley/valley_hydro) "glz" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/prison/darkyellowcorners2/north, /area/desert_dam/interior/dam_interior/garage) "glD" = ( /obj/structure/surface/table/reinforced/prison{ color = "#6b675e" }, -/turf/open/desert/rock/deep{ - icon_state = "rock3" - }, +/turf/open/desert/rock/deep/rock3, /area/desert_dam/interior/caves/temple) "glO" = ( /obj/structure/blocker/forcefield/multitile_vehicles, @@ -60866,10 +46744,7 @@ "gmk" = ( /obj/structure/surface/table, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/prison{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/prison/green/north, /area/desert_dam/building/dorms/hallway_northwing) "gmZ" = ( /obj/structure/machinery/door/poddoor/shutters/almayer{ @@ -60887,23 +46762,17 @@ dir = 1 }, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_civilian) "goq" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 4 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/south_valley_dam) "goY" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/mars_cave{ - icon_state = "mars_dirt_5" - }, +/turf/open/mars_cave/mars_dirt_5, /area/desert_dam/interior/lab_northeast/east_lab_containment) "gpi" = ( /obj/structure/prop/dam/large_boulder/boulder1, @@ -60911,16 +46780,11 @@ /area/desert_dam/exterior/valley/valley_hydro) "gpZ" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/desert/rock/deep{ - icon_state = "rock3" - }, +/turf/open/desert/rock/deep/rock3, /area/desert_dam/interior/caves/temple) "grk" = ( /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/desert/dirt{ - dir = 1; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/north, /area/desert_dam/interior/caves/central_caves) "grQ" = ( /obj/structure/surface/table, @@ -60939,9 +46803,7 @@ dir = 5 }, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/desert/dirt{ - icon_state = "dirt2" - }, +/turf/open/desert/dirt/dirt2, /area/desert_dam/interior/caves/central_caves) "gxo" = ( /obj/structure/surface/table, @@ -60957,17 +46819,22 @@ pixel_x = -4; pixel_y = 8 }, -/turf/open/floor{ - dir = 1; - icon_state = "whiteyellow" - }, +/turf/open/floor/whiteyellow/north, /area/desert_dam/interior/dam_interior/garage) +"gBQ" = ( +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal4" + }, +/obj/structure/desertdam/decals/road_stop{ + dir = 8; + icon_state = "stop_decal5" + }, +/turf/open/asphalt, +/area/desert_dam/exterior/landing_pad_one) "gBV" = ( /obj/effect/landmark/crap_item, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/desert_dam/building/cafeteria/cold_room) "gCg" = ( /obj/effect/decal/cleanable/liquid_fuel, @@ -60989,9 +46856,7 @@ /area/desert_dam/exterior/valley/valley_hydro) "gFr" = ( /obj/structure/machinery/colony_floodlight, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached18" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached18, /area/desert_dam/exterior/valley/south_valley_dam) "gGC" = ( /turf/closed/wall/mineral/sandstone/runed/decor, @@ -60999,9 +46864,7 @@ "gIA" = ( /obj/structure/toilet, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/desert_dam/interior/dam_interior/break_room) "gIS" = ( /obj/structure/stairs/perspective{ @@ -61009,36 +46872,29 @@ dir = 5; icon_state = "p_stair_full" }, -/turf/open/desert/rock/deep{ - icon_state = "rock4" - }, +/turf/open/desert/rock/deep/rock4, /area/desert_dam/interior/caves/temple) "gKm" = ( /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached1" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached1, /area/desert_dam/exterior/valley/valley_civilian) "gKn" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/desert/rock/deep/transition{ - dir = 1 - }, +/turf/open/desert/rock/deep/transition/north, /area/desert_dam/interior/caves/temple) "gKo" = ( /obj/effect/landmark/monkey_spawn, -/turf/open/desert/rock/deep{ - icon_state = "rock3" - }, +/turf/open/desert/rock/deep/rock3, /area/desert_dam/exterior/valley/valley_wilderness) "gLb" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/engidoor/glass/colony{ dir = 2 }, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/dam_interior/garage) +"gLg" = ( +/turf/open/desert/dirt/desert_transition_corner1/north, +/area/desert_dam/exterior/landing_pad_two) "gLl" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 1 @@ -61051,16 +46907,12 @@ /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 8 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached12" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached12, /area/desert_dam/exterior/valley/valley_telecoms) "gNq" = ( /obj/structure/surface/table, /obj/item/tool/pen, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/desert_dam/interior/lab_northeast/east_lab_west_hallway) "gOE" = ( /obj/effect/decal/sand_overlay/sand1{ @@ -61072,9 +46924,7 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 1 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/south_valley_dam) "gRC" = ( /obj/structure/machinery/power/apc{ @@ -61090,23 +46940,16 @@ /area/desert_dam/exterior/telecomm/lz1_south) "gTW" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/desert/dirt{ - dir = 1; - icon_state = "desert_transition_corner1" - }, +/turf/open/desert/dirt/desert_transition_corner1/north, /area/desert_dam/interior/caves/central_caves) "gUh" = ( /obj/structure/surface/rack, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/interior/dam_interior/workshop) "gUz" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/desert_dam/building/substation/northwest) "gVm" = ( /obj/structure/flora/grass/tallgrass/desert/corner{ @@ -61114,6 +46957,13 @@ }, /turf/open/desert/dirt, /area/desert_dam/exterior/valley/valley_hydro) +"gVo" = ( +/obj/structure/machinery/power/reactor/colony, +/obj/structure/lattice{ + layer = 2.9 + }, +/turf/open/floor/greengrid, +/area/desert_dam/interior/dam_interior/engine_room) "gWu" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, @@ -61131,9 +46981,7 @@ /obj/effect/decal/remains/xeno{ pixel_x = 31 }, -/turf/open/desert/dirt{ - icon_state = "rock1" - }, +/turf/open/desert/dirt/rock1, /area/desert_dam/exterior/valley/valley_crashsite) "gYP" = ( /obj/effect/decal/cleanable/dirt, @@ -61142,55 +46990,39 @@ /turf/open/floor/prison, /area/desert_dam/building/dorms/hallway_westwing) "gYT" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/exterior/telecomm/lz1_valley) "gYU" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached2" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached2, /area/desert_dam/exterior/telecomm/lz2_storage) "hcP" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 1 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/south_valley_dam) "het" = ( /obj/structure/surface/table, /obj/structure/machinery/computer/objective, -/turf/open/floor/prison{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/prison/red/north, /area/desert_dam/building/water_treatment_one/lobby) "heR" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/desert_dam/building/cafeteria/cold_room) "hhj" = ( /obj/structure/stairs, /obj/structure/platform{ dir = 8 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached14" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached14, /area/desert_dam/exterior/valley/south_valley_dam) "hiN" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 1 }, /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_crashsite) "hjm" = ( /obj/effect/decal/warning_stripes{ @@ -61199,6 +47031,15 @@ /obj/effect/decal/cleanable/dirt, /turf/open/asphalt, /area/desert_dam/exterior/valley/valley_hydro) +"hjz" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N" + }, +/turf/open/asphalt, +/area/desert_dam/exterior/landing_pad_two) +"hjW" = ( +/turf/open/desert/dirt/desert_transition_edge1/northwest, +/area/desert_dam/exterior/landing_pad_two) "hmA" = ( /obj/structure/surface/table/almayer, /obj/item/paper_bin, @@ -61206,9 +47047,7 @@ /obj/item/folder/black, /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/dam_interior/CE_office) "hnJ" = ( /obj/structure/platform_decoration/mineral/sandstone/runed{ @@ -61223,9 +47062,7 @@ /turf/open/floor/sandstone/runed, /area/desert_dam/interior/caves/temple) "hpw" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached3" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached3, /area/desert_dam/exterior/valley/south_valley_dam) "hpL" = ( /obj/structure/platform/mineral/sandstone/runed{ @@ -61235,33 +47072,31 @@ /turf/open/floor/sandstone/runed, /area/desert_dam/interior/caves/temple) "hqp" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached4" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached4, /area/desert_dam/exterior/valley/valley_hydro) "hqT" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached1" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached1, /area/desert_dam/exterior/valley/south_valley_dam) -"hvG" = ( -/turf/open/desert/dirt{ - dir = 4; - icon_state = "desert_transition_edge1" +"htc" = ( +/turf/open/desert/dirt/desert_transition_edge1, +/area/desert_dam/exterior/landing_pad_two) +"hvD" = ( +/obj/structure/shuttle/diagonal{ + icon_state = "swall_f10" }, +/turf/open/shuttle/can_surgery/red, +/area/desert_dam/interior/dam_interior/hanger) +"hvG" = ( +/turf/open/desert/dirt/desert_transition_edge1/east, /area/desert_dam/exterior/valley/valley_telecoms) "hwc" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached4" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached4, /area/desert_dam/exterior/valley/south_valley_dam) "hxj" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 8 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached13" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached13, /area/desert_dam/exterior/valley/valley_hydro) "hyH" = ( /obj/structure/tunnel, @@ -61271,9 +47106,7 @@ /obj/effect/decal/sand_overlay/sand2, /obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached12" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached12, /area/desert_dam/exterior/valley/valley_crashsite) "hzC" = ( /obj/effect/decal/cleanable/dirt, @@ -61287,9 +47120,7 @@ }, /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/light, -/turf/open/floor/prison{ - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2, /area/desert_dam/interior/dam_interior/garage) "hAv" = ( /obj/item/stack/sheet/mineral/sandstone{ @@ -61309,13 +47140,15 @@ /turf/open/asphalt, /area/desert_dam/building/hydroponics/hydroponics_loading) "hBr" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached3" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached3, /area/desert_dam/exterior/valley/valley_hydro) "hCf" = ( /turf/open/asphalt/cement_sunbleached, /area/desert_dam/exterior/valley/south_valley_dam) +"hCY" = ( +/obj/structure/flora/grass/desert/lightgrass_3, +/turf/open/desert/dirt, +/area/desert_dam/exterior/landing_pad_two) "hDT" = ( /obj/structure/flora/bush/desert/cactus{ icon_state = "cactus_4" @@ -61337,29 +47170,24 @@ /turf/open/asphalt, /area/desert_dam/exterior/valley/valley_civilian) "hMc" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached13" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached13, /area/desert_dam/exterior/valley/valley_telecoms) +"hOt" = ( +/obj/structure/computerframe, +/turf/open/shuttle/can_surgery/red, +/area/desert_dam/interior/dam_interior/hanger) "hOv" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/floor/prison{ - icon_state = "green" - }, +/turf/open/floor/prison/green, /area/desert_dam/building/dorms/hallway_westwing) "hOA" = ( /obj/structure/surface/table, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/hydroponics/hydroponics_breakroom) "hOK" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached18" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached18, /area/desert_dam/exterior/valley/valley_hydro) "hPB" = ( /obj/structure/desertdam/decals/road_edge{ @@ -61369,36 +47197,37 @@ /turf/open/asphalt, /area/desert_dam/exterior/valley/valley_medical) "hQM" = ( -/turf/open/desert/rock/deep/transition{ - dir = 10 - }, +/turf/open/desert/rock/deep/transition/southwest, /area/desert_dam/interior/caves/temple) "hRU" = ( /obj/effect/landmark/xeno_hive_spawn, /obj/effect/landmark/ert_spawns/groundside_xeno, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/mining/workshop) +"hTf" = ( +/obj/structure/flora/grass/tallgrass/desert/corner{ + dir = 6 + }, +/turf/open/desert/dirt, +/area/desert_dam/exterior/landing_pad_two) "hTg" = ( /obj/effect/landmark/survivor_spawner, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/desert_dam/building/church) "hTr" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 1 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_labs) "hVs" = ( /obj/structure/blocker/forcefield/multitile_vehicles, /turf/closed/wall/r_wall/chigusa, /area/desert_dam/interior/lab_northeast/east_lab_west_hallway) +"hVV" = ( +/obj/structure/flora/grass/desert/lightgrass_9, +/turf/open/desert/dirt, +/area/desert_dam/exterior/landing_pad_two) "hWz" = ( /obj/structure/surface/table/reinforced, /obj/effect/landmark/objective_landmark/medium, @@ -61409,10 +47238,7 @@ dir = 4 }, /obj/structure/disposalpipe/segment, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellow" - }, +/turf/open/floor/whiteyellow/east, /area/desert_dam/interior/dam_interior/garage) "ibl" = ( /obj/effect/landmark/static_comms/net_one, @@ -61425,10 +47251,7 @@ /turf/open/asphalt, /area/desert_dam/exterior/valley/valley_medical) "ibU" = ( -/turf/open/desert/dirt{ - dir = 4; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/east, /area/desert_dam/exterior/valley/valley_hydro) "ick" = ( /obj/effect/decal/warning_stripes{ @@ -61450,16 +47273,11 @@ /turf/open/asphalt, /area/desert_dam/exterior/valley/valley_medical) "idG" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached14" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached14, /area/desert_dam/exterior/telecomm/lz2_storage) "ieU" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/garage) "ifh" = ( /obj/structure/surface/table/reinforced, @@ -61468,16 +47286,12 @@ pixel_y = 32 }, /obj/effect/landmark/objective_landmark/far, -/turf/open/floor{ - icon_state = "grimy" - }, +/turf/open/floor/grimy, /area/desert_dam/building/bar/bar) "ifB" = ( /obj/structure/surface/table, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/desert_dam/building/security/observation) "igf" = ( /obj/structure/desertdam/decals/road_edge{ @@ -61488,13 +47302,13 @@ }, /turf/open/asphalt, /area/desert_dam/exterior/valley/bar_valley_dam) +"ign" = ( +/turf/open/desert/dirt/desert_transition_edge1/southwest, +/area/desert_dam/exterior/landing_pad_one) "ihT" = ( /obj/structure/surface/table, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/desert_dam/building/warehouse/breakroom) "iiQ" = ( /obj/structure/surface/table/reinforced, @@ -61502,21 +47316,22 @@ /obj/item/roller, /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/prison{ - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen, /area/desert_dam/building/medical/emergency_room) +"iiY" = ( +/obj/structure/machinery/power/reactor/colony, +/obj/structure/lattice{ + layer = 2.9 + }, +/turf/open/floor/plating, +/area/desert_dam/interior/dam_interior/engine_room) "ijc" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/dam_interior/tech_storage) "ilq" = ( /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_crashsite) "ioA" = ( /turf/open/gm/river/desert/shallow, @@ -61547,40 +47362,28 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 1 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached18" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached18, /area/desert_dam/exterior/valley/valley_hydro) "isz" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/garage) "isZ" = ( /obj/effect/landmark/xeno_hive_spawn, /obj/effect/landmark/ert_spawns/groundside_xeno, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/interior/lab_northeast/east_lab_biology) "iuk" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/desert/dirt{ - dir = 8; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/west, /area/desert_dam/exterior/valley/valley_crashsite) "iuY" = ( /obj/structure/surface/table, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/desert_dam/building/dorms/hallway_northwing) "ivd" = ( /obj/effect/decal/sand_overlay/sand1{ @@ -61600,26 +47403,17 @@ /obj/structure/machinery/door/airlock/sandstone/runed{ name = "Strange Temple" }, -/turf/open/desert/rock/deep{ - icon_state = "rock4" - }, +/turf/open/desert/rock/deep/rock4, /area/desert_dam/interior/caves/temple) "ivQ" = ( /obj/structure/xenoautopsy/tank/broken, -/turf/open/desert/rock/deep{ - icon_state = "rock3" - }, +/turf/open/desert/rock/deep/rock3, /area/desert_dam/interior/caves/temple) "iwh" = ( -/turf/open/desert/dirt{ - dir = 4; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/east, /area/desert_dam/exterior/valley/south_valley_dam) "iwy" = ( -/turf/open/desert/rock/deep/transition{ - dir = 8 - }, +/turf/open/desert/rock/deep/transition/west, /area/desert_dam/interior/caves/temple) "ixe" = ( /obj/structure/machinery/light{ @@ -61629,10 +47423,7 @@ dir = 1 }, /obj/effect/landmark/good_item, -/turf/open/floor{ - dir = 8; - icon_state = "whiteyellow" - }, +/turf/open/floor/whiteyellow/west, /area/desert_dam/interior/dam_interior/garage) "iAf" = ( /obj/effect/decal/warning_stripes{ @@ -61642,39 +47433,36 @@ /turf/open/asphalt, /area/desert_dam/exterior/valley/valley_medical) "iCw" = ( -/turf/open/floor/prison{ - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2, /area/desert_dam/interior/dam_interior/garage) "iCE" = ( /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/desert/dirt{ - dir = 9; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/northwest, /area/desert_dam/exterior/valley/valley_wilderness) +"iHF" = ( +/turf/open/desert/dirt/desert_transition_edge1/southwest, +/area/desert_dam/exterior/landing_pad_two) "iIB" = ( /obj/structure/surface/table/reinforced, /obj/effect/landmark/objective_landmark/far, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/interior/lab_northeast/east_lab_biology) "iJC" = ( /obj/structure/surface/rack, /obj/effect/landmark/objective_landmark/close, /turf/open/floor/prison, /area/desert_dam/exterior/valley/south_valley_dam) +"iKp" = ( +/obj/structure/desertdam/decals/road_edge, +/turf/open/asphalt, +/area/desert_dam/exterior/landing_pad_one) "iNg" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony{ dir = 2; name = "\improper Garage Breakroom" }, /obj/structure/disposalpipe/segment, -/turf/open/floor{ - dir = 6; - icon_state = "whiteyellow" - }, +/turf/open/floor/whiteyellow/southeast, /area/desert_dam/interior/dam_interior/garage) "iNF" = ( /turf/open/desert/desert_shore/shore_edge1, @@ -61687,26 +47475,20 @@ /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 1 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached15" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached15, /area/desert_dam/exterior/valley/valley_hydro) "iRU" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 8 }, /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached12" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached12, /area/desert_dam/exterior/valley/valley_civilian) "iTi" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/building/cafeteria/cafeteria) "iTX" = ( /obj/structure/flora/grass/tallgrass/desert/corner{ @@ -61730,9 +47512,7 @@ "iXt" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/liquid_fuel, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/dam_interior/hanger) "iYy" = ( /obj/structure/surface/table, @@ -61741,36 +47521,38 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkbrown3" - }, +/turf/open/floor/prison/darkbrown3/east, /area/desert_dam/interior/dam_interior/disposals) "iYI" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 1 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached18" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached18, /area/desert_dam/exterior/valley/bar_valley_dam) +"iZY" = ( +/obj/structure/flora/grass/desert/heavygrass_3, +/turf/open/desert/dirt, +/area/desert_dam/exterior/landing_pad_one) "jbx" = ( -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/bar_valley_dam) +"jcb" = ( +/obj/structure/flora/grass/desert/lightgrass_6, +/turf/open/desert/dirt, +/area/desert_dam/exterior/landing_pad_two) "jci" = ( /obj/structure/closet/secure_closet/personal, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/desert_dam/building/security/staffroom) "jcK" = ( /obj/effect/decal/sand_overlay/sand1/corner1, /turf/open/asphalt/cement_sunbleached, /area/desert_dam/exterior/telecomm/lz2_storage) +"jdT" = ( +/obj/structure/machinery/light, +/turf/open/shuttle/can_surgery/red, +/area/desert_dam/interior/dam_interior/hanger) "jfA" = ( /obj/structure/flora/tree/joshua, /turf/open/desert/dirt, @@ -61786,16 +47568,20 @@ /turf/open/asphalt, /area/desert_dam/exterior/valley/bar_valley_dam) "jpa" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached14" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached14, /area/desert_dam/exterior/valley/valley_hydro) +"jqU" = ( +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal2" + }, +/obj/effect/decal/sand_overlay/sand1{ + dir = 8 + }, +/turf/open/asphalt, +/area/desert_dam/exterior/landing_pad_two) "jre" = ( /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/desert_dam/interior/dam_interior/hangar_storage) "jrV" = ( /obj/effect/decal/cleanable/dirt, @@ -61816,17 +47602,12 @@ /area/desert_dam/exterior/river/riverside_south) "jtz" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_core, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/mining/workshop) "jvo" = ( /obj/structure/closet/l3closet/virology, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/desert_dam/building/water_treatment_two/equipment) "jvZ" = ( /obj/structure/platform{ @@ -61835,9 +47616,7 @@ /obj/structure/platform{ dir = 4 }, -/turf/open/desert/dirt{ - icon_state = "dirt2" - }, +/turf/open/desert/dirt/dirt2, /area/desert_dam/exterior/valley/south_valley_dam) "jxq" = ( /obj/structure/machinery/power/apc{ @@ -61845,35 +47624,24 @@ pixel_x = -24; start_charge = 0 }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/desert_dam/exterior/telecomm/lz1_south) "jxN" = ( /obj/structure/tunnel, -/turf/open/desert/dirt{ - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1, /area/desert_dam/exterior/valley/valley_crashsite) "jAr" = ( /obj/structure/closet/crate/hydroponics/prespawned, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - dir = 1; - icon_state = "vault" - }, +/turf/open/floor/vault2/north, /area/desert_dam/building/hydroponics/hydroponics_storage) "jAS" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached4" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached4, /area/desert_dam/exterior/valley/valley_civilian) "jBh" = ( /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/dam_interior/atmos_storage) "jCJ" = ( /obj/structure/blocker/forcefield/multitile_vehicles, @@ -61894,6 +47662,9 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/desert_dam/building/hydroponics/hydroponics_storage) +"jIQ" = ( +/turf/open/shuttle/can_surgery/red, +/area/desert_dam/interior/dam_interior/hanger) "jJa" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, @@ -61902,9 +47673,7 @@ "jJn" = ( /obj/structure/closet/crate/freezer/rations, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/desert_dam/building/cafeteria/cold_room) "jJE" = ( /obj/effect/landmark/objective_landmark/far, @@ -61914,9 +47683,7 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 10 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_telecoms) "jMT" = ( /obj/effect/decal/warning_stripes{ @@ -61932,9 +47699,7 @@ /turf/open/asphalt, /area/desert_dam/exterior/valley/valley_labs) "jOe" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached12" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached12, /area/desert_dam/exterior/valley/valley_hydro) "jSS" = ( /obj/structure/desertdam/decals/road_edge{ @@ -61945,25 +47710,17 @@ "jTF" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/desert_dam/interior/dam_interior/hanger) "jVa" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 1 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_hydro) "jVr" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/desert_dam/building/medical/morgue) "jVv" = ( /obj/effect/decal/cleanable/dirt, @@ -61979,15 +47736,10 @@ "jXy" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/floor/prison{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/prison/green/north, /area/desert_dam/building/dorms/hallway_northwing) "jZZ" = ( -/turf/open/desert/dirt{ - icon_state = "desert_transition_corner1" - }, +/turf/open/desert/dirt/desert_transition_corner1, /area/desert_dam/exterior/valley/valley_telecoms) "kbo" = ( /obj/structure/prop/dam/boulder/boulder1, @@ -61998,35 +47750,25 @@ /area/desert_dam/exterior/telecomm/lz2_containers) "kee" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/dorms/restroom) "kge" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_nest, /obj/effect/landmark/structure_spawner/setup/distress/xeno_nest, -/turf/open/desert/dirt{ - dir = 10; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/southwest, /area/desert_dam/exterior/valley/valley_crashsite) "kiy" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 8 }, -/turf/open/desert/dirt{ - icon_state = "dirt2" - }, +/turf/open/desert/dirt/dirt2, /area/desert_dam/exterior/valley/valley_crashsite) "kiP" = ( /obj/structure/flora/grass/tallgrass/desert, /turf/open/desert/dirt, /area/desert_dam/exterior/valley/valley_crashsite) "kkm" = ( -/turf/open/desert/dirt{ - dir = 5; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/northeast, /area/desert_dam/exterior/valley/valley_hydro) "kmr" = ( /obj/structure/desertdam/decals/road_edge{ @@ -62042,9 +47784,7 @@ "knm" = ( /obj/structure/surface/table, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/building/cafeteria/loading) "kry" = ( /obj/effect/decal/warning_stripes{ @@ -62075,9 +47815,7 @@ }, /obj/item/reagent_container/food/snacks/stew, /obj/item/tool/kitchen/utensil/spoon, -/turf/open/desert/rock/deep{ - icon_state = "rock4" - }, +/turf/open/desert/rock/deep/rock4, /area/desert_dam/interior/caves/temple) "kAV" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony, @@ -62089,10 +47827,7 @@ dir = 4 }, /obj/effect/landmark/survivor_spawner, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/north, /area/desert_dam/building/medical/virology_wing) "kFW" = ( /obj/structure/machinery/door/poddoor/almayer{ @@ -62103,15 +47838,10 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/garage) "kIl" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached13" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached13, /area/desert_dam/exterior/valley/bar_valley_dam) "kIP" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, @@ -62127,67 +47857,57 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached13" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached13, /area/desert_dam/exterior/valley/bar_valley_dam) "kMM" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/desert_dam/interior/dam_interior/garage) "kMT" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 4 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_hydro) +"kOC" = ( +/obj/structure/machinery/power/reactor/colony, +/turf/open/floor/plating, +/area/desert_dam/interior/dam_interior/engine_room) "kOR" = ( /obj/structure/surface/table/reinforced/prison{ color = "#6b675e" }, /turf/open/floor/sandstone/runed, /area/desert_dam/interior/caves/temple) +"kPo" = ( +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal4" + }, +/turf/open/asphalt, +/area/desert_dam/exterior/landing_pad_two) "kPs" = ( /obj/structure/blocker/forcefield/multitile_vehicles, /turf/open/desert/dirt, /area/desert_dam/interior/caves/central_caves) "kQd" = ( /obj/structure/tunnel, -/turf/open/desert/rock/deep{ - icon_state = "rock3" - }, +/turf/open/desert/rock/deep/rock3, /area/desert_dam/interior/caves/east_caves) "kRX" = ( /obj/structure/surface/table, /obj/item/storage/fancy/vials/random, -/turf/open/floor{ - dir = 8; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/west, /area/desert_dam/building/lab_northwest/west_lab_xenoflora) "kTX" = ( -/turf/open/desert/dirt{ - dir = 8; - icon_state = "desert_transition_corner1" - }, +/turf/open/desert/dirt/desert_transition_corner1/west, /area/desert_dam/exterior/valley/bar_valley_dam) "kUz" = ( /obj/structure/surface/table, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 6; - icon_state = "whiteyellow" - }, +/turf/open/floor/whiteyellow/southeast, /area/desert_dam/interior/dam_interior/break_room) "kVU" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached12" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached12, /area/desert_dam/exterior/valley/south_valley_dam) "kWh" = ( /obj/structure/flora/grass/desert/heavygrass_4, @@ -62211,18 +47931,12 @@ /area/desert_dam/exterior/valley/valley_labs) "lei" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/desert_dam/building/mining/workshop_foyer) "leJ" = ( /obj/structure/closet/crate/secure, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/desert_dam/building/mining/workshop_foyer) "leZ" = ( /obj/effect/decal/sand_overlay/sand1{ @@ -62236,10 +47950,7 @@ /turf/open/asphalt/cement_sunbleached, /area/desert_dam/exterior/valley/valley_civilian) "lfZ" = ( -/turf/open/desert/dirt{ - dir = 4; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/east, /area/desert_dam/exterior/telecomm/lz1_valley) "lib" = ( /obj/structure/surface/table/reinforced, @@ -62248,10 +47959,7 @@ health = 80 }, /obj/structure/window/reinforced, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/desert_dam/building/medical/lobby) "liN" = ( /obj/structure/disposalpipe/segment{ @@ -62260,10 +47968,7 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/north, /area/desert_dam/building/medical/north_wing_hallway) "ljB" = ( /obj/structure/closet/cabinet, @@ -62280,23 +47985,16 @@ "lkZ" = ( /obj/structure/surface/table, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - icon_state = "whiteyellow" - }, +/turf/open/floor/whiteyellow, /area/desert_dam/interior/dam_interior/break_room) "lmq" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/vomit, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/smes_main) "lnG" = ( /obj/effect/decal/sand_overlay/sand1/corner1, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/south_valley_dam) "lop" = ( /obj/structure/desertdam/decals/road_edge{ @@ -62306,11 +48004,9 @@ /area/desert_dam/exterior/valley/valley_telecoms) "lrn" = ( /obj/effect/landmark/nightmare{ - insert_tag = "damtemple" - }, -/turf/open/desert/dirt{ - icon_state = "desert_transition_edge1" + insert_tag = "damtemple_intact" }, +/turf/open/desert/dirt/desert_transition_edge1, /area/desert_dam/exterior/valley/valley_crashsite) "lrY" = ( /obj/structure/flora/grass/desert/lightgrass_8, @@ -62321,10 +48017,7 @@ dir = 1 }, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/medical/break_room) "ltE" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, @@ -62340,9 +48033,7 @@ /obj/structure/machinery/computer/shuttle/elevator_controller/elevator_call/trijent/engi{ pixel_x = -32 }, -/turf/open/desert/rock/deep/transition{ - dir = 10 - }, +/turf/open/desert/rock/deep/transition/southwest, /area/desert_dam/interior/dam_interior/west_tunnel) "lxq" = ( /obj/structure/surface/table, @@ -62362,12 +48053,12 @@ }, /turf/open/asphalt, /area/desert_dam/exterior/valley/valley_hydro) +"lzs" = ( +/turf/open/desert/dirt/rock1, +/area/desert_dam/exterior/landing_pad_two) "lzZ" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/desert_dam/building/cafeteria/loading) "lAb" = ( /obj/structure/sink{ @@ -62375,9 +48066,7 @@ pixel_y = -10 }, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/desert_dam/building/water_treatment_one/breakroom) "lDT" = ( /obj/structure/flora/grass/desert/lightgrass_3, @@ -62393,11 +48082,11 @@ /area/desert_dam/exterior/valley/valley_medical) "lHW" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/desert_dam/interior/lab_northeast/east_lab_lobby) +"lIt" = ( +/turf/open/desert/dirt, +/area/desert_dam/exterior/landing_pad_two) "lIK" = ( /obj/structure/desertdam/decals/road_edge{ icon_state = "road_edge_decal4" @@ -62406,14 +48095,12 @@ dir = 1 }, /turf/open/asphalt, -/area/desert_dam/exterior/valley/valley_cargo) +/area/desert_dam/exterior/landing_pad_two) "lJM" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 9 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_hydro) "lKW" = ( /obj/structure/flora/grass/tallgrass/desert/corner{ @@ -62423,18 +48110,12 @@ /area/desert_dam/exterior/valley/bar_valley_dam) "lKY" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/medical/north_wing_hallway) "lLI" = ( /obj/structure/filingcabinet, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/north, /area/desert_dam/interior/lab_northeast/east_lab_security_armory) "lMc" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, @@ -62445,10 +48126,7 @@ /area/desert_dam/exterior/valley/bar_valley_dam) "lNN" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/jungle{ - bushes_spawn = 0; - icon_state = "grass_impenetrable" - }, +/turf/open/jungle/impenetrable, /area/desert_dam/interior/lab_northeast/east_lab_containment) "lOM" = ( /obj/effect/decal/sand_overlay/sand2/corner2, @@ -62461,31 +48139,22 @@ /area/desert_dam/building/cafeteria/loading) "lPn" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached14" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached14, /area/desert_dam/exterior/valley/valley_civilian) "lQM" = ( /obj/structure/stairs{ dir = 4 }, /obj/structure/platform, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_labs) "lUl" = ( /obj/structure/surface/table/woodentable/fancy, -/turf/open/floor{ - dir = 8; - icon_state = "carpet15-15" - }, +/turf/open/floor/carpet15_15/west, /area/desert_dam/building/administration/office) "lUU" = ( /obj/effect/landmark/monkey_spawn, -/turf/open/desert/dirt{ - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1, /area/desert_dam/exterior/valley/south_valley_dam) "lVW" = ( /obj/effect/decal/sand_overlay/sand1{ @@ -62504,14 +48173,18 @@ /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /turf/open/desert/dirt, /area/desert_dam/exterior/valley/valley_crashsite) +"lZP" = ( +/obj/structure/flora/grass/tallgrass/desert/corner{ + dir = 9 + }, +/turf/open/desert/dirt, +/area/desert_dam/exterior/landing_pad_one) "mar" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/tech_supply, /obj/effect/spawner/random/tech_supply, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison{ - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2, /area/desert_dam/interior/dam_interior/primary_tool_storage) "mbl" = ( /obj/structure/surface/table, @@ -62530,19 +48203,14 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 1 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached18" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached18, /area/desert_dam/exterior/valley/valley_labs) "mej" = ( /obj/structure/machinery/computer/shuttle/elevator_controller/elevator_call/trijent/lz2{ pixel_x = 32; shuttleId = "trijentshuttle22" }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/east, /area/desert_dam/building/warehouse/loading) "meN" = ( /obj/structure/desertdam/decals/road_edge{ @@ -62551,13 +48219,18 @@ /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /turf/open/asphalt, /area/desert_dam/exterior/valley/valley_civilian) +"mfH" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/asphalt, +/area/desert_dam/exterior/landing_pad_two) "mfK" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached18" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached18, /area/desert_dam/exterior/valley/south_valley_dam) "mgw" = ( /obj/structure/desertdam/decals/road_stop{ @@ -62576,18 +48249,19 @@ "mhU" = ( /obj/structure/surface/rack, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/interior/dam_interior/workshop) +"mjR" = ( +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal6" + }, +/turf/open/asphalt, +/area/desert_dam/exterior/landing_pad_one) "mkd" = ( /obj/effect/decal/warning_stripes{ icon_state = "E" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/garage) "mkJ" = ( /obj/structure/flora/grass/desert/lightgrass_4, @@ -62604,23 +48278,19 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached13" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached13, /area/desert_dam/exterior/telecomm/lz1_valley) "mnc" = ( -/turf/open/desert/dirt{ - icon_state = "dirt2" - }, +/turf/open/desert/dirt/dirt2, /area/desert_dam/interior/caves/temple) "mnA" = ( /obj/structure/machinery/floodlight, /obj/structure/machinery/camera/autoname/almayer, -/turf/open/floor/prison{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/prison/green/north, /area/desert_dam/interior/dam_interior/atmos_storage) +"moq" = ( +/turf/open/desert/dirt/desert_transition_edge1/southeast, +/area/desert_dam/exterior/landing_pad_one) "mqM" = ( /obj/effect/landmark/monkey_spawn, /turf/open/desert/rock, @@ -62646,17 +48316,15 @@ icon_state = "pred_mask12_ebony"; unacidable = 0 }, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/desert_dam/interior/caves/temple) +"muj" = ( +/obj/structure/flora/grass/tallgrass/desert, +/turf/open/desert/dirt, +/area/desert_dam/exterior/landing_pad_two) "myx" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/north, /area/desert_dam/interior/lab_northeast/east_lab_central_hallway) "mAm" = ( /obj/effect/decal/cleanable/dirt, @@ -62687,11 +48355,22 @@ }, /turf/open/gm/river/desert/shallow, /area/desert_dam/exterior/river/riverside_south) +"mBO" = ( +/obj/structure/flora/grass/tallgrass/desert, +/turf/open/desert/dirt, +/area/desert_dam/exterior/landing_pad_one) +"mDd" = ( +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal12" + }, +/obj/effect/decal/sand_overlay/sand1{ + dir = 10 + }, +/turf/open/asphalt, +/area/desert_dam/exterior/landing_pad_two) "mDz" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached4" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached4, /area/desert_dam/exterior/valley/valley_hydro) "mDA" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ @@ -62703,53 +48382,47 @@ /area/desert_dam/exterior/valley/valley_crashsite) "mEC" = ( /obj/effect/decal/cleanable/liquid_fuel, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/auxilary_tool_storage) "mEV" = ( /obj/structure/machinery/light, -/turf/open/desert/rock/deep/transition{ - dir = 10 - }, +/turf/open/desert/rock/deep/transition/southwest, /area/desert_dam/interior/dam_interior/west_tunnel) "mGo" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 8 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_hydro) "mHf" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/desert_dam/interior/caves/temple) "mHV" = ( /obj/effect/decal/sand_overlay/sand1, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached12" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached12, /area/desert_dam/exterior/telecomm/lz2_storage) "mKs" = ( /turf/closed/wall/rock/orange, /area/desert_dam/exterior/valley/valley_telecoms) "mKW" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/desert_dam/interior/dam_interior/hanger) -"mMm" = ( -/turf/open/desert/dirt{ - dir = 5; - icon_state = "desert_transition_edge1" +"mKZ" = ( +/obj/structure/flora/pottedplant, +/obj/structure/machinery/power/apc{ + dir = 1; + pixel_y = 24; + start_charge = 0 }, +/obj/structure/machinery/light{ + dir = 4 + }, +/turf/open/floor/prison/red/northeast, +/area/desert_dam/building/security/lobby) +"mMm" = ( +/turf/open/desert/dirt/desert_transition_edge1/northeast, /area/desert_dam/exterior/valley/bar_valley_dam) "mNk" = ( /turf/closed/wall/r_wall, @@ -62757,17 +48430,12 @@ "mNn" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/building/cafeteria/cafeteria) "mNC" = ( /obj/structure/filingcabinet, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/north, /area/desert_dam/interior/lab_northeast/east_lab_security_armory) "mOS" = ( /obj/effect/decal/cleanable/blood/oil, @@ -62777,9 +48445,7 @@ /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached12" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached12, /area/desert_dam/exterior/valley/bar_valley_dam) "mTf" = ( /obj/effect/decal/warning_stripes{ @@ -62801,26 +48467,22 @@ /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 8 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/bar_valley_dam) "mZa" = ( /obj/structure/surface/table, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/desert_dam/building/cafeteria/cafeteria) +"mZb" = ( +/turf/open/desert/dirt, +/area/desert_dam/exterior/landing_pad_one) "mZj" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 4 }, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached3" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached3, /area/desert_dam/exterior/valley/valley_crashsite) "naF" = ( /obj/effect/landmark/objective_landmark/close, @@ -62843,6 +48505,9 @@ "ncm" = ( /turf/open/desert/rock/deep, /area/desert_dam/interior/dam_interior/east_tunnel_entrance) +"ndF" = ( +/turf/open/desert/dirt/desert_transition_edge1/north, +/area/desert_dam/exterior/landing_pad_one) "ndP" = ( /obj/structure/stairs/perspective{ color = "#b29082"; @@ -62853,9 +48518,7 @@ /area/desert_dam/interior/caves/temple) "ngk" = ( /obj/effect/landmark/objective_landmark/far, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/administration/control_room) "ngo" = ( /obj/structure/desertdam/decals/road_edge{ @@ -62864,23 +48527,22 @@ /turf/open/asphalt, /area/desert_dam/exterior/valley/south_valley_dam) "nil" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached13" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached13, /area/desert_dam/exterior/valley/south_valley_dam) +"niN" = ( +/obj/structure/flora/grass/tallgrass/desert/corner{ + dir = 1 + }, +/turf/open/desert/dirt, +/area/desert_dam/exterior/landing_pad_two) "nji" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/east, /area/desert_dam/interior/dam_interior/hanger) "njF" = ( /obj/effect/decal/sand_overlay/sand1, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/desert/dirt{ - icon_state = "dirt2" - }, +/turf/open/desert/dirt/dirt2, /area/desert_dam/exterior/valley/valley_crashsite) "nlH" = ( /obj/effect/decal/cleanable/dirt, @@ -62889,16 +48551,10 @@ /area/desert_dam/building/dorms/hallway_northwing) "nlU" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/prison{ - dir = 8; - icon_state = "green" - }, +/turf/open/floor/prison/green/west, /area/desert_dam/building/dorms/hallway_westwing) "nmr" = ( -/turf/open/desert/dirt{ - dir = 1; - icon_state = "desert_transition_corner1" - }, +/turf/open/desert/dirt/desert_transition_corner1/north, /area/desert_dam/exterior/valley/south_valley_dam) "nmP" = ( /obj/structure/desertdam/decals/road_edge{ @@ -62910,10 +48566,11 @@ "nnl" = ( /obj/structure/closet/secure_closet/personal, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/building/dorms/restroom) +"nnv" = ( +/turf/open/desert/dirt/desert_transition_edge1/northwest, +/area/desert_dam/exterior/landing_pad_one) "nsf" = ( /obj/structure/desertdam/decals/road_edge{ icon_state = "road_edge_decal12" @@ -62924,15 +48581,10 @@ "ntt" = ( /obj/structure/closet/l3closet/security, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/prison{ - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked, /area/desert_dam/building/security/armory) "nue" = ( -/turf/open/desert/dirt{ - dir = 6; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/southeast, /area/desert_dam/exterior/valley/south_valley_dam) "nvr" = ( /obj/structure/flora/grass/desert/heavygrass_3, @@ -62940,15 +48592,11 @@ /area/desert_dam/exterior/valley/bar_valley_dam) "nyN" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_core, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/interior/lab_northeast/east_lab_biology) "nyR" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/desert/rock/deep{ - icon_state = "rock4" - }, +/turf/open/desert/rock/deep/rock4, /area/desert_dam/interior/caves/temple) "nzB" = ( /obj/structure/flora/grass/tallgrass/desert, @@ -62976,24 +48624,17 @@ "nFW" = ( /obj/structure/surface/table, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/desert_dam/building/administration/meetingrooom) "nIz" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/prison{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/prison/green/north, /area/desert_dam/building/dorms/hallway_northwing) "nJZ" = ( /obj/structure/machinery/landinglight/ds1/delaythree{ dir = 8 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached14" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached14, /area/desert_dam/exterior/landing_pad_one) "nMO" = ( /obj/structure/disposalpipe/segment{ @@ -63001,10 +48642,7 @@ }, /obj/structure/largecrate/random, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/desert_dam/building/cafeteria/loading) "nRV" = ( /obj/effect/decal/warning_stripes{ @@ -63016,26 +48654,17 @@ /area/desert_dam/exterior/valley/valley_hydro) "nSN" = ( /obj/structure/surface/table/reinforced, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitered" - }, +/turf/open/floor/prison/whitered/west, /area/desert_dam/building/medical/office2) "nTa" = ( /obj/structure/surface/table, /obj/effect/spawner/random/toolbox, -/turf/open/floor{ - dir = 4; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/darkyellowcorners2/east, /area/desert_dam/interior/dam_interior/control_room) "nTn" = ( /obj/structure/closet/secure_closet/engineering_welding, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/desert_dam/interior/dam_interior/primary_tool_storage) "nTp" = ( /obj/structure/desertdam/decals/road_edge{ @@ -63064,22 +48693,15 @@ /area/desert_dam/interior/caves/central_caves) "nYz" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/desert_dam/interior/caves/temple) "nYZ" = ( /obj/effect/decal/sand_overlay/sand1, /obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached18" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached18, /area/desert_dam/exterior/valley/valley_medical) "oaz" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached14" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached14, /area/desert_dam/exterior/valley/bar_valley_dam) "obv" = ( /obj/structure/surface/table/reinforced/prison{ @@ -63095,17 +48717,12 @@ /obj/item/roller, /obj/item/roller, /obj/item/roller, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/east, /area/desert_dam/building/medical/west_wing_hallway) "odR" = ( /obj/structure/largecrate/random/case/small, /obj/structure/machinery/light, -/turf/open/floor/prison{ - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2, /area/desert_dam/interior/dam_interior/garage) "ofB" = ( /obj/effect/decal/sand_overlay/sand1{ @@ -63115,12 +48732,12 @@ /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, /turf/open/asphalt/cement_sunbleached, /area/desert_dam/exterior/valley/valley_crashsite) +"ogc" = ( +/turf/open/desert/dirt/rock1, +/area/desert_dam/exterior/landing_pad_one) "oit" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/desert/dirt{ - dir = 10; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/southwest, /area/desert_dam/exterior/valley/valley_crashsite) "olL" = ( /obj/structure/barricade/wooden{ @@ -63128,27 +48745,25 @@ }, /turf/open/asphalt, /area/desert_dam/exterior/valley/bar_valley_dam) +"onm" = ( +/obj/structure/flora/grass/desert/lightgrass_4, +/turf/open/desert/dirt, +/area/desert_dam/exterior/landing_pad_two) "onA" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached12" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached12, /area/desert_dam/exterior/valley/valley_civilian) "ooQ" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /turf/open/desert/rock, /area/desert_dam/interior/caves/temple) "ooW" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached13" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached13, /area/desert_dam/exterior/valley/valley_labs) "opZ" = ( /obj/effect/decal/sand_overlay/sand1, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached12" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached12, /area/desert_dam/exterior/valley/bar_valley_dam) "oqy" = ( /obj/structure/desertdam/decals/road_edge{ @@ -63160,10 +48775,7 @@ "osV" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/primary_tool_storage) "otn" = ( /obj/structure/desertdam/decals/road_edge{ @@ -63175,16 +48787,12 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached3" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached3, /area/desert_dam/exterior/valley/bar_valley_dam) "ouK" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached12" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached12, /area/desert_dam/exterior/valley/valley_crashsite) "oyf" = ( /obj/effect/decal/cleanable/dirt, @@ -63196,6 +48804,10 @@ "ozu" = ( /turf/open/asphalt, /area/desert_dam/exterior/valley/south_valley_dam) +"ozQ" = ( +/obj/structure/machinery/door/unpowered/shuttle, +/turf/open/shuttle/can_surgery/red, +/area/desert_dam/interior/dam_interior/hanger) "oAM" = ( /obj/structure/desertdam/decals/road_edge{ icon_state = "road_edge_decal2" @@ -63219,16 +48831,12 @@ /obj/structure/machinery/landinglight/ds1/delayone{ dir = 8 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached2" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached2, /area/desert_dam/exterior/landing_pad_one) "oHw" = ( /obj/structure/surface/table/reinforced, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison{ - icon_state = "blue" - }, +/turf/open/floor/prison/blue, /area/desert_dam/interior/dam_interior/tech_storage) "oHA" = ( /obj/structure/desertdam/decals/road_stop{ @@ -63248,39 +48856,42 @@ /turf/open/asphalt, /area/desert_dam/exterior/valley/bar_valley_dam) "oJw" = ( -/turf/open/desert/dirt{ - dir = 8; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/west, /area/desert_dam/exterior/valley/valley_hydro) +"oJT" = ( +/obj/structure/flora/grass/desert/lightgrass_2, +/turf/open/desert/dirt, +/area/desert_dam/exterior/landing_pad_one) +"oJW" = ( +/obj/structure/machinery/light{ + dir = 8 + }, +/turf/open/floor/interior/wood, +/area/desert_dam/building/security/detective) "oKG" = ( /obj/structure/desertdam/decals/road_stop{ icon_state = "stop_decal5" }, /turf/open/asphalt, /area/desert_dam/exterior/valley/valley_hydro) +"oMz" = ( +/turf/open/desert/dirt/desert_transition_edge1/east, +/area/desert_dam/exterior/landing_pad_one) "oNS" = ( /obj/structure/stairs, /obj/structure/platform{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached15" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached15, /area/desert_dam/exterior/valley/south_valley_dam) "oOj" = ( /obj/structure/largecrate/random, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/desert_dam/building/cafeteria/loading) "oQx" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached15" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached15, /area/desert_dam/exterior/valley/valley_hydro) "oQK" = ( /obj/structure/sink{ @@ -63289,17 +48900,12 @@ pixel_y = 2 }, /obj/effect/landmark/objective_landmark/far, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/desert_dam/interior/dam_interior/break_room) "oRZ" = ( /obj/structure/closet/radiation, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/north, /area/desert_dam/interior/lab_northeast/east_lab_excavation) "oUr" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_core, @@ -63312,15 +48918,15 @@ /area/desert_dam/interior/lab_northeast/east_lab_lobby) "oVs" = ( /obj/structure/surface/table, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/desert_dam/building/dorms/hallway_northwing) +"oWx" = ( +/obj/structure/machinery/power/reactor/colony, +/turf/open/floor/greengrid, +/area/desert_dam/interior/dam_interior/engine_room) "oXx" = ( /obj/structure/machinery/colony_floodlight, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/south_valley_dam) "oXK" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, @@ -63336,19 +48942,13 @@ pixel_x = -24; start_charge = 0 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/exterior/telecomm/lz1_valley) "pac" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/blood/oil/streak, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/garage) "pal" = ( /obj/structure/machinery/colony_floodlight, @@ -63373,9 +48973,7 @@ dir = 1 }, /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached4" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached4, /area/desert_dam/interior/caves/central_caves) "pif" = ( /obj/docking_port/stationary/trijent_elevator/empty{ @@ -63388,10 +48986,7 @@ /turf/open/gm/empty, /area/shuttle/trijent_shuttle/engi) "pij" = ( -/turf/open/desert/dirt{ - dir = 6; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/southeast, /area/desert_dam/exterior/valley/bar_valley_dam) "pke" = ( /obj/structure/prop/dam/wide_boulder/boulder1, @@ -63418,14 +49013,11 @@ dir = 1 }, /turf/open/asphalt, -/area/desert_dam/exterior/valley/valley_cargo) +/area/desert_dam/exterior/landing_pad_two) "ppS" = ( /obj/structure/surface/table, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/west, /area/desert_dam/building/medical/virology_isolation) "puM" = ( /obj/structure/machinery/light{ @@ -63445,23 +49037,16 @@ /turf/open/asphalt, /area/desert_dam/exterior/valley/valley_hydro) "pvs" = ( -/turf/open/desert/dirt{ - icon_state = "desert_transition_corner1" - }, +/turf/open/desert/dirt/desert_transition_corner1, /area/desert_dam/exterior/valley/south_valley_dam) "pvy" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/east, /area/desert_dam/interior/lab_northeast/east_lab_central_hallway) "pwc" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/floor/prison{ - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2, /area/desert_dam/building/mining/workshop) "pyP" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ @@ -63470,16 +49055,18 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 1 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached4" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached4, /area/desert_dam/exterior/valley/valley_crashsite) "pzd" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/desert_dam/interior/dam_interior/garage) +"pzk" = ( +/obj/effect/decal/sand_overlay/sand1/corner1{ + dir = 1 + }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached18, +/area/desert_dam/exterior/landing_pad_one) "pzv" = ( /obj/structure/desertdam/decals/road_edge{ icon_state = "road_edge_decal5" @@ -63488,25 +49075,18 @@ /area/desert_dam/exterior/valley/valley_hydro) "pAE" = ( /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached12" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached12, /area/desert_dam/exterior/valley/valley_crashsite) "pDd" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating{ - dir = 4; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/east, /area/desert_dam/building/substation/northwest) "pDW" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 4 }, /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_crashsite) "pEh" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -63522,17 +49102,13 @@ "pFj" = ( /obj/structure/surface/table, /obj/item/storage/fancy/vials/random, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/desert_dam/interior/lab_northeast/east_lab_west_hallway) "pFY" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 8 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached1" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached1, /area/desert_dam/exterior/telecomm/lz2_storage) "pGn" = ( /obj/effect/decal/cleanable/liquid_fuel, @@ -63542,13 +49118,17 @@ /obj/structure/window/framed/hangar/reinforced, /turf/open/floor/plating, /area/desert_dam/interior/dam_interior/garage) +"pHs" = ( +/obj/structure/desertdam/decals/road_stop{ + dir = 8; + icon_state = "stop_decal5" + }, +/turf/open/asphalt, +/area/desert_dam/exterior/landing_pad_one) "pHU" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/mining/workshop) "pIe" = ( /obj/structure/disposalpipe/segment{ @@ -63560,56 +49140,43 @@ "pIg" = ( /obj/structure/surface/table, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/warehouse/breakroom) "pJW" = ( /obj/structure/flora/grass/tallgrass/desert, /turf/open/desert/dirt, /area/desert_dam/exterior/valley/valley_telecoms) "pLm" = ( -/turf/open/desert/dirt{ - dir = 5; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/northeast, /area/desert_dam/exterior/valley/south_valley_dam) "pNG" = ( /obj/structure/xenoautopsy/tank/broken, -/turf/open/desert/rock/deep{ - icon_state = "rock4" - }, +/turf/open/desert/rock/deep/rock4, /area/desert_dam/interior/caves/temple) "pOE" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 4 }, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached3" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached3, /area/desert_dam/exterior/valley/valley_civilian) +"pRD" = ( +/turf/open/desert/dirt/desert_transition_edge1, +/area/desert_dam/exterior/landing_pad_one) "pSM" = ( /obj/effect/landmark/nightmare{ insert_tag = "purple-new-bridge" }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_hydro) "pSV" = ( /obj/item/tool/pen, /obj/item/paper_bundle, /obj/structure/surface/table/woodentable/fancy, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/desert_dam/building/water_treatment_one/hallway) "pTU" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached14" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached14, /area/desert_dam/exterior/valley/south_valley_dam) "pUO" = ( /obj/structure/desertdam/decals/road_edge{ @@ -63630,9 +49197,7 @@ dir = 8 }, /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached14" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached14, /area/desert_dam/exterior/valley/valley_crashsite) "qbC" = ( /obj/structure/surface/table/woodentable, @@ -63650,10 +49215,14 @@ /turf/open/desert/dirt, /area/desert_dam/exterior/valley/valley_hydro) "qjg" = ( -/turf/open/desert/rock/deep/transition{ - dir = 6 - }, +/turf/open/desert/rock/deep/transition/southeast, /area/desert_dam/interior/caves/temple) +"qkz" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/turf/open/asphalt, +/area/desert_dam/exterior/landing_pad_two) "qkJ" = ( /obj/structure/desertdam/decals/road_edge{ icon_state = "road_edge_decal4" @@ -63663,26 +49232,33 @@ /area/desert_dam/exterior/valley/bar_valley_dam) "qkZ" = ( /obj/effect/decal/cleanable/blood/oil/streak, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/desert_dam/exterior/telecomm/lz1_south) +"qlr" = ( +/obj/structure/flora/grass/desert/heavygrass_4, +/turf/open/desert/dirt, +/area/desert_dam/exterior/landing_pad_one) "qlx" = ( /obj/effect/decal/sand_overlay/sand1, /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached12" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached12, /area/desert_dam/exterior/valley/valley_civilian) "qlG" = ( /obj/structure/blocker/forcefield/multitile_vehicles, /turf/open/desert/dirt, /area/desert_dam/exterior/valley/valley_wilderness) "qlU" = ( -/turf/open/desert/dirt{ - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1, /area/desert_dam/exterior/valley/bar_valley_dam) +"qmn" = ( +/obj/structure/machinery/light{ + dir = 8 + }, +/obj/structure/bed/chair{ + dir = 4 + }, +/turf/open/shuttle/can_surgery/red, +/area/desert_dam/interior/dam_interior/hanger) "qmy" = ( /obj/structure/surface/rack, /turf/open/floor/sandstone/runed, @@ -63693,15 +49269,11 @@ }, /obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached4" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached4, /area/desert_dam/exterior/valley/valley_crashsite) "qoJ" = ( /obj/structure/machinery/landinglight/ds1/delaytwo, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached4" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached4, /area/desert_dam/exterior/landing_pad_one) "qqR" = ( /obj/structure/desertdam/decals/road_edge{ @@ -63716,17 +49288,12 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached13" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached13, /area/desert_dam/exterior/valley/valley_labs) "qwZ" = ( /obj/structure/bed/chair, /obj/effect/landmark/survivor_spawner, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/desert_dam/building/medical/surgury_observation) "qxv" = ( /obj/structure/machinery/colony_floodlight, @@ -63734,28 +49301,19 @@ /area/desert_dam/exterior/valley/valley_labs) "qyu" = ( /obj/structure/prop/dam/boulder/boulder1, -/turf/open/desert/dirt{ - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1, /area/desert_dam/exterior/valley/bar_valley_dam) "qyD" = ( /obj/structure/machinery/recharge_station, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/dam_interior/hangar_storage) "qyX" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/disposalpipe/segment, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellow" - }, +/turf/open/floor/whiteyellow/east, /area/desert_dam/interior/dam_interior/garage) "qzo" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached19" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached19, /area/desert_dam/exterior/valley/valley_telecoms) "qCr" = ( /obj/effect/decal/sand_overlay/sand1{ @@ -63763,22 +49321,19 @@ }, /obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached3" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached3, /area/desert_dam/exterior/valley/valley_crashsite) "qCR" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/desert/dirt{ - dir = 4; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/east, /area/desert_dam/exterior/valley/valley_crashsite) "qDb" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached18" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached18, /area/desert_dam/exterior/valley/south_valley_dam) +"qDl" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached9, +/area/desert_dam/exterior/landing_pad_one) "qEJ" = ( /obj/structure/desertdam/decals/road_edge, /obj/effect/decal/cleanable/dirt, @@ -63789,25 +49344,31 @@ "qGb" = ( /obj/structure/closet, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/desert_dam/building/security/evidence) "qGd" = ( /obj/structure/flora/grass/tallgrass/desert/corner, /turf/open/desert/dirt, /area/desert_dam/exterior/valley/valley_hydro) +"qHh" = ( +/obj/structure/flora/grass/tallgrass/desert/corner{ + dir = 10 + }, +/turf/open/desert/dirt, +/area/desert_dam/exterior/landing_pad_two) "qHt" = ( /obj/structure/surface/table, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/desert_dam/building/administration/archives) "qHF" = ( /obj/structure/flora/grass/desert/lightgrass_10, /turf/open/desert/dirt, /area/desert_dam/exterior/valley/bar_valley_dam) +"qIC" = ( +/obj/structure/flora/tree/joshua, +/turf/open/desert/dirt, +/area/desert_dam/exterior/landing_pad_one) "qJI" = ( /obj/structure/machinery/power/apc{ dir = 1; @@ -63817,44 +49378,32 @@ /turf/open/floor/plating, /area/desert_dam/exterior/telecomm/lz1_xenoflora) "qJU" = ( -/turf/open/desert/rock/deep/transition{ - dir = 1 - }, +/turf/open/desert/rock/deep/transition/north, /area/desert_dam/interior/caves/temple) "qKe" = ( -/turf/open/desert/rock/deep/transition{ - dir = 1 - }, +/turf/open/desert/rock/deep/transition/north, /area/desert_dam/interior/dam_interior/south_tunnel) "qKA" = ( -/turf/open/desert/dirt{ - dir = 1; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/north, /area/desert_dam/exterior/valley/bar_valley_dam) "qKE" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached1" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached1, /area/desert_dam/exterior/valley/valley_hydro) "qLD" = ( /obj/effect/decal/remains/human, /obj/effect/decal/cleanable/blood, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/desert_dam/interior/caves/temple) +"qLE" = ( +/turf/open/desert/dirt/desert_transition_edge1/northeast, +/area/desert_dam/exterior/landing_pad_one) "qLT" = ( /obj/structure/showcase{ desc = "An ancient, dusty tomb with strange alien writing. It's best not to touch it."; icon_state = "yaut"; name = "alien sarcophagus" }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/desert_dam/interior/caves/temple) "qNk" = ( /obj/effect/decal/cleanable/dirt, @@ -63867,16 +49416,11 @@ id = "garage_dd"; name = "\improper Garage" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/garage) "qQz" = ( /obj/effect/blocker/toxic_water/Group_1, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached18" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached18, /area/desert_dam/exterior/valley/south_valley_dam) "qVN" = ( /obj/structure/desertdam/decals/road_edge{ @@ -63889,9 +49433,7 @@ /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 1 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/bar_valley_dam) "qXZ" = ( /obj/structure/surface/table, @@ -63901,9 +49443,7 @@ "qYC" = ( /obj/structure/filingcabinet, /obj/effect/landmark/objective_landmark/far, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/desert_dam/building/administration/archives) "ray" = ( /obj/effect/decal/cleanable/dirt, @@ -63913,14 +49453,10 @@ /turf/open/asphalt, /area/desert_dam/exterior/valley/valley_telecoms) "rbp" = ( -/turf/open/desert/desert_shore/shore_corner1{ - dir = 1 - }, +/turf/open/desert/desert_shore/shore_corner1/north, /area/desert_dam/interior/caves/temple) "rbM" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached4" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached4, /area/desert_dam/exterior/telecomm/lz2_storage) "rdW" = ( /turf/open/asphalt, @@ -63930,9 +49466,7 @@ dir = 1 }, /obj/effect/landmark/survivor_spawner, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/desert_dam/interior/dam_interior/garage) "rfm" = ( /obj/effect/decal/cleanable/dirt, @@ -63951,15 +49485,11 @@ color = "#6b675e" }, /obj/item/stack/yautja_rope, -/turf/open/desert/rock/deep{ - icon_state = "rock4" - }, +/turf/open/desert/rock/deep/rock4, /area/desert_dam/interior/caves/temple) "rjd" = ( /obj/effect/blocker/toxic_water/Group_2, -/turf/open/floor/filtrationside{ - dir = 9 - }, +/turf/open/floor/filtrationside/northwest, /area/desert_dam/exterior/valley/valley_medical) "rlU" = ( /obj/effect/decal/cleanable/dirt, @@ -63970,9 +49500,7 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 4 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/bar_valley_dam) "rob" = ( /obj/structure/desertdam/decals/road_edge{ @@ -63985,9 +49513,7 @@ dir = 8 }, /obj/effect/decal/sand_overlay/sand1, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached12" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached12, /area/desert_dam/exterior/valley/valley_crashsite) "rpQ" = ( /obj/effect/decal/cleanable/liquid_fuel, @@ -63996,21 +49522,15 @@ "rqk" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/vomit, -/turf/open/floor/prison{ - icon_state = "bluecorner" - }, +/turf/open/floor/prison/bluecorner, /area/desert_dam/interior/dam_interior/tech_storage) "rtW" = ( /obj/effect/blocker/toxic_water/Group_2, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached18" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached18, /area/desert_dam/exterior/valley/south_valley_dam) "ruJ" = ( /obj/structure/tunnel, -/turf/open/desert/dirt{ - icon_state = "rock1" - }, +/turf/open/desert/dirt/rock1, /area/desert_dam/exterior/valley/valley_medical) "ruS" = ( /turf/open/desert/dirt, @@ -64033,10 +49553,7 @@ /area/shuttle/trijent_shuttle/lz1) "ryG" = ( /obj/structure/machinery/cm_vending/sorted/tech/electronics_storage, -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/northwest, /area/desert_dam/interior/dam_interior/garage) "rAo" = ( /obj/structure/flora/grass/tallgrass/desert, @@ -64045,9 +49562,7 @@ "rAL" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/powercell, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/desert_dam/exterior/telecomm/lz1_south) "rAP" = ( /obj/effect/decal/cleanable/dirt, @@ -64057,18 +49572,13 @@ /obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, /obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/west, /area/desert_dam/building/mining/workshop) "rBP" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 10 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_hydro) "rCp" = ( /obj/structure/platform/mineral/sandstone/runed, @@ -64078,9 +49588,7 @@ "rDa" = ( /obj/structure/surface/table, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/desert_dam/interior/lab_northeast/east_lab_west_hallway) "rEa" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, @@ -64089,19 +49597,14 @@ "rEH" = ( /obj/structure/surface/table, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - icon_state = "whiteyellow" - }, +/turf/open/floor/whiteyellow, /area/desert_dam/building/water_treatment_one/breakroom) "rFi" = ( /turf/open/gm/empty, /area/shuttle/trijent_shuttle/lz2) "rFz" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 5; - icon_state = "vault" - }, +/turf/open/floor/vault2/northeast, /area/desert_dam/building/substation/northwest) "rFU" = ( /obj/effect/decal/warning_stripes{ @@ -64111,24 +49614,18 @@ /area/desert_dam/exterior/valley/bar_valley_dam) "rGu" = ( /obj/effect/decal/sand_overlay/sand1, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached12" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached12, /area/desert_dam/exterior/valley/valley_hydro) "rHw" = ( /turf/open/floor/plating, /area/desert_dam/exterior/telecomm/lz2_containers) "rIY" = ( /obj/structure/tunnel, -/turf/open/desert/dirt{ - icon_state = "rock1" - }, +/turf/open/desert/dirt/rock1, /area/desert_dam/exterior/valley/valley_hydro) "rJA" = ( /obj/structure/lz_sign/dam_sign, -/turf/open/desert/dirt{ - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1, /area/desert_dam/exterior/valley/valley_cargo) "rJK" = ( /obj/structure/desertdam/decals/road_edge, @@ -64142,16 +49639,12 @@ unacidable = 0 }, /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/floor{ - icon_state = "warning" - }, +/turf/open/floor/warning, /area/desert_dam/interior/lab_northeast/east_lab_west_entrance) "rOa" = ( /obj/structure/toilet, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/building/warehouse/breakroom) "rPp" = ( /obj/effect/decal/cleanable/dirt, @@ -64161,9 +49654,7 @@ "rQJ" = ( /obj/structure/largecrate/random/barrel/green, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2, /area/desert_dam/interior/dam_interior/garage) "rQQ" = ( /obj/structure/platform_decoration/mineral/sandstone/runed{ @@ -64181,9 +49672,7 @@ pixel_x = 30; start_charge = 0 }, -/turf/open/floor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/asteroidplating, /area/desert_dam/exterior/telecomm/lz2_tcomms) "rTV" = ( /turf/closed/wall/r_wall/bunker{ @@ -64192,9 +49681,7 @@ /area/desert_dam/exterior/rock) "rUA" = ( /obj/structure/fence, -/turf/open/desert/dirt{ - icon_state = "rock1" - }, +/turf/open/desert/dirt/rock1, /area/desert_dam/exterior/valley/valley_hydro) "rUK" = ( /obj/structure/flora/grass/desert/lightgrass_1, @@ -64202,10 +49689,7 @@ /area/desert_dam/exterior/valley/bar_valley_dam) "rUZ" = ( /obj/effect/decal/cleanable/liquid_fuel, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/hanger) "rVo" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_nest, @@ -64225,12 +49709,21 @@ /obj/effect/decal/cleanable/dirt, /turf/open/asphalt, /area/desert_dam/exterior/valley/valley_medical) +"sav" = ( +/turf/open/desert/dirt/desert_transition_corner1, +/area/desert_dam/exterior/landing_pad_two) +"saQ" = ( +/obj/structure/fence, +/turf/open/desert/dirt, +/area/desert_dam/exterior/landing_pad_two) +"saS" = ( +/obj/structure/flora/grass/desert/heavygrass_9, +/turf/open/desert/dirt, +/area/desert_dam/exterior/landing_pad_one) "sbP" = ( /obj/effect/decal/sand_overlay/sand1, /obj/effect/decal/cleanable/liquid_fuel, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached12" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached12, /area/desert_dam/exterior/valley/valley_hydro) "scm" = ( /obj/structure/desertdam/decals/road_stop{ @@ -64241,26 +49734,18 @@ /area/desert_dam/exterior/valley/valley_hydro) "scv" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 8; - icon_state = "whiteyellow" - }, +/turf/open/floor/whiteyellow/west, /area/desert_dam/interior/dam_interior/garage) "sdq" = ( /obj/structure/platform{ dir = 8 }, -/turf/open/desert/dirt{ - dir = 1; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/north, /area/desert_dam/exterior/telecomm/lz1_valley) "sdu" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/dam_interior/primary_tool_storage) "ser" = ( /obj/structure/surface/table, @@ -64273,26 +49758,26 @@ pixel_y = 6 }, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - dir = 9; - icon_state = "whiteyellow" - }, +/turf/open/floor/whiteyellow/northwest, /area/desert_dam/interior/dam_interior/garage) "sfK" = ( -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/desert_dam/interior/dam_interior/garage) "shm" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached15" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached15, /area/desert_dam/exterior/valley/south_valley_dam) "sia" = ( -/turf/open/desert/dirt{ - icon_state = "desert_transition_corner1" - }, +/turf/open/desert/dirt/desert_transition_corner1, /area/desert_dam/exterior/valley/bar_valley_dam) +"sjN" = ( +/obj/structure/machinery/light{ + dir = 4 + }, +/obj/structure/bed/chair{ + dir = 8 + }, +/turf/open/shuttle/can_surgery/red, +/area/desert_dam/interior/dam_interior/hanger) "skB" = ( /turf/open/desert/rock, /area/desert_dam/exterior/valley/valley_hydro) @@ -64322,10 +49807,7 @@ /obj/effect/landmark/xeno_hive_spawn, /obj/effect/landmark/ert_spawns/groundside_xeno, /obj/effect/landmark/queen_spawn, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/mining/workshop) "snD" = ( /obj/structure/desertdam/decals/road_edge{ @@ -64341,17 +49823,13 @@ /obj/structure/platform{ dir = 1 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_labs) "srf" = ( /obj/effect/decal/sand_overlay/sand1, /obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached12" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached12, /area/desert_dam/exterior/valley/valley_crashsite) "ssy" = ( /obj/effect/decal/warning_stripes{ @@ -64364,9 +49842,7 @@ name = "\improper Research Hallway" }, /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/interior/lab_northeast/east_lab_west_hallway) "svy" = ( /obj/effect/decal/warning_stripes{ @@ -64376,10 +49852,14 @@ /area/desert_dam/exterior/valley/south_valley_dam) "swg" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/interior/lab_northeast/east_lab_workshop) +"swK" = ( +/obj/structure/shuttle/diagonal{ + icon_state = "swall_f6" + }, +/turf/open/shuttle/can_surgery/red, +/area/desert_dam/interior/dam_interior/hanger) "sye" = ( /obj/effect/decal/cleanable/blood/oil/streak, /turf/open/asphalt/cement, @@ -64389,23 +49869,30 @@ dir = 1 }, /obj/effect/decal/cleanable/liquid_fuel, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached4" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached4, /area/desert_dam/exterior/valley/valley_hydro) +"sAm" = ( +/turf/open/desert/dirt/desert_transition_edge1/north, +/area/desert_dam/exterior/landing_pad_two) +"sAZ" = ( +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal7" + }, +/turf/open/asphalt, +/area/desert_dam/exterior/landing_pad_two) +"sCW" = ( +/obj/structure/largecrate/random/secure, +/turf/open/desert/dirt, +/area/desert_dam/exterior/landing_pad_one) "sDf" = ( /obj/effect/decal/cleanable/generic, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/dam_interior/tech_storage) "sEL" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 1 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached4" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached4, /area/desert_dam/exterior/valley/south_valley_dam) "sFe" = ( /obj/effect/decal/warning_stripes{ @@ -64414,6 +49901,18 @@ /obj/effect/decal/cleanable/dirt, /turf/open/asphalt, /area/desert_dam/exterior/valley/valley_medical) +"sFQ" = ( +/obj/structure/shuttle/diagonal{ + icon_state = "swall_f9" + }, +/turf/open/shuttle/can_surgery/red, +/area/desert_dam/interior/dam_interior/hanger) +"sGP" = ( +/obj/structure/shuttle/diagonal{ + icon_state = "swall_f5" + }, +/turf/open/shuttle/can_surgery/red, +/area/desert_dam/interior/dam_interior/hanger) "sHk" = ( /obj/structure/prop/dam/boulder/boulder3, /turf/open/desert/dirt, @@ -64442,14 +49941,10 @@ /turf/open/asphalt, /area/desert_dam/exterior/valley/valley_medical) "sNn" = ( -/turf/open/desert/rock/deep/transition{ - dir = 1 - }, +/turf/open/desert/rock/deep/transition/north, /area/desert_dam/exterior/telecomm/lz1_south) "sNQ" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached1" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached1, /area/desert_dam/exterior/telecomm/lz2_storage) "sNX" = ( /obj/structure/desertdam/decals/road_edge{ @@ -64459,7 +49954,7 @@ dir = 6 }, /turf/open/asphalt, -/area/desert_dam/exterior/valley/valley_cargo) +/area/desert_dam/exterior/landing_pad_two) "sOu" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/chem_dispenser/soda{ @@ -64467,46 +49962,45 @@ pixel_y = 32 }, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor{ - icon_state = "grimy" - }, +/turf/open/floor/grimy, /area/desert_dam/building/bar/bar) "sPL" = ( /obj/structure/closet/secure_closet/medical3{ req_access_txt = "100" }, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitered" - }, +/turf/open/floor/prison/whitered/east, /area/desert_dam/building/medical/primary_storage) "sPS" = ( -/turf/open/desert/dirt{ - dir = 4; - icon_state = "desert_transition_corner1" - }, +/turf/open/desert/dirt/desert_transition_corner1/east, /area/desert_dam/interior/caves/temple) +"sQE" = ( +/obj/effect/decal/sand_overlay/sand1/corner1{ + dir = 4 + }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached18, +/area/desert_dam/exterior/landing_pad_one) "sRl" = ( /obj/effect/landmark/nightmare{ insert_tag = "uppcrash" }, -/turf/open/desert/dirt{ - dir = 6; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/southeast, /area/desert_dam/exterior/valley/valley_hydro) "sUe" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 1 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_hydro) "sUr" = ( /turf/open/asphalt, /area/desert_dam/exterior/valley/valley_labs) +"sUF" = ( +/obj/effect/decal/sand_overlay/sand1{ + dir = 8 + }, +/turf/open/asphalt/tile, +/area/desert_dam/exterior/landing_pad_one) "sWS" = ( /obj/structure/disposalpipe/segment, /obj/effect/decal/cleanable/dirt, @@ -64546,18 +50040,13 @@ "sYU" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/floor/prison{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/prison/green/north, /area/desert_dam/building/dorms/hallway_westwing) "tai" = ( /obj/effect/decal/sand_overlay/sand1, /obj/effect/landmark/xeno_hive_spawn, /obj/effect/landmark/ert_spawns/groundside_xeno, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached12" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached12, /area/desert_dam/exterior/valley/valley_crashsite) "taG" = ( /obj/structure/desertdam/decals/road_stop{ @@ -64568,21 +50057,20 @@ /turf/open/asphalt, /area/desert_dam/exterior/valley/valley_hydro) "taH" = ( -/turf/open/desert/dirt{ - dir = 9; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/northwest, /area/desert_dam/exterior/valley/valley_hydro) "tbb" = ( /obj/structure/desertdam/decals/road_edge, /turf/open/asphalt, /area/desert_dam/exterior/valley/valley_labs) +"tcB" = ( +/obj/structure/machinery/camera/autoname/lz_camera, +/turf/open/floor/plating, +/area/desert_dam/exterior/landing_pad_two) "tdf" = ( /obj/structure/surface/table, /obj/item/folder/yellow, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/desert_dam/interior/dam_interior/office) "teR" = ( /obj/structure/bed/chair/comfy/beige{ @@ -64593,10 +50081,7 @@ "thd" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/hydroponics/hydroponics_loading) "thp" = ( /obj/effect/blocker/toxic_water/Group_1, @@ -64617,12 +50102,10 @@ icon_state = "road_edge_decal3" }, /turf/open/asphalt, -/area/desert_dam/exterior/valley/valley_cargo) +/area/desert_dam/exterior/landing_pad_two) "tni" = ( /obj/effect/decal/sand_overlay/sand1, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/south_valley_dam) "tnu" = ( /obj/structure/desertdam/decals/road_edge{ @@ -64642,9 +50125,7 @@ /turf/open/desert/rock/deep, /area/desert_dam/interior/caves/temple) "tsL" = ( -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/telecomm/lz2_storage) "tuA" = ( /obj/structure/closet/secure_closet/bar, @@ -64655,11 +50136,11 @@ /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/garage) +"txr" = ( +/turf/open/desert/dirt/desert_transition_corner1/east, +/area/desert_dam/exterior/landing_pad_one) "txD" = ( /obj/structure/toilet{ dir = 8 @@ -64668,10 +50149,7 @@ dir = 4 }, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/desert_dam/building/security/staffroom) "tyc" = ( /obj/structure/desertdam/decals/road_edge{ @@ -64680,9 +50158,7 @@ /turf/open/asphalt, /area/desert_dam/exterior/valley/bar_valley_dam) "tAs" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached18" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached18, /area/desert_dam/exterior/valley/valley_telecoms) "tAt" = ( /obj/effect/decal/warning_stripes{ @@ -64697,9 +50173,7 @@ "tAG" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/building/cafeteria/cafeteria) "tBD" = ( /obj/structure/desertdam/decals/road_edge{ @@ -64710,9 +50184,7 @@ "tCn" = ( /obj/structure/surface/table/woodentable, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/desert_dam/building/dorms/hallway_westwing) "tEn" = ( /obj/structure/machinery/door/poddoor/almayer/locked{ @@ -64721,16 +50193,12 @@ name = "\improper Checkpoint Lock" }, /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/interior/lab_northeast/east_lab_east_entrance) "tFi" = ( /obj/effect/decal/sand_overlay/sand2, /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached12" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached12, /area/desert_dam/interior/caves/central_caves) "tFG" = ( /obj/structure/machinery/light{ @@ -64743,44 +50211,32 @@ /obj/effect/spawner/random/tool{ pixel_x = -6 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/desert_dam/interior/dam_interior/garage) "tFS" = ( /obj/effect/decal/remains/human, /turf/open/desert/rock, /area/desert_dam/interior/caves/temple) "tKQ" = ( -/turf/open/desert/dirt{ - icon_state = "rock1" - }, +/turf/open/desert/dirt/rock1, /area/desert_dam/exterior/valley/valley_crashsite) "tKS" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/building/dorms/pool) "tLo" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 10 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached14" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached14, /area/desert_dam/exterior/valley/bar_valley_dam) "tLQ" = ( /obj/structure/surface/rack, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/west, /area/desert_dam/interior/dam_interior/north_tunnel_entrance) "tMi" = ( /obj/effect/decal/cleanable/dirt, @@ -64793,10 +50249,7 @@ }, /area/desert_dam/building/mining/workshop) "tOj" = ( -/turf/open/desert/dirt{ - dir = 10; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/southwest, /area/desert_dam/exterior/telecomm/lz1_xenoflora) "tPP" = ( /obj/structure/platform, @@ -64813,24 +50266,15 @@ /turf/open/asphalt, /area/desert_dam/exterior/valley/south_valley_dam) "tUF" = ( -/turf/open/desert/dirt{ - dir = 10; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/southwest, /area/desert_dam/exterior/valley/bar_valley_dam) "tVX" = ( /obj/structure/sink, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/bar/bar_restroom) "tXS" = ( -/turf/open/desert/dirt{ - dir = 1; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/north, /area/desert_dam/exterior/valley/south_valley_dam) "tYS" = ( /obj/structure/surface/rack, @@ -64844,15 +50288,22 @@ /obj/structure/flora/grass/tallgrass/desert, /turf/open/desert/dirt, /area/desert_dam/exterior/valley/valley_hydro) +"ucS" = ( +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal2" + }, +/obj/effect/decal/sand_overlay/sand1/corner1{ + dir = 4 + }, +/turf/open/asphalt, +/area/desert_dam/exterior/landing_pad_one) "uez" = ( /turf/closed/wall/hangar{ name = "reinforced metal wall" }, /area/desert_dam/interior/dam_interior/garage) "ueS" = ( -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/desert_dam/exterior/telecomm/lz1_south) "ueZ" = ( /obj/structure/desertdam/decals/road_edge{ @@ -64862,24 +50313,21 @@ /area/desert_dam/exterior/valley/south_valley_dam) "ufP" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/desert/dirt{ - dir = 5; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/northeast, /area/desert_dam/exterior/valley/valley_crashsite) "ufW" = ( /turf/closed/wall/mineral/sandstone/runed, /area/desert_dam/exterior/rock) "uhf" = ( -/turf/open/desert/desert_shore/desert_shore1{ - dir = 1 - }, +/turf/open/desert/desert_shore/desert_shore1/north, /area/desert_dam/interior/caves/temple) +"uic" = ( +/obj/structure/machinery/colony_floodlight, +/turf/open/desert/dirt, +/area/desert_dam/exterior/landing_pad_two) "uis" = ( /obj/effect/decal/sand_overlay/sand1, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached18" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached18, /area/desert_dam/exterior/valley/valley_hydro) "uiH" = ( /obj/structure/machinery/colony_floodlight, @@ -64888,10 +50336,7 @@ "ujl" = ( /obj/structure/closet/secure_closet/security, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison{ - dir = 5; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/northeast, /area/desert_dam/interior/lab_northeast/east_lab_security_armory) "ukQ" = ( /obj/structure/machinery/light{ @@ -64899,26 +50344,17 @@ }, /obj/structure/machinery/cm_vending/sorted/tech/comp_storage, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/west, /area/desert_dam/interior/dam_interior/garage) "ulg" = ( -/turf/open/desert/dirt{ - dir = 1; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/north, /area/desert_dam/exterior/telecomm/lz2_storage) "ulm" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk{ dir = 2 }, -/turf/open/floor{ - dir = 5; - icon_state = "whiteyellow" - }, +/turf/open/floor/whiteyellow/northeast, /area/desert_dam/interior/dam_interior/garage) "uml" = ( /obj/effect/decal/warning_stripes{ @@ -64926,14 +50362,21 @@ }, /turf/open/asphalt, /area/desert_dam/exterior/valley/south_valley_dam) +"urC" = ( +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal9" + }, +/obj/effect/decal/sand_overlay/sand1{ + dir = 9 + }, +/turf/open/asphalt, +/area/desert_dam/exterior/landing_pad_two) "uso" = ( /obj/structure/surface/table/reinforced/prison{ color = "#6b675e" }, /obj/item/weapon/broken_bottle, -/turf/open/desert/rock/deep{ - icon_state = "rock4" - }, +/turf/open/desert/rock/deep/rock4, /area/desert_dam/interior/caves/temple) "ute" = ( /obj/structure/desertdam/decals/road_stop{ @@ -64956,31 +50399,21 @@ dir = 4 }, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/desert_dam/building/security/prison) "uxs" = ( /obj/structure/disposalpipe/segment, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_medical) "uyn" = ( /obj/structure/surface/rack, /turf/open/floor/plating, /area/desert_dam/building/cafeteria/backroom) "uzL" = ( -/turf/open/desert/dirt{ - dir = 5; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/northeast, /area/desert_dam/exterior/telecomm/lz1_valley) "uAo" = ( -/turf/open/desert/dirt{ - dir = 1; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/north, /area/desert_dam/exterior/valley/valley_hydro) "uBP" = ( /obj/structure/surface/rack, @@ -65003,10 +50436,27 @@ /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 8 }, -/turf/open/desert/dirt{ - icon_state = "dirt2" - }, +/turf/open/desert/dirt/dirt2, /area/desert_dam/exterior/valley/valley_crashsite) +"uHx" = ( +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal8" + }, +/turf/open/asphalt, +/area/desert_dam/exterior/landing_pad_one) +"uHT" = ( +/obj/structure/machinery/camera/autoname/lz_camera, +/turf/open/floor/plating, +/area/desert_dam/exterior/landing_pad_one) +"uIC" = ( +/obj/structure/machinery/cm_vending/sorted/medical/no_access, +/obj/structure/medical_supply_link/green, +/turf/open/floor/prison/whitegreenfull/southwest, +/area/desert_dam/building/medical/treatment_room) +"uJl" = ( +/obj/structure/flora/grass/desert/lightgrass_9, +/turf/open/desert/dirt, +/area/desert_dam/exterior/landing_pad_one) "uKo" = ( /obj/structure/platform/mineral/sandstone/runed{ dir = 4 @@ -65017,17 +50467,13 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/desert_dam/interior/dam_interior/south_tunnel) "uMk" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/building/cafeteria/cafeteria) "uMr" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ @@ -65035,21 +50481,21 @@ }, /turf/open/desert/rock, /area/desert_dam/exterior/valley/valley_crashsite) +"uME" = ( +/obj/structure/flora/grass/desert/lightgrass_2, +/turf/open/desert/dirt, +/area/desert_dam/exterior/landing_pad_two) "uMG" = ( /obj/structure/platform{ dir = 1 }, -/turf/open/desert/dirt{ - icon_state = "dirt2" - }, +/turf/open/desert/dirt/dirt2, /area/desert_dam/exterior/valley/south_valley_dam) "uMZ" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/dam_interior/primary_tool_storage) "uNF" = ( /obj/effect/decal/sand_overlay/sand1/corner1, @@ -65062,35 +50508,37 @@ dir = 4 }, /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached3" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached3, /area/desert_dam/exterior/valley/valley_civilian) "uRx" = ( /obj/structure/surface/table/reinforced, -/turf/open/floor/prison{ - icon_state = "blue" - }, +/turf/open/floor/prison/blue, /area/desert_dam/interior/dam_interior/tech_storage) "uRz" = ( /obj/structure/flora/grass/desert/lightgrass_9, /turf/open/desert/dirt, /area/desert_dam/exterior/valley/valley_hydro) +"uSv" = ( +/turf/open/asphalt/tile, +/area/desert_dam/exterior/landing_pad_two) "uTo" = ( /obj/structure/flora/grass/tallgrass/desert, /turf/open/desert/dirt, /area/desert_dam/exterior/valley/valley_cargo) "uVm" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached18" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached18, /area/desert_dam/exterior/valley/valley_civilian) "uVK" = ( /obj/item/tool/pickaxe, /obj/effect/decal/remains/human, /turf/open/desert/rock, /area/desert_dam/interior/caves/temple) +"uWt" = ( +/turf/closed/wall/hangar{ + name = "reinforced metal wall" + }, +/area/desert_dam/exterior/landing_pad_two) "uWT" = ( /obj/effect/decal/warning_stripes{ icon_state = "N" @@ -65100,9 +50548,7 @@ "uXk" = ( /obj/effect/decal/sand_overlay/sand2, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached12" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached12, /area/desert_dam/exterior/valley/valley_crashsite) "uYD" = ( /obj/effect/decal/warning_stripes{ @@ -65112,12 +50558,12 @@ /obj/effect/decal/cleanable/dirt, /turf/open/asphalt, /area/desert_dam/exterior/valley/valley_medical) +"uZr" = ( +/turf/open/desert/dirt/desert_transition_corner1, +/area/desert_dam/exterior/landing_pad_one) "vfr" = ( /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/desert/dirt{ - dir = 4; - icon_state = "desert_transition_corner1" - }, +/turf/open/desert/dirt/desert_transition_corner1/east, /area/desert_dam/interior/caves/central_caves) "vgm" = ( /obj/effect/decal/warning_stripes{ @@ -65127,35 +50573,30 @@ /area/desert_dam/exterior/valley/south_valley_dam) "vhs" = ( /obj/structure/surface/table, -/turf/open/floor{ - dir = 10; - icon_state = "whiteyellow" - }, +/turf/open/floor/whiteyellow/southwest, /area/desert_dam/interior/dam_interior/lobby) "vhA" = ( /obj/structure/surface/table, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor{ - dir = 8; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/west, /area/desert_dam/building/lab_northwest/west_lab_xenoflora) "vir" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" }, /obj/effect/landmark/nightmare{ - insert_tag = "shipgone" - }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" + insert_tag = "shipgone_northlz" }, +/turf/open/floor/prison/floor_plate/southwest, /area/desert_dam/interior/dam_interior/hanger) "viV" = ( /obj/structure/fence, /turf/open/desert/dirt, /area/desert_dam/exterior/valley/valley_hydro) +"vjO" = ( +/obj/structure/flora/grass/desert/lightgrass_12, +/turf/open/desert/dirt, +/area/desert_dam/exterior/landing_pad_one) "vnf" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -65165,19 +50606,14 @@ /area/desert_dam/exterior/valley/valley_hydro) "vph" = ( /obj/structure/tunnel, -/turf/open/desert/dirt{ - dir = 4; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/east, /area/desert_dam/exterior/valley/south_valley_dam) "vpn" = ( /obj/structure/machinery/landinglight/ds2/delayone{ dir = 8 }, /obj/structure/machinery/floodlight/landing, -/turf/open/floor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/asteroidplating, /area/desert_dam/exterior/landing_pad_two) "vpz" = ( /obj/effect/decal/cleanable/dirt, @@ -65189,9 +50625,7 @@ /obj/structure/surface/table, /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/desert_dam/building/lab_northwest/west_lab_xenoflora) "vqt" = ( /obj/effect/decal/cleanable/dirt, @@ -65206,10 +50640,7 @@ /area/desert_dam/exterior/valley/valley_labs) "vqS" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/mining/workshop_foyer) "vte" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, @@ -65217,9 +50648,7 @@ /area/desert_dam/interior/caves/central_caves) "vud" = ( /obj/effect/decal/sand_overlay/sand1, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_hydro) "vuu" = ( /obj/structure/machinery/colony_floodlight, @@ -65234,14 +50663,10 @@ /area/desert_dam/exterior/valley/valley_telecoms) "vxt" = ( /obj/effect/landmark/survivor_spawner, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/desert_dam/building/water_treatment_one/breakroom) "vzj" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached18" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached18, /area/desert_dam/exterior/valley/valley_labs) "vzp" = ( /obj/effect/decal/warning_stripes{ @@ -65265,9 +50690,7 @@ "vAN" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/floor/prison{ - icon_state = "green" - }, +/turf/open/floor/prison/green, /area/desert_dam/building/dorms/hallway_northwing) "vBJ" = ( /obj/structure/desertdam/decals/road_edge, @@ -65277,9 +50700,7 @@ /turf/open/asphalt, /area/desert_dam/exterior/valley/valley_labs) "vCE" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached4" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached4, /area/desert_dam/exterior/valley/valley_labs) "vDJ" = ( /obj/structure/desertdam/decals/road_edge{ @@ -65294,15 +50715,17 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 5 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_hydro) "vEW" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached3" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached3, /area/desert_dam/exterior/telecomm/lz2_storage) +"vGu" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/turf/open/asphalt, +/area/desert_dam/exterior/landing_pad_two) "vHj" = ( /obj/effect/decal/warning_stripes{ icon_state = "N" @@ -65313,9 +50736,7 @@ /area/desert_dam/exterior/valley/valley_hydro) "vHx" = ( /obj/structure/tunnel, -/turf/open/desert/dirt{ - icon_state = "rock1" - }, +/turf/open/desert/dirt/rock1, /area/desert_dam/exterior/valley/valley_civilian) "vHQ" = ( /turf/open/gm/empty, @@ -65358,15 +50779,10 @@ /obj/structure/machinery/landinglight/ds1/delayone{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached15" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached15, /area/desert_dam/exterior/landing_pad_one) "vSF" = ( -/turf/open/desert/dirt{ - dir = 8; - icon_state = "desert_transition_corner1" - }, +/turf/open/desert/dirt/desert_transition_corner1/west, /area/desert_dam/exterior/telecomm/lz2_storage) "vSH" = ( /obj/effect/decal/sand_overlay/sand1, @@ -65374,10 +50790,11 @@ /area/desert_dam/exterior/valley/valley_crashsite) "vSV" = ( /obj/effect/decal/sand_overlay/sand1, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached19" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached19, /area/desert_dam/exterior/valley/bar_valley_dam) +"vTA" = ( +/turf/open/desert/dirt/desert_transition_edge1/southeast, +/area/desert_dam/exterior/landing_pad_two) "vTR" = ( /obj/structure/desertdam/decals/road_edge{ icon_state = "road_edge_decal4" @@ -65395,9 +50812,7 @@ "vYZ" = ( /obj/structure/surface/rack, /obj/item/tool/pickaxe/drill, -/turf/open/desert/rock/deep/transition{ - dir = 5 - }, +/turf/open/desert/rock/deep/transition/northeast, /area/desert_dam/interior/caves/temple) "wav" = ( /obj/structure/flora/grass/desert/lightgrass_9, @@ -65414,9 +50829,7 @@ /turf/open/asphalt, /area/desert_dam/exterior/valley/valley_hydro) "wbv" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached2" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached2, /area/desert_dam/exterior/valley/valley_crashsite) "wcc" = ( /obj/effect/decal/warning_stripes{ @@ -65432,48 +50845,37 @@ /turf/open/asphalt, /area/desert_dam/exterior/valley/valley_hydro) "wgv" = ( -/turf/open/desert/dirt{ - dir = 1; - icon_state = "desert_transition_corner1" - }, +/turf/open/desert/dirt/desert_transition_corner1/north, /area/desert_dam/exterior/valley/bar_valley_dam) "wiF" = ( /obj/structure/machinery/cm_vending/sorted/tech/tool_storage, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/west, /area/desert_dam/interior/dam_interior/garage) "wiI" = ( /obj/structure/largecrate/random/barrel/blue, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/southwest, /area/desert_dam/interior/dam_interior/garage) "wjC" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/desert_dam/building/cafeteria/loading) "wnE" = ( /obj/structure/closet/crate/hydroponics/prespawned, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/desert_dam/building/hydroponics/hydroponics_loading) "woy" = ( /obj/effect/decal/cleanable/dirt, /turf/closed/wall/r_wall/bunker, /area/desert_dam/interior/dam_interior/garage) +"wpr" = ( +/obj/effect/decal/sand_overlay/sand1, +/turf/open/asphalt/tile, +/area/desert_dam/exterior/landing_pad_one) "wpW" = ( /obj/structure/flora/grass/desert/lightgrass_6, /turf/open/desert/dirt, @@ -65491,14 +50893,11 @@ /obj/structure/surface/table, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 1; - icon_state = "whiteyellow" - }, +/turf/open/floor/whiteyellow/north, /area/desert_dam/interior/dam_interior/garage) "wrl" = ( /obj/effect/landmark/nightmare{ - insert_tag = "cavein" + insert_tag = "cavein_engineering" }, /turf/closed/wall/rock/orange, /area/desert_dam/exterior/rock) @@ -65506,21 +50905,28 @@ /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/desert_dam/interior/dam_interior/garage) +"wta" = ( +/obj/structure/bed/chair{ + dir = 4 + }, +/turf/open/shuttle/can_surgery/red, +/area/desert_dam/interior/dam_interior/hanger) "wud" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellow" - }, +/turf/open/floor/whiteyellow/east, /area/desert_dam/interior/dam_interior/garage) "wuC" = ( /obj/structure/desertdam/decals/road_edge, /turf/open/asphalt, /area/desert_dam/exterior/valley/valley_telecoms) +"wuV" = ( +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal5" + }, +/turf/open/asphalt, +/area/desert_dam/exterior/landing_pad_one) "wya" = ( /obj/effect/decal/warning_stripes{ icon_state = "N" @@ -65528,9 +50934,7 @@ /turf/open/asphalt, /area/desert_dam/exterior/valley/valley_hydro) "wyo" = ( -/turf/open/desert/desert_shore/desert_shore1{ - dir = 8 - }, +/turf/open/desert/desert_shore/desert_shore1/west, /area/desert_dam/interior/caves/temple) "wyR" = ( /obj/effect/decal/warning_stripes{ @@ -65553,12 +50957,16 @@ }, /turf/open/asphalt, /area/desert_dam/exterior/valley/valley_telecoms) +"wDC" = ( +/obj/structure/prop/dam/large_boulder/boulder1, +/turf/open/desert/dirt, +/area/desert_dam/exterior/landing_pad_one) +"wEy" = ( +/turf/open/desert/dirt/desert_transition_corner1/north, +/area/desert_dam/exterior/landing_pad_one) "wFv" = ( /obj/structure/surface/table/reinforced, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitered" - }, +/turf/open/floor/prison/whitered/west, /area/desert_dam/building/medical/office1) "wIi" = ( /obj/structure/prop/dam/boulder/boulder2, @@ -65569,71 +50977,58 @@ /obj/item/ammo_magazine/shotgun/incendiary, /obj/item/ammo_magazine/shotgun/incendiary, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/desert_dam/interior/lab_northeast/east_lab_security_armory) "wIr" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 1 }, /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_crashsite) -"wLI" = ( -/turf/open/asphalt/cement{ - icon_state = "cement1" +"wLq" = ( +/obj/structure/bed/chair{ + dir = 8 }, +/turf/open/shuttle/can_surgery/red, +/area/desert_dam/interior/dam_interior/hanger) +"wLI" = ( +/turf/open/asphalt/cement/cement1, /area/desert_dam/exterior/telecomm/lz1_south) "wLV" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 1 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached4" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached4, /area/desert_dam/exterior/valley/valley_hydro) "wMw" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 8 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/south_valley_dam) "wOO" = ( /obj/structure/surface/rack, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/building/mining/workshop) "wPb" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 4 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_hydro) "wQM" = ( /obj/effect/decal/sand_overlay/sand1, /obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_crashsite) "wQS" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached4" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached4, /area/desert_dam/exterior/valley/valley_hydro) "wQZ" = ( /obj/structure/flora/grass/tallgrass/desert, @@ -65643,9 +51038,7 @@ /obj/structure/machinery/landinglight/ds2/delayone{ dir = 8 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached2" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached2, /area/desert_dam/exterior/landing_pad_two) "wRi" = ( /obj/effect/decal/cleanable/dirt, @@ -65656,9 +51049,7 @@ /turf/open/desert/dirt, /area/desert_dam/exterior/valley/south_valley_dam) "wRX" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached2" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached2, /area/desert_dam/exterior/valley/valley_hydro) "wTP" = ( /obj/structure/closet/crate, @@ -65674,9 +51065,7 @@ amount = 50 }, /obj/item/storage/briefcase/inflatable, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/desert_dam/interior/dam_interior/atmos_storage) "wYO" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, @@ -65686,10 +51075,7 @@ /area/desert_dam/exterior/valley/valley_crashsite) "wZM" = ( /obj/structure/flora/tree/joshua, -/turf/open/desert/dirt{ - dir = 5; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/northeast, /area/desert_dam/exterior/valley/valley_labs) "xab" = ( /obj/structure/machinery/recharge_station, @@ -65710,6 +51096,12 @@ }, /turf/open/asphalt, /area/desert_dam/exterior/valley/valley_hydro) +"xbA" = ( +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal12" + }, +/turf/open/asphalt, +/area/desert_dam/exterior/landing_pad_one) "xcG" = ( /obj/structure/desertdam/decals/road_edge{ icon_state = "road_edge_decal3" @@ -65749,10 +51141,7 @@ "xjb" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/desert_dam/building/cafeteria/loading) "xjY" = ( /obj/effect/decal/warning_stripes{ @@ -65767,9 +51156,7 @@ dir = 1 }, /obj/effect/landmark/objective_landmark/far, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/desert_dam/building/cafeteria/cafeteria) "xkh" = ( /obj/structure/blocker/forcefield/multitile_vehicles, @@ -65780,9 +51167,7 @@ dir = 4 }, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_civilian) "xkK" = ( /obj/structure/machinery/power/apc{ @@ -65796,9 +51181,7 @@ /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 8 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_labs) "xlE" = ( /obj/structure/machinery/door/poddoor/almayer/locked{ @@ -65808,22 +51191,15 @@ unacidable = 0 }, /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/floor{ - dir = 1; - icon_state = "warning" - }, +/turf/open/floor/warning/north, /area/desert_dam/interior/lab_northeast/east_lab_west_entrance) "xmH" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/desert/rock/deep{ - icon_state = "rock4" - }, +/turf/open/desert/rock/deep/rock4, /area/desert_dam/interior/caves/temple) "xof" = ( /obj/effect/decal/sand_overlay/sand1, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_labs) "xoL" = ( /obj/effect/decal/warning_stripes{ @@ -65849,10 +51225,7 @@ /area/desert_dam/exterior/valley/valley_hydro) "xrx" = ( /obj/effect/landmark/monkey_spawn, -/turf/open/desert/dirt{ - dir = 9; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/northwest, /area/desert_dam/exterior/valley/valley_northwest) "xss" = ( /obj/structure/machinery/door/poddoor/almayer/locked{ @@ -65860,19 +51233,14 @@ id = null; name = "\improper Elevator Lock" }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/east, /area/shuttle/trijent_shuttle/lz1) "xsQ" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 1 }, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached4" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached4, /area/desert_dam/exterior/valley/valley_crashsite) "xsS" = ( /obj/structure/desertdam/decals/road_edge{ @@ -65882,51 +51250,36 @@ /area/desert_dam/exterior/valley/south_valley_dam) "xuS" = ( /obj/effect/decal/sand_overlay/sand1, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached16" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached16, /area/desert_dam/exterior/valley/valley_hydro) "xvX" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 1 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached4" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached4, /area/desert_dam/exterior/valley/valley_telecoms) "xxv" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 8 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_hydro) "xxQ" = ( /obj/structure/platform, -/turf/open/desert/dirt{ - dir = 4; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/east, /area/desert_dam/exterior/telecomm/lz1_valley) "xzc" = ( /obj/structure/surface/table, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/desert_dam/building/dorms/hallway_westwing) "xzm" = ( /obj/effect/landmark/nightmare{ insert_tag = "green-new-bridge" }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_medical) "xBM" = ( -/turf/open/desert/rock/deep/transition{ - dir = 5 - }, +/turf/open/desert/rock/deep/transition/northeast, /area/desert_dam/interior/caves/temple) "xCM" = ( /obj/effect/landmark/static_comms/net_two, @@ -65938,15 +51291,10 @@ /area/desert_dam/exterior/valley/valley_crashsite) "xEP" = ( /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/desert_dam/interior/lab_northeast/east_lab_lobby) "xFk" = ( -/turf/open/desert/dirt{ - dir = 8; - icon_state = "desert_transition_corner1" - }, +/turf/open/desert/dirt/desert_transition_corner1/west, /area/desert_dam/exterior/valley/valley_hydro) "xFA" = ( /obj/effect/decal/sand_overlay/sand1, @@ -65967,10 +51315,7 @@ name = "\improper Garage" }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/garage) "xIC" = ( /turf/open/desert/dirt, @@ -65987,10 +51332,7 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/blood/oil/streak, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/desert_dam/interior/dam_interior/garage) "xLS" = ( /obj/structure/flora/grass/desert/lightgrass_5, @@ -66008,14 +51350,18 @@ /obj/structure/machinery/landinglight/ds1{ dir = 4 }, -/turf/open/floor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/asteroidplating, /area/desert_dam/exterior/landing_pad_one) "xOb" = ( /obj/structure/blocker/forcefield/multitile_vehicles, /turf/open/desert/dirt, /area/desert_dam/exterior/valley/valley_civilian) +"xOm" = ( +/obj/structure/flora/grass/tallgrass/desert/corner{ + dir = 5 + }, +/turf/open/desert/dirt, +/area/desert_dam/exterior/landing_pad_two) "xOK" = ( /obj/effect/blocker/toxic_water/Group_2, /obj/structure/disposalpipe/segment, @@ -66031,62 +51377,53 @@ /obj/effect/spawner/random/tech_supply, /obj/effect/spawner/random/tech_supply, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/desert_dam/building/substation/southwest) "xRP" = ( /obj/structure/closet/secure_closet/scientist, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/north, /area/desert_dam/interior/lab_northeast/east_lab_biology) "xTH" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 4 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_labs) +"xUS" = ( +/turf/open/desert/dirt/desert_transition_edge1/east, +/area/desert_dam/exterior/landing_pad_two) "xUU" = ( /obj/effect/decal/cleanable/blood/gibs/xeno/body, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/desert_dam/interior/caves/temple) +"xWj" = ( +/obj/structure/flora/grass/tallgrass/desert/corner{ + dir = 6 + }, +/turf/open/desert/dirt, +/area/desert_dam/exterior/landing_pad_one) "xYb" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/floor/prison{ - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/prison/darkyellowcorners2, /area/desert_dam/building/mining/workshop) "xYc" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/engidoor/glass/colony, -/turf/open/floor{ - dir = 5; - icon_state = "vault" - }, +/turf/open/floor/vault2/northeast, /area/desert_dam/building/substation/central) "xZE" = ( /obj/structure/desertdam/decals/road_edge{ icon_state = "road_edge_decal3" }, /obj/effect/landmark/nightmare{ - insert_tag = "minievac" + insert_tag = "minievac_westresearch" }, /turf/open/asphalt, /area/desert_dam/exterior/valley/valley_wilderness) "yaA" = ( /obj/structure/machinery/colony_floodlight, -/turf/open/desert/rock/deep/transition{ - dir = 8 - }, +/turf/open/desert/rock/deep/transition/west, /area/desert_dam/exterior/valley/valley_telecoms) "ybA" = ( /obj/structure/desertdam/decals/road_edge{ @@ -66094,6 +51431,13 @@ }, /turf/open/asphalt, /area/desert_dam/exterior/valley/valley_labs) +"ybW" = ( +/obj/structure/desertdam/decals/road_edge, +/obj/effect/decal/sand_overlay/sand1{ + dir = 4 + }, +/turf/open/asphalt, +/area/desert_dam/exterior/landing_pad_two) "ydw" = ( /obj/structure/window/framed/hangar/reinforced, /obj/structure/blocker/forcefield/multitile_vehicles, @@ -66104,9 +51448,7 @@ /area/desert_dam/exterior/telecomm/lz2_tcomms) "yfp" = ( /obj/effect/decal/sand_overlay/sand1, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached15" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached15, /area/desert_dam/exterior/telecomm/lz2_storage) "yfq" = ( /obj/structure/desertdam/decals/road_edge{ @@ -66126,9 +51468,7 @@ unacidable = 0 }, /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/floor/prison{ - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2, /area/desert_dam/interior/lab_northeast/east_lab_west_entrance) "ylf" = ( /obj/structure/desertdam/decals/road_edge{ @@ -66152,16 +51492,14 @@ /area/desert_dam/interior/dam_interior/south_tunnel) "ylo" = ( /obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/desert_dam/building/hydroponics/hydroponics_breakroom) "ylS" = ( /obj/effect/decal/warning_stripes{ icon_state = "E" }, /turf/open/asphalt, -/area/desert_dam/exterior/valley/valley_cargo) +/area/desert_dam/exterior/landing_pad_two) "ylT" = ( /obj/structure/machinery/light{ dir = 4 @@ -66171,10 +51509,7 @@ /obj/item/hardpoint/locomotion/van_wheels{ unacidable = 1 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/east, /area/desert_dam/interior/dam_interior/garage) (1,1,1) = {" @@ -68264,7 +53599,7 @@ dTs dTs dTs dTs -cuH +lzs dTs dTs dTs @@ -68272,7 +53607,7 @@ dTs dTs dTs dTs -cuH +lzs dTs dTs dTs @@ -68496,18 +53831,18 @@ dTs dTs dTs dTs -csA -crq -csA -crq +gLg +sav +gLg +sav dTs dTs dTs -cwB -cwB -crq -csA -crq +xUS +xUS +sav +gLg +sav dTs dTs dTs @@ -68723,27 +54058,27 @@ dTs dTs dTs dTs -csA -cwB -crq +gLg +xUS +sav dTs dTs -csA -cwB -csD -crr -csD -crr -cwB -cwB -csD -doE -doE -crr -csD -crr -crq -cuH +gLg +xUS +vTA +erF +vTA +erF +xUS +xUS +vTA +lIt +lIt +erF +vTA +erF +sav +lzs dTs dTs dTs @@ -68950,35 +54285,35 @@ dTs dTs dTs dTs -csA -cwB -crq +gLg +xUS +sav dTs dTs -csA -cwB -csD -doE -cxV -csB -crr -csD -doE -doE -doE +gLg +xUS +vTA +lIt +sAm +htc +erF +vTA +lIt +lIt +lIt aMM -doE -doE -doE -doE -doE -doE -doE -doE -doE +lIt +lIt +lIt +lIt +lIt +lIt +lIt +lIt +lIt cGR -cwB -crq +xUS +sav dTs dTs dTs @@ -69182,37 +54517,37 @@ dTs dTs dTs dTs -cuH -csA -csD -doE -crr -cwB -crq -csB -doE -doE -doE +lzs +gLg +vTA +lIt +erF +xUS +sav +htc +lIt +lIt +lIt cGR -csD -doE -doE -doE -doE -doE -doE -doE -doE -doE -doE -doE -doE -doE -doE -doE -doE -doE -cxV +vTA +lIt +lIt +lIt +lIt +lIt +lIt +lIt +lIt +lIt +lIt +lIt +lIt +lIt +lIt +lIt +lIt +lIt +sAm dTs dTs dTs @@ -69415,39 +54750,39 @@ cUf cxV dTs dTs -cwB -cwB -csD -doE -doE -doE -doE -crr -csD -doE -doE -doE -doE -doE -doE -doE -doE -doE -doE -doE -doE -doE -doE -doE -doE -cuL -crw -crw -cuz -doE -doE -crr -crq +xUS +xUS +vTA +lIt +lIt +lIt +lIt +erF +vTA +lIt +lIt +lIt +lIt +lIt +lIt +lIt +lIt +lIt +lIt +lIt +lIt +lIt +lIt +lIt +lIt +urC +ybW +ybW +mDd +lIt +lIt +erF +sav dTs dTs dTs @@ -69460,17 +54795,17 @@ dTs dTs dTs dTs -air +wEy dTs dTs -air -amP -apt -ahu +wEy +oMz +uZr +ogc dTs dTs dTs -apt +uZr dTs dTs dTs @@ -69490,9 +54825,9 @@ dTs dTs dTs dTs -ahu -air -apt +ogc +wEy +uZr dTs dTs dTs @@ -69648,7 +54983,7 @@ cCO ctK dTs dTs -cwz +iHF aKY cMq cGu @@ -69675,14 +55010,14 @@ cGu cMq cQn lIK -crx -crx +dws +dws tlh -doE -doE +lIt +lIt dgG -cxV -cuH +sAm +lzs dTs dTs acu @@ -69693,25 +55028,25 @@ dTs dTs dTs dTs -ahu -ais -apu +ogc +pRD +qLE aba abj cSZ abN -apt -ahu -air -aiY -apu -apt -ahu +uZr +ogc +wEy +moq +qLE +uZr +ogc dTs dTs dTs dTs -air +wEy dTs dTs dTs @@ -69723,14 +55058,14 @@ dTs dTs dTs dTs -air -amP -aiY -axZ -ahu +wEy +oMz +moq +ndF +ogc dTs -amP -apt +oMz +uZr dTs dTs dTs @@ -69882,7 +55217,7 @@ cCU cAa dTs dTs -csD +vTA alh cMC aav @@ -69908,14 +55243,14 @@ cGG cDL cMC cgh -cUl -cvJ -crz +kPo +qkz +hjz tlh -doE -doE -doE -cxV +lIt +lIt +lIt +sAm dTs dTs dTs @@ -69925,30 +55260,30 @@ acu acu dTs dTs -ahu -ahu -air -aiY -aqz -cQf -nzB -nzB +ogc +ogc +wEy +moq +uJl +xWj +mBO +mBO cSZ aTC -amP -aiY -aiZ -aiZ -apu -apt -ahu +oMz +moq +mZb +mZb +qLE +uZr +ogc dTs dTs -air -aiY -apu -amP -apt +wEy +moq +qLE +oMz +uZr dTs dTs dTs @@ -69957,15 +55292,15 @@ dTs dTs dTs dTs -aiY -apc +moq +oJT apP -apu -apt -ait -aja -apu -apt +qLE +uZr +txr +ign +qLE +uZr dTs dTs dTs @@ -70120,6 +55455,7 @@ dTs cDb cDK cDY +tcB cDY cDY cDY @@ -70128,6 +55464,7 @@ cDY cDY cDY cDY +tcB cDY cDY cDY @@ -70136,21 +55473,19 @@ cDY cDY cDY cDY -cDY -cDY -cDY +tcB cDY cMD cBS -cUl -crx -crx +kPo +dws +dws tlh -doE -doE -doE -crr -crq +lIt +lIt +lIt +erF +sav dTs dTs acu @@ -70158,52 +55493,52 @@ acu (18,1,1) = {" acu dTs -air -amP -amP -aiY -aiZ -aiZ +wEy +oMz +oMz +moq +mZb +mZb cQL -cRc -nzB +dja +mBO dvW apP -aiZ -aiZ -aiZ -aiZ -aiZ -apu -apt -air -amP -aiY -aiZ -aJm -aiZ -apu -amP -apt -ahu +mZb +mZb +mZb +mZb +mZb +qLE +uZr +wEy +oMz +moq +mZb +qIC +mZb +qLE +oMz +uZr +ogc dTs dTs -aiY -axZ -ait -aja -aiZ -apc -aiZ -apu -amP -aiY -aiZ -apu -apt -ahu -air -apt +moq +ndF +txr +ign +mZb +oJT +mZb +qLE +oMz +moq +mZb +qLE +uZr +ogc +wEy +uZr dTs dTs dTs @@ -70376,69 +55711,69 @@ cDY cDY cML cBS -cUl -crx -crx +kPo +dws +dws tlh -doE -cuO -doE -doE -cxV -cuH +lIt +uic +lIt +lIt +sAm +lzs dTs acu "} (19,1,1) = {" acu dTs -ais -aiZ -aJm -aiZ -aiZ +pRD +mZb +qIC +mZb +mZb aQS -anF +vjO aHW cQL -dvZ -aqz -aiZ -aiZ -aiZ +lZP +uJl +mZb +mZb +mZb aQS -aqz -aiZ -apu -aiY -aiZ -aiZ -aiZ -aiZ -aiZ -aiZ +uJl +mZb +qLE +moq +mZb +mZb +mZb +mZb +mZb +mZb aQS -apu -amP -aiY -aiZ -aiZ -apu -amP -aiY -aiZ -aiZ +qLE +oMz +moq +mZb +mZb +qLE +oMz +moq +mZb +mZb ben -aiZ -aiZ -aiZ -aiZ -aiZ +mZb +mZb +mZb +mZb +mZb bge -amP -aiY -apu -amP +oMz +moq +qLE +oMz bht bht bht @@ -70610,15 +55945,15 @@ cDY cDY cNb cRB -cUl -cvJ -crz +kPo +qkz +hjz tlh -doE -doE -doE -doE -cxV +lIt +lIt +lIt +lIt +sAm dTs dTs acu @@ -70626,9 +55961,9 @@ acu (20,1,1) = {" acu dTs -ais -aiZ -aiZ +pRD +mZb +mZb aPA aQe aQT @@ -70844,14 +56179,14 @@ cDY cDY cNh djl -daD -crx -crx +sAZ +dws +dws tlh -doE -doE -csE -cxU +lIt +lIt +uME +hjW dTs dTs dTs @@ -70860,9 +56195,9 @@ acu (21,1,1) = {" acu dTs -ait -aja -aiZ +txr +ign +mZb aPB aQf aQU @@ -71052,7 +56387,7 @@ cRM cRM dFn doE -cCY +doE cDb abS cDY @@ -71078,15 +56413,15 @@ cDY cDY cNi dws -crx -crx -crx +dws +dws +dws tlh -crv -drL -drO -crr -crq +onm +hTf +xOm +erF +sav dTs dTs acu @@ -71095,8 +56430,8 @@ acu acu dTs dTs -ait -aja +txr +ign aPB aQg aQV @@ -71312,15 +56647,15 @@ cDY cDY cNx dws -crx -cvJ -crz +dws +qkz +hjz tlh fSc -dsE -drT -cru -cxV +fYz +niN +hCY +sAm dTs dTs acu @@ -71330,7 +56665,7 @@ acu dTs dTs dTs -ais +pRD aPB aQg aQV @@ -71546,15 +56881,15 @@ cDY cDY cPI dws -crx -crx -crx +dws +dws +dws tlh -drL -uTo -drN -doE -crr +hTf +muj +bFC +lIt +erF dTs dTs acu @@ -71564,7 +56899,7 @@ acu dTs dTs dTs -ais +pRD aPB aQg aQV @@ -71621,7 +56956,7 @@ bjk bjk bjk blx -bjA +ozQ bmD bnc bhP @@ -71780,15 +57115,15 @@ cDY cDY cPW djk -cUk -crx -crx +eRX +dws +dws tlh -duc -drN -cAd -doE -cxU +qHh +bFC +hVV +lIt +hjW czA dTs acu @@ -71798,7 +57133,7 @@ acu dTs dTs dTs -ais +pRD aPB aQg aQV @@ -71847,17 +57182,17 @@ bdD bhQ bhP asR -bja -bjl +sFQ +jdT bjz -bkd -bko -bko -bko -bkd -bjm -bko -bnd +qmn +wta +wta +wta +qmn +jIQ +wta +hvD bnc bjB bhP @@ -72014,14 +57349,14 @@ cDY cDY cMD cRE -cUl -cvJ -crz +kPo +qkz +hjz tlh -csE -cxT -doE -doE +uME +jcb +lIt +lIt dTs dTs dTs @@ -72032,7 +57367,7 @@ acu dTs dTs dTs -ais +pRD aPB aQg aQV @@ -72081,17 +57416,17 @@ bdD bhP bhP vLw -bjb -bjm -bjA -bjm -bjm -bjm -bjm -bjm -bjm -bjm -bjm +hOt +jIQ +ozQ +jIQ +jIQ +jIQ +jIQ +jIQ +jIQ +jIQ +jIQ bnH boy bhP @@ -72248,15 +57583,15 @@ cDY cDY cML cBS -cUl -crx -crx +kPo +dws +dws tlh -cru -csE -doE -doE -cxV +hCY +uME +lIt +lIt +sAm dTs dTs acu @@ -72265,8 +57600,8 @@ acu acu dTs dTs -air -aiY +wEy +moq aPB aQh aQW @@ -72315,17 +57650,17 @@ bdD bhR mKW biG -bjc -bjl +sGP +jdT bjB -bke -bkp -bkp -bkp -bke -bjm -bkp -bne +sjN +wLq +wLq +wLq +sjN +jIQ +wLq +swK bnf bjz bhP @@ -72460,6 +57795,7 @@ cDc cDb cDV cDY +tcB cDY cDY cDY @@ -72468,6 +57804,7 @@ cDY cDY cDY cDY +tcB cDY cDY cDY @@ -72476,21 +57813,19 @@ cDY cDY cDY cDY -cDY -cDY -cDY +tcB cDY cNb cBS -cUl -crx -crx +kPo +dws +dws tlh -drL -drO -doE -doE -cxV +hTf +xOm +lIt +lIt +sAm dTs dTs acu @@ -72500,7 +57835,7 @@ acu dTs dTs dDB -aiZ +mZb aPC aQi aQX @@ -72557,7 +57892,7 @@ bjk bjk bjk blx -bjA +ozQ bmD bnf bhP @@ -72716,15 +58051,15 @@ cFP cLL cMC cgh -cUl -cvJ -crz +kPo +qkz +hjz tlh -dsE -drT -cru -doE -cxV +fYz +niN +hCY +lIt +sAm dTs dTs acu @@ -72733,9 +58068,9 @@ acu acu dTs dTs -ais -aiZ -aiZ +pRD +mZb +mZb aQj aQY aQZ @@ -72950,14 +58285,14 @@ cDX cDX cES cRB -cUl -crx -crx +kPo +dws +dws tlh -duc -drN -csE -cxU +qHh +bFC +uME +hjW dTs dTs dTs @@ -72967,9 +58302,9 @@ acu acu tZQ aad -aiY -aiZ -aiZ +moq +mZb +mZb aQj aQZ aQZ @@ -72982,6 +58317,7 @@ aUD aVj acI aWh +uHT aWh aWh aWh @@ -72990,6 +58326,7 @@ aWh aWh aWh aWh +uHT aWh aWh aWh @@ -72998,9 +58335,7 @@ aWh aWh aWh aWh -aWh -aWh -aWh +uHT aWh bAF aVi @@ -73160,38 +58495,38 @@ cEa crw crw poM -cRM -cRM -cRM -cRM -cRM -cRM -cRM -cRM -cRM -cRM -cRM -cRM -cRM -cRM -cRM -cRM -cRM -cRM -cRM -cRM -cRM -cRM -cRM -cRM -daD -crx -crx +djl +djl +djl +djl +djl +djl +djl +djl +djl +djl +djl +djl +djl +djl +djl +djl +djl +djl +djl +djl +djl +djl +djl +djl +sAZ +dws +dws tlh -csE -cAd -doE -cxV +uME +hVV +lIt +sAm dTs dTs dTs @@ -73205,15 +58540,15 @@ aqf aqf aqf aqT -auy -auy -auy -aPJ -aql -ara -asc -auy -arZ +iKp +iKp +iKp +ekN +aSY +aQg +mjR +iKp +xbA aLa aWh aWh @@ -73394,38 +58729,38 @@ crx crx crx ylS -crx -crx +dws +dws ylS -crx -crx +dws +dws ylS -dvo -dvo +bhp +bhp ylS -crx -crx +dws +dws ylS -dvo -dvo +bhp +bhp cXA -crx -crx +dws +dws ylS -crx -crx +dws +dws ylS -crx -crx +dws +dws ylS -crx -cvJ -crz +dws +qkz +hjz tlh -doE -cuO +lIt +uic aPK -cxV +sAm dTs dTs dTs @@ -73433,21 +58768,21 @@ acu "} (32,1,1) = {" acu -aqg -aqg -aDb -aqg -aqg -aDb -aqg -aqg -aDb -aqg -aqg -aqg -agV -aqg -asa +aQV +aQV +aQW +aQV +aQV +aQW +aQV +aQV +aQW +aQV +aQV +aQV +beT +aQV +aUi qoJ aWh aWh @@ -73627,39 +58962,39 @@ crx crx crx crx -cvG -crx -crx -cvG -crx -crx -cvG -crx -dvo -cKL -dvo -dvo -cKL -dvo -crx -cvG -crx -crx -cvG -crx -crx -cvG -crx -crx -cvG -crx -crx -crx +vGu +dws +dws +vGu +dws +dws +vGu +dws +bhp +mfH +bhp +bhp +mfH +bhp +dws +vGu +dws +dws +vGu +dws +dws +vGu +dws +dws +vGu +dws +dws +dws tlh -csE -doE -doE -cxV +uME +lIt +lIt +sAm dTs dTs dTs @@ -73667,21 +59002,21 @@ acu "} (33,1,1) = {" acu -aqg -aqg -aDc -aqg -aqg -aDc -aqg -aqg -aDc -aqg -aqg -aqg -agV -aqg -asa +aQV +aQV +aQU +aQV +aQV +aQU +aQV +aQV +aQU +aQV +aQV +aQV +beT +aQV +aUi abQ aWh aWh @@ -73861,38 +59196,38 @@ cuJ cuJ cuJ cuJ -cuJ +jqU cnA -cMJ -cMJ -cMJ -cMJ -cMJ -cMJ -cUk -crx -dvo +djk +djk +djk +djk +djk +djk +eRX +dws +bhp cQc -cMJ -cMJ -cMJ -cMJ -cMJ -cMJ -cMJ -cMJ -cMJ -cMJ +djk +djk +djk +djk +djk +djk +djk +djk +djk +djk eCk -cuJ -cuJ -cuJ -cuJ -cuJ +jqU +jqU +jqU +jqU +jqU sNX -doE -doE -doE +lIt +lIt +lIt dTs dTs dTs @@ -73901,21 +59236,21 @@ acu "} (34,1,1) = {" acu -aKW -aKW -aKW -aKW -aKW -aKW -aKW -aKW -aSc -aIJ -aql -ara -agV -aqg -asa +eZC +eZC +eZC +eZC +eZC +eZC +eZC +eZC +ucS +uHx +aSY +aQg +beT +aQV +aUi cEc aWh aWh @@ -74114,18 +59449,18 @@ cNo bvA daw deU -cQm -cQm +uSv +uSv aMT aNx -cKp -doE -doE -doE -doE -doE -doE -doE +uWt +lIt +lIt +lIt +lIt +lIt +lIt +lIt dTs dTs dTs @@ -74138,18 +59473,18 @@ acu tZQ tZQ dTs -ars -aja -aiZ -aiZ -aFu +cSn +ign +mZb +mZb +wDC aSd -apz -aqg -aqg -aqg -aqg -asa +aSx +aQV +aQV +aQV +aQV +aUi aLa aWh aWh @@ -74346,20 +59681,20 @@ cVH cVH cXD bvA -daU +cDY deV -cQm -cQm +uSv +uSv aMU aNz -cKr -doE -doE -doE -doE -doE +saQ +lIt +lIt +lIt +lIt +lIt dTs -doE +lIt dTs dTs dTs @@ -74373,17 +59708,17 @@ dTs dTs dTs dTs -ait -aja -aiZ -aiZ -aIa -apz -aqg -aqg -agV -aqg -asa +txr +ign +mZb +mZb +aPB +aSx +aQV +aQV +beT +aQV +aUi qoJ aWh aWh @@ -74491,9 +59826,9 @@ aSI chG ceA act -aVz +mKZ +aXD aXD -aZt aXD aXD blY @@ -74580,17 +59915,17 @@ cVH cVH cXN bvA -daU +cDY aMJ -cQm -cQm +uSv +uSv aNe aNz -cKr -doE -doE -doE -doE +saQ +lIt +lIt +lIt +lIt dTs dTs dTs @@ -74608,16 +59943,16 @@ dTs dTs dTs dTs -ais -aiZ -aiZ -aIa -apz -aql -ara -agV -aqg -asa +pRD +mZb +mZb +aPB +aSx +aSY +aQg +beT +aQV +aUi abQ aWh aWh @@ -74816,14 +60151,14 @@ aMw aMI dbc aMJ -cQm -cQm +uSv +uSv aNm aNA -cKr -doE -doE -doE +saQ +lIt +lIt +lIt dTs dTs dTs @@ -74842,16 +60177,16 @@ dTs dTs dTs dTs -ait -aja -aiZ -aIa -apz -aqg -aqg -agV -aqg -asa +txr +ign +mZb +aPB +aSx +aQV +aQV +beT +aQV +aUi cEc aWh aWh @@ -74962,9 +60297,9 @@ ceA aVB aXE aZJ -bdL +bWO bjI -aXM +oJW aVB boW bqy @@ -75055,8 +60390,8 @@ bvA ddJ bvA bvA -doE -doE +lIt +lIt dTs dTs dTs @@ -75077,14 +60412,14 @@ dTs dTs dTs dTs -ais +pRD abb -aIa -apz -aqg -aqg -asd -auz +aPB +aSx +aQV +aQV +wuV +eRL aaA aLa aWh @@ -75311,17 +60646,18 @@ dTs dTs dTs dTs -ait -aja -aIa -apz -aql -ara -asa +txr +ign +aPB +aSx +aSY +aQg +aUi aUD aVg acJ aWh +uHT aWh aWh aWh @@ -75330,6 +60666,7 @@ aWh aWh aWh aWh +uHT aWh aWh aWh @@ -75338,9 +60675,7 @@ aWh aWh aWh aWh -aWh -aWh -aWh +uHT aWh bFg aVi @@ -75544,14 +60879,14 @@ dTs dTs dTs dTs -ahu -ahu -ais -aIa -apz -aqg -aqg -asa +ogc +ogc +pRD +aPB +aSx +aQV +aQV +aUi aUD aVh aQY @@ -75777,15 +61112,15 @@ dTs dTs dTs dTs -ahu -ahu -air -aiY -aIa -apz -aqg -aqg -asa +ogc +ogc +wEy +moq +aPB +aSx +aQV +aQV +aUi aUE aVj aQX @@ -76015,38 +61350,38 @@ aOc aOc aOc aOc -aoD -apz -aql -ara -asc -auy -auy -auy -auy -auy -auy -auy -auy -auy -auy -auy -auy -auy -auy -auy -auy -auy -auy -auy -auy -auy -auy -auy -auy -auy -auy -auy +pzk +aSx +aSY +aQg +mjR +iKp +iKp +iKp +iKp +iKp +iKp +iKp +iKp +iKp +iKp +iKp +iKp +iKp +iKp +iKp +iKp +iKp +iKp +iKp +iKp +iKp +iKp +iKp +iKp +iKp +iKp +iKp aQg aQV aQV @@ -76249,38 +61584,38 @@ aPD byX iqK aOc -aoE -apz -aqg -aqg -aqg -aDb -aqg -aqg -aDb -aqg -aqg -aDb -aqg -aqg -aDb -aqg -aqg -aDb -aqg -aqg -aDb -aqg -aqg -aDb -aqg -aqg -aDb -aqg -aqg -aDb -aqg -aqg +aSa +aSx +aQV +aQV +aQV +aQW +aQV +aQV +aQW +aQV +aQV +aQW +aQV +aQV +aQW +aQV +aQV +aQW +aQV +aQV +aQW +aQV +aQV +aQW +aQV +aQV +aQW +aQV +aQV +aQW +aQV +aQV aQg aQV aSY @@ -76379,7 +61714,7 @@ bsS bvy bsS bsS -bBU +bsS bFr aQH bIX @@ -76483,38 +61818,38 @@ aPD aPD iqK aau -aoE -apz -aqg -aqg -aqg -aDc -aqg -aqg -aDc -aqg -aqg -aDc -aqg -aqg -aDc -aqg -aqg -aDc -aqg -aqg -aDc -aqg -aqg -aDc -aqg -aqg -aDc -aqg -aqg -aDc -aqg -aqg +aSa +aSx +aQV +aQV +aQV +aQU +aQV +aQV +aQU +aQV +aQV +aQU +aQV +aQV +aQU +aQV +aQV +aQU +aQV +aQV +aQU +aQV +aQV +aQU +aQV +aQV +aQU +aQV +aQV +aQU +aQV +aQV aQg aQV aSY @@ -76717,38 +62052,38 @@ aPE pDd aPE aau -aoE -aIK -auz -auz -auz -auz -auz -auz -auz -auz -auz -auz -auz -auz -auz -auz -auz -auz -auz -auz -auz -auz -auz -auz -aIJ -aqg -aqg -asd -auz -auz -auz -auz +aSa +eZN +eRL +eRL +eRL +eRL +eRL +eRL +eRL +eRL +eRL +eRL +eRL +eRL +eRL +eRL +eRL +eRL +eRL +eRL +eRL +eRL +eRL +eRL +uHx +aQV +aQV +wuV +eRL +eRL +eRL +eRL aQg aQV aQV @@ -76951,38 +62286,38 @@ rFz aPF aRc aOc -akz -aNp -aNp -aNp -aNp -alo -alo -alo -alo -alo -alo -alo -alo -alo -aNp -aNp -alo -alo -aNp -aNp -aNp -aNp -aNp -apO -apA +aUE +aQX +aQX +aQX +aQX +aVg +aVg +aVg +aVg +aVg +aVg +aVg +aVg +aVg +aQX +aQX +aVg +aVg +aQX +aQX +aQX +aQX +aQX +aRZ +gBQ dez -aNL +pHs baW -aky -aNp -aNp -apO +aUC +aQX +aQX +aRZ bfn aQW aQW @@ -77198,24 +62533,24 @@ aVk adq aeg aVk -aVH -aoe +bhh +sUF afy -apa -aoG +aUD +aVh anh -aoe -aoe -aoe -aoe -bco +sUF +sUF +sUF +sUF +sQE bcC -aNL -aNL +pHs +pHs baW -aoE +aSa anh -aoe +sUF aUH bfo bfo @@ -77424,41 +62759,41 @@ rFz rFz bzU aOc -bej -bfp -bej -aiZ -acW -aiZ -aiZ -aiZ +iZY +saS +iZY +mZb +sCW +mZb +mZb +mZb aeY -aiZ -ajS -bvh -avC -aDe -beD -aiZ -aiZ -aiZ -aIa -apz -aql -ara -asa -aoE -aDe -aiZ -aqy -aja -aiZ -aqy -ars -aja -aiZ -aiZ -aqy +mZb +aQj +qDl +aVG +wpr +qlr +mZb +mZb +mZb +aPB +aSx +aSY +aQg +aUi +aSa +wpr +mZb +nnv +ign +mZb +nnv +cSn +ign +mZb +mZb +nnv dTs dTs dTs @@ -77658,8 +62993,8 @@ rFz rFz aRc aau -aja -bej +ign +iZY aVI aVI aVI @@ -77683,15 +63018,15 @@ aqg asa bdV bep -aqy -axY -ait -ars +nnv +fqj +txr +cSn dTs dTs -ait -ars -ars +txr +cSn +cSn dTs dTs dTs @@ -77892,8 +63227,8 @@ aPF aPF aRc aau -ait -aja +txr +ign aVI azf aYu @@ -77917,14 +63252,14 @@ aqg asa bdW aiZ -axZ -ahu +ndF +ogc dTs dTs dTs dTs dTs -ahu +ogc dTs dTs dTs @@ -78126,8 +63461,8 @@ aRD aTg aTh aOc -ahu -ait +ogc +txr aVI aNs aWl @@ -86402,7 +71737,7 @@ dTs dTs dTs aEa -aCH +aCJ aCI aDh aCJ @@ -88135,11 +73470,11 @@ lyB fdk hOK dhs -dpv -dqe +dpw +dqf dqO -dqe -dqe +dqf +dqf edO dus dVT @@ -92544,8 +77879,8 @@ dTs dTs dTs dTs -dTI -dTI +dTs +dTs cPL cTk cTO @@ -92778,8 +78113,8 @@ dTs dTs dTs dTs -dTI -dTI +dTs +dTs cPL cTl cTO @@ -93013,7 +78348,7 @@ dTs dTs dTs dTs -abt +dTs cPL cTm cTO @@ -93161,9 +78496,9 @@ bQF bCs bSY bwu -bxE -byG -bxE +kOC +iiY +kOC bAK bwv bZQ @@ -93629,9 +78964,9 @@ bSY bCs bSY bwu -bxE -byG -bxE +kOC +iiY +kOC bAK bwv bZQ @@ -94565,9 +79900,9 @@ bTi bCy bTi bwu -bxH -byJ -bxH +oWx +gVo +oWx bAK bwv caI @@ -95033,9 +80368,9 @@ bTi bCy bTi bwu -bxH -byJ -bxH +oWx +gVo +oWx bAK bwv caI @@ -95969,9 +81304,9 @@ bTi bCy bTi bwu -bxH -byJ -bxH +oWx +gVo +oWx bAK bwv caI @@ -96392,7 +81727,7 @@ awC awC dTs dTs -aHO +aXv aPP aaC aXC @@ -96437,9 +81772,9 @@ bYF bCy bTi bwu -bxH -byJ -bxH +oWx +gVo +oWx bAK bwv caI @@ -96638,7 +81973,7 @@ aVZ aHd dTs aOh -dTs +aWz dTs dTs dTs @@ -98744,8 +84079,8 @@ dTs dTs dTs dTs -aam -ayp +dTs +dTs aeE aeE ayD @@ -99916,7 +85251,7 @@ dTs dTs aam ayp -aeE +dTs aeE bgH dTs @@ -102824,7 +88159,7 @@ cvU cvU cCn ctW -cEy +uIC cEB cGg cHc diff --git a/maps/map_files/DesertDam/greenriver/newbridge.dmm b/maps/map_files/DesertDam/greenriver/newbridge.dmm index ea0c82fb1c32..df19de868c79 100644 --- a/maps/map_files/DesertDam/greenriver/newbridge.dmm +++ b/maps/map_files/DesertDam/greenriver/newbridge.dmm @@ -1,8 +1,6 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE "aa" = ( -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_bridge) "ab" = ( /obj/structure/platform{ @@ -12,21 +10,14 @@ dir = 8 }, /obj/effect/blocker/toxic_water/Group_2, -/turf/open/desert/desert_shore/shore_corner2{ - icon_state = "shore_corner2"; - dir = 1 - }, +/turf/open/desert/desert_shore/shore_corner2/north, /area/desert_dam/exterior/river/riverside_east) "ac" = ( /obj/structure/platform_decoration{ - icon_state = "platform_deco"; dir = 4 }, /obj/effect/blocker/toxic_water/Group_2, -/turf/open/gm/river/desert/shallow_edge{ - icon_state = "shallow_edge"; - dir = 8 - }, +/turf/open/gm/river/desert/shallow_edge/west, /area/desert_dam/exterior/river/riverside_east) "ad" = ( /obj/effect/blocker/toxic_water/Group_2, @@ -40,24 +31,16 @@ /turf/open/gm/river/desert/shallow_corner, /area/desert_dam/exterior/river/riverside_east) "af" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached3" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached3, /area/desert_dam/exterior/valley/valley_bridge) "ag" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached1" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached1, /area/desert_dam/exterior/valley/valley_bridge) "ah" = ( /obj/effect/decal/sand_overlay/sand1{ - dir = 8; - icon = 'icons/turf/overlays.dmi'; - icon_state = "sand1_s" - }, -/turf/open/asphalt{ - icon_state = "tile" + dir = 8 }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_bridge) "ai" = ( /turf/open/desert/dirt, @@ -70,28 +53,18 @@ dir = 1 }, /obj/effect/blocker/toxic_water/Group_2, -/turf/open/desert/desert_shore/shore_corner2{ - icon_state = "shore_corner2"; - dir = 1 - }, +/turf/open/desert/desert_shore/shore_corner2/north, /area/desert_dam/exterior/river/riverside_east) "al" = ( /obj/structure/platform_decoration{ - icon_state = "platform_deco"; dir = 4 }, /obj/effect/blocker/toxic_water/Group_2, -/turf/open/gm/river/desert/shallow_edge{ - icon_state = "shallow_edge"; - dir = 9 - }, +/turf/open/gm/river/desert/shallow_edge/northwest, /area/desert_dam/exterior/river/riverside_east) "am" = ( /obj/effect/blocker/toxic_water/Group_2, -/turf/open/gm/river/desert/shallow_corner{ - icon_state = "shallow_c"; - dir = 1 - }, +/turf/open/gm/river/desert/shallow_corner/north, /area/desert_dam/exterior/river/riverside_east) "an" = ( /obj/structure/platform{ @@ -101,56 +74,36 @@ /turf/open/gm/river/desert/deep, /area/desert_dam/exterior/river/riverside_east) "ao" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached14" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached14, /area/desert_dam/exterior/valley/valley_bridge) "ap" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached15" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached15, /area/desert_dam/exterior/valley/valley_bridge) "aq" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ - dir = 4; - icon = 'icons/turf/overlays.dmi'; - icon_state = "sand1_c" - }, -/turf/open/asphalt{ - icon_state = "tile" + dir = 4 }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_bridge) "ar" = ( /obj/effect/decal/sand_overlay/sand1{ - dir = 1; - icon = 'icons/turf/overlays.dmi'; - icon_state = "sand1_s" - }, -/turf/open/asphalt{ - icon_state = "tile" + dir = 1 }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_bridge) "as" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ - dir = 1; - icon = 'icons/turf/overlays.dmi'; - icon_state = "sand1_c" - }, -/turf/open/asphalt{ - icon_state = "tile" + dir = 1 }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_bridge) "at" = ( /obj/effect/blocker/toxic_water/Group_2, -/turf/open/gm/river/desert/shallow_edge{ - icon_state = "shallow_edge"; - dir = 1 - }, +/turf/open/gm/river/desert/shallow_edge/north, /area/desert_dam/exterior/river/riverside_east) "au" = ( /obj/structure/platform_decoration{ - dir = 8; - icon_state = "platform_deco" + dir = 8 }, /obj/effect/blocker/toxic_water/Group_2, /turf/open/gm/river/desert/deep, @@ -171,9 +124,7 @@ /area/desert_dam/exterior/river/riverside_east) "ax" = ( /obj/effect/blocker/toxic_water/Group_2, -/turf/open/gm/river/desert/shallow_edge/covered{ - dir = 4 - }, +/turf/open/gm/river/desert/shallow_edge/covered/east, /area/desert_dam/exterior/river/riverside_east) "ay" = ( /obj/structure/platform{ @@ -190,29 +141,21 @@ dir = 1 }, /obj/effect/blocker/toxic_water/Group_2, -/turf/open/desert/desert_shore/shore_corner2{ - icon_state = "shore_corner2"; - dir = 8 - }, +/turf/open/desert/desert_shore/shore_corner2/west, /area/desert_dam/exterior/river/riverside_east) "aA" = ( /obj/structure/platform{ dir = 1 }, /obj/effect/blocker/toxic_water/Group_2, -/turf/open/desert/desert_shore/shore_edge1{ - icon_state = "shore_edge1"; - dir = 4 - }, +/turf/open/desert/desert_shore/shore_edge1/east, /area/desert_dam/exterior/river/riverside_east) "aB" = ( /obj/structure/platform{ dir = 1 }, /obj/effect/blocker/toxic_water/Group_2, -/turf/open/desert/dirt{ - icon_state = "dirt2" - }, +/turf/open/desert/dirt/dirt2, /area/desert_dam/exterior/river/riverside_east) "aC" = ( /obj/effect/blocker/toxic_water/Group_2, @@ -230,31 +173,19 @@ /obj/structure/platform{ dir = 8 }, -/turf/open/gm/river/desert/shallow_edge{ - icon_state = "shallow_edge"; - dir = 1 - }, +/turf/open/gm/river/desert/shallow_edge/north, /area/desert_dam/exterior/river/riverside_east) "aF" = ( /obj/effect/blocker/toxic_water/Group_2, -/turf/open/gm/river/desert/shallow_edge{ - icon_state = "shallow_edge"; - dir = 5 - }, +/turf/open/gm/river/desert/shallow_edge/northeast, /area/desert_dam/exterior/river/riverside_east) "aG" = ( /obj/effect/blocker/toxic_water/Group_2, -/turf/open/desert/desert_shore/shore_corner2{ - icon_state = "shore_corner2"; - dir = 8 - }, +/turf/open/desert/desert_shore/shore_corner2/west, /area/desert_dam/exterior/river/riverside_east) "aH" = ( /obj/effect/blocker/toxic_water/Group_2, -/turf/open/desert/desert_shore/desert_shore1{ - icon_state = "shore1"; - dir = 1 - }, +/turf/open/desert/desert_shore/desert_shore1/north, /area/desert_dam/exterior/river/riverside_east) "aI" = ( /obj/effect/blocker/toxic_water/Group_2, @@ -269,17 +200,11 @@ /area/desert_dam/exterior/river/riverside_east) "aK" = ( /obj/effect/blocker/toxic_water/Group_2, -/turf/open/gm/river/desert/shallow_corner{ - icon_state = "shallow_c"; - dir = 8 - }, +/turf/open/gm/river/desert/shallow_corner/west, /area/desert_dam/exterior/river/riverside_east) "aL" = ( /obj/effect/blocker/toxic_water/Group_2, -/turf/open/gm/river/desert/shallow_edge{ - icon_state = "shallow_edge"; - dir = 10 - }, +/turf/open/gm/river/desert/shallow_edge/southwest, /area/desert_dam/exterior/river/riverside_east) "aM" = ( /obj/effect/blocker/toxic_water/Group_2, @@ -346,39 +271,26 @@ /turf/open/desert/desert_shore/desert_shore1, /area/desert_dam/exterior/river/riverside_east) "aY" = ( -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_medical) "aZ" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached3" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached3, /area/desert_dam/exterior/valley/valley_medical) "ba" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached1" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached1, /area/desert_dam/exterior/valley/valley_medical) "bb" = ( /obj/effect/decal/sand_overlay/sand1/corner1, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_medical) "bc" = ( -/turf/open/desert/dirt{ - icon_state = "dirt2" - }, +/turf/open/desert/dirt/dirt2, /area/desert_dam/exterior/river/riverside_east) "bd" = ( /obj/structure/platform_decoration{ - dir = 8; - icon_state = "platform_deco" - }, -/turf/open/desert/dirt{ - icon_state = "dirt2" + dir = 8 }, +/turf/open/desert/dirt/dirt2, /area/desert_dam/exterior/river/riverside_east) "be" = ( /obj/structure/stairs{ @@ -387,57 +299,40 @@ /obj/structure/platform{ dir = 1 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached2" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached2, /area/desert_dam/exterior/valley/valley_medical) "bf" = ( /turf/open/asphalt/cement_sunbleached, /area/desert_dam/exterior/valley/valley_medical) "bg" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached4" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached4, /area/desert_dam/exterior/valley/valley_medical) "bh" = ( /obj/effect/decal/sand_overlay/sand1{ - dir = 8; - icon = 'icons/turf/overlays.dmi'; - icon_state = "sand1_s" - }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached9" + dir = 8 }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached9, /area/desert_dam/exterior/valley/valley_medical) "bi" = ( /obj/structure/platform, -/turf/open/desert/dirt{ - icon_state = "dirt2" - }, +/turf/open/desert/dirt/dirt2, /area/desert_dam/exterior/river/riverside_east) "bj" = ( /obj/structure/platform_decoration{ - icon_state = "platform_deco"; dir = 1 }, -/turf/open/desert/dirt{ - icon_state = "dirt2" - }, +/turf/open/desert/dirt/dirt2, /area/desert_dam/exterior/river/riverside_east) "bk" = ( /obj/structure/platform_decoration, -/turf/open/desert/dirt{ - icon_state = "dirt2" - }, +/turf/open/desert/dirt/dirt2, /area/desert_dam/exterior/river/riverside_east) "bl" = ( /obj/structure/stairs{ dir = 8 }, /obj/structure/platform, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached14" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached14, /area/desert_dam/exterior/valley/valley_medical) "bm" = ( /obj/structure/platform, @@ -445,13 +340,9 @@ /area/desert_dam/exterior/valley/valley_medical) "bn" = ( /obj/effect/decal/sand_overlay/sand1{ - dir = 8; - icon = 'icons/turf/overlays.dmi'; - icon_state = "sand1_s" - }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached1" + dir = 8 }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached1, /area/desert_dam/exterior/valley/valley_medical) "bo" = ( /obj/structure/stairs{ @@ -460,9 +351,7 @@ /obj/structure/platform{ dir = 8 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached3" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached3, /area/desert_dam/exterior/valley/valley_medical) "bp" = ( /obj/structure/stairs{ @@ -471,9 +360,7 @@ /obj/structure/platform{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached1" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached1, /area/desert_dam/exterior/valley/valley_medical) (1,1,1) = {" diff --git a/maps/map_files/DesertDam/purpleriver/newbridge.dmm b/maps/map_files/DesertDam/purpleriver/newbridge.dmm index 225fdabddc9f..7cc7eac77db1 100644 --- a/maps/map_files/DesertDam/purpleriver/newbridge.dmm +++ b/maps/map_files/DesertDam/purpleriver/newbridge.dmm @@ -1,35 +1,25 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE "aa" = ( -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_medical) "ab" = ( /obj/effect/decal/sand_overlay/sand1{ - dir = 8; - icon = 'icons/turf/overlays.dmi'; - icon_state = "sand1_s" - }, -/turf/open/asphalt{ - icon_state = "tile" + dir = 8 }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_medical) "ac" = ( /turf/open/desert/dirt, /area/desert_dam/exterior/valley/valley_medical) "ad" = ( /obj/effect/decal/sand_overlay/sand1{ - dir = 4; - icon = 'icons/turf/overlays.dmi'; - icon_state = "sand1_s" + dir = 4 }, /turf/open/asphalt/cement_sunbleached, /area/desert_dam/exterior/valley/valley_medical) "ae" = ( /obj/effect/decal/sand_overlay/sand1{ - dir = 8; - icon = 'icons/turf/overlays.dmi'; - icon_state = "sand1_s" + dir = 8 }, /turf/open/asphalt/cement_sunbleached, /area/desert_dam/exterior/valley/valley_medical) @@ -45,72 +35,48 @@ /area/desert_dam/exterior/river/riverside_south) "ag" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ - dir = 4; - icon = 'icons/turf/overlays.dmi'; - icon_state = "sand1_c" - }, -/turf/open/asphalt{ - icon_state = "tile" + dir = 4 }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_medical) "ah" = ( /obj/effect/decal/sand_overlay/sand1{ - dir = 1; - icon = 'icons/turf/overlays.dmi'; - icon_state = "sand1_s" - }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached2" + dir = 1 }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached2, /area/desert_dam/exterior/valley/valley_medical) "ai" = ( /obj/effect/decal/sand_overlay/sand1{ - dir = 1; - icon = 'icons/turf/overlays.dmi'; - icon_state = "sand1_s" + dir = 1 }, /turf/open/asphalt/cement_sunbleached, /area/desert_dam/exterior/valley/valley_medical) "aj" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ - dir = 1; - icon = 'icons/turf/overlays.dmi'; - icon_state = "sand1_c" + dir = 1 }, /turf/open/asphalt/cement_sunbleached, /area/desert_dam/exterior/valley/valley_medical) "ak" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ - dir = 4; - icon = 'icons/turf/overlays.dmi'; - icon_state = "sand1_c" + dir = 4 }, /turf/open/asphalt/cement_sunbleached, /area/desert_dam/exterior/valley/valley_medical) "al" = ( /obj/effect/decal/sand_overlay/sand1{ - dir = 1; - icon = 'icons/turf/overlays.dmi'; - icon_state = "sand1_s" - }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached4" + dir = 1 }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached4, /area/desert_dam/exterior/valley/valley_medical) "am" = ( /obj/effect/decal/sand_overlay/sand1{ - dir = 8; - icon = 'icons/turf/overlays.dmi'; - icon_state = "sand1_s" + dir = 8 }, /obj/effect/decal/sand_overlay/sand1{ - dir = 1; - icon = 'icons/turf/overlays.dmi'; - icon_state = "sand1_s" - }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached9" + dir = 1 }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached9, /area/desert_dam/exterior/valley/valley_medical) "an" = ( /obj/structure/platform{ @@ -120,55 +86,40 @@ /turf/open/gm/river/desert/shallow, /area/desert_dam/exterior/river/riverside_south) "ao" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached14" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached14, /area/desert_dam/exterior/valley/valley_medical) "ap" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached12" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached12, /area/desert_dam/exterior/valley/valley_medical) "aq" = ( /turf/open/asphalt/cement_sunbleached, /area/desert_dam/exterior/valley/valley_medical) "ar" = ( /obj/effect/decal/sand_overlay/sand1{ - dir = 8; - icon = 'icons/turf/overlays.dmi'; - icon_state = "sand1_s" - }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached1" + dir = 8 }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached1, /area/desert_dam/exterior/valley/valley_medical) "as" = ( /obj/structure/stairs, /obj/structure/platform{ dir = 8 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_medical) "at" = ( /obj/structure/stairs, /obj/structure/platform{ dir = 4 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_medical) "au" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached3" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached3, /area/desert_dam/exterior/valley/valley_medical) "av" = ( /obj/structure/platform_decoration{ - dir = 8; - icon_state = "platform_deco" + dir = 8 }, /obj/effect/blocker/toxic_water/Group_1, /turf/open/gm/river/desert/shallow, @@ -178,38 +129,26 @@ dir = 1 }, /obj/effect/blocker/toxic_water/Group_1, -/turf/open/desert/desert_shore/shore_corner2{ - icon_state = "shore_corner2"; - dir = 8 - }, +/turf/open/desert/desert_shore/shore_corner2/west, /area/desert_dam/exterior/river/riverside_south) "ax" = ( /obj/structure/platform{ dir = 1 }, /obj/effect/blocker/toxic_water/Group_1, -/turf/open/desert/desert_shore/shore_edge1{ - icon_state = "shore_edge1"; - dir = 4 - }, +/turf/open/desert/desert_shore/shore_edge1/east, /area/desert_dam/exterior/river/riverside_south) "ay" = ( /obj/structure/platform_decoration{ - icon_state = "platform_deco"; dir = 4 }, -/turf/open/desert/dirt{ - icon_state = "dirt2" - }, +/turf/open/desert/dirt/dirt2, /area/desert_dam/exterior/valley/valley_medical) "az" = ( /obj/structure/platform_decoration{ - dir = 8; - icon_state = "platform_deco" - }, -/turf/open/desert/dirt{ - icon_state = "dirt2" + dir = 8 }, +/turf/open/desert/dirt/dirt2, /area/desert_dam/exterior/valley/valley_medical) "aA" = ( /obj/structure/platform{ @@ -218,9 +157,7 @@ /obj/structure/platform{ dir = 4 }, -/turf/open/desert/dirt{ - icon_state = "dirt2" - }, +/turf/open/desert/dirt/dirt2, /area/desert_dam/exterior/valley/valley_medical) "aB" = ( /obj/effect/blocker/toxic_water/Group_1, @@ -228,44 +165,28 @@ /area/desert_dam/exterior/river/riverside_south) "aC" = ( /obj/effect/blocker/toxic_water/Group_1, -/turf/open/desert/desert_shore/desert_shore1{ - icon_state = "shore1"; - dir = 4 - }, +/turf/open/desert/desert_shore/desert_shore1/east, /area/desert_dam/exterior/river/riverside_south) "aD" = ( -/turf/open/desert/dirt{ - icon_state = "dirt2" - }, +/turf/open/desert/dirt/dirt2, /area/desert_dam/exterior/valley/valley_medical) "aE" = ( /obj/structure/platform{ dir = 4 }, -/turf/open/desert/dirt{ - icon_state = "dirt2" - }, +/turf/open/desert/dirt/dirt2, /area/desert_dam/exterior/valley/valley_medical) "aF" = ( /obj/effect/blocker/toxic_water/Group_1, -/turf/open/gm/river/desert/shallow_edge{ - icon_state = "shallow_edge"; - dir = 5 - }, +/turf/open/gm/river/desert/shallow_edge/northeast, /area/desert_dam/exterior/river/riverside_south) "aG" = ( /obj/effect/blocker/toxic_water/Group_1, -/turf/open/desert/desert_shore/shore_corner2{ - icon_state = "shore_corner2"; - dir = 8 - }, +/turf/open/desert/desert_shore/shore_corner2/west, /area/desert_dam/exterior/river/riverside_south) "aH" = ( /obj/effect/blocker/toxic_water/Group_1, -/turf/open/desert/desert_shore/shore_edge1{ - icon_state = "shore_edge1"; - dir = 4 - }, +/turf/open/desert/desert_shore/shore_edge1/east, /area/desert_dam/exterior/river/riverside_south) "aI" = ( /obj/effect/blocker/toxic_water/Group_1, @@ -280,10 +201,7 @@ /area/desert_dam/exterior/river/riverside_south) "aL" = ( /obj/effect/blocker/toxic_water/Group_1, -/turf/open/gm/river/desert/shallow_edge{ - icon_state = "shallow_edge"; - dir = 4 - }, +/turf/open/gm/river/desert/shallow_edge/east, /area/desert_dam/exterior/river/riverside_south) "aM" = ( /obj/effect/blocker/toxic_water/Group_1, @@ -298,10 +216,7 @@ "aO" = ( /obj/effect/blocker/toxic_water/Group_1, /obj/structure/platform, -/turf/open/gm/river/desert/shallow_edge{ - icon_state = "shallow_edge"; - dir = 4 - }, +/turf/open/gm/river/desert/shallow_edge/east, /area/desert_dam/exterior/river/riverside_south) "aP" = ( /obj/effect/blocker/toxic_water/Group_1, @@ -332,41 +247,26 @@ /area/desert_dam/exterior/river/riverside_south) "aU" = ( /obj/effect/blocker/toxic_water/Group_1, -/turf/open/gm/river/desert/shallow_edge/covered{ - icon_state = "shallow_edge"; - dir = 5 - }, +/turf/open/gm/river/desert/shallow_edge/covered/northeast, /area/desert_dam/exterior/river/riverside_south) "aV" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached4" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached4, /area/desert_dam/exterior/river/riverside_south) "aW" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached4" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached4, /area/desert_dam/exterior/valley/valley_medical) "aX" = ( /obj/effect/blocker/toxic_water/Group_1, -/turf/open/gm/river/desert/shallow_edge/covered{ - dir = 4 - }, +/turf/open/gm/river/desert/shallow_edge/covered/east, /area/desert_dam/exterior/river/riverside_south) "aY" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached12" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached12, /area/desert_dam/exterior/river/riverside_south) "aZ" = ( /obj/effect/decal/sand_overlay/sand1{ - dir = 8; - icon = 'icons/turf/overlays.dmi'; - icon_state = "sand1_s" - }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached15" + dir = 8 }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached15, /area/desert_dam/exterior/valley/valley_medical) "ba" = ( /obj/effect/blocker/toxic_water/Group_1, @@ -390,10 +290,7 @@ /obj/structure/platform{ dir = 1 }, -/turf/open/gm/river/desert/shallow_edge{ - icon_state = "shallow_edge"; - dir = 5 - }, +/turf/open/gm/river/desert/shallow_edge/northeast, /area/desert_dam/exterior/river/riverside_south) "bd" = ( /obj/effect/blocker/toxic_water/Group_1, @@ -411,30 +308,21 @@ /area/desert_dam/exterior/river/riverside_south) "bf" = ( /obj/effect/blocker/toxic_water/Group_1, -/turf/open/gm/river/desert/shallow_edge{ - icon_state = "shallow_edge"; - dir = 1 - }, +/turf/open/gm/river/desert/shallow_edge/north, /area/desert_dam/exterior/river/riverside_south) "bg" = ( /obj/effect/blocker/toxic_water/Group_1, /obj/structure/platform{ dir = 4 }, -/turf/open/gm/river/desert/shallow_corner{ - icon_state = "shallow_c"; - dir = 8 - }, +/turf/open/gm/river/desert/shallow_corner/west, /area/desert_dam/exterior/river/riverside_south) "bh" = ( /obj/effect/blocker/toxic_water/Group_1, /obj/structure/platform{ dir = 4 }, -/turf/open/gm/river/desert/shallow_edge{ - icon_state = "shallow_edge"; - dir = 10 - }, +/turf/open/gm/river/desert/shallow_edge/southwest, /area/desert_dam/exterior/river/riverside_south) "bi" = ( /obj/effect/blocker/toxic_water/Group_1, @@ -445,10 +333,7 @@ /obj/structure/platform{ dir = 8 }, -/turf/open/gm/river/desert/shallow_corner{ - icon_state = "shallow_c"; - dir = 8 - }, +/turf/open/gm/river/desert/shallow_corner/west, /area/desert_dam/exterior/river/riverside_south) "bk" = ( /obj/effect/blocker/toxic_water/Group_1, @@ -465,10 +350,7 @@ /obj/structure/platform{ dir = 8 }, -/turf/open/gm/river/desert/shallow_edge{ - icon_state = "shallow_edge"; - dir = 10 - }, +/turf/open/gm/river/desert/shallow_edge/southwest, /area/desert_dam/exterior/river/riverside_south) "bn" = ( /obj/effect/blocker/toxic_water/Group_1, @@ -476,10 +358,7 @@ /area/desert_dam/exterior/river/riverside_south) "bo" = ( /obj/effect/blocker/toxic_water/Group_1, -/turf/open/gm/river/desert/shallow_corner{ - icon_state = "shallow_c"; - dir = 8 - }, +/turf/open/gm/river/desert/shallow_corner/west, /area/desert_dam/exterior/river/riverside_south) "bp" = ( /obj/effect/blocker/toxic_water/Group_1, @@ -497,10 +376,7 @@ /area/desert_dam/exterior/river/riverside_south) "br" = ( /obj/effect/blocker/toxic_water/Group_1, -/turf/open/gm/river/desert/shallow_edge{ - icon_state = "shallow_edge"; - dir = 10 - }, +/turf/open/gm/river/desert/shallow_edge/southwest, /area/desert_dam/exterior/river/riverside_south) "bs" = ( /obj/structure/platform, @@ -525,33 +401,21 @@ /area/desert_dam/exterior/river/riverside_south) "bv" = ( /obj/structure/platform_decoration{ - icon_state = "platform_deco"; dir = 1 }, /obj/effect/blocker/toxic_water/Group_1, /turf/open/gm/river/desert/shallow, /area/desert_dam/exterior/river/riverside_south) "bw" = ( -/turf/open/asphalt{ - icon_state = "tile" - }, -/area/desert_dam/exterior/valley/valley_cargo) -"bx" = ( -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_cargo) "by" = ( /obj/structure/largecrate/random/barrel/blue, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_cargo) "bz" = ( /obj/structure/largecrate/random/barrel/white, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_cargo) "bA" = ( /obj/structure/platform{ diff --git a/maps/map_files/DesertDam/sprinkles/10.damtemple_intact.dmm b/maps/map_files/DesertDam/sprinkles/10.damtemple_intact.dmm index d0ebbc5039d5..4ebaf4fbb798 100644 --- a/maps/map_files/DesertDam/sprinkles/10.damtemple_intact.dmm +++ b/maps/map_files/DesertDam/sprinkles/10.damtemple_intact.dmm @@ -1,9 +1,7 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE "av" = ( /obj/structure/xenoautopsy/tank/alien, -/turf/open/shuttle{ - icon_state = "floor6" - }, +/turf/open/shuttle/red, /area/desert_dam/interior/caves/temple) "aZ" = ( /obj/structure/prop/brazier, @@ -25,10 +23,7 @@ /area/desert_dam/interior/caves/temple) "bE" = ( /obj/structure/machinery/optable, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/desert_dam/interior/caves/temple) "bJ" = ( /obj/structure/surface/table/reinforced/prison{ @@ -76,10 +71,7 @@ /obj/item/tank/nitrogen{ pixel_x = 5 }, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/desert_dam/interior/caves/temple) "fX" = ( /obj/structure/stairs/perspective{ @@ -115,10 +107,7 @@ name = "ancient clan mask"; pixel_y = 20 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/desert_dam/interior/caves/temple) "iM" = ( /obj/structure/surface/table/reinforced/prison{ @@ -139,14 +128,11 @@ /obj/structure/surface/table/reinforced/prison{ color = "#6b675e" }, -/obj/item/legcuffs/beartrap{ +/obj/item/restraint/legcuffs/beartrap{ pixel_x = -1; pixel_y = 8 }, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/desert_dam/interior/caves/temple) "ke" = ( /obj/structure/xenoautopsy/tank/larva, @@ -154,9 +140,7 @@ dir = 8; health = 80 }, -/turf/open/shuttle{ - icon_state = "floor6" - }, +/turf/open/shuttle/red, /area/desert_dam/interior/caves/temple) "kI" = ( /obj/structure/prop/brazier/torch, @@ -169,10 +153,7 @@ /turf/open/floor/sandstone/runed, /area/desert_dam/interior/caves/temple) "mA" = ( -/turf/open/desert/dirt{ - dir = 8; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/west, /area/desert_dam/exterior/valley/valley_crashsite) "mB" = ( /turf/open/floor/sandstone/runed, @@ -186,22 +167,14 @@ desc = "A long-barreled heavy plasma weapon capable of leveling down an entire building. This one seems to be damaged beyond use."; name = "damaged plasma rifle" }, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/desert_dam/interior/caves/temple) "mY" = ( -/turf/open/desert/dirt{ - icon_state = "rock1" - }, +/turf/open/desert/dirt/rock1, /area/desert_dam/exterior/valley/valley_crashsite) "oq" = ( /obj/structure/bed/chair/comfy/black, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/desert_dam/interior/caves/temple) "oH" = ( /obj/structure/surface/rack, @@ -219,16 +192,10 @@ /obj/item/stack/medical/advanced/ointment/predator{ pixel_x = 5 }, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/desert_dam/interior/caves/temple) "oR" = ( -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/desert_dam/interior/caves/temple) "pC" = ( /obj/structure/showcase{ @@ -251,10 +218,7 @@ icon_state = "pred_mask12_ebony"; unacidable = 0 }, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/desert_dam/interior/caves/temple) "qv" = ( /obj/effect/decal/remains/xeno{ @@ -268,10 +232,7 @@ /area/desert_dam/interior/caves/central_caves) "qV" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/desert/dirt{ - dir = 8; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/west, /area/desert_dam/exterior/valley/valley_crashsite) "re" = ( /obj/structure/platform_decoration/mineral/sandstone/runed{ @@ -304,25 +265,13 @@ name = "ancient katana"; unacidable = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/desert_dam/interior/caves/temple) "rI" = ( /obj/structure/surface/table/reinforced/prison{ color = "#6b675e" }, -/obj/item/XenoItem/AntiAcid{ - pixel_x = -6 - }, -/obj/item/XenoItem/AntiAcid{ - pixel_x = 4 - }, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/desert_dam/interior/caves/temple) "td" = ( /turf/open/desert/rock, @@ -336,10 +285,7 @@ "tq" = ( /obj/structure/closet/coffin/predator, /obj/item/storage/large_holster/katana, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/desert_dam/interior/caves/temple) "uK" = ( /obj/structure/machinery/door/airlock/sandstone/runed{ @@ -353,9 +299,7 @@ dir = 9; icon_state = "p_stair_full" }, -/turf/open/desert/dirt{ - icon_state = "dirt2" - }, +/turf/open/desert/dirt/dirt2, /area/desert_dam/exterior/valley/valley_crashsite) "vb" = ( /obj/structure/stairs/perspective{ @@ -363,9 +307,7 @@ dir = 8; icon_state = "p_stair_full" }, -/turf/open/desert/dirt{ - icon_state = "rock1" - }, +/turf/open/desert/dirt/rock1, /area/desert_dam/exterior/valley/valley_crashsite) "vY" = ( /obj/structure/surface/table/reinforced/prison{ @@ -419,10 +361,7 @@ /turf/open/floor/sandstone/runed, /area/desert_dam/interior/caves/temple) "AU" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/desert_dam/interior/caves/temple) "Bm" = ( /obj/structure/surface/rack{ @@ -434,15 +373,10 @@ /obj/item/stack/sheet/mineral/platinum{ amount = 50 }, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/desert_dam/interior/caves/temple) "Co" = ( -/turf/open/desert/dirt{ - icon_state = "dirt2" - }, +/turf/open/desert/dirt/dirt2, /area/desert_dam/exterior/valley/valley_crashsite) "Dc" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, @@ -486,9 +420,7 @@ /area/desert_dam/interior/caves/temple) "GX" = ( /obj/structure/xenoautopsy/tank/hugger, -/turf/open/shuttle{ - icon_state = "floor6" - }, +/turf/open/shuttle/red, /area/desert_dam/interior/caves/temple) "Hj" = ( /obj/structure/surface/rack{ @@ -500,10 +432,7 @@ name = "strange jelly" }, /obj/item/xeno_egg, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/desert_dam/interior/caves/temple) "Ix" = ( /obj/structure/surface/rack{ @@ -512,10 +441,7 @@ }, /obj/item/tool/weldingtool, /obj/item/clothing/glasses/welding/superior, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/desert_dam/interior/caves/temple) "IV" = ( /obj/effect/decal/cleanable/cobweb{ @@ -539,10 +465,7 @@ desc = "A bizarre alien device used for trapping and killing prey."; name = "Alien Mine" }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/desert_dam/interior/caves/temple) "Jh" = ( /obj/structure/surface/table/reinforced/prison{ @@ -568,10 +491,7 @@ /area/desert_dam/interior/caves/temple) "JP" = ( /obj/structure/xenoautopsy/tank, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/desert_dam/interior/caves/temple) "JU" = ( /obj/structure/platform/mineral/sandstone/runed, @@ -579,10 +499,7 @@ /area/desert_dam/interior/caves/temple) "JZ" = ( /obj/structure/machinery/autolathe/yautja, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/desert_dam/interior/caves/temple) "Kj" = ( /obj/structure/surface/table/reinforced/prison{ @@ -593,10 +510,7 @@ /area/desert_dam/interior/caves/temple) "KA" = ( /obj/structure/closet/coffin/predator, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/desert_dam/interior/caves/temple) "Li" = ( /turf/open/gm/river/desert/deep, @@ -618,10 +532,7 @@ /obj/item/tool/surgery/bonesetter/predatorbonesetter, /obj/item/tool/surgery/bonegel/predatorbonegel, /obj/item/tool/surgery/FixOVein/predatorFixOVein, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/desert_dam/interior/caves/temple) "MH" = ( /turf/closed/wall/mineral/sandstone/runed, @@ -653,9 +564,7 @@ dir = 8; health = 80 }, -/turf/open/shuttle{ - icon_state = "floor6" - }, +/turf/open/shuttle/red, /area/desert_dam/interior/caves/temple) "Ps" = ( /obj/structure/bed/chair/comfy/beige{ @@ -685,10 +594,7 @@ /obj/structure/machinery/door/window{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/desert_dam/interior/caves/temple) "SD" = ( /obj/structure/platform_decoration/mineral/sandstone/runed, @@ -696,10 +602,7 @@ /area/desert_dam/interior/caves/temple) "TO" = ( /obj/structure/xenoautopsy, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/desert_dam/interior/caves/temple) "TU" = ( /obj/structure/platform_decoration/mineral/sandstone/runed{ @@ -714,10 +617,7 @@ dir = 4; name = "plasma power generator" }, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/desert_dam/interior/caves/temple) "Vz" = ( /turf/closed/wall/mineral/sandstone/runed{ @@ -726,10 +626,7 @@ /area/desert_dam/interior/caves/temple) "WM" = ( /obj/structure/curtain/red, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/desert_dam/interior/caves/temple) "WV" = ( /obj/structure/prop/brazier/torch, @@ -743,10 +640,7 @@ /turf/open/floor/sandstone/runed, /area/desert_dam/interior/caves/temple) "ZI" = ( -/turf/open/desert/dirt{ - dir = 4; - icon_state = "desert_transition_corner1" - }, +/turf/open/desert/dirt/desert_transition_corner1/east, /area/desert_dam/exterior/valley/valley_crashsite) (1,1,1) = {" diff --git a/maps/map_files/DesertDam/sprinkles/15.shipgone_northlz.dmm b/maps/map_files/DesertDam/sprinkles/15.shipgone_northlz.dmm index 4d9a42777155..f6b5b1e368f2 100644 --- a/maps/map_files/DesertDam/sprinkles/15.shipgone_northlz.dmm +++ b/maps/map_files/DesertDam/sprinkles/15.shipgone_northlz.dmm @@ -3,47 +3,29 @@ /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/template_noop) "h" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/template_noop) "i" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" }, /obj/structure/largecrate/supply/floodlights, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/template_noop) "j" = ( /obj/structure/powerloader_wreckage, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/template_noop) "u" = ( /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/template_noop) "x" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/template_noop) "D" = ( /turf/template_noop, @@ -53,40 +35,28 @@ icon_state = "S" }, /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/east, /area/template_noop) "K" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/west, /area/template_noop) "L" = ( /obj/structure/largecrate/random/case/small, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/template_noop) "O" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/east, /area/template_noop) "R" = ( -/obj/item/fuelCell{ +/obj/item/fuel_cell{ fuel_amount = 0; icon_state = "cell-empty"; pixel_x = 7 }, -/obj/item/fuelCell{ +/obj/item/fuel_cell{ fuel_amount = 0; icon_state = "cell-empty"; pixel_x = -7; @@ -99,10 +69,7 @@ /turf/template_noop, /area/template_noop) "Y" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/west, /area/template_noop) "Z" = ( /obj/structure/largecrate/random/barrel, diff --git a/maps/map_files/DesertDam/standalone/crashlanding-upp-alt1.dmm b/maps/map_files/DesertDam/standalone/crashlanding-upp-alt1.dmm index b707028441cf..3cdefd6579ad 100644 --- a/maps/map_files/DesertDam/standalone/crashlanding-upp-alt1.dmm +++ b/maps/map_files/DesertDam/standalone/crashlanding-upp-alt1.dmm @@ -5,9 +5,7 @@ pixel_y = -5 }, /obj/effect/decal/cleanable/dirt, -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_up_to_down, /area/desert_dam/exterior/valley/valley_civilian) "bz" = ( /turf/closed/shuttle/ert{ @@ -29,9 +27,7 @@ /area/desert_dam/exterior/valley/valley_civilian) "cp" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached12" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached12, /area/desert_dam/exterior/valley/valley_civilian) "cG" = ( /obj/structure/flora/grass/desert/lightgrass_9, @@ -50,14 +46,10 @@ "dN" = ( /obj/structure/flora/grass/desert/lightgrass_1, /obj/effect/decal/cleanable/blood/oil, -/turf/open/mars{ - icon_state = "mars_dirt_5" - }, +/turf/open/mars/mars_dirt_5, /area/desert_dam/exterior/valley/valley_civilian) "dP" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached18" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached18, /area/desert_dam/exterior/valley/valley_civilian) "eb" = ( /obj/effect/spawner/gibspawner/human, @@ -70,10 +62,7 @@ }, /area/desert_dam/exterior/valley/valley_civilian) "eF" = ( -/turf/open/desert/dirt{ - dir = 6; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/southeast, /area/desert_dam/exterior/valley/valley_civilian) "fa" = ( /turf/closed/shuttle/ert{ @@ -84,17 +73,13 @@ "fg" = ( /obj/effect/decal/cleanable/blood, /obj/effect/decal/cleanable/dirt, -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_up_to_down, /area/desert_dam/exterior/valley/valley_civilian) "fp" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 1 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached12" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached12, /area/desert_dam/exterior/valley/valley_civilian) "ft" = ( /turf/closed/wall, @@ -123,9 +108,7 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 4 }, -/turf/open/mars{ - icon_state = "mars_dirt_5" - }, +/turf/open/mars/mars_dirt_5, /area/desert_dam/exterior/valley/valley_civilian) "hK" = ( /obj/structure/prop/invuln/fire{ @@ -158,30 +141,22 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 5 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached18" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached18, /area/desert_dam/exterior/valley/valley_civilian) "jN" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached19" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached19, /area/desert_dam/exterior/valley/valley_civilian) "jU" = ( /obj/effect/decal/cleanable/blood/splatter, /obj/effect/decal/cleanable/dirt, -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_up_to_down, /area/desert_dam/exterior/valley/valley_civilian) "jX" = ( /obj/effect/decal/sand_overlay/sand1, -/turf/open/mars{ - icon_state = "mars_dirt_5" - }, +/turf/open/mars/mars_dirt_5, /area/desert_dam/exterior/valley/valley_civilian) "kd" = ( /turf/closed/shuttle/ert{ @@ -192,9 +167,7 @@ /area/desert_dam/exterior/valley/valley_civilian) "kV" = ( /obj/structure/flora/grass/desert/lightgrass_2, -/turf/open/mars{ - icon_state = "mars_dirt_5" - }, +/turf/open/mars/mars_dirt_5, /area/desert_dam/exterior/valley/valley_civilian) "la" = ( /turf/closed/wall/rock/orange, @@ -211,30 +184,20 @@ /obj/item/explosive/grenade/high_explosive/upp, /obj/item/explosive/grenade/high_explosive/upp, /obj/item/explosive/grenade/high_explosive/upp, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/desert_dam/exterior/valley/valley_civilian) "mt" = ( /obj/structure/machinery/light/double{ dir = 8 }, /obj/effect/decal/cleanable/dirt, -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_up_to_down, /area/desert_dam/exterior/valley/valley_civilian) "mw" = ( -/turf/open/desert/dirt{ - dir = 10; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/southwest, /area/desert_dam/exterior/valley/valley_civilian) "mM" = ( -/turf/open/desert/dirt{ - dir = 9; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/northwest, /area/desert_dam/exterior/valley/valley_civilian) "mN" = ( /obj/structure/desertdam/decals/road_edge{ @@ -249,17 +212,13 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 6 }, -/turf/open/mars{ - icon_state = "mars_dirt_5" - }, +/turf/open/mars/mars_dirt_5, /area/desert_dam/exterior/valley/valley_civilian) "nj" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 4 }, -/turf/open/mars{ - icon_state = "mars_dirt_5" - }, +/turf/open/mars/mars_dirt_5, /area/desert_dam/exterior/valley/valley_civilian) "nn" = ( /obj/structure/desertdam/decals/road_edge{ @@ -283,9 +242,7 @@ /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 8 }, -/turf/open/mars{ - icon_state = "mars_dirt_5" - }, +/turf/open/mars/mars_dirt_5, /area/desert_dam/exterior/valley/valley_civilian) "nX" = ( /turf/open/desert/dirt, @@ -297,21 +254,15 @@ "oj" = ( /obj/effect/decal/cleanable/blood/splatter, /obj/effect/decal/cleanable/dirt, -/turf/open/shuttle/dropship{ - icon_state = "rasputin4" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_bottom_left, /area/desert_dam/exterior/valley/valley_civilian) "os" = ( /obj/effect/decal/cleanable/blood/splatter, -/turf/open/shuttle/dropship{ - icon_state = "rasputin5" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_left_to_right, /area/desert_dam/exterior/valley/valley_civilian) "oL" = ( /obj/effect/decal/cleanable/blood, -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_up_to_down, /area/desert_dam/exterior/valley/valley_civilian) "oX" = ( /obj/structure/desertdam/decals/road_edge{ @@ -337,14 +288,10 @@ /obj/item/ammo_magazine/rifle/type71/ap, /obj/item/ammo_magazine/rifle/type71/ap, /obj/item/ammo_magazine/rifle/type71/ap, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/desert_dam/exterior/valley/valley_civilian) "sl" = ( -/turf/open/desert/dirt{ - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1, /area/desert_dam/exterior/valley/valley_civilian) "ss" = ( /obj/structure/flora/bush/desert/cactus/multiple{ @@ -397,9 +344,7 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 9 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached12" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached12, /area/desert_dam/exterior/valley/valley_civilian) "vz" = ( /obj/structure/closet/crate/ammo, @@ -415,9 +360,7 @@ /obj/item/ammo_magazine/rifle/type71, /obj/item/weapon/gun/rifle/type71, /obj/item/weapon/gun/rifle/type71, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/desert_dam/exterior/valley/valley_civilian) "vJ" = ( /obj/structure/prop/invuln/fire, @@ -434,9 +377,7 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 5 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_civilian) "xp" = ( /obj/structure/desertdam/decals/road_edge{ @@ -448,18 +389,14 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 1 }, -/turf/open/mars{ - icon_state = "mars_dirt_5" - }, +/turf/open/mars/mars_dirt_5, /area/desert_dam/exterior/valley/valley_civilian) "xz" = ( /obj/structure/girder/displaced, /turf/open/floor/plating, /area/desert_dam/exterior/valley/valley_civilian) "xE" = ( -/turf/open/shuttle/dropship{ - icon_state = "rasputin7" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_top_right, /area/desert_dam/exterior/valley/valley_civilian) "xK" = ( /obj/effect/decal/cleanable/dirt, @@ -475,9 +412,7 @@ /area/desert_dam/exterior/valley/valley_civilian) "xP" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/shuttle/dropship{ - icon_state = "rasputin5" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_left_to_right, /area/desert_dam/exterior/valley/valley_civilian) "yl" = ( /turf/closed/shuttle/ert{ @@ -487,9 +422,7 @@ /area/desert_dam/exterior/valley/valley_civilian) "ym" = ( /obj/effect/decal/cleanable/blood/splatter, -/turf/open/mars{ - icon_state = "mars_dirt_5" - }, +/turf/open/mars/mars_dirt_5, /area/desert_dam/exterior/valley/valley_civilian) "yU" = ( /obj/structure/prop/invuln/fire{ @@ -505,9 +438,7 @@ /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 1 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached12" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached12, /area/desert_dam/exterior/valley/valley_civilian) "zE" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ @@ -519,9 +450,7 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 4 }, -/turf/open/mars{ - icon_state = "mars_dirt_5" - }, +/turf/open/mars/mars_dirt_5, /area/desert_dam/exterior/valley/valley_civilian) "zO" = ( /obj/effect/decal/sand_overlay/sand1{ @@ -530,23 +459,16 @@ /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 8 }, -/turf/open/mars{ - icon_state = "mars_dirt_5" - }, +/turf/open/mars/mars_dirt_5, /area/desert_dam/exterior/valley/valley_civilian) "As" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 10 }, -/turf/open/mars{ - icon_state = "mars_dirt_5" - }, +/turf/open/mars/mars_dirt_5, /area/desert_dam/exterior/valley/valley_civilian) "AW" = ( -/turf/open/desert/dirt{ - dir = 1; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/north, /area/desert_dam/exterior/valley/valley_civilian) "Bk" = ( /turf/closed/shuttle/ert{ @@ -565,9 +487,7 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 9 }, -/turf/open/mars{ - icon_state = "mars_dirt_5" - }, +/turf/open/mars/mars_dirt_5, /area/desert_dam/exterior/valley/valley_civilian) "BM" = ( /obj/structure/flora/grass/desert/lightgrass_3, @@ -577,9 +497,7 @@ /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached18" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached18, /area/desert_dam/exterior/valley/valley_civilian) "BY" = ( /obj/structure/desertdam/decals/road_edge{ @@ -598,15 +516,11 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 4 }, -/turf/open/mars{ - icon_state = "mars_dirt_5" - }, +/turf/open/mars/mars_dirt_5, /area/desert_dam/exterior/valley/valley_civilian) "CL" = ( /obj/structure/bed/chair/dropship/passenger, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/desert_dam/exterior/valley/valley_civilian) "Dd" = ( /obj/structure/prop/invuln/fire{ @@ -622,9 +536,7 @@ "DO" = ( /obj/structure/flora/grass/desert/lightgrass_9, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/mars{ - icon_state = "mars_dirt_5" - }, +/turf/open/mars/mars_dirt_5, /area/desert_dam/exterior/valley/valley_civilian) "Eh" = ( /obj/structure/flora/grass/desert/lightgrass_1, @@ -633,9 +545,7 @@ "EF" = ( /obj/effect/decal/sand_overlay/sand1, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/mars{ - icon_state = "mars_dirt_5" - }, +/turf/open/mars/mars_dirt_5, /area/desert_dam/exterior/valley/valley_civilian) "EL" = ( /obj/structure/flora/grass/desert/lightgrass_2, @@ -655,9 +565,7 @@ /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 4 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_civilian) "Gt" = ( /turf/closed/shuttle/ert{ @@ -674,10 +582,7 @@ }, /area/desert_dam/exterior/valley/valley_civilian) "Ho" = ( -/turf/open/desert/dirt{ - dir = 8; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/west, /area/desert_dam/exterior/valley/valley_civilian) "Hs" = ( /obj/structure/prop/invuln/fire{ @@ -720,9 +625,7 @@ dir = 4 }, /obj/effect/decal/sand_overlay/sand1/corner1, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_civilian) "Jy" = ( /obj/structure/prop/invuln/fire, @@ -754,18 +657,13 @@ }, /area/desert_dam/exterior/valley/valley_civilian) "KC" = ( -/turf/open/desert/dirt{ - dir = 8; - icon_state = "desert_transition_corner1" - }, +/turf/open/desert/dirt/desert_transition_corner1/west, /area/desert_dam/exterior/valley/valley_civilian) "KX" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached13" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached13, /area/desert_dam/exterior/valley/valley_civilian) "Lc" = ( /obj/structure/desertdam/decals/road_edge{ @@ -795,9 +693,7 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached15" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached15, /area/desert_dam/exterior/valley/valley_civilian) "LD" = ( /obj/structure/flora/grass/tallgrass/desert/corner{ @@ -809,17 +705,13 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 8 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_civilian) "Mp" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 5 }, -/turf/open/mars{ - icon_state = "mars_dirt_5" - }, +/turf/open/mars/mars_dirt_5, /area/desert_dam/exterior/valley/valley_civilian) "MM" = ( /turf/closed/shuttle/ert{ @@ -838,9 +730,7 @@ /obj/structure/closet/crate/ammo, /obj/item/ammo_magazine/pkp, /obj/item/weapon/gun/pkp, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/desert_dam/exterior/valley/valley_civilian) "NP" = ( /turf/closed/shuttle/ert{ @@ -866,23 +756,17 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 4 }, -/turf/open/mars{ - icon_state = "mars_dirt_5" - }, +/turf/open/mars/mars_dirt_5, /area/desert_dam/exterior/valley/valley_civilian) "OG" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_up_to_down, /area/desert_dam/exterior/valley/valley_civilian) "OJ" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 9 }, -/turf/open/mars{ - icon_state = "mars_dirt_5" - }, +/turf/open/mars/mars_dirt_5, /area/desert_dam/exterior/valley/valley_civilian) "Pc" = ( /obj/structure/desertdam/decals/road_edge{ @@ -914,40 +798,30 @@ dir = 5 }, /obj/effect/spawner/gibspawner/human, -/turf/open/mars{ - icon_state = "mars_dirt_5" - }, +/turf/open/mars/mars_dirt_5, /area/desert_dam/exterior/valley/valley_civilian) "Qj" = ( /obj/structure/machinery/colony_floodlight, /turf/open/desert/dirt, /area/desert_dam/exterior/valley/valley_civilian) "Rq" = ( -/turf/open/shuttle/dropship{ - icon_state = "rasputin6" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_top_left, /area/desert_dam/exterior/valley/valley_civilian) "Ry" = ( /obj/effect/decal/cleanable/blood/splatter, -/turf/open/shuttle/dropship{ - icon_state = "rasputin8" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_bottom_right, /area/desert_dam/exterior/valley/valley_civilian) "RG" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 9 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_civilian) "Sb" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 8 }, -/turf/open/mars{ - icon_state = "mars_dirt_5" - }, +/turf/open/mars/mars_dirt_5, /area/desert_dam/exterior/valley/valley_civilian) "Sf" = ( /turf/closed/shuttle/ert{ @@ -967,16 +841,12 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 10 }, -/turf/open/mars{ - icon_state = "mars_dirt_5" - }, +/turf/open/mars/mars_dirt_5, /area/desert_dam/exterior/valley/valley_civilian) "SN" = ( /obj/effect/spawner/gibspawner/human, /obj/effect/decal/cleanable/dirt, -/turf/open/shuttle/dropship{ - icon_state = "rasputin5" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_left_to_right, /area/desert_dam/exterior/valley/valley_civilian) "SV" = ( /obj/structure/prop/invuln/fire{ @@ -1014,9 +884,7 @@ pixel_y = 21 }, /obj/effect/decal/cleanable/dirt, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/medium_grey_single_wide_up_to_down, /area/desert_dam/exterior/valley/valley_civilian) "UB" = ( /obj/structure/prop/invuln/fire{ @@ -1034,9 +902,7 @@ dir = 8 }, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/mars{ - icon_state = "mars_dirt_5" - }, +/turf/open/mars/mars_dirt_5, /area/desert_dam/exterior/valley/valley_civilian) "VD" = ( /obj/structure/flora/bush/desert/cactus{ @@ -1054,45 +920,33 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached2" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached2, /area/desert_dam/exterior/valley/valley_civilian) "Wy" = ( -/turf/open/shuttle/dropship{ - icon_state = "rasputin5" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_left_to_right, /area/desert_dam/exterior/valley/valley_civilian) "WU" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 1 }, -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_civilian) "WW" = ( -/turf/open/asphalt{ - icon_state = "tile" - }, +/turf/open/asphalt/tile, /area/desert_dam/exterior/valley/valley_civilian) "Xn" = ( /obj/effect/decal/sand_overlay/sand1, /obj/effect/decal/sand_overlay/sand1{ dir = 9 }, -/turf/open/mars{ - icon_state = "mars_dirt_5" - }, +/turf/open/mars/mars_dirt_5, /area/desert_dam/exterior/valley/valley_civilian) "Xq" = ( /turf/template_noop, /area/template_noop) "XT" = ( /obj/structure/flora/tree/joshua, -/turf/open/mars{ - icon_state = "mars_dirt_5" - }, +/turf/open/mars/mars_dirt_5, /area/desert_dam/exterior/valley/valley_civilian) "Yr" = ( /turf/closed/shuttle/ert{ @@ -1102,9 +956,7 @@ }, /area/desert_dam/exterior/valley/valley_civilian) "Yv" = ( -/turf/open/mars{ - icon_state = "mars_dirt_5" - }, +/turf/open/mars/mars_dirt_5, /area/desert_dam/exterior/valley/valley_civilian) "YD" = ( /obj/structure/fence, @@ -1114,9 +966,7 @@ /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 1 }, -/turf/open/mars{ - icon_state = "mars_dirt_5" - }, +/turf/open/mars/mars_dirt_5, /area/desert_dam/exterior/valley/valley_civilian) "Zm" = ( /obj/structure/flora/grass/tallgrass/desert, diff --git a/maps/map_files/DesertDam/standalone/crashlanding-upp-bar.dmm b/maps/map_files/DesertDam/standalone/crashlanding-upp-bar.dmm index 7928c7f06b71..61bc40a64e52 100644 --- a/maps/map_files/DesertDam/standalone/crashlanding-upp-bar.dmm +++ b/maps/map_files/DesertDam/standalone/crashlanding-upp-bar.dmm @@ -29,16 +29,11 @@ dir = 4 }, /obj/item/ammo_casing/bullet, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached12" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached12, /area/desert_dam/exterior/valley/bar_valley_dam) "aO" = ( /obj/item/prop/colony/used_flare, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/desert_dam/building/bar/bar) "aT" = ( /turf/closed/shuttle/ert{ @@ -51,9 +46,7 @@ /obj/item/reagent_container/food/drinks/flask/canteen{ desc = "You take a sip from your trusty UPP canteen..." }, -/turf/open/mars{ - icon_state = "mars_dirt_5" - }, +/turf/open/mars/mars_dirt_5, /area/desert_dam/exterior/valley/bar_valley_dam) "be" = ( /obj/structure/closet/secure_closet/bar, @@ -67,9 +60,7 @@ /area/desert_dam/exterior/valley/bar_valley_dam) "bu" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "grimy" - }, +/turf/open/floor/grimy, /area/desert_dam/building/bar/bar) "bz" = ( /obj/structure/bed/roller, @@ -79,9 +70,7 @@ dir = 5 }, /obj/effect/spawner/gibspawner/human, -/turf/open/shuttle/dropship{ - icon_state = "rasputin6" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_top_left, /area/desert_dam/building/bar/bar) "bC" = ( /obj/structure/barricade/sandbags/wired{ @@ -91,10 +80,7 @@ /area/desert_dam/building/bar/backroom) "bI" = ( /obj/item/ammo_casing/bullet, -/turf/open/desert/dirt{ - dir = 5; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/northeast, /area/desert_dam/exterior/valley/bar_valley_dam) "bJ" = ( /obj/structure/disposalpipe/segment{ @@ -133,9 +119,7 @@ /turf/open/asphalt, /area/desert_dam/exterior/valley/bar_valley_dam) "cu" = ( -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_up_to_down, /area/desert_dam/building/bar/bar) "cH" = ( /obj/item/stack/sheet/metal, @@ -156,20 +140,14 @@ network = null; pixel_y = 21 }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/medium_grey_single_wide_up_to_down, /area/desert_dam/building/bar/bar) "cR" = ( /obj/effect/landmark/crap_item, -/turf/open/mars{ - icon_state = "mars_dirt_5" - }, +/turf/open/mars/mars_dirt_5, /area/desert_dam/exterior/valley/bar_valley_dam) "cZ" = ( -/turf/open/asphalt/cement{ - icon_state = "cement2" - }, +/turf/open/asphalt/cement/cement2, /area/desert_dam/interior/dam_interior/south_tunnel_entrance) "da" = ( /obj/structure/flora/grass/desert/heavygrass_4, @@ -185,15 +163,11 @@ /area/desert_dam/building/bar/bar) "du" = ( /obj/item/stack/rods, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3, /area/desert_dam/building/bar/backroom) "dJ" = ( /obj/effect/decal/cleanable/blood/xeno, -/turf/open/asphalt/cement{ - icon_state = "cement14" - }, +/turf/open/asphalt/cement/cement14, /area/desert_dam/interior/dam_interior/south_tunnel_entrance) "dQ" = ( /obj/structure/desertdam/decals/road_edge{ @@ -202,18 +176,14 @@ /turf/open/asphalt, /area/desert_dam/exterior/valley/bar_valley_dam) "dR" = ( -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/desert_dam/interior/dam_interior/south_tunnel_entrance) "dX" = ( /obj/structure/surface/table/almayer, /obj/item/ammo_box/rounds/type71{ bullet_amount = 129 }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/medium_grey_single_wide_up_to_down, /area/desert_dam/building/bar/bar) "ee" = ( /obj/effect/decal/warning_stripes{ @@ -222,10 +192,7 @@ /turf/open/asphalt, /area/desert_dam/interior/dam_interior/south_tunnel_entrance) "eh" = ( -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/desert_dam/building/bar/bar_restroom) "ej" = ( /obj/structure/flora/grass/desert/lightgrass_2, @@ -285,18 +252,14 @@ icon_state = "paper_words"; item_state = "paper_words" }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/medium_grey_single_wide_up_to_down, /area/desert_dam/building/bar/bar) "fk" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 8 }, /obj/effect/decal/cleanable/blood/xeno, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached13" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached13, /area/desert_dam/exterior/valley/bar_valley_dam) "fy" = ( /obj/structure/flora/grass/desert/lightgrass_6, @@ -316,9 +279,7 @@ /area/desert_dam/exterior/valley/bar_valley_dam) "fM" = ( /obj/item/stack/rods, -/turf/open/floor{ - icon_state = "grimy" - }, +/turf/open/floor/grimy, /area/desert_dam/building/bar/bar) "fN" = ( /obj/structure/disposalpipe/segment, @@ -328,9 +289,7 @@ "fP" = ( /obj/structure/bed/bedroll, /obj/item/bedsheet/brown, -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_up_to_down, /area/desert_dam/building/bar/bar) "fR" = ( /obj/effect/decal/sand_overlay/sand1{ @@ -339,18 +298,14 @@ /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached13" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached13, /area/desert_dam/exterior/valley/bar_valley_dam) "ga" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 8 }, /obj/item/prop/colony/used_flare, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached13" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached13, /area/desert_dam/exterior/valley/bar_valley_dam) "gm" = ( /obj/structure/desertdam/decals/road_edge, @@ -363,9 +318,7 @@ /area/desert_dam/exterior/valley/bar_valley_dam) "gM" = ( /obj/item/trash/candy, -/turf/open/mars{ - icon_state = "mars_dirt_5" - }, +/turf/open/mars/mars_dirt_5, /area/desert_dam/exterior/valley/bar_valley_dam) "gN" = ( /obj/item/ammo_casing/bullet, @@ -378,16 +331,11 @@ /area/desert_dam/exterior/valley/bar_valley_dam) "gR" = ( /obj/effect/decal/sand_overlay/sand1, -/turf/open/mars{ - icon_state = "mars_dirt_5" - }, +/turf/open/mars/mars_dirt_5, /area/desert_dam/interior/dam_interior/south_tunnel_entrance) "hc" = ( /obj/structure/prop/dam/wide_boulder/boulder1, -/turf/open/desert/dirt{ - dir = 9; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/northwest, /area/desert_dam/exterior/valley/bar_valley_dam) "hd" = ( /obj/structure/flora/grass/desert/lightgrass_8, @@ -431,9 +379,7 @@ dir = 8 }, /obj/effect/landmark/survivor_spawner/upp_medic, -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_up_to_down, /area/desert_dam/building/bar/bar) "hH" = ( /obj/structure/desertdam/decals/road_edge{ @@ -448,9 +394,7 @@ /obj/item/ammo_box/rounds/type71/heap/empty{ bullet_amount = 0 }, -/turf/open/mars{ - icon_state = "mars_dirt_5" - }, +/turf/open/mars/mars_dirt_5, /area/desert_dam/exterior/valley/bar_valley_dam) "hO" = ( /obj/effect/decal/warning_stripes{ @@ -465,16 +409,11 @@ /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/bar/bar_restroom) "hY" = ( /obj/structure/bed/stool, -/turf/open/floor{ - icon_state = "grimy" - }, +/turf/open/floor/grimy, /area/desert_dam/building/bar/bar) "if" = ( /obj/effect/decal/cleanable/dirt, @@ -492,9 +431,7 @@ /turf/open/floor/plating, /area/desert_dam/building/bar/bar) "is" = ( -/turf/open/desert/dirt{ - icon_state = "desert_transition_corner1" - }, +/turf/open/desert/dirt/desert_transition_corner1, /area/desert_dam/exterior/valley/bar_valley_dam) "iy" = ( /turf/closed/wall/wood, @@ -509,10 +446,7 @@ /area/desert_dam/exterior/valley/bar_valley_dam) "iL" = ( /obj/structure/prop/dam/boulder/boulder1, -/turf/open/desert/dirt{ - dir = 1; - icon_state = "desert_transition_corner1" - }, +/turf/open/desert/dirt/desert_transition_corner1/north, /area/desert_dam/exterior/valley/bar_valley_dam) "iV" = ( /obj/effect/landmark/crap_item, @@ -533,9 +467,7 @@ "jj" = ( /obj/item/trash/cheesie, /obj/item/stack/sheet/wood, -/turf/open/floor{ - icon_state = "grimy" - }, +/turf/open/floor/grimy, /area/desert_dam/building/bar/bar) "jm" = ( /obj/effect/decal/sand_overlay/sand1, @@ -546,9 +478,7 @@ dir = 5; pixel_y = 8 }, -/turf/open/mars{ - icon_state = "mars_dirt_5" - }, +/turf/open/mars/mars_dirt_5, /area/desert_dam/exterior/valley/bar_valley_dam) "jp" = ( /obj/structure/desertdam/decals/road_edge, @@ -577,10 +507,7 @@ /area/desert_dam/building/bar/bar) "jw" = ( /obj/item/ammo_casing/bullet, -/turf/open/desert/dirt{ - dir = 6; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/southeast, /area/desert_dam/exterior/valley/bar_valley_dam) "jy" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony{ @@ -593,26 +520,20 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 4 }, -/turf/open/mars{ - icon_state = "mars_dirt_5" - }, +/turf/open/mars/mars_dirt_5, /area/desert_dam/exterior/valley/bar_valley_dam) "jI" = ( /obj/structure/barricade/sandbags/wired{ dir = 4 }, -/turf/open/desert/dirt{ - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1, /area/desert_dam/exterior/valley/bar_valley_dam) "jJ" = ( /obj/structure/flora/grass/desert/lightgrass_1, /turf/open/desert/dirt, /area/desert_dam/exterior/valley/bar_valley_dam) "kf" = ( -/turf/open/mars{ - icon_state = "mars_dirt_5" - }, +/turf/open/mars/mars_dirt_5, /area/desert_dam/exterior/valley/bar_valley_dam) "kh" = ( /obj/structure/desertdam/decals/road_edge{ @@ -623,33 +544,24 @@ /area/desert_dam/exterior/valley/bar_valley_dam) "ki" = ( /obj/item/stack/sandbags, -/turf/open/desert/dirt{ - dir = 10; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/southwest, /area/desert_dam/exterior/valley/bar_valley_dam) "kk" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached13" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached13, /area/desert_dam/exterior/valley/bar_valley_dam) "kp" = ( /obj/effect/decal/cleanable/blood, /obj/item/prop/almayer/flight_recorder/colony, -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_up_to_down, /area/desert_dam/building/bar/bar) "kB" = ( /obj/structure/barricade/sandbags/wired{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached14" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached14, /area/desert_dam/exterior/valley/bar_valley_dam) "kD" = ( /turf/open/desert/dirt, @@ -665,9 +577,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/plating{ - icon_state = "platingdmg1" - }, +/turf/open/floor/plating/platingdmg1, /area/desert_dam/building/bar/backroom) "ln" = ( /turf/open/desert/rock, @@ -677,37 +587,25 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 1 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached4" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached4, /area/desert_dam/exterior/valley/bar_valley_dam) "lT" = ( -/turf/open/desert/dirt{ - dir = 8; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/west, /area/desert_dam/exterior/valley/bar_valley_dam) "mb" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 6 }, -/turf/open/mars{ - icon_state = "mars_dirt_5" - }, +/turf/open/mars/mars_dirt_5, /area/desert_dam/exterior/valley/bar_valley_dam) "md" = ( /obj/item/ammo_magazine/rifle/type71/heap{ current_rounds = 0 }, -/turf/open/mars{ - icon_state = "mars_dirt_5" - }, +/turf/open/mars/mars_dirt_5, /area/desert_dam/exterior/valley/bar_valley_dam) "mf" = ( -/turf/open/desert/dirt{ - dir = 9; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/northwest, /area/desert_dam/exterior/valley/bar_valley_dam) "mq" = ( /obj/structure/flora/grass/tallgrass/desert/corner{ @@ -720,10 +618,7 @@ dir = 4 }, /obj/item/prop/colony/used_flare, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/desert_dam/building/bar/backroom) "mF" = ( /obj/structure/disposalpipe/segment, @@ -747,9 +642,7 @@ /turf/open/desert/dirt, /area/desert_dam/exterior/valley/bar_valley_dam) "mV" = ( -/turf/open/mars{ - icon_state = "mars_dirt_5" - }, +/turf/open/mars/mars_dirt_5, /area/desert_dam/building/bar/bar_restroom) "nk" = ( /turf/closed/shuttle/ert{ @@ -761,9 +654,7 @@ "np" = ( /obj/structure/flora/grass/desert/lightgrass_1, /obj/item/ammo_casing/bullet, -/turf/open/mars{ - icon_state = "mars_dirt_5" - }, +/turf/open/mars/mars_dirt_5, /area/desert_dam/exterior/valley/bar_valley_dam) "nt" = ( /obj/effect/decal/sand_overlay/sand1, @@ -776,9 +667,7 @@ "ny" = ( /obj/effect/decal/cleanable/blood, /obj/item/prop/almayer/comp_closed, -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_up_to_down, /area/desert_dam/building/bar/bar) "nz" = ( /obj/effect/decal/cleanable/dirt, @@ -790,17 +679,13 @@ /area/desert_dam/building/bar/bar) "nB" = ( /obj/effect/landmark/survivor_spawner/upp/soldier, -/turf/open/shuttle/dropship{ - icon_state = "rasputin5" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_left_to_right, /area/desert_dam/building/bar/bar) "nC" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /obj/item/stack/rods, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3, /area/desert_dam/building/bar/bar) "nD" = ( /obj/structure/flora/grass/desert/heavygrass_4, @@ -816,9 +701,7 @@ /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 1 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached1" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached1, /area/desert_dam/exterior/valley/bar_valley_dam) "oc" = ( /obj/structure/surface/table/reinforced, @@ -831,15 +714,11 @@ /area/desert_dam/building/bar/bar) "oo" = ( /obj/structure/flora/grass/desert/heavygrass_4, -/turf/open/mars{ - icon_state = "mars_dirt_5" - }, +/turf/open/mars/mars_dirt_5, /area/desert_dam/exterior/valley/bar_valley_dam) "oy" = ( /obj/effect/decal/sand_overlay/sand1, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached16" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached16, /area/desert_dam/exterior/valley/bar_valley_dam) "oD" = ( /obj/structure/machinery/vending/snack, @@ -850,9 +729,7 @@ /obj/item/ammo_magazine/rifle/type71/heap{ current_rounds = 0 }, -/turf/open/desert/dirt{ - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1, /area/desert_dam/exterior/valley/bar_valley_dam) "oK" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ @@ -861,24 +738,18 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 9 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached16" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached16, /area/desert_dam/interior/dam_interior/south_tunnel_entrance) "oN" = ( /obj/effect/decal/sand_overlay/sand1, /obj/item/ammo_casing/bullet, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached12" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached12, /area/desert_dam/exterior/valley/bar_valley_dam) "pk" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 10 }, -/turf/open/mars{ - icon_state = "mars_dirt_5" - }, +/turf/open/mars/mars_dirt_5, /area/desert_dam/exterior/valley/bar_valley_dam) "pq" = ( /obj/structure/desertdam/decals/road_edge{ @@ -888,10 +759,7 @@ /area/desert_dam/interior/dam_interior/south_tunnel_entrance) "pu" = ( /obj/structure/machinery/light/double, -/turf/open/desert/dirt{ - dir = 5; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/northeast, /area/desert_dam/interior/dam_interior/south_tunnel_entrance) "px" = ( /obj/structure/barricade/sandbags/wired{ @@ -905,24 +773,17 @@ dir = 2; name = "\improper Fulcrum Airlock" }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_up_to_down, /area/desert_dam/building/bar/bar) "pA" = ( /obj/effect/decal/cleanable/dirt, /obj/item/stack/rods, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/desert_dam/building/bar/bar) "pM" = ( /obj/structure/bed/chair/dropship/passenger, /obj/item/storage/belt/medical/lifesaver/upp, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/medium_grey_single_wide_up_to_down, /area/desert_dam/building/bar/bar) "pO" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -945,31 +806,21 @@ pixel_x = 5; pixel_y = 15 }, -/turf/open/mars{ - icon_state = "mars_dirt_5" - }, +/turf/open/mars/mars_dirt_5, /area/desert_dam/exterior/valley/bar_valley_dam) "qe" = ( /obj/structure/prop/dam/boulder/boulder3, -/turf/open/desert/dirt{ - dir = 8; - icon_state = "desert_transition_corner1" - }, +/turf/open/desert/dirt/desert_transition_corner1/west, /area/desert_dam/exterior/valley/bar_valley_dam) "qu" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 8 }, /obj/item/prop/colony/used_flare, -/turf/open/mars{ - icon_state = "mars_dirt_5" - }, +/turf/open/mars/mars_dirt_5, /area/desert_dam/exterior/valley/bar_valley_dam) "qx" = ( -/turf/open/desert/dirt{ - dir = 4; - icon_state = "desert_transition_corner1" - }, +/turf/open/desert/dirt/desert_transition_corner1/east, /area/desert_dam/exterior/valley/bar_valley_dam) "qS" = ( /turf/open/floor/interior/wood/alt, @@ -1000,22 +851,18 @@ /area/desert_dam/building/bar/bar) "rR" = ( /obj/structure/prop/dam/boulder/boulder1, -/turf/open/desert/dirt{ - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1, /area/desert_dam/exterior/valley/bar_valley_dam) "rX" = ( /obj/item/prop/colony/folded_bedroll, /obj/item/shard{ icon_state = "medium" }, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3, /area/desert_dam/building/bar/bar) "se" = ( /obj/item/trash/semki, -/turf/open/shuttle/dropship, +/turf/open/shuttle/dropship/can_surgery, /area/desert_dam/building/bar/bar) "sn" = ( /obj/structure/barricade/sandbags/wired{ @@ -1027,15 +874,11 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/desert_dam/interior/dam_interior/south_tunnel_entrance) "sp" = ( /obj/structure/machinery/cm_vending/sorted/boozeomat, -/turf/open/floor{ - icon_state = "grimy" - }, +/turf/open/floor/grimy, /area/desert_dam/building/bar/bar) "su" = ( /obj/structure/surface/table/reinforced, @@ -1048,25 +891,19 @@ "sv" = ( /obj/effect/decal/cleanable/dirt, /obj/item/tool/shovel, -/turf/open/mars{ - icon_state = "mars_dirt_5" - }, +/turf/open/mars/mars_dirt_5, /area/desert_dam/exterior/valley/bar_valley_dam) "sE" = ( /obj/structure/machinery/light/double{ dir = 4; pixel_y = -5 }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin7" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_top_right, /area/desert_dam/building/bar/bar) "sH" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/barricade/sandbags/wired, -/turf/open/mars{ - icon_state = "mars_dirt_5" - }, +/turf/open/mars/mars_dirt_5, /area/desert_dam/exterior/valley/bar_valley_dam) "sI" = ( /obj/structure/flora/grass/desert/lightgrass_5, @@ -1082,21 +919,15 @@ /area/desert_dam/exterior/valley/bar_valley_dam) "tl" = ( /obj/item/ammo_casing/bullet, -/turf/open/mars{ - icon_state = "mars_dirt_5" - }, +/turf/open/mars/mars_dirt_5, /area/desert_dam/exterior/valley/bar_valley_dam) "tu" = ( /obj/effect/decal/cleanable/blood, -/turf/open/shuttle/dropship{ - icon_state = "rasputin8" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_bottom_right, /area/desert_dam/building/bar/bar) "tA" = ( /obj/item/tool/wrench, -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_up_to_down, /area/desert_dam/building/bar/bar) "tE" = ( /obj/structure/flora/grass/desert/heavygrass_3, @@ -1107,9 +938,7 @@ /area/desert_dam/exterior/valley/bar_valley_dam) "tK" = ( /obj/structure/bed/bedroll, -/turf/open/mars{ - icon_state = "mars_dirt_5" - }, +/turf/open/mars/mars_dirt_5, /area/desert_dam/exterior/valley/bar_valley_dam) "tM" = ( /turf/closed/shuttle/ert{ @@ -1151,21 +980,14 @@ pixel_y = 7; icon = 'icons/obj/items/weapons/guns/guns_by_faction/upp.dmi' }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/medium_grey_single_wide_up_to_down, /area/desert_dam/building/bar/bar) "uF" = ( -/turf/open/desert/dirt{ - dir = 4; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/east, /area/desert_dam/exterior/valley/bar_valley_dam) "uZ" = ( /obj/item/roller, -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_up_to_down, /area/desert_dam/building/bar/bar) "vk" = ( /obj/structure/flora/grass/desert/lightgrass_9, @@ -1180,18 +1002,12 @@ /area/desert_dam/exterior/valley/bar_valley_dam) "vn" = ( /obj/item/prop/colony/used_flare, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/bar/bar_restroom) "vq" = ( /obj/structure/sink, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/bar/bar_restroom) "vy" = ( /obj/item/prop/colony/used_flare, @@ -1212,16 +1028,11 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 8 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached13" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached13, /area/desert_dam/exterior/valley/bar_valley_dam) "wj" = ( /obj/item/stack/sheet/metal, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/desert_dam/building/bar/bar) "wm" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -1232,9 +1043,7 @@ /area/desert_dam/building/bar/bar) "wp" = ( /obj/structure/flora/grass/desert/heavygrass_10, -/turf/open/mars{ - icon_state = "mars_dirt_5" - }, +/turf/open/mars/mars_dirt_5, /area/desert_dam/exterior/valley/bar_valley_dam) "wq" = ( /obj/structure/flora/grass/desert/lightgrass_2, @@ -1259,9 +1068,7 @@ /area/desert_dam/exterior/valley/bar_valley_dam) "wy" = ( /obj/item/trash/candy, -/turf/open/floor/plating{ - icon_state = "platingdmg1" - }, +/turf/open/floor/plating/platingdmg1, /area/desert_dam/building/bar/bar_restroom) "wE" = ( /obj/structure/girder, @@ -1273,14 +1080,10 @@ }, /obj/structure/bed/bedroll, /obj/item/reagent_container/food/drinks/bottle/vodka, -/turf/open/mars{ - icon_state = "mars_dirt_5" - }, +/turf/open/mars/mars_dirt_5, /area/desert_dam/exterior/valley/bar_valley_dam) "wJ" = ( -/turf/open/desert/dirt{ - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1, /area/desert_dam/exterior/valley/bar_valley_dam) "wO" = ( /obj/structure/barricade/sandbags/wired{ @@ -1301,9 +1104,7 @@ /obj/effect/decal/warning_stripes{ icon_state = "S-corner" }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/medium_grey_single_wide_up_to_down, /area/desert_dam/building/bar/bar) "xg" = ( /obj/structure/prop/dam/boulder/boulder1, @@ -1314,9 +1115,7 @@ dir = 1 }, /obj/effect/landmark/crap_item, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached4" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached4, /area/desert_dam/exterior/valley/bar_valley_dam) "xm" = ( /obj/effect/decal/cleanable/blood/xeno, @@ -1360,10 +1159,7 @@ start_charge = 0 }, /obj/effect/decal/cleanable/blood/xeno, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/desert_dam/interior/dam_interior/south_tunnel_entrance) "xN" = ( /turf/closed/shuttle/ert{ @@ -1374,10 +1170,7 @@ /area/desert_dam/building/bar/bar) "xP" = ( /obj/item/ammo_casing/bullet, -/turf/open/desert/dirt{ - dir = 9; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/northwest, /area/desert_dam/exterior/valley/bar_valley_dam) "xT" = ( /turf/template_noop, @@ -1397,9 +1190,7 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /obj/item/stack/sheet/wood, -/turf/open/floor{ - icon_state = "grimy" - }, +/turf/open/floor/grimy, /area/desert_dam/building/bar/bar) "yf" = ( /obj/effect/decal/warning_stripes{ @@ -1410,25 +1201,18 @@ /area/desert_dam/exterior/valley/bar_valley_dam) "yk" = ( /obj/structure/prop/dam/large_boulder/boulder2, -/turf/open/desert/dirt{ - dir = 6; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/southeast, /area/desert_dam/exterior/valley/bar_valley_dam) "ym" = ( /obj/item/stack/sandbags/large_stack, -/turf/open/mars{ - icon_state = "mars_dirt_5" - }, +/turf/open/mars/mars_dirt_5, /area/desert_dam/exterior/valley/bar_valley_dam) "yo" = ( /obj/effect/decal/cleanable/dirt, /obj/item/shard{ icon_state = "medium" }, -/turf/open/floor/plating{ - icon_state = "platingdmg1" - }, +/turf/open/floor/plating/platingdmg1, /area/desert_dam/building/bar/bar) "ys" = ( /obj/structure/flora/grass/tallgrass/desert/corner{ @@ -1454,7 +1238,7 @@ /obj/item/ammo_magazine/rifle/type71/heap{ current_rounds = 0 }, -/turf/open/shuttle/dropship, +/turf/open/shuttle/dropship/can_surgery, /area/desert_dam/building/bar/bar) "yG" = ( /obj/structure/desertdam/decals/road_edge{ @@ -1469,9 +1253,7 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 1 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached4" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached4, /area/desert_dam/exterior/valley/bar_valley_dam) "zl" = ( /obj/structure/disposalpipe/segment{ @@ -1487,10 +1269,7 @@ /obj/structure/machinery/light/double{ dir = 1 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/bar/bar_restroom) "zC" = ( /obj/structure/pipes/standard/manifold/hidden/green{ @@ -1506,21 +1285,13 @@ "zD" = ( /obj/structure/surface/table/woodentable, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "grimy" - }, +/turf/open/floor/grimy, /area/desert_dam/building/bar/bar) "zM" = ( -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/desert_dam/building/bar/bar) "zO" = ( -/turf/open/desert/dirt{ - dir = 10; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/southwest, /area/desert_dam/exterior/valley/bar_valley_dam) "zS" = ( /obj/structure/flora/grass/desert/heavygrass_4, @@ -1538,18 +1309,13 @@ /obj/structure/machinery/light/double{ dir = 1 }, -/turf/open/mars{ - icon_state = "mars_dirt_5" - }, +/turf/open/mars/mars_dirt_5, /area/desert_dam/exterior/valley/bar_valley_dam) "Ae" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/desert_dam/interior/dam_interior/south_tunnel_entrance) "Ah" = ( /obj/structure/barricade/wooden{ @@ -1579,10 +1345,7 @@ /obj/structure/barricade/sandbags/wired{ dir = 1 }, -/turf/open/desert/dirt{ - dir = 6; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/southeast, /area/desert_dam/exterior/valley/bar_valley_dam) "AT" = ( /turf/closed/shuttle/ert{ @@ -1598,16 +1361,12 @@ /obj/structure/machinery/light/double{ dir = 8 }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin6" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_top_left, /area/desert_dam/building/bar/bar) "Bu" = ( /obj/effect/decal/sand_overlay/sand1, /obj/effect/decal/cleanable/blood/xeno, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached12" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached12, /area/desert_dam/exterior/valley/bar_valley_dam) "Bx" = ( /obj/structure/surface/table/almayer, @@ -1626,9 +1385,7 @@ /obj/item/ammo_magazine/rifle/type71/heap{ current_rounds = 0 }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/medium_grey_single_wide_up_to_down, /area/desert_dam/building/bar/bar) "BB" = ( /turf/closed/shuttle/ert{ @@ -1645,17 +1402,12 @@ /obj/item/reagent_container/food/drinks/flask/canteen{ desc = "You take a sip from your trusty UPP canteen..." }, -/turf/open/mars{ - icon_state = "mars_dirt_5" - }, +/turf/open/mars/mars_dirt_5, /area/desert_dam/exterior/valley/bar_valley_dam) "BM" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/desert_dam/building/bar/bar) "BP" = ( /obj/structure/desertdam/decals/road_edge{ @@ -1676,10 +1428,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/desert_dam/building/bar/backroom) "Cc" = ( /obj/structure/desertdam/decals/road_edge{ @@ -1691,16 +1440,10 @@ /turf/open/asphalt, /area/desert_dam/exterior/valley/bar_valley_dam) "Ce" = ( -/turf/open/desert/dirt{ - dir = 8; - icon_state = "desert_transition_corner1" - }, +/turf/open/desert/dirt/desert_transition_corner1/west, /area/desert_dam/exterior/valley/bar_valley_dam) "Ch" = ( -/turf/open/desert/dirt{ - dir = 6; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/southeast, /area/desert_dam/exterior/valley/bar_valley_dam) "Cm" = ( /obj/structure/prop/invuln/lattice_prop{ @@ -1716,18 +1459,14 @@ /area/desert_dam/building/bar/bar) "Cn" = ( /obj/effect/landmark/survivor_spawner/upp/soldier, -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_up_to_down, /area/desert_dam/building/bar/bar) "Cx" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/sand_overlay/sand1{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached13" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached13, /area/desert_dam/exterior/valley/bar_valley_dam) "CA" = ( /turf/closed/shuttle/ert{ @@ -1744,9 +1483,7 @@ /area/desert_dam/exterior/valley/bar_valley_dam) "CH" = ( /obj/item/stack/sheet/metal, -/turf/open/floor/plating{ - icon_state = "platingdmg1" - }, +/turf/open/floor/plating/platingdmg1, /area/desert_dam/building/bar/bar_restroom) "CI" = ( /obj/effect/decal/sand_overlay/sand1{ @@ -1756,9 +1493,7 @@ pixel_y = 13 }, /obj/item/clothing/mask/cigarette/cigar, -/turf/open/mars{ - icon_state = "mars_dirt_5" - }, +/turf/open/mars/mars_dirt_5, /area/desert_dam/exterior/valley/bar_valley_dam) "CL" = ( /turf/closed/shuttle/ert{ @@ -1771,9 +1506,7 @@ /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached13" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached13, /area/desert_dam/exterior/valley/bar_valley_dam) "Db" = ( /obj/structure/girder, @@ -1787,9 +1520,7 @@ /area/desert_dam/exterior/valley/bar_valley_dam) "Di" = ( /obj/item/prop/colony/used_flare, -/turf/open/mars{ - icon_state = "mars_dirt_5" - }, +/turf/open/mars/mars_dirt_5, /area/desert_dam/exterior/valley/bar_valley_dam) "Dn" = ( /obj/effect/decal/cleanable/dirt, @@ -1800,9 +1531,7 @@ }, /area/desert_dam/building/bar/bar) "Dt" = ( -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3, /area/desert_dam/building/bar/bar_restroom) "Du" = ( /obj/effect/decal/cleanable/dirt, @@ -1814,9 +1543,7 @@ "DB" = ( /obj/structure/bed/bedroll, /obj/item/trash/cheesie, -/turf/open/shuttle/dropship{ - icon_state = "rasputin7" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_top_right, /area/desert_dam/building/bar/bar) "DD" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ @@ -1827,10 +1554,7 @@ /area/desert_dam/building/bar/bar) "DE" = ( /obj/structure/machinery/light, -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/bar/bar_restroom) "DO" = ( /obj/effect/spawner/gibspawner/xeno, @@ -1839,9 +1563,7 @@ "DR" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/sand_overlay/sand1, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached12" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached12, /area/desert_dam/exterior/valley/bar_valley_dam) "DZ" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -1862,10 +1584,7 @@ /turf/open/asphalt, /area/desert_dam/exterior/valley/bar_valley_dam) "Eg" = ( -/turf/open/desert/dirt{ - dir = 5; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/northeast, /area/desert_dam/exterior/valley/bar_valley_dam) "Ek" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -1878,33 +1597,24 @@ /obj/structure/barricade/sandbags/wired{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached19" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached19, /area/desert_dam/exterior/valley/bar_valley_dam) "Er" = ( /obj/item/stack/sheet/wood, /turf/open/floor/interior/wood, /area/desert_dam/building/bar/bar) "Ev" = ( -/turf/open/floor{ - icon_state = "grimy" - }, +/turf/open/floor/grimy, /area/desert_dam/building/bar/bar) "Ex" = ( /obj/item/prop/colony/used_flare, -/turf/open/desert/dirt{ - dir = 5; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/northeast, /area/desert_dam/exterior/valley/bar_valley_dam) "EH" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 8 }, -/turf/open/mars{ - icon_state = "mars_dirt_5" - }, +/turf/open/mars/mars_dirt_5, /area/desert_dam/exterior/valley/bar_valley_dam) "EO" = ( /turf/closed/shuttle/ert{ @@ -1929,15 +1639,11 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "grimy" - }, +/turf/open/floor/grimy, /area/desert_dam/building/bar/bar) "Fh" = ( /obj/item/storage/belt/utility, -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_up_to_down, /area/desert_dam/building/bar/bar) "Fl" = ( /obj/structure/pipes/standard/manifold/hidden/green, @@ -1961,10 +1667,7 @@ /obj/structure/barricade/sandbags/wired{ dir = 4 }, -/turf/open/desert/dirt{ - dir = 4; - icon_state = "desert_transition_corner1" - }, +/turf/open/desert/dirt/desert_transition_corner1/east, /area/desert_dam/exterior/valley/bar_valley_dam) "FF" = ( /obj/structure/disposalpipe/segment, @@ -1974,9 +1677,7 @@ /area/desert_dam/exterior/valley/bar_valley_dam) "FI" = ( /obj/effect/decal/sand_overlay/sand1, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached15" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached15, /area/desert_dam/exterior/valley/bar_valley_dam) "Gc" = ( /obj/effect/decal/sand_overlay/sand1{ @@ -1986,9 +1687,7 @@ dir = 4 }, /obj/item/ammo_casing/bullet, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached4" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached4, /area/desert_dam/exterior/valley/bar_valley_dam) "Gd" = ( /obj/effect/decal/warning_stripes{ @@ -2005,28 +1704,20 @@ current_rounds = 0 }, /obj/effect/decal/cleanable/blood/oil/streak, -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_up_to_down, /area/desert_dam/building/bar/bar) "GP" = ( /obj/item/prop/colony/used_flare, -/turf/open/floor{ - icon_state = "grimy" - }, +/turf/open/floor/grimy, /area/desert_dam/building/bar/bar) "GY" = ( /obj/item/trash/used_stasis_bag, /obj/effect/landmark/survivor_spawner/squad_leader, -/turf/open/shuttle/dropship{ - icon_state = "rasputin5" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_left_to_right, /area/desert_dam/building/bar/bar) "GZ" = ( /obj/item/stack/barbed_wire/small_stack, -/turf/open/mars{ - icon_state = "mars_dirt_5" - }, +/turf/open/mars/mars_dirt_5, /area/desert_dam/exterior/valley/bar_valley_dam) "Hb" = ( /obj/structure/desertdam/decals/road_edge, @@ -2036,10 +1727,7 @@ /turf/open/asphalt, /area/desert_dam/exterior/valley/bar_valley_dam) "Hl" = ( -/turf/open/desert/dirt{ - dir = 1; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/north, /area/desert_dam/exterior/valley/bar_valley_dam) "Hq" = ( /obj/structure/barricade/sandbags/wired{ @@ -2052,9 +1740,7 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating{ - icon_state = "platingdmg1" - }, +/turf/open/floor/plating/platingdmg1, /area/desert_dam/building/bar/bar) "HH" = ( /obj/effect/decal/warning_stripes{ @@ -2081,9 +1767,7 @@ /obj/item/prop/colony/usedbandage{ dir = 5 }, -/turf/open/mars{ - icon_state = "mars_dirt_5" - }, +/turf/open/mars/mars_dirt_5, /area/desert_dam/exterior/valley/bar_valley_dam) "Iu" = ( /turf/open/desert/dirt, @@ -2099,15 +1783,11 @@ /obj/structure/bed/chair/dropship/passenger{ dir = 8 }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/medium_grey_single_wide_up_to_down, /area/desert_dam/building/bar/bar) "IU" = ( /obj/item/tool/shovel, -/turf/open/mars{ - icon_state = "mars_dirt_5" - }, +/turf/open/mars/mars_dirt_5, /area/desert_dam/exterior/valley/bar_valley_dam) "IW" = ( /turf/closed/shuttle/ert{ @@ -2117,28 +1797,19 @@ }, /area/desert_dam/building/bar/bar) "Jc" = ( -/turf/open/floor/plating{ - icon_state = "platingdmg1" - }, +/turf/open/floor/plating/platingdmg1, /area/desert_dam/building/bar/bar) "Jd" = ( /obj/structure/flora/grass/desert/lightgrass_5, -/turf/open/mars{ - icon_state = "mars_dirt_5" - }, +/turf/open/mars/mars_dirt_5, /area/desert_dam/exterior/valley/bar_valley_dam) "Ji" = ( /obj/item/trash/candy, /obj/item/stack/rods, -/turf/open/floor/plating{ - icon_state = "platingdmg1" - }, +/turf/open/floor/plating/platingdmg1, /area/desert_dam/building/bar/bar) "Jk" = ( -/turf/open/desert/dirt{ - dir = 9; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/northwest, /area/desert_dam/interior/dam_interior/south_tunnel_entrance) "Js" = ( /obj/structure/disposalpipe/segment{ @@ -2149,9 +1820,7 @@ /area/desert_dam/building/bar/bar) "Jt" = ( /obj/item/trash/cheesie, -/turf/open/mars{ - icon_state = "mars_dirt_5" - }, +/turf/open/mars/mars_dirt_5, /area/desert_dam/exterior/valley/bar_valley_dam) "Jx" = ( /obj/structure/desertdam/decals/road_edge, @@ -2201,16 +1870,12 @@ dir = 8 }, /obj/item/stack/sandbags, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached13" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached13, /area/desert_dam/exterior/valley/bar_valley_dam) "Lo" = ( /obj/effect/landmark/survivor_spawner/upp/soldier, /obj/effect/decal/cleanable/blood/oil/streak, -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_up_to_down, /area/desert_dam/building/bar/bar) "Lu" = ( /obj/structure/desertdam/decals/road_edge{ @@ -2221,9 +1886,7 @@ /area/desert_dam/interior/dam_interior/south_tunnel_entrance) "Lw" = ( /obj/item/stack/rods, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3, /area/desert_dam/building/bar/bar) "LB" = ( /obj/structure/machinery/door/poddoor/almayer/locked{ @@ -2236,24 +1899,15 @@ /area/desert_dam/interior/dam_interior/south_tunnel_entrance) "LC" = ( /obj/item/prop/colony/usedbandage, -/turf/open/desert/dirt{ - dir = 10; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/southwest, /area/desert_dam/exterior/valley/bar_valley_dam) "LD" = ( /obj/item/ammo_casing/bullet, -/turf/open/desert/dirt{ - dir = 8; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/west, /area/desert_dam/exterior/valley/bar_valley_dam) "LF" = ( /obj/effect/spawner/gibspawner/xeno, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/desert_dam/interior/dam_interior/south_tunnel_entrance) "LJ" = ( /obj/structure/machinery/power/apc{ @@ -2262,24 +1916,18 @@ start_charge = 0 }, /obj/item/stack/sheet/metal, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3, /area/desert_dam/building/bar/backroom) "LM" = ( /obj/item/prop/colony/used_flare, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached16" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached16, /area/desert_dam/exterior/valley/bar_valley_dam) "Ms" = ( /obj/item/ammo_casing/bullet, /obj/item/prop/colony/usedbandage{ dir = 1 }, -/turf/open/mars{ - icon_state = "mars_dirt_5" - }, +/turf/open/mars/mars_dirt_5, /area/desert_dam/exterior/valley/bar_valley_dam) "Mw" = ( /obj/structure/machinery/blackbox_recorder, @@ -2292,27 +1940,21 @@ }, /obj/effect/decal/cleanable/blood, /obj/effect/spawner/gibspawner/human, -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_up_to_down, /area/desert_dam/building/bar/bar) "MW" = ( /obj/effect/decal/sand_overlay/sand1, /obj/structure/barricade/sandbags/wired{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached12" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached12, /area/desert_dam/exterior/valley/bar_valley_dam) "Ne" = ( /obj/effect/decal/warning_stripes{ icon_state = "S-corner" }, /obj/effect/decal/cleanable/blood/oil/streak, -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_up_to_down, /area/desert_dam/building/bar/bar) "Nh" = ( /obj/structure/flora/grass/desert/lightgrass_4, @@ -2322,17 +1964,13 @@ /obj/item/ammo_box/rounds/type71/heap/empty{ bullet_amount = 0 }, -/turf/open/mars{ - icon_state = "mars_dirt_5" - }, +/turf/open/mars/mars_dirt_5, /area/desert_dam/exterior/valley/bar_valley_dam) "Nj" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 6 }, -/turf/open/mars{ - icon_state = "mars_dirt_5" - }, +/turf/open/mars/mars_dirt_5, /area/desert_dam/interior/dam_interior/south_tunnel_entrance) "No" = ( /obj/effect/spawner/gibspawner/xeno, @@ -2340,10 +1978,7 @@ /area/desert_dam/exterior/valley/bar_valley_dam) "Nu" = ( /obj/effect/spawner/gibspawner/xeno, -/turf/open/desert/dirt{ - dir = 1; - icon_state = "desert_transition_corner1" - }, +/turf/open/desert/dirt/desert_transition_corner1/north, /area/desert_dam/exterior/valley/bar_valley_dam) "NH" = ( /obj/structure/machinery/light/double{ @@ -2351,9 +1986,7 @@ pixel_y = -5 }, /obj/effect/landmark/survivor_spawner/upp_sapper, -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_up_to_down, /area/desert_dam/building/bar/bar) "NK" = ( /obj/effect/decal/cleanable/dirt, @@ -2393,15 +2026,11 @@ /obj/effect/decal/sand_overlay/sand1{ dir = 8 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached1" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached1, /area/desert_dam/exterior/valley/bar_valley_dam) "Ow" = ( /obj/structure/prop/dam/boulder/boulder2, -/turf/open/desert/dirt{ - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1, /area/desert_dam/exterior/valley/bar_valley_dam) "OD" = ( /turf/open/asphalt, @@ -2414,18 +2043,14 @@ dir = 1; pixel_y = -10 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached19" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached19, /area/desert_dam/interior/dam_interior/south_tunnel_entrance) "OO" = ( /turf/closed/wall/r_wall, /area/desert_dam/exterior/valley/bar_valley_dam) "OS" = ( /obj/structure/barricade/sandbags/wired, -/turf/open/mars{ - icon_state = "mars_dirt_5" - }, +/turf/open/mars/mars_dirt_5, /area/desert_dam/exterior/valley/bar_valley_dam) "OU" = ( /obj/structure/desertdam/decals/road_edge{ @@ -2448,10 +2073,7 @@ /turf/open/floor/interior/wood, /area/desert_dam/building/bar/bar) "Pw" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/desert_dam/interior/dam_interior/south_tunnel_entrance) "PH" = ( /obj/effect/decal/sand_overlay/sand1{ @@ -2467,23 +2089,17 @@ pixel_x = 1; pixel_y = 35 }, -/turf/open/mars{ - icon_state = "mars_dirt_5" - }, +/turf/open/mars/mars_dirt_5, /area/desert_dam/exterior/valley/bar_valley_dam) "PR" = ( /obj/structure/bed/chair/dropship/passenger{ dir = 4 }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/medium_grey_single_wide_up_to_down, /area/desert_dam/building/bar/bar) "PS" = ( /obj/effect/decal/sand_overlay/sand1, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached12" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached12, /area/desert_dam/exterior/valley/bar_valley_dam) "PX" = ( /obj/structure/flora/grass/desert/heavygrass_5, @@ -2491,9 +2107,7 @@ dir = 5 }, /obj/effect/decal/cleanable/blood, -/turf/open/mars{ - icon_state = "mars_dirt_5" - }, +/turf/open/mars/mars_dirt_5, /area/desert_dam/exterior/valley/bar_valley_dam) "PY" = ( /obj/effect/decal/sand_overlay/sand1{ @@ -2503,17 +2117,13 @@ pixel_y = 13 }, /obj/item/toy/plush/farwa, -/turf/open/mars{ - icon_state = "mars_dirt_5" - }, +/turf/open/mars/mars_dirt_5, /area/desert_dam/exterior/valley/bar_valley_dam) "Qc" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/desert_dam/building/bar/bar_restroom) "Qk" = ( /obj/item/ammo_magazine/rifle/type71/heap{ @@ -2535,17 +2145,13 @@ density = 0; pixel_y = 32 }, -/turf/open/floor{ - icon_state = "grimy" - }, +/turf/open/floor/grimy, /area/desert_dam/building/bar/bar) "QI" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 10 }, -/turf/open/mars{ - icon_state = "mars_dirt_5" - }, +/turf/open/mars/mars_dirt_5, /area/desert_dam/interior/dam_interior/south_tunnel_entrance) "QK" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -2574,9 +2180,7 @@ bullet_amount = 0 }, /obj/effect/decal/cleanable/blood/oil/streak, -/turf/open/shuttle/dropship{ - icon_state = "rasputin4" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_bottom_left, /area/desert_dam/building/bar/bar) "Rl" = ( /obj/structure/closet/crate/supply, @@ -2590,9 +2194,7 @@ /obj/item/ammo_magazine/handful/shotgun/heavy/buckshot, /obj/item/ammo_magazine/handful/shotgun/heavy/buckshot, /obj/item/ammo_box/magazine/misc/flares, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/medium_grey_single_wide_up_to_down, /area/desert_dam/building/bar/bar) "Ro" = ( /obj/structure/flora/grass/desert/lightgrass_11, @@ -2601,25 +2203,19 @@ "Rs" = ( /obj/effect/decal/cleanable/dirt, /obj/item/stack/rods, -/turf/open/floor/plating{ - icon_state = "platingdmg1" - }, +/turf/open/floor/plating/platingdmg1, /area/desert_dam/building/bar/bar) "RU" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 5 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached9" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached9, /area/desert_dam/exterior/valley/bar_valley_dam) "RW" = ( /obj/effect/decal/warning_stripes{ icon_state = "S-corner" }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_up_to_down, /area/desert_dam/building/bar/bar) "Sb" = ( /obj/effect/decal/warning_stripes{ @@ -2630,19 +2226,13 @@ /area/desert_dam/interior/dam_interior/south_tunnel_entrance) "Sh" = ( /obj/effect/decal/cleanable/generic, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/desert_dam/building/bar/bar) "Sl" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/desert_dam/building/bar/bar) "So" = ( /obj/effect/decal/cleanable/dirt, @@ -2668,9 +2258,7 @@ /area/desert_dam/building/bar/backroom) "SG" = ( /obj/effect/decal/sand_overlay/sand1, -/turf/open/mars{ - icon_state = "mars_dirt_5" - }, +/turf/open/mars/mars_dirt_5, /area/desert_dam/exterior/valley/bar_valley_dam) "SL" = ( /obj/item/ammo_magazine/rifle/type71/heap{ @@ -2686,10 +2274,7 @@ /obj/structure/barricade/sandbags/wired{ dir = 1 }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/desert_dam/building/bar/bar) "SY" = ( /obj/effect/decal/cleanable/dirt, @@ -2701,9 +2286,7 @@ /area/desert_dam/building/bar/bar) "Ta" = ( /obj/item/prop/colony/used_flare, -/turf/open/desert/dirt{ - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1, /area/desert_dam/exterior/valley/bar_valley_dam) "Tc" = ( /obj/structure/bed/chair/wood/normal{ @@ -2722,26 +2305,20 @@ /obj/structure/barricade/wooden{ dir = 8 }, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3, /area/desert_dam/building/bar/bar) "Tl" = ( /obj/effect/decal/sand_overlay/sand1, /obj/item/ammo_magazine/rifle/type71/heap{ current_rounds = 0 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached12" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached12, /area/desert_dam/exterior/valley/bar_valley_dam) "TH" = ( /obj/effect/decal/sand_overlay/sand1, /obj/item/ammo_casing/bullet, /obj/effect/landmark/crap_item, -/turf/open/mars{ - icon_state = "mars_dirt_5" - }, +/turf/open/mars/mars_dirt_5, /area/desert_dam/exterior/valley/bar_valley_dam) "TO" = ( /obj/structure/pipes/vents/pump{ @@ -2751,15 +2328,10 @@ dir = 1 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "grimy" - }, +/turf/open/floor/grimy, /area/desert_dam/building/bar/bar) "TR" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/desert_dam/building/bar/bar_restroom) "Ug" = ( /obj/item/ammo_casing/bullet, @@ -2767,10 +2339,7 @@ /area/desert_dam/exterior/valley/bar_valley_dam) "Ui" = ( /obj/structure/prop/dam/boulder/boulder2, -/turf/open/desert/dirt{ - dir = 8; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/west, /area/desert_dam/exterior/valley/bar_valley_dam) "Ul" = ( /obj/effect/decal/cleanable/dirt, @@ -2788,14 +2357,10 @@ /area/desert_dam/exterior/valley/bar_valley_dam) "Uq" = ( /obj/effect/decal/cleanable/blood/xeno, -/turf/open/desert/dirt{ - icon_state = "desert_transition_corner1" - }, +/turf/open/desert/dirt/desert_transition_corner1, /area/desert_dam/exterior/valley/bar_valley_dam) "UB" = ( -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3, /area/desert_dam/building/bar/bar) "UK" = ( /obj/item/ammo_box/rounds/type71/heap/empty{ @@ -2814,9 +2379,7 @@ pixel_y = 13 }, /obj/item/clothing/head/helmet/marine/veteran/UPP, -/turf/open/mars{ - icon_state = "mars_dirt_5" - }, +/turf/open/mars/mars_dirt_5, /area/desert_dam/exterior/valley/bar_valley_dam) "UQ" = ( /obj/structure/surface/table/reinforced, @@ -2825,9 +2388,7 @@ pixel_y = 32 }, /obj/effect/landmark/objective_landmark/far, -/turf/open/floor{ - icon_state = "grimy" - }, +/turf/open/floor/grimy, /area/desert_dam/building/bar/bar) "Vc" = ( /obj/structure/desertdam/decals/road_edge, @@ -2852,34 +2413,24 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "grimy" - }, +/turf/open/floor/grimy, /area/desert_dam/building/bar/bar) "Vt" = ( /obj/item/prop/colony/usedbandage{ dir = 1 }, /obj/effect/landmark/survivor_spawner/upp_specialist, -/turf/open/shuttle/dropship{ - icon_state = "rasputin5" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_left_to_right, /area/desert_dam/building/bar/bar) "VA" = ( /obj/item/shard{ icon_state = "medium" }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/desert_dam/building/bar/bar) "VG" = ( /obj/structure/reagent_dispensers/beerkeg, -/turf/open/desert/dirt{ - dir = 9; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/northwest, /area/desert_dam/exterior/valley/bar_valley_dam) "VI" = ( /turf/open/floor/plating, @@ -2990,9 +2541,7 @@ desc = "You take a sip from your trusty UPP canteen..."; pixel_y = 4 }, -/turf/open/mars{ - icon_state = "mars_dirt_5" - }, +/turf/open/mars/mars_dirt_5, /area/desert_dam/exterior/valley/bar_valley_dam) "Xh" = ( /obj/effect/decal/cleanable/dirt, @@ -3003,15 +2552,11 @@ dir = 6 }, /obj/item/ammo_casing/bullet, -/turf/open/mars{ - icon_state = "mars_dirt_5" - }, +/turf/open/mars/mars_dirt_5, /area/desert_dam/exterior/valley/bar_valley_dam) "Xv" = ( /obj/structure/prop/dam/boulder/boulder3, -/turf/open/mars{ - icon_state = "mars_dirt_5" - }, +/turf/open/mars/mars_dirt_5, /area/desert_dam/exterior/valley/bar_valley_dam) "Xw" = ( /turf/open/floor/interior/wood, @@ -3044,33 +2589,22 @@ /area/desert_dam/interior/dam_interior/south_tunnel_entrance) "XZ" = ( /obj/effect/decal/cleanable/blood/xeno, -/turf/open/desert/dirt{ - dir = 5; - icon_state = "desert_transition_edge1" - }, +/turf/open/desert/dirt/desert_transition_edge1/northeast, /area/desert_dam/exterior/valley/bar_valley_dam) "Yf" = ( /obj/effect/spawner/gibspawner/xeno, /turf/open/floor/interior/wood, /area/desert_dam/building/bar/bar) "Yn" = ( -/turf/open/desert/dirt{ - dir = 1; - icon_state = "desert_transition_corner1" - }, +/turf/open/desert/dirt/desert_transition_corner1/north, /area/desert_dam/exterior/valley/bar_valley_dam) "Yq" = ( -/turf/open/floor{ - dir = 8; - icon_state = "carpet6-2" - }, +/turf/open/floor/carpet6_2/west, /area/desert_dam/building/bar/bar) "YA" = ( /obj/structure/bed/chair/wood/normal, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating{ - icon_state = "platingdmg1" - }, +/turf/open/floor/plating/platingdmg1, /area/desert_dam/building/bar/bar) "YE" = ( /obj/effect/decal/sand_overlay/sand1, @@ -3113,9 +2647,7 @@ }, /area/desert_dam/building/bar/bar) "YZ" = ( -/turf/open/floor/plating{ - icon_state = "platingdmg1" - }, +/turf/open/floor/plating/platingdmg1, /area/desert_dam/building/bar/bar_restroom) "ZA" = ( /obj/effect/decal/sand_overlay/sand1{ @@ -3124,9 +2656,7 @@ /obj/structure/barricade/sandbags/wired{ dir = 4 }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached4" - }, +/turf/open/asphalt/cement_sunbleached/cement_sunbleached4, /area/desert_dam/exterior/valley/bar_valley_dam) "ZB" = ( /obj/effect/decal/sand_overlay/sand1, diff --git a/maps/map_files/FOP_v2_Cellblocks/Prison_Station_FOP.dmm b/maps/map_files/FOP_v2_Cellblocks/Prison_Station_FOP.dmm index ba9986948eed..5cccceb54389 100644 --- a/maps/map_files/FOP_v2_Cellblocks/Prison_Station_FOP.dmm +++ b/maps/map_files/FOP_v2_Cellblocks/Prison_Station_FOP.dmm @@ -6,10 +6,7 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/prison/residential/north) "aab" = ( /obj/structure/pipes/standard/simple/hidden/supply, @@ -30,9 +27,7 @@ /obj/effect/decal/siding/wood_siding{ icon_state = "wood_siding9" }, -/turf/open/floor{ - icon_state = "asteroid" - }, +/turf/open/floor/asteroid, /area/prison/residential/north) "aaf" = ( /obj/effect/landmark/corpsespawner/prisoner, @@ -112,19 +107,13 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/research/secret/testing) "aap" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/research/secret/testing) "aaq" = ( /obj/structure/machinery/disposal, @@ -135,10 +124,7 @@ /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/research/secret/testing) "aar" = ( /obj/effect/decal/warning_stripes{ @@ -151,20 +137,14 @@ icon_state = "coil1"; name = "cable piece" }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/north, /area/prison/research/secret/testing) "aas" = ( /obj/structure/machinery/door/window/southright, /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/north, /area/prison/research/secret/testing) "aat" = ( /obj/structure/surface/table/reinforced, @@ -179,20 +159,14 @@ icon_state = "S" }, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/research/secret/testing) "aau" = ( /obj/structure/reagent_dispensers/watertank, /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/research/secret/testing) "aav" = ( /obj/structure/closet/l3closet, @@ -200,10 +174,7 @@ dir = 1 }, /obj/item/reagent_container/food/snacks/baguette, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/research/secret/testing) "aaw" = ( /obj/structure/surface/table/reinforced, @@ -212,10 +183,7 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/prison/residential/north) "aax" = ( /obj/structure/surface/table/reinforced, @@ -224,10 +192,7 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/prison/residential/north) "aay" = ( /obj/effect/decal/warning_stripes{ @@ -236,20 +201,14 @@ /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/research/secret/testing) "aaz" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" }, /obj/structure/machinery/door/window/southleft, -/turf/open/floor/prison{ - dir = 1; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/north, /area/prison/research/secret/testing) "aaA" = ( /obj/structure/surface/table/reinforced, @@ -263,10 +222,7 @@ id = "biological_testing_2"; name = "Containment Shutter Control" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/research/secret/testing) "aaB" = ( /obj/effect/decal/warning_stripes{ @@ -278,10 +234,7 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/research/secret/testing) "aaC" = ( /obj/structure/machinery/light/small{ @@ -290,106 +243,63 @@ /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/maxsec/north) "aaD" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 1 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/east, /area/prison/cellblock/maxsec/north) "aaE" = ( /obj/structure/machinery/smartfridge/secure, -/turf/open/floor/prison{ - dir = 9; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/northwest, /area/prison/research/secret/testing) "aaF" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/north, /area/prison/research/secret/testing) "aaG" = ( /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/prison{ - icon_state = "whitepurplefull" - }, +/turf/open/floor/prison/whitepurplefull, /area/prison/research/secret/testing) "aaH" = ( -/turf/open/floor/prison{ - icon_state = "whitepurplefull" - }, +/turf/open/floor/prison/whitepurplefull, /area/prison/research/secret/testing) "aaI" = ( -/turf/open/floor/prison{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/northeast, /area/prison/research/secret/testing) "aaJ" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/west, /area/prison/research/secret/testing) "aaK" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/research/secret/testing) "aaL" = ( /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/prison/whitepurplecorner/north, /area/prison/research/secret/testing) "aaM" = ( /obj/effect/landmark/corpsespawner/scientist, /obj/effect/decal/cleanable/blood/splatter, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/north, /area/prison/research/secret/testing) "aaN" = ( /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/north, /area/prison/research/secret/testing) "aaO" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/prison/whitepurplecorner/east, /area/prison/research/secret/testing) "aaP" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/prison/whitepurplecorner/north, /area/prison/research/secret/testing) "aaQ" = ( /obj/structure/disposalpipe/segment{ dir = 4; icon_state = "pipe-c" }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/east, /area/prison/research/secret/testing) "aaR" = ( /obj/structure/window/framed/prison/reinforced/hull, @@ -409,69 +319,45 @@ /turf/open/space, /area/space) "aaT" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/southwest, /area/prison/research/secret/testing) "aaU" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/prison/whitepurplecorner/west, /area/prison/research/secret/testing) "aaV" = ( /obj/structure/pipes/vents/scrubber{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/research/secret/testing) "aaW" = ( /obj/effect/decal/cleanable/blood/splatter, /obj/structure/pipes/standard/simple/hidden/supply{ dir = 10 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/research/secret/testing) "aaX" = ( /obj/item/paper/prison_station/test_log, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/research/secret/testing) "aaY" = ( /obj/structure/bed/chair/office/dark{ dir = 4 }, /obj/effect/landmark/survivor_spawner, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/research/secret/testing) "aaZ" = ( /obj/structure/surface/table/reinforced, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/research/secret/testing) "abc" = ( /obj/structure/surface/table/reinforced, /obj/item/clothing/suit/chef/classic, /obj/item/tool/kitchen/rollingpin, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/prison/residential/central) "abd" = ( /obj/structure/surface/rack, @@ -481,28 +367,19 @@ /obj/item/clothing/mask/muzzle, /obj/item/clothing/mask/muzzle, /obj/item/clothing/mask/muzzle, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/research/secret/testing) "abe" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 6 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/research/secret/testing) "abf" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/research/secret/testing) "abg" = ( /obj/structure/machinery/disposal, @@ -512,43 +389,29 @@ /obj/structure/sign/safety/nonpress{ pixel_x = 30 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/east, /area/prison/research/secret/testing) "abh" = ( /obj/structure/machinery/computer/operating, /obj/structure/surface/table/reinforced, -/turf/open/floor/prison{ - icon_state = "whitepurplefull" - }, +/turf/open/floor/prison/whitepurplefull, /area/prison/research/secret/testing) "abi" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/research/secret/testing) "abj" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/research/secret/testing) "abk" = ( /obj/structure/surface/table/reinforced, /obj/item/folder, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/research/secret/testing) "abl" = ( /obj/item/paper_bin{ @@ -560,41 +423,26 @@ pixel_y = 8 }, /obj/structure/surface/table/reinforced, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/research/secret/testing) "abn" = ( /obj/structure/filingcabinet/chestdrawer, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/research/secret/testing) "abo" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/research/secret/testing) "abp" = ( /obj/structure/pipes/vents/scrubber{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/research/secret/testing) "abq" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/east, /area/prison/research/secret/testing) "abr" = ( /obj/structure/disposalpipe/trunk, @@ -609,50 +457,32 @@ /obj/structure/machinery/computer/med_data/laptop{ pixel_y = 3 }, -/turf/open/floor/prison{ - icon_state = "whitepurplefull" - }, +/turf/open/floor/prison/whitepurplefull, /area/prison/research/secret/testing) "abt" = ( /obj/structure/bed/chair/office/dark{ dir = 8 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/west, /area/prison/research/secret/testing) "abu" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/research/secret/testing) "abv" = ( /obj/structure/bed/chair/office/dark{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/research/secret/testing) "abw" = ( -/turf/open/floor/prison{ - icon_state = "whitepurplecorner" - }, +/turf/open/floor/prison/whitepurplecorner, /area/prison/research/secret/testing) "abx" = ( -/turf/open/floor/prison{ - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple, /area/prison/research/secret/testing) "aby" = ( -/turf/open/floor/prison{ - dir = 6; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/southeast, /area/prison/research/secret/testing) "abz" = ( /obj/structure/window/framed/prison/reinforced/hull, @@ -669,25 +499,18 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "whitepurplefull" - }, +/turf/open/floor/prison/whitepurplefull, /area/prison/research/secret/testing) "abC" = ( /obj/structure/sink{ dir = 4; pixel_x = 11 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean_marked" - }, +/turf/open/floor/prison/bright_clean_marked/southwest, /area/prison/research/secret/testing) "abD" = ( /obj/structure/surface/table/reinforced, -/turf/open/floor/prison{ - icon_state = "whitepurplefull" - }, +/turf/open/floor/prison/whitepurplefull, /area/prison/research/secret/bioengineering) "abE" = ( /obj/structure/surface/table/reinforced, @@ -696,70 +519,50 @@ pixel_y = 4 }, /obj/item/storage/box/syringes, -/turf/open/floor/prison{ - icon_state = "whitepurplefull" - }, +/turf/open/floor/prison/whitepurplefull, /area/prison/research/secret/bioengineering) "abF" = ( /obj/structure/machinery/alarm/almayer{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "whitepurplefull" - }, +/turf/open/floor/prison/whitepurplefull, /area/prison/research/secret/bioengineering) "abG" = ( /obj/structure/pipes/vents/scrubber, /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "whitepurplefull" - }, +/turf/open/floor/prison/whitepurplefull, /area/prison/research/secret/bioengineering) "abH" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/prison/research/secret/bioengineering) "abI" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/prison/research/secret/bioengineering) "abJ" = ( /obj/structure/pipes/vents/pump/on, -/turf/open/floor/prison{ - icon_state = "whitepurplefull" - }, +/turf/open/floor/prison/whitepurplefull, /area/prison/research/secret/bioengineering) "abK" = ( /obj/structure/machinery/light{ dir = 1 }, /obj/structure/surface/table/reinforced, -/turf/open/floor/prison{ - icon_state = "whitepurplefull" - }, +/turf/open/floor/prison/whitepurplefull, /area/prison/research/secret/bioengineering) "abL" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/computer/med_data/laptop, -/turf/open/floor/prison{ - icon_state = "whitepurplefull" - }, +/turf/open/floor/prison/whitepurplefull, /area/prison/research/secret/bioengineering) "abM" = ( /obj/structure/window/reinforced{ dir = 4 }, /obj/structure/surface/table/reinforced, -/turf/open/floor/prison{ - icon_state = "whitepurplefull" - }, +/turf/open/floor/prison/whitepurplefull, /area/prison/research/secret/bioengineering) "abN" = ( /obj/structure/window/reinforced{ @@ -772,26 +575,17 @@ /area/prison/research/secret/bioengineering) "abO" = ( /obj/structure/xenoautopsy/tank/larva, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/prison/research/secret/bioengineering) "abP" = ( /obj/structure/xenoautopsy/tank/broken, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/prison/research/secret/bioengineering) "abQ" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/west, /area/prison/cellblock/maxsec/north) "abR" = ( /obj/structure/machinery/flasher{ @@ -824,10 +618,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/east, /area/prison/cellblock/maxsec/north) "abV" = ( /obj/structure/disposalpipe/segment{ @@ -839,10 +630,7 @@ name = "Cell"; opacity = 0 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/maxsec/north) "abW" = ( /obj/structure/pipes/standard/simple/hidden/supply, @@ -853,102 +641,68 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 5 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/research/secret/testing) "abY" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/research/secret/testing) "abZ" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/research/secret/testing) "aca" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 9 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/research/secret/testing) "acb" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "whitepurplefull" - }, +/turf/open/floor/prison/whitepurplefull, /area/prison/research/secret/bioengineering) "acc" = ( /obj/structure/bed/chair/office/dark{ dir = 8 }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/northwest, /area/prison/research/secret/bioengineering) "acd" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/north, /area/prison/research/secret/bioengineering) "ace" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/northeast, /area/prison/research/secret/bioengineering) "acf" = ( /obj/structure/window/framed/prison/cell, -/turf/open/floor/prison{ - icon_state = "whitepurplefull" - }, +/turf/open/floor/prison/whitepurplefull, /area/prison/research/secret/bioengineering) "acg" = ( /turf/closed/wall/r_wall/prison, /area/prison/research/secret/bioengineering) "ach" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 9; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/northwest, /area/prison/research/secret/bioengineering) "acj" = ( /obj/structure/bed/chair/office/dark{ dir = 8 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/north, /area/prison/research/secret/bioengineering) "ack" = ( /obj/structure/window/reinforced{ dir = 4 }, -/turf/open/floor/prison{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/northeast, /area/prison/research/secret/bioengineering) "acl" = ( /obj/effect/decal/warning_stripes{ @@ -978,10 +732,7 @@ dir = 1 }, /obj/structure/machinery/door/window/northleft, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/prison/cellblock/maxsec/north) "acp" = ( /obj/effect/landmark/corpsespawner/prisoner, @@ -1013,10 +764,7 @@ dir = 8; health = 80 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/prison/cellblock/maxsec/north) "acu" = ( /obj/item/ammo_casing, @@ -1024,39 +772,28 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/yard) "acv" = ( /obj/structure/surface/table/reinforced, /obj/item/tool/surgery/circular_saw, /obj/item/tool/surgery/scalpel, -/turf/open/floor/prison{ - icon_state = "whitepurplefull" - }, +/turf/open/floor/prison/whitepurplefull, /area/prison/research/secret/testing) "acw" = ( /obj/structure/surface/table/reinforced, -/turf/open/floor/prison{ - icon_state = "whitepurplefull" - }, +/turf/open/floor/prison/whitepurplefull, /area/prison/research/secret/testing) "acx" = ( /obj/structure/machinery/light, -/turf/open/floor/prison{ - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple, /area/prison/research/secret/testing) "acy" = ( /obj/structure/machinery/power/apc{ pixel_y = -24; start_charge = 0 }, -/turf/open/floor/prison{ - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple, /area/prison/research/secret/testing) "acz" = ( /obj/structure/surface/table/reinforced, @@ -1065,16 +802,11 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/prison/residential/central) "acA" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple, /area/prison/research/secret/testing) "acB" = ( /obj/effect/decal/warning_stripes{ @@ -1087,27 +819,19 @@ /obj/structure/sign/safety/nonpress{ pixel_x = -30 }, -/turf/open/floor/prison{ - icon_state = "whitepurplefull" - }, +/turf/open/floor/prison/whitepurplefull, /area/prison/research/secret/bioengineering) "acC" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/west, /area/prison/research/secret/bioengineering) "acD" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/research/secret/bioengineering) "acE" = ( /turf/closed/wall/r_wall/prison_unmeltable, @@ -1120,10 +844,7 @@ dir = 4 }, /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/east, /area/prison/research/secret/bioengineering) "acH" = ( /turf/closed/wall/r_wall/prison, @@ -1133,10 +854,7 @@ dir = 8; icon_state = "pipe-c" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/prison/research/secret/bioengineering) "acJ" = ( /obj/structure/machinery/door/airlock/prison{ @@ -1144,10 +862,7 @@ icon_state = "door_open"; opacity = 0 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/east, /area/prison/research/secret/bioengineering) "acK" = ( /turf/closed/wall/r_wall/prison_unmeltable, @@ -1196,25 +911,16 @@ /area/prison/cellblock/maxsec/north) "acT" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/west, /area/prison/research/secret/bioengineering) "acV" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/research/secret/bioengineering) "acW" = ( /obj/structure/window/reinforced{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/east, /area/prison/research/secret/bioengineering) "acX" = ( /obj/structure/window/framed/prison/reinforced, @@ -1254,9 +960,7 @@ /obj/structure/machinery/door/airlock/multi_tile/almayer/comdoor/colony{ name = "Biological Testing" }, -/turf/open/floor/prison{ - icon_state = "whitepurplefull" - }, +/turf/open/floor/prison/whitepurplefull, /area/prison/research/secret/testing) "adf" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ @@ -1265,40 +969,25 @@ /turf/open/floor/plating, /area/prison/cellblock/maxsec/north) "adg" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/west, /area/prison/research/secret/bioengineering) "adh" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/east, /area/prison/research/secret/bioengineering) "adi" = ( /obj/structure/window/framed/prison/cell, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/prison/research/secret/bioengineering) "adj" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 8 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/west, /area/prison/research/secret/bioengineering) "adk" = ( /obj/structure/machinery/door/window/eastleft, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/east, /area/prison/research/secret/bioengineering) "adl" = ( /obj/effect/decal/warning_stripes{ @@ -1360,16 +1049,11 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - dir = 1; - icon_state = "podhatchfloor" - }, +/turf/open/floor/podhatchfloor/north, /area/prison/research/secret/testing) "adu" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - icon_state = "whitepurplefull" - }, +/turf/open/floor/prison/whitepurplefull, /area/prison/research/secret/testing) "adv" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -1378,13 +1062,9 @@ /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ density = 0; icon_state = "door_open"; - name = "Cell Access"; - req_access = null - }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" + name = "Cell Access" }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/maxsec/north) "adw" = ( /obj/effect/decal/warning_stripes{ @@ -1393,31 +1073,19 @@ /obj/structure/machinery/shower{ dir = 8 }, -/turf/open/floor{ - dir = 1; - icon_state = "podhatchfloor" - }, +/turf/open/floor/podhatchfloor/north, /area/prison/research/secret/testing) "adx" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/prison/whitepurplecorner/north, /area/prison/research/secret/bioengineering) "ady" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/prison/whitepurplecorner/east, /area/prison/research/secret/bioengineering) "adz" = ( /obj/effect/landmark/hunter_primary, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/research/secret/bioengineering) "adA" = ( /obj/effect/landmark/hunter_primary, @@ -1426,39 +1094,27 @@ "adB" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/up, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/maxsec/north) "adC" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/up{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/maxsec/north) "adD" = ( /obj/structure/disposalpipe/segment{ dir = 2; icon_state = "pipe-c" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/maxsec/north) "adE" = ( /obj/structure/pipes/vents/scrubber{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/maxsec/north) "adF" = ( /obj/structure/machinery/light{ @@ -1490,10 +1146,7 @@ /obj/structure/machinery/shower{ dir = 4 }, -/turf/open/floor{ - dir = 1; - icon_state = "podhatchfloor" - }, +/turf/open/floor/podhatchfloor/north, /area/prison/research/secret/testing) "adJ" = ( /obj/structure/toilet{ @@ -1510,32 +1163,20 @@ pixel_y = 10 }, /obj/structure/surface/table/reinforced, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/research/secret/bioengineering) "adL" = ( /obj/structure/surface/table/reinforced, /obj/effect/landmark/good_item, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/research/secret/bioengineering) "adM" = ( /obj/structure/filingcabinet/chestdrawer, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/research/secret/bioengineering) "adN" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/research/secret/bioengineering) "adO" = ( /obj/structure/surface/table/reinforced, @@ -1544,46 +1185,33 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/prison/residential/south) "adP" = ( /obj/structure/machinery/light/small{ dir = 1 }, /obj/structure/pipes/vents/scrubber, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/maxsec/north) "adQ" = ( /obj/structure/disposalpipe/segment{ dir = 1; icon_state = "pipe-c" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/maxsec/north) "adR" = ( /obj/structure/machinery/door/airlock/almayer/secure/colony{ density = 0; icon_state = "door_open"; name = "Cell"; - opacity = 0; - req_access = null + opacity = 0 }, /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/maxsec/north) "adS" = ( /obj/structure/disposalpipe/segment{ @@ -1591,10 +1219,7 @@ icon_state = "pipe-c" }, /obj/item/paper/prison_station/nursery_rhyme, -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/west, /area/prison/cellblock/maxsec/north) "adT" = ( /obj/structure/machinery/light/small{ @@ -1610,10 +1235,7 @@ }, /obj/structure/machinery/door/window/westright, /obj/item/tool/pen, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/prison/cellblock/maxsec/north) "adV" = ( /obj/structure/machinery/door/airlock/almayer/secure/colony{ @@ -1621,14 +1243,10 @@ dir = 2; icon_state = "door_open"; name = "Cell"; - opacity = 0; - req_access = null + opacity = 0 }, /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/maxsec/north) "adW" = ( /obj/structure/window/reinforced, @@ -1636,10 +1254,7 @@ /obj/structure/machinery/shower{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/prison/cellblock/maxsec/north) "adX" = ( /obj/structure/machinery/light/small{ @@ -1653,20 +1268,14 @@ icon_state = "pipe-c" }, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/east, /area/prison/cellblock/maxsec/north) "adZ" = ( /obj/structure/disposalpipe/segment{ dir = 8; icon_state = "pipe-c" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/maxsec/north) "aea" = ( /obj/structure/bed, @@ -1687,9 +1296,7 @@ dir = 2; name = "Human Containment Pen" }, -/turf/open/floor/prison{ - icon_state = "whitepurplefull" - }, +/turf/open/floor/prison/whitepurplefull, /area/prison/research/secret/containment) "aed" = ( /obj/structure/window/framed/prison/cell, @@ -1699,17 +1306,11 @@ /obj/structure/bed/chair/office/dark{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/research/secret/bioengineering) "aef" = ( /obj/structure/surface/table/reinforced, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/research/secret/bioengineering) "aeg" = ( /obj/item/paper_bin{ @@ -1721,25 +1322,16 @@ pixel_y = 8 }, /obj/structure/surface/table/reinforced, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/research/secret/bioengineering) "aeh" = ( /obj/item/folder/black, /obj/structure/surface/table/reinforced, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/research/secret/bioengineering) "aei" = ( /obj/structure/machinery/door/window/eastright, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/east, /area/prison/research/secret/bioengineering) "aej" = ( /obj/structure/machinery/light{ @@ -1759,19 +1351,13 @@ /area/prison/yard) "aem" = ( /obj/structure/pipes/standard/manifold/hidden/supply, -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/west, /area/prison/cellblock/maxsec/north) "aen" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/maxsec/north) "aeo" = ( /obj/structure/toilet{ @@ -1779,10 +1365,7 @@ }, /obj/structure/disposalpipe/segment, /obj/item/paper/prison_station/nursery_rhyme, -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/west, /area/prison/cellblock/maxsec/north) "aep" = ( /obj/structure/machinery/flasher{ @@ -1808,10 +1391,7 @@ dir = 1; icon_state = "pipe-c" }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/north, /area/prison/cellblock/maxsec/north) "aes" = ( /obj/structure/disposaloutlet, @@ -1821,17 +1401,11 @@ /obj/structure/disposalpipe/up{ dir = 8 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/north, /area/prison/cellblock/maxsec/north) "aet" = ( /obj/structure/toilet, -/turf/open/floor/prison{ - dir = 1; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/north, /area/prison/cellblock/maxsec/north) "aeu" = ( /obj/structure/sink{ @@ -1852,26 +1426,17 @@ pixel_x = -4 }, /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/east, /area/prison/cellblock/maxsec/north) "aex" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/maxsec/north) "aey" = ( /obj/structure/pipes/standard/manifold/hidden/supply, -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/east, /area/prison/cellblock/maxsec/north) "aez" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -1916,16 +1481,10 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/northwest, /area/prison/research/secret/containment) "aeF" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/north, /area/prison/research/secret/containment) "aeG" = ( /obj/structure/machinery/light{ @@ -1934,10 +1493,7 @@ /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/north, /area/prison/research/secret/containment) "aeH" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -1946,18 +1502,13 @@ /obj/structure/machinery/alarm/almayer{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/north, /area/prison/research/secret/containment) "aeI" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "whitepurplefull" - }, +/turf/open/floor/prison/whitepurplefull, /area/prison/research/secret/containment) "aeK" = ( /obj/structure/disposaloutlet{ @@ -1966,10 +1517,7 @@ /obj/structure/disposalpipe/up{ dir = 1 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/west, /area/prison/cellblock/maxsec/north) "aeL" = ( /obj/item/paper/prison_station/nursery_rhyme, @@ -2013,10 +1561,7 @@ /obj/structure/disposalpipe/up{ dir = 1 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/east, /area/prison/cellblock/maxsec/north) "aeT" = ( /obj/structure/machinery/light{ @@ -2025,16 +1570,10 @@ /obj/structure/pipes/vents/scrubber{ dir = 8 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/north, /area/prison/research/secret/containment) "aeU" = ( -/turf/open/floor/prison{ - dir = 5; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/northeast, /area/prison/research/secret/containment) "aeV" = ( /obj/structure/machinery/light{ @@ -2043,35 +1582,23 @@ /obj/effect/decal/warning_stripes{ icon_state = "SW-out" }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/west, /area/prison/research/secret/bioengineering) "aeW" = ( /obj/structure/bed/chair/office/dark{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/research/secret/bioengineering) "aeX" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/research/secret/bioengineering) "aeY" = ( /obj/effect/landmark/corpsespawner/scientist, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/research/secret/bioengineering) "aeZ" = ( /turf/closed/wall/r_wall/prison_unmeltable, @@ -2079,10 +1606,7 @@ "afa" = ( /obj/item/shard, /obj/item/stack/rods, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/east, /area/prison/research/secret/bioengineering) "afb" = ( /obj/item/shard, @@ -2108,10 +1632,7 @@ /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/west, /area/prison/cellblock/maxsec/north) "afe" = ( /obj/structure/disposaloutlet, @@ -2130,10 +1651,7 @@ dir = 4; pixel_x = 11 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/east, /area/prison/cellblock/maxsec/north) "afh" = ( /obj/structure/machinery/light{ @@ -2146,10 +1664,7 @@ /obj/structure/xenoautopsy/tank/larva{ pixel_y = 7 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/prison/research/secret/bioengineering) "afj" = ( /obj/structure/machinery/light, @@ -2160,77 +1675,52 @@ /turf/open/floor/prison, /area/prison/security/monitoring/maxsec/panopticon) "afl" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/southwest, /area/prison/research/secret/containment) "afm" = ( -/turf/open/floor/prison{ - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2, /area/prison/research/secret/containment) "afn" = ( /obj/effect/landmark/hunter_primary, -/turf/open/floor/prison{ - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2, /area/prison/research/secret/containment) "afo" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkpurplecorners2" - }, +/turf/open/floor/prison/darkpurplecorners2/west, /area/prison/research/secret/containment) "afp" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 8 }, -/turf/open/floor/prison{ - dir = 5; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/northeast, /area/prison/research/secret/containment) "afq" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/northwest, /area/prison/research/secret/containment) "afr" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "darkpurplecorners2" - }, +/turf/open/floor/prison/darkpurplecorners2, /area/prison/research/secret/containment) "afs" = ( /obj/structure/pipes/standard/manifold/hidden/supply, -/turf/open/floor/prison{ - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2, /area/prison/research/secret/containment) "aft" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 6; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/southeast, /area/prison/research/secret/containment) "afu" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, /obj/structure/machinery/door/airlock/almayer/maint/colony, -/turf/open/floor/prison{ - icon_state = "whitepurplefull" - }, +/turf/open/floor/prison/whitepurplefull, /area/prison/research/secret/containment) "afv" = ( /obj/effect/decal/warning_stripes{ @@ -2239,10 +1729,7 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/west, /area/prison/research/secret/bioengineering) "afw" = ( /obj/structure/pipes/standard/simple/hidden/supply, @@ -2251,36 +1738,24 @@ /area/prison/cellblock/highsec/south/north) "afx" = ( /obj/structure/pipes/standard/manifold/hidden/supply, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/research/secret/bioengineering) "afy" = ( /obj/structure/pipes/standard/manifold/fourway/hidden/supply, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/research/secret/bioengineering) "afA" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/research/secret/bioengineering) "afB" = ( /obj/structure/machinery/door/window/eastright, /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/east, /area/prison/research/secret/bioengineering) "afC" = ( /obj/effect/decal/warning_stripes{ @@ -2306,68 +1781,42 @@ /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "Panopticon Monitoring" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/security/monitoring/maxsec/panopticon) "afF" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/security/monitoring/maxsec/panopticon) "afG" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/west, /area/prison/research/secret/containment) "afH" = ( /obj/effect/alien/weeds/node, /turf/open/floor/prison, /area/prison/cellblock/highsec/south/north) "afI" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/east, /area/prison/research/secret/containment) "afJ" = ( /obj/effect/decal/warning_stripes{ icon_state = "NW-out" }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/west, /area/prison/research/secret/bioengineering) "afL" = ( -/turf/open/floor/prison{ - icon_state = "whitepurplecorner" - }, +/turf/open/floor/prison/whitepurplecorner, /area/prison/research/secret/bioengineering) "afM" = ( /obj/structure/window/reinforced{ dir = 4 }, -/turf/open/floor/prison{ - dir = 6; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/southeast, /area/prison/research/secret/bioengineering) "afN" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/west, /area/prison/cellblock/maxsec/north) "afO" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/east, /area/prison/cellblock/maxsec/north) "afP" = ( /obj/structure/bed/chair/office/dark{ @@ -2376,52 +1825,37 @@ /obj/effect/decal/warning_stripes{ icon_state = "SE-out" }, -/turf/open/floor/prison{ - icon_state = "whitepurplecorner" - }, +/turf/open/floor/prison/whitepurplecorner, /area/prison/research/secret/bioengineering) "afQ" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/prison{ - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple, /area/prison/research/secret/bioengineering) "afR" = ( /obj/effect/decal/warning_stripes{ icon_state = "SW-out" }, /obj/structure/machinery/light, -/turf/open/floor/prison{ - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple, /area/prison/research/secret/bioengineering) "afS" = ( /obj/structure/machinery/power/apc{ pixel_y = -24; start_charge = 0 }, -/turf/open/floor/prison{ - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple, /area/prison/research/secret/bioengineering) "afT" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple, /area/prison/research/secret/bioengineering) "afU" = ( -/turf/open/floor/prison{ - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple, /area/prison/research/secret/bioengineering) "afV" = ( -/turf/open/floor/prison{ - dir = 6; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/southeast, /area/prison/research/secret/bioengineering) "afW" = ( /obj/structure/bed, @@ -2433,33 +1867,23 @@ /area/prison/research/secret/containment) "aga" = ( /obj/structure/machinery/smartfridge/secure/virology, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/southwest, /area/prison/research/secret/bioengineering) "agb" = ( /obj/effect/decal/warning_stripes{ icon_state = "E" }, -/turf/open/floor/prison{ - dir = 6; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/southeast, /area/prison/research/secret/bioengineering) "agc" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "Bioengineering" }, -/turf/open/floor/prison{ - icon_state = "whitepurplefull" - }, +/turf/open/floor/prison/whitepurplefull, /area/prison/research/secret/bioengineering) "agd" = ( -/turf/open/floor/prison{ - icon_state = "whitepurplefull" - }, +/turf/open/floor/prison/whitepurplefull, /area/prison/research/secret/bioengineering) "age" = ( /obj/structure/window/framed/prison/reinforced, @@ -2471,9 +1895,7 @@ }, /obj/structure/closet/radiation, /obj/item/device/motiondetector, -/turf/open/floor/prison{ - icon_state = "whitepurplefull" - }, +/turf/open/floor/prison/whitepurplefull, /area/prison/research/secret) "agg" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -2484,9 +1906,7 @@ /obj/item/ammo_magazine/pistol/b92fs, /obj/item/ammo_magazine/pistol/b92fs, /obj/item/weapon/gun/pistol/b92fs, -/turf/open/floor/prison{ - icon_state = "whitepurplefull" - }, +/turf/open/floor/prison/whitepurplefull, /area/prison/research/secret) "agh" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -2497,15 +1917,11 @@ /obj/item/ammo_magazine/pistol/b92fs, /obj/item/ammo_magazine/pistol/b92fs, /obj/item/weapon/gun/pistol/b92fs, -/turf/open/floor/prison{ - icon_state = "whitepurplefull" - }, +/turf/open/floor/prison/whitepurplefull, /area/prison/research/secret) "agi" = ( /obj/structure/closet/radiation, -/turf/open/floor/prison{ - icon_state = "whitepurplefull" - }, +/turf/open/floor/prison/whitepurplefull, /area/prison/research/secret) "agj" = ( /obj/structure/machinery/disposal, @@ -2533,37 +1949,25 @@ /area/prison/research/secret/containment) "ago" = ( /obj/structure/machinery/cm_vending/sorted/tech/robotics, -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/northwest, /area/prison/research/secret) "agp" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 8 }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/northwest, /area/prison/research/secret) "agq" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/north, /area/prison/research/secret) "agr" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 5; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/northeast, /area/prison/research/secret) "ags" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -2631,30 +2035,21 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/maxsec/north) "agE" = ( /obj/structure/sink{ dir = 4; pixel_x = 12 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/maxsec/north) "agF" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ dir = 2; name = "Panopticon Monitoring" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/security/monitoring/maxsec/panopticon) "agG" = ( /obj/structure/pipes/standard/simple/hidden/supply, @@ -2662,10 +2057,7 @@ dir = 2; name = "Panopticon Monitoring" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/security/monitoring/maxsec/panopticon) "agH" = ( /obj/structure/sink{ @@ -2682,10 +2074,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/maxsec/north) "agJ" = ( /turf/closed/wall/prison, @@ -2710,10 +2099,7 @@ dir = 8; icon_state = "pipe-c" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/maxsec/north) "agP" = ( /obj/structure/pipes/vents/scrubber{ @@ -2732,19 +2118,13 @@ /turf/open/floor/prison, /area/prison/research/secret/containment) "agS" = ( -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/northwest, /area/prison/research/secret/containment) "agT" = ( /obj/structure/pipes/vents/scrubber{ dir = 4 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/north, /area/prison/research/secret/containment) "agU" = ( /turf/closed/wall/r_wall/prison, @@ -2753,10 +2133,7 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkpurplecorners2" - }, +/turf/open/floor/prison/darkpurplecorners2/east, /area/prison/research/secret/containment) "agW" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ @@ -2774,23 +2151,16 @@ /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "whitepurplefull" - }, +/turf/open/floor/prison/whitepurplefull, /area/prison/research/secret/containment) "agZ" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkpurplecorners2" - }, +/turf/open/floor/prison/darkpurplecorners2/north, /area/prison/research/secret/containment) "aha" = ( /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "whitepurplefull" - }, +/turf/open/floor/prison/whitepurplefull, /area/prison/research/secret/containment) "ahb" = ( /obj/structure/toilet{ @@ -2801,10 +2171,7 @@ /area/prison/research/secret/containment) "ahc" = ( /obj/structure/pipes/vents/pump/on, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/north, /area/prison/research/secret/containment) "ahd" = ( /obj/structure/machinery/power/apc{ @@ -2812,19 +2179,13 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/north, /area/prison/research/secret/containment) "ahe" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - dir = 5; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/northeast, /area/prison/research/secret/containment) "ahf" = ( /obj/effect/decal/warning_stripes{ @@ -2864,19 +2225,13 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/northwest, /area/prison/research/secret) "ahj" = ( /obj/structure/machinery/alarm/almayer{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/north, /area/prison/research/secret) "ahk" = ( /obj/structure/machinery/power/apc{ @@ -2885,29 +2240,17 @@ start_charge = 0 }, /obj/effect/landmark/good_item, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/north, /area/prison/research/secret) "ahl" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/north, /area/prison/research/secret) "ahm" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkpurplecorners2" - }, +/turf/open/floor/prison/darkpurplecorners2/east, /area/prison/research/secret) "ahn" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/east, /area/prison/research/secret) "aho" = ( /obj/structure/pipes/vents/pump{ @@ -2923,39 +2266,24 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/maxsec/north) "ahr" = ( /obj/structure/machinery/light/small, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/maxsec/north) "ahs" = ( /obj/structure/machinery/alarm/almayer{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/cellblock/maxsec/north) "aht" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/cellblock/maxsec/north) "ahu" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/cellblock/maxsec/north) "ahv" = ( /obj/structure/machinery/power/apc{ @@ -2963,10 +2291,7 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/cellblock/maxsec/north) "ahw" = ( /obj/structure/machinery/light/small, @@ -2986,9 +2311,7 @@ /obj/structure/machinery/door/airlock/almayer/medical/glass/colony{ name = "Simian Containment Pen" }, -/turf/open/floor/prison{ - icon_state = "whitepurplefull" - }, +/turf/open/floor/prison/whitepurplefull, /area/prison/research/secret/containment) "ahC" = ( /obj/structure/pipes/standard/simple/hidden/supply, @@ -2998,32 +2321,20 @@ /obj/structure/surface/table/reinforced, /obj/item/clothing/suit/chef/classic, /obj/item/tool/kitchen/rollingpin, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/prison/residential/south) "ahE" = ( -/turf/open/floor/prison{ - dir = 6; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/southeast, /area/prison/research/secret/containment) "ahF" = ( -/turf/open/floor/prison{ - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2, /area/prison/research/secret) "ahG" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2, /area/prison/research/secret) "ahH" = ( -/turf/open/floor/prison{ - icon_state = "whitepurplefull" - }, +/turf/open/floor/prison/whitepurplefull, /area/prison/research/secret) "ahI" = ( /obj/item/device/motiondetector, @@ -3034,10 +2345,7 @@ /obj/item/clothing/suit/chef/classic, /obj/item/tool/kitchen/rollingpin, /obj/structure/machinery/light, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/prison/residential/south) "ahK" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ @@ -3053,9 +2361,7 @@ /area/prison/research/secret) "ahM" = ( /obj/effect/landmark/static_comms/net_two, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/prison/hangar_storage/main) "ahN" = ( /turf/closed/wall/r_wall/prison_unmeltable, @@ -3070,10 +2376,7 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/cellblock/maxsec/north) "ahQ" = ( /obj/structure/surface/table/reinforced, @@ -3082,10 +2385,7 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/prison/residential/south) "ahT" = ( /obj/structure/pipes/standard/simple/hidden/supply, @@ -3108,10 +2408,7 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 5; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/northeast, /area/prison/research/secret/containment) "aib" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -3121,16 +2418,11 @@ dir = 2; name = "Test Subject Containment" }, -/turf/open/floor/prison{ - icon_state = "whitepurplefull" - }, +/turf/open/floor/prison/whitepurplefull, /area/prison/research/secret/containment) "aid" = ( /obj/structure/pipes/standard/manifold/fourway/hidden/supply, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/north, /area/prison/research/secret) "aie" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -3140,9 +2432,7 @@ dir = 2; name = "Test Subject Containment" }, -/turf/open/floor/prison{ - icon_state = "whitepurplefull" - }, +/turf/open/floor/prison/whitepurplefull, /area/prison/research/secret) "aif" = ( /obj/effect/decal/warning_stripes{ @@ -3151,16 +2441,10 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/northwest, /area/prison/research/secret) "aih" = ( -/turf/open/floor/prison{ - dir = 5; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/northeast, /area/prison/cellblock/highsec/north/south) "aii" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ @@ -3172,41 +2456,27 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/east, /area/prison/research/secret) "aik" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ name = "Maximum-Security Panopticon" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/maxsec/north) "ail" = ( /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/cellblock/maxsec/north) "ain" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/southwest, /area/prison/research/secret/containment) "aio" = ( /obj/item/paper/prison_station/monkey_note, -/turf/open/floor/prison{ - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2, /area/prison/research/secret/containment) "aip" = ( /obj/structure/machinery/shower{ @@ -3233,28 +2503,20 @@ /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/southwest, /area/prison/research/secret) "ais" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 8 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkpurplecorners2" - }, +/turf/open/floor/prison/darkpurplecorners2/west, /area/prison/research/secret) "ait" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 1 }, /obj/effect/landmark/static_comms/net_two, -/turf/open/floor/prison{ - icon_state = "whitepurplefull" - }, +/turf/open/floor/prison/whitepurplefull, /area/prison/research/secret) "aiu" = ( /obj/structure/surface/rack, @@ -3262,23 +2524,17 @@ /obj/item/ammo_magazine/pistol/highpower, /obj/item/ammo_magazine/pistol/highpower, /obj/item/weapon/gun/pistol/highpower, -/turf/open/floor/prison{ - icon_state = "whitepurplefull" - }, +/turf/open/floor/prison/whitepurplefull, /area/prison/research/secret) "aiv" = ( /obj/structure/largecrate/supply/weapons/flamers, -/turf/open/floor/prison{ - icon_state = "whitepurplefull" - }, +/turf/open/floor/prison/whitepurplefull, /area/prison/research/secret) "aiw" = ( /obj/structure/surface/rack, /obj/item/ammo_magazine/shotgun/buckshot, /obj/item/weapon/gun/shotgun/combat, -/turf/open/floor/prison{ - icon_state = "whitepurplefull" - }, +/turf/open/floor/prison/whitepurplefull, /area/prison/research/secret) "aix" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -3296,35 +2552,24 @@ /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ name = "Maximum-Security Panopticon" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/maxsec/north) "aiz" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/cellblock/maxsec/north) "aiB" = ( /obj/structure/pipes/standard/manifold/fourway/hidden/supply, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/cellblock/maxsec/north) "aiC" = ( /obj/structure/machinery/door/airlock/almayer/medical/glass/colony{ dir = 2; name = "Simian Containment Pen" }, -/turf/open/floor/prison{ - icon_state = "whitepurplefull" - }, +/turf/open/floor/prison/whitepurplefull, /area/prison/research/secret/containment) "aiD" = ( /turf/closed/wall/prison, @@ -3333,34 +2578,24 @@ /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22" }, -/turf/open/floor/prison{ - icon_state = "whitepurplefull" - }, +/turf/open/floor/prison/whitepurplefull, /area/prison/research/secret) "aiF" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/southwest, /area/prison/research/secret) "aiG" = ( /obj/structure/machinery/light{ dir = 4 }, /obj/structure/largecrate/random, -/turf/open/floor/prison{ - icon_state = "whitepurplefull" - }, +/turf/open/floor/prison/whitepurplefull, /area/prison/research/secret) "aiH" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22" }, -/turf/open/floor/prison{ - dir = 6; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/southeast, /area/prison/research/secret) "aiI" = ( /turf/closed/wall/r_wall/prison, @@ -3431,37 +2666,25 @@ /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22" }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/northwest, /area/prison/research/secret) "aiX" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/north, /area/prison/research/secret) "aiY" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22" }, -/turf/open/floor/prison{ - dir = 5; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/northeast, /area/prison/research/secret) "aiZ" = ( /obj/structure/surface/rack, -/obj/item/handcuffs, -/obj/item/handcuffs, -/obj/item/handcuffs, -/obj/item/handcuffs, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkpurple2" - }, +/obj/item/restraint/handcuffs, +/obj/item/restraint/handcuffs, +/obj/item/restraint/handcuffs, +/obj/item/restraint/handcuffs, +/turf/open/floor/prison/darkpurple2/west, /area/prison/research/secret) "aja" = ( /obj/structure/surface/rack, @@ -3483,10 +2706,7 @@ dir = 2; name = "Maximum-Security Panopticon" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/maxsec/north) "aje" = ( /obj/structure/pipes/standard/simple/hidden/supply, @@ -3494,10 +2714,7 @@ dir = 2; name = "Maximum-Security Panopticon" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/maxsec/north) "ajf" = ( /obj/structure/machinery/light{ @@ -3512,10 +2729,7 @@ /turf/open/floor/prison, /area/prison/research/secret/dissection) "aji" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/west, /area/prison/research/secret) "ajj" = ( /obj/structure/pipes/standard/simple/hidden/supply, @@ -3534,10 +2748,7 @@ /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/maxsec/south) "ajn" = ( /obj/structure/machinery/optable, @@ -3547,10 +2758,7 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/west, /area/prison/research/secret) "ajp" = ( /obj/structure/window/framed/prison/reinforced, @@ -3561,42 +2769,27 @@ dir = 1 }, /obj/structure/machinery/disposal, -/turf/open/floor/prison{ - dir = 9; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/northwest, /area/prison/research/secret/chemistry) "ajr" = ( /obj/structure/machinery/chem_dispenser, /obj/item/reagent_container/glass/beaker/bluespace, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/north, /area/prison/research/secret/chemistry) "ajs" = ( /obj/structure/machinery/chem_master, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/north, /area/prison/research/secret/chemistry) "ajt" = ( /obj/structure/machinery/alarm/almayer{ dir = 1 }, /obj/structure/surface/table/reinforced, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/north, /area/prison/research/secret/chemistry) "aju" = ( /obj/structure/closet/secure_closet/chemical, -/turf/open/floor/prison{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/northeast, /area/prison/research/secret/chemistry) "ajv" = ( /obj/structure/machinery/alarm/almayer{ @@ -3664,20 +2857,14 @@ dir = 4; pixel_x = 11 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/maxsec/south) "ajE" = ( /obj/structure/sink{ dir = 8; pixel_x = -12 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/maxsec/south) "ajF" = ( /obj/structure/machinery/flasher{ @@ -3694,31 +2881,19 @@ /turf/open/floor/prison, /area/prison/research/secret) "ajI" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/west, /area/prison/research/secret/chemistry) "ajJ" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/research/secret/chemistry) "ajK" = ( /obj/structure/bed/chair/office/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/research/secret/chemistry) "ajL" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/east, /area/prison/research/secret/chemistry) "ajM" = ( /obj/structure/window/framed/prison/reinforced, @@ -3730,10 +2905,7 @@ /turf/open/floor/plating, /area/prison/research/secret/chemistry) "ajN" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/prison/hanger/research) "ajO" = ( /turf/open/floor/prison, @@ -3750,10 +2922,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/maxsec/south) "ajR" = ( /obj/structure/disposalpipe/segment{ @@ -3771,20 +2940,14 @@ dir = 8; icon_state = "pipe-c" }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/west, /area/prison/cellblock/maxsec/south) "ajT" = ( /obj/structure/disposalpipe/segment{ dir = 1; icon_state = "pipe-c" }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/east, /area/prison/cellblock/maxsec/south) "ajU" = ( /obj/structure/machinery/door/airlock/prison{ @@ -3799,16 +2962,10 @@ /area/prison/cellblock/maxsec/south) "ajV" = ( /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/maxsec/south) "ajW" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/maxsec/south) "ajX" = ( /obj/structure/disposalpipe/segment{ @@ -3816,10 +2973,7 @@ icon_state = "pipe-c" }, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/east, /area/prison/cellblock/maxsec/south) "ajY" = ( /obj/structure/machinery/light{ @@ -3828,9 +2982,7 @@ /turf/closed/wall/r_wall/prison, /area/prison/research/secret/containment) "ajZ" = ( -/turf/open/floor/prison{ - icon_state = "whitepurplefull" - }, +/turf/open/floor/prison/whitepurplefull, /area/prison/research/secret/containment) "aka" = ( /obj/structure/sink{ @@ -3852,10 +3004,7 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/east, /area/prison/research/secret) "akf" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -3864,42 +3013,28 @@ /obj/structure/machinery/door/airlock/almayer/medical/glass/colony{ name = "Chemistry" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/prison/research/secret/chemistry) "akg" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 1 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/west, /area/prison/research/secret/chemistry) "aki" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/research/secret/chemistry) "akj" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 10 }, -/turf/open/floor/prison{ - icon_state = "whitepurplecorner" - }, +/turf/open/floor/prison/whitepurplecorner, /area/prison/research/secret/chemistry) "akk" = ( -/turf/open/floor/prison{ - dir = 6; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/southeast, /area/prison/research/secret/chemistry) "akl" = ( /obj/structure/window/framed/prison/reinforced/hull, @@ -3915,25 +3050,18 @@ /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ density = 0; icon_state = "door_open"; - name = "Cell Access"; - req_access = null + name = "Cell Access" }, /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/maxsec/south) "akp" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/west, /area/prison/cellblock/maxsec/south) "akq" = ( /obj/structure/machinery/light{ @@ -3943,10 +3071,7 @@ id = "suspended_WWN"; pixel_x = 24 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/maxsec/south) "akr" = ( /obj/structure/machinery/light{ @@ -3956,19 +3081,13 @@ id = "suspended_WEN"; pixel_x = -24 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/maxsec/south) "aks" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 8 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/east, /area/prison/cellblock/maxsec/south) "akt" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -3979,10 +3098,7 @@ icon_state = "door_open"; name = "Cell Access" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/maxsec/south) "akv" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -3991,20 +3107,14 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/hallway/east) "akw" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, /obj/structure/pipes/standard/manifold/hidden/supply, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/hallway/east) "akx" = ( /obj/structure/machinery/light{ @@ -4014,10 +3124,7 @@ id = "suspended_EWN"; pixel_x = 24 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/maxsec/south) "aky" = ( /obj/structure/machinery/light{ @@ -4027,10 +3134,7 @@ id = "suspended_EEN"; pixel_x = -24 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/maxsec/south) "akA" = ( /obj/structure/largecrate/random, @@ -4077,20 +3181,14 @@ /obj/effect/decal/siding/wood_siding{ icon_state = "wood_siding2" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/residential/central) "akI" = ( /obj/structure/pipes/standard/manifold/hidden/supply, /obj/effect/decal/siding/wood_siding{ icon_state = "wood_siding2" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/residential/central) "akJ" = ( /obj/effect/landmark/corpsespawner/scientist, @@ -4120,17 +3218,11 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/southwest, /area/prison/research/secret) "akP" = ( /obj/structure/pipes/standard/manifold/fourway/hidden/supply, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkpurplecorners2" - }, +/turf/open/floor/prison/darkpurplecorners2/west, /area/prison/research/secret) "akQ" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -4142,10 +3234,7 @@ /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/east, /area/prison/research/secret) "akS" = ( /obj/structure/machinery/smartfridge, @@ -4155,16 +3244,11 @@ /obj/structure/pipes/vents/scrubber{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/southwest, /area/prison/research/secret/chemistry) "akU" = ( /obj/effect/landmark/corpsespawner/scientist, -/turf/open/floor/prison{ - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple, /area/prison/research/secret/chemistry) "akV" = ( /turf/open/floor/plating, @@ -4176,18 +3260,13 @@ /turf/open/floor/plating, /area/prison/cellblock/maxsec/south) "akX" = ( -/turf/open/floor/prison{ - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple, /area/prison/research/secret/chemistry) "akY" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/prison{ - dir = 6; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/southeast, /area/prison/research/secret/chemistry) "akZ" = ( /obj/structure/surface/table/reinforced, @@ -4196,10 +3275,7 @@ /obj/item/stack/sheet/mineral/phoron, /obj/item/stack/sheet/mineral/phoron, /obj/item/stack/sheet/mineral/phoron, -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2/northwest, /area/prison/research/secret/chemistry) "alb" = ( /obj/structure/disposalpipe/segment{ @@ -4213,10 +3289,7 @@ /obj/effect/decal/siding{ icon_state = "siding2" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/residential/central) "ald" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -4231,10 +3304,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/maxsec/south) "alf" = ( /turf/closed/wall/r_wall/prison, @@ -4244,10 +3314,7 @@ dir = 2; icon_state = "pipe-c" }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/west, /area/prison/cellblock/maxsec/south) "alh" = ( /obj/structure/machinery/light/small{ @@ -4262,10 +3329,7 @@ dir = 8 }, /obj/structure/machinery/door/window/westright, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/prison/cellblock/maxsec/south) "alj" = ( /obj/structure/window/reinforced, @@ -4273,20 +3337,14 @@ /obj/structure/machinery/shower{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/prison/cellblock/maxsec/south) "alk" = ( /obj/structure/disposalpipe/segment{ dir = 4; icon_state = "pipe-c" }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/east, /area/prison/cellblock/maxsec/south) "all" = ( /obj/structure/disposalpipe/segment{ @@ -4324,10 +3382,7 @@ /obj/effect/decal/siding{ icon_state = "siding2" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/residential/central) "als" = ( /obj/structure/machinery/light{ @@ -4439,18 +3494,13 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "bright_clean_marked" - }, +/turf/open/floor/prison/bright_clean_marked, /area/prison/research/secret) "alQ" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/west, /area/prison/research/secret) "alR" = ( /turf/closed/wall/prison, @@ -4458,10 +3508,7 @@ "alS" = ( /obj/structure/surface/table/reinforced, /obj/item/storage/box/beakers, -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2/northwest, /area/prison/research/secret/chemistry) "alT" = ( /obj/structure/surface/table/reinforced, @@ -4469,25 +3516,16 @@ pixel_y = -24; start_charge = 0 }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2/northwest, /area/prison/research/secret/chemistry) "alU" = ( /obj/structure/surface/table/reinforced, -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2/northwest, /area/prison/research/secret/chemistry) "alV" = ( /obj/structure/surface/table/reinforced, /obj/item/storage/box/syringes, -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2/northwest, /area/prison/research/secret/chemistry) "alW" = ( /obj/structure/surface/table/reinforced, @@ -4495,10 +3533,7 @@ dir = 1; pixel_y = -10 }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2/northwest, /area/prison/research/secret/chemistry) "alX" = ( /obj/structure/machinery/light{ @@ -4510,20 +3545,14 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/prison/red/northwest, /area/prison/cellblock/highsec/north/north) "alZ" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk{ dir = 1 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/west, /area/prison/cellblock/maxsec/south) "ama" = ( /obj/structure/surface/table/reinforced, @@ -4532,9 +3561,7 @@ /turf/open/floor/prison, /area/prison/research/secret/dissection) "amb" = ( -/turf/open/floor/prison{ - icon_state = "bright_clean_marked" - }, +/turf/open/floor/prison/bright_clean_marked, /area/prison/research/secret) "amc" = ( /turf/closed/wall/r_wall/prison_unmeltable, @@ -4544,10 +3571,7 @@ dir = 4 }, /obj/structure/disposalpipe/trunk, -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/west, /area/prison/cellblock/maxsec/south) "ame" = ( /obj/structure/machinery/light/small{ @@ -4564,10 +3588,7 @@ dir = 8 }, /obj/structure/disposalpipe/trunk, -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/east, /area/prison/cellblock/maxsec/south) "amh" = ( /obj/structure/pipes/vents/pump{ @@ -4577,10 +3598,7 @@ /area/prison/cellblock/maxsec/south) "ami" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/west, /area/prison/research/secret) "amj" = ( /obj/effect/landmark/hunter_primary, @@ -4597,10 +3615,7 @@ /obj/structure/disposalpipe/trunk{ dir = 1 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/west, /area/prison/cellblock/maxsec/south) "amm" = ( /obj/effect/decal/cleanable/blood/splatter, @@ -4614,19 +3629,13 @@ /obj/structure/disposalpipe/trunk{ dir = 1 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/east, /area/prison/cellblock/maxsec/south) "amo" = ( /obj/structure/surface/table/reinforced, /obj/item/tool/surgery/bonegel, /obj/item/tool/surgery/bonesetter, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/prison/medbay/surgery) "amp" = ( /obj/structure/surface/table/reinforced, @@ -4637,26 +3646,17 @@ /obj/item/tool/soap{ pixel_x = 5 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/prison/medbay/surgery) "amq" = ( /obj/structure/sink{ pixel_y = 15 }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/northwest, /area/prison/medbay/surgery) "amr" = ( /obj/structure/closet/secure_closet/medical2, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/north, /area/prison/medbay/surgery) "ams" = ( /turf/closed/wall/r_wall/prison_unmeltable, @@ -4674,20 +3674,14 @@ "amv" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk, -/turf/open/floor/prison{ - dir = 8; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/west, /area/prison/cellblock/maxsec/south) "amw" = ( /obj/structure/toilet{ dir = 4 }, /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/west, /area/prison/cellblock/maxsec/south) "amx" = ( /obj/structure/machinery/flasher{ @@ -4721,17 +3715,11 @@ pixel_x = -4 }, /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/east, /area/prison/cellblock/maxsec/south) "amC" = ( /obj/structure/machinery/bioprinter, -/turf/open/floor/prison{ - dir = 5; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/northeast, /area/prison/medbay/surgery) "amD" = ( /obj/structure/surface/table/reinforced, @@ -4764,69 +3752,47 @@ /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/prison{ - icon_state = "bright_clean_marked" - }, +/turf/open/floor/prison/bright_clean_marked, /area/prison/research/secret) "amI" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" }, /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/southwest, /area/prison/research/secret) "amJ" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" }, /obj/effect/decal/cleanable/blood/drip, -/turf/open/floor/prison{ - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2, /area/prison/research/secret) "amK" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/prison{ - dir = 6; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/southeast, /area/prison/research/secret) "amL" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/faxmachine, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/research/RD) "amM" = ( /obj/structure/machinery/computer/rdconsole, /obj/structure/surface/table/reinforced, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/research/RD) "amN" = ( /obj/structure/machinery/computer/mecha, /obj/structure/surface/table/reinforced, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/research/RD) "amO" = ( /obj/structure/machinery/computer/robotics, /obj/structure/surface/table/reinforced, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/research/RD) "amP" = ( /obj/effect/decal/warning_stripes{ @@ -4845,24 +3811,15 @@ /area/prison/hanger/research) "amR" = ( /obj/structure/lamarr, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/research/RD) "amS" = ( /obj/structure/closet/crate, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/prison/hanger/research) "amT" = ( /obj/structure/toilet, -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/east, /area/prison/cellblock/highsec/north/north) "amV" = ( /obj/effect/decal/warning_stripes{ @@ -4893,10 +3850,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/maxsec/south) "anc" = ( /turf/closed/wall/r_wall/prison_unmeltable, @@ -4913,10 +3867,7 @@ dir = 8; health = 80 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/prison/cellblock/maxsec/south) "anf" = ( /obj/structure/window/reinforced{ @@ -4926,10 +3877,7 @@ dir = 1 }, /obj/structure/machinery/door/window/northleft, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/prison/cellblock/maxsec/south) "ang" = ( /obj/structure/machinery/door/airlock/almayer/secure/colony{ @@ -4958,29 +3906,17 @@ /obj/structure/surface/table/reinforced, /obj/item/tool/surgery/retractor, /obj/item/tool/surgery/hemostat, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/prison/medbay/surgery) "ank" = ( -/turf/open/floor/prison{ - dir = 9; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/northwest, /area/prison/medbay/surgery) "anl" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreencorner" - }, +/turf/open/floor/prison/whitegreencorner/east, /area/prison/medbay/surgery) "anm" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/medbay/surgery) "ann" = ( /obj/structure/machinery/power/apc{ @@ -4988,19 +3924,14 @@ pixel_x = 28; start_charge = 0 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/east, /area/prison/medbay/surgery) "ano" = ( /obj/structure/machinery/door/poddoor/shutters/almayer{ id = "research_secret"; name = "Classified Research Shutters" }, -/turf/open/floor/prison{ - icon_state = "bright_clean_marked" - }, +/turf/open/floor/prison/bright_clean_marked, /area/prison/research/secret) "anp" = ( /obj/structure/machinery/door/poddoor/shutters/almayer{ @@ -5008,18 +3939,14 @@ name = "Classified Research Shutters" }, /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/prison/research/secret) "anq" = ( /obj/structure/machinery/door/poddoor/shutters/almayer{ id = "research_secret"; name = "Classified Research Shutters" }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/prison/research/secret) "anr" = ( /obj/structure/surface/table/reinforced, @@ -5036,10 +3963,7 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/research/RD) "anv" = ( /turf/closed/wall/prison, @@ -5086,17 +4010,11 @@ /area/prison/security/checkpoint/maxsec_highsec) "anC" = ( /obj/structure/machinery/vending/security, -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/northwest, /area/prison/security/checkpoint/maxsec_highsec) "anD" = ( /obj/structure/pipes/vents/pump/on, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/north, /area/prison/security/checkpoint/maxsec_highsec) "anE" = ( /obj/structure/machinery/power/apc{ @@ -5104,24 +4022,15 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/north, /area/prison/security/checkpoint/maxsec_highsec) "anF" = ( /obj/structure/filingcabinet, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/north, /area/prison/security/checkpoint/maxsec_highsec) "anG" = ( /obj/structure/filingcabinet, -/turf/open/floor/prison{ - dir = 5; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/northeast, /area/prison/security/checkpoint/maxsec_highsec) "anH" = ( /obj/structure/window/framed/prison/reinforced, @@ -5131,10 +4040,7 @@ /obj/structure/pipes/vents/scrubber{ dir = 4 }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/prison/red/northwest, /area/prison/cellblock/highsec/north/north) "anJ" = ( /obj/structure/machinery/light{ @@ -5144,56 +4050,36 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 10 }, -/turf/open/floor/prison{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/prison/red/northeast, /area/prison/cellblock/highsec/north/north) "anK" = ( /obj/structure/surface/table/reinforced, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/prison/medbay/surgery) "anL" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/west, /area/prison/medbay/surgery) "anM" = ( /obj/structure/machinery/optable, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/medbay/surgery) "anN" = ( /obj/structure/machinery/computer/operating, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/medbay/surgery) "anO" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/east, /area/prison/medbay/surgery) "anP" = ( /obj/structure/machinery/alarm/almayer{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "bright_clean_marked" - }, +/turf/open/floor/prison/bright_clean_marked, /area/prison/research) "anQ" = ( /obj/structure/window/framed/prison/reinforced, @@ -5231,28 +4117,19 @@ /obj/structure/pipes/vents/scrubber{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/research/RD) "anY" = ( /obj/structure/sink{ dir = 4; pixel_x = 12 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/east, /area/prison/cellblock/highsec/north/north) "anZ" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/recharger, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/west, /area/prison/security/checkpoint/maxsec_highsec) "aoa" = ( /obj/structure/pipes/standard/simple/hidden/supply, @@ -5263,29 +4140,20 @@ /area/prison/security/checkpoint/maxsec_highsec) "aod" = ( /obj/structure/pipes/vents/scrubber, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/east, /area/prison/security/checkpoint/maxsec_highsec) "aoe" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, /obj/item/stack/rods, -/turf/open/floor/prison{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/prison/red/west, /area/prison/cellblock/highsec/north/north) "aof" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/prison/red/east, /area/prison/cellblock/highsec/north/north) "aog" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -5325,9 +4193,7 @@ /turf/open/floor/plating/plating_catwalk/prison, /area/prison/cellblock/maxsec/south) "aom" = ( -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/prison/cellblock/highsec/north/north) "aon" = ( /obj/structure/window/framed/prison/cell, @@ -5337,10 +4203,7 @@ /obj/structure/toilet{ dir = 4 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/west, /area/prison/cellblock/highsec/north/north) "aop" = ( /obj/structure/machinery/light/small{ @@ -5353,10 +4216,7 @@ dir = 4; pixel_x = 12 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/highsec/north/north) "aor" = ( /turf/closed/wall/prison, @@ -5366,45 +4226,27 @@ dir = 8; pixel_x = -12 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/highsec/north/north) "aot" = ( /obj/structure/toilet{ dir = 8; pixel_x = -4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/east, /area/prison/cellblock/highsec/north/north) "aou" = ( -/turf/open/floor/prison{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/prison/red/northwest, /area/prison/cellblock/highsec/north/north) "aov" = ( -/turf/open/floor/prison{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/prison/red/northeast, /area/prison/cellblock/highsec/north/north) "aow" = ( /obj/structure/toilet, -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/west, /area/prison/cellblock/highsec/north/north) "aox" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/highsec/north/north) "aoy" = ( /obj/structure/machinery/flasher{ @@ -5428,16 +4270,10 @@ /obj/structure/surface/table/reinforced, /obj/item/tool/surgery/circular_saw, /obj/item/tool/surgery/scalpel/manager, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/prison/medbay/surgery) "aoC" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/west, /area/prison/medbay/surgery) "aoD" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -5448,10 +4284,7 @@ icon_state = "pipe-c" }, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/medbay/surgery) "aoE" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -5460,10 +4293,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/medbay/surgery) "aoF" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -5473,10 +4303,7 @@ dir = 2; icon_state = "pipe-c" }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/east, /area/prison/medbay/surgery) "aoG" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -5485,10 +4312,7 @@ /obj/structure/machinery/door/airlock/almayer/secure/colony{ name = "Operating Theatre" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/prison/medbay/surgery) "aoH" = ( /obj/structure/pipes/vents/pump{ @@ -5497,28 +4321,19 @@ /obj/effect/decal/siding/wood_siding{ icon_state = "wood_siding6" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/residential/central) "aoI" = ( /obj/effect/decal/siding/wood_siding{ icon_state = "wood_siding9" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/residential/central) "aoJ" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/northwest, /area/prison/research) "aoK" = ( /obj/structure/bed/chair/office/dark{ @@ -5534,36 +4349,21 @@ /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/research/RD) "aoO" = ( /obj/structure/pipes/vents/pump/on, -/turf/open/floor/prison{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/prison/red/west, /area/prison/cellblock/highsec/north/north) "aoP" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "redcorner" - }, +/turf/open/floor/prison/redcorner/north, /area/prison/cellblock/highsec/north/north) "aoQ" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/prison/red/north, /area/prison/cellblock/highsec/north/north) "aoR" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/prison/red/north, /area/prison/cellblock/highsec/north/north) "aoS" = ( /obj/effect/landmark/hunter_primary, @@ -5571,32 +4371,20 @@ /area/prison/cellblock/highsec/north/north) "aoT" = ( /obj/structure/pipes/vents/scrubber, -/turf/open/floor/prison{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/prison/red/north, /area/prison/cellblock/highsec/north/north) "aoU" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "redcorner" - }, +/turf/open/floor/prison/redcorner/east, /area/prison/cellblock/highsec/north/north) "aoV" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/prison/red/east, /area/prison/cellblock/highsec/north/north) "aoW" = ( /obj/structure/surface/rack, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/west, /area/prison/security/checkpoint/maxsec_highsec) "aoX" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ @@ -5614,16 +4402,11 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "darkredcorners2" - }, +/turf/open/floor/prison/darkredcorners2, /area/prison/security/checkpoint/maxsec_highsec) "apa" = ( /obj/structure/pipes/standard/manifold/hidden/supply, -/turf/open/floor/prison{ - dir = 6; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/southeast, /area/prison/security/checkpoint/maxsec_highsec) "apc" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -5633,10 +4416,7 @@ dir = 8; flipped = 1 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/prison/red/west, /area/prison/cellblock/highsec/north/north) "ape" = ( /obj/structure/pipes/vents/scrubber, @@ -5675,40 +4455,23 @@ icon_state = "door_open"; opacity = 0 }, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/prison/cellblock/highsec/north/north) "apk" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/west, /area/prison/cellblock/highsec/north/north) "apl" = ( /obj/structure/bed, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/highsec/north/north) "apm" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/east, /area/prison/cellblock/highsec/north/north) "apn" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/prison/red/west, /area/prison/cellblock/highsec/north/north) "apo" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/prison/red/east, /area/prison/cellblock/highsec/north/north) "app" = ( /obj/structure/machinery/light/small{ @@ -5727,10 +4490,7 @@ /area/prison/cellblock/maxsec/south) "aps" = ( /obj/effect/landmark/hunter_primary, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/medbay) "apt" = ( /turf/closed/wall/r_wall/prison, @@ -5750,29 +4510,20 @@ /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/medbay) "apy" = ( /obj/structure/surface/table/reinforced, /obj/item/tool/surgery/FixOVein, /obj/item/tool/surgery/surgicaldrill, /obj/item/tool/surgery/cautery, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/prison/medbay/surgery) "apz" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/southwest, /area/prison/medbay/surgery) "apA" = ( /obj/effect/decal/warning_stripes{ @@ -5797,17 +4548,12 @@ dir = 8; pixel_x = -12 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/west, /area/prison/cellblock/highsec/north/north) "apD" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/manifold/fourway/hidden/supply, -/turf/open/floor/prison{ - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen, /area/prison/medbay/surgery) "apE" = ( /obj/structure/machinery/holosign_switch{ @@ -5817,41 +4563,27 @@ /obj/structure/pipes/vents/scrubber{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen, /area/prison/medbay/surgery) "apF" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk{ dir = 1 }, -/turf/open/floor/prison{ - dir = 6; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/southeast, /area/prison/medbay/surgery) "apG" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/southwest, /area/prison/research) "apH" = ( /obj/structure/sink{ dir = 8; pixel_x = -11 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/medbay) "apI" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/medbay) "apJ" = ( /obj/structure/window/reinforced, @@ -5859,25 +4591,16 @@ dir = 8 }, /obj/structure/machinery/door/window/westright, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/prison/medbay) "apK" = ( /turf/closed/wall/prison, /area/prison/medbay) "apL" = ( -/turf/open/floor/prison{ - dir = 9; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/northwest, /area/prison/medbay) "apM" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/north, /area/prison/medbay) "apN" = ( /obj/effect/decal/cleanable/blood/oil, @@ -5891,23 +4614,14 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/research/RD) "apR" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/research/RD) "apS" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/research/RD) "apT" = ( /obj/effect/decal/cleanable/blood, @@ -5917,18 +4631,14 @@ /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor/prison{ - dir = 8 - }, +/turf/open/floor/prison/west, /area/prison/research/RD) "apU" = ( /obj/effect/decal/warning_stripes{ icon_state = "N" }, /obj/effect/landmark/good_item, -/turf/open/floor/prison{ - dir = 8 - }, +/turf/open/floor/prison/west, /area/prison/research/RD) "apV" = ( /obj/effect/landmark/good_item, @@ -5938,59 +4648,41 @@ /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 8 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/prison/red/west, /area/prison/cellblock/highsec/north/north) "apX" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/highsec/north/north) "apY" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "redcorner" - }, +/turf/open/floor/prison/redcorner, /area/prison/cellblock/highsec/north/north) "apZ" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "red" - }, +/turf/open/floor/prison/red, /area/prison/cellblock/highsec/north/north) "aqa" = ( /obj/structure/pipes/standard/manifold/hidden/supply, -/turf/open/floor/prison{ - icon_state = "red" - }, +/turf/open/floor/prison/red, /area/prison/cellblock/highsec/north/north) "aqb" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "redcorner" - }, +/turf/open/floor/prison/redcorner/west, /area/prison/cellblock/highsec/north/north) "aqc" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "redcorner" - }, +/turf/open/floor/prison/redcorner/north, /area/prison/cellblock/highsec/north/north) "aqd" = ( /turf/closed/wall/r_wall/prison, @@ -5999,19 +4691,13 @@ /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/prison/red/north, /area/prison/cellblock/highsec/north/north) "aqf" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 6 }, -/turf/open/floor/prison{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/prison/red/northeast, /area/prison/cellblock/highsec/north/north) "aqg" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -6020,28 +4706,20 @@ /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ name = "Security Booth" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/checkpoint/maxsec_highsec) "aqh" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/southwest, /area/prison/security/checkpoint/maxsec_highsec) "aqi" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 9 }, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2, /area/prison/security/checkpoint/maxsec_highsec) "aqj" = ( /obj/effect/decal/warning_stripes{ @@ -6064,29 +4742,18 @@ "aql" = ( /obj/structure/bed/chair/office/dark, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2, /area/prison/security/checkpoint/maxsec_highsec) "aqm" = ( -/turf/open/floor/prison{ - dir = 6; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/southeast, /area/prison/security/checkpoint/maxsec_highsec) "aqn" = ( /obj/structure/surface/table/reinforced, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/checkpoint/maxsec_highsec) "aqo" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/prison/red/east, /area/prison/cellblock/highsec/north/north) "aqq" = ( /obj/structure/machinery/light{ @@ -6096,10 +4763,7 @@ id = "suspended_WWS"; pixel_x = 24 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/maxsec/south) "aqr" = ( /obj/structure/machinery/light{ @@ -6109,10 +4773,7 @@ id = "suspended_WES"; pixel_x = -24 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/maxsec/south) "aqs" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -6127,32 +4788,20 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/medbay) "aqu" = ( /obj/structure/machinery/door/airlock/almayer/medical/glass/colony{ name = "Medical Cell" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/prison/medbay) "aqv" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/west, /area/prison/medbay) "aqw" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/east, /area/prison/medbay) "aqx" = ( /obj/structure/machinery/light{ @@ -6172,10 +4821,7 @@ id = "suspended_EES"; pixel_x = -24 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/maxsec/south) "aqz" = ( /obj/structure/pipes/standard/simple/hidden/supply, @@ -6187,55 +4833,38 @@ dir = 2; name = "Operating Theatre" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/prison/medbay/surgery) "aqA" = ( /obj/structure/machinery/door/airlock/glass_command, /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/research/RD) "aqB" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/research/RD) "aqC" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 9 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/research/RD) "aqD" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" }, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 8 - }, +/turf/open/floor/prison/west, /area/prison/research/RD) "aqE" = ( /obj/structure/displaycase/destroyed, /obj/item/shard, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/prison/research/RD) "aqF" = ( /obj/structure/surface/table/reinforced, @@ -6243,94 +4872,62 @@ /obj/structure/machinery/computer/shuttle/dropship/flight/lz2{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/prison/landing/console2) "aqG" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/prison/red/west, /area/prison/cellblock/highsec/north/north) "aqH" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/highsec/north/north) "aqI" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "redcorner" - }, +/turf/open/floor/prison/redcorner, /area/prison/cellblock/highsec/north/north) "aqJ" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 9 }, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/prison/red/southeast, /area/prison/cellblock/highsec/north/north) "aqK" = ( /obj/effect/decal/warning_stripes{ icon_state = "N" }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/east, /area/prison/hanger/research) "aqL" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/light, /obj/effect/landmark/item_pool_spawner/prison_lock, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/checkpoint/maxsec_highsec) "aqM" = ( /obj/structure/machinery/computer/secure_data, /obj/structure/surface/table/reinforced, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/checkpoint/maxsec_highsec) "aqN" = ( /obj/structure/machinery/computer/prisoner, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/checkpoint/maxsec_highsec) "aqO" = ( /obj/structure/machinery/computer/cameras{ network = list("PRISON") }, /obj/structure/surface/table/reinforced, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/checkpoint/maxsec_highsec) "aqQ" = ( /obj/structure/surface/table/reinforced{ flipped = 1 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/prison/red/west, /area/prison/cellblock/highsec/north/north) "aqR" = ( /obj/structure/pipes/standard/simple/hidden/supply, @@ -6338,9 +4935,7 @@ flipped = 1 }, /obj/item/stack/rods, -/turf/open/floor/prison{ - icon_state = "redcorner" - }, +/turf/open/floor/prison/redcorner, /area/prison/cellblock/highsec/north/north) "aqS" = ( /obj/structure/pipes/vents/pump{ @@ -6359,20 +4954,14 @@ dir = 4; icon_state = "pipe-c" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/medbay) "aqU" = ( /obj/structure/pipes/standard/manifold/hidden/supply, /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreencorner" - }, +/turf/open/floor/prison/whitegreencorner/north, /area/prison/medbay) "aqV" = ( /obj/structure/machinery/light{ @@ -6384,45 +4973,30 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/north, /area/prison/medbay) "aqW" = ( /obj/structure/machinery/iv_drip, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/medbay) "aqX" = ( /obj/structure/toilet{ dir = 8; pixel_x = -4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/medbay) "aqY" = ( /obj/structure/pipes/vents/scrubber{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/medbay) "aqZ" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/east, /area/prison/medbay) "ara" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -6431,10 +5005,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/north, /area/prison/medbay) "arb" = ( /obj/structure/disposalpipe/segment{ @@ -6444,16 +5015,10 @@ /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/north, /area/prison/medbay) "arc" = ( -/turf/open/floor/prison{ - dir = 5; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/northeast, /area/prison/medbay) "ard" = ( /obj/structure/window/reinforced{ @@ -6465,67 +5030,46 @@ name = "Classified Research Lockdown" }, /obj/structure/surface/table/reinforced, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/research/RD) "are" = ( /obj/structure/closet/secure_closet/RD, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/research/RD) "arf" = ( -/turf/open/floor/prison{ - icon_state = "bright_clean_marked" - }, +/turf/open/floor/prison/bright_clean_marked, /area/prison/research) "arh" = ( /obj/effect/decal/warning_stripes{ icon_state = "NE-out" }, -/turf/open/floor/prison{ - icon_state = "bright_clean_marked" - }, +/turf/open/floor/prison/bright_clean_marked, /area/prison/research) "ari" = ( /obj/effect/decal/warning_stripes{ icon_state = "N" }, -/turf/open/floor/prison{ - icon_state = "bright_clean_marked" - }, +/turf/open/floor/prison/bright_clean_marked, /area/prison/research) "arj" = ( /obj/effect/decal/warning_stripes{ icon_state = "N" }, /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/west, /area/prison/research) "ark" = ( /obj/effect/decal/warning_stripes{ icon_state = "N" }, /obj/effect/decal/cleanable/blood/drip, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/research) "arl" = ( /obj/effect/decal/warning_stripes{ icon_state = "N" }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/east, /area/prison/research) "arm" = ( /obj/effect/decal/warning_stripes{ @@ -6534,9 +5078,7 @@ /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor/prison{ - dir = 8 - }, +/turf/open/floor/prison/west, /area/prison/research/RD) "arn" = ( /obj/effect/decal/warning_stripes{ @@ -6547,9 +5089,7 @@ pixel_x = 28; start_charge = 0 }, -/turf/open/floor/prison{ - dir = 8 - }, +/turf/open/floor/prison/west, /area/prison/research/RD) "aro" = ( /obj/structure/window/framed/prison/reinforced, @@ -6561,40 +5101,25 @@ pixel_x = 12 }, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/east, /area/prison/cellblock/highsec/north/north) "arq" = ( /obj/structure/pipes/vents/scrubber{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/prison/red/southwest, /area/prison/cellblock/highsec/north/north) "arr" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "redcorner" - }, +/turf/open/floor/prison/redcorner/west, /area/prison/cellblock/highsec/north/north) "ars" = ( /obj/structure/girder, -/turf/open/floor/prison{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/prison/red/west, /area/prison/cellblock/highsec/north/north) "art" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/girder, -/turf/open/floor/prison{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/prison/red/east, /area/prison/cellblock/highsec/north/north) "aru" = ( /obj/structure/toilet{ @@ -6603,36 +5128,24 @@ }, /obj/structure/disposalpipe/segment, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/east, /area/prison/cellblock/maxsec/south) "arv" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/medbay) "arw" = ( -/turf/open/floor/prison{ - icon_state = "whitegreencorner" - }, +/turf/open/floor/prison/whitegreencorner, /area/prison/medbay) "arx" = ( -/turf/open/floor/prison{ - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen, /area/prison/medbay) "ary" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 5 }, -/turf/open/floor/prison{ - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen, /area/prison/medbay) "arB" = ( /obj/structure/machinery/door/airlock/almayer/medical/colony{ @@ -6668,10 +5181,7 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/hanger/research) "arH" = ( /obj/structure/stairs/perspective{ @@ -6682,10 +5192,7 @@ /obj/structure/platform{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/hanger/research) "arI" = ( /obj/structure/machinery/light{ @@ -6698,65 +5205,43 @@ /area/prison/hangar_storage/research) "arK" = ( /obj/structure/surface/rack, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/prison/hangar_storage/research) "arL" = ( /obj/structure/surface/rack, /obj/effect/landmark/crap_item, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/prison/hangar_storage/research) "arM" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/prison/red/west, /area/prison/cellblock/highsec/north/north) "arN" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/north, /area/prison/research) "arO" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, /obj/effect/landmark/good_item, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/north, /area/prison/research) "arP" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/prison/whitepurplecorner/east, /area/prison/research) "arQ" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/research) "arR" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/east, /area/prison/research) "arT" = ( /obj/structure/machinery/power/apc{ @@ -6765,25 +5250,16 @@ start_charge = 0 }, /obj/item/stack/rods, -/turf/open/floor/prison{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/prison/red/west, /area/prison/cellblock/highsec/north/north) "arU" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/item/stack/rods, -/turf/open/floor/prison{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/prison/red/east, /area/prison/cellblock/highsec/north/north) "arV" = ( /obj/structure/bed, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/maxsec/south) "arW" = ( /obj/structure/pipes/unary/freezer{ @@ -6800,10 +5276,7 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/east, /area/prison/medbay) "arZ" = ( /obj/structure/morgue, @@ -6816,43 +5289,28 @@ /turf/open/floor/prison, /area/prison/medbay/morgue) "asb" = ( -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/prison/research) "asc" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/northwest, /area/prison/research) "asd" = ( /obj/structure/sign/safety/nonpress_0g{ pixel_y = 30 }, -/turf/open/floor/prison{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/northeast, /area/prison/research) "ase" = ( -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/prison/hanger/research) "asf" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/hanger/research) "asg" = ( -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/prison/hangar_storage/research) "asi" = ( /obj/structure/machinery/light/small{ @@ -6871,10 +5329,7 @@ "ask" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/prison/red/east, /area/prison/cellblock/highsec/north/north) "asl" = ( /obj/structure/pipes/standard/manifold/visible{ @@ -6886,35 +5341,25 @@ /obj/structure/pipes/standard/manifold/visible{ layer = 2.3 }, -/turf/open/floor/prison{ - icon_state = "bright_clean_marked" - }, +/turf/open/floor/prison/bright_clean_marked, /area/prison/medbay) "asn" = ( /obj/structure/pipes/standard/simple/visible{ dir = 9 }, -/turf/open/floor/prison{ - icon_state = "bright_clean_marked" - }, +/turf/open/floor/prison/bright_clean_marked, /area/prison/medbay) "aso" = ( /obj/structure/machinery/camera/autoname{ dir = 8; network = list("PRISON") }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/east, /area/prison/medbay) "asp" = ( /obj/structure/surface/table/reinforced, /obj/item/device/defibrillator, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/prison/medbay) "asq" = ( /obj/structure/surface/table/reinforced, @@ -6923,65 +5368,44 @@ pixel_x = 5; pixel_y = 3 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/prison/medbay) "asr" = ( /obj/structure/surface/table/reinforced, /obj/item/bodybag/cryobag, /obj/item/storage/box/syringes, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/prison/medbay) "ass" = ( /obj/structure/bed/chair/wheelchair, /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/northwest, /area/prison/medbay) "ast" = ( /obj/structure/bed/chair/wheelchair, /obj/item/tool/wrench, -/turf/open/floor/prison{ - dir = 5; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/northeast, /area/prison/medbay) "asu" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/research) "asv" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/research) "asw" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/east, /area/prison/research) "asx" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -6991,68 +5415,46 @@ dir = 2; name = "Research Hallway" }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/prison/research) "asy" = ( -/turf/open/floor/prison{ - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple, /area/prison/research) "asz" = ( /obj/structure/machinery/light, -/turf/open/floor/prison{ - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple, /area/prison/research) "asA" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/prison/whitepurplecorner/west, /area/prison/research) "asC" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/east, /area/prison/research) "asD" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 1 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/west, /area/prison/research) "asF" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 10 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/east, /area/prison/research) "asG" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ dir = 2; name = "Biological Research Department" }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/prison/hanger/research) "asI" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 6 }, -/turf/open/floor/prison{ - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2, /area/prison/hanger/research) "asJ" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ @@ -7062,67 +5464,45 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/prison/hangar_storage/research) "asK" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 10 }, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/prison/hangar_storage/research) "asL" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/prison/hangar_storage/research) "asM" = ( /obj/structure/closet/crate, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/prison/hangar_storage/research) "asO" = ( /obj/structure/toilet{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe, /area/prison/cellblock/highsec/north/north) "asP" = ( -/turf/open/floor/prison{ - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe, /area/prison/cellblock/highsec/north/north) "asQ" = ( /obj/structure/pipes/portables_connector{ dir = 1 }, /obj/structure/machinery/portable_atmospherics/canister/oxygen, -/turf/open/floor/prison{ - icon_state = "bright_clean_marked" - }, +/turf/open/floor/prison/bright_clean_marked, /area/prison/medbay) "asR" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreencorner" - }, +/turf/open/floor/prison/whitegreencorner/east, /area/prison/medbay) "asS" = ( /obj/structure/machinery/cm_vending/sorted/medical/wall_med/limited{ pixel_x = 28 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/east, /area/prison/medbay) "asT" = ( /obj/structure/surface/table/reinforced, @@ -7131,28 +5511,19 @@ pixel_x = 6; pixel_y = 10 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/prison/medbay) "asU" = ( /obj/item/roller{ icon_state = "down" }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/east, /area/prison/medbay) "asV" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/southwest, /area/prison/research) "asW" = ( /obj/structure/pipes/standard/simple/hidden/supply, @@ -7160,58 +5531,40 @@ dir = 4; icon_state = "pipe-c" }, -/turf/open/floor/prison{ - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple, /area/prison/research) "asX" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple, /area/prison/research) "asY" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk{ dir = 8 }, -/turf/open/floor/prison{ - dir = 6; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/southeast, /area/prison/research) "asZ" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/southwest, /area/prison/research) "ata" = ( /obj/effect/landmark/good_item, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/prison/research) "atb" = ( /obj/structure/pipes/vents/scrubber{ dir = 1 }, -/turf/open/floor/prison{ - dir = 6; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/southeast, /area/prison/research) "atd" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/medbay) "ate" = ( /obj/structure/machinery/power/apc{ @@ -7219,10 +5572,7 @@ start_charge = 0 }, /obj/structure/platform, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/hanger/research) "atf" = ( /turf/closed/wall/r_wall/prison, @@ -7231,47 +5581,31 @@ /obj/structure/pipes/vents/scrubber{ dir = 4 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/west, /area/prison/research) "ath" = ( /obj/structure/pipes/standard/manifold/fourway/hidden/supply, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/research) "ati" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/research) "atj" = ( /obj/structure/pipes/standard/manifold/hidden/supply, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/east, /area/prison/research) "atk" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/prison/hanger/research) "atl" = ( /obj/structure/pipes/vents/scrubber{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/prison/hangar_storage/research) "atm" = ( /obj/structure/machinery/door/airlock/prison/horizontal{ @@ -7279,19 +5613,14 @@ icon_state = "door_open"; opacity = 0 }, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/prison/cellblock/highsec/north/north) "ato" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ dir = 2; name = "Maximum-Security Suspended Cellblock" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/cellblock/maxsec/south) "atp" = ( /obj/structure/pipes/standard/simple/hidden/supply, @@ -7299,56 +5628,35 @@ dir = 2; name = "Maximum-Security Suspended Cellblock" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/cellblock/maxsec/south) "atq" = ( /obj/item/tool/wrench, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/prison/medbay) "atr" = ( /obj/item/tool/warning_cone, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/southwest, /area/prison/medbay) "ats" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreencorner" - }, +/turf/open/floor/prison/whitegreencorner/west, /area/prison/medbay) "att" = ( /obj/structure/machinery/cm_vending/sorted/medical/no_access, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/prison/medbay) "atu" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 6 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/west, /area/prison/medbay) "atv" = ( /obj/structure/pipes/vents/scrubber{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/medbay) "atw" = ( /obj/structure/surface/rack, @@ -7358,10 +5666,7 @@ /obj/item/clothing/mask/muzzle, /obj/item/clothing/mask/muzzle, /obj/item/clothing/mask/muzzle, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/east, /area/prison/medbay) "atx" = ( /obj/structure/pipes/standard/simple/hidden/supply, @@ -7369,9 +5674,7 @@ /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "Research Common Room" }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/prison/research) "aty" = ( /obj/structure/window/framed/prison/reinforced, @@ -7379,28 +5682,19 @@ /area/prison/hangar_storage/research) "atz" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 1; - icon_state = "redcorner" - }, +/turf/open/floor/prison/redcorner/north, /area/prison/cellblock/highsec/north/north) "atB" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/prison/red/north, /area/prison/cellblock/highsec/north/north) "atD" = ( /obj/structure/machinery/alarm/almayer{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/north, /area/prison/research) "atE" = ( /obj/structure/machinery/light{ @@ -7424,10 +5718,7 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/cellblock/maxsec/south) "atI" = ( /obj/structure/machinery/power/apc{ @@ -7447,17 +5738,11 @@ /turf/open/floor/prison, /area/prison/research/secret) "atL" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/west, /area/prison/research) "atN" = ( /obj/effect/landmark/good_item, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/east, /area/prison/research) "atO" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -7468,10 +5753,7 @@ icon_state = "door_open"; name = "Cell Access" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/cellblock/maxsec/south) "atP" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -7480,26 +5762,17 @@ /obj/structure/machinery/alarm/almayer{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/checkpoint/maxsec) "atQ" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/checkpoint/maxsec) "atR" = ( /obj/structure/pipes/standard/manifold/hidden/supply, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/checkpoint/maxsec) "atS" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -7508,19 +5781,13 @@ /obj/structure/machinery/camera/autoname{ network = list("PRISON") }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/checkpoint/maxsec) "atT" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/checkpoint/maxsec) "atU" = ( /turf/closed/wall/r_wall/prison_unmeltable, @@ -7536,64 +5803,40 @@ /area/prison/cellblock/maxsec/south) "aua" = ( /obj/structure/machinery/iv_drip, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/prison/medbay) "aub" = ( /obj/structure/machinery/medical_pod/sleeper, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/prison/medbay) "auc" = ( /obj/structure/machinery/sleep_console, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/prison/medbay) "aud" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/east, /area/prison/medbay) "aue" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 8 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/west, /area/prison/medbay) "auf" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/medbay) "aug" = ( /obj/structure/closet/secure_closet/medical3{ req_access_txt = "100" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/prison/medbay) "auh" = ( /obj/structure/filingcabinet, -/turf/open/floor/prison{ - dir = 9; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/northwest, /area/prison/research) "aui" = ( /obj/item/device/camera, @@ -7602,57 +5845,38 @@ "auj" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/north, /area/prison/research) "auk" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/north, /area/prison/research) "aul" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/west, /area/prison/research) "aum" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/research) "aun" = ( /obj/structure/machinery/photocopier, -/turf/open/floor/prison{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/northeast, /area/prison/research) "auo" = ( /obj/structure/window/reinforced{ dir = 8; health = 80 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/prison/research) "aup" = ( /obj/structure/surface/table/reinforced, /obj/item/reagent_container/food/snacks/grilledcheese, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/prison/research) "auq" = ( /obj/structure/surface/table/reinforced, @@ -7660,22 +5884,16 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/prison/research) "aur" = ( /obj/structure/machinery/microwave, /obj/structure/surface/table/reinforced, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/prison/research) "aus" = ( /obj/structure/pipes/vents/pump/on, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/prison/hangar_storage/research) "aut" = ( /obj/structure/bookcase, @@ -7686,10 +5904,7 @@ dir = 4 }, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 8; - icon_state = "redcorner" - }, +/turf/open/floor/prison/redcorner/west, /area/prison/cellblock/highsec/north/north) "aux" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -7710,49 +5925,31 @@ /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ name = "Maximum-Security Suspended Cellblock" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/cellblock/maxsec/south) "auB" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/checkpoint/maxsec) "auC" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/checkpoint/maxsec) "auD" = ( /obj/structure/pipes/vents/scrubber{ dir = 1 }, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/checkpoint/maxsec) "auE" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/checkpoint/maxsec) "auF" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/checkpoint/maxsec) "auG" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ @@ -7760,20 +5957,14 @@ icon_state = "door_open"; name = "Cell Access" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/cellblock/maxsec/south) "auH" = ( /obj/structure/machinery/power/apc{ pixel_y = -24; start_charge = 0 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/cellblock/maxsec/south) "auI" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -7790,10 +5981,7 @@ dir = 8 }, /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/medbay) "auM" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -7802,70 +5990,47 @@ /obj/structure/machinery/door/airlock/almayer/medical/glass/colony{ name = "Infirmary Storage" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/medbay) "auN" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 9 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/medbay) "auP" = ( /obj/structure/filingcabinet, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/west, /area/prison/research) "auQ" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/research) "auR" = ( -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/prison/research) "auS" = ( /obj/structure/surface/table/reinforced, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/prison/research) "auT" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 8 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/north, /area/prison/hanger/research) "auU" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/prison/hangar_storage/research) "auV" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 9 }, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/prison/hangar_storage/research) "auW" = ( /obj/structure/machinery/door/airlock/almayer/generic{ @@ -7880,37 +6045,22 @@ pixel_x = -12 }, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/highsec/north/north) "auY" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/west, /area/prison/security/checkpoint/maxsec) "auZ" = ( /turf/open/floor/prison, /area/prison/security/checkpoint/maxsec) "ava" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkredcorners2" - }, +/turf/open/floor/prison/darkredcorners2/north, /area/prison/security/checkpoint/maxsec) "avb" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkredcorners2" - }, +/turf/open/floor/prison/darkredcorners2/east, /area/prison/security/checkpoint/maxsec) "avc" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/east, /area/prison/security/checkpoint/maxsec) "avd" = ( /obj/structure/machinery/light{ @@ -7919,74 +6069,50 @@ /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/prison/medbay) "ave" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 1 }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/northwest, /area/prison/medbay) "avf" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/north, /area/prison/medbay) "avg" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreencorner" - }, +/turf/open/floor/prison/whitegreencorner/east, /area/prison/medbay) "avh" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 6; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/southeast, /area/prison/medbay) "avi" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/southwest, /area/prison/medbay) "avj" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/medbay) "avk" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 }, /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/medbay) "avl" = ( /turf/closed/wall/r_wall/prison_unmeltable, @@ -7999,46 +6125,30 @@ /obj/structure/closet/secure_closet/chemical{ req_access_txt = "100" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/prison/medbay) "avp" = ( /obj/structure/bed/chair/office/light, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/research) "avq" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/cellblock/maxsec/south) "avr" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/cellblock/maxsec/south) "avs" = ( /obj/structure/surface/table/reinforced, /obj/item/clothing/suit/chef/classic, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/prison/research) "avu" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ dir = 2; name = "Research Hangar Storage" }, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/prison/hangar_storage/research) "avw" = ( /obj/structure/pipes/vents/scrubber{ @@ -8059,16 +6169,10 @@ /area/prison/research) "avE" = ( /obj/structure/toilet, -/turf/open/floor/prison{ - dir = 1; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/north, /area/prison/cellblock/highsec/north/north) "avF" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/north, /area/prison/cellblock/highsec/north/north) "avH" = ( /obj/structure/window/framed/prison/reinforced, @@ -8076,10 +6180,7 @@ /area/prison/cellblock/highsec/north/north) "avI" = ( /obj/structure/toilet, -/turf/open/floor/prison{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/prison/red/west, /area/prison/cellblock/highsec/north/north) "avJ" = ( /obj/structure/closet, @@ -8115,9 +6216,7 @@ /obj/structure/window/reinforced{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/prison/residential/north) "avP" = ( /obj/structure/closet, @@ -8132,9 +6231,7 @@ /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/prison/residential/north) "avR" = ( /obj/structure/sink{ @@ -8143,9 +6240,7 @@ /obj/structure/mirror{ pixel_y = 28 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/prison/residential/north) "avS" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony{ @@ -8172,51 +6267,33 @@ /area/prison/chapel) "avW" = ( /obj/structure/pipes/vents/pump/on, -/turf/open/floor{ - dir = 1; - icon_state = "chapel" - }, +/turf/open/floor/chapel/north, /area/prison/chapel) "avX" = ( /obj/structure/bed/chair/wood/normal, -/turf/open/floor{ - dir = 5; - icon_state = "chapel" - }, +/turf/open/floor/chapel/northeast, /area/prison/chapel) "avY" = ( /obj/structure/bed/chair/wood/normal, -/turf/open/floor{ - dir = 1; - icon_state = "chapel" - }, +/turf/open/floor/chapel/north, /area/prison/chapel) "avZ" = ( /obj/structure/bed/chair/wood/normal{ dir = 8 }, -/turf/open/floor{ - dir = 5; - icon_state = "chapel" - }, +/turf/open/floor/chapel/northeast, /area/prison/chapel) "awa" = ( /obj/structure/bed/chair/wood/normal{ dir = 8 }, -/turf/open/floor{ - dir = 1; - icon_state = "chapel" - }, +/turf/open/floor/chapel/north, /area/prison/chapel) "awb" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/chapel) "awc" = ( /obj/structure/machinery/power/apc{ @@ -8224,18 +6301,8 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/chapel) -"awd" = ( -/obj/structure/machinery/door/airlock/almayer/security/colony{ - locked = 0; - name = "Research Containment Locker" - }, -/turf/open/floor/prison, -/area/prison/research/secret) "awe" = ( /obj/structure/window/framed/prison/reinforced/hull, /turf/open/floor/plating, @@ -8248,20 +6315,14 @@ /obj/structure/pipes/vents/scrubber{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/prison/medbay) "awh" = ( /obj/effect/landmark/survivor_spawner, /obj/structure/pipes/standard/simple/hidden/supply{ dir = 9 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/southwest, /area/prison/medbay) "awi" = ( /obj/structure/surface/table/woodentable, @@ -8272,9 +6333,7 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen, /area/prison/medbay) "awk" = ( /obj/structure/machinery/light/small{ @@ -8284,39 +6343,27 @@ /area/prison/residential/north) "awl" = ( /obj/structure/machinery/door/window/eastleft, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/prison/residential/north) "awm" = ( -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/prison/residential/north) "awn" = ( /obj/structure/toilet{ dir = 8; pixel_x = -4 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/prison/residential/north) "awo" = ( /turf/open/floor/plating, /area/prison/residential/north) "awp" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreencorner" - }, +/turf/open/floor/prison/whitegreencorner/west, /area/prison/medbay) "awq" = ( /obj/structure/bed/sofa/south/grey/left, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/residential/north) "awr" = ( /obj/structure/machinery/light/small{ @@ -8328,20 +6375,14 @@ /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/disposalpipe/segment, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/medbay) "aww" = ( /obj/structure/machinery/door/airlock/almayer/medical/glass/colony{ dir = 2; name = "Infirmary Storage" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/prison/medbay) "awx" = ( /obj/structure/machinery/light, @@ -8349,52 +6390,37 @@ /area/prison/medbay/morgue) "awy" = ( /obj/structure/surface/table/reinforced, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/research) "awz" = ( /obj/structure/surface/table/reinforced, /obj/item/pizzabox, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/research) "awA" = ( /obj/structure/bed/chair/office/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/research) "awB" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 6 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/prison/research) "awC" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/prison/research) "awD" = ( /obj/structure/surface/table/reinforced, /obj/item/clothing/head/chefhat, /obj/item/tool/kitchen/rollingpin, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/prison/research) "awF" = ( /obj/effect/landmark/crap_item, @@ -8405,9 +6431,7 @@ dir = 4 }, /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/prison/hanger/research) "awH" = ( /obj/structure/surface/rack, @@ -8416,9 +6440,7 @@ pixel_x = -24; start_charge = 0 }, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/prison/hangar_storage/research) "awI" = ( /turf/open/floor/carpet, @@ -8443,36 +6465,24 @@ /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/yard) "awS" = ( /obj/structure/bed/chair, /obj/structure/machinery/alarm/almayer{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/prison/red/north, /area/prison/cellblock/highsec/north/north) "awT" = ( /obj/structure/bed/chair, -/turf/open/floor/prison{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/prison/red/north, /area/prison/cellblock/highsec/north/north) "awU" = ( /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/highsec/north/north) "awV" = ( /turf/open/floor/wood, @@ -8491,27 +6501,19 @@ /area/prison/chapel) "awY" = ( /obj/structure/pipes/standard/manifold/hidden/supply, -/turf/open/floor{ - dir = 8; - icon_state = "chapel" - }, +/turf/open/floor/chapel/west, /area/prison/chapel) "awZ" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor{ - icon_state = "chapel" - }, +/turf/open/floor/chapel, /area/prison/chapel) "axa" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor{ - dir = 8; - icon_state = "chapel" - }, +/turf/open/floor/chapel/west, /area/prison/chapel) "axb" = ( /turf/open/floor/wood, @@ -8524,9 +6526,7 @@ name = "Toilet"; opacity = 0 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/prison/residential/north) "axd" = ( /obj/structure/bed/chair/wood/normal{ @@ -8535,9 +6535,7 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor{ - icon_state = "chapel" - }, +/turf/open/floor/chapel, /area/prison/chapel) "axe" = ( /obj/structure/bed/chair/wood/normal{ @@ -8546,28 +6544,20 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor{ - dir = 8; - icon_state = "chapel" - }, +/turf/open/floor/chapel/west, /area/prison/chapel) "axf" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 10 }, /obj/effect/landmark/good_item, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/chapel) "axg" = ( /obj/structure/bed/chair/wood/normal{ dir = 8 }, -/turf/open/floor{ - icon_state = "chapel" - }, +/turf/open/floor/chapel, /area/prison/chapel) "axh" = ( /obj/effect/landmark/monkey_spawn, @@ -8582,10 +6572,7 @@ pixel_x = 28; start_charge = 0 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/east, /area/prison/medbay) "axk" = ( /obj/structure/surface/table/reinforced, @@ -8597,52 +6584,34 @@ pixel_x = 9; pixel_y = 8 }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/northwest, /area/prison/medbay) "axl" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/computer/med_data/laptop{ pixel_y = 3 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/north, /area/prison/medbay) "axm" = ( /obj/structure/bed/chair, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/north, /area/prison/medbay) "axn" = ( /obj/structure/machinery/cm_vending/sorted/medical/no_access, -/turf/open/floor/prison{ - dir = 5; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/northeast, /area/prison/medbay) "axo" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/research) "axp" = ( /obj/structure/surface/table/reinforced, /obj/effect/landmark/crap_item, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/research) "axr" = ( /obj/structure/pipes/vents/pump{ @@ -8654,41 +6623,29 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 6 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/research) "axu" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/prison/research) "axv" = ( /obj/structure/pipes/standard/manifold/hidden/supply, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/prison/research) "axw" = ( /obj/structure/pipes/vents/scrubber{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/prison/research) "axx" = ( /obj/effect/decal/warning_stripes{ icon_state = "NE-out" }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/east, /area/prison/hanger/research) "axy" = ( /obj/effect/decal/warning_stripes{ @@ -8697,9 +6654,7 @@ /obj/structure/machinery/landinglight/ds2{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/prison/hanger/research) "axz" = ( /obj/effect/decal/warning_stripes{ @@ -8708,9 +6663,7 @@ /obj/structure/machinery/landinglight/ds2/delayone{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/prison/hanger/research) "axA" = ( /obj/effect/decal/warning_stripes{ @@ -8719,9 +6672,7 @@ /obj/structure/machinery/landinglight/ds2/delaytwo{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/prison/hanger/research) "axB" = ( /obj/effect/decal/warning_stripes{ @@ -8730,9 +6681,7 @@ /obj/structure/machinery/landinglight/ds2/delaythree{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/prison/hanger/research) "axC" = ( /obj/effect/decal/warning_stripes{ @@ -8741,39 +6690,26 @@ /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/prison/hanger/research) "axE" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony{ dir = 2; name = "Staff-Research Maintenance" }, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/prison/hangar_storage/research) "axF" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/prison/residential/north) "axG" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/prison/residential/north) "axH" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/processor, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/prison/residential/north) "axI" = ( /turf/closed/wall/r_wall/prison_unmeltable, @@ -8783,10 +6719,7 @@ /area/prison/maintenance/residential/access/north) "axK" = ( /obj/structure/closet/secure_closet/freezer/fridge, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/prison/residential/north) "axL" = ( /turf/closed/wall/r_wall/prison, @@ -8835,41 +6768,28 @@ /area/prison/maintenance/residential/access/north) "axV" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/prison/cellblock/highsec/north/north) "axW" = ( -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/prison/cellblock/highsec/north/north) "axX" = ( /obj/structure/sink{ dir = 8; pixel_x = -12 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/prison/red/west, /area/prison/cellblock/highsec/north/north) "axY" = ( /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/wood, /area/prison/chapel) "aya" = ( -/turf/open/floor{ - dir = 5; - icon_state = "chapel" - }, +/turf/open/floor/chapel/northeast, /area/prison/chapel) "ayb" = ( /obj/effect/landmark/monkey_spawn, -/turf/open/floor{ - dir = 1; - icon_state = "chapel" - }, +/turf/open/floor/chapel/north, /area/prison/chapel) "ayc" = ( /obj/structure/barricade/wooden{ @@ -8883,35 +6803,22 @@ /turf/open/floor/prison, /area/prison/research/secret) "ayd" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/southwest, /area/prison/security/checkpoint/maxsec) "aye" = ( -/turf/open/floor/prison{ - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2, /area/prison/security/checkpoint/maxsec) "ayf" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkredcorners2" - }, +/turf/open/floor/prison/darkredcorners2/west, /area/prison/security/checkpoint/maxsec) "ayg" = ( -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/prison/medbay) "ayh" = ( /obj/structure/bed/chair/office/light{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/medbay) "ayk" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ @@ -8923,18 +6830,12 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 6 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/medbay) "aym" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/microwave, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/prison/residential/north) "ayn" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ @@ -8944,70 +6845,47 @@ /area/prison/residential/north) "ayo" = ( /obj/structure/machinery/vending/security, -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/northwest, /area/prison/medbay/foyer) "ayp" = ( /obj/structure/machinery/light{ dir = 1 }, /obj/structure/pipes/vents/scrubber, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/north, /area/prison/medbay/foyer) "ayq" = ( /obj/structure/pipes/vents/pump/on, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/north, /area/prison/medbay/foyer) "ayr" = ( /obj/structure/filingcabinet, -/turf/open/floor/prison{ - dir = 5; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/northeast, /area/prison/medbay/foyer) "ays" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/west, /area/prison/research) "ayt" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 }, /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/research) "ayu" = ( /obj/structure/bed/chair/office/light{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/research) "ayx" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/prison/hanger/research) "ayy" = ( /turf/closed/wall/r_wall/prison, @@ -9027,9 +6905,7 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 6 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/prison/residential/north) "ayD" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -9084,10 +6960,7 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/prison/red/west, /area/prison/cellblock/highsec/north/north) "ayM" = ( /obj/structure/window/framed/prison/reinforced/hull, @@ -9097,30 +6970,21 @@ /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/prison/cellblock/highsec/north/north) "ayO" = ( /obj/effect/landmark/hunter_primary, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/prison/cellblock/highsec/north/north) "ayP" = ( /obj/structure/pipes/vents/scrubber{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/prison/cellblock/highsec/north/north) "ayR" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/prison/red/east, /area/prison/recreation/highsec/n) "ayS" = ( /obj/structure/pipes/standard/simple/hidden/supply, @@ -9141,24 +7005,16 @@ /turf/open/floor/wood, /area/prison/chapel) "ayW" = ( -/turf/open/floor{ - icon_state = "chapel" - }, +/turf/open/floor/chapel, /area/prison/chapel) "ayX" = ( -/turf/open/floor{ - dir = 8; - icon_state = "chapel" - }, +/turf/open/floor/chapel/west, /area/prison/chapel) "ayY" = ( /obj/structure/bed/chair/wood/normal{ dir = 8 }, -/turf/open/floor{ - dir = 8; - icon_state = "chapel" - }, +/turf/open/floor/chapel/west, /area/prison/chapel) "ayZ" = ( /obj/effect/landmark/corpsespawner/scientist, @@ -9168,10 +7024,7 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/west, /area/prison/security/checkpoint/maxsec) "azb" = ( /obj/effect/landmark/yautja_teleport, @@ -9182,10 +7035,7 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/east, /area/prison/security/checkpoint/maxsec) "azd" = ( /turf/closed/wall/r_wall/prison_unmeltable, @@ -9193,19 +7043,13 @@ "azf" = ( /obj/structure/pipes/standard/manifold/fourway/hidden/supply, /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/medbay) "azg" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/east, /area/prison/medbay) "azh" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -9214,27 +7058,18 @@ /obj/structure/machinery/door/airlock/almayer/medical/glass/colony{ name = "Doctor's Office" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/prison/medbay) "azk" = ( /obj/structure/pipes/standard/manifold/hidden/supply, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreencorner" - }, +/turf/open/floor/prison/whitegreencorner/west, /area/prison/medbay) "azl" = ( /obj/structure/pipes/vents/scrubber{ dir = 8 }, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/medbay) "azm" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ @@ -9243,35 +7078,25 @@ /turf/open/floor/prison, /area/prison/medbay) "azn" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/southwest, /area/prison/medbay/foyer) "azo" = ( /obj/effect/landmark/survivor_spawner, /obj/structure/pipes/standard/simple/hidden/supply{ dir = 5 }, -/turf/open/floor/prison{ - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2, /area/prison/medbay/foyer) "azp" = ( /obj/structure/bed/chair/office/dark, /obj/structure/pipes/standard/manifold/hidden/supply, -/turf/open/floor/prison{ - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2, /area/prison/medbay/foyer) "azq" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 6; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/southeast, /area/prison/medbay/foyer) "azr" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -9284,35 +7109,25 @@ /area/prison/research) "azu" = ( /obj/structure/machinery/vending/dinnerware, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/prison/research) "azv" = ( /obj/structure/closet/secure_closet/freezer/meat, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/prison/research) "azw" = ( /obj/structure/machinery/light, -/turf/open/floor/prison{ - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2, /area/prison/hanger/research) "azx" = ( /obj/structure/pipes/vents/scrubber{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2, /area/prison/hanger/research) "azy" = ( /obj/structure/pipes/standard/manifold/hidden/supply, -/turf/open/floor/prison{ - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2, /area/prison/hanger/research) "azz" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -9344,25 +7159,16 @@ /area/prison/maintenance/staff_research) "azD" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/west, /area/prison/medbay) "azG" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_10" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/residential/north) "azI" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/residential/north) "azJ" = ( /obj/structure/bed/chair/comfy{ @@ -9378,25 +7184,16 @@ /area/prison/residential/north) "azL" = ( /obj/structure/bed/sofa/south/grey, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/residential/north) "azM" = ( /obj/structure/bed/sofa/south/grey/right, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/residential/north) "azN" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/effect/landmark/hunter_primary, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/residential/north) "azO" = ( /obj/structure/pipes/vents/pump{ @@ -9418,60 +7215,39 @@ /area/prison/maintenance/residential/access/north) "azR" = ( /obj/structure/surface/table/reinforced, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/prison/recreation/highsec/n) "azS" = ( /obj/structure/bed/chair/comfy, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/prison/recreation/highsec/n) "azT" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/prison/recreation/highsec/n) "azU" = ( /obj/structure/surface/table/reinforced, -/turf/open/floor/prison{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/prison/red/east, /area/prison/recreation/highsec/n) "azV" = ( -/turf/open/floor/prison{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/prison/red/northwest, /area/prison/recreation/highsec/n) "azW" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "redcorner" - }, +/turf/open/floor/prison/redcorner/east, /area/prison/recreation/highsec/n) "azX" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 8 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "redcorner" - }, +/turf/open/floor/prison/redcorner/north, /area/prison/recreation/highsec/n) "azY" = ( /obj/structure/pipes/vents/scrubber{ dir = 8 }, -/turf/open/floor/prison{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/prison/red/northeast, /area/prison/recreation/highsec/n) "azZ" = ( /obj/structure/toilet{ @@ -9480,14 +7256,10 @@ /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/prison/recreation/highsec/n) "aAa" = ( -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/prison/recreation/highsec/n) "aAb" = ( /obj/structure/pipes/standard/simple/hidden/supply, @@ -9501,10 +7273,7 @@ "aAe" = ( /obj/structure/surface/table/reinforced, /obj/item/reagent_container/food/drinks/bottle/holywater, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/chapel) "aAf" = ( /turf/open/floor/carpet, @@ -9521,16 +7290,10 @@ /obj/structure/pipes/vents/scrubber{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/chapel) "aAk" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/chapel) "aAl" = ( /obj/structure/machinery/door/morgue{ @@ -9552,10 +7315,7 @@ /obj/structure/disposalpipe/trunk{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/southwest, /area/prison/security/checkpoint/maxsec) "aAo" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -9565,9 +7325,7 @@ dir = 4 }, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2, /area/prison/security/checkpoint/maxsec) "aAp" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -9576,9 +7334,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2, /area/prison/security/checkpoint/maxsec) "aAq" = ( /obj/structure/machinery/power/apc{ @@ -9591,9 +7347,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2, /area/prison/security/checkpoint/maxsec) "aAs" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -9602,10 +7356,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/checkpoint/maxsec) "aAt" = ( /obj/structure/pipes/standard/manifold/fourway/hidden/supply, @@ -9613,10 +7364,7 @@ dir = 2; icon_state = "pipe-c" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/checkpoint/maxsec) "aAu" = ( /obj/structure/machinery/cm_vending/sorted/medical/wall_med/limited{ @@ -9625,9 +7373,7 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2, /area/prison/security/checkpoint/maxsec) "aAv" = ( /turf/closed/wall/r_wall/prison, @@ -9637,63 +7383,42 @@ dir = 4 }, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2, /area/prison/security/checkpoint/maxsec) "aAx" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2, /area/prison/security/checkpoint/maxsec) "aAy" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 10 }, -/turf/open/floor/prison{ - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2, /area/prison/security/checkpoint/maxsec) "aAz" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/research) "aAA" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/cm_vending/sorted/medical/wall_med/limited{ pixel_y = -28 }, -/turf/open/floor/prison{ - dir = 6; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/southeast, /area/prison/security/checkpoint/maxsec) "aAB" = ( /obj/structure/machinery/photocopier, -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/northwest, /area/prison/security/checkpoint/maxsec) "aAC" = ( /obj/structure/filingcabinet, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/north, /area/prison/security/checkpoint/maxsec) "aAD" = ( /obj/structure/filingcabinet, -/turf/open/floor/prison{ - dir = 5; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/northeast, /area/prison/security/checkpoint/maxsec) "aAE" = ( /obj/structure/toilet{ @@ -9702,10 +7427,7 @@ /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/medbay) "aAF" = ( /obj/structure/sink{ @@ -9714,10 +7436,7 @@ /obj/structure/mirror{ pixel_y = 28 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/east, /area/prison/medbay) "aAG" = ( /obj/structure/machinery/door/airlock/almayer/generic{ @@ -9726,53 +7445,37 @@ name = "Toilet"; opacity = 0 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/prison/medbay) "aAH" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 6 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/prison/medbay) "aAI" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/east, /area/prison/hanger/research) "aAJ" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 9 }, /obj/structure/machinery/light, -/turf/open/floor/prison{ - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen, /area/prison/medbay) "aAL" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/disposalpipe/junction{ icon_state = "pipe-j2" }, -/turf/open/floor/prison{ - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen, /area/prison/medbay) "aAN" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk{ dir = 8 }, -/turf/open/floor/prison{ - dir = 6; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/southeast, /area/prison/medbay) "aAO" = ( /turf/open/space, @@ -9780,43 +7483,26 @@ "aAP" = ( /obj/structure/machinery/medical_pod/bodyscanner, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/prison/medbay) "aAQ" = ( /obj/structure/machinery/body_scanconsole, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/prison/medbay) "aAR" = ( /obj/structure/machinery/light, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/southwest, /area/prison/medbay) "aAS" = ( /obj/structure/bed, -/turf/open/floor/prison{ - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen, /area/prison/medbay) "aAT" = ( /obj/structure/filingcabinet, -/turf/open/floor/prison{ - dir = 6; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/southeast, /area/prison/medbay) "aAU" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/medbay/foyer) "aAV" = ( /obj/structure/surface/table/reinforced, @@ -9829,28 +7515,19 @@ pixel_y = 8 }, /obj/effect/landmark/item_pool_spawner/prison_lock, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/medbay/foyer) "aAW" = ( /obj/structure/machinery/computer/secure_data, /obj/structure/surface/table/reinforced, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/medbay/foyer) "aAX" = ( /obj/structure/machinery/computer/cameras{ network = list("PRISON") }, /obj/structure/surface/table/reinforced, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/medbay/foyer) "aAY" = ( /obj/structure/machinery/power/apc{ @@ -9858,10 +7535,7 @@ pixel_x = -24; start_charge = 0 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/southwest, /area/prison/research) "aAZ" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -9871,9 +7545,7 @@ dir = 1; icon_state = "pipe-c" }, -/turf/open/floor/prison{ - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple, /area/prison/research) "aBa" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -9882,9 +7554,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple, /area/prison/research) "aBb" = ( /obj/structure/machinery/light, @@ -9894,9 +7564,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple, /area/prison/research) "aBc" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ @@ -9906,19 +7574,13 @@ dir = 2; icon_state = "pipe-c" }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/prison/whitepurplecorner/west, /area/prison/research) "aBe" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 9 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/research) "aBf" = ( /obj/structure/pipes/standard/simple/hidden/supply, @@ -9928,10 +7590,7 @@ /turf/closed/wall/prison, /area/prison/recreation/highsec/n) "aBh" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/prison/red/west, /area/prison/recreation/highsec/n) "aBi" = ( /obj/structure/surface/rack, @@ -9949,9 +7608,7 @@ /obj/effect/decal/siding/wood_siding{ icon_state = "wood_siding3" }, -/turf/open/floor{ - icon_state = "asteroid" - }, +/turf/open/floor/asteroid, /area/prison/residential/north) "aBn" = ( /obj/structure/flora/tree/dead/tree_1, @@ -9961,17 +7618,13 @@ /obj/effect/decal/siding/wood_siding{ icon_state = "wood_siding5" }, -/turf/open/floor{ - icon_state = "asteroid" - }, +/turf/open/floor/asteroid, /area/prison/residential/north) "aBu" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 9 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/prison/residential/north) "aBv" = ( /obj/effect/decal/warning_stripes{ @@ -9983,54 +7636,35 @@ /obj/structure/bed/chair/comfy{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/prison/recreation/highsec/n) "aBx" = ( /obj/structure/pipes/vents/pump/on, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/recreation/highsec/n) "aBy" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/recreation/highsec/n) "aBz" = ( /obj/structure/bed/chair/comfy{ dir = 8 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/prison/red/east, /area/prison/recreation/highsec/n) "aBA" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/recreation/highsec/n) "aBB" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/prison/red/east, /area/prison/recreation/highsec/n) "aBC" = ( /obj/structure/machinery/door/airlock/almayer/medical/glass/colony{ dir = 2; name = "Toilet" }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/prison/recreation/highsec/n) "aBD" = ( /turf/closed/wall/prison, @@ -10049,28 +7683,19 @@ /area/prison/chapel) "aBG" = ( /obj/structure/surface/table/reinforced, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/chapel) "aBH" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/chapel) "aBI" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/chapel) "aBJ" = ( /obj/structure/surface/table/woodentable, @@ -10109,25 +7734,16 @@ /obj/structure/machinery/door/airlock/multi_tile/almayer/comdoor/colony{ name = "Maximum-Security Wing" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/checkpoint/maxsec) "aBN" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/checkpoint/maxsec) "aBO" = ( /obj/effect/landmark/hunter_primary, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/east, /area/prison/security/checkpoint/maxsec) "aBP" = ( /obj/structure/pipes/standard/simple/hidden/supply, @@ -10135,27 +7751,18 @@ dir = 2; name = "Infirmary Reception" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/prison/medbay) "aBQ" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/medidoor{ name = "Infirmary" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/prison/medbay) "aBR" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/prison/medbay) "aBS" = ( /obj/structure/sign/safety/medical, @@ -10166,10 +7773,7 @@ dir = 2; name = "Security Booth" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/medbay/foyer) "aBU" = ( /obj/structure/window/framed/prison/reinforced, @@ -10178,24 +7782,17 @@ "aBV" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/west, /area/prison/research) "aBW" = ( /obj/structure/machinery/vending/coffee, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/prison/research) "aBX" = ( /obj/effect/decal/siding/wood_siding{ icon_state = "wood_siding12" }, -/turf/open/floor{ - icon_state = "asteroid" - }, +/turf/open/floor/asteroid, /area/prison/residential/north) "aBY" = ( /obj/structure/toilet{ @@ -10204,9 +7801,7 @@ /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/prison/toilet/research) "aBZ" = ( /obj/structure/machinery/door/airlock/almayer/generic{ @@ -10215,29 +7810,21 @@ name = "Toilet"; opacity = 0 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/prison/toilet/research) "aCa" = ( /obj/structure/pipes/vents/pump/on, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/prison/toilet/research) "aCb" = ( /obj/structure/machinery/cm_vending/sorted/medical/wall_med/limited{ pixel_y = 28 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/prison/toilet/research) "aCc" = ( /obj/structure/pipes/vents/scrubber, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/prison/toilet/research) "aCd" = ( /obj/structure/machinery/shower{ @@ -10246,9 +7833,7 @@ /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/prison/toilet/research) "aCe" = ( /obj/structure/bed, @@ -10260,55 +7845,37 @@ /turf/open/floor/wood, /area/prison/quarters/research) "aCg" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/prison/red/west, /area/prison/cellblock/highsec/north/south) "aCh" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/prison/cellblock/highsec/north/south) "aCi" = ( -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/prison/cellblock/highsec/north/south) "aCj" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/prison/cellblock/highsec/north/south) "aCk" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/prison/red/east, /area/prison/cellblock/highsec/north/south) "aCl" = ( /turf/closed/wall/prison, /area/prison/cellblock/highsec/north/south) "aCm" = ( /obj/structure/bed, -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/west, /area/prison/cellblock/highsec/north/south) "aCn" = ( /obj/structure/surface/table/reinforced, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/highsec/north/south) "aCo" = ( /obj/structure/surface/table, @@ -10332,51 +7899,36 @@ /area/prison/recreation/highsec/n) "aCz" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/recreation/highsec/n) "aCA" = ( /obj/structure/surface/table/gamblingtable, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/prison/recreation/highsec/n) "aCB" = ( /obj/structure/surface/table/gamblingtable, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/prison/recreation/highsec/n) "aCC" = ( -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/prison/recreation/highsec/n) "aCE" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/prison/recreation/highsec/n) "aCF" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/prison/recreation/highsec/n) "aCG" = ( /obj/structure/sink{ dir = 4; pixel_x = 12 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/prison/recreation/highsec/n) "aCH" = ( /obj/structure/filingcabinet, @@ -10395,17 +7947,11 @@ /turf/open/floor/wood, /area/prison/chapel) "aCK" = ( -/turf/open/floor{ - dir = 1; - icon_state = "chapel" - }, +/turf/open/floor/chapel/north, /area/prison/chapel) "aCL" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/chapel) "aCM" = ( /obj/structure/window/framed/prison/reinforced{ @@ -10415,25 +7961,16 @@ /area/prison/chapel) "aCN" = ( /obj/structure/filingcabinet, -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/northwest, /area/prison/security/checkpoint/maxsec) "aCO" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 5; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/northeast, /area/prison/security/checkpoint/maxsec) "aCP" = ( /obj/structure/surface/table/reinforced, /obj/item/device/flashlight/lamp, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/checkpoint/maxsec) "aCQ" = ( /obj/structure/surface/table/reinforced, @@ -10441,10 +7978,7 @@ pixel_x = -3; pixel_y = 7 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/checkpoint/maxsec) "aCR" = ( /obj/structure/pipes/standard/simple/hidden/supply, @@ -10453,28 +7987,19 @@ /area/prison/security/checkpoint/maxsec) "aCS" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/northwest, /area/prison/security/checkpoint/maxsec) "aCT" = ( /turf/closed/wall/prison, /area/prison/security/checkpoint/maxsec) "aCU" = ( /obj/structure/pipes/vents/scrubber, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/west, /area/prison/security/checkpoint/maxsec) "aCV" = ( /obj/structure/machinery/computer/secure_data, /obj/structure/surface/table/reinforced, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/checkpoint/maxsec) "aCW" = ( /turf/closed/wall/r_wall/prison, @@ -10484,75 +8009,48 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/northwest, /area/prison/medbay) "aCY" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 5; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/northeast, /area/prison/medbay) "aCZ" = ( /obj/structure/machinery/computer/crew, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/prison/medbay) "aDa" = ( /obj/structure/window/framed/prison/reinforced, /turf/open/floor/plating, /area/prison/medbay) "aDb" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/medbay/foyer) "aDc" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/medbay/foyer) "aDd" = ( /obj/structure/pipes/vents/pump/on, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/medbay/foyer) "aDe" = ( /obj/structure/bed/chair, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/medbay/foyer) "aDf" = ( /obj/structure/bed/chair, /obj/structure/machinery/alarm/almayer{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/medbay/foyer) "aDg" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/medbay/foyer) "aDh" = ( /obj/structure/machinery/power/apc{ @@ -10560,17 +8058,11 @@ pixel_x = -24; start_charge = 0 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/medbay/foyer) "aDi" = ( /obj/structure/pipes/vents/scrubber, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/medbay/foyer) "aDj" = ( /obj/structure/sign/safety/restrictedarea, @@ -10580,42 +8072,28 @@ /obj/structure/sink{ pixel_y = 15 }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/northwest, /area/prison/research) "aDl" = ( /obj/structure/machinery/light{ dir = 1 }, /obj/structure/pipes/vents/scrubber, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/north, /area/prison/research) "aDm" = ( /obj/structure/sink{ pixel_y = 15 }, -/turf/open/floor/prison{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/northeast, /area/prison/research) "aDn" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/research) "aDo" = ( /obj/structure/machinery/vending/cola, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/prison/research) "aDp" = ( /obj/structure/sink{ @@ -10626,14 +8104,10 @@ pixel_x = -26 }, /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/prison/toilet/research) "aDq" = ( -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/prison/toilet/research) "aDr" = ( /obj/structure/sink{ @@ -10644,9 +8118,7 @@ pixel_x = 26 }, /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/prison/toilet/research) "aDs" = ( /obj/structure/machinery/light/small{ @@ -10695,10 +8167,7 @@ req_one_access = null }, /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/residential/north) "aDE" = ( /obj/structure/flora/bush/ausbushes/var3/brflowers, @@ -10708,45 +8177,32 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/prison/recreation/highsec/n) "aDG" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/recreation/highsec/n) "aDH" = ( /obj/structure/surface/table/gamblingtable, /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/prison/recreation/highsec/n) "aDK" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/recreation/highsec/n) "aDL" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/prison/red/east, /area/prison/recreation/highsec/n) "aDM" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -10756,48 +8212,31 @@ dir = 2; name = "North High-Security Recreation" }, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/prison/recreation/highsec/n) "aDN" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/prison/red/west, /area/prison/recreation/highsec/n) "aDO" = ( /obj/effect/landmark/hunter_secondary, -/turf/open/floor/prison{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/prison/red/west, /area/prison/cellblock/highsec/north/south) "aDP" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/prison/red/east, /area/prison/cellblock/highsec/north/south) "aDQ" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 }, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/recreation/highsec/n) "aDR" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/west, /area/prison/cellblock/highsec/north/south) "aDS" = ( /turf/open/floor/plating/plating_catwalk/prison, @@ -10823,19 +8262,13 @@ /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 8 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkredcorners2" - }, +/turf/open/floor/prison/darkredcorners2/north, /area/prison/security/checkpoint/maxsec) "aDW" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/prison{ - dir = 5; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/northeast, /area/prison/security/checkpoint/maxsec) "aDX" = ( /obj/structure/surface/table/reinforced, @@ -10843,10 +8276,7 @@ pixel_x = 9; pixel_y = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/checkpoint/maxsec) "aDY" = ( /obj/structure/pipes/standard/manifold/fourway/hidden/supply, @@ -10860,35 +8290,23 @@ pixel_y = 8 }, /obj/effect/landmark/item_pool_spawner/prison_lock, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/checkpoint/maxsec) "aEb" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/northwest, /area/prison/security/checkpoint/maxsec) "aEc" = ( /obj/structure/pipes/standard/manifold/fourway/hidden/supply, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkredcorners2" - }, +/turf/open/floor/prison/darkredcorners2/east, /area/prison/security/checkpoint/maxsec) "aEd" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/east, /area/prison/security/checkpoint/maxsec) "aEe" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -10903,47 +8321,32 @@ /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/west, /area/prison/security/checkpoint/maxsec) "aEg" = ( /obj/structure/bed/chair/office/dark{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/east, /area/prison/security/checkpoint/maxsec) "aEh" = ( /obj/structure/machinery/computer/cameras{ network = list("PRISON") }, /obj/structure/surface/table/reinforced, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/checkpoint/maxsec) "aEk" = ( /obj/structure/bed/chair/office/light{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/prison/medbay) "aEl" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/door/window/eastleft, /obj/structure/machinery/door/window/westright, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/prison/medbay) "aEm" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -10953,20 +8356,14 @@ /obj/structure/disposalpipe/junction{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/medbay/foyer) "aEn" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, /obj/structure/pipes/standard/manifold/fourway/hidden/supply, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/medbay/foyer) "aEo" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -10975,10 +8372,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/medbay/foyer) "aEq" = ( /obj/structure/pipes/standard/manifold/hidden/supply, @@ -10986,20 +8380,14 @@ dir = 4 }, /obj/effect/landmark/crap_item, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/medbay/foyer) "aEr" = ( /obj/structure/pipes/standard/manifold/hidden/supply, /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/medbay/foyer) "aEs" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -11008,10 +8396,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/medbay/foyer) "aEt" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -11020,19 +8405,14 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/prison/research) "aEu" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, /obj/structure/pipes/standard/manifold/fourway/hidden/supply, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/research) "aEv" = ( /obj/structure/flora/bush/ausbushes/ppflowers, @@ -11044,26 +8424,18 @@ icon_state = "pipe-c" }, /obj/structure/pipes/standard/manifold/fourway/hidden/supply, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/west, /area/prison/research) "aEx" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, /obj/effect/landmark/hunter_primary, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/research) "aEz" = ( /obj/structure/machinery/vending/snack, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/prison/research) "aEA" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -11073,26 +8445,20 @@ pixel_y = -24; start_charge = 0 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/prison/toilet/research) "aEB" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 1 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/prison/toilet/research) "aEC" = ( /obj/effect/decal/cleanable/blood, /obj/structure/pipes/standard/simple/hidden/supply{ dir = 9 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/prison/toilet/research) "aED" = ( /turf/closed/wall/prison, @@ -11128,9 +8494,7 @@ /turf/open/floor/wood, /area/prison/quarters/research) "aEJ" = ( -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/prison/residential/central) "aEK" = ( /obj/structure/pipes/vents/scrubber{ @@ -11146,20 +8510,14 @@ /area/prison/maintenance/staff_research) "aEM" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/residential/central) "aEN" = ( /turf/closed/wall/r_wall/prison_unmeltable, /area/prison/cellblock/highsec/north/south) "aEO" = ( /obj/structure/bed, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/highsec/north/south) "aEP" = ( /obj/structure/machinery/light/small{ @@ -11168,35 +8526,23 @@ /turf/open/floor/plating/plating_catwalk/prison, /area/prison/cellblock/highsec/north/south) "aEQ" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/east, /area/prison/cellblock/highsec/north/south) "aER" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - icon_state = "redcorner" - }, +/turf/open/floor/prison/redcorner, /area/prison/cellblock/highsec/north/south) "aES" = ( -/turf/open/floor/prison{ - icon_state = "red" - }, +/turf/open/floor/prison/red, /area/prison/cellblock/highsec/north/south) "aET" = ( /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "red" - }, +/turf/open/floor/prison/red, /area/prison/cellblock/highsec/north/south) "aEU" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "redcorner" - }, +/turf/open/floor/prison/redcorner/west, /area/prison/cellblock/highsec/north/south) "aEV" = ( /obj/structure/window/framed/prison/cell, @@ -11206,10 +8552,7 @@ /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/highsec/north/south) "aEX" = ( /turf/closed/wall/r_wall/prison, @@ -11217,31 +8560,19 @@ "aEY" = ( /obj/structure/surface/rack, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/prison/hangar_storage/main) "aEZ" = ( -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/northwest, /area/prison/hangar_storage/main) "aFa" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/prison/hangar_storage/main) "aFb" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/prison/hangar_storage/main) "aFc" = ( /obj/structure/machinery/power/apc{ @@ -11249,81 +8580,53 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/prison{ - dir = 5; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/northeast, /area/prison/hangar_storage/main) "aFd" = ( /obj/structure/toilet, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/prison/residential/north) "aFe" = ( /obj/structure/pipes/vents/pump/on, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/residential/north) "aFg" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/residential/north) "aFh" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/residential/north) "aFi" = ( /obj/structure/pipes/vents/scrubber, /obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/residential/north) "aFj" = ( /obj/structure/machinery/alarm/almayer{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/residential/north) "aFk" = ( /obj/structure/bed/chair/comfy{ dir = 4 }, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/prison/recreation/highsec/n) "aFl" = ( /obj/structure/pipes/vents/scrubber{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/recreation/highsec/n) "aFn" = ( /obj/effect/landmark/corpsespawner/prisoner, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/recreation/highsec/n) "aFo" = ( /obj/structure/surface/table/woodentable, @@ -11351,10 +8654,7 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 6 }, -/turf/open/floor{ - dir = 1; - icon_state = "chapel" - }, +/turf/open/floor/chapel/north, /area/prison/chapel) "aFs" = ( /obj/structure/bed/chair/wood/normal{ @@ -11364,10 +8664,7 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor{ - dir = 5; - icon_state = "chapel" - }, +/turf/open/floor/chapel/northeast, /area/prison/chapel) "aFt" = ( /obj/structure/bed/chair/wood/normal{ @@ -11377,10 +8674,7 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor{ - dir = 1; - icon_state = "chapel" - }, +/turf/open/floor/chapel/north, /area/prison/chapel) "aFu" = ( /obj/structure/machinery/door/morgue{ @@ -11401,10 +8695,7 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/west, /area/prison/security/checkpoint/maxsec) "aFx" = ( /obj/structure/pipes/vents/scrubber{ @@ -11418,10 +8709,7 @@ dir = 4 }, /obj/effect/landmark/corpsespawner/prison_security, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/east, /area/prison/security/checkpoint/maxsec) "aFA" = ( /turf/closed/wall/r_wall/prison, @@ -11436,15 +8724,10 @@ /obj/structure/bed/chair/office/dark{ dir = 8 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/west, /area/prison/security/checkpoint/maxsec) "aFE" = ( -/turf/open/floor/prison{ - icon_state = "rampbottom" - }, +/turf/open/floor/prison/rampbottom, /area/prison/residential/central) "aFF" = ( /obj/structure/pipes/vents/scrubber{ @@ -11455,38 +8738,25 @@ "aFG" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/recharger, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/east, /area/prison/security/checkpoint/maxsec) "aFH" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - icon_state = "rampbottom" - }, +/turf/open/floor/prison/rampbottom, /area/prison/residential/central) "aFI" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/southwest, /area/prison/security/checkpoint/maxsec) "aFJ" = ( /obj/structure/bed/chair/office/dark, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/prison{ - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2, /area/prison/security/checkpoint/maxsec) "aFK" = ( -/turf/open/floor/prison{ - dir = 6; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/southeast, /area/prison/security/checkpoint/maxsec) "aFL" = ( /obj/structure/machinery/door/airlock/almayer/security/colony{ @@ -11498,67 +8768,45 @@ /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "whitegreencorner" - }, +/turf/open/floor/prison/whitegreencorner, /area/prison/medbay) "aFN" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 9 }, -/turf/open/floor/prison{ - dir = 6; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/southeast, /area/prison/medbay) "aFO" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/computer/med_data/laptop, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/prison/medbay) "aFP" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/medbay/foyer) "aFQ" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/medidoor{ dir = 2; name = "Infirmary Foyer" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/medbay/foyer) "aFS" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/medbay/foyer) "aFT" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/comdoor/colony{ dir = 2; name = "Biological Research Department" }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/prison/research) "aFU" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/research) "aFV" = ( /turf/closed/wall/r_wall/prison_unmeltable, @@ -11572,70 +8820,47 @@ dir = 2; name = "Research Common Room" }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/prison/research) "aFY" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/west, /area/prison/research) "aFZ" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/east, /area/prison/research) "aGa" = ( /obj/structure/sink{ dir = 8; pixel_x = -12 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/highsec/north/south) "aGb" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/highsec/north/south) "aGc" = ( /obj/structure/toilet{ dir = 8; pixel_x = -4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/east, /area/prison/cellblock/highsec/north/south) "aGg" = ( /obj/structure/toilet{ dir = 4 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/west, /area/prison/cellblock/highsec/north/south) "aGh" = ( /obj/structure/sink{ dir = 4; pixel_x = 11 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/highsec/north/south) "aGi" = ( /obj/structure/pipes/standard/simple/hidden/supply, @@ -11646,9 +8871,7 @@ name = "Research Restrooms"; req_one_access = null }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/prison/toilet/research) "aGj" = ( /obj/structure/pipes/standard/simple/hidden/supply, @@ -11670,35 +8893,20 @@ /obj/structure/surface/rack, /obj/effect/landmark/crap_item, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/prison/hangar_storage/main) "aGn" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/west, /area/prison/hangar_storage/main) "aGo" = ( /obj/structure/closet/crate, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/prison/hangar_storage/main) "aGp" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/prison/hangar_storage/main) "aGq" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/east, /area/prison/hangar_storage/main) "aGs" = ( /obj/structure/sink{ @@ -11708,9 +8916,7 @@ /obj/structure/mirror{ pixel_x = -26 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/prison/residential/north) "aGt" = ( /obj/structure/machinery/door/airlock/almayer/generic{ @@ -11719,39 +8925,29 @@ name = "Toilet"; opacity = 0 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/prison/residential/north) "aGu" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/prison/residential/north) "aGv" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/prison/residential/north) "aGw" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/prison/residential/north) "aGx" = ( /obj/structure/pipes/standard/manifold/hidden/supply, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/prison/residential/north) "aGA" = ( /obj/structure/sink{ @@ -11761,17 +8957,13 @@ /obj/structure/mirror{ pixel_x = 26 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/prison/residential/north) "aGB" = ( /obj/structure/bed/chair/comfy{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/prison/recreation/highsec/n) "aGC" = ( /obj/structure/machinery/power/apc{ @@ -11779,38 +8971,25 @@ start_charge = 0 }, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/prison/recreation/highsec/n) "aGD" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/prison/red/southwest, /area/prison/recreation/highsec/n) "aGE" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "redcorner" - }, +/turf/open/floor/prison/redcorner/west, /area/prison/recreation/highsec/n) "aGF" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "redcorner" - }, +/turf/open/floor/prison/redcorner, /area/prison/recreation/highsec/n) "aGG" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/prison{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/prison/red/southeast, /area/prison/recreation/highsec/n) "aGH" = ( /obj/structure/surface/table/woodentable, @@ -11835,10 +9014,7 @@ /obj/structure/pipes/vents/scrubber{ dir = 1 }, -/turf/open/floor{ - dir = 8; - icon_state = "chapel" - }, +/turf/open/floor/chapel/west, /area/prison/chapel) "aGM" = ( /obj/structure/bed/chair/wood/normal{ @@ -11848,48 +9024,31 @@ dir = 1; network = list("PRISON") }, -/turf/open/floor{ - icon_state = "chapel" - }, +/turf/open/floor/chapel, /area/prison/chapel) "aGN" = ( /obj/structure/bed/chair/wood/normal{ dir = 1 }, -/turf/open/floor{ - dir = 8; - icon_state = "chapel" - }, +/turf/open/floor/chapel/west, /area/prison/chapel) "aGO" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "Chapel" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/chapel) "aGP" = ( /obj/structure/machinery/vending/security, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/southwest, /area/prison/security/checkpoint/maxsec) "aGQ" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/security/checkpoint/maxsec) "aGS" = ( /obj/structure/machinery/vending/security, -/turf/open/floor/prison{ - dir = 6; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/southeast, /area/prison/security/checkpoint/maxsec) "aGT" = ( /obj/structure/surface/table/reinforced, @@ -11901,31 +9060,19 @@ pixel_x = 9; pixel_y = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/checkpoint/maxsec) "aGU" = ( /obj/structure/machinery/computer/prisoner, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/checkpoint/maxsec) "aGV" = ( /obj/effect/decal/cleanable/blood/splatter, /obj/effect/landmark/corpsespawner/doctor, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/southwest, /area/prison/medbay) "aGW" = ( -/turf/open/floor/prison{ - dir = 6; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/southeast, /area/prison/medbay) "aGX" = ( /obj/structure/surface/table/reinforced, @@ -11937,79 +9084,52 @@ pixel_x = 9; pixel_y = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/prison/medbay) "aGY" = ( /obj/structure/surface/table/reinforced, /obj/item/device/flashlight/lamp, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/prison/medbay) "aGZ" = ( /obj/structure/pipes/vents/scrubber{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/medbay/foyer) "aHa" = ( /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/medbay/foyer) "aHc" = ( /obj/structure/closet/firecloset, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/southwest, /area/prison/research) "aHd" = ( /obj/structure/closet/firecloset, -/turf/open/floor/prison{ - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple, /area/prison/research) "aHe" = ( /obj/structure/closet/emcloset, -/turf/open/floor/prison{ - dir = 6; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/southeast, /area/prison/research) "aHf" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple, /area/prison/research) "aHg" = ( /obj/structure/pipes/standard/manifold/hidden/supply, -/turf/open/floor/prison{ - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple, /area/prison/research) "aHh" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 6; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/southeast, /area/prison/research) "aHi" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -12018,53 +9138,36 @@ /obj/structure/machinery/door/airlock/almayer/medical/glass/colony{ name = "Research Dorms" }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/prison/quarters/research) "aHj" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/residential/central) "aHk" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/northwest, /area/prison/quarters/research) "aHl" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/north, /area/prison/quarters/research) "aHn" = ( /obj/structure/pipes/standard/manifold/fourway/hidden/supply, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/north, /area/prison/quarters/research) "aHo" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, /obj/effect/landmark/monkey_spawn, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/north, /area/prison/quarters/research) "aHq" = ( /obj/structure/machinery/alarm/almayer{ @@ -12073,56 +9176,39 @@ /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/north, /area/prison/quarters/research) "aHs" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/north, /area/prison/quarters/research) "aHt" = ( /obj/effect/decal/siding/wood_siding{ icon_state = "wood_siding4" }, -/turf/open/floor{ - icon_state = "asteroid" - }, +/turf/open/floor/asteroid, /area/prison/residential/central) "aHv" = ( /obj/structure/sink{ dir = 4; pixel_x = 12 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/highsec/north/south) "aHw" = ( /obj/structure/sink{ dir = 4; pixel_x = 12 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/east, /area/prison/cellblock/highsec/north/south) "aHx" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/prison/red/west, /area/prison/cellblock/highsec/north/south) "aHy" = ( /obj/structure/machinery/light{ @@ -12131,26 +9217,17 @@ /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/north, /area/prison/quarters/research) "aHz" = ( /obj/structure/pipes/standard/manifold/hidden/supply, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/north, /area/prison/quarters/research) "aHA" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 10 }, -/turf/open/floor/prison{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/northeast, /area/prison/quarters/research) "aHB" = ( /obj/structure/window/reinforced{ @@ -12160,24 +9237,17 @@ dir = 4; layer = 3.3 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/prison/residential/north) "aHC" = ( /obj/structure/machinery/door/window/northleft, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/prison/residential/north) "aHD" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/prison/residential/north) "aHE" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ @@ -12198,56 +9268,37 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/residential/north) "aHI" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 9 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/residential/north) "aHJ" = ( /obj/structure/machinery/light, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/residential/north) "aHK" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/prison/residential/north) "aHL" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 5 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/residential/north) "aHN" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/prison/residential/north) "aHO" = ( /obj/structure/machinery/door/window/northright, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/prison/residential/north) "aHP" = ( /obj/structure/window/reinforced{ @@ -12257,9 +9308,7 @@ dir = 8; layer = 3.3 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/prison/residential/north) "aHQ" = ( /obj/structure/pipes/standard/simple/hidden/supply, @@ -12269,17 +9318,11 @@ /turf/open/floor/wood, /area/prison/storage/highsec/n) "aHR" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/chapel) "aHS" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/chapel) "aHT" = ( /obj/item/weapon/gun/rifle/m16, @@ -12306,61 +9349,43 @@ /turf/closed/wall/r_wall/prison_unmeltable, /area/prison/medbay/foyer) "aHZ" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/southwest, /area/prison/quarters/research) "aIa" = ( /obj/structure/machinery/power/apc{ pixel_y = -24; start_charge = 0 }, -/turf/open/floor/prison{ - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple, /area/prison/quarters/research) "aIb" = ( -/turf/open/floor/prison{ - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple, /area/prison/quarters/research) "aIc" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple, /area/prison/quarters/research) "aId" = ( /obj/structure/machinery/light, -/turf/open/floor/prison{ - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple, /area/prison/quarters/research) "aIe" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple, /area/prison/quarters/research) "aIf" = ( /obj/structure/pipes/vents/scrubber{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple, /area/prison/quarters/research) "aIg" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 5 }, -/turf/open/floor/prison{ - dir = 6; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/southeast, /area/prison/quarters/research) "aIh" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -12373,22 +9398,14 @@ /area/prison/quarters/research) "aIj" = ( /obj/structure/pipes/vents/pump/on, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/west, /area/prison/hangar_storage/main) "aIk" = ( -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/prison/hangar_storage/main) "aIl" = ( /obj/structure/pipes/vents/pump/on, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/east, /area/prison/hangar_storage/main) "aIm" = ( /obj/structure/machinery/light{ @@ -12422,9 +9439,7 @@ icon_state = "door_open"; opacity = 0 }, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/prison/cellblock/highsec/north/south) "aIu" = ( /obj/structure/machinery/alarm/almayer{ @@ -12433,34 +9448,22 @@ /obj/structure/platform_decoration{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/hallway/central/north) "aIv" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "rampbottom" - }, +/turf/open/floor/prison/rampbottom/north, /area/prison/residential/central) "aIw" = ( /obj/structure/pipes/vents/scrubber, /obj/structure/platform{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/hallway/central/north) "aIx" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/hallway/central/north) "aIy" = ( /turf/closed/wall/r_wall/prison, @@ -12480,18 +9483,13 @@ /obj/effect/decal/siding{ icon_state = "siding2" }, -/turf/open/floor{ - icon_state = "asteroid" - }, +/turf/open/floor/asteroid, /area/prison/residential/central) "aIB" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 10 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/residential/central) "aIC" = ( /obj/structure/machinery/power/apc{ @@ -12516,24 +9514,15 @@ dir = 8; pixel_x = -12 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/west, /area/prison/cellblock/highsec/north/south) "aII" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/west, /area/prison/hangar_storage/main) "aIJ" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/east, /area/prison/hangar_storage/main) "aIK" = ( /obj/structure/machinery/light/small{ @@ -12579,10 +9568,7 @@ dir = 4; icon_state = "pipe-c" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/southwest, /area/prison/security/checkpoint/highsec/n) "aIT" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -12591,9 +9577,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2, /area/prison/security/checkpoint/highsec/n) "aIU" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -12603,31 +9587,22 @@ dir = 8; icon_state = "pipe-c" }, -/turf/open/floor/prison{ - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2, /area/prison/security/checkpoint/highsec/n) "aIV" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2, /area/prison/security/checkpoint/highsec/n) "aIW" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2, /area/prison/security/checkpoint/highsec/n) "aIX" = ( -/turf/open/floor/prison{ - dir = 6; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/southeast, /area/prison/security/checkpoint/highsec/n) "aIY" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -12662,10 +9637,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/hallway/central/north) "aJc" = ( /obj/structure/disposalpipe/segment{ @@ -12692,9 +9664,7 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/prison/quarters/research) "aJh" = ( /obj/structure/closet, @@ -12711,10 +9681,7 @@ /obj/structure/pipes/vents/scrubber{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/southwest, /area/prison/research) "aJk" = ( /obj/structure/bed, @@ -12754,10 +9721,7 @@ /obj/structure/surface/rack, /obj/item/clothing/head/welding, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/prison/hangar_storage/main) "aJr" = ( /obj/structure/bed/chair/office/light, @@ -12770,10 +9734,7 @@ /turf/open/floor/wood, /area/prison/residential/north) "aJu" = ( -/turf/open/floor/prison{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/prison/red/northeast, /area/prison/cellblock/highsec/north/south) "aJv" = ( /obj/effect/landmark/corpsespawner/prisoner, @@ -12781,44 +9742,31 @@ /area/prison/cellblock/highsec/north/south) "aJw" = ( /obj/structure/largecrate/random, -/turf/open/floor/prison{ - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2, /area/prison/storage/highsec/n) "aJy" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2, /area/prison/storage/highsec/n) "aJz" = ( /obj/structure/pipes/standard/manifold/hidden/supply, -/turf/open/floor/prison{ - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2, /area/prison/storage/highsec/n) "aJA" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 9 }, -/turf/open/floor/prison{ - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2, /area/prison/storage/highsec/n) "aJB" = ( -/turf/open/floor/prison{ - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2, /area/prison/storage/highsec/n) "aJC" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/checkpoint/highsec/n) "aJD" = ( /obj/structure/surface/table/reinforced, @@ -12826,10 +9774,7 @@ pixel_x = -3; pixel_y = 7 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/checkpoint/highsec/n) "aJE" = ( /obj/structure/surface/table/reinforced, @@ -12841,28 +9786,19 @@ dir = 1 }, /obj/effect/landmark/item_pool_spawner/prison_lock, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/checkpoint/highsec/n) "aJF" = ( /obj/structure/machinery/computer/secure_data, /obj/structure/surface/table/reinforced, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/checkpoint/highsec/n) "aJG" = ( /obj/structure/machinery/computer/cameras{ network = list("PRISON") }, /obj/structure/surface/table/reinforced, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/checkpoint/highsec/n) "aJH" = ( /obj/structure/pipes/standard/simple/hidden/supply, @@ -12873,10 +9809,7 @@ dir = 2; name = "Central Ring" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/hallway/central/north) "aJJ" = ( /obj/structure/disposalpipe/segment, @@ -12892,9 +9825,7 @@ pixel_x = -26 }, /obj/item/paper/crumpled/bloody, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/prison/quarters/research) "aJM" = ( /obj/structure/machinery/door/airlock/almayer/generic{ @@ -12903,9 +9834,7 @@ name = "Toilet"; opacity = 0 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/prison/quarters/research) "aJN" = ( /turf/open/floor/carpet, @@ -12942,10 +9871,7 @@ /turf/open/floor/wood, /area/prison/quarters/research) "aJW" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/quarters/research) "aJY" = ( /obj/structure/bed/chair/office/dark{ @@ -12966,10 +9892,7 @@ /obj/structure/pipes/vents/scrubber{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/prison/hangar_storage/main) "aKd" = ( /turf/closed/wall/r_wall/prison_unmeltable, @@ -12981,33 +9904,22 @@ /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/southwest, /area/prison/hangar_storage/main) "aKg" = ( -/turf/open/floor/prison{ - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2, /area/prison/hangar_storage/main) "aKh" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 8 }, -/turf/open/floor/prison{ - dir = 6; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/southeast, /area/prison/hangar_storage/main) "aKi" = ( /obj/structure/pipes/vents/scrubber{ dir = 8 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/prison/hangar_storage/main) "aKj" = ( /obj/structure/surface/table/woodentable, @@ -13039,10 +9951,7 @@ /area/prison/residential/north) "aKs" = ( /obj/effect/landmark/corpsespawner/prisoner, -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/east, /area/prison/cellblock/highsec/north/south) "aKt" = ( /obj/structure/pipes/standard/simple/hidden/supply, @@ -13067,44 +9976,30 @@ /turf/open/floor/plating, /area/prison/security/checkpoint/highsec/n) "aKz" = ( -/turf/open/floor/prison{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/prison/red/northwest, /area/prison/cellblock/highsec/north/south) "aKA" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/prison/red/northeast, /area/prison/cellblock/highsec/north/south) "aKB" = ( /obj/structure/machinery/light, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/hallway/central/north) "aKC" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/hallway/central/north) "aKD" = ( /obj/structure/machinery/shower{ dir = 4 }, /obj/structure/machinery/door/window/northright, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/prison/quarters/research) "aKE" = ( /obj/structure/bookcase, @@ -13124,10 +10019,7 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/northwest, /area/prison/security/checkpoint/highsec/n) "aKH" = ( /turf/closed/wall/r_wall/prison, @@ -13138,32 +10030,20 @@ }, /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/north, /area/prison/security/checkpoint/highsec/n) "aKJ" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/recharger, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/north, /area/prison/security/checkpoint/highsec/n) "aKK" = ( /obj/structure/filingcabinet, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/north, /area/prison/security/checkpoint/highsec/n) "aKL" = ( /obj/structure/machinery/vending/security, -/turf/open/floor/prison{ - dir = 5; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/northeast, /area/prison/security/checkpoint/highsec/n) "aKM" = ( /obj/structure/surface/table/woodentable, @@ -13171,41 +10051,26 @@ /turf/open/floor/carpet, /area/prison/quarters/research) "aKN" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/hallway/central/north) "aKO" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/hallway/central/north) "aKP" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/hallway/central/north) "aKQ" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/hallway/central/north) "aKR" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_21" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/residential/north) "aKS" = ( /obj/structure/pipes/vents/scrubber{ @@ -13243,10 +10108,7 @@ name = "Main Hangar Storage" }, /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/prison/hangar_storage/main) "aKZ" = ( /obj/structure/window/framed/prison/reinforced, @@ -13256,88 +10118,55 @@ /obj/structure/pipes/vents/scrubber{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/prison/residential/north) "aLd" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/effect/decal/siding{ icon_state = "siding8" }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "rampbottom" - }, +/turf/open/floor/prison/rampbottom/north, /area/prison/residential/central) "aLe" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/prison/red/east, /area/prison/cellblock/highsec/north/south) "aLg" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "redcorner" - }, +/turf/open/floor/prison/redcorner/north, /area/prison/cellblock/highsec/north/south) "aLh" = ( /obj/structure/machinery/alarm/almayer{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/prison/red/north, /area/prison/cellblock/highsec/north/south) "aLi" = ( /obj/effect/landmark/hunter_secondary, -/turf/open/floor/prison{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/prison/red/north, /area/prison/cellblock/highsec/north/south) "aLj" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/prison/red/north, /area/prison/cellblock/highsec/north/south) "aLk" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/prison/red/north, /area/prison/security/checkpoint/highsec/n) "aLl" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/prison/red/northeast, /area/prison/security/checkpoint/highsec/n) "aLm" = ( /obj/structure/machinery/light{ dir = 8 }, /obj/structure/bed/chair/office, -/turf/open/floor/prison{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/prison/red/northwest, /area/prison/security/checkpoint/highsec/n) "aLo" = ( /obj/structure/bed/chair/office{ dir = 4 }, -/turf/open/floor/prison{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/prison/red/northeast, /area/prison/security/checkpoint/highsec/n) "aLp" = ( /obj/structure/stairs/perspective{ @@ -13348,10 +10177,7 @@ /obj/structure/platform{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/security/checkpoint/highsec/n) "aLq" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -13388,59 +10214,36 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/prison/green/north, /area/prison/security/monitoring/lowsec/ne) "aLv" = ( /obj/structure/flora/pottedplant, -/turf/open/floor/prison{ - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull, /area/prison/maintenance/staff_research) "aLw" = ( -/turf/open/floor/prison{ - dir = 9; - icon_state = "green" - }, +/turf/open/floor/prison/green/northwest, /area/prison/hallway/staff) "aLy" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/prison/green/north, /area/prison/hallway/staff) "aLz" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/prison/green/north, /area/prison/hallway/staff) "aLA" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/prison/green/north, /area/prison/hallway/staff) "aLC" = ( /obj/structure/machinery/alarm/almayer{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/prison/green/north, /area/prison/hallway/staff) "aLD" = ( -/turf/open/floor/prison{ - dir = 5; - icon_state = "green" - }, +/turf/open/floor/prison/green/northeast, /area/prison/hallway/staff) "aLE" = ( /turf/closed/wall/r_wall/prison_unmeltable, @@ -13467,71 +10270,44 @@ "aLL" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/prison/red/east, /area/prison/security/checkpoint/highsec/n) "aLM" = ( -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/prison/security/checkpoint/highsec/n) "aLN" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 1; - icon_state = "redcorner" - }, +/turf/open/floor/prison/redcorner/north, /area/prison/cellblock/highsec/north/south) "aLO" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/prison/red/north, /area/prison/cellblock/highsec/north/south) "aLP" = ( -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/prison/security/checkpoint/highsec/n) "aLQ" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/prison/security/checkpoint/highsec/n) "aLS" = ( /obj/structure/bed/chair/comfy{ dir = 4 }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/prison/cellblock/lowsec/nw) "aLT" = ( -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/prison/cellblock/lowsec/nw) "aLU" = ( /obj/structure/bed, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/lowsec/nw) "aLV" = ( /obj/structure/sink{ dir = 4; pixel_x = 11 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/lowsec/nw) "aLW" = ( /obj/structure/disposalpipe/segment{ @@ -13553,10 +10329,7 @@ /turf/open/floor/plating/plating_catwalk/prison, /area/prison/hallway/central/north) "aLY" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/checkpoint/highsec/n) "aLZ" = ( /obj/structure/disposalpipe/segment{ @@ -13571,26 +10344,17 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/northwest, /area/prison/security/monitoring/lowsec/ne) "aMb" = ( /obj/structure/bed/chair/office/dark{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/north, /area/prison/security/monitoring/lowsec/ne) "aMc" = ( /obj/effect/landmark/hunter_primary, -/turf/open/floor/prison{ - dir = 5; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/northeast, /area/prison/security/monitoring/lowsec/ne) "aMd" = ( /obj/structure/pipes/standard/simple/hidden/supply, @@ -13607,10 +10371,7 @@ pixel_x = 9; pixel_y = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/monitoring/lowsec/ne) "aMj" = ( /obj/effect/landmark/crap_item, @@ -13623,10 +10384,7 @@ "aMl" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/cleaning) "aMm" = ( /obj/structure/machinery/power/apc{ @@ -13635,10 +10393,7 @@ start_charge = 0 }, /obj/structure/janitorialcart, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/cleaning) "aMn" = ( /obj/structure/surface/rack, @@ -13667,53 +10422,35 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "green" - }, +/turf/open/floor/prison/green/northwest, /area/prison/quarters/staff) "aMs" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/prison/green/north, /area/prison/quarters/staff) "aMt" = ( /obj/structure/surface/table/almayer, /obj/item/trash/plate, /obj/item/grown/sunflower, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/residential/north) "aMu" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 6 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/prison/green/north, /area/prison/quarters/staff) "aMv" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/prison/green/north, /area/prison/quarters/staff) "aMw" = ( /obj/effect/decal/cleanable/blood, /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/prison/green/north, /area/prison/quarters/staff) "aMy" = ( /obj/structure/machinery/light{ @@ -13722,10 +10459,7 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/prison/green/north, /area/prison/quarters/staff) "aMz" = ( /obj/structure/machinery/power/apc{ @@ -13736,19 +10470,13 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/prison/green/north, /area/prison/quarters/staff) "aMA" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 5; - icon_state = "green" - }, +/turf/open/floor/prison/green/northeast, /area/prison/quarters/staff) "aMB" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -13757,88 +10485,60 @@ /obj/structure/machinery/door/airlock/almayer/medical/glass/colony{ name = "Staff Quarters" }, -/turf/open/floor/prison{ - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull, /area/prison/quarters/staff) "aMC" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "green" - }, +/turf/open/floor/prison/green/west, /area/prison/hallway/staff) "aMD" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/prison/hallway/staff) "aME" = ( -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/prison/hallway/staff) "aMF" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/prison/hallway/staff) "aMG" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/prison/hallway/staff) "aMJ" = ( /turf/closed/wall/prison, /area/prison/command/secretary_office) "aMK" = ( /obj/structure/closet, -/obj/item/handcuffs, +/obj/item/restraint/handcuffs, /obj/item/clothing/mask/muzzle, /obj/item/weapon/chainofcommand, -/turf/open/floor/prison{ - dir = 9; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/northwest, /area/prison/command/secretary_office) "aML" = ( /obj/structure/machinery/computer/secure_data, /obj/structure/surface/table/woodentable/fancy, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/north, /area/prison/command/secretary_office) "aMM" = ( /obj/structure/machinery/computer/cameras{ network = list("PRISON") }, /obj/structure/surface/table/woodentable/fancy, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/north, /area/prison/command/secretary_office) "aMN" = ( /obj/structure/machinery/photocopier, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/north, /area/prison/command/secretary_office) "aMO" = ( /obj/structure/filingcabinet, -/turf/open/floor/prison{ - dir = 5; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/northeast, /area/prison/command/secretary_office) "aMP" = ( /turf/closed/wall/r_wall/prison_unmeltable, @@ -13856,9 +10556,7 @@ /area/prison/command/office) "aMT" = ( /obj/structure/machinery/door/window/eastright, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/prison/residential/north) "aMU" = ( /obj/structure/sink{ @@ -13871,9 +10569,7 @@ /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/prison/residential/north) "aMV" = ( /obj/structure/machinery/light/small{ @@ -13886,33 +10582,23 @@ /obj/structure/mirror{ pixel_x = -26 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/prison/residential/north) "aMW" = ( /obj/structure/machinery/door/window/westleft, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/prison/residential/north) "aMX" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 8 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "redcorner" - }, +/turf/open/floor/prison/redcorner/north, /area/prison/cellblock/highsec/north/south) "aMY" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/prison/red/north, /area/prison/cellblock/highsec/north/south) "aMZ" = ( /obj/structure/machinery/light{ @@ -13921,19 +10607,13 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/prison/red/north, /area/prison/cellblock/highsec/north/south) "aNa" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 1 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "redcorner" - }, +/turf/open/floor/prison/redcorner/east, /area/prison/cellblock/highsec/north/south) "aNb" = ( /obj/structure/pipes/standard/manifold/fourway/hidden/supply, @@ -13949,16 +10629,10 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/prison/red/north, /area/prison/cellblock/highsec/north/south) "aNf" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "redcorner" - }, +/turf/open/floor/prison/redcorner/east, /area/prison/cellblock/highsec/north/south) "aNg" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ @@ -13990,10 +10664,7 @@ dir = 1; icon_state = "pipe-c" }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/prison/red/east, /area/prison/security/checkpoint/highsec/n) "aNn" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -14006,9 +10677,7 @@ dir = 2; name = "North High-Security Cellblock" }, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/prison/security/checkpoint/highsec/n) "aNo" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -14017,9 +10686,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/prison/security/checkpoint/highsec/n) "aNp" = ( /turf/closed/wall/prison, @@ -14034,9 +10701,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/prison/security/checkpoint/highsec/n) "aNw" = ( /obj/structure/stairs/perspective{ @@ -14049,16 +10714,10 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/security/checkpoint/highsec/n) "aNx" = ( -/turf/open/floor/prison{ - dir = 9; - icon_state = "green" - }, +/turf/open/floor/prison/green/northwest, /area/prison/cellblock/lowsec/nw) "aNy" = ( /obj/structure/machinery/light/small{ @@ -14068,51 +10727,33 @@ /area/prison/cellblock/lowsec/nw) "aNA" = ( /obj/structure/filingcabinet, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/southwest, /area/prison/security/monitoring/lowsec/ne) "aNB" = ( /obj/effect/landmark/crap_item, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkredcorners2" - }, +/turf/open/floor/prison/darkredcorners2/west, /area/prison/security/monitoring/lowsec/ne) "aNC" = ( /obj/structure/pipes/vents/pump/on, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/east, /area/prison/security/monitoring/lowsec/ne) "aND" = ( /obj/structure/surface/rack, /obj/effect/landmark/item_pool_spawner/prison_lock, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/monitoring/lowsec/ne) "aNI" = ( /obj/structure/disposalpipe/junction{ dir = 4; icon_state = "pipe-y" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/cleaning) "aNJ" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/cleaning) "aNK" = ( /obj/structure/disposalpipe/segment{ @@ -14139,98 +10780,66 @@ /area/prison/residential/north) "aNP" = ( /obj/structure/machinery/door/window/southright, -/turf/open/floor/prison{ - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull, /area/prison/quarters/staff) "aNQ" = ( /obj/structure/window/reinforced, -/turf/open/floor/prison{ - icon_state = "green" - }, +/turf/open/floor/prison/green, /area/prison/quarters/staff) "aNR" = ( /obj/item/shard, /obj/item/stack/rods, -/turf/open/floor/prison{ - icon_state = "green" - }, +/turf/open/floor/prison/green, /area/prison/quarters/staff) "aNS" = ( /obj/structure/window/reinforced, /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "green" - }, +/turf/open/floor/prison/green, /area/prison/quarters/staff) "aNT" = ( /obj/structure/bed/chair/comfy, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/prison/cellblock/lowsec/nw) "aNU" = ( /obj/structure/surface/table/reinforced, /obj/item/storage/bible/booze, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/prison/cellblock/lowsec/nw) "aNV" = ( /obj/structure/toilet{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/cellblock/lowsec/nw) "aNW" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/cellblock/lowsec/nw) "aNX" = ( /obj/structure/window/reinforced, /obj/structure/pipes/vents/scrubber{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "green" - }, +/turf/open/floor/prison/green, /area/prison/quarters/staff) "aNY" = ( /obj/structure/machinery/door/window/southright, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull, /area/prison/quarters/staff) "aNZ" = ( /obj/structure/window/reinforced, -/turf/open/floor/prison{ - dir = 6; - icon_state = "green" - }, +/turf/open/floor/prison/green/southeast, /area/prison/quarters/staff) "aOa" = ( /obj/structure/machinery/door/airlock/almayer/medical/glass/colony{ name = "Staff Quarters" }, -/turf/open/floor/prison{ - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull, /area/prison/quarters/staff) "aOb" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "green" - }, +/turf/open/floor/prison/green/southwest, /area/prison/hallway/staff) "aOc" = ( /obj/structure/disposalpipe/segment{ @@ -14247,59 +10856,40 @@ dir = 8; pixel_x = -12 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/lowsec/ne) "aOe" = ( /obj/structure/bed, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/lowsec/ne) "aOf" = ( /obj/structure/bed/chair/comfy, /obj/structure/machinery/alarm/almayer{ dir = 1 }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/prison/cellblock/lowsec/nw) "aOg" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 5 }, -/turf/open/floor/prison{ - icon_state = "green" - }, +/turf/open/floor/prison/green, /area/prison/hallway/staff) "aOh" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "green" - }, +/turf/open/floor/prison/green, /area/prison/hallway/staff) "aOi" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "greencorner" - }, +/turf/open/floor/prison/greencorner/west, /area/prison/hallway/staff) "aOj" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/hallway/central/east) "aOk" = ( /obj/structure/pipes/standard/manifold/fourway/hidden/supply, @@ -14325,9 +10915,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "greencorner" - }, +/turf/open/floor/prison/greencorner, /area/prison/hallway/staff) "aOn" = ( /obj/structure/window/reinforced, @@ -14337,9 +10925,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "green" - }, +/turf/open/floor/prison/green, /area/prison/hallway/staff) "aOo" = ( /obj/structure/disposalpipe/segment{ @@ -14348,10 +10934,7 @@ /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 1 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "greencorner" - }, +/turf/open/floor/prison/greencorner/west, /area/prison/hallway/staff) "aOp" = ( /obj/structure/disposalpipe/segment{ @@ -14371,16 +10954,10 @@ /turf/open/floor/plating/plating_catwalk/prison, /area/prison/hallway/staff) "aOr" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "green" - }, +/turf/open/floor/prison/green/east, /area/prison/hallway/staff) "aOs" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/west, /area/prison/command/secretary_office) "aOt" = ( /turf/closed/wall/r_wall/prison, @@ -14393,10 +10970,7 @@ /turf/open/floor/carpet, /area/prison/command/secretary_office) "aOw" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "bluecorner" - }, +/turf/open/floor/prison/bluecorner/north, /area/prison/command/secretary_office) "aOy" = ( /obj/structure/bed/chair/comfy, @@ -14428,23 +11002,17 @@ /obj/structure/machinery/shower{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/prison/residential/north) "aOE" = ( /obj/structure/toilet{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/prison/residential/north) "aOF" = ( /obj/structure/machinery/washing_machine, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/prison/residential/north) "aOG" = ( /obj/structure/machinery/shower{ @@ -14453,61 +11021,44 @@ /obj/structure/window/reinforced{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/prison/residential/north) "aOI" = ( /obj/structure/pipes/vents/scrubber{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "red" - }, +/turf/open/floor/prison/red, /area/prison/cellblock/highsec/north/south) "aOJ" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "red" - }, +/turf/open/floor/prison/red, /area/prison/cellblock/highsec/north/south) "aOK" = ( /obj/structure/machinery/power/apc{ pixel_y = -24; start_charge = 0 }, -/turf/open/floor/prison{ - icon_state = "red" - }, +/turf/open/floor/prison/red, /area/prison/cellblock/highsec/north/south) "aOL" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - icon_state = "red" - }, +/turf/open/floor/prison/red, /area/prison/cellblock/highsec/north/south) "aOM" = ( /obj/structure/machinery/camera/autoname{ dir = 1; network = list("PRISON") }, -/turf/open/floor/prison{ - icon_state = "red" - }, +/turf/open/floor/prison/red, /area/prison/cellblock/highsec/north/south) "aON" = ( -/turf/open/floor/prison{ - icon_state = "red" - }, +/turf/open/floor/prison/red, /area/prison/security/checkpoint/highsec/n) "aOO" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/prison/red/southeast, /area/prison/security/checkpoint/highsec/n) "aOP" = ( /obj/structure/machinery/light{ @@ -14516,60 +11067,38 @@ /obj/structure/bed/chair/office{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/prison/red/southwest, /area/prison/security/checkpoint/highsec/n) "aOR" = ( -/turf/open/floor/prison{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/prison/red/southeast, /area/prison/security/checkpoint/highsec/n) "aOS" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/prison/cellblock/lowsec/nw) "aOT" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "green" - }, +/turf/open/floor/prison/green/west, /area/prison/cellblock/lowsec/nw) "aOU" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "greencorner" - }, +/turf/open/floor/prison/greencorner/north, /area/prison/cellblock/lowsec/nw) "aOV" = ( -/turf/open/floor/prison{ - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe, /area/prison/cellblock/lowsec/nw) "aOW" = ( /obj/structure/toilet{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe, /area/prison/cellblock/lowsec/nw) "aOY" = ( /obj/structure/machinery/camera/autoname{ dir = 1; network = list("PRISON") }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/hallway/central/north) "aOZ" = ( /obj/effect/decal/siding/wood_siding{ @@ -14582,40 +11111,25 @@ /obj/structure/pipes/vents/scrubber{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/southwest, /area/prison/security/monitoring/lowsec/ne) "aPb" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 6; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/southeast, /area/prison/security/monitoring/lowsec/ne) "aPc" = ( /obj/structure/machinery/vending/security, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/monitoring/lowsec/ne) "aPf" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/cleaning) "aPg" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/cleaning) "aPh" = ( /obj/effect/landmark/monkey_spawn, @@ -14634,9 +11148,7 @@ /turf/open/floor/prison, /area/prison/cleaning) "aPl" = ( -/turf/open/floor/prison{ - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull, /area/prison/quarters/staff) "aPm" = ( /obj/structure/bed, @@ -14644,9 +11156,7 @@ dir = 4; health = 80 }, -/turf/open/floor/prison{ - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull, /area/prison/quarters/staff) "aPn" = ( /obj/structure/bed, @@ -14655,9 +11165,7 @@ health = 80 }, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/prison{ - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull, /area/prison/quarters/staff) "aPo" = ( /obj/structure/bed, @@ -14666,9 +11174,7 @@ health = 80 }, /obj/effect/landmark/corpsespawner/chef, -/turf/open/floor/prison{ - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull, /area/prison/quarters/staff) "aPp" = ( /turf/closed/wall/prison, @@ -14677,31 +11183,21 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "green" - }, +/turf/open/floor/prison/green/west, /area/prison/hallway/staff) "aPr" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/prison/hallway/staff) "aPs" = ( -/turf/open/floor/prison{ - icon_state = "greencorner" - }, +/turf/open/floor/prison/greencorner, /area/prison/hallway/staff) "aPt" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/prison{ - dir = 6; - icon_state = "green" - }, +/turf/open/floor/prison/green/southeast, /area/prison/hallway/staff) "aPu" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -14710,10 +11206,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/hallway/central/west) "aPv" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ @@ -14733,45 +11226,30 @@ /turf/open/floor/wood, /area/prison/hallway/staff) "aPx" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/prison/green/north, /area/prison/cellblock/lowsec/nw) "aPy" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 5; - icon_state = "green" - }, +/turf/open/floor/prison/green/northeast, /area/prison/cellblock/lowsec/nw) "aPz" = ( /obj/structure/bed/chair/comfy{ dir = 8 }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/prison/cellblock/lowsec/nw) "aPA" = ( /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/cellblock/lowsec/nw) "aPB" = ( /obj/structure/showcase, /turf/open/floor/wood, /area/prison/hallway/staff) "aPC" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/lowsec/nw) "aPD" = ( /obj/structure/showcase{ @@ -14787,10 +11265,7 @@ /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/lowsec/ne) "aPG" = ( /obj/structure/window/reinforced{ @@ -14803,17 +11278,11 @@ /obj/structure/pipes/vents/scrubber{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "green" - }, +/turf/open/floor/prison/green/southwest, /area/prison/hallway/staff) "aPI" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 8; - icon_state = "greencorner" - }, +/turf/open/floor/prison/greencorner/west, /area/prison/hallway/staff) "aPJ" = ( /obj/structure/pipes/standard/simple/hidden/supply, @@ -14827,24 +11296,15 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/hallway/central/east) "aPM" = ( /obj/effect/landmark/queen_spawn, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/residential/north) "aPN" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/west, /area/prison/command/secretary_office) "aPO" = ( /obj/structure/bed/chair/office/dark, @@ -14866,10 +11326,7 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/east, /area/prison/command/secretary_office) "aPS" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -14924,21 +11381,14 @@ /turf/open/floor/wood, /area/prison/command/office) "aQb" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean_marked" - }, +/turf/open/floor/prison/bright_clean_marked/southwest, /area/prison/cellblock/highsec/north/south) "aQc" = ( -/turf/open/floor/prison{ - icon_state = "bright_clean_marked" - }, +/turf/open/floor/prison/bright_clean_marked, /area/prison/cellblock/highsec/north/south) "aQd" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - icon_state = "bright_clean_marked" - }, +/turf/open/floor/prison/bright_clean_marked, /area/prison/cellblock/highsec/north/south) "aQe" = ( /obj/structure/pipes/standard/simple/hidden/supply, @@ -14946,9 +11396,7 @@ dir = 2; name = "Security Booth" }, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/prison/security/checkpoint/highsec/n) "aQf" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony, @@ -14957,30 +11405,18 @@ "aQg" = ( /obj/structure/surface/table/gamblingtable, /obj/item/spacecash/c1000, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/lowsec/nw) "aQh" = ( /obj/effect/landmark/hunter_primary, -/turf/open/floor/prison{ - dir = 1; - icon_state = "greencorner" - }, +/turf/open/floor/prison/greencorner/north, /area/prison/cellblock/lowsec/nw) "aQi" = ( /obj/structure/pipes/vents/pump/on, -/turf/open/floor/prison{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/prison/green/north, /area/prison/cellblock/lowsec/nw) "aQj" = ( -/turf/open/floor/prison{ - dir = 5; - icon_state = "green" - }, +/turf/open/floor/prison/green/northeast, /area/prison/cellblock/lowsec/nw) "aQk" = ( /obj/structure/machinery/door/airlock/prison/horizontal{ @@ -14988,9 +11424,7 @@ icon_state = "door_open"; opacity = 0 }, -/turf/open/floor/prison{ - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull, /area/prison/cellblock/lowsec/nw) "aQl" = ( /obj/structure/window/framed/prison/cell, @@ -15000,10 +11434,7 @@ /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "Low-Security" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/hallway/central/north) "aQn" = ( /obj/structure/window/framed/prison/cell, @@ -15015,9 +11446,7 @@ icon_state = "door_open"; opacity = 0 }, -/turf/open/floor/prison{ - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull, /area/prison/cellblock/lowsec/ne) "aQp" = ( /turf/closed/wall/prison, @@ -15032,26 +11461,17 @@ dir = 2; name = "Northeast Low-Security Monitoring" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/monitoring/lowsec/ne) "aQt" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/cleaning) "aQu" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/cleaning) "aQv" = ( /obj/structure/reagent_dispensers/watertank, @@ -15066,9 +11486,7 @@ /obj/structure/surface/table/reinforced, /obj/effect/landmark/crap_item, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/prison{ - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull, /area/prison/quarters/staff) "aQy" = ( /obj/structure/closet, @@ -15076,16 +11494,12 @@ dir = 4; health = 80 }, -/turf/open/floor/prison{ - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull, /area/prison/quarters/staff) "aQz" = ( /obj/structure/surface/table/reinforced, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/prison{ - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull, /area/prison/quarters/staff) "aQA" = ( /obj/structure/machinery/shower{ @@ -15094,16 +11508,10 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/prison/toilet/staff) "aQB" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "green" - }, +/turf/open/floor/prison/green/west, /area/prison/hallway/staff) "aQC" = ( /turf/closed/wall/prison, @@ -15114,10 +11522,7 @@ pixel_x = -24; start_charge = 0 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "green" - }, +/turf/open/floor/prison/green/west, /area/prison/hallway/staff) "aQF" = ( /obj/structure/surface/table/woodentable/fancy, @@ -15129,10 +11534,7 @@ dir = 8 }, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/prison{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/west, /area/prison/command/secretary_office) "aQG" = ( /obj/structure/surface/table/woodentable/fancy, @@ -15162,10 +11564,7 @@ /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/east, /area/prison/command/secretary_office) "aQL" = ( /obj/structure/machinery/light{ @@ -15209,20 +11608,14 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - dir = 5; - icon_state = "green" - }, +/turf/open/floor/prison/green/northeast, /area/prison/cellblock/lowsec/nw) "aQU" = ( /obj/structure/machinery/door/airlock/almayer/medical/glass/colony{ dir = 2; name = "Toilet" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/cellblock/lowsec/nw) "aQV" = ( /obj/structure/pipes/vents/pump/on, @@ -15240,14 +11633,10 @@ /obj/structure/toilet{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe, /area/prison/cellblock/lowsec/ne) "aRa" = ( -/turf/open/floor/prison{ - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe, /area/prison/cellblock/lowsec/ne) "aRb" = ( /obj/structure/pipes/vents/scrubber, @@ -15257,10 +11646,7 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/residential/north) "aRe" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -15283,10 +11669,7 @@ /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/highsec/north/south) "aRi" = ( /obj/structure/machinery/shower{ @@ -15295,30 +11678,18 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/prison/cellblock/highsec/north/south) "aRj" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/prison/cellblock/highsec/north/south) "aRk" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/prison/cellblock/highsec/north/south) "aRl" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/prison/cellblock/highsec/north/south) "aRm" = ( /obj/structure/machinery/shower{ @@ -15327,18 +11698,12 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/prison/cellblock/highsec/north/south) "aRn" = ( /obj/structure/surface/table/reinforced, /obj/item/device/flashlight/lamp, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/checkpoint/highsec/n) "aRo" = ( /obj/structure/surface/table/reinforced, @@ -15350,24 +11715,15 @@ pixel_x = 9; pixel_y = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/checkpoint/highsec/n) "aRp" = ( /obj/effect/landmark/monkey_spawn, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/lowsec/nw) "aRq" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/lowsec/nw) "aRr" = ( /turf/closed/wall/r_wall/prison, @@ -15376,15 +11732,10 @@ /obj/structure/barricade/wooden{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "green" - }, +/turf/open/floor/prison/green/east, /area/prison/cellblock/lowsec/nw) "aRt" = ( -/turf/open/floor/prison{ - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull, /area/prison/cellblock/lowsec/nw) "aRv" = ( /obj/structure/machinery/power/apc{ @@ -15392,102 +11743,65 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/prison/green/north, /area/prison/cellblock/lowsec/nw) "aRw" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/prison/green/north, /area/prison/cellblock/lowsec/nw) "aRx" = ( /obj/structure/pipes/vents/scrubber, /obj/structure/machinery/alarm/almayer{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/prison/green/north, /area/prison/cellblock/lowsec/nw) "aRz" = ( -/turf/open/floor/prison{ - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull, /area/prison/cellblock/lowsec/ne) "aRA" = ( -/turf/open/floor/prison{ - dir = 9; - icon_state = "green" - }, +/turf/open/floor/prison/green/northwest, /area/prison/cellblock/lowsec/ne) "aRB" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/prison/green/north, /area/prison/cellblock/lowsec/ne) "aRC" = ( /obj/structure/pipes/vents/scrubber, /obj/structure/machinery/alarm/almayer{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/prison/green/north, /area/prison/cellblock/lowsec/ne) "aRE" = ( /obj/structure/pipes/vents/pump/on, -/turf/open/floor/prison{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/prison/green/north, /area/prison/cellblock/lowsec/ne) "aRF" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/prison/green/north, /area/prison/cellblock/lowsec/ne) "aRG" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 6 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/prison/green/north, /area/prison/cellblock/lowsec/ne) "aRH" = ( /obj/effect/decal/siding/wood_siding, -/turf/open/floor{ - icon_state = "asteroid" - }, +/turf/open/floor/asteroid, /area/prison/residential/central) "aRI" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 9 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/prison/green/north, /area/prison/security/monitoring/lowsec/ne) "aRK" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/hallway/central/east) "aRL" = ( /obj/structure/machinery/door/airlock/almayer/generic{ @@ -15497,9 +11811,7 @@ name = "Toilet"; opacity = 0 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/prison/toilet/staff) "aRM" = ( /obj/structure/machinery/vending/cola, @@ -15517,10 +11829,7 @@ /obj/structure/bed/chair/office/dark{ dir = 4 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/west, /area/prison/command/secretary_office) "aRQ" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -15552,10 +11861,7 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/east, /area/prison/command/secretary_office) "aRX" = ( /obj/structure/surface/rack, @@ -15596,9 +11902,7 @@ /area/prison/maintenance/residential/nw) "aSf" = ( /obj/structure/pipes/standard/manifold/fourway/hidden/supply, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/prison/residential/north) "aSg" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony, @@ -15615,10 +11919,7 @@ /obj/structure/machinery/shower{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/prison/cellblock/highsec/north/south) "aSl" = ( /obj/structure/machinery/shower{ @@ -15628,10 +11929,7 @@ /obj/structure/window/reinforced{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/prison/cellblock/highsec/north/south) "aSm" = ( /obj/structure/machinery/shower{ @@ -15643,54 +11941,33 @@ health = 80 }, /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/prison/cellblock/highsec/north/south) "aSn" = ( /obj/structure/machinery/shower{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/prison/cellblock/highsec/north/south) "aSp" = ( /obj/structure/surface/table/reinforced, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/checkpoint/highsec/n) "aSq" = ( -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/northwest, /area/prison/security/checkpoint/highsec/n) "aSr" = ( /obj/structure/bed/chair/office/dark{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/north, /area/prison/security/checkpoint/highsec/n) "aSs" = ( -/turf/open/floor/prison{ - dir = 5; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/northeast, /area/prison/security/checkpoint/highsec/n) "aSt" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/lowsec/nw) "aSu" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -15700,10 +11977,7 @@ /area/prison/cellblock/lowsec/nw) "aSw" = ( /obj/structure/pipes/standard/manifold/fourway/hidden/supply, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/lowsec/nw) "aSx" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -15712,10 +11986,7 @@ /obj/structure/barricade/wooden{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "green" - }, +/turf/open/floor/prison/green/east, /area/prison/cellblock/lowsec/nw) "aSy" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -15725,26 +11996,19 @@ dir = 2; name = "Low-Security Recreation" }, -/turf/open/floor/prison{ - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull, /area/prison/cellblock/lowsec/nw) "aSz" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "green" - }, +/turf/open/floor/prison/green/southwest, /area/prison/cellblock/lowsec/nw) "aSA" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "green" - }, +/turf/open/floor/prison/green, /area/prison/cellblock/lowsec/nw) "aSB" = ( /obj/structure/machinery/light, @@ -15752,31 +12016,21 @@ dir = 4 }, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - icon_state = "green" - }, +/turf/open/floor/prison/green, /area/prison/cellblock/lowsec/nw) "aSC" = ( /obj/effect/decal/siding/wood_siding, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/residential/central) "aSD" = ( /obj/structure/pipes/standard/manifold/hidden/supply, -/turf/open/floor/prison{ - icon_state = "green" - }, +/turf/open/floor/prison/green, /area/prison/cellblock/lowsec/nw) "aSG" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 6; - icon_state = "green" - }, +/turf/open/floor/prison/green/southeast, /area/prison/cellblock/lowsec/nw) "aSH" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -15786,27 +12040,19 @@ dir = 2; name = "Northwest Low-Security Cellblock" }, -/turf/open/floor/prison{ - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull, /area/prison/cellblock/lowsec/nw) "aSI" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 1 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "green" - }, +/turf/open/floor/prison/green/west, /area/prison/hallway/central/north) "aSJ" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/hallway/central/north) "aSK" = ( /obj/structure/pipes/standard/manifold/fourway/hidden/supply, @@ -15816,10 +12062,7 @@ /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 1 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "green" - }, +/turf/open/floor/prison/green/east, /area/prison/hallway/central/north) "aSM" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -15829,32 +12072,23 @@ dir = 2; name = "Northeast Low-Security Cellblock" }, -/turf/open/floor/prison{ - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull, /area/prison/cellblock/lowsec/ne) "aSN" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "green" - }, +/turf/open/floor/prison/green/southwest, /area/prison/cellblock/lowsec/ne) "aSO" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "green" - }, +/turf/open/floor/prison/green, /area/prison/cellblock/lowsec/ne) "aSP" = ( /obj/structure/pipes/standard/manifold/hidden/supply, -/turf/open/floor/prison{ - icon_state = "green" - }, +/turf/open/floor/prison/green, /area/prison/cellblock/lowsec/ne) "aSR" = ( /turf/open/floor/plating, @@ -15862,76 +12096,51 @@ "aSS" = ( /obj/structure/pipes/standard/manifold/hidden/supply, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - icon_state = "green" - }, +/turf/open/floor/prison/green, /area/prison/cellblock/lowsec/ne) "aST" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - icon_state = "green" - }, +/turf/open/floor/prison/green, /area/prison/cellblock/lowsec/ne) "aSU" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "greencorner" - }, +/turf/open/floor/prison/greencorner/west, /area/prison/cellblock/lowsec/ne) "aSW" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, /obj/effect/landmark/hunter_primary, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/lowsec/ne) "aSX" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/lowsec/ne) "aSZ" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/lowsec/ne) "aTa" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 9 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/lowsec/ne) "aTd" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/security/monitoring/lowsec/ne) "aTe" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "green" - }, +/turf/open/floor/prison/green/east, /area/prison/security/monitoring/lowsec/ne) "aTf" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony, @@ -15945,15 +12154,11 @@ /obj/structure/mirror{ pixel_x = -26 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/prison/toilet/staff) "aTi" = ( /obj/structure/pipes/vents/pump/on, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/prison/toilet/staff) "aTj" = ( /obj/structure/machinery/light{ @@ -15962,16 +12167,11 @@ /obj/structure/machinery/cm_vending/sorted/medical/wall_med/limited{ pixel_x = 28 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/prison/toilet/staff) "aTk" = ( /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/prison{ - dir = 8; - icon_state = "green" - }, +/turf/open/floor/prison/green/west, /area/prison/hallway/staff) "aTl" = ( /obj/structure/bed/chair/comfy{ @@ -15998,38 +12198,24 @@ pixel_x = -24; start_charge = 0 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/west, /area/prison/command/secretary_office) "aTq" = ( /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/carpet, /area/prison/command/secretary_office) "aTr" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "green" - }, +/turf/open/floor/prison/green/west, /area/prison/hallway/central/north) "aTs" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "green" - }, +/turf/open/floor/prison/green/east, /area/prison/hallway/central/north) "aTt" = ( /obj/structure/surface/table/reinforced, -/turf/open/floor/prison{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/east, /area/prison/command/secretary_office) "aTu" = ( -/turf/open/floor/prison{ - icon_state = "rampbottom" - }, +/turf/open/floor/prison/rampbottom, /area/prison/maintenance/residential/nw) "aTw" = ( /obj/structure/pipes/standard/simple/hidden/supply, @@ -16040,15 +12226,11 @@ dir = 1 }, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe, /area/prison/cellblock/highsec/north/south) "aTy" = ( /obj/structure/surface/table/reinforced, -/turf/open/floor/prison{ - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe, /area/prison/cellblock/highsec/north/south) "aTz" = ( /obj/structure/machinery/shower{ @@ -16059,25 +12241,16 @@ dir = 4 }, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/prison/cellblock/highsec/north/south) "aTA" = ( /obj/structure/surface/table/reinforced, /obj/effect/landmark/item_pool_spawner/prison_lock, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/checkpoint/highsec/n) "aTB" = ( /obj/structure/pipes/vents/scrubber, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/west, /area/prison/security/checkpoint/highsec/n) "aTC" = ( /obj/structure/bed/chair/office/dark{ @@ -16086,10 +12259,7 @@ /turf/open/floor/prison, /area/prison/security/checkpoint/highsec/n) "aTD" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/east, /area/prison/security/checkpoint/highsec/n) "aTE" = ( /turf/closed/wall/r_wall/prison_unmeltable, @@ -16106,89 +12276,57 @@ /turf/open/floor/prison, /area/prison/canteen) "aTH" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "green" - }, +/turf/open/floor/prison/green/southwest, /area/prison/cellblock/lowsec/nw) "aTI" = ( -/turf/open/floor/prison{ - icon_state = "green" - }, +/turf/open/floor/prison/green, /area/prison/cellblock/lowsec/nw) "aTJ" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 8; - icon_state = "greencorner" - }, +/turf/open/floor/prison/greencorner/west, /area/prison/cellblock/lowsec/nw) "aTL" = ( -/turf/open/floor/prison{ - icon_state = "greencorner" - }, +/turf/open/floor/prison/greencorner, /area/prison/cellblock/lowsec/nw) "aTM" = ( /obj/structure/pipes/vents/scrubber{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "green" - }, +/turf/open/floor/prison/green, /area/prison/cellblock/lowsec/nw) "aTN" = ( -/turf/open/floor/prison{ - dir = 6; - icon_state = "green" - }, +/turf/open/floor/prison/green/southeast, /area/prison/cellblock/lowsec/nw) "aTO" = ( /obj/structure/machinery/light, /obj/structure/pipes/vents/scrubber{ dir = 1 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "green" - }, +/turf/open/floor/prison/green/west, /area/prison/hallway/central/north) "aTQ" = ( /obj/structure/machinery/light, /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "green" - }, +/turf/open/floor/prison/green/east, /area/prison/hallway/central/north) "aTR" = ( /obj/structure/pipes/vents/scrubber{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/residential/central) "aTS" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "green" - }, +/turf/open/floor/prison/green/southwest, /area/prison/cellblock/lowsec/ne) "aTT" = ( /obj/effect/decal/cleanable/blood, /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/prison/red/east, /area/prison/cellblock/highsec/north/south) "aTU" = ( -/turf/open/floor/prison{ - icon_state = "green" - }, +/turf/open/floor/prison/green, /area/prison/cellblock/lowsec/ne) "aTV" = ( /obj/structure/pipes/standard/simple/hidden/supply, @@ -16196,66 +12334,48 @@ dir = 4; icon_state = "pipe-c" }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "greencorner" - }, +/turf/open/floor/prison/greencorner/west, /area/prison/cellblock/lowsec/ne) "aTW" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "greencorner" - }, +/turf/open/floor/prison/greencorner, /area/prison/cellblock/lowsec/ne) "aTX" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "green" - }, +/turf/open/floor/prison/green, /area/prison/security/monitoring/lowsec/ne) "aTY" = ( /obj/structure/machinery/light, /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "green" - }, +/turf/open/floor/prison/green, /area/prison/security/monitoring/lowsec/ne) "aTZ" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk{ dir = 8 }, -/turf/open/floor/prison{ - dir = 6; - icon_state = "green" - }, +/turf/open/floor/prison/green/southeast, /area/prison/security/monitoring/lowsec/ne) "aUa" = ( -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/prison/toilet/staff) "aUb" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/prison/toilet/staff) "aUc" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/prison/toilet/staff) "aUd" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -16266,18 +12386,14 @@ icon_state = "door_open"; name = "Staff Restrooms" }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/prison/toilet/staff) "aUe" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 }, /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/prison/hallway/staff) "aUf" = ( /obj/structure/pipes/vents/pump/on, @@ -16301,10 +12417,7 @@ dir = 4; icon_state = "pipe-c" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/southwest, /area/prison/command/secretary_office) "aUj" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -16313,32 +12426,24 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "blue" - }, +/turf/open/floor/prison/blue, /area/prison/command/secretary_office) "aUk" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "blue" - }, +/turf/open/floor/prison/blue, /area/prison/command/secretary_office) "aUl" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "blue" - }, +/turf/open/floor/prison/blue, /area/prison/command/secretary_office) "aUm" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - icon_state = "blue" - }, +/turf/open/floor/prison/blue, /area/prison/command/secretary_office) "aUn" = ( /obj/structure/machinery/keycard_auth/lockdown/prison, @@ -16346,44 +12451,29 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - dir = 6; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/southeast, /area/prison/command/secretary_office) "aUp" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 5 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/checkpoint/highsec/n) "aUq" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/checkpoint/highsec/n) "aUr" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/northwest, /area/prison/security/checkpoint/highsec/n) "aUs" = ( /obj/structure/pipes/standard/manifold/fourway/hidden/supply, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkredcorners2" - }, +/turf/open/floor/prison/darkredcorners2/east, /area/prison/security/checkpoint/highsec/n) "aUt" = ( /obj/structure/pipes/vents/pump{ @@ -16396,10 +12486,7 @@ dir = 2; name = "Phone Booth" }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/prison/cellblock/lowsec/nw) "aUv" = ( /obj/structure/surface/table/reinforced, @@ -16408,49 +12495,31 @@ }, /obj/item/explosive/grenade/high_explosive/airburst, /obj/item/explosive/grenade/high_explosive/frag, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/prison/cellblock/lowsec/nw) "aUw" = ( /obj/structure/surface/table/reinforced, /obj/item/spacecash/c10, -/turf/open/floor/prison{ - dir = 6; - icon_state = "green" - }, +/turf/open/floor/prison/green/southeast, /area/prison/cellblock/lowsec/nw) "aUx" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/north, /area/prison/cellblock/lowsec/nw) "aUy" = ( /obj/structure/toilet, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 1; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/north, /area/prison/cellblock/lowsec/nw) "aUz" = ( /obj/structure/toilet, -/turf/open/floor/prison{ - dir = 1; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/north, /area/prison/cellblock/lowsec/nw) "aUA" = ( /obj/structure/sink{ dir = 4; pixel_x = 11 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/north, /area/prison/cellblock/lowsec/nw) "aUB" = ( /obj/structure/sink{ @@ -16458,16 +12527,10 @@ pixel_x = -12; pixel_y = 2 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/north, /area/prison/cellblock/lowsec/ne) "aUC" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/north, /area/prison/cellblock/lowsec/ne) "aUD" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -16477,10 +12540,7 @@ /area/prison/hallway/central/north) "aUE" = ( /obj/structure/toilet, -/turf/open/floor/prison{ - dir = 1; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/north, /area/prison/cellblock/lowsec/ne) "aUF" = ( /obj/structure/machinery/door/airlock/almayer/secure/colony{ @@ -16495,24 +12555,16 @@ "aUG" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 8; - icon_state = "green" - }, +/turf/open/floor/prison/green/west, /area/prison/cellblock/lowsec/ne) "aUH" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "green" - }, +/turf/open/floor/prison/green/east, /area/prison/cellblock/lowsec/ne) "aUI" = ( /obj/structure/pipes/vents/scrubber{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/prison/toilet/staff) "aUJ" = ( /obj/structure/machinery/power/apc{ @@ -16520,27 +12572,20 @@ pixel_x = 28; start_charge = 0 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/prison/toilet/staff) "aUK" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 8 }, /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/prison/hallway/staff) "aUL" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "green" - }, +/turf/open/floor/prison/green/east, /area/prison/hallway/staff) "aUM" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -16569,10 +12614,7 @@ dir = 2; name = "Warden's Secretary's Office" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/command/secretary_office) "aUR" = ( /obj/structure/window/framed/prison/reinforced, @@ -16587,10 +12629,7 @@ dir = 2; name = "Warden's Quarters" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/command/quarters) "aUU" = ( /turf/closed/wall/r_wall/prison_unmeltable, @@ -16620,62 +12659,41 @@ /turf/open/floor/plating, /area/prison/hallway/central/east) "aVa" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/canteen) "aVb" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/canteen) "aVc" = ( /obj/structure/pipes/vents/pump/on, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/canteen) "aVd" = ( /obj/structure/machinery/light{ dir = 1 }, /obj/structure/pipes/vents/scrubber, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/canteen) "aVi" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 6 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "redcorner" - }, +/turf/open/floor/prison/redcorner/east, /area/prison/cellblock/highsec/north/south) "aVj" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "redcorner" - }, +/turf/open/floor/prison/redcorner/north, /area/prison/cellblock/highsec/north/south) "aVm" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/prison/cellblock/highsec/north/south) "aVn" = ( /obj/structure/machinery/shower{ @@ -16688,10 +12706,7 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/prison/cellblock/highsec/north/south) "aVo" = ( /obj/structure/machinery/shower{ @@ -16703,19 +12718,13 @@ health = 80 }, /obj/structure/pipes/standard/manifold/hidden/supply, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/prison/cellblock/highsec/north/south) "aVp" = ( /obj/structure/pipes/vents/scrubber{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/prison/cellblock/highsec/north/south) "aVq" = ( /obj/structure/machinery/light/small{ @@ -16727,112 +12736,73 @@ start_charge = 0 }, /obj/structure/filingcabinet, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/checkpoint/highsec/n) "aVr" = ( /obj/structure/filingcabinet, /obj/structure/machinery/light, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/checkpoint/highsec/n) "aVs" = ( /obj/structure/toilet{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe, /area/prison/cellblock/highsec/north/south) "aVt" = ( -/turf/open/floor/prison{ - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe, /area/prison/cellblock/highsec/north/south) "aVu" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/checkpoint/highsec/n) "aVv" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/recharger, -/turf/open/floor/prison{ - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2, /area/prison/security/checkpoint/highsec/n) "aVw" = ( /obj/structure/machinery/vending/security, -/turf/open/floor/prison{ - dir = 6; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/southeast, /area/prison/security/checkpoint/highsec/n) "aVx" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "green" - }, +/turf/open/floor/prison/green/west, /area/prison/cellblock/lowsec/nw) "aVy" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/lowsec/nw) "aVA" = ( /obj/structure/pipes/vents/scrubber{ dir = 8 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "green" - }, +/turf/open/floor/prison/green/east, /area/prison/cellblock/lowsec/nw) "aVB" = ( /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/prison/cellblock/lowsec/nw) "aVC" = ( /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/lowsec/nw) "aVD" = ( /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/lowsec/ne) "aVE" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/lowsec/ne) "aVF" = ( /obj/structure/machinery/light/small{ @@ -16849,15 +12819,10 @@ icon_state = "door_open"; opacity = 0 }, -/turf/open/floor/prison{ - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull, /area/prison/cellblock/lowsec/ne) "aVI" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/west, /area/prison/cellblock/lowsec/ne) "aVJ" = ( /obj/structure/machinery/light/small{ @@ -16868,19 +12833,13 @@ "aVK" = ( /obj/structure/bed, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/lowsec/ne) "aVM" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "green" - }, +/turf/open/floor/prison/green/east, /area/prison/hallway/staff) "aVN" = ( /obj/structure/machinery/light{ @@ -16896,10 +12855,7 @@ /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "green" - }, +/turf/open/floor/prison/green/west, /area/prison/hallway/staff) "aVP" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ @@ -16910,29 +12866,20 @@ /area/prison/hallway/staff) "aVQ" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 1; - icon_state = "greencorner" - }, +/turf/open/floor/prison/greencorner/north, /area/prison/hallway/staff) "aVR" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/hallway/central/east) "aVS" = ( /turf/closed/wall/prison, /area/prison/hallway/central/east) "aVT" = ( /obj/structure/bed/chair, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/canteen) "aVU" = ( /obj/structure/bed/chair, @@ -16940,44 +12887,29 @@ dir = 5 }, /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/canteen) "aVV" = ( /obj/structure/bed/chair, /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/canteen) "aVW" = ( /obj/structure/pipes/standard/manifold/fourway/hidden/supply, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/canteen) "aVX" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 9 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/canteen) "aVY" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/prison/green/north, /area/prison/hallway/staff) "aVZ" = ( /obj/structure/closet, @@ -17013,9 +12945,7 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/prison/command/quarters) "aWg" = ( /obj/structure/machinery/light{ @@ -17033,10 +12963,7 @@ /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "redcorner" - }, +/turf/open/floor/prison/redcorner/west, /area/prison/cellblock/highsec/north/south) "aWn" = ( /obj/structure/window/framed/prison/reinforced/hull, @@ -17067,9 +12994,7 @@ /obj/structure/window/reinforced{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/prison/residential/central) "aWt" = ( /obj/structure/sink{ @@ -17078,30 +13003,21 @@ /obj/structure/mirror{ pixel_y = 28 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/prison/residential/central) "aWu" = ( /obj/structure/machinery/washing_machine, /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/prison/residential/central) "aWv" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/residential/central) "aWw" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/prison/residential/central) "aWx" = ( /obj/structure/machinery/shower{ @@ -17110,9 +13026,7 @@ /obj/structure/window/reinforced{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/prison/residential/central) "aWy" = ( /obj/structure/bed/chair/office/light{ @@ -17129,17 +13043,13 @@ icon_state = "door_open"; opacity = 0 }, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/prison/cellblock/highsec/north/south) "aWB" = ( /obj/structure/pipes/vents/scrubber{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "redcorner" - }, +/turf/open/floor/prison/redcorner, /area/prison/cellblock/highsec/north/south) "aWD" = ( /obj/structure/machinery/shower{ @@ -17150,10 +13060,7 @@ dir = 8; health = 80 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/prison/cellblock/highsec/north/south) "aWE" = ( /obj/structure/pipes/standard/simple/hidden/supply, @@ -17161,27 +13068,18 @@ dir = 2; name = "Security Records" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/checkpoint/highsec/n) "aWF" = ( /obj/item/phone, /obj/structure/surface/table/reinforced, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/prison/cellblock/lowsec/nw) "aWG" = ( /obj/structure/pipes/vents/scrubber{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/hallway/central/west) "aWH" = ( /obj/structure/pipes/standard/manifold/fourway/hidden/supply, @@ -17197,25 +13095,17 @@ /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/hallway/central/west) "aWK" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/item/stack/sheet/wood, -/turf/open/floor/prison{ - icon_state = "green" - }, +/turf/open/floor/prison/green, /area/prison/cellblock/lowsec/nw) "aWL" = ( /obj/structure/bed, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/lowsec/nw) "aWM" = ( /obj/structure/sink{ @@ -17223,28 +13113,19 @@ pixel_x = 11 }, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/lowsec/nw) "aWN" = ( /obj/structure/toilet{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/lowsec/nw) "aWO" = ( /obj/structure/toilet{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/lowsec/ne) "aWP" = ( /obj/structure/sink{ @@ -17252,16 +13133,10 @@ pixel_x = -12 }, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/lowsec/ne) "aWR" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/yard) "aWS" = ( /turf/open/floor/plating/plating_catwalk/prison, @@ -17274,10 +13149,7 @@ /obj/structure/toilet{ dir = 4 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/west, /area/prison/cellblock/lowsec/ne) "aWW" = ( /obj/structure/sink{ @@ -17285,10 +13157,7 @@ pixel_x = 12 }, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/lowsec/ne) "aWX" = ( /obj/structure/toilet{ @@ -17297,9 +13166,7 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/prison/toilet/staff) "aWZ" = ( /obj/structure/machinery/alarm/almayer{ @@ -17311,10 +13178,7 @@ /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/hallway/central/east) "aXb" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ @@ -17326,32 +13190,20 @@ /obj/structure/pipes/vents/scrubber{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/hallway/central/east) "aXd" = ( /obj/structure/surface/table/reinforced, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/canteen) "aXf" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/canteen) "aXj" = ( /obj/structure/pipes/vents/scrubber{ dir = 4 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "green" - }, +/turf/open/floor/prison/green/west, /area/prison/hallway/staff) "aXk" = ( /obj/structure/disposalpipe/junction{ @@ -17435,9 +13287,7 @@ name = "Toilet"; opacity = 0 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/prison/command/quarters) "aXx" = ( /obj/structure/machinery/light/small{ @@ -17447,9 +13297,7 @@ /area/prison/residential/central) "aXy" = ( /obj/structure/machinery/door/window/eastleft, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/prison/residential/central) "aXz" = ( /obj/structure/sink{ @@ -17459,9 +13307,7 @@ /obj/structure/mirror{ pixel_x = 28 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/prison/command/quarters) "aXA" = ( /obj/structure/toilet{ @@ -17471,47 +13317,33 @@ /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/prison/residential/central) "aXB" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/residential/central) "aXC" = ( /obj/structure/pipes/standard/manifold/fourway/hidden/supply, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/prison/residential/central) "aXD" = ( /obj/structure/pipes/vents/scrubber{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/residential/central) "aXE" = ( /obj/structure/toilet{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/prison/residential/central) "aXF" = ( /obj/structure/machinery/door/window/westright, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/prison/residential/central) "aXG" = ( /obj/structure/machinery/light/small{ @@ -17558,40 +13390,27 @@ /turf/open/floor/wood, /area/prison/security/monitoring/highsec) "aXP" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/north, /area/prison/security/checkpoint/highsec/n) "aXQ" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/north, /area/prison/security/checkpoint/highsec/n) "aXR" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/north, /area/prison/security/checkpoint/highsec/n) "aXS" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "Low-Security Recreation" }, -/turf/open/floor/prison{ - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull, /area/prison/cellblock/lowsec/nw) "aXT" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull, /area/prison/cellblock/lowsec/nw) "aXU" = ( /obj/structure/pipes/vents/scrubber{ @@ -17613,37 +13432,25 @@ /obj/structure/disposalpipe/trunk{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "green" - }, +/turf/open/floor/prison/green/southwest, /area/prison/hallway/staff) "aXY" = ( /obj/structure/disposalpipe/segment{ dir = 8; icon_state = "pipe-c" }, -/turf/open/floor/prison{ - icon_state = "green" - }, +/turf/open/floor/prison/green, /area/prison/hallway/staff) "aXZ" = ( -/turf/open/floor/prison{ - icon_state = "green" - }, +/turf/open/floor/prison/green, /area/prison/hallway/staff) "aYa" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - icon_state = "green" - }, +/turf/open/floor/prison/green, /area/prison/hallway/staff) "aYb" = ( -/turf/open/floor/prison{ - dir = 6; - icon_state = "green" - }, +/turf/open/floor/prison/green/southeast, /area/prison/hallway/staff) "aYc" = ( /obj/structure/bookcase, @@ -17669,9 +13476,7 @@ dir = 4 }, /obj/structure/machinery/door/window/northright, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/prison/command/quarters) "aYi" = ( /turf/open/floor/plating/plating_catwalk/prison, @@ -17730,52 +13535,34 @@ /area/prison/security/monitoring/highsec) "aYs" = ( /obj/effect/landmark/corpsespawner/prisoner, -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/west, /area/prison/cellblock/highsec/north/south) "aYt" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/canteen) "aYu" = ( /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/canteen) "aYv" = ( /obj/structure/bed/chair{ dir = 1 }, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/canteen) "aYw" = ( /obj/structure/surface/table/reinforced, -/turf/open/floor/prison{ - dir = 1; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/north, /area/prison/cellblock/highsec/north/south) "aYx" = ( /obj/effect/landmark/hunter_primary, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/prison/cellblock/highsec/north/south) "aYy" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -17784,10 +13571,7 @@ /obj/structure/machinery/alarm/almayer{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/north, /area/prison/security/monitoring/highsec) "aYz" = ( /obj/structure/filingcabinet, @@ -17818,10 +13602,7 @@ /turf/open/floor/plating/plating_catwalk/prison, /area/prison/cellblock/lowsec/nw) "aYE" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/east, /area/prison/cellblock/lowsec/nw) "aYF" = ( /obj/structure/machinery/door/airlock/prison{ @@ -17829,9 +13610,7 @@ icon_state = "door_open"; opacity = 0 }, -/turf/open/floor/prison{ - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull, /area/prison/cellblock/lowsec/nw) "aYG" = ( /obj/structure/machinery/alarm/almayer{ @@ -17841,29 +13620,18 @@ /area/prison/hanger/main) "aYH" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 5; - icon_state = "green" - }, +/turf/open/floor/prison/green/northeast, /area/prison/cellblock/lowsec/nw) "aYI" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/west, /area/prison/cellblock/lowsec/nw) "aYJ" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/east, /area/prison/cellblock/lowsec/ne) "aYK" = ( /obj/item/reagent_container/glass/bucket, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/prison/hallway/staff) "aYL" = ( /turf/closed/wall/r_wall/prison, @@ -17877,9 +13645,7 @@ /obj/item/storage/box/lights, /obj/item/reagent_container/spray/cleaner, /obj/item/reagent_container/spray/cleaner, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/prison/hallway/staff) "aYO" = ( /obj/structure/sign/safety/nonpress_0g{ @@ -17902,9 +13668,7 @@ /area/prison/residential/central) "aYS" = ( /obj/item/storage/box/mousetraps, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/prison/hallway/staff) "aYT" = ( /obj/structure/machinery/door/airlock/almayer/generic{ @@ -17913,14 +13677,10 @@ name = "Staff Custodial Closet"; opacity = 0 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/prison/hallway/staff) "aYU" = ( -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/prison/residential/south) "aYV" = ( /obj/structure/bed/chair/comfy{ @@ -17951,18 +13711,12 @@ /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "Staff Hallway" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/hallway/staff) "aZc" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/hallway/staff) "aZe" = ( /obj/structure/pipes/vents/pump{ @@ -18001,117 +13755,78 @@ dir = 8; pixel_x = -12 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/lowsec/nw) "aZm" = ( /obj/structure/toilet{ dir = 8; pixel_x = -4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/east, /area/prison/cellblock/lowsec/nw) "aZn" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/yard) "aZp" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 4; - icon_state = "green" - }, +/turf/open/floor/prison/green/east, /area/prison/cellblock/lowsec/nw) "aZq" = ( /obj/structure/toilet{ dir = 4 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/west, /area/prison/cellblock/lowsec/nw) "aZr" = ( /obj/structure/sink{ dir = 4; pixel_x = 12 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/lowsec/nw) "aZs" = ( /obj/structure/toilet{ dir = 8; pixel_x = -4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/east, /area/prison/cellblock/lowsec/ne) "aZu" = ( /obj/structure/machinery/flasher{ id = "canteen" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/canteen) "aZv" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/canteen) "aZw" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/canteen) "aZx" = ( /obj/structure/sink{ dir = 4; pixel_x = 12 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/lowsec/ne) "aZy" = ( /obj/structure/reagent_dispensers/watertank, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/prison/hallway/staff) "aZz" = ( /obj/structure/janitorialcart, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/prison/hallway/staff) "aZA" = ( /obj/item/reagent_container/glass/bucket/mopbucket, /obj/item/tool/mop, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/prison/hallway/staff) "aZB" = ( /obj/structure/machinery/vending/snack, @@ -18135,18 +13850,14 @@ "aZF" = ( /obj/structure/surface/table, /obj/item/device/flashlight/lamp, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, +/turf/open/floor/prison/bluefull, /area/prison/residential/central) "aZG" = ( /obj/structure/surface/table, /obj/structure/machinery/computer/cameras{ network = list("PRISON") }, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, +/turf/open/floor/prison/bluefull, /area/prison/residential/central) "aZH" = ( /obj/structure/bed/chair/comfy{ @@ -18160,25 +13871,16 @@ /area/prison/security/monitoring/highsec) "aZL" = ( /obj/structure/pipes/vents/scrubber, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/highsec/north/south) "aZM" = ( -/turf/open/floor/prison{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/prison/red/southeast, /area/prison/cellblock/highsec/north/south) "aZN" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/prison/cellblock/highsec/north/south) "aZO" = ( /obj/effect/decal/warning_stripes{ @@ -18198,33 +13900,21 @@ /area/prison/residential/central) "aZR" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/prison/residential/central) "aZS" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/prison/residential/central) "aZT" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/processor, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/prison/residential/central) "aZU" = ( /obj/structure/machinery/shower{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/prison/cellblock/highsec/north/south) "aZV" = ( /obj/structure/machinery/shower{ @@ -18233,20 +13923,14 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/prison/cellblock/highsec/north/south) "aZW" = ( /obj/structure/machinery/light{ dir = 4 }, /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 4; - icon_state = "green" - }, +/turf/open/floor/prison/green/east, /area/prison/cellblock/lowsec/nw) "aZX" = ( /obj/structure/machinery/light{ @@ -18254,10 +13938,7 @@ }, /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 8; - icon_state = "green" - }, +/turf/open/floor/prison/green/west, /area/prison/cellblock/lowsec/ne) "aZY" = ( /obj/structure/machinery/power/apc{ @@ -18265,19 +13946,13 @@ pixel_x = 28; start_charge = 0 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "green" - }, +/turf/open/floor/prison/green/east, /area/prison/cellblock/lowsec/ne) "aZZ" = ( /obj/structure/pipes/vents/scrubber{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/canteen) "baa" = ( /turf/closed/wall/prison, @@ -18288,25 +13963,16 @@ /area/prison/security/monitoring/highsec) "bac" = ( /obj/structure/toilet, -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/west, /area/prison/cellblock/highsec/north/south) "bad" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 10 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/canteen) "bae" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean_marked" - }, +/turf/open/floor/prison/bright_clean_marked/southwest, /area/prison/canteen) "baf" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ @@ -18317,9 +13983,7 @@ "bag" = ( /obj/item/phone, /obj/structure/surface/table/reinforced, -/turf/open/floor{ - icon_state = "hydrofloor" - }, +/turf/open/floor/hydrofloor, /area/prison/hallway/central/west) "bah" = ( /obj/structure/pipes/standard/simple/hidden/supply, @@ -18335,26 +13999,17 @@ /obj/structure/bed/chair/office/light{ dir = 4 }, -/turf/open/floor/prison{ - dir = 5; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/northeast, /area/prison/residential/central) "bak" = ( /turf/closed/wall/r_wall/prison_unmeltable, /area/prison/cellblock/lowsec/nw) "bal" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "rampbottom" - }, +/turf/open/floor/prison/rampbottom/north, /area/prison/yard) "bam" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 1; - icon_state = "rampbottom" - }, +/turf/open/floor/prison/rampbottom/north, /area/prison/yard) "ban" = ( /turf/closed/wall/r_wall/prison_unmeltable, @@ -18365,54 +14020,37 @@ /area/prison/hallway/central/east) "bap" = ( /obj/effect/landmark/hunter_primary, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/canteen) "baq" = ( /obj/structure/bed/chair, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/canteen) "bar" = ( /obj/structure/surface/table, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, +/turf/open/floor/prison/bluefull, /area/prison/residential/central) "bas" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 6 }, -/turf/open/floor/prison{ - icon_state = "red" - }, +/turf/open/floor/prison/red, /area/prison/cellblock/highsec/north/south) "bat" = ( /obj/structure/pipes/standard/manifold/hidden/supply, -/turf/open/floor/prison{ - icon_state = "red" - }, +/turf/open/floor/prison/red, /area/prison/cellblock/highsec/north/south) "bau" = ( /obj/structure/machinery/light, /obj/structure/pipes/standard/manifold/hidden/supply, -/turf/open/floor/prison{ - icon_state = "red" - }, +/turf/open/floor/prison/red, /area/prison/cellblock/highsec/north/south) "bav" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 9 }, -/turf/open/floor/prison{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/prison/red/southeast, /area/prison/cellblock/highsec/north/south) "baw" = ( /turf/closed/wall/r_wall/prison, @@ -18421,10 +14059,7 @@ /obj/structure/machinery/door/airlock/almayer/maint/colony{ dir = 2 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/prison/security/checkpoint/vip) "baz" = ( /turf/closed/wall/prison, @@ -18433,29 +14068,20 @@ /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "green" - }, +/turf/open/floor/prison/green/east, /area/prison/cellblock/lowsec/nw) "baB" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 8 }, /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 8; - icon_state = "green" - }, +/turf/open/floor/prison/green/west, /area/prison/cellblock/lowsec/ne) "baC" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "green" - }, +/turf/open/floor/prison/green/east, /area/prison/cellblock/lowsec/ne) "baD" = ( /obj/structure/pipes/vents/pump{ @@ -18464,10 +14090,7 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/canteen) "baE" = ( /obj/effect/decal/warning_stripes{ @@ -18479,19 +14102,13 @@ /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/canteen) "baG" = ( /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/canteen) "baH" = ( /obj/structure/surface/table/reinforced, @@ -18499,19 +14116,13 @@ dir = 1; icon_state = "pipe-c" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/canteen) "baI" = ( /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/canteen) "baJ" = ( /obj/effect/decal/warning_stripes{ @@ -18543,10 +14154,7 @@ "baO" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/microwave, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/prison/residential/central) "baP" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ @@ -18565,10 +14173,7 @@ /obj/structure/disposalpipe/junction{ icon_state = "pipe-y" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/canteen) "baS" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -18581,26 +14186,17 @@ /obj/structure/disposalpipe/trunk{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/canteen) "baU" = ( /obj/effect/decal/siding/wood_siding{ icon_state = "wood_siding4" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/residential/central) "baV" = ( /obj/structure/surface/rack, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/canteen) "baW" = ( /obj/structure/surface/rack, @@ -18610,10 +14206,7 @@ /obj/structure/platform{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/canteen) "baX" = ( /obj/structure/machinery/light{ @@ -18641,49 +14234,33 @@ /area/prison/security/monitoring/highsec) "bbb" = ( /obj/structure/closet/crate/freezer, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/prison/kitchen) "bbc" = ( /obj/structure/toilet, -/turf/open/floor/prison{ - dir = 1; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/north, /area/prison/cellblock/highsec/north/south) "bbd" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/north, /area/prison/cellblock/highsec/north/south) "bbe" = ( -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/prison/kitchen) "bbf" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/prison/kitchen) "bbh" = ( /obj/structure/closet/secure_closet/freezer/fridge, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/prison/kitchen) "bbi" = ( /obj/structure/closet/secure_closet/freezer/fridge, /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/prison/kitchen) "bbj" = ( /obj/structure/pipes/vents/pump/on, @@ -18691,10 +14268,7 @@ /area/prison/residential/central) "bbk" = ( /obj/effect/alien/weeds/node, -/turf/open/floor/prison{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/east, /area/prison/residential/central) "bbl" = ( /obj/structure/surface/table, @@ -18709,9 +14283,7 @@ /obj/effect/decal/warning_stripes{ icon_state = "SE-out" }, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, +/turf/open/floor/prison/bluefull, /area/prison/residential/central) "bbm" = ( /obj/structure/pipes/vents/scrubber{ @@ -18742,35 +14314,23 @@ dir = 2; name = "High-Security Monitoring" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/monitoring/highsec) "bbs" = ( /obj/effect/landmark/monkey_spawn, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/canteen) "bbt" = ( /obj/structure/machinery/computer/secure_data, /obj/structure/surface/table/reinforced, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/monitoring/highsec) "bbu" = ( /obj/structure/machinery/computer/cameras{ network = list("PRISON") }, /obj/structure/surface/table/reinforced, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/monitoring/highsec) "bbv" = ( /obj/structure/surface/table/reinforced, @@ -18782,19 +14342,13 @@ pixel_x = 9; pixel_y = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/monitoring/highsec) "bbw" = ( /obj/structure/machinery/shower{ pixel_y = 15 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/prison/cellblock/vip) "bbx" = ( /obj/structure/surface/table/reinforced, @@ -18810,16 +14364,10 @@ /turf/open/floor/prison, /area/prison/cellblock/vip) "bbA" = ( -/turf/open/floor/prison{ - dir = 9; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/northwest, /area/prison/security/checkpoint/vip) "bbB" = ( -/turf/open/floor/prison{ - dir = 5; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/northeast, /area/prison/security/checkpoint/vip) "bbC" = ( /obj/structure/window/framed/prison/reinforced, @@ -18863,17 +14411,11 @@ /obj/effect/decal/siding/wood_siding{ icon_state = "wood_siding4" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/residential/central) "bbH" = ( /obj/structure/surface/rack, -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/northwest, /area/prison/security/checkpoint/vip) "bbI" = ( /obj/structure/bed/chair/comfy{ @@ -18893,18 +14435,12 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/north, /area/prison/security/checkpoint/vip) "bbN" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic, /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/residential/central) "bbO" = ( /obj/structure/bed/chair/comfy{ @@ -18914,17 +14450,11 @@ /area/prison/residential/central) "bbP" = ( /obj/structure/filingcabinet, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/north, /area/prison/security/checkpoint/vip) "bbQ" = ( /obj/structure/machinery/vending/security, -/turf/open/floor/prison{ - dir = 5; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/northeast, /area/prison/security/checkpoint/vip) "bbR" = ( /obj/structure/reagent_dispensers/fueltank, @@ -18939,20 +14469,14 @@ /area/prison/storage/vip) "bbT" = ( /obj/structure/largecrate/random, -/turf/open/floor/prison{ - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2, /area/prison/security/monitoring/highsec) "bbU" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2, /area/prison/security/monitoring/highsec) "bbV" = ( -/turf/open/floor/prison{ - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2, /area/prison/security/monitoring/highsec) "bbW" = ( /obj/structure/largecrate/random, @@ -18971,18 +14495,12 @@ /area/prison/cellblock/highsec/north/south) "bbZ" = ( /obj/effect/landmark/corpsespawner/prisoner, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/highsec/north/south) "bca" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 4; - icon_state = "green" - }, +/turf/open/floor/prison/green/east, /area/prison/cellblock/lowsec/nw) "bcb" = ( /turf/open/floor/prison, @@ -18991,36 +14509,24 @@ /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/yard) "bcd" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/yard) "bce" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 8; - icon_state = "rampbottom" - }, +/turf/open/floor/prison/rampbottom/west, /area/prison/hallway/central/east) "bcf" = ( /obj/structure/bed/chair{ dir = 8 }, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/canteen) "bcg" = ( /obj/structure/pipes/standard/simple/hidden/supply, @@ -19028,33 +14534,23 @@ icon_state = "pipe-j2" }, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/canteen) "bcj" = ( /turf/closed/wall/r_wall/prison_unmeltable, /area/prison/yard) "bck" = ( -/turf/open/floor/prison{ - icon_state = "bright_clean_marked" - }, +/turf/open/floor/prison/bright_clean_marked, /area/prison/yard) "bcl" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - icon_state = "bright_clean_marked" - }, +/turf/open/floor/prison/bright_clean_marked, /area/prison/yard) "bcm" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "rampbottom" - }, +/turf/open/floor/prison/rampbottom/north, /area/prison/yard) "bcn" = ( /obj/structure/sink{ @@ -19066,10 +14562,7 @@ /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/kitchen) "bco" = ( /obj/structure/sink{ @@ -19078,10 +14571,7 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/kitchen) "bcp" = ( /obj/structure/sink{ @@ -19093,19 +14583,13 @@ /obj/effect/decal/warning_stripes{ icon_state = "SE-out" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/kitchen) "bcq" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/hallway/central/east) "bcr" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -19118,9 +14602,7 @@ /obj/effect/decal/warning_stripes{ icon_state = "SW-out" }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/prison/kitchen) "bcs" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -19129,9 +14611,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/prison/kitchen) "bct" = ( /obj/structure/pipes/standard/manifold/hidden/supply, @@ -19139,27 +14619,20 @@ dir = 8; icon_state = "pipe-c" }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/prison/kitchen) "bcv" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 10 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/prison/kitchen) "bcx" = ( /turf/closed/wall/prison, /area/prison/hallway/entrance) "bcy" = ( /obj/structure/bed/chair, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/hallway/entrance) "bcz" = ( /turf/open/floor/prison, @@ -19176,9 +14649,7 @@ /obj/effect/decal/warning_stripes{ icon_state = "SE-out" }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/prison/kitchen) "bcC" = ( /obj/structure/window/framed/prison/reinforced/hull, @@ -19222,10 +14693,7 @@ /area/prison/maintenance/residential/nw) "bcO" = ( /obj/structure/closet/secure_closet/freezer/fridge, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/prison/residential/central) "bcQ" = ( /turf/open/floor/prison, @@ -19273,10 +14741,7 @@ /turf/open/floor/wood, /area/prison/security/monitoring/highsec) "bda" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/prison/red/southwest, /area/prison/cellblock/highsec/north/south) "bdb" = ( /obj/structure/bed/chair/comfy{ @@ -19288,37 +14753,22 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/north, /area/prison/security/monitoring/highsec) "bdd" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/north, /area/prison/security/monitoring/highsec) "bdf" = ( -/turf/open/floor/prison{ - dir = 5; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/northeast, /area/prison/security/monitoring/highsec) "bdg" = ( -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/northwest, /area/prison/security/monitoring/highsec) "bdh" = ( /obj/structure/bed/chair/office/dark{ dir = 8 }, -/turf/open/floor/prison{ - dir = 5; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/northeast, /area/prison/security/monitoring/highsec) "bdi" = ( /obj/structure/surface/table/reinforced, @@ -19326,17 +14776,11 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/monitoring/highsec) "bdj" = ( /obj/structure/machinery/door/window/southright, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/prison/cellblock/vip) "bdk" = ( /turf/open/floor/prison, @@ -19356,10 +14800,7 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/hallway/entrance) "bdp" = ( /obj/structure/pipes/standard/simple/hidden/supply, @@ -19393,9 +14834,7 @@ /obj/effect/decal/siding/wood_siding{ icon_state = "wood_siding2" }, -/turf/open/floor{ - icon_state = "asteroid" - }, +/turf/open/floor/asteroid, /area/prison/residential/central) "bdw" = ( /obj/structure/machinery/power/apc{ @@ -19403,10 +14842,7 @@ pixel_x = -24; start_charge = 0 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/west, /area/prison/security/checkpoint/vip) "bdx" = ( /obj/structure/pipes/standard/simple/hidden/supply, @@ -19420,17 +14856,11 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 6 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/east, /area/prison/security/checkpoint/vip) "bdz" = ( /obj/effect/landmark/hunter_primary, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/yard) "bdA" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -19445,10 +14875,7 @@ /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 1 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/west, /area/prison/security/checkpoint/vip) "bdC" = ( /obj/structure/window/framed/prison, @@ -19458,44 +14885,29 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 6 }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/northwest, /area/prison/security/monitoring/highsec) "bdE" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/north, /area/prison/security/monitoring/highsec) "bdF" = ( /obj/structure/pipes/standard/manifold/hidden/supply, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/north, /area/prison/security/monitoring/highsec) "bdG" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/north, /area/prison/security/monitoring/highsec) "bdH" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/prison{ - dir = 5; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/northeast, /area/prison/security/monitoring/highsec) "bdI" = ( /turf/closed/wall/r_wall/prison, @@ -19510,28 +14922,19 @@ /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/east, /area/prison/security/checkpoint/vip) "bdL" = ( /obj/structure/pipes/vents/scrubber{ dir = 4 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "green" - }, +/turf/open/floor/prison/green/west, /area/prison/cellblock/lowsec/nw) "bdN" = ( /obj/structure/pipes/vents/scrubber{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/yard) "bdO" = ( /turf/closed/wall/r_wall/prison, @@ -19540,38 +14943,26 @@ /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/yard) "bdS" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "Central Ring" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/hallway/central/west) "bdT" = ( /obj/structure/pipes/vents/scrubber{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/yard) "bdU" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 6 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/yard) "bdV" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -19581,60 +14972,39 @@ dir = 2; name = "Yard" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/yard) "bdW" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/yard) "bdX" = ( /obj/structure/pipes/standard/manifold/hidden/supply, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/yard) "bdY" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 10 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/yard) "bdZ" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 8 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "green" - }, +/turf/open/floor/prison/green/west, /area/prison/cellblock/lowsec/ne) "bea" = ( /obj/structure/pipes/vents/scrubber{ dir = 8 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "green" - }, +/turf/open/floor/prison/green/east, /area/prison/cellblock/lowsec/ne) "beb" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "rampbottom" - }, +/turf/open/floor/prison/rampbottom/west, /area/prison/hallway/central/east) "bec" = ( /turf/open/floor/prison, @@ -19642,10 +15012,7 @@ "bed" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean_marked" - }, +/turf/open/floor/prison/bright_clean_marked/southwest, /area/prison/canteen) "bef" = ( /obj/structure/stairs/perspective{ @@ -19655,33 +15022,21 @@ /obj/structure/platform{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/canteen) "beg" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/kitchen) "beh" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/kitchen) "bei" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/kitchen) "bej" = ( /obj/effect/decal/cleanable/blood, @@ -19689,18 +15044,13 @@ /obj/effect/decal/warning_stripes{ icon_state = "E" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/kitchen) "bek" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/prison/kitchen) "bel" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -19710,35 +15060,24 @@ /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/prison/kitchen) "ben" = ( /obj/effect/landmark/crap_item, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/prison/kitchen) "beo" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/processor, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/prison/kitchen) "bep" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/microwave, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/prison/kitchen) "beq" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/hallway/entrance) "ber" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -19777,9 +15116,7 @@ /obj/effect/decal/siding/wood_siding{ icon_state = "wood_siding8" }, -/turf/open/floor{ - icon_state = "asteroid" - }, +/turf/open/floor/asteroid, /area/prison/residential/central) "bew" = ( /obj/effect/decal/warning_stripes{ @@ -19802,9 +15139,7 @@ "bez" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/reagentgrinder, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/prison/kitchen) "beB" = ( /obj/structure/machinery/light{ @@ -19819,45 +15154,33 @@ /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/residential/central) "beE" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/effect/decal/siding/wood_siding{ icon_state = "wood_siding8" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/residential/central) "beF" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/prison/kitchen) "beG" = ( /obj/structure/pipes/vents/scrubber{ dir = 8 }, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/prison/kitchen) "beH" = ( /obj/effect/decal/warning_stripes{ icon_state = "E" }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/prison/kitchen) "beI" = ( /obj/structure/machinery/door/poddoor/shutters/almayer{ @@ -19865,30 +15188,19 @@ id = "kitchen"; name = "\improper Kitchen Access Shutters" }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/prison/kitchen) "beJ" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/residential/central) "beK" = ( /obj/structure/pipes/vents/scrubber, -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/northwest, /area/prison/hanger/main) "beL" = ( /obj/effect/decal/cleanable/blood, /obj/structure/pipes/vents/pump/on, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/north, /area/prison/hanger/main) "beM" = ( /obj/structure/surface/table/reinforced, @@ -19900,10 +15212,7 @@ pixel_x = 9; pixel_y = 8 }, -/turf/open/floor/prison{ - dir = 5; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/northeast, /area/prison/hanger/main) "beN" = ( /obj/effect/landmark/good_item, @@ -19913,10 +15222,7 @@ /obj/structure/pipes/vents/scrubber{ dir = 1 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/west, /area/prison/residential/central) "beR" = ( /obj/structure/machinery/door/airlock/almayer/security/colony, @@ -19929,29 +15235,20 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 9 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/west, /area/prison/security/monitoring/highsec) "beV" = ( /obj/structure/pipes/vents/scrubber{ dir = 8 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkredcorners2" - }, +/turf/open/floor/prison/darkredcorners2/north, /area/prison/security/monitoring/highsec) "beW" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ dir = 2; name = "High-Security Monitoring" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/monitoring/highsec) "beX" = ( /obj/structure/pipes/standard/simple/hidden/supply, @@ -19974,10 +15271,7 @@ /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ name = "Security Booth" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/monitoring/highsec) "bfc" = ( /turf/closed/wall/prison, @@ -19986,10 +15280,7 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/west, /area/prison/security/monitoring/highsec) "bfe" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -19999,10 +15290,7 @@ /area/prison/security/monitoring/highsec) "bff" = ( /obj/structure/surface/table/reinforced, -/turf/open/floor/prison{ - dir = 5; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/northeast, /area/prison/security/monitoring/highsec) "bfg" = ( /turf/closed/wall/prison, @@ -20014,17 +15302,11 @@ /turf/open/floor/plating/plating_catwalk/prison, /area/prison/cellblock/vip) "bfi" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/west, /area/prison/security/checkpoint/vip) "bfj" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/east, /area/prison/security/checkpoint/vip) "bfk" = ( /obj/structure/window/framed/prison/reinforced, @@ -20034,26 +15316,17 @@ /obj/structure/pipes/vents/scrubber{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/southwest, /area/prison/security/checkpoint/vip) "bfm" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkredcorners2" - }, +/turf/open/floor/prison/darkredcorners2/west, /area/prison/security/checkpoint/vip) "bfn" = ( /turf/open/floor/prison, /area/prison/security/checkpoint/vip) "bfo" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/east, /area/prison/security/checkpoint/vip) "bfq" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony{ @@ -20065,16 +15338,11 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/hallway/central/west) "bfs" = ( /obj/structure/machinery/floodlight, -/turf/open/floor/prison{ - icon_state = "bright_clean_marked" - }, +/turf/open/floor/prison/bright_clean_marked, /area/prison/yard) "bft" = ( /obj/structure/pipes/standard/simple/hidden/supply, @@ -20082,28 +15350,19 @@ dir = 1; flipped = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/yard) "bfu" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/yard) "bfv" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/yard) "bfw" = ( /turf/closed/wall/prison, @@ -20116,18 +15375,12 @@ /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/yard) "bfz" = ( /obj/item/frame/table/reinforced, /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/yard) "bfC" = ( /obj/structure/window/framed/prison/reinforced, @@ -20140,10 +15393,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "rampbottom" - }, +/turf/open/floor/prison/rampbottom/west, /area/prison/hallway/central/east) "bfF" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -20165,10 +15415,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/canteen) "bfH" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -20177,20 +15424,14 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/canteen) "bfI" = ( /obj/structure/pipes/standard/manifold/fourway/hidden/supply, /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/canteen) "bfJ" = ( /obj/structure/bed/chair{ @@ -20202,10 +15443,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/canteen) "bfK" = ( /obj/structure/surface/table/reinforced, @@ -20216,10 +15454,7 @@ dir = 4 }, /obj/item/reagent_container/food/drinks/bottle/cognac, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/canteen) "bfL" = ( /obj/structure/bed/chair{ @@ -20232,10 +15467,7 @@ dir = 4 }, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/canteen) "bfN" = ( /obj/structure/bed/chair{ @@ -20247,10 +15479,7 @@ /obj/structure/disposalpipe/junction{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/canteen) "bfO" = ( /obj/structure/pipes/standard/manifold/fourway/hidden/supply, @@ -20258,10 +15487,7 @@ dir = 4; icon_state = "pipe-j2" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean_marked" - }, +/turf/open/floor/prison/bright_clean_marked/southwest, /area/prison/canteen) "bfP" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -20270,19 +15496,13 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean_marked" - }, +/turf/open/floor/prison/bright_clean_marked/southwest, /area/prison/canteen) "bfR" = ( /obj/effect/decal/warning_stripes{ icon_state = "SW-out" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/hallway/entrance) "bfS" = ( /obj/structure/sign/safety/restrictedarea, @@ -20308,10 +15528,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/canteen) "bfV" = ( /obj/effect/decal/warning_stripes{ @@ -20333,10 +15550,7 @@ dir = 2; name = "Canteen" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/kitchen) "bfZ" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -20346,10 +15560,7 @@ dir = 2; icon_state = "pipe-c" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/kitchen) "bga" = ( /obj/structure/window/framed/prison, @@ -20359,10 +15570,7 @@ /obj/structure/pipes/vents/scrubber{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/kitchen) "bgc" = ( /turf/open/organic/grass, @@ -20378,10 +15586,7 @@ /obj/effect/decal/warning_stripes{ icon_state = "E" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/kitchen) "bgf" = ( /obj/structure/disposalpipe/junction{ @@ -20391,40 +15596,29 @@ /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/prison/kitchen) "bgg" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/prison/kitchen) "bgh" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 5 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/prison/kitchen) "bgi" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/prison/kitchen) "bgj" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 5 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/hanger/main) "bgk" = ( /obj/structure/bed/chair/office/dark{ @@ -20434,20 +15628,14 @@ /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/hanger/main) "bgl" = ( /obj/structure/machinery/computer/cameras{ network = list("PRISON") }, /obj/structure/surface/table/reinforced, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/east, /area/prison/hanger/main) "bgm" = ( /obj/structure/surface/table, @@ -20459,22 +15647,14 @@ pixel_x = 9; pixel_y = 8 }, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, +/turf/open/floor/prison/bluefull, /area/prison/residential/central) "bgn" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/west, /area/prison/residential/central) "bgp" = ( /obj/structure/machinery/photocopier, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/west, /area/prison/security/monitoring/highsec) "bgq" = ( /obj/structure/pipes/standard/simple/hidden/supply, @@ -20486,26 +15666,17 @@ /turf/open/floor/prison, /area/prison/security/monitoring/highsec) "bgs" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/west, /area/prison/security/monitoring/highsec) "bgt" = ( /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/prison, /area/prison/security/monitoring/highsec) "bgu" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkredcorners2" - }, +/turf/open/floor/prison/darkredcorners2/north, /area/prison/security/monitoring/highsec) "bgv" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/east, /area/prison/security/monitoring/highsec) "bgw" = ( /obj/structure/pipes/vents/scrubber, @@ -20524,94 +15695,59 @@ /area/prison/cellblock/vip) "bgA" = ( /obj/structure/surface/table/reinforced, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/checkpoint/vip) "bgB" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/southwest, /area/prison/security/checkpoint/vip) "bgC" = ( /obj/structure/bed/chair/office/dark, -/turf/open/floor/prison{ - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2, /area/prison/security/checkpoint/vip) "bgD" = ( -/turf/open/floor/prison{ - dir = 6; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/southeast, /area/prison/security/checkpoint/vip) "bgF" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 6; - icon_state = "green" - }, +/turf/open/floor/prison/green/southeast, /area/prison/cellblock/lowsec/nw) "bgG" = ( /obj/effect/landmark/monkey_spawn, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/yard) "bgH" = ( /obj/structure/surface/table/reinforced{ dir = 8; flipped = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/yard) "bgI" = ( /obj/item/ammo_casing, /obj/effect/landmark/crap_item, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/yard) "bgJ" = ( /obj/effect/decal/cleanable/blood, /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/yard) "bgK" = ( /obj/item/ammo_casing, /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/yard) "bgL" = ( /obj/effect/decal/cleanable/blood, /obj/item/ammo_magazine/rifle/m16, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/yard) "bgM" = ( /obj/structure/surface/table/reinforced{ dir = 4; flipped = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/yard) "bgN" = ( /turf/open/floor/prison, @@ -20619,22 +15755,13 @@ "bgO" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 10; - icon_state = "green" - }, +/turf/open/floor/prison/green/southwest, /area/prison/cellblock/lowsec/ne) "bgP" = ( -/turf/open/floor/prison{ - dir = 6; - icon_state = "green" - }, +/turf/open/floor/prison/green/southeast, /area/prison/cellblock/lowsec/ne) "bgQ" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/yard) "bgS" = ( /obj/structure/bed/chair{ @@ -20643,20 +15770,14 @@ /obj/structure/disposalpipe/junction{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/canteen) "bgT" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/canteen) "bgV" = ( /obj/structure/sink{ @@ -20668,10 +15789,7 @@ icon_state = "pipe-c" }, /obj/structure/machinery/light/small, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/kitchen) "bgW" = ( /obj/structure/sink{ @@ -20681,10 +15799,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/kitchen) "bgX" = ( /obj/structure/sink{ @@ -20698,10 +15813,7 @@ /obj/effect/decal/warning_stripes{ icon_state = "NE-out" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/kitchen) "bgY" = ( /obj/structure/disposalpipe/segment{ @@ -20711,161 +15823,112 @@ /obj/effect/decal/warning_stripes{ icon_state = "NW-out" }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/prison/kitchen) "bgZ" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, /obj/effect/landmark/corpsespawner/chef, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/prison/kitchen) "bha" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/prison/kitchen) "bhb" = ( /obj/structure/disposalpipe/junction{ dir = 8; icon_state = "pipe-j2" }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/prison/kitchen) "bhc" = ( /obj/structure/disposalpipe/segment{ dir = 2; icon_state = "pipe-c" }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/prison/kitchen) "bhe" = ( /obj/structure/machinery/light{ dir = 8 }, /obj/structure/machinery/vending/security, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/southwest, /area/prison/hanger/main) "bhf" = ( /obj/structure/bed/chair/office/light, -/turf/open/floor/prison{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/west, /area/prison/residential/central) "bhg" = ( /obj/structure/pipes/vents/pump/on, -/turf/open/floor/prison{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/prison/red/northwest, /area/prison/security/monitoring/highsec) "bhh" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/prison/red/north, /area/prison/security/monitoring/highsec) "bhi" = ( /obj/structure/pipes/vents/scrubber, -/turf/open/floor/prison{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/prison/red/northeast, /area/prison/security/monitoring/highsec) "bhj" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/recharger, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/southwest, /area/prison/security/monitoring/highsec) "bhk" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 5 }, -/turf/open/floor/prison{ - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2, /area/prison/security/monitoring/highsec) "bhl" = ( /obj/structure/pipes/standard/manifold/fourway/hidden/supply, -/turf/open/floor/prison{ - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2, /area/prison/security/monitoring/highsec) "bhm" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2, /area/prison/security/monitoring/highsec) "bhn" = ( /obj/structure/filingcabinet, -/turf/open/floor/prison{ - dir = 6; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/southeast, /area/prison/security/monitoring/highsec) "bho" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe, /area/prison/cellblock/vip) "bhp" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 9 }, -/turf/open/floor/prison{ - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe, /area/prison/cellblock/vip) "bhq" = ( /obj/item/phone, /obj/structure/surface/table/reinforced, -/turf/open/floor/prison{ - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe, /area/prison/cellblock/vip) "bhs" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/hallway/entrance) "bht" = ( /obj/structure/surface/table/reinforced, /obj/item/device/flashlight/lamp, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/checkpoint/vip) "bhu" = ( /obj/structure/surface/table/reinforced, @@ -20877,18 +15940,12 @@ pixel_x = 9; pixel_y = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/checkpoint/vip) "bhv" = ( /obj/structure/machinery/computer/secure_data, /obj/structure/surface/table/reinforced, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/checkpoint/vip) "bhw" = ( /obj/structure/window/framed/prison/reinforced, @@ -20899,66 +15956,47 @@ network = list("PRISON") }, /obj/structure/surface/table/reinforced, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/checkpoint/vip) "bhy" = ( /obj/structure/pipes/vents/scrubber{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2, /area/prison/storage/vip) "bhz" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2, /area/prison/storage/vip) "bhA" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2, /area/prison/storage/vip) "bhB" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "Northwest Low-Security Cellblock" }, -/turf/open/floor/prison{ - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull, /area/prison/cellblock/lowsec/nw) "bhC" = ( -/turf/open/floor{ - icon_state = "asteroid" - }, +/turf/open/floor/asteroid, /area/prison/residential/central) "bhD" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/effect/decal/siding{ icon_state = "siding8" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/residential/central) "bhE" = ( /obj/structure/toilet{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/lowsec/nw) "bhG" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -20968,86 +16006,59 @@ dir = 8; flipped = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/yard) "bhH" = ( /obj/effect/decal/cleanable/blood, /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/yard) "bhI" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/southwest, /area/prison/security/monitoring/highsec) "bhJ" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 6 }, -/turf/open/floor/prison{ - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2, /area/prison/security/monitoring/highsec) "bhK" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2, /area/prison/security/monitoring/highsec) "bhL" = ( /obj/structure/pipes/standard/manifold/hidden/supply, -/turf/open/floor/prison{ - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2, /area/prison/security/monitoring/highsec) "bhM" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 9 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/yard) "bhN" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 5 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/yard) "bhO" = ( /obj/effect/decal/cleanable/blood, /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/yard) "bhP" = ( /obj/structure/toilet{ dir = 8; pixel_x = -4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/lowsec/ne) "bhQ" = ( /obj/structure/pipes/standard/simple/hidden/supply, @@ -21055,16 +16066,11 @@ /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "Northeast Low-Security Cellblock" }, -/turf/open/floor/prison{ - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull, /area/prison/cellblock/lowsec/ne) "bhR" = ( /obj/effect/landmark/hunter_primary, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/hallway/central/east) "bhT" = ( /obj/structure/bed/chair{ @@ -21074,44 +16080,32 @@ dir = 1; icon_state = "pipe-c" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/canteen) "bhU" = ( /obj/structure/closet/secure_closet/freezer/fridge, /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/prison/kitchen) "bhV" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/prison/kitchen) "bhW" = ( /obj/structure/closet/crate/freezer, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/prison/kitchen) "bhX" = ( /obj/structure/bed/chair/comfy{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/hallway/entrance) "bhY" = ( /obj/structure/pipes/standard/simple/hidden/supply, @@ -21119,32 +16113,20 @@ dir = 2; name = "Security Booth" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/hanger/main) "bhZ" = ( -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/northwest, /area/prison/hanger/main) "bia" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/prison/hanger/main) "bib" = ( /obj/structure/surface/table/reinforced{ dir = 1; flipped = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/yard) "bic" = ( /obj/effect/decal/warning_stripes{ @@ -21153,17 +16135,11 @@ /obj/structure/machinery/landinglight/ds1/delaythree{ dir = 4 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/prison/hanger/main) "bid" = ( /obj/structure/surface/table/reinforced, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/residential/central) "bie" = ( /obj/structure/machinery/door/airlock/almayer/command/colony{ @@ -21171,19 +16147,13 @@ name = "Civilian Residences Admin" }, /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/residential/central) "big" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 5 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/prison/red/west, /area/prison/security/monitoring/highsec) "bik" = ( /obj/structure/machinery/light{ @@ -21192,10 +16162,7 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 9 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/prison/red/east, /area/prison/security/monitoring/highsec) "bil" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ @@ -21203,10 +16170,7 @@ name = "Security Booth" }, /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/monitoring/highsec) "bim" = ( /obj/structure/machinery/door/airlock/prison/horizontal{ @@ -21215,18 +16179,13 @@ opacity = 0 }, /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, +/turf/open/floor/prison/bluefull, /area/prison/cellblock/vip) "bin" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/west, /area/prison/security/checkpoint/vip) "bio" = ( /obj/structure/machinery/light{ @@ -21235,10 +16194,7 @@ /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/east, /area/prison/security/checkpoint/vip) "bip" = ( /obj/structure/pipes/standard/simple/hidden/supply, @@ -21253,19 +16209,13 @@ dir = 8; network = list("PRISON") }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/hallway/central/west) "bir" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 8 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/prison/green/north, /area/prison/hallway/central/west) "bis" = ( /obj/structure/machinery/light{ @@ -21274,50 +16224,32 @@ /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/prison/green/north, /area/prison/hallway/central/west) "bit" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "Yard" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/yard) "biu" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/yard) "biv" = ( /obj/item/frame/table/reinforced, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/yard) "biw" = ( /obj/item/ammo_casing, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/yard) "biy" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "Yard" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/yard) "biz" = ( /obj/structure/machinery/light{ @@ -21326,33 +16258,21 @@ /obj/structure/pipes/vents/scrubber{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/hallway/central/east) "biA" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/prison/green/north, /area/prison/hallway/central/east) "biB" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/prison/green/north, /area/prison/hallway/central/east) "biC" = ( /obj/effect/landmark/crap_item, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/canteen) "biE" = ( /obj/structure/pipes/vents/scrubber{ @@ -21361,10 +16281,7 @@ /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/hallway/entrance) "biH" = ( /obj/structure/machinery/alarm/almayer{ @@ -21373,10 +16290,7 @@ /obj/structure/platform{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/canteen) "biI" = ( /obj/effect/decal/cleanable/blood, @@ -21386,19 +16300,13 @@ /obj/structure/bed/chair/comfy{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/hallway/entrance) "biO" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 8 }, -/turf/open/floor/prison{ - dir = 5; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/northeast, /area/prison/hanger/main) "biP" = ( /obj/structure/pipes/vents/scrubber{ @@ -21410,10 +16318,7 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "rampbottom" - }, +/turf/open/floor/prison/rampbottom/east, /area/prison/hanger/main) "biR" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ @@ -21421,26 +16326,16 @@ name = "High-Security Monitoring" }, /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/monitoring/highsec) "biS" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/west, /area/prison/hanger/main) "biT" = ( -/turf/open/floor/prison{ - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/prison/darkyellowcorners2, /area/prison/hanger/main) "biU" = ( -/turf/open/floor/prison{ - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2, /area/prison/hanger/main) "biV" = ( /obj/effect/decal/warning_stripes{ @@ -21449,100 +16344,65 @@ /obj/structure/machinery/landinglight/ds1{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2, /area/prison/hanger/main) "biY" = ( /obj/effect/decal/siding/wood_siding{ icon_state = "wood_siding8" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/residential/central) "biZ" = ( /turf/open/gm/river, /area/prison/residential/central) "bja" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 9; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/northwest, /area/prison/residential/central) "bjb" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/north, /area/prison/residential/central) "bjc" = ( /obj/structure/machinery/alarm/almayer{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/north, /area/prison/residential/central) "bjd" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/north, /area/prison/residential/central) "bje" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/north, /area/prison/residential/central) "bjg" = ( /obj/structure/pipes/vents/pump/on, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/north, /area/prison/residential/central) "bjh" = ( /obj/effect/decal/warning_stripes{ icon_state = "E" }, /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 5; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/northeast, /area/prison/residential/central) "bji" = ( /obj/effect/decal/warning_stripes{ icon_state = "SW-out" }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/prison/red/west, /area/prison/security/monitoring/highsec) "bjj" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/yard) "bjk" = ( /obj/item/ammo_casing, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/yard) "bjm" = ( /obj/structure/window/reinforced{ @@ -21574,76 +16434,49 @@ /turf/open/floor/plating/plating_catwalk/prison, /area/prison/security/monitoring/highsec) "bjq" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/prison/red/east, /area/prison/security/monitoring/highsec) "bjr" = ( /obj/structure/filingcabinet, -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/northwest, /area/prison/security/monitoring/highsec) "bjt" = ( /obj/structure/bed/chair/office/dark{ dir = 4; layer = 3.25 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/north, /area/prison/security/monitoring/highsec) "bju" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/computer/secure_data, -/turf/open/floor/prison{ - dir = 5; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/northeast, /area/prison/security/monitoring/highsec) "bjv" = ( /obj/structure/window/framed/prison/reinforced, /turf/open/floor/plating, /area/prison/cellblock/vip) "bjw" = ( -/turf/open/floor/prison{ - dir = 9; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/northwest, /area/prison/cellblock/vip) "bjx" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/north, /area/prison/cellblock/vip) "bjy" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/north, /area/prison/cellblock/vip) "bjA" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/north, /area/prison/cellblock/vip) "bjB" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/north, /area/prison/cellblock/vip) "bjD" = ( /obj/effect/decal/cleanable/blood, @@ -21666,119 +16499,74 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/north, /area/prison/cellblock/vip) "bjI" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/hanger/main) "bjJ" = ( /obj/structure/machinery/computer/secure_data, /obj/structure/surface/table/reinforced, -/turf/open/floor/prison{ - dir = 6; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/southeast, /area/prison/hanger/main) "bjK" = ( /obj/structure/machinery/alarm/almayer{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/north, /area/prison/cellblock/vip) "bjL" = ( /obj/structure/pipes/vents/scrubber{ dir = 4 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/north, /area/prison/cellblock/vip) "bjN" = ( /obj/effect/landmark/monkey_spawn, /obj/structure/machinery/camera/autoname{ network = list("PRISON") }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/north, /area/prison/security/checkpoint/vip) "bjO" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/residential/central) "bjP" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "bluecorner" - }, +/turf/open/floor/prison/bluecorner/east, /area/prison/security/checkpoint/vip) "bjQ" = ( /obj/structure/pipes/vents/pump/on, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/north, /area/prison/security/checkpoint/vip) "bjR" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/prison/red/north, /area/prison/security/monitoring/highsec) "bjS" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/north, /area/prison/security/checkpoint/vip) "bjT" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/prison/red/north, /area/prison/security/monitoring/highsec) "bjU" = ( /obj/structure/machinery/alarm/almayer{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/yard) "bjW" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/north, /area/prison/storage/vip) "bjX" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 5; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/northeast, /area/prison/storage/vip) "bjY" = ( /obj/structure/machinery/power/apc{ @@ -21786,10 +16574,7 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/storage/vip) "bjZ" = ( /obj/structure/stairs/perspective{ @@ -21800,109 +16585,72 @@ /obj/structure/platform{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/storage/vip) "bka" = ( /obj/structure/toilet{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe, /area/prison/cellblock/vip) "bkb" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "rampbottom" - }, +/turf/open/floor/prison/rampbottom/west, /area/prison/yard) "bkc" = ( /obj/structure/surface/table/reinforced, /obj/item/ammo_casing, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/yard) "bkd" = ( /obj/structure/surface/table/reinforced, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/yard) "bke" = ( /obj/effect/decal/cleanable/blood, /obj/effect/decal/siding/wood_siding{ icon_state = "wood_siding2" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/yard) "bkf" = ( /obj/effect/decal/siding/wood_siding{ icon_state = "wood_siding2" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/yard) "bkg" = ( /obj/item/ammo_casing, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/yard) "bkh" = ( /obj/structure/machinery/flasher_button{ id = "yard_flashers"; pixel_y = 24 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "rampbottom" - }, +/turf/open/floor/prison/rampbottom/east, /area/prison/yard) "bki" = ( /obj/effect/landmark/hunter_secondary, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/yard) "bkj" = ( /obj/structure/toilet, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/toilet/canteen) "bkk" = ( /obj/structure/toilet, /obj/effect/landmark/crap_item, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/toilet/canteen) "bkl" = ( /obj/structure/machinery/shower{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/prison/toilet/canteen) "bkm" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -21920,17 +16668,13 @@ /obj/structure/machinery/shower{ pixel_y = 15 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/prison/toilet/canteen) "bkp" = ( /obj/structure/machinery/shower{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/prison/toilet/canteen) "bkr" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -21946,38 +16690,23 @@ /area/prison/hanger/main) "bku" = ( /obj/item/ammo_magazine/rifle/m16, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/yard) "bkw" = ( /obj/structure/pipes/standard/manifold/fourway/hidden/supply, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/east, /area/prison/hanger/main) "bkx" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "rampbottom" - }, +/turf/open/floor/prison/rampbottom/east, /area/prison/hanger/main) "bky" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/east, /area/prison/hanger/main) "bkz" = ( /obj/effect/decal/siding{ icon_state = "siding4" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/residential/central) "bkB" = ( /obj/effect/landmark/hunter_primary, @@ -21985,34 +16714,22 @@ /area/prison/residential/central) "bkC" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/prison/residential/central) "bkD" = ( /obj/effect/alien/weeds/node, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/residential/central) "bkG" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/residential/central) "bkH" = ( /obj/effect/decal/warning_stripes{ icon_state = "E" }, /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/prison/residential/central) "bkI" = ( /obj/structure/machinery/door/poddoor/almayer/open{ @@ -22025,10 +16742,7 @@ /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/prison/red/west, /area/prison/security/monitoring/highsec) "bkK" = ( /obj/structure/pipes/standard/simple/hidden/supply, @@ -22064,10 +16778,7 @@ dir = 8; network = list("PRISON") }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/residential/central) "bkQ" = ( /obj/structure/showcase{ @@ -22083,25 +16794,16 @@ /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ name = "High-Security Monitoring" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/monitoring/highsec) "bkS" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ name = "High-Security Monitoring" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/cellblock/vip) "bkT" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/west, /area/prison/cellblock/vip) "bkU" = ( /obj/structure/machinery/door/airlock/almayer/generic{ @@ -22111,9 +16813,7 @@ name = "Toilet"; opacity = 0 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/prison/residential/central) "bkV" = ( /obj/structure/pipes/standard/simple/hidden/supply, @@ -22134,10 +16834,7 @@ /obj/structure/machinery/alarm/almayer{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/prison/red/north, /area/prison/security/monitoring/highsec) "bla" = ( /obj/structure/window/framed/prison/cell, @@ -22152,32 +16849,23 @@ /turf/open/floor/prison, /area/prison/security/checkpoint/vip) "bld" = ( -/turf/open/floor/prison{ - icon_state = "bluefull" - }, +/turf/open/floor/prison/bluefull, /area/prison/security/checkpoint/vip) "ble" = ( /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/prison, /area/prison/security/checkpoint/vip) "blf" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/prison/green/north, /area/prison/hallway/central/west) "blg" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, +/turf/open/floor/prison/bluefull, /area/prison/security/checkpoint/vip) "bli" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, +/turf/open/floor/prison/bluefull, /area/prison/storage/vip) "blk" = ( /obj/structure/pipes/standard/simple/hidden/supply, @@ -22185,37 +16873,25 @@ /turf/open/floor/plating/plating_catwalk/prison, /area/prison/hallway/central/west) "bll" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "rampbottom" - }, +/turf/open/floor/prison/rampbottom/west, /area/prison/yard) "blm" = ( /obj/structure/surface/table/reinforced, /obj/effect/landmark/good_item, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/yard) "bln" = ( /obj/effect/decal/cleanable/blood, /obj/effect/decal/cleanable/blood/gibs, /obj/effect/landmark/good_item, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/yard) "blo" = ( /obj/item/frame/table/reinforced, /obj/effect/decal/siding/wood_siding{ icon_state = "wood_siding4" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/yard) "blp" = ( /obj/effect/decal/cleanable/blood/gibs, @@ -22235,34 +16911,22 @@ /obj/effect/decal/siding/wood_siding{ icon_state = "wood_siding8" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/yard) "bls" = ( /obj/effect/decal/cleanable/blood, /obj/effect/landmark/good_item, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/yard) "blt" = ( /obj/effect/decal/cleanable/blood, /obj/effect/landmark/good_item, /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/yard) "blu" = ( /obj/item/weapon/gun/rifle/m16, -/turf/open/floor/prison{ - dir = 4; - icon_state = "rampbottom" - }, +/turf/open/floor/prison/rampbottom/east, /area/prison/yard) "blw" = ( /obj/structure/window/framed/prison/reinforced/hull, @@ -22272,25 +16936,17 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/toilet/canteen) "blz" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/toilet/canteen) "blA" = ( /obj/structure/machinery/shower{ dir = 8 }, /obj/structure/machinery/light/small, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/prison/toilet/canteen) "blB" = ( /obj/effect/landmark/hunter_secondary, @@ -22301,10 +16957,7 @@ /turf/open/floor/prison, /area/prison/hallway/entrance) "blD" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/hallway/entrance) "blE" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ @@ -22314,17 +16967,11 @@ /turf/open/floor/prison, /area/prison/hanger/main) "blF" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/hanger/main) "blG" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/east, /area/prison/hanger/main) "blH" = ( /turf/open/floor/prison, @@ -22333,27 +16980,18 @@ /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/prison/residential/central) "blK" = ( /obj/structure/pipes/standard/manifold/fourway/hidden/supply, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/residential/central) "blP" = ( /obj/effect/decal/warning_stripes{ icon_state = "E" }, /obj/structure/pipes/standard/manifold/hidden/supply, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/prison/residential/central) "blQ" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -22372,10 +17010,7 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/prison/red/west, /area/prison/security/monitoring/highsec) "blS" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ @@ -22406,19 +17041,13 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/prison/red/east, /area/prison/cellblock/highsec/north/south) "blY" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/east, /area/prison/security/monitoring/highsec) "blZ" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -22427,19 +17056,13 @@ /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ name = "High-Security Monitoring" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/cellblock/vip) "bma" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/west, /area/prison/cellblock/vip) "bmb" = ( /obj/structure/pipes/standard/manifold/fourway/hidden/supply, @@ -22465,10 +17088,7 @@ dir = 4; icon_state = "pipe-c" }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/east, /area/prison/security/checkpoint/vip) "bmi" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -22481,9 +17101,7 @@ dir = 2; name = "VIP Cellblock / Civilian Residences Access" }, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, +/turf/open/floor/prison/bluefull, /area/prison/security/checkpoint/vip) "bmj" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -22492,9 +17110,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, +/turf/open/floor/prison/bluefull, /area/prison/security/checkpoint/vip) "bml" = ( /obj/structure/disposalpipe/segment{ @@ -22518,9 +17134,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, +/turf/open/floor/prison/bluefull, /area/prison/storage/vip) "bmq" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -22529,10 +17143,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/storage/vip) "bmr" = ( /obj/structure/stairs/perspective{ @@ -22545,10 +17156,7 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/storage/vip) "bms" = ( /obj/structure/disposalpipe/segment{ @@ -22571,10 +17179,7 @@ dir = 2; name = "Low-Security" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/hallway/central/west) "bmu" = ( /obj/structure/pipes/standard/manifold/fourway/hidden/supply, @@ -22594,37 +17199,26 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "rampbottom" - }, +/turf/open/floor/prison/rampbottom/west, /area/prison/yard) "bmz" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "bright_clean_marked" - }, +/turf/open/floor/prison/bright_clean_marked, /area/prison/yard) "bmA" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/yard) "bmB" = ( /obj/structure/surface/table/reinforced, /obj/effect/decal/siding/wood_siding{ icon_state = "wood_siding4" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/yard) "bmC" = ( /obj/effect/landmark/good_item, @@ -22635,10 +17229,7 @@ /obj/effect/decal/siding/wood_siding{ icon_state = "wood_siding8" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/yard) "bmF" = ( /turf/closed/wall/prison, @@ -22650,10 +17241,7 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "rampbottom" - }, +/turf/open/floor/prison/rampbottom/east, /area/prison/yard) "bmJ" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -22661,10 +17249,7 @@ }, /obj/item/ammo_casing, /obj/item/ammo_magazine/rifle/m16, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/yard) "bmK" = ( /obj/structure/pipes/standard/manifold/fourway/hidden/supply, @@ -22696,10 +17281,7 @@ name = "Toilet"; opacity = 0 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/toilet/canteen) "bmO" = ( /turf/open/floor/plating/plating_catwalk/prison, @@ -22715,68 +17297,44 @@ dir = 4; network = list("PRISON") }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/hallway/entrance) "bmR" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/prison/darkyellowcorners2/north, /area/prison/hanger/main) "bmS" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/prison/darkyellowcorners2/east, /area/prison/hanger/main) "bmT" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/southwest, /area/prison/residential/central) "bmU" = ( -/turf/open/floor/prison{ - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen, /area/prison/residential/central) "bmV" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen, /area/prison/residential/central) "bmW" = ( /obj/structure/pipes/vents/scrubber{ dir = 1 }, /obj/structure/machinery/light, -/turf/open/floor/prison{ - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen, /area/prison/residential/central) "bmY" = ( /obj/effect/decal/warning_stripes{ icon_state = "E" }, -/turf/open/floor/prison{ - dir = 6; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/southeast, /area/prison/residential/central) "bmZ" = ( /obj/effect/decal/warning_stripes{ icon_state = "NW-out" }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/prison/red/west, /area/prison/security/monitoring/highsec) "bna" = ( /obj/structure/window/reinforced{ @@ -22798,184 +17356,120 @@ dir = 4; layer = 3.25 }, -/turf/open/floor/prison{ - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2, /area/prison/security/monitoring/highsec) "bne" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/computer/cameras{ network = list("PRISON") }, -/turf/open/floor/prison{ - dir = 6; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/southeast, /area/prison/security/monitoring/highsec) "bnf" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/southwest, /area/prison/cellblock/vip) "bng" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - icon_state = "blue" - }, +/turf/open/floor/prison/blue, /area/prison/cellblock/vip) "bnh" = ( /turf/open/floor/plating, /area/prison/security/monitoring/highsec) "bni" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - icon_state = "blue" - }, +/turf/open/floor/prison/blue, /area/prison/cellblock/vip) "bnk" = ( -/turf/open/floor/prison{ - icon_state = "blue" - }, +/turf/open/floor/prison/blue, /area/prison/cellblock/vip) "bnl" = ( /obj/structure/pipes/vents/scrubber{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "blue" - }, +/turf/open/floor/prison/blue, /area/prison/cellblock/vip) "bnm" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "blue" - }, +/turf/open/floor/prison/blue, /area/prison/cellblock/vip) "bnn" = ( /obj/structure/machinery/power/apc{ pixel_y = -24; start_charge = 0 }, -/turf/open/floor/prison{ - icon_state = "blue" - }, +/turf/open/floor/prison/blue, /area/prison/cellblock/vip) "bno" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "blue" - }, +/turf/open/floor/prison/blue, /area/prison/cellblock/vip) "bnq" = ( -/turf/open/floor/prison{ - icon_state = "blue" - }, +/turf/open/floor/prison/blue, /area/prison/security/checkpoint/vip) "bnr" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "bluecorner" - }, +/turf/open/floor/prison/bluecorner/west, /area/prison/security/checkpoint/vip) "bnt" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/southwest, /area/prison/security/checkpoint/vip) "bnu" = ( /obj/structure/pipes/vents/scrubber{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "blue" - }, +/turf/open/floor/prison/blue, /area/prison/security/checkpoint/vip) "bnx" = ( /obj/structure/machinery/light, -/turf/open/floor/prison{ - icon_state = "blue" - }, +/turf/open/floor/prison/blue, /area/prison/storage/vip) "bny" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 6; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/southeast, /area/prison/storage/vip) "bnz" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/storage/vip) "bnA" = ( /obj/structure/surface/table/reinforced, /obj/item/weapon/gun/shotgun/pump/dual_tube/cmb, /obj/effect/decal/siding/wood_siding, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/yard) "bnB" = ( /obj/effect/decal/siding/wood_siding, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/yard) "bnC" = ( /obj/item/ammo_magazine/shotgun/buckshot, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/yard) "bnD" = ( /obj/structure/machinery/light, -/turf/open/floor/prison{ - dir = 4; - icon_state = "rampbottom" - }, +/turf/open/floor/prison/rampbottom/east, /area/prison/yard) "bnE" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/hallway/central/east) "bnF" = ( /obj/effect/landmark/crap_item, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/yard) "bnG" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/canteen) "bnH" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/canteen) "bnK" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -22984,19 +17478,13 @@ /obj/structure/machinery/flasher{ id = "canteen" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/canteen) "bnL" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/canteen) "bnM" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -23008,10 +17496,7 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/toilet/canteen) "bnO" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -23020,10 +17505,7 @@ /obj/structure/machinery/alarm/almayer{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/toilet/canteen) "bnP" = ( /obj/structure/machinery/power/apc{ @@ -23034,35 +17516,23 @@ /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/toilet/canteen) "bnQ" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/toilet/canteen) "bnR" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/toilet/canteen) "bnS" = ( /obj/structure/sink{ dir = 4; pixel_x = 11 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/toilet/canteen) "bnT" = ( /obj/structure/machinery/power/apc{ @@ -23070,10 +17540,7 @@ pixel_x = -24; start_charge = 0 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/hallway/entrance) "bnU" = ( /obj/structure/pipes/standard/simple/hidden/supply, @@ -23083,58 +17550,38 @@ /area/prison/hallway/entrance) "bnV" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/prison/darkyellowcorners2, /area/prison/hanger/main) "bnW" = ( -/turf/open/floor/prison{ - dir = 6; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/southeast, /area/prison/hanger/main) "bnX" = ( /obj/effect/decal/siding/wood_siding{ icon_state = "wood_siding10" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/residential/central) "bnY" = ( /obj/effect/decal/siding/wood_siding{ icon_state = "wood_siding2" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/residential/central) "bnZ" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "Monorail Station West" }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/prison/monorail/west) "boa" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/prison/monorail/west) "bob" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 6 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/prison/red/west, /area/prison/security/monitoring/highsec) "boc" = ( /obj/structure/pipes/standard/manifold/hidden/supply, @@ -23153,10 +17600,7 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 10 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/prison/red/east, /area/prison/security/monitoring/highsec) "bog" = ( /obj/item/shard, @@ -23167,10 +17611,7 @@ /obj/structure/pipes/vents/scrubber{ dir = 4 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/west, /area/prison/security/checkpoint/vip) "boi" = ( /obj/structure/machinery/light{ @@ -23180,19 +17621,14 @@ /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/east, /area/prison/security/checkpoint/vip) "boj" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "green" - }, +/turf/open/floor/prison/green, /area/prison/hallway/central/west) "bok" = ( /obj/structure/machinery/light{ @@ -23201,24 +17637,16 @@ /obj/structure/pipes/vents/scrubber{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "green" - }, +/turf/open/floor/prison/green, /area/prison/hallway/central/west) "bol" = ( /obj/effect/decal/cleanable/blood, /obj/effect/decal/cleanable/blood/gibs, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/yard) "bom" = ( /obj/effect/decal/cleanable/blood/gibs, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/yard) "bon" = ( /obj/structure/machinery/light{ @@ -23227,42 +17655,28 @@ /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/hallway/central/east) "boo" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "green" - }, +/turf/open/floor/prison/green, /area/prison/hallway/central/east) "bop" = ( /obj/structure/machinery/camera/autoname{ dir = 4; network = list("PRISON") }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/hallway/central/east) "boq" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/canteen) "bor" = ( /obj/effect/landmark/hunter_primary, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/canteen) "bos" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ @@ -23272,35 +17686,23 @@ /turf/open/floor/plating, /area/prison/canteen) "bot" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/toilet/canteen) "bou" = ( /obj/effect/landmark/hunter_primary, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/toilet/canteen) "bov" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 5 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/toilet/canteen) "bow" = ( /obj/structure/pipes/vents/scrubber{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/toilet/canteen) "boy" = ( /obj/effect/decal/cleanable/blood, @@ -23308,141 +17710,91 @@ /area/prison/hanger/main) "boz" = ( /obj/effect/decal/siding, -/turf/open/floor{ - icon_state = "asteroid" - }, +/turf/open/floor/asteroid, /area/prison/residential/central) "boA" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/effect/decal/siding{ icon_state = "siding8" }, -/turf/open/floor/prison{ - icon_state = "rampbottom" - }, +/turf/open/floor/prison/rampbottom, /area/prison/residential/central) "boB" = ( /obj/structure/flora/pottedplant, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/prison/monorail/west) "boC" = ( -/turf/open/floor/prison{ - dir = 9; - icon_state = "green" - }, +/turf/open/floor/prison/green/northwest, /area/prison/monorail/west) "boD" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 5; - icon_state = "green" - }, +/turf/open/floor/prison/green/northeast, /area/prison/monorail/west) "boF" = ( /obj/structure/machinery/vending/snack, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/prison/monorail/west) "boG" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/prison/red/southwest, /area/prison/security/monitoring/highsec) "boH" = ( /obj/structure/machinery/light, -/turf/open/floor/prison{ - icon_state = "red" - }, +/turf/open/floor/prison/red, /area/prison/security/monitoring/highsec) "boI" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - icon_state = "red" - }, +/turf/open/floor/prison/red, /area/prison/security/monitoring/highsec) "boJ" = ( /obj/structure/pipes/vents/scrubber{ dir = 1 }, -/turf/open/floor/prison{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/prison/red/southeast, /area/prison/security/monitoring/highsec) "boK" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/recharger, -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/northwest, /area/prison/security/monitoring/highsec) "boL" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 6 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/north, /area/prison/security/monitoring/highsec) "boM" = ( /obj/structure/pipes/standard/manifold/fourway/hidden/supply, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/north, /area/prison/security/monitoring/highsec) "boN" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/north, /area/prison/security/monitoring/highsec) "boO" = ( /obj/structure/filingcabinet, -/turf/open/floor/prison{ - dir = 5; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/northeast, /area/prison/security/monitoring/highsec) "boP" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 8 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/north, /area/prison/cellblock/vip) "boQ" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 10 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/north, /area/prison/cellblock/vip) "boR" = ( /obj/item/phone, /obj/structure/surface/table/reinforced, -/turf/open/floor/prison{ - dir = 1; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/north, /area/prison/cellblock/vip) "boT" = ( /obj/structure/surface/table/reinforced, @@ -23450,50 +17802,33 @@ pixel_x = 9; pixel_y = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/checkpoint/vip) "boU" = ( /obj/structure/pipes/vents/scrubber{ dir = 4 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/prison/storage/vip) "boV" = ( /obj/structure/pipes/standard/manifold/hidden/supply, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/prison/storage/vip) "boW" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/prison/storage/vip) "boX" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "Southwest Low-Security Cellblock" }, -/turf/open/floor/prison{ - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull, /area/prison/cellblock/lowsec/sw) "boZ" = ( /obj/item/weapon/gun/rifle/m16, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/yard) "bpa" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -23503,19 +17838,13 @@ dir = 4; flipped = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/yard) "bpc" = ( /obj/structure/surface/table/reinforced, /obj/effect/decal/cleanable/blood, /obj/item/reagent_container/food/condiment/saltshaker, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/canteen) "bpe" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ @@ -23535,10 +17864,7 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/hallway/entrance) "bph" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -23554,10 +17880,7 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/hanger/main) "bpk" = ( /obj/structure/pipes/vents/pump{ @@ -23569,30 +17892,18 @@ /obj/structure/bed/chair/comfy{ dir = 4 }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/prison/monorail/west) "bpm" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "green" - }, +/turf/open/floor/prison/green/west, /area/prison/monorail/west) "bpn" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 4; - icon_state = "green" - }, +/turf/open/floor/prison/green/east, /area/prison/monorail/west) "bpo" = ( /obj/structure/machinery/vending/cola, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/prison/monorail/west) "bpr" = ( /obj/structure/pipes/vents/scrubber{ @@ -23629,10 +17940,7 @@ "bpw" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/east, /area/prison/security/checkpoint/vip) "bpx" = ( /obj/structure/surface/table/reinforced, @@ -23640,44 +17948,26 @@ pixel_x = -3; pixel_y = 7 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/checkpoint/vip) "bpy" = ( -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/northwest, /area/prison/security/checkpoint/vip) "bpz" = ( /obj/structure/bed/chair/office/dark{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/north, /area/prison/security/checkpoint/vip) "bpA" = ( -/turf/open/floor/prison{ - dir = 5; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/northeast, /area/prison/security/checkpoint/vip) "bpB" = ( -/turf/open/floor/prison{ - dir = 9; - icon_state = "green" - }, +/turf/open/floor/prison/green/northwest, /area/prison/cellblock/lowsec/sw) "bpC" = ( /obj/item/ammo_casing, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/yard) "bpD" = ( /obj/structure/machinery/shower{ @@ -23686,9 +17976,7 @@ /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/prison/toilet/canteen) "bpE" = ( /obj/structure/machinery/light{ @@ -23697,54 +17985,33 @@ /obj/structure/bed/chair/comfy{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/hallway/entrance) "bpI" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 8 }, -/turf/open/floor/prison{ - dir = 6; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/southeast, /area/prison/hanger/main) "bpJ" = ( /obj/structure/machinery/light, -/turf/open/floor/prison{ - dir = 4; - icon_state = "rampbottom" - }, +/turf/open/floor/prison/rampbottom/east, /area/prison/hanger/main) "bpL" = ( /obj/effect/alien/weeds/node, -/turf/open/floor/prison{ - dir = 8; - icon_state = "green" - }, +/turf/open/floor/prison/green/west, /area/prison/monorail/west) "bpM" = ( -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/prison/monorail/west) "bpN" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/prison/security/monitoring/highsec) "bpO" = ( /obj/structure/machinery/alarm/almayer{ dir = 1 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/west, /area/prison/security/monitoring/highsec) "bpP" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -23763,15 +18030,10 @@ /turf/open/floor/prison, /area/prison/security/monitoring/highsec) "bpV" = ( -/turf/open/floor/prison{ - icon_state = "darkredcorners2" - }, +/turf/open/floor/prison/darkredcorners2, /area/prison/security/monitoring/highsec) "bpW" = ( -/turf/open/floor/prison{ - dir = 6; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/southeast, /area/prison/security/monitoring/highsec) "bpX" = ( /obj/structure/machinery/light, @@ -23779,16 +18041,10 @@ /area/prison/cellblock/vip) "bpY" = ( /obj/structure/pipes/vents/scrubber, -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/northwest, /area/prison/security/checkpoint/vip) "bpZ" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkredcorners2" - }, +/turf/open/floor/prison/darkredcorners2/east, /area/prison/security/checkpoint/vip) "bqa" = ( /obj/effect/landmark/crap_item, @@ -23801,83 +18057,58 @@ /obj/structure/surface/table/reinforced{ flipped = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/yard) "bqd" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/surface/table/reinforced{ flipped = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/yard) "bqe" = ( /obj/effect/landmark/crap_item, /obj/structure/surface/table/reinforced{ flipped = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/yard) "bqf" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/canteen) "bqg" = ( /obj/structure/pipes/vents/scrubber{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/canteen) "bqh" = ( /obj/structure/toilet{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/toilet/canteen) "bqi" = ( /obj/structure/machinery/shower{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/prison/toilet/canteen) "bqk" = ( /obj/structure/pipes/vents/pump/on, /obj/effect/decal/siding/wood_siding{ icon_state = "wood_siding5" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/residential/central) "bql" = ( /turf/closed/wall/prison, /area/prison/cellblock/lowsec/sw) "bqm" = ( -/turf/open/floor/prison{ - icon_state = "green" - }, +/turf/open/floor/prison/green, /area/prison/hallway/central/west) "bqn" = ( /obj/structure/bed/chair/comfy{ @@ -23886,16 +18117,10 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/prison/monorail/west) "bqo" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/east, /area/prison/monorail/west) "bqp" = ( /turf/closed/wall/r_wall/prison_unmeltable, @@ -23919,17 +18144,11 @@ /area/prison/security/monitoring/highsec) "bqw" = ( /obj/structure/bed/chair/office/dark, -/turf/open/floor/prison{ - dir = 6; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/southeast, /area/prison/security/monitoring/highsec) "bqx" = ( /obj/structure/machinery/door/window/northright, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/prison/cellblock/vip) "bqy" = ( /obj/effect/decal/cleanable/blood, @@ -23940,17 +18159,11 @@ dir = 5 }, /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/east, /area/prison/security/checkpoint/vip) "bqA" = ( /obj/structure/pipes/standard/manifold/hidden/supply, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/west, /area/prison/security/checkpoint/vip) "bqB" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -23964,19 +18177,13 @@ /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "green" - }, +/turf/open/floor/prison/green/east, /area/prison/cellblock/lowsec/sw) "bqD" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 8 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "green" - }, +/turf/open/floor/prison/green/west, /area/prison/cellblock/lowsec/se) "bqE" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony{ @@ -23989,18 +18196,12 @@ dir = 8 }, /obj/structure/machinery/vending/security, -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/northwest, /area/prison/hanger/main) "bqG" = ( /obj/structure/machinery/computer/secure_data, /obj/structure/surface/table/reinforced, -/turf/open/floor/prison{ - dir = 5; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/northeast, /area/prison/hanger/main) "bqH" = ( /obj/effect/landmark/hunter_primary, @@ -24008,71 +18209,48 @@ /area/prison/hanger/main) "bqI" = ( /obj/structure/pipes/standard/manifold/hidden/supply, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/residential/central) "bqJ" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, /obj/effect/decal/siding/wood_siding, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/residential/central) "bqK" = ( -/turf/open/floor/prison{ - icon_state = "red" - }, +/turf/open/floor/prison/red, /area/prison/security/monitoring/highsec) "bqL" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 1 }, /obj/effect/decal/siding/wood_siding, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/residential/central) "bqO" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 1 }, /obj/effect/decal/siding, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/residential/central) "bqP" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, /obj/effect/decal/siding, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/residential/central) "bqR" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 9 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/residential/central) "bqT" = ( /obj/structure/toilet, -/turf/open/floor/prison{ - dir = 1; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/north, /area/prison/cellblock/vip) "bqU" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ @@ -24084,60 +18262,41 @@ /obj/structure/machinery/shower{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/prison/cellblock/vip) "bqW" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/southwest, /area/prison/security/checkpoint/vip) "bqX" = ( /obj/structure/disposalpipe/segment{ dir = 8; icon_state = "pipe-c" }, -/turf/open/floor/prison{ - dir = 6; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/southeast, /area/prison/security/checkpoint/vip) "bqY" = ( /obj/structure/surface/rack, /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/southwest, /area/prison/security/checkpoint/vip) "bqZ" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/recharger, -/turf/open/floor/prison{ - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2, /area/prison/security/checkpoint/vip) "bra" = ( /obj/structure/filingcabinet, -/turf/open/floor/prison{ - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2, /area/prison/security/checkpoint/vip) "brb" = ( /obj/structure/machinery/vending/security, -/turf/open/floor/prison{ - dir = 6; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/southeast, /area/prison/security/checkpoint/vip) "brc" = ( /obj/structure/disposalpipe/junction{ @@ -24155,86 +18314,56 @@ "bre" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull, /area/prison/cellblock/lowsec/sw) "brf" = ( /obj/structure/toilet{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/lowsec/sw) "brg" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/lowsec/sw) "brh" = ( /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/lowsec/sw) "brk" = ( /obj/structure/toilet{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/lowsec/se) "brl" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/lowsec/se) "brm" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "Southeast Low-Security Cellblock" }, -/turf/open/floor/prison{ - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull, /area/prison/cellblock/lowsec/se) "brn" = ( -/turf/open/floor/prison{ - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull, /area/prison/cellblock/lowsec/se) "bro" = ( /obj/structure/bed, /obj/effect/landmark/survivor_spawner, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/holding/holding1) "brp" = ( /obj/structure/bed/chair, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/holding/holding1) "brq" = ( /obj/structure/machinery/alarm/almayer{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/holding/holding1) "brr" = ( /obj/structure/machinery/door/airlock/almayer/generic{ @@ -24243,10 +18372,7 @@ name = "Toilet"; opacity = 0 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/holding/holding1) "brs" = ( /obj/structure/sink{ @@ -24256,18 +18382,12 @@ /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/holding/holding1) "brt" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/holding/holding1) "bru" = ( /turf/closed/wall/prison, @@ -24276,51 +18396,33 @@ /obj/structure/surface/table/reinforced, /obj/item/reagent_container/food/drinks/coffee, /obj/item/reagent_container/food/drinks/coffee, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/store) "brw" = ( /obj/structure/surface/table/reinforced, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/store) "brx" = ( /obj/structure/surface/table/reinforced, /obj/item/reagent_container/food/drinks/milk, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/store) "bry" = ( /obj/structure/surface/table/reinforced, /obj/item/reagent_container/food/drinks/cans/cola, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/store) "brz" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/visitation) "brA" = ( /obj/structure/machinery/alarm/almayer{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/visitation) "brB" = ( /obj/structure/machinery/power/apc{ @@ -24328,55 +18430,37 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/visitation) "brD" = ( /obj/structure/pipes/vents/scrubber{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/visitation) "brE" = ( /obj/structure/flora/pottedplant, /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/visitation) "brF" = ( /obj/structure/pipes/vents/scrubber{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/hallway/entrance) "brH" = ( /obj/effect/decal/cleanable/blood, /obj/structure/pipes/standard/simple/hidden/supply{ dir = 6 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/hanger/main) "brM" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 1; - icon_state = "rampbottom" - }, +/turf/open/floor/prison/rampbottom/north, /area/prison/residential/central) "brN" = ( /obj/structure/machinery/door/airlock/almayer/generic, @@ -24386,10 +18470,7 @@ "brO" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 5; - icon_state = "green" - }, +/turf/open/floor/prison/green/northeast, /area/prison/cellblock/lowsec/sw) "brP" = ( /obj/structure/window/framed/prison/cell, @@ -24399,20 +18480,14 @@ /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/west, /area/prison/cellblock/lowsec/sw) "brR" = ( /obj/structure/sink{ dir = 4; pixel_x = 11 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/lowsec/sw) "brS" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -24425,10 +18500,7 @@ dir = 8; pixel_x = -12 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/lowsec/se) "brU" = ( /turf/open/floor/plating/plating_catwalk/prison, @@ -24437,10 +18509,7 @@ /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/east, /area/prison/cellblock/lowsec/se) "brW" = ( /obj/structure/window/framed/prison/cell, @@ -24448,16 +18517,10 @@ /area/prison/cellblock/lowsec/se) "brX" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 9; - icon_state = "green" - }, +/turf/open/floor/prison/green/northwest, /area/prison/cellblock/lowsec/se) "brY" = ( -/turf/open/floor/prison{ - dir = 5; - icon_state = "green" - }, +/turf/open/floor/prison/green/northeast, /area/prison/cellblock/lowsec/se) "brZ" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -24473,37 +18536,25 @@ /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/east, /area/prison/security/monitoring/highsec) "bsc" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 }, /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 4; - icon_state = "green" - }, +/turf/open/floor/prison/green/east, /area/prison/cellblock/lowsec/sw) "bsd" = ( /obj/structure/bed, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/lowsec/sw) "bse" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/yard) "bsi" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -24520,19 +18571,13 @@ "bsk" = ( /obj/structure/bed, /obj/effect/landmark/corpsespawner/prisoner, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/holding/holding1) "bsl" = ( /obj/structure/machinery/shower{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/holding/holding1) "bsm" = ( /turf/closed/wall/r_wall/prison_unmeltable, @@ -24544,29 +18589,17 @@ /area/space) "bso" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/holding/holding1) "bsp" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/west, /area/prison/security/monitoring/highsec) "bsq" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/store) "bss" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/visitation) "bst" = ( /obj/structure/pipes/standard/simple/hidden/supply, @@ -24578,19 +18611,14 @@ /obj/structure/pipes/vents/scrubber{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/southwest, /area/prison/hanger/main) "bsv" = ( /obj/effect/decal/cleanable/blood, /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2, /area/prison/hanger/main) "bsw" = ( /obj/structure/surface/table/reinforced, @@ -24602,58 +18630,37 @@ pixel_x = 9; pixel_y = 8 }, -/turf/open/floor/prison{ - dir = 6; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/southeast, /area/prison/hanger/main) "bsz" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 8 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "green" - }, +/turf/open/floor/prison/green/east, /area/prison/monorail/west) "bsA" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/east, /area/prison/monorail/west) "bsB" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "green" - }, +/turf/open/floor/prison/green/west, /area/prison/cellblock/lowsec/sw) "bsC" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 4; - icon_state = "green" - }, +/turf/open/floor/prison/green/east, /area/prison/cellblock/lowsec/sw) "bsE" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/west, /area/prison/cellblock/lowsec/sw) "bsF" = ( /turf/open/floor/plating/plating_catwalk/prison, /area/prison/cellblock/lowsec/sw) "bsG" = ( /obj/structure/bed, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/lowsec/sw) "bsI" = ( /turf/closed/shuttle/elevator/gears, @@ -24662,22 +18669,14 @@ /obj/structure/barricade/handrail/type_b{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/prison/hallway/central/west) "bsK" = ( /obj/structure/bed, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/lowsec/se) "bsL" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/east, /area/prison/cellblock/lowsec/se) "bsM" = ( /obj/structure/machinery/power/apc{ @@ -24685,23 +18684,14 @@ pixel_x = -24; start_charge = 0 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "green" - }, +/turf/open/floor/prison/green/west, /area/prison/cellblock/lowsec/sw) "bsN" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 8; - icon_state = "green" - }, +/turf/open/floor/prison/green/west, /area/prison/cellblock/lowsec/se) "bsO" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "green" - }, +/turf/open/floor/prison/green/east, /area/prison/cellblock/lowsec/se) "bsP" = ( /obj/structure/machinery/light{ @@ -24709,80 +18699,53 @@ }, /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 4; - icon_state = "green" - }, +/turf/open/floor/prison/green/east, /area/prison/cellblock/lowsec/sw) "bsQ" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ dir = 2; name = "Yard" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/yard) "bsR" = ( /obj/structure/machinery/light{ dir = 8 }, /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 8; - icon_state = "green" - }, +/turf/open/floor/prison/green/west, /area/prison/cellblock/lowsec/se) "bsS" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/holding/holding1) "bsT" = ( /obj/structure/surface/rack, /obj/item/reagent_container/food/snacks/packaged_burrito, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/store) "bsU" = ( /obj/effect/landmark/crap_item, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/store) "bsV" = ( /obj/structure/surface/rack, /obj/item/reagent_container/food/snacks/chocolatebar, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/store) "bsW" = ( /obj/structure/bed/chair/office/dark, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/visitation) "bsX" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, /obj/structure/girder, -/turf/open/floor/prison{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/north, /area/prison/cellblock/mediumsec/south) "bsY" = ( /obj/structure/bed/chair/office/dark, @@ -24792,28 +18755,19 @@ /obj/structure/pipes/vents/scrubber{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/prison/residential/central) "bta" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/visitation) "btb" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/visitation) "btd" = ( /obj/structure/monorail, @@ -24824,26 +18778,17 @@ /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/visitation) "btf" = ( /obj/structure/pipes/standard/manifold/hidden/supply, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/visitation) "btg" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/visitation) "bth" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -24853,10 +18798,7 @@ dir = 2; name = "Visitation" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/visitation) "bti" = ( /obj/structure/pipes/standard/manifold/hidden/supply, @@ -24870,15 +18812,11 @@ /turf/open/floor/plating/plating_catwalk/prison, /area/prison/hallway/entrance) "btk" = ( -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/prison/hallway/entrance) "btl" = ( /obj/structure/bed/chair/comfy, -/turf/open/floor/prison{ - icon_state = "red" - }, +/turf/open/floor/prison/red, /area/prison/hallway/entrance) "btm" = ( /obj/structure/machinery/light{ @@ -24890,10 +18828,7 @@ /obj/structure/pipes/vents/scrubber{ dir = 4 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "green" - }, +/turf/open/floor/prison/green/west, /area/prison/cellblock/lowsec/sw) "bto" = ( /obj/effect/landmark/hunter_secondary, @@ -24909,10 +18844,7 @@ /obj/structure/pipes/vents/scrubber{ dir = 8 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "green" - }, +/turf/open/floor/prison/green/east, /area/prison/cellblock/lowsec/se) "bts" = ( /obj/effect/decal/warning_stripes{ @@ -24961,24 +18893,16 @@ /area/prison/hanger/main) "bty" = ( /obj/structure/largecrate/random, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/north, /area/prison/security/monitoring/highsec) "btz" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/north, /area/prison/security/monitoring/highsec) "btD" = ( /obj/structure/surface/table/reinforced, /obj/item/device/matter_decompiler, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/prison/hallway/central/west) "btE" = ( /turf/closed/shuttle/elevator, @@ -24988,36 +18912,24 @@ /area/prison/hallway/central/west) "btG" = ( /obj/structure/bed, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/holding/holding1) "btH" = ( /obj/structure/surface/table/reinforced, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/holding/holding1) "btI" = ( /obj/structure/surface/table/reinforced, /obj/effect/landmark/crap_item, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/holding/holding1) "btJ" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/holding/holding1) "btK" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ @@ -25031,54 +18943,36 @@ dir = 8; pixel_x = -12 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/lowsec/sw) "btM" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 10 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/holding/holding1) "btN" = ( /obj/structure/toilet{ dir = 8; pixel_x = -4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/east, /area/prison/cellblock/lowsec/sw) "btP" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/holding/holding1) "btQ" = ( /obj/structure/toilet{ dir = 4 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/west, /area/prison/cellblock/lowsec/sw) "btR" = ( /obj/structure/sink{ dir = 4; pixel_x = 12 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/lowsec/sw) "btS" = ( /obj/structure/machinery/light/small{ @@ -25091,38 +18985,26 @@ dir = 8; pixel_x = -4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/east, /area/prison/cellblock/lowsec/se) "btU" = ( /obj/structure/surface/rack, /obj/item/clothing/head/welding, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/store) "btW" = ( /obj/structure/toilet{ dir = 4 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/west, /area/prison/cellblock/lowsec/se) "btX" = ( /obj/structure/sink{ dir = 4; pixel_x = 12 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/lowsec/se) "btY" = ( /turf/closed/wall/r_wall/prison_unmeltable, @@ -25132,10 +19014,7 @@ /turf/open/floor/prison, /area/prison/visitation) "bua" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/holding/holding1) "bub" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ @@ -25143,10 +19022,7 @@ name = "Security Booth" }, /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/visitation) "buc" = ( /obj/structure/window/framed/prison/reinforced, @@ -25163,25 +19039,17 @@ /obj/structure/bed/chair/comfy{ dir = 4 }, -/turf/open/floor/prison{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/prison/red/northeast, /area/prison/hallway/entrance) "bug" = ( /obj/structure/surface/table/reinforced, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/prison/hallway/entrance) "buh" = ( /obj/structure/bed/chair/comfy{ dir = 8 }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/prison/red/northwest, /area/prison/hallway/entrance) "bui" = ( /obj/effect/decal/warning_stripes{ @@ -25190,16 +19058,11 @@ /turf/open/floor/prison, /area/prison/hanger/main) "bul" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/visitation) "bun" = ( /obj/structure/surface/table/reinforced, -/turf/open/floor/prison{ - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe, /area/prison/cellblock/highsec/south/north) "buo" = ( /turf/closed/shuttle/elevator{ @@ -25208,28 +19071,19 @@ /area/prison/hallway/central/west) "buq" = ( /obj/structure/pipes/standard/manifold/hidden/supply, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/holding/holding1) "bur" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/holding/holding1) "bus" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/holding/holding1) "but" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -25239,10 +19093,7 @@ dir = 2; name = "Holding Cell 1" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/holding/holding1) "buu" = ( /obj/structure/machinery/light{ @@ -25252,36 +19103,24 @@ dir = 10 }, /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/holding/holding1) "buv" = ( /obj/structure/surface/rack, /obj/item/reagent_container/food/snacks/no_raisin, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/store) "buw" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/store) "bux" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/computer/secure_data, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/visitation) "buy" = ( /obj/structure/surface/table/reinforced, @@ -25293,17 +19132,11 @@ pixel_x = 9; pixel_y = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/visitation) "buz" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/northwest, /area/prison/visitation) "buA" = ( /obj/structure/machinery/light/small{ @@ -25316,49 +19149,33 @@ /obj/structure/mirror{ pixel_x = -26 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/prison/residential/central) "buB" = ( /obj/structure/machinery/door/window/westleft, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/prison/residential/central) "buC" = ( -/turf/open/floor/prison{ - dir = 5; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/northeast, /area/prison/visitation) "buD" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/computer/cameras{ network = list("PRISON") }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/visitation) "buE" = ( /obj/structure/bed/chair/comfy{ dir = 4 }, -/turf/open/floor/prison{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/prison/red/southeast, /area/prison/hallway/entrance) "buF" = ( /obj/structure/bed/chair/comfy{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/prison/red/southwest, /area/prison/hallway/entrance) "buG" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -25367,28 +19184,19 @@ /turf/open/floor/prison, /area/prison/hanger/main) "buI" = ( -/turf/open/floor/prison{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/prison/red/northwest, /area/prison/cellblock/highsec/south/north) "buJ" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 5 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/prison/red/north, /area/prison/cellblock/highsec/south/north) "buK" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/prison/red/north, /area/prison/cellblock/highsec/south/north) "buL" = ( /obj/structure/machinery/light{ @@ -25397,19 +19205,13 @@ /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/prison/red/north, /area/prison/cellblock/highsec/south/north) "buM" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 10 }, -/turf/open/floor/prison{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/prison/red/northeast, /area/prison/cellblock/highsec/south/north) "buN" = ( /obj/structure/pipes/standard/simple/hidden/supply, @@ -25417,40 +19219,25 @@ /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "Central Ring" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/hallway/central/west) "buO" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/east, /area/prison/cellblock/lowsec/sw) "buP" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "green" - }, +/turf/open/floor/prison/green/west, /area/prison/cellblock/lowsec/sw) "buQ" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 10 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/hanger/main) "buR" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/hanger/main) "buS" = ( /turf/closed/wall/r_wall/prison_unmeltable, @@ -25462,23 +19249,14 @@ /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "green" - }, +/turf/open/floor/prison/green/east, /area/prison/cellblock/lowsec/se) "buV" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/west, /area/prison/cellblock/lowsec/se) "buW" = ( /obj/effect/landmark/crap_item, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/hallway/central/east) "buX" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony{ @@ -25492,25 +19270,17 @@ /area/prison/maintenance/residential/se) "bva" = ( /obj/structure/filingcabinet, -/turf/open/floor/prison{ - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2, /area/prison/security/checkpoint/highsec/s) "bvb" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/store) "bvc" = ( /obj/item/ammo_magazine/rifle/m16/ap, /turf/open/floor/prison, /area/prison/research/secret/containment) "bvd" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/visitation) "bvf" = ( /turf/closed/shuttle/elevator{ @@ -25519,29 +19289,20 @@ /area/prison/hallway/central/west) "bvi" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 8; - icon_state = "green" - }, +/turf/open/floor/prison/green/west, /area/prison/cellblock/lowsec/sw) "bvj" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "rampbottom" - }, +/turf/open/floor/prison/rampbottom, /area/prison/yard) "bvk" = ( -/turf/open/floor/prison{ - icon_state = "rampbottom" - }, +/turf/open/floor/prison/rampbottom, /area/prison/yard) "bvl" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - icon_state = "rampbottom" - }, +/turf/open/floor/prison/rampbottom, /area/prison/yard) "bvm" = ( /obj/structure/surface/rack, @@ -25560,32 +19321,22 @@ "bvo" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/holding/holding1) "bvp" = ( /obj/structure/surface/rack, /obj/item/reagent_container/food/snacks/chips, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/store) "bvq" = ( /obj/structure/machinery/washing_machine, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/prison/residential/central) "bvr" = ( /obj/structure/toilet{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/prison/residential/central) "bvs" = ( /obj/structure/machinery/shower{ @@ -25594,9 +19345,7 @@ /obj/structure/window/reinforced{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/prison/residential/central) "bvt" = ( /obj/structure/bed/chair{ @@ -25608,37 +19357,23 @@ /obj/structure/bed/chair/office/dark{ dir = 1 }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/northwest, /area/prison/visitation) "bvv" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/prison/red/southwest, /area/prison/cellblock/highsec/south/north) "bvw" = ( -/turf/open/floor/prison{ - icon_state = "red" - }, +/turf/open/floor/prison/red, /area/prison/cellblock/highsec/south/north) "bvy" = ( /obj/structure/pipes/vents/scrubber{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/highsec/south/north) "bvz" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/prison/red/east, /area/prison/cellblock/highsec/south/north) "bvA" = ( /turf/closed/wall/prison, @@ -25648,92 +19383,60 @@ dir = 8; pixel_x = -12 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/west, /area/prison/cellblock/highsec/south/north) "bvC" = ( /obj/structure/bed, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/highsec/south/north) "bvD" = ( /obj/structure/sink{ dir = 8; pixel_x = -12 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/highsec/south/north) "bvE" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/prison/red/northwest, /area/prison/cellblock/highsec/south/north) "bvF" = ( -/turf/open/floor/prison{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/prison/red/northeast, /area/prison/cellblock/highsec/south/north) "bvG" = ( /obj/structure/sink{ dir = 4; pixel_x = 11 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/highsec/south/north) "bvH" = ( /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/highsec/south/north) "bvI" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkredcorners2" - }, +/turf/open/floor/prison/darkredcorners2/east, /area/prison/visitation) "bvJ" = ( /obj/structure/surface/table/reinforced, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/prison/hallway/central/west) "bvK" = ( /obj/structure/bed/chair/office/dark{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/east, /area/prison/visitation) "bvL" = ( /obj/structure/bed/chair/comfy{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/prison/red/north, /area/prison/hallway/entrance) "bvM" = ( /turf/closed/wall/r_wall/prison, @@ -25747,17 +19450,13 @@ /obj/structure/surface/rack, /obj/item/storage/box/lights, /obj/item/device/lightreplacer, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/prison/hallway/central/west) "bvQ" = ( /obj/structure/sign/safety/nonpress_0g{ pixel_y = -30 }, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/prison/hallway/entrance) "bvS" = ( /obj/structure/machinery/power/apc{ @@ -25797,17 +19496,11 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/prison/monorail/west) "bwf" = ( /obj/structure/pipes/vents/scrubber, -/turf/open/floor/prison{ - dir = 1; - icon_state = "redcorner" - }, +/turf/open/floor/prison/redcorner/north, /area/prison/cellblock/highsec/south/north) "bwj" = ( /turf/open/floor/plating, @@ -25818,19 +19511,13 @@ pixel_x = 11 }, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/lowsec/sw) "bwl" = ( /obj/structure/toilet{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/lowsec/sw) "bwn" = ( /obj/structure/machinery/power/apc{ @@ -25838,65 +19525,41 @@ pixel_x = 28; start_charge = 0 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/yard) "bwo" = ( /obj/structure/toilet{ dir = 4 }, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/lowsec/se) "bwp" = ( /obj/structure/machinery/light/small{ dir = 1 }, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/lowsec/se) "bwq" = ( -/turf/open/floor/prison{ - dir = 9; - icon_state = "green" - }, +/turf/open/floor/prison/green/northwest, /area/prison/cellblock/lowsec/se) "bwr" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/prison/green/north, /area/prison/cellblock/lowsec/se) "bws" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/prison/green/north, /area/prison/cellblock/lowsec/se) "bwt" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greencorner" - }, +/turf/open/floor/prison/greencorner/east, /area/prison/cellblock/lowsec/se) "bwu" = ( /obj/structure/toilet, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/holding/holding1) "bwv" = ( /obj/structure/machinery/power/apc{ @@ -25906,54 +19569,33 @@ }, /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/holding/holding1) "bww" = ( /obj/structure/pipes/vents/scrubber, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/store) "bwx" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ name = "Security Booth" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/visitation) "bwy" = ( -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/northwest, /area/prison/visitation) "bwz" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/prison/red/west, /area/prison/cellblock/highsec/south/north) "bwA" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/highsec/south/north) "bwC" = ( /obj/structure/window/framed/prison/cell, /turf/open/floor/plating, /area/prison/cellblock/highsec/south/north) "bwD" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/west, /area/prison/cellblock/highsec/south/north) "bwE" = ( /obj/structure/machinery/light/small{ @@ -25962,19 +19604,13 @@ /turf/open/floor/plating/plating_catwalk/prison, /area/prison/cellblock/highsec/south/north) "bwF" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/prison/red/east, /area/prison/cellblock/highsec/south/north) "bwG" = ( /obj/structure/pipes/vents/scrubber{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkredcorners2" - }, +/turf/open/floor/prison/darkredcorners2/east, /area/prison/visitation) "bwH" = ( /turf/open/floor/plating/plating_catwalk/prison, @@ -25987,19 +19623,13 @@ /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/east, /area/prison/visitation) "bwK" = ( /obj/structure/surface/table/reinforced, /obj/item/device/flashlight/lamp, /obj/effect/landmark/item_pool_spawner/prison_lock, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/visitation) "bwL" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -26057,10 +19687,7 @@ /area/prison/monorail/east) "bwV" = ( /obj/structure/surface/rack, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/store) "bwW" = ( /turf/closed/wall/prison, @@ -26073,10 +19700,7 @@ name = "East Monorail Station" }, /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/monorail/east) "bxa" = ( /obj/structure/pipes/standard/simple/hidden/supply, @@ -26087,10 +19711,7 @@ /area/prison/maintenance/residential/se) "bxe" = ( /obj/structure/pipes/standard/manifold/hidden/supply, -/turf/open/floor/prison{ - dir = 4; - icon_state = "green" - }, +/turf/open/floor/prison/green/east, /area/prison/monorail/west) "bxf" = ( /turf/open/floor/plating, @@ -26099,10 +19720,7 @@ /obj/structure/pipes/vents/scrubber{ dir = 8 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/east, /area/prison/monorail/west) "bxh" = ( /obj/structure/pipes/vents/pump{ @@ -26115,10 +19733,7 @@ dir = 5 }, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 8; - icon_state = "redcorner" - }, +/turf/open/floor/prison/redcorner/west, /area/prison/cellblock/highsec/south/north) "bxk" = ( /turf/open/floor/plating, @@ -26127,61 +19742,40 @@ /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "redcorner" - }, +/turf/open/floor/prison/redcorner, /area/prison/cellblock/highsec/south/north) "bxm" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "redcorner" - }, +/turf/open/floor/prison/redcorner/west, /area/prison/cellblock/highsec/south/north) "bxo" = ( /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/highsec/south/north) "bxp" = ( /obj/structure/toilet{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe, /area/prison/cellblock/highsec/south/north) "bxq" = ( -/turf/open/floor/prison{ - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe, /area/prison/cellblock/highsec/south/north) "bxt" = ( /obj/structure/machinery/camera/autoname{ network = list("PRISON") }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/yard) "bxu" = ( /obj/structure/pipes/vents/scrubber{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/holding/holding1) "bxv" = ( -/turf/open/floor/prison{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/prison/red/southeast, /area/prison/cellblock/highsec/south/north) "bxA" = ( /obj/vehicle/train/cargo/trolley, @@ -26196,10 +19790,7 @@ /obj/structure/platform{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/hallway/central/west) "bxG" = ( /obj/structure/machinery/light/small{ @@ -26209,10 +19800,7 @@ /area/prison/cellblock/lowsec/sw) "bxH" = ( /obj/effect/landmark/monkey_spawn, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/lowsec/se) "bxI" = ( /obj/structure/machinery/light/small{ @@ -26221,21 +19809,14 @@ /turf/open/floor/plating/plating_catwalk/prison, /area/prison/cellblock/lowsec/se) "bxJ" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "green" - }, +/turf/open/floor/prison/green/west, /area/prison/cellblock/lowsec/se) "bxL" = ( -/turf/open/floor/prison{ - icon_state = "greencorner" - }, +/turf/open/floor/prison/greencorner, /area/prison/cellblock/lowsec/se) "bxN" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - icon_state = "green" - }, +/turf/open/floor/prison/green, /area/prison/cellblock/lowsec/se) "bxO" = ( /obj/structure/flora/bush/ausbushes/ppflowers, @@ -26245,16 +19826,10 @@ /obj/structure/toilet{ dir = 1 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/west, /area/prison/cellblock/highsec/south/north) "bxQ" = ( -/turf/open/floor/prison{ - dir = 6; - icon_state = "green" - }, +/turf/open/floor/prison/green/southeast, /area/prison/cellblock/lowsec/se) "bxR" = ( /obj/structure/machinery/power/apc{ @@ -26262,26 +19837,17 @@ pixel_x = -24; start_charge = 0 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/hallway/central/east) "bxT" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/holding/holding1) "bxU" = ( /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/holding/holding1) "bxV" = ( /obj/structure/sink{ @@ -26289,18 +19855,12 @@ pixel_x = 12 }, /obj/structure/machinery/light/small, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/holding/holding1) "bxW" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/holding/holding1) "bxX" = ( /obj/structure/machinery/power/apc{ @@ -26311,97 +19871,60 @@ /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/store) "bxY" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/store) "bxZ" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/store) "bya" = ( /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/visitation) "byd" = ( /obj/structure/pipes/vents/scrubber{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/visitation) "bye" = ( /obj/structure/machinery/light, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/visitation) "byf" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/southwest, /area/prison/visitation) "byg" = ( -/turf/open/floor/prison{ - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2, /area/prison/visitation) "byh" = ( /obj/structure/machinery/light, -/turf/open/floor/prison{ - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2, /area/prison/visitation) "byi" = ( -/turf/open/floor/prison{ - dir = 6; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/southeast, /area/prison/visitation) "byj" = ( /obj/structure/filingcabinet, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/visitation) "byk" = ( /obj/structure/machinery/vending/cola, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/hallway/east) "byl" = ( /obj/structure/machinery/vending/snack, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/hallway/east) "bym" = ( /obj/structure/machinery/disposal, @@ -26412,25 +19935,16 @@ /obj/structure/disposalpipe/trunk{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/hallway/east) "byn" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/hallway/east) "byo" = ( /obj/item/stack/rods, -/turf/open/floor/prison{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/north, /area/prison/cellblock/mediumsec/north) "byp" = ( /obj/structure/closet, @@ -26442,17 +19956,12 @@ icon_state = "door_open"; opacity = 0 }, -/turf/open/floor/prison{ - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull, /area/prison/cellblock/lowsec/sw) "byr" = ( /obj/structure/girder/reinforced, /obj/item/stack/rods, -/turf/open/floor/prison{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/north, /area/prison/cellblock/mediumsec/north) "bys" = ( /obj/structure/bed, @@ -26467,10 +19976,7 @@ /area/prison/maintenance/hangar_barracks) "byw" = ( /obj/structure/filingcabinet, -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/northwest, /area/prison/security/checkpoint/hangar) "byx" = ( /obj/structure/machinery/light/small{ @@ -26483,56 +19989,35 @@ dir = 8; pixel_x = -4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/east, /area/prison/cellblock/highsec/south/north) "byC" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/prison/red/north, /area/prison/cellblock/highsec/south/north) "byE" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/prison/red/north, /area/prison/cellblock/highsec/south/north) "byF" = ( /obj/structure/pipes/vents/pump/on, -/turf/open/floor/prison{ - dir = 4; - icon_state = "redcorner" - }, +/turf/open/floor/prison/redcorner/east, /area/prison/cellblock/highsec/south/north) "byG" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/north, /area/prison/security/checkpoint/hangar) "byH" = ( /obj/structure/pipes/vents/pump/on, /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/north, /area/prison/security/checkpoint/hangar) "byI" = ( /obj/structure/pipes/vents/scrubber, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/north, /area/prison/security/checkpoint/hangar) "byJ" = ( /obj/structure/machinery/power/apc{ @@ -26540,18 +20025,12 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/prison{ - dir = 5; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/northeast, /area/prison/security/checkpoint/hangar) "byK" = ( /obj/structure/machinery/computer/secure_data, /obj/structure/surface/table/reinforced, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/checkpoint/hangar) "byL" = ( /obj/structure/window/framed/prison/reinforced/hull, @@ -26562,30 +20041,18 @@ /obj/structure/machinery/alarm/almayer{ dir = 1 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/west, /area/prison/monorail/east) "byN" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/northwest, /area/prison/monorail/east) "byO" = ( -/turf/open/floor/prison{ - dir = 5; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/northeast, /area/prison/monorail/east) "byP" = ( /obj/structure/machinery/vending/cola, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/monorail/east) "byQ" = ( /obj/structure/machinery/power/apc{ @@ -26593,29 +20060,17 @@ pixel_x = -24; start_charge = 0 }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/prison/monorail/west) "byR" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "green" - }, +/turf/open/floor/prison/green/east, /area/prison/monorail/west) "byS" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/prison/red/west, /area/prison/cellblock/highsec/south/north) "bza" = ( -/turf/open/floor/prison{ - dir = 5; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/northeast, /area/prison/security/checkpoint/highsec/s) "bzb" = ( /obj/structure/disposalpipe/segment, @@ -26627,10 +20082,7 @@ /obj/effect/decal/warning_stripes{ icon_state = "SW-out" }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "green" - }, +/turf/open/floor/prison/green/west, /area/prison/cellblock/lowsec/sw) "bzd" = ( /obj/structure/machinery/door/airlock/almayer/secure/colony{ @@ -26643,18 +20095,14 @@ /turf/open/floor/plating, /area/prison/cellblock/lowsec/sw) "bze" = ( -/turf/open/floor/prison{ - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe, /area/prison/cellblock/lowsec/sw) "bzf" = ( /obj/structure/toilet{ dir = 1 }, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe, /area/prison/cellblock/lowsec/sw) "bzg" = ( /turf/closed/wall/r_wall/prison_unmeltable, @@ -26663,24 +20111,18 @@ /obj/structure/toilet{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe, /area/prison/cellblock/lowsec/sw) "bzi" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe, /area/prison/cellblock/lowsec/sw) "bzj" = ( /obj/structure/sink{ dir = 4; pixel_x = 11 }, -/turf/open/floor/prison{ - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe, /area/prison/cellblock/lowsec/sw) "bzk" = ( /obj/structure/sink{ @@ -26688,41 +20130,27 @@ pixel_x = -12; pixel_y = 2 }, -/turf/open/floor/prison{ - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe, /area/prison/cellblock/lowsec/se) "bzl" = ( -/turf/open/floor/prison{ - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe, /area/prison/cellblock/lowsec/se) "bzm" = ( /obj/structure/toilet{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe, /area/prison/cellblock/lowsec/se) "bzo" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean_marked" - }, +/turf/open/floor/prison/bright_clean_marked/southwest, /area/prison/cellblock/lowsec/se) "bzp" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/monorail/east) "bzq" = ( /obj/structure/machinery/door/window/eastright, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/prison/residential/central) "bzr" = ( /obj/structure/sink{ @@ -26735,9 +20163,7 @@ /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/prison/residential/central) "bzs" = ( /obj/structure/machinery/door/airlock/prison{ @@ -26745,21 +20171,13 @@ icon_state = "door_open"; opacity = 0 }, -/turf/open/floor/prison{ - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull, /area/prison/cellblock/lowsec/se) "bzt" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean_marked" - }, +/turf/open/floor/prison/bright_clean_marked/southwest, /area/prison/cellblock/lowsec/se) "bzu" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "rampbottom" - }, +/turf/open/floor/prison/rampbottom/north, /area/prison/holding/holding1) "bzv" = ( /turf/closed/wall/prison, @@ -26767,10 +20185,7 @@ "bzw" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 1; - icon_state = "rampbottom" - }, +/turf/open/floor/prison/rampbottom/north, /area/prison/holding/holding1) "bzx" = ( /obj/structure/pipes/standard/simple/hidden/supply, @@ -26778,20 +20193,14 @@ dir = 2; name = "Prison Store" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/store) "bzy" = ( /obj/structure/window/framed/prison/reinforced, /turf/open/floor/plating, /area/prison/store) "bzz" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/east, /area/prison/cellblock/highsec/south/north) "bzD" = ( /obj/structure/pipes/standard/simple/hidden/supply, @@ -26799,19 +20208,13 @@ /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "Visitation" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/visitation) "bzE" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/comdoor/colony{ name = "East Hallway" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/hallway/east) "bzG" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -26851,10 +20254,7 @@ dir = 4 }, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/west, /area/prison/security/checkpoint/hangar) "bzM" = ( /obj/structure/pipes/standard/manifold/hidden/supply, @@ -26871,20 +20271,14 @@ dir = 4 }, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/east, /area/prison/security/checkpoint/hangar) "bzQ" = ( /obj/structure/machinery/computer/cameras{ network = list("PRISON") }, /obj/structure/surface/table/reinforced, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/checkpoint/hangar) "bzR" = ( /obj/structure/shuttle/diagonal{ @@ -26907,62 +20301,38 @@ /turf/open/floor/plating, /area/prison/monorail/east) "bzW" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/west, /area/prison/monorail/east) "bzX" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/west, /area/prison/monorail/east) "bzY" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/east, /area/prison/monorail/east) "bzZ" = ( /obj/structure/machinery/vending/snack, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/monorail/east) "bAa" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "rampbottom" - }, +/turf/open/floor/prison/rampbottom/north, /area/prison/maintenance/residential/sw) "bAe" = ( /turf/closed/wall/r_wall/prison_unmeltable, /area/prison/cellblock/highsec/south/north) "bAf" = ( /obj/structure/surface/table/reinforced, -/turf/open/floor/prison{ - dir = 1; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/north, /area/prison/cellblock/highsec/south/north) "bAi" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/holding/holding1) "bAn" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk{ dir = 4 }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "green" - }, +/turf/open/floor/prison/green/northwest, /area/prison/security/monitoring/lowsec/sw) "bAo" = ( /obj/structure/machinery/light{ @@ -26971,10 +20341,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/prison/green/north, /area/prison/security/monitoring/lowsec/sw) "bAp" = ( /obj/structure/disposalpipe/segment{ @@ -26985,28 +20352,19 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/prison/green/north, /area/prison/security/monitoring/lowsec/sw) "bAq" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/prison/green/north, /area/prison/security/monitoring/lowsec/sw) "bAr" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greencorner" - }, +/turf/open/floor/prison/greencorner/east, /area/prison/cellblock/lowsec/sw) "bAs" = ( /obj/structure/pipes/standard/simple/hidden/supply, @@ -27014,26 +20372,17 @@ dir = 8; icon_state = "pipe-c" }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "greencorner" - }, +/turf/open/floor/prison/greencorner/north, /area/prison/cellblock/lowsec/sw) "bAt" = ( /obj/structure/machinery/light{ dir = 1 }, /obj/effect/landmark/monkey_spawn, -/turf/open/floor/prison{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/prison/green/north, /area/prison/cellblock/lowsec/sw) "bAu" = ( -/turf/open/floor/prison{ - dir = 5; - icon_state = "green" - }, +/turf/open/floor/prison/green/northeast, /area/prison/cellblock/lowsec/sw) "bAv" = ( /obj/structure/machinery/door/airlock/prison/horizontal{ @@ -27041,29 +20390,21 @@ icon_state = "door_open"; opacity = 0 }, -/turf/open/floor/prison{ - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull, /area/prison/cellblock/lowsec/sw) "bAw" = ( /obj/structure/machinery/light{ dir = 1 }, /obj/structure/pipes/vents/pump/on, -/turf/open/floor/prison{ - dir = 8; - icon_state = "green" - }, +/turf/open/floor/prison/green/west, /area/prison/hallway/central/south) "bAx" = ( /obj/structure/machinery/light{ dir = 1 }, /obj/structure/pipes/vents/scrubber, -/turf/open/floor/prison{ - dir = 4; - icon_state = "green" - }, +/turf/open/floor/prison/green/east, /area/prison/hallway/central/south) "bAy" = ( /obj/structure/machinery/door/airlock/prison/horizontal{ @@ -27071,37 +20412,23 @@ icon_state = "door_open"; opacity = 0 }, -/turf/open/floor/prison{ - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull, /area/prison/cellblock/lowsec/se) "bAA" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/hallway/east) "bAB" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/cellblock/lowsec/se) "bAC" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/cellblock/lowsec/se) "bAD" = ( /obj/structure/machinery/shower{ pixel_y = 15 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/prison/cellblock/lowsec/se) "bAE" = ( /turf/open/floor/prison, @@ -27113,73 +20440,46 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/prison/cellblock/lowsec/se) "bAG" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "damaged2" - }, +/turf/open/floor/prison/damaged2/southwest, /area/prison/hallway/east) "bAH" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "rampbottom" - }, +/turf/open/floor/prison/rampbottom/west, /area/prison/hallway/east) "bAI" = ( /obj/structure/pipes/vents/pump/on, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/hallway/east) "bAJ" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/hallway/east) "bAL" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/hallway/east) "bAM" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/hallway/east) "bAN" = ( /obj/structure/pipes/vents/scrubber{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/hallway/east) "bAO" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/north, /area/prison/hallway/east) "bAP" = ( /obj/structure/grille, @@ -27187,10 +20487,7 @@ /turf/open/space, /area/space) "bAQ" = ( -/turf/open/floor/prison{ - dir = 5; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/northeast, /area/prison/hallway/east) "bAR" = ( /obj/structure/bed, @@ -27215,9 +20512,7 @@ /obj/structure/machinery/shower{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/prison/residential/central) "bAV" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ @@ -27230,40 +20525,25 @@ /area/prison/security/checkpoint/hangar) "bAX" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/southwest, /area/prison/security/checkpoint/hangar) "bAY" = ( /obj/structure/bed/chair/office/dark, -/turf/open/floor/prison{ - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2, /area/prison/security/checkpoint/hangar) "bAZ" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2, /area/prison/security/checkpoint/hangar) "bBa" = ( -/turf/open/floor/prison{ - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2, /area/prison/security/checkpoint/hangar) "bBb" = ( -/turf/open/floor/prison{ - dir = 6; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/southeast, /area/prison/security/checkpoint/hangar) "bBc" = ( /obj/structure/machinery/computer/prisoner, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/checkpoint/hangar) "bBd" = ( /turf/closed/shuttle{ @@ -27274,22 +20554,16 @@ /obj/structure/bed/chair/comfy{ dir = 4 }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/prison/monorail/east) "bBf" = ( -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/light_grey_single_wide_up_to_down, /area/prison/monorail/east) "bBg" = ( /obj/structure/bed/chair/comfy{ dir = 8 }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/prison/monorail/east) "bBh" = ( /turf/closed/wall/prison, @@ -27300,10 +20574,7 @@ pixel_x = 28; start_charge = 0 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/monorail/east) "bBl" = ( /obj/structure/machinery/power/apc{ @@ -27353,26 +20624,17 @@ /area/prison/maintenance/residential/se) "bBv" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 10; - icon_state = "green" - }, +/turf/open/floor/prison/green/southwest, /area/prison/monorail/west) "bBw" = ( -/turf/open/floor/prison{ - dir = 6; - icon_state = "green" - }, +/turf/open/floor/prison/green/southeast, /area/prison/monorail/west) "bBx" = ( /obj/structure/machinery/light{ dir = 4 }, /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/prison/red/east, /area/prison/cellblock/highsec/south/north) "bBy" = ( /obj/structure/machinery/light/small{ @@ -27399,69 +20661,48 @@ /turf/open/floor/plating, /area/prison/security/monitoring/lowsec/sw) "bBI" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "green" - }, +/turf/open/floor/prison/green/southwest, /area/prison/security/monitoring/lowsec/sw) "bBJ" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 6 }, -/turf/open/floor/prison{ - icon_state = "green" - }, +/turf/open/floor/prison/green, /area/prison/security/monitoring/lowsec/sw) "bBK" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - icon_state = "green" - }, +/turf/open/floor/prison/green, /area/prison/security/monitoring/lowsec/sw) "bBL" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "green" - }, +/turf/open/floor/prison/green, /area/prison/security/monitoring/lowsec/sw) "bBM" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "greencorner" - }, +/turf/open/floor/prison/greencorner/west, /area/prison/cellblock/lowsec/sw) "bBN" = ( /obj/structure/pipes/standard/manifold/hidden/supply, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/lowsec/sw) "bBO" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/lowsec/sw) "bBQ" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "greencorner" - }, +/turf/open/floor/prison/greencorner/north, /area/prison/cellblock/lowsec/sw) "bBR" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -27470,19 +20711,13 @@ /obj/structure/machinery/alarm/almayer{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/prison/green/north, /area/prison/cellblock/lowsec/sw) "bBS" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/prison/green/north, /area/prison/cellblock/lowsec/sw) "bBU" = ( /obj/structure/machinery/light{ @@ -27491,45 +20726,32 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/prison/green/north, /area/prison/cellblock/lowsec/sw) "bBV" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/prison/green/north, /area/prison/cellblock/lowsec/sw) "bBX" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 5; - icon_state = "green" - }, +/turf/open/floor/prison/green/northeast, /area/prison/cellblock/lowsec/sw) "bBY" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull, /area/prison/cellblock/lowsec/sw) "bBZ" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, /obj/structure/girder/reinforced, -/turf/open/floor/prison{ - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow, /area/prison/cellblock/mediumsec/north) "bCa" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -27539,51 +20761,32 @@ dir = 8; flipped = 1 }, -/turf/open/floor/prison{ - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow, /area/prison/cellblock/mediumsec/north) "bCb" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/residential/south) "bCc" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/prison/residential/south) "bCd" = ( /obj/structure/pipes/standard/manifold/hidden/supply, -/turf/open/floor/prison{ - dir = 8; - icon_state = "green" - }, +/turf/open/floor/prison/green/west, /area/prison/hallway/central/south) "bCe" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/hallway/central/south) "bCf" = ( /obj/structure/toilet, -/turf/open/floor/prison{ - dir = 1; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/north, /area/prison/cellblock/highsec/south/north) "bCg" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/north, /area/prison/cellblock/highsec/south/north) "bCh" = ( /obj/structure/pipes/standard/manifold/fourway/hidden/supply, @@ -27598,10 +20801,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "green" - }, +/turf/open/floor/prison/green/east, /area/prison/hallway/central/south) "bCj" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -27610,9 +20810,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull, /area/prison/cellblock/lowsec/se) "bCk" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -27621,10 +20819,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "green" - }, +/turf/open/floor/prison/green/northwest, /area/prison/cellblock/lowsec/se) "bCl" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -27633,10 +20828,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/prison/green/north, /area/prison/cellblock/lowsec/se) "bCm" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ @@ -27645,17 +20837,11 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/prison/green/north, /area/prison/cellblock/lowsec/se) "bCo" = ( /obj/item/stack/cable_coil, -/turf/open/floor/prison{ - dir = 9; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/northwest, /area/prison/medbay) "bCp" = ( /obj/structure/machinery/light{ @@ -27667,10 +20853,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/prison/green/north, /area/prison/cellblock/lowsec/se) "bCq" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -27682,10 +20865,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/prison/green/north, /area/prison/cellblock/lowsec/se) "bCr" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -27694,10 +20874,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greencorner" - }, +/turf/open/floor/prison/greencorner/east, /area/prison/cellblock/lowsec/se) "bCs" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -27706,10 +20883,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "green" - }, +/turf/open/floor/prison/green/east, /area/prison/cellblock/lowsec/se) "bCt" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -27718,23 +20892,14 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean_marked" - }, +/turf/open/floor/prison/bright_clean_marked/southwest, /area/prison/cellblock/lowsec/se) "bCv" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/prison/green/north, /area/prison/cellblock/lowsec/sw) "bCw" = ( /obj/structure/pipes/standard/manifold/fourway/hidden/supply, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/cellblock/lowsec/se) "bCx" = ( /obj/structure/machinery/shower{ @@ -27743,28 +20908,19 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/prison/cellblock/lowsec/se) "bCy" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/cellblock/lowsec/se) "bCz" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/cellblock/lowsec/se) "bCA" = ( /obj/structure/machinery/door/airlock/prison/horizontal{ @@ -27772,26 +20928,18 @@ icon_state = "door_open"; opacity = 0 }, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/prison/cellblock/highsec/south/north) "bCB" = ( /obj/structure/machinery/shower{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/prison/cellblock/lowsec/se) "bCC" = ( /obj/effect/decal/cleanable/blood, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "damaged2" - }, +/turf/open/floor/prison/damaged2/southwest, /area/prison/hallway/east) "bCE" = ( /obj/structure/pipes/standard/simple/hidden/supply, @@ -27813,10 +20961,7 @@ /turf/open/floor/plating/plating_catwalk/prison, /area/prison/hallway/east) "bCH" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/hallway/east) "bCJ" = ( /obj/effect/landmark/corpsespawner/prisoner, @@ -27833,10 +20978,7 @@ /turf/open/floor/plating, /area/prison/maintenance/residential/access/south) "bCM" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/east, /area/prison/hallway/east) "bCN" = ( /obj/structure/bed, @@ -27862,31 +21004,19 @@ /turf/open/floor/plating, /area/prison/maintenance/hangar_barracks) "bCR" = ( -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/northwest, /area/prison/hallway/east) "bCS" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/north, /area/prison/hallway/east) "bCT" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/computer/shuttle/dropship/flight/lz1, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/landing/console) "bCU" = ( /obj/structure/surface/table/reinforced, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/checkpoint/hangar) "bCV" = ( /obj/structure/surface/table/reinforced, @@ -27898,37 +21028,25 @@ pixel_x = 9; pixel_y = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/checkpoint/hangar) "bCW" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/west, /area/prison/monorail/east) "bCX" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/west, /area/prison/monorail/east) "bCY" = ( /obj/structure/bed/chair/comfy{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/monorail/east) "bCZ" = ( /obj/structure/pipes/vents/pump{ @@ -27958,45 +21076,31 @@ /turf/open/floor/plating, /area/prison/maintenance/residential/se) "bDf" = ( -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/prison/hallway/central/west) "bDg" = ( /obj/structure/machinery/cm_vending/sorted/tech/science, -/turf/open/floor/prison{ - icon_state = "whitepurplefull" - }, +/turf/open/floor/prison/whitepurplefull, /area/prison/research/secret/dissection) "bDi" = ( /obj/structure/janitorialcart, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/prison/hallway/central/west) "bDj" = ( /obj/structure/closet/toolcloset, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/prison/hallway/central/west) "bDk" = ( /obj/structure/machinery/computer/secure_data, /obj/structure/surface/table/reinforced, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/checkpoint/highsec/s) "bDl" = ( /obj/structure/machinery/computer/cameras{ network = list("PRISON") }, /obj/structure/surface/table/reinforced, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/checkpoint/highsec/s) "bDm" = ( /obj/structure/pipes/standard/simple/hidden/supply, @@ -28008,115 +21112,82 @@ /area/prison/security/monitoring/lowsec/sw) "bDo" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - icon_state = "green" - }, +/turf/open/floor/prison/green, /area/prison/cellblock/lowsec/sw) "bDp" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "green" - }, +/turf/open/floor/prison/green, /area/prison/cellblock/lowsec/sw) "bDq" = ( /obj/structure/pipes/vents/scrubber{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "green" - }, +/turf/open/floor/prison/green, /area/prison/cellblock/lowsec/sw) "bDr" = ( -/turf/open/floor/prison{ - dir = 6; - icon_state = "green" - }, +/turf/open/floor/prison/green/southeast, /area/prison/cellblock/lowsec/sw) "bDs" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ dir = 2; name = "Southwest Low-Security Cellblock" }, -/turf/open/floor/prison{ - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull, /area/prison/cellblock/lowsec/sw) "bDt" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ dir = 2; name = "Southeast Low-Security Cellblock" }, -/turf/open/floor/prison{ - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull, /area/prison/cellblock/lowsec/se) "bDu" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "green" - }, +/turf/open/floor/prison/green/southwest, /area/prison/cellblock/lowsec/se) "bDv" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - icon_state = "green" - }, +/turf/open/floor/prison/green, /area/prison/cellblock/lowsec/se) "bDw" = ( /obj/structure/pipes/vents/scrubber{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "green" - }, +/turf/open/floor/prison/green, /area/prison/cellblock/lowsec/se) "bDz" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "green" - }, +/turf/open/floor/prison/green, /area/prison/cellblock/lowsec/se) "bDA" = ( /obj/structure/machinery/power/apc{ pixel_y = -24; start_charge = 0 }, -/turf/open/floor/prison{ - icon_state = "green" - }, +/turf/open/floor/prison/green, /area/prison/cellblock/lowsec/se) "bDB" = ( /obj/structure/machinery/shower{ dir = 8 }, /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/prison/cellblock/lowsec/se) "bDC" = ( /obj/structure/machinery/shower{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/prison/cellblock/lowsec/se) "bDD" = ( /obj/structure/machinery/light{ dir = 8 }, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/hallway/central/east) "bDE" = ( /obj/structure/monorail, @@ -28140,10 +21211,7 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "damaged2" - }, +/turf/open/floor/prison/damaged2/southwest, /area/prison/hallway/east) "bDH" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -28152,10 +21220,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/hallway/east) "bDI" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -28164,10 +21229,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "rampbottom" - }, +/turf/open/floor/prison/rampbottom/west, /area/prison/hallway/east) "bDK" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -28191,10 +21253,7 @@ }, /obj/effect/landmark/crap_item, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/hallway/east) "bDM" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -28265,30 +21324,20 @@ /area/prison/hallway/east) "bDU" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/comdoor/colony{ - dir = 2; - req_access = null - }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" + dir = 2 }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/hallway/east) "bDV" = ( /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/hallway/east) "bDW" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 }, /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, -/turf/open/floor/prison{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/east, /area/prison/cellblock/mediumsec/south) "bDX" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -28303,9 +21352,7 @@ /obj/structure/machinery/door/airlock/almayer/security/colony{ name = "Security Barracks" }, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/prison/quarters/security) "bDZ" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -28328,36 +21375,23 @@ /turf/open/floor/prison, /area/prison/quarters/security) "bEd" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "rampbottom" - }, +/turf/open/floor/prison/rampbottom/north, /area/prison/maintenance/hangar_barracks) "bEe" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 1; - icon_state = "rampbottom" - }, +/turf/open/floor/prison/rampbottom/north, /area/prison/maintenance/hangar_barracks) "bEf" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/prison/telecomms) "bEg" = ( -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/prison/monorail/east) "bEh" = ( /obj/structure/machinery/door/unpowered/shuttle, /obj/structure/machinery/door/poddoor/shutters/transit/open, -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/light_grey_single_wide_up_to_down, /area/prison/monorail/east) "bEi" = ( /obj/structure/machinery/door/airlock/almayer/generic, @@ -28371,64 +21405,43 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/monorail/east) "bEl" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/prison/hallway/central/west) "bEm" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ dir = 8; name = "South High-Security Cellblock" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/prison/hallway/central/west) "bEn" = ( /turf/closed/wall/r_wall/prison, /area/prison/hallway/central/west) "bEo" = ( /obj/structure/machinery/vending/security, -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/northwest, /area/prison/security/monitoring/lowsec/sw) "bEp" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 8 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/north, /area/prison/security/monitoring/lowsec/sw) "bEq" = ( /obj/effect/decal/cleanable/blood/gibs, /obj/structure/pipes/vents/scrubber{ dir = 8 }, -/turf/open/floor/prison{ - dir = 5; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/northeast, /area/prison/security/monitoring/lowsec/sw) "bEs" = ( /obj/structure/machinery/shower{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/prison/cellblock/lowsec/se) "bEt" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -28437,10 +21450,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/prison/cellblock/lowsec/se) "bEu" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony, @@ -28456,33 +21466,21 @@ /obj/structure/pipes/vents/scrubber{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/hallway/east) "bEw" = ( /obj/effect/landmark/corpsespawner/prisoner, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/hallway/east) "bEx" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/hallway/east) "bEy" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/west, /area/prison/hallway/east) "bEz" = ( /obj/effect/decal/cleanable/blood/splatter, @@ -28500,10 +21498,7 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/east, /area/prison/hallway/east) "bED" = ( /obj/structure/bed, @@ -28541,10 +21536,7 @@ /turf/open/floor/prison, /area/prison/hallway/east) "bEJ" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/prison/telecomms) "bEK" = ( /obj/structure/pipes/vents/scrubber, @@ -28568,76 +21560,52 @@ /obj/structure/mirror{ pixel_y = 28 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/prison/residential/south) "bEQ" = ( /obj/structure/machinery/washing_machine, /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/prison/residential/south) "bER" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/residential/south) "bES" = ( /obj/structure/pipes/standard/manifold/fourway/hidden/supply, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/prison/residential/south) "bET" = ( /obj/structure/pipes/vents/scrubber{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/residential/south) "bEU" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 1; - icon_state = "redcorner" - }, +/turf/open/floor/prison/redcorner/north, /area/prison/cellblock/highsec/south/north) "bEV" = ( /obj/structure/pipes/vents/scrubber, /obj/effect/alien/weeds/node, -/turf/open/floor/prison{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/prison/red/north, /area/prison/cellblock/highsec/south/north) "bEW" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/residential/south) "bEX" = ( /obj/structure/machinery/light{ dir = 1 }, /obj/structure/pipes/vents/pump/on, -/turf/open/floor/prison{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/prison/red/north, /area/prison/cellblock/highsec/south/north) "bEY" = ( /obj/structure/machinery/light{ @@ -28647,52 +21615,34 @@ dir = 4 }, /obj/item/stack/rods, -/turf/open/floor/prison{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/north, /area/prison/cellblock/mediumsec/south) "bEZ" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, /obj/item/stack/rods, -/turf/open/floor/prison{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/north, /area/prison/cellblock/mediumsec/south) "bFb" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "redcorner" - }, +/turf/open/floor/prison/redcorner/east, /area/prison/cellblock/highsec/south/north) "bFd" = ( /obj/structure/machinery/alarm/almayer{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/prison/red/north, /area/prison/cellblock/highsec/south/north) "bFe" = ( /obj/structure/machinery/light{ dir = 1 }, /obj/structure/pipes/vents/scrubber, -/turf/open/floor/prison{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/prison/red/north, /area/prison/cellblock/highsec/south/north) "bFf" = ( /obj/structure/pipes/vents/pump/on, -/turf/open/floor/prison{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/prison/red/north, /area/prison/cellblock/highsec/south/north) "bFg" = ( /obj/structure/machinery/power/apc{ @@ -28701,10 +21651,7 @@ start_charge = 0 }, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/prison/red/north, /area/prison/cellblock/highsec/south/north) "bFh" = ( /obj/structure/largecrate/random/case/double, @@ -28715,67 +21662,44 @@ /turf/open/floor/plating, /area/prison/maintenance/research_medbay) "bFj" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/prison/red/north, /area/prison/security/checkpoint/highsec/s) "bFk" = ( /obj/structure/window/framed/prison/reinforced, /turf/open/floor/plating, /area/prison/security/monitoring/lowsec/sw) "bFl" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "green" - }, +/turf/open/floor/prison/green/southwest, /area/prison/cellblock/lowsec/sw) "bFm" = ( -/turf/open/floor/prison{ - icon_state = "green" - }, +/turf/open/floor/prison/green, /area/prison/cellblock/lowsec/sw) "bFn" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/prison/red/northeast, /area/prison/security/checkpoint/highsec/s) "bFo" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/prison/red/northwest, /area/prison/security/checkpoint/highsec/s) "bFp" = ( /obj/effect/decal/cleanable/blood, /obj/structure/machinery/camera/autoname{ network = list("PRISON") }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/prison/red/north, /area/prison/security/checkpoint/highsec/s) "bFq" = ( -/turf/open/floor/prison{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/prison/red/northeast, /area/prison/security/checkpoint/highsec/s) "bFr" = ( /obj/structure/surface/rack, /obj/effect/landmark/item_pool_spawner/prison_lock, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/west, /area/prison/security/monitoring/lowsec/sw) "bFs" = ( /obj/structure/pipes/vents/pump{ @@ -28785,83 +21709,53 @@ /area/prison/security/monitoring/lowsec/sw) "bFt" = ( /obj/effect/decal/cleanable/blood/gibs, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkredcorners2" - }, +/turf/open/floor/prison/darkredcorners2/north, /area/prison/security/monitoring/lowsec/sw) "bFu" = ( /obj/structure/filingcabinet, /obj/effect/decal/cleanable/blood/gibs, -/turf/open/floor/prison{ - dir = 5; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/northeast, /area/prison/security/monitoring/lowsec/sw) "bFv" = ( /obj/effect/decal/cleanable/blood/splatter, /turf/closed/wall/prison, /area/prison/security/monitoring/lowsec/sw) "bFw" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/north, /area/prison/cellblock/lowsec/sw) "bFx" = ( /obj/structure/toilet, -/turf/open/floor/prison{ - dir = 1; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/north, /area/prison/cellblock/lowsec/sw) "bFy" = ( /obj/structure/machinery/camera/autoname{ network = list("PRISON") }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/hallway/central/south) "bFz" = ( /obj/structure/toilet, -/turf/open/floor/prison{ - dir = 1; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/north, /area/prison/cellblock/lowsec/se) "bFA" = ( -/turf/open/floor/prison{ - icon_state = "green" - }, +/turf/open/floor/prison/green, /area/prison/cellblock/lowsec/se) "bFB" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/north, /area/prison/cellblock/lowsec/se) "bFC" = ( /obj/structure/pipes/vents/scrubber{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/cellblock/lowsec/se) "bFD" = ( -/turf/open/floor/prison{ - icon_state = "rampbottom" - }, +/turf/open/floor/prison/rampbottom, /area/prison/holding/holding2) "bFE" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - icon_state = "rampbottom" - }, +/turf/open/floor/prison/rampbottom, /area/prison/holding/holding2) "bFF" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony{ @@ -28869,37 +21763,22 @@ name = "Telecommunications" }, /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/telecomms) "bFG" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/east, /area/prison/hallway/east) "bFH" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/prison/hallway/east) "bFI" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/west, /area/prison/hallway/east) "bFJ" = ( /obj/structure/pipes/vents/scrubber{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/hallway/east) "bFK" = ( /obj/structure/disposalpipe/segment, @@ -28986,59 +21865,43 @@ dir = 8; pixel_x = -4 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/prison/residential/south) "bFY" = ( /obj/structure/toilet{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/prison/residential/south) "bFZ" = ( /obj/structure/machinery/light{ dir = 8 }, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/prison/red/west, /area/prison/cellblock/highsec/south/north) "bGa" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "redcorner" - }, +/turf/open/floor/prison/redcorner, /area/prison/cellblock/highsec/south/north) "bGd" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "red" - }, +/turf/open/floor/prison/red, /area/prison/cellblock/highsec/south/north) "bGe" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, /obj/item/ammo_casing, -/turf/open/floor/prison{ - icon_state = "red" - }, +/turf/open/floor/prison/red, /area/prison/cellblock/highsec/south/north) "bGf" = ( /obj/structure/pipes/standard/manifold/hidden/supply, -/turf/open/floor/prison{ - dir = 8; - icon_state = "redcorner" - }, +/turf/open/floor/prison/redcorner/west, /area/prison/cellblock/highsec/south/north) "bGg" = ( /obj/structure/pipes/standard/manifold/fourway/hidden/supply, @@ -29070,16 +21933,11 @@ /area/prison/cellblock/highsec/south/north) "bGm" = ( /obj/item/stack/rods, -/turf/open/floor/prison{ - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow, /area/prison/cellblock/mediumsec/south) "bGn" = ( /obj/item/stack/rods, -/turf/open/floor/prison{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/north, /area/prison/cellblock/mediumsec/south) "bGp" = ( /obj/structure/pipes/standard/manifold/fourway/hidden/supply, @@ -29106,10 +21964,7 @@ dir = 4; icon_state = "pipe-c" }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/prison/red/east, /area/prison/security/checkpoint/highsec/s) "bGv" = ( /obj/structure/disposalpipe/segment{ @@ -29127,9 +21982,7 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/prison/security/checkpoint/highsec/s) "bGx" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -29138,9 +21991,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/prison/security/checkpoint/highsec/s) "bGy" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -29159,9 +22010,7 @@ dir = 4 }, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/prison/security/checkpoint/highsec/s) "bGA" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ @@ -29172,10 +22021,7 @@ /area/prison/hallway/central/west) "bGB" = ( /obj/structure/machinery/light, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/hallway/east) "bGC" = ( /obj/item/stack/rods, @@ -29185,25 +22031,18 @@ "bGD" = ( /obj/item/frame/table, /obj/item/shard, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/southwest, /area/prison/security/monitoring/lowsec/sw) "bGE" = ( /obj/item/shard, /obj/effect/decal/cleanable/blood/gibs, -/turf/open/floor/prison{ - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2, /area/prison/security/monitoring/lowsec/sw) "bGF" = ( /obj/structure/bed/chair/office/dark, /obj/effect/decal/cleanable/blood/splatter, /obj/effect/decal/cleanable/blood/gibs, -/turf/open/floor/prison{ - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2, /area/prison/security/monitoring/lowsec/sw) "bGG" = ( /obj/effect/decal/cleanable/blood, @@ -29213,19 +22052,13 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - dir = 6; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/southeast, /area/prison/security/monitoring/lowsec/sw) "bGH" = ( /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/lowsec/se) "bGI" = ( /obj/effect/decal/cleanable/blood, @@ -29233,25 +22066,16 @@ /area/prison/holding/holding2) "bGJ" = ( /obj/structure/bed, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/holding/holding2) "bGK" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/holding/holding2) "bGL" = ( /obj/structure/machinery/alarm/almayer{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/holding/holding2) "bGM" = ( /obj/structure/sink{ @@ -29261,36 +22085,24 @@ /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/holding/holding2) "bGN" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/holding/holding2) "bGO" = ( /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/northwest, /area/prison/telecomms) "bGP" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/prison/telecomms) "bGQ" = ( /obj/structure/window/framed/prison/reinforced/hull, @@ -29321,39 +22133,25 @@ /obj/structure/window/reinforced{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/prison/residential/south) "bGW" = ( /obj/structure/machinery/telecomms/bus, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/prison/telecomms) "bGX" = ( /obj/structure/machinery/computer/telecomms/traffic, -/turf/open/floor/prison{ - dir = 5; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/northeast, /area/prison/telecomms) "bGY" = ( /obj/structure/machinery/alarm/almayer{ dir = 1 }, -/turf/open/floor/prison{ - dir = 5; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/northeast, /area/prison/hallway/east) "bGZ" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/hallway/east) "bHa" = ( /obj/structure/machinery/power/apc{ @@ -29370,9 +22168,7 @@ /obj/structure/window/reinforced{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/prison/residential/south) "bHc" = ( /obj/structure/bed/chair/office/light{ @@ -29405,10 +22201,7 @@ /area/prison/maintenance/hangar_barracks) "bHk" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/prison/red/north, /area/prison/cellblock/highsec/south/north) "bHl" = ( /obj/structure/machinery/power/apc{ @@ -29448,10 +22241,7 @@ "bHv" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/prison/red/east, /area/prison/security/checkpoint/highsec/s) "bHw" = ( /obj/structure/stairs/perspective{ @@ -29462,10 +22252,7 @@ /obj/structure/platform{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/security/checkpoint/highsec/s) "bHx" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ @@ -29475,17 +22262,12 @@ /turf/open/floor/prison, /area/prison/security/checkpoint/highsec/s) "bHy" = ( -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/prison/security/checkpoint/highsec/s) "bHA" = ( /obj/structure/surface/table/reinforced, /obj/item/device/flashlight/lamp, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/monitoring/lowsec/sw) "bHB" = ( /obj/structure/surface/table/reinforced, @@ -29494,10 +22276,7 @@ pixel_y = 7 }, /obj/effect/decal/cleanable/blood/gibs, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/monitoring/lowsec/sw) "bHC" = ( /obj/structure/machinery/computer/cameras{ @@ -29505,19 +22284,13 @@ }, /obj/effect/decal/cleanable/blood/gibs, /obj/structure/surface/table/reinforced, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/monitoring/lowsec/sw) "bHD" = ( /obj/structure/machinery/computer/secure_data, /obj/effect/decal/cleanable/blood/gibs, /obj/structure/surface/table/reinforced, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/monitoring/lowsec/sw) "bHE" = ( /obj/structure/pipes/standard/manifold/hidden/supply, @@ -29531,27 +22304,18 @@ dir = 4 }, /obj/structure/machinery/light, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/prison/cellblock/lowsec/se) "bHG" = ( /obj/structure/bed, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/holding/holding2) "bHH" = ( /obj/structure/machinery/shower{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/holding/holding2) "bHI" = ( /turf/closed/wall/r_wall/prison_unmeltable, @@ -29567,19 +22331,13 @@ }, /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/holding/holding2) "bHL" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/west, /area/prison/telecomms) "bHN" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ @@ -29612,9 +22370,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/prison/hallway/east) "bHU" = ( /obj/structure/disposalpipe/segment{ @@ -29651,21 +22407,14 @@ /area/prison/maintenance/hangar_barracks) "bIb" = ( /obj/structure/machinery/door/airlock/glass, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/prison/monorail/east) "bIc" = ( /obj/structure/toilet, -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/east, /area/prison/cellblock/highsec/south/north) "bIe" = ( -/turf/open/floor/prison{ - icon_state = "redcorner" - }, +/turf/open/floor/prison/redcorner, /area/prison/cellblock/highsec/south/north) "bIf" = ( /obj/structure/surface/table/woodentable, @@ -29674,10 +22423,7 @@ /area/prison/residential/south) "bIg" = ( /obj/structure/girder, -/turf/open/floor/prison{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/north, /area/prison/cellblock/mediumsec/south) "bIh" = ( /obj/structure/machinery/light/small{ @@ -29687,25 +22433,18 @@ /area/prison/residential/south) "bIi" = ( /obj/structure/machinery/door/window/eastleft, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/prison/residential/south) "bIj" = ( /obj/structure/machinery/light{ dir = 1 }, /obj/item/stack/rods, -/turf/open/floor/prison{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/north, /area/prison/cellblock/mediumsec/south) "bIk" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - icon_state = "redcorner" - }, +/turf/open/floor/prison/redcorner, /area/prison/cellblock/highsec/south/north) "bIl" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony{ @@ -29716,15 +22455,11 @@ /area/prison/medbay) "bIm" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - icon_state = "red" - }, +/turf/open/floor/prison/red, /area/prison/cellblock/highsec/south/north) "bIn" = ( /obj/structure/machinery/door/window/westright, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/prison/residential/south) "bIo" = ( /obj/structure/machinery/light/small{ @@ -29733,9 +22468,7 @@ /turf/open/floor/wood, /area/prison/residential/south) "bIp" = ( -/turf/open/floor/prison{ - icon_state = "red" - }, +/turf/open/floor/prison/red, /area/prison/security/checkpoint/highsec/s) "bIq" = ( /obj/structure/pipes/standard/simple/hidden/supply, @@ -29743,25 +22476,16 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/prison/red/southeast, /area/prison/security/checkpoint/highsec/s) "bIr" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/prison/red/southwest, /area/prison/security/checkpoint/highsec/s) "bIt" = ( -/turf/open/floor/prison{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/prison/red/southeast, /area/prison/security/checkpoint/highsec/s) "bIu" = ( /obj/structure/pipes/standard/simple/hidden/supply, @@ -29771,18 +22495,12 @@ /area/prison/hallway/central/west) "bIw" = ( /obj/effect/landmark/survivor_spawner, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/holding/holding2) "bIx" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/holding/holding2) "bIy" = ( /turf/open/floor/plating/plating_catwalk/prison, @@ -29793,18 +22511,13 @@ pixel_x = -24; start_charge = 0 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/west, /area/prison/hallway/east) "bIB" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ dir = 2 }, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/prison/hallway/east) "bID" = ( /obj/structure/disposalpipe/segment, @@ -29819,10 +22532,7 @@ dir = 2; name = "Security Barracks" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/quarters/security) "bIG" = ( /obj/structure/surface/table/reinforced, @@ -29837,20 +22547,14 @@ /obj/structure/toilet{ dir = 4 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/west, /area/prison/cellblock/highsec/south/north) "bIK" = ( /obj/structure/sink{ dir = 4; pixel_x = 12 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/highsec/south/north) "bIL" = ( /obj/structure/pipes/standard/simple/hidden/supply, @@ -29860,10 +22564,7 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/prison/red/west, /area/prison/cellblock/highsec/south/north) "bIN" = ( /obj/structure/pipes/standard/simple/hidden/supply, @@ -29884,17 +22585,11 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/security/checkpoint/highsec/s) "bIQ" = ( /obj/structure/pipes/vents/pump/on, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/hallway/central/south) "bIS" = ( /obj/structure/pipes/vents/scrubber{ @@ -29902,28 +22597,19 @@ }, /obj/effect/landmark/crap_item, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/holding/holding2) "bIT" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/holding/holding2) "bIU" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/holding/holding2) "bIV" = ( /obj/structure/machinery/light{ @@ -29933,78 +22619,45 @@ dir = 9 }, /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/holding/holding2) "bIW" = ( -/turf/open/floor/prison{ - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2, /area/prison/telecomms) "bIX" = ( -/turf/open/floor/prison{ - icon_state = "darkbrowncorners2" - }, +/turf/open/floor/prison/darkbrowncorners2, /area/prison/hallway/east) "bIY" = ( -/turf/open/floor/prison{ - dir = 6; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/southeast, /area/prison/hallway/east) "bIZ" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/southwest, /area/prison/hallway/east) "bJa" = ( /obj/structure/bed/chair, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/holding/holding2) "bJb" = ( -/turf/open/floor/prison{ - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2, /area/prison/hallway/east) "bJc" = ( /obj/structure/machinery/vending/security, -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/northwest, /area/prison/security) "bJd" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/holding/holding2) "bJe" = ( -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/northwest, /area/prison/security) "bJf" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/computer/secure_data, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security) "bJg" = ( /obj/structure/machinery/computer/prisoner, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security) "bJh" = ( /obj/structure/machinery/disposal, @@ -30012,10 +22665,7 @@ dir = 1 }, /obj/structure/disposalpipe/trunk, -/turf/open/floor/prison{ - dir = 5; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/northeast, /area/prison/security) "bJi" = ( /obj/structure/surface/table/reinforced, @@ -30030,10 +22680,7 @@ /turf/open/floor/prison, /area/prison/maintenance/hangar_barracks) "bJl" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/hallway/east) "bJo" = ( /obj/structure/bed/chair/office/dark{ @@ -30058,35 +22705,23 @@ dir = 4; pixel_x = 12 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/east, /area/prison/cellblock/highsec/south/north) "bJs" = ( /obj/structure/largecrate/random, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/prison/storage/highsec/s) "bJt" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 8 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/prison/storage/highsec/s) "bJu" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 10 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/prison/storage/highsec/s) "bJv" = ( /obj/structure/machinery/power/apc{ @@ -30094,10 +22729,7 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/prison/storage/highsec/s) "bJw" = ( /obj/structure/pipes/standard/simple/hidden/supply, @@ -30106,9 +22738,7 @@ dir = 2; name = "Security Booth" }, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/prison/security/checkpoint/highsec/s) "bJx" = ( /obj/structure/surface/table/reinforced, @@ -30116,10 +22746,7 @@ pixel_x = -3; pixel_y = 7 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/checkpoint/highsec/s) "bJy" = ( /obj/structure/surface/table/reinforced, @@ -30128,19 +22755,13 @@ pixel_y = 8 }, /obj/structure/pipes/vents/scrubber, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/checkpoint/highsec/s) "bJz" = ( /obj/structure/bed, /obj/effect/landmark/corpsespawner/prisoner, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/holding/holding2) "bJA" = ( /obj/structure/bookcase, @@ -30153,65 +22774,44 @@ /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/holding/holding2) "bJE" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 9 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/holding/holding2) "bJF" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ dir = 2; name = "Holding Cell 2" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/holding/holding2) "bJG" = ( /obj/effect/landmark/corpsespawner/prisoner, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/holding/holding2) "bJH" = ( /turf/open/floor/plating/plating_catwalk/prison, /area/prison/security/checkpoint/highsec/s) "bJI" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/holding/holding2) "bJJ" = ( /obj/structure/barricade/handrail/wire{ dir = 8 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/prison/telecomms) "bJL" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/west, /area/prison/hallway/east) "bJM" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ @@ -30227,23 +22827,16 @@ /obj/structure/pipes/vents/scrubber{ dir = 8 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/east, /area/prison/hallway/east) "bJO" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "Intake Processing" }, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/prison/intake) "bJP" = ( -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/prison/intake) "bJQ" = ( /obj/structure/disposalpipe/segment, @@ -30251,67 +22844,43 @@ dir = 2; name = "Security Department" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security) "bJR" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ dir = 2; name = "Security Department" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security) "bJS" = ( /obj/structure/machinery/vending/security, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/west, /area/prison/security) "bJT" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/west, /area/prison/security) "bJU" = ( /obj/structure/bed/chair/office/dark{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/north, /area/prison/security) "bJV" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/east, /area/prison/security) "bJW" = ( /obj/structure/pipes/vents/scrubber{ dir = 4 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/west, /area/prison/monorail/east) "bJX" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 9 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/west, /area/prison/monorail/east) "bJY" = ( /obj/structure/machinery/light/small, @@ -30350,10 +22919,7 @@ dir = 1; icon_state = "pipe-c" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/checkpoint/highsec/s) "bKf" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -30362,10 +22928,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/checkpoint/highsec/s) "bKg" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -30375,17 +22938,11 @@ dir = 2; icon_state = "pipe-c" }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/northwest, /area/prison/security/checkpoint/highsec/s) "bKh" = ( /obj/structure/pipes/standard/manifold/hidden/supply, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/north, /area/prison/security/checkpoint/highsec/s) "bKi" = ( /obj/structure/window/reinforced{ @@ -30397,10 +22954,7 @@ /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/north, /area/prison/security/checkpoint/highsec/s) "bKk" = ( /obj/structure/window/reinforced{ @@ -30420,24 +22974,15 @@ /area/prison/residential/south) "bKn" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/prison/residential/south) "bKo" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/prison/residential/south) "bKp" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/processor, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/prison/residential/south) "bKq" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -30499,26 +23044,17 @@ dir = 2; name = "Central Ring" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/hallway/central/south) "bKB" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/holding/holding2) "bKC" = ( /obj/effect/landmark/crap_item, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/holding/holding2) "bKD" = ( /turf/open/floor/prison, @@ -30527,48 +23063,33 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/prison/telecomms) "bKG" = ( /obj/structure/machinery/alarm/almayer{ dir = 1 }, -/turf/open/floor/prison{ - dir = 5; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/northeast, /area/prison/intake) "bKH" = ( /obj/structure/closet/secure_closet/security_empty, /obj/structure/window/reinforced{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security) "bKI" = ( /obj/structure/disposalpipe/segment{ dir = 1; icon_state = "pipe-c" }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/northwest, /area/prison/security) "bKJ" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/north, /area/prison/security) "bKK" = ( /obj/structure/disposalpipe/segment{ @@ -30577,29 +23098,20 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/north, /area/prison/security) "bKL" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkredcorners2" - }, +/turf/open/floor/prison/darkredcorners2/east, /area/prison/security) "bKM" = ( /obj/structure/disposalpipe/segment{ dir = 8; icon_state = "pipe-c" }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/east, /area/prison/security) "bKN" = ( /turf/closed/wall/prison, @@ -30614,10 +23126,7 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/prison/toilet/security) "bKQ" = ( /obj/structure/bed/chair/office/dark{ @@ -30656,10 +23165,7 @@ "bKX" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/microwave, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/prison/residential/south) "bKY" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ @@ -30668,10 +23174,7 @@ /turf/open/floor/wood, /area/prison/residential/south) "bKZ" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/west, /area/prison/monorail/east) "bLa" = ( /obj/structure/pipes/vents/scrubber{ @@ -30683,10 +23186,7 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/monorail/east) "bLd" = ( /obj/structure/machinery/light{ @@ -30697,20 +23197,14 @@ /area/prison/residential/south) "bLf" = ( /obj/structure/toilet, -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/west, /area/prison/cellblock/highsec/south/north) "bLg" = ( /turf/closed/wall/r_wall/prison, /area/prison/storage/highsec/s) "bLh" = ( /obj/effect/landmark/good_item, -/turf/open/floor/prison{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/prison/red/west, /area/prison/cellblock/highsec/south/north) "bLi" = ( /obj/structure/machinery/light, @@ -30721,96 +23215,61 @@ dir = 8 }, /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/checkpoint/highsec/s) "bLk" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/southwest, /area/prison/security/checkpoint/highsec/s) "bLl" = ( /obj/structure/surface/table/reinforced, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/holding/holding2) "bLm" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/recharger, -/turf/open/floor/prison{ - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2, /area/prison/security/checkpoint/highsec/s) "bLn" = ( /obj/structure/machinery/vending/security, -/turf/open/floor/prison{ - dir = 6; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/southeast, /area/prison/security/checkpoint/highsec/s) "bLp" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/disposalpipe/segment, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/hallway/central/south) "bLq" = ( /obj/structure/pipes/vents/scrubber{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/hallway/central/south) "bLr" = ( /obj/effect/landmark/good_item, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/holding/holding2) "bLs" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/holding/holding2) "bLt" = ( /obj/structure/toilet, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/holding/holding2) "bLu" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/west, /area/prison/telecomms) "bLv" = ( /turf/closed/wall/r_wall/prison, /area/prison/security) "bLw" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/west, /area/prison/telecomms) "bLx" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -30820,26 +23279,17 @@ /area/prison/telecomms) "bLy" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security) "bLz" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/north, /area/prison/security) "bLA" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/computer/cameras{ network = list("PRISON") }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security) "bLD" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -30848,19 +23298,14 @@ /obj/structure/machinery/door/airlock/almayer/engineering/colony{ name = "Telecommunications" }, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/prison/telecomms) "bLG" = ( /obj/structure/bed/stool, /turf/open/floor/prison, /area/prison/intake) "bLH" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/east, /area/prison/security) "bLI" = ( /obj/structure/machinery/door/airlock/almayer/generic{ @@ -30870,10 +23315,7 @@ name = "Toilet"; opacity = 0 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/toilet/security) "bLJ" = ( /obj/structure/machinery/shower{ @@ -30881,9 +23323,7 @@ layer = 3.3 }, /obj/structure/window/reinforced, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/prison/residential/south) "bLK" = ( /obj/structure/pipes/standard/simple/hidden/supply, @@ -30894,9 +23334,7 @@ /area/prison/residential/south) "bLM" = ( /obj/structure/machinery/door/window/southleft, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/prison/residential/south) "bLP" = ( /obj/structure/bed/chair/comfy{ @@ -30908,10 +23346,7 @@ /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/prison/residential/south) "bLR" = ( /obj/structure/pipes/standard/manifold/hidden/supply, @@ -30930,37 +23365,25 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/residential/south) "bLV" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 10 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/residential/south) "bLW" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/residential/south) "bLX" = ( /obj/structure/machinery/alarm/almayer{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/residential/south) "bLY" = ( /obj/structure/flora/bush/ausbushes/var3/brflowers, @@ -30972,34 +23395,23 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/residential/south) "bMa" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 6 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/residential/south) "bMd" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/prison/residential/south) "bMe" = ( /obj/structure/machinery/door/window/southright, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/prison/residential/south) "bMf" = ( /obj/structure/machinery/shower{ @@ -31007,19 +23419,14 @@ layer = 3.3 }, /obj/structure/window/reinforced, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/prison/residential/south) "bMg" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/prison/red/east, /area/prison/cellblock/highsec/south/north) "bMh" = ( /turf/closed/wall/r_wall/prison, @@ -31042,35 +23449,23 @@ /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/disposalpipe/segment, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/laundry) "bMp" = ( /obj/effect/decal/cleanable/blood/drip, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/east, /area/prison/research/secret) "bMq" = ( /obj/structure/window/framed/prison/reinforced, /turf/open/floor/plating, /area/prison/security) "bMr" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "rampbottom" - }, +/turf/open/floor/prison/rampbottom/north, /area/prison/security/checkpoint/medsec) "bMs" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 1; - icon_state = "rampbottom" - }, +/turf/open/floor/prison/rampbottom/north, /area/prison/security/checkpoint/medsec) "bMt" = ( /obj/structure/pipes/standard/simple/hidden/supply, @@ -31089,25 +23484,17 @@ pixel_x = 12 }, /obj/structure/machinery/light/small, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/holding/holding2) "bMy" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/holding/holding2) "bMz" = ( -/turf/open/floor/prison{ - icon_state = "bright_clean_marked" - }, +/turf/open/floor/prison/bright_clean_marked, /area/prison/telecomms) "bMA" = ( /obj/structure/pipes/vents/pump{ @@ -31131,41 +23518,26 @@ /area/prison/residential/south) "bMD" = ( /obj/structure/closet/secure_closet/freezer/fridge, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/prison/residential/south) "bME" = ( /obj/structure/machinery/alarm/almayer{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/north, /area/prison/security) "bMF" = ( /obj/structure/closet/secure_closet/security_empty, /obj/structure/window/reinforced, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security) "bMG" = ( /obj/structure/closet/secure_closet/security, /obj/structure/window/reinforced, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security) "bMI" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/toilet/security) "bMJ" = ( /obj/structure/sink{ @@ -31175,10 +23547,7 @@ pixel_y = 28 }, /obj/effect/landmark/corpsespawner/prison_security, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/toilet/security) "bMK" = ( /obj/structure/sink{ @@ -31187,22 +23556,13 @@ /obj/structure/mirror{ pixel_y = 28 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/toilet/security) "bML" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/southwest, /area/prison/monorail/east) "bMM" = ( -/turf/open/floor/prison{ - dir = 6; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/southeast, /area/prison/monorail/east) "bMN" = ( /obj/structure/sink{ @@ -31212,9 +23572,7 @@ /obj/structure/mirror{ pixel_x = -26 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/prison/residential/south) "bMO" = ( /obj/structure/machinery/door/airlock/almayer/generic{ @@ -31223,47 +23581,35 @@ name = "Toilet"; opacity = 0 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/prison/residential/south) "bMQ" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/prison/residential/south) "bMR" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/prison/residential/south) "bMS" = ( /obj/structure/pipes/standard/manifold/hidden/supply, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/prison/residential/south) "bMT" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/prison/residential/south) "bMW" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/prison/residential/south) "bMX" = ( /obj/structure/sink{ @@ -31273,76 +23619,47 @@ /obj/structure/mirror{ pixel_x = 26 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/prison/residential/south) "bMY" = ( /obj/structure/surface/table/reinforced, -/turf/open/floor/prison{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/prison/red/northwest, /area/prison/recreation/highsec/s) "bMZ" = ( /obj/structure/bed/chair/comfy, -/turf/open/floor/prison{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/prison/red/north, /area/prison/recreation/highsec/s) "bNa" = ( -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/northwest, /area/prison/intake) "bNb" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/north, /area/prison/intake) "bNc" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/prison/red/north, /area/prison/recreation/highsec/s) "bNd" = ( /turf/closed/wall/prison, /area/prison/intake) "bNe" = ( /obj/structure/surface/table/reinforced, -/turf/open/floor/prison{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/prison/red/northeast, /area/prison/recreation/highsec/s) "bNf" = ( /obj/structure/window/framed/prison/reinforced, /turf/open/floor/plating, /area/prison/recreation/highsec/s) "bNg" = ( -/turf/open/floor/prison{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/prison/red/northwest, /area/prison/recreation/highsec/s) "bNh" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "redcorner" - }, +/turf/open/floor/prison/redcorner/east, /area/prison/recreation/highsec/s) "bNi" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 8 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "redcorner" - }, +/turf/open/floor/prison/redcorner/north, /area/prison/recreation/highsec/s) "bNj" = ( /obj/structure/pipes/standard/simple/hidden/supply, @@ -31361,35 +23678,23 @@ /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/prison{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/prison/red/northeast, /area/prison/recreation/highsec/s) "bNm" = ( /obj/structure/toilet{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/prison/recreation/highsec/s) "bNn" = ( /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/prison/recreation/highsec/s) "bNo" = ( /obj/structure/closet/wardrobe/orange, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/laundry) "bNq" = ( /obj/structure/machinery/disposal, @@ -31397,10 +23702,7 @@ /obj/structure/machinery/camera/autoname{ network = list("PRISON") }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/laundry) "bNr" = ( /turf/closed/wall/prison, @@ -31414,98 +23716,61 @@ /turf/open/floor/wood, /area/prison/residential/south) "bNt" = ( -/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ - locked = 0 - }, -/turf/open/floor/prison{ - icon_state = "damaged3" - }, +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic, +/turf/open/floor/prison/damaged3, /area/prison/laundry) "bNu" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - icon_state = "damaged2" - }, +/turf/open/floor/prison/damaged2, /area/prison/laundry) "bNv" = ( /turf/closed/wall/r_wall/prison, /area/prison/security/checkpoint/medsec) "bNw" = ( /obj/structure/machinery/vending/security, -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/northwest, /area/prison/security/checkpoint/medsec) "bNx" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/north, /area/prison/security/checkpoint/medsec) "bNy" = ( /obj/effect/landmark/good_item, -/turf/open/floor/prison{ - dir = 5; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/northeast, /area/prison/security/checkpoint/medsec) "bNz" = ( /obj/structure/machinery/computer/cameras{ network = list("PRISON") }, /obj/structure/surface/table/reinforced, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/checkpoint/medsec) "bNA" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/north, /area/prison/medbay) "bNB" = ( -/turf/open/floor/prison{ - dir = 9; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/northwest, /area/prison/security/checkpoint/medsec) "bNC" = ( -/turf/open/floor/prison{ - icon_state = "yellowfull" - }, +/turf/open/floor/prison/yellowfull, /area/prison/security/checkpoint/medsec) "bND" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - icon_state = "yellowfull" - }, +/turf/open/floor/prison/yellowfull, /area/prison/security/checkpoint/medsec) "bNE" = ( -/turf/open/floor/prison{ - dir = 5; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/northeast, /area/prison/security/checkpoint/medsec) "bNF" = ( -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/northwest, /area/prison/security/checkpoint/medsec) "bNG" = ( /obj/structure/machinery/vending/security, -/turf/open/floor/prison{ - dir = 5; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/northeast, /area/prison/security/checkpoint/medsec) "bNH" = ( /turf/closed/wall/r_wall/prison, @@ -31525,39 +23790,24 @@ /turf/open/floor/prison, /area/prison/storage/medsec) "bNL" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/east, /area/prison/storage/medsec) "bNM" = ( -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/northwest, /area/prison/storage/medsec) "bNN" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - dir = 5; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/northeast, /area/prison/storage/medsec) "bNO" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/west, /area/prison/storage/medsec) "bNP" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 10; - icon_state = "damaged1" - }, +/turf/open/floor/prison/damaged1/southwest, /area/prison/storage/medsec) "bNQ" = ( /turf/open/floor/prison, @@ -31581,9 +23831,8 @@ /turf/open/floor/wood, /area/prison/library) "bOa" = ( -/obj/structure/machinery/power/geothermal{ +/obj/structure/machinery/power/reactor/colony{ desc = "A thermoelectric generator fueled by searing hot uranium!"; - fail_rate = 5; name = "thermoelectric generator" }, /turf/open/floor/plating, @@ -31606,10 +23855,7 @@ "bOg" = ( /obj/effect/landmark/crap_item, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/east, /area/prison/hallway/east) "bOh" = ( /obj/structure/bed/stool, @@ -31625,45 +23871,29 @@ /obj/structure/window/reinforced{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security) "bOk" = ( -/turf/open/floor/prison{ - icon_state = "darkredcorners2" - }, +/turf/open/floor/prison/darkredcorners2, /area/prison/security) "bOl" = ( -/turf/open/floor/prison{ - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2, /area/prison/security) "bOm" = ( /turf/closed/wall/prison, /area/prison/recreation/highsec/s) "bOn" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/prison/red/west, /area/prison/recreation/highsec/s) "bOo" = ( /obj/structure/machinery/light{ dir = 4 }, /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/prison/red/east, /area/prison/recreation/highsec/s) "bOp" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkredcorners2" - }, +/turf/open/floor/prison/darkredcorners2/west, /area/prison/security) "bOq" = ( /turf/closed/wall/r_wall/prison, @@ -31691,10 +23921,7 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/east, /area/prison/security) "bOy" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -31705,10 +23932,7 @@ icon_state = "door_open"; name = "Security Restrooms" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/toilet/security) "bOz" = ( /turf/closed/wall/r_wall/prison_unmeltable, @@ -31721,10 +23945,7 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 10 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/toilet/security) "bOD" = ( /turf/closed/wall/r_wall/prison_unmeltable, @@ -31736,27 +23957,18 @@ /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/holding/holding2) "bOI" = ( /obj/structure/pipes/vents/scrubber{ dir = 8 }, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/toilet/security) "bOK" = ( /obj/structure/pipes/vents/pump/on, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/toilet/security) "bOL" = ( /obj/structure/window/framed/prison/reinforced/hull, @@ -31779,41 +23991,27 @@ /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/prison/residential/south) "bOP" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/residential/south) "bOR" = ( /obj/structure/machinery/light, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/residential/south) "bOS" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/residential/south) "bOT" = ( /obj/structure/pipes/vents/scrubber{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/residential/south) "bOV" = ( /obj/structure/toilet{ @@ -31822,9 +24020,7 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/prison/residential/south) "bOW" = ( /obj/structure/machinery/door/airlock/almayer/secure/colony{ @@ -31833,18 +24029,13 @@ name = "Solitary Confinement"; opacity = 0 }, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/prison/cellblock/highsec/south/north) "bOX" = ( /obj/structure/bed/chair/comfy{ dir = 4 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/prison/red/west, /area/prison/recreation/highsec/s) "bOY" = ( /obj/structure/pipes/vents/scrubber, @@ -31857,33 +24048,21 @@ /obj/structure/bed/chair/comfy{ dir = 8 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/prison/red/east, /area/prison/recreation/highsec/s) "bPc" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/recreation/highsec/s) "bPe" = ( /obj/structure/machinery/door/airlock/almayer/medical/glass/colony{ dir = 2; name = "Toilet" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/prison/recreation/highsec/s) "bPf" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/laundry) "bPg" = ( /obj/structure/machinery/door/airlock/prison{ @@ -31891,59 +24070,39 @@ icon_state = "door_open"; opacity = 0 }, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/prison/cellblock/highsec/south/north) "bPh" = ( /obj/structure/pipes/vents/pump/on, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/laundry) "bPi" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/laundry) "bPj" = ( /obj/structure/machinery/light{ dir = 1 }, /obj/structure/pipes/vents/pump/on, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/laundry) "bPk" = ( /obj/item/shard, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/laundry) "bPo" = ( /obj/structure/machinery/alarm/almayer{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/laundry) "bPp" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk{ dir = 4 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/west, /area/prison/security/checkpoint/medsec) "bPq" = ( /obj/structure/pipes/vents/pump/on, @@ -31957,33 +24116,21 @@ /obj/structure/bed/chair/office/dark{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/east, /area/prison/security/checkpoint/medsec) "bPs" = ( /obj/structure/machinery/computer/secure_data, /obj/structure/surface/table/reinforced, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/checkpoint/medsec) "bPt" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/west, /area/prison/security/checkpoint/medsec) "bPy" = ( /obj/structure/bed/chair/office/dark{ dir = 8 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/west, /area/prison/security/checkpoint/medsec) "bPz" = ( /obj/structure/pipes/vents/pump/on, @@ -31992,17 +24139,11 @@ "bPA" = ( /obj/structure/surface/rack, /obj/effect/landmark/item_pool_spawner/prison_lock, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/east, /area/prison/security/checkpoint/medsec) "bPC" = ( /obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/east, /area/prison/storage/medsec) "bPD" = ( /obj/structure/machinery/power/apc{ @@ -32010,24 +24151,15 @@ pixel_x = -24; start_charge = 0 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/west, /area/prison/storage/medsec) "bPF" = ( -/turf/open/floor/prison{ - dir = 9; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/northwest, /area/prison/cellblock/protective) "bPG" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 5; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/northeast, /area/prison/cellblock/protective) "bPH" = ( /obj/structure/bed/stool, @@ -32055,10 +24187,7 @@ capacity = 1e+006; dir = 1 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/prison/engineering) "bPQ" = ( /turf/closed/wall/prison, @@ -32147,27 +24276,18 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/west, /area/prison/security) "bQh" = ( /obj/structure/bed/chair/office/dark{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/east, /area/prison/security) "bQi" = ( /obj/structure/surface/table/reinforced, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security) "bQj" = ( /turf/closed/wall/r_wall/prison, @@ -32176,10 +24296,7 @@ /obj/structure/bed/chair/office/dark{ dir = 8 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/west, /area/prison/security) "bQl" = ( /obj/structure/pipes/vents/pump{ @@ -32199,10 +24316,7 @@ pixel_x = -24; start_charge = 0 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/toilet/security) "bQo" = ( /obj/structure/machinery/cm_vending/sorted/medical/wall_med/limited{ @@ -32211,19 +24325,13 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 5 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/toilet/security) "bQp" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/toilet/security) "bQq" = ( /obj/structure/machinery/cm_vending/sorted/medical/wall_med/limited{ @@ -32232,10 +24340,7 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/toilet/security) "bQr" = ( /obj/structure/machinery/light{ @@ -32244,28 +24349,19 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 9 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/toilet/security) "bQs" = ( /obj/effect/landmark/hunter_primary, /obj/effect/landmark/queen_spawn, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/residential/south) "bQt" = ( /obj/structure/machinery/door/airlock/almayer/medical/glass/colony{ dir = 2; name = "Garden" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/residential/south) "bQu" = ( /obj/structure/machinery/door/airlock/almayer/medical/glass/colony{ @@ -32273,18 +24369,12 @@ name = "Garden" }, /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/residential/south) "bQv" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/prison/red/east, /area/prison/cellblock/highsec/south/north) "bQw" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ @@ -32303,84 +24393,56 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/recreation/highsec/s) "bQB" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/prison/red/east, /area/prison/recreation/highsec/s) "bQC" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/prison/recreation/highsec/s) "bQD" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/prison/red/west, /area/prison/recreation/highsec/s) "bQE" = ( /obj/structure/machinery/washing_machine, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/prison/residential/south) "bQF" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 }, /obj/item/ammo_casing, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/recreation/highsec/s) "bQG" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/prison/recreation/highsec/s) "bQH" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/prison/recreation/highsec/s) "bQI" = ( /obj/structure/sink{ dir = 4; pixel_x = 12 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/prison/recreation/highsec/s) "bQJ" = ( /obj/structure/surface/rack, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/laundry) "bQK" = ( /obj/structure/surface/rack, @@ -32388,55 +24450,34 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 5 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/laundry) "bQL" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/laundry) "bQM" = ( /obj/structure/surface/rack, /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/laundry) "bQN" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/laundry) "bQO" = ( /obj/effect/landmark/monkey_spawn, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/laundry) "bQP" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/laundry) "bQQ" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/recreation/highsec/s) "bQR" = ( /obj/structure/machinery/power/apc{ @@ -32444,38 +24485,27 @@ pixel_x = 28; start_charge = 0 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/laundry) "bQS" = ( /obj/structure/machinery/photocopier, /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/west, /area/prison/security/checkpoint/medsec) "bQT" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "darkredcorners2" - }, +/turf/open/floor/prison/darkredcorners2, /area/prison/security/checkpoint/medsec) "bQU" = ( /obj/structure/pipes/vents/scrubber{ dir = 8 }, -/turf/open/floor/prison{ - dir = 6; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/southeast, /area/prison/security/checkpoint/medsec) "bQV" = ( /obj/structure/surface/table/reinforced, @@ -32484,24 +24514,15 @@ pixel_y = 8 }, /obj/effect/landmark/item_pool_spawner/prison_lock, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/checkpoint/medsec) "bQW" = ( /obj/structure/machinery/light, -/turf/open/floor/prison{ - dir = 10; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/southwest, /area/prison/security/checkpoint/medsec) "bQX" = ( /obj/structure/machinery/light, -/turf/open/floor/prison{ - dir = 6; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/southeast, /area/prison/security/checkpoint/medsec) "bQY" = ( /obj/structure/surface/table/reinforced, @@ -32513,19 +24534,13 @@ pixel_x = 9; pixel_y = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/checkpoint/medsec) "bQZ" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 6 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/west, /area/prison/security/checkpoint/medsec) "bRa" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ @@ -32534,10 +24549,7 @@ /turf/open/floor/prison, /area/prison/security/checkpoint/medsec) "bRb" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/east, /area/prison/security/checkpoint/medsec) "bRc" = ( /obj/structure/machinery/light{ @@ -32555,10 +24567,7 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/east, /area/prison/storage/medsec) "bRf" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -32567,28 +24576,19 @@ /obj/structure/machinery/door/airlock/almayer/engineering/colony{ name = "Medium-Security Storage" }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/prison/storage/medsec) "bRg" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/west, /area/prison/storage/medsec) "bRh" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 1 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/east, /area/prison/storage/medsec) "bRi" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ @@ -32599,24 +24599,15 @@ "bRj" = ( /obj/structure/surface/table/almayer, /obj/item/newspaper, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/residential/north) "bRk" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/west, /area/prison/cellblock/protective) "bRl" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/east, /area/prison/cellblock/protective) "bRm" = ( /obj/structure/machinery/light{ @@ -32649,20 +24640,14 @@ /obj/structure/machinery/power/terminal{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/prison/engineering) "bRs" = ( /obj/structure/machinery/power/terminal{ dir = 1 }, /obj/item/clothing/gloves/yellow, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/prison/engineering) "bRu" = ( /obj/structure/surface/table/reinforced, @@ -32741,45 +24726,32 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2, /area/prison/intake) "bRI" = ( /obj/structure/pipes/vents/scrubber, -/turf/open/floor/prison{ - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2, /area/prison/intake) "bRJ" = ( /obj/structure/pipes/vents/pump/on, -/turf/open/floor/prison{ - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2, /area/prison/intake) "bRK" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2, /area/prison/intake) "bRM" = ( /turf/closed/wall/prison, /area/prison/engineering/atmos) "bRN" = ( /obj/structure/bed/chair/office/dark, -/turf/open/floor/prison{ - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2, /area/prison/security) "bRO" = ( /obj/structure/filingcabinet/chestdrawer, -/turf/open/floor/prison{ - dir = 6; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/southeast, /area/prison/security) "bRW" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony{ @@ -32809,10 +24781,7 @@ /area/prison/cellblock/highsec/south/north) "bSd" = ( /obj/effect/landmark/corpsespawner/prison_security, -/turf/open/floor/prison{ - dir = 4; - icon_state = "redcorner" - }, +/turf/open/floor/prison/redcorner/east, /area/prison/cellblock/highsec/south/north) "bSf" = ( /obj/structure/machinery/light/small{ @@ -32825,10 +24794,7 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/prison/red/west, /area/prison/recreation/highsec/s) "bSi" = ( /obj/structure/pipes/standard/simple/hidden/supply, @@ -32849,59 +24815,39 @@ dir = 2; name = "South High-Security Recreation" }, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/prison/recreation/highsec/s) "bSn" = ( /obj/effect/landmark/monkey_spawn, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/recreation/highsec/s) "bSo" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/recreation/highsec/s) "bSp" = ( /obj/effect/landmark/corpsespawner/prison_security, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/prison/recreation/highsec/s) "bSq" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/laundry) "bSr" = ( /obj/structure/surface/rack, /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/laundry) "bSs" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/laundry) "bSt" = ( /obj/structure/surface/rack, @@ -32909,25 +24855,16 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/laundry) "bSu" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/laundry) "bSv" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/prison/red/east, /area/prison/recreation/highsec/s) "bSw" = ( /obj/structure/surface/rack, @@ -32939,20 +24876,14 @@ dir = 1; icon_state = "pipe-c" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/laundry) "bSx" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, /obj/structure/pipes/standard/manifold/fourway/hidden/supply, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/laundry) "bSy" = ( /obj/structure/surface/rack, @@ -32962,10 +24893,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/laundry) "bSz" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -32974,10 +24902,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/laundry) "bSA" = ( /obj/item/clothing/under/color/orange, @@ -32988,33 +24913,21 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 9 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/laundry) "bSB" = ( /obj/structure/filingcabinet, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/southwest, /area/prison/security/checkpoint/medsec) "bSC" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 6; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/southeast, /area/prison/security/checkpoint/medsec) "bSD" = ( /obj/structure/surface/table/reinforced, /obj/item/device/flashlight/lamp, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/checkpoint/medsec) "bSE" = ( /obj/structure/surface/table/reinforced, @@ -33022,10 +24935,7 @@ pixel_x = -3; pixel_y = 7 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/checkpoint/medsec) "bSF" = ( /turf/open/floor/prison, @@ -33037,26 +24947,18 @@ /area/prison/security/checkpoint/medsec) "bSH" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/southwest, /area/prison/security/checkpoint/medsec) "bSI" = ( /obj/structure/machinery/light, /obj/structure/pipes/vents/scrubber{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2, /area/prison/security/checkpoint/medsec) "bSJ" = ( /obj/structure/filingcabinet, -/turf/open/floor/prison{ - dir = 6; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/southeast, /area/prison/security/checkpoint/medsec) "bSK" = ( /obj/structure/pipes/standard/simple/hidden/supply, @@ -33064,24 +24966,15 @@ /area/prison/storage/medsec) "bSL" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/east, /area/prison/storage/medsec) "bSM" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/southwest, /area/prison/cellblock/protective) "bSN" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 6; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/southeast, /area/prison/cellblock/protective) "bSO" = ( /obj/structure/bookcase, @@ -33230,30 +25123,21 @@ "bTm" = ( /obj/structure/surface/table/reinforced, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/intake) "bTn" = ( /obj/structure/surface/table/reinforced, /obj/item/paper/prison_station/inmate_handbook, /obj/item/paper/prison_station/inmate_handbook, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/intake) "bTo" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/intake) "bTp" = ( /obj/structure/disposalpipe/junction{ @@ -33262,10 +25146,7 @@ /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/intake) "bTq" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -33274,43 +25155,28 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/intake) "bTr" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/intake) "bTt" = ( /obj/structure/surface/table/reinforced, /obj/item/paper/prison_station/inmate_handbook, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/intake) "bTu" = ( /obj/structure/machinery/computer/secure_data, /obj/structure/surface/table/reinforced, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security) "bTv" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security) "bTw" = ( /obj/structure/surface/table/reinforced, @@ -33318,15 +25184,10 @@ pixel_x = 9; pixel_y = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security) "bTx" = ( -/turf/open/floor/prison{ - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2, /area/prison/intake) "bTy" = ( /obj/structure/surface/table/reinforced, @@ -33334,10 +25195,7 @@ pixel_x = -3; pixel_y = 7 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security) "bTz" = ( /obj/structure/toilet{ @@ -33346,10 +25204,7 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/prison/toilet/security) "bTA" = ( /obj/item/reagent_container/glass/bucket/mopbucket, @@ -33371,9 +25226,7 @@ /obj/effect/decal/siding/wood_siding{ icon_state = "wood_siding12" }, -/turf/open/floor{ - icon_state = "asteroid" - }, +/turf/open/floor/asteroid, /area/prison/residential/south) "bTF" = ( /obj/structure/flora/tree/dead/tree_1, @@ -33383,9 +25236,7 @@ /obj/effect/decal/siding/wood_siding{ icon_state = "wood_siding10" }, -/turf/open/floor{ - icon_state = "asteroid" - }, +/turf/open/floor/asteroid, /area/prison/residential/south) "bTH" = ( /obj/structure/bed/chair/comfy{ @@ -33421,18 +25272,14 @@ /area/prison/maintenance/residential/access/south) "bTQ" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/prison/cellblock/highsec/south/north) "bTR" = ( /obj/structure/window/framed/prison/reinforced/hull, /turf/open/floor/plating, /area/prison/maintenance/residential/access/south) "bTS" = ( -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/prison/cellblock/highsec/south/north) "bTT" = ( /obj/structure/pipes/vents/pump{ @@ -33442,38 +25289,26 @@ /area/prison/recreation/highsec/s) "bTU" = ( /obj/effect/landmark/good_item, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/recreation/highsec/s) "bTV" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/laundry) "bTW" = ( /obj/structure/pipes/vents/scrubber{ dir = 1 }, /obj/effect/landmark/hunter_primary, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/laundry) "bTY" = ( /obj/structure/pipes/vents/scrubber{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/laundry) "bTZ" = ( /obj/structure/pipes/standard/simple/hidden/supply, @@ -33482,10 +25317,7 @@ dir = 2; name = "Security Booth" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/checkpoint/medsec) "bUa" = ( /obj/structure/window/framed/prison/reinforced, @@ -33514,10 +25346,7 @@ dir = 2; name = "Security Booth" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/checkpoint/medsec) "bUe" = ( /obj/structure/pipes/vents/pump{ @@ -33526,18 +25355,12 @@ /turf/open/floor/prison, /area/prison/storage/medsec) "bUf" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "rampbottom" - }, +/turf/open/floor/prison/rampbottom/north, /area/prison/cellblock/protective) "bUg" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 1; - icon_state = "rampbottom" - }, +/turf/open/floor/prison/rampbottom/north, /area/prison/cellblock/protective) "bUh" = ( /obj/structure/pipes/vents/pump{ @@ -33674,10 +25497,7 @@ /area/prison/engineering/atmos) "bUG" = ( /obj/structure/machinery/computer/secure_data, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/west, /area/prison/intake) "bUH" = ( /obj/structure/bed/chair/office/dark{ @@ -33692,10 +25512,7 @@ /area/prison/intake) "bUJ" = ( /obj/structure/machinery/computer/secure_data, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/east, /area/prison/intake) "bUK" = ( /obj/effect/landmark/corpsespawner/prison_security, @@ -33709,33 +25526,23 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security) "bUP" = ( /obj/structure/flora/pottedplant, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/residential/south) "bUQ" = ( /obj/effect/decal/siding/wood_siding{ icon_state = "wood_siding3" }, -/turf/open/floor{ - icon_state = "asteroid" - }, +/turf/open/floor/asteroid, /area/prison/residential/south) "bUR" = ( /obj/effect/decal/siding/wood_siding{ icon_state = "wood_siding6" }, -/turf/open/floor{ - icon_state = "asteroid" - }, +/turf/open/floor/asteroid, /area/prison/residential/south) "bUS" = ( /obj/structure/shuttle/diagonal{ @@ -33748,10 +25555,7 @@ /obj/structure/flora/pottedplant{ icon_state = "pottedplant_10" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/residential/south) "bUV" = ( /obj/structure/machinery/light{ @@ -33776,20 +25580,14 @@ /obj/effect/decal/warning_stripes{ icon_state = "N" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/maintenance/residential/access/south) "bVa" = ( /obj/structure/monorail, /obj/effect/decal/warning_stripes{ icon_state = "N" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/maintenance/residential/access/south) "bVb" = ( /obj/effect/decal/warning_stripes{ @@ -33802,10 +25600,7 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/maintenance/residential/access/south) "bVc" = ( /obj/effect/decal/warning_stripes{ @@ -33825,96 +25620,61 @@ /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/prison/cellblock/highsec/south/north) "bVf" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/prison/red/east, /area/prison/cellblock/highsec/south/north) "bVg" = ( /obj/structure/bed, -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/west, /area/prison/cellblock/highsec/south/north) "bVh" = ( /obj/structure/surface/table/reinforced, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/highsec/south/north) "bVi" = ( /obj/structure/surface/table/reinforced, -/turf/open/floor/prison{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/prison/red/southwest, /area/prison/recreation/highsec/s) "bVj" = ( /obj/structure/bed/chair/comfy{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "red" - }, +/turf/open/floor/prison/red, /area/prison/recreation/highsec/s) "bVk" = ( /obj/structure/machinery/light, -/turf/open/floor/prison{ - icon_state = "red" - }, +/turf/open/floor/prison/red, /area/prison/recreation/highsec/s) "bVl" = ( /obj/structure/surface/table/reinforced, -/turf/open/floor/prison{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/prison/red/southeast, /area/prison/recreation/highsec/s) "bVm" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/prison/red/southwest, /area/prison/recreation/highsec/s) "bVn" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "redcorner" - }, +/turf/open/floor/prison/redcorner/west, /area/prison/recreation/highsec/s) "bVo" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "redcorner" - }, +/turf/open/floor/prison/redcorner, /area/prison/recreation/highsec/s) "bVp" = ( /obj/structure/pipes/vents/scrubber{ dir = 8 }, -/turf/open/floor/prison{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/prison/red/southeast, /area/prison/recreation/highsec/s) "bVq" = ( /obj/structure/machinery/light/small, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/prison/recreation/highsec/s) "bVr" = ( /obj/structure/machinery/door/airlock/almayer/generic{ @@ -33923,10 +25683,7 @@ name = "Toilet"; opacity = 0 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/holding/holding2) "bVs" = ( /obj/structure/machinery/door/airlock/almayer/generic{ @@ -33936,16 +25693,11 @@ name = "Toilet"; opacity = 0 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/prison/residential/south) "bVt" = ( /obj/structure/machinery/washing_machine, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/laundry) "bVu" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony, @@ -33957,9 +25709,7 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/prison{ - icon_state = "yellowfull" - }, +/turf/open/floor/prison/yellowfull, /area/prison/security/checkpoint/medsec) "bVw" = ( /obj/structure/machinery/door/airlock/almayer/secure/colony{ @@ -33978,9 +25728,7 @@ dir = 1; icon_state = "pipe-c" }, -/turf/open/floor/prison{ - icon_state = "yellowfull" - }, +/turf/open/floor/prison/yellowfull, /area/prison/security/checkpoint/medsec) "bVy" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -33989,9 +25737,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "yellowfull" - }, +/turf/open/floor/prison/yellowfull, /area/prison/security/checkpoint/medsec) "bVz" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -34003,9 +25749,7 @@ /obj/structure/machinery/alarm/almayer{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "yellowfull" - }, +/turf/open/floor/prison/yellowfull, /area/prison/security/checkpoint/medsec) "bVA" = ( /obj/structure/machinery/light{ @@ -34017,10 +25761,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/northwest, /area/prison/security/checkpoint/medsec) "bVB" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -34029,10 +25770,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/north, /area/prison/security/checkpoint/medsec) "bVC" = ( /obj/structure/pipes/standard/manifold/fourway/hidden/supply, @@ -34040,35 +25778,25 @@ dir = 8; icon_state = "pipe-c" }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/north, /area/prison/security/checkpoint/medsec) "bVD" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 5; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/northeast, /area/prison/security/checkpoint/medsec) "bVE" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "yellowfull" - }, +/turf/open/floor/prison/yellowfull, /area/prison/security/checkpoint/medsec) "bVF" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 9 }, -/turf/open/floor/prison{ - icon_state = "yellowfull" - }, +/turf/open/floor/prison/yellowfull, /area/prison/security/checkpoint/medsec) "bVG" = ( /obj/structure/surface/table/reinforced, @@ -34085,38 +25813,23 @@ /area/prison/security/checkpoint/medsec) "bVJ" = ( /obj/structure/largecrate/random, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/east, /area/prison/storage/medsec) "bVK" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/southwest, /area/prison/storage/medsec) "bVL" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 6; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/southeast, /area/prison/storage/medsec) "bVM" = ( /obj/structure/machinery/alarm/almayer{ dir = 1 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "bluefull" - }, +/turf/open/floor/prison/bluefull/west, /area/prison/cellblock/protective) "bVN" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/north, /area/prison/cellblock/protective) "bVO" = ( /obj/structure/machinery/power/port_gen/pacman/super, @@ -34129,6 +25842,7 @@ /obj/structure/machinery/light/small{ dir = 4 }, +/obj/structure/machinery/fuelcell_recycler/full, /turf/open/floor/plating, /area/prison/engineering) "bVS" = ( @@ -34153,41 +25867,30 @@ dir = 8 }, /obj/structure/machinery/meter, -/turf/open/floor/prison{ - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/prison/darkyellowcorners2, /area/prison/engineering/atmos) "bVW" = ( /obj/structure/pipes/standard/simple/visible/yellow{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2, /area/prison/engineering/atmos) "bVX" = ( /obj/structure/pipes/standard/manifold/visible/yellow, -/turf/open/floor/prison{ - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2, /area/prison/engineering/atmos) "bVY" = ( /obj/structure/pipes/standard/simple/visible/yellow{ dir = 4 }, /obj/structure/machinery/meter, -/turf/open/floor/prison{ - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2, /area/prison/engineering/atmos) "bVZ" = ( /obj/structure/pipes/standard/simple/visible/yellow{ dir = 10 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/prison/darkyellowcorners2/west, /area/prison/engineering/atmos) "bWb" = ( /obj/structure/pipes/standard/simple/visible/supply, @@ -34217,10 +25920,7 @@ /obj/structure/pipes/vents/scrubber{ dir = 4 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/west, /area/prison/hallway/east) "bWh" = ( /obj/structure/disposalpipe/segment, @@ -34233,10 +25933,7 @@ }, /obj/effect/landmark/corpsespawner/prison_security, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/east, /area/prison/hallway/east) "bWj" = ( /obj/structure/machinery/power/apc{ @@ -34244,39 +25941,25 @@ pixel_x = -24; start_charge = 0 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/southwest, /area/prison/intake) "bWl" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/disposalpipe/segment, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2, /area/prison/intake) "bWm" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkredcorners2" - }, +/turf/open/floor/prison/darkredcorners2/north, /area/prison/security) "bWn" = ( /obj/structure/bed/chair/office/light{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/north, /area/prison/security) "bWo" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkredcorners2" - }, +/turf/open/floor/prison/darkredcorners2/east, /area/prison/security) "bWp" = ( /obj/structure/pipes/standard/simple/hidden/supply, @@ -34355,39 +26038,27 @@ icon_state = "W" }, /obj/structure/pipes/standard/manifold/fourway/hidden/supply, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/maintenance/residential/access/south) "bWG" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/maintenance/residential/access/south) "bWH" = ( /obj/structure/monorail, /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/maintenance/residential/access/south) "bWI" = ( /obj/effect/decal/warning_stripes{ icon_state = "E" }, /obj/structure/pipes/standard/manifold/fourway/hidden/supply, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/maintenance/residential/access/south) "bWJ" = ( /obj/effect/decal/warning_stripes{ @@ -34408,9 +26079,7 @@ /obj/structure/pipes/vents/scrubber{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/prison/cellblock/highsec/south/north) "bWP" = ( /obj/structure/machinery/light{ @@ -34419,10 +26088,7 @@ /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/prison/red/east, /area/prison/cellblock/highsec/south/north) "bWQ" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony{ @@ -34436,30 +26102,21 @@ dir = 4; network = list("PRISON") }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/west, /area/prison/security/checkpoint/medsec) "bWS" = ( /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/plating/plating_catwalk/prison, /area/prison/security/checkpoint/medsec) "bWT" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/east, /area/prison/security/checkpoint/medsec) "bWU" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony{ dir = 2; name = "Medium-Security Storage" }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/prison/storage/medsec) "bWV" = ( /obj/structure/pipes/standard/simple/hidden/supply, @@ -34467,31 +26124,20 @@ dir = 2; name = "Medium-Security Storage" }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/prison/storage/medsec) "bWW" = ( /obj/structure/surface/table/reinforced, -/turf/open/floor/prison{ - dir = 8; - icon_state = "bluefull" - }, +/turf/open/floor/prison/bluefull/west, /area/prison/cellblock/protective) "bWX" = ( /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/west, /area/prison/cellblock/protective) "bWY" = ( -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/prison/cellblock/protective) "bWZ" = ( /obj/effect/landmark/survivor_spawner, @@ -34521,17 +26167,11 @@ /area/prison/engineering) "bXe" = ( /obj/structure/machinery/power/monitor, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/prison/engineering) "bXf" = ( /obj/structure/machinery/cm_vending/sorted/tech/tool_storage, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/prison/engineering) "bXg" = ( /obj/structure/pipes/standard/simple/hidden/supply, @@ -34546,25 +26186,16 @@ /turf/open/floor/plating, /area/prison/engineering) "bXj" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/east, /area/prison/engineering) "bXk" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony{ name = "Atmospherics" }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/prison/engineering) "bXl" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/west, /area/prison/engineering/atmos) "bXm" = ( /obj/structure/machinery/power/apc{ @@ -34575,51 +26206,33 @@ /area/prison/engineering/atmos) "bXn" = ( /obj/structure/pipes/binary/pump/high_power/on, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/east, /area/prison/engineering/atmos) "bXo" = ( /obj/structure/machinery/pipedispenser, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/prison/engineering/atmos) "bXp" = ( /obj/structure/closet/firecloset/full, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/prison/engineering/atmos) "bXq" = ( /obj/structure/surface/table/reinforced, /obj/item/storage/toolbox/mechanical, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/prison/engineering/atmos) "bXr" = ( /obj/structure/machinery/computer/atmos_alert, /obj/effect/decal/cleanable/dirt, /obj/structure/surface/table/reinforced, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/prison/engineering/atmos) "bXs" = ( /obj/structure/pipes/standard/simple/visible/yellow{ dir = 5 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/west, /area/prison/engineering/atmos) "bXt" = ( /obj/structure/pipes/binary/pump/high_power{ @@ -34661,10 +26274,7 @@ /obj/structure/disposalpipe/trunk{ dir = 8 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/east, /area/prison/hallway/east) "bXB" = ( /obj/structure/pipes/standard/simple/hidden/supply, @@ -34673,28 +26283,19 @@ dir = 2; name = "Intake Processing" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security) "bXC" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ dir = 2; name = "Intake Processing" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security) "bXD" = ( /obj/structure/surface/table/reinforced, /obj/item/reagent_container/spray/pepper, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security) "bXE" = ( /obj/structure/machinery/computer/cameras{ @@ -34740,29 +26341,20 @@ icon_state = "SE-out" }, /obj/structure/machinery/light, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/maintenance/residential/access/south) "bXM" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/maintenance/residential/access/south) "bXN" = ( /obj/structure/monorail, /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/maintenance/residential/access/south) "bXO" = ( /obj/effect/decal/warning_stripes{ @@ -34775,10 +26367,7 @@ icon_state = "SW-out" }, /obj/structure/machinery/light, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/maintenance/residential/access/south) "bXP" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -34793,10 +26382,7 @@ /turf/open/floor/plating, /area/prison/maintenance/residential/access/south) "bXU" = ( -/turf/open/floor/prison{ - dir = 6; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/southeast, /area/prison/intake) "bXW" = ( /obj/structure/surface/table/reinforced, @@ -34814,26 +26400,19 @@ /obj/structure/toilet{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/prison/recreation/medsec) "bYa" = ( /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/prison/recreation/medsec) "bYb" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/disposalpipe/segment, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/east, /area/prison/cellblock/protective) "bYc" = ( /obj/effect/spawner/random/toolbox, @@ -34862,10 +26441,7 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/prison/engineering) "bYh" = ( /turf/closed/wall/r_wall/prison_unmeltable, @@ -34874,10 +26450,7 @@ /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/prison/engineering) "bYj" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -34911,59 +26484,38 @@ /area/prison/engineering/atmos) "bYo" = ( /obj/structure/pipes/vents/scrubber, -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/northwest, /area/prison/security) "bYp" = ( /obj/structure/pipes/vents/pump/on, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/north, /area/prison/security) "bYq" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/north, /area/prison/security) "bYr" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/north, /area/prison/security) "bYs" = ( /obj/structure/reagent_dispensers/peppertank{ pixel_y = 30 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/north, /area/prison/security) "bYt" = ( /obj/structure/reagent_dispensers/peppertank{ pixel_y = 30 }, -/turf/open/floor/prison{ - dir = 5; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/northeast, /area/prison/security) "bYu" = ( /obj/structure/pipes/vents/pump/on, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkredcorners2" - }, +/turf/open/floor/prison/darkredcorners2/east, /area/prison/security) "bYv" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -34974,33 +26526,23 @@ "bYw" = ( /obj/structure/surface/table/reinforced, /obj/item/device/taperecorder, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security) "bYx" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/prison/red/west, /area/prison/cellblock/highsec/south/north) "bYy" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 }, /obj/effect/alien/weeds/node, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/prison/cellblock/highsec/south/north) "bYz" = ( -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/prison/cellblock/highsec/south/south) "bYA" = ( /obj/structure/surface/table/woodentable, @@ -35064,34 +26606,24 @@ /turf/open/floor/prison, /area/prison/recreation/medsec) "bYT" = ( -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/prison/recreation/medsec) "bYU" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/prison/recreation/medsec) "bYV" = ( /obj/structure/pipes/vents/pump/on, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/prison/recreation/medsec) "bYW" = ( /obj/structure/bed/chair/comfy{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/prison/recreation/medsec) "bYX" = ( -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/prison/recreation/medsec) "bYY" = ( /obj/effect/decal/cleanable/blood, @@ -35142,17 +26674,11 @@ /area/prison/engineering) "bZj" = ( /obj/structure/machinery/vending/coffee, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/prison/hallway/engineering) "bZk" = ( /obj/structure/pipes/standard/simple/hidden/yellow, -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/northwest, /area/prison/hallway/engineering) "bZl" = ( /obj/structure/machinery/power/apc{ @@ -35160,82 +26686,49 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/prison/hallway/engineering) "bZm" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/prison/hallway/engineering) "bZn" = ( /obj/structure/machinery/alarm/almayer{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/prison/hallway/engineering) "bZo" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/prison/hallway/engineering) "bZp" = ( /turf/closed/wall/prison, /area/prison/security) "bZq" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/prison/hallway/engineering) "bZr" = ( /obj/structure/pipes/vents/scrubber, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/prison/hallway/engineering) "bZs" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/prison/darkyellowcorners2/east, /area/prison/hallway/engineering) "bZt" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/hallway/engineering) "bZu" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/hallway/engineering) "bZv" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "rampbottom" - }, +/turf/open/floor/prison/rampbottom/west, /area/prison/hallway/engineering) "bZw" = ( -/turf/open/floor/prison{ - dir = 5; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/northeast, /area/prison/hallway/engineering) "bZx" = ( /obj/structure/window/framed/prison/reinforced, @@ -35258,10 +26751,7 @@ dir = 4 }, /obj/structure/pipes/standard/manifold/hidden/supply, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security) "bZA" = ( /obj/structure/window/framed/prison/reinforced/hull, @@ -35323,10 +26813,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/east, /area/prison/security) "bZI" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -35335,10 +26822,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security) "bZK" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -35351,20 +26835,14 @@ /turf/open/floor/prison, /area/prison/security) "bZM" = ( -/turf/open/floor/prison{ - dir = 5; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/northeast, /area/prison/cellblock/mediumsec/south) "bZN" = ( /obj/structure/pipes/standard/manifold/hidden/supply, /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/west, /area/prison/security) "bZO" = ( /obj/structure/window/framed/prison/cell, @@ -35381,50 +26859,32 @@ /turf/open/floor/plating/plating_catwalk/prison, /area/prison/security) "bZQ" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/highsec/south/south) "bZR" = ( /obj/structure/sink{ dir = 8; pixel_x = -12 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/highsec/south/south) "bZS" = ( /obj/structure/bed, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/highsec/south/south) "bZT" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/prison/red/west, /area/prison/cellblock/highsec/south/south) "bZU" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/prison/red/east, /area/prison/cellblock/highsec/south/south) "bZV" = ( /obj/structure/sink{ dir = 4; pixel_x = 11 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/highsec/south/south) "bZW" = ( /turf/closed/wall/r_wall/prison, @@ -35432,10 +26892,7 @@ "bZX" = ( /obj/structure/surface/table/reinforced, /obj/item/storage/box/handcuffs, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security) "bZY" = ( /obj/structure/machinery/light{ @@ -35458,22 +26915,13 @@ /turf/open/floor/plating, /area/prison/maintenance/residential/access/south) "cad" = ( -/turf/open/floor/prison{ - dir = 9; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/northwest, /area/prison/cellblock/mediumsec/north) "cae" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/north, /area/prison/cellblock/mediumsec/north) "caf" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "yellowcorner" - }, +/turf/open/floor/prison/yellowcorner/east, /area/prison/cellblock/mediumsec/north) "cag" = ( /turf/open/floor/plating/plating_catwalk/prison, @@ -35484,62 +26932,39 @@ /area/prison/cellblock/mediumsec/north) "cai" = ( /obj/structure/pipes/vents/pump/on, -/turf/open/floor/prison{ - dir = 1; - icon_state = "yellowcorner" - }, +/turf/open/floor/prison/yellowcorner/north, /area/prison/cellblock/mediumsec/north) "caj" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/north, /area/prison/cellblock/mediumsec/north) "cak" = ( /obj/structure/pipes/vents/scrubber, -/turf/open/floor/prison{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/north, /area/prison/cellblock/mediumsec/north) "cal" = ( /obj/effect/landmark/monkey_spawn, -/turf/open/floor/prison{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/north, /area/prison/cellblock/mediumsec/north) "cam" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 5; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/northeast, /area/prison/cellblock/mediumsec/north) "cao" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/west, /area/prison/cellblock/mediumsec/north) "caq" = ( /obj/structure/bed, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/prison/cellblock/mediumsec/north) "car" = ( /obj/structure/machinery/door/poddoor/almayer/open{ name = "emergency lockdown"; use_power = 0 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/cellblock/protective) "cau" = ( /obj/structure/pipes/standard/simple/hidden/supply, @@ -35552,17 +26977,13 @@ /turf/open/floor/plating/plating_catwalk/prison, /area/prison/cellblock/highsec/south/south) "cay" = ( -/turf/open/floor/prison{ - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe, /area/prison/cellblock/highsec/south/south) "caz" = ( /obj/structure/toilet{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe, /area/prison/cellblock/highsec/south/south) "caA" = ( /obj/structure/machinery/light{ @@ -35572,9 +26993,7 @@ /area/prison/recreation/medsec) "caB" = ( /obj/effect/landmark/monkey_spawn, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/prison/recreation/medsec) "caC" = ( /obj/structure/window/framed/prison/reinforced, @@ -35584,25 +27003,19 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 5 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/prison/recreation/medsec) "caE" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/prison/recreation/medsec) "caF" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/prison/recreation/medsec) "caG" = ( /turf/open/floor/prison, @@ -35619,27 +27032,19 @@ /obj/structure/disposalpipe/trunk{ dir = 4 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "bluefull" - }, +/turf/open/floor/prison/bluefull/west, /area/prison/cellblock/protective) "caJ" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/west, /area/prison/cellblock/protective) "caK" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/prison/cellblock/protective) "caL" = ( /obj/structure/machinery/light{ @@ -35650,10 +27055,7 @@ dir = 1; icon_state = "pipe-j2" }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/east, /area/prison/cellblock/protective) "caM" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ @@ -35694,10 +27096,7 @@ dir = 4; icon_state = "pipe-c" }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/prison/hallway/engineering) "caT" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -35706,10 +27105,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/prison/hallway/engineering) "caU" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -35719,10 +27115,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/prison/darkyellowcorners2/east, /area/prison/hallway/engineering) "caV" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -35746,31 +27139,22 @@ /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/east, /area/prison/cellblock/mediumsec/west) "caZ" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/prison/cellblock/highsec/south/north) "cba" = ( -/turf/open/floor/prison{ - icon_state = "red" - }, +/turf/open/floor/prison/red, /area/prison/cellblock/highsec/south/south) "cbb" = ( /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "red" - }, +/turf/open/floor/prison/red, /area/prison/cellblock/highsec/south/south) "cbc" = ( /turf/open/floor/plating, @@ -35809,10 +27193,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "rampbottom" - }, +/turf/open/floor/prison/rampbottom/west, /area/prison/hallway/engineering) "cbk" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -35833,9 +27214,7 @@ /obj/structure/machinery/door/airlock/almayer/engineering/colony{ name = "Engineering Hallway" }, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/prison/hallway/engineering) "cbn" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ @@ -35860,35 +27239,25 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 6 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/west, /area/prison/cellblock/mediumsec/north) "cbq" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "yellowcorner" - }, +/turf/open/floor/prison/yellowcorner, /area/prison/cellblock/mediumsec/north) "cbr" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow, /area/prison/cellblock/mediumsec/north) "cbs" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "yellowcorner" - }, +/turf/open/floor/prison/yellowcorner/west, /area/prison/cellblock/mediumsec/north) "cbt" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -35902,24 +27271,17 @@ /area/prison/cellblock/mediumsec/north) "cbv" = ( /obj/structure/pipes/standard/manifold/hidden/supply, -/turf/open/floor/prison{ - icon_state = "yellowcorner" - }, +/turf/open/floor/prison/yellowcorner, /area/prison/cellblock/mediumsec/north) "cbw" = ( /obj/structure/pipes/standard/manifold/hidden/supply, -/turf/open/floor/prison{ - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow, /area/prison/cellblock/mediumsec/north) "cbx" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/east, /area/prison/cellblock/mediumsec/north) "cby" = ( /obj/structure/window/framed/prison/cell, @@ -35929,24 +27291,17 @@ /obj/structure/toilet{ dir = 4 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/west, /area/prison/cellblock/mediumsec/north) "cbA" = ( -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/prison/cellblock/mediumsec/north) "cbB" = ( /obj/structure/sink{ dir = 4; pixel_x = 12 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/prison/cellblock/mediumsec/north) "cbC" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony, @@ -35967,10 +27322,7 @@ /turf/open/floor/plating/plating_catwalk/prison, /area/prison/security) "cbI" = ( -/turf/open/floor/prison{ - dir = 5; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/northeast, /area/prison/security) "cbR" = ( /obj/structure/machinery/door/airlock/prison/horizontal{ @@ -35978,15 +27330,11 @@ icon_state = "door_open"; opacity = 0 }, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/prison/cellblock/highsec/south/south) "cbS" = ( /obj/structure/surface/table/gamblingtable, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/prison/recreation/medsec) "cbU" = ( /obj/structure/machinery/power/apc{ @@ -35997,33 +27345,22 @@ /turf/open/floor/prison, /area/prison/recreation/medsec) "cbV" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/east, /area/prison/recreation/medsec) "cbW" = ( -/turf/open/floor/prison{ - icon_state = "yellowfull" - }, +/turf/open/floor/prison/yellowfull, /area/prison/recreation/medsec) "cbX" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 8 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/west, /area/prison/cellblock/mediumsec/north) "cbY" = ( /obj/structure/pipes/vents/scrubber{ dir = 8 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/east, /area/prison/cellblock/mediumsec/north) "cbZ" = ( /turf/open/floor/plating, @@ -36044,25 +27381,19 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/prison/cellblock/mediumsec/north) "ccc" = ( /obj/structure/machinery/shower{ pixel_y = 15 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/prison/cellblock/mediumsec/north) "ccd" = ( /obj/structure/machinery/shower{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/prison/cellblock/mediumsec/north) "cce" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -36077,10 +27408,7 @@ /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/west, /area/prison/cellblock/mediumsec/north) "cch" = ( /obj/structure/machinery/light/small{ @@ -36112,6 +27440,12 @@ /area/prison/engineering) "ccl" = ( /obj/structure/machinery/light, +/obj/structure/surface/rack, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, /turf/open/floor/plating, /area/prison/engineering) "ccm" = ( @@ -36132,10 +27466,7 @@ /area/prison/cellblock/mediumsec/south) "ccp" = ( /obj/structure/pipes/standard/simple/hidden/yellow, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/hallway/engineering) "ccq" = ( /obj/structure/pipes/standard/simple/hidden/supply, @@ -36151,10 +27482,7 @@ dir = 1 }, /obj/effect/landmark/monkey_spawn, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/hallway/engineering) "cct" = ( /obj/structure/pipes/vents/pump{ @@ -36181,9 +27509,7 @@ /obj/structure/machinery/door/airlock/almayer/engineering/colony{ name = "Engineering Hallway" }, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/prison/hallway/engineering) "ccB" = ( /obj/effect/decal/warning_stripes{ @@ -36229,10 +27555,7 @@ /obj/structure/machinery/door/airlock/almayer/command/colony{ name = "Head of Security's Office" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/head) "ccL" = ( /obj/structure/pipes/standard/manifold/hidden/supply, @@ -36240,10 +27563,7 @@ dir = 4 }, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/head) "ccM" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -36276,32 +27596,20 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 5 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "redcorner" - }, +/turf/open/floor/prison/redcorner/north, /area/prison/cellblock/highsec/south/south) "ccT" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/west, /area/prison/cellblock/mediumsec/north) "ccU" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/east, /area/prison/cellblock/mediumsec/north) "ccV" = ( /turf/closed/wall/prison, /area/prison/cellblock/mediumsec/north) "ccW" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/west, /area/prison/cellblock/mediumsec/north) "ccX" = ( /obj/effect/landmark/monkey_spawn, @@ -36313,10 +27621,7 @@ pixel_x = -24; start_charge = 0 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/west, /area/prison/cellblock/mediumsec/north) "cde" = ( /turf/closed/wall/prison, @@ -36324,46 +27629,31 @@ "cdf" = ( /obj/effect/decal/cleanable/blood, /obj/effect/landmark/corpsespawner/prison_security, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/hallway/central/south) "cdi" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/prison/red/north, /area/prison/cellblock/highsec/south/south) "cdk" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/prison/red/north, /area/prison/cellblock/highsec/south/south) "cdl" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "redcorner" - }, +/turf/open/floor/prison/redcorner/east, /area/prison/cellblock/highsec/south/south) "cdm" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "redcorner" - }, +/turf/open/floor/prison/redcorner/north, /area/prison/cellblock/highsec/south/south) "cdr" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony, @@ -36378,18 +27668,14 @@ dir = 5 }, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/prison/recreation/medsec) "cdu" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/prison/recreation/medsec) "cdv" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -36401,10 +27687,7 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/east, /area/prison/recreation/medsec) "cdx" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -36414,47 +27697,31 @@ dir = 2; name = "Medium-Security Recreation" }, -/turf/open/floor/prison{ - icon_state = "yellowfull" - }, +/turf/open/floor/prison/yellowfull, /area/prison/recreation/medsec) "cdy" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/west, /area/prison/cellblock/mediumsec/north) "cdz" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/west, /area/prison/cellblock/mediumsec/north) "cdA" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/west, /area/prison/cellblock/mediumsec/north) "cdB" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/prison/cellblock/mediumsec/north) "cdC" = ( /obj/structure/machinery/shower{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/prison/cellblock/mediumsec/north) "cdE" = ( /obj/structure/pipes/standard/simple/hidden/supply, @@ -36465,60 +27732,42 @@ /turf/open/floor/wood, /area/prison/library) "cdG" = ( -/turf/open/floor/prison{ - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/prison/darkyellowcorners2, /area/prison/engineering) "cdH" = ( /obj/structure/pipes/vents/scrubber{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/prison/residential/south) "cdI" = ( -/turf/open/floor/prison{ - dir = 6; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/southeast, /area/prison/engineering) "cdJ" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2, /area/prison/hallway/engineering) "cdK" = ( -/turf/open/floor/prison{ - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2, /area/prison/hallway/engineering) "cdL" = ( /obj/structure/pipes/standard/simple/hidden/yellow{ dir = 5 }, -/turf/open/floor/prison{ - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2, /area/prison/hallway/engineering) "cdM" = ( /obj/structure/pipes/standard/simple/hidden/yellow{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2, /area/prison/hallway/engineering) "cdN" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/pipes/standard/simple/hidden/yellow{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2, /area/prison/hallway/engineering) "cdO" = ( /obj/structure/pipes/standard/simple/hidden/supply, @@ -36526,87 +27775,58 @@ /obj/structure/pipes/standard/simple/hidden/yellow{ dir = 10 }, -/turf/open/floor/prison{ - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2, /area/prison/hallway/engineering) "cdP" = ( /obj/structure/machinery/alarm/almayer{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/north, /area/prison/cellblock/mediumsec/north) "cdQ" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - dir = 6; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/southeast, /area/prison/hallway/engineering) "cdR" = ( /obj/structure/machinery/door/poddoor/two_tile/opened{ id = "execution" }, /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/prison/execution) "cdS" = ( -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/prison/execution) "cdT" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/southwest, /area/prison/security) "cdU" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2, /area/prison/security) "cdV" = ( /obj/effect/landmark/corpsespawner/prison_security, -/turf/open/floor/prison{ - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2, /area/prison/security) "cdW" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2, /area/prison/security) "cdX" = ( -/turf/open/floor/prison{ - dir = 6; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/southeast, /area/prison/security) "cdY" = ( /obj/structure/machinery/power/apc{ pixel_y = -24; start_charge = 0 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/southwest, /area/prison/security) "cea" = ( /obj/structure/machinery/light, -/turf/open/floor/prison{ - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2, /area/prison/security) "ceb" = ( /obj/structure/surface/table/woodentable, @@ -36635,74 +27855,54 @@ icon_state = "coil1"; name = "cable piece" }, -/turf/open/floor/prison{ - icon_state = "red" - }, +/turf/open/floor/prison/red, /area/prison/cellblock/highsec/south/south) "cen" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - icon_state = "red" - }, +/turf/open/floor/prison/red, /area/prison/cellblock/highsec/south/south) "ceo" = ( /obj/structure/pipes/vents/scrubber{ dir = 1 }, /obj/item/ammo_casing, -/turf/open/floor/prison{ - icon_state = "red" - }, +/turf/open/floor/prison/red, /area/prison/cellblock/highsec/south/south) "cep" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "redcorner" - }, +/turf/open/floor/prison/redcorner, /area/prison/cellblock/highsec/south/south) "ceq" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "red" - }, +/turf/open/floor/prison/red, /area/prison/cellblock/highsec/south/south) "cer" = ( /obj/item/ammo_casing, -/turf/open/floor/prison{ - icon_state = "red" - }, +/turf/open/floor/prison/red, /area/prison/cellblock/highsec/south/south) "ces" = ( /obj/effect/landmark/corpsespawner/prison_security, -/turf/open/floor/prison{ - icon_state = "red" - }, +/turf/open/floor/prison/red, /area/prison/cellblock/highsec/south/south) "cev" = ( /turf/open/floor/plating/plating_catwalk/prison, /area/prison/security) "cew" = ( /obj/effect/landmark/hunter_primary, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/prison/recreation/medsec) "cex" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/prison/recreation/medsec) "cey" = ( /obj/effect/decal/cleanable/blood, /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/prison/recreation/medsec) "cez" = ( /obj/structure/machinery/door/airlock/almayer/medical/glass/colony{ @@ -36713,38 +27913,27 @@ /area/prison/recreation/medsec) "ceA" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 8; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/west, /area/prison/cellblock/mediumsec/north) "ceB" = ( /obj/structure/machinery/shower{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/prison/cellblock/mediumsec/north) "ceC" = ( /obj/structure/machinery/light{ dir = 4 }, /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/east, /area/prison/cellblock/mediumsec/north) "ceD" = ( /obj/structure/bed/chair{ dir = 8 }, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/west, /area/prison/cellblock/protective) "ceE" = ( /obj/structure/bookcase, @@ -36782,64 +27971,39 @@ dir = 8; pixel_x = -4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/east, /area/prison/cellblock/highsec/south/south) "ceK" = ( -/turf/open/floor/prison{ - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2, /area/prison/engineering) "ceL" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/west, /area/prison/cellblock/highsec/south/south) "ceM" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2, /area/prison/engineering) "ceN" = ( /obj/structure/closet/secure_closet/engineering_electrical, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/prison/engineering) "ceO" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk{ dir = 1 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/prison/hallway/engineering) "ceP" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/prison/hallway/engineering) "ceQ" = ( /obj/effect/landmark/crap_item, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/prison/hallway/engineering) "ceR" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/prison/hallway/engineering) "ceS" = ( /obj/structure/pipes/standard/simple/hidden/supply, @@ -36878,20 +28042,14 @@ dir = 2; name = "Briefing" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/briefing) "ceX" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ dir = 2; name = "Briefing" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/briefing) "ceY" = ( /obj/structure/pipes/standard/simple/hidden/supply, @@ -36899,10 +28057,7 @@ dir = 2; name = "Riot Armory" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/armory/riot) "ceZ" = ( /obj/structure/machinery/door_control{ @@ -36910,17 +28065,11 @@ name = "Riot Armory Access"; pixel_x = -24 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security) "cfa" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security) "cfb" = ( /obj/structure/machinery/door_control{ @@ -36928,10 +28077,7 @@ name = "Lethal Armory Access"; pixel_x = 24 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security) "cfc" = ( /obj/structure/pipes/standard/simple/hidden/supply, @@ -36939,10 +28085,7 @@ dir = 2; name = "Lethal Armory" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/armory/lethal) "cfd" = ( /obj/structure/pipes/standard/simple/hidden/supply, @@ -36954,25 +28097,18 @@ /area/prison/security/head) "cfh" = ( /obj/effect/landmark/crap_item, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/prison/recreation/medsec) "cfi" = ( /obj/structure/pipes/vents/scrubber{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/prison/recreation/medsec) "cfk" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk, -/turf/open/floor/prison{ - dir = 5; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/northeast, /area/prison/cellblock/protective) "cfl" = ( /turf/open/floor/plating, @@ -36984,25 +28120,19 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/prison/cellblock/protective) "cfn" = ( /obj/structure/machinery/shower{ pixel_y = 15 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/prison/cellblock/protective) "cfo" = ( /obj/structure/machinery/shower{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/prison/cellblock/protective) "cfp" = ( /obj/structure/surface/table/reinforced, @@ -37035,10 +28165,7 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/prison/engineering) "cfu" = ( /obj/structure/window/framed/prison/reinforced, @@ -37048,23 +28175,14 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 9 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/prison/engineering) "cfw" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/prison/engineering) "cfx" = ( /obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/prison/engineering) "cfy" = ( /obj/structure/pipes/standard/simple/hidden/supply, @@ -37135,43 +28253,28 @@ pixel_x = -24; start_charge = 0 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/north, /area/prison/security/briefing) "cfM" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 6 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/north, /area/prison/security/briefing) "cfN" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 9 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/north, /area/prison/security/briefing) "cfO" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/north, /area/prison/security/briefing) "cfP" = ( /obj/structure/machinery/alarm/almayer{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/north, /area/prison/security/briefing) "cfQ" = ( /obj/structure/closet/gimmick{ @@ -37181,25 +28284,17 @@ /obj/item/weapon/shield/riot, /obj/item/clothing/head/helmet/riot, /obj/item/clothing/suit/armor/riot, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/north, /area/prison/security/armory/riot) "cfR" = ( /obj/structure/reagent_dispensers/peppertank{ pixel_y = 30 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/north, /area/prison/security/armory/riot) "cfS" = ( /obj/structure/machinery/door/window/eastright, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/prison/residential/south) "cfT" = ( /obj/structure/sink{ @@ -37212,9 +28307,7 @@ /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/prison/residential/south) "cfU" = ( /obj/structure/machinery/light/small{ @@ -37227,50 +28320,31 @@ /obj/structure/mirror{ pixel_x = -26 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/prison/residential/south) "cfV" = ( /obj/structure/machinery/door/window/westleft, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/prison/residential/south) "cfW" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/east, /area/prison/cellblock/highsec/south/south) "cfX" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 5; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/northeast, /area/prison/security/armory/riot) "cfY" = ( /obj/effect/landmark/corpsespawner/prison_security, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security) "cfZ" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/northwest, /area/prison/security/armory/lethal) "cga" = ( /obj/structure/surface/rack, /obj/item/weapon/gun/shotgun/pump/dual_tube/cmb, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/north, /area/prison/security/armory/lethal) "cgb" = ( /obj/structure/closet, @@ -37290,23 +28364,14 @@ /turf/open/floor/wood, /area/prison/security/head) "cgh" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/north, /area/prison/cellblock/highsec/south/south) "cgi" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "redcorner" - }, +/turf/open/floor/prison/redcorner/west, /area/prison/cellblock/highsec/south/south) "cgj" = ( /obj/structure/toilet, -/turf/open/floor/prison{ - dir = 1; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/north, /area/prison/cellblock/highsec/south/south) "cgk" = ( /obj/structure/bed/chair/comfy{ @@ -37334,45 +28399,30 @@ /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/east, /area/prison/cellblock/mediumsec/north) "cgq" = ( /obj/structure/machinery/shower{ dir = 8 }, /obj/structure/machinery/light, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/prison/cellblock/mediumsec/north) "cgr" = ( /obj/structure/pipes/vents/scrubber{ dir = 4 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/west, /area/prison/cellblock/mediumsec/north) "cgt" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "bluefull" - }, +/turf/open/floor/prison/bluefull/west, /area/prison/cellblock/protective) "cgu" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/prison/cellblock/protective) "cgv" = ( -/turf/open/floor/prison{ - icon_state = "bluefull" - }, +/turf/open/floor/prison/bluefull, /area/prison/cellblock/protective) "cgw" = ( /obj/structure/machinery/power/apc{ @@ -37380,36 +28430,23 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/northwest, /area/prison/cellblock/protective) "cgx" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "bluecorner" - }, +/turf/open/floor/prison/bluecorner/east, /area/prison/cellblock/protective) "cgy" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/east, /area/prison/cellblock/protective) "cgz" = ( /obj/structure/machinery/shower{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/prison/cellblock/protective) "cgA" = ( -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/prison/cellblock/protective) "cgB" = ( /obj/structure/surface/table/reinforced, @@ -37428,17 +28465,11 @@ dir = 8; health = 80 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/prison/engineering) "cgF" = ( /obj/structure/closet/secure_closet/engineering_personal, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/prison/engineering) "cgG" = ( /turf/open/floor/wood, @@ -37555,17 +28586,13 @@ /obj/structure/machinery/shower{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/prison/residential/south) "chd" = ( /obj/structure/toilet{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/prison/residential/south) "che" = ( /obj/structure/machinery/shower{ @@ -37574,16 +28601,11 @@ /obj/structure/window/reinforced{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/prison/residential/south) "chf" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/east, /area/prison/security/armory/riot) "chh" = ( /obj/structure/girder, @@ -37635,26 +28657,17 @@ /obj/structure/machinery/door/poddoor/two_tile/vertical/open{ id = "riot_armory" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/armory/riot) "chp" = ( /obj/structure/machinery/door/poddoor/two_tile/vertical/open{ id = "lethal_armory" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/armory/lethal) "chq" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/west, /area/prison/security/armory/lethal) "chr" = ( /obj/structure/surface/rack, @@ -37696,36 +28709,25 @@ "chy" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/west, /area/prison/cellblock/mediumsec/north) "chz" = ( /obj/structure/pipes/vents/scrubber{ dir = 4 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "bluefull" - }, +/turf/open/floor/prison/bluefull/west, /area/prison/cellblock/protective) "chA" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 1 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/west, /area/prison/cellblock/protective) "chB" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/prison/cellblock/protective) "chC" = ( /obj/structure/pipes/standard/manifold/hidden/supply, @@ -37733,10 +28735,7 @@ dir = 1; icon_state = "pipe-c" }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/east, /area/prison/cellblock/protective) "chD" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -37749,9 +28748,7 @@ dir = 2; name = "Protective Custody Cells" }, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, +/turf/open/floor/prison/bluefull, /area/prison/cellblock/protective) "chE" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -37760,10 +28757,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/west, /area/prison/cellblock/protective) "chF" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -37779,10 +28773,7 @@ dir = 8; icon_state = "pipe-c" }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/east, /area/prison/cellblock/protective) "chH" = ( /turf/closed/wall/r_wall/prison, @@ -37795,15 +28786,10 @@ name = "Solitary Confinement"; opacity = 0 }, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, +/turf/open/floor/prison/bluefull, /area/prison/cellblock/protective) "chJ" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/west, /area/prison/cellblock/protective) "chK" = ( /obj/structure/bed/chair, @@ -37893,10 +28879,7 @@ /turf/open/floor/prison, /area/prison/security/armory/riot) "cif" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/north, /area/prison/security/armory/lethal) "cig" = ( /obj/structure/machinery/power/apc{ @@ -37905,18 +28888,12 @@ start_charge = 0 }, /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/east, /area/prison/security/armory/riot) "cih" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/recharger, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security) "cii" = ( /obj/structure/machinery/power/apc{ @@ -37925,10 +28902,7 @@ start_charge = 0 }, /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/west, /area/prison/security/armory/lethal) "cij" = ( /obj/structure/surface/rack, @@ -37967,9 +28941,7 @@ id = "pirate_cargo"; name = "Rocinante Cargo Bay Door" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/prison/pirate) "ciq" = ( /obj/item/ammo_casing, @@ -37979,9 +28951,7 @@ id = "pirate_cargo"; name = "Rocinante Cargo Bay Door" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/prison/pirate) "cir" = ( /obj/effect/landmark/corpsespawner/prison_security, @@ -37992,9 +28962,7 @@ id = "pirate_cargo"; name = "Rocinante Cargo Bay Door" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/prison/pirate) "cis" = ( /obj/item/ammo_casing, @@ -38003,9 +28971,7 @@ id = "pirate_cargo"; name = "Rocinante Cargo Bay Door" }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/prison/pirate) "ciu" = ( /obj/structure/shuttle/diagonal{ @@ -38024,104 +28990,63 @@ pixel_x = -24; start_charge = 0 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/prison/red/west, /area/prison/cellblock/highsec/south/south) "ciz" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/east, /area/prison/cellblock/mediumsec/north) "ciA" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/north, /area/prison/cellblock/mediumsec/north) "ciB" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 4; - icon_state = "yellowcorner" - }, +/turf/open/floor/prison/yellowcorner/east, /area/prison/cellblock/mediumsec/north) "ciC" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 1; - icon_state = "yellowcorner" - }, +/turf/open/floor/prison/yellowcorner/north, /area/prison/cellblock/mediumsec/north) "ciD" = ( /obj/structure/pipes/vents/scrubber, -/turf/open/floor/prison{ - dir = 1; - icon_state = "yellowcorner" - }, +/turf/open/floor/prison/yellowcorner/north, /area/prison/cellblock/mediumsec/north) "ciE" = ( /obj/structure/pipes/vents/pump/on, -/turf/open/floor/prison{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/north, /area/prison/cellblock/mediumsec/north) "ciF" = ( /obj/structure/girder/reinforced, -/turf/open/floor/prison{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/north, /area/prison/cellblock/mediumsec/north) "ciG" = ( /obj/item/frame/table, -/turf/open/floor/prison{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/north, /area/prison/cellblock/mediumsec/north) "ciH" = ( /obj/effect/decal/cleanable/blood, /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 8 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/east, /area/prison/cellblock/mediumsec/north) "ciI" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "bluefull" - }, +/turf/open/floor/prison/bluefull/west, /area/prison/cellblock/protective) "ciJ" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 9 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/southwest, /area/prison/cellblock/protective) "ciK" = ( -/turf/open/floor/prison{ - icon_state = "blue" - }, +/turf/open/floor/prison/blue, /area/prison/cellblock/protective) "ciL" = ( -/turf/open/floor/prison{ - dir = 6; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/southeast, /area/prison/cellblock/protective) "ciM" = ( /obj/structure/pipes/standard/simple/hidden/supply, @@ -38131,81 +29056,49 @@ /obj/structure/pipes/vents/scrubber{ dir = 8 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "bluecorner" - }, +/turf/open/floor/prison/bluecorner/north, /area/prison/cellblock/protective) "ciO" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/north, /area/prison/cellblock/protective) "ciP" = ( /obj/structure/machinery/camera/autoname{ network = list("PRISON") }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/north, /area/prison/cellblock/protective) "ciQ" = ( /obj/structure/pipes/vents/pump/on, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/north, /area/prison/cellblock/protective) "ciR" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/north, /area/prison/cellblock/protective) "ciS" = ( /obj/structure/machinery/alarm/almayer{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/north, /area/prison/cellblock/protective) "ciT" = ( -/turf/open/floor/prison{ - dir = 5; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/northeast, /area/prison/cellblock/protective) "ciU" = ( -/turf/open/floor/prison{ - icon_state = "bluefull" - }, +/turf/open/floor/prison/bluefull, /area/prison/parole/protective_custody) "ciV" = ( -/turf/open/floor/prison{ - dir = 9; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/northwest, /area/prison/parole/protective_custody) "ciW" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/north, /area/prison/parole/protective_custody) "ciX" = ( /obj/structure/bed/chair, -/turf/open/floor/prison{ - dir = 5; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/northeast, /area/prison/parole/protective_custody) "cja" = ( /obj/structure/disposalpipe/segment{ @@ -38265,10 +29158,7 @@ /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/east, /area/prison/security/armory/riot) "cjl" = ( /obj/structure/machinery/light{ @@ -38277,10 +29167,7 @@ /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 8 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/west, /area/prison/security/armory/lethal) "cjm" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -38302,36 +29189,25 @@ name = "Toilet"; opacity = 0 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/prison/security/head) "cjp" = ( /obj/structure/sink{ dir = 4; pixel_x = 12 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/east, /area/prison/cellblock/highsec/south/south) "cjq" = ( /obj/structure/pipes/vents/scrubber, -/turf/open/floor/prison{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/prison/red/northwest, /area/prison/cellblock/highsec/south/south) "cjr" = ( /obj/structure/sink{ dir = 8; pixel_x = -12 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/west, /area/prison/cellblock/highsec/south/south) "cjt" = ( /obj/effect/decal/warning_stripes{ @@ -38387,10 +29263,7 @@ /area/prison/pirate) "cjA" = ( /obj/structure/machinery/computer/prisoner, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/checkpoint/highsec_medsec) "cjB" = ( /turf/closed/wall/prison, @@ -38403,24 +29276,17 @@ dir = 8; pixel_x = -12 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/prison/cellblock/mediumsec/north) "cjE" = ( /obj/structure/toilet{ dir = 8; pixel_x = -4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/east, /area/prison/cellblock/mediumsec/north) "cjG" = ( -/turf/open/floor/prison{ - icon_state = "yellowcorner" - }, +/turf/open/floor/prison/yellowcorner, /area/prison/cellblock/mediumsec/north) "cjJ" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ @@ -38432,15 +29298,11 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/prison/cellblock/mediumsec/north) "cjL" = ( /obj/structure/pipes/standard/manifold/hidden/supply, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/prison/cellblock/mediumsec/north) "cjN" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -38448,26 +29310,19 @@ }, /obj/item/frame/table, /obj/item/stack/rods, -/turf/open/floor/prison{ - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow, /area/prison/cellblock/mediumsec/north) "cjO" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 1 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "yellowcorner" - }, +/turf/open/floor/prison/yellowcorner/west, /area/prison/cellblock/mediumsec/north) "cjP" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 9 }, -/turf/open/floor/prison{ - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe, /area/prison/cellblock/mediumsec/north) "cjQ" = ( /obj/structure/window/framed/prison/reinforced, @@ -38480,33 +29335,23 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/west, /area/prison/cellblock/protective) "cjT" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "bluecorner" - }, +/turf/open/floor/prison/bluecorner, /area/prison/cellblock/protective) "cjU" = ( /obj/structure/pipes/standard/manifold/hidden/supply, -/turf/open/floor/prison{ - icon_state = "blue" - }, +/turf/open/floor/prison/blue, /area/prison/cellblock/protective) "cjY" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 6; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/southeast, /area/prison/cellblock/protective) "cjZ" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -38516,18 +29361,13 @@ dir = 2; name = "Protective Custody Parole Waiting" }, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, +/turf/open/floor/prison/bluefull, /area/prison/parole/protective_custody) "cka" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/west, /area/prison/parole/protective_custody) "ckb" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -38536,10 +29376,7 @@ /turf/open/floor/plating/plating_catwalk/prison, /area/prison/parole/protective_custody) "ckc" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/east, /area/prison/parole/protective_custody) "ckd" = ( /obj/structure/bed/chair{ @@ -38569,9 +29406,7 @@ /area/prison/pirate) "ckj" = ( /obj/structure/largecrate/random, -/turf/open/floor/plating{ - icon_state = "platebot" - }, +/turf/open/floor/plating/platebot, /area/prison/pirate) "ckk" = ( /obj/item/ammo_casing, @@ -38586,9 +29421,7 @@ /turf/open/floor/plating, /area/prison/pirate) "ckn" = ( -/turf/open/floor/plating{ - icon_state = "platebot" - }, +/turf/open/floor/plating/platebot, /area/prison/pirate) "cko" = ( /obj/structure/pipes/standard/simple/hidden/supply, @@ -38601,10 +29434,7 @@ /area/prison/security/armory/riot) "ckq" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkredcorners2" - }, +/turf/open/floor/prison/darkredcorners2/north, /area/prison/security/armory/riot) "ckr" = ( /obj/structure/surface/rack, @@ -38651,34 +29481,25 @@ /obj/structure/mirror{ pixel_x = -28 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/prison/security/head) "cky" = ( /obj/structure/toilet{ pixel_y = 4 }, /obj/structure/machinery/light/small, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/prison/security/head) "ckz" = ( /obj/structure/machinery/shower{ dir = 8 }, /obj/structure/machinery/door/window/westright, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/prison/security/head) "ckA" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/prison/red/west, /area/prison/cellblock/highsec/south/south) "ckB" = ( /obj/structure/surface/table/reinforced, @@ -38686,10 +29507,7 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/checkpoint/highsec_medsec) "ckC" = ( /obj/structure/surface/table/reinforced, @@ -38701,41 +29519,26 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/checkpoint/highsec_medsec) "ckD" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/recharger, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/checkpoint/highsec_medsec) "ckE" = ( /obj/item/ammo_casing, -/turf/open/floor/prison{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/prison/red/west, /area/prison/cellblock/highsec/south/south) "ckF" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 1; - icon_state = "redcorner" - }, +/turf/open/floor/prison/redcorner/north, /area/prison/cellblock/highsec/south/south) "ckG" = ( /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/prison{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/prison/red/northeast, /area/prison/cellblock/highsec/south/south) "ckI" = ( /obj/structure/pipes/standard/simple/hidden/supply, @@ -38744,20 +29547,14 @@ "ckJ" = ( /obj/structure/machinery/computer/secure_data, /obj/structure/surface/table/reinforced, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/monitoring/protective) "ckK" = ( /obj/structure/machinery/computer/cameras{ network = list("PRISON") }, /obj/structure/surface/table/reinforced, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/monitoring/protective) "ckL" = ( /obj/structure/surface/table/reinforced, @@ -38765,32 +29562,20 @@ pixel_x = -3; pixel_y = 7 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/monitoring/protective) "ckM" = ( /obj/structure/surface/table/reinforced, /obj/item/device/flashlight/lamp, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/monitoring/protective) "ckN" = ( /obj/effect/landmark/survivor_spawner, -/turf/open/floor/prison{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/west, /area/prison/cellblock/protective) "ckO" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/east, /area/prison/cellblock/protective) "ckP" = ( /obj/structure/machinery/door/airlock/prison/horizontal{ @@ -38798,36 +29583,25 @@ icon_state = "door_open"; opacity = 0 }, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, +/turf/open/floor/prison/bluefull, /area/prison/cellblock/protective) "ckQ" = ( /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/southwest, /area/prison/parole/protective_custody) "ckR" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 5 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "bluecorner" - }, +/turf/open/floor/prison/bluecorner/west, /area/prison/parole/protective_custody) "ckS" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/east, /area/prison/parole/protective_custody) "ckT" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -38882,34 +29656,22 @@ /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 8 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/prison/red/west, /area/prison/cellblock/highsec/south/south) "cld" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/highsec/south/south) "cle" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "redcorner" - }, +/turf/open/floor/prison/redcorner/east, /area/prison/cellblock/highsec/south/south) "clf" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 9 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/prison/red/east, /area/prison/cellblock/highsec/south/south) "clj" = ( /obj/structure/bed/chair/office/dark{ @@ -38920,55 +29682,35 @@ dir = 1; icon_state = "exposed01-supply" }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/north, /area/prison/security/checkpoint/highsec_medsec) "clk" = ( /obj/structure/surface/table/reinforced, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/checkpoint/highsec_medsec) "cll" = ( /obj/structure/machinery/light{ dir = 4 }, /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/prison/red/east, /area/prison/cellblock/highsec/south/south) "clm" = ( /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/prison/red/east, /area/prison/cellblock/highsec/south/south) "clo" = ( -/turf/open/floor/prison{ - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow, /area/prison/cellblock/mediumsec/north) "clp" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 8; - icon_state = "yellowcorner" - }, +/turf/open/floor/prison/yellowcorner/west, /area/prison/cellblock/mediumsec/north) "clq" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/east, /area/prison/cellblock/mediumsec/north) "clr" = ( /obj/structure/machinery/power/apc{ @@ -38976,28 +29718,19 @@ pixel_x = -24; start_charge = 0 }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/northwest, /area/prison/security/monitoring/protective) "cls" = ( /obj/structure/bed/chair/office/dark{ dir = 1 }, /obj/effect/landmark/corpsespawner/prison_security, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/north, /area/prison/security/monitoring/protective) "clt" = ( /obj/structure/pipes/vents/pump/on, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/north, /area/prison/security/monitoring/protective) "clu" = ( /obj/structure/surface/table/reinforced, @@ -39006,35 +29739,23 @@ pixel_y = 8 }, /obj/effect/landmark/item_pool_spawner/prison_lock/master, -/turf/open/floor/prison{ - dir = 5; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/northeast, /area/prison/security/monitoring/protective) "clv" = ( /obj/structure/toilet{ dir = 4 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/north, /area/prison/cellblock/protective) "clw" = ( /obj/structure/surface/table/reinforced, -/turf/open/floor/prison{ - dir = 1; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/north, /area/prison/cellblock/protective) "clx" = ( /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/southwest, /area/prison/parole/protective_custody) "cly" = ( /turf/closed/wall/r_wall/prison, @@ -39043,10 +29764,7 @@ /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/prison{ - dir = 6; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/southeast, /area/prison/parole/protective_custody) "clC" = ( /obj/structure/disposalpipe/segment{ @@ -39117,10 +29835,7 @@ /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/prison/red/west, /area/prison/cellblock/highsec/south/south) "clP" = ( /obj/structure/pipes/vents/scrubber{ @@ -39129,43 +29844,29 @@ /turf/open/floor/plating, /area/prison/disposal) "clQ" = ( -/turf/open/floor/prison{ - icon_state = "redcorner" - }, +/turf/open/floor/prison/redcorner, /area/prison/cellblock/highsec/south/south) "clS" = ( /obj/structure/pipes/vents/scrubber{ dir = 8 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkredcorners2" - }, +/turf/open/floor/prison/darkredcorners2/north, /area/prison/security/checkpoint/highsec_medsec) "clT" = ( /obj/structure/surface/rack, -/turf/open/floor/prison{ - dir = 5; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/northeast, /area/prison/security/checkpoint/highsec_medsec) "clU" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/prison/red/west, /area/prison/cellblock/highsec/south/south) "clV" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/highsec/south/south) "clW" = ( /obj/structure/machinery/door/airlock/almayer/secure/colony{ @@ -39179,9 +29880,7 @@ /area/prison/cellblock/highsec/south/south) "clY" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/prison/cellblock/mediumsec/north) "cmc" = ( /obj/structure/machinery/light/small{ @@ -39190,32 +29889,23 @@ /turf/open/floor/plating/plating_catwalk/prison, /area/prison/cellblock/highsec/south/south) "cmd" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/west, /area/prison/security/monitoring/protective) "cme" = ( /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/plating{ - icon_state = "platebot" - }, +/turf/open/floor/plating/platebot, /area/prison/pirate) "cmf" = ( /obj/effect/landmark/good_item, -/turf/open/floor/plating{ - icon_state = "platebot" - }, +/turf/open/floor/plating/platebot, /area/prison/pirate) "cmg" = ( /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/plating{ - icon_state = "platebot" - }, +/turf/open/floor/plating/platebot, /area/prison/pirate) "cmh" = ( /turf/open/floor/prison, @@ -39230,10 +29920,7 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/east, /area/prison/security/monitoring/protective) "cmk" = ( /obj/structure/window/framed/prison/reinforced, @@ -39246,36 +29933,26 @@ /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ name = "Protective Custody Monitoring" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/prison/security/monitoring/protective) "cmm" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 10; - icon_state = "damaged1" - }, +/turf/open/floor/prison/damaged1/southwest, /area/prison/cellblock/protective) "cmn" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/east, /area/prison/cellblock/protective) "cmo" = ( /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/prison/cellblock/protective) "cmp" = ( /obj/effect/decal/cleanable/blood, @@ -39283,15 +29960,11 @@ /area/prison/cellblock/protective) "cmq" = ( /obj/effect/landmark/monkey_spawn, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/prison/cellblock/mediumsec/north) "cmr" = ( /obj/structure/surface/table/reinforced, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/prison/cellblock/protective) "cms" = ( /obj/structure/machinery/light, @@ -39317,9 +29990,7 @@ /area/prison/disposal) "cmw" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2, /area/prison/security/briefing) "cmx" = ( /obj/structure/window/framed/prison/reinforced, @@ -39355,116 +30026,75 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 10 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/east, /area/prison/security/checkpoint/highsec_medsec) "cmI" = ( /obj/structure/pipes/vents/scrubber{ dir = 4 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/prison/red/west, /area/prison/cellblock/highsec/south/south) "cmK" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "redcorner" - }, +/turf/open/floor/prison/redcorner/north, /area/prison/cellblock/highsec/south/south) "cmL" = ( -/turf/open/floor/prison{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/prison/red/northeast, /area/prison/cellblock/highsec/south/south) "cmM" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/east, /area/prison/cellblock/mediumsec/north) "cmN" = ( /obj/structure/machinery/vending/security, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/southwest, /area/prison/security/monitoring/protective) "cmO" = ( /obj/structure/surface/rack, -/turf/open/floor/prison{ - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2, /area/prison/security/monitoring/protective) "cmP" = ( /obj/structure/machinery/light, /obj/structure/pipes/vents/scrubber{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2, /area/prison/security/monitoring/protective) "cmQ" = ( /obj/structure/filingcabinet, -/turf/open/floor/prison{ - dir = 6; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/southeast, /area/prison/security/monitoring/protective) "cmR" = ( /obj/structure/sink{ dir = 8; pixel_x = -12 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/prison/cellblock/protective) "cmS" = ( /obj/item/ammo_casing, -/turf/open/floor/plating{ - icon_state = "platebot" - }, +/turf/open/floor/plating/platebot, /area/prison/pirate) "cmT" = ( /obj/item/weapon/gun/rifle/mar40, -/turf/open/floor/plating{ - icon_state = "platebot" - }, +/turf/open/floor/plating/platebot, /area/prison/pirate) "cmU" = ( /obj/structure/bed, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/prison/cellblock/protective) "cmV" = ( -/turf/open/floor/prison{ - dir = 5; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/northeast, /area/prison/security/checkpoint/highsec_medsec) "cmW" = ( /obj/structure/bed, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/prison/cellblock/protective) "cmX" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/highsec/south/south) "cmY" = ( /obj/structure/reagent_dispensers/fueltank, @@ -39499,30 +30129,18 @@ /turf/open/floor/prison, /area/prison/execution) "cne" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/briefing) "cnf" = ( /obj/structure/surface/table/reinforced, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/briefing) "cnh" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/east, /area/prison/security/briefing) "cni" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/north, /area/prison/cellblock/protective) "cnj" = ( /turf/closed/wall/r_wall/prison_unmeltable, @@ -39537,18 +30155,14 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 9 }, -/turf/open/floor/prison{ - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2, /area/prison/security/checkpoint/highsec_medsec) "cnn" = ( /obj/structure/machinery/power/apc{ pixel_y = -24; start_charge = 0 }, -/turf/open/floor/prison{ - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2, /area/prison/security/checkpoint/highsec_medsec) "cnp" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -39563,23 +30177,15 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/prison/red/southwest, /area/prison/cellblock/highsec/south/south) "cnr" = ( /obj/structure/pipes/standard/manifold/hidden/supply, -/turf/open/floor/prison{ - icon_state = "red" - }, +/turf/open/floor/prison/red, /area/prison/cellblock/highsec/south/south) "cnt" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/west, /area/prison/cellblock/mediumsec/north) "cnu" = ( /turf/closed/wall/r_wall/prison_unmeltable, @@ -39674,10 +30280,7 @@ /obj/structure/pipes/vents/scrubber{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/execution) "cnN" = ( /obj/effect/decal/warning_stripes{ @@ -39714,35 +30317,23 @@ /area/prison/execution) "cnQ" = ( /obj/structure/pipes/standard/manifold/hidden/supply, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/execution) "cnR" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/east, /area/prison/cellblock/mediumsec/north) "cnS" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/execution) "cnT" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/execution) "cnU" = ( /obj/structure/machinery/light{ @@ -39751,19 +30342,14 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 6 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/west, /area/prison/security/briefing) "cnV" = ( /obj/structure/bed, /obj/structure/machinery/alarm/almayer{ dir = 1 }, -/turf/open/shuttle{ - icon_state = "floor7" - }, +/turf/open/shuttle/black, /area/prison/pirate) "cnX" = ( /obj/structure/pipes/standard/manifold/hidden/supply, @@ -39773,10 +30359,7 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/briefing) "cnZ" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -39791,10 +30374,7 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 10 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/east, /area/prison/security/briefing) "cod" = ( /turf/open/floor/plating/plating_catwalk/prison, @@ -39803,15 +30383,10 @@ /obj/structure/toilet{ dir = 4 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/west, /area/prison/cellblock/mediumsec/east) "coj" = ( -/turf/open/floor/prison{ - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2, /area/prison/security/briefing) "cok" = ( /obj/structure/machinery/light/small{ @@ -39824,9 +30399,7 @@ dir = 4; pixel_x = 12 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/prison/cellblock/mediumsec/east) "com" = ( /obj/structure/machinery/conveyor, @@ -39860,9 +30433,7 @@ /obj/item/ammo_magazine/rifle/mar40, /obj/item/weapon/gun/rifle/mar40, /obj/item/weapon/gun/rifle/mar40, -/turf/open/floor/plating{ - icon_state = "platebot" - }, +/turf/open/floor/plating/platebot, /area/prison/pirate) "cor" = ( /obj/item/ammo_magazine/rifle/mar40, @@ -39870,9 +30441,7 @@ dir = 1; flipped = 1 }, -/turf/open/floor/plating{ - icon_state = "platebot" - }, +/turf/open/floor/plating/platebot, /area/prison/pirate) "cos" = ( /obj/effect/decal/warning_stripes{ @@ -39899,32 +30468,20 @@ /turf/open/floor/plating, /area/prison/disposal) "cox" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/execution) "coy" = ( /obj/effect/landmark/corpsespawner/prison_security, -/turf/open/floor/prison{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/prison/red/north, /area/prison/cellblock/highsec/south/south) "coz" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/prison/red/north, /area/prison/cellblock/highsec/south/south) "coA" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/prison/red/north, /area/prison/cellblock/highsec/south/south) "coB" = ( /obj/effect/decal/warning_stripes{ @@ -39950,19 +30507,13 @@ /obj/structure/pipes/vents/scrubber{ dir = 1 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/west, /area/prison/security/briefing) "coG" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/east, /area/prison/security/briefing) "coH" = ( /obj/structure/shuttle/engine/heater, @@ -39973,16 +30524,10 @@ /turf/open/floor/plating, /area/prison/cellblock/mediumsec/west) "coK" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/west, /area/prison/cellblock/mediumsec/east) "coL" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/east, /area/prison/cellblock/mediumsec/east) "coM" = ( /obj/structure/machinery/door/airlock/prison{ @@ -39990,15 +30535,10 @@ icon_state = "door_open"; opacity = 0 }, -/turf/open/floor/prison{ - icon_state = "yellowfull" - }, +/turf/open/floor/prison/yellowfull, /area/prison/cellblock/mediumsec/east) "coN" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/west, /area/prison/cellblock/mediumsec/east) "coO" = ( /obj/effect/decal/warning_stripes{ @@ -40023,10 +30563,7 @@ /turf/open/floor/plating, /area/prison/disposal) "coS" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/west, /area/prison/security/briefing) "coT" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -40050,10 +30587,7 @@ /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/execution) "coX" = ( /obj/effect/decal/warning_stripes{ @@ -40085,17 +30619,13 @@ dir = 1; flipped = 1 }, -/turf/open/floor/plating{ - icon_state = "platebot" - }, +/turf/open/floor/plating/platebot, /area/prison/pirate) "cpb" = ( /obj/structure/machinery/defenses/sentry/premade/dumb{ dir = 1 }, -/turf/open/floor/plating{ - icon_state = "platebot" - }, +/turf/open/floor/plating/platebot, /area/prison/pirate) "cpc" = ( /obj/item/ammo_magazine/rifle/mar40, @@ -40120,10 +30650,7 @@ name = "Remote Door Control"; pixel_x = 24 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/execution) "cpf" = ( /turf/closed/wall/r_wall/prison_unmeltable, @@ -40133,10 +30660,7 @@ /turf/open/floor/plating, /area/prison/security/briefing) "cph" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/prison/red/southwest, /area/prison/cellblock/highsec/south/south) "cpi" = ( /obj/structure/shuttle/engine/router{ @@ -40148,30 +30672,20 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "red" - }, +/turf/open/floor/prison/red, /area/prison/cellblock/highsec/south/south) "cpl" = ( -/turf/open/floor/prison{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/prison/red/southeast, /area/prison/cellblock/highsec/south/south) "cpm" = ( -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/prison/cellblock/mediumsec/west) "cpp" = ( /turf/closed/wall/r_wall/prison_unmeltable, /area/prison/cellblock/protective) "cpq" = ( /obj/effect/landmark/corpsespawner/prisoner, -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/east, /area/prison/cellblock/mediumsec/north) "cpr" = ( /obj/structure/machinery/light/small{ @@ -40183,10 +30697,7 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/west, /area/prison/cellblock/mediumsec/east) "cpu" = ( /obj/structure/machinery/conveyor, @@ -40237,29 +30748,20 @@ /area/prison/disposal) "cpC" = ( /obj/structure/surface/table/reinforced, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/execution) "cpE" = ( /obj/item/device/assembly/signaller{ code = 2; frequency = 1449 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/execution) "cpF" = ( /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/execution) "cpG" = ( /obj/structure/shuttle/engine/propulsion, @@ -40267,23 +30769,16 @@ /area/prison/pirate) "cpH" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/west, /area/prison/cellblock/mediumsec/north) "cpI" = ( -/turf/open/floor/prison{ - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe, /area/prison/cellblock/mediumsec/east) "cpJ" = ( /obj/structure/toilet{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe, /area/prison/cellblock/mediumsec/east) "cpM" = ( /obj/structure/machinery/disposal/deliveryChute{ @@ -40331,18 +30826,14 @@ /area/prison/cellblock/mediumsec/east) "cpV" = ( /obj/structure/bed, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/prison/cellblock/mediumsec/east) "cpW" = ( /obj/structure/sink{ dir = 4; pixel_x = 11 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/prison/cellblock/mediumsec/east) "cpX" = ( /obj/structure/window/framed/prison/reinforced/hull, @@ -40360,16 +30851,10 @@ /turf/open/floor/plating, /area/prison/cellblock/mediumsec/west) "cqb" = ( -/turf/open/floor/prison{ - dir = 9; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/northwest, /area/prison/cellblock/mediumsec/east) "cqc" = ( -/turf/open/floor/prison{ - dir = 5; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/northeast, /area/prison/cellblock/mediumsec/east) "cqd" = ( /obj/structure/window/framed/prison/cell, @@ -40381,37 +30866,26 @@ icon_state = "door_open"; opacity = 0 }, -/turf/open/floor/prison{ - icon_state = "yellowfull" - }, +/turf/open/floor/prison/yellowfull, /area/prison/cellblock/mediumsec/west) "cqg" = ( /obj/structure/pipes/vents/scrubber, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/west, /area/prison/cellblock/mediumsec/north) "cqh" = ( /turf/closed/wall/r_wall/prison_unmeltable, /area/prison/cellblock/mediumsec/east) "cqk" = ( /obj/structure/bed/chair, -/turf/open/floor/prison{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/north, /area/prison/cellblock/mediumsec/north) "cql" = ( /obj/structure/bed/chair, /obj/structure/machinery/alarm/almayer{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/north, /area/prison/cellblock/mediumsec/north) "cqo" = ( /obj/structure/machinery/door/airlock/prison/horizontal{ @@ -40419,9 +30893,7 @@ icon_state = "door_open"; opacity = 0 }, -/turf/open/floor/prison{ - icon_state = "yellowfull" - }, +/turf/open/floor/prison/yellowfull, /area/prison/cellblock/mediumsec/east) "cqp" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony{ @@ -40431,10 +30903,7 @@ /area/prison/cellblock/mediumsec/east) "cqq" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/east, /area/prison/cellblock/mediumsec/east) "cqr" = ( /obj/structure/window/framed/prison/reinforced/hull, @@ -40452,19 +30921,13 @@ /turf/open/floor/plating, /area/prison/disposal) "cqv" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/prison/red/east, /area/prison/cellblock/highsec/south/south) "cqw" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/north, /area/prison/cellblock/mediumsec/west) "cqx" = ( /obj/structure/reagent_dispensers/fueltank, @@ -40501,18 +30964,14 @@ /area/prison/pirate) "cqI" = ( /obj/structure/bed, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/prison/cellblock/mediumsec/west) "cqJ" = ( /obj/structure/sink{ dir = 4; pixel_x = 11 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/prison/cellblock/mediumsec/west) "cqK" = ( /turf/closed/wall/prison, @@ -40524,10 +30983,7 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/north, /area/prison/cellblock/mediumsec/west) "cqM" = ( /turf/open/floor/plating, @@ -40537,34 +30993,23 @@ /turf/open/floor/plating, /area/prison/cellblock/mediumsec/west) "cqO" = ( -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/prison/cellblock/mediumsec/east) "cqP" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/east, /area/prison/cellblock/mediumsec/east) "cqS" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/north, /area/prison/cellblock/mediumsec/west) "cqT" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/north, /area/prison/cellblock/mediumsec/east) "cqV" = ( /obj/effect/landmark/crap_item, @@ -40575,19 +31020,13 @@ dir = 1 }, /obj/item/stack/sheet/metal, -/turf/open/floor/prison{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/north, /area/prison/cellblock/mediumsec/east) "cqX" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/north, /area/prison/cellblock/mediumsec/east) "cqY" = ( /obj/structure/machinery/light{ @@ -40596,25 +31035,16 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/north, /area/prison/cellblock/mediumsec/east) "cra" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "yellowcorner" - }, +/turf/open/floor/prison/yellowcorner/east, /area/prison/cellblock/mediumsec/east) "crb" = ( /obj/structure/pipes/vents/scrubber{ dir = 8 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/east, /area/prison/cellblock/mediumsec/east) "crc" = ( /obj/effect/decal/cleanable/blood, @@ -40623,15 +31053,11 @@ "crd" = ( /obj/structure/surface/table/reinforced, /obj/item/storage/box/donkpockets, -/turf/open/shuttle{ - icon_state = "floor7" - }, +/turf/open/shuttle/black, /area/prison/pirate) "cre" = ( /obj/item/ammo_magazine/rifle/mar40, -/turf/open/shuttle{ - icon_state = "floor7" - }, +/turf/open/shuttle/black, /area/prison/pirate) "crf" = ( /obj/structure/bed, @@ -40639,15 +31065,11 @@ dir = 1 }, /obj/item/weapon/gun/rifle/mar40, -/turf/open/shuttle{ - icon_state = "floor7" - }, +/turf/open/shuttle/black, /area/prison/pirate) "crg" = ( /obj/structure/closet, -/turf/open/shuttle{ - icon_state = "floor7" - }, +/turf/open/shuttle/black, /area/prison/pirate) "crh" = ( /obj/structure/machinery/light/small{ @@ -40734,67 +31156,45 @@ /turf/open/floor/plating/plating_catwalk/prison, /area/prison/cellblock/mediumsec/west) "cru" = ( -/turf/open/floor/prison{ - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow, /area/prison/cellblock/mediumsec/west) "crv" = ( /obj/structure/machinery/power/apc{ pixel_y = -24; start_charge = 0 }, -/turf/open/floor/prison{ - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow, /area/prison/cellblock/mediumsec/west) "crw" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "yellowcorner" - }, +/turf/open/floor/prison/yellowcorner/west, /area/prison/cellblock/mediumsec/west) "crx" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - icon_state = "yellowcorner" - }, +/turf/open/floor/prison/yellowcorner, /area/prison/cellblock/mediumsec/west) "cry" = ( /obj/effect/landmark/hunter_primary, -/turf/open/floor/prison{ - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow, /area/prison/cellblock/mediumsec/west) "crz" = ( -/turf/open/floor/prison{ - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow, /area/prison/cellblock/mediumsec/east) "crB" = ( -/turf/open/floor/prison{ - icon_state = "yellowcorner" - }, +/turf/open/floor/prison/yellowcorner, /area/prison/cellblock/mediumsec/east) "crD" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 8; - icon_state = "yellowcorner" - }, +/turf/open/floor/prison/yellowcorner/west, /area/prison/cellblock/mediumsec/east) "crG" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/shuttle{ - icon_state = "floor7" - }, +/turf/open/shuttle/black, /area/prison/pirate) "crH" = ( /obj/structure/bed, -/turf/open/shuttle{ - icon_state = "floor7" - }, +/turf/open/shuttle/black, /area/prison/pirate) "crI" = ( /obj/structure/bed, @@ -40809,10 +31209,7 @@ /obj/structure/toilet{ dir = 4 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/west, /area/prison/cellblock/highsec/south/south) "crL" = ( /obj/structure/machinery/door/airlock/highsecurity{ @@ -40822,25 +31219,18 @@ /area/prison/cellblock/mediumsec/west) "crM" = ( /obj/structure/closet/secure_closet/freezer/fridge, -/turf/open/shuttle{ - icon_state = "floor7" - }, +/turf/open/shuttle/black, /area/prison/pirate) "crN" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/shuttle{ - icon_state = "floor7" - }, +/turf/open/shuttle/black, /area/prison/pirate) "crO" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, /obj/effect/landmark/corpsespawner/prison_security, -/turf/open/floor/prison{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/west, /area/prison/cellblock/mediumsec/west) "crP" = ( /obj/item/device/radio, @@ -40878,72 +31268,50 @@ /turf/open/floor/plating, /area/prison/pirate) "crW" = ( -/turf/open/floor/prison{ - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe, /area/prison/cellblock/mediumsec/west) "crX" = ( /obj/structure/toilet{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe, /area/prison/cellblock/mediumsec/west) "crY" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/east, /area/prison/cellblock/mediumsec/west) "crZ" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 8 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/west, /area/prison/cellblock/mediumsec/east) "csa" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/east, /area/prison/cellblock/mediumsec/east) "csc" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/west, /area/prison/cellblock/mediumsec/east) "csd" = ( /obj/effect/landmark/corpsespawner/prisoner, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/prison/cellblock/mediumsec/east) "cse" = ( /obj/structure/bed, /obj/structure/closet/walllocker/emerglocker/west, -/turf/open/shuttle{ - icon_state = "floor7" - }, +/turf/open/shuttle/black, /area/prison/pirate) "csf" = ( /obj/structure/pipes/vents/scrubber{ dir = 8 }, -/turf/open/shuttle{ - icon_state = "floor7" - }, +/turf/open/shuttle/black, /area/prison/pirate) "csh" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ @@ -40959,10 +31327,7 @@ /turf/open/floor/plating, /area/prison/pirate) "csk" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/west, /area/prison/cellblock/mediumsec/west) "csl" = ( /turf/closed/wall/almayer/outer, @@ -40970,26 +31335,20 @@ "csm" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/microwave, -/turf/open/shuttle{ - icon_state = "floor7" - }, +/turf/open/shuttle/black, /area/prison/pirate) "csn" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 8 }, -/turf/open/shuttle{ - icon_state = "floor7" - }, +/turf/open/shuttle/black, /area/prison/pirate) "cso" = ( /obj/structure/bed, /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/shuttle{ - icon_state = "floor7" - }, +/turf/open/shuttle/black, /area/prison/pirate) "csp" = ( /obj/structure/machinery/door/airlock/almayer/command/colony{ @@ -41047,10 +31406,7 @@ "csy" = ( /obj/effect/decal/cleanable/blood, /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/east, /area/prison/cellblock/mediumsec/west) "csz" = ( /obj/structure/machinery/door/airlock/prison{ @@ -41058,15 +31414,10 @@ icon_state = "door_open"; opacity = 0 }, -/turf/open/floor/prison{ - icon_state = "yellowfull" - }, +/turf/open/floor/prison/yellowfull, /area/prison/cellblock/mediumsec/west) "csA" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/west, /area/prison/cellblock/mediumsec/west) "csB" = ( /obj/structure/window/framed/prison/cell, @@ -41096,10 +31447,7 @@ /turf/open/floor/plating/plating_catwalk/prison, /area/prison/cellblock/mediumsec/east) "csH" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/east, /area/prison/cellblock/mediumsec/east) "csJ" = ( /obj/structure/machinery/door/airlock/almayer/secure/colony{ @@ -41115,42 +31463,32 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/shuttle{ - icon_state = "floor7" - }, +/turf/open/shuttle/black, /area/prison/pirate) "csM" = ( /obj/structure/bed, /obj/structure/pipes/standard/simple/hidden/supply{ dir = 5 }, -/turf/open/shuttle{ - icon_state = "floor7" - }, +/turf/open/shuttle/black, /area/prison/pirate) "csN" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/shuttle{ - icon_state = "floor7" - }, +/turf/open/shuttle/black, /area/prison/pirate) "csO" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 10 }, /obj/item/ammo_magazine/rifle/mar40, -/turf/open/shuttle{ - icon_state = "floor7" - }, +/turf/open/shuttle/black, /area/prison/pirate) "csP" = ( /obj/structure/bed, /obj/effect/landmark/survivor_spawner, -/turf/open/shuttle{ - icon_state = "floor7" - }, +/turf/open/shuttle/black, /area/prison/pirate) "csQ" = ( /obj/structure/surface/table/reinforced, @@ -41163,9 +31501,7 @@ /turf/open/space, /area/space) "csT" = ( -/turf/open/shuttle{ - icon_state = "floor7" - }, +/turf/open/shuttle/black, /area/prison/pirate) "csU" = ( /obj/structure/machinery/door/airlock/almayer/command/colony{ @@ -41210,26 +31546,17 @@ /turf/open/floor/plating, /area/prison/pirate) "ctb" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/east, /area/prison/cellblock/mediumsec/west) "ctc" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/east, /area/prison/cellblock/mediumsec/west) "ctd" = ( /obj/structure/toilet{ dir = 4 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/west, /area/prison/cellblock/mediumsec/west) "cte" = ( /obj/structure/machinery/light{ @@ -41238,43 +31565,28 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/north, /area/prison/cellblock/mediumsec/south) "ctf" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/north, /area/prison/cellblock/mediumsec/south) "ctg" = ( /obj/structure/pipes/standard/manifold/hidden/supply, -/turf/open/floor/prison{ - dir = 4; - icon_state = "yellowcorner" - }, +/turf/open/floor/prison/yellowcorner/east, /area/prison/cellblock/mediumsec/south) "ctj" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/north, /area/prison/cellblock/mediumsec/south) "ctl" = ( /obj/structure/pipes/standard/manifold/hidden/supply, -/turf/open/floor/prison{ - dir = 1; - icon_state = "yellowcorner" - }, +/turf/open/floor/prison/yellowcorner/north, /area/prison/cellblock/mediumsec/east) "ctm" = ( /turf/open/floor/plating/plating_catwalk/prison, @@ -41288,17 +31600,11 @@ "cto" = ( /obj/effect/decal/cleanable/blood, /obj/structure/pipes/standard/manifold/hidden/supply, -/turf/open/floor/prison{ - dir = 1; - icon_state = "yellowcorner" - }, +/turf/open/floor/prison/yellowcorner/north, /area/prison/cellblock/mediumsec/south) "ctp" = ( /obj/structure/pipes/standard/manifold/fourway/hidden/supply, -/turf/open/floor/prison{ - dir = 4; - icon_state = "yellowcorner" - }, +/turf/open/floor/prison/yellowcorner/east, /area/prison/cellblock/mediumsec/south) "ctq" = ( /obj/item/weapon/gun/rifle/mar40, @@ -41309,27 +31615,19 @@ dir = 4; pixel_x = 12 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/prison/cellblock/mediumsec/west) "cts" = ( /obj/structure/machinery/computer/secure_data, /obj/structure/surface/table/reinforced, -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/northwest, /area/prison/security/monitoring/medsec/central) "ctu" = ( /obj/structure/toilet{ dir = 8; pixel_x = -4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/east, /area/prison/cellblock/mediumsec/east) "cty" = ( /obj/structure/machinery/medical_pod/sleeper, @@ -41362,37 +31660,25 @@ /obj/structure/pipes/vents/scrubber{ dir = 4 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/west, /area/prison/cellblock/mediumsec/west) "ctF" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 9 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/east, /area/prison/cellblock/mediumsec/west) "ctG" = ( /obj/structure/bed/chair/office/dark{ dir = 4 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/west, /area/prison/security/monitoring/medsec/central) "ctH" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 6 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/east, /area/prison/security/monitoring/medsec/central) "ctI" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -41401,19 +31687,13 @@ /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ name = "Security Booth" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/monitoring/medsec/central) "ctJ" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 5 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/west, /area/prison/cellblock/mediumsec/east) "ctK" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -41422,9 +31702,7 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/shuttle{ - icon_state = "floor7" - }, +/turf/open/shuttle/black, /area/prison/pirate) "ctL" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -41449,9 +31727,7 @@ /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 1 }, -/turf/open/shuttle{ - icon_state = "floor7" - }, +/turf/open/shuttle/black, /area/prison/pirate) "ctP" = ( /obj/structure/closet/walllocker/emerglocker/north, @@ -41465,9 +31741,7 @@ dir = 4; flipped = 1 }, -/turf/open/shuttle{ - icon_state = "floor7" - }, +/turf/open/shuttle/black, /area/prison/pirate) "ctQ" = ( /obj/effect/landmark/corpsespawner/prison_security, @@ -41476,81 +31750,53 @@ /turf/open/floor/plating, /area/prison/cellblock/mediumsec/west) "ctR" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/east, /area/prison/cellblock/mediumsec/west) "ctS" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow, /area/prison/cellblock/mediumsec/south) "ctT" = ( -/turf/open/floor/prison{ - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow, /area/prison/cellblock/mediumsec/south) "ctU" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "yellowcorner" - }, +/turf/open/floor/prison/yellowcorner/west, /area/prison/cellblock/mediumsec/south) "ctV" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - icon_state = "yellowcorner" - }, +/turf/open/floor/prison/yellowcorner, /area/prison/cellblock/mediumsec/south) "ctW" = ( /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/plating/plating_catwalk/prison, /area/prison/cellblock/mediumsec/south) "ctX" = ( -/turf/open/floor/prison{ - icon_state = "yellowcorner" - }, +/turf/open/floor/prison/yellowcorner, /area/prison/cellblock/mediumsec/south) "ctY" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 8; - icon_state = "yellowcorner" - }, +/turf/open/floor/prison/yellowcorner/west, /area/prison/cellblock/mediumsec/south) "ctZ" = ( /obj/effect/landmark/hunter_primary, -/turf/open/floor/prison{ - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow, /area/prison/cellblock/mediumsec/south) "cub" = ( /turf/closed/wall/r_wall/prison, /area/prison/security/monitoring/medsec/central) "cuc" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/west, /area/prison/security/monitoring/medsec/central) "cud" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/east, /area/prison/security/monitoring/medsec/central) "cue" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/west, /area/prison/cellblock/mediumsec/east) "cug" = ( /obj/structure/toilet{ @@ -41559,9 +31805,7 @@ /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/prison/pirate) "cuh" = ( /obj/structure/sink{ @@ -41570,17 +31814,13 @@ /obj/structure/mirror{ pixel_y = 28 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/prison/pirate) "cui" = ( /obj/structure/machinery/door/airlock/almayer/generic{ name = "Toilet" }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/prison/pirate) "cuj" = ( /obj/item/stack/sheet/metal{ @@ -41600,18 +31840,14 @@ dir = 2; name = "Rocinante Secondary Airlock" }, -/turf/open/shuttle{ - icon_state = "floor7" - }, +/turf/open/shuttle/black, /area/prison/pirate) "cum" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 5 }, /obj/structure/largecrate/random, -/turf/open/shuttle{ - icon_state = "floor7" - }, +/turf/open/shuttle/black, /area/prison/pirate) "cun" = ( /turf/closed/wall/prison, @@ -41621,19 +31857,13 @@ dir = 4 }, /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, -/turf/open/floor/prison{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/west, /area/prison/cellblock/mediumsec/south) "cup" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/east, /area/prison/cellblock/mediumsec/south) "cuq" = ( /obj/structure/pipes/vents/pump{ @@ -41642,27 +31872,19 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/west, /area/prison/cellblock/mediumsec/south) "cur" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "yellowcorner" - }, +/turf/open/floor/prison/yellowcorner, /area/prison/cellblock/mediumsec/south) "cus" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 8 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "yellowcorner" - }, +/turf/open/floor/prison/yellowcorner/west, /area/prison/cellblock/mediumsec/south) "cut" = ( /obj/structure/pipes/vents/pump{ @@ -41672,28 +31894,19 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/east, /area/prison/cellblock/mediumsec/south) "cuu" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 8 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/west, /area/prison/cellblock/mediumsec/south) "cuv" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/east, /area/prison/cellblock/mediumsec/south) "cuw" = ( /obj/structure/pipes/vents/pump{ @@ -41703,9 +31916,7 @@ dir = 4; flipped = 1 }, -/turf/open/shuttle{ - icon_state = "floor7" - }, +/turf/open/shuttle/black, /area/prison/pirate) "cuy" = ( /obj/structure/machinery/door/airlock/prison{ @@ -41713,16 +31924,11 @@ icon_state = "door_open"; opacity = 0 }, -/turf/open/floor/prison{ - icon_state = "yellowfull" - }, +/turf/open/floor/prison/yellowfull, /area/prison/cellblock/mediumsec/north) "cuz" = ( /obj/structure/toilet, -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/west, /area/prison/cellblock/mediumsec/west) "cuA" = ( /obj/structure/largecrate/random, @@ -41733,10 +31939,7 @@ /area/prison/cellblock/mediumsec/west) "cuE" = ( /obj/structure/pipes/vents/scrubber, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/west, /area/prison/security/monitoring/medsec/central) "cuF" = ( /obj/structure/machinery/power/apc{ @@ -41744,10 +31947,7 @@ pixel_x = 28; start_charge = 0 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/east, /area/prison/security/monitoring/medsec/central) "cuI" = ( /obj/structure/machinery/door/airlock/prison{ @@ -41755,9 +31955,7 @@ icon_state = "door_open"; opacity = 0 }, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/prison/cellblock/highsec/south/south) "cuJ" = ( /obj/structure/pipes/standard/simple/hidden/supply, @@ -41777,9 +31975,7 @@ /area/prison/cellblock/mediumsec/west) "cuL" = ( /obj/structure/bed, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/prison/cellblock/mediumsec/south) "cuM" = ( /obj/structure/machinery/light/small{ @@ -41788,24 +31984,16 @@ /turf/open/floor/plating/plating_catwalk/prison, /area/prison/cellblock/mediumsec/south) "cuN" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/east, /area/prison/cellblock/mediumsec/south) "cuO" = ( /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/prison/cellblock/mediumsec/west) "cuP" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/west, /area/prison/cellblock/mediumsec/south) "cuR" = ( /obj/structure/window/framed/prison/cell, @@ -41815,72 +32003,47 @@ /obj/structure/toilet{ dir = 4 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/west, /area/prison/cellblock/mediumsec/south) "cuT" = ( /obj/structure/sink{ dir = 4; pixel_x = 12 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/prison/cellblock/mediumsec/south) "cuU" = ( /obj/structure/sink{ dir = 8; pixel_x = -12 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/prison/cellblock/mediumsec/south) "cuV" = ( /obj/structure/toilet{ dir = 8; pixel_x = -4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/east, /area/prison/cellblock/mediumsec/south) "cuZ" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/west, /area/prison/cellblock/mediumsec/south) "cvc" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/east, /area/prison/cellblock/mediumsec/south) "cvd" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/west, /area/prison/cellblock/mediumsec/south) "cvf" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ name = "Security Booth" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/monitoring/medsec/central) "cvh" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/east, /area/prison/security/monitoring/medsec/central) "cvj" = ( /obj/structure/monorail{ @@ -41899,9 +32062,7 @@ /obj/structure/pipes/standard/tank/air{ dir = 4 }, -/turf/open/floor/plating{ - icon_state = "platebot" - }, +/turf/open/floor/plating/platebot, /area/prison/pirate) "cvm" = ( /obj/structure/pipes/standard/manifold/visible/cyan{ @@ -41936,9 +32097,7 @@ /area/prison/pirate) "cvq" = ( /obj/structure/machinery/portable_atmospherics/canister/oxygen, -/turf/open/floor/plating{ - icon_state = "platebot" - }, +/turf/open/floor/plating/platebot, /area/prison/pirate) "cvt" = ( /obj/structure/machinery/light/small{ @@ -41959,46 +32118,31 @@ /obj/structure/pipes/standard/tank/carbon_dioxide{ dir = 8 }, -/turf/open/floor/plating{ - icon_state = "platebot" - }, +/turf/open/floor/plating/platebot, /area/prison/pirate) "cvw" = ( /obj/structure/sink{ dir = 8; pixel_x = -12 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/west, /area/prison/cellblock/mediumsec/west) "cvx" = ( /obj/structure/machinery/vending/security, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/southwest, /area/prison/security/monitoring/medsec/central) "cvy" = ( /obj/structure/surface/rack, /obj/item/clothing/head/soft/ferret, -/turf/open/floor/prison{ - dir = 6; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/southeast, /area/prison/security/monitoring/medsec/central) "cvA" = ( -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/prison/cellblock/mediumsec/south) "cvB" = ( /obj/structure/bed, /obj/effect/landmark/corpsespawner/prisoner, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/prison/cellblock/mediumsec/south) "cvD" = ( /obj/structure/pipes/portables_connector{ @@ -42030,9 +32174,7 @@ dir = 8; pixel_x = -12 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/prison/cellblock/mediumsec/east) "cvH" = ( /obj/structure/pipes/standard/manifold/visible/yellow{ @@ -42107,10 +32249,7 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/west, /area/prison/cellblock/mediumsec/south) "cvS" = ( /obj/structure/pipes/standard/simple/visible/yellow{ @@ -42137,19 +32276,13 @@ /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/west, /area/prison/cellblock/mediumsec/south) "cvW" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/east, /area/prison/cellblock/mediumsec/south) "cvX" = ( /obj/structure/pipes/binary/circulator{ @@ -42201,10 +32334,7 @@ /turf/open/floor/plating, /area/prison/pirate) "cwd" = ( -/turf/open/floor/prison{ - dir = 6; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/southeast, /area/prison/cellblock/mediumsec/west) "cwg" = ( /obj/structure/pipes/standard/simple/visible/yellow{ @@ -42230,9 +32360,7 @@ pixel_x = -12 }, /obj/effect/landmark/corpsespawner/prisoner, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/prison/cellblock/mediumsec/south) "cwl" = ( /obj/structure/pipes/standard/simple/insulated{ @@ -42264,36 +32392,23 @@ /turf/closed/wall/r_wall/prison_unmeltable, /area/prison/cellblock/mediumsec/west) "cwr" = ( -/turf/open/floor/prison{ - icon_state = "yellowfull" - }, +/turf/open/floor/prison/yellowfull, /area/prison/cellblock/mediumsec/west) "cws" = ( /obj/effect/landmark/hunter_primary, /obj/effect/landmark/queen_spawn, -/turf/open/floor/prison{ - dir = 4; - icon_state = "yellowcorner" - }, +/turf/open/floor/prison/yellowcorner/east, /area/prison/cellblock/mediumsec/south) "cwt" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "yellowcorner" - }, +/turf/open/floor/prison/yellowcorner/north, /area/prison/cellblock/mediumsec/south) "cwu" = ( /obj/structure/bed, /obj/effect/landmark/corpsespawner/prisoner, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/prison/cellblock/mediumsec/east) "cwv" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/southwest, /area/prison/cellblock/mediumsec/east) "cwx" = ( /obj/structure/pipes/standard/simple/insulated{ @@ -42319,10 +32434,7 @@ /area/prison/pirate) "cwA" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/west, /area/prison/cellblock/mediumsec/south) "cwB" = ( /obj/structure/pipes/binary/pump{ @@ -42355,28 +32467,19 @@ /turf/open/floor/plating, /area/prison/pirate) "cwG" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/southwest, /area/prison/cellblock/mediumsec/west) "cwJ" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/east, /area/prison/cellblock/mediumsec/south) "cwK" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, /obj/effect/landmark/hunter_secondary, -/turf/open/floor/prison{ - dir = 8; - icon_state = "yellowcorner" - }, +/turf/open/floor/prison/yellowcorner/west, /area/prison/cellblock/mediumsec/south) "cwL" = ( /obj/structure/pipes/standard/manifold/fourway/hidden/supply, @@ -42393,9 +32496,7 @@ dir = 4 }, /obj/structure/girder/reinforced, -/turf/open/floor/prison{ - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow, /area/prison/cellblock/mediumsec/south) "cwQ" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -42405,15 +32506,10 @@ dir = 8; flipped = 1 }, -/turf/open/floor/prison{ - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow, /area/prison/cellblock/mediumsec/south) "cwT" = ( -/turf/open/floor/prison{ - dir = 6; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/southeast, /area/prison/cellblock/mediumsec/east) "cwU" = ( /obj/structure/shuttle/diagonal{ @@ -42426,9 +32522,7 @@ /obj/structure/pipes/standard/tank/phoron{ dir = 1 }, -/turf/open/floor/plating{ - icon_state = "platebot" - }, +/turf/open/floor/plating/platebot, /area/prison/pirate) "cwX" = ( /obj/structure/pipes/standard/simple/insulated, @@ -42440,27 +32534,20 @@ unacidable = 1; unslashable = 1 }, -/turf/open/floor/plating{ - icon_state = "platebot" - }, +/turf/open/floor/plating/platebot, /area/prison/pirate) "cxa" = ( /turf/closed/wall/r_wall/prison_unmeltable, /area/prison/cellblock/mediumsec/south) "cxc" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/east, /area/prison/cellblock/mediumsec/south) "cxd" = ( /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow, /area/prison/cellblock/mediumsec/south) "cxg" = ( /obj/structure/window/framed/prison/reinforced/hull, @@ -42475,9 +32562,7 @@ /obj/structure/machinery/door/airlock/highsecurity{ name = "Solitary Confinement" }, -/turf/open/floor/prison{ - icon_state = "yellowfull" - }, +/turf/open/floor/prison/yellowfull, /area/prison/cellblock/mediumsec/south) "cxl" = ( /obj/structure/shuttle/engine/heater, @@ -42501,23 +32586,17 @@ "cxq" = ( /obj/effect/decal/cleanable/blood, /obj/effect/landmark/corpsespawner/prisoner, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/prison/cellblock/mediumsec/south) "cxr" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/prison/cellblock/mediumsec/east) "cxu" = ( /obj/structure/toilet{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/prison/cellblock/mediumsec/south) "cxx" = ( /obj/structure/shuttle/engine/router{ @@ -42552,27 +32631,18 @@ unacidable = 1; use_power = 0 }, -/turf/open/floor/prison{ - dir = 5; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/northeast, /area/prison/cellblock/mediumsec/south) "cxE" = ( /obj/effect/landmark/monkey_spawn, /turf/open/floor/plating, /area/prison/cellblock/mediumsec/south) "cxF" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/north, /area/prison/cellblock/mediumsec/south) "cxG" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 4; - icon_state = "yellowcorner" - }, +/turf/open/floor/prison/yellowcorner/east, /area/prison/cellblock/mediumsec/south) "cxI" = ( /obj/structure/pipes/vents/pump/on, @@ -42609,34 +32679,23 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/west, /area/prison/cellblock/mediumsec/south) "cxP" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/prison/cellblock/mediumsec/south) "cxT" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/north, /area/prison/cellblock/mediumsec/south) "cxU" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/north, /area/prison/cellblock/mediumsec/south) "cxV" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -42649,17 +32708,12 @@ unacidable = 1; use_power = 0 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/east, /area/prison/cellblock/mediumsec/south) "cxX" = ( /obj/structure/bed, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/prison/cellblock/mediumsec/south) "cya" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -42672,9 +32726,7 @@ /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/prison/cellblock/mediumsec/south) "cyc" = ( /obj/structure/machinery/power/apc{ @@ -42682,79 +32734,55 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/north, /area/prison/cellblock/mediumsec/south) "cyd" = ( /obj/structure/pipes/vents/scrubber, /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/prison/cellblock/mediumsec/south) "cyf" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/prison/cellblock/mediumsec/south) "cyj" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 1; - icon_state = "yellowcorner" - }, +/turf/open/floor/prison/yellowcorner/north, /area/prison/cellblock/mediumsec/south) "cyk" = ( /obj/item/frame/table, /obj/item/stack/rods, -/turf/open/floor/prison{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/north, /area/prison/cellblock/mediumsec/south) "cyn" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/southwest, /area/prison/cellblock/mediumsec/south) "cyo" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "yellowcorner" - }, +/turf/open/floor/prison/yellowcorner, /area/prison/cellblock/mediumsec/south) "cyp" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow, /area/prison/cellblock/mediumsec/south) "cyq" = ( /obj/structure/pipes/standard/manifold/fourway/hidden/supply, -/turf/open/floor/prison{ - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow, /area/prison/cellblock/mediumsec/south) "cyr" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "yellowcorner" - }, +/turf/open/floor/prison/yellowcorner, /area/prison/cellblock/mediumsec/south) "cyw" = ( /obj/structure/machinery/disposal/deliveryChute{ @@ -42769,18 +32797,13 @@ dir = 4 }, /obj/item/frame/table, -/turf/open/floor/prison{ - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow, /area/prison/cellblock/mediumsec/south) "cyz" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "yellowcorner" - }, +/turf/open/floor/prison/yellowcorner/west, /area/prison/cellblock/mediumsec/south) "cyB" = ( /obj/structure/machinery/light{ @@ -42789,10 +32812,7 @@ /obj/structure/pipes/vents/scrubber{ dir = 4 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/west, /area/prison/cellblock/mediumsec/south) "cyD" = ( /turf/closed/wall/r_wall/prison, @@ -42803,10 +32823,7 @@ name = "Medium-Security Monitoring" }, /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/monitoring/medsec/south) "cyF" = ( /obj/structure/pipes/standard/simple/hidden/supply, @@ -42814,16 +32831,11 @@ dir = 2; name = "Medium-Security Monitoring" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/monitoring/medsec/south) "cyG" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - icon_state = "yellowcorner" - }, +/turf/open/floor/prison/yellowcorner, /area/prison/cellblock/mediumsec/south) "cyI" = ( /obj/structure/machinery/light{ @@ -42832,19 +32844,13 @@ /obj/structure/pipes/vents/scrubber{ dir = 8 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/east, /area/prison/cellblock/mediumsec/south) "cyJ" = ( /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/southwest, /area/prison/cellblock/mediumsec/south) "cyK" = ( /obj/structure/monorail{ @@ -42857,23 +32863,14 @@ "cyL" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/effect/landmark/yautja_teleport, -/turf/open/floor/prison{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/east, /area/prison/cellblock/mediumsec/south) "cyM" = ( /obj/structure/toilet, -/turf/open/floor/prison{ - dir = 1; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/north, /area/prison/cellblock/mediumsec/south) "cyN" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/north, /area/prison/cellblock/mediumsec/south) "cyO" = ( /turf/open/floor/plating, @@ -42882,17 +32879,11 @@ /obj/structure/sink{ pixel_y = 23 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/north, /area/prison/cellblock/mediumsec/south) "cyQ" = ( /obj/structure/machinery/vending/snack, -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/northwest, /area/prison/security/monitoring/medsec/south) "cyS" = ( /obj/structure/monorail{ @@ -42919,70 +32910,44 @@ pixel_x = 9; pixel_y = 8 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/north, /area/prison/security/monitoring/medsec/south) "cyV" = ( /obj/structure/machinery/computer/cameras{ network = list("PRISON") }, /obj/structure/surface/table/reinforced, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/north, /area/prison/security/monitoring/medsec/south) "cyW" = ( /obj/structure/machinery/computer/secure_data, /obj/structure/surface/table/reinforced, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/north, /area/prison/security/monitoring/medsec/south) "cyX" = ( /obj/structure/surface/table/reinforced, /obj/item/device/flashlight/lamp, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/north, /area/prison/security/monitoring/medsec/south) "cyY" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/north, /area/prison/security/monitoring/medsec/south) "cyZ" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/prison/cellblock/mediumsec/south) "cza" = ( /obj/structure/machinery/vending/cola, -/turf/open/floor/prison{ - dir = 5; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/northeast, /area/prison/security/monitoring/medsec/south) "czb" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 1; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/north, /area/prison/cellblock/mediumsec/south) "czc" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 10; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/southwest, /area/prison/cellblock/mediumsec/south) "czd" = ( /obj/structure/disposaloutlet, @@ -42996,18 +32961,13 @@ /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/prison{ - dir = 6; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/southeast, /area/prison/cellblock/mediumsec/south) "czf" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "yellowfull" - }, +/turf/open/floor/prison/yellowfull, /area/prison/cellblock/mediumsec/south) "czg" = ( /obj/structure/machinery/light/small{ @@ -43026,28 +32986,17 @@ /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/prison/cellblock/mediumsec/south) "czj" = ( /obj/structure/filingcabinet, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/west, /area/prison/security/monitoring/medsec/south) "czk" = ( -/turf/open/floor/prison{ - dir = 9; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/northwest, /area/prison/cellblock/mediumsec/south) "czl" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "yellowcorner" - }, +/turf/open/floor/prison/yellowcorner/east, /area/prison/cellblock/mediumsec/south) "czo" = ( /turf/open/floor/prison, @@ -43068,18 +33017,13 @@ /area/prison/security/monitoring/medsec/south) "czs" = ( /obj/structure/filingcabinet, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/east, /area/prison/security/monitoring/medsec/south) "czt" = ( /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/prison/cellblock/mediumsec/south) "czu" = ( /obj/structure/machinery/light/small{ @@ -43089,16 +33033,11 @@ /area/prison/cellblock/mediumsec/south) "czv" = ( /obj/structure/surface/table/reinforced, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/prison/cellblock/mediumsec/south) "czw" = ( /obj/effect/landmark/corpsespawner/prisoner, -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/east, /area/prison/cellblock/mediumsec/south) "czx" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -43130,28 +33069,18 @@ /area/prison/security/monitoring/medsec/south) "czD" = ( /obj/structure/filingcabinet, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/southwest, /area/prison/security/monitoring/medsec/south) "czG" = ( -/turf/open/floor/prison{ - icon_state = "darkredcorners2" - }, +/turf/open/floor/prison/darkredcorners2, /area/prison/security/monitoring/medsec/south) "czH" = ( /obj/structure/machinery/light, -/turf/open/floor/prison{ - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2, /area/prison/security/monitoring/medsec/south) "czI" = ( /obj/structure/filingcabinet, -/turf/open/floor/prison{ - dir = 6; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/southeast, /area/prison/security/monitoring/medsec/south) "czJ" = ( /obj/structure/bed/chair/comfy{ @@ -43162,25 +33091,16 @@ pixel_x = -24; start_charge = 0 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/southwest, /area/prison/security/monitoring/medsec/south) "czK" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkredcorners2" - }, +/turf/open/floor/prison/darkredcorners2/west, /area/prison/security/monitoring/medsec/south) "czL" = ( /obj/structure/bed/chair/comfy{ dir = 8 }, -/turf/open/floor/prison{ - dir = 6; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/southeast, /area/prison/security/monitoring/medsec/south) "czM" = ( /obj/structure/window/framed/prison/reinforced/hull, @@ -43190,19 +33110,13 @@ /obj/structure/bed/chair/comfy{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/southwest, /area/prison/security/monitoring/medsec/south) "czO" = ( /obj/structure/bed/chair/comfy{ dir = 1 }, -/turf/open/floor/prison{ - dir = 6; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/southeast, /area/prison/security/monitoring/medsec/south) "czZ" = ( /obj/structure/machinery/door/airlock/prison/horizontal{ @@ -43210,9 +33124,7 @@ icon_state = "door_open"; opacity = 0 }, -/turf/open/floor/prison{ - icon_state = "yellowfull" - }, +/turf/open/floor/prison/yellowfull, /area/prison/cellblock/mediumsec/south) "cAc" = ( /obj/structure/window/framed/prison/reinforced, @@ -43252,9 +33164,7 @@ icon_state = "door_open"; opacity = 0 }, -/turf/open/floor/prison{ - icon_state = "yellowfull" - }, +/turf/open/floor/prison/yellowfull, /area/prison/cellblock/mediumsec/south) "cBB" = ( /obj/structure/surface/table/reinforced, @@ -43262,24 +33172,18 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/shuttle{ - icon_state = "floor7" - }, +/turf/open/shuttle/black, /area/prison/pirate) "cBD" = ( /obj/structure/surface/rack, -/turf/open/floor/prison{ - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow, /area/prison/cellblock/mediumsec/south) "cBY" = ( /obj/structure/barricade/handrail/type_b{ dir = 4 }, /obj/structure/barricade/handrail/type_b, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/prison/hallway/central/west) "cDl" = ( /obj/effect/decal/warning_stripes{ @@ -43288,17 +33192,11 @@ /obj/structure/machinery/landinglight/ds2/delaytwo{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/southwest, /area/prison/hanger/research) "cMW" = ( /obj/item/weapon/gun/rifle/mar40, -/turf/open/floor/prison{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/west, /area/prison/cellblock/protective) "cNc" = ( /obj/structure/machinery/light/small, @@ -43306,18 +33204,12 @@ /area/prison/cellblock/mediumsec/east) "cOP" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/hallway/central/south) "cPc" = ( /obj/structure/surface/table/reinforced, /obj/item/reagent_container/food/condiment/saltshaker, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/canteen) "cPH" = ( /obj/structure/machinery/light{ @@ -43331,19 +33223,13 @@ icon_state = "p_stair_full" }, /obj/structure/platform, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/canteen) "cSA" = ( /obj/structure/platform_decoration{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/hallway/central/west) "cWg" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony{ @@ -43352,10 +33238,7 @@ /turf/open/floor/prison, /area/prison/canteen) "cWx" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/hallway/central/south) "cWW" = ( /obj/structure/largecrate/random/case/small, @@ -43363,26 +33246,17 @@ /area/prison/security/checkpoint/maxsec) "cXK" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 8; - icon_state = "green" - }, +/turf/open/floor/prison/green/west, /area/prison/monorail/west) "cYf" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/hallway/central/north) "cYv" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/research/RD) "cYR" = ( /obj/structure/machinery/power/apc{ @@ -43390,10 +33264,7 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/prison{ - dir = 5; - icon_state = "green" - }, +/turf/open/floor/prison/green/northeast, /area/prison/security/monitoring/lowsec/ne) "cZY" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -43406,10 +33277,7 @@ /turf/closed/wall/prison, /area/prison/cellblock/lowsec/ne) "dcN" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/prison/storage/medsec) "deI" = ( /turf/closed/shuttle/elevator{ @@ -43418,10 +33286,7 @@ /area/prison/hallway/central/west) "deQ" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 10; - icon_state = "damaged2" - }, +/turf/open/floor/prison/damaged2/southwest, /area/prison/hallway/central/east) "dgl" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -43461,10 +33326,7 @@ icon_state = "poster1"; pixel_y = 32 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/highsec/south/south) "dnc" = ( /obj/structure/pipes/standard/manifold/hidden/supply, @@ -43475,27 +33337,20 @@ dir = 2; name = "Protective Custody Cells" }, -/turf/open/floor/prison{ - icon_state = "yellowfull" - }, +/turf/open/floor/prison/yellowfull, /area/prison/cellblock/mediumsec/north) "dni" = ( /obj/structure/bed, /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/prison/cellblock/mediumsec/north) "dnt" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/northwest, /area/prison/cellblock/mediumsec/north) "dou" = ( /turf/open/floor/plating, @@ -43506,10 +33361,7 @@ icon_state = "p_stair_full" }, /obj/structure/platform, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/storage/vip) "dqf" = ( /obj/effect/landmark/xeno_hive_spawn, @@ -43527,9 +33379,7 @@ /obj/structure/platform_decoration{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/prison/hanger/research) "dyt" = ( /obj/structure/largecrate/random/barrel/green, @@ -43546,19 +33396,13 @@ /area/prison/residential/north) "dzH" = ( /obj/structure/platform_decoration, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean_marked" - }, +/turf/open/floor/prison/bright_clean_marked/southwest, /area/prison/canteen) "dAz" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/southwest, /area/prison/security/monitoring/highsec) "dBI" = ( /obj/structure/largecrate/random, @@ -43568,10 +33412,7 @@ "dCC" = ( /obj/structure/surface/table/reinforced, /obj/item/reagent_container/food/snacks/baguette, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/canteen) "dDv" = ( /obj/structure/machinery/light{ @@ -43583,34 +33424,22 @@ /obj/structure/bed/chair/office{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/hallway/central/west) "dEm" = ( /obj/structure/window/reinforced{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/cellblock/highsec/south/south) "dHr" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkpurplecorners2" - }, +/turf/open/floor/prison/darkpurplecorners2/north, /area/prison/hanger/research) "dIT" = ( /obj/structure/barricade/handrail/wire{ dir = 8 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/west, /area/prison/telecomms) "dJf" = ( /obj/structure/sink{ @@ -43618,9 +33447,7 @@ pixel_x = -12 }, /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/prison/cellblock/mediumsec/east) "dMw" = ( /obj/structure/surface/rack, @@ -43640,10 +33467,7 @@ /obj/structure/machinery/landinglight/ds2{ dir = 4 }, -/turf/open/floor/prison{ - dir = 5; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/northeast, /area/prison/hanger/research) "dRQ" = ( /obj/structure/machinery/alarm/almayer{ @@ -43660,9 +33484,7 @@ /area/prison/maintenance/residential/nw) "dTa" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/prison/cellblock/mediumsec/south) "dUw" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -43693,10 +33515,7 @@ /obj/structure/bed/chair/office{ dir = 4 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "green" - }, +/turf/open/floor/prison/green/west, /area/prison/cellblock/lowsec/nw) "eeO" = ( /obj/effect/decal/warning_stripes{ @@ -43708,10 +33527,7 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/maintenance/residential/access/south) "efk" = ( /obj/structure/surface/table/reinforced, @@ -43738,9 +33554,7 @@ /obj/structure/flora/pottedplant{ icon_state = "pottedplant_10" }, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, +/turf/open/floor/prison/bluefull, /area/prison/security/checkpoint/vip) "eoP" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony{ @@ -43794,10 +33608,7 @@ dir = 2; name = "Low-Security" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/hallway/central/east) "ezq" = ( /obj/structure/pipes/standard/simple/hidden/supply, @@ -43808,9 +33619,7 @@ dir = 2; name = "High-Security Monitoring" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/prison/cellblock/highsec/south/south) "eEq" = ( /obj/structure/pipes/standard/simple/hidden/supply, @@ -43829,20 +33638,14 @@ /area/prison/residential/north) "eHA" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, -/turf/open/floor/prison{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/north, /area/prison/cellblock/mediumsec/south) "eKr" = ( /turf/open/floor/plating, /area/prison/storage/medsec) "eKD" = ( /obj/structure/pipes/standard/manifold/hidden/supply, -/turf/open/floor/prison{ - dir = 10; - icon_state = "damaged1" - }, +/turf/open/floor/prison/damaged1/southwest, /area/prison/cellblock/mediumsec/east) "eKH" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -43861,10 +33664,7 @@ /turf/open/shuttle/elevator/grating, /area/prison/hallway/central/west) "eMW" = ( -/turf/open/floor/prison{ - dir = 6; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/southeast, /area/prison/telecomms) "eNJ" = ( /obj/structure/window/framed/prison/reinforced, @@ -43875,10 +33675,7 @@ dir = 4 }, /obj/effect/alien/weeds/node, -/turf/open/floor/prison{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/prison/red/east, /area/prison/cellblock/highsec/south/north) "ePO" = ( /obj/structure/reagent_dispensers/watertank, @@ -43888,20 +33685,14 @@ /obj/structure/machinery/alarm/almayer{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/hallway/central/west) "eRY" = ( /turf/closed/wall/r_wall/prison, /area/prison/cellblock/mediumsec/north) "eTo" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/hallway/central/south) "eTt" = ( /obj/structure/machinery/light, @@ -43915,27 +33706,19 @@ /area/prison/parole/protective_custody) "eWi" = ( /obj/structure/machinery/light, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/canteen) "eWk" = ( /obj/structure/bed/chair{ dir = 1 }, /obj/structure/machinery/light, -/turf/open/floor/prison{ - icon_state = "red" - }, +/turf/open/floor/prison/red, /area/prison/cellblock/highsec/north/south) "eXA" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/mineral_door/resin, -/turf/open/floor/prison{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/prison/red/east, /area/prison/cellblock/highsec/south/north) "eYV" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ @@ -43948,9 +33731,7 @@ /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe, /area/prison/cellblock/mediumsec/north) "faW" = ( /obj/structure/girder/displaced, @@ -43972,9 +33753,7 @@ /obj/structure/machinery/door/airlock/almayer/medical/glass/colony{ name = "Research Dorms" }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/prison/quarters/research) "fhc" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -43987,9 +33766,7 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "blue" - }, +/turf/open/floor/prison/blue, /area/prison/cellblock/protective) "fkx" = ( /obj/structure/machinery/light, @@ -44003,18 +33780,13 @@ /area/prison/maintenance/staff_research) "foY" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/cellblock/lowsec/se) "fqG" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "bright_clean_marked" - }, +/turf/open/floor/prison/bright_clean_marked, /area/prison/telecomms) "ftk" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony{ @@ -44043,10 +33815,7 @@ dir = 1; icon_state = "pipe-c" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/prison/cellblock/lowsec/se) "fxZ" = ( /obj/structure/machinery/door/airlock/prison{ @@ -44055,18 +33824,13 @@ opacity = 0 }, /obj/structure/curtain/open, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/prison/cellblock/highsec/north/south) "fyi" = ( /obj/structure/platform_decoration{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/hallway/central/west) "fCr" = ( /obj/structure/machinery/light/small{ @@ -44076,10 +33840,7 @@ /area/prison/maintenance/residential/sw) "fEZ" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 5; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/northeast, /area/prison/cellblock/mediumsec/east) "fFq" = ( /obj/structure/window/framed/prison/cell, @@ -44089,10 +33850,7 @@ "fGf" = ( /obj/effect/landmark/xeno_hive_spawn, /obj/effect/landmark/ert_spawns/groundside_xeno, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/research/secret/testing) "fHI" = ( /obj/structure/machinery/light{ @@ -44102,15 +33860,10 @@ /area/prison/cellblock/mediumsec/east) "fLH" = ( /obj/structure/machinery/space_heater, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/prison/hallway/central/west) "fLR" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/hallway/central/south) "fLT" = ( /obj/structure/window/framed/prison/reinforced, @@ -44124,16 +33877,11 @@ unacidable = 1; use_power = 0 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/east, /area/prison/cellblock/mediumsec/south) "fMU" = ( /obj/structure/bed/chair/office/dark, -/turf/open/floor/prison{ - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2, /area/prison/telecomms) "fNt" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ @@ -44142,39 +33890,26 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/cellblock/lowsec/se) "fOl" = ( /obj/structure/window/reinforced{ dir = 8 }, /obj/structure/window/reinforced, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/cellblock/highsec/south/south) "fPR" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/cellblock/highsec/south/south) "fQu" = ( /obj/vehicle/train/cargo/engine, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/prison/hallway/central/west) "fRC" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/mineral_door/resin, -/turf/open/floor/prison{ - icon_state = "redcorner" - }, +/turf/open/floor/prison/redcorner, /area/prison/cellblock/highsec/south/north) "fUs" = ( /turf/closed/wall/r_wall/prison_unmeltable, @@ -44194,10 +33929,7 @@ /turf/open/floor/plating, /area/prison/maintenance/residential/nw) "gbI" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/west, /area/prison/security/checkpoint/highsec_medsec) "gbV" = ( /obj/structure/machinery/door/poddoor/almayer{ @@ -44207,9 +33939,7 @@ unacidable = 1; use_power = 0 }, -/turf/open/floor/prison{ - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow, /area/prison/cellblock/mediumsec/east) "gcr" = ( /obj/structure/disposalpipe/segment{ @@ -44234,10 +33964,7 @@ /area/prison/cellblock/mediumsec/south) "gfl" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 10; - icon_state = "damaged2" - }, +/turf/open/floor/prison/damaged2/southwest, /area/prison/hallway/central/east) "ghp" = ( /obj/structure/disposalpipe/segment{ @@ -44259,10 +33986,7 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/east, /area/prison/research/secret/bioengineering) "gne" = ( /obj/effect/decal/warning_stripes{ @@ -44271,26 +33995,18 @@ /obj/structure/machinery/landinglight/ds2/delayone{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/prison/hanger/research) "gpm" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/checkpoint/highsec/n) "gpx" = ( /obj/structure/surface/table/reinforced/prison, /obj/effect/landmark/good_item, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/prison/telecomms) "grW" = ( /turf/closed/shuttle/elevator/button/freight, @@ -44302,10 +34018,7 @@ /turf/open/floor/prison, /area/prison/visitation) "gtK" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/prison/darkyellowcorners2/west, /area/prison/telecomms) "gvb" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -44317,18 +34030,13 @@ /obj/structure/machinery/door/airlock/almayer/engineering/colony{ name = "Medium-Security Storage" }, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, +/turf/open/floor/prison/bluefull, /area/prison/storage/medsec) "gvj" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/canteen) "gwI" = ( /obj/effect/decal/warning_stripes{ @@ -44337,18 +34045,12 @@ /obj/structure/machinery/landinglight/ds2/delaythree{ dir = 8 }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/northwest, /area/prison/hanger/research) "gxV" = ( /obj/structure/surface/table/reinforced, /obj/item/reagent_container/food/snacks/boiledrice, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/canteen) "gAa" = ( /obj/structure/machinery/light/small{ @@ -44368,10 +34070,7 @@ /area/prison/hallway/central/south) "gBz" = ( /obj/structure/filingcabinet, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/checkpoint/highsec/n) "gBM" = ( /obj/structure/pipes/standard/manifold/hidden/supply, @@ -44382,10 +34081,7 @@ /obj/structure/machinery/alarm/almayer{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/prison/telecomms) "gFN" = ( /obj/structure/surface/table/almayer, @@ -44404,20 +34100,14 @@ /obj/structure/bed/chair/office/dark{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/prison/telecomms) "gIv" = ( /obj/structure/stairs/perspective{ dir = 8; icon_state = "p_stair_full" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/canteen) "gIz" = ( /obj/structure/machinery/vending/cola, @@ -44427,9 +34117,7 @@ /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/prison/residential/north) "gJz" = ( /obj/structure/bed/chair/comfy{ @@ -44462,10 +34150,7 @@ }, /obj/effect/decal/siding/wood_siding, /obj/structure/machinery/light, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/residential/central) "gML" = ( /obj/structure/flora/bush/ausbushes/ppflowers, @@ -44477,18 +34162,13 @@ pixel_x = 4; pixel_y = 21 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/highsec/north/south) "gOD" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/prison/cellblock/mediumsec/south) "gOT" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -44497,35 +34177,24 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/northwest, /area/prison/cellblock/protective) "gPF" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "yellowcorner" - }, +/turf/open/floor/prison/yellowcorner, /area/prison/cellblock/mediumsec/west) "gPR" = ( /turf/closed/wall/prison, /area/prison/maintenance/staff_research) "gPU" = ( /obj/structure/machinery/light/small, -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/west, /area/prison/cellblock/mediumsec/west) "gQP" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/residential/north) "gRU" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -44544,6 +34213,12 @@ /obj/structure/largecrate/random/case, /turf/open/floor/plating, /area/prison/maintenance/residential/access/south) +"gXC" = ( +/obj/structure/surface/rack, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/turf/open/floor/plating, +/area/prison/engineering) "gXQ" = ( /obj/structure/machinery/light/small{ dir = 8 @@ -44562,10 +34237,7 @@ use_power = 0 }, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 10; - icon_state = "damaged1" - }, +/turf/open/floor/prison/damaged1/southwest, /area/prison/cellblock/mediumsec/east) "hdp" = ( /obj/structure/largecrate/random/barrel/yellow, @@ -44597,10 +34269,7 @@ "hjN" = ( /obj/structure/surface/table/reinforced, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/canteen) "hlO" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -44609,19 +34278,13 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/hallway/central/south) "hmc" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/prison/monorail/west) "hmQ" = ( /obj/structure/surface/table/reinforced, @@ -44629,10 +34292,7 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/prison/residential/central) "hmU" = ( /obj/structure/machinery/light/small, @@ -44642,10 +34302,7 @@ /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/west, /area/prison/cellblock/mediumsec/east) "hnD" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony{ @@ -44667,10 +34324,7 @@ dir = 4; icon_state = "p_stair_full" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/security/checkpoint/highsec/n) "hqX" = ( /obj/structure/machinery/light{ @@ -44693,17 +34347,11 @@ unacidable = 1; use_power = 0 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/north, /area/prison/cellblock/mediumsec/east) "hyX" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "damaged2" - }, +/turf/open/floor/prison/damaged2/southwest, /area/prison/storage/medsec) "hzb" = ( /obj/item/stack/cable_coil/cut{ @@ -44720,29 +34368,20 @@ /obj/structure/machinery/landinglight/ds2/delaythree{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/east, /area/prison/hanger/research) "hBf" = ( /obj/structure/machinery/light{ dir = 8 }, /obj/structure/mineral_door/resin, -/turf/open/floor/prison{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/prison/red/west, /area/prison/cellblock/highsec/south/north) "hCM" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor{ - dir = 1; - icon_state = "chapel" - }, +/turf/open/floor/chapel/north, /area/prison/chapel) "hEK" = ( /obj/structure/machinery/light/small, @@ -44751,48 +34390,31 @@ "hEL" = ( /obj/structure/surface/table/reinforced, /obj/item/reagent_container/food/snacks/cheeseburger, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/canteen) "hFD" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/effect/alien/weeds/node, -/turf/open/floor/prison{ - dir = 1; - icon_state = "rampbottom" - }, +/turf/open/floor/prison/rampbottom/north, /area/prison/maintenance/residential/sw) "hGm" = ( /obj/structure/sign/poster{ icon_state = "poster8"; pixel_y = -32 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/residential/north) "hHy" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, -/turf/open/floor/prison{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/west, /area/prison/cellblock/mediumsec/south) "hHP" = ( /obj/structure/window/framed/prison/reinforced, -/turf/open/floor/prison{ - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull, /area/prison/quarters/staff) "hKn" = ( /obj/item/stack/sheet/wood, -/turf/open/floor/prison{ - dir = 10; - icon_state = "green" - }, +/turf/open/floor/prison/green/southwest, /area/prison/cellblock/lowsec/nw) "hKp" = ( /obj/effect/alien/weeds/node, @@ -44808,16 +34430,11 @@ /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/northwest, /area/prison/cellblock/highsec/south/north) "hMP" = ( /obj/effect/alien/weeds/node, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/prison/cellblock/highsec/south/north) "hND" = ( /obj/structure/disposalpipe/segment{ @@ -44831,56 +34448,37 @@ /area/prison/hallway/central/north) "hNI" = ( /obj/structure/bed/chair/office, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/lowsec/nw) "hNY" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, /obj/structure/mineral_door/resin, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/prison/cellblock/highsec/south/north) "hOy" = ( /obj/structure/surface/table/reinforced{ dir = 8; flipped = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/prison/cellblock/mediumsec/south) "hQm" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/hallway/central/east) "hQS" = ( /obj/structure/largecrate/random/case/small, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/chapel) "hQW" = ( /obj/item/tool/mop, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/residential/north) "hRg" = ( /obj/structure/surface/table/gamblingtable, /obj/item/toy/deck/uno, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/lowsec/nw) "hRZ" = ( /obj/structure/pipes/standard/simple/hidden/supply, @@ -44888,9 +34486,7 @@ /area/prison/recreation/staff) "hSK" = ( /obj/structure/mineral_door/resin, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/prison/cellblock/highsec/south/north) "hTe" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -44904,9 +34500,7 @@ dir = 8 }, /obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/prison/residential/south) "hUO" = ( /obj/structure/machinery/power/smes/buildable{ @@ -44916,27 +34510,18 @@ /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/prison/engineering) "hWd" = ( /obj/effect/landmark/monkey_spawn, /turf/open/floor/plating/plating_catwalk/prison, /area/prison/hallway/central/south) "hXj" = ( -/turf/open/floor/prison{ - dir = 5; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/northeast, /area/prison/cellblock/mediumsec/north) "hXJ" = ( /obj/structure/platform, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean_marked" - }, +/turf/open/floor/prison/bright_clean_marked/southwest, /area/prison/canteen) "hXW" = ( /obj/structure/pipes/standard/simple/hidden/supply, @@ -44947,10 +34532,7 @@ unacidable = 1; use_power = 0 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/west, /area/prison/cellblock/mediumsec/north) "hYq" = ( /obj/structure/machinery/door/airlock/multi_tile/elevator/freight, @@ -44961,10 +34543,7 @@ flipped = 1 }, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/yard) "ibG" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ @@ -44975,9 +34554,7 @@ /obj/item/ammo_magazine/pistol/b92fs, /obj/item/ammo_magazine/pistol/b92fs, /obj/item/weapon/gun/pistol/b92fs, -/turf/open/floor/prison{ - icon_state = "whitepurplefull" - }, +/turf/open/floor/prison/whitepurplefull, /area/prison/research/secret) "ibJ" = ( /obj/structure/largecrate/random, @@ -44988,16 +34565,11 @@ icon_state = "wood_siding12" }, /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor{ - icon_state = "asteroid" - }, +/turf/open/floor/asteroid, /area/prison/residential/north) "ifS" = ( /obj/structure/largecrate/random/barrel, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/hallway/central/north) "igb" = ( /obj/structure/largecrate/random/barrel/blue, @@ -45005,17 +34577,12 @@ /area/prison/cellblock/mediumsec/west) "igB" = ( /obj/structure/girder, -/turf/open/floor/prison{ - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow, /area/prison/cellblock/mediumsec/south) "igJ" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/checkpoint/highsec/s) "iif" = ( /obj/effect/landmark/hunter_primary, @@ -45023,16 +34590,10 @@ /area/prison/hallway/central/south) "iiI" = ( /obj/structure/pipes/standard/manifold/hidden/supply, -/turf/open/floor/prison{ - dir = 4; - icon_state = "yellowcorner" - }, +/turf/open/floor/prison/yellowcorner/east, /area/prison/cellblock/mediumsec/east) "iob" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/hallway/central/west) "ioD" = ( /obj/structure/machinery/door/poddoor/almayer{ @@ -45042,10 +34603,7 @@ unacidable = 1; use_power = 0 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/east, /area/prison/cellblock/mediumsec/north) "iph" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -45055,19 +34613,13 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/hallway/east) "iqo" = ( /obj/structure/platform_decoration{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean_marked" - }, +/turf/open/floor/prison/bright_clean_marked/southwest, /area/prison/canteen) "irh" = ( /obj/effect/decal/siding/wood_siding{ @@ -45090,18 +34642,13 @@ /area/prison/cellblock/highsec/south/south) "isr" = ( /obj/structure/barricade/handrail/wire, -/turf/open/floor/prison{ - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2, /area/prison/telecomms) "iuH" = ( /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/west, /area/prison/cellblock/mediumsec/west) "ixb" = ( /obj/structure/pipes/vents/pump{ @@ -45116,18 +34663,13 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/hallway/central/west) "ixF" = ( /obj/structure/surface/rack, /obj/item/reagent_container/glass/bucket, /obj/item/reagent_container/glass/bucket, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/prison/hallway/central/west) "izT" = ( /obj/structure/window/framed/prison/reinforced, @@ -45138,10 +34680,7 @@ /obj/structure/flora/pottedplant{ icon_state = "pottedplant_10" }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/east, /area/prison/security/checkpoint/vip) "iBN" = ( /obj/structure/machinery/light/small{ @@ -45154,10 +34693,7 @@ req_one_access_txt = "19;200" }, /obj/structure/barricade/handrail/wire, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/prison/telecomms) "iDV" = ( /obj/item/trash/chips, @@ -45165,9 +34701,7 @@ /area/prison/maintenance/residential/access/south) "iEp" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe, /area/prison/telecomms) "iGo" = ( /obj/structure/flora/bush/ausbushes/ppflowers, @@ -45186,40 +34720,28 @@ /turf/open/floor/plating, /area/prison/maintenance/residential/nw) "iHC" = ( -/turf/open/floor/prison{ - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe, /area/prison/telecomms) "iIg" = ( /obj/structure/kitchenspike, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/prison/research) "iIA" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, /obj/structure/girder, -/turf/open/floor/prison{ - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow, /area/prison/cellblock/mediumsec/south) "iLz" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/residential/central) "iND" = ( /obj/structure/bed/chair/office, -/turf/open/floor/prison{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/prison/red/north, /area/prison/security/checkpoint/highsec/n) "iOc" = ( /obj/structure/machinery/light{ @@ -45241,10 +34763,7 @@ /turf/open/floor/plating, /area/prison/maintenance/residential/sw) "iSi" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/maintenance/residential/access/south) "iVr" = ( /obj/structure/bed/chair/comfy, @@ -45255,32 +34774,22 @@ /turf/open/floor/prison, /area/prison/recreation/medsec) "iWG" = ( -/turf/open/floor/prison{ - dir = 9; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/northwest, /area/prison/cellblock/mediumsec/west) "iWJ" = ( /obj/vehicle/train/cargo/trolley, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/prison/hallway/central/west) "iWK" = ( /obj/structure/barricade/handrail/wire, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/southwest, /area/prison/telecomms) "iYD" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 1 }, /obj/effect/landmark/structure_spawner/xvx_hive/xeno_core, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/prison/residential/north) "jan" = ( /obj/structure/pipes/vents/pump{ @@ -45293,18 +34802,13 @@ /area/prison/residential/south) "jaQ" = ( /obj/structure/window/framed/prison/reinforced, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/visitation) "jbq" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_21" }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/prison/research) "jdx" = ( /obj/structure/sign/safety/medical, @@ -45316,19 +34820,13 @@ flipped = 1 }, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/yard) "jfe" = ( /obj/structure/platform{ dir = 8 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/east, /area/prison/hanger/research) "jfp" = ( /turf/closed/wall/prison, @@ -45349,10 +34847,7 @@ /obj/structure/barricade/wooden{ dir = 8 }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/prison/cellblock/lowsec/nw) "jmk" = ( /obj/structure/largecrate/random/barrel/red, @@ -45363,19 +34858,13 @@ /obj/structure/platform{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/hallway/central/west) "jmY" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/hallway/central/south) "jno" = ( /obj/structure/disposalpipe/segment{ @@ -45394,10 +34883,7 @@ pixel_y = 3 }, /obj/structure/platform_decoration, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/canteen) "joJ" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ @@ -45406,19 +34892,13 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 6 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/prison/hangar_storage/main) "jpt" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/prison/red/east, /area/prison/cellblock/highsec/north/south) "jpy" = ( /obj/structure/disposalpipe/segment{ @@ -45451,32 +34931,21 @@ /turf/open/floor/plating, /area/prison/maintenance/residential/nw) "jsm" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/southwest, /area/prison/hanger/research) "jtk" = ( /obj/effect/alien/weeds/node, -/turf/open/floor/prison{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/prison/red/west, /area/prison/cellblock/highsec/south/north) "juy" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/north, /area/prison/cellblock/mediumsec/north) "juA" = ( /obj/item/trash/burger, /turf/open/floor/plating, /area/prison/maintenance/residential/access/south) "jvk" = ( -/turf/open/floor/prison{ - icon_state = "green" - }, +/turf/open/floor/prison/green, /area/prison/hallway/central/east) "jxi" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ @@ -45495,18 +34964,12 @@ /turf/open/floor/prison, /area/prison/security/monitoring/highsec) "jDr" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/north, /area/prison/hanger/research) "jFe" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/hallway/central/west) "jFi" = ( /obj/effect/decal/warning_stripes{ @@ -45516,20 +34979,14 @@ icon_state = "SE-out" }, /obj/structure/machinery/light, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/maintenance/residential/access/south) "jFs" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/computer/cameras{ network = list("PRISON") }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/cellblock/highsec/south/north) "jFQ" = ( /obj/structure/disposalpipe/segment{ @@ -45544,51 +35001,34 @@ /obj/structure/platform{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/hallway/central/west) "jJE" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor{ - dir = 5; - icon_state = "chapel" - }, +/turf/open/floor/chapel/northeast, /area/prison/chapel) "jKf" = ( /obj/structure/largecrate/random/case/double, /turf/open/floor/plating, /area/prison/maintenance/staff_research) "jMq" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/southwest, /area/prison/telecomms) "jNo" = ( /obj/structure/surface/table/reinforced, /obj/item/reagent_container/food/snacks/carrotfries, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/canteen) "jNC" = ( /obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/prison/storage/medsec) "jOj" = ( /obj/structure/surface/table/reinforced, /obj/item/tank/nitrogen, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/prison/hallway/central/west) "jRi" = ( /obj/structure/machinery/light{ @@ -45608,9 +35048,7 @@ /area/prison/cellblock/mediumsec/east) "jSv" = ( /obj/structure/barricade/wooden, -/turf/open/floor/prison{ - icon_state = "green" - }, +/turf/open/floor/prison/green, /area/prison/cellblock/lowsec/nw) "jTC" = ( /obj/structure/sink{ @@ -45618,16 +35056,10 @@ pixel_x = -12 }, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/highsec/south/south) "jTN" = ( -/turf/open/floor/prison{ - dir = 5; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/northeast, /area/prison/cellblock/highsec/south/north) "jUC" = ( /turf/closed/wall/r_wall/prison, @@ -45643,10 +35075,7 @@ /area/prison/residential/north) "jWj" = ( /obj/structure/machinery/light, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/hallway/central/south) "kag" = ( /obj/structure/largecrate/random/barrel/white, @@ -45658,10 +35087,7 @@ pixel_x = 1; pixel_y = 3 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/canteen) "kdj" = ( /obj/structure/machinery/light{ @@ -45672,10 +35098,7 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/residential/north) "kdm" = ( /obj/structure/bed/chair{ @@ -45684,55 +35107,35 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/canteen) "kdI" = ( /obj/structure/mineral_door/resin, -/turf/open/floor/prison{ - dir = 8; - icon_state = "redcorner" - }, +/turf/open/floor/prison/redcorner/west, /area/prison/cellblock/highsec/south/north) "kep" = ( /obj/structure/surface/rack, /obj/item/reagent_container/food/snacks/boiledspagetti, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/canteen) "keX" = ( /obj/effect/landmark/corpsespawner/prison_security, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 10; - icon_state = "damaged2" - }, +/turf/open/floor/prison/damaged2/southwest, /area/prison/hallway/central/south) "kfj" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "damaged1" - }, +/turf/open/floor/prison/damaged1/southwest, /area/prison/storage/medsec) "kgy" = ( -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/prison/cellblock/highsec/south/north) "kik" = ( /obj/structure/surface/table/gamblingtable, /obj/item/weapon/gun/pistol/b92fs, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/lowsec/nw) "kjh" = ( /obj/structure/machinery/light/small{ @@ -45741,58 +35144,39 @@ /turf/open/floor/plating, /area/prison/cellblock/mediumsec/west) "kkA" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/west, /area/prison/hanger/research) "kmh" = ( /obj/item/trash/kepler, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/lowsec/nw) "knf" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony{ dir = 2 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/prison/cellblock/mediumsec/west) "kog" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/hallway/central/east) "koj" = ( /obj/structure/platform{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/canteen) "kpc" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/prison/red/east, /area/prison/cellblock/highsec/north/north) "kqo" = ( /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/prison/cellblock/mediumsec/south) "krJ" = ( /obj/item/reagent_container/glass/bucket, @@ -45813,16 +35197,12 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 6 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/prison/cellblock/mediumsec/east) "kue" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/prison/residential/north) "kyS" = ( /obj/structure/pipes/vents/pump/on, @@ -45831,10 +35211,7 @@ "kzE" = ( /obj/effect/decal/cleanable/blood, /obj/item/weapon/gun/rifle/m16, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/hallway/central/south) "kzI" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony{ @@ -45844,10 +35221,7 @@ /area/prison/security/checkpoint/vip) "kzZ" = ( /obj/structure/window/reinforced, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/cellblock/highsec/south/south) "kCz" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ @@ -45860,10 +35234,7 @@ dir = 4; icon_state = "p_stair_full" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/hanger/research) "kDz" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -45874,10 +35245,7 @@ "kEk" = ( /obj/structure/surface/table/reinforced, /obj/item/device/flashlight/lamp, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/cellblock/highsec/south/north) "kGq" = ( /turf/open/floor/prison, @@ -45890,26 +35258,18 @@ dir = 2; icon_state = "pipe-c" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/cellblock/lowsec/se) "kJw" = ( /obj/structure/largecrate/random, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, +/turf/open/floor/prison/bluefull, /area/prison/cellblock/protective) "kLB" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ dir = 2; name = "Chapel" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/chapel) "kRq" = ( /obj/structure/machinery/light/small{ @@ -45939,19 +35299,13 @@ /area/prison/security/monitoring/highsec) "ldp" = ( /obj/structure/machinery/light, -/turf/open/floor/prison{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/prison/red/southeast, /area/prison/cellblock/highsec/south/south) "ldw" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 8 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/north, /area/prison/cellblock/mediumsec/west) "ldD" = ( /obj/effect/decal/siding/wood_siding{ @@ -45960,9 +35314,7 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor{ - icon_state = "asteroid" - }, +/turf/open/floor/asteroid, /area/prison/residential/south) "ldR" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -45971,10 +35323,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/cellblock/lowsec/se) "leU" = ( /obj/structure/surface/table, @@ -45990,10 +35339,7 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/prison/red/north, /area/prison/recreation/highsec/s) "liM" = ( /obj/structure/machinery/light/small, @@ -46005,38 +35351,23 @@ "ljn" = ( /obj/structure/surface/table/reinforced, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/research) "lks" = ( /obj/structure/surface/table/reinforced, /obj/item/reagent_container/food/snacks/boiledspagetti, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/canteen) "llz" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/north, /area/prison/security/checkpoint/highsec_medsec) "llD" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/west, /area/prison/cellblock/mediumsec/east) "lmt" = ( /obj/structure/surface/table/reinforced, /obj/item/trash/barcardine, -/turf/open/floor/prison{ - dir = 8; - icon_state = "bluefull" - }, +/turf/open/floor/prison/bluefull/west, /area/prison/cellblock/protective) "lmA" = ( /obj/structure/pipes/standard/simple/hidden/supply, @@ -46058,16 +35389,10 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "yellowcorner" - }, +/turf/open/floor/prison/yellowcorner/north, /area/prison/cellblock/mediumsec/east) "ltv" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "damaged2" - }, +/turf/open/floor/prison/damaged2/southwest, /area/prison/storage/medsec) "lxE" = ( /obj/structure/window/framed/prison/reinforced/hull, @@ -46075,17 +35400,11 @@ /area/prison/maintenance/residential/sw) "lyj" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/canteen) "lyJ" = ( /obj/effect/landmark/monkey_spawn, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/medbay/foyer) "lzy" = ( /obj/structure/window/framed/prison/reinforced, @@ -46101,10 +35420,7 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor{ - dir = 5; - icon_state = "chapel" - }, +/turf/open/floor/chapel/northeast, /area/prison/chapel) "lBC" = ( /obj/structure/disposalpipe/segment{ @@ -46114,10 +35430,7 @@ /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 1 }, -/turf/open/floor/prison{ - dir = 5; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/northeast, /area/prison/cellblock/protective) "lCQ" = ( /obj/structure/flora/bush/ausbushes/var3/ywflowers, @@ -46131,19 +35444,14 @@ name = "Classified Research Shutters" }, /obj/item/tool/crowbar/red, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/prison/research/secret) "lGA" = ( /obj/structure/machinery/computer/cameras{ network = list("PRISON") }, /obj/structure/surface/table/reinforced, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/monitoring/lowsec/ne) "lHc" = ( /obj/effect/landmark/monkey_spawn, @@ -46153,10 +35461,7 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/residential/central) "lIs" = ( /turf/closed/wall/prison, @@ -46173,19 +35478,13 @@ /area/prison/telecomms) "lME" = ( /obj/structure/machinery/vending/security, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/checkpoint/highsec_medsec) "lMU" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 5 }, -/turf/open/floor/prison{ - dir = 6; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/southeast, /area/prison/security/checkpoint/highsec_medsec) "lQK" = ( /obj/item/trash/c_tube, @@ -46203,10 +35502,7 @@ pixel_y = -32 }, /obj/structure/machinery/disposal, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/residential/north) "lVe" = ( /obj/structure/window/reinforced{ @@ -46216,16 +35512,11 @@ /obj/structure/flora/pottedplant{ icon_state = "pottedplant_21" }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/prison/research) "lVw" = ( /obj/item/trash/cheesie, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/lowsec/nw) "lWT" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -46241,10 +35532,7 @@ /turf/open/floor/plating, /area/prison/hanger/main) "mbv" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "damaged1" - }, +/turf/open/floor/prison/damaged1/southwest, /area/prison/cellblock/mediumsec/east) "mbG" = ( /obj/structure/largecrate/random, @@ -46257,9 +35545,7 @@ /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ name = "Security Booth" }, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/prison/security/checkpoint/highsec_medsec) "mca" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -46268,9 +35554,7 @@ /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/prison/cellblock/mediumsec/south) "mdH" = ( /obj/structure/janitorialcart, @@ -46304,9 +35588,7 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 10 }, -/turf/open/floor{ - icon_state = "asteroid" - }, +/turf/open/floor/asteroid, /area/prison/residential/north) "mpg" = ( /obj/structure/closet/gmcloset, @@ -46316,10 +35598,7 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/residential/north) "mpA" = ( /obj/structure/bed/chair, @@ -46336,16 +35615,10 @@ /obj/structure/surface/rack, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/store) "mxM" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "yellowcorner" - }, +/turf/open/floor/prison/yellowcorner/west, /area/prison/cellblock/mediumsec/east) "myY" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -46364,10 +35637,7 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/maintenance/residential/access/south) "mAT" = ( /obj/structure/flora/bush/ausbushes/var3/brflowers, @@ -46380,9 +35650,7 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/prison/cellblock/highsec/south/north) "mCC" = ( /obj/structure/surface/table/reinforced{ @@ -46390,17 +35658,12 @@ flipped = 1 }, /obj/effect/landmark/crap_item, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/prison/cellblock/mediumsec/south) "mDi" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/item/stack/rods, -/turf/open/floor/prison{ - dir = 8; - icon_state = "yellowcorner" - }, +/turf/open/floor/prison/yellowcorner/west, /area/prison/cellblock/mediumsec/south) "mFF" = ( /obj/structure/pipes/standard/simple/hidden/supply, @@ -46419,18 +35682,13 @@ /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ name = "Security Booth" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/cellblock/highsec/north/south) "mJH" = ( /obj/structure/barricade/wooden{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow, /area/prison/cellblock/mediumsec/south) "mLi" = ( /obj/structure/machinery/door/airlock/prison{ @@ -46441,15 +35699,10 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "yellowfull" - }, +/turf/open/floor/prison/yellowfull, /area/prison/cellblock/mediumsec/north) "mLG" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "green" - }, +/turf/open/floor/prison/green/east, /area/prison/hallway/central/south) "mMO" = ( /obj/structure/machinery/light{ @@ -46469,10 +35722,7 @@ /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22" }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/northwest, /area/prison/cellblock/protective) "mOL" = ( /obj/structure/bed/chair/comfy{ @@ -46512,25 +35762,17 @@ /area/prison/residential/south) "mSQ" = ( /obj/effect/landmark/xeno_spawn, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/prison/cellblock/highsec/south/north) "mVf" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/north, /area/prison/hanger/research) "mVq" = ( /obj/structure/machinery/alarm/almayer{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/hallway/central/south) "mWT" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ @@ -46540,17 +35782,11 @@ /area/prison/hallway/central/west) "mWZ" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/hallway/central/west) "mYM" = ( /obj/item/weapon/gun/shotgun/pump/dual_tube/cmb, -/turf/open/floor/prison{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/north, /area/prison/cellblock/mediumsec/north) "mZt" = ( /obj/structure/largecrate/random, @@ -46568,19 +35804,13 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/east, /area/prison/cellblock/mediumsec/east) "ndk" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "yellowcorner" - }, +/turf/open/floor/prison/yellowcorner/north, /area/prison/cellblock/mediumsec/south) "ndE" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -46594,52 +35824,35 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/residential/central) "ndW" = ( /obj/structure/pipes/standard/manifold/hidden/supply, /obj/effect/decal/siding/wood_siding{ icon_state = "wood_siding12" }, -/turf/open/floor{ - icon_state = "asteroid" - }, +/turf/open/floor/asteroid, /area/prison/residential/south) "niK" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/east, /area/prison/cellblock/mediumsec/south) "niY" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/checkpoint/highsec/s) "nkB" = ( /obj/structure/platform_decoration{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/east, /area/prison/hanger/research) "nmr" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/prison/telecomms) "non" = ( /obj/structure/machinery/washing_machine{ @@ -46649,16 +35862,11 @@ desc = "The double washing machine in common spacer folklore signifies doom to all who gaze upon it."; pixel_y = 15 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/prison/residential/central) "npb" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/residential/south) "nsx" = ( /turf/closed/wall/prison, @@ -46709,18 +35917,13 @@ icon_state = "poster14"; pixel_x = -32 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/prison/red/west, /area/prison/cellblock/highsec/south/south) "nGQ" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/prison/cellblock/highsec/south/north) "nGR" = ( /obj/structure/flora/bush/ausbushes/ppflowers, @@ -46740,10 +35943,7 @@ dir = 4 }, /obj/structure/machinery/door/window/brigdoor/southright, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/cellblock/highsec/south/south) "nJm" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -46762,18 +35962,14 @@ /area/prison/maintenance/residential/sw) "nKm" = ( /obj/structure/closet/jcloset, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/prison/hallway/central/west) "nLr" = ( /obj/effect/decal/siding/wood_siding{ icon_state = "wood_siding12" }, /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor{ - icon_state = "asteroid" - }, +/turf/open/floor/asteroid, /area/prison/residential/south) "nLC" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -46794,9 +35990,7 @@ "nNc" = ( /obj/structure/pipes/standard/manifold/fourway/hidden/supply, /obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/prison/residential/south) "nPN" = ( /obj/structure/pipes/standard/simple/hidden/supply, @@ -46810,10 +36004,7 @@ icon_state = "p_stair_full" }, /obj/structure/platform, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/security/checkpoint/highsec/s) "nSK" = ( /obj/structure/window/reinforced{ @@ -46821,39 +36012,26 @@ health = 80 }, /obj/structure/machinery/gibber, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/prison/research) "nTn" = ( /obj/structure/reagent_dispensers/water_cooler/stacks, -/turf/open/floor/prison{ - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2, /area/prison/security/monitoring/highsec) "nUH" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 8 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/east, /area/prison/cellblock/mediumsec/south) "nVg" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "damaged2" - }, +/turf/open/floor/prison/damaged2/southwest, /area/prison/hallway/central/east) "nWl" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "Low-Security" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/hallway/central/south) "nWJ" = ( /turf/open/floor/prison, @@ -46866,49 +36044,33 @@ /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "South High-Security Recreation" }, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/prison/recreation/highsec/s) "nXN" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/north, /area/prison/telecomms) "nYP" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2, /area/prison/research/secret/containment) "nZP" = ( /obj/structure/bed/chair/office{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/lowsec/nw) "obV" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, -/turf/open/floor/prison{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/east, /area/prison/cellblock/mediumsec/south) "ocS" = ( /obj/structure/platform_decoration{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/hallway/central/north) "odp" = ( /obj/structure/pipes/standard/simple/hidden/supply, @@ -46935,10 +36097,7 @@ "old" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, -/turf/open/floor/prison{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/west, /area/prison/cellblock/mediumsec/south) "omn" = ( /obj/structure/surface/table/reinforced, @@ -46947,33 +36106,22 @@ pixel_x = 1; pixel_y = 3 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/canteen) "omu" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "yellowcorner" - }, +/turf/open/floor/prison/yellowcorner/north, /area/prison/cellblock/mediumsec/north) "ona" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/maintenance/residential/access/south) "onp" = ( /obj/structure/platform_decoration{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/prison/hanger/research) "onA" = ( /obj/structure/machinery/light{ @@ -46994,33 +36142,21 @@ /area/prison/residential/south) "oqC" = ( /obj/structure/window/framed/prison, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/prison/monorail/west) "oqL" = ( /obj/structure/window/reinforced{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/cellblock/highsec/south/south) "osO" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 1; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/north, /area/prison/cellblock/mediumsec/north) "oud" = ( /obj/structure/mineral_door/resin, -/turf/open/floor/prison{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/prison/red/west, /area/prison/cellblock/highsec/south/north) "ovc" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -47035,34 +36171,22 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/hallway/central/west) "oxT" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 10; - icon_state = "damaged2" - }, +/turf/open/floor/prison/damaged2/southwest, /area/prison/storage/medsec) "oyQ" = ( /obj/structure/platform{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/canteen) "oyZ" = ( /obj/effect/landmark/corpsespawner/prisoner, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/holding/holding1) "oAs" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony, @@ -47077,10 +36201,7 @@ dir = 4 }, /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/residential/north) "oDn" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ @@ -47101,19 +36222,14 @@ "oHo" = ( /obj/structure/surface/table/reinforced, /obj/item/reagent_container/food/snacks/appletart, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/canteen) "oHs" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, /obj/effect/alien/weeds/node, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/prison/cellblock/highsec/south/north) "oIj" = ( /obj/effect/decal/warning_stripes{ @@ -47122,33 +36238,22 @@ /obj/structure/machinery/landinglight/ds2/delayone{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/east, /area/prison/hanger/research) "oIw" = ( /obj/structure/pipes/standard/manifold/hidden/supply, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/toilet/security) "oJi" = ( /obj/structure/platform{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/prison/hanger/research) "oLL" = ( /obj/structure/surface/table/reinforced, /obj/item/device/flashlight/lamp, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/monitoring/lowsec/ne) "oNe" = ( /obj/effect/decal/warning_stripes{ @@ -47157,20 +36262,14 @@ /obj/structure/machinery/landinglight/ds2{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/east, /area/prison/hanger/research) "oNp" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/east, /area/prison/telecomms) "oNG" = ( /obj/effect/decal/warning_stripes{ @@ -47179,9 +36278,7 @@ /obj/structure/machinery/landinglight/ds2/delaythree{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/prison/hanger/research) "oOJ" = ( /obj/structure/pipes/vents/scrubber{ @@ -47193,25 +36290,17 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 6 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/west, /area/prison/cellblock/mediumsec/north) "oTg" = ( /obj/structure/platform{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/hallway/central/west) "oTO" = ( /obj/item/storage/bible/booze, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/prison/residential/central) "oUR" = ( /obj/structure/machinery/light, @@ -47235,17 +36324,11 @@ dir = 1 }, /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/canteen) "oZV" = ( /obj/structure/window/framed/prison, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/residential/south) "paf" = ( /obj/structure/disposalpipe/segment{ @@ -47265,10 +36348,7 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 10 }, -/turf/open/floor/prison{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/prison/red/southeast, /area/prison/cellblock/highsec/south/south) "pcP" = ( /obj/structure/window/framed/prison, @@ -47293,10 +36373,7 @@ "pft" = ( /obj/structure/surface/table/reinforced/prison, /obj/effect/spawner/random/tool, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/prison/telecomms) "pgg" = ( /obj/structure/machinery/autolathe/full, @@ -47320,10 +36397,7 @@ /obj/structure/platform{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/hallway/central/north) "pnT" = ( /obj/structure/surface/rack, @@ -47342,18 +36416,12 @@ pixel_x = 1; pixel_y = 3 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/canteen) "pob" = ( /obj/structure/surface/table/reinforced, /obj/item/device/flashlight/lamp, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/cellblock/highsec/north/south) "ppb" = ( /obj/structure/bed/chair/comfy{ @@ -47362,10 +36430,7 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/residential/north) "pph" = ( /obj/structure/machinery/light/small, @@ -47382,10 +36447,7 @@ /area/prison/cellblock/highsec/north/north) "pqi" = ( /obj/effect/landmark/monkey_spawn, -/turf/open/floor/prison{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/north, /area/prison/cellblock/mediumsec/south) "prq" = ( /obj/structure/bed/chair/comfy{ @@ -47400,17 +36462,11 @@ /obj/effect/decal/warning_stripes{ icon_state = "NW-out" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/hallway/entrance) "prF" = ( /obj/effect/alien/weeds/node, -/turf/open/floor/prison{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/prison/red/west, /area/prison/cellblock/highsec/south/south) "ptn" = ( /obj/item/device/radio/headset, @@ -47429,38 +36485,23 @@ /area/prison/cellblock/mediumsec/west) "pvG" = ( /obj/structure/pipes/standard/manifold/hidden/supply, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/yard) "pvI" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/southwest, /area/prison/cellblock/highsec/south/north) "pvJ" = ( /obj/effect/landmark/corpsespawner/prison_security, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/hallway/central/south) "pwl" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "damaged2" - }, +/turf/open/floor/prison/damaged2/southwest, /area/prison/hallway/central/south) "pxa" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/hallway/central/south) "pzJ" = ( /turf/open/floor/plating, @@ -47479,34 +36520,23 @@ /obj/structure/bed/chair/office{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/lowsec/nw) "pFp" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 9 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/prison/hangar_storage/main) "pGf" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/security/checkpoint/maxsec) "pGv" = ( /obj/effect/spawner/random/tool, -/turf/open/floor/prison{ - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2, /area/prison/telecomms) "pHT" = ( /obj/structure/pipes/vents/pump{ @@ -47524,10 +36554,7 @@ /obj/structure/disposalpipe/segment, /obj/effect/decal/cleanable/blood, /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/hallway/central/south) "pPB" = ( /obj/structure/window/framed/prison/reinforced/hull, @@ -47538,9 +36565,7 @@ dir = 4 }, /obj/effect/landmark/xeno_spawn, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/prison/cellblock/highsec/south/north) "pSO" = ( /obj/item/shard, @@ -47548,16 +36573,11 @@ /turf/open/floor/plating, /area/prison/cellblock/mediumsec/east) "pVz" = ( -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/northwest, /area/prison/telecomms) "pXk" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2, /area/prison/hanger/research) "pXC" = ( /obj/effect/decal/cleanable/blood, @@ -47570,17 +36590,12 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/east, /area/prison/cellblock/mediumsec/east) "qai" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/effect/alien/weeds/node, -/turf/open/floor/prison{ - icon_state = "rampbottom" - }, +/turf/open/floor/prison/rampbottom, /area/prison/maintenance/residential/nw) "qbj" = ( /obj/structure/window/framed/prison/reinforced/hull, @@ -47588,15 +36603,10 @@ /area/prison/hallway/central/south) "qbV" = ( /obj/structure/bed/chair, -/turf/open/floor/prison{ - dir = 10 - }, +/turf/open/floor/prison/southwest, /area/prison/cellblock/highsec/south/south) "qco" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/east, /area/prison/telecomms) "qdT" = ( /obj/structure/surface/table/reinforced, @@ -47605,10 +36615,7 @@ pixel_y = 7 }, /obj/effect/landmark/item_pool_spawner/prison_lock, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/checkpoint/maxsec) "qgb" = ( /obj/structure/stairs/perspective{ @@ -47616,10 +36623,7 @@ icon_state = "p_stair_full" }, /obj/structure/platform, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/hanger/research) "qjI" = ( /obj/structure/window/framed/prison/reinforced, @@ -47635,20 +36639,14 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/residential/central) "qla" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/residential/south) "qlh" = ( /obj/effect/decal/warning_stripes{ @@ -47657,19 +36655,13 @@ /obj/structure/machinery/landinglight/ds2/delaytwo{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/east, /area/prison/hanger/research) "qqm" = ( /obj/structure/platform_decoration{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/hallway/central/north) "qqn" = ( /obj/structure/disposalpipe/segment{ @@ -47690,38 +36682,26 @@ /area/prison/residential/south) "qwg" = ( /obj/structure/platform, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/prison/hanger/research) "qxY" = ( /obj/structure/stairs/perspective{ dir = 4; icon_state = "p_stair_full" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/security/checkpoint/highsec/s) "qzW" = ( /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/residential/north) "qEB" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/medidoor{ name = "Infirmary" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/medbay/foyer) "qEE" = ( /obj/structure/pipes/standard/simple/hidden/supply, @@ -47736,10 +36716,7 @@ unacidable = 1; use_power = 0 }, -/turf/open/floor/prison{ - dir = 6; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/southeast, /area/prison/cellblock/mediumsec/south) "qIb" = ( /obj/structure/window/framed/prison, @@ -47747,17 +36724,11 @@ /area/prison/cellblock/highsec/north/south) "qIg" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 10; - icon_state = "damaged1" - }, +/turf/open/floor/prison/damaged1/southwest, /area/prison/cellblock/mediumsec/east) "qKo" = ( /obj/structure/largecrate/random/case/double, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/hallway/central/north) "qLI" = ( /turf/open/floor/grass, @@ -47767,16 +36738,10 @@ dir = 8 }, /obj/structure/machinery/door/window/brigdoor/northleft, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/cellblock/highsec/south/south) "qNw" = ( -/turf/open/floor/prison{ - dir = 6; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/southeast, /area/prison/cellblock/highsec/south/north) "qNS" = ( /obj/structure/pipes/vents/scrubber{ @@ -47794,9 +36759,7 @@ /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/prison/cellblock/mediumsec/south) "qXa" = ( /obj/structure/window/framed/prison/reinforced/hull, @@ -47805,17 +36768,12 @@ "qYn" = ( /obj/structure/surface/table/reinforced, /obj/item/tank/air, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/prison/hallway/central/west) "rba" = ( /obj/structure/surface/table/reinforced, /obj/item/reagent_container/food/snacks/chawanmushi, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/canteen) "rdD" = ( /obj/structure/bed/chair/comfy{ @@ -47844,15 +36802,16 @@ /obj/structure/machinery/door/airlock/almayer/engineering/colony{ name = "Medium-Security Storage" }, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, +/turf/open/floor/prison/bluefull, /area/prison/storage/medsec) "rjx" = ( -/turf/open/floor/prison{ - icon_state = "yellowfull" - }, +/turf/open/floor/prison/yellowfull, /area/prison/cellblock/protective) +"rmb" = ( +/obj/structure/machinery/cm_vending/sorted/medical/no_access, +/obj/structure/medical_supply_link/green, +/turf/open/floor/prison/whitegreenfull/southwest, +/area/prison/medbay) "rpB" = ( /obj/structure/flora/bush/ausbushes/var3/brflowers, /obj/structure/machinery/light{ @@ -47865,10 +36824,7 @@ network = list("PRISON") }, /obj/structure/surface/table/reinforced, -/turf/open/floor/prison{ - dir = 5; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/northeast, /area/prison/security/monitoring/medsec/central) "rqT" = ( /obj/structure/bed/chair/office/dark{ @@ -47879,17 +36835,12 @@ "rrG" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/east, /area/prison/cellblock/mediumsec/east) "rsG" = ( /obj/structure/pipes/standard/manifold/hidden/supply, /obj/effect/landmark/structure_spawner/xvx_hive/xeno_core, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/prison/residential/south) "rtS" = ( /obj/structure/closet, @@ -47898,10 +36849,7 @@ /area/prison/quarters/research) "ruu" = ( /obj/structure/window/framed/prison, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/residential/north) "ruY" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -47922,50 +36870,34 @@ /obj/structure/platform{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/hallway/central/north) "rxG" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, -/turf/open/floor/prison{ - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow, /area/prison/cellblock/mediumsec/south) "rDG" = ( /obj/effect/decal/cleanable/blood, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "damaged2" - }, +/turf/open/floor/prison/damaged2/southwest, /area/prison/hallway/east) "rDL" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/hallway/central/west) "rFO" = ( /obj/structure/platform{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean_marked" - }, +/turf/open/floor/prison/bright_clean_marked/southwest, /area/prison/canteen) "rKA" = ( /obj/effect/spawner/random/tool, -/turf/open/floor/prison{ - icon_state = "bright_clean_marked" - }, +/turf/open/floor/prison/bright_clean_marked, /area/prison/telecomms) "rLO" = ( /obj/structure/reagent_dispensers/watertank, @@ -47977,10 +36909,7 @@ flipped = 1 }, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/yard) "rOL" = ( /obj/structure/barricade/handrail/type_b{ @@ -47988,9 +36917,7 @@ }, /obj/structure/surface/rack, /obj/item/tank/air, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/prison/hallway/central/west) "rQD" = ( /obj/structure/pipes/standard/simple/hidden/supply, @@ -48005,10 +36932,7 @@ /area/prison/telecomms) "rSg" = ( /obj/structure/machinery/light/small, -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/east, /area/prison/cellblock/mediumsec/west) "rSp" = ( /obj/structure/window_frame/colony/reinforced, @@ -48019,9 +36943,7 @@ /turf/open/floor/plating, /area/prison/maintenance/residential/nw) "rXA" = ( -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/prison/quarters/research) "rYg" = ( /obj/effect/decal/warning_stripes{ @@ -48030,18 +36952,13 @@ /obj/structure/machinery/landinglight/ds2/delaytwo{ dir = 8 }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/northwest, /area/prison/hanger/research) "rZk" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/prison/cellblock/mediumsec/south) "saD" = ( /obj/structure/machinery/power/apc{ @@ -48049,9 +36966,7 @@ pixel_x = -24; start_charge = 0 }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/prison/telecomms) "sdq" = ( /obj/structure/machinery/light{ @@ -48060,9 +36975,7 @@ /obj/structure/surface/rack, /obj/effect/spawner/random/toolbox, /obj/effect/spawner/random/toolbox, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/prison/hallway/central/west) "seq" = ( /obj/structure/machinery/light{ @@ -48074,10 +36987,7 @@ /obj/structure/machinery/alarm/almayer{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/hallway/central/east) "smr" = ( /obj/structure/surface/rack, @@ -48091,10 +37001,7 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - dir = 5; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/northeast, /area/prison/cellblock/mediumsec/north) "sqS" = ( /obj/structure/machinery/light{ @@ -48105,10 +37012,7 @@ "srr" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/effect/alien/weeds/node, -/turf/open/floor/prison{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/prison/red/east, /area/prison/cellblock/highsec/south/north) "ssB" = ( /obj/structure/window_frame/colony/reinforced, @@ -48116,106 +37020,71 @@ /area/prison/cellblock/mediumsec/north) "ssJ" = ( /obj/structure/window/framed/prison/reinforced, -/turf/open/floor/prison{ - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull, /area/prison/quarters/research) "ssZ" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/prison/red/west, /area/prison/cellblock/highsec/south/south) "swk" = ( -/turf/open/floor/prison{ - dir = 6; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/southeast, /area/prison/cellblock/highsec/north/south) "sxx" = ( /obj/structure/machinery/light, /obj/structure/platform{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/hallway/central/south) "sye" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/west, /area/prison/cellblock/mediumsec/east) "sBF" = ( /obj/structure/stairs/perspective{ dir = 4; icon_state = "p_stair_full" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/storage/vip) "sBQ" = ( /turf/open/floor/prison, /area/prison/security/checkpoint/highsec_medsec) "sEd" = ( /obj/structure/platform, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/canteen) "sGc" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, -/turf/open/floor/prison{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/east, /area/prison/cellblock/mediumsec/south) "sGB" = ( /obj/structure/bed/chair, /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/prison/red/north, /area/prison/cellblock/highsec/north/north) "sHe" = ( /obj/structure/barricade/wooden{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/highsec/south/south) "sHs" = ( /obj/structure/surface/table/reinforced, /obj/item/reagent_container/food/drinks/bottle/vodka, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/canteen) "sIA" = ( /obj/structure/platform_decoration{ dir = 1 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/east, /area/prison/hanger/research) "sLI" = ( /obj/structure/lattice, @@ -48233,10 +37102,7 @@ /obj/structure/machinery/alarm/almayer{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/north, /area/prison/cellblock/mediumsec/south) "sOl" = ( /obj/structure/largecrate/random/barrel/green, @@ -48258,10 +37124,7 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - dir = 5; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/northeast, /area/prison/security/checkpoint/maxsec) "sTy" = ( /turf/closed/wall/resin, @@ -48294,10 +37157,7 @@ "tcn" = ( /obj/structure/surface/table/reinforced, /obj/item/reagent_container/food/condiment/peppermill, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/canteen) "tcY" = ( /obj/structure/pipes/vents/scrubber, @@ -48314,10 +37174,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/canteen) "teg" = ( /obj/structure/machinery/door/poddoor/almayer/open{ @@ -48325,10 +37182,7 @@ use_power = 0 }, /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/cellblock/protective) "tfd" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony{ @@ -48343,19 +37197,13 @@ /obj/structure/platform{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/hallway/central/west) "thZ" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony{ name = "Medium-Security Storage" }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/prison/storage/medsec) "tie" = ( /obj/structure/bed/chair/wood/normal{ @@ -48364,20 +37212,14 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor{ - dir = 1; - icon_state = "chapel" - }, +/turf/open/floor/chapel/north, /area/prison/chapel) "tjl" = ( /obj/item/tool/screwdriver, /obj/structure/flora/pottedplant{ icon_state = "pottedplant_21" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/residential/north) "tjU" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ @@ -48388,17 +37230,11 @@ "tjV" = ( /obj/structure/surface/table/gamblingtable, /obj/item/spacecash/c500, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/lowsec/nw) "tmn" = ( /obj/structure/bed, -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/east, /area/prison/cellblock/highsec/north/south) "toL" = ( /obj/structure/reagent_dispensers/fueltank/gas/methane, @@ -48414,10 +37250,7 @@ icon_state = "p_stair_full" }, /obj/structure/platform, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/hallway/central/west) "tuQ" = ( /obj/structure/pipes/vents/pump{ @@ -48431,10 +37264,7 @@ "tvF" = ( /obj/structure/surface/table/reinforced, /obj/item/reagent_container/food/snacks/candiedapple, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/canteen) "tvM" = ( /obj/structure/closet/crate/freezer, @@ -48447,9 +37277,7 @@ /obj/effect/decal/warning_stripes{ icon_state = "NE-out" }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/prison/kitchen) "twg" = ( /obj/structure/stairs/perspective{ @@ -48457,10 +37285,7 @@ icon_state = "p_stair_full" }, /obj/structure/platform, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/security/checkpoint/highsec/n) "tzm" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -48469,9 +37294,7 @@ /obj/effect/decal/siding/wood_siding{ icon_state = "wood_siding12" }, -/turf/open/floor{ - icon_state = "asteroid" - }, +/turf/open/floor/asteroid, /area/prison/residential/north) "tzJ" = ( /obj/effect/decal/warning_stripes{ @@ -48480,17 +37303,12 @@ /obj/structure/machinery/landinglight/ds2/delayone{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/southwest, /area/prison/hanger/research) "tAi" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/prison/residential/south) "tAI" = ( /obj/effect/landmark/railgun_camera_pos, @@ -48504,19 +37322,13 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/security/checkpoint/maxsec) "tFq" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/effect/alien/weeds/node, /obj/structure/mineral_door/resin, -/turf/open/floor/prison{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/prison/red/east, /area/prison/cellblock/highsec/south/north) "tFH" = ( /obj/structure/pipes/standard/simple/hidden/supply, @@ -48527,15 +37339,10 @@ "tGy" = ( /obj/structure/machinery/light, /obj/item/paper/janitor, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/residential/north) "tGY" = ( -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/prison/quarters/research) "tHo" = ( /obj/effect/decal/warning_stripes{ @@ -48544,9 +37351,7 @@ /obj/structure/machinery/landinglight/ds2{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/prison/hanger/research) "tIh" = ( /obj/structure/bed/chair/comfy{ @@ -48568,9 +37373,7 @@ /obj/structure/machinery/landinglight/ds2/delaythree{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/prison/hanger/research) "tNi" = ( /obj/structure/machinery/light{ @@ -48579,10 +37382,7 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/prison/red/north, /area/prison/cellblock/highsec/south/south) "tOK" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -48597,9 +37397,7 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2, /area/prison/security/checkpoint/highsec_medsec) "tTf" = ( /obj/structure/janitorialcart, @@ -48607,17 +37405,11 @@ pixel_x = -4; pixel_y = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/residential/north) "tWR" = ( /obj/structure/pipes/standard/manifold/fourway/hidden/supply, -/turf/open/floor/prison{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/prison/red/east, /area/prison/cellblock/highsec/north/north) "tXB" = ( /obj/structure/machinery/power/apc{ @@ -48628,15 +37420,10 @@ /area/prison/cellblock/mediumsec/east) "uaB" = ( /obj/item/ammo_magazine/shotgun/buckshot, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/hallway/central/south) "uaW" = ( -/turf/open/floor/prison{ - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2, /area/prison/hanger/research) "ucU" = ( /turf/closed/wall/r_wall/prison_unmeltable, @@ -48644,38 +37431,26 @@ "udc" = ( /obj/structure/surface/table/reinforced, /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/canteen) "udR" = ( /obj/item/tool/wrench, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/prison/cellblock/mediumsec/east) "ufM" = ( -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/prison/recreation/highsec/s) "ugC" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, /obj/effect/alien/weeds/node, -/turf/open/floor/prison{ - icon_state = "red" - }, +/turf/open/floor/prison/red, /area/prison/cellblock/highsec/south/north) "uhE" = ( /obj/effect/decal/cleanable/blood, /obj/effect/landmark/corpsespawner/prison_security, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/southwest, /area/prison/cellblock/mediumsec/east) "umM" = ( /obj/structure/machinery/light/small, @@ -48683,9 +37458,7 @@ /area/prison/maintenance/residential/nw) "unw" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - icon_state = "bright_clean_marked" - }, +/turf/open/floor/prison/bright_clean_marked, /area/prison/medbay/foyer) "unO" = ( /obj/structure/pipes/vents/pump{ @@ -48705,10 +37478,7 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/southwest, /area/prison/security/checkpoint/highsec_medsec) "uqH" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony, @@ -48721,16 +37491,10 @@ /obj/structure/window/reinforced{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/cellblock/highsec/south/south) "utI" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/east, /area/prison/telecomms) "uuw" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ @@ -48742,10 +37506,7 @@ /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/canteen) "uvb" = ( /obj/effect/decal/cleanable/dirt, @@ -48756,18 +37517,13 @@ /turf/open/floor/plating, /area/prison/maintenance/residential/sw) "uvK" = ( -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/northwest, /area/prison/cellblock/highsec/north/south) "uwB" = ( /obj/structure/surface/rack, /obj/item/storage/bag/trash, /obj/item/storage/bag/trash, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/prison/hallway/central/west) "uyi" = ( /obj/structure/surface/table/reinforced, @@ -48775,16 +37531,10 @@ pixel_x = 1; pixel_y = 3 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/canteen) "uBB" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/prison/hangar_storage/main) "uEn" = ( /obj/structure/machinery/door/airlock/almayer/medical/glass/colony{ @@ -48792,9 +37542,7 @@ icon_state = "door_open"; name = "Staff Restrooms" }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/prison/toilet/staff) "uEJ" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony{ @@ -48813,9 +37561,7 @@ }, /obj/effect/landmark/xeno_hive_spawn, /obj/effect/landmark/ert_spawns/groundside_xeno, -/turf/open/floor{ - icon_state = "asteroid" - }, +/turf/open/floor/asteroid, /area/prison/residential/central) "uIp" = ( /obj/structure/largecrate/random/secure, @@ -48824,10 +37570,7 @@ "uJC" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/effect/alien/weeds/node, -/turf/open/floor/prison{ - dir = 8; - icon_state = "green" - }, +/turf/open/floor/prison/green/west, /area/prison/monorail/west) "uKd" = ( /obj/structure/machinery/power/apc{ @@ -48835,27 +37578,18 @@ pixel_x = 28; start_charge = 0 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/canteen) "uKU" = ( /obj/structure/surface/table/reinforced, /obj/item/reagent_container/food/drinks/bottle/rum, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/canteen) "uNi" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/prison/green/north, /area/prison/quarters/staff) "uOB" = ( /turf/open/floor/plating/plating_catwalk/prison, @@ -48863,19 +37597,14 @@ "uOF" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/effect/landmark/corpsespawner/prison_security, -/turf/open/floor/prison{ - dir = 10; - icon_state = "damaged1" - }, +/turf/open/floor/prison/damaged1/southwest, /area/prison/cellblock/protective) "uOY" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, /obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/prison/residential/south) "uQt" = ( /obj/structure/pipes/standard/simple/hidden/supply, @@ -48883,10 +37612,7 @@ /obj/structure/flora/pottedplant{ icon_state = "pottedplant_10" }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/east, /area/prison/security/checkpoint/vip) "uSv" = ( /obj/structure/bed/chair/comfy{ @@ -48899,19 +37625,14 @@ pixel_x = 1; pixel_y = 5 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/residential/north) "uSE" = ( /obj/structure/disposalpipe/segment{ dir = 4; icon_state = "pipe-c" }, -/turf/open/floor/prison{ - icon_state = "bright_clean_marked" - }, +/turf/open/floor/prison/bright_clean_marked, /area/prison/medbay/foyer) "uTm" = ( /obj/structure/pipes/standard/simple/hidden/supply, @@ -48926,9 +37647,7 @@ dir = 1; flipped = 1 }, -/turf/open/floor/plating{ - icon_state = "platebot" - }, +/turf/open/floor/plating/platebot, /area/prison/pirate) "uUO" = ( /obj/structure/disposalpipe/segment{ @@ -48942,19 +37661,14 @@ /area/prison/hallway/central/south) "uVR" = ( /obj/structure/reagent_dispensers/water_cooler/stacks, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/checkpoint/highsec/s) "uWf" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, /obj/item/ammo_magazine/rifle/m16, -/turf/open/floor/prison{ - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow, /area/prison/cellblock/mediumsec/north) "uXn" = ( /obj/structure/machinery/light/small{ @@ -48966,9 +37680,7 @@ /turf/open/floor/plating/plating_catwalk/prison, /area/prison/cellblock/mediumsec/north) "uZm" = ( -/turf/open/floor/prison{ - icon_state = "yellowfull" - }, +/turf/open/floor/prison/yellowfull, /area/prison/cellblock/mediumsec/north) "vaW" = ( /obj/item/stack/tile/plasteel{ @@ -48999,10 +37711,7 @@ "veb" = ( /obj/structure/surface/table/reinforced, /obj/item/card/id/visa, -/turf/open/floor/prison{ - dir = 8; - icon_state = "bluefull" - }, +/turf/open/floor/prison/bluefull/west, /area/prison/cellblock/protective) "vfe" = ( /obj/structure/bed/chair{ @@ -49021,10 +37730,7 @@ req_one_access_txt = "19;200" }, /obj/structure/barricade/handrail/wire, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/prison/telecomms) "vix" = ( /turf/closed/wall/prison, @@ -49033,10 +37739,7 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/west, /area/prison/cellblock/mediumsec/north) "vmX" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ @@ -49056,10 +37759,7 @@ /obj/structure/machinery/computer/cameras{ network = list("PRISON") }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/cellblock/highsec/north/south) "vpA" = ( /obj/structure/surface/table/almayer, @@ -49067,10 +37767,7 @@ /turf/open/floor/plating, /area/prison/maintenance/residential/access/south) "vsk" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/north, /area/prison/cellblock/mediumsec/east) "vvf" = ( /obj/structure/machinery/light/small, @@ -49081,16 +37778,11 @@ dir = 2; name = "Protective Custody Cells" }, -/turf/open/floor/prison{ - icon_state = "yellowfull" - }, +/turf/open/floor/prison/yellowfull, /area/prison/cellblock/protective) "vxy" = ( /obj/structure/reagent_dispensers/water_cooler/stacks, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/checkpoint/highsec/n) "vAs" = ( /obj/effect/decal/cleanable/blood, @@ -49102,10 +37794,7 @@ /area/prison/maintenance/residential/ne) "vAT" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/west, /area/prison/telecomms) "vCU" = ( /obj/structure/bed/chair/comfy{ @@ -49120,26 +37809,17 @@ use_power = 0 }, /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/cellblock/mediumsec/east) "vEi" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkpurplecorners2" - }, +/turf/open/floor/prison/darkpurplecorners2/west, /area/prison/hanger/research) "vGg" = ( /obj/structure/largecrate/random, /obj/structure/platform{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/hallway/central/west) "vHX" = ( /turf/open/floor/plating/plating_catwalk/prison, @@ -49148,16 +37828,10 @@ /obj/structure/pipes/vents/scrubber{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/southwest, /area/prison/cellblock/mediumsec/west) "vKV" = ( -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/northwest, /area/prison/security/checkpoint/highsec_medsec) "vKZ" = ( /obj/structure/pipes/standard/simple/hidden/supply, @@ -49166,9 +37840,7 @@ dir = 2; name = "Security Booth" }, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/prison/security/checkpoint/highsec/n) "vPr" = ( /obj/structure/machinery/light{ @@ -49184,10 +37856,7 @@ /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/hallway/central/north) "vTZ" = ( /obj/structure/surface/table/reinforced, @@ -49195,10 +37864,7 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/prison/residential/central) "vUy" = ( /obj/structure/machinery/door/airlock/prison{ @@ -49209,17 +37875,13 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "yellowfull" - }, +/turf/open/floor/prison/yellowfull, /area/prison/cellblock/mediumsec/east) "vWd" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 9 }, -/turf/open/floor/prison{ - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2, /area/prison/security/monitoring/highsec) "vXR" = ( /obj/structure/pipes/standard/manifold/fourway/hidden/supply, @@ -49228,10 +37890,7 @@ "wav" = ( /obj/structure/bed/chair, /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/canteen) "wdr" = ( /obj/effect/decal/warning_stripes{ @@ -49249,10 +37908,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/prison/cellblock/lowsec/se) "wju" = ( /obj/structure/pipes/vents/pump{ @@ -49288,17 +37944,11 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/prison/cellblock/lowsec/se) "wvT" = ( /obj/item/trash/barcardine, -/turf/open/floor/prison{ - dir = 8; - icon_state = "green" - }, +/turf/open/floor/prison/green/west, /area/prison/cellblock/lowsec/nw) "wwc" = ( /obj/structure/window/reinforced{ @@ -49307,27 +37957,18 @@ /obj/structure/window/reinforced{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/cellblock/highsec/south/south) "wyo" = ( /obj/item/trash/cigbutt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/residential/north) "wyT" = ( /obj/structure/pipes/vents/scrubber, /turf/open/floor/plating, /area/prison/maintenance/residential/sw) "wEQ" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "damaged1" - }, +/turf/open/floor/prison/damaged1/southwest, /area/prison/cellblock/protective) "wFn" = ( /obj/structure/surface/table/reinforced, @@ -49338,10 +37979,7 @@ pixel_x = 1; pixel_y = 3 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/canteen) "wFT" = ( /obj/structure/bed/chair/comfy, @@ -49362,34 +38000,22 @@ /area/prison/hallway/entrance) "wJl" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/hallway/central/east) "wKt" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/medbay/foyer) "wNk" = ( /obj/structure/machinery/computer/secure_data, /obj/structure/surface/table/reinforced, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/monitoring/lowsec/ne) "wPV" = ( /obj/effect/decal/cleanable/ash, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/hallway/central/south) "wRI" = ( /obj/structure/bed, @@ -49422,17 +38048,11 @@ /area/prison/residential/north) "wUP" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/visitation) "wVs" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/north, /area/prison/cellblock/mediumsec/north) "wWk" = ( /obj/structure/pipes/standard/simple/hidden/supply, @@ -49449,18 +38069,12 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/hallway/central/east) "wZK" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/item/frame/table/wood, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/prison/cellblock/lowsec/nw) "xaT" = ( /obj/structure/pipes/standard/manifold/fourway/hidden/supply, @@ -49474,10 +38088,7 @@ /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 1 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "green" - }, +/turf/open/floor/prison/green/west, /area/prison/monorail/west) "xii" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -49486,10 +38097,7 @@ /obj/structure/barricade/wooden{ dir = 8 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/north, /area/prison/cellblock/mediumsec/south) "xiB" = ( /obj/structure/largecrate/random, @@ -49503,19 +38111,14 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/prison/telecomms) "xjn" = ( /obj/item/stack/cable_coil, /turf/open/floor/plating, /area/prison/maintenance/staff_research) "xkp" = ( -/turf/open/floor/prison{ - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull, /area/prison/quarters/research) "xld" = ( /obj/structure/bed/chair/comfy{ @@ -49525,10 +38128,7 @@ /turf/open/floor/carpet, /area/prison/residential/north) "xoT" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/hallway/central/west) "xsY" = ( /obj/structure/machinery/light/small{ @@ -49543,10 +38143,7 @@ flipped = 1 }, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/yard) "xwh" = ( /obj/effect/decal/siding/wood_siding{ @@ -49564,27 +38161,20 @@ dir = 2; name = "High-Security Monitoring" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/prison/cellblock/highsec/south/south) "xzA" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 9 }, -/turf/open/floor/prison{ - dir = 6; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/southeast, /area/prison/cellblock/mediumsec/west) "xCv" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 }, /obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/prison/residential/south) "xCG" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -49597,10 +38187,7 @@ dir = 8 }, /obj/structure/machinery/light/small, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkred2" - }, +/turf/open/floor/prison/darkred2/southwest, /area/prison/cellblock/highsec/north/south) "xEy" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ @@ -49610,18 +38197,12 @@ /area/prison/parole/protective_custody) "xIA" = ( /obj/structure/platform, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/canteen) "xKa" = ( /obj/structure/surface/table/reinforced, /obj/item/reagent_container/food/snacks/bloodsoup, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/canteen) "xKO" = ( /obj/structure/window/framed/prison/reinforced/hull, @@ -49655,10 +38236,7 @@ /area/prison/residential/north) "xUp" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 8; - icon_state = "rampbottom" - }, +/turf/open/floor/prison/rampbottom/west, /area/prison/hallway/east) "xVE" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -49684,10 +38262,7 @@ dir = 4; icon_state = "p_stair_full" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/prison/hallway/central/west) "xYR" = ( /obj/structure/surface/rack, @@ -49698,10 +38273,7 @@ /obj/structure/platform_decoration{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, +/turf/open/floor/prison/bright_clean/southwest, /area/prison/canteen) "yaY" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -49710,20 +38282,14 @@ /turf/open/floor/plating/plating_catwalk/prison, /area/prison/cellblock/mediumsec/south) "ybB" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "green" - }, +/turf/open/floor/prison/green/west, /area/prison/hallway/central/south) "ycb" = ( /obj/structure/bed/chair{ dir = 1 }, /obj/structure/machinery/light, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/prison/medbay/foyer) "ydW" = ( /obj/structure/surface/table/reinforced, @@ -49731,10 +38297,7 @@ pixel_x = -3; pixel_y = 7 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2/southwest, /area/prison/security/monitoring/lowsec/ne) "yeE" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -49747,9 +38310,7 @@ /turf/open/floor/plating, /area/prison/hallway/central/east) "yiA" = ( -/turf/open/floor/prison{ - icon_state = "yellowfull" - }, +/turf/open/floor/prison/yellowfull, /area/prison/cellblock/mediumsec/east) "ykG" = ( /obj/structure/machinery/light/small{ @@ -82684,7 +71245,7 @@ arx apK asp asT -att +rmb att avj avn @@ -86370,7 +74931,7 @@ bXd bYe bVP bVP -bVP +gXC bRC ceG cfr @@ -87111,7 +75672,7 @@ aeZ aeZ aiN aiN -awd +atK aiN aiN aiN diff --git a/maps/map_files/FOP_v3_Sciannex/Fiorina_SciAnnex.dmm b/maps/map_files/FOP_v3_Sciannex/Fiorina_SciAnnex.dmm index bffe3f990722..f66743b6388e 100644 --- a/maps/map_files/FOP_v3_Sciannex/Fiorina_SciAnnex.dmm +++ b/maps/map_files/FOP_v3_Sciannex/Fiorina_SciAnnex.dmm @@ -17,10 +17,7 @@ /obj/structure/machinery/power/apc{ dir = 1 }, -/turf/open/organic/grass{ - desc = "It'll get in your shoes no matter what you do."; - name = "astroturf" - }, +/turf/open/organic/grass/astroturf, /area/fiorina/tumor/fiberbush) "aar" = ( /obj/structure/machinery/power/apc, @@ -47,10 +44,7 @@ /area/fiorina/tumor/ice_lab) "abG" = ( /obj/item/trash/chunk, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/north, /area/fiorina/station/medbay) "abJ" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ @@ -64,15 +58,10 @@ name = "xeno_hive_spawn" }, /obj/effect/landmark/ert_spawns/groundside_xeno, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/aux_engi) "ach" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/fiorina/tumor/servers) "aco" = ( /obj/structure/surface/table/reinforced/prison, @@ -97,59 +86,38 @@ dir = 1; pixel_y = 21 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/fiorina/station/telecomm/lz1_cargo) "adq" = ( /obj/structure/bed/chair, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/fiorina/station/security) "adE" = ( /obj/structure/reagent_dispensers/watertank, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/east, /area/fiorina/tumor/aux_engi) "aeb" = ( -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/northwest, /area/fiorina/tumor/servers) "aej" = ( /obj/item/weapon/gun/rifle/m16, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - icon_state = "damaged3" - }, +/turf/open/floor/prison/damaged3, /area/fiorina/station/security) "aeo" = ( /obj/structure/monorail{ name = "launch track" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/telecomm/lz1_tram) "aeF" = ( /obj/effect/decal/cleanable/blood/splatter{ icon_state = "gibup1" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "aeI" = ( -/turf/open/organic/grass{ - desc = "It'll get in your shoes no matter what you do."; - name = "astroturf" - }, +/turf/open/organic/grass/astroturf, /area/fiorina/station/central_ring) "aeS" = ( /obj/structure/machinery/vending/cigarette/colony, @@ -157,23 +125,13 @@ dir = 1; pixel_y = 21 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/tumor/ice_lab) "afk" = ( -/turf/open/floor{ - desc = "A sophisticated device that captures and converts light from the system's star into energy for the station."; - icon_state = "solarpanel"; - name = "solarpanel" - }, +/turf/open/floor/solarpanel, /area/fiorina/oob) "afq" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreencorner" - }, +/turf/open/floor/prison/whitegreencorner/east, /area/fiorina/station/medbay) "afO" = ( /obj/structure/bed/sofa/vert/grey/bot{ @@ -191,25 +149,19 @@ pixel_x = 10; pixel_y = 13 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/fiorina/tumor/servers) "aga" = ( /obj/structure/surface/table/reinforced/prison, /obj/effect/spawner/random/pills/lowchance, -/turf/open/floor/prison{ - icon_state = "yellowfull" - }, +/turf/open/floor/prison/yellowfull, /area/fiorina/station/lowsec) "agh" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/computer/cameras{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/ice_lab) "agi" = ( /turf/closed/wall/mineral/bone_resin, @@ -259,20 +211,14 @@ /obj/item/shard{ icon_state = "large" }, -/turf/open/floor/prison/chapel_carpet{ - dir = 1; - icon_state = "doubleside" - }, +/turf/open/floor/prison/chapel_carpet/doubleside/north, /area/fiorina/station/chapel) "ahm" = ( /obj/effect/landmark/objective_landmark/close, /turf/open/floor/prison, /area/fiorina/station/flight_deck) "aic" = ( -/turf/open/floor/prison{ - dir = 5; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/northeast, /area/fiorina/station/telecomm/lz1_tram) "aif" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony/autoname{ @@ -283,18 +229,13 @@ /area/fiorina/station/medbay) "aik" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, -/turf/open/floor/prison{ - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2, /area/fiorina/tumor/aux_engi) "aiv" = ( /obj/structure/bed{ icon_state = "abed" }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/west, /area/fiorina/station/research_cells) "aje" = ( /obj/structure/stairs/perspective{ @@ -319,10 +260,7 @@ pixel_x = 5; pixel_y = 5 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/tumor/ice_lab) "ajx" = ( /obj/structure/platform/kutjevo/smooth, @@ -331,10 +269,7 @@ "ajP" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/pizzabox/margherita, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "ajZ" = ( /obj/effect/landmark{ @@ -342,21 +277,14 @@ name = "xeno_hive_spawn" }, /obj/effect/landmark/ert_spawns/groundside_xeno, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/north, /area/fiorina/tumor/aux_engi) "akp" = ( -/turf/open/floor/prison{ - icon_state = "green" - }, +/turf/open/floor/prison/green, /area/fiorina/station/chapel) "akM" = ( /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/fiorina/station/research_cells) "akW" = ( /obj/structure/bed/chair/janicart, @@ -368,43 +296,28 @@ pixel_x = -10; pixel_y = -3 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/fiorina/station/telecomm/lz1_tram) "alC" = ( /obj/structure/inflatable/popped, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/transit_hub) "alK" = ( /obj/item/trash/cigbutt/cigarbutt, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/west, /area/fiorina/station/flight_deck) "alP" = ( /obj/effect/spawner/random/gun/rifle/midchance, -/turf/open/floor/prison{ - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2, /area/fiorina/station/park) "alX" = ( /obj/item/paper/crumpled/bloody, -/turf/open/floor/prison/chapel_carpet{ - dir = 1; - icon_state = "doubleside" - }, +/turf/open/floor/prison/chapel_carpet/doubleside/north, /area/fiorina/station/chapel) "alY" = ( /obj/item/stack/sheet/metal, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - icon_state = "platingdmg1" - }, +/turf/open/floor/prison/platingdmg1, /area/fiorina/station/security) "amd" = ( /obj/effect/decal/hefa_cult_decals/d96, @@ -418,10 +331,7 @@ /turf/open/floor/plating/prison, /area/fiorina/tumor/civres) "amn" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/east, /area/fiorina/station/research_cells) "amF" = ( /turf/closed/wall/r_wall/prison, @@ -430,10 +340,7 @@ /obj/structure/barricade/wooden{ dir = 4 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/west, /area/fiorina/station/research_cells) "ane" = ( /obj/item/weapon/unathiknife{ @@ -444,11 +351,9 @@ "anl" = ( /obj/item/pamphlet/engineer, /obj/structure/closet, -/obj/item/handcuffs, +/obj/item/restraint/handcuffs, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/fiorina/station/lowsec) "anm" = ( /obj/structure/surface/table/reinforced/prison, @@ -476,10 +381,7 @@ /area/fiorina/station/medbay) "ann" = ( /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/fiorina/lz/near_lzI) "anq" = ( /turf/closed/shuttle/ert{ @@ -495,9 +397,7 @@ /area/fiorina/station/park) "any" = ( /obj/item/stack/cable_coil/random, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/fiorina/station/security) "anJ" = ( /obj/structure/cable/heavyduty{ @@ -522,9 +422,7 @@ "anT" = ( /obj/item/reagent_container/food/snacks/meat, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - icon_state = "greenblue" - }, +/turf/open/floor/prison/greenblue, /area/fiorina/station/botany) "anW" = ( /obj/structure/machinery/light/double/blue{ @@ -532,52 +430,38 @@ pixel_x = -10; pixel_y = 13 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "green" - }, +/turf/open/floor/prison/green/west, /area/fiorina/station/chapel) "aoo" = ( /obj/structure/reagent_dispensers/water_cooler/stacks, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/flight_deck) "aoZ" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/reagent_dispensers/water_cooler/stacks{ pixel_y = 11 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/fiorina/station/research_cells) "ape" = ( /obj/structure/bed/chair{ dir = 4; pixel_y = 4 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkbrowncorners2" - }, +/turf/open/floor/prison/darkbrowncorners2/west, /area/fiorina/maintenance) "apf" = ( /turf/open/floor/plating/prison, /area/fiorina/station/civres_blue) "apu" = ( -/turf/open/floor/prison{ - icon_state = "blue" - }, +/turf/open/floor/prison/blue, /area/fiorina/station/power_ring) "apw" = ( /turf/open/auto_turf/sand/layer1, /area/fiorina/tumor/civres) "apO" = ( /obj/structure/platform_decoration, -/turf/open/floor/prison{ - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen, /area/fiorina/tumor/ice_lab) "aqj" = ( /obj/structure/stairs/perspective{ @@ -590,17 +474,12 @@ /obj/item/shard{ icon_state = "large" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/station/medbay) "aqw" = ( /obj/item/stool, /obj/structure/machinery/light/double/blue, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, +/turf/open/floor/prison/bluefull, /area/fiorina/station/civres_blue) "arl" = ( /obj/effect/landmark/objective_landmark/close, @@ -616,10 +495,7 @@ /obj/structure/platform{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "greenblue" - }, +/turf/open/floor/prison/greenblue/southwest, /area/fiorina/station/botany) "arG" = ( /obj/structure/machinery/light/double/blue{ @@ -627,10 +503,7 @@ pixel_x = 10; pixel_y = 13 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/east, /area/fiorina/tumor/aux_engi) "arT" = ( /obj/structure/stairs/perspective{ @@ -639,10 +512,7 @@ /turf/open/floor/plating/prison, /area/fiorina/station/power_ring) "arW" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/oob) "asf" = ( /obj/structure/largecrate/random/barrel/white, @@ -650,10 +520,7 @@ dir = 1; pixel_y = 21 }, -/turf/open/floor/prison{ - dir = 5; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/northeast, /area/fiorina/station/disco) "ask" = ( /obj/structure/machinery/light/double/blue{ @@ -662,9 +529,7 @@ pixel_y = 13 }, /obj/structure/largecrate/random/case, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/fiorina/tumor/aux_engi) "aso" = ( /obj/structure/inflatable/popped/door, @@ -677,10 +542,7 @@ /turf/open/floor/plating/prison, /area/fiorina/station/telecomm/lz2_maint) "asz" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/southwest, /area/fiorina/station/central_ring) "asE" = ( /obj/structure/platform{ @@ -695,18 +557,13 @@ /area/fiorina/station/transit_hub) "asI" = ( /obj/item/toy/deck, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "atd" = ( /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/power_ring) "atl" = ( /obj/structure/platform{ @@ -735,23 +592,15 @@ /area/fiorina/oob) "atw" = ( /obj/item/reagent_container/food/snacks/eat_bar, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "atY" = ( /obj/structure/bedsheetbin, -/turf/open/floor/prison{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/west, /area/fiorina/station/lowsec) "auj" = ( /obj/item/frame/rack, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/servers) "auQ" = ( /obj/structure/flora/grass/tallgrass/jungle/corner{ @@ -764,16 +613,12 @@ dir = 4; layer = 3.5 }, -/turf/open/organic/grass{ - name = "astroturf" - }, +/turf/open/organic/grass/astroturf, /area/fiorina/station/park) "auS" = ( /obj/structure/closet/wardrobe/orange, /obj/item/clothing/under/color/orange, -/turf/open/floor/prison{ - icon_state = "yellowfull" - }, +/turf/open/floor/prison/yellowfull, /area/fiorina/station/lowsec) "avc" = ( /obj/structure/stairs/perspective{ @@ -804,10 +649,7 @@ /obj/structure/machinery/iv_drip{ pixel_y = 19 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/north, /area/fiorina/station/research_cells) "axb" = ( /obj/item/clothing/suit/storage/marine/specialist, @@ -841,35 +683,24 @@ /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/security) "ayo" = ( /obj/structure/platform, -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/east, /area/fiorina/station/security) "ayB" = ( /obj/structure/bed/chair{ dir = 4; pixel_x = -5 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/southwest, /area/fiorina/station/medbay) "ayG" = ( /obj/structure/machinery/power/apc{ dir = 1 }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/northwest, /area/fiorina/station/disco) "ayH" = ( /obj/structure/surface/table/reinforced/prison, @@ -877,21 +708,12 @@ pixel_x = 5; pixel_y = 22 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/fiorina/station/flight_deck) "ayW" = ( -/obj/structure/bed{ - icon_state = "abed" - }, /obj/item/explosive/grenade/incendiary/molotov, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison{ - dir = 10; - icon_state = "yellow" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/lowsec) "ayX" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony/autoname{ @@ -908,9 +730,7 @@ dir = 4; layer = 3.5 }, -/turf/open/organic/grass{ - name = "astroturf" - }, +/turf/open/organic/grass/astroturf, /area/fiorina/station/park) "azv" = ( /obj/structure/girder, @@ -949,24 +769,17 @@ /turf/open/floor/prison, /area/fiorina/station/power_ring) "aAA" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/prison/green/north, /area/fiorina/station/transit_hub) "aAJ" = ( /obj/structure/bed/sofa/vert/grey, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/lz/near_lzII) "aBb" = ( /obj/structure/barricade/wooden{ dir = 8 }, -/turf/open/floor/prison/chapel_carpet{ - icon_state = "doubleside" - }, +/turf/open/floor/prison/chapel_carpet/doubleside, /area/fiorina/station/chapel) "aBs" = ( /obj/structure/flora/grass/tallgrass/jungle/corner{ @@ -979,9 +792,7 @@ dir = 8; layer = 3.5 }, -/turf/open/organic/grass{ - name = "astroturf" - }, +/turf/open/organic/grass/astroturf, /area/fiorina/station/civres_blue) "aBD" = ( /obj/structure/platform, @@ -991,9 +802,7 @@ /obj/structure/platform_decoration{ dir = 10 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/park) "aBJ" = ( /obj/structure/surface/table/reinforced/prison, @@ -1019,43 +828,29 @@ /area/fiorina/station/central_ring) "aDc" = ( /obj/structure/reagent_dispensers/water_cooler/stacks, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/servers) "aDx" = ( -/turf/open/floor/prison{ - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow, /area/fiorina/station/central_ring) "aEi" = ( /obj/structure/machinery/door/poddoor/shutters/almayer, /turf/open/floor/plating/prison, /area/fiorina/tumor/civres) "aEB" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/west, /area/fiorina/station/security/wardens) "aEC" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/power_ring) "aEG" = ( /obj/structure/largecrate/random/secure, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "aEQ" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/telecomm/lz1_cargo) "aFp" = ( /obj/structure/machinery/defenses/tesla_coil{ @@ -1069,18 +864,13 @@ pixel_x = -10; pixel_y = 13 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/fiorina/station/telecomm/lz1_cargo) "aFQ" = ( /obj/effect/decal/cleanable/blood/splatter{ icon_state = "gibmid3" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/station/medbay) "aFZ" = ( /turf/closed/wall/r_wall/prison_unmeltable, @@ -1095,9 +885,7 @@ pixel_x = 11; pixel_y = 6 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/security/wardens) "aGR" = ( /obj/structure/largecrate/random, @@ -1121,48 +909,33 @@ /area/fiorina/station/civres_blue) "aHJ" = ( /obj/structure/machinery/vending/cola, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/fiorina/tumor/aux_engi) "aHK" = ( /obj/item/ammo_casing{ icon_state = "casing_1" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/station/medbay) "aId" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/reagent_container/hypospray, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/fiorina/station/botany) "aIm" = ( /obj/structure/barricade/deployable{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/security) "aIB" = ( /obj/structure/largecrate/random/case/double, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/park) "aJk" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/computer/atmos_alert, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/tumor/ice_lab) "aJo" = ( /obj/structure/bed/chair{ @@ -1174,16 +947,10 @@ pixel_x = -10; pixel_y = -3 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/west, /area/fiorina/station/medbay) "aJv" = ( -/turf/open/floor/prison{ - dir = 6; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/southeast, /area/fiorina/tumor/aux_engi) "aJX" = ( /obj/structure/bed/chair{ @@ -1202,10 +969,7 @@ pixel_x = -10; pixel_y = 13 }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/northwest, /area/fiorina/station/medbay) "aKA" = ( /obj/structure/platform_decoration/kutjevo{ @@ -1218,9 +982,7 @@ network = list("omega") }, /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/aux_engi) "aLp" = ( /obj/structure/prop/invuln{ @@ -1237,9 +999,7 @@ pixel_x = 10; pixel_y = 13 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/power_ring) "aLC" = ( /obj/structure/sink{ @@ -1247,10 +1007,7 @@ pixel_x = -12 }, /obj/effect/spawner/random/pills/lowchance, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/southwest, /area/fiorina/station/research_cells) "aLT" = ( /obj/item/trash/uscm_mre, @@ -1261,34 +1018,25 @@ dir = 1; layer = 2.7 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/fiorina/station/research_cells) "aMg" = ( /turf/closed/wall/r_wall/prison, /area/fiorina/tumor/ice_lab) "aMr" = ( /obj/structure/platform_decoration, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, +/turf/open/floor/prison/bluefull, /area/fiorina/station/power_ring) "aMu" = ( /obj/effect/alien/weeds/node, -/turf/open/floor/prison{ - dir = 5; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/northeast, /area/fiorina/tumor/ice_lab) "aME" = ( /obj/structure/machinery/light/double/blue{ dir = 1; pixel_y = 21 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/security) "aMM" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony/autoname{ @@ -1307,9 +1055,7 @@ /obj/structure/sign/nosmoking_1{ pixel_y = 30 }, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/fiorina/station/security) "aNk" = ( /obj/structure/machinery/light/double/blue{ @@ -1330,9 +1076,7 @@ dir = 1; pixel_y = 21 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/power_ring) "aOc" = ( /turf/closed/shuttle/ert{ @@ -1341,9 +1085,7 @@ }, /area/fiorina/tumor/ship) "aOm" = ( -/turf/open/floor/prison{ - icon_state = "panelscorched" - }, +/turf/open/floor/prison/panelscorched, /area/fiorina/tumor/servers) "aOC" = ( /obj/structure/bed/chair/comfy{ @@ -1366,17 +1108,13 @@ pixel_x = -7; pixel_y = 11 }, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/fiorina/station/security) "aOT" = ( /obj/structure/machinery/landinglight/ds2{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/lz/near_lzII) "aPd" = ( /obj/structure/flora/grass/tallgrass/jungle/corner{ @@ -1385,9 +1123,7 @@ /obj/structure/barricade/wooden{ dir = 1 }, -/turf/open/organic/grass{ - name = "astroturf" - }, +/turf/open/organic/grass/astroturf, /area/fiorina/station/park) "aPr" = ( /obj/structure/stairs/perspective{ @@ -1418,25 +1154,18 @@ pixel_x = 10; pixel_y = -3 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/civres_blue) "aQH" = ( /obj/item/weapon/gun/shotgun/pump/dual_tube/cmb, /obj/effect/landmark/nightmare{ insert_tag = "yardbasketball" }, -/turf/open/organic/grass{ - desc = "It'll get in your shoes no matter what you do."; - name = "astroturf" - }, +/turf/open/organic/grass/astroturf, /area/fiorina/station/central_ring) "aQR" = ( /obj/structure/machinery/vending/cola, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/transit_hub) "aQW" = ( /obj/structure/barricade/sandbags{ @@ -1450,10 +1179,7 @@ /obj/structure/platform{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/tumor/ice_lab) "aRk" = ( /obj/structure/cargo_container/grant/left, @@ -1484,10 +1210,7 @@ /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/east, /area/fiorina/station/medbay) "aSz" = ( /turf/closed/wall/r_wall/prison, @@ -1509,10 +1232,7 @@ /area/fiorina/station/medbay) "aTe" = ( /obj/structure/machinery/landinglight/ds1/delaytwo, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/fiorina/lz/near_lzI) "aTo" = ( /turf/closed/wall/mineral/bone_resin, @@ -1544,18 +1264,12 @@ "aTO" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/toy/deck/uno, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/fiorina/station/botany) "aTY" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/storage/briefcase, -/turf/open/floor/prison{ - dir = 4; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/east, /area/fiorina/station/botany) "aUg" = ( /obj/item/tool/crowbar/red, @@ -1563,19 +1277,14 @@ /area/fiorina/station/security) "aUA" = ( /obj/item/stack/cable_coil/orange, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/tumor/ice_lab) "aVd" = ( /obj/effect/landmark/monkey_spawn, /turf/open/floor/plating/prison, /area/fiorina/station/transit_hub) "aVU" = ( -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/fiorina/station/civres_blue) "aWk" = ( /turf/closed/wall/r_wall/prison_unmeltable, @@ -1584,19 +1293,14 @@ /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22" }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/west, /area/fiorina/station/medbay) "aWV" = ( /turf/closed/wall/r_wall/prison_unmeltable, /area/fiorina/tumor/servers) "aXk" = ( /obj/item/storage/fancy/candle_box, -/turf/open/floor/prison/chapel_carpet{ - icon_state = "doubleside" - }, +/turf/open/floor/prison/chapel_carpet/doubleside, /area/fiorina/station/chapel) "aXn" = ( /turf/closed/shuttle/elevator{ @@ -1614,9 +1318,7 @@ name = "Dr. O's fantastic self rolling wheelie chair"; pixel_x = 7 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/telecomm/lz1_cargo) "aXv" = ( /obj/structure/machinery/light/double/blue, @@ -1631,15 +1333,10 @@ /turf/open/floor/prison, /area/fiorina/lz/near_lzII) "aXC" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "damaged2" - }, +/turf/open/floor/prison/damaged2/southwest, /area/fiorina/station/lowsec) "aXO" = ( -/turf/open/floor/prison{ - icon_state = "damaged2" - }, +/turf/open/floor/prison/damaged2, /area/fiorina/station/central_ring) "aXR" = ( /obj/structure/surface/table/reinforced/prison, @@ -1648,17 +1345,11 @@ dir = 1; pixel_y = 21 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "aYf" = ( /obj/item/tool/scythe, -/turf/open/floor/prison{ - dir = 8; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/west, /area/fiorina/station/botany) "aYg" = ( /obj/structure/machinery/shower{ @@ -1668,15 +1359,10 @@ /obj/structure/machinery/shower{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/fiorina/station/research_cells) "aZi" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/east, /area/fiorina/tumor/servers) "aZD" = ( /obj/structure/platform{ @@ -1695,10 +1381,7 @@ /turf/open/floor/plating/prison, /area/fiorina/lz/near_lzI) "aZL" = ( -/turf/open/floor/prison{ - dir = 5; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/northeast, /area/fiorina/station/disco) "aZN" = ( /obj/item/toy/crayon/yellow, @@ -1708,9 +1391,7 @@ /obj/structure/platform_decoration{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/park) "baC" = ( /turf/closed/wall/mineral/bone_resin, @@ -1722,15 +1403,11 @@ /area/fiorina/station/power_ring) "baM" = ( /obj/effect/spawner/random/gun/smg, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/fiorina/station/research_cells) "bbn" = ( /obj/item/device/motiondetector, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/disco) "bbp" = ( /obj/structure/filingcabinet{ @@ -1742,31 +1419,22 @@ pixel_y = 4 }, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/civres) "bbI" = ( /obj/item/stool{ pixel_x = -4; pixel_y = 23 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/north, /area/fiorina/station/lowsec) "bbU" = ( /obj/structure/sign/safety/fire_haz, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/civres) "bcd" = ( /obj/structure/machinery/vending/coffee, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/flight_deck) "bce" = ( /obj/structure/lattice, @@ -1778,10 +1446,7 @@ /turf/open/floor/plating/prison, /area/fiorina/maintenance) "bcp" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/fiorina/station/telecomm/lz1_tram) "bcq" = ( /obj/item/prop/helmetgarb/riot_shield, @@ -1793,15 +1458,11 @@ pixel_x = 11; pixel_y = 10 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/aux_engi) "bcT" = ( /obj/structure/platform, -/turf/open/floor/prison{ - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2, /area/fiorina/station/park) "bcX" = ( /obj/item/tool/warning_cone, @@ -1816,31 +1477,21 @@ /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2, /area/fiorina/station/park) "bdE" = ( /obj/item/stack/cable_coil, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/civres) "bec" = ( /obj/item/stack/sheet/metal{ amount = 5 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/southwest, /area/fiorina/lz/near_lzI) "beh" = ( /obj/effect/landmark/monkey_spawn, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreencorner" - }, +/turf/open/floor/prison/whitegreencorner/west, /area/fiorina/tumor/ice_lab) "bel" = ( /obj/structure/prop/structure_lattice{ @@ -1849,9 +1500,7 @@ icon = 'icons/turf/elevator.dmi'; icon_state = "wall_broke" }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/fiorina/station/civres_blue) "bem" = ( /obj/structure/platform{ @@ -1875,10 +1524,7 @@ /turf/open/floor/prison, /area/fiorina/tumor/servers) "beB" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/southwest, /area/fiorina/station/power_ring) "beW" = ( /obj/structure/machinery/light/double/blue{ @@ -1890,9 +1536,7 @@ "bff" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/storage/firstaid/regular, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, +/turf/open/floor/prison/bluefull, /area/fiorina/station/civres_blue) "bfF" = ( /obj/structure/cable/heavyduty{ @@ -1917,16 +1561,8 @@ /area/fiorina/maintenance) "bgD" = ( /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/tumor/ice_lab) -"bhf" = ( -/obj/item/fuelCell, -/obj/structure/surface/rack, -/turf/open/floor/prison, -/area/fiorina/maintenance) "bht" = ( /obj/effect/decal/cleanable/blood{ icon_state = "xgib4" @@ -1947,10 +1583,7 @@ /turf/open/floor/plating/prison, /area/fiorina/station/lowsec) "bhW" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "greencorner" - }, +/turf/open/floor/prison/greencorner/east, /area/fiorina/tumor/civres) "bhX" = ( /turf/open/floor/plating/prison, @@ -1959,10 +1592,7 @@ /turf/closed/wall/prison, /area/fiorina/station/chapel) "bix" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/west, /area/fiorina/station/telecomm/lz1_cargo) "bjf" = ( /obj/item/tool/warning_cone, @@ -1978,49 +1608,30 @@ /turf/open/floor/prison, /area/fiorina/station/security) "bjt" = ( -/obj/structure/bed{ - icon_state = "abed" - }, -/obj/item/bedsheet/green, -/turf/open/floor/prison{ - dir = 6; - icon_state = "yellow" - }, +/obj/structure/girder, +/turf/open/floor/prison/yellowfull, /area/fiorina/station/lowsec) "bjR" = ( /obj/structure/bed/chair, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/aux_engi) "bjZ" = ( /obj/item/weapon/twohanded/spear, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/fiorina/station/research_cells) "bkg" = ( /obj/structure/bed/chair, /turf/open/floor/prison, /area/fiorina/station/power_ring) "bki" = ( -/obj/structure/closet{ - density = 0; - pixel_y = 18 - }, -/obj/item/clothing/gloves/boxing/yellow, -/turf/open/floor/prison{ - dir = 5; - icon_state = "yellow" - }, +/obj/structure/surface/table/reinforced/prison, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/lowsec) "bkQ" = ( /obj/item/ammo_casing{ icon_state = "casing_7_1" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/lowsec) "bkU" = ( /obj/effect/decal/cleanable/blood/drip, @@ -2030,18 +1641,18 @@ /obj/structure/prop/resin_prop{ icon_state = "rack" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/aux_engi) +"blf" = ( +/obj/structure/machinery/power/reactor/colony, +/turf/open/floor/prison/bluecorner/north, +/area/fiorina/station/power_ring) "blA" = ( /obj/item/shard{ icon_state = "medium"; name = "ice shard" }, -/turf/open/floor/prison{ - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen, /area/fiorina/tumor/ice_lab) "blG" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ @@ -2053,17 +1664,12 @@ "bma" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/newspaper, -/turf/open/floor/prison{ - dir = 4; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/east, /area/fiorina/station/botany) "bmw" = ( /obj/item/storage/fancy/cigarettes/lucky_strikes, /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/park) "bmE" = ( /obj/structure/machinery/door/airlock/prison_hatch/autoname, @@ -2082,15 +1688,11 @@ /area/fiorina/tumor/servers) "bne" = ( /obj/structure/machinery/landinglight/ds2/delaytwo, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/lz/near_lzII) "bnh" = ( /obj/item/storage/briefcase, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/transit_hub) "bno" = ( /obj/structure/barricade/handrail/type_b{ @@ -2101,9 +1703,7 @@ /area/fiorina/station/disco) "bnx" = ( /obj/item/stack/sheet/metal/medium_stack, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/power_ring) "bnA" = ( /turf/closed/wall/prison, @@ -2124,9 +1724,7 @@ name = "overhead ducting"; pixel_y = 33 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/civres) "boe" = ( /obj/item/tool/wet_sign, @@ -2138,67 +1736,46 @@ /area/fiorina/tumor/ice_lab) "boF" = ( /obj/structure/reagent_dispensers/watertank, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/medbay) "boI" = ( /obj/item/trash/cigbutt/ucigbutt{ pixel_x = 5; pixel_y = 12 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "bpe" = ( /obj/structure/platform_decoration, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/civres_blue) "bpo" = ( /obj/item/dogtag, -/turf/open/floor/prison{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/west, /area/fiorina/station/civres_blue) "bpx" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/light/double/blue, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "bqu" = ( /obj/structure/toilet{ dir = 4; pixel_y = 8 }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/northwest, /area/fiorina/station/research_cells) "bqC" = ( /obj/structure/platform{ dir = 8 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "greenblue" - }, +/turf/open/floor/prison/greenblue/west, /area/fiorina/station/botany) "bqD" = ( /obj/structure/platform_decoration{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/lowsec) "bqF" = ( /obj/structure/closet/secure_closet/guncabinet{ @@ -2212,9 +1789,7 @@ /obj/item/clothing/under/marine/ua_riot, /obj/item/clothing/suit/storage/marine/veteran/ua_riot, /obj/item/prop/helmetgarb/riot_shield, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/fiorina/station/security) "bqX" = ( /obj/effect/decal/cleanable/blood, @@ -2230,28 +1805,18 @@ /turf/open/floor/plating/prison, /area/fiorina/station/power_ring) "brC" = ( -/turf/open/floor/prison{ - dir = 6; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/southeast, /area/fiorina/station/medbay) "brR" = ( -/turf/open/floor/prison{ - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe, /area/fiorina/station/flight_deck) "brY" = ( /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/fiorina/station/transit_hub) "bsc" = ( /obj/structure/prop/almayer/computers/sensor_computer3, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/fiorina/station/security) "bsk" = ( /obj/structure/platform_decoration/kutjevo{ @@ -2264,9 +1829,7 @@ icon_state = "medium"; name = "ice shard" }, -/turf/open/organic/grass{ - name = "astroturf" - }, +/turf/open/organic/grass/astroturf, /area/fiorina/station/research_cells) "bso" = ( /turf/closed/shuttle/ert{ @@ -2278,19 +1841,13 @@ /obj/structure/barricade/wooden{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/southwest, /area/fiorina/station/research_cells) "bsR" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/ashtray/plastic, /obj/item/trash/cigbutt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "buz" = ( /obj/item/stack/rods, @@ -2301,19 +1858,13 @@ dir = 8; icon_state = "p_stair_sn_full_cap" }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/north, /area/fiorina/station/central_ring) "buJ" = ( /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/east, /area/fiorina/station/power_ring) "bvg" = ( /obj/structure/surface/table/reinforced/prison, @@ -2329,31 +1880,22 @@ pixel_x = -1; pixel_y = 6 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/fiorina/station/power_ring) "bvp" = ( /obj/structure/barricade/wooden{ dir = 4; pixel_y = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "damaged1" - }, +/turf/open/floor/prison/damaged1/southwest, /area/fiorina/station/central_ring) "bvr" = ( /obj/item/explosive/grenade/high_explosive/m15, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/prison{ - icon_state = "panelscorched" - }, +/turf/open/floor/prison/panelscorched, /area/fiorina/tumor/aux_engi) "bvs" = ( -/turf/open/floor/prison{ - icon_state = "yellowfull" - }, +/turf/open/floor/prison/yellowfull, /area/fiorina/station/central_ring) "bvK" = ( /obj/structure/surface/table/reinforced/prison, @@ -2368,79 +1910,53 @@ /area/fiorina/station/civres_blue) "bwj" = ( /obj/structure/computerframe, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/medbay) "bwk" = ( /obj/item/tool/wrench, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/north, /area/fiorina/station/research_cells) "bww" = ( /obj/item/trash/candy, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/fiorina/station/telecomm/lz1_cargo) "bxc" = ( /obj/structure/window/reinforced, /turf/open/floor/prison, /area/fiorina/station/security) "bxd" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/east, /area/fiorina/oob) "bxe" = ( /obj/structure/machinery/landinglight/ds2{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/lz/near_lzII) "bxg" = ( /obj/structure/surface/table/reinforced/prison, /obj/effect/landmark/corpsespawner/doctor, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, +/turf/open/floor/prison/bluefull, /area/fiorina/station/civres_blue) "bxm" = ( /obj/structure/machinery/light/double/blue{ dir = 1; pixel_y = 21 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/north, /area/fiorina/station/park) "bxv" = ( /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/prison{ - dir = 4; - icon_state = "bluecorner" - }, +/turf/open/floor/prison/bluecorner/east, /area/fiorina/station/power_ring) "bxy" = ( -/turf/open/floor/prison{ - dir = 5; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/northeast, /area/fiorina/lz/near_lzI) "bxA" = ( /obj/structure/platform_decoration{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/transit_hub) "bxE" = ( /obj/structure/prop/structure_lattice{ @@ -2459,9 +1975,7 @@ name = "overhead pipe"; pixel_y = 20 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/civres) "bxQ" = ( /obj/structure/machinery/light/double/blue{ @@ -2469,10 +1983,7 @@ pixel_x = 10; pixel_y = -3 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/north, /area/fiorina/station/medbay) "bxV" = ( /obj/item/clothing/head/cmcap, @@ -2484,10 +1995,7 @@ /obj/item/tool/kitchen/rollingpin{ pixel_y = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/fiorina/station/civres_blue) "byb" = ( /turf/closed/shuttle/ert{ @@ -2509,9 +2017,7 @@ /area/fiorina/lz/near_lzI) "byB" = ( /obj/structure/surface/rack, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/chapel) "byE" = ( /obj/structure/machinery/vending/cola, @@ -2525,23 +2031,14 @@ /obj/structure/platform_decoration{ dir = 6 }, -/turf/open/floor/prison{ - dir = 6; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/southeast, /area/fiorina/tumor/ice_lab) "byG" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_nest, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/east, /area/fiorina/tumor/ice_lab) "byJ" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "green" - }, +/turf/open/floor/prison/green/west, /area/fiorina/tumor/civres) "byT" = ( /obj/structure/platform, @@ -2552,10 +2049,7 @@ /area/fiorina/station/medbay) "bze" = ( /obj/structure/inflatable/popped/door, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreencorner" - }, +/turf/open/floor/prison/whitegreencorner/west, /area/fiorina/station/medbay) "bzO" = ( /turf/closed/wall/r_wall/prison_unmeltable, @@ -2565,10 +2059,7 @@ /obj/item/device/flashlight, /obj/structure/surface/rack, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/tumor/ice_lab) "bAc" = ( /turf/closed/shuttle/ert{ @@ -2577,24 +2068,17 @@ /area/fiorina/tumor/aux_engi) "bAf" = ( /obj/structure/machinery/light/double/blue, -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/east, /area/fiorina/station/power_ring) "bAE" = ( /obj/structure/surface/rack, /obj/item/storage/pill_bottle/bicaridine/skillless, /obj/item/storage/pill_bottle/bicaridine/skillless, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/medbay) "bAM" = ( /obj/item/paper/prison_station/inmate_handbook, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/lowsec) "bBr" = ( /obj/structure/barricade/metal/wired{ @@ -2603,17 +2087,12 @@ /obj/item/bodybag/tarp/reactive, /obj/item/bodybag/tarp/reactive, /obj/structure/surface/rack, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/west, /area/fiorina/station/telecomm/lz1_cargo) "bBt" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/tool, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/security) "bBA" = ( /turf/closed/shuttle/ert{ @@ -2623,9 +2102,7 @@ "bBB" = ( /obj/structure/largecrate/random/barrel, /obj/structure/machinery/light/double/blue, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/fiorina/station/park) "bBK" = ( /obj/item/clothing/under/marine/ua_riot, @@ -2633,10 +2110,7 @@ /turf/open/floor/prison, /area/fiorina/station/security) "bCe" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "redcorner" - }, +/turf/open/floor/prison/redcorner/north, /area/fiorina/station/security) "bCu" = ( /obj/item/shard{ @@ -2648,9 +2122,7 @@ /obj/structure/platform_decoration{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/flight_deck) "bDx" = ( /obj/item/tool/extinguisher/mini, @@ -2658,22 +2130,14 @@ dir = 1; pixel_y = 21 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/fiorina/tumor/aux_engi) "bDJ" = ( /obj/effect/spawner/random/gun/pistol, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/station/medbay) "bDM" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/west, /area/fiorina/station/chapel) "bDU" = ( /obj/item/stack/rods, @@ -2681,9 +2145,7 @@ /area/fiorina/tumor/aux_engi) "bDX" = ( /obj/effect/spawner/random/tool, -/turf/open/floor/prison{ - icon_state = "green" - }, +/turf/open/floor/prison/green, /area/fiorina/station/chapel) "bEk" = ( /obj/structure/monorail{ @@ -2710,9 +2172,7 @@ /area/fiorina/station/park) "bEP" = ( /obj/item/device/flashlight, -/turf/open/floor/prison/chapel_carpet{ - icon_state = "doubleside" - }, +/turf/open/floor/prison/chapel_carpet/doubleside, /area/fiorina/station/chapel) "bEX" = ( /obj/structure/window/framed/prison, @@ -2724,19 +2184,13 @@ /obj/item/reagent_container/food/snacks/meat/human, /obj/structure/machinery/light/double/blue, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/fiorina/station/civres_blue) "bFi" = ( /obj/structure/platform_decoration{ dir = 4 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/west, /area/fiorina/station/park) "bFr" = ( /turf/closed/wall/r_wall/prison_unmeltable, @@ -2752,10 +2206,7 @@ /area/fiorina/station/park) "bFJ" = ( /obj/effect/decal/cleanable/blood/drip, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/fiorina/station/botany) "bFL" = ( /obj/structure/mirror{ @@ -2765,31 +2216,21 @@ dir = 8; pixel_x = -12 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/fiorina/tumor/civres) "bGA" = ( /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/park) "bGB" = ( /obj/structure/largecrate/supply/generator, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/fiorina/station/telecomm/lz1_cargo) "bGH" = ( /obj/structure/bed/chair/office/dark, -/turf/open/floor/prison{ - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen, /area/fiorina/tumor/ice_lab) "bGY" = ( /turf/closed/shuttle/elevator{ @@ -2819,9 +2260,7 @@ /area/fiorina/lz/near_lzI) "bHR" = ( /obj/structure/largecrate/random, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/fiorina/tumor/aux_engi) "bHU" = ( /obj/structure/platform/kutjevo/smooth{ @@ -2842,17 +2281,12 @@ icon_state = "abed" }, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/prison{ - dir = 10; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/southwest, /area/fiorina/station/lowsec) "bIR" = ( /obj/structure/closet/secure_closet/security, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/fiorina/station/disco) "bIZ" = ( /turf/closed/shuttle/elevator{ @@ -2882,9 +2316,7 @@ /obj/structure/barricade/handrail/type_b{ layer = 3.5 }, -/turf/open/organic/grass{ - name = "astroturf" - }, +/turf/open/organic/grass/astroturf, /area/fiorina/station/park) "bJG" = ( /obj/effect/decal/medical_decals{ @@ -2893,18 +2325,12 @@ /obj/structure/pipes/standard/simple/visible{ dir = 5 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/station/medbay) "bKF" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/storage/pill_bottle/imidazoline, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/tumor/ice_lab) "bLA" = ( /obj/structure/surface/table/reinforced/prison, @@ -2920,16 +2346,11 @@ /turf/closed/wall/prison, /area/fiorina/station/central_ring) "bLM" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "bLO" = ( /obj/item/stack/cable_coil/blue, -/turf/open/floor/prison{ - icon_state = "whitegreencorner" - }, +/turf/open/floor/prison/whitegreencorner, /area/fiorina/tumor/ice_lab) "bMh" = ( /obj/item/frame/table/wood/fancy, @@ -2945,48 +2366,32 @@ /area/fiorina/station/power_ring) "bMz" = ( /obj/item/tool/lighter/random, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/fiorina/tumor/civres) "bMF" = ( /obj/item/trash/cigbutt/cigarbutt, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/lz/near_lzI) "bMG" = ( /obj/structure/surface/rack, -/obj/item/handcuffs/zip, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/obj/item/restraint/handcuffs/zip, +/turf/open/floor/prison/darkredfull2, /area/fiorina/station/lowsec) "bMI" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/folder/black_random, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, +/turf/open/floor/prison/bluefull, /area/fiorina/station/power_ring) "bMT" = ( /obj/structure/tunnel/maint_tunnel, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/ice_lab) "bNo" = ( /obj/item/trash/uscm_mre, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "bNE" = ( -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/civres_blue) "bNP" = ( /obj/effect/spawner/random/tool, @@ -3009,29 +2414,20 @@ /area/fiorina/lz/near_lzII) "bOx" = ( /obj/structure/machinery/light/double/blue, -/turf/open/floor/prison{ - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple, /area/fiorina/station/research_cells) "bOK" = ( /obj/item/reagent_container/food/snacks/donkpocket, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/fiorina/station/civres_blue) "bOR" = ( /obj/structure/bed/roller, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/station/medbay) "bPh" = ( /obj/item/storage/fancy/cigarettes/lucky_strikes, /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, +/turf/open/floor/prison/bluefull, /area/fiorina/station/power_ring) "bPl" = ( /obj/structure/surface/table/woodentable/fancy, @@ -3041,17 +2437,13 @@ /obj/item/reagent_container/food/drinks/coffee{ name = "\improper paper cup" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/lowsec) "bPy" = ( /obj/structure/prop/resin_prop{ icon_state = "sheater0" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/servers) "bPG" = ( /turf/open/floor/plating/prison, @@ -3063,10 +2455,7 @@ /turf/open/floor/plating/prison, /area/fiorina/tumor/servers) "bPQ" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/prison/green/north, /area/fiorina/station/chapel) "bPT" = ( /obj/structure/monorail{ @@ -3077,10 +2466,7 @@ /area/fiorina/tumor/aux_engi) "bPV" = ( /obj/item/device/flashlight/lamp/tripod, -/turf/open/floor/prison{ - dir = 9; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/northwest, /area/fiorina/station/medbay) "bQh" = ( /obj/structure/prop/invuln/minecart_tracks{ @@ -3111,16 +2497,11 @@ /obj/effect/decal/cleanable/blood/splatter{ icon_state = "gib2" }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreencorner" - }, +/turf/open/floor/prison/whitegreencorner/west, /area/fiorina/station/medbay) "bQv" = ( /obj/item/trash/cigbutt/ucigbutt, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/chapel) "bQy" = ( /obj/structure/surface/table/woodentable, @@ -3129,9 +2510,7 @@ /area/fiorina/station/civres_blue) "bQL" = ( /obj/item/tool/mop, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/chapel) "bQM" = ( /turf/open/space, @@ -3140,9 +2519,7 @@ /obj/item/frame/rack, /obj/item/stack/medical/bruise_pack, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/fiorina/station/security) "bRb" = ( /obj/structure/machinery/defenses/sentry/premade/dumb{ @@ -3168,26 +2545,18 @@ pixel_x = 5; pixel_y = 25 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/station/medbay) "bRs" = ( /obj/structure/closet/crate/miningcar{ name = "\improper materials storage bin" }, /obj/item/reagent_container/food/snacks/meat, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/park) "bRA" = ( /obj/effect/decal/cleanable/blood/drip, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/east, /area/fiorina/station/telecomm/lz1_cargo) "bRC" = ( /obj/structure/flora/pottedplant{ @@ -3197,28 +2566,19 @@ /area/fiorina/station/power_ring) "bRQ" = ( /obj/item/stock_parts/micro_laser/ultra, -/turf/open/floor/prison{ - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2, /area/fiorina/tumor/servers) "bSm" = ( /obj/structure/machinery/power/port_gen/pacman, -/turf/open/floor/prison{ - dir = 5; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/northeast, /area/fiorina/lz/near_lzI) "bSq" = ( /obj/structure/surface/rack, /obj/item/weapon/gun/smg/nailgun, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/fiorina/maintenance) "bSs" = ( -/turf/open/floor/prison{ - icon_state = "floorscorched2" - }, +/turf/open/floor/prison/floorscorched2, /area/fiorina/station/security) "bSM" = ( /obj/structure/machinery/portable_atmospherics/hydroponics{ @@ -3231,19 +2591,14 @@ /area/fiorina/station/botany) "bSS" = ( /obj/structure/largecrate/random/case, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/park) "bTc" = ( /obj/structure/stairs/perspective{ dir = 1; icon_state = "p_stair_sn_full_cap" }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/west, /area/fiorina/station/chapel) "bTo" = ( /obj/structure/platform/kutjevo/smooth, @@ -3254,26 +2609,17 @@ dir = 1; pixel_y = 21 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/fiorina/lz/near_lzI) "bTr" = ( /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/prison{ - dir = 9; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/northwest, /area/fiorina/station/research_cells) "bTC" = ( /obj/structure/machinery/power/terminal{ dir = 8 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "bluecorner" - }, +/turf/open/floor/prison/bluecorner/east, /area/fiorina/station/power_ring) "bTI" = ( /obj/structure/machinery/door/poddoor/almayer/locked{ @@ -3322,30 +2668,19 @@ /area/fiorina/station/medbay) "bXc" = ( /obj/structure/inflatable/popped, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/east, /area/fiorina/station/medbay) "bXe" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/ammo_box/magazine/misc/flares, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/servers) "bXh" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "bluecorner" - }, +/turf/open/floor/prison/bluecorner/north, /area/fiorina/station/chapel) "bXz" = ( /obj/item/stack/sheet/wood, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/west, /area/fiorina/station/research_cells) "bXA" = ( /obj/item/tool/screwdriver, @@ -3355,24 +2690,17 @@ /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "darkbrowncorners2" - }, +/turf/open/floor/prison/darkbrowncorners2, /area/fiorina/maintenance) "bZn" = ( /obj/item/device/taperecorder{ pixel_x = 1; pixel_y = 3 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/chapel) "bZD" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrowncorners2" - }, +/turf/open/floor/prison/darkbrowncorners2/north, /area/fiorina/tumor/aux_engi) "bZI" = ( /obj/structure/surface/table/reinforced/prison{ @@ -3380,9 +2708,7 @@ flipped = 1 }, /obj/item/device/flashlight/lamp, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/fiorina/station/research_cells) "bZY" = ( /obj/structure/machinery/light/double/blue, @@ -3390,22 +2716,14 @@ /area/fiorina/station/security) "car" = ( /obj/structure/machinery/portable_atmospherics/canister/nitrogen, -/turf/open/floor/prison{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/west, /area/fiorina/station/lowsec) "caA" = ( /obj/effect/spawner/random/toolbox, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/servers) "caC" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "green" - }, +/turf/open/floor/prison/green/east, /area/fiorina/station/transit_hub) "caF" = ( /turf/open/floor/wood, @@ -3415,10 +2733,7 @@ /obj/item/ammo_casing{ icon_state = "casing_1" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/station/medbay) "cbd" = ( /obj/structure/reagent_dispensers/watertank, @@ -3455,9 +2770,7 @@ /area/fiorina/station) "cbY" = ( /obj/item/newspaper, -/turf/open/floor/prison{ - icon_state = "whitepurplecorner" - }, +/turf/open/floor/prison/whitepurplecorner, /area/fiorina/station/research_cells) "ccH" = ( /obj/structure/machinery/newscaster, @@ -3484,10 +2797,7 @@ /obj/structure/bed/chair/comfy{ dir = 8 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/fiorina/station/flight_deck) "cdV" = ( /obj/structure/machinery/light/double/blue{ @@ -3495,10 +2805,7 @@ pixel_x = 10; pixel_y = 13 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/fiorina/station/botany) "cdY" = ( /obj/effect/decal/medical_decals{ @@ -3509,10 +2816,7 @@ dir = 1; pixel_y = 21 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/station/medbay) "ceq" = ( /obj/item/bodybag, @@ -3522,69 +2826,45 @@ /obj/item/bodybag{ pixel_y = 4 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/medbay) "cer" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/north, /area/fiorina/tumor/ice_lab) "ceB" = ( /obj/structure/bed/chair/comfy, -/turf/open/floor/prison{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/west, /area/fiorina/station/civres_blue) "ceC" = ( /turf/closed/wall/r_wall/prison, /area/fiorina/station/security) "ceJ" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/southwest, /area/fiorina/tumor/ice_lab) "cfa" = ( /obj/item/frame/rack, /obj/structure/barricade/handrail/type_b{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/fiorina/station/lowsec) "cfG" = ( /obj/structure/machinery/landinglight/ds1/delayone{ dir = 1 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/fiorina/lz/near_lzI) "cfU" = ( /obj/item/prop/helmetgarb/gunoil, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/fiorina/station/research_cells) "cgx" = ( /obj/structure/bed/chair, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/station/medbay) "chg" = ( /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, +/turf/open/floor/prison/bluefull, /area/fiorina/station/power_ring) "chx" = ( /obj/structure/stairs/perspective{ @@ -3598,10 +2878,7 @@ density = 0; pixel_y = 16 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/north, /area/fiorina/maintenance) "chT" = ( /obj/structure/machinery/light/double/blue{ @@ -3622,10 +2899,7 @@ /obj/item/coin/uranium{ desc = "You found one of the three uranium coins. It is entirely worthless." }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/station/medbay) "ciy" = ( /obj/structure/platform, @@ -3636,10 +2910,7 @@ dir = 6 }, /obj/structure/closet/emcloset, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "ciA" = ( /obj/structure/machinery/vending/snack/packaged, @@ -3660,64 +2931,41 @@ pixel_y = 12 }, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/ice_lab) "cje" = ( /obj/structure/prop/almayer/computers/sensor_computer3, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/fiorina/tumor/servers) "cjG" = ( /obj/structure/machinery/light/double/blue, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/civres_blue) "cki" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/computer/secure_data{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/security) "ckm" = ( /obj/structure/window/framed/prison/reinforced/hull, /turf/open/floor/plating/prison, /area/fiorina/lz/near_lzII) "ckr" = ( -/turf/open/floor/prison{ - dir = 6; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/southeast, /area/fiorina/station/telecomm/lz1_tram) "ckt" = ( /obj/structure/machinery/light/double/blue, -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/east, /area/fiorina/station/medbay) -"ckx" = ( -/obj/structure/platform{ - dir = 1 - }, -/obj/item/fuelCell, -/turf/open/floor/plating/prison, -/area/fiorina/station/lowsec) "ckA" = ( /obj/structure/platform, /turf/open/floor/prison, /area/fiorina/tumor/ice_lab) "ckS" = ( /obj/item/stack/sheet/metal, -/turf/open/floor/prison{ - icon_state = "yellowfull" - }, +/turf/open/floor/prison/yellowfull, /area/fiorina/station/lowsec) "ckZ" = ( /obj/structure/platform, @@ -3740,16 +2988,11 @@ /area/fiorina/tumor/civres) "clv" = ( /obj/structure/inflatable/popped/door, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/servers) "clA" = ( /obj/item/weapon/baton/cattleprod, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/southwest, /area/fiorina/station/research_cells) "clN" = ( /obj/structure/prop/invuln/minecart_tracks{ @@ -3758,9 +3001,7 @@ /turf/open/floor/plating/prison, /area/fiorina/tumor/servers) "clP" = ( -/turf/open/floor/prison/chapel_carpet{ - icon_state = "doubleside" - }, +/turf/open/floor/prison/chapel_carpet/doubleside, /area/fiorina/station/chapel) "cmy" = ( /obj/structure/sign/prop3{ @@ -3772,9 +3013,7 @@ /obj/item/stack/sheet/wood/medium_stack, /obj/item/stack/sheet/wood/medium_stack, /obj/structure/surface/rack, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/fiorina/maintenance) "cmP" = ( /obj/structure/pipes/standard/tank{ @@ -3791,10 +3030,7 @@ /area/fiorina/station/security) "cnH" = ( /obj/item/stock_parts/manipulator/pico, -/turf/open/floor/prison{ - dir = 6; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/southeast, /area/fiorina/tumor/servers) "coj" = ( /obj/item/stool, @@ -3822,34 +3058,22 @@ }, /obj/structure/filingcabinet, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "cqT" = ( -/turf/open/floor/prison{ - icon_state = "floorscorched1" - }, +/turf/open/floor/prison/floorscorched1, /area/fiorina/station/security) "cqV" = ( /obj/item/stool, -/turf/open/floor/prison{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/west, /area/fiorina/station/power_ring) "cqW" = ( /obj/item/stool, -/turf/open/floor/prison{ - icon_state = "damaged2" - }, +/turf/open/floor/prison/damaged2, /area/fiorina/station/lowsec) "cqX" = ( /obj/item/stool, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/medbay) "cri" = ( /obj/structure/machinery/computer/prisoner, @@ -3866,10 +3090,7 @@ /obj/effect/decal/medical_decals{ icon_state = "triagedecalleft" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/station/medbay) "cry" = ( /obj/structure/stairs/perspective{ @@ -3886,10 +3107,7 @@ /turf/open/floor/plating/plating_catwalk/prison, /area/fiorina/tumor/servers) "csL" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/east, /area/fiorina/station/telecomm/lz1_tram) "ctc" = ( /obj/structure/prop/resin_prop{ @@ -3906,10 +3124,7 @@ /obj/structure/machinery/computer/skills{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "ctD" = ( /obj/effect/landmark/monkey_spawn, @@ -3920,10 +3135,7 @@ icon_state = "abed" }, /obj/effect/spawner/random/goggles/lowchance, -/turf/open/floor/prison{ - dir = 6; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/southeast, /area/fiorina/station/research_cells) "ctW" = ( /obj/structure/bed{ @@ -3931,36 +3143,24 @@ }, /obj/item/coin/uranium, /obj/item/bedsheet/green, -/turf/open/floor/prison{ - dir = 6; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/southeast, /area/fiorina/station/lowsec) "ctY" = ( -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/northwest, /area/fiorina/station/central_ring) "cui" = ( /obj/structure/bed/chair/comfy{ dir = 4 }, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/prison{ - dir = 6; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/southeast, /area/fiorina/station/civres_blue) "cum" = ( /obj/structure/barricade/handrail/type_b{ dir = 1 }, /obj/item/frame/rack, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/fiorina/station/disco) "cvc" = ( /obj/structure/barricade/metal/wired{ @@ -3969,10 +3169,7 @@ /obj/structure/machinery/m56d_hmg/mg_turret/dropship{ dir = 4 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/north, /area/fiorina/station/central_ring) "cvd" = ( /obj/structure/surface/table/reinforced/prison, @@ -3980,18 +3177,13 @@ pixel_x = 5; pixel_y = 22 }, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, +/turf/open/floor/prison/bluefull, /area/fiorina/station/civres_blue) "cvi" = ( /obj/structure/surface/rack, /obj/item/storage/firstaid/fire, /obj/item/storage/firstaid/fire, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "cvn" = ( /obj/structure/window/framed/prison/reinforced/hull, @@ -4003,9 +3195,7 @@ /area/fiorina/lz/near_lzII) "cvH" = ( /obj/effect/landmark/xeno_spawn, -/turf/open/floor/prison{ - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen, /area/fiorina/tumor/ice_lab) "cvL" = ( /obj/effect/landmark/nightmare{ @@ -4017,10 +3207,7 @@ /obj/structure/bed/chair/comfy{ dir = 8 }, -/turf/open/organic/grass{ - desc = "It'll get in your shoes no matter what you do."; - name = "astroturf" - }, +/turf/open/organic/grass/astroturf, /area/fiorina/tumor/fiberbush) "cwM" = ( /obj/structure/machinery/light/double/blue{ @@ -4028,23 +3215,15 @@ pixel_x = -10; pixel_y = -3 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/power_ring) "cxb" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/west, /area/fiorina/maintenance) "cxc" = ( /obj/item/stack/folding_barricade, /obj/structure/surface/table/woodentable/fancy, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/fiorina/station/chapel) "cxy" = ( /obj/item/ammo_magazine/rifle/m16{ @@ -4059,15 +3238,10 @@ /area/fiorina/station/security) "cxA" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/lowsec) "cyb" = ( -/turf/open/organic/grass{ - desc = "It'll get in your shoes no matter what you do."; - name = "astroturf" - }, +/turf/open/organic/grass/astroturf, /area/fiorina/tumor/aux_engi) "cye" = ( /obj/item/trash/pistachios, @@ -4076,16 +3250,11 @@ "cyk" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/device/megaphone, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/tumor/ice_lab) "cyR" = ( /obj/structure/machinery/light/double/blue, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, +/turf/open/floor/prison/bluefull, /area/fiorina/station/power_ring) "cyV" = ( /turf/open/floor/plating/plating_catwalk/prison, @@ -4100,25 +3269,18 @@ "czr" = ( /obj/structure/surface/table/reinforced/prison, /obj/effect/spawner/random/pills/lowchance, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, +/turf/open/floor/prison/bluefull, /area/fiorina/station/power_ring) "czJ" = ( /obj/structure/reagent_dispensers/watertank{ layer = 2.6 }, /obj/structure/machinery/light/double/blue, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/lz/near_lzII) "cAJ" = ( /obj/item/trash/snack_bowl, -/turf/open/floor/prison{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/north, /area/fiorina/station/lowsec) "cAO" = ( /obj/effect/decal/cleanable/blood/oil, @@ -4140,9 +3302,7 @@ "cBm" = ( /obj/structure/surface/rack, /obj/item/storage/toolbox/electrical, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/aux_engi) "cBn" = ( /obj/structure/platform{ @@ -4154,22 +3314,15 @@ /obj/structure/platform_decoration{ dir = 9 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/power_ring) "cBG" = ( /obj/effect/alien/weeds/node, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/west, /area/fiorina/tumor/aux_engi) "cBJ" = ( /obj/item/clothing/shoes/laceup, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/civres_blue) "cBK" = ( /obj/item/shard{ @@ -4185,15 +3338,10 @@ /obj/item/reagent_container/food/drinks/coffee{ pixel_y = 13 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "cCe" = ( -/turf/open/floor/prison{ - icon_state = "whitepurplecorner" - }, +/turf/open/floor/prison/whitepurplecorner, /area/fiorina/station/research_cells) "cCh" = ( /obj/item/ammo_casing{ @@ -4204,10 +3352,7 @@ /area/fiorina/station/telecomm/lz1_cargo) "cCs" = ( /obj/structure/largecrate/random/case/small, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/station/medbay) "cCt" = ( /obj/structure/barricade/wooden, @@ -4238,9 +3383,7 @@ desc = "Sworn to the shrapnel and the shards therein. So sayeth her command when the first detonation occured."; name = "HEFA Order milita armband" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/chapel) "cDb" = ( /obj/item/tool/crowbar, @@ -4257,9 +3400,7 @@ name = "\improper materials storage bin" }, /obj/item/reagent_container/food/snacks/meat, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/security) "cEb" = ( /obj/structure/stairs/perspective{ @@ -4271,9 +3412,7 @@ "cEg" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/ammo_magazine/shotgun/buckshot, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/fiorina/station/research_cells) "cEw" = ( /turf/closed/wall/r_wall/prison_unmeltable, @@ -4288,44 +3427,31 @@ /obj/structure/platform{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/east, /area/fiorina/tumor/ice_lab) "cEW" = ( /obj/structure/flora/bush/ausbushes/grassybush{ icon_state = "ywflowers_4" }, -/turf/open/organic/grass{ - desc = "It'll get in your shoes no matter what you do."; - name = "astroturf" - }, +/turf/open/organic/grass/astroturf, /area/fiorina/station/central_ring) "cEY" = ( /obj/structure/largecrate/random/case/double, /obj/structure/machinery/light/double/blue, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/fiorina/station/park) "cFg" = ( /obj/structure/machinery/landinglight/ds2/delaythree{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/lz/near_lzII) "cFq" = ( /obj/item/tool/mop, /turf/open/floor/plating/prison, /area/fiorina/maintenance) "cFT" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/prison/green/north, /area/fiorina/tumor/civres) "cFX" = ( /obj/structure/largecrate/supply/supplies, @@ -4337,20 +3463,14 @@ dir = 1; pixel_y = 21 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/tumor/ice_lab) "cGR" = ( /obj/effect/landmark/objective_landmark/medium, /turf/open/floor/wood, /area/fiorina/station/park) "cGS" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/east, /area/fiorina/station/disco) "cGU" = ( /obj/structure/window/reinforced{ @@ -4361,16 +3481,11 @@ /obj/structure/machinery/computer/med_data/laptop{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/station/medbay) "cHl" = ( /obj/structure/machinery/light/double/blue, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/security) "cHm" = ( /obj/item/bedsheet/green, @@ -4380,10 +3495,7 @@ /area/fiorina/station/power_ring) "cHC" = ( /obj/item/trash/popcorn, -/turf/open/floor/prison{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/north, /area/fiorina/station/lowsec) "cHF" = ( /obj/structure/surface/table/reinforced/prison, @@ -4396,18 +3508,14 @@ /area/fiorina/station/security) "cHK" = ( /obj/structure/closet/secure_closet/engineering_welding, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/fiorina/tumor/aux_engi) "cIt" = ( /obj/structure/machinery/light/double/blue{ dir = 1; pixel_y = 21 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/fiorina/station/research_cells) "cIJ" = ( /obj/structure/machinery/light/double/blue{ @@ -4415,10 +3523,7 @@ pixel_y = 21 }, /obj/structure/inflatable, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/north, /area/fiorina/station/research_cells) "cIQ" = ( /obj/structure/bed/chair{ @@ -4432,16 +3537,11 @@ dir = 4; pixel_y = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/fiorina/station/park) "cJv" = ( /obj/item/stack/rods, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/fiorina/station/telecomm/lz1_cargo) "cJz" = ( /obj/structure/machinery/light/double/blue{ @@ -4449,10 +3549,7 @@ pixel_x = 10; pixel_y = 13 }, -/turf/open/organic/grass{ - desc = "It'll get in your shoes no matter what you do."; - name = "astroturf" - }, +/turf/open/organic/grass/astroturf, /area/fiorina/tumor/fiberbush) "cJL" = ( /obj/structure/prop/structure_lattice{ @@ -4464,18 +3561,12 @@ layer = 3.1; pixel_y = 10 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/tumor/ice_lab) "cJS" = ( /obj/item/trash/uscm_mre, /obj/effect/landmark/corpsespawner/ua_riot, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/west, /area/fiorina/station/flight_deck) "cJW" = ( /obj/effect/landmark/survivor_spawner, @@ -4483,10 +3574,7 @@ /area/fiorina/station/security/wardens) "cJY" = ( /obj/item/device/flashlight/lamp/tripod, -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/northwest, /area/fiorina/tumor/aux_engi) "cKa" = ( /turf/closed/wall/prison, @@ -4496,9 +3584,7 @@ dir = 1; pixel_y = 21 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/civres) "cKB" = ( /obj/structure/stairs/perspective{ @@ -4508,10 +3594,7 @@ /obj/structure/platform{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/tumor/ice_lab) "cKH" = ( /obj/structure/closet/bodybag, @@ -4528,9 +3611,7 @@ /obj/item/reagent_container/glass/bottle/robot/antitoxin, /obj/item/clothing/suit/storage/marine/veteran/ua_riot, /obj/item/prop/helmetgarb/riot_shield, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/fiorina/station/security) "cKU" = ( /obj/structure/stairs/perspective{ @@ -4553,10 +3634,7 @@ /obj/structure/platform_decoration{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/tumor/ice_lab) "cLC" = ( /obj/structure/surface/table/reinforced/prison, @@ -4566,36 +3644,23 @@ /obj/structure/machinery/computer/cameras{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/security) "cLS" = ( /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/fiorina/station/telecomm/lz1_cargo) "cLZ" = ( /obj/structure/largecrate/guns/merc, /obj/item/toy/deck/uno, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/power_ring) "cMb" = ( /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/east, /area/fiorina/station/medbay) "cMD" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/north, /area/fiorina/station/central_ring) "cME" = ( /turf/open/floor/plating/prison, @@ -4604,55 +3669,36 @@ /obj/structure/machinery/shower{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/fiorina/station/research_cells) "cNe" = ( /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/fiorina/tumor/servers) "cOj" = ( -/turf/open/floor/prison{ - icon_state = "blue" - }, +/turf/open/floor/prison/blue, /area/fiorina/station/civres_blue) "cOB" = ( /obj/item/stool, -/turf/open/floor/prison{ - dir = 1; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/north, /area/fiorina/station/flight_deck) "cOC" = ( /obj/item/tool/wet_sign, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/park) "cOF" = ( -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/fiorina/station/research_cells) "cOL" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/southwest, /area/fiorina/station/telecomm/lz1_cargo) "cPh" = ( /obj/item/ammo_casing{ icon_state = "casing_6" }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/north, /area/fiorina/station/lowsec) "cPq" = ( /obj/structure/machinery/light/double/blue{ @@ -4664,9 +3710,7 @@ /area/fiorina/maintenance) "cPs" = ( /obj/structure/largecrate/random, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/servers) "cPz" = ( /obj/structure/machinery/fuelcell_recycler, @@ -4674,10 +3718,7 @@ /area/fiorina/station/telecomm/lz1_cargo) "cPC" = ( /obj/item/stack/sandbags_empty, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/fiorina/tumor/civres) "cPL" = ( /obj/structure/stairs/perspective{ @@ -4688,18 +3729,16 @@ /area/fiorina/station/park) "cQe" = ( /obj/item/reagent_container/food/snacks/donkpocket, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/transit_hub) "cQf" = ( -/obj/structure/machinery/power/apc{ - dir = 1 - }, -/turf/open/floor/prison{ +/obj/structure/machinery/light/double/blue{ dir = 1; - icon_state = "yellow" + pixel_y = 21 }, +/obj/structure/surface/table/reinforced/prison, +/obj/item/explosive/grenade/incendiary/molotov, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/lowsec) "cQv" = ( /obj/structure/monorail{ @@ -4712,23 +3751,17 @@ /area/fiorina/oob) "cRg" = ( /obj/structure/machinery/vending/coffee/simple, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/park) "cRl" = ( /obj/structure/closet/secure_closet/security_empty, /obj/item/book/manual/security_space_law, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/fiorina/station/security) "cRx" = ( /obj/structure/machinery/sensortower, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/civres) "cRB" = ( /obj/structure/machinery/door/airlock/prison/horizontal{ @@ -4745,38 +3778,26 @@ pixel_y = 18 }, /obj/item/stool, -/turf/open/floor/prison{ - icon_state = "yellowfull" - }, +/turf/open/floor/prison/yellowfull, /area/fiorina/station/lowsec) "cRK" = ( /obj/structure/window, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/fiorina/tumor/servers) "cRM" = ( /obj/effect/landmark/survivor_spawner, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/fiorina/station/disco) "cRZ" = ( /obj/structure/machinery/landinglight/ds2/delaythree{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/lz/near_lzII) "cSh" = ( /obj/structure/closet/secure_closet/hydroponics, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/fiorina/station/botany) "cTr" = ( /obj/structure/largecrate/random/barrel/blue, @@ -4785,19 +3806,14 @@ "cTx" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/device/flashlight/lamp/green, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/fiorina/tumor/civres) "cTy" = ( /obj/item/stool, /obj/item/trash/cigbutt{ pixel_y = 8 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/power_ring) "cTD" = ( /obj/structure/machinery/light/double/blue{ @@ -4805,32 +3821,21 @@ pixel_x = -10; pixel_y = -3 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/west, /area/fiorina/lz/near_lzI) "cTE" = ( /obj/item/ammo_casing{ icon_state = "cartridge_1" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "cUd" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/east, /area/fiorina/lz/near_lzI) "cUA" = ( /obj/structure/largecrate/random, /obj/structure/machinery/light/double/blue, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/fiorina/station/park) "cUU" = ( /obj/structure/monorail{ @@ -4843,10 +3848,7 @@ /area/fiorina/station/telecomm/lz1_tram) "cVu" = ( /obj/item/stack/sandbags_empty/half, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/west, /area/fiorina/lz/near_lzI) "cVQ" = ( /obj/structure/machinery/light/double/blue{ @@ -4861,17 +3863,12 @@ /area/fiorina/station/disco) "cXp" = ( /obj/item/stack/sheet/metal/medium_stack, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/ice_lab) "cXV" = ( /obj/item/ammo_magazine/smg/mp5, /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/prison/darkyellowcorners2/north, /area/fiorina/station/telecomm/lz1_cargo) "cYd" = ( /obj/structure/stairs/perspective{ @@ -4882,9 +3879,7 @@ /area/fiorina/tumor/ice_lab) "cYe" = ( /obj/structure/machinery/light/double/blue, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/transit_hub) "cYi" = ( /obj/structure/surface/table/reinforced/prison, @@ -4892,25 +3887,17 @@ pixel_x = 2; pixel_y = 4 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/fiorina/station/research_cells) "cYj" = ( /obj/structure/machinery/light/double/blue{ dir = 1; pixel_y = 21 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/fiorina/station/lowsec) "cYI" = ( -/turf/open/floor/prison{ - dir = 5; - icon_state = "green" - }, +/turf/open/floor/prison/green/northeast, /area/fiorina/tumor/aux_engi) "cYP" = ( /obj/structure/closet/crate/trashcart, @@ -4927,18 +3914,13 @@ /obj/structure/platform{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/central_ring) "cYT" = ( /obj/vehicle/powerloader{ dir = 8 }, -/turf/open/organic/grass{ - name = "astroturf" - }, +/turf/open/organic/grass/astroturf, /area/fiorina/station/research_cells) "cYV" = ( /obj/structure/stairs/perspective{ @@ -4951,26 +3933,18 @@ "cZe" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/phone, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/tumor/ice_lab) "cZh" = ( /obj/effect/decal/cleanable/blood/gibs, /obj/effect/spawner/random/gun/rifle, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/lowsec) "cZp" = ( /obj/effect/decal/medical_decals{ icon_state = "triagedecalbottom" }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/west, /area/fiorina/station/medbay) "cZq" = ( /obj/item/shard{ @@ -4986,22 +3960,16 @@ /obj/structure/machinery/door/window/northleft{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/fiorina/station/security/wardens) "cZP" = ( /obj/structure/platform{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/transit_hub) "cZR" = ( -/turf/open/floor/prison{ - icon_state = "damaged2" - }, +/turf/open/floor/prison/damaged2, /area/fiorina/station/disco) "cZV" = ( /obj/structure/bed/chair/office/light{ @@ -5011,18 +3979,14 @@ /area/fiorina/station/security) "dae" = ( /obj/structure/machinery/vending/walkman, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/aux_engi) "daA" = ( /obj/item/clothing/accessory/armband/cargo{ desc = "Sworn to the shrapnel and the shards therein. So sayeth her command when the first detonation occured."; name = "HEFA Order milita armband" }, -/turf/open/floor/prison/chapel_carpet{ - icon_state = "doubleside" - }, +/turf/open/floor/prison/chapel_carpet/doubleside, /area/fiorina/station/chapel) "daD" = ( /obj/structure/platform/kutjevo/smooth{ @@ -5046,9 +4010,7 @@ /area/fiorina/station/security) "dbh" = ( /obj/structure/machinery/vending/sovietsoda, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/fiorina/station/research_cells) "dbi" = ( /obj/item/storage/toolbox/electrical, @@ -5061,24 +4023,17 @@ pixel_x = 1; pixel_y = 13 }, -/turf/open/floor/prison/chapel_carpet{ - icon_state = "doubleside" - }, +/turf/open/floor/prison/chapel_carpet/doubleside, /area/fiorina/station/chapel) "dbr" = ( /obj/structure/platform{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/park) "dbI" = ( /obj/structure/inflatable/popped/door, -/turf/open/floor/prison{ - dir = 8; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/west, /area/fiorina/station/lowsec) "dbW" = ( /obj/structure/surface/table/reinforced/prison, @@ -5087,9 +4042,7 @@ pixel_y = 9 }, /obj/item/storage/box/donkpockets, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, +/turf/open/floor/prison/bluefull, /area/fiorina/station/power_ring) "dcv" = ( /obj/structure/largecrate/random, @@ -5103,27 +4056,21 @@ /area/fiorina/station/flight_deck) "dcO" = ( /obj/effect/decal/cleanable/blood/drip, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/central_ring) "dde" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/recharger{ pixel_y = 4 }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/fiorina/oob) "ddt" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/storage/beer_pack{ pixel_y = 7 }, -/turf/open/floor/prison{ - icon_state = "yellowfull" - }, +/turf/open/floor/prison/yellowfull, /area/fiorina/station/lowsec) "ddv" = ( /obj/structure/closet/secure_closet/engineering_welding, @@ -5133,20 +4080,14 @@ pixel_y = 13 }, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/east, /area/fiorina/maintenance) "ddA" = ( /obj/structure/girder/reinforced, /turf/open/floor/plating/plating_catwalk, /area/fiorina/tumor/ship) "ddB" = ( -/turf/open/floor/prison{ - dir = 9; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/northwest, /area/fiorina/station/medbay) "ddD" = ( /obj/structure/janitorialcart, @@ -5168,22 +4109,15 @@ /turf/open/floor/plating/prison, /area/fiorina/tumor/aux_engi) "ddN" = ( -/turf/open/floor/prison{ - dir = 6; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/southeast, /area/fiorina/tumor/servers) "ddU" = ( /obj/structure/prop/almayer/computers/sensor_computer1, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/fiorina/tumor/servers) "ddY" = ( /obj/structure/machinery/light/double/blue, -/turf/open/floor/prison{ - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2, /area/fiorina/tumor/aux_engi) "dec" = ( /obj/structure/sign/prop3{ @@ -5199,23 +4133,14 @@ dir = 4; layer = 3.5 }, -/turf/open/organic/grass{ - name = "astroturf" - }, +/turf/open/organic/grass/astroturf, /area/fiorina/station/park) -"deL" = ( -/obj/structure/window/framed/prison/reinforced/hull, -/obj/structure/window/framed/prison/reinforced/hull, -/turf/open/floor/plating/prison, -/area/fiorina/station/flight_deck) "deR" = ( /obj/item/toy/crayon/red, /turf/open/floor/plating/prison, /area/fiorina/station/power_ring) "dfc" = ( -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/oob) "dfh" = ( /obj/structure/machinery/light/double/blue{ @@ -5223,9 +4148,7 @@ pixel_x = -10; pixel_y = -3 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/civres_blue) "dfA" = ( /obj/structure/barricade/sandbags{ @@ -5247,10 +4170,7 @@ /obj/structure/machinery/light/double/blue{ pixel_y = -1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/southwest, /area/fiorina/station/disco) "dhi" = ( /obj/structure/platform_decoration/kutjevo, @@ -5261,9 +4181,7 @@ dir = 4 }, /obj/structure/barricade/wooden, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/civres_blue) "dhZ" = ( /obj/structure/window/reinforced{ @@ -5274,16 +4192,11 @@ /area/fiorina/station/medbay) "diF" = ( /obj/item/stack/sheet/cardboard, -/turf/open/floor/prison{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/north, /area/fiorina/station/lowsec) "diJ" = ( /obj/item/stool, -/turf/open/floor/prison{ - icon_state = "yellowfull" - }, +/turf/open/floor/prison/yellowfull, /area/fiorina/station/lowsec) "diL" = ( /obj/structure/stairs/perspective{ @@ -5293,9 +4206,7 @@ /obj/structure/platform{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/central_ring) "dje" = ( /obj/effect/decal/cleanable/blood/splatter, @@ -5309,15 +4220,11 @@ /obj/vehicle/powerloader{ dir = 4 }, -/turf/open/organic/grass{ - name = "astroturf" - }, +/turf/open/organic/grass/astroturf, /area/fiorina/station/research_cells) "djF" = ( /obj/structure/machinery/portable_atmospherics/powered/scrubber, -/turf/open/floor/prison{ - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple, /area/fiorina/station/research_cells) "dkb" = ( /obj/item/device/flashlight/lamp/tripod, @@ -5343,24 +4250,18 @@ /area/fiorina/station/security/wardens) "dkz" = ( /obj/structure/machinery/vending/snack/packaged, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/fiorina/tumor/aux_engi) "dkX" = ( /obj/structure/barricade/sandbags{ dir = 8; icon_state = "sandbag_0" }, -/turf/open/floor/prison{ - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2, /area/fiorina/station/telecomm/lz1_cargo) "dlj" = ( /obj/structure/machinery/portable_atmospherics/powered/pump, -/turf/open/floor/prison{ - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple, /area/fiorina/station/research_cells) "dlr" = ( /obj/structure/surface/table/reinforced/prison, @@ -5372,9 +4273,7 @@ pixel_x = 6; pixel_y = 7 }, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/fiorina/station/security) "dlA" = ( /obj/effect/decal/cleanable/blood, @@ -5403,9 +4302,7 @@ pixel_x = 2; pixel_y = 21 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/disco) "dnz" = ( /obj/structure/surface/table/woodentable/fancy, @@ -5416,16 +4313,10 @@ /obj/structure/bed/chair/comfy{ dir = 4 }, -/turf/open/organic/grass{ - desc = "It'll get in your shoes no matter what you do."; - name = "astroturf" - }, +/turf/open/organic/grass/astroturf, /area/fiorina/tumor/fiberbush) "dnX" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/west, /area/fiorina/lz/near_lzI) "doe" = ( /obj/item/tool/kitchen/utensil/pspoon, @@ -5457,20 +4348,14 @@ /area/fiorina/station/power_ring) "doY" = ( /obj/item/paper/crumpled/bloody, -/turf/open/floor/prison/chapel_carpet{ - dir = 1; - icon_state = "doubleside" - }, +/turf/open/floor/prison/chapel_carpet/doubleside/north, /area/fiorina/maintenance) "dpe" = ( /obj/structure/sink{ dir = 4; pixel_x = 12 }, -/turf/open/floor/prison{ - dir = 6; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/southeast, /area/fiorina/station/lowsec) "dpn" = ( /obj/structure/stairs/perspective{ @@ -5488,18 +4373,13 @@ /area/fiorina/tumor/aux_engi) "dpZ" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - icon_state = "greenblue" - }, +/turf/open/floor/prison/greenblue, /area/fiorina/station/botany) "dqa" = ( /obj/structure/platform{ dir = 1 }, -/turf/open/gm/river{ - color = "#995555"; - name = "pool" - }, +/turf/open/gm/river/red_pool, /area/fiorina/station/park) "dqE" = ( /obj/structure/prop/souto_land/pole, @@ -5509,9 +4389,7 @@ /obj/structure/flora/grass/tallgrass/jungle/corner{ dir = 1 }, -/turf/open/organic/grass{ - name = "astroturf" - }, +/turf/open/organic/grass/astroturf, /area/fiorina/station/park) "dqN" = ( /turf/closed/shuttle/ert{ @@ -5519,9 +4397,7 @@ }, /area/fiorina/tumor/ship) "dqX" = ( -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/ice_lab) "drd" = ( /obj/structure/machinery/light/double/blue{ @@ -5529,30 +4405,19 @@ pixel_x = 10; pixel_y = -3 }, -/turf/open/floor/prison{ - dir = 5; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/northeast, /area/fiorina/station/flight_deck) "drk" = ( /obj/effect/landmark/objective_landmark/far, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/power_ring) "drt" = ( /obj/structure/machinery/vending/hydroseeds, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/fiorina/station/botany) "drZ" = ( /obj/item/clothing/mask/cigarette, -/turf/open/floor/prison{ - dir = 9; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/northwest, /area/fiorina/station/research_cells) "dsS" = ( /obj/structure/barricade/handrail/type_b{ @@ -5560,10 +4425,7 @@ layer = 3.5 }, /obj/item/trash/barcardine, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/tumor/ice_lab) "dsW" = ( /obj/structure/flora/pottedplant{ @@ -5580,21 +4442,14 @@ "dtk" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/reagent_container/food/drinks/golden_cup, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/power_ring) "dtR" = ( /obj/item/stack/sheet/metal/medium_stack, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/civres_blue) "dtS" = ( -/turf/open/floor/prison{ - dir = 6; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/southeast, /area/fiorina/station/chapel) "due" = ( /obj/effect/decal/cleanable/blood/oil, @@ -5610,9 +4465,7 @@ dir = 1; pixel_y = 21 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/fiorina/tumor/aux_engi) "duF" = ( /obj/structure/window/framed/prison/reinforced, @@ -5625,9 +4478,7 @@ "duV" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/clipboard, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/power_ring) "duW" = ( /obj/effect/decal/cleanable/blood/oil, @@ -5649,10 +4500,7 @@ /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/prison{ - dir = 6; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/southeast, /area/fiorina/maintenance) "dwJ" = ( /obj/structure/machinery/processor{ @@ -5663,10 +4511,7 @@ pixel_y = 10 }, /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/fiorina/station/civres_blue) "dwP" = ( /obj/item/device/flashlight/lamp/tripod, @@ -5686,10 +4531,7 @@ /obj/structure/machinery/computer/objective{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/tumor/ice_lab) "dxb" = ( /obj/item/storage/briefcase/stowaway, @@ -5699,31 +4541,14 @@ /obj/structure/monorail{ name = "launch track" }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/fiorina/lz/near_lzI) "dxl" = ( -/obj/structure/platform/kutjevo/smooth{ - dir = 1 - }, -/obj/structure/barricade/handrail{ - dir = 1; - icon_state = "hr_kutjevo"; - name = "solar lattice" - }, -/obj/structure/platform/kutjevo/smooth{ - dir = 4 - }, -/obj/structure/platform/kutjevo/smooth, -/turf/open/space, -/area/fiorina/oob) +/obj/structure/barricade/metal/wired, +/turf/open/floor/prison/yellowfull, +/area/fiorina/station/lowsec) "dxv" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/southwest, /area/fiorina/maintenance) "dxE" = ( /obj/structure/prop/resin_prop{ @@ -5742,19 +4567,14 @@ /area/fiorina/tumor/servers) "dxW" = ( /obj/item/tool/warning_cone, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/power_ring) "dyh" = ( /obj/structure/machinery/light/double/blue{ dir = 1; pixel_y = 21 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/fiorina/tumor/servers) "dyB" = ( /obj/effect/decal/cleanable/blood{ @@ -5767,28 +4587,21 @@ /obj/structure/toilet{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/fiorina/tumor/civres) "dzl" = ( /obj/structure/window/framed/prison/reinforced/hull, /turf/open/floor/plating/prison, /area/fiorina/station/flight_deck) "dzB" = ( -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/fiorina/station/research_cells) "dzE" = ( /obj/structure/machinery/shower{ dir = 1; pixel_y = -1 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/fiorina/station/lowsec) "dAd" = ( /obj/structure/stairs/perspective{ @@ -5798,16 +4611,11 @@ /turf/open/floor/plating/prison, /area/fiorina/station/disco) "dAg" = ( -/turf/open/floor/prison{ - dir = 5; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/northeast, /area/fiorina/station/medbay) "dBl" = ( /obj/item/ammo_magazine/rifle/mar40/extended, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/lowsec) "dBq" = ( /obj/structure/surface/table/reinforced/prison, @@ -5826,38 +4634,25 @@ /area/fiorina/oob) "dBs" = ( /obj/structure/machinery/door/airlock/prison_hatch/autoname, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/fiorina/station/security) "dBt" = ( /obj/effect/decal/cleanable/blood/drip, -/turf/open/floor/prison{ - dir = 5; - icon_state = "greenblue" - }, +/turf/open/floor/prison/greenblue/northeast, /area/fiorina/station/botany) "dBy" = ( /turf/open/floor/prison, /area/fiorina/station/chapel) "dBz" = ( /obj/structure/bed/chair/comfy, -/turf/open/floor/prison{ - dir = 6; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/southeast, /area/fiorina/station/disco) "dBO" = ( /obj/structure/machinery/vending/security, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/fiorina/station/security) "dBZ" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/prison/darkyellowcorners2/east, /area/fiorina/station/flight_deck) "dCg" = ( /obj/structure/bed/chair, @@ -5888,16 +4683,11 @@ pixel_x = 10; pixel_y = -3 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "dCt" = ( /obj/structure/machinery/vending/coffee, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/transit_hub) "dCu" = ( /obj/structure/machinery/door/airlock/almayer/generic{ @@ -5909,16 +4699,11 @@ "dCv" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/trash/plate, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "dCK" = ( /obj/structure/prop/souto_land/pole, -/turf/open/floor/prison{ - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2, /area/fiorina/station/park) "dCM" = ( /obj/structure/window/framed/prison/reinforced/hull, @@ -5926,18 +4711,13 @@ /area/fiorina/station/security) "dDn" = ( /obj/effect/spawner/random/tool, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/park) "dDI" = ( /obj/structure/machinery/landinglight/ds1{ dir = 8 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/fiorina/lz/near_lzI) "dDT" = ( /obj/structure/machinery/light/double/blue{ @@ -5945,10 +4725,7 @@ pixel_x = -10; pixel_y = 13 }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/fiorina/tumor/servers) "dDU" = ( /obj/effect/decal/cleanable/blood{ @@ -5958,9 +4735,7 @@ /area/fiorina/station/chapel) "dEh" = ( /obj/item/reagent_container/food/drinks/cans/sodawater, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/central_ring) "dEj" = ( /obj/structure/machinery/optable{ @@ -5975,9 +4750,7 @@ dir = 1; pixel_y = 21 }, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/fiorina/station/medbay) "dFh" = ( /obj/item/stack/cable_coil, @@ -5999,16 +4772,12 @@ /obj/structure/machinery/light/double/blue{ pixel_y = -1 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/fiorina/station/research_cells) "dFK" = ( /obj/structure/surface/rack, /obj/item/ammo_box/magazine/nailgun, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/fiorina/maintenance) "dFM" = ( /obj/item/circuitboard/machine/pacman/super, @@ -6025,19 +4794,14 @@ dir = 4; layer = 3.5 }, -/turf/open/organic/grass{ - name = "astroturf" - }, +/turf/open/organic/grass/astroturf, /area/fiorina/station/civres_blue) "dGA" = ( /obj/structure/machinery/light/double/blue{ dir = 1; pixel_y = 21 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/east, /area/fiorina/station/park) "dHb" = ( /obj/structure/closet/secure_closet/guncabinet{ @@ -6046,31 +4810,21 @@ /obj/item/storage/box/pillbottles, /obj/item/clothing/under/marine/ua_riot, /obj/item/clothing/suit/storage/marine/veteran/ua_riot, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/fiorina/station/security) "dHd" = ( /obj/structure/sign/safety/bulkhead_door, /turf/closed/wall/r_wall/prison_unmeltable, /area/fiorina/tumor/civres) "dHD" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/north, /area/fiorina/station/lowsec) "dHU" = ( -/turf/open/floor/prison{ - icon_state = "platingdmg1" - }, +/turf/open/floor/prison/platingdmg1, /area/fiorina/station/security) "dIh" = ( /obj/structure/largecrate/random/case, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/fiorina/station/telecomm/lz1_cargo) "dIo" = ( /turf/closed/wall/prison, @@ -6079,17 +4833,12 @@ /obj/structure/platform{ dir = 4 }, -/turf/open/floor/prison{ - dir = 5; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/northeast, /area/fiorina/station/disco) "dJd" = ( /obj/effect/decal/cleanable/blood/gibs, /obj/item/ammo_magazine/rifle/mar40, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/lowsec) "dJe" = ( /obj/structure/platform{ @@ -6101,18 +4850,13 @@ /obj/structure/bookcase/manuals/research_and_development{ pixel_y = 10 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/north, /area/fiorina/station/research_cells) "dJt" = ( /obj/structure/machinery/light/double/blue{ pixel_y = -1 }, -/turf/open/floor/prison{ - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow, /area/fiorina/station/disco) "dKo" = ( /obj/effect/spawner/random/gun/shotgun, @@ -6135,25 +4879,17 @@ /turf/open/floor/wood, /area/fiorina/station/park) "dLL" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/southwest, /area/fiorina/tumor/servers) "dLN" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/computer/emails{ pixel_y = 5 }, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, +/turf/open/floor/prison/bluefull, /area/fiorina/station/power_ring) "dMt" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkbrowncorners2" - }, +/turf/open/floor/prison/darkbrowncorners2/west, /area/fiorina/tumor/aux_engi) "dNc" = ( /obj/structure/platform{ @@ -6163,9 +4899,7 @@ dir = 1; pixel_y = 21 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/power_ring) "dNh" = ( /turf/open/auto_turf/sand/layer1, @@ -6185,33 +4919,23 @@ /area/fiorina/tumor/aux_engi) "dNC" = ( /obj/structure/machinery/vending/cigarette/colony, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/fiorina/lz/near_lzI) "dOk" = ( -/turf/open/floor/prison{ - icon_state = "panelscorched" - }, +/turf/open/floor/prison/panelscorched, /area/fiorina/tumor/civres) "dOt" = ( /obj/structure/surface/table/reinforced/prison{ flipped = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "dOE" = ( /obj/item/storage/bible/hefa, /turf/open/floor/wood, /area/fiorina/station/chapel) "dOO" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/north, /area/fiorina/station/medbay) "dOX" = ( /turf/closed/wall/r_wall/prison, @@ -6225,15 +4949,11 @@ pixel_x = -10; pixel_y = 13 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/power_ring) "dPe" = ( /obj/structure/bed/chair, -/turf/open/floor/prison{ - icon_state = "yellowfull" - }, +/turf/open/floor/prison/yellowfull, /area/fiorina/station/disco) "dPm" = ( /obj/structure/bed/chair{ @@ -6249,9 +4969,7 @@ /obj/structure/platform_decoration{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/telecomm/lz1_tram) "dPZ" = ( /obj/structure/monorail{ @@ -6276,24 +4994,18 @@ icon_state = "cartridge_2" }, /obj/effect/spawner/random/gun/smg, -/turf/open/organic/grass{ - name = "astroturf" - }, +/turf/open/organic/grass/astroturf, /area/fiorina/station/park) "dRk" = ( /obj/item/shard{ icon_state = "large" }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/fiorina/tumor/servers) "dRs" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/clothing/accessory/blue, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/aux_engi) "dRx" = ( /obj/structure/monorail{ @@ -6313,9 +5025,7 @@ /area/fiorina/oob) "dSM" = ( /obj/effect/spawner/random/tool, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/fiorina/tumor/servers) "dTf" = ( /obj/structure/largecrate/random/case, @@ -6323,10 +5033,7 @@ /area/fiorina/maintenance) "dTg" = ( /obj/structure/bed/chair/office/dark, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "dTx" = ( /obj/structure/machinery/door/airlock/prison_hatch/autoname, @@ -6344,10 +5051,7 @@ /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22" }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/fiorina/tumor/civres) "dUi" = ( /obj/structure/bed/sofa/vert/grey/bot{ @@ -6366,28 +5070,20 @@ /area/fiorina/lz/near_lzII) "dUu" = ( /obj/structure/machinery/recharge_station, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/security) "dUx" = ( /obj/structure/sink{ dir = 4; pixel_x = 12 }, -/turf/open/floor/prison{ - dir = 6; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/southeast, /area/fiorina/station/research_cells) "dVu" = ( /obj/structure/machinery/light/double/blue{ pixel_y = -1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/southwest, /area/fiorina/station/disco) "dVx" = ( /obj/structure/stairs/perspective{ @@ -6398,36 +5094,25 @@ /area/fiorina/station/security) "dVA" = ( /obj/item/stool, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/fiorina/station/research_cells) "dVC" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/clipboard, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/fiorina/station/research_cells) "dVD" = ( /obj/structure/inflatable/popped/door, -/turf/open/floor/prison{ - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen, /area/fiorina/station/medbay) "dVR" = ( /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/aux_engi) "dWn" = ( /obj/structure/barricade/wooden, /obj/item/device/flashlight/flare, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/west, /area/fiorina/station/telecomm/lz1_cargo) "dWp" = ( /obj/structure/surface/table/reinforced/prison, @@ -6443,28 +5128,20 @@ /area/fiorina/station/civres_blue) "dXi" = ( /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/east, /area/fiorina/tumor/servers) "dXv" = ( /obj/structure/barricade/wooden{ dir = 1 }, -/turf/open/floor/prison/chapel_carpet{ - dir = 1; - icon_state = "doubleside" - }, +/turf/open/floor/prison/chapel_carpet/doubleside/north, /area/fiorina/station/chapel) "dXG" = ( /turf/open/floor/plating/prison, /area/fiorina/tumor/civres) "dXK" = ( /obj/item/newspaper, -/turf/open/floor/prison{ - icon_state = "green" - }, +/turf/open/floor/prison/green, /area/fiorina/station/transit_hub) "dXN" = ( /obj/structure/barricade/handrail/type_b{ @@ -6477,16 +5154,11 @@ /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/tumor/ice_lab) "dXS" = ( /obj/structure/bed/chair/office/light, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/fiorina/station/research_cells) "dXT" = ( /obj/structure/platform_decoration, @@ -6494,19 +5166,13 @@ /turf/open/floor/prison, /area/fiorina/station/power_ring) "dYi" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/west, /area/fiorina/station/central_ring) "dYo" = ( /obj/structure/bed/chair/comfy{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/southwest, /area/fiorina/station/disco) "dYp" = ( /obj/docking_port/stationary/marine_dropship/lz1{ @@ -6517,15 +5183,10 @@ "dYq" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/faxmachine, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, +/turf/open/floor/prison/bluefull, /area/fiorina/station/power_ring) "dYC" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/east, /area/fiorina/station/central_ring) "dYI" = ( /turf/closed/shuttle/ert{ @@ -6533,60 +5194,41 @@ }, /area/fiorina/tumor/aux_engi) "dYV" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkbrowncorners2" - }, +/turf/open/floor/prison/darkbrowncorners2/west, /area/fiorina/maintenance) "dZj" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_nest, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/fiorina/tumor/aux_engi) "dZo" = ( /obj/structure/closet/secure_closet/engineering_materials, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/aux_engi) "dZu" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/card/id/guest, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/fiorina/station/security) "dZK" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "bluecorner" - }, +/turf/open/floor/prison/bluecorner/east, /area/fiorina/station/chapel) "dZQ" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/east, /area/fiorina/lz/near_lzI) "eac" = ( /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "yellowfull" - }, +/turf/open/floor/prison/yellowfull, /area/fiorina/station/disco) "eao" = ( /obj/structure/machinery/shower{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/fiorina/station/lowsec) "eca" = ( /obj/structure/platform{ @@ -6595,10 +5237,7 @@ /obj/effect/decal/medical_decals{ icon_state = "cryomid" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "ecd" = ( /obj/structure/machinery/door/airlock/prison_hatch/autoname, @@ -6615,9 +5254,7 @@ /obj/structure/prop/souto_land/streamer{ pixel_y = 24 }, -/turf/open/floor/prison{ - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2, /area/fiorina/station/park) "ecL" = ( /obj/structure/surface/rack, @@ -6633,10 +5270,7 @@ }, /area/fiorina/tumor/ship) "ecU" = ( -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/northwest, /area/fiorina/station/flight_deck) "eds" = ( /obj/structure/surface/rack, @@ -6644,10 +5278,7 @@ /obj/effect/decal/cleanable/blood, /obj/item/attachable/bipod, /obj/item/device/multitool, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/west, /area/fiorina/station/telecomm/lz1_cargo) "edu" = ( /obj/structure/stairs/perspective{ @@ -6665,9 +5296,7 @@ /obj/structure/platform{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/central_ring) "edY" = ( /obj/item/trash/used_stasis_bag{ @@ -6737,16 +5366,11 @@ /turf/open/floor/plating/plating_catwalk/prison, /area/fiorina/tumor/ice_lab) "efW" = ( -/turf/open/floor/prison{ - dir = 6; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/southeast, /area/fiorina/station/lowsec) "egd" = ( /obj/structure/machinery/photocopier, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, +/turf/open/floor/prison/bluefull, /area/fiorina/station/power_ring) "egk" = ( /obj/structure/extinguisher_cabinet, @@ -6759,9 +5383,7 @@ /obj/structure/platform{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/power_ring) "egL" = ( /obj/item/newspaper, @@ -6773,17 +5395,11 @@ /area/fiorina/station/medbay) "ehr" = ( /obj/effect/landmark/corpsespawner/ua_riot, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/fiorina/station/telecomm/lz1_cargo) "ehy" = ( /obj/structure/machinery/landinglight/ds1/delaythree, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/fiorina/lz/near_lzI) "ehO" = ( /obj/structure/platform/shiva, @@ -6793,9 +5409,7 @@ /obj/structure/platform_decoration{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/fiorina/tumor/servers) "eio" = ( /obj/item/device/flashlight/lamp/tripod, @@ -6819,9 +5433,7 @@ /turf/open/floor/plating/plating_catwalk/prison, /area/fiorina/tumor/ice_lab) "ejs" = ( -/turf/open/floor/prison{ - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe, /area/fiorina/station/security) "ejt" = ( /obj/effect/landmark/monkey_spawn, @@ -6848,14 +5460,10 @@ pixel_x = 5; pixel_y = 2 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/fiorina/station/research_cells) "ekb" = ( -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/telecomm/lz1_tram) "eki" = ( /obj/structure/filingcabinet, @@ -6863,41 +5471,27 @@ /turf/open/floor/wood, /area/fiorina/station/security/wardens) "ekx" = ( -/turf/open/floor/prison{ - dir = 9; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/northwest, /area/fiorina/station/power_ring) "ekz" = ( /obj/structure/barricade/wooden{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "ekF" = ( /obj/effect/landmark/yautja_teleport, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, +/turf/open/floor/prison/bluefull, /area/fiorina/station/civres_blue) "ekS" = ( /obj/effect/landmark/static_comms/net_one, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/fiorina/station/telecomm/lz1_cargo) "ekW" = ( /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/prison{ - dir = 6; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/southeast, /area/fiorina/station/power_ring) "elc" = ( /obj/structure/bed/roller, @@ -6906,15 +5500,10 @@ /area/fiorina/station/lowsec) "ele" = ( /obj/item/device/flashlight/lamp/tripod, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/central_ring) "elO" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/southwest, /area/fiorina/station/lowsec) "emm" = ( /obj/structure/machinery/light/double/blue{ @@ -6924,9 +5513,7 @@ }, /obj/item/weapon/gun/shotgun/combat, /obj/structure/closet/crate/trashcart, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/fiorina/tumor/aux_engi) "emC" = ( /obj/structure/lattice, @@ -6941,34 +5528,22 @@ /area/fiorina/station/lowsec) "enu" = ( /obj/item/trash/uscm_mre, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/fiorina/station/flight_deck) "enx" = ( /obj/item/tool/shovel, -/turf/open/floor/prison{ - dir = 6; - icon_state = "green" - }, +/turf/open/floor/prison/green/southeast, /area/fiorina/tumor/civres) "enH" = ( /obj/effect/alien/weeds/node, -/turf/open/organic/grass{ - desc = "It'll get in your shoes no matter what you do."; - name = "astroturf" - }, +/turf/open/organic/grass/astroturf, /area/fiorina/tumor/fiberbush) "enY" = ( /obj/item/stack/sheet/metal, /turf/open/floor/plating/prison, /area/fiorina/oob) "eot" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/west, /area/fiorina/station/telecomm/lz1_tram) "eov" = ( /turf/closed/wall/r_wall/prison_unmeltable{ @@ -6977,10 +5552,7 @@ }, /area/fiorina/station/research_cells) "eow" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/west, /area/fiorina/station/research_cells) "eoW" = ( /obj/structure/largecrate/random/case, @@ -6988,9 +5560,7 @@ /area/fiorina/station/power_ring) "epB" = ( /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/prison{ - icon_state = "blue" - }, +/turf/open/floor/prison/blue, /area/fiorina/station/power_ring) "epD" = ( /obj/structure/surface/table/reinforced/prison, @@ -6998,10 +5568,7 @@ icon_state = "pottedplant_17"; pixel_y = 13 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/tumor/ice_lab) "epV" = ( /obj/item/paper/crumpled/bloody, @@ -7017,19 +5584,13 @@ /obj/item/tank/emergency_oxygen/engi, /obj/item/device/flashlight, /obj/item/device/flashlight, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/fiorina/lz/near_lzI) "eqw" = ( /obj/structure/platform_decoration{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "bluecorner" - }, +/turf/open/floor/prison/bluecorner/east, /area/fiorina/station/power_ring) "eqJ" = ( /obj/structure/platform{ @@ -7038,21 +5599,14 @@ /turf/open/floor/prison, /area/fiorina/station/medbay) "eqQ" = ( -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/fiorina/station/telecomm/lz1_cargo) "eqS" = ( /obj/structure/machinery/light/double/blue, -/turf/open/floor/prison{ - icon_state = "green" - }, +/turf/open/floor/prison/green, /area/fiorina/station/chapel) "eqU" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/east, /area/fiorina/tumor/ice_lab) "eqZ" = ( /obj/structure/largecrate/random/mini/ammo, @@ -7060,18 +5614,13 @@ /area/fiorina/station/central_ring) "erb" = ( /obj/effect/decal/cleanable/blood/drip, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/fiorina/station/telecomm/lz1_cargo) "erh" = ( /obj/item/ammo_casing{ icon_state = "casing_1" }, -/turf/open/floor/prison{ - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2, /area/fiorina/station/telecomm/lz1_cargo) "erj" = ( /obj/structure/prop/structure_lattice{ @@ -7094,9 +5643,7 @@ /area/fiorina/tumor/servers) "erw" = ( /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/power_ring) "erD" = ( /obj/structure/largecrate/supply, @@ -7118,22 +5665,14 @@ /obj/structure/machinery/shower{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/fiorina/station/lowsec) "esw" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/west, /area/fiorina/station/medbay) "esR" = ( /obj/structure/machinery/space_heater, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/tumor/ice_lab) "esS" = ( /obj/item/stack/sheet/metal, @@ -7143,24 +5682,16 @@ /obj/structure/flora/grass/tallgrass/jungle/corner{ dir = 6 }, -/turf/open/organic/grass{ - name = "astroturf" - }, +/turf/open/organic/grass/astroturf, /area/fiorina/station/park) "etj" = ( -/turf/open/floor/prison{ - dir = 5; - icon_state = "green" - }, +/turf/open/floor/prison/green/northeast, /area/fiorina/station/chapel) "etq" = ( /obj/structure/platform{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/southwest, /area/fiorina/station/disco) "etL" = ( /obj/item/tool/weldingtool, @@ -7173,19 +5704,13 @@ /obj/item/storage/box/holobadge{ pixel_y = 3 }, -/turf/open/floor/prison{ - dir = 6; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/southeast, /area/fiorina/station/lowsec) "eux" = ( /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/east, /area/fiorina/station/lowsec) "euz" = ( /obj/structure/bed/chair{ @@ -7195,10 +5720,7 @@ dir = 4; pixel_y = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean_marked" - }, +/turf/open/floor/prison/bright_clean_marked/southwest, /area/fiorina/station/medbay) "evd" = ( /obj/structure/disposalpipe/segment{ @@ -7213,19 +5735,13 @@ /area/fiorina/tumor/servers) "evk" = ( /obj/structure/barricade/wooden, -/turf/open/floor/prison{ - dir = 6; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/southeast, /area/fiorina/station/medbay) "evl" = ( /obj/structure/flora/bush/ausbushes/grassybush{ icon_state = "brflowers_1" }, -/turf/open/organic/grass{ - desc = "It'll get in your shoes no matter what you do."; - name = "astroturf" - }, +/turf/open/organic/grass/astroturf, /area/fiorina/station/central_ring) "evC" = ( /obj/structure/barricade/sandbags{ @@ -7237,10 +5753,7 @@ icon_state = "sandbag_0"; pixel_y = -14 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/fiorina/station/flight_deck) "evT" = ( /obj/structure/stairs/perspective{ @@ -7273,10 +5786,7 @@ /obj/structure/bed/chair/office/dark{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "exa" = ( /obj/structure/bed/chair, @@ -7285,25 +5795,17 @@ "exl" = ( /obj/structure/largecrate/random, /obj/structure/barricade/wooden, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/disco) "exy" = ( /obj/structure/bed/chair{ dir = 4; pixel_y = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/southwest, /area/fiorina/maintenance) "exI" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkbrowncorners2" - }, +/turf/open/floor/prison/darkbrowncorners2/west, /area/fiorina/station/park) "exO" = ( /obj/structure/flora/grass/tallgrass/jungle/corner{ @@ -7312,9 +5814,7 @@ /obj/structure/barricade/handrail/type_b{ layer = 3.5 }, -/turf/open/organic/grass{ - name = "astroturf" - }, +/turf/open/organic/grass/astroturf, /area/fiorina/station/park) "exW" = ( /obj/structure/monorail{ @@ -7332,9 +5832,7 @@ /obj/structure/machinery/computer/atmos_alert{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/fiberbush) "eyj" = ( /obj/structure/surface/table/reinforced/prison, @@ -7352,10 +5850,7 @@ pixel_x = -6; pixel_y = 6 }, -/turf/open/floor/prison{ - dir = 6; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/southeast, /area/fiorina/station/power_ring) "eys" = ( /obj/vehicle/train/cargo/engine, @@ -7365,9 +5860,7 @@ /obj/structure/machinery/light/double/blue{ pixel_y = -1 }, -/turf/open/floor/prison{ - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate, /area/fiorina/station/botany) "eyy" = ( /obj/structure/machinery/light/double/blue{ @@ -7381,23 +5874,15 @@ /area/fiorina/station/security) "eyz" = ( /obj/structure/machinery/portable_atmospherics/canister/phoron, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/fiorina/station/telecomm/lz1_cargo) "eyO" = ( /obj/item/device/flashlight/lamp/tripod, -/turf/open/floor/prison{ - dir = 4; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/east, /area/fiorina/station/botany) "ezd" = ( /obj/structure/largecrate/random/case/double, -/turf/open/floor/prison{ - dir = 9; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/northwest, /area/fiorina/station/research_cells) "eze" = ( /obj/structure/platform/kutjevo/smooth{ @@ -7421,19 +5906,14 @@ /area/fiorina/station/telecomm/lz1_cargo) "ezO" = ( /obj/structure/reagent_dispensers/water_cooler, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/fiorina/station/security) "ezU" = ( /obj/structure/surface/table/reinforced/prison{ dir = 4; flipped = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "ezV" = ( /obj/item/stack/sheet/metal, @@ -7453,59 +5933,38 @@ /obj/structure/flora/bush/ausbushes/grassybush{ icon_state = "lavendergrass_3" }, -/turf/open/organic/grass{ - desc = "It'll get in your shoes no matter what you do."; - name = "astroturf" - }, +/turf/open/organic/grass/astroturf, /area/fiorina/station/central_ring) "eBj" = ( /obj/structure/bed/chair, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/power_ring) "eBr" = ( /obj/structure/platform_decoration{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/transit_hub) "eBO" = ( /obj/structure/machinery/door/airlock/almayer/marine, -/turf/open/floor/prison{ - icon_state = "yellowfull" - }, +/turf/open/floor/prison/yellowfull, /area/fiorina/station/lowsec) "eBS" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/north, /area/fiorina/station/power_ring) "eCy" = ( /obj/effect/spawner/random/gun/pistol, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "eCK" = ( /obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/fiorina/lz/near_lzII) "eDp" = ( /obj/structure/machinery/landinglight/ds1/delayone{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/fiorina/lz/near_lzI) "eDA" = ( /obj/structure/prop/structure_lattice{ @@ -7517,15 +5976,11 @@ layer = 3.1; pixel_y = 10 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/research_cells) "eEx" = ( /obj/item/circuitboard/machine/rdserver, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/fiorina/tumor/servers) "eEC" = ( /obj/structure/surface/table/reinforced/prison, @@ -7534,9 +5989,7 @@ pixel_x = 7; pixel_y = 22 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/power_ring) "eED" = ( /obj/structure/surface/table/woodentable/fancy, @@ -7560,25 +6013,18 @@ /area/fiorina/tumor/servers) "eEQ" = ( /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/west, /area/fiorina/lz/near_lzI) "eET" = ( /obj/structure/closet/secure_closet/freezer/fridge/full, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/fiorina/station/power_ring) "eEX" = ( /obj/structure/platform_decoration{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2, /area/fiorina/station/park) "eFa" = ( /obj/structure/barricade/metal{ @@ -7590,19 +6036,14 @@ /area/fiorina/station/park) "eFq" = ( /obj/item/storage/bible/hefa, -/turf/open/floor/prison{ - dir = 6; - icon_state = "green" - }, +/turf/open/floor/prison/green/southeast, /area/fiorina/station/chapel) "eFD" = ( /obj/structure/window_frame/prison, /turf/open/floor/plating/prison, /area/fiorina/station/chapel) "eFQ" = ( -/turf/open/floor/prison{ - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe, /area/fiorina/station/disco) "eFR" = ( /obj/structure/prop/souto_land/streamer{ @@ -7621,9 +6062,7 @@ /obj/structure/window/reinforced, /obj/structure/surface/table/reinforced/prison, /obj/item/storage/firstaid/regular, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/ice_lab) "eGm" = ( /obj/structure/stairs/perspective{ @@ -7638,9 +6077,7 @@ "eGO" = ( /obj/item/storage/toolbox/electrical, /obj/structure/surface/rack, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/civres) "eHa" = ( /obj/structure/lattice, @@ -7652,19 +6089,14 @@ dir = 2; name = "Confession Booth" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/chapel) "eHn" = ( /obj/structure/barricade/metal{ health = 250; icon_state = "metal_1" }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/east, /area/fiorina/tumor/ice_lab) "eHt" = ( /obj/structure/window/reinforced{ @@ -7692,10 +6124,7 @@ /area/fiorina/tumor/civres) "eHQ" = ( /obj/item/trash/popcorn, -/turf/open/floor/prison{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/west, /area/fiorina/station/power_ring) "eIx" = ( /obj/structure/window/reinforced{ @@ -7704,29 +6133,20 @@ /obj/structure/window/reinforced, /obj/structure/surface/table/reinforced/prison, /obj/item/storage/firstaid/regular, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/ice_lab) "eIB" = ( /obj/item/frame/rack, /obj/item/clothing/suit/storage/marine/veteran/ua_riot, /obj/item/clothing/suit/storage/marine/veteran/ua_riot, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/fiorina/station/security) "eIF" = ( /obj/structure/largecrate/random/barrel/yellow, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/fiorina/tumor/ship) "eIX" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/oob) "eJm" = ( /obj/structure/machinery/door/poddoor/almayer{ @@ -7740,22 +6160,15 @@ dir = 1; pixel_y = 21 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/power_ring) "eJy" = ( /obj/structure/inflatable/popped/door, -/turf/open/floor/prison{ - dir = 6; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/southeast, /area/fiorina/station/lowsec) "eJK" = ( /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/civres_blue) "eJQ" = ( /obj/structure/platform/kutjevo/smooth{ @@ -7771,28 +6184,19 @@ /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "eLy" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22" }, -/turf/open/floor/prison{ - dir = 6; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/southeast, /area/fiorina/station/disco) "eLB" = ( /obj/structure/machinery/landinglight/ds1/delaytwo{ dir = 1 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/fiorina/lz/near_lzI) "eLQ" = ( /obj/item/weapon/gun/energy/taser, @@ -7817,16 +6221,12 @@ pixel_x = -10; pixel_y = 13 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/central_ring) "eME" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/paper, -/turf/open/floor/prison{ - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2, /area/fiorina/tumor/servers) "eMG" = ( /obj/structure/machinery/door/airlock/multi_tile/elevator/access{ @@ -7839,9 +6239,7 @@ dir = 1; pixel_y = 2 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/central_ring) "eMU" = ( /turf/closed/shuttle/ert{ @@ -7850,9 +6248,7 @@ }, /area/fiorina/station/power_ring) "eNa" = ( -/turf/open/floor/prison{ - icon_state = "yellowcorner" - }, +/turf/open/floor/prison/yellowcorner, /area/fiorina/station/lowsec) "eNn" = ( /obj/structure/prop/souto_land/pole, @@ -7860,10 +6256,7 @@ dir = 4; pixel_y = 24 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/west, /area/fiorina/station/park) "eNr" = ( /obj/structure/surface/table/reinforced/prison, @@ -7872,27 +6265,19 @@ /area/fiorina/station/lowsec) "eNv" = ( /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/fiorina/station/telecomm/lz1_tram) "eOp" = ( /obj/effect/decal/medical_decals{ icon_state = "cryocell1decal" }, -/turf/open/floor/prison{ - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen, /area/fiorina/station/medbay) "eOy" = ( /obj/structure/platform_decoration{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "eOF" = ( /obj/structure/platform/kutjevo/smooth{ @@ -7907,17 +6292,11 @@ /obj/item/shard{ icon_state = "large" }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/fiorina/station/transit_hub) "eOM" = ( /obj/item/reagent_container/food/snacks/eat_bar, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/east, /area/fiorina/station/medbay) "ePq" = ( /obj/item/trash/cigbutt/ucigbutt, @@ -7945,21 +6324,11 @@ /area/fiorina/station/security) "ePU" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/fiorina/station/telecomm/lz1_cargo) "eQb" = ( -/obj/structure/closet{ - density = 0; - pixel_y = 18 - }, /obj/item/clothing/gloves/boxing/green, -/turf/open/floor/prison{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/north, /area/fiorina/station/lowsec) "eQk" = ( /obj/structure/machinery/light/double/blue{ @@ -7975,42 +6344,28 @@ pixel_x = 8; pixel_y = 10 }, -/turf/open/floor/prison{ - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate, /area/fiorina/station/botany) "eQQ" = ( -/turf/open/floor/prison{ - icon_state = "platingdmg1" - }, +/turf/open/floor/prison/platingdmg1, /area/fiorina/station/chapel) "eQX" = ( /obj/effect/decal/cleanable/blood/xeno{ icon_state = "xgib3" }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/west, /area/fiorina/station/flight_deck) "eQY" = ( /obj/structure/platform_decoration, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/transit_hub) "eRl" = ( /obj/item/stack/sheet/metal, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/civres) "eRq" = ( /obj/item/toy/bikehorn, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/north, /area/fiorina/station/park) "eRz" = ( /obj/structure/machinery/vending/snack/packaged, @@ -8018,30 +6373,19 @@ /area/fiorina/tumor/ice_lab) "eRF" = ( /obj/item/stack/cable_coil, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/medbay) "eRR" = ( /obj/item/ammo_magazine/smg/mp5, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/east, /area/fiorina/station/telecomm/lz1_cargo) "eRZ" = ( /obj/item/stack/rods, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "eSn" = ( /obj/structure/reagent_dispensers/watertank, -/turf/open/floor/prison{ - dir = 6; - icon_state = "greenblue" - }, +/turf/open/floor/prison/greenblue/southeast, /area/fiorina/station/botany) "eSF" = ( /obj/structure/machinery/landinglight/ds2/delaythree{ @@ -8058,17 +6402,11 @@ "eSO" = ( /obj/structure/largecrate/random/case/double, /obj/structure/machinery/light/double/blue, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "eTa" = ( /obj/structure/reagent_dispensers/water_cooler, -/turf/open/floor/prison{ - dir = 9; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/northwest, /area/fiorina/station/lowsec) "eTb" = ( /turf/closed/shuttle/ert{ @@ -8098,19 +6436,13 @@ "eUy" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/reagent_container/food/drinks/coffee, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "eUN" = ( /obj/effect/decal/medical_decals{ icon_state = "docdecal1" }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/north, /area/fiorina/station/medbay) "eUP" = ( /obj/item/tool/warning_cone, @@ -8155,40 +6487,28 @@ layer = 3.1; pixel_y = 10 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/park) "eVN" = ( /obj/item/bodybag, /obj/item/bodybag{ pixel_y = 2 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/medbay) "eVO" = ( /turf/closed/shuttle/ert, /area/fiorina/tumor/ship) "eWf" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/east, /area/fiorina/station/central_ring) "eWr" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "green" - }, +/turf/open/floor/prison/green/southwest, /area/fiorina/tumor/civres) "eWz" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/device/flash, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/fiorina/station/security) "eWA" = ( /obj/structure/filingcabinet{ @@ -8199,9 +6519,7 @@ pixel_x = -8; pixel_y = 4 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/civres) "eWP" = ( /obj/structure/sign/prop3{ @@ -8219,9 +6537,7 @@ dir = 4; pixel_y = 8 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/fiorina/tumor/ship) "eXp" = ( /turf/closed/wall/r_wall/prison, @@ -8237,26 +6553,25 @@ }, /turf/open/floor/plating/prison, /area/fiorina/station/botany) +"eXY" = ( +/obj/structure/platform, +/obj/structure/reagent_dispensers/fueltank/oxygentank{ + layer = 2.6 + }, +/turf/open/floor/prison, +/area/fiorina/lz/near_lzI) "eYr" = ( /obj/structure/inflatable, /obj/structure/barricade/handrail/type_b, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "eYs" = ( /obj/structure/surface/rack, /obj/item/storage/firstaid/fire/empty, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/servers) "eYz" = ( -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/fiorina/tumor/civres) "eYC" = ( /obj/structure/machinery/door/airlock/prison_hatch/autoname, @@ -8313,16 +6628,11 @@ dir = 1; pixel_y = 21 }, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/fiorina/station/security) "eZW" = ( /obj/item/stack/rods/plasteel, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/fiorina/station/disco) "fac" = ( /obj/structure/platform/shiva{ @@ -8345,10 +6655,7 @@ /area/fiorina/station/power_ring) "fbc" = ( /obj/item/reagent_container/food/drinks/cans/waterbottle, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "fbo" = ( /obj/structure/barricade/plasteel, @@ -8363,18 +6670,13 @@ /obj/item/clothing/suit/chef/classic, /obj/structure/bed/stool, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/fiorina/station/civres_blue) "fbX" = ( /obj/item/stack/sheet/wood{ amount = 10 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/telecomm/lz1_cargo) "fcg" = ( /obj/structure/surface/table/reinforced/prison, @@ -8383,9 +6685,7 @@ pixel_x = -2; pixel_y = 7 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/civres) "fcA" = ( /obj/effect/landmark/yautja_teleport, @@ -8395,10 +6695,7 @@ /obj/structure/barricade/deployable{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/north, /area/fiorina/station/lowsec) "fdf" = ( /obj/structure/closet, @@ -8411,9 +6708,7 @@ /obj/structure/machinery/light/double/blue{ pixel_y = -1 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/fiorina/lz/near_lzI) "fdC" = ( /obj/item/prop/helmetgarb/spacejam_tickets{ @@ -8426,9 +6721,7 @@ /area/fiorina/station/flight_deck) "fdR" = ( /obj/structure/platform_decoration, -/turf/open/floor/prison{ - icon_state = "darkbrowncorners2" - }, +/turf/open/floor/prison/darkbrowncorners2, /area/fiorina/station/park) "fdV" = ( /obj/structure/platform_decoration/kutjevo{ @@ -8448,10 +6741,7 @@ /area/fiorina/station/medbay) "ffA" = ( /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/fiorina/station/transit_hub) "ffZ" = ( /obj/structure/extinguisher_cabinet, @@ -8459,9 +6749,7 @@ /area/fiorina/station/power_ring) "fgq" = ( /obj/effect/landmark/corpsespawner/engineer, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, +/turf/open/floor/prison/bluefull, /area/fiorina/station/power_ring) "fgM" = ( /obj/structure/platform, @@ -8469,16 +6757,11 @@ dir = 2; icon_state = "casing_5" }, -/turf/open/gm/river{ - color = "#995555"; - name = "pool" - }, +/turf/open/gm/river/red_pool, /area/fiorina/station/park) "fgN" = ( /obj/item/device/flashlight/flare, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/lz/near_lzI) "fgU" = ( /obj/structure/surface/table/reinforced/prison, @@ -8490,17 +6773,12 @@ desc = "Someone has crossed out the Space from Space Cleaner and written in Surgery. 'Do not remove under punishment of death!!!' is scrawled on the back."; name = "Surgery Cleaner" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "fhB" = ( /obj/structure/surface/rack, /obj/item/storage/toolbox/emergency, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/aux_engi) "fic" = ( /obj/structure/bed/sofa/south/grey/right, @@ -8510,10 +6788,7 @@ /turf/open/floor/wood, /area/fiorina/station/park) "fie" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/chapel) "fiq" = ( /turf/open/floor/plating/prison, @@ -8528,17 +6803,13 @@ /area/fiorina/station/research_cells) "fiw" = ( /obj/structure/machinery/vending/coffee, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, +/turf/open/floor/prison/bluefull, /area/fiorina/station/power_ring) "fiG" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_7" }, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/fiorina/station/security) "fiU" = ( /turf/open/floor/plating/plating_catwalk, @@ -8555,10 +6826,7 @@ /obj/structure/platform{ dir = 4 }, -/turf/open/floor/prison{ - dir = 5; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/northeast, /area/fiorina/station/disco) "fjg" = ( /obj/structure/machinery/light/double/blue{ @@ -8573,10 +6841,7 @@ /obj/effect/decal/medical_decals{ icon_state = "triagedecaldir" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "fjr" = ( /obj/structure/reagent_dispensers/fueltank, @@ -8593,10 +6858,7 @@ dir = 1; pixel_y = 21 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/fiorina/station/telecomm/lz1_cargo) "fjX" = ( /turf/closed/shuttle/elevator{ @@ -8608,9 +6870,7 @@ /obj/structure/machinery/computer/cameras{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/fiorina/station/security) "fkH" = ( /obj/structure/platform{ @@ -8619,16 +6879,11 @@ /obj/effect/decal/medical_decals{ icon_state = "triagedecalbottomleft" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "fmb" = ( /obj/item/storage/firstaid/toxin, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/chapel) "fmg" = ( /obj/item/shard{ @@ -8639,10 +6894,7 @@ "fmE" = ( /obj/effect/landmark/objective_landmark/medium, /obj/structure/closet/secure_closet/engineering_personal, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/north, /area/fiorina/maintenance) "fmY" = ( /obj/item/device/cassette_tape/ocean, @@ -8657,10 +6909,7 @@ /obj/structure/platform{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/east, /area/fiorina/tumor/ice_lab) "fnD" = ( /turf/closed/shuttle/elevator{ @@ -8669,9 +6918,7 @@ /area/fiorina/station/telecomm/lz1_cargo) "fnY" = ( /obj/structure/machinery/vending/cola, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/park) "fob" = ( /obj/structure/platform{ @@ -8684,10 +6931,7 @@ "fop" = ( /obj/structure/surface/rack, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/tumor/ice_lab) "fou" = ( /obj/structure/barricade/deployable{ @@ -8704,9 +6948,7 @@ pixel_x = 10; pixel_y = 13 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/power_ring) "fpn" = ( /turf/open/floor/plating/plating_catwalk/prison, @@ -8723,10 +6965,7 @@ dir = 4; pixel_y = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean_marked" - }, +/turf/open/floor/prison/bright_clean_marked/southwest, /area/fiorina/station/medbay) "fpB" = ( /obj/item/tool/wirecutters/clippers, @@ -8740,10 +6979,7 @@ /turf/open/floor/prison, /area/fiorina/station/transit_hub) "fqg" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/west, /area/fiorina/station/central_ring) "fqh" = ( /obj/structure/machinery/light/double/blue{ @@ -8751,10 +6987,7 @@ pixel_x = 10; pixel_y = 13 }, -/turf/open/floor/prison{ - dir = 5; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/northeast, /area/fiorina/station/medbay) "fqF" = ( /obj/effect/landmark{ @@ -8766,16 +6999,11 @@ /area/fiorina/tumor/servers) "fqI" = ( /obj/structure/machinery/space_heater, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/fiorina/station/research_cells) "frc" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/west, /area/fiorina/station/civres_blue) "frv" = ( /obj/structure/machinery/door/airlock/prison_hatch/autoname, @@ -8785,19 +7013,13 @@ /obj/effect/spawner/random/toolbox, /obj/structure/surface/rack, /obj/item/device/flashlight, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/fiorina/station/transit_hub) "frR" = ( /obj/effect/decal/medical_decals{ icon_state = "triagedecalbottom" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/station/medbay) "fsk" = ( /obj/structure/machinery/space_heater, @@ -8805,9 +7027,7 @@ /area/fiorina/tumor/fiberbush) "ftb" = ( /obj/effect/landmark/monkey_spawn, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/civres) "ftd" = ( /obj/structure/platform{ @@ -8817,37 +7037,26 @@ /obj/structure/platform_decoration{ dir = 6 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/botany) "fth" = ( /obj/effect/landmark/monkey_spawn, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/civres_blue) "ftS" = ( /obj/item/stack/rods, -/turf/open/floor/prison{ - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen, /area/fiorina/station/medbay) "ftU" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/fiorina/tumor/aux_engi) "fun" = ( /obj/item/weapon/gun/smg/mp5, /obj/item/ammo_casing{ icon_state = "casing_6_1" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/fiorina/station/telecomm/lz1_cargo) "fuw" = ( /obj/item/stack/cable_coil, @@ -8869,36 +7078,24 @@ pixel_y = 8 }, /obj/structure/machinery/light/double/blue, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/security/wardens) "fuO" = ( /obj/item/clipboard, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/fiorina/tumor/servers) "fvr" = ( /obj/structure/platform_decoration{ dir = 4 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/west, /area/fiorina/station/park) "fvH" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/east, /area/fiorina/oob) "fvK" = ( /obj/item/stack/rods, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/power_ring) "fvL" = ( /obj/item/stack/sheet/metal, @@ -8914,9 +7111,7 @@ pixel_x = 9; pixel_y = 2 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/telecomm/lz1_cargo) "fwn" = ( /obj/structure/lattice, @@ -8932,10 +7127,7 @@ /obj/effect/decal/medical_decals{ icon_state = "triagedecaldir" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "fwY" = ( /obj/structure/barricade/metal/wired{ @@ -8957,15 +7149,11 @@ /area/fiorina/station/security) "fxt" = ( /obj/structure/largecrate/random/barrel/blue, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/fiorina/tumor/ship) "fxL" = ( /obj/structure/filingcabinet, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/aux_engi) "fxS" = ( /obj/structure/surface/table/reinforced/prison, @@ -8979,10 +7167,7 @@ /obj/structure/flora/bush/ausbushes/grassybush{ icon_state = "ywflowers_3" }, -/turf/open/organic/grass{ - desc = "It'll get in your shoes no matter what you do."; - name = "astroturf" - }, +/turf/open/organic/grass/astroturf, /area/fiorina/station/central_ring) "fyy" = ( /obj/structure/bed/chair/wood/normal{ @@ -9007,34 +7192,25 @@ /area/fiorina/station/park) "fzp" = ( /obj/structure/bed/chair, -/turf/open/floor/prison{ - icon_state = "greenblue" - }, +/turf/open/floor/prison/greenblue, /area/fiorina/station/botany) "fzC" = ( /obj/structure/surface/table/reinforced/prison, /obj/effect/spawner/random/gun/shotgun/highchance, -/turf/open/floor/prison{ - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2, /area/fiorina/maintenance) "fzO" = ( /obj/structure/barricade/wooden{ dir = 4 }, -/turf/open/floor/prison/chapel_carpet{ - icon_state = "doubleside" - }, +/turf/open/floor/prison/chapel_carpet/doubleside, /area/fiorina/station/chapel) "fAf" = ( /turf/open/floor/prison, /area/fiorina/lz/near_lzII) "fAr" = ( /obj/effect/landmark/xeno_spawn, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/north, /area/fiorina/tumor/aux_engi) "fAt" = ( /obj/structure/flora/bush/ausbushes/ausbush{ @@ -9042,10 +7218,7 @@ icon_state = "fullgrass_3"; name = "Fiberbush(tm) tubers" }, -/turf/open/organic/grass{ - desc = "It'll get in your shoes no matter what you do."; - name = "astroturf" - }, +/turf/open/organic/grass/astroturf, /area/fiorina/tumor/aux_engi) "fAv" = ( /obj/structure/flora/grass/tallgrass/jungle/corner{ @@ -9058,9 +7231,7 @@ dir = 8; layer = 3.5 }, -/turf/open/organic/grass{ - name = "astroturf" - }, +/turf/open/organic/grass/astroturf, /area/fiorina/station/park) "fAI" = ( /obj/structure/surface/table/reinforced/prison, @@ -9069,18 +7240,14 @@ /area/fiorina/station/park) "fAS" = ( /obj/effect/spawner/random/tool, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/aux_engi) "fAU" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/paper_bin{ pixel_y = 7 }, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, +/turf/open/floor/prison/bluefull, /area/fiorina/station/power_ring) "fAZ" = ( /obj/structure/surface/rack, @@ -9092,9 +7259,7 @@ /area/fiorina/station/chapel) "fBr" = ( /obj/structure/closet/secure_closet/engineering_materials, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/civres) "fBD" = ( /obj/structure/largecrate/random/case/small, @@ -9111,19 +7276,13 @@ pixel_x = 10; pixel_y = -3 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/east, /area/fiorina/station/medbay) "fCr" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "fCw" = ( /obj/structure/machinery/vending/snack/packaged, @@ -9132,9 +7291,7 @@ pixel_x = -10; pixel_y = -3 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/civres_blue) "fCD" = ( /obj/item/stack/sheet/metal, @@ -9147,26 +7304,12 @@ pixel_y = 12 }, /obj/item/cell/super, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/fiorina/tumor/civres) "fCJ" = ( -/obj/structure/platform/kutjevo/smooth, -/obj/structure/platform/kutjevo/smooth{ - dir = 1 - }, -/obj/structure/barricade/handrail{ - dir = 1; - icon_state = "hr_kutjevo"; - name = "solar lattice" - }, -/obj/structure/platform/kutjevo/smooth{ - dir = 8 - }, -/turf/open/space, -/area/fiorina/oob) +/obj/structure/girder, +/turf/open/floor/prison/yellow/north, +/area/fiorina/station/lowsec) "fCW" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/computer/communications, @@ -9180,26 +7323,17 @@ /area/fiorina/station/power_ring) "fDb" = ( /obj/structure/largecrate/random/secure, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/security) "fDi" = ( /obj/structure/machinery/computer/arcade, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/medbay) "fDE" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "damaged1" - }, +/turf/open/floor/prison/damaged1/southwest, /area/fiorina/station/central_ring) "fDJ" = ( -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/lz/near_lzI) "fDQ" = ( /obj/structure/window/framed/prison/reinforced/hull, @@ -9209,21 +7343,32 @@ }, /turf/open/floor/plating/prison, /area/fiorina/oob) +"fDW" = ( +/obj/structure/machinery/power/reactor/colony, +/turf/open/floor/prison, +/area/fiorina/station/power_ring) "fEn" = ( /turf/open/floor/prison, /area/fiorina/tumor/ice_lab) +"fEv" = ( +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/structure/surface/rack, +/turf/open/floor/prison/bluefull, +/area/fiorina/station/power_ring) "fEH" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/computer/station_alert, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, +/turf/open/floor/prison/bluefull, /area/fiorina/station/power_ring) "fEY" = ( /obj/structure/machinery/power/apc, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/fiorina/station/power_ring) "fFv" = ( /obj/structure/barricade/sandbags{ @@ -9231,17 +7376,11 @@ layer = 2.97; pixel_y = -14 }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/northwest, /area/fiorina/station/disco) "fFw" = ( /obj/structure/largecrate/random, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/fiorina/station/power_ring) "fFE" = ( /obj/item/tool/screwdriver, @@ -9251,10 +7390,7 @@ /obj/structure/platform_decoration{ dir = 1 }, -/turf/open/floor/prison{ - dir = 6; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/southeast, /area/fiorina/station/park) "fGA" = ( /obj/item/explosive/grenade/high_explosive/frag, @@ -9265,9 +7401,7 @@ /obj/structure/machinery/computer/emails{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, +/turf/open/floor/prison/bluefull, /area/fiorina/station/power_ring) "fHb" = ( /obj/structure/monorail{ @@ -9276,17 +7410,13 @@ /turf/open/floor/plating/prison, /area/fiorina/station/power_ring) "fHo" = ( -/turf/open/floor/prison{ - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow, /area/fiorina/station/lowsec) "fHI" = ( /obj/structure/platform_decoration{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/power_ring) "fHK" = ( /obj/structure/ice/thin/indestructible{ @@ -9298,9 +7428,7 @@ /area/fiorina/station/research_cells) "fIn" = ( /obj/effect/landmark/corpsespawner/ua_riot, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/fiorina/station/security) "fIq" = ( /obj/effect/decal/hefa_cult_decals/d32{ @@ -9316,10 +7444,7 @@ desc = "Sworn to the shrapnel and the shards therein. So sayeth her command when the first detonation occured."; name = "HEFA Order milita armband" }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/east, /area/fiorina/station/chapel) "fIT" = ( /obj/structure/largecrate/random/secure, @@ -9339,9 +7464,7 @@ /area/fiorina/tumor/civres) "fJV" = ( /obj/structure/largecrate/random/barrel/yellow, -/turf/open/floor/prison{ - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow, /area/fiorina/station/lowsec) "fJW" = ( /obj/structure/surface/table/reinforced/prison, @@ -9353,32 +7476,21 @@ /obj/structure/platform_decoration{ dir = 4 }, -/turf/open/floor/prison/chapel_carpet{ - dir = 1; - icon_state = "doubleside" - }, +/turf/open/floor/prison/chapel_carpet/doubleside/north, /area/fiorina/station/chapel) "fKn" = ( /obj/item/stock_parts/manipulator/pico, -/turf/open/floor/prison{ - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2, /area/fiorina/tumor/servers) "fKu" = ( /obj/item/device/flashlight/flare, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/west, /area/fiorina/station/telecomm/lz1_cargo) "fKP" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_21" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/tumor/ice_lab) "fKX" = ( /obj/item/storage/backpack{ @@ -9386,30 +7498,21 @@ pixel_y = 15 }, /obj/item/trash/syndi_cakes, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/lowsec) "fLb" = ( /obj/effect/decal/cleanable/blood/gibs, -/turf/open/floor/prison{ - dir = 9; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/north, /area/fiorina/station/lowsec) "fLu" = ( /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, +/turf/open/floor/prison/bluefull, /area/fiorina/station/power_ring) "fLH" = ( /obj/structure/barricade/wooden{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/fiorina/station/research_cells) "fLS" = ( /obj/structure/bed/chair, @@ -9417,17 +7520,13 @@ /area/fiorina/station/park) "fLX" = ( /obj/structure/bed/sofa/south/grey/left, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/civres_blue) "fLY" = ( /obj/structure/machinery/newscaster{ pixel_y = 32 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/transit_hub) "fMc" = ( /obj/structure/platform{ @@ -9437,18 +7536,13 @@ /obj/structure/machinery/door/airlock/prison_hatch/autoname{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/ice_lab) "fMn" = ( /obj/structure/machinery/photocopier{ pixel_y = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "fNA" = ( /obj/structure/stairs/perspective{ @@ -9464,17 +7558,13 @@ "fOe" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/device/flashlight/lamp, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/fiorina/station/disco) "fOg" = ( /obj/structure/flora/grass/tallgrass/jungle/corner{ dir = 8 }, -/turf/open/organic/grass{ - name = "astroturf" - }, +/turf/open/organic/grass/astroturf, /area/fiorina/station/park) "fOi" = ( /obj/structure/bed/chair{ @@ -9489,41 +7579,27 @@ /area/fiorina/station/central_ring) "fOC" = ( /obj/effect/spawner/random/tool, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/west, /area/fiorina/station/telecomm/lz1_cargo) "fOK" = ( /obj/item/device/flashlight/lamp/tripod, -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/northwest, /area/fiorina/station/flight_deck) "fOT" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/north, /area/fiorina/station/power_ring) "fPl" = ( -/obj/structure/barricade/metal/wired{ - dir = 8 - }, -/turf/open/floor/prison{ - icon_state = "yellowfull" +/obj/structure/machinery/power/apc{ + dir = 1 }, +/turf/open/floor/prison/yellow/north, /area/fiorina/station/lowsec) "fPB" = ( /turf/open/space, /area/fiorina/station/medbay) "fQa" = ( /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/west, /area/fiorina/station/telecomm/lz1_tram) "fQA" = ( /obj/structure/flora/pottedplant{ @@ -9531,9 +7607,7 @@ layer = 3.5; pixel_y = 6 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/chapel) "fQB" = ( /obj/item/ammo_casing/shell{ @@ -9549,10 +7623,7 @@ /obj/effect/decal/medical_decals{ icon_state = "triagedecaldir" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "fQV" = ( /obj/structure/platform/kutjevo/smooth{ @@ -9570,27 +7641,18 @@ pixel_y = 8 }, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/prison{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/northeast, /area/fiorina/station/research_cells) "fRo" = ( /obj/structure/bed/chair, /turf/open/floor/plating/prison, /area/fiorina/tumor/ice_lab) "fRq" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/west, /area/fiorina/station/security) "fSa" = ( /obj/effect/landmark/monkey_spawn, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/station/medbay) "fSp" = ( /obj/effect/decal/cleanable/blood{ @@ -9600,9 +7662,7 @@ /obj/item/stack/sheet/metal{ amount = 5 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/lz/near_lzI) "fSq" = ( /obj/structure/machinery/door/airlock/almayer/marine{ @@ -9634,10 +7694,7 @@ /turf/open/floor/almayer, /area/fiorina/tumor/ship) "fTd" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "green" - }, +/turf/open/floor/prison/green/southwest, /area/fiorina/tumor/aux_engi) "fTn" = ( /obj/structure/stairs/perspective{ @@ -9661,10 +7718,7 @@ /obj/structure/barricade/plasteel{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/fiorina/tumor/ship) "fUm" = ( /obj/item/clothing/head/pirate, @@ -9690,17 +7744,13 @@ /area/fiorina/tumor/servers) "fUD" = ( /obj/structure/dropship_equipment/mg_holder, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/power_ring) "fUP" = ( /obj/structure/machinery/door/window/eastright{ dir = 2 }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/fiorina/lz/near_lzI) "fUX" = ( /obj/structure/bedsheetbin, @@ -9710,10 +7760,7 @@ /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "green" - }, +/turf/open/floor/prison/green/southwest, /area/fiorina/station/chapel) "fVY" = ( /obj/effect/decal{ @@ -9725,16 +7772,10 @@ /obj/item/stack/sheet/metal{ amount = 5 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/west, /area/fiorina/station/flight_deck) "fWr" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/prison/red/east, /area/fiorina/lz/near_lzII) "fWs" = ( /obj/structure/stairs/perspective{ @@ -9747,15 +7788,10 @@ /turf/open/floor/prison, /area/fiorina/station/telecomm/lz1_tram) "fWy" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/fiorina/station/power_ring) "fWH" = ( -/turf/open/floor/prison{ - icon_state = "yellowfull" - }, +/turf/open/floor/prison/yellowfull, /area/fiorina/station/disco) "fWI" = ( /obj/structure/monorail{ @@ -9765,33 +7801,23 @@ /turf/open/space, /area/fiorina/oob) "fWV" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "damaged1" - }, +/turf/open/floor/prison/damaged1/southwest, /area/fiorina/station/disco) "fXo" = ( /obj/structure/machinery/light/double/blue{ pixel_y = -1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/fiorina/station/disco) "fXB" = ( /turf/open/floor/plating/plating_catwalk/prison, /area/fiorina/station/security) "fXD" = ( /obj/structure/machinery/light/double/blue, -/turf/open/floor/prison{ - icon_state = "greenblue" - }, +/turf/open/floor/prison/greenblue, /area/fiorina/station/botany) "fXI" = ( -/turf/open/floor/prison{ - icon_state = "green" - }, +/turf/open/floor/prison/green, /area/fiorina/station/transit_hub) "fXL" = ( /obj/structure/disposalpipe/segment{ @@ -9806,23 +7832,15 @@ /area/fiorina/tumor/servers) "fXW" = ( /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/prison{ - dir = 8; - icon_state = "bluecorner" - }, +/turf/open/floor/prison/bluecorner/west, /area/fiorina/station/power_ring) "fYa" = ( /obj/structure/inflatable, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "fYf" = ( /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/prison{ - icon_state = "yellowfull" - }, +/turf/open/floor/prison/yellowfull, /area/fiorina/station/disco) "fYo" = ( /obj/structure/machinery/light/double/blue{ @@ -9840,9 +7858,7 @@ /obj/item/ammo_casing{ icon_state = "casing_6" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/lowsec) "fZc" = ( /obj/structure/surface/table/reinforced/prison, @@ -9850,9 +7866,7 @@ pixel_x = -4; pixel_y = 9 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/fiorina/station/research_cells) "fZd" = ( /obj/structure/machinery/landinglight/ds2/delayone{ @@ -9862,9 +7876,7 @@ /area/fiorina/lz/near_lzII) "fZe" = ( /obj/item/tool/shovel/etool, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, +/turf/open/floor/prison/bluefull, /area/fiorina/station/civres_blue) "fZz" = ( /obj/effect/decal/cleanable/blood/drip, @@ -9883,9 +7895,7 @@ pixel_x = -12; pixel_y = 2 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/fiorina/station/civres_blue) "fZW" = ( /obj/structure/surface/table/reinforced/prison, @@ -9896,14 +7906,10 @@ pixel_x = -6; pixel_y = 16 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/security) "gag" = ( -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/security) "gaQ" = ( /obj/structure/machinery/power/apc{ @@ -9912,17 +7918,12 @@ /turf/open/floor/prison, /area/fiorina/station/security) "gbf" = ( -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/power_ring) "gbh" = ( /obj/structure/surface/table/reinforced/prison, /obj/effect/spawner/random/toolbox, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "gbk" = ( /obj/item/trash/burger, @@ -9934,27 +7935,18 @@ pixel_x = -10; pixel_y = 13 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "gbF" = ( /obj/item/clothing/gloves/botanic_leather, -/turf/open/floor/prison{ - dir = 8; - icon_state = "greenblue" - }, +/turf/open/floor/prison/greenblue/west, /area/fiorina/station/botany) "gbO" = ( /obj/structure/platform_decoration{ dir = 4 }, /obj/item/trash/used_stasis_bag, -/turf/open/floor/prison{ - dir = 9; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/northwest, /area/fiorina/station/medbay) "gbR" = ( /obj/structure/machinery/light/double/blue{ @@ -9962,9 +7954,7 @@ pixel_x = -10; pixel_y = 13 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/disco) "gbT" = ( /obj/structure/machinery/vending/cola, @@ -9972,9 +7962,7 @@ /area/fiorina/station/medbay) "gbV" = ( /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/fiorina/tumor/aux_engi) "gcx" = ( /obj/structure/monorail{ @@ -9985,16 +7973,11 @@ /area/fiorina/station/transit_hub) "gcD" = ( /obj/structure/kitchenspike, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/fiorina/station/power_ring) "gdQ" = ( /obj/effect/decal/cleanable/blood/drip, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/north, /area/fiorina/station/chapel) "gdS" = ( /obj/structure/machinery/light/double/blue{ @@ -10002,9 +7985,7 @@ pixel_x = -10; pixel_y = 13 }, -/turf/open/floor/prison{ - icon_state = "yellowfull" - }, +/turf/open/floor/prison/yellowfull, /area/fiorina/station/lowsec) "gec" = ( /obj/structure/prop/structure_lattice{ @@ -10013,9 +7994,7 @@ icon = 'icons/turf/elevator.dmi'; icon_state = "wall_broke" }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/fiorina/station/civres_blue) "gef" = ( /obj/structure/lattice, @@ -10028,9 +8007,7 @@ /obj/item/ammo_magazine/rifle/m16{ current_rounds = 0 }, -/turf/open/floor/prison{ - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow, /area/fiorina/station/lowsec) "geF" = ( /obj/structure/lattice, @@ -10042,10 +8019,7 @@ /area/fiorina/station/chapel) "geT" = ( /obj/structure/machinery/cm_vending/sorted/medical/blood, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/tumor/ice_lab) "gfh" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony/autoname{ @@ -10091,9 +8065,7 @@ /obj/structure/surface/table/reinforced/prison, /obj/item/reagent_container/spray/pepper, /obj/item/clothing/glasses/sunglasses/sechud, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/fiorina/station/security) "ghg" = ( /obj/structure/barricade/handrail{ @@ -10112,9 +8084,7 @@ "ghw" = ( /obj/structure/bed/chair/dropship/pilot, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/fiorina/tumor/ship) "ghz" = ( /obj/structure/lz_sign/prison_sign, @@ -10125,10 +8095,7 @@ /turf/open/floor/prison, /area/fiorina/station/telecomm/lz1_cargo) "gir" = ( -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/fiorina/tumor/servers) "giw" = ( /obj/structure/platform_decoration{ @@ -10138,9 +8105,7 @@ /area/fiorina/station/transit_hub) "giA" = ( /obj/structure/bed/sofa/south/grey/left, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/fiorina/station/security) "giX" = ( /obj/structure/barricade/handrail/type_b{ @@ -10161,41 +8126,29 @@ /area/fiorina/lz/near_lzII) "gjz" = ( /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/station/medbay) "gjY" = ( /obj/effect/decal/cleanable/blood/drip, -/turf/open/floor/prison{ - icon_state = "bluecorner" - }, +/turf/open/floor/prison/bluecorner, /area/fiorina/station/chapel) "gkv" = ( /obj/structure/platform_decoration{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/ice_lab) "gkC" = ( /obj/structure/machinery/vending/cola, /obj/structure/prop/souto_land/streamer{ pixel_y = 24 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/east, /area/fiorina/station/park) "gkE" = ( /obj/structure/surface/rack, /obj/item/explosive/grenade/high_explosive/frag, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/servers) "glj" = ( /obj/structure/window/framed/prison, @@ -10213,9 +8166,7 @@ /area/fiorina/tumor/aux_engi) "gmg" = ( /obj/structure/bed/chair/comfy, -/turf/open/floor/prison{ - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2, /area/fiorina/station/flight_deck) "gmp" = ( /obj/structure/machinery/light/double/blue{ @@ -10223,19 +8174,14 @@ pixel_x = 10; pixel_y = -3 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/telecomm/lz1_tram) "gmx" = ( /obj/structure/closet/crate/miningcar{ name = "\improper materials storage bin" }, /obj/item/reagent_container/food/snacks/meat, -/turf/open/floor/prison{ - dir = 1; - icon_state = "greenblue" - }, +/turf/open/floor/prison/greenblue/north, /area/fiorina/station/botany) "gmF" = ( /obj/structure/bed/sofa/vert/grey/top, @@ -10249,36 +8195,25 @@ /obj/structure/closet/secure_closet/engineering_materials, /obj/effect/spawner/random/gun/smg, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/fiorina/tumor/aux_engi) "gmT" = ( /obj/effect/landmark/xeno_spawn, -/turf/open/organic/grass{ - desc = "It'll get in your shoes no matter what you do."; - name = "astroturf" - }, +/turf/open/organic/grass/astroturf, /area/fiorina/tumor/fiberbush) "gnG" = ( /obj/effect/decal/medical_decals{ icon_state = "docstripingdir" }, /obj/structure/bed/roller, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/station/medbay) "gnL" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/tool/kitchen/rollingpin, /obj/item/reagent_container/food/snacks/grown/carrot, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/fiorina/station/civres_blue) "gnQ" = ( /obj/effect/spawner/random/toolbox, @@ -10289,16 +8224,10 @@ icon_state = "abed" }, /obj/item/storage/bible/hefa, -/turf/open/floor/prison{ - dir = 6; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/southeast, /area/fiorina/station/research_cells) "goo" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/west, /area/fiorina/lz/near_lzII) "goG" = ( /obj/structure/window/framed/prison/reinforced, @@ -10310,9 +8239,7 @@ /area/fiorina/station/telecomm/lz1_cargo) "gpA" = ( /obj/item/trash/pistachios, -/turf/open/floor/prison{ - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen, /area/fiorina/tumor/ice_lab) "gpG" = ( /obj/structure/window_frame/prison, @@ -10327,30 +8254,20 @@ pixel_x = 6; pixel_y = 3 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/fiorina/tumor/servers) "gqM" = ( /obj/structure/platform_decoration, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/park) "gqU" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/paper/janitor, -/turf/open/floor/prison{ - icon_state = "yellowfull" - }, +/turf/open/floor/prison/yellowfull, /area/fiorina/station/disco) "grg" = ( /obj/effect/decal/cleanable/blood/drip, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/fiorina/station/telecomm/lz1_cargo) "grA" = ( /obj/structure/machinery/landinglight/ds2/delaythree{ @@ -10382,9 +8299,7 @@ "gsU" = ( /obj/structure/closet/secure_closet/engineering_welding, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/fiorina/tumor/aux_engi) "gsX" = ( /obj/structure/machinery/light/double/blue{ @@ -10400,9 +8315,7 @@ icon_state = "p_stair_full" }, /obj/structure/platform, -/turf/open/floor/prison{ - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2, /area/fiorina/station/park) "gtg" = ( /obj/structure/barricade/sandbags{ @@ -10418,26 +8331,20 @@ /area/fiorina/lz/near_lzI) "gtr" = ( /obj/structure/bedsheetbin, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/fiorina/station/research_cells) "gtH" = ( /obj/structure/safe, /obj/item/storage/beer_pack, /obj/item/storage/beer_pack, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/fiorina/station/medbay) "gtN" = ( /obj/item/storage/beer_pack{ pixel_y = 10 }, /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/prison{ - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow, /area/fiorina/station/lowsec) "gtP" = ( /obj/item/trash/uscm_mre, @@ -10445,9 +8352,7 @@ /area/fiorina/station/telecomm/lz1_cargo) "gtT" = ( /obj/item/trash/eat, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/lz/near_lzI) "guf" = ( /obj/structure/bed/chair{ @@ -10459,20 +8364,14 @@ "guv" = ( /obj/item/packageWrap, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/east, /area/fiorina/lz/near_lzI) "gux" = ( /obj/effect/landmark/corpsespawner/ua_riot, /turf/open/floor/prison, /area/fiorina/station/disco) "guz" = ( -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/fiorina/station/transit_hub) "guU" = ( /obj/structure/prop/structure_lattice{ @@ -10488,18 +8387,12 @@ "gve" = ( /obj/structure/filingcabinet, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/fiorina/tumor/servers) "gvr" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/storage/pill_bottle/inaprovaline/skillless, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/fiorina/station/botany) "gvz" = ( /obj/structure/machinery/light/double/blue{ @@ -10520,9 +8413,7 @@ /obj/structure/platform_decoration{ dir = 9 }, -/turf/open/floor/prison{ - icon_state = "yellowfull" - }, +/turf/open/floor/prison/yellowfull, /area/fiorina/station/disco) "gvZ" = ( /obj/item/stack/sheet/wood{ @@ -10530,17 +8421,12 @@ pixel_y = -3 }, /obj/item/stack/sheet/wood, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/fiorina/tumor/servers) "gwm" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/weapon/gun/energy/taser, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/fiorina/station/security) "gws" = ( /turf/open/floor/plating, @@ -10570,22 +8456,15 @@ dir = 1; pixel_y = 21 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/fiorina/lz/near_lzI) "gxQ" = ( /obj/structure/machinery/light/double/blue, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/fiorina/tumor/aux_engi) "gxR" = ( /obj/item/stack/tile/plasteel, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/fiorina/tumor/civres) "gyh" = ( /obj/effect/decal/medical_decals{ @@ -10596,17 +8475,11 @@ pixel_x = 10; pixel_y = 13 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "gyt" = ( /obj/effect/landmark/monkey_spawn, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/north, /area/fiorina/station/park) "gyy" = ( /obj/structure/platform{ @@ -10616,18 +8489,13 @@ /area/fiorina/station/transit_hub) "gyA" = ( /obj/structure/machinery/disposal, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/civres) "gyB" = ( /obj/structure/flora/bush/ausbushes/grassybush{ icon_state = "ywflowers_2" }, -/turf/open/organic/grass{ - desc = "It'll get in your shoes no matter what you do."; - name = "astroturf" - }, +/turf/open/organic/grass/astroturf, /area/fiorina/station/civres_blue) "gyJ" = ( /obj/structure/machinery/light/double/blue{ @@ -10641,10 +8509,7 @@ /obj/item/stack/sheet/wood{ amount = 10 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/fiorina/station/telecomm/lz1_cargo) "gzb" = ( /obj/structure/cable/heavyduty{ @@ -10658,23 +8523,16 @@ pixel_x = -11; pixel_y = 13 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/power_ring) "gzu" = ( /obj/item/clothing/mask/cigarette/bcigarette, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/station/research_cells) "gzN" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/toy/handcard/aceofspades, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/fiorina/station/research_cells) "gAh" = ( /obj/structure/prop/structure_lattice{ @@ -10697,30 +8555,21 @@ /area/fiorina/tumor/ice_lab) "gAC" = ( /obj/structure/machinery/light/double/blue, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "gAQ" = ( /obj/structure/machinery/landinglight/ds2/delaytwo{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/lz/near_lzII) "gBe" = ( /obj/structure/machinery/landinglight/ds2/delaythree, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/lz/near_lzII) "gBw" = ( /obj/item/trash/chunk, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/fiorina/station/research_cells) "gBx" = ( /obj/structure/prop/structure_lattice{ @@ -10731,25 +8580,17 @@ layer = 3.1; pixel_y = 10 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/fiberbush) "gBN" = ( /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/northwest, /area/fiorina/station/medbay) "gBP" = ( /obj/item/device/flashlight/lamp/tripod, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/fiorina/lz/near_lzI) "gBR" = ( /obj/structure/platform{ @@ -10763,9 +8604,7 @@ /area/fiorina/station/medbay) "gBY" = ( /obj/structure/window/framed/prison/reinforced/hull, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/fiorina/station/chapel) "gCn" = ( /obj/structure/surface/table/woodentable, @@ -10793,16 +8632,11 @@ "gCH" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/paper, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "gCK" = ( /obj/effect/landmark/survivor_spawner, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/fiorina/station/research_cells) "gDx" = ( /obj/structure/surface/table/woodentable, @@ -10820,9 +8654,7 @@ /turf/open/floor/prison, /area/fiorina/tumor/ice_lab) "gEq" = ( -/turf/open/floor/prison{ - icon_state = "platingdmg1" - }, +/turf/open/floor/prison/platingdmg1, /area/fiorina/oob) "gEx" = ( /obj/structure/window/framed/prison/reinforced/hull, @@ -10840,35 +8672,30 @@ /obj/effect/landmark/xeno_spawn, /turf/open/floor/plating/prison, /area/fiorina/tumor/servers) +"gFj" = ( +/obj/structure/platform{ + dir = 1 + }, +/obj/item/fuel_cell, +/turf/open/floor/plating/prison, +/area/fiorina/station/lowsec) "gFp" = ( /obj/structure/inflatable/door, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/station/medbay) "gFN" = ( /obj/item/stack/sheet/metal, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/north, /area/fiorina/station/research_cells) "gFW" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 6; - icon_state = "green" - }, +/turf/open/floor/prison/green/southeast, /area/fiorina/tumor/aux_engi) "gFZ" = ( /obj/structure/barricade/wooden{ dir = 1 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/east, /area/fiorina/station/telecomm/lz1_cargo) "gGc" = ( /obj/structure/platform{ @@ -10900,9 +8727,7 @@ dir = 1; pixel_y = 21 }, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, +/turf/open/floor/prison/bluefull, /area/fiorina/station/power_ring) "gHo" = ( /obj/structure/machinery/light/double/blue{ @@ -10911,10 +8736,7 @@ pixel_y = -3 }, /obj/structure/largecrate/random, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/fiorina/station/telecomm/lz1_tram) "gHy" = ( /obj/item/stack/sheet/metal/medium_stack, @@ -10941,10 +8763,7 @@ pixel_x = 15; pixel_y = 25 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/north, /area/fiorina/station/lowsec) "gIo" = ( /obj/structure/surface/table/reinforced/prison, @@ -10953,25 +8772,18 @@ pixel_y = 6 }, /obj/item/storage/box/cups, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/power_ring) "gIs" = ( /obj/item/reagent_container/food/drinks/bottle/rum, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/fiorina/station/botany) "gIB" = ( /obj/structure/window/framed/prison, /turf/open/floor/plating/prison, /area/fiorina/station/security) "gID" = ( -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/fiorina/oob) "gJu" = ( /obj/effect/alien/weeds/node, @@ -10979,9 +8791,7 @@ /area/fiorina/tumor/aux_engi) "gKg" = ( /obj/effect/landmark/survivor_spawner, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/security) "gKi" = ( /obj/structure/window/framed/prison, @@ -11000,10 +8810,7 @@ dir = 1; pixel_y = 21 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/north, /area/fiorina/station/chapel) "gLk" = ( /obj/item/stool, @@ -11023,17 +8830,11 @@ /area/fiorina/tumor/servers) "gLK" = ( /obj/structure/tunnel/maint_tunnel, -/turf/open/floor/prison{ - dir = 10; - icon_state = "greenblue" - }, +/turf/open/floor/prison/greenblue/southwest, /area/fiorina/station/botany) "gLV" = ( /obj/item/clothing/head/welding, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/fiorina/tumor/civres) "gNx" = ( /obj/structure/platform{ @@ -11048,41 +8849,29 @@ /obj/effect/decal/medical_decals{ icon_state = "triagedecalbottomright" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "gNJ" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/servers) "gNU" = ( /obj/structure/platform{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/disco) "gNY" = ( /obj/structure/flora/bush/ausbushes/grassybush{ icon_state = "ppflowers_2" }, -/turf/open/organic/grass{ - desc = "It'll get in your shoes no matter what you do."; - name = "astroturf" - }, +/turf/open/organic/grass/astroturf, /area/fiorina/station/civres_blue) "gOd" = ( /obj/item/stack/sheet/wood, -/turf/open/floor/prison{ - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2, /area/fiorina/station/park) "gOk" = ( /obj/structure/cargo_container/grant/right{ @@ -11092,9 +8881,7 @@ layer = 4; unacidable = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/power_ring) "gOJ" = ( /obj/structure/closet/secure_closet/medical2{ @@ -11102,16 +8889,11 @@ }, /obj/effect/spawner/random/pills, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/fiorina/station/medbay) "gOU" = ( /obj/item/bodybag, -/turf/open/floor/prison{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/west, /area/fiorina/station/lowsec) "gPk" = ( /obj/structure/barricade/metal/wired{ @@ -11121,17 +8903,12 @@ /turf/open/floor/plating/prison, /area/fiorina/station/central_ring) "gPo" = ( -/turf/open/floor/prison{ - dir = 9; - icon_state = "green" - }, +/turf/open/floor/prison/green/northwest, /area/fiorina/tumor/civres) "gPp" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/tool/kitchen/rollingpin, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/fiorina/station/power_ring) "gPs" = ( /obj/structure/surface/table/woodentable/fancy, @@ -11141,26 +8918,17 @@ /obj/structure/platform_decoration{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/southwest, /area/fiorina/station/disco) "gPS" = ( /obj/item/stack/rods, -/turf/open/floor/prison/chapel_carpet{ - dir = 1; - icon_state = "doubleside" - }, +/turf/open/floor/prison/chapel_carpet/doubleside/north, /area/fiorina/station/chapel) "gPV" = ( /obj/item/ammo_casing{ icon_state = "casing_8" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/fiorina/station/telecomm/lz1_cargo) "gQc" = ( /obj/item/stack/sheet/metal, @@ -11168,10 +8936,7 @@ /area/fiorina/station/lowsec) "gQz" = ( /obj/structure/bed/chair, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "gQK" = ( /obj/structure/disposalpipe/segment{ @@ -11191,22 +8956,14 @@ /area/fiorina/tumor/aux_engi) "gRf" = ( /obj/structure/machinery/computer/crew, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "gRg" = ( /obj/item/device/flashlight/lamp/tripod, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/flight_deck) "gRA" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/fiorina/station/disco) "gRT" = ( /obj/structure/surface/table/woodentable/fancy, @@ -11233,16 +8990,12 @@ dir = 1; pixel_y = 21 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/lowsec) "gSg" = ( /obj/structure/platform, /obj/structure/machinery/light/double/blue, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/power_ring) "gSC" = ( /obj/item/prop/helmetgarb/gunoil, @@ -11250,9 +9003,7 @@ /area/fiorina/maintenance) "gSK" = ( /obj/effect/landmark/yautja_teleport, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/transit_hub) "gSP" = ( /obj/structure/surface/table/woodentable/fancy, @@ -11272,36 +9023,22 @@ "gTc" = ( /obj/item/storage/belt/shotgun/full/quackers, /obj/effect/spawner/gibspawner/human, -/turf/open/gm/river{ - color = "#990000"; - name = "pool" - }, +/turf/open/gm/river/darkred_pool, /area/fiorina/station/park) "gTi" = ( -/turf/open/floor/prison{ - icon_state = "blue" - }, +/turf/open/floor/prison/blue, /area/fiorina/station/chapel) "gTy" = ( /obj/item/stack/sheet/metal/medium_stack, /obj/structure/surface/rack, -/turf/open/floor/prison{ - dir = 5; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/northeast, /area/fiorina/lz/near_lzI) "gTN" = ( -/turf/open/floor/prison{ - dir = 5; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/northeast, /area/fiorina/tumor/ice_lab) "gTW" = ( /obj/structure/platform, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/fiorina/station/transit_hub) "gUj" = ( /turf/closed/shuttle/ert{ @@ -11310,10 +9047,7 @@ /area/fiorina/tumor/ship) "gUu" = ( /obj/structure/largecrate/random/barrel, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/fiorina/lz/near_lzI) "gVc" = ( /obj/structure/barricade/sandbags{ @@ -11347,17 +9081,12 @@ /obj/effect/decal/cleanable/blood/xeno{ icon_state = "xgib3" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/fiorina/station/flight_deck) "gWg" = ( /obj/structure/powerloader_wreckage, /obj/effect/decal/cleanable/blood/gibs/robot/limb, -/turf/open/organic/grass{ - name = "astroturf" - }, +/turf/open/organic/grass/astroturf, /area/fiorina/station/research_cells) "gWq" = ( /obj/item/ammo_casing{ @@ -11384,23 +9113,15 @@ /turf/open/floor/plating/prison, /area/fiorina/station/telecomm/lz2_maint) "gXF" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/fiorina/tumor/servers) "gXI" = ( /obj/item/book/manual/atmospipes, -/turf/open/floor/prison{ - dir = 9; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/northwest, /area/fiorina/station/research_cells) "gYD" = ( /obj/item/tool/wrench, -/turf/open/floor/prison{ - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple, /area/fiorina/station/research_cells) "gYH" = ( /obj/structure/closet/secure_closet/security_empty, @@ -11408,24 +9129,17 @@ dir = 8 }, /obj/item/ammo_magazine/shotgun/beanbag, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/fiorina/station/security) "gYM" = ( /obj/structure/largecrate/random/barrel, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "gZc" = ( /obj/effect/decal/hefa_cult_decals/d32{ icon_state = "4" }, -/turf/open/floor/prison/chapel_carpet{ - icon_state = "doubleside" - }, +/turf/open/floor/prison/chapel_carpet/doubleside, /area/fiorina/maintenance) "gZf" = ( /obj/structure/machinery/shower{ @@ -11436,9 +9150,7 @@ "gZg" = ( /obj/structure/surface/table/reinforced/prison, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, +/turf/open/floor/prison/bluefull, /area/fiorina/station/power_ring) "gZx" = ( /obj/structure/surface/table/reinforced/prison, @@ -11450,29 +9162,19 @@ pixel_x = 6; pixel_y = 3 }, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, +/turf/open/floor/prison/bluefull, /area/fiorina/station/power_ring) "gZG" = ( /obj/item/stack/sheet/metal/medium_stack, /obj/effect/landmark/monkey_spawn, -/turf/open/floor/prison{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/west, /area/fiorina/station/civres_blue) "gZM" = ( /obj/item/device/flashlight/lamp/tripod, -/turf/open/floor/prison{ - icon_state = "darkbrowncorners2" - }, +/turf/open/floor/prison/darkbrowncorners2, /area/fiorina/station/park) "hae" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/west, /area/fiorina/tumor/ice_lab) "hao" = ( /obj/structure/surface/table/reinforced/prison, @@ -11480,9 +9182,7 @@ pixel_y = 7 }, /obj/structure/machinery/light/double/blue, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, +/turf/open/floor/prison/bluefull, /area/fiorina/station/power_ring) "hay" = ( /turf/closed/shuttle/ert{ @@ -11491,24 +9191,17 @@ /area/fiorina/station/medbay) "haJ" = ( /obj/item/disk, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/servers) "haQ" = ( /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/fiorina/station/research_cells) "hbn" = ( /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/fiorina/tumor/civres) "hbo" = ( /obj/structure/surface/table/reinforced/prison, @@ -11550,23 +9243,17 @@ /area/fiorina/station/disco) "hbt" = ( /obj/item/tool/screwdriver, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/fiorina/tumor/servers) "hbH" = ( /obj/item/stack/sandbags_empty/half, -/turf/open/floor/prison{ - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2, /area/fiorina/lz/near_lzI) "hcs" = ( /obj/item/stack/sheet/metal{ amount = 5 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/telecomm/lz1_cargo) "hcv" = ( /obj/item/stack/tile/plasteel{ @@ -11584,18 +9271,13 @@ icon_state = "poster11"; pixel_y = 32 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/fiorina/station/flight_deck) "hcY" = ( /obj/structure/platform{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/park) "hds" = ( /obj/structure/cable/heavyduty{ @@ -11608,28 +9290,19 @@ dir = 4; pixel_y = 4 }, -/turf/open/floor/prison{ - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2, /area/fiorina/station/park) "hdR" = ( -/turf/open/floor/prison{ - dir = 9; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/northwest, /area/fiorina/station/disco) "hej" = ( /obj/structure/machinery/light/double/blue, -/turf/open/floor/prison{ - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2, /area/fiorina/maintenance) "hek" = ( /obj/structure/closet/secure_closet/security_empty, /obj/item/weapon/baton, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/fiorina/station/security) "heo" = ( /obj/structure/closet/crate/trashcart, @@ -11638,15 +9311,11 @@ pixel_x = -10; pixel_y = 13 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/chapel) "heA" = ( /obj/effect/landmark/xeno_spawn, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/aux_engi) "heO" = ( /turf/closed/shuttle/elevator, @@ -11655,10 +9324,7 @@ /obj/structure/platform{ dir = 4 }, -/turf/open/floor/prison{ - dir = 6; - icon_state = "greenblue" - }, +/turf/open/floor/prison/greenblue/southeast, /area/fiorina/station/botany) "hfc" = ( /obj/structure/surface/table/reinforced/prison, @@ -11683,37 +9349,23 @@ /area/fiorina/station/flight_deck) "hgc" = ( /obj/structure/largecrate/supply/medicine/medivend, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "hgh" = ( /obj/item/trash/burger, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/fiorina/tumor/civres) "hgA" = ( /obj/item/ammo_magazine/smg/nailgun, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/fiorina/maintenance) "hgD" = ( /obj/effect/alien/weeds/node, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkbrowncorners2" - }, +/turf/open/floor/prison/darkbrowncorners2/east, /area/fiorina/tumor/aux_engi) "hgP" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrowncorners2" - }, +/turf/open/floor/prison/darkbrowncorners2/north, /area/fiorina/station/park) "hgS" = ( /turf/closed/shuttle/ert{ @@ -11732,10 +9384,7 @@ /obj/effect/decal/cleanable/blood/splatter, /obj/structure/surface/rack, /obj/item/clothing/gloves/latex, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/station/medbay) "hhL" = ( /obj/effect/spawner/random/powercell, @@ -11752,10 +9401,7 @@ /obj/structure/surface/rack, /obj/item/tool/plantspray/pests, /obj/item/tool/plantspray/weeds, -/turf/open/floor/prison{ - dir = 4; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/east, /area/fiorina/station/botany) "hir" = ( /obj/structure/window/framed/prison/reinforced, @@ -11768,24 +9414,15 @@ /area/fiorina/tumor/aux_engi) "hiP" = ( /obj/item/stack/rods, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/north, /area/fiorina/station/medbay) "hjp" = ( /obj/structure/bed/chair/office/dark, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/tumor/ice_lab) "hjB" = ( /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/station/research_cells) "hjC" = ( /obj/structure/platform{ @@ -11808,9 +9445,7 @@ "hjM" = ( /obj/structure/filingcabinet, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/security) "hjR" = ( /obj/effect/landmark/monkey_spawn, @@ -11835,36 +9470,22 @@ /obj/effect/decal/medical_decals{ icon_state = "docdecal1" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "hkA" = ( -/turf/open/floor/prison{ - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2, /area/fiorina/station/flight_deck) "hkB" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/prison/darkyellowcorners2/west, /area/fiorina/station/telecomm/lz1_cargo) "hkH" = ( /obj/item/stack/sheet/wood, -/turf/open/floor/prison{ - dir = 6; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/southeast, /area/fiorina/station/research_cells) "hkM" = ( /obj/effect/decal/cleanable/blood/gibs/xeno/body, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "hlk" = ( /obj/structure/surface/table/reinforced/prison, @@ -11873,9 +9494,7 @@ pixel_x = -4; pixel_y = 9 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/aux_engi) "hlB" = ( /obj/item/tool/kitchen/knife, @@ -11891,16 +9510,11 @@ /area/fiorina/tumor/aux_engi) "hmq" = ( /obj/item/device/flashlight, -/turf/open/floor/prison{ - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2, /area/fiorina/lz/near_lzI) "hmE" = ( /obj/item/stack/sheet/metal, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/east, /area/fiorina/tumor/ice_lab) "hmS" = ( /obj/structure/monorail{ @@ -11914,17 +9528,13 @@ /area/fiorina/station/power_ring) "hnK" = ( /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/park) "hnM" = ( /obj/item/shard{ icon_state = "large" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/security) "hob" = ( /obj/item/phone{ @@ -11933,24 +9543,17 @@ /turf/open/floor/plating/prison, /area/fiorina/oob) "hoo" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "bluecorner" - }, +/turf/open/floor/prison/bluecorner/east, /area/fiorina/station/civres_blue) "hox" = ( /obj/structure/barricade/handrail{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/central_ring) "hoC" = ( /obj/item/trash/popcorn, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/disco) "hoH" = ( /obj/effect/decal/cleanable/cobweb{ @@ -11975,9 +9578,7 @@ /area/fiorina/station/security) "hpn" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2, /area/fiorina/tumor/aux_engi) "hpz" = ( /obj/structure/ice/thin/indestructible{ @@ -11993,9 +9594,7 @@ /area/fiorina/station/power_ring) "hpX" = ( /obj/effect/spawner/random/toolbox, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, +/turf/open/floor/prison/bluefull, /area/fiorina/station/power_ring) "hqb" = ( /obj/structure/stairs/perspective{ @@ -12024,16 +9623,10 @@ /obj/structure/platform_decoration{ dir = 5 }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/northwest, /area/fiorina/tumor/ice_lab) "hqO" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/west, /area/fiorina/lz/near_lzII) "hqX" = ( /obj/structure/bed/chair{ @@ -12044,9 +9637,7 @@ pixel_x = 10; pixel_y = 13 }, -/turf/open/floor/prison{ - icon_state = "yellowfull" - }, +/turf/open/floor/prison/yellowfull, /area/fiorina/station/lowsec) "hre" = ( /obj/structure/platform_decoration{ @@ -12064,10 +9655,7 @@ /turf/open/floor/plating/prison, /area/fiorina/tumor/servers) "hrw" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/east, /area/fiorina/tumor/servers) "hrz" = ( /obj/structure/prop/almayer/computers/mission_planning_system{ @@ -12088,10 +9676,7 @@ /area/fiorina/station/disco) "hrA" = ( /obj/structure/largecrate/random/secure, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/tumor/ice_lab) "hrB" = ( /obj/item/tool/weldingtool, @@ -12105,9 +9690,7 @@ /obj/structure/machinery/shower{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/fiorina/station/lowsec) "hsc" = ( /obj/structure/cable/heavyduty{ @@ -12119,26 +9702,18 @@ /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/north, /area/fiorina/station/park) "hsl" = ( /obj/structure/machinery/light/double/blue, -/turf/open/floor/prison{ - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2, /area/fiorina/tumor/servers) "hsz" = ( /obj/structure/machinery/light/double/blue{ dir = 1; pixel_y = 21 }, -/turf/open/floor/prison{ - dir = 5; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/northeast, /area/fiorina/station/disco) "hsC" = ( /obj/structure/surface/table/reinforced/prison, @@ -12163,18 +9738,14 @@ /obj/item/ammo_magazine/rifle/m16{ current_rounds = 0 }, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/fiorina/station/security) "htt" = ( /turf/closed/shuttle/ert, /area/fiorina/station/power_ring) "htD" = ( /obj/structure/machinery/light/double/blue, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/aux_engi) "htO" = ( /obj/item/ammo_casing{ @@ -12187,31 +9758,20 @@ icon_state = "metal_2" }, /obj/effect/spawner/random/gun/smg, -/turf/open/floor/prison{ - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2, /area/fiorina/station/park) "htT" = ( /obj/structure/reagent_dispensers/watertank, -/turf/open/floor/prison{ - dir = 4; - icon_state = "bluecorner" - }, +/turf/open/floor/prison/bluecorner/east, /area/fiorina/station/power_ring) "htX" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "green" - }, +/turf/open/floor/prison/green/southwest, /area/fiorina/station/chapel) "hub" = ( /obj/structure/barricade/wooden{ dir = 8 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/north, /area/fiorina/station/park) "hul" = ( /obj/structure/machinery/door/airlock/prison_hatch/autoname, @@ -12222,9 +9782,7 @@ /obj/structure/machinery/recharger{ pixel_y = 4 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/security) "huD" = ( /obj/item/tool/crowbar, @@ -12232,17 +9790,13 @@ /area/fiorina/station/civres_blue) "huG" = ( /obj/item/tool/wirecutters, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/lowsec) "huJ" = ( /obj/structure/prop/almayer/computers/sensor_computer1{ name = "computer" }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/fiorina/station/lowsec) "hva" = ( /obj/structure/bed/chair/office/light{ @@ -12258,25 +9812,18 @@ pixel_y = 13 }, /obj/structure/largecrate/random, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/fiorina/station/civres_blue) "hvp" = ( /obj/effect/landmark/monkey_spawn, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/east, /area/fiorina/tumor/ice_lab) "hvF" = ( /obj/structure/grille, /turf/open/floor/plating/prison, /area/fiorina/station/power_ring) "hvL" = ( -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/fiorina/tumor/aux_engi) "hwr" = ( /obj/item/prop/helmetgarb/spacejam_tickets{ @@ -12285,26 +9832,18 @@ pixel_x = 7; pixel_y = 6 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/west, /area/fiorina/station/chapel) "hwN" = ( /obj/structure/inflatable/popped/door, -/turf/open/floor/prison{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/east, /area/fiorina/station/lowsec) "hwS" = ( /obj/structure/machinery/light/double/blue{ dir = 1; pixel_y = 21 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/security/wardens) "hxj" = ( /obj/structure/machinery/light/double/blue{ @@ -12313,9 +9852,7 @@ pixel_y = 13 }, /obj/structure/platform_decoration, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/disco) "hxq" = ( /obj/structure/window/framed/prison/reinforced/hull, @@ -12347,9 +9884,7 @@ /turf/open/ice/noweed, /area/fiorina/station/research_cells) "hyc" = ( -/turf/open/floor/prison{ - icon_state = "darkbrowncorners2" - }, +/turf/open/floor/prison/darkbrowncorners2, /area/fiorina/maintenance) "hyo" = ( /obj/structure/machinery/light/double/blue{ @@ -12357,17 +9892,13 @@ pixel_x = 10; pixel_y = -3 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/fiorina/station/civres_blue) "hyq" = ( /obj/structure/closet/crate/medical, /obj/item/tool/surgery/bonegel, /obj/item/tool/surgery/bonegel, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/medbay) "hys" = ( /obj/structure/grille, @@ -12391,25 +9922,17 @@ dir = 1; pixel_y = 21 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/fiorina/station/civres_blue) "hzv" = ( /obj/structure/window/framed/prison, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "hzF" = ( /obj/structure/barricade/wooden{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/telecomm/lz1_cargo) "hzG" = ( /obj/structure/machinery/landinglight/ds2/delaythree{ @@ -12422,9 +9945,7 @@ /area/fiorina/station/medbay) "hzL" = ( /obj/effect/landmark/xeno_spawn, -/turf/open/floor/prison{ - icon_state = "darkbrowncorners2" - }, +/turf/open/floor/prison/darkbrowncorners2, /area/fiorina/tumor/aux_engi) "hAs" = ( /obj/structure/reagent_dispensers/water_cooler{ @@ -12439,45 +9960,31 @@ pixel_x = 1; pixel_y = 8 }, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, +/turf/open/floor/prison/bluefull, /area/fiorina/station/power_ring) "hAI" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/aux_engi) "hAP" = ( /obj/item/clothing/under/stowaway, /obj/structure/machinery/shower{ pixel_y = 13 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/fiorina/station/lowsec) "hAX" = ( -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/northwest, /area/fiorina/tumor/ice_lab) "hBc" = ( /obj/structure/inflatable, -/turf/open/floor/prison{ - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple, /area/fiorina/station/research_cells) "hBf" = ( /obj/effect/spawner/random/tool, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/north, /area/fiorina/tumor/aux_engi) "hBF" = ( /obj/structure/window_frame/prison/reinforced, @@ -12495,9 +10002,7 @@ /area/fiorina/station/central_ring) "hCk" = ( /obj/item/poster, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/security) "hCp" = ( /obj/structure/prop/invuln{ @@ -12508,39 +10013,26 @@ name = "cell door" }, /obj/structure/blocker/invisible_wall, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/servers) "hCR" = ( /obj/item/stack/sheet/wood, /obj/structure/machinery/light/double/blue, -/turf/open/floor/prison{ - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple, /area/fiorina/station/research_cells) "hDb" = ( /obj/structure/closet/secure_closet/freezer/fridge, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/fiorina/station/civres_blue) "hDl" = ( /obj/structure/machinery/photocopier, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "hDm" = ( /obj/item/trash/burger, /obj/effect/landmark/monkey_spawn, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/tumor/ice_lab) "hDS" = ( /obj/structure/platform{ @@ -12551,19 +10043,14 @@ pixel_x = 10; pixel_y = -3 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/power_ring) "hDV" = ( /obj/effect/decal/medical_decals{ icon_state = "docdecal1" }, /obj/item/stack/cable_coil/blue, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/station/medbay) "hEb" = ( /turf/closed/shuttle/ert{ @@ -12571,10 +10058,7 @@ }, /area/fiorina/station/medbay) "hEk" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/east, /area/fiorina/station/flight_deck) "hEs" = ( /obj/structure/extinguisher_cabinet, @@ -12588,9 +10072,7 @@ /turf/open/floor/prison, /area/fiorina/station/disco) "hEZ" = ( -/turf/open/floor/prison{ - icon_state = "platingdmg3" - }, +/turf/open/floor/prison/platingdmg3, /area/fiorina/station/security) "hFC" = ( /obj/item/disk, @@ -12606,10 +10088,7 @@ /area/fiorina/station/park) "hFW" = ( /obj/effect/spawner/random/tool, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/north, /area/fiorina/station/research_cells) "hGg" = ( /obj/structure/sign/poster{ @@ -12617,9 +10096,7 @@ icon_state = "poster11"; pixel_x = -24 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/medbay) "hGn" = ( /obj/structure/bed/sofa/vert/grey/bot, @@ -12628,10 +10105,7 @@ "hGu" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/storage/fancy/vials/random, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "hGy" = ( /obj/structure/inflatable/popped/door, @@ -12643,9 +10117,7 @@ icon_state = "abed" }, /obj/effect/landmark/corpsespawner/ua_riot, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/telecomm/lz1_cargo) "hHc" = ( /obj/structure/surface/table/woodentable/fancy, @@ -12656,10 +10128,7 @@ }, /obj/effect/decal/cleanable/cobweb, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/prison/chapel_carpet{ - dir = 1; - icon_state = "doubleside" - }, +/turf/open/floor/prison/chapel_carpet/doubleside/north, /area/fiorina/station/chapel) "hHq" = ( /obj/structure/closet/cabinet, @@ -12668,10 +10137,7 @@ /area/fiorina/station/civres_blue) "hHr" = ( /obj/item/tool/warning_cone, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/west, /area/fiorina/station/park) "hHC" = ( /obj/structure/prop/souto_land/streamer{ @@ -12682,10 +10148,7 @@ dir = 1 }, /obj/effect/landmark/corpsespawner/security/liaison, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/east, /area/fiorina/station/park) "hHH" = ( /obj/effect/decal/cleanable/blood{ @@ -12700,25 +10163,17 @@ pixel_y = 8 }, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/prison{ - dir = 9; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/northwest, /area/fiorina/station/lowsec) "hIO" = ( /obj/structure/largecrate/random/barrel/green, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/medbay) "hIX" = ( /obj/structure/machinery/power/apc{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/prison/green/north, /area/fiorina/station/chapel) "hJo" = ( /obj/structure/sink{ @@ -12726,25 +10181,17 @@ pixel_x = -12 }, /obj/item/reagent_container/food/drinks/flask/barflask, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/southwest, /area/fiorina/station/research_cells) "hKN" = ( -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/fiorina/station/civres_blue) "hKP" = ( /obj/structure/platform{ dir = 4 }, /obj/item/tool/shovel/spade, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/fiorina/station/botany) "hLz" = ( /turf/closed/wall/prison, @@ -12768,16 +10215,11 @@ /area/fiorina/station/lowsec) "hMA" = ( /obj/item/tool/crowbar, -/turf/open/floor/prison{ - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen, /area/fiorina/station/medbay) "hMH" = ( /obj/item/newspaper, -/turf/open/floor/prison{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/prison/red/east, /area/fiorina/lz/near_lzII) "hMK" = ( /obj/effect/landmark/nightmare{ @@ -12796,9 +10238,7 @@ pixel_x = 6; pixel_y = 20 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/power_ring) "hNU" = ( /obj/structure/janitorialcart, @@ -12817,18 +10257,13 @@ /area/fiorina/maintenance) "hOG" = ( /obj/structure/inflatable/popped/door, -/turf/open/floor/prison{ - dir = 9; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/northwest, /area/fiorina/station/medbay) "hOQ" = ( /obj/structure/platform_decoration{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/central_ring) "hPi" = ( /obj/structure/stairs/perspective{ @@ -12840,24 +10275,15 @@ /area/fiorina/station/park) "hPq" = ( /obj/structure/machinery/power/apc, -/turf/open/floor/prison{ - dir = 4; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/east, /area/fiorina/station/botany) "hPu" = ( /obj/effect/spawner/random/tool, -/turf/open/floor/prison{ - dir = 1; - icon_state = "bluecorner" - }, +/turf/open/floor/prison/bluecorner/north, /area/fiorina/station/power_ring) "hPL" = ( /obj/item/tool/wrench, -/turf/open/floor/prison{ - dir = 6; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/southeast, /area/fiorina/tumor/servers) "hPN" = ( /obj/item/stack/sheet/metal, @@ -12865,10 +10291,7 @@ /area/fiorina/station/security) "hPO" = ( /obj/effect/spawner/random/gun/rifle/highchance, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/west, /area/fiorina/lz/near_lzI) "hPY" = ( /obj/structure/surface/rack, @@ -12886,9 +10309,7 @@ dir = 1; pixel_y = 2 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/security) "hQk" = ( /obj/structure/monorail{ @@ -12901,20 +10322,28 @@ }, /turf/open/floor/plating/prison, /area/fiorina/oob) +"hQv" = ( +/obj/structure/platform{ + dir = 1 + }, +/obj/item/fuel_cell, +/obj/structure/platform{ + dir = 4 + }, +/obj/structure/platform_decoration{ + dir = 9 + }, +/turf/open/floor/plating/prison, +/area/fiorina/station/lowsec) "hQM" = ( /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/power_ring) "hQQ" = ( /obj/structure/largecrate/supply/supplies/tables_racks, -/turf/open/floor/prison{ - dir = 10; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/southwest, /area/fiorina/station/disco) "hQR" = ( /obj/structure/barricade/metal/wired{ @@ -12934,33 +10363,22 @@ dir = 4; pixel_x = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/lz/near_lzII) "hRs" = ( /obj/structure/largecrate/random/barrel/blue, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/fiorina/tumor/aux_engi) "hRX" = ( -/turf/open/gm/river{ - color = "#995555"; - name = "pool" - }, +/turf/open/gm/river/red_pool, /area/fiorina/station/park) "hSk" = ( /obj/structure/toilet, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/fiorina/station/civres_blue) "hSl" = ( /obj/structure/platform, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/disco) "hSo" = ( /obj/structure/barricade/wooden{ @@ -12971,32 +10389,21 @@ icon_state = "p_stair_ew_full_cap" }, /obj/structure/platform/stair_cut/alt, -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/east, /area/fiorina/station/medbay) "hSA" = ( /obj/item/reagent_container/food/drinks/bottle/tomatojuice, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/aux_engi) "hSG" = ( -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/fiorina/tumor/fiberbush) "hSH" = ( /obj/item/reagent_container/food/snacks/donkpocket, /turf/open/floor/plating/prison, /area/fiorina/station/civres_blue) "hSO" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/east, /area/fiorina/lz/near_lzI) "hTf" = ( /obj/structure/prop/structure_lattice{ @@ -13005,18 +10412,13 @@ icon = 'icons/turf/elevator.dmi'; icon_state = "wall_broke" }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/fiorina/station/telecomm/lz1_cargo) "hTh" = ( /obj/structure/machinery/landinglight/ds1/delaytwo{ dir = 8 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/fiorina/lz/near_lzI) "hTo" = ( /obj/item/smallDelivery, @@ -13032,27 +10434,16 @@ /area/fiorina/station/civres_blue) "hTy" = ( /obj/effect/decal/cleanable/blood/gibs/xeno, -/turf/open/organic/grass{ - desc = "It'll get in your shoes no matter what you do."; - name = "astroturf" - }, +/turf/open/organic/grass/astroturf, /area/fiorina/station/central_ring) "hTM" = ( /obj/item/stack/rods, /turf/open/floor/plating/prison, /area/fiorina/station/transit_hub) "hTN" = ( -/obj/structure/platform_decoration/kutjevo, -/obj/structure/platform/kutjevo/smooth{ - dir = 1 - }, -/obj/structure/barricade/handrail{ - dir = 1; - icon_state = "hr_kutjevo"; - name = "solar lattice" - }, -/turf/open/space, -/area/fiorina/oob) +/obj/structure/girder, +/turf/open/floor/prison/yellow, +/area/fiorina/station/lowsec) "hUi" = ( /obj/item/stack/sheet/metal, /turf/open/floor/plating/prison, @@ -13064,10 +10455,7 @@ /area/fiorina/station/power_ring) "hUD" = ( /obj/item/stack/rods, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greencorner" - }, +/turf/open/floor/prison/greencorner/east, /area/fiorina/station/chapel) "hUL" = ( /obj/structure/sink{ @@ -13077,16 +10465,10 @@ pixel_x = -11; pixel_y = -5 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/station/medbay) "hUO" = ( -/turf/open/floor/prison/chapel_carpet{ - dir = 1; - icon_state = "doubleside" - }, +/turf/open/floor/prison/chapel_carpet/doubleside/north, /area/fiorina/maintenance) "hVu" = ( /obj/item/stack/sheet/metal, @@ -13097,10 +10479,7 @@ /area/fiorina/tumor/servers) "hVA" = ( /obj/structure/largecrate/random/case, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/southwest, /area/fiorina/station/research_cells) "hVG" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony/autoname{ @@ -13121,9 +10500,7 @@ /obj/structure/machinery/photocopier{ pixel_y = 4 }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/fiorina/station/security) "hWi" = ( /obj/structure/machinery/door/airlock/almayer/maint/autoname{ @@ -13137,10 +10514,7 @@ "hWk" = ( /obj/effect/decal/cleanable/blood, /obj/effect/spawner/random/gun/rifle/lowchance, -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/northwest, /area/fiorina/lz/near_lzI) "hWv" = ( /obj/structure/surface/rack, @@ -13152,9 +10526,7 @@ /obj/structure/platform{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/botany) "hWF" = ( /obj/structure/machinery/door/airlock/prison_hatch/autoname{ @@ -13167,24 +10539,18 @@ /obj/item/device/radio{ pixel_y = 8 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/power_ring) "hXF" = ( /obj/structure/surface/table/reinforced/prison, /obj/effect/spawner/random/toolbox, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/power_ring) "hXG" = ( /obj/structure/barricade/metal/wired{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2, /area/fiorina/lz/near_lzI) "hXN" = ( /obj/structure/surface/table/reinforced/prison, @@ -13212,10 +10578,7 @@ /area/fiorina/station/medbay) "hYl" = ( /obj/effect/decal/cleanable/blood/drip, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/station/medbay) "hYs" = ( /obj/structure/barricade/sandbags{ @@ -13235,19 +10598,14 @@ /area/fiorina/station/security) "hYX" = ( /obj/structure/machinery/bot/medbot, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "hZf" = ( /obj/structure/machinery/portable_atmospherics/powered/scrubber, /turf/open/floor/prison, /area/fiorina/station/medbay) "hZi" = ( -/turf/open/floor/prison{ - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2, /area/fiorina/station/telecomm/lz1_tram) "hZG" = ( /obj/structure/machinery/light/double/blue{ @@ -13255,32 +10613,21 @@ pixel_x = 10; pixel_y = -3 }, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, +/turf/open/floor/prison/bluefull, /area/fiorina/station/power_ring) "hZN" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrowncorners2" - }, +/turf/open/floor/prison/darkbrowncorners2/north, /area/fiorina/maintenance) "hZR" = ( /obj/structure/window/framed/prison/reinforced/hull, /turf/open/floor/plating/prison, /area/fiorina/station/lowsec) "iaa" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/west, /area/fiorina/station/disco) "iad" = ( /obj/item/device/multitool, -/turf/open/floor/prison{ - dir = 9; - icon_state = "green" - }, +/turf/open/floor/prison/green/northwest, /area/fiorina/tumor/civres) "iaE" = ( /obj/structure/prop/structure_lattice{ @@ -13291,15 +10638,10 @@ layer = 3.1; pixel_y = 10 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/aux_engi) "ibl" = ( -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/northwest, /area/fiorina/lz/near_lzI) "ibz" = ( /obj/structure/stairs/perspective{ @@ -13317,10 +10659,7 @@ /area/fiorina/lz/near_lzII) "icg" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_nest, -/turf/open/floor/prison{ - dir = 9; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/northwest, /area/fiorina/tumor/ice_lab) "icu" = ( /obj/structure/surface/table/reinforced/prison, @@ -13339,9 +10678,7 @@ /area/fiorina/tumor/aux_engi) "idb" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/chapel) "idi" = ( /obj/item/trash/sosjerky, @@ -13350,9 +10687,7 @@ "idj" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/storage/briefcase/inflatable, -/turf/open/floor/prison{ - icon_state = "yellowfull" - }, +/turf/open/floor/prison/yellowfull, /area/fiorina/station/lowsec) "idP" = ( /obj/structure/platform{ @@ -13362,20 +10697,14 @@ dir = 1; pixel_y = 21 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/tumor/ice_lab) "idS" = ( /obj/structure/largecrate/random, /turf/open/floor/prison, /area/fiorina/station/central_ring) "iea" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreencorner" - }, +/turf/open/floor/prison/whitegreencorner/north, /area/fiorina/station/medbay) "ieu" = ( /obj/structure/platform{ @@ -13389,9 +10718,7 @@ dir = 8; layer = 2.6 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/fiorina/station/medbay) "ieA" = ( /obj/structure/barricade/handrail/type_b, @@ -13399,29 +10726,20 @@ /area/fiorina/lz/near_lzI) "ieJ" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/fiberbush) "ifc" = ( /obj/item/stack/sheet/metal, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/fiorina/tumor/civres) "ifk" = ( /obj/structure/platform_decoration{ dir = 4 }, -/turf/open/floor/prison/chapel_carpet{ - icon_state = "doubleside" - }, +/turf/open/floor/prison/chapel_carpet/doubleside, /area/fiorina/station/chapel) "ifm" = ( -/turf/open/floor/prison{ - icon_state = "greencorner" - }, +/turf/open/floor/prison/greencorner, /area/fiorina/tumor/civres) "ifp" = ( /obj/structure/surface/table/woodentable, @@ -13450,33 +10768,23 @@ /area/fiorina/tumor/ship) "ifL" = ( /obj/item/stack/sheet/metal/medium_stack, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/servers) "ifN" = ( /obj/structure/machinery/vending/cigarette/colony, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/east, /area/fiorina/lz/near_lzI) "ifP" = ( /obj/structure/machinery/cm_vending/sorted/tech/comp_storage{ density = 0; pixel_y = 16 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/north, /area/fiorina/maintenance) "igc" = ( /obj/structure/surface/table/reinforced/prison, /obj/effect/spawner/random/powercell, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/fiorina/tumor/servers) "ign" = ( /obj/structure/machinery/light/double/blue{ @@ -13484,10 +10792,7 @@ pixel_x = 10; pixel_y = -3 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/east, /area/fiorina/lz/near_lzI) "igu" = ( /obj/structure/machinery/light/double/blue{ @@ -13495,10 +10800,7 @@ pixel_x = 10; pixel_y = -3 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenblue" - }, +/turf/open/floor/prison/greenblue/east, /area/fiorina/station/botany) "igQ" = ( /obj/structure/closet/cabinet, @@ -13509,16 +10811,11 @@ /area/fiorina/station/civres_blue) "igV" = ( /obj/item/stack/cable_coil, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/security) "ihn" = ( /obj/item/paper/crumpled, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/fiorina/tumor/civres) "ihp" = ( /obj/structure/closet/crate/science{ @@ -13536,42 +10833,29 @@ /area/fiorina/station/medbay) "ihv" = ( /obj/item/stock_parts/matter_bin/super, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/east, /area/fiorina/tumor/servers) "ihz" = ( /obj/effect/landmark/objective_landmark/medium, /turf/open/floor/plating/plating_catwalk, /area/fiorina/tumor/ship) "ihB" = ( -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/fiorina/station/security) "ihO" = ( /obj/structure/machinery/computer/prisoner, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/fiorina/station/security) "ihV" = ( /obj/structure/blocker/invisible_wall, -/turf/open/floor/prison{ - dir = 9; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/northwest, /area/fiorina/oob) "iie" = ( /obj/structure/surface/rack, /obj/item/storage/firstaid/adv, /obj/item/storage/firstaid/adv, /obj/item/storage/firstaid/toxin, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "iiw" = ( /obj/structure/monorail{ @@ -13582,18 +10866,13 @@ /area/fiorina/station/transit_hub) "iiz" = ( /obj/structure/machinery/gibber, -/turf/open/floor/prison{ - dir = 8; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/west, /area/fiorina/station/botany) "iiY" = ( /obj/structure/platform_decoration{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/central_ring) "ijd" = ( /obj/item/trash/cigbutt, @@ -13605,30 +10884,20 @@ /turf/open/floor/plating/prison, /area/fiorina/tumor/ice_lab) "ijt" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/southwest, /area/fiorina/station/park) "ijC" = ( -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/fiorina/lz/near_lzI) "ika" = ( /obj/structure/bed{ icon_state = "abed" }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/fiorina/station/research_cells) "ikt" = ( /obj/structure/closet/bodybag, -/turf/open/floor/prison{ - dir = 9; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/northwest, /area/fiorina/station/medbay) "ikF" = ( /obj/structure/surface/table/reinforced/prison, @@ -13655,50 +10924,34 @@ dir = 1; pixel_y = 21 }, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/fiorina/station/security) "ilM" = ( /obj/structure/stairs/perspective{ icon_state = "p_stair_sn_full_cap" }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/west, /area/fiorina/station/chapel) "img" = ( /obj/effect/landmark/survivor_spawner, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "imp" = ( /obj/structure/bed/chair/comfy{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/southwest, /area/fiorina/station/civres_blue) "imt" = ( /turf/open/floor/almayer, /area/fiorina/tumor/ship) "imz" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/fiorina/station/civres_blue) "imG" = ( /obj/item/trash/chunk, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/fiorina/station/telecomm/lz1_cargo) "imI" = ( /obj/structure/stairs/perspective{ @@ -13714,9 +10967,7 @@ /area/fiorina/tumor/servers) "ing" = ( /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/aux_engi) "inA" = ( /obj/structure/surface/table/reinforced/prison{ @@ -13727,39 +10978,27 @@ /area/fiorina/tumor/ice_lab) "inO" = ( /obj/effect/spawner/random/toolbox, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/east, /area/fiorina/tumor/aux_engi) "ioc" = ( -/turf/open/floor/prison{ - icon_state = "yellowfull" - }, +/turf/open/floor/prison/yellowfull, /area/fiorina/station/lowsec) "iox" = ( /obj/structure/platform_decoration{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/lowsec) "ioE" = ( /obj/structure/machinery/vending/cola, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/civres_blue) "ioM" = ( /turf/closed/wall/r_wall/prison, /area/fiorina/station/medbay) "ioS" = ( /obj/item/storage/briefcase, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "ioV" = ( /obj/structure/stairs/perspective{ @@ -13769,18 +11008,13 @@ /obj/structure/platform{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/tumor/ice_lab) "ioW" = ( /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, +/turf/open/floor/prison/bluefull, /area/fiorina/station/power_ring) "ipa" = ( /obj/structure/machinery/door/airlock/almayer/command{ @@ -13800,10 +11034,7 @@ /area/fiorina/lz/near_lzI) "ipA" = ( /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/east, /area/fiorina/station/medbay) "ipM" = ( /obj/structure/surface/table/reinforced/prison, @@ -13813,17 +11044,11 @@ /obj/item/ammo_magazine/pistol/heavy{ pixel_y = 12 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "ipV" = ( /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/east, /area/fiorina/lz/near_lzI) "iqB" = ( /obj/structure/surface/table/woodentable/fancy, @@ -13848,19 +11073,14 @@ /obj/item/ammo_casing{ icon_state = "casing_5" }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/east, /area/fiorina/station/flight_deck) "irQ" = ( /obj/structure/machinery/light/double/blue{ dir = 1; pixel_y = 21 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/civres_blue) "itd" = ( /obj/item/tool/lighter/random, @@ -13871,19 +11091,14 @@ /turf/open/floor/plating/prison, /area/fiorina/tumor/servers) "itK" = ( -/turf/open/floor/prison{ - icon_state = "platingdmg3" - }, +/turf/open/floor/prison/platingdmg3, /area/fiorina/maintenance) "itN" = ( /turf/closed/wall/r_wall/prison_unmeltable, /area/fiorina/station/park) "itW" = ( /obj/effect/landmark/objective_landmark/close, -/turf/open/organic/grass{ - desc = "It'll get in your shoes no matter what you do."; - name = "astroturf" - }, +/turf/open/organic/grass/astroturf, /area/fiorina/tumor/fiberbush) "iuz" = ( /obj/vehicle/train/cargo/trolley, @@ -13891,18 +11106,13 @@ /area/fiorina/station/transit_hub) "iuC" = ( /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/prison{ - icon_state = "yellowfull" - }, +/turf/open/floor/prison/yellowfull, /area/fiorina/station/lowsec) "iuN" = ( /obj/structure/barricade/handrail/type_b{ layer = 3.5 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/north, /area/fiorina/tumor/servers) "iuZ" = ( /obj/item/stack/rods, @@ -13917,16 +11127,11 @@ /turf/open/space/basic, /area/fiorina/oob) "ivr" = ( -/turf/open/floor/prison{ - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe, /area/fiorina/station/power_ring) "ivw" = ( /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/prison{ - dir = 5; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/northeast, /area/fiorina/station/disco) "ivz" = ( /obj/structure/barricade/handrail/type_b{ @@ -13941,14 +11146,10 @@ pixel_x = 6; pixel_y = -2 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/servers) "ivK" = ( -/turf/open/floor/prison{ - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2, /area/fiorina/maintenance) "ivN" = ( /obj/structure/window/reinforced, @@ -13963,9 +11164,7 @@ "iwi" = ( /obj/structure/surface/table/reinforced/prison, /obj/effect/spawner/random/toolbox, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, +/turf/open/floor/prison/bluefull, /area/fiorina/station/power_ring) "iwu" = ( /obj/item/newspaper, @@ -13973,9 +11172,7 @@ /area/fiorina/station/security) "iwy" = ( /obj/structure/bed/sofa/south/grey/right, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/security) "iwT" = ( /obj/structure/ice/thin/indestructible{ @@ -13994,9 +11191,7 @@ dir = 2; name = "Residential Archives" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/civres) "ixl" = ( /turf/open/floor/prison, @@ -14005,16 +11200,11 @@ /obj/structure/bed/chair/comfy{ dir = 4 }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/northwest, /area/fiorina/station/medbay) "ixK" = ( /obj/item/reagent_container/food/snacks/meat, -/turf/open/floor/prison{ - icon_state = "greenblue" - }, +/turf/open/floor/prison/greenblue, /area/fiorina/station/botany) "iyc" = ( /obj/item/stack/rods/plasteel, @@ -14037,16 +11227,11 @@ dir = 4; pixel_y = 24 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/west, /area/fiorina/station/park) "iys" = ( /obj/effect/spawner/random/sentry/midchance, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/fiorina/station/power_ring) "iyS" = ( /obj/structure/bed/chair/dropship/pilot{ @@ -14065,10 +11250,7 @@ desc = "Sworn to the shrapnel and the shards therein. So sayeth her command when the first detonation occured."; name = "HEFA Order milita armband" }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/fiorina/station/chapel) "izh" = ( /obj/structure/platform{ @@ -14078,9 +11260,7 @@ dir = 1; pixel_y = 21 }, -/turf/open/floor/prison{ - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe, /area/fiorina/station/lowsec) "izN" = ( /obj/structure/machinery/computer/secure_data, @@ -14116,20 +11296,14 @@ /turf/open/floor/plating/prison, /area/fiorina/station/medbay) "iAB" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/southwest, /area/fiorina/station/central_ring) "iBr" = ( /turf/open/floor/prison, /area/fiorina/station/flight_deck) "iBM" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 5; - icon_state = "greenblue" - }, +/turf/open/floor/prison/greenblue/northeast, /area/fiorina/station/botany) "iBP" = ( /turf/closed/shuttle/ert{ @@ -14137,19 +11311,10 @@ }, /area/fiorina/oob) "iCf" = ( -/obj/structure/closet{ - density = 0; - pixel_y = 18 - }, -/obj/item/clothing/gloves/boxing, -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 - }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "yellow" - }, +/obj/structure/closet/wardrobe/orange, +/obj/item/clothing/gloves/boxing/blue, +/obj/item/clothing/gloves/boxing/blue, +/turf/open/floor/prison/yellowfull, /area/fiorina/station/lowsec) "iCE" = ( /obj/structure/flora/pottedplant{ @@ -14163,9 +11328,7 @@ /area/fiorina/station/disco) "iCN" = ( /obj/item/tool/wrench, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/lowsec) "iCU" = ( /obj/structure/sign/nosmoking_1, @@ -14201,34 +11364,24 @@ /obj/structure/barricade/wooden{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/telecomm/lz1_cargo) "iDK" = ( /obj/structure/closet/crate/miningcar{ name = "\improper materials storage bin" }, /obj/item/reagent_container/food/snacks/meat, -/turf/open/floor/prison{ - dir = 4; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/east, /area/fiorina/station/botany) "iDO" = ( /obj/structure/surface/table/reinforced/prison, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/servers) "iDQ" = ( /obj/structure/surface/table/woodentable/fancy, /obj/effect/spawner/random/gun/rifle, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/fiorina/station/chapel) "iEl" = ( /obj/structure/platform_decoration, @@ -14239,16 +11392,11 @@ name = "\improper materials storage bin" }, /obj/item/reagent_container/food/snacks/meat, -/turf/open/floor/prison{ - icon_state = "greenblue" - }, +/turf/open/floor/prison/greenblue, /area/fiorina/station/botany) "iEF" = ( /obj/item/tool/kitchen/utensil/fork, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/fiorina/station/flight_deck) "iEG" = ( /obj/structure/sink{ @@ -14259,10 +11407,7 @@ pixel_x = -12; pixel_y = 13 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/southwest, /area/fiorina/station/lowsec) "iFg" = ( /obj/structure/machinery/light/double/blue{ @@ -14270,41 +11415,29 @@ pixel_y = 21 }, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - icon_state = "greenblue" - }, +/turf/open/floor/prison/greenblue, /area/fiorina/station/botany) "iFz" = ( /obj/structure/closet/firecloset/full, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/ice_lab) "iFB" = ( /obj/structure/toilet{ dir = 8; pixel_y = 8 }, -/turf/open/floor/prison{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/northeast, /area/fiorina/station/research_cells) "iFC" = ( /obj/structure/surface/rack, /obj/item/storage/toolbox/mechanical, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/aux_engi) "iFP" = ( /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/station/research_cells) "iFZ" = ( /obj/structure/surface/table/reinforced/prison, @@ -14312,22 +11445,15 @@ /obj/item/reagent_container/food/snacks/hugemushroomslice{ pixel_y = 3 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/fiorina/station/power_ring) "iGw" = ( /obj/item/stack/tile/plasteel, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/fiorina/tumor/civres) "iGx" = ( /obj/structure/closet/crate/trashcart, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/servers) "iGX" = ( /obj/effect/landmark/queen_spawn, @@ -14343,24 +11469,17 @@ icon_state = "sandbag_0" }, /obj/item/device/flashlight/lamp/tripod, -/turf/open/floor/prison{ - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2, /area/fiorina/station/telecomm/lz1_cargo) "iHT" = ( /obj/structure/barricade/handrail/type_b{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/power_ring) "iHW" = ( /obj/effect/decal/cleanable/blood/drip, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenblue" - }, +/turf/open/floor/prison/greenblue/east, /area/fiorina/station/botany) "iIl" = ( /obj/structure/stairs/perspective{ @@ -14379,10 +11498,7 @@ desc = "Watch your step."; icon_state = "gib6" }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/east, /area/fiorina/station/flight_deck) "iIE" = ( /obj/structure/surface/table/reinforced/prison, @@ -14405,9 +11521,7 @@ pixel_x = 10; pixel_y = -3 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/lowsec) "iIS" = ( /obj/structure/machinery/constructable_frame, @@ -14419,10 +11533,7 @@ dir = 1; pixel_y = 21 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/north, /area/fiorina/tumor/servers) "iJF" = ( /obj/structure/surface/table/reinforced/prison, @@ -14430,9 +11541,7 @@ dir = 1; pixel_y = 20 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/fiorina/station/medbay) "iKg" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_core, @@ -14447,31 +11556,21 @@ pixel_x = -12 }, /obj/effect/spawner/random/gun/pistol, -/turf/open/floor/prison{ - dir = 10; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/southwest, /area/fiorina/station/lowsec) "iKF" = ( /obj/structure/inflatable, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/transit_hub) "iKI" = ( /obj/effect/landmark/survivor_spawner, -/turf/open/floor/prison{ - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/prison/darkyellowcorners2, /area/fiorina/station/telecomm/lz1_cargo) "iKO" = ( /obj/structure/barricade/wooden{ dir = 1 }, -/turf/open/floor/prison{ - dir = 5; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/northeast, /area/fiorina/station/medbay) "iLl" = ( /obj/structure/machinery/light/double/blue{ @@ -14479,9 +11578,7 @@ pixel_x = 10; pixel_y = 13 }, -/turf/open/floor/prison{ - icon_state = "yellowfull" - }, +/turf/open/floor/prison/yellowfull, /area/fiorina/station/lowsec) "iLJ" = ( /obj/effect/spawner/random/tool, @@ -14498,33 +11595,22 @@ dir = 4; pixel_y = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/station/medbay) "iMN" = ( /obj/structure/bed/chair/office/dark{ dir = 4; layer = 3.25 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/tumor/ice_lab) "iNk" = ( /obj/structure/largecrate/random, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/civres) "iNt" = ( /obj/item/device/whistle, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "iOa" = ( /obj/structure/machinery/floodlight/landing/floor, @@ -14533,30 +11619,20 @@ "iON" = ( /obj/structure/closet/bombcloset, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/fiorina/tumor/aux_engi) "iOX" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/east, /area/fiorina/station/botany) "iOY" = ( -/turf/open/floor/prison{ - dir = 6; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/southeast, /area/fiorina/tumor/ice_lab) "iPv" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/computer/cameras{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/fiorina/oob) "iPx" = ( /obj/item/device/flashlight/lamp/tripod, @@ -14565,9 +11641,7 @@ "iPz" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/storage/donut_box/empty, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/fiorina/station/security) "iQj" = ( /obj/structure/machinery/photocopier, @@ -14576,9 +11650,7 @@ pixel_x = 10; pixel_y = -3 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/civres) "iQz" = ( /obj/structure/stairs/perspective{ @@ -14588,9 +11660,7 @@ /area/fiorina/station/botany) "iQH" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate, /area/fiorina/station/botany) "iQJ" = ( /obj/structure/flora/pottedplant{ @@ -14615,10 +11685,7 @@ pixel_x = -10; pixel_y = 13 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/west, /area/fiorina/tumor/aux_engi) "iRG" = ( /obj/structure/surface/table/reinforced/prison, @@ -14631,16 +11698,10 @@ /turf/open/floor/carpet, /area/fiorina/station/civres_blue) "iRI" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreencorner" - }, +/turf/open/floor/prison/whitegreencorner/east, /area/fiorina/tumor/ice_lab) "iSg" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/west, /area/fiorina/station/flight_deck) "iSu" = ( /turf/closed/wall/prison{ @@ -14650,15 +11711,10 @@ /area/fiorina/station/park) "iSw" = ( /obj/structure/machinery/disposal, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/transit_hub) "iSR" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/west, /area/fiorina/oob) "iSW" = ( /obj/structure/surface/table/reinforced/prison, @@ -14667,15 +11723,10 @@ desc = "Someone has crossed out the Space from Space Cleaner and written in Surgery. 'Do not remove under punishment of death!!!' is scrawled on the back."; name = "Surgery Cleaner" }, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/fiorina/station/medbay) "iTj" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/north, /area/fiorina/station/security) "iTm" = ( /turf/open/auto_turf/sand/layer1, @@ -14684,9 +11735,7 @@ /obj/structure/closet/basketball, /obj/item/storage/pill_bottle/tramadol/skillless, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/fiorina/station/research_cells) "iTs" = ( /obj/structure/stairs/perspective{ @@ -14699,21 +11748,13 @@ /area/fiorina/station/botany) "iTt" = ( /obj/structure/machinery/landinglight/ds2, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/lz/near_lzII) "iTE" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/prison/darkyellowcorners2/west, /area/fiorina/station/flight_deck) "iTJ" = ( -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenblue" - }, +/turf/open/floor/prison/greenblue/northwest, /area/fiorina/station/botany) "iTK" = ( /obj/structure/largecrate/random/barrel/yellow, @@ -14726,28 +11767,21 @@ /obj/effect/decal/medical_decals{ icon_state = "triagedecalbottomright" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "iUc" = ( /obj/structure/machinery/light/double/blue{ dir = 1; pixel_y = 21 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/medbay) "iUr" = ( /obj/item/shard{ icon_state = "large"; name = "ice shard" }, -/turf/open/floor/prison{ - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen, /area/fiorina/tumor/ice_lab) "iUB" = ( /obj/structure/machinery/light/double/blue{ @@ -14775,10 +11809,7 @@ dir = 1; pixel_y = 21 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/west, /area/fiorina/station/park) "iVv" = ( /obj/structure/blocker/invisible_wall, @@ -14799,19 +11830,13 @@ pixel_x = -10; pixel_y = 13 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/west, /area/fiorina/station/medbay) "iWp" = ( /obj/item/reagent_container/food/drinks/coffee{ name = "\improper paper cup" }, -/turf/open/floor/prison{ - dir = 5; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/northeast, /area/fiorina/station/lowsec) "iWq" = ( /obj/structure/platform/kutjevo/smooth{ @@ -14829,17 +11854,11 @@ dir = 1; icon_state = "p_stair_full" }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/west, /area/fiorina/station/central_ring) "iXq" = ( /obj/item/stool, -/turf/open/floor/prison{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/east, /area/fiorina/station/lowsec) "iXs" = ( /obj/structure/stairs/perspective{ @@ -14853,38 +11872,31 @@ /obj/structure/bed/chair/comfy{ dir = 4 }, -/turf/open/floor/prison{ - dir = 6; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/southeast, /area/fiorina/station/civres_blue) "iXV" = ( /obj/structure/closet/l3closet/general, /turf/open/floor/prison, /area/fiorina/tumor/aux_engi) "iYa" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "bluecorner" - }, +/turf/open/floor/prison/bluecorner/west, /area/fiorina/station/chapel) "iYe" = ( /obj/item/tool/wirecutters, -/turf/open/floor/prison{ - dir = 1; - icon_state = "bluecorner" - }, +/turf/open/floor/prison/bluecorner/north, /area/fiorina/station/power_ring) "iYw" = ( /turf/closed/wall/r_wall/prison_unmeltable, /area/fiorina/station/central_ring) "iYJ" = ( /obj/structure/machinery/power/apc, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/fiorina/tumor/civres) +"iYQ" = ( +/obj/item/fuel_cell, +/obj/structure/surface/rack, +/turf/open/floor/prison, +/area/fiorina/maintenance) "iZm" = ( /obj/item/trash/chips, /obj/structure/machinery/light/double/blue{ @@ -14892,10 +11904,7 @@ pixel_x = 10; pixel_y = 13 }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/fiorina/tumor/servers) "jaB" = ( /obj/structure/platform/kutjevo/smooth{ @@ -14910,22 +11919,14 @@ /obj/structure/holohoop{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/north, /area/fiorina/station/lowsec) "jbm" = ( /obj/item/clothing/under/color/orange, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/lowsec) "jbq" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/east, /area/fiorina/station/medbay) "jbu" = ( /obj/structure/window/reinforced{ @@ -14945,9 +11946,7 @@ /obj/item/clothing/under/marine/ua_riot, /obj/item/clothing/suit/storage/marine/veteran/ua_riot, /obj/item/prop/helmetgarb/riot_shield, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/fiorina/station/security) "jbU" = ( /obj/structure/surface/table/reinforced/prison, @@ -14966,10 +11965,7 @@ dir = 8; health = 80 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/station/medbay) "jcv" = ( /obj/structure/bed/chair/comfy{ @@ -14990,24 +11986,16 @@ dir = 1; pixel_y = 21 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/servers) "jdn" = ( /obj/structure/machinery/vending/snack, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/tumor/ice_lab) "jew" = ( /obj/structure/largecrate/supply/ammo, /obj/item/storage/fancy/crayons, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/fiorina/station/telecomm/lz1_cargo) "jeL" = ( /obj/structure/platform{ @@ -15019,43 +12007,31 @@ /obj/structure/platform_decoration{ dir = 5 }, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, +/turf/open/floor/prison/bluefull, /area/fiorina/station/chapel) "jfc" = ( /obj/item/stack/rods, /turf/open/floor/plating/prison, /area/fiorina/station/research_cells) "jfd" = ( -/turf/open/gm/river{ - name = "pool" - }, +/turf/open/gm/river/pool, /area/fiorina/station/park) "jfp" = ( /obj/structure/barricade/handrail, /obj/structure/barricade/handrail{ dir = 8 }, -/turf/open/organic/grass{ - name = "astroturf" - }, +/turf/open/organic/grass/astroturf, /area/fiorina/station/research_cells) "jft" = ( /obj/structure/barricade/sandbags{ icon_state = "sandbag_0"; pixel_y = -14 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/fiorina/station/flight_deck) "jfO" = ( -/turf/open/floor/prison{ - dir = 6; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/southeast, /area/fiorina/station/central_ring) "jfT" = ( /obj/structure/platform{ @@ -15076,31 +12052,22 @@ pixel_x = 10; pixel_y = -3 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/flight_deck) "jgL" = ( /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/fiorina/station/botany) "jhl" = ( /obj/structure/closet/emcloset, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/medbay) "jhp" = ( /obj/effect/spawner/random/tool, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/transit_hub) "jhG" = ( /turf/closed/shuttle/ert{ @@ -15113,10 +12080,7 @@ pixel_x = 12 }, /obj/item/clothing/suit/armor/bulletproof/badge, -/turf/open/floor/prison{ - dir = 6; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/southeast, /area/fiorina/station/lowsec) "jiq" = ( /obj/structure/lz_sign/prison_sign, @@ -15137,16 +12101,11 @@ /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/fiorina/station/research_cells) "jiA" = ( /obj/item/storage/firstaid/regular, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/station/medbay) "jiV" = ( /obj/structure/surface/table/reinforced/prison, @@ -15174,10 +12133,7 @@ /obj/item/storage/toolbox/emergency{ pixel_y = 4 }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/northwest, /area/fiorina/station/research_cells) "jjs" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony/autoname{ @@ -15194,10 +12150,7 @@ /turf/open/floor/plating/prison, /area/fiorina/tumor/fiberbush) "jjW" = ( -/turf/open/floor/prison/chapel_carpet{ - dir = 1; - icon_state = "doubleside" - }, +/turf/open/floor/prison/chapel_carpet/doubleside/north, /area/fiorina/station/chapel) "jkg" = ( /obj/structure/largecrate/supply, @@ -15205,16 +12158,12 @@ /area/fiorina/maintenance) "jkj" = ( /obj/structure/largecrate/random/case/small, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/fiorina/tumor/aux_engi) "jkw" = ( /obj/structure/machinery/computer/atmos_alert, /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/fiberbush) "jkW" = ( /obj/structure/dropship_equipment/fulton_system, @@ -15234,17 +12183,12 @@ icon_state = "abed" }, /obj/item/card/id/silver/clearance_badge, -/turf/open/floor/prison{ - dir = 10; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/southwest, /area/fiorina/station/lowsec) "jlq" = ( /obj/item/device/flashlight/lamp/tripod, /obj/structure/machinery/light/double/blue, -/turf/open/floor/prison{ - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow, /area/fiorina/station/lowsec) "jls" = ( /obj/item/reagent_container/glass/bucket/janibucket, @@ -15252,10 +12196,7 @@ /area/fiorina/station/park) "jlB" = ( /obj/item/stack/nanopaste, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/north, /area/fiorina/station/civres_blue) "jlH" = ( /obj/structure/platform/kutjevo/smooth{ @@ -15271,18 +12212,13 @@ /obj/structure/machinery/cm_vending/sorted/marine_food{ name = "\improper Fiorina Engineering Canteen Vendor" }, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, +/turf/open/floor/prison/bluefull, /area/fiorina/station/power_ring) "jmp" = ( /obj/item/ammo_magazine/handful/shotgun/incendiary{ unacidable = 1 }, -/turf/open/organic/grass{ - desc = "It'll get in your shoes no matter what you do."; - name = "astroturf" - }, +/turf/open/organic/grass/astroturf, /area/fiorina/tumor/aux_engi) "jmr" = ( /obj/structure/platform{ @@ -15299,18 +12235,13 @@ /obj/structure/machinery/shower{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/fiorina/station/lowsec) "jmG" = ( /turf/closed/wall/r_wall/prison_unmeltable, /area/fiorina/station/research_cells) "jna" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/prison/whitepurplecorner/west, /area/fiorina/station/research_cells) "jnd" = ( /obj/structure/machinery/light/double/blue{ @@ -15322,9 +12253,7 @@ /area/fiorina/lz/near_lzII) "jnm" = ( /obj/structure/machinery/vending/sovietsoda, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/civres_blue) "jnQ" = ( /obj/structure/machinery/light/double/blue{ @@ -15332,22 +12261,14 @@ pixel_x = -10; pixel_y = -3 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/disco) "jnU" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/north, /area/fiorina/tumor/servers) "jnX" = ( /obj/item/storage/pill_bottle/spaceacillin/skillless, -/turf/open/floor/prison{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/northeast, /area/fiorina/station/research_cells) "jor" = ( /obj/effect/spawner/random/attachment, @@ -15368,9 +12289,7 @@ dir = 8; layer = 3.5 }, -/turf/open/organic/grass{ - name = "astroturf" - }, +/turf/open/organic/grass/astroturf, /area/fiorina/station/park) "joJ" = ( /obj/structure/bed/roller, @@ -15398,17 +12317,13 @@ /obj/item/clothing/head/soft/ferret{ pixel_y = 7 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/fiorina/tumor/ship) "jpx" = ( /obj/item/ammo_casing{ icon_state = "casing_8" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/lowsec) "jpN" = ( /obj/structure/sign/prop3{ @@ -15425,16 +12340,11 @@ pixel_x = -10; pixel_y = -3 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/west, /area/fiorina/station/medbay) "jpW" = ( /obj/item/reagent_container/food/drinks/cans/souto/cherry, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/central_ring) "jqs" = ( /obj/structure/disposalpipe/segment{ @@ -15464,10 +12374,7 @@ /area/fiorina/station/disco) "jqM" = ( /obj/structure/reagent_dispensers/watertank, -/turf/open/floor/prison{ - dir = 4; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/east, /area/fiorina/station/botany) "jri" = ( /obj/structure/closet/secure_closet/freezer/fridge/groceries, @@ -15476,44 +12383,30 @@ pixel_x = 10; pixel_y = -3 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/fiorina/tumor/civres) "jrN" = ( -/turf/open/floor/prison{ - icon_state = "platingdmg1" - }, +/turf/open/floor/prison/platingdmg1, /area/fiorina/tumor/aux_engi) "jrO" = ( /obj/structure/platform_decoration{ dir = 4 }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/northwest, /area/fiorina/station/power_ring) "jrT" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/recharger, /obj/item/clothing/accessory/holobadge/cord, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/fiorina/lz/near_lzI) "jsf" = ( /obj/structure/closet/crate/trashcart, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/chapel) "jsp" = ( /obj/effect/spawner/random/toolbox, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/civres) "jsu" = ( /obj/structure/surface/table/reinforced/prison{ @@ -15525,18 +12418,14 @@ pixel_x = 14; pixel_y = 7 }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/fiorina/station/research_cells) "jsU" = ( /obj/item/stack/tile/plasteel{ pixel_x = 3; pixel_y = 4 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/civres_blue) "jta" = ( /obj/structure/bed{ @@ -15549,24 +12438,18 @@ icon_state = "pottedplant_29"; pixel_y = 6 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/security) "jtM" = ( /obj/effect/alien/weeds/node, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/aux_engi) "juX" = ( /obj/structure/machinery/door/poddoor/almayer{ density = 0; dir = 4 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/park) "jva" = ( /obj/structure/stairs/perspective{ @@ -15578,9 +12461,7 @@ /area/fiorina/station/disco) "jvi" = ( /obj/structure/closet/wardrobe/orange, -/turf/open/floor/prison{ - icon_state = "yellowfull" - }, +/turf/open/floor/prison/yellowfull, /area/fiorina/station/lowsec) "jvm" = ( /obj/item/storage/surgical_tray, @@ -15589,9 +12470,7 @@ pixel_x = -4; pixel_y = 12 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/fiorina/station/medbay) "jvy" = ( /mob/living/simple_animal/hostile/carp{ @@ -15616,35 +12495,25 @@ /area/fiorina/lz/near_lzII) "jxm" = ( /obj/item/trash/hotdog, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/medbay) "jyo" = ( /obj/structure/machinery/light/double/blue, -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/west, /area/fiorina/station/power_ring) "jyv" = ( /obj/structure/stairs/perspective{ dir = 8; icon_state = "p_stair_full" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/security) "jyF" = ( /obj/structure/sink{ dir = 8; pixel_x = -12 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/southwest, /area/fiorina/station/lowsec) "jyM" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_core, @@ -15660,31 +12529,21 @@ /area/fiorina/station/central_ring) "jyY" = ( /obj/item/explosive/grenade/high_explosive/frag, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/fiorina/tumor/servers) "jzN" = ( /obj/structure/machinery/vending/cigarette/colony, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/civres_blue) "jzP" = ( -/turf/open/floor/prison{ - icon_state = "bluecorner" - }, +/turf/open/floor/prison/bluecorner, /area/fiorina/station/power_ring) "jAF" = ( /obj/effect/decal/cleanable/blood/drip, /obj/effect/decal/medical_decals{ icon_state = "triagedecalleft" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/station/medbay) "jAW" = ( /obj/structure/largecrate/supply/ammo, @@ -15697,10 +12556,7 @@ pixel_x = 10; pixel_y = -3 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "jBv" = ( /obj/structure/bed/sofa/vert/grey/bot{ @@ -15713,10 +12569,7 @@ /turf/open/floor/wood, /area/fiorina/station/park) "jCe" = ( -/turf/open/floor/prison{ - dir = 5; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/northeast, /area/fiorina/tumor/servers) "jCt" = ( /obj/structure/machinery/light/small{ @@ -15725,24 +12578,17 @@ pixel_y = 10 }, /obj/structure/largecrate/random/barrel/white, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/fiorina/tumor/ship) "jCy" = ( /obj/structure/prop/dam/crane{ icon_state = "tractor_damaged" }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/fiorina/station/telecomm/lz1_cargo) "jCA" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, -/turf/open/organic/grass{ - desc = "It'll get in your shoes no matter what you do."; - name = "astroturf" - }, +/turf/open/organic/grass/astroturf, /area/fiorina/tumor/fiberbush) "jCO" = ( /obj/structure/platform{ @@ -15758,10 +12604,7 @@ /obj/structure/bed/chair/comfy{ dir = 4 }, -/turf/open/floor/prison{ - dir = 5; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/northeast, /area/fiorina/station/disco) "jDR" = ( /obj/structure/machinery/light/double/blue{ @@ -15772,10 +12615,7 @@ /area/fiorina/tumor/aux_engi) "jEa" = ( /obj/effect/landmark/corpsespawner/engineer, -/turf/open/floor/prison{ - dir = 1; - icon_state = "bluecorner" - }, +/turf/open/floor/prison/bluecorner/north, /area/fiorina/station/power_ring) "jEr" = ( /obj/structure/machinery/vending/snack, @@ -15783,16 +12623,11 @@ /area/fiorina/lz/near_lzII) "jEy" = ( /obj/structure/machinery/iv_drip, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "jEz" = ( /obj/item/device/flashlight/lamp/tripod, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/civres) "jEK" = ( /obj/structure/bed/chair/office/light{ @@ -15809,9 +12644,7 @@ /obj/structure/barricade/metal/wired{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/lowsec) "jFh" = ( /obj/structure/stairs/perspective{ @@ -15829,19 +12662,14 @@ /area/fiorina/tumor/aux_engi) "jFz" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/north, /area/fiorina/tumor/aux_engi) "jFD" = ( /obj/structure/barricade/metal{ health = 250; icon_state = "metal_1" }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/fiorina/tumor/ice_lab) "jFO" = ( /obj/effect/landmark/nightmare{ @@ -15851,15 +12679,10 @@ /area/fiorina/station/park) "jFP" = ( /obj/effect/landmark/monkey_spawn, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/ice_lab) "jGf" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/fiorina/station/telecomm/lz1_cargo) "jGs" = ( /obj/structure/toilet{ @@ -15867,10 +12690,7 @@ pixel_y = 8 }, /obj/structure/blocker/invisible_wall, -/turf/open/floor/prison{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/northeast, /area/fiorina/oob) "jGz" = ( /obj/structure/closet{ @@ -15879,35 +12699,24 @@ }, /obj/effect/spawner/random/tool, /obj/item/clothing/gloves/combat, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/fiorina/station/research_cells) "jGC" = ( /obj/structure/platform{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/power_ring) "jHj" = ( /obj/structure/machinery/light/double/blue, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/power_ring) "jHp" = ( /obj/structure/bed/sofa/south/grey/left, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/fiorina/station/transit_hub) "jHz" = ( -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/servers) "jHC" = ( /obj/structure/surface/rack, @@ -15920,32 +12729,23 @@ icon_state = "p_stair_full" }, /obj/structure/platform, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/botany) "jHU" = ( /obj/structure/largecrate/random/case/double, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/station/medbay) "jHV" = ( /obj/item/paper, /obj/structure/inflatable/door, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/fiorina/station/research_cells) "jIw" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/computer/cameras{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/fiorina/station/security) "jIz" = ( /obj/item/stack/sheet/metal/medium_stack, @@ -15986,27 +12786,18 @@ /area/fiorina/station/park) "jJZ" = ( /obj/item/ammo_magazine/shotgun/buckshot, -/turf/open/organic/grass{ - desc = "It'll get in your shoes no matter what you do."; - name = "astroturf" - }, +/turf/open/organic/grass/astroturf, /area/fiorina/station/central_ring) "jKv" = ( /obj/item/tool/warning_cone, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/fiorina/station/telecomm/lz1_cargo) "jKz" = ( /obj/effect/decal/cleanable/blood/oil, /obj/structure/machinery/landinglight/ds1/delaytwo{ dir = 1 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/fiorina/lz/near_lzI) "jKI" = ( /obj/structure/platform/kutjevo/smooth{ @@ -16037,10 +12828,7 @@ dir = 8; icon_state = "cartridge_2" }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/prison/darkyellowcorners2/west, /area/fiorina/station/telecomm/lz1_cargo) "jLD" = ( /obj/structure/platform{ @@ -16049,9 +12837,7 @@ /obj/structure/machinery/cm_vending/sorted/tech/comp_storage{ layer = 3.5 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/power_ring) "jMf" = ( /obj/item/stack/tile/plasteel{ @@ -16061,10 +12847,7 @@ /turf/open/floor/plating/prison, /area/fiorina/station/research_cells) "jMh" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/east, /area/fiorina/station/medbay) "jMk" = ( /obj/item/tool/screwdriver, @@ -16072,27 +12855,20 @@ /area/fiorina/tumor/servers) "jMv" = ( /obj/item/tool/wrench, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/power_ring) "jMH" = ( /obj/structure/barricade/metal/wired{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/fiorina/tumor/ship) "jNi" = ( /obj/item/ammo_casing{ dir = 2; icon_state = "casing_5" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/tumor/ice_lab) "jNl" = ( /obj/structure/ice/thin/indestructible{ @@ -16102,10 +12878,7 @@ /turf/open/ice/noweed, /area/fiorina/station/research_cells) "jNw" = ( -/turf/open/floor/prison{ - dir = 9; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/northwest, /area/fiorina/tumor/servers) "jOb" = ( /obj/structure/stairs/perspective{ @@ -16124,19 +12897,13 @@ layer = 2.5; pixel_y = -11 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/west, /area/fiorina/station/flight_deck) "jOv" = ( /obj/structure/platform_decoration{ dir = 8 }, -/turf/open/floor/prison{ - dir = 5; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/northeast, /area/fiorina/station/power_ring) "jOY" = ( /obj/structure/surface/table/reinforced/prison, @@ -16144,9 +12911,7 @@ dir = 8 }, /obj/item/stack/cable_coil, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/security) "jPK" = ( /turf/closed/shuttle/elevator{ @@ -16157,38 +12922,24 @@ /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/station/research_cells) "jPY" = ( /obj/structure/machinery/door/airlock/almayer/generic{ name = "Residential Apartment" }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/fiorina/tumor/servers) "jQc" = ( /obj/item/organ/lungs, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/telecomm/lz1_cargo) "jQs" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/west, /area/fiorina/station/medbay) "jQy" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/fiorina/tumor/civres) "jQS" = ( /obj/structure/closet/secure_closet/guncabinet{ @@ -16196,9 +12947,7 @@ }, /obj/item/clothing/under/marine/ua_riot, /obj/item/clothing/suit/storage/marine/veteran/ua_riot, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/fiorina/station/security) "jRf" = ( /obj/structure/girder/displaced, @@ -16228,9 +12977,7 @@ /obj/structure/platform_decoration{ dir = 6 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/transit_hub) "jRF" = ( /obj/item/stack/sheet/metal, @@ -16245,10 +12992,7 @@ icon_state = "abed" }, /obj/item/reagent_container/food/drinks/flask/marine, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/southwest, /area/fiorina/station/research_cells) "jSD" = ( /obj/item/storage/toolbox/mechanical, @@ -16265,33 +13009,21 @@ "jSU" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/recharger, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "jSZ" = ( /obj/structure/barricade/wooden{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/fiorina/station/telecomm/lz1_cargo) "jTo" = ( /obj/item/prop/helmetgarb/gunoil, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/east, /area/fiorina/station/medbay) "jTD" = ( /obj/structure/reagent_dispensers/water_cooler/stacks, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "jTJ" = ( /turf/closed/wall/r_wall/prison, @@ -16305,18 +13037,13 @@ pixel_x = -8; pixel_y = 4 }, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, +/turf/open/floor/prison/bluefull, /area/fiorina/station/power_ring) "jUa" = ( /obj/structure/platform_decoration{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/tumor/ice_lab) "jUs" = ( /obj/structure/machinery/light/double/blue{ @@ -16334,26 +13061,18 @@ /area/fiorina/station/park) "jUP" = ( /obj/item/trash/c_tube, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/fiorina/station/telecomm/lz1_cargo) "jVj" = ( /obj/structure/bed/chair, /obj/structure/extinguisher_cabinet{ pixel_y = 32 }, -/turf/open/floor/prison{ - icon_state = "yellowfull" - }, +/turf/open/floor/prison/yellowfull, /area/fiorina/station/disco) "jVt" = ( /obj/structure/machinery/vending/coffee, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/tumor/ice_lab) "jVE" = ( /obj/structure/surface/table/reinforced/prison, @@ -16370,59 +13089,41 @@ /turf/open/floor/plating/prison, /area/fiorina/lz/near_lzI) "jVM" = ( -/turf/open/floor/prison{ - icon_state = "green" - }, +/turf/open/floor/prison/green, /area/fiorina/station/botany) "jWg" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_nest, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/aux_engi) "jWk" = ( /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/west, /area/fiorina/station/power_ring) "jWy" = ( /obj/structure/barricade/handrail, /obj/structure/barricade/handrail{ dir = 4 }, -/turf/open/organic/grass{ - name = "astroturf" - }, +/turf/open/organic/grass/astroturf, /area/fiorina/station/research_cells) "jWE" = ( /obj/item/trash/used_stasis_bag{ desc = "Wow, instant sand. They really have everything in space."; name = "Insta-Sand! bag" }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/west, /area/fiorina/station/civres_blue) "jWI" = ( -/turf/open/floor/prison{ - dir = 9; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/northwest, /area/fiorina/station/research_cells) "jWY" = ( /obj/structure/bed{ icon_state = "abed" }, /obj/item/storage/fancy/cigar/tarbacks, -/turf/open/floor/prison{ - dir = 6; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/southeast, /area/fiorina/station/research_cells) "jXj" = ( /obj/item/stack/rods, @@ -16444,15 +13145,11 @@ /area/fiorina/tumor/aux_engi) "jYm" = ( /obj/structure/machinery/constructable_frame, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/lowsec) "jYn" = ( /obj/structure/platform, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/transit_hub) "jYs" = ( /obj/structure/machinery/door/airlock/prison_hatch/autoname{ @@ -16465,33 +13162,21 @@ dir = 8 }, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/west, /area/fiorina/lz/near_lzI) "jYK" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/fiorina/station/civres_blue) "jYM" = ( /obj/item/trash/chips, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/station/research_cells) "jYU" = ( /obj/structure/stairs/perspective{ dir = 1; icon_state = "p_stair_full" }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/east, /area/fiorina/station/telecomm/lz1_tram) "jYV" = ( /obj/structure/stairs/perspective{ @@ -16514,22 +13199,13 @@ /area/fiorina/tumor/ice_lab) "jZk" = ( /obj/structure/largecrate/random/case/double, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/fiorina/station/telecomm/lz1_tram) "kag" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/east, /area/fiorina/station/power_ring) "kat" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/prison/green/north, /area/fiorina/station/botany) "kaw" = ( /obj/structure/stairs/perspective{ @@ -16537,17 +13213,12 @@ icon_state = "p_stair_full" }, /obj/structure/platform, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/security) "kaF" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/reagent_container/food/drinks/bottle/sake, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/fiorina/lz/near_lzI) "kaO" = ( /obj/structure/machinery/light/double/blue{ @@ -16566,9 +13237,7 @@ /area/fiorina/tumor/aux_engi) "kbh" = ( /obj/item/explosive/grenade/incendiary/molotov, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/lowsec) "kbi" = ( /obj/item/ammo_casing{ @@ -16580,17 +13249,11 @@ /area/fiorina/station/park) "kbj" = ( /obj/structure/surface/rack, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/fiorina/station/telecomm/lz1_cargo) "kbo" = ( /obj/item/device/flashlight/lamp/tripod, -/turf/open/floor/prison{ - dir = 8; - icon_state = "greenblue" - }, +/turf/open/floor/prison/greenblue/west, /area/fiorina/station/botany) "kbt" = ( /obj/structure/janitorialcart, @@ -16611,10 +13274,7 @@ /area/fiorina/tumor/fiberbush) "kdq" = ( /obj/structure/machinery/vending/hydronutrients, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/fiorina/station/botany) "kds" = ( /obj/item/clothing/suit/storage/hazardvest, @@ -16653,27 +13313,18 @@ /area/fiorina/station/transit_hub) "kgp" = ( /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/prison{ - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow, /area/fiorina/station/lowsec) "kgG" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/east, /area/fiorina/station/telecomm/lz1_cargo) "kgN" = ( /obj/structure/machinery/light/double/blue, -/turf/open/floor/prison{ - icon_state = "yellowfull" - }, +/turf/open/floor/prison/yellowfull, /area/fiorina/station/lowsec) "kgQ" = ( /obj/item/stool, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/lowsec) "kgT" = ( /obj/structure/surface/table/reinforced/prison, @@ -16682,23 +13333,15 @@ dir = 1; pixel_y = 21 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/station/medbay) "kgY" = ( /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/fiorina/station/botany) "khd" = ( /obj/effect/spawner/random/tool, -/turf/open/floor/prison{ - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2, /area/fiorina/tumor/aux_engi) "khu" = ( /obj/structure/prop/structure_lattice{ @@ -16707,23 +13350,15 @@ icon = 'icons/turf/elevator.dmi'; icon_state = "wall_broke" }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/fiorina/station/civres_blue) "khw" = ( /obj/effect/spawner/random/gun/rifle/midchance, -/turf/open/floor/prison{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/west, /area/fiorina/station/power_ring) "khY" = ( /obj/structure/closet/secure_closet/medical3, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "kid" = ( /obj/item/ammo_casing{ @@ -16733,17 +13368,11 @@ dir = 4; flipped = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/station/medbay) "kii" = ( /obj/effect/alien/weeds/node, -/turf/open/floor/prison{ - dir = 9; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/northwest, /area/fiorina/tumor/ice_lab) "kil" = ( /obj/structure/machinery/light/double/blue, @@ -16755,15 +13384,10 @@ /area/fiorina/station/civres_blue) "kiT" = ( /obj/item/stack/sheet/metal, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/fiorina/station/research_cells) "kjt" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/north, /area/fiorina/station/research_cells) "kjP" = ( /obj/structure/surface/table/reinforced/prison, @@ -16775,33 +13399,23 @@ /area/fiorina/station/security/wardens) "kjT" = ( /obj/structure/flora/grass/tallgrass/jungle/corner, -/turf/open/organic/grass{ - name = "astroturf" - }, +/turf/open/organic/grass/astroturf, /area/fiorina/station/park) "kjX" = ( /obj/structure/bed/chair/comfy, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/fiorina/station/security) "kka" = ( /obj/item/stack/sheet/metal{ amount = 5 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/fiorina/lz/near_lzI) "kke" = ( /obj/effect/decal/medical_decals{ icon_state = "triagedecaldir" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "kkU" = ( /obj/structure/monorail{ @@ -16819,15 +13433,11 @@ /obj/structure/platform_decoration{ dir = 5 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/botany) "klh" = ( /obj/structure/machinery/vending/security, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/security) "klp" = ( /turf/closed/shuttle/ert{ @@ -16837,9 +13447,7 @@ /area/fiorina/tumor/ship) "klt" = ( /obj/structure/closet/secure_closet/freezer/fridge/full, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/fiorina/station/power_ring) "klB" = ( /obj/structure/machinery/landinglight/ds2/delayone, @@ -16856,27 +13464,20 @@ /obj/item/storage/donut_box{ pixel_y = 6 }, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, +/turf/open/floor/prison/bluefull, /area/fiorina/station/power_ring) "kmm" = ( /obj/structure/bed/chair/comfy{ dir = 1 }, -/turf/open/floor/prison{ - dir = 6; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/southeast, /area/fiorina/station/disco) "kmn" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_29"; pixel_y = 6 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/security/wardens) "kmL" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic/autoname{ @@ -16895,9 +13496,7 @@ /area/fiorina/station/security/wardens) "knb" = ( /obj/item/device/flashlight/lamp/tripod, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/fiorina/station/research_cells) "knh" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, @@ -16915,41 +13514,28 @@ /obj/structure/machinery/computer/station_alert{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/tumor/ice_lab) "knY" = ( /obj/structure/machinery/door/poddoor/almayer/locked{ indestructible = 1; name = "launch bay door" }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/east, /area/fiorina/oob) "kob" = ( /obj/item/ammo_casing{ icon_state = "cartridge_2" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/central_ring) "kok" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/fiorina/station/transit_hub) "kon" = ( /obj/structure/surface/rack, /obj/item/stack/sheet/wood/medium_stack, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/fiorina/maintenance) "kor" = ( /obj/structure/bed/chair{ @@ -16961,28 +13547,12 @@ /obj/structure/window/framed/prison/reinforced/hull, /turf/open/floor/plating/prison, /area/fiorina/tumor/fiberbush) -"koy" = ( -/obj/structure/platform{ - dir = 1 - }, -/obj/item/fuelCell, -/obj/structure/platform{ - dir = 4 - }, -/obj/structure/platform_decoration{ - dir = 9 - }, -/turf/open/floor/plating/prison, -/area/fiorina/station/lowsec) "koH" = ( /obj/structure/surface/table/almayer, /obj/item/clipboard, /obj/item/paper, /obj/item/tool/pen, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "koK" = ( /obj/effect/decal{ @@ -16992,26 +13562,17 @@ pixel_y = -11 }, /obj/structure/closet/bombcloset, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/fiorina/station/flight_deck) "koY" = ( /obj/structure/platform_decoration{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "kpe" = ( /obj/item/device/flashlight/lamp/tripod, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/west, /area/fiorina/station/medbay) "kpp" = ( /obj/item/trash/popcorn, @@ -17021,36 +13582,27 @@ /turf/open/floor/plating/prison, /area/fiorina/tumor/aux_engi) "kpq" = ( -/turf/open/floor/prison{ - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen, /area/fiorina/tumor/ice_lab) "kpu" = ( /obj/structure/closet/wardrobe/orange, /obj/item/explosive/mine/pmc, /obj/effect/spawner/random/gun/smg, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison{ - icon_state = "yellowfull" - }, +/turf/open/floor/prison/yellowfull, /area/fiorina/station/lowsec) "kpv" = ( /obj/structure/pipes/standard/simple/visible{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/station/medbay) "kpH" = ( /obj/effect/decal/medical_decals{ icon_state = "cryomid" }, /obj/structure/machinery/light/double/blue, -/turf/open/floor/prison{ - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen, /area/fiorina/station/medbay) "kpR" = ( /obj/structure/surface/table/woodentable/fancy, @@ -17059,65 +13611,45 @@ pixel_x = 1; pixel_y = 13 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/fiorina/station/chapel) "kqy" = ( /obj/structure/stairs/perspective{ icon_state = "p_stair_sn_full_cap" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/ice_lab) "kqC" = ( /turf/closed/wall/prison, /area/fiorina/station/lowsec) "kqJ" = ( /obj/item/trash/used_stasis_bag, -/turf/open/floor/prison{ - dir = 5; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/northeast, /area/fiorina/lz/near_lzI) "krb" = ( /obj/structure/bookcase/manuals/engineering, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/civres) "krn" = ( /obj/structure/barricade/handrail/type_b{ dir = 8; layer = 3.5 }, -/turf/open/organic/grass{ - name = "astroturf" - }, +/turf/open/organic/grass/astroturf, /area/fiorina/tumor/servers) "krE" = ( /obj/structure/bed/chair/comfy{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/southwest, /area/fiorina/station/flight_deck) "ksu" = ( /obj/structure/machinery/light/double/blue, -/turf/open/floor/prison{ - dir = 10; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/southwest, /area/fiorina/station/disco) "ksE" = ( /obj/structure/inflatable, -/turf/open/floor/prison{ - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow, /area/fiorina/station/lowsec) "ksL" = ( /obj/structure/stairs/perspective{ @@ -17132,9 +13664,7 @@ dir = 4; layer = 3.5 }, -/turf/open/organic/grass{ - name = "astroturf" - }, +/turf/open/organic/grass/astroturf, /area/fiorina/tumor/servers) "ksY" = ( /obj/effect/decal/cleanable/blood/oil, @@ -17142,9 +13672,7 @@ /area/fiorina/station/flight_deck) "ktq" = ( /obj/structure/machinery/light/double/blue, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/fiorina/station/park) "ktv" = ( /obj/item/trash/sosjerky, @@ -17152,18 +13680,14 @@ /area/fiorina/station/security) "ktC" = ( /obj/item/explosive/grenade/high_explosive/frag, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/fiorina/station/security) "kue" = ( /obj/structure/machinery/computer3/server/rack, /obj/structure/window{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/fiorina/tumor/servers) "kvg" = ( /obj/structure/machinery/light/double/blue{ @@ -17171,9 +13695,7 @@ pixel_x = 10; pixel_y = -3 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/fiorina/tumor/servers) "kvh" = ( /obj/structure/flora/grass/tallgrass/jungle/corner{ @@ -17186,17 +13708,12 @@ /obj/structure/barricade/handrail/type_b{ layer = 3.5 }, -/turf/open/organic/grass{ - name = "astroturf" - }, +/turf/open/organic/grass/astroturf, /area/fiorina/station/park) "kvu" = ( /obj/item/weapon/gun/rifle/m16, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/fiorina/station/telecomm/lz1_cargo) "kvx" = ( /obj/effect/landmark/monkey_spawn, @@ -17209,20 +13726,8 @@ pixel_x = 7; pixel_y = 6 }, -/turf/open/floor/prison{ - icon_state = "blue" - }, +/turf/open/floor/prison/blue, /area/fiorina/station/chapel) -"kwL" = ( -/obj/item/fuelCell, -/obj/structure/platform, -/obj/structure/machinery/light/double/blue{ - dir = 8; - pixel_x = -10; - pixel_y = 13 - }, -/turf/open/floor/plating/prison, -/area/fiorina/station/lowsec) "kwT" = ( /obj/structure/closet/firecloset, /turf/open/floor/plating/prison, @@ -17236,10 +13741,7 @@ pixel_x = -10; pixel_y = 13 }, -/turf/open/floor/prison{ - dir = 6; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/southeast, /area/fiorina/station/civres_blue) "kxf" = ( /obj/item/stack/sheet/wood, @@ -17255,10 +13757,7 @@ /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/tumor/ice_lab) "kxQ" = ( /obj/structure/prop/resin_prop{ @@ -17267,16 +13766,11 @@ /turf/open/floor/plating/prison, /area/fiorina/station/park) "kxU" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "green" - }, +/turf/open/floor/prison/green/southwest, /area/fiorina/station/transit_hub) "kyd" = ( /obj/structure/machinery/vending/cola, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/security/wardens) "kyh" = ( /obj/structure/platform_decoration{ @@ -17285,10 +13779,7 @@ /turf/open/floor/prison, /area/fiorina/station/power_ring) "kyF" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/west, /area/fiorina/station/civres_blue) "kyU" = ( /obj/item/prop/helmetgarb/spacejam_tickets{ @@ -17297,10 +13788,7 @@ pixel_x = 1; pixel_y = -1 }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/northwest, /area/fiorina/station/research_cells) "kyW" = ( /obj/item/stack/sandbags/large_stack, @@ -17324,10 +13812,7 @@ /area/fiorina/station/research_cells) "kzs" = ( /obj/item/stack/sandbags/large_stack, -/turf/open/floor/prison{ - dir = 4; - icon_state = "green" - }, +/turf/open/floor/prison/green/east, /area/fiorina/tumor/civres) "kzx" = ( /obj/structure/machinery/light/double/blue{ @@ -17335,10 +13820,7 @@ pixel_x = 10; pixel_y = 13 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/east, /area/fiorina/station/civres_blue) "kzz" = ( /obj/item/tool/shovel/etool, @@ -17346,10 +13828,7 @@ /area/fiorina/station/civres_blue) "kzB" = ( /obj/effect/decal/cleanable/blood/drip, -/turf/open/floor/prison{ - dir = 5; - icon_state = "green" - }, +/turf/open/floor/prison/green/northeast, /area/fiorina/station/chapel) "kzL" = ( /obj/structure/bed/sofa/south/grey/right, @@ -17357,19 +13836,14 @@ dir = 1; pixel_y = 21 }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/fiorina/station/transit_hub) "kzR" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/computer/cameras{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/fiorina/station/research_cells) "kAc" = ( /obj/structure/surface/table/reinforced/prison, @@ -17380,10 +13854,7 @@ pixel_x = -2; pixel_y = 10 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/fiorina/station/civres_blue) "kAO" = ( /obj/item/folder/yellow, @@ -17391,15 +13862,11 @@ /area/fiorina/tumor/servers) "kBm" = ( /obj/item/device/multitool, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/telecomm/lz1_cargo) "kBt" = ( /obj/item/device/flashlight/lamp/tripod, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/power_ring) "kBE" = ( /obj/item/toy/bikehorn/rubberducky, @@ -17420,16 +13887,10 @@ dir = 1; pixel_y = 21 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/prison/green/north, /area/fiorina/station/chapel) "kCH" = ( -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/northwest, /area/fiorina/tumor/aux_engi) "kCI" = ( /obj/item/weapon/baseballbat/metal, @@ -17441,27 +13902,15 @@ /obj/structure/barricade/handrail/type_b{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "kCS" = ( /obj/structure/surface/rack, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/fiorina/tumor/servers) "kCT" = ( -/obj/structure/toilet{ - dir = 8; - pixel_y = 8 - }, /obj/effect/spawner/random/gun/smg, -/turf/open/floor/prison{ - dir = 5; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/northeast, /area/fiorina/station/lowsec) "kCY" = ( /obj/item/tool/weldingtool, @@ -17471,22 +13920,16 @@ /obj/structure/platform{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/park) "kDw" = ( -/turf/open/floor/prison{ - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/prison/darkyellowcorners2, /area/fiorina/station/telecomm/lz1_cargo) "kDN" = ( /obj/structure/flora/grass/tallgrass/jungle/corner{ dir = 4 }, -/turf/open/organic/grass{ - name = "astroturf" - }, +/turf/open/organic/grass/astroturf, /area/fiorina/station/park) "kEj" = ( /obj/structure/largecrate/random/barrel/blue, @@ -17498,9 +13941,7 @@ pixel_x = -10; pixel_y = 13 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/lz/near_lzII) "kEy" = ( /obj/structure/bed/chair/dropship/pilot{ @@ -17522,42 +13963,27 @@ /area/fiorina/tumor/ice_lab) "kFd" = ( /obj/structure/machinery/vending/hydronutrients, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/fiorina/station/botany) "kGc" = ( /obj/structure/largecrate/random/case/double, -/turf/open/floor/prison{ - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2, /area/fiorina/station/telecomm/lz1_cargo) "kGd" = ( /obj/structure/barricade/wooden, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/west, /area/fiorina/station/research_cells) "kGo" = ( /obj/structure/machinery/power/apc, -/turf/open/floor/prison{ - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple, /area/fiorina/station/research_cells) "kGB" = ( /obj/structure/platform, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/security) "kGD" = ( /obj/structure/largecrate/random/mini/med, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "kGZ" = ( /obj/structure/platform{ @@ -17585,21 +14011,13 @@ /obj/structure/platform_decoration{ dir = 1 }, -/turf/open/floor/prison/chapel_carpet{ - dir = 1; - icon_state = "doubleside" - }, +/turf/open/floor/prison/chapel_carpet/doubleside/north, /area/fiorina/station/chapel) "kHv" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "bluecorner" - }, +/turf/open/floor/prison/bluecorner/north, /area/fiorina/station/power_ring) "kHF" = ( -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/telecomm/lz1_cargo) "kHG" = ( /obj/effect/decal/cleanable/blood/oil, @@ -17611,9 +14029,7 @@ /area/fiorina/station/disco) "kHI" = ( /obj/item/stack/sheet/metal, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/fiorina/tumor/servers) "kHS" = ( /obj/structure/barricade/sandbags{ @@ -17621,59 +14037,30 @@ layer = 2.97; pixel_y = -14 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/fiorina/station/telecomm/lz1_cargo) "kHZ" = ( /obj/item/stack/folding_barricade, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/fiorina/station/security) "kIb" = ( /obj/structure/inflatable, -/turf/open/floor/prison{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/west, /area/fiorina/station/lowsec) -"kIe" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/book/manual/engineering_particle_accelerator{ - pixel_y = 6 - }, -/obj/structure/prop/souto_land/pole{ - dir = 1 - }, -/obj/structure/prop/souto_land/streamer{ - dir = 9 - }, -/turf/open/floor/wood, -/area/fiorina/station/park) "kIg" = ( /obj/item/device/flashlight/lamp/tripod, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/aux_engi) "kIh" = ( /obj/effect/decal/cleanable/blood/oil, /obj/structure/machinery/landinglight/ds1/delaythree{ dir = 1 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/fiorina/lz/near_lzI) "kIo" = ( /obj/structure/girder, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/fiorina/tumor/ship) "kIA" = ( /obj/structure/surface/table/reinforced/prison, @@ -17687,16 +14074,11 @@ /area/fiorina/station/security) "kIO" = ( /obj/structure/machinery/vending/snack/packaged, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/fiorina/station/research_cells) "kJd" = ( /obj/item/tool/warning_cone, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/east, /area/fiorina/station/park) "kJf" = ( /obj/item/tool/wrench, @@ -17712,10 +14094,7 @@ icon_state = "pottedplant_22" }, /obj/structure/machinery/light/double/blue, -/turf/open/floor/prison{ - dir = 9; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/northwest, /area/fiorina/station/disco) "kJS" = ( /obj/structure/barricade/handrail/type_b{ @@ -17725,9 +14104,7 @@ dir = 8; layer = 3.5 }, -/turf/open/organic/grass{ - name = "astroturf" - }, +/turf/open/organic/grass/astroturf, /area/fiorina/tumor/servers) "kJU" = ( /obj/item/ammo_magazine/rifle/m16{ @@ -17737,35 +14114,24 @@ /area/fiorina/station/security) "kKd" = ( /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/chapel) "kKs" = ( /obj/structure/bed/chair/comfy{ dir = 4 }, -/turf/open/floor/prison{ - dir = 6; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/southeast, /area/fiorina/station/flight_deck) "kKt" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/weapon/baton, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/fiorina/tumor/civres) "kKP" = ( /obj/structure/platform{ dir = 8 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/west, /area/fiorina/station/power_ring) "kKQ" = ( /obj/structure/platform/stair_cut/alt, @@ -17778,15 +14144,10 @@ /obj/vehicle/powerloader{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/power_ring) "kLz" = ( -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/fiorina/station/civres_blue) "kLI" = ( /obj/structure/flora/grass/tallgrass/jungle/corner{ @@ -17799,15 +14160,11 @@ dir = 4; layer = 3.5 }, -/turf/open/organic/grass{ - name = "astroturf" - }, +/turf/open/organic/grass/astroturf, /area/fiorina/station/civres_blue) "kMm" = ( /obj/structure/barricade/handrail, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/central_ring) "kMq" = ( /turf/open/floor/plating/plating_catwalk/prison, @@ -17815,9 +14172,7 @@ "kMC" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/computer/objective, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/park) "kME" = ( /obj/structure/surface/table/reinforced/prison, @@ -17835,10 +14190,7 @@ layer = 2.5; pixel_y = -11 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/fiorina/station/flight_deck) "kNk" = ( /obj/item/stack/sheet/metal/medium_stack, @@ -17847,10 +14199,7 @@ /area/fiorina/lz/near_lzI) "kNs" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison/chapel_carpet{ - dir = 1; - icon_state = "doubleside" - }, +/turf/open/floor/prison/chapel_carpet/doubleside/north, /area/fiorina/station/chapel) "kNB" = ( /obj/structure/surface/table/woodentable/fancy, @@ -17872,9 +14221,7 @@ dir = 4; layer = 3.5 }, -/turf/open/organic/grass{ - name = "astroturf" - }, +/turf/open/organic/grass/astroturf, /area/fiorina/tumor/servers) "kNY" = ( /obj/structure/surface/rack, @@ -17885,16 +14232,10 @@ /obj/structure/bed/chair/office/light{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "kOB" = ( -/turf/open/organic/grass{ - desc = "It'll get in your shoes no matter what you do."; - name = "astroturf" - }, +/turf/open/organic/grass/astroturf, /area/fiorina/station/civres_blue) "kOV" = ( /obj/structure/surface/table/reinforced/prison, @@ -17903,15 +14244,11 @@ pixel_x = 3; pixel_y = 5 }, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/fiorina/station/security) "kPf" = ( /obj/structure/machinery/computer3/server/rack, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/fiorina/tumor/servers) "kPz" = ( /obj/structure/lattice, @@ -17926,10 +14263,7 @@ pixel_y = 4 }, /obj/structure/barricade/wooden, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/north, /area/fiorina/station/medbay) "kQy" = ( /obj/item/frame/rack, @@ -17937,16 +14271,12 @@ dir = 4; layer = 3.5 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/ice_lab) "kQG" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/reagent_container/food/snacks/ricepudding, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/servers) "kQH" = ( /obj/structure/stairs/perspective{ @@ -17972,23 +14302,16 @@ }, /obj/structure/surface/rack, /obj/structure/machinery/light/double/blue, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/fiorina/maintenance) "kSd" = ( /obj/structure/toilet{ pixel_y = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/station/medbay) "kSe" = ( -/turf/open/floor/prison{ - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow, /area/fiorina/station/disco) "kSh" = ( /turf/closed/shuttle/elevator{ @@ -17997,9 +14320,7 @@ /area/fiorina/station/telecomm/lz1_cargo) "kSB" = ( /obj/structure/closet/firecloset, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/fiorina/maintenance) "kSD" = ( /obj/structure/monorail{ @@ -18012,18 +14333,13 @@ /turf/open/floor/plating/prison, /area/fiorina/station/telecomm/lz1_tram) "kTs" = ( -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/maintenance) "kTD" = ( /obj/structure/platform_decoration{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/southwest, /area/fiorina/station/power_ring) "kTL" = ( /obj/item/stack/rods, @@ -18034,17 +14350,13 @@ /area/fiorina/station/medbay) "kTW" = ( /obj/structure/barricade/metal/wired, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/lowsec) "kTY" = ( /obj/structure/machinery/defenses/sentry/premade/dumb{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/fiorina/tumor/ship) "kUj" = ( /obj/structure/window/framed/prison, @@ -18055,17 +14367,13 @@ /obj/item/device/radio{ pixel_y = 8 }, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, +/turf/open/floor/prison/bluefull, /area/fiorina/station/power_ring) "kUR" = ( /obj/structure/platform{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/flight_deck) "kVg" = ( /obj/item/stack/cable_coil/blue, @@ -18077,19 +14385,15 @@ /area/fiorina/station/power_ring) "kVN" = ( /obj/structure/window/framed/prison/reinforced, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/fiorina/station/security) "kVW" = ( /obj/item/weapon/pole/wooden_cane, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/civres) "kWv" = ( /obj/structure/surface/table/reinforced/prison, -/obj/item/handcuffs, +/obj/item/restraint/handcuffs, /turf/open/floor/prison, /area/fiorina/station/security) "kWx" = ( @@ -18097,37 +14401,22 @@ pixel_x = 3; pixel_y = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/station/research_cells) "kWL" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/fiorina/lz/near_lzII) "kWS" = ( /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/tumor/ice_lab) "kXk" = ( -/turf/open/floor/prison{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/northeast, /area/fiorina/station/research_cells) "kXm" = ( /obj/structure/surface/rack, /obj/item/weapon/gun/pistol/heavy, -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/west, /area/fiorina/station/medbay) "kXs" = ( /obj/structure/prop/structure_lattice{ @@ -18139,9 +14428,7 @@ layer = 3.1; pixel_y = 10 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/aux_engi) "kXD" = ( /obj/structure/window/framed/prison, @@ -18159,26 +14446,18 @@ /obj/structure/bed/chair/office/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "kYi" = ( /obj/effect/decal/cleanable/blood/splatter{ icon_state = "handblood" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/station/medbay) "kYz" = ( /obj/structure/closet/crate/medical, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/medbay) "kYZ" = ( /obj/structure/surface/table/woodentable, @@ -18187,9 +14466,7 @@ /area/fiorina/station/civres_blue) "kZl" = ( /obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/fiorina/tumor/aux_engi) "kZu" = ( /obj/structure/toilet{ @@ -18199,10 +14476,7 @@ pixel_x = 2; pixel_y = 25 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/station/medbay) "kZy" = ( /obj/item/clothing/mask/breath, @@ -18215,19 +14489,14 @@ pixel_x = -10; pixel_y = -3 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/fiorina/tumor/aux_engi) "kZV" = ( /obj/structure/bed/chair{ dir = 4; pixel_y = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "lag" = ( /obj/structure/cable/heavyduty{ @@ -18239,10 +14508,7 @@ /obj/structure/machinery/landinglight/ds1/delayone{ dir = 8 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/fiorina/lz/near_lzI) "laJ" = ( /obj/structure/airlock_assembly, @@ -18250,18 +14516,13 @@ /area/fiorina/lz/near_lzI) "laK" = ( /obj/item/stool, -/turf/open/floor/prison{ - dir = 10; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/southwest, /area/fiorina/station/disco) "laX" = ( /obj/structure/toilet{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/fiorina/station/civres_blue) "lbt" = ( /obj/structure/disposalpipe/segment{ @@ -18278,9 +14539,7 @@ pixel_x = 1; pixel_y = 8 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/power_ring) "lbK" = ( /obj/structure/platform, @@ -18293,39 +14552,26 @@ "lbL" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/trash/cigbutt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/fiorina/station/disco) "lbZ" = ( /obj/structure/platform{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "lcm" = ( /obj/structure/machinery/landinglight/ds2/delayone{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/lz/near_lzII) "lcn" = ( -/turf/open/floor/prison{ - icon_state = "panelscorched" - }, +/turf/open/floor/prison/panelscorched, /area/fiorina/station/transit_hub) "lco" = ( /obj/item/stack/sandbags/large_stack, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/fiorina/station/flight_deck) "lcq" = ( /obj/structure/platform/kutjevo/smooth, @@ -18336,26 +14582,17 @@ /area/fiorina/oob) "lcE" = ( /obj/structure/inflatable, -/turf/open/floor/prison{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/northeast, /area/fiorina/station/research_cells) "lcJ" = ( /obj/effect/landmark/queen_spawn, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreencorner" - }, +/turf/open/floor/prison/whitegreencorner/east, /area/fiorina/tumor/ice_lab) "ldd" = ( /obj/structure/surface/table/woodentable/fancy, /obj/item/stack/rods, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/fiorina/station/chapel) "lde" = ( /obj/structure/prop/resin_prop{ @@ -18368,45 +14605,30 @@ /obj/effect/decal/cleanable/blood{ icon_state = "gib6" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/disco) "ldz" = ( /obj/structure/bed{ icon_state = "abed" }, /obj/effect/spawner/random/sentry/midchance, -/turf/open/floor/prison{ - dir = 10; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/southwest, /area/fiorina/station/lowsec) "ldF" = ( -/obj/structure/closet/emcloset, -/turf/open/floor/prison{ - dir = 10; - icon_state = "blue" - }, +/obj/structure/machinery/fuelcell_recycler/full, +/turf/open/floor/prison/blue/southwest, /area/fiorina/station/power_ring) "ldW" = ( /obj/item/stack/sandbags, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/fiorina/station/power_ring) "ldZ" = ( /obj/item/explosive/grenade/incendiary/molotov, -/turf/open/floor/prison{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/prison/red/east, /area/fiorina/station/security) "lev" = ( /obj/structure/largecrate/random/case/double, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/fiorina/tumor/aux_engi) "lex" = ( /obj/structure/closet/crate, @@ -18420,17 +14642,11 @@ /obj/structure/barricade/metal/wired{ dir = 8 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/east, /area/fiorina/station/disco) "leZ" = ( /obj/item/trash/cigbutt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "lfo" = ( /obj/structure/pipes/standard/manifold/visible, @@ -18438,34 +14654,21 @@ /area/fiorina/station/medbay) "lfX" = ( /obj/structure/inflatable/door, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/station/research_cells) "lge" = ( -/turf/open/floor/prison{ - dir = 5; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/northeast, /area/fiorina/station/civres_blue) "lgx" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/east, /area/fiorina/station/park) "lgG" = ( /obj/structure/coatrack, /obj/item/clothing/suit/storage/CMB, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/fiorina/station/security) "lgH" = ( -/turf/open/floor/prison{ - icon_state = "green" - }, +/turf/open/floor/prison/green, /area/fiorina/tumor/civres) "lgS" = ( /obj/structure/machinery/light/double/blue, @@ -18492,18 +14695,13 @@ /area/fiorina/station/power_ring) "lic" = ( /obj/structure/machinery/vending/cigarette, -/turf/open/organic/grass{ - desc = "It'll get in your shoes no matter what you do."; - name = "astroturf" - }, +/turf/open/organic/grass/astroturf, /area/fiorina/tumor/fiberbush) "lit" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/transit_hub) "liA" = ( /obj/structure/machinery/door/airlock/prison_hatch/autoname{ @@ -18531,9 +14729,7 @@ /obj/structure/platform_decoration{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/civres_blue) "ljV" = ( /obj/effect/landmark/corpsespawner/ua_riot, @@ -18545,10 +14741,7 @@ /turf/open/floor/prison, /area/fiorina/station/lowsec) "lkr" = ( -/turf/open/floor/prison{ - dir = 9; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/northwest, /area/fiorina/tumor/ice_lab) "lku" = ( /turf/closed/shuttle/ert{ @@ -18557,24 +14750,17 @@ /area/fiorina/oob) "lkA" = ( /obj/structure/bed/sofa/south/grey/right, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/security/wardens) "lkM" = ( /obj/structure/inflatable/popped/door, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/fiorina/tumor/servers) "lkP" = ( /obj/item/shard{ icon_state = "medium" }, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/fiorina/station/security) "lkQ" = ( /obj/structure/machinery/light/double/blue{ @@ -18584,10 +14770,7 @@ /turf/open/floor/prison, /area/fiorina/station/security) "lld" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/prison/red/west, /area/fiorina/station/security) "lls" = ( /obj/structure/barricade/handrail/type_b{ @@ -18604,9 +14787,7 @@ pixel_y = 10 }, /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/fiorina/station/power_ring) "llJ" = ( /obj/item/stack/rods, @@ -18614,9 +14795,7 @@ density = 0; dir = 4 }, -/turf/open/floor/prison{ - icon_state = "platingdmg3" - }, +/turf/open/floor/prison/platingdmg3, /area/fiorina/station/security) "llQ" = ( /obj/structure/platform/kutjevo/smooth{ @@ -18644,38 +14823,28 @@ dir = 1; pixel_y = 21 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/fiorina/station/flight_deck) "lnK" = ( /turf/closed/wall/r_wall/prison, /area/fiorina/station/telecomm/lz1_tram) "loj" = ( /obj/item/stack/cable_coil, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/fiorina/tumor/civres) "lou" = ( /obj/item/ammo_box/magazine/misc/flares/empty{ pixel_x = -1; pixel_y = 7 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/telecomm/lz1_cargo) "loE" = ( /obj/structure/window/reinforced{ dir = 8 }, /obj/structure/machinery/photocopier, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/ice_lab) "loP" = ( /obj/structure/machinery/optable{ @@ -18686,15 +14855,11 @@ desc = "It crinkles, aggressively."; name = "sterile wax sheet" }, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/fiorina/station/medbay) "lpd" = ( /obj/structure/machinery/light/double/blue, -/turf/open/floor/prison{ - icon_state = "blue" - }, +/turf/open/floor/prison/blue, /area/fiorina/station/chapel) "lpl" = ( /turf/closed/shuttle/ert{ @@ -18713,16 +14878,10 @@ dir = 1; pixel_y = 21 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "lpH" = ( -/turf/open/floor/prison{ - dir = 9; - icon_state = "green" - }, +/turf/open/floor/prison/green/northwest, /area/fiorina/station/chapel) "lpS" = ( /obj/structure/stairs/perspective{ @@ -18736,24 +14895,15 @@ /area/fiorina/station/disco) "lpW" = ( /obj/structure/largecrate/random/barrel/white, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/fiorina/station/telecomm/lz1_cargo) "lpX" = ( /obj/structure/machinery/door/airlock/prison/horizontal, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/station/research_cells) "lpZ" = ( /obj/item/trash/boonie, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/station/research_cells) "lqa" = ( /obj/structure/flora/pottedplant{ @@ -18765,25 +14915,16 @@ /turf/open/floor/wood, /area/fiorina/station/chapel) "lqC" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/fiorina/lz/near_lzI) "lqI" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/fiorina/lz/near_lzI) "lqJ" = ( /obj/structure/flora/bush/ausbushes/grassybush{ icon_state = "lavendergrass_2" }, -/turf/open/organic/grass{ - desc = "It'll get in your shoes no matter what you do."; - name = "astroturf" - }, +/turf/open/organic/grass/astroturf, /area/fiorina/station/central_ring) "lqN" = ( /obj/effect/decal/cleanable/blood{ @@ -18791,16 +14932,10 @@ icon_state = "gib6" }, /obj/effect/spawner/random/gun/rifle, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/east, /area/fiorina/station/telecomm/lz1_cargo) "lri" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "green" - }, +/turf/open/floor/prison/green/west, /area/fiorina/station/transit_hub) "lrA" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_nest, @@ -18818,16 +14953,12 @@ pixel_x = 2; pixel_y = 3 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/fiberbush) "lrV" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/faxmachine, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/fiorina/station/security) "lsn" = ( /obj/structure/machinery/vending/cigarette/colony, @@ -18845,9 +14976,7 @@ /obj/structure/machinery/shower{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/fiorina/station/lowsec) "lsZ" = ( /obj/item/tool/soap, @@ -18858,16 +14987,11 @@ /obj/structure/machinery/shower{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/fiorina/station/research_cells) "ltd" = ( /obj/item/device/flashlight/lamp/tripod, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/station/medbay) "lte" = ( /obj/structure/barricade/metal{ @@ -18875,70 +14999,44 @@ health = 85; icon_state = "metal_1" }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/north, /area/fiorina/station/park) "ltz" = ( /obj/structure/surface/table/reinforced/prison, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/fiorina/station/botany) "ltA" = ( -/turf/open/floor/prison{ - icon_state = "floorscorched1" - }, +/turf/open/floor/prison/floorscorched1, /area/fiorina/tumor/aux_engi) "ltQ" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/east, /area/fiorina/station/security) "luf" = ( /obj/effect/decal/medical_decals{ icon_state = "docdecal1" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/station/medbay) "lun" = ( /obj/effect/spawner/random/tool, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/servers) "lux" = ( /obj/structure/inflatable/door, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/lowsec) "luy" = ( /obj/item/trash/candle, -/turf/open/floor/prison/chapel_carpet{ - dir = 1; - icon_state = "doubleside" - }, +/turf/open/floor/prison/chapel_carpet/doubleside/north, /area/fiorina/maintenance) "luZ" = ( /obj/item/device/flashlight/lamp/tripod, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/tumor/ice_lab) "lvf" = ( /obj/structure/largecrate/random/case/double, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/fiorina/tumor/aux_engi) "lvg" = ( /obj/item/trash/candle, @@ -18951,22 +15049,27 @@ }, /turf/open/floor/wood, /area/fiorina/station/security/wardens) +"lvt" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/prop/souto_land/pole{ + dir = 1 + }, +/obj/structure/prop/souto_land/streamer{ + dir = 9 + }, +/turf/open/floor/wood, +/area/fiorina/station/park) "lvy" = ( /turf/closed/shuttle/ert{ icon_state = "stan_rightengine" }, /area/fiorina/tumor/aux_engi) "lvD" = ( -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/fiorina/tumor/servers) "lvV" = ( /obj/structure/barricade/metal/wired, -/turf/open/floor/prison{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/west, /area/fiorina/station/lowsec) "lwd" = ( /obj/structure/machinery/light/double/blue{ @@ -18997,35 +15100,25 @@ pixel_x = 3; pixel_y = 5 }, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/fiorina/station/security) "lwq" = ( /obj/structure/stairs/perspective{ dir = 1; icon_state = "p_stair_full" }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/north, /area/fiorina/station/central_ring) "lwA" = ( /obj/structure/largecrate/random/case, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/fiorina/station/park) "lxT" = ( /obj/item/ammo_casing{ dir = 8; icon_state = "casing_6" }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/north, /area/fiorina/station/park) "lyf" = ( /obj/structure/flora/bush/ausbushes/ausbush{ @@ -19048,10 +15141,7 @@ /area/fiorina/station/civres_blue) "lzd" = ( /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/station/medbay) "lzm" = ( /obj/structure/surface/table/reinforced/prison, @@ -19060,9 +15150,7 @@ /area/fiorina/station/research_cells) "lzn" = ( /obj/structure/machinery/portable_atmospherics/canister/phoron, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/fiorina/station/telecomm/lz1_cargo) "lzq" = ( /obj/item/tool/wet_sign, @@ -19077,26 +15165,18 @@ icon_state = "abed" }, /obj/item/storage/fancy/crayons, -/turf/open/floor/prison{ - dir = 6; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/southeast, /area/fiorina/station/research_cells) "lzB" = ( /obj/structure/closet/crate/miningcar{ name = "\improper materials storage bin" }, /obj/item/reagent_container/food/snacks/meat, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/fiorina/station/botany) "lzE" = ( /obj/structure/machinery/vending/snack/packaged, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/civres_blue) "lzJ" = ( /turf/open/floor/plating/prison, @@ -19106,25 +15186,18 @@ dir = 8; icon_state = "cartridge_2" }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkbrowncorners2" - }, +/turf/open/floor/prison/darkbrowncorners2/west, /area/fiorina/station/park) "lAh" = ( /turf/closed/wall/r_wall/prison_unmeltable, /area/fiorina/tumor/ice_lab) "lAn" = ( /obj/effect/landmark/survivor_spawner, -/turf/open/floor/prison{ - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2, /area/fiorina/station/park) "lAE" = ( /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/prison{ - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2, /area/fiorina/station/telecomm/lz1_cargo) "lAM" = ( /obj/structure/surface/table/reinforced/prison, @@ -19132,9 +15205,7 @@ dir = 4; pixel_y = 5 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/power_ring) "lAN" = ( /obj/structure/machinery/light/double/blue{ @@ -19142,15 +15213,11 @@ pixel_x = 10; pixel_y = 13 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/park) "lAQ" = ( /obj/structure/machinery/vending/snack/packaged, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/civres) "lAV" = ( /obj/structure/bed/stool, @@ -19174,34 +15241,24 @@ dir = 8 }, /obj/effect/spawner/random/sentry/midchance, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/fiorina/station/telecomm/lz1_cargo) "lBI" = ( /obj/item/ammo_casing{ icon_state = "casing_5_1" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/lowsec) "lBR" = ( /obj/effect/landmark/corpsespawner/ua_riot, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/west, /area/fiorina/station/medbay) "lBS" = ( /obj/structure/machinery/light/double/blue{ dir = 1; pixel_y = 21 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/fiorina/tumor/servers) "lCl" = ( /obj/structure/surface/table/reinforced/prison, @@ -19211,16 +15268,12 @@ pixel_x = -6; pixel_y = 6 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/aux_engi) "lCz" = ( /obj/structure/machinery/light/small, /obj/structure/largecrate/random/barrel/green, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/fiorina/tumor/ship) "lDo" = ( /obj/item/storage/fancy/cigar, @@ -19243,22 +15296,15 @@ /area/fiorina/station/power_ring) "lDU" = ( /obj/item/stack/cable_coil, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/servers) "lEd" = ( /obj/structure/inflatable/popped/door, -/turf/open/floor/prison{ - dir = 9; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/northwest, /area/fiorina/station/research_cells) "lEg" = ( /obj/structure/machinery/light/double/blue, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/lz/near_lzII) "lEk" = ( /obj/structure/surface/table/reinforced/prison, @@ -19298,9 +15344,7 @@ /obj/structure/machinery/computer/cameras{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/fiorina/station/security) "lEL" = ( /obj/structure/bed/chair{ @@ -19308,10 +15352,7 @@ }, /obj/effect/decal/cleanable/blood, /obj/effect/spawner/gibspawner/human, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/north, /area/fiorina/station/park) "lFc" = ( /obj/effect/decal/cleanable/blood, @@ -19320,51 +15361,35 @@ /area/fiorina/station/park) "lFg" = ( /obj/item/paper, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/station/research_cells) "lFm" = ( /obj/structure/bed/roller, /obj/item/trash/used_stasis_bag, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/telecomm/lz1_cargo) "lFo" = ( /obj/structure/machinery/light/double/blue{ dir = 8; pixel_x = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/lz/near_lzII) "lFv" = ( /obj/item/stack/cable_coil, /turf/open/floor/prison, /area/fiorina/station/disco) "lFB" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/southwest, /area/fiorina/station/research_cells) "lFD" = ( /obj/item/tool/crowbar/red, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/east, /area/fiorina/tumor/aux_engi) "lFM" = ( /obj/structure/surface/table/reinforced/prison, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/fiorina/station/telecomm/lz1_tram) "lFQ" = ( /obj/structure/machinery/m56d_hmg/mg_turret/dropship, @@ -19372,10 +15397,7 @@ /area/fiorina/station/central_ring) "lFV" = ( /obj/structure/machinery/space_heater, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/fiorina/tumor/civres) "lGL" = ( /obj/structure/machinery/light/double/blue{ @@ -19383,15 +15405,11 @@ pixel_x = 10; pixel_y = -1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/chapel) "lHw" = ( /obj/structure/barricade/handrail/type_b, -/turf/open/floor/prison{ - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2, /area/fiorina/station/flight_deck) "lHx" = ( /obj/structure/window/framed/prison/reinforced/hull, @@ -19407,10 +15425,7 @@ /area/fiorina/station/security) "lIj" = ( /obj/structure/prop/ice_colony/surveying_device, -/turf/open/floor/prison{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/east, /area/fiorina/tumor/servers) "lIk" = ( /obj/structure/surface/table/reinforced/prison, @@ -19424,10 +15439,7 @@ pixel_x = 5; pixel_y = 11 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "lIl" = ( /obj/structure/platform{ @@ -19439,10 +15451,7 @@ /obj/structure/platform_decoration{ dir = 9 }, -/turf/open/floor/prison{ - dir = 5; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/northeast, /area/fiorina/tumor/ice_lab) "lIt" = ( /obj/structure/disposalpipe/segment{ @@ -19452,9 +15461,7 @@ name = "overhead pipe"; pixel_y = 12 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/civres) "lIv" = ( /turf/closed/shuttle/ert{ @@ -19463,9 +15470,7 @@ /area/fiorina/lz/near_lzI) "lIA" = ( /obj/effect/landmark/xeno_spawn, -/turf/open/floor/prison{ - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2, /area/fiorina/tumor/aux_engi) "lIC" = ( /obj/structure/barricade/handrail/type_b{ @@ -19475,10 +15480,7 @@ dir = 4; layer = 3.25 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/tumor/ice_lab) "lIG" = ( /obj/structure/extinguisher_cabinet, @@ -19486,10 +15488,7 @@ /area/fiorina/station/research_cells) "lIH" = ( /obj/structure/machinery/processor, -/turf/open/floor/prison{ - dir = 8; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/west, /area/fiorina/station/botany) "lIJ" = ( /obj/item/stack/rods, @@ -19500,9 +15499,7 @@ layer = 2.6 }, /obj/structure/machinery/light/double/blue, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/lz/near_lzII) "lJx" = ( /obj/structure/surface/table/reinforced/prison, @@ -19516,16 +15513,11 @@ /obj/item/clothing/suit/storage/hazardvest, /obj/item/clothing/suit/storage/hazardvest, /obj/structure/surface/rack, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/fiorina/maintenance) "lJS" = ( /obj/structure/largecrate/supply/medicine/iv, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/station/medbay) "lKI" = ( /obj/structure/largecrate/random/case, @@ -19536,10 +15528,7 @@ dir = 8; icon_state = "p_stair_sn_full_cap" }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/east, /area/fiorina/station/chapel) "lLe" = ( /obj/item/stack/sheet/metal, @@ -19556,9 +15545,7 @@ /obj/structure/prop/resin_prop{ icon_state = "sheater0" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/aux_engi) "lMh" = ( /obj/structure/machinery/vending/coffee, @@ -19574,25 +15561,18 @@ icon_state = "mwo"; pixel_y = 6 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/fiorina/station/civres_blue) "lMV" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/computer/communications{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/power_ring) "lNc" = ( /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/fiorina/station/security) "lNf" = ( /obj/item/inflatable, @@ -19600,17 +15580,11 @@ dir = 1; pixel_y = 21 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/north, /area/fiorina/station/lowsec) "lNv" = ( -/obj/item/handcuffs/cable/pink, -/turf/open/floor/prison/chapel_carpet{ - dir = 1; - icon_state = "doubleside" - }, +/obj/item/restraint/adjustable/cable/pink, +/turf/open/floor/prison/chapel_carpet/doubleside/north, /area/fiorina/station/chapel) "lNP" = ( /obj/structure/bed/roller, @@ -19622,42 +15596,29 @@ /area/fiorina/station/power_ring) "lOe" = ( /obj/structure/largecrate/random/barrel/yellow, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/fiorina/station/telecomm/lz1_tram) "lOk" = ( /obj/structure/curtain, -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/west, /area/fiorina/station/power_ring) "lOm" = ( /obj/structure/largecrate/random/case/small, /obj/item/bodybag/tarp/reactive{ pixel_y = 6 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/medbay) "lOx" = ( /obj/structure/machinery/light/double/blue{ dir = 1; pixel_y = 21 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/fiorina/station/telecomm/lz1_cargo) "lOy" = ( /obj/structure/machinery/light/double/blue, -/turf/open/floor/prison{ - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2, /area/fiorina/lz/near_lzI) "lPA" = ( /obj/effect/decal/cleanable/blood/splatter, @@ -19667,53 +15628,35 @@ /obj/structure/closet/secure_closet/freezer/kitchen, /obj/item/reagent_container/food/condiment/enzyme, /obj/item/reagent_container/food/condiment/enzyme, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/fiorina/station/power_ring) "lQo" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22" }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/fiorina/station/transit_hub) "lQJ" = ( /obj/structure/closet/emcloset, /obj/effect/landmark/objective_landmark/far, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/southwest, /area/fiorina/maintenance) "lQL" = ( /obj/structure/machinery/space_heater, /obj/structure/platform{ dir = 8 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/west, /area/fiorina/tumor/ice_lab) "lRk" = ( /obj/item/stack/rods/plasteel, -/turf/open/floor/prison{ - icon_state = "damaged3" - }, +/turf/open/floor/prison/damaged3, /area/fiorina/station/security) "lRq" = ( -/turf/open/floor/prison{ - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe, /area/fiorina/station/park) "lRr" = ( -/turf/open/floor/prison{ - dir = 6; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/southeast, /area/fiorina/station/civres_blue) "lRT" = ( /turf/closed/wall/r_wall/prison_unmeltable, @@ -19723,9 +15666,7 @@ desc = "Wow, instant sand. They really have everything in space."; name = "Insta-Sand! bag" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/civres_blue) "lSb" = ( /obj/structure/machinery/vending/snack, @@ -19740,9 +15681,7 @@ /area/fiorina/station/research_cells) "lSq" = ( /obj/item/ammo_magazine/shotgun/buckshot, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/fiorina/station/research_cells) "lSS" = ( /obj/structure/platform_decoration/kutjevo{ @@ -19755,9 +15694,7 @@ /obj/structure/sink{ pixel_y = 15 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/fiorina/tumor/ship) "lTW" = ( /obj/structure/flora/pottedplant{ @@ -19790,9 +15727,7 @@ pixel_y = 13 }, /obj/item/clothing/suit/storage/hazardvest, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/fiorina/station/civres_blue) "lUv" = ( /obj/structure/platform{ @@ -19810,32 +15745,32 @@ /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22" }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/fiorina/station/research_cells) "lVA" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/east, /area/fiorina/lz/near_lzII) "lVQ" = ( /obj/structure/inflatable/door, -/turf/open/floor/prison{ - icon_state = "whitegreencorner" - }, +/turf/open/floor/prison/whitegreencorner, /area/fiorina/station/medbay) "lWn" = ( /obj/structure/machinery/shower{ pixel_y = 13 }, /obj/item/tool/soap/nanotrasen, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/fiorina/tumor/civres) +"lWy" = ( +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/structure/surface/rack, +/turf/open/floor/prison/floor_plate, +/area/fiorina/station/power_ring) "lXs" = ( /obj/item/book/manual/marine_law, /obj/item/book/manual/marine_law{ @@ -19866,9 +15801,7 @@ /obj/structure/mirror{ pixel_y = 28 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/fiorina/station/civres_blue) "lZf" = ( /turf/closed/shuttle/elevator{ @@ -19877,10 +15810,7 @@ /area/fiorina/tumor/aux_engi) "lZm" = ( /obj/item/trash/cigbutt, -/turf/open/floor/prison{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/east, /area/fiorina/station/power_ring) "lZo" = ( /obj/structure/machinery/light/double/blue{ @@ -19888,14 +15818,10 @@ pixel_x = 10; pixel_y = 13 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/fiberbush) "lZp" = ( -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/fiorina/station/lowsec) "lZs" = ( /obj/structure/disposalpipe/segment{ @@ -19920,16 +15846,11 @@ /area/fiorina/station/research_cells) "maA" = ( /obj/item/stack/tile/plasteel, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/tumor/ice_lab) "maY" = ( /obj/structure/prop/almayer/computers/sensor_computer2, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/fiorina/tumor/servers) "mbg" = ( /obj/structure/machinery/light/double/blue, @@ -19943,41 +15864,24 @@ /area/fiorina/oob) "mbz" = ( /obj/item/ammo_box/magazine/M16, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/fiorina/lz/near_lzI) "mbC" = ( /obj/item/clipboard, /turf/open/floor/plating/prison, /area/fiorina/tumor/servers) -"mbH" = ( -/obj/structure/platform, -/obj/item/fuelCell, -/obj/structure/machinery/light/double/blue{ - dir = 4; - pixel_x = 10; - pixel_y = 13 - }, -/turf/open/floor/plating/prison, -/area/fiorina/station/lowsec) "mcr" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/stock_parts/matter_bin/super, /turf/open/floor/wood, /area/fiorina/station/park) "mcH" = ( -/turf/open/floor/prison{ - icon_state = "blue" - }, +/turf/open/floor/prison/blue, /area/fiorina/tumor/servers) "mcJ" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/ammo_magazine/shotgun/buckshot, -/turf/open/floor/prison{ - icon_state = "yellowfull" - }, +/turf/open/floor/prison/yellowfull, /area/fiorina/station/disco) "mdd" = ( /obj/item/storage/toolbox/electrical, @@ -19991,10 +15895,7 @@ dir = 1; pixel_y = 21 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/station/medbay) "mdD" = ( /obj/item/stool, @@ -20002,9 +15903,7 @@ dir = 1; pixel_y = 21 }, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, +/turf/open/floor/prison/bluefull, /area/fiorina/station/civres_blue) "mdG" = ( /obj/structure/prop/souto_land/streamer{ @@ -20015,9 +15914,7 @@ dir = 4; pixel_y = 4 }, -/turf/open/floor/prison{ - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2, /area/fiorina/station/park) "mdH" = ( /obj/structure/surface/table/reinforced/prison, @@ -20027,9 +15924,7 @@ }, /obj/item/card/id/guest, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/fiorina/station/security) "mdJ" = ( /obj/structure/platform/kutjevo/smooth{ @@ -20039,10 +15934,7 @@ /turf/open/space, /area/fiorina/oob) "mdS" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "greenbluecorner" - }, +/turf/open/floor/prison/greenbluecorner/west, /area/fiorina/station/botany) "mdY" = ( /obj/structure/machinery/light/double/blue{ @@ -20050,9 +15942,7 @@ pixel_x = 10; pixel_y = 13 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/flight_deck) "mei" = ( /obj/structure/surface/table/reinforced/prison, @@ -20077,9 +15967,7 @@ /area/fiorina/tumor/civres) "mfF" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2, /area/fiorina/lz/near_lzI) "mfR" = ( /obj/structure/bed{ @@ -20093,32 +15981,23 @@ /area/fiorina/station/civres_blue) "mgh" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_nest, -/turf/open/floor/prison{ - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen, /area/fiorina/tumor/ice_lab) "mgz" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/station/research_cells) "mgE" = ( /obj/structure/machinery/light/double/blue{ pixel_y = -1 }, -/turf/open/floor/prison{ - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2, /area/fiorina/lz/near_lzI) "mgO" = ( /obj/structure/window{ dir = 8 }, /obj/item/circuitboard/machine/rdserver, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/fiorina/tumor/servers) "mho" = ( /obj/structure/machinery/light/double/blue{ @@ -20140,10 +16019,7 @@ /area/fiorina/station/flight_deck) "mhS" = ( /obj/item/device/flashlight/lamp/tripod, -/turf/open/floor/prison{ - dir = 1; - icon_state = "greenblue" - }, +/turf/open/floor/prison/greenblue/north, /area/fiorina/station/botany) "miU" = ( /obj/item/stack/sheet/metal, @@ -20153,32 +16029,21 @@ /obj/item/reagent_container/food/drinks/coffee{ name = "\improper paper cup" }, -/turf/open/floor/prison{ - dir = 5; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/northeast, /area/fiorina/station/central_ring) "mju" = ( /obj/structure/largecrate/random/case/double, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/fiorina/station/telecomm/lz1_cargo) "mjx" = ( /turf/open/floor/plating/plating_catwalk/prison, /area/fiorina/tumor/servers) "mjB" = ( /obj/structure/platform, -/turf/open/gm/river{ - name = "pool" - }, +/turf/open/gm/river/pool, /area/fiorina/station/park) "mkn" = ( -/turf/open/floor/prison{ - dir = 6; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/southeast, /area/fiorina/station/power_ring) "mkI" = ( /obj/structure/machinery/microwave{ @@ -20191,31 +16056,21 @@ /area/fiorina/tumor/aux_engi) "mlb" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_nest, -/turf/open/floor/prison{ - dir = 5; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/northeast, /area/fiorina/tumor/ice_lab) "mld" = ( /obj/structure/machinery/photocopier, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/security) "mlg" = ( /obj/effect/landmark/corpsespawner/ua_riot/burst, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/north, /area/fiorina/station/research_cells) "mlu" = ( /obj/structure/prop/invuln/minecart_tracks/bumper{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/fiorina/tumor/servers) "mlC" = ( /obj/structure/window/framed/prison/reinforced/hull, @@ -20229,10 +16084,7 @@ /obj/structure/closet/crate/trashcart, /obj/effect/spawner/random/gun/special, /obj/effect/landmark/objective_landmark/far, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/fiorina/tumor/civres) "mmp" = ( /obj/structure/surface/table/reinforced/prison, @@ -20263,38 +16115,36 @@ /area/fiorina/tumor/fiberbush) "mns" = ( /obj/item/stool, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/station/research_cells) "mny" = ( /turf/closed/wall/prison, /area/fiorina/station/flight_deck) "mnJ" = ( /obj/item/stack/rods, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/chapel) "mnR" = ( /obj/structure/machinery/vending/cigarette/colony, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/chapel) +"mok" = ( +/obj/structure/closet/crate/bravo, +/obj/item/stack/sheet/metal/medium_stack, +/obj/item/stack/sheet/metal/medium_stack, +/obj/item/fuel_cell, +/obj/item/stack/sheet/plasteel, +/obj/effect/landmark/objective_landmark/close, +/turf/open/floor/prison/bluefull, +/area/fiorina/station/power_ring) "mom" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/tool/surgery/surgicaldrill, -/turf/open/floor/prison{ - icon_state = "yellowcorner" - }, +/turf/open/floor/prison/yellowcorner, /area/fiorina/station/lowsec) "moK" = ( /obj/item/clothing/under/shorts/red, -/turf/open/floor/prison{ - icon_state = "yellowfull" - }, +/turf/open/floor/prison/yellowfull, /area/fiorina/station/central_ring) "moQ" = ( /obj/structure/sink{ @@ -20302,10 +16152,7 @@ pixel_x = -12 }, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/southwest, /area/fiorina/station/research_cells) "moW" = ( /obj/effect/landmark/corpsespawner/ua_riot/burst, @@ -20341,23 +16188,15 @@ dir = 1; pixel_y = 21 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/west, /area/fiorina/station/botany) "mpN" = ( /obj/item/stock_parts/manipulator/pico, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/east, /area/fiorina/tumor/servers) "mpR" = ( /obj/structure/machinery/vending/cigarette/colony, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/fiorina/station/research_cells) "mpY" = ( /obj/structure/flora/pottedplant{ @@ -20373,9 +16212,7 @@ /area/fiorina/station/medbay) "mqB" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - icon_state = "red" - }, +/turf/open/floor/prison/red, /area/fiorina/station/security) "mqJ" = ( /obj/structure/barricade/metal/wired{ @@ -20386,10 +16223,7 @@ /area/fiorina/station/central_ring) "mqM" = ( /obj/item/stack/sandbags_empty/half, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/east, /area/fiorina/station/flight_deck) "mrk" = ( /obj/structure/machinery/light/double/blue{ @@ -20409,9 +16243,7 @@ /area/fiorina/station/medbay) "mrK" = ( /obj/structure/closet/secure_closet/medical2, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/telecomm/lz1_cargo) "mrW" = ( /obj/item/stack/rods, @@ -20427,9 +16259,7 @@ /obj/structure/platform_decoration{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen, /area/fiorina/tumor/ice_lab) "msj" = ( /obj/item/toy/crayon/orange, @@ -20439,10 +16269,7 @@ /obj/structure/barricade/metal/wired{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/fiorina/tumor/ship) "msu" = ( /obj/structure/barricade/wooden{ @@ -20454,16 +16281,11 @@ "msF" = ( /obj/structure/closet/secure_closet/engineering_materials, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/aux_engi) "msH" = ( /obj/item/tool/surgery/cautery, -/turf/open/floor/prison{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/west, /area/fiorina/station/lowsec) "mtj" = ( /obj/structure/machinery/light/double/blue{ @@ -20478,59 +16300,41 @@ /obj/structure/machinery/microwave{ pixel_y = 7 }, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, +/turf/open/floor/prison/bluefull, /area/fiorina/station/power_ring) "mtG" = ( -/turf/open/floor/prison{ - icon_state = "darkbrowncorners2" - }, +/turf/open/floor/prison/darkbrowncorners2, /area/fiorina/station/park) "mtP" = ( /obj/structure/window/reinforced{ dir = 8; health = 80 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "mue" = ( /obj/structure/closet{ density = 0; pixel_y = 18 }, -/turf/open/floor/prison{ - icon_state = "yellowfull" - }, +/turf/open/floor/prison/yellowfull, /area/fiorina/station/lowsec) "muD" = ( /obj/structure/tunnel, -/turf/open/organic/grass{ - desc = "It'll get in your shoes no matter what you do."; - name = "astroturf" - }, +/turf/open/organic/grass/astroturf, /area/fiorina/station/civres_blue) "muX" = ( /obj/structure/bed/chair/office/dark{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/north, /area/fiorina/tumor/ice_lab) "mvl" = ( /obj/structure/window/framed/prison/reinforced, /turf/open/floor/plating/prison, /area/fiorina/station/research_cells) "mvp" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/tumor/ice_lab) "mvF" = ( /obj/structure/monorail{ @@ -20547,18 +16351,13 @@ dir = 4 }, /obj/item/device/flashlight/lamp/tripod, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/east, /area/fiorina/tumor/ice_lab) "mvY" = ( /obj/structure/surface/table/reinforced/prison, /obj/effect/spawner/random/tool, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/fiorina/tumor/aux_engi) "mwu" = ( /obj/structure/surface/table/reinforced/prison, @@ -20572,9 +16371,7 @@ pixel_x = 10; pixel_y = -3 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/lowsec) "mwK" = ( /obj/structure/surface/table/reinforced/prison, @@ -20589,18 +16386,13 @@ pixel_x = 9; pixel_y = -10 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/security) "mwP" = ( /obj/structure/bed{ icon_state = "abed" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/southwest, /area/fiorina/station/lowsec) "mxc" = ( /obj/effect/spawner/random/tool, @@ -20613,18 +16405,12 @@ "mxm" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/tool/plantspray/pests, -/turf/open/floor/prison{ - dir = 4; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/east, /area/fiorina/station/botany) "mxs" = ( /obj/item/storage/belt/marine/quackers, /obj/effect/spawner/gibspawner/human, -/turf/open/gm/river{ - color = "#990000"; - name = "pool" - }, +/turf/open/gm/river/darkred_pool, /area/fiorina/station/park) "mxQ" = ( /turf/closed/wall/prison, @@ -20640,9 +16426,7 @@ /area/fiorina/lz/near_lzI) "myi" = ( /obj/item/tool/mop, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/civres_blue) "myj" = ( /obj/structure/largecrate/random/case/small, @@ -20654,50 +16438,33 @@ layer = 2.8 }, /obj/structure/barricade/handrail/type_b, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/flight_deck) "myH" = ( /obj/item/storage/briefcase, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/fiorina/station/transit_hub) "myJ" = ( /obj/structure/closet/bombcloset, /obj/effect/spawner/random/gun/rifle/midchance, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/prison{ - dir = 6; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/southeast, /area/fiorina/station/flight_deck) "myK" = ( /obj/structure/machinery/vending/cola, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/aux_engi) "myQ" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_nest, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/southwest, /area/fiorina/tumor/ice_lab) "mzn" = ( /obj/item/frame/firstaid_arm_assembly, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, +/turf/open/floor/prison/bluefull, /area/fiorina/station/civres_blue) "mzy" = ( /obj/structure/largecrate/random/barrel/green, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/fiorina/tumor/aux_engi) "mzJ" = ( /obj/item/tool/lighter/random{ @@ -20707,9 +16474,7 @@ /turf/open/floor/prison, /area/fiorina/station/power_ring) "mzK" = ( -/turf/open/floor/prison{ - icon_state = "whitegreencorner" - }, +/turf/open/floor/prison/whitegreencorner, /area/fiorina/station/medbay) "mzS" = ( /obj/structure/machinery/door/airlock/prison_hatch/autoname{ @@ -20726,15 +16491,10 @@ /area/fiorina/oob) "mAs" = ( /obj/item/broken_device, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/station/medbay) "mAt" = ( -/turf/open/floor/prison{ - icon_state = "greenbluecorner" - }, +/turf/open/floor/prison/greenbluecorner, /area/fiorina/station/botany) "mAK" = ( /obj/structure/sign/poster{ @@ -20749,55 +16509,34 @@ pixel_x = 6; pixel_y = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/station/medbay) "mAN" = ( /obj/item/toy/crayon/mime, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/power_ring) "mAS" = ( /obj/structure/surface/table/reinforced/prison, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/tumor/ice_lab) "mBG" = ( /obj/structure/bed/chair/comfy, -/turf/open/floor/prison{ - icon_state = "yellowfull" - }, +/turf/open/floor/prison/yellowfull, /area/fiorina/station/disco) "mBJ" = ( /obj/item/ammo_box/magazine/misc/flares/empty, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/tumor/ice_lab) "mBZ" = ( /obj/structure/machinery/disposal, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/security/wardens) "mCe" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/north, /area/fiorina/station/lowsec) "mCp" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/north, /area/fiorina/station/chapel) "mCA" = ( /obj/structure/prop/resin_prop, @@ -20818,25 +16557,17 @@ layer = 2.7 }, /obj/structure/machinery/light/double/blue, -/turf/open/floor/prison{ - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen, /area/fiorina/station/medbay) "mDn" = ( -/turf/open/floor/prison{ - dir = 5; - icon_state = "green" - }, +/turf/open/floor/prison/green/northeast, /area/fiorina/tumor/servers) "mDq" = ( /obj/structure/closet/crate/miningcar{ name = "\improper materials storage bin" }, /obj/item/reagent_container/food/snacks/meat, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenblue" - }, +/turf/open/floor/prison/greenblue/east, /area/fiorina/station/botany) "mDz" = ( /obj/structure/bed/chair/wood/normal{ @@ -20848,26 +16579,19 @@ /obj/structure/bed{ icon_state = "abed" }, -/turf/open/floor/prison{ - dir = 6; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/southeast, /area/fiorina/station/lowsec) "mDS" = ( /obj/structure/bed/chair/comfy{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/fiorina/station/security) "mEn" = ( /obj/structure/machinery/photocopier{ pixel_y = 4 }, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/fiorina/station/security) "mEJ" = ( /obj/structure/window/reinforced{ @@ -20884,30 +16608,19 @@ /turf/open/floor/plating/prison, /area/fiorina/station/medbay) "mEU" = ( -/turf/open/floor/prison{ - dir = 6; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/southeast, /area/fiorina/station/disco) "mEY" = ( /obj/item/device/flashlight/on, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrowncorners2" - }, +/turf/open/floor/prison/darkbrowncorners2/north, /area/fiorina/tumor/aux_engi) "mFS" = ( /obj/structure/cargo_container/grant/left, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/power_ring) "mGf" = ( /obj/effect/landmark/monkey_spawn, -/turf/open/floor/prison{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/east, /area/fiorina/station/civres_blue) "mGr" = ( /obj/structure/stairs/perspective{ @@ -20925,9 +16638,7 @@ /area/fiorina/lz/near_lzI) "mGX" = ( /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/aux_engi) "mGZ" = ( /obj/item/trash/eat, @@ -20954,9 +16665,7 @@ /area/fiorina/tumor/aux_engi) "mHY" = ( /obj/item/frame/rack, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/fiorina/station/security) "mIf" = ( /obj/structure/stairs/perspective{ @@ -20971,9 +16680,7 @@ icon_state = "abed" }, /obj/item/reagent_container/food/snacks/wrapped/barcardine, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/fiorina/station/research_cells) "mIu" = ( /obj/effect/spawner/random/sentry/midchance, @@ -20984,24 +16691,17 @@ /obj/structure/machinery/microwave{ pixel_y = 6 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/fiorina/station/civres_blue) "mJc" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/aux_engi) "mJg" = ( /obj/structure/closet/secure_closet/engineering_personal, /obj/item/storage/pill_bottle/inaprovaline/skillless, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/fiorina/tumor/aux_engi) "mJk" = ( /obj/structure/surface/table/reinforced/prison, @@ -21024,36 +16724,23 @@ /area/fiorina/tumor/servers) "mJH" = ( /obj/item/device/flashlight/flare/on, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/tumor/ice_lab) "mKd" = ( /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/prison{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/east, /area/fiorina/station/lowsec) "mKo" = ( /obj/structure/closet/secure_closet/engineering_personal, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/north, /area/fiorina/maintenance) "mKp" = ( /obj/item/prop/helmetgarb/riot_shield, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/security) "mKx" = ( -/turf/open/floor/prison{ - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate, /area/fiorina/station/botany) "mKS" = ( /obj/structure/platform/kutjevo/smooth{ @@ -21073,15 +16760,11 @@ /obj/structure/platform_decoration{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/botany) "mLL" = ( /obj/item/tool/mop, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/park) "mLP" = ( /obj/structure/surface/table/reinforced/prison, @@ -21091,36 +16774,23 @@ /turf/open/floor/plating/prison, /area/fiorina/station/power_ring) "mLY" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/east, /area/fiorina/tumor/aux_engi) "mMa" = ( /obj/structure/closet/emcloset, -/turf/open/floor/prison{ - dir = 5; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/northeast, /area/fiorina/station/medbay) "mMh" = ( /obj/effect/spawner/random/sentry/midchance, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/station/medbay) "mMi" = ( /obj/item/tool/weldpack, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/civres_blue) "mMk" = ( /obj/structure/prop/resin_prop, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/fiorina/tumor/aux_engi) "mMH" = ( /obj/structure/flora/grass/tallgrass/jungle/corner{ @@ -21130,17 +16800,12 @@ dir = 8; layer = 3.5 }, -/turf/open/organic/grass{ - name = "astroturf" - }, +/turf/open/organic/grass/astroturf, /area/fiorina/station/civres_blue) "mMP" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/trash/plate, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/tumor/ice_lab) "mNc" = ( /obj/structure/reagent_dispensers/water_cooler, @@ -21156,18 +16821,12 @@ /area/fiorina/station/medbay) "mNN" = ( /obj/structure/largecrate/random/barrel/blue, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/fiorina/station/telecomm/lz1_cargo) "mOf" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/ashtray/plastic, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "mOm" = ( /obj/structure/platform{ @@ -21179,9 +16838,7 @@ /obj/structure/platform_decoration{ dir = 9 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/transit_hub) "mOE" = ( /obj/structure/stairs/perspective{ @@ -21189,38 +16846,25 @@ icon_state = "p_stair_full" }, /obj/structure/platform, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean_marked" - }, +/turf/open/floor/prison/bright_clean_marked/southwest, /area/fiorina/station/power_ring) "mOI" = ( /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/lowsec) "mOU" = ( /obj/structure/barricade/handrail/type_b{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/power_ring) "mPe" = ( /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/west, /area/fiorina/station/medbay) "mPf" = ( /obj/item/ammo_magazine/smg/mp5, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/west, /area/fiorina/station/telecomm/lz1_cargo) "mPg" = ( /obj/item/trash/boonie, @@ -21232,9 +16876,7 @@ pixel_x = 10; pixel_y = -3 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/power_ring) "mPW" = ( /obj/structure/prop/structure_lattice{ @@ -21244,10 +16886,7 @@ /turf/open/floor/plating/prison, /area/fiorina/station/telecomm/lz1_cargo) "mPX" = ( -/turf/open/floor/prison{ - dir = 5; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/northeast, /area/fiorina/station/park) "mQy" = ( /obj/structure/closet/secure_closet/guncabinet{ @@ -21256,9 +16895,7 @@ /obj/item/clothing/under/marine/ua_riot, /obj/item/clothing/suit/storage/marine/veteran/ua_riot, /obj/item/prop/helmetgarb/riot_shield, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/fiorina/station/security) "mQB" = ( /obj/structure/surface/table/reinforced/prison, @@ -21270,9 +16907,7 @@ dir = 8; layer = 3.5 }, -/turf/open/organic/grass{ - name = "astroturf" - }, +/turf/open/organic/grass/astroturf, /area/fiorina/station/civres_blue) "mQV" = ( /obj/item/tool/stamp, @@ -21282,10 +16917,7 @@ /obj/structure/bed/chair/office/dark{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "mRM" = ( /obj/structure/monorail{ @@ -21295,10 +16927,7 @@ /turf/open/space, /area/fiorina/oob) "mRS" = ( -/turf/open/floor/prison{ - dir = 5; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/northeast, /area/fiorina/station/central_ring) "mSk" = ( /obj/structure/surface/rack, @@ -21306,17 +16935,12 @@ /area/fiorina/lz/near_lzII) "mSo" = ( /obj/structure/bed/sofa/south/grey/right, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/fiorina/station/transit_hub) "mSp" = ( /obj/item/clothing/under/marine/ua_riot, /obj/item/weapon/gun/rifle/m16, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/security) "mSP" = ( /obj/effect/landmark/railgun_camera_pos, @@ -21324,9 +16948,7 @@ /area/fiorina/lz/near_lzI) "mSZ" = ( /obj/effect/alien/weeds/node, -/turf/open/floor/prison{ - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2, /area/fiorina/tumor/aux_engi) "mTa" = ( /obj/structure/ice/thin/indestructible{ @@ -21342,10 +16964,7 @@ /area/fiorina/station/research_cells) "mTl" = ( /obj/item/storage/box/gloves, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/fiorina/station/transit_hub) "mTs" = ( /obj/structure/barricade/wooden{ @@ -21362,10 +16981,7 @@ icon_state = "S" }, /obj/effect/decal/cleanable/blood/oil/streak, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/station/research_cells) "mUA" = ( /obj/effect/decal/cleanable/blood/oil, @@ -21376,9 +16992,7 @@ dir = 4 }, /obj/item/circuitboard/machine/rdserver, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/fiorina/tumor/servers) "mVd" = ( /obj/structure/surface/table/reinforced/prison, @@ -21405,70 +17019,48 @@ dir = 1; pixel_y = 21 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/security/wardens) "mVk" = ( /obj/item/stack/sheet/wood, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/fiorina/station/telecomm/lz1_cargo) "mVn" = ( /obj/structure/largecrate/random, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/fiorina/station/telecomm/lz1_tram) "mVO" = ( /obj/item/tool/extinguisher, /turf/open/floor/prison, /area/fiorina/tumor/servers) "mVY" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "damaged2" - }, +/turf/open/floor/prison/damaged2/southwest, /area/fiorina/station/security) "mWs" = ( /obj/structure/prop/souto_land/streamer{ dir = 6 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/north, /area/fiorina/station/park) "mWO" = ( /obj/effect/spawner/random/tool, /obj/structure/surface/rack, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/fiorina/tumor/aux_engi) "mWR" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/computer/communications/simple, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, +/turf/open/floor/prison/bluefull, /area/fiorina/station/power_ring) "mWS" = ( /obj/item/stack/rods, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/security) "mWX" = ( /obj/structure/platform{ dir = 8 }, -/turf/open/floor/prison/chapel_carpet{ - icon_state = "doubleside" - }, +/turf/open/floor/prison/chapel_carpet/doubleside, /area/fiorina/station/chapel) "mWY" = ( /obj/item/coin/uranium{ @@ -21490,28 +17082,18 @@ }, /obj/item/weapon/gun/launcher/grenade/m81, /obj/item/storage/pill_bottle/kelotane, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/fiorina/station/security) "mYl" = ( /obj/item/ammo_magazine/rifle/mar40, -/turf/open/floor/prison{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/west, /area/fiorina/station/lowsec) "mYy" = ( /obj/effect/landmark/monkey_spawn, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/north, /area/fiorina/tumor/aux_engi) "mYG" = ( -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/ship) "mZo" = ( /obj/item/tool/shovel, @@ -21524,28 +17106,21 @@ pixel_y = 21 }, /obj/effect/spawner/random/gun/smg/lowchance, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/fiorina/station/research_cells) "mZH" = ( /obj/structure/stairs/perspective{ dir = 1; icon_state = "p_stair_full" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/station/central_ring) "naf" = ( /turf/closed/shuttle/ert, /area/fiorina/oob) "naI" = ( /obj/item/clothing/under/color/orange, -/turf/open/floor/prison{ - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow, /area/fiorina/station/lowsec) "naW" = ( /turf/closed/wall/r_wall/prison, @@ -21556,16 +17131,10 @@ /area/fiorina/station/telecomm/lz2_maint) "nbP" = ( /obj/item/device/flashlight/lamp/tripod, -/turf/open/floor/prison{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/north, /area/fiorina/station/lowsec) "ncb" = ( -/turf/open/floor/prison{ - dir = 6; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/southeast, /area/fiorina/lz/near_lzI) "ncj" = ( /obj/item/device/flashlight/lamp/tripod, @@ -21588,33 +17157,22 @@ /obj/item/reagent_container/food/snacks/cherrypie{ pixel_y = 7 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/fiorina/station/flight_deck) "ncs" = ( /obj/structure/machinery/vending/sovietsoda, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/fiorina/station/botany) "ncF" = ( /obj/item/stack/sheet/metal, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/west, /area/fiorina/tumor/ice_lab) "ncY" = ( /obj/structure/bed/sofa/south/grey/right, /obj/item/storage/briefcase{ pixel_y = -2 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/security) "ndl" = ( /obj/item/storage/box/cups, @@ -21624,16 +17182,11 @@ /area/fiorina/station/power_ring) "ndD" = ( /obj/item/device/flashlight/lamp/tripod, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/lz/near_lzII) "ndQ" = ( /obj/structure/machinery/recharge_station, -/turf/open/floor/prison{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/northeast, /area/fiorina/station/research_cells) "ndZ" = ( /obj/structure/machinery/constructable_frame{ @@ -21652,19 +17205,14 @@ dir = 8; layer = 3.5 }, -/turf/open/organic/grass{ - name = "astroturf" - }, +/turf/open/organic/grass/astroturf, /area/fiorina/station/park) "nez" = ( /obj/item/ammo_casing{ dir = 6; icon_state = "casing_5" }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/north, /area/fiorina/station/park) "neE" = ( /obj/structure/largecrate/random/barrel/red, @@ -21675,9 +17223,7 @@ /turf/open/floor/prison, /area/fiorina/tumor/servers) "neY" = ( -/turf/open/floor/prison{ - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe, /area/fiorina/station/central_ring) "nfe" = ( /obj/effect/decal/cleanable/blood/writing{ @@ -21694,26 +17240,19 @@ pixel_x = -12; pixel_y = 2 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/fiorina/station/power_ring) "nfh" = ( /obj/structure/machinery/landinglight/ds2/delayone{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/lz/near_lzII) "nfu" = ( /obj/effect/decal/medical_decals{ icon_state = "cryomid" }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/north, /area/fiorina/station/medbay) "nfA" = ( /obj/structure/platform, @@ -21739,22 +17278,16 @@ /area/fiorina/station/civres_blue) "ngg" = ( /obj/item/device/flashlight/lamp/tripod, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, +/turf/open/floor/prison/bluefull, /area/fiorina/station/power_ring) "ngn" = ( /obj/structure/machinery/deployable/barrier, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/fiorina/station/security) "ngF" = ( /obj/item/device/flashlight/lamp/tripod, /obj/structure/machinery/light/double/blue, -/turf/open/floor/prison{ - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple, /area/fiorina/station/research_cells) "nho" = ( /obj/structure/platform{ @@ -21770,10 +17303,7 @@ /obj/structure/barricade/handrail/type_b{ layer = 3.5 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/north, /area/fiorina/station/civres_blue) "nhX" = ( /obj/structure/machinery/gibber, @@ -21781,9 +17311,7 @@ pixel_x = -6; pixel_y = 4 }, -/turf/open/floor/prison{ - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate, /area/fiorina/station/botany) "nhY" = ( /obj/structure/extinguisher_cabinet, @@ -21800,10 +17328,7 @@ /turf/open/floor/prison, /area/fiorina/station/flight_deck) "nim" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/prison/darkyellowcorners2/north, /area/fiorina/lz/near_lzI) "nip" = ( /obj/structure/machinery/door/airlock/prison_hatch/autoname{ @@ -21815,16 +17340,11 @@ /obj/structure/barricade/handrail{ dir = 8 }, -/turf/open/organic/grass{ - name = "astroturf" - }, +/turf/open/organic/grass/astroturf, /area/fiorina/station/research_cells) "njg" = ( /obj/effect/spawner/random/gun/rifle/lowchance, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/west, /area/fiorina/station/flight_deck) "njm" = ( /obj/structure/machinery/light/double/blue{ @@ -21832,25 +17352,18 @@ pixel_x = 10; pixel_y = -3 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "nju" = ( /obj/item/gift, -/turf/open/floor/prison{ - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2, /area/fiorina/station/park) "njG" = ( /obj/structure/machinery/light/double/blue{ dir = 1; pixel_y = 21 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/telecomm/lz1_cargo) "njK" = ( /obj/structure/surface/table/reinforced/prison, @@ -21868,10 +17381,7 @@ /area/fiorina/station/security) "njN" = ( /obj/item/stock_parts/micro_laser/ultra, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/southwest, /area/fiorina/tumor/servers) "njY" = ( /obj/structure/inflatable/popped, @@ -21879,41 +17389,26 @@ dir = 1; pixel_y = 21 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/north, /area/fiorina/station/medbay) "nkg" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/weapon/gun/shotgun/pump/dual_tube/cmb, -/turf/open/floor/prison{ - icon_state = "yellowfull" - }, +/turf/open/floor/prison/yellowfull, /area/fiorina/station/lowsec) "nkF" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/west, /area/fiorina/station/park) "nkJ" = ( /obj/structure/largecrate/supply/medicine/medkits, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/station/medbay) "nkM" = ( /obj/item/stack/cable_coil, -/turf/open/floor/prison{ - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2, /area/fiorina/tumor/servers) "nlw" = ( -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/fiorina/tumor/ship) "nlR" = ( /obj/structure/flora/bush/ausbushes/ausbush{ @@ -21921,63 +17416,43 @@ icon_state = "fullgrass_2"; name = "Fiberbush(tm) tubers" }, -/turf/open/organic/grass{ - desc = "It'll get in your shoes no matter what you do."; - name = "astroturf" - }, +/turf/open/organic/grass/astroturf, /area/fiorina/tumor/fiberbush) "nmh" = ( /obj/structure/window{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/fiorina/tumor/servers) "nmi" = ( /obj/structure/machinery/door/airlock/almayer/marine{ dir = 1; icon = 'icons/obj/structures/doors/prepdoor_charlie.dmi' }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/research_cells) "nmm" = ( -/turf/open/organic/grass{ - name = "astroturf" - }, +/turf/open/organic/grass/astroturf, /area/fiorina/station/research_cells) "nmy" = ( /obj/structure/machinery/space_heater, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/tumor/ice_lab) "nmK" = ( /obj/structure/barricade/wooden, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/west, /area/fiorina/station/medbay) "nmL" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_21" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "nmM" = ( /obj/structure/platform_decoration{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, +/turf/open/floor/prison/bluefull, /area/fiorina/station/power_ring) "nmT" = ( /obj/item/toy/crayon/blue, @@ -21992,16 +17467,12 @@ "nny" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/trash/cigbutt/bcigbutt, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, +/turf/open/floor/prison/bluefull, /area/fiorina/station/power_ring) "nnC" = ( /obj/structure/surface/table/reinforced/prison, /obj/effect/spawner/random/tool, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/power_ring) "nnG" = ( /obj/structure/platform{ @@ -22020,19 +17491,14 @@ /area/fiorina/station/power_ring) "noe" = ( /obj/structure/flora/grass/tallgrass/jungle, -/turf/open/organic/grass{ - name = "astroturf" - }, +/turf/open/organic/grass/astroturf, /area/fiorina/station/park) "nor" = ( /obj/effect/decal/medical_decals{ dir = 4; icon_state = "triagedecaldir" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "noz" = ( /obj/structure/platform{ @@ -22045,9 +17511,7 @@ dir = 4; layer = 3.5 }, -/turf/open/organic/grass{ - name = "astroturf" - }, +/turf/open/organic/grass/astroturf, /area/fiorina/station/civres_blue) "nqL" = ( /obj/structure/surface/rack, @@ -22068,19 +17532,14 @@ /obj/structure/platform_decoration{ dir = 10 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/botany) "nre" = ( /obj/item/stack/rods, /turf/open/floor/plating/prison, /area/fiorina/station/civres_blue) "nrn" = ( -/turf/open/floor/prison{ - dir = 5; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/northeast, /area/fiorina/maintenance) "nrU" = ( /obj/item/tool/pickaxe, @@ -22091,10 +17550,7 @@ pixel_y = 10 }, /obj/structure/surface/rack, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/tumor/ice_lab) "nsm" = ( /obj/structure/machinery/cm_vending/sorted/medical/no_access, @@ -22102,10 +17558,8 @@ dir = 8; health = 80 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/obj/structure/medical_supply_link, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/station/medbay) "nss" = ( /obj/structure/stairs/perspective{ @@ -22124,45 +17578,30 @@ layer = 3.1; pixel_y = 10 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/civres) "ntc" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "green" - }, +/turf/open/floor/prison/green/east, /area/fiorina/tumor/civres) "ntf" = ( /obj/item/implanter/compressed, /obj/structure/safe, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/fiorina/station/security) "ntv" = ( /obj/structure/window/framed/prison, /turf/open/floor/plating/prison, /area/fiorina/station/lowsec) "ntw" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/west, /area/fiorina/lz/near_lzI) "ntx" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/north, /area/fiorina/station/disco) "ntE" = ( /obj/structure/barricade/handrail/type_b, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/disco) "ntH" = ( /obj/structure/ice/thin/indestructible{ @@ -22178,10 +17617,7 @@ /area/fiorina/tumor/ice_lab) "ntM" = ( /obj/structure/machinery/space_heater, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "ntZ" = ( /obj/structure/machinery/light/double/blue{ @@ -22200,30 +17636,21 @@ layer = 3.1; pixel_y = 10 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/servers) "nuo" = ( /obj/structure/bed/sofa/south/grey/left, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/security/wardens) "nup" = ( /obj/structure/barricade/handrail/type_b, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/power_ring) "nuN" = ( /obj/structure/bed/chair/office/light{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/station/medbay) "nuX" = ( /obj/structure/stairs/perspective{ @@ -22237,16 +17664,11 @@ /obj/structure/barricade/wooden{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/telecomm/lz1_cargo) "nvn" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 1; - icon_state = "bluecorner" - }, +/turf/open/floor/prison/bluecorner/north, /area/fiorina/station/chapel) "nvs" = ( /obj/structure/platform_decoration{ @@ -22255,10 +17677,7 @@ /obj/effect/decal/medical_decals{ icon_state = "triagedecaldir" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "nvD" = ( /turf/closed/wall/r_wall/prison, @@ -22269,39 +17688,25 @@ /turf/open/floor/prison, /area/fiorina/tumor/aux_engi) "nvX" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/west, /area/fiorina/station/power_ring) "nwv" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/west, /area/fiorina/tumor/aux_engi) "nwS" = ( /obj/structure/largecrate/random/barrel/green, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/fiorina/station/telecomm/lz1_tram) "nwT" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/prison/green/north, /area/fiorina/tumor/aux_engi) "nxc" = ( /obj/structure/sign/poster{ icon_state = "poster18"; pixel_y = 32 }, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, +/turf/open/floor/prison/bluefull, /area/fiorina/station/power_ring) "nxl" = ( /obj/structure/machinery/light/double/blue{ @@ -22309,9 +17714,7 @@ pixel_x = -10; pixel_y = -3 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/fiorina/station/civres_blue) "nxq" = ( /obj/item/prop/helmetgarb/spacejam_tickets{ @@ -22329,9 +17732,7 @@ /obj/structure/barricade/wooden{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/telecomm/lz1_cargo) "nxY" = ( /obj/structure/sink{ @@ -22340,30 +17741,22 @@ }, /obj/structure/surface/table/reinforced/prison, /obj/item/clothing/gloves/latex, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/fiorina/station/medbay) "nyq" = ( /obj/structure/platform, /obj/structure/machinery/light/double/blue, -/turf/open/floor/prison{ - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen, /area/fiorina/station/medbay) "nyC" = ( /obj/item/stack/rods/plasteel, -/turf/open/floor/prison{ - icon_state = "floorscorched2" - }, +/turf/open/floor/prison/floorscorched2, /area/fiorina/station/security) "nyF" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22" }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/fiorina/station/disco) "nyO" = ( /obj/structure/machinery/light/double/blue{ @@ -22388,9 +17781,7 @@ /obj/effect/decal/cleanable/blood{ pixel_y = 20 }, -/turf/open/floor/prison{ - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate, /area/fiorina/station/botany) "nzi" = ( /obj/structure/barricade/wooden{ @@ -22400,16 +17791,11 @@ /area/fiorina/station/central_ring) "nzu" = ( /obj/structure/reagent_dispensers/water_cooler, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/security/wardens) "nzw" = ( /obj/item/clothing/head/soft/yellow, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/north, /area/fiorina/tumor/servers) "nzI" = ( /obj/structure/largecrate/random, @@ -22432,32 +17818,25 @@ /turf/open/floor/wood, /area/fiorina/station/park) "nAm" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/east, /area/fiorina/lz/near_lzII) "nAs" = ( /obj/structure/inflatable, -/turf/open/floor/prison{ - icon_state = "yellowfull" - }, +/turf/open/floor/prison/yellowfull, /area/fiorina/station/lowsec) "nAK" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "yellowcorner" - }, +/turf/open/floor/prison/yellowcorner/north, /area/fiorina/station/lowsec) +"nAV" = ( +/obj/structure/machinery/fuelcell_recycler/full, +/turf/open/floor/prison/bluecorner/west, +/area/fiorina/station/power_ring) "nBb" = ( /obj/structure/machinery/light/double/blue{ dir = 1; pixel_y = 21 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/north, /area/fiorina/station/lowsec) "nBt" = ( /obj/effect/decal/hefa_cult_decals/d32{ @@ -22469,10 +17848,7 @@ /turf/open/floor/prison, /area/fiorina/station/medbay) "nBw" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "bluecorner" - }, +/turf/open/floor/prison/bluecorner/west, /area/fiorina/station/power_ring) "nCh" = ( /obj/structure/machinery/light/double/blue{ @@ -22483,10 +17859,7 @@ /turf/open/floor/prison, /area/fiorina/station/medbay) "nCm" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/prison/darkyellowcorners2/west, /area/fiorina/lz/near_lzI) "nCt" = ( /obj/effect/decal/hefa_cult_decals/d32{ @@ -22496,30 +17869,20 @@ /area/fiorina/station/medbay) "nCH" = ( /obj/item/stack/rods, -/turf/open/floor/prison{ - dir = 5; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/northeast, /area/fiorina/station/disco) "nCV" = ( /obj/item/ammo_casing{ icon_state = "casing_7_1" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/station/medbay) "nCX" = ( -/turf/open/organic/grass{ - name = "astroturf" - }, +/turf/open/organic/grass/astroturf, /area/fiorina/station/park) "nDq" = ( /obj/structure/bed/sofa/south/grey/left, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/security) "nDr" = ( /obj/structure/machinery/door/airlock/almayer/maint/autoname{ @@ -22531,22 +17894,15 @@ /area/fiorina/station/medbay) "nDI" = ( /obj/item/stack/tile/plasteel, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/ice_lab) "nEh" = ( /obj/item/device/flashlight, -/turf/open/floor/prison{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/west, /area/fiorina/station/civres_blue) "nEB" = ( /obj/item/device/flashlight, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/medbay) "nEI" = ( /obj/structure/machinery/deployable/barrier, @@ -22555,9 +17911,7 @@ "nEN" = ( /obj/item/clothing/glasses/material, /obj/structure/barricade/handrail, -/turf/open/organic/grass{ - name = "astroturf" - }, +/turf/open/organic/grass/astroturf, /area/fiorina/station/research_cells) "nEP" = ( /obj/structure/closet, @@ -22570,18 +17924,13 @@ /obj/structure/machinery/computer/communications{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/tumor/ice_lab) "nFb" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/storage/fancy/cigarettes/emeraldgreen, /obj/item/tool/lighter, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/fiorina/station/security) "nFc" = ( /obj/item/ammo_casing{ @@ -22614,30 +17963,21 @@ /area/fiorina/station/security/wardens) "nGB" = ( /obj/structure/machinery/light/double/blue, -/turf/open/floor/prison{ - dir = 6; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/southeast, /area/fiorina/station/disco) "nGO" = ( /obj/structure/largecrate/random/barrel/yellow, /obj/structure/machinery/light/double/blue{ pixel_y = -1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/southwest, /area/fiorina/station/disco) "nGV" = ( /obj/structure/machinery/light/double/blue{ dir = 1; pixel_y = 21 }, -/turf/open/floor/prison{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/northeast, /area/fiorina/station/research_cells) "nGZ" = ( /turf/open/floor/prison, @@ -22645,10 +17985,7 @@ "nHm" = ( /obj/structure/surface/table/woodentable/fancy, /obj/item/storage/fancy/cigar, -/turf/open/floor/prison/chapel_carpet{ - dir = 1; - icon_state = "doubleside" - }, +/turf/open/floor/prison/chapel_carpet/doubleside/north, /area/fiorina/station/chapel) "nHZ" = ( /turf/closed/shuttle/ert{ @@ -22662,10 +17999,7 @@ pixel_x = 1; pixel_y = 13 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/fiorina/station/transit_hub) "nIc" = ( /obj/structure/disposalpipe/segment{ @@ -22688,17 +18022,13 @@ /obj/structure/prop/almayer/computers/sensor_computer1{ name = "computer" }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/fiorina/station/security) "nJq" = ( /obj/structure/platform{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/transit_hub) "nJu" = ( /obj/item/stack/rods, @@ -22706,18 +18036,13 @@ /area/fiorina/station/transit_hub) "nJT" = ( /obj/structure/inflatable/popped/door, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/west, /area/fiorina/station/medbay) "nKf" = ( /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, +/turf/open/floor/prison/bluefull, /area/fiorina/station/power_ring) "nKl" = ( /obj/structure/platform{ @@ -22737,16 +18062,11 @@ icon_state = "mwo"; pixel_y = 6 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/fiorina/tumor/civres) "nKG" = ( /obj/item/stack/sheet/metal, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/fiorina/tumor/ship) "nKX" = ( /obj/structure/barricade/metal{ @@ -22771,10 +18091,7 @@ pixel_y = -11 }, /obj/item/reagent_container/food/snacks/doughslice, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/fiorina/station/flight_deck) "nLV" = ( /turf/closed/shuttle/ert{ @@ -22783,22 +18100,14 @@ /area/fiorina/tumor/aux_engi) "nMg" = ( /obj/effect/landmark/static_comms/net_one, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/southwest, /area/fiorina/station/telecomm/lz1_tram) "nMi" = ( /obj/structure/largecrate/random/secure, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/station/medbay) "nMm" = ( -/turf/open/floor/prison{ - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2, /area/fiorina/tumor/aux_engi) "nMn" = ( /obj/structure/surface/table/reinforced/prison, @@ -22806,10 +18115,7 @@ /turf/open/floor/prison, /area/fiorina/station/power_ring) "nMp" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenblue" - }, +/turf/open/floor/prison/greenblue/east, /area/fiorina/station/botany) "nMz" = ( /obj/structure/stairs/perspective{ @@ -22819,10 +18125,7 @@ /obj/structure/platform{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/central_ring) "nMI" = ( /obj/structure/machinery/light/double/blue{ @@ -22852,10 +18155,7 @@ /area/fiorina/maintenance) "nNS" = ( /obj/item/device/flashlight/flare, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/fiorina/station/telecomm/lz1_cargo) "nOe" = ( /obj/structure/barricade/handrail/type_b{ @@ -22869,16 +18169,11 @@ pixel_x = 10; pixel_y = 13 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/civres_blue) "nOi" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/west, /area/fiorina/station/park) "nOw" = ( /obj/structure/ice/thin/indestructible{ @@ -22912,35 +18207,25 @@ pixel_y = -3 }, /obj/structure/largecrate/random/case/double, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/fiorina/tumor/aux_engi) "nQl" = ( /obj/effect/decal/medical_decals{ icon_state = "docstripingdir" }, /obj/item/stack/rods/plasteel, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/station/medbay) "nQq" = ( /obj/structure/machinery/cm_vending/sorted/medical/wall_med/limited, /turf/closed/wall/prison, /area/fiorina/station/medbay) "nQu" = ( -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/central_ring) "nQE" = ( /obj/item/stack/sheet/metal, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/north, /area/fiorina/tumor/ice_lab) "nQF" = ( /obj/structure/largecrate/random, @@ -22951,9 +18236,7 @@ dir = 1; pixel_y = 21 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/lz/near_lzII) "nQJ" = ( /obj/structure/surface/table/reinforced/prison, @@ -22961,9 +18244,7 @@ pixel_y = 32 }, /obj/item/tool/kitchen/knife/butcher, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/fiorina/station/power_ring) "nRQ" = ( /obj/structure/surface/table/reinforced/prison, @@ -22975,10 +18256,7 @@ pixel_x = -5; pixel_y = -11 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/fiorina/station/flight_deck) "nRT" = ( /obj/structure/platform_decoration{ @@ -22989,17 +18267,11 @@ pixel_x = -10; pixel_y = 13 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/southwest, /area/fiorina/station/medbay) "nRU" = ( /obj/structure/closet/emcloset, -/turf/open/floor/prison{ - dir = 6; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/southeast, /area/fiorina/station/medbay) "nSh" = ( /obj/structure/stairs/perspective{ @@ -23018,10 +18290,7 @@ /obj/structure/surface/table/reinforced/prison, /obj/item/reagent_container/dropper, /obj/item/attachable/bipod, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/fiorina/lz/near_lzI) "nSU" = ( /obj/structure/surface/rack, @@ -23034,15 +18303,11 @@ }, /area/fiorina/tumor/ship) "nTv" = ( -/turf/open/floor/prison{ - icon_state = "bluecorner" - }, +/turf/open/floor/prison/bluecorner, /area/fiorina/station/chapel) "nTV" = ( /obj/structure/machinery/autolathe/full, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/fiorina/tumor/aux_engi) "nUb" = ( /obj/item/stack/rods, @@ -23056,9 +18321,7 @@ /area/fiorina/station/park) "nUm" = ( /obj/structure/barricade/wooden, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/telecomm/lz1_cargo) "nUr" = ( /obj/structure/ice/thin/indestructible, @@ -23091,9 +18354,7 @@ /area/fiorina/maintenance) "nUS" = ( /obj/structure/machinery/computer3/server/rack, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/servers) "nVu" = ( /obj/structure/sink{ @@ -23101,10 +18362,7 @@ pixel_x = 12 }, /obj/structure/largecrate/random/case/double, -/turf/open/floor/prison{ - dir = 6; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/southeast, /area/fiorina/station/research_cells) "nVE" = ( /obj/item/stack/tile/plasteel, @@ -23112,16 +18370,11 @@ /area/fiorina/station/disco) "nVN" = ( /obj/item/trash/cigbutt, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/telecomm/lz1_cargo) "nVR" = ( /obj/effect/spawner/random/tool, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/west, /area/fiorina/tumor/aux_engi) "nWh" = ( /obj/item/tool/wrench, @@ -23129,10 +18382,7 @@ /area/fiorina/tumor/aux_engi) "nWk" = ( /obj/effect/spawner/random/gun/smg/midchance, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/north, /area/fiorina/station/park) "nWv" = ( /obj/item/reagent_container/food/drinks/coffee{ @@ -23153,10 +18403,7 @@ pixel_y = 13 }, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/southwest, /area/fiorina/maintenance) "nWC" = ( /obj/item/clothing/shoes/yellow, @@ -23164,9 +18411,7 @@ /area/fiorina/station/civres_blue) "nWM" = ( /obj/structure/machinery/disposal, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, +/turf/open/floor/prison/bluefull, /area/fiorina/station/power_ring) "nXj" = ( /obj/structure/curtain/black, @@ -23197,15 +18442,11 @@ /obj/structure/barricade/wooden{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/civres_blue) "nYE" = ( /obj/item/tool/wrench, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/aux_engi) "nYT" = ( /obj/structure/platform/kutjevo/smooth{ @@ -23222,14 +18463,10 @@ /turf/open/space/basic, /area/fiorina/oob) "nZB" = ( -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/lz/near_lzII) "nZI" = ( -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/flight_deck) "nZQ" = ( /obj/structure/bed/chair/comfy{ @@ -23244,16 +18481,10 @@ layer = 2.5; pixel_y = -11 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/east, /area/fiorina/station/flight_deck) "oaa" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/fiorina/station/flight_deck) "obh" = ( /obj/structure/window/framed/prison/reinforced, @@ -23263,10 +18494,7 @@ /obj/structure/platform{ dir = 4 }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/fiorina/station/botany) "obz" = ( /obj/structure/machinery/computer/arcade, @@ -23320,9 +18548,7 @@ /area/fiorina/station/disco) "odl" = ( /obj/structure/tunnel/maint_tunnel, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/fiorina/tumor/servers) "ody" = ( /obj/structure/machinery/autolathe, @@ -23330,37 +18556,25 @@ dir = 1; pixel_y = 21 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/civres) "odC" = ( -/turf/open/floor/prison{ - icon_state = "platingdmg1" - }, +/turf/open/floor/prison/platingdmg1, /area/fiorina/tumor/civres) "odQ" = ( /obj/structure/largecrate/supply, /turf/open/floor/plating/prison, /area/fiorina/station/research_cells) "oer" = ( -/turf/open/floor/prison{ - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2, /area/fiorina/station/park) "oev" = ( /obj/item/stack/sheet/metal, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/fiorina/tumor/civres) "oeN" = ( /obj/effect/landmark/corpsespawner/prison_security, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "oeT" = ( /obj/structure/disposalpipe/segment{ @@ -23370,17 +18584,11 @@ name = "overhead pipe"; pixel_y = 12 }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/fiorina/tumor/civres) "oeV" = ( /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/prison{ - dir = 8; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/west, /area/fiorina/station/botany) "oeY" = ( /obj/effect/spawner/random/tool, @@ -23390,10 +18598,7 @@ /obj/structure/bed/chair/comfy{ dir = 4 }, -/turf/open/floor/prison{ - dir = 6; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/southeast, /area/fiorina/station/disco) "ofq" = ( /turf/closed/shuttle/elevator{ @@ -23427,10 +18632,7 @@ /obj/structure/bed{ icon_state = "psychbed" }, -/turf/open/floor/prison{ - dir = 5; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/northeast, /area/fiorina/station/medbay) "ogf" = ( /obj/structure/monorail{ @@ -23438,32 +18640,21 @@ }, /turf/open/space, /area/fiorina/oob) -"ogs" = ( -/obj/structure/machinery/power/geothermal, -/turf/open/floor/prison, -/area/fiorina/station/power_ring) "ogM" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, /turf/open/floor/plating/prison, /area/fiorina/tumor/fiberbush) "ohc" = ( /obj/item/clothing/head/helmet/marine/veteran/ua_riot, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/security) "ohl" = ( /obj/effect/decal/cleanable/blood/drip, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/north, /area/fiorina/station/central_ring) "ohx" = ( /obj/item/tool/match, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/fiorina/station/security) "ohF" = ( /obj/structure/platform/kutjevo/smooth, @@ -23478,17 +18669,11 @@ /area/fiorina/tumor/aux_engi) "oib" = ( /obj/item/trash/hotdog, -/turf/open/floor/prison{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/west, /area/fiorina/station/power_ring) "oih" = ( /obj/item/paper/crumpled/bloody, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/tumor/ice_lab) "oiF" = ( /obj/structure/filingcabinet, @@ -23497,27 +18682,18 @@ pixel_y = 21 }, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/fiorina/tumor/servers) "oiV" = ( -/turf/open/floor/prison{ - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2, /area/fiorina/tumor/servers) "oiX" = ( /obj/structure/machinery/iv_drip, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/telecomm/lz1_cargo) "ojc" = ( /obj/effect/alien/weeds/node, -/turf/open/floor/prison{ - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen, /area/fiorina/tumor/ice_lab) "ojj" = ( /obj/effect/decal{ @@ -23526,9 +18702,7 @@ layer = 2.5; pixel_y = -11 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/telecomm/lz1_cargo) "ojk" = ( /obj/structure/stairs/perspective{ @@ -23557,9 +18731,7 @@ /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/civres) "okg" = ( /obj/structure/barricade/handrail/type_b{ @@ -23626,9 +18798,7 @@ /obj/structure/barricade/deployable{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "yellowfull" - }, +/turf/open/floor/prison/yellowfull, /area/fiorina/station/lowsec) "okJ" = ( /obj/structure/machinery/shower{ @@ -23637,9 +18807,7 @@ /obj/structure/machinery/shower{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/fiorina/station/research_cells) "okT" = ( /obj/item/device/flashlight/lamp/tripod, @@ -23657,9 +18825,7 @@ pixel_y = 5 }, /obj/item/storage/firstaid/adv, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/fiorina/tumor/ship) "olg" = ( /obj/structure/closet/crate/delta{ @@ -23675,10 +18841,7 @@ /area/fiorina/tumor/aux_engi) "olo" = ( /obj/structure/machinery/disposal, -/turf/open/organic/grass{ - desc = "It'll get in your shoes no matter what you do."; - name = "astroturf" - }, +/turf/open/organic/grass/astroturf, /area/fiorina/tumor/fiberbush) "oly" = ( /obj/structure/machinery/light/double/blue{ @@ -23714,15 +18877,11 @@ /obj/structure/platform_decoration{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/botany) "omO" = ( /obj/structure/barricade/wooden, -/turf/open/floor/prison{ - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe, /area/fiorina/station/medbay) "onb" = ( /obj/structure/bed/chair{ @@ -23735,26 +18894,20 @@ dir = 8; pixel_y = 24 }, -/turf/open/floor/prison{ - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2, /area/fiorina/station/park) "onh" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/computer/cameras{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/fiorina/station/security) "ont" = ( /obj/structure/platform_decoration{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, +/turf/open/floor/prison/bluefull, /area/fiorina/station/power_ring) "onB" = ( /obj/structure/closet/secure_closet/engineering_personal, @@ -23765,27 +18918,19 @@ dir = 1; pixel_y = 21 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/fiorina/lz/near_lzI) "onW" = ( /obj/structure/machinery/shower{ pixel_y = 13 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/fiorina/station/research_cells) "ooq" = ( /obj/structure/platform_decoration{ dir = 8 }, -/turf/open/floor/prison{ - dir = 5; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/northeast, /area/fiorina/station/disco) "oou" = ( /obj/structure/closet/emcloset, @@ -23800,9 +18945,7 @@ /area/fiorina/station/medbay) "oox" = ( /obj/structure/bed/chair, -/turf/open/floor/prison{ - icon_state = "bluecorner" - }, +/turf/open/floor/prison/bluecorner, /area/fiorina/station/power_ring) "ooF" = ( /obj/structure/machinery/power/apc, @@ -23816,48 +18959,28 @@ /obj/structure/surface/table/woodentable/fancy, /obj/item/reagent_container/food/drinks/bottle/holywater, /obj/item/reagent_container/food/drinks/bottle/holywater, -/turf/open/floor/prison/chapel_carpet{ - dir = 1; - icon_state = "doubleside" - }, +/turf/open/floor/prison/chapel_carpet/doubleside/north, /area/fiorina/station/chapel) "opj" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = 12 - }, /obj/effect/decal/cleanable/blood/gibs, -/turf/open/floor/prison{ - dir = 6; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/east, /area/fiorina/station/lowsec) "opM" = ( /obj/structure/bed/chair, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, +/turf/open/floor/prison/bluefull, /area/fiorina/station/power_ring) "opN" = ( /obj/item/stack/rods, -/turf/open/floor/prison{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/west, /area/fiorina/station/chapel) "opP" = ( /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/prison{ - dir = 8; - icon_state = "greenblue" - }, +/turf/open/floor/prison/greenblue/west, /area/fiorina/station/botany) "oqG" = ( /obj/structure/surface/table/reinforced/prison, /obj/effect/spawner/random/tool, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/park) "orr" = ( /obj/structure/surface/table/woodentable/fancy, @@ -23867,32 +18990,21 @@ pixel_y = 13 }, /obj/effect/decal/cleanable/cobweb2, -/turf/open/floor/prison/chapel_carpet{ - dir = 1; - icon_state = "doubleside" - }, +/turf/open/floor/prison/chapel_carpet/doubleside/north, /area/fiorina/station/chapel) "ort" = ( /obj/effect/spawner/random/tool, -/turf/open/floor/prison{ - dir = 8; - icon_state = "green" - }, +/turf/open/floor/prison/green/west, /area/fiorina/station/chapel) "orB" = ( /obj/structure/platform_decoration{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2, /area/fiorina/tumor/servers) "orC" = ( /obj/structure/machinery/vending/sovietsoda, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/fiorina/station/botany) "orD" = ( /obj/structure/surface/table/reinforced/prison, @@ -23900,9 +19012,7 @@ name = "Lung Transplants for Dummies"; pixel_y = 4 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/telecomm/lz1_cargo) "orV" = ( /obj/item/tool/weldingtool, @@ -23912,10 +19022,7 @@ /obj/structure/platform_decoration{ dir = 1 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkbrowncorners2" - }, +/turf/open/floor/prison/darkbrowncorners2/west, /area/fiorina/station/park) "osN" = ( /obj/structure/closet/bodybag, @@ -23927,10 +19034,7 @@ icon_state = "abed" }, /obj/item/bedsheet/green, -/turf/open/floor/prison{ - dir = 10; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/southwest, /area/fiorina/station/lowsec) "osX" = ( /obj/structure/cable/heavyduty{ @@ -23940,31 +19044,20 @@ /area/fiorina/tumor/aux_engi) "ota" = ( /obj/effect/landmark/survivor_spawner, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/power_ring) "otg" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/west, /area/fiorina/tumor/servers) "oty" = ( /obj/structure/closet/bombcloset, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/fiorina/station/flight_deck) "otz" = ( /obj/structure/closet/crate/medical, /obj/item/storage/fancy/vials/random, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "otC" = ( /obj/structure/bed/chair/comfy{ @@ -23973,10 +19066,7 @@ /turf/open/floor/prison, /area/fiorina/station/security/wardens) "otK" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/west, /area/fiorina/tumor/servers) "ouH" = ( /obj/structure/surface/table/reinforced/prison, @@ -23993,16 +19083,10 @@ /area/fiorina/station/park) "ovk" = ( /obj/effect/spawner/random/tool, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreencorner" - }, +/turf/open/floor/prison/whitegreencorner/east, /area/fiorina/tumor/ice_lab) "ovq" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/fiorina/station/telecomm/lz1_cargo) "ovr" = ( /obj/structure/girder/displaced, @@ -24015,10 +19099,7 @@ /obj/item/storage/bible/hefa{ pixel_y = 3 }, -/turf/open/floor/prison/chapel_carpet{ - dir = 1; - icon_state = "doubleside" - }, +/turf/open/floor/prison/chapel_carpet/doubleside/north, /area/fiorina/station/chapel) "owd" = ( /obj/item/storage/backpack/souto, @@ -24026,9 +19107,7 @@ /area/fiorina/station/chapel) "owp" = ( /obj/effect/landmark/static_comms/net_two, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/lz/near_lzII) "owS" = ( /obj/structure/machinery/light/double/blue{ @@ -24036,10 +19115,7 @@ pixel_x = -10; pixel_y = 13 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/west, /area/fiorina/station/research_cells) "oxp" = ( /obj/structure/platform{ @@ -24049,15 +19125,11 @@ /obj/structure/machinery/door/airlock/prison_hatch/autoname{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/ice_lab) "oxv" = ( /obj/effect/alien/weeds/node, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/servers) "oxA" = ( /turf/closed/shuttle/ert{ @@ -24066,21 +19138,14 @@ /area/fiorina/tumor/ship) "oxK" = ( /obj/structure/largecrate/random/case/small, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/fiorina/tumor/aux_engi) "oxS" = ( /obj/item/paper/crumpled/bloody, -/turf/open/floor/prison/chapel_carpet{ - icon_state = "doubleside" - }, +/turf/open/floor/prison/chapel_carpet/doubleside, /area/fiorina/station/chapel) "oxU" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/fiorina/station/transit_hub) "oyd" = ( /obj/item/stack/sheet/metal, @@ -24100,19 +19165,13 @@ /area/fiorina/lz/near_lzI) "oyo" = ( /obj/structure/flora/pottedplant/random, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/fiorina/tumor/civres) "oyy" = ( /obj/structure/bed{ icon_state = "abed" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/southwest, /area/fiorina/station/research_cells) "oyC" = ( /obj/structure/bed/sofa/south/grey/right, @@ -24131,30 +19190,21 @@ icon_state = "p_stair_full" }, /obj/structure/platform, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean_marked" - }, +/turf/open/floor/prison/bright_clean_marked/southwest, /area/fiorina/station/power_ring) "oyS" = ( /obj/structure/bed/sofa/south/grey/left, /turf/open/floor/prison, /area/fiorina/station/disco) "oyT" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/west, /area/fiorina/station/park) "oza" = ( /obj/structure/largecrate/random/case/double, /obj/effect/decal/medical_decals{ icon_state = "triagedecalbottom" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/station/medbay) "ozC" = ( /obj/structure/flora/pottedplant{ @@ -24165,19 +19215,13 @@ /area/fiorina/station/security) "oAf" = ( /obj/item/trash/boonie, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/station/medbay) "oAj" = ( /obj/structure/machinery/bot/medbot{ name = "Dr. O" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "oBj" = ( /obj/effect/decal/cleanable/blood, @@ -24204,9 +19248,7 @@ /obj/structure/platform_decoration{ dir = 9 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/park) "oDe" = ( /obj/effect/landmark/monkey_spawn, @@ -24224,9 +19266,7 @@ /obj/item/phone{ pixel_y = 7 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/security) "oDh" = ( /obj/item/stack/rods, @@ -24238,34 +19278,15 @@ dir = 1; pixel_y = 21 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/fiorina/station/research_cells) "oDV" = ( /obj/item/stack/rods, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/west, /area/fiorina/station/medbay) "oEi" = ( -/turf/open/floor/prison{ - dir = 9; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/northwest, /area/fiorina/station/civres_blue) -"oEn" = ( -/obj/structure/closet/crate/bravo, -/obj/item/stack/sheet/metal/medium_stack, -/obj/item/stack/sheet/metal/medium_stack, -/obj/item/fuelCell, -/obj/item/stack/sheet/plasteel, -/obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, -/area/fiorina/station/power_ring) "oEs" = ( /obj/structure/barricade/handrail/type_b{ layer = 3.5 @@ -24274,9 +19295,7 @@ dir = 8; layer = 3.5 }, -/turf/open/organic/grass{ - name = "astroturf" - }, +/turf/open/organic/grass/astroturf, /area/fiorina/station/civres_blue) "oEu" = ( /obj/structure/platform_decoration, @@ -24284,9 +19303,7 @@ icon_state = "medium"; name = "ice shard" }, -/turf/open/floor/prison{ - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen, /area/fiorina/tumor/ice_lab) "oED" = ( /obj/effect/landmark/monkey_spawn, @@ -24320,30 +19337,21 @@ /turf/open/floor/prison, /area/fiorina/lz/near_lzI) "oEQ" = ( -/turf/open/floor/prison{ - dir = 6; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/southeast, /area/fiorina/station/power_ring) "oEX" = ( /obj/structure/closet/crate/miningcar{ name = "\improper materials storage bin" }, -/turf/open/floor/prison{ - icon_state = "greenblue" - }, +/turf/open/floor/prison/greenblue, /area/fiorina/station/botany) "oFf" = ( /obj/item/reagent_container/food/drinks/cans/aspen, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/lowsec) "oFk" = ( /obj/structure/closet/secure_closet/engineering_personal, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/fiorina/tumor/ship) "oFp" = ( /obj/structure/barricade/metal/wired{ @@ -24353,10 +19361,7 @@ dir = 1; pixel_y = 21 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/north, /area/fiorina/station/lowsec) "oFI" = ( /obj/structure/machinery/door/airlock/prison_hatch/autoname{ @@ -24371,10 +19376,7 @@ /obj/structure/pipes/standard/simple/visible{ dir = 9 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/station/medbay) "oFU" = ( /obj/structure/machinery/light/double/blue{ @@ -24382,17 +19384,11 @@ pixel_x = 10; pixel_y = 13 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenblue" - }, +/turf/open/floor/prison/greenblue/east, /area/fiorina/station/botany) "oGg" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/east, /area/fiorina/tumor/aux_engi) "oGy" = ( /obj/structure/stairs/perspective{ @@ -24402,18 +19398,13 @@ /obj/structure/platform{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/ice_lab) "oGR" = ( /obj/structure/machinery/landinglight/ds1/delaythree{ dir = 1 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/fiorina/lz/near_lzI) "oGU" = ( /obj/structure/surface/table/woodentable, @@ -24427,10 +19418,7 @@ /turf/open/floor/prison, /area/fiorina/station/disco) "oHm" = ( -/turf/open/floor/prison{ - dir = 5; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/northeast, /area/fiorina/tumor/aux_engi) "oHX" = ( /obj/structure/ice/thin/indestructible{ @@ -24440,13 +19428,6 @@ /obj/structure/blocker/invisible_wall, /turf/open/ice/noweed, /area/fiorina/tumor/ice_lab) -"oIg" = ( -/obj/structure/platform, -/obj/structure/reagent_dispensers/oxygentank{ - layer = 2.6 - }, -/turf/open/floor/prison, -/area/fiorina/lz/near_lzI) "oIq" = ( /obj/structure/ice/thin/indestructible{ dir = 1; @@ -24462,33 +19443,22 @@ "oIz" = ( /obj/structure/surface/rack, /obj/item/storage/toolbox/mechanical/green, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/aux_engi) "oIE" = ( /obj/effect/landmark/xeno_spawn, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/east, /area/fiorina/tumor/aux_engi) "oJd" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/east, /area/fiorina/station/park) "oJl" = ( /obj/structure/machinery/light/double/blue{ dir = 1; pixel_y = 21 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/east, /area/fiorina/station/botany) "oJm" = ( /obj/item/tool/weldingtool, @@ -24498,9 +19468,7 @@ /obj/structure/window/reinforced/tinted, /obj/item/storage/briefcase, /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/fiorina/lz/near_lzI) "oJL" = ( /obj/structure/machinery/light/small{ @@ -24521,17 +19489,11 @@ flipped = 1 }, /obj/item/reagent_container/food/snacks/eat_bar, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "oJY" = ( /obj/item/stack/sandbags/large_stack, -/turf/open/floor/prison{ - dir = 6; - icon_state = "green" - }, +/turf/open/floor/prison/green/southeast, /area/fiorina/tumor/civres) "oKf" = ( /obj/structure/stairs/perspective{ @@ -24550,9 +19512,7 @@ /obj/structure/barricade/handrail{ dir = 8 }, -/turf/open/organic/grass{ - name = "astroturf" - }, +/turf/open/organic/grass/astroturf, /area/fiorina/station/research_cells) "oKq" = ( /obj/effect/landmark/objective_landmark/close, @@ -24560,22 +19520,16 @@ /area/fiorina/tumor/civres) "oKV" = ( /obj/structure/machinery/door/airlock/multi_tile/elevator/freight, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/fiorina/station/civres_blue) "oLF" = ( /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/prison{ - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2, /area/fiorina/station/park) "oLK" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/computer/objective, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/fiorina/tumor/servers) "oLV" = ( /obj/structure/largecrate/random/secure, @@ -24584,15 +19538,11 @@ "oLX" = ( /obj/structure/surface/rack, /obj/item/tank/emergency_oxygen/engi, -/turf/open/floor/prison{ - icon_state = "bluecorner" - }, +/turf/open/floor/prison/bluecorner, /area/fiorina/station/power_ring) "oMf" = ( /obj/structure/bed/chair/comfy, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/security/wardens) "oMu" = ( /obj/effect/landmark/survivor_spawner, @@ -24609,33 +19559,23 @@ pixel_x = 1; pixel_y = -1 }, -/turf/open/floor/prison{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/northeast, /area/fiorina/station/research_cells) "oNu" = ( /obj/structure/barricade/handrail/type_b{ layer = 3.4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/tumor/ice_lab) "oNx" = ( /obj/structure/barricade/handrail{ dir = 4 }, -/turf/open/organic/grass{ - name = "astroturf" - }, +/turf/open/organic/grass/astroturf, /area/fiorina/station/research_cells) "oNC" = ( /obj/structure/inflatable, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/fiorina/station/research_cells) "oOg" = ( /obj/structure/barricade/handrail/type_b{ @@ -24645,9 +19585,7 @@ /obj/structure/platform_decoration{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/disco) "oOh" = ( /obj/structure/surface/table/reinforced/prison, @@ -24658,16 +19596,11 @@ dir = 1; pixel_y = 21 }, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/fiorina/station/security) "oOi" = ( /obj/effect/decal/hefa_cult_decals/d32, -/turf/open/floor/prison/chapel_carpet{ - dir = 1; - icon_state = "doubleside" - }, +/turf/open/floor/prison/chapel_carpet/doubleside/north, /area/fiorina/maintenance) "oOk" = ( /obj/structure/platform, @@ -24675,9 +19608,7 @@ dir = 1; layer = 2.7 }, -/turf/open/floor/prison{ - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen, /area/fiorina/station/medbay) "oOp" = ( /obj/structure/machinery/power/smes/buildable{ @@ -24688,9 +19619,7 @@ /area/fiorina/tumor/aux_engi) "oOw" = ( /obj/structure/machinery/vending/coffee, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/civres_blue) "oOU" = ( /obj/structure/reagent_dispensers/water_cooler{ @@ -24698,9 +19627,7 @@ pixel_x = -8; pixel_y = 16 }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/fiorina/station/research_cells) "oOV" = ( /obj/structure/machinery/filtration/console{ @@ -24710,19 +19637,14 @@ /area/fiorina/tumor/ship) "oPn" = ( /obj/structure/bed/roller, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "oPN" = ( /obj/structure/inflatable/popped/door, /turf/open/floor/plating/prison, /area/fiorina/station/lowsec) "oPR" = ( -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/disco) "oPU" = ( /turf/open/floor/prison, @@ -24733,10 +19655,7 @@ /area/fiorina/station/park) "oQk" = ( /obj/structure/inflatable/popped, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "oQI" = ( /obj/item/prop/helmetgarb/spacejam_tickets{ @@ -24752,16 +19671,10 @@ dir = 1; pixel_y = 21 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/fiorina/station/disco) "oRg" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/fiorina/station/telecomm/lz1_cargo) "oRR" = ( /obj/structure/surface/table/reinforced/prison, @@ -24769,19 +19682,13 @@ /area/fiorina/station/park) "oSn" = ( /obj/structure/inflatable/door, -/turf/open/floor/prison{ - dir = 5; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/northeast, /area/fiorina/station/lowsec) "oSz" = ( /obj/item/shard{ icon_state = "medium" }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/northwest, /area/fiorina/station/disco) "oTa" = ( /obj/structure/surface/table/reinforced/prison, @@ -24790,15 +19697,10 @@ pixel_y = 8 }, /obj/item/trash/cigbutt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "oTi" = ( -/turf/open/floor/prison{ - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen, /area/fiorina/station/medbay) "oTy" = ( /obj/structure/prop/structure_lattice{ @@ -24808,9 +19710,7 @@ layer = 3.1; pixel_y = 10 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/aux_engi) "oTz" = ( /obj/structure/barricade/handrail/type_b{ @@ -24820,15 +19720,10 @@ dir = 4; layer = 3.5 }, -/turf/open/organic/grass{ - name = "astroturf" - }, +/turf/open/organic/grass/astroturf, /area/fiorina/station/civres_blue) "oTP" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/southwest, /area/fiorina/station/telecomm/lz1_tram) "oTS" = ( /obj/structure/stairs/perspective{ @@ -24858,22 +19753,14 @@ /area/fiorina/oob) "oVk" = ( /obj/vehicle/train/cargo/trolley, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/transit_hub) "oWw" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkbrowncorners2" - }, +/turf/open/floor/prison/darkbrowncorners2/east, /area/fiorina/station/park) "oWC" = ( /obj/item/stack/sandbags/large_stack, -/turf/open/floor/prison{ - dir = 5; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/northeast, /area/fiorina/station/disco) "oWF" = ( /obj/structure/machinery/door/airlock/prison_hatch/autoname, @@ -24884,47 +19771,31 @@ dir = 6; icon_state = "casing_10_1" }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/north, /area/fiorina/station/park) "oWY" = ( /obj/structure/largecrate/random, /obj/item/reagent_container/food/drinks/coffee{ pixel_y = 13 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/southwest, /area/fiorina/station/medbay) "oXb" = ( /obj/item/stack/sheet/metal, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/fiorina/station/security) "oXg" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/north, /area/fiorina/station/lowsec) "oXk" = ( /obj/structure/closet/secure_closet/personal, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/fiorina/tumor/servers) "oXD" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/reagent_container/food/drinks/cans/aspen, -/turf/open/floor/prison{ - dir = 10; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/southwest, /area/fiorina/station/lowsec) "oXI" = ( /obj/structure/platform{ @@ -24933,10 +19804,7 @@ /obj/effect/decal/medical_decals{ icon_state = "docdecal1" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "oXR" = ( /obj/structure/ice/thin/indestructible{ @@ -24969,10 +19837,7 @@ dir = 4; icon_state = "p_stair_sn_full_cap" }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/east, /area/fiorina/station/chapel) "oYW" = ( /obj/structure/machinery/light/double/blue{ @@ -24980,17 +19845,12 @@ pixel_x = -10; pixel_y = 13 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/fiorina/tumor/servers) "oZf" = ( /obj/structure/surface/rack, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/tumor/ice_lab) "oZi" = ( /obj/item/clothing/under/color/orange, @@ -24998,15 +19858,10 @@ /area/fiorina/station/security) "oZj" = ( /obj/effect/landmark/survivor_spawner, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/fiorina/station/research_cells) "oZk" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/southwest, /area/fiorina/tumor/ice_lab) "oZx" = ( /obj/item/trash/used_stasis_bag{ @@ -25034,16 +19889,11 @@ "oZS" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/clipboard, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, +/turf/open/floor/prison/bluefull, /area/fiorina/station/power_ring) "oZU" = ( /obj/structure/largecrate/random/case, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/station/research_cells) "pab" = ( /obj/item/tool/weldpack{ @@ -25059,9 +19909,7 @@ /obj/effect/decal/medical_decals{ icon_state = "docdecal1" }, -/turf/open/floor/prison{ - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen, /area/fiorina/station/medbay) "pah" = ( /obj/structure/platform{ @@ -25074,15 +19922,11 @@ desc = "Prison meal vendor, containing preprepared meals fit for the dregs of society."; name = "\improper Fiorina Green Block Canteen Vendor" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/lowsec) "paF" = ( /obj/item/tool/shovel/etool, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/civres_blue) "paI" = ( /obj/structure/monorail{ @@ -25095,15 +19939,11 @@ /obj/structure/machinery/computer/cameras{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/fiorina/station/security) "pbp" = ( /obj/structure/machinery/door/airlock/multi_tile/elevator/freight, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/fiorina/station/telecomm/lz1_cargo) "pbv" = ( /obj/structure/prop/structure_lattice{ @@ -25114,9 +19954,7 @@ layer = 3.1; pixel_y = 10 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/servers) "pbV" = ( /obj/structure/platform/kutjevo/smooth{ @@ -25133,9 +19971,7 @@ /turf/open/space, /area/fiorina/oob) "pbX" = ( -/turf/open/floor/prison{ - icon_state = "red" - }, +/turf/open/floor/prison/red, /area/fiorina/station/security) "pca" = ( /obj/structure/stairs/perspective{ @@ -25156,9 +19992,7 @@ "pcN" = ( /obj/structure/surface/table/reinforced/prison, /obj/effect/spawner/random/tool, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/fiorina/station/research_cells) "pdB" = ( /obj/structure/machinery/light/double/blue{ @@ -25173,9 +20007,7 @@ dir = 1; pixel_y = 21 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/chapel) "pdP" = ( /obj/structure/largecrate/random/case/double, @@ -25185,16 +20017,11 @@ /obj/structure/flora/bush/ausbushes/grassybush{ icon_state = "lavendergrass_1" }, -/turf/open/organic/grass{ - desc = "It'll get in your shoes no matter what you do."; - name = "astroturf" - }, +/turf/open/organic/grass/astroturf, /area/fiorina/station/central_ring) "pen" = ( /obj/structure/bed/sofa/vert/grey/bot, -/turf/open/floor/prison{ - icon_state = "green" - }, +/turf/open/floor/prison/green, /area/fiorina/station/transit_hub) "peA" = ( /obj/structure/machinery/computer/communications{ @@ -25202,38 +20029,26 @@ pixel_y = 5 }, /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/fiorina/tumor/servers) "peP" = ( /obj/structure/machinery/light/double/blue{ pixel_y = -1 }, -/turf/open/floor/prison{ - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2, /area/fiorina/station/telecomm/lz1_cargo) "pgb" = ( -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/fiorina/tumor/ice_lab) "pgx" = ( /obj/structure/machinery/computer3/server/rack, /obj/structure/window{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/fiorina/tumor/servers) "pgQ" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/southwest, /area/fiorina/station/chapel) "phe" = ( /obj/structure/girder, @@ -25241,34 +20056,24 @@ /area/fiorina/maintenance) "pho" = ( /obj/item/stack/sheet/wood, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/fiorina/station/research_cells) "phz" = ( /turf/open/floor/plating/prison, /area/fiorina/tumor/ice_lab) "phC" = ( /obj/item/newspaper, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/north, /area/fiorina/tumor/ice_lab) "phQ" = ( /obj/structure/platform{ dir = 8 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/west, /area/fiorina/tumor/ice_lab) "pim" = ( /obj/structure/machinery/door/airlock/prison_hatch/autoname, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/fiorina/station/lowsec) "piw" = ( /obj/structure/platform{ @@ -25285,15 +20090,10 @@ "pjf" = ( /obj/item/ammo_magazine/rifle/m16, /obj/item/clothing/head/helmet/marine/veteran/ua_riot, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/security) "pjg" = ( -/turf/open/floor/prison{ - dir = 9; - icon_state = "green" - }, +/turf/open/floor/prison/green/northwest, /area/fiorina/tumor/servers) "pjE" = ( /obj/structure/filingcabinet/filingcabinet{ @@ -25303,10 +20103,7 @@ pixel_x = -8 }, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/station/medbay) "pjR" = ( /obj/structure/surface/table/reinforced/prison, @@ -25321,9 +20118,7 @@ pixel_x = -3; pixel_y = 16 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/security) "pjT" = ( /obj/structure/surface/table/reinforced/prison, @@ -25332,27 +20127,18 @@ /area/fiorina/station/power_ring) "pjW" = ( /obj/effect/landmark/monkey_spawn, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/tumor/ice_lab) "pkB" = ( /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/east, /area/fiorina/lz/near_lzI) "pkM" = ( /obj/structure/largecrate/machine, /turf/open/floor/plating/prison, /area/fiorina/station/medbay) "plh" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "greenblue" - }, +/turf/open/floor/prison/greenblue/southwest, /area/fiorina/station/botany) "plu" = ( /obj/item/device/flashlight/lamp/tripod, @@ -25369,10 +20155,7 @@ /obj/structure/surface/rack, /obj/item/poster, /obj/item/poster, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/fiorina/lz/near_lzI) "pmv" = ( /obj/structure/disposalpipe/segment{ @@ -25383,25 +20166,17 @@ pixel_x = -16; pixel_y = 12 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/north, /area/fiorina/tumor/servers) "pmC" = ( /obj/effect/decal{ icon = 'icons/obj/items/policetape.dmi'; icon_state = "engineering_v" }, -/turf/open/floor/prison{ - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2, /area/fiorina/station/telecomm/lz1_cargo) "pnh" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/fiorina/tumor/servers) "pnx" = ( /obj/effect/landmark/xeno_spawn, @@ -25409,9 +20184,7 @@ /area/fiorina/tumor/aux_engi) "pnP" = ( /obj/effect/landmark/corpsespawner/ua_riot, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/lowsec) "pnS" = ( /obj/structure/surface/table/reinforced/prison, @@ -25419,9 +20192,7 @@ /area/fiorina/tumor/servers) "poC" = ( /obj/structure/machinery/photocopier, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/fiorina/station/research_cells) "ppq" = ( /obj/structure/surface/table/reinforced/prison, @@ -25429,9 +20200,7 @@ icon_state = "pottedplant_29"; pixel_y = 10 }, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/fiorina/station/security) "ppG" = ( /obj/item/stack/rods/plasteel, @@ -25449,32 +20218,22 @@ /area/fiorina/station/transit_hub) "ppS" = ( /obj/structure/bed/sofa/vert/grey/top, -/turf/open/floor/prison{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/prison/green/north, /area/fiorina/station/transit_hub) "ppX" = ( /obj/structure/closet/secure_closet/medical2{ req_access_txt = "100" }, /obj/item/alienjar, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/fiorina/station/medbay) "ppZ" = ( /obj/structure/machinery/vending/cigarette/colony, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/tumor/ice_lab) "pqz" = ( /obj/item/clothing/suit/storage/labcoat, -/turf/open/organic/grass{ - name = "astroturf" - }, +/turf/open/organic/grass/astroturf, /area/fiorina/station/research_cells) "pqC" = ( /obj/structure/window/framed/prison/reinforced/hull, @@ -25494,16 +20253,11 @@ /area/fiorina/lz/near_lzI) "prh" = ( /obj/structure/girder/reinforced, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/fiorina/tumor/ship) "prC" = ( /obj/structure/machinery/autolathe/medilathe/full, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/medbay) "prG" = ( /obj/structure/platform{ @@ -25520,10 +20274,7 @@ pixel_x = -1; pixel_y = 9 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/southwest, /area/fiorina/station/power_ring) "pse" = ( /obj/item/weapon/gun/rifle/m16, @@ -25531,10 +20282,7 @@ dir = 6; icon_state = "casing_5" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/fiorina/station/telecomm/lz1_cargo) "psm" = ( /obj/effect/decal/cleanable/blood, @@ -25544,16 +20292,11 @@ /obj/structure/barricade/handrail{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/central_ring) "psx" = ( /obj/structure/platform, -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/west, /area/fiorina/station/botany) "psL" = ( /obj/structure/machinery/optable{ @@ -25568,19 +20311,14 @@ dir = 1; pixel_y = 21 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "psP" = ( /obj/structure/bed/chair/comfy{ dir = 4 }, /obj/structure/machinery/light/double/blue, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/fiorina/station/security) "pte" = ( /obj/structure/extinguisher_cabinet, @@ -25588,9 +20326,7 @@ /area/fiorina/station/power_ring) "pti" = ( /obj/structure/machinery/vending/dinnerware, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, +/turf/open/floor/prison/bluefull, /area/fiorina/station/power_ring) "ptH" = ( /obj/structure/surface/table/reinforced/prison, @@ -25599,9 +20335,7 @@ pixel_x = 11 }, /obj/item/clothing/gloves/latex, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/fiorina/station/medbay) "puw" = ( /obj/effect/decal/cleanable/blood/drip, @@ -25615,10 +20349,7 @@ /obj/item/stack/sheet/metal{ amount = 5 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/east, /area/fiorina/lz/near_lzI) "pvz" = ( /obj/structure/janitorialcart, @@ -25626,10 +20357,7 @@ dir = 1; pixel_y = 21 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/north, /area/fiorina/station/park) "pvD" = ( /turf/closed/wall/r_wall/prison_unmeltable{ @@ -25639,29 +20367,20 @@ /area/fiorina/oob) "pvE" = ( /obj/item/clothing/under/color/orange, -/turf/open/floor/prison{ - icon_state = "yellowfull" - }, +/turf/open/floor/prison/yellowfull, /area/fiorina/station/lowsec) "pvF" = ( -/turf/open/floor/prison{ - icon_state = "whitegreencorner" - }, +/turf/open/floor/prison/whitegreencorner, /area/fiorina/tumor/ice_lab) "pwo" = ( /obj/structure/bed/chair/comfy{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/fiorina/station/flight_deck) "pwC" = ( /obj/effect/spawner/random/gun/rifle/highchance, -/turf/open/floor/prison{ - icon_state = "damaged3" - }, +/turf/open/floor/prison/damaged3, /area/fiorina/station/security) "pwL" = ( /obj/item/stack/tile/plasteel{ @@ -25672,9 +20391,7 @@ /area/fiorina/tumor/civres) "pxf" = ( /obj/structure/machinery/vending/snack, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/flight_deck) "pxk" = ( /obj/structure/closet/cabinet, @@ -25688,71 +20405,46 @@ /obj/item/storage/donut_box{ pixel_y = 6 }, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/fiorina/station/security) "pxL" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/east, /area/fiorina/maintenance) "pxW" = ( /obj/structure/platform_decoration{ dir = 1 }, /obj/item/tool/pickaxe, -/turf/open/floor/prison{ - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen, /area/fiorina/tumor/ice_lab) "pxX" = ( /obj/structure/largecrate/random/case/double, -/turf/open/floor/prison{ - dir = 6; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/southeast, /area/fiorina/station/research_cells) "pyK" = ( /obj/structure/machinery/door/airlock/multi_tile/elevator/freight, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/fiorina/tumor/aux_engi) "pzh" = ( /obj/item/toy/beach_ball, -/turf/open/gm/river{ - color = "#995555"; - name = "pool" - }, +/turf/open/gm/river/red_pool, /area/fiorina/station/park) "pzE" = ( /obj/structure/machinery/light/double/blue, -/turf/open/floor/prison{ - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen, /area/fiorina/station/medbay) "pzL" = ( /obj/item/ammo_magazine/m56d, /obj/item/ammo_magazine/m56d, -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/east, /area/fiorina/station/central_ring) "pAl" = ( /obj/structure/reagent_dispensers/watertank, -/turf/open/floor/prison{ - dir = 8; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/west, /area/fiorina/station/botany) "pAr" = ( /obj/structure/largecrate/random, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/fiorina/station/park) "pBb" = ( /obj/structure/curtain/open/black, @@ -25760,10 +20452,7 @@ /area/fiorina/maintenance) "pBe" = ( /obj/effect/spawner/random/tool, -/turf/open/floor/prison{ - dir = 4; - icon_state = "green" - }, +/turf/open/floor/prison/green/east, /area/fiorina/station/chapel) "pBq" = ( /obj/structure/largecrate/random/barrel/white, @@ -25774,9 +20463,7 @@ health = 250; icon_state = "metal_1" }, -/turf/open/organic/grass{ - name = "astroturf" - }, +/turf/open/organic/grass/astroturf, /area/fiorina/station/park) "pBV" = ( /obj/item/trash/used_stasis_bag{ @@ -25787,10 +20474,7 @@ /area/fiorina/lz/near_lzII) "pBW" = ( /obj/structure/largecrate/supply/floodlights, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/fiorina/station/telecomm/lz1_cargo) "pCc" = ( /obj/structure/ice/thin/indestructible{ @@ -25824,9 +20508,7 @@ pixel_x = 4; pixel_y = 6 }, -/turf/open/floor/prison{ - icon_state = "yellowfull" - }, +/turf/open/floor/prison/yellowfull, /area/fiorina/station/lowsec) "pCX" = ( /obj/item/stack/sheet/metal, @@ -25836,28 +20518,18 @@ /obj/structure/machinery/door/airlock/multi_tile/almayer/generic/autoname{ icon = 'icons/obj/structures/doors/2x1prepdoor_charlie.dmi' }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/station/research_cells) "pDQ" = ( /obj/structure/bed/sofa/south/grey/right, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/fiorina/station/security) "pEt" = ( -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/northwest, /area/fiorina/maintenance) "pFc" = ( /obj/structure/machinery/vending/snack, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/medbay) "pFi" = ( /obj/structure/platform_decoration{ @@ -25867,10 +20539,7 @@ /area/fiorina/station/telecomm/lz1_tram) "pFA" = ( /obj/item/storage/toolbox/emergency, -/turf/open/organic/grass{ - desc = "It'll get in your shoes no matter what you do."; - name = "astroturf" - }, +/turf/open/organic/grass/astroturf, /area/fiorina/tumor/fiberbush) "pFP" = ( /obj/structure/ice/thin/indestructible{ @@ -25908,18 +20577,14 @@ /obj/structure/platform{ dir = 1 }, -/turf/open/gm/river{ - name = "pool" - }, +/turf/open/gm/river/pool, /area/fiorina/station/park) "pGS" = ( /obj/structure/machinery/light/double/blue{ dir = 1; pixel_y = 21 }, -/turf/open/floor/prison{ - icon_state = "yellowfull" - }, +/turf/open/floor/prison/yellowfull, /area/fiorina/station/lowsec) "pHh" = ( /obj/structure/ice/thin/indestructible{ @@ -25938,23 +20603,14 @@ dir = 4 }, /obj/structure/machinery/space_heater, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/ice_lab) "pHx" = ( /obj/structure/barricade/metal/wired{ dir = 4 }, /obj/item/device/flashlight/lamp/tripod, -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 - }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/lowsec) "pIs" = ( /obj/structure/flora/grass/tallgrass/jungle/corner{ @@ -25964,9 +20620,7 @@ dir = 8; layer = 3.5 }, -/turf/open/organic/grass{ - name = "astroturf" - }, +/turf/open/organic/grass/astroturf, /area/fiorina/station/park) "pIt" = ( /obj/structure/barricade/handrail/type_b{ @@ -25977,9 +20631,7 @@ /area/fiorina/station/park) "pIw" = ( /obj/structure/machinery/light/double/blue, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/civres) "pIA" = ( /obj/structure/prop/structure_lattice{ @@ -26001,9 +20653,7 @@ /turf/open/floor/plating/prison, /area/fiorina/maintenance) "pJP" = ( -/turf/open/floor/prison{ - icon_state = "panelscorched" - }, +/turf/open/floor/prison/panelscorched, /area/fiorina/station/chapel) "pKf" = ( /obj/structure/machinery/washing_machine, @@ -26014,15 +20664,11 @@ dir = 1; pixel_y = 21 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/fiorina/station/civres_blue) "pKu" = ( /obj/item/tool/wet_sign, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/fiorina/tumor/servers) "pKJ" = ( /obj/structure/flora/grass/tallgrass/jungle/corner, @@ -26033,17 +20679,13 @@ layer = 2.9; pixel_y = 17 }, -/turf/open/organic/grass{ - name = "astroturf" - }, +/turf/open/organic/grass/astroturf, /area/fiorina/station/park) "pKO" = ( /obj/effect/decal/hefa_cult_decals/d32{ icon_state = "2" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/servers) "pKY" = ( /obj/structure/cable/heavyduty{ @@ -26064,16 +20706,11 @@ /obj/structure/machinery/washing_machine{ pixel_y = 15 }, -/turf/open/floor/prison{ - icon_state = "yellowfull" - }, +/turf/open/floor/prison/yellowfull, /area/fiorina/station/lowsec) "pLM" = ( /obj/item/trash/cigbutt, -/turf/open/floor/prison{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/west, /area/fiorina/station/power_ring) "pLQ" = ( /obj/effect/decal/cleanable/blood/oil/streak, @@ -26081,10 +20718,7 @@ /area/fiorina/station/transit_hub) "pLS" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 8; - icon_state = "greencorner" - }, +/turf/open/floor/prison/greencorner/west, /area/fiorina/tumor/aux_engi) "pNj" = ( /obj/structure/bookcase, @@ -26123,10 +20757,7 @@ /area/fiorina/tumor/ice_lab) "pPo" = ( /obj/effect/landmark/corpsespawner/ua_riot/burst, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/north, /area/fiorina/tumor/servers) "pPG" = ( /obj/structure/disposalpipe/segment{ @@ -26141,51 +20772,34 @@ "pQc" = ( /obj/structure/closet/basketball, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/station/research_cells) "pQs" = ( /turf/open/floor/prison, /area/fiorina/station/civres_blue) "pQz" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "bluecorner" - }, +/turf/open/floor/prison/bluecorner/west, /area/fiorina/station/civres_blue) "pRa" = ( /obj/structure/bed{ icon_state = "abed" }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/northwest, /area/fiorina/station/research_cells) "pRp" = ( /obj/structure/platform, /obj/structure/machinery/light/double/blue, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/transit_hub) "pRx" = ( /obj/structure/largecrate/random/barrel/white, /turf/open/floor/prison, /area/fiorina/station/power_ring) "pRz" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/prison/red/southwest, /area/fiorina/station/power_ring) "pRD" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "bluecorner" - }, +/turf/open/floor/prison/bluecorner/east, /area/fiorina/station/power_ring) "pRG" = ( /obj/structure/window/framed/prison/reinforced/hull, @@ -26197,10 +20811,7 @@ /area/fiorina/tumor/fiberbush) "pSr" = ( /obj/structure/pipes/standard/manifold/visible, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/station/medbay) "pSs" = ( /obj/item/ammo_box/magazine/misc/flares{ @@ -26208,10 +20819,7 @@ pixel_y = 16 }, /obj/structure/largecrate/random/secure, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/tumor/ice_lab) "pSU" = ( /obj/structure/surface/table/woodentable/fancy, @@ -26238,32 +20846,22 @@ pixel_y = -1 }, /obj/structure/platform_decoration, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/disco) "pUo" = ( /obj/structure/platform, /obj/structure/machinery/light/double/blue{ pixel_y = -1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/disco) "pUG" = ( /obj/item/stack/rods, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/station/research_cells) "pUO" = ( /obj/item/trash/boonie, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/tumor/ice_lab) "pVc" = ( /obj/structure/flora/pottedplant{ @@ -26276,17 +20874,11 @@ dir = 1; pixel_y = 21 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/fiorina/lz/near_lzI) "pVD" = ( /obj/structure/window/framed/prison, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/fiorina/station/botany) "pVR" = ( /obj/structure/surface/table/woodentable/fancy, @@ -26298,24 +20890,12 @@ /area/fiorina/station/chapel) "pVY" = ( /obj/item/stack/sheet/mineral/plastic, -/turf/open/floor/prison{ - dir = 9; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/northwest, /area/fiorina/station/lowsec) "pWc" = ( /obj/item/tool/crowbar/red, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/flight_deck) -"pWl" = ( -/obj/structure/machinery/power/geothermal, -/turf/open/floor/prison{ - dir = 1; - icon_state = "bluecorner" - }, -/area/fiorina/station/power_ring) "pWp" = ( /turf/closed/shuttle/ert{ icon_state = "stan8" @@ -26333,17 +20913,11 @@ icon_state = "casing_5" }, /obj/item/clothing/suit/armor/vest/security, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/station/medbay) "pXt" = ( /obj/item/reagent_container/food/snacks/wrapped/booniebars, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/fiorina/tumor/civres) "pXH" = ( /obj/item/device/flashlight/lamp/tripod, @@ -26356,10 +20930,7 @@ layer = 2.5; pixel_y = -11 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/east, /area/fiorina/station/telecomm/lz1_cargo) "pXY" = ( /obj/structure/bookcase{ @@ -26375,14 +20946,10 @@ /area/fiorina/station/chapel) "pYz" = ( /obj/structure/closet/emcloset, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/fiorina/maintenance) "pYB" = ( -/turf/open/floor/prison{ - icon_state = "bluefull" - }, +/turf/open/floor/prison/bluefull, /area/fiorina/station/power_ring) "pYD" = ( /obj/structure/monorail{ @@ -26396,9 +20963,7 @@ dir = 8; icon_state = "p_stair_full" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/botany) "pZm" = ( /obj/structure/machinery/light/small{ @@ -26415,32 +20980,22 @@ /turf/open/floor/plating/prison, /area/fiorina/oob) "pZn" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "yellowcorner" - }, +/turf/open/floor/prison/yellowcorner/west, /area/fiorina/station/lowsec) "pZp" = ( /obj/item/tool/soap, /obj/structure/machinery/shower{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/fiorina/station/research_cells) "qaA" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/clipboard, -/turf/open/floor/prison{ - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2, /area/fiorina/tumor/servers) "qaL" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/fiorina/lz/near_lzI) "qaO" = ( /obj/structure/barricade/handrail/type_b{ @@ -26457,9 +21012,7 @@ /obj/structure/machinery/door/airlock/prison_hatch/autoname{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, +/turf/open/floor/prison/bluefull, /area/fiorina/station/power_ring) "qbd" = ( /obj/structure/flora/bush/ausbushes/ausbush{ @@ -26476,9 +21029,7 @@ /obj/structure/barricade/wooden{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/maintenance) "qby" = ( /obj/item/stack/sheet/metal{ @@ -26494,9 +21045,7 @@ /turf/open/floor/prison, /area/fiorina/station/security) "qbR" = ( -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/fiorina/station/power_ring) "qbW" = ( /obj/item/tool/candle{ @@ -26516,16 +21065,11 @@ /obj/structure/barricade/wooden{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/fiorina/station/telecomm/lz1_cargo) "qcX" = ( /obj/structure/machinery/vending/snack/packaged, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/park) "qdd" = ( /obj/structure/grille, @@ -26549,9 +21093,7 @@ pixel_y = 7 }, /obj/item/tool/pen, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/fiorina/station/security) "qdJ" = ( /obj/structure/window/framed/prison/reinforced, @@ -26562,16 +21104,11 @@ dir = 1; icon_state = "p_stair_full" }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/west, /area/fiorina/station/telecomm/lz1_tram) "qet" = ( /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/security) "qeC" = ( /obj/structure/surface/table/reinforced/prison, @@ -26601,10 +21138,7 @@ dir = 4; pixel_y = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/fiorina/station/park) "qeX" = ( /obj/structure/surface/table/reinforced/prison{ @@ -26630,9 +21164,7 @@ "qfi" = ( /obj/structure/closet/secure_closet/personal, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/fiorina/station/telecomm/lz1_cargo) "qgd" = ( /obj/item/explosive/grenade/incendiary/molotov{ @@ -26655,10 +21187,7 @@ /obj/structure/barricade/metal/wired{ dir = 1 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/west, /area/fiorina/lz/near_lzI) "qgv" = ( /obj/structure/surface/table/reinforced/prison, @@ -26669,9 +21198,7 @@ /obj/item/tool/surgery/circular_saw{ pixel_y = -2 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/telecomm/lz1_cargo) "qgB" = ( /obj/item/clothing/gloves/rainbow, @@ -26682,64 +21209,43 @@ /turf/open/space, /area/fiorina/oob) "qhk" = ( -/turf/open/floor/prison{ - dir = 6; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/southeast, /area/fiorina/station/park) "qhC" = ( /obj/effect/decal/cleanable/blood/splatter{ icon_state = "gib2" }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/west, /area/fiorina/station/medbay) "qhD" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/computer/cameras{ network = list("PRISON") }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "redcorner" - }, +/turf/open/floor/prison/redcorner/east, /area/fiorina/station/power_ring) "qhJ" = ( /obj/structure/bed/chair/comfy{ dir = 1 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "redcorner" - }, +/turf/open/floor/prison/redcorner/west, /area/fiorina/station/power_ring) "qhN" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "redcorner" - }, +/turf/open/floor/prison/redcorner/east, /area/fiorina/station/security) "qhP" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/newspaper, /obj/item/attachable/bipod, -/turf/open/floor/prison{ - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2, /area/fiorina/lz/near_lzI) "qhZ" = ( -/turf/open/floor/prison{ - icon_state = "platingdmg3" - }, +/turf/open/floor/prison/platingdmg3, /area/fiorina/station/transit_hub) "qif" = ( /obj/item/inflatable, /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/chapel) "qiq" = ( /obj/item/trash/cigbutt, @@ -26752,34 +21258,24 @@ /obj/effect/decal/medical_decals{ icon_state = "triagedecalbottomleft" }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/northwest, /area/fiorina/station/medbay) "qjb" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/storage/toolbox, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/servers) "qjh" = ( /obj/item/reagent_container/food/snacks/boiledegg, /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/aux_engi) "qjM" = ( /obj/structure/inflatable, /obj/structure/barricade/handrail/type_b{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "qjR" = ( /obj/structure/machinery/computer/station_alert{ @@ -26787,19 +21283,14 @@ pixel_y = 5 }, /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/aux_engi) "qjX" = ( /obj/structure/machinery/light/double/blue{ dir = 1; pixel_y = 21 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "greenblue" - }, +/turf/open/floor/prison/greenblue/north, /area/fiorina/station/botany) "qkg" = ( /obj/structure/machinery/light/double/blue, @@ -26811,17 +21302,11 @@ /turf/open/floor/plating/prison, /area/fiorina/maintenance) "qkq" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/west, /area/fiorina/oob) "qkt" = ( /obj/structure/bed/chair/office/dark, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/tumor/ice_lab) "qkN" = ( /obj/structure/surface/table/reinforced/prison, @@ -26853,45 +21338,30 @@ /area/fiorina/oob) "qnb" = ( /obj/structure/bed/roller, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/east, /area/fiorina/station/medbay) "qny" = ( /obj/item/tool/wirecutters/clippers, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/fiorina/tumor/civres) "qob" = ( /obj/structure/machinery/light/double/blue{ dir = 1; pixel_y = 21 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/fiorina/station/telecomm/lz1_cargo) "qoc" = ( /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/civres) "qof" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/north, /area/fiorina/station/disco) "qov" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/newspaper, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/servers) "qoG" = ( /obj/item/toy/crayon/rainbow, @@ -26903,15 +21373,10 @@ pixel_x = 10; pixel_y = 13 }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/fiorina/tumor/servers) "qpk" = ( -/turf/open/floor/prison{ - icon_state = "bluecorner" - }, +/turf/open/floor/prison/bluecorner, /area/fiorina/station/civres_blue) "qpB" = ( /obj/item/stack/cable_coil/blue, @@ -26934,26 +21399,18 @@ pixel_x = -6; pixel_y = 3 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/fiorina/station/flight_deck) "qpX" = ( /obj/effect/landmark/monkey_spawn, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/servers) "qqc" = ( /obj/structure/inflatable/popped, /obj/effect/decal/medical_decals{ icon_state = "triagedecaldir" }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/west, /area/fiorina/station/medbay) "qqd" = ( /obj/structure/stairs/perspective{ @@ -26966,42 +21423,26 @@ /obj/structure/machinery/light/double/blue{ pixel_y = -1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/station/research_cells) "qqQ" = ( -/turf/open/floor/prison{ - dir = 5; - icon_state = "green" - }, +/turf/open/floor/prison/green/northeast, /area/fiorina/station/transit_hub) "qqW" = ( /obj/item/trash/cigbutt/cigarbutt, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/north, /area/fiorina/station/medbay) "qre" = ( /obj/structure/platform_decoration, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/central_ring) "qrn" = ( -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/medbay) "qrt" = ( /obj/effect/landmark/xeno_spawn, /obj/structure/machinery/light/double/blue, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/north, /area/fiorina/tumor/ice_lab) "qrz" = ( /obj/item/explosive/plastic, @@ -27012,15 +21453,11 @@ /obj/item/reagent_container/food/snacks/sandwich{ pixel_y = 2 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/security) "qrU" = ( /obj/effect/landmark/monkey_spawn, -/turf/open/floor/prison{ - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple, /area/fiorina/station/research_cells) "qsc" = ( /obj/structure/machinery/light/double/blue, @@ -27036,9 +21473,7 @@ /area/fiorina/maintenance) "qss" = ( /obj/structure/flora/pottedplant/random, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/civres) "qsE" = ( /obj/item/shard{ @@ -27048,16 +21483,10 @@ /obj/structure/platform{ dir = 8 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/west, /area/fiorina/tumor/ice_lab) "qsF" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/north, /area/fiorina/maintenance) "qtP" = ( /obj/structure/surface/table/reinforced/prison, @@ -27069,10 +21498,7 @@ pixel_x = 1; pixel_y = 3 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/west, /area/fiorina/station/civres_blue) "qun" = ( /obj/structure/flora/grass/tallgrass/jungle/corner{ @@ -27081,15 +21507,11 @@ /obj/structure/barricade/handrail/type_b{ layer = 3.5 }, -/turf/open/organic/grass{ - name = "astroturf" - }, +/turf/open/organic/grass/astroturf, /area/fiorina/station/park) "quL" = ( /obj/structure/machinery/vending/cigarette/colony, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, +/turf/open/floor/prison/bluefull, /area/fiorina/station/power_ring) "qva" = ( /obj/structure/surface/table/reinforced/prison, @@ -27103,50 +21525,31 @@ /obj/structure/prop/resin_prop{ icon_state = "rack" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/servers) "qws" = ( /obj/effect/decal/hefa_cult_decals/d32{ icon_state = "bee" }, -/turf/open/floor/prison/chapel_carpet{ - dir = 1; - icon_state = "doubleside" - }, +/turf/open/floor/prison/chapel_carpet/doubleside/north, /area/fiorina/maintenance) "qwG" = ( /obj/structure/surface/rack, -/turf/open/floor/prison{ - dir = 6; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/southeast, /area/fiorina/maintenance) "qwH" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/fiorina/station/lowsec) "qwK" = ( -/turf/open/floor/prison{ - icon_state = "floorscorched2" - }, +/turf/open/floor/prison/floorscorched2, /area/fiorina/station/civres_blue) "qxx" = ( /obj/item/ammo_magazine/smg/mp5, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/southwest, /area/fiorina/station/research_cells) "qxy" = ( /obj/item/stack/sheet/metal, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/fiorina/tumor/servers) "qxN" = ( /obj/structure/barricade/sandbags{ @@ -27157,10 +21560,7 @@ /turf/open/floor/plating/prison, /area/fiorina/lz/near_lzII) "qxP" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/southwest, /area/fiorina/tumor/aux_engi) "qxZ" = ( /obj/structure/machinery/light/double/blue{ @@ -27168,9 +21568,7 @@ pixel_x = -10; pixel_y = -3 }, -/turf/open/floor/prison{ - icon_state = "yellowfull" - }, +/turf/open/floor/prison/yellowfull, /area/fiorina/station/lowsec) "qya" = ( /obj/structure/closet{ @@ -27179,10 +21577,7 @@ }, /obj/item/clothing/gloves/combat, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/north, /area/fiorina/station/research_cells) "qyq" = ( /obj/structure/closet/secure_closet/engineering_personal, @@ -27191,15 +21586,10 @@ pixel_y = 21 }, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/power_ring) "qyM" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/fiorina/station/disco) "qzb" = ( /obj/structure/stairs/perspective{ @@ -27217,9 +21607,7 @@ /area/fiorina/station/security) "qzM" = ( /obj/structure/largecrate/random/case, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/fiorina/tumor/aux_engi) "qzZ" = ( /obj/structure/barricade/sandbags{ @@ -27227,55 +21615,37 @@ icon_state = "sandbag_0"; pixel_y = 2 }, -/turf/open/floor/prison{ - dir = 6; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/southeast, /area/fiorina/station/disco) "qAe" = ( /obj/item/trash/eat, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/telecomm/lz1_cargo) "qAk" = ( /obj/item/shard{ icon_state = "medium" }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/fiorina/tumor/servers) "qAl" = ( /obj/structure/reagent_dispensers/water_cooler/stacks, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/station/medbay) "qAQ" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/east, /area/fiorina/tumor/aux_engi) "qBe" = ( /turf/open/floor/prison, /area/fiorina/station/disco) "qBf" = ( -/turf/open/floor/prison{ - dir = 5; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/northeast, /area/fiorina/station/central_ring) "qBj" = ( /obj/structure/window/reinforced{ dir = 4 }, /obj/item/storage/briefcase, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/security/wardens) "qBB" = ( /obj/item/prop/helmetgarb/spacejam_tickets{ @@ -27296,27 +21666,15 @@ "qBI" = ( /obj/structure/surface/table/reinforced/prison, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/fiorina/station/research_cells) -"qBS" = ( -/obj/item/circuitboard/mecha/gygax/targeting, -/obj/structure/surface/rack, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/tumor/civres) "qBT" = ( /obj/structure/sink{ dir = 4; pixel_x = 12 }, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/prison{ - dir = 6; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/southeast, /area/fiorina/station/research_cells) "qCa" = ( /obj/structure/prop/resin_prop{ @@ -27336,15 +21694,11 @@ pixel_x = -5; pixel_y = -11 }, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, +/turf/open/floor/prison/bluefull, /area/fiorina/station/civres_blue) "qCx" = ( /obj/item/reagent_container/food/drinks/sillycup, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, +/turf/open/floor/prison/bluefull, /area/fiorina/station/power_ring) "qCE" = ( /obj/structure/machinery/computer/emails{ @@ -27352,16 +21706,10 @@ pixel_y = 4 }, /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "qCK" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "damaged1" - }, +/turf/open/floor/prison/damaged1/southwest, /area/fiorina/station/lowsec) "qCW" = ( /turf/closed/shuttle/elevator{ @@ -27374,10 +21722,7 @@ icon_state = "poster15"; pixel_y = 32 }, -/turf/open/floor/prison/chapel_carpet{ - dir = 1; - icon_state = "doubleside" - }, +/turf/open/floor/prison/chapel_carpet/doubleside/north, /area/fiorina/maintenance) "qDq" = ( /obj/structure/machinery/light/double/blue{ @@ -27385,16 +21730,11 @@ pixel_x = -10; pixel_y = -3 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/telecomm/lz1_tram) "qDZ" = ( /obj/item/stack/rods, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/east, /area/fiorina/station/medbay) "qEk" = ( /obj/structure/bed/sofa/south/grey/left, @@ -27402,34 +21742,22 @@ dir = 1; pixel_y = 21 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/security/wardens) "qEl" = ( /obj/structure/closet/bodybag, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/medbay) "qEs" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "yellowcorner" - }, +/turf/open/floor/prison/yellowcorner/east, /area/fiorina/station/lowsec) "qEC" = ( /obj/structure/largecrate/random/barrel/blue, -/turf/open/floor/prison{ - dir = 6; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/southeast, /area/fiorina/station/disco) "qFf" = ( /obj/item/tool/kitchen/rollingpin, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/fiorina/station/power_ring) "qFi" = ( /obj/structure/machinery/light/small{ @@ -27463,37 +21791,24 @@ /obj/structure/barricade/wooden{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/fiorina/station/telecomm/lz1_cargo) "qGe" = ( /obj/structure/machinery/landinglight/ds1/delaytwo{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/fiorina/lz/near_lzI) "qGf" = ( /obj/item/tool/scythe, -/turf/open/floor/prison{ - dir = 4; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/east, /area/fiorina/station/botany) "qGh" = ( /obj/effect/spawner/random/tool, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/chapel) "qGn" = ( -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/fiorina/station/telecomm/lz1_cargo) "qGy" = ( /obj/structure/reagent_dispensers/watertank, @@ -27501,23 +21816,23 @@ /area/fiorina/tumor/servers) "qGB" = ( /obj/structure/barricade/wooden, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/east, /area/fiorina/station/research_cells) "qGO" = ( /obj/structure/machinery/photocopier, /obj/structure/machinery/light/double/blue, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "qGP" = ( /obj/effect/spawner/random/tool, /turf/open/floor/prison, /area/fiorina/station/civres_blue) +"qHi" = ( +/obj/effect/landmark/nightmare{ + insert_tag = "riot_control" + }, +/turf/open/floor/prison, +/area/fiorina/station/security) "qHG" = ( /obj/structure/machinery/cm_vending/sorted/medical/wall_med/limited{ pixel_y = 25 @@ -27540,9 +21855,7 @@ desc = "A ticket to Souto Man's raffle!"; name = "\improper Souto Raffle Ticket" }, -/turf/open/floor/prison{ - icon_state = "blue" - }, +/turf/open/floor/prison/blue, /area/fiorina/station/chapel) "qJf" = ( /obj/structure/surface/table/reinforced/prison, @@ -27575,10 +21888,7 @@ /obj/structure/bedsheetbin{ icon_state = "linenbin-empty" }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/west, /area/fiorina/station/lowsec) "qJr" = ( /turf/open/floor/prison, @@ -27593,15 +21903,11 @@ /obj/item/clothing/under/marine/ua_riot, /obj/item/clothing/suit/storage/marine/veteran/ua_riot, /obj/item/prop/helmetgarb/riot_shield, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/fiorina/station/security) "qJK" = ( /obj/structure/largecrate/random/barrel/red, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/fiorina/tumor/ship) "qJL" = ( /obj/structure/bed/chair/comfy{ @@ -27616,9 +21922,7 @@ /area/fiorina/station/park) "qJP" = ( /obj/effect/landmark/monkey_spawn, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/chapel) "qJQ" = ( /obj/structure/barricade/metal/wired{ @@ -27628,9 +21932,7 @@ /area/fiorina/station/central_ring) "qJR" = ( /obj/item/disk/data, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/fiorina/tumor/servers) "qKq" = ( /obj/structure/machinery/computer/arcade, @@ -27657,20 +21959,14 @@ /area/fiorina/lz/near_lzII) "qLa" = ( /obj/item/weapon/baseballbat/metal, -/turf/open/floor/prison{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/west, /area/fiorina/station/chapel) "qLi" = ( /obj/structure/toilet{ dir = 8; pixel_y = 8 }, -/turf/open/floor/prison{ - dir = 5; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/northeast, /area/fiorina/station/lowsec) "qLv" = ( /obj/structure/platform_decoration, @@ -27678,9 +21974,7 @@ /area/fiorina/station/transit_hub) "qLH" = ( /obj/item/trash/used_stasis_bag, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/lz/near_lzI) "qLI" = ( /obj/item/storage/toolbox, @@ -27689,36 +21983,25 @@ pixel_x = 10; pixel_y = -3 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/fiorina/station/civres_blue) "qLN" = ( /obj/item/storage/toolbox/mechanical/green, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/fiorina/tumor/aux_engi) "qMi" = ( /obj/structure/platform{ dir = 8 }, /obj/item/device/flashlight/lamp/tripod, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/west, /area/fiorina/tumor/ice_lab) "qMs" = ( /obj/item/stack/cable_coil/green, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/civres) "qMI" = ( -/turf/open/floor/prison{ - icon_state = "damaged3" - }, +/turf/open/floor/prison/damaged3, /area/fiorina/station/security) "qNj" = ( /obj/structure/platform, @@ -27729,10 +22012,7 @@ dir = 10 }, /obj/structure/closet/firecloset/full, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "qNu" = ( /obj/structure/closet/secure_closet/security_empty, @@ -27740,9 +22020,7 @@ /obj/structure/window/reinforced{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/fiorina/station/security) "qNv" = ( /obj/structure/machinery/door/airlock/prison_hatch/autoname{ @@ -27757,16 +22035,10 @@ pixel_y = 22 }, /obj/item/reagent_container/food/snacks/cheesyfries, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/fiorina/station/flight_deck) "qNF" = ( -/turf/open/floor/prison{ - dir = 5; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/northeast, /area/fiorina/station/lowsec) "qOk" = ( /obj/structure/platform/kutjevo/smooth{ @@ -27779,9 +22051,7 @@ /turf/open/floor/plating/prison, /area/fiorina/station/lowsec) "qOu" = ( -/turf/open/floor/prison{ - icon_state = "damaged3" - }, +/turf/open/floor/prison/damaged3, /area/fiorina/station/disco) "qON" = ( /obj/item/stack/cable_coil/cyan, @@ -27801,16 +22071,10 @@ /area/fiorina/station/park) "qPa" = ( /obj/item/device/motiondetector, -/turf/open/floor/prison{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/north, /area/fiorina/station/lowsec) "qPb" = ( -/turf/open/organic/grass{ - desc = "It'll get in your shoes no matter what you do."; - name = "astroturf" - }, +/turf/open/organic/grass/astroturf, /area/fiorina/tumor/fiberbush) "qPr" = ( /obj/item/ammo_magazine/smg/nailgun, @@ -27823,15 +22087,10 @@ pixel_x = -10; pixel_y = 8 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/fiorina/station/research_cells) "qQa" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/north, /area/fiorina/station/central_ring) "qQb" = ( /obj/structure/stairs/perspective{ @@ -27869,19 +22128,14 @@ /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/northwest, /area/fiorina/station/power_ring) "qQA" = ( /obj/item/reagent_container/food/drinks/bottle/holywater{ desc = "A flask of the holy HEFA grenade oil."; name = "Flask of HEFA Oil" }, -/turf/open/floor/prison/chapel_carpet{ - icon_state = "doubleside" - }, +/turf/open/floor/prison/chapel_carpet/doubleside, /area/fiorina/station/chapel) "qQM" = ( /obj/structure/stairs/perspective{ @@ -27902,10 +22156,7 @@ icon_state = "abed" }, /obj/item/toy/beach_ball/holoball, -/turf/open/floor/prison{ - dir = 6; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/southeast, /area/fiorina/station/research_cells) "qRg" = ( /obj/structure/sign/prop3{ @@ -27926,16 +22177,11 @@ /turf/open/floor/plating/prison, /area/fiorina/station/lowsec) "qRK" = ( -/turf/open/floor/prison{ - dir = 6; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/southeast, /area/fiorina/station/central_ring) "qRS" = ( /obj/item/trash/candy, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/telecomm/lz1_cargo) "qRW" = ( /obj/structure/stairs/perspective{ @@ -27955,18 +22201,13 @@ /turf/open/floor/prison, /area/fiorina/station/medbay) "qSz" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 1; - icon_state = "yellow" - }, +/obj/structure/closet/wardrobe/orange, +/obj/item/clothing/gloves/boxing/yellow, +/turf/open/floor/prison/yellowfull, /area/fiorina/station/lowsec) "qSA" = ( /obj/item/trash/candy, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/east, /area/fiorina/tumor/ice_lab) "qTe" = ( /obj/structure/largecrate/random/case/double, @@ -27974,33 +22215,22 @@ /area/fiorina/station/central_ring) "qTt" = ( /obj/item/stack/tile/plasteel, -/turf/open/floor/prison{ - dir = 10; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/southwest, /area/fiorina/station/disco) "qTx" = ( /obj/structure/surface/rack, /obj/item/storage/firstaid/regular, /obj/item/storage/firstaid/regular, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "qTQ" = ( /obj/structure/platform_decoration, /obj/item/reagent_container/food/drinks/sillycup, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/flight_deck) "qTW" = ( /obj/effect/landmark/survivor_spawner, -/turf/open/floor/prison{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/east, /area/fiorina/station/power_ring) "qUo" = ( /obj/structure/flora/grass/tallgrass/jungle/corner{ @@ -28017,26 +22247,18 @@ layer = 2.9; pixel_y = 17 }, -/turf/open/organic/grass{ - name = "astroturf" - }, +/turf/open/organic/grass/astroturf, /area/fiorina/station/park) "qUw" = ( /obj/item/device/multitool, -/turf/open/floor/prison{ - dir = 10; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/southwest, /area/fiorina/station/disco) "qUC" = ( /obj/item/ammo_casing{ dir = 2; icon_state = "casing_5" }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/north, /area/fiorina/station/park) "qVW" = ( /obj/effect/landmark/objective_landmark/close, @@ -28048,9 +22270,7 @@ pixel_y = -1 }, /obj/structure/machinery/light/double/blue, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/fiorina/station/lowsec) "qXM" = ( /obj/item/stack/tile/plasteel, @@ -28058,9 +22278,7 @@ /area/fiorina/tumor/civres) "qYZ" = ( /obj/structure/bed/chair, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/fiorina/tumor/servers) "qZc" = ( /obj/structure/prop/structure_lattice{ @@ -28071,62 +22289,42 @@ layer = 3.1; pixel_y = 10 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/telecomm/lz1_cargo) "qZv" = ( /obj/structure/stairs/perspective{ dir = 1; icon_state = "p_stair_full" }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/east, /area/fiorina/station/central_ring) "raC" = ( /obj/effect/landmark/corpsespawner/ua_riot, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/west, /area/fiorina/lz/near_lzI) "raL" = ( -/turf/open/floor/prison{ - icon_state = "bluefull" - }, +/turf/open/floor/prison/bluefull, /area/fiorina/station/civres_blue) "raP" = ( /obj/structure/barricade/wooden, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "rbp" = ( /obj/structure/closet/crate/medical, /obj/item/clothing/gloves/latex, /obj/item/clothing/gloves/latex, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/medbay) "rbv" = ( /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/fiorina/tumor/servers) "rbI" = ( /obj/structure/machinery/light/double/blue{ dir = 1; pixel_y = 21 }, -/turf/open/floor/prison{ - dir = 5; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/northeast, /area/fiorina/lz/near_lzI) "rbK" = ( /obj/effect/spawner/random/tool, @@ -28141,26 +22339,18 @@ /area/fiorina/station/power_ring) "rbZ" = ( /obj/structure/inflatable/popped/door, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/station/medbay) "rcc" = ( /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/prison{ - dir = 4; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/east, /area/fiorina/station/botany) "rce" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/reagent_dispensers/water_cooler{ pixel_y = 11 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/fiorina/station/research_cells) "rcg" = ( /turf/open/floor/plating/prison, @@ -28178,30 +22368,18 @@ /obj/structure/inflatable/popped/door, /obj/item/stack/barbed_wire, /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/prison{ - dir = 6; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/southeast, /area/fiorina/station/medbay) "rcI" = ( /obj/effect/decal/cleanable/blood/gibs/xeno/limb, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreencorner" - }, +/turf/open/floor/prison/whitegreencorner/east, /area/fiorina/station/medbay) "rdi" = ( /obj/item/device/flashlight/lamp/tripod, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/fiorina/station/transit_hub) "rdo" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "greenbluecorner" - }, +/turf/open/floor/prison/greenbluecorner/north, /area/fiorina/station/botany) "rdt" = ( /obj/structure/platform_decoration{ @@ -28221,19 +22399,14 @@ /obj/structure/machinery/computer/cameras{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/fiorina/station/disco) "reZ" = ( /obj/structure/barricade/sandbags{ dir = 8; icon_state = "sandbag_0" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/fiorina/station/telecomm/lz1_cargo) "rfd" = ( /obj/structure/machinery/cm_vending/sorted/medical/wall_med/limited, @@ -28242,15 +22415,10 @@ "rfe" = ( /obj/structure/surface/rack, /obj/item/tool/mop, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "rft" = ( -/turf/open/floor/prison{ - icon_state = "greenblue" - }, +/turf/open/floor/prison/greenblue, /area/fiorina/station/botany) "rfQ" = ( /obj/effect/spawner/random/tech_supply, @@ -28266,10 +22434,7 @@ dir = 1; pixel_y = 21 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/north, /area/fiorina/station/lowsec) "rgg" = ( /obj/item/tool/candle{ @@ -28278,65 +22443,45 @@ /turf/open/floor/wood, /area/fiorina/station/chapel) "rhf" = ( -/turf/open/floor/prison{ - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe, /area/fiorina/station/research_cells) "rhh" = ( /obj/structure/monorail{ dir = 4; name = "launch track" }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/fiorina/station/transit_hub) "rhH" = ( /obj/structure/bed{ icon_state = "abed" }, -/turf/open/floor/prison{ - dir = 6; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/southeast, /area/fiorina/station/research_cells) "rie" = ( /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/west, /area/fiorina/station/medbay) "riP" = ( /obj/item/stack/tile/plasteel, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/aux_engi) "rja" = ( /turf/closed/wall/prison, /area/fiorina/station/civres_blue) "rjy" = ( /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/fiorina/tumor/civres) "rjP" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/medbay) "rki" = ( /obj/item/stack/tile/plasteel, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/civres) "rko" = ( /obj/structure/platform_decoration, @@ -28348,22 +22493,14 @@ pixel_y = 8 }, /obj/effect/decal/cleanable/blood/gibs, -/turf/open/floor/prison{ - dir = 9; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/northwest, /area/fiorina/station/lowsec) "rkv" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "greencorner" - }, +/turf/open/floor/prison/greencorner/west, /area/fiorina/station/chapel) "rkF" = ( /obj/structure/closet/secure_closet/personal, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/fiorina/station/telecomm/lz1_cargo) "rkH" = ( /obj/structure/grille, @@ -28380,9 +22517,7 @@ /area/fiorina/station/chapel) "rlP" = ( /obj/structure/largecrate/supply, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/medbay) "rmh" = ( /obj/structure/surface/rack, @@ -28393,6 +22528,16 @@ /obj/structure/window/framed/prison/reinforced/hull, /turf/open/floor/plating/prison, /area/fiorina/tumor/servers) +"rmJ" = ( +/obj/structure/platform, +/obj/item/fuel_cell, +/obj/structure/machinery/light/double/blue{ + dir = 4; + pixel_x = 10; + pixel_y = 13 + }, +/turf/open/floor/plating/prison, +/area/fiorina/station/lowsec) "rmX" = ( /obj/structure/stairs/perspective{ icon_state = "p_stair_sn_full_cap" @@ -28431,37 +22576,25 @@ /area/fiorina/lz/near_lzI) "rnE" = ( /obj/structure/inflatable, -/turf/open/floor/prison{ - dir = 6; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/southeast, /area/fiorina/station/lowsec) "rnM" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/storage/fancy/crayons, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "roi" = ( /obj/structure/prop/souto_land/streamer{ dir = 9 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/north, /area/fiorina/station/park) "rot" = ( /obj/structure/barricade/metal{ health = 250; icon_state = "metal_1" }, -/turf/open/floor/prison{ - dir = 6; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/southeast, /area/fiorina/tumor/ice_lab) "roE" = ( /obj/structure/platform_decoration{ @@ -28470,10 +22603,7 @@ /obj/effect/decal/medical_decals{ icon_state = "triagedecalleft" }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/north, /area/fiorina/station/medbay) "roF" = ( /obj/structure/surface/table/reinforced/prison, @@ -28483,36 +22613,24 @@ /obj/structure/machinery/computer/cameras{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/security) "roH" = ( /obj/structure/machinery/photocopier{ pixel_y = 4 }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/fiorina/oob) "roQ" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/southwest, /area/fiorina/station/disco) "rpf" = ( /obj/structure/grille, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/station/research_cells) "rpt" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/disco) "rpL" = ( /obj/item/device/flashlight/lamp/tripod, @@ -28522,10 +22640,7 @@ /obj/item/ammo_casing{ icon_state = "casing_5" }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/west, /area/fiorina/lz/near_lzI) "rqh" = ( /obj/structure/stairs/perspective{ @@ -28541,59 +22656,38 @@ pixel_y = 21 }, /obj/effect/landmark/corpsespawner/ua_riot, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/north, /area/fiorina/station/medbay) "rqA" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/west, /area/fiorina/tumor/servers) "rqC" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/fiorina/tumor/civres) "rqG" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/civres_blue) "rqY" = ( /obj/structure/filingcabinet/disk, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/fiorina/tumor/servers) "rrs" = ( /obj/item/stack/rods/plasteel, -/turf/open/floor/prison{ - dir = 5; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/northeast, /area/fiorina/lz/near_lzI) "rru" = ( /obj/effect/spawner/random/goggles/midchance, -/turf/open/organic/grass{ - name = "astroturf" - }, +/turf/open/organic/grass/astroturf, /area/fiorina/station/research_cells) "rrD" = ( /obj/structure/machinery/landinglight/ds1{ dir = 1 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/fiorina/lz/near_lzI) "rsg" = ( /obj/structure/platform_decoration, @@ -28616,15 +22710,10 @@ /obj/structure/platform_decoration{ dir = 10 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/power_ring) "rsR" = ( -/turf/open/floor/prison{ - dir = 5; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/northeast, /area/fiorina/station/power_ring) "rsU" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_core, @@ -28640,39 +22729,26 @@ layer = 2.8 }, /obj/structure/barricade/handrail/type_b, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/flight_deck) "rty" = ( /obj/structure/bed/chair/comfy{ dir = 4 }, -/turf/open/floor/prison{ - dir = 5; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/northeast, /area/fiorina/station/civres_blue) "rtP" = ( /obj/item/trash/cigbutt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/station/medbay) "rur" = ( /obj/structure/reagent_dispensers/watertank, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/fiorina/station/park) "ruu" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, /obj/effect/alien/weeds/node, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/west, /area/fiorina/tumor/aux_engi) "ruD" = ( /turf/open/floor/wood, @@ -28690,19 +22766,14 @@ /area/fiorina/tumor/servers) "rwj" = ( /obj/structure/barricade/plasteel, -/turf/open/organic/grass{ - name = "astroturf" - }, +/turf/open/organic/grass/astroturf, /area/fiorina/station/park) "rwm" = ( /obj/structure/sink{ dir = 8; pixel_x = -12 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/southwest, /area/fiorina/station/research_cells) "rwu" = ( /obj/structure/bed/chair{ @@ -28721,22 +22792,14 @@ /obj/item/clothing/under/color/orange, /obj/item/clothing/under/color/orange, /obj/structure/surface/rack, -/turf/open/floor/prison{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/east, /area/fiorina/station/lowsec) "rwQ" = ( /obj/effect/decal/cleanable/blood/drip, -/turf/open/floor/prison{ - dir = 8; - icon_state = "greenblue" - }, +/turf/open/floor/prison/greenblue/west, /area/fiorina/station/botany) "rxg" = ( -/turf/open/floor/prison{ - icon_state = "redcorner" - }, +/turf/open/floor/prison/redcorner, /area/fiorina/station/security) "rxr" = ( /obj/structure/bed/chair/office/light{ @@ -28772,10 +22835,7 @@ /turf/open/floor/plating/prison, /area/fiorina/station/lowsec) "rzp" = ( -/turf/open/floor/prison{ - dir = 9; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/northwest, /area/fiorina/station/lowsec) "rzt" = ( /obj/structure/window/framed/prison/reinforced/hull, @@ -28785,9 +22845,7 @@ /obj/structure/holohoop{ pixel_y = 25 }, -/turf/open/floor/prison{ - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow, /area/fiorina/station/lowsec) "rAm" = ( /obj/structure/surface/rack, @@ -28796,10 +22854,7 @@ /area/fiorina/station/telecomm/lz2_maint) "rAw" = ( /obj/structure/bed/chair, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/station/research_cells) "rAK" = ( /obj/structure/barricade/metal{ @@ -28817,9 +22872,7 @@ /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/civres) "rAY" = ( /obj/item/ammo_magazine/rifle/m16{ @@ -28833,18 +22886,13 @@ /turf/open/floor/plating/prison, /area/fiorina/tumor/ice_lab) "rBs" = ( -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/fiorina/station/civres_blue) "rBu" = ( /obj/structure/barricade/handrail/type_b{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/fiorina/station/flight_deck) "rBz" = ( /obj/structure/bed/chair/comfy{ @@ -28859,10 +22907,7 @@ /obj/structure/platform{ dir = 4 }, -/turf/open/floor/prison{ - dir = 6; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/southeast, /area/fiorina/station/disco) "rCq" = ( /obj/structure/largecrate/supply/supplies/flares, @@ -28887,9 +22932,7 @@ /area/fiorina/station/medbay) "rFu" = ( /obj/effect/decal/cleanable/blood/drip, -/turf/open/floor/prison/chapel_carpet{ - icon_state = "doubleside" - }, +/turf/open/floor/prison/chapel_carpet/doubleside, /area/fiorina/station/chapel) "rFw" = ( /obj/structure/largecrate/random/case/double, @@ -28897,25 +22940,16 @@ /area/fiorina/lz/near_lzI) "rFF" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_core, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/tumor/ice_lab) "rGc" = ( /obj/structure/closet/firecloset/full, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/tumor/ice_lab) "rGe" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/computer3/laptop/secure_data, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "rGf" = ( /turf/open/auto_turf/sand/layer1, @@ -28935,25 +22969,18 @@ health = 250; icon_state = "metal_1" }, -/turf/open/organic/grass{ - name = "astroturf" - }, +/turf/open/organic/grass/astroturf, /area/fiorina/station/park) "rHf" = ( /obj/structure/machinery/optable{ desc = "This maybe could be used for advanced medical procedures."; name = "Exam Table" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "rHh" = ( /obj/effect/decal/cleanable/blood/drip, -/turf/open/floor/prison{ - icon_state = "floorscorched1" - }, +/turf/open/floor/prison/floorscorched1, /area/fiorina/station/chapel) "rHr" = ( /obj/effect/alien/weeds/node, @@ -28969,15 +22996,10 @@ dir = 1; pixel_y = 21 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/fiorina/tumor/servers) "rHX" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/tumor/ice_lab) "rIr" = ( /obj/structure/machinery/light/double/blue{ @@ -28985,19 +23007,14 @@ pixel_x = -10; pixel_y = -3 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/southwest, /area/fiorina/station/research_cells) "rIy" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/phone{ pixel_y = 7 }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/fiorina/station/security) "rIE" = ( /obj/item/stack/rods, @@ -29011,9 +23028,7 @@ /area/fiorina/station/medbay) "rJc" = ( /obj/effect/decal/cleanable/blood/drip, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/chapel) "rJh" = ( /obj/effect/decal/cleanable/blood, @@ -29026,9 +23041,7 @@ /turf/open/floor/plating/prison, /area/fiorina/maintenance) "rJF" = ( -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/chapel) "rJO" = ( /turf/open/floor/carpet, @@ -29061,78 +23074,52 @@ icon_state = "poster14"; pixel_y = 32 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/north, /area/fiorina/station/lowsec) "rKm" = ( /obj/structure/machinery/vending/coffee, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/fiorina/station/security) "rKs" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/storage/box/cups, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/power_ring) "rKy" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "greenblue" - }, +/turf/open/floor/prison/greenblue/north, /area/fiorina/station/botany) "rKA" = ( /obj/structure/bed/chair/comfy, -/turf/open/floor/prison{ - icon_state = "blue" - }, +/turf/open/floor/prison/blue, /area/fiorina/station/civres_blue) "rKG" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 8; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/west, /area/fiorina/station/botany) "rLA" = ( /obj/structure/platform, /turf/open/floor/prison, /area/fiorina/station/botany) "rLG" = ( -/turf/open/floor/prison{ - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple, /area/fiorina/station/research_cells) "rLJ" = ( -/obj/structure/largecrate/random/case/double, -/turf/open/floor/plating/plating_catwalk/prison, -/area/fiorina/station/chapel) +/obj/item/clothing/gloves/boxing, +/turf/open/floor/prison/yellow/southwest, +/area/fiorina/station/lowsec) "rMo" = ( /obj/effect/landmark/objective_landmark/far, /obj/structure/closet/secure_closet/engineering_personal, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/north, /area/fiorina/maintenance) "rMq" = ( /obj/structure/closet/secure_closet/medical3, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "rMw" = ( /obj/item/device/flashlight/lamp/tripod, -/turf/open/floor/prison{ - dir = 5; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/northeast, /area/fiorina/station/disco) "rMT" = ( /obj/structure/prop/almayer/computers/mission_planning_system{ @@ -29149,9 +23136,7 @@ pixel_x = -11; pixel_y = 10 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/fiorina/tumor/ship) "rNc" = ( /obj/structure/flora/bush/ausbushes/ausbush{ @@ -29159,24 +23144,15 @@ icon_state = "fullgrass_1"; name = "Fiberbush(tm) tubers" }, -/turf/open/organic/grass{ - desc = "It'll get in your shoes no matter what you do."; - name = "astroturf" - }, +/turf/open/organic/grass/astroturf, /area/fiorina/tumor/fiberbush) "rNK" = ( /obj/effect/spawner/random/gun/pistol/lowchance, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/north, /area/fiorina/station/park) "rNV" = ( /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/fiorina/tumor/civres) "rOu" = ( /obj/structure/closet, @@ -29195,17 +23171,13 @@ /obj/structure/machinery/floodlight{ name = "Yard Floodlight" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/central_ring) "rPd" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/stack/sheet/metal/medium_stack, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/civres) "rPf" = ( /obj/structure/surface/table/reinforced/prison, @@ -29214,15 +23186,11 @@ dir = 1; pixel_y = 21 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/transit_hub) "rPD" = ( /obj/item/stack/sheet/metal, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/lowsec) "rPI" = ( /obj/structure/surface/table/reinforced/prison, @@ -29257,9 +23225,7 @@ /area/fiorina/station/research_cells) "rPW" = ( /obj/effect/spawner/random/gun/rifle/lowchance, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/lz/near_lzI) "rPZ" = ( /obj/item/shard{ @@ -29276,51 +23242,33 @@ "rQu" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/stack/cable_coil/orange, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/maintenance) "rQB" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/west, /area/fiorina/station/lowsec) "rQK" = ( /obj/item/bananapeel{ name = "tactical banana peel" }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/fiorina/station/medbay) "rQN" = ( -/turf/open/floor/prison{ - dir = 6; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/southeast, /area/fiorina/station/power_ring) "rRg" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/stack/sheet/mineral/plastic, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/fiorina/tumor/servers) "rRo" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/fiorina/station/telecomm/lz1_tram) "rRz" = ( /obj/structure/bed/chair/comfy{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/north, /area/fiorina/station/civres_blue) "rSr" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony/autoname{ @@ -29350,16 +23298,11 @@ /obj/item/ammo_casing{ icon_state = "casing_5" }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/west, /area/fiorina/tumor/ice_lab) "rTD" = ( /obj/effect/spawner/random/powercell, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, +/turf/open/floor/prison/bluefull, /area/fiorina/station/power_ring) "rTH" = ( /obj/structure/sign/prop1{ @@ -29378,22 +23321,13 @@ /obj/effect/decal/cleanable/blood/splatter{ icon_state = "gibup1" }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/north, /area/fiorina/station/medbay) "rTZ" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/prison/whitepurplecorner/north, /area/fiorina/station/research_cells) "rUf" = ( -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/northwest, /area/fiorina/tumor/servers) "rUA" = ( /obj/effect/landmark/objective_landmark/close, @@ -29413,33 +23347,17 @@ pixel_x = 17; pixel_y = 21 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "rVi" = ( /obj/structure/barricade/handrail/type_b, -/turf/open/floor/prison{ - dir = 6; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/southeast, /area/fiorina/station/flight_deck) "rVp" = ( /obj/structure/closet/secure_closet/engineering_welding, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison{ - dir = 6; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/southeast, /area/fiorina/maintenance) -"rVL" = ( -/obj/structure/largecrate/supply, -/turf/open/floor/prison{ - dir = 1; - icon_state = "yellow" - }, -/area/fiorina/station/lowsec) "rVM" = ( /obj/structure/closet/crate/miningcar, /obj/structure/barricade/wooden{ @@ -29481,16 +23399,11 @@ "rXt" = ( /obj/structure/surface/rack, /obj/item/device/camera, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/fiberbush) "rYw" = ( /obj/item/trash/liquidfood, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/tumor/ice_lab) "rYy" = ( /obj/item/stool{ @@ -29501,18 +23414,13 @@ icon_state = "poster1"; pixel_y = 32 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/north, /area/fiorina/station/lowsec) "rYK" = ( /obj/structure/machinery/light/double/blue{ pixel_y = -1 }, -/turf/open/floor/prison{ - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow, /area/fiorina/station/lowsec) "rYY" = ( /obj/structure/bed/roller, @@ -29525,9 +23433,7 @@ /area/fiorina/station/medbay) "rZe" = ( /obj/structure/machinery/light/double/blue, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/fiorina/station/security/wardens) "rZi" = ( /turf/closed/shuttle/ert{ @@ -29537,27 +23443,24 @@ "rZI" = ( /obj/structure/surface/rack, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) +"rZM" = ( +/obj/item/circuitboard/exosuit/peripherals/max/targeting, +/obj/structure/surface/rack, +/turf/open/floor/prison/floor_plate, +/area/fiorina/tumor/civres) "rZN" = ( /obj/structure/bed/chair/comfy{ dir = 8 }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/northwest, /area/fiorina/station/flight_deck) "rZO" = ( /obj/structure/bed/chair/office/dark{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/fiorina/station/security) "rZP" = ( /turf/closed/wall/r_wall/prison_unmeltable, @@ -29575,29 +23478,18 @@ pixel_x = 1; pixel_y = 8 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/power_ring) "sbf" = ( /obj/effect/landmark/corpsespawner/prisoner, -/turf/open/gm/river{ - color = "#990000"; - name = "pool" - }, +/turf/open/gm/river/darkred_pool, /area/fiorina/station/park) "sbF" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/prison/red/east, /area/fiorina/station/security) "sbL" = ( /obj/structure/surface/rack, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/tumor/ice_lab) "sbU" = ( /obj/item/trash/pistachios, @@ -29609,18 +23501,12 @@ /turf/open/floor/prison, /area/fiorina/station/power_ring) "sbW" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenbluecorner" - }, +/turf/open/floor/prison/greenbluecorner/east, /area/fiorina/station/botany) "scp" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/trash/uscm_mre, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "scG" = ( /obj/item/reagent_container/food/drinks/sillycup, @@ -29628,9 +23514,7 @@ /area/fiorina/station/flight_deck) "scH" = ( /obj/structure/machinery/washing_machine, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/fiorina/station/civres_blue) "scM" = ( /turf/closed/wall/r_wall/prison_unmeltable, @@ -29640,9 +23524,7 @@ dir = 8; layer = 3.5 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/disco) "scZ" = ( /obj/structure/platform, @@ -29660,17 +23542,11 @@ /area/fiorina/lz/near_lzI) "sdr" = ( /obj/effect/landmark/corpsespawner/ua_riot, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "sdE" = ( /obj/item/storage/wallet/random, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/fiorina/tumor/civres) "sdK" = ( /obj/structure/surface/table/woodentable, @@ -29687,40 +23563,27 @@ health = 80 }, /obj/structure/reagent_dispensers/water_cooler, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/station/medbay) "sdV" = ( /obj/structure/machinery/light/double/blue{ pixel_y = -1 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/fiorina/station/telecomm/lz1_cargo) "sdY" = ( /obj/structure/largecrate/random, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/fiorina/station/civres_blue) "seh" = ( /obj/item/reagent_container/glass/bucket/janibucket, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/civres_blue) "set" = ( /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/station/medbay) "seF" = ( /obj/structure/monorail{ @@ -29738,18 +23601,13 @@ /obj/structure/barricade/wooden{ dir = 1 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/west, /area/fiorina/station/telecomm/lz1_cargo) "sfi" = ( /obj/structure/platform_decoration{ dir = 1 }, -/turf/open/floor/prison/chapel_carpet{ - icon_state = "doubleside" - }, +/turf/open/floor/prison/chapel_carpet/doubleside, /area/fiorina/station/chapel) "sfn" = ( /obj/structure/disposalpipe/segment{ @@ -29758,28 +23616,19 @@ name = "overhead ducting"; pixel_y = 33 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/fiorina/tumor/civres) "sfs" = ( /obj/structure/surface/table/woodentable/fancy, /obj/item/storage/fancy/candle_box, -/turf/open/floor/prison/chapel_carpet{ - dir = 1; - icon_state = "doubleside" - }, +/turf/open/floor/prison/chapel_carpet/doubleside/north, /area/fiorina/station/chapel) "sfu" = ( /obj/structure/toilet{ dir = 4; pixel_y = 8 }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/northwest, /area/fiorina/station/lowsec) "sfI" = ( /obj/structure/monorail{ @@ -29800,9 +23649,7 @@ pixel_x = -6; pixel_y = 12 }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/fiorina/station/research_cells) "sga" = ( /obj/effect/decal{ @@ -29812,10 +23659,7 @@ pixel_y = -11 }, /obj/structure/barricade/metal/wired, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/fiorina/station/flight_deck) "sgt" = ( /obj/structure/inflatable/popped/door, @@ -29830,9 +23674,7 @@ /obj/item/storage/belt/gun/flaregun/full, /obj/item/storage/belt/gun/flaregun/full, /obj/item/storage/belt/gun/flaregun/full, -/turf/open/floor/prison{ - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2, /area/fiorina/lz/near_lzI) "sha" = ( /obj/item/storage/bible/hefa{ @@ -29847,9 +23689,7 @@ dir = 1; pixel_y = -1 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/fiorina/station/research_cells) "shH" = ( /obj/structure/machinery/light/double/blue, @@ -29857,34 +23697,23 @@ /area/fiorina/station/central_ring) "sia" = ( /obj/effect/landmark/objective_landmark/far, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/aux_engi) "sig" = ( /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/fiberbush) "siy" = ( /obj/item/stack/cable_coil, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/power_ring) "siB" = ( /obj/item/poster, -/turf/open/floor/prison{ - dir = 9; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/northwest, /area/fiorina/station/research_cells) "siE" = ( /obj/structure/machinery/cm_vending/sorted/tech/electronics_storage, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/fiorina/tumor/aux_engi) "siK" = ( /obj/structure/prop/resin_prop{ @@ -29911,16 +23740,12 @@ /obj/structure/machinery/recharger{ pixel_y = 4 }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/fiorina/station/security) "sjM" = ( /obj/structure/surface/table/reinforced/prison, /obj/effect/spawner/random/goggles/lowchance, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/fiorina/station/security) "sjR" = ( /obj/structure/flora/grass/tallgrass/jungle/corner{ @@ -29930,9 +23755,7 @@ dir = 4; pixel_y = 4 }, -/turf/open/organic/grass{ - name = "astroturf" - }, +/turf/open/organic/grass/astroturf, /area/fiorina/station/park) "sjT" = ( /obj/structure/prop/structure_lattice{ @@ -29952,16 +23775,11 @@ pixel_x = -16; pixel_y = 12 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/servers) "sjX" = ( /obj/item/reagent_container/blood, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenbluecorner" - }, +/turf/open/floor/prison/greenbluecorner/east, /area/fiorina/station/botany) "sjZ" = ( /obj/structure/machinery/light/double/blue{ @@ -29969,62 +23787,42 @@ pixel_x = 10; pixel_y = -3 }, -/turf/open/floor/prison{ - icon_state = "yellowfull" - }, +/turf/open/floor/prison/yellowfull, /area/fiorina/station/lowsec) "skj" = ( /obj/structure/closet/crate/miningcar{ name = "\improper materials storage bin" }, /obj/item/reagent_container/food/snacks/meat, -/turf/open/floor/prison{ - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow, /area/fiorina/station/lowsec) "skG" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/southwest, /area/fiorina/tumor/servers) "slc" = ( /obj/item/device/flashlight/lamp/tripod, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/park) "slh" = ( /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "sli" = ( /obj/structure/barricade/wooden{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/telecomm/lz1_cargo) "sls" = ( /obj/structure/pipes/standard/tank/oxygen, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/station/medbay) "slR" = ( /obj/effect/decal/cleanable/blood{ desc = "Watch your step."; icon_state = "gib6" }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/east, /area/fiorina/station/telecomm/lz1_cargo) "slT" = ( /obj/structure/bed/chair/comfy{ @@ -30037,10 +23835,7 @@ /turf/open/floor/prison, /area/fiorina/station/disco) "sms" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "bluecorner" - }, +/turf/open/floor/prison/bluecorner/north, /area/fiorina/station/civres_blue) "smv" = ( /obj/item/trash/used_stasis_bag{ @@ -30053,35 +23848,26 @@ /obj/structure/barricade/metal/wired{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/lz/near_lzI) "snr" = ( /obj/structure/platform{ dir = 4 }, /obj/item/stool, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, +/turf/open/floor/prison/bluefull, /area/fiorina/station/civres_blue) "snW" = ( /obj/structure/prop/resin_prop{ icon_state = "rack" }, /obj/structure/machinery/light/double/blue, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/fiorina/tumor/aux_engi) "soj" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/tool, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/fiorina/station/botany) "sov" = ( /turf/closed/shuttle/ert{ @@ -30098,19 +23884,14 @@ "spb" = ( /obj/structure/closet/secure_closet/hydroponics, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/fiorina/station/botany) "spl" = ( /obj/item/stack/sheet/metal, /obj/structure/barricade/handrail{ dir = 4 }, -/turf/open/organic/grass{ - name = "astroturf" - }, +/turf/open/organic/grass/astroturf, /area/fiorina/station/research_cells) "spm" = ( /obj/structure/surface/table/reinforced/prison, @@ -30135,10 +23916,7 @@ dir = 8; pixel_y = 24 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/east, /area/fiorina/station/park) "spH" = ( /obj/structure/disposalpipe/segment{ @@ -30147,16 +23925,11 @@ name = "overhead ducting"; pixel_y = 33 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/tumor/ice_lab) "spR" = ( /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/fiorina/station/research_cells) "sqx" = ( /obj/structure/machinery/door/poddoor/shutters/almayer{ @@ -30185,9 +23958,7 @@ /area/fiorina/station/central_ring) "srt" = ( /obj/item/reagent_container/food/drinks/bottle/sake, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/civres) "srI" = ( /obj/item/tool/crowbar/red, @@ -30195,10 +23966,7 @@ /area/fiorina/maintenance) "srQ" = ( /obj/structure/barricade/handrail, -/turf/open/floor/prison{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/northeast, /area/fiorina/station/research_cells) "ssb" = ( /turf/open/floor/prison, @@ -30207,10 +23975,7 @@ /obj/structure/flora/bush/ausbushes/grassybush{ icon_state = "ywflowers_2" }, -/turf/open/organic/grass{ - desc = "It'll get in your shoes no matter what you do."; - name = "astroturf" - }, +/turf/open/organic/grass/astroturf, /area/fiorina/station/central_ring) "sso" = ( /obj/structure/surface/table/reinforced/prison, @@ -30230,9 +23995,7 @@ /area/fiorina/oob) "ssM" = ( /obj/structure/janitorialcart, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/civres_blue) "ssO" = ( /obj/item/ashtray/glass, @@ -30240,9 +24003,7 @@ /area/fiorina/station/power_ring) "ssR" = ( /obj/item/clothing/under/shorts/black, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/central_ring) "sta" = ( /obj/structure/machinery/door/airlock/almayer/marine{ @@ -30256,17 +24017,11 @@ /area/fiorina/tumor/aux_engi) "stw" = ( /obj/structure/machinery/line_nexter, -/turf/open/floor/prison{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/prison/red/west, /area/fiorina/station/security) "stC" = ( /obj/structure/largecrate/random, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/fiorina/tumor/civres) "stP" = ( /obj/structure/window/reinforced{ @@ -30282,40 +24037,27 @@ pixel_y = 6 }, /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/medbay) "sue" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/device/tracker, -/turf/open/floor/prison{ - dir = 9; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/northwest, /area/fiorina/station/disco) "suq" = ( /obj/item/stool, -/turf/open/floor/prison{ - dir = 10; - icon_state = "damaged2" - }, +/turf/open/floor/prison/damaged2/southwest, /area/fiorina/station/lowsec) "suX" = ( /turf/open/floor/prison, /area/fiorina/station/central_ring) "suY" = ( /obj/item/device/cassette_tape/nam, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "svc" = ( /obj/structure/prop/almayer/computers/sensor_computer2, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/fiorina/station/security) "sve" = ( /obj/item/explosive/grenade/phosphorus, @@ -30323,10 +24065,7 @@ /obj/item/explosive/grenade/phosphorus, /obj/structure/surface/rack, /obj/item/explosive/grenade/phosphorus, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "svh" = ( /obj/structure/machinery/computer/telecomms/monitor, @@ -30340,63 +24079,45 @@ /obj/structure/machinery/shower{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/fiorina/station/lowsec) "svP" = ( -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/aux_engi) "svW" = ( /obj/structure/surface/rack, /obj/item/clothing/gloves/latex, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "swg" = ( /obj/structure/platform_decoration/kutjevo, /turf/open/space, /area/fiorina/oob) "swj" = ( -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/civres) "swJ" = ( /obj/item/tool/shovel/snow, /obj/item/device/flashlight, /obj/structure/surface/rack, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/tumor/ice_lab) "swT" = ( /obj/structure/platform{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/ice_lab) "sxc" = ( /obj/item/weapon/gun/rifle/mar40, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/lowsec) "sxk" = ( /obj/effect/landmark/objective_landmark/science, /turf/open/floor/prison, /area/fiorina/tumor/servers) "sxE" = ( -/turf/open/floor/prison{ - icon_state = "redcorner" - }, +/turf/open/floor/prison/redcorner, /area/fiorina/station/power_ring) "sxH" = ( /obj/structure/platform{ @@ -30409,16 +24130,11 @@ /area/fiorina/tumor/ice_lab) "syj" = ( /obj/item/clothing/under/color/orange, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/fiorina/station/security) "syG" = ( /obj/item/tool/wirecutters/clippers, -/turf/open/organic/grass{ - desc = "It'll get in your shoes no matter what you do."; - name = "astroturf" - }, +/turf/open/organic/grass/astroturf, /area/fiorina/tumor/fiberbush) "syU" = ( /obj/structure/flora/grass/tallgrass/jungle/corner{ @@ -30429,29 +24145,21 @@ icon_state = "casing_6" }, /obj/effect/spawner/random/gun/smg/midchance, -/turf/open/organic/grass{ - name = "astroturf" - }, +/turf/open/organic/grass/astroturf, /area/fiorina/station/park) "syV" = ( /obj/structure/sign/safety/fridge, /turf/closed/wall/prison, /area/fiorina/station/power_ring) "sze" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "greencorner" - }, +/turf/open/floor/prison/greencorner/north, /area/fiorina/tumor/civres) "szs" = ( /obj/item/clothing/accessory/armband/cargo{ desc = "Sworn to the shrapnel and the shards therein. So sayeth her command when the first detonation occured."; name = "HEFA Order milita armband" }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "bluecorner" - }, +/turf/open/floor/prison/bluecorner/east, /area/fiorina/station/chapel) "szD" = ( /obj/structure/stairs/perspective{ @@ -30474,10 +24182,7 @@ /area/fiorina/station/civres_blue) "sAF" = ( /obj/item/inflatable, -/turf/open/floor/prison{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/north, /area/fiorina/station/lowsec) "sBf" = ( /obj/structure/platform{ @@ -30487,9 +24192,7 @@ dir = 1; pixel_y = 21 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/park) "sBj" = ( /obj/structure/barricade/metal{ @@ -30507,17 +24210,11 @@ /area/fiorina/station/chapel) "sBM" = ( /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreencorner" - }, +/turf/open/floor/prison/whitegreencorner/east, /area/fiorina/station/medbay) "sBO" = ( /obj/structure/machinery/power/apc, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "sBW" = ( /obj/structure/platform{ @@ -30528,9 +24225,7 @@ "sBY" = ( /obj/structure/surface/table/reinforced/prison, /obj/effect/spawner/random/goggles/lowchance, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/park) "sCe" = ( /obj/structure/machinery/light/double/blue{ @@ -30538,23 +24233,17 @@ pixel_x = 10; pixel_y = -3 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/chapel) "sCH" = ( /obj/item/frame/rack, /obj/item/clothing/under/marine/ua_riot, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/fiorina/station/security) "sDn" = ( /obj/structure/inflatable/popped/door, /obj/structure/machinery/light/double/blue, -/turf/open/floor/prison{ - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen, /area/fiorina/station/medbay) "sDL" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony/autoname{ @@ -30568,40 +24257,29 @@ dir = 1; icon_state = "human2" }, -/turf/open/floor/prison{ - icon_state = "yellowfull" - }, +/turf/open/floor/prison/yellowfull, /area/fiorina/station/lowsec) "sDS" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/ammo_magazine/rifle/m16, -/turf/open/floor/prison{ - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2, /area/fiorina/lz/near_lzI) "sEO" = ( /turf/closed/wall/r_wall/prison, /area/fiorina/lz/near_lzII) "sFd" = ( -/turf/open/floor/prison{ - dir = 5; - icon_state = "greenblue" - }, +/turf/open/floor/prison/greenblue/northeast, /area/fiorina/station/botany) "sFo" = ( /obj/structure/surface/table/reinforced/prison, /obj/effect/spawner/random/toolbox, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/park) "sFr" = ( /obj/structure/barricade/handrail/type_b{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/flight_deck) "sFH" = ( /obj/structure/surface/table/reinforced/prison, @@ -30614,9 +24292,7 @@ pixel_y = 2 }, /obj/item/tool/stamp, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/fiorina/station/lowsec) "sFY" = ( /obj/structure/barricade/metal/wired{ @@ -30627,9 +24303,7 @@ /area/fiorina/station/central_ring) "sGa" = ( /obj/structure/platform_decoration, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/disco) "sGg" = ( /obj/structure/platform_decoration{ @@ -30645,26 +24319,18 @@ }, /obj/item/newspaper, /obj/item/bedsheet/green, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/east, /area/fiorina/station/medbay) "sGx" = ( /obj/structure/machinery/light/double/blue{ dir = 1; pixel_y = 21 }, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/fiorina/tumor/aux_engi) "sGC" = ( /obj/structure/closet/secure_closet/freezer/fridge, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/fiorina/station/civres_blue) "sGI" = ( /obj/structure/largecrate/random/case/double, @@ -30676,9 +24342,7 @@ name = "\improper prison food"; pixel_y = 9 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/fiorina/station/research_cells) "sHe" = ( /obj/structure/surface/table/reinforced/prison, @@ -30690,9 +24354,7 @@ pixel_x = -9; pixel_y = 8 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/power_ring) "sHj" = ( /obj/structure/machinery/light/double/blue{ @@ -30700,24 +24362,17 @@ pixel_x = 10; pixel_y = -3 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/fiorina/station/research_cells) "sHL" = ( /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/fiorina/tumor/civres) "sHM" = ( /obj/effect/decal/medical_decals{ icon_state = "cryocell2deval" }, -/turf/open/floor/prison{ - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen, /area/fiorina/station/medbay) "sHO" = ( /obj/structure/platform/kutjevo/smooth{ @@ -30730,48 +24385,34 @@ /area/fiorina/oob) "sIg" = ( /obj/item/device/pinpointer, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/fiorina/station/telecomm/lz1_cargo) "sIh" = ( /obj/structure/bed/chair/comfy{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/fiorina/station/security) "sIj" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/fiorina/station/flight_deck) "sIk" = ( /obj/structure/machinery/shower{ pixel_y = 13 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/fiorina/station/lowsec) "sIs" = ( /obj/item/weapon/gun/smg/nailgun, /obj/structure/surface/rack, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/fiorina/maintenance) "sIz" = ( /obj/structure/machinery/computer/emails{ pixel_y = 6 }, /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/park) "sIC" = ( /turf/open/floor/prison, @@ -30797,10 +24438,7 @@ /obj/item/ammo_casing{ icon_state = "casing_9_1" }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "yellowcorner" - }, +/turf/open/floor/prison/yellowcorner/west, /area/fiorina/station/lowsec) "sJB" = ( /obj/item/stack/folding_barricade, @@ -30814,27 +24452,21 @@ /area/fiorina/lz/near_lzI) "sJP" = ( /obj/item/device/flashlight/lamp/tripod, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/lowsec) "sKr" = ( /obj/item/storage/secure/briefcase{ pixel_x = 9; pixel_y = 18 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/lowsec) "sKt" = ( /obj/structure/bed/chair{ dir = 1; layer = 2.7 }, -/turf/open/floor/prison{ - icon_state = "yellowfull" - }, +/turf/open/floor/prison/yellowfull, /area/fiorina/station/lowsec) "sKu" = ( /obj/structure/stairs/perspective{ @@ -30855,9 +24487,7 @@ dir = 1; pixel_y = 21 }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/fiorina/lz/near_lzI) "sLx" = ( /obj/structure/disposalpipe/segment{ @@ -30875,44 +24505,28 @@ pixel_x = 3; pixel_y = 5 }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/fiorina/station/security) "sMX" = ( /obj/structure/machinery/cm_vending/sorted/tech/comp_storage, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/fiorina/tumor/aux_engi) "sMY" = ( /obj/item/reagent_container/food/snacks/eat_bar, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/fiorina/station/botany) "sNb" = ( /obj/item/device/radio, -/turf/open/organic/grass{ - desc = "It'll get in your shoes no matter what you do."; - name = "astroturf" - }, +/turf/open/organic/grass/astroturf, /area/fiorina/tumor/fiberbush) "sNg" = ( /obj/structure/closet/firecloset/full, /obj/item/storage/pill_bottle/bicaridine/skillless, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/tumor/ice_lab) "sNi" = ( /obj/item/device/flashlight, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/station/research_cells) "sNj" = ( /obj/structure/barricade/metal/wired{ @@ -30921,10 +24535,7 @@ /obj/item/stack/sheet/metal{ amount = 5 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/fiorina/station/telecomm/lz1_cargo) "sNN" = ( /obj/structure/platform, @@ -30937,15 +24548,10 @@ /obj/structure/platform_decoration{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/telecomm/lz1_tram) "sNU" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/prison/red/north, /area/fiorina/station/security) "sOf" = ( /obj/item/clothing/mask/cigarette/weed{ @@ -30974,10 +24580,7 @@ /area/fiorina/station/security) "sOs" = ( /obj/structure/machinery/door/airlock/prison_hatch/autoname, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/fiorina/tumor/ship) "sOM" = ( /obj/item/device/flashlight/lamp/tripod, @@ -30990,16 +24593,10 @@ "sPh" = ( /obj/item/stack/sheet/metal/medium_stack, /obj/structure/surface/rack, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/fiorina/lz/near_lzI) "sPi" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/prison/darkyellowcorners2/west, /area/fiorina/station/telecomm/lz1_cargo) "sPt" = ( /obj/structure/stairs/perspective{ @@ -31013,9 +24610,7 @@ /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/civres) "sQr" = ( /obj/structure/janitorialcart, @@ -31028,40 +24623,29 @@ "sQy" = ( /obj/effect/decal/cleanable/blood, /obj/effect/spawner/random/gun/pistol/midchance, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/fiorina/station/security) "sQz" = ( /obj/structure/closet/emcloset, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/ice_lab) "sQC" = ( /obj/structure/surface/rack, -/obj/item/handcuffs, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/obj/item/restraint/handcuffs, +/turf/open/floor/prison/darkredfull2, /area/fiorina/station/security) "sQL" = ( /obj/structure/platform, -/turf/open/gm/river{ - color = "#995555"; - name = "pool" - }, +/turf/open/gm/river/red_pool, /area/fiorina/station/park) "sRv" = ( -/obj/item/clothing/shoes/marine/upp_knife, +/obj/item/clothing/shoes/marine/upp/knife, /turf/open/floor/prison, /area/fiorina/station/lowsec) "sRE" = ( /obj/structure/platform, /obj/structure/machinery/light/double/blue, -/turf/open/floor/prison{ - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2, /area/fiorina/station/park) "sRJ" = ( /obj/structure/machinery/constructable_frame, @@ -31069,10 +24653,7 @@ dir = 1; pixel_y = 21 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "damaged2" - }, +/turf/open/floor/prison/damaged2/southwest, /area/fiorina/station/lowsec) "sSM" = ( /obj/structure/stairs/perspective{ @@ -31122,25 +24703,16 @@ dir = 1; pixel_y = 21 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/fiorina/station/telecomm/lz1_cargo) "sTI" = ( /obj/structure/machinery/cm_vending/sorted/medical/no_access, /obj/structure/machinery/light/double/blue, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/station/medbay) "sTK" = ( /obj/structure/barricade/wooden, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/east, /area/fiorina/station/telecomm/lz1_cargo) "sTU" = ( /obj/structure/platform, @@ -31150,9 +24722,7 @@ /obj/structure/platform_decoration{ dir = 6 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/park) "sUc" = ( /obj/structure/bed/chair/office/light{ @@ -31166,9 +24736,7 @@ }, /obj/effect/decal/cleanable/blood, /obj/effect/spawner/gibspawner/human, -/turf/open/floor/prison{ - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2, /area/fiorina/station/park) "sUl" = ( /obj/structure/machinery/door/poddoor/shutters/almayer{ @@ -31179,32 +24747,22 @@ "sUr" = ( /obj/structure/surface/table/woodentable/fancy, /obj/item/storage/bible/hefa, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/fiorina/station/chapel) "sUt" = ( /obj/effect/landmark/objective_landmark/far, /turf/open/floor/prison, /area/fiorina/station/park) "sUV" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkbrowncorners2" - }, +/turf/open/floor/prison/darkbrowncorners2/east, /area/fiorina/tumor/aux_engi) "sUX" = ( /obj/effect/decal/cleanable/blood/oil, -/turf/open/organic/grass{ - name = "astroturf" - }, +/turf/open/organic/grass/astroturf, /area/fiorina/station/research_cells) "sUY" = ( /obj/effect/decal/cleanable/blood/drip, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/fiorina/station/civres_blue) "sVd" = ( /obj/structure/stairs/perspective{ @@ -31224,17 +24782,11 @@ /area/fiorina/oob) "sVS" = ( /obj/item/trash/pistachios, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/tumor/ice_lab) "sVT" = ( /obj/effect/spawner/random/tool, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/tumor/ice_lab) "sVU" = ( /obj/structure/largecrate/machine, @@ -31245,18 +24797,12 @@ /area/fiorina/station/medbay) "sVW" = ( /obj/effect/landmark/xeno_spawn, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/west, /area/fiorina/tumor/aux_engi) "sVZ" = ( /obj/structure/closet/secure_closet/hydroponics, /obj/effect/spawner/random/pills/lowchance, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/fiorina/station/botany) "sWb" = ( /obj/structure/prop/structure_lattice{ @@ -31268,15 +24814,10 @@ layer = 3.1; pixel_y = 10 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/ice_lab) "sWe" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/east, /area/fiorina/station/civres_blue) "sWl" = ( /obj/structure/bed/roller, @@ -31308,9 +24849,7 @@ /turf/open/floor/prison, /area/fiorina/station/research_cells) "sXi" = ( -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/fiorina/tumor/aux_engi) "sXt" = ( /obj/structure/stairs/perspective{ @@ -31325,9 +24864,7 @@ pixel_x = -1; pixel_y = 5 }, -/turf/open/floor/prison{ - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2, /area/fiorina/lz/near_lzI) "sYn" = ( /obj/structure/machinery/light/double/blue, @@ -31337,16 +24874,10 @@ /obj/item/ammo_casing{ icon_state = "casing_1" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "sYB" = ( -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/northwest, /area/fiorina/station/telecomm/lz1_tram) "sYP" = ( /obj/item/stack/sheet/metal, @@ -31358,17 +24889,11 @@ /area/fiorina/station/telecomm/lz1_tram) "sZZ" = ( /obj/structure/barricade/wooden, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/fiorina/station/telecomm/lz1_cargo) "tad" = ( /obj/structure/machinery/light/double/blue, -/turf/open/floor/prison{ - dir = 9; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/northwest, /area/fiorina/station/disco) "tai" = ( /obj/structure/bed/chair, @@ -31377,9 +24902,7 @@ dir = 4; pixel_y = 24 }, -/turf/open/floor/prison{ - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2, /area/fiorina/station/park) "taj" = ( /turf/open/floor/prison, @@ -31395,22 +24918,15 @@ /area/fiorina/station/park) "taI" = ( /obj/structure/machinery/vending/coffee, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/fiorina/station/research_cells) "taL" = ( /obj/item/clothing/under/color/orange, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/security) "taS" = ( /obj/item/stack/cable_coil, -/turf/open/floor/prison{ - dir = 5; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/northeast, /area/fiorina/station/power_ring) "taY" = ( /obj/structure/window/framed/prison/reinforced/hull, @@ -31418,52 +24934,35 @@ /area/fiorina/lz/near_lzI) "tbd" = ( /obj/structure/inflatable, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/ship) "tbj" = ( /obj/item/stack/sandbags_empty/half, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/fiorina/station/flight_deck) "tbm" = ( /obj/item/stack/cable_coil, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/north, /area/fiorina/tumor/servers) "tbG" = ( /obj/structure/bed{ icon_state = "psychbed" }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/fiorina/tumor/servers) "tco" = ( /obj/item/paper/crumpled/bloody/csheet, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/lz/near_lzII) "tcB" = ( /obj/effect/alien/weeds/node, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/fiorina/tumor/aux_engi) "tcD" = ( /obj/effect/decal/cleanable/blood/splatter{ icon_state = "gib2" }, -/turf/open/floor/prison{ - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen, /area/fiorina/station/medbay) "tcL" = ( /obj/structure/platform{ @@ -31473,9 +24972,7 @@ /obj/structure/platform_decoration{ dir = 10 }, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, +/turf/open/floor/prison/bluefull, /area/fiorina/station/chapel) "tcW" = ( /obj/structure/monorail{ @@ -31490,17 +24987,13 @@ /area/fiorina/station/transit_hub) "tde" = ( /obj/structure/largecrate/random, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/central_ring) "tdq" = ( /obj/structure/platform_decoration{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/power_ring) "tdr" = ( /obj/structure/prop/resin_prop{ @@ -31508,19 +25001,13 @@ icon_state = "chair"; pixel_y = 6 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/tumor/ice_lab) "tel" = ( /turf/closed/wall/mineral/bone_resin, /area/fiorina/station/medbay) "teq" = ( -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/fiorina/station/botany) "tet" = ( /obj/structure/machinery/light/double/blue{ @@ -31528,45 +25015,31 @@ pixel_x = 10; pixel_y = 13 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/fiorina/station/telecomm/lz1_cargo) "teu" = ( /obj/structure/reagent_dispensers/watertank, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/servers) "teI" = ( /obj/structure/largecrate/supply/supplies/tables_racks, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/civres) "teK" = ( /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "tfl" = ( /obj/effect/decal/cleanable/blood{ icon_state = "gib6" }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/east, /area/fiorina/tumor/ice_lab) "tfw" = ( /obj/item/device/flashlight/lamp/tripod, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/fiorina/tumor/servers) "tfx" = ( /obj/structure/barricade/wooden{ @@ -31588,9 +25061,7 @@ pixel_x = -10; pixel_y = 13 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/medbay) "tgB" = ( /obj/structure/barricade/wooden{ @@ -31600,10 +25071,7 @@ /area/fiorina/station/chapel) "tgK" = ( /obj/structure/machinery/landinglight/ds1/delayone, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/fiorina/lz/near_lzI) "tgL" = ( /obj/structure/machinery/portable_atmospherics/powered/scrubber, @@ -31619,9 +25087,7 @@ pixel_x = -4; pixel_y = 4 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/lowsec) "thI" = ( /obj/structure/machinery/light/double/blue{ @@ -31629,17 +25095,11 @@ pixel_x = -10; pixel_y = -3 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/west, /area/fiorina/station/civres_blue) "thV" = ( /obj/item/tool/kitchen/utensil/pfork, -/turf/open/floor/prison{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/east, /area/fiorina/station/power_ring) "tii" = ( /obj/structure/monorail{ @@ -31653,9 +25113,7 @@ }, /obj/item/stool, /obj/item/clothing/shoes/slippers_worn, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, +/turf/open/floor/prison/bluefull, /area/fiorina/station/civres_blue) "tir" = ( /obj/item/ammo_magazine/rifle/m16, @@ -31667,10 +25125,7 @@ /obj/structure/barricade/handrail/type_b{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "tiM" = ( /obj/item/shard{ @@ -31680,31 +25135,20 @@ /obj/structure/platform{ dir = 8 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/west, /area/fiorina/tumor/ice_lab) "tiX" = ( /obj/item/stack/sheet/mineral/plastic, /turf/open/floor/plating/prison, /area/fiorina/station/lowsec) "tiY" = ( -/turf/open/floor/prison{ - icon_state = "floorscorched2" - }, +/turf/open/floor/prison/floorscorched2, /area/fiorina/tumor/civres) "tiZ" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/east, /area/fiorina/station/park) "tja" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/station/medbay) "tji" = ( /obj/structure/flora/pottedplant{ @@ -31725,9 +25169,7 @@ "tjw" = ( /obj/structure/platform_decoration, /obj/structure/inflatable, -/turf/open/floor/prison{ - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen, /area/fiorina/station/medbay) "tjR" = ( /obj/structure/machinery/shower{ @@ -31737,9 +25179,7 @@ dir = 1; pixel_y = -1 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/fiorina/station/research_cells) "tkd" = ( /obj/structure/filingcabinet, @@ -31750,15 +25190,10 @@ /area/fiorina/station/security) "tkg" = ( /obj/structure/machinery/door/airlock/prison_hatch/autoname, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/park) "tkj" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/north, /area/fiorina/station/park) "tkP" = ( /obj/structure/stairs/perspective{ @@ -31773,10 +25208,7 @@ pixel_x = -10; pixel_y = -3 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/west, /area/fiorina/station/research_cells) "tle" = ( /obj/structure/filingcabinet{ @@ -31788,17 +25220,13 @@ pixel_y = 4 }, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/civres) "tlj" = ( /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "bluecorner" - }, +/turf/open/floor/prison/bluecorner, /area/fiorina/station/power_ring) "tlq" = ( /obj/structure/surface/table/reinforced/prison, @@ -31826,9 +25254,7 @@ /obj/structure/platform_decoration{ dir = 5 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/power_ring) "tlF" = ( /obj/structure/stairs/perspective{ @@ -31847,10 +25273,7 @@ /obj/item/shard{ icon_state = "medium" }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/east, /area/fiorina/station/medbay) "tlQ" = ( /obj/effect/decal/cleanable/blood/oil, @@ -31880,23 +25303,15 @@ /area/fiorina/station/park) "tmF" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_nest, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/north, /area/fiorina/tumor/ice_lab) "tmI" = ( /obj/effect/alien/weeds/node, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/north, /area/fiorina/tumor/aux_engi) "tmL" = ( /obj/item/device/flashlight/lamp/tripod, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/civres_blue) "tmX" = ( /obj/structure/largecrate/random/case/small, @@ -31914,16 +25329,11 @@ /area/fiorina/station/chapel) "tnw" = ( /obj/effect/landmark/queen_spawn, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/north, /area/fiorina/tumor/aux_engi) "tnY" = ( /obj/structure/platform_decoration, -/turf/open/floor/prison{ - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen, /area/fiorina/station/medbay) "tob" = ( /obj/structure/machinery/door/airlock/almayer/generic{ @@ -31945,9 +25355,7 @@ /obj/effect/decal/hefa_cult_decals/d32{ icon_state = "2" }, -/turf/open/floor/prison/chapel_carpet{ - icon_state = "doubleside" - }, +/turf/open/floor/prison/chapel_carpet/doubleside, /area/fiorina/maintenance) "tpt" = ( /obj/structure/closet/wardrobe/chaplain_black, @@ -31966,23 +25374,15 @@ /area/fiorina/lz/near_lzI) "tpz" = ( /obj/item/paper/carbon, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/station/medbay) "tpE" = ( /obj/item/tank/jetpack/carbondioxide, /obj/structure/surface/rack, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/servers) "tpF" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "green" - }, +/turf/open/floor/prison/green/east, /area/fiorina/tumor/aux_engi) "tpY" = ( /obj/effect/landmark/monkey_spawn, @@ -31992,19 +25392,14 @@ /obj/effect/decal/medical_decals{ icon_state = "triagedecalleft" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/station/medbay) "tql" = ( /obj/structure/machinery/light/double/blue{ dir = 1; pixel_y = 21 }, -/turf/open/floor/prison{ - icon_state = "greenblue" - }, +/turf/open/floor/prison/greenblue, /area/fiorina/station/botany) "tqw" = ( /obj/structure/stairs/perspective{ @@ -32018,10 +25413,7 @@ }, /obj/item/storage/toolbox, /obj/item/storage/toolbox, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/fiorina/tumor/servers) "tqP" = ( /obj/structure/platform/kutjevo/smooth{ @@ -32043,16 +25435,11 @@ /turf/open/floor/plating/prison, /area/fiorina/tumor/ice_lab) "trJ" = ( -/turf/open/floor/prison{ - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2, /area/fiorina/station/central_ring) "trN" = ( /obj/item/stack/barbed_wire, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "trR" = ( /obj/structure/sink{ @@ -32060,10 +25447,7 @@ pixel_x = 12 }, /obj/item/storage/fancy/cigarettes/blackpack, -/turf/open/floor/prison{ - dir = 6; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/southeast, /area/fiorina/station/research_cells) "trS" = ( /obj/structure/barricade/wooden{ @@ -32087,31 +25471,21 @@ /obj/item/storage/donut_box{ pixel_y = 9 }, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, +/turf/open/floor/prison/bluefull, /area/fiorina/station/power_ring) "tsr" = ( /obj/structure/pipes/unary/freezer{ icon_state = "freezer_1" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/station/medbay) "tss" = ( /obj/structure/bookcase/manuals/engineering, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/fiorina/tumor/civres) "tst" = ( /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/fiorina/oob) "tsA" = ( /obj/structure/barricade/metal{ @@ -32119,25 +25493,18 @@ health = 150; icon_state = "metal_2" }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/fiorina/tumor/ice_lab) "tsH" = ( /obj/structure/tunnel, -/turf/open/organic/grass{ - desc = "It'll get in your shoes no matter what you do."; - name = "astroturf" - }, +/turf/open/organic/grass/astroturf, /area/fiorina/tumor/fiberbush) "tsN" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/ammo_magazine/rifle/m16{ current_rounds = 0 }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/fiorina/station/security) "tuf" = ( /obj/item/clothing/shoes/jackboots{ @@ -32155,10 +25522,7 @@ /turf/open/floor/plating/prison, /area/fiorina/tumor/aux_engi) "tuA" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/west, /area/fiorina/station/telecomm/lz1_tram) "tuX" = ( /obj/structure/platform{ @@ -32175,10 +25539,7 @@ "tvi" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/weapon/gun/shotgun/pump/dual_tube/cmb, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/tumor/ice_lab) "twb" = ( /turf/closed/wall/r_wall/prison_unmeltable, @@ -32187,19 +25548,14 @@ /obj/structure/bed/chair/office/dark{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/tumor/ice_lab) "txb" = ( /obj/structure/window/framed/prison/reinforced{ opacity = 1 }, /obj/structure/machinery/door/poddoor/shutters/almayer, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/chapel) "txf" = ( /obj/structure/prop/almayer/computers/sensor_computer1{ @@ -32209,9 +25565,7 @@ dir = 1; pixel_y = 21 }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/fiorina/station/research_cells) "txh" = ( /obj/structure/bed/sofa/vert/grey, @@ -32223,43 +25577,30 @@ pixel_y = 24 }, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/west, /area/fiorina/station/park) "tyj" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/east, /area/fiorina/station/chapel) "tyt" = ( /obj/item/ammo_casing{ dir = 8; icon_state = "cartridge_2" }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/west, /area/fiorina/station/flight_deck) "tyC" = ( /obj/structure/machinery/landinglight/ds2/delaytwo{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/lz/near_lzII) "tyJ" = ( /obj/item/reagent_container/food/snacks/xenoburger, /obj/item/reagent_container/food/snacks/xenoburger, /obj/item/reagent_container/food/snacks/xenoburger, /obj/structure/closet/crate/freezer, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/fiorina/station/power_ring) "tzy" = ( /obj/item/ammo_magazine/smg/mp5, @@ -32284,16 +25625,11 @@ /area/fiorina/oob) "tzU" = ( /obj/structure/machinery/vending/snack, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, +/turf/open/floor/prison/bluefull, /area/fiorina/station/power_ring) "tzW" = ( /obj/effect/landmark/xeno_spawn, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/southwest, /area/fiorina/tumor/aux_engi) "tAb" = ( /obj/structure/surface/rack, @@ -32308,17 +25644,11 @@ dir = 1; pixel_y = 21 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/east, /area/fiorina/station/medbay) "tAE" = ( /obj/structure/barricade/handrail, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/north, /area/fiorina/station/research_cells) "tAR" = ( /obj/structure/surface/rack, @@ -32328,10 +25658,7 @@ pixel_y = -5 }, /obj/item/tool/crowbar, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "tBP" = ( /obj/structure/machinery/shower{ @@ -32341,16 +25668,11 @@ /area/fiorina/station/research_cells) "tCv" = ( /obj/effect/landmark/corpsespawner/ua_riot/burst, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/fiorina/tumor/civres) "tCH" = ( /obj/item/stack/folding_barricade, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/security) "tCZ" = ( /obj/structure/platform/kutjevo/smooth{ @@ -32375,9 +25697,7 @@ /area/fiorina/station/civres_blue) "tDC" = ( /obj/structure/machinery/cm_vending/sorted/tech/electronics_storage, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/aux_engi) "tDE" = ( /obj/structure/machinery/light/double/blue{ @@ -32396,9 +25716,7 @@ /area/fiorina/station/civres_blue) "tEA" = ( /obj/item/reagent_container/glass/bucket/janibucket, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/chapel) "tEH" = ( /obj/structure/window/framed/prison, @@ -32413,9 +25731,7 @@ /area/fiorina/station/transit_hub) "tEX" = ( /obj/structure/machinery/vending/cigarette, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/transit_hub) "tEY" = ( /obj/structure/machinery/newscaster{ @@ -32427,9 +25743,7 @@ /obj/structure/reagent_dispensers/watertank{ layer = 2.6 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/lz/near_lzII) "tFA" = ( /obj/structure/platform{ @@ -32446,18 +25760,12 @@ pixel_x = 10; pixel_y = -3 }, -/turf/open/floor/prison{ - dir = 6; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/southeast, /area/fiorina/station/medbay) "tGU" = ( /obj/structure/closet/crate/medical, /obj/item/storage/pill_bottle/tramadol/skillless, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "tGY" = ( /obj/structure/surface/table/reinforced/prison, @@ -32476,27 +25784,18 @@ /area/fiorina/station/lowsec) "tHw" = ( /obj/item/stack/rods, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/east, /area/fiorina/tumor/aux_engi) "tHF" = ( /obj/structure/platform{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "tHJ" = ( /obj/structure/closet/firecloset, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/northwest, /area/fiorina/maintenance) "tHL" = ( /obj/structure/blocker/invisible_wall, @@ -32511,9 +25810,7 @@ pixel_x = 1; pixel_y = 3 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/fiorina/station/power_ring) "tIn" = ( /obj/structure/reagent_dispensers/water_cooler, @@ -32534,48 +25831,31 @@ icon_state = "fullgrass_1"; name = "Fiberbush(tm) tubers" }, -/turf/open/organic/grass{ - desc = "It'll get in your shoes no matter what you do."; - name = "astroturf" - }, +/turf/open/organic/grass/astroturf, /area/fiorina/tumor/fiberbush) "tIU" = ( /obj/item/tool/candle, /turf/open/floor/prison/chapel_carpet, /area/fiorina/maintenance) "tIW" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/southwest, /area/fiorina/lz/near_lzI) "tJw" = ( /obj/structure/largecrate/random/secure, -/turf/open/floor/prison{ - dir = 6; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/southeast, /area/fiorina/station/medbay) "tJC" = ( /obj/structure/machinery/light/double/blue, -/turf/open/floor/prison{ - dir = 4; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/east, /area/fiorina/station/botany) "tJH" = ( /obj/item/reagent_container/food/drinks/coffee, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/fiorina/station/telecomm/lz1_cargo) "tJQ" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/clothing/mask/cigarette/cigar/tarbacks, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/chapel) "tJR" = ( /obj/structure/machinery/computer/cameras/wooden_tv{ @@ -32591,20 +25871,14 @@ pixel_x = 10; pixel_y = 13 }, -/turf/open/organic/grass{ - desc = "It'll get in your shoes no matter what you do."; - name = "astroturf" - }, +/turf/open/organic/grass/astroturf, /area/fiorina/tumor/fiberbush) "tKk" = ( /obj/structure/bed{ icon_state = "abed" }, /obj/item/reagent_container/food/snacks/wrapped/barcardine, -/turf/open/floor/prison{ - dir = 10; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/southwest, /area/fiorina/station/lowsec) "tKv" = ( /obj/structure/machinery/computer/secure_data{ @@ -32618,17 +25892,11 @@ desc = "Wow, instant sand. They really have everything in space."; name = "Insta-Sand! bag" }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "green" - }, +/turf/open/floor/prison/green/east, /area/fiorina/tumor/civres) "tLk" = ( /obj/item/paper/crumpled, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/station/medbay) "tLC" = ( /obj/structure/machinery/door/airlock/prison_hatch/autoname, @@ -32638,17 +25906,12 @@ /obj/structure/prop/souto_land/pole{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2, /area/fiorina/station/park) "tMs" = ( /obj/item/weapon/gun/smg/mp5, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/east, /area/fiorina/station/telecomm/lz1_cargo) "tMS" = ( /obj/effect/alien/weeds/node, @@ -32663,25 +25926,18 @@ pixel_x = -10; pixel_y = -3 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/civres) "tMV" = ( /obj/structure/closet/firecloset/full, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/medbay) "tNf" = ( /obj/structure/stairs/perspective{ dir = 1; icon_state = "p_stair_full" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/tumor/ice_lab) "tNF" = ( /obj/structure/closet/secure_closet/guncabinet{ @@ -32692,9 +25948,7 @@ /obj/item/clothing/under/marine/ua_riot, /obj/item/clothing/suit/storage/marine/veteran/ua_riot, /obj/item/prop/helmetgarb/riot_shield, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/fiorina/station/security) "tNV" = ( /obj/item/stack/sheet/wood, @@ -32726,9 +25980,7 @@ desc = "Eggplant. Or, wait..."; layer = 2 }, -/turf/open/organic/grass{ - name = "astroturf" - }, +/turf/open/organic/grass/astroturf, /area/fiorina/station/park) "tPz" = ( /obj/structure/surface/table/woodentable/fancy, @@ -32737,27 +25989,17 @@ pixel_x = 1; pixel_y = 13 }, -/turf/open/floor/prison/chapel_carpet{ - dir = 1; - icon_state = "doubleside" - }, +/turf/open/floor/prison/chapel_carpet/doubleside/north, /area/fiorina/station/chapel) "tPA" = ( /obj/structure/largecrate/supply/medicine/iv, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/telecomm/lz1_cargo) "tPB" = ( -/turf/open/floor/prison{ - dir = 6; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/southeast, /area/fiorina/station/research_cells) "tPC" = ( -/turf/open/floor/prison{ - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/prison/darkyellowcorners2, /area/fiorina/station/flight_deck) "tPN" = ( /obj/structure/window/framed/prison/reinforced/hull, @@ -32767,9 +26009,7 @@ /obj/item/shard{ icon_state = "medium" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/servers) "tQm" = ( /obj/item/trash/boonie, @@ -32785,15 +26025,10 @@ "tSl" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/stack/sheet/mineral/plastic, -/turf/open/floor/prison{ - icon_state = "yellowfull" - }, +/turf/open/floor/prison/yellowfull, /area/fiorina/station/lowsec) "tSm" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "greenblue" - }, +/turf/open/floor/prison/greenblue/west, /area/fiorina/station/botany) "tSL" = ( /obj/structure/platform{ @@ -32806,9 +26041,7 @@ dir = 9 }, /obj/structure/largecrate/random, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/power_ring) "tSY" = ( /obj/structure/machinery/light/double/blue, @@ -32819,16 +26052,11 @@ /obj/item/stool{ pixel_y = 12 }, -/turf/open/floor/prison{ - icon_state = "yellowfull" - }, +/turf/open/floor/prison/yellowfull, /area/fiorina/station/lowsec) "tTv" = ( /obj/item/stack/sandbags/large_stack, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/west, /area/fiorina/station/telecomm/lz1_cargo) "tTA" = ( /obj/structure/prop/souto_land/pole{ @@ -32838,10 +26066,7 @@ /area/fiorina/station/park) "tTB" = ( /obj/item/clothing/gloves/boxing/green, -/turf/open/floor/prison{ - dir = 6; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/southeast, /area/fiorina/station/central_ring) "tTI" = ( /obj/structure/closet/bodybag, @@ -32849,10 +26074,7 @@ dir = 4; icon_state = "triagedecaldir" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "tUs" = ( /turf/open/floor/plating/prison, @@ -32861,46 +26083,25 @@ /obj/item/stack/sheet/metal{ amount = 5 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/east, /area/fiorina/lz/near_lzI) "tUD" = ( /obj/structure/closet, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/fiorina/station/flight_deck) "tUG" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/storage/toolbox/mechanical/green, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/fiorina/maintenance) "tUS" = ( /obj/item/explosive/grenade/high_explosive/frag, /turf/open/floor/plating/prison, /area/fiorina/station/medbay) -"tVf" = ( -/obj/structure/closet/crate/bravo, -/obj/item/stack/sheet/metal/medium_stack, -/obj/item/stack/sheet/metal/medium_stack, -/obj/item/fuelCell, -/obj/item/stack/sheet/plasteel, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, -/area/fiorina/station/power_ring) "tVI" = ( /obj/structure/inflatable/popped/door, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/station/research_cells) "tVV" = ( /obj/effect/landmark/corpsespawner/ua_riot, @@ -32916,23 +26117,16 @@ /area/fiorina/station/central_ring) "tWh" = ( /obj/structure/closet/secure_closet/hydroponics, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/fiorina/station/botany) "tWs" = ( /obj/item/toy/deck, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/fiorina/station/research_cells) "tWz" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/tool/pen/blue/clicky, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/power_ring) "tWI" = ( /obj/structure/platform/kutjevo/smooth, @@ -32946,10 +26140,7 @@ dir = 1; pixel_y = 21 }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/fiorina/station/transit_hub) "tXD" = ( /obj/structure/stairs/perspective{ @@ -32963,9 +26154,7 @@ /area/fiorina/station/park) "tXT" = ( /obj/structure/machinery/vending/cola, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/fiorina/station/security) "tYd" = ( /obj/structure/machinery/light/double/blue{ @@ -32973,68 +26162,44 @@ pixel_x = 10; pixel_y = 13 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/fiorina/tumor/aux_engi) "tYg" = ( /obj/item/device/flashlight/lamp/tripod, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/fiorina/tumor/servers) "tYt" = ( /obj/structure/bed/roller, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/fiorina/lz/near_lzI) "tYw" = ( /turf/closed/wall/r_wall/prison_unmeltable, /area/fiorina/tumor/civres) "tYD" = ( /obj/structure/platform_decoration, -/turf/open/floor/prison{ - dir = 6; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/southeast, /area/fiorina/station/power_ring) "tYQ" = ( /obj/structure/bed/chair, -/turf/open/floor/prison{ - dir = 4; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/east, /area/fiorina/station/botany) "tYU" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/paper_bin, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/tumor/ice_lab) "tZe" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22" }, -/turf/open/floor/prison{ - icon_state = "yellowfull" - }, +/turf/open/floor/prison/yellowfull, /area/fiorina/station/lowsec) "tZk" = ( -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/fiorina/tumor/aux_engi) "tZz" = ( /obj/structure/prop/almayer/computers/sensor_computer1, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/fiorina/lz/near_lzI) "tZO" = ( /obj/item/frame/rack, @@ -33042,9 +26207,7 @@ /area/fiorina/station/disco) "tZW" = ( /obj/item/tool/wet_sign, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/fiorina/tumor/ship) "uap" = ( /obj/structure/surface/table/reinforced/prison, @@ -33053,17 +26216,11 @@ /area/fiorina/station/power_ring) "uaL" = ( /obj/item/stack/sheet/wood, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/west, /area/fiorina/station/park) "uaM" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_core, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrowncorners2" - }, +/turf/open/floor/prison/darkbrowncorners2/north, /area/fiorina/tumor/aux_engi) "ubc" = ( /obj/structure/largecrate/random/barrel/green, @@ -33077,26 +26234,19 @@ dir = 1; pixel_y = 21 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/fiorina/station/lowsec) "ubo" = ( /obj/item/stack/sheet/metal/medium_stack, /obj/structure/surface/rack, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/power_ring) "ubA" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/computer/emails{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/southwest, /area/fiorina/station/medbay) "ubN" = ( /turf/closed/shuttle/ert{ @@ -33116,10 +26266,7 @@ /turf/open/ice/noweed, /area/fiorina/station/research_cells) "ubX" = ( -/turf/open/floor/prison{ - dir = 5; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/northeast, /area/fiorina/tumor/ice_lab) "uci" = ( /obj/effect/spawner/random/tool, @@ -33128,9 +26275,7 @@ dir = 1; pixel_y = 21 }, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/fiorina/tumor/aux_engi) "ucj" = ( /turf/closed/shuttle/ert{ @@ -33141,16 +26286,11 @@ /obj/structure/bed/chair/comfy{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/fiorina/station/security) "ucN" = ( /obj/structure/tunnel, -/turf/open/organic/grass{ - desc = "It'll get in your shoes no matter what you do."; - name = "astroturf" - }, +/turf/open/organic/grass/astroturf, /area/fiorina/station/central_ring) "ucS" = ( /obj/structure/machinery/light/double/blue, @@ -33158,9 +26298,7 @@ /area/fiorina/station/telecomm/lz1_tram) "udj" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/civres) "udt" = ( /obj/structure/barricade/handrail{ @@ -33175,23 +26313,15 @@ "udB" = ( /obj/structure/bed/roller, /obj/effect/spawner/random/gun/rifle/highchance, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/lz/near_lzI) "udE" = ( /obj/structure/barricade/metal/wired, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/fiorina/lz/near_lzI) "uen" = ( /obj/item/weapon/gun/rifle/m16, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/fiorina/station/telecomm/lz1_cargo) "uep" = ( /obj/effect/decal/cleanable/blood, @@ -33207,25 +26337,17 @@ /area/fiorina/station/park) "ueI" = ( /obj/structure/filingcabinet, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "ueP" = ( /obj/item/paper/crumpled, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/fiorina/station/security) "ueX" = ( /obj/structure/bookcase{ icon_state = "book-5" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "ufE" = ( /obj/effect/decal/cleanable/blood/drip, @@ -33243,15 +26365,10 @@ /area/fiorina/station/central_ring) "ufN" = ( /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/prison{ - icon_state = "panelscorched" - }, +/turf/open/floor/prison/panelscorched, /area/fiorina/tumor/aux_engi) "ufR" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/prison/whitepurplecorner/east, /area/fiorina/station/research_cells) "ugg" = ( /obj/structure/closet/crate/miningcar{ @@ -33261,26 +26378,19 @@ /turf/open/floor/prison, /area/fiorina/station/lowsec) "ugk" = ( -/turf/open/floor/prison{ - icon_state = "darkbrowncorners2" - }, +/turf/open/floor/prison/darkbrowncorners2, /area/fiorina/tumor/aux_engi) "ugm" = ( /obj/structure/prop/resin_prop{ icon_state = "coolanttank" }, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/fiorina/tumor/aux_engi) "ugq" = ( /obj/effect/decal/cleanable/blood/splatter{ icon_state = "gibdown1" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "ugv" = ( /obj/structure/platform/kutjevo/smooth, @@ -33292,6 +26402,10 @@ }, /turf/open/space/basic, /area/fiorina/oob) +"ugI" = ( +/obj/item/fuel_cell, +/turf/open/floor/prison, +/area/fiorina/tumor/aux_engi) "ugP" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/trash/plate{ @@ -33309,9 +26423,7 @@ /obj/structure/prop/resin_prop{ icon_state = "sheater0" }, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/fiorina/tumor/aux_engi) "uhm" = ( /obj/structure/window_frame/prison/reinforced, @@ -33319,35 +26431,24 @@ /area/fiorina/station/research_cells) "uhA" = ( /obj/structure/closet/bodybag, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/station/research_cells) "uhX" = ( /obj/structure/largecrate/random/case/double, -/turf/open/floor/prison{ - dir = 5; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/northeast, /area/fiorina/station/medbay) "uia" = ( /obj/structure/machinery/light/double/blue{ dir = 1; pixel_y = 21 }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/fiorina/station/botany) "uiD" = ( /obj/structure/barricade/wooden{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2, /area/fiorina/station/park) "uiV" = ( /obj/structure/platform{ @@ -33362,47 +26463,32 @@ /turf/open/floor/plating/prison, /area/fiorina/lz/near_lzI) "ujb" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/prison/darkyellowcorners2/north, /area/fiorina/station/telecomm/lz1_cargo) "ujo" = ( /obj/effect/landmark/xeno_spawn, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/tumor/ice_lab) "ujs" = ( /obj/item/shard{ icon_state = "large"; name = "ice shard" }, -/turf/open/organic/grass{ - name = "astroturf" - }, +/turf/open/organic/grass/astroturf, /area/fiorina/station/research_cells) "ujz" = ( /obj/item/paper/prison_station/inmate_handbook, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/fiorina/station/telecomm/lz1_cargo) "ukg" = ( /obj/item/trash/candle, -/turf/open/floor/prison{ - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2, /area/fiorina/station/telecomm/lz1_cargo) "ukr" = ( /obj/structure/flora/grass/tallgrass/jungle/corner{ dir = 10 }, -/turf/open/organic/grass{ - name = "astroturf" - }, +/turf/open/organic/grass/astroturf, /area/fiorina/station/park) "uky" = ( /obj/structure/platform, @@ -33412,22 +26498,11 @@ /obj/structure/platform_decoration{ dir = 10 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/southwest, /area/fiorina/tumor/ice_lab) -"ukR" = ( -/obj/structure/window/framed/prison/reinforced/hull, -/obj/structure/window/framed/prison/reinforced/hull, -/turf/open/space/basic, -/area/fiorina/lz/near_lzI) "ulc" = ( /obj/item/paper, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/west, /area/fiorina/station/research_cells) "ume" = ( /obj/structure/surface/table/reinforced/prison, @@ -33443,15 +26518,10 @@ /area/fiorina/station/flight_deck) "umg" = ( /obj/structure/machinery/light/double/blue, -/turf/open/floor/prison{ - icon_state = "blue" - }, +/turf/open/floor/prison/blue, /area/fiorina/station/civres_blue) "umm" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/north, /area/fiorina/station/central_ring) "umy" = ( /obj/structure/prop/resin_prop{ @@ -33463,17 +26533,11 @@ /area/fiorina/tumor/aux_engi) "umz" = ( /obj/item/trash/kepler, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/west, /area/fiorina/station/medbay) "umI" = ( /obj/item/clothing/gloves/boxing/blue, -/turf/open/floor/prison{ - dir = 9; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/northwest, /area/fiorina/station/central_ring) "umW" = ( /obj/structure/bed/sofa/pews, @@ -33493,10 +26557,7 @@ /obj/structure/machinery/landinglight/ds1/delaythree{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/fiorina/lz/near_lzI) "unu" = ( /obj/structure/stairs/perspective{ @@ -33510,14 +26571,10 @@ dir = 8 }, /obj/item/storage/box/flashbangs, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/fiorina/station/security) "unA" = ( -/turf/open/floor/prison{ - icon_state = "platingdmg1" - }, +/turf/open/floor/prison/platingdmg1, /area/fiorina/station/civres_blue) "unF" = ( /obj/item/tool/wirecutters, @@ -33542,29 +26599,18 @@ pixel_y = 2 }, /obj/item/storage/pouch/tools/full, -/turf/open/floor/prison{ - dir = 10; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/southwest, /area/fiorina/station/disco) "upf" = ( /obj/structure/closet/toolcloset, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/west, /area/fiorina/maintenance) "upr" = ( /obj/structure/platform, -/turf/open/floor/prison{ - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen, /area/fiorina/station/medbay) "upw" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/prison/red/west, /area/fiorina/lz/near_lzII) "upK" = ( /obj/structure/surface/table/reinforced/prison, @@ -33574,10 +26620,7 @@ pixel_x = -2; pixel_y = 10 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "redcorner" - }, +/turf/open/floor/prison/redcorner/east, /area/fiorina/station/power_ring) "upM" = ( /obj/structure/disposalpipe/broken, @@ -33593,10 +26636,7 @@ "uqd" = ( /obj/item/pamphlet/skill/powerloader, /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "uqj" = ( /obj/structure/stairs/perspective{ @@ -33605,17 +26645,11 @@ /obj/structure/platform{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/fiorina/station/park) "uqV" = ( /obj/structure/inflatable, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/north, /area/fiorina/station/research_cells) "urv" = ( /obj/item/device/flashlight/lamp/tripod, @@ -33639,34 +26673,15 @@ /obj/structure/machinery/computer/secure_data{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/fiorina/station/research_cells) -"utG" = ( -/obj/structure/closet{ - density = 0; - pixel_y = 18 - }, -/obj/item/clothing/gloves/boxing/blue, -/turf/open/floor/prison{ - dir = 1; - icon_state = "yellow" - }, -/area/fiorina/station/lowsec) "utL" = ( /obj/structure/bed/chair, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/north, /area/fiorina/station/park) "utW" = ( /obj/item/device/flashlight/lamp/tripod, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/fiorina/lz/near_lzI) "uud" = ( /obj/structure/bed/chair/office/dark, @@ -33674,9 +26689,7 @@ /area/fiorina/station/disco) "uuk" = ( /obj/item/reagent_container/food/drinks/cans/waterbottle, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/lz/near_lzII) "uuG" = ( /obj/structure/machinery/washing_machine, @@ -33684,9 +26697,7 @@ pixel_y = 15 }, /obj/structure/machinery/light/double/blue, -/turf/open/floor/prison{ - icon_state = "yellowfull" - }, +/turf/open/floor/prison/yellowfull, /area/fiorina/station/lowsec) "uuJ" = ( /obj/structure/holohoop{ @@ -33697,9 +26708,7 @@ /obj/structure/barricade/handrail{ dir = 4 }, -/turf/open/organic/grass{ - name = "astroturf" - }, +/turf/open/organic/grass/astroturf, /area/fiorina/station/research_cells) "uuL" = ( /obj/structure/machinery/door/poddoor/shutters/almayer{ @@ -33713,15 +26722,10 @@ /turf/open/floor/plating/prison, /area/fiorina/station/power_ring) "uvn" = ( -/turf/open/floor/prison{ - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2, /area/fiorina/station/telecomm/lz1_cargo) "uvu" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "redcorner" - }, +/turf/open/floor/prison/redcorner/north, /area/fiorina/station/power_ring) "uvF" = ( /obj/structure/prop/structure_lattice{ @@ -33736,16 +26740,11 @@ /area/fiorina/maintenance) "uvS" = ( /obj/structure/blocker/invisible_wall, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/southwest, /area/fiorina/oob) "uvV" = ( /obj/structure/coatrack, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, +/turf/open/floor/prison/bluefull, /area/fiorina/station/power_ring) "uvZ" = ( /obj/structure/prop/structure_lattice{ @@ -33757,16 +26756,11 @@ layer = 3.1; pixel_y = 10 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/civres_blue) "uwb" = ( /obj/structure/largecrate/supply/supplies/water, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/fiorina/station/telecomm/lz1_cargo) "uwk" = ( /obj/structure/window/framed/prison/reinforced/hull, @@ -33788,9 +26782,7 @@ /area/fiorina/station/power_ring) "uxd" = ( /obj/effect/spawner/random/tool, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/fiorina/tumor/aux_engi) "uxv" = ( /obj/structure/machinery/door/airlock/prison_hatch/autoname, @@ -33798,10 +26790,7 @@ /area/fiorina/station/security) "uxN" = ( /obj/effect/landmark/corpsespawner/prisoner, -/turf/open/gm/river{ - color = "#995555"; - name = "pool" - }, +/turf/open/gm/river/red_pool, /area/fiorina/station/park) "uye" = ( /obj/item/weapon/gun/rifle/m16, @@ -33815,9 +26804,7 @@ /area/fiorina/lz/near_lzI) "uyw" = ( /obj/structure/reagent_dispensers/water_cooler, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, +/turf/open/floor/prison/bluefull, /area/fiorina/station/power_ring) "uyC" = ( /obj/structure/machinery/shower{ @@ -33826,9 +26813,7 @@ /obj/structure/machinery/shower{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/fiorina/station/research_cells) "uyM" = ( /obj/effect/decal/cleanable/blood/oil, @@ -33844,9 +26829,7 @@ layer = 3.1; pixel_y = 10 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/fiberbush) "uza" = ( /obj/effect/decal/cleanable/blood/splatter{ @@ -33857,9 +26840,7 @@ /area/fiorina/station/medbay) "uzi" = ( /obj/effect/landmark/monkey_spawn, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/fiorina/tumor/aux_engi) "uzw" = ( /obj/structure/machinery/light/double/blue, @@ -33873,22 +26854,14 @@ /turf/open/floor/plating/prison, /area/fiorina/station/civres_blue) "uzG" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/north, /area/fiorina/tumor/aux_engi) "uAg" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreencorner" - }, +/turf/open/floor/prison/whitegreencorner/north, /area/fiorina/tumor/ice_lab) "uAX" = ( /obj/effect/decal/hefa_cult_decals/d32, -/turf/open/floor/prison/chapel_carpet{ - icon_state = "doubleside" - }, +/turf/open/floor/prison/chapel_carpet/doubleside, /area/fiorina/station/chapel) "uBq" = ( /obj/item/stack/rods, @@ -33902,17 +26875,13 @@ /obj/structure/platform_decoration{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, +/turf/open/floor/prison/bluefull, /area/fiorina/station/power_ring) "uCO" = ( /obj/structure/bed/chair/comfy{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/power_ring) "uCX" = ( /obj/structure/stairs/perspective{ @@ -33929,9 +26898,7 @@ /obj/structure/prop/structure_lattice{ pixel_y = 10 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/aux_engi) "uEh" = ( /obj/structure/surface/table/reinforced/prison, @@ -33939,9 +26906,7 @@ dir = 4; reason = "Visitor" }, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, +/turf/open/floor/prison/bluefull, /area/fiorina/station/power_ring) "uEj" = ( /obj/structure/reagent_dispensers/fueltank, @@ -33949,28 +26914,20 @@ /area/fiorina/station/transit_hub) "uEy" = ( /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/east, /area/fiorina/tumor/servers) "uEM" = ( /obj/effect/decal/cleanable/blood{ icon_state = "xtracks" }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/prison/green/north, /area/fiorina/station/chapel) "uEY" = ( /obj/structure/machinery/power/smes/buildable{ capacity = 1e+006; dir = 1 }, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/fiorina/tumor/aux_engi) "uFd" = ( /obj/structure/machinery/light/double/blue{ @@ -33980,17 +26937,13 @@ /obj/structure/barricade/wooden{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/telecomm/lz1_cargo) "uFg" = ( /obj/effect/landmark/nightmare{ insert_tag = "birthday" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/power_ring) "uFs" = ( /obj/structure/stairs/perspective{ @@ -34003,37 +26956,26 @@ /area/fiorina/station/telecomm/lz1_tram) "uFC" = ( /obj/structure/barricade/metal/wired, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/fiorina/station/telecomm/lz1_cargo) "uGu" = ( /obj/effect/decal/hefa_cult_decals/d32{ icon_state = "3" }, -/turf/open/floor/prison/chapel_carpet{ - dir = 1; - icon_state = "doubleside" - }, +/turf/open/floor/prison/chapel_carpet/doubleside/north, /area/fiorina/station/chapel) "uGI" = ( /obj/structure/monorail{ name = "launch track" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/lz/near_lzI) "uGL" = ( /obj/item/trash/used_stasis_bag{ desc = "Wow, instant sand. They really have everything in space."; name = "Insta-Sand! bag" }, -/turf/open/floor/prison{ - dir = 5; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/northeast, /area/fiorina/station/disco) "uGT" = ( /obj/structure/window/framed/prison/reinforced/hull, @@ -34051,18 +26993,13 @@ /obj/item/storage/toolbox/mechanical{ pixel_y = 6 }, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/fiorina/maintenance) "uIB" = ( /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/station/medbay) "uIL" = ( /obj/structure/machinery/light/double/blue{ @@ -34072,9 +27009,7 @@ dir = 1; layer = 2.8 }, -/turf/open/floor/prison{ - icon_state = "yellowfull" - }, +/turf/open/floor/prison/yellowfull, /area/fiorina/station/disco) "uIS" = ( /obj/structure/window/framed/prison, @@ -34092,48 +27027,31 @@ /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22" }, -/turf/open/floor/prison{ - icon_state = "yellowfull" - }, +/turf/open/floor/prison/yellowfull, /area/fiorina/station/disco) "uJp" = ( /obj/structure/inflatable, -/turf/open/floor/prison{ - dir = 9; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/northwest, /area/fiorina/station/lowsec) "uJG" = ( /obj/item/ammo_casing{ icon_state = "casing_10_1" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/station/medbay) "uJQ" = ( /obj/item/stack/cable_coil, -/turf/open/floor/prison{ - dir = 6; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/southeast, /area/fiorina/station/medbay) "uJR" = ( /obj/structure/flora/bush/ausbushes/grassybush{ icon_state = "ppflowers_2" }, -/turf/open/organic/grass{ - desc = "It'll get in your shoes no matter what you do."; - name = "astroturf" - }, +/turf/open/organic/grass/astroturf, /area/fiorina/station/central_ring) "uKb" = ( /obj/item/stack/tile/plasteel, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/fiorina/station/flight_deck) "uKx" = ( /turf/closed/shuttle/ert, @@ -34145,35 +27063,22 @@ "uKK" = ( /obj/structure/bed/roller, /obj/item/bedsheet/green, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/north, /area/fiorina/station/research_cells) "uKX" = ( -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/fiorina/station/security/wardens) "uLf" = ( /obj/structure/platform, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/park) "uLj" = ( /obj/effect/decal/cleanable/blood/gibs/robot/limb, -/turf/open/floor/prison{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/northeast, /area/fiorina/station/research_cells) "uLq" = ( /obj/structure/machinery/light/double/blue, -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/east, /area/fiorina/station/telecomm/lz1_tram) "uLr" = ( /obj/vehicle/powerloader, @@ -34193,16 +27098,11 @@ "uLM" = ( /obj/item/clothing/mask/cigarette/cigar/cohiba, /obj/structure/surface/table/woodentable/fancy, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/fiorina/station/chapel) "uLV" = ( /obj/item/bedsheet, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/fiorina/station/lowsec) "uMc" = ( /obj/structure/largecrate/random/barrel/white, @@ -34210,10 +27110,7 @@ /area/fiorina/station/security) "uMm" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/west, /area/fiorina/tumor/aux_engi) "uMq" = ( /obj/structure/machinery/light/small{ @@ -34229,14 +27126,10 @@ /area/fiorina/station/security/wardens) "uMN" = ( /obj/item/trash/semki, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/power_ring) "uMT" = ( -/turf/open/floor/prison{ - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe, /area/fiorina/station/medbay) "uMZ" = ( /obj/structure/disposalpipe/segment{ @@ -34262,16 +27155,11 @@ /obj/structure/monorail{ name = "launch track" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/transit_hub) "uNs" = ( /obj/structure/machinery/landinglight/ds1, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/fiorina/lz/near_lzI) "uNG" = ( /obj/structure/machinery/power/apc{ @@ -34296,21 +27184,14 @@ /obj/effect/decal/hefa_cult_decals/d32{ icon_state = "bee" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/servers) "uOC" = ( -/turf/open/floor/prison{ - dir = 6; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/southeast, /area/fiorina/tumor/servers) "uOM" = ( /obj/structure/curtain, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/power_ring) "uOP" = ( /obj/item/newspaper, @@ -34319,15 +27200,10 @@ "uPi" = ( /obj/item/device/binoculars, /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/fiberbush) "uPl" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/prison/darkyellowcorners2/east, /area/fiorina/station/telecomm/lz1_cargo) "uPA" = ( /obj/structure/platform{ @@ -34342,16 +27218,11 @@ /turf/open/gm/river/desert/deep, /area/fiorina/lz/near_lzII) "uPX" = ( -/turf/open/floor/prison{ - dir = 5; - icon_state = "green" - }, +/turf/open/floor/prison/green/northeast, /area/fiorina/tumor/civres) "uQk" = ( /obj/structure/machinery/door/airlock/prison_hatch/autoname, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/fiberbush) "uQE" = ( /obj/item/stack/tile/plasteel{ @@ -34361,17 +27232,11 @@ /turf/open/floor/plating/prison, /area/fiorina/station/civres_blue) "uQJ" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/east, /area/fiorina/tumor/servers) "uQT" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_nest, -/turf/open/floor/prison{ - dir = 6; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/southeast, /area/fiorina/tumor/ice_lab) "uRv" = ( /obj/structure/machinery/light/double/blue{ @@ -34382,23 +27247,14 @@ /turf/open/floor/plating/prison, /area/fiorina/station/central_ring) "uRF" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreencorner" - }, +/turf/open/floor/prison/whitegreencorner/west, /area/fiorina/station/medbay) "uRI" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkbrowncorners2" - }, +/turf/open/floor/prison/darkbrowncorners2/east, /area/fiorina/maintenance) "uRT" = ( /obj/item/device/flashlight, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/tumor/ice_lab) "uRZ" = ( /obj/item/trash/barcardine, @@ -34418,9 +27274,7 @@ icon_state = "pottedplant_29"; pixel_y = 6 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/lz/near_lzII) "uSX" = ( /obj/item/tool/kitchen/utensil/pknife, @@ -34440,52 +27294,34 @@ /obj/structure/machinery/light/double/blue{ pixel_y = -1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/southwest, /area/fiorina/station/telecomm/lz1_cargo) "uTr" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_nest, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/west, /area/fiorina/tumor/ice_lab) "uTs" = ( /obj/item/stack/rods, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/fiorina/tumor/aux_engi) "uTt" = ( /obj/item/device/flashlight/flare, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/prison/darkyellowcorners2/north, /area/fiorina/station/telecomm/lz1_cargo) "uTw" = ( /obj/item/weapon/gun/rifle/mar40, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, +/turf/open/floor/prison/bluefull, /area/fiorina/station/power_ring) "uTA" = ( /obj/structure/bed/chair{ dir = 8 }, /obj/effect/spawner/random/gun/rifle/midchance, -/turf/open/floor/prison{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/west, /area/fiorina/station/power_ring) "uTR" = ( /obj/structure/machinery/vending/cigarette/colony, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/aux_engi) "uVk" = ( /obj/effect/decal{ @@ -34495,9 +27331,7 @@ /obj/structure/machinery/light/double/blue{ pixel_y = -1 }, -/turf/open/floor/prison{ - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2, /area/fiorina/station/telecomm/lz1_cargo) "uVn" = ( /turf/closed/shuttle/ert{ @@ -34505,19 +27339,14 @@ }, /area/fiorina/tumor/ship) "uVD" = ( -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/fiorina/station/medbay) "uVH" = ( /obj/effect/decal{ icon = 'icons/obj/items/policetape.dmi'; icon_state = "engineering_v" }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/fiorina/station/telecomm/lz1_cargo) "uVL" = ( /obj/structure/surface/table/reinforced/prison, @@ -34535,10 +27364,7 @@ dir = 8; pixel_y = 24 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/east, /area/fiorina/station/park) "uVX" = ( /obj/structure/machinery/landinglight/ds1/delaythree{ @@ -34557,10 +27383,7 @@ /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/east, /area/fiorina/station/botany) "uWA" = ( /obj/structure/closet/secure_closet/engineering_electrical, @@ -34570,16 +27393,11 @@ pixel_y = -3 }, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/fiorina/tumor/civres) "uWO" = ( /obj/structure/platform_decoration, -/turf/open/floor/prison{ - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2, /area/fiorina/station/park) "uWQ" = ( /obj/structure/platform{ @@ -34597,10 +27415,7 @@ icon_state = "fullgrass_3"; name = "Fiberbush(tm) tubers" }, -/turf/open/organic/grass{ - desc = "It'll get in your shoes no matter what you do."; - name = "astroturf" - }, +/turf/open/organic/grass/astroturf, /area/fiorina/tumor/fiberbush) "uXw" = ( /obj/structure/surface/table/reinforced/prison, @@ -34618,29 +27433,20 @@ /area/fiorina/tumor/ship) "uXK" = ( /obj/structure/machinery/vending/cola, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, +/turf/open/floor/prison/bluefull, /area/fiorina/station/power_ring) "uXP" = ( /obj/item/reagent_container/food/drinks/bottle/pwine, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/civres) "uXY" = ( /obj/structure/machinery/cm_vending/sorted/medical/wall_med/limited{ pixel_y = 32 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/fiorina/tumor/civres) "uYi" = ( -/turf/open/floor/prison{ - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2, /area/fiorina/lz/near_lzI) "uYo" = ( /obj/structure/stairs/perspective{ @@ -34669,19 +27475,14 @@ pixel_x = 7; pixel_y = 6 }, -/turf/open/floor/prison{ - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2, /area/fiorina/station/park) "uZu" = ( /obj/structure/machinery/light/double/blue{ dir = 1; pixel_y = 21 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/north, /area/fiorina/tumor/aux_engi) "uZA" = ( /turf/closed/shuttle/ert{ @@ -34690,10 +27491,7 @@ /area/fiorina/tumor/ship) "uZP" = ( /obj/effect/spawner/random/gun/rifle/lowchance, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/fiorina/station/telecomm/lz1_cargo) "uZX" = ( /obj/structure/curtain, @@ -34707,10 +27505,7 @@ pixel_y = -11 }, /obj/item/device/flashlight/flare, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/west, /area/fiorina/station/telecomm/lz1_cargo) "vao" = ( /obj/structure/machinery/light/double/blue, @@ -34722,16 +27517,8 @@ /obj/item/stack/sheet/mineral/plastic, /obj/item/stack/sheet/mineral/plastic, /obj/item/stack/sheet/mineral/plastic, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/fiorina/tumor/aux_engi) -"vbG" = ( -/obj/structure/prop/structure_lattice{ - dir = 4 - }, -/turf/open/floor/plating/prison, -/area/fiorina/maintenance) "vbV" = ( /obj/structure/machinery/vending/coffee, /turf/open/floor/prison, @@ -34743,30 +27530,21 @@ /area/fiorina/oob) "vci" = ( /obj/effect/spawner/random/toolbox, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/medbay) "vcq" = ( /obj/effect/decal/cleanable/blood/xeno, -/turf/open/floor/prison{ - dir = 8; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/west, /area/fiorina/station/botany) "vcu" = ( /obj/structure/platform_decoration{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/disco) "vcv" = ( /obj/item/tool/screwdriver, -/turf/open/floor/prison{ - icon_state = "yellowfull" - }, +/turf/open/floor/prison/yellowfull, /area/fiorina/station/lowsec) "vcC" = ( /obj/item/stack/rods, @@ -34775,61 +27553,41 @@ "vcN" = ( /obj/structure/largecrate/random/case, /obj/structure/machinery/light/double/blue, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/fiorina/station/park) "vdn" = ( /obj/item/ammo_casing{ icon_state = "cartridge_2" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/station/medbay) "vds" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/west, /area/fiorina/station/lowsec) "vdH" = ( /obj/structure/machinery/light/double/blue{ dir = 1; pixel_y = 21 }, -/turf/open/floor/prison{ - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate, /area/fiorina/station/botany) "vdJ" = ( /obj/effect/spawner/random/gun/smg, -/turf/open/floor/prison{ - dir = 8; - icon_state = "green" - }, +/turf/open/floor/prison/green/west, /area/fiorina/tumor/civres) "vdN" = ( /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/fiorina/station/telecomm/lz1_cargo) "vdW" = ( /obj/effect/decal/cleanable/blood{ icon_state = "gib6" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/disco) "vel" = ( /obj/structure/machinery/vending/coffee, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/civres) "vem" = ( /turf/closed/shuttle/ert{ @@ -34852,16 +27610,11 @@ /area/fiorina/station/park) "veP" = ( /obj/effect/spawner/random/toolbox, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/fiorina/tumor/aux_engi) "veR" = ( /obj/structure/inflatable, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/southwest, /area/fiorina/station/medbay) "veW" = ( /obj/structure/stairs/perspective{ @@ -34882,10 +27635,7 @@ "vfL" = ( /obj/item/storage/box/flashbangs, /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "vfM" = ( /turf/closed/shuttle/ert{ @@ -34893,33 +27643,22 @@ }, /area/fiorina/station/power_ring) "vfO" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/west, /area/fiorina/station/lowsec) "vgi" = ( /obj/item/stack/rods, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/civres_blue) "vgw" = ( /obj/item/storage/toolbox/antag, -/turf/open/floor/prison{ - dir = 8; - icon_state = "green" - }, +/turf/open/floor/prison/green/west, /area/fiorina/tumor/civres) "vgC" = ( /obj/structure/machinery/light/double/blue{ dir = 1; pixel_y = 21 }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/northwest, /area/fiorina/lz/near_lzI) "vgL" = ( /obj/structure/closet/secure_closet/guncabinet{ @@ -34931,17 +27670,13 @@ /obj/item/clothing/under/marine/ua_riot, /obj/item/storage/pill_bottle/alkysine, /obj/item/clothing/suit/storage/marine/veteran/ua_riot, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/fiorina/station/security) "vhd" = ( /obj/structure/window/reinforced/tinted, /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/recharger, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/fiorina/lz/near_lzI) "vhk" = ( /obj/structure/stairs/perspective{ @@ -34953,19 +27688,13 @@ /area/fiorina/station/power_ring) "vhy" = ( /obj/item/reagent_container/food/drinks/cans/waterbottle, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/fiorina/station/telecomm/lz1_cargo) "vhB" = ( /turf/open/floor/plating/plating_catwalk/prison, /area/fiorina/station/park) "vhI" = ( -/turf/open/gm/river{ - color = "#990000"; - name = "pool" - }, +/turf/open/gm/river/darkred_pool, /area/fiorina/station/park) "viL" = ( /obj/item/stock_parts/micro_laser/ultra, @@ -34989,10 +27718,7 @@ /obj/structure/machinery/light/double/blue{ pixel_y = -1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/fiorina/station/telecomm/lz1_cargo) "vjl" = ( /obj/structure/closet/crate/trashcart, @@ -35036,10 +27762,7 @@ pixel_x = 10; pixel_y = 13 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/east, /area/fiorina/station/medbay) "vkt" = ( /obj/structure/stairs/perspective{ @@ -35051,25 +27774,17 @@ /area/fiorina/station/central_ring) "vlK" = ( /obj/structure/surface/rack, -/turf/open/floor/prison{ - dir = 9; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/northwest, /area/fiorina/station/medbay) "vlN" = ( /obj/structure/surface/rack, /obj/item/frame/table/almayer, /obj/item/frame/table/almayer, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/civres) "vlO" = ( /obj/structure/machinery/light/double/blue, -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/east, /area/fiorina/station/central_ring) "vlS" = ( /obj/structure/surface/table/reinforced/prison, @@ -35106,28 +27821,20 @@ dir = 1; pixel_y = 21 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/fiorina/station/telecomm/lz1_cargo) "vmT" = ( /obj/structure/surface/table/reinforced/prison, /obj/effect/spawner/random/toolbox, /obj/effect/spawner/random/toolbox, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/aux_engi) "vnl" = ( /obj/structure/largecrate/random/barrel/white, /obj/structure/barricade/wooden{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/fiorina/station/telecomm/lz1_cargo) "vnr" = ( /turf/closed/wall/r_wall/prison_unmeltable, @@ -35146,30 +27853,21 @@ pixel_y = 8 }, /obj/structure/surface/rack, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/fiorina/maintenance) "vnG" = ( /turf/open/floor/prison, /area/fiorina/maintenance) "vnM" = ( /obj/item/device/flashlight/lamp/tripod, -/turf/open/floor/prison{ - dir = 6; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/southeast, /area/fiorina/lz/near_lzI) "voh" = ( /obj/item/tool/warning_cone, -/turf/open/floor/prison{ - icon_state = "yellowfull" - }, +/turf/open/floor/prison/yellowfull, /area/fiorina/station/lowsec) "voi" = ( -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/fiorina/station/park) "voq" = ( /obj/structure/machinery/computer/secure_data{ @@ -35186,9 +27884,7 @@ /area/fiorina/station/transit_hub) "voI" = ( /obj/item/tool/wrench, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, +/turf/open/floor/prison/bluefull, /area/fiorina/station/power_ring) "voK" = ( /obj/structure/stairs/perspective{ @@ -35201,24 +27897,17 @@ /area/fiorina/station/medbay) "voO" = ( /obj/structure/machinery/light/double/blue, -/turf/open/floor/prison{ - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow, /area/fiorina/station/lowsec) "voP" = ( /obj/structure/dropship_equipment/medevac_system, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/fiorina/station/power_ring) "voV" = ( /obj/item/ammo_casing{ icon_state = "casing_6_1" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/lowsec) "vpN" = ( /obj/structure/stairs/perspective{ @@ -35235,22 +27924,15 @@ dir = 1; pixel_y = 21 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/transit_hub) "vqs" = ( /obj/item/paper/prison_station/inmate_handbook, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/fiorina/station/research_cells) "vqW" = ( /obj/item/stack/sheet/cardboard, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/west, /area/fiorina/station/research_cells) "vrp" = ( /obj/structure/ice/thin/indestructible{ @@ -35263,10 +27945,7 @@ /obj/structure/machinery/landinglight/ds1/delaythree{ dir = 8 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/fiorina/lz/near_lzI) "vrF" = ( /obj/item/toy/crayon/green, @@ -35275,16 +27954,11 @@ "vrH" = ( /obj/item/stack/sheet/metal, /obj/item/stack/sheet/metal, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/station/research_cells) "vrO" = ( /obj/structure/closet/secure_closet/engineering_materials, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/fiorina/tumor/aux_engi) "vrR" = ( /obj/structure/platform_decoration, @@ -35292,16 +27966,11 @@ dir = 4; layer = 3.5 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/disco) "vrS" = ( /obj/item/reagent_container/food/snacks/donkpocket, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/fiorina/station/transit_hub) "vrT" = ( /obj/structure/platform{ @@ -35311,27 +27980,18 @@ /area/fiorina/station/chapel) "vsr" = ( /obj/structure/barricade/handrail, -/turf/open/floor/prison{ - dir = 9; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/northwest, /area/fiorina/station/research_cells) "vsL" = ( /obj/structure/prop/dam/crane, -/turf/open/floor/prison{ - dir = 8; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/west, /area/fiorina/tumor/servers) "vsM" = ( /obj/structure/bed{ icon_state = "abed" }, /obj/item/ammo_magazine/smg/mp5, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/north, /area/fiorina/station/research_cells) "vsT" = ( /obj/structure/cable/heavyduty{ @@ -35343,9 +28003,7 @@ /obj/structure/toilet{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/fiorina/station/civres_blue) "vtk" = ( /obj/item/weapon/gun/shotgun/pump/dual_tube/cmb, @@ -35372,10 +28030,7 @@ pixel_x = 5; pixel_y = 2 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/tumor/ice_lab) "vts" = ( /obj/effect/landmark/corpsespawner/engineer, @@ -35386,10 +28041,7 @@ /obj/structure/bed/chair/comfy{ dir = 8 }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/northwest, /area/fiorina/station/disco) "vuK" = ( /obj/structure/filingcabinet/chestdrawer, @@ -35406,10 +28058,7 @@ /obj/structure/platform{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/fiorina/station/power_ring) "vuV" = ( /obj/structure/stairs/perspective{ @@ -35422,9 +28071,7 @@ /obj/structure/platform_decoration{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/park) "vvp" = ( /obj/item/tool/candle{ @@ -35440,9 +28087,7 @@ icon = 'icons/turf/elevator.dmi'; icon_state = "wall_broke" }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/fiorina/station/telecomm/lz1_cargo) "vvT" = ( /obj/structure/surface/table/reinforced/prison, @@ -35451,10 +28096,7 @@ icon_state = "mwbloodyo"; pixel_y = 6 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/fiorina/station/civres_blue) "vwt" = ( /obj/effect/landmark/objective_landmark/medium, @@ -35468,9 +28110,7 @@ /area/fiorina/lz/near_lzI) "vwD" = ( /obj/item/stack/cable_coil, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/fiorina/tumor/servers) "vwM" = ( /obj/structure/machinery/door/poddoor/shutters/almayer{ @@ -35483,27 +28123,19 @@ /obj/structure/machinery/microwave{ pixel_y = 6 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/fiorina/station/botany) "vwX" = ( /obj/structure/barricade/wooden{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple, /area/fiorina/station/research_cells) "vxm" = ( /obj/structure/platform{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenblue" - }, +/turf/open/floor/prison/greenblue/east, /area/fiorina/station/botany) "vxs" = ( /turf/closed/shuttle/ert{ @@ -35512,26 +28144,18 @@ /area/fiorina/tumor/ship) "vxu" = ( /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/north, /area/fiorina/station/park) "vxz" = ( /obj/structure/machinery/door/poddoor/almayer/locked{ indestructible = 1; name = "launch bay door" }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/west, /area/fiorina/oob) "vxI" = ( /obj/structure/largecrate/random/case/small, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/fiorina/station/park) "vyu" = ( /obj/item/clothing/suit/storage/hazardvest, @@ -35542,25 +28166,17 @@ dir = 1 }, /obj/structure/inflatable/popped, -/turf/open/floor/prison{ - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen, /area/fiorina/station/medbay) "vyw" = ( -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/northwest, /area/fiorina/station/telecomm/lz1_cargo) "vyK" = ( /obj/structure/barricade/sandbags{ dir = 1; icon_state = "sandbag_0" }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/east, /area/fiorina/station/telecomm/lz1_cargo) "vzh" = ( /obj/structure/foamed_metal, @@ -35595,9 +28211,7 @@ "vzT" = ( /obj/item/frame/toolbox_tiles_sensor, /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/civres) "vzU" = ( /turf/closed/shuttle/ert{ @@ -35610,24 +28224,16 @@ dir = 8 }, /obj/structure/barricade/wooden, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/station/research_cells) "vAX" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/west, /area/fiorina/station/botany) "vBa" = ( /obj/structure/machinery/shower{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/fiorina/station/research_cells) "vBF" = ( /obj/structure/machinery/light/double/blue{ @@ -35635,16 +28241,11 @@ pixel_x = -10; pixel_y = -3 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/medbay) "vBH" = ( /obj/item/storage/firstaid/regular, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "vBP" = ( /obj/structure/platform/kutjevo/smooth{ @@ -35669,23 +28270,15 @@ /area/fiorina/lz/near_lzI) "vCl" = ( /obj/item/tool/shovel/spade, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/fiorina/station/botany) "vCm" = ( /obj/structure/platform, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/botany) "vCu" = ( /obj/item/storage/bible/hefa, -/turf/open/floor/prison{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/prison/green/north, /area/fiorina/station/chapel) "vCL" = ( /obj/structure/prop/almayer/computers/mission_planning_system{ @@ -35695,10 +28288,7 @@ pixel_x = 2; pixel_y = 21 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "vCQ" = ( /obj/item/prop/helmetgarb/spacejam_tickets{ @@ -35707,26 +28297,18 @@ pixel_x = 7; pixel_y = 6 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/east, /area/fiorina/station/chapel) "vDf" = ( /obj/structure/machinery/light/double/blue{ dir = 1; pixel_y = 21 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/transit_hub) "vDL" = ( /obj/structure/barricade/wooden, -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/east, /area/fiorina/station/central_ring) "vDO" = ( /obj/structure/machinery/door/airlock/prison_hatch/autoname{ @@ -35736,9 +28318,7 @@ /area/fiorina/station/power_ring) "vDR" = ( /obj/effect/decal/cleanable/blood/drip, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/fiorina/station/civres_blue) "vEi" = ( /obj/structure/platform{ @@ -35756,10 +28336,7 @@ health = 150; icon_state = "metal_2" }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/north, /area/fiorina/station/park) "vFi" = ( /obj/structure/window_frame/prison, @@ -35779,9 +28356,7 @@ icon = 'icons/turf/elevator.dmi'; icon_state = "wall_broke" }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/fiorina/station/civres_blue) "vFs" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony/autoname{ @@ -35792,22 +28367,15 @@ /area/fiorina/station/security/wardens) "vFA" = ( /obj/effect/landmark/monkey_spawn, -/turf/open/floor/prison{ - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2, /area/fiorina/tumor/servers) "vFS" = ( /obj/item/device/flashlight/lamp/tripod, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/fiorina/tumor/ice_lab) "vFV" = ( /obj/structure/inflatable, -/turf/open/floor/prison{ - dir = 10; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/southwest, /area/fiorina/station/lowsec) "vFY" = ( /obj/item/reagent_container/glass/bucket, @@ -35821,23 +28389,15 @@ }, /obj/item/reagent_container/food/snacks/eat_bar, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/fiorina/station/flight_deck) "vHo" = ( -/turf/open/floor/prison{ - dir = 5; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/northeast, /area/fiorina/tumor/servers) "vHD" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/trash/cigbutt, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, +/turf/open/floor/prison/bluefull, /area/fiorina/station/power_ring) "vHU" = ( /obj/structure/surface/table/woodentable/fancy, @@ -35858,14 +28418,10 @@ name = "overhead ducting"; pixel_y = 33 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/ice_lab) "vIG" = ( -/turf/open/floor/prison{ - icon_state = "platingdmg2" - }, +/turf/open/floor/prison/platingdmg2, /area/fiorina/station/security) "vJh" = ( /obj/effect/spawner/random/sentry/midchance, @@ -35881,10 +28437,7 @@ /obj/structure/bed/chair/office/dark{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "vJL" = ( /obj/structure/machinery/light/double/blue{ @@ -35905,10 +28458,7 @@ /obj/item/stack/sheet/metal{ amount = 5 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/west, /area/fiorina/lz/near_lzI) "vKP" = ( /obj/structure/surface/rack, @@ -35918,10 +28468,7 @@ "vLe" = ( /obj/structure/closet/toolcloset, /obj/effect/landmark/objective_landmark/far, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/east, /area/fiorina/maintenance) "vLH" = ( /obj/item/device/flashlight/lamp/tripod, @@ -35931,30 +28478,19 @@ /obj/structure/platform_decoration{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/central_ring) "vLX" = ( /obj/effect/landmark/corpsespawner/ua_riot/burst, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/fiorina/tumor/civres) "vMk" = ( /obj/structure/machinery/vending/snack/packaged, -/turf/open/organic/grass{ - desc = "It'll get in your shoes no matter what you do."; - name = "astroturf" - }, +/turf/open/organic/grass/astroturf, /area/fiorina/tumor/fiberbush) "vMs" = ( /obj/structure/machinery/vending/hydroseeds, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/fiorina/station/botany) "vMK" = ( /turf/closed/wall/r_wall/prison, @@ -35963,16 +28499,10 @@ /obj/structure/platform_decoration{ dir = 4 }, -/turf/open/floor/prison{ - dir = 5; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/northeast, /area/fiorina/station/park) "vMT" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/fiorina/station/flight_deck) "vNd" = ( /obj/structure/machinery/light/double/blue{ @@ -35980,18 +28510,23 @@ pixel_y = 21 }, /obj/item/toy/beach_ball, -/turf/open/floor/prison{ - icon_state = "yellowfull" - }, +/turf/open/floor/prison/yellowfull, /area/fiorina/station/disco) "vNq" = ( /turf/closed/wall/r_wall/prison, /area/fiorina/station/telecomm/lz1_cargo) -"vOm" = ( -/turf/open/floor/prison{ +"vNQ" = ( +/obj/item/fuel_cell, +/obj/structure/platform, +/obj/structure/machinery/light/double/blue{ dir = 8; - icon_state = "cell_stripe" + pixel_x = -10; + pixel_y = 13 }, +/turf/open/floor/plating/prison, +/area/fiorina/station/lowsec) +"vOm" = ( +/turf/open/floor/prison/cell_stripe/west, /area/fiorina/station/botany) "vOD" = ( /obj/effect/landmark/corpsespawner/ua_riot, @@ -35999,9 +28534,7 @@ /area/fiorina/lz/near_lzI) "vOO" = ( /obj/item/device/flashlight/lamp/tripod, -/turf/open/floor/prison{ - icon_state = "green" - }, +/turf/open/floor/prison/green, /area/fiorina/station/chapel) "vOP" = ( /obj/structure/disposalpipe/segment{ @@ -36026,9 +28559,7 @@ pixel_y = 13 }, /obj/structure/barricade/handrail/type_b, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/flight_deck) "vPM" = ( /obj/structure/platform_decoration/kutjevo{ @@ -36044,10 +28575,7 @@ /area/fiorina/tumor/ship) "vQi" = ( /obj/item/clothing/gloves/botanic_leather, -/turf/open/floor/prison{ - dir = 4; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/east, /area/fiorina/station/botany) "vQC" = ( /obj/structure/closet/crate/trashcart, @@ -36060,17 +28588,11 @@ density = 0; pixel_y = 16 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/north, /area/fiorina/maintenance) "vRk" = ( /obj/structure/machinery/recharge_station, -/turf/open/floor/prison{ - dir = 9; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/northwest, /area/fiorina/station/power_ring) "vRu" = ( /obj/structure/sink{ @@ -36078,10 +28600,7 @@ pixel_x = 12 }, /obj/structure/blocker/invisible_wall, -/turf/open/floor/prison{ - dir = 6; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/southeast, /area/fiorina/oob) "vRA" = ( /turf/open/floor/plating/prison, @@ -36089,17 +28608,11 @@ "vRF" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/pamphlet/skill/powerloader, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "vRH" = ( /obj/item/stack/sheet/metal, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/tumor/ice_lab) "vRP" = ( /obj/item/trash/cigbutt/cigarbutt, @@ -36110,9 +28623,7 @@ pixel_x = -5; pixel_y = -6 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/civres_blue) "vSW" = ( /obj/structure/closet/crate/internals, @@ -36121,10 +28632,7 @@ /area/fiorina/lz/near_lzI) "vTq" = ( /obj/structure/prop/resin_prop, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/tumor/ice_lab) "vTv" = ( /turf/closed/shuttle/elevator{ @@ -36132,42 +28640,30 @@ }, /area/fiorina/station/civres_blue) "vTA" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/southwest, /area/fiorina/station/flight_deck) "vTI" = ( /obj/structure/platform_decoration{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/transit_hub) "vTL" = ( /obj/item/trash/hotdog, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/telecomm/lz1_cargo) "vTM" = ( /obj/item/storage/donut_box{ pixel_y = 6 }, /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, +/turf/open/floor/prison/bluefull, /area/fiorina/station/power_ring) "vTR" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/station/medbay) "vUf" = ( /obj/structure/platform, @@ -36182,9 +28678,7 @@ dir = 1; pixel_y = 21 }, -/turf/open/floor/prison{ - icon_state = "yellowfull" - }, +/turf/open/floor/prison/yellowfull, /area/fiorina/station/lowsec) "vUv" = ( /obj/structure/surface/table/reinforced/prison, @@ -36194,23 +28688,16 @@ /area/fiorina/station/security) "vUF" = ( /obj/item/tool/screwdriver, -/turf/open/floor/prison{ - dir = 10; - icon_state = "green" - }, +/turf/open/floor/prison/green/southwest, /area/fiorina/tumor/civres) "vUP" = ( -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/fiorina/station/research_cells) "vUZ" = ( /obj/structure/platform{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/power_ring) "vVi" = ( /obj/structure/window/framed/prison, @@ -36238,25 +28725,17 @@ "vWj" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/paper, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/north, /area/fiorina/tumor/servers) "vWL" = ( /obj/item/stock_parts/matter_bin/super, -/turf/open/floor/prison{ - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2, /area/fiorina/tumor/servers) "vXk" = ( /obj/structure/machinery/light/double/blue{ pixel_y = -1 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/east, /area/fiorina/station/botany) "vXl" = ( /obj/structure/surface/rack, @@ -36265,10 +28744,7 @@ /turf/open/floor/prison, /area/fiorina/station/medbay) "vXy" = ( -/turf/open/floor/prison{ - dir = 6; - icon_state = "green" - }, +/turf/open/floor/prison/green/southeast, /area/fiorina/tumor/civres) "vXT" = ( /obj/structure/window/framed/prison/reinforced/hull, @@ -36276,9 +28752,7 @@ /area/fiorina/station/security/wardens) "vYw" = ( /obj/structure/girder/reinforced, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/fiorina/tumor/ship) "vYX" = ( /obj/item/roller, @@ -36290,16 +28764,15 @@ layer = 3.5; pixel_y = 6 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/fiorina/station/transit_hub) +"vZe" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/prison/bluecorner, +/area/fiorina/station/power_ring) "vZs" = ( /obj/item/device/flashlight/lamp/tripod, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/servers) "vZD" = ( /obj/item/storage/box/donkpockets, @@ -36335,10 +28808,7 @@ /turf/open/floor/plating/prison, /area/fiorina/station/power_ring) "waQ" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/southwest, /area/fiorina/station/power_ring) "waU" = ( /obj/structure/machinery/light/double/blue, @@ -36346,18 +28816,12 @@ /area/fiorina/station/telecomm/lz2_maint) "wbp" = ( /obj/item/inflatable, -/turf/open/organic/grass{ - desc = "It'll get in your shoes no matter what you do."; - name = "astroturf" - }, +/turf/open/organic/grass/astroturf, /area/fiorina/tumor/fiberbush) "wbr" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/storage/firstaid/regular, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "wbB" = ( /obj/structure/computerframe, @@ -36398,18 +28862,13 @@ "wcB" = ( /obj/structure/surface/table/reinforced/prison, /obj/effect/spawner/random/gun/pistol/midchance, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/north, /area/fiorina/tumor/servers) "wcC" = ( /obj/structure/closet/basketball, /obj/item/storage/pill_bottle/bicaridine/skillless, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/fiorina/station/research_cells) "wcP" = ( /obj/effect/landmark/queen_spawn, @@ -36423,41 +28882,28 @@ /obj/structure/barricade/handrail/type_b{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/disco) "wdo" = ( /obj/structure/closet, -/turf/open/floor/prison{ - dir = 4; - icon_state = "bluecorner" - }, +/turf/open/floor/prison/bluecorner/east, /area/fiorina/station/power_ring) "wdL" = ( /obj/structure/barricade/wooden{ dir = 8 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/north, /area/fiorina/station/research_cells) "wdU" = ( /obj/structure/foamed_metal, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/civres_blue) "wef" = ( /turf/open/floor/plating/prison, /area/fiorina/station/research_cells) "wet" = ( /obj/item/stack/sandbags/large_stack, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/fiorina/station/telecomm/lz1_cargo) "weB" = ( /obj/structure/machinery/light/double/blue{ @@ -36465,21 +28911,14 @@ pixel_x = 10; pixel_y = 13 }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/fiorina/station/transit_hub) "weE" = ( -/turf/open/floor/prison{ - icon_state = "panelscorched" - }, +/turf/open/floor/prison/panelscorched, /area/fiorina/oob) "weM" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow, /area/fiorina/station/lowsec) "weV" = ( /obj/structure/sink{ @@ -36490,9 +28929,7 @@ /obj/structure/mirror{ pixel_x = -29 }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/fiorina/station/civres_blue) "weX" = ( /obj/structure/barricade/metal{ @@ -36510,10 +28947,7 @@ dir = 1; pixel_y = 21 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/fiorina/station/civres_blue) "wfo" = ( /obj/structure/coatrack, @@ -36525,10 +28959,7 @@ pixel_x = 10; pixel_y = -3 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/fiorina/tumor/civres) "wfu" = ( /obj/structure/machinery/light/double/blue{ @@ -36542,16 +28973,11 @@ dir = 4; pixel_y = 4 }, -/turf/open/floor/prison{ - icon_state = "damaged3" - }, +/turf/open/floor/prison/damaged3, /area/fiorina/station/central_ring) "wfV" = ( /obj/effect/landmark/monkey_spawn, -/turf/open/organic/grass{ - desc = "It'll get in your shoes no matter what you do."; - name = "astroturf" - }, +/turf/open/organic/grass/astroturf, /area/fiorina/tumor/fiberbush) "wfY" = ( /obj/item/device/flashlight/flare/on, @@ -36565,10 +28991,7 @@ /area/fiorina/oob) "wgq" = ( /obj/effect/landmark/monkey_spawn, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/fiorina/tumor/civres) "wgs" = ( /obj/structure/surface/table/reinforced/prison, @@ -36579,15 +29002,10 @@ /obj/item/book/manual/engineering_guide{ pixel_x = -4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/fiorina/tumor/civres) "wgO" = ( -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/park) "whf" = ( /turf/closed/shuttle/elevator{ @@ -36596,16 +29014,11 @@ /area/fiorina/station/civres_blue) "whl" = ( /obj/structure/machinery/cm_vending/sorted/tech/comp_storage, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/aux_engi) "whr" = ( /obj/structure/machinery/disposal, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/fiorina/station/civres_blue) "whu" = ( /turf/open/floor/plating/plating_catwalk/prison, @@ -36614,25 +29027,17 @@ /obj/structure/platform_decoration{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/disco) "wiR" = ( /obj/structure/surface/rack, /obj/item/key, /obj/structure/machinery/light/double/blue, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/southwest, /area/fiorina/station/medbay) "wjC" = ( /obj/effect/landmark/xeno_spawn, -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/northwest, /area/fiorina/tumor/aux_engi) "wjH" = ( /obj/item/stack/barbed_wire, @@ -36656,40 +29061,26 @@ /area/fiorina/station/medbay) "wkg" = ( /obj/effect/decal/cleanable/blood/gibs/xeno/down, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "wky" = ( /obj/structure/tunnel/maint_tunnel, /turf/open/floor/plating/prison, /area/fiorina/tumor/aux_engi) "wkA" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/west, /area/fiorina/station/power_ring) "wkL" = ( /obj/structure/bed/chair/comfy, -/turf/open/floor/prison{ - dir = 6; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/southeast, /area/fiorina/station/flight_deck) "wln" = ( /obj/item/stack/sheet/metal, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/fiorina/tumor/ice_lab) "wlv" = ( /obj/item/trash/barcardine, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/north, /area/fiorina/station/research_cells) "wly" = ( /turf/closed/wall/r_wall/prison_unmeltable, @@ -36708,23 +29099,15 @@ /area/fiorina/tumor/fiberbush) "wmm" = ( /obj/item/device/flashlight/lamp/tripod, -/turf/open/floor/prison{ - icon_state = "blue" - }, +/turf/open/floor/prison/blue, /area/fiorina/station/power_ring) "wmx" = ( /obj/item/stack/folding_barricade, -/turf/open/floor/prison{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/prison/red/west, /area/fiorina/station/security) "wnh" = ( /obj/item/stack/sheet/metal, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/north, /area/fiorina/station/civres_blue) "wnq" = ( /obj/item/tool/match, @@ -36737,9 +29120,7 @@ /turf/open/floor/wood, /area/fiorina/station/park) "wnD" = ( -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/fiberbush) "wnM" = ( /obj/structure/surface/rack, @@ -36750,18 +29131,13 @@ pixel_y = 6 }, /obj/structure/machinery/light/double/blue, -/turf/open/floor/prison{ - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2, /area/fiorina/maintenance) "woh" = ( /obj/structure/platform{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/north, /area/fiorina/station/medbay) "wol" = ( /obj/structure/platform{ @@ -36771,42 +29147,36 @@ icon_state = "medium"; name = "ice shard" }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/east, /area/fiorina/tumor/ice_lab) "wou" = ( /obj/structure/machinery/light/double/blue, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/tumor/ice_lab) "wow" = ( /obj/structure/closet/crate/medical, /obj/effect/spawner/random/toolbox, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/medbay) +"woB" = ( +/obj/structure/closet/crate/bravo, +/obj/item/stack/sheet/metal/medium_stack, +/obj/item/stack/sheet/metal/medium_stack, +/obj/item/fuel_cell, +/obj/item/stack/sheet/plasteel, +/turf/open/floor/prison/bluefull, +/area/fiorina/station/power_ring) "wps" = ( /obj/structure/bed/sofa/south/grey/left, /obj/structure/machinery/light/double/blue{ dir = 1; pixel_y = 21 }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/fiorina/station/transit_hub) "wpy" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "greencorner" - }, +/turf/open/floor/prison/greencorner/north, /area/fiorina/station/chapel) "wpD" = ( /obj/structure/machinery/door/airlock/prison_hatch/autoname{ @@ -36826,17 +29196,12 @@ name = "Fiberbush(tm) safety plaque"; pixel_y = 29 }, -/turf/open/organic/grass{ - desc = "It'll get in your shoes no matter what you do."; - name = "astroturf" - }, +/turf/open/organic/grass/astroturf, /area/fiorina/tumor/fiberbush) "wqs" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/poster, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/fiorina/station/research_cells) "wqz" = ( /obj/structure/closet{ @@ -36844,20 +29209,14 @@ pixel_y = 18 }, /obj/item/clothing/gloves/combat, -/turf/open/floor/prison{ - dir = 9; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/northwest, /area/fiorina/station/research_cells) "wqY" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; pixel_y = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/station/research_cells) "wrR" = ( /turf/closed/wall/prison, @@ -36870,15 +29229,10 @@ /area/fiorina/station/disco) "wsw" = ( /obj/effect/spawner/random/tool, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/fiorina/station/research_cells) "wsz" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/west, /area/fiorina/tumor/aux_engi) "wsM" = ( /obj/structure/barricade/handrail/type_b{ @@ -36887,18 +29241,8 @@ /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/tumor/ice_lab) -"wsX" = ( -/obj/item/trash/snack_bowl, -/turf/open/floor/prison{ - dir = 5; - icon_state = "yellow" - }, -/area/fiorina/station/lowsec) "wtm" = ( /obj/structure/monorail{ name = "launch track" @@ -36916,24 +29260,16 @@ dir = 4 }, /obj/item/weapon/classic_baton, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/fiorina/station/security) "wua" = ( /obj/structure/platform_decoration{ dir = 1 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "bluecorner" - }, +/turf/open/floor/prison/bluecorner/west, /area/fiorina/station/power_ring) "wun" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreencorner" - }, +/turf/open/floor/prison/whitegreencorner/west, /area/fiorina/tumor/ice_lab) "wuz" = ( /obj/structure/stairs/perspective{ @@ -36966,21 +29302,15 @@ /area/fiorina/station/park) "wuN" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/fiorina/tumor/aux_engi) "wuW" = ( /obj/item/tool/warning_cone, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/disco) "wvH" = ( /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/prison/chapel_carpet{ - icon_state = "doubleside" - }, +/turf/open/floor/prison/chapel_carpet/doubleside, /area/fiorina/station/chapel) "wvL" = ( /obj/item/tool/wrench, @@ -36988,10 +29318,7 @@ /area/fiorina/station/central_ring) "wvU" = ( /obj/structure/largecrate/supply/explosives/mines, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/fiorina/station/telecomm/lz1_cargo) "wvY" = ( /obj/item/reagent_container/food/snacks/eat_bar, @@ -37001,31 +29328,22 @@ /turf/open/floor/plating/prison, /area/fiorina/station/civres_blue) "wwa" = ( -/turf/open/floor/prison{ - icon_state = "floorscorched1" - }, +/turf/open/floor/prison/floorscorched1, /area/fiorina/tumor/civres) "wwo" = ( /obj/structure/machinery/cm_vending/sorted/marine_food{ desc = "Prison meal vendor, containing preprepared meals fit for the dregs of society."; name = "\improper Fiorina Engineering Canteen Vendor" }, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, +/turf/open/floor/prison/bluefull, /area/fiorina/station/power_ring) "wxl" = ( /obj/structure/machinery/recharge_station, -/turf/open/floor/prison{ - dir = 5; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/northeast, /area/fiorina/maintenance) "wxW" = ( /obj/structure/prop/almayer/computers/mapping_computer, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/fiorina/station/research_cells) "wxX" = ( /obj/structure/machinery/computer/cameras{ @@ -37037,9 +29355,7 @@ /area/fiorina/station/security/wardens) "wxY" = ( /obj/effect/landmark/xeno_spawn, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/servers) "wxZ" = ( /obj/structure/surface/table/reinforced/prison, @@ -37062,9 +29378,7 @@ /obj/structure/platform_decoration{ dir = 9 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/botany) "wyl" = ( /obj/structure/machinery/power/port_gen/pacman, @@ -37080,15 +29394,11 @@ layer = 3.1; pixel_y = 10 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/oob) "wyQ" = ( /obj/structure/largecrate/supply/supplies/mre, -/turf/open/floor/prison{ - icon_state = "yellowfull" - }, +/turf/open/floor/prison/yellowfull, /area/fiorina/station/lowsec) "wyT" = ( /obj/structure/window/framed/prison/reinforced/hull, @@ -37096,9 +29406,7 @@ /area/fiorina/station/transit_hub) "wyU" = ( /obj/effect/decal/cleanable/blood/gibs/robot/up, -/turf/open/organic/grass{ - name = "astroturf" - }, +/turf/open/organic/grass/astroturf, /area/fiorina/station/research_cells) "wzd" = ( /obj/structure/stairs/perspective{ @@ -37109,19 +29417,13 @@ /area/fiorina/station/security) "wzg" = ( /obj/item/device/flashlight/lamp/tripod, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/fiorina/station/flight_deck) "wzE" = ( /turf/closed/wall/r_wall/prison_unmeltable, /area/fiorina/station/lowsec) "wzH" = ( -/turf/open/floor/prison{ - dir = 5; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/northeast, /area/fiorina/station/chapel) "wzK" = ( /obj/structure/platform{ @@ -37152,18 +29454,13 @@ "wAt" = ( /obj/structure/surface/table/reinforced/prison, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/fiorina/lz/near_lzI) "wAQ" = ( /obj/structure/bed/chair/office/dark{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/east, /area/fiorina/tumor/ice_lab) "wBx" = ( /obj/item/prop/helmetgarb/spacejam_tickets{ @@ -37172,26 +29469,18 @@ pixel_x = 6; pixel_y = 7 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/west, /area/fiorina/station/park) "wBB" = ( /obj/structure/bed/chair/comfy{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/southwest, /area/fiorina/station/disco) "wBE" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/reagent_container/food/drinks/cans/aspen, -/turf/open/floor/prison{ - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2, /area/fiorina/lz/near_lzI) "wBK" = ( /obj/item/stack/tile/plasteel, @@ -37202,33 +29491,22 @@ /turf/open/floor/plating/prison, /area/fiorina/station/power_ring) "wCI" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrowncorners2" - }, +/turf/open/floor/prison/darkbrowncorners2/north, /area/fiorina/station/park) "wCJ" = ( /obj/effect/landmark/corpsespawner/ua_riot, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/station/medbay) "wDe" = ( /obj/effect/decal/cleanable/blood/drip, -/turf/open/floor/prison{ - icon_state = "greenblue" - }, +/turf/open/floor/prison/greenblue, /area/fiorina/station/botany) "wDw" = ( /obj/effect/decal/medical_decals{ icon_state = "cryomid" }, /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/station/medbay) "wDz" = ( /obj/structure/machinery/vending/snack, @@ -37236,9 +29514,7 @@ /area/fiorina/station/security) "wDJ" = ( /obj/structure/machinery/vending/cola, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/fiberbush) "wDK" = ( /obj/structure/machinery/shower{ @@ -37248,10 +29524,7 @@ /obj/structure/window{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/station/medbay) "wED" = ( /obj/structure/machinery/light/double/blue{ @@ -37259,17 +29532,11 @@ pixel_x = 10; pixel_y = -3 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/east, /area/fiorina/station/civres_blue) "wEE" = ( /obj/item/tool/crowbar/red, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "wEX" = ( /obj/structure/machinery/light/double/blue{ @@ -37277,26 +29544,18 @@ pixel_x = -10; pixel_y = 13 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/fiorina/tumor/aux_engi) "wFd" = ( /obj/structure/machinery/light/double/blue{ dir = 1; pixel_y = 21 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/north, /area/fiorina/tumor/servers) "wFp" = ( /obj/item/stack/cable_coil/pink, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/north, /area/fiorina/station/medbay) "wFB" = ( /obj/structure/machinery/light/double/blue{ @@ -37304,23 +29563,16 @@ pixel_x = 10; pixel_y = 13 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/lowsec) "wFM" = ( /obj/structure/machinery/power/apc{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/fiorina/station/telecomm/lz1_cargo) "wFS" = ( -/turf/open/floor/prison{ - icon_state = "floorscorched1" - }, +/turf/open/floor/prison/floorscorched1, /area/fiorina/station/chapel) "wFU" = ( /obj/structure/window/framed/prison/reinforced/hull, @@ -37330,9 +29582,7 @@ /obj/item/ammo_casing{ icon_state = "casing_1" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/central_ring) "wGf" = ( /obj/item/stack/rods, @@ -37344,9 +29594,7 @@ pixel_x = -10; pixel_y = 13 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/power_ring) "wGM" = ( /obj/item/device/taperecorder{ @@ -37363,10 +29611,7 @@ layer = 2.5; pixel_y = -11 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/west, /area/fiorina/station/telecomm/lz1_cargo) "wHl" = ( /obj/structure/platform_decoration{ @@ -37382,10 +29627,7 @@ /obj/structure/barricade/handrail{ dir = 8 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/prison/red/west, /area/fiorina/station/security) "wHw" = ( /obj/structure/machinery/door/airlock/prison_hatch/autoname, @@ -37396,9 +29638,7 @@ dir = 4 }, /obj/item/clothing/gloves/botanic_leather, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/botany) "wId" = ( /obj/structure/reagent_dispensers/fueltank, @@ -37416,16 +29656,11 @@ /area/fiorina/tumor/aux_engi) "wIx" = ( /obj/item/stack/sheet/metal, -/turf/open/floor/prison{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/prison/red/east, /area/fiorina/station/security) "wIy" = ( /obj/structure/machinery/door/airlock/prison_hatch/autoname, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/servers) "wIG" = ( /obj/structure/platform/kutjevo/smooth{ @@ -37455,15 +29690,11 @@ /area/fiorina/tumor/aux_engi) "wIL" = ( /obj/effect/decal/cleanable/blood/oil/streak, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/chapel) "wJd" = ( /obj/structure/barricade/handrail, -/turf/open/organic/grass{ - name = "astroturf" - }, +/turf/open/organic/grass/astroturf, /area/fiorina/station/research_cells) "wJw" = ( /obj/structure/closet/crate/trashcart, @@ -37480,9 +29711,7 @@ /area/fiorina/station/park) "wKl" = ( /obj/structure/bed/sofa/south/grey/right, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/civres_blue) "wKm" = ( /obj/item/stack/sheet/cardboard, @@ -37492,10 +29721,7 @@ /obj/structure/machinery/landinglight/ds1{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/fiorina/lz/near_lzI) "wKE" = ( /obj/effect/landmark/monkey_spawn, @@ -37508,9 +29734,7 @@ dir = 1; pixel_y = 21 }, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/fiorina/station/medbay) "wLA" = ( /obj/structure/extinguisher_cabinet, @@ -37518,10 +29742,7 @@ /area/fiorina/station/security) "wLS" = ( /obj/item/tool/wrench, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/west, /area/fiorina/tumor/servers) "wLT" = ( /obj/structure/prop/structure_lattice{ @@ -37532,9 +29753,7 @@ layer = 3.1; pixel_y = 10 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/civres) "wMe" = ( /obj/structure/surface/table/reinforced/prison, @@ -37546,9 +29765,7 @@ pixel_x = 7; pixel_y = 4 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/telecomm/lz1_cargo) "wMh" = ( /obj/structure/surface/table/reinforced/prison, @@ -37565,9 +29782,7 @@ /obj/item/shard{ icon_state = "medium" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/chapel) "wMz" = ( /obj/structure/machinery/faxmachine, @@ -37576,10 +29791,7 @@ /area/fiorina/station/security/wardens) "wMA" = ( /obj/item/disk/botany, -/turf/open/floor/prison{ - dir = 4; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/east, /area/fiorina/station/botany) "wNi" = ( /obj/effect/landmark/yautja_teleport, @@ -37589,10 +29801,7 @@ /obj/structure/barricade/wooden{ dir = 8 }, -/turf/open/floor/prison/chapel_carpet{ - dir = 1; - icon_state = "doubleside" - }, +/turf/open/floor/prison/chapel_carpet/doubleside/north, /area/fiorina/station/chapel) "wNB" = ( /obj/structure/closet/firecloset/full, @@ -37600,61 +29809,40 @@ dir = 1; pixel_y = 21 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/north, /area/fiorina/station/medbay) "wND" = ( /obj/structure/bed/chair/comfy{ dir = 8 }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/northwest, /area/fiorina/station/civres_blue) "wNG" = ( -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/fiorina/station/security) "wNM" = ( /obj/item/tool/weldingtool, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/civres_blue) "wNX" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "green" - }, +/turf/open/floor/prison/green/west, /area/fiorina/station/chapel) "wOG" = ( /obj/structure/largecrate/random, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/fiorina/station/disco) "wPz" = ( /turf/closed/shuttle/elevator, /area/fiorina/station/telecomm/lz1_cargo) "wQb" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/north, /area/fiorina/station/civres_blue) "wQg" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/door/window/eastright{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/security) "wQD" = ( /obj/structure/surface/table/reinforced/prison, @@ -37662,9 +29850,7 @@ dir = 1 }, /obj/item/weapon/gun/energy/taser, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/security) "wQN" = ( /obj/structure/machinery/floodlight/landing/floor, @@ -37691,10 +29877,7 @@ /area/fiorina/station/park) "wQY" = ( /obj/structure/machinery/cm_vending/sorted/medical/no_access, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/tumor/ice_lab) "wRg" = ( /obj/item/stack/sheet/metal, @@ -37705,10 +29888,7 @@ /area/fiorina/tumor/servers) "wRz" = ( /obj/structure/barricade/wooden, -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/west, /area/fiorina/station/central_ring) "wRP" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony/autoname{ @@ -37719,9 +29899,7 @@ /area/fiorina/lz/near_lzI) "wSb" = ( /obj/structure/machinery/gibber, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/fiorina/station/power_ring) "wSc" = ( /obj/structure/barricade/wooden{ @@ -37738,9 +29916,7 @@ pixel_x = -6; pixel_y = 5 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/servers) "wSm" = ( /turf/open/floor/plating/prison, @@ -37749,10 +29925,7 @@ /obj/structure/platform_decoration{ dir = 8 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/east, /area/fiorina/station/park) "wSt" = ( /obj/structure/monorail{ @@ -37768,9 +29941,7 @@ pixel_y = 4 }, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/fiorina/station/research_cells) "wSD" = ( /obj/item/reagent_container/food/drinks/cans/waterbottle, @@ -37779,43 +29950,28 @@ "wSN" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/storage/firstaid/regular, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/fiorina/station/research_cells) "wSU" = ( -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/transit_hub) "wSX" = ( /obj/vehicle/train/cargo/trolley, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/fiorina/station/transit_hub) "wTC" = ( -/turf/open/floor/prison{ - dir = 5; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/northeast, /area/fiorina/station/telecomm/lz1_cargo) "wTW" = ( /obj/structure/machinery/door/airlock/prison_hatch/autoname, /turf/open/floor/plating/prison, /area/fiorina/station/disco) "wUs" = ( -/turf/open/floor/prison{ - icon_state = "floorscorched1" - }, +/turf/open/floor/prison/floorscorched1, /area/fiorina/station/civres_blue) "wUz" = ( /obj/item/frame/toolbox_tiles, -/turf/open/floor/prison{ - dir = 9; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/northwest, /area/fiorina/station/research_cells) "wVc" = ( /obj/structure/surface/table/reinforced/prison, @@ -37823,9 +29979,7 @@ pixel_x = 11; pixel_y = 14 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/fiberbush) "wWs" = ( /turf/open/floor/greengrid, @@ -37843,9 +29997,7 @@ /obj/structure/machinery/computer/cameras{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/fiorina/station/security) "wXy" = ( /obj/structure/largecrate/random, @@ -37859,10 +30011,7 @@ "wXN" = ( /obj/structure/machinery/cryo_cell, /obj/structure/pipes/standard/cap/hidden, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/station/medbay) "wXQ" = ( /obj/structure/surface/table/reinforced/prison, @@ -37871,37 +30020,25 @@ pixel_x = 10; pixel_y = -3 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/lowsec) "wYq" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/chem_dispenser/soda, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/power_ring) "wYP" = ( /obj/structure/platform, /obj/item/clothing/gloves/botanic_leather, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/botany) "wYT" = ( /obj/structure/surface/rack, /obj/item/tank/emergency_oxygen/engi, -/turf/open/floor/prison{ - dir = 6; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/southeast, /area/fiorina/station/power_ring) "wZt" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/west, /area/fiorina/station/research_cells) "wZv" = ( /obj/item/stack/sheet/metal, @@ -37918,32 +30055,22 @@ "xak" = ( /obj/structure/closet/emcloset, /obj/item/storage/pill_bottle/kelotane/skillless, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/tumor/ice_lab) "xat" = ( /obj/item/stool, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, +/turf/open/floor/prison/bluefull, /area/fiorina/station/civres_blue) "xaO" = ( /obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/medbay) "xbc" = ( /obj/structure/machinery/light/double/blue{ dir = 1; pixel_y = 21 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/north, /area/fiorina/station/central_ring) "xbm" = ( /obj/structure/machinery/line_nexter{ @@ -37959,10 +30086,7 @@ icon_state = "sandbag_0"; pixel_y = 2 }, -/turf/open/floor/prison{ - dir = 5; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/northeast, /area/fiorina/station/disco) "xbp" = ( /obj/item/card/id/silver/clearance_badge/cl{ @@ -37970,30 +30094,21 @@ name = "certified powerloader operator card"; registered_name = "John Forklift" }, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, +/turf/open/floor/prison/bluefull, /area/fiorina/station/power_ring) "xbr" = ( /obj/structure/machinery/power/apc{ dir = 4 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/prison/green/north, /area/fiorina/station/transit_hub) "xbE" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/reagent_container/food/drinks/cans/waterbottle, -/turf/open/floor/prison{ - icon_state = "yellowfull" - }, +/turf/open/floor/prison/yellowfull, /area/fiorina/station/disco) "xbM" = ( -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/lowsec) "xck" = ( /obj/structure/largecrate/random/case/small, @@ -38006,9 +30121,7 @@ pixel_y = 21 }, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/power_ring) "xcS" = ( /obj/structure/platform{ @@ -38019,9 +30132,7 @@ pixel_x = -10; pixel_y = -3 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/power_ring) "xdb" = ( /obj/structure/closet/bodybag, @@ -38043,15 +30154,11 @@ /area/fiorina/station/telecomm/lz1_tram) "xdL" = ( /obj/effect/landmark/corpsespawner/ua_riot/burst, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/servers) "xdT" = ( /obj/item/trash/cigbutt, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/power_ring) "xdZ" = ( /obj/structure/machinery/light/double/blue{ @@ -38059,22 +30166,15 @@ pixel_x = 10; pixel_y = -3 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/lowsec) "xei" = ( /obj/item/device/flashlight/lamp/tripod, -/turf/open/organic/grass{ - desc = "It'll get in your shoes no matter what you do."; - name = "astroturf" - }, +/turf/open/organic/grass/astroturf, /area/fiorina/station/central_ring) "xel" = ( /obj/effect/landmark/survivor_spawner, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/lowsec) "xew" = ( /turf/closed/shuttle/ert{ @@ -38085,9 +30185,7 @@ /turf/open/floor/plating/prison, /area/fiorina/lz/near_lzI) "xeX" = ( -/turf/open/floor/prison{ - icon_state = "platingdmg1" - }, +/turf/open/floor/prison/platingdmg1, /area/fiorina/tumor/servers) "xfb" = ( /obj/item/inflatable, @@ -38102,40 +30200,28 @@ /obj/structure/barricade/wooden{ dir = 8 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/north, /area/fiorina/station/medbay) "xgb" = ( /obj/effect/landmark/corpsespawner/ua_riot/burst, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/civres) "xgn" = ( /obj/structure/machinery/optable, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/fiorina/station/medbay) "xgx" = ( /obj/structure/machinery/defenses/tesla_coil{ faction_group = list("USCM") }, -/turf/open/organic/grass{ - name = "astroturf" - }, +/turf/open/organic/grass/astroturf, /area/fiorina/station/park) "xgC" = ( /obj/structure/machinery/light/double/blue{ dir = 1; pixel_y = 21 }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/northwest, /area/fiorina/station/disco) "xgF" = ( /obj/structure/machinery/light/double/blue, @@ -38143,37 +30229,25 @@ /area/fiorina/station/medbay) "xgH" = ( /obj/item/toy/handcard/uno_reverse_blue, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/fiorina/station/research_cells) "xgU" = ( /obj/item/circuitboard/machine/rdserver, -/turf/open/floor/prison{ - icon_state = "floorscorched1" - }, +/turf/open/floor/prison/floorscorched1, /area/fiorina/tumor/servers) "xhL" = ( /obj/effect/decal/medical_decals{ icon_state = "triagedecaltopleft" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/station/medbay) "xhM" = ( /obj/structure/curtain/red, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/fiorina/station/civres_blue) "xia" = ( /obj/item/ammo_magazine/smg/mp5, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/fiorina/station/telecomm/lz1_cargo) "xiF" = ( /obj/structure/largecrate/random/case/double, @@ -38184,16 +30258,11 @@ /turf/open/floor/plating/plating_catwalk/prison, /area/fiorina/station/security) "xiL" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/fiorina/station/botany) "xiO" = ( /obj/structure/machinery/vending/cigarette/free, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/fiorina/tumor/aux_engi) "xja" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony/autoname{ @@ -38206,16 +30275,11 @@ /turf/open/floor/plating/prison, /area/fiorina/station/telecomm/lz2_maint) "xjM" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "redcorner" - }, +/turf/open/floor/prison/redcorner/west, /area/fiorina/station/security) "xkm" = ( /obj/effect/landmark/static_comms/net_two, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, +/turf/open/floor/prison/bluefull, /area/fiorina/station/power_ring) "xkq" = ( /obj/structure/platform, @@ -38225,9 +30289,7 @@ /obj/structure/platform_decoration{ dir = 6 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/power_ring) "xkv" = ( /turf/closed/wall/prison, @@ -38236,18 +30298,13 @@ /obj/structure/machinery/door/airlock/prison_hatch/autoname{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/civres_blue) "xlk" = ( /obj/effect/decal/medical_decals{ icon_state = "cryomid" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "xlp" = ( /obj/structure/bed/chair/office/dark{ @@ -38258,9 +30315,7 @@ "xlx" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/reagent_container/food/snacks/tomatosoup, -/turf/open/floor/prison{ - icon_state = "blue" - }, +/turf/open/floor/prison/blue, /area/fiorina/station/power_ring) "xlZ" = ( /obj/structure/surface/table/woodentable, @@ -38279,17 +30334,11 @@ /area/fiorina/station/security/wardens) "xmC" = ( /obj/item/device/flashlight/flare/on, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/north, /area/fiorina/tumor/ice_lab) "xmV" = ( /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/southwest, /area/fiorina/station/telecomm/lz1_tram) "xna" = ( /obj/item/stack/tile/plasteel, @@ -38305,10 +30354,7 @@ pixel_y = 18 }, /obj/item/clothing/gloves/combat, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/north, /area/fiorina/station/research_cells) "xnU" = ( /obj/structure/machinery/camera/autoname/lz_camera, @@ -38319,14 +30365,11 @@ /turf/open/floor/plating/prison, /area/fiorina/station/medbay) "xow" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "green" - }, +/turf/open/floor/prison/green/east, /area/fiorina/station/chapel) "xoK" = ( /obj/structure/closet, -/obj/item/handcuffs, +/obj/item/restraint/handcuffs, /obj/item/clothing/mask/muzzle, /obj/item/weapon/chainofcommand, /turf/open/floor/wood, @@ -38334,18 +30377,13 @@ "xoR" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/computer/atmos_alert, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, +/turf/open/floor/prison/bluefull, /area/fiorina/station/power_ring) "xpj" = ( /obj/structure/flora/bush/ausbushes/grassybush{ icon_state = "lavendergrass_4" }, -/turf/open/organic/grass{ - desc = "It'll get in your shoes no matter what you do."; - name = "astroturf" - }, +/turf/open/organic/grass/astroturf, /area/fiorina/station/central_ring) "xpw" = ( /obj/structure/machinery/power/apc{ @@ -38359,32 +30397,22 @@ /area/fiorina/station/security) "xpM" = ( /obj/structure/platform, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/power_ring) "xpO" = ( /obj/structure/machinery/power/terminal{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/fiorina/tumor/aux_engi) "xqP" = ( /obj/structure/surface/rack, /obj/item/tool/plantspray/weeds, -/turf/open/floor/prison{ - dir = 4; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/east, /area/fiorina/station/botany) "xqY" = ( /obj/effect/spawner/random/tool, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/tumor/ice_lab) "xrd" = ( /obj/structure/machinery/computer3/server/rack, @@ -38398,15 +30426,11 @@ /obj/structure/machinery/computer/skills{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, +/turf/open/floor/prison/bluefull, /area/fiorina/station/power_ring) "xrz" = ( /obj/item/clothing/head/cmcap, -/turf/open/floor/prison{ - icon_state = "green" - }, +/turf/open/floor/prison/green, /area/fiorina/station/transit_hub) "xrH" = ( /obj/structure/machinery/landinglight/ds2{ @@ -38418,9 +30442,7 @@ /obj/structure/bed/chair/comfy{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/civres_blue) "xsh" = ( /obj/structure/bed/roller, @@ -38428,10 +30450,7 @@ pixel_y = 19 }, /obj/item/bedsheet/green, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/east, /area/fiorina/station/medbay) "xst" = ( /obj/structure/platform, @@ -38439,10 +30458,7 @@ /area/fiorina/station/chapel) "xsC" = ( /obj/item/device/flashlight/lamp/tripod, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "xsS" = ( /obj/structure/bed/chair{ @@ -38452,10 +30468,7 @@ /area/fiorina/station/power_ring) "xsX" = ( /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "xtd" = ( /obj/structure/largecrate/random/case/small, @@ -38468,9 +30481,7 @@ /area/fiorina/station/telecomm/lz1_tram) "xtm" = ( /obj/effect/landmark/xeno_spawn, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/fiorina/tumor/aux_engi) "xtP" = ( /obj/structure/platform/kutjevo/smooth{ @@ -38490,10 +30501,7 @@ /obj/effect/decal/medical_decals{ icon_state = "docstripingdir" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/station/medbay) "xvv" = ( /turf/open/floor/prison, @@ -38506,9 +30514,7 @@ /area/fiorina/station/transit_hub) "xvC" = ( /obj/structure/bed/chair, -/turf/open/floor/prison{ - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2, /area/fiorina/tumor/servers) "xvI" = ( /obj/structure/disposalpipe/segment{ @@ -38523,17 +30529,11 @@ "xwo" = ( /obj/structure/surface/rack, /obj/item/storage/box/sprays, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/fiorina/station/botany) "xwt" = ( /obj/structure/bed/chair/comfy, -/turf/open/organic/grass{ - desc = "It'll get in your shoes no matter what you do."; - name = "astroturf" - }, +/turf/open/organic/grass/astroturf, /area/fiorina/tumor/fiberbush) "xwC" = ( /turf/closed/wall/mineral/bone_resin, @@ -38545,19 +30545,13 @@ /obj/structure/flora/bush/ausbushes/grassybush{ icon_state = "lavendergrass_2" }, -/turf/open/organic/grass{ - desc = "It'll get in your shoes no matter what you do."; - name = "astroturf" - }, +/turf/open/organic/grass/astroturf, /area/fiorina/station/civres_blue) "xxU" = ( /obj/effect/decal/cleanable/blood{ layer = 3 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/north, /area/fiorina/tumor/ice_lab) "xxX" = ( /obj/effect/decal/cleanable/blood/splatter{ @@ -38569,10 +30563,7 @@ /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/east, /area/fiorina/station/botany) "xyw" = ( /obj/structure/machinery/computer/arcade, @@ -38583,16 +30574,10 @@ /area/fiorina/tumor/civres) "xzs" = ( /obj/structure/machinery/space_heater, -/turf/open/organic/grass{ - desc = "It'll get in your shoes no matter what you do."; - name = "astroturf" - }, +/turf/open/organic/grass/astroturf, /area/fiorina/tumor/fiberbush) "xzN" = ( -/turf/open/floor/prison{ - dir = 9; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/northwest, /area/fiorina/station/chapel) "xAl" = ( /obj/structure/cargo_container/grant/right{ @@ -38603,24 +30588,15 @@ "xAo" = ( /obj/item/trash/cigbutt/bcigbutt, /obj/item/device/flashlight/lamp/tripod, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/station/medbay) "xAq" = ( /obj/effect/spawner/random/tool, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/station/research_cells) "xAs" = ( /obj/item/device/reagent_scanner, -/turf/open/organic/grass{ - desc = "It'll get in your shoes no matter what you do."; - name = "astroturf" - }, +/turf/open/organic/grass/astroturf, /area/fiorina/tumor/fiberbush) "xAY" = ( /obj/effect/landmark{ @@ -38628,16 +30604,11 @@ name = "xeno_hive_spawn" }, /obj/effect/landmark/ert_spawns/groundside_xeno, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreencorner" - }, +/turf/open/floor/prison/whitegreencorner/north, /area/fiorina/tumor/ice_lab) "xBc" = ( /obj/structure/barricade/wooden, -/turf/open/floor/prison{ - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple, /area/fiorina/station/research_cells) "xBl" = ( /obj/structure/surface/table/woodentable, @@ -38667,9 +30638,7 @@ pixel_x = 1; pixel_y = -1 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/fiorina/station/research_cells) "xCa" = ( /obj/item/toy/crayon/rainbow, @@ -38677,32 +30646,21 @@ /area/fiorina/station/power_ring) "xCg" = ( /obj/item/stack/sheet/metal, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/station/research_cells) "xCh" = ( /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/station/research_cells) "xCp" = ( /obj/structure/inflatable/popped, -/turf/open/floor/prison{ - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen, /area/fiorina/station/medbay) "xCr" = ( /obj/structure/curtain/shower, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/fiorina/tumor/civres) "xCv" = ( /obj/structure/platform{ @@ -38715,10 +30673,7 @@ /turf/open/floor/prison, /area/fiorina/station/civres_blue) "xDk" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/southwest, /area/fiorina/station/civres_blue) "xDq" = ( /turf/closed/shuttle/ert{ @@ -38734,9 +30689,7 @@ icon_state = "pottedplant_29"; pixel_y = 6 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/power_ring) "xEy" = ( /obj/structure/machinery/light/double/blue{ @@ -38744,56 +30697,36 @@ pixel_x = 10; pixel_y = -3 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/civres) "xEH" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/southwest, /area/fiorina/station/medbay) "xEW" = ( /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/power_ring) "xEX" = ( /obj/effect/spawner/random/gun/rifle, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/southwest, /area/fiorina/lz/near_lzI) "xFf" = ( /obj/structure/largecrate/random, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/fiorina/tumor/aux_engi) "xFg" = ( -/turf/open/floor/prison{ - dir = 9; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/northwest, /area/fiorina/station/central_ring) "xFJ" = ( /obj/item/tool/soap, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/fiorina/station/lowsec) "xFL" = ( /obj/effect/decal{ icon = 'icons/obj/items/policetape.dmi'; icon_state = "engineering_v" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/fiorina/station/telecomm/lz1_cargo) "xFP" = ( /turf/closed/shuttle/ert{ @@ -38804,40 +30737,28 @@ /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22" }, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, +/turf/open/floor/prison/bluefull, /area/fiorina/station/civres_blue) "xGd" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/clothing/mask/cigarette/weed{ icon_state = "ucigoff" }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/fiorina/station/lowsec) "xGi" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22" }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/fiorina/tumor/civres) "xGl" = ( /obj/structure/barricade/wooden, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/power_ring) "xGr" = ( /obj/item/trash/sosjerky, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/west, /area/fiorina/station/flight_deck) "xGt" = ( /obj/structure/window/framed/prison/reinforced, @@ -38850,10 +30771,7 @@ /area/fiorina/station/security) "xHi" = ( /obj/item/trash/candle, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/fiorina/station/telecomm/lz1_cargo) "xHV" = ( /turf/closed/wall/mineral/bone_resin, @@ -38872,9 +30790,7 @@ /obj/structure/platform_decoration{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/disco) "xIx" = ( /obj/structure/largecrate/random, @@ -38882,9 +30798,7 @@ /area/fiorina/station/chapel) "xJn" = ( /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/fiorina/station/disco) "xJw" = ( /turf/closed/wall/r_wall/prison_unmeltable, @@ -38894,10 +30808,7 @@ dir = 1; pixel_y = 21 }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/northwest, /area/fiorina/station/lowsec) "xKj" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_nest, @@ -38924,15 +30835,11 @@ pixel_x = 8; pixel_y = 8 }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/fiorina/station/lowsec) "xKP" = ( /obj/structure/barricade/handrail, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/fiorina/station/research_cells) "xKX" = ( /turf/open/floor/plating/prison, @@ -38941,18 +30848,13 @@ /obj/structure/reagent_dispensers/peppertank{ pixel_y = 30 }, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/fiorina/station/security) "xLf" = ( /obj/effect/decal/cleanable/blood/splatter{ icon_state = "gibmid1" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/station/medbay) "xLi" = ( /turf/closed/wall/prison, @@ -38969,18 +30871,14 @@ /area/fiorina/station/medbay) "xLx" = ( /obj/item/bedsheet, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/lowsec) "xLD" = ( /obj/structure/machinery/light/double/blue{ dir = 1; pixel_y = 21 }, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, +/turf/open/floor/prison/bluefull, /area/fiorina/station/power_ring) "xLQ" = ( /obj/structure/window/framed/prison, @@ -38993,10 +30891,7 @@ /area/fiorina/station/medbay) "xMp" = ( /obj/item/trash/c_tube, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "xMO" = ( /obj/item/stack/sandbags_empty/half, @@ -39018,18 +30913,13 @@ /area/fiorina/oob) "xMX" = ( /obj/structure/inflatable/door, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/west, /area/fiorina/station/medbay) "xNg" = ( /obj/effect/decal/hefa_cult_decals/d32{ icon_state = "2" }, -/turf/open/floor/prison/chapel_carpet{ - icon_state = "doubleside" - }, +/turf/open/floor/prison/chapel_carpet/doubleside, /area/fiorina/station/chapel) "xNm" = ( /obj/structure/extinguisher_cabinet, @@ -39044,74 +30934,49 @@ }, /turf/open/floor/plating/prison, /area/fiorina/station/transit_hub) -"xNw" = ( -/obj/item/fuelCell, -/turf/open/floor/prison, -/area/fiorina/tumor/aux_engi) "xNG" = ( /obj/item/weapon/gun/shotgun/pump/dual_tube/cmb, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/security) "xNJ" = ( /obj/structure/barricade/handrail/type_b{ dir = 1 }, /obj/item/frame/rack, -/turf/open/floor/prison{ - dir = 6; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/southeast, /area/fiorina/station/disco) "xNU" = ( /obj/structure/bed/chair/comfy{ dir = 4 }, -/turf/open/floor/prison{ - dir = 5; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/northeast, /area/fiorina/station/flight_deck) "xOm" = ( /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/power_ring) "xOs" = ( /obj/structure/machinery/light/double/blue{ dir = 1; pixel_y = 21 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/fiorina/station/medbay) "xOE" = ( /obj/structure/machinery/door/airlock/prison_hatch/autoname{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/fiorina/tumor/ship) "xOU" = ( /obj/structure/largecrate/random/case/small, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/west, /area/fiorina/station/telecomm/lz1_cargo) "xPk" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "greencorner" - }, +/turf/open/floor/prison/greencorner/west, /area/fiorina/tumor/civres) "xPG" = ( /obj/structure/bed/chair/comfy{ @@ -39120,9 +30985,7 @@ /turf/open/floor/plating/prison, /area/fiorina/maintenance) "xQx" = ( -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/security/wardens) "xQC" = ( /obj/structure/platform/kutjevo/smooth, @@ -39145,25 +31008,17 @@ /area/fiorina/station/power_ring) "xRw" = ( /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/north, /area/fiorina/station/power_ring) "xRI" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/prison/yellow/east, /area/fiorina/station/lowsec) "xRY" = ( /obj/structure/bed{ icon_state = "abed" }, /obj/item/card/id/visa, -/turf/open/floor/prison{ - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple, /area/fiorina/station/research_cells) "xSz" = ( /obj/structure/barricade/metal/wired{ @@ -39176,33 +31031,22 @@ dir = 1; icon_state = "p_stair_sn_full_cap" }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/north, /area/fiorina/station/central_ring) "xTf" = ( /obj/item/tool/kitchen/utensil/pspoon, -/turf/open/floor/prison{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/east, /area/fiorina/station/power_ring) "xTD" = ( /obj/structure/inflatable/popped/door, /obj/effect/decal/medical_decals{ icon_state = "triagedecaldir" }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/east, /area/fiorina/station/medbay) "xTW" = ( /obj/structure/bed/sofa/vert/grey/top, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/lz/near_lzII) "xUi" = ( /obj/structure/surface/rack, @@ -39222,26 +31066,19 @@ /area/fiorina/lz/near_lzII) "xUr" = ( /obj/structure/largecrate/random/case/double, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/fiorina/station/park) "xVw" = ( /obj/structure/machinery/light/double/blue{ dir = 1; pixel_y = 21 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/north, /area/fiorina/station/research_cells) "xVJ" = ( /obj/structure/surface/rack, /obj/item/storage/toolbox/mechanical/green, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/fiorina/maintenance) "xVK" = ( /obj/structure/flora/grass/tallgrass/jungle/corner{ @@ -39250,15 +31087,10 @@ /obj/structure/barricade/handrail/type_b{ layer = 3.5 }, -/turf/open/organic/grass{ - name = "astroturf" - }, +/turf/open/organic/grass/astroturf, /area/fiorina/station/park) "xVW" = ( -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/northwest, /area/fiorina/station/park) "xWc" = ( /obj/item/clothing/shoes/dress, @@ -39269,16 +31101,11 @@ pixel_x = -5; pixel_y = -11 }, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, +/turf/open/floor/prison/bluefull, /area/fiorina/station/civres_blue) "xWG" = ( /obj/item/weapon/twohanded/spear, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/station/research_cells) "xWV" = ( /obj/structure/surface/table/reinforced/prison, @@ -39293,17 +31120,13 @@ pixel_y = 10 }, /obj/item/tool/pen, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/security) "xXh" = ( /obj/structure/machinery/door/airlock/prison_hatch/autoname{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/fiorina/station/medbay) "xXl" = ( /obj/structure/flora/pottedplant{ @@ -39326,9 +31149,7 @@ /area/fiorina/station/power_ring) "xXY" = ( /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/flight_deck) "xYe" = ( /obj/structure/tunnel/maint_tunnel, @@ -39342,49 +31163,33 @@ /obj/structure/machinery/power/apc{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/fiorina/tumor/aux_engi) "xYJ" = ( /obj/structure/bed{ icon_state = "abed" }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/east, /area/fiorina/station/research_cells) "xYN" = ( /obj/item/device/t_scanner, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/civres_blue) "xYR" = ( /obj/item/paper_bin{ pixel_x = 5; pixel_y = 22 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/west, /area/fiorina/station/civres_blue) "xZx" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/paper_bin, /obj/item/tool/stamp, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/fiorina/tumor/civres) "xZA" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/east, /area/fiorina/station/telecomm/lz1_tram) "xZD" = ( /obj/structure/surface/table/reinforced/prison, @@ -39404,23 +31209,15 @@ layer = 3.1; pixel_y = 10 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/security/wardens) "xZM" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 8; - icon_state = "green" - }, +/turf/open/floor/prison/green/west, /area/fiorina/tumor/civres) "xZN" = ( /obj/item/clothing/under/shorts/green, -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/east, /area/fiorina/station/central_ring) "xZR" = ( /obj/structure/machinery/door/airlock/prison_hatch/autoname{ @@ -39432,17 +31229,11 @@ /obj/structure/closet/crate/miningcar{ name = "\improper materials storage bin" }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/fiorina/station/botany) "xZV" = ( /obj/item/trash/semki, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/fiorina/station/telecomm/lz1_cargo) "yar" = ( /obj/structure/machinery/vending/cola, @@ -39450,10 +31241,7 @@ dir = 1; pixel_y = 24 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/west, /area/fiorina/station/park) "yat" = ( /obj/item/inflatable/door, @@ -39506,9 +31294,7 @@ /area/fiorina/station/park) "ycf" = ( /obj/structure/closet/secure_closet/security_empty, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/fiorina/station/security) "ycw" = ( /obj/structure/machinery/light/double/blue{ @@ -39516,10 +31302,7 @@ pixel_x = 10; pixel_y = -3 }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/fiorina/tumor/civres) "ycC" = ( /turf/open/floor/plating/prison, @@ -39530,9 +31313,7 @@ /area/fiorina/tumor/fiberbush) "ycT" = ( /obj/structure/machinery/space_heater, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/tumor/fiberbush) "ydb" = ( /obj/structure/machinery/light/double/blue{ @@ -39544,29 +31325,20 @@ /area/fiorina/station/civres_blue) "ydd" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2, /area/fiorina/station/park) "ydK" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/east, /area/fiorina/station/power_ring) "ydQ" = ( /obj/structure/machinery/light/double/blue{ dir = 1; pixel_y = 21 }, -/turf/open/floor/prison{ - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen, /area/fiorina/tumor/ice_lab) "yet" = ( -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/fiorina/maintenance) "yeA" = ( /obj/item/reagent_container/food/drinks/cans/waterbottle, @@ -39586,20 +31358,14 @@ dir = 1; pixel_y = 21 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/fiorina/station/disco) "yfA" = ( /obj/structure/machinery/light/double/blue{ dir = 1; pixel_y = 21 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/fiorina/station/telecomm/lz1_cargo) "yfE" = ( /obj/structure/disposalpipe/junction{ @@ -39608,10 +31374,7 @@ /turf/open/floor/plating/prison, /area/fiorina/station/power_ring) "yfK" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/north, /area/fiorina/maintenance) "yge" = ( /obj/structure/flora/grass/tallgrass/jungle/corner{ @@ -39622,24 +31385,17 @@ layer = 3.5 }, /obj/effect/spawner/random/technology_scanner, -/turf/open/organic/grass{ - name = "astroturf" - }, +/turf/open/organic/grass/astroturf, /area/fiorina/station/park) "ygk" = ( /obj/item/ammo_magazine/rifle/m16{ current_rounds = 0 }, -/turf/open/floor/prison{ - icon_state = "yellowcorner" - }, +/turf/open/floor/prison/yellowcorner, /area/fiorina/station/lowsec) "ygr" = ( /obj/structure/platform, -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/west, /area/fiorina/station/security) "ygs" = ( /obj/structure/platform{ @@ -39669,9 +31425,7 @@ /obj/structure/surface/rack, /obj/item/storage/firstaid/regular, /obj/item/storage/pill_bottle/dexalin/skillless, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/medbay) "yhu" = ( /obj/structure/window/framed/prison, @@ -39688,10 +31442,7 @@ pixel_x = 1; pixel_y = -1 }, -/turf/open/floor/prison{ - dir = 6; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/southeast, /area/fiorina/station/research_cells) "yhR" = ( /obj/structure/sign/prop3{ @@ -39714,30 +31465,21 @@ /area/fiorina/tumor/civres) "yiL" = ( /obj/item/trash/cigbutt/bcigbutt, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/fiorina/station/security) "yiR" = ( -/turf/open/floor/prison{ - icon_state = "panelscorched" - }, +/turf/open/floor/prison/panelscorched, /area/fiorina/station/civres_blue) "yiT" = ( /obj/structure/barricade/sandbags{ icon_state = "sandbag_0"; pixel_y = -14 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/fiorina/lz/near_lzI) "yjW" = ( /obj/effect/landmark/corpsespawner/ua_riot, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/fiorina/station/security) "ykw" = ( /obj/structure/inflatable/popped, @@ -39768,10 +31510,7 @@ pixel_x = 10; pixel_y = 13 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/east, /area/fiorina/station/research_cells) "ylu" = ( /obj/item/tool/wrench, @@ -39781,10 +31520,7 @@ /obj/effect/decal/medical_decals{ icon_state = "cryomid" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/fiorina/station/medbay) (1,1,1) = {" @@ -48790,7 +40526,7 @@ dXG swj xHV dIo -qBS +rZM sHL swj dIo @@ -50743,8 +42479,8 @@ nMm aHJ jlk jlk -xNw -xNw +ugI +ugI jlk jlk umy @@ -55645,7 +47381,7 @@ tkj oer ckZ kXD -kIe +lvt tas tas tTA @@ -62441,11 +54177,11 @@ lgS eLu eLu eLu -bhf -bhf +iYQ +iYQ eLu -bhf -bhf +iYQ +iYQ eLu eLu ppI @@ -63289,11 +55025,11 @@ lgS eLu eLu eLu -bhf -bhf +iYQ +iYQ eLu -bhf -bhf +iYQ +iYQ eLu eLu cME @@ -66404,9 +58140,9 @@ iKs nTv dtS fQA -bFr -bFr -bFr +bis +bis +bis oLV nxq dBy @@ -66615,10 +58351,10 @@ iKs nTv dtS fQA -bFr -bFr -bQM -bFr +bis +bis +cME +bis bis gXd dBy @@ -66826,12 +58562,12 @@ tyj tyj dtS fQA -bFr -bFr -bQM -bQM -bFr -rLJ +bis +bis +cME +cME +wpD +iKs oeY dBy nxq @@ -67037,12 +58773,12 @@ rJF fmb dBy dBy +dBy +bis +cME +cME +cME bis -bFr -bQM -bQM -bQM -bFr bis gXd qIT @@ -67249,12 +58985,12 @@ bFr twb eLu tLC +tLC +eLu +cME +cME +cME eLu -twb -twb -twb -twb -twb tIn dwP dBy @@ -67686,7 +59422,7 @@ twb eBO eBO eBO -twb +eLu eLu eLu eLu @@ -67890,7 +59626,7 @@ tIU gZc tIU cME -liA +cME cME qIq eLu @@ -67898,7 +59634,7 @@ uvF rzp vds elO -uvF +cME wQT eLu cME @@ -68098,11 +59834,11 @@ twb twb twb cME -eLu -eLu -eLu +cME +cME +cME bgy -eLu +cME cME cME cME @@ -68314,7 +60050,7 @@ cME cME cME cME -liA +cME cME cME cME @@ -68526,7 +60262,7 @@ twb twb cME cME -eLu +cME cME rJh eLu @@ -68534,7 +60270,7 @@ eLu dHD xbM fHo -vbG +cME vZD cME cME @@ -68578,7 +60314,7 @@ uGY ihB ihB ubP -ubP +qHi gag sbF sbF @@ -68742,8 +60478,8 @@ eLu mrk cME jkg -uvF -rVL +cME +dHD xbM fHo xno @@ -68950,15 +60686,15 @@ bQM twb nSU cME -eLu +cME cME cME eLu -uvF +jkg dHD xbM fHo -uvF +cME wQT eLu cYP @@ -69162,7 +60898,7 @@ bQM twb uts cME -liA +cME cME cME cME @@ -69374,17 +61110,17 @@ iYw twb eLu eLu -eLu +cME srI dTf +cME eLu -twb dHD xbM fHo -wzE -sfu -jyF +ioc +bjt +bjt kqC sfu jyF @@ -69589,13 +61325,13 @@ tmo gfo cME wQT -eLu +cME kqC dHD xbM fHo -kqC -wsX +ioc +ioc bjt kqC qNF @@ -69622,12 +61358,12 @@ ihB ceC obh obh -nqN +ceC bxc jbF bBK ceC -uGY +ceC uGY uGY uGY @@ -69794,21 +61530,21 @@ ssc aeI nQu suX -bLJ -twb -twb -tPN -tPN -tPN -twb +neY +liA +yfK +tmo +gfo +cME +cME eLu kqC -dHD +fCJ xbM fHo -kqC -ryJ -end +ioc +ioc +kgN kqC ryJ end @@ -70006,16 +61742,16 @@ aeI aeI aeI nQu -hCh -sKY -bQM -bQM -bQM -bQM -bQM +bLJ +iYw +wzE +hZR +hZR +hZR +wzE wzE kqC -dHD +fCJ bPn fHo ioc @@ -70046,7 +61782,7 @@ stw wQg qet mKp -nqN +ceC qJv bqF tNF @@ -70253,15 +61989,15 @@ kjX ueP gag hQj -nqN -nqN -nqN -nqN -nqN -nqN +uGY +uGY +uGY +uGY +uGY +ceC +ceC +ceC ceC -nqN -nqN ceC unz gag @@ -70653,7 +62389,7 @@ srp bqD cAJ xbM -fHo +hTN kqC rzp tKk @@ -70694,7 +62430,7 @@ uGY ppq ubP ihB -nqN +uGY lJx fAf fAf @@ -70865,7 +62601,7 @@ mGr upY dHD xbM -fHo +hTN kqC qLi dpe @@ -71077,7 +62813,7 @@ mGr upY dHD xbM -fHo +voO kqC kqC kqC @@ -71104,7 +62840,7 @@ qdE uGY ltQ ltQ -nqN +uGY ltQ ayo uGY @@ -71290,9 +63026,9 @@ upY dHD xbM fHo -kqC -sfu -jyF +ioc +ioc +ioc kqC sfu iEG @@ -71316,7 +63052,7 @@ uGY uGY fRq fRq -nqN +uGY fRq ygr xGt @@ -71502,9 +63238,9 @@ iox dHD xbM fHo -kqC -qNF -bjt +ioc +ioc +ioc kqC qNF mDO @@ -71713,10 +63449,10 @@ iYw izh dHD xbM -voO -kqC -ryJ -end +fHo +ioc +ioc +kgN kqC ryJ end @@ -71754,7 +63490,7 @@ uGY ceC uGY uGY -nqN +uGY qQd jwK jwK @@ -71916,14 +63652,14 @@ aeI nQu hCh sKY -hTN -fyC -qOk -mKS -erT -wzE +cAW +cAW +cAW +cAW +cAW wzE -dHD +kqC +fPl xbM fHo ioc @@ -71947,8 +63683,8 @@ dCM dCM dCM nqN -nqN -nqN +uGY +uGY uxv ceC ceC @@ -72128,14 +63864,14 @@ aeI nQu hCh sKY -dxl -afk -afk -afk -ghg +cAW +cAW +cAW wzE wzE -dHD +wzE +kqC +nBb xbM fHo ioc @@ -72340,19 +64076,19 @@ nQu bVE iYw iYw -urJ -afk -hkh -afk -tCZ -pcu +cAW +cAW +wzE wzE +cQf +xbM +dxl dHD xbM -voO -kqC -ryJ -end +fHo +ioc +ioc +kgN kqC ryJ end @@ -72551,20 +64287,20 @@ eMI nQu bVE iYw -jKI -mdJ -afk -afk -afk -xMW -jlH +cAW +cAW +cAW wzE +bki +xbM +xbM +dxl cPh xbM fHo -kqC -rzp -mwP +ioc +ioc +ioc kqC rzp ldz @@ -72765,18 +64501,18 @@ aPv iYw iYw iYw -fCJ -llQ -jKI -bUB -bQM +cAW wzE -nBb +xbM +xbM +xbM +ioc +dHD xbM fHo -kqC -qLi -dpe +ioc +ioc +ioc kqC qLi dpe @@ -72979,16 +64715,16 @@ vOZ iYw sKY wzE -wzE -wzE -wzE -wzE -cQf +xbM +xbM +xbM +ioc +dHD jpx fHo -kqC -kqC -kqC +ioc +ioc +ioc kqC kqC kqC @@ -73029,7 +64765,7 @@ nZB nZB iTt wQN -wSm +xnU wSm wSm wSm @@ -73047,7 +64783,7 @@ wSm wSm wSm wSm -wSm +xnU wQN eAM wSm @@ -73194,13 +64930,13 @@ oFI mCe xbM sJP -kqC +ioc dHD xbM fHo -kqC -sfu -jyF +ioc +ioc +ioc kqC sfu jyF @@ -73242,7 +64978,6 @@ nZB gBe wSm wSm -xnU wSm wSm wSm @@ -73258,7 +64993,8 @@ wSm wSm wSm wSm -xnU +wSm +wSm wSm wSm eSF @@ -73410,9 +65146,9 @@ ioc dHD xbM fHo -kqC -qNF -mDO +ioc +ioc +ioc kqC qNF eub @@ -73621,10 +65357,10 @@ xbM ioc nbP xbM -voO -kqC -cRB -end +fHo +ioc +ioc +kgN kqC ryJ end @@ -73829,7 +65565,7 @@ bce wzE kqC ioc -fPl +ioc kqC oFp xbM @@ -74265,7 +66001,7 @@ kqC ryJ end kqC -iCf +nBb xbM voO kqC @@ -74938,7 +66674,6 @@ nZB gBe wSm wSm -xnU wSm wSm wSm @@ -74954,7 +66689,8 @@ wSm wSm wSm wSm -xnU +wSm +wSm wSm wSm eSF @@ -75108,12 +66844,12 @@ xbM bkQ xbM qNF -qSz +dHD kqC rkp iKy kqC -utG +dHD xbM jbm xbM @@ -75149,7 +66885,7 @@ nZB nZB bne wQN -wSm +xnU wSm wSm wSm @@ -75167,7 +66903,7 @@ wSm wSm wSm wSm -wSm +xnU wQN xrH wSm @@ -75325,7 +67061,7 @@ kqC qNF efW kqC -bki +qNF xRI iXq xRI @@ -75736,11 +67472,11 @@ ioc ioc ioc qNF -xRI -xRI -xRI nAK xbM +xbM +xbM +xbM jET xbM xbM @@ -75751,12 +67487,12 @@ elO hZR bQM hZR -jvi +iCf rzp vds vds vds -elO +rLJ jvi duF jTN @@ -75948,9 +67684,9 @@ kqC ecd kqC kqC -cRB -end -kqC +dHD +xbM +xbM pHx xbM eNa @@ -76162,8 +67898,8 @@ vRA kqC fLb ayW -kqC -dHD +xbM +xbM xbM rYK kqC @@ -76175,7 +67911,7 @@ end wzE bQM hZR -jvi +qSz dHD eNa rwK @@ -76374,8 +68110,8 @@ arl oFI kCT opj -kqC -dHD +xRI +nAK xbM fHo kqC @@ -77447,7 +69183,7 @@ end kqC wzE pah -kwL +vNQ xbM iCN qOq @@ -77658,14 +69394,14 @@ vds elO ioc duF -koy +hQv gsL mOI xbM qOq xbM xbM -ckx +gFj sNN goG tOM @@ -77878,7 +69614,7 @@ qOq huG xbM pah -mbH +rmJ goG tOM tOM @@ -80858,8 +72594,8 @@ jyo mxQ mxQ mxQ -tVf -oEn +woB +mok mxQ pRx tOM @@ -82122,8 +73858,8 @@ gbf pYB pYB gbf -pWl -ogs +blf +fDW mxQ jjg mxQ @@ -82549,7 +74285,7 @@ gbf iYe bnx siy -nBw +nAV mxQ mxQ vUZ @@ -82762,7 +74498,7 @@ doQ upM vjR nBw -ogs +fDW jjg cBn rxM @@ -82961,7 +74697,7 @@ tOM xpM mxQ mxQ -jzP +vZe ydK jzP tlj @@ -82974,7 +74710,7 @@ taS jEa hPu ydK -pWl +blf mxQ mxQ jLD @@ -84021,7 +75757,7 @@ tOM xpM mxQ mxQ -pYB +fEv uTw pYB pYB @@ -84233,7 +75969,7 @@ tOM rdt rsQ mxQ -gbf +lWy gbf gbf jMv @@ -85687,7 +77423,7 @@ vlU xSz uYi lRT -deL +dzl dzl dzl dzl @@ -88410,10 +80146,10 @@ xDw lRT lRT lRT -ukR -ukR -ukR -ukR +taY +taY +taY +taY lRT lRT lRT @@ -88846,7 +80582,7 @@ qaL nGZ uNs iOa -xeO +cCx xeO xeO xeO @@ -88864,7 +80600,7 @@ xeO xeO xeO xeO -xeO +cCx iOa eLB uYi @@ -89059,7 +80795,6 @@ pYD ehy xeO xeO -cCx xeO xeO xeO @@ -89075,7 +80810,8 @@ xeO xeO xeO xeO -cCx +xeO +xeO xeO xeO oGR @@ -90755,7 +82491,6 @@ pqY ehy doA xeO -cCx xeO xeO xeO @@ -90771,7 +82506,8 @@ xeO xeO xeO xeO -cCx +xeO +xeO xeO xeO kIh @@ -90966,7 +82702,7 @@ qaL nGZ aTe iOa -xeO +cCx xeO xeO xeO @@ -90984,7 +82720,7 @@ xeO xeO xeO xeO -xeO +cCx iOa rrD uYi @@ -92045,7 +83781,7 @@ xeO xfb yat xeO -oIg +eXY nGZ nGZ rJW diff --git a/maps/map_files/FOP_v3_Sciannex/sprinkles/10.scavshipholder.dmm b/maps/map_files/FOP_v3_Sciannex/sprinkles/10.scavshipholder.dmm index b2a660473a19..410ef56b0c1e 100644 --- a/maps/map_files/FOP_v3_Sciannex/sprinkles/10.scavshipholder.dmm +++ b/maps/map_files/FOP_v3_Sciannex/sprinkles/10.scavshipholder.dmm @@ -13,9 +13,7 @@ }, /area/template_noop) "aW" = ( -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/template_noop) "bh" = ( /turf/closed/wall/strata_ice/jungle{ @@ -31,21 +29,15 @@ /area/template_noop) "bC" = ( /obj/item/tool/wet_sign, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/template_noop) "eF" = ( /obj/structure/largecrate/random/barrel/red, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/template_noop) "fE" = ( /obj/structure/machinery/door/airlock/prison_hatch/autoname, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/template_noop) "fI" = ( /obj/structure/machinery/light/small{ @@ -73,9 +65,7 @@ pixel_y = 7; pixel_x = -1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/template_noop) "fN" = ( /obj/structure/largecrate/random/barrel{ @@ -96,9 +86,7 @@ /obj/structure/barricade/sandbags/wired{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/template_noop) "gi" = ( /obj/structure/girder/displaced, @@ -106,9 +94,7 @@ /area/template_noop) "hP" = ( /obj/structure/inflatable, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/template_noop) "iT" = ( /obj/structure/barricade/metal/wired{ @@ -118,9 +104,7 @@ pixel_x = -15; pixel_y = 2 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/template_noop) "iU" = ( /turf/open/floor/plating/plating_catwalk/prison, @@ -134,9 +118,7 @@ "kA" = ( /obj/structure/bed/chair/dropship/pilot, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/template_noop) "kO" = ( /obj/structure/machinery/light/small{ @@ -145,9 +127,7 @@ pixel_y = 10 }, /obj/structure/largecrate/supply/weapons/pistols, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/template_noop) "kR" = ( /obj/structure/machinery/light/small{ @@ -159,9 +139,7 @@ pixel_y = 29; pixel_x = 5 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/template_noop) "lI" = ( /obj/structure/largecrate/random/barrel{ @@ -251,9 +229,7 @@ /area/template_noop) "qn" = ( /obj/structure/largecrate/random/barrel/blue, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/template_noop) "qI" = ( /turf/closed/shuttle/ert{ @@ -284,9 +260,7 @@ pixel_x = -7; pixel_y = -1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/template_noop) "tp" = ( /turf/open/floor/almayer, @@ -304,9 +278,7 @@ /area/template_noop) "vI" = ( /obj/structure/closet/secure_closet/engineering_personal, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/template_noop) "wO" = ( /turf/closed/shuttle/ert{ @@ -380,10 +352,7 @@ /obj/structure/bed/chair/comfy{ dir = 4 }, -/turf/open/organic/grass{ - desc = "It'll get in your shoes no matter what you do."; - name = "astroturf" - }, +/turf/open/organic/grass/astroturf, /area/template_noop) "EW" = ( /turf/closed/shuttle/ert{ @@ -393,15 +362,10 @@ /area/template_noop) "Fd" = ( /obj/structure/largecrate/random/barrel/yellow, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/template_noop) "FV" = ( -/turf/open/organic/grass{ - desc = "It'll get in your shoes no matter what you do."; - name = "astroturf" - }, +/turf/open/organic/grass/astroturf, /area/template_noop) "Gu" = ( /obj/structure/prop/structure_lattice{ @@ -412,9 +376,7 @@ layer = 3.1; pixel_y = 10 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/template_noop) "Hb" = ( /obj/structure/machinery/light/small{ @@ -462,18 +424,13 @@ icon_state = "fullgrass_2"; name = "Fiberbush(tm) tubers" }, -/turf/open/organic/grass{ - desc = "It'll get in your shoes no matter what you do."; - name = "astroturf" - }, +/turf/open/organic/grass/astroturf, /area/template_noop) "JP" = ( /obj/structure/machinery/door/airlock/prison_hatch/autoname{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/template_noop) "Ki" = ( /obj/effect/landmark/survivor_spawner, @@ -490,9 +447,7 @@ /obj/item/clothing/head/soft/ferret{ pixel_y = 7 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/template_noop) "Ky" = ( /obj/structure/bed, @@ -553,9 +508,7 @@ /obj/item/device/healthanalyzer{ pixel_y = -9 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/template_noop) "ON" = ( /turf/closed/shuttle/ert{ @@ -574,9 +527,7 @@ /turf/open/floor/plating/plating_catwalk, /area/template_noop) "QZ" = ( -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/template_noop) "Sh" = ( /obj/structure/machinery/light/small{ @@ -597,10 +548,7 @@ /area/template_noop) "TS" = ( /obj/structure/machinery/door/airlock/prison_hatch/autoname, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/template_noop) "Uh" = ( /turf/closed/shuttle/ert{ @@ -621,9 +569,7 @@ /obj/structure/barricade/metal/wired{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/template_noop) "Vh" = ( /turf/closed/wall/r_wall/prison_unmeltable, @@ -633,9 +579,7 @@ /obj/structure/machinery/defenses/sentry/premade/dumb{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/template_noop) "VD" = ( /obj/structure/bed, diff --git a/maps/map_files/FOP_v3_Sciannex/sprinkles/15.birthdayparty.dmm b/maps/map_files/FOP_v3_Sciannex/sprinkles/15.birthdayparty.dmm index 826f67364751..4013f2605422 100644 --- a/maps/map_files/FOP_v3_Sciannex/sprinkles/15.birthdayparty.dmm +++ b/maps/map_files/FOP_v3_Sciannex/sprinkles/15.birthdayparty.dmm @@ -1,27 +1,21 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE "a" = ( /obj/structure/barricade/wooden, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/template_noop) "b" = ( /obj/item/reagent_container/food/drinks/bottle/gin{ pixel_y = -6; pixel_x = -9 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/template_noop) "e" = ( /obj/effect/landmark/corpsespawner/prison_security, /obj/item/clothing/head/cakehat{ pixel_x = -10 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/template_noop) "h" = ( /obj/structure/surface/table/woodentable/poor, @@ -33,17 +27,13 @@ pixel_x = -1; pixel_y = 10 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/template_noop) "i" = ( /obj/structure/barricade/wooden{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/template_noop) "o" = ( /obj/structure/machinery/light/double/blue{ @@ -53,18 +43,14 @@ /obj/structure/barricade/wooden{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/template_noop) "s" = ( /obj/item/weapon/broken_bottle{ pixel_x = 5; pixel_y = 2 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/template_noop) "u" = ( /turf/closed/wall/prison, @@ -76,23 +62,17 @@ /obj/structure/barricade/wooden{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/template_noop) "B" = ( /obj/structure/machinery/light/double/blue{ dir = 1; pixel_y = 21 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/template_noop) "C" = ( -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/template_noop) "E" = ( /obj/structure/surface/table/woodentable/poor, @@ -100,9 +80,7 @@ pixel_y = 14; pixel_x = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/template_noop) "G" = ( /obj/structure/surface/table/woodentable/poor, @@ -114,15 +92,11 @@ pixel_x = -3; pixel_y = 2 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/template_noop) "H" = ( /obj/effect/decal/cleanable/vomit, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/template_noop) "K" = ( /obj/structure/prop/souto_land/pole{ @@ -130,9 +104,7 @@ pixel_x = 10; pixel_y = 16 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/template_noop) "L" = ( /obj/structure/surface/table/woodentable/poor, @@ -144,25 +116,19 @@ pixel_y = 2; pixel_x = 2 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/template_noop) "N" = ( /obj/item/stack/sheet/wood{ amount = 10 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/template_noop) "P" = ( /obj/structure/barricade/wooden{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/template_noop) "U" = ( /obj/structure/prop/souto_land/pole{ @@ -177,9 +143,7 @@ pixel_x = 8; pixel_y = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/template_noop) "Y" = ( /obj/structure/machinery/light/double/blue{ @@ -188,17 +152,13 @@ /obj/structure/barricade/wooden{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/template_noop) "Z" = ( /obj/structure/barricade/wooden{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/template_noop) (1,1,1) = {" diff --git a/maps/map_files/FOP_v3_Sciannex/sprinkles/15.nogear.dmm b/maps/map_files/FOP_v3_Sciannex/sprinkles/15.nogear.dmm index f9a376869849..62e24f138207 100644 --- a/maps/map_files/FOP_v3_Sciannex/sprinkles/15.nogear.dmm +++ b/maps/map_files/FOP_v3_Sciannex/sprinkles/15.nogear.dmm @@ -14,23 +14,18 @@ req_access = null }, /obj/item/clothing/under/color/orange, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/template_noop) "e" = ( /turf/closed/wall/prison, /area/template_noop) "g" = ( /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/template_noop) "i" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony/autoname{ dir = 1; - req_access = null; req_one_access = null }, /turf/open/floor/plating/prison, @@ -42,9 +37,7 @@ /obj/item/clothing/shoes/galoshes{ pixel_y = -6 }, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/template_noop) "l" = ( /obj/structure/closet/secure_closet/guncabinet{ @@ -53,9 +46,7 @@ /obj/item/clothing/shoes/dress/commander{ pixel_y = -9 }, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/template_noop) "m" = ( /obj/structure/closet/secure_closet/security_empty, @@ -63,21 +54,15 @@ dir = 8 }, /obj/item/storage/box/flashbangs, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/template_noop) "n" = ( /obj/item/stack/folding_barricade, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/template_noop) "r" = ( /obj/structure/reagent_dispensers/water_cooler, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/template_noop) "s" = ( /obj/structure/machinery/power/apc{ @@ -95,9 +80,7 @@ /obj/structure/window/reinforced{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/template_noop) "v" = ( /obj/item/clothing/under/color/orange, @@ -108,18 +91,14 @@ dir = 1 }, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/template_noop) "x" = ( /obj/effect/decal/cleanable/blood/oil, /turf/open/floor/prison, /area/template_noop) "y" = ( -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/template_noop) "z" = ( /obj/item/clothing/shoes/black{ @@ -134,9 +113,7 @@ pixel_x = -7; pixel_y = -15 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/template_noop) "C" = ( /obj/structure/machinery/light/double/blue{ @@ -159,18 +136,14 @@ "F" = ( /obj/item/prop/helmetgarb/riot_shield, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/template_noop) "I" = ( /obj/structure/closet/secure_closet/guncabinet{ req_access = null }, /obj/effect/spawner/random/gun/pistol/lowchance, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/template_noop) "J" = ( /obj/structure/window/reinforced{ @@ -180,9 +153,7 @@ /area/template_noop) "K" = ( /obj/item/clothing/under/color/orange, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/template_noop) "L" = ( /obj/structure/window/framed/prison/reinforced, @@ -202,9 +173,7 @@ /area/template_noop) "U" = ( /obj/effect/landmark/corpsespawner/ua_riot, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/template_noop) "V" = ( /turf/closed/wall/r_wall/prison_unmeltable, @@ -217,15 +186,11 @@ pixel_x = 2; pixel_y = -9 }, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/template_noop) "X" = ( /obj/item/frame/rack, -/turf/open/floor/prison{ - icon_state = "redfull" - }, +/turf/open/floor/prison/redfull, /area/template_noop) "Z" = ( /obj/effect/landmark/corpsespawner/ua_riot, diff --git a/maps/map_files/FOP_v3_Sciannex/sprinkles/20.gamertime.dmm b/maps/map_files/FOP_v3_Sciannex/sprinkles/20.gamertime.dmm index c9f19cbe91e5..eb7b53bac0de 100644 --- a/maps/map_files/FOP_v3_Sciannex/sprinkles/20.gamertime.dmm +++ b/maps/map_files/FOP_v3_Sciannex/sprinkles/20.gamertime.dmm @@ -3,10 +3,7 @@ /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/prison{ - dir = 5; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/northeast, /area/template_noop) "aA" = ( /obj/effect/landmark/monkey_spawn, @@ -23,9 +20,7 @@ /turf/open/floor/prison, /area/template_noop) "fi" = ( -/turf/open/floor/prison{ - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2, /area/template_noop) "gB" = ( /obj/structure/surface/table/reinforced/prison, @@ -42,16 +37,11 @@ /area/template_noop) "hT" = ( /obj/effect/decal/cleanable/blood/oil/streak, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/north, /area/template_noop) "jh" = ( /obj/item/trash/pistachios, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/template_noop) "ji" = ( /obj/structure/surface/table/reinforced/prison, @@ -64,24 +54,18 @@ pixel_y = 18; desc = "Wait, why won't it work with my computer?" }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/template_noop) "kU" = ( /obj/structure/machinery/deployable/barrier, /turf/open/floor/plating/prison, /area/template_noop) "lm" = ( -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/template_noop) "mN" = ( /obj/structure/machinery/computer3/server/rack, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/template_noop) "na" = ( /obj/structure/surface/table/reinforced/prison, @@ -97,29 +81,18 @@ /obj/item/reagent_container/food/drinks/cans/dr_gibb{ pixel_y = 10 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/north, /area/template_noop) "nZ" = ( /obj/structure/machinery/deployable/barrier, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/template_noop) "pq" = ( /obj/structure/prop/dam/crane, -/turf/open/floor/prison{ - dir = 8; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/west, /area/template_noop) "sl" = ( -/turf/open/floor/prison{ - dir = 6; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/southeast, /area/template_noop) "sF" = ( /obj/structure/surface/table/reinforced/prison, @@ -131,83 +104,55 @@ pixel_x = 4; pixel_y = -8 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/west, /area/template_noop) "tg" = ( /obj/effect/decal/cleanable/blood/oil/streak, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/template_noop) "tn" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/west, /area/template_noop) "tH" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/north, /area/template_noop) "uf" = ( /obj/structure/bed/chair{ dir = 4 }, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 8; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/west, /area/template_noop) "ur" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/faxmachine, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/template_noop) "uD" = ( /obj/item/trash/wy_chips_pepper, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/template_noop) "uO" = ( /obj/item/stock_parts/manipulator/pico, -/turf/open/floor/prison{ - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2, /area/template_noop) "va" = ( /obj/structure/bed/chair{ dir = 4 }, /obj/effect/landmark/corpsespawner/ua_riot, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/east, /area/template_noop) "wj" = ( /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/northwest, /area/template_noop) "xH" = ( /obj/structure/bed/chair{ dir = 4 }, /obj/effect/landmark/corpsespawner/ua_riot/burst, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/template_noop) "yS" = ( /turf/closed/wall/prison, @@ -218,27 +163,17 @@ }, /obj/effect/decal/cleanable/blood/oil/streak, /obj/effect/landmark/corpsespawner/prisoner, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/template_noop) "zL" = ( -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/template_noop) "CE" = ( /obj/structure/machinery/deployable/barrier, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/southwest, /area/template_noop) "CO" = ( -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/northwest, /area/template_noop) "CV" = ( /obj/structure/surface/table/reinforced/prison, @@ -246,17 +181,13 @@ dir = 8; icon_state = "commb" }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/template_noop) "DF" = ( /obj/structure/bed/chair/comfy, /obj/effect/decal/cleanable/blood, /obj/effect/landmark/corpsespawner/engineer, -/turf/open/floor/prison{ - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2, /area/template_noop) "DV" = ( /obj/structure/machinery/light/double/blue{ @@ -264,9 +195,7 @@ pixel_x = 10; pixel_y = -3 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/template_noop) "El" = ( /obj/structure/bed/chair{ @@ -276,9 +205,7 @@ /area/template_noop) "Ep" = ( /obj/structure/machinery/door/airlock/prison_hatch/autoname, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/template_noop) "Fp" = ( /turf/open/floor/prison, @@ -288,16 +215,11 @@ dir = 4 }, /obj/effect/decal/cleanable/blood/oil/streak, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/template_noop) "Jv" = ( /obj/item/trash/chunk, -/turf/open/floor/prison{ - dir = 8; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/west, /area/template_noop) "Kd" = ( /obj/structure/prop/structure_lattice{ @@ -309,9 +231,7 @@ layer = 3.1; pixel_y = 10 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/template_noop) "Mn" = ( /obj/structure/machinery/light/double/blue{ @@ -319,9 +239,7 @@ pixel_x = -10; pixel_y = 13 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/template_noop) "MZ" = ( /obj/structure/surface/table/reinforced/prison, @@ -330,17 +248,11 @@ icon_state = "commb"; layer = 2.99 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/southwest, /area/template_noop) "Ng" = ( /obj/structure/machinery/deployable/barrier, -/turf/open/floor/prison{ - dir = 6; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/southeast, /area/template_noop) "Ot" = ( /obj/structure/surface/table/reinforced/prison, @@ -348,17 +260,12 @@ dir = 4; icon_state = "commb" }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/template_noop) "Oy" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/trash/chips, -/turf/open/floor/prison{ - dir = 5; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/northeast, /area/template_noop) "OG" = ( /turf/closed/wall/mineral/bone_resin, @@ -387,23 +294,16 @@ pixel_y = 21 }, /obj/item/device/flashlight/lamp/tripod, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/template_noop) "QF" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/newspaper, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/template_noop) "QG" = ( -/turf/open/floor/prison{ - dir = 5; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/northeast, /area/template_noop) "Rd" = ( /obj/structure/bed/chair{ @@ -411,19 +311,13 @@ }, /obj/effect/decal/cleanable/blood, /obj/effect/landmark/corpsespawner/prisoner, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/west, /area/template_noop) "RW" = ( /turf/open/floor/bluegrid, /area/template_noop) "Ss" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/southwest, /area/template_noop) "SF" = ( /obj/structure/surface/table/reinforced/prison, @@ -436,32 +330,24 @@ pixel_x = 8; pixel_y = 16 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/template_noop) "Tl" = ( /obj/structure/computer3frame, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/template_noop) "TI" = ( /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/template_noop) "Vc" = ( /obj/structure/machinery/light/double/blue{ dir = 1; pixel_y = 21 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/template_noop) "VZ" = ( /obj/structure/surface/table/reinforced/prison, @@ -481,28 +367,18 @@ dir = 4; icon_state = "commb" }, -/turf/open/floor/prison{ - dir = 6; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/southeast, /area/template_noop) "WV" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/east, /area/template_noop) "XD" = ( /obj/structure/machinery/deployable/barrier, -/turf/open/floor/prison{ - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2, /area/template_noop) "Yj" = ( /obj/structure/bed/chair/comfy, -/turf/open/floor/prison{ - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2, /area/template_noop) "Za" = ( /obj/structure/surface/table/reinforced/prison, @@ -518,17 +394,12 @@ pixel_y = 13 }, /obj/structure/machinery/computer3/server/rack, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/template_noop) "Zn" = ( /obj/effect/decal/cleanable/blood/oil, /obj/structure/machinery/deployable/barrier, -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/east, /area/template_noop) (1,1,1) = {" diff --git a/maps/map_files/FOP_v3_Sciannex/sprinkles/20.medicalhold.dmm b/maps/map_files/FOP_v3_Sciannex/sprinkles/20.medicalhold.dmm index 61fd7320e1ce..8ec3365773a2 100644 --- a/maps/map_files/FOP_v3_Sciannex/sprinkles/20.medicalhold.dmm +++ b/maps/map_files/FOP_v3_Sciannex/sprinkles/20.medicalhold.dmm @@ -4,9 +4,7 @@ layer = 2.7; dir = 4 }, -/turf/open/floor/prison{ - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen, /area/template_noop) "aZ" = ( /obj/structure/bed/roller, @@ -14,10 +12,7 @@ pixel_y = 19 }, /obj/item/bedsheet/medical, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/template_noop) "bl" = ( /obj/structure/machinery/light/double/blue{ @@ -25,27 +20,18 @@ pixel_x = 10; pixel_y = 13 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/east, /area/template_noop) "bm" = ( /obj/effect/decal/medical_decals{ icon_state = "triagedecalbottom" }, /obj/structure/inflatable/door, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/template_noop) "bs" = ( /obj/structure/inflatable, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/template_noop) "bv" = ( /obj/structure/stairs/perspective{ @@ -62,10 +48,7 @@ dir = 4; pixel_y = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/template_noop) "cO" = ( /obj/structure/machinery/door/airlock/almayer/marine{ @@ -76,43 +59,29 @@ /area/template_noop) "dg" = ( /obj/effect/decal/cleanable/blood/drip, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/template_noop) "dp" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/east, /area/template_noop) "dK" = ( /obj/structure/machinery/medical_pod/sleeper, -/turf/open/floor/prison{ - dir = 6; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/southeast, /area/template_noop) "eb" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony/autoname{ dir = 1; - req_access = null; req_one_access = null }, /turf/open/floor/plating/prison, /area/template_noop) "eO" = ( /obj/structure/largecrate/supply/supplies/tables_racks, -/turf/open/floor/prison{ - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen, /area/template_noop) "fn" = ( /obj/structure/inflatable, -/turf/open/floor/prison{ - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen, /area/template_noop) "go" = ( /obj/structure/sign/prop3{ @@ -122,79 +91,52 @@ /area/template_noop) "gC" = ( /obj/structure/largecrate/supply/medicine/medkits, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/template_noop) "ir" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22" }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/west, /area/template_noop) "it" = ( -/turf/open/floor/prison{ - dir = 5; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/northeast, /area/template_noop) "iK" = ( /obj/structure/janitorialcart, /turf/open/floor/prison, /area/template_noop) "jy" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/west, /area/template_noop) "kE" = ( /turf/closed/wall/prison, /area/template_noop) "kG" = ( /obj/structure/inflatable/popped/door, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/template_noop) "kK" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/template_noop) "kY" = ( /obj/effect/decal/medical_decals{ icon_state = "triagedecalleft" }, /obj/structure/inflatable/door, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/template_noop) "kZ" = ( /obj/structure/inflatable/door, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/template_noop) "lm" = ( /obj/effect/decal/medical_decals{ icon_state = "triagedecalbottom" }, /obj/structure/inflatable/popped, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/template_noop) "nj" = ( /obj/structure/bed/chair/janicart, @@ -212,17 +154,11 @@ /area/template_noop) "nx" = ( /obj/effect/decal/cleanable/blood/gibs/xeno/limb, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreencorner" - }, +/turf/open/floor/prison/whitegreencorner/east, /area/template_noop) "nJ" = ( /obj/effect/decal/cleanable/vomit, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/template_noop) "nR" = ( /obj/structure/platform{ @@ -230,10 +166,7 @@ }, /obj/effect/decal/cleanable/blood/drip, /obj/structure/largecrate/random/barrel, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/north, /area/template_noop) "nX" = ( /obj/structure/bed/roller, @@ -242,10 +175,7 @@ }, /obj/item/bedsheet/medical, /obj/effect/decal/cleanable/vomit, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/template_noop) "of" = ( /obj/structure/surface/table/reinforced/prison, @@ -258,10 +188,7 @@ pixel_y = 6; layer = 3.1 }, -/turf/open/floor/prison{ - dir = 6; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/southeast, /area/template_noop) "oy" = ( /obj/structure/machinery/light/double/blue{ @@ -269,45 +196,27 @@ pixel_x = 10; pixel_y = -3 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/template_noop) "ph" = ( /obj/structure/inflatable/door, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/template_noop) "pR" = ( /obj/structure/inflatable, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/east, /area/template_noop) "qb" = ( /obj/structure/inflatable/popped, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/east, /area/template_noop) "qe" = ( /obj/structure/inflatable, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/west, /area/template_noop) "qS" = ( /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/template_noop) "sk" = ( /obj/structure/bed/roller, @@ -317,53 +226,33 @@ /obj/item/bedsheet/medical, /obj/effect/decal/cleanable/blood, /obj/effect/decal/cleanable/greenglow, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/template_noop) "tE" = ( /obj/structure/machinery/cm_vending/sorted/medical/no_access, /obj/structure/machinery/light/double/blue, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/template_noop) "tL" = ( /obj/structure/inflatable, -/turf/open/floor/prison{ - icon_state = "whitegreencorner" - }, +/turf/open/floor/prison/whitegreencorner, /area/template_noop) "uE" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/southwest, /area/template_noop) "uG" = ( /obj/effect/decal/prints{ pixel_y = -10 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/template_noop) "uU" = ( /obj/item/storage/pill_bottle/tramadol/skillless, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/template_noop) "vA" = ( /obj/structure/inflatable/popped, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/template_noop) "xC" = ( /obj/structure/surface/table/reinforced/prison, @@ -371,10 +260,7 @@ pixel_y = 4 }, /obj/item/storage/surgical_tray, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/template_noop) "xY" = ( /obj/structure/largecrate/random/case/double{ @@ -389,37 +275,23 @@ pixel_y = -17; pixel_x = -5 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/template_noop) "zm" = ( /obj/structure/machinery/optable, /obj/item/bedsheet/rainbow, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen, /area/template_noop) "zG" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreencorner" - }, +/turf/open/floor/prison/whitegreencorner/west, /area/template_noop) "Be" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/template_noop) "BS" = ( /obj/effect/decal/cleanable/vomit, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/north, /area/template_noop) "Cr" = ( /obj/structure/largecrate/random/barrel/yellow{ @@ -437,10 +309,7 @@ pixel_y = 6; layer = 2.7 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/template_noop) "CA" = ( /obj/structure/extinguisher_cabinet, @@ -448,10 +317,7 @@ /area/template_noop) "Df" = ( /obj/structure/largecrate/supply/supplies/water, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/west, /area/template_noop) "Es" = ( /obj/item/reagent_container/glass/bucket/mopbucket, @@ -463,10 +329,7 @@ dir = 4; layer = 2.7 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/template_noop) "ES" = ( /obj/structure/platform{ @@ -476,10 +339,7 @@ icon_state = "triagedecalbottomleft" }, /obj/structure/inflatable, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/template_noop) "EZ" = ( /obj/structure/machinery/shower{ @@ -515,10 +375,7 @@ "GL" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/storage/fancy/vials/random, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/template_noop) "GT" = ( /obj/structure/machinery/cryo_cell, @@ -532,26 +389,17 @@ icon_state = "triagedecalbottomleft" }, /obj/structure/inflatable, -/turf/open/floor/prison{ - dir = 9; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/northwest, /area/template_noop) "Hw" = ( /obj/item/ammo_casing{ icon_state = "cartridge_1" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/template_noop) "HS" = ( /obj/structure/inflatable/door, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/east, /area/template_noop) "IK" = ( /obj/structure/platform{ @@ -571,10 +419,7 @@ layer = 2.9; pixel_y = -8 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/north, /area/template_noop) "JJ" = ( /obj/structure/platform_decoration{ @@ -584,29 +429,21 @@ dir = 4; layer = 2.8 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/north, /area/template_noop) "JL" = ( /obj/structure/platform_decoration{ dir = 1 }, /obj/structure/inflatable, -/turf/open/floor/prison{ - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen, /area/template_noop) "JW" = ( /obj/effect/decal/medical_decals{ icon_state = "triagedecalbottom" }, /obj/structure/inflatable/popped, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/west, /area/template_noop) "Kk" = ( /obj/structure/machinery/door/airlock/almayer/marine{ @@ -622,30 +459,19 @@ /obj/item/reagent_container/food/drinks/coffee{ pixel_y = 13 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/template_noop) "Ky" = ( /obj/structure/inflatable/popped/door, -/turf/open/floor/prison{ - icon_state = "whitegreencorner" - }, +/turf/open/floor/prison/whitegreencorner, /area/template_noop) "KF" = ( /obj/effect/landmark/monkey_spawn, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/template_noop) "KJ" = ( /obj/structure/inflatable/door, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreencorner" - }, +/turf/open/floor/prison/whitegreencorner/east, /area/template_noop) "Mi" = ( /obj/structure/machinery/light/double/blue{ @@ -654,10 +480,7 @@ pixel_y = 13 }, /obj/structure/largecrate/supply/supplies/flares, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/southwest, /area/template_noop) "NV" = ( /obj/structure/machinery/light/double/blue{ @@ -666,10 +489,7 @@ pixel_y = -3 }, /obj/structure/largecrate/supply/medicine/blood, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/east, /area/template_noop) "Od" = ( /turf/closed/wall/r_wall/prison_unmeltable, @@ -682,10 +502,7 @@ /obj/effect/decal/cleanable/mucus{ pixel_x = -16 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/template_noop) "OH" = ( /obj/structure/largecrate/random/case/double{ @@ -697,31 +514,19 @@ /obj/structure/largecrate/random/case/double{ pixel_y = -18 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/template_noop) "Pa" = ( /obj/structure/largecrate/supply/weapons/pistols, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/template_noop) "Pd" = ( /obj/structure/machinery/medical_pod/bodyscanner, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/southwest, /area/template_noop) "Pt" = ( /obj/structure/inflatable/popped/door, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/template_noop) "PE" = ( /obj/structure/machinery/door/airlock/prison_hatch/autoname{ @@ -734,23 +539,14 @@ icon_state = "triagedecalbottom" }, /obj/structure/inflatable, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/template_noop) "PV" = ( /obj/structure/inflatable/popped, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreencorner" - }, +/turf/open/floor/prison/whitegreencorner/west, /area/template_noop) "QG" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/north, /area/template_noop) "Ro" = ( /obj/structure/machinery/shower{ @@ -763,10 +559,7 @@ /area/template_noop) "RG" = ( /obj/structure/largecrate/supply/medicine/iv, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/template_noop) "Sz" = ( /obj/structure/platform{ @@ -778,20 +571,14 @@ layer = 3.1; pixel_y = -4 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/north, /area/template_noop) "Tb" = ( /obj/structure/bed/chair{ dir = 8; layer = 2.7 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/template_noop) "TF" = ( /obj/structure/platform_decoration{ @@ -801,47 +588,31 @@ icon_state = "triagedecalleft" }, /obj/structure/inflatable, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/north, /area/template_noop) "TV" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/template_noop) "UI" = ( -/turf/open/floor/prison{ - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen, /area/template_noop) "US" = ( /obj/effect/decal/medical_decals{ icon_state = "triagedecalleft" }, /obj/structure/inflatable, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/template_noop) "Va" = ( /obj/structure/extinguisher_cabinet, /turf/closed/wall/prison, /area/template_noop) "Vp" = ( -/turf/open/floor/prison{ - dir = 9; - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen/northwest, /area/template_noop) "VD" = ( /obj/structure/machinery/light/double/blue, -/turf/open/floor/prison{ - icon_state = "whitegreen" - }, +/turf/open/floor/prison/whitegreen, /area/template_noop) "WP" = ( /obj/structure/platform_decoration{ @@ -850,34 +621,22 @@ /obj/effect/decal/medical_decals{ icon_state = "triagedecaldir" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/template_noop) "WY" = ( /obj/structure/inflatable, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/template_noop) "Xl" = ( /obj/effect/decal/medical_decals{ icon_state = "triagedecalleft" }, /obj/structure/inflatable/popped/door, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/template_noop) "Yy" = ( /obj/structure/largecrate/supply/supplies/mre, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/template_noop) "Yz" = ( /obj/structure/window/framed/prison/cell, @@ -890,10 +649,7 @@ "Zp" = ( /obj/effect/decal/cleanable/blood/drip, /obj/structure/machinery/defenses/bell_tower/md, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/template_noop) (1,1,1) = {" diff --git a/maps/map_files/FOP_v3_Sciannex/sprinkles/20.poolparty.dmm b/maps/map_files/FOP_v3_Sciannex/sprinkles/20.poolparty.dmm index 34dc51f305fb..f30a796cdd74 100644 --- a/maps/map_files/FOP_v3_Sciannex/sprinkles/20.poolparty.dmm +++ b/maps/map_files/FOP_v3_Sciannex/sprinkles/20.poolparty.dmm @@ -15,9 +15,7 @@ /area/template_noop) "bO" = ( /obj/item/storage/belt/marine/quackers, -/turf/open/gm/river{ - name = "pool" - }, +/turf/open/gm/river/pool, /area/template_noop) "cb" = ( /obj/item/trash/barcardine{ @@ -35,9 +33,7 @@ pixel_y = -7; pixel_x = -1 }, -/turf/open/floor/prison{ - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2, /area/template_noop) "cq" = ( /obj/structure/surface/table/reinforced/prison, @@ -53,44 +49,31 @@ /area/template_noop) "cK" = ( /obj/structure/platform_decoration, -/turf/open/floor/prison{ - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2, /area/template_noop) "cU" = ( /obj/structure/machinery/power/apc, /turf/open/floor/wood, /area/template_noop) "dB" = ( -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/northwest, /area/template_noop) "ef" = ( /obj/item/toy/beach_ball, -/turf/open/gm/river{ - name = "pool" - }, +/turf/open/gm/river/pool, /area/template_noop) "el" = ( /obj/structure/prop/souto_land/streamer{ dir = 6 }, /obj/effect/decal/cleanable/blood/oil/streak, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/north, /area/template_noop) "fv" = ( /obj/item/toy/crossbow_ammo{ pixel_x = -16 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkbrowncorners2" - }, +/turf/open/floor/prison/darkbrowncorners2/west, /area/template_noop) "fL" = ( /obj/structure/grille, @@ -105,36 +88,26 @@ /obj/structure/prop/invuln/fire{ layer = 2.9 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkbrowncorners2" - }, +/turf/open/floor/prison/darkbrowncorners2/west, /area/template_noop) "fN" = ( /obj/structure/platform{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/template_noop) "fX" = ( /turf/closed/wall/mineral/bone_resin, /area/template_noop) "gs" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/west, /area/template_noop) "gV" = ( /turf/open/space, /area/template_noop) "hf" = ( -/turf/open/gm/river{ - name = "pool" - }, +/turf/open/gm/river/pool, /area/template_noop) "hP" = ( /obj/structure/platform{ @@ -163,19 +136,13 @@ pixel_x = -13; pixel_y = -11 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/east, /area/template_noop) "is" = ( /obj/structure/platform_decoration{ dir = 1 }, -/turf/open/floor/prison{ - dir = 6; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/southeast, /area/template_noop) "iC" = ( /obj/item/tool/mop{ @@ -187,17 +154,11 @@ pixel_x = 9; pixel_y = -5 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/east, /area/template_noop) "iK" = ( /obj/effect/decal/cleanable/blood/oil/streak, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/north, /area/template_noop) "iY" = ( /obj/structure/surface/table/reinforced/prison, @@ -220,27 +181,20 @@ pixel_y = 6; pixel_x = 6 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/east, /area/template_noop) "kb" = ( /obj/item/trash/crushed_cup{ pixel_y = -65; pixel_x = 29 }, -/turf/open/gm/river{ - name = "pool" - }, +/turf/open/gm/river/pool, /area/template_noop) "kA" = ( /obj/structure/platform{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/template_noop) "lc" = ( /obj/structure/surface/table/reinforced/prison, @@ -288,16 +242,11 @@ /obj/item/trash/kepler{ pixel_x = 13 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/west, /area/template_noop) "mj" = ( /obj/structure/prop/souto_land/pole, -/turf/open/floor/prison{ - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2, /area/template_noop) "mk" = ( /obj/structure/machinery/light/double/blue{ @@ -311,10 +260,7 @@ /turf/open/floor/wood, /area/template_noop) "mq" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrowncorners2" - }, +/turf/open/floor/prison/darkbrowncorners2/north, /area/template_noop) "mu" = ( /turf/open/floor/plating/prison, @@ -327,10 +273,7 @@ pixel_x = 31; pixel_y = -16 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/west, /area/template_noop) "ni" = ( /turf/closed/wall/prison, @@ -356,9 +299,7 @@ /area/template_noop) "ou" = ( /obj/structure/platform, -/turf/open/floor/prison{ - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2, /area/template_noop) "oL" = ( /obj/structure/lattice, @@ -377,10 +318,7 @@ /obj/structure/platform{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, +/turf/open/floor/prison/bright_clean2/southwest, /area/template_noop) "pG" = ( /obj/structure/stairs/perspective{ @@ -394,10 +332,7 @@ /obj/structure/platform_decoration{ dir = 4 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/west, /area/template_noop) "ql" = ( /obj/item/trash/sosjerky{ @@ -405,10 +340,7 @@ pixel_y = -20 }, /obj/effect/decal/cleanable/blood/oil/streak, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/north, /area/template_noop) "qm" = ( /obj/structure/stairs/perspective{ @@ -440,9 +372,7 @@ /obj/structure/platform{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/template_noop) "rp" = ( /obj/item/reagent_container/glass/bucket/janibucket, @@ -452,19 +382,14 @@ /obj/item/trash/semki{ pixel_x = 15 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/north, /area/template_noop) "rt" = ( /obj/item/trash/crushed_cup{ pixel_x = -2; pixel_y = 36 }, -/turf/open/gm/river{ - name = "pool" - }, +/turf/open/gm/river/pool, /area/template_noop) "rU" = ( /obj/structure/grille, @@ -479,9 +404,7 @@ /obj/structure/prop/invuln/fire{ layer = 2.9 }, -/turf/open/floor/prison{ - icon_state = "darkbrowncorners2" - }, +/turf/open/floor/prison/darkbrowncorners2, /area/template_noop) "rW" = ( /obj/structure/bed/chair/comfy{ @@ -523,16 +446,11 @@ /obj/item/trash/plate{ pixel_x = -9 }, -/turf/open/floor/prison{ - icon_state = "darkbrowncorners2" - }, +/turf/open/floor/prison/darkbrowncorners2, /area/template_noop) "tM" = ( /obj/effect/decal/cleanable/blood/oil/streak, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkbrowncorners2" - }, +/turf/open/floor/prison/darkbrowncorners2/east, /area/template_noop) "tT" = ( /obj/effect/decal/cleanable/blood/oil/streak, @@ -542,10 +460,7 @@ /obj/structure/platform_decoration{ dir = 1 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkbrowncorners2" - }, +/turf/open/floor/prison/darkbrowncorners2/west, /area/template_noop) "vd" = ( /obj/structure/prop/souto_land/pole, @@ -558,18 +473,13 @@ pixel_y = -9 }, /obj/effect/decal/cleanable/blood/oil/streak, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/west, /area/template_noop) "vf" = ( /obj/structure/platform_decoration{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/template_noop) "vU" = ( /obj/structure/surface/table/reinforced/prison, @@ -627,10 +537,7 @@ /turf/open/floor/wood, /area/template_noop) "wS" = ( -/turf/open/floor/prison{ - dir = 6; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/southeast, /area/template_noop) "wV" = ( /obj/structure/platform{ @@ -640,9 +547,7 @@ dir = 1; pixel_y = 21 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/template_noop) "xz" = ( /obj/structure/prop/souto_land/streamer{ @@ -652,9 +557,7 @@ /area/template_noop) "xQ" = ( /obj/item/reagent_container/food/drinks/cans/beer, -/turf/open/floor/prison{ - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2, /area/template_noop) "xS" = ( /obj/structure/platform{ @@ -668,10 +571,7 @@ /area/template_noop) "yx" = ( /obj/effect/decal/cleanable/blood/oil/streak, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/west, /area/template_noop) "yL" = ( /obj/structure/stairs/perspective{ @@ -689,9 +589,7 @@ icon_state = "p_stair_full" }, /obj/structure/platform, -/turf/open/floor/prison{ - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2, /area/template_noop) "zR" = ( /obj/item/trash/cigbutt{ @@ -719,9 +617,7 @@ /area/template_noop) "Bj" = ( /obj/effect/landmark/survivor_spawner, -/turf/open/floor/prison{ - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2, /area/template_noop) "Bm" = ( /obj/structure/prop/souto_land/pole{ @@ -735,10 +631,7 @@ pixel_x = -3; pixel_y = -9 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/east, /area/template_noop) "Bv" = ( /obj/structure/prop/souto_land/streamer{ @@ -786,10 +679,7 @@ pixel_x = -17; pixel_y = 41 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/north, /area/template_noop) "Cx" = ( /obj/item/weapon/baseballbat/metal, @@ -799,21 +689,15 @@ /obj/item/trash/crushed_cup{ pixel_x = -20 }, -/turf/open/gm/river{ - name = "pool" - }, +/turf/open/gm/river/pool, /area/template_noop) "DN" = ( /obj/structure/platform_decoration, -/turf/open/floor/prison{ - icon_state = "darkbrowncorners2" - }, +/turf/open/floor/prison/darkbrowncorners2, /area/template_noop) "DT" = ( /obj/structure/platform, -/turf/open/gm/river{ - name = "pool" - }, +/turf/open/gm/river/pool, /area/template_noop) "Fj" = ( /obj/structure/platform_decoration{ @@ -828,10 +712,7 @@ /turf/open/floor/prison, /area/template_noop) "Fo" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/east, /area/template_noop) "Fy" = ( /turf/closed/wall/r_wall/prison_unmeltable, @@ -840,10 +721,7 @@ /obj/structure/prop/souto_land/streamer{ dir = 9 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/north, /area/template_noop) "FD" = ( /obj/structure/surface/table/reinforced/prison, @@ -865,9 +743,7 @@ pixel_x = 11; pixel_y = -8 }, -/turf/open/floor/prison{ - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2, /area/template_noop) "Gi" = ( /obj/structure/stairs/perspective{ @@ -908,20 +784,14 @@ pixel_y = -2; pixel_x = -12 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/east, /area/template_noop) "GO" = ( /obj/item/toy/crossbow_ammo{ pixel_y = -14; pixel_x = -15 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/north, /area/template_noop) "Hn" = ( /obj/structure/platform{ @@ -933,9 +803,7 @@ /obj/structure/platform_decoration{ dir = 9 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/template_noop) "HP" = ( /obj/structure/prop/souto_land/streamer{ @@ -952,10 +820,7 @@ pixel_y = -6; pixel_x = -8 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/east, /area/template_noop) "IU" = ( /obj/effect/decal/cleanable/blood/oil, @@ -974,10 +839,7 @@ /turf/open/floor/wood, /area/template_noop) "Jr" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkbrowncorners2" - }, +/turf/open/floor/prison/darkbrowncorners2/east, /area/template_noop) "Jw" = ( /obj/structure/machinery/light/double/blue{ @@ -992,24 +854,17 @@ /area/template_noop) "JR" = ( /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/east, /area/template_noop) "Ke" = ( /obj/item/toy/crossbow_ammo{ pixel_x = 19; pixel_y = 9 }, -/turf/open/floor/prison{ - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2, /area/template_noop) "Kx" = ( -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/template_noop) "KL" = ( /obj/structure/surface/table/reinforced/prison, @@ -1033,10 +888,7 @@ /area/template_noop) "KM" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/east, /area/template_noop) "KO" = ( /obj/structure/surface/table/reinforced/prison, @@ -1055,9 +907,7 @@ /obj/structure/platform{ dir = 1 }, -/turf/open/gm/river{ - name = "pool" - }, +/turf/open/gm/river/pool, /area/template_noop) "Ls" = ( /obj/structure/surface/table/reinforced/prison, @@ -1101,10 +951,7 @@ /obj/structure/platform_decoration{ dir = 8 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/east, /area/template_noop) "Mn" = ( /obj/structure/platform, @@ -1114,9 +961,7 @@ /obj/structure/platform_decoration{ dir = 10 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/template_noop) "MS" = ( /obj/structure/platform, @@ -1126,78 +971,54 @@ /obj/structure/platform_decoration{ dir = 6 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/template_noop) "ND" = ( -/turf/open/floor/prison{ - dir = 5; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/northeast, /area/template_noop) "NQ" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/southwest, /area/template_noop) "Oz" = ( /obj/item/trash/crushed_cup{ pixel_y = 5; pixel_x = 11 }, -/turf/open/gm/river{ - name = "pool" - }, +/turf/open/gm/river/pool, /area/template_noop) "PA" = ( /obj/structure/platform_decoration{ dir = 4 }, -/turf/open/floor/prison{ - dir = 5; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/northeast, /area/template_noop) "PR" = ( /obj/item/device/flashlight/lamp/tripod, -/turf/open/floor/prison{ - icon_state = "darkbrowncorners2" - }, +/turf/open/floor/prison/darkbrowncorners2, /area/template_noop) "Qn" = ( /turf/open/floor/prison, /area/template_noop) "QF" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkbrowncorners2" - }, +/turf/open/floor/prison/darkbrowncorners2/west, /area/template_noop) "QO" = ( /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/prison{ - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2, /area/template_noop) "Rg" = ( /obj/structure/prop/souto_land/pole{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2, /area/template_noop) "Ro" = ( /obj/item/toy/bikehorn/rubberducky{ pixel_x = -2; pixel_y = -15 }, -/turf/open/gm/river{ - name = "pool" - }, +/turf/open/gm/river/pool, /area/template_noop) "Rr" = ( /obj/structure/stairs/perspective{ @@ -1207,9 +1028,7 @@ /turf/open/floor/plating/prison, /area/template_noop) "Rs" = ( -/turf/open/floor/prison{ - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2, /area/template_noop) "RW" = ( /obj/structure/surface/table/reinforced/prison, @@ -1230,17 +1049,11 @@ /area/template_noop) "Sg" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrowncorners2" - }, +/turf/open/floor/prison/darkbrowncorners2/north, /area/template_noop) "SC" = ( /obj/effect/landmark/corpsespawner/ua_riot/burst, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/north, /area/template_noop) "SO" = ( /obj/structure/machinery/light/double/blue{ @@ -1275,23 +1088,14 @@ pixel_x = 1; pixel_y = -9 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/west, /area/template_noop) "Th" = ( /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/north, /area/template_noop) "Tq" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/east, /area/template_noop) "TO" = ( /obj/structure/prop/souto_land/streamer{ @@ -1319,9 +1123,7 @@ pixel_x = -13; pixel_y = 48 }, -/turf/open/gm/river{ - name = "pool" - }, +/turf/open/gm/river/pool, /area/template_noop) "Vi" = ( /obj/structure/surface/table/reinforced/prison, @@ -1371,10 +1173,7 @@ /turf/open/floor/prison, /area/template_noop) "Wh" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/north, /area/template_noop) "Wx" = ( /obj/structure/platform, @@ -1382,17 +1181,13 @@ pixel_y = 13; pixel_x = 45 }, -/turf/open/gm/river{ - name = "pool" - }, +/turf/open/gm/river/pool, /area/template_noop) "WY" = ( /obj/structure/platform_decoration{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2, /area/template_noop) "Xn" = ( /obj/item/storage/belt/shotgun/full/quackers{ @@ -1406,32 +1201,22 @@ pixel_y = 4; pixel_x = 1 }, -/turf/open/gm/river{ - name = "pool" - }, +/turf/open/gm/river/pool, /area/template_noop) "Xu" = ( /obj/structure/platform, /obj/structure/machinery/light/double/blue, -/turf/open/floor/prison{ - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2, /area/template_noop) "Xw" = ( /obj/item/toy/beach_ball/holoball{ pixel_x = -10; pixel_y = -7 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/west, /area/template_noop) "XM" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/west, /area/template_noop) "XS" = ( /obj/effect/landmark/corpsespawner/prisoner, @@ -1456,16 +1241,11 @@ pixel_x = -1; pixel_y = -9 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkbrown2" - }, +/turf/open/floor/prison/darkbrown2/east, /area/template_noop) "XX" = ( /obj/structure/platform_decoration, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/template_noop) "Yd" = ( /obj/structure/machinery/light/double/blue, @@ -1502,9 +1282,7 @@ /area/template_noop) "ZB" = ( /obj/structure/platform, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/template_noop) (1,1,1) = {" diff --git a/maps/map_files/FOP_v3_Sciannex/sprinkles/20.yardbasketball.dmm b/maps/map_files/FOP_v3_Sciannex/sprinkles/20.yardbasketball.dmm index 6662ebf081f0..ce60474959f1 100644 --- a/maps/map_files/FOP_v3_Sciannex/sprinkles/20.yardbasketball.dmm +++ b/maps/map_files/FOP_v3_Sciannex/sprinkles/20.yardbasketball.dmm @@ -36,7 +36,7 @@ "f" = ( /obj/effect/landmark/corpsespawner/ua_riot, /obj/effect/decal/cleanable/blood, -/obj/item/handcuffs/zip{ +/obj/item/restraint/handcuffs/zip{ pixel_y = -12 }, /turf/open/floor/wood, diff --git a/maps/map_files/FOP_v3_Sciannex/sprinkles/25.researchprestine.dmm b/maps/map_files/FOP_v3_Sciannex/sprinkles/25.researchprestine.dmm index 8df7c92de478..ddf166738112 100644 --- a/maps/map_files/FOP_v3_Sciannex/sprinkles/25.researchprestine.dmm +++ b/maps/map_files/FOP_v3_Sciannex/sprinkles/25.researchprestine.dmm @@ -1,10 +1,7 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE "aa" = ( /obj/effect/decal/cleanable/blood/gibs/xeno, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/template_noop) "aU" = ( /obj/structure/sign/poster{ @@ -18,44 +15,30 @@ /turf/closed/wall/r_wall/prison_unmeltable, /area/template_noop) "bO" = ( -/turf/open/floor/prison{ - icon_state = "floorscorched1" - }, +/turf/open/floor/prison/floorscorched1, /area/template_noop) "bZ" = ( -/turf/open/floor/prison{ - icon_state = "floorscorched2" - }, +/turf/open/floor/prison/floorscorched2, /area/template_noop) "cz" = ( /obj/structure/machinery/vending/sovietsoda, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/template_noop) "cL" = ( -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/template_noop) "cM" = ( /obj/structure/bed{ icon_state = "abed" }, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/southwest, /area/template_noop) "dR" = ( /obj/structure/bookcase/manuals/research_and_development{ pixel_y = 10 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/north, /area/template_noop) "eG" = ( /obj/structure/closet/secure_closet/guncabinet{ @@ -67,24 +50,18 @@ /obj/item/clothing/head/helmet/marine/veteran/ua_riot, /obj/item/clothing/suit/storage/marine/veteran/ua_riot, /obj/item/clothing/suit/storage/marine/veteran/ua_riot, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/template_noop) "eQ" = ( /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/template_noop) "fg" = ( /obj/item/device/flashlight/lamp/tripod, /obj/structure/machinery/light/double/blue, -/turf/open/floor/prison{ - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple, /area/template_noop) "fk" = ( /obj/item/explosive/grenade/incendiary/molotov{ @@ -94,16 +71,11 @@ /turf/open/space/basic, /area/template_noop) "gy" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/west, /area/template_noop) "gB" = ( /obj/effect/decal/cleanable/blood/tracks/footprints, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/template_noop) "gR" = ( /obj/structure/extinguisher_cabinet{ @@ -126,64 +98,43 @@ dir = 4; health = 150 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/north, /area/template_noop) "jM" = ( /obj/structure/bed{ icon_state = "abed" }, /obj/item/reagent_container/food/snacks/wrapped/barcardine, -/turf/open/floor/prison{ - dir = 6; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/southeast, /area/template_noop) "ke" = ( /obj/effect/decal/cleanable/blood/gibs/body, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/template_noop) "ks" = ( /obj/structure/bed{ icon_state = "abed" }, /obj/item/card/id/visa, -/turf/open/floor/prison{ - dir = 9; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/northwest, /area/template_noop) "kx" = ( /obj/item/device/flashlight/lamp/tripod, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/template_noop) "kY" = ( -/turf/open/floor/prison{ - icon_state = "platingdmg1" - }, +/turf/open/floor/prison/platingdmg1, /area/template_noop) "me" = ( /obj/effect/decal/cleanable/blood/gibs/xeno/body, -/turf/open/floor/prison{ - dir = 6; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/southeast, /area/template_noop) "mu" = ( /obj/structure/bed{ icon_state = "abed" }, /obj/effect/spawner/random/pills/lowchance, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/southwest, /area/template_noop) "mz" = ( /obj/item/tool/kitchen/utensil/pspoon, @@ -194,68 +145,42 @@ dir = 4; health = 200 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/template_noop) "nw" = ( /obj/structure/bed{ icon_state = "abed" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/southwest, /area/template_noop) "on" = ( /obj/structure/barricade/metal/wired{ dir = 1; health = 55 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/southwest, /area/template_noop) "oR" = ( -/turf/open/floor/prison{ - dir = 6; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/southeast, /area/template_noop) "pp" = ( /obj/effect/decal/cleanable/blood/gibs, -/turf/open/floor/prison{ - dir = 10; - icon_state = "damaged1" - }, +/turf/open/floor/prison/damaged1/southwest, /area/template_noop) "pP" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/prison/whitepurplecorner/west, /area/template_noop) "qk" = ( /obj/structure/bed{ icon_state = "abed" }, -/turf/open/floor/prison{ - dir = 6; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/southeast, /area/template_noop) "qu" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "damaged1" - }, +/turf/open/floor/prison/damaged1/southwest, /area/template_noop) "qL" = ( -/turf/open/floor/prison{ - icon_state = "panelscorched" - }, +/turf/open/floor/prison/panelscorched, /area/template_noop) "rb" = ( /obj/structure/toilet{ @@ -266,10 +191,7 @@ dir = 6 }, /obj/effect/landmark/corpsespawner/prisoner, -/turf/open/floor/prison{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/northeast, /area/template_noop) "sa" = ( /obj/structure/sink{ @@ -277,56 +199,38 @@ pixel_x = -12 }, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/southwest, /area/template_noop) "tc" = ( /obj/structure/bed{ icon_state = "abed" }, /obj/item/toy/deck, -/turf/open/floor/prison{ - dir = 6; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/southeast, /area/template_noop) "tr" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/east, /area/template_noop) "tB" = ( /obj/structure/barricade/metal/wired{ dir = 1; health = 65 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/template_noop) "tD" = ( /obj/structure/machinery/light/double/blue, -/turf/open/floor/prison{ - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple, /area/template_noop) "tI" = ( /obj/effect/landmark/corpsespawner/prisoner, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/north, /area/template_noop) "tN" = ( /obj/structure/machinery/light/double/blue{ pixel_y = -1 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/template_noop) "ux" = ( /obj/structure/sink{ @@ -334,45 +238,32 @@ pixel_x = -12 }, /obj/effect/spawner/random/pills/lowchance, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/southwest, /area/template_noop) "uF" = ( /obj/effect/decal/prints{ pixel_y = 3; pixel_x = -10 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/west, /area/template_noop) "uM" = ( /obj/structure/bed{ icon_state = "abed" }, /obj/effect/spawner/random/goggles/lowchance, -/turf/open/floor/prison{ - dir = 6; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/southeast, /area/template_noop) "we" = ( /obj/structure/machinery/light/double/blue{ dir = 1; pixel_y = 21 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/template_noop) "wv" = ( /obj/structure/machinery/vending/cigarette/colony, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/template_noop) "wy" = ( /obj/structure/surface/table/reinforced/prison, @@ -387,49 +278,32 @@ /obj/item/implanter{ pixel_x = -4 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/template_noop) "xy" = ( /obj/structure/grille, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/template_noop) "yv" = ( /obj/structure/sink{ dir = 4; pixel_x = 12 }, -/turf/open/floor/prison{ - dir = 6; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/southeast, /area/template_noop) "zj" = ( /obj/item/stack/sheet/metal{ pixel_y = -9; pixel_x = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/southwest, /area/template_noop) "zA" = ( -/turf/open/floor/prison{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/northeast, /area/template_noop) "zT" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 9; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/northwest, /area/template_noop) "Bl" = ( /obj/structure/sink{ @@ -437,17 +311,11 @@ pixel_x = 12 }, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/prison{ - dir = 6; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/southeast, /area/template_noop) "Bx" = ( /obj/effect/decal/cleanable/blood/gibs/xeno, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/west, /area/template_noop) "Dq" = ( /obj/structure/barricade/metal/wired{ @@ -458,70 +326,45 @@ pixel_y = 4; pixel_x = -10 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/template_noop) "Dt" = ( /obj/structure/bed{ icon_state = "abed" }, /obj/item/toy/beach_ball/holoball, -/turf/open/floor/prison{ - dir = 6; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/southeast, /area/template_noop) "DE" = ( /obj/structure/toilet{ dir = 4; pixel_y = 8 }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/northwest, /area/template_noop) "DV" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/north, /area/template_noop) "EQ" = ( /obj/effect/decal/cleanable/blood/gibs/limb, -/turf/open/floor/prison{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/northeast, /area/template_noop) "ES" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/southwest, /area/template_noop) "Fc" = ( -/turf/open/floor/prison{ - dir = 9; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/northwest, /area/template_noop) "FP" = ( /obj/structure/barricade/metal/wired{ dir = 4; health = 55 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/template_noop) "Gy" = ( /obj/structure/machinery/vending/coffee, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/template_noop) "GR" = ( /turf/closed/wall/r_wall/prison_unmeltable{ @@ -531,71 +374,47 @@ /area/template_noop) "Hf" = ( /obj/effect/decal/cleanable/blood/tracks/footprints, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/north, /area/template_noop) "Hp" = ( -/turf/open/floor/prison{ - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple, /area/template_noop) "Hw" = ( /obj/structure/toilet{ dir = 8; pixel_y = 8 }, -/turf/open/floor/prison{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/northeast, /area/template_noop) "HN" = ( /obj/effect/landmark/survivor_spawner, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/template_noop) "Id" = ( /obj/structure/machinery/light/double/blue{ pixel_y = -1 }, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/template_noop) "Ig" = ( /obj/structure/machinery/vending/snack/packaged, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/template_noop) "Io" = ( /obj/effect/landmark/corpsespawner/prisoner, -/turf/open/floor/prison{ - icon_state = "floorscorched1" - }, +/turf/open/floor/prison/floorscorched1, /area/template_noop) "Ix" = ( /obj/structure/machinery/door/airlock/prison/horizontal, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/template_noop) "IN" = ( /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/north, /area/template_noop) "IW" = ( -/turf/open/floor/prison{ - icon_state = "damaged2" - }, +/turf/open/floor/prison/damaged2, /area/template_noop) "Jm" = ( /obj/structure/sink{ @@ -605,38 +424,25 @@ /obj/effect/decal/cleanable/blood, /obj/effect/decal/cleanable/blood/gibs, /obj/effect/landmark/corpsespawner/prisoner, -/turf/open/floor/prison{ - dir = 6; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/southeast, /area/template_noop) "JQ" = ( /obj/structure/sink{ dir = 8; pixel_x = -12 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/southwest, /area/template_noop) "Kc" = ( /obj/structure/barricade/metal/wired, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/template_noop) "Kj" = ( /obj/effect/decal/cleanable/blood/gibs/core, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/east, /area/template_noop) "KF" = ( -/turf/open/floor/prison{ - icon_state = "damaged3" - }, +/turf/open/floor/prison/damaged3, /area/template_noop) "LM" = ( /turf/closed/wall/prison, @@ -652,10 +458,7 @@ icon_state = "abed" }, /obj/item/storage/fancy/crayons, -/turf/open/floor/prison{ - dir = 6; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/southeast, /area/template_noop) "Mo" = ( /obj/structure/window/framed/prison/cell, @@ -665,30 +468,20 @@ /obj/structure/machinery/light/double/blue{ pixel_y = -1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/template_noop) "MI" = ( /obj/effect/decal/cleanable/blood/gibs/xeno/core, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/template_noop) "MO" = ( /obj/structure/barricade/metal/wired, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/template_noop) "Nr" = ( /obj/structure/machinery/light/double/blue, /obj/effect/decal/cleanable/blood/gibs, -/turf/open/floor/prison{ - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple, /area/template_noop) "Ns" = ( /obj/structure/surface/table/reinforced/prison, @@ -696,22 +489,17 @@ dir = 1; pixel_y = 21 }, -/obj/item/handcuffs{ +/obj/item/restraint/handcuffs{ pixel_x = -3; pixel_y = 10 }, -/obj/item/handcuffs{ +/obj/item/restraint/handcuffs{ pixel_x = 4 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/template_noop) "NI" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/template_noop) "Oo" = ( /obj/effect/spawner/gibspawner/human, @@ -719,96 +507,63 @@ /area/template_noop) "Pd" = ( /obj/effect/decal/cleanable/blood/tracks/footprints, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/east, /area/template_noop) "Pk" = ( /obj/effect/decal/cleanable/spiderling_remains, -/turf/open/floor/prison{ - dir = 6; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/southeast, /area/template_noop) "PS" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/ammo_magazine/shotgun/buckshot, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/template_noop) "Qc" = ( /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/prison{ - dir = 9; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/northwest, /area/template_noop) "Qn" = ( /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/east, /area/template_noop) "QF" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic/autoname{ icon = 'icons/obj/structures/doors/2x1prepdoor_charlie.dmi' }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/southwest, /area/template_noop) "QU" = ( /obj/effect/landmark/corpsespawner/ua_riot, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/template_noop) "Sx" = ( /obj/effect/landmark/corpsespawner/ua_riot, -/turf/open/floor/prison{ - icon_state = "floorscorched2" - }, +/turf/open/floor/prison/floorscorched2, /area/template_noop) "TD" = ( /obj/effect/decal/cleanable/blood/tracks/footprints, -/turf/open/floor/prison{ - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple, /area/template_noop) "TE" = ( /obj/structure/barricade/metal/wired{ dir = 1; health = 150 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/template_noop) "TH" = ( -/turf/open/floor/prison{ - icon_state = "platingdmg3" - }, +/turf/open/floor/prison/platingdmg3, /area/template_noop) "VP" = ( /obj/structure/barricade/metal/wired{ dir = 8; health = 200 }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/northwest, /area/template_noop) "VQ" = ( /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/west, /area/template_noop) "Wo" = ( /obj/structure/toilet{ @@ -816,10 +571,7 @@ pixel_y = 8 }, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/prison{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/northeast, /area/template_noop) "Yw" = ( /obj/structure/extinguisher_cabinet, @@ -830,14 +582,10 @@ dir = 8; health = 55 }, -/turf/open/floor/prison{ - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple, /area/template_noop) "YY" = ( -/turf/open/floor/prison{ - icon_state = "platingdmg2" - }, +/turf/open/floor/prison/platingdmg2, /area/template_noop) "Zi" = ( /turf/open/space/basic, @@ -847,10 +595,7 @@ icon_state = "abed" }, /obj/item/storage/fancy/cigar/tarbacks, -/turf/open/floor/prison{ - dir = 6; - icon_state = "whitepurple" - }, +/turf/open/floor/prison/whitepurple/southeast, /area/template_noop) (1,1,1) = {" diff --git a/maps/map_files/FOP_v3_Sciannex/sprinkles/30.engineeroffice.dmm b/maps/map_files/FOP_v3_Sciannex/sprinkles/30.engineeroffice.dmm index 408bccfc7eea..55e933cf4d27 100644 --- a/maps/map_files/FOP_v3_Sciannex/sprinkles/30.engineeroffice.dmm +++ b/maps/map_files/FOP_v3_Sciannex/sprinkles/30.engineeroffice.dmm @@ -6,35 +6,23 @@ /turf/open/floor/plating/prison, /area/template_noop) "h" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/template_noop) "k" = ( /obj/structure/sign/poster/hero/voteno{ pixel_y = 29 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/template_noop) "n" = ( /obj/structure/machinery/power/apc, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/template_noop) "o" = ( /turf/closed/wall/mineral/bone_resin, /area/template_noop) "s" = ( -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/template_noop) "t" = ( /obj/structure/filingcabinet{ @@ -46,9 +34,7 @@ pixel_y = 4 }, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/template_noop) "x" = ( /obj/structure/surface/table/reinforced/prison, @@ -60,10 +46,7 @@ layer = 2.8; pixel_y = -7 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/template_noop) "z" = ( /obj/structure/coatrack, @@ -77,10 +60,7 @@ pixel_x = -2; pixel_y = 13 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/template_noop) "D" = ( /obj/structure/closet/secure_closet/freezer/fridge/groceries, @@ -89,10 +69,7 @@ pixel_x = 10; pixel_y = -3 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/template_noop) "E" = ( /obj/structure/machinery/photocopier, @@ -104,9 +81,7 @@ /obj/item/paper{ desc = "The image appears to be someone's backside, the page number is labled as 259." }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/template_noop) "F" = ( /obj/structure/surface/table/reinforced/prison, @@ -127,10 +102,7 @@ /obj/item/weapon/butterfly{ pixel_x = 17 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/template_noop) "O" = ( /obj/structure/surface/table/reinforced/prison, @@ -138,10 +110,7 @@ icon_state = "mwo"; pixel_y = 6 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/template_noop) "Q" = ( /obj/structure/machinery/door/airlock/almayer/generic{ @@ -154,15 +123,10 @@ /obj/item/storage/firstaid/regular/empty{ pixel_x = 14 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/template_noop) "T" = ( -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/template_noop) "V" = ( /obj/structure/filingcabinet{ @@ -175,9 +139,7 @@ }, /obj/effect/landmark/objective_landmark/close, /obj/item/pamphlet/engineer, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/template_noop) "X" = ( /obj/structure/closet/secure_closet/engineering_electrical, @@ -188,10 +150,7 @@ }, /obj/effect/landmark/objective_landmark/medium, /obj/item/storage/backpack/marine/engineerpack/satchel, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/template_noop) "Z" = ( /obj/structure/surface/table/reinforced/prison, @@ -202,10 +161,7 @@ /obj/item/book/manual/engineering_guide{ pixel_x = -4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/template_noop) (1,1,1) = {" diff --git a/maps/map_files/FOP_v3_Sciannex/sprinkles/30.repairpanelslz.dmm b/maps/map_files/FOP_v3_Sciannex/sprinkles/30.repairpanelslz.dmm index 8fd994654199..bba4398e4d95 100644 --- a/maps/map_files/FOP_v3_Sciannex/sprinkles/30.repairpanelslz.dmm +++ b/maps/map_files/FOP_v3_Sciannex/sprinkles/30.repairpanelslz.dmm @@ -26,9 +26,7 @@ /turf/open/space/basic, /area/template_noop) "e" = ( -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/template_noop) "f" = ( /obj/item/stack/sandbags_empty/half, @@ -62,7 +60,8 @@ /area/template_noop) "l" = ( /obj/item/limb/head/synth{ - pixel_x = -9 + pixel_x = -9; + icon_state = "scandinavian_head_m" }, /obj/structure/platform_decoration/kutjevo{ dir = 1 @@ -118,10 +117,7 @@ /area/template_noop) "y" = ( /obj/item/stack/sandbags_empty/half, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/west, /area/template_noop) "z" = ( /obj/structure/platform/kutjevo/smooth{ @@ -140,11 +136,6 @@ }, /turf/open/space, /area/template_noop) -"C" = ( -/obj/structure/window/framed/prison/reinforced/hull, -/obj/structure/window/framed/prison/reinforced/hull, -/turf/open/floor/plating/prison, -/area/template_noop) "D" = ( /obj/item/trash/used_stasis_bag{ desc = "Wow, instant sand. They really have everything in space."; @@ -164,13 +155,10 @@ /turf/open/floor/plating/prison, /area/template_noop) "G" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/north, /area/template_noop) "H" = ( -/obj/structure/reagent_dispensers/oxygentank, +/obj/structure/reagent_dispensers/fueltank/oxygentank, /turf/open/space, /area/template_noop) "I" = ( @@ -197,21 +185,14 @@ /turf/open/space, /area/template_noop) "L" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/west, /area/template_noop) "M" = ( /obj/structure/platform/kutjevo/smooth, /turf/open/space, /area/template_noop) "N" = ( -/turf/open/floor{ - desc = "A sophisticated device that captures and converts light from the system's star into energy for the station."; - icon_state = "solarpanel"; - name = "solarpanel" - }, +/turf/open/floor/solarpanel, /area/template_noop) "O" = ( /obj/structure/platform/kutjevo/smooth, @@ -238,9 +219,7 @@ /area/template_noop) "T" = ( /obj/item/stack/sandbags_empty/half, -/turf/open/floor/prison{ - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2, /area/template_noop) "U" = ( /obj/item/stack/sheet/metal, @@ -260,10 +239,7 @@ /turf/open/floor/almayer_hull, /area/template_noop) "X" = ( -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/northwest, /area/template_noop) "Y" = ( /obj/structure/platform/kutjevo/smooth{ @@ -283,7 +259,7 @@ (1,1,1) = {" x -C +F F F F diff --git a/maps/map_files/FOP_v3_Sciannex/standalone/riot_in_progress.dmm b/maps/map_files/FOP_v3_Sciannex/standalone/riot_in_progress.dmm new file mode 100644 index 000000000000..4cdabb8199c1 --- /dev/null +++ b/maps/map_files/FOP_v3_Sciannex/standalone/riot_in_progress.dmm @@ -0,0 +1,1970 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"am" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/storage/donut_box{ + pixel_y = 6 + }, +/turf/open/floor/prison/redfull, +/area/fiorina/station/security) +"aE" = ( +/obj/item/device/flashlight/lamp/tripod, +/turf/open/floor/prison/floor_plate, +/area/fiorina/lz/near_lzII) +"aK" = ( +/obj/item/clothing/under/marine/ua_riot, +/obj/item/clothing/head/helmet/marine/veteran/ua_riot, +/turf/open/floor/prison, +/area/fiorina/station/security) +"aX" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/machinery/computer/cameras{ + dir = 8 + }, +/obj/structure/machinery/light/double/blue{ + dir = 1; + pixel_y = 21 + }, +/turf/open/floor/prison/redfull, +/area/fiorina/station/security) +"bb" = ( +/obj/structure/stairs/perspective{ + dir = 8; + icon_state = "p_stair_full" + }, +/obj/structure/platform, +/turf/open/floor/prison/floor_plate, +/area/fiorina/station/security) +"bl" = ( +/obj/structure/machinery/vending/coffee, +/turf/open/floor/prison/redfull, +/area/fiorina/station/security) +"bm" = ( +/obj/item/shard{ + icon_state = "large" + }, +/turf/open/floor/prison/redfull, +/area/fiorina/station/security) +"bC" = ( +/obj/effect/landmark/survivor_spawner/fiorina_armory_riot_control, +/turf/open/floor/plating/prison, +/area/fiorina/station/security) +"bO" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/shard{ + icon_state = "medium" + }, +/turf/open/floor/prison/floor_plate, +/area/fiorina/station/security) +"ce" = ( +/obj/effect/decal/cleanable/blood/oil, +/turf/open/floor/prison, +/area/fiorina/lz/near_lzII) +"ch" = ( +/obj/structure/barricade/deployable{ + dir = 8 + }, +/turf/open/floor/prison/floor_plate, +/area/fiorina/station/security) +"cn" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/item/stack/cable_coil, +/turf/open/floor/prison/floor_plate, +/area/fiorina/station/security) +"co" = ( +/obj/structure/prop/almayer/computers/sensor_computer3, +/turf/open/floor/prison/darkredfull2, +/area/fiorina/station/security) +"cr" = ( +/obj/structure/sign/poster/clf, +/turf/closed/wall/prison, +/area/fiorina/station/security) +"cI" = ( +/obj/structure/platform, +/turf/open/floor/prison/cell_stripe/east, +/area/fiorina/station/security) +"cZ" = ( +/obj/structure/bed/chair/comfy{ + dir = 1 + }, +/turf/open/floor/prison/redfull, +/area/fiorina/station/security) +"do" = ( +/obj/structure/coatrack, +/obj/item/clothing/suit/storage/CMB, +/turf/open/floor/prison/redfull, +/area/fiorina/station/security) +"dT" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/machinery/computer/cameras{ + dir = 8 + }, +/turf/open/floor/prison/floor_plate, +/area/fiorina/station/security) +"eK" = ( +/obj/structure/window/framed/prison/reinforced/hull, +/turf/open/floor/plating/prison, +/area/fiorina/station/security) +"fd" = ( +/obj/structure/window/framed/prison/reinforced, +/turf/open/floor/prison, +/area/fiorina/station/security) +"fh" = ( +/obj/structure/machinery/photocopier, +/turf/open/floor/prison/floor_plate, +/area/fiorina/station/security) +"fs" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/surface/table/reinforced/prison, +/obj/structure/machinery/computer/secure_data, +/turf/open/floor/prison, +/area/fiorina/station/security) +"fy" = ( +/obj/item/explosive/grenade/flashbang, +/turf/open/floor/prison/floor_plate, +/area/fiorina/station/security) +"fX" = ( +/obj/structure/machinery/photocopier{ + pixel_y = 4 + }, +/turf/open/floor/prison/darkredfull2, +/area/fiorina/station/security) +"fZ" = ( +/obj/item/ammo_magazine/rifle/m16, +/turf/open/floor/prison, +/area/fiorina/station/security) +"gk" = ( +/obj/structure/closet/secure_closet/guncabinet{ + req_access = null + }, +/obj/item/ammo_magazine/shotgun/buckshot, +/obj/item/ammo_magazine/shotgun/buckshot, +/obj/item/reagent_container/glass/bottle/robot/antitoxin, +/obj/item/clothing/suit/storage/marine/veteran/ua_riot, +/obj/item/prop/helmetgarb/riot_shield, +/turf/open/floor/prison/redfull, +/area/fiorina/station/security) +"gl" = ( +/obj/structure/filingcabinet/chestdrawer, +/turf/open/floor/prison/floor_plate, +/area/fiorina/station/security) +"gI" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/paper_bin{ + pixel_x = -3; + pixel_y = 7 + }, +/obj/item/tool/pen, +/turf/open/floor/prison/redfull, +/area/fiorina/station/security) +"gT" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_27"; + layer = 3.1; + pixel_x = -2; + pixel_y = 10 + }, +/turf/open/floor/prison, +/area/fiorina/lz/near_lzII) +"gV" = ( +/obj/structure/window/framed/prison, +/turf/open/floor/plating/prison, +/area/fiorina/station/security) +"hg" = ( +/obj/effect/landmark/corpsespawner/security/marshal, +/turf/open/floor/prison/floor_plate, +/area/fiorina/station/security) +"hI" = ( +/obj/item/stack/folding_barricade, +/turf/open/floor/prison/floor_plate, +/area/fiorina/station/security) +"hY" = ( +/obj/item/stack/sheet/metal, +/turf/open/floor/prison/redfull, +/area/fiorina/station/security) +"is" = ( +/obj/structure/machinery/door/airlock/almayer/maint/colony/autoname{ + req_one_access = null + }, +/turf/open/floor/plating/prison, +/area/fiorina/station/security) +"iK" = ( +/obj/structure/filingcabinet, +/obj/effect/landmark/objective_landmark/close, +/turf/open/floor/prison/redfull, +/area/fiorina/station/security) +"jb" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/paper_bin{ + pixel_x = -3; + pixel_y = 7 + }, +/turf/open/floor/prison/redfull, +/area/fiorina/station/security) +"ji" = ( +/obj/item/device/flash, +/turf/open/floor/prison/redfull, +/area/fiorina/station/security) +"jI" = ( +/obj/item/tool/crowbar/red, +/turf/open/floor/prison/floor_plate, +/area/fiorina/station/security) +"jJ" = ( +/obj/item/clothing/head/helmet/marine/veteran/ua_riot, +/turf/open/floor/prison/floor_plate, +/area/fiorina/station/security) +"jL" = ( +/obj/structure/barricade/deployable{ + dir = 4 + }, +/turf/open/floor/prison/cell_stripe/east, +/area/fiorina/lz/near_lzII) +"jW" = ( +/obj/item/frame/table/almayer, +/obj/effect/decal/cleanable/blood/oil/streak, +/turf/open/floor/prison/floor_plate, +/area/fiorina/station/security) +"ke" = ( +/obj/structure/machinery/vending/security, +/turf/open/floor/prison/redfull, +/area/fiorina/station/security) +"kX" = ( +/obj/structure/closet/secure_closet/guncabinet{ + req_access = null + }, +/obj/item/weapon/gun/shotgun/pump/dual_tube/cmb, +/obj/item/ammo_magazine/shotgun/buckshot, +/obj/item/ammo_magazine/shotgun/buckshot, +/obj/item/storage/belt/shotgun, +/obj/item/clothing/under/marine/ua_riot, +/obj/item/clothing/suit/storage/marine/veteran/ua_riot, +/obj/item/prop/helmetgarb/riot_shield, +/turf/open/floor/prison/redfull, +/area/fiorina/station/security) +"lv" = ( +/turf/open/floor/prison/cell_stripe/west, +/area/fiorina/station/security) +"lA" = ( +/obj/item/stack/folding_barricade, +/turf/open/floor/prison/cell_stripe/east, +/area/fiorina/lz/near_lzII) +"lE" = ( +/obj/structure/window/reinforced, +/turf/open/floor/prison, +/area/fiorina/station/security) +"lF" = ( +/turf/open/floor/plating/prison, +/area/fiorina/station/security) +"lO" = ( +/obj/effect/decal/cleanable/blood{ + dir = 4; + icon_state = "gib6" + }, +/turf/open/floor/prison/cell_stripe/west, +/area/fiorina/lz/near_lzII) +"lP" = ( +/obj/structure/closet/secure_closet/guncabinet{ + req_access = null + }, +/obj/item/storage/box/pillbottles, +/obj/item/clothing/under/marine/ua_riot, +/obj/item/clothing/suit/storage/marine/veteran/ua_riot, +/turf/open/floor/prison/redfull, +/area/fiorina/station/security) +"lR" = ( +/obj/structure/bed/chair/comfy{ + dir = 4 + }, +/turf/open/floor/prison/redfull, +/area/fiorina/station/security) +"lZ" = ( +/obj/item/clothing/under/marine/ua_riot, +/obj/item/weapon/gun/rifle/m16, +/turf/open/floor/prison/floor_plate, +/area/fiorina/station/security) +"ma" = ( +/obj/structure/stairs/perspective{ + dir = 8; + icon_state = "p_stair_full" + }, +/turf/open/floor/prison/floor_plate, +/area/fiorina/station/security) +"mf" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced, +/turf/open/floor/prison, +/area/fiorina/station/security) +"mn" = ( +/obj/structure/prop/almayer/computers/sensor_computer2, +/turf/open/floor/prison/darkredfull2, +/area/fiorina/station/security) +"mt" = ( +/obj/effect/spawner/random/gun/shotgun/midchance, +/obj/effect/landmark/corpsespawner/ua_riot, +/turf/open/floor/prison, +/area/fiorina/station/security) +"mD" = ( +/obj/structure/barricade/handrail{ + dir = 1; + pixel_y = 2 + }, +/turf/open/floor/prison/floor_plate, +/area/fiorina/station/security) +"nf" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/storage/box/nade_box/tear_gas, +/turf/open/floor/prison/redfull, +/area/fiorina/station/security) +"nl" = ( +/turf/template_noop, +/area/template_noop) +"np" = ( +/obj/structure/machinery/landinglight/ds2/delaythree{ + dir = 4 + }, +/turf/open/floor/prison, +/area/fiorina/lz/near_lzII) +"nD" = ( +/obj/structure/platform, +/obj/effect/decal/cleanable/blood/gibs/xeno, +/turf/open/floor/prison/floor_plate, +/area/fiorina/station/security) +"nN" = ( +/turf/open/floor/prison/floor_plate, +/area/fiorina/lz/near_lzII) +"oi" = ( +/obj/structure/machinery/door/airlock/prison_hatch/autoname{ + locked = 1 + }, +/turf/open/floor/prison/redfull, +/area/fiorina/station/security) +"on" = ( +/obj/structure/closet/secure_closet/guncabinet{ + req_access = null + }, +/obj/item/weapon/gun/launcher/grenade/m81, +/obj/item/storage/pill_bottle/kelotane, +/turf/open/floor/prison/redfull, +/area/fiorina/station/security) +"oE" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/machinery/recharger{ + pixel_y = 4 + }, +/turf/open/floor/prison/floor_plate, +/area/fiorina/station/security) +"oS" = ( +/obj/structure/barricade/wooden{ + dir = 4 + }, +/turf/open/floor/prison/redfull, +/area/fiorina/station/security) +"pa" = ( +/obj/structure/filingcabinet{ + pixel_x = -8 + }, +/obj/structure/filingcabinet{ + pixel_x = 8 + }, +/obj/item/reagent_container/food/drinks/coffeecup{ + pixel_x = -7; + pixel_y = 11 + }, +/turf/open/floor/prison/floor_plate, +/area/fiorina/station/security) +"pd" = ( +/obj/item/ammo_magazine/handful/shotgun/beanbag, +/turf/open/floor/prison/redfull, +/area/fiorina/station/security) +"pn" = ( +/obj/effect/acid_hole, +/turf/closed/wall/r_wall/prison, +/area/fiorina/station/security) +"pp" = ( +/obj/item/ammo_casing, +/turf/open/floor/prison, +/area/fiorina/station/security) +"pE" = ( +/obj/item/clothing/glasses/sunglasses/blindfold, +/turf/open/floor/prison, +/area/fiorina/station/security) +"pN" = ( +/obj/item/ammo_box/magazine/shotgun/beanbag, +/turf/open/floor/prison/floor_plate, +/area/fiorina/station/security) +"pR" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_29"; + pixel_y = 10 + }, +/turf/open/floor/prison, +/area/fiorina/lz/near_lzII) +"pV" = ( +/obj/effect/landmark/corpsespawner/prisoner, +/obj/item/tool/kitchen/utensil/knife, +/turf/open/floor/prison/floor_plate, +/area/fiorina/station/security) +"qd" = ( +/obj/structure/bed/chair/comfy{ + dir = 8 + }, +/turf/open/floor/prison/redfull, +/area/fiorina/station/security) +"qw" = ( +/obj/effect/landmark/survivor_spawner/fiorina_armory_riot_control, +/turf/open/floor/prison/redfull, +/area/fiorina/station/security) +"qQ" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/folder/black_random, +/obj/item/folder/red{ + pixel_x = 3; + pixel_y = 5 + }, +/turf/open/floor/prison/redfull, +/area/fiorina/station/security) +"qX" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/machinery/recharger{ + pixel_y = 4 + }, +/obj/structure/machinery/light/double/blue{ + dir = 1; + pixel_y = 21 + }, +/turf/open/floor/prison/redfull, +/area/fiorina/station/security) +"qY" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_29"; + pixel_y = 10 + }, +/obj/structure/machinery/light/double/blue{ + dir = 1; + pixel_y = 21 + }, +/turf/open/floor/prison, +/area/fiorina/lz/near_lzII) +"rg" = ( +/obj/effect/decal/cleanable/blood/xeno, +/turf/open/floor/prison/redfull, +/area/fiorina/station/security) +"rl" = ( +/obj/item/tool/weldingtool, +/turf/open/floor/prison, +/area/fiorina/station/security) +"rP" = ( +/obj/item/reagent_container/spray/pepper, +/turf/open/floor/prison, +/area/fiorina/station/security) +"rR" = ( +/obj/structure/closet/secure_closet/guncabinet{ + req_access = null + }, +/obj/item/weapon/gun/smg/mp5, +/obj/item/ammo_magazine/smg/mp5, +/obj/item/ammo_magazine/smg/mp5, +/obj/item/ammo_magazine/smg/mp5, +/obj/item/storage/belt/marine, +/obj/item/clothing/under/marine/ua_riot, +/obj/item/clothing/suit/storage/marine/veteran/ua_riot, +/obj/item/prop/helmetgarb/riot_shield, +/turf/open/floor/prison/redfull, +/area/fiorina/station/security) +"sj" = ( +/obj/structure/bed/chair/comfy, +/turf/open/floor/prison/redfull, +/area/fiorina/station/security) +"sq" = ( +/turf/open/floor/prison, +/area/fiorina/station/security) +"sA" = ( +/obj/structure/machinery/computer/prisoner, +/turf/open/floor/prison/redfull, +/area/fiorina/station/security) +"tf" = ( +/obj/item/prop/helmetgarb/riot_shield, +/turf/open/floor/prison, +/area/fiorina/station/security) +"th" = ( +/obj/item/weapon/baton, +/turf/open/floor/prison, +/area/fiorina/station/security) +"tl" = ( +/obj/item/stack/sheet/metal, +/turf/open/floor/prison/red/west, +/area/fiorina/station/security) +"tv" = ( +/obj/structure/machinery/photocopier{ + pixel_y = 4 + }, +/turf/open/floor/prison/redfull, +/area/fiorina/station/security) +"ty" = ( +/obj/structure/machinery/power/apc{ + dir = 1 + }, +/turf/open/floor/prison, +/area/fiorina/lz/near_lzII) +"tS" = ( +/obj/structure/closet/secure_closet/security_empty, +/obj/item/clothing/accessory/storage/holster, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/prison/redfull, +/area/fiorina/station/security) +"uh" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/device/flash, +/turf/open/floor/prison/redfull, +/area/fiorina/station/security) +"uQ" = ( +/turf/open/floor/prison, +/area/fiorina/lz/near_lzII) +"uX" = ( +/obj/item/ammo_magazine/shotgun/beanbag, +/turf/open/floor/prison/redfull, +/area/fiorina/station/security) +"vf" = ( +/turf/open/floor/prison/floor_marked/southwest, +/area/fiorina/lz/near_lzII) +"vq" = ( +/turf/closed/wall/r_wall/prison, +/area/fiorina/station/security) +"vS" = ( +/obj/structure/filingcabinet, +/obj/structure/filingcabinet{ + pixel_x = 16 + }, +/turf/open/floor/prison/floor_plate, +/area/fiorina/station/security) +"wi" = ( +/obj/structure/machinery/vending/snack, +/turf/open/floor/prison, +/area/fiorina/lz/near_lzII) +"wF" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/device/flashlight/lamp{ + pixel_x = -6; + pixel_y = 16 + }, +/obj/structure/machinery/computer/secure_data{ + dir = 8 + }, +/turf/open/floor/prison/floor_plate, +/area/fiorina/station/security) +"wH" = ( +/obj/effect/decal/cleanable/blood/oil, +/obj/item/circuitboard/airlock, +/turf/open/floor/plating/prison, +/area/fiorina/station/security) +"wJ" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/item/clothing/head/helmet/marine/veteran/ua_riot, +/turf/open/floor/prison, +/area/fiorina/station/security) +"wW" = ( +/obj/effect/landmark/corpsespawner/ua_riot, +/turf/open/floor/prison, +/area/fiorina/station/security) +"xp" = ( +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_29"; + pixel_y = 6 + }, +/turf/open/floor/prison/floor_plate, +/area/fiorina/lz/near_lzII) +"xv" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/book/manual/security_space_law{ + pixel_x = 3; + pixel_y = 5 + }, +/turf/open/floor/prison/darkredfull2, +/area/fiorina/station/security) +"xI" = ( +/obj/effect/landmark/survivor_spawner/fiorina_armory_cmb, +/turf/open/floor/prison/redfull, +/area/fiorina/station/security) +"xM" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/item/phone{ + pixel_x = 7; + pixel_y = -16 + }, +/obj/item/phone{ + pixel_x = -3; + pixel_y = 16 + }, +/obj/effect/landmark/objective_landmark/close, +/turf/open/floor/prison/floor_plate, +/area/fiorina/station/security) +"xW" = ( +/turf/open/floor/prison/redfull, +/area/fiorina/station/security) +"yf" = ( +/obj/item/frame/table/reinforced, +/turf/open/floor/prison/redfull, +/area/fiorina/station/security) +"yn" = ( +/obj/item/weapon/classic_baton, +/turf/open/floor/prison, +/area/fiorina/lz/near_lzII) +"yv" = ( +/turf/open/floor/prison/cell_stripe/west, +/area/fiorina/lz/near_lzII) +"yP" = ( +/obj/structure/closet/secure_closet/guncabinet{ + req_access = null + }, +/obj/item/clothing/under/marine/ua_riot, +/obj/item/clothing/suit/storage/marine/veteran/ua_riot, +/obj/item/prop/helmetgarb/riot_shield, +/turf/open/floor/prison/redfull, +/area/fiorina/station/security) +"zb" = ( +/obj/structure/machinery/light/double/blue, +/obj/item/stack/sheet/metal, +/turf/open/floor/prison/redfull, +/area/fiorina/station/security) +"zx" = ( +/obj/structure/closet/secure_closet/security_empty, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/item/ammo_magazine/shotgun/beanbag, +/turf/open/floor/prison/redfull, +/area/fiorina/station/security) +"zA" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_29"; + pixel_y = 10 + }, +/turf/open/floor/prison/redfull, +/area/fiorina/station/security) +"zI" = ( +/obj/structure/machinery/computer/secure_data, +/obj/structure/surface/table/reinforced/prison, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/prison, +/area/fiorina/station/security) +"Ac" = ( +/obj/structure/window/framed/prison/reinforced, +/turf/open/floor/prison/redfull, +/area/fiorina/station/security) +"Ai" = ( +/obj/structure/bed/sofa/south/grey/left, +/turf/open/floor/prison/redfull, +/area/fiorina/station/security) +"AD" = ( +/obj/effect/decal/cleanable/blood/xeno{ + icon_state = "xgib3" + }, +/turf/open/floor/prison/redfull, +/area/fiorina/station/security) +"AM" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/book/manual/security_space_law{ + pixel_x = 8; + pixel_y = 1 + }, +/obj/item/book/manual/security_space_law{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/book/manual/security_space_law{ + pixel_x = 3; + pixel_y = 5 + }, +/turf/open/floor/prison/redfull, +/area/fiorina/station/security) +"AY" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/item/phone{ + pixel_x = -3; + pixel_y = 10 + }, +/obj/item/phone{ + pixel_x = 9; + pixel_y = -10 + }, +/turf/open/floor/prison/floor_plate, +/area/fiorina/station/security) +"Bd" = ( +/obj/structure/barricade/handrail{ + dir = 8 + }, +/obj/item/stack/sheet/metal, +/turf/open/floor/prison, +/area/fiorina/station/security) +"BJ" = ( +/obj/structure/closet/secure_closet/guncabinet{ + req_access = null + }, +/obj/item/weapon/gun/smg/mp5, +/obj/item/ammo_magazine/smg/mp5, +/obj/item/ammo_magazine/smg/mp5, +/obj/item/clothing/under/marine/ua_riot, +/obj/item/clothing/suit/storage/marine/veteran/ua_riot, +/obj/item/prop/helmetgarb/riot_shield, +/turf/open/floor/prison/redfull, +/area/fiorina/station/security) +"Cb" = ( +/obj/structure/barricade/deployable{ + dir = 4 + }, +/turf/open/floor/prison/floor_plate, +/area/fiorina/station/security) +"CO" = ( +/obj/item/ammo_magazine/handful/shotgun/beanbag, +/turf/open/floor/plating/prison, +/area/fiorina/station/security) +"De" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/phone{ + pixel_y = 7 + }, +/turf/open/floor/prison/darkredfull2, +/area/fiorina/station/security) +"DH" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/machinery/computer/cameras{ + dir = 4 + }, +/turf/open/floor/prison/floor_plate, +/area/fiorina/station/security) +"Ek" = ( +/obj/item/reagent_container/food/drinks/coffeecup{ + pixel_x = 7; + pixel_y = 14 + }, +/obj/item/shard{ + icon_state = "large" + }, +/obj/item/stack/rods, +/turf/open/floor/plating/prison, +/area/fiorina/station/security) +"ER" = ( +/obj/effect/landmark/survivor_spawner/fiorina_armory_riot_control, +/turf/open/floor/prison/floor_plate, +/area/fiorina/station/security) +"EV" = ( +/obj/item/frame/rack, +/turf/open/floor/prison/redfull, +/area/fiorina/station/security) +"Fj" = ( +/obj/structure/stairs/perspective{ + dir = 8; + icon_state = "p_stair_sn_full_cap" + }, +/turf/open/floor/prison, +/area/fiorina/station/security) +"Fr" = ( +/turf/open/floor/plating/plating_catwalk/prison, +/area/fiorina/lz/near_lzII) +"Fw" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/surface/table/reinforced/prison, +/obj/structure/machinery/faxmachine, +/turf/open/floor/prison, +/area/fiorina/station/security) +"FH" = ( +/turf/open/floor/prison/floor_plate, +/area/fiorina/station/security) +"FK" = ( +/obj/item/frame/rack, +/obj/item/clothing/suit/storage/marine/veteran/ua_riot, +/obj/item/clothing/suit/storage/marine/veteran/ua_riot, +/turf/open/floor/prison/redfull, +/area/fiorina/station/security) +"FQ" = ( +/obj/effect/landmark/corpsespawner/ua_riot, +/obj/item/weapon/gun/energy/taser, +/turf/open/floor/prison, +/area/fiorina/station/security) +"FZ" = ( +/obj/item/weapon/shield/riot, +/turf/open/floor/prison, +/area/fiorina/station/security) +"Gd" = ( +/obj/structure/closet/secure_closet/guncabinet{ + req_access = null + }, +/obj/item/weapon/gun/shotgun/pump/dual_tube/cmb, +/obj/item/ammo_magazine/shotgun/buckshot, +/obj/item/ammo_magazine/shotgun/buckshot, +/obj/item/clothing/under/marine/ua_riot, +/obj/item/storage/pill_bottle/alkysine, +/obj/item/clothing/suit/storage/marine/veteran/ua_riot, +/turf/open/floor/prison/redfull, +/area/fiorina/station/security) +"Gl" = ( +/turf/open/floor/prison/darkredfull2, +/area/fiorina/station/security) +"GH" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/item/phone{ + pixel_y = -4 + }, +/obj/item/phone{ + pixel_x = 7; + pixel_y = 10 + }, +/obj/item/tool/pen, +/turf/open/floor/prison/floor_plate, +/area/fiorina/station/security) +"GZ" = ( +/obj/structure/barricade/wooden, +/turf/open/floor/prison/redfull, +/area/fiorina/station/security) +"Ho" = ( +/obj/structure/window_frame/prison/reinforced, +/obj/item/shard, +/turf/open/floor/plating/prison, +/area/fiorina/station/security) +"HF" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/reagent_container/spray/pepper, +/obj/item/clothing/glasses/sunglasses/sechud, +/turf/open/floor/prison/redfull, +/area/fiorina/station/security) +"HH" = ( +/obj/item/weapon/gun/launcher/grenade/m81/riot, +/turf/open/floor/prison, +/area/fiorina/station/security) +"HL" = ( +/obj/item/clothing/under/color/orange, +/obj/effect/spawner/gibspawner/human, +/turf/open/floor/prison/floor_marked/southwest, +/area/fiorina/lz/near_lzII) +"HW" = ( +/obj/structure/machinery/computer/cameras{ + dir = 1 + }, +/obj/item/tool/screwdriver{ + pixel_x = 5; + pixel_y = -4 + }, +/turf/open/floor/prison/redfull, +/area/fiorina/station/security) +"Ie" = ( +/obj/structure/stairs/perspective{ + dir = 4; + icon_state = "p_stair_sn_full_cap" + }, +/turf/open/floor/prison, +/area/fiorina/station/security) +"Iz" = ( +/obj/structure/closet/secure_closet/security_empty, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/item/storage/box/flashbangs, +/turf/open/floor/prison/redfull, +/area/fiorina/station/security) +"IG" = ( +/obj/structure/extinguisher_cabinet, +/turf/closed/wall/prison, +/area/fiorina/station/security) +"IK" = ( +/obj/item/clothing/head/helmet/marine/veteran/ua_riot, +/turf/open/floor/prison/cell_stripe/west, +/area/fiorina/lz/near_lzII) +"JR" = ( +/obj/item/ammo_casing, +/turf/open/floor/prison/redfull, +/area/fiorina/station/security) +"Kb" = ( +/obj/item/weapon/baton, +/turf/open/floor/prison/redfull, +/area/fiorina/station/security) +"KU" = ( +/obj/item/shard{ + icon_state = "medium" + }, +/turf/open/floor/prison, +/area/fiorina/lz/near_lzII) +"Lj" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/machinery/computer/cameras{ + dir = 8 + }, +/turf/open/floor/prison/darkredfull2, +/area/fiorina/station/security) +"Mg" = ( +/obj/structure/sign/poster/clf, +/turf/closed/wall/prison, +/area/fiorina/lz/near_lzII) +"Mp" = ( +/obj/structure/reagent_dispensers/peppertank{ + pixel_y = 30 + }, +/obj/item/explosive/grenade/custom/teargas, +/turf/open/floor/prison/redfull, +/area/fiorina/station/security) +"MX" = ( +/obj/item/stack/sheet/metal, +/turf/open/floor/plating/prison, +/area/fiorina/station/security) +"Ne" = ( +/obj/structure/closet/secure_closet/guncabinet{ + req_access = null + }, +/obj/item/weapon/gun/smg/mp5, +/obj/item/storage/belt/marine, +/obj/item/clothing/under/marine/ua_riot, +/obj/item/clothing/suit/storage/marine/veteran/ua_riot, +/obj/item/prop/helmetgarb/riot_shield, +/turf/open/floor/prison/redfull, +/area/fiorina/station/security) +"NL" = ( +/obj/structure/platform, +/turf/open/floor/prison/cell_stripe/west, +/area/fiorina/station/security) +"NN" = ( +/obj/item/ammo_magazine/rifle/m16, +/turf/open/floor/prison/floor_plate, +/area/fiorina/station/security) +"Ox" = ( +/obj/structure/platform, +/turf/open/floor/prison/floor_plate, +/area/fiorina/station/security) +"OA" = ( +/obj/item/implanter/compressed, +/obj/structure/safe, +/obj/effect/landmark/objective_landmark/science, +/turf/open/floor/prison/redfull, +/area/fiorina/station/security) +"OE" = ( +/obj/structure/machinery/vending/cola, +/turf/open/floor/prison, +/area/fiorina/lz/near_lzII) +"OV" = ( +/obj/effect/landmark/corpsespawner/prisoner, +/obj/effect/decal/cleanable/blood, +/turf/open/floor/prison, +/area/fiorina/lz/near_lzII) +"Pt" = ( +/obj/item/prop/helmetgarb/riot_shield, +/turf/open/floor/prison/floor_plate, +/area/fiorina/station/security) +"PA" = ( +/obj/structure/machinery/door/airlock/almayer/maint/colony/autoname{ + dir = 1; + req_one_access = null + }, +/turf/open/floor/plating/prison, +/area/fiorina/station/security) +"Qv" = ( +/obj/structure/machinery/door/airlock/prison_hatch/autoname, +/turf/open/floor/plating/prison, +/area/fiorina/station/security) +"QC" = ( +/obj/structure/machinery/vending/security, +/turf/open/floor/prison/floor_plate, +/area/fiorina/station/security) +"QF" = ( +/obj/structure/machinery/landinglight/ds2/delaytwo{ + dir = 4 + }, +/turf/open/floor/prison/floor_plate, +/area/fiorina/lz/near_lzII) +"QJ" = ( +/turf/closed/wall/prison, +/area/fiorina/station/security) +"QV" = ( +/obj/item/frame/rack, +/obj/item/clothing/under/marine/ua_riot, +/turf/open/floor/prison/redfull, +/area/fiorina/station/security) +"Re" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/machinery/recharger{ + pixel_y = 4 + }, +/turf/open/floor/prison/darkredfull2, +/area/fiorina/station/security) +"RR" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/storage/fancy/cigarettes/emeraldgreen, +/obj/item/tool/lighter, +/turf/open/floor/prison/redfull, +/area/fiorina/station/security) +"Sd" = ( +/obj/item/poster, +/turf/open/floor/prison/floor_plate, +/area/fiorina/station/security) +"Sl" = ( +/obj/structure/extinguisher_cabinet, +/turf/closed/wall/r_wall/prison, +/area/fiorina/station/security) +"Sm" = ( +/obj/structure/machinery/deployable/barrier, +/turf/open/floor/prison/floor_plate, +/area/fiorina/station/security) +"Sn" = ( +/obj/structure/prop/almayer/computers/sensor_computer1{ + name = "computer" + }, +/turf/open/floor/prison/darkredfull2, +/area/fiorina/station/security) +"Sp" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/machinery/computer/cameras{ + dir = 8 + }, +/obj/item/phone{ + pixel_x = -3; + pixel_y = 13 + }, +/turf/open/floor/plating/prison, +/area/fiorina/station/security) +"Su" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/stack/rods, +/turf/open/floor/prison/floor_plate, +/area/fiorina/station/security) +"SD" = ( +/obj/structure/machinery/vending/coffee, +/turf/open/floor/prison, +/area/fiorina/lz/near_lzII) +"SE" = ( +/obj/structure/stairs/perspective{ + icon_state = "p_stair_ew_full_cap" + }, +/obj/structure/platform/stair_cut/alt, +/turf/open/floor/plating/prison, +/area/fiorina/station/security) +"Tn" = ( +/obj/structure/machinery/power/apc{ + dir = 4 + }, +/turf/open/floor/prison, +/area/fiorina/station/security) +"Tp" = ( +/obj/item/paper/crumpled, +/turf/open/floor/prison/redfull, +/area/fiorina/station/security) +"TO" = ( +/obj/item/stack/tile/plasteel, +/turf/open/floor/plating/prison, +/area/fiorina/station/security) +"UE" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/machinery/computer/cameras{ + dir = 1 + }, +/turf/open/floor/prison/redfull, +/area/fiorina/station/security) +"UU" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/ammo_magazine/rifle/m16, +/turf/open/floor/prison/redfull, +/area/fiorina/station/security) +"Va" = ( +/obj/structure/reagent_dispensers/water_cooler, +/turf/open/floor/prison/redfull, +/area/fiorina/station/security) +"Vb" = ( +/obj/item/stack/cable_coil, +/turf/open/floor/prison/floor_plate, +/area/fiorina/station/security) +"Vd" = ( +/obj/effect/decal/cleanable/blood{ + dir = 4; + icon_state = "gib6" + }, +/turf/open/floor/prison/floor_plate, +/area/fiorina/lz/near_lzII) +"Vs" = ( +/obj/structure/closet/secure_closet/guncabinet{ + req_access = null + }, +/obj/item/clothing/under/marine/ua_riot, +/obj/item/clothing/suit/storage/marine/veteran/ua_riot, +/turf/open/floor/prison/redfull, +/area/fiorina/station/security) +"VF" = ( +/turf/closed/wall/prison, +/area/fiorina/lz/near_lzII) +"VG" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/effect/spawner/random/goggles/lowchance, +/turf/open/floor/prison/redfull, +/area/fiorina/station/security) +"Wc" = ( +/obj/structure/machinery/light/double/blue{ + dir = 1; + pixel_y = 21 + }, +/turf/open/floor/prison, +/area/fiorina/lz/near_lzII) +"Wp" = ( +/obj/structure/closet/secure_closet/security_empty, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/item/weapon/classic_baton, +/turf/open/floor/prison/redfull, +/area/fiorina/station/security) +"Ws" = ( +/obj/structure/bed/sofa/south/grey/right, +/turf/open/floor/prison/redfull, +/area/fiorina/station/security) +"Wy" = ( +/obj/item/weapon/shield/riot, +/turf/open/floor/prison/floor_plate, +/area/fiorina/station/security) +"WB" = ( +/obj/structure/bed/chair/office/light{ + dir = 4 + }, +/turf/open/floor/wood, +/area/fiorina/station/security) +"WG" = ( +/obj/item/stack/rods, +/turf/open/floor/prison/redfull, +/area/fiorina/station/security) +"WI" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/item/phone{ + pixel_x = 6; + pixel_y = -15 + }, +/obj/item/phone{ + pixel_y = 7 + }, +/turf/open/floor/prison/floor_plate, +/area/fiorina/station/security) +"WW" = ( +/obj/effect/landmark/objective_landmark/close, +/turf/open/floor/prison/floor_plate, +/area/fiorina/station/security) +"Xj" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/storage/box/handcuffs{ + pixel_x = 6; + pixel_y = 1 + }, +/obj/item/storage/box/handcuffs{ + pixel_x = -7; + pixel_y = 1 + }, +/obj/item/storage/box/handcuffs{ + pixel_x = -2; + pixel_y = 11 + }, +/obj/structure/machinery/light/double/blue{ + dir = 1; + pixel_y = 21 + }, +/turf/open/floor/prison/redfull, +/area/fiorina/station/security) +"XA" = ( +/obj/item/storage/belt/marine, +/turf/open/floor/prison, +/area/fiorina/station/security) +"XO" = ( +/obj/structure/machinery/landinglight/ds2/delayone{ + dir = 4 + }, +/turf/open/floor/prison/floor_plate, +/area/fiorina/lz/near_lzII) +"XV" = ( +/turf/closed/wall/r_wall/prison_unmeltable, +/area/fiorina/station/security) +"Yt" = ( +/turf/open/floor/prison/cell_stripe/east, +/area/fiorina/station/security) +"YH" = ( +/obj/structure/bed/chair{ + dir = 1 + }, +/obj/item/weapon/gun/energy/taser, +/turf/open/floor/prison/floor_plate, +/area/fiorina/station/security) +"YI" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/device/radio{ + pixel_x = -6; + pixel_y = 16 + }, +/obj/item/device/radio{ + pixel_x = 6; + pixel_y = 7 + }, +/turf/open/floor/prison/redfull, +/area/fiorina/station/security) +"YL" = ( +/obj/structure/window/framed/prison/reinforced, +/turf/open/floor/plating/prison, +/area/fiorina/station/security) +"YS" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/ashtray/plastic, +/obj/item/clothing/mask/cigarette, +/obj/item/trash/cigbutt/ucigbutt{ + pixel_y = 8 + }, +/obj/structure/sign/nosmoking_1{ + pixel_y = 30 + }, +/turf/open/floor/prison/redfull, +/area/fiorina/station/security) +"YZ" = ( +/obj/effect/landmark/corpsespawner/prisoner, +/obj/structure/bed/chair/comfy{ + dir = 8 + }, +/obj/item/shard/shrapnel, +/turf/open/floor/prison/redfull, +/area/fiorina/station/security) +"Zg" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/flora/pottedplant{ + pixel_y = 9 + }, +/obj/structure/machinery/light/double/blue, +/turf/open/floor/prison, +/area/fiorina/station/security) +"Zi" = ( +/obj/structure/machinery/line_nexter, +/obj/item/stack/cable_coil, +/turf/open/floor/prison/red/west, +/area/fiorina/station/security) +"Zo" = ( +/obj/structure/machinery/vending/cola, +/turf/open/floor/prison/redfull, +/area/fiorina/station/security) + +(1,1,1) = {" +nl +nl +nl +nl +nl +Fj +xW +FH +FH +FH +xW +Ie +Tn +Zg +vq +vq +Sl +vq +vq +nl +nl +nl +nl +nl +nl +nl +nl +nl +nl +nl +nl +"} +(2,1,1) = {" +nl +nl +nl +nl +nl +vq +Ac +is +is +is +Ac +vq +vq +vq +vq +on +yP +Vs +vq +vq +nl +nl +nl +nl +nl +nl +nl +nl +nl +nl +nl +"} +(3,1,1) = {" +nl +nl +nl +nl +nl +pn +yf +ch +ch +hI +do +vq +FH +jJ +FH +jJ +NN +lZ +EV +vq +nl +nl +nl +nl +nl +nl +nl +nl +nl +nl +nl +"} +(4,1,1) = {" +nl +nl +nl +nl +nl +vq +sA +sq +HH +sq +FH +PA +sq +tf +Gd +lP +Va +XA +FK +vq +nl +nl +nl +nl +nl +nl +nl +nl +nl +nl +nl +"} +(5,1,1) = {" +vq +vq +vq +vq +vq +vq +qQ +wW +sq +sq +FH +PA +sq +sq +wJ +mf +gk +fZ +QV +vq +nl +nl +nl +nl +nl +nl +nl +nl +nl +nl +nl +"} +(6,1,1) = {" +nl +nl +YL +lR +xW +lR +xW +FH +ER +pN +xW +vq +fd +fd +vq +lE +kX +aK +vq +vq +QJ +QJ +QJ +QJ +QJ +QJ +QJ +QJ +QJ +QJ +cr +"} +(7,1,1) = {" +nl +nl +YL +dT +GH +dT +xW +jI +FH +FH +bm +Su +YH +hg +PA +sq +sq +sq +PA +FH +sq +OA +QJ +YS +xW +ke +YL +FH +pV +Vb +QJ +"} +(8,1,1) = {" +nl +nl +YL +DH +xM +cn +HW +fy +Bd +tl +Zi +bO +WW +Pt +vq +BJ +rR +Ne +vq +tS +sq +Wp +QJ +Ai +sq +fh +PA +xW +hY +WG +wH +"} +(9,1,1) = {" +nl +vq +vq +qd +uX +sj +Tp +ER +mD +QJ +QJ +QJ +QJ +QJ +vq +vq +vq +vq +vq +Iz +FH +zx +QJ +Ws +sq +iK +YL +wF +jW +oE +QJ +"} +(10,1,1) = {" +nl +YL +lR +qw +lR +xW +pd +sq +sq +lF +Wy +Sd +FH +TO +Ox +vq +xW +xW +QJ +QJ +Qv +QJ +QJ +RR +sq +xW +QJ +YL +Ho +YL +cr +"} +(11,1,1) = {" +nl +YL +dT +WI +dT +xW +xI +rP +th +bC +FH +mt +rl +MX +Ox +QJ +Mp +xW +xW +xW +FH +xW +QJ +zA +sq +xW +QJ +pR +uQ +uQ +uQ +"} +(12,1,1) = {" +nl +YL +DH +AY +DH +xW +xW +FZ +sq +CO +hI +FH +FH +Sm +nD +IG +xW +wW +sq +sq +sq +xW +IG +xW +sq +xW +QJ +Mg +aE +nN +nN +"} +(13,1,1) = {" +vq +vq +qd +xW +xW +Kb +xW +ER +gI +QJ +Yt +Yt +XV +Yt +cI +QJ +Xj +sq +xW +xW +sq +QC +PA +FH +sq +xW +QJ +wi +nN +nN +nN +"} +(14,1,1) = {" +YL +Fw +ji +xW +pd +qw +JR +pp +QJ +QJ +lv +lv +XV +lv +NL +YL +Zo +sq +AM +YI +FQ +QC +PA +FH +sq +xW +QJ +SD +nN +nN +nN +"} +(15,1,1) = {" +YL +fs +xW +qw +xW +xW +xW +sq +IG +FH +FH +FH +vS +FH +Ox +YL +bl +sq +uh +am +sq +xW +QJ +xW +xW +xW +QJ +Mg +nN +nN +uQ +"} +(16,1,1) = {" +YL +zI +cZ +xW +UU +jb +YZ +pE +QJ +Cb +FH +fh +gl +FH +Ox +YL +nf +sq +HF +AD +sq +xW +QJ +vq +QJ +QJ +QJ +qY +Fr +Fr +uQ +"} +(17,1,1) = {" +vq +vq +XV +eK +eK +eK +XV +QJ +QJ +Qv +vq +vq +SE +ma +bb +QJ +qX +sq +sq +sq +sq +oS +oS +vq +VF +OE +Mg +uQ +Fr +Fr +uQ +"} +(18,1,1) = {" +nl +nl +nl +nl +nl +nl +eK +mn +Gl +Gl +fX +YL +jL +lA +jL +gV +VG +rg +xW +pa +GZ +lR +UE +vq +gT +aE +uQ +uQ +nN +nN +uQ +"} +(19,1,1) = {" +nl +nl +nl +nl +nl +nl +eK +Sn +Gl +WB +Re +YL +vf +HL +vf +gV +tv +zb +QJ +oi +QJ +aX +zA +vq +Wc +uQ +uQ +uQ +nN +nN +uQ +"} +(20,1,1) = {" +nl +nl +nl +nl +nl +nl +eK +co +De +Lj +xv +YL +IK +lO +yv +QJ +Sp +Ek +cr +OV +cr +gV +gV +vq +ty +uQ +uQ +uQ +nN +nN +uQ +"} +(21,1,1) = {" +nl +nl +nl +nl +nl +nl +XV +YL +YL +vq +YL +vq +nN +Vd +nN +xp +KU +uQ +xp +yn +xp +uQ +uQ +xp +nN +uQ +ce +uQ +XO +QF +np +"} diff --git a/maps/map_files/Ice_Colony_v2/Ice_Colony_v2.dmm b/maps/map_files/Ice_Colony_v2/Ice_Colony_v2.dmm index 485760ebc2af..80342068f6e6 100644 --- a/maps/map_files/Ice_Colony_v2/Ice_Colony_v2.dmm +++ b/maps/map_files/Ice_Colony_v2/Ice_Colony_v2.dmm @@ -93,25 +93,16 @@ /turf/open/ice, /area/ice_colony/exterior/surface/valley/northwest) "aau" = ( -/turf/open/floor/plating/icefloor{ - dir = 9; - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate/northwest, /area/ice_colony/exterior/surface/landing_pad2) "aav" = ( /obj/structure/barricade/metal{ dir = 1 }, -/turf/open/floor/plating/icefloor{ - dir = 1; - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate/north, /area/ice_colony/exterior/surface/landing_pad2) "aaw" = ( -/turf/open/floor/plating/icefloor{ - dir = 5; - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate/northeast, /area/ice_colony/exterior/surface/landing_pad2) "aax" = ( /turf/open/auto_turf/snow/layer2, @@ -165,10 +156,7 @@ /obj/structure/barricade/metal{ dir = 8 }, -/turf/open/floor/plating/icefloor{ - dir = 8; - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate/west, /area/ice_colony/exterior/surface/landing_pad2) "aaL" = ( /obj/structure/machinery/colony_floodlight, @@ -179,19 +167,13 @@ /area/ice_colony/exterior/surface/landing_pad2) "aaN" = ( /obj/structure/fence, -/turf/open/floor/plating/icefloor{ - dir = 1; - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate/north, /area/ice_colony/exterior/surface/landing_pad2) "aaO" = ( /obj/structure/barricade/metal{ dir = 4 }, -/turf/open/floor/plating/icefloor{ - dir = 4; - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate/east, /area/ice_colony/exterior/surface/landing_pad2) "aaP" = ( /turf/closed/ice/corner{ @@ -225,16 +207,10 @@ }, /area/ice_colony/exterior/surface/cliff) "aaV" = ( -/turf/open/floor/plating/icefloor{ - dir = 10; - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate/southwest, /area/ice_colony/exterior/surface/landing_pad2) "aaW" = ( -/turf/open/floor/plating/icefloor{ - dir = 6; - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate/southeast, /area/ice_colony/exterior/surface/landing_pad2) "aaX" = ( /turf/closed/ice/end{ @@ -314,10 +290,7 @@ /area/ice_colony/exterior/surface/cliff) "abo" = ( /obj/structure/fence, -/turf/open/floor/plating/icefloor{ - dir = 8; - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate/west, /area/ice_colony/exterior/surface/landing_pad2) "abp" = ( /turf/closed/wall{ @@ -336,10 +309,7 @@ /area/ice_colony/exterior/surface/landing_pad2) "abs" = ( /obj/structure/fence, -/turf/open/floor/plating/icefloor{ - dir = 4; - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate/east, /area/ice_colony/exterior/surface/landing_pad2) "abt" = ( /obj/structure/ice/thin/straight{ @@ -627,16 +597,10 @@ /area/ice_colony/exterior/surface/valley/northwest) "acF" = ( /obj/structure/machinery/door/airlock/multi_tile/elevator/access/freight, -/turf/open/floor/plating/icefloor{ - dir = 8; - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate/west, /area/ice_colony/surface/requesitions) "acG" = ( -/turf/open/floor/plating/icefloor{ - dir = 4; - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate/east, /area/ice_colony/surface/requesitions) "acH" = ( /obj/structure/machinery/light, @@ -653,24 +617,15 @@ /obj/item/tool/extinguisher/mini, /obj/item/circuitboard/airlock, /obj/effect/landmark/crap_item, -/turf/open/floor{ - dir = 9; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/northwest, /area/ice_colony/surface/engineering/electric) "acK" = ( /obj/structure/machinery/recharge_station, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/ice_colony/surface/engineering/electric) "acL" = ( /obj/structure/surface/table, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/ice_colony/surface/engineering/electric) "acM" = ( /obj/structure/surface/table, @@ -679,10 +634,7 @@ }, /obj/item/storage/toolbox/emergency, /obj/item/circuitboard/firealarm, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/ice_colony/surface/engineering/electric) "acN" = ( /obj/structure/surface/table, @@ -691,10 +643,7 @@ /obj/item/device/assembly/igniter, /obj/item/device/assembly/signaller, /obj/item/circuitboard/airlock, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/ice_colony/surface/engineering/electric) "acO" = ( /obj/structure/tunnel{ @@ -706,10 +655,7 @@ /obj/structure/surface/table, /obj/item/device/assembly/infra, /obj/item/device/assembly/voice, -/turf/open/floor{ - dir = 5; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/northeast, /area/ice_colony/surface/engineering/electric) "acQ" = ( /obj/structure/ice/thin/end{ @@ -754,28 +700,18 @@ /turf/open/floor/plating/icefloor, /area/ice_colony/surface/requesitions) "acW" = ( -/turf/open/floor/plating/icefloor{ - dir = 10; - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate/southwest, /area/ice_colony/surface/requesitions) "acX" = ( -/turf/open/floor/plating/icefloor{ - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate, /area/ice_colony/surface/requesitions) "acY" = ( /obj/effect/landmark/corpsespawner/miner, /obj/effect/decal/cleanable/blood, -/turf/open/floor/plating/icefloor{ - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate, /area/ice_colony/surface/requesitions) "acZ" = ( -/turf/open/floor/plating/icefloor{ - dir = 6; - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate/southeast, /area/ice_colony/surface/requesitions) "ada" = ( /obj/item/lightstick/planted, @@ -804,36 +740,22 @@ /obj/item/explosive/grenade/custom/metal_foam, /obj/item/explosive/grenade/custom/metal_foam, /obj/item/device/flashlight, -/turf/open/floor{ - dir = 9; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/northwest, /area/ice_colony/surface/engineering/electric) "adf" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/darkyellowcorners2/north, /area/ice_colony/surface/engineering/electric) "adg" = ( -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/engineering/electric) "adh" = ( -/turf/open/floor{ - dir = 4; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/darkyellowcorners2/east, /area/ice_colony/surface/engineering/electric) "adi" = ( /obj/structure/surface/table, /obj/item/storage/box/lights/mixed, -/turf/open/floor{ - dir = 5; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/northeast, /area/ice_colony/surface/engineering/electric) "adj" = ( /turf/open/ice, @@ -848,16 +770,6 @@ }, /turf/open/floor/plating/icefloor, /area/ice_colony/surface/requesitions) -"adm" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 4 - }, -/obj/structure/machinery/door/airlock/almayer/secure/colony{ - locked = 0; - name = "Colony Requesitions Storage Pod" - }, -/turf/open/floor/plating/icefloor, -/area/ice_colony/surface/requesitions) "adn" = ( /obj/structure/shuttle/diagonal{ icon_state = "swall0" @@ -865,9 +777,7 @@ /obj/structure/shuttle/diagonal{ icon_state = "heater" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/hangar/alpha) "ado" = ( /obj/structure/pipes/standard/manifold/hidden/green{ @@ -891,34 +801,25 @@ /turf/open/ice, /area/ice_colony/exterior/surface/clearing/north) "ads" = ( -/turf/open/floor{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/west, /area/ice_colony/surface/engineering/electric) "adt" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/engineering/electric) "adu" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/engineering/electric) "adv" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/engineering/electric) "adw" = ( /obj/structure/shuttle/diagonal{ @@ -927,15 +828,11 @@ /obj/structure/shuttle/diagonal{ icon_state = "heater" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/hangar/beta) "adx" = ( /obj/effect/landmark/survivor_spawner, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/engineering/electric) "ady" = ( /obj/structure/surface/table, @@ -945,10 +842,7 @@ pixel_x = 24; start_charge = 0 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/ice_colony/surface/engineering/electric) "adz" = ( /obj/structure/ice/thin/corner{ @@ -986,16 +880,10 @@ name = "Storage Unit Control"; pixel_x = -24 }, -/turf/open/floor/plating/icefloor{ - dir = 1; - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate/north, /area/ice_colony/surface/requesitions) "adF" = ( -/turf/open/floor/plating/icefloor{ - dir = 5; - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate/northeast, /area/ice_colony/surface/requesitions) "adG" = ( /obj/structure/shuttle/diagonal{ @@ -1005,9 +893,7 @@ dir = 1; icon_state = "platform" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/hangar/alpha) "adH" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -1015,10 +901,7 @@ /turf/open/floor/plating/icefloor, /area/ice_colony/surface/requesitions) "adI" = ( -/turf/open/floor/plating/icefloor{ - dir = 9; - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate/northwest, /area/ice_colony/surface/requesitions) "adJ" = ( /obj/structure/machinery/conveyor{ @@ -1028,10 +911,7 @@ name = "Storage Unit Control"; pixel_x = 24 }, -/turf/open/floor/plating/icefloor{ - dir = 1; - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate/north, /area/ice_colony/surface/requesitions) "adK" = ( /obj/structure/machinery/door_control{ @@ -1058,52 +938,35 @@ /obj/structure/surface/table, /obj/item/tool/crowbar/red, /obj/item/device/flash, -/turf/open/floor{ - dir = 10; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/southwest, /area/ice_colony/surface/engineering/electric) "adO" = ( /obj/structure/surface/table, /obj/item/device/flashlight/flare, /obj/item/device/radio, -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/ice_colony/surface/engineering/electric) "adP" = ( /obj/structure/surface/table, /obj/item/device/assembly/prox_sensor, /obj/item/device/assembly/timer, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/ice_colony/surface/engineering/electric) "adQ" = ( -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/ice_colony/surface/engineering/electric) "adR" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/engineering/electric) "adS" = ( /obj/structure/reagent_dispensers/fueltank, -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/ice_colony/surface/engineering/electric) "adT" = ( /obj/structure/surface/table, /obj/item/storage/box/lightstick, -/turf/open/floor{ - dir = 6; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/southeast, /area/ice_colony/surface/engineering/electric) "adU" = ( /obj/structure/ice/thin/end, @@ -1145,10 +1008,7 @@ /turf/open/floor/plating/icefloor, /area/ice_colony/surface/requesitions) "aea" = ( -/turf/open/floor/plating/icefloor{ - dir = 8; - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate/west, /area/ice_colony/surface/requesitions) "aeb" = ( /turf/closed/ice_rock/singlePart, @@ -1169,9 +1029,7 @@ name = "\improper Colony Engineering Electric Storage"; req_access_txt = "100" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/engineering/electric) "aeg" = ( /turf/closed/wall, @@ -1193,17 +1051,13 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/plating/icefloor{ - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate, /area/ice_colony/surface/requesitions) "ael" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/plating/icefloor{ - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate, /area/ice_colony/surface/requesitions) "aem" = ( /turf/open/auto_turf/snow/layer1, @@ -1218,10 +1072,7 @@ /obj/effect/spawner/random/technology_scanner, /obj/effect/spawner/random/tool, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 9; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/northwest, /area/ice_colony/surface/engineering/tool) "aeo" = ( /obj/structure/surface/table, @@ -1233,19 +1084,13 @@ start_charge = 0 }, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/ice_colony/surface/engineering/tool) "aep" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/ice_colony/surface/engineering/tool) "aeq" = ( /obj/structure/surface/rack, @@ -1256,10 +1101,7 @@ /obj/effect/spawner/random/toolbox, /obj/effect/landmark/crap_item, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 5; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/northeast, /area/ice_colony/surface/engineering/tool) "aer" = ( /obj/structure/window/framed/colony, @@ -1267,46 +1109,26 @@ /area/ice_colony/surface/engineering/tool) "aes" = ( /obj/structure/machinery/space_heater, -/turf/open/floor{ - dir = 9; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/northwest, /area/ice_colony/surface/engineering) "aet" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/engineering) "aeu" = ( -/turf/open/floor{ - dir = 5; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/northeast, /area/ice_colony/surface/engineering) "aev" = ( /obj/structure/surface/table, /obj/item/stack/medical/ointment, -/turf/open/floor{ - dir = 9; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/northwest, /area/ice_colony/surface/engineering/generator) "aew" = ( /obj/structure/machinery/light{ dir = 1 }, /obj/structure/reagent_dispensers/fueltank, -/turf/open/floor{ - dir = 5; - icon_state = "darkyellow2" - }, -/area/ice_colony/surface/engineering/generator) -"aex" = ( -/obj/structure/machinery/power/geothermal, -/turf/open/floor{ - icon_state = "platebot" - }, +/turf/open/floor/darkyellow2/northeast, /area/ice_colony/surface/engineering/generator) "aey" = ( /obj/item/lightstick/planted, @@ -1315,10 +1137,7 @@ "aez" = ( /obj/structure/surface/table, /obj/effect/spawner/random/toolbox, -/turf/open/floor{ - dir = 5; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/northeast, /area/ice_colony/surface/engineering/generator) "aeA" = ( /obj/effect/landmark/monkey_spawn, @@ -1330,18 +1149,6 @@ }, /turf/open/ice, /area/ice_colony/exterior/surface/valley/northeast) -"aeC" = ( -/obj/structure/machinery/door/airlock{ - id_tag = "st_5"; - locked = 0; - name = "Storage Unit"; - req_one_access_txt = "100;101;102;103" - }, -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 4 - }, -/turf/open/floor/plating/icefloor, -/area/ice_colony/surface/requesitions) "aeD" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 @@ -1395,32 +1202,22 @@ /area/ice_colony/surface/engineering) "aeL" = ( /obj/structure/dispenser, -/turf/open/floor{ - dir = 9; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/northwest, /area/ice_colony/surface/engineering/tool) "aeM" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/darkyellowcorners2/north, /area/ice_colony/surface/engineering/tool) "aeN" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/engineering/tool) "aeO" = ( -/turf/open/floor{ - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/darkyellowcorners2, /area/ice_colony/surface/engineering/tool) "aeP" = ( /obj/structure/surface/rack, @@ -1431,43 +1228,26 @@ /obj/item/storage/belt/utility, /obj/effect/spawner/random/toolbox, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 6; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/southeast, /area/ice_colony/surface/engineering/tool) "aeQ" = ( /obj/structure/machinery/space_heater, -/turf/open/floor{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/west, /area/ice_colony/surface/engineering) "aeR" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/ice_colony/surface/engineering) "aeS" = ( -/turf/open/floor{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/west, /area/ice_colony/surface/engineering/generator) "aeT" = ( -/turf/open/floor{ - dir = 4; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/darkyellowcorners2/east, /area/ice_colony/surface/engineering/generator) "aeU" = ( -/turf/open/floor{ - icon_state = "bcircuit" - }, +/turf/open/floor/bcircuit, /area/ice_colony/surface/engineering/generator) "aeV" = ( /obj/structure/shuttle/diagonal{ @@ -1477,15 +1257,10 @@ dir = 1; icon_state = "platform" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/hangar/alpha) "aeW" = ( -/turf/open/floor{ - dir = 1; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/darkyellowcorners2/north, /area/ice_colony/surface/engineering/generator) "aeX" = ( /obj/structure/surface/table, @@ -1493,10 +1268,7 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor{ - dir = 5; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/northeast, /area/ice_colony/surface/engineering/generator) "aeY" = ( /obj/vehicle/train/cargo/trolley, @@ -1548,10 +1320,7 @@ id = "engineering_ladder"; pixel_y = 16 }, -/turf/open/floor{ - dir = 9; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/northwest, /area/ice_colony/surface/engineering) "afh" = ( /obj/structure/ladder{ @@ -1560,85 +1329,56 @@ id = "engineering_ladder1"; pixel_y = 16 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/ice_colony/surface/engineering) "afi" = ( /obj/structure/surface/table/reinforced, /obj/item/stack/medical/bruise_pack, /obj/item/cell, /obj/item/clothing/gloves/yellow, -/turf/open/floor{ - dir = 5; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/northeast, /area/ice_colony/surface/engineering) "afj" = ( /obj/structure/surface/table, /obj/item/cell/high/empty, /obj/structure/machinery/cell_charger, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 10; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/southwest, /area/ice_colony/surface/engineering/tool) "afk" = ( -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/ice_colony/surface/engineering/tool) "afl" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/engineering/tool) "afm" = ( /obj/structure/surface/rack, /obj/item/stack/cable_coil, /obj/item/storage/box/engineer, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 6; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/southeast, /area/ice_colony/surface/engineering/tool) "afn" = ( -/turf/open/floor{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/west, /area/ice_colony/surface/engineering) "afo" = ( -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/engineering) "afp" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony{ name = "\improper Colony Engineering Generator Room" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/engineering/generator) "afq" = ( -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/engineering/generator) "afr" = ( -/turf/open/floor{ - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/darkyellowcorners2, /area/ice_colony/surface/engineering/generator) "afs" = ( -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/ice_colony/surface/engineering/generator) "aft" = ( /obj/structure/shuttle/diagonal{ @@ -1648,23 +1388,15 @@ dir = 1; icon_state = "platform" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/hangar/beta) "afu" = ( -/turf/open/floor{ - dir = 8; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/darkyellowcorners2/west, /area/ice_colony/surface/engineering/generator) "afv" = ( /obj/structure/surface/table, /obj/effect/landmark/crap_item, -/turf/open/floor{ - dir = 5; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/northeast, /area/ice_colony/surface/engineering/generator) "afw" = ( /obj/structure/ice/ice_rock/cornerOverlay{ @@ -1690,22 +1422,13 @@ }, /obj/item/cell, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 9; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/northwest, /area/ice_colony/surface/engineering) "afA" = ( -/turf/open/floor{ - dir = 1; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/darkyellowcorners2/north, /area/ice_colony/surface/engineering) "afB" = ( -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/ice_colony/surface/engineering) "afC" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -1713,42 +1436,28 @@ dir = 1; name = "\improper Colony Engineering Tool Storage" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/engineering/tool) "afD" = ( /obj/structure/closet/firecloset, -/turf/open/floor{ - dir = 9; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/northwest, /area/ice_colony/surface/engineering) "afE" = ( /obj/effect/decal/cleanable/blood/drip{ icon_state = "3" }, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/darkyellowcorners2/north, /area/ice_colony/surface/engineering) "afF" = ( /obj/effect/decal/cleanable/blood/drip, -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/ice_colony/surface/engineering) "afG" = ( /obj/structure/window/framed/colony, /turf/open/floor/plating, /area/ice_colony/surface/engineering/generator) "afH" = ( -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/ice_colony/surface/engineering/generator) "afI" = ( /obj/structure/shuttle/diagonal{ @@ -1758,9 +1467,7 @@ dir = 1; icon_state = "platform" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/hangar/beta) "afJ" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -1780,10 +1487,7 @@ pixel_x = -5; pixel_y = -5 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/ice_colony/surface/engineering/generator) "afM" = ( /obj/item/storage/toolbox/emergency, @@ -1819,18 +1523,13 @@ }, /obj/item/stack/cable_coil, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/west, /area/ice_colony/surface/engineering) "afS" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/engineering) "afT" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -1839,9 +1538,7 @@ /obj/structure/machinery/door/airlock/almayer/engineering/colony{ name = "\improper Colony Engineering Material Storage" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/engineering) "afU" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -1850,9 +1547,7 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/engineering) "afV" = ( /obj/structure/machinery/power/apc{ @@ -1863,18 +1558,13 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/ice_colony/surface/engineering) "afW" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/engineering) "afX" = ( /obj/structure/machinery/light{ @@ -1883,25 +1573,17 @@ /obj/structure/closet/fireaxecabinet{ pixel_y = 32 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/ice_colony/surface/engineering) "afY" = ( /obj/structure/machinery/light_switch{ pixel_y = 32 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/ice_colony/surface/engineering) "afZ" = ( /obj/item/weapon/gun/pistol/highpower, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/engineering) "aga" = ( /obj/effect/decal/cleanable/blood, @@ -1910,17 +1592,12 @@ }, /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/landmark/corpsespawner/engineer, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/engineering) "agb" = ( /obj/structure/surface/table, /obj/effect/spawner/random/toolbox, -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/ice_colony/surface/engineering/generator) "agc" = ( /obj/item/stack/sheet/mineral/phoron, @@ -1935,14 +1612,10 @@ "age" = ( /obj/structure/surface/table, /obj/item/reagent_container/food/drinks/cans/thirteenloko, -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/ice_colony/surface/engineering/electric) "agf" = ( -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/ice_colony/surface/engineering) "agg" = ( /obj/structure/closet/secure_closet/engineering_electrical, @@ -1950,16 +1623,11 @@ /obj/item/circuitboard/apc, /obj/item/circuitboard/apc, /obj/structure/machinery/light, -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/ice_colony/surface/engineering) "agh" = ( /obj/structure/closet/secure_closet/engineering_welding, -/turf/open/floor{ - dir = 6; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/southeast, /area/ice_colony/surface/engineering) "agi" = ( /turf/closed/wall, @@ -1974,32 +1642,23 @@ /area/ice_colony/exterior/surface/valley/northwest) "agl" = ( /obj/structure/bed/chair, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/engineering) "agm" = ( /obj/effect/decal/cleanable/blood/drip, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/engineering) "agn" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/engineering) "ago" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/ice_colony/surface/engineering) "agp" = ( /obj/structure/window/framed/colony, @@ -2012,36 +1671,19 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/west, /area/ice_colony/surface/engineering/generator) "agr" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, -/area/ice_colony/surface/engineering/generator) -"ags" = ( -/obj/structure/machinery/power/geothermal, -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 4 - }, -/turf/open/floor{ - icon_state = "platebot" - }, +/turf/open/floor/darkyellow2/east, /area/ice_colony/surface/engineering/generator) "agt" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "bcircuit" - }, +/turf/open/floor/bcircuit, /area/ice_colony/surface/engineering/generator) "agu" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -2053,16 +1695,11 @@ /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/engineering/generator) "agw" = ( /obj/structure/surface/table, -/turf/open/floor{ - dir = 9; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/northwest, /area/ice_colony/surface/engineering/generator) "agx" = ( /obj/structure/ice/ice_rock/cornerOverlay, @@ -2103,18 +1740,13 @@ /obj/structure/disposalpipe/trunk{ dir = 4 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/west, /area/ice_colony/surface/engineering) "agE" = ( /obj/structure/disposalpipe/segment{ dir = 8 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/engineering) "agF" = ( /obj/structure/bed/chair{ @@ -2124,9 +1756,7 @@ dir = 8 }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/engineering) "agG" = ( /obj/structure/surface/table, @@ -2136,9 +1766,7 @@ icon_state = "pipe-c" }, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/engineering) "agH" = ( /obj/structure/surface/table/reinforced, @@ -2149,42 +1777,29 @@ amount = 15 }, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 10; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/southwest, /area/ice_colony/surface/engineering) "agI" = ( /obj/structure/surface/table, /obj/item/tool/wrench, /obj/item/tool/screwdriver, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/engineering) "agJ" = ( /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/engineering) "agK" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/ice_colony/surface/engineering) "agL" = ( -/turf/open/floor{ - dir = 9; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/northwest, /area/ice_colony/underground/hallway/north_west) "agM" = ( /obj/structure/surface/table, @@ -2193,10 +1808,7 @@ pixel_x = 24; start_charge = 0 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/ice_colony/surface/engineering/generator) "agN" = ( /turf/closed/wall/r_wall, @@ -2244,28 +1856,19 @@ /obj/structure/surface/rack, /obj/item/storage/toolbox/electrical, /obj/item/storage/toolbox/electrical, -/turf/open/floor{ - dir = 9; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/northwest, /area/ice_colony/surface/engineering) "agZ" = ( /obj/structure/closet/radiation, /obj/effect/landmark/crap_item, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/ice_colony/surface/engineering) "aha" = ( /obj/structure/surface/rack, /obj/item/storage/toolbox/mechanical, /obj/item/storage/toolbox/mechanical, /obj/effect/landmark/crap_item, -/turf/open/floor{ - dir = 5; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/northeast, /area/ice_colony/surface/engineering) "ahb" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -2278,26 +1881,20 @@ dir = 4 }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/engineering) "ahd" = ( /obj/structure/surface/table, /obj/item/reagent_container/food/snacks/human/burger, /obj/structure/disposalpipe/segment, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/engineering) "ahe" = ( /obj/structure/surface/table, /obj/effect/landmark/crap_item, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/engineering) "ahf" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -2332,10 +1929,7 @@ /turf/open/auto_turf/snow/layer3, /area/ice_colony/exterior/surface/clearing/north) "ahm" = ( -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/ice_colony/surface/engineering/generator) "ahn" = ( /obj/item/lightstick/planted, @@ -2351,10 +1945,7 @@ "ahq" = ( /obj/structure/surface/table, /obj/effect/landmark/crap_item, -/turf/open/floor{ - dir = 6; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/southeast, /area/ice_colony/surface/engineering/generator) "ahr" = ( /obj/structure/surface/table/reinforced, @@ -2363,28 +1954,19 @@ pixel_x = 4; pixel_y = 4 }, -/turf/open/floor{ - dir = 9; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/northwest, /area/ice_colony/surface/substation/smes) "ahs" = ( /obj/structure/machinery/cm_vending/sorted/tech/tool_storage{ req_access_txt = "102" }, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/ice_colony/surface/substation/smes) "aht" = ( /obj/structure/machinery/cm_vending/sorted/tech/electronics_storage{ req_access_txt = "102" }, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/ice_colony/surface/substation/smes) "ahu" = ( /obj/structure/ladder{ @@ -2392,10 +1974,7 @@ icon_state = "ladderdown"; id = "power_storage_ladder1" }, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/ice_colony/surface/substation/smes) "ahv" = ( /obj/structure/ladder{ @@ -2403,10 +1982,7 @@ icon_state = "ladderdown"; id = "power_storage_ladder" }, -/turf/open/floor{ - dir = 5; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/northeast, /area/ice_colony/surface/substation/smes) "ahw" = ( /turf/closed/wall, @@ -2415,44 +1991,30 @@ /obj/structure/machinery/power/smes/buildable{ name = "colony distribution SMES" }, -/turf/open/floor{ - dir = 9; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/northwest, /area/ice_colony/surface/substation/smes) "ahy" = ( /obj/structure/machinery/power/terminal{ dir = 4 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/ice_colony/surface/substation/smes) "ahz" = ( /obj/structure/machinery/power/smes/buildable{ name = "colony distribution SMES" }, -/turf/open/floor{ - dir = 5; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/northeast, /area/ice_colony/surface/substation/smes) "ahA" = ( /turf/open/auto_turf/snow/layer3, /area/ice_colony/exterior/surface/valley/west) "ahB" = ( /obj/structure/barricade/metal, -/turf/open/floor/plating/icefloor{ - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate, /area/ice_colony/surface/requesitions) "ahC" = ( /obj/structure/barricade/metal, -/turf/open/floor/plating/icefloor{ - dir = 6; - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate/southeast, /area/ice_colony/surface/requesitions) "ahD" = ( /obj/structure/barricade/metal, @@ -2460,10 +2022,7 @@ /area/ice_colony/surface/requesitions) "ahE" = ( /obj/structure/barricade/metal, -/turf/open/floor/plating/icefloor{ - dir = 10; - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate/southwest, /area/ice_colony/surface/requesitions) "ahG" = ( /turf/closed/wall/r_wall, @@ -2483,23 +2042,17 @@ /obj/structure/machinery/door/airlock/almayer/engineering/colony{ name = "\improper Colony Engineering Locker Room" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/engineering) "ahL" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/engineering) "ahM" = ( /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/engineering) "ahN" = ( /obj/structure/bed/chair{ @@ -2509,9 +2062,7 @@ /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/engineering) "ahO" = ( /obj/structure/bed/chair{ @@ -2520,9 +2071,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/engineering) "ahP" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -2534,9 +2083,7 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor{ - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/darkyellowcorners2, /area/ice_colony/surface/engineering) "ahR" = ( /obj/structure/disposalpipe/segment{ @@ -2582,45 +2129,28 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor{ - dir = 6; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/southeast, /area/ice_colony/surface/engineering/generator) "ahW" = ( /obj/structure/surface/table/reinforced, /obj/effect/spawner/random/tool, -/turf/open/floor{ - dir = 9; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/northwest, /area/ice_colony/surface/substation/smes) "ahX" = ( -/turf/open/floor{ - dir = 1; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/darkyellowcorners2/north, /area/ice_colony/surface/substation/smes) "ahY" = ( -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/substation/smes) "ahZ" = ( /obj/structure/machinery/space_heater, -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/ice_colony/surface/substation/smes) "aia" = ( /obj/structure/machinery/power/terminal{ dir = 1 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/west, /area/ice_colony/surface/substation/smes) "aib" = ( /obj/structure/disposalpipe/segment{ @@ -2632,10 +2162,7 @@ /turf/open/auto_turf/snow/layer0, /area/ice_colony/exterior/surface/clearing/north) "aic" = ( -/turf/open/floor{ - dir = 4; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/darkyellowcorners2/east, /area/ice_colony/surface/substation/smes) "aid" = ( /obj/structure/disposalpipe/segment{ @@ -2692,75 +2219,48 @@ /area/ice_colony/exterior/surface/cliff) "ail" = ( /obj/structure/closet/secure_closet/engineering_personal, -/turf/open/floor{ - dir = 10; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/southwest, /area/ice_colony/surface/engineering) "aim" = ( /obj/structure/closet/secure_closet/engineering_personal, /obj/structure/machinery/light, -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/ice_colony/surface/engineering) "ain" = ( /obj/structure/closet/secure_closet/engineering_personal, -/turf/open/floor{ - dir = 6; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/southeast, /area/ice_colony/surface/engineering) "aio" = ( /obj/structure/machinery/light, -/turf/open/floor{ - dir = 10; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/southwest, /area/ice_colony/surface/engineering) "aip" = ( -/turf/open/floor{ - dir = 8; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/darkyellowcorners2/west, /area/ice_colony/surface/engineering) "aiq" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/engineering) "air" = ( -/turf/open/floor{ - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/darkyellowcorners2, /area/ice_colony/surface/engineering) "ais" = ( /obj/structure/disposalpipe/segment, /turf/open/auto_turf/snow/layer0, /area/ice_colony/exterior/surface/clearing/north) "ait" = ( -/turf/open/floor{ - dir = 6; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/southeast, /area/ice_colony/surface/engineering) "aiu" = ( /obj/structure/surface/table, /obj/item/tool/wrench, -/turf/open/floor{ - dir = 10; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/southwest, /area/ice_colony/surface/engineering/generator) "aiv" = ( /obj/structure/machinery/light, /obj/structure/reagent_dispensers/fueltank, -/turf/open/floor{ - dir = 6; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/southeast, /area/ice_colony/surface/engineering/generator) "aiw" = ( /obj/structure/disposalpipe/segment{ @@ -2771,18 +2271,12 @@ /area/ice_colony/exterior/surface/clearing/north) "aix" = ( /obj/structure/surface/table, -/turf/open/floor{ - dir = 10; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/southwest, /area/ice_colony/surface/engineering/generator) "aiy" = ( /obj/structure/surface/table, /obj/effect/spawner/random/toolbox, -/turf/open/floor{ - dir = 6; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/southeast, /area/ice_colony/surface/engineering/generator) "aiz" = ( /obj/structure/disposalpipe/segment{ @@ -2800,10 +2294,7 @@ "aiB" = ( /obj/structure/surface/rack, /obj/item/cell/high/empty, -/turf/open/floor{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/west, /area/ice_colony/surface/substation/smes) "aiC" = ( /obj/item/lightstick/red/planted, @@ -2816,28 +2307,21 @@ pixel_x = 2; pixel_y = 2 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/substation/smes) "aiE" = ( /obj/structure/surface/rack, /obj/item/stack/sheet/wood{ amount = 10 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/substation/smes) "aiF" = ( /obj/structure/surface/rack, /obj/item/stack/sheet/wood{ amount = 10 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/ice_colony/surface/substation/smes) "aiG" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -2851,16 +2335,11 @@ dir = 8 }, /obj/item/storage/toolbox/emergency, -/turf/open/floor{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/west, /area/ice_colony/surface/substation/smes) "aiI" = ( /obj/effect/landmark/survivor_spawner, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/substation/smes) "aiJ" = ( /obj/structure/machinery/colony_floodlight, @@ -2870,10 +2349,7 @@ /obj/structure/machinery/power/terminal{ dir = 1 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/ice_colony/surface/substation/smes) "aiL" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -2933,9 +2409,7 @@ dir = 1; name = "\improper Colony Engineering" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/engineering) "aiU" = ( /obj/structure/pipes/standard/manifold/hidden/green, @@ -2951,9 +2425,7 @@ dir = 1; name = "\improper Colony Engineering Backup Power Storage" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/engineering) "aiW" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -2970,47 +2442,31 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/west, /area/ice_colony/surface/substation/smes) "aja" = ( -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/ice_colony/surface/substation/smes) "ajb" = ( /obj/structure/surface/table/reinforced, /obj/item/cell/high/empty, -/turf/open/floor{ - dir = 10; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/southwest, /area/ice_colony/surface/substation/smes) "ajc" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/substation/smes) "ajd" = ( /obj/structure/machinery/power/terminal{ dir = 4 }, -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/ice_colony/surface/substation/smes) "aje" = ( /obj/structure/machinery/power/smes/buildable{ name = "colony distribution SMES" }, -/turf/open/floor{ - dir = 6; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/southeast, /area/ice_colony/surface/substation/smes) "ajf" = ( /obj/item/lightstick/red/planted, @@ -3031,23 +2487,16 @@ /obj/structure/machinery/door/airlock/almayer/medical/glass/colony{ name = "\improper Hydroponics North Wing Dome" }, -/turf/open/floor{ - dir = 8; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/west, /area/ice_colony/surface/hydroponics/north) "ajm" = ( -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/hydroponics/north) "ajn" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/hydroponics/north) "ajo" = ( /obj/structure/machinery/light{ @@ -3056,16 +2505,11 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/hydroponics/north) "ajp" = ( /obj/structure/machinery/space_heater, -/turf/open/floor{ - dir = 5; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/northeast, /area/ice_colony/surface/hydroponics/north) "ajq" = ( /obj/structure/disposalpipe/segment, @@ -3078,10 +2522,7 @@ pixel_y = 4 }, /obj/effect/landmark/crap_item, -/turf/open/floor{ - dir = 9; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/northwest, /area/ice_colony/surface/engineering) "ajs" = ( /obj/structure/surface/rack, @@ -3092,10 +2533,7 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor{ - dir = 5; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/northeast, /area/ice_colony/surface/engineering) "ajt" = ( /obj/effect/decal/cleanable/blood/drip{ @@ -3107,10 +2545,7 @@ /obj/structure/machinery/power/smes/buildable{ name = "backup power SMES" }, -/turf/open/floor{ - dir = 9; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/northwest, /area/ice_colony/surface/engineering) "ajv" = ( /obj/structure/machinery/power/terminal{ @@ -3119,27 +2554,19 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/engineering) "ajw" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/ice_colony/surface/engineering) "ajx" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/ice_colony/surface/engineering) "ajy" = ( /obj/structure/machinery/colony_floodlight_switch{ @@ -3148,41 +2575,27 @@ /obj/effect/decal/warning_stripes{ pixel_y = 32 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/ice_colony/surface/engineering) "ajz" = ( -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/ice_colony/surface/engineering) "ajA" = ( /obj/structure/machinery/computer3/powermonitor, -/turf/open/floor{ - dir = 5; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/northeast, /area/ice_colony/surface/engineering) "ajB" = ( /obj/structure/surface/rack, /obj/item/cell/high/empty, /obj/effect/landmark/crap_item, -/turf/open/floor{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/west, /area/ice_colony/surface/substation/smes) "ajC" = ( /obj/structure/surface/rack, /obj/item/stack/sheet/plasteel{ amount = 15 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/substation/smes) "ajD" = ( /obj/structure/surface/rack, @@ -3191,10 +2604,7 @@ pixel_x = -5; pixel_y = -5 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/ice_colony/surface/substation/smes) "ajE" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -3202,9 +2612,7 @@ dir = 1; name = "\improper Colony Power Substation SMES" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/substation/smes) "ajF" = ( /obj/item/disk/botany, @@ -3212,47 +2620,31 @@ /area/ice_colony/surface/hydroponics/north) "ajG" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 8; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/west, /area/ice_colony/surface/hydroponics/north) "ajH" = ( -/turf/open/floor{ - dir = 4; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/east, /area/ice_colony/surface/hydroponics/north) "ajI" = ( /obj/structure/fence, -/turf/open/floor/plating/icefloor{ - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate, /area/ice_colony/exterior/surface/landing_pad2) "ajJ" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor{ - dir = 10; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/southwest, /area/ice_colony/surface/engineering) "ajK" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/engineering) "ajL" = ( /obj/structure/machinery/space_heater, -/turf/open/floor{ - dir = 6; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/southeast, /area/ice_colony/surface/engineering) "ajM" = ( /obj/item/lightstick/red/planted, @@ -3263,27 +2655,19 @@ /obj/structure/machinery/power/smes/buildable{ name = "backup power SMES" }, -/turf/open/floor{ - dir = 10; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/southwest, /area/ice_colony/surface/engineering) "ajO" = ( /obj/structure/machinery/power/terminal{ dir = 8 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/darkyellowcorners2/west, /area/ice_colony/surface/engineering) "ajP" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/engineering) "ajQ" = ( /turf/open/auto_turf/snow/layer2, @@ -3300,10 +2684,7 @@ /obj/item/stack/sheet/mineral/phoron{ amount = 50 }, -/turf/open/floor{ - dir = 6; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/southeast, /area/ice_colony/surface/engineering) "ajU" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -3339,10 +2720,7 @@ /obj/structure/surface/table/reinforced, /obj/structure/machinery/cell_charger, /obj/item/clothing/mask/rebreather, -/turf/open/floor{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/west, /area/ice_colony/surface/substation/smes) "ajZ" = ( /obj/structure/fence, @@ -3361,29 +2739,19 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/ice_colony/surface/substation/smes) "akc" = ( -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/ice_colony/surface/substation/smes) "akd" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/substation/smes) "ake" = ( /obj/structure/surface/table, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/engineering) "akf" = ( /obj/structure/ice/ice_rock/cornerOverlay{ @@ -3400,9 +2768,7 @@ /area/ice_colony/exterior/surface/valley/northwest) "akh" = ( /obj/structure/barricade/metal, -/turf/open/floor/plating/icefloor{ - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate, /area/ice_colony/exterior/surface/landing_pad2) "aki" = ( /obj/structure/surface/rack, @@ -3410,54 +2776,35 @@ amount = 50 }, /obj/effect/landmark/crap_item, -/turf/open/floor{ - dir = 10; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/southwest, /area/ice_colony/surface/engineering) "akj" = ( /obj/structure/surface/rack, /obj/item/stack/sheet/mineral/phoron{ amount = 50 }, -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/ice_colony/surface/engineering) "akk" = ( /obj/structure/machinery/power/port_gen/pacman, -/turf/open/floor/plating{ - dir = 9; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/northwest, /area/ice_colony/surface/engineering) "akl" = ( /obj/structure/machinery/power/port_gen/pacman, -/turf/open/floor/plating{ - dir = 1; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/north, /area/ice_colony/surface/engineering) "akm" = ( /obj/structure/surface/table, -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/ice_colony/surface/engineering/generator) "akn" = ( -/turf/open/floor{ - dir = 8; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/darkyellowcorners2/west, /area/ice_colony/surface/substation/smes) "ako" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/substation/smes) "akp" = ( /obj/structure/pipes/standard/manifold/hidden/green{ @@ -3467,9 +2814,7 @@ dir = 4; icon_state = "pipe-c" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/substation/smes) "akq" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -3478,9 +2823,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/substation/smes) "akr" = ( /obj/structure/disposalpipe/junction{ @@ -3496,27 +2839,20 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/substation/smes) "akt" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor{ - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/darkyellowcorners2, /area/ice_colony/surface/substation/smes) "aku" = ( /obj/structure/disposalpipe/trunk{ dir = 8 }, /obj/structure/machinery/disposal, -/turf/open/floor{ - dir = 6; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/southeast, /area/ice_colony/surface/substation/smes) "akv" = ( /obj/structure/disposalpipe/segment{ @@ -3587,48 +2923,32 @@ /obj/structure/surface/rack, /obj/item/cell, /obj/item/cell, -/turf/open/floor{ - dir = 10; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/southwest, /area/ice_colony/surface/substation/smes) "akJ" = ( -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/ice_colony/surface/substation/smes) "akK" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/disposalpipe/segment, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/substation/smes) "akL" = ( /obj/structure/machinery/portable_atmospherics/canister/empty, -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/ice_colony/surface/substation/smes) "akM" = ( /obj/structure/machinery/portable_atmospherics/canister/empty, /obj/structure/machinery/light, -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/ice_colony/surface/substation/smes) "akN" = ( /obj/structure/closet/toolcloset, -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/ice_colony/surface/substation/smes) "akO" = ( /obj/structure/closet/toolcloset, -/turf/open/floor{ - dir = 6; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/southeast, /area/ice_colony/surface/substation/smes) "akP" = ( /obj/structure/ice/thin/corner, @@ -3665,29 +2985,21 @@ pixel_x = 5; pixel_y = -8 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/ice_colony/surface/dorms/restroom_w) "akV" = ( /obj/structure/curtain/open/shower, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/ice_colony/surface/dorms/restroom_w) "akW" = ( -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/ice_colony/surface/dorms/restroom_w) "akX" = ( /obj/structure/pipes/vents/pump, /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/ice_colony/surface/dorms/restroom_w) "akY" = ( /obj/structure/machinery/power/apc{ @@ -3695,17 +3007,13 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/ice_colony/surface/dorms/restroom_w) "akZ" = ( /obj/structure/machinery/shower{ dir = 8 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/ice_colony/surface/dorms/restroom_w) "ala" = ( /obj/structure/machinery/shower{ @@ -3713,20 +3021,14 @@ pixel_x = 5; pixel_y = -8 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/ice_colony/surface/dorms/restroom_e) "alb" = ( /obj/structure/curtain/open/shower, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/ice_colony/surface/dorms/restroom_e) "alc" = ( -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/ice_colony/surface/dorms/restroom_e) "ald" = ( /obj/structure/machinery/power/apc{ @@ -3734,33 +3036,25 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/ice_colony/surface/dorms/restroom_e) "ale" = ( /obj/structure/pipes/vents/pump, /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/ice_colony/surface/dorms/restroom_e) "alf" = ( /obj/structure/curtain/shower, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/ice_colony/surface/dorms/restroom_e) "alg" = ( /obj/structure/machinery/shower{ dir = 8 }, /obj/item/tool/soap, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/ice_colony/surface/dorms/restroom_e) "alh" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -3769,9 +3063,7 @@ dir = 1; name = "\improper Colony Power Substation" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/substation/smes) "ali" = ( /obj/structure/ice/thin/straight, @@ -3785,15 +3077,11 @@ /area/ice_colony/surface/dorms/restroom_w) "all" = ( /obj/item/tool/soap, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/ice_colony/surface/dorms/restroom_w) "alm" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/ice_colony/surface/dorms/restroom_w) "aln" = ( /obj/effect/landmark/hunter_secondary, @@ -3809,9 +3097,7 @@ /area/ice_colony/exterior/surface/clearing/north) "alq" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/ice_colony/surface/dorms/restroom_e) "alr" = ( /obj/item/shard, @@ -3826,16 +3112,10 @@ /obj/item/circuitboard/airlock, /obj/item/circuitboard/airlock, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 9; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/northwest, /area/ice_colony/surface/substation) "alu" = ( -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/ice_colony/surface/substation) "alv" = ( /obj/structure/disposalpipe/segment, @@ -3852,10 +3132,7 @@ "alx" = ( /obj/structure/surface/rack, /obj/item/circuitboard/airalarm, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/ice_colony/surface/substation) "aly" = ( /obj/structure/machinery/power/apc{ @@ -3863,34 +3140,22 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/ice_colony/surface/substation) "alz" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/ice_colony/surface/substation) "alA" = ( /obj/structure/surface/rack, /obj/item/circuitboard/apc, /obj/item/circuitboard/apc, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/ice_colony/surface/substation) "alB" = ( -/turf/open/floor{ - dir = 5; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/northeast, /area/ice_colony/surface/substation) "alC" = ( /obj/structure/ice/thin/corner, @@ -3948,10 +3213,7 @@ start_charge = 0 }, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 5; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/northeast, /area/ice_colony/surface/hydroponics/north) "alO" = ( /obj/structure/machinery/shower{ @@ -3961,15 +3223,11 @@ }, /obj/effect/landmark/survivor_spawner, /obj/item/storage/toolbox/emergency, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/ice_colony/surface/dorms/restroom_w) "alP" = ( /obj/structure/curtain/shower, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/ice_colony/surface/dorms/restroom_w) "alQ" = ( /obj/structure/machinery/shower{ @@ -3977,9 +3235,7 @@ }, /obj/effect/landmark/corpsespawner/bridgeofficer, /obj/effect/decal/cleanable/blood, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/ice_colony/surface/dorms/restroom_e) "alR" = ( /turf/closed/ice_rock/singlePart{ @@ -3992,43 +3248,29 @@ /obj/item/circuitboard/airlock, /obj/item/circuitboard/airlock, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/west, /area/ice_colony/surface/substation) "alT" = ( -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/substation) "alU" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/disposalpipe/segment, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/substation) "alV" = ( /obj/structure/surface/rack, /obj/item/circuitboard/airalarm, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/substation) "alW" = ( /obj/structure/surface/rack, /obj/item/circuitboard/apc, /obj/item/circuitboard/apc, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/substation) "alX" = ( -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/ice_colony/surface/substation) "alY" = ( /obj/effect/landmark/monkey_spawn, @@ -4061,56 +3303,40 @@ /area/ice_colony/surface/mining) "ame" = ( /obj/effect/landmark/survivor_spawner, -/turf/open/floor{ - dir = 8; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/west, /area/ice_colony/surface/hydroponics/north) "amf" = ( /obj/item/storage/toolbox/emergency, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/hydroponics/north) "amg" = ( /obj/structure/machinery/vending/hydroseeds, -/turf/open/floor{ - dir = 5; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/northeast, /area/ice_colony/surface/hydroponics/north) "amh" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/ice_colony/surface/dorms/restroom_w) "ami" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/ice_colony/surface/dorms/restroom_w) "amj" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/ice_colony/surface/dorms/restroom_e) "amk" = ( /obj/item/tool/soap, /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/ice_colony/surface/dorms/restroom_e) "aml" = ( /obj/item/lightstick/red/planted, @@ -4152,39 +3378,25 @@ "ams" = ( /obj/structure/surface/table/reinforced, /obj/effect/spawner/random/bomb_supply, -/turf/open/floor{ - dir = 5; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/northeast, /area/ice_colony/surface/substation/smes) "amt" = ( -/turf/open/floor{ - dir = 1; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/darkyellowcorners2/north, /area/ice_colony/surface/substation) "amu" = ( /obj/effect/landmark/hunter_primary, /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/disposalpipe/segment, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/substation) "amv" = ( -/turf/open/floor{ - dir = 4; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/darkyellowcorners2/east, /area/ice_colony/surface/substation) "amw" = ( /obj/structure/surface/table/reinforced, /obj/item/explosive/grenade/custom/metal_foam, /obj/item/explosive/grenade/custom/metal_foam, -/turf/open/floor{ - dir = 10; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/southwest, /area/ice_colony/surface/substation/smes) "amx" = ( /obj/structure/disposalpipe/segment{ @@ -4215,10 +3427,7 @@ /area/ice_colony/exterior/surface/cliff) "amD" = ( /obj/structure/machinery/space_heater, -/turf/open/floor{ - dir = 8; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/west, /area/ice_colony/surface/hydroponics/north) "amE" = ( /obj/structure/disposalpipe/segment, @@ -4230,17 +3439,12 @@ dir = 4; pixel_x = 24 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/east, /area/ice_colony/surface/hydroponics/north) "amG" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/item/tool/soap, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/ice_colony/surface/dorms/restroom_w) "amH" = ( /obj/structure/disposalpipe/segment{ @@ -4254,9 +3458,7 @@ /obj/structure/machinery/shower{ dir = 8 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/ice_colony/surface/dorms/restroom_e) "amJ" = ( /obj/structure/disposalpipe/junction{ @@ -4336,24 +3538,16 @@ /obj/effect/spawner/random/toolbox, /obj/effect/spawner/random/tool, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 10; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/southwest, /area/ice_colony/surface/substation) "amV" = ( -/turf/open/floor{ - dir = 8; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/darkyellowcorners2/west, /area/ice_colony/surface/substation) "amW" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/substation) "amX" = ( /obj/structure/pipes/standard/manifold/hidden/green, @@ -4361,9 +3555,7 @@ dir = 1; icon_state = "pipe-c" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/substation) "amY" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -4372,9 +3564,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/substation) "amZ" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -4384,23 +3574,16 @@ dir = 2; icon_state = "pipe-c" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/substation) "ana" = ( -/turf/open/floor{ - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/darkyellowcorners2, /area/ice_colony/surface/substation) "anb" = ( /obj/structure/surface/table/reinforced, /obj/effect/spawner/random/bomb_supply, /obj/effect/landmark/crap_item, -/turf/open/floor{ - dir = 6; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/southeast, /area/ice_colony/surface/substation) "anc" = ( /turf/open/floor, @@ -4419,9 +3602,7 @@ /area/ice_colony/exterior/surface/valley/west) "anf" = ( /obj/structure/pipes/standard/manifold/fourway/hidden/green, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/hydroponics/north) "ang" = ( /obj/structure/disposalpipe/segment{ @@ -4431,9 +3612,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/hydroponics/north) "anh" = ( /obj/structure/disposalpipe/segment{ @@ -4446,9 +3625,7 @@ name = "\improper Hydroponics North Wing Technical Storage"; req_access_txt = "100" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/hydroponics/north) "ani" = ( /obj/structure/disposalpipe/segment{ @@ -4458,17 +3635,13 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/hydroponics/north) "anj" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/hydroponics/north) "ank" = ( /obj/structure/machinery/cm_vending/sorted/tech/tool_storage, @@ -4479,18 +3652,13 @@ dir = 8; pixel_x = 24 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/east, /area/ice_colony/surface/hydroponics/north) "anl" = ( /obj/structure/window/reinforced/tinted{ dir = 1 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/ice_colony/surface/dorms/restroom_w) "anm" = ( /obj/structure/disposalpipe/segment{ @@ -4515,9 +3683,7 @@ /obj/structure/window/reinforced/tinted{ dir = 1 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/ice_colony/surface/dorms/restroom_e) "anr" = ( /obj/structure/disposalpipe/segment{ @@ -4571,28 +3737,19 @@ /area/ice_colony/exterior/surface/valley/southeast) "any" = ( /obj/structure/dispenser, -/turf/open/floor{ - dir = 10; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/southwest, /area/ice_colony/surface/substation) "anz" = ( /obj/structure/reagent_dispensers/fueltank, /obj/structure/machinery/light, -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/ice_colony/surface/substation) "anA" = ( /obj/structure/reagent_dispensers/watertank, -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/ice_colony/surface/substation) "anB" = ( -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/ice_colony/surface/substation) "anC" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -4602,26 +3759,19 @@ /area/ice_colony/exterior/surface/valley/southeast) "anD" = ( /obj/structure/machinery/space_heater, -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/ice_colony/surface/substation) "anE" = ( /obj/structure/machinery/cm_vending/sorted/tech/comp_storage{ req_access_txt = "102" }, -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/ice_colony/surface/substation) "anF" = ( /obj/structure/machinery/cm_vending/sorted/tech/comp_storage{ req_access_txt = "102" }, -/turf/open/floor{ - dir = 6; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/southeast, /area/ice_colony/surface/substation) "anG" = ( /obj/effect/landmark/corpsespawner/miner, @@ -4659,24 +3809,15 @@ /area/ice_colony/exterior/surface/valley/southeast) "anM" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor{ - dir = 4; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/east, /area/ice_colony/surface/hydroponics/north) "anN" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor{ - dir = 8; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/west, /area/ice_colony/surface/hydroponics/north) "anO" = ( /obj/structure/closet/wardrobe/green, -/turf/open/floor{ - dir = 4; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/east, /area/ice_colony/surface/hydroponics/north) "anP" = ( /obj/structure/toilet{ @@ -4685,17 +3826,13 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/ice_colony/surface/dorms/restroom_w) "anQ" = ( /obj/structure/machinery/door/airlock/almayer/generic{ name = "\improper Toilet Unit" }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/ice_colony/surface/dorms/restroom_w) "anR" = ( /obj/structure/sink{ @@ -4705,9 +3842,7 @@ /obj/structure/mirror{ pixel_x = 24 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/ice_colony/surface/dorms/restroom_w) "anS" = ( /turf/closed/shuttle/elevator{ @@ -4736,17 +3871,13 @@ /obj/structure/mirror{ pixel_x = -24 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/ice_colony/surface/dorms/restroom_e) "anY" = ( /obj/structure/machinery/door/airlock/almayer/generic{ name = "\improper Toilet Unit" }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/ice_colony/surface/dorms/restroom_e) "anZ" = ( /obj/structure/toilet{ @@ -4755,9 +3886,7 @@ /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/ice_colony/surface/dorms/restroom_e) "aoa" = ( /obj/structure/disposalpipe/segment{ @@ -4797,9 +3926,7 @@ dir = 1; name = "\improper Colony Power Substation" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/substation) "aof" = ( /obj/structure/disposalpipe/segment{ @@ -4841,10 +3968,7 @@ /area/ice_colony/exterior/surface/valley/west) "aol" = ( /obj/structure/machinery/vending/hydronutrients, -/turf/open/floor{ - dir = 6; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/southeast, /area/ice_colony/surface/hydroponics/north) "aom" = ( /turf/closed/shuttle/elevator, @@ -4868,23 +3992,14 @@ /area/shuttle/elevator2/ground) "aor" = ( /obj/structure/machinery/iv_drip, -/turf/open/floor{ - dir = 9; - icon_state = "whitered" - }, +/turf/open/floor/whitered/northwest, /area/ice_colony/surface/clinic/treatment) "aos" = ( -/turf/open/floor{ - dir = 1; - icon_state = "whitered" - }, +/turf/open/floor/whitered/north, /area/ice_colony/surface/clinic/treatment) "aot" = ( /obj/structure/closet/secure_closet/personal/patient, -/turf/open/floor{ - dir = 5; - icon_state = "whitered" - }, +/turf/open/floor/whitered/northeast, /area/ice_colony/surface/clinic/treatment) "aou" = ( /turf/closed/wall, @@ -4893,54 +4008,33 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - dir = 9; - icon_state = "whitered" - }, +/turf/open/floor/whitered/northwest, /area/ice_colony/surface/clinic/treatment) "aow" = ( /obj/structure/machinery/space_heater, -/turf/open/floor{ - dir = 5; - icon_state = "whitered" - }, +/turf/open/floor/whitered/northeast, /area/ice_colony/surface/clinic/treatment) "aox" = ( /obj/structure/machinery/medical_pod/sleeper, -/turf/open/floor{ - dir = 9; - icon_state = "whitered" - }, +/turf/open/floor/whitered/northwest, /area/ice_colony/surface/clinic/treatment) "aoy" = ( /obj/structure/machinery/sleep_console, -/turf/open/floor{ - dir = 1; - icon_state = "whitered" - }, +/turf/open/floor/whitered/north, /area/ice_colony/surface/clinic/treatment) "aoz" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - dir = 1; - icon_state = "whitered" - }, +/turf/open/floor/whitered/north, /area/ice_colony/surface/clinic/treatment) "aoA" = ( /obj/structure/machinery/medical_pod/bodyscanner, -/turf/open/floor{ - dir = 1; - icon_state = "whitered" - }, +/turf/open/floor/whitered/north, /area/ice_colony/surface/clinic/treatment) "aoB" = ( /obj/structure/machinery/body_scanconsole, -/turf/open/floor{ - dir = 5; - icon_state = "whitered" - }, +/turf/open/floor/whitered/northeast, /area/ice_colony/surface/clinic/treatment) "aoC" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -5029,17 +4123,11 @@ /obj/structure/disposalpipe/trunk{ dir = 1 }, -/turf/open/floor{ - dir = 10; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/southwest, /area/ice_colony/surface/hydroponics/north) "aoS" = ( /obj/structure/closet/crate/hydroponics, -/turf/open/floor{ - dir = 6; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/southeast, /area/ice_colony/surface/hydroponics/north) "aoT" = ( /turf/open/auto_turf/snow/layer3, @@ -5050,23 +4138,16 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor{ - dir = 8; - icon_state = "whitered" - }, +/turf/open/floor/whitered/west, /area/ice_colony/surface/clinic/treatment) "aoV" = ( -/turf/open/floor{ - icon_state = "cafeteria" - }, +/turf/open/floor/cafeteria, /area/ice_colony/surface/clinic/treatment) "aoW" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor{ - icon_state = "cafeteria" - }, +/turf/open/floor/cafeteria, /area/ice_colony/surface/clinic/treatment) "aoX" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -5075,25 +4156,19 @@ /obj/structure/machinery/door/airlock/almayer/medical/glass/colony{ name = "\improper Aurora Medical Clinic Recovery Room" }, -/turf/open/floor{ - icon_state = "cafeteria" - }, +/turf/open/floor/cafeteria, /area/ice_colony/surface/clinic/treatment) "aoY" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor{ - icon_state = "cafeteria" - }, +/turf/open/floor/cafeteria, /area/ice_colony/surface/clinic/treatment) "aoZ" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "cafeteria" - }, +/turf/open/floor/cafeteria, /area/ice_colony/surface/clinic/treatment) "apa" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -5102,29 +4177,20 @@ /obj/structure/machinery/door/airlock/almayer/medical/glass/colony{ name = "\improper Aurora Medical Clinic Scanning Unit" }, -/turf/open/floor{ - icon_state = "cafeteria" - }, +/turf/open/floor/cafeteria, /area/ice_colony/surface/clinic/treatment) "apb" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor{ - icon_state = "cafeteria" - }, +/turf/open/floor/cafeteria, /area/ice_colony/surface/clinic/treatment) "apc" = ( /obj/effect/landmark/hunter_primary, -/turf/open/floor{ - icon_state = "cafeteria" - }, +/turf/open/floor/cafeteria, /area/ice_colony/surface/clinic/treatment) "apd" = ( -/turf/open/floor{ - dir = 4; - icon_state = "whitered" - }, +/turf/open/floor/whitered/east, /area/ice_colony/surface/clinic/treatment) "ape" = ( /obj/structure/surface/rack, @@ -5154,59 +4220,38 @@ /area/ice_colony/exterior/surface/valley/west) "api" = ( /obj/effect/landmark/hunter_secondary, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/ice_colony/surface/dorms/restroom_e) "apj" = ( -/turf/open/floor{ - dir = 10; - icon_state = "whitered" - }, +/turf/open/floor/whitered/southwest, /area/ice_colony/surface/clinic/treatment) "apk" = ( -/turf/open/floor{ - icon_state = "whitered" - }, +/turf/open/floor/whitered, /area/ice_colony/surface/clinic/treatment) "apl" = ( /obj/structure/surface/table, /obj/item/storage/box/botanydisk, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 9; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/northwest, /area/ice_colony/surface/hydroponics/north) "apm" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 8; - icon_state = "whitered" - }, +/turf/open/floor/whitered/west, /area/ice_colony/surface/clinic/treatment) "apn" = ( /obj/structure/bed, /obj/item/bedsheet/medical, -/turf/open/floor{ - dir = 10; - icon_state = "whitered" - }, +/turf/open/floor/whitered/southwest, /area/ice_colony/surface/clinic/treatment) "apo" = ( /obj/structure/bed/chair/office/dark{ dir = 4 }, -/turf/open/floor{ - icon_state = "whitered" - }, +/turf/open/floor/whitered, /area/ice_colony/surface/clinic/treatment) "app" = ( /obj/structure/machinery/computer/crew, -/turf/open/floor{ - dir = 6; - icon_state = "whitered" - }, +/turf/open/floor/whitered/southeast, /area/ice_colony/surface/clinic/treatment) "apq" = ( /obj/effect/landmark/hunter_secondary, @@ -5255,10 +4300,7 @@ dir = 8; pixel_x = 24 }, -/turf/open/floor{ - dir = 4; - icon_state = "whitered" - }, +/turf/open/floor/whitered/east, /area/ice_colony/surface/clinic/treatment) "apA" = ( /obj/structure/ice/thin/end{ @@ -5268,22 +4310,13 @@ /area/ice_colony/surface/mining) "apB" = ( /obj/structure/machinery/door/airlock/multi_tile/elevator/access/dormatory, -/turf/open/floor{ - dir = 9; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/northwest, /area/ice_colony/surface/dorms) "apC" = ( -/turf/open/floor{ - dir = 1; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/north, /area/ice_colony/surface/dorms) "apD" = ( -/turf/open/floor{ - dir = 5; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/northeast, /area/ice_colony/surface/dorms) "apE" = ( /obj/structure/bed, @@ -5292,17 +4325,11 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor{ - dir = 9; - icon_state = "whitered" - }, +/turf/open/floor/whitered/northwest, /area/ice_colony/surface/clinic/treatment) "apF" = ( /obj/structure/curtain/medical, -/turf/open/floor{ - dir = 1; - icon_state = "whitered" - }, +/turf/open/floor/whitered/north, /area/ice_colony/surface/clinic/treatment) "apG" = ( /obj/structure/machinery/power/apc{ @@ -5313,44 +4340,29 @@ /obj/item/storage/toolbox/emergency, /obj/structure/surface/table, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 1; - icon_state = "whitered" - }, +/turf/open/floor/whitered/north, /area/ice_colony/surface/clinic/treatment) "apH" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 1; - icon_state = "whiteredcorner" - }, +/turf/open/floor/whiteredcorner/north, /area/ice_colony/surface/clinic/treatment) "apI" = ( /obj/structure/machinery/firealarm{ dir = 4; pixel_x = 24 }, -/turf/open/floor{ - dir = 4; - icon_state = "whitered" - }, +/turf/open/floor/whitered/east, /area/ice_colony/surface/clinic/treatment) "apJ" = ( /turf/closed/wall, /area/ice_colony/surface/clinic/storage) "apK" = ( /obj/structure/machinery/cm_vending/sorted/medical/no_access, -/turf/open/floor{ - dir = 9; - icon_state = "whitered" - }, +/turf/open/floor/whitered/northwest, /area/ice_colony/surface/clinic/storage) "apL" = ( /obj/structure/machinery/cm_vending/sorted/medical/blood, -/turf/open/floor{ - dir = 1; - icon_state = "whitered" - }, +/turf/open/floor/whitered/north, /area/ice_colony/surface/clinic/storage) "apM" = ( /obj/structure/machinery/colony_floodlight, @@ -5363,19 +4375,13 @@ pixel_x = 6; pixel_y = 10 }, -/turf/open/floor{ - dir = 1; - icon_state = "whitered" - }, +/turf/open/floor/whitered/north, /area/ice_colony/surface/clinic/storage) "apO" = ( /obj/structure/surface/table/reinforced, /obj/effect/spawner/random/toolbox, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 9; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/northwest, /area/ice_colony/surface/substation) "apP" = ( /turf/closed/wall/r_wall, @@ -5397,9 +4403,7 @@ "apT" = ( /obj/structure/machinery/space_heater, /obj/structure/machinery/light, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/ice_colony/surface/dorms/restroom_w) "apU" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -5407,18 +4411,14 @@ dir = 4; icon_state = "pipe-c" }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/ice_colony/surface/dorms/restroom_w) "apV" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk{ dir = 8 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/ice_colony/surface/dorms/restroom_w) "apW" = ( /obj/structure/machinery/power/apc{ @@ -5433,60 +4433,38 @@ }, /obj/effect/landmark/crap_item, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 9; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/northwest, /area/ice_colony/surface/dorms) "apX" = ( /obj/structure/machinery/vending/coffee, -/turf/open/floor{ - dir = 1; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/north, /area/ice_colony/surface/dorms) "apY" = ( -/turf/open/floor{ - dir = 1; - icon_state = "darkgreencorners2" - }, +/turf/open/floor/darkgreencorners2/north, /area/ice_colony/surface/dorms) "apZ" = ( -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/dorms) "aqa" = ( -/turf/open/floor{ - dir = 4; - icon_state = "darkgreencorners2" - }, +/turf/open/floor/darkgreencorners2/east, /area/ice_colony/surface/dorms) "aqb" = ( /obj/structure/machinery/computer/shuttle_control/ice_colony/elevator2{ pixel_y = 30 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/north, /area/ice_colony/surface/dorms) "aqc" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk, -/turf/open/floor{ - dir = 5; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/northeast, /area/ice_colony/surface/dorms) "aqd" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk{ dir = 4 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/ice_colony/surface/dorms/restroom_e) "aqe" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -5494,16 +4472,12 @@ dir = 2; icon_state = "pipe-c" }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/ice_colony/surface/dorms/restroom_e) "aqf" = ( /obj/structure/machinery/space_heater, /obj/structure/machinery/light, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/ice_colony/surface/dorms/restroom_e) "aqg" = ( /obj/structure/toilet{ @@ -5513,22 +4487,15 @@ dir = 4 }, /obj/effect/landmark/survivor_spawner, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/ice_colony/surface/dorms/restroom_e) "aqh" = ( /obj/structure/curtain/medical, -/turf/open/floor{ - dir = 8; - icon_state = "whitered" - }, +/turf/open/floor/whitered/west, /area/ice_colony/surface/clinic/treatment) "aqi" = ( /obj/structure/curtain/medical, -/turf/open/floor{ - icon_state = "cafeteria" - }, +/turf/open/floor/cafeteria, /area/ice_colony/surface/clinic/treatment) "aqj" = ( /obj/structure/machinery/colony_floodlight, @@ -5538,9 +4505,7 @@ /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/floor{ - icon_state = "cafeteria" - }, +/turf/open/floor/cafeteria, /area/ice_colony/surface/clinic/treatment) "aql" = ( /obj/structure/disposalpipe/segment{ @@ -5559,25 +4524,19 @@ /obj/structure/machinery/door/airlock/almayer/medical/glass/colony{ name = "\improper Aurora Medical Clinic Storage" }, -/turf/open/floor{ - icon_state = "cafeteria" - }, +/turf/open/floor/cafeteria, /area/ice_colony/surface/clinic/storage) "aqn" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "cafeteria" - }, +/turf/open/floor/cafeteria, /area/ice_colony/surface/clinic/storage) "aqo" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor{ - icon_state = "cafeteria" - }, +/turf/open/floor/cafeteria, /area/ice_colony/surface/clinic/storage) "aqp" = ( /obj/structure/disposalpipe/segment{ @@ -5589,9 +4548,7 @@ /turf/open/auto_turf/snow/layer0, /area/ice_colony/exterior/surface/clearing/pass) "aqq" = ( -/turf/open/floor{ - icon_state = "cafeteria" - }, +/turf/open/floor/cafeteria, /area/ice_colony/surface/clinic/storage) "aqr" = ( /obj/structure/surface/table, @@ -5604,10 +4561,7 @@ dir = 8; pixel_x = 24 }, -/turf/open/floor{ - dir = 4; - icon_state = "whitered" - }, +/turf/open/floor/whitered/east, /area/ice_colony/surface/clinic/storage) "aqs" = ( /obj/structure/ice/thin/straight{ @@ -5636,9 +4590,7 @@ dir = 1; name = "\improper Dormitories Men's Restroom" }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/ice_colony/surface/dorms/restroom_w) "aqw" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -5652,9 +4604,7 @@ /area/ice_colony/exterior/surface/clearing/pass) "aqx" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/dorms) "aqy" = ( /obj/structure/disposalpipe/segment, @@ -5662,10 +4612,7 @@ dir = 4; pixel_x = 24 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/east, /area/ice_colony/surface/dorms) "aqz" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -5674,9 +4621,7 @@ dir = 1; name = "\improper Dormitories Women's Restroom" }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/ice_colony/surface/dorms/restroom_e) "aqA" = ( /obj/structure/ice/thin/end{ @@ -5690,47 +4635,33 @@ dir = 4; icon_state = "gib6" }, -/turf/open/floor{ - icon_state = "cafeteria" - }, +/turf/open/floor/cafeteria, /area/ice_colony/surface/clinic/treatment) "aqD" = ( /obj/effect/decal/cleanable/blood{ dir = 4; icon_state = "gib6" }, -/turf/open/floor{ - icon_state = "cafeteria" - }, +/turf/open/floor/cafeteria, /area/ice_colony/surface/clinic/treatment) "aqE" = ( /obj/effect/decal/cleanable/blood, /obj/effect/landmark/corpsespawner/scientist, -/turf/open/floor{ - icon_state = "cafeteria" - }, +/turf/open/floor/cafeteria, /area/ice_colony/surface/clinic/treatment) "aqF" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "cafeteria" - }, +/turf/open/floor/cafeteria, /area/ice_colony/surface/clinic/treatment) "aqG" = ( /obj/structure/closet/secure_closet/personal/patient, -/turf/open/floor{ - dir = 4; - icon_state = "whitered" - }, +/turf/open/floor/whitered/east, /area/ice_colony/surface/clinic/treatment) "aqH" = ( /obj/structure/surface/table/reinforced, /obj/effect/spawner/random/powercell, /obj/effect/spawner/random/bomb_supply, -/turf/open/floor{ - dir = 5; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/northeast, /area/ice_colony/surface/substation) "aqI" = ( /obj/structure/surface/table, @@ -5739,10 +4670,7 @@ dir = 4; pixel_x = 24 }, -/turf/open/floor{ - dir = 4; - icon_state = "whitered" - }, +/turf/open/floor/whitered/east, /area/ice_colony/surface/clinic/storage) "aqJ" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -5762,34 +4690,24 @@ /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/hydroponics/north) "aqM" = ( /obj/structure/disposalpipe/segment, /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/east, /area/ice_colony/surface/hydroponics/north) "aqN" = ( -/turf/open/floor{ - dir = 9; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/northwest, /area/ice_colony/surface/dorms) "aqO" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, /obj/structure/disposalpipe/segment, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/dorms) "aqP" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -5798,42 +4716,29 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/north, /area/ice_colony/surface/dorms) "aqQ" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/north, /area/ice_colony/surface/dorms) "aqR" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkgreencorners2" - }, +/turf/open/floor/darkgreencorners2/north, /area/ice_colony/surface/dorms) "aqS" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/dorms) "aqT" = ( /obj/structure/pipes/standard/manifold/fourway/hidden/green, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/dorms) "aqU" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -5843,9 +4748,7 @@ dir = 4; icon_state = "pipe-c" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/dorms) "aqV" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -5855,9 +4758,7 @@ dir = 8; icon_state = "pipe-j2" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/dorms) "aqW" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -5867,10 +4768,7 @@ dir = 8; icon_state = "pipe-c" }, -/turf/open/floor{ - dir = 4; - icon_state = "darkgreencorners2" - }, +/turf/open/floor/darkgreencorners2/east, /area/ice_colony/surface/dorms) "aqX" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -5880,10 +4778,7 @@ dir = 4; icon_state = "pipe-c" }, -/turf/open/floor{ - dir = 1; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/north, /area/ice_colony/surface/dorms) "aqY" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -5895,10 +4790,7 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/north, /area/ice_colony/surface/dorms) "aqZ" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -5908,9 +4800,7 @@ dir = 8; icon_state = "pipe-c" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/dorms) "ara" = ( /obj/structure/pipes/standard/manifold/hidden/green, @@ -5924,25 +4814,17 @@ /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "cafeteria" - }, +/turf/open/floor/cafeteria, /area/ice_colony/surface/clinic/treatment) "arc" = ( /obj/structure/closet/secure_closet/medical3{ req_access_txt = "100" }, -/turf/open/floor{ - dir = 8; - icon_state = "whitered" - }, +/turf/open/floor/whitered/west, /area/ice_colony/surface/clinic/storage) "ard" = ( /obj/structure/machinery/iv_drip, -/turf/open/floor{ - dir = 4; - icon_state = "whitered" - }, +/turf/open/floor/whitered/east, /area/ice_colony/surface/clinic/storage) "are" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -5965,10 +4847,7 @@ name = "\improper Colony Dormitories"; req_access_txt = "100" }, -/turf/open/floor{ - dir = 10; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/southwest, /area/ice_colony/surface/dorms) "ari" = ( /obj/structure/disposalpipe/segment{ @@ -5988,17 +4867,13 @@ dir = 1; icon_state = "pipe-c" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/dorms) "arl" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor{ - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2, /area/ice_colony/surface/dorms) "arm" = ( /obj/structure/disposalpipe/segment{ @@ -6019,19 +4894,14 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkgreencorners2" - }, +/turf/open/floor/darkgreencorners2/west, /area/ice_colony/surface/dorms) "arp" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/dorms) "arq" = ( /obj/structure/machinery/door_control{ @@ -6046,18 +4916,14 @@ /area/ice_colony/surface/storage_unit/power) "arr" = ( /obj/structure/disposalpipe/junction, -/turf/open/floor{ - icon_state = "darkgreencorners2" - }, +/turf/open/floor/darkgreencorners2, /area/ice_colony/surface/dorms) "ars" = ( /obj/structure/disposalpipe/segment{ dir = 1; icon_state = "pipe-c" }, -/turf/open/floor{ - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2, /area/ice_colony/surface/dorms) "art" = ( /obj/structure/machinery/colony_floodlight, @@ -6068,18 +4934,14 @@ dir = 8; icon_state = "pipe-c" }, -/turf/open/floor{ - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2, /area/ice_colony/surface/dorms) "arv" = ( /obj/structure/fence, /turf/open/auto_turf/snow/layer3, /area/ice_colony/exterior/surface/valley/southeast) "arw" = ( -/turf/open/floor{ - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2, /area/ice_colony/surface/dorms) "arx" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ @@ -6087,10 +4949,7 @@ name = "\improper Colony Dormitories"; req_access_txt = "100" }, -/turf/open/floor{ - dir = 6; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/southeast, /area/ice_colony/surface/dorms) "ary" = ( /obj/structure/bed, @@ -6098,16 +4957,11 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor{ - dir = 8; - icon_state = "whitered" - }, +/turf/open/floor/whitered/west, /area/ice_colony/surface/clinic/treatment) "arz" = ( /obj/structure/curtain/open/medical, -/turf/open/floor{ - icon_state = "cafeteria" - }, +/turf/open/floor/cafeteria, /area/ice_colony/surface/clinic/treatment) "arA" = ( /obj/effect/landmark/hunter_secondary, @@ -6118,10 +4972,7 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor{ - dir = 4; - icon_state = "whitered" - }, +/turf/open/floor/whitered/east, /area/ice_colony/surface/clinic/storage) "arC" = ( /turf/closed/ice/intersection, @@ -6140,23 +4991,15 @@ /turf/open/floor/wood, /area/ice_colony/surface/dorms) "arG" = ( -/turf/open/floor{ - dir = 8; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/west, /area/ice_colony/surface/dorms) "arH" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/dorms) "arJ" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor{ - dir = 4; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/east, /area/ice_colony/surface/dorms) "arK" = ( /obj/structure/machinery/door/airlock/almayer/generic{ @@ -6188,10 +5031,7 @@ /obj/structure/surface/table, /obj/item/paper/research_notes, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 4; - icon_state = "whitered" - }, +/turf/open/floor/whitered/east, /area/ice_colony/surface/clinic/storage) "arP" = ( /obj/structure/machinery/light/small{ @@ -6204,10 +5044,7 @@ /area/ice_colony/surface/dorms) "arR" = ( /obj/structure/machinery/space_heater, -/turf/open/floor{ - dir = 8; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/west, /area/ice_colony/surface/dorms) "arS" = ( /obj/structure/machinery/light/small{ @@ -6232,29 +5069,19 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor{ - dir = 10; - icon_state = "whitered" - }, +/turf/open/floor/whitered/southwest, /area/ice_colony/surface/clinic/treatment) "arX" = ( /obj/structure/curtain/medical, -/turf/open/floor{ - icon_state = "whitered" - }, +/turf/open/floor/whitered, /area/ice_colony/surface/clinic/treatment) "arY" = ( /obj/structure/bed/chair/wheelchair, /obj/structure/machinery/light, -/turf/open/floor{ - icon_state = "whitered" - }, +/turf/open/floor/whitered, /area/ice_colony/surface/clinic/treatment) "arZ" = ( -/turf/open/floor{ - dir = 8; - icon_state = "whiteredcorner" - }, +/turf/open/floor/whiteredcorner/west, /area/ice_colony/surface/clinic/treatment) "asa" = ( /obj/structure/disposalpipe/segment{ @@ -6262,43 +5089,30 @@ icon_state = "pipe-c" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "whiteredcorner" - }, +/turf/open/floor/whiteredcorner, /area/ice_colony/surface/clinic/treatment) "asb" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk{ dir = 8 }, -/turf/open/floor{ - dir = 6; - icon_state = "whitered" - }, +/turf/open/floor/whitered/southeast, /area/ice_colony/surface/clinic/treatment) "asc" = ( /obj/structure/closet/secure_closet/chemical{ req_access_txt = "100" }, -/turf/open/floor{ - dir = 10; - icon_state = "whitered" - }, +/turf/open/floor/whitered/southwest, /area/ice_colony/surface/clinic/storage) "asd" = ( /obj/structure/bed/chair/wheelchair, -/turf/open/floor{ - icon_state = "whitered" - }, +/turf/open/floor/whitered, /area/ice_colony/surface/clinic/storage) "ase" = ( /obj/structure/surface/table, /obj/item/paper/research_notes, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 6; - icon_state = "whitered" - }, +/turf/open/floor/whitered/southeast, /area/ice_colony/surface/clinic/storage) "asf" = ( /obj/structure/ice/thin/corner, @@ -6310,10 +5124,7 @@ name = "\improper Hydroponics Dome North Wing"; req_access_txt = "100" }, -/turf/open/floor{ - dir = 8; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/west, /area/ice_colony/surface/hydroponics/north) "ash" = ( /obj/structure/ladder{ @@ -6332,27 +5143,19 @@ name = "\improper Aurora Medical Clinic Treatment"; req_access_txt = "100" }, -/turf/open/floor{ - dir = 8; - icon_state = "whitered" - }, +/turf/open/floor/whitered/west, /area/ice_colony/surface/clinic/treatment) "ask" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 4; - icon_state = "whitered" - }, +/turf/open/floor/whitered/east, /area/ice_colony/surface/clinic/treatment) "asl" = ( /obj/structure/machinery/door/airlock/almayer/medical/glass/colony{ dir = 1; name = "\improper Aurora Medical Clinic Storage" }, -/turf/open/floor{ - icon_state = "cafeteria" - }, +/turf/open/floor/cafeteria, /area/ice_colony/surface/clinic/storage) "asm" = ( /obj/structure/window/framed/colony/reinforced, @@ -6366,34 +5169,22 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - dir = 9; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/northwest, /area/ice_colony/surface/hydroponics/lobby) "asp" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 1; - icon_state = "darkgreencorners2" - }, +/turf/open/floor/darkgreencorners2/north, /area/ice_colony/surface/hydroponics/lobby) "asq" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor{ - dir = 4; - icon_state = "darkgreencorners2" - }, +/turf/open/floor/darkgreencorners2/east, /area/ice_colony/surface/hydroponics/lobby) "asr" = ( /obj/structure/flora/pottedplant, /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - dir = 5; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/northeast, /area/ice_colony/surface/hydroponics/lobby) "ass" = ( /obj/structure/window/framed/colony/reinforced, @@ -6412,17 +5203,13 @@ /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/dorms) "asw" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/dorms) "asx" = ( /obj/structure/closet/cabinet, @@ -6444,33 +5231,21 @@ /area/ice_colony/surface/clinic/lobby) "asB" = ( /obj/structure/machinery/vending/cola, -/turf/open/floor{ - dir = 9; - icon_state = "whitered" - }, +/turf/open/floor/whitered/northwest, /area/ice_colony/surface/clinic/lobby) "asC" = ( /obj/structure/machinery/vending/coffee, -/turf/open/floor{ - dir = 1; - icon_state = "whitered" - }, +/turf/open/floor/whitered/north, /area/ice_colony/surface/clinic/lobby) "asD" = ( /obj/structure/machinery/vending/snack, /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - dir = 1; - icon_state = "whitered" - }, +/turf/open/floor/whitered/north, /area/ice_colony/surface/clinic/lobby) "asE" = ( -/turf/open/floor{ - dir = 1; - icon_state = "whiteredcorner" - }, +/turf/open/floor/whiteredcorner/north, /area/ice_colony/surface/clinic/lobby) "asF" = ( /obj/structure/disposalpipe/segment{ @@ -6478,10 +5253,7 @@ icon_state = "pipe-c" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 4; - icon_state = "whiteredcorner" - }, +/turf/open/floor/whiteredcorner/east, /area/ice_colony/surface/clinic/lobby) "asG" = ( /obj/structure/flora/pottedplant, @@ -6489,10 +5261,7 @@ dir = 2; icon_state = "pipe-c" }, -/turf/open/floor{ - dir = 5; - icon_state = "whitered" - }, +/turf/open/floor/whitered/northeast, /area/ice_colony/surface/clinic/lobby) "asH" = ( /obj/structure/window/framed/colony, @@ -6500,22 +5269,14 @@ /area/ice_colony/surface/clinic/lobby) "asI" = ( /obj/structure/machinery/space_heater, -/turf/open/floor{ - dir = 9; - icon_state = "whitered" - }, +/turf/open/floor/whitered/northwest, /area/ice_colony/surface/clinic/lobby) "asJ" = ( -/turf/open/floor{ - icon_state = "cafeteria" - }, +/turf/open/floor/cafeteria, /area/ice_colony/surface/clinic/lobby) "asK" = ( /obj/structure/surface/table, -/turf/open/floor{ - dir = 6; - icon_state = "whitered" - }, +/turf/open/floor/whitered/southeast, /area/ice_colony/surface/clinic/treatment) "asL" = ( /obj/structure/tunnel{ @@ -6525,67 +5286,42 @@ /area/ice_colony/exterior/surface/valley/west) "asM" = ( /obj/structure/surface/table/woodentable, -/turf/open/floor{ - dir = 9; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/northwest, /area/ice_colony/exterior/surface/valley/west) "asN" = ( /obj/structure/bed/chair, -/turf/open/floor{ - dir = 1; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/north, /area/ice_colony/surface/hydroponics/lobby) "asO" = ( -/turf/open/floor{ - dir = 1; - icon_state = "darkgreencorners2" - }, +/turf/open/floor/darkgreencorners2/north, /area/ice_colony/surface/hydroponics/lobby) "asP" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/hydroponics/lobby) "asQ" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/hydroponics/lobby) "asR" = ( -/turf/open/floor{ - dir = 4; - icon_state = "darkgreencorners2" - }, +/turf/open/floor/darkgreencorners2/east, /area/ice_colony/surface/hydroponics/lobby) "asS" = ( /obj/structure/surface/table/woodentable, -/turf/open/floor{ - dir = 5; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/northeast, /area/ice_colony/exterior/surface/clearing/north) "asT" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/west, /area/ice_colony/surface/dorms) "asU" = ( /obj/structure/disposalpipe/segment, /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/east, /area/ice_colony/surface/dorms) "asV" = ( /obj/item/lightstick/red/planted, @@ -6595,45 +5331,30 @@ /obj/structure/machinery/cm_vending/sorted/medical/wall_med/limited{ pixel_x = -32 }, -/turf/open/floor{ - dir = 8; - icon_state = "whitered" - }, +/turf/open/floor/whitered/west, /area/ice_colony/surface/clinic/lobby) "asX" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor{ - icon_state = "cafeteria" - }, +/turf/open/floor/cafeteria, /area/ice_colony/surface/clinic/lobby) "asY" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "cafeteria" - }, +/turf/open/floor/cafeteria, /area/ice_colony/surface/clinic/lobby) "asZ" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor{ - dir = 4; - icon_state = "whitered" - }, +/turf/open/floor/whitered/east, /area/ice_colony/surface/clinic/lobby) "ata" = ( /obj/effect/decal/cleanable/blood/drip, -/turf/open/floor{ - dir = 8; - icon_state = "whitered" - }, +/turf/open/floor/whitered/west, /area/ice_colony/surface/clinic/lobby) "atb" = ( /obj/effect/landmark/corpsespawner/doctor, /obj/effect/decal/cleanable/blood{ layer = 3 }, -/turf/open/floor{ - icon_state = "cafeteria" - }, +/turf/open/floor/cafeteria, /area/ice_colony/surface/clinic/lobby) "atc" = ( /obj/structure/surface/table, @@ -6643,10 +5364,7 @@ pixel_x = 24 }, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 4; - icon_state = "whitered" - }, +/turf/open/floor/whitered/east, /area/ice_colony/surface/clinic/lobby) "atd" = ( /turf/closed/ice/straight{ @@ -6688,38 +5406,24 @@ /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/west, /area/ice_colony/surface/hydroponics/lobby) "ati" = ( -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/hydroponics/lobby) "atj" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 6; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/southeast, /area/ice_colony/surface/hydroponics/lobby) "atk" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor{ - dir = 10; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/southwest, /area/ice_colony/surface/hydroponics/lobby) "atl" = ( /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/east, /area/ice_colony/surface/hydroponics/lobby) "atm" = ( /obj/structure/closet/cabinet, @@ -6770,58 +5474,40 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "whiteredfull" - }, +/turf/open/floor/whiteredfull, /area/ice_colony/surface/clinic/lobby) "atw" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - dir = 1; - icon_state = "whiteredcorner" - }, +/turf/open/floor/whiteredcorner/north, /area/ice_colony/surface/clinic/lobby) "atx" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "cafeteria" - }, +/turf/open/floor/cafeteria, /area/ice_colony/surface/clinic/lobby) "aty" = ( /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor{ - dir = 6; - icon_state = "whitered" - }, +/turf/open/floor/whitered/southeast, /area/ice_colony/surface/clinic/lobby) "atz" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - dir = 10; - icon_state = "whitered" - }, +/turf/open/floor/whitered/southwest, /area/ice_colony/surface/clinic/lobby) "atA" = ( /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor{ - icon_state = "cafeteria" - }, +/turf/open/floor/cafeteria, /area/ice_colony/surface/clinic/lobby) "atB" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - dir = 4; - icon_state = "whiteredcorner" - }, +/turf/open/floor/whiteredcorner/east, /area/ice_colony/surface/clinic/lobby) "atC" = ( /obj/item/stack/sheet/metal, @@ -6829,10 +5515,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - dir = 1; - icon_state = "whitered" - }, +/turf/open/floor/whitered/north, /area/ice_colony/surface/clinic/lobby) "atD" = ( /obj/structure/bed/chair/office/dark{ @@ -6845,18 +5528,13 @@ /obj/effect/decal/cleanable/blood/drip{ icon_state = "3" }, -/turf/open/floor{ - dir = 1; - icon_state = "whiteredcorner" - }, +/turf/open/floor/whiteredcorner/north, /area/ice_colony/surface/clinic/lobby) "atE" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor{ - icon_state = "cafeteria" - }, +/turf/open/floor/cafeteria, /area/ice_colony/surface/clinic/lobby) "atF" = ( /obj/structure/surface/table, @@ -6870,10 +5548,7 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor{ - dir = 1; - icon_state = "whitered" - }, +/turf/open/floor/whitered/north, /area/ice_colony/surface/clinic/storage) "atG" = ( /obj/structure/ice/ice_rock/cornerOverlay, @@ -6918,17 +5593,11 @@ /area/ice_colony/surface/hydroponics/lobby) "atO" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 8; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/west, /area/ice_colony/surface/hydroponics/lobby) "atP" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor{ - dir = 4; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/east, /area/ice_colony/surface/hydroponics/lobby) "atQ" = ( /obj/structure/flora/bush/ausbushes/var3/fullgrass, @@ -6946,9 +5615,7 @@ /obj/structure/machinery/computer/shuttle_control/ice_colony/elevator2{ pixel_y = 30 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/dorms) "atU" = ( /obj/structure/machinery/colony_floodlight, @@ -6970,94 +5637,68 @@ name = "\improper Aurora Medical Clinic"; req_access_txt = "100" }, -/turf/open/floor{ - icon_state = "whiteredfull" - }, +/turf/open/floor/whiteredfull, /area/ice_colony/surface/clinic/lobby) "atY" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor{ - dir = 8; - icon_state = "whiteredcorner" - }, +/turf/open/floor/whiteredcorner/west, /area/ice_colony/surface/clinic/lobby) "atZ" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor{ - icon_state = "cafeteria" - }, +/turf/open/floor/cafeteria, /area/ice_colony/surface/clinic/lobby) "aua" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor{ - dir = 5; - icon_state = "whitered" - }, +/turf/open/floor/whitered/northeast, /area/ice_colony/surface/clinic/lobby) "aub" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor{ - dir = 9; - icon_state = "whitered" - }, +/turf/open/floor/whitered/northwest, /area/ice_colony/surface/clinic/lobby) "auc" = ( /obj/structure/disposalpipe/junction{ dir = 8; icon_state = "pipe-j2" }, -/turf/open/floor{ - icon_state = "cafeteria" - }, +/turf/open/floor/cafeteria, /area/ice_colony/surface/clinic/lobby) "aud" = ( /obj/structure/disposalpipe/segment{ dir = 8; icon_state = "pipe-c" }, -/turf/open/floor{ - icon_state = "whiteredcorner" - }, +/turf/open/floor/whiteredcorner, /area/ice_colony/surface/clinic/lobby) "aue" = ( /obj/item/paper_bin, /obj/item/tool/pen/blue, /obj/structure/surface/table/reinforced, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - icon_state = "whitered" - }, +/turf/open/floor/whitered, /area/ice_colony/surface/clinic/lobby) "auf" = ( /obj/item/shard, -/turf/open/floor{ - icon_state = "whitered" - }, +/turf/open/floor/whitered, /area/ice_colony/surface/clinic/lobby) "aug" = ( /obj/structure/machinery/power/apc{ pixel_y = -24; start_charge = 0 }, -/turf/open/floor{ - icon_state = "whitered" - }, +/turf/open/floor/whitered, /area/ice_colony/surface/clinic/lobby) "auh" = ( /obj/structure/filingcabinet, /obj/item/paper/research_notes, -/turf/open/floor{ - dir = 6; - icon_state = "whitered" - }, +/turf/open/floor/whitered/southeast, /area/ice_colony/surface/clinic/lobby) "aui" = ( /turf/open/auto_turf/snow/layer3, @@ -7083,10 +5724,7 @@ dir = 4; pixel_x = -24 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/west, /area/ice_colony/surface/hydroponics/lobby) "aun" = ( /obj/structure/flora/bush/ausbushes/palebush, @@ -7096,27 +5734,18 @@ /obj/structure/surface/table, /obj/item/bodybag/cryobag, /obj/item/storage/box/syringes, -/turf/open/floor{ - dir = 5; - icon_state = "whitered" - }, +/turf/open/floor/whitered/northeast, /area/ice_colony/surface/clinic/storage) "aup" = ( /obj/structure/surface/table/woodentable, /obj/item/paper/research_notes, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 1; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/north, /area/ice_colony/surface/hydroponics/lobby) "auq" = ( /obj/structure/surface/table/woodentable, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 8; - icon_state = "darkgreencorners2" - }, +/turf/open/floor/darkgreencorners2/west, /area/ice_colony/surface/hydroponics/lobby) "aur" = ( /obj/structure/bed/chair{ @@ -7126,10 +5755,7 @@ dir = 4; pixel_x = 24 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/east, /area/ice_colony/surface/hydroponics/lobby) "aus" = ( /turf/open/auto_turf/snow/layer1, @@ -7151,29 +5777,21 @@ /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor{ - dir = 8; - icon_state = "whitered" - }, +/turf/open/floor/whitered/west, /area/ice_colony/surface/clinic/lobby) "auy" = ( /obj/structure/disposalpipe/segment{ dir = 1; icon_state = "pipe-c" }, -/turf/open/floor{ - icon_state = "cafeteria" - }, +/turf/open/floor/cafeteria, /area/ice_colony/surface/clinic/lobby) "auz" = ( /obj/structure/disposalpipe/segment{ dir = 2; icon_state = "pipe-c" }, -/turf/open/floor{ - dir = 4; - icon_state = "whitered" - }, +/turf/open/floor/whitered/east, /area/ice_colony/surface/clinic/lobby) "auA" = ( /obj/effect/landmark/monkey_spawn, @@ -7190,27 +5808,18 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor{ - dir = 9; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/northwest, /area/ice_colony/surface/hydroponics/lobby) "auD" = ( /obj/structure/surface/table/woodentable, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 8; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/west, /area/ice_colony/surface/hydroponics/lobby) "auE" = ( /obj/structure/bed/chair/comfy/orange{ dir = 1 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkgreencorners2" - }, +/turf/open/floor/darkgreencorners2/north, /area/ice_colony/surface/hydroponics/lobby) "auF" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -7218,37 +5827,25 @@ dir = 4; icon_state = "pipe-c" }, -/turf/open/floor{ - dir = 5; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/northeast, /area/ice_colony/surface/hydroponics/lobby) "auG" = ( /obj/structure/disposalpipe/segment{ dir = 8; icon_state = "pipe-c" }, -/turf/open/floor{ - dir = 9; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/northwest, /area/ice_colony/surface/hydroponics/lobby) "auH" = ( /obj/structure/bed/chair/comfy/orange{ dir = 1 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkgreencorners2" - }, +/turf/open/floor/darkgreencorners2/east, /area/ice_colony/surface/hydroponics/lobby) "auI" = ( /obj/structure/surface/table/woodentable, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 4; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/east, /area/ice_colony/surface/hydroponics/lobby) "auJ" = ( /obj/structure/flora/bush/ausbushes/grassybush, @@ -7259,10 +5856,7 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor{ - dir = 5; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/northeast, /area/ice_colony/surface/hydroponics/lobby) "auL" = ( /obj/structure/sign/safety/biolab, @@ -7283,19 +5877,14 @@ dir = 4; icon_state = "pipe-c" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/dorms) "auO" = ( /obj/structure/disposalpipe/segment{ dir = 8; icon_state = "pipe-c" }, -/turf/open/floor{ - dir = 4; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/east, /area/ice_colony/surface/dorms) "auP" = ( /obj/effect/spawner/random/toolbox, @@ -7315,37 +5904,27 @@ "auS" = ( /obj/structure/surface/table, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 10; - icon_state = "whitered" - }, +/turf/open/floor/whitered/southwest, /area/ice_colony/surface/clinic/lobby) "auT" = ( /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor{ - icon_state = "whitered" - }, +/turf/open/floor/whitered, /area/ice_colony/surface/clinic/lobby) "auU" = ( /obj/structure/bed/chair{ dir = 1 }, /obj/structure/machinery/light, -/turf/open/floor{ - icon_state = "whitered" - }, +/turf/open/floor/whitered, /area/ice_colony/surface/clinic/lobby) "auV" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk{ dir = 1 }, -/turf/open/floor{ - dir = 6; - icon_state = "whitered" - }, +/turf/open/floor/whitered/southeast, /area/ice_colony/surface/clinic/lobby) "auW" = ( /obj/structure/ice/thin/single, @@ -7363,31 +5942,19 @@ /turf/open/gm/grass/grass1, /area/ice_colony/surface/hydroponics/lobby) "auZ" = ( -/turf/open/floor{ - dir = 1; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/north, /area/ice_colony/surface/hydroponics/lobby) "ava" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/north, /area/ice_colony/surface/hydroponics/lobby) "avb" = ( -/turf/open/floor{ - dir = 6; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/southeast, /area/ice_colony/surface/hydroponics/lobby) "avc" = ( -/turf/open/floor{ - dir = 10; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/southwest, /area/ice_colony/surface/hydroponics/lobby) "avd" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -7395,62 +5962,43 @@ dir = 1; icon_state = "pipe-c" }, -/turf/open/floor{ - icon_state = "darkgreencorners2" - }, +/turf/open/floor/darkgreencorners2, /area/ice_colony/surface/hydroponics/lobby) "ave" = ( /obj/structure/disposalpipe/junction{ dir = 4 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkgreencorners2" - }, +/turf/open/floor/darkgreencorners2/west, /area/ice_colony/surface/hydroponics/lobby) "avf" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor{ - dir = 6; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/southeast, /area/ice_colony/surface/hydroponics/lobby) "avg" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/north, /area/ice_colony/surface/hydroponics/lobby) "avh" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor{ - dir = 10; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/southwest, /area/ice_colony/surface/hydroponics/lobby) "avi" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/hydroponics/lobby) "avj" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/east, /area/ice_colony/surface/hydroponics/lobby) "avk" = ( /obj/effect/decal/cleanable/blood{ @@ -7463,27 +6011,19 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor{ - dir = 9; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/northwest, /area/ice_colony/surface/dorms) "avm" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/north, /area/ice_colony/surface/dorms) "avn" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/dorms) "avo" = ( /obj/structure/disposalpipe/segment{ @@ -7492,10 +6032,7 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/north, /area/ice_colony/surface/dorms) "avp" = ( /obj/structure/disposalpipe/segment{ @@ -7507,18 +6044,13 @@ /obj/effect/decal/cleanable/blood{ icon_state = "gib6" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/dorms) "avq" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkgreencorners2" - }, +/turf/open/floor/darkgreencorners2/north, /area/ice_colony/surface/dorms) "avr" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -7526,9 +6058,7 @@ dir = 2; icon_state = "pipe-c" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/dorms) "avs" = ( /obj/effect/decal/cleanable/blood{ @@ -7541,19 +6071,13 @@ /obj/structure/disposalpipe/junction{ dir = 4 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkgreencorners2" - }, +/turf/open/floor/darkgreencorners2/east, /area/ice_colony/surface/dorms) "avu" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor{ - dir = 5; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/northeast, /area/ice_colony/surface/dorms) "avw" = ( /obj/effect/landmark/corpsespawner/engineer, @@ -7593,39 +6117,29 @@ dir = 1; name = "\improper Hydroponics Zoo Dome" }, -/turf/open/floor{ - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2, /area/ice_colony/surface/hydroponics/lobby) "avC" = ( -/turf/open/floor{ - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2, /area/ice_colony/surface/hydroponics/lobby) "avD" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor{ - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2, /area/ice_colony/surface/hydroponics/lobby) "avE" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2, /area/ice_colony/surface/hydroponics/lobby) "avF" = ( /obj/structure/machinery/light, /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2, /area/ice_colony/surface/hydroponics/lobby) "avG" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -7635,70 +6149,48 @@ dir = 1; name = "\improper Hydroponics Dome" }, -/turf/open/floor{ - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2, /area/ice_colony/surface/hydroponics/lobby) "avH" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkgreencorners2" - }, +/turf/open/floor/darkgreencorners2/west, /area/ice_colony/surface/hydroponics/lobby) "avI" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/hydroponics/lobby) "avJ" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor{ - dir = 5; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/northeast, /area/ice_colony/surface/hydroponics/lobby) "avK" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - dir = 9; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/northwest, /area/ice_colony/surface/hydroponics/lobby) "avL" = ( /obj/structure/pipes/standard/manifold/fourway/hidden/green, -/turf/open/floor{ - dir = 4; - icon_state = "darkgreencorners2" - }, +/turf/open/floor/darkgreencorners2/east, /area/ice_colony/surface/hydroponics/lobby) "avM" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkgreencorners2" - }, +/turf/open/floor/darkgreencorners2/north, /area/ice_colony/surface/hydroponics/lobby) "avN" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - dir = 5; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/northeast, /area/ice_colony/surface/hydroponics/lobby) "avO" = ( /obj/item/lightstick/planted, @@ -7708,10 +6200,7 @@ /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor{ - dir = 9; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/northwest, /area/ice_colony/surface/hydroponics/lobby) "avQ" = ( /obj/item/shard, @@ -7721,10 +6210,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/east, /area/ice_colony/surface/hydroponics/lobby) "avS" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -7734,9 +6220,7 @@ dir = 1; name = "\improper Hydroponics Dome" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/hydroponics/lobby) "avT" = ( /obj/item/stack/rods, @@ -7758,27 +6242,19 @@ dir = 1; name = "\improper Colony Dormitories" }, -/turf/open/floor{ - dir = 10; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/southwest, /area/ice_colony/surface/dorms) "avW" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2, /area/ice_colony/surface/dorms) "avX" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkgreencorners2" - }, +/turf/open/floor/darkgreencorners2/west, /area/ice_colony/surface/dorms) "avY" = ( /obj/structure/disposalpipe/segment{ @@ -7786,9 +6262,7 @@ icon_state = "pipe-c" }, /obj/structure/pipes/standard/manifold/fourway/hidden/green, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/dorms) "avZ" = ( /obj/structure/disposalpipe/segment{ @@ -7797,9 +6271,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/dorms) "awa" = ( /obj/structure/disposalpipe/segment{ @@ -7809,9 +6281,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "darkgreencorners2" - }, +/turf/open/floor/darkgreencorners2, /area/ice_colony/surface/dorms) "awb" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -7821,10 +6291,7 @@ dir = 1; name = "\improper Colony Dormitories" }, -/turf/open/floor{ - dir = 6; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/southeast, /area/ice_colony/surface/dorms) "awc" = ( /obj/structure/machinery/colony_floodlight, @@ -7870,76 +6337,49 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor{ - dir = 10; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/southwest, /area/ice_colony/surface/hydroponics/lobby) "awj" = ( -/turf/open/floor{ - dir = 8; - icon_state = "darkgreencorners2" - }, +/turf/open/floor/darkgreencorners2/west, /area/ice_colony/surface/hydroponics/lobby) "awk" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/hydroponics/lobby) "awl" = ( /obj/structure/bed/chair/comfy/orange, -/turf/open/floor{ - dir = 8; - icon_state = "darkgreencorners2" - }, +/turf/open/floor/darkgreencorners2/west, /area/ice_colony/surface/hydroponics/lobby) "awm" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 4; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/east, /area/ice_colony/surface/hydroponics/lobby) "awn" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor{ - dir = 8; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/west, /area/ice_colony/surface/hydroponics/lobby) "awo" = ( /obj/structure/bed/chair/comfy/orange, -/turf/open/floor{ - icon_state = "darkgreencorners2" - }, +/turf/open/floor/darkgreencorners2, /area/ice_colony/surface/hydroponics/lobby) "awp" = ( /obj/structure/flora/bush/ausbushes/pointybush, /turf/open/floor/grass, /area/ice_colony/surface/hydroponics/lobby) "awq" = ( -/turf/open/floor{ - icon_state = "darkgreencorners2" - }, +/turf/open/floor/darkgreencorners2, /area/ice_colony/surface/hydroponics/lobby) "awr" = ( /obj/structure/flora/pottedplant, /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor{ - dir = 6; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/southeast, /area/ice_colony/surface/hydroponics/lobby) "aws" = ( -/turf/open/floor{ - dir = 4; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/east, /area/ice_colony/surface/dorms) "awu" = ( /obj/item/shard, @@ -7995,10 +6435,7 @@ pixel_x = -24; start_charge = 0 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/west, /area/ice_colony/surface/hydroponics/lobby) "awD" = ( /obj/structure/flora/bush/ausbushes/var3/sunnybush, @@ -8035,9 +6472,7 @@ "awH" = ( /obj/structure/surface/table/woodentable, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2, /area/ice_colony/surface/hydroponics/lobby) "awJ" = ( /obj/item/lightstick/planted, @@ -8080,17 +6515,11 @@ /area/ice_colony/surface/disposals) "awQ" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 5; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/northeast, /area/ice_colony/surface/hydroponics/lobby) "awR" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor{ - dir = 9; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/northwest, /area/ice_colony/surface/hydroponics/lobby) "awT" = ( /obj/structure/closet/cabinet, @@ -8174,25 +6603,17 @@ /area/ice_colony/surface/disposals) "axh" = ( /obj/structure/surface/table/woodentable, -/turf/open/floor{ - dir = 10; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/southwest, /area/ice_colony/exterior/surface/valley/west) "axi" = ( /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor{ - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2, /area/ice_colony/surface/hydroponics/lobby) "axj" = ( /obj/structure/surface/table/woodentable, -/turf/open/floor{ - dir = 6; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/southeast, /area/ice_colony/exterior/surface/clearing/north) "axk" = ( /turf/closed/wall/r_wall, @@ -8204,10 +6625,7 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/east, /area/ice_colony/surface/dorms) "axn" = ( /turf/closed/wall, @@ -8257,43 +6675,31 @@ /area/ice_colony/exterior/surface/clearing/south) "axv" = ( /obj/item/trash/candy, -/turf/open/floor/plating{ - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate, /area/ice_colony/surface/disposals) "axw" = ( /obj/item/ammo_magazine/shotgun/slugs{ pixel_x = 6; pixel_y = -4 }, -/turf/open/floor/plating{ - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate, /area/ice_colony/surface/disposals) "axx" = ( /obj/item/trash/raisins, -/turf/open/floor/plating{ - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate, /area/ice_colony/surface/disposals) "axy" = ( /obj/effect/landmark/crap_item, -/turf/open/floor/plating{ - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate, /area/ice_colony/surface/disposals) "axz" = ( /obj/item/evidencebag, /obj/item/trash/pistachios, -/turf/open/floor/plating{ - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate, /area/ice_colony/surface/disposals) "axA" = ( /obj/item/trash/liquidfood, -/turf/open/floor/plating{ - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate, /area/ice_colony/surface/disposals) "axB" = ( /obj/structure/ice/thin/junction, @@ -8302,55 +6708,35 @@ "axC" = ( /obj/structure/flora/pottedplant, /obj/structure/machinery/light, -/turf/open/floor{ - dir = 10; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/southwest, /area/ice_colony/surface/hydroponics/lobby) "axD" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 8; - icon_state = "darkgreencorners2" - }, +/turf/open/floor/darkgreencorners2/west, /area/ice_colony/surface/hydroponics/lobby) "axE" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor{ - icon_state = "darkgreencorners2" - }, +/turf/open/floor/darkgreencorners2, /area/ice_colony/surface/hydroponics/lobby) "axF" = ( /obj/structure/flora/pottedplant, /obj/structure/machinery/light, -/turf/open/floor{ - dir = 6; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/southeast, /area/ice_colony/surface/hydroponics/lobby) "axG" = ( /obj/structure/machinery/washing_machine, -/turf/open/floor{ - dir = 9; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/northwest, /area/ice_colony/surface/dorms/lavatory) "axH" = ( /obj/structure/machinery/washing_machine, -/turf/open/floor{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/north, /area/ice_colony/surface/dorms/lavatory) "axI" = ( /obj/structure/machinery/washing_machine, /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/north, /area/ice_colony/surface/dorms/lavatory) "axJ" = ( /obj/structure/machinery/power/apc{ @@ -8359,23 +6745,14 @@ start_charge = 0 }, /obj/structure/closet/crate/trashcart, -/turf/open/floor{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/north, /area/ice_colony/surface/dorms/lavatory) "axK" = ( /obj/structure/closet/crate/trashcart, -/turf/open/floor{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/north, /area/ice_colony/surface/dorms/lavatory) "axL" = ( -/turf/open/floor{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/north, /area/ice_colony/surface/dorms/lavatory) "axM" = ( /obj/structure/ladder{ @@ -8384,23 +6761,14 @@ id = "dorms_ladder"; pixel_y = 16 }, -/turf/open/floor{ - dir = 5; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/northeast, /area/ice_colony/surface/dorms/lavatory) "axN" = ( -/turf/open/floor{ - dir = 8; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/west, /area/ice_colony/surface/dorms) "axO" = ( /obj/structure/machinery/vending/snack, -/turf/open/floor{ - dir = 9; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/northwest, /area/ice_colony/surface/dorms/canteen) "axP" = ( /obj/structure/machinery/power/apc{ @@ -8408,25 +6776,16 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/north, /area/ice_colony/surface/dorms/canteen) "axQ" = ( /obj/structure/closet/secure_closet/freezer/fridge, -/turf/open/floor{ - dir = 1; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/north, /area/ice_colony/surface/dorms/canteen) "axR" = ( /obj/structure/closet/secure_closet/freezer/fridge, /obj/effect/landmark/crap_item, -/turf/open/floor{ - dir = 1; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/north, /area/ice_colony/surface/dorms/canteen) "axS" = ( /obj/structure/surface/table, @@ -8435,36 +6794,24 @@ }, /obj/item/reagent_container/food/snacks/hotchili, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 1; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/north, /area/ice_colony/surface/dorms/canteen) "axT" = ( /obj/structure/surface/table, /obj/structure/machinery/microwave, -/turf/open/floor{ - dir = 1; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/north, /area/ice_colony/surface/dorms/canteen) "axU" = ( /obj/structure/surface/table, /obj/item/storage/box/donkpockets, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 1; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/north, /area/ice_colony/surface/dorms/canteen) "axV" = ( /obj/structure/surface/table, /obj/item/storage/box/pizza, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 5; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/northeast, /area/ice_colony/surface/dorms/canteen) "axW" = ( /obj/vehicle/train/cargo/trolley, @@ -8556,26 +6903,17 @@ /obj/structure/window/reinforced{ dir = 1 }, -/turf/open/floor{ - dir = 9; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/northwest, /area/ice_colony/surface/disposals) "ayn" = ( /obj/structure/window/reinforced{ dir = 1 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/north, /area/ice_colony/surface/disposals) "ayo" = ( /obj/structure/machinery/door/window/northright, -/turf/open/floor{ - dir = 5; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/northeast, /area/ice_colony/surface/disposals) "ayp" = ( /turf/closed/wall/r_wall, @@ -8585,44 +6923,28 @@ /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper Hydroponics Dome South Wing" }, -/turf/open/floor{ - dir = 8; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/west, /area/ice_colony/surface/hydroponics/south) "ayr" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor{ - dir = 4; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/east, /area/ice_colony/surface/hydroponics/south) "ays" = ( -/turf/open/floor{ - dir = 8; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/west, /area/ice_colony/surface/dorms/lavatory) "ayt" = ( -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/dorms/lavatory) "ayu" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/dorms/lavatory) "ayv" = ( /obj/item/lightstick/planted, /turf/open/auto_turf/snow/layer0, /area/ice_colony/exterior/surface/clearing/south) "ayw" = ( -/turf/open/floor{ - dir = 4; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/east, /area/ice_colony/surface/dorms/lavatory) "ayx" = ( /obj/structure/machinery/vending/coffee, @@ -8630,35 +6952,25 @@ dir = 4; pixel_x = -24 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/west, /area/ice_colony/surface/dorms/canteen) "ayy" = ( /obj/item/lightstick/planted, /turf/open/auto_turf/snow/layer3, /area/ice_colony/exterior/surface/valley/southwest) "ayz" = ( -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/dorms/canteen) "ayA" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/dorms/canteen) "ayB" = ( /obj/structure/machinery/firealarm{ dir = 4; pixel_x = 24 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/east, /area/ice_colony/surface/dorms/canteen) "ayC" = ( /turf/open/auto_turf/snow/layer1, @@ -8721,10 +7033,7 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor{ - dir = 8; - icon_state = "whitered" - }, +/turf/open/floor/whitered/west, /area/ice_colony/surface/clinic/treatment) "ayM" = ( /obj/structure/closet/secure_closet/medical3{ @@ -8733,10 +7042,7 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor{ - dir = 8; - icon_state = "whitered" - }, +/turf/open/floor/whitered/west, /area/ice_colony/surface/clinic/storage) "ayN" = ( /turf/open/auto_turf/snow/layer0, @@ -8757,9 +7063,7 @@ /obj/structure/machinery/door/airlock/almayer/engineering/colony{ name = "\improper Colony Disposals" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/disposals) "ayS" = ( /obj/structure/disposalpipe/segment, @@ -8780,18 +7084,13 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/disposals) "ayV" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/east, /area/ice_colony/surface/disposals) "ayW" = ( /obj/structure/window/framed/colony/reinforced, @@ -8809,51 +7108,34 @@ "ayY" = ( /obj/structure/surface/table, /obj/structure/bedsheetbin, -/turf/open/floor{ - dir = 10; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/southwest, /area/ice_colony/surface/dorms/lavatory) "ayZ" = ( /obj/structure/surface/table, /obj/structure/bedsheetbin, -/turf/open/floor{ - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2, /area/ice_colony/surface/dorms/lavatory) "aza" = ( /obj/structure/surface/table, /obj/item/reagent_container/spray/cleaner, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2, /area/ice_colony/surface/dorms/lavatory) "azb" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/dorms/lavatory) "azc" = ( /obj/structure/closet/wardrobe/mixed, -/turf/open/floor{ - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2, /area/ice_colony/surface/dorms/lavatory) "azd" = ( /obj/structure/closet/wardrobe/mixed, -/turf/open/floor{ - dir = 6; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/southeast, /area/ice_colony/surface/dorms/lavatory) "aze" = ( /obj/structure/machinery/vending/cola, -/turf/open/floor{ - dir = 10; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/southwest, /area/ice_colony/surface/dorms/canteen) "azf" = ( /obj/structure/disposalpipe/segment{ @@ -8865,45 +7147,34 @@ /turf/open/auto_turf/snow/layer1, /area/ice_colony/exterior/surface/valley/south) "azg" = ( -/turf/open/floor{ - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2, /area/ice_colony/surface/dorms/canteen) "azh" = ( /obj/structure/disposalpipe/segment{ dir = 4; icon_state = "pipe-c" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/dorms/canteen) "azi" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/dorms/canteen) "azj" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor{ - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2, /area/ice_colony/surface/dorms/canteen) "azk" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk{ dir = 8 }, -/turf/open/floor{ - dir = 6; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/southeast, /area/ice_colony/surface/dorms/canteen) "azl" = ( /obj/structure/disposalpipe/segment{ @@ -8938,30 +7209,20 @@ /turf/open/auto_turf/snow/layer0, /area/ice_colony/exterior/surface/valley/south) "azr" = ( -/turf/open/floor{ - dir = 8; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/west, /area/ice_colony/surface/disposals) "azs" = ( -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/disposals) "azt" = ( /turf/open/auto_turf/snow/layer1, /area/ice_colony/exterior/surface/valley/south/excavation) "azu" = ( /obj/effect/landmark/survivor_spawner, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/disposals) "azv" = ( -/turf/open/floor{ - dir = 4; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/east, /area/ice_colony/surface/disposals) "azw" = ( /obj/structure/machinery/portable_atmospherics/hydroponics, @@ -8975,9 +7236,7 @@ /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper Colony Dormitories Lavatory" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/dorms/lavatory) "azz" = ( /turf/open/auto_turf/snow/layer0, @@ -8991,15 +7250,11 @@ /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper Colony Dormitories Canteen" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/dorms/canteen) "azC" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/dorms/canteen) "azD" = ( /turf/closed/wall/r_wall, @@ -9029,22 +7284,14 @@ /obj/item/device/radio, /obj/item/storage/toolbox/emergency, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 8; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/west, /area/ice_colony/surface/disposals) "azJ" = ( -/turf/open/floor{ - icon_state = "darkbrowncorners2" - }, +/turf/open/floor/darkbrowncorners2, /area/ice_colony/surface/disposals) "azK" = ( /obj/structure/machinery/space_heater, -/turf/open/floor{ - dir = 6; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/southeast, /area/ice_colony/surface/disposals) "azL" = ( /obj/structure/machinery/light{ @@ -9056,22 +7303,13 @@ /obj/structure/machinery/door/airlock/almayer/medical/glass/colony{ name = "\improper Colony Dormitories" }, -/turf/open/floor{ - dir = 9; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/northwest, /area/ice_colony/surface/dorms) "azN" = ( -/turf/open/floor{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/north, /area/ice_colony/surface/dorms) "azO" = ( -/turf/open/floor{ - dir = 1; - icon_state = "darkbrowncorners2" - }, +/turf/open/floor/darkbrowncorners2/north, /area/ice_colony/surface/dorms) "azP" = ( /obj/effect/landmark/hunter_secondary, @@ -9079,9 +7317,7 @@ /area/ice_colony/exterior/surface/valley/south/excavation) "azQ" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/dorms) "azR" = ( /turf/closed/wall/r_wall, @@ -9090,32 +7326,20 @@ /obj/structure/surface/table, /obj/item/storage/belt/utility, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 9; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/northwest, /area/ice_colony/surface/garage/one) "azT" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/north, /area/ice_colony/surface/garage/one) "azU" = ( -/turf/open/floor{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/north, /area/ice_colony/surface/garage/one) "azV" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/north, /area/ice_colony/surface/garage/one) "azW" = ( /obj/structure/machinery/power/apc{ @@ -9123,26 +7347,17 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/north, /area/ice_colony/surface/garage/one) "azX" = ( /obj/structure/reagent_dispensers/fueltank, -/turf/open/floor{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/north, /area/ice_colony/surface/garage/one) "azY" = ( /obj/structure/surface/table, /obj/effect/spawner/random/tool, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/north, /area/ice_colony/surface/garage/one) "azZ" = ( /obj/structure/machinery/light{ @@ -9151,18 +7366,12 @@ /obj/structure/surface/table, /obj/effect/spawner/random/toolbox, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/north, /area/ice_colony/surface/garage/one) "aAa" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk, -/turf/open/floor{ - dir = 5; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/northeast, /area/ice_colony/surface/garage/one) "aAb" = ( /turf/closed/wall, @@ -9170,10 +7379,7 @@ "aAc" = ( /obj/structure/surface/table, /obj/effect/landmark/crap_item, -/turf/open/floor{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/north, /area/ice_colony/surface/garage/two) "aAd" = ( /obj/structure/machinery/light{ @@ -9181,23 +7387,14 @@ }, /obj/structure/surface/table, /obj/effect/spawner/random/tool, -/turf/open/floor{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/north, /area/ice_colony/surface/garage/two) "aAe" = ( -/turf/open/floor{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/north, /area/ice_colony/surface/garage/two) "aAf" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/north, /area/ice_colony/surface/garage/two) "aAg" = ( /obj/structure/machinery/power/apc{ @@ -9205,34 +7402,22 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/north, /area/ice_colony/surface/garage/two) "aAh" = ( /obj/structure/reagent_dispensers/fueltank, -/turf/open/floor{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/north, /area/ice_colony/surface/garage/two) "aAi" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/north, /area/ice_colony/surface/garage/two) "aAj" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk, -/turf/open/floor{ - dir = 5; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/northeast, /area/ice_colony/surface/garage/two) "aAk" = ( /obj/structure/surface/table, @@ -9244,10 +7429,7 @@ /obj/item/storage/box/lightstick/red, /obj/effect/landmark/good_item, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 10; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/southwest, /area/ice_colony/surface/disposals) "aAm" = ( /obj/structure/surface/table, @@ -9259,92 +7441,65 @@ pixel_y = -24; start_charge = 0 }, -/turf/open/floor{ - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2, /area/ice_colony/surface/disposals) "aAo" = ( /obj/structure/machinery/light, -/turf/open/floor{ - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2, /area/ice_colony/surface/disposals) "aAp" = ( /obj/structure/surface/rack, /obj/item/tool/shovel/snow, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2, /area/ice_colony/surface/disposals) "aAq" = ( /obj/structure/surface/rack, /obj/item/device/flashlight, /obj/item/device/flashlight/flare, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 6; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/southeast, /area/ice_colony/surface/disposals) "aAr" = ( /obj/structure/machinery/door/airlock/almayer/medical/glass/colony{ name = "\improper Hydroponics South Wing Dome" }, -/turf/open/floor{ - dir = 8; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/west, /area/ice_colony/surface/hydroponics/south) "aAs" = ( -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/hydroponics/south) "aAt" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/hydroponics/south) "aAu" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/hydroponics/south) "aAv" = ( /obj/structure/disposalpipe/segment, /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/east, /area/ice_colony/surface/hydroponics/south) "aAw" = ( /obj/structure/window/framed/colony, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/dorms) "aAx" = ( -/turf/open/floor{ - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2, /area/ice_colony/surface/dorms) "aAy" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/dorms) "aAz" = ( /obj/structure/surface/table, @@ -9357,9 +7512,7 @@ /obj/structure/shuttle/diagonal{ icon_state = "swall_f9" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/hangar/alpha) "aAB" = ( /obj/structure/surface/table, @@ -9368,9 +7521,7 @@ /area/ice_colony/exterior/surface/valley/south/excavation) "aAC" = ( /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/dorms) "aAD" = ( /obj/structure/machinery/floodlight{ @@ -9393,9 +7544,7 @@ /obj/structure/shuttle/diagonal{ icon_state = "swall_f5" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/hangar/alpha) "aAH" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -9405,18 +7554,14 @@ dir = 1; icon_state = "pipe-c" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/dorms) "aAI" = ( /obj/structure/pipes/standard/manifold/fourway/hidden/green, /obj/structure/disposalpipe/junction{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/dorms) "aAJ" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -9425,9 +7570,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/dorms) "aAK" = ( /obj/structure/shuttle/diagonal{ @@ -9436,9 +7579,7 @@ /obj/structure/shuttle/diagonal{ icon_state = "swall_f9" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/hangar/beta) "aAL" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -9448,9 +7589,7 @@ dir = 4 }, /obj/structure/window/framed/colony, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/dorms) "aAN" = ( /obj/effect/landmark/yautja_teleport, @@ -9464,30 +7603,20 @@ /obj/structure/surface/table, /obj/effect/spawner/random/powercell, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 9; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/northwest, /area/ice_colony/surface/garage/one) "aAQ" = ( /obj/structure/surface/table, /obj/effect/spawner/random/tool, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 1; - icon_state = "darkbrowncorners2" - }, +/turf/open/floor/darkbrowncorners2/north, /area/ice_colony/surface/garage/one) "aAR" = ( -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/garage/one) "aAS" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/garage/one) "aAT" = ( /obj/structure/surface/rack, @@ -9495,30 +7624,20 @@ /area/ice_colony/exterior/surface/valley/south/excavation) "aAU" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor{ - dir = 4; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/east, /area/ice_colony/surface/garage/one) "aAV" = ( /obj/structure/closet/secure_closet/medical1{ req_access_txt = "100" }, -/turf/open/floor{ - dir = 8; - icon_state = "whitered" - }, +/turf/open/floor/whitered/west, /area/ice_colony/surface/clinic/storage) "aAW" = ( -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/garage/two) "aAX" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/garage/two) "aAY" = ( /obj/structure/surface/rack, @@ -9527,16 +7646,10 @@ /area/ice_colony/exterior/surface/valley/south/excavation) "aAZ" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor{ - dir = 4; - icon_state = "darkbrowncorners2" - }, +/turf/open/floor/darkbrowncorners2/east, /area/ice_colony/surface/garage/two) "aBa" = ( -/turf/open/floor{ - dir = 5; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/northeast, /area/ice_colony/surface/garage/two) "aBb" = ( /obj/structure/ice/thin/straight{ @@ -9561,14 +7674,10 @@ /obj/structure/machinery/door/airlock/multi_tile/almayer/comdoor/colony{ name = "\improper Colony Administration" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/command/checkpoint) "aBg" = ( -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/command/checkpoint) "aBh" = ( /obj/structure/window/framed/colony/reinforced, @@ -9579,10 +7688,7 @@ /obj/structure/disposalpipe/trunk{ dir = 4 }, -/turf/open/floor{ - dir = 9; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/northwest, /area/ice_colony/surface/garage/repair) "aBj" = ( /obj/structure/disposalpipe/segment{ @@ -9596,10 +7702,7 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/ice_colony/surface/garage/repair) "aBk" = ( /obj/structure/machinery/light{ @@ -9608,40 +7711,27 @@ /obj/structure/surface/table, /obj/effect/spawner/random/tool, /obj/effect/spawner/random/toolbox, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/ice_colony/surface/garage/repair) "aBl" = ( /obj/structure/surface/table, /obj/item/storage/box/lightstick/red, /obj/effect/landmark/crap_item, -/turf/open/floor{ - dir = 5; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/northeast, /area/ice_colony/surface/garage/repair) "aBm" = ( /obj/structure/surface/table, /obj/effect/landmark/good_item, -/turf/open/floor{ - dir = 8; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/west, /area/ice_colony/surface/garage/one) "aBn" = ( /obj/vehicle/train/cargo/trolley, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/garage/one) "aBo" = ( /obj/vehicle/train/cargo/trolley, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/garage/one) "aBp" = ( /obj/item/tool/pickaxe, @@ -9650,78 +7740,51 @@ "aBq" = ( /obj/vehicle/train/cargo/trolley, /obj/effect/landmark/crap_item, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/garage/one) "aBr" = ( /obj/vehicle/train/cargo/engine, /obj/effect/decal/warning_stripes{ icon_state = "SE-out" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/garage/one) "aBs" = ( /obj/structure/surface/table, /obj/effect/spawner/random/tool, -/turf/open/floor{ - dir = 8; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/west, /area/ice_colony/surface/garage/two) "aBt" = ( /obj/effect/decal/warning_stripes{ icon_state = "SE-out" }, /obj/structure/disposalpipe/segment, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/garage/two) "aBu" = ( -/turf/open/floor{ - dir = 4; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/east, /area/ice_colony/surface/garage/two) "aBv" = ( /obj/structure/filingcabinet, /obj/item/paper/research_notes, -/turf/open/floor{ - dir = 9; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/northwest, /area/ice_colony/surface/command/control/office) "aBw" = ( -/turf/open/floor{ - dir = 1; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/north, /area/ice_colony/surface/command/control/office) "aBx" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/north, /area/ice_colony/surface/command/control/office) "aBy" = ( /obj/structure/machinery/photocopier, -/turf/open/floor{ - dir = 5; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/northeast, /area/ice_colony/surface/command/control/office) "aBz" = ( /obj/structure/machinery/computer/cameras, -/turf/open/floor{ - dir = 9; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/northwest, /area/ice_colony/surface/command/checkpoint) "aBA" = ( /obj/structure/closet/secure_closet/security, @@ -9730,45 +7793,28 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/north, /area/ice_colony/surface/command/checkpoint) "aBB" = ( /obj/structure/filingcabinet, -/turf/open/floor{ - dir = 5; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/northeast, /area/ice_colony/surface/command/checkpoint) "aBC" = ( /obj/item/shard, -/turf/open/floor{ - dir = 9; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/northwest, /area/ice_colony/surface/command/checkpoint) "aBD" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/command/checkpoint) "aBE" = ( /obj/structure/bed/chair, -/turf/open/floor{ - dir = 1; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/north, /area/ice_colony/surface/command/checkpoint) "aBF" = ( /obj/structure/machinery/vending/cigarette/colony, -/turf/open/floor{ - dir = 5; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/northeast, /area/ice_colony/surface/command/checkpoint) "aBG" = ( /obj/structure/surface/rack, @@ -9792,25 +7838,17 @@ /area/ice_colony/exterior/surface/valley/south/excavation) "aBK" = ( /obj/structure/machinery/power/port_gen/pacman, -/turf/open/floor{ - dir = 9; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/northwest, /area/ice_colony/surface/garage/repair) "aBL" = ( -/turf/open/floor{ - dir = 1; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/darkyellowcorners2/north, /area/ice_colony/surface/garage/repair) "aBM" = ( /obj/item/lightstick/planted, /turf/open/auto_turf/snow/layer1, /area/ice_colony/exterior/surface/valley/south/excavation) "aBN" = ( -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/garage/repair) "aBO" = ( /obj/structure/surface/rack, @@ -9819,29 +7857,20 @@ /area/ice_colony/exterior/surface/valley/south/excavation) "aBP" = ( /obj/structure/closet/toolcloset, -/turf/open/floor{ - dir = 8; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/west, /area/ice_colony/surface/garage/one) "aBQ" = ( /obj/effect/decal/warning_stripes{ icon_state = "N-corner" }, -/turf/open/floor{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/north, /area/ice_colony/surface/garage/one) "aBR" = ( /obj/effect/decal/warning_stripes{ icon_state = "N-corner" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/north, /area/ice_colony/surface/garage/one) "aBS" = ( /obj/structure/surface/rack, @@ -9852,36 +7881,24 @@ /obj/effect/decal/warning_stripes{ icon_state = "N" }, -/turf/open/floor{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/north, /area/ice_colony/surface/garage/one) "aBU" = ( /obj/structure/closet/toolcloset, -/turf/open/floor{ - dir = 8; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/west, /area/ice_colony/surface/garage/two) "aBV" = ( /obj/effect/decal/warning_stripes{ icon_state = "N-corner" }, -/turf/open/floor{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/north, /area/ice_colony/surface/garage/two) "aBW" = ( /obj/effect/decal/warning_stripes{ icon_state = "N-corner" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/north, /area/ice_colony/surface/garage/two) "aBX" = ( /obj/structure/surface/rack, @@ -9893,22 +7910,14 @@ icon_state = "N-corner" }, /obj/structure/disposalpipe/segment, -/turf/open/floor{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/north, /area/ice_colony/surface/garage/two) "aBZ" = ( /obj/structure/filingcabinet, -/turf/open/floor{ - dir = 8; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/west, /area/ice_colony/surface/command/control/office) "aCa" = ( -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/command/control/office) "aCb" = ( /obj/structure/window/reinforced/tinted{ @@ -9920,9 +7929,7 @@ /obj/structure/surface/table/reinforced, /obj/item/clipboard, /obj/item/tool/stamp, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/command/control/office) "aCc" = ( /obj/structure/window/reinforced/tinted{ @@ -9934,29 +7941,20 @@ /obj/structure/surface/table/reinforced, /obj/item/paper_bin, /obj/item/tool/pen/blue, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/command/control/office) "aCd" = ( /obj/effect/landmark/survivor_spawner, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/command/control/office) "aCe" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/command/control/office) "aCf" = ( /obj/structure/surface/table, /obj/structure/machinery/faxmachine, -/turf/open/floor{ - dir = 4; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/east, /area/ice_colony/surface/command/control/office) "aCg" = ( /obj/structure/machinery/alarm{ @@ -9967,10 +7965,7 @@ layer = 3 }, /obj/effect/landmark/corpsespawner/russian, -/turf/open/floor{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/west, /area/ice_colony/surface/command/checkpoint) "aCh" = ( /obj/structure/surface/table, @@ -9981,19 +7976,13 @@ /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ name = "\improper Colony Security Checkpoint" }, -/turf/open/floor{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/west, /area/ice_colony/surface/command/checkpoint) "aCm" = ( /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/east, /area/ice_colony/surface/command/checkpoint) "aCo" = ( /obj/structure/window/framed/colony/reinforced, @@ -10001,40 +7990,25 @@ /area/ice_colony/surface/garage/repair) "aCp" = ( /obj/structure/closet/toolcloset, -/turf/open/floor{ - dir = 9; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/northwest, /area/ice_colony/surface/garage/repair) "aCq" = ( -/turf/open/floor{ - dir = 8; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/west, /area/ice_colony/surface/garage/one) "aCr" = ( /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/garage/one) "aCs" = ( -/turf/open/floor{ - dir = 8; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/west, /area/ice_colony/surface/garage/two) "aCt" = ( /obj/effect/landmark/hunter_primary, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/garage/two) "aCu" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/garage/two) "aCv" = ( /obj/structure/ice/ice_rock/cornerOverlay, @@ -10055,44 +8029,33 @@ dir = 8 }, /obj/structure/reagent_dispensers/water_cooler, -/turf/open/floor{ - dir = 8; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/west, /area/ice_colony/surface/command/control/office) "aCy" = ( /obj/structure/bed/chair/office/light{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/command/control/office) "aCz" = ( /obj/structure/window/reinforced/tinted{ dir = 4 }, /obj/structure/machinery/computer/atmos_alert, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/command/control/office) "aCA" = ( /obj/structure/window/reinforced/tinted{ dir = 8 }, /obj/structure/machinery/computer/communications, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/command/control/office) "aCB" = ( /obj/structure/bed/chair/office/light{ dir = 8 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/command/control/office) "aCC" = ( /obj/effect/landmark/corpsespawner/bridgeofficer, @@ -10100,27 +8063,21 @@ layer = 3 }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/command/control/office) "aCD" = ( /obj/structure/window/reinforced/tinted{ dir = 4 }, /obj/structure/machinery/computer/cameras, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/command/control/office) "aCE" = ( /obj/structure/window/reinforced/tinted{ dir = 8 }, /obj/structure/machinery/computer/station_alert, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/command/control/office) "aCF" = ( /obj/structure/surface/table, @@ -10130,10 +8087,7 @@ pixel_x = 24 }, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 5; - icon_state = "whitered" - }, +/turf/open/floor/whitered/northeast, /area/ice_colony/surface/clinic/lobby) "aCG" = ( /obj/structure/machinery/firealarm{ @@ -10141,79 +8095,55 @@ pixel_x = -24 }, /obj/item/weapon/gun/energy/taser, -/turf/open/floor{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/west, /area/ice_colony/surface/command/checkpoint) "aCH" = ( -/turf/open/floor{ - dir = 4; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/east, /area/ice_colony/surface/command/checkpoint) "aCI" = ( -/turf/open/floor{ - dir = 8; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/west, /area/ice_colony/surface/command/checkpoint) "aCK" = ( /obj/structure/closet/secure_closet/engineering_electrical, -/turf/open/floor{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/west, /area/ice_colony/surface/garage/repair) "aCL" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/garage/repair) "aCM" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/garage/repair) "aCN" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/garage/repair) "aCP" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/garage/one) "aCQ" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/garage/one) "aCR" = ( /obj/vehicle/train/cargo/trolley, /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/garage/one) "aCS" = ( /obj/vehicle/train/cargo/trolley, @@ -10221,15 +8151,11 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/garage/one) "aCU" = ( /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/garage/two) "aCW" = ( /obj/structure/ice/thin/single, @@ -10242,10 +8168,7 @@ pixel_x = -24 }, /obj/effect/landmark/crap_item, -/turf/open/floor{ - dir = 8; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/west, /area/ice_colony/surface/command/control/office) "aDa" = ( /obj/structure/window/reinforced/tinted{ @@ -10255,16 +8178,12 @@ /obj/structure/surface/table/reinforced, /obj/item/clipboard, /obj/item/tool/stamp, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/command/control/office) "aDb" = ( /obj/item/weapon/gun/revolver/cmb, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/command/control/office) "aDc" = ( /obj/structure/window/reinforced/tinted{ @@ -10275,9 +8194,7 @@ /obj/item/clipboard, /obj/item/tool/stamp, /obj/effect/landmark/crap_item, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/command/control/office) "aDd" = ( /obj/structure/machinery/power/apc{ @@ -10285,28 +8202,20 @@ pixel_x = 24; start_charge = 0 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/east, /area/ice_colony/surface/command/control/office) "aDe" = ( /obj/structure/machinery/light{ dir = 8 }, /obj/structure/filingcabinet, -/turf/open/floor{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/west, /area/ice_colony/surface/command/checkpoint) "aDf" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/command/checkpoint) "aDg" = ( /obj/structure/bed/chair/office/light{ @@ -10315,10 +8224,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/east, /area/ice_colony/surface/command/checkpoint) "aDh" = ( /obj/item/clipboard, @@ -10332,33 +8238,24 @@ /obj/item/stack/sheet/metal, /obj/item/shard, /obj/item/shard, -/turf/open/floor{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/west, /area/ice_colony/surface/command/checkpoint) "aDi" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/command/checkpoint) "aDj" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/manifold/fourway/hidden/green, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/command/checkpoint) "aDk" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/command/checkpoint) "aDl" = ( /obj/structure/bed/chair{ @@ -10367,44 +8264,30 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/east, /area/ice_colony/surface/command/checkpoint) "aDm" = ( /obj/structure/closet/secure_closet/engineering_welding, -/turf/open/floor{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/west, /area/ice_colony/surface/garage/repair) "aDn" = ( /obj/effect/spawner/random/toolbox, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/garage/repair) "aDo" = ( /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/garage/repair) "aDp" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/garage/repair) "aDq" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ dir = 1; name = "\improper Colony Garage" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/garage/repair) "aDr" = ( /obj/effect/decal/warning_stripes{ @@ -10414,20 +8297,14 @@ dir = 4; icon_state = "pipe-c" }, -/turf/open/floor{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/north, /area/ice_colony/surface/garage/one) "aDs" = ( /obj/structure/disposalpipe/segment{ dir = 8; icon_state = "pipe-c" }, -/turf/open/floor{ - dir = 4; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/east, /area/ice_colony/surface/garage/one) "aDt" = ( /obj/structure/ice/thin/corner, @@ -10447,10 +8324,7 @@ dir = 2; icon_state = "pipe-u" }, -/turf/open/floor{ - dir = 9; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/northwest, /area/ice_colony/surface/hydroponics/south) "aDx" = ( /obj/structure/closet/crate/hydroponics, @@ -10459,44 +8333,30 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor{ - dir = 5; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/northeast, /area/ice_colony/surface/hydroponics/south) "aDy" = ( /obj/structure/surface/table, /obj/effect/landmark/good_item, -/turf/open/floor{ - dir = 10; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/southwest, /area/ice_colony/surface/command/control/office) "aDz" = ( -/turf/open/floor{ - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2, /area/ice_colony/surface/command/control/office) "aDA" = ( /obj/item/shard, -/turf/open/floor{ - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2, /area/ice_colony/surface/command/control/office) "aDB" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2, /area/ice_colony/surface/command/control/office) "aDC" = ( /obj/structure/disposalpipe/segment{ dir = 4; icon_state = "pipe-c" }, -/turf/open/floor{ - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2, /area/ice_colony/surface/command/control/office) "aDD" = ( /obj/structure/machinery/firealarm{ @@ -10507,28 +8367,17 @@ /obj/structure/disposalpipe/trunk{ dir = 8 }, -/turf/open/floor{ - dir = 6; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/southeast, /area/ice_colony/surface/command/control/office) "aDE" = ( /obj/structure/filingcabinet, -/turf/open/floor{ - dir = 10; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/southwest, /area/ice_colony/surface/command/checkpoint) "aDF" = ( -/turf/open/floor{ - icon_state = "darkred2" - }, +/turf/open/floor/darkred2, /area/ice_colony/surface/command/checkpoint) "aDG" = ( -/turf/open/floor{ - dir = 6; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/southeast, /area/ice_colony/surface/command/checkpoint) "aDH" = ( /obj/structure/surface/table/reinforced, @@ -10541,31 +8390,20 @@ /obj/item/paper_bin, /obj/item/tool/stamp, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/west, /area/ice_colony/surface/command/checkpoint) "aDI" = ( -/turf/open/floor{ - dir = 10; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/southwest, /area/ice_colony/surface/command/checkpoint) "aDJ" = ( /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor{ - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2, /area/ice_colony/surface/command/checkpoint) "aDK" = ( /obj/structure/flora/pottedplant, -/turf/open/floor{ - dir = 6; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/southeast, /area/ice_colony/surface/command/checkpoint) "aDL" = ( /obj/item/shard, @@ -10574,17 +8412,11 @@ /turf/open/floor/plating, /area/ice_colony/surface/garage/repair) "aDM" = ( -/turf/open/floor{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/west, /area/ice_colony/surface/garage/repair) "aDN" = ( /obj/structure/machinery/cm_vending/sorted/tech/electronics_storage, -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/ice_colony/surface/garage/repair) "aDO" = ( /obj/effect/decal/cleanable/blood/oil, @@ -10595,9 +8427,7 @@ dir = 4; icon_state = "pipe-c" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/garage/one) "aDP" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -10606,9 +8436,7 @@ /obj/structure/disposalpipe/segment{ dir = 8 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/garage/one) "aDQ" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -10618,9 +8446,7 @@ dir = 8 }, /obj/effect/decal/cleanable/blood, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/garage/one) "aDR" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -10633,9 +8459,7 @@ dir = 4; icon_state = "gib6" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/garage/one) "aDS" = ( /obj/structure/disposalpipe/segment{ @@ -10648,9 +8472,7 @@ dir = 4; icon_state = "gib6" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/garage/one) "aDT" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -10661,9 +8483,7 @@ icon_state = "pipe-j2" }, /obj/effect/decal/cleanable/blood, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/garage/one) "aDU" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -10673,9 +8493,7 @@ dir = 8; icon_state = "pipe-c" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/garage/one) "aDV" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -10685,9 +8503,7 @@ dir = 4; icon_state = "pipe-c" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/garage/one) "aDW" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -10699,9 +8515,7 @@ /obj/structure/machinery/door/airlock/almayer/secure/colony{ name = "Colony Garage" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/garage/one) "aDX" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -10710,9 +8524,7 @@ /obj/structure/disposalpipe/segment{ dir = 8 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/garage/two) "aDY" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -10721,34 +8533,26 @@ /obj/structure/disposalpipe/segment{ dir = 8 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/garage/two) "aEa" = ( /obj/structure/disposalpipe/segment{ dir = 8 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/garage/two) "aEb" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/garage/two) "aEc" = ( /obj/structure/disposalpipe/segment{ dir = 8; icon_state = "pipe-c" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/garage/two) "aEd" = ( /turf/closed/ice/straight, @@ -10756,17 +8560,11 @@ "aEe" = ( /obj/structure/disposalpipe/segment, /obj/item/tool/shovel/snow, -/turf/open/floor{ - dir = 8; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/west, /area/ice_colony/surface/hydroponics/south) "aEg" = ( /obj/structure/machinery/vending/hydronutrients, -/turf/open/floor{ - dir = 5; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/northeast, /area/ice_colony/surface/hydroponics/south) "aEh" = ( /obj/structure/window/framed/colony/reinforced, @@ -10799,18 +8597,14 @@ /obj/structure/machinery/door/airlock/multi_tile/almayer/comdoor/colony{ name = "\improper Colony Offices" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/command/control/office) "aEl" = ( /obj/structure/machinery/door/poddoor/almayer{ id = "colony_admin_top"; name = "\improper Colony Administration Blast Door" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/command/control/office) "aEm" = ( /obj/structure/window/framed/colony/reinforced, @@ -10842,49 +8636,32 @@ flipped = 1; icon_state = "tableflip0" }, -/turf/open/floor{ - dir = 10; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/southwest, /area/ice_colony/surface/garage/repair) "aEr" = ( /obj/effect/spawner/random/powercell, -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/ice_colony/surface/garage/repair) "aEs" = ( /obj/structure/machinery/space_heater, -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/ice_colony/surface/garage/repair) "aEt" = ( /obj/structure/machinery/light, -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/ice_colony/surface/garage/repair) "aEu" = ( /obj/structure/machinery/cm_vending/sorted/tech/tool_storage, -/turf/open/floor{ - dir = 6; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/southeast, /area/ice_colony/surface/garage/repair) "aEv" = ( /obj/structure/machinery/space_heater, -/turf/open/floor{ - dir = 8; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/west, /area/ice_colony/surface/garage/one) "aEw" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/disposalpipe/segment, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/garage/one) "aEx" = ( /obj/structure/disposalpipe/segment{ @@ -10894,24 +8671,17 @@ /obj/effect/decal/cleanable/blood{ icon_state = "gib6" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/garage/one) "aEy" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/garage/one) "aEz" = ( /obj/structure/machinery/space_heater, -/turf/open/floor{ - dir = 8; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/west, /area/ice_colony/surface/garage/two) "aEA" = ( /turf/closed/ice/end{ @@ -10933,60 +8703,37 @@ "aEE" = ( /obj/structure/disposalpipe/segment, /obj/structure/machinery/space_heater, -/turf/open/floor{ - dir = 8; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/west, /area/ice_colony/surface/hydroponics/south) "aEF" = ( /obj/structure/closet/wardrobe/green, -/turf/open/floor{ - dir = 4; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/east, /area/ice_colony/surface/hydroponics/south) "aEG" = ( /turf/closed/wall/r_wall, /area/ice_colony/surface/command/control) "aEH" = ( /obj/structure/flora/pottedplant, -/turf/open/floor{ - dir = 9; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/northwest, /area/ice_colony/surface/command/control) "aEI" = ( -/turf/open/floor{ - dir = 1; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/north, /area/ice_colony/surface/command/control) "aEJ" = ( -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/command/control) "aEK" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 1; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/north, /area/ice_colony/surface/command/control) "aEL" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor{ - dir = 1; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/north, /area/ice_colony/surface/command/control) "aEM" = ( /obj/item/stack/rods, /obj/structure/flora/pottedplant, -/turf/open/floor{ - dir = 5; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/northeast, /area/ice_colony/surface/command/control) "aEN" = ( /obj/item/shard, @@ -10998,19 +8745,13 @@ /area/ice_colony/surface/command/control) "aEO" = ( /obj/structure/reagent_dispensers/water_cooler, -/turf/open/floor{ - dir = 1; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/north, /area/ice_colony/surface/command/control) "aEP" = ( /obj/structure/noticeboard{ pixel_y = 32 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/north, /area/ice_colony/surface/command/control) "aEQ" = ( /obj/structure/machinery/light{ @@ -11020,20 +8761,14 @@ flipped = 1; icon_state = "tableflip0" }, -/turf/open/floor{ - dir = 1; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/north, /area/ice_colony/surface/command/control) "aER" = ( /obj/structure/surface/table{ flipped = 1; icon_state = "tableflip0" }, -/turf/open/floor{ - dir = 1; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/north, /area/ice_colony/surface/command/control) "aES" = ( /obj/structure/disposalpipe/segment{ @@ -11041,37 +8776,27 @@ icon_state = "pipe-c" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/command/control) "aET" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/command/control) "aEU" = ( /obj/structure/disposalpipe/junction{ dir = 8; icon_state = "pipe-j2" }, -/turf/open/floor{ - dir = 1; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/north, /area/ice_colony/surface/command/control) "aEV" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk{ dir = 8 }, -/turf/open/floor{ - dir = 5; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/northeast, /area/ice_colony/surface/command/control) "aEW" = ( /obj/item/shard, @@ -11084,30 +8809,21 @@ dir = 1; name = "\improper Colony Garage Repair Station" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/garage/repair) "aEY" = ( /obj/structure/surface/table, /obj/item/clothing/mask/rebreather, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 10; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/southwest, /area/ice_colony/surface/garage/one) "aEZ" = ( /obj/structure/machinery/light, -/turf/open/floor{ - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2, /area/ice_colony/surface/garage/one) "aFa" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor{ - icon_state = "darkbrowncorners2" - }, +/turf/open/floor/darkbrowncorners2, /area/ice_colony/surface/garage/one) "aFb" = ( /obj/structure/machinery/light, @@ -11115,9 +8831,7 @@ dir = 4; icon_state = "gib6" }, -/turf/open/floor{ - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2, /area/ice_colony/surface/garage/one) "aFc" = ( /obj/structure/ladder{ @@ -11125,36 +8839,23 @@ icon_state = "ladderdown"; id = "garage_ladder" }, -/turf/open/floor{ - dir = 6; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/southeast, /area/ice_colony/surface/garage/one) "aFd" = ( /obj/structure/surface/table, /obj/effect/spawner/random/toolbox, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 10; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/southwest, /area/ice_colony/surface/garage/two) "aFe" = ( /obj/structure/machinery/light, -/turf/open/floor{ - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2, /area/ice_colony/surface/garage/two) "aFf" = ( -/turf/open/floor{ - icon_state = "darkbrowncorners2" - }, +/turf/open/floor/darkbrowncorners2, /area/ice_colony/surface/garage/two) "aFg" = ( -/turf/open/floor{ - dir = 6; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/southeast, /area/ice_colony/surface/garage/two) "aFi" = ( /obj/structure/disposalpipe/segment{ @@ -11164,9 +8865,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/hydroponics/south) "aFj" = ( /obj/structure/disposalpipe/segment{ @@ -11178,9 +8877,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/hydroponics/south) "aFk" = ( /obj/structure/disposalpipe/segment{ @@ -11190,17 +8887,13 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/hydroponics/south) "aFl" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/hydroponics/south) "aFm" = ( /obj/structure/machinery/cm_vending/sorted/tech/tool_storage, @@ -11211,32 +8904,22 @@ dir = 8; pixel_x = 24 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/east, /area/ice_colony/surface/hydroponics/south) "aFn" = ( /obj/structure/machinery/alarm{ dir = 4; pixel_x = -24 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/west, /area/ice_colony/surface/command/control) "aFo" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/command/control) "aFp" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/command/control) "aFr" = ( /obj/structure/machinery/door/poddoor/almayer{ @@ -11244,33 +8927,22 @@ id = "colony_admin_top"; name = "\improper Colony Administration Blast Door" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/command/control) "aFs" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/command/control) "aFt" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/command/control) "aFv" = ( /obj/structure/machinery/vending/snack, -/turf/open/floor{ - dir = 4; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/east, /area/ice_colony/surface/command/control) "aFy" = ( -/turf/open/floor{ - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2, /area/ice_colony/surface/garage/one) "aFz" = ( /obj/structure/machinery/door_control{ @@ -11278,20 +8950,13 @@ name = "garage shutter control"; pixel_y = -30 }, -/turf/open/floor{ - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2, /area/ice_colony/surface/garage/one) "aFA" = ( -/turf/open/floor{ - dir = 6; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/southeast, /area/ice_colony/surface/garage/one) "aFB" = ( -/turf/open/floor{ - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2, /area/ice_colony/surface/garage/two) "aFC" = ( /obj/structure/machinery/door_control{ @@ -11299,31 +8964,20 @@ name = "garage shutter control"; pixel_y = -30 }, -/turf/open/floor{ - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2, /area/ice_colony/surface/garage/two) "aFE" = ( /turf/closed/wall/r_wall, /area/ice_colony/surface/storage_unit/power) "aFH" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 8; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/west, /area/ice_colony/surface/hydroponics/south) "aFI" = ( -/turf/open/floor{ - dir = 4; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/east, /area/ice_colony/surface/hydroponics/south) "aFJ" = ( -/turf/open/floor{ - dir = 8; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/west, /area/ice_colony/surface/hydroponics/south) "aFK" = ( /obj/effect/decal/cleanable/blood/gibs, @@ -11335,32 +8989,23 @@ dir = 8; pixel_x = -24 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/west, /area/ice_colony/surface/command/control) "aFM" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/command/control) "aFN" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/command/control) "aFO" = ( /obj/structure/pipes/standard/manifold/fourway/hidden/green, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/command/control) "aFQ" = ( /obj/structure/disposalpipe/segment{ @@ -11370,9 +9015,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/command/control) "aFR" = ( /obj/structure/disposalpipe/junction{ @@ -11381,9 +9024,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/command/control) "aFS" = ( /obj/structure/disposalpipe/segment{ @@ -11401,9 +9042,7 @@ dir = 1; name = "\improper Colony Control Center" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/command/control) "aFT" = ( /obj/structure/disposalpipe/segment{ @@ -11412,27 +9051,21 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/command/control) "aFU" = ( /obj/structure/disposalpipe/junction{ dir = 4 }, /obj/structure/pipes/standard/manifold/fourway/hidden/green, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/command/control) "aFV" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/command/control) "aFW" = ( /obj/structure/disposalpipe/junction{ @@ -11442,19 +9075,14 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/command/control) "aFX" = ( /obj/structure/machinery/light{ dir = 4 }, /obj/structure/machinery/vending/coffee, -/turf/open/floor{ - dir = 4; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/east, /area/ice_colony/surface/command/control) "aFY" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -11463,38 +9091,28 @@ dir = 2; name = "Colony Garage" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/garage/one) "aFZ" = ( /obj/structure/machinery/door/poddoor/shutters/almayer{ id = "garage_ice_1"; name = "\improper Garage Shutters" }, -/turf/open/floor{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/north, /area/ice_colony/surface/garage/one) "aGb" = ( /obj/structure/machinery/door/airlock/almayer/secure/colony{ dir = 2; name = "Colony Garage" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/garage/two) "aGc" = ( /obj/structure/machinery/door/poddoor/shutters/almayer{ id = "garage_ice_2"; name = "\improper Garage Shutters" }, -/turf/open/floor{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/north, /area/ice_colony/surface/garage/two) "aGd" = ( /obj/structure/closet/crate, @@ -11507,18 +9125,12 @@ /obj/item/stack/sheet/mineral/phoron{ amount = 15 }, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/ice_colony/surface/storage_unit/power) "aGe" = ( /obj/structure/largecrate/random, /obj/effect/landmark/good_item, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/ice_colony/surface/storage_unit/power) "aGf" = ( /turf/closed/ice/end{ @@ -11527,10 +9139,7 @@ /area/ice_colony/exterior/surface/valley/southeast) "aGg" = ( /obj/structure/machinery/vending/hydroseeds, -/turf/open/floor{ - dir = 6; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/southeast, /area/ice_colony/surface/hydroponics/south) "aGh" = ( /turf/closed/ice_rock/singleT{ @@ -11539,21 +9148,14 @@ /area/ice_colony/exterior/surface/cliff) "aGi" = ( /obj/structure/flora/pottedplant, -/turf/open/floor{ - dir = 10; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/southwest, /area/ice_colony/surface/command/control) "aGj" = ( -/turf/open/floor{ - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2, /area/ice_colony/surface/command/control) "aGk" = ( /obj/structure/machinery/light, -/turf/open/floor{ - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2, /area/ice_colony/surface/command/control) "aGl" = ( /obj/structure/disposalpipe/segment{ @@ -11564,18 +9166,14 @@ icon_state = "gib6" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/command/control) "aGm" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, /obj/structure/machinery/light, -/turf/open/floor{ - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2, /area/ice_colony/surface/command/control) "aGn" = ( /obj/structure/disposalpipe/segment{ @@ -11584,17 +9182,13 @@ /obj/effect/decal/cleanable/blood{ icon_state = "xgibdown1" }, -/turf/open/floor{ - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2, /area/ice_colony/surface/command/control) "aGo" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor{ - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2, /area/ice_colony/surface/command/control) "aGp" = ( /obj/structure/disposalpipe/segment{ @@ -11604,9 +9198,7 @@ pixel_y = -24; start_charge = 0 }, -/turf/open/floor{ - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2, /area/ice_colony/surface/command/control) "aGq" = ( /obj/structure/disposalpipe/segment{ @@ -11614,10 +9206,7 @@ icon_state = "pipe-c" }, /obj/structure/flora/pottedplant, -/turf/open/floor{ - dir = 6; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/southeast, /area/ice_colony/surface/command/control) "aGr" = ( /obj/structure/window/framed/colony/reinforced, @@ -11631,16 +9220,11 @@ "aGs" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/command/control) "aGu" = ( /obj/structure/machinery/vending/cigarette/colony, -/turf/open/floor{ - dir = 6; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/southeast, /area/ice_colony/surface/command/control) "aGC" = ( /obj/structure/ice/thin/end{ @@ -11667,33 +9251,21 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/ice_colony/surface/storage_unit/power) "aGH" = ( -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/ice_colony/surface/storage_unit/power) "aGI" = ( /obj/structure/closet/crate, /obj/item/tool/shovel/snow, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/ice_colony/surface/storage_unit/power) "aGJ" = ( /obj/structure/surface/table, /obj/item/storage/bag/plants, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 10; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/southwest, /area/ice_colony/surface/hydroponics/south) "aGK" = ( /obj/structure/ladder{ @@ -11702,10 +9274,7 @@ id = "hydroponics_ladder"; pixel_y = 16 }, -/turf/open/floor{ - dir = 6; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/southeast, /area/ice_colony/surface/hydroponics/south) "aGL" = ( /turf/closed/wall/r_wall, @@ -11792,10 +9361,7 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/ice_colony/surface/storage_unit/power) "aHd" = ( /obj/structure/machinery/door_control{ @@ -11806,10 +9372,7 @@ req_access_txt = "100"; specialfunctions = 4 }, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/ice_colony/surface/storage_unit/power) "aHf" = ( /turf/closed/ice/end{ @@ -11943,32 +9506,15 @@ /area/ice_colony/exterior/surface/clearing/pass) "aHy" = ( /obj/structure/machinery/floodlight, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/ice_colony/surface/storage_unit/power) "aHz" = ( /obj/structure/machinery/light{ dir = 4 }, /obj/structure/filingcabinet, -/turf/open/floor{ - dir = 4; - icon_state = "whitered" - }, +/turf/open/floor/whitered/east, /area/ice_colony/surface/clinic/lobby) -"aHB" = ( -/obj/structure/machinery/door/airlock/almayer/secure/colony{ - id = "st_17"; - locked = 0; - name = "Power Storage Unit" - }, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, -/area/ice_colony/surface/storage_unit/power) "aHD" = ( /obj/structure/closet/secure_closet/guncabinet, /obj/structure/machinery/firealarm{ @@ -12036,17 +9582,11 @@ /area/ice_colony/surface/command/control/pv2) "aHP" = ( /obj/item/storage/toolbox/emergency, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/ice_colony/surface/storage_unit/power) "aHQ" = ( /obj/effect/landmark/crap_item, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/ice_colony/surface/storage_unit/power) "aHS" = ( /obj/structure/ice/thin/straight, @@ -12068,9 +9608,7 @@ "aHV" = ( /obj/structure/surface/table/woodentable, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - icon_state = "darkgreencorners2" - }, +/turf/open/floor/darkgreencorners2, /area/ice_colony/surface/hydroponics/lobby) "aHW" = ( /obj/structure/surface/table/woodentable, @@ -12086,10 +9624,7 @@ "aHY" = ( /obj/structure/surface/table/woodentable, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 1; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/north, /area/ice_colony/surface/hydroponics/lobby) "aHZ" = ( /obj/structure/surface/table/woodentable, @@ -12130,10 +9665,7 @@ "aIg" = ( /obj/structure/surface/table/woodentable, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 4; - icon_state = "darkgreencorners2" - }, +/turf/open/floor/darkgreencorners2/east, /area/ice_colony/surface/hydroponics/lobby) "aIh" = ( /obj/structure/surface/table/woodentable, @@ -12156,17 +9688,11 @@ /area/ice_colony/exterior/surface/clearing/pass) "aIm" = ( /obj/structure/largecrate/random, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/ice_colony/surface/storage_unit/power) "aIn" = ( /obj/structure/machinery/space_heater, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/ice_colony/surface/storage_unit/power) "aIo" = ( /obj/structure/ice/thin/corner, @@ -12211,17 +9737,14 @@ /area/ice_colony/surface/command/crisis) "aIv" = ( /obj/structure/surface/table/woodentable, -/obj/item/handcuffs, +/obj/item/restraint/handcuffs, /obj/item/tool/stamp, /turf/open/floor/wood, /area/ice_colony/surface/command/crisis) "aIw" = ( /obj/structure/surface/table/woodentable, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 1; - icon_state = "darkgreencorners2" - }, +/turf/open/floor/darkgreencorners2/north, /area/ice_colony/surface/hydroponics/lobby) "aIx" = ( /obj/structure/machinery/vending/cigarette/colony, @@ -12338,16 +9861,11 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/hydroponics/south) "aIT" = ( /obj/structure/machinery/space_heater, -/turf/open/floor{ - dir = 6; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/southeast, /area/ice_colony/surface/hydroponics/south) "aIU" = ( /obj/structure/ice/ice_rock/cornerOverlay{ @@ -12365,6 +9883,12 @@ /obj/effect/landmark/corpsespawner/doctor, /turf/open/floor/wood, /area/ice_colony/surface/command/crisis) +"aIW" = ( +/obj/structure/bed/chair{ + dir = 4 + }, +/turf/open/shuttle/can_surgery/red, +/area/ice_colony/surface/hangar/beta) "aIX" = ( /obj/structure/pipes/vents/pump{ dir = 1 @@ -12402,18 +9926,6 @@ "aJd" = ( /turf/closed/wall/r_wall, /area/ice_colony/surface/storage_unit/telecomms) -"aJe" = ( -/obj/structure/machinery/door/airlock/almayer/secure/colony{ - dir = 2; - id = "st_18"; - locked = 0; - name = "Disposals Storage Unit" - }, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, -/area/ice_colony/surface/storage_unit/telecomms) "aJf" = ( /turf/closed/wall/r_wall, /area/ice_colony/exterior/surface/valley/southeast) @@ -12425,16 +9937,10 @@ /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/ice_colony/surface/storage_unit/telecomms) "aJi" = ( -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/ice_colony/surface/storage_unit/telecomms) "aJj" = ( /obj/structure/machinery/door_control{ @@ -12445,10 +9951,7 @@ req_access_txt = "100"; specialfunctions = 4 }, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/ice_colony/surface/storage_unit/telecomms) "aJk" = ( /obj/effect/landmark/hunter_secondary, @@ -12464,17 +9967,11 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/ice_colony/surface/storage_unit/telecomms) "aJp" = ( /obj/structure/largecrate/random, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/ice_colony/surface/storage_unit/telecomms) "aJq" = ( /turf/closed/shuttle/elevator{ @@ -12528,18 +10025,12 @@ }, /area/shuttle/elevator1/ground) "aJE" = ( -/turf/open/floor/plating{ - dir = 5; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/northeast, /area/ice_colony/surface/storage_unit/telecomms) "aJF" = ( /obj/effect/spawner/random/toolbox, /obj/effect/landmark/crap_item, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/ice_colony/surface/storage_unit/telecomms) "aJG" = ( /obj/structure/tunnel{ @@ -12627,14 +10118,10 @@ /area/ice_colony/surface/hangar/checkpoint) "aKi" = ( /obj/structure/machinery/door/airlock/multi_tile/elevator/access/arrivals, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/hangar/checkpoint) "aKj" = ( -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/hangar/checkpoint) "aKk" = ( /obj/effect/landmark/hunter_primary, @@ -12646,10 +10133,7 @@ /area/ice_colony/exterior/surface/valley/southwest) "aKn" = ( /obj/structure/machinery/floodlight, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/ice_colony/surface/storage_unit/research) "aKo" = ( /obj/structure/surface/rack, @@ -12657,10 +10141,7 @@ /obj/item/ammo_rcd, /obj/item/ammo_rcd, /obj/item/ammo_rcd, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/ice_colony/surface/storage_unit/research) "aKp" = ( /obj/structure/machinery/light/small{ @@ -12671,25 +10152,16 @@ icon_state = "ladderdown"; id = "research_storage_ladder" }, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/ice_colony/surface/storage_unit/research) "aKq" = ( /obj/structure/surface/rack, /obj/item/tool/crowbar/red, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/ice_colony/surface/storage_unit/research) "aKr" = ( /obj/structure/largecrate/random, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/ice_colony/surface/storage_unit/research) "aKs" = ( /obj/structure/ice/thin/single, @@ -12745,10 +10217,7 @@ /area/ice_colony/exterior/surface/clearing/south) "aKK" = ( /obj/structure/machinery/computer/cameras, -/turf/open/floor{ - dir = 9; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/northwest, /area/ice_colony/surface/hangar/checkpoint) "aKL" = ( /obj/structure/closet/secure_closet/security, @@ -12757,50 +10226,32 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/north, /area/ice_colony/surface/hangar/checkpoint) "aKN" = ( /obj/structure/machinery/computer/shuttle_control/ice_colony/elevator1{ pixel_y = 30 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/hangar/checkpoint) "aKO" = ( /obj/structure/bed/chair, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/hangar/checkpoint) "aKP" = ( /obj/structure/flora/pottedplant, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/hangar/checkpoint) "aKQ" = ( /obj/structure/machinery/space_heater, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/ice_colony/surface/storage_unit/research) "aKR" = ( -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/ice_colony/surface/storage_unit/research) "aKS" = ( /obj/effect/landmark/crap_item, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/ice_colony/surface/storage_unit/research) "aKT" = ( /obj/structure/ice/thin/corner{ @@ -12905,45 +10356,33 @@ /area/ice_colony/exterior/surface/clearing/south) "aLl" = ( /obj/structure/machinery/recharge_station, -/turf/open/floor{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/west, /area/ice_colony/surface/hangar/checkpoint) "aLo" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ name = "\improper Colony Security Checkpoint" }, -/turf/open/floor{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/west, /area/ice_colony/surface/hangar/checkpoint) "aLq" = ( /obj/structure/disposalpipe/segment{ dir = 4; icon_state = "pipe-c" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/hangar/checkpoint) "aLr" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/hangar/checkpoint) "aLs" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk{ dir = 8 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/hangar/checkpoint) "aLt" = ( /turf/closed/ice/corner{ @@ -12952,10 +10391,7 @@ /area/ice_colony/exterior/surface/valley/southeast) "aLv" = ( /obj/structure/machinery/power/port_gen/pacman, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/ice_colony/surface/storage_unit/research) "aLw" = ( /obj/structure/ice/thin/corner{ @@ -12975,30 +10411,21 @@ /turf/open/floor/wood, /area/ice_colony/surface/bar/canteen) "aLD" = ( -/turf/open/floor{ - dir = 4; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/east, /area/ice_colony/surface/hangar/checkpoint) "aLE" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/hangar/checkpoint) "aLF" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/hangar/checkpoint) "aLG" = ( /obj/structure/machinery/vending/snack, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/hangar/checkpoint) "aLH" = ( /turf/closed/ice/straight{ @@ -13031,20 +10458,14 @@ dir = 8 }, /obj/item/tool/shovel/snow, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/ice_colony/surface/storage_unit/research) "aLP" = ( /obj/structure/machinery/power/port_gen/pacman, /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/ice_colony/surface/storage_unit/research) "aLQ" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -13171,18 +10592,13 @@ dir = 8 }, /obj/structure/filingcabinet/chestdrawer, -/turf/open/floor{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/west, /area/ice_colony/surface/hangar/checkpoint) "aMk" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/hangar/checkpoint) "aMl" = ( /obj/structure/bed/chair/office/light{ @@ -13191,10 +10607,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/east, /area/ice_colony/surface/hangar/checkpoint) "aMm" = ( /obj/structure/surface/table/reinforced, @@ -13209,61 +10622,45 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/west, /area/ice_colony/surface/hangar/checkpoint) "aMn" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/ice_colony/surface/hangar/checkpoint) "aMo" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/hangar/checkpoint) "aMp" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/hangar/checkpoint) "aMq" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/hangar/checkpoint) "aMr" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/hangar/checkpoint) "aMs" = ( /obj/structure/machinery/light{ dir = 4 }, /obj/structure/machinery/vending/coffee, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/hangar/checkpoint) "aMt" = ( /obj/structure/fence, @@ -13278,27 +10675,19 @@ "aMv" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/toolbox, -/turf/open/floor{ - dir = 9; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/northwest, /area/ice_colony/surface/research/field_gear) "aMw" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/toolbox, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/ice_colony/surface/research/field_gear) "aMx" = ( /obj/structure/surface/table, /obj/item/device/lightreplacer, /obj/item/clothing/mask/rebreather, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2, /area/ice_colony/surface/disposals) "aMy" = ( /turf/closed/shuttle/elevator{ @@ -13379,10 +10768,7 @@ /turf/open/floor/plating, /area/ice_colony/surface/bar/bar) "aMT" = ( -/turf/open/floor{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/west, /area/ice_colony/surface/hangar/checkpoint) "aMU" = ( /obj/structure/surface/table/reinforced, @@ -13394,28 +10780,18 @@ }, /obj/item/paper_bin, /obj/item/tool/stamp, -/turf/open/floor{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/west, /area/ice_colony/surface/hangar/checkpoint) "aMV" = ( -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/ice_colony/surface/hangar/checkpoint) "aMW" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/hangar/checkpoint) "aMX" = ( /obj/structure/machinery/vending/cigarette/colony, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/hangar/checkpoint) "aMY" = ( /obj/structure/ice/ice_rock/cornerOverlay{ @@ -13433,27 +10809,16 @@ dir = 4; pixel_x = -24 }, -/turf/open/floor{ - dir = 9; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/northwest, /area/ice_colony/surface/research/field_gear) "aNa" = ( -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/ice_colony/surface/research/field_gear) "aNb" = ( -/turf/open/floor{ - dir = 1; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/darkyellowcorners2/north, /area/ice_colony/surface/research/field_gear) "aNc" = ( -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/research/field_gear) "aNd" = ( /turf/closed/shuttle/elevator, @@ -13496,10 +10861,7 @@ pixel_y = -24; start_charge = 0 }, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/ice_colony/surface/storage_unit/research) "aNp" = ( /obj/structure/machinery/door_control{ @@ -13510,19 +10872,13 @@ req_access_txt = "103"; specialfunctions = 4 }, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/ice_colony/surface/storage_unit/research) "aNq" = ( /obj/item/stack/sheet/mineral/phoron{ amount = 15 }, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/ice_colony/surface/storage_unit/research) "aNr" = ( /obj/structure/ice/thin/corner{ @@ -13536,18 +10892,14 @@ /obj/structure/window/reinforced{ dir = 1 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/ice_colony/surface/bar/canteen) "aNt" = ( /obj/structure/surface/table/reinforced, /obj/effect/landmark/crap_item, /obj/structure/pipes/standard/simple/hidden/green, /obj/item/tool/kitchen/utensil/knife, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/ice_colony/surface/bar/canteen) "aNu" = ( /obj/structure/surface/table/reinforced, @@ -13555,17 +10907,13 @@ dir = 1 }, /obj/item/reagent_container/food/snacks/cheeseburger, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/ice_colony/surface/bar/canteen) "aNv" = ( /obj/structure/surface/table/reinforced, /obj/item/reagent_container/food/snacks/fortunecookie/prefilled, /obj/item/tool/kitchen/utensil/fork, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/ice_colony/surface/bar/canteen) "aNw" = ( /obj/structure/surface/table/reinforced, @@ -13576,16 +10924,12 @@ pixel_x = -1; pixel_y = 2 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/ice_colony/surface/bar/canteen) "aNx" = ( /obj/effect/landmark/crap_item, /obj/item/stack/sheet/metal, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/ice_colony/surface/bar/canteen) "aNy" = ( /obj/structure/surface/table/reinforced, @@ -13593,17 +10937,13 @@ dir = 1 }, /obj/item/reagent_container/food/snacks/hotchili, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/ice_colony/surface/bar/canteen) "aNz" = ( /obj/structure/machinery/door/window/northright{ name = "Canteen" }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/ice_colony/surface/bar/canteen) "aNA" = ( /obj/structure/surface/table/woodentable, @@ -13629,57 +10969,37 @@ /area/ice_colony/surface/bar/bar) "aNK" = ( /obj/structure/filingcabinet, -/turf/open/floor{ - dir = 10; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/southwest, /area/ice_colony/surface/hangar/checkpoint) "aNL" = ( /obj/structure/surface/table, /obj/item/device/flashlight, -/turf/open/floor{ - dir = 8; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/west, /area/ice_colony/surface/garage/two) "aNM" = ( /obj/structure/surface/table/reinforced, -/turf/open/floor{ - dir = 1; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/north, /area/ice_colony/surface/command/control/office) "aNN" = ( /obj/structure/machinery/space_heater, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/hangar/checkpoint) "aNO" = ( /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/hangar/checkpoint) "aNP" = ( /obj/structure/closet/radiation, -/turf/open/floor{ - dir = 9; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/northwest, /area/ice_colony/surface/research/field_gear) "aNQ" = ( -/turf/open/floor{ - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/darkyellowcorners2, /area/ice_colony/surface/research/field_gear) "aNR" = ( /obj/structure/machinery/space_heater, -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/ice_colony/surface/research/field_gear) "aNT" = ( /obj/structure/surface/rack, @@ -13693,36 +11013,18 @@ /obj/structure/pipes/standard/simple/hidden/green, /turf/open/floor/plating, /area/ice_colony/surface/research) -"aNV" = ( -/obj/structure/machinery/door/airlock/almayer/secure/colony{ - dir = 2; - id = "st_19"; - locked = 0; - name = "Research Storage Unit" - }, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, -/area/ice_colony/surface/storage_unit/research) "aNW" = ( /obj/structure/extinguisher_cabinet{ pixel_x = -32 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/ice_colony/surface/bar/canteen) "aNX" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/ice_colony/surface/bar/canteen) "aNZ" = ( -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/ice_colony/surface/bar/canteen) "aOa" = ( /obj/structure/machinery/smartfridge, @@ -13758,17 +11060,11 @@ /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper Security Checkpoint" }, -/turf/open/floor{ - dir = 9; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/northwest, /area/ice_colony/surface/hangar/checkpoint) "aOi" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 5; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/northeast, /area/ice_colony/surface/hangar/checkpoint) "aOj" = ( /turf/closed/wall/r_wall, @@ -13778,17 +11074,11 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/west, /area/ice_colony/surface/research/field_gear) "aOl" = ( /obj/structure/closet/radiation, -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/ice_colony/surface/research/field_gear) "aOm" = ( /turf/closed/wall, @@ -13814,40 +11104,29 @@ /area/ice_colony/exterior/surface/cliff) "aOv" = ( /obj/structure/surface/table, -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/ice_colony/surface/garage/repair) "aOw" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/ice_colony/surface/bar/canteen) "aOy" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/ice_colony/surface/bar/canteen) "aOz" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/ice_colony/surface/bar/canteen) "aOA" = ( /obj/structure/surface/table/reinforced, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/ice_colony/surface/bar/canteen) "aOB" = ( /obj/effect/decal/cleanable/blood{ @@ -13882,27 +11161,19 @@ /turf/open/floor/plating, /area/ice_colony/surface/hangar/alpha) "aOH" = ( -/turf/open/floor{ - dir = 9; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/northwest, /area/ice_colony/surface/hangar/alpha) "aOI" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkbrowncorners2" - }, +/turf/open/floor/darkbrowncorners2/north, /area/ice_colony/surface/hangar/alpha) "aOJ" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "darkbrowncorners2" - }, +/turf/open/floor/darkbrowncorners2, /area/ice_colony/surface/hangar/alpha) "aOK" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -13911,9 +11182,7 @@ /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor{ - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2, /area/ice_colony/surface/hangar/alpha) "aOL" = ( /obj/effect/spawner/random/toolbox, @@ -13923,9 +11192,7 @@ /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor{ - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2, /area/ice_colony/surface/hangar/alpha) "aOM" = ( /obj/structure/machinery/light{ @@ -13937,9 +11204,7 @@ /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor{ - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2, /area/ice_colony/surface/hangar/alpha) "aON" = ( /obj/structure/reagent_dispensers/fueltank, @@ -13949,9 +11214,7 @@ /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor{ - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2, /area/ice_colony/surface/hangar/alpha) "aOO" = ( /obj/structure/machinery/disposal, @@ -13962,10 +11225,7 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkbrowncorners2" - }, +/turf/open/floor/darkbrowncorners2/west, /area/ice_colony/surface/hangar/alpha) "aOP" = ( /obj/structure/shuttle/diagonal{ @@ -13974,9 +11234,7 @@ /obj/structure/shuttle/diagonal{ icon_state = "swall_f5" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/hangar/beta) "aOQ" = ( /obj/structure/machinery/power/apc{ @@ -13988,22 +11246,15 @@ dir = 4; pixel_x = 24 }, -/turf/open/floor{ - dir = 5; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/northeast, /area/ice_colony/surface/hangar/alpha) "aOR" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/hangar/hallway) "aOS" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/hangar/hallway) "aOT" = ( /obj/structure/machinery/power/apc{ @@ -14015,10 +11266,7 @@ dir = 8; pixel_x = -24 }, -/turf/open/floor{ - dir = 9; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/northwest, /area/ice_colony/surface/hangar/beta) "aOV" = ( /obj/structure/machinery/disposal, @@ -14026,9 +11274,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor{ - icon_state = "darkbrowncorners2" - }, +/turf/open/floor/darkbrowncorners2, /area/ice_colony/surface/hangar/beta) "aOW" = ( /obj/structure/reagent_dispensers/fueltank, @@ -14038,9 +11284,7 @@ /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor{ - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2, /area/ice_colony/surface/hangar/beta) "aOX" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -14055,9 +11299,7 @@ /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor{ - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2, /area/ice_colony/surface/hangar/beta) "aOY" = ( /obj/effect/decal/warning_stripes{ @@ -14072,9 +11314,7 @@ id = "hangar_ladder1"; pixel_y = 16 }, -/turf/open/floor{ - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2, /area/ice_colony/surface/hangar/beta) "aOZ" = ( /obj/effect/decal/warning_stripes{ @@ -14083,9 +11323,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2, /area/ice_colony/surface/hangar/beta) "aPa" = ( /obj/structure/machinery/space_heater, @@ -14095,45 +11333,27 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkbrowncorners2" - }, +/turf/open/floor/darkbrowncorners2/west, /area/ice_colony/surface/hangar/beta) "aPb" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkbrowncorners2" - }, +/turf/open/floor/darkbrowncorners2/east, /area/ice_colony/surface/hangar/beta) "aPc" = ( /obj/structure/largecrate/random, -/turf/open/floor{ - dir = 5; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/northeast, /area/ice_colony/surface/hangar/beta) "aPd" = ( /obj/structure/closet/radiation, -/turf/open/floor{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/west, /area/ice_colony/surface/research/field_gear) "aPe" = ( -/turf/open/floor{ - dir = 9; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/northwest, /area/ice_colony/surface/research) "aPf" = ( -/turf/open/floor{ - dir = 5; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/northeast, /area/ice_colony/surface/research) "aPg" = ( /turf/closed/shuttle/elevator{ @@ -14160,15 +11380,10 @@ }, /area/shuttle/elevator3/ground) "aPl" = ( -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/research) "aPm" = ( -/turf/open/floor{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/north, /area/ice_colony/surface/research) "aPn" = ( /obj/structure/machinery/door_control{ @@ -14179,10 +11394,7 @@ req_access_txt = "103"; specialfunctions = 4 }, -/turf/open/floor{ - dir = 5; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/northeast, /area/ice_colony/surface/research) "aPr" = ( /obj/structure/machinery/firealarm{ @@ -14191,9 +11403,7 @@ }, /obj/structure/machinery/vending/dinnerware, /obj/structure/machinery/light, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/ice_colony/surface/bar/canteen) "aPs" = ( /obj/structure/machinery/processor, @@ -14201,9 +11411,7 @@ pixel_y = -24; start_charge = 0 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/ice_colony/surface/bar/canteen) "aPt" = ( /obj/structure/sink{ @@ -14216,24 +11424,18 @@ pixel_x = 6; pixel_y = -2 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/ice_colony/surface/bar/canteen) "aPu" = ( /obj/structure/surface/table, /obj/structure/machinery/microwave, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/ice_colony/surface/bar/canteen) "aPv" = ( /obj/structure/surface/table, /obj/item/reagent_container/food/snacks/flour, /obj/item/tool/kitchen/rollingpin, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/ice_colony/surface/bar/canteen) "aPw" = ( /obj/structure/surface/table, @@ -14251,9 +11453,7 @@ pixel_y = 3 }, /obj/structure/machinery/light, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/ice_colony/surface/bar/canteen) "aPx" = ( /obj/structure/machinery/cm_vending/sorted/boozeomat, @@ -14294,47 +11494,33 @@ /turf/open/floor/plating, /area/ice_colony/surface/hangar/alpha) "aPD" = ( -/turf/open/floor{ - dir = 8; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/west, /area/ice_colony/surface/hangar/alpha) "aPE" = ( /obj/item/shard, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/hangar/alpha) "aPF" = ( /obj/effect/decal/warning_stripes{ icon_state = "E" }, -/turf/open/floor{ - dir = 4; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/east, /area/ice_colony/surface/hangar/alpha) "aPG" = ( /obj/effect/decal/warning_stripes{ icon_state = "NW-out" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/hangar/alpha) "aPH" = ( -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/hangar/alpha) "aPI" = ( /obj/structure/shuttle/diagonal{ icon_state = "swall_f6" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/hangar/alpha) "aPJ" = ( /obj/structure/window/shuttle, @@ -14344,62 +11530,43 @@ /obj/structure/shuttle/diagonal{ icon_state = "swall_f10" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/hangar/alpha) "aPL" = ( /obj/effect/decal/warning_stripes{ icon_state = "NE-out" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/hangar/alpha) "aPM" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor{ - dir = 8; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/west, /area/ice_colony/surface/hangar/alpha) "aPP" = ( -/turf/open/floor{ - dir = 8; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/west, /area/ice_colony/surface/hangar/beta) "aPR" = ( /obj/effect/decal/warning_stripes{ icon_state = "E" }, -/turf/open/floor{ - dir = 4; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/east, /area/ice_colony/surface/hangar/beta) "aPS" = ( /obj/effect/decal/warning_stripes{ icon_state = "NW-out" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/hangar/beta) "aPT" = ( -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/hangar/beta) "aPU" = ( /obj/structure/shuttle/diagonal{ icon_state = "swall_f6" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/hangar/beta) "aPV" = ( /obj/structure/window/shuttle, @@ -14409,40 +11576,28 @@ /obj/structure/shuttle/diagonal{ icon_state = "swall_f10" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/hangar/beta) "aPX" = ( /obj/effect/decal/warning_stripes{ icon_state = "NE-out" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/hangar/beta) "aPY" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor{ - dir = 8; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/west, /area/ice_colony/surface/hangar/beta) "aPZ" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/hangar/beta) "aQa" = ( /obj/structure/surface/table, /obj/effect/spawner/random/toolbox, -/turf/open/floor{ - dir = 4; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/east, /area/ice_colony/surface/hangar/beta) "aQb" = ( /obj/structure/machinery/power/apc{ @@ -14454,18 +11609,13 @@ dir = 4; icon_state = "pipe-c" }, -/turf/open/floor{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/west, /area/ice_colony/surface/research/field_gear) "aQc" = ( /obj/structure/disposalpipe/segment{ dir = 8 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/research/field_gear) "aQd" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony{ @@ -14475,49 +11625,30 @@ /obj/structure/disposalpipe/segment{ dir = 8 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/research/field_gear) "aQe" = ( /obj/structure/disposalpipe/segment{ dir = 2; icon_state = "pipe-c" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/research) "aQf" = ( -/turf/open/floor{ - dir = 4; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/east, /area/ice_colony/surface/research) "aQg" = ( /obj/structure/machinery/door/airlock/multi_tile/elevator/access/research, -/turf/open/floor{ - dir = 4; - icon_state = "darkpurplecorners2" - }, +/turf/open/floor/darkpurplecorners2/east, /area/ice_colony/surface/research) "aQh" = ( -/turf/open/floor{ - dir = 4; - icon_state = "darkpurplecorners2" - }, +/turf/open/floor/darkpurplecorners2/east, /area/ice_colony/surface/research) "aQi" = ( -/turf/open/floor{ - dir = 1; - icon_state = "darkpurplecorners2" - }, +/turf/open/floor/darkpurplecorners2/north, /area/ice_colony/surface/research) "aQj" = ( -/turf/open/floor{ - dir = 8; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/west, /area/ice_colony/surface/research) "aQk" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -14527,9 +11658,7 @@ dir = 4; icon_state = "pipe-c" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/research) "aQl" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -14538,25 +11667,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, -/area/ice_colony/surface/research) -"aQm" = ( -/obj/structure/machinery/door/airlock/almayer/secure/colony{ - id = "research_entrance"; - locked = 0; - name = "Omicron Research Dome" - }, -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/research) "aQt" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -14564,9 +11675,7 @@ dir = 1; name = "\improper Anti-Freeze Canteen Freezer" }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/ice_colony/surface/bar/canteen) "aQu" = ( /obj/effect/decal/cleanable/blood{ @@ -14577,9 +11686,7 @@ dir = 1; name = "\improper Anti-Freeze Bar Freezer" }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/ice_colony/surface/bar/bar) "aQw" = ( /obj/structure/bed/stool, @@ -14593,41 +11700,14 @@ /area/ice_colony/surface/bar/bar) "aQz" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/hangar/alpha) "aQA" = ( /obj/effect/spawner/random/tool, /obj/effect/decal/warning_stripes{ icon_state = "E" }, -/turf/open/floor{ - dir = 4; - icon_state = "darkbrown2" - }, -/area/ice_colony/surface/hangar/alpha) -"aQB" = ( -/obj/structure/shuttle/diagonal{ - icon_state = "swall_f9" - }, -/turf/open/shuttle{ - icon_state = "floor6" - }, -/area/ice_colony/surface/hangar/alpha) -"aQC" = ( -/obj/structure/computerframe, -/turf/open/shuttle{ - icon_state = "floor6" - }, -/area/ice_colony/surface/hangar/alpha) -"aQD" = ( -/obj/structure/shuttle/diagonal{ - icon_state = "swall_f5" - }, -/turf/open/shuttle{ - icon_state = "floor6" - }, +/turf/open/floor/darkbrown2/east, /area/ice_colony/surface/hangar/alpha) "aQE" = ( /obj/structure/disposalpipe/segment{ @@ -14640,10 +11720,7 @@ /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor{ - dir = 8; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/west, /area/ice_colony/surface/hangar/alpha) "aQG" = ( /obj/structure/disposalpipe/segment{ @@ -14652,9 +11729,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/hangar/alpha) "aQH" = ( /obj/structure/disposalpipe/segment{ @@ -14666,62 +11741,29 @@ /obj/structure/machinery/door/airlock/almayer/engineering/colony{ name = "\improper Aerodrome Hangar Alpha" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/hangar/alpha) "aQI" = ( /obj/structure/disposalpipe/junction, /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/hangar/hallway) "aQJ" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/hangar/hallway) -"aQK" = ( -/obj/structure/shuttle/diagonal{ - icon_state = "swall_f9" - }, -/turf/open/shuttle{ - icon_state = "floor6" - }, -/area/ice_colony/surface/hangar/beta) -"aQL" = ( -/obj/structure/computerframe, -/turf/open/shuttle{ - icon_state = "floor6" - }, -/area/ice_colony/surface/hangar/beta) -"aQM" = ( -/obj/structure/shuttle/diagonal{ - icon_state = "swall_f5" - }, -/turf/open/shuttle{ - icon_state = "floor6" - }, -/area/ice_colony/surface/hangar/beta) "aQN" = ( /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/hangar/beta) "aQO" = ( /obj/structure/surface/table, /obj/item/device/flashlight, -/turf/open/floor{ - dir = 4; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/east, /area/ice_colony/surface/hangar/beta) "aQP" = ( /obj/structure/ice/thin, @@ -14732,31 +11774,20 @@ /obj/structure/disposalpipe/trunk{ dir = 1 }, -/turf/open/floor{ - dir = 10; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/southwest, /area/ice_colony/surface/research/field_gear) "aQR" = ( -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/ice_colony/surface/research/field_gear) "aQT" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor{ - dir = 8; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/west, /area/ice_colony/surface/research) "aQV" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor{ - dir = 5; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/northeast, /area/ice_colony/surface/research) "aQW" = ( /obj/structure/machinery/light{ @@ -14768,10 +11799,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/east, /area/ice_colony/surface/research) "aQX" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -14780,37 +11808,25 @@ /obj/effect/decal/warning_stripes{ icon_state = "E" }, -/turf/open/floor{ - dir = 1; - icon_state = "darkpurplecorners2" - }, +/turf/open/floor/darkpurplecorners2/north, /area/ice_colony/surface/research) "aQY" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkpurplecorners2" - }, +/turf/open/floor/darkpurplecorners2/east, /area/ice_colony/surface/research) "aQZ" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkpurplecorners2" - }, +/turf/open/floor/darkpurplecorners2/north, /area/ice_colony/surface/research) "aRa" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkpurplecorners2" - }, +/turf/open/floor/darkpurplecorners2/north, /area/ice_colony/surface/research) "aRb" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -14823,10 +11839,7 @@ /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor{ - dir = 4; - icon_state = "darkpurplecorners2" - }, +/turf/open/floor/darkpurplecorners2/east, /area/ice_colony/surface/research) "aRc" = ( /obj/structure/machinery/light{ @@ -14838,102 +11851,71 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/west, /area/ice_colony/surface/research) "aRd" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - dir = 9; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/northwest, /area/ice_colony/surface/research) "aRe" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkbrowncorners2" - }, +/turf/open/floor/darkbrowncorners2/north, /area/ice_colony/surface/research) "aRf" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, /obj/structure/disposalpipe/segment, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/research) "aRm" = ( /obj/structure/closet/secure_closet/freezer/fridge, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/ice_colony/surface/bar/canteen) "aRn" = ( /obj/structure/surface/table/reinforced, /obj/item/reagent_container/food/snacks/bigbiteburger, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/ice_colony/surface/bar/canteen) "aRo" = ( /obj/item/tool/kitchen/knife/butcher, /obj/structure/surface/table/reinforced, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/ice_colony/surface/bar/canteen) "aRp" = ( /obj/structure/largecrate/random, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/ice_colony/surface/bar/canteen) "aRq" = ( /obj/structure/kitchenspike, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/ice_colony/surface/bar/canteen) "aRr" = ( /obj/structure/machinery/gibber, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/ice_colony/surface/bar/canteen) "aRs" = ( /obj/structure/reagent_dispensers/beerkeg, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/ice_colony/surface/bar/bar) "aRt" = ( /obj/item/storage/toolbox/emergency, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/ice_colony/surface/bar/bar) "aRu" = ( /obj/effect/decal/cleanable/blood{ icon_state = "gib6" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/ice_colony/surface/bar/bar) "aRv" = ( /obj/structure/largecrate/random, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/ice_colony/surface/bar/bar) "aRw" = ( /obj/structure/machinery/space_heater, @@ -14949,98 +11931,45 @@ icon_state = "swall3" }, /area/ice_colony/surface/hangar/alpha) -"aRz" = ( -/obj/structure/machinery/light, -/turf/open/shuttle{ - icon_state = "floor6" - }, -/area/ice_colony/surface/hangar/alpha) -"aRA" = ( -/obj/structure/bed/chair{ - dir = 1 - }, -/turf/open/shuttle{ - icon_state = "floor6" - }, -/area/ice_colony/surface/hangar/alpha) "aRB" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/east, /area/ice_colony/surface/hangar/alpha) "aRD" = ( /obj/structure/machinery/space_heater, -/turf/open/floor{ - dir = 8; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/west, /area/ice_colony/surface/hangar/beta) "aRE" = ( /turf/closed/shuttle{ icon_state = "swall3" }, /area/ice_colony/surface/hangar/beta) -"aRF" = ( -/obj/structure/machinery/light, -/turf/open/shuttle{ - icon_state = "floor6" - }, -/area/ice_colony/surface/hangar/beta) -"aRG" = ( -/obj/structure/bed/chair{ - dir = 1 - }, -/obj/effect/landmark/survivor_spawner, -/turf/open/shuttle{ - icon_state = "floor6" - }, -/area/ice_colony/surface/hangar/beta) -"aRH" = ( -/obj/structure/machinery/light, -/obj/item/weapon/gun/pistol/holdout, -/turf/open/shuttle{ - icon_state = "floor6" - }, -/area/ice_colony/surface/hangar/beta) "aRI" = ( /obj/structure/surface/table, /obj/effect/spawner/random/powercell, -/turf/open/floor{ - dir = 4; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/east, /area/ice_colony/surface/hangar/beta) "aRJ" = ( /obj/structure/disposalpipe/segment{ dir = 1; icon_state = "pipe-c" }, -/turf/open/floor{ - dir = 8; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/west, /area/ice_colony/surface/research) "aRK" = ( /obj/structure/disposalpipe/junction{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/research) "aRL" = ( /obj/structure/disposalpipe/segment{ dir = 8 }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 4; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/east, /area/ice_colony/surface/research) "aRM" = ( /obj/effect/decal/warning_stripes{ @@ -15049,10 +11978,7 @@ /obj/structure/disposalpipe/segment{ dir = 8 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/east, /area/ice_colony/surface/research) "aRN" = ( /obj/structure/disposalpipe/segment{ @@ -15061,38 +11987,26 @@ /obj/effect/decal/warning_stripes{ icon_state = "NE-out" }, -/turf/open/floor{ - dir = 1; - icon_state = "darkpurplecorners2" - }, +/turf/open/floor/darkpurplecorners2/north, /area/ice_colony/surface/research) "aRO" = ( /obj/structure/disposalpipe/segment{ dir = 8 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkpurplecorners2" - }, +/turf/open/floor/darkpurplecorners2/east, /area/ice_colony/surface/research) "aRP" = ( /obj/structure/disposalpipe/segment{ dir = 8 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkpurplecorners2" - }, +/turf/open/floor/darkpurplecorners2/north, /area/ice_colony/surface/research) "aRQ" = ( /obj/structure/disposalpipe/segment{ dir = 8 }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 1; - icon_state = "darkpurplecorners2" - }, +/turf/open/floor/darkpurplecorners2/north, /area/ice_colony/surface/research) "aRR" = ( /obj/structure/disposalpipe/segment{ @@ -15101,10 +12015,7 @@ /obj/effect/decal/warning_stripes{ icon_state = "NW-out" }, -/turf/open/floor{ - dir = 4; - icon_state = "darkpurplecorners2" - }, +/turf/open/floor/darkpurplecorners2/east, /area/ice_colony/surface/research) "aRS" = ( /obj/structure/disposalpipe/segment{ @@ -15113,27 +12024,19 @@ /obj/effect/decal/warning_stripes{ icon_state = "E" }, -/turf/open/floor{ - dir = 8; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/west, /area/ice_colony/surface/research) "aRT" = ( /obj/structure/disposalpipe/segment{ dir = 8 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/west, /area/ice_colony/surface/research) "aRU" = ( /obj/structure/disposalpipe/segment{ dir = 8 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/research) "aRV" = ( /obj/structure/pipes/vents/pump{ @@ -15143,27 +12046,20 @@ dir = 8; icon_state = "pipe-c" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/research) "aRW" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/east, /area/ice_colony/surface/research) "aRY" = ( /obj/structure/machinery/light/small{ dir = 8 }, /obj/structure/closet/secure_closet/freezer/meat, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/ice_colony/surface/bar/canteen) "aRZ" = ( /obj/item/reagent_container/food/snacks/meat{ @@ -15181,53 +12077,38 @@ /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/ice_colony/surface/bar/canteen) "aSa" = ( /obj/structure/reagent_dispensers/beerkeg, /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/ice_colony/surface/bar/bar) "aSb" = ( /obj/effect/landmark/survivor_spawner, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/ice_colony/surface/bar/bar) "aSc" = ( -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/ice_colony/surface/bar/bar) "aSd" = ( /obj/structure/largecrate/random, /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/ice_colony/surface/bar/bar) "aSe" = ( /obj/structure/surface/table, /obj/item/device/flashlight, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 8; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/west, /area/ice_colony/surface/hangar/alpha) "aSf" = ( /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/hangar/alpha) "aSg" = ( /turf/closed/shuttle{ @@ -15239,12 +12120,6 @@ icon_state = "swall8" }, /area/ice_colony/surface/hangar/alpha) -"aSi" = ( -/obj/structure/machinery/door/unpowered/shuttle, -/turf/open/shuttle{ - icon_state = "floor6" - }, -/area/ice_colony/surface/hangar/alpha) "aSj" = ( /turf/closed/shuttle{ icon_state = "swall4" @@ -15256,22 +12131,15 @@ }, /area/ice_colony/surface/hangar/alpha) "aSm" = ( -/turf/open/floor{ - dir = 4; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/east, /area/ice_colony/surface/hangar/alpha) "aSn" = ( /obj/structure/window/framed/colony/reinforced, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/hangar/alpha) "aSo" = ( /obj/structure/window/framed/colony/reinforced, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/hangar/beta) "aSp" = ( /turf/closed/shuttle{ @@ -15283,12 +12151,6 @@ icon_state = "swall8" }, /area/ice_colony/surface/hangar/beta) -"aSr" = ( -/obj/structure/machinery/door/unpowered/shuttle, -/turf/open/shuttle{ - icon_state = "floor6" - }, -/area/ice_colony/surface/hangar/beta) "aSs" = ( /turf/closed/shuttle{ icon_state = "swall4" @@ -15302,10 +12164,7 @@ "aSu" = ( /obj/structure/surface/table, /obj/effect/spawner/random/tool, -/turf/open/floor{ - dir = 4; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/east, /area/ice_colony/surface/hangar/beta) "aSv" = ( /obj/structure/ice/thin/junction{ @@ -15321,19 +12180,13 @@ /obj/item/clothing/gloves/black, /obj/effect/landmark/crap_item, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 9; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/northwest, /area/ice_colony/surface/research/temporary) "aSy" = ( /obj/structure/surface/table, /obj/item/clothing/gloves/black, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/ice_colony/surface/research/temporary) "aSz" = ( /obj/structure/surface/table, @@ -15343,10 +12196,7 @@ dir = 1 }, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/ice_colony/surface/research/temporary) "aSA" = ( /obj/structure/machinery/light{ @@ -15354,10 +12204,7 @@ }, /obj/structure/surface/table, /obj/effect/landmark/crap_item, -/turf/open/floor{ - dir = 4; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/east, /area/ice_colony/surface/command/control/office) "aSB" = ( /turf/closed/wall, @@ -15368,27 +12215,20 @@ pixel_x = -24; start_charge = 0 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/research) "aSD" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, /obj/structure/disposalpipe/segment, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/research) "aSE" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/east, /area/ice_colony/surface/research) "aSF" = ( /obj/effect/decal/warning_stripes{ @@ -15397,35 +12237,23 @@ /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor{ - dir = 4; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/east, /area/ice_colony/surface/research) "aSG" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor{ - dir = 1; - icon_state = "darkpurplecorners2" - }, +/turf/open/floor/darkpurplecorners2/north, /area/ice_colony/surface/research) "aSH" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 1; - icon_state = "darkpurplecorners2" - }, +/turf/open/floor/darkpurplecorners2/north, /area/ice_colony/surface/research) "aSI" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor{ - dir = 4; - icon_state = "darkpurplecorners2" - }, +/turf/open/floor/darkpurplecorners2/east, /area/ice_colony/surface/research) "aSJ" = ( /obj/effect/decal/warning_stripes{ @@ -15434,27 +12262,19 @@ /obj/effect/decal/warning_stripes{ icon_state = "E" }, -/turf/open/floor{ - dir = 8; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/west, /area/ice_colony/surface/research) "aSK" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor{ - dir = 10; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/southwest, /area/ice_colony/surface/research) "aSL" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor{ - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2, /area/ice_colony/surface/research) "aSM" = ( /obj/effect/decal/warning_stripes{ @@ -15465,34 +12285,25 @@ name = "Research Garage Lock"; pixel_x = 24 }, -/turf/open/floor{ - dir = 6; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/southeast, /area/ice_colony/surface/research) "aSO" = ( /obj/structure/machinery/alarm{ dir = 4; pixel_x = -24 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/ice_colony/surface/bar/canteen) "aSP" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/ice_colony/surface/bar/canteen) "aSQ" = ( /obj/structure/plasticflaps, /obj/structure/reagent_dispensers/beerkeg, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/ice_colony/surface/bar/canteen) "aSR" = ( /obj/effect/decal/cleanable/blood/gibs/body, @@ -15500,209 +12311,102 @@ dir = 1 }, /obj/effect/landmark/corpsespawner/miner, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/ice_colony/surface/bar/bar) "aSS" = ( /obj/structure/janitorialcart, /obj/item/tool/mop, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/ice_colony/surface/bar/bar) "aST" = ( /obj/structure/surface/table, /obj/effect/spawner/random/powercell, /obj/effect/spawner/random/tool, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 8; - icon_state = "darkbrown2" - }, -/area/ice_colony/surface/hangar/alpha) -"aSU" = ( -/obj/structure/machinery/light{ - dir = 8 - }, -/obj/structure/bed/chair{ - dir = 4 - }, -/turf/open/shuttle{ - icon_state = "floor6" - }, -/area/ice_colony/surface/hangar/alpha) -"aSV" = ( -/turf/open/shuttle{ - icon_state = "floor6" - }, -/area/ice_colony/surface/hangar/alpha) -"aSW" = ( -/obj/structure/machinery/light{ - dir = 4 - }, -/obj/structure/bed/chair{ - dir = 8 - }, -/turf/open/shuttle{ - icon_state = "floor6" - }, +/turf/open/floor/darkbrown2/west, /area/ice_colony/surface/hangar/alpha) -"aSY" = ( -/obj/structure/machinery/light{ - dir = 8 - }, -/obj/structure/bed/chair{ - dir = 4 - }, -/turf/open/shuttle{ - icon_state = "floor6" - }, -/area/ice_colony/surface/hangar/beta) -"aSZ" = ( -/turf/open/shuttle{ - icon_state = "floor6" - }, -/area/ice_colony/surface/hangar/beta) -"aTa" = ( -/obj/structure/machinery/light{ - dir = 4 - }, -/obj/structure/bed/chair{ - dir = 8 - }, -/turf/open/shuttle{ - icon_state = "floor6" - }, -/area/ice_colony/surface/hangar/beta) "aTb" = ( -/turf/open/floor{ - dir = 4; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/east, /area/ice_colony/surface/hangar/beta) "aTc" = ( /obj/structure/machinery/alarm{ dir = 4; pixel_x = -24 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/west, /area/ice_colony/surface/research/temporary) "aTd" = ( -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/research/temporary) "aTe" = ( /obj/structure/machinery/firealarm{ dir = 4; pixel_x = 24 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/ice_colony/surface/research/temporary) "aTf" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/disposalpipe/segment, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/research) "aTg" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor{ - dir = 4; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/east, /area/ice_colony/surface/research) "aTh" = ( /obj/effect/decal/warning_stripes{ icon_state = "NE-out" }, -/turf/open/floor{ - dir = 1; - icon_state = "darkpurplecorners2" - }, +/turf/open/floor/darkpurplecorners2/north, /area/ice_colony/surface/research) "aTi" = ( /obj/effect/decal/warning_stripes{ icon_state = "N" }, -/turf/open/floor{ - dir = 4; - icon_state = "darkpurplecorners2" - }, +/turf/open/floor/darkpurplecorners2/east, /area/ice_colony/surface/research) "aTj" = ( /obj/effect/decal/warning_stripes{ icon_state = "NW-out" }, -/turf/open/floor{ - dir = 4; - icon_state = "darkpurplecorners2" - }, +/turf/open/floor/darkpurplecorners2/east, /area/ice_colony/surface/research) "aTk" = ( /obj/effect/decal/warning_stripes{ icon_state = "N" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 1; - icon_state = "darkpurplecorners2" - }, +/turf/open/floor/darkpurplecorners2/north, /area/ice_colony/surface/research) "aTl" = ( -/turf/open/floor{ - dir = 10; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/southwest, /area/ice_colony/surface/research) "aTm" = ( -/turf/open/floor{ - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2, /area/ice_colony/surface/research) "aTn" = ( /obj/effect/decal/warning_stripes{ icon_state = "N-corner" }, -/turf/open/floor{ - dir = 6; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/southeast, /area/ice_colony/surface/research) "aTo" = ( -/turf/open/floor/plating/icefloor{ - dir = 1; - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate/north, /area/ice_colony/exterior/surface/valley/southwest) "aTp" = ( -/turf/open/floor/plating/icefloor{ - dir = 5; - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate/northeast, /area/ice_colony/exterior/surface/valley/southwest) "aTr" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/reagentgrinder, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/ice_colony/surface/bar/canteen) "aTs" = ( /obj/structure/machinery/chem_master/condimaster, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/ice_colony/surface/bar/canteen) "aTt" = ( /obj/structure/ladder{ @@ -15711,27 +12415,19 @@ id = "canteen_ladder" }, /obj/structure/machinery/light/small, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/ice_colony/surface/bar/canteen) "aTu" = ( /obj/structure/closet/bodybag, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/ice_colony/surface/bar/canteen) "aTv" = ( /obj/structure/closet/crate/freezer/rations, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/ice_colony/surface/bar/canteen) "aTw" = ( /obj/structure/kitchenspike, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/ice_colony/surface/bar/bar) "aTx" = ( /obj/structure/surface/table, @@ -15740,61 +12436,21 @@ dir = 8 }, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 8; - icon_state = "darkbrown2" - }, -/area/ice_colony/surface/hangar/alpha) -"aTz" = ( -/obj/structure/bed/chair{ - dir = 4 - }, -/turf/open/shuttle{ - icon_state = "floor6" - }, +/turf/open/floor/darkbrown2/west, /area/ice_colony/surface/hangar/alpha) -"aTA" = ( -/obj/structure/bed/chair{ - dir = 8 - }, -/turf/open/shuttle{ - icon_state = "floor6" - }, -/area/ice_colony/surface/hangar/alpha) -"aTD" = ( -/obj/structure/bed/chair{ - dir = 4 - }, -/turf/open/shuttle{ - icon_state = "floor6" - }, -/area/ice_colony/surface/hangar/beta) -"aTE" = ( -/obj/structure/bed/chair{ - dir = 8 - }, -/turf/open/shuttle{ - icon_state = "floor6" - }, -/area/ice_colony/surface/hangar/beta) "aTH" = ( /obj/structure/machinery/power/apc{ dir = 8; pixel_x = -24; start_charge = 0 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/west, /area/ice_colony/surface/research/temporary) "aTI" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/research/temporary) "aTJ" = ( /obj/structure/disposalpipe/segment{ @@ -15804,9 +12460,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/research/temporary) "aTK" = ( /obj/structure/disposalpipe/segment{ @@ -15815,9 +12469,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/research/temporary) "aTL" = ( /obj/structure/disposalpipe/segment{ @@ -15829,10 +12481,7 @@ /obj/structure/machinery/door/airlock/almayer/engineering/colony{ name = "\improper Omicron Temporary Sample Storage" }, -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/ice_colony/surface/research/temporary) "aTM" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -15841,45 +12490,31 @@ /obj/structure/disposalpipe/segment{ dir = 8 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/research) "aTN" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, /obj/structure/disposalpipe/junction, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/research) "aTO" = ( /obj/vehicle/train/cargo/trolley, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/research) "aTQ" = ( /obj/vehicle/train/cargo/engine, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/research) "aTR" = ( -/turf/open/floor{ - dir = 4; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/east, /area/ice_colony/surface/research) "aTS" = ( /turf/open/floor/plating/icefloor, /area/ice_colony/exterior/surface/valley/southwest) "aTT" = ( -/turf/open/floor/plating/icefloor{ - dir = 4; - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate/east, /area/ice_colony/exterior/surface/valley/southwest) "aTY" = ( /turf/open/ice, @@ -15887,28 +12522,17 @@ "aTZ" = ( /obj/structure/surface/table, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/west, /area/ice_colony/surface/research/temporary) "aUa" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/research/temporary) "aUb" = ( -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/ice_colony/surface/research/temporary) "aUc" = ( -/turf/open/floor{ - dir = 10; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/southwest, /area/ice_colony/surface/research) "aUd" = ( /obj/structure/pipes/vents/pump{ @@ -15918,18 +12542,13 @@ dir = 1; icon_state = "pipe-c" }, -/turf/open/floor{ - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2, /area/ice_colony/surface/research) "aUe" = ( /obj/structure/disposalpipe/segment{ dir = 8 }, -/turf/open/floor{ - dir = 6; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/southeast, /area/ice_colony/surface/research) "aUf" = ( /obj/effect/decal/warning_stripes{ @@ -15939,16 +12558,11 @@ dir = 2; icon_state = "pipe-c" }, -/turf/open/floor{ - dir = 4; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/east, /area/ice_colony/surface/research) "aUg" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/research) "aUh" = ( /turf/closed/shuttle{ @@ -15963,18 +12577,13 @@ /obj/structure/surface/table/reinforced, /obj/item/paper_bin, /obj/item/tool/pen/blue, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/command/control/office) "aUm" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/west, /area/ice_colony/surface/hangar/beta) "aUn" = ( /turf/closed/shuttle{ @@ -16005,10 +12614,7 @@ dir = 1; icon_state = "pipe-c" }, -/turf/open/floor{ - dir = 4; - icon_state = "darkpurplecorners2" - }, +/turf/open/floor/darkpurplecorners2/east, /area/ice_colony/surface/research) "aUu" = ( /obj/effect/decal/warning_stripes{ @@ -16017,10 +12623,7 @@ /obj/structure/disposalpipe/segment{ dir = 8 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/north, /area/ice_colony/surface/research) "aUv" = ( /obj/effect/decal/warning_stripes{ @@ -16031,29 +12634,20 @@ dir = 2; icon_state = "pipe-c" }, -/turf/open/floor{ - dir = 1; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/north, /area/ice_colony/surface/research) "aUw" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor{ - dir = 1; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/north, /area/ice_colony/surface/research) "aUx" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" }, /obj/structure/machinery/light, -/turf/open/floor{ - dir = 1; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/north, /area/ice_colony/surface/research) "aUy" = ( /obj/effect/decal/warning_stripes{ @@ -16063,21 +12657,13 @@ id = "researchoutside"; name = "Omicron Research Dome" }, -/turf/open/floor{ - dir = 5; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/northeast, /area/ice_colony/surface/research) "aUz" = ( -/turf/open/floor/plating/icefloor{ - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate, /area/ice_colony/exterior/surface/valley/southwest) "aUA" = ( -/turf/open/floor/plating/icefloor{ - dir = 6; - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate/southeast, /area/ice_colony/exterior/surface/valley/southwest) "aUH" = ( /obj/structure/disposalpipe/segment{ @@ -16087,9 +12673,7 @@ /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/hangar/hallway) "aUI" = ( /obj/structure/disposalpipe/segment{ @@ -16101,9 +12685,7 @@ /obj/structure/machinery/door/airlock/almayer/engineering/colony{ name = "\improper Aerodrome Hangar Beta" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/hangar/beta) "aUL" = ( /obj/structure/disposalpipe/segment{ @@ -16113,19 +12695,7 @@ /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkbrown2" - }, -/area/ice_colony/surface/hangar/beta) -"aUM" = ( -/obj/item/ammo_magazine/pistol/holdout{ - pixel_x = 6; - pixel_y = -4 - }, -/turf/open/shuttle{ - icon_state = "floor6" - }, +/turf/open/floor/darkbrown2/east, /area/ice_colony/surface/hangar/beta) "aUN" = ( /obj/structure/ice/thin/end{ @@ -16144,44 +12714,26 @@ /area/ice_colony/exterior/surface/landing_pad_external) "aUQ" = ( /obj/structure/reagent_dispensers/watertank, -/turf/open/floor{ - dir = 10; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/southwest, /area/ice_colony/surface/research/temporary) "aUR" = ( -/turf/open/floor{ - dir = 8; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/darkyellowcorners2/west, /area/ice_colony/surface/research/temporary) "aUS" = ( -/turf/open/floor{ - dir = 4; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/darkyellowcorners2/east, /area/ice_colony/surface/research/temporary) "aUT" = ( /obj/structure/closet/emcloset, /obj/effect/landmark/crap_item, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/ice_colony/surface/research/temporary) "aUU" = ( /obj/structure/closet/firecloset, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/ice_colony/surface/research/temporary) "aUV" = ( /obj/structure/closet/firecloset, -/turf/open/floor{ - dir = 5; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/northeast, /area/ice_colony/surface/research/temporary) "aUW" = ( /turf/closed/wall, @@ -16197,9 +12749,7 @@ dir = 1; name = "\improper Omicron Technical Storage" }, -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/ice_colony/surface/research/tech_storage) "aUZ" = ( /turf/closed/wall/r_wall, @@ -16209,26 +12759,19 @@ dir = 1; icon_state = "pipe-c" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/hangar/hallway) "aVc" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/disposalpipe/junction, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/hangar/hallway) "aVd" = ( /obj/structure/machinery/alarm{ dir = 4; pixel_x = -24 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/west, /area/ice_colony/surface/hangar/beta) "aVe" = ( /obj/structure/ice/ice_rock/cornerOverlay{ @@ -16252,116 +12795,76 @@ icon_state = "pipe-c" }, /obj/structure/machinery/light, -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/ice_colony/surface/research/temporary) "aVi" = ( /obj/structure/disposalpipe/segment{ dir = 8 }, -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/ice_colony/surface/research/temporary) "aVj" = ( /obj/structure/disposalpipe/segment{ dir = 8 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/darkyellowcorners2/west, /area/ice_colony/surface/research/temporary) "aVk" = ( /obj/structure/disposalpipe/segment{ dir = 8 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/research/temporary) "aVl" = ( /obj/structure/disposalpipe/segment{ dir = 2; icon_state = "pipe-c" }, -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/ice_colony/surface/research/temporary) "aVm" = ( /obj/structure/surface/table, /obj/effect/spawner/random/bomb_supply, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 9; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/northwest, /area/ice_colony/surface/research/tech_storage) "aVn" = ( /obj/structure/surface/table, /obj/effect/spawner/random/toolbox, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/ice_colony/surface/research/tech_storage) "aVp" = ( -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/ice_colony/surface/research/tech_storage) "aVq" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/research/tech_storage) "aVr" = ( /obj/structure/machinery/firealarm{ pixel_y = 24 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/ice_colony/surface/research/tech_storage) "aVs" = ( -/turf/open/floor{ - dir = 5; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/northeast, /area/ice_colony/surface/research/tech_storage) "aVt" = ( /obj/structure/reagent_dispensers/fueltank, -/turf/open/floor{ - icon_state = "platebot" - }, +/turf/open/floor/platebot, /area/ice_colony/surface/research/tech_storage) "aVv" = ( /obj/structure/fence, -/turf/open/floor/plating/icefloor{ - dir = 9; - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate/northwest, /area/ice_colony/exterior/surface/container_yard) "aVw" = ( /obj/structure/fence, -/turf/open/floor/plating/icefloor{ - dir = 1; - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate/north, /area/ice_colony/exterior/surface/container_yard) "aVx" = ( /obj/structure/fence, -/turf/open/floor/plating/icefloor{ - dir = 5; - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate/northeast, /area/ice_colony/exterior/surface/container_yard) "aVy" = ( /turf/closed/shuttle{ @@ -16372,36 +12875,26 @@ /obj/structure/surface/table, /obj/item/storage/belt/utility, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 4; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/east, /area/ice_colony/surface/hangar/alpha) "aVA" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/hangar/hallway) "aVB" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/hangar/hallway) "aVC" = ( /obj/structure/surface/table, /obj/item/device/flashlight, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 8; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/west, /area/ice_colony/surface/hangar/beta) "aVD" = ( /turf/closed/shuttle{ @@ -16413,10 +12906,7 @@ /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor{ - dir = 8; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/west, /area/ice_colony/surface/hangar/beta) "aVF" = ( /obj/structure/machinery/landinglight/ds1{ @@ -16425,46 +12915,31 @@ /obj/structure/machinery/landinglight/ds1/delaythree{ dir = 1 }, -/turf/open/floor/plating/icefloor{ - dir = 9; - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate/northwest, /area/ice_colony/exterior/surface/landing_pad) "aVG" = ( /obj/structure/machinery/landinglight/ds1/delaytwo{ dir = 1 }, -/turf/open/floor/plating/icefloor{ - dir = 1; - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate/north, /area/ice_colony/exterior/surface/landing_pad) "aVH" = ( /obj/structure/machinery/landinglight/ds1/delayone{ dir = 1 }, -/turf/open/floor/plating/icefloor{ - dir = 1; - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate/north, /area/ice_colony/exterior/surface/landing_pad) "aVI" = ( /obj/structure/machinery/landinglight/ds1{ dir = 1 }, -/turf/open/floor/plating/icefloor{ - dir = 1; - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate/north, /area/ice_colony/exterior/surface/landing_pad) "aVJ" = ( /obj/structure/machinery/landinglight/ds1/delaythree{ dir = 1 }, -/turf/open/floor/plating/icefloor{ - dir = 1; - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate/north, /area/ice_colony/exterior/surface/landing_pad) "aVK" = ( /obj/structure/machinery/landinglight/ds1{ @@ -16473,69 +12948,43 @@ /obj/structure/machinery/landinglight/ds1/delayone{ dir = 1 }, -/turf/open/floor/plating/icefloor{ - dir = 5; - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate/northeast, /area/ice_colony/exterior/surface/landing_pad) "aVL" = ( /obj/structure/surface/rack, /obj/item/clothing/mask/gas, -/turf/open/floor{ - dir = 10; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/southwest, /area/ice_colony/surface/research/temporary) "aVM" = ( /obj/structure/machinery/light, /obj/structure/surface/rack, /obj/item/clothing/mask/gas, -/turf/open/floor{ - dir = 8; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/darkyellowcorners2/west, /area/ice_colony/surface/research/temporary) "aVN" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk{ dir = 1 }, -/turf/open/floor{ - dir = 6; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/southeast, /area/ice_colony/surface/research/temporary) "aVO" = ( -/turf/open/floor{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/west, /area/ice_colony/surface/research/tech_storage) "aVP" = ( -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/research/tech_storage) "aVQ" = ( -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/ice_colony/surface/research/tech_storage) "aVR" = ( /obj/structure/surface/table, /obj/effect/spawner/random/tool, -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/ice_colony/surface/research/tech_storage) "aVT" = ( /obj/structure/fence, -/turf/open/floor/plating/icefloor{ - dir = 8; - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate/west, /area/ice_colony/exterior/surface/container_yard) "aVU" = ( /obj/structure/machinery/colony_floodlight, @@ -16550,127 +12999,67 @@ /area/ice_colony/exterior/surface/container_yard) "aVX" = ( /obj/structure/fence, -/turf/open/floor/plating/icefloor{ - dir = 4; - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate/east, /area/ice_colony/exterior/surface/container_yard) "aVZ" = ( /obj/structure/machinery/space_heater, -/turf/open/floor{ - dir = 8; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/west, /area/ice_colony/surface/hangar/alpha) "aWa" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/hangar/alpha) "aWb" = ( /obj/structure/shuttle/diagonal{ icon_state = "swall_f5" }, -/turf/open/floor{ - icon_state = "dark2" - }, -/area/ice_colony/surface/hangar/alpha) -"aWc" = ( -/obj/structure/shuttle/diagonal{ - icon_state = "swall_f10" - }, -/turf/open/shuttle{ - icon_state = "floor6" - }, -/area/ice_colony/surface/hangar/alpha) -"aWd" = ( -/obj/structure/shuttle/diagonal{ - icon_state = "swall_f6" - }, -/turf/open/shuttle{ - icon_state = "floor6" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/hangar/alpha) "aWe" = ( /obj/structure/shuttle/diagonal{ icon_state = "swall_f9" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/hangar/alpha) "aWf" = ( /obj/structure/surface/table, /obj/item/device/flashlight, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 4; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/east, /area/ice_colony/surface/hangar/alpha) "aWg" = ( -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/hangar/hallway) "aWh" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/disposalpipe/segment, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/hangar/hallway) "aWi" = ( /obj/structure/surface/table, /obj/item/storage/belt/utility, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 8; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/west, /area/ice_colony/surface/hangar/beta) "aWj" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/hangar/beta) "aWk" = ( /obj/structure/shuttle/diagonal{ icon_state = "swall_f5" }, -/turf/open/floor{ - icon_state = "dark2" - }, -/area/ice_colony/surface/hangar/beta) -"aWl" = ( -/obj/structure/shuttle/diagonal{ - icon_state = "swall_f10" - }, -/turf/open/shuttle{ - icon_state = "floor6" - }, -/area/ice_colony/surface/hangar/beta) -"aWm" = ( -/obj/structure/shuttle/diagonal{ - icon_state = "swall_f6" - }, -/turf/open/shuttle{ - icon_state = "floor6" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/hangar/beta) "aWn" = ( /obj/structure/shuttle/diagonal{ icon_state = "swall_f9" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/hangar/beta) "aWo" = ( /obj/structure/machinery/landinglight/ds1/delaytwo{ @@ -16679,10 +13068,7 @@ /obj/structure/machinery/landinglight/ds1/delaythree{ dir = 8 }, -/turf/open/floor/plating/icefloor{ - dir = 9; - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate/northwest, /area/ice_colony/exterior/surface/landing_pad) "aWp" = ( /turf/open/floor/plating, @@ -16694,10 +13080,7 @@ /obj/structure/machinery/landinglight/ds1/delaytwo{ dir = 1 }, -/turf/open/floor/plating/icefloor{ - dir = 5; - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate/northeast, /area/ice_colony/exterior/surface/landing_pad) "aWs" = ( /obj/structure/surface/table, @@ -16712,18 +13095,13 @@ dir = 4; pixel_x = -24 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/west, /area/ice_colony/surface/research/tech_storage) "aWt" = ( /obj/structure/disposalpipe/segment{ dir = 8 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/research/tech_storage) "aWu" = ( /obj/structure/disposalpipe/segment{ @@ -16733,18 +13111,14 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/research/tech_storage) "aWv" = ( /obj/effect/landmark/survivor_spawner, /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/research/tech_storage) "aWw" = ( /obj/structure/closet/wardrobe/green, @@ -16752,10 +13126,7 @@ dir = 4; pixel_x = 24 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/east, /area/ice_colony/surface/hydroponics/south) "aWB" = ( /obj/structure/cargo_container/watatsumi/leftmid, @@ -16787,10 +13158,7 @@ /area/ice_colony/exterior/surface/container_yard) "aWI" = ( /obj/structure/closet/toolcloset, -/turf/open/floor{ - dir = 8; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/west, /area/ice_colony/surface/hangar/alpha) "aWJ" = ( /turf/closed/shuttle{ @@ -16801,29 +13169,20 @@ /obj/structure/surface/table, /obj/effect/spawner/random/toolbox, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 4; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/east, /area/ice_colony/surface/hangar/alpha) "aWL" = ( /obj/structure/surface/table, /obj/effect/spawner/random/toolbox, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 8; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/west, /area/ice_colony/surface/hangar/beta) "aWM" = ( /obj/structure/machinery/space_heater, /obj/effect/decal/warning_stripes{ icon_state = "E" }, -/turf/open/floor{ - dir = 4; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/east, /area/ice_colony/surface/hangar/beta) "aWN" = ( /turf/closed/shuttle{ @@ -16832,19 +13191,13 @@ /area/ice_colony/surface/hangar/beta) "aWO" = ( /obj/structure/closet/toolcloset, -/turf/open/floor{ - dir = 4; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/east, /area/ice_colony/surface/hangar/beta) "aWP" = ( /obj/structure/machinery/landinglight/ds1{ dir = 8 }, -/turf/open/floor/plating/icefloor{ - dir = 8; - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate/west, /area/ice_colony/exterior/surface/landing_pad) "aWQ" = ( /obj/structure/machinery/camera/autoname/lz_camera, @@ -16854,83 +13207,57 @@ /obj/structure/machinery/landinglight/ds1{ dir = 4 }, -/turf/open/floor/plating/icefloor{ - dir = 4; - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate/east, /area/ice_colony/exterior/surface/landing_pad) "aWS" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk{ dir = 1 }, -/turf/open/floor{ - dir = 10; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/southwest, /area/ice_colony/surface/research/tech_storage) "aWT" = ( -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/ice_colony/surface/research/tech_storage) "aWU" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/toolbox, -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/ice_colony/surface/research/tech_storage) "aWV" = ( /obj/structure/surface/rack, /obj/effect/landmark/good_item, -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/ice_colony/surface/research/tech_storage) "aWW" = ( /obj/structure/machinery/light, -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/ice_colony/surface/research/tech_storage) "aWX" = ( /obj/structure/machinery/power/apc{ pixel_y = -24; start_charge = 0 }, -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/ice_colony/surface/research/tech_storage) "aWY" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/tool, -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/ice_colony/surface/research/tech_storage) "aWZ" = ( /obj/structure/surface/rack, /obj/item/storage/box/lightstick/red, /obj/item/storage/box/lightstick/red, -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/ice_colony/surface/research/tech_storage) "aXa" = ( -/turf/open/floor{ - dir = 8; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/darkyellowcorners2/west, /area/ice_colony/surface/research/tech_storage) "aXb" = ( /obj/structure/surface/table, /obj/item/circuitboard/apc, -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/ice_colony/surface/research/tech_storage) "aXc" = ( /obj/structure/cargo_container/arious/leftmid, @@ -16960,32 +13287,21 @@ /obj/structure/barricade/metal{ dir = 4 }, -/turf/open/floor/plating/icefloor{ - dir = 4; - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate/east, /area/ice_colony/exterior/surface/container_yard) "aXj" = ( /obj/structure/closet/toolcloset, -/turf/open/floor{ - dir = 10; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/southwest, /area/ice_colony/surface/hangar/alpha) "aXk" = ( -/turf/open/floor{ - dir = 8; - icon_state = "darkbrowncorners2" - }, +/turf/open/floor/darkbrowncorners2/west, /area/ice_colony/surface/hangar/alpha) "aXl" = ( /obj/structure/shuttle/diagonal{ dir = 9; icon_state = "wall" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/hangar/alpha) "aXm" = ( /turf/closed/shuttle{ @@ -16997,34 +13313,24 @@ dir = 5; icon_state = "wall" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/hangar/alpha) "aXo" = ( /obj/structure/largecrate/random, -/turf/open/floor{ - dir = 4; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/east, /area/ice_colony/surface/hangar/alpha) "aXr" = ( /obj/structure/surface/table, /obj/item/device/flashlight, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 10; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/southwest, /area/ice_colony/surface/hangar/beta) "aXt" = ( /obj/structure/shuttle/diagonal{ dir = 9; icon_state = "wall" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/hangar/beta) "aXu" = ( /turf/closed/shuttle{ @@ -17036,21 +13342,14 @@ dir = 5; icon_state = "wall" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/hangar/beta) "aXw" = ( -/turf/open/floor{ - icon_state = "darkbrowncorners2" - }, +/turf/open/floor/darkbrowncorners2, /area/ice_colony/surface/hangar/beta) "aXx" = ( /obj/structure/closet/toolcloset, -/turf/open/floor{ - dir = 6; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/southeast, /area/ice_colony/surface/hangar/beta) "aXy" = ( /obj/structure/ice/thin/end{ @@ -17062,32 +13361,21 @@ /obj/structure/machinery/landinglight/ds1/delayone{ dir = 8 }, -/turf/open/floor/plating/icefloor{ - dir = 8; - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate/west, /area/ice_colony/exterior/surface/landing_pad) "aXA" = ( /obj/structure/machinery/landinglight/ds1/delaythree{ dir = 4 }, -/turf/open/floor/plating/icefloor{ - dir = 4; - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate/east, /area/ice_colony/exterior/surface/landing_pad) "aXB" = ( -/turf/open/floor{ - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/darkyellowcorners2, /area/ice_colony/surface/research/tech_storage) "aXC" = ( /obj/structure/surface/table, /obj/effect/spawner/random/powercell, -/turf/open/floor{ - dir = 6; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/southeast, /area/ice_colony/surface/research/tech_storage) "aXH" = ( /obj/structure/cargo_container/grant/left, @@ -17109,46 +13397,33 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor{ - dir = 10; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/southwest, /area/ice_colony/surface/hangar/alpha) "aXM" = ( /obj/effect/decal/warning_stripes{ icon_state = "E" }, -/turf/open/floor{ - dir = 6; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/southeast, /area/ice_colony/surface/hangar/alpha) "aXN" = ( /obj/structure/shuttle/diagonal{ dir = 6; icon_state = "wall" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/hangar/alpha) "aXO" = ( /obj/structure/shuttle/diagonal{ dir = 10; icon_state = "wall" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/hangar/alpha) "aXP" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor{ - dir = 10; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/southwest, /area/ice_colony/surface/hangar/alpha) "aXQ" = ( /obj/structure/machinery/light{ @@ -17159,72 +13434,50 @@ name = "hangar shutter control"; pixel_y = -30 }, -/turf/open/floor{ - dir = 6; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/southeast, /area/ice_colony/surface/hangar/alpha) "aXR" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper Aerodrome Hangar" }, -/turf/open/floor{ - dir = 10; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/southwest, /area/ice_colony/surface/hangar/hallway) "aXS" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/disposalpipe/segment, -/turf/open/floor{ - dir = 6; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/southeast, /area/ice_colony/surface/hangar/hallway) "aXT" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor{ - dir = 10; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/southwest, /area/ice_colony/surface/hangar/beta) "aXU" = ( /obj/effect/decal/warning_stripes{ icon_state = "E" }, -/turf/open/floor{ - dir = 6; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/southeast, /area/ice_colony/surface/hangar/beta) "aXV" = ( /obj/structure/shuttle/diagonal{ dir = 6; icon_state = "wall" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/hangar/beta) "aXW" = ( /obj/structure/shuttle/diagonal{ dir = 10; icon_state = "wall" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/hangar/beta) "aXX" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor{ - dir = 10; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/southwest, /area/ice_colony/surface/hangar/beta) "aXY" = ( /obj/structure/machinery/light{ @@ -17235,10 +13488,7 @@ name = "hangar shutter control"; pixel_y = -30 }, -/turf/open/floor{ - dir = 6; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/southeast, /area/ice_colony/surface/hangar/beta) "aXZ" = ( /obj/structure/ice/thin/corner, @@ -17259,35 +13509,22 @@ /area/ice_colony/exterior/surface/landing_pad_external) "aYd" = ( /obj/structure/closet/secure_closet/engineering_welding, -/turf/open/floor{ - dir = 10; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/southwest, /area/ice_colony/surface/research/tech_storage) "aYe" = ( /obj/structure/closet/secure_closet/engineering_welding, -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/ice_colony/surface/research/tech_storage) "aYf" = ( /obj/structure/closet/toolcloset, -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/ice_colony/surface/research/tech_storage) "aYg" = ( /obj/structure/closet/toolcloset, -/turf/open/floor{ - dir = 6; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/southeast, /area/ice_colony/surface/research/tech_storage) "aYi" = ( -/turf/open/floor/plating/icefloor{ - dir = 4; - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate/east, /area/ice_colony/exterior/surface/container_yard) "aYj" = ( /obj/effect/decal/warning_stripes{ @@ -17300,10 +13537,7 @@ /obj/effect/decal/warning_stripes{ icon_state = "E" }, -/turf/open/floor{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/north, /area/ice_colony/surface/hangar/alpha) "aYk" = ( /obj/effect/decal/warning_stripes{ @@ -17313,10 +13547,7 @@ id = "hangar_ice_1"; name = "\improper Hangar Shutters" }, -/turf/open/floor{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/north, /area/ice_colony/surface/hangar/alpha) "aYl" = ( /obj/effect/decal/warning_stripes{ @@ -17329,10 +13560,7 @@ id = "hangar_ice_1"; name = "\improper Hangar Shutters" }, -/turf/open/floor{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/north, /area/ice_colony/surface/hangar/alpha) "aYo" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -17350,10 +13578,7 @@ /obj/effect/decal/warning_stripes{ icon_state = "E" }, -/turf/open/floor{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/north, /area/ice_colony/surface/hangar/beta) "aYq" = ( /obj/effect/decal/warning_stripes{ @@ -17363,10 +13588,7 @@ id = "hangar_ice_2"; name = "\improper Hangar Shutters" }, -/turf/open/floor{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/north, /area/ice_colony/surface/hangar/beta) "aYr" = ( /obj/effect/decal/warning_stripes{ @@ -17379,10 +13601,7 @@ id = "hangar_ice_2"; name = "\improper Hangar Shutters" }, -/turf/open/floor{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/north, /area/ice_colony/surface/hangar/beta) "aYs" = ( /obj/structure/ice/thin/end, @@ -17392,10 +13611,7 @@ /obj/structure/machinery/landinglight/ds1{ dir = 8 }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/west, /area/ice_colony/exterior/surface/landing_pad) "aYx" = ( /obj/vehicle/train/cargo/trolley, @@ -17410,16 +13626,10 @@ dir = 8 }, /obj/structure/machinery/colony_floodlight, -/turf/open/floor/plating/icefloor{ - dir = 9; - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate/northwest, /area/ice_colony/exterior/surface/landing_pad) "aYB" = ( -/turf/open/floor/plating/icefloor{ - dir = 1; - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate/north, /area/ice_colony/exterior/surface/landing_pad) "aYC" = ( /turf/open/floor/plating/icefloor, @@ -17429,39 +13639,25 @@ /turf/open/floor/plating/icefloor, /area/ice_colony/exterior/surface/landing_pad) "aYE" = ( -/turf/open/floor/plating/icefloor{ - dir = 10; - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate/southwest, /area/ice_colony/exterior/surface/landing_pad) "aYG" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/disposalpipe/segment, -/turf/open/floor/plating/icefloor{ - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate, /area/ice_colony/exterior/surface/landing_pad) "aYH" = ( -/turf/open/floor/plating/icefloor{ - dir = 6; - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate/southeast, /area/ice_colony/exterior/surface/landing_pad) "aYI" = ( /obj/structure/machinery/floodlight/landing, -/turf/open/floor/plating/icefloor{ - dir = 5; - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate/northeast, /area/ice_colony/exterior/surface/landing_pad) "aYJ" = ( /obj/structure/machinery/landinglight/ds1/delayone{ dir = 8 }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/west, /area/ice_colony/exterior/surface/landing_pad) "aYK" = ( /turf/closed/ice/straight{ @@ -17477,16 +13673,10 @@ /obj/structure/barricade/metal{ dir = 8 }, -/turf/open/floor/plating/icefloor{ - dir = 8; - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate/west, /area/ice_colony/exterior/surface/landing_pad) "aYO" = ( -/turf/open/floor/plating/icefloor{ - dir = 4; - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate/east, /area/ice_colony/exterior/surface/landing_pad) "aYP" = ( /obj/structure/lz_sign/ice_sign, @@ -17499,10 +13689,7 @@ /obj/structure/machinery/landinglight/ds1/delaythree{ dir = 8 }, -/turf/open/floor/plating{ - dir = 9; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/northwest, /area/ice_colony/exterior/surface/landing_pad) "aYR" = ( /obj/structure/machinery/floodlight/landing, @@ -17512,10 +13699,7 @@ /obj/structure/machinery/landinglight/ds1/delaytwo{ dir = 1 }, -/turf/open/floor/plating/icefloor{ - dir = 5; - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate/northeast, /area/ice_colony/exterior/surface/landing_pad) "aYS" = ( /turf/closed/ice/straight, @@ -17527,10 +13711,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/plating/icefloor{ - dir = 8; - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate/west, /area/ice_colony/exterior/surface/landing_pad) "aZb" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -17565,25 +13746,16 @@ /obj/structure/barricade/metal{ dir = 1 }, -/turf/open/floor/plating/icefloor{ - dir = 1; - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate/north, /area/ice_colony/exterior/surface/landing_pad) "aZg" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/computer/shuttle_control/dropship1, -/turf/open/floor/plating/icefloor{ - dir = 1; - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate/north, /area/ice_colony/landing/console) "aZh" = ( /obj/structure/machinery/floodlight/landing, -/turf/open/floor/plating/icefloor{ - dir = 1; - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate/north, /area/ice_colony/exterior/surface/landing_pad) "aZi" = ( /obj/structure/machinery/landinglight/ds1{ @@ -17596,10 +13768,7 @@ /turf/open/ice, /area/ice_colony/exterior/surface/landing_pad_external) "aZm" = ( -/turf/open/floor/plating/icefloor{ - dir = 8; - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate/west, /area/ice_colony/exterior/surface/landing_pad) "aZn" = ( /obj/effect/decal/cleanable/blood/oil, @@ -17637,30 +13806,19 @@ /obj/structure/machinery/landinglight/ds1/delaytwo{ dir = 4 }, -/turf/open/floor/plating/icefloor{ - dir = 4; - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate/east, /area/ice_colony/exterior/surface/landing_pad) "aZx" = ( /obj/structure/fence, -/turf/open/floor/plating/icefloor{ - dir = 10; - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate/southwest, /area/ice_colony/exterior/surface/container_yard) "aZy" = ( /obj/structure/fence, -/turf/open/floor/plating/icefloor{ - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate, /area/ice_colony/exterior/surface/container_yard) "aZz" = ( /obj/structure/fence, -/turf/open/floor/plating/icefloor{ - dir = 6; - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate/southeast, /area/ice_colony/exterior/surface/container_yard) "aZA" = ( /obj/structure/machinery/landinglight/ds1/delaythree{ @@ -17672,20 +13830,14 @@ /obj/structure/machinery/landinglight/ds1/delayone{ dir = 4 }, -/turf/open/floor/plating/icefloor{ - dir = 4; - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate/east, /area/ice_colony/exterior/surface/landing_pad) "aZC" = ( /obj/structure/barricade/metal{ dir = 8 }, /obj/structure/machinery/colony_floodlight, -/turf/open/floor/plating/icefloor{ - dir = 8; - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate/west, /area/ice_colony/exterior/surface/landing_pad) "aZE" = ( /obj/structure/ice/thin/corner{ @@ -17721,20 +13873,14 @@ /area/ice_colony/exterior/surface/landing_pad) "aZQ" = ( /obj/structure/barricade/metal, -/turf/open/floor/plating/icefloor{ - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate, /area/ice_colony/exterior/surface/landing_pad) "aZR" = ( -/turf/open/floor/plating/icefloor{ - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate, /area/ice_colony/exterior/surface/landing_pad) "aZS" = ( /obj/structure/machinery/floodlight/landing, -/turf/open/floor/plating/icefloor{ - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate, /area/ice_colony/exterior/surface/landing_pad) "aZT" = ( /obj/structure/reagent_dispensers/fueltank, @@ -17797,10 +13943,7 @@ /obj/structure/machinery/landinglight/ds1/delaythree{ dir = 8 }, -/turf/open/floor/plating{ - dir = 10; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/southwest, /area/ice_colony/exterior/surface/landing_pad) "baf" = ( /obj/structure/machinery/floodlight/landing, @@ -17808,10 +13951,7 @@ /obj/structure/machinery/landinglight/ds1/delayone{ dir = 4 }, -/turf/open/floor/plating/icefloor{ - dir = 6; - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate/southeast, /area/ice_colony/exterior/surface/landing_pad) "bag" = ( /obj/structure/ice/thin/corner{ @@ -17839,28 +13979,16 @@ /area/ice_colony/exterior/surface/landing_pad_external) "ban" = ( /obj/structure/machinery/floodlight/landing, -/turf/open/floor/plating/icefloor{ - dir = 6; - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate/southeast, /area/ice_colony/exterior/surface/landing_pad) "bao" = ( -/turf/open/floor/plating/icefloor{ - dir = 9; - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate/northwest, /area/ice_colony/underground/hangar) "bap" = ( -/turf/open/floor/plating/icefloor{ - dir = 1; - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate/north, /area/ice_colony/underground/hangar) "baq" = ( -/turf/open/floor/plating/icefloor{ - dir = 5; - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate/northeast, /area/ice_colony/underground/hangar) "bar" = ( /obj/structure/ice/thin/end, @@ -17888,10 +14016,7 @@ /obj/structure/machinery/landinglight/ds1/delaytwo{ dir = 8 }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/west, /area/ice_colony/exterior/surface/landing_pad) "bax" = ( /obj/structure/ice/thin/junction{ @@ -17903,10 +14028,7 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/plating/icefloor{ - dir = 8; - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate/west, /area/ice_colony/underground/hangar) "baz" = ( /obj/structure/machinery/landinglight/ds2/delaytwo, @@ -17918,17 +14040,11 @@ /area/ice_colony/underground/hangar) "baB" = ( /obj/structure/machinery/landinglight/ds2, -/turf/open/floor/plating/icefloor{ - dir = 4; - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate/east, /area/ice_colony/underground/hangar) "baC" = ( /obj/structure/machinery/landinglight/ds2/delaythree, -/turf/open/floor/plating/icefloor{ - dir = 8; - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate/west, /area/ice_colony/underground/hangar) "baD" = ( /obj/structure/machinery/landinglight/ds2, @@ -17936,43 +14052,28 @@ /area/ice_colony/underground/hangar) "baE" = ( /obj/structure/machinery/landinglight/ds2/delaythree, -/turf/open/floor/plating/icefloor{ - dir = 4; - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate/east, /area/ice_colony/underground/hangar) "baF" = ( /obj/structure/machinery/landinglight/ds2/delaytwo, -/turf/open/floor/plating/icefloor{ - dir = 8; - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate/west, /area/ice_colony/underground/hangar) "baH" = ( /obj/structure/machinery/landinglight/ds1, /obj/structure/machinery/landinglight/ds1/delaythree{ dir = 8 }, -/turf/open/floor/plating/icefloor{ - dir = 10; - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate/southwest, /area/ice_colony/exterior/surface/landing_pad) "baI" = ( /obj/structure/machinery/landinglight/ds1, /obj/structure/machinery/landinglight/ds1/delayone{ dir = 4 }, -/turf/open/floor/plating/icefloor{ - dir = 6; - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate/southeast, /area/ice_colony/exterior/surface/landing_pad) "baJ" = ( -/turf/open/floor/plating/icefloor{ - dir = 8; - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate/west, /area/ice_colony/underground/hangar) "baK" = ( /obj/structure/machinery/landinglight/ds2/delaythree{ @@ -17987,10 +14088,7 @@ /turf/open/floor/plating/icefloor, /area/ice_colony/underground/hangar) "baN" = ( -/turf/open/floor/plating/icefloor{ - dir = 4; - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate/east, /area/ice_colony/underground/hangar) "baO" = ( /obj/structure/machinery/landinglight/ds2{ @@ -18022,10 +14120,7 @@ /obj/structure/machinery/landinglight/ds1/delaytwo{ dir = 8 }, -/turf/open/floor/plating/icefloor{ - dir = 8; - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate/west, /area/ice_colony/exterior/surface/landing_pad) "baZ" = ( /obj/structure/ice/thin/corner{ @@ -18040,9 +14135,7 @@ /obj/structure/machinery/landinglight/ds2/delayone{ dir = 4 }, -/turf/open/floor/plating/icefloor{ - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate, /area/ice_colony/underground/hangar) "bbc" = ( /obj/structure/machinery/camera/autoname/lz_camera, @@ -18052,9 +14145,7 @@ /obj/structure/machinery/landinglight/ds2/delaythree{ dir = 8 }, -/turf/open/floor/plating/icefloor{ - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate, /area/ice_colony/underground/hangar) "bbg" = ( /obj/structure/ice/thin/straight, @@ -18081,15 +14172,11 @@ /area/ice_colony/exterior/surface/cliff) "bbl" = ( /obj/structure/machinery/landinglight/ds1/delayone, -/turf/open/floor/plating/icefloor{ - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate, /area/ice_colony/exterior/surface/landing_pad) "bbm" = ( /obj/structure/machinery/landinglight/ds1/delaythree, -/turf/open/floor/plating/icefloor{ - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate, /area/ice_colony/exterior/surface/landing_pad) "bbn" = ( /turf/open/gm/empty, @@ -18098,19 +14185,13 @@ /obj/structure/machinery/landinglight/ds2/delaytwo{ dir = 4 }, -/turf/open/floor/plating/icefloor{ - dir = 1; - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate/north, /area/ice_colony/underground/hangar) "bbq" = ( /obj/structure/machinery/landinglight/ds2/delaytwo{ dir = 8 }, -/turf/open/floor/plating/icefloor{ - dir = 1; - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate/north, /area/ice_colony/underground/hangar) "bbt" = ( /obj/structure/ice/thin/junction{ @@ -18126,57 +14207,39 @@ dir = 1; name = "\improper Colony Storeroom" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/tcomms) "bby" = ( /obj/structure/machinery/landinglight/ds1/delaytwo{ dir = 8 }, /obj/structure/machinery/landinglight/ds1/delaythree, -/turf/open/floor/plating/icefloor{ - dir = 10; - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate/southwest, /area/ice_colony/exterior/surface/landing_pad) "bbz" = ( /obj/structure/machinery/landinglight/ds1, -/turf/open/floor/plating/icefloor{ - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate, /area/ice_colony/exterior/surface/landing_pad) "bbA" = ( /obj/structure/machinery/landinglight/ds1/delaytwo, -/turf/open/floor/plating/icefloor{ - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate, /area/ice_colony/exterior/surface/landing_pad) "bbB" = ( /obj/structure/machinery/landinglight/ds1/delayone, /obj/structure/machinery/landinglight/ds1/delaytwo{ dir = 4 }, -/turf/open/floor/plating/icefloor{ - dir = 6; - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate/southeast, /area/ice_colony/exterior/surface/landing_pad) "bbE" = ( /turf/closed/wall/r_wall, /area/ice_colony/surface/tcomms) "bbF" = ( /obj/structure/largecrate/random, -/turf/open/floor{ - dir = 9; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/northwest, /area/ice_colony/surface/tcomms) "bbG" = ( -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/ice_colony/surface/tcomms) "bbI" = ( /obj/structure/ice/thin/single, @@ -18200,9 +14263,7 @@ pixel_x = -24; start_charge = 0 }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/ice_colony/surface/tcomms) "bbW" = ( /obj/structure/ice/thin/corner{ @@ -18252,17 +14313,11 @@ /area/ice_colony/underground/hangar) "bcg" = ( /obj/structure/inflatable, -/turf/open/floor/plating/icefloor{ - dir = 9; - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate/northwest, /area/ice_colony/surface/excavation/storage) "bch" = ( /obj/structure/inflatable, -/turf/open/floor/plating/icefloor{ - dir = 1; - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate/north, /area/ice_colony/surface/excavation/storage) "bci" = ( /turf/closed/wall, @@ -18271,22 +14326,15 @@ /obj/structure/machinery/door/airlock/multi_tile/almayer/medidoor/colony{ name = "\improper Colony Xenoarcheology Outpost" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/excavation) "bck" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/excavation) "bcl" = ( -/turf/open/floor{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/west, /area/ice_colony/surface/tcomms) "bco" = ( /obj/structure/ice/thin/end, @@ -18350,68 +14398,42 @@ "bcF" = ( /obj/structure/surface/table, /obj/item/tool/pickaxe/plasmacutter, -/turf/open/floor{ - dir = 9; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/northwest, /area/ice_colony/surface/excavation) "bcG" = ( /obj/structure/surface/table, /obj/item/storage/toolbox/emergency, -/turf/open/floor{ - dir = 1; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/north, /area/ice_colony/surface/excavation) "bcH" = ( /obj/structure/disposalpipe/trunk, /obj/structure/machinery/disposal, -/turf/open/floor{ - dir = 1; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/north, /area/ice_colony/surface/excavation) "bcI" = ( /obj/structure/machinery/space_heater, -/turf/open/floor{ - dir = 1; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/north, /area/ice_colony/surface/excavation) "bcJ" = ( -/turf/open/floor{ - dir = 1; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/north, /area/ice_colony/surface/excavation) "bcK" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/north, /area/ice_colony/surface/excavation) "bcL" = ( -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/excavation) "bcM" = ( /obj/structure/largecrate/random, -/turf/open/floor{ - dir = 1; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/north, /area/ice_colony/surface/excavation) "bcN" = ( /obj/structure/surface/rack, /obj/item/clothing/mask/gas, -/turf/open/floor{ - dir = 1; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/north, /area/ice_colony/surface/excavation) "bcO" = ( /obj/structure/surface/rack, @@ -18419,86 +14441,57 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/north, /area/ice_colony/surface/excavation) "bcP" = ( -/turf/open/floor{ - dir = 1; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/north, /area/ice_colony/surface/excavation) "bcQ" = ( /obj/structure/window/reinforced{ dir = 4 }, /obj/structure/largecrate/random, -/turf/open/floor{ - dir = 5; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/northeast, /area/ice_colony/surface/excavation) "bcR" = ( /obj/structure/surface/rack, /obj/item/tool/shovel/snow, /obj/item/tool/shovel/snow, /obj/item/tool/shovel/snow, -/turf/open/floor{ - dir = 9; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/northwest, /area/ice_colony/surface/excavation) "bcS" = ( /obj/structure/surface/rack, /obj/effect/landmark/crap_item, -/turf/open/floor{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/north, /area/ice_colony/surface/excavation) "bcT" = ( /obj/structure/closet/radiation, -/turf/open/floor{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/north, /area/ice_colony/surface/excavation) "bcU" = ( /obj/structure/closet/radiation, /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/north, /area/ice_colony/surface/excavation) "bcV" = ( /obj/structure/surface/rack, /obj/item/device/analyzer, /obj/effect/landmark/crap_item, -/turf/open/floor{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/north, /area/ice_colony/surface/excavation) "bcW" = ( /obj/structure/surface/rack, -/turf/open/floor{ - dir = 5; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/northeast, /area/ice_colony/surface/excavation) "bcY" = ( /obj/structure/ice/thin/corner, /turf/open/ice, /area/ice_colony/exterior/surface/valley/south/excavation) "bcZ" = ( -/turf/open/floor/icefloor{ - icon_state = "rockvault" - }, +/turf/open/floor/icefloor/rockvault, /area/ice_colony/exterior/surface/valley/south/excavation) "bda" = ( /turf/closed/wall, @@ -18511,22 +14504,13 @@ /area/ice_colony/underground/requesition/storage) "bdd" = ( /obj/structure/machinery/door/airlock/multi_tile/elevator/access/freight, -/turf/open/floor{ - dir = 9; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/northwest, /area/ice_colony/underground/requesition) "bde" = ( -/turf/open/floor{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/north, /area/ice_colony/underground/requesition) "bdf" = ( -/turf/open/floor{ - dir = 5; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/northeast, /area/ice_colony/underground/requesition) "bdg" = ( /turf/closed/wall/r_wall, @@ -18540,10 +14524,7 @@ /area/ice_colony/underground/hangar) "bdi" = ( /obj/structure/inflatable, -/turf/open/floor/plating/icefloor{ - dir = 8; - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate/west, /area/ice_colony/surface/excavation/storage) "bdj" = ( /obj/structure/surface/table, @@ -18555,44 +14536,29 @@ /area/ice_colony/surface/excavation/storage) "bdl" = ( /obj/structure/surface/table, -/turf/open/floor{ - dir = 8; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/west, /area/ice_colony/surface/excavation) "bdm" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/excavation) "bdn" = ( /obj/structure/bed/chair/comfy, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/excavation) "bdo" = ( /obj/structure/window/reinforced{ dir = 4 }, /obj/structure/largecrate/random, -/turf/open/floor{ - dir = 4; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/east, /area/ice_colony/surface/excavation) "bdp" = ( -/turf/open/floor{ - dir = 8; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/west, /area/ice_colony/surface/excavation) "bdq" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/excavation) "bdr" = ( /obj/structure/ladder{ @@ -18601,10 +14567,7 @@ id = "dig_site_prep_ladder1"; pixel_y = 16 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/east, /area/ice_colony/surface/excavation) "bdB" = ( /obj/structure/ice/thin/end, @@ -18617,9 +14580,7 @@ id = "ship_ladder1"; pixel_y = 16 }, -/turf/open/floor/icefloor{ - icon_state = "rockvault" - }, +/turf/open/floor/icefloor/rockvault, /area/ice_colony/exterior/surface/valley/south/excavation) "bdE" = ( /obj/structure/ladder{ @@ -18628,27 +14589,21 @@ id = "ship_ladder"; pixel_y = 16 }, -/turf/open/floor/icefloor{ - icon_state = "rockvault" - }, +/turf/open/floor/icefloor/rockvault, /area/ice_colony/exterior/surface/valley/south/excavation) "bdF" = ( /obj/structure/closet/secure_closet/freezer/fridge, /obj/structure/machinery/firealarm{ pixel_y = 24 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/ice_colony/underground/requesition/storage) "bdG" = ( /obj/structure/closet/secure_closet/freezer/fridge, /obj/structure/machinery/alarm{ pixel_y = 24 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/ice_colony/underground/requesition/storage) "bdH" = ( /obj/structure/machinery/power/apc{ @@ -18656,67 +14611,43 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/ice_colony/underground/requesition/storage) "bdI" = ( /obj/structure/closet/crate/freezer/rations, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/ice_colony/underground/requesition/storage) "bdJ" = ( /obj/structure/surface/table/reinforced, /obj/item/wrapping_paper, -/turf/open/floor{ - dir = 9; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/northwest, /area/ice_colony/underground/requesition) "bdK" = ( -/turf/open/floor{ - dir = 1; - icon_state = "darkbrowncorners2" - }, +/turf/open/floor/darkbrowncorners2/north, /area/ice_colony/underground/requesition) "bdL" = ( -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/requesition) "bdM" = ( -/turf/open/floor{ - dir = 4; - icon_state = "darkbrowncorners2" - }, +/turf/open/floor/darkbrowncorners2/east, /area/ice_colony/underground/requesition) "bdN" = ( /obj/structure/machinery/computer/shuttle_control/ice_colony/elevator4{ pixel_y = 30 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/north, /area/ice_colony/underground/requesition) "bdO" = ( /obj/structure/machinery/firealarm{ pixel_y = 24 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/north, /area/ice_colony/underground/requesition) "bdP" = ( /obj/structure/machinery/alarm{ pixel_y = 24 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/north, /area/ice_colony/underground/requesition) "bdQ" = ( /obj/structure/machinery/power/apc{ @@ -18724,35 +14655,25 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/north, /area/ice_colony/underground/requesition) "bdR" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor{ - dir = 5; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/northeast, /area/ice_colony/underground/requesition) "bdS" = ( /obj/structure/machinery/landinglight/ds2{ dir = 4 }, -/turf/open/floor/plating/icefloor{ - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate, /area/ice_colony/underground/hangar) "bdT" = ( /obj/structure/machinery/landinglight/ds2{ dir = 8 }, -/turf/open/floor/plating/icefloor{ - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate, /area/ice_colony/underground/hangar) "bdX" = ( /obj/structure/reagent_dispensers/fueltank, @@ -18769,18 +14690,13 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/west, /area/ice_colony/surface/excavation) "bdZ" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/excavation) "bea" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -18790,9 +14706,7 @@ dir = 1; icon_state = "pipe-c" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/excavation) "beb" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -18801,9 +14715,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/excavation) "bec" = ( /obj/structure/surface/table, @@ -18814,9 +14726,7 @@ dir = 4 }, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/excavation) "bed" = ( /obj/structure/surface/table, @@ -18829,9 +14739,7 @@ dir = 4 }, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/excavation) "bee" = ( /obj/structure/surface/table, @@ -18843,9 +14751,7 @@ dir = 4 }, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/excavation) "bef" = ( /obj/structure/disposalpipe/segment{ @@ -18854,9 +14760,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/excavation) "beg" = ( /obj/structure/disposalpipe/segment{ @@ -18864,26 +14768,20 @@ icon_state = "pipe-c" }, /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/excavation) "beh" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/excavation) "bei" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/landmark/hunter_secondary, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/excavation) "bej" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -18892,44 +14790,32 @@ /obj/structure/machinery/door/window{ name = "Anomaly Gear" }, -/turf/open/floor{ - dir = 4; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/east, /area/ice_colony/surface/excavation) "bek" = ( /obj/structure/window/reinforced, /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - dir = 10; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/southwest, /area/ice_colony/surface/excavation) "bel" = ( /obj/structure/window/reinforced, /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2, /area/ice_colony/surface/excavation) "bem" = ( /obj/structure/window/reinforced, /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2, /area/ice_colony/surface/excavation) "ben" = ( /obj/structure/window/reinforced, -/turf/open/floor{ - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2, /area/ice_colony/surface/excavation) "beo" = ( /obj/structure/window/reinforced, @@ -18939,49 +14825,32 @@ id = "dig_site_prep_ladder"; pixel_y = 16 }, -/turf/open/floor{ - dir = 6; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/southeast, /area/ice_colony/surface/excavation) "beq" = ( /obj/structure/machinery/floodlight{ name = "Floodlight" }, -/turf/open/floor/icefloor{ - icon_state = "rockvault" - }, +/turf/open/floor/icefloor/rockvault, /area/ice_colony/exterior/surface/valley/south/excavation) "ber" = ( -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/ice_colony/underground/requesition/storage) "bet" = ( /obj/structure/closet/crate/freezer, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/ice_colony/underground/requesition/storage) "beu" = ( /obj/structure/surface/table/reinforced, /obj/item/tool/weldpack, -/turf/open/floor{ - dir = 8; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/west, /area/ice_colony/underground/requesition) "bev" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/requesition) "beA" = ( -/turf/open/floor{ - dir = 4; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/east, /area/ice_colony/underground/requesition) "beB" = ( /turf/closed/wall/r_wall, @@ -18990,33 +14859,21 @@ /obj/structure/machinery/landinglight/ds2/delayone{ dir = 4 }, -/turf/open/floor/plating/icefloor{ - dir = 1; - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate/north, /area/ice_colony/underground/hangar) "beD" = ( /obj/structure/machinery/camera/autoname/lz_camera, -/turf/open/floor/plating/icefloor{ - dir = 8; - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate/west, /area/ice_colony/underground/hangar) "beE" = ( /obj/structure/machinery/camera/autoname/lz_camera, -/turf/open/floor/plating/icefloor{ - dir = 4; - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate/east, /area/ice_colony/underground/hangar) "beF" = ( /obj/structure/machinery/landinglight/ds2/delaythree{ dir = 8 }, -/turf/open/floor/plating/icefloor{ - dir = 1; - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate/north, /area/ice_colony/underground/hangar) "beG" = ( /obj/structure/ice/thin/junction{ @@ -19026,10 +14883,7 @@ /area/ice_colony/exterior/surface/valley/south) "beH" = ( /obj/structure/inflatable/door, -/turf/open/floor/plating/icefloor{ - dir = 8; - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate/west, /area/ice_colony/surface/excavation/storage) "beI" = ( /obj/structure/reagent_dispensers/fueltank, @@ -19038,70 +14892,48 @@ "beJ" = ( /obj/structure/surface/table, /obj/item/device/flashlight, -/turf/open/floor{ - dir = 8; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/west, /area/ice_colony/surface/excavation) "beK" = ( /obj/effect/landmark/survivor_spawner, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/excavation) "beM" = ( /obj/structure/surface/table, /obj/item/storage/firstaid, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/excavation) "beO" = ( /obj/structure/machinery/door/window/eastright{ name = "Technical Storage" }, -/turf/open/floor{ - dir = 4; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/east, /area/ice_colony/surface/excavation) "beP" = ( /obj/structure/window/reinforced{ dir = 1 }, -/turf/open/floor{ - dir = 9; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/northwest, /area/ice_colony/surface/excavation) "beQ" = ( /obj/structure/window/reinforced{ dir = 1 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/north, /area/ice_colony/surface/excavation) "beR" = ( /obj/structure/window/reinforced{ dir = 1 }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/north, /area/ice_colony/surface/excavation) "beS" = ( /obj/structure/window/reinforced{ dir = 1 }, -/turf/open/floor{ - dir = 5; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/northeast, /area/ice_colony/surface/excavation) "beU" = ( /turf/closed/ice/straight, @@ -19111,81 +14943,55 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/ice_colony/underground/requesition/storage) "beW" = ( /obj/structure/machinery/light{ dir = 8 }, /obj/structure/surface/table/reinforced, -/turf/open/floor{ - dir = 8; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/west, /area/ice_colony/underground/requesition) "beX" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/requesition) "beZ" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/north, /area/ice_colony/underground/requesition) "bfa" = ( -/turf/open/floor{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/north, /area/ice_colony/underground/hangar) "bfb" = ( /obj/structure/closet/toolcloset, /turf/open/floor/plating/icefloor, /area/ice_colony/surface/excavation/storage) "bfc" = ( -/turf/open/floor{ - dir = 8; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/west, /area/ice_colony/surface/excavation) "bfd" = ( /obj/structure/bed/chair/comfy{ dir = 1 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/excavation) "bff" = ( /obj/structure/window/reinforced{ dir = 4 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/east, /area/ice_colony/surface/excavation) "bfg" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/excavation) "bfh" = ( -/turf/open/floor{ - dir = 4; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/east, /area/ice_colony/surface/excavation) "bfi" = ( /turf/closed/ice/corner{ @@ -19194,47 +15000,28 @@ /area/ice_colony/exterior/surface/valley/south/excavation) "bfj" = ( /obj/structure/reagent_dispensers/beerkeg, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/ice_colony/underground/requesition/storage) "bfk" = ( -/turf/open/floor{ - dir = 8; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/west, /area/ice_colony/underground/requesition) "bfm" = ( /obj/structure/closet/crate, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/ice_colony/underground/requesition) "bfn" = ( /obj/structure/largecrate/random, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/ice_colony/underground/requesition) "bfo" = ( -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/ice_colony/underground/requesition) "bfp" = ( -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/hangar) "bfq" = ( /obj/structure/inflatable, -/turf/open/floor/plating/icefloor{ - dir = 10; - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate/southwest, /area/ice_colony/surface/excavation/storage) "bfr" = ( /obj/structure/inflatable, @@ -19254,161 +15041,113 @@ /area/ice_colony/surface/excavation/storage) "bfu" = ( /obj/structure/closet/secure_closet/freezer/fridge, -/turf/open/floor{ - dir = 10; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/southwest, /area/ice_colony/surface/excavation) "bfv" = ( /obj/structure/surface/table, /obj/structure/machinery/microwave, -/turf/open/floor{ - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2, /area/ice_colony/surface/excavation) "bfw" = ( /obj/structure/surface/table, /obj/item/storage/box/donkpockets, -/turf/open/floor{ - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2, /area/ice_colony/surface/excavation) "bfx" = ( /obj/structure/surface/table, /obj/effect/landmark/good_item, -/turf/open/floor{ - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2, /area/ice_colony/surface/excavation) "bfy" = ( -/turf/open/floor{ - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2, /area/ice_colony/surface/excavation) "bfz" = ( /obj/structure/machinery/light, -/turf/open/floor{ - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2, /area/ice_colony/surface/excavation) "bfA" = ( /obj/structure/machinery/power/apc{ pixel_y = -24; start_charge = 0 }, -/turf/open/floor{ - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2, /area/ice_colony/surface/excavation) "bfB" = ( -/turf/open/floor{ - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2, /area/ice_colony/surface/excavation) "bfC" = ( /obj/structure/surface/table, /obj/item/clothing/gloves/yellow, -/turf/open/floor{ - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2, /area/ice_colony/surface/excavation) "bfD" = ( /obj/structure/surface/table, /obj/item/device/reagent_scanner, /obj/structure/machinery/light, -/turf/open/floor{ - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2, /area/ice_colony/surface/excavation) "bfE" = ( /obj/structure/closet/crate, -/turf/open/floor{ - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2, /area/ice_colony/surface/excavation) "bfF" = ( /obj/structure/closet/crate, /obj/item/tool/pickaxe/plasmacutter, -/turf/open/floor{ - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2, /area/ice_colony/surface/excavation) "bfG" = ( /obj/structure/window/reinforced{ dir = 4 }, -/turf/open/floor{ - dir = 6; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/southeast, /area/ice_colony/surface/excavation) "bfH" = ( /obj/structure/surface/rack, /obj/item/tool/shovel/snow, /obj/item/tool/shovel/snow, /obj/effect/landmark/crap_item, -/turf/open/floor{ - dir = 10; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/southwest, /area/ice_colony/surface/excavation) "bfI" = ( /obj/structure/surface/rack, /obj/item/device/multitool, /obj/item/storage/belt/utility/full, -/turf/open/floor{ - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2, /area/ice_colony/surface/excavation) "bfJ" = ( /obj/structure/machinery/recharge_station, -/turf/open/floor{ - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2, /area/ice_colony/surface/excavation) "bfK" = ( /obj/structure/machinery/light, -/turf/open/floor{ - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2, /area/ice_colony/surface/excavation) "bfL" = ( -/turf/open/floor{ - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2, /area/ice_colony/surface/excavation) "bfM" = ( /obj/structure/surface/rack, /obj/item/device/flashlight, /obj/item/device/t_scanner, -/turf/open/floor{ - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2, /area/ice_colony/surface/excavation) "bfN" = ( /obj/structure/surface/rack, /obj/item/device/flashlight, /obj/item/tool/hand_labeler, -/turf/open/floor{ - dir = 6; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/southeast, /area/ice_colony/surface/excavation) "bfO" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/ice_colony/underground/requesition/storage) "bfP" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/ice_colony/underground/requesition/storage) "bfR" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -19417,41 +15156,29 @@ /obj/structure/machinery/door/airlock/almayer/generic{ name = "\improper Underground Requesitions Freezer" }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/ice_colony/underground/requesition/storage) "bfT" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/requesition) "bfV" = ( /obj/vehicle/train/cargo/trolley, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/requesition) "bfW" = ( /obj/vehicle/train/cargo/engine, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/requesition) "bfX" = ( /obj/effect/landmark/hunter_secondary, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/requesition) "bfY" = ( /obj/structure/inflatable, -/turf/open/floor/plating/icefloor{ - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate, /area/ice_colony/surface/excavation/storage) "bga" = ( /obj/structure/ice/thin/end{ @@ -19467,38 +15194,25 @@ /area/ice_colony/exterior/surface/valley/south/excavation) "bgc" = ( /obj/effect/landmark/survivor_spawner, -/turf/open/floor/icefloor{ - icon_state = "rockvault" - }, +/turf/open/floor/icefloor/rockvault, /area/ice_colony/exterior/surface/valley/south/excavation) "bge" = ( /obj/structure/bigDelivery, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/ice_colony/underground/requesition/storage) "bgf" = ( /obj/structure/closet/radiation, -/turf/open/floor{ - dir = 8; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/west, /area/ice_colony/underground/requesition) "bgh" = ( -/turf/open/floor{ - icon_state = "darkbrowncorners2" - }, +/turf/open/floor/darkbrowncorners2, /area/ice_colony/underground/requesition) "bgi" = ( -/turf/open/floor{ - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2, /area/ice_colony/underground/requesition) "bgj" = ( /obj/structure/machinery/light, -/turf/open/floor{ - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2, /area/ice_colony/underground/requesition) "bgk" = ( /obj/structure/machinery/door_control{ @@ -19506,9 +15220,7 @@ name = "Underground Hangar Lock"; pixel_y = -24 }, -/turf/open/floor{ - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2, /area/ice_colony/underground/hangar) "bgl" = ( /obj/structure/machinery/door/poddoor/two_tile/four_tile/vertical/secure{ @@ -19531,10 +15243,7 @@ /area/ice_colony/exterior/surface/valley/south/excavation) "bgs" = ( /obj/structure/closet/toolcloset, -/turf/open/floor{ - dir = 8; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/west, /area/ice_colony/underground/requesition) "bgt" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony{ @@ -19555,17 +15264,11 @@ dir = 8; health = 250 }, -/turf/open/floor{ - dir = 9; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/northwest, /area/ice_colony/underground/requesition) "bgy" = ( /obj/structure/machinery/bot/mulebot, -/turf/open/floor{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/north, /area/ice_colony/underground/requesition) "bgz" = ( /obj/structure/machinery/bot/mulebot, @@ -19573,19 +15276,14 @@ dir = 4; health = 80 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/north, /area/ice_colony/underground/requesition) "bgA" = ( /obj/structure/machinery/conveyor_switch, /obj/effect/decal/warning_stripes{ icon_state = "E-corner" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/requesition) "bgB" = ( /obj/structure/machinery/conveyor, @@ -19595,16 +15293,11 @@ /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/requesition) "bgD" = ( /obj/structure/filingcabinet, -/turf/open/floor{ - dir = 4; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/east, /area/ice_colony/underground/requesition) "bgG" = ( /obj/structure/machinery/power/apc{ @@ -19630,17 +15323,13 @@ /obj/structure/machinery/landinglight/ds2/delaythree{ dir = 4 }, -/turf/open/floor/plating/icefloor{ - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate, /area/ice_colony/underground/hangar) "bgK" = ( /obj/structure/machinery/landinglight/ds2/delayone{ dir = 8 }, -/turf/open/floor/plating/icefloor{ - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate, /area/ice_colony/underground/hangar) "bgL" = ( /obj/structure/ice/thin/corner, @@ -19650,9 +15339,7 @@ /obj/effect/decal/warning_stripes{ icon_state = "E-corner" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/requesition) "bgN" = ( /obj/structure/machinery/conveyor, @@ -19664,10 +15351,7 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/east, /area/ice_colony/underground/requesition) "bgQ" = ( /obj/structure/barricade/wooden{ @@ -19675,30 +15359,17 @@ }, /turf/open/floor/plating, /area/ice_colony/underground/maintenance/north) -"bgR" = ( -/obj/structure/machinery/door/airlock/almayer/maint/colony{ - locked = 0; - name = "\improper Underground Maintenance" - }, -/turf/open/floor/plating, -/area/ice_colony/underground/hangar) "bgS" = ( /obj/structure/machinery/landinglight/ds2{ dir = 4 }, -/turf/open/floor/plating/icefloor{ - dir = 1; - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate/north, /area/ice_colony/underground/hangar) "bgT" = ( /obj/structure/machinery/landinglight/ds2{ dir = 8 }, -/turf/open/floor/plating/icefloor{ - dir = 1; - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate/north, /area/ice_colony/underground/hangar) "bgU" = ( /obj/structure/ice/thin/corner{ @@ -19708,60 +15379,43 @@ /area/ice_colony/exterior/surface/valley/south) "bgW" = ( /obj/structure/closet/secure_closet/req_officer, -/turf/open/floor{ - dir = 8; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/west, /area/ice_colony/underground/requesition) "bgX" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/requesition) "bgY" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/structure/closet/crate, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/ice_colony/underground/requesition) "bgZ" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/requesition) "bha" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/structure/largecrate/random, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/ice_colony/underground/requesition) "bhb" = ( /obj/structure/pipes/standard/manifold/fourway/hidden/green, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/requesition) "bhc" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "darkbrowncorners2" - }, +/turf/open/floor/darkbrowncorners2, /area/ice_colony/underground/requesition) "bhd" = ( /obj/effect/decal/warning_stripes{ @@ -19770,9 +15424,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2, /area/ice_colony/underground/requesition) "bhe" = ( /obj/structure/machinery/conveyor, @@ -19788,24 +15440,17 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2, /area/ice_colony/underground/requesition) "bhg" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/requesition) "bhh" = ( /obj/structure/filingcabinet, -/turf/open/floor{ - dir = 6; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/southeast, /area/ice_colony/underground/requesition) "bhj" = ( /turf/closed/wall/r_wall, @@ -19821,10 +15466,7 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/east, /area/ice_colony/underground/requesition) "bhn" = ( /turf/closed/wall/r_wall, @@ -19840,30 +15482,20 @@ dir = 1; name = "\improper Underground Requesitions Office" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/requesition/lobby) "bht" = ( -/turf/open/floor/plating/icefloor{ - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate, /area/ice_colony/underground/hangar) "bhu" = ( -/turf/open/floor/plating/icefloor{ - dir = 6; - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate/southeast, /area/ice_colony/underground/hangar) "bhw" = ( /obj/structure/machinery/light{ dir = 8 }, /obj/structure/closet/secure_closet/req_officer, -/turf/open/floor{ - dir = 8; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/west, /area/ice_colony/underground/requesition) "bhy" = ( /obj/structure/window/framed/colony/reinforced, @@ -19882,10 +15514,7 @@ /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/north, /area/ice_colony/underground/requesition/lobby) "bhB" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -19893,9 +15522,7 @@ dir = 4; icon_state = "pipe-c" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/requesition/lobby) "bhC" = ( /obj/structure/machinery/disposal, @@ -19905,10 +15532,7 @@ /obj/structure/machinery/firealarm{ pixel_y = 24 }, -/turf/open/floor{ - dir = 5; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/northeast, /area/ice_colony/underground/requesition/lobby) "bhD" = ( /obj/structure/largecrate/random, @@ -19920,10 +15544,7 @@ pixel_x = -24; start_charge = 0 }, -/turf/open/floor/plating/icefloor{ - dir = 8; - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate/west, /area/ice_colony/underground/hangar) "bhF" = ( /obj/structure/machinery/landinglight/ds2/delaythree{ @@ -19941,19 +15562,13 @@ /obj/structure/machinery/landinglight/ds2/delayone{ dir = 1 }, -/turf/open/floor/plating/icefloor{ - dir = 4; - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate/east, /area/ice_colony/underground/hangar) "bhI" = ( /obj/structure/machinery/landinglight/ds2/delaytwo{ dir = 1 }, -/turf/open/floor/plating/icefloor{ - dir = 8; - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate/west, /area/ice_colony/underground/hangar) "bhJ" = ( /obj/structure/machinery/landinglight/ds2/delayone{ @@ -19965,62 +15580,41 @@ /obj/structure/machinery/landinglight/ds2/delaytwo{ dir = 1 }, -/turf/open/floor/plating/icefloor{ - dir = 4; - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate/east, /area/ice_colony/underground/hangar) "bhL" = ( /obj/structure/machinery/landinglight/ds2/delaythree{ dir = 1 }, -/turf/open/floor/plating/icefloor{ - dir = 8; - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate/west, /area/ice_colony/underground/hangar) "bhS" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/requesition/lobby) "bhT" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, /obj/structure/disposalpipe/segment, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/requesition/lobby) "bhV" = ( -/turf/open/floor/plating/icefloor{ - dir = 10; - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate/southwest, /area/ice_colony/underground/hangar) "bhY" = ( /obj/structure/machinery/constructable_frame, -/turf/open/floor{ - dir = 8; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/west, /area/ice_colony/underground/requesition) "bhZ" = ( /obj/structure/closet/crate/trashcart, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/ice_colony/underground/requesition) "bia" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/requesition/lobby) "bic" = ( /obj/structure/surface/rack, @@ -20045,18 +15639,13 @@ /obj/structure/machinery/constructable_frame{ icon_state = "box_1" }, -/turf/open/floor{ - dir = 10; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/southwest, /area/ice_colony/underground/requesition) "bik" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/requesition) "bim" = ( /obj/structure/machinery/door_control{ @@ -20067,45 +15656,30 @@ req_access_txt = "100"; specialfunctions = 4 }, -/turf/open/floor{ - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2, /area/ice_colony/underground/requesition) "biq" = ( /obj/structure/machinery/conveyor_switch, /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor{ - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2, /area/ice_colony/underground/requesition/lobby) "bir" = ( /obj/structure/bed/chair/office/dark, /obj/structure/disposalpipe/segment, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/requesition/lobby) "bis" = ( /obj/structure/machinery/autolathe, -/turf/open/floor{ - dir = 6; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/southeast, /area/ice_colony/underground/requesition/lobby) "biu" = ( /obj/structure/machinery/computer3/powermonitor, /turf/open/floor/plating/icefloor, /area/ice_colony/underground/hangar) "biv" = ( -/turf/open/floor{ - icon_state = "bcircuit" - }, -/area/ice_colony/underground/hangar) -"biw" = ( -/obj/structure/machinery/power/geothermal, -/turf/open/floor/plating/icefloor, +/turf/open/floor/bcircuit, /area/ice_colony/underground/hangar) "bix" = ( /obj/structure/closet/secure_closet/engineering_welding, @@ -20119,9 +15693,7 @@ id = "req_sec_storage"; name = "\improper Requesitions Storage Shutters" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/requesition/sec_storage) "biB" = ( /obj/structure/window/framed/colony/reinforced, @@ -20132,9 +15704,7 @@ /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper Underground Requesitions Bay" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/requesition) "biD" = ( /obj/structure/machinery/requests_console{ @@ -20164,9 +15734,7 @@ pixel_x = 32 }, /obj/structure/disposalpipe/segment, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/requesition/lobby) "biF" = ( /obj/structure/machinery/light/small{ @@ -20213,24 +15781,16 @@ /turf/open/floor/wood, /area/ice_colony/underground/command/pv1) "biQ" = ( -/turf/open/floor{ - dir = 9; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/northwest, /area/ice_colony/underground/requesition/sec_storage) "biR" = ( -/turf/open/floor{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/north, /area/ice_colony/underground/requesition/sec_storage) "biS" = ( /obj/effect/decal/warning_stripes{ icon_state = "N" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/requesition/sec_storage) "biU" = ( /obj/structure/machinery/door_control{ @@ -20241,10 +15801,7 @@ req_access_txt = "100"; specialfunctions = 4 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/north, /area/ice_colony/underground/requesition/sec_storage) "biV" = ( /obj/structure/machinery/alarm{ @@ -20254,53 +15811,36 @@ /obj/structure/machinery/firealarm{ pixel_y = 24 }, -/turf/open/floor{ - dir = 5; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/northeast, /area/ice_colony/underground/requesition/sec_storage) "biW" = ( /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor{ - dir = 9; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/northwest, /area/ice_colony/underground/requesition/lobby) "biX" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/requesition/lobby) "biZ" = ( /obj/effect/decal/warning_stripes{ icon_state = "E-corner" }, -/turf/open/floor{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/north, /area/ice_colony/underground/requesition/lobby) "bja" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/north, /area/ice_colony/underground/requesition/lobby) "bjb" = ( /obj/structure/machinery/alarm{ dir = 8; pixel_x = 24 }, -/turf/open/floor{ - dir = 5; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/northeast, /area/ice_colony/underground/requesition/lobby) "bjd" = ( /obj/structure/machinery/power/terminal{ @@ -20326,37 +15866,23 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/west, /area/ice_colony/underground/requesition/sec_storage) "bjl" = ( /obj/structure/closet/crate/secure, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/ice_colony/underground/requesition/sec_storage) "bjm" = ( -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/requesition/sec_storage) "bjn" = ( -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/ice_colony/underground/requesition/sec_storage) "bjp" = ( /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/east, /area/ice_colony/underground/requesition/sec_storage) "bjq" = ( /obj/structure/bed/chair{ @@ -20366,32 +15892,22 @@ dir = 8; pixel_x = -24 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/west, /area/ice_colony/underground/requesition/lobby) "bjs" = ( /obj/effect/decal/warning_stripes{ icon_state = "E-corner" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/requesition/lobby) "bjt" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/requesition/lobby) "bjw" = ( -/turf/open/floor{ - dir = 4; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/east, /area/ice_colony/underground/requesition/lobby) "bjx" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony{ @@ -20399,36 +15915,18 @@ }, /turf/open/floor/plating, /area/ice_colony/underground/requesition/lobby) -"bjz" = ( -/obj/structure/machinery/door/airlock/almayer/maint/colony{ - dir = 1; - locked = 0; - name = "\improper Underground Maintenance"; - req_access_txt = "100" - }, -/turf/open/floor/plating, -/area/ice_colony/underground/hangar) "bjA" = ( /turf/closed/wall/r_wall/unmeltable, /area/ice_colony/underground/maintenance/north) "bjB" = ( -/turf/open/floor{ - dir = 8; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/west, /area/ice_colony/underground/requesition/sec_storage) "bjC" = ( /obj/structure/largecrate/random, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/ice_colony/underground/requesition/sec_storage) "bjD" = ( -/turf/open/floor{ - dir = 4; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/east, /area/ice_colony/underground/requesition/sec_storage) "bjE" = ( /obj/structure/bed/chair{ @@ -20437,31 +15935,21 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/west, /area/ice_colony/underground/requesition/lobby) "bjF" = ( -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/requesition/lobby) "bjG" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/requesition/lobby) "bjH" = ( /obj/structure/machinery/light{ dir = 4 }, /obj/structure/machinery/vending/coffee, -/turf/open/floor{ - dir = 4; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/east, /area/ice_colony/underground/requesition/lobby) "bjK" = ( /obj/structure/machinery/light/small{ @@ -20474,26 +15962,19 @@ /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/west, /area/ice_colony/underground/requesition/lobby) "bjN" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/requesition/lobby) "bjP" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/requesition/lobby) "bjQ" = ( /obj/structure/pipes/standard/manifold/hidden/green{ @@ -20503,34 +15984,25 @@ dir = 4; icon_state = "pipe-c" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/requesition/lobby) "bjR" = ( /obj/structure/disposalpipe/junction{ dir = 8; icon_state = "pipe-j2" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/requesition/lobby) "bjS" = ( /obj/structure/disposalpipe/segment{ dir = 8; icon_state = "pipe-c" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/requesition/lobby) "bjT" = ( /obj/structure/machinery/vending/snack, -/turf/open/floor{ - dir = 4; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/east, /area/ice_colony/underground/requesition/lobby) "bjU" = ( /obj/structure/machinery/door/poddoor/two_tile/four_tile/secure{ @@ -20553,48 +16025,35 @@ /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor{ - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2, /area/ice_colony/underground/requesition/lobby) "bjZ" = ( -/turf/open/floor{ - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2, /area/ice_colony/underground/requesition/lobby) "bka" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/disposalpipe/segment, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/requesition/lobby) "bkb" = ( /obj/structure/disposalpipe/segment{ dir = 1; icon_state = "pipe-c" }, -/turf/open/floor{ - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2, /area/ice_colony/underground/requesition/lobby) "bkc" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor{ - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2, /area/ice_colony/underground/requesition/lobby) "bkd" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk{ dir = 8 }, -/turf/open/floor{ - dir = 6; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/southeast, /area/ice_colony/underground/requesition/lobby) "bke" = ( /obj/structure/machinery/light/small{ @@ -20617,16 +16076,10 @@ name = "Underground Hangar Lock"; pixel_x = -24 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/west, /area/ice_colony/underground/hangar) "bki" = ( -/turf/open/floor{ - dir = 4; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/east, /area/ice_colony/underground/hangar) "bkj" = ( /obj/structure/flora/pottedplant, @@ -20644,9 +16097,7 @@ /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper Underground Requesitions Lobby" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/requesition/lobby) "bko" = ( /obj/structure/machinery/light/small, @@ -20659,24 +16110,16 @@ /turf/open/floor/plating, /area/ice_colony/underground/hallway/north_west) "bkq" = ( -/turf/open/floor{ - dir = 8; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/west, /area/ice_colony/underground/hallway/north_west) "bkr" = ( -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/hallway/north_west) "bks" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/east, /area/ice_colony/underground/hallway/north_west) "bkt" = ( /turf/closed/wall/r_wall, @@ -20689,51 +16132,33 @@ /turf/open/floor/plating, /area/ice_colony/underground/maintenance/north) "bkv" = ( -/turf/open/floor{ - dir = 10; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/southwest, /area/ice_colony/underground/requesition/sec_storage) "bkw" = ( -/turf/open/floor{ - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2, /area/ice_colony/underground/requesition/sec_storage) "bkx" = ( /obj/structure/machinery/power/apc{ pixel_y = -24; start_charge = 0 }, -/turf/open/floor{ - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2, /area/ice_colony/underground/requesition/sec_storage) "bky" = ( -/turf/open/floor{ - dir = 6; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/southeast, /area/ice_colony/underground/requesition/sec_storage) "bkz" = ( /obj/structure/flora/pottedplant, -/turf/open/floor{ - dir = 9; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/northwest, /area/ice_colony/underground/hallway/north_west) "bkA" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/disposalpipe/segment, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/hallway/north_west) "bkB" = ( /obj/structure/flora/pottedplant, -/turf/open/floor{ - dir = 5; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/northeast, /area/ice_colony/underground/hallway/north_west) "bkC" = ( /turf/closed/wall/r_wall, @@ -20756,10 +16181,7 @@ /turf/open/floor/plating, /area/ice_colony/underground/crew/morgue) "bkG" = ( -/turf/open/floor{ - dir = 4; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/east, /area/ice_colony/underground/hallway/north_west) "bkH" = ( /obj/structure/barricade/wooden{ @@ -20781,22 +16203,13 @@ /turf/open/floor/plating, /area/ice_colony/underground/requesition/sec_storage) "bkM" = ( -/turf/open/floor{ - dir = 1; - icon_state = "darkbrowncorners2" - }, +/turf/open/floor/darkbrowncorners2/north, /area/ice_colony/underground/hallway/north_west) "bkN" = ( -/turf/open/floor{ - dir = 4; - icon_state = "darkgreencorners2" - }, +/turf/open/floor/darkgreencorners2/east, /area/ice_colony/underground/hallway/north_west) "bkO" = ( -/turf/open/floor{ - dir = 5; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/northeast, /area/ice_colony/underground/hallway/north_west) "bkP" = ( /obj/structure/window/framed/colony/reinforced, @@ -20804,71 +16217,51 @@ /area/ice_colony/underground/crew/chapel) "bkQ" = ( /obj/structure/flora/pottedplant, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/ice_colony/underground/crew/chapel) "bkR" = ( -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/ice_colony/underground/crew/chapel) "bkS" = ( /obj/structure/morgue, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/crew/morgue) "bkT" = ( -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/crew/morgue) "bkU" = ( /obj/structure/bed/roller, /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/crew/morgue) "bkV" = ( /obj/structure/machinery/light/small{ dir = 1 }, /obj/structure/machinery/recharge_station, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/crew/morgue) "bkW" = ( /turf/closed/wall/r_wall/unmeltable, /area/ice_colony/underground/hallway/north_west) "bkX" = ( /obj/structure/bookcase, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/ice_colony/underground/crew/library) "bkY" = ( /obj/structure/bookcase/manuals/medical, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/ice_colony/underground/crew/library) "bkZ" = ( -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/ice_colony/underground/crew/library) "bla" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/ice_colony/underground/crew/library) "blc" = ( /turf/open/floor/plating, @@ -20891,31 +16284,19 @@ /turf/open/floor/plating, /area/ice_colony/underground/maintenance/research) "blg" = ( -/turf/open/floor{ - dir = 8; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/west, /area/ice_colony/underground/hallway/north_west) "bll" = ( -/turf/open/floor{ - dir = 1; - icon_state = "chapel" - }, +/turf/open/floor/chapel/north, /area/ice_colony/underground/crew/chapel) "blm" = ( /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor{ - dir = 4; - icon_state = "chapel" - }, +/turf/open/floor/chapel/east, /area/ice_colony/underground/crew/chapel) "bln" = ( -/turf/open/floor{ - dir = 4; - icon_state = "chapel" - }, +/turf/open/floor/chapel/east, /area/ice_colony/underground/crew/chapel) "blo" = ( /turf/open/gm/empty, @@ -20924,15 +16305,11 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/ice_colony/underground/crew/library) "blq" = ( /obj/structure/bed/chair/wood/normal, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/ice_colony/underground/crew/library) "blr" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -20953,53 +16330,38 @@ /obj/structure/machinery/door/airlock/almayer/maint/colony{ name = "\improper Underground Maintenance" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/hallway/north_west) "blu" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/hallway/north_west) "blv" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/hallway/north_west) "blx" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/ice_colony/underground/crew/chapel) "bly" = ( -/turf/open/floor{ - dir = 8; - icon_state = "chapel" - }, +/turf/open/floor/chapel/west, /area/ice_colony/underground/crew/chapel) "blz" = ( /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor{ - icon_state = "chapel" - }, +/turf/open/floor/chapel, /area/ice_colony/underground/crew/chapel) "blA" = ( -/turf/open/floor{ - icon_state = "chapel" - }, +/turf/open/floor/chapel, /area/ice_colony/underground/crew/chapel) "blB" = ( /obj/structure/surface/table/woodentable, @@ -21014,63 +16376,47 @@ /area/ice_colony/underground/crew/chapel) "blD" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/crew/morgue) "blE" = ( /obj/structure/machinery/alarm{ dir = 8; pixel_x = 24 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/crew/morgue) "blF" = ( /obj/structure/bookcase/manuals/research_and_development, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/ice_colony/underground/crew/library) "blG" = ( /obj/structure/bed/chair/wood/normal{ dir = 4 }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/ice_colony/underground/crew/library) "blH" = ( /obj/structure/surface/table/woodentable, /obj/item/book/manual/engineering_hacking, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/ice_colony/underground/crew/library) "blI" = ( /obj/structure/surface/table/woodentable, /obj/item/device/flashlight/lamp, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/ice_colony/underground/crew/library) "blJ" = ( /obj/structure/bed/chair/wood/normal{ dir = 8 }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/ice_colony/underground/crew/library) "blK" = ( /obj/structure/machinery/alarm{ dir = 8; pixel_x = 24 }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/ice_colony/underground/crew/library) "blL" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -21081,26 +16427,19 @@ /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/hallway/north_west) "blO" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/ice_colony/underground/crew/chapel) "blP" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - dir = 1; - icon_state = "chapel" - }, +/turf/open/floor/chapel/north, /area/ice_colony/underground/crew/chapel) "blQ" = ( /obj/structure/bed/chair{ @@ -21109,28 +16448,19 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - dir = 4; - icon_state = "chapel" - }, +/turf/open/floor/chapel/east, /area/ice_colony/underground/crew/chapel) "blR" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor{ - dir = 1; - icon_state = "chapel" - }, +/turf/open/floor/chapel/north, /area/ice_colony/underground/crew/chapel) "blS" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor{ - dir = 1; - icon_state = "chapel" - }, +/turf/open/floor/chapel/north, /area/ice_colony/underground/crew/chapel) "blT" = ( /obj/structure/surface/table/woodentable, @@ -21151,48 +16481,36 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/crew/morgue) "blW" = ( /obj/item/bodybag, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/crew/morgue) "blX" = ( /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/crew/morgue) "blY" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/ice_colony/underground/crew/library) "blZ" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/ice_colony/underground/crew/library) "bma" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/ice_colony/underground/crew/library) "bmb" = ( /obj/structure/bed/chair/wood/normal{ @@ -21201,9 +16519,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/ice_colony/underground/crew/library) "bmc" = ( /obj/structure/surface/table/woodentable, @@ -21211,18 +16527,14 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/ice_colony/underground/crew/library) "bmd" = ( /obj/structure/surface/table/woodentable, /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/ice_colony/underground/crew/library) "bme" = ( /obj/structure/bed/chair/wood/normal{ @@ -21231,17 +16543,13 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/ice_colony/underground/crew/library) "bmf" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/ice_colony/underground/crew/library) "bmg" = ( /turf/closed/wall/r_wall, @@ -21280,40 +16588,28 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/west, /area/ice_colony/underground/hallway/north_west) "bmo" = ( /obj/effect/landmark/hunter_secondary, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/hallway/north_west) "bmp" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/hallway/north_west) "bmr" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ dir = 1; name = "\improper Underground Chapel" }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/ice_colony/underground/crew/chapel) "bmv" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 8; - icon_state = "chapel" - }, +/turf/open/floor/chapel/west, /area/ice_colony/underground/crew/chapel) "bmx" = ( /obj/structure/surface/table/woodentable, @@ -21330,9 +16626,7 @@ /area/ice_colony/underground/crew/chapel) "bmz" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/crew/morgue) "bmD" = ( /obj/structure/machinery/power/apc{ @@ -21340,30 +16634,21 @@ pixel_x = 24; start_charge = 0 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/crew/morgue) "bmE" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/west, /area/ice_colony/underground/hallway/north_west) "bmF" = ( /obj/structure/bookcase/manuals/engineering, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/ice_colony/underground/crew/library) "bmG" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/ice_colony/underground/crew/library) "bmK" = ( /obj/structure/machinery/power/apc{ @@ -21371,9 +16656,7 @@ pixel_x = 24; start_charge = 0 }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/ice_colony/underground/crew/library) "bmL" = ( /obj/structure/machinery/firealarm{ @@ -21384,10 +16667,7 @@ icon_state = "ladderup"; id = "engineering_ladder" }, -/turf/open/floor{ - dir = 9; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/northwest, /area/ice_colony/underground/engineering/locker) "bmM" = ( /obj/structure/machinery/alarm{ @@ -21398,34 +16678,22 @@ icon_state = "ladderup"; id = "engineering_ladder1" }, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/ice_colony/underground/engineering/locker) "bmN" = ( /obj/structure/closet/secure_closet/engineering_personal, /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/ice_colony/underground/engineering/locker) "bmO" = ( /obj/structure/closet/secure_closet/engineering_personal, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/ice_colony/underground/engineering/locker) "bmP" = ( /obj/structure/closet/secure_closet/engineering_personal, -/turf/open/floor{ - dir = 5; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/northeast, /area/ice_colony/underground/engineering/locker) "bmQ" = ( /turf/closed/ice/straight{ @@ -21451,16 +16719,11 @@ dir = 8; pixel_x = -24 }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/ice_colony/underground/crew/chapel) "bmX" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 1; - icon_state = "chapel" - }, +/turf/open/floor/chapel/north, /area/ice_colony/underground/crew/chapel) "bmY" = ( /turf/open/floor/carpet, @@ -21471,60 +16734,40 @@ pixel_x = -24 }, /obj/structure/curtain/black, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/crew/morgue) "bna" = ( /obj/structure/curtain/black, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/crew/morgue) "bnb" = ( /obj/structure/curtain/black, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/crew/morgue) "bnd" = ( /obj/structure/curtain/open/black, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/crew/morgue) "bnf" = ( /obj/structure/surface/table/woodentable, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/ice_colony/underground/crew/library) "bng" = ( /obj/structure/surface/rack, /obj/item/storage/toolbox/electrical, /obj/item/storage/toolbox/electrical, -/turf/open/floor{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/west, /area/ice_colony/underground/engineering/locker) "bnh" = ( -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/engineering/locker) "bni" = ( /obj/structure/pipes/vents/pump/on, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/engineering/locker) "bnj" = ( -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/ice_colony/underground/engineering/locker) "bnk" = ( /turf/closed/wall/r_wall, @@ -21550,10 +16793,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor{ - dir = 8; - icon_state = "chapel" - }, +/turf/open/floor/chapel/west, /area/ice_colony/underground/crew/chapel) "bnq" = ( /obj/structure/bed/chair{ @@ -21562,26 +16802,19 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "chapel" - }, +/turf/open/floor/chapel, /area/ice_colony/underground/crew/chapel) "bnr" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - dir = 8; - icon_state = "chapel" - }, +/turf/open/floor/chapel/west, /area/ice_colony/underground/crew/chapel) "bns" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "chapel" - }, +/turf/open/floor/chapel, /area/ice_colony/underground/crew/chapel) "bnt" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -21590,52 +16823,36 @@ /obj/structure/machinery/door/airlock/almayer/secure/colony{ name = "Underground Morgue" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/crew/morgue) "bnu" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/crew/morgue) "bnv" = ( /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/crew/morgue) "bnw" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/crew/morgue) "bnx" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/crew/morgue) "bny" = ( /obj/structure/machinery/door/airlock/multi_tile/elevator/access/dormatory, -/turf/open/floor{ - dir = 9; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/northwest, /area/ice_colony/underground/hallway/north_west) "bnz" = ( -/turf/open/floor{ - dir = 1; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/north, /area/ice_colony/underground/hallway/north_west) "bnA" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony{ @@ -21648,25 +16865,18 @@ /obj/structure/bed/chair/wood/normal{ dir = 1 }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/ice_colony/underground/crew/library) "bnC" = ( /obj/structure/surface/rack, /obj/item/storage/toolbox/mechanical, /obj/item/storage/toolbox/mechanical, /obj/effect/landmark/crap_item, -/turf/open/floor{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/west, /area/ice_colony/underground/engineering/locker) "bnD" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/engineering/locker) "bnF" = ( /obj/structure/machinery/power/apc{ @@ -21674,85 +16884,55 @@ pixel_x = 24; start_charge = 0 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/ice_colony/underground/engineering/locker) "bnG" = ( /obj/structure/machinery/portable_atmospherics/canister/air, -/turf/open/floor{ - dir = 9; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/northwest, /area/ice_colony/underground/engineering) "bnH" = ( /obj/structure/machinery/portable_atmospherics/canister/air, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/ice_colony/underground/engineering) "bnI" = ( /obj/structure/machinery/computer3/powermonitor, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/ice_colony/underground/engineering) "bnJ" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/ice_colony/underground/engineering) "bnK" = ( /obj/structure/machinery/firealarm{ pixel_y = 24 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/ice_colony/underground/engineering) "bnL" = ( -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/ice_colony/underground/engineering) "bnM" = ( /obj/structure/machinery/alarm{ pixel_y = 24 }, /obj/structure/machinery/power/port_gen/pacman, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/ice_colony/underground/engineering) "bnN" = ( /obj/structure/surface/table/woodentable{ icon_state = "reinf_table" }, /obj/item/frame/light_fixture, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/ice_colony/underground/engineering) "bnO" = ( /obj/structure/surface/table/woodentable{ icon_state = "reinf_table" }, /obj/item/storage/box/lightstick, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/ice_colony/underground/engineering) "bnP" = ( /obj/structure/surface/table/woodentable{ @@ -21761,10 +16941,7 @@ /obj/item/inflatable, /obj/item/inflatable/door, /obj/item/storage/box/engineer, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/ice_colony/underground/engineering) "bnQ" = ( /obj/structure/surface/table/woodentable{ @@ -21773,24 +16950,15 @@ /obj/item/stack/cable_coil/blue, /obj/item/stack/rods, /obj/item/storage/donut_box, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/ice_colony/underground/engineering) "bnR" = ( /obj/structure/machinery/constructable_frame, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/ice_colony/underground/engineering) "bnS" = ( /obj/structure/janitorialcart, -/turf/open/floor{ - dir = 5; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/northeast, /area/ice_colony/underground/engineering) "bnT" = ( /turf/closed/ice/straight, @@ -21812,23 +16980,16 @@ /area/ice_colony/underground/maintenance/research) "bnX" = ( /obj/effect/landmark/hunter_primary, -/turf/open/floor{ - dir = 8; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/west, /area/ice_colony/underground/hallway/north_west) "bnY" = ( /obj/structure/closet/wardrobe/chaplain_black, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/ice_colony/underground/crew/chapel) "bnZ" = ( /obj/structure/surface/table, /obj/item/storage/box/bodybags, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/crew/morgue) "boa" = ( /obj/structure/surface/table/woodentable, @@ -21842,9 +17003,7 @@ /obj/structure/surface/table, /obj/item/reagent_container/food/drinks/bottle/holywater, /obj/structure/machinery/light, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/crew/morgue) "boc" = ( /obj/structure/surface/table/woodentable, @@ -21858,15 +17017,11 @@ "boe" = ( /obj/structure/closet/coffin, /obj/structure/machinery/light, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/crew/morgue) "bof" = ( /obj/structure/closet/coffin, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/crew/morgue) "bog" = ( /obj/structure/closet/coffin, @@ -21874,32 +17029,22 @@ dir = 4; health = 80 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/crew/morgue) "boh" = ( /obj/effect/landmark/hunter_primary, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/hallway/north_west) "boi" = ( /obj/structure/machinery/light{ dir = 1 }, /obj/structure/machinery/vending/snack, -/turf/open/floor{ - dir = 1; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/north, /area/ice_colony/underground/hallway/north_west) "boj" = ( /obj/structure/machinery/vending/coffee, -/turf/open/floor{ - dir = 1; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/north, /area/ice_colony/underground/hallway/north_west) "bok" = ( /obj/structure/machinery/disposal, @@ -21907,67 +17052,45 @@ /obj/structure/machinery/alarm{ pixel_y = 24 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/north, /area/ice_colony/underground/hallway/north_west) "bol" = ( -/turf/open/floor{ - dir = 1; - icon_state = "darkgreencorners2" - }, +/turf/open/floor/darkgreencorners2/north, /area/ice_colony/underground/hallway/north_west) "bom" = ( /obj/structure/machinery/computer/shuttle_control/ice_colony/elevator2{ pixel_y = 32 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/north, /area/ice_colony/underground/hallway/north_west) "bon" = ( /obj/structure/machinery/light{ dir = 1 }, /obj/structure/machinery/vending/cola, -/turf/open/floor{ - dir = 1; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/north, /area/ice_colony/underground/hallway/north_west) "boo" = ( /obj/structure/machinery/vending/cigarette/colony, -/turf/open/floor{ - dir = 1; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/north, /area/ice_colony/underground/hallway/north_west) "bop" = ( /obj/structure/flora/pottedplant, /obj/structure/machinery/firealarm{ pixel_y = 24 }, -/turf/open/floor{ - dir = 5; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/northeast, /area/ice_colony/underground/hallway/north_west) "boq" = ( /obj/structure/machinery/firealarm{ dir = 1; pixel_y = -24 }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/ice_colony/underground/crew/library) "bor" = ( /obj/structure/machinery/light, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/ice_colony/underground/crew/library) "bos" = ( /obj/structure/barricade/wooden{ @@ -21979,41 +17102,27 @@ "bot" = ( /obj/structure/closet/radiation, /obj/effect/landmark/crap_item, -/turf/open/floor{ - dir = 10; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/southwest, /area/ice_colony/underground/engineering/locker) "bou" = ( -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/ice_colony/underground/engineering/locker) "bow" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony{ name = "\improper Underground Engineering Locker Room" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/engineering/locker) "box" = ( -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/engineering) "boz" = ( /obj/structure/pipes/vents/pump/on, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/engineering) "boA" = ( /obj/structure/machinery/floodlight, -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/ice_colony/underground/engineering) "boB" = ( /obj/structure/ice/thin/end, @@ -22033,22 +17142,15 @@ dir = 2; name = "Underground Morgue" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/crew/morgue) "boF" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/hallway/north_west) "boG" = ( /obj/structure/surface/table, -/turf/open/floor{ - dir = 4; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/east, /area/ice_colony/underground/hallway/north_west) "boH" = ( /obj/structure/window/framed/colony/reinforced, @@ -22060,9 +17162,7 @@ dir = 1; name = "\improper Underground Library" }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/ice_colony/underground/crew/library) "boJ" = ( /turf/closed/wall/r_wall, @@ -22084,28 +17184,19 @@ dir = 1; name = "\improper Underground Engineering Locker Room" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/engineering/locker) "boO" = ( -/turf/open/floor{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/west, /area/ice_colony/underground/engineering) "boP" = ( /obj/effect/landmark/hunter_primary, /obj/effect/landmark/queen_spawn, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/engineering) "boQ" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/engineering) "boR" = ( /obj/effect/landmark/monkey_spawn, @@ -22128,28 +17219,19 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/north, /area/ice_colony/underground/hallway/north_west) "boW" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/north, /area/ice_colony/underground/hallway/north_west) "boX" = ( /obj/structure/closet/hydrant{ pixel_y = 32 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/north, /area/ice_colony/underground/hallway/north_west) "bpa" = ( /obj/structure/window/framed/colony/reinforced, @@ -22157,16 +17239,10 @@ /area/ice_colony/underground/hallway/north_west) "bpb" = ( /obj/structure/flora/pottedplant, -/turf/open/floor{ - dir = 9; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/northwest, /area/ice_colony/underground/hallway/south_east) "bpc" = ( -/turf/open/floor{ - dir = 1; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/north, /area/ice_colony/underground/hallway/south_east) "bpe" = ( /obj/structure/closet/hydrant{ @@ -22175,82 +17251,54 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/north, /area/ice_colony/underground/hallway/south_east) "bpf" = ( /obj/structure/closet/emcloset, -/turf/open/floor{ - dir = 1; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/north, /area/ice_colony/underground/hallway/south_east) "bpg" = ( /obj/structure/closet/emcloset, -/turf/open/floor{ - dir = 5; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/northeast, /area/ice_colony/underground/hallway/south_east) "bpi" = ( /obj/structure/machinery/light{ dir = 1 }, /obj/structure/flora/pottedplant, -/turf/open/floor{ - dir = 9; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/northwest, /area/ice_colony/underground/engineering) "bpk" = ( /obj/structure/machinery/light{ dir = 1 }, /obj/structure/flora/pottedplant, -/turf/open/floor{ - dir = 5; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/northeast, /area/ice_colony/underground/engineering) "bpl" = ( /obj/structure/window/framed/colony/reinforced, /turf/open/floor/plating, /area/ice_colony/underground/engineering) "bpm" = ( -/turf/open/floor{ - dir = 9; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/northwest, /area/ice_colony/underground/engineering) "bpn" = ( /obj/structure/bed/chair, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/engineering) "bpo" = ( /obj/structure/bed/chair, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/ice_colony/underground/engineering) "bpp" = ( -/turf/open/floor{ - dir = 5; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/northeast, /area/ice_colony/underground/engineering) "bpq" = ( /obj/structure/disposalpipe/segment{ dir = 4; icon_state = "pipe-c" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/hallway/north_west) "bpr" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -22258,61 +17306,42 @@ dir = 8; icon_state = "pipe-c" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/hallway/north_west) "bpt" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/hallway/north_west) "bpu" = ( -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/hallway/south_east) "bpv" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/hallway/south_east) "bpw" = ( /obj/effect/landmark/hunter_primary, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/hallway/south_east) "bpx" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/engineering) "bpy" = ( /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/engineering) "bpA" = ( /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/engineering) "bpB" = ( /obj/structure/closet/emcloset, -/turf/open/floor{ - dir = 8; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/west, /area/ice_colony/underground/hallway/north_west) "bpC" = ( /obj/structure/disposalpipe/segment{ @@ -22322,9 +17351,7 @@ /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/hallway/north_west) "bpD" = ( /obj/structure/disposalpipe/segment{ @@ -22333,9 +17360,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/hallway/north_west) "bpG" = ( /obj/structure/disposalpipe/segment{ @@ -22344,9 +17369,7 @@ /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/hallway/north_west) "bpH" = ( /obj/structure/disposalpipe/junction{ @@ -22356,18 +17379,14 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/hallway/north_west) "bpI" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/hallway/north_west) "bpL" = ( /obj/structure/disposalpipe/segment{ @@ -22380,9 +17399,7 @@ dir = 1; name = "\improper Underground Main Hallway" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/hallway/north_west) "bpM" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -22391,9 +17408,7 @@ /obj/structure/disposalpipe/junction{ dir = 8 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/hallway/north_west) "bpT" = ( /obj/structure/disposalpipe/junction{ @@ -22403,9 +17418,7 @@ /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/hallway/south_east) "bpV" = ( /obj/structure/disposalpipe/segment{ @@ -22418,27 +17431,21 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/engineering) "bpX" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, /obj/structure/pipes/standard/manifold/fourway/hidden/green, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/engineering) "bpY" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/engineering) "bpZ" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -22451,9 +17458,7 @@ dir = 1; name = "\improper Underground Power Substation" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/engineering) "bqb" = ( /obj/structure/disposalpipe/segment{ @@ -22462,9 +17467,7 @@ /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/engineering) "bqd" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -22476,9 +17479,7 @@ /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/engineering) "bqe" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -22488,9 +17489,7 @@ dir = 4 }, /obj/structure/surface/table, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/engineering) "bqf" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -22502,9 +17501,7 @@ /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/engineering) "bqg" = ( /obj/structure/pipes/standard/manifold/hidden/green{ @@ -22513,9 +17510,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/engineering) "bqh" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -22524,9 +17519,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/engineering) "bqi" = ( /obj/structure/pipes/standard/manifold/hidden/green{ @@ -22536,16 +17529,11 @@ dir = 2; icon_state = "pipe-c" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/engineering) "bqj" = ( /obj/structure/closet/emcloset, -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/ice_colony/underground/engineering) "bqk" = ( /turf/closed/ice/junction{ @@ -22554,153 +17542,97 @@ /area/ice_colony/exterior/underground/caves) "bql" = ( /obj/structure/closet/emcloset, -/turf/open/floor{ - dir = 10; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/southwest, /area/ice_colony/underground/hallway/north_west) "bqm" = ( -/turf/open/floor{ - dir = 8; - icon_state = "darkbrowncorners2" - }, +/turf/open/floor/darkbrowncorners2/west, /area/ice_colony/underground/hallway/north_west) "bqn" = ( /obj/structure/disposalpipe/segment{ dir = 1; icon_state = "pipe-c" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/hallway/north_west) "bqo" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/disposalpipe/junction, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/hallway/north_west) "bqp" = ( -/turf/open/floor{ - icon_state = "darkgreencorners2" - }, +/turf/open/floor/darkgreencorners2, /area/ice_colony/underground/hallway/north_west) "bqq" = ( -/turf/open/floor{ - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2, /area/ice_colony/underground/hallway/north_west) "bqr" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/hallway/north_west) "bqt" = ( /obj/structure/machinery/light, -/turf/open/floor{ - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2, /area/ice_colony/underground/hallway/north_west) "bqu" = ( -/turf/open/floor{ - dir = 8; - icon_state = "darkgreencorners2" - }, +/turf/open/floor/darkgreencorners2/west, /area/ice_colony/underground/hallway/north_west) "bqw" = ( /obj/structure/machinery/light, /obj/structure/flora/pottedplant, -/turf/open/floor{ - dir = 10; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/southwest, /area/ice_colony/underground/hallway/south_east) "bqx" = ( -/turf/open/floor{ - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2, /area/ice_colony/underground/hallway/south_east) "bqz" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2, /area/ice_colony/underground/hallway/south_east) "bqA" = ( /obj/structure/machinery/light, -/turf/open/floor{ - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2, /area/ice_colony/underground/hallway/south_east) "bqB" = ( -/turf/open/floor{ - dir = 8; - icon_state = "darkgreencorners2" - }, +/turf/open/floor/darkgreencorners2/west, /area/ice_colony/underground/hallway/south_east) "bqC" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/disposalpipe/segment, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/hallway/south_east) "bqD" = ( -/turf/open/floor{ - dir = 4; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/east, /area/ice_colony/underground/hallway/south_east) "bqE" = ( /obj/structure/machinery/light, /obj/structure/flora/pottedplant, -/turf/open/floor{ - dir = 10; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/southwest, /area/ice_colony/underground/engineering) "bqF" = ( -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/ice_colony/underground/engineering) "bqG" = ( /obj/structure/machinery/light, /obj/structure/flora/pottedplant, -/turf/open/floor{ - dir = 6; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/southeast, /area/ice_colony/underground/engineering) "bqI" = ( -/turf/open/floor{ - dir = 10; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/southwest, /area/ice_colony/underground/engineering) "bqJ" = ( /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/engineering) "bqK" = ( /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/ice_colony/underground/engineering) "bqL" = ( -/turf/open/floor{ - dir = 6; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/southeast, /area/ice_colony/underground/engineering) "bqM" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -22708,27 +17640,20 @@ dir = 1; icon_state = "pipe-c" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/engineering) "bqN" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/engineering) "bqO" = ( /obj/structure/disposalpipe/trunk{ dir = 8 }, /obj/structure/machinery/disposal, -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/ice_colony/underground/engineering) "bqP" = ( /turf/closed/wall/r_wall, @@ -22762,15 +17687,11 @@ name = "\improper Underground Medical Laboratory"; req_access_txt = "100" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/medical/lobby) "bqW" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/medical/lobby) "bqX" = ( /turf/closed/wall/r_wall, @@ -22784,48 +17705,35 @@ /area/ice_colony/underground/medical/treatment) "bra" = ( /obj/structure/closet/emcloset, -/turf/open/floor{ - dir = 10; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/southwest, /area/ice_colony/underground/hallway/north_west) "brb" = ( /obj/structure/closet/emcloset, -/turf/open/floor{ - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2, /area/ice_colony/underground/hallway/north_west) "brc" = ( /obj/structure/surface/table, -/turf/open/floor{ - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2, /area/ice_colony/underground/hallway/north_west) "brd" = ( /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor{ - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2, /area/ice_colony/underground/hallway/north_west) "bre" = ( /obj/structure/machinery/light, /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor{ - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2, /area/ice_colony/underground/hallway/north_west) "brf" = ( /obj/structure/machinery/light, /obj/structure/noticeboard{ pixel_y = -32 }, -/turf/open/floor{ - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2, /area/ice_colony/underground/hallway/north_west) "brh" = ( /turf/closed/wall/r_wall, @@ -22835,9 +17743,7 @@ /turf/open/floor/plating, /area/ice_colony/underground/crew/bball) "brk" = ( -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/crew/bball) "brl" = ( /obj/structure/window/framed/colony/reinforced, @@ -22848,15 +17754,10 @@ /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper Underground Sports Center" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/crew/bball) "brn" = ( -/turf/open/floor{ - dir = 8; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/west, /area/ice_colony/underground/hallway/south_east) "bro" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -22872,26 +17773,19 @@ pixel_x = -24; start_charge = 0 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/west, /area/ice_colony/underground/engineering) "brq" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/engineering) "brr" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/engineering) "brs" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -22923,68 +17817,46 @@ /obj/structure/disposalpipe/trunk{ dir = 4 }, -/turf/open/floor{ - dir = 9; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/northwest, /area/ice_colony/underground/medical/lobby) "brx" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/north, /area/ice_colony/underground/medical/lobby) "bry" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/medical/lobby) "brz" = ( /obj/structure/disposalpipe/junction{ dir = 1; icon_state = "pipe-j2" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/medical/lobby) "brA" = ( /obj/structure/machinery/vending/snack, -/turf/open/floor{ - dir = 1; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/north, /area/ice_colony/underground/medical/lobby) "brB" = ( /obj/structure/bed/chair, -/turf/open/floor{ - dir = 1; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/north, /area/ice_colony/underground/medical/lobby) "brC" = ( /obj/structure/bed/chair, /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/north, /area/ice_colony/underground/medical/lobby) "brD" = ( /obj/structure/flora/pottedplant, -/turf/open/floor{ - dir = 5; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/northeast, /area/ice_colony/underground/medical/lobby) "brE" = ( /obj/structure/machinery/light{ @@ -22992,49 +17864,31 @@ }, /obj/structure/surface/table, /obj/structure/machinery/microwave, -/turf/open/floor{ - dir = 9; - icon_state = "whitered" - }, +/turf/open/floor/whitered/northwest, /area/ice_colony/underground/medical/hallway) "brF" = ( /obj/structure/surface/table, /obj/item/storage/box/donkpockets, -/turf/open/floor{ - dir = 1; - icon_state = "whitered" - }, +/turf/open/floor/whitered/north, /area/ice_colony/underground/medical/hallway) "brG" = ( /obj/structure/closet/secure_closet/freezer/fridge, -/turf/open/floor{ - dir = 5; - icon_state = "whitered" - }, +/turf/open/floor/whitered/northeast, /area/ice_colony/underground/medical/hallway) "brH" = ( /obj/structure/machinery/cryo_cell, /obj/structure/pipes/standard/cap, -/turf/open/floor{ - dir = 9; - icon_state = "whitered" - }, +/turf/open/floor/whitered/northwest, /area/ice_colony/underground/medical/treatment) "brI" = ( /obj/structure/machinery/cryo_cell, /obj/structure/pipes/standard/cap, -/turf/open/floor{ - dir = 1; - icon_state = "whitered" - }, +/turf/open/floor/whitered/north, /area/ice_colony/underground/medical/treatment) "brJ" = ( /obj/structure/machinery/cryo_cell, /obj/structure/pipes/standard/cap, -/turf/open/floor{ - dir = 5; - icon_state = "whitered" - }, +/turf/open/floor/whitered/northeast, /area/ice_colony/underground/medical/treatment) "brK" = ( /turf/closed/wall/r_wall, @@ -23071,18 +17925,14 @@ /obj/item/tool/pen/blue{ pixel_x = -6 }, -/turf/open/floor{ - icon_state = "darkred2" - }, +/turf/open/floor/darkred2, /area/ice_colony/underground/reception/checkpoint_north) "brP" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ dir = 1; name = "\improper Underground Security Checkpoint" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/reception/checkpoint_north) "brQ" = ( /obj/structure/machinery/light{ @@ -23091,66 +17941,44 @@ /obj/structure/machinery/alarm{ pixel_y = 24 }, -/turf/open/floor{ - dir = 9; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/northwest, /area/ice_colony/underground/crew/bball) "brR" = ( /obj/structure/bed/chair, -/turf/open/floor{ - dir = 1; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/north, /area/ice_colony/underground/crew/bball) "brT" = ( /obj/structure/bed/chair, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 1; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/north, /area/ice_colony/underground/crew/bball) "brU" = ( -/turf/open/floor{ - dir = 5; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/northeast, /area/ice_colony/underground/crew/bball) "brV" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/west, /area/ice_colony/underground/hallway/south_east) "brW" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/hallway/south_east) "brX" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/hallway/south_east) "brY" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/east, /area/ice_colony/underground/hallway/south_east) "brZ" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -23169,15 +17997,10 @@ /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/engineering) "bsc" = ( -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/ice_colony/underground/engineering) "bsd" = ( /obj/structure/machinery/light/small{ @@ -23198,124 +18021,79 @@ /turf/open/ice, /area/ice_colony/exterior/underground/caves) "bsh" = ( -/turf/open/floor{ - dir = 8; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/west, /area/ice_colony/underground/medical/lobby) "bsi" = ( -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/medical/lobby) "bsj" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/medical/lobby) "bsk" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/medical/lobby) "bsl" = ( -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/ice_colony/underground/medical/hallway) "bsm" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/ice_colony/underground/medical/hallway) "bsn" = ( -/turf/open/floor{ - dir = 4; - icon_state = "whitered" - }, +/turf/open/floor/whitered/east, /area/ice_colony/underground/medical/hallway) "bso" = ( /obj/structure/pipes/standard/simple/visible{ dir = 5 }, -/turf/open/floor{ - dir = 8; - icon_state = "whitered" - }, +/turf/open/floor/whitered/west, /area/ice_colony/underground/medical/treatment) "bsp" = ( /obj/structure/pipes/standard/manifold/visible{ layer = 2.3 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/ice_colony/underground/medical/treatment) "bsq" = ( /obj/structure/pipes/standard/manifold/visible{ layer = 2.3 }, -/turf/open/floor{ - dir = 4; - icon_state = "whiteredcorner" - }, +/turf/open/floor/whiteredcorner/east, /area/ice_colony/underground/medical/treatment) "bsr" = ( /obj/structure/pipes/standard/manifold/visible{ dir = 1 }, -/turf/open/floor{ - dir = 1; - icon_state = "whitered" - }, +/turf/open/floor/whitered/north, /area/ice_colony/underground/medical/treatment) "bss" = ( /obj/structure/pipes/portables_connector{ dir = 8 }, /obj/structure/machinery/portable_atmospherics/canister/oxygen, -/turf/open/floor{ - dir = 5; - icon_state = "whitered" - }, +/turf/open/floor/whitered/northeast, /area/ice_colony/underground/medical/treatment) "bst" = ( -/turf/open/floor{ - dir = 9; - icon_state = "whitered" - }, +/turf/open/floor/whitered/northwest, /area/ice_colony/underground/medical/or) "bsu" = ( -/turf/open/floor{ - dir = 1; - icon_state = "whitered" - }, +/turf/open/floor/whitered/north, /area/ice_colony/underground/medical/or) "bsv" = ( /obj/structure/sink{ pixel_y = 15 }, -/turf/open/floor{ - dir = 1; - icon_state = "whitered" - }, +/turf/open/floor/whitered/north, /area/ice_colony/underground/medical/or) "bsw" = ( /obj/structure/closet/secure_closet/medical2, -/turf/open/floor{ - dir = 1; - icon_state = "whitered" - }, +/turf/open/floor/whitered/north, /area/ice_colony/underground/medical/or) "bsx" = ( /obj/structure/machinery/bioprinter, -/turf/open/floor{ - dir = 5; - icon_state = "whitered" - }, +/turf/open/floor/whitered/northeast, /area/ice_colony/underground/medical/or) "bsy" = ( /obj/structure/machinery/light/small{ @@ -23330,26 +18108,17 @@ "bsA" = ( /obj/structure/machinery/computer/cameras, /obj/structure/surface/table, -/turf/open/floor{ - dir = 9; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/northwest, /area/ice_colony/underground/reception/checkpoint_north) "bsB" = ( -/turf/open/floor{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/north, /area/ice_colony/underground/reception/checkpoint_north) "bsC" = ( /obj/structure/bed/chair/office/dark{ dir = 1 }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/north, /area/ice_colony/underground/reception/checkpoint_north) "bsE" = ( /obj/structure/machinery/power/apc{ @@ -23357,24 +18126,16 @@ pixel_x = -24; start_charge = 0 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/west, /area/ice_colony/underground/crew/bball) "bsH" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/crew/bball) "bsI" = ( -/turf/open/floor{ - dir = 4; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/east, /area/ice_colony/underground/crew/bball) "bsJ" = ( /obj/structure/barricade/wooden{ @@ -23384,84 +18145,58 @@ /area/ice_colony/underground/maintenance/engineering) "bsK" = ( /obj/structure/filingcabinet, -/turf/open/floor{ - dir = 10; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/southwest, /area/ice_colony/underground/engineering) "bsL" = ( /obj/structure/filingcabinet, /obj/structure/closet/toolcloset, -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/ice_colony/underground/engineering) "bsM" = ( /obj/structure/closet/toolcloset, -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/ice_colony/underground/engineering) "bsN" = ( /obj/structure/closet/secure_closet/engineering_welding, /obj/structure/machinery/light, -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/ice_colony/underground/engineering) "bsO" = ( /obj/structure/closet/secure_closet/engineering_personal, -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/ice_colony/underground/engineering) "bsP" = ( /obj/structure/closet/secure_closet/miner, -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/ice_colony/underground/engineering) "bsQ" = ( /obj/structure/surface/table/woodentable{ icon_state = "reinf_table" }, /obj/item/storage/box/lights, -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/ice_colony/underground/engineering) "bsR" = ( /obj/structure/machinery/light, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/engineering) "bsS" = ( /obj/structure/closet/wardrobe/engineering_yellow, -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/ice_colony/underground/engineering) "bsT" = ( /obj/structure/closet/wardrobe/engineering_yellow, -/turf/open/floor{ - dir = 6; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/southeast, /area/ice_colony/underground/engineering) "bsU" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/medical/lobby) "bsV" = ( /obj/structure/pipes/standard/manifold/fourway/hidden/green, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/medical/lobby) "bsW" = ( /obj/structure/disposalpipe/segment{ @@ -23471,9 +18206,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/medical/lobby) "bsX" = ( /obj/structure/disposalpipe/segment{ @@ -23482,18 +18215,14 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/medical/lobby) "bsY" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/medical/lobby) "bsZ" = ( /obj/structure/disposalpipe/segment{ @@ -23506,9 +18235,7 @@ dir = 1; name = "\improper Underground Medical Laboratory" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/medical/lobby) "bta" = ( /obj/structure/disposalpipe/segment{ @@ -23517,9 +18244,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/ice_colony/underground/medical/hallway) "btb" = ( /obj/structure/disposalpipe/segment{ @@ -23529,60 +18254,41 @@ /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/ice_colony/underground/medical/hallway) "btc" = ( /obj/structure/surface/table, /obj/item/tool/wrench, /obj/item/paper/research_notes, -/turf/open/floor{ - dir = 8; - icon_state = "whitered" - }, +/turf/open/floor/whitered/west, /area/ice_colony/underground/medical/treatment) "btd" = ( -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/ice_colony/underground/medical/treatment) "bte" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/ice_colony/underground/medical/treatment) "btf" = ( /obj/structure/pipes/standard/simple/visible{ dir = 5 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/ice_colony/underground/medical/treatment) "btg" = ( /obj/structure/pipes/unary/freezer{ dir = 8; icon_state = "freezer_1" }, -/turf/open/floor{ - dir = 4; - icon_state = "whitered" - }, +/turf/open/floor/whitered/east, /area/ice_colony/underground/medical/treatment) "bth" = ( /obj/structure/surface/table, /obj/item/stack/nanopaste, -/turf/open/floor{ - dir = 8; - icon_state = "whitered" - }, +/turf/open/floor/whitered/west, /area/ice_colony/underground/medical/or) "bti" = ( -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/ice_colony/underground/medical/or) "btl" = ( /obj/structure/machinery/power/apc{ @@ -23590,10 +18296,7 @@ pixel_x = 24; start_charge = 0 }, -/turf/open/floor{ - dir = 4; - icon_state = "whitered" - }, +/turf/open/floor/whitered/east, /area/ice_colony/underground/medical/or) "btm" = ( /turf/open/floor/plating, @@ -23602,26 +18305,17 @@ /obj/structure/machinery/door/airlock/almayer/maint/colony{ name = "\improper Underground Maintenance" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/reception/checkpoint_north) "bto" = ( -/turf/open/floor{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/west, /area/ice_colony/underground/reception/checkpoint_north) "btp" = ( -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/reception/checkpoint_north) "btq" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/reception/checkpoint_north) "btr" = ( /obj/structure/machinery/power/apc{ @@ -23629,20 +18323,14 @@ pixel_x = 24; start_charge = 0 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/east, /area/ice_colony/underground/reception/checkpoint_north) "bts" = ( /obj/structure/machinery/firealarm{ dir = 8; pixel_x = -24 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/west, /area/ice_colony/underground/crew/bball) "btt" = ( /obj/effect/decal/warning_stripes{ @@ -23726,62 +18414,34 @@ /obj/structure/sign/safety/high_voltage, /turf/closed/wall/r_wall, /area/ice_colony/underground/engineering/substation) -"btB" = ( -/obj/structure/pipes/standard/simple/hidden/green, -/obj/structure/machinery/door/airlock/almayer/secure/colony{ - dir = 2; - id = "engine_electrical_maintenance"; - locked = 0; - name = "Underground Power Substation" - }, -/turf/open/floor{ - icon_state = "dark2" - }, -/area/ice_colony/underground/engineering/substation) "btC" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/medidoor/colony{ dir = 1; name = "\improper Underground Medical Laboratory" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/medical/lobby) "btE" = ( -/turf/open/floor{ - icon_state = "darkgreencorners2" - }, +/turf/open/floor/darkgreencorners2, /area/ice_colony/underground/medical/lobby) "btF" = ( -/turf/open/floor{ - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2, /area/ice_colony/underground/medical/lobby) "btG" = ( /obj/structure/bed/chair, -/turf/open/floor{ - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2, /area/ice_colony/underground/medical/lobby) "btH" = ( /obj/structure/flora/pottedplant, -/turf/open/floor{ - dir = 6; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/southeast, /area/ice_colony/underground/medical/lobby) "btI" = ( -/turf/open/floor{ - dir = 8; - icon_state = "whitered" - }, +/turf/open/floor/whitered/west, /area/ice_colony/underground/medical/hallway) "btJ" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/ice_colony/underground/medical/hallway) "btK" = ( /obj/structure/machinery/light{ @@ -23791,77 +18451,52 @@ /obj/structure/disposalpipe/trunk{ dir = 4 }, -/turf/open/floor{ - dir = 8; - icon_state = "whitered" - }, +/turf/open/floor/whitered/west, /area/ice_colony/underground/medical/treatment) "btL" = ( /obj/structure/disposalpipe/segment{ dir = 2; icon_state = "pipe-c" }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/ice_colony/underground/medical/treatment) "btM" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/ice_colony/underground/medical/treatment) "btN" = ( /obj/structure/machinery/light{ dir = 4 }, /obj/structure/machinery/chem_dispenser, -/turf/open/floor{ - dir = 4; - icon_state = "whitered" - }, +/turf/open/floor/whitered/east, /area/ice_colony/underground/medical/treatment) "btO" = ( /obj/structure/surface/table, /obj/item/storage/surgical_tray, -/turf/open/floor{ - dir = 8; - icon_state = "whitered" - }, +/turf/open/floor/whitered/west, /area/ice_colony/underground/medical/or) "btP" = ( /obj/structure/machinery/optable, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/ice_colony/underground/medical/or) "btQ" = ( /obj/structure/machinery/computer/operating, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/ice_colony/underground/medical/or) "btR" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor{ - dir = 4; - icon_state = "whitered" - }, +/turf/open/floor/whitered/east, /area/ice_colony/underground/medical/or) "btS" = ( /obj/structure/closet/secure_closet/security, -/turf/open/floor{ - dir = 10; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/southwest, /area/ice_colony/underground/reception/checkpoint_north) "btT" = ( /obj/structure/machinery/light, -/turf/open/floor{ - icon_state = "darkred2" - }, +/turf/open/floor/darkred2, /area/ice_colony/underground/reception/checkpoint_north) "btU" = ( /obj/structure/machinery/firealarm{ @@ -23871,9 +18506,7 @@ /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor{ - icon_state = "darkred2" - }, +/turf/open/floor/darkred2, /area/ice_colony/underground/reception/checkpoint_north) "btV" = ( /obj/structure/filingcabinet/security, @@ -23881,22 +18514,14 @@ dir = 1; pixel_y = -24 }, -/turf/open/floor{ - icon_state = "darkred2" - }, +/turf/open/floor/darkred2, /area/ice_colony/underground/reception/checkpoint_north) "btW" = ( /obj/structure/filingcabinet/security, -/turf/open/floor{ - dir = 6; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/southeast, /area/ice_colony/underground/reception/checkpoint_north) "btX" = ( -/turf/open/floor{ - dir = 8; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/west, /area/ice_colony/underground/crew/bball) "btY" = ( /obj/effect/decal/warning_stripes{ @@ -23958,14 +18583,8 @@ "bug" = ( /turf/closed/wall/r_wall, /area/ice_colony/exterior/underground/caves) -"buh" = ( -/obj/structure/machinery/power/geothermal, -/turf/open/floor/plating, -/area/ice_colony/exterior/underground/caves) "bui" = ( -/turf/open/floor{ - icon_state = "bcircuit" - }, +/turf/open/floor/bcircuit, /area/ice_colony/underground/engineering/substation) "buj" = ( /turf/open/floor/plating, @@ -24005,16 +18624,10 @@ /area/ice_colony/exterior/underground/caves/open) "buq" = ( /obj/structure/machinery/vending/coffee, -/turf/open/floor{ - dir = 8; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/west, /area/ice_colony/underground/medical/lobby) "bur" = ( -/turf/open/floor{ - dir = 4; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/east, /area/ice_colony/underground/medical/lobby) "bus" = ( /obj/structure/surface/table/reinforced, @@ -24025,20 +18638,14 @@ dir = 8; health = 80 }, -/turf/open/floor{ - dir = 9; - icon_state = "whitered" - }, +/turf/open/floor/whitered/northwest, /area/ice_colony/underground/medical/lobby) "buu" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/door/window/brigdoor/northright, /obj/item/paper_bin, /obj/item/tool/pen/blue, -/turf/open/floor{ - dir = 1; - icon_state = "whitered" - }, +/turf/open/floor/whitered/north, /area/ice_colony/underground/medical/lobby) "buv" = ( /obj/structure/surface/table/reinforced, @@ -24046,10 +18653,7 @@ dir = 1 }, /obj/item/tool/stamp, -/turf/open/floor{ - dir = 1; - icon_state = "whitered" - }, +/turf/open/floor/whitered/north, /area/ice_colony/underground/medical/lobby) "bux" = ( /obj/structure/disposalpipe/segment{ @@ -24059,9 +18663,7 @@ /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/ice_colony/underground/medical/hallway) "buz" = ( /obj/structure/disposalpipe/segment{ @@ -24073,9 +18675,7 @@ /obj/structure/machinery/door/airlock/almayer/medical/glass/colony{ name = "\improper Underground Medical Laboratory Treatment" }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/ice_colony/underground/medical/treatment) "buA" = ( /obj/structure/disposalpipe/junction{ @@ -24085,9 +18685,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/ice_colony/underground/medical/treatment) "buB" = ( /obj/structure/disposalpipe/segment{ @@ -24097,65 +18695,47 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/ice_colony/underground/medical/treatment) "buD" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/ice_colony/underground/medical/treatment) "buE" = ( /obj/structure/bed/chair/office/light{ dir = 4 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/ice_colony/underground/medical/treatment) "buF" = ( /obj/structure/surface/table/reinforced, /obj/item/storage/box/beakers, /obj/item/reagent_container/glass/beaker/bluespace, -/turf/open/floor{ - dir = 4; - icon_state = "whitered" - }, +/turf/open/floor/whitered/east, /area/ice_colony/underground/medical/treatment) "buG" = ( /obj/structure/filingcabinet, -/turf/open/floor{ - dir = 5; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/northeast, /area/ice_colony/surface/hangar/checkpoint) "buH" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/ice_colony/underground/medical/or) "buI" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/ice_colony/underground/medical/or) "buJ" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/ice_colony/underground/medical/or) "buK" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -24248,9 +18828,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/crew/bball) "buV" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -24259,17 +18837,13 @@ /obj/structure/machinery/door/airlock/almayer/medical/glass/colony{ name = "\improper Underground Sports Center" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/crew/bball) "buW" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/hallway/south_east) "buX" = ( /obj/structure/mineral_door/resin, @@ -24285,16 +18859,11 @@ /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/west, /area/ice_colony/underground/medical/lobby) "bve" = ( /obj/effect/landmark/hunter_primary, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/medical/lobby) "bvf" = ( /obj/structure/surface/table/reinforced, @@ -24303,62 +18872,42 @@ health = 80 }, /obj/item/tool/stamp, -/turf/open/floor{ - dir = 8; - icon_state = "whitered" - }, +/turf/open/floor/whitered/west, /area/ice_colony/underground/medical/lobby) "bvg" = ( -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/ice_colony/underground/medical/lobby) "bvh" = ( /obj/structure/bed/chair/office/light{ dir = 1 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/ice_colony/underground/medical/lobby) "bvi" = ( -/turf/open/floor{ - dir = 4; - icon_state = "whitered" - }, +/turf/open/floor/whitered/east, /area/ice_colony/underground/medical/lobby) "bvj" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/ice_colony/underground/medical/hallway) "bvk" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor{ - dir = 4; - icon_state = "whitered" - }, +/turf/open/floor/whitered/east, /area/ice_colony/underground/medical/hallway) "bvl" = ( /obj/structure/disposalpipe/segment{ dir = 1; icon_state = "pipe-c" }, -/turf/open/floor{ - dir = 8; - icon_state = "whitered" - }, +/turf/open/floor/whitered/west, /area/ice_colony/underground/medical/treatment) "bvm" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/ice_colony/underground/medical/treatment) "bvo" = ( /obj/structure/disposalpipe/segment{ @@ -24366,27 +18915,17 @@ icon_state = "pipe-c" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/ice_colony/underground/medical/treatment) "bvp" = ( /obj/structure/machinery/chem_master, -/turf/open/floor{ - dir = 4; - icon_state = "whitered" - }, +/turf/open/floor/whitered/east, /area/ice_colony/underground/medical/treatment) "bvq" = ( -/turf/open/floor{ - dir = 10; - icon_state = "whitered" - }, +/turf/open/floor/whitered/southwest, /area/ice_colony/underground/medical/or) "bvr" = ( -/turf/open/floor{ - icon_state = "whitered" - }, +/turf/open/floor/whitered, /area/ice_colony/underground/medical/or) "bvs" = ( /obj/structure/disposalpipe/segment{ @@ -24394,9 +18933,7 @@ icon_state = "pipe-c" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/ice_colony/underground/medical/or) "bvt" = ( /obj/structure/machinery/holosign_switch{ @@ -24406,27 +18943,20 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor{ - icon_state = "whitered" - }, +/turf/open/floor/whitered, /area/ice_colony/underground/medical/or) "bvu" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk{ dir = 8 }, -/turf/open/floor{ - dir = 6; - icon_state = "whitered" - }, +/turf/open/floor/whitered/southeast, /area/ice_colony/underground/medical/or) "bvv" = ( /turf/closed/wall/r_wall, /area/ice_colony/underground/maintenance/central/construction) "bvw" = ( -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/maintenance/central/construction) "bvx" = ( /obj/item/frame/apc, @@ -24465,13 +18995,6 @@ }, /turf/open/floor/wood, /area/ice_colony/underground/crew/bball) -"bvD" = ( -/obj/structure/machinery/power/geothermal, -/obj/structure/machinery/light{ - dir = 8 - }, -/turf/open/floor/plating, -/area/ice_colony/exterior/underground/caves) "bvE" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 @@ -24500,6 +19023,13 @@ /obj/structure/machinery/light{ dir = 4 }, +/obj/structure/surface/rack, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, /turf/open/floor/plating, /area/ice_colony/underground/engineering/substation) "bvJ" = ( @@ -24516,64 +19046,43 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/west, /area/ice_colony/underground/medical/lobby) "bvM" = ( /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/east, /area/ice_colony/underground/medical/lobby) "bvN" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/door/window/brigdoor/westleft, /obj/item/paper_bin, /obj/item/tool/pen/blue, -/turf/open/floor{ - dir = 8; - icon_state = "whitered" - }, +/turf/open/floor/whitered/west, /area/ice_colony/underground/medical/lobby) "bvO" = ( /obj/structure/bed/chair/office/light{ dir = 8 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/ice_colony/underground/medical/lobby) "bvP" = ( /obj/structure/machinery/photocopier, -/turf/open/floor{ - dir = 4; - icon_state = "whitered" - }, +/turf/open/floor/whitered/east, /area/ice_colony/underground/medical/lobby) "bvQ" = ( /obj/structure/machinery/medical_pod/sleeper, -/turf/open/floor{ - dir = 8; - icon_state = "whitered" - }, +/turf/open/floor/whitered/west, /area/ice_colony/underground/medical/treatment) "bvR" = ( /obj/structure/machinery/sleep_console, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/ice_colony/underground/medical/treatment) "bvT" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/ice_colony/underground/medical/treatment) "bvU" = ( /obj/structure/surface/table/reinforced, @@ -24582,10 +19091,7 @@ /obj/item/stack/sheet/mineral/phoron, /obj/item/stack/sheet/mineral/phoron, /obj/item/stack/sheet/mineral/phoron, -/turf/open/floor{ - dir = 4; - icon_state = "whitered" - }, +/turf/open/floor/whitered/east, /area/ice_colony/underground/medical/treatment) "bvV" = ( /obj/structure/machinery/holosign/surgery{ @@ -24597,9 +19103,7 @@ dir = 1; name = "Underground Medical Laboratory Operating Theatre" }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/ice_colony/underground/medical/or) "bvW" = ( /obj/effect/decal/warning_stripes{ @@ -24702,10 +19206,7 @@ /obj/structure/closet/hydrant{ pixel_x = -32 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/west, /area/ice_colony/underground/hallway/north_west) "bwk" = ( /obj/structure/surface/table, @@ -24719,17 +19220,13 @@ /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/ice_colony/underground/medical/lobby) "bwm" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/ice_colony/underground/medical/lobby) "bwn" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -24738,34 +19235,25 @@ /obj/structure/machinery/door/airlock/almayer/medical/glass/colony{ name = "\improper Underground Medical Laboratory Lobby" }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/ice_colony/underground/medical/lobby) "bwo" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/ice_colony/underground/medical/hallway) "bwp" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/ice_colony/underground/medical/hallway) "bwq" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor{ - dir = 8; - icon_state = "whitered" - }, +/turf/open/floor/whitered/west, /area/ice_colony/underground/medical/treatment) "bwr" = ( /obj/structure/disposalpipe/segment{ @@ -24773,27 +19261,19 @@ icon_state = "pipe-c" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/ice_colony/underground/medical/treatment) "bws" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor{ - dir = 4; - icon_state = "whiteredcorner" - }, +/turf/open/floor/whiteredcorner/east, /area/ice_colony/underground/medical/treatment) "bwt" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor{ - dir = 1; - icon_state = "whitered" - }, +/turf/open/floor/whitered/north, /area/ice_colony/underground/medical/treatment) "bwu" = ( /obj/structure/disposalpipe/segment{ @@ -24801,24 +19281,16 @@ icon_state = "pipe-c" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/ice_colony/underground/medical/treatment) "bwv" = ( -/turf/open/floor{ - dir = 1; - icon_state = "whitered" - }, +/turf/open/floor/whitered/north, /area/ice_colony/underground/medical/treatment) "bww" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor{ - dir = 5; - icon_state = "whitered" - }, +/turf/open/floor/whitered/northeast, /area/ice_colony/underground/medical/treatment) "bwx" = ( /turf/closed/ice/junction{ @@ -24833,18 +19305,7 @@ pixel_y = -24; start_charge = 0 }, -/turf/open/floor{ - icon_state = "bcircuit" - }, -/area/ice_colony/underground/engineering/substation) -"bwA" = ( -/obj/structure/machinery/power/geothermal, -/turf/open/floor/plating, -/area/ice_colony/underground/engineering/substation) -"bwB" = ( -/obj/structure/machinery/power/geothermal, -/obj/structure/machinery/light/small, -/turf/open/floor/plating, +/turf/open/floor/bcircuit, /area/ice_colony/underground/engineering/substation) "bwE" = ( /obj/structure/ice/thin/end, @@ -24889,31 +19350,23 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/ice_colony/underground/medical/treatment) "bwQ" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "cafeteria" - }, +/turf/open/floor/cafeteria, /area/ice_colony/underground/medical/treatment) "bwR" = ( /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/ice_colony/underground/medical/treatment) "bwS" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/ice_colony/underground/medical/treatment) "bwT" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -24935,46 +19388,27 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/crew/bball) "bwW" = ( /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor{ - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2, /area/ice_colony/underground/crew/bball) "bwX" = ( /obj/structure/bed/chair{ dir = 1 }, /obj/structure/machinery/light, -/turf/open/floor{ - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2, /area/ice_colony/underground/crew/bball) "bwY" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor{ - dir = 6; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/southeast, /area/ice_colony/underground/crew/bball) -"bwZ" = ( -/obj/structure/pipes/standard/simple/hidden/green, -/obj/structure/machinery/door/airlock/almayer/secure/colony{ - dir = 2; - id = "engine_electrical_maintenance"; - locked = 0; - name = "Underground Power Substation" - }, -/turf/open/floor/plating, -/area/ice_colony/underground/engineering/substation) "bxa" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 @@ -25001,28 +19435,21 @@ dir = 1; pixel_y = -24 }, -/turf/open/floor{ - dir = 10; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/southwest, /area/ice_colony/underground/medical/lobby) "bxh" = ( /obj/structure/machinery/alarm{ dir = 1; pixel_y = -24 }, -/turf/open/floor{ - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2, /area/ice_colony/underground/medical/lobby) "bxj" = ( /obj/structure/machinery/power/apc{ pixel_y = -24; start_charge = 0 }, -/turf/open/floor{ - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2, /area/ice_colony/underground/medical/lobby) "bxk" = ( /obj/structure/surface/table/reinforced, @@ -25031,81 +19458,53 @@ health = 80 }, /obj/item/tool/stamp, -/turf/open/floor{ - dir = 10; - icon_state = "whitered" - }, +/turf/open/floor/whitered/southwest, /area/ice_colony/underground/medical/lobby) "bxl" = ( -/turf/open/floor{ - icon_state = "whitered" - }, +/turf/open/floor/whitered, /area/ice_colony/underground/medical/lobby) "bxm" = ( /obj/structure/reagent_dispensers/water_cooler, -/turf/open/floor{ - icon_state = "whitered" - }, +/turf/open/floor/whitered, /area/ice_colony/underground/medical/lobby) "bxn" = ( /obj/structure/filingcabinet, /obj/item/paper/research_notes, -/turf/open/floor{ - icon_state = "whitered" - }, +/turf/open/floor/whitered, /area/ice_colony/underground/medical/lobby) "bxo" = ( /obj/structure/filingcabinet, /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor{ - dir = 6; - icon_state = "whitered" - }, +/turf/open/floor/whitered/southeast, /area/ice_colony/underground/medical/lobby) "bxp" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor{ - dir = 8; - icon_state = "whitered" - }, +/turf/open/floor/whitered/west, /area/ice_colony/underground/medical/hallway) "bxq" = ( /obj/item/roller{ icon_state = "down" }, -/turf/open/floor{ - dir = 4; - icon_state = "whitered" - }, +/turf/open/floor/whitered/east, /area/ice_colony/underground/medical/hallway) "bxr" = ( -/turf/open/floor{ - dir = 8; - icon_state = "whitered" - }, +/turf/open/floor/whitered/west, /area/ice_colony/underground/medical/treatment) "bxs" = ( /obj/structure/curtain/medical, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/ice_colony/underground/medical/treatment) "bxt" = ( /obj/structure/curtain/open/medical, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/ice_colony/underground/medical/treatment) "bxu" = ( /obj/structure/curtain/medical, -/turf/open/floor{ - dir = 4; - icon_state = "whitered" - }, +/turf/open/floor/whitered/east, /area/ice_colony/underground/medical/treatment) "bxv" = ( /obj/structure/barricade/wooden, @@ -25127,9 +19526,7 @@ /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/hallway/south_east) "bxC" = ( /obj/structure/pipes/standard/manifold/hidden/green, @@ -25177,6 +19574,7 @@ dir = 1 }, /obj/structure/surface/rack, +/obj/item/fuel_cell, /turf/open/floor/plating, /area/ice_colony/underground/maintenance/engineering) "bxJ" = ( @@ -25191,52 +19589,36 @@ dir = 1; name = "\improper Underground Medical Laboratory" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/medical/lobby) "bxM" = ( /obj/structure/machinery/medical_pod/bodyscanner, -/turf/open/floor{ - dir = 10; - icon_state = "whitered" - }, +/turf/open/floor/whitered/southwest, /area/ice_colony/underground/medical/treatment) "bxN" = ( /obj/structure/machinery/body_scanconsole, -/turf/open/floor{ - icon_state = "whitered" - }, +/turf/open/floor/whitered, /area/ice_colony/underground/medical/treatment) "bxO" = ( /obj/structure/machinery/power/apc{ pixel_y = -24; start_charge = 0 }, -/turf/open/floor{ - icon_state = "whitered" - }, +/turf/open/floor/whitered, /area/ice_colony/underground/medical/treatment) "bxP" = ( /obj/structure/curtain/medical, -/turf/open/floor{ - icon_state = "whitered" - }, +/turf/open/floor/whitered, /area/ice_colony/underground/medical/treatment) "bxQ" = ( /obj/structure/bed, /obj/item/bedsheet/medical, /obj/structure/machinery/light/small, -/turf/open/floor{ - icon_state = "whitered" - }, +/turf/open/floor/whitered, /area/ice_colony/underground/medical/treatment) "bxR" = ( /obj/structure/curtain/medical, -/turf/open/floor{ - dir = 6; - icon_state = "whitered" - }, +/turf/open/floor/whitered/southeast, /area/ice_colony/underground/medical/treatment) "bxS" = ( /obj/structure/pipes/standard/manifold/hidden/green{ @@ -25280,10 +19662,7 @@ /area/ice_colony/underground/maintenance/engineering) "byd" = ( /obj/structure/machinery/vending/snack, -/turf/open/floor{ - dir = 9; - icon_state = "whitered" - }, +/turf/open/floor/whitered/northwest, /area/ice_colony/underground/medical/hallway) "bye" = ( /obj/structure/machinery/light{ @@ -25292,34 +19671,23 @@ /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor{ - dir = 1; - icon_state = "whitered" - }, +/turf/open/floor/whitered/north, /area/ice_colony/underground/medical/hallway) "byf" = ( /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/ice_colony/underground/medical/hallway) "byg" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - dir = 1; - icon_state = "whitered" - }, +/turf/open/floor/whitered/north, /area/ice_colony/underground/medical/hallway) "byi" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor{ - dir = 1; - icon_state = "whitered" - }, +/turf/open/floor/whitered/north, /area/ice_colony/underground/medical/hallway) "byk" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -25328,10 +19696,7 @@ /obj/structure/closet/hydrant{ pixel_y = 32 }, -/turf/open/floor{ - dir = 1; - icon_state = "whitered" - }, +/turf/open/floor/whitered/north, /area/ice_colony/underground/medical/hallway) "byl" = ( /obj/structure/machinery/light{ @@ -25340,27 +19705,19 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - dir = 1; - icon_state = "whitered" - }, +/turf/open/floor/whitered/north, /area/ice_colony/underground/medical/hallway) "bym" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - dir = 1; - icon_state = "whiteredcorner" - }, +/turf/open/floor/whiteredcorner/north, /area/ice_colony/underground/medical/hallway) "byn" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/ice_colony/underground/medical/hallway) "byo" = ( /obj/structure/machinery/light/small{ @@ -25395,33 +19752,23 @@ /area/ice_colony/underground/maintenance/research) "byw" = ( /obj/structure/machinery/vending/coffee, -/turf/open/floor{ - dir = 10; - icon_state = "whitered" - }, +/turf/open/floor/whitered/southwest, /area/ice_colony/underground/medical/hallway) "byx" = ( -/turf/open/floor{ - icon_state = "whitered" - }, +/turf/open/floor/whitered, /area/ice_colony/underground/medical/hallway) "byy" = ( /obj/structure/machinery/power/apc{ pixel_y = -24; start_charge = 0 }, -/turf/open/floor{ - icon_state = "whitered" - }, +/turf/open/floor/whitered, /area/ice_colony/underground/medical/hallway) "byA" = ( /obj/item/roller{ icon_state = "down" }, -/turf/open/floor{ - dir = 6; - icon_state = "whitered" - }, +/turf/open/floor/whitered/southeast, /area/ice_colony/underground/medical/hallway) "byB" = ( /turf/closed/wall/r_wall, @@ -25451,10 +19798,7 @@ /turf/closed/wall/r_wall, /area/ice_colony/underground/crew/canteen) "byJ" = ( -/turf/open/floor{ - dir = 4; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/east, /area/ice_colony/underground/hallway/south_east) "byK" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -25485,9 +19829,7 @@ dir = 1; name = "\improper Underground Medical Laboratory Storage" }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/ice_colony/underground/medical/storage) "byR" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -25521,43 +19863,28 @@ /area/ice_colony/underground/maintenance/central) "byW" = ( /obj/structure/closet/secure_closet/freezer/fridge, -/turf/open/floor{ - dir = 9; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/northwest, /area/ice_colony/underground/crew/canteen) "byX" = ( -/turf/open/floor{ - dir = 1; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/north, /area/ice_colony/underground/crew/canteen) "byY" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/north, /area/ice_colony/underground/crew/canteen) "byZ" = ( /obj/structure/machinery/alarm{ pixel_y = 24 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/north, /area/ice_colony/underground/crew/canteen) "bza" = ( /obj/structure/machinery/firealarm{ pixel_y = 24 }, -/turf/open/floor{ - dir = 5; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/northeast, /area/ice_colony/underground/crew/canteen) "bzb" = ( /obj/structure/window/framed/colony/reinforced, @@ -25567,10 +19894,7 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/east, /area/ice_colony/underground/hallway/south_east) "bzd" = ( /obj/structure/barricade/wooden{ @@ -25580,31 +19904,19 @@ /area/ice_colony/underground/maintenance/engineering) "bze" = ( /obj/structure/machinery/cm_vending/sorted/medical/no_access, -/turf/open/floor{ - dir = 9; - icon_state = "whitered" - }, +/turf/open/floor/whitered/northwest, /area/ice_colony/underground/medical/storage) "bzf" = ( /obj/structure/machinery/cm_vending/sorted/medical/no_access, -/turf/open/floor{ - dir = 1; - icon_state = "whitered" - }, +/turf/open/floor/whitered/north, /area/ice_colony/underground/medical/storage) "bzg" = ( /obj/structure/machinery/cm_vending/sorted/medical/blood, -/turf/open/floor{ - dir = 1; - icon_state = "whitered" - }, +/turf/open/floor/whitered/north, /area/ice_colony/underground/medical/storage) "bzh" = ( /obj/structure/machinery/photocopier, -/turf/open/floor{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/west, /area/ice_colony/surface/hangar/checkpoint) "bzi" = ( /obj/structure/surface/table, @@ -25613,25 +19925,17 @@ pixel_x = 6; pixel_y = 10 }, -/turf/open/floor{ - dir = 1; - icon_state = "whitered" - }, +/turf/open/floor/whitered/north, /area/ice_colony/underground/medical/storage) "bzj" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/ice_colony/underground/medical/storage) "bzk" = ( /obj/structure/surface/table, /obj/item/bodybag/cryobag, /obj/item/storage/box/syringes, -/turf/open/floor{ - dir = 1; - icon_state = "whitered" - }, +/turf/open/floor/whitered/north, /area/ice_colony/underground/medical/storage) "bzl" = ( /obj/structure/surface/table, @@ -25640,32 +19944,20 @@ pixel_x = 5; pixel_y = 3 }, -/turf/open/floor{ - dir = 1; - icon_state = "whitered" - }, +/turf/open/floor/whitered/north, /area/ice_colony/underground/medical/storage) "bzm" = ( /obj/item/device/defibrillator, /obj/structure/surface/table, -/turf/open/floor{ - dir = 1; - icon_state = "whitered" - }, +/turf/open/floor/whitered/north, /area/ice_colony/underground/medical/storage) "bzn" = ( /obj/structure/bed/chair/wheelchair, -/turf/open/floor{ - dir = 1; - icon_state = "whitered" - }, +/turf/open/floor/whitered/north, /area/ice_colony/underground/medical/storage) "bzo" = ( /obj/structure/bed/chair/wheelchair, -/turf/open/floor{ - dir = 5; - icon_state = "whitered" - }, +/turf/open/floor/whitered/northeast, /area/ice_colony/underground/medical/storage) "bzp" = ( /turf/closed/wall/r_wall, @@ -25680,27 +19972,17 @@ /area/ice_colony/underground/command/center) "bzr" = ( /obj/structure/closet/secure_closet/freezer/meat, -/turf/open/floor{ - dir = 8; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/west, /area/ice_colony/underground/crew/canteen) "bzs" = ( -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/crew/canteen) "bzt" = ( /obj/structure/bed/chair, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/crew/canteen) "bzu" = ( -/turf/open/floor{ - dir = 4; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/east, /area/ice_colony/underground/crew/canteen) "bzv" = ( /obj/effect/alien/weeds/node, @@ -25711,145 +19993,97 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor{ - dir = 8; - icon_state = "whitered" - }, +/turf/open/floor/whitered/west, /area/ice_colony/underground/medical/storage) "bzx" = ( -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/ice_colony/underground/medical/storage) "bzy" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/ice_colony/underground/medical/storage) "bzz" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/ice_colony/underground/medical/storage) "bzA" = ( /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/ice_colony/underground/medical/storage) "bzB" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/ice_colony/underground/medical/storage) "bzC" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor{ - dir = 4; - icon_state = "whitered" - }, +/turf/open/floor/whitered/east, /area/ice_colony/underground/medical/storage) "bzD" = ( /obj/structure/filingcabinet, /obj/item/paper/research_notes, -/turf/open/floor{ - dir = 9; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/northwest, /area/ice_colony/underground/command/center) "bzE" = ( /obj/structure/filingcabinet, -/turf/open/floor{ - dir = 1; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/north, /area/ice_colony/underground/command/center) "bzF" = ( /obj/structure/reagent_dispensers/water_cooler, /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/north, /area/ice_colony/underground/command/center) "bzG" = ( -/turf/open/floor{ - dir = 1; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/north, /area/ice_colony/underground/command/center) "bzH" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/command/center) "bzI" = ( /obj/structure/machinery/photocopier, /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/north, /area/ice_colony/underground/command/center) "bzJ" = ( /obj/structure/surface/table, /obj/structure/machinery/faxmachine, -/turf/open/floor{ - dir = 1; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/north, /area/ice_colony/underground/command/center) "bzK" = ( /obj/structure/surface/table, /obj/effect/landmark/crap_item, -/turf/open/floor{ - dir = 5; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/northeast, /area/ice_colony/underground/command/center) "bzL" = ( /obj/structure/closet/secure_closet/freezer/kitchen, -/turf/open/floor{ - dir = 8; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/west, /area/ice_colony/underground/crew/canteen) "bzM" = ( /obj/structure/surface/table, /obj/item/trash/plate, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/crew/canteen) "bzN" = ( /obj/structure/surface/table, /obj/item/reagent_container/food/drinks/dry_ramen, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/crew/canteen) "bzO" = ( /obj/structure/surface/table, /obj/item/tool/kitchen/utensil/knife, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/crew/canteen) "bzP" = ( /turf/closed/wall/r_wall, @@ -25898,26 +20132,19 @@ /obj/structure/closet/secure_closet/medical3{ req_access_txt = "100" }, -/turf/open/floor{ - dir = 10; - icon_state = "whitered" - }, +/turf/open/floor/whitered/southwest, /area/ice_colony/underground/medical/storage) "bzY" = ( /obj/structure/closet/secure_closet/medical3{ req_access_txt = "100" }, -/turf/open/floor{ - icon_state = "whitered" - }, +/turf/open/floor/whitered, /area/ice_colony/underground/medical/storage) "bzZ" = ( /obj/structure/closet/secure_closet/medical1{ req_access_txt = "100" }, -/turf/open/floor{ - icon_state = "whitered" - }, +/turf/open/floor/whitered, /area/ice_colony/underground/medical/storage) "bAa" = ( /obj/structure/machinery/power/apc{ @@ -25925,71 +20152,48 @@ start_charge = 0 }, /obj/structure/surface/rack, -/turf/open/floor{ - icon_state = "whitered" - }, +/turf/open/floor/whitered, /area/ice_colony/underground/medical/storage) "bAb" = ( /obj/structure/machinery/iv_drip, -/turf/open/floor{ - icon_state = "whitered" - }, +/turf/open/floor/whitered, /area/ice_colony/underground/medical/storage) "bAc" = ( /obj/item/roller{ icon_state = "down" }, -/turf/open/floor{ - icon_state = "whitered" - }, +/turf/open/floor/whitered, /area/ice_colony/underground/medical/storage) "bAd" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "whitered" - }, +/turf/open/floor/whitered, /area/ice_colony/underground/medical/storage) "bAe" = ( /obj/item/roller{ icon_state = "down" }, -/turf/open/floor{ - dir = 6; - icon_state = "whitered" - }, +/turf/open/floor/whitered/southeast, /area/ice_colony/underground/medical/storage) "bAf" = ( -/turf/open/floor{ - dir = 8; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/west, /area/ice_colony/underground/command/center) "bAg" = ( -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/command/center) "bAh" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/command/center) "bAi" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/command/center) "bAj" = ( -/turf/open/floor{ - dir = 4; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/east, /area/ice_colony/underground/command/center) "bAk" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -26000,39 +20204,28 @@ /area/ice_colony/underground/maintenance/central) "bAl" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor{ - dir = 8; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/west, /area/ice_colony/underground/crew/canteen) "bAm" = ( /obj/structure/surface/table, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/crew/canteen) "bAn" = ( /obj/structure/surface/table, /obj/item/tool/kitchen/utensil/fork, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/crew/canteen) "bAo" = ( /obj/structure/surface/table, /obj/item/reagent_container/food/snacks/boiledspagetti, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/crew/canteen) "bAp" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ dir = 1; name = "\improper Underground Staff Canteen" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/crew/canteen) "bAq" = ( /turf/open/floor/wood, @@ -26108,10 +20301,7 @@ /turf/open/floor/plating, /area/ice_colony/underground/maintenance/research) "bAD" = ( -/turf/open/floor{ - dir = 8; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/west, /area/ice_colony/underground/hallway/north_west) "bAE" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -26155,9 +20345,7 @@ /obj/structure/surface/table/reinforced, /obj/item/clipboard, /obj/item/tool/stamp, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/command/center) "bAJ" = ( /obj/structure/window/reinforced/tinted{ @@ -26169,9 +20357,7 @@ /obj/structure/surface/table/reinforced, /obj/item/paper_bin, /obj/item/tool/pen/blue, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/command/center) "bAK" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -26184,17 +20370,13 @@ /area/ice_colony/underground/crew/canteen) "bAL" = ( /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/crew/canteen) "bAM" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/crew/canteen) "bAN" = ( /obj/structure/bed/chair{ @@ -26203,18 +20385,13 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/crew/canteen) "bAO" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/east, /area/ice_colony/underground/crew/canteen) "bAP" = ( /obj/structure/window/framed/colony/reinforced, @@ -26227,10 +20404,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/west, /area/ice_colony/underground/hallway/south_east) "bAR" = ( /obj/structure/machinery/light{ @@ -26273,10 +20447,7 @@ /area/ice_colony/underground/security/marshal) "bAX" = ( /obj/structure/surface/rack, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/ice_colony/surface/research/field_gear) "bAZ" = ( /obj/structure/closet/secure_closet/personal, @@ -26287,22 +20458,13 @@ /area/ice_colony/underground/research) "bBb" = ( /obj/structure/machinery/door/airlock/multi_tile/elevator/access/research, -/turf/open/floor{ - dir = 9; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/northwest, /area/ice_colony/underground/research) "bBc" = ( -/turf/open/floor{ - dir = 1; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/north, /area/ice_colony/underground/research) "bBd" = ( -/turf/open/floor{ - dir = 5; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/northeast, /area/ice_colony/underground/research) "bBe" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -26331,9 +20493,7 @@ dir = 8 }, /obj/structure/disposalpipe/segment, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/hallway/north_west) "bBj" = ( /obj/structure/pipes/standard/manifold/hidden/green, @@ -26364,62 +20524,47 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/west, /area/ice_colony/underground/command/center) "bBn" = ( /obj/structure/window/reinforced/tinted{ dir = 4 }, /obj/structure/machinery/computer/atmos_alert, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/command/center) "bBo" = ( /obj/structure/window/reinforced/tinted{ dir = 8 }, /obj/structure/machinery/computer/communications, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/command/center) "bBp" = ( /obj/structure/bed/chair/office/light{ dir = 8 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/command/center) "bBq" = ( /obj/structure/bed/chair/office/light{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/command/center) "bBr" = ( /obj/structure/window/reinforced/tinted{ dir = 4 }, /obj/structure/machinery/computer/cameras, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/command/center) "bBs" = ( /obj/structure/window/reinforced/tinted{ dir = 8 }, /obj/structure/machinery/computer/station_alert, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/command/center) "bBt" = ( /obj/structure/bed/chair/office/light{ @@ -26428,10 +20573,7 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/east, /area/ice_colony/underground/command/center) "bBu" = ( /obj/structure/surface/table/reinforced, @@ -26439,10 +20581,7 @@ dir = 8; pixel_x = -11 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/west, /area/ice_colony/underground/crew/canteen) "bBv" = ( /obj/structure/pipes/vents/pump, @@ -26486,31 +20625,20 @@ /turf/open/floor/plating, /area/ice_colony/underground/maintenance/research) "bBD" = ( -/turf/open/floor{ - dir = 8; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/west, /area/ice_colony/underground/research) "bBE" = ( -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/research) "bBF" = ( -/turf/open/floor{ - dir = 4; - icon_state = "darkpurplecorners2" - }, +/turf/open/floor/darkpurplecorners2/east, /area/ice_colony/underground/research) "bBG" = ( /obj/structure/machinery/computer/shuttle_control/ice_colony/elevator3{ dir = 1; pixel_y = 30 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/north, /area/ice_colony/underground/research) "bBH" = ( /obj/structure/machinery/power/apc{ @@ -26518,10 +20646,7 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/north, /area/ice_colony/underground/research) "bBK" = ( /obj/structure/machinery/power/apc{ @@ -26529,10 +20654,7 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor{ - dir = 9; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/northwest, /area/ice_colony/underground/research/storage) "bBL" = ( /obj/structure/surface/table, @@ -26540,30 +20662,19 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/north, /area/ice_colony/underground/research/storage) "bBM" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/research/storage) "bBN" = ( /obj/structure/surface/rack, /obj/item/clothing/mask/gas, -/turf/open/floor{ - dir = 5; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/northeast, /area/ice_colony/underground/research/storage) "bBO" = ( -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/ice_colony/underground/hallway/north_west) "bBP" = ( /obj/structure/machinery/light/small{ @@ -26587,15 +20698,11 @@ /obj/structure/surface/table/reinforced, /obj/item/paper_bin, /obj/item/tool/pen/blue, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/command/center) "bBS" = ( /obj/structure/filingcabinet, -/turf/open/floor{ - icon_state = "darkred2" - }, +/turf/open/floor/darkred2, /area/ice_colony/surface/hangar/checkpoint) "bBT" = ( /obj/structure/window/reinforced/tinted{ @@ -26606,37 +20713,26 @@ /obj/item/clipboard, /obj/item/tool/stamp, /obj/effect/landmark/crap_item, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/command/center) "bBU" = ( /obj/structure/surface/table/reinforced, -/turf/open/floor{ - dir = 8; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/west, /area/ice_colony/underground/crew/canteen) "bBV" = ( /obj/structure/surface/table, /obj/item/reagent_container/food/snacks/chips, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/crew/canteen) "bBW" = ( /obj/structure/surface/table, /obj/item/reagent_container/food/snacks/cheeseburger, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/crew/canteen) "bBX" = ( /obj/structure/surface/table, /obj/item/tool/kitchen/utensil/spoon, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/crew/canteen) "bBY" = ( /obj/structure/closet/secure_closet/detective, @@ -26698,45 +20794,31 @@ /obj/structure/machinery/door/airlock/almayer/maint/colony{ name = "\improper Underground Maintenance" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/research) "bCk" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/research) "bCl" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/research) "bCm" = ( /obj/structure/bed/chair/office/light, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/research) "bCq" = ( -/turf/open/floor{ - dir = 4; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/east, /area/ice_colony/underground/research) "bCt" = ( /obj/structure/surface/rack, /obj/item/clothing/mask/gas, -/turf/open/floor{ - dir = 4; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/east, /area/ice_colony/underground/research/storage) "bCu" = ( /turf/closed/wall/r_wall, @@ -26761,25 +20843,17 @@ pixel_x = 24; start_charge = 0 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/east, /area/ice_colony/underground/command/center) "bCA" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/microwave, -/turf/open/floor{ - dir = 8; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/west, /area/ice_colony/underground/crew/canteen) "bCB" = ( /obj/structure/surface/table, /obj/item/reagent_container/food/snacks/hotchili, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/crew/canteen) "bCG" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -26813,66 +20887,42 @@ "bCL" = ( /obj/structure/surface/table/reinforced, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/research) "bCM" = ( /obj/structure/surface/table/reinforced, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/research) "bCO" = ( -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/research/storage) "bCQ" = ( /obj/structure/dispenser, -/turf/open/floor{ - dir = 9; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/northwest, /area/ice_colony/underground/storage/highsec) "bCR" = ( /obj/structure/dispenser, -/turf/open/floor{ - dir = 1; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/north, /area/ice_colony/underground/storage/highsec) "bCS" = ( /obj/structure/safe, /obj/item/weapon/sword/katana/replica, /obj/item/reagent_container/food/drinks/bottle/absinthe, -/turf/open/floor{ - dir = 1; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/north, /area/ice_colony/underground/storage/highsec) "bCT" = ( /obj/structure/closet/fireaxecabinet{ pixel_y = 32 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/north, /area/ice_colony/underground/storage/highsec) "bCU" = ( /obj/structure/machinery/cm_vending/sorted/medical/no_access, -/turf/open/floor{ - dir = 1; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/north, /area/ice_colony/underground/storage/highsec) "bCV" = ( /obj/structure/machinery/cm_vending/sorted/tech/electronics_storage, -/turf/open/floor{ - dir = 1; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/north, /area/ice_colony/underground/storage/highsec) "bCW" = ( /obj/structure/machinery/power/apc{ @@ -26880,37 +20930,22 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/north, /area/ice_colony/underground/storage/highsec) "bCX" = ( /obj/structure/machinery/cm_vending/sorted/tech/tool_storage, -/turf/open/floor{ - dir = 1; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/north, /area/ice_colony/underground/storage/highsec) "bCY" = ( /obj/structure/machinery/cm_vending/sorted/tech/comp_storage, -/turf/open/floor{ - dir = 1; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/north, /area/ice_colony/underground/storage/highsec) "bCZ" = ( -/turf/open/floor{ - dir = 1; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/north, /area/ice_colony/underground/storage/highsec) "bDa" = ( /obj/structure/machinery/vending/security, -/turf/open/floor{ - dir = 5; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/northeast, /area/ice_colony/underground/storage/highsec) "bDb" = ( /obj/structure/machinery/alarm{ @@ -26919,48 +20954,35 @@ }, /obj/structure/surface/table, /obj/item/device/taperecorder, -/turf/open/floor{ - dir = 10; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/southwest, /area/ice_colony/underground/command/center) "bDc" = ( /obj/structure/surface/table, /obj/item/paper_bin, /obj/item/paper/research_notes, -/turf/open/floor{ - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2, /area/ice_colony/underground/command/center) "bDd" = ( /obj/structure/surface/table, /obj/effect/landmark/crap_item, -/turf/open/floor{ - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2, /area/ice_colony/underground/command/center) "bDe" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2, /area/ice_colony/underground/command/center) "bDf" = ( /obj/structure/disposalpipe/segment{ dir = 4; icon_state = "pipe-c" }, -/turf/open/floor{ - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2, /area/ice_colony/underground/command/center) "bDg" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor{ - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2, /area/ice_colony/underground/command/center) "bDh" = ( /obj/structure/machinery/firealarm{ @@ -26971,10 +20993,7 @@ /obj/structure/disposalpipe/trunk{ dir = 8 }, -/turf/open/floor{ - dir = 6; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/southeast, /area/ice_colony/underground/command/center) "bDi" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -26995,94 +21014,60 @@ /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/crew/canteen) "bDm" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ name = "\improper Underground Security" }, -/turf/open/floor{ - dir = 9; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/northwest, /area/ice_colony/underground/security/hallway) "bDn" = ( -/turf/open/floor{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/north, /area/ice_colony/underground/security/hallway) "bDo" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/security/hallway) "bDp" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/north, /area/ice_colony/underground/security/hallway) "bDq" = ( /obj/structure/surface/table, -/turf/open/floor{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/north, /area/ice_colony/underground/security/hallway) "bDr" = ( /obj/structure/machinery/firealarm{ pixel_y = 24 }, /obj/structure/bed/chair, -/turf/open/floor{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/north, /area/ice_colony/underground/security/hallway) "bDs" = ( /obj/structure/bed/chair, /obj/structure/machinery/alarm{ pixel_y = 24 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/north, /area/ice_colony/underground/security/hallway) "bDt" = ( /obj/structure/bed/chair, -/turf/open/floor{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/north, /area/ice_colony/underground/security/hallway) "bDu" = ( /obj/structure/closet/hydrant{ pixel_y = 32 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/north, /area/ice_colony/underground/security/hallway) "bDv" = ( /obj/structure/machinery/vending/snack, -/turf/open/floor{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/north, /area/ice_colony/underground/security/hallway) "bDw" = ( /obj/structure/machinery/vending/cigarette/colony, -/turf/open/floor{ - dir = 5; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/northeast, /area/ice_colony/underground/security/hallway) "bDx" = ( /turf/closed/wall/r_wall, @@ -27102,49 +21087,34 @@ /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/research) "bDB" = ( /obj/structure/surface/table/reinforced, /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/research) "bDC" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/west, /area/ice_colony/underground/hallway/north_west) "bDD" = ( /obj/structure/machinery/alarm{ dir = 4; pixel_x = -24 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/west, /area/ice_colony/underground/storage/highsec) "bDE" = ( -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/storage/highsec) "bDG" = ( /obj/structure/machinery/vending/security, -/turf/open/floor{ - dir = 4; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/east, /area/ice_colony/underground/storage/highsec) "bDH" = ( /obj/structure/window/framed/colony/reinforced, @@ -27155,9 +21125,7 @@ dir = 1; name = "\improper Underground Command Center" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/command/center) "bDJ" = ( /obj/structure/window/framed/colony/reinforced, @@ -27185,45 +21153,31 @@ /area/ice_colony/underground/maintenance/central) "bDO" = ( /obj/structure/machinery/smartfridge, -/turf/open/floor{ - dir = 10; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/southwest, /area/ice_colony/underground/crew/canteen) "bDP" = ( -/turf/open/floor{ - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2, /area/ice_colony/underground/crew/canteen) "bDQ" = ( /obj/structure/machinery/light, -/turf/open/floor{ - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2, /area/ice_colony/underground/crew/canteen) "bDR" = ( /obj/structure/machinery/power/apc{ pixel_y = -24; start_charge = 0 }, -/turf/open/floor{ - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2, /area/ice_colony/underground/crew/canteen) "bDS" = ( -/turf/open/floor{ - dir = 6; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/southeast, /area/ice_colony/underground/crew/canteen) "bDT" = ( /obj/structure/disposalpipe/segment{ dir = 4; icon_state = "pipe-c" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/hallway/south_east) "bDU" = ( /obj/structure/disposalpipe/segment{ @@ -27233,18 +21187,13 @@ /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/hallway/south_east) "bDV" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/east, /area/ice_colony/underground/hallway/south_east) "bDW" = ( /obj/structure/window/framed/colony/reinforced, @@ -27257,32 +21206,23 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/security/hallway) "bDY" = ( /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/security/hallway) "bEb" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/security/hallway) "bEc" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/east, /area/ice_colony/underground/security/hallway) "bEd" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -27321,25 +21261,16 @@ /turf/open/floor/plating, /area/ice_colony/underground/maintenance/east) "bEi" = ( -/turf/open/floor{ - dir = 9; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/northwest, /area/ice_colony/underground/research/sample) "bEj" = ( -/turf/open/floor{ - dir = 1; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/north, /area/ice_colony/underground/research/sample) "bEk" = ( /obj/structure/window/reinforced{ dir = 4 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/north, /area/ice_colony/underground/research/sample) "bEl" = ( /obj/structure/machinery/power/apc{ @@ -27347,10 +21278,7 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor{ - dir = 5; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/northeast, /area/ice_colony/underground/research/sample) "bEm" = ( /obj/structure/bed/chair/office/light{ @@ -27359,9 +21287,7 @@ /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/research) "bEo" = ( /obj/structure/bed/chair/office/light{ @@ -27370,18 +21296,14 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/research) "bEp" = ( /obj/structure/pipes/standard/manifold/hidden/green, /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/research) "bEq" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -27390,25 +21312,19 @@ /obj/structure/machinery/door/airlock/almayer/medical/glass/colony{ name = "\improper Theta-V Research Laboratory Storage" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/research/storage) "bEs" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/research/storage) "bEt" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/research/storage) "bEv" = ( /obj/structure/machinery/light{ @@ -27416,32 +21332,23 @@ }, /obj/structure/surface/table/reinforced, /obj/item/spacecash/c1000, -/turf/open/floor{ - dir = 8; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/west, /area/ice_colony/underground/storage/highsec) "bEw" = ( /obj/structure/showcase, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/storage/highsec) "bEx" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/storage/highsec) "bEy" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/storage/highsec) "bEz" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -27451,47 +21358,30 @@ desc = "A stand with a plastic display of some kind of weird machine."; icon_state = "coinpress0" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/storage/highsec) "bEA" = ( /obj/structure/closet/secure_closet/engineering_electrical, /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/east, /area/ice_colony/underground/storage/highsec) "bEB" = ( /obj/structure/flora/pottedplant, -/turf/open/floor{ - dir = 9; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/northwest, /area/ice_colony/underground/command/center) "bEC" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 1; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/north, /area/ice_colony/underground/command/center) "bED" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor{ - dir = 1; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/north, /area/ice_colony/underground/command/center) "bEE" = ( /obj/structure/flora/pottedplant, -/turf/open/floor{ - dir = 5; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/northeast, /area/ice_colony/underground/command/center) "bEF" = ( /turf/closed/wall/r_wall, @@ -27521,9 +21411,7 @@ /area/ice_colony/underground/crew/dorm_r) "bEL" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/hallway/south_east) "bEM" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -27531,18 +21419,13 @@ dir = 4; icon_state = "pipe-c" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/hallway/south_east) "bEN" = ( /obj/structure/disposalpipe/segment{ dir = 8 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/east, /area/ice_colony/underground/hallway/south_east) "bEO" = ( /obj/structure/disposalpipe/segment{ @@ -27551,36 +21434,26 @@ /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ name = "\improper Underground Security" }, -/turf/open/floor{ - dir = 10; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/southwest, /area/ice_colony/underground/security/hallway) "bEP" = ( /obj/structure/disposalpipe/segment{ dir = 8 }, -/turf/open/floor{ - icon_state = "darkred2" - }, +/turf/open/floor/darkred2, /area/ice_colony/underground/security/hallway) "bEQ" = ( /obj/structure/disposalpipe/segment{ dir = 8 }, /obj/structure/machinery/light, -/turf/open/floor{ - icon_state = "darkred2" - }, +/turf/open/floor/darkred2, /area/ice_colony/underground/security/hallway) "bER" = ( /obj/structure/disposalpipe/segment{ dir = 8 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkredcorners2" - }, +/turf/open/floor/darkredcorners2/west, /area/ice_colony/underground/security/hallway) "bES" = ( /obj/structure/disposalpipe/junction{ @@ -27588,36 +21461,26 @@ icon_state = "pipe-j2" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "darkredcorners2" - }, +/turf/open/floor/darkredcorners2, /area/ice_colony/underground/security/hallway) "bET" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk{ dir = 8 }, -/turf/open/floor{ - dir = 6; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/southeast, /area/ice_colony/underground/security/hallway) "bEU" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/west, /area/ice_colony/underground/research/sample) "bEV" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/research/sample) "bEW" = ( /obj/structure/machinery/door/window/brigdoor/eastleft{ @@ -27626,17 +21489,13 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/research/sample) "bEX" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/research/sample) "bEY" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -27645,93 +21504,64 @@ /obj/structure/machinery/door/airlock/almayer/medical/glass/colony{ name = "\improper Theta-V Research Laboratory Sample Isolation" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/research/sample) "bEZ" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/research) "bFa" = ( -/turf/open/floor{ - dir = 8; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/west, /area/ice_colony/underground/research/storage) "bFb" = ( /obj/structure/surface/table/reinforced, /obj/item/circuitboard/computer/atmos_alert, -/turf/open/floor{ - dir = 8; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/west, /area/ice_colony/underground/storage/highsec) "bFc" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/storage/highsec) "bFd" = ( /obj/structure/closet/secure_closet/engineering_welding, -/turf/open/floor{ - dir = 4; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/east, /area/ice_colony/underground/storage/highsec) "bFe" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/west, /area/ice_colony/underground/command/center) "bFf" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/command/center) "bFg" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/command/center) "bFh" = ( /obj/structure/pipes/standard/manifold/fourway/hidden/green, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/command/center) "bFi" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/command/center) "bFj" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/east, /area/ice_colony/underground/command/center) "bFk" = ( /obj/structure/machinery/firealarm{ @@ -27830,9 +21660,7 @@ "bFB" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/disposalpipe/junction, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/hallway/south_east) "bFD" = ( /turf/closed/wall/r_wall, @@ -27844,107 +21672,70 @@ "bFG" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 4; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/east, /area/ice_colony/underground/security/hallway) "bFH" = ( /turf/open/ice, /area/ice_colony/underground/maintenance/east) "bFI" = ( -/turf/open/floor{ - dir = 10; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/southwest, /area/ice_colony/underground/research/sample) "bFJ" = ( -/turf/open/floor{ - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2, /area/ice_colony/underground/research/sample) "bFK" = ( /obj/structure/window/reinforced{ dir = 4 }, -/turf/open/floor{ - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2, /area/ice_colony/underground/research/sample) "bFL" = ( -/turf/open/floor{ - dir = 6; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/southeast, /area/ice_colony/underground/research/sample) "bFM" = ( /obj/structure/surface/table/reinforced, -/turf/open/floor{ - dir = 8; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/west, /area/ice_colony/underground/research) "bFO" = ( /obj/structure/machinery/autolathe, -/turf/open/floor{ - dir = 4; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/east, /area/ice_colony/underground/research) "bFQ" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/research/storage) "bFR" = ( /obj/structure/closet/radiation, -/turf/open/floor{ - dir = 4; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/east, /area/ice_colony/underground/research/storage) "bFS" = ( /obj/structure/filingcabinet, -/turf/open/floor{ - dir = 6; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/southeast, /area/ice_colony/surface/hangar/checkpoint) "bFT" = ( /obj/structure/surface/table/reinforced, /obj/item/circuitboard/machine/smes, -/turf/open/floor{ - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2, /area/ice_colony/underground/storage/highsec) "bFU" = ( /obj/structure/surface/table/reinforced, /obj/item/storage/box/trackimp, -/turf/open/floor{ - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2, /area/ice_colony/underground/storage/highsec) "bFV" = ( /obj/structure/surface/table/reinforced, /obj/item/circuitboard/computer/crew, -/turf/open/floor{ - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2, /area/ice_colony/underground/storage/highsec) "bFW" = ( -/turf/open/floor{ - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2, /area/ice_colony/underground/storage/highsec) "bFX" = ( /obj/structure/surface/table/reinforced, /obj/item/circuitboard/computer/powermonitor, -/turf/open/floor{ - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2, /area/ice_colony/underground/storage/highsec) "bFY" = ( /obj/structure/machinery/alarm{ @@ -27952,49 +21743,32 @@ pixel_x = -24 }, /obj/structure/closet/secure_closet/freezer/kitchen, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/ice_colony/surface/bar/canteen) "bFZ" = ( /obj/structure/surface/table/reinforced, /obj/item/toy/plush/farwa, -/turf/open/floor{ - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2, /area/ice_colony/underground/storage/highsec) "bGa" = ( /obj/structure/surface/table/reinforced, /obj/item/reagent_container/hypospray/tricordrazine, -/turf/open/floor{ - dir = 6; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/southeast, /area/ice_colony/underground/storage/highsec) "bGb" = ( /obj/structure/flora/pottedplant, -/turf/open/floor{ - dir = 10; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/southwest, /area/ice_colony/underground/command/center) "bGc" = ( -/turf/open/floor{ - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2, /area/ice_colony/underground/command/center) "bGe" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor{ - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2, /area/ice_colony/underground/command/center) "bGf" = ( /obj/structure/flora/pottedplant, -/turf/open/floor{ - dir = 6; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/southeast, /area/ice_colony/underground/command/center) "bGg" = ( /obj/structure/surface/table/woodentable/fancy, @@ -28018,10 +21792,7 @@ /area/ice_colony/underground/command/pv2) "bGk" = ( /obj/structure/surface/table, -/turf/open/floor{ - dir = 6; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/southeast, /area/ice_colony/surface/research/field_gear) "bGm" = ( /obj/structure/bed, @@ -28035,10 +21806,7 @@ /area/ice_colony/underground/crew/dorm_r) "bGq" = ( /obj/structure/filingcabinet, -/turf/open/floor{ - dir = 9; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/northwest, /area/ice_colony/underground/security/interrogation) "bGr" = ( /obj/structure/machinery/power/apc{ @@ -28046,76 +21814,42 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/north, /area/ice_colony/underground/security/interrogation) "bGs" = ( /obj/structure/surface/table/reinforced, /obj/item/storage/box/evidence, /obj/item/tool/hand_labeler, -/turf/open/floor{ - dir = 5; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/northeast, /area/ice_colony/underground/security/interrogation) "bGt" = ( -/turf/open/floor{ - dir = 9; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/northwest, /area/ice_colony/underground/security/interrogation) "bGu" = ( -/turf/open/floor{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/north, /area/ice_colony/underground/security/interrogation) "bGv" = ( -/turf/open/floor{ - dir = 5; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/northeast, /area/ice_colony/underground/security/interrogation) "bGw" = ( /turf/closed/ice_rock/corners, /area/ice_colony/exterior/underground/caves) "bGx" = ( -/turf/open/floor{ - dir = 4; - icon_state = "darkbrowncorners2" - }, +/turf/open/floor/darkbrowncorners2/east, /area/ice_colony/surface/research) "bGy" = ( /obj/structure/bed/chair/office/light{ dir = 8 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/research) "bGz" = ( /obj/structure/machinery/light{ dir = 4 }, /obj/structure/machinery/r_n_d/protolathe, -/turf/open/floor{ - dir = 4; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/east, /area/ice_colony/underground/research) -"bGA" = ( -/obj/structure/pipes/standard/simple/hidden/green, -/obj/structure/machinery/door/airlock/almayer/secure/colony{ - dir = 2; - locked = 0; - name = "Underground Secure Technical Storage" - }, -/turf/open/floor{ - icon_state = "dark2" - }, -/area/ice_colony/underground/storage/highsec) "bGB" = ( /turf/closed/wall/r_wall, /area/ice_colony/underground/command/checkpoint) @@ -28124,9 +21858,7 @@ dir = 1; name = "\improper Underground Security Checkpoint" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/command/checkpoint) "bGD" = ( /obj/structure/window/framed/colony/reinforced, @@ -28137,14 +21869,10 @@ /obj/structure/machinery/door/airlock/multi_tile/almayer/comdoor/colony{ name = "\improper Colony Administration" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/command/checkpoint) "bGF" = ( -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/command/checkpoint) "bGG" = ( /obj/structure/window/framed/colony/reinforced, @@ -28198,46 +21926,29 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/west, /area/ice_colony/underground/security/interrogation) "bGR" = ( /obj/structure/surface/table/reinforced, /obj/item/evidencebag, -/turf/open/floor{ - dir = 4; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/east, /area/ice_colony/underground/security/interrogation) "bGS" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/west, /area/ice_colony/underground/security/interrogation) "bGT" = ( -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/security/interrogation) "bGU" = ( /obj/structure/surface/table, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 5; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/northeast, /area/ice_colony/surface/research/temporary) "bGV" = ( -/turf/open/floor{ - dir = 4; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/east, /area/ice_colony/underground/security/interrogation) "bGW" = ( /obj/structure/disposalpipe/segment, @@ -28245,10 +21956,7 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/east, /area/ice_colony/underground/security/hallway) "bGX" = ( /turf/closed/wall/r_wall, @@ -28260,10 +21968,7 @@ /obj/item/stack/sheet/mineral/phoron, /obj/item/stack/sheet/mineral/phoron, /obj/item/stack/sheet/mineral/phoron, -/turf/open/floor{ - dir = 9; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/northwest, /area/ice_colony/underground/research/work) "bGZ" = ( /obj/structure/machinery/power/apc{ @@ -28273,65 +21978,41 @@ }, /obj/structure/filingcabinet, /obj/item/paper/research_notes, -/turf/open/floor{ - dir = 1; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/north, /area/ice_colony/underground/research/work) "bHa" = ( /obj/structure/machinery/chem_master, -/turf/open/floor{ - dir = 1; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/north, /area/ice_colony/underground/research/work) "bHb" = ( /obj/structure/machinery/chem_dispenser, /obj/item/reagent_container/glass/beaker/bluespace, -/turf/open/floor{ - dir = 5; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/northeast, /area/ice_colony/underground/research/work) "bHc" = ( /obj/structure/bed/chair/office/light{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/research) "bHd" = ( /obj/structure/machinery/r_n_d/destructive_analyzer, -/turf/open/floor{ - dir = 4; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/east, /area/ice_colony/underground/research) "bHe" = ( /obj/structure/machinery/r_n_d/server, -/turf/open/floor{ - dir = 10; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/southwest, /area/ice_colony/underground/research/storage) "bHf" = ( /obj/structure/machinery/light, -/turf/open/floor{ - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2, /area/ice_colony/underground/research/storage) "bHg" = ( -/turf/open/floor{ - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2, /area/ice_colony/underground/research/storage) "bHh" = ( /obj/structure/closet/radiation, -/turf/open/floor{ - dir = 6; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/southeast, /area/ice_colony/underground/research/storage) "bHi" = ( /turf/closed/wall/r_wall, @@ -28349,19 +22030,13 @@ dir = 4; pixel_x = -24 }, -/turf/open/floor{ - dir = 9; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/northwest, /area/ice_colony/underground/storage) "bHk" = ( /obj/structure/surface/table, /obj/effect/spawner/random/toolbox, /obj/effect/spawner/random/tool, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/ice_colony/underground/storage) "bHl" = ( /obj/structure/surface/table, @@ -28369,23 +22044,15 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/ice_colony/underground/storage) "bHm" = ( /obj/structure/closet/emcloset, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/ice_colony/underground/storage) "bHn" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/storage) "bHo" = ( /obj/structure/machinery/power/apc{ @@ -28393,27 +22060,18 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/ice_colony/underground/storage) "bHp" = ( /obj/structure/machinery/cm_vending/sorted/tech/electronics_storage, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/ice_colony/underground/storage) "bHq" = ( /obj/structure/machinery/cm_vending/sorted/tech/tool_storage, /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/ice_colony/underground/storage) "bHr" = ( /obj/structure/ladder{ @@ -28421,25 +22079,16 @@ icon_state = "ladderup"; id = "garage_ladder" }, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/ice_colony/underground/storage) "bHs" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk, -/turf/open/floor{ - dir = 5; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/northeast, /area/ice_colony/underground/storage) "bHt" = ( /obj/structure/machinery/computer/cameras, -/turf/open/floor{ - dir = 9; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/northwest, /area/ice_colony/underground/command/checkpoint) "bHu" = ( /obj/structure/machinery/power/apc{ @@ -28448,55 +22097,35 @@ start_charge = 0 }, /obj/structure/closet/secure_closet/security, -/turf/open/floor{ - dir = 5; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/northeast, /area/ice_colony/underground/command/checkpoint) "bHv" = ( /obj/structure/flora/pottedplant, -/turf/open/floor{ - dir = 9; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/northwest, /area/ice_colony/underground/command/checkpoint) "bHw" = ( /obj/structure/bed/chair, -/turf/open/floor{ - dir = 1; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/north, /area/ice_colony/underground/command/checkpoint) "bHx" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/command/checkpoint) "bHy" = ( /obj/structure/bed/chair, /obj/structure/disposalpipe/segment, -/turf/open/floor{ - dir = 1; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/north, /area/ice_colony/underground/command/checkpoint) "bHz" = ( /obj/structure/bed/chair, /obj/structure/closet/hydrant{ pixel_y = 32 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/north, /area/ice_colony/underground/command/checkpoint) "bHA" = ( /obj/structure/surface/table, -/turf/open/floor{ - dir = 5; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/northeast, /area/ice_colony/underground/command/checkpoint) "bHB" = ( /obj/structure/closet/secure_closet/personal, @@ -28554,90 +22183,61 @@ /area/ice_colony/underground/crew/dorm_r) "bHM" = ( /obj/structure/filingcabinet, -/turf/open/floor{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/west, /area/ice_colony/underground/security/interrogation) "bHP" = ( /obj/structure/machinery/door/airlock/almayer/security/colony{ name = "\improper Underground Security Evidence Storage" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/security/interrogation) "bHQ" = ( /obj/structure/bed/chair/office/dark{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/security/interrogation) "bHR" = ( /obj/structure/surface/table, /obj/item/device/flashlight/lamp, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/security/interrogation) "bHS" = ( /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/security/interrogation) "bHT" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ name = "\improper Underground Security Interrogation" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/security/interrogation) "bHU" = ( -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/security/hallway) "bHV" = ( /obj/structure/surface/table/reinforced, -/turf/open/floor{ - dir = 8; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/west, /area/ice_colony/underground/research/work) "bHX" = ( -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/research/work) "bHY" = ( /obj/structure/bed/chair/office/light{ dir = 1 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/east, /area/ice_colony/underground/research/work) "bHZ" = ( /obj/structure/machinery/r_n_d/circuit_imprinter, -/turf/open/floor{ - dir = 4; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/east, /area/ice_colony/underground/research) "bIa" = ( /obj/structure/mineral_door/resin, /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/floor{ - dir = 9; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/northwest, /area/ice_colony/underground/research) "bIb" = ( /obj/item/stack/sheet/wood, @@ -28659,42 +22259,30 @@ "bIf" = ( /obj/structure/surface/table, /obj/item/storage/box/lightstick, -/turf/open/floor{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/west, /area/ice_colony/underground/storage) "bIg" = ( -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/storage) "bIi" = ( /obj/structure/disposalpipe/segment{ dir = 4; icon_state = "pipe-c" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/storage) "bIj" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/storage) "bIk" = ( /obj/structure/disposalpipe/segment{ dir = 8; icon_state = "pipe-c" }, -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/ice_colony/underground/storage) "bIl" = ( /obj/structure/machinery/alarm{ @@ -28704,28 +22292,17 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/west, /area/ice_colony/underground/command/checkpoint) "bIm" = ( -/turf/open/floor{ - dir = 4; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/east, /area/ice_colony/underground/command/checkpoint) "bIn" = ( -/turf/open/floor{ - dir = 8; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/west, /area/ice_colony/underground/command/checkpoint) "bIo" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/command/checkpoint) "bIp" = ( /obj/structure/bed/chair{ @@ -28734,10 +22311,7 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/east, /area/ice_colony/underground/command/checkpoint) "bIq" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -28768,16 +22342,10 @@ "bIu" = ( /obj/structure/surface/table/reinforced, /obj/item/device/flashlight/lamp, -/turf/open/floor{ - dir = 4; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/east, /area/ice_colony/underground/security/interrogation) "bIv" = ( -/turf/open/floor{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/west, /area/ice_colony/underground/security/interrogation) "bIx" = ( /obj/structure/tunnel{ @@ -28790,10 +22358,7 @@ dir = 8; pixel_x = 24 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/east, /area/ice_colony/surface/hangar/alpha) "bIC" = ( /obj/structure/window/framed/colony/reinforced, @@ -28801,62 +22366,42 @@ /area/ice_colony/underground/research) "bID" = ( /obj/structure/flora/pottedplant, -/turf/open/floor{ - dir = 1; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/north, /area/ice_colony/underground/research) "bIE" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/north, /area/ice_colony/underground/research) "bIF" = ( -/turf/open/floor{ - dir = 1; - icon_state = "darkpurplecorners2" - }, +/turf/open/floor/darkpurplecorners2/north, /area/ice_colony/underground/hallway/north_west) "bIG" = ( /obj/structure/machinery/space_heater, -/turf/open/floor{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/west, /area/ice_colony/underground/storage) "bIH" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/storage) "bII" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/storage) "bIJ" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/storage) "bIK" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/storage) "bIL" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony{ @@ -28869,10 +22414,7 @@ dir = 8; pixel_x = -24 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/west, /area/ice_colony/underground/command/checkpoint) "bIN" = ( /obj/structure/surface/table/reinforced, @@ -28890,156 +22432,103 @@ /area/ice_colony/underground/command/checkpoint) "bIO" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/command/checkpoint) "bIP" = ( /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/east, /area/ice_colony/underground/command/checkpoint) "bIQ" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk{ dir = 4 }, -/turf/open/floor{ - dir = 9; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/northwest, /area/ice_colony/underground/command/checkpoint) "bIR" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/north, /area/ice_colony/underground/command/checkpoint) "bIS" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/disposalpipe/junction, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/command/checkpoint) "bIT" = ( /obj/structure/reagent_dispensers/water_cooler, -/turf/open/floor{ - dir = 1; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/north, /area/ice_colony/underground/command/checkpoint) "bIU" = ( /obj/structure/noticeboard{ pixel_y = 32 }, /obj/structure/pipes/vents/pump, -/turf/open/floor{ - dir = 1; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/north, /area/ice_colony/underground/command/checkpoint) "bIV" = ( /obj/structure/surface/table, -/turf/open/floor{ - dir = 1; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/north, /area/ice_colony/underground/command/checkpoint) "bIW" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/disposalpipe/segment, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/command/checkpoint) "bIX" = ( /obj/structure/machinery/vending/snack, -/turf/open/floor{ - dir = 5; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/northeast, /area/ice_colony/underground/command/checkpoint) "bIY" = ( /obj/structure/filingcabinet, -/turf/open/floor{ - dir = 10; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/southwest, /area/ice_colony/underground/security/interrogation) "bIZ" = ( -/turf/open/floor{ - icon_state = "darkred2" - }, +/turf/open/floor/darkred2, /area/ice_colony/underground/security/interrogation) "bJa" = ( /obj/structure/surface/table/reinforced, -/turf/open/floor{ - dir = 6; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/southeast, /area/ice_colony/underground/security/interrogation) "bJb" = ( -/turf/open/floor{ - dir = 10; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/southwest, /area/ice_colony/underground/security/interrogation) "bJc" = ( /obj/structure/machinery/camera/autoname{ dir = 1; network = list("interrogation") }, -/turf/open/floor{ - icon_state = "darkred2" - }, +/turf/open/floor/darkred2, /area/ice_colony/underground/security/interrogation) "bJd" = ( -/turf/open/floor{ - dir = 6; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/southeast, /area/ice_colony/underground/security/interrogation) "bJe" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper Underground Security Checkpoint" }, -/turf/open/floor{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/west, /area/ice_colony/underground/security/hallway) "bJf" = ( /obj/structure/surface/table, /obj/effect/spawner/random/tech_supply, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/ice_colony/surface/research/tech_storage) "bJg" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/research/work) "bJh" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/research/work) "bJi" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -29049,38 +22538,26 @@ dir = 1; name = "\improper Theta-V Research Laboratory" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/research/work) "bJk" = ( /obj/effect/landmark/corpsespawner/russian, /obj/effect/decal/cleanable/blood, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/research) "bJo" = ( /obj/structure/closet/firecloset, -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/ice_colony/underground/storage) "bJp" = ( /obj/structure/filingcabinet, -/turf/open/floor{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/west, /area/ice_colony/underground/command/checkpoint) "bJq" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/command/checkpoint) "bJr" = ( /obj/structure/bed/chair/office/light{ @@ -29089,10 +22566,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/east, /area/ice_colony/underground/command/checkpoint) "bJs" = ( /obj/structure/surface/table/reinforced, @@ -29106,24 +22580,17 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/west, /area/ice_colony/underground/command/checkpoint) "bJt" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/command/checkpoint) "bJu" = ( /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/command/checkpoint) "bJv" = ( /obj/structure/pipes/standard/manifold/fourway/hidden/green, @@ -29131,9 +22598,7 @@ dir = 4; icon_state = "pipe-c" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/command/checkpoint) "bJw" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -29143,9 +22608,7 @@ dir = 8; icon_state = "pipe-j2" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/command/checkpoint) "bJx" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -29155,9 +22618,7 @@ dir = 8; icon_state = "pipe-c" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/command/checkpoint) "bJy" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -29167,9 +22628,7 @@ dir = 4; icon_state = "pipe-c" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/command/checkpoint) "bJz" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -29178,9 +22637,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/command/checkpoint) "bJA" = ( /obj/structure/disposalpipe/segment{ @@ -29189,9 +22646,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/command/checkpoint) "bJB" = ( /obj/structure/disposalpipe/junction{ @@ -29201,9 +22656,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/command/checkpoint) "bJC" = ( /obj/structure/disposalpipe/segment{ @@ -29211,25 +22664,18 @@ icon_state = "pipe-c" }, /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/command/checkpoint) "bJE" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/command/checkpoint) "bJF" = ( /obj/structure/machinery/vending/coffee, -/turf/open/floor{ - dir = 4; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/east, /area/ice_colony/underground/command/checkpoint) "bJG" = ( /obj/structure/window/framed/colony/reinforced/tinted, @@ -29237,7 +22683,7 @@ /area/ice_colony/underground/security/interrogation) "bJH" = ( /obj/structure/surface/table/reinforced, -/obj/item/handcuffs, +/obj/item/restraint/handcuffs, /obj/structure/machinery/flasher_button{ id = "sec_checkpoint"; pixel_y = 24 @@ -29247,10 +22693,7 @@ name = "Checkpoint Lockdown"; pixel_y = 36 }, -/turf/open/floor{ - dir = 9; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/northwest, /area/ice_colony/underground/security/hallway) "bJI" = ( /obj/structure/surface/table/reinforced, @@ -29259,10 +22702,7 @@ /obj/structure/machinery/firealarm{ pixel_y = 24 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/north, /area/ice_colony/underground/security/hallway) "bJJ" = ( /obj/structure/surface/table/reinforced, @@ -29279,10 +22719,7 @@ /obj/structure/machinery/alarm{ pixel_y = 24 }, -/turf/open/floor{ - dir = 5; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/northeast, /area/ice_colony/underground/security/hallway) "bJK" = ( /obj/structure/mineral_door/resin, @@ -29291,37 +22728,25 @@ "bJL" = ( /obj/structure/surface/table/reinforced, /obj/item/storage/box/syringes, -/turf/open/floor{ - dir = 8; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/west, /area/ice_colony/underground/research/work) "bJM" = ( -/turf/open/floor{ - dir = 4; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/east, /area/ice_colony/underground/research/work) "bJN" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/research) "bJO" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/medidoor/colony{ dir = 1; name = "\improper Theta-V Research Laboratory" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/research) "bJP" = ( /obj/item/weapon/baton, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/research) "bJQ" = ( /obj/structure/surface/table, @@ -29331,123 +22756,85 @@ dir = 8; pixel_x = -24 }, -/turf/open/floor{ - dir = 10; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/southwest, /area/ice_colony/underground/storage) "bJT" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/ice_colony/underground/storage) "bJU" = ( -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/ice_colony/underground/storage) "bJV" = ( /obj/structure/machinery/cm_vending/sorted/tech/comp_storage{ req_access_txt = "102" }, -/turf/open/floor{ - dir = 6; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/southeast, /area/ice_colony/underground/storage) "bJW" = ( /obj/structure/filingcabinet, -/turf/open/floor{ - dir = 10; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/southwest, /area/ice_colony/underground/command/checkpoint) "bJX" = ( -/turf/open/floor{ - icon_state = "darkred2" - }, +/turf/open/floor/darkred2, /area/ice_colony/underground/command/checkpoint) "bJY" = ( -/turf/open/floor{ - dir = 6; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/southeast, /area/ice_colony/underground/command/checkpoint) "bJZ" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk{ dir = 4 }, -/turf/open/floor{ - dir = 10; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/southwest, /area/ice_colony/underground/command/checkpoint) "bKa" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor{ - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2, /area/ice_colony/underground/command/checkpoint) "bKc" = ( /obj/structure/disposalpipe/segment{ dir = 1; icon_state = "pipe-c" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/command/checkpoint) "bKd" = ( /obj/structure/disposalpipe/segment{ dir = 8; icon_state = "pipe-c" }, -/turf/open/floor{ - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2, /area/ice_colony/underground/command/checkpoint) "bKe" = ( -/turf/open/floor{ - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2, /area/ice_colony/underground/command/checkpoint) "bKf" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/comdoor/colony{ dir = 1; name = "\improper Colony Offices" }, -/turf/open/floor{ - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2, /area/ice_colony/underground/command/checkpoint) "bKg" = ( /obj/structure/disposalpipe/segment{ dir = 1; icon_state = "pipe-c" }, -/turf/open/floor{ - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2, /area/ice_colony/underground/command/checkpoint) "bKh" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, /obj/structure/machinery/light, -/turf/open/floor{ - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2, /area/ice_colony/underground/command/checkpoint) "bKi" = ( /obj/structure/machinery/vending/cigarette/colony, -/turf/open/floor{ - dir = 6; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/southeast, /area/ice_colony/underground/command/checkpoint) "bKj" = ( /obj/structure/bed, @@ -29514,10 +22901,7 @@ /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor{ - dir = 9; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/northwest, /area/ice_colony/underground/security/backroom) "bKv" = ( /obj/structure/machinery/computer/cameras/telescreen{ @@ -29528,10 +22912,7 @@ /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/north, /area/ice_colony/underground/security/backroom) "bKw" = ( /obj/structure/bed/chair{ @@ -29542,17 +22923,11 @@ pixel_x = 24; start_charge = 0 }, -/turf/open/floor{ - dir = 5; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/northeast, /area/ice_colony/underground/security/backroom) "bKx" = ( /obj/structure/closet/emcloset, -/turf/open/floor{ - dir = 9; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/northwest, /area/ice_colony/underground/security/hallway) "bKy" = ( /obj/structure/machinery/flasher{ @@ -29561,17 +22936,12 @@ pixel_x = -32; pixel_y = 32 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkredcorners2" - }, +/turf/open/floor/darkredcorners2/north, /area/ice_colony/underground/security/hallway) "bKz" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/security/hallway) "bKA" = ( /obj/structure/surface/table/reinforced, @@ -29593,17 +22963,13 @@ name = "Checkpoint Lockdown"; pixel_y = 7 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/security/hallway) "bKB" = ( /obj/structure/bed/chair/office/dark{ dir = 8 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/security/hallway) "bKD" = ( /obj/structure/machinery/power/apc{ @@ -29611,39 +22977,25 @@ pixel_x = 24; start_charge = 0 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/east, /area/ice_colony/underground/security/hallway) "bKE" = ( /obj/structure/surface/table/reinforced, /obj/item/storage/box/beakers, -/turf/open/floor{ - dir = 10; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/southwest, /area/ice_colony/underground/research/work) "bKF" = ( /obj/structure/surface/table, /obj/effect/spawner/random/tech_supply, -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/ice_colony/surface/research/tech_storage) "bKG" = ( /obj/structure/machinery/r_n_d/protolathe, -/turf/open/floor{ - dir = 6; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/southeast, /area/ice_colony/underground/research/work) "bKH" = ( /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/research) "bKI" = ( /obj/structure/window/framed/colony/reinforced, @@ -29657,53 +23009,40 @@ dir = 4 }, /obj/structure/flora/pottedplant, -/turf/open/floor{ - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2, /area/ice_colony/underground/research) "bKK" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2, /area/ice_colony/underground/research) "bKL" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/structure/machinery/light, -/turf/open/floor{ - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2, /area/ice_colony/underground/research) "bKM" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkpurplecorners2" - }, +/turf/open/floor/darkpurplecorners2/west, /area/ice_colony/underground/hallway/north_west) "bKN" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, /obj/structure/disposalpipe/junction, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/hallway/north_west) "bKO" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony{ dir = 1; name = "\improper Underground Technical Storage" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/storage) "bKP" = ( /obj/structure/window/framed/colony/reinforced, @@ -29716,9 +23055,7 @@ dir = 1; name = "\improper Underground Technical Storage" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/storage) "bKR" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -29726,9 +23063,7 @@ /obj/structure/machinery/door/airlock/multi_tile/almayer/comdoor/colony{ name = "\improper Colony Administration" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/command/checkpoint) "bKS" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -29771,22 +23106,14 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/west, /area/ice_colony/underground/security/backroom) "bKZ" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/security/backroom) "bLa" = ( -/turf/open/floor{ - dir = 4; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/east, /area/ice_colony/underground/security/backroom) "bLb" = ( /obj/structure/closet/firecloset/full, @@ -29797,77 +23124,52 @@ dir = 4; pixel_x = -24 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/west, /area/ice_colony/underground/security/hallway) "bLc" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/ice_colony/underground/security/hallway) "bLd" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/east, /area/ice_colony/underground/security/hallway) "bLe" = ( /obj/structure/window/framed/colony/reinforced, /turf/open/floor/plating, /area/ice_colony/underground/security/hallway) "bLf" = ( -/turf/open/floor{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/west, /area/ice_colony/underground/security/hallway) "bLg" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/security/hallway) "bLh" = ( /obj/structure/machinery/light{ dir = 4 }, /obj/structure/filingcabinet/security, -/turf/open/floor{ - dir = 4; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/east, /area/ice_colony/underground/security/hallway) "bLi" = ( -/turf/open/floor{ - dir = 10; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/southwest, /area/ice_colony/underground/research) "bLj" = ( /obj/structure/machinery/light, -/turf/open/floor{ - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2, /area/ice_colony/underground/research) "bLk" = ( -/turf/open/floor{ - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2, /area/ice_colony/underground/research) "bLl" = ( /obj/structure/surface/rack, -/turf/open/floor{ - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2, /area/ice_colony/underground/research) "bLm" = ( /obj/structure/machinery/shower{ @@ -29876,17 +23178,13 @@ /obj/structure/window/reinforced/tinted{ dir = 8 }, -/turf/open/floor{ - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2, /area/ice_colony/underground/research) "bLn" = ( /obj/structure/machinery/shower{ dir = 1 }, -/turf/open/floor{ - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2, /area/ice_colony/underground/research) "bLo" = ( /obj/structure/machinery/shower{ @@ -29895,15 +23193,10 @@ /obj/structure/window/reinforced/tinted{ dir = 4 }, -/turf/open/floor{ - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2, /area/ice_colony/underground/research) "bLp" = ( -/turf/open/floor{ - dir = 6; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/southeast, /area/ice_colony/underground/research) "bLq" = ( /obj/structure/barricade/wooden, @@ -29911,92 +23204,59 @@ /turf/open/ice, /area/ice_colony/underground/research) "bLr" = ( -/turf/open/floor{ - dir = 4; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/darkyellowcorners2/east, /area/ice_colony/underground/hallway/north_west) "bLt" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/ice_colony/underground/hallway/south_east) "bLu" = ( -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/ice_colony/underground/hallway/south_east) "bLw" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/ice_colony/underground/hallway/south_east) "bLy" = ( /obj/structure/closet/hydrant{ pixel_y = 32 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/ice_colony/underground/hallway/south_east) "bLB" = ( -/turf/open/floor{ - dir = 1; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/north, /area/ice_colony/underground/hallway/south_east) "bLC" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/north, /area/ice_colony/underground/hallway/south_east) "bLE" = ( /obj/structure/closet/hydrant{ pixel_y = 32 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/north, /area/ice_colony/underground/hallway/south_east) "bLH" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/north, /area/ice_colony/underground/hallway/south_east) "bLJ" = ( /obj/structure/machinery/firealarm{ pixel_y = 24 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/north, /area/ice_colony/underground/hallway/south_east) "bLK" = ( /obj/structure/machinery/alarm{ pixel_y = 24 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/north, /area/ice_colony/underground/hallway/south_east) "bLL" = ( /obj/structure/machinery/power/apc{ @@ -30004,10 +23264,7 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/north, /area/ice_colony/underground/hallway/south_east) "bLO" = ( /turf/closed/wall/r_wall, @@ -30022,37 +23279,23 @@ "bLR" = ( /obj/structure/surface/table, /obj/item/device/radio, -/turf/open/floor{ - dir = 10; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/southwest, /area/ice_colony/underground/security/backroom) "bLS" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/security/backroom) "bLT" = ( /obj/structure/surface/table, /obj/item/device/taperecorder, -/turf/open/floor{ - dir = 6; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/southeast, /area/ice_colony/underground/security/backroom) "bLU" = ( /obj/structure/flora/pottedplant, -/turf/open/floor{ - dir = 10; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/southwest, /area/ice_colony/underground/security/hallway) "bLV" = ( -/turf/open/floor{ - dir = 8; - icon_state = "darkredcorners2" - }, +/turf/open/floor/darkredcorners2/west, /area/ice_colony/underground/security/hallway) "bLW" = ( /obj/structure/disposalpipe/segment, @@ -30061,17 +23304,11 @@ pixel_x = 24 }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 4; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/east, /area/ice_colony/underground/security/hallway) "bLX" = ( /obj/structure/filingcabinet/security, -/turf/open/floor{ - dir = 6; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/southeast, /area/ice_colony/underground/security/hallway) "bLY" = ( /obj/structure/machinery/light/small, @@ -30081,10 +23318,7 @@ /obj/structure/closet/hydrant{ pixel_x = -32 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/west, /area/ice_colony/underground/hallway/north_west) "bMa" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -30094,9 +23328,7 @@ dir = 1; icon_state = "pipe-c" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/hallway/north_west) "bMb" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -30105,9 +23337,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/hallway/north_west) "bMc" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -30116,27 +23346,21 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/hallway/south_east) "bMd" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, /obj/structure/pipes/standard/manifold/fourway/hidden/green, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/hallway/south_east) "bMe" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/structure/disposalpipe/junction, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/hallway/south_east) "bMf" = ( /obj/structure/pipes/standard/manifold/hidden/green{ @@ -30146,18 +23370,14 @@ dir = 4; icon_state = "pipe-c" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/hallway/south_east) "bMg" = ( /obj/structure/pipes/standard/manifold/hidden/green, /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/hallway/south_east) "bMh" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -30167,9 +23387,7 @@ dir = 8; icon_state = "pipe-j2" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/hallway/south_east) "bMi" = ( /obj/structure/disposalpipe/segment{ @@ -30177,9 +23395,7 @@ icon_state = "pipe-c" }, /obj/structure/pipes/standard/manifold/fourway/hidden/green, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/hallway/south_east) "bMj" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -30189,9 +23405,7 @@ dir = 4; icon_state = "pipe-c" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/hallway/south_east) "bMk" = ( /obj/structure/disposalpipe/segment{ @@ -30200,18 +23414,14 @@ /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/hallway/south_east) "bMl" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/hallway/south_east) "bMn" = ( /obj/structure/pipes/standard/manifold/hidden/green{ @@ -30220,9 +23430,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/hallway/south_east) "bMo" = ( /obj/structure/pipes/standard/manifold/hidden/green{ @@ -30232,18 +23440,13 @@ dir = 8; icon_state = "pipe-c" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/hallway/south_east) "bMp" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkredcorners2" - }, +/turf/open/floor/darkredcorners2/east, /area/ice_colony/underground/hallway/south_east) "bMq" = ( /obj/item/reagent_container/glass/bucket/mopbucket, @@ -30256,9 +23459,7 @@ dir = 1; name = "\improper Underground Security Interrogation Observation" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/security/backroom) "bMs" = ( /turf/closed/wall/r_wall, @@ -30267,18 +23468,12 @@ /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper Underground Security Checkpoint" }, -/turf/open/floor{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/west, /area/ice_colony/underground/security) "bMu" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 4; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/east, /area/ice_colony/underground/security) "bMv" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -30286,9 +23481,7 @@ dir = 1; name = "\improper Underground Security Lobby" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/security) "bMw" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -30300,35 +23493,26 @@ /area/ice_colony/underground/security) "bMx" = ( /obj/structure/closet/emcloset, -/turf/open/floor{ - dir = 8; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/west, /area/ice_colony/underground/hallway/north_west) "bMy" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ dir = 1; name = "\improper Underground Main Hallway" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/hallway/north_west) "bMz" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/hallway/south_east) "bMA" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/hallway/south_east) "bMC" = ( /obj/structure/disposalpipe/junction{ @@ -30336,31 +23520,23 @@ icon_state = "pipe-j2" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/hallway/south_east) "bMD" = ( /obj/structure/disposalpipe/segment{ dir = 8; icon_state = "pipe-c" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/hallway/south_east) "bME" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/hallway/south_east) "bMG" = ( /obj/effect/decal/cleanable/blood, /obj/effect/landmark/corpsespawner/scientist, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/hallway/south_east) "bMH" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -30368,50 +23544,34 @@ dir = 2; icon_state = "pipe-c" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/hallway/south_east) "bMI" = ( -/turf/open/floor{ - icon_state = "darkgreencorners2" - }, +/turf/open/floor/darkgreencorners2, /area/ice_colony/underground/hallway/south_east) "bMJ" = ( /obj/structure/closet/crate/secure/weapon, /obj/structure/curtain/black, -/turf/open/floor{ - dir = 9; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/northwest, /area/ice_colony/underground/security/backroom) "bMK" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk{ dir = 4 }, -/turf/open/floor{ - dir = 9; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/northwest, /area/ice_colony/underground/security) "bML" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/north, /area/ice_colony/underground/security) "bMM" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkredcorners2" - }, +/turf/open/floor/darkredcorners2/north, /area/ice_colony/underground/security) "bMN" = ( /obj/structure/disposalpipe/segment{ @@ -30419,43 +23579,29 @@ icon_state = "pipe-c" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 4; - icon_state = "darkredcorners2" - }, +/turf/open/floor/darkredcorners2/east, /area/ice_colony/underground/security) "bMO" = ( /obj/structure/sign/goldenplaque{ pixel_y = 32 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/north, /area/ice_colony/underground/security) "bMP" = ( /obj/structure/noticeboard{ pixel_y = 32 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/north, /area/ice_colony/underground/security) "bMQ" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/security) "bMR" = ( /obj/structure/machinery/firealarm{ pixel_y = 24 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/north, /area/ice_colony/underground/security) "bMS" = ( /obj/structure/machinery/power/apc{ @@ -30463,81 +23609,51 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/north, /area/ice_colony/underground/security) "bMT" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/north, /area/ice_colony/underground/security) "bMU" = ( /obj/item/storage/donut_box, /obj/structure/surface/table/reinforced, -/turf/open/floor{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/north, /area/ice_colony/underground/security) "bMV" = ( /obj/item/device/taperecorder, /obj/item/clothing/glasses/sunglasses, /obj/structure/surface/table/reinforced, -/turf/open/floor{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/north, /area/ice_colony/underground/security) "bMW" = ( /obj/item/paper_bin, /obj/item/tool/pen/blue, /obj/structure/surface/table/reinforced, -/turf/open/floor{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/north, /area/ice_colony/underground/security) "bMX" = ( /obj/item/book/manual/marine_law, /obj/structure/surface/table/reinforced, -/obj/item/handcuffs, -/turf/open/floor{ - dir = 1; - icon_state = "darkred2" - }, +/obj/item/restraint/handcuffs, +/turf/open/floor/darkred2/north, /area/ice_colony/underground/security) "bMY" = ( /obj/structure/surface/table/reinforced, -/turf/open/floor{ - dir = 5; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/northeast, /area/ice_colony/underground/security) "bMZ" = ( /obj/structure/closet/emcloset, -/turf/open/floor{ - dir = 10; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/southwest, /area/ice_colony/underground/hallway/north_west) "bNa" = ( -/turf/open/floor{ - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2, /area/ice_colony/underground/hallway/north_west) "bNb" = ( -/turf/open/floor{ - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2, /area/ice_colony/underground/hallway/south_east) "bNc" = ( -/turf/open/floor{ - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2, /area/ice_colony/underground/hallway/south_east) "bNf" = ( /obj/structure/largecrate/random, @@ -30548,43 +23664,29 @@ dir = 8 }, /obj/structure/pipes/vents/pump, -/turf/open/floor{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/west, /area/ice_colony/underground/security/backroom) "bNh" = ( -/turf/open/floor{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/west, /area/ice_colony/underground/security) "bNi" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/security) "bNk" = ( /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/security) "bNo" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/security) "bNr" = ( -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/security) "bNs" = ( /obj/item/storage/box/donkpockets, @@ -30593,10 +23695,7 @@ dir = 8; pixel_x = 24 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/east, /area/ice_colony/underground/security) "bNt" = ( /turf/closed/wall/r_wall, @@ -30608,9 +23707,7 @@ dir = 1; name = "\improper Underground Disposals" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/crew/disposals) "bNv" = ( /turf/closed/wall/r_wall, @@ -30622,9 +23719,7 @@ dir = 1; name = "\improper Underground Lavatory" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/crew/lavatory) "bNx" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -30636,26 +23731,18 @@ /area/ice_colony/underground/hallway/south_east) "bNy" = ( /obj/structure/closet/emcloset, -/turf/open/floor{ - dir = 10; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/southwest, /area/ice_colony/underground/hallway/south_east) "bNz" = ( /obj/structure/closet/emcloset, -/turf/open/floor{ - dir = 6; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/southeast, /area/ice_colony/underground/hallway/south_east) "bNA" = ( /turf/closed/wall/r_wall, /area/ice_colony/underground/crew/leisure) "bNB" = ( /obj/structure/window/framed/colony/reinforced, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/crew/leisure) "bND" = ( /turf/open/floor/wood, @@ -30692,9 +23779,7 @@ /area/ice_colony/underground/security/backroom) "bNJ" = ( /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/security/backroom) "bNL" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -30703,62 +23788,43 @@ /obj/structure/machinery/door/airlock/almayer/security/colony{ name = "\improper Underground Security Custodial Closet" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/security/backroom) "bNO" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/security) "bNP" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/security) "bNQ" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/security) "bNR" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/security) "bNS" = ( /obj/structure/machinery/microwave, /obj/structure/surface/table/reinforced, -/turf/open/floor{ - dir = 4; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/east, /area/ice_colony/underground/security) "bNT" = ( /obj/structure/closet/crate/trashcart, -/turf/open/floor{ - dir = 9; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/northwest, /area/ice_colony/underground/crew/disposals) "bNU" = ( -/turf/open/floor{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/north, /area/ice_colony/underground/crew/disposals) "bNV" = ( /obj/structure/ladder{ @@ -30766,26 +23832,18 @@ icon_state = "ladderup"; id = "janitor_ladder" }, -/turf/open/floor{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/north, /area/ice_colony/underground/crew/disposals) "bNW" = ( /obj/structure/machinery/firealarm{ pixel_y = 24 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/north, /area/ice_colony/underground/crew/disposals) "bNX" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/disposalpipe/segment, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/crew/disposals) "bNY" = ( /obj/structure/machinery/power/apc{ @@ -30793,45 +23851,27 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/north, /area/ice_colony/underground/crew/disposals) "bNZ" = ( /obj/structure/machinery/alarm{ pixel_y = 24 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/north, /area/ice_colony/underground/crew/disposals) "bOa" = ( -/turf/open/floor{ - dir = 5; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/northeast, /area/ice_colony/underground/crew/disposals) "bOb" = ( /obj/structure/machinery/washing_machine, -/turf/open/floor{ - dir = 9; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/northwest, /area/ice_colony/underground/crew/lavatory) "bOc" = ( -/turf/open/floor{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/north, /area/ice_colony/underground/crew/lavatory) "bOd" = ( /obj/structure/closet/jcloset, -/turf/open/floor{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/north, /area/ice_colony/underground/crew/lavatory) "bOe" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -30839,9 +23879,7 @@ dir = 1; icon_state = "pipe-c" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/crew/lavatory) "bOf" = ( /obj/structure/disposalpipe/trunk{ @@ -30851,25 +23889,16 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/north, /area/ice_colony/underground/crew/lavatory) "bOg" = ( /obj/structure/surface/table, /obj/structure/bedsheetbin, -/turf/open/floor{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/north, /area/ice_colony/underground/crew/lavatory) "bOh" = ( /obj/structure/machinery/washing_machine, -/turf/open/floor{ - dir = 5; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/northeast, /area/ice_colony/underground/crew/lavatory) "bOi" = ( /obj/structure/reagent_dispensers/fueltank, @@ -30917,17 +23946,11 @@ "bOs" = ( /obj/structure/surface/table, /obj/item/storage/box/trackimp, -/turf/open/floor{ - dir = 6; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/southeast, /area/ice_colony/underground/security/backroom) "bOt" = ( /obj/structure/reagent_dispensers/water_cooler, -/turf/open/floor{ - dir = 10; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/southwest, /area/ice_colony/underground/security) "bOu" = ( /obj/structure/bed/chair/office/dark{ @@ -30937,27 +23960,21 @@ dir = 8 }, /obj/structure/machinery/light, -/turf/open/floor{ - icon_state = "darkred2" - }, +/turf/open/floor/darkred2, /area/ice_colony/underground/security) "bOv" = ( /obj/structure/machinery/computer/cameras, /obj/structure/window/reinforced/tinted{ dir = 4 }, -/turf/open/floor{ - icon_state = "darkred2" - }, +/turf/open/floor/darkred2, /area/ice_colony/underground/security) "bOw" = ( /obj/structure/machinery/computer/cameras, /obj/structure/window/reinforced/tinted{ dir = 8 }, -/turf/open/floor{ - icon_state = "darkred2" - }, +/turf/open/floor/darkred2, /area/ice_colony/underground/security) "bOx" = ( /obj/structure/bed/chair/office/dark{ @@ -30966,15 +23983,11 @@ /obj/structure/window/reinforced/tinted{ dir = 4 }, -/turf/open/floor{ - icon_state = "darkred2" - }, +/turf/open/floor/darkred2, /area/ice_colony/underground/security) "bOy" = ( /obj/structure/machinery/photocopier, -/turf/open/floor{ - icon_state = "darkred2" - }, +/turf/open/floor/darkred2, /area/ice_colony/underground/security) "bOz" = ( /obj/structure/machinery/light, @@ -30984,49 +23997,35 @@ /obj/structure/window/reinforced/tinted{ dir = 8 }, -/turf/open/floor{ - icon_state = "darkred2" - }, +/turf/open/floor/darkred2, /area/ice_colony/underground/security) "bOB" = ( /obj/structure/machinery/light, -/turf/open/floor{ - icon_state = "darkred2" - }, +/turf/open/floor/darkred2, /area/ice_colony/underground/security) "bOC" = ( /obj/structure/machinery/vending/snack, -/turf/open/floor{ - dir = 6; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/southeast, /area/ice_colony/underground/security) "bOD" = ( /obj/structure/closet/crate/trashcart, /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/west, /area/ice_colony/underground/crew/disposals) "bOE" = ( /obj/structure/disposalpipe/segment{ dir = 4; icon_state = "pipe-c" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/crew/disposals) "bOF" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/crew/disposals) "bOG" = ( /obj/structure/disposalpipe/segment{ @@ -31036,59 +24035,40 @@ /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/crew/disposals) "bOH" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/crew/disposals) "bOI" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/crew/disposals) "bOJ" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/east, /area/ice_colony/underground/crew/disposals) "bOK" = ( /obj/structure/machinery/washing_machine, -/turf/open/floor{ - dir = 8; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/west, /area/ice_colony/underground/crew/lavatory) "bOL" = ( -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/crew/lavatory) "bOM" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/crew/lavatory) "bON" = ( /obj/structure/machinery/washing_machine, -/turf/open/floor{ - dir = 4; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/east, /area/ice_colony/underground/crew/lavatory) "bOO" = ( /obj/structure/reagent_dispensers/watertank, @@ -31138,9 +24118,7 @@ dir = 1; name = "\improper Underground Security Armory" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/security/armory) "bOX" = ( /turf/closed/wall/r_wall, @@ -31149,9 +24127,7 @@ /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper Underground Security Brig" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/security/brig) "bPa" = ( /turf/closed/shuttle{ @@ -31160,33 +24136,21 @@ /area/space) "bPb" = ( /obj/structure/closet/crate/trashcart, -/turf/open/floor{ - dir = 8; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/west, /area/ice_colony/underground/crew/disposals) "bPc" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/crew/disposals) "bPd" = ( -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/crew/disposals) "bPe" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/crew/disposals) "bPf" = ( -/turf/open/floor{ - dir = 4; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/east, /area/ice_colony/underground/crew/disposals) "bPg" = ( /turf/open/floor/plating, @@ -31244,9 +24208,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/hallway/south_east) "bPp" = ( /obj/structure/disposalpipe/junction{ @@ -31256,9 +24218,7 @@ /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/hallway/south_east) "bPq" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -31277,16 +24237,11 @@ /area/ice_colony/underground/maintenance/security) "bPs" = ( /obj/structure/machinery/vending/security, -/turf/open/floor{ - dir = 9; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/northwest, /area/ice_colony/underground/security/armory) "bPt" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/security/armory) "bPu" = ( /obj/structure/machinery/power/apc{ @@ -31294,51 +24249,31 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/north, /area/ice_colony/underground/security/armory) "bPv" = ( /obj/structure/closet/secure_closet/security, -/turf/open/floor{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/north, /area/ice_colony/underground/security/armory) "bPw" = ( /obj/structure/closet/secure_closet/security, -/turf/open/floor{ - dir = 5; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/northeast, /area/ice_colony/underground/security/armory) "bPx" = ( -/turf/open/floor{ - dir = 9; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/northwest, /area/ice_colony/underground/security/brig) "bPy" = ( /obj/structure/bed, /obj/effect/landmark/corpsespawner/prisoner, /obj/effect/decal/cleanable/blood, -/turf/open/floor{ - dir = 5; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/northeast, /area/ice_colony/underground/security/brig) "bPz" = ( /obj/structure/machinery/computer/prisoner, -/turf/open/floor{ - dir = 9; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/northwest, /area/ice_colony/underground/security/brig) "bPA" = ( -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/security/brig) "bPC" = ( /obj/structure/machinery/power/apc{ @@ -31346,10 +24281,7 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/north, /area/ice_colony/underground/security/brig) "bPD" = ( /obj/structure/machinery/alarm{ @@ -31359,29 +24291,20 @@ dir = 4; pixel_x = 24 }, -/turf/open/floor{ - dir = 5; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/northeast, /area/ice_colony/underground/security/brig) "bPE" = ( /obj/structure/toilet, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/ice_colony/underground/security/brig) "bPF" = ( /obj/structure/urinal{ pixel_y = 32 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/ice_colony/underground/security/brig) "bPG" = ( -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/ice_colony/underground/security/brig) "bPH" = ( /obj/structure/machinery/shower{ @@ -31389,9 +24312,7 @@ }, /obj/structure/window/reinforced, /obj/structure/machinery/door/window/westleft, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/ice_colony/underground/security/brig) "bPI" = ( /turf/open/space/transit/north/shuttlespace_ns4, @@ -31404,40 +24325,29 @@ dir = 4; icon_state = "pipe-c" }, -/turf/open/floor{ - dir = 10; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/southwest, /area/ice_colony/underground/crew/disposals) "bPL" = ( /obj/structure/disposalpipe/segment{ dir = 8; icon_state = "pipe-c" }, -/turf/open/floor{ - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2, /area/ice_colony/underground/crew/disposals) "bPM" = ( -/turf/open/floor{ - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2, /area/ice_colony/underground/crew/disposals) "bPN" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor{ - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2, /area/ice_colony/underground/crew/disposals) "bPO" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/crew/lavatory) "bPR" = ( /obj/structure/bed/chair/wood/normal{ @@ -31457,26 +24367,19 @@ /area/ice_colony/underground/maintenance/security) "bPU" = ( /obj/structure/machinery/vending/security, -/turf/open/floor{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/west, /area/ice_colony/underground/security/armory) "bPV" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/security/armory) "bPW" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/security/armory) "bPX" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -31484,17 +24387,13 @@ }, /obj/effect/landmark/corpsespawner/russian, /obj/effect/decal/cleanable/blood, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/security/armory) "bPY" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/security/armory) "bPZ" = ( /obj/structure/closet/secure_closet/security, @@ -31505,28 +24404,19 @@ dir = 4; pixel_x = 24 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/east, /area/ice_colony/underground/security/armory) "bQa" = ( /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/west, /area/ice_colony/underground/security/brig) "bQb" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/ice_colony/underground/security/brig) "bQc" = ( /obj/structure/machinery/door/window/brigdoor/westleft{ @@ -31537,32 +24427,23 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/west, /area/ice_colony/underground/security/brig) "bQd" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/security/brig) "bQe" = ( /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/security/brig) "bQf" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/security/brig) "bQg" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -31571,31 +24452,23 @@ /obj/structure/machinery/door/airlock/almayer/security/colony{ name = "\improper Underground Security Showers" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/security/brig) "bQh" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/ice_colony/underground/security/brig) "bQi" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/ice_colony/underground/security/brig) "bQj" = ( /obj/item/tool/soap, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/ice_colony/underground/security/brig) "bQk" = ( /obj/structure/tunnel{ @@ -31613,20 +24486,14 @@ /obj/structure/disposaloutlet{ dir = 4 }, -/turf/open/floor/plating{ - dir = 1; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/north, /area/ice_colony/underground/crew/disposals) "bQm" = ( /obj/effect/landmark/crap_item, /obj/structure/window/reinforced{ dir = 1 }, -/turf/open/floor/plating{ - dir = 1; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/north, /area/ice_colony/underground/crew/disposals) "bQn" = ( /obj/item/evidencebag, @@ -31635,38 +24502,26 @@ /obj/structure/window/reinforced{ dir = 1 }, -/turf/open/floor/plating{ - dir = 1; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/north, /area/ice_colony/underground/crew/disposals) "bQo" = ( /obj/item/trash/semki, /obj/structure/window/reinforced{ dir = 1 }, -/turf/open/floor/plating{ - dir = 1; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/north, /area/ice_colony/underground/crew/disposals) "bQp" = ( /obj/structure/window/reinforced{ dir = 1 }, -/turf/open/floor/plating{ - dir = 1; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/north, /area/ice_colony/underground/crew/disposals) "bQr" = ( /obj/structure/machinery/door/window/northright{ name = "Disposals Chute" }, -/turf/open/floor/plating{ - dir = 1; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/north, /area/ice_colony/underground/crew/disposals) "bQs" = ( /obj/structure/window/reinforced{ @@ -31675,10 +24530,7 @@ /obj/structure/window/reinforced{ dir = 4 }, -/turf/open/floor/plating{ - dir = 5; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/northeast, /area/ice_colony/underground/crew/disposals) "bQu" = ( /turf/open/ice, @@ -31731,10 +24583,7 @@ dir = 4; pixel_x = -24 }, -/turf/open/floor{ - dir = 10; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/southwest, /area/ice_colony/underground/security/armory) "bQE" = ( /obj/structure/machinery/door_control{ @@ -31742,75 +24591,48 @@ name = "Colony Secure Armory"; pixel_y = -26 }, -/turf/open/floor{ - icon_state = "darkred2" - }, +/turf/open/floor/darkred2, /area/ice_colony/underground/security/armory) "bQF" = ( -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/security/armory) "bQG" = ( /obj/item/tool/crowbar, -/turf/open/floor{ - icon_state = "darkred2" - }, +/turf/open/floor/darkred2, /area/ice_colony/underground/security/armory) "bQH" = ( /obj/structure/closet/secure_closet/security, -/turf/open/floor{ - dir = 6; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/southeast, /area/ice_colony/underground/security/armory) "bQI" = ( -/turf/open/floor{ - dir = 10; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/southwest, /area/ice_colony/underground/security/brig) "bQJ" = ( /obj/structure/bed, -/turf/open/floor{ - dir = 6; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/southeast, /area/ice_colony/underground/security/brig) "bQK" = ( /obj/structure/closet/secure_closet/personal, -/turf/open/floor{ - dir = 10; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/southwest, /area/ice_colony/underground/security/brig) "bQL" = ( /obj/structure/closet/secure_closet/personal, -/turf/open/floor{ - icon_state = "darkred2" - }, +/turf/open/floor/darkred2, /area/ice_colony/underground/security/brig) "bQM" = ( /obj/structure/machinery/light, /obj/structure/closet/secure_closet/personal, -/turf/open/floor{ - icon_state = "darkred2" - }, +/turf/open/floor/darkred2, /area/ice_colony/underground/security/brig) "bQN" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/security/brig) "bQO" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor{ - dir = 6; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/southeast, /area/ice_colony/underground/security/brig) "bQP" = ( /obj/structure/mirror{ @@ -31820,24 +24642,18 @@ dir = 8; pixel_x = -11 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/ice_colony/underground/security/brig) "bQQ" = ( /obj/structure/machinery/light/small, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/ice_colony/underground/security/brig) "bQR" = ( /obj/structure/machinery/shower{ dir = 8 }, /obj/structure/machinery/door/window/westleft, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/ice_colony/underground/security/brig) "bQS" = ( /turf/open/floor/plating, @@ -31864,77 +24680,53 @@ /obj/structure/window/reinforced{ dir = 4 }, -/turf/open/floor/plating{ - dir = 4; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/east, /area/ice_colony/underground/crew/disposals) "bQY" = ( -/turf/open/floor{ - dir = 6; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/southeast, /area/ice_colony/underground/crew/disposals) "bQZ" = ( /obj/structure/machinery/washing_machine, -/turf/open/floor{ - dir = 10; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/southwest, /area/ice_colony/underground/crew/lavatory) "bRa" = ( /obj/structure/machinery/firealarm{ dir = 1; pixel_y = -24 }, -/turf/open/floor{ - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2, /area/ice_colony/underground/crew/lavatory) "bRb" = ( /obj/item/reagent_container/glass/bucket/mopbucket, /obj/item/tool/mop, -/turf/open/floor{ - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2, /area/ice_colony/underground/crew/lavatory) "bRc" = ( /obj/structure/surface/table, /obj/item/reagent_container/spray/cleaner, -/turf/open/floor{ - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2, /area/ice_colony/underground/crew/lavatory) "bRd" = ( /obj/structure/machinery/light, -/turf/open/floor{ - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2, /area/ice_colony/underground/crew/lavatory) "bRe" = ( /obj/structure/machinery/power/apc{ pixel_y = -24; start_charge = 0 }, -/turf/open/floor{ - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2, /area/ice_colony/underground/crew/lavatory) "bRf" = ( /obj/structure/machinery/alarm{ dir = 1; pixel_y = -24 }, -/turf/open/floor{ - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2, /area/ice_colony/underground/crew/lavatory) "bRg" = ( /obj/structure/machinery/washing_machine, -/turf/open/floor{ - dir = 6; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/southeast, /area/ice_colony/underground/crew/lavatory) "bRh" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -31947,18 +24739,13 @@ "bRi" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/manifold/fourway/hidden/green, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/hallway/south_east) "bRj" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/east, /area/ice_colony/underground/hallway/south_east) "bRk" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -31978,9 +24765,7 @@ id = "colony_sec_armory"; name = "Secure Armory" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/security/armory) "bRn" = ( /obj/structure/machinery/door/window/brigdoor/westleft{ @@ -31989,9 +24774,7 @@ id = "brg" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/ice_colony/underground/security/brig) "bRo" = ( /obj/structure/ice/thin/end{ @@ -32055,10 +24838,7 @@ pixel_x = 6; pixel_y = -4 }, -/turf/open/floor{ - dir = 9; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/northwest, /area/ice_colony/underground/security/armory) "bRy" = ( /obj/structure/machinery/door_control{ @@ -32066,16 +24846,10 @@ name = "Colony Secure Armory"; pixel_y = 26 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/north, /area/ice_colony/underground/security/armory) "bRz" = ( -/turf/open/floor{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/north, /area/ice_colony/underground/security/armory) "bRA" = ( /obj/structure/surface/rack, @@ -32084,71 +24858,44 @@ pixel_y = -2 }, /obj/item/storage/box/flashbangs, -/turf/open/floor{ - dir = 5; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/northeast, /area/ice_colony/underground/security/armory) "bRB" = ( /obj/structure/machinery/computer/arcade, -/turf/open/floor{ - dir = 9; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/northwest, /area/ice_colony/underground/security/brig) "bRC" = ( /obj/structure/bedsheetbin, /obj/structure/surface/table/reinforced, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/ice_colony/underground/security/brig) "bRD" = ( /obj/item/paper_bin, /obj/item/tool/pen/blue, /obj/structure/surface/table/reinforced, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/ice_colony/underground/security/brig) "bRE" = ( /obj/item/storage/box/donkpockets, /obj/structure/surface/table/reinforced, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/ice_colony/underground/security/brig) "bRF" = ( /obj/structure/machinery/microwave, /obj/structure/surface/table/reinforced, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/ice_colony/underground/security/brig) "bRG" = ( /obj/structure/machinery/vending/snack, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/ice_colony/underground/security/brig) "bRH" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/ice_colony/underground/security/brig) "bRI" = ( /obj/structure/machinery/washing_machine, -/turf/open/floor{ - dir = 5; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/northeast, /area/ice_colony/underground/security/brig) "bRJ" = ( /obj/structure/ladder{ @@ -32205,14 +24952,10 @@ /area/ice_colony/underground/maintenance/south) "bRS" = ( /obj/structure/filingcabinet, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/reception) "bRT" = ( -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/reception) "bRU" = ( /obj/structure/surface/table, @@ -32221,9 +24964,7 @@ /obj/structure/machinery/alarm{ pixel_y = 24 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/reception) "bRW" = ( /obj/structure/surface/table, @@ -32242,9 +24983,7 @@ /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/reception) "bRX" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -32266,10 +25005,7 @@ pixel_x = 6; pixel_y = -4 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/west, /area/ice_colony/underground/security/armory) "bRZ" = ( /obj/structure/surface/rack, @@ -32278,9 +25014,7 @@ pixel_x = -4; pixel_y = -2 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/security/armory) "bSb" = ( /obj/structure/surface/rack, @@ -32292,52 +25026,35 @@ pixel_x = 6; pixel_y = -4 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/east, /area/ice_colony/underground/security/armory) "bSc" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/west, /area/ice_colony/underground/security/brig) "bSd" = ( -/turf/open/floor{ - dir = 5; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/northeast, /area/ice_colony/underground/security/brig) "bSe" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor{ - dir = 9; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/northwest, /area/ice_colony/underground/security/brig) "bSf" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/ice_colony/underground/security/brig) "bSg" = ( /obj/structure/filingcabinet, /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/reception) "bSh" = ( /obj/structure/surface/table, @@ -32346,9 +25063,7 @@ pixel_y = -4 }, /obj/item/folder/black_random, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/reception) "bSi" = ( /obj/structure/surface/rack, @@ -32357,10 +25072,7 @@ pixel_x = 6; pixel_y = -4 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/west, /area/ice_colony/underground/security/armory) "bSj" = ( /obj/structure/surface/rack, @@ -32369,28 +25081,16 @@ pixel_x = 6; pixel_y = -4 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/east, /area/ice_colony/underground/security/armory) "bSk" = ( -/turf/open/floor{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/west, /area/ice_colony/underground/security/brig) "bSl" = ( -/turf/open/floor{ - dir = 6; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/southeast, /area/ice_colony/underground/security/brig) "bSm" = ( -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/east, /area/ice_colony/underground/security/brig) "bSn" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -32403,18 +25103,13 @@ /obj/structure/surface/table/reinforced, /obj/item/packageWrap, /obj/item/tool/hand_labeler, -/turf/open/floor{ - dir = 4; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/east, /area/ice_colony/underground/requesition/lobby) "bSq" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/reception) "bSr" = ( /obj/structure/surface/table/reinforced, @@ -32424,10 +25119,7 @@ dir = 8; pixel_x = 24 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/east, /area/ice_colony/underground/requesition/lobby) "bSs" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -32439,9 +25131,7 @@ /area/ice_colony/underground/maintenance/security) "bSt" = ( /obj/structure/surface/rack, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/security/armory) "bSu" = ( /obj/structure/surface/rack, @@ -32450,9 +25140,7 @@ pixel_y = -4 }, /obj/item/weapon/gun/shotgun/pump/dual_tube/cmb, -/turf/open/floor{ - icon_state = "darkred2" - }, +/turf/open/floor/darkred2, /area/ice_colony/underground/security/armory) "bSv" = ( /obj/structure/surface/rack, @@ -32461,16 +25149,12 @@ pixel_x = 6; pixel_y = -4 }, -/turf/open/floor{ - icon_state = "darkred2" - }, +/turf/open/floor/darkred2, /area/ice_colony/underground/security/armory) "bSw" = ( /obj/structure/surface/rack, /obj/item/ammo_magazine/shotgun/incendiary, -/turf/open/floor{ - icon_state = "darkred2" - }, +/turf/open/floor/darkred2, /area/ice_colony/underground/security/armory) "bSx" = ( /obj/structure/surface/rack, @@ -32481,9 +25165,7 @@ }, /obj/item/ammo_magazine/pistol/holdout, /obj/item/ammo_magazine/pistol/holdout, -/turf/open/floor{ - icon_state = "darkred2" - }, +/turf/open/floor/darkred2, /area/ice_colony/underground/security/armory) "bSy" = ( /obj/structure/surface/rack, @@ -32494,25 +25176,17 @@ pixel_y = -4 }, /obj/item/ammo_magazine/pistol/holdout, -/turf/open/floor{ - dir = 6; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/southeast, /area/ice_colony/underground/security/armory) "bSz" = ( /obj/structure/bed, /obj/item/bedsheet/orange, -/turf/open/floor{ - dir = 10; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/southwest, /area/ice_colony/underground/security/brig) "bSB" = ( /obj/structure/bed, /obj/item/bedsheet/orange, -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/ice_colony/underground/security/brig) "bSC" = ( /obj/structure/window/reinforced/tinted{ @@ -32520,17 +25194,12 @@ }, /obj/structure/surface/table, /obj/item/device/flashlight/lamp, -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/ice_colony/underground/security/brig) "bSD" = ( /obj/structure/surface/table, /obj/item/device/flashlight/lamp, -/turf/open/floor{ - dir = 6; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/southeast, /area/ice_colony/underground/security/brig) "bSE" = ( /obj/structure/surface/rack, @@ -32540,15 +25209,11 @@ /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/reception) "bSG" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/reception) "bSH" = ( /obj/structure/surface/table, @@ -32559,9 +25224,7 @@ dir = 4; pixel_x = 24 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/reception) "bSI" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -32569,10 +25232,7 @@ /turf/open/floor/plating, /area/ice_colony/underground/maintenance/security) "bSJ" = ( -/turf/open/floor/plating{ - dir = 1; - icon_state = "warnplatecorner" - }, +/turf/open/floor/plating/warnplatecorner/north, /area/ice_colony/underground/maintenance/east) "bSK" = ( /obj/structure/disposalpipe/segment{ @@ -32580,18 +25240,14 @@ icon_state = "pipe-c" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/reception) "bSL" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk{ dir = 8 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/reception) "bSM" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -32631,10 +25287,7 @@ icon_state = "ladderup"; id = "hangar_ladder" }, -/turf/open/floor/plating{ - dir = 10; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/southwest, /area/ice_colony/underground/maintenance/east) "bSR" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -32645,18 +25298,13 @@ icon_state = "ladderup"; id = "hangar_ladder1" }, -/turf/open/floor/plating{ - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate, /area/ice_colony/underground/maintenance/east) "bSS" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/west, /area/ice_colony/underground/maintenance/east) "bST" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -32671,16 +25319,10 @@ /turf/open/space/transit/north/shuttlespace_ns4, /area/shuttle/elevator2/transit) "bSW" = ( -/turf/open/floor{ - dir = 10; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/southwest, /area/ice_colony/underground/hallway/south_east) "bSX" = ( -/turf/open/floor{ - dir = 6; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/southeast, /area/ice_colony/underground/hallway/south_east) "bSY" = ( /obj/structure/disposalpipe/segment, @@ -32710,9 +25352,7 @@ /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper Underground Main Hallway" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/hallway/south_east) "bTe" = ( /obj/structure/filingcabinet/chestdrawer, @@ -32763,23 +25403,14 @@ /area/ice_colony/underground/hallway/south_east) "bTm" = ( /obj/structure/machinery/vending/snack, -/turf/open/floor{ - dir = 9; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/northwest, /area/ice_colony/underground/hallway/south_east) "bTn" = ( /obj/structure/machinery/vending/cigarette/colony, -/turf/open/floor{ - dir = 1; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/north, /area/ice_colony/underground/hallway/south_east) "bTo" = ( -/turf/open/floor{ - dir = 5; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/northeast, /area/ice_colony/underground/hallway/south_east) "bTp" = ( /turf/open/floor/wood, @@ -32839,10 +25470,7 @@ dir = 4; icon_state = "chair" }, -/turf/open/floor{ - dir = 8; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/west, /area/ice_colony/underground/hallway/south_east) "bTD" = ( /obj/item/paper_bin, @@ -32882,25 +25510,17 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/west, /area/ice_colony/underground/hallway/south_east) "bTJ" = ( -/turf/open/floor{ - dir = 4; - icon_state = "darkgreencorners2" - }, +/turf/open/floor/darkgreencorners2/east, /area/ice_colony/underground/hallway/south_east) "bTK" = ( /obj/structure/disposalpipe/segment{ dir = 1; icon_state = "pipe-c" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/hallway/south_east) "bTL" = ( /obj/structure/disposalpipe/segment{ @@ -32910,17 +25530,11 @@ /obj/structure/noticeboard{ pixel_y = 32 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/north, /area/ice_colony/underground/hallway/south_east) "bTM" = ( /obj/structure/flora/pottedplant, -/turf/open/floor{ - dir = 5; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/northeast, /area/ice_colony/underground/hallway/south_east) "bTN" = ( /turf/closed/wall/r_wall, @@ -32931,9 +25545,7 @@ icon_state = "pipe-c" }, /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/hallway/south_east) "bTS" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -32943,26 +25555,20 @@ dir = 8; icon_state = "pipe-c" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/hallway/south_east) "bTT" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/hallway/south_east) "bTV" = ( /obj/structure/toilet, /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/ice_colony/underground/reception/toilet_men) "bTW" = ( /obj/structure/toilet, @@ -32971,9 +25577,7 @@ }, /obj/effect/landmark/corpsespawner/miner, /obj/effect/decal/cleanable/blood, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/ice_colony/underground/reception/toilet_men) "bTX" = ( /obj/structure/sink{ @@ -32982,68 +25586,49 @@ /obj/structure/mirror{ pixel_y = 28 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/ice_colony/underground/reception/toilet_men) "bTY" = ( /turf/open/floor, /area/ice_colony/surface/tcomms) "bUc" = ( /obj/structure/machinery/door/airlock/multi_tile/elevator/access/arrivals, -/turf/open/floor{ - dir = 9; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/northwest, /area/ice_colony/underground/hallway/south_east) "bUd" = ( /obj/structure/machinery/door/airlock/almayer/generic{ dir = 1; name = "\improper Toilet Unit" }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/ice_colony/underground/reception/toilet_men) "bUe" = ( -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/ice_colony/underground/reception/toilet_men) "bUf" = ( /obj/structure/flora/pottedplant, -/turf/open/floor{ - dir = 10; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/southwest, /area/ice_colony/underground/hallway/south_east) "bUg" = ( /obj/structure/bed/chair/office/dark{ dir = 1; icon_state = "chair" }, -/turf/open/floor{ - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2, /area/ice_colony/underground/hallway/south_east) "bUh" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk{ dir = 1 }, -/turf/open/floor{ - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2, /area/ice_colony/underground/hallway/south_east) "bUj" = ( /obj/structure/flora/pottedplant, /obj/structure/machinery/alarm{ pixel_y = 24 }, -/turf/open/floor{ - dir = 9; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/northwest, /area/ice_colony/underground/hallway/south_east) "bUk" = ( /obj/structure/machinery/disposal, @@ -33051,33 +25636,22 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/north, /area/ice_colony/underground/hallway/south_east) "bUl" = ( -/turf/open/floor{ - dir = 1; - icon_state = "darkgreencorners2" - }, +/turf/open/floor/darkgreencorners2/north, /area/ice_colony/underground/hallway/south_east) "bUm" = ( /obj/structure/machinery/computer/shuttle_control/ice_colony/elevator1{ pixel_y = 32 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/north, /area/ice_colony/underground/hallway/south_east) "bUn" = ( /obj/structure/machinery/firealarm{ pixel_y = 24 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/ice_colony/underground/reception/toilet_men) "bUo" = ( /obj/structure/machinery/power/apc{ @@ -33085,25 +25659,19 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/ice_colony/underground/reception/toilet_men) "bUq" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper Underground Visitor Entrance" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/hallway/south_east) "bUr" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/hallway/south_east) "bUs" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -33112,35 +25680,27 @@ /obj/structure/machinery/door/airlock/almayer/generic{ name = "\improper Underground Men's Restroom" }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/ice_colony/underground/reception/toilet_men) "bUu" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/item/tool/wet_sign, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/ice_colony/underground/reception/toilet_men) "bUv" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/decal/cleanable/vomit, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/ice_colony/underground/reception/toilet_men) "bUx" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/ice_colony/underground/reception/toilet_men) "bUy" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -33149,17 +25709,13 @@ /obj/structure/machinery/alarm{ pixel_y = 24 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/ice_colony/underground/reception/toilet_men) "bUz" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/ice_colony/underground/reception/toilet_men) "bUA" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -33187,10 +25743,7 @@ /area/ice_colony/underground/maintenance/south) "bUI" = ( /obj/structure/closet/emcloset, -/turf/open/floor{ - dir = 9; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/northwest, /area/ice_colony/underground/hallway/south_east) "bUJ" = ( /obj/structure/disposalpipe/segment{ @@ -33200,9 +25753,7 @@ /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/hallway/south_east) "bUK" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -33211,10 +25762,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/north, /area/ice_colony/underground/hallway/south_east) "bUL" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -33226,10 +25774,7 @@ /obj/structure/closet/hydrant{ pixel_y = 32 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/north, /area/ice_colony/underground/hallway/south_east) "bUM" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -33238,33 +25783,23 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkgreencorners2" - }, +/turf/open/floor/darkgreencorners2/north, /area/ice_colony/underground/hallway/south_east) "bUN" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/hallway/south_east) "bUP" = ( /obj/structure/machinery/vending/cigarette/colony, -/turf/open/floor{ - dir = 4; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/east, /area/ice_colony/underground/hallway/south_east) "bUQ" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/ice_colony/underground/reception/toilet_men) "bUR" = ( /obj/structure/sink{ @@ -33274,17 +25809,13 @@ /obj/structure/mirror{ pixel_y = -28 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/ice_colony/underground/reception/toilet_men) "bUS" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/ice_colony/underground/reception/toilet_men) "bUT" = ( /obj/structure/machinery/light{ @@ -33297,9 +25828,7 @@ /obj/structure/mirror{ pixel_y = -28 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/ice_colony/underground/reception/toilet_men) "bUU" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -33317,10 +25846,7 @@ dir = 4 }, /obj/structure/machinery/vending/cola, -/turf/open/floor{ - dir = 4; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/east, /area/ice_colony/underground/hallway/south_east) "bVa" = ( /turf/closed/wall/r_wall, @@ -33360,16 +25886,11 @@ /obj/item/tool/pen/blue{ pixel_x = -6 }, -/turf/open/floor{ - icon_state = "darkred2" - }, +/turf/open/floor/darkred2, /area/ice_colony/underground/reception/checkpoint_south) "bVi" = ( /obj/structure/machinery/vending/coffee, -/turf/open/floor{ - dir = 4; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/east, /area/ice_colony/underground/hallway/south_east) "bVj" = ( /obj/structure/machinery/light{ @@ -33381,14 +25902,10 @@ /obj/structure/mirror{ pixel_y = 28 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/ice_colony/underground/reception/toilet_women) "bVk" = ( -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/ice_colony/underground/reception/toilet_women) "bVl" = ( /obj/structure/sink{ @@ -33397,65 +25914,44 @@ /obj/structure/mirror{ pixel_y = 28 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/ice_colony/underground/reception/toilet_women) "bVm" = ( /obj/structure/machinery/light{ dir = 4 }, /obj/structure/pipes/vents/pump, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/ice_colony/underground/reception/toilet_women) "bVn" = ( /obj/structure/machinery/computer/cameras, -/turf/open/floor{ - dir = 9; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/northwest, /area/ice_colony/underground/reception/checkpoint_south) "bVo" = ( /obj/structure/surface/table, -/turf/open/floor{ - dir = 10; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/southwest, /area/ice_colony/underground/requesition/lobby) "bVp" = ( /obj/structure/bed/chair/office/dark{ dir = 1 }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/north, /area/ice_colony/underground/reception/checkpoint_south) "bVq" = ( -/turf/open/floor{ - dir = 5; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/northeast, /area/ice_colony/underground/reception/checkpoint_south) "bVr" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ name = "\improper Underground Security Checkpoint" }, -/turf/open/floor{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/west, /area/ice_colony/underground/reception/checkpoint_south) "bVs" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/hallway/south_east) "bVt" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -33464,17 +25960,13 @@ /obj/structure/machinery/door/airlock/almayer/generic{ name = "\improper Underground Women's Restroom" }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/ice_colony/underground/reception/toilet_women) "bVw" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/ice_colony/underground/reception/toilet_women) "bVx" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -33484,15 +25976,11 @@ dir = 1; pixel_y = -24 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/ice_colony/underground/reception/toilet_women) "bVy" = ( /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/ice_colony/underground/reception/toilet_women) "bVz" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -33505,16 +25993,11 @@ /area/ice_colony/underground/reception/toilet_women) "bVA" = ( /obj/structure/closet/secure_closet/security, -/turf/open/floor{ - dir = 10; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/southwest, /area/ice_colony/underground/reception/checkpoint_south) "bVB" = ( /obj/structure/machinery/light, -/turf/open/floor{ - icon_state = "darkred2" - }, +/turf/open/floor/darkred2, /area/ice_colony/underground/reception/checkpoint_south) "bVC" = ( /obj/structure/machinery/firealarm{ @@ -33524,9 +26007,7 @@ /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor{ - icon_state = "darkred2" - }, +/turf/open/floor/darkred2, /area/ice_colony/underground/reception/checkpoint_south) "bVD" = ( /obj/structure/filingcabinet/security, @@ -33534,27 +26015,20 @@ pixel_y = -24; start_charge = 0 }, -/turf/open/floor{ - dir = 6; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/southeast, /area/ice_colony/underground/reception/checkpoint_south) "bVE" = ( /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor{ - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2, /area/ice_colony/underground/hallway/south_east) "bVF" = ( /obj/structure/bed/chair{ dir = 1 }, /obj/structure/machinery/light, -/turf/open/floor{ - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2, /area/ice_colony/underground/hallway/south_east) "bVG" = ( /obj/structure/bed/chair{ @@ -33564,52 +26038,39 @@ dir = 1; pixel_y = -24 }, -/turf/open/floor{ - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2, /area/ice_colony/underground/hallway/south_east) "bVI" = ( /obj/structure/flora/pottedplant, -/turf/open/floor{ - dir = 6; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/southeast, /area/ice_colony/underground/hallway/south_east) "bVJ" = ( /obj/structure/sink{ dir = 8; pixel_x = -11 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/ice_colony/underground/reception/toilet_women) "bVK" = ( /obj/structure/machinery/firealarm{ dir = 1; pixel_y = -24 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/ice_colony/underground/reception/toilet_women) "bVL" = ( /obj/structure/machinery/power/apc{ pixel_y = -24; start_charge = 0 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/ice_colony/underground/reception/toilet_women) "bVM" = ( /obj/structure/machinery/door/airlock/almayer/generic{ dir = 1; name = "\improper Toilet Unit" }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/ice_colony/underground/reception/toilet_women) "bVN" = ( /obj/structure/mineral_door/resin, @@ -33653,9 +26114,7 @@ dir = 1 }, /obj/structure/machinery/light/small, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/ice_colony/underground/reception/toilet_women) "bVV" = ( /obj/structure/sink{ @@ -33665,9 +26124,7 @@ /obj/structure/mirror{ pixel_y = -28 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/ice_colony/underground/reception/toilet_women) "bVW" = ( /turf/closed/shuttle{ @@ -33741,25 +26198,16 @@ /obj/structure/shuttle/engine/heater{ dir = 8 }, -/turf/open/floor/icefloor{ - icon = 'icons/turf/shuttle.dmi'; - icon_state = "vfloor" - }, +/turf/open/floor/icefloor/shuttle_vfloor, /area/ice_colony/exterior/underground/caves/dig) "bWl" = ( /obj/structure/shuttle/engine/heater{ dir = 4 }, -/turf/open/floor/icefloor{ - icon = 'icons/turf/shuttle.dmi'; - icon_state = "vfloor" - }, +/turf/open/floor/icefloor/shuttle_vfloor, /area/ice_colony/exterior/underground/caves/dig) "bWm" = ( -/turf/open/floor/icefloor{ - icon = 'icons/turf/shuttle.dmi'; - icon_state = "vfloor" - }, +/turf/open/floor/icefloor/shuttle_vfloor, /area/ice_colony/exterior/underground/caves/dig) "bWn" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -33779,10 +26227,7 @@ /obj/structure/shuttle/engine/router{ dir = 4 }, -/turf/open/floor/icefloor{ - icon = 'icons/turf/shuttle.dmi'; - icon_state = "vfloor" - }, +/turf/open/floor/icefloor/shuttle_vfloor, /area/ice_colony/exterior/underground/caves/dig) "bWs" = ( /obj/structure/surface/table, @@ -33825,10 +26270,7 @@ icon_state = "door_open"; name = "strange airlock" }, -/turf/open/floor/icefloor{ - icon = 'icons/turf/shuttle.dmi'; - icon_state = "vfloor" - }, +/turf/open/floor/icefloor/shuttle_vfloor, /area/ice_colony/exterior/underground/caves/dig) "bWz" = ( /obj/structure/ice/thin/straight, @@ -33836,23 +26278,14 @@ /area/ice_colony/exterior/underground/caves/open) "bWA" = ( /obj/structure/xenoautopsy/tank, -/turf/open/floor/icefloor{ - icon = 'icons/turf/shuttle.dmi'; - icon_state = "floor6" - }, +/turf/open/floor/icefloor/shuttle_floor6, /area/ice_colony/exterior/underground/caves/dig) "bWB" = ( -/turf/open/floor/icefloor{ - icon = 'icons/turf/shuttle.dmi'; - icon_state = "floor6" - }, +/turf/open/floor/icefloor/shuttle_floor6, /area/ice_colony/exterior/underground/caves/dig) "bWC" = ( /obj/structure/xenoautopsy/tank/broken, -/turf/open/floor/icefloor{ - icon = 'icons/turf/shuttle.dmi'; - icon_state = "floor6" - }, +/turf/open/floor/icefloor/shuttle_floor6, /area/ice_colony/exterior/underground/caves/dig) "bWD" = ( /obj/item/tool/pickaxe/silver, @@ -33889,10 +26322,7 @@ /turf/closed/ice/intersection, /area/ice_colony/exterior/underground/caves) "bWJ" = ( -/turf/open/floor/icefloor{ - icon = 'icons/turf/shuttle.dmi'; - icon_state = "floor7" - }, +/turf/open/floor/icefloor/shuttle_floor7, /area/ice_colony/exterior/underground/caves/dig) "bWK" = ( /obj/structure/shuttle/window{ @@ -33900,10 +26330,7 @@ icon_state = "13" }, /obj/structure/grille, -/turf/open/floor/icefloor{ - icon = 'icons/turf/shuttle.dmi'; - icon_state = "floor6" - }, +/turf/open/floor/icefloor/shuttle_floor6, /area/ice_colony/exterior/underground/caves/dig) "bWL" = ( /obj/structure/shuttle/window{ @@ -33911,10 +26338,7 @@ icon_state = "9" }, /obj/structure/grille, -/turf/open/floor/icefloor{ - icon = 'icons/turf/shuttle.dmi'; - icon_state = "floor6" - }, +/turf/open/floor/icefloor/shuttle_floor6, /area/ice_colony/exterior/underground/caves/dig) "bWM" = ( /obj/structure/shuttle/window{ @@ -33922,16 +26346,11 @@ icon_state = "12" }, /obj/structure/grille, -/turf/open/floor/icefloor{ - icon = 'icons/turf/shuttle.dmi'; - icon_state = "floor6" - }, +/turf/open/floor/icefloor/shuttle_floor6, /area/ice_colony/exterior/underground/caves/dig) "bWN" = ( /obj/structure/inflatable/door, -/turf/open/floor/icefloor{ - icon_state = "ramptop" - }, +/turf/open/floor/icefloor/ramptop, /area/ice_colony/exterior/underground/caves/dig) "bWO" = ( /obj/structure/inflatable/door, @@ -33942,33 +26361,21 @@ icon_state = "door_open"; name = "strange airlock" }, -/turf/open/floor/icefloor{ - icon = 'icons/turf/shuttle.dmi'; - icon_state = "floor7" - }, +/turf/open/floor/icefloor/shuttle_floor7, /area/ice_colony/exterior/underground/caves/dig) "bWP" = ( /obj/structure/cryofeed, -/turf/open/floor/icefloor{ - icon = 'icons/turf/shuttle.dmi'; - icon_state = "vfloor" - }, +/turf/open/floor/icefloor/shuttle_vfloor, /area/ice_colony/exterior/underground/caves/dig) "bWQ" = ( /obj/structure/cryofeed/right, -/turf/open/floor/icefloor{ - icon = 'icons/turf/shuttle.dmi'; - icon_state = "vfloor" - }, +/turf/open/floor/icefloor/shuttle_vfloor, /area/ice_colony/exterior/underground/caves/dig) "bWR" = ( /obj/structure/computerframe{ anchored = 1 }, -/turf/open/floor/icefloor{ - icon = 'icons/turf/shuttle.dmi'; - icon_state = "floor7" - }, +/turf/open/floor/icefloor/shuttle_floor7, /area/ice_colony/exterior/underground/caves/dig) "bWS" = ( /obj/structure/shuttle/engine/propulsion/burst{ @@ -33978,33 +26385,21 @@ /area/ice_colony/exterior/underground/caves/dig) "bWT" = ( /obj/effect/landmark/good_item, -/turf/open/floor/icefloor{ - icon = 'icons/turf/shuttle.dmi'; - icon_state = "floor6" - }, +/turf/open/floor/icefloor/shuttle_floor6, /area/ice_colony/exterior/underground/caves/dig) "bWU" = ( /obj/structure/xenoautopsy/tank/broken, /obj/effect/decal/cleanable/blood/xeno, -/turf/open/floor/icefloor{ - icon = 'icons/turf/shuttle.dmi'; - icon_state = "floor6" - }, +/turf/open/floor/icefloor/shuttle_floor6, /area/ice_colony/exterior/underground/caves/dig) "bWV" = ( /obj/effect/landmark/crap_item, -/turf/open/floor/icefloor{ - icon = 'icons/turf/shuttle.dmi'; - icon_state = "floor7" - }, +/turf/open/floor/icefloor/shuttle_floor7, /area/ice_colony/exterior/underground/caves/dig) "bWW" = ( /obj/item/tool/screwdriver, /obj/item/device/multitool, -/turf/open/floor/icefloor{ - icon = 'icons/turf/shuttle.dmi'; - icon_state = "floor7" - }, +/turf/open/floor/icefloor/shuttle_floor7, /area/ice_colony/exterior/underground/caves/dig) "bWX" = ( /obj{ @@ -34014,10 +26409,7 @@ icon_state = "door_open"; name = "strange airlock" }, -/turf/open/floor/icefloor{ - icon = 'icons/turf/shuttle.dmi'; - icon_state = "floor7" - }, +/turf/open/floor/icefloor/shuttle_floor7, /area/ice_colony/exterior/underground/caves/dig) "bWZ" = ( /obj/structure/inflatable/door, @@ -34028,66 +26420,42 @@ icon_state = "door_open"; name = "strange airlock" }, -/turf/open/floor/icefloor{ - icon = 'icons/turf/shuttle.dmi'; - icon_state = "floor6" - }, +/turf/open/floor/icefloor/shuttle_floor6, /area/ice_colony/exterior/underground/caves/dig) "bXa" = ( /obj/structure/machinery/floodlight{ name = "Floodlight" }, -/turf/open/floor/icefloor{ - icon = 'icons/turf/shuttle.dmi'; - icon_state = "floor7" - }, +/turf/open/floor/icefloor/shuttle_floor7, /area/ice_colony/exterior/underground/caves/dig) "bXb" = ( /obj/item/stack/cable_coil/random, -/turf/open/floor/icefloor{ - icon = 'icons/turf/shuttle.dmi'; - icon_state = "floor7" - }, +/turf/open/floor/icefloor/shuttle_floor7, /area/ice_colony/exterior/underground/caves/dig) "bXc" = ( /obj/effect/decal/cleanable/spiderling_remains{ name = "greenish remains" }, -/turf/open/floor/icefloor{ - icon = 'icons/turf/shuttle.dmi'; - icon_state = "floor7" - }, +/turf/open/floor/icefloor/shuttle_floor7, /area/ice_colony/exterior/underground/caves/dig) "bXd" = ( /obj/structure/inflatable/door, -/turf/open/floor/icefloor{ - icon = 'icons/turf/shuttle.dmi'; - icon_state = "floor7" - }, +/turf/open/floor/icefloor/shuttle_floor7, /area/ice_colony/exterior/underground/caves/dig) "bXe" = ( /obj/item/tool/pickaxe/plasmacutter, -/turf/open/floor/icefloor{ - icon = 'icons/turf/shuttle.dmi'; - icon_state = "floor7" - }, +/turf/open/floor/icefloor/shuttle_floor7, /area/ice_colony/exterior/underground/caves/dig) "bXf" = ( /obj/item/device/flashlight, -/turf/open/floor/icefloor{ - icon = 'icons/turf/shuttle.dmi'; - icon_state = "floor7" - }, +/turf/open/floor/icefloor/shuttle_floor7, /area/ice_colony/exterior/underground/caves/dig) "bXg" = ( /obj/structure/computerframe{ anchored = 1 }, /obj/effect/decal/cleanable/blood/gibs/xeno/up, -/turf/open/floor/icefloor{ - icon = 'icons/turf/shuttle.dmi'; - icon_state = "floor7" - }, +/turf/open/floor/icefloor/shuttle_floor7, /area/ice_colony/exterior/underground/caves/dig) "bXh" = ( /obj/structure/shuttle/window{ @@ -34111,24 +26479,15 @@ name = "strange airlock"; opacity = 1 }, -/turf/open/floor/icefloor{ - icon = 'icons/turf/shuttle.dmi'; - icon_state = "floor7" - }, +/turf/open/floor/icefloor/shuttle_floor7, /area/ice_colony/exterior/underground/caves/dig) "bXk" = ( /obj/item/device/flashlight/flare, -/turf/open/floor/icefloor{ - icon = 'icons/turf/shuttle.dmi'; - icon_state = "floor7" - }, +/turf/open/floor/icefloor/shuttle_floor7, /area/ice_colony/exterior/underground/caves/dig) "bXl" = ( /obj/effect/landmark/hunter_primary, -/turf/open/floor/icefloor{ - icon = 'icons/turf/shuttle.dmi'; - icon_state = "floor7" - }, +/turf/open/floor/icefloor/shuttle_floor7, /area/ice_colony/exterior/underground/caves/dig) "bXm" = ( /obj/structure/shuttle/window{ @@ -34148,10 +26507,7 @@ name = "strange airlock"; opacity = 1 }, -/turf/open/floor/icefloor{ - icon = 'icons/turf/shuttle.dmi'; - icon_state = "floor6" - }, +/turf/open/floor/icefloor/shuttle_floor6, /area/ice_colony/exterior/underground/caves/dig) "bXo" = ( /obj/structure/machinery/door/poddoor{ @@ -34159,10 +26515,7 @@ icon_state = "door_closed"; name = "Strange Airlock" }, -/turf/open/floor/icefloor{ - icon = 'icons/turf/shuttle.dmi'; - icon_state = "floor7" - }, +/turf/open/floor/icefloor/shuttle_floor7, /area/ice_colony/exterior/underground/caves/dig) "bXp" = ( /obj{ @@ -34174,31 +26527,19 @@ name = "strange airlock"; opacity = 1 }, -/turf/open/floor/icefloor{ - icon = 'icons/turf/shuttle.dmi'; - icon_state = "vfloor" - }, +/turf/open/floor/icefloor/shuttle_vfloor, /area/ice_colony/exterior/underground/caves/dig) "bXq" = ( /obj/structure/xenoautopsy/tank/hugger, -/turf/open/floor/icefloor{ - icon = 'icons/turf/shuttle.dmi'; - icon_state = "floor7" - }, +/turf/open/floor/icefloor/shuttle_floor7, /area/ice_colony/exterior/underground/caves/dig) "bXr" = ( /obj/structure/xenoautopsy/tank/alien, -/turf/open/floor/icefloor{ - icon = 'icons/turf/shuttle.dmi'; - icon_state = "floor7" - }, +/turf/open/floor/icefloor/shuttle_floor7, /area/ice_colony/exterior/underground/caves/dig) "bXs" = ( /obj/structure/xenoautopsy/tank/alien, -/turf/open/floor/icefloor{ - icon = 'icons/turf/shuttle.dmi'; - icon_state = "floor6" - }, +/turf/open/floor/icefloor/shuttle_floor6, /area/ice_colony/exterior/underground/caves/dig) "bXt" = ( /turf/closed/ice/junction{ @@ -34206,9 +26547,7 @@ }, /area/ice_colony/exterior/underground/caves/open) "bXu" = ( -/turf/open/floor/icefloor{ - icon_state = "ramptop" - }, +/turf/open/floor/icefloor/ramptop, /area/ice_colony/exterior/underground/caves/dig) "bXv" = ( /turf/closed/ice/end{ @@ -34228,17 +26567,11 @@ /area/ice_colony/exterior/underground/caves/open) "bXy" = ( /obj/structure/xenoautopsy/tank/hugger, -/turf/open/floor/icefloor{ - icon = 'icons/turf/shuttle.dmi'; - icon_state = "floor6" - }, +/turf/open/floor/icefloor/shuttle_floor6, /area/ice_colony/exterior/underground/caves/dig) "bXz" = ( /obj/structure/xenoautopsy/tank/larva, -/turf/open/floor/icefloor{ - icon = 'icons/turf/shuttle.dmi'; - icon_state = "floor6" - }, +/turf/open/floor/icefloor/shuttle_floor6, /area/ice_colony/exterior/underground/caves/dig) "bXA" = ( /obj/structure/tunnel{ @@ -34248,50 +26581,35 @@ /area/ice_colony/exterior/underground/caves/open) "bXB" = ( /obj/structure/surface/rack, -/turf/open/floor{ - dir = 10; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/southwest, /area/ice_colony/underground/security/armory) "bXD" = ( /obj/structure/surface/table, /obj/item/tool/surgery/scalpel, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/crew/morgue) "bXE" = ( /obj/structure/surface/table, /obj/item/device/camera, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/crew/morgue) "bXF" = ( /obj/structure/surface/table, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/engineering) "bXL" = ( /obj/structure/surface/table/reinforced, /obj/structure/window/reinforced{ dir = 1 }, -/turf/open/floor{ - dir = 1; - icon_state = "whitered" - }, +/turf/open/floor/whitered/north, /area/ice_colony/underground/medical/lobby) "bXM" = ( /obj/structure/surface/table/reinforced, /obj/structure/window/reinforced{ dir = 1 }, -/turf/open/floor{ - dir = 5; - icon_state = "whitered" - }, +/turf/open/floor/whitered/northeast, /area/ice_colony/underground/medical/lobby) "bXN" = ( /obj/structure/surface/table, @@ -34302,10 +26620,7 @@ /obj/item/tool/soap{ pixel_x = 5 }, -/turf/open/floor{ - dir = 8; - icon_state = "whitered" - }, +/turf/open/floor/whitered/west, /area/ice_colony/underground/medical/or) "bXO" = ( /obj/structure/surface/table/reinforced, @@ -34313,10 +26628,7 @@ dir = 8; health = 80 }, -/turf/open/floor{ - dir = 8; - icon_state = "whitered" - }, +/turf/open/floor/whitered/west, /area/ice_colony/underground/medical/lobby) "bXQ" = ( /obj/structure/surface/table, @@ -34325,14 +26637,11 @@ pixel_x = 5; pixel_y = 3 }, -/turf/open/floor{ - dir = 1; - icon_state = "whitered" - }, +/turf/open/floor/whitered/north, /area/ice_colony/underground/medical/storage) "bXR" = ( /obj/structure/surface/table/woodentable, -/obj/item/handcuffs, +/obj/item/restraint/handcuffs, /obj/item/weapon/baton, /turf/open/floor/wood, /area/ice_colony/underground/security/marshal) @@ -34344,9 +26653,7 @@ /obj/structure/surface/table/reinforced, /obj/item/clipboard, /obj/item/tool/stamp, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/command/center) "bXU" = ( /obj/structure/machinery/firealarm{ @@ -34354,10 +26661,7 @@ pixel_x = -24 }, /obj/structure/surface/table/reinforced, -/turf/open/floor{ - dir = 10; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/southwest, /area/ice_colony/underground/storage/highsec) "bXV" = ( /obj/structure/surface/table/reinforced, @@ -34365,42 +26669,30 @@ /obj/item/spacecash/c100, /obj/item/spacecash/c10, /obj/item/spacecash/c1, -/turf/open/floor{ - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2, /area/ice_colony/underground/storage/highsec) "bXW" = ( /obj/structure/machinery/light{ dir = 8 }, /obj/structure/surface/table/reinforced, -/turf/open/floor{ - dir = 8; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/west, /area/ice_colony/underground/research) "bXY" = ( /obj/structure/surface/table, /obj/item/evidencebag, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/security/interrogation) "bYa" = ( /obj/structure/surface/table, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/security/interrogation) "bYb" = ( /obj/structure/machinery/light{ dir = 8 }, /obj/structure/surface/table/reinforced, -/turf/open/floor{ - dir = 8; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/west, /area/ice_colony/underground/research/work) "bYc" = ( /obj/structure/surface/table/reinforced, @@ -34408,55 +26700,39 @@ dir = 8; pixel_x = -11 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/west, /area/ice_colony/underground/research/work) "bYd" = ( /obj/structure/surface/table/reinforced, -/turf/open/floor{ - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2, /area/ice_colony/underground/research/work) "bYg" = ( /obj/item/storage/box/bodybags, /obj/structure/surface/table, -/turf/open/floor{ - dir = 10; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/southwest, /area/ice_colony/underground/security/backroom) "bYh" = ( /obj/structure/surface/table, /obj/item/paper, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/reception) "bYi" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/reception) "bYj" = ( /obj/structure/surface/table, /obj/item/tool/hand_labeler, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/reception) "bYk" = ( /obj/structure/window/reinforced/tinted{ dir = 4 }, /obj/structure/surface/table, -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/ice_colony/underground/security/brig) "bYm" = ( /obj/structure/surface/table/reinforced, @@ -34464,76 +26740,112 @@ /area/ice_colony/underground/reception) "bYn" = ( /obj/structure/surface/table, -/turf/open/floor{ - dir = 8; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/west, /area/ice_colony/underground/hallway/south_east) "bYo" = ( -/turf/open/floor{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/north, /area/ice_colony/underground/reception/checkpoint_south) "bYp" = ( /obj/structure/surface/table, /obj/item/trash/chips, -/turf/open/floor{ - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2, /area/ice_colony/underground/hallway/south_east) "cbk" = ( /turf/open/floor/plating/icefloor, /area/ice_colony/surface/tcomms) +"cbU" = ( +/obj/structure/shuttle/diagonal{ + icon_state = "swall_f6" + }, +/turf/open/shuttle/can_surgery/red, +/area/ice_colony/surface/hangar/beta) +"chE" = ( +/obj/structure/machinery/door/airlock{ + id_tag = "st_5"; + name = "Storage Unit"; + req_one_access_txt = "100;101;102;103" + }, +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 4 + }, +/turf/open/floor/plating/icefloor, +/area/ice_colony/surface/requesitions) "csl" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/research) +"cBQ" = ( +/obj/structure/machinery/door/unpowered/shuttle, +/turf/open/shuttle/can_surgery/red, +/area/ice_colony/surface/hangar/beta) "cEG" = ( /obj/docking_port/stationary/marine_dropship/lz2, /turf/open/floor/plating/icefloor, /area/ice_colony/underground/hangar) +"cNY" = ( +/obj/structure/machinery/power/reactor/colony, +/obj/structure/machinery/light{ + dir = 8 + }, +/turf/open/floor/plating, +/area/ice_colony/exterior/underground/caves) "cVM" = ( /obj/structure/machinery/light/small{ dir = 8 }, /turf/open/floor/plating/icefloor, /area/ice_colony/surface/requesitions) -"dgG" = ( -/turf/open/floor{ - dir = 5; - icon_state = "darkyellow2" +"dfj" = ( +/obj/structure/shuttle/diagonal{ + icon_state = "swall_f5" }, +/turf/open/shuttle/can_surgery/red, +/area/ice_colony/surface/hangar/alpha) +"dgG" = ( +/turf/open/floor/darkyellow2/northeast, /area/ice_colony/surface/tcomms) +"doO" = ( +/obj/structure/machinery/power/reactor/colony, +/turf/open/floor/platebot, +/area/ice_colony/surface/engineering/generator) +"drG" = ( +/obj/structure/machinery/door/airlock/almayer/maint/colony{ + dir = 1; + name = "\improper Underground Maintenance"; + req_access_txt = "100" + }, +/turf/open/floor/plating, +/area/ice_colony/underground/hangar) "dxl" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 4; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/east, /area/ice_colony/surface/hangar/beta) "dzn" = ( /obj/structure/surface/table, /obj/item/device/flashlight, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/ice_colony/surface/tcomms) +"dFm" = ( +/obj/structure/machinery/light, +/obj/item/weapon/gun/pistol/holdout, +/turf/open/shuttle/can_surgery/red, +/area/ice_colony/surface/hangar/beta) +"dRe" = ( +/obj/structure/bed/chair{ + dir = 8 + }, +/turf/open/shuttle/can_surgery/red, +/area/ice_colony/surface/hangar/beta) "ecS" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/east, /area/ice_colony/surface/hangar/beta) "elU" = ( /obj/structure/bed/chair/wood/normal{ @@ -34542,28 +26854,50 @@ /obj/structure/pipes/standard/simple/hidden/green, /turf/open/floor/carpet, /area/ice_colony/underground/crew/leisure) +"etX" = ( +/obj/structure/machinery/power/reactor/colony, +/turf/open/floor/plating, +/area/ice_colony/underground/engineering/substation) +"ezC" = ( +/obj/structure/machinery/fuelcell_recycler/full, +/turf/open/floor/plating, +/area/ice_colony/underground/engineering/substation) "ezT" = ( /obj/vehicle/train/cargo/trolley, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/research) "eSd" = ( -/turf/open/floor/plating/icefloor{ - dir = 5; - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate/northeast, /area/ice_colony/surface/tcomms) "eSN" = ( /obj/structure/surface/table, /obj/effect/spawner/random/toolbox, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 1; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/north, /area/ice_colony/surface/research/tech_storage) +"faO" = ( +/obj/structure/machinery/light{ + dir = 8 + }, +/obj/structure/bed/chair{ + dir = 4 + }, +/turf/open/shuttle/can_surgery/red, +/area/ice_colony/surface/hangar/alpha) +"fgp" = ( +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 4 + }, +/obj/structure/machinery/door/airlock/almayer/secure/colony{ + name = "Colony Requesitions Storage Pod" + }, +/turf/open/floor/plating/icefloor, +/area/ice_colony/surface/requesitions) +"fkY" = ( +/obj/structure/machinery/light, +/turf/open/shuttle/can_surgery/red, +/area/ice_colony/surface/hangar/beta) "fqt" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 @@ -34579,21 +26913,15 @@ pixel_y = 2 }, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/tcomms) "fUW" = ( /obj/structure/largecrate/random, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/hangar/alpha) "giH" = ( /obj/structure/closet/secure_closet/engineering_electrical, -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/ice_colony/surface/tcomms) "gxg" = ( /obj/structure/machinery/power/apc{ @@ -34601,24 +26929,24 @@ pixel_x = -24; start_charge = 0 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/west, /area/ice_colony/surface/hangar/alpha) "gDb" = ( /obj/structure/surface/table, -/turf/open/floor{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/north, /area/ice_colony/underground/reception/checkpoint_north) +"gHI" = ( +/obj/structure/machinery/light{ + dir = 4 + }, +/obj/structure/bed/chair{ + dir = 8 + }, +/turf/open/shuttle/can_surgery/red, +/area/ice_colony/surface/hangar/alpha) "gXP" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/north, /area/ice_colony/surface/research) "hfj" = ( /obj/structure/blocker/forcefield/multitile_vehicles, @@ -34629,9 +26957,33 @@ dir = 9 }, /area/ice_colony/exterior/surface/valley/south) +"hrs" = ( +/obj/structure/machinery/power/reactor/colony, +/obj/structure/machinery/light/small, +/turf/open/floor/plating, +/area/ice_colony/underground/engineering/substation) "hrN" = ( /turf/open/auto_turf/snow/layer4, /area/ice_colony/exterior/surface/clearing/north) +"hwC" = ( +/obj/structure/machinery/door/airlock/almayer/maint/colony{ + name = "\improper Underground Maintenance" + }, +/turf/open/floor/plating, +/area/ice_colony/underground/hangar) +"hxr" = ( +/obj/structure/machinery/door/airlock/almayer/secure/colony{ + id = "research_entrance"; + name = "Omicron Research Dome" + }, +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/dark2, +/area/ice_colony/surface/research) "hAX" = ( /obj/structure/blocker/forcefield/multitile_vehicles, /turf/open/floor/plating, @@ -34646,17 +26998,20 @@ /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/plating/icefloor{ - dir = 8; - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate/west, /area/ice_colony/underground/hangar) +"ilp" = ( +/obj/structure/machinery/door/airlock/almayer/secure/colony{ + dir = 2; + id = "st_19"; + name = "Research Storage Unit" + }, +/turf/open/floor/vault2/west, +/area/ice_colony/surface/storage_unit/research) "iBu" = ( /obj/structure/surface/table/reinforced, /obj/item/paper/research_notes, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/underground/research) "iNy" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -34669,6 +27024,13 @@ /obj/item/packageWrap, /turf/open/floor/plating/icefloor, /area/ice_colony/underground/hangar) +"iUo" = ( +/obj/structure/machinery/door/airlock/almayer/secure/colony{ + id = "st_17"; + name = "Power Storage Unit" + }, +/turf/open/floor/vault2/west, +/area/ice_colony/surface/storage_unit/power) "iZc" = ( /obj/structure/lz_sign/ice_sign{ desc = "The only good bug is a dead bug."; @@ -34677,6 +27039,14 @@ }, /turf/open/auto_turf/snow/layer3, /area/ice_colony/exterior/surface/valley/south) +"iZF" = ( +/obj/structure/pipes/standard/simple/hidden/green, +/obj/structure/machinery/door/airlock/almayer/secure/colony{ + dir = 2; + name = "Underground Secure Technical Storage" + }, +/turf/open/floor/dark2, +/area/ice_colony/underground/storage/highsec) "jtr" = ( /turf/closed/wall, /area/ice_colony/exterior/surface/cliff) @@ -34690,10 +27060,19 @@ /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor{ - dir = 8; - icon_state = "darkbrown2" +/turf/open/floor/darkbrown2/west, +/area/ice_colony/surface/hangar/alpha) +"jFV" = ( +/obj/structure/bed/chair{ + dir = 8 + }, +/turf/open/shuttle/can_surgery/red, +/area/ice_colony/surface/hangar/alpha) +"jPb" = ( +/obj/structure/bed/chair{ + dir = 4 }, +/turf/open/shuttle/can_surgery/red, /area/ice_colony/surface/hangar/alpha) "jZI" = ( /obj/structure/surface/table/reinforced, @@ -34707,17 +27086,21 @@ /turf/open/floor/plating/icefloor, /area/ice_colony/underground/hangar) "kfW" = ( -/turf/open/floor/plating/icefloor{ - dir = 4; - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate/east, /area/ice_colony/surface/tcomms) +"krs" = ( +/obj/structure/pipes/standard/simple/hidden/green, +/obj/structure/machinery/door/airlock/almayer/secure/colony{ + dir = 2; + id = "engine_electrical_maintenance"; + name = "Underground Power Substation" + }, +/turf/open/floor/dark2, +/area/ice_colony/underground/engineering/substation) "kKZ" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/disposalpipe/segment, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/dorms) "kRw" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -34727,6 +27110,19 @@ /obj/structure/window/framed/colony, /turf/open/floor/plating/icefloor, /area/ice_colony/surface/tcomms) +"luM" = ( +/obj/item/ammo_magazine/pistol/holdout{ + pixel_x = 6; + pixel_y = -4 + }, +/turf/open/shuttle/can_surgery/red, +/area/ice_colony/surface/hangar/beta) +"lxu" = ( +/obj/structure/shuttle/diagonal{ + icon_state = "swall_f6" + }, +/turf/open/shuttle/can_surgery/red, +/area/ice_colony/surface/hangar/alpha) "lyD" = ( /obj/structure/machinery/alarm{ dir = 8; @@ -34738,17 +27134,26 @@ /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/east, /area/ice_colony/surface/hangar/beta) "lJQ" = ( /turf/open/auto_turf/snow/layer4, /area/ice_colony/exterior/surface/valley/south) +"lSF" = ( +/turf/open/shuttle/can_surgery/red, +/area/ice_colony/surface/hangar/alpha) "lXk" = ( /turf/open/auto_turf/snow/layer4, /area/ice_colony/exterior/surface/clearing/south) +"mec" = ( +/turf/open/shuttle/can_surgery/red, +/area/ice_colony/surface/hangar/beta) +"mgy" = ( +/obj/structure/shuttle/diagonal{ + icon_state = "swall_f9" + }, +/turf/open/shuttle/can_surgery/red, +/area/ice_colony/surface/hangar/beta) "mog" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -34756,35 +27161,30 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/hangar/beta) "mwS" = ( /obj/structure/blocker/forcefield/multitile_vehicles, /turf/closed/wall/r_wall, /area/ice_colony/underground/maintenance/south) "mHc" = ( -/turf/open/floor{ - dir = 5; - icon_state = "darkbrown2" +/turf/open/floor/darkbrown2/northeast, +/area/ice_colony/surface/hangar/beta) +"mLJ" = ( +/obj/structure/shuttle/diagonal{ + icon_state = "swall_f5" }, +/turf/open/shuttle/can_surgery/red, /area/ice_colony/surface/hangar/beta) "neZ" = ( /obj/structure/machinery/door/airlock/almayer/medical/glass/colony{ name = "\improper Colony Dormitories" }, -/turf/open/floor{ - dir = 10; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/southwest, /area/ice_colony/surface/dorms) "nup" = ( /obj/structure/surface/rack, -/turf/open/floor{ - dir = 4; - icon_state = "darkpurple2" - }, +/turf/open/floor/darkpurple2/east, /area/ice_colony/underground/research/storage) "osF" = ( /turf/open/auto_turf/snow/layer4, @@ -34797,18 +27197,32 @@ /obj/effect/landmark/static_comms/net_one, /turf/open/floor/plating/icefloor, /area/ice_colony/surface/tcomms) +"oIL" = ( +/obj/structure/machinery/light{ + dir = 8 + }, +/obj/structure/bed/chair{ + dir = 4 + }, +/turf/open/shuttle/can_surgery/red, +/area/ice_colony/surface/hangar/beta) +"oNg" = ( +/obj/structure/machinery/door/unpowered/shuttle, +/turf/open/shuttle/can_surgery/red, +/area/ice_colony/surface/hangar/alpha) "oOd" = ( /turf/open/auto_turf/snow/layer4, /area/ice_colony/exterior/surface/clearing/pass) +"oQI" = ( +/obj/structure/machinery/light, +/turf/open/shuttle/can_surgery/red, +/area/ice_colony/surface/hangar/alpha) "oZq" = ( /obj/structure/machinery/alarm{ dir = 4; pixel_x = -24 }, -/turf/open/floor{ - dir = 10; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/southwest, /area/ice_colony/surface/hangar/alpha) "paK" = ( /obj/structure/window/framed/colony/reinforced, @@ -34821,9 +27235,19 @@ }, /turf/open/floor/carpet, /area/ice_colony/underground/crew/leisure) +"poh" = ( +/obj/structure/machinery/power/reactor/colony, +/turf/open/floor/plating/icefloor, +/area/ice_colony/underground/hangar) "pyn" = ( /turf/closed/wall, /area/ice_colony/underground/hangar) +"qiR" = ( +/obj/structure/bed/chair{ + dir = 1 + }, +/turf/open/shuttle/can_surgery/red, +/area/ice_colony/surface/hangar/alpha) "qny" = ( /obj/structure/surface/table/woodentable, /turf/open/floor/wood, @@ -34834,9 +27258,7 @@ /area/ice_colony/exterior/underground/caves/open) "qwB" = ( /obj/structure/closet/secure_closet/engineering_welding, -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/ice_colony/surface/tcomms) "qEB" = ( /obj/structure/pipes/standard/manifold/fourway/hidden/green, @@ -34844,6 +27266,26 @@ /obj/effect/landmark/ert_spawns/groundside_xeno, /turf/open/floor/plating/icefloor, /area/ice_colony/surface/requesitions) +"qJe" = ( +/obj/structure/machinery/light{ + dir = 4 + }, +/obj/structure/bed/chair{ + dir = 8 + }, +/turf/open/shuttle/can_surgery/red, +/area/ice_colony/surface/hangar/beta) +"qKs" = ( +/obj/structure/machinery/power/reactor/colony, +/turf/open/floor/plating, +/area/ice_colony/exterior/underground/caves) +"qPo" = ( +/obj/structure/surface/rack, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/turf/open/floor/plating, +/area/ice_colony/underground/maintenance/engineering) "qRy" = ( /obj/structure/closet/toolcloset, /obj/structure/machinery/door_control{ @@ -34855,24 +27297,28 @@ /area/ice_colony/underground/hangar) "rbS" = ( /obj/structure/machinery/colony_floodlight, -/turf/open/floor/plating/icefloor{ - dir = 9; - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate/northwest, /area/ice_colony/surface/tcomms) "rmR" = ( /obj/structure/machinery/recharge_station, /turf/open/floor/plating/icefloor, /area/ice_colony/underground/hangar) +"rxJ" = ( +/obj/structure/pipes/standard/simple/hidden/green, +/obj/structure/machinery/door/airlock/almayer/secure/colony{ + dir = 2; + id = "engine_electrical_maintenance"; + name = "Underground Power Substation" + }, +/turf/open/floor/plating, +/area/ice_colony/underground/engineering/substation) "rxQ" = ( /turf/open/auto_turf/snow/layer4, /area/ice_colony/exterior/surface/valley/northwest) "rAm" = ( /obj/effect/landmark/xeno_hive_spawn, /obj/effect/landmark/ert_spawns/groundside_xeno, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/research) "rKn" = ( /obj/structure/filingcabinet, @@ -34887,20 +27333,14 @@ /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor{ - dir = 8; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/west, /area/ice_colony/surface/hangar/alpha) "rNB" = ( /obj/structure/machinery/firealarm{ dir = 8; pixel_x = -24 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/west, /area/ice_colony/surface/hangar/alpha) "sto" = ( /obj/docking_port/stationary/marine_dropship/lz1{ @@ -34912,45 +27352,37 @@ /obj/structure/surface/table, /obj/item/device/analyzer, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 6; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/southeast, /area/ice_colony/surface/tcomms) "sTg" = ( /turf/open/auto_turf/snow/layer4, /area/ice_colony/exterior/surface/valley/northeast) +"sTG" = ( +/obj/structure/shuttle/diagonal{ + icon_state = "swall_f10" + }, +/turf/open/shuttle/can_surgery/red, +/area/ice_colony/surface/hangar/beta) "sTY" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 4; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/east, /area/ice_colony/surface/hangar/beta) "tbZ" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor{ - dir = 8; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/west, /area/ice_colony/surface/hangar/alpha) "tly" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor{ - dir = 8; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/west, /area/ice_colony/surface/hangar/alpha) "tue" = ( /obj/structure/machinery/light, -/turf/open/floor{ - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2, /area/ice_colony/surface/dorms) "tBe" = ( /obj/structure/bed/chair, @@ -34966,35 +27398,31 @@ /obj/structure/machinery/door/airlock/almayer/medical/glass/colony{ name = "\improper Colony Dormitories" }, -/turf/open/floor{ - dir = 6; - icon_state = "darkblue2" - }, +/turf/open/floor/darkblue2/southeast, /area/ice_colony/surface/dorms) "tZS" = ( /turf/open/auto_turf/snow/layer4, /area/ice_colony/exterior/surface/valley/west) +"ubd" = ( +/obj/structure/bed/chair{ + dir = 1 + }, +/obj/effect/landmark/survivor_spawner, +/turf/open/shuttle/can_surgery/red, +/area/ice_colony/surface/hangar/beta) "ueV" = ( /obj/structure/pipes/standard/manifold/fourway/hidden/green, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/hydroponics/south) "umI" = ( /obj/structure/machinery/door/airlock/almayer/medical/glass/colony{ name = "\improper Colony Dormitories" }, -/turf/open/floor{ - dir = 5; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/northeast, /area/ice_colony/surface/dorms) "urm" = ( /obj/structure/machinery/colony_floodlight, -/turf/open/floor/plating/icefloor{ - dir = 1; - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate/north, /area/ice_colony/exterior/surface/landing_pad) "uuK" = ( /obj/structure/surface/table, @@ -35003,9 +27431,7 @@ /area/ice_colony/underground/hangar) "uAe" = ( /obj/structure/machinery/power/port_gen/pacman, -/turf/open/floor{ - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2, /area/ice_colony/surface/tcomms) "uBE" = ( /turf/open/auto_turf/snow/layer4, @@ -35014,10 +27440,7 @@ /turf/open/auto_turf/snow/layer4, /area/ice_colony/exterior/surface/cliff) "uPr" = ( -/turf/open/floor{ - dir = 6; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/southeast, /area/ice_colony/surface/hangar/beta) "uUv" = ( /obj/effect/alien/weeds/node, @@ -35041,71 +27464,86 @@ icon_state = "W" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 8; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/west, /area/ice_colony/surface/hangar/alpha) "waD" = ( /obj/structure/surface/table, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/excavation) "waN" = ( -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/tcomms) "wcI" = ( /obj/structure/machinery/space_heater, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/hangar/alpha) "wue" = ( /obj/structure/filingcabinet, /obj/item/paper/research_notes, /turf/open/floor/wood, /area/ice_colony/surface/command/control/pv1) +"wxw" = ( +/obj/structure/computerframe, +/turf/open/shuttle/can_surgery/red, +/area/ice_colony/surface/hangar/alpha) "wDj" = ( -/turf/open/floor/plating/icefloor{ - dir = 1; - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate/north, /area/ice_colony/surface/tcomms) "wTN" = ( /obj/structure/surface/table/woodentable, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, /turf/open/floor/wood, /area/ice_colony/surface/bar/bar) +"xfO" = ( +/obj/structure/machinery/door/airlock/almayer/secure/colony{ + dir = 2; + id = "st_18"; + name = "Disposals Storage Unit" + }, +/turf/open/floor/vault2/west, +/area/ice_colony/surface/storage_unit/telecomms) "xkk" = ( /obj/effect/landmark/queen_spawn, -/turf/open/floor/icefloor{ - icon = 'icons/turf/shuttle.dmi'; - icon_state = "floor7" - }, +/turf/open/floor/icefloor/shuttle_floor7, /area/ice_colony/exterior/underground/caves/dig) "xrT" = ( /obj/structure/surface/rack, -/turf/open/floor{ - dir = 10; - icon_state = "darkyellow2" - }, +/turf/open/floor/darkyellow2/southwest, /area/ice_colony/surface/tcomms) +"xyz" = ( +/obj/structure/machinery/power/reactor/colony, +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 4 + }, +/turf/open/floor/platebot, +/area/ice_colony/surface/engineering/generator) +"xAI" = ( +/obj/structure/shuttle/diagonal{ + icon_state = "swall_f10" + }, +/turf/open/shuttle/can_surgery/red, +/area/ice_colony/surface/hangar/alpha) +"xFB" = ( +/obj/structure/shuttle/diagonal{ + icon_state = "swall_f9" + }, +/turf/open/shuttle/can_surgery/red, +/area/ice_colony/surface/hangar/alpha) "xWm" = ( /obj/effect/landmark/xeno_hive_spawn, /obj/effect/landmark/ert_spawns/groundside_xeno, /turf/open/ice, /area/ice_colony/exterior/surface/landing_pad_external) +"yfA" = ( +/obj/structure/computerframe, +/turf/open/shuttle/can_surgery/red, +/area/ice_colony/surface/hangar/beta) "ygw" = ( /obj/structure/surface/table, /obj/item/device/encryptionkey, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/ice_colony/surface/tcomms) "yhm" = ( /obj/structure/machinery/light{ @@ -39646,15 +32084,15 @@ aaI aaI aaI abD -adm +fgp abD adY abD -aeC +chE abD adY abD -adm +fgp abD adY abD @@ -43876,15 +36314,15 @@ abE abF abF abD -adm +fgp abD adY abD -adm +fgp abD adY abD -adm +fgp abD adY abD @@ -49989,7 +42427,7 @@ bDE bEz bFc bFc -bGA +iZF bHn bHn bIJ @@ -51344,11 +43782,11 @@ aZW aZW aZG aZG -bgR +hwC aZG aZG aZG -bgR +hwC aZG aZG aZG @@ -52201,7 +44639,7 @@ big aZW aZW aZW -bjz +drG bgH bgH bkE @@ -53044,9 +45482,9 @@ bht aZW aZW beB -biw -biw -biw +poh +poh +poh aZG bgH bgH @@ -55302,7 +47740,7 @@ aZW aZW bjf aZG -bgR +hwC aZG beB bkt @@ -55529,7 +47967,7 @@ aLN aLN aLN aLN -aQm +hxr aLN aLN aLN @@ -58910,7 +51348,7 @@ aKr aKr aKR aKR -aNV +ilp auw auw auw @@ -69706,11 +62144,11 @@ box box bqF bnk -buh -buh -bvD -buh -buh +qKs +qKs +cNY +qKs +qKs bqP brt bsf @@ -70270,11 +62708,11 @@ box box bqF btA -buj +ezC buj buj bui -bwA +etX btz brt bsf @@ -70551,12 +62989,12 @@ boQ boQ boQ boQ -btB +krs buk buk bvE bui -bwA +etX btz brt bsf @@ -70838,7 +63276,7 @@ bul buj bvF bui -bwB +hrs btz bxG bsf @@ -71121,7 +63559,7 @@ buj bvG buk buk -bwZ +rxJ bxH brZ brZ @@ -71405,7 +63843,7 @@ bwg bwg btz bxI -bse +qPo bsf brt byc @@ -77815,7 +70253,7 @@ aRy aRy aRy aUh -aSi +oNg aVy aWb aSf @@ -78089,17 +70527,17 @@ avs aOf aOK aPI -aQB -aRz +xFB +oQI aSh -aSU -aTz -aTz -aTz -aSU -aSV -aTz -aWc +faO +jPb +jPb +jPb +faO +lSF +jPb +xAI aWb aSj aPH @@ -78371,17 +70809,17 @@ avs aOf aOK aPJ -aQC -aRA -aSi -aSV -aSV -aSV -aSV -aSV -aSV -aSV -aSV +wxw +qiR +oNg +lSF +lSF +lSF +lSF +lSF +lSF +lSF +lSF aWJ aXm aPH @@ -78653,17 +71091,17 @@ avs aOf aOK aPK -aQD -aRz +dfj +oQI aSj -aSW -aTA -aTA -aTA -aSW -aSV -aTA -aWd +gHI +jFV +jFV +jFV +gHI +lSF +jFV +lxu aWe aSh aPH @@ -78943,7 +71381,7 @@ aRy aRy aRy aUh -aSi +oNg aVy aWe aPH @@ -81103,16 +73541,16 @@ acz acz acz aeh -aex +doO aeU afs -aex -aex -ags -aex +doO +doO +xyz +doO ahm aeU -aex +doO aeg ajA ajT @@ -81385,7 +73823,7 @@ adj adj adj aeh -aex +doO aeU afq aeU @@ -81394,7 +73832,7 @@ agt aeU afq aeU -aex +doO aeh aeI aeI @@ -81670,10 +74108,10 @@ aei agw aeW afs -aex -aex -ags -aex +doO +doO +xyz +doO ahm afu aix @@ -83173,7 +75611,7 @@ aRE aRE aRE aUn -aSr +cBQ aVD aWk aPT @@ -83447,17 +75885,17 @@ aac aOj aOY aPU -aQK -aRF +mgy +fkY aSq -aSY -aTD -aTD -aTD -aSY -aSZ -aTD -aWl +oIL +aIW +aIW +aIW +oIL +mec +aIW +sTG aWk aSs aPT @@ -83729,17 +76167,17 @@ aac aOj aOZ aPV -aQL -aRG -aSr -aSZ -aSZ -aSZ -aSZ -aUM -aSZ -aSZ -aSZ +yfA +ubd +cBQ +mec +mec +mec +mec +luM +mec +mec +mec aWN aXu aPT @@ -84011,17 +76449,17 @@ aac aOj aOZ aPW -aQM -aRH +mLJ +dFm aSs -aTa -aTE -aTE -aTE -aTa -aSZ -aTE -aWm +qJe +dRe +dRe +dRe +qJe +mec +dRe +cbU aWn aSq aPT @@ -84301,7 +76739,7 @@ aRE aRE aRE aUn -aSr +cBQ aVD aWn aPT @@ -87654,7 +80092,7 @@ amm aFE aFE aFE -aHB +iUo aFE aFE aky @@ -89351,7 +81789,7 @@ amm amm amm amm -aJe +xfO aJi aJi aJi diff --git a/maps/map_files/Ice_Colony_v3/Shivas_Snowball.dmm b/maps/map_files/Ice_Colony_v3/Shivas_Snowball.dmm index 60847e12bae1..c359e4ae0a0e 100644 --- a/maps/map_files/Ice_Colony_v3/Shivas_Snowball.dmm +++ b/maps/map_files/Ice_Colony_v3/Shivas_Snowball.dmm @@ -17,17 +17,11 @@ /obj/structure/girder, /turf/open/auto_turf/ice/layer1, /area/shiva/interior/colony/medseceng) -"aaf" = ( -/obj/item/lightstick/planted, -/turf/open/auto_turf/snow/layer2, -/area/shiva/exterior/cp_s_research) "aag" = ( /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/shiva{ - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull, /area/shiva/interior/colony/central) "aah" = ( /obj/item/stack/sheet/metal, @@ -101,9 +95,7 @@ /area/shiva/exterior/cp_lz2) "aar" = ( /obj/structure/machinery/camera/autoname/lz_camera, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) "aas" = ( /obj/structure/platform/strata, @@ -113,29 +105,20 @@ /turf/open/auto_turf/ice/layer1, /area/shiva/exterior/cp_lz2) "aat" = ( -/obj/structure/ice/thin/single{ - opacity = 1; - unacidable = 0 +/obj/item/tool/shovel/snow{ + pixel_y = 8 }, -/obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/auto_turf/ice/layer1, -/area/shiva/interior/caves/left_spiders) +/obj/item/tool/shovel/snow, +/obj/structure/surface/rack, +/turf/open/auto_turf/snow/layer1, +/area/shiva/interior/caves/cp_camp) "aau" = ( /obj/effect/spider/stickyweb, /turf/open/auto_turf/ice/layer1, -/area/shiva/interior/caves/left_spiders) +/area/shiva/interior/caves/cp_camp) "aav" = ( -/obj/effect/spider/stickyweb{ - icon_state = "stickyweb2" - }, /turf/open/auto_turf/ice/layer1, -/area/shiva/interior/caves/left_spiders) -"aaw" = ( -/obj/effect/spider/cocoon{ - icon_state = "cocoon_large2" - }, -/turf/open/auto_turf/ice/layer1, -/area/shiva/interior/caves/left_spiders) +/area/shiva/exterior/telecomm/lz1_north) "aax" = ( /obj/structure/prop/ice_colony/surveying_device{ layer = 3.01; @@ -176,10 +159,6 @@ }, /turf/open/auto_turf/ice/layer1, /area/shiva/interior/caves/right_spiders) -"aaE" = ( -/mob/living/simple_animal/hostile/giant_spider/nurse, -/turf/open/auto_turf/ice/layer1, -/area/shiva/interior/caves/left_spiders) "aaF" = ( /obj/structure/platform/strata{ dir = 4 @@ -226,10 +205,6 @@ /obj/item/tool/pickaxe/drill, /turf/open/auto_turf/ice/layer1, /area/shiva/exterior/cp_colony_grounds) -"aaL" = ( -/obj/effect/spider/cocoon, -/turf/open/auto_turf/ice/layer1, -/area/shiva/interior/caves/left_spiders) "aaM" = ( /obj/structure/platform/strata{ dir = 4 @@ -247,10 +222,6 @@ /obj/item/explosive/plastic, /turf/open/auto_turf/ice/layer1, /area/shiva/exterior/cp_colony_grounds) -"aaP" = ( -/mob/living/simple_animal/hostile/giant_spider/hunter, -/turf/open/auto_turf/ice/layer1, -/area/shiva/interior/caves/left_spiders) "aaQ" = ( /obj/effect/spider/stickyweb, /obj/item/clothing/head/helmet/marine/sof, @@ -272,12 +243,6 @@ }, /turf/open/auto_turf/ice/layer1, /area/shiva/exterior/cp_lz2) -"aaU" = ( -/obj/effect/spider/cocoon{ - icon_state = "cocoon_large3" - }, -/turf/open/auto_turf/ice/layer1, -/area/shiva/interior/caves/left_spiders) "aaV" = ( /obj/effect/spider/stickyweb, /obj/effect/spider/cocoon{ @@ -301,7 +266,7 @@ "aaZ" = ( /obj/structure/fence, /turf/open/auto_turf/ice/layer1, -/area/shiva/interior/warehouse/caves) +/area/shiva/interior/caves/research_caves) "aba" = ( /obj/item/device/flashlight/lamp/tripod/grey, /turf/open/auto_turf/snow/layer3, @@ -455,7 +420,7 @@ /area/shiva/exterior/cp_lz2) "abv" = ( /obj/structure/prop/ice_colony/surveying_device, -/turf/open/auto_turf/ice/layer1, +/turf/open/auto_turf/snow/layer1, /area/shiva/interior/caves/cp_camp) "abw" = ( /obj/item/lightstick/red/spoke/planted{ @@ -493,20 +458,6 @@ }, /turf/open/auto_turf/ice/layer1, /area/shiva/interior/caves/cp_camp) -"abC" = ( -/mob/living/simple_animal/hostile/giant_spider/nurse, -/obj/effect/spider/stickyweb{ - icon_state = "stickyweb2" - }, -/turf/open/auto_turf/ice/layer1, -/area/shiva/interior/caves/left_spiders) -"abD" = ( -/obj/effect/spider/cocoon, -/obj/effect/spider/stickyweb{ - icon_state = "stickyweb2" - }, -/turf/open/auto_turf/ice/layer1, -/area/shiva/interior/caves/left_spiders) "abE" = ( /obj/effect/landmark/hunter_primary, /turf/open/auto_turf/ice/layer1, @@ -521,11 +472,6 @@ /obj/effect/landmark/hunter_secondary, /turf/open/auto_turf/ice/layer1, /area/shiva/interior/caves/cp_camp) -"abI" = ( -/obj/effect/spider/stickyweb, -/obj/item/device/flashlight/lamp/tripod/grey, -/turf/open/auto_turf/ice/layer1, -/area/shiva/interior/caves/left_spiders) "abJ" = ( /turf/open/shuttle/elevator/grating, /area/shiva/interior/colony/research_hab) @@ -535,11 +481,6 @@ }, /turf/open/auto_turf/ice/layer2, /area/shiva/interior/caves/right_spiders) -"abL" = ( -/obj/effect/spider/cocoon, -/obj/effect/spider/stickyweb, -/turf/open/auto_turf/ice/layer1, -/area/shiva/interior/caves/left_spiders) "abM" = ( /turf/closed/shuttle/elevator{ dir = 1 @@ -549,25 +490,6 @@ /obj/effect/spider/stickyweb, /turf/open/auto_turf/ice/layer0, /area/shiva/interior/caves/right_spiders) -"abO" = ( -/obj/effect/spider/cocoon{ - icon_state = "cocoon_large3" - }, -/obj/effect/spider/stickyweb{ - icon_state = "stickyweb2" - }, -/turf/open/auto_turf/ice/layer1, -/area/shiva/interior/caves/left_spiders) -"abP" = ( -/obj/structure/prop/ice_colony/surveying_device{ - dir = 4 - }, -/turf/open/auto_turf/ice/layer1, -/area/shiva/interior/caves/cp_camp) -"abQ" = ( -/obj/structure/prop/ice_colony/surveying_device/measuring_device, -/turf/open/auto_turf/ice/layer1, -/area/shiva/interior/caves/cp_camp) "abR" = ( /obj/structure/flora/grass/tallgrass/ice, /obj/structure/flora/bush/ausbushes/lavendergrass, @@ -579,12 +501,6 @@ }, /turf/open/auto_turf/snow/layer2, /area/shiva/exterior/cp_lz2) -"abT" = ( -/obj/structure/tunnel{ - id = "north_research_tunnel" - }, -/turf/open/auto_turf/ice/layer0, -/area/shiva/interior/caves/cp_camp) "abU" = ( /obj/structure/flora/grass/tallgrass/ice/corner{ dir = 1 @@ -631,7 +547,7 @@ "abZ" = ( /obj/item/lightstick/planted, /turf/open/auto_turf/snow/layer3, -/area/shiva/exterior/cp_s_research) +/area/shiva/exterior/junkyard) "aca" = ( /obj/item/tank/oxygen, /obj/item/tank/oxygen, @@ -649,17 +565,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/auto_turf/ice/layer1, /area/shiva/interior/colony/research_hab) -"acc" = ( -/obj/item/tool/shovel/spade{ - pixel_x = -3; - pixel_y = -3 - }, -/turf/open/auto_turf/snow/layer3, -/area/shiva/exterior/cp_s_research) -"acd" = ( -/obj/structure/machinery/space_heater, -/turf/open/auto_turf/ice/layer1, -/area/shiva/exterior/research_alley) "ace" = ( /turf/closed/shuttle/elevator/gears, /area/shiva/interior/colony/central) @@ -711,9 +616,7 @@ /obj/structure/platform/shiva/catwalk{ dir = 8 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) "aco" = ( /obj/structure/stairs/perspective/ice{ @@ -733,10 +636,7 @@ dir = 1; pixel_y = 4 }, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "purple" - }, +/turf/open/floor/shiva/purple/north, /area/shiva/interior/lz2_habs) "acr" = ( /obj/structure/fence{ @@ -772,9 +672,7 @@ dir = 1; start_charge = 0 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/medseceng) "acA" = ( /obj/structure/ice/thin/indestructible{ @@ -785,10 +683,7 @@ /turf/open/ice/noweed, /area/shiva/interior/colony/research_hab) "acC" = ( -/turf/open/floor/plating/icefloor{ - dir = 4; - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate/east, /area/shiva/exterior/junkyard/fortbiceps) "acD" = ( /turf/closed/shuttle/elevator/button/arrivals, @@ -809,16 +704,6 @@ "acL" = ( /turf/closed/shuttle/elevator/arrivals, /area/shiva/interior/colony/central) -"acM" = ( -/mob/living/simple_animal/hostile/retaliate/clown{ - desc = "Uh oh, looks like Gonzo got blocked by a cave-in. How is he gonna get out of this one?"; - health = 10000; - move_to_delay = 2; - name = "Gonzo the Magnificent"; - rapid = 1 - }, -/turf/open/auto_turf/ice/layer1, -/area/shiva/interior/oob/dev_room) "acN" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ name = "\improper Underground Security Interrogation"; @@ -826,12 +711,6 @@ }, /turf/open/floor/plating, /area/shiva/interior/colony/medseceng) -"acO" = ( -/obj/effect/decal/hefa_cult_decals/d96{ - desc = "Original map by Infernus, remapped by Triiodine." - }, -/turf/open/auto_turf/ice/layer1, -/area/shiva/interior/oob/dev_room) "acP" = ( /obj/effect/landmark/xeno_spawn, /turf/open/auto_turf/ice/layer1, @@ -841,23 +720,17 @@ /area/shiva/interior/colony/medseceng) "acU" = ( /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/shiva{ - icon_state = "purplefull" - }, +/turf/open/floor/shiva/purplefull, /area/shiva/interior/colony/research_hab) "acW" = ( -/turf/open/floor/plating/icefloor{ - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate, /area/shiva/exterior/junkyard/fortbiceps) "acY" = ( /obj/effect/decal/warning_stripes{ icon_state = "N" }, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/research_hab) "ada" = ( /obj/structure/reagent_dispensers, @@ -865,21 +738,13 @@ /area/shiva/interior/colony/research_hab) "ade" = ( /obj/structure/fence, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull/west, /area/shiva/exterior/cp_colony_grounds) "adf" = ( -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/shiva/interior/colony/central) "adi" = ( -/turf/open/floor/shiva{ - dir = 4; - icon_state = "yellowcorners" - }, +/turf/open/floor/shiva/yellowcorners/east, /area/shiva/interior/colony/research_hab) "adj" = ( /obj/item/reagent_container/glass/bucket/mopbucket, @@ -889,15 +754,11 @@ /area/shiva/interior/colony/research_hab) "ado" = ( /obj/effect/landmark/survivor_spawner, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/garage) "adp" = ( /obj/structure/closet/secure_closet/engineering_personal, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/medseceng) "adq" = ( /obj/structure/prop/ice_colony/surveying_device/measuring_device{ @@ -936,68 +797,46 @@ /obj/structure/machinery/firealarm{ pixel_y = 24 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/central) "adR" = ( /obj/structure/machinery/disposal, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull/west, /area/shiva/interior/colony/medseceng) "adS" = ( /obj/structure/surface/table, /obj/item/clothing/gloves/black, /obj/effect/landmark/crap_item, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/shiva{ - dir = 9; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/northwest, /area/shiva/interior/colony/research_hab) "adT" = ( /obj/structure/surface/table, /obj/item/clothing/gloves/black, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/north, /area/shiva/interior/colony/research_hab) "adV" = ( /obj/structure/surface/table, /obj/item/device/reagent_scanner, /obj/effect/landmark/good_item, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/north, /area/shiva/interior/colony/research_hab) "adW" = ( /obj/structure/surface/table, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/shiva{ - dir = 5; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/northeast, /area/shiva/interior/colony/research_hab) "adX" = ( /obj/structure/machinery/cryo_cell, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull/west, /area/shiva/interior/colony/medseceng) "adY" = ( /obj/structure/surface/rack, /obj/item/storage/toolbox/electrical, /obj/item/storage/toolbox/electrical, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/medseceng) "adZ" = ( /obj/vehicle/train/cargo/trolley, @@ -1008,20 +847,14 @@ dir = 4; pixel_x = -24 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/west, /area/shiva/interior/colony/research_hab) "aeb" = ( /obj/structure/machinery/firealarm{ dir = 4; pixel_x = 24 }, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/east, /area/shiva/interior/colony/research_hab) "aec" = ( /obj/structure/largecrate/random/mini/med{ @@ -1046,9 +879,7 @@ }, /obj/structure/window/reinforced, /obj/structure/machinery/door/window/westleft, -/turf/open/floor/shiva{ - icon_state = "wredfull" - }, +/turf/open/floor/shiva/wredfull, /area/shiva/interior/colony/medseceng) "aeg" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony, @@ -1060,10 +891,7 @@ dir = 1; pixel_y = 9 }, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/north, /area/shiva/interior/colony/medseceng) "aek" = ( /obj/structure/window/framed/shiva, @@ -1071,24 +899,17 @@ /area/shiva/interior/colony/medseceng) "ael" = ( /obj/effect/landmark/corpsespawner/colonist/random, -/turf/open/floor/shiva{ - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull, /area/shiva/interior/colony/central) "aeo" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/shiva{ - icon_state = "wredfull" - }, +/turf/open/floor/shiva/wredfull, /area/shiva/interior/colony/medseceng) "aeq" = ( /obj/structure/sink{ pixel_y = 15 }, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "wred" - }, +/turf/open/floor/shiva/wred/north, /area/shiva/interior/colony/medseceng) "aes" = ( /obj/structure/surface/table/reinforced/prison, @@ -1097,9 +918,7 @@ }, /obj/item/stack/cable_coil, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/medseceng) "aet" = ( /obj/structure/closet/secure_closet/medical2, @@ -1108,54 +927,34 @@ pixel_y = 9 }, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "wred" - }, +/turf/open/floor/shiva/wred/north, /area/shiva/interior/colony/medseceng) "aev" = ( /obj/structure/machinery/bioprinter, -/turf/open/floor/shiva{ - dir = 5; - icon_state = "wred" - }, +/turf/open/floor/shiva/wred/northeast, /area/shiva/interior/colony/medseceng) "aew" = ( /obj/structure/surface/table, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/west, /area/shiva/interior/colony/research_hab) "aex" = ( /obj/structure/reagent_dispensers/watertank, -/turf/open/floor/shiva{ - dir = 10; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/southwest, /area/shiva/interior/colony/research_hab) "aez" = ( /obj/structure/closet/emcloset, /obj/effect/landmark/crap_item, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/north, /area/shiva/interior/colony/research_hab) "aeA" = ( /obj/structure/closet/wardrobe/chaplain_black, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/shiva/interior/colony/central) "aeC" = ( /obj/structure/closet/firecloset, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/north, /area/shiva/interior/colony/research_hab) "aeD" = ( /obj/structure/prop/ice_colony/dense/planter_box{ @@ -1195,9 +994,7 @@ amount = 15 }, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/medseceng) "aeN" = ( /obj/structure/closet/secure_closet/guncabinet, @@ -1206,33 +1003,22 @@ /obj/item/ammo_magazine/rifle/m41aMK1, /obj/item/ammo_magazine/rifle/m41aMK1, /obj/item/ammo_magazine/rifle/m41aMK1, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull/west, /area/shiva/interior/colony/s_admin) "aeP" = ( /obj/structure/closet/firecloset, -/turf/open/floor/shiva{ - dir = 5; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/northeast, /area/shiva/interior/colony/research_hab) "aeQ" = ( /obj/structure/surface/rack, /obj/item/clothing/mask/gas, -/turf/open/floor/shiva{ - dir = 10; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/southwest, /area/shiva/interior/colony/research_hab) "aeR" = ( /obj/structure/machinery/light/double, /obj/structure/surface/rack, /obj/item/clothing/mask/gas, -/turf/open/floor/shiva{ - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow, /area/shiva/interior/colony/research_hab) "aeU" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony{ @@ -1259,36 +1045,23 @@ /area/shiva/interior/colony/medseceng) "afd" = ( /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull/west, /area/shiva/interior/aerodrome) "aff" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/medseceng) "afh" = ( /obj/effect/landmark/xeno_spawn, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/medseceng) "afi" = ( /obj/structure/machinery/portable_atmospherics/canister/oxygen, -/turf/open/floor/shiva{ - dir = 5; - icon_state = "wred" - }, +/turf/open/floor/shiva/wred/northeast, /area/shiva/interior/colony/medseceng) "afm" = ( /obj/structure/machinery/cm_vending/sorted/medical/no_access, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "wred" - }, +/turf/open/floor/shiva/wred/north, /area/shiva/interior/colony/medseceng) "afp" = ( /obj/structure/surface/table, @@ -1297,43 +1070,30 @@ pixel_x = 5; pixel_y = 3 }, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "wred" - }, +/turf/open/floor/shiva/wred/north, /area/shiva/interior/colony/medseceng) "afv" = ( /obj/structure/surface/rack, /obj/item/storage/toolbox/mechanical, /obj/item/storage/toolbox/mechanical, /obj/effect/landmark/crap_item, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/medseceng) "afw" = ( /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/shiva{ - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull, /area/shiva/interior/colony/central) "afx" = ( /obj/structure/machinery/vending/security, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull/west, /area/shiva/interior/colony/medseceng) "afz" = ( /obj/structure/surface/table, /obj/effect/spawner/random/bomb_supply, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/shiva{ - dir = 9; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/northwest, /area/shiva/interior/colony/research_hab) "afA" = ( /obj/structure/flora/tree/dead/tree_1, @@ -1351,60 +1111,38 @@ /obj/structure/surface/table, /obj/item/stack/nanopaste, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "wred" - }, +/turf/open/floor/shiva/wred/west, /area/shiva/interior/colony/medseceng) "afF" = ( -/turf/open/floor/shiva{ - icon_state = "purplefull" - }, +/turf/open/floor/shiva/purplefull, /area/shiva/interior/colony/research_hab) "afL" = ( /obj/structure/surface/table, /obj/item/tool/wrench, /obj/item/paper/research_notes, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "wred" - }, +/turf/open/floor/shiva/wred/west, /area/shiva/interior/colony/medseceng) "afM" = ( /obj/effect/landmark/queen_spawn, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/medseceng) "afN" = ( /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "purplefull" - }, +/turf/open/floor/shiva/purplefull/east, /area/shiva/interior/colony/research_hab) "afP" = ( /obj/structure/machinery/space_heater, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "purplefull" - }, +/turf/open/floor/shiva/purplefull/west, /area/shiva/interior/colony/research_hab) "afQ" = ( /obj/structure/machinery/space_heater, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "purplefull" - }, +/turf/open/floor/shiva/purplefull/north, /area/shiva/interior/colony/research_hab) "afR" = ( /obj/structure/surface/table, /obj/item/bodybag/cryobag, /obj/item/storage/box/syringes, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "wred" - }, +/turf/open/floor/shiva/wred/north, /area/shiva/interior/colony/medseceng) "afT" = ( /obj/structure/surface/table, @@ -1413,28 +1151,19 @@ pixel_x = 5; pixel_y = 3 }, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "wred" - }, +/turf/open/floor/shiva/wred/north, /area/shiva/interior/colony/medseceng) "afV" = ( /obj/structure/surface/table, /obj/effect/spawner/random/toolbox, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/north, /area/shiva/interior/colony/research_hab) "afX" = ( /obj/structure/surface/table, /obj/effect/spawner/random/tech_supply, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/north, /area/shiva/interior/colony/research_hab) "afY" = ( /obj/item/weapon/ice_axe/green, @@ -1447,10 +1176,7 @@ "aga" = ( /obj/item/device/defibrillator, /obj/structure/surface/table, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "wred" - }, +/turf/open/floor/shiva/wred/north, /area/shiva/interior/colony/medseceng) "agb" = ( /obj/structure/bed/chair/wheelchair, @@ -1458,10 +1184,7 @@ dir = 1; pixel_y = 9 }, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "wred" - }, +/turf/open/floor/shiva/wred/north, /area/shiva/interior/colony/medseceng) "agc" = ( /obj/structure/prop/ice_colony/dense/planter_box{ @@ -1480,37 +1203,25 @@ "age" = ( /obj/structure/closet/radiation, /obj/effect/landmark/crap_item, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/medseceng) "agg" = ( /obj/structure/machinery/vending/cola, -/turf/open/floor/shiva{ - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull, /area/shiva/interior/colony/central) "agh" = ( -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/medseceng) "agl" = ( /obj/structure/machinery/firealarm{ pixel_y = 24 }, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/north, /area/shiva/interior/colony/research_hab) "agm" = ( /obj/structure/surface/table, /obj/effect/spawner/random/toolbox, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/north, /area/shiva/interior/colony/research_hab) "agp" = ( /obj/structure/noticeboard{ @@ -1546,19 +1257,15 @@ "agx" = ( /obj/structure/surface/rack, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/shiva{ - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull, /area/shiva/interior/colony/central) "agy" = ( /obj/item/lightstick/planted, /turf/open/auto_turf/snow/layer1, -/area/shiva/exterior/cp_s_research) +/area/shiva/exterior/junkyard) "agz" = ( /obj/structure/reagent_dispensers/fueltank, -/turf/open/floor{ - icon_state = "platebot" - }, +/turf/open/floor/platebot, /area/shiva/interior/colony/research_hab) "agA" = ( /obj/structure/machinery/firealarm{ @@ -1574,18 +1281,14 @@ /area/shiva/interior/colony/medseceng) "agC" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_core, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/medseceng) "agF" = ( /obj/structure/machinery/landinglight/ds2, /obj/structure/machinery/landinglight/ds2/delaythree{ dir = 4 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) "agJ" = ( /obj/structure/surface/table/reinforced/prison, @@ -1594,19 +1297,13 @@ pixel_x = 4; pixel_y = 4 }, -/turf/open/floor/shiva{ - dir = 9; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/northwest, /area/shiva/interior/colony/medseceng) "agK" = ( /obj/structure/machinery/cm_vending/sorted/tech/electronics_storage{ req_access_txt = "102" }, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/north, /area/shiva/interior/colony/medseceng) "agM" = ( /obj/item/ammo_box/magazine/nailgun, @@ -1621,10 +1318,7 @@ "agY" = ( /obj/structure/surface/table, /obj/effect/spawner/random/tool, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/east, /area/shiva/interior/colony/research_hab) "agZ" = ( /obj/structure/surface/table, @@ -1635,25 +1329,16 @@ dir = 4; pixel_x = -24 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/west, /area/shiva/interior/colony/research_hab) "aha" = ( /obj/structure/surface/table, /obj/effect/spawner/random/tech_supply, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/east, /area/shiva/interior/colony/research_hab) "ahe" = ( /obj/structure/machinery/space_heater, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull/west, /area/shiva/interior/aerodrome) "ahh" = ( /obj/structure/platform/shiva/catwalk{ @@ -1664,10 +1349,7 @@ "ahl" = ( /obj/structure/surface/table/reinforced/prison, /obj/effect/spawner/random/tool, -/turf/open/floor/shiva{ - dir = 9; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/northwest, /area/shiva/interior/colony/medseceng) "ahq" = ( /obj/structure/filingcabinet/security, @@ -1682,9 +1364,7 @@ /area/shiva/interior/colony/medseceng) "ahu" = ( /obj/structure/surface/table, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/research_hab) "ahv" = ( /obj/structure/machinery/door/airlock/almayer/security/colony{ @@ -1696,17 +1376,8 @@ "ahy" = ( /obj/effect/landmark/xeno_hive_spawn, /obj/effect/landmark/ert_spawns/groundside_xeno, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/medseceng) -"ahB" = ( -/obj/structure/machinery/light/double{ - dir = 8; - pixel_y = -5 - }, -/turf/open/floor/shiva, -/area/shiva/interior/colony/research_hab) "ahC" = ( /obj/structure/flora/bush/snow{ icon_state = "snowgrassbb_2" @@ -1718,18 +1389,12 @@ pixel_y = 6 }, /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/shiva/red/east, /area/shiva/interior/colony/medseceng) "ahE" = ( /obj/structure/surface/rack, /obj/item/cell/high/empty, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellowfull" - }, +/turf/open/floor/shiva/yellowfull/west, /area/shiva/interior/colony/medseceng) "ahO" = ( /obj/structure/surface/rack, @@ -1738,10 +1403,7 @@ pixel_y = -2 }, /obj/item/storage/box/flashbangs, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull/west, /area/shiva/interior/colony/medseceng) "ahP" = ( /obj/structure/surface/rack, @@ -1754,42 +1416,29 @@ dir = 1; pixel_y = 9 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull/west, /area/shiva/interior/colony/medseceng) "ahQ" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/cell/high, /obj/item/storage/toolbox/emergency, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellowfull" - }, +/turf/open/floor/shiva/yellowfull/west, /area/shiva/interior/colony/medseceng) "ahR" = ( /obj/structure/machinery/power/terminal{ dir = 1 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellowfull" - }, +/turf/open/floor/shiva/yellowfull/west, /area/shiva/interior/colony/medseceng) "ahS" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/toolbox, -/turf/open/floor/shiva{ - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow, /area/shiva/interior/colony/research_hab) "ahT" = ( /obj/structure/surface/rack, /obj/effect/landmark/good_item, -/turf/open/floor/shiva{ - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow, /area/shiva/interior/colony/research_hab) "ahU" = ( /obj/structure/bed/chair/office/dark{ @@ -1799,9 +1448,7 @@ dir = 8 }, /obj/structure/machinery/light/double, -/turf/open/floor/shiva{ - icon_state = "red" - }, +/turf/open/floor/shiva/red, /area/shiva/interior/colony/medseceng) "ahW" = ( /obj/structure/surface/rack, @@ -1810,10 +1457,7 @@ dir = 8; pixel_y = -5 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/west, /area/shiva/interior/colony/medseceng) "ahX" = ( /turf/closed/shuttle/elevator/gears, @@ -1823,27 +1467,19 @@ dir = 4; flipped = 1 }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/shiva/interior/colony/research_hab) "aia" = ( /obj/structure/machinery/power/terminal{ dir = 4 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellowfull" - }, +/turf/open/floor/shiva/yellowfull/west, /area/shiva/interior/colony/medseceng) "aii" = ( /obj/structure/machinery/power/smes/buildable{ name = "colony distribution SMES" }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellowfull" - }, +/turf/open/floor/shiva/yellowfull/west, /area/shiva/interior/colony/medseceng) "aij" = ( /obj/item/tool/shovel, @@ -1863,10 +1499,7 @@ pixel_x = 6; pixel_y = -4 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull/west, /area/shiva/interior/colony/medseceng) "ain" = ( /obj/structure/flora/bush/snow{ @@ -1897,25 +1530,17 @@ /obj/structure/surface/rack, /obj/item/cell/high/empty, /obj/effect/landmark/crap_item, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellowfull" - }, +/turf/open/floor/shiva/yellowfull/west, /area/shiva/interior/colony/medseceng) "aix" = ( /obj/structure/surface/rack, /obj/item/stack/sheet/wood/medium_stack, -/turf/open/floor/shiva{ - icon_state = "yellowfull" - }, +/turf/open/floor/shiva/yellowfull, /area/shiva/interior/colony/medseceng) "aiy" = ( /obj/structure/surface/table, /obj/item/storage/surgical_tray, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "wred" - }, +/turf/open/floor/shiva/wred/west, /area/shiva/interior/colony/medseceng) "aiz" = ( /obj/structure/machinery/colony_floodlight, @@ -1923,9 +1548,7 @@ /area/shiva/exterior/valley) "aiD" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/shiva{ - icon_state = "yellowfull" - }, +/turf/open/floor/shiva/yellowfull, /area/shiva/interior/colony/research_hab) "aiE" = ( /obj/item/ammo_magazine/flamer_tank, @@ -1933,9 +1556,7 @@ dir = 1; pixel_y = 9 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/central) "aiF" = ( /obj/structure/flora/bush/snow, @@ -1943,31 +1564,23 @@ /area/shiva/exterior/cp_lz2) "aiG" = ( /obj/structure/machinery/optable, -/turf/open/floor/shiva{ - icon_state = "wredfull" - }, +/turf/open/floor/shiva/wredfull, /area/shiva/interior/colony/medseceng) "aiH" = ( /obj/structure/machinery/computer/operating, /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/shiva{ - icon_state = "wredfull" - }, +/turf/open/floor/shiva/wredfull, /area/shiva/interior/colony/medseceng) "aiJ" = ( /obj/item/reagent_container/glass/bucket{ pixel_x = 9; pixel_y = 8 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/lz2_habs) "aiK" = ( /obj/structure/largecrate/random, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) "aiL" = ( /obj/structure/surface/table/reinforced/prison, @@ -1983,10 +1596,7 @@ pixel_x = -5; pixel_y = -5 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/west, /area/shiva/interior/colony/medseceng) "aiO" = ( /obj/structure/machinery/light/double{ @@ -1994,10 +1604,7 @@ pixel_y = -5 }, /obj/structure/machinery/disposal, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "wred" - }, +/turf/open/floor/shiva/wred/west, /area/shiva/interior/colony/medseceng) "aiQ" = ( /obj/structure/machinery/door/window/brigdoor/westleft{ @@ -2017,17 +1624,11 @@ /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/cell_charger, /obj/item/clothing/mask/rebreather, -/turf/open/floor/shiva{ - dir = 10; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/southwest, /area/shiva/interior/colony/medseceng) "aiV" = ( /obj/structure/machinery/disposal, -/turf/open/floor/shiva{ - dir = 6; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/southeast, /area/shiva/interior/colony/research_hab) "aiW" = ( /obj/item/lightstick/red/planted, @@ -2037,17 +1638,11 @@ /obj/structure/surface/rack, /obj/item/cell, /obj/item/cell, -/turf/open/floor/shiva{ - dir = 10; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/southwest, /area/shiva/interior/colony/medseceng) "ajb" = ( /obj/structure/bed/chair/wheelchair, -/turf/open/floor/shiva{ - dir = 5; - icon_state = "wred" - }, +/turf/open/floor/shiva/wred/northeast, /area/shiva/interior/colony/medseceng) "ajd" = ( /obj/item/stack/snow{ @@ -2056,32 +1651,24 @@ }, /obj/item/stack/snow, /turf/open/auto_turf/snow/layer3, -/area/shiva/exterior/lz1_valley) +/area/shiva/exterior/junkyard) "aje" = ( /obj/structure/machinery/light/double{ dir = 4; pixel_y = -5 }, /obj/structure/machinery/chem_dispenser, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "wred" - }, +/turf/open/floor/shiva/wred/east, /area/shiva/interior/colony/medseceng) "ajg" = ( /obj/structure/closet/toolcloset, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/shiva{ - dir = 6; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/southeast, /area/shiva/interior/colony/research_hab) "aji" = ( /obj/structure/surface/rack, /obj/item/stack/sheet/plasteel/medium_stack, -/turf/open/floor/shiva{ - icon_state = "yellowfull" - }, +/turf/open/floor/shiva/yellowfull, /area/shiva/interior/colony/medseceng) "ajq" = ( /obj/structure/reagent_dispensers/water_cooler, @@ -2089,10 +1676,7 @@ dir = 1; pixel_y = 9 }, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/shiva/blue/east, /area/shiva/interior/colony/n_admin) "ajr" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony{ @@ -2103,10 +1687,7 @@ /turf/open/floor/plating, /area/shiva/interior/colony/central) "aju" = ( -/turf/open/floor/shiva{ - dir = 8; - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull/west, /area/shiva/interior/colony/central) "ajw" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/engidoor/glass/colony{ @@ -2115,14 +1696,11 @@ /turf/open/floor/plating, /area/shiva/interior/colony/medseceng) "ajy" = ( -/obj/structure/machinery/colony_floodlight, -/turf/open/auto_turf/snow/layer0, -/area/shiva/exterior/cp_s_research) +/turf/open/floor/shiva, +/area/shiva/interior/caves/cp_camp) "ajD" = ( /obj/structure/machinery/vending/snack, -/turf/open/floor/shiva{ - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull, /area/shiva/interior/colony/central) "ajE" = ( /obj/item/stack/snow{ @@ -2130,7 +1708,7 @@ }, /obj/item/tool/shovel/snow, /turf/open/auto_turf/snow/layer3, -/area/shiva/exterior/lz1_valley) +/area/shiva/exterior/junkyard) "ajF" = ( /obj/item/tool/shovel/etool, /turf/open/auto_turf/snow/layer3, @@ -2141,25 +1719,18 @@ /obj/item/circuitboard/airlock, /obj/item/circuitboard/airlock, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/shiva{ - dir = 9; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/northwest, /area/shiva/interior/colony/medseceng) "ajK" = ( /obj/structure/surface/rack, /obj/item/circuitboard/airalarm, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/medseceng) "ajL" = ( /obj/structure/surface/rack, /obj/item/circuitboard/apc, /obj/item/circuitboard/apc, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/medseceng) "ajM" = ( /obj/structure/ore_box, @@ -2167,9 +1738,7 @@ /area/shiva/interior/colony/medseceng) "ajN" = ( /obj/structure/surface/table, -/turf/open/floor/shiva{ - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull, /area/shiva/interior/colony/central) "ajO" = ( /turf/open/floor/plating, @@ -2182,10 +1751,7 @@ /obj/structure/surface/table/reinforced, /obj/effect/spawner/random/toolbox, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/shiva{ - dir = 9; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/northwest, /area/shiva/interior/colony/medseceng) "ajV" = ( /obj/structure/curtain, @@ -2195,72 +1761,52 @@ /obj/structure/surface/table/reinforced/prison, /obj/effect/spawner/random/powercell, /obj/effect/spawner/random/bomb_supply, -/turf/open/floor/shiva{ - dir = 5; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/northeast, /area/shiva/interior/colony/medseceng) "ajX" = ( /obj/structure/surface/table/reinforced, /obj/effect/spawner/random/toolbox, /obj/effect/spawner/random/tool, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/shiva{ - dir = 10; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/southwest, /area/shiva/interior/colony/medseceng) "ajY" = ( /obj/structure/surface/table/reinforced/prison, /obj/effect/spawner/random/bomb_supply, /obj/effect/landmark/crap_item, -/turf/open/floor/shiva{ - dir = 6; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/southeast, /area/shiva/interior/colony/medseceng) "aka" = ( /obj/structure/surface/table/woodentable/poor, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "wred" - }, +/turf/open/floor/shiva/wred/west, /area/shiva/interior/colony/medseceng) "akf" = ( /obj/item/lightstick/red/planted, /turf/open/auto_turf/snow/layer0, -/area/shiva/exterior/cp_s_research) +/area/shiva/exterior/junkyard) "akh" = ( /obj/effect/landmark/xeno_spawn, -/turf/open/floor/shiva{ - icon_state = "wredfull" - }, +/turf/open/floor/shiva/wredfull, /area/shiva/interior/colony/medseceng) "aki" = ( -/turf/open/floor{ - dir = 5; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/northeast, /area/shiva/interior/colony/botany) "akj" = ( /obj/effect/landmark/queen_spawn, -/turf/open/floor/shiva{ - icon_state = "wredfull" - }, +/turf/open/floor/shiva/wredfull, /area/shiva/interior/colony/medseceng) "akl" = ( /obj/structure/machinery/cm_vending/sorted/tech/comp_storage{ req_access_txt = "102" }, -/turf/open/floor/shiva{ - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow, /area/shiva/interior/colony/medseceng) "ako" = ( /obj/structure/barricade/snow{ dir = 4 }, +/obj/structure/blocker/forcefield/multitile_vehicles, /turf/open/auto_turf/snow/layer2, /area/shiva/exterior/junkyard/fortbiceps) "akr" = ( @@ -2285,26 +1831,18 @@ /area/shiva/exterior/cp_colony_grounds) "akA" = ( /obj/item/tool/shovel/snow, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "greenfull" - }, +/turf/open/floor/shiva/greenfull/west, /area/shiva/interior/colony/n_admin) "akE" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper Underground Sports Center"; req_access_txt = "100" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/shiva/interior/colony/central) "akF" = ( /obj/vehicle/train/cargo/trolley, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull/west, /area/shiva/interior/warehouse) "akG" = ( /obj/structure/machinery/colony_floodlight, @@ -2318,17 +1856,13 @@ pixel_y = 2 }, /obj/effect/landmark/crap_item, -/turf/open/floor/shiva{ - icon_state = "wredfull" - }, +/turf/open/floor/shiva/wredfull, /area/shiva/interior/colony/medseceng) "akI" = ( /obj/structure/surface/table, /obj/item/device/flashlight, /obj/effect/landmark/crap_item, -/turf/open/floor/shiva{ - icon_state = "wredfull" - }, +/turf/open/floor/shiva/wredfull, /area/shiva/interior/colony/medseceng) "akL" = ( /obj/structure/machinery/light/double{ @@ -2363,15 +1897,13 @@ /area/shiva/interior/colony/medseceng) "akT" = ( /obj/structure/surface/table/woodentable, -/obj/item/handcuffs, +/obj/item/restraint/handcuffs, /obj/item/weapon/baton, /turf/open/floor/wood, /area/shiva/interior/colony/medseceng) "akX" = ( /obj/structure/machinery/disposal, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/s_admin) "ala" = ( /obj/structure/closet/secure_closet/personal, @@ -2384,10 +1916,7 @@ pixel_x = -4; pixel_y = -2 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull/west, /area/shiva/interior/colony/medseceng) "ale" = ( /obj/structure/surface/rack, @@ -2405,18 +1934,12 @@ pixel_x = 6; pixel_y = -4 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull/west, /area/shiva/interior/colony/medseceng) "all" = ( /obj/effect/landmark/corpsespawner/security, /obj/effect/decal/cleanable/blood, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull/west, /area/shiva/interior/colony/medseceng) "alr" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony{ @@ -2428,9 +1951,7 @@ "alt" = ( /obj/structure/surface/table, /obj/effect/landmark/crap_item, -/turf/open/floor/shiva{ - icon_state = "wredfull" - }, +/turf/open/floor/shiva/wredfull, /area/shiva/interior/colony/medseceng) "alx" = ( /obj/structure/surface/table, @@ -2438,9 +1959,7 @@ amount = 15 }, /obj/effect/landmark/crap_item, -/turf/open/floor/shiva{ - icon_state = "wredfull" - }, +/turf/open/floor/shiva/wredfull, /area/shiva/interior/colony/medseceng) "aly" = ( /obj/structure/closet/secure_closet/security, @@ -2448,10 +1967,7 @@ dir = 4; pixel_x = 24 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull/west, /area/shiva/interior/colony/medseceng) "alz" = ( /obj/structure/surface/table, @@ -2462,10 +1978,7 @@ /obj/item/tool/soap{ pixel_x = 5 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "wred" - }, +/turf/open/floor/shiva/wred/west, /area/shiva/interior/colony/medseceng) "alA" = ( /turf/open/auto_turf/ice/layer2, @@ -2515,9 +2028,7 @@ /area/shiva/interior/warehouse) "alV" = ( /obj/item/clothing/gloves/latex, -/turf/open/floor/shiva{ - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull, /area/shiva/interior/colony/medseceng) "alW" = ( /obj/structure/barricade/deployable{ @@ -2529,9 +2040,7 @@ /obj/structure/bed/chair/office/light{ dir = 4 }, -/turf/open/floor/shiva{ - icon_state = "wredfull" - }, +/turf/open/floor/shiva/wredfull, /area/shiva/interior/colony/medseceng) "ama" = ( /obj/structure/surface/table/reinforced/prison, @@ -2540,17 +2049,11 @@ pixel_x = 7; pixel_y = 14 }, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "wred" - }, +/turf/open/floor/shiva/wred/east, /area/shiva/interior/colony/medseceng) "amh" = ( /obj/structure/closet/secure_closet/security, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull/west, /area/shiva/interior/colony/medseceng) "ami" = ( /obj/structure/prop/ice_colony/dense/planter_box{ @@ -2569,24 +2072,18 @@ /area/shiva/interior/colony/medseceng) "amk" = ( /obj/effect/landmark/hunter_secondary, -/turf/open/floor/shiva{ - icon_state = "wredfull" - }, +/turf/open/floor/shiva/wredfull, /area/shiva/interior/colony/medseceng) "amn" = ( /obj/structure/surface/rack, /obj/item/tool/crowbar, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/shiva{ - icon_state = "wredfull" - }, +/turf/open/floor/shiva/wredfull, /area/shiva/interior/colony/medseceng) "amr" = ( /obj/structure/surface/rack, /obj/item/tool/pickaxe, -/turf/open/floor/shiva{ - icon_state = "wredfull" - }, +/turf/open/floor/shiva/wredfull, /area/shiva/interior/colony/medseceng) "amu" = ( /turf/closed/wall/shiva/prefabricated/red, @@ -2604,17 +2101,13 @@ "amA" = ( /obj/structure/surface/table, /obj/item/reagent_container/food/snacks/chips, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/shiva/interior/colony/central) "amE" = ( /obj/structure/bed/chair/comfy/blue{ dir = 4 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/n_admin) "amG" = ( /obj/structure/machinery/light/double{ @@ -2624,9 +2117,7 @@ /obj/structure/machinery/alarm{ pixel_y = 24 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/central) "amH" = ( /obj/structure/bed/chair{ @@ -2659,10 +2150,7 @@ pixel_x = 6; pixel_y = -4 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull/west, /area/shiva/interior/colony/medseceng) "amM" = ( /obj/structure/flora/grass/tallgrass/ice/corner, @@ -2673,23 +2161,16 @@ /area/shiva/exterior/cp_lz2) "amN" = ( /obj/item/tool/crowbar, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull/west, /area/shiva/interior/colony/medseceng) "amO" = ( /obj/structure/bed/chair/comfy/blue{ dir = 4 }, -/turf/open/floor/shiva{ - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull, /area/shiva/interior/colony/n_admin) "amP" = ( -/turf/open/floor/shiva{ - icon_state = "wredfull" - }, +/turf/open/floor/shiva/wredfull, /area/shiva/interior/colony/medseceng) "amQ" = ( /obj/item/lightstick/red/planted, @@ -2699,14 +2180,10 @@ /obj/structure/prop/ice_colony/ground_wire{ layer = 2.98 }, -/turf/open/floor/shiva{ - icon_state = "purple" - }, +/turf/open/floor/shiva/purple, /area/shiva/interior/lz2_habs) "amU" = ( -/turf/open/floor/shiva{ - icon_state = "wred" - }, +/turf/open/floor/shiva/wred, /area/shiva/interior/colony/medseceng) "amX" = ( /obj/item/paper_bin{ @@ -2726,31 +2203,17 @@ id = "otice"; pixel_y = -24 }, -/turf/open/floor/shiva{ - icon_state = "wred" - }, +/turf/open/floor/shiva/wred, /area/shiva/interior/colony/medseceng) "anc" = ( /turf/closed/wall/shiva/prefabricated/white, -/area/shiva/interior/lz2_habs) +/area/shiva/interior/aux_power) "anm" = ( /obj/structure/bed/chair/comfy/blue{ dir = 1 }, -/turf/open/floor/shiva{ - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull, /area/shiva/interior/colony/n_admin) -"ano" = ( -/obj/structure/closet/toolcloset, -/obj/structure/machinery/light/double{ - dir = 4; - pixel_y = -5 - }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, -/area/shiva/interior/aerodrome) "anq" = ( /obj/structure/toilet, /turf/open/floor/plating, @@ -2761,18 +2224,13 @@ /area/shiva/interior/warehouse) "ant" = ( /obj/item/roller, -/turf/open/floor/shiva{ - dir = 6; - icon_state = "wred" - }, +/turf/open/floor/shiva/wred/southeast, /area/shiva/interior/colony/medseceng) "any" = ( /obj/structure/closet/secure_closet/medical3{ req_access_txt = "100" }, -/turf/open/floor/shiva{ - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull, /area/shiva/interior/colony/medseceng) "anz" = ( /obj/structure/surface/table/reinforced/prison, @@ -2783,26 +2241,19 @@ pixel_x = -1; pixel_y = 14 }, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "wred" - }, +/turf/open/floor/shiva/wred/east, /area/shiva/interior/colony/medseceng) "anA" = ( /obj/structure/barricade/handrail/strata{ dir = 8 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/central) "anE" = ( /obj/structure/barricade/metal/wired{ dir = 1 }, -/turf/open/floor/shiva{ - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull, /area/shiva/interior/colony/central) "anF" = ( /obj/item/reagent_container/food/drinks/bottle/limejuice{ @@ -2833,10 +2284,7 @@ "anI" = ( /obj/structure/surface/table, /obj/item/tool/stamp, -/turf/open/floor/shiva{ - dir = 9; - icon_state = "wred" - }, +/turf/open/floor/shiva/wred/northwest, /area/shiva/interior/colony/medseceng) "anJ" = ( /obj/effect/decal/cleanable/dirt, @@ -2856,10 +2304,7 @@ pixel_y = -4 }, /obj/item/weapon/gun/shotgun/pump/dual_tube/cmb, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull/west, /area/shiva/interior/colony/medseceng) "anU" = ( /obj/structure/surface/rack, @@ -2868,10 +2313,7 @@ pixel_x = 6; pixel_y = -4 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull/west, /area/shiva/interior/colony/medseceng) "anV" = ( /obj/effect/decal/cleanable/blood{ @@ -2880,10 +2322,7 @@ /obj/effect/decal/cleanable/blood{ icon_state = "gib6" }, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/shiva/green/north, /area/shiva/interior/colony/botany) "anX" = ( /obj/item/clothing/shoes/snow, @@ -2895,18 +2334,12 @@ /obj/effect/decal/strata_decals/grime/grime3{ dir = 8 }, -/turf/open/floor/shiva{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/southeast, /area/shiva/interior/colony/n_admin) "anY" = ( /obj/structure/surface/rack, /obj/item/ammo_magazine/shotgun/buckshot, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull/west, /area/shiva/interior/colony/medseceng) "anZ" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ @@ -2927,28 +2360,19 @@ /area/shiva/interior/colony/medseceng) "aoi" = ( /obj/structure/machinery/iv_drip, -/turf/open/floor/shiva{ - icon_state = "wredfull" - }, +/turf/open/floor/shiva/wredfull, /area/shiva/interior/colony/medseceng) "aop" = ( /obj/structure/machinery/cm_vending/sorted/medical/no_access, -/turf/open/floor/shiva{ - icon_state = "wredfull" - }, +/turf/open/floor/shiva/wredfull, /area/shiva/interior/colony/medseceng) "aor" = ( /obj/structure/machinery/medical_pod/sleeper, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "wred" - }, +/turf/open/floor/shiva/wred/west, /area/shiva/interior/colony/medseceng) "aos" = ( /obj/structure/machinery/sleep_console, -/turf/open/floor/shiva{ - icon_state = "wredfull" - }, +/turf/open/floor/shiva/wredfull, /area/shiva/interior/colony/medseceng) "aot" = ( /obj/structure/machinery/cm_vending/sorted/medical/blood, @@ -2956,33 +2380,22 @@ dir = 4; pixel_y = -5 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull/west, /area/shiva/interior/colony/medseceng) "aov" = ( /obj/structure/barricade/handrail/wire, /obj/structure/machinery/chem_dispenser, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "wred" - }, +/turf/open/floor/shiva/wred/east, /area/shiva/interior/colony/medseceng) "aow" = ( /obj/structure/reagent_dispensers/water_cooler/stacks, -/turf/open/floor/shiva{ - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull, /area/shiva/interior/colony/n_admin) "aoy" = ( /obj/structure/bed/chair/office/light{ dir = 1 }, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "wred" - }, +/turf/open/floor/shiva/wred/north, /area/shiva/interior/colony/medseceng) "aoz" = ( /obj/structure/reagent_dispensers/water_cooler{ @@ -2990,41 +2403,28 @@ pixel_x = -10; pixel_y = 19 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull/west, /area/shiva/interior/colony/medseceng) "aoA" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_core, -/turf/open/floor/shiva{ - icon_state = "wredfull" - }, +/turf/open/floor/shiva/wredfull, /area/shiva/interior/colony/medseceng) "aoB" = ( /obj/effect/decal/cleanable/blood/drip, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "snow_mat" - }, +/turf/open/floor/shiva/snow_mat/west, /area/shiva/interior/colony/botany) "aoK" = ( /turf/open/floor/wood, /area/shiva/interior/colony/medseceng) "aoL" = ( /obj/item/storage/pouch/flare/full, -/turf/open/floor/shiva{ - dir = 6; - icon_state = "green" - }, +/turf/open/floor/shiva/green/southeast, /area/shiva/interior/colony/botany) "aoP" = ( /obj/structure/closet/secure_closet/medical1{ req_access_txt = "100" }, -/turf/open/floor/shiva{ - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull, /area/shiva/interior/colony/medseceng) "aoX" = ( /obj/effect/decal/warning_stripes{ @@ -3122,9 +2522,7 @@ "apk" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/tool, -/turf/open/floor/shiva{ - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow, /area/shiva/interior/colony/research_hab) "apm" = ( /obj/effect/decal/cleanable/blood/drip{ @@ -3136,25 +2534,17 @@ /turf/open/auto_turf/snow/layer0, /area/shiva/exterior/cp_colony_grounds) "apv" = ( -/turf/open/floor/shiva{ - dir = 8; - icon_state = "wred" - }, +/turf/open/floor/shiva/wred/west, /area/shiva/interior/colony/medseceng) "apz" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_21" }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/shiva/interior/bar) "apB" = ( /obj/structure/closet/firecloset/full, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull/west, /area/shiva/interior/colony/medseceng) "apD" = ( /obj/structure/prop/ice_colony/ground_wire{ @@ -3164,10 +2554,7 @@ /area/shiva/interior/caves/research_caves) "apE" = ( /obj/structure/closet/emcloset, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull/west, /area/shiva/interior/colony/medseceng) "apF" = ( /obj/effect/decal/cleanable/blood{ @@ -3186,26 +2573,17 @@ /area/shiva/exterior/cp_lz2) "apL" = ( /obj/structure/flora/pottedplant, -/turf/open/floor/shiva{ - dir = 5; - icon_state = "green" - }, +/turf/open/floor/shiva/green/northeast, /area/shiva/interior/colony/botany) "apO" = ( /obj/structure/machinery/cm_vending/sorted/medical/blood, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "wred" - }, +/turf/open/floor/shiva/wred/north, /area/shiva/interior/colony/medseceng) "apT" = ( /obj/item/ammo_casing{ icon_state = "casing_5" }, -/turf/open/floor/shiva{ - dir = 5; - icon_state = "green" - }, +/turf/open/floor/shiva/green/northeast, /area/shiva/interior/colony/botany) "apW" = ( /obj/structure/surface/table, @@ -3214,10 +2592,7 @@ pixel_x = 6; pixel_y = 10 }, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "wred" - }, +/turf/open/floor/shiva/wred/north, /area/shiva/interior/colony/medseceng) "apY" = ( /obj/structure/closet/crate/ammo, @@ -3229,9 +2604,7 @@ /obj/item/ammo_magazine/rifle/boltaction, /obj/item/ammo_magazine/rifle/boltaction, /obj/item/ammo_magazine/handful/shotgun/buckshot, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) "apZ" = ( /obj/structure/sink{ @@ -3239,9 +2612,7 @@ pixel_x = -11; pixel_y = 5 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/shiva/interior/bar) "aqb" = ( /obj/item/lightstick/red/spoke/planted{ @@ -3249,9 +2620,7 @@ pixel_x = 12; pixel_y = 28 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) "aqc" = ( /obj/structure/prop/invuln/ice_prefab/trim{ @@ -3322,9 +2691,7 @@ /obj/structure/surface/rack, /obj/item/storage/box/lightstick/red, /obj/item/storage/box/lightstick/red, -/turf/open/floor/shiva{ - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow, /area/shiva/interior/colony/research_hab) "arh" = ( /obj/effect/decal/warning_stripes{ @@ -3376,25 +2743,18 @@ pixel_x = 12; pixel_y = 25 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) "arK" = ( /obj/structure/surface/table, /obj/item/circuitboard/apc, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/east, /area/shiva/interior/colony/research_hab) "arL" = ( /obj/structure/bed/chair/comfy/blue{ dir = 8 }, -/turf/open/floor/shiva{ - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull, /area/shiva/interior/colony/n_admin) "arN" = ( /obj/structure/prop/ice_colony/surveying_device{ @@ -3421,10 +2781,7 @@ "arU" = ( /obj/structure/surface/table, /obj/effect/spawner/random/powercell, -/turf/open/floor/shiva{ - dir = 6; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/southeast, /area/shiva/interior/colony/research_hab) "arW" = ( /obj/effect/decal/cleanable/dirt, @@ -3452,20 +2809,14 @@ pixel_y = 24 }, /obj/structure/bed/chair, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/shiva/red/north, /area/shiva/interior/colony/medseceng) "ase" = ( /obj/structure/bed/chair, /obj/structure/machinery/alarm{ pixel_y = 24 }, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/shiva/red/north, /area/shiva/interior/colony/medseceng) "ash" = ( /obj/structure/prop/invuln/ice_prefab, @@ -3526,10 +2877,6 @@ }, /turf/open/auto_turf/snow/layer1, /area/shiva/exterior/cp_lz2) -"asC" = ( -/obj/structure/fence, -/turf/open/auto_turf/snow/layer3, -/area/shiva/exterior/research_alley) "asE" = ( /obj/structure/prop/invuln/ice_prefab{ dir = 5 @@ -3559,10 +2906,7 @@ pixel_y = 8 }, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/shiva{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/southeast, /area/shiva/interior/colony/botany) "asK" = ( /obj/structure/disposaloutlet{ @@ -3598,9 +2942,7 @@ "asU" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/computer/shuttle/dropship/flight/lz2, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz1_console/two) "asW" = ( /obj/structure/prop/invuln/ice_prefab/trim{ @@ -3657,43 +2999,31 @@ /area/shiva/exterior/cp_lz2) "aty" = ( /obj/item/trash/candy, -/turf/open/floor/plating{ - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate, /area/shiva/interior/valley_huts/disposals) "atB" = ( /obj/item/ammo_magazine/shotgun/slugs{ pixel_x = 6; pixel_y = -4 }, -/turf/open/floor/plating{ - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate, /area/shiva/interior/valley_huts/disposals) "atC" = ( /obj/item/trash/raisins, -/turf/open/floor/plating{ - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate, /area/shiva/interior/valley_huts/disposals) "atD" = ( /obj/effect/landmark/crap_item, -/turf/open/floor/plating{ - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate, /area/shiva/interior/valley_huts/disposals) "atF" = ( /obj/item/evidencebag, /obj/item/trash/pistachios, -/turf/open/floor/plating{ - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate, /area/shiva/interior/valley_huts/disposals) "atG" = ( /obj/item/trash/liquidfood, -/turf/open/floor/plating{ - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate, /area/shiva/interior/valley_huts/disposals) "atH" = ( /obj/structure/prop/invuln/ice_prefab{ @@ -3705,10 +3035,6 @@ }, /turf/open/auto_turf/ice/layer0, /area/shiva/interior/caves/cp_camp) -"atJ" = ( -/obj/structure/flora/tree/dead/tree_3, -/turf/open/auto_turf/snow/layer3, -/area/shiva/exterior/research_alley) "atK" = ( /obj/structure/fence, /turf/open/auto_turf/snow/layer1, @@ -3717,10 +3043,7 @@ /obj/structure/closet/hydrant{ pixel_y = 32 }, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/shiva/red/north, /area/shiva/interior/colony/medseceng) "atT" = ( /obj/structure/surface/table, @@ -3732,38 +3055,24 @@ pixel_y = -13 }, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/west, /area/shiva/interior/colony/botany) "aub" = ( /obj/structure/bed/chair{ dir = 1 }, /obj/structure/machinery/light/double, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/central) "aud" = ( -/turf/open/floor/shiva{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/north, /area/shiva/interior/colony/research_hab) "aue" = ( /obj/structure/closet/secure_closet/engineering_welding, -/turf/open/floor/shiva{ - dir = 10; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/southwest, /area/shiva/interior/colony/research_hab) "auf" = ( -/turf/open/floor{ - dir = 8; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/west, /area/shiva/interior/valley_huts/disposals) "aug" = ( /obj/structure/flora/grass/tallgrass/ice, @@ -3806,16 +3115,12 @@ dir = 4; pixel_y = -5 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/medseceng) "auM" = ( /obj/structure/closet/secure_closet/freezer/fridge, /obj/effect/landmark/crap_item, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/botany) "auS" = ( /obj/structure/surface/table, @@ -3825,48 +3130,33 @@ }, /obj/item/reagent_container/food/snacks/hotchili, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/botany) "auT" = ( /obj/structure/surface/table, /obj/structure/machinery/microwave, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/botany) "auU" = ( /obj/structure/window/reinforced{ dir = 1 }, -/turf/open/floor{ - dir = 9; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/northwest, /area/shiva/interior/valley_huts/disposals) "auV" = ( /obj/structure/window/reinforced{ dir = 1 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/north, /area/shiva/interior/valley_huts/disposals) "auZ" = ( /obj/structure/machinery/door/window/northright, -/turf/open/floor{ - dir = 5; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/northeast, /area/shiva/interior/valley_huts/disposals) "ava" = ( /obj/structure/closet/secure_closet/engineering_welding, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/shiva{ - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow, /area/shiva/interior/colony/research_hab) "ave" = ( /obj/structure/flora/grass/tallgrass/ice, @@ -3890,16 +3180,14 @@ pixel_x = 5; pixel_y = 10 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/bar) "avx" = ( /obj/structure/platform/shiva/catwalk{ dir = 1 }, /turf/open/auto_turf/snow/layer3, -/area/shiva/exterior/lz1_valley) +/area/shiva/exterior/junkyard) "avz" = ( /obj/structure/surface/rack, /obj/item/bodybag/tarp/snow{ @@ -3917,24 +3205,17 @@ /turf/open/auto_turf/snow/layer3, /area/shiva/exterior/cp_lz2) "awc" = ( -/turf/open/floor{ - dir = 4; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/east, /area/shiva/interior/valley_huts/disposals) "awj" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/central) "awq" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony{ name = "\improper Colony Disposals" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/shiva/interior/valley_huts/disposals) "awr" = ( /obj/structure/largecrate/random/case/small, @@ -3949,9 +3230,7 @@ /obj/item/storage/belt/utility, /obj/effect/spawner/random/toolbox, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/medseceng) "awK" = ( /obj/structure/flora/bush/snow{ @@ -3959,6 +3238,10 @@ }, /turf/open/auto_turf/snow/layer3, /area/shiva/exterior/cp_lz2) +"awP" = ( +/obj/item/lightstick/red/variant/planted, +/turf/open/auto_turf/snow/layer2, +/area/shiva/exterior/cp_s_research) "awY" = ( /obj/structure/flora/grass/tallgrass/ice, /obj/structure/flora/bush/ausbushes/lavendergrass{ @@ -3981,9 +3264,7 @@ "axd" = ( /obj/effect/landmark/xeno_hive_spawn, /obj/effect/landmark/ert_spawns/groundside_xeno, -/turf/open/floor/shiva{ - icon_state = "wredfull" - }, +/turf/open/floor/shiva/wredfull, /area/shiva/interior/colony/medseceng) "axe" = ( /obj/structure/flora/bush/snow{ @@ -3993,18 +3274,14 @@ /turf/open/auto_turf/snow/layer3, /area/shiva/exterior/cp_lz2) "axf" = ( -/turf/open/floor/shiva{ - icon_state = "greenfull" - }, +/turf/open/floor/shiva/greenfull, /area/shiva/interior/colony/n_admin) "axq" = ( /obj/item/ammo_magazine/rifle/boltaction{ pixel_x = -5; pixel_y = -9 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/exterior/lz2_fortress) "axt" = ( /obj/structure/surface/table, @@ -4012,22 +3289,14 @@ /obj/item/device/radio, /obj/item/storage/toolbox/emergency, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 8; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/west, /area/shiva/interior/valley_huts/disposals) "axv" = ( -/turf/open/floor{ - icon_state = "darkbrowncorners2" - }, +/turf/open/floor/darkbrowncorners2, /area/shiva/interior/valley_huts/disposals) "axw" = ( /obj/structure/machinery/space_heater, -/turf/open/floor{ - dir = 6; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/southeast, /area/shiva/interior/valley_huts/disposals) "axx" = ( /obj/structure/ice/ice_rock/cornerOverlay{ @@ -4050,48 +3319,33 @@ /turf/open/auto_turf/snow/layer2, /area/shiva/exterior/cp_colony_grounds) "axG" = ( -/turf/open/floor/shiva{ - dir = 8; - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull/west, /area/shiva/interior/colony/medseceng) "axH" = ( /obj/structure/surface/table, /obj/item/storage/belt/utility, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/shiva{ - dir = 9; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/northwest, /area/shiva/interior/garage) "axI" = ( /obj/structure/machinery/light/double{ dir = 1; pixel_y = 9 }, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/north, /area/shiva/interior/garage) "axJ" = ( /turf/open/asphalt/cement, /area/shiva/interior/warehouse) "axK" = ( /obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/north, /area/shiva/interior/garage) "axM" = ( /obj/structure/surface/table, /obj/effect/spawner/random/tool, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/north, /area/shiva/interior/garage) "axN" = ( /obj/structure/machinery/door_control{ @@ -4108,25 +3362,16 @@ /obj/structure/surface/table, /obj/effect/spawner/random/toolbox, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/north, /area/shiva/interior/garage) "axP" = ( /obj/structure/machinery/disposal, -/turf/open/floor/shiva{ - dir = 5; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/northeast, /area/shiva/interior/garage) "axQ" = ( /obj/structure/surface/table, /obj/effect/landmark/crap_item, -/turf/open/floor/shiva{ - dir = 9; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/northwest, /area/shiva/interior/garage) "axR" = ( /obj/structure/machinery/light/double{ @@ -4135,58 +3380,41 @@ }, /obj/structure/surface/table, /obj/effect/spawner/random/tool, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/north, /area/shiva/interior/garage) "axS" = ( /obj/structure/surface/table, /obj/item/storage/box/lightstick/red, /obj/effect/landmark/good_item, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 10; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/southwest, /area/shiva/interior/valley_huts/disposals) "axT" = ( /obj/structure/surface/table, /obj/item/device/lightreplacer, /obj/item/clothing/mask/rebreather, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2, /area/shiva/interior/valley_huts/disposals) "axU" = ( -/turf/open/floor{ - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2, /area/shiva/interior/valley_huts/disposals) "axV" = ( /obj/structure/machinery/light/double, -/turf/open/floor{ - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2, /area/shiva/interior/valley_huts/disposals) "axZ" = ( /obj/structure/surface/rack, /obj/item/tool/shovel/snow, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2, /area/shiva/interior/valley_huts/disposals) "ayb" = ( /obj/structure/surface/rack, /obj/item/device/flashlight, /obj/item/device/flashlight/flare, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 6; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/southeast, /area/shiva/interior/valley_huts/disposals) "ayc" = ( /obj/item/lightstick/red/spoke/planted{ @@ -4208,35 +3436,28 @@ /obj/structure/barricade/metal/wired{ dir = 4 }, -/turf/open/floor/shiva{ - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull, /area/shiva/interior/colony/central) "ayx" = ( /obj/structure/surface/table, /obj/effect/spawner/random/powercell, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/shiva{ - dir = 9; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/northwest, /area/shiva/interior/garage) "ayy" = ( /obj/structure/surface/table, /obj/effect/spawner/random/tool, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "yellowcorners" - }, +/turf/open/floor/shiva/yellowcorners/north, /area/shiva/interior/garage) +"ayz" = ( +/obj/structure/fence, +/turf/open/auto_turf/snow/layer3, +/area/shiva/exterior/cp_s_research) "ayB" = ( /obj/structure/surface/table, /obj/item/device/flashlight, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/west, /area/shiva/interior/garage) "ayG" = ( /obj/structure/machinery/alarm{ @@ -4245,20 +3466,12 @@ /obj/structure/barricade/metal/wired{ dir = 8 }, -/turf/open/floor/shiva{ - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull, /area/shiva/interior/colony/central) "ayH" = ( /obj/item/clothing/shoes/snow, /turf/open/auto_turf/snow/layer1, /area/shiva/exterior/cp_lz2) -"ayJ" = ( -/obj/structure/prop/invuln/ice_prefab/standalone{ - icon_state = "white" - }, -/turf/open/auto_turf/snow/layer2, -/area/shiva/exterior/research_alley) "ayK" = ( /obj/structure/prop/invuln/ice_prefab, /turf/open/auto_turf/snow/layer0, @@ -4311,17 +3524,12 @@ /obj/item/storage/toolbox/emergency, /obj/structure/surface/table, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/shiva{ - dir = 10; - icon_state = "wred" - }, +/turf/open/floor/shiva/wred/southwest, /area/shiva/interior/colony/medseceng) "aze" = ( /obj/structure/surface/table, /obj/effect/spawner/random/tool, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/garage) "azf" = ( /obj/structure/machinery/light/double{ @@ -4331,25 +3539,18 @@ /obj/structure/surface/table, /obj/effect/spawner/random/tool, /obj/effect/spawner/random/toolbox, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/garage) "azg" = ( /obj/structure/surface/table, /obj/item/storage/box/lightstick/red, /obj/effect/landmark/crap_item, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/garage) "azk" = ( /obj/structure/surface/table, /obj/effect/landmark/good_item, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/west, /area/shiva/interior/garage) "azm" = ( /obj/vehicle/train/cargo/trolley, @@ -4358,26 +3559,19 @@ "azo" = ( /obj/vehicle/train/cargo/trolley, /obj/effect/landmark/crap_item, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/garage) "azp" = ( /obj/vehicle/train/cargo/engine, /obj/effect/decal/warning_stripes{ icon_state = "SE-out" }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/garage) "azq" = ( /obj/structure/surface/table, /obj/effect/spawner/random/tool, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/west, /area/shiva/interior/garage) "azx" = ( /obj/structure/flora/tree/dead/tree_6, @@ -4400,35 +3594,24 @@ /area/shiva/exterior/cp_lz2) "azF" = ( /obj/structure/machinery/power/port_gen/pacman, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/garage) "azH" = ( /obj/structure/closet/toolcloset, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/west, /area/shiva/interior/colony/research_hab) "azI" = ( /obj/effect/decal/warning_stripes{ icon_state = "N-corner" }, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/north, /area/shiva/interior/garage) "azK" = ( /obj/effect/decal/warning_stripes{ icon_state = "N" }, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/north, /area/shiva/interior/garage) "azM" = ( /obj/structure/machinery/power/port_gen/pacman, @@ -4444,9 +3627,7 @@ /obj/structure/window/reinforced/tinted{ dir = 8 }, -/turf/open/floor/shiva{ - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull, /area/shiva/interior/colony/n_admin) "azS" = ( /obj/structure/surface/table, @@ -4459,47 +3640,33 @@ /area/shiva/interior/warehouse) "azY" = ( /obj/structure/machinery/photocopier, -/turf/open/floor/shiva{ - icon_state = "red" - }, +/turf/open/floor/shiva/red, /area/shiva/interior/colony/medseceng) "azZ" = ( /obj/structure/machinery/computer/cameras, /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/shiva{ - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull, /area/shiva/interior/colony/n_admin) "aAc" = ( /obj/structure/bed/chair/comfy/blue, -/turf/open/floor/shiva{ - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull, /area/shiva/interior/colony/n_admin) "aAg" = ( /obj/effect/landmark/corpsespawner/colonist/random, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/central) "aAh" = ( /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/garage) "aAi" = ( /obj/structure/surface/table, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/central) "aAj" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/faxmachine, -/turf/open/floor/shiva{ - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull, /area/shiva/interior/colony/s_admin) "aAl" = ( /obj/structure/machinery/alarm{ @@ -4516,35 +3683,24 @@ /obj/structure/machinery/firealarm{ pixel_y = 24 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/central) "aAp" = ( /obj/structure/closet/secure_closet/engineering_electrical, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/garage) "aAM" = ( /obj/structure/surface/table, /obj/item/device/radio, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull/west, /area/shiva/interior/colony/medseceng) "aBe" = ( /obj/item/bodybag, -/turf/open/floor/shiva{ - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull, /area/shiva/interior/colony/central) "aBf" = ( /obj/effect/spawner/random/toolbox, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/garage) "aBi" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ @@ -4564,24 +3720,18 @@ /area/shiva/interior/garage) "aBk" = ( /obj/structure/machinery/cm_vending/sorted/tech/electronics_storage, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/garage) "aBl" = ( /obj/item/bodybag, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/central) "aBm" = ( /obj/effect/decal/cleanable/blood{ dir = 4; icon_state = "gib6" }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/garage) "aBs" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ @@ -4589,18 +3739,14 @@ name = "\improper Colony Dormitories"; req_access_txt = "100" }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/n_admin) "aBt" = ( /obj/structure/machinery/firealarm{ dir = 4; pixel_x = 24 }, -/turf/open/floor/shiva{ - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull, /area/shiva/interior/colony/s_admin) "aBA" = ( /obj/structure/flora/grass/tallgrass/ice, @@ -4609,9 +3755,7 @@ /area/shiva/exterior/cp_lz2) "aBB" = ( /obj/effect/landmark/survivor_spawner, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/lz2_habs) "aBE" = ( /obj/effect/decal/warning_stripes{ @@ -4623,30 +3767,21 @@ /area/shiva/interior/colony/central) "aBK" = ( /obj/effect/spawner/random/powercell, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/garage) "aBU" = ( /obj/structure/machinery/cm_vending/sorted/tech/tool_storage, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/garage) "aBV" = ( /obj/structure/machinery/space_heater, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/west, /area/shiva/interior/garage) "aBZ" = ( /obj/effect/decal/cleanable/blood{ icon_state = "gib6" }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/garage) "aCb" = ( /obj/structure/prop/invuln/ice_prefab/trim{ @@ -4688,16 +3823,11 @@ /obj/structure/surface/table, /obj/item/clothing/mask/rebreather, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/shiva{ - dir = 10; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/southwest, /area/shiva/interior/garage) "aCw" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/shiva{ - icon_state = "yellowcorners" - }, +/turf/open/floor/shiva/yellowcorners, /area/shiva/interior/garage) "aCx" = ( /obj/structure/machinery/light/double, @@ -4705,9 +3835,7 @@ dir = 4; icon_state = "gib6" }, -/turf/open/floor/shiva{ - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow, /area/shiva/interior/garage) "aCy" = ( /obj/structure/surface/table, @@ -4720,21 +3848,13 @@ /obj/structure/surface/table, /obj/effect/spawner/random/toolbox, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/shiva{ - dir = 10; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/southwest, /area/shiva/interior/garage) "aCA" = ( -/turf/open/floor/shiva{ - dir = 6; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/southeast, /area/shiva/interior/garage) "aCB" = ( -/turf/open/floor/shiva{ - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow, /area/shiva/interior/colony/research_hab) "aCC" = ( /obj/structure/largecrate/random/mini/med, @@ -4793,16 +3913,12 @@ /obj/item/stack/sheet/mineral/phoron{ amount = 15 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/valley_huts/no2) "aDq" = ( /obj/structure/largecrate/random, /obj/effect/landmark/good_item, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/valley_huts/no2) "aDu" = ( /turf/open/floor/interior/plastic, @@ -4825,9 +3941,7 @@ /obj/structure/closet/crate, /obj/item/tool/shovel/snow, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/valley_huts/no2) "aDF" = ( /obj/structure/largecrate/random, @@ -4835,9 +3949,7 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/valley_huts/no2) "aDG" = ( /obj/structure/machinery/door_control{ @@ -4847,9 +3959,7 @@ pixel_x = 24; specialfunctions = 4 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/valley_huts/no2) "aDH" = ( /obj/structure/machinery/door_control{ @@ -4878,9 +3988,7 @@ /area/shiva/exterior/cp_colony_grounds) "aDR" = ( /obj/structure/machinery/floodlight, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/valley_huts/no2) "aDS" = ( /obj/structure/machinery/door/airlock/almayer/secure/colony{ @@ -4891,9 +3999,7 @@ /area/shiva/interior/valley_huts/no2) "aDW" = ( /obj/item/storage/toolbox/emergency, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/valley_huts/no2) "aEd" = ( /obj/structure/prop/invuln/ice_prefab/standalone/trim{ @@ -4905,7 +4011,7 @@ pixel_y = -1 }, /turf/closed/wall/shiva/prefabricated/white, -/area/shiva/interior/lz2_habs) +/area/shiva/interior/aux_power) "aEq" = ( /obj/structure/flora/tree/dead/tree_6, /turf/open/auto_turf/snow/layer3, @@ -5014,9 +4120,7 @@ pixel_x = 8 }, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/aerodrome) "aFs" = ( /obj/structure/machinery/door_control{ @@ -5031,16 +4135,11 @@ dir = 4; start_charge = 50 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/valley_huts) "aFu" = ( /obj/item/storage/pouch/firstaid/full/pills, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "green" - }, +/turf/open/floor/shiva/green/east, /area/shiva/interior/colony/botany) "aFz" = ( /obj/structure/flora/tree/dead/tree_4, @@ -5083,15 +4182,11 @@ dir = 1; pixel_y = 9 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/central) "aGb" = ( /obj/item/stack/rods, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/shiva/interior/aerodrome) "aGc" = ( /obj/structure/prop/structure_lattice{ @@ -5100,14 +4195,10 @@ icon = 'icons/turf/elevator.dmi'; icon_state = "wall_broke" }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/shiva/interior/aerodrome) "aGd" = ( -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/shiva/interior/aerodrome) "aGe" = ( /obj/structure/prop/structure_lattice{ @@ -5116,9 +4207,7 @@ icon = 'icons/turf/elevator.dmi'; icon_state = "wall_broke" }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/shiva/interior/aerodrome) "aGf" = ( /obj/effect/decal/cleanable/dirt, @@ -5175,14 +4264,8 @@ pixel_x = -3; pixel_y = 2 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/bar) -"aHz" = ( -/obj/structure/flora/tree/dead/tree_1, -/turf/open/auto_turf/snow/layer3, -/area/shiva/exterior/research_alley) "aHB" = ( /obj/structure/flora/bush/snow{ icon_state = "snowgrassbb_1" @@ -5199,9 +4282,7 @@ /obj/structure/machinery/landinglight/ds2/delayone{ dir = 4 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) "aIh" = ( /obj/effect/decal/cleanable/dirt, @@ -5211,33 +4292,20 @@ "aIv" = ( /obj/structure/surface/table, /obj/item/stack/cable_coil, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, -/area/shiva/interior/lz2_habs) +/turf/open/floor/shiva/floor3, +/area/shiva/interior/aux_power) "aIG" = ( /obj/item/weapon/wirerod, /turf/open/shuttle/elevator/grating, /area/shiva/interior/aerodrome) -"aIO" = ( -/turf/closed/wall/shiva/prefabricated/red, -/area/shiva/interior/oob) "aJc" = ( /obj/structure/largecrate/random/mini/med, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/valley_huts/no2) -"aJd" = ( -/obj/structure/surface/table/reinforced/prison, -/turf/open/auto_turf/ice/layer1, -/area/shiva/interior/caves/cp_camp) "aJe" = ( /obj/effect/spawner/random/toolbox, /obj/effect/landmark/crap_item, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/valley_huts) "aJj" = ( /obj/item/weapon/throwing_knife, @@ -5245,39 +4313,28 @@ /area/shiva/interior/aerodrome) "aJk" = ( /obj/structure/machinery/door/airlock/multi_tile/elevator/arrivals, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/shiva/interior/aerodrome) "aJn" = ( /obj/item/frame/table, -/turf/open/floor/shiva{ - icon_state = "wred" - }, +/turf/open/floor/shiva/wred, /area/shiva/interior/colony/medseceng) "aJy" = ( /obj/structure/flora/tree/dead/tree_5, /turf/open/auto_turf/snow/layer3, /area/shiva/exterior/cp_lz2) "aJB" = ( -/turf/open/floor/shiva{ - dir = 8; - icon_state = "snow_mat" - }, +/turf/open/floor/shiva/snow_mat/west, /area/shiva/interior/colony/central) "aJE" = ( /obj/structure/machinery/light/double, -/turf/open/floor/shiva{ - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull, /area/shiva/interior/colony/s_admin) "aJF" = ( /obj/item/lightstick/red/spoke/planted{ pixel_x = -11 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/bar) "aJG" = ( /obj/structure/flora/tree/dead/tree_4, @@ -5292,16 +4349,8 @@ pixel_x = 6; pixel_y = 9 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/aerodrome) -"aJR" = ( -/obj/structure/flora/bush/snow{ - icon_state = "snowgrassgb_2" - }, -/turf/open/auto_turf/snow/layer3, -/area/shiva/exterior/cp_s_research) "aJU" = ( /obj/structure/bed/chair/office/light{ dir = 8 @@ -5312,9 +4361,6 @@ /obj/structure/prop/invuln/ice_prefab/standalone/trim{ icon_state = "pink_trim" }, -/obj/structure/machinery/portable_atmospherics/powered/scrubber{ - icon_state = "psiphon:1" - }, /turf/open/auto_turf/snow/layer1, /area/shiva/exterior/valley) "aKn" = ( @@ -5323,18 +4369,6 @@ }, /turf/open/auto_turf/snow/layer1, /area/shiva/exterior/valley) -"aKo" = ( -/obj/structure/surface/rack, -/obj/item/ammo_rcd{ - pixel_x = -4 - }, -/obj/item/ammo_rcd{ - pixel_x = 4 - }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, -/area/shiva/interior/caves/cp_camp) "aKp" = ( /obj/effect/decal/cleanable/blood, /turf/open/auto_turf/snow/layer3, @@ -5346,41 +4380,16 @@ }, /turf/open/floor/plating, /area/shiva/interior/colony/medseceng) -"aKr" = ( -/obj/structure/stairs/perspective{ - dir = 1; - icon_state = "p_stair_sn_full_cap" - }, -/turf/open/auto_turf/snow/layer0, -/area/shiva/interior/bar) "aKv" = ( /obj/item/stack/folding_barricade, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/s_admin) -"aKA" = ( -/obj/structure/stairs/perspective{ - dir = 1; - icon_state = "p_stair_full" - }, -/turf/open/auto_turf/snow/layer0, -/area/shiva/interior/bar) -"aKD" = ( -/obj/structure/stairs/perspective{ - dir = 8; - icon_state = "p_stair_sn_full_cap" - }, -/turf/open/auto_turf/snow/layer0, -/area/shiva/interior/bar) "aKJ" = ( /obj/structure/machinery/door/airlock/almayer/generic{ dir = 1; name = "\improper Anti-Freeze Lounge" }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/bar) "aKK" = ( /obj/effect/decal/cleanable/blood, @@ -5392,21 +4401,10 @@ }, /turf/open/floor/plating, /area/shiva/interior/aerodrome) -"aKP" = ( -/obj/structure/platform/strata{ - dir = 1 - }, -/obj/structure/platform/strata{ - dir = 4 - }, -/turf/open/auto_turf/snow/layer3, -/area/shiva/exterior/lz1_valley) "aKQ" = ( /obj/structure/machinery/computer/cameras, /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/aerodrome) "aKR" = ( /obj/structure/bed/chair{ @@ -5419,15 +4417,11 @@ dir = 8; pixel_y = -5 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/aerodrome) "aLk" = ( /obj/structure/closet/secure_closet/security, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/aerodrome) "aLs" = ( /obj/structure/surface/table/reinforced/prison, @@ -5457,19 +4451,14 @@ /turf/open/auto_turf/snow/layer3, /area/shiva/exterior/cp_lz2) "aLB" = ( -/turf/open/floor/shiva{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/southeast, /area/shiva/interior/colony/s_admin) "aLD" = ( /obj/structure/largecrate/random/barrel/blue, /turf/open/auto_turf/snow/layer1, /area/shiva/exterior/valley) "aLG" = ( -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/shiva/interior/bar) "aLJ" = ( /obj/structure/prop/invuln/ice_prefab/roof_greeble{ @@ -5498,32 +4487,17 @@ }, /turf/open/auto_turf/snow/layer0, /area/shiva/exterior/junkyard/cp_bar) -"aMk" = ( -/obj/effect/decal/cleanable/blood{ - dir = 4; - icon_state = "gib6" - }, -/turf/open/auto_turf/snow/layer3, -/area/shiva/exterior/junkyard/cp_bar) "aMl" = ( /obj/effect/landmark/corpsespawner/engineer, /obj/effect/decal/cleanable/blood, /turf/open/auto_turf/snow/layer3, /area/shiva/exterior/junkyard/cp_bar) -"aMn" = ( -/obj/structure/platform/strata{ - dir = 4 - }, -/turf/open/auto_turf/snow/layer3, -/area/shiva/exterior/lz1_valley) "aMs" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22"; pixel_y = 8 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/aerodrome) "aMu" = ( /obj/structure/prop/invuln/ice_prefab/standalone{ @@ -5539,27 +4513,12 @@ /obj/structure/sign/goldenplaque{ pixel_y = 32 }, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/shiva/red/north, /area/shiva/interior/colony/medseceng) "aMx" = ( /obj/structure/machinery/vending/coffee, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/central) -"aMy" = ( -/obj/structure/machinery/space_heater, -/obj/structure/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "snow_mat" - }, -/area/shiva/interior/caves/cp_camp) "aMz" = ( /obj/structure/machinery/smartfridge{ density = 0; @@ -5567,9 +4526,7 @@ }, /obj/structure/surface/table/woodentable, /obj/item/reagent_container/food/snacks/cheesecakeslice, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/bar) "aMA" = ( /obj/structure/bed/chair{ @@ -5639,22 +4596,13 @@ /obj/structure/surface/table/woodentable, /obj/item/trash/chunk, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/bar) "aMW" = ( /obj/vehicle/train/cargo/trolley, /obj/effect/decal/cleanable/dirt, /turf/open/asphalt/cement, /area/shiva/interior/warehouse) -"aMZ" = ( -/obj/structure/machinery/power/port_gen/pacman, -/obj/structure/machinery/light/small{ - dir = 4 - }, -/turf/open/auto_turf/snow/layer1, -/area/shiva/exterior/cp_s_research) "aNb" = ( /obj/structure/safe, /obj/item/spacecash/c1000{ @@ -5664,16 +4612,11 @@ /obj/item/spacecash/c1000, /obj/item/spacecash/c500, /obj/effect/landmark/good_item, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull/west, /area/shiva/interior/colony/s_admin) "aNd" = ( /obj/structure/machinery/vending/cola, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/central) "aNe" = ( /obj/effect/spawner/random/toolbox, @@ -5681,9 +4624,7 @@ /area/shiva/exterior/junkyard/cp_bar) "aNf" = ( /obj/structure/machinery/photocopier, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/research_hab) "aNg" = ( /obj/structure/bed/chair/office/light{ @@ -5717,16 +4658,11 @@ "aNp" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/storage/toolbox/emergency, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull/west, /area/shiva/interior/aerodrome) "aNq" = ( /obj/item/stool, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/aerodrome) "aNy" = ( /obj/structure/platform/strata{ @@ -5745,17 +4681,11 @@ "aNL" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/toolbox, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "purplefull" - }, +/turf/open/floor/shiva/purplefull/west, /area/shiva/interior/colony/research_hab) "aNN" = ( /obj/structure/surface/rack, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "purplefull" - }, +/turf/open/floor/shiva/purplefull/west, /area/shiva/interior/colony/research_hab) "aNP" = ( /turf/closed/shuttle/elevator/button/research, @@ -5777,35 +4707,17 @@ pixel_x = 8 }, /obj/effect/landmark/objective_landmark/far, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/aerodrome) "aOg" = ( /obj/structure/machinery/colony_floodlight, /turf/open/auto_turf/snow/layer2, /area/shiva/exterior/cp_colony_grounds) -"aOk" = ( -/obj/structure/prop/invuln/ice_prefab/standalone/trim{ - icon_state = "pink_trim" - }, -/turf/open/auto_turf/snow/layer4, -/area/shiva/exterior/valley) -"aOl" = ( -/obj/structure/prop/invuln/ice_prefab/roof_greeble{ - dir = 1 - }, -/turf/open/auto_turf/snow/layer4, -/area/shiva/exterior/valley) "aOo" = ( /obj/item/dogtag, /obj/effect/decal/cleanable/blood, /turf/open/auto_turf/snow/layer0, /area/shiva/interior/bar) -"aOp" = ( -/obj/item/tool/shovel/snow, -/turf/open/auto_turf/snow/layer0, -/area/shiva/exterior/valley) "aOu" = ( /turf/closed/wall/shiva/ice, /area/shiva/interior/caves/medseceng_caves) @@ -5816,9 +4728,7 @@ dir = 4; pixel_x = -24 }, -/turf/open/floor/shiva{ - icon_state = "purplefull" - }, +/turf/open/floor/shiva/purplefull, /area/shiva/interior/colony/research_hab) "aOW" = ( /turf/closed/wall/shiva/prefabricated, @@ -5855,27 +4765,18 @@ /obj/item/ammo_magazine/shotgun/buckshot{ pixel_y = 8 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "purplefull" - }, +/turf/open/floor/shiva/purplefull/west, /area/shiva/interior/lz2_habs) "aPh" = ( /obj/structure/closet/secure_closet/personal/patient, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull/west, /area/shiva/interior/colony/medseceng) "aPi" = ( /obj/item/paper/research_notes/bad{ pixel_x = 11; pixel_y = 4 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "purplefull" - }, +/turf/open/floor/shiva/purplefull/west, /area/shiva/interior/lz2_habs) "aPj" = ( /obj/structure/surface/table/woodentable, @@ -5887,9 +4788,7 @@ pixel_x = 6; pixel_y = 3 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/bar) "aPk" = ( /obj/item/lightstick/red/spoke/planted{ @@ -5919,46 +4818,16 @@ /obj/effect/decal/strata_decals/grime/grime3{ dir = 8 }, -/turf/open/floor/shiva{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/southeast, /area/shiva/interior/colony/central) -"aPX" = ( -/obj/structure/prop/invuln/ice_prefab/trim{ - dir = 4 - }, -/obj/structure/prop/invuln/ice_prefab/roof_greeble{ - dir = 1 - }, -/turf/open/auto_turf/ice/layer1, -/area/shiva/interior/caves/cp_camp) "aQb" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/shiva{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/southeast, /area/shiva/interior/colony/s_admin) "aQg" = ( /obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/aerodrome) -"aQh" = ( -/obj/item/lightstick/red/spoke/planted{ - layer = 2.99; - pixel_x = -13; - pixel_y = 28 - }, -/obj/structure/largecrate/random/mini/small_case/b, -/obj/structure/largecrate/random/mini/small_case{ - pixel_x = 14; - pixel_y = -3 - }, -/turf/open/auto_turf/snow/layer2, -/area/shiva/exterior/valley) "aQi" = ( /obj/structure/largecrate/random/barrel/red, /turf/open/auto_turf/snow/layer2, @@ -6020,20 +4889,6 @@ /obj/item/stool, /turf/open/floor/shiva, /area/shiva/interior/bar) -"aRo" = ( -/obj/structure/largecrate/random/mini/med{ - pixel_x = -7; - pixel_y = 9 - }, -/turf/open/auto_turf/snow/layer3, -/area/shiva/exterior/valley) -"aRp" = ( -/obj/structure/prop/invuln/ice_prefab/standalone/trim{ - icon_state = "pink_trim" - }, -/obj/structure/prop/invuln/ice_prefab/roof_greeble, -/turf/open/auto_turf/snow/layer2, -/area/shiva/exterior/valley) "aRs" = ( /obj/structure/closet/radiation, /obj/structure/machinery/light/double{ @@ -6041,9 +4896,7 @@ pixel_y = -5 }, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/shiva{ - icon_state = "purplefull" - }, +/turf/open/floor/shiva/purplefull, /area/shiva/interior/colony/research_hab) "aRz" = ( /obj/structure/ice/thin/indestructible{ @@ -6089,10 +4942,7 @@ /obj/item/ammo_magazine/rifle/boltaction, /obj/item/ammo_magazine/rifle/boltaction, /obj/item/storage/belt/marine, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull/west, /area/shiva/interior/colony/s_admin) "aSi" = ( /turf/open/auto_turf/snow/layer0, @@ -6120,30 +4970,9 @@ /obj/effect/decal/cleanable/blood/oil, /turf/open/floor/shiva, /area/shiva/interior/aerodrome) -"aSC" = ( -/obj/item/lightstick/red/spoke/planted{ - layer = 3.1; - pixel_x = -13; - pixel_y = 25 - }, -/turf/open/auto_turf/snow/layer1, -/area/shiva/exterior/research_alley) -"aSF" = ( -/obj/item/reagent_container/glass/bucket{ - pixel_x = 8; - pixel_y = -8 - }, -/turf/open/auto_turf/snow/layer2, -/area/shiva/exterior/valley) -"aSG" = ( -/obj/structure/largecrate/random/case/double, -/turf/open/auto_turf/snow/layer2, -/area/shiva/exterior/valley) "aSI" = ( /obj/structure/closet/radiation, -/turf/open/floor/shiva{ - icon_state = "purplefull" - }, +/turf/open/floor/shiva/purplefull, /area/shiva/interior/colony/research_hab) "aSJ" = ( /obj/structure/prop/invuln{ @@ -6185,7 +5014,7 @@ name = "\improper Anti-Freeze Lounge" }, /turf/open/floor/plating, -/area/shiva/interior/bar) +/area/shiva/exterior/cp_s_research) "aSX" = ( /obj/structure/largecrate/random/mini/ammo, /turf/open/floor/plating, @@ -6232,52 +5061,10 @@ /obj/effect/spawner/random/tool, /turf/open/floor/shiva, /area/shiva/interior/aerodrome) -"aTr" = ( -/obj/item/tool/shovel/snow{ - pixel_y = 8 - }, -/obj/item/tool/shovel/snow, -/obj/structure/surface/rack, -/turf/open/auto_turf/snow/layer1, -/area/shiva/exterior/valley) -"aTt" = ( -/obj/item/lightstick/red/variant/planted{ - pixel_x = 11; - pixel_y = 11 - }, -/turf/open/auto_turf/snow/layer2, -/area/shiva/exterior/valley) -"aTw" = ( -/obj/structure/prop/ice_colony/soil_net, -/obj/item/tool/shovel/spade{ - layer = 2.99; - pixel_x = -9; - pixel_y = -11 - }, -/turf/open/auto_turf/snow/layer1, -/area/shiva/exterior/valley) "aTE" = ( /obj/structure/largecrate/random/barrel, /turf/open/auto_turf/ice/layer1, /area/shiva/interior/caves/s_lz2) -"aTH" = ( -/obj/item/reagent_container/glass/bucket{ - pixel_x = 9; - pixel_y = 8 - }, -/obj/structure/largecrate/random/case, -/turf/open/auto_turf/snow/layer3, -/area/shiva/exterior/valley) -"aTL" = ( -/obj/structure/largecrate/random/case{ - pixel_y = 11 - }, -/obj/structure/largecrate/random/mini/chest/b{ - pixel_x = -4; - pixel_y = -5 - }, -/turf/open/auto_turf/snow/layer3, -/area/shiva/exterior/valley) "aTO" = ( /obj/item/stack/rods, /turf/open/asphalt/cement, @@ -6296,9 +5083,7 @@ "aTT" = ( /obj/structure/closet/secure_closet/engineering_personal, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/central) "aTY" = ( /obj/structure/flora/grass/tallgrass/ice/corner{ @@ -6317,9 +5102,7 @@ /obj/effect/decal/warning_stripes{ icon_state = "W-corner" }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/bar) "aUd" = ( /turf/closed/wall/shiva/ice, @@ -6328,9 +5111,7 @@ /obj/effect/decal/warning_stripes{ icon_state = "E-corner" }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/bar) "aUt" = ( /obj/structure/machinery/door/airlock/almayer/generic{ @@ -6356,9 +5137,7 @@ /obj/structure/bed/chair/dropship/pilot{ dir = 1 }, -/turf/open/shuttle{ - icon_state = "floor7" - }, +/turf/open/shuttle/can_surgery/black, /area/shiva/interior/aerodrome) "aUz" = ( /turf/closed/shuttle/ert{ @@ -6367,37 +5146,14 @@ /area/shiva/interior/aerodrome) "aUA" = ( /obj/structure/girder/reinforced, -/turf/open/shuttle{ - icon_state = "floor7" - }, +/turf/open/shuttle/can_surgery/black, /area/shiva/interior/aerodrome) "aUM" = ( -/turf/open/floor/shiva{ - dir = 4; - icon_state = "green" - }, +/turf/open/floor/shiva/green/east, /area/shiva/interior/colony/botany) -"aUP" = ( -/obj/structure/surface/rack, -/obj/item/stack/cable_coil/blue, -/obj/item/stack/cable_coil/orange{ - pixel_y = 6 - }, -/turf/open/auto_turf/snow/layer1, -/area/shiva/exterior/valley) -"aUQ" = ( -/obj/item/lightstick/red/spoke/planted{ - pixel_x = 12; - pixel_y = 25 - }, -/turf/open/auto_turf/snow/layer1, -/area/shiva/exterior/research_alley) "aUS" = ( /obj/structure/machinery/disposal, -/turf/open/floor/shiva{ - dir = 10; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/southwest, /area/shiva/interior/colony/research_hab) "aUT" = ( /obj/structure/surface/table, @@ -6406,9 +5162,7 @@ pixel_y = 2 }, /obj/effect/spawner/random/bomb_supply, -/turf/open/floor/shiva{ - icon_state = "purplefull" - }, +/turf/open/floor/shiva/purplefull, /area/shiva/interior/colony/research_hab) "aUU" = ( /obj/structure/machinery/light/double{ @@ -6418,18 +5172,13 @@ /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "purplefull" - }, +/turf/open/floor/shiva/purplefull/west, /area/shiva/interior/colony/research_hab) "aUX" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/research_hab) "aUY" = ( /obj/structure/machinery/light/double{ @@ -6439,26 +5188,19 @@ /obj/effect/decal/warning_stripes{ icon_state = "E" }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "purplefull" - }, +/turf/open/floor/shiva/purplefull/west, /area/shiva/interior/colony/research_hab) "aVc" = ( /obj/effect/decal/warning_stripes{ icon_state = "W-corner" }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/bar) "aVm" = ( /obj/effect/decal/warning_stripes{ icon_state = "E-corner" }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/bar) "aVn" = ( /obj/structure/reagent_dispensers/beerkeg, @@ -6509,29 +5251,20 @@ icon_state = "equip_base"; name = "shuttle attachment point" }, -/turf/open/shuttle{ - icon_state = "floor7" - }, +/turf/open/shuttle/can_surgery/black, /area/shiva/interior/aerodrome) "aVF" = ( /obj/structure/surface/table, /obj/item/tool/crowbar/red, /obj/item/device/flash, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/west, /area/shiva/interior/colony/medseceng) "aVL" = ( -/turf/open/shuttle{ - icon_state = "floor7" - }, +/turf/open/shuttle/can_surgery/black, /area/shiva/interior/aerodrome) "aVM" = ( /obj/item/weapon/gun/pistol/holdout, -/turf/open/shuttle{ - icon_state = "floor7" - }, +/turf/open/shuttle/can_surgery/black, /area/shiva/interior/aerodrome) "aVN" = ( /turf/closed/shuttle/ert{ @@ -6571,63 +5304,41 @@ pixel_x = 5; pixel_y = 5 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull/west, /area/shiva/interior/aerodrome) "aVU" = ( /obj/item/stack/sheet/metal, -/turf/open/shuttle{ - icon_state = "floor7" - }, +/turf/open/shuttle/can_surgery/black, /area/shiva/interior/aerodrome) -"aVW" = ( -/obj/item/lightstick/red/variant/planted{ - pixel_x = -7; - pixel_y = -5 - }, -/turf/open/auto_turf/snow/layer2, -/area/shiva/exterior/valley) "aWb" = ( /obj/structure/foamed_metal, /obj/item/weapon/gun/shotgun/pump/dual_tube/cmb, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) "aWs" = ( /obj/effect/decal/warning_stripes{ icon_state = "NE-out" }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/research_hab) "aWv" = ( /obj/structure/machinery/landinglight/ds2, /obj/structure/machinery/landinglight/ds2/delayone{ dir = 8 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) "aWB" = ( /obj/effect/decal/warning_stripes{ icon_state = "NW-out" }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/research_hab) "aWC" = ( /obj/effect/decal/warning_stripes{ icon_state = "E" }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/research_hab) "aWD" = ( /obj/structure/prop/invuln/minecart_tracks{ @@ -6650,16 +5361,6 @@ }, /turf/open/auto_turf/snow/layer2, /area/shiva/exterior/junkyard) -"aWG" = ( -/obj/item/lightstick/red/spoke/planted{ - pixel_x = -11; - pixel_y = 20 - }, -/obj/structure/flora/grass/tallgrass/ice/corner{ - dir = 4 - }, -/turf/open/auto_turf/snow/layer1, -/area/shiva/exterior/junkyard) "aWH" = ( /obj/structure/flora/grass/tallgrass/ice/corner{ dir = 4 @@ -6677,18 +5378,14 @@ }, /area/shiva/interior/aerodrome) "aWS" = ( -/turf/open/shuttle/dropship{ - icon_state = "rasputin14" - }, +/turf/open/shuttle/dropship/can_surgery/medium_grey_single_wide_left_to_right, /area/shiva/interior/aerodrome) "aWT" = ( /obj/item/ammo_magazine/pistol/holdout{ pixel_x = 6; pixel_y = -4 }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin14" - }, +/turf/open/shuttle/dropship/can_surgery/medium_grey_single_wide_left_to_right, /area/shiva/interior/aerodrome) "aWU" = ( /turf/closed/shuttle/ert{ @@ -6714,9 +5411,7 @@ /area/shiva/interior/aerodrome) "aXa" = ( /obj/structure/largecrate/random/case/small, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) "aXb" = ( /obj/structure/prop/ice_colony/soil_net, @@ -6734,10 +5429,7 @@ /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "purplefull" - }, +/turf/open/floor/shiva/purplefull/east, /area/shiva/interior/colony/research_hab) "aXi" = ( /obj/structure/ice/thin/indestructible{ @@ -6770,19 +5462,13 @@ /obj/effect/decal/warning_stripes{ icon_state = "E" }, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "purplefull" - }, +/turf/open/floor/shiva/purplefull/east, /area/shiva/interior/colony/research_hab) "aXH" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "purplefull" - }, +/turf/open/floor/shiva/purplefull/north, /area/shiva/interior/colony/research_hab) "aXI" = ( /obj/structure/ice/thin/indestructible{ @@ -6807,9 +5493,7 @@ /area/shiva/exterior/cp_lz2) "aXZ" = ( /obj/structure/machinery/space_heater, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/valley_huts/no2) "aYd" = ( /turf/closed/shuttle/ert{ @@ -6817,28 +5501,6 @@ opacity = 0 }, /area/shiva/interior/aerodrome) -"aYf" = ( -/obj/structure/machinery/light{ - dir = 8 - }, -/obj/structure/bed/chair/dropship/passenger{ - dir = 4 - }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, -/area/shiva/interior/aerodrome) -"aYg" = ( -/obj/structure/machinery/light{ - dir = 4 - }, -/obj/structure/bed/chair/dropship/passenger{ - dir = 8 - }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, -/area/shiva/interior/aerodrome) "aYx" = ( /turf/closed/shuttle/ert{ icon_state = "rightengine_3" @@ -6848,16 +5510,9 @@ /obj/structure/window_frame/shiva, /turf/open/floor/plating, /area/shiva/interior/aerodrome) -"aYF" = ( -/obj/item/stack/rods, -/turf/open/auto_turf/snow/layer1, -/area/shiva/exterior/valley) "aYU" = ( /obj/structure/machinery/computer/arcade, -/turf/open/floor/shiva{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/shiva/red/northwest, /area/shiva/interior/colony/medseceng) "aZg" = ( /obj/structure/largecrate/random/case/double, @@ -6875,16 +5530,11 @@ dir = 8; pixel_x = -11 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/shiva/interior/colony/central) "aZw" = ( /obj/structure/machinery/vending/hydroseeds, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "greenfull" - }, +/turf/open/floor/shiva/greenfull/west, /area/shiva/interior/colony/n_admin) "aZA" = ( /obj/structure/surface/rack, @@ -6908,10 +5558,7 @@ name = "\improper Colony Dormitories"; req_access_txt = "100" }, -/turf/open/floor{ - dir = 6; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/southeast, /area/shiva/interior/colony/botany) "bag" = ( /obj/structure/ice/thin/indestructible{ @@ -6938,10 +5585,7 @@ /turf/open/ice/noweed, /area/shiva/interior/colony/research_hab) "bai" = ( -/turf/open/floor/plating/icefloor{ - dir = 1; - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate/north, /area/shiva/exterior/junkyard/fortbiceps) "bar" = ( /obj/item/trash/tray, @@ -6955,9 +5599,6 @@ /obj/structure/reagent_dispensers/watertank, /turf/open/auto_turf/snow/layer0, /area/shiva/interior/bar) -"bax" = ( -/turf/open/auto_turf/snow/layer2, -/area/shiva/exterior/research_alley) "baN" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/tool/pen/blue{ @@ -6974,15 +5615,11 @@ /area/shiva/interior/colony/n_admin) "baV" = ( /obj/structure/reagent_dispensers/beerkeg, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/shiva/interior/bar) "baW" = ( /obj/structure/kitchenspike, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/shiva/interior/bar) "baX" = ( /turf/closed/shuttle/ert{ @@ -6994,17 +5631,13 @@ /obj/structure/bed/chair/dropship/passenger{ dir = 4 }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/medium_grey_single_wide_up_to_down, /area/shiva/interior/aerodrome) "bbg" = ( /obj/structure/bed/chair/dropship/passenger{ dir = 8 }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/medium_grey_single_wide_up_to_down, /area/shiva/interior/aerodrome) "bbh" = ( /turf/closed/shuttle/ert{ @@ -7024,27 +5657,12 @@ /obj/item/stack/rods, /turf/open/floor/plating, /area/shiva/interior/aerodrome) -"bbt" = ( -/obj/item/shard{ - icon_state = "medium" - }, -/turf/open/auto_turf/snow/layer0, -/area/shiva/exterior/valley) "bbw" = ( /obj/structure/barricade/handrail/strata{ dir = 8 }, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/east, /area/shiva/interior/colony/deck) -"bbF" = ( -/obj/structure/platform/strata{ - dir = 8 - }, -/turf/open/auto_turf/snow/layer1, -/area/shiva/exterior/valley) "bbG" = ( /obj/structure/ice/thin/indestructible{ dir = 4; @@ -7089,10 +5707,6 @@ opacity = 0 }, /area/shiva/interior/aerodrome) -"bcM" = ( -/obj/structure/flora/bush/ausbushes/lavendergrass, -/turf/open/auto_turf/snow/layer3, -/area/shiva/exterior/lz1_valley) "bcV" = ( /obj/structure/platform/strata{ dir = 1 @@ -7102,33 +5716,9 @@ }, /turf/open/gm/river, /area/shiva/interior/warehouse/caves) -"bdk" = ( -/obj/structure/bed/chair/dropship/passenger{ - dir = 4 - }, -/obj/structure/machinery/light{ - dir = 8 - }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, -/area/shiva/interior/aerodrome) "bdT" = ( -/turf/open/floor/shiva{ - icon_state = "radiator_tile2" - }, +/turf/open/floor/shiva/radiator_tile2, /area/shiva/interior/colony/medseceng) -"bea" = ( -/obj/structure/bed/chair/dropship/passenger{ - dir = 8 - }, -/obj/structure/machinery/light{ - dir = 4 - }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, -/area/shiva/interior/aerodrome) "ben" = ( /turf/open/auto_turf/snow/layer1, /area/shiva/exterior/telecomm/lz1_north) @@ -7149,10 +5739,7 @@ /area/shiva/interior/aerodrome) "beP" = ( /obj/item/clothing/under/rank/janitor, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull/west, /area/shiva/interior/aerodrome) "beQ" = ( /turf/closed/shuttle/elevator, @@ -7183,14 +5770,8 @@ /obj/item/shard{ icon_state = "large" }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/aerodrome) -"bfB" = ( -/obj/effect/spawner/random/tool, -/turf/open/auto_turf/snow/layer0, -/area/shiva/exterior/valley) "bfL" = ( /obj/structure/largecrate/random/mini/wooden, /turf/open/auto_turf/snow/layer2, @@ -7205,10 +5786,7 @@ "bfR" = ( /obj/structure/surface/table/reinforced/prison, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull/west, /area/shiva/interior/aerodrome) "bga" = ( /obj/structure/prop/dam/truck{ @@ -7226,31 +5804,23 @@ icon_state = "snowgrassall_1" }, /turf/open/auto_turf/snow/layer3, -/area/shiva/exterior/cp_s_research) +/area/shiva/exterior/junkyard) "bhI" = ( -/turf/open/floor/shiva{ - dir = 6; - icon_state = "wred" - }, +/turf/open/floor/shiva/wred/southeast, /area/shiva/interior/colony/medseceng) "bhN" = ( /obj/structure/flora/grass/tallgrass/ice/corner, /turf/open/auto_turf/snow/layer2, /area/shiva/exterior/junkyard) "bhS" = ( -/turf/open/floor/shiva{ - dir = 1; - icon_state = "wred" - }, +/turf/open/floor/shiva/wred/north, /area/shiva/interior/colony/medseceng) "bhY" = ( /obj/structure/machinery/door_control/brbutton{ id = "nlz_shutters"; pixel_y = 28 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/lz2_habs) "biM" = ( /turf/open/floor/carpet, @@ -7272,9 +5842,7 @@ /obj/structure/machinery/landinglight/ds2/delayone{ dir = 8 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) "bks" = ( /obj/structure/morgue{ @@ -7282,6 +5850,10 @@ }, /turf/open/floor/plating, /area/shiva/interior/colony/central) +"bkK" = ( +/obj/structure/inflatable/popped, +/turf/open/auto_turf/snow/layer0, +/area/shiva/exterior/cp_s_research) "bkP" = ( /obj/effect/spider/cocoon{ icon_state = "cocoon_large2" @@ -7289,17 +5861,16 @@ /turf/open/auto_turf/ice/layer1, /area/shiva/interior/caves/right_spiders) "blI" = ( -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/telecomm/lz1_biceps) "blP" = ( /obj/structure/flora/pottedplant, -/turf/open/floor/shiva{ - dir = 9; - icon_state = "green" - }, +/turf/open/floor/shiva/green/northwest, /area/shiva/interior/colony/botany) +"bme" = ( +/obj/structure/blocker/forcefield/multitile_vehicles, +/turf/open/auto_turf/ice/layer1, +/area/shiva/exterior/valley) "bmg" = ( /obj/structure/machinery/space_heater, /turf/open/auto_turf/snow/layer2, @@ -7317,9 +5888,7 @@ dir = 1; pixel_y = 9 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/lz2_habs) "bnm" = ( /obj/structure/surface/rack, @@ -7327,9 +5896,7 @@ amount = 50 }, /obj/effect/landmark/crap_item, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/medseceng) "bnD" = ( /obj/item/lightstick/planted, @@ -7339,12 +5906,6 @@ /obj/structure/bed/chair, /turf/open/auto_turf/snow/layer1, /area/shiva/exterior/junkyard) -"boz" = ( -/obj/structure/flora/grass/tallgrass/ice/corner{ - dir = 8 - }, -/turf/open/auto_turf/snow/layer2, -/area/shiva/exterior/lz1_valley) "boA" = ( /obj/item/tool/crowbar, /turf/open/auto_turf/snow/layer1, @@ -7357,49 +5918,32 @@ /obj/docking_port/stationary/marine_dropship/lz1, /turf/open/floor/plating, /area/shiva/exterior/lz1_valley) -"boS" = ( -/obj/structure/flora/bush/snow{ - icon_state = "snowgrassbb_3" - }, -/turf/open/auto_turf/snow/layer2, -/area/shiva/exterior/cp_s_research) "boT" = ( /obj/structure/largecrate/random/mini/wooden{ pixel_y = 6 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/bar) "boW" = ( /turf/open/auto_turf/snow/layer0, /area/shiva/exterior/cp_s_research) "bpH" = ( -/turf/open/floor/shiva{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/shiva/red/southeast, /area/shiva/interior/colony/medseceng) "bqy" = ( /obj/structure/closet/firecloset, -/turf/open/floor/shiva{ - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull, /area/shiva/interior/colony/research_hab) "bqN" = ( /obj/structure/machinery/door/airlock/almayer/generic, -/turf/open/shuttle{ - icon_state = "floor7" - }, +/turf/open/shuttle/can_surgery/black, /area/shiva/interior/aerodrome) "bqO" = ( /obj/effect/decal/cleanable/blood, /turf/open/asphalt/cement, /area/shiva/interior/warehouse) "bsp" = ( -/turf/open/floor/shiva{ - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull, /area/shiva/interior/colony/deck) "bsw" = ( /obj/effect/landmark/corpsespawner/bridgeofficer, @@ -7412,10 +5956,7 @@ /turf/open/floor/plating, /area/shiva/interior/aerodrome) "bsM" = ( -/turf/open/floor/shiva{ - dir = 8; - icon_state = "snow_mat" - }, +/turf/open/floor/shiva/snow_mat/west, /area/shiva/exterior/cp_lz2) "bsN" = ( /obj/item/stack/sheet/metal, @@ -7439,17 +5980,12 @@ pixel_x = 11; pixel_y = 20 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/bar) "btQ" = ( /obj/structure/machinery/computer/cameras, /obj/structure/surface/table, -/turf/open/floor/shiva{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/shiva/red/northwest, /area/shiva/interior/colony/central) "buJ" = ( /obj/structure/blocker/forcefield/multitile_vehicles, @@ -7474,15 +6010,11 @@ dir = 1; pixel_y = 9 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/medseceng) "bwb" = ( /obj/item/stack/sheet/wood, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/bar) "bwk" = ( /obj/structure/platform/shiva/catwalk{ @@ -7495,12 +6027,17 @@ }, /turf/open/floor/plating, /area/shiva/interior/aerodrome) +"bws" = ( +/obj/structure/surface/rack, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/turf/open/floor/shiva/yellow/southwest, +/area/shiva/interior/garage) "bwJ" = ( -/turf/open/floor/shiva{ - dir = 4; - icon_state = "yellow" - }, -/area/shiva/interior/lz2_habs) +/turf/open/floor/shiva/yellow/east, +/area/shiva/interior/aux_power) "bwP" = ( /obj/structure/flora/tree/dead/tree_6, /turf/open/auto_turf/snow/layer3, @@ -7511,27 +6048,21 @@ pixel_x = 1; pixel_y = 3 }, -/turf/open/floor/shiva{ - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull, /area/shiva/interior/colony/n_admin) "bxL" = ( /obj/structure/surface/rack, /obj/item/tank/emergency_oxygen/engi, /obj/item/clothing/under/overalls, /obj/item/clothing/suit/storage/apron/overalls, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/aerodrome) "bxW" = ( /obj/structure/machinery/light/double{ dir = 1; pixel_y = 9 }, -/turf/open/floor/shiva{ - icon_state = "yellowfull" - }, +/turf/open/floor/shiva/yellowfull, /area/shiva/interior/colony/research_hab) "byr" = ( /obj/effect/landmark/xeno_hive_spawn, @@ -7546,25 +6077,19 @@ /obj/structure/surface/table, /obj/item/storage/box/pizza, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/botany) "byK" = ( /obj/structure/prop/invuln/minecart_tracks{ dir = 9 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/cp_colony_grounds) "bzh" = ( /obj/structure/platform_decoration/shiva/catwalk{ dir = 4 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/aerodrome) "bzK" = ( /obj/effect/landmark/hunter_secondary, @@ -7573,10 +6098,7 @@ "bzZ" = ( /obj/structure/surface/rack, /obj/item/circuitboard/airalarm, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/north, /area/shiva/interior/colony/medseceng) "bAn" = ( /obj/structure/surface/table/woodentable, @@ -7587,9 +6109,7 @@ /area/shiva/interior/bar) "bAv" = ( /obj/vehicle/train/cargo/trolley, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/bar) "bAK" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ @@ -7603,24 +6123,24 @@ /obj/structure/platform_decoration/shiva/catwalk{ dir = 8 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/aerodrome) "bBs" = ( /obj/item/reagent_container/food/drinks/cans/beer, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/shiva/interior/bar) "bBB" = ( /obj/structure/largecrate/random/barrel, /turf/open/floor/plating, /area/shiva/interior/colony/central) -"bBT" = ( -/obj/structure/inflatable/popped, -/turf/open/auto_turf/snow/layer1, -/area/shiva/exterior/research_alley) +"bCr" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/machinery/computer/shuttle/dropship/flight/lz1, +/obj/effect/decal/warning_stripes{ + icon_state = "E-corner" + }, +/turf/open/floor/plating, +/area/shiva/exterior/lz1_valley) "bDx" = ( /obj/item/reagent_container/food/drinks/flask/vacuumflask, /turf/open/floor/shiva, @@ -7646,9 +6166,7 @@ dir = 4; start_charge = 10 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) "bFS" = ( /obj/structure/platform/shiva/catwalk{ @@ -7660,16 +6178,6 @@ }, /turf/open/floor/plating, /area/shiva/interior/aerodrome) -"bGk" = ( -/obj/item/stack/rods, -/turf/open/auto_turf/snow/layer3, -/area/shiva/exterior/valley) -"bGx" = ( -/obj/item/shard{ - icon_state = "medium" - }, -/turf/open/auto_turf/snow/layer1, -/area/shiva/exterior/valley) "bGU" = ( /obj/structure/prop/invuln/ice_prefab{ dir = 9 @@ -7681,25 +6189,21 @@ /area/shiva/exterior/cp_lz2) "bHf" = ( /obj/structure/machinery/light/double, -/turf/open/floor/shiva{ - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull, /area/shiva/interior/colony/n_admin) "bHx" = ( /obj/item/lightstick/red/spoke/planted{ pixel_x = -11; pixel_y = 20 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/bar) "bHC" = ( /obj/structure/platform/shiva/catwalk{ dir = 8 }, /turf/open/auto_turf/snow/layer2, -/area/shiva/exterior/lz1_valley) +/area/shiva/exterior/junkyard) "bHN" = ( /obj/item/ammo_magazine/rifle/boltaction{ pixel_x = -7; @@ -7708,9 +6212,7 @@ /obj/structure/barricade/metal{ layer = 3 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/exterior/lz2_fortress) "bHZ" = ( /obj/structure/platform/strata{ @@ -7736,15 +6238,10 @@ /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "purplefull" - }, +/turf/open/floor/shiva/purplefull/west, /area/shiva/interior/colony/research_hab) "bJi" = ( -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/shiva/interior/colony/research_hab) "bJj" = ( /turf/open/auto_turf/ice/layer1, @@ -7755,10 +6252,7 @@ }, /area/shiva/interior/colony/central) "bJF" = ( -/turf/open/floor/shiva{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/southeast, /area/shiva/interior/colony/botany) "bKF" = ( /obj/item/lightstick/red/spoke/planted{ @@ -7796,9 +6290,7 @@ pixel_x = 8 }, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/aerodrome) "bMW" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, @@ -7812,24 +6304,17 @@ /obj/structure/prop/ice_colony/dense/ice_tray{ pixel_y = -5 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellowfull" - }, +/turf/open/floor/shiva/yellowfull/west, /area/shiva/interior/colony/research_hab) "bNN" = ( /obj/structure/surface/table, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, /obj/structure/machinery/light/double, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/lz2_habs) "bOh" = ( /obj/effect/landmark/survivor_spawner, -/turf/open/shuttle{ - icon_state = "floor7" - }, +/turf/open/shuttle/can_surgery/black, /area/shiva/interior/aerodrome) "bPu" = ( /obj/item/bodybag, @@ -7838,10 +6323,7 @@ "bPJ" = ( /obj/item/storage/box/donkpockets, /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/shiva/red/north, /area/shiva/interior/colony/medseceng) "bQv" = ( /obj/structure/flora/bush/snow{ @@ -7854,30 +6336,15 @@ icon_state = "S" }, /obj/structure/machinery/light/double, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "purplefull" - }, +/turf/open/floor/shiva/purplefull/north, /area/shiva/interior/colony/research_hab) "bQR" = ( /obj/structure/surface/table, /obj/item/tool/stamp{ icon_state = "stamp-ce" }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/medseceng) -"bQX" = ( -/obj/structure/prop/ice_colony/poly_kevlon_roll{ - pixel_y = 21 - }, -/obj/structure/prop/ice_colony/poly_kevlon_roll{ - pixel_x = -7; - pixel_y = 13 - }, -/turf/open/auto_turf/ice/layer1, -/area/shiva/interior/caves/cp_camp) "bQZ" = ( /turf/closed/wall/shiva/prefabricated/reinforced/hull, /area/shiva/interior/caves/s_lz2) @@ -7890,7 +6357,7 @@ "bRU" = ( /obj/structure/flora/tree/dead/tree_5, /turf/open/auto_turf/snow/layer3, -/area/shiva/exterior/cp_s_research) +/area/shiva/exterior/junkyard) "bSB" = ( /obj/structure/prop/invuln{ desc = "big pile energy."; @@ -7911,9 +6378,7 @@ /area/shiva/interior/telecomm/lz1_biceps) "bTV" = ( /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/n_admin) "bUe" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony/autoname{ @@ -7924,10 +6389,7 @@ "bUO" = ( /obj/structure/surface/table, /obj/effect/spawner/random/toolbox, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/east, /area/shiva/interior/colony/medseceng) "bUU" = ( /obj/structure/prop/dam/truck{ @@ -7939,28 +6401,20 @@ /area/shiva/exterior/junkyard) "bUX" = ( /obj/item/storage/belt/gun/m44, -/turf/open/floor/shiva{ - dir = 10; - icon_state = "green" - }, +/turf/open/floor/shiva/green/southwest, /area/shiva/interior/colony/botany) "bVb" = ( /obj/effect/decal/cleanable/blood{ icon_state = "gib6" }, -/turf/open/floor/shiva{ - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull, /area/shiva/interior/colony/s_admin) "bVr" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" }, /obj/item/weapon/gun/rifle/m41aMK1, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "purplefull" - }, +/turf/open/floor/shiva/purplefull/east, /area/shiva/interior/colony/research_hab) "bVz" = ( /obj/structure/reagent_dispensers/water_cooler, @@ -8005,15 +6459,11 @@ /obj/structure/machinery/m56d_hmg{ dir = 4 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/botany) "bYd" = ( /obj/structure/machinery/light/double, -/turf/open/floor/shiva{ - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow, /area/shiva/interior/garage) "bYk" = ( /obj/structure/closet/secure_closet/medical3{ @@ -8022,9 +6472,7 @@ /obj/item/explosive/grenade/custom/cleaner, /obj/item/explosive/grenade/custom/cleaner, /obj/item/storage/pill_bottle/dexalin/skillless, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/shiva/interior/colony/research_hab) "bYO" = ( /obj/structure/prop/invuln{ @@ -8036,21 +6484,23 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/shuttle{ - icon_state = "floor7" - }, +/turf/open/shuttle/can_surgery/black, /area/shiva/interior/aerodrome) "bYS" = ( /obj/structure/machinery/light/double, -/turf/open/floor/shiva{ - icon_state = "red" - }, +/turf/open/floor/shiva/red, /area/shiva/interior/colony/central) +"bYV" = ( +/obj/structure/machinery/disposal, +/obj/structure/machinery/light/double{ + dir = 8; + pixel_y = -5 + }, +/turf/open/floor/shiva/floor3, +/area/shiva/interior/aerodrome) "bZZ" = ( /obj/effect/landmark/objective_landmark/far, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/research_hab) "caS" = ( /turf/closed/wall/shiva/prefabricated/reinforced/hull, @@ -8065,18 +6515,14 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/shuttle{ - icon_state = "floor7" - }, +/turf/open/shuttle/can_surgery/black, /area/shiva/interior/aerodrome) "cbt" = ( /obj/structure/surface/table, /obj/effect/spawner/random/toolbox, /obj/effect/spawner/random/tool, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/medseceng) "cbC" = ( /obj/structure/machinery/light/double{ @@ -8084,18 +6530,18 @@ pixel_y = -5 }, /obj/structure/machinery/vending/coffee, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/s_admin) +"cbG" = ( +/obj/effect/spawner/random/tool, +/turf/open/auto_turf/snow/layer0, +/area/shiva/interior/caves/cp_camp) "cbW" = ( /obj/structure/largecrate/random/mini/med, /turf/open/floor/plating, /area/shiva/interior/colony/medseceng) "cce" = ( -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/lz2_habs) "ccu" = ( /obj/structure/machinery/power/apc, @@ -8105,6 +6551,13 @@ /obj/structure/prop/invuln/ice_prefab/standalone, /turf/open/auto_turf/ice/layer1, /area/shiva/interior/caves/cp_camp) +"ccT" = ( +/obj/item/lightstick/red/spoke/planted{ + pixel_x = 12; + pixel_y = 25 + }, +/turf/open/auto_turf/snow/layer1, +/area/shiva/exterior/cp_s_research) "cdh" = ( /obj/structure/fence, /turf/open/auto_turf/snow/layer2, @@ -8117,17 +6570,13 @@ /turf/open/floor/plating, /area/shiva/interior/aerodrome) "ceM" = ( -/turf/open/floor/shiva{ - icon_state = "radiator_tile" - }, +/turf/open/floor/shiva/radiator_tile, /area/shiva/exterior/cp_lz2) "ceS" = ( /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/medseceng) "cgd" = ( /obj/item/lightstick/red/spoke/planted{ @@ -8148,10 +6597,7 @@ /obj/item/device/taperecorder, /obj/item/clothing/glasses/sunglasses, /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/shiva/red/north, /area/shiva/interior/colony/medseceng) "cgR" = ( /obj/structure/platform_decoration/strata, @@ -8159,20 +6605,20 @@ /area/shiva/exterior/junkyard/cp_bar) "chq" = ( /obj/item/device/analyzer/plant_analyzer, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/lz2_habs) "chU" = ( -/turf/open/floor/shiva{ - dir = 1; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/north, /area/shiva/interior/colony/research_hab) -"cio" = ( -/turf/open/floor/shiva{ - icon_state = "floor3" +"cid" = ( +/obj/structure/platform/strata{ + dir = 4 }, +/obj/structure/platform/strata, +/turf/open/gm/river, +/area/shiva/exterior/cp_s_research) +"cio" = ( +/turf/open/floor/shiva/floor3, /area/shiva/interior/warehouse) "ciL" = ( /obj/structure/inflatable/popped, @@ -8192,29 +6638,18 @@ pixel_x = -3; pixel_y = 18 }, -/turf/open/floor/shiva{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/southeast, /area/shiva/interior/colony/research_hab) "clp" = ( /obj/item/tool/weldingtool, -/turf/open/shuttle{ - icon_state = "floor7" - }, +/turf/open/shuttle/can_surgery/black, /area/shiva/interior/aerodrome) "clz" = ( /obj/structure/machinery/cm_vending/sorted/tech/comp_storage{ req_access_txt = "102" }, -/turf/open/floor/shiva{ - dir = 6; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/southeast, /area/shiva/interior/colony/medseceng) -"clK" = ( -/turf/open/auto_turf/ice/layer1, -/area/shiva/interior/caves/left_spiders) "cnb" = ( /turf/open/auto_turf/snow/layer1, /area/shiva/exterior/telecomm/lz2_northeast) @@ -8226,10 +6661,7 @@ /area/shiva/exterior/junkyard/cp_bar) "cnk" = ( /obj/item/stack/sheet/metal, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "wred" - }, +/turf/open/floor/shiva/wred/east, /area/shiva/interior/colony/medseceng) "cnt" = ( /obj/structure/largecrate/random/secure, @@ -8238,9 +6670,7 @@ "coj" = ( /obj/structure/surface/rack, /obj/item/clothing/suit/storage/labcoat/researcher, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/shiva/interior/colony/research_hab) "cos" = ( /obj/item/lightstick/red/spoke/planted{ @@ -8267,11 +6697,15 @@ dir = 1; pixel_y = 9 }, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/shiva/red/north, /area/shiva/interior/colony/medseceng) +"cps" = ( +/obj/effect/decal/cleanable/blood{ + dir = 4; + icon_state = "gib6" + }, +/turf/open/auto_turf/snow/layer0, +/area/shiva/interior/caves/cp_camp) "cpC" = ( /obj/item/lightstick/red/variant/planted, /turf/open/auto_turf/snow/layer1, @@ -8296,10 +6730,7 @@ "crk" = ( /obj/structure/foamed_metal, /obj/effect/decal/cleanable/ash, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/east, /area/shiva/exterior/lz2_fortress) "crF" = ( /turf/open/floor/plating/plating_catwalk/shiva, @@ -8307,9 +6738,7 @@ "crN" = ( /obj/structure/filingcabinet, /obj/effect/landmark/objective_landmark/far, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/medseceng) "cse" = ( /obj/effect/decal/warning_stripes{ @@ -8321,9 +6750,7 @@ /turf/open/floor/wood, /area/shiva/interior/colony/central) "cso" = ( -/turf/open/floor{ - icon_state = "bcircuit" - }, +/turf/open/floor/bcircuit, /area/shiva/interior/colony/medseceng) "csu" = ( /obj/structure/largecrate/random, @@ -8331,21 +6758,17 @@ /area/shiva/interior/colony/central) "ctk" = ( /obj/structure/surface/table, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull/west, /area/shiva/interior/colony/research_hab) +"ctz" = ( +/turf/open/floor/shiva/floor3, +/area/shiva/interior/aux_power) "ctC" = ( /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/shiva/interior/colony/research_hab) "ctJ" = ( -/turf/open/floor/shiva{ - icon_state = "yellowfull" - }, +/turf/open/floor/shiva/yellowfull, /area/shiva/interior/garage) "cur" = ( /obj/structure/machinery/space_heater, @@ -8373,6 +6796,12 @@ }, /turf/open/auto_turf/snow/layer4, /area/shiva/exterior/cp_lz2) +"cwU" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W-corner" + }, +/turf/open/floor/plating, +/area/shiva/exterior/valley) "cwZ" = ( /turf/open/auto_turf/snow/layer0, /area/shiva/interior/warehouse/caves) @@ -8393,15 +6822,8 @@ /obj/structure/sink{ pixel_y = 15 }, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/east, /area/shiva/interior/colony/botany) -"cyW" = ( -/obj/structure/girder, -/turf/open/auto_turf/snow/layer1, -/area/shiva/interior/caves/cp_camp) "czf" = ( /obj/structure/flora/bush/snow{ icon_state = "snowgrassall_1" @@ -8410,15 +6832,11 @@ /area/shiva/exterior/cp_colony_grounds) "czH" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/central) "czI" = ( /obj/structure/girder, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/shiva/interior/caves/research_caves) "cAH" = ( /obj/structure/flora/tree/dead/tree_5, @@ -8435,15 +6853,8 @@ /turf/open/floor/wood, /area/shiva/interior/bar) "cBe" = ( -/turf/open/floor/shiva{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/east, /area/shiva/interior/colony/medseceng) -"cBs" = ( -/obj/structure/machinery/cell_charger, -/turf/open/auto_turf/snow/layer0, -/area/shiva/exterior/research_alley) "cBB" = ( /obj/item/clothing/shoes/snow, /obj/structure/surface/rack, @@ -8457,16 +6868,11 @@ /obj/item/clothing/mask/rebreather, /obj/item/tank/emergency_oxygen/engi, /obj/item/clothing/mask/rebreather, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/north, /area/shiva/exterior/lz2_fortress) "cBF" = ( /obj/structure/machinery/landinglight/ds2/delayone, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) "cBG" = ( /obj/structure/machinery/vending/coffee, @@ -8474,29 +6880,14 @@ dir = 4; pixel_y = -5 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/bar) "cBL" = ( /obj/structure/machinery/vending/cigarette, /turf/open/floor/shiva, /area/shiva/interior/bar) -"cBU" = ( -/turf/open/auto_turf/snow/layer1, -/area/shiva/interior/caves/research_caves) -"cBX" = ( -/obj/item/lightstick/red/spoke/planted{ - pixel_x = -16; - pixel_y = -3 - }, -/turf/open/auto_turf/ice/layer1, -/area/shiva/interior/caves/cp_camp) "cCI" = ( -/turf/open/floor/shiva{ - dir = 8; - icon_state = "greenfull" - }, +/turf/open/floor/shiva/greenfull/west, /area/shiva/interior/colony/n_admin) "cDN" = ( /obj/structure/largecrate/random/case/small{ @@ -8512,22 +6903,14 @@ /area/shiva/interior/colony/research_hab) "cEk" = ( /obj/structure/bed/chair/wheelchair, -/turf/open/floor/shiva{ - icon_state = "wred" - }, +/turf/open/floor/shiva/wred, /area/shiva/interior/colony/medseceng) -"cEV" = ( -/obj/structure/inflatable, -/turf/open/auto_turf/snow/layer3, -/area/shiva/exterior/research_alley) "cFa" = ( /obj/structure/machinery/light/double{ dir = 4; pixel_y = -5 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/bar) "cFQ" = ( /obj/structure/flora/grass/tallgrass/ice/corner{ @@ -8567,17 +6950,12 @@ pixel_x = 10; pixel_y = 12 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/bar) "cHB" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/circuitboard, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull/west, /area/shiva/interior/aerodrome) "cIa" = ( /obj/structure/flora/grass/tallgrass/ice/corner, @@ -8593,16 +6971,32 @@ }, /turf/open/auto_turf/snow/layer3, /area/shiva/exterior/cp_lz2) +"cIs" = ( +/obj/item/lightstick/red/spoke/planted{ + layer = 2.99; + pixel_x = 12; + pixel_y = 28 + }, +/turf/closed/wall/shiva/ice, +/area/shiva/interior/caves/cp_camp) "cIV" = ( /obj/structure/blocker/forcefield/multitile_vehicles, /turf/open/auto_turf/ice/layer1, -/area/shiva/interior/caves/research_caves) +/area/shiva/interior/warehouse/caves) +"cIZ" = ( +/obj/structure/surface/rack, +/obj/item/stack/cable_coil/blue, +/obj/item/stack/cable_coil/orange{ + pixel_y = 6 + }, +/turf/open/auto_turf/snow/layer1, +/area/shiva/interior/caves/cp_camp) +"cJu" = ( +/turf/open/floor/shiva/north, +/area/shiva/interior/aux_power) "cJy" = ( /obj/structure/surface/table, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/north, /area/shiva/interior/colony/medseceng) "cJC" = ( /obj/structure/platform/strata{ @@ -8615,16 +7009,11 @@ /area/shiva/interior/colony/deck) "cKB" = ( /obj/structure/machinery/light/double, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellowfull" - }, +/turf/open/floor/shiva/yellowfull/west, /area/shiva/interior/colony/medseceng) "cKE" = ( /obj/effect/landmark/survivor_spawner, -/turf/open/floor/shiva{ - icon_state = "snow_mat" - }, +/turf/open/floor/shiva/snow_mat, /area/shiva/interior/colony/botany) "cKL" = ( /turf/open/auto_turf/snow/layer4, @@ -8636,16 +7025,11 @@ /obj/structure/surface/table, /obj/effect/landmark/crap_item, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/medseceng) "cLq" = ( /obj/structure/largecrate/random/case/double, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull/west, /area/shiva/interior/aerodrome) "cLx" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ @@ -8678,10 +7062,7 @@ /obj/structure/bed/chair/office/light{ dir = 8 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/shiva/blue/west, /area/shiva/interior/colony/n_admin) "cOq" = ( /obj/effect/decal/cleanable/blood/drip, @@ -8698,9 +7079,7 @@ /obj/structure/surface/table, /obj/item/key/cargo_train, /obj/structure/machinery/light/double, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/lz2_habs) "cPK" = ( /obj/item/clothing/shoes/snow, @@ -8715,17 +7094,11 @@ /obj/item/clothing/mask/rebreather, /obj/item/tank/emergency_oxygen/engi, /obj/item/clothing/mask/rebreather, -/turf/open/floor/shiva{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/southeast, /area/shiva/exterior/cp_colony_grounds) "cQB" = ( /obj/structure/machinery/medical_pod/bodyscanner, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "wred" - }, +/turf/open/floor/shiva/wred/north, /area/shiva/interior/colony/medseceng) "cQW" = ( /turf/open/floor/plating, @@ -8740,10 +7113,7 @@ /area/shiva/exterior/cp_lz2) "cRs" = ( /obj/structure/machinery/disposal, -/turf/open/floor/shiva{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/shiva/red/northwest, /area/shiva/interior/colony/medseceng) "cRP" = ( /obj/structure/surface/table/woodentable, @@ -8753,10 +7123,7 @@ /obj/structure/surface/table, /obj/item/paper_bin, /obj/item/tool/pen/blue, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "wred" - }, +/turf/open/floor/shiva/wred/west, /area/shiva/interior/colony/medseceng) "cSn" = ( /obj/structure/closet/secure_closet/guncabinet, @@ -8766,10 +7133,7 @@ /obj/item/ammo_magazine/rifle/m41aMK1, /obj/item/storage/belt/marine, /obj/item/clothing/suit/armor/riot/marine, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull/west, /area/shiva/interior/colony/research_hab) "cTh" = ( /obj/item/lightstick/red/spoke/planted{ @@ -8781,26 +7145,24 @@ "cTo" = ( /obj/structure/surface/table, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/medseceng) "cTu" = ( -/turf/open/floor/shiva{ - dir = 8; - icon_state = "bluecorners" - }, +/turf/open/floor/shiva/bluecorners/west, /area/shiva/interior/colony/central) +"cTU" = ( +/obj/effect/decal/cleanable/blood/drip, +/obj/effect/decal/warning_stripes{ + icon_state = "E-corner" + }, +/turf/open/floor/plating, +/area/shiva/exterior/lz1_valley) "cTY" = ( /obj/item/ammo_magazine/flamer_tank, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/central) "cUl" = ( -/turf/open/floor/shiva{ - icon_state = "yellowfull" - }, +/turf/open/floor/shiva/yellowfull, /area/shiva/interior/telecomm/lz1_biceps) "cUQ" = ( /obj/effect/decal/warning_stripes{ @@ -8809,18 +7171,13 @@ /turf/open/auto_turf/snow/layer2, /area/shiva/exterior/junkyard) "cUS" = ( -/turf/open/floor/shiva{ - icon_state = "greencorners" - }, +/turf/open/floor/shiva/greencorners, /area/shiva/interior/colony/botany) "cVy" = ( /obj/structure/bed/chair/office/light{ dir = 8 }, -/turf/open/floor/shiva{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/southeast, /area/shiva/interior/colony/research_hab) "cVM" = ( /obj/item/lightstick/red/spoke/planted{ @@ -8829,6 +7186,15 @@ }, /turf/open/auto_turf/snow/layer1, /area/shiva/exterior/junkyard) +"cWG" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S-corner" + }, +/obj/effect/decal/warning_stripes{ + icon_state = "E-corner" + }, +/turf/open/floor/plating, +/area/shiva/exterior/valley) "cWN" = ( /obj/structure/flora/grass/tallgrass/ice/corner{ dir = 4 @@ -8848,9 +7214,7 @@ "cXm" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/microwave, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/shiva/interior/colony/central) "cXM" = ( /obj/effect/decal/warning_stripes{ @@ -8869,11 +7233,17 @@ /obj/structure/prop/ice_colony/surveying_device, /turf/open/auto_turf/snow/layer2, /area/shiva/interior/caves/cp_camp) -"cYa" = ( -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellow" +"cXU" = ( +/obj/structure/platform/strata{ + dir = 1 }, +/obj/structure/platform/strata{ + dir = 4 + }, +/turf/open/gm/river, +/area/shiva/exterior/cp_s_research) +"cYa" = ( +/turf/open/floor/shiva/yellow/west, /area/shiva/interior/colony/medseceng) "cYc" = ( /obj/structure/window/reinforced/tinted{ @@ -8883,9 +7253,7 @@ dir = 4 }, /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/s_admin) "cYz" = ( /obj/structure/prop/invuln/ice_prefab/trim{ @@ -8908,9 +7276,7 @@ /obj/structure/machinery/landinglight/ds2/delaytwo{ dir = 1 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) "cYT" = ( /obj/structure/prop/invuln/ice_prefab{ @@ -8923,9 +7289,7 @@ dir = 8; pixel_y = -5 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/central) "cZk" = ( /turf/open/auto_turf/snow/layer2, @@ -8949,10 +7313,7 @@ /obj/item/clothing/mask/rebreather, /obj/item/tank/emergency_oxygen/engi, /obj/item/clothing/mask/rebreather, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/east, /area/shiva/exterior/lz2_fortress) "cZZ" = ( /obj/structure/bed/chair/wood/normal, @@ -8964,19 +7325,36 @@ "daD" = ( /turf/open/auto_turf/snow/layer3, /area/shiva/exterior/junkyard/cp_bar) +"dbv" = ( +/obj/structure/largecrate/random/case, +/turf/open/auto_turf/ice/layer1, +/area/shiva/interior/aerodrome) "dbH" = ( /turf/closed/shuttle/ert{ icon_state = "stan1" }, /area/shiva/interior/aerodrome) +"dbO" = ( +/obj/structure/prop/invuln/ice_prefab/standalone, +/turf/open/auto_turf/snow/layer2, +/area/shiva/exterior/cp_s_research) "dbQ" = ( /obj/structure/bed/chair/office/light{ dir = 8 }, -/turf/open/floor/shiva{ - icon_state = "wredfull" - }, +/turf/open/floor/shiva/wredfull, /area/shiva/interior/colony/medseceng) +"dcn" = ( +/obj/item/lightstick/red/spoke/planted{ + layer = 2.99; + pixel_x = -13; + pixel_y = 28 + }, +/obj/structure/prop/invuln/ice_prefab/roof_greeble{ + dir = 1 + }, +/turf/open/auto_turf/snow/layer3, +/area/shiva/interior/caves/cp_camp) "dcu" = ( /obj/structure/flora/tree/dead/tree_4, /turf/open/auto_turf/snow/layer2, @@ -8992,16 +7370,8 @@ /obj/item/reagent_container/food/drinks/cans/thirteenloko{ pixel_y = 7 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/medseceng) -"ddA" = ( -/obj/structure/flora/bush/snow{ - icon_state = "snowgrassbb_1" - }, -/turf/open/auto_turf/snow/layer3, -/area/shiva/exterior/cp_s_research) "dex" = ( /obj/structure/machinery/photocopier, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, @@ -9017,10 +7387,7 @@ /area/shiva/interior/aerodrome) "dgb" = ( /obj/structure/closet/toolcloset, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/west, /area/shiva/interior/garage) "dgF" = ( /obj/structure/barricade/handrail/wire{ @@ -9038,10 +7405,6 @@ /obj/vehicle/train/cargo/engine, /turf/open/auto_turf/snow/layer0, /area/shiva/exterior/junkyard/cp_bar) -"dhx" = ( -/obj/item/device/binoculars/civ, -/turf/open/auto_turf/ice/layer1, -/area/shiva/interior/caves/research_caves) "diL" = ( /obj/structure/machinery/light/double{ dir = 1; @@ -9057,9 +7420,7 @@ dir = 1; pixel_y = 9 }, -/turf/open/floor/shiva{ - icon_state = "greenfull" - }, +/turf/open/floor/shiva/greenfull, /area/shiva/interior/colony/botany) "djJ" = ( /obj/structure/surface/table/reinforced/prison, @@ -9075,15 +7436,11 @@ dir = 8; pixel_y = -5 }, -/turf/open/floor/shiva{ - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull, /area/shiva/interior/colony/n_admin) "djO" = ( /obj/item/stool, -/turf/open/floor/shiva{ - icon_state = "yellowfull" - }, +/turf/open/floor/shiva/yellowfull, /area/shiva/interior/colony/research_hab) "dkv" = ( /obj/structure/largecrate/random/mini/med, @@ -9093,9 +7450,7 @@ /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ dir = 2 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/central) "dkI" = ( /obj/structure/barricade/handrail/wire{ @@ -9104,9 +7459,7 @@ /obj/structure/barricade/handrail/wire{ dir = 4 }, -/turf/open/floor/shiva{ - icon_state = "wredfull" - }, +/turf/open/floor/shiva/wredfull, /area/shiva/interior/colony/medseceng) "dkP" = ( /obj/structure/barricade/metal{ @@ -9130,6 +7483,11 @@ /obj/structure/window/reinforced, /turf/open/floor/wood, /area/shiva/interior/colony/central) +"dnj" = ( +/obj/structure/surface/rack, +/obj/item/tool/shovel/snow, +/turf/open/auto_turf/snow/layer3, +/area/shiva/exterior/cp_s_research) "dnv" = ( /obj/structure/prop/invuln/minecart_tracks/bumper{ dir = 5 @@ -9147,11 +7505,6 @@ /obj/item/storage/box/lightstick/red, /turf/open/floor/carpet, /area/shiva/interior/colony/research_hab) -"doc" = ( -/turf/open/floor{ - icon_state = "wood" - }, -/area/shiva/interior/colony/central) "doJ" = ( /obj/structure/window/framed/shiva, /turf/open/floor/plating, @@ -9179,23 +7532,23 @@ pixel_x = -5; pixel_y = 11 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/research_hab) "dqW" = ( /obj/structure/surface/table/woodentable, /obj/item/device/flashlight/lamp, /turf/open/floor/carpet, /area/shiva/interior/colony/central) +"dro" = ( +/obj/structure/platform/strata, +/obj/structure/blocker/forcefield/multitile_vehicles, +/turf/open/auto_turf/snow/layer1, +/area/shiva/exterior/cp_s_research) "drx" = ( /obj/structure/bed/chair/comfy/black{ dir = 4 }, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/north, /area/shiva/interior/colony/research_hab) "drM" = ( /obj/effect/spawner/random/toolbox, @@ -9209,15 +7562,11 @@ /area/shiva/interior/aerodrome) "dsD" = ( /obj/structure/largecrate/random/case/double, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) "dsY" = ( /obj/structure/bed/chair/office/dark, -/turf/open/floor/shiva{ - icon_state = "yellowfull" - }, +/turf/open/floor/shiva/yellowfull, /area/shiva/interior/colony/research_hab) "dtq" = ( /turf/closed/wall/shiva/prefabricated/reinforced, @@ -9227,17 +7576,13 @@ dir = 1; pixel_y = 9 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/aerodrome) "dtE" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_18" }, -/turf/open/floor/shiva{ - icon_state = "yellowfull" - }, +/turf/open/floor/shiva/yellowfull, /area/shiva/interior/colony/research_hab) "dtZ" = ( /obj/structure/barricade/wooden{ @@ -9247,10 +7592,7 @@ dir = 4; pixel_y = -5 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull/west, /area/shiva/interior/bar) "dug" = ( /obj/item/reagent_container/food/drinks/bottle/rum, @@ -9263,9 +7605,7 @@ /turf/open/floor/wood, /area/shiva/interior/colony/botany) "duv" = ( -/turf/open/floor/shiva{ - icon_state = "snow_mat" - }, +/turf/open/floor/shiva/snow_mat, /area/shiva/interior/colony/n_admin) "dvg" = ( /obj/item/tool/warning_cone{ @@ -9286,10 +7626,7 @@ /obj/item/clothing/mask/rebreather, /obj/item/tank/emergency_oxygen/engi, /obj/item/clothing/mask/rebreather, -/turf/open/floor/shiva{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/southeast, /area/shiva/interior/bar) "dwQ" = ( /turf/open/floor/plating, @@ -9298,17 +7635,15 @@ /obj/structure/machinery/portable_atmospherics/powered/scrubber{ icon_state = "psiphon:1" }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, -/area/shiva/interior/lz2_habs) +/turf/open/floor/shiva/floor3, +/area/shiva/interior/aux_power) "dxS" = ( /turf/open/auto_turf/ice/layer2, /area/shiva/interior/caves/right_spiders) "dyt" = ( /obj/vehicle/train/cargo/trolley, /turf/open/auto_turf/snow/layer0, -/area/shiva/exterior/cp_s_research) +/area/shiva/exterior/junkyard) "dze" = ( /obj/effect/decal/warning_stripes{ icon_state = "W-corner" @@ -9323,10 +7658,7 @@ /area/shiva/exterior/junkyard) "dAi" = ( /obj/structure/machinery/cm_vending/sorted/boozeomat/chess, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "snow_mat" - }, +/turf/open/floor/shiva/snow_mat/north, /area/shiva/exterior/cp_lz2) "dAt" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, @@ -9336,9 +7668,7 @@ /obj/item/reagent_container/glass/beaker/cryopredmix{ pixel_x = -10 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/research_hab) "dBK" = ( /obj/structure/surface/table, @@ -9346,43 +7676,30 @@ pixel_x = -4; pixel_y = 10 }, -/turf/open/floor/shiva{ - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull, /area/shiva/interior/colony/n_admin) "dCo" = ( /obj/structure/cargo_container/horizontal/blue/bottom, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/bar) "dCS" = ( /turf/closed/shuttle/ert{ icon_state = "stan2" }, /area/shiva/interior/aerodrome) -"dCY" = ( -/obj/structure/ice/thin/single{ - opacity = 1; - unacidable = 0 - }, -/obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/auto_turf/ice/layer2, -/area/shiva/interior/caves/left_spiders) +"dDj" = ( +/obj/item/tool/shovel/snow, +/turf/open/auto_turf/snow/layer0, +/area/shiva/interior/caves/cp_camp) "dDo" = ( /obj/structure/machinery/landinglight/ds1/spoke, -/turf/open/floor/shiva{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/southeast, /area/shiva/interior/colony/botany) "dEH" = ( /obj/structure/surface/rack, /obj/item/storage/toolbox/electrical, /obj/item/storage/toolbox/electrical, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/central) "dGs" = ( /obj/structure/barricade/snow, @@ -9393,22 +7710,11 @@ /obj/item/storage/toolbox/mechanical, /obj/item/storage/toolbox/mechanical, /obj/effect/landmark/crap_item, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/central) -"dHr" = ( -/obj/structure/flora/bush/snow{ - icon_state = "snowgrassall_3" - }, -/turf/open/auto_turf/snow/layer3, -/area/shiva/exterior/cp_s_research) "dIF" = ( /obj/structure/machinery/photocopier, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "wred" - }, +/turf/open/floor/shiva/wred/east, /area/shiva/interior/colony/medseceng) "dJl" = ( /obj/item/lightstick/planted, @@ -9453,39 +7759,27 @@ /area/shiva/interior/warehouse) "dLk" = ( /obj/item/device/flashlight, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/aerodrome) "dMo" = ( /obj/structure/closet/toolcloset, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/aerodrome) "dMy" = ( /obj/structure/bed/chair/office/light{ dir = 8 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/shiva/interior/colony/deck) "dOf" = ( -/turf/open/floor/shiva{ - dir = 4; - icon_state = "yellowcorners" - }, +/turf/open/floor/shiva/yellowcorners/east, /area/shiva/interior/colony/deck) "dOo" = ( /obj/structure/machinery/door_control/brbutton{ id = "nlz_shutters"; pixel_y = 28 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) "dOs" = ( /obj/structure/prop/invuln/ice_prefab/trim{ @@ -9499,6 +7793,15 @@ "dOD" = ( /turf/open/floor/plating/plating_catwalk/shiva, /area/shiva/interior/colony/botany) +"dPW" = ( +/obj/structure/stairs/perspective{ + icon_state = "p_stair_full" + }, +/obj/structure/barricade/handrail/strata{ + dir = 4 + }, +/turf/open/floor/plating, +/area/shiva/exterior/valley) "dQp" = ( /obj/structure/reagent_dispensers/water_cooler{ density = 0; @@ -9508,18 +7811,14 @@ /obj/item/tool/mop{ pixel_x = -10 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/bar) "dQq" = ( /obj/effect/decal/cleanable/blood/oil, /turf/open/asphalt/cement, /area/shiva/interior/warehouse) "dQF" = ( -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/shiva/interior/colony/central) "dQZ" = ( /obj/structure/window/reinforced/tinted{ @@ -9529,18 +7828,11 @@ dir = 4 }, /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/shiva{ - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull, /area/shiva/interior/colony/n_admin) "dRb" = ( -/turf/closed/wall/shiva/ice, -/area/shiva/interior/caves/left_spiders) -"dRi" = ( -/obj/structure/prop/invuln/ice_prefab{ - dir = 10 - }, -/turf/open/auto_turf/ice/layer1, +/obj/structure/fence, +/turf/open/auto_turf/snow/layer3, /area/shiva/interior/caves/cp_camp) "dTj" = ( /obj/structure/machinery/space_heater, @@ -9550,29 +7842,20 @@ /obj/structure/machinery/constructable_frame{ icon_state = "box_1" }, -/turf/open/floor/shiva{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/southeast, /area/shiva/interior/colony/research_hab) "dTU" = ( -/turf/open/floor/shiva{ - dir = 4; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/east, /area/shiva/interior/colony/research_hab) "dVw" = ( /obj/structure/machinery/power/apc{ dir = 1; start_charge = 0 }, -/turf/open/auto_turf/ice/layer1, +/turf/open/floor/plating, /area/shiva/interior/caves/research_caves) "dWp" = ( -/turf/open/floor/shiva{ - dir = 6; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/southeast, /area/shiva/interior/colony/medseceng) "dWw" = ( /obj/structure/prop/ice_colony/dense/planter_box{ @@ -9596,10 +7879,7 @@ /area/shiva/interior/colony/central) "dWM" = ( /obj/structure/machinery/sleep_console, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "wred" - }, +/turf/open/floor/shiva/wred/north, /area/shiva/interior/colony/medseceng) "dWO" = ( /obj/structure/surface/rack, @@ -9610,21 +7890,14 @@ /obj/item/weapon/ice_axe/red{ pixel_y = -4 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/west, /area/shiva/interior/warehouse/caves) "dXc" = ( /obj/item/device/flashlight/lamp/tripod, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/bar) "dXp" = ( -/turf/open/floor/shiva{ - icon_state = "radiator_tile" - }, +/turf/open/floor/shiva/radiator_tile, /area/shiva/interior/bar) "dYi" = ( /obj/item/lightstick/red/spoke/planted{ @@ -9634,17 +7907,11 @@ /turf/open/auto_turf/snow/layer1, /area/shiva/exterior/junkyard) "dYm" = ( -/turf/open/floor/shiva{ - icon_state = "radiator_tile" - }, +/turf/open/floor/shiva/radiator_tile, /area/shiva/exterior/cp_colony_grounds) "dYp" = ( /turf/closed/wall/shiva/ice, /area/shiva/interior/bar) -"dYw" = ( -/obj/structure/machinery/defenses/sentry/premade, -/turf/open/auto_turf/snow/layer0, -/area/shiva/exterior/junkyard) "dZb" = ( /obj/structure/closet/secure_closet/guncabinet, /obj/structure/machinery/firealarm{ @@ -9658,16 +7925,11 @@ /obj/item/ammo_magazine/rifle/boltaction, /obj/item/ammo_magazine/rifle/boltaction, /obj/item/storage/belt/marine, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull/west, /area/shiva/interior/colony/s_admin) "dZN" = ( /obj/item/newspaper, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/aerodrome) "eaa" = ( /obj/structure/closet/fireaxecabinet{ @@ -9699,16 +7961,8 @@ pixel_x = -12; pixel_y = 4 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/research_hab) -"eaB" = ( -/obj/structure/platform/strata{ - dir = 4 - }, -/turf/open/auto_turf/snow/layer4, -/area/shiva/exterior/lz1_valley) "ebK" = ( /obj/structure/fence, /turf/open/auto_turf/snow/layer2, @@ -9728,37 +7982,32 @@ /obj/structure/closet/crate/trashcart, /obj/item/clothing/under/marine/veteran/mercenary, /obj/item/clothing/suit/armor/vest/security, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/botany) +"ecx" = ( +/obj/structure/largecrate/random, +/turf/open/floor/shiva/floor3, +/area/shiva/interior/caves/cp_camp) "ecz" = ( /obj/structure/barricade/handrail/wire, -/turf/open/auto_turf/snow/layer0, +/turf/open/auto_turf/snow/layer3, /area/shiva/interior/caves/cp_camp) "ecZ" = ( -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/cp_colony_grounds) "edw" = ( -/turf/open/floor/shiva{ - dir = 1; - icon_state = "snow_mat" - }, +/turf/open/floor/shiva/snow_mat/north, /area/shiva/exterior/cp_lz2) "edW" = ( /obj/structure/machinery/power/apc{ dir = 1; start_charge = 0 }, -/turf/open/auto_turf/snow/layer3, +/turf/open/floor/plating, /area/shiva/exterior/cp_colony_grounds) "eep" = ( /obj/effect/landmark/hunter_primary, -/turf/open/floor/shiva{ - icon_state = "wredfull" - }, +/turf/open/floor/shiva/wredfull, /area/shiva/interior/colony/medseceng) "eeD" = ( /obj/structure/platform_decoration/strata{ @@ -9784,10 +8033,8 @@ }, /turf/open/floor/wood, /area/shiva/interior/colony/botany) -"ehe" = ( -/obj/effect/landmark/nightmare{ - insert_tag = "labs-entrance" - }, +"ehO" = ( +/obj/structure/blocker/forcefield/multitile_vehicles, /turf/closed/wall/shiva/prefabricated/blue, /area/shiva/interior/colony/research_hab) "ehV" = ( @@ -9795,7 +8042,7 @@ dir = 1 }, /turf/open/auto_turf/snow/layer2, -/area/shiva/exterior/lz1_valley) +/area/shiva/exterior/junkyard) "eit" = ( /obj/effect/decal/cleanable/blood/drip, /turf/open/auto_turf/ice/layer1, @@ -9804,14 +8051,10 @@ /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/valley_huts) "ejt" = ( -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/botany) "ejF" = ( /obj/item/ammo_magazine/handful/shotgun/incendiary, @@ -9825,16 +8068,20 @@ /obj/structure/largecrate/random/case/double, /turf/open/auto_turf/snow/layer2, /area/shiva/exterior/junkyard) +"elf" = ( +/obj/item/reagent_container/glass/bucket{ + pixel_x = 8; + pixel_y = -8 + }, +/turf/open/auto_turf/snow/layer1, +/area/shiva/interior/caves/cp_camp) "eln" = ( /obj/structure/surface/table, /obj/item/book/manual/engineering_guide{ pixel_x = -5; pixel_y = -5 }, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/east, /area/shiva/interior/colony/medseceng) "elw" = ( /obj/item/stack/rods, @@ -9849,9 +8096,7 @@ /turf/open/floor/prison, /area/shiva/interior/bar) "emd" = ( -/turf/open/floor/shiva{ - icon_state = "radiator_tile" - }, +/turf/open/floor/shiva/radiator_tile, /area/shiva/interior/colony/botany) "emq" = ( /obj/structure/filingcabinet{ @@ -9863,23 +8108,16 @@ pixel_y = 4 }, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/shiva{ - icon_state = "yellowfull" - }, +/turf/open/floor/shiva/yellowfull, /area/shiva/interior/colony/research_hab) "emy" = ( /obj/item/stack/cable_coil/cut, -/turf/open/floor/shiva{ - dir = 1 - }, -/area/shiva/interior/lz2_habs) +/turf/open/floor/shiva/north, +/area/shiva/interior/aux_power) "enc" = ( /obj/structure/prop/invuln/ice_prefab, /turf/open/auto_turf/ice/layer0, /area/shiva/exterior/cp_lz2) -"enh" = ( -/turf/open/auto_turf/ice/layer1, -/area/shiva/exterior/research_alley) "eni" = ( /turf/open/auto_turf/snow/layer2, /area/shiva/exterior/cp_lz2) @@ -9899,10 +8137,7 @@ /area/shiva/interior/caves/research_caves) "eoG" = ( /obj/effect/landmark/corpsespawner/security/marshal, -/turf/open/floor/shiva{ - dir = 6; - icon_state = "green" - }, +/turf/open/floor/shiva/green/southeast, /area/shiva/interior/colony/botany) "eoH" = ( /obj/structure/largecrate/random/case/double, @@ -9919,36 +8154,25 @@ dir = 4 }, /obj/item/device/analyzer/plant_analyzer, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "purple" - }, +/turf/open/floor/shiva/purple/west, /area/shiva/interior/lz2_habs) "epp" = ( /obj/item/stool{ pixel_x = 4; pixel_y = 9 }, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "snow_mat" - }, +/turf/open/floor/shiva/snow_mat/north, /area/shiva/exterior/cp_lz2) "eqD" = ( /obj/structure/machinery/light/double{ dir = 8; pixel_y = -5 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "green" - }, +/turf/open/floor/shiva/green/west, /area/shiva/interior/colony/botany) "eqY" = ( /obj/structure/toilet, -/turf/open/floor/shiva{ - icon_state = "wredfull" - }, +/turf/open/floor/shiva/wredfull, /area/shiva/interior/colony/medseceng) "erc" = ( /obj/effect/decal/warning_stripes{ @@ -9981,22 +8205,15 @@ /obj/structure/machinery/cm_vending/sorted/medical/wall_med/limited{ pixel_y = 28 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/lz2_habs) "etV" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/device/reagent_scanner, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/shiva/interior/colony/research_hab) "euA" = ( -/turf/open/floor/shiva{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/west, /area/shiva/interior/colony/research_hab) "euZ" = ( /obj/structure/filingcabinet, @@ -10008,9 +8225,7 @@ /obj/item/stack/cable_coil, /obj/item/storage/box/engineer, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/medseceng) "ewa" = ( /turf/open/auto_turf/snow/layer2, @@ -10034,15 +8249,10 @@ /obj/item/explosive/grenade/custom/cleaner, /obj/item/explosive/grenade/custom/cleaner, /obj/item/storage/pill_bottle/bicaridine/skillless, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/shiva/interior/colony/research_hab) "exX" = ( -/turf/open/floor/shiva{ - dir = 8; - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull/west, /area/shiva/interior/warehouse) "eyx" = ( /obj/structure/bed/chair{ @@ -10066,10 +8276,7 @@ /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "purplefull" - }, +/turf/open/floor/shiva/purplefull/west, /area/shiva/interior/lz2_habs) "eBG" = ( /obj/structure/barricade/wooden, @@ -10077,9 +8284,7 @@ /area/shiva/interior/colony/research_hab) "eBU" = ( /obj/effect/landmark/survivor_spawner, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/s_admin) "eBZ" = ( /obj/structure/machinery/alarm{ @@ -10087,9 +8292,7 @@ pixel_x = -24 }, /obj/item/device/flashlight/lamp, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/s_admin) "eCg" = ( /obj/structure/closet/crate/freezer/rations, @@ -10099,9 +8302,7 @@ /obj/item/reagent_container/food/condiment/coldsauce, /obj/item/reagent_container/food/condiment/coldsauce, /obj/item/reagent_container/food/condiment/coldsauce, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/shiva/interior/bar) "eCr" = ( /obj/structure/flora/tree/dead/tree_3, @@ -10122,15 +8323,11 @@ /obj/item/paper/research_notes, /obj/item/paper_bin, /obj/structure/machinery/light/double, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/n_admin) "eFG" = ( /obj/structure/bed/chair, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/medseceng) "eFI" = ( /obj/effect/decal/cleanable/blood/drip, @@ -10138,17 +8335,8 @@ /area/shiva/interior/caves/cp_camp) "eFQ" = ( /obj/item/tool/warning_cone, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/research_hab) -"eGe" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W-corner" - }, -/obj/effect/decal/cleanable/blood/drip, -/turf/open/floor/plating, -/area/shiva/exterior/lz1_valley) "eGq" = ( /obj/structure/platform/strata, /obj/structure/platform/strata{ @@ -10181,22 +8369,15 @@ /obj/item/ammo_magazine/rifle/extended, /obj/item/ammo_magazine/rifle, /obj/item/ammo_magazine/rifle, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull/west, /area/shiva/interior/colony/s_admin) "eHp" = ( /obj/structure/closet/secure_closet/security, -/turf/open/floor/shiva{ - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull, /area/shiva/interior/colony/n_admin) "eHL" = ( /obj/item/tool/wrench, -/turf/open/shuttle{ - icon_state = "floor7" - }, +/turf/open/shuttle/can_surgery/black, /area/shiva/interior/aerodrome) "eHY" = ( /obj/item/lightstick/red/spoke/planted{ @@ -10210,19 +8391,14 @@ /obj/structure/bed/chair/comfy/orange{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/shiva/interior/bar) "eIe" = ( /obj/structure/largecrate/random/mini/med{ pixel_x = 8; pixel_y = 6 }, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/east, /area/shiva/interior/colony/medseceng) "eIH" = ( /obj/structure/machinery/cm_vending/sorted/medical/blood, @@ -10230,28 +8406,12 @@ dir = 1; pixel_y = 9 }, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "wred" - }, +/turf/open/floor/shiva/wred/north, /area/shiva/interior/colony/medseceng) -"eKp" = ( -/obj/item/reagent_container/glass/bucket{ - pixel_x = 8; - pixel_y = -8 - }, -/obj/item/reagent_container/glass/bucket{ - pixel_x = -2; - pixel_y = -8 - }, -/turf/open/auto_turf/ice/layer1, -/area/shiva/interior/caves/cp_camp) "eKY" = ( /obj/structure/closet/radiation, /obj/effect/landmark/crap_item, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/central) "eMh" = ( /obj/structure/prop/ice_colony/flamingo{ @@ -10263,25 +8423,15 @@ }, /turf/open/auto_turf/snow/layer2, /area/shiva/exterior/cp_lz2) -"eMx" = ( -/obj/structure/surface/rack, -/obj/item/tool/lighter/zippo, -/turf/open/auto_turf/snow/layer0, -/area/shiva/exterior/research_alley) "eNr" = ( /obj/structure/bed, /obj/effect/landmark/corpsespawner/prisoner, /obj/effect/decal/cleanable/blood, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull/west, /area/shiva/interior/colony/medseceng) "eNv" = ( /obj/item/tool/kitchen/knife/butcher, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/shiva/interior/bar) "eOG" = ( /obj/structure/closet/secure_closet/guncabinet, @@ -10294,10 +8444,7 @@ /obj/item/ammo_magazine/rifle/m41aMK1, /obj/item/ammo_magazine/rifle/m41aMK1, /obj/item/ammo_magazine/rifle/m41aMK1, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull/west, /area/shiva/interior/colony/s_admin) "eOK" = ( /obj/structure/closet/cabinet, @@ -10326,9 +8473,7 @@ /obj/item/reagent_container/food/drinks/bottle/vodka/chess/w_queen, /obj/item/reagent_container/food/drinks/bottle/vodka/chess/w_rook, /obj/item/reagent_container/food/drinks/bottle/vodka/chess/w_rook, -/turf/open/floor/shiva{ - icon_state = "radiator_tile" - }, +/turf/open/floor/shiva/radiator_tile, /area/shiva/exterior/cp_lz2) "eRk" = ( /obj/structure/barricade/sandbags/wired{ @@ -10336,9 +8481,7 @@ icon_state = "sandbag_0" }, /obj/item/ammo_magazine/rifle/boltaction, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/exterior/lz2_fortress) "eRE" = ( /obj/item/tool/wirecutters, @@ -10349,21 +8492,19 @@ dir = 4; flipped = 1 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/research_hab) -"eSc" = ( -/obj/structure/surface/rack, -/obj/item/tool/pickaxe/plasmacutter, -/turf/open/auto_turf/snow/layer0, -/area/shiva/exterior/research_alley) +"eSf" = ( +/obj/item/lightstick/red/spoke/planted{ + layer = 2.99; + pixel_x = 12; + pixel_y = 28 + }, +/turf/open/auto_turf/snow/layer1, +/area/shiva/interior/caves/cp_camp) "eSt" = ( /obj/effect/landmark/xeno_spawn, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/east, /area/shiva/interior/colony/research_hab) "eSK" = ( /obj/item/lightstick/red/spoke/planted, @@ -10372,13 +8513,19 @@ "eSN" = ( /obj/vehicle/train/cargo/engine, /turf/open/floor/plating/plating_catwalk/shiva, -/area/shiva/exterior/lz1_valley) +/area/shiva/exterior/junkyard) "eTV" = ( /obj/structure/flora/bush/ausbushes/lavendergrass{ icon_state = "lavendergrass_2" }, /turf/open/auto_turf/snow/layer2, /area/shiva/exterior/cp_colony_grounds) +"eUn" = ( +/obj/structure/prop/invuln/ice_prefab/roof_greeble{ + dir = 1 + }, +/turf/open/auto_turf/snow/layer4, +/area/shiva/interior/caves/cp_camp) "eUT" = ( /turf/closed/wall/shiva/prefabricated/white, /area/shiva/exterior/cp_lz2) @@ -10386,9 +8533,7 @@ /obj/structure/machinery/landinglight/ds2{ dir = 8 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/exterior/lz2_fortress) "eVG" = ( /obj/structure/largecrate/random, @@ -10404,17 +8549,15 @@ "eVX" = ( /obj/structure/surface/table, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "snow_mat" - }, +/turf/open/floor/shiva/snow_mat/north, /area/shiva/exterior/cp_lz2) +"eWl" = ( +/obj/structure/inflatable/popped, +/turf/open/auto_turf/snow/layer1, +/area/shiva/exterior/cp_s_research) "eWn" = ( /obj/structure/machinery/iv_drip, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "wred" - }, +/turf/open/floor/shiva/wred/east, /area/shiva/interior/colony/medseceng) "eWB" = ( /turf/open/floor/plating, @@ -10422,10 +8565,7 @@ "eXL" = ( /obj/structure/surface/table, /obj/item/stack/cable_coil, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/north, /area/shiva/interior/colony/medseceng) "eXN" = ( /obj/structure/prop/invuln/ice_prefab{ @@ -10433,21 +8573,21 @@ }, /turf/open/auto_turf/snow/layer1, /area/shiva/exterior/cp_lz2) +"eXQ" = ( +/obj/structure/inflatable/popped, +/turf/open/auto_turf/snow/layer2, +/area/shiva/exterior/cp_s_research) "eYH" = ( /turf/closed/wall/shiva/prefabricated/reinforced/hull, /area/shiva/exterior/cp_lz2) "eZX" = ( /obj/item/tool/soap, -/turf/open/floor/shiva{ - icon_state = "wredfull" - }, +/turf/open/floor/shiva/wredfull, /area/shiva/interior/colony/medseceng) "far" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/storage/toolbox/emergency, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/shiva/interior/colony/research_hab) "faA" = ( /turf/open/auto_turf/snow/layer0, @@ -10465,17 +8605,6 @@ /obj/effect/landmark/ert_spawns/groundside_xeno, /turf/open/auto_turf/ice/layer1, /area/shiva/interior/caves/medseceng_caves) -"faR" = ( -/obj/structure/prop/invuln/dense/ice_tray{ - dir = 8; - pixel_y = -9 - }, -/obj/structure/prop/invuln/dense/ice_tray{ - dir = 5; - pixel_y = 10 - }, -/turf/open/auto_turf/ice/layer1, -/area/shiva/interior/caves/cp_camp) "faT" = ( /obj/structure/prop/invuln/ice_prefab{ dir = 8; @@ -10483,20 +8612,6 @@ }, /turf/open/auto_turf/ice/layer0, /area/shiva/exterior/cp_lz2) -"faW" = ( -/obj/structure/prop/ice_colony/poly_kevlon_roll{ - dir = 1 - }, -/obj/structure/prop/ice_colony/poly_kevlon_roll{ - dir = 1; - pixel_y = 5 - }, -/obj/structure/prop/ice_colony/poly_kevlon_roll{ - dir = 1; - pixel_y = 10 - }, -/turf/open/auto_turf/ice/layer1, -/area/shiva/interior/caves/cp_camp) "fbf" = ( /obj/effect/decal/cleanable/blood/oil/streak, /obj/effect/decal/cleanable/dirt, @@ -10506,16 +8621,17 @@ /obj/structure/closet/crate/trashcart, /obj/item/clothing/under/marine/veteran/mercenary/support, /obj/item/clothing/suit/armor/vest/security, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/botany) +"fbS" = ( +/obj/structure/flora/grass/tallgrass/ice/corner, +/obj/structure/blocker/forcefield/multitile_vehicles, +/turf/open/auto_turf/snow/layer2, +/area/shiva/exterior/cp_s_research) "fcq" = ( /obj/structure/closet/coffin, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/central) "fcy" = ( /obj/structure/prop/ice_colony/dense/planter_box{ @@ -10528,50 +8644,49 @@ /turf/open/auto_turf/snow/layer0, /area/shiva/interior/colony/n_admin) "fcL" = ( -/turf/open/floor/shiva{ - icon_state = "snow_mat" - }, +/turf/open/floor/shiva/snow_mat, /area/shiva/exterior/cp_colony_grounds) "fel" = ( /obj/structure/machinery/light/double{ dir = 8; pixel_y = -5 }, -/turf/open/floor/shiva{ - icon_state = "radiator_tile" - }, +/turf/open/floor/shiva/radiator_tile, /area/shiva/interior/colony/central) "feA" = ( /obj/structure/surface/table, /obj/item/reagent_container/food/drinks/bottle/vodka{ pixel_y = 6 }, -/turf/open/floor/shiva{ - icon_state = "yellowfull" - }, +/turf/open/floor/shiva/yellowfull, /area/shiva/interior/colony/research_hab) "feR" = ( /obj/structure/machinery/light/double, -/turf/open/floor/shiva{ - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow, /area/shiva/interior/colony/medseceng) +"ffg" = ( +/obj/effect/landmark/nightmare{ + insert_tag = "panic_room" + }, +/turf/open/auto_turf/snow/layer3, +/area/shiva/exterior/junkyard) "ffj" = ( /turf/closed/shuttle/elevator{ dir = 10 }, /area/shiva/interior/colony/central) "ffn" = ( -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellow" - }, -/area/shiva/interior/lz2_habs) +/turf/open/floor/shiva/yellow/west, +/area/shiva/interior/aux_power) +"ffo" = ( +/obj/structure/surface/rack, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/turf/open/floor/shiva/yellow, +/area/shiva/interior/garage) "ffw" = ( /obj/effect/landmark/xeno_spawn, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/shiva/interior/colony/research_hab) "fgB" = ( /obj/item/stack/sheet/metal, @@ -10598,9 +8713,7 @@ /obj/effect/decal/cleanable/blood/drip{ icon_state = "3" }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/s_admin) "fhv" = ( /obj/item/tool/wrench, @@ -10608,9 +8721,7 @@ /area/shiva/interior/aerodrome) "fir" = ( /obj/structure/machinery/vending/coffee, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/shiva/interior/colony/research_hab) "fiK" = ( /turf/open/floor/wood, @@ -10624,18 +8735,12 @@ dir = 10; pixel_y = -5 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellowfull" - }, +/turf/open/floor/shiva/yellowfull/west, /area/shiva/interior/colony/research_hab) "fjs" = ( /obj/structure/blocker/forcefield/multitile_vehicles, /turf/open/auto_turf/ice/layer1, /area/shiva/interior/colony/medseceng) -"fjv" = ( -/turf/open/auto_turf/snow/layer4, -/area/shiva/interior/caves/research_caves) "fjI" = ( /obj/structure/surface/table, /obj/item/storage/firstaid/o2, @@ -10647,10 +8752,7 @@ dir = 8; pixel_x = 24 }, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "wred" - }, +/turf/open/floor/shiva/wred/east, /area/shiva/interior/colony/medseceng) "fjS" = ( /obj/structure/surface/rack, @@ -10677,9 +8779,7 @@ dir = 8 }, /obj/structure/machinery/door/window/westleft, -/turf/open/floor/shiva{ - icon_state = "wredfull" - }, +/turf/open/floor/shiva/wredfull, /area/shiva/interior/colony/medseceng) "fkB" = ( /obj/structure/blocker/forcefield/multitile_vehicles, @@ -10687,18 +8787,14 @@ /area/shiva/exterior/cp_s_research) "fkF" = ( /obj/structure/machinery/vending/cigarette/colony, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/s_admin) "fkP" = ( /obj/item/reagent_container/glass/bucket{ pixel_x = -2; pixel_y = -8 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/lz2_habs) "flN" = ( /turf/open/auto_turf/ice/layer1, @@ -10709,27 +8805,29 @@ pixel_x = -6; pixel_y = 10 }, -/turf/open/floor/shiva{ - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull, /area/shiva/interior/colony/s_admin) "fmi" = ( /obj/structure/bed, /obj/effect/landmark/objective_landmark/science, /turf/open/floor/wood, /area/shiva/interior/colony/botany) +"fmo" = ( +/obj/structure/platform/strata{ + dir = 4 + }, +/obj/structure/platform/strata, +/turf/open/gm/river, +/area/shiva/interior/caves/research_caves) "fnw" = ( /obj/structure/stairs/perspective/ice{ dir = 1; icon_state = "p_stair_full" }, /turf/open/auto_turf/snow/layer0, -/area/shiva/exterior/lz1_valley) +/area/shiva/interior/caves/research_caves) "fnx" = ( -/turf/open/floor/shiva{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/west, /area/shiva/exterior/cp_lz2) "fnG" = ( /obj/structure/barricade/snow{ @@ -10741,6 +8839,10 @@ /obj/item/storage/toolbox/electrical, /turf/open/auto_turf/snow/layer1, /area/shiva/exterior/junkyard/fortbiceps) +"foc" = ( +/obj/structure/platform_decoration/shiva/catwalk, +/turf/open/auto_turf/snow/layer3, +/area/shiva/exterior/valley) "fof" = ( /obj/structure/prop/invuln{ desc = "The mounting points are ground down from heavy use. They'll need some maintenance work before they can be used again."; @@ -10749,24 +8851,20 @@ name = "shuttle attachment point" }, /obj/item/storage/firstaid/fire, -/turf/open/shuttle{ - icon_state = "floor7" - }, +/turf/open/shuttle/can_surgery/black, /area/shiva/interior/aerodrome) -"fqb" = ( -/obj/item/lightstick/red/spoke/planted{ - pixel_x = 12; - pixel_y = 25 +"fpF" = ( +/obj/structure/stairs/perspective/ice{ + dir = 8; + icon_state = "p_stair_sn_full_cap" }, /turf/open/auto_turf/snow/layer1, -/area/shiva/exterior/valley) +/area/shiva/interior/warehouse/caves) "fqJ" = ( /obj/structure/bed/chair/office/dark{ dir = 1 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/research_hab) "frj" = ( /obj/item/tool/shovel/snow, @@ -10777,7 +8875,7 @@ icon_state = "pink_trim" }, /turf/closed/wall/shiva/prefabricated/white, -/area/shiva/interior/lz2_habs) +/area/shiva/interior/aux_power) "fse" = ( /obj/structure/surface/table/woodentable, /obj/item/storage/box/lightstick/red{ @@ -10792,9 +8890,7 @@ /area/shiva/interior/bar) "ftm" = ( /obj/effect/decal/cleanable/ash, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) "ftr" = ( /obj/structure/closet/secure_closet/security_empty, @@ -10813,10 +8909,7 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "wred" - }, +/turf/open/floor/shiva/wred/west, /area/shiva/interior/colony/medseceng) "fuz" = ( /obj/structure/prop/ice_colony/ground_wire{ @@ -10828,16 +8921,11 @@ /obj/structure/bed/chair/comfy/beige{ dir = 4 }, -/turf/open/floor/shiva{ - icon_state = "yellowfull" - }, +/turf/open/floor/shiva/yellowfull, /area/shiva/interior/colony/research_hab) "fww" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/shiva{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/southeast, /area/shiva/interior/colony/research_hab) "fwU" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ @@ -10852,23 +8940,19 @@ /obj/structure/machinery/landinglight/ds2/delaytwo{ dir = 4 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) "fxy" = ( /obj/item/lightstick/variant/planted, /turf/open/auto_turf/snow/layer1, -/area/shiva/exterior/cp_s_research) +/area/shiva/exterior/junkyard) "fxJ" = ( /obj/structure/surface/table, /obj/item/clipboard{ pixel_y = 6 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, -/area/shiva/interior/lz2_habs) +/turf/open/floor/shiva/floor3, +/area/shiva/interior/aux_power) "fyC" = ( /obj/structure/prop/ice_colony/dense/planter_box/hydro{ pixel_x = -17; @@ -10882,16 +8966,11 @@ req_access_txt = "100"; req_one_access = null }, -/turf/open/floor/shiva{ - icon_state = "wredfull" - }, +/turf/open/floor/shiva/wredfull, /area/shiva/interior/colony/medseceng) "fze" = ( /obj/item/frame/apc, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "wred" - }, +/turf/open/floor/shiva/wred/north, /area/shiva/interior/colony/medseceng) "fzm" = ( /turf/open/auto_turf/ice/layer2, @@ -10899,9 +8978,7 @@ "fzA" = ( /obj/structure/surface/rack, /obj/item/stack/sheet/metal/large_stack, -/turf/open/floor/shiva{ - icon_state = "yellowfull" - }, +/turf/open/floor/shiva/yellowfull, /area/shiva/interior/colony/medseceng) "fzF" = ( /obj/structure/prop/ice_colony/dense/planter_box{ @@ -10916,10 +8993,12 @@ "fBg" = ( /obj/structure/closet/wardrobe/green, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/shiva{ - icon_state = "greenfull" - }, +/turf/open/floor/shiva/greenfull, /area/shiva/interior/colony/n_admin) +"fBA" = ( +/obj/structure/machinery/space_heater, +/turf/open/auto_turf/ice/layer1, +/area/shiva/exterior/cp_s_research) "fBJ" = ( /obj/structure/surface/table/woodentable, /obj/item/paper_bin, @@ -10928,10 +9007,7 @@ /area/shiva/interior/colony/s_admin) "fBQ" = ( /obj/structure/bed/chair, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/shiva/red/north, /area/shiva/interior/colony/medseceng) "fCs" = ( /obj/structure/flora/grass/tallgrass/ice, @@ -10941,16 +9017,15 @@ /obj/structure/surface/table, /obj/item/storage/box/donkpockets, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/botany) +"fDH" = ( +/obj/structure/machinery/colony_floodlight, +/turf/open/auto_turf/snow/layer0, +/area/shiva/exterior/junkyard) "fEf" = ( /obj/structure/machinery/vending/snack, -/turf/open/floor/shiva{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/shiva/red/southeast, /area/shiva/interior/colony/medseceng) "fEl" = ( /obj/structure/platform/strata{ @@ -10963,10 +9038,7 @@ /turf/open/floor/shiva, /area/shiva/interior/bar) "fEO" = ( -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellowcorners" - }, +/turf/open/floor/shiva/yellowcorners/west, /area/shiva/interior/garage) "fEU" = ( /turf/open/auto_turf/ice/layer1, @@ -10975,9 +9047,7 @@ /obj/structure/surface/table, /obj/item/weapon/gun/shotgun/pump/dual_tube/cmb, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/shiva{ - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull, /area/shiva/interior/colony/s_admin) "fFf" = ( /obj/structure/flora/bush/ausbushes/lavendergrass{ @@ -11008,15 +9078,10 @@ /obj/structure/surface/table, /obj/item/bodybag/cryobag, /obj/item/storage/box/syringes, -/turf/open/floor/shiva{ - dir = 5; - icon_state = "wred" - }, +/turf/open/floor/shiva/wred/northeast, /area/shiva/interior/colony/medseceng) "fGb" = ( -/turf/open/floor/shiva{ - icon_state = "radiator_tile" - }, +/turf/open/floor/shiva/radiator_tile, /area/shiva/interior/caves/cp_camp) "fGl" = ( /obj/item/shard{ @@ -11044,12 +9109,10 @@ "fHx" = ( /obj/vehicle/train/cargo/engine, /turf/open/auto_turf/snow/layer0, -/area/shiva/exterior/cp_s_research) +/area/shiva/exterior/junkyard) "fHH" = ( /obj/item/stack/sheet/metal, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/botany) "fHM" = ( /obj/item/stool, @@ -11057,10 +9120,7 @@ /area/shiva/interior/colony/research_hab) "fHQ" = ( /obj/item/stack/sheet/metal, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull/west, /area/shiva/interior/colony/medseceng) "fIz" = ( /obj/structure/closet/secure_closet/engineering_electrical, @@ -11068,9 +9128,7 @@ /obj/item/circuitboard/apc, /obj/item/circuitboard/apc, /obj/structure/machinery/light/double, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/medseceng) "fII" = ( /obj/item/lightstick/red/spoke/planted{ @@ -11095,9 +9153,7 @@ "fJw" = ( /obj/structure/surface/table, /obj/item/device/camera, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/central) "fKb" = ( /obj/structure/fence, @@ -11105,9 +9161,7 @@ /area/shiva/exterior/lz1_valley) "fKx" = ( /obj/effect/landmark/survivor_spawner, -/turf/open/floor/shiva{ - icon_state = "greenfull" - }, +/turf/open/floor/shiva/greenfull, /area/shiva/interior/colony/n_admin) "fKy" = ( /obj/item/tool/pen/blue{ @@ -11135,9 +9189,7 @@ /obj/structure/surface/table, /obj/item/storage/box/bodybags, /obj/structure/machinery/light/double, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/central) "fLi" = ( /obj/item/tool/shovel/snow, @@ -11148,6 +9200,21 @@ }, /turf/open/auto_turf/snow/layer2, /area/shiva/exterior/junkyard) +"fLk" = ( +/obj/item/clothing/shoes/snow, +/obj/structure/surface/rack, +/obj/item/clothing/shoes/snow, +/obj/item/clothing/suit/storage/snow_suit, +/obj/item/clothing/suit/storage/snow_suit, +/obj/item/tank/emergency_oxygen/engi, +/obj/effect/decal/strata_decals/grime/grime3{ + dir = 8 + }, +/obj/item/clothing/mask/rebreather, +/obj/item/tank/emergency_oxygen/engi, +/obj/item/clothing/mask/rebreather, +/turf/open/auto_turf/ice/layer1, +/area/shiva/interior/colony/research_hab) "fLz" = ( /obj/structure/machinery/landinglight/ds2{ dir = 4 @@ -11155,26 +9222,19 @@ /obj/structure/machinery/landinglight/ds2/delaythree{ dir = 4 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) "fLX" = ( /obj/structure/prop/invuln/minecart_tracks{ dir = 8 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/caves/s_lz2) "fMe" = ( /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull/west, /area/shiva/interior/colony/medseceng) "fMq" = ( /obj/vehicle/train/cargo/engine, @@ -11184,23 +9244,34 @@ /area/shiva/interior/warehouse) "fMG" = ( /obj/structure/machinery/vending/coffee, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/n_admin) "fMO" = ( /obj/structure/bed/chair/office/dark, /turf/open/floor/carpet, /area/shiva/interior/colony/medseceng) +"fNf" = ( +/obj/structure/platform/strata{ + dir = 8 + }, +/obj/structure/platform/strata{ + dir = 1 + }, +/turf/open/gm/river, +/area/shiva/interior/warehouse/caves) "fNE" = ( /obj/structure/window/framed/shiva, /turf/open/floor/plating, /area/shiva/interior/colony/research_hab) +"fOa" = ( +/obj/item/lightstick/red/spoke/planted{ + pixel_x = -11 + }, +/turf/open/auto_turf/snow/layer2, +/area/shiva/interior/caves/cp_camp) "fOE" = ( /obj/item/ammo_magazine/rifle/boltaction, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) "fPA" = ( /obj/effect/decal/cleanable/blood/gibs, @@ -11211,18 +9282,13 @@ "fPD" = ( /obj/structure/surface/table, /obj/effect/landmark/crap_item, -/turf/open/floor/shiva{ - dir = 5; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/northeast, /area/shiva/interior/colony/medseceng) "fQX" = ( /turf/open/auto_turf/snow/layer3, /area/shiva/exterior/valley) "fRg" = ( -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/aerodrome) "fSc" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony{ @@ -11245,9 +9311,7 @@ }, /obj/item/cell, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/medseceng) "fSt" = ( /obj/item/clothing/shoes/snow, @@ -11256,28 +9320,29 @@ /obj/item/clothing/suit/storage/snow_suit, /obj/item/clothing/suit/storage/snow_suit, /obj/item/tank/emergency_oxygen/engi, -/turf/open/floor/shiva{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/southeast, /area/shiva/interior/colony/botany) -"fSR" = ( -/turf/open/floor/shiva, -/area/shiva/interior/caves/research_caves) "fTX" = ( /obj/structure/machinery/space_heater, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/bar) +"fUP" = ( +/obj/structure/machinery/light/double{ + dir = 4; + pixel_y = -5 + }, +/turf/open/floor/shiva/bluefull/west, +/area/shiva/interior/aerodrome) "fUZ" = ( /obj/item/lightstick/red/planted, /turf/open/auto_turf/snow/layer2, /area/shiva/exterior/junkyard/cp_bar) -"fVl" = ( -/obj/structure/largecrate/random, -/turf/open/auto_turf/snow/layer1, -/area/shiva/exterior/cp_s_research) +"fVq" = ( +/obj/structure/prop/invuln/ice_prefab/standalone{ + icon_state = "pink" + }, +/turf/open/auto_turf/snow/layer2, +/area/shiva/interior/caves/cp_camp) "fVw" = ( /obj/structure/prop/ice_colony/dense/planter_box/hydro{ density = 0 @@ -11286,21 +9351,15 @@ /area/shiva/interior/caves/cp_camp) "fVI" = ( /obj/structure/bed/roller, -/turf/open/floor/shiva{ - icon_state = "yellowfull" - }, +/turf/open/floor/shiva/yellowfull, /area/shiva/interior/colony/research_hab) "fVR" = ( /obj/effect/decal/cleanable/blood/gibs/xeno/limb, -/turf/open/floor/shiva{ - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull, /area/shiva/interior/colony/central) "fWb" = ( /obj/structure/machinery/vending/cigarette/colony, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/medseceng) "fWq" = ( /obj/structure/machinery/door_control/brbutton/alt{ @@ -11312,18 +9371,33 @@ pixel_x = -12; pixel_y = 7 }, -/turf/open/floor/shiva{ - icon_state = "floor3" +/turf/open/floor/shiva/floor3, +/area/shiva/interior/aerodrome) +"fXp" = ( +/obj/structure/prop/invuln{ + desc = "The mounting points are ground down from heavy use. They'll need some maintenance work before they can be used again."; + icon = 'icons/obj/structures/props/almayer_props.dmi'; + icon_state = "equip_base"; + name = "shuttle attachment point" + }, +/obj/effect/landmark/objective_landmark/close, +/obj/structure/machinery/light{ + dir = 4 }, +/turf/open/shuttle/can_surgery/black, /area/shiva/interior/aerodrome) +"fXr" = ( +/obj/item/lightstick/red/spoke/planted{ + layer = 3.1; + pixel_x = -13; + pixel_y = 25 + }, +/turf/open/auto_turf/snow/layer1, +/area/shiva/interior/caves/cp_camp) "fXB" = ( /obj/structure/largecrate/random/case/double, /turf/open/asphalt/cement, /area/shiva/interior/warehouse) -"fXQ" = ( -/obj/structure/largecrate/random/case, -/turf/open/auto_turf/ice/layer1, -/area/shiva/interior/caves/cp_camp) "fXX" = ( /turf/open/floor/plating, /area/shiva/interior/caves/research_caves) @@ -11335,9 +9409,7 @@ /obj/item/shard{ icon_state = "large" }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/s_admin) "fYW" = ( /obj/structure/surface/table/reinforced/prison, @@ -11347,30 +9419,20 @@ /obj/item/reagent_container/food/snacks/hotchili{ pixel_y = 14 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/shiva/interior/bar) "fZz" = ( /obj/structure/surface/table, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/east, /area/shiva/interior/colony/medseceng) "fZP" = ( /obj/effect/decal/cleanable/blood/xeno{ icon_state = "xgibhead" }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "purplefull" - }, +/turf/open/floor/shiva/purplefull/west, /area/shiva/interior/lz2_habs) "fZR" = ( -/turf/open/floor/shiva{ - icon_state = "snow_mat" - }, +/turf/open/floor/shiva/snow_mat, /area/shiva/interior/colony/botany) "gaz" = ( /turf/open/auto_turf/ice/layer2, @@ -11388,16 +9450,12 @@ /area/shiva/interior/caves/right_spiders) "gbC" = ( /obj/structure/machinery/smartfridge, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/shiva/interior/colony/central) "gcF" = ( /obj/structure/closet/coffin, /obj/effect/landmark/objective_landmark/far, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/central) "gcK" = ( /obj/structure/prop/invuln/ice_prefab/trim{ @@ -11413,15 +9471,11 @@ "gcP" = ( /obj/structure/bed/chair/wheelchair, /obj/structure/machinery/light/double, -/turf/open/floor/shiva{ - icon_state = "wred" - }, +/turf/open/floor/shiva/wred, /area/shiva/interior/colony/medseceng) "gdk" = ( /obj/effect/decal/cleanable/blood/gibs/xeno/up, -/turf/open/floor/shiva{ - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull, /area/shiva/interior/colony/central) "gdU" = ( /obj/structure/barricade/wooden{ @@ -11438,20 +9492,14 @@ pixel_x = 24 }, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/shiva{ - dir = 5; - icon_state = "wred" - }, +/turf/open/floor/shiva/wred/northeast, /area/shiva/interior/colony/medseceng) "geE" = ( /turf/closed/wall/shiva/prefabricated, /area/shiva/exterior/junkyard) "geS" = ( /obj/structure/machinery/iv_drip, -/turf/open/floor/shiva{ - dir = 9; - icon_state = "wred" - }, +/turf/open/floor/shiva/wred/northwest, /area/shiva/interior/colony/medseceng) "ggh" = ( /obj/effect/decal/cleanable/dirt, @@ -11465,36 +9513,15 @@ /obj/item/stack/rods, /turf/open/auto_turf/snow/layer0, /area/shiva/interior/warehouse) -"ggv" = ( -/obj/structure/prop/invuln/dense/ice_tray{ - dir = 5; - pixel_y = -9 - }, -/obj/structure/prop/invuln/dense/ice_tray{ - dir = 6; - pixel_y = 10 - }, -/turf/open/auto_turf/ice/layer1, -/area/shiva/interior/caves/cp_camp) "ggC" = ( -/obj/structure/bed/chair{ - dir = 4 - }, -/obj/structure/bed/chair{ - dir = 4; - pixel_y = 4 - }, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "snow_mat" +/obj/item/lightstick/red/spoke/planted{ + pixel_x = 11 }, +/turf/open/auto_turf/snow/layer3, /area/shiva/interior/caves/cp_camp) "ggL" = ( /obj/structure/inflatable/popped, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/north, /area/shiva/interior/colony/research_hab) "gha" = ( /obj/effect/landmark/xeno_spawn, @@ -11506,10 +9533,7 @@ /area/shiva/interior/colony/research_hab) "ghK" = ( /obj/effect/decal/cleanable/ash, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/east, /area/shiva/exterior/lz2_fortress) "ghS" = ( /obj/structure/surface/table, @@ -11519,11 +9543,11 @@ "ghU" = ( /obj/structure/closet/crate/trashcart, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull/west, /area/shiva/interior/colony/research_hab) +"gik" = ( +/turf/open/auto_turf/snow/layer0, +/area/shiva/interior/aerodrome) "giH" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony, /turf/open/floor/plating, @@ -11537,16 +9561,10 @@ /turf/open/floor/plating, /area/shiva/interior/colony/medseceng) "gjg" = ( -/turf/open/floor/shiva{ - dir = 1; - icon_state = "wredcorners" - }, +/turf/open/floor/shiva/wredcorners/north, /area/shiva/interior/colony/medseceng) "gjY" = ( -/turf/open/floor/shiva{ - dir = 4; - icon_state = "snow_mat" - }, +/turf/open/floor/shiva/snow_mat/east, /area/shiva/interior/colony/botany) "gkv" = ( /turf/open/auto_turf/ice/layer1, @@ -11559,16 +9577,11 @@ /area/shiva/exterior/cp_colony_grounds) "gkK" = ( /obj/structure/machinery/landinglight/ds2/delaythree, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/exterior/lz2_fortress) "gkL" = ( /obj/structure/machinery/medical_pod/sleeper, -/turf/open/floor/shiva{ - dir = 9; - icon_state = "wred" - }, +/turf/open/floor/shiva/wred/northwest, /area/shiva/interior/colony/medseceng) "gkY" = ( /turf/open/floor/plating, @@ -11576,9 +9589,7 @@ "glG" = ( /obj/structure/surface/table, /obj/item/storage/toolbox/emergency, -/turf/open/floor/shiva{ - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull, /area/shiva/interior/colony/s_admin) "gmS" = ( /obj/item/device/flashlight, @@ -11587,28 +9598,25 @@ "gmV" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/research_hab) "gnZ" = ( /turf/closed/shuttle/elevator{ dir = 8 }, /area/shiva/interior/colony/central) +"goe" = ( +/turf/open/auto_turf/ice/layer2, +/area/shiva/interior/aerodrome) "goh" = ( /obj/effect/decal/cleanable/blood{ icon_state = "gib6" }, /obj/effect/decal/cleanable/blood/drip, -/turf/open/floor/shiva{ - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull, /area/shiva/interior/colony/s_admin) "goj" = ( -/turf/open/floor/shiva{ - icon_state = "yellowfull" - }, +/turf/open/floor/shiva/yellowfull, /area/shiva/interior/colony/research_hab) "goS" = ( /obj/structure/flora/bush/ausbushes/lavendergrass{ @@ -11620,15 +9628,28 @@ /obj/structure/machinery/space_heater, /turf/open/floor/plating, /area/shiva/interior/colony/research_hab) +"gpj" = ( +/obj/item/lightstick/red/variant/planted{ + pixel_x = -7; + pixel_y = -5 + }, +/turf/open/auto_turf/snow/layer2, +/area/shiva/interior/caves/cp_camp) "gpn" = ( /obj/structure/largecrate/random/case, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) "gpz" = ( /turf/open/auto_turf/ice/layer0, /area/shiva/interior/caves/research_caves) +"gpF" = ( +/obj/structure/largecrate/random/case/double, +/obj/structure/machinery/light/double{ + dir = 4; + pixel_y = -5 + }, +/turf/open/floor/shiva/bluefull/west, +/area/shiva/interior/aerodrome) "gpS" = ( /obj/structure/flora/bush/snow{ icon_state = "snowgrassbb_3" @@ -11646,9 +9667,7 @@ pixel_y = 5 }, /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/aerodrome) "gqp" = ( /obj/item/stack/catwalk, @@ -11670,10 +9689,18 @@ dir = 4; start_charge = 0 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/caves/s_lz2) +"grk" = ( +/obj/structure/platform/strata{ + dir = 8 + }, +/obj/structure/stairs/perspective/ice{ + dir = 1; + icon_state = "p_stair_sn_full_cap" + }, +/turf/open/auto_turf/snow/layer0, +/area/shiva/interior/warehouse/caves) "gso" = ( /obj/structure/platform/strata, /turf/open/gm/river, @@ -11691,9 +9718,7 @@ pixel_y = 14 }, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/botany) "gtp" = ( /obj/effect/landmark/queen_spawn, @@ -11710,46 +9735,38 @@ /turf/open/auto_turf/snow/layer3, /area/shiva/exterior/cp_colony_grounds) "gtZ" = ( -/turf/open/floor/shiva{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/shiva/red/east, /area/shiva/interior/colony/central) "gul" = ( /obj/structure/window/reinforced/tinted{ dir = 4 }, /obj/structure/surface/table, -/turf/open/floor/shiva{ - icon_state = "red" - }, +/turf/open/floor/shiva/red, /area/shiva/interior/colony/medseceng) "guz" = ( -/turf/open/floor/shiva{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/shiva/blue/west, /area/shiva/interior/colony/n_admin) "guA" = ( /obj/structure/surface/table, /obj/item/tool/wirecutters/clippers{ pixel_y = 8 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/lz2_habs) +"guH" = ( +/obj/structure/prop/ice_colony/surveying_device, +/turf/open/auto_turf/ice/layer0, +/area/shiva/exterior/cp_s_research) "gva" = ( /obj/structure/prop/ice_colony/ground_wire{ dir = 8 }, /obj/item/lightstick/planted, -/turf/open/auto_turf/snow/layer0, +/turf/open/auto_turf/snow/layer3, /area/shiva/interior/caves/cp_camp) "gvz" = ( -/turf/open/floor{ - icon_state = "chapel" - }, +/turf/open/floor/chapel, /area/shiva/interior/colony/central) "gvT" = ( /obj/structure/flora/bush/ausbushes/lavendergrass{ @@ -11757,17 +9774,9 @@ }, /turf/open/auto_turf/snow/layer3, /area/shiva/interior/colony/medseceng) -"gvY" = ( -/obj/structure/prop/ice_colony/surveying_device{ - dir = 1 - }, -/turf/open/auto_turf/ice/layer0, -/area/shiva/interior/caves/cp_camp) "gwq" = ( /obj/structure/bed/chair/comfy/blue, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/botany) "gwA" = ( /obj/structure/prop/invuln/ice_prefab/roof_greeble{ @@ -11779,14 +9788,10 @@ /area/shiva/interior/caves/cp_camp) "gxK" = ( /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/aerodrome) "gxN" = ( -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/shiva/interior/valley_huts/disposals) "gxW" = ( /obj/structure/closet/cabinet, @@ -11821,10 +9826,7 @@ /turf/open/floor/plating/plating_catwalk/shiva, /area/shiva/interior/telecomm/lz1_biceps) "gAV" = ( -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellowfull" - }, +/turf/open/floor/shiva/yellowfull/west, /area/shiva/interior/colony/research_hab) "gBc" = ( /obj/structure/surface/table, @@ -11838,9 +9840,7 @@ /area/shiva/exterior/junkyard) "gBr" = ( /obj/structure/machinery/body_scanconsole, -/turf/open/floor/shiva{ - icon_state = "wred" - }, +/turf/open/floor/shiva/wred, /area/shiva/interior/colony/medseceng) "gBH" = ( /obj/structure/machinery/door/airlock/almayer/generic{ @@ -11857,10 +9857,7 @@ "gCy" = ( /obj/structure/surface/table, /obj/item/device/flashlight, -/turf/open/floor/shiva{ - dir = 6; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/southeast, /area/shiva/interior/garage) "gCL" = ( /obj/effect/decal/cleanable/dirt, @@ -11875,9 +9872,7 @@ /area/shiva/exterior/cp_colony_grounds) "gDz" = ( /obj/item/device/flashlight/lamp/tripod, -/turf/open/floor/shiva{ - icon_state = "snow_mat" - }, +/turf/open/floor/shiva/snow_mat, /area/shiva/interior/colony/botany) "gEk" = ( /obj/structure/prop/invuln/ice_prefab/roof_greeble{ @@ -11887,14 +9882,18 @@ }, /turf/closed/wall/shiva/ice, /area/shiva/interior/caves/cp_camp) +"gEn" = ( +/obj/structure/machinery/portable_atmospherics/powered/scrubber{ + icon_state = "psiphon:1" + }, +/turf/open/auto_turf/snow/layer1, +/area/shiva/interior/caves/cp_camp) "gFb" = ( /obj/structure/surface/table, /obj/structure/window{ dir = 1 }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/shiva/interior/colony/research_hab) "gFe" = ( /obj/structure/machinery/door/airlock/almayer/command/colony{ @@ -11913,9 +9912,7 @@ pixel_x = 6; pixel_y = -7 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/aerodrome) "gGf" = ( /obj/item/ammo_magazine/rifle/m41aMK1, @@ -11926,9 +9923,7 @@ icon_state = "xgibdown1" }, /obj/structure/machinery/light/double, -/turf/open/floor/shiva{ - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull, /area/shiva/interior/colony/s_admin) "gGH" = ( /obj/structure/machinery/camera/autoname/lz_camera, @@ -11940,10 +9935,8 @@ /area/shiva/exterior/junkyard) "gHh" = ( /obj/structure/machinery/cm_vending/sorted/medical/no_access, -/turf/open/floor/shiva{ - dir = 9; - icon_state = "wred" - }, +/obj/structure/medical_supply_link, +/turf/open/floor/shiva/wred/northwest, /area/shiva/interior/colony/medseceng) "gHr" = ( /obj/structure/surface/table/reinforced/prison, @@ -11952,9 +9945,7 @@ /obj/structure/window/reinforced/tinted{ dir = 8 }, -/turf/open/floor/shiva{ - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull, /area/shiva/interior/colony/n_admin) "gHu" = ( /obj/item/explosive/grenade/custom/large, @@ -11965,9 +9956,7 @@ dir = 8 }, /obj/item/clipboard, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/central) "gIq" = ( /obj/structure/filingcabinet, @@ -11977,9 +9966,7 @@ pixel_y = -5 }, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/s_admin) "gIQ" = ( /obj/item/stack/sheet/metal, @@ -11991,28 +9978,19 @@ }, /turf/open/auto_turf/ice/layer1, /area/shiva/interior/caves/cp_camp) -"gJk" = ( -/obj/structure/platform/strata{ - dir = 4 - }, -/turf/open/auto_turf/snow/layer2, -/area/shiva/exterior/lz1_valley) "gJo" = ( /turf/open/auto_turf/ice/layer1, /area/shiva/exterior/junkyard/cp_bar) +"gJF" = ( +/obj/item/lightstick/red/variant/planted, +/turf/open/auto_turf/snow/layer0, +/area/shiva/exterior/cp_s_research) "gJI" = ( /obj/structure/surface/rack, /obj/item/stack/cable_coil, /obj/item/tool/crowbar, /turf/open/auto_turf/snow/layer2, /area/shiva/exterior/cp_lz2) -"gKf" = ( -/obj/structure/machinery/light/double{ - dir = 8; - pixel_y = -5 - }, -/turf/open/floor/shiva, -/area/shiva/interior/bar) "gKE" = ( /obj/structure/surface/table, /obj/item/stock_parts/matter_bin{ @@ -12021,9 +9999,7 @@ }, /obj/item/ashtray/glass, /obj/item/trash/cigbutt, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/research_hab) "gKQ" = ( /obj/structure/machinery/light/small{ @@ -12033,9 +10009,7 @@ /area/shiva/interior/colony/botany) "gLu" = ( /obj/structure/closet/secure_closet/personal, -/turf/open/floor/shiva{ - icon_state = "red" - }, +/turf/open/floor/shiva/red, /area/shiva/interior/colony/medseceng) "gLv" = ( /obj/effect/decal/cleanable/blood/drip, @@ -12048,10 +10022,7 @@ /area/shiva/interior/colony/central) "gMP" = ( /obj/structure/machinery/space_heater, -/turf/open/floor/shiva{ - dir = 9; - icon_state = "wred" - }, +/turf/open/floor/shiva/wred/northwest, /area/shiva/interior/colony/medseceng) "gNw" = ( /obj/structure/prop/invuln/minecart_tracks{ @@ -12060,11 +10031,14 @@ /turf/open/auto_turf/ice/layer1, /area/shiva/interior/caves/s_lz2) "gNF" = ( -/turf/open/floor/shiva{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/west, /area/shiva/interior/colony/central) +"gNJ" = ( +/obj/structure/platform/shiva/catwalk{ + dir = 1 + }, +/turf/open/auto_turf/snow/layer2, +/area/shiva/exterior/valley) "gNM" = ( /obj/item/lightstick/red/spoke/planted{ layer = 2.99; @@ -12084,10 +10058,7 @@ pixel_y = 4 }, /obj/item/weapon/ice_axe, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/west, /area/shiva/interior/colony/botany) "gPg" = ( /turf/open/auto_turf/snow/layer2, @@ -12099,9 +10070,7 @@ /area/shiva/interior/colony/central) "gPZ" = ( /obj/item/stack/sheet/metal/medium_stack, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) "gQx" = ( /obj/structure/surface/table/reinforced/prison, @@ -12109,9 +10078,7 @@ pixel_x = -4; pixel_y = 5 }, -/turf/open/floor/shiva{ - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull, /area/shiva/interior/colony/n_admin) "gQy" = ( /obj/structure/flora/bush/snow{ @@ -12128,6 +10095,16 @@ dir = 10 }, /area/shiva/interior/aerodrome) +"gQK" = ( +/obj/structure/platform/strata{ + dir = 8 + }, +/obj/structure/platform/strata{ + dir = 4 + }, +/obj/structure/platform/strata, +/turf/open/gm/river, +/area/shiva/interior/caves/research_caves) "gQL" = ( /obj/structure/closet/cabinet, /obj/item/clothing/under/darkred, @@ -12155,9 +10132,7 @@ /area/shiva/interior/caves/cp_camp) "gRG" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/shiva{ - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull, /area/shiva/interior/colony/central) "gRJ" = ( /obj/item/clothing/shoes/snow, @@ -12183,23 +10158,16 @@ "gSb" = ( /obj/structure/filingcabinet, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/n_admin) "gSG" = ( /obj/effect/decal/cleanable/blood/drip, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "wred" - }, +/turf/open/floor/shiva/wred/west, /area/shiva/interior/colony/medseceng) "gSJ" = ( /obj/structure/machinery/vending/cola/research, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/shiva/interior/colony/research_hab) "gTe" = ( /obj/structure/machinery/gibber, @@ -12215,15 +10183,11 @@ pixel_y = 4 }, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/shiva{ - icon_state = "yellowfull" - }, +/turf/open/floor/shiva/yellowfull, /area/shiva/interior/colony/research_hab) "gTU" = ( /obj/vehicle/train/cargo/trolley, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/research_hab) "gUc" = ( /turf/closed/shuttle/elevator{ @@ -12232,16 +10196,11 @@ /area/shiva/interior/aerodrome) "gVh" = ( /obj/structure/window/framed/shiva, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/botany) "gVJ" = ( /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/shiva{ - dir = 9; - icon_state = "green" - }, +/turf/open/floor/shiva/green/northwest, /area/shiva/interior/colony/botany) "gWk" = ( /obj/structure/window/framed/shiva, @@ -12252,11 +10211,12 @@ dir = 1; pixel_y = 9 }, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "wred" - }, +/turf/open/floor/shiva/wred/north, /area/shiva/interior/colony/medseceng) +"gXu" = ( +/obj/structure/largecrate/random/barrel/green, +/turf/open/auto_turf/snow/layer1, +/area/shiva/interior/caves/cp_camp) "gXS" = ( /turf/open/auto_turf/ice/layer1, /area/shiva/interior/colony/medseceng) @@ -12275,14 +10235,20 @@ /obj/item/weapon/ice_axe/red{ pixel_y = -4 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, -/area/shiva/interior/lz2_habs) +/turf/open/floor/shiva/floor3, +/area/shiva/interior/aux_power) "gYu" = ( /obj/item/lightstick/red/planted, /turf/open/auto_turf/snow/layer0, /area/shiva/exterior/cp_colony_grounds) +"gZi" = ( +/obj/structure/closet/toolcloset, +/turf/open/auto_turf/snow/layer3, +/area/shiva/exterior/cp_s_research) +"gZk" = ( +/obj/effect/landmark/hunter_primary, +/turf/open/auto_turf/ice/layer1, +/area/shiva/interior/caves/cp_camp) "gZG" = ( /obj/structure/machinery/door/airlock/almayer/medical/colony{ dir = 2; @@ -12300,32 +10266,33 @@ "hab" = ( /obj/structure/surface/table, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/central) "hbo" = ( /obj/structure/platform/strata, /turf/open/auto_turf/ice/layer1, /area/shiva/interior/oob/dev_room) +"hbp" = ( +/obj/structure/stairs/perspective/ice{ + dir = 1; + icon_state = "p_stair_full" + }, +/turf/open/auto_turf/snow/layer4, +/area/shiva/exterior/junkyard) "hbu" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/reagent_container/food/snacks/flour{ pixel_x = -3; pixel_y = 7 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/shiva/interior/bar) "hbB" = ( -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/warehouse/caves) "hbD" = ( /obj/structure/flora/grass/tallgrass/ice/corner{ - dir = 10 + dir = 6 }, /turf/open/auto_turf/snow/layer2, /area/shiva/exterior/lz1_valley) @@ -12337,20 +10304,18 @@ /area/shiva/interior/telecomm/lz1_biceps) "hfm" = ( /obj/item/paper/research_notes/good, -/turf/open/floor/shiva{ - icon_state = "floor3" +/turf/open/floor/shiva/floor3, +/area/shiva/interior/colony/research_hab) +"hfw" = ( +/obj/structure/machinery/light/double{ + dir = 8; + pixel_y = -5 }, +/turf/open/floor/shiva/redfull/west, /area/shiva/interior/colony/research_hab) "hfN" = ( /obj/structure/surface/table, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "wred" - }, -/area/shiva/interior/colony/medseceng) -"hgx" = ( -/obj/structure/machinery/power/geothermal, -/turf/open/floor/plating, +/turf/open/floor/shiva/wred/west, /area/shiva/interior/colony/medseceng) "hgI" = ( /obj/structure/flora/bush/ausbushes/lavendergrass, @@ -12362,6 +10327,18 @@ /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, /turf/open/floor/plating/plating_catwalk/shiva, /area/shiva/interior/telecomm/lz1_biceps) +"hhT" = ( +/obj/structure/platform/strata{ + dir = 8 + }, +/turf/open/auto_turf/snow/layer3, +/area/shiva/exterior/lz1_valley) +"hic" = ( +/obj/structure/platform_decoration/strata{ + dir = 4 + }, +/turf/open/auto_turf/snow/layer2, +/area/shiva/exterior/lz1_valley) "hif" = ( /obj/structure/bed/chair/office/dark{ dir = 8 @@ -12369,25 +10346,25 @@ /obj/structure/window/reinforced/tinted{ dir = 4 }, -/turf/open/floor/shiva{ - icon_state = "red" - }, +/turf/open/floor/shiva/red, /area/shiva/interior/colony/medseceng) "hin" = ( /obj/structure/machinery/disposal, /turf/open/floor/wood, /area/shiva/interior/colony/central) -"hju" = ( -/turf/open/floor/shiva{ - dir = 8; - icon_state = "multi_tiles" +"hip" = ( +/obj/structure/platform/strata, +/obj/structure/platform/strata{ + dir = 4 }, +/turf/open/gm/river, +/area/shiva/interior/warehouse/caves) +"hju" = ( +/turf/open/floor/shiva/multi_tiles/west, /area/shiva/interior/colony/botany) "hjx" = ( /obj/item/stack/sheet/metal, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) "hkC" = ( /obj/item/lightstick/red/planted, @@ -12400,10 +10377,14 @@ }, /turf/open/asphalt/cement, /area/shiva/interior/warehouse) -"hlh" = ( -/obj/item/tool/pickaxe, -/turf/open/auto_turf/ice/layer1, -/area/shiva/interior/caves/cp_camp) +"hkZ" = ( +/obj/structure/prop/invuln/ice_prefab/roof_greeble{ + icon_state = "vent4"; + pixel_x = -4; + pixel_y = 10 + }, +/turf/open/auto_turf/snow/layer3, +/area/shiva/exterior/cp_s_research) "hlm" = ( /obj/structure/bed/chair{ dir = 8 @@ -12413,9 +10394,7 @@ "hlO" = ( /obj/structure/foamed_metal, /obj/effect/decal/cleanable/ash, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) "hmo" = ( /obj/effect/decal/cleanable/dirt, @@ -12423,25 +10402,18 @@ /turf/open/asphalt/cement, /area/shiva/interior/warehouse) "hms" = ( -/turf/open/floor/shiva{ - dir = 4; - icon_state = "wred" - }, +/turf/open/floor/shiva/wred/east, /area/shiva/interior/colony/medseceng) "hmI" = ( /obj/effect/landmark/corpsespawner/colonist/random, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/central) "hmQ" = ( /obj/structure/filingcabinet/filingcabinet{ name = "mail bins" }, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/botany) "hmU" = ( /obj/structure/largecrate/random/mini/wooden{ @@ -12458,10 +10430,7 @@ /turf/open/auto_turf/snow/layer1, /area/shiva/exterior/junkyard) "hnc" = ( -/turf/open/floor/shiva{ - dir = 8; - icon_state = "purplefull" - }, +/turf/open/floor/shiva/purplefull/west, /area/shiva/exterior/lz2_fortress) "hnf" = ( /obj/effect/decal/cleanable/blood, @@ -12469,14 +10438,15 @@ icon_state = "3" }, /obj/effect/landmark/corpsespawner/engineer, -/turf/open/floor/shiva{ - dir = 5; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/northeast, /area/shiva/interior/colony/medseceng) "hng" = ( /turf/closed/wall/shiva/ice, /area/shiva/exterior/cp_colony_grounds) +"hnj" = ( +/obj/item/lightstick/red/variant/planted, +/turf/open/auto_turf/snow/layer3, +/area/shiva/interior/caves/cp_camp) "hnw" = ( /obj/structure/coatrack, /turf/open/floor/wood, @@ -12486,14 +10456,10 @@ /obj/structure/prop/ice_colony/ice_crystal{ dir = 10 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/lz2_habs) "hpc" = ( -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/caves/s_lz2) "hpm" = ( /obj/structure/largecrate/random/mini{ @@ -12518,9 +10484,7 @@ dir = 4 }, /obj/structure/machinery/landinglight/ds2/delaytwo, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) "hqd" = ( /obj/structure/prop/invuln/ice_prefab{ @@ -12530,18 +10494,13 @@ /turf/open/auto_turf/snow/layer2, /area/shiva/exterior/cp_lz2) "hqh" = ( -/turf/open/floor/shiva{ - dir = 4; - icon_state = "greencorners" - }, +/turf/open/floor/shiva/greencorners/east, /area/shiva/interior/colony/botany) "hqC" = ( /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/medseceng) "hrb" = ( /obj/structure/surface/table, @@ -12558,21 +10517,13 @@ /obj/structure/urinal{ pixel_y = 32 }, -/turf/open/floor/shiva{ - icon_state = "wredfull" - }, +/turf/open/floor/shiva/wredfull, /area/shiva/interior/colony/medseceng) -"hsu" = ( -/turf/open/auto_turf/ice/layer2, -/area/shiva/interior/caves/left_spiders) "hsw" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/circuitboard, /obj/item/tool/screwdriver, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull/west, /area/shiva/interior/aerodrome) "hsZ" = ( /obj/structure/prop/invuln/ice_prefab/trim{ @@ -12586,14 +10537,10 @@ /area/shiva/exterior/cp_lz2) "htb" = ( /obj/effect/decal/cleanable/blood/oil/streak, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/garage) "htC" = ( -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/shiva/exterior/cp_colony_grounds) "hul" = ( /obj/structure/barricade/metal{ @@ -12601,16 +10548,11 @@ health = 130 }, /obj/item/stack/barbed_wire, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/botany) "hum" = ( /obj/structure/foamed_metal, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/east, /area/shiva/exterior/lz2_fortress) "huv" = ( /obj/structure/barricade/handrail/wire{ @@ -12637,29 +10579,20 @@ /obj/structure/bed/chair/office/light{ dir = 8 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/s_admin) "hwA" = ( -/turf/open/floor/shiva{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/shiva/red/west, /area/shiva/interior/colony/medseceng) "hwJ" = ( /obj/structure/machinery/door/airlock/almayer/secure/colony{ name = "Underground Morgue" }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/central) "hxf" = ( /obj/structure/surface/table, -/turf/open/floor/shiva{ - icon_state = "radiator_tile" - }, +/turf/open/floor/shiva/radiator_tile, /area/shiva/exterior/cp_lz2) "hxk" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ @@ -12672,10 +10605,17 @@ /obj/structure/flora/tree/dead/tree_2, /turf/open/auto_turf/snow/layer3, /area/shiva/exterior/cp_s_research) -"hyu" = ( -/turf/open/floor/shiva{ - icon_state = "bluefull" +"hye" = ( +/obj/structure/prop/ice_colony/flamingo{ + dir = 1 }, +/obj/structure/platform_decoration/shiva/catwalk{ + dir = 8 + }, +/turf/open/auto_turf/snow/layer2, +/area/shiva/exterior/junkyard) +"hyu" = ( +/turf/open/floor/shiva/bluefull, /area/shiva/interior/colony/s_admin) "hyw" = ( /obj/structure/flora/bush/snow{ @@ -12695,18 +10635,14 @@ pixel_x = 4; pixel_y = 9 }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/shiva/interior/colony/research_hab) "hzJ" = ( /turf/closed/wall/shiva/prefabricated/reinforced, /area/shiva/exterior/lz1_valley) "hzZ" = ( /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/medseceng) "hAS" = ( /turf/open/floor/interior/plastic/alt, @@ -12715,6 +10651,10 @@ /obj/structure/machinery/door/airlock/multi_tile/almayer/generic, /turf/open/floor/plating, /area/shiva/interior/colony/research_hab) +"hBn" = ( +/obj/effect/landmark/hunter_secondary, +/turf/open/auto_turf/snow/layer2, +/area/shiva/interior/caves/cp_camp) "hBq" = ( /turf/open/auto_turf/snow/layer4, /area/shiva/interior/caves/cp_camp) @@ -12723,9 +10663,7 @@ dir = 8; pixel_x = -24 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/s_admin) "hBN" = ( /obj/structure/machinery/light/double{ @@ -12734,9 +10672,7 @@ }, /obj/item/clothing/under/colonist, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/botany) "hCa" = ( /obj/structure/prop/ice_colony/ground_wire{ @@ -12748,16 +10684,14 @@ /obj/structure/prop/ice_colony/ground_wire{ dir = 8 }, -/turf/open/auto_turf/snow/layer0, +/turf/open/auto_turf/snow/layer3, /area/shiva/interior/caves/cp_camp) "hCt" = ( /obj/structure/machinery/firealarm{ dir = 8; pixel_x = -24 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/s_admin) "hCX" = ( /obj/item/storage/box/donkpockets, @@ -12766,10 +10700,7 @@ dir = 8; pixel_x = 24 }, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/shiva/red/east, /area/shiva/interior/colony/medseceng) "hCY" = ( /obj/structure/bed/chair/comfy/orange{ @@ -12779,15 +10710,11 @@ /area/shiva/interior/colony/research_hab) "hDd" = ( /obj/item/lightstick/red/spoke, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/bar) "hDo" = ( /obj/structure/girder/reinforced, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) "hDs" = ( /obj/vehicle/train/cargo/engine, @@ -12826,7 +10753,7 @@ icon_state = "p_stair_sn_full_cap" }, /obj/structure/platform/shiva/catwalk{ - dir = 8 + dir = 4 }, /turf/open/floor/plating, /area/shiva/interior/aerodrome) @@ -12840,6 +10767,18 @@ }, /turf/open/floor/plating, /area/shiva/interior/colony/deck) +"hEx" = ( +/obj/item/lightstick/red/spoke/planted{ + pixel_x = 12; + pixel_y = 25 + }, +/turf/open/auto_turf/snow/layer0, +/area/shiva/interior/caves/cp_camp) +"hEB" = ( +/obj/structure/surface/rack, +/obj/item/tool/lighter/zippo, +/turf/open/auto_turf/snow/layer0, +/area/shiva/exterior/cp_s_research) "hEE" = ( /obj/structure/barricade/handrail/wire{ dir = 8; @@ -12857,9 +10796,7 @@ "hFJ" = ( /obj/structure/closet, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/aerodrome) "hGj" = ( /obj/structure/machinery/door/poddoor/shutters/almayer{ @@ -12869,10 +10806,7 @@ /turf/open/floor/plating, /area/shiva/interior/aerodrome) "hGH" = ( -/turf/open/floor/shiva{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/shiva/red/east, /area/shiva/interior/colony/medseceng) "hHf" = ( /obj/structure/largecrate, @@ -12887,6 +10821,15 @@ }, /turf/open/auto_turf/snow/layer1, /area/shiva/exterior/junkyard/fortbiceps) +"hHR" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W-corner" + }, +/obj/structure/barricade/metal{ + dir = 4 + }, +/turf/open/floor/plating, +/area/shiva/exterior/junkyard) "hHV" = ( /obj/structure/surface/table, /obj/structure/machinery/cell_charger, @@ -12894,10 +10837,7 @@ dir = 4; pixel_y = -5 }, -/turf/open/floor/shiva{ - dir = 6; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/southeast, /area/shiva/interior/colony/medseceng) "hHY" = ( /obj/structure/barricade/metal{ @@ -12905,12 +10845,6 @@ }, /turf/open/floor/plating/plating_catwalk/shiva, /area/shiva/exterior/lz2_fortress) -"hIn" = ( -/obj/structure/platform_decoration/strata{ - dir = 8 - }, -/turf/open/auto_turf/snow/layer2, -/area/shiva/exterior/lz1_valley) "hIu" = ( /obj/structure/surface/rack, /obj/item/device/radio{ @@ -12927,34 +10861,23 @@ /area/shiva/exterior/cp_colony_grounds) "hIC" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/garage) "hIM" = ( /obj/structure/flora/tree/dead/tree_4, /turf/open/auto_turf/snow/layer3, /area/shiva/exterior/cp_colony_grounds) -"hJd" = ( -/obj/structure/prop/ice_colony/soil_net, -/turf/open/auto_turf/snow/layer1, -/area/shiva/exterior/valley) "hJH" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony, /turf/open/floor/plating, /area/shiva/interior/colony/central) "hKR" = ( -/turf/open/floor/shiva{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/shiva/green/north, /area/shiva/interior/colony/botany) "hKS" = ( /obj/effect/landmark/static_comms/net_two, -/turf/open/floor/shiva{ - dir = 1 - }, -/area/shiva/interior/lz2_habs) +/turf/open/floor/shiva/north, +/area/shiva/interior/aux_power) "hLf" = ( /turf/closed/wall/shiva/prefabricated, /area/shiva/interior/colony/n_admin) @@ -12964,9 +10887,7 @@ dir = 1; pixel_y = 9 }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/shiva/interior/colony/research_hab) "hLE" = ( /obj/item/lightstick/red/variant, @@ -12981,16 +10902,11 @@ dir = 4; pixel_y = -5 }, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "wred" - }, +/turf/open/floor/shiva/wred/east, /area/shiva/interior/colony/medseceng) "hMY" = ( /obj/structure/machinery/vending/cigarette/colony, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/shiva/interior/colony/research_hab) "hPp" = ( /turf/closed/wall/shiva/prefabricated/orange, @@ -13011,10 +10927,7 @@ /obj/effect/decal/cleanable/blood/drip{ icon_state = "3" }, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "wredcorners" - }, +/turf/open/floor/shiva/wredcorners/north, /area/shiva/interior/colony/medseceng) "hQW" = ( /obj/structure/machinery/light/double{ @@ -13035,18 +10948,11 @@ /obj/structure/machinery/light/double, /turf/open/asphalt/cement, /area/shiva/interior/warehouse) -"hRF" = ( -/obj/structure/inflatable, -/turf/open/auto_turf/snow/layer2, -/area/shiva/exterior/research_alley) "hRK" = ( /obj/effect/decal/cleanable/blood/drip{ icon_state = "3" }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellowfull" - }, +/turf/open/floor/shiva/yellowfull/west, /area/shiva/interior/colony/medseceng) "hRQ" = ( /obj/structure/prop/invuln/minecart_tracks{ @@ -13054,6 +10960,12 @@ }, /turf/open/auto_turf/ice/layer1, /area/shiva/interior/caves/s_lz2) +"hRY" = ( +/obj/structure/stairs/perspective/ice{ + icon_state = "p_stair_full" + }, +/turf/open/auto_turf/ice/layer0, +/area/shiva/interior/warehouse/caves) "hSa" = ( /obj/effect/landmark/static_comms/net_two, /turf/open/auto_turf/ice/layer1, @@ -13066,9 +10978,7 @@ /obj/structure/machinery/landinglight/ds2/delaythree{ dir = 4 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/exterior/lz2_fortress) "hSW" = ( /obj/item/lightstick/red/spoke/planted{ @@ -13095,9 +11005,7 @@ /obj/item/device/implanter/subdermal_armor{ pixel_x = 12 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/research_hab) "hTk" = ( /obj/structure/bookcase/manuals/medical, @@ -13126,13 +11034,17 @@ }, /turf/open/auto_turf/snow/layer4, /area/shiva/exterior/cp_lz2) +"hUA" = ( +/obj/structure/largecrate/random/secure, +/obj/item/ashtray/bronze{ + pixel_y = 7 + }, +/turf/open/auto_turf/snow/layer2, +/area/shiva/exterior/cp_s_research) "hUG" = ( /obj/effect/landmark/xeno_hive_spawn, /obj/effect/landmark/ert_spawns/groundside_xeno, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/west, /area/shiva/interior/colony/research_hab) "hUM" = ( /obj/structure/bed/chair/office/dark{ @@ -13140,13 +11052,6 @@ }, /turf/open/floor/wood, /area/shiva/interior/colony/medseceng) -"hVr" = ( -/obj/effect/landmark/objective_landmark/science, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "snow_mat" - }, -/area/shiva/interior/caves/cp_camp) "hVs" = ( /obj/structure/surface/table, /obj/item/evidencebag{ @@ -13155,9 +11060,7 @@ /turf/open/floor/shiva, /area/shiva/interior/colony/research_hab) "hWh" = ( -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/deck) "hWK" = ( /obj/structure/prop/ice_colony/dense/planter_box{ @@ -13176,16 +11079,6 @@ }, /turf/open/auto_turf/snow/layer2, /area/shiva/exterior/junkyard) -"hWY" = ( -/obj/structure/machinery/light/double{ - dir = 4; - pixel_y = -5 - }, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "multi_tiles" - }, -/area/shiva/interior/colony/research_hab) "hXB" = ( /obj/structure/flora/grass/tallgrass/ice, /turf/open/auto_turf/snow/layer2, @@ -13211,18 +11104,14 @@ /area/shiva/interior/colony/central) "hYf" = ( /obj/effect/decal/cleanable/blood/gibs/xeno/up, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/central) "hYT" = ( /obj/structure/machinery/washing_machine, /obj/structure/machinery/washing_machine{ pixel_y = 15 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/botany) "hZu" = ( /obj/structure/machinery/landinglight/ds2{ @@ -13231,9 +11120,7 @@ /obj/structure/machinery/landinglight/ds2/delaythree{ dir = 8 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) "hZI" = ( /obj/structure/largecrate/random/mini/small_case/b{ @@ -13250,9 +11137,7 @@ /area/shiva/interior/colony/n_admin) "iaj" = ( /obj/structure/machinery/vending/snack, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/botany) "iaK" = ( /obj/structure/bed/chair/comfy/beige, @@ -13260,23 +11145,23 @@ /area/shiva/interior/colony/research_hab) "ibN" = ( /obj/structure/machinery/light/double, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/central) -"icC" = ( +"ibP" = ( +/obj/structure/closet/toolcloset, /obj/structure/machinery/light/double{ dir = 8; pixel_y = -5 }, -/turf/open/floor/shiva{ - dir = 1 +/turf/open/floor/shiva/floor3, +/area/shiva/interior/aerodrome) +"icC" = ( +/obj/structure/machinery/light/double{ + dir = 8; + pixel_y = -5 }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/deck) -"idG" = ( -/obj/structure/flora/tree/dead/tree_4, -/turf/open/auto_turf/snow/layer2, -/area/shiva/exterior/lz1_valley) "idR" = ( /obj/structure/platform_decoration/strata{ dir = 1 @@ -13287,22 +11172,13 @@ /obj/structure/prop/souto_land/streamer{ dir = 9 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/shiva/interior/bar) -"iel" = ( -/obj/structure/prop/ice_colony/surveying_device, -/turf/open/auto_turf/ice/layer1, -/area/shiva/interior/caves/research_caves) "ieo" = ( /obj/structure/bed/chair/office/light{ dir = 4 }, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/shiva/blue/east, /area/shiva/interior/colony/n_admin) "iey" = ( /obj/structure/flora/bush/snow{ @@ -13319,10 +11195,7 @@ /area/shiva/interior/warehouse) "ift" = ( /obj/effect/landmark/xeno_spawn, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull/west, /area/shiva/interior/colony/research_hab) "ifN" = ( /obj/structure/surface/rack, @@ -13337,48 +11210,30 @@ dir = 1; pixel_y = 9 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/medseceng) -"ifQ" = ( -/obj/effect/landmark/nightmare{ - insert_tag = "labs-cave-complete" - }, -/turf/closed/wall/shiva/ice, -/area/shiva/interior/oob) "igl" = ( /obj/item/paper_bin, /obj/item/tool/pen/blue, /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/shiva/red/north, /area/shiva/interior/colony/medseceng) "igr" = ( /obj/structure/bedsheetbin, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/botany) "igJ" = ( /obj/effect/landmark/objective_landmark/science, /turf/open/floor/plating, /area/shiva/interior/caves/research_caves) "igN" = ( -/turf/open/floor/shiva{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/east, /area/shiva/interior/colony/deck) "ihh" = ( /obj/structure/surface/table, /obj/item/clipboard, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/medseceng) "ihp" = ( /obj/structure/surface/table/woodentable, @@ -13397,20 +11252,20 @@ pixel_x = 4; pixel_y = 9 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/botany) "iji" = ( /obj/effect/decal/cleanable/blood/gibs/core, /obj/effect/landmark/corpsespawner/wygoon, /turf/open/auto_turf/ice/layer1, /area/shiva/interior/colony/central) +"ijm" = ( +/obj/structure/blocker/forcefield/multitile_vehicles, +/turf/open/auto_turf/ice/layer2, +/area/shiva/interior/warehouse/caves) "ijq" = ( /obj/structure/largecrate/random/case/double, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/lz2_habs) "ijA" = ( /obj/structure/prop/invuln/ice_prefab{ @@ -13419,6 +11274,13 @@ /obj/structure/fence, /turf/open/auto_turf/snow/layer3, /area/shiva/exterior/cp_lz2) +"ijE" = ( +/obj/structure/platform/strata, +/obj/structure/platform/strata{ + dir = 8 + }, +/turf/open/gm/river, +/area/shiva/interior/caves/research_caves) "ijP" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony{ dir = 1; @@ -13437,35 +11299,29 @@ /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/shiva/interior/colony/n_admin) "ilh" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "wred" - }, +/turf/open/floor/shiva/wred/west, /area/shiva/interior/colony/medseceng) "ilo" = ( /obj/structure/machinery/light/double{ dir = 1; pixel_y = 9 }, -/turf/open/floor/shiva{ - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull, /area/shiva/interior/colony/central) "ilt" = ( /obj/structure/closet/fireaxecabinet{ pixel_y = 32 }, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/north, /area/shiva/interior/colony/medseceng) +"ilW" = ( +/obj/item/lightstick/planted, +/turf/open/auto_turf/snow/layer1, +/area/shiva/interior/caves/cp_camp) "imk" = ( /obj/effect/spider/stickyweb, /turf/open/auto_turf/ice/layer1, @@ -13475,9 +11331,7 @@ dir = 4; icon_state = "sandbag_0" }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/exterior/lz2_fortress) "inJ" = ( /turf/open/floor/wood, @@ -13486,10 +11340,6 @@ /obj/effect/decal/cleanable/blood/oil/streak, /turf/open/auto_turf/snow/layer0, /area/shiva/interior/warehouse) -"ipc" = ( -/obj/vehicle/train/cargo/trolley, -/turf/open/auto_turf/snow/layer0, -/area/shiva/exterior/lz1_valley) "ipP" = ( /obj/structure/machinery/colony_floodlight, /turf/open/auto_turf/snow/layer3, @@ -13500,9 +11350,7 @@ /obj/item/weapon/gun/smg/pps43, /obj/item/ammo_magazine/smg/pps43, /obj/item/ammo_magazine/smg/pps43, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/medseceng) "iqh" = ( /obj/item/device/flashlight, @@ -13517,10 +11365,7 @@ dir = 5; pixel_y = -5 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellowfull" - }, +/turf/open/floor/shiva/yellowfull/west, /area/shiva/interior/colony/research_hab) "iqA" = ( /obj/effect/decal/cleanable/blood{ @@ -13541,17 +11386,12 @@ dir = 8; pixel_y = -5 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/west, /area/shiva/interior/colony/botany) "irk" = ( /obj/structure/surface/table, /obj/item/reagent_container/food/snacks/boiledspagetti, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/shiva/interior/colony/central) "irt" = ( /obj/structure/barricade/metal{ @@ -13560,16 +11400,12 @@ /obj/structure/barricade/metal{ layer = 3 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/exterior/lz2_fortress) "irx" = ( /obj/structure/surface/table, /obj/item/reagent_container/food/snacks/cheeseburger, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/shiva/interior/colony/central) "irT" = ( /obj/structure/platform/strata{ @@ -13582,23 +11418,16 @@ /obj/structure/bed/chair/office/light{ dir = 4 }, -/turf/open/floor/shiva{ - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull, /area/shiva/interior/colony/n_admin) "isU" = ( /obj/structure/machinery/vending/snack, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/central) "itG" = ( /obj/structure/closet/secure_closet/security, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/shiva{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/shiva/red/southwest, /area/shiva/interior/colony/medseceng) "itH" = ( /obj/structure/largecrate/random/secure, @@ -13622,25 +11451,18 @@ /turf/open/floor/interior/plastic, /area/shiva/interior/warehouse) "itW" = ( -/turf/open/floor/shiva{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/shiva/red/north, /area/shiva/interior/colony/central) "iuz" = ( /obj/effect/decal/cleanable/blood/drip, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/s_admin) "iuI" = ( /obj/structure/prop/invuln/ice_prefab, /turf/open/auto_turf/snow/layer2, /area/shiva/exterior/cp_lz2) "iuK" = ( -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/exterior/lz2_fortress) "iuM" = ( /obj/item/weapon/gun/shotgun/pump/dual_tube/cmb, @@ -13648,24 +11470,18 @@ layer = 3 }, /obj/effect/landmark/corpsespawner/bridgeofficer, -/turf/open/floor/shiva{ - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull, /area/shiva/interior/colony/s_admin) "iuR" = ( /obj/structure/dispenser, -/turf/open/floor/shiva{ - icon_state = "yellowfull" - }, +/turf/open/floor/shiva/yellowfull, /area/shiva/interior/colony/medseceng) "iuX" = ( /obj/structure/platform/shiva/catwalk{ dir = 8 }, /obj/structure/largecrate/random/mini/med, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) "ivl" = ( /obj/structure/machinery/alarm{ @@ -13679,26 +11495,37 @@ dir = 1; name = "\improper Underground Chapel" }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/shiva/interior/colony/central) "ivy" = ( /obj/structure/bed/chair/office/dark{ dir = 1 }, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/shiva/red/north, /area/shiva/interior/colony/medseceng) +"ivE" = ( +/obj/structure/platform/strata{ + dir = 1 + }, +/obj/structure/platform/strata{ + dir = 8 + }, +/turf/open/auto_turf/snow/layer1, +/area/shiva/exterior/lz1_valley) "ivS" = ( /obj/structure/filingcabinet, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/shiva{ - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull, /area/shiva/interior/colony/n_admin) +"ivU" = ( +/obj/structure/stairs/perspective{ + icon_state = "p_stair_full" + }, +/obj/structure/barricade/handrail/strata{ + dir = 8 + }, +/turf/open/floor/plating, +/area/shiva/exterior/valley) "iwn" = ( /obj/structure/surface/table, /obj/item/storage/box/bodybags, @@ -13706,9 +11533,7 @@ dir = 8; pixel_x = -24 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/central) "ixo" = ( /obj/structure/closet/secure_closet/personal, @@ -13732,10 +11557,7 @@ /area/shiva/interior/warehouse) "ixX" = ( /obj/structure/closet/toolcloset, -/turf/open/floor/shiva{ - dir = 10; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/southwest, /area/shiva/interior/colony/deck) "iyk" = ( /obj/structure/surface/table/reinforced/prison, @@ -13745,9 +11567,7 @@ /obj/item/reagent_container/food/snacks/cheesecakeslice{ pixel_y = 10 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/shiva/interior/bar) "iyP" = ( /obj/structure/surface/table/reinforced/prison, @@ -13762,9 +11582,7 @@ pixel_x = 7; pixel_y = 4 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/s_admin) "izt" = ( /obj/effect/decal/cleanable/blood/oil, @@ -13772,10 +11590,7 @@ dir = 4; pixel_y = -5 }, -/turf/open/floor/shiva{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/southeast, /area/shiva/interior/colony/central) "iAg" = ( /obj/structure/barricade/snow{ @@ -13788,10 +11603,7 @@ dir = 4; pixel_y = -5 }, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "green" - }, +/turf/open/floor/shiva/green/east, /area/shiva/interior/colony/botany) "iAG" = ( /obj/structure/cargo_container/horizontal/blue/middle, @@ -13806,16 +11618,11 @@ /obj/item/paper_bin, /obj/item/tool/pen/blue, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/s_admin) "iCs" = ( /obj/item/storage/firstaid/adv, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/shiva/green/north, /area/shiva/interior/colony/botany) "iCF" = ( /obj/item/lightstick/red/planted, @@ -13827,10 +11634,7 @@ dir = 8; pixel_y = 6 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull/west, /area/shiva/interior/colony/research_hab) "iCK" = ( /obj/item/storage/belt/medical{ @@ -13853,16 +11657,13 @@ /area/shiva/exterior/cp_lz2) "iDy" = ( /obj/structure/flora/grass/tallgrass/ice/corner{ - dir = 9 + dir = 4 }, /turf/open/auto_turf/snow/layer2, /area/shiva/exterior/lz1_valley) "iDN" = ( /obj/item/weapon/ice_axe/red, -/turf/open/floor/shiva{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/southeast, /area/shiva/interior/colony/botany) "iDW" = ( /obj/structure/stairs/perspective{ @@ -13870,7 +11671,7 @@ icon_state = "p_stair_sn_full_cap" }, /obj/structure/platform/shiva/catwalk{ - dir = 4 + dir = 8 }, /turf/open/floor/plating, /area/shiva/interior/aerodrome) @@ -13878,15 +11679,11 @@ /obj/structure/machinery/alarm{ pixel_y = 24 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/shiva/interior/colony/central) "iEp" = ( /obj/structure/machinery/space_heater, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/medseceng) "iEF" = ( /obj/structure/bed/chair/comfy/orange, @@ -13897,24 +11694,17 @@ dir = 1; pixel_y = 9 }, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/east, /area/shiva/interior/colony/botany) -"iGn" = ( -/obj/structure/machinery/light/double{ - dir = 4; - pixel_y = -5 +"iHu" = ( +/obj/structure/platform_decoration/shiva/catwalk{ + dir = 8 }, -/turf/open/floor/shiva, -/area/shiva/interior/bar) +/turf/open/auto_turf/snow/layer4, +/area/shiva/exterior/junkyard) "iHN" = ( /obj/effect/landmark/survivor_spawner, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "green" - }, +/turf/open/floor/shiva/green/east, /area/shiva/interior/colony/botany) "iHV" = ( /obj/structure/largecrate/random{ @@ -13937,15 +11727,22 @@ dir = 4; pixel_y = -5 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellowfull" - }, +/turf/open/floor/shiva/yellowfull/west, /area/shiva/interior/colony/research_hab) +"iIg" = ( +/obj/structure/stairs/perspective/ice{ + icon_state = "p_stair_sn_full_cap" + }, +/turf/open/auto_turf/ice/layer1, +/area/shiva/interior/caves/research_caves) "iIP" = ( /obj/item/device/flashlight/lamp/tripod/grey, /turf/open/auto_turf/ice/layer1, /area/shiva/interior/caves/s_lz2) +"iIR" = ( +/obj/structure/flora/bush/ausbushes/lavendergrass, +/turf/open/auto_turf/snow/layer2, +/area/shiva/exterior/cp_s_research) "iJr" = ( /obj/effect/decal/cleanable/blood{ icon_state = "gib6" @@ -13958,31 +11755,27 @@ /area/shiva/interior/colony/botany) "iJA" = ( /obj/structure/machinery/space_heater, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/west, /area/shiva/interior/colony/medseceng) "iJY" = ( -/turf/open/floor/shiva{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/shiva/red/north, /area/shiva/interior/colony/medseceng) +"iKW" = ( +/obj/structure/platform_decoration/shiva/catwalk{ + dir = 4 + }, +/turf/open/auto_turf/snow/layer1, +/area/shiva/exterior/junkyard) "iLf" = ( /obj/item/lightstick/red/spoke/planted{ pixel_x = 12; pixel_y = 25 }, -/turf/open/floor/shiva{ - icon_state = "radiator_tile" - }, +/turf/open/floor/shiva/radiator_tile, /area/shiva/exterior/lz2_fortress) "iLS" = ( /obj/item/stack/cable_coil/cut, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/deck) "iMb" = ( /turf/open/auto_turf/snow/layer2, @@ -14004,14 +11797,21 @@ dir = 4; icon_state = "gib6" }, -/turf/open/floor/shiva{ - icon_state = "wredfull" - }, +/turf/open/floor/shiva/wredfull, /area/shiva/interior/colony/medseceng) "iNX" = ( /obj/effect/decal/cleanable/blood, /turf/open/auto_turf/ice/layer1, /area/shiva/interior/colony/central) +"iOp" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S-corner" + }, +/obj/effect/decal/warning_stripes{ + icon_state = "E-corner" + }, +/turf/open/floor/plating, +/area/shiva/exterior/lz1_valley) "iOr" = ( /obj/structure/prop/invuln/ice_prefab{ dir = 9 @@ -14028,12 +11828,9 @@ pixel_y = 28 }, /turf/open/auto_turf/snow/layer0, -/area/shiva/exterior/lz1_valley) +/area/shiva/exterior/junkyard) "iPg" = ( -/turf/open/floor/shiva{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/west, /area/shiva/interior/colony/n_admin) "iPG" = ( /obj/structure/surface/table, @@ -14041,9 +11838,7 @@ pixel_x = 5; pixel_y = 3 }, -/turf/open/floor/shiva{ - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull, /area/shiva/interior/colony/medseceng) "iPU" = ( /obj/structure/surface/table, @@ -14051,10 +11846,8 @@ pixel_x = -4; pixel_y = 7 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, -/area/shiva/interior/lz2_habs) +/turf/open/floor/shiva/floor3, +/area/shiva/interior/aux_power) "iQe" = ( /obj/structure/barricade/handrail/wire{ dir = 8; @@ -14067,32 +11860,18 @@ /area/shiva/exterior/lz1_valley) "iQP" = ( /obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/east, /area/shiva/interior/colony/medseceng) "iRa" = ( /obj/structure/filingcabinet, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/medseceng) "iRh" = ( /obj/structure/surface/table, /obj/item/tool/surgery/scalpel, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/central) -"iSp" = ( -/obj/item/tool/screwdriver, -/turf/open/auto_turf/snow/layer0, -/area/shiva/exterior/research_alley) -"iSG" = ( -/turf/open/auto_turf/snow/layer3, -/area/shiva/exterior/research_alley) "iTQ" = ( /obj/structure/girder, /turf/open/floor/plating, @@ -14101,31 +11880,21 @@ /obj/structure/machinery/landinglight/ds2{ dir = 1 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) "iVj" = ( -/turf/open/floor/shiva{ - dir = 4; - icon_state = "snow_mat" - }, +/turf/open/floor/shiva/snow_mat/east, /area/shiva/exterior/cp_lz2) "iVT" = ( /obj/structure/surface/table, /obj/structure/largecrate/random/mini/chest/c{ pixel_y = 8 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "purplefull" - }, +/turf/open/floor/shiva/purplefull/west, /area/shiva/interior/lz2_habs) "iWa" = ( /obj/item/clipboard, -/turf/open/floor/shiva{ - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull, /area/shiva/interior/colony/medseceng) "iWg" = ( /obj/structure/barricade/handrail/strata{ @@ -14139,9 +11908,7 @@ layer = 2.9; pixel_y = 7 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/deck) "iWu" = ( /obj/structure/machinery/cm_vending/sorted/medical/wall_med/souto{ @@ -14156,15 +11923,11 @@ pixel_x = 8; pixel_y = 6 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/shiva/interior/bar) "iWO" = ( /obj/structure/machinery/vending/coffee, -/turf/open/floor/shiva{ - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull, /area/shiva/interior/colony/central) "iWS" = ( /obj/structure/prop/invuln/dense{ @@ -14193,9 +11956,7 @@ /area/shiva/interior/colony/research_hab) "iXc" = ( /obj/structure/machinery/space_heater, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/aerodrome) "iXk" = ( /obj/item/lightstick/variant/planted, @@ -14223,16 +11984,12 @@ pixel_y = 10 }, /obj/structure/surface/table, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, -/area/shiva/interior/lz2_habs) +/turf/open/floor/shiva/floor3, +/area/shiva/interior/aux_power) "iXE" = ( /obj/structure/closet/secure_closet/personal, /obj/effect/landmark/good_item, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/s_admin) "iXG" = ( /obj/structure/prop/ice_colony/dense/planter_box/hydro, @@ -14254,9 +12011,7 @@ /obj/effect/decal/cleanable/blood{ icon_state = "xgibdown1" }, -/turf/open/floor/shiva{ - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull, /area/shiva/interior/colony/central) "iYc" = ( /obj/structure/surface/table, @@ -14264,26 +12019,15 @@ pixel_x = -2; pixel_y = 5 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/research_hab) -"iYu" = ( -/obj/structure/surface/rack, -/obj/item/device/flashlight, -/obj/item/device/t_scanner, -/turf/open/auto_turf/snow/layer0, -/area/shiva/exterior/research_alley) "iYC" = ( /obj/structure/reagent_dispensers/watertank, /turf/open/floor/interior/plastic/alt, /area/shiva/interior/warehouse) "iYF" = ( /obj/item/device/flashlight/lamp/tripod, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "green" - }, +/turf/open/floor/shiva/green/west, /area/shiva/interior/colony/botany) "iZj" = ( /obj/structure/largecrate/random/barrel/green, @@ -14291,13 +12035,8 @@ /area/shiva/interior/warehouse/caves) "iZF" = ( /obj/effect/landmark/crap_item, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/garage) -"iZI" = ( -/turf/closed/wall/shiva/prefabricated/blue, -/area/shiva/interior/caves/cp_camp) "iZX" = ( /obj/structure/machinery/power/apc{ dir = 4; @@ -14310,29 +12049,28 @@ dir = 4 }, /turf/open/auto_turf/snow/layer3, -/area/shiva/exterior/lz1_valley) +/area/shiva/exterior/junkyard) "jay" = ( -/turf/open/floor/shiva{ - dir = 1; - icon_state = "yellowcorners" - }, +/turf/open/floor/shiva/yellowcorners/north, /area/shiva/interior/colony/medseceng) "jaF" = ( /obj/item/lightstick/red/planted, /turf/open/auto_turf/snow/layer3, /area/shiva/exterior/valley) +"jaT" = ( +/turf/open/auto_turf/snow/layer4, +/area/shiva/interior/warehouse/caves) "jaU" = ( /obj/structure/surface/table, /obj/item/device/whistle, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/research_hab) "jbE" = ( -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/medseceng) +"jbK" = ( +/turf/open/floor/plating, +/area/shiva/exterior/valley) "jbY" = ( /obj/structure/platform/strata{ dir = 4 @@ -14343,10 +12081,7 @@ /obj/structure/surface/table, /obj/item/clothing/suit/armor/hos, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull/west, /area/shiva/interior/colony/research_hab) "jeg" = ( /obj/structure/barricade/wooden{ @@ -14363,6 +12098,12 @@ }, /turf/open/floor/carpet, /area/shiva/interior/colony/research_hab) +"jfO" = ( +/obj/effect/spider/stickyweb{ + icon_state = "stickyweb2" + }, +/turf/open/auto_turf/ice/layer2, +/area/shiva/interior/caves/cp_camp) "jfS" = ( /obj/effect/landmark/nightmare{ insert_tag = "lz2-south-caves" @@ -14374,15 +12115,16 @@ dir = 1; pixel_y = 9 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/west, /area/shiva/interior/colony/botany) -"jhq" = ( -/turf/open/floor/shiva{ - icon_state = "radiator_tile" +"jhm" = ( +/obj/structure/platform/shiva/catwalk{ + dir = 8 }, +/turf/open/auto_turf/snow/layer4, +/area/shiva/exterior/junkyard) +"jhq" = ( +/turf/open/floor/shiva/radiator_tile, /area/shiva/interior/colony/n_admin) "jhR" = ( /obj/structure/surface/table/woodentable, @@ -14406,15 +12148,14 @@ /obj/structure/machinery/door/airlock/multi_tile/almayer/comdoor/colony{ name = "\improper Colony Administration" }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/s_admin) -"jjq" = ( -/obj/structure/surface/rack, -/obj/effect/spawner/random/toolbox, -/turf/open/auto_turf/snow/layer0, -/area/shiva/exterior/research_alley) +"jjX" = ( +/obj/structure/platform/shiva/catwalk{ + dir = 4 + }, +/turf/open/auto_turf/snow/layer2, +/area/shiva/exterior/valley) "jkH" = ( /obj/item/lightstick/red/spoke/planted{ layer = 3.1; @@ -14423,16 +12164,12 @@ }, /turf/open/auto_turf/snow/layer1, /area/shiva/exterior/junkyard) -"jkM" = ( -/obj/structure/machinery/door_control/brbutton{ - id = "hangar_ice_2"; - pixel_y = 28 - }, -/obj/structure/platform/shiva/catwalk{ - dir = 8 +"jld" = ( +/obj/item/shard{ + icon_state = "medium" }, -/turf/open/auto_turf/snow/layer1, -/area/shiva/exterior/lz1_valley) +/turf/open/auto_turf/snow/layer0, +/area/shiva/interior/caves/cp_camp) "jlv" = ( /obj/item/stack/sheet/wood, /obj/effect/decal/cleanable/blood{ @@ -14453,9 +12190,7 @@ /turf/open/auto_turf/ice/layer2, /area/shiva/interior/caves/cp_camp) "jmq" = ( -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/shiva/interior/colony/central) "jmt" = ( /obj/structure/largecrate/random/case/double, @@ -14464,61 +12199,32 @@ "jmW" = ( /turf/open/auto_turf/ice/layer2, /area/shiva/interior/caves/cp_camp) -"jnc" = ( -/obj/structure/prop/invuln{ - desc = "The mounting points are ground down from heavy use. They'll need some maintenance work before they can be used again."; - icon = 'icons/obj/structures/props/almayer_props.dmi'; - icon_state = "equip_base"; - name = "shuttle attachment point" - }, -/obj/structure/machinery/light{ - dir = 8 - }, -/obj/effect/landmark/objective_landmark/close, -/turf/open/shuttle{ - icon_state = "floor7" - }, -/area/shiva/interior/aerodrome) "jny" = ( /obj/structure/filingcabinet, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/s_admin) "jnW" = ( /obj/structure/machinery/disposal, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/west, /area/shiva/interior/colony/medseceng) "joh" = ( /obj/structure/machinery/light/double{ dir = 1; pixel_y = 9 }, -/turf/open/floor/shiva{ - dir = 5; - icon_state = "green" - }, +/turf/open/floor/shiva/green/northeast, /area/shiva/interior/colony/botany) "jop" = ( /obj/structure/machinery/computer/prisoner, -/turf/open/floor/shiva{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/shiva/red/northwest, /area/shiva/interior/colony/medseceng) "joF" = ( /obj/structure/platform_decoration/strata, /turf/open/auto_turf/ice/layer0, /area/shiva/interior/caves/s_lz2) "joP" = ( -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellowfull" - }, +/turf/open/floor/shiva/yellowfull/west, /area/shiva/interior/colony/deck) "jph" = ( /obj/structure/flora/grass/tallgrass/ice/corner{ @@ -14532,7 +12238,7 @@ pixel_x = 15; pixel_y = -3 }, -/turf/open/auto_turf/snow/layer0, +/turf/open/auto_turf/snow/layer3, /area/shiva/interior/caves/cp_camp) "jpE" = ( /obj/structure/machinery/portable_atmospherics/hydroponics, @@ -14541,7 +12247,7 @@ "jqo" = ( /obj/item/lightstick/planted, /obj/effect/decal/cleanable/blood/drip, -/turf/open/auto_turf/snow/layer0, +/turf/open/auto_turf/snow/layer3, /area/shiva/interior/caves/cp_camp) "jqx" = ( /obj/structure/platform/strata, @@ -14551,22 +12257,16 @@ /obj/structure/closet/firecloset, /obj/item/explosive/grenade/high_explosive/pmc, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/shiva{ - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull, /area/shiva/interior/colony/research_hab) "jqY" = ( -/turf/open/floor/shiva{ - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull, /area/shiva/interior/colony/central) "jrg" = ( /turf/closed/wall/shiva/ice, /area/shiva/interior/caves/research_caves) "jru" = ( -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/shiva/interior/colony/n_admin) "jrR" = ( /obj/structure/prop/invuln/ice_prefab{ @@ -14581,10 +12281,7 @@ /area/shiva/interior/colony/central) "jsA" = ( /obj/structure/closet/secure_closet/security, -/turf/open/floor/shiva{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/shiva/red/southwest, /area/shiva/interior/colony/central) "jtp" = ( /obj/structure/prop/invuln/ice_prefab, @@ -14618,17 +12315,13 @@ pixel_y = 28 }, /obj/structure/largecrate/random/case/small, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/lz2_habs) "jwk" = ( /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/s_admin) "jwm" = ( /obj/structure/flora/bush/snow{ @@ -14642,15 +12335,17 @@ /area/shiva/exterior/valley) "jxJ" = ( /obj/structure/machinery/power/port_gen/pacman, -/turf/open/floor/plating{ - dir = 9; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/northwest, /area/shiva/interior/colony/medseceng) -"jAg" = ( -/turf/open/floor/shiva{ - icon_state = "snow_mat" +"jzs" = ( +/obj/structure/largecrate/random/mini/wooden{ + pixel_x = -16; + pixel_y = -1 }, +/turf/open/auto_turf/ice/layer1, +/area/shiva/interior/warehouse/caves) +"jAg" = ( +/turf/open/floor/shiva/snow_mat, /area/shiva/exterior/cp_lz2) "jAu" = ( /obj/structure/largecrate/random/barrel/green, @@ -14659,9 +12354,7 @@ "jAv" = ( /obj/structure/bed, /obj/item/bedsheet/orange, -/turf/open/floor/shiva{ - icon_state = "red" - }, +/turf/open/floor/shiva/red, /area/shiva/interior/colony/medseceng) "jAL" = ( /turf/open/auto_turf/snow/layer1, @@ -14670,33 +12363,23 @@ /turf/closed/wall/shiva/prefabricated, /area/shiva/interior/valley_huts/disposals) "jBp" = ( -/turf/open/floor/shiva{ - dir = 8; - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull/west, /area/shiva/interior/colony/n_admin) "jBu" = ( /obj/effect/decal/cleanable/blood{ layer = 3 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/s_admin) "jBN" = ( /obj/structure/machinery/landinglight/ds2{ dir = 8 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) "jCe" = ( /obj/structure/machinery/light/double, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/west, /area/shiva/interior/colony/botany) "jCk" = ( /obj/item/lightstick/variant/planted, @@ -14713,7 +12396,7 @@ icon_state = "large"; name = "ice shard" }, -/turf/open/auto_turf/snow/layer0, +/turf/open/auto_turf/snow/layer3, /area/shiva/interior/caves/cp_camp) "jDp" = ( /obj/structure/surface/table/woodentable, @@ -14722,23 +12405,25 @@ pixel_y = 6 }, /obj/structure/machinery/light/double, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/bar) +"jDv" = ( +/obj/structure/ice/thin/single{ + opacity = 1; + unacidable = 0 + }, +/obj/structure/blocker/forcefield/multitile_vehicles, +/turf/open/auto_turf/ice/layer1, +/area/shiva/exterior/valley) "jDB" = ( /obj/item/shard, -/turf/open/floor/shiva{ - icon_state = "wred" - }, +/turf/open/floor/shiva/wred, /area/shiva/interior/colony/medseceng) "jEa" = ( /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/shiva{ - icon_state = "wred" - }, +/turf/open/floor/shiva/wred, /area/shiva/interior/colony/medseceng) "jEc" = ( /obj/structure/prop/invuln/ice_prefab{ @@ -14774,9 +12459,7 @@ /area/shiva/exterior/junkyard) "jGZ" = ( /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/shiva{ - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull, /area/shiva/interior/colony/central) "jHg" = ( /obj/structure/platform/strata{ @@ -14786,15 +12469,10 @@ /area/shiva/interior/caves/cp_camp) "jIF" = ( /obj/structure/machinery/light/double, -/turf/open/floor/shiva{ - dir = 10; - icon_state = "green" - }, +/turf/open/floor/shiva/green/southwest, /area/shiva/interior/colony/botany) "jIK" = ( -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/n_admin) "jIP" = ( /obj/structure/platform/strata{ @@ -14804,10 +12482,7 @@ /turf/open/auto_turf/ice/layer1, /area/shiva/interior/oob/dev_room) "jIR" = ( -/turf/open/floor/shiva{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/west, /area/shiva/interior/colony/s_admin) "jJf" = ( /obj/item/lightstick/red/spoke/planted{ @@ -14833,6 +12508,14 @@ }, /turf/open/asphalt/cement, /area/shiva/interior/warehouse) +"jKm" = ( +/obj/structure/prop/invuln/ice_prefab/roof_greeble{ + icon_state = "vent5"; + pixel_x = 16; + pixel_y = 10 + }, +/turf/open/auto_turf/snow/layer3, +/area/shiva/exterior/cp_s_research) "jKN" = ( /obj/structure/fence, /turf/open/auto_turf/snow/layer0, @@ -14841,16 +12524,12 @@ /obj/structure/machinery/landinglight/ds2/delaytwo{ dir = 1 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) "jLn" = ( /obj/structure/closet/secure_closet/engineering_welding, /obj/effect/landmark/objective_landmark/far, -/turf/open/floor/shiva{ - icon_state = "yellowfull" - }, +/turf/open/floor/shiva/yellowfull, /area/shiva/interior/telecomm/lz1_biceps) "jLx" = ( /obj/item/tool/pickaxe, @@ -14867,29 +12546,30 @@ /area/shiva/exterior/junkyard) "jMD" = ( /obj/structure/foamed_metal, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) "jMZ" = ( -/turf/open/floor{ - dir = 4; - icon_state = "chapel" - }, +/turf/open/floor/chapel/east, /area/shiva/interior/colony/central) +"jNr" = ( +/obj/structure/machinery/colony_floodlight, +/turf/open/auto_turf/snow/layer2, +/area/shiva/interior/caves/cp_camp) "jOi" = ( -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/caves/cp_camp) +"jOv" = ( +/obj/structure/surface/rack, +/obj/item/device/flashlight, +/obj/item/device/t_scanner, +/turf/open/auto_turf/snow/layer0, +/area/shiva/exterior/cp_s_research) "jOA" = ( /obj/structure/closet/secure_closet/engineering_personal, /obj/item/weapon/gun/smg/pps43, /obj/item/ammo_magazine/smg/pps43, /obj/item/ammo_magazine/smg/pps43, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/medseceng) "jOP" = ( /obj/effect/decal/warning_stripes{ @@ -14902,10 +12582,7 @@ /turf/open/auto_turf/snow/layer0, /area/shiva/exterior/junkyard) "jPj" = ( -/turf/open/floor/shiva{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/southeast, /area/shiva/interior/bar) "jPo" = ( /obj/structure/platform/strata{ @@ -14944,12 +12621,6 @@ }, /turf/open/auto_turf/snow/layer0, /area/shiva/exterior/junkyard) -"jQt" = ( -/obj/structure/platform/shiva/catwalk{ - dir = 4 - }, -/turf/open/auto_turf/snow/layer4, -/area/shiva/exterior/lz1_valley) "jQy" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/medidoor/colony{ dir = 1; @@ -14990,9 +12661,7 @@ /obj/structure/barricade/metal{ layer = 3 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/exterior/lz2_fortress) "jTT" = ( /obj/structure/flora/grass/tallgrass/ice/corner{ @@ -15010,19 +12679,14 @@ "jUj" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/device/flashlight/lamp, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/medseceng) "jVi" = ( /obj/effect/decal/cleanable/blood/drip, /turf/open/auto_turf/snow/layer2, /area/shiva/interior/caves/cp_camp) "jVp" = ( -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/west, /area/shiva/interior/colony/deck) "jVx" = ( /obj/structure/girder/reinforced, @@ -15037,21 +12701,32 @@ }, /turf/open/auto_turf/snow/layer0, /area/shiva/interior/colony/medseceng) +"jWh" = ( +/obj/structure/stairs/perspective/ice{ + dir = 1; + icon_state = "p_stair_full" + }, +/turf/open/auto_turf/snow/layer0, +/area/shiva/interior/warehouse/caves) "jWL" = ( /obj/structure/machinery/space_heater, /obj/structure/machinery/light/double{ dir = 1; pixel_y = 9 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellowfull" - }, -/area/shiva/interior/lz2_habs) +/turf/open/floor/shiva/yellowfull/west, +/area/shiva/interior/aux_power) "jXD" = ( /obj/structure/flora/tree/dead/tree_4, /turf/open/auto_turf/snow/layer2, /area/shiva/exterior/junkyard) +"jXM" = ( +/obj/structure/machinery/light/double{ + dir = 8; + pixel_y = -5 + }, +/turf/open/floor/shiva/floor3, +/area/shiva/interior/colony/research_hab) "jYO" = ( /obj/item/lightstick/red/spoke/planted{ layer = 3.1; @@ -15062,17 +12737,13 @@ /area/shiva/exterior/cp_colony_grounds) "jZF" = ( /obj/item/tool/wirecutters/clippers, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/lz2_habs) "kap" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony/autoname{ dir = 1 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/research_hab) "kaC" = ( /turf/closed/wall/shiva/ice, @@ -15081,10 +12752,7 @@ /obj/effect/decal/warning_stripes{ icon_state = "NE-out" }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "purplefull" - }, +/turf/open/floor/shiva/purplefull/west, /area/shiva/interior/colony/research_hab) "kaT" = ( /obj/structure/surface/table/woodentable{ @@ -15092,17 +12760,12 @@ flipped = 1 }, /obj/structure/machinery/computer/objective, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/s_admin) "kbf" = ( /obj/structure/bed, /obj/item/bedsheet/medical, -/turf/open/floor/shiva{ - dir = 10; - icon_state = "wred" - }, +/turf/open/floor/shiva/wred/southwest, /area/shiva/interior/colony/medseceng) "kbl" = ( /obj/structure/reagent_dispensers/fueltank, @@ -15110,18 +12773,14 @@ dir = 1; pixel_y = 9 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, -/area/shiva/interior/lz2_habs) +/turf/open/floor/shiva/floor3, +/area/shiva/interior/aux_power) "kbJ" = ( /obj/structure/machinery/light/double{ dir = 4; pixel_y = -5 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/medseceng) "kbK" = ( /obj/item/reagent_container/glass/bucket{ @@ -15148,49 +12807,41 @@ pixel_x = -8; pixel_y = 4 }, -/turf/open/floor/shiva{ - icon_state = "yellowfull" - }, +/turf/open/floor/shiva/yellowfull, /area/shiva/interior/colony/research_hab) "kce" = ( /obj/structure/surface/rack, /obj/item/stack/sheet/metal/medium_stack, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/shiva{ - icon_state = "yellowfull" - }, +/turf/open/floor/shiva/yellowfull, /area/shiva/interior/colony/medseceng) +"kch" = ( +/obj/structure/surface/rack, +/obj/item/tool/pickaxe/plasmacutter, +/turf/open/auto_turf/snow/layer0, +/area/shiva/exterior/cp_s_research) "kcB" = ( /obj/structure/machinery/landinglight/ds2/spoke, /obj/structure/machinery/landinglight/ds2/delayone{ dir = 4 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) "kdd" = ( /obj/effect/landmark/nightmare{ insert_tag = "lz2-east-gate" }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) "kdy" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "purplefull" - }, +/turf/open/floor/shiva/purplefull/west, /area/shiva/interior/colony/research_hab) "kdK" = ( /obj/effect/decal/cleanable/blood{ icon_state = "gib6" }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/s_admin) "kdR" = ( /obj/structure/surface/rack, @@ -15202,16 +12853,11 @@ dir = 8; pixel_y = -5 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/west, /area/shiva/interior/colony/n_admin) "kdW" = ( /obj/structure/machinery/space_heater, -/turf/open/floor/shiva{ - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow, /area/shiva/interior/colony/medseceng) "kec" = ( /obj/structure/window/reinforced/tinted{ @@ -15222,9 +12868,7 @@ /obj/item/clipboard, /obj/item/tool/stamp, /obj/effect/landmark/crap_item, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/s_admin) "kee" = ( /obj/structure/cargo_container/horizontal/blue/bottom, @@ -15239,14 +12883,6 @@ }, /turf/open/auto_turf/snow/layer0, /area/shiva/exterior/junkyard) -"kfl" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/effect/decal/warning_stripes{ - icon_state = "W-corner" - }, -/obj/structure/machinery/computer/shuttle/dropship/flight/lz1, -/turf/open/floor/plating, -/area/shiva/exterior/lz1_console) "kfW" = ( /obj/effect/decal/cleanable/blood/oil, /obj/effect/decal/cleanable/dirt, @@ -15290,7 +12926,7 @@ dir = 4 }, /turf/open/auto_turf/snow/layer2, -/area/shiva/exterior/lz1_valley) +/area/shiva/exterior/junkyard) "khz" = ( /obj/item/device/flashlight, /turf/open/floor/shiva, @@ -15303,9 +12939,7 @@ /area/shiva/interior/colony/botany) "kiv" = ( /obj/structure/machinery/landinglight/ds2, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) "kiB" = ( /obj/structure/machinery/alarm{ @@ -15328,15 +12962,11 @@ dir = 8 }, /obj/structure/barricade/handrail/strata, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/deck) "kjt" = ( /obj/structure/surface/table, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/garage) "kjM" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ @@ -15345,13 +12975,19 @@ }, /turf/open/floor/plating, /area/shiva/interior/aerodrome) -"kjU" = ( -/obj/structure/machinery/light/double{ - dir = 8; - pixel_y = -5 +"kjX" = ( +/obj/structure/stairs/perspective/ice{ + dir = 1; + icon_state = "p_stair_full" }, -/turf/open/floor/wood, -/area/shiva/interior/aerodrome) +/turf/open/auto_turf/snow/layer4, +/area/shiva/interior/warehouse/caves) +"klF" = ( +/obj/structure/bed/chair{ + dir = 4 + }, +/turf/open/auto_turf/snow/layer1, +/area/shiva/exterior/cp_s_research) "klN" = ( /obj/effect/spider/stickyweb{ icon_state = "stickyweb2" @@ -15360,9 +12996,7 @@ /area/shiva/interior/caves/right_spiders) "klP" = ( /obj/effect/landmark/crap_item, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/valley_huts) "kmM" = ( /obj/structure/flora/bush/snow{ @@ -15370,6 +13004,13 @@ }, /turf/open/auto_turf/snow/layer2, /area/shiva/interior/colony/medseceng) +"kmO" = ( +/obj/structure/machinery/light/double{ + dir = 4; + pixel_y = -5 + }, +/turf/open/floor/shiva, +/area/shiva/interior/colony/research_hab) "kng" = ( /turf/open/auto_turf/ice/layer0, /area/shiva/interior/caves/right_spiders) @@ -15408,21 +13049,8 @@ /turf/open/auto_turf/snow/layer2, /area/shiva/exterior/junkyard/cp_bar) "kqs" = ( -/turf/open/floor/shiva{ - icon_state = "radiator_tile2" - }, +/turf/open/floor/shiva/radiator_tile2, /area/shiva/interior/colony/central) -"kqE" = ( -/obj/structure/prop/invuln/dense/ice_tray{ - dir = 4; - pixel_y = -9 - }, -/obj/structure/prop/invuln/dense/ice_tray{ - dir = 1; - pixel_y = 10 - }, -/turf/open/auto_turf/ice/layer1, -/area/shiva/interior/caves/cp_camp) "kqH" = ( /obj/structure/machinery/firealarm{ dir = 8; @@ -15430,9 +13058,7 @@ }, /obj/structure/filingcabinet, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/s_admin) "kri" = ( /obj/item/lightstick/red/planted, @@ -15444,17 +13070,8 @@ /area/shiva/interior/aerodrome) "krM" = ( /obj/structure/machinery/light/double, -/turf/open/floor/shiva{ - dir = 6; - icon_state = "green" - }, +/turf/open/floor/shiva/green/southeast, /area/shiva/interior/colony/botany) -"krT" = ( -/obj/effect/landmark/nightmare{ - insert_tag = "labs-elevator" - }, -/turf/closed/wall/shiva/prefabricated/orange, -/area/shiva/interior/colony/research_hab) "krU" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/largecrate/random/barrel/white, @@ -15469,17 +13086,12 @@ pixel_x = -32 }, /obj/structure/bed/chair, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "wred" - }, +/turf/open/floor/shiva/wred/west, /area/shiva/interior/colony/medseceng) "ksY" = ( /obj/effect/decal/cleanable/blood/drip, /obj/structure/bed/chair, -/turf/open/floor/shiva{ - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull, /area/shiva/interior/colony/s_admin) "ktd" = ( /turf/closed/wall/shiva/prefabricated/reinforced, @@ -15504,10 +13116,7 @@ /turf/open/floor/wood, /area/shiva/interior/bar) "kuM" = ( -/turf/open/floor/shiva{ - dir = 9; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/northwest, /area/shiva/interior/colony/deck) "kuS" = ( /obj/structure/flora/tree/dead/tree_1, @@ -15537,9 +13146,7 @@ /obj/item/reagent_container/food/drinks/drinkingglass{ pixel_x = 9 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/bar) "kvB" = ( /obj/structure/surface/table/woodentable/fancy, @@ -15556,15 +13163,16 @@ /obj/structure/fence, /turf/open/auto_turf/snow/layer1, /area/shiva/exterior/lz1_valley) +"kwa" = ( +/turf/open/floor/plating, +/area/shiva/exterior/junkyard) "kwc" = ( /obj/structure/bed/chair/comfy/blue, /obj/structure/machinery/light/double{ dir = 1; pixel_y = 9 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/n_admin) "kwf" = ( /obj/structure/largecrate/random/secure, @@ -15572,22 +13180,14 @@ /area/shiva/exterior/junkyard) "kxb" = ( /obj/structure/machinery/light/double, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/west, /area/shiva/interior/colony/central) "kxv" = ( /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/botany) "kxx" = ( -/turf/open/floor/shiva{ - dir = 1; - icon_state = "purplefull" - }, +/turf/open/floor/shiva/purplefull/north, /area/shiva/interior/colony/research_hab) "kxG" = ( /obj/structure/prop/invuln/ice_prefab{ @@ -15595,31 +13195,29 @@ }, /turf/open/auto_turf/snow/layer3, /area/shiva/interior/caves/cp_camp) +"kxN" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N-corner" + }, +/turf/open/floor/plating, +/area/shiva/exterior/valley) "kys" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /obj/structure/largecrate/random/barrel/green, /turf/open/asphalt/cement, /area/shiva/interior/warehouse) +"kyt" = ( +/obj/item/tool/shovel/snow, +/turf/open/auto_turf/snow/layer1, +/area/shiva/exterior/cp_s_research) "kyu" = ( /obj/structure/surface/table, /obj/structure/machinery/door/window/eastright{ dir = 1 }, -/turf/open/floor/shiva{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/southeast, /area/shiva/interior/colony/research_hab) -"kyw" = ( -/obj/structure/barricade/metal{ - dir = 8 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "W-corner" - }, -/turf/open/floor/plating, -/area/shiva/exterior/lz1_valley) "kyD" = ( /turf/open/auto_turf/snow/layer0, /area/shiva/exterior/junkyard) @@ -15632,18 +13230,14 @@ /obj/item/clipboard, /obj/item/tool/stamp, /obj/effect/landmark/objective_landmark/far, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/s_admin) "kzr" = ( /obj/structure/machinery/alarm{ dir = 4; pixel_x = -24 }, -/turf/open/floor/shiva{ - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull, /area/shiva/interior/colony/s_admin) "kzE" = ( /obj/structure/prop/ice_colony/dense/planter_box{ @@ -15655,21 +13249,37 @@ }, /turf/open/auto_turf/snow/layer0, /area/shiva/interior/colony/medseceng) +"kAd" = ( +/obj/structure/closet/radiation, +/turf/open/auto_turf/snow/layer3, +/area/shiva/exterior/cp_s_research) +"kAg" = ( +/mob/living/simple_animal/hostile/retaliate/clown{ + desc = "Uh oh, looks like Gonzo got blocked by a cave-in. How is he gonna get out of this one?"; + health = 10000; + move_to_delay = 2; + name = "Gonzo the Magnificent"; + rapid = 1 + }, +/obj/effect/decal/hefa_cult_decals/d96{ + desc = "Original map by Infernus, remapped by Triiodine." + }, +/turf/open/auto_turf/ice/layer1, +/area/shiva/interior/oob/dev_room) +"kAm" = ( +/obj/structure/flora/tree/dead/tree_6, +/turf/open/auto_turf/snow/layer3, +/area/shiva/interior/caves/cp_camp) "kAp" = ( /obj/item/stack/sheet/metal/small_stack, /obj/structure/foamed_metal, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) "kAw" = ( /turf/open/auto_turf/ice/layer1, /area/shiva/interior/warehouse/caves) "kAT" = ( -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/west, /area/shiva/interior/garage) "kBo" = ( /obj/structure/prop/ice_colony/poly_kevlon_roll{ @@ -15702,16 +13312,11 @@ /obj/structure/bed/chair/office/dark{ dir = 4 }, -/turf/open/floor/shiva{ - icon_state = "wred" - }, +/turf/open/floor/shiva/wred, /area/shiva/interior/colony/medseceng) "kEh" = ( /obj/item/stack/rods, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/north, /area/shiva/exterior/lz2_fortress) "kEs" = ( /obj/effect/decal/cleanable/dirt, @@ -15722,62 +13327,40 @@ /area/shiva/interior/bar) "kEy" = ( /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/medseceng) "kEB" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/east, /area/shiva/interior/colony/medseceng) "kEK" = ( /obj/structure/stairs/perspective{ dir = 4; icon_state = "p_stair_sn_full_cap" }, -/turf/open/floor/shiva{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/southeast, /area/shiva/interior/bar) "kFd" = ( /obj/structure/machinery/power/terminal{ dir = 8 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/medseceng) "kFJ" = ( /obj/structure/machinery/light/double{ dir = 4; pixel_y = -5 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/central) "kGn" = ( /obj/item/device/motiondetector/hacked, -/turf/open/floor/shiva{ - dir = 9; - icon_state = "green" - }, +/turf/open/floor/shiva/green/northwest, /area/shiva/interior/colony/botany) "kGz" = ( /obj/effect/landmark/static_comms/net_one, /turf/open/floor/wood, /area/shiva/interior/aerodrome) -"kGO" = ( -/obj/structure/platform/shiva/catwalk{ - dir = 8 - }, -/obj/item/lightstick/red/variant/planted, -/turf/open/auto_turf/snow/layer2, -/area/shiva/exterior/lz1_valley) "kGW" = ( /obj/structure/flora/tree/dead/tree_2, /turf/open/auto_turf/snow/layer2, @@ -15788,46 +13371,32 @@ dir = 1; pixel_y = 9 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull/west, /area/shiva/interior/colony/medseceng) -"kIo" = ( -/obj/structure/platform/shiva/catwalk{ - dir = 4 - }, -/obj/item/lightstick/red/variant/planted, -/turf/open/auto_turf/snow/layer1, -/area/shiva/exterior/lz1_valley) +"kHG" = ( +/obj/structure/largecrate/random/mini/med, +/obj/effect/landmark/objective_landmark/close, +/turf/open/floor/shiva/floor3, +/area/shiva/interior/caves/cp_camp) "kIq" = ( /obj/structure/bed/chair, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/shiva/interior/colony/n_admin) "kIs" = ( /obj/item/storage/donut_box, /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/shiva/red/north, /area/shiva/interior/colony/medseceng) "kIH" = ( /obj/structure/machinery/landinglight/ds2{ dir = 4 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) "kJi" = ( /obj/structure/closet/crate/hydroponics, /obj/item/reagent_container/glass/watertank, -/turf/open/floor/shiva{ - icon_state = "greenfull" - }, +/turf/open/floor/shiva/greenfull, /area/shiva/interior/colony/n_admin) "kJw" = ( /obj/item/clipboard, @@ -15842,16 +13411,11 @@ "kJL" = ( /obj/structure/surface/table, /obj/item/tool/stamp, -/turf/open/floor/shiva{ - dir = 10; - icon_state = "wred" - }, +/turf/open/floor/shiva/wred/southwest, /area/shiva/interior/colony/medseceng) "kJN" = ( /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/shiva{ - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull, /area/shiva/interior/colony/s_admin) "kJQ" = ( /obj/item/lightstick/red/variant, @@ -15861,9 +13425,7 @@ /obj/structure/machinery/landinglight/ds2/delayone{ dir = 8 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/exterior/lz2_fortress) "kLi" = ( /obj/structure/surface/rack, @@ -15880,23 +13442,17 @@ /area/shiva/interior/warehouse) "kLv" = ( /obj/item/tool/wirecutters/clippers, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/lz2_habs) "kLz" = ( /obj/structure/machinery/door/airlock/multi_tile/elevator/access/dormatory, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/central) "kLB" = ( /obj/structure/surface/table, /obj/structure/machinery/computer/emails, -/turf/open/floor/shiva{ - dir = 1 - }, -/area/shiva/interior/lz2_habs) +/turf/open/floor/shiva/north, +/area/shiva/interior/aux_power) "kLG" = ( /obj/structure/flora/bush/ausbushes/lavendergrass, /obj/structure/flora/grass/tallgrass/ice, @@ -15906,9 +13462,7 @@ /turf/open/auto_turf/snow/layer1, /area/shiva/exterior/lz1_valley) "kMg" = ( -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/caves/s_lz2) "kMF" = ( /obj/item/lightstick/red/spoke/planted{ @@ -15923,23 +13477,17 @@ /obj/structure/machinery/computer/cameras{ pixel_y = 6 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/research_hab) "kMO" = ( /obj/structure/machinery/space_heater, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/shiva/interior/bar) "kNf" = ( /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/shiva/interior/colony/central) "kOi" = ( /obj/structure/closet/secure_closet/medical3{ @@ -15947,9 +13495,7 @@ }, /obj/effect/spawner/random/attachment, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/shiva/interior/colony/research_hab) "kOV" = ( /turf/open/auto_turf/snow/layer3, @@ -15971,9 +13517,7 @@ "kPX" = ( /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/shiva/interior/colony/research_hab) "kPZ" = ( /obj/structure/closet/bodybag, @@ -15982,9 +13526,7 @@ "kQi" = ( /obj/structure/surface/table, /obj/effect/landmark/crap_item, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/n_admin) "kQF" = ( /obj/structure/prop/ice_colony/dense/planter_box{ @@ -15998,10 +13540,7 @@ /area/shiva/interior/colony/medseceng) "kQJ" = ( /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull/west, /area/shiva/interior/colony/research_hab) "kQW" = ( /obj/structure/barricade/handrail/wire{ @@ -16016,9 +13555,7 @@ /obj/item/shard{ icon_state = "large" }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/s_admin) "kRj" = ( /obj/structure/surface/table, @@ -16026,24 +13563,27 @@ pixel_x = -5; pixel_y = 11 }, -/turf/open/floor/shiva{ - icon_state = "yellowfull" - }, +/turf/open/floor/shiva/yellowfull, /area/shiva/interior/colony/research_hab) +"kRq" = ( +/obj/item/lightstick/red/variant/planted, +/turf/open/auto_turf/snow/layer2, +/area/shiva/interior/caves/cp_camp) "kRI" = ( /obj/structure/surface/table, -/turf/open/floor/shiva{ - icon_state = "wred" - }, +/turf/open/floor/shiva/wred, /area/shiva/interior/colony/medseceng) "kRK" = ( /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor{ - icon_state = "chapel" - }, +/turf/open/floor/chapel, /area/shiva/interior/colony/central) +"kRR" = ( +/obj/structure/filingcabinet, +/obj/effect/landmark/objective_landmark/close, +/turf/open/floor/shiva/floor3, +/area/shiva/interior/aux_power) "kRV" = ( /obj/structure/surface/table, /obj/item/device/flashlight/lamp/green, @@ -16051,9 +13591,7 @@ dir = 8; pixel_y = -5 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/research_hab) "kSh" = ( /obj/structure/flora/tree/dead/tree_6, @@ -16068,10 +13606,6 @@ }, /turf/open/gm/river, /area/shiva/interior/caves/cp_camp) -"kSW" = ( -/obj/item/circuitboard, -/turf/open/auto_turf/snow/layer3, -/area/shiva/exterior/research_alley) "kTd" = ( /turf/open/auto_turf/ice/layer0, /area/shiva/interior/colony/research_hab) @@ -16080,17 +13614,8 @@ /obj/item/reagent_container/food/drinks/bottle/vodka/chess/b_queen{ pixel_y = 7 }, -/turf/open/floor/shiva{ - icon_state = "yellowfull" - }, +/turf/open/floor/shiva/yellowfull, /area/shiva/interior/colony/research_hab) -"kTN" = ( -/obj/structure/machinery/power/geothermal, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellowfull" - }, -/area/shiva/interior/lz2_habs) "kTP" = ( /obj/structure/flora/bush/ausbushes/lavendergrass, /turf/open/auto_turf/snow/layer1, @@ -16109,18 +13634,10 @@ }, /turf/open/floor/shiva, /area/shiva/interior/colony/research_hab) -"kVs" = ( -/obj/structure/platform_decoration/strata{ - dir = 1 - }, -/turf/open/auto_turf/snow/layer3, -/area/shiva/exterior/valley) "kVA" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/weapon/twohanded/fireaxe, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/s_admin) "kWa" = ( /obj/structure/prop/invuln/minecart_tracks/bumper{ @@ -16138,9 +13655,7 @@ dir = 8; pixel_y = -5 }, -/turf/open/floor/shiva{ - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull, /area/shiva/interior/colony/n_admin) "kWK" = ( /obj/structure/prop/invuln/ice_prefab/standalone/trim, @@ -16157,10 +13672,8 @@ pixel_x = 5; pixel_y = 5 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, -/area/shiva/interior/lz2_habs) +/turf/open/floor/shiva/floor3, +/area/shiva/interior/aux_power) "kXs" = ( /obj/item/lightstick/red/spoke/planted{ pixel_x = 11; @@ -16195,10 +13708,7 @@ dir = 8; layer = 2.98 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull/west, /area/shiva/interior/colony/research_hab) "kZK" = ( /obj/item/weapon/gun/shotgun/pump/dual_tube/cmb, @@ -16232,25 +13742,24 @@ pixel_x = 4; pixel_y = 6 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/lz2_habs) "laK" = ( /obj/structure/machinery/recharge_station, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/north, /area/shiva/interior/colony/medseceng) +"laL" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E-corner" + }, +/turf/open/floor/plating, +/area/shiva/exterior/valley) "lbF" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/microwave{ pixel_y = 6 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/shiva/interior/bar) "lcv" = ( /obj/structure/largecrate/random/mini/chest{ @@ -16276,11 +13785,8 @@ /turf/open/floor/plating, /area/shiva/interior/colony/central) "leg" = ( -/obj/effect/spider/cocoon{ - icon_state = "cocoon_large1" - }, -/turf/open/auto_turf/ice/layer2, -/area/shiva/interior/caves/left_spiders) +/turf/closed/wall/shiva/prefabricated/reinforced/hull, +/area/shiva/exterior/telecomm/lz1_north) "lfe" = ( /obj/structure/prop/ice_colony/soil_net, /turf/open/auto_turf/snow/layer1, @@ -16295,9 +13801,7 @@ pixel_x = -14; pixel_y = 14 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/research_hab) "lfC" = ( /obj/item/tool/pickaxe, @@ -16314,9 +13818,7 @@ /obj/structure/machinery/landinglight/ds2/delayone{ dir = 4 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) "lgN" = ( /turf/closed/wall/shiva/prefabricated/reinforced/hull, @@ -16332,12 +13834,12 @@ /obj/structure/surface/rack, /turf/open/auto_turf/snow/layer1, /area/shiva/exterior/junkyard/fortbiceps) -"lhu" = ( -/obj/effect/landmark/nightmare{ - insert_tag = "south-spidercave" +"lhP" = ( +/obj/structure/prop/invuln/ice_prefab/standalone/trim{ + icon_state = "pink_trim" }, -/turf/closed/wall/shiva/ice, -/area/shiva/interior/oob) +/turf/open/auto_turf/snow/layer1, +/area/shiva/interior/caves/cp_camp) "lip" = ( /obj/structure/flora/grass/tallgrass/ice/corner{ dir = 10 @@ -16349,9 +13851,7 @@ dir = 8; start_charge = 0 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/lz2_habs) "ljz" = ( /obj/structure/prop/invuln/ice_prefab{ @@ -16361,49 +13861,36 @@ /turf/open/auto_turf/snow/layer2, /area/shiva/exterior/cp_lz2) "ljM" = ( -/turf/open/floor/shiva{ - dir = 5; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/northeast, /area/shiva/interior/colony/deck) "ljS" = ( /obj/structure/surface/table, /obj/item/tool/wrench, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellowfull" - }, +/turf/open/floor/shiva/yellowfull/west, /area/shiva/interior/colony/medseceng) "lkP" = ( /obj/structure/surface/table/reinforced/prison, /obj/effect/landmark/good_item, -/turf/open/floor/shiva{ - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull, /area/shiva/interior/colony/s_admin) "lkX" = ( /obj/effect/landmark/xeno_spawn, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull/west, /area/shiva/interior/colony/research_hab) +"llZ" = ( +/turf/open/auto_turf/snow/layer2, +/area/shiva/interior/warehouse/caves) "lmt" = ( /obj/structure/largecrate/random/barrel/red, /turf/open/auto_turf/snow/layer0, /area/shiva/exterior/junkyard) "lmL" = ( -/turf/open/floor/shiva{ - dir = 4; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/east, /area/shiva/interior/colony/botany) "lmQ" = ( /obj/structure/closet/secure_closet/freezer/kitchen, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/shiva/interior/colony/central) "lnk" = ( /obj/structure/machinery/power/apc{ @@ -16411,11 +13898,8 @@ name = "telecomms relay power controller"; start_charge = 10 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellowfull" - }, -/area/shiva/interior/lz2_habs) +/turf/open/floor/shiva/yellowfull/west, +/area/shiva/interior/aux_power) "lnH" = ( /obj/structure/flora/bush/snow{ icon_state = "snowgrassbb_2" @@ -16428,15 +13912,10 @@ "lnY" = ( /obj/structure/closet/secure_closet/engineering_electrical, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/shiva{ - icon_state = "yellowfull" - }, +/turf/open/floor/shiva/yellowfull, /area/shiva/interior/telecomm/lz1_biceps) "lod" = ( -/turf/open/floor/shiva{ - dir = 8; - icon_state = "snow_mat" - }, +/turf/open/floor/shiva/snow_mat/west, /area/shiva/interior/colony/botany) "loe" = ( /obj/structure/flora/bush/snow{ @@ -16444,7 +13923,7 @@ layer = 2.9 }, /turf/open/auto_turf/snow/layer2, -/area/shiva/exterior/cp_s_research) +/area/shiva/exterior/junkyard) "lok" = ( /obj/structure/cargo_container/ferret/left, /turf/open/auto_turf/snow/layer3, @@ -16458,9 +13937,7 @@ /area/shiva/exterior/cp_lz2) "loH" = ( /obj/structure/machinery/vending/coffee, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/aerodrome) "loX" = ( /obj/structure/flora/bush/snow{ @@ -16472,18 +13949,14 @@ /obj/structure/prop/invuln/minecart_tracks{ dir = 6 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/cp_colony_grounds) "lpA" = ( /obj/structure/surface/table, /obj/effect/spawner/random/toolbox{ pixel_y = 9 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/research_hab) "lpD" = ( /obj/effect/decal/cleanable/blood{ @@ -16501,10 +13974,19 @@ /area/shiva/exterior/junkyard) "lpX" = ( /obj/item/tool/crowbar/red, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/lz2_habs) +"lqu" = ( +/obj/structure/blocker/forcefield/multitile_vehicles, +/obj/structure/blocker/forcefield/multitile_vehicles, +/turf/open/auto_turf/snow/layer1, +/area/shiva/interior/colony/research_hab) +"lqT" = ( +/obj/effect/spider/stickyweb{ + icon_state = "stickyweb2" + }, +/turf/open/auto_turf/ice/layer1, +/area/shiva/interior/caves/cp_camp) "lqY" = ( /obj/structure/largecrate/random/mini/small_case{ pixel_x = -9; @@ -16528,9 +14010,7 @@ name = "telecomms relay power controller"; start_charge = 0 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/aerodrome) "lrt" = ( /obj/item/shard{ @@ -16548,16 +14028,14 @@ "lsk" = ( /obj/structure/closet/secure_closet/freezer/fridge, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/shiva/interior/colony/central) -"ltJ" = ( -/obj/structure/platform_decoration/shiva/catwalk{ - dir = 8 - }, -/turf/open/auto_turf/snow/layer1, -/area/shiva/exterior/lz1_valley) +"ltA" = ( +/obj/structure/surface/rack, +/obj/item/tool/shovel/snow, +/obj/item/storage/belt/utility/full, +/turf/open/auto_turf/snow/layer3, +/area/shiva/exterior/cp_s_research) "luD" = ( /obj/structure/machinery/space_heater, /turf/open/auto_turf/snow/layer1, @@ -16566,22 +14044,16 @@ /obj/structure/machinery/landinglight/ds2/delaytwo{ dir = 4 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) "lvj" = ( /obj/structure/machinery/landinglight/ds2, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/exterior/lz2_fortress) "lvq" = ( /obj/structure/surface/table, /obj/effect/landmark/objective_landmark/far, -/turf/open/floor/shiva{ - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull, /area/shiva/interior/colony/central) "lvW" = ( /obj/structure/machinery/computer/cameras{ @@ -16591,9 +14063,7 @@ dir = 4 }, /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/shiva{ - icon_state = "red" - }, +/turf/open/floor/shiva/red, /area/shiva/interior/colony/medseceng) "lwo" = ( /turf/open/auto_turf/snow/layer2, @@ -16611,15 +14081,10 @@ pixel_y = -3 }, /obj/item/stack/catwalk, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "green" - }, +/turf/open/floor/shiva/green/west, /area/shiva/interior/colony/botany) "lxn" = ( -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/bar) "lyh" = ( /obj/item/lightstick/red/spoke/planted{ @@ -16631,20 +14096,8 @@ /area/shiva/exterior/valley) "lyw" = ( /obj/structure/closet/secure_closet/personal/patient, -/turf/open/floor/shiva{ - dir = 5; - icon_state = "wred" - }, +/turf/open/floor/shiva/wred/northeast, /area/shiva/interior/colony/medseceng) -"lyE" = ( -/obj/structure/platform_decoration/shiva/catwalk{ - dir = 4 - }, -/obj/structure/prop/ice_colony/flamingo{ - dir = 1 - }, -/turf/open/auto_turf/snow/layer2, -/area/shiva/exterior/lz1_valley) "lzQ" = ( /obj/effect/decal/warning_stripes{ icon_state = "NS-center" @@ -16660,39 +14113,38 @@ /turf/open/floor/plating, /area/shiva/interior/caves/research_caves) "lAN" = ( -/obj/item/lightstick/red/variant/planted, -/turf/open/auto_turf/ice/layer1, +/obj/effect/decal/cleanable/blood{ + dir = 4; + icon_state = "gib6" + }, +/turf/open/auto_turf/snow/layer3, /area/shiva/interior/caves/cp_camp) "lBC" = ( /obj/structure/machinery/landinglight/ds2/delaythree{ dir = 8 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) "lCb" = ( /obj/item/tool/pickaxe, /turf/open/auto_turf/ice/layer0, /area/shiva/interior/caves/s_lz2) -"lCe" = ( -/obj/structure/platform_decoration/shiva/catwalk{ +"lCg" = ( +/obj/structure/stairs/perspective{ + dir = 1; + icon_state = "p_stair_sn_full_cap" + }, +/turf/open/auto_turf/snow/layer0, +/area/shiva/interior/caves/cp_camp) +"lCB" = ( +/obj/structure/platform/shiva/catwalk{ dir = 8 }, /turf/open/auto_turf/snow/layer2, -/area/shiva/exterior/lz1_valley) -"lCp" = ( -/obj/structure/platform_decoration/shiva/catwalk{ - dir = 4 - }, -/turf/open/auto_turf/snow/layer4, -/area/shiva/exterior/lz1_valley) +/area/shiva/exterior/valley) "lDv" = ( /obj/structure/machinery/computer/crew, -/turf/open/floor/shiva{ - dir = 6; - icon_state = "wred" - }, +/turf/open/floor/shiva/wred/southeast, /area/shiva/interior/colony/medseceng) "lDx" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ @@ -16703,37 +14155,27 @@ /area/shiva/interior/colony/n_admin) "lDI" = ( /obj/item/stack/cable_coil, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/shiva/interior/bar) "lEJ" = ( /obj/structure/surface/table/woodentable{ flipped = 1 }, /obj/effect/spawner/random/technology_scanner, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/bar) "lFp" = ( /obj/structure/surface/table, /obj/effect/spawner/random/toolbox{ pixel_y = 9 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull/west, /area/shiva/interior/colony/research_hab) "lFP" = ( /obj/structure/stairs/perspective{ icon_state = "p_stair_sn_full_cap" }, -/turf/open/floor/shiva{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/southeast, /area/shiva/interior/bar) "lFX" = ( /obj/structure/flora/bush/snow{ @@ -16750,6 +14192,12 @@ }, /turf/open/gm/river/no_overlay, /area/shiva/interior/caves/cp_camp) +"lGT" = ( +/obj/structure/stairs/perspective{ + icon_state = "p_stair_sn_full_cap" + }, +/turf/open/auto_turf/snow/layer0, +/area/shiva/interior/caves/cp_camp) "lGU" = ( /obj/structure/surface/table, /obj/item/storage/fancy/cigarettes/lucky_strikes{ @@ -16765,9 +14213,7 @@ dir = 4 }, /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/s_admin) "lHl" = ( /obj/structure/machinery/door/poddoor/shutters/almayer{ @@ -16784,25 +14230,19 @@ pixel_y = -5 }, /obj/structure/reagent_dispensers/water_cooler, -/turf/open/floor/shiva{ - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull, /area/shiva/interior/colony/s_admin) "lHK" = ( /obj/structure/surface/table, /obj/effect/spawner/random/tool{ pixel_y = 2 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, -/area/shiva/interior/lz2_habs) +/turf/open/floor/shiva/floor3, +/area/shiva/interior/aux_power) "lHX" = ( /obj/structure/surface/table, /obj/item/reagent_container/food/drinks/bottle/holywater, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/central) "lIa" = ( /obj/structure/blocker/forcefield/multitile_vehicles, @@ -16810,17 +14250,13 @@ /area/shiva/exterior/cp_s_research) "lJh" = ( /obj/structure/machinery/vending/snack, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/aerodrome) "lJt" = ( /obj/structure/noticeboard{ pixel_y = 32 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/s_admin) "lJx" = ( /obj/structure/window/framed/shiva, @@ -16835,25 +14271,20 @@ dir = 8; start_charge = 0 }, -/turf/open/floor/shiva{ - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull, /area/shiva/interior/colony/central) "lKQ" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "greencorners" - }, +/turf/open/floor/shiva/greencorners/west, /area/shiva/interior/colony/botany) +"lLf" = ( +/obj/item/tool/screwdriver, +/turf/open/auto_turf/snow/layer0, +/area/shiva/exterior/cp_s_research) "lLv" = ( /obj/structure/machinery/power/port_gen/pacman, /turf/open/floor/plating, /area/shiva/exterior/lz1_valley) -"lLE" = ( -/obj/structure/prop/invuln/ice_prefab/standalone, -/turf/open/auto_turf/snow/layer2, -/area/shiva/exterior/research_alley) "lMO" = ( /obj/structure/barricade/snow{ dir = 8 @@ -16863,9 +14294,7 @@ "lNf" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/computer/communications, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/deck) "lNg" = ( /turf/open/auto_turf/snow/layer3, @@ -16875,10 +14304,7 @@ pixel_y = 8 }, /obj/structure/surface/table, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull/west, /area/shiva/interior/colony/research_hab) "lNE" = ( /obj/structure/flora/bush/snow{ @@ -16902,44 +14328,30 @@ "lOO" = ( /obj/structure/surface/table, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/east, /area/shiva/interior/garage) "lOT" = ( /obj/structure/bed, /obj/item/bedsheet/orange, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/shiva{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/shiva/red/southwest, /area/shiva/interior/colony/medseceng) "lPh" = ( /obj/structure/surface/rack, /obj/item/explosive/grenade/custom/metal_foam, /obj/item/explosive/grenade/custom/metal_foam, /obj/item/device/flashlight, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/west, /area/shiva/interior/colony/medseceng) "lPC" = ( /obj/structure/surface/table, /obj/item/cell/high/empty, /obj/structure/machinery/cell_charger, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/medseceng) "lQa" = ( -/turf/open/floor/shiva{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/shiva/red/west, /area/shiva/interior/colony/central) "lQm" = ( /obj/structure/reagent_dispensers/water_cooler{ @@ -16962,16 +14374,14 @@ "lRI" = ( /obj/structure/largecrate/random/mini/med, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/valley_huts) +"lRJ" = ( +/turf/open/auto_turf/snow/layer4, +/area/shiva/interior/colony/research_hab) "lSz" = ( /obj/effect/landmark/survivor_spawner, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull/west, /area/shiva/interior/colony/n_admin) "lSU" = ( /turf/closed/wall/shiva/prefabricated/blue, @@ -16987,58 +14397,33 @@ /obj/effect/landmark/nightmare{ insert_tag = "lz2-north" }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) "lTN" = ( /obj/structure/machinery/power/apc{ dir = 4; start_charge = 0 }, -/turf/open/floor{ - dir = 4; - icon_state = "darkbrown2" - }, +/turf/open/floor/darkbrown2/east, /area/shiva/interior/valley_huts/disposals) "lUF" = ( -/turf/open/floor/shiva{ - dir = 1; - icon_state = "snow_mat" - }, +/turf/open/floor/shiva/snow_mat/north, /area/shiva/interior/colony/botany) -"lUL" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W-corner" - }, -/obj/item/lightstick/red/spoke/planted{ - pixel_x = -11; - pixel_y = 25 - }, -/turf/open/floor/plating, -/area/shiva/exterior/lz1_valley) "lUQ" = ( /obj/structure/closet/toolcloset, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/north, /area/shiva/interior/garage) "lVb" = ( /obj/structure/surface/table, /obj/item/paper_bin, /obj/item/tool/pen/blue, -/turf/open/floor/shiva{ - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull, /area/shiva/interior/colony/s_admin) "lVf" = ( /obj/structure/surface/table, /obj/item/trash/plate, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/shiva/interior/colony/central) "lVF" = ( /obj/structure/platform/shiva/catwalk{ @@ -17046,23 +14431,22 @@ }, /turf/open/gm/river/no_overlay, /area/shiva/interior/colony/central) -"lVJ" = ( -/obj/structure/surface/rack, -/obj/item/tool/shovel/snow, -/turf/open/auto_turf/snow/layer3, -/area/shiva/exterior/research_alley) -"lVN" = ( -/obj/structure/closet/radiation, -/turf/open/auto_turf/snow/layer3, -/area/shiva/exterior/research_alley) "lWr" = ( /obj/structure/barricade/handrail/strata, /obj/structure/surface/table, /obj/effect/spawner/random/toolbox, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/central) +"lWC" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W-corner" + }, +/obj/item/lightstick/red/spoke/planted{ + pixel_x = -10; + pixel_y = -1 + }, +/turf/open/floor/plating, +/area/shiva/exterior/junkyard) "lWL" = ( /obj/effect/spider/cocoon{ icon_state = "cocoon_large3" @@ -17075,38 +14459,25 @@ dir = 8; pixel_y = -5 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/shiva/interior/bar) "lWW" = ( -/turf/open/floor{ - dir = 8; - icon_state = "chapel" - }, +/turf/open/floor/chapel/west, /area/shiva/interior/colony/central) "lXj" = ( -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellowcorners" - }, +/turf/open/floor/shiva/yellowcorners/west, /area/shiva/interior/colony/medseceng) "lXy" = ( /obj/structure/surface/table, /obj/structure/machinery/computer/cameras{ pixel_y = 6 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull/west, /area/shiva/interior/colony/research_hab) "lXE" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/ashtray/bronze, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/n_admin) "lXM" = ( /obj/structure/surface/table/woodentable, @@ -17119,19 +14490,22 @@ pixel_x = 2; pixel_y = 16 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/bar) +"lXQ" = ( +/obj/structure/stairs/perspective/ice{ + dir = 1; + icon_state = "p_stair_sn_full_cap" + }, +/turf/open/auto_turf/snow/layer0, +/area/shiva/interior/warehouse/caves) "lYf" = ( /obj/structure/machinery/door/poddoor/shutters/almayer{ dir = 4; id = "nlz_shutters"; name = "\improper Bio-lab Shutters" }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/lz2_habs) "lYk" = ( /obj/structure/surface/table/woodentable, @@ -17171,9 +14545,7 @@ }, /obj/item/ammo_magazine/pistol/holdout, /obj/item/device/flashlight/lamp, -/turf/open/floor/shiva{ - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull, /area/shiva/interior/colony/s_admin) "mae" = ( /obj/structure/surface/table, @@ -17182,10 +14554,8 @@ pixel_y = 9 }, /obj/item/tool/pen/blue, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, -/area/shiva/interior/lz2_habs) +/turf/open/floor/shiva/floor3, +/area/shiva/interior/aux_power) "mah" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony{ dir = 1; @@ -17199,9 +14569,7 @@ /turf/open/floor/wood, /area/shiva/interior/bar) "maW" = ( -/turf/open/floor/shiva{ - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull, /area/shiva/interior/colony/medseceng) "mbj" = ( /obj/structure/prop/invuln/ice_prefab/trim{ @@ -17221,10 +14589,7 @@ /area/shiva/interior/caves/cp_camp) "mcw" = ( /obj/structure/machinery/space_heater, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/north, /area/shiva/interior/colony/research_hab) "mcH" = ( /obj/effect/decal/warning_stripes{ @@ -17232,14 +14597,8 @@ }, /turf/open/floor/plating, /area/shiva/exterior/lz1_valley) -"mda" = ( -/obj/structure/prop/ice_colony/soil_net, -/turf/open/auto_turf/ice/layer1, -/area/shiva/interior/caves/cp_camp) "mdx" = ( -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/n_admin) "mdV" = ( /obj/structure/flora/bush/snow{ @@ -17252,9 +14611,7 @@ /obj/item/stack/sheet/mineral/phoron{ amount = 50 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/medseceng) "meg" = ( /obj/item/tool/wet_sign, @@ -17267,9 +14624,7 @@ /area/shiva/exterior/lz1_valley) "meG" = ( /obj/structure/bed/chair, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/s_admin) "mfa" = ( /obj/item/weapon/ice_axe, @@ -17283,23 +14638,21 @@ /area/shiva/interior/caves/cp_camp) "mfe" = ( /obj/item/frame/firstaid_arm_assembly, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull/west, /area/shiva/interior/colony/medseceng) "mfr" = ( -/turf/open/floor/shiva{ - dir = 4; - icon_state = "yellowcorners" - }, +/turf/open/floor/shiva/yellowcorners/east, /area/shiva/interior/colony/medseceng) +"mgt" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S-corner" + }, +/turf/open/floor/plating, +/area/shiva/exterior/valley) "mgA" = ( /obj/structure/surface/table, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/lz2_habs) "mgL" = ( /obj/item/weapon/gun/energy/taser, @@ -17322,12 +14675,10 @@ "mhs" = ( /obj/effect/spawner/random/powercell, /turf/open/auto_turf/snow/layer3, -/area/shiva/exterior/cp_s_research) +/area/shiva/exterior/junkyard) "mhx" = ( /obj/structure/machinery/light/double, -/turf/open/floor/shiva{ - icon_state = "wred" - }, +/turf/open/floor/shiva/wred, /area/shiva/interior/colony/medseceng) "mhP" = ( /turf/open/floor/plating/plating_catwalk/shiva, @@ -17340,33 +14691,28 @@ "mib" = ( /turf/open/auto_turf/snow/layer3, /area/shiva/interior/caves/medseceng_caves) -"mie" = ( -/obj/structure/prop/ice_colony/surveying_device/measuring_device, -/turf/open/auto_turf/ice/layer1, -/area/shiva/interior/caves/research_caves) "miD" = ( -/turf/open/floor/shiva{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/east, /area/shiva/interior/colony/research_hab) "miW" = ( /obj/structure/closet/secure_closet/security, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull/west, /area/shiva/interior/colony/medseceng) "mjV" = ( /obj/structure/largecrate/random/case/small, /turf/open/floor/plating, /area/shiva/interior/colony/central) +"mkC" = ( +/obj/structure/stairs/perspective{ + dir = 4; + icon_state = "p_stair_sn_full_cap" + }, +/turf/open/auto_turf/snow/layer0, +/area/shiva/interior/caves/cp_camp) "mkK" = ( /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/botany) "mlG" = ( /obj/structure/surface/rack, @@ -17380,22 +14726,10 @@ /turf/open/floor/plating, /area/shiva/exterior/lz2_fortress) "mms" = ( -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/deck) -"mmW" = ( -/obj/structure/prop/invuln/ice_prefab/roof_greeble{ - icon_state = "vent5"; - pixel_x = 16; - pixel_y = 10 - }, -/turf/open/auto_turf/snow/layer3, -/area/shiva/exterior/research_alley) "mnD" = ( -/turf/open/floor/shiva{ - icon_state = "radiator_tile2" - }, +/turf/open/floor/shiva/radiator_tile2, /area/shiva/exterior/lz2_fortress) "mnS" = ( /obj/structure/flora/bush/snow{ @@ -17403,20 +14737,12 @@ }, /turf/open/auto_turf/snow/layer2, /area/shiva/interior/colony/medseceng) -"mnZ" = ( -/turf/open/floor/shiva{ - dir = 4; - icon_state = "snow_mat" - }, -/area/shiva/interior/caves/cp_camp) "moV" = ( /obj/structure/closet/crate/freezer/rations, /obj/item/reagent_container/food/snacks/bigbiteburger, /obj/item/reagent_container/food/snacks/bigbiteburger, /obj/structure/machinery/light/double, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/shiva/interior/bar) "mpt" = ( /obj/effect/decal/cleanable/dirt, @@ -17426,13 +14752,15 @@ }, /turf/open/asphalt/cement, /area/shiva/interior/warehouse) +"mpI" = ( +/obj/structure/fence, +/turf/open/auto_turf/ice/layer1, +/area/shiva/interior/caves/cp_camp) "mqd" = ( /obj/structure/filingcabinet, /obj/item/paper/research_notes, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/shiva{ - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull, /area/shiva/interior/colony/s_admin) "mqe" = ( /obj/structure/machinery/vending/coffee, @@ -17440,17 +14768,13 @@ dir = 4; pixel_x = -24 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/botany) "mqt" = ( /obj/structure/bed/chair/comfy/blue{ dir = 1 }, -/turf/open/floor/shiva{ - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull, /area/shiva/interior/colony/botany) "mqD" = ( /obj/item/stack/sheet/metal, @@ -17465,22 +14789,12 @@ /turf/open/floor/plating, /area/shiva/interior/colony/central) "mrY" = ( -/turf/open/floor/shiva{ - dir = 8; - icon_state = "purplefull" - }, +/turf/open/floor/shiva/purplefull/west, /area/shiva/interior/lz2_habs) "msd" = ( /obj/effect/decal/cleanable/blood/gibs/xeno, -/turf/open/floor/shiva{ - dir = 6; - icon_state = "green" - }, +/turf/open/floor/shiva/green/southeast, /area/shiva/interior/colony/botany) -"msh" = ( -/obj/structure/flora/tree/dead/tree_6, -/turf/open/auto_turf/snow/layer3, -/area/shiva/exterior/cp_s_research) "msu" = ( /obj/structure/closet/bodybag, /obj/effect/landmark/objective_landmark/close, @@ -17491,10 +14805,7 @@ pixel_y = 9 }, /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/shiva/red/north, /area/shiva/interior/colony/medseceng) "mti" = ( /obj/structure/machinery/light/double{ @@ -17505,9 +14816,7 @@ /area/shiva/exterior/cp_lz2) "mtA" = ( /obj/structure/machinery/vending/cigarette/colony, -/turf/open/floor/shiva{ - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull, /area/shiva/interior/colony/central) "mtU" = ( /obj/structure/prop/invuln/ice_prefab/standalone/trim{ @@ -17519,13 +14828,6 @@ /obj/structure/fence, /turf/open/auto_turf/snow/layer2, /area/shiva/exterior/junkyard) -"muI" = ( -/obj/structure/barricade/handrail/wire{ - dir = 4 - }, -/obj/structure/barricade/handrail/wire, -/turf/open/auto_turf/ice/layer0, -/area/shiva/interior/caves/cp_camp) "muN" = ( /obj/structure/surface/table/woodentable/fancy, /obj/item/device/flashlight/lamp, @@ -17558,10 +14860,7 @@ /turf/open/auto_turf/ice/layer1, /area/shiva/exterior/junkyard) "mwF" = ( -/turf/open/floor/shiva{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/southeast, /area/shiva/interior/colony/research_hab) "mwJ" = ( /obj/structure/prop/ice_colony/ground_wire{ @@ -17571,16 +14870,27 @@ /area/shiva/interior/caves/research_caves) "mxn" = ( /obj/structure/machinery/light/double, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/bar) +"mxr" = ( +/obj/structure/stairs/perspective/ice{ + dir = 8; + icon_state = "p_stair_sn_full_cap" + }, +/turf/open/auto_turf/snow/layer0, +/area/shiva/exterior/junkyard) "myR" = ( /obj/structure/prop/invuln/ice_prefab/trim{ dir = 8 }, /turf/closed/wall/shiva/ice, /area/shiva/interior/caves/s_lz2) +"mzf" = ( +/obj/structure/flora/bush/snow{ + icon_state = "snowgrassbb_3" + }, +/turf/open/auto_turf/snow/layer3, +/area/shiva/interior/caves/cp_camp) "mzx" = ( /obj/structure/prop/invuln/ice_prefab/standalone/trim, /turf/open/auto_turf/snow/layer2, @@ -17609,10 +14919,7 @@ /area/shiva/exterior/lz2_fortress) "mBW" = ( /obj/item/reagent_container/glass/bucket, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "purplefull" - }, +/turf/open/floor/shiva/purplefull/west, /area/shiva/interior/lz2_habs) "mCe" = ( /obj/structure/flora/grass/tallgrass/ice/corner{ @@ -17625,9 +14932,7 @@ /obj/effect/decal/cleanable/blood{ layer = 3 }, -/turf/open/floor/shiva{ - icon_state = "wredfull" - }, +/turf/open/floor/shiva/wredfull, /area/shiva/interior/colony/medseceng) "mCj" = ( /turf/open/auto_turf/ice/layer0, @@ -17639,10 +14944,8 @@ /turf/open/auto_turf/snow/layer2, /area/shiva/exterior/junkyard) "mCn" = ( -/turf/open/floor/shiva{ - icon_state = "radiator_tile2" - }, -/area/shiva/interior/lz2_habs) +/turf/open/floor/shiva/radiator_tile2, +/area/shiva/interior/aux_power) "mCo" = ( /obj/structure/flora/bush/snow{ icon_state = "snowgrassall_1" @@ -17654,10 +14957,17 @@ dir = 1; pixel_y = 9 }, -/turf/open/floor/shiva{ - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull, /area/shiva/interior/colony/s_admin) +"mCG" = ( +/obj/structure/platform_decoration/strata{ + dir = 4 + }, +/obj/structure/platform_decoration/strata{ + dir = 8 + }, +/turf/open/gm/river, +/area/shiva/interior/caves/research_caves) "mCQ" = ( /obj/structure/prop/ice_colony/surveying_device/measuring_device{ dir = 1; @@ -17677,9 +14987,7 @@ /obj/structure/machinery/landinglight/ds2/delaythree{ dir = 1 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) "mEw" = ( /obj/structure/cargo_container/wy/left, @@ -17702,14 +15010,10 @@ "mEV" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/tool/hand_labeler, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/medseceng) "mFm" = ( -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) "mFo" = ( /obj/structure/cargo_container/wy/right, @@ -17720,20 +15024,23 @@ dir = 4; pixel_x = 24 }, -/turf/open/floor/shiva{ - dir = 5; - icon_state = "wred" - }, +/turf/open/floor/shiva/wred/northeast, /area/shiva/interior/colony/medseceng) +"mGk" = ( +/obj/item/tool/shovel/snow, +/obj/item/storage/fancy/cigarettes/arcturian_ace{ + layer = 3.1; + pixel_x = -8; + pixel_y = 23 + }, +/turf/open/auto_turf/snow/layer2, +/area/shiva/exterior/cp_s_research) "mGn" = ( /obj/structure/machinery/light/double{ dir = 4; pixel_y = -5 }, -/turf/open/floor/shiva{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/southeast, /area/shiva/interior/colony/central) "mGI" = ( /obj/structure/largecrate/random, @@ -17750,9 +15057,7 @@ /obj/structure/bed/chair/comfy/blue{ dir = 8 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/botany) "mHB" = ( /obj/structure/prop/invuln/ice_prefab{ @@ -17777,10 +15082,7 @@ dir = 1; pixel_y = 9 }, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/shiva/green/north, /area/shiva/interior/colony/botany) "mIx" = ( /obj/effect/decal/cleanable/dirt, @@ -17813,9 +15115,7 @@ /area/shiva/interior/colony/medseceng) "mKk" = ( /obj/structure/machinery/vending/cigarette/colony, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/s_admin) "mKr" = ( /obj/structure/window/framed/shiva, @@ -17836,10 +15136,12 @@ /area/shiva/interior/colony/s_admin) "mKB" = ( /obj/item/paper, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/aerodrome) +"mKD" = ( +/obj/structure/machinery/cell_charger, +/turf/open/auto_turf/snow/layer0, +/area/shiva/exterior/cp_s_research) "mKF" = ( /obj/structure/reagent_dispensers/fueltank, /turf/open/auto_turf/ice/layer1, @@ -17853,22 +15155,12 @@ pixel_x = -2; pixel_y = 10 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/shiva/interior/bar) "mLG" = ( /obj/structure/machinery/vending/cola, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/bar) -"mLR" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W-corner" - }, -/turf/open/floor/plating, -/area/shiva/exterior/lz1_valley) "mLT" = ( /obj/structure/machinery/alarm{ pixel_y = 24 @@ -17878,10 +15170,7 @@ /area/shiva/interior/colony/medseceng) "mMa" = ( /obj/item/packageWrap, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/west, /area/shiva/interior/colony/research_hab) "mMg" = ( /obj/structure/machinery/door/airlock/almayer/security/colony{ @@ -17890,6 +15179,19 @@ }, /turf/open/floor/plating, /area/shiva/interior/colony/medseceng) +"mME" = ( +/obj/item/lightstick/red/spoke/planted{ + layer = 2.99; + pixel_x = -13; + pixel_y = 28 + }, +/obj/structure/largecrate/random/mini/small_case/b, +/obj/structure/largecrate/random/mini/small_case{ + pixel_x = 14; + pixel_y = -3 + }, +/turf/open/auto_turf/snow/layer2, +/area/shiva/interior/caves/cp_camp) "mMK" = ( /turf/open/auto_turf/snow/layer4, /area/shiva/exterior/cp_lz2) @@ -17899,15 +15201,11 @@ /area/shiva/exterior/lz1_valley) "mNK" = ( /obj/structure/dispenser, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/medseceng) "mOu" = ( /obj/structure/machinery/light/double, -/turf/open/floor/shiva{ - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow, /area/shiva/interior/colony/research_hab) "mOv" = ( /obj/structure/platform_decoration/strata{ @@ -17915,10 +15213,6 @@ }, /turf/open/auto_turf/snow/layer4, /area/shiva/exterior/lz1_valley) -"mOT" = ( -/mob/living/simple_animal/hostile/giant_spider/hunter, -/turf/open/auto_turf/ice/layer2, -/area/shiva/interior/caves/left_spiders) "mOY" = ( /obj/structure/reagent_dispensers/fueltank, /turf/open/floor/shiva, @@ -17931,25 +15225,24 @@ /obj/structure/machinery/landinglight/ds2/delaytwo{ dir = 8 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) "mQs" = ( /obj/structure/machinery/light/double{ dir = 1; pixel_y = 9 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/deck) "mQL" = ( -/turf/open/floor{ - dir = 9; - icon_state = "darkgreen2" - }, +/turf/open/floor/darkgreen2/northwest, /area/shiva/interior/colony/botany) +"mRa" = ( +/obj/structure/platform_decoration/shiva/catwalk{ + dir = 1 + }, +/turf/open/auto_turf/snow/layer2, +/area/shiva/exterior/valley) "mRc" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, @@ -17974,10 +15267,7 @@ /turf/open/auto_turf/snow/layer2, /area/shiva/exterior/cp_colony_grounds) "mRU" = ( -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellowcorners" - }, +/turf/open/floor/shiva/yellowcorners/west, /area/shiva/interior/colony/research_hab) "mSv" = ( /obj/item/tool/shovel/spade{ @@ -17987,32 +15277,12 @@ /turf/open/auto_turf/snow/layer2, /area/shiva/exterior/junkyard) "mSR" = ( -/turf/open/floor/shiva{ - icon_state = "bluecorners" - }, +/turf/open/floor/shiva/bluecorners, /area/shiva/interior/colony/central) "mTK" = ( /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/central) -"mTN" = ( -/obj/structure/barricade/handrail/wire{ - dir = 8 - }, -/obj/structure/prop/ice_colony/surveying_device/measuring_device{ - dir = 4; - pixel_x = -5; - pixel_y = -2 - }, -/obj/structure/prop/ice_colony/surveying_device/measuring_device{ - dir = 1; - pixel_x = 7; - pixel_y = 16 - }, -/turf/open/auto_turf/ice/layer0, -/area/shiva/interior/caves/cp_camp) "mUB" = ( /obj/item/lightstick/red/spoke/planted{ layer = 2.99; @@ -18032,20 +15302,9 @@ }, /turf/open/auto_turf/snow/layer3, /area/shiva/exterior/junkyard/cp_bar) -"mUT" = ( -/obj/structure/machinery/light/double{ - dir = 4; - pixel_y = -5 - }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, -/area/shiva/interior/colony/research_hab) "mVl" = ( /obj/structure/prop/dam/truck, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/garage) "mVY" = ( /obj/structure/prop/invuln/ice_prefab/trim{ @@ -18059,17 +15318,12 @@ /area/shiva/exterior/cp_lz2) "mWw" = ( /obj/structure/machinery/light/double, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull/west, /area/shiva/interior/colony/medseceng) "mWA" = ( /obj/structure/closet/secure_closet/freezer/fridge, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/shiva/interior/colony/research_hab) "mWE" = ( /obj/structure/surface/table, @@ -18078,24 +15332,17 @@ dir = 4; pixel_y = -5 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/research_hab) "mWK" = ( /obj/structure/machinery/space_heater, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/bar) "mXq" = ( /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/west, /area/shiva/interior/colony/n_admin) "mXz" = ( /obj/effect/decal/warning_stripes{ @@ -18121,10 +15368,8 @@ dir = 4; pixel_y = -5 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, -/area/shiva/interior/lz2_habs) +/turf/open/floor/shiva/floor3, +/area/shiva/interior/aux_power) "mYK" = ( /obj/structure/prop/invuln/minecart_tracks{ dir = 1 @@ -18136,10 +15381,7 @@ icon_state = "W" }, /obj/item/ammo_magazine/rifle/m41aMK1, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "purplefull" - }, +/turf/open/floor/shiva/purplefull/east, /area/shiva/interior/colony/research_hab) "mZb" = ( /obj/item/stack/sheet/wood, @@ -18150,10 +15392,7 @@ dir = 4; pixel_x = 24 }, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "green" - }, +/turf/open/floor/shiva/green/east, /area/shiva/interior/colony/botany) "naN" = ( /obj/structure/airlock_assembly, @@ -18183,10 +15422,13 @@ /area/shiva/interior/warehouse) "ncY" = ( /obj/item/weapon/gun/flamer, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/central) +"ndb" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/auto_turf/snow/layer0, +/area/shiva/interior/colony/research_hab) "ndJ" = ( /obj/structure/flora/bush/snow{ icon_state = "snowgrassall_3" @@ -18194,9 +15436,7 @@ /turf/open/auto_turf/snow/layer2, /area/shiva/exterior/junkyard) "ndR" = ( -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/central) "nej" = ( /obj/structure/machinery/door/window/brigdoor/westleft{ @@ -18225,9 +15465,7 @@ pixel_x = -4; pixel_y = 4 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/research_hab) "neZ" = ( /obj/effect/decal/warning_stripes{ @@ -18241,9 +15479,7 @@ /area/shiva/exterior/junkyard) "nfe" = ( /obj/structure/bed/chair, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/central) "nfg" = ( /obj/structure/surface/rack, @@ -18257,27 +15493,19 @@ pixel_x = 6; pixel_y = -4 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull/west, /area/shiva/interior/colony/medseceng) "ngx" = ( /obj/vehicle/train/cargo/trolley, -/turf/open/floor/shiva{ - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow, /area/shiva/interior/garage) "ngz" = ( /obj/item/tool/wrench, /turf/open/auto_turf/snow/layer1, /area/shiva/interior/colony/central) "nhl" = ( -/turf/open/floor/shiva{ - dir = 5; - icon_state = "yellow" - }, -/area/shiva/interior/lz2_habs) +/turf/open/floor/shiva/yellow/northeast, +/area/shiva/interior/aux_power) "nhB" = ( /obj/structure/surface/rack, /obj/item/weapon/ice_axe, @@ -18288,17 +15516,24 @@ dir = 4; pixel_y = -5 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/west, /area/shiva/interior/colony/n_admin) -"nhF" = ( -/obj/structure/prop/ice_colony/surveying_device{ - dir = 4 +"nig" = ( +/obj/structure/prop/invuln/ice_prefab/standalone/trim{ + icon_state = "pink_trim" }, -/turf/open/auto_turf/snow/layer0, +/turf/open/auto_turf/snow/layer4, /area/shiva/interior/caves/cp_camp) +"nij" = ( +/obj/item/circuitboard, +/turf/open/auto_turf/snow/layer3, +/area/shiva/exterior/cp_s_research) +"niA" = ( +/obj/structure/stairs/perspective/ice{ + icon_state = "p_stair_full" + }, +/turf/open/auto_turf/ice/layer1, +/area/shiva/interior/caves/research_caves) "niL" = ( /obj/structure/platform/strata{ dir = 8 @@ -18311,10 +15546,6 @@ }, /turf/open/auto_turf/snow/layer2, /area/shiva/exterior/cp_lz2) -"nkH" = ( -/obj/structure/girder, -/turf/open/floor/shiva, -/area/shiva/interior/caves/research_caves) "nlx" = ( /obj/structure/platform/strata, /obj/structure/platform/strata{ @@ -18330,16 +15561,18 @@ /obj/structure/machinery/landinglight/ds2/delaytwo{ dir = 8 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) +"nmf" = ( +/obj/structure/prop/invuln/ice_prefab/standalone/trim{ + icon_state = "pink_trim" + }, +/obj/structure/prop/invuln/ice_prefab/roof_greeble, +/turf/open/auto_turf/snow/layer2, +/area/shiva/interior/caves/cp_camp) "nmi" = ( /obj/item/weapon/twohanded/spear, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "purplefull" - }, +/turf/open/floor/shiva/purplefull/east, /area/shiva/interior/colony/research_hab) "nmt" = ( /obj/structure/machinery/power/apc{ @@ -18362,10 +15595,7 @@ "nnG" = ( /obj/structure/filingcabinet/security, /obj/effect/landmark/objective_landmark/far, -/turf/open/floor/shiva{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/shiva/red/southeast, /area/shiva/interior/colony/central) "noa" = ( /obj/structure/prop/invuln/ice_prefab/standalone/trim{ @@ -18390,20 +15620,27 @@ }, /turf/open/auto_turf/snow/layer3, /area/shiva/interior/colony/medseceng) +"npM" = ( +/obj/structure/machinery/power/reactor/colony, +/turf/open/floor/plating, +/area/shiva/interior/colony/medseceng) +"npY" = ( +/obj/structure/inflatable, +/turf/open/auto_turf/snow/layer3, +/area/shiva/exterior/cp_s_research) "nqu" = ( -/turf/open/floor/shiva{ - dir = 1; - icon_state = "snow_mat" - }, +/turf/open/floor/shiva/snow_mat/north, /area/shiva/interior/colony/central) +"nqK" = ( +/obj/structure/platform/shiva/catwalk, +/turf/open/auto_turf/snow/layer2, +/area/shiva/exterior/valley) "nrf" = ( /obj/structure/machinery/reagentgrinder{ pixel_y = 12 }, /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/shiva/interior/bar) "nrr" = ( /obj/structure/surface/table, @@ -18418,10 +15655,8 @@ /area/shiva/interior/colony/research_hab) "nrB" = ( /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/shiva{ - dir = 1 - }, -/area/shiva/interior/lz2_habs) +/turf/open/floor/shiva/north, +/area/shiva/interior/aux_power) "nrN" = ( /obj/structure/prop/invuln/ice_prefab/standalone, /turf/open/auto_turf/snow/layer2, @@ -18429,19 +15664,13 @@ "nrU" = ( /obj/structure/surface/table, /obj/effect/spawner/random/tool, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "yellow" - }, -/area/shiva/interior/lz2_habs) +/turf/open/floor/shiva/yellow/east, +/area/shiva/interior/aux_power) "nsI" = ( /obj/structure/surface/table, /obj/item/paper/research_notes, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/shiva{ - dir = 6; - icon_state = "wred" - }, +/turf/open/floor/shiva/wred/southeast, /area/shiva/interior/colony/medseceng) "ntc" = ( /turf/open/auto_turf/snow/layer1, @@ -18473,11 +15702,20 @@ }, /turf/open/auto_turf/ice/layer1, /area/shiva/interior/caves/cp_camp) -"nvS" = ( -/turf/open/floor/shiva{ - dir = 8; - icon_state = "snow_mat" +"nvu" = ( +/obj/structure/platform/strata{ + dir = 1 + }, +/obj/structure/platform/strata{ + dir = 4 + }, +/obj/structure/platform/strata{ + dir = 8 }, +/turf/open/gm/river, +/area/shiva/interior/caves/research_caves) +"nvS" = ( +/turf/open/floor/shiva/snow_mat/west, /area/shiva/exterior/cp_colony_grounds) "nwd" = ( /obj/structure/surface/table, @@ -18488,22 +15726,40 @@ /obj/item/storage/firstaid/rad{ pixel_y = 4 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/research_hab) "nxi" = ( /obj/structure/machinery/space_heater, /turf/open/auto_turf/snow/layer3, /area/shiva/exterior/junkyard) +"nxt" = ( +/obj/structure/platform_decoration/strata{ + dir = 1 + }, +/obj/item/lightstick/red/variant/planted{ + pixel_x = -7; + pixel_y = -5 + }, +/obj/structure/blocker/forcefield/multitile_vehicles, +/turf/open/auto_turf/snow/layer0, +/area/shiva/exterior/cp_s_research) "nxA" = ( /obj/structure/bed/chair/office/dark{ dir = 4 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/research_hab) +"nyc" = ( +/obj/structure/flora/bush/ausbushes/lavendergrass, +/turf/open/auto_turf/snow/layer3, +/area/shiva/interior/caves/cp_camp) +"nyS" = ( +/obj/structure/platform/strata{ + dir = 8 + }, +/obj/structure/platform/strata, +/turf/open/gm/river, +/area/shiva/interior/caves/research_caves) "nzf" = ( /obj/structure/surface/table, /obj/structure/noticeboard{ @@ -18524,10 +15780,11 @@ /turf/open/floor/shiva, /area/shiva/interior/colony/research_hab) "nzr" = ( -/obj/structure/barricade/handrail/wire{ - dir = 8 +/obj/effect/decal/cleanable/blood{ + dir = 4; + icon_state = "gib6" }, -/turf/open/auto_turf/ice/layer0, +/turf/open/auto_turf/snow/layer2, /area/shiva/interior/caves/cp_camp) "nzR" = ( /obj/structure/largecrate/random/case/small, @@ -18537,31 +15794,15 @@ /obj/item/tool/crowbar, /turf/open/auto_turf/snow/layer3, /area/shiva/exterior/junkyard) -"nAp" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/obj/structure/desertdam/decals/road_stop{ - icon_state = "road_edge_decal8" - }, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "purplefull" - }, -/area/shiva/interior/colony/research_hab) "nAs" = ( /obj/effect/decal/cleanable/blood/oil, /turf/open/auto_turf/snow/layer1, -/area/shiva/exterior/lz1_valley) +/area/shiva/exterior/junkyard) "nAY" = ( -/turf/open/floor/shiva{ - icon_state = "yellowcorners" - }, +/turf/open/floor/shiva/yellowcorners, /area/shiva/interior/colony/medseceng) "nBh" = ( -/turf/open/floor/shiva{ - icon_state = "yellowcorners" - }, +/turf/open/floor/shiva/yellowcorners, /area/shiva/interior/colony/research_hab) "nBo" = ( /obj/structure/largecrate/random, @@ -18581,26 +15822,19 @@ pixel_x = -5; pixel_y = -2 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/research_hab) "nBB" = ( /obj/effect/decal/cleanable/blood/xeno{ icon_state = "xgib6" }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/lz2_habs) "nCo" = ( /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor{ - dir = 4; - icon_state = "chapel" - }, +/turf/open/floor/chapel/east, /area/shiva/interior/colony/central) "nCx" = ( /obj/structure/closet/coffin, @@ -18618,41 +15852,40 @@ /obj/structure/machinery/space_heater, /turf/open/auto_turf/ice/layer1, /area/shiva/interior/warehouse/caves) -"nEH" = ( -/obj/effect/landmark/monkey_spawn, -/obj/effect/decal/warning_stripes{ - icon_state = "E-corner" +"nED" = ( +/obj/structure/machinery/power/reactor/colony, +/turf/open/floor/shiva/yellowfull/west, +/area/shiva/interior/aux_power) +"nEQ" = ( +/obj/structure/inflatable, +/turf/open/auto_turf/snow/layer2, +/area/shiva/exterior/cp_s_research) +"nEU" = ( +/obj/structure/prop/ice_colony/ground_wire{ + dir = 1 }, -/turf/open/floor/plating, -/area/shiva/exterior/lz1_valley) +/turf/open/auto_turf/snow/layer1, +/area/shiva/interior/caves/cp_camp) "nEZ" = ( /obj/structure/machinery/vending/snack, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/s_admin) "nFg" = ( /obj/item/stool{ pixel_x = 4; pixel_y = 9 }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/shiva/exterior/cp_lz2) "nFB" = ( /obj/structure/machinery/vending/hydronutrients, -/turf/open/floor/shiva{ - icon_state = "greenfull" - }, +/turf/open/floor/shiva/greenfull, /area/shiva/interior/colony/n_admin) "nGv" = ( /obj/item/shard{ icon_state = "large" }, -/turf/open/floor/shiva{ - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull, /area/shiva/interior/colony/s_admin) "nGT" = ( /obj/structure/flora/grass/tallgrass/ice, @@ -18663,27 +15896,14 @@ /obj/structure/bed/chair/office/light{ dir = 8 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/n_admin) -"nHp" = ( -/obj/structure/prop/invuln/ice_prefab/roof_greeble{ - icon_state = "vent4"; - pixel_x = -4; - pixel_y = 10 - }, -/turf/open/auto_turf/snow/layer3, -/area/shiva/exterior/research_alley) "nHt" = ( /obj/structure/machinery/light/double{ dir = 1; pixel_y = 9 }, -/turf/open/floor/shiva{ - dir = 9; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/northwest, /area/shiva/interior/colony/medseceng) "nHH" = ( /obj/structure/surface/table, @@ -18692,14 +15912,18 @@ }, /turf/open/floor/shiva, /area/shiva/interior/colony/research_hab) +"nIA" = ( +/obj/item/lightstick/red/variant/planted, +/obj/structure/platform/shiva/catwalk{ + dir = 8 + }, +/turf/open/auto_turf/snow/layer1, +/area/shiva/interior/aerodrome) "nIB" = ( /obj/structure/surface/table, /obj/item/device/taperecorder, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull/west, /area/shiva/interior/colony/medseceng) "nIN" = ( /obj/effect/decal/cleanable/blood{ @@ -18708,9 +15932,9 @@ /turf/open/floor/wood, /area/shiva/interior/bar) "nJu" = ( -/obj/item/frame/rack, -/turf/open/auto_turf/snow/layer0, -/area/shiva/interior/caves/cp_camp) +/obj/structure/machinery/fuelcell_recycler/full, +/turf/open/floor/shiva/yellow, +/area/shiva/interior/garage) "nKc" = ( /obj/structure/machinery/door/airlock/almayer/medical/colony{ dir = 1; @@ -18730,15 +15954,11 @@ /area/shiva/interior/caves/cp_camp) "nKO" = ( /obj/structure/machinery/light/double, -/turf/open/floor/shiva{ - icon_state = "radiator_tile" - }, +/turf/open/floor/shiva/radiator_tile, /area/shiva/interior/colony/botany) "nLn" = ( /obj/structure/machinery/photocopier, -/turf/open/floor/shiva{ - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull, /area/shiva/interior/colony/s_admin) "nMk" = ( /obj/structure/surface/table, @@ -18749,9 +15969,7 @@ /area/shiva/interior/colony/research_hab) "nMP" = ( /obj/effect/decal/cleanable/blood/drip, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/medseceng) "nMR" = ( /obj/structure/platform_decoration/strata{ @@ -18778,37 +15996,20 @@ /turf/open/auto_turf/ice/layer1, /area/shiva/exterior/lz2_fortress) "nNj" = ( -/turf/open/floor/shiva{ - dir = 10; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/southwest, /area/shiva/interior/colony/medseceng) -"nNl" = ( -/obj/structure/platform/strata{ - dir = 1 - }, -/obj/structure/platform/strata{ - dir = 4 - }, -/turf/open/auto_turf/snow/layer1, -/area/shiva/exterior/lz1_valley) "nNN" = ( /obj/structure/bed/chair/comfy/black{ dir = 8 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull/west, /area/shiva/interior/colony/research_hab) "nNX" = ( /obj/structure/machinery/power/apc{ dir = 1; start_charge = 0 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/warehouse/caves) "nOd" = ( /turf/closed/wall/shiva/prefabricated/reinforced, @@ -18819,20 +16020,19 @@ }, /turf/open/auto_turf/snow/layer1, /area/shiva/exterior/cp_colony_grounds) -"nOw" = ( -/obj/structure/stairs/perspective/ice{ - dir = 8; - icon_state = "p_stair_sn_full_cap" - }, -/turf/open/auto_turf/snow/layer0, -/area/shiva/exterior/lz1_valley) "nOB" = ( /obj/item/stack/sheet/metal, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "purplefull" - }, +/turf/open/floor/shiva/purplefull/west, /area/shiva/interior/colony/research_hab) +"nOK" = ( +/obj/structure/platform/strata{ + dir = 1 + }, +/obj/structure/platform/strata{ + dir = 8 + }, +/turf/open/gm/river, +/area/shiva/exterior/cp_s_research) "nPb" = ( /obj/structure/prop/ice_colony/soil_net, /obj/structure/platform/strata{ @@ -18845,9 +16045,7 @@ pixel_y = 6 }, /obj/structure/surface/table, -/turf/open/floor/shiva{ - icon_state = "yellowfull" - }, +/turf/open/floor/shiva/yellowfull, /area/shiva/interior/colony/research_hab) "nPW" = ( /obj/structure/prop/ice_colony/dense/planter_box{ @@ -18866,22 +16064,21 @@ /obj/structure/surface/table/reinforced/prison, /obj/item/clipboard, /obj/item/tool/stamp, -/turf/open/floor/shiva{ - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull, /area/shiva/interior/colony/n_admin) -"nRL" = ( -/obj/item/device/flashlight, -/turf/open/auto_turf/snow/layer0, -/area/shiva/exterior/research_alley) +"nRD" = ( +/obj/structure/stairs/perspective/ice{ + dir = 1; + icon_state = "p_stair_full" + }, +/turf/open/auto_turf/snow/layer1, +/area/shiva/interior/warehouse/caves) "nSI" = ( /obj/structure/machinery/light/double{ dir = 1; pixel_y = 9 }, -/turf/open/floor/shiva{ - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull, /area/shiva/interior/colony/n_admin) "nSO" = ( /turf/open/auto_turf/ice/layer1, @@ -18894,22 +16091,23 @@ /obj/structure/surface/table, /obj/item/device/encryptionkey, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/shiva{ - icon_state = "yellowfull" - }, +/turf/open/floor/shiva/yellowfull, /area/shiva/interior/telecomm/lz1_biceps) "nTC" = ( -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellowfull" - }, -/area/shiva/interior/lz2_habs) +/turf/open/floor/shiva/yellowfull/west, +/area/shiva/interior/aux_power) "nUa" = ( /obj/structure/bed/chair{ dir = 8 }, /turf/open/floor/wood, /area/shiva/interior/aerodrome) +"nUk" = ( +/obj/structure/platform/strata{ + dir = 4 + }, +/turf/open/auto_turf/snow/layer1, +/area/shiva/interior/caves/cp_camp) "nUn" = ( /obj/structure/bed/chair{ dir = 8 @@ -18918,10 +16116,7 @@ dir = 4; pixel_x = 24 }, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "green" - }, +/turf/open/floor/shiva/green/east, /area/shiva/interior/colony/botany) "nUq" = ( /obj/item/lightstick/variant/planted, @@ -18930,10 +16125,7 @@ "nVn" = ( /obj/structure/surface/table, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull/west, /area/shiva/interior/colony/research_hab) "nVL" = ( /obj/structure/surface/table/reinforced/prison, @@ -18948,17 +16140,13 @@ /obj/item/storage/box/donkpockets{ pixel_y = 3 }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/shiva/interior/colony/research_hab) "nVM" = ( /obj/structure/bed/chair/comfy/orange{ dir = 1 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/s_admin) "nWI" = ( /obj/structure/flora/bush/snow{ @@ -18970,43 +16158,38 @@ /obj/structure/machinery/power/smes/buildable{ name = "backup power SMES" }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/medseceng) "nZA" = ( /turf/open/auto_turf/ice/layer0, /area/shiva/interior/warehouse/caves) +"nZG" = ( +/obj/item/lightstick/red/spoke/planted{ + pixel_x = -16; + pixel_y = -3 + }, +/turf/open/auto_turf/snow/layer3, +/area/shiva/interior/caves/cp_camp) "nZM" = ( /obj/structure/filingcabinet, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/shiva{ - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull, /area/shiva/interior/colony/s_admin) "oag" = ( /obj/structure/machinery/light/double, -/turf/open/floor/shiva{ - icon_state = "yellowfull" - }, +/turf/open/floor/shiva/yellowfull, /area/shiva/interior/colony/research_hab) "oah" = ( /obj/structure/machinery/medical_pod/bodyscanner, /obj/structure/machinery/light/double, -/turf/open/floor/shiva{ - icon_state = "wred" - }, +/turf/open/floor/shiva/wred, /area/shiva/interior/colony/medseceng) "oaH" = ( /obj/structure/machinery/vending/cigarette/colony, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/central) "oaI" = ( -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/bar) "oaO" = ( /obj/item/stack/cable_coil/random, @@ -19034,12 +16217,6 @@ }, /turf/open/auto_turf/snow/layer2, /area/shiva/exterior/cp_lz2) -"ocl" = ( -/obj/effect/landmark/nightmare{ - insert_tag = "labs-larder" - }, -/turf/closed/wall/shiva/prefabricated/blue, -/area/shiva/interior/colony/research_hab) "ocv" = ( /obj/item/weapon/ice_axe/red, /turf/open/auto_turf/ice/layer0, @@ -19062,25 +16239,12 @@ }, /turf/open/floor/shiva, /area/shiva/interior/bar) -"ocI" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W-corner" - }, -/obj/item/lightstick/red/spoke/planted{ - pixel_x = -10; - pixel_y = -1 - }, -/turf/open/floor/plating, -/area/shiva/exterior/lz1_valley) "odb" = ( /obj/structure/machinery/light/double{ dir = 8; pixel_y = -5 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/shiva/red/west, /area/shiva/interior/colony/medseceng) "odg" = ( /obj/item/tool/weldingtool, @@ -19091,9 +16255,7 @@ /area/shiva/interior/lz2_habs) "oeQ" = ( /obj/effect/decal/cleanable/blood/gibs/xeno, -/turf/open/floor/shiva{ - icon_state = "green" - }, +/turf/open/floor/shiva/green, /area/shiva/interior/colony/botany) "ofl" = ( /obj/structure/platform/strata{ @@ -19101,32 +16263,21 @@ }, /turf/open/auto_turf/snow/layer1, /area/shiva/exterior/lz1_valley) -"ofr" = ( -/obj/item/frame/rack, -/turf/open/auto_turf/ice/layer1, -/area/shiva/interior/caves/cp_camp) "ofw" = ( /turf/open/auto_turf/snow/layer4, /area/shiva/exterior/junkyard) "ofK" = ( /obj/structure/closet/secure_closet/security, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/s_admin) "ofU" = ( /obj/item/stack/cable_coil/cut, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/east, /area/shiva/interior/colony/medseceng) "ogd" = ( /obj/structure/machinery/chem_master/condimaster, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/bar) "ogu" = ( /obj/structure/machinery/door/airlock/almayer/generic/autoname{ @@ -19145,16 +16296,17 @@ /turf/open/auto_turf/snow/layer2, /area/shiva/exterior/cp_lz2) "ohb" = ( -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellowfull" - }, +/turf/open/floor/shiva/yellowfull/west, /area/shiva/interior/garage) +"ohd" = ( +/obj/structure/prop/ice_colony/ground_wire{ + dir = 1 + }, +/turf/open/auto_turf/snow/layer3, +/area/shiva/interior/caves/cp_camp) "ohq" = ( /obj/structure/largecrate/random/case, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/aerodrome) "ohE" = ( /obj/item/clipboard, @@ -19168,6 +16320,17 @@ /obj/structure/flora/tree/dead/tree_1, /turf/open/auto_turf/snow/layer3, /area/shiva/exterior/junkyard) +"oiL" = ( +/obj/item/lightstick/red/spoke/planted{ + pixel_x = 15; + pixel_y = -3 + }, +/obj/item/lightstick/red/spoke/planted{ + pixel_x = -16; + pixel_y = -3 + }, +/turf/open/auto_turf/ice/layer1, +/area/shiva/exterior/cp_s_research) "oiX" = ( /obj/structure/prop/invuln/ice_prefab{ dir = 10 @@ -19179,36 +16342,31 @@ /obj/structure/blocker/forcefield/multitile_vehicles, /turf/open/auto_turf/snow/layer2, /area/shiva/exterior/valley) +"okc" = ( +/obj/structure/machinery/light/double{ + dir = 4; + pixel_y = -5 + }, +/turf/open/floor/wood, +/area/shiva/interior/aerodrome) "okz" = ( /obj/effect/decal/cleanable/blood{ layer = 3 }, /obj/effect/landmark/corpsespawner/doctor, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/s_admin) "okM" = ( /obj/item/frame/toolbox_tiles, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull/west, /area/shiva/interior/colony/medseceng) -"ols" = ( -/turf/closed/wall/shiva/prefabricated/reinforced/hull, -/area/shiva/exterior/valley) "olI" = ( /obj/item/device/pinpointer, -/turf/open/floor/shiva{ - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull, /area/shiva/interior/colony/s_admin) "omu" = ( /obj/structure/machinery/photocopier, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/aerodrome) "onc" = ( /obj/structure/girder/displaced, @@ -19219,17 +16377,11 @@ /obj/item/evidencebag, /turf/open/floor/wood, /area/shiva/interior/colony/medseceng) -"onF" = ( -/obj/item/lightstick/red/variant/planted, -/turf/open/auto_turf/snow/layer2, -/area/shiva/exterior/valley) "onM" = ( /obj/structure/bed/chair/office/dark{ dir = 1 }, -/turf/open/floor/shiva{ - icon_state = "yellowfull" - }, +/turf/open/floor/shiva/yellowfull, /area/shiva/interior/colony/research_hab) "ood" = ( /turf/open/auto_turf/ice/layer0, @@ -19244,9 +16396,7 @@ /area/shiva/interior/colony/central) "opM" = ( /obj/structure/machinery/vending/snack, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/s_admin) "oqf" = ( /obj/structure/flora/tree/dead/tree_3, @@ -19254,9 +16404,7 @@ /area/shiva/exterior/lz1_valley) "oqt" = ( /obj/effect/landmark/hunter_secondary, -/turf/open/floor/shiva{ - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull, /area/shiva/interior/colony/central) "oqy" = ( /obj/effect/decal/warning_stripes{ @@ -19278,10 +16426,7 @@ /obj/structure/bed/chair/comfy/black{ dir = 4 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull/west, /area/shiva/interior/colony/research_hab) "oqX" = ( /obj/item/reagent_container/glass/bucket{ @@ -19295,25 +16440,22 @@ dir = 2; name = "Underground Morgue" }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/central) +"ork" = ( +/obj/structure/flora/tree/dead/tree_1, +/turf/open/auto_turf/snow/layer2, +/area/shiva/exterior/cp_s_research) "ors" = ( /obj/effect/decal/cleanable/dirt, /turf/open/auto_turf/ice/layer1, /area/shiva/interior/colony/research_hab) "orO" = ( /obj/structure/desertdam/decals/road_stop, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/research_hab) "osh" = ( -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellowfull" - }, +/turf/open/floor/shiva/yellowfull/west, /area/shiva/interior/colony/medseceng) "osE" = ( /turf/open/auto_turf/ice/layer2, @@ -19322,32 +16464,32 @@ /obj/structure/prop/ice_colony/dense/ice_tray, /turf/open/auto_turf/ice/layer1, /area/shiva/interior/caves/cp_camp) +"osV" = ( +/obj/structure/machinery/light/double{ + dir = 8; + pixel_y = -5 + }, +/turf/open/floor/shiva/multi_tiles/east, +/area/shiva/interior/colony/research_hab) "otA" = ( /obj/structure/machinery/computer/cameras/wooden_tv{ pixel_y = 7 }, /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/s_admin) "otJ" = ( /obj/effect/decal/cleanable/blood, /turf/open/auto_turf/snow/layer2, /area/shiva/exterior/junkyard) "otL" = ( -/turf/open/floor/shiva{ - dir = 8; - icon_state = "greencorners" - }, +/turf/open/floor/shiva/greencorners/west, /area/shiva/interior/colony/botany) "otV" = ( /obj/vehicle/powerloader/jd{ dir = 4 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) "ouS" = ( /obj/item/lightstick/red/spoke/planted{ @@ -19361,10 +16503,7 @@ /area/shiva/interior/colony/medseceng) "ovh" = ( /obj/item/stack/barbed_wire, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "green" - }, +/turf/open/floor/shiva/green/west, /area/shiva/interior/colony/botany) "ovI" = ( /obj/structure/largecrate/random/mini/med, @@ -19377,17 +16516,14 @@ "owr" = ( /obj/structure/flora/bush/ausbushes/lavendergrass, /turf/open/auto_turf/snow/layer0, -/area/shiva/exterior/cp_s_research) +/area/shiva/exterior/junkyard) "owt" = ( /obj/structure/bed, /obj/item/bedsheet/medical, /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/shiva{ - dir = 10; - icon_state = "wred" - }, +/turf/open/floor/shiva/wred/southwest, /area/shiva/interior/colony/medseceng) "oww" = ( /obj/item/frame/rack, @@ -19397,9 +16533,7 @@ /obj/item/shard{ icon_state = "medium" }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/s_admin) "owB" = ( /obj/structure/platform/shiva/catwalk{ @@ -19409,9 +16543,7 @@ /area/shiva/exterior/cp_colony_grounds) "owD" = ( /obj/structure/filingcabinet, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/s_admin) "owW" = ( /obj/structure/barricade/snow{ @@ -19432,9 +16564,7 @@ dir = 1; start_charge = 0 }, -/turf/open/floor/shiva{ - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull, /area/shiva/interior/colony/n_admin) "oyw" = ( /obj/structure/platform_decoration/strata, @@ -19451,21 +16581,11 @@ /obj/structure/largecrate, /turf/open/auto_turf/ice/layer1, /area/shiva/interior/warehouse/caves) -"oCk" = ( -/obj/item/lightstick/red/spoke/planted{ - layer = 2.99; - pixel_x = 12; - pixel_y = 28 - }, -/turf/open/auto_turf/snow/layer3, -/area/shiva/exterior/valley) "oCr" = ( /obj/item/shard{ icon_state = "large" }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/garage) "oCG" = ( /turf/open/floor/plating/plating_catwalk/shiva, @@ -19486,11 +16606,12 @@ }, /turf/open/auto_turf/snow/layer2, /area/shiva/exterior/cp_lz2) +"oDJ" = ( +/obj/structure/machinery/fuelcell_recycler/full, +/turf/open/floor/shiva/yellow/southeast, +/area/shiva/interior/garage) "oDM" = ( -/turf/open/floor/shiva{ - dir = 10; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/southwest, /area/shiva/interior/garage) "oDQ" = ( /obj/structure/flora/grass/tallgrass/ice/corner, @@ -19506,9 +16627,7 @@ /area/shiva/interior/colony/s_admin) "oET" = ( /obj/item/weapon/baseballbat/metal, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/bar) "oEU" = ( /obj/item/lightstick/red/spoke/planted{ @@ -19527,22 +16646,14 @@ /area/shiva/interior/warehouse/caves) "oFG" = ( /obj/structure/machinery/body_scanconsole, -/turf/open/floor/shiva{ - dir = 5; - icon_state = "wred" - }, +/turf/open/floor/shiva/wred/northeast, /area/shiva/interior/colony/medseceng) "oFX" = ( -/turf/open/floor/shiva{ - dir = 8; - icon_state = "wredcorners" - }, +/turf/open/floor/shiva/wredcorners/west, /area/shiva/interior/colony/medseceng) "oGb" = ( /obj/vehicle/train/cargo/trolley, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/bar) "oGg" = ( /obj/structure/blocker/forcefield/multitile_vehicles, @@ -19554,10 +16665,7 @@ /area/shiva/exterior/cp_s_research) "oHz" = ( /obj/structure/machinery/space_heater, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/north, /area/shiva/interior/colony/medseceng) "oHE" = ( /obj/structure/flora/grass/tallgrass/ice/corner{ @@ -19569,32 +16677,22 @@ /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22" }, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/north, /area/shiva/interior/colony/research_hab) "oHI" = ( /obj/structure/ice/thin/single{ opacity = 1; unacidable = 0 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) "oIh" = ( /obj/item/frame/air_alarm, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "wred" - }, +/turf/open/floor/shiva/wred/north, /area/shiva/interior/colony/medseceng) "oIR" = ( /obj/structure/largecrate/random/case/small, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/aerodrome) "oJe" = ( /obj/structure/surface/table, @@ -19603,9 +16701,7 @@ dir = 4; pixel_y = -5 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/medseceng) "oKc" = ( /obj/effect/decal/warning_stripes{ @@ -19631,9 +16727,7 @@ dir = 4; pixel_x = -24 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/s_admin) "oLu" = ( /obj/structure/platform/strata{ @@ -19659,9 +16753,7 @@ dir = 8; pixel_y = -5 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/s_admin) "oNz" = ( /obj/item/stack/rods, @@ -19689,14 +16781,19 @@ "oQl" = ( /turf/closed/wall/shiva/ice, /area/shiva/exterior/valley) +"oQo" = ( +/turf/closed/wall/shiva/prefabricated, +/area/shiva/exterior/cp_s_research) "oRH" = ( /turf/open/auto_turf/snow/layer2, /area/shiva/interior/caves/cp_camp) +"oRK" = ( +/obj/structure/blocker/forcefield/multitile_vehicles, +/turf/open/auto_turf/snow/layer0, +/area/shiva/exterior/valley) "oSU" = ( /obj/structure/machinery/disposal, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/s_admin) "oTd" = ( /obj/structure/prop/invuln/ice_prefab{ @@ -19706,9 +16803,7 @@ /area/shiva/exterior/cp_lz2) "oTh" = ( /obj/vehicle/train/cargo/trolley, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/garage) "oUu" = ( /obj/item/lightstick/red/variant/planted, @@ -19718,10 +16813,7 @@ /obj/structure/barricade/deployable{ dir = 1 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull/west, /area/shiva/interior/warehouse) "oWG" = ( /obj/structure/machinery/portable_atmospherics/powered/scrubber{ @@ -19732,17 +16824,13 @@ "oXf" = ( /obj/structure/closet/secure_closet/freezer/meat, /obj/item/stack/sheet/metal/medium_stack, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/shiva/interior/bar) "oXz" = ( /obj/structure/bed/chair/comfy/blue{ dir = 8 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/n_admin) "oXM" = ( /obj/structure/machinery/space_heater, @@ -19764,10 +16852,7 @@ /turf/open/auto_turf/snow/layer1, /area/shiva/interior/colony/medseceng) "oYH" = ( -/turf/open/floor/shiva{ - dir = 8; - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull/west, /area/shiva/interior/aerodrome) "oYX" = ( /obj/structure/flora/grass/tallgrass/ice/corner{ @@ -19779,15 +16864,14 @@ /obj/structure/platform/strata{ dir = 4 }, +/obj/structure/blocker/forcefield/multitile_vehicles, /turf/open/auto_turf/snow/layer1, /area/shiva/exterior/junkyard) "oZs" = ( /obj/effect/decal/warning_stripes{ icon_state = "N" }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/research_hab) "oZE" = ( /obj/structure/coatrack, @@ -19795,9 +16879,7 @@ /area/shiva/interior/bar) "oZR" = ( /obj/item/stack/cable_coil/green, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/aerodrome) "pad" = ( /obj/structure/machinery/computer/atmos_alert{ @@ -19807,18 +16889,14 @@ /obj/structure/window/reinforced/tinted{ dir = 8 }, -/turf/open/floor/shiva{ - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull, /area/shiva/interior/colony/n_admin) "paZ" = ( /obj/item/paper_bin, /obj/item/tool/pen/blue, /obj/structure/surface/table/reinforced/prison, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/shiva{ - icon_state = "wred" - }, +/turf/open/floor/shiva/wred, /area/shiva/interior/colony/medseceng) "pbY" = ( /obj/effect/decal/cleanable/blood{ @@ -19834,14 +16912,12 @@ icon_state = "large"; name = "ice shard" }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) "pct" = ( /obj/effect/spider/stickyweb, /turf/open/auto_turf/ice/layer2, -/area/shiva/interior/caves/left_spiders) +/area/shiva/interior/caves/cp_camp) "pcC" = ( /obj/item/tool/pen/blue, /obj/structure/surface/table/reinforced/prison, @@ -19869,22 +16945,11 @@ /obj/effect/decal/cleanable/dirt, /obj/structure/largecrate/random/barrel/yellow, /obj/structure/machinery/light/double{ - dir = 4; + dir = 8; pixel_y = -5 }, /turf/open/asphalt/cement, /area/shiva/interior/warehouse) -"pei" = ( -/obj/item/lightstick/red/spoke/planted{ - pixel_x = 15; - pixel_y = -3 - }, -/obj/item/lightstick/red/spoke/planted{ - pixel_x = -16; - pixel_y = -3 - }, -/turf/open/auto_turf/ice/layer1, -/area/shiva/interior/caves/cp_camp) "pey" = ( /obj/structure/platform/strata{ dir = 4 @@ -19893,17 +16958,17 @@ /area/shiva/interior/caves/s_lz2) "peQ" = ( /obj/item/device/flashlight/lamp/tripod/grey, -/turf/open/floor/shiva{ - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull, /area/shiva/interior/colony/n_admin) +"pff" = ( +/obj/item/stack/rods, +/turf/open/auto_turf/snow/layer3, +/area/shiva/interior/caves/cp_camp) "pfg" = ( /obj/structure/barricade/handrail/strata{ dir = 8 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/deck) "pfp" = ( /obj/structure/prop/invuln/ice_prefab{ @@ -19925,9 +16990,7 @@ dir = 4; pixel_y = -5 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/aerodrome) "pgu" = ( /turf/open/auto_turf/ice/layer0, @@ -19940,9 +17003,7 @@ /area/shiva/exterior/cp_lz2) "piW" = ( /obj/structure/machinery/vending/snack, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/medseceng) "pji" = ( /obj/item/paper_bin{ @@ -19955,9 +17016,7 @@ /obj/structure/prop/invuln/minecart_tracks/bumper{ dir = 8 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/cp_colony_grounds) "pkp" = ( /obj/structure/filingcabinet, @@ -19966,9 +17025,7 @@ /area/shiva/interior/colony/medseceng) "pkK" = ( /obj/structure/machinery/light/double, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/research_hab) "pkT" = ( /obj/structure/platform/strata, @@ -19978,18 +17035,11 @@ /obj/structure/bed/chair/office/dark{ dir = 1 }, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/shiva/red/north, /area/shiva/interior/colony/central) "plM" = ( /turf/open/auto_turf/ice/layer0, /area/shiva/exterior/junkyard) -"plS" = ( -/obj/structure/flora/bush/ausbushes/lavendergrass, -/turf/open/auto_turf/snow/layer3, -/area/shiva/exterior/cp_s_research) "pmj" = ( /obj/effect/landmark/objective_landmark/close, /turf/open/auto_turf/ice/layer1, @@ -19997,9 +17047,7 @@ "pmz" = ( /obj/structure/closet/secure_closet/personal, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/s_admin) "pmI" = ( /obj/structure/machinery/alarm{ @@ -20010,29 +17058,30 @@ pixel_x = 5; pixel_y = 4 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "green" - }, +/turf/open/floor/shiva/green/west, /area/shiva/interior/colony/botany) "pnd" = ( /obj/structure/stairs/perspective{ dir = 1; icon_state = "p_stair_sn_full_cap" }, -/turf/open/floor/shiva{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/southeast, /area/shiva/interior/bar) "pnK" = ( /obj/structure/surface/table, /obj/item/reagent_container/food/snacks/human/burger, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/shiva{ +/turf/open/floor/shiva/north, +/area/shiva/interior/colony/medseceng) +"poz" = ( +/obj/structure/platform/strata{ dir = 1 }, -/area/shiva/interior/colony/medseceng) +/obj/structure/platform/strata{ + dir = 8 + }, +/turf/open/auto_turf/snow/layer3, +/area/shiva/exterior/lz1_valley) "ppb" = ( /obj/structure/prop/invuln/ice_prefab{ dir = 9 @@ -20041,10 +17090,14 @@ /area/shiva/interior/caves/cp_camp) "ppI" = ( /obj/structure/machinery/vending/cigarette/colony, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/aerodrome) +"ppS" = ( +/obj/structure/stairs/perspective{ + icon_state = "p_stair_full" + }, +/turf/open/auto_turf/snow/layer0, +/area/shiva/interior/caves/cp_camp) "pqe" = ( /turf/closed/wall/shiva/prefabricated/reinforced/hull, /area/shiva/interior/bar) @@ -20062,10 +17115,7 @@ dir = 1; start_charge = 0 }, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/north, /area/shiva/interior/garage) "prO" = ( /obj/structure/stairs/perspective/ice{ @@ -20076,15 +17126,13 @@ dir = 8 }, /turf/open/auto_turf/snow/layer1, -/area/shiva/exterior/junkyard) +/area/shiva/interior/caves/research_caves) "prU" = ( /obj/structure/machinery/light/double{ dir = 8; pixel_y = -5 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/central) "psl" = ( /obj/structure/flora/bush/snow, @@ -20093,9 +17141,7 @@ "pth" = ( /obj/structure/filingcabinet, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/lz2_habs) "pti" = ( /obj/item/tool/weldpack{ @@ -20118,12 +17164,9 @@ icon_state = "p_stair_sn_full_cap" }, /turf/open/auto_turf/snow/layer0, -/area/shiva/exterior/junkyard) +/area/shiva/interior/caves/research_caves) "ptr" = ( -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/west, /area/shiva/interior/colony/research_hab) "pue" = ( /obj/item/trash/cigbutt/ucigbutt{ @@ -20135,9 +17178,7 @@ /obj/structure/prop/invuln/minecart_tracks/bumper{ dir = 8 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/caves/s_lz2) "puN" = ( /obj/structure/machinery/light/double{ @@ -20145,16 +17186,12 @@ pixel_y = -5 }, /obj/structure/machinery/vending/coffee, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/s_admin) "puT" = ( /obj/structure/surface/table, /obj/effect/landmark/objective_landmark/far, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/shiva/interior/colony/central) "puZ" = ( /turf/closed/wall/shiva/ice, @@ -20163,25 +17200,16 @@ /obj/structure/bed/chair/office/light{ dir = 8 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/research_hab) "pvk" = ( /obj/structure/surface/table, /obj/effect/landmark/crap_item, -/turf/open/floor/shiva{ - dir = 6; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/southeast, /area/shiva/interior/colony/medseceng) "pvv" = ( /turf/open/floor/shiva, /area/shiva/interior/aerodrome) -"pvR" = ( -/obj/structure/platform_decoration/strata, -/turf/open/gm/river, -/area/shiva/interior/caves/cp_camp) "pvU" = ( /obj/structure/flora/grass/tallgrass/ice, /turf/open/auto_turf/snow/layer2, @@ -20193,16 +17221,14 @@ /turf/open/auto_turf/ice/layer1, /area/shiva/interior/caves/cp_camp) "pwT" = ( -/turf/open/floor/shiva{ - dir = 1; - icon_state = "snow_mat" +/obj/structure/flora/bush/snow{ + icon_state = "snowgrassall_1" }, +/turf/open/auto_turf/snow/layer3, /area/shiva/interior/caves/cp_camp) "pxi" = ( /obj/structure/closet/secure_closet/engineering_welding, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/medseceng) "pxl" = ( /obj/structure/prop/ice_colony/dense/planter_box{ @@ -20222,28 +17248,13 @@ icon_state = "medium"; name = "ice shard" }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) -"pyB" = ( -/obj/structure/prop/invuln/dense/ice_tray{ - dir = 10; - pixel_y = -9 - }, -/obj/structure/prop/invuln/dense/ice_tray{ - pixel_y = 10 - }, -/turf/open/auto_turf/ice/layer1, -/area/shiva/interior/caves/cp_camp) "pyI" = ( /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull/west, /area/shiva/interior/colony/medseceng) "pyK" = ( /obj/item/lightstick/red/spoke/planted{ @@ -20261,9 +17272,7 @@ /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/s_admin) "pzi" = ( /obj/item/newspaper, @@ -20276,84 +17285,81 @@ "pzJ" = ( /turf/closed/wall/shiva/prefabricated, /area/shiva/exterior/cp_colony_grounds) +"pAx" = ( +/obj/structure/platform/shiva/catwalk{ + dir = 1 + }, +/turf/open/auto_turf/snow/layer3, +/area/shiva/exterior/valley) "pAE" = ( /obj/structure/machinery/light/double{ dir = 8; pixel_y = -5 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "wred" - }, +/turf/open/floor/shiva/wred/west, /area/shiva/interior/colony/medseceng) "pAO" = ( /obj/structure/barricade/handrail/strata{ dir = 8 }, /obj/item/newspaper, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/central) "pAV" = ( /obj/structure/stairs/perspective{ dir = 1; icon_state = "p_stair_full" }, -/turf/open/floor/shiva{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/southeast, /area/shiva/interior/bar) "pBl" = ( /obj/structure/machinery/landinglight/ds2/spoke, /obj/structure/machinery/landinglight/ds2/delaythree{ dir = 8 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) "pBy" = ( /obj/structure/closet/secure_closet/freezer/fridge, /obj/effect/landmark/objective_landmark/far, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/botany) +"pBL" = ( +/turf/open/floor/plating/plating_catwalk/shiva, +/area/shiva/interior/aux_power) "pCe" = ( /obj/structure/stairs/perspective/ice{ dir = 1; icon_state = "p_stair_sn_full_cap" }, /turf/open/auto_turf/snow/layer1, -/area/shiva/exterior/lz1_valley) +/area/shiva/interior/caves/research_caves) +"pCw" = ( +/obj/item/lightstick/red/spoke/planted{ + pixel_x = 12; + pixel_y = 25 + }, +/turf/open/auto_turf/snow/layer4, +/area/shiva/interior/caves/cp_camp) "pCH" = ( /obj/item/tool/shovel, /turf/open/auto_turf/snow/layer3, /area/shiva/exterior/cp_colony_grounds) "pCI" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/research_hab) "pCJ" = ( /obj/item/book/manual/marine_law, /obj/structure/surface/table/reinforced/prison, -/obj/item/handcuffs, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "red" - }, +/obj/item/restraint/handcuffs, +/turf/open/floor/shiva/red/north, /area/shiva/interior/colony/medseceng) "pDp" = ( /obj/structure/bed/chair/office/light{ dir = 4 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/research_hab) "pDr" = ( /obj/structure/fence, @@ -20374,10 +17380,6 @@ }, /turf/open/floor/shiva, /area/shiva/interior/colony/research_hab) -"pDH" = ( -/obj/structure/platform_decoration/strata, -/turf/open/auto_turf/snow/layer2, -/area/shiva/exterior/valley) "pDW" = ( /obj/structure/prop/ice_colony/soil_net, /turf/open/auto_turf/snow/layer1, @@ -20397,15 +17399,10 @@ }, /obj/structure/surface/table/reinforced/prison, /obj/effect/landmark/crap_item, -/turf/open/floor/shiva{ - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull, /area/shiva/interior/colony/s_admin) "pEs" = ( -/turf/open/floor/shiva{ - dir = 1; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/north, /area/shiva/interior/colony/deck) "pEv" = ( /obj/structure/surface/table, @@ -20424,9 +17421,7 @@ /area/shiva/interior/caves/s_lz2) "pFd" = ( /obj/structure/machinery/light/double, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/garage) "pFg" = ( /obj/structure/platform/strata{ @@ -20434,44 +17429,39 @@ }, /turf/open/gm/river/no_overlay, /area/shiva/interior/caves/cp_camp) -"pFq" = ( -/obj/structure/surface/rack, -/obj/item/tool/crowbar/red, -/turf/open/auto_turf/snow/layer1, -/area/shiva/exterior/cp_s_research) "pFt" = ( -/turf/open/floor/shiva{ - icon_state = "red" - }, +/turf/open/floor/shiva/red, /area/shiva/interior/colony/medseceng) "pFI" = ( -/turf/open/floor/shiva{ - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull, /area/shiva/interior/colony/botany) "pFJ" = ( /obj/structure/machinery/light/double, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellowfull" - }, -/area/shiva/interior/lz2_habs) +/turf/open/floor/shiva/yellowfull/west, +/area/shiva/interior/aux_power) "pGf" = ( -/turf/open/floor/shiva{ - dir = 10; - icon_state = "wred" - }, +/turf/open/floor/shiva/wred/southwest, /area/shiva/interior/colony/medseceng) "pGg" = ( /obj/structure/machinery/landinglight/ds2/delaytwo, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) +"pGi" = ( +/obj/structure/prop/ice_colony/ground_wire, +/turf/open/auto_turf/snow/layer3, +/area/shiva/interior/caves/cp_camp) "pGj" = ( /obj/item/weapon/ice_axe/red, -/turf/open/auto_turf/snow/layer0, +/turf/open/auto_turf/snow/layer3, /area/shiva/interior/caves/cp_camp) +"pGt" = ( +/obj/item/lightstick/red/spoke/planted{ + layer = 3.1; + pixel_x = -13; + pixel_y = 25 + }, +/turf/open/auto_turf/snow/layer1, +/area/shiva/exterior/cp_s_research) "pGL" = ( /obj/structure/platform/strata{ dir = 1 @@ -20481,10 +17471,7 @@ "pHz" = ( /obj/structure/closet/secure_closet/personal, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/shiva{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/shiva/red/southwest, /area/shiva/interior/colony/medseceng) "pId" = ( /obj/structure/machinery/computer/cameras/telescreen{ @@ -20495,10 +17482,7 @@ /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull/west, /area/shiva/interior/colony/medseceng) "pIK" = ( /obj/structure/flora/bush/snow{ @@ -20506,11 +17490,18 @@ }, /turf/open/auto_turf/snow/layer3, /area/shiva/exterior/junkyard/cp_bar) +"pIV" = ( +/obj/structure/prop/invuln/ice_prefab/standalone/trim, +/obj/structure/prop/invuln/ice_prefab/roof_greeble{ + icon_state = "windsock"; + pixel_x = 6; + pixel_y = -1 + }, +/turf/closed/wall/shiva/ice, +/area/shiva/exterior/cp_s_research) "pJp" = ( /obj/effect/decal/cleanable/ash, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/exterior/lz2_fortress) "pJA" = ( /obj/structure/surface/table, @@ -20536,9 +17527,7 @@ /obj/effect/decal/warning_stripes{ icon_state = "SE-out" }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/garage) "pKf" = ( /obj/item/stack/cable_coil/white, @@ -20563,16 +17552,13 @@ "pKK" = ( /obj/item/lightstick/red/variant, /turf/open/auto_turf/snow/layer0, -/area/shiva/exterior/lz1_valley) +/area/shiva/exterior/junkyard) "pKP" = ( /obj/structure/surface/table, /obj/item/device/flashlight/lamp/green{ pixel_y = 7 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull/west, /area/shiva/interior/colony/research_hab) "pKQ" = ( /obj/structure/surface/table/reinforced/prison, @@ -20593,20 +17579,14 @@ pixel_y = 9 }, /obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/north, /area/shiva/interior/colony/medseceng) "pLy" = ( /obj/structure/surface/table, /obj/item/device/flashlight/lamp{ pixel_y = 4 }, -/turf/open/floor/shiva{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/shiva/red/southeast, /area/shiva/interior/colony/medseceng) "pLS" = ( /obj/structure/surface/rack, @@ -20617,22 +17597,15 @@ dir = 8; pixel_y = -5 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/deck) "pME" = ( /obj/item/ammo_magazine/revolver/cmb, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/lz2_habs) "pMK" = ( /obj/structure/machinery/processor, -/obj/structure/machinery/processor, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/shiva/interior/bar) "pMV" = ( /obj/structure/prop/ice_colony/ground_wire{ @@ -20644,9 +17617,7 @@ /turf/open/auto_turf/snow/layer0, /area/shiva/interior/caves/cp_camp) "pNf" = ( -/turf/open/floor/shiva{ - icon_state = "yellowcorners" - }, +/turf/open/floor/shiva/yellowcorners, /area/shiva/interior/garage) "pNo" = ( /obj/item/lightstick/red/spoke/planted{ @@ -20658,10 +17629,7 @@ /turf/open/floor/plating, /area/shiva/exterior/lz1_valley) "pNq" = ( -/turf/open/floor/shiva{ - dir = 5; - icon_state = "wred" - }, +/turf/open/floor/shiva/wred/northeast, /area/shiva/interior/colony/medseceng) "pNs" = ( /obj/structure/flora/tree/dead/tree_2, @@ -20675,9 +17643,7 @@ dir = 4; pixel_y = -5 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/s_admin) "pNy" = ( /obj/structure/closet/cabinet, @@ -20686,30 +17652,19 @@ /area/shiva/interior/colony/botany) "pNM" = ( /obj/item/stack/cable_coil/cut, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellowfull" - }, +/turf/open/floor/shiva/yellowfull/west, /area/shiva/interior/colony/medseceng) -"pOy" = ( -/obj/structure/inflatable, -/turf/open/auto_turf/snow/layer0, -/area/shiva/exterior/research_alley) "pOI" = ( /obj/structure/surface/table, /obj/item/reagent_container/food/drinks/dry_ramen, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/shiva/interior/colony/central) "pOM" = ( /obj/structure/machinery/power/apc{ dir = 1; start_charge = 0 }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/shiva/interior/telecomm/lz1_biceps) "pPt" = ( /obj/structure/surface/table, @@ -20724,15 +17679,9 @@ }, /turf/open/auto_turf/ice/layer1, /area/shiva/interior/caves/cp_camp) -"pPY" = ( -/obj/structure/inflatable/popped, -/turf/open/auto_turf/snow/layer0, -/area/shiva/exterior/research_alley) "pQt" = ( /obj/item/stack/sheet/metal, -/turf/open/floor/shiva{ - icon_state = "wredfull" - }, +/turf/open/floor/shiva/wredfull, /area/shiva/interior/colony/medseceng) "pQE" = ( /turf/closed/wall/shiva/prefabricated/reinforced, @@ -20744,21 +17693,24 @@ }, /turf/open/floor/shiva, /area/shiva/interior/colony/research_hab) +"pRM" = ( +/obj/structure/platform_decoration/strata{ + dir = 1 + }, +/obj/structure/platform_decoration/strata, +/turf/open/gm/river, +/area/shiva/interior/caves/research_caves) "pRU" = ( /obj/item/stack/cable_coil/white, /turf/open/auto_turf/ice/layer1, /area/shiva/interior/warehouse/caves) "pSD" = ( -/turf/open/floor/shiva{ - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow, /area/shiva/interior/garage) "pSM" = ( /obj/structure/barricade/metal, /obj/structure/machinery/light/double, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/botany) "pTp" = ( /obj/structure/surface/rack, @@ -20773,15 +17725,11 @@ /area/shiva/interior/warehouse) "pTC" = ( /obj/structure/reagent_dispensers/watertank, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/lz2_habs) "pTG" = ( /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/central) "pUp" = ( /obj/structure/flora/tree/dead/tree_1, @@ -20793,18 +17741,13 @@ dir = 4; pixel_y = -5 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "greenfull" - }, +/turf/open/floor/shiva/greenfull/west, /area/shiva/interior/colony/n_admin) "pUZ" = ( /obj/structure/barricade/metal{ health = 230 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/botany) "pVm" = ( /obj/structure/mirror{ @@ -20814,18 +17757,14 @@ dir = 8; pixel_x = -11 }, -/turf/open/floor/shiva{ - icon_state = "wredfull" - }, +/turf/open/floor/shiva/wredfull, /area/shiva/interior/colony/medseceng) "pVo" = ( /obj/structure/machinery/light/double{ dir = 1; pixel_y = 9 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/caves/s_lz2) "pWf" = ( /turf/closed/wall/shiva/ice, @@ -20845,16 +17784,18 @@ /obj/effect/landmark/objective_landmark/close, /turf/open/auto_turf/ice/layer1, /area/shiva/interior/caves/cp_camp) +"pWp" = ( +/obj/structure/barricade/handrail/wire{ + dir = 4 + }, +/turf/open/auto_turf/ice/layer1, +/area/shiva/exterior/cp_s_research) "pWw" = ( /obj/structure/closet/cabinet, /obj/item/clothing/under/colonist, /obj/effect/landmark/good_item, /turf/open/floor/wood, /area/shiva/interior/colony/botany) -"pWY" = ( -/obj/structure/girder, -/turf/open/auto_turf/ice/layer1, -/area/shiva/interior/caves/cp_camp) "pXU" = ( /obj/item/lightstick/red/spoke/planted{ pixel_x = -16; @@ -20906,10 +17847,20 @@ "qdd" = ( /obj/structure/surface/table, /obj/effect/spawner/random/toolbox, -/turf/open/floor/shiva{ - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow, /area/shiva/interior/colony/medseceng) +"qdh" = ( +/obj/structure/platform/strata{ + dir = 1 + }, +/obj/structure/platform/strata{ + dir = 4 + }, +/turf/open/gm/river, +/area/shiva/interior/caves/research_caves) +"qdH" = ( +/turf/closed/wall/shiva/prefabricated/blue, +/area/shiva/exterior/junkyard/cp_bar) "qep" = ( /turf/open/auto_turf/snow/layer4, /area/shiva/exterior/cp_colony_grounds) @@ -20918,26 +17869,18 @@ /obj/item/vehicle_clamp{ pixel_y = 2 }, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/shiva/red/north, /area/shiva/interior/colony/central) "qeH" = ( /obj/structure/machinery/vending/snack, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/shiva/red/north, /area/shiva/interior/colony/medseceng) "qfe" = ( /obj/structure/machinery/computer/cameras{ dir = 8 }, /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/shiva{ - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull, /area/shiva/interior/colony/n_admin) "qfh" = ( /obj/effect/decal/warning_stripes{ @@ -20950,23 +17893,15 @@ /area/shiva/interior/colony/central) "qfq" = ( /obj/effect/decal/cleanable/blood/oil/streak, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellowfull" - }, +/turf/open/floor/shiva/yellowfull/west, /area/shiva/interior/garage) -"qfI" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "N" - }, -/obj/structure/desertdam/decals/road_stop{ - icon_state = "road_edge_decal5" - }, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "purplefull" - }, -/area/shiva/interior/colony/research_hab) +"qfR" = ( +/obj/structure/flora/grass/tallgrass/ice, +/turf/open/auto_turf/snow/layer2, +/area/shiva/interior/caves/research_caves) +"qfZ" = ( +/turf/closed/wall/shiva/prefabricated/orange, +/area/shiva/interior/caves/research_caves) "qgd" = ( /obj/structure/prop/ice_colony/ground_wire, /turf/open/auto_turf/ice/layer2, @@ -20981,19 +17916,15 @@ "qgp" = ( /obj/structure/surface/table, /obj/item/reagent_container/food/snacks/cheesecakeslice, -/turf/open/floor/shiva{ - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull, /area/shiva/interior/colony/n_admin) "qgz" = ( /obj/item/stack/rods, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/central) -"qgD" = ( -/turf/closed/wall/shiva/prefabricated/reinforced/hull, -/area/shiva/interior/colony/research_hab) +"qgP" = ( +/turf/open/auto_turf/snow/layer1, +/area/shiva/interior/warehouse/caves) "qhm" = ( /obj/structure/barricade/metal{ dir = 4 @@ -21007,27 +17938,24 @@ /obj/structure/bed/chair/office/light{ dir = 8 }, -/turf/open/floor/shiva{ - icon_state = "yellow" - }, -/area/shiva/interior/lz2_habs) +/turf/open/floor/shiva/yellow, +/area/shiva/interior/aux_power) "qid" = ( /obj/structure/bed, /obj/item/bedsheet/medical, /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "wred" - }, +/turf/open/floor/shiva/wred/west, /area/shiva/interior/colony/medseceng) "qiu" = ( /obj/effect/landmark/survivor_spawner, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/bar) +"qiy" = ( +/obj/structure/barricade/handrail/wire, +/turf/open/auto_turf/ice/layer1, +/area/shiva/exterior/cp_s_research) "qjY" = ( /obj/structure/blocker/forcefield/multitile_vehicles, /turf/open/auto_turf/snow/layer0, @@ -21035,24 +17963,19 @@ "qjZ" = ( /obj/item/stack/sheet/metal/large_stack, /obj/structure/foamed_metal, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) "qkr" = ( /obj/structure/machinery/light/double{ dir = 1; pixel_y = 9 }, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/east, /area/shiva/interior/colony/deck) "qkt" = ( /obj/item/stack/cable_coil/cut, /turf/open/floor/plating/plating_catwalk/shiva, -/area/shiva/interior/lz2_habs) +/area/shiva/interior/aux_power) "qkC" = ( /turf/open/shuttle/elevator, /area/shiva/interior/aerodrome) @@ -21083,9 +18006,7 @@ }, /obj/effect/decal/cleanable/blood/splatter, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/research_hab) "qkT" = ( /obj/structure/prop/invuln/ice_prefab{ @@ -21106,9 +18027,7 @@ dir = 8; pixel_y = -5 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/botany) "qmv" = ( /obj/item/stack/flag/red{ @@ -21118,9 +18037,7 @@ /area/shiva/interior/warehouse) "qmA" = ( /obj/effect/decal/cleanable/blood/gibs/xeno/limb, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/central) "qng" = ( /obj/structure/machinery/light/double{ @@ -21132,9 +18049,7 @@ pixel_y = 14 }, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/botany) "qnu" = ( /obj/structure/machinery/light/double{ @@ -21158,16 +18073,20 @@ /obj/effect/landmark/objective_landmark/science, /turf/open/floor/interior/plastic/alt, /area/shiva/interior/warehouse) +"qnJ" = ( +/obj/structure/machinery/light/double{ + dir = 8; + pixel_y = -5 + }, +/turf/open/floor/shiva, +/area/shiva/interior/caves/cp_camp) "qof" = ( /obj/item/stack/cable_coil/blue, /obj/structure/airlock_assembly, /turf/open/floor/plating, /area/shiva/interior/colony/central) "qow" = ( -/turf/open/floor/shiva{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/shiva/red/northeast, /area/shiva/interior/colony/central) "qoU" = ( /obj/structure/flora/grass/tallgrass/ice/corner, @@ -21181,17 +18100,12 @@ /area/shiva/interior/warehouse) "qpq" = ( /obj/structure/reagent_dispensers/watertank, -/turf/open/floor/shiva{ - dir = 10; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/southwest, /area/shiva/interior/colony/medseceng) "qps" = ( /obj/structure/surface/table, /obj/structure/machinery/faxmachine, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/n_admin) "qpu" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ @@ -21207,34 +18121,28 @@ dir = 4; pixel_y = -5 }, -/turf/open/floor/shiva{ - dir = 5; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/northeast, /area/shiva/interior/colony/medseceng) "qpZ" = ( /obj/item/frame/table, -/turf/open/floor/shiva{ - icon_state = "wredfull" - }, +/turf/open/floor/shiva/wredfull, /area/shiva/interior/colony/medseceng) "qrq" = ( /obj/structure/machinery/light/double{ dir = 4; pixel_y = -5 }, -/turf/open/floor/shiva{ - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull, /area/shiva/interior/colony/n_admin) "qrz" = ( -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/central) +"qrY" = ( +/turf/closed/wall/shiva/prefabricated/reinforced, +/area/shiva/exterior/junkyard) "qsN" = ( /obj/structure/machinery/light/double{ - dir = 8; + dir = 4; pixel_y = -5 }, /turf/open/floor/interior/plastic, @@ -21251,34 +18159,18 @@ pixel_x = 7; pixel_y = 14 }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/shiva/interior/colony/research_hab) "que" = ( /obj/item/lightstick/red/variant/planted, /turf/open/auto_turf/snow/layer3, -/area/shiva/exterior/lz1_valley) -"quO" = ( -/obj/item/tool/shovel/snow, -/obj/item/tool/shovel/snow{ - pixel_y = 8 - }, -/obj/structure/surface/rack, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "snow_mat" - }, -/area/shiva/interior/caves/cp_camp) +/area/shiva/exterior/junkyard) "qvr" = ( /obj/structure/machinery/alarm{ dir = 8; pixel_x = 24 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull/west, /area/shiva/interior/colony/medseceng) "qvY" = ( /turf/open/auto_turf/snow/layer0, @@ -21296,13 +18188,7 @@ /obj/item/clothing/head/fez{ pixel_y = 6 }, -/obj/structure/machinery/light/double{ - dir = 8; - pixel_y = -5 - }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/central) "qxQ" = ( /obj/structure/blocker/forcefield/multitile_vehicles, @@ -21313,33 +18199,24 @@ req_access_txt = "100" }, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/shiva{ - dir = 9; - icon_state = "wred" - }, +/turf/open/floor/shiva/wred/northwest, /area/shiva/interior/colony/medseceng) "qyy" = ( /obj/structure/barricade/handrail/wire{ dir = 8 }, /obj/structure/machinery/light/double, -/turf/open/floor/shiva{ - icon_state = "wred" - }, +/turf/open/floor/shiva/wred, /area/shiva/interior/colony/medseceng) "qyC" = ( /obj/structure/barricade/metal{ dir = 4 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/exterior/lz2_fortress) "qyE" = ( /obj/item/stool, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/research_hab) "qza" = ( /obj/item/device/flashlight/flare, @@ -21355,21 +18232,8 @@ "qAL" = ( /obj/structure/surface/table, /obj/effect/spawner/random/toolbox, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellowfull" - }, +/turf/open/floor/shiva/yellowfull/west, /area/shiva/interior/colony/medseceng) -"qBn" = ( -/obj/structure/prop/invuln/ice_prefab{ - dir = 9 - }, -/obj/structure/prop/invuln/ice_prefab/roof_greeble{ - icon_state = "vent5"; - pixel_y = 10 - }, -/turf/open/auto_turf/snow/layer3, -/area/shiva/interior/caves/cp_camp) "qBM" = ( /obj/structure/platform/strata{ dir = 8 @@ -21377,20 +18241,11 @@ /obj/structure/platform/strata, /turf/open/gm/river, /area/shiva/interior/caves/cp_camp) -"qBN" = ( -/obj/effect/landmark/crap_item, -/turf/open/floor/shiva{ - icon_state = "radiator_tile" - }, -/area/shiva/interior/caves/cp_camp) "qCa" = ( /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "wred" - }, +/turf/open/floor/shiva/wred/west, /area/shiva/interior/colony/medseceng) "qCn" = ( /turf/open/auto_turf/snow/layer1, @@ -21411,10 +18266,17 @@ /area/shiva/interior/colony/research_hab) "qCM" = ( /obj/structure/barricade/metal, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/botany) +"qCW" = ( +/obj/structure/platform/strata{ + dir = 1 + }, +/obj/structure/platform/strata{ + dir = 8 + }, +/turf/open/gm/river, +/area/shiva/interior/caves/research_caves) "qDg" = ( /obj/structure/bed/chair{ dir = 8 @@ -21442,7 +18304,7 @@ dir = 1; start_charge = 0 }, -/turf/open/auto_turf/snow/layer2, +/turf/open/floor/plating, /area/shiva/exterior/junkyard) "qEB" = ( /obj/structure/flora/grass/tallgrass/ice/corner, @@ -21451,13 +18313,21 @@ "qEC" = ( /obj/structure/surface/table, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/shiva{ - dir = 10; - icon_state = "wred" - }, +/turf/open/floor/shiva/wred/southwest, /area/shiva/interior/colony/medseceng) +"qEH" = ( +/obj/structure/largecrate/random/case/small, +/turf/open/auto_turf/ice/layer1, +/area/shiva/interior/aerodrome) +"qEK" = ( +/obj/structure/prop/invuln/ice_prefab/standalone{ + icon_state = "white" + }, +/turf/open/auto_turf/snow/layer2, +/area/shiva/exterior/cp_s_research) "qEQ" = ( /obj/structure/platform/strata, +/obj/structure/blocker/forcefield/multitile_vehicles, /turf/open/auto_turf/snow/layer1, /area/shiva/exterior/junkyard) "qFx" = ( @@ -21466,9 +18336,7 @@ /area/shiva/exterior/telecomm/lz1_north) "qGq" = ( /obj/item/frame/bucket_sensor, -/turf/open/floor/shiva{ - icon_state = "wredfull" - }, +/turf/open/floor/shiva/wredfull, /area/shiva/interior/colony/medseceng) "qGN" = ( /obj/structure/closet/crate/trashcart, @@ -21478,22 +18346,8 @@ "qIr" = ( /turf/open/floor/plating/plating_catwalk/shiva, /area/shiva/interior/warehouse) -"qIu" = ( -/obj/structure/prop/invuln/dense/ice_tray{ - dir = 4; - pixel_y = -9 - }, -/obj/structure/prop/invuln/dense/ice_tray{ - dir = 9; - pixel_y = 10 - }, -/turf/open/auto_turf/ice/layer1, -/area/shiva/interior/caves/cp_camp) "qII" = ( -/turf/open/floor/shiva{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/southeast, /area/shiva/exterior/cp_lz2) "qJa" = ( /obj/structure/surface/rack, @@ -21501,35 +18355,8 @@ /obj/item/circuitboard/airlock, /obj/item/circuitboard/airlock, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/west, /area/shiva/interior/colony/medseceng) -"qKn" = ( -/obj/structure/bed/chair{ - dir = 4 - }, -/obj/structure/bed/chair{ - dir = 4; - pixel_y = 4 - }, -/obj/structure/bed/chair{ - dir = 4; - pixel_y = 8 - }, -/obj/structure/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "snow_mat" - }, -/area/shiva/interior/caves/cp_camp) -"qKA" = ( -/obj/structure/barricade/handrail/wire, -/turf/open/auto_turf/ice/layer0, -/area/shiva/interior/caves/cp_camp) "qLA" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony/autoname{ dir = 8 @@ -21556,24 +18383,24 @@ /obj/structure/flora/grass/tallgrass/ice, /turf/open/auto_turf/snow/layer4, /area/shiva/exterior/cp_lz2) +"qMT" = ( +/obj/structure/surface/rack, +/obj/effect/spawner/random/toolbox, +/turf/open/auto_turf/snow/layer0, +/area/shiva/exterior/cp_s_research) "qNj" = ( /obj/structure/flora/tree/dead/tree_5, /turf/open/auto_turf/snow/layer2, /area/shiva/exterior/cp_colony_grounds) "qNn" = ( -/turf/open/floor/shiva{ - dir = 8; - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull/west, /area/shiva/interior/colony/s_admin) "qNt" = ( /obj/structure/barricade/metal{ dir = 1; health = 210 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/botany) "qNB" = ( /obj/structure/platform/strata, @@ -21582,9 +18409,6 @@ }, /turf/open/gm/river, /area/shiva/exterior/cp_lz2) -"qNE" = ( -/turf/closed/wall/shiva/ice, -/area/shiva/exterior/research_alley) "qNK" = ( /obj/structure/surface/table, /obj/item/reagent_container/glass/beaker/cryopredmix{ @@ -21606,10 +18430,7 @@ /turf/open/floor/carpet, /area/shiva/interior/colony/research_hab) "qOD" = ( -/turf/open/floor/shiva{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/north, /area/shiva/interior/colony/deck) "qOE" = ( /obj/structure/surface/rack, @@ -21617,10 +18438,6 @@ /obj/item/storage/firstaid/rad, /turf/open/floor/interior/plastic/alt, /area/shiva/interior/warehouse) -"qOP" = ( -/obj/structure/machinery/power/port_gen/pacman, -/turf/open/auto_turf/snow/layer1, -/area/shiva/exterior/cp_s_research) "qOZ" = ( /obj/structure/bed/chair/comfy/beige{ dir = 8 @@ -21637,22 +18454,9 @@ }, /turf/open/floor/interior/plastic/alt, /area/shiva/interior/warehouse) -"qPi" = ( -/obj/structure/closet/toolcloset, -/turf/open/auto_turf/snow/layer3, -/area/shiva/exterior/research_alley) -"qPj" = ( -/obj/structure/platform/strata{ - dir = 4 - }, -/obj/structure/platform/strata, -/turf/open/gm/river, -/area/shiva/interior/caves/left_spiders) "qRb" = ( /obj/structure/barricade/metal/wired, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) "qRl" = ( /obj/structure/platform/strata, @@ -21665,9 +18469,7 @@ /obj/item/explosive/grenade/custom/cleaner, /obj/item/explosive/grenade/custom/cleaner, /obj/item/storage/pill_bottle/kelotane/skillless, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/shiva/interior/colony/research_hab) "qRJ" = ( /obj/structure/flora/pottedplant{ @@ -21680,10 +18482,6 @@ /obj/item/stack/sheet/metal, /turf/open/auto_turf/snow/layer3, /area/shiva/exterior/cp_colony_grounds) -"qRV" = ( -/obj/structure/platform/strata, -/turf/open/auto_turf/snow/layer2, -/area/shiva/exterior/valley) "qRX" = ( /obj/structure/tunnel{ id = "hydroponics_tunnel" @@ -21700,9 +18498,7 @@ /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/central) "qSW" = ( /obj/structure/surface/rack, @@ -21724,16 +18520,12 @@ "qUe" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/reagent_container/food/snacks/cherrypie, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/n_admin) "qUw" = ( /obj/structure/foamed_metal, /obj/item/ammo_magazine/handful/shotgun/buckshot, -/turf/open/floor/shiva{ - icon_state = "radiator_tile" - }, +/turf/open/floor/shiva/radiator_tile, /area/shiva/exterior/lz2_fortress) "qVo" = ( /obj/structure/surface/table/reinforced/prison, @@ -21741,18 +18533,14 @@ /turf/open/floor/plating, /area/shiva/interior/colony/research_hab) "qVq" = ( -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/valley_huts) "qWu" = ( /obj/structure/machinery/light/double, /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/central) "qWL" = ( /obj/structure/surface/rack, @@ -21766,30 +18554,25 @@ pixel_x = -13; pixel_y = 25 }, -/turf/open/floor/shiva{ - icon_state = "radiator_tile" - }, +/turf/open/floor/shiva/radiator_tile, /area/shiva/exterior/lz2_fortress) "qXk" = ( /obj/item/clipboard, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/aerodrome) "qXm" = ( /obj/structure/machinery/disposal, -/turf/open/floor/shiva{ - icon_state = "greenfull" - }, +/turf/open/floor/shiva/greenfull, /area/shiva/interior/colony/n_admin) -"qXC" = ( -/obj/structure/prop/ice_colony/surveying_device/measuring_device{ - dir = 8; - pixel_x = -6; - pixel_y = 13 +"qXx" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N-corner" }, -/turf/open/auto_turf/ice/layer1, -/area/shiva/interior/caves/cp_camp) +/obj/effect/decal/warning_stripes{ + icon_state = "E-corner" + }, +/turf/open/floor/plating, +/area/shiva/exterior/valley) "qXS" = ( /turf/open/floor/shiva, /area/shiva/interior/bar) @@ -21798,19 +18581,14 @@ pixel_y = 6 }, /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/shiva{ - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull, /area/shiva/interior/colony/n_admin) "qYP" = ( /turf/open/auto_turf/snow/layer1, /area/shiva/interior/caves/s_lz2) "qZa" = ( -/turf/open/floor/shiva{ - dir = 6; - icon_state = "multi_tiles" - }, -/area/shiva/interior/lz2_habs) +/turf/open/floor/shiva/multi_tiles/southeast, +/area/shiva/interior/aux_power) "rad" = ( /obj/structure/inflatable/popped, /turf/open/auto_turf/ice/layer1, @@ -21820,7 +18598,7 @@ dir = 1; start_charge = 0 }, -/turf/open/auto_turf/snow/layer2, +/turf/open/floor/plating, /area/shiva/exterior/junkyard/cp_bar) "rbc" = ( /obj/structure/flora/grass/tallgrass/ice/corner{ @@ -21838,15 +18616,10 @@ /obj/structure/surface/table/reinforced/prison, /obj/item/clipboard, /obj/item/tool/stamp, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/s_admin) "rbq" = ( -/turf/open/floor/shiva{ - dir = 8; - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull/west, /area/shiva/interior/caves/research_caves) "rbA" = ( /obj/effect/decal/warning_stripes{ @@ -21863,9 +18636,7 @@ dir = 8 }, /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/s_admin) "rcp" = ( /obj/item/storage/toolbox/mechanical/green, @@ -21885,15 +18656,6 @@ }, /turf/open/auto_turf/snow/layer0, /area/shiva/interior/caves/cp_camp) -"rdQ" = ( -/obj/structure/prop/invuln/ice_prefab/standalone/trim, -/obj/structure/prop/invuln/ice_prefab/roof_greeble{ - icon_state = "windsock"; - pixel_x = 6; - pixel_y = -1 - }, -/turf/closed/wall/shiva/ice, -/area/shiva/exterior/research_alley) "rdS" = ( /obj/effect/decal/cleanable/dirt, /turf/open/asphalt/cement, @@ -21912,17 +18674,12 @@ /obj/structure/machinery/door/window/eastright{ name = "Security Desk" }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/s_admin) "reV" = ( /obj/structure/surface/table, /obj/item/weapon/gun/revolver/cmb, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "purplefull" - }, +/turf/open/floor/shiva/purplefull/west, /area/shiva/interior/lz2_habs) "rfc" = ( /obj/structure/surface/table, @@ -21932,10 +18689,7 @@ dir = 1; pixel_y = 9 }, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/north, /area/shiva/interior/colony/medseceng) "rfd" = ( /obj/effect/decal/cleanable/blood/oil, @@ -21945,10 +18699,6 @@ /obj/structure/platform/strata, /turf/open/auto_turf/snow/layer3, /area/shiva/exterior/cp_lz2) -"rfv" = ( -/obj/structure/reagent_dispensers/fueltank, -/turf/open/auto_turf/snow/layer3, -/area/shiva/exterior/research_alley) "rfU" = ( /obj/structure/flora/grass/tallgrass/ice/corner{ dir = 9 @@ -21960,10 +18710,7 @@ dir = 1; network = list("interrogation") }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull/west, /area/shiva/interior/colony/medseceng) "rgy" = ( /obj/structure/flora/bush/snow{ @@ -21982,16 +18729,19 @@ /obj/item/paper/janitor{ pixel_y = 8 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull/west, /area/shiva/interior/colony/research_hab) +"rib" = ( +/obj/structure/ice/thin/single{ + opacity = 1; + unacidable = 0 + }, +/obj/structure/blocker/forcefield/multitile_vehicles, +/turf/open/auto_turf/ice/layer2, +/area/shiva/exterior/valley) "ril" = ( /obj/structure/closet/secure_closet/freezer/fridge, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/shiva/interior/colony/research_hab) "riV" = ( /obj/item/tool/pickaxe, @@ -21999,17 +18749,11 @@ /area/shiva/exterior/lz1_valley) "rjw" = ( /obj/structure/machinery/washing_machine, -/turf/open/floor/shiva{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/shiva/red/northeast, /area/shiva/interior/colony/medseceng) "rjQ" = ( /obj/effect/landmark/xeno_spawn, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/east, /area/shiva/interior/colony/medseceng) "rkc" = ( /obj/structure/surface/table/reinforced/prison, @@ -22019,6 +18763,10 @@ /obj/structure/window/framed/shiva, /turf/open/floor/plating, /area/shiva/interior/garage) +"rkG" = ( +/obj/structure/flora/tree/dead/tree_2, +/turf/open/auto_turf/snow/layer3, +/area/shiva/interior/caves/cp_camp) "rkS" = ( /obj/item/lightstick/red/spoke/planted{ pixel_x = -13; @@ -22027,20 +18775,24 @@ /obj/structure/cable/heavyduty{ icon_state = "1-2" }, -/turf/open/floor/plating/icefloor{ - dir = 9; - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate/northwest, /area/shiva/exterior/junkyard/fortbiceps) +"rld" = ( +/obj/structure/prop/ice_colony/ground_wire{ + dir = 4 + }, +/obj/structure/prop/ice_colony/ground_wire{ + dir = 4 + }, +/turf/open/auto_turf/snow/layer1, +/area/shiva/interior/caves/cp_camp) "rli" = ( /obj/structure/flora/tree/dead/tree_1, /turf/open/auto_turf/snow/layer2, /area/shiva/exterior/junkyard) "rnz" = ( /obj/structure/flora/pottedplant, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/shiva/interior/colony/central) "rnB" = ( /obj/structure/platform_decoration/shiva/catwalk{ @@ -22048,15 +18800,6 @@ }, /turf/open/auto_turf/snow/layer0, /area/shiva/exterior/cp_colony_grounds) -"rnO" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "S-corner" - }, -/obj/effect/decal/warning_stripes{ - icon_state = "W-corner" - }, -/turf/open/floor/plating, -/area/shiva/exterior/lz1_valley) "rov" = ( /obj/item/lightstick/red/spoke/planted{ layer = 3.1; @@ -22067,9 +18810,7 @@ /area/shiva/interior/caves/cp_camp) "rpv" = ( /obj/item/stack/rods, -/turf/open/floor/shiva{ - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull, /area/shiva/interior/colony/s_admin) "rpE" = ( /obj/structure/ice/thin/single{ @@ -22077,7 +18818,7 @@ unacidable = 0 }, /turf/open/auto_turf/ice/layer2, -/area/shiva/interior/caves/left_spiders) +/area/shiva/interior/caves/cp_camp) "rpL" = ( /obj/structure/bed, /obj/item/bedsheet/medical, @@ -22086,17 +18827,26 @@ pixel_y = -5 }, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "wred" - }, +/turf/open/floor/shiva/wred/west, /area/shiva/interior/colony/medseceng) +"rqK" = ( +/obj/structure/desertdam/decals/road_stop{ + icon_state = "road_edge_decal5"; + pixel_y = -17 + }, +/turf/closed/wall/shiva/prefabricated/orange, +/area/shiva/interior/colony/research_hab) +"rrj" = ( +/obj/item/lightstick/red/variant/planted{ + pixel_x = -7; + pixel_y = -5 + }, +/turf/open/auto_turf/snow/layer0, +/area/shiva/interior/caves/research_caves) "rsa" = ( /obj/structure/filingcabinet, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/medseceng) "rti" = ( /obj/structure/surface/table, @@ -22113,41 +18863,20 @@ "rtv" = ( /obj/structure/surface/table, /obj/item/storage/box/trackimp, -/turf/open/floor/shiva{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/shiva/red/southeast, /area/shiva/interior/colony/medseceng) "rtZ" = ( /obj/item/lightstick/red/variant/planted, /turf/open/auto_turf/snow/layer2, /area/shiva/exterior/junkyard) -"rwy" = ( -/obj/structure/inflatable/popped, -/turf/open/auto_turf/snow/layer2, -/area/shiva/exterior/research_alley) "rwQ" = ( /obj/structure/bedsheetbin, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/north, /area/shiva/interior/colony/botany) "rxd" = ( /obj/structure/bed/chair, /turf/open/floor/interior/plastic/alt, /area/shiva/interior/warehouse) -"rxf" = ( -/obj/structure/largecrate/random/case/double, -/obj/structure/machinery/light/double{ - dir = 8; - pixel_y = -5 - }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "bluefull" - }, -/area/shiva/interior/aerodrome) "rxF" = ( /obj/structure/prop/invuln/ice_prefab/standalone{ icon_state = "pink" @@ -22160,41 +18889,32 @@ pixel_x = 6; pixel_y = 12 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/bar) "ryI" = ( /obj/structure/bed/chair{ dir = 1 }, /obj/structure/machinery/light/double, -/turf/open/floor/shiva{ - icon_state = "wred" - }, +/turf/open/floor/shiva/wred, /area/shiva/interior/colony/medseceng) "ryZ" = ( /obj/structure/surface/table, /obj/item/tool/pickaxe/plasmacutter, -/turf/open/floor/shiva{ - dir = 10; - icon_state = "yellow" - }, -/area/shiva/interior/lz2_habs) +/turf/open/floor/shiva/yellow/southwest, +/area/shiva/interior/aux_power) +"rzw" = ( +/obj/structure/platform_decoration/strata, +/turf/open/auto_turf/snow/layer3, +/area/shiva/interior/caves/cp_camp) "rzz" = ( /obj/structure/flora/pottedplant, -/turf/open/floor/shiva{ - dir = 6; - icon_state = "green" - }, +/turf/open/floor/shiva/green/southeast, /area/shiva/interior/colony/botany) "rzI" = ( /obj/structure/surface/table, /obj/item/stack/medical/ointment, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellowfull" - }, +/turf/open/floor/shiva/yellowfull/west, /area/shiva/interior/colony/medseceng) "rzR" = ( /obj/structure/surface/table/reinforced/prison, @@ -22205,19 +18925,14 @@ /obj/item/storage/belt/utility/full{ pixel_y = 14 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/aerodrome) "rAm" = ( /obj/item/lightstick/red/spoke/planted{ pixel_x = 12; pixel_y = 25 }, -/turf/open/floor/plating/icefloor{ - dir = 5; - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate/northeast, /area/shiva/exterior/junkyard/fortbiceps) "rAq" = ( /obj/structure/bed/chair/office/light{ @@ -22227,10 +18942,7 @@ /area/shiva/interior/colony/s_admin) "rAF" = ( /obj/structure/barricade/handrail/strata, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/north, /area/shiva/interior/colony/deck) "rAH" = ( /turf/open/auto_turf/snow/layer2, @@ -22246,17 +18958,12 @@ /area/shiva/interior/warehouse/caves) "rBr" = ( /obj/item/device/flashlight/lamp/tripod, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/bar) "rBy" = ( /obj/structure/window/reinforced/tinted/frosted, /obj/structure/closet/secure_closet/personal/patient, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "wred" - }, +/turf/open/floor/shiva/wred/west, /area/shiva/interior/colony/medseceng) "rBC" = ( /obj/effect/spawner/random/toolbox, @@ -22271,10 +18978,7 @@ /turf/open/auto_turf/snow/layer1, /area/shiva/interior/colony/central) "rDn" = ( -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellowcorners" - }, +/turf/open/floor/shiva/yellowcorners/west, /area/shiva/interior/colony/deck) "rEd" = ( /obj/structure/flora/bush/snow{ @@ -22299,40 +19003,26 @@ /obj/structure/machinery/colony_floodlight{ pixel_y = 10 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/exterior/cp_colony_grounds) "rFA" = ( /obj/structure/machinery/vending/cola, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/botany) "rFB" = ( /obj/structure/prop/invuln/ice_prefab/standalone/trim, /turf/open/auto_turf/ice/layer1, /area/shiva/interior/caves/cp_camp) "rGg" = ( -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/s_admin) "rHO" = ( /obj/structure/largecrate/random, /turf/open/floor/plating, /area/shiva/interior/colony/research_hab) -"rHQ" = ( -/obj/structure/machinery/power/geothermal, -/turf/open/floor/shiva{ - dir = 1 - }, -/area/shiva/interior/garage) "rIj" = ( /obj/structure/largecrate/random/case/double, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/aerodrome) "rJI" = ( /obj/structure/platform/strata{ @@ -22347,15 +19037,15 @@ /obj/structure/machinery/door/poddoor/shutters/almayer{ name = "\improper Panic Room Shutters" }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/s_admin) +"rKq" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/auto_turf/snow/layer3, +/area/shiva/exterior/cp_s_research) "rKW" = ( /obj/structure/machinery/computer3/powermonitor, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/medseceng) "rLu" = ( /obj/structure/platform/strata{ @@ -22368,9 +19058,7 @@ /obj/structure/machinery/computer/cameras{ dir = 1 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/s_admin) "rMb" = ( /obj/item/lightstick/red/spoke/planted{ @@ -22385,29 +19073,34 @@ /area/shiva/exterior/valley) "rMc" = ( /obj/effect/landmark/xeno_spawn, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/west, /area/shiva/interior/colony/medseceng) "rMe" = ( /obj/structure/surface/table, -/obj/item/handcuffs, +/obj/item/restraint/handcuffs, /obj/item/tool/stamp, -/turf/open/floor/shiva{ - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull, /area/shiva/interior/colony/s_admin) "rMI" = ( -/turf/open/floor/shiva{ - dir = 8; - icon_state = "purplefull" - }, +/turf/open/floor/shiva/purplefull/west, /area/shiva/interior/colony/research_hab) +"rNx" = ( +/obj/structure/bed/chair/dropship/passenger{ + dir = 8 + }, +/obj/structure/machinery/light{ + dir = 8 + }, +/turf/open/shuttle/dropship/can_surgery/medium_grey_single_wide_up_to_down, +/area/shiva/interior/aerodrome) "rNO" = ( /obj/structure/prop/ice_colony/soil_net, /turf/open/auto_turf/snow/layer2, /area/shiva/exterior/junkyard) +"rNY" = ( +/obj/effect/landmark/monkey_spawn, +/turf/open/auto_turf/snow/layer0, +/area/shiva/exterior/junkyard) "rNZ" = ( /obj/structure/prop/ice_colony/dense/planter_box{ dir = 9 @@ -22419,10 +19112,7 @@ /turf/open/auto_turf/snow/layer0, /area/shiva/interior/colony/botany) "rOv" = ( -/turf/open/floor/shiva{ - dir = 1; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/north, /area/shiva/exterior/lz2_fortress) "rOG" = ( /obj/structure/machinery/door/airlock/almayer/medical/colony{ @@ -22430,6 +19120,15 @@ }, /turf/open/floor/plating, /area/shiva/interior/colony/medseceng) +"rPa" = ( +/obj/structure/bed/chair/dropship/passenger{ + dir = 4 + }, +/obj/structure/machinery/light{ + dir = 4 + }, +/turf/open/shuttle/dropship/can_surgery/medium_grey_single_wide_up_to_down, +/area/shiva/interior/aerodrome) "rRb" = ( /obj/structure/surface/rack, /obj/item/weapon/ice_axe, @@ -22440,55 +19139,43 @@ dir = 4; pixel_y = -5 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/west, /area/shiva/interior/colony/botany) "rRp" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/clipboard, /obj/item/tool/stamp, /obj/effect/landmark/crap_item, -/turf/open/floor/shiva{ - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull, /area/shiva/interior/colony/n_admin) "rRO" = ( /obj/structure/machinery/light/double, /obj/structure/closet/secure_closet/personal, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/shiva{ - icon_state = "red" - }, +/turf/open/floor/shiva/red, /area/shiva/interior/colony/medseceng) "rRP" = ( /obj/structure/closet/crate, /obj/effect/landmark/objective_landmark/science, /turf/open/floor/plating, /area/shiva/interior/colony/research_hab) +"rRZ" = ( +/turf/closed/wall/shiva/prefabricated/reinforced, +/area/shiva/exterior/cp_s_research) "rSr" = ( /obj/structure/bed/chair/office/light, -/turf/open/floor/shiva{ - dir = 6; - icon_state = "multi_tiles" - }, -/area/shiva/interior/lz2_habs) +/turf/open/floor/shiva/multi_tiles/southeast, +/area/shiva/interior/aux_power) "rSL" = ( /obj/item/weapon/gun/boltaction{ pixel_x = -6 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/exterior/lz2_fortress) "rTk" = ( /obj/item/storage/box/bodybags, /obj/structure/surface/table, -/turf/open/floor/shiva{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/shiva/red/southwest, /area/shiva/interior/colony/medseceng) "rTG" = ( /obj/item/stack/sheet/wood, @@ -22496,10 +19183,7 @@ dir = 4; pixel_y = -5 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull/west, /area/shiva/interior/bar) "rUD" = ( /obj/item/weapon/gun/shotgun/pump/dual_tube/cmb{ @@ -22518,34 +19202,28 @@ dir = 1; pixel_y = 9 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellowfull" - }, -/area/shiva/interior/lz2_habs) +/turf/open/floor/shiva/yellowfull/west, +/area/shiva/interior/aux_power) +"rUW" = ( +/obj/effect/decal/cleanable/blood/drip, +/turf/open/auto_turf/snow/layer3, +/area/shiva/interior/caves/cp_camp) "rVF" = ( /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/lz2_habs) "rVK" = ( /obj/effect/decal/cleanable/blood{ layer = 3 }, /obj/structure/bed/chair, -/turf/open/floor/shiva{ - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull, /area/shiva/interior/colony/s_admin) "rVM" = ( /obj/structure/cable/heavyduty{ icon_state = "1-2-4" }, -/turf/open/floor/plating/icefloor{ - dir = 8; - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate/west, /area/shiva/exterior/junkyard/fortbiceps) "rWj" = ( /obj/effect/landmark/static_comms/net_two, @@ -22565,11 +19243,15 @@ /area/shiva/exterior/cp_colony_grounds) "rWS" = ( /obj/item/ammo_magazine/rifle/ap, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/north, /area/shiva/interior/colony/research_hab) +"rWW" = ( +/obj/item/lightstick/red/spoke/planted{ + pixel_x = 11; + pixel_y = 20 + }, +/turf/open/auto_turf/snow/layer2, +/area/shiva/exterior/cp_s_research) "rXn" = ( /turf/closed/shuttle/elevator{ dir = 5 @@ -22577,9 +19259,7 @@ /area/shiva/interior/aerodrome) "rXp" = ( /obj/structure/machinery/landinglight/ds2/delayone, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/exterior/lz2_fortress) "rXt" = ( /obj/structure/cable/heavyduty{ @@ -22591,16 +19271,17 @@ /obj/effect/landmark/railgun_camera_pos, /turf/open/auto_turf/ice/layer1, /area/shiva/exterior/cp_lz2) +"rYj" = ( +/obj/structure/blocker/forcefield/multitile_vehicles, +/turf/open/auto_turf/snow/layer4, +/area/shiva/exterior/junkyard/cp_bar) "rZj" = ( /obj/structure/surface/table, /obj/structure/machinery/computer/station_alert{ dir = 8 }, -/turf/open/floor/shiva{ - dir = 6; - icon_state = "yellow" - }, -/area/shiva/interior/lz2_habs) +/turf/open/floor/shiva/yellow/southeast, +/area/shiva/interior/aux_power) "rZq" = ( /obj/structure/surface/table/reinforced/prison{ dir = 4; @@ -22618,20 +19299,14 @@ /turf/open/floor/wood, /area/shiva/interior/colony/botany) "rZD" = ( -/turf/open/floor/shiva{ - dir = 8; - icon_state = "green" - }, +/turf/open/floor/shiva/green/west, /area/shiva/interior/colony/botany) "rZH" = ( /obj/structure/machinery/light/double{ dir = 1; pixel_y = 9 }, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/north, /area/shiva/interior/colony/research_hab) "rZP" = ( /obj/structure/machinery/optable, @@ -22644,28 +19319,28 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/shiva{ - dir = 9; - icon_state = "wred" - }, +/turf/open/floor/shiva/wred/northwest, /area/shiva/interior/colony/medseceng) "san" = ( /obj/structure/machinery/power/apc{ dir = 8; start_charge = 0 }, -/turf/open/floor/shiva{ - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull, /area/shiva/interior/colony/s_admin) "sax" = ( /turf/closed/wall/shiva/ice, /area/shiva/interior/warehouse/caves) +"saA" = ( +/obj/item/lightstick/red/spoke/planted{ + pixel_x = 12; + pixel_y = 25 + }, +/turf/open/auto_turf/snow/layer2, +/area/shiva/interior/caves/cp_camp) "sbd" = ( /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/research_hab) "sbj" = ( /obj/structure/flora/bush/ausbushes/lavendergrass, @@ -22675,14 +19350,17 @@ /obj/structure/largecrate/random/barrel/green, /turf/open/auto_turf/snow/layer2, /area/shiva/exterior/junkyard) +"scp" = ( +/obj/structure/platform_decoration/shiva/catwalk{ + dir = 4 + }, +/turf/open/auto_turf/snow/layer2, +/area/shiva/exterior/junkyard) "scN" = ( /obj/structure/surface/table, /obj/item/device/assembly/infra, /obj/item/device/assembly/voice, -/turf/open/floor/shiva{ - dir = 5; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/northeast, /area/shiva/interior/colony/medseceng) "sdF" = ( /obj/structure/surface/table, @@ -22693,23 +19371,17 @@ /obj/item/reagent_container/food/snacks/grown/goldapple{ pixel_y = 4 }, -/turf/open/floor/shiva{ - icon_state = "yellowfull" - }, +/turf/open/floor/shiva/yellowfull, /area/shiva/interior/colony/research_hab) "sdG" = ( /obj/structure/machinery/message_server, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/central) "sef" = ( /obj/structure/barricade/handrail/wire{ dir = 4 }, -/turf/open/floor/shiva{ - icon_state = "wredfull" - }, +/turf/open/floor/shiva/wredfull, /area/shiva/interior/colony/medseceng) "sev" = ( /obj/structure/flora/tree/dead/tree_3, @@ -22753,6 +19425,12 @@ "sgX" = ( /turf/open/auto_turf/snow/layer3, /area/shiva/exterior/telecomm/lz2_northeast) +"shi" = ( +/obj/structure/prop/invuln/ice_prefab/standalone/trim{ + icon_state = "white_trim" + }, +/turf/closed/wall/shiva/ice, +/area/shiva/exterior/cp_s_research) "shx" = ( /obj/structure/ice/thin/single{ opacity = 1; @@ -22764,10 +19442,7 @@ /obj/structure/flora/pottedplant{ icon_state = "pottedplant_18" }, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/north, /area/shiva/interior/colony/research_hab) "shP" = ( /obj/structure/barricade/metal{ @@ -22776,9 +19451,7 @@ /obj/structure/barricade/metal{ dir = 4 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/botany) "siD" = ( /obj/structure/prop/invuln/ice_prefab{ @@ -22799,10 +19472,7 @@ /turf/open/floor/interior/plastic, /area/shiva/interior/warehouse) "sjo" = ( -/turf/open/floor/shiva{ - dir = 9; - icon_state = "green" - }, +/turf/open/floor/shiva/green/northwest, /area/shiva/interior/colony/botany) "skl" = ( /obj/effect/decal/cleanable/dirt, @@ -22823,22 +19493,10 @@ /area/shiva/exterior/junkyard/cp_bar) "skG" = ( /obj/structure/machinery/light/double, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/medseceng) -"skK" = ( -/obj/structure/prop/ice_colony/surveying_device/measuring_device{ - dir = 8; - pixel_x = -6; - pixel_y = 13 - }, -/turf/open/auto_turf/ice/layer0, -/area/shiva/interior/caves/cp_camp) "slj" = ( -/turf/open/floor/shiva{ - icon_state = "radiator_tile" - }, +/turf/open/floor/shiva/radiator_tile, /area/shiva/exterior/lz2_fortress) "slC" = ( /obj/structure/surface/rack, @@ -22849,9 +19507,7 @@ /obj/item/weapon/ice_axe/red{ pixel_y = -4 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/caves/s_lz2) "slO" = ( /turf/open/auto_turf/ice/layer1, @@ -22863,17 +19519,11 @@ "smy" = ( /obj/structure/surface/table, /obj/effect/spawner/random/tool, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/east, /area/shiva/interior/garage) "smI" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_core, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/west, /area/shiva/interior/colony/research_hab) "snN" = ( /obj/structure/flora/tree/dead/tree_1, @@ -22881,13 +19531,8 @@ /area/shiva/exterior/lz1_valley) "snX" = ( /obj/structure/closet/secure_closet/engineering_personal, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/aerodrome) -"snZ" = ( -/turf/closed/wall/shiva/prefabricated/reinforced, -/area/shiva/exterior/valley) "sod" = ( /turf/open/auto_turf/snow/layer1, /area/shiva/exterior/junkyard/fortbiceps) @@ -22895,16 +19540,11 @@ /obj/structure/bed/chair/office/dark{ dir = 8 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull/west, /area/shiva/interior/colony/research_hab) "soE" = ( /obj/structure/machinery/vending/sovietsoda, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/bar) "spo" = ( /obj/structure/flora/bush/snow{ @@ -22912,17 +19552,18 @@ }, /turf/open/auto_turf/snow/layer2, /area/shiva/exterior/junkyard/cp_bar) -"sqb" = ( -/obj/item/lightstick/red/variant/planted, -/turf/open/auto_turf/snow/layer2, -/area/shiva/exterior/lz1_valley) "sqy" = ( /obj/item/wrapping_paper, /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/deck) +"srJ" = ( +/obj/structure/stairs/perspective/ice{ + dir = 4; + icon_state = "p_stair_sn_full_cap" + }, +/turf/open/auto_turf/ice/layer1, +/area/shiva/interior/caves/research_caves) "ssf" = ( /turf/open/auto_turf/snow/layer3, /area/shiva/interior/colony/central) @@ -22933,9 +19574,7 @@ /turf/open/auto_turf/snow/layer4, /area/shiva/exterior/cp_lz2) "stN" = ( -/turf/open/floor/shiva{ - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull, /area/shiva/interior/colony/n_admin) "stT" = ( /obj/structure/prop/invuln/ice_prefab/standalone/trim{ @@ -22954,26 +19593,21 @@ /turf/open/auto_turf/snow/layer1, /area/shiva/exterior/cp_colony_grounds) "sud" = ( -/turf/open/floor/shiva{ - icon_state = "snow_mat" +/obj/structure/flora/bush/snow{ + icon_state = "snowgrassbb_1" }, +/turf/open/auto_turf/snow/layer3, /area/shiva/interior/caves/cp_camp) "suD" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_core, /turf/open/auto_turf/ice/layer1, /area/shiva/interior/caves/medseceng_caves) -"swn" = ( -/obj/structure/largecrate/random, -/turf/open/auto_turf/ice/layer0, -/area/shiva/interior/caves/cp_camp) "swF" = ( /obj/structure/machinery/firealarm{ dir = 8; pixel_x = -24 }, -/turf/open/floor/shiva{ - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull, /area/shiva/interior/colony/s_admin) "swV" = ( /obj/structure/prop/ice_colony/ground_wire{ @@ -22983,7 +19617,7 @@ icon_state = "medium"; name = "ice shard" }, -/turf/open/auto_turf/snow/layer0, +/turf/open/auto_turf/snow/layer3, /area/shiva/interior/caves/cp_camp) "swW" = ( /obj/structure/machinery/space_heater, @@ -22991,28 +19625,19 @@ /area/shiva/exterior/cp_colony_grounds) "sxb" = ( /obj/structure/machinery/light/double, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/s_admin) "sxm" = ( /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/exterior/lz2_fortress) "sxp" = ( /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/shiva{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/shiva/red/northeast, /area/shiva/interior/colony/medseceng) "sxD" = ( /obj/structure/machinery/landinglight/ds2/spoke, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) "sxT" = ( /obj/structure/flora/grass/tallgrass/ice, @@ -23021,10 +19646,7 @@ "sym" = ( /obj/structure/surface/table, /obj/item/device/flashlight/lamp/green, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull/west, /area/shiva/interior/colony/research_hab) "syA" = ( /obj/structure/largecrate/random/case, @@ -23043,34 +19665,27 @@ /obj/item/weapon/ice_axe/red{ pixel_y = -4 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/west, /area/shiva/exterior/cp_colony_grounds) "syV" = ( /obj/structure/surface/table/reinforced, /obj/item/stack/medical/bruise_pack, /obj/item/cell, /obj/item/clothing/gloves/yellow, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/medseceng) "szU" = ( /obj/structure/prop/ice_colony/flamingo/festive{ dir = 4 }, /turf/open/auto_turf/snow/layer2, -/area/shiva/exterior/lz1_valley) +/area/shiva/exterior/junkyard) "sAe" = ( /obj/structure/machinery/light/double{ dir = 4; pixel_y = -5 }, -/turf/open/floor/shiva{ - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull, /area/shiva/interior/colony/central) "sAM" = ( /obj/structure/largecrate/random/barrel/blue, @@ -23078,9 +19693,7 @@ /area/shiva/exterior/junkyard) "sBh" = ( /obj/structure/barricade/handrail/wire, -/turf/open/floor/shiva{ - icon_state = "wredfull" - }, +/turf/open/floor/shiva/wredfull, /area/shiva/interior/colony/medseceng) "sBH" = ( /obj/structure/prop/invuln/ice_prefab{ @@ -23093,9 +19706,7 @@ /obj/structure/prop/ice_colony/ice_crystal{ dir = 5 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/lz2_habs) "sBT" = ( /obj/structure/flora/bush/snow, @@ -23103,18 +19714,14 @@ /area/shiva/exterior/cp_lz2) "sBW" = ( /obj/effect/decal/cleanable/blood/drip, -/turf/open/floor/shiva{ - icon_state = "purplefull" - }, +/turf/open/floor/shiva/purplefull, /area/shiva/interior/colony/research_hab) "sCc" = ( /obj/structure/machinery/light/double{ dir = 8; pixel_y = -5 }, -/turf/open/floor/shiva{ - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull, /area/shiva/interior/colony/n_admin) "sCi" = ( /obj/structure/prop/ice_colony/dense/planter_box{ @@ -23143,14 +19750,26 @@ pixel_x = -7; pixel_y = 7 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/research_hab) +"sDd" = ( +/obj/item/lightstick/planted, +/turf/open/auto_turf/snow/layer3, +/area/shiva/interior/caves/cp_camp) +"sEC" = ( +/obj/structure/flora/grass/tallgrass/ice/corner{ + dir = 10 + }, +/obj/structure/blocker/forcefield/multitile_vehicles, +/turf/open/auto_turf/snow/layer2, +/area/shiva/exterior/cp_s_research) "sFj" = ( /obj/structure/largecrate/random/case/double, /turf/open/auto_turf/ice/layer1, /area/shiva/interior/caves/cp_camp) +"sFs" = ( +/turf/open/auto_turf/snow/layer1, +/area/shiva/interior/aerodrome) "sFu" = ( /obj/item/tool/mop, /turf/open/floor/wood, @@ -23167,26 +19786,19 @@ /obj/structure/closet, /obj/item/newspaper, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/aerodrome) "sGs" = ( /obj/structure/surface/table, /obj/item/paper/research_notes, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "wred" - }, +/turf/open/floor/shiva/wred/east, /area/shiva/interior/colony/medseceng) "sGI" = ( /obj/structure/closet/secure_closet/freezer/fridge, /obj/item/clothing/head/cakehat, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/shiva/interior/bar) "sGR" = ( /obj/item/lightstick/red/spoke/planted{ @@ -23195,29 +19807,19 @@ /obj/structure/cable/heavyduty{ icon_state = "1-2" }, -/turf/open/floor/plating/icefloor{ - dir = 10; - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate/southwest, /area/shiva/exterior/junkyard/fortbiceps) "sHc" = ( /obj/structure/machinery/light/double, -/turf/open/floor/shiva{ - icon_state = "wredfull" - }, +/turf/open/floor/shiva/wredfull, /area/shiva/interior/colony/medseceng) "sHf" = ( /obj/item/paper/research_notes/grant, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/north, /area/shiva/interior/colony/research_hab) "sHL" = ( /obj/structure/machinery/light/double, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/shiva/interior/colony/research_hab) "sII" = ( /obj/structure/closet/coffin, @@ -23226,15 +19828,13 @@ health = 80 }, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/central) "sIP" = ( /obj/item/shard{ icon_state = "large" }, -/turf/open/auto_turf/snow/layer0, +/turf/open/auto_turf/snow/layer1, /area/shiva/interior/caves/cp_camp) "sIX" = ( /obj/structure/machinery/constructable_frame{ @@ -23249,9 +19849,7 @@ "sJs" = ( /obj/item/stack/sheet/metal/medium_stack, /obj/structure/foamed_metal, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) "sJD" = ( /obj/structure/window/framed/colony/reinforced, @@ -23265,17 +19863,13 @@ /obj/structure/window/reinforced/tinted{ dir = 8 }, -/turf/open/floor/shiva{ - icon_state = "red" - }, +/turf/open/floor/shiva/red, /area/shiva/interior/colony/medseceng) "sKa" = ( /obj/structure/machinery/firealarm{ pixel_y = 24 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/shiva/interior/colony/central) "sKf" = ( /obj/structure/prop/ice_colony/dense/planter_box{ @@ -23286,14 +19880,18 @@ }, /turf/open/auto_turf/snow/layer0, /area/shiva/interior/colony/botany) +"sKi" = ( +/obj/structure/machinery/light/double{ + dir = 8; + pixel_y = -5 + }, +/turf/open/floor/shiva, +/area/shiva/interior/aerodrome) "sKH" = ( /obj/item/lightstick/red/spoke/planted{ pixel_x = 12 }, -/turf/open/floor/plating/icefloor{ - dir = 6; - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate/southeast, /area/shiva/exterior/junkyard/fortbiceps) "sKO" = ( /obj/item/reagent_container/food/drinks/cans/ale{ @@ -23317,9 +19915,7 @@ /area/shiva/exterior/cp_colony_grounds) "sLV" = ( /obj/item/device/flashlight/lamp/tripod, -/turf/open/floor/shiva{ - icon_state = "green" - }, +/turf/open/floor/shiva/green, /area/shiva/interior/colony/botany) "sNi" = ( /obj/structure/stairs/perspective{ @@ -23334,25 +19930,18 @@ "sNZ" = ( /obj/structure/surface/table, /obj/item/tool/kitchen/utensil/knife, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/shiva/interior/colony/central) "sOg" = ( /obj/structure/surface/table, -/turf/open/floor/shiva{ - dir = 9; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/northwest, /area/shiva/interior/colony/medseceng) "sPn" = ( /obj/structure/surface/table, /obj/effect/spawner/random/toolbox{ pixel_y = 2 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/lz2_habs) "sPo" = ( /obj/structure/barricade/handrail/wire{ @@ -23369,9 +19958,7 @@ /obj/structure/window/reinforced/tinted{ dir = 4 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/s_admin) "sPM" = ( /obj/structure/barricade/snow{ @@ -23382,17 +19969,15 @@ "sQt" = ( /obj/structure/closet/wardrobe/chaplain_black, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/shiva/interior/colony/central) "sQU" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull/west, /area/shiva/interior/colony/research_hab) +"sQX" = ( +/turf/open/auto_turf/ice/layer0, +/area/shiva/exterior/cp_s_research) "sRV" = ( /obj/effect/decal/cleanable/blood{ icon_state = "xgibdown1" @@ -23419,16 +20004,11 @@ /area/shiva/interior/caves/s_lz2) "sVV" = ( /obj/structure/flora/pottedplant, -/turf/open/floor/shiva{ - dir = 10; - icon_state = "green" - }, +/turf/open/floor/shiva/green/southwest, /area/shiva/interior/colony/botany) "sWt" = ( /obj/item/stack/rods, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/exterior/lz2_fortress) "sXr" = ( /obj/structure/surface/table/reinforced/prison, @@ -23436,9 +20016,7 @@ pixel_y = 7 }, /obj/item/tool/pen/blue, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/deck) "sXt" = ( /obj/structure/machinery/light/double, @@ -23449,17 +20027,13 @@ pixel_x = 8; pixel_y = -3 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) "sXP" = ( /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/lz2_habs) "sXZ" = ( /obj/structure/prop/invuln/ice_prefab{ @@ -23496,9 +20070,7 @@ /obj/structure/machinery/landinglight/ds2/delayone{ dir = 1 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) "tad" = ( /obj/structure/platform/strata{ @@ -23516,9 +20088,7 @@ /obj/item/tool/kitchen/rollingpin, /obj/structure/surface/table/reinforced/prison, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/shiva/interior/bar) "tbR" = ( /obj/structure/surface/table, @@ -23534,17 +20104,11 @@ /area/shiva/exterior/lz1_valley) "tcG" = ( /obj/item/weapon/gun/pistol/highpower, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/north, /area/shiva/interior/colony/medseceng) "tcI" = ( /obj/structure/flora/pottedplant, -/turf/open/floor/shiva{ - dir = 5; - icon_state = "wred" - }, +/turf/open/floor/shiva/wred/northeast, /area/shiva/interior/colony/medseceng) "tcR" = ( /obj/structure/largecrate/random/barrel/yellow, @@ -23561,9 +20125,7 @@ /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/shiva{ - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull, /area/shiva/interior/colony/s_admin) "tdG" = ( /obj/structure/platform_decoration/strata{ @@ -23584,10 +20146,7 @@ /area/shiva/interior/colony/n_admin) "tef" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull/west, /area/shiva/interior/colony/medseceng) "tes" = ( /obj/structure/platform/strata, @@ -23612,11 +20171,15 @@ /area/shiva/exterior/junkyard/fortbiceps) "teD" = ( /obj/effect/decal/cleanable/blood/drip, -/turf/open/floor/shiva{ - dir = 10; - icon_state = "green" - }, +/turf/open/floor/shiva/green/southwest, /area/shiva/interior/colony/botany) +"teK" = ( +/obj/structure/stairs/perspective/ice{ + dir = 4; + icon_state = "p_stair_sn_full_cap" + }, +/turf/open/auto_turf/ice/layer2, +/area/shiva/interior/warehouse/caves) "tfd" = ( /turf/open/floor/wood, /area/shiva/interior/colony/central) @@ -23630,10 +20193,7 @@ /obj/item/storage/fancy/cigarettes/lucky_strikes{ pixel_y = 8 }, -/turf/open/floor/shiva{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/southeast, /area/shiva/interior/colony/research_hab) "thB" = ( /obj/structure/window/reinforced/tinted{ @@ -23645,50 +20205,35 @@ /obj/structure/surface/table/reinforced/prison, /obj/item/paper_bin, /obj/item/tool/pen/blue, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/s_admin) -"thK" = ( -/obj/structure/platform/strata{ - dir = 8 - }, -/turf/open/gm/river, -/area/shiva/interior/caves/cp_camp) -"tig" = ( -/obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/auto_turf/snow/layer1, -/area/shiva/interior/caves/cp_camp) "tiw" = ( /obj/structure/machinery/light, -/turf/open/floor/shiva{ - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow, /area/shiva/interior/colony/research_hab) "tiO" = ( /obj/structure/fence, /turf/open/auto_turf/snow/layer3, /area/shiva/exterior/junkyard) +"tjL" = ( +/turf/open/auto_turf/snow/layer4, +/area/shiva/interior/aerodrome) "tkb" = ( /obj/structure/surface/table, /obj/item/tool/pen/blue, -/turf/open/floor/shiva{ - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull, /area/shiva/interior/colony/s_admin) "tkm" = ( /obj/structure/largecrate/random/case, /turf/open/asphalt/cement, /area/shiva/interior/warehouse) -"tkB" = ( -/obj/structure/platform/strata{ - dir = 1 - }, -/obj/structure/platform/strata{ - dir = 8 +"tkS" = ( +/obj/structure/largecrate/random/mini/med{ + pixel_x = -7; + pixel_y = 9 }, -/turf/open/gm/river, -/area/shiva/interior/caves/left_spiders) +/turf/open/auto_turf/snow/layer3, +/area/shiva/interior/caves/cp_camp) "tle" = ( /obj/structure/prop/invuln/ice_prefab/standalone, /turf/open/auto_turf/snow/layer2, @@ -23707,10 +20252,7 @@ /area/shiva/interior/caves/cp_camp) "tlX" = ( /obj/effect/decal/cleanable/blood/drip, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellowfull" - }, +/turf/open/floor/shiva/yellowfull/west, /area/shiva/interior/colony/medseceng) "tmh" = ( /obj/effect/decal/cleanable/blood/drip, @@ -23718,19 +20260,19 @@ /area/shiva/interior/bar) "tmi" = ( /obj/structure/closet/toolcloset, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/garage) "tmI" = ( /obj/structure/machinery/firealarm{ dir = 1; pixel_y = -24 }, -/turf/open/floor/shiva{ - icon_state = "red" - }, +/turf/open/floor/shiva/red, /area/shiva/interior/colony/central) +"tmP" = ( +/obj/structure/largecrate/random/case/double, +/turf/open/auto_turf/ice/layer1, +/area/shiva/interior/aerodrome) "tmV" = ( /obj/structure/machinery/door/airlock/multi_tile/elevator/arrivals, /turf/open/shuttle/elevator/grating, @@ -23740,10 +20282,7 @@ /turf/open/auto_turf/snow/layer0, /area/shiva/exterior/junkyard) "tnh" = ( -/turf/open/floor/shiva{ - dir = 1; - icon_state = "snow_mat" - }, +/turf/open/floor/shiva/snow_mat/north, /area/shiva/interior/colony/n_admin) "tnu" = ( /turf/closed/wall/shiva/prefabricated, @@ -23751,9 +20290,7 @@ "tnz" = ( /obj/effect/decal/cleanable/blood, /obj/item/weapon/gun/shotgun/pump/dual_tube/cmb, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/shiva/interior/bar) "tnG" = ( /obj/structure/inflatable, @@ -23770,22 +20307,26 @@ pixel_y = 8 }, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/botany) "tnU" = ( /obj/structure/machinery/power/apc{ dir = 8; start_charge = 0 }, -/turf/open/auto_turf/snow/layer2, +/turf/open/floor/plating, /area/shiva/exterior/cp_lz2) -"toA" = ( -/turf/open/floor/shiva{ - dir = 1; - icon_state = "yellow" +"too" = ( +/obj/structure/prop/ice_colony/soil_net, +/obj/item/tool/shovel/spade{ + layer = 2.99; + pixel_x = -9; + pixel_y = -11 }, +/turf/open/auto_turf/snow/layer1, +/area/shiva/interior/caves/cp_camp) +"toA" = ( +/turf/open/floor/shiva/yellow/north, /area/shiva/interior/garage) "toD" = ( /turf/open/auto_turf/ice/layer1, @@ -23798,23 +20339,24 @@ /area/shiva/exterior/cp_colony_grounds) "toN" = ( /obj/item/tool/warning_cone, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull/west, /area/shiva/interior/colony/research_hab) +"toO" = ( +/obj/item/stack/rods, +/turf/open/auto_turf/snow/layer1, +/area/shiva/interior/caves/cp_camp) "tpg" = ( /turf/open/floor/plating/plating_catwalk/shiva, -/area/shiva/exterior/lz1_valley) +/area/shiva/exterior/junkyard) "tpL" = ( /obj/effect/decal/warning_stripes{ icon_state = "NW-out" }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "purplefull" +/obj/structure/desertdam/decals/road_stop{ + icon_state = "road_edge_decal5"; + pixel_x = -14 }, +/turf/open/floor/shiva/purplefull/west, /area/shiva/interior/colony/research_hab) "tqs" = ( /obj/structure/prop/ice_colony/dense/ice_tray{ @@ -23824,16 +20366,11 @@ dir = 5; pixel_y = -5 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellowfull" - }, +/turf/open/floor/shiva/yellowfull/west, /area/shiva/interior/colony/research_hab) "tqL" = ( /obj/structure/reagent_dispensers/water_cooler, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/s_admin) "trj" = ( /obj/structure/prop/invuln/ice_prefab{ @@ -23841,15 +20378,6 @@ }, /turf/open/auto_turf/ice/layer0, /area/shiva/interior/caves/cp_camp) -"trw" = ( -/obj/structure/platform/strata{ - dir = 1 - }, -/obj/structure/platform/strata{ - dir = 4 - }, -/turf/open/gm/river, -/area/shiva/interior/caves/left_spiders) "trX" = ( /obj/structure/machinery/conveyor, /obj/effect/decal/cleanable/dirt, @@ -23871,9 +20399,7 @@ pixel_x = 3; pixel_y = 9 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/bar) "tsU" = ( /obj/structure/machinery/light/double, @@ -23883,17 +20409,14 @@ /obj/structure/prop/invuln/minecart_tracks{ dir = 4 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/cp_colony_grounds) -"tue" = ( -/obj/structure/platform/strata{ - dir = 8 +"ttN" = ( +/obj/structure/machinery/sensortower{ + pixel_x = 6 }, -/obj/structure/platform/strata, -/turf/open/gm/river, -/area/shiva/interior/caves/left_spiders) +/turf/open/floor/plating, +/area/shiva/exterior/valley) "tuz" = ( /obj/structure/platform_decoration/strata{ dir = 1 @@ -23914,25 +20437,18 @@ /area/shiva/exterior/junkyard/cp_bar) "tvo" = ( /obj/structure/machinery/disposal, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/medseceng) "twc" = ( /obj/item/paper/research_notes/decent, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/research_hab) "twi" = ( /obj/structure/girder, /turf/open/auto_turf/ice/layer1, /area/shiva/interior/colony/research_hab) "twt" = ( -/turf/open/floor/shiva{ - dir = 5; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/northeast, /area/shiva/interior/colony/research_hab) "twD" = ( /obj/structure/machinery/iv_drip, @@ -23940,48 +20456,26 @@ dir = 4; pixel_y = -5 }, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "wred" - }, +/turf/open/floor/shiva/wred/east, /area/shiva/interior/colony/medseceng) "twG" = ( -/turf/open/floor/shiva{ - dir = 4; - icon_state = "snow_mat" - }, +/turf/open/floor/shiva/snow_mat/east, /area/shiva/interior/colony/central) "txA" = ( /obj/structure/filingcabinet/security, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/shiva{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/shiva/red/southeast, /area/shiva/interior/colony/medseceng) -"txO" = ( -/obj/effect/landmark/objective_landmark/science, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, -/area/shiva/interior/caves/cp_camp) "txS" = ( -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, -/area/shiva/interior/lz2_habs) +/turf/open/floor/shiva/multi_tiles, +/area/shiva/interior/aux_power) "txU" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/research_hab) "txX" = ( /obj/structure/bed/chair/comfy/beige, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/east, /area/shiva/interior/colony/research_hab) "tyi" = ( /obj/structure/prop/invuln/ice_prefab{ @@ -24002,9 +20496,7 @@ dir = 4; pixel_y = 5 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/lz2_habs) "tze" = ( /obj/item/device/flashlight/lamp/tripod/grey, @@ -24017,16 +20509,10 @@ /obj/structure/bed/chair/office/light{ dir = 8 }, -/turf/open/floor/shiva{ - dir = 6; - icon_state = "multi_tiles" - }, -/area/shiva/interior/lz2_habs) +/turf/open/floor/shiva/multi_tiles/southeast, +/area/shiva/interior/aux_power) "tzH" = ( -/turf/open/floor/shiva{ - dir = 4; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/east, /area/shiva/interior/colony/deck) "tAc" = ( /obj/structure/flora/bush/ausbushes/lavendergrass{ @@ -24040,10 +20526,12 @@ /area/shiva/exterior/junkyard/cp_bar) "tCi" = ( /obj/item/stack/cable_coil/cut, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/medseceng) +"tDb" = ( +/obj/structure/platform/shiva/catwalk, +/turf/open/auto_turf/snow/layer1, +/area/shiva/exterior/valley) "tDg" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/reagent_container/food/drinks/cans/waterbottle{ @@ -24075,9 +20563,7 @@ dir = 1; icon_state = "sandbag_0" }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) "tEE" = ( /obj/structure/blocker/invisible_wall, @@ -24127,28 +20613,21 @@ /area/shiva/interior/aerodrome) "tGS" = ( /obj/structure/machinery/landinglight/ds2/spoke, -/turf/open/floor/shiva{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/southeast, /area/shiva/interior/colony/botany) "tGU" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper Colony Dormitories Canteen"; req_access_txt = "100" }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/botany) "tHd" = ( /turf/open/auto_turf/snow/layer1, /area/shiva/exterior/junkyard) "tHD" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/shiva/interior/colony/research_hab) "tHJ" = ( /obj/structure/prop/ice_colony/dense/ice_tray{ @@ -24158,9 +20637,7 @@ /area/shiva/interior/caves/cp_camp) "tIR" = ( /obj/effect/decal/cleanable/blood/drip, -/turf/open/floor/shiva{ - icon_state = "green" - }, +/turf/open/floor/shiva/green, /area/shiva/interior/colony/botany) "tJe" = ( /obj/structure/prop/invuln/ice_prefab/trim{ @@ -24177,13 +20654,11 @@ /obj/structure/bed/chair/comfy/blue{ dir = 4 }, -/turf/open/floor/shiva{ - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull, /area/shiva/interior/colony/botany) "tJP" = ( -/obj/structure/surface/rack, -/turf/open/auto_turf/ice/layer0, +/obj/structure/flora/tree/dead/tree_4, +/turf/open/auto_turf/snow/layer3, /area/shiva/interior/caves/cp_camp) "tJS" = ( /obj/structure/blocker/invisible_wall, @@ -24193,16 +20668,15 @@ /obj/effect/decal/warning_stripes{ icon_state = "SW-out" }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "purplefull" +/obj/structure/desertdam/decals/road_stop{ + icon_state = "road_edge_decal8"; + pixel_x = -14 }, +/turf/open/floor/shiva/purplefull/west, /area/shiva/interior/colony/research_hab) "tKd" = ( /obj/structure/bed/chair/comfy/blue, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/n_admin) "tKg" = ( /obj/structure/flora/bush/snow{ @@ -24212,9 +20686,7 @@ /area/shiva/interior/colony/central) "tKk" = ( /obj/structure/machinery/light/double, -/turf/open/floor/shiva{ - icon_state = "green" - }, +/turf/open/floor/shiva/green, /area/shiva/interior/colony/botany) "tKv" = ( /obj/structure/largecrate/random/mini/wooden{ @@ -24231,10 +20703,15 @@ /area/shiva/exterior/telecomm/lz2_southeast) "tLz" = ( /obj/structure/machinery/space_heater, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/medseceng) +"tLC" = ( +/obj/item/lightstick/red/variant/planted, +/obj/structure/platform/shiva/catwalk{ + dir = 4 + }, +/turf/open/auto_turf/snow/layer2, +/area/shiva/interior/aerodrome) "tLP" = ( /obj/structure/platform/shiva/catwalk{ dir = 1 @@ -24262,33 +20739,24 @@ pixel_y = 6 }, /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/shiva/red/north, /area/shiva/interior/colony/medseceng) "tMY" = ( /obj/structure/machinery/light/double{ dir = 4; pixel_y = -5 }, -/turf/open/floor/shiva{ - icon_state = "radiator_tile" - }, +/turf/open/floor/shiva/radiator_tile, /area/shiva/exterior/cp_lz2) "tNm" = ( /obj/structure/surface/table, /obj/item/tool/kitchen/utensil/fork, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/shiva/interior/colony/central) "tNN" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/device/t_scanner, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/shiva/interior/colony/research_hab) "tNP" = ( /obj/structure/surface/table, @@ -24297,9 +20765,7 @@ pixel_y = 10 }, /obj/item/storage/firstaid/adv, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/research_hab) "tOo" = ( /obj/effect/spider/stickyweb, @@ -24320,9 +20786,7 @@ pixel_x = -1; pixel_y = -4 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/botany) "tPs" = ( /obj/structure/prop/ice_colony/ground_wire{ @@ -24332,10 +20796,12 @@ /area/shiva/interior/caves/cp_camp) "tPz" = ( /obj/structure/largecrate/random, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/valley_huts/no2) +"tPB" = ( +/obj/structure/platform/strata, +/turf/open/auto_turf/snow/layer4, +/area/shiva/interior/caves/cp_camp) "tPJ" = ( /obj/structure/platform/shiva/catwalk, /turf/open/auto_turf/snow/layer1, @@ -24349,20 +20815,14 @@ dir = 1; name = "\improper Colony Storeroom" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/shiva/interior/telecomm/lz1_biceps) "tQK" = ( /obj/item/stack/rods, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/central) "tQN" = ( -/turf/open/floor/shiva{ - icon_state = "radiator_tile" - }, +/turf/open/floor/shiva/radiator_tile, /area/shiva/interior/lz2_habs) "tQR" = ( /obj/structure/bed/chair{ @@ -24372,14 +20832,8 @@ dir = 8; start_charge = 0 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/botany) -"tRn" = ( -/obj/item/lightstick/red/variant/planted, -/turf/open/auto_turf/ice/layer0, -/area/shiva/interior/caves/cp_camp) "tRq" = ( /obj/structure/filingcabinet{ pixel_x = 8; @@ -24390,9 +20844,7 @@ pixel_y = 4 }, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/shiva{ - icon_state = "yellowfull" - }, +/turf/open/floor/shiva/yellowfull, /area/shiva/interior/colony/research_hab) "tRN" = ( /obj/structure/largecrate/random{ @@ -24415,30 +20867,24 @@ /obj/structure/bed/chair/comfy/orange{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/shiva/interior/bar) "tSt" = ( /obj/structure/barricade/handrail/strata, /obj/structure/surface/table, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/central) "tSI" = ( /obj/structure/machinery/light/double{ dir = 1; pixel_y = 9 }, -/turf/open/floor/shiva{ - icon_state = "purplefull" - }, +/turf/open/floor/shiva/purplefull, /area/shiva/interior/colony/research_hab) "tTc" = ( /obj/effect/landmark/monkey_spawn, -/turf/open/auto_turf/snow/layer0, +/turf/open/auto_turf/snow/layer3, /area/shiva/interior/caves/cp_camp) "tTd" = ( /obj/structure/prop/ice_colony/dense/planter_box{ @@ -24457,9 +20903,7 @@ /obj/structure/prop/ice_colony/tiger_rug{ icon_state = "White" }, -/turf/open/floor/shiva{ - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull, /area/shiva/interior/colony/s_admin) "tUe" = ( /obj/structure/prop/invuln/minecart_tracks{ @@ -24489,18 +20933,14 @@ /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/shiva{ - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull, /area/shiva/interior/colony/s_admin) "tWv" = ( /obj/structure/machinery/light/double{ dir = 1; pixel_y = 9 }, -/turf/open/floor/shiva{ - icon_state = "radiator_tile2" - }, +/turf/open/floor/shiva/radiator_tile2, /area/shiva/interior/colony/medseceng) "tWz" = ( /obj/structure/machinery/space_heater, @@ -24510,16 +20950,11 @@ /obj/structure/surface/table/reinforced/prison, /obj/item/clipboard, /obj/item/tool/stamp, -/turf/open/floor/shiva{ - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull, /area/shiva/interior/colony/n_admin) "tXd" = ( /obj/effect/decal/cleanable/blood/oil/streak, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/north, /area/shiva/interior/garage) "tXe" = ( /obj/effect/landmark/monkey_spawn, @@ -24531,16 +20966,12 @@ /area/shiva/interior/aerodrome) "tYa" = ( /obj/item/storage/toolbox/electrical, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/bar) "tYm" = ( /obj/structure/largecrate/random/case/double, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, -/area/shiva/interior/lz2_habs) +/turf/open/floor/shiva/floor3, +/area/shiva/interior/aux_power) "tYw" = ( /turf/closed/wall/shiva/prefabricated/reinforced/hull, /area/shiva/exterior/junkyard) @@ -24562,10 +20993,7 @@ /obj/structure/barricade/handrail/strata{ dir = 8 }, -/turf/open/floor/shiva{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/southeast, /area/shiva/interior/colony/central) "tZA" = ( /obj/structure/surface/table/reinforced/prison, @@ -24578,15 +21006,11 @@ pixel_x = 7; pixel_y = 14 }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/shiva/interior/colony/research_hab) "tZM" = ( /obj/item/weapon/broken_bottle, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/shiva/interior/bar) "tZW" = ( /obj/structure/surface/rack, @@ -24623,9 +21047,7 @@ id = "nlz_shutters"; name = "\improper Bio-lab Shutters" }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/lz2_habs) "ucn" = ( /obj/structure/largecrate/random/mini/med{ @@ -24639,6 +21061,13 @@ }, /turf/open/auto_turf/snow/layer2, /area/shiva/exterior/junkyard) +"ucN" = ( +/obj/structure/flora/grass/tallgrass/ice/corner{ + dir = 6 + }, +/obj/structure/blocker/forcefield/multitile_vehicles, +/turf/open/auto_turf/snow/layer2, +/area/shiva/exterior/cp_s_research) "udD" = ( /obj/structure/prop/dam/truck{ dir = 4; @@ -24648,10 +21077,7 @@ /area/shiva/exterior/junkyard) "udJ" = ( /obj/effect/landmark/queen_spawn, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/west, /area/shiva/interior/colony/research_hab) "uee" = ( /obj/item/weapon/gun/revolver/cmb, @@ -24661,19 +21087,14 @@ /obj/structure/flora/pottedplant{ icon_state = "pottedplant_21" }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull/west, /area/shiva/interior/colony/research_hab) "ueG" = ( /obj/structure/prop/souto_land/streamer{ dir = 9 }, /obj/structure/machinery/cm_vending/sorted/medical/no_access, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/shiva/interior/bar) "ueX" = ( /obj/item/ammo_magazine/rifle/boltaction, @@ -24684,9 +21105,7 @@ dir = 1; start_charge = 0 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/research_hab) "ufd" = ( /obj/structure/surface/table, @@ -24702,9 +21121,7 @@ pixel_x = -3; pixel_y = -1 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/medseceng) "ufA" = ( /obj/structure/surface/table/reinforced, @@ -24736,40 +21153,27 @@ /obj/structure/largecrate/random/case/double, /turf/open/auto_turf/ice/layer1, /area/shiva/interior/caves/s_lz2) -"ugD" = ( -/obj/structure/machinery/light/double{ - dir = 4; - pixel_y = -5 - }, -/turf/open/floor/shiva, -/area/shiva/interior/aerodrome) +"ugC" = ( +/turf/open/auto_turf/ice/layer1, +/area/shiva/interior/oob) "ugP" = ( /obj/structure/computerframe, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull/west, /area/shiva/interior/colony/research_hab) "uhe" = ( /obj/structure/machinery/colony_floodlight{ pixel_y = 10 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/exterior/cp_lz2) "uhL" = ( -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/s_admin) "uhO" = ( /obj/item/lightstick/red/spoke/planted{ pixel_x = 11 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/bar) "uhV" = ( /obj/structure/machinery/alarm{ @@ -24779,31 +21183,21 @@ dir = 4; pixel_x = 24 }, -/turf/open/floor/shiva{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/shiva/red/northeast, /area/shiva/interior/colony/medseceng) "uig" = ( /obj/item/shard{ icon_state = "medium" }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/s_admin) -"uil" = ( -/obj/structure/prop/invuln/ice_prefab/standalone/trim{ - icon_state = "white_trim" - }, -/turf/closed/wall/shiva/ice, -/area/shiva/exterior/research_alley) "uim" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/shiva/interior/colony/research_hab) +"uir" = ( +/turf/closed/wall/shiva/prefabricated/reinforced, +/area/shiva/interior/caves/cp_camp) "uiI" = ( /obj/item/reagent_container/food/drinks/cans/beer, /turf/open/auto_turf/snow/layer0, @@ -24824,16 +21218,11 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/shiva/red/west, /area/shiva/interior/colony/medseceng) "ujJ" = ( /obj/structure/machinery/vending/cigarette/colony, -/turf/open/floor/shiva{ - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull, /area/shiva/interior/colony/n_admin) "ujV" = ( /obj/structure/machinery/landinglight/ds2/delaytwo{ @@ -24842,9 +21231,7 @@ /obj/structure/machinery/landinglight/ds2/delaythree{ dir = 4 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) "ukp" = ( /turf/open/auto_turf/ice/layer1, @@ -24854,9 +21241,7 @@ /obj/item/tool/wrench, /obj/item/tool/screwdriver, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/medseceng) "ukU" = ( /obj/structure/surface/table, @@ -24865,15 +21250,11 @@ dir = 8; pixel_y = -5 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, -/area/shiva/interior/lz2_habs) +/turf/open/floor/shiva/floor3, +/area/shiva/interior/aux_power) "ulm" = ( /obj/structure/machinery/disposal, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/garage) "ulD" = ( /obj/structure/cable/heavyduty{ @@ -24882,6 +21263,10 @@ /obj/structure/platform/shiva/catwalk, /turf/open/floor/plating/plating_catwalk/shiva, /area/shiva/exterior/junkyard/fortbiceps) +"ulI" = ( +/obj/structure/flora/bush/ausbushes/lavendergrass, +/turf/open/auto_turf/ice/layer1, +/area/shiva/interior/caves/cp_camp) "ulZ" = ( /obj/structure/platform/shiva/catwalk, /obj/structure/cable/heavyduty{ @@ -24892,15 +21277,10 @@ "umj" = ( /obj/structure/foamed_metal, /obj/effect/decal/cleanable/ash, -/turf/open/floor/shiva{ - icon_state = "radiator_tile" - }, +/turf/open/floor/shiva/radiator_tile, /area/shiva/exterior/lz2_fortress) "umm" = ( -/turf/open/floor/shiva{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/north, /area/shiva/interior/colony/medseceng) "umB" = ( /turf/closed/wall/shiva/prefabricated/reinforced/hull, @@ -24909,9 +21289,7 @@ /obj/structure/prop/invuln/minecart_tracks/bumper{ dir = 4 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/cp_colony_grounds) "uot" = ( /obj/structure/largecrate/random/case, @@ -24919,10 +21297,8 @@ dir = 1; pixel_y = 9 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, -/area/shiva/interior/lz2_habs) +/turf/open/floor/shiva/floor3, +/area/shiva/interior/aux_power) "uoI" = ( /obj/structure/prop/invuln/ice_prefab/standalone/trim{ icon_state = "white_trim" @@ -24935,11 +21311,11 @@ /turf/closed/wall/shiva/prefabricated/white, /area/shiva/exterior/cp_lz2) "uoZ" = ( -/obj/effect/spider/stickyweb{ - icon_state = "stickyweb2" +/obj/structure/tunnel{ + id = "south_tcomms_tunnel" }, /turf/open/auto_turf/ice/layer2, -/area/shiva/interior/caves/left_spiders) +/area/shiva/interior/caves/cp_camp) "upf" = ( /obj/item/tool/pickaxe, /turf/open/auto_turf/snow/layer1, @@ -24956,20 +21332,19 @@ /area/shiva/exterior/junkyard/fortbiceps) "upp" = ( /obj/item/ammo_magazine/revolver/cmb, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "purplefull" - }, +/turf/open/floor/shiva/purplefull/west, /area/shiva/interior/lz2_habs) +"upK" = ( +/obj/effect/landmark/corpsespawner/engineer, +/obj/effect/decal/cleanable/blood, +/turf/open/auto_turf/snow/layer3, +/area/shiva/interior/caves/cp_camp) "uqb" = ( /turf/open/auto_turf/snow/layer2, /area/shiva/exterior/lz1_valley) "uqS" = ( /obj/structure/machinery/space_heater, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull/west, /area/shiva/interior/colony/medseceng) "urX" = ( /obj/structure/flora/bush/snow{ @@ -24978,10 +21353,7 @@ /turf/open/auto_turf/snow/layer2, /area/shiva/exterior/cp_colony_grounds) "ush" = ( -/turf/open/floor/shiva{ - dir = 5; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/northeast, /area/shiva/interior/garage) "usZ" = ( /obj/structure/barricade/handrail/wire{ @@ -24998,9 +21370,7 @@ /area/shiva/interior/caves/cp_camp) "uuv" = ( /obj/structure/bed/chair/comfy/beige, -/turf/open/floor/shiva{ - icon_state = "yellowfull" - }, +/turf/open/floor/shiva/yellowfull, /area/shiva/interior/colony/research_hab) "uuN" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_core, @@ -25014,9 +21384,7 @@ dir = 8 }, /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/s_admin) "uvU" = ( /obj/effect/decal/cleanable/blood, @@ -25026,9 +21394,7 @@ /obj/effect/decal/cleanable/blood/xeno{ icon_state = "xgibhead" }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/lz2_habs) "uwz" = ( /obj/structure/prop/invuln/ice_prefab/standalone/trim{ @@ -25040,29 +21406,25 @@ /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/aerodrome) "uxH" = ( /obj/structure/flora/pottedplant, -/turf/open/floor/shiva{ - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull, /area/shiva/interior/colony/s_admin) "uxO" = ( /obj/structure/bed, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull/west, /area/shiva/interior/colony/medseceng) "uxV" = ( -/turf/open/floor/shiva{ - dir = 1; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/north, /area/shiva/interior/colony/botany) +"uxZ" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W-corner" + }, +/turf/open/floor/plating, +/area/shiva/exterior/junkyard) "uyI" = ( /obj/structure/largecrate/random/mini/small_case/c{ pixel_x = 11; @@ -25073,9 +21435,7 @@ "uyJ" = ( /obj/structure/machinery/light, /obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/shiva{ - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow, /area/shiva/interior/colony/medseceng) "uzf" = ( /obj/effect/landmark/yautja_teleport, @@ -25085,9 +21445,7 @@ /obj/structure/surface/rack, /obj/item/circuitboard/airalarm, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/medseceng) "uzu" = ( /turf/open/auto_turf/snow/layer4, @@ -25097,15 +21455,11 @@ /turf/open/auto_turf/ice/layer1, /area/shiva/exterior/lz2_fortress) "uzP" = ( -/turf/open/floor/shiva{ - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull, /area/shiva/interior/colony/n_admin) "uzU" = ( /obj/structure/surface/rack, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/cp_colony_grounds) "uAd" = ( /obj/structure/lz_sign/ice_sign{ @@ -25116,9 +21470,7 @@ "uAq" = ( /obj/structure/surface/table/reinforced/prison, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/shiva/interior/colony/central) "uAM" = ( /obj/item/lightstick/red/spoke/planted{ @@ -25130,10 +21482,8 @@ /area/shiva/exterior/cp_colony_grounds) "uBz" = ( /obj/structure/machinery/autolathe/full, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, -/area/shiva/interior/lz2_habs) +/turf/open/floor/shiva/floor3, +/area/shiva/interior/aux_power) "uCp" = ( /obj/structure/machinery/light/small{ dir = 8 @@ -25145,23 +21495,17 @@ /turf/open/auto_turf/snow/layer2, /area/shiva/exterior/lz1_valley) "uCO" = ( -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/shiva/exterior/cp_lz2) "uDb" = ( /obj/structure/bed/chair, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/shiva/interior/colony/central) "uDZ" = ( /obj/effect/landmark/nightmare{ insert_tag = "lz2-east" }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) "uEo" = ( /obj/structure/platform/strata, @@ -25172,10 +21516,7 @@ /obj/effect/decal/warning_stripes{ icon_state = "N" }, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "purplefull" - }, +/turf/open/floor/shiva/purplefull/north, /area/shiva/interior/colony/research_hab) "uFl" = ( /obj/structure/barricade/snow{ @@ -25194,18 +21535,13 @@ /obj/structure/surface/table, /obj/item/device/flashlight, /obj/item/ammo_magazine/shotgun/slugs, -/turf/open/floor/shiva{ - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull, /area/shiva/interior/colony/s_admin) "uFA" = ( /obj/item/weapon/gun/boltaction{ pixel_x = -6 }, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/north, /area/shiva/exterior/lz2_fortress) "uGq" = ( /turf/open/floor/plating, @@ -25213,34 +21549,26 @@ "uGw" = ( /obj/structure/filingcabinet, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, -/area/shiva/interior/lz2_habs) +/turf/open/floor/shiva/floor3, +/area/shiva/interior/aux_power) "uHa" = ( /obj/structure/morgue, /obj/structure/machinery/light/double{ dir = 8; pixel_y = -5 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/central) "uHA" = ( /obj/item/tool/wet_sign, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/aerodrome) "uHH" = ( /obj/structure/machinery/light/double{ dir = 1; pixel_y = 9 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/shiva/interior/colony/central) "uIC" = ( /obj/structure/prop/invuln/minecart_tracks{ @@ -25254,13 +21582,22 @@ /obj/item/stack/sheet/plasteel/medium_stack, /turf/open/auto_turf/ice/layer1, /area/shiva/interior/caves/s_lz2) +"uIE" = ( +/obj/structure/blocker/forcefield/multitile_vehicles, +/turf/open/auto_turf/ice/layer1, +/area/shiva/interior/colony/research_hab) "uII" = ( /obj/structure/surface/table, /obj/effect/landmark/corpsespawner/scientist, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/research_hab) +"uIO" = ( +/obj/item/lightstick/red/variant/planted{ + pixel_x = 11; + pixel_y = 11 + }, +/turf/open/auto_turf/snow/layer2, +/area/shiva/interior/caves/cp_camp) "uJg" = ( /obj/item/clothing/shoes/snow, /obj/structure/surface/rack, @@ -25275,10 +21612,7 @@ dir = 8; pixel_y = -5 }, -/turf/open/floor/shiva{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/southeast, /area/shiva/interior/colony/central) "uJj" = ( /obj/structure/flora/bush/snow{ @@ -25289,10 +21623,7 @@ /area/shiva/exterior/cp_colony_grounds) "uJk" = ( /obj/item/weapon/broken_bottle, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "snow_mat" - }, +/turf/open/floor/shiva/snow_mat/north, /area/shiva/interior/colony/botany) "uJL" = ( /obj/item/lightstick/red/spoke/planted{ @@ -25318,23 +21649,17 @@ pixel_y = 14 }, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/research_hab) "uKB" = ( /obj/structure/prop/ice_colony/surveying_device/measuring_device, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/caves/s_lz2) "uKN" = ( /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/shiva{ - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull, /area/shiva/interior/colony/s_admin) "uKV" = ( /obj/structure/surface/table, @@ -25345,10 +21670,7 @@ pixel_x = 5; pixel_y = -5 }, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "wred" - }, +/turf/open/floor/shiva/wred/north, /area/shiva/interior/colony/medseceng) "uKZ" = ( /turf/closed/wall/shiva/prefabricated, @@ -25367,16 +21689,16 @@ }, /turf/open/gm/river/no_overlay, /area/shiva/interior/caves/cp_camp) +"uLi" = ( +/turf/open/auto_turf/ice/layer0, +/area/shiva/interior/aerodrome) "uLn" = ( /obj/structure/closet/secure_closet/medical1{ req_access_txt = "100" }, /obj/item/paper/research_notes, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "wred" - }, +/turf/open/floor/shiva/wred/west, /area/shiva/interior/colony/medseceng) "uLq" = ( /obj/structure/prop/ice_colony/ground_wire{ @@ -25386,17 +21708,11 @@ dir = 8; pixel_y = -5 }, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "purple" - }, +/turf/open/floor/shiva/purple/east, /area/shiva/interior/lz2_habs) "uLu" = ( /obj/structure/closet/firecloset, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull/west, /area/shiva/interior/colony/research_hab) "uLT" = ( /obj/structure/machinery/conveyor, @@ -25408,16 +21724,6 @@ }, /turf/open/auto_turf/snow/layer0, /area/shiva/exterior/cp_lz2) -"uMJ" = ( -/obj/structure/machinery/light/double{ - dir = 8; - pixel_y = -5 - }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "bluefull" - }, -/area/shiva/interior/aerodrome) "uNe" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony{ name = "\improper Colony Engineering Locker Room" @@ -25425,29 +21731,16 @@ /obj/structure/blocker/forcefield/multitile_vehicles, /turf/open/floor/plating, /area/shiva/interior/colony/medseceng) -"uOc" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "purplefull" - }, -/area/shiva/interior/colony/research_hab) "uOR" = ( /obj/effect/landmark/xeno_spawn, -/turf/open/floor/shiva{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/southeast, /area/shiva/interior/colony/research_hab) "uPo" = ( /obj/structure/machinery/light/double{ dir = 8; pixel_y = -5 }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/shiva/interior/colony/central) "uPv" = ( /obj/structure/prop/invuln/ice_prefab{ @@ -25481,22 +21774,16 @@ /area/shiva/interior/colony/central) "uRi" = ( /obj/item/stack/cable_coil/cut, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, -/area/shiva/interior/lz2_habs) +/turf/open/floor/shiva/floor3, +/area/shiva/interior/aux_power) "uRn" = ( /obj/item/weapon/gun/boltaction, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) "uRt" = ( /obj/structure/closet/radiation, /obj/effect/spawner/random/powercell, -/turf/open/floor/shiva{ - icon_state = "purplefull" - }, +/turf/open/floor/shiva/purplefull, /area/shiva/interior/colony/research_hab) "uRK" = ( /obj/structure/surface/table, @@ -25506,10 +21793,7 @@ pixel_x = 24 }, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "wred" - }, +/turf/open/floor/shiva/wred/east, /area/shiva/interior/colony/medseceng) "uSd" = ( /obj/structure/flora/bush/snow{ @@ -25518,10 +21802,7 @@ /turf/open/auto_turf/snow/layer2, /area/shiva/exterior/cp_colony_grounds) "uSe" = ( -/turf/open/floor/shiva{ - dir = 10; - icon_state = "green" - }, +/turf/open/floor/shiva/green/southwest, /area/shiva/interior/colony/botany) "uSF" = ( /mob/living/simple_animal/hostile/giant_spider/nurse, @@ -25534,10 +21815,7 @@ "uTB" = ( /obj/structure/surface/table/reinforced/prison, /obj/effect/spawner/random/bomb_supply, -/turf/open/floor/shiva{ - dir = 5; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/northeast, /area/shiva/interior/colony/medseceng) "uTL" = ( /obj/item/tool/pickaxe/diamond{ @@ -25551,15 +21829,11 @@ /obj/effect/landmark/nightmare{ insert_tag = "lz2-southeast-gate" }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) "uTN" = ( /obj/structure/machinery/vending/coffee, -/turf/open/floor/shiva{ - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull, /area/shiva/interior/colony/n_admin) "uVa" = ( /obj/structure/machinery/power/terminal{ @@ -25569,16 +21843,11 @@ dir = 8; pixel_y = -5 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellowfull" - }, +/turf/open/floor/shiva/yellowfull/west, /area/shiva/interior/colony/medseceng) "uVK" = ( /obj/effect/decal/cleanable/blood/gibs/xeno, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/botany) "uWi" = ( /obj/structure/prop/invuln/ice_prefab{ @@ -25594,20 +21863,13 @@ /obj/structure/bed/chair/comfy/beige{ dir = 1 }, -/turf/open/floor/shiva{ - icon_state = "yellowfull" - }, +/turf/open/floor/shiva/yellowfull, /area/shiva/interior/colony/research_hab) "uXQ" = ( -/turf/open/floor/shiva{ - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow, /area/shiva/interior/colony/medseceng) "uYa" = ( -/turf/open/floor/shiva{ - dir = 1; - icon_state = "greencorners" - }, +/turf/open/floor/shiva/greencorners/north, /area/shiva/interior/colony/botany) "uYg" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ @@ -25617,15 +21879,11 @@ /area/shiva/interior/colony/medseceng) "uYl" = ( /obj/item/tool/warning_cone, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/bar) "uYt" = ( /obj/structure/reagent_dispensers, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/research_hab) "uYC" = ( /turf/closed/wall/shiva/prefabricated, @@ -25638,29 +21896,16 @@ /turf/open/floor/plating, /area/shiva/interior/colony/medseceng) "uZf" = ( -/turf/open/floor/shiva{ - icon_state = "wredcorners" - }, +/turf/open/floor/shiva/wredcorners, /area/shiva/interior/colony/medseceng) "uZl" = ( -/turf/open/floor/shiva{ - icon_state = "greenfull" - }, +/turf/open/floor/shiva/greenfull, /area/shiva/interior/colony/botany) -"uZF" = ( -/obj/structure/barricade/handrail/wire{ - dir = 8 - }, -/obj/structure/barricade/handrail/wire, -/turf/open/auto_turf/ice/layer1, -/area/shiva/interior/caves/cp_camp) "uZJ" = ( /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/medseceng) "uZU" = ( /obj/structure/prop/ice_colony/dense/planter_box{ @@ -25672,19 +21917,13 @@ }, /turf/open/auto_turf/snow/layer0, /area/shiva/interior/colony/medseceng) -"vaT" = ( -/obj/effect/landmark/hunter_primary, -/turf/open/auto_turf/snow/layer1, -/area/shiva/interior/caves/cp_camp) "vbb" = ( /obj/structure/surface/table/woodentable, /obj/item/device/flashlight/lamp, /obj/item/tool/pen/blue{ pixel_x = 5 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/s_admin) "vbm" = ( /obj/structure/bed/chair/comfy/orange, @@ -25692,36 +21931,23 @@ /area/shiva/interior/colony/central) "vbA" = ( /obj/item/stack/rods, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) "vcx" = ( /obj/structure/surface/table, /obj/item/device/flashlight/flare, /obj/item/device/radio, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/medseceng) "vcU" = ( /obj/structure/machinery/light/double, -/turf/open/floor/shiva{ - dir = 10; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/southwest, /area/shiva/interior/colony/medseceng) "vdb" = ( /obj/structure/closet/secure_closet/freezer/meat, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/shiva/interior/colony/central) -"vdk" = ( -/obj/vehicle/train/cargo/engine, -/turf/open/auto_turf/snow/layer0, -/area/shiva/exterior/lz1_valley) "vdw" = ( /obj/item/lightstick/red/spoke/planted{ layer = 2.99; @@ -25737,18 +21963,14 @@ /area/shiva/interior/caves/s_lz2) "vdC" = ( /obj/structure/flora/pottedplant, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/s_admin) "vdS" = ( /obj/structure/machinery/light/double{ dir = 1; pixel_y = 9 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/research_hab) "veo" = ( /obj/structure/surface/table, @@ -25757,31 +21979,22 @@ dir = 4; pixel_x = 24 }, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "wred" - }, +/turf/open/floor/shiva/wred/east, /area/shiva/interior/colony/medseceng) "ver" = ( -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/garage) "ves" = ( /obj/structure/machinery/light/double, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/shiva/interior/colony/central) "veu" = ( /obj/structure/platform_decoration/strata, +/obj/structure/blocker/forcefield/multitile_vehicles, /turf/open/auto_turf/snow/layer3, /area/shiva/exterior/junkyard) "vey" = ( -/turf/open/floor/shiva{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/shiva/red/northeast, /area/shiva/interior/colony/medseceng) "veS" = ( /obj/structure/largecrate/random/case/double, @@ -25791,74 +22004,57 @@ /turf/closed/wall/shiva/prefabricated, /area/shiva/exterior/cp_lz2) "vfd" = ( -/turf/open/floor/shiva{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/southeast, /area/shiva/interior/colony/central) +"vgR" = ( +/obj/structure/platform_decoration/strata, +/turf/open/auto_turf/snow/layer4, +/area/shiva/interior/caves/cp_camp) "vhp" = ( /obj/structure/surface/table, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/central) "vhG" = ( /obj/structure/surface/rack, /obj/item/tool/extinguisher/mini, /obj/item/circuitboard/airlock, /obj/effect/landmark/crap_item, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/north, /area/shiva/interior/colony/medseceng) "vhL" = ( -/turf/open/floor/shiva{ - dir = 6; - icon_state = "green" - }, +/turf/open/floor/shiva/green/southeast, /area/shiva/interior/colony/botany) "vhM" = ( /obj/structure/flora/tree/dead/tree_4, /turf/open/auto_turf/snow/layer3, -/area/shiva/exterior/cp_s_research) +/area/shiva/exterior/junkyard) "vhQ" = ( /obj/structure/machinery/space_heater, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/garage) +"vip" = ( +/obj/structure/platform_decoration/shiva/catwalk{ + dir = 8 + }, +/turf/open/auto_turf/snow/layer2, +/area/shiva/exterior/valley) "viy" = ( /obj/structure/machinery/disposal, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/botany) "viF" = ( /obj/structure/machinery/light/double{ dir = 1; pixel_y = 9 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/bar) -"vjg" = ( -/obj/structure/platform/strata, -/obj/structure/platform/strata{ - dir = 4 - }, -/turf/open/gm/river, -/area/shiva/interior/caves/cp_camp) "vjs" = ( /obj/effect/decal/warning_stripes{ icon_state = "E" }, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "purplefull" - }, +/turf/open/floor/shiva/purplefull/east, /area/shiva/interior/colony/research_hab) "vjy" = ( /obj/item/lightstick/red/planted, @@ -25873,16 +22069,15 @@ /area/shiva/interior/bar) "vkq" = ( /obj/structure/surface/table, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull/west, /area/shiva/interior/colony/medseceng) +"vkr" = ( +/obj/item/device/flashlight, +/turf/open/auto_turf/snow/layer0, +/area/shiva/exterior/cp_s_research) "vkZ" = ( /obj/structure/largecrate/random, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/valley_huts) "vlh" = ( /obj/structure/platform/strata{ @@ -25895,9 +22090,7 @@ /turf/open/auto_turf/ice/layer1, /area/shiva/interior/caves/research_caves) "vmy" = ( -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/botany) "vnc" = ( /obj/structure/platform/strata, @@ -25908,15 +22101,8 @@ req_access_txt = "100" }, /obj/item/paper/research_notes, -/turf/open/floor/shiva{ - dir = 10; - icon_state = "wred" - }, +/turf/open/floor/shiva/wred/southwest, /area/shiva/interior/colony/medseceng) -"vnr" = ( -/obj/structure/prop/ice_colony/soil_net, -/turf/open/auto_turf/ice/layer0, -/area/shiva/interior/caves/cp_camp) "vnF" = ( /obj/structure/surface/table, /obj/item/device/radio, @@ -25929,9 +22115,7 @@ /area/shiva/interior/telecomm/lz1_biceps) "vnX" = ( /obj/item/stack/barbed_wire, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/botany) "vom" = ( /obj/structure/barricade/sandbags/wired{ @@ -25945,7 +22129,7 @@ dir = 8 }, /turf/open/auto_turf/snow/layer2, -/area/shiva/exterior/lz1_valley) +/area/shiva/exterior/junkyard) "voH" = ( /obj/structure/machinery/landinglight/ds2/spoke{ pixel_x = 1; @@ -25958,14 +22142,10 @@ /area/shiva/exterior/telecomm/lz1_north) "vpZ" = ( /obj/item/tool/wet_sign, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/bar) "vqq" = ( -/turf/open/floor/shiva{ - icon_state = "radiator_tile" - }, +/turf/open/floor/shiva/radiator_tile, /area/shiva/interior/colony/central) "vqw" = ( /obj/structure/platform/strata, @@ -25983,29 +22163,27 @@ dir = 9 }, /turf/open/auto_turf/snow/layer2, -/area/shiva/exterior/lz1_valley) +/area/shiva/exterior/junkyard) "vrm" = ( /obj/structure/bed/chair/office/light{ dir = 4 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/s_admin) +"vrG" = ( +/obj/structure/largecrate/random/barrel/blue, +/turf/open/auto_turf/snow/layer1, +/area/shiva/interior/caves/cp_camp) "vrM" = ( /obj/effect/decal/warning_stripes{ pixel_y = 32 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/medseceng) "vsi" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/storage/box/wy_mre, -/turf/open/floor/shiva{ - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull, /area/shiva/interior/colony/n_admin) "vty" = ( /obj/item/shard{ @@ -26016,54 +22194,59 @@ /area/shiva/interior/caves/s_lz2) "vtz" = ( /obj/effect/decal/cleanable/blood/drip, -/turf/open/auto_turf/snow/layer0, +/turf/open/auto_turf/snow/layer1, /area/shiva/interior/caves/cp_camp) "vuj" = ( /obj/structure/bed/roller, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/research_hab) "vvb" = ( /obj/structure/machinery/alarm{ pixel_y = 24 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/central) +"vwn" = ( +/obj/effect/decal/cleanable/blood/drip, +/turf/open/auto_turf/ice/layer1, +/area/shiva/exterior/valley) "vwv" = ( /obj/effect/decal/cleanable/blood, /obj/effect/landmark/corpsespawner/scientist, -/turf/open/floor/shiva{ - icon_state = "wredfull" - }, +/turf/open/floor/shiva/wredfull, /area/shiva/interior/colony/medseceng) +"vwx" = ( +/obj/item/lightstick/red/spoke/planted{ + layer = 3.1; + pixel_x = -13; + pixel_y = 25 + }, +/turf/open/auto_turf/snow/layer0, +/area/shiva/interior/caves/cp_camp) "vxb" = ( /obj/structure/stairs/perspective{ icon_state = "p_stair_full" }, -/turf/open/floor/shiva{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/southeast, /area/shiva/interior/bar) "vxg" = ( /turf/open/auto_turf/snow/layer0, /area/shiva/interior/bar) "vxE" = ( -/turf/open/floor/shiva{ - icon_state = "snow_mat" - }, +/turf/open/floor/shiva/snow_mat, /area/shiva/interior/colony/central) "vxW" = ( /obj/structure/filingcabinet, /obj/item/paper/research_notes, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/s_admin) +"vym" = ( +/obj/structure/prop/ice_colony/ground_wire{ + dir = 8 + }, +/turf/open/auto_turf/snow/layer3, +/area/shiva/interior/caves/cp_camp) "vyM" = ( /obj/structure/bed/roller, /turf/open/floor/plating, @@ -26073,9 +22256,7 @@ /obj/structure/noticeboard{ pixel_y = -32 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/central) "vzM" = ( /obj/structure/flora/bush/snow{ @@ -26104,15 +22285,10 @@ dir = 1; pixel_y = 9 }, -/turf/open/floor/shiva{ - icon_state = "wredfull" - }, +/turf/open/floor/shiva/wredfull, /area/shiva/interior/colony/medseceng) "vAT" = ( -/turf/open/floor/shiva{ - dir = 5; - icon_state = "green" - }, +/turf/open/floor/shiva/green/northeast, /area/shiva/interior/colony/botany) "vAU" = ( /obj/structure/platform/strata{ @@ -26130,18 +22306,18 @@ dir = 4 }, /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/shiva{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/shiva/red/northwest, /area/shiva/interior/colony/medseceng) "vBm" = ( /obj/item/clipboard, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull/west, /area/shiva/interior/colony/medseceng) +"vCe" = ( +/obj/structure/flora/bush/snow{ + icon_state = "snowgrassbb_1" + }, +/turf/open/auto_turf/snow/layer2, +/area/shiva/interior/caves/cp_camp) "vCj" = ( /obj/structure/barricade/snow{ dir = 1 @@ -26160,26 +22336,19 @@ /obj/item/device/assembly/igniter, /obj/item/device/assembly/signaller, /obj/item/circuitboard/airlock, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/north, /area/shiva/interior/colony/medseceng) "vCv" = ( /obj/structure/surface/table, /obj/item/weapon/gun/pistol/holdout, -/turf/open/floor/shiva{ - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull, /area/shiva/interior/colony/s_admin) "vDB" = ( /obj/structure/barricade/metal{ dir = 4 }, /obj/structure/barricade/metal, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/botany) "vDD" = ( /obj/structure/flora/pottedplant, @@ -26189,23 +22358,13 @@ /obj/structure/prop/ice_colony/surveying_device, /turf/open/auto_turf/snow/layer3, /area/shiva/exterior/junkyard/cp_bar) -"vEN" = ( -/obj/structure/largecrate/random/mini/wooden{ - pixel_x = -16; - pixel_y = -1 - }, -/turf/open/auto_turf/ice/layer1, -/area/shiva/interior/warehouse/caves) "vFi" = ( /obj/item/stack/sheet/metal, /turf/open/floor/plating, /area/shiva/interior/colony/botany) "vFq" = ( /obj/item/stack/sheet/metal/small_stack, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/east, /area/shiva/exterior/lz2_fortress) "vFR" = ( /obj/structure/machinery/space_heater, @@ -26213,9 +22372,7 @@ /area/shiva/interior/aerodrome) "vFX" = ( /obj/structure/closet/firecloset, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/research_hab) "vGY" = ( /obj/structure/barricade/snow{ @@ -26233,9 +22390,7 @@ /turf/open/auto_turf/ice/layer1, /area/shiva/interior/caves/s_lz2) "vHM" = ( -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/shiva/interior/colony/botany) "vHT" = ( /obj/structure/surface/table/woodentable, @@ -26252,20 +22407,8 @@ /obj/structure/machinery/power/apc{ dir = 4 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/valley_huts/no2) -"vIk" = ( -/obj/structure/machinery/disposal, -/obj/structure/machinery/light/double{ - dir = 4; - pixel_y = -5 - }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, -/area/shiva/interior/aerodrome) "vIy" = ( /obj/structure/prop/invuln/ice_prefab/trim{ dir = 4 @@ -26282,47 +22425,32 @@ /area/shiva/interior/caves/cp_camp) "vIL" = ( /obj/item/stack/rods, -/turf/open/floor/shiva{ - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull, /area/shiva/interior/colony/central) "vJh" = ( /obj/structure/barricade/handrail/strata, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/deck) +"vJu" = ( +/turf/closed/wall/shiva/prefabricated/blue, +/area/shiva/exterior/valley) "vKu" = ( -/turf/open/floor/shiva{ - dir = 8; - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull/west, /area/shiva/interior/colony/research_hab) "vKx" = ( -/turf/open/floor/shiva{ - dir = 5; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/northeast, /area/shiva/interior/colony/medseceng) "vMX" = ( /obj/structure/flora/grass/tallgrass/ice/corner, /turf/open/auto_turf/snow/layer0, /area/shiva/exterior/cp_lz2) "vNJ" = ( -/turf/open/floor/shiva{ - icon_state = "green" - }, +/turf/open/floor/shiva/green, /area/shiva/interior/colony/botany) "vNN" = ( -/obj/structure/machinery/light/double{ - dir = 4; - pixel_y = -5 - }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "redfull" - }, -/area/shiva/interior/colony/research_hab) +/obj/structure/fence, +/turf/open/auto_turf/snow/layer0, +/area/shiva/interior/warehouse/caves) "vOb" = ( /obj/structure/prop/ice_colony/surveying_device{ dir = 4 @@ -26330,10 +22458,7 @@ /turf/open/auto_turf/ice/layer1, /area/shiva/interior/caves/research_caves) "vOd" = ( -/turf/open/floor/shiva{ - dir = 4; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/east, /area/shiva/exterior/lz2_fortress) "vOv" = ( /obj/structure/bookcase{ @@ -26344,11 +22469,11 @@ "vOP" = ( /obj/structure/surface/table, /obj/effect/spawner/random/toolbox, -/turf/open/floor/shiva{ - dir = 5; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/northeast, /area/shiva/interior/colony/medseceng) +"vPr" = ( +/turf/open/auto_turf/snow/layer3, +/area/shiva/interior/warehouse/caves) "vPK" = ( /obj/structure/platform/strata{ dir = 1 @@ -26362,16 +22487,11 @@ /obj/structure/bed/chair/office/light{ dir = 8 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/west, /area/shiva/interior/colony/research_hab) "vQm" = ( /obj/structure/closet/emcloset, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/research_hab) "vQZ" = ( /obj/structure/blocker/forcefield/multitile_vehicles, @@ -26384,26 +22504,29 @@ /obj/structure/platform/strata, /turf/open/gm/river, /area/shiva/exterior/cp_lz2) +"vRW" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N-corner" + }, +/obj/effect/decal/warning_stripes{ + icon_state = "W-corner" + }, +/turf/open/floor/plating, +/area/shiva/exterior/valley) "vSL" = ( /obj/structure/flora/tree/dead/tree_3, /turf/open/auto_turf/snow/layer3, /area/shiva/exterior/cp_colony_grounds) "vTc" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "purplefull" - }, +/turf/open/floor/shiva/purplefull/west, /area/shiva/interior/colony/research_hab) "vTh" = ( /obj/structure/machinery/light/double{ dir = 4; pixel_y = -5 }, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/shiva/red/east, /area/shiva/interior/colony/medseceng) "vTi" = ( /obj/structure/prop/invuln/ice_prefab/trim{ @@ -26416,10 +22539,7 @@ /area/shiva/interior/caves/cp_camp) "vTj" = ( /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/north, /area/shiva/interior/colony/research_hab) "vUC" = ( /obj/structure/flora/grass/tallgrass/ice/corner, @@ -26433,26 +22553,18 @@ /turf/open/auto_turf/snow/layer1, /area/shiva/exterior/junkyard/fortbiceps) "vUL" = ( -/turf/open/floor/shiva{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/east, /area/shiva/interior/garage) "vUR" = ( /turf/closed/wall/shiva/ice, /area/shiva/exterior/lz2_fortress) "vVq" = ( /obj/effect/landmark/objective_landmark/close, -/turf/open/shuttle/dropship{ - icon_state = "rasputin14" - }, +/turf/open/shuttle/dropship/can_surgery/medium_grey_single_wide_left_to_right, /area/shiva/interior/aerodrome) "vWf" = ( -/obj/item/handcuffs, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "redfull" - }, +/obj/item/restraint/handcuffs, +/turf/open/floor/shiva/redfull/west, /area/shiva/interior/colony/medseceng) "vWt" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony{ @@ -26466,16 +22578,11 @@ /area/shiva/exterior/cp_lz2) "vXh" = ( /obj/structure/filingcabinet, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/medseceng) "vXk" = ( /obj/effect/landmark/survivor_spawner, -/turf/open/floor/shiva{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/southeast, /area/shiva/interior/colony/botany) "vXl" = ( /obj/structure/flora/bush/snow{ @@ -26488,7 +22595,7 @@ dir = 4; start_charge = 0 }, -/turf/open/auto_turf/ice/layer1, +/turf/open/floor/plating, /area/shiva/interior/caves/cp_camp) "vYm" = ( /turf/open/auto_turf/snow/layer0, @@ -26497,17 +22604,18 @@ /obj/structure/prop/ice_colony/ground_wire{ dir = 4 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "purple" - }, +/turf/open/floor/shiva/purple/west, /area/shiva/interior/lz2_habs) "vZj" = ( /obj/structure/machinery/vending/cigarette/colony, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/lz2_habs) +"vZS" = ( +/obj/structure/platform/strata{ + dir = 8 + }, +/turf/open/auto_turf/snow/layer4, +/area/shiva/exterior/lz1_valley) "wag" = ( /turf/closed/wall/shiva/prefabricated/reinforced, /area/shiva/interior/colony/n_admin) @@ -26526,9 +22634,7 @@ /area/shiva/interior/aerodrome) "wck" = ( /obj/item/ammo_magazine/rifle/boltaction, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/exterior/lz2_fortress) "wcF" = ( /obj/item/lightstick/red/spoke/planted{ @@ -26543,22 +22649,22 @@ pixel_x = -7; pixel_y = 3 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/research_hab) "wfl" = ( /obj/vehicle/train/cargo/engine, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/garage) "wfB" = ( /obj/item/book/manual/security_space_law, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/medseceng) +"wfH" = ( +/obj/item/lightstick/red/spoke/planted{ + pixel_x = -11 + }, +/turf/open/auto_turf/snow/layer2, +/area/shiva/exterior/cp_s_research) "wfL" = ( /obj/structure/machinery/door/airlock/almayer/security/colony{ name = "\improper Underground Security Evidence Storage" @@ -26570,9 +22676,7 @@ /obj/structure/machinery/landinglight/ds2{ dir = 4 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/exterior/lz2_fortress) "wfP" = ( /obj/item/lightstick/red/spoke/planted{ @@ -26600,10 +22704,7 @@ dir = 5; pixel_y = -5 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellowfull" - }, +/turf/open/floor/shiva/yellowfull/west, /area/shiva/interior/colony/research_hab) "wgM" = ( /obj/structure/barricade/snow, @@ -26611,18 +22712,14 @@ /area/shiva/exterior/lz1_valley) "wgW" = ( /obj/structure/machinery/vending/cigarette, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/bar) "wgX" = ( /obj/structure/barricade/sandbags/wired{ dir = 8; icon_state = "sandbag_0" }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/exterior/lz2_fortress) "whI" = ( /obj/item/weapon/gun/boltaction, @@ -26630,42 +22727,29 @@ /area/shiva/exterior/junkyard) "whS" = ( /obj/vehicle/train/cargo/engine, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/bar) "whU" = ( /obj/structure/closet/firecloset, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellowfull" - }, +/turf/open/floor/shiva/yellowfull/west, /area/shiva/interior/colony/medseceng) "wil" = ( /obj/structure/machinery/vending/snack, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/lz2_habs) -"wiG" = ( -/obj/structure/prop/invuln/dense/ice_tray{ - dir = 6; - pixel_y = -9 - }, -/obj/structure/prop/invuln/dense/ice_tray{ - dir = 8; - pixel_y = 10 +"wiy" = ( +/obj/structure/barricade/snow{ + dir = 4 }, -/turf/open/auto_turf/ice/layer1, -/area/shiva/interior/caves/cp_camp) +/obj/structure/blocker/forcefield/multitile_vehicles, +/turf/open/auto_turf/snow/layer1, +/area/shiva/exterior/junkyard/fortbiceps) "wiM" = ( /obj/structure/machinery/light/double{ dir = 1; pixel_y = 9 }, -/turf/open/floor/shiva{ - icon_state = "radiator_tile" - }, +/turf/open/floor/shiva/radiator_tile, /area/shiva/interior/colony/n_admin) "wje" = ( /turf/open/auto_turf/ice/layer2, @@ -26694,19 +22778,15 @@ pixel_x = 4; pixel_y = 5 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/research_hab) "wlj" = ( /turf/open/auto_turf/snow/layer4, /area/shiva/interior/colony/central) "wls" = ( /obj/structure/largecrate/random/case/small, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, -/area/shiva/interior/lz2_habs) +/turf/open/floor/shiva/floor3, +/area/shiva/interior/aux_power) "wlJ" = ( /turf/open/auto_turf/snow/layer2, /area/shiva/exterior/telecomm/lz2_northeast) @@ -26714,14 +22794,10 @@ /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/botany) "wnK" = ( -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/research_hab) "woB" = ( /obj/item/clothing/shoes/snow, @@ -26733,27 +22809,20 @@ /obj/effect/decal/strata_decals/grime/grime3{ dir = 8 }, -/turf/open/floor/shiva{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/southeast, /area/shiva/interior/colony/botany) "wpl" = ( /obj/structure/machinery/landinglight/ds2/delaytwo, /obj/structure/machinery/landinglight/ds2/delaythree{ dir = 8 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) "wpG" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ name = "\improper Colony Security Checkpoint" }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/s_admin) "wpW" = ( /obj/item/stack/rods, @@ -26766,9 +22835,7 @@ /area/shiva/interior/colony/research_hab) "wqQ" = ( /obj/item/tool/screwdriver, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/bar) "wsz" = ( /obj/structure/prop/invuln/minecart_tracks{ @@ -26782,12 +22849,9 @@ pixel_y = 9 }, /turf/open/auto_turf/snow/layer1, -/area/shiva/exterior/cp_s_research) +/area/shiva/exterior/junkyard) "wtC" = ( -/turf/open/floor/shiva{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/southeast, /area/shiva/interior/colony/n_admin) "wui" = ( /obj/structure/bed/chair/office/dark{ @@ -26801,14 +22865,14 @@ }, /turf/open/auto_turf/snow/layer3, /area/shiva/exterior/cp_lz2) -"wuw" = ( -/obj/item/lightstick/red/spoke/planted{ - layer = 3.1; - pixel_x = -13; - pixel_y = 25 +"wvd" = ( +/obj/structure/prop/ice_colony/surveying_device/measuring_device{ + dir = 8; + pixel_x = -6; + pixel_y = 13 }, -/turf/open/auto_turf/snow/layer1, -/area/shiva/exterior/valley) +/turf/open/auto_turf/ice/layer0, +/area/shiva/exterior/cp_s_research) "wvx" = ( /obj/structure/largecrate/random/case, /turf/open/floor/shiva, @@ -26823,10 +22887,23 @@ pixel_y = 4 }, /obj/effect/landmark/crap_item, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/medseceng) +"wwl" = ( +/obj/item/lightstick/red/spoke/planted{ + layer = 3.1; + pixel_x = -13; + pixel_y = 25 + }, +/obj/structure/largecrate/random/case{ + pixel_y = 11 + }, +/obj/structure/largecrate/random/mini/chest/b{ + pixel_x = -4; + pixel_y = -5 + }, +/turf/open/auto_turf/snow/layer1, +/area/shiva/interior/caves/cp_camp) "wwp" = ( /obj/effect/landmark/hunter_secondary, /turf/open/auto_turf/snow/layer3, @@ -26835,13 +22912,15 @@ /obj/structure/prop/invuln/minecart_tracks{ dir = 1 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/cp_colony_grounds) -"wwW" = ( -/turf/open/auto_turf/snow/layer1, -/area/shiva/exterior/research_alley) +"wwZ" = ( +/obj/structure/stairs/perspective{ + dir = 8; + icon_state = "p_stair_sn_full_cap" + }, +/turf/open/auto_turf/snow/layer0, +/area/shiva/interior/caves/cp_camp) "wxs" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/reagent_container/spray/cleaner{ @@ -26851,15 +22930,11 @@ /obj/item/tool/soap{ pixel_x = -7 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/shiva/interior/bar) "wxu" = ( /obj/structure/bed/chair, -/turf/open/floor/shiva{ - icon_state = "wredfull" - }, +/turf/open/floor/shiva/wredfull, /area/shiva/interior/colony/medseceng) "wxY" = ( /obj/structure/fence, @@ -26901,9 +22976,7 @@ /obj/item/device/flashlight/lamp{ pixel_y = 4 }, -/turf/open/floor/shiva{ - icon_state = "red" - }, +/turf/open/floor/shiva/red, /area/shiva/interior/colony/medseceng) "wCn" = ( /obj/structure/largecrate/random/mini/med{ @@ -26911,15 +22984,10 @@ pixel_x = -10; pixel_y = 13 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/aerodrome) "wCz" = ( -/turf/open/floor{ - dir = 1; - icon_state = "chapel" - }, +/turf/open/floor/chapel/north, /area/shiva/interior/colony/central) "wCP" = ( /turf/closed/wall/shiva/ice, @@ -26929,9 +22997,7 @@ dir = 9; pixel_y = 21 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/shiva/interior/bar) "wCX" = ( /obj/structure/platform_decoration/strata{ @@ -26944,9 +23010,7 @@ dir = 1; pixel_y = -24 }, -/turf/open/floor/shiva{ - icon_state = "red" - }, +/turf/open/floor/shiva/red, /area/shiva/interior/colony/medseceng) "wFm" = ( /obj/structure/surface/rack, @@ -26961,27 +23025,17 @@ /area/shiva/interior/colony/central) "wFw" = ( /obj/structure/machinery/space_heater, -/turf/open/floor/shiva{ - icon_state = "greenfull" - }, +/turf/open/floor/shiva/greenfull, /area/shiva/interior/colony/n_admin) "wFB" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/east, /area/shiva/interior/colony/research_hab) "wGD" = ( -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/shiva/interior/colony/s_admin) "wHi" = ( -/turf/open/floor/shiva{ - dir = 8; - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull/west, /area/shiva/interior/colony/central) "wHr" = ( /obj/structure/machinery/computer/cameras{ @@ -26991,9 +23045,7 @@ dir = 8 }, /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/shiva{ - icon_state = "red" - }, +/turf/open/floor/shiva/red, /area/shiva/interior/colony/medseceng) "wHx" = ( /obj/vehicle/train/cargo/trolley, @@ -27001,10 +23053,7 @@ /turf/open/asphalt/cement, /area/shiva/interior/warehouse) "wHA" = ( -/turf/open/floor/shiva{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/shiva/blue/east, /area/shiva/interior/colony/n_admin) "wHZ" = ( /obj/effect/landmark/objective_landmark/medium, @@ -27023,32 +23072,30 @@ pixel_x = -5; pixel_y = 5 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/shiva/interior/bar) "wJd" = ( /obj/effect/landmark/xeno_spawn, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull/west, /area/shiva/interior/colony/medseceng) "wJp" = ( /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/shiva/interior/colony/n_admin) "wKk" = ( /obj/structure/surface/table, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/lz2_habs) +"wLM" = ( +/obj/structure/stairs/perspective{ + dir = 1; + icon_state = "p_stair_full" + }, +/turf/open/auto_turf/snow/layer0, +/area/shiva/interior/caves/cp_camp) "wMh" = ( /turf/open/auto_turf/ice/layer1, /area/shiva/interior/caves/cp_camp) @@ -27060,36 +23107,36 @@ dir = 8 }, /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/shiva{ - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull, /area/shiva/interior/colony/n_admin) "wMC" = ( /obj/structure/closet/toolcloset, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/west, /area/shiva/interior/colony/deck) "wMR" = ( /obj/structure/machinery/firealarm{ dir = 4; pixel_x = 24 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/botany) "wNj" = ( /obj/structure/window/framed/shiva, /turf/open/floor/plating/icefloor, /area/shiva/interior/telecomm/lz1_biceps) +"wNB" = ( +/obj/structure/machinery/door_control/brbutton{ + id = "hangar_ice_2"; + pixel_y = 28 + }, +/obj/structure/platform/shiva/catwalk{ + dir = 4 + }, +/turf/open/auto_turf/snow/layer1, +/area/shiva/exterior/junkyard) "wOq" = ( /obj/structure/reagent_dispensers/water_cooler, -/turf/open/floor/shiva{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/shiva/red/southwest, /area/shiva/interior/colony/medseceng) "wOO" = ( /obj/structure/closet/secure_closet/medical3{ @@ -27098,19 +23145,27 @@ /obj/item/explosive/grenade/custom/cleaner, /obj/item/explosive/grenade/custom/cleaner, /obj/item/storage/pill_bottle/inaprovaline/skillless, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, -/area/shiva/interior/colony/research_hab) -"wPp" = ( -/turf/closed/wall/shiva/ice, +/turf/open/floor/shiva/multi_tiles, /area/shiva/interior/colony/research_hab) +"wPs" = ( +/obj/item/lightstick/red/variant/planted, +/turf/open/auto_turf/snow/layer1, +/area/shiva/exterior/cp_s_research) "wPz" = ( /obj/effect/decal/cleanable/blood/drip{ icon_state = "3" }, /turf/open/auto_turf/snow/layer2, /area/shiva/exterior/cp_colony_grounds) +"wQr" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S-corner" + }, +/obj/effect/decal/warning_stripes{ + icon_state = "W-corner" + }, +/turf/open/floor/plating, +/area/shiva/exterior/valley) "wQR" = ( /obj/structure/morgue{ dir = 8 @@ -27119,23 +23174,14 @@ /turf/open/floor/plating, /area/shiva/interior/colony/central) "wRa" = ( -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/valley_huts/no2) "wRi" = ( -/turf/open/floor/shiva{ - dir = 9; - icon_state = "yellow" - }, -/area/shiva/interior/lz2_habs) +/turf/open/floor/shiva/yellow/northwest, +/area/shiva/interior/aux_power) "wRm" = ( /turf/open/floor/plating, /area/shiva/interior/aerodrome) -"wRL" = ( -/obj/structure/prop/ice_colony/soil_net, -/turf/open/auto_turf/snow/layer3, -/area/shiva/exterior/cp_s_research) "wSv" = ( /obj/item/lightstick/red/variant/planted{ pixel_x = -7; @@ -27150,9 +23196,7 @@ pixel_x = -24 }, /obj/effect/landmark/crap_item, -/turf/open/floor/shiva{ - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull, /area/shiva/interior/colony/s_admin) "wTg" = ( /obj/structure/prop/ice_colony/ground_wire, @@ -27169,20 +23213,11 @@ pixel_x = 7; pixel_y = 14 }, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/shiva/interior/colony/research_hab) "wTx" = ( -/obj/item/lightstick/red/spoke/planted{ - pixel_x = 15; - pixel_y = -3 - }, -/obj/item/lightstick/red/spoke/planted{ - pixel_x = -16; - pixel_y = -3 - }, -/turf/open/auto_turf/ice/layer0, +/obj/effect/spawner/random/toolbox, +/turf/open/auto_turf/snow/layer1, /area/shiva/interior/caves/cp_camp) "wTz" = ( /obj/structure/largecrate/random/mini/chest{ @@ -27214,36 +23249,35 @@ /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/aerodrome) -"wWu" = ( -/turf/open/floor/shiva{ - dir = 9; - icon_state = "wred" +"wVJ" = ( +/obj/structure/platform_decoration/shiva/catwalk{ + dir = 4 }, +/turf/open/auto_turf/snow/layer2, +/area/shiva/exterior/valley) +"wWu" = ( +/turf/open/floor/shiva/wred/northwest, /area/shiva/interior/colony/medseceng) "wWY" = ( /obj/structure/bed/chair/office/light{ dir = 4 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/n_admin) "wXh" = ( /obj/structure/machinery/disposal, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/shiva/interior/colony/research_hab) +"wXs" = ( +/obj/structure/blocker/forcefield/multitile_vehicles, +/turf/open/auto_turf/ice/layer1, +/area/shiva/interior/aerodrome) "wXQ" = ( /obj/effect/decal/cleanable/blood/drip, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/bar) "wYd" = ( /obj/structure/surface/table/reinforced/prison, @@ -27256,9 +23290,7 @@ pixel_y = 11 }, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/shiva/interior/bar) "wZh" = ( /obj/structure/surface/table/reinforced/prison, @@ -27283,18 +23315,14 @@ /obj/structure/surface/table/reinforced/prison, /obj/item/paper_bin, /obj/item/tool/pen/blue, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/s_admin) "xar" = ( /obj/structure/surface/table, /obj/item/storage/box/syringes{ pixel_y = 2 }, -/turf/open/floor/shiva{ - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull, /area/shiva/interior/colony/medseceng) "xaw" = ( /obj/structure/window/reinforced/tinted{ @@ -27303,20 +23331,8 @@ /obj/structure/surface/table/reinforced/prison, /obj/item/paper_bin, /obj/item/tool/pen/blue, -/turf/open/floor/shiva{ - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull, /area/shiva/interior/colony/n_admin) -"xbm" = ( -/obj/structure/largecrate/random/case/small, -/turf/open/auto_turf/ice/layer1, -/area/shiva/interior/caves/cp_camp) -"xbn" = ( -/obj/structure/prop/invuln/ice_prefab/trim{ - dir = 6 - }, -/turf/closed/wall/shiva/ice, -/area/shiva/interior/caves/cp_camp) "xbz" = ( /obj/structure/window/framed/shiva, /obj/structure/blocker/forcefield/multitile_vehicles, @@ -27324,33 +23340,17 @@ /area/shiva/interior/colony/medseceng) "xbP" = ( /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/medseceng) -"xbT" = ( -/obj/effect/landmark/static_comms/net_one, -/turf/open/floor/shiva{ - icon_state = "yellowfull" - }, -/area/shiva/interior/telecomm/lz1_biceps) "xbZ" = ( /obj/structure/prop/invuln/minecart_tracks{ dir = 8 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/cp_colony_grounds) -"xct" = ( -/obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/auto_turf/ice/layer1, -/area/shiva/interior/caves/cp_camp) "xcE" = ( /obj/structure/inflatable/popped, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/shiva/interior/colony/research_hab) "xde" = ( /obj/structure/closet/cabinet, @@ -27358,20 +23358,21 @@ /obj/effect/landmark/objective_landmark/medium, /turf/open/floor/wood, /area/shiva/interior/colony/botany) +"xdk" = ( +/obj/structure/machinery/power/reactor/colony, +/turf/open/floor/shiva/north, +/area/shiva/interior/garage) "xdT" = ( /obj/structure/surface/table, /obj/effect/spawner/random/toolbox, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellow" - }, -/area/shiva/interior/lz2_habs) +/turf/open/floor/shiva/yellow/west, +/area/shiva/interior/aux_power) "xeq" = ( /obj/structure/prop/ice_colony/surveying_device/measuring_device{ dir = 4; pixel_y = 10 }, -/turf/open/auto_turf/snow/layer0, +/turf/open/auto_turf/snow/layer3, /area/shiva/interior/caves/cp_camp) "xeE" = ( /obj/effect/decal/warning_stripes{ @@ -27380,10 +23381,6 @@ /obj/structure/window/reinforced, /turf/open/floor/wood, /area/shiva/interior/colony/central) -"xfZ" = ( -/obj/structure/prop/ice_colony/surveying_device, -/turf/open/auto_turf/ice/layer0, -/area/shiva/interior/caves/cp_camp) "xgc" = ( /turf/open/auto_turf/snow/layer1, /area/shiva/exterior/cp_s_research) @@ -27400,9 +23397,7 @@ layer = 2.9; name = "souto graffiti" }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/shiva/interior/bar) "xhJ" = ( /obj/item/tool/wet_sign, @@ -27415,28 +23410,21 @@ /area/shiva/interior/caves/cp_camp) "xiu" = ( /obj/structure/machinery/vending/cola/research, -/turf/open/floor/shiva{ - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull, /area/shiva/interior/colony/n_admin) "xiY" = ( /obj/structure/prop/invuln/ice_prefab, /turf/open/auto_turf/snow/layer0, /area/shiva/interior/caves/cp_camp) "xjg" = ( -/turf/open/floor/shiva{ - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow, /area/shiva/interior/colony/deck) "xkf" = ( /obj/structure/machinery/light/double{ dir = 4; pixel_y = -5 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull/west, /area/shiva/interior/colony/medseceng) "xkV" = ( /obj/structure/surface/table, @@ -27448,10 +23436,8 @@ pixel_x = -5; pixel_y = 11 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, -/area/shiva/interior/lz2_habs) +/turf/open/floor/shiva/floor3, +/area/shiva/interior/aux_power) "xlg" = ( /obj/structure/flora/grass/tallgrass/ice/corner{ dir = 10 @@ -27460,32 +23446,18 @@ /area/shiva/exterior/cp_lz2) "xmS" = ( /obj/structure/closet/emcloset, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/central) "xnM" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/west, /area/shiva/interior/colony/medseceng) -"xog" = ( -/obj/structure/platform/strata, -/obj/structure/platform/strata{ - dir = 8 - }, -/turf/open/gm/river, -/area/shiva/interior/caves/cp_camp) "xoi" = ( /obj/structure/machinery/light/double{ dir = 1; pixel_y = 9 }, -/turf/open/floor/shiva{ - icon_state = "wredfull" - }, +/turf/open/floor/shiva/wredfull, /area/shiva/interior/colony/medseceng) "xqe" = ( /obj/structure/bed/chair/comfy/orange{ @@ -27493,26 +23465,18 @@ }, /obj/item/paper_bin, /obj/structure/machinery/light/double, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/s_admin) "xqf" = ( /obj/structure/barricade/wooden{ dir = 4 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull/west, /area/shiva/interior/bar) "xru" = ( /obj/structure/foamed_metal, /turf/open/floor/plating/plating_catwalk/shiva, /area/shiva/exterior/lz2_fortress) -"xrC" = ( -/turf/open/auto_turf/snow/layer0, -/area/shiva/exterior/research_alley) "xst" = ( /obj/item/lightstick/red/spoke/planted{ layer = 2.99; @@ -27523,9 +23487,7 @@ /area/shiva/interior/caves/cp_camp) "xsD" = ( /obj/item/tool/warning_cone, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/central) "xtc" = ( /obj/structure/platform/strata{ @@ -27547,6 +23509,10 @@ }, /turf/open/gm/river, /area/shiva/exterior/cp_lz2) +"xun" = ( +/obj/structure/tunnel, +/turf/open/auto_turf/ice/layer1, +/area/shiva/interior/colony/research_hab) "xuz" = ( /obj/structure/machinery/space_heater, /turf/open/auto_turf/ice/layer1, @@ -27555,19 +23521,11 @@ /obj/structure/flora/bush/ausbushes/lavendergrass, /turf/open/auto_turf/snow/layer2, /area/shiva/exterior/lz1_valley) -"xvd" = ( -/obj/structure/surface/rack, -/obj/item/tool/shovel/snow, -/obj/item/storage/belt/utility/full, -/turf/open/auto_turf/snow/layer3, -/area/shiva/exterior/research_alley) "xvf" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/paper_bin, /obj/item/tool/pen/blue, -/turf/open/floor/shiva{ - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull, /area/shiva/interior/colony/n_admin) "xvp" = ( /obj/item/lightstick/red/variant/planted, @@ -27588,31 +23546,37 @@ /area/shiva/interior/warehouse) "xvS" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/research_hab) "xwi" = ( /obj/structure/surface/table, /obj/item/device/flashlight/lamp/green, -/turf/open/floor/shiva{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/southeast, /area/shiva/interior/colony/research_hab) +"xwk" = ( +/obj/item/lightstick/red/variant, +/turf/open/auto_turf/snow/layer1, +/area/shiva/exterior/junkyard) "xwo" = ( /obj/structure/platform/shiva/catwalk{ dir = 8 }, /turf/open/auto_turf/snow/layer3, -/area/shiva/exterior/lz1_valley) +/area/shiva/exterior/junkyard) "xwL" = ( /obj/structure/filingcabinet, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/shiva{ - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull, /area/shiva/interior/colony/n_admin) +"xxY" = ( +/obj/item/lightstick/red/spoke/planted{ + layer = 2.99; + pixel_x = 12; + pixel_y = 28 + }, +/obj/structure/largecrate/random/case/double, +/turf/open/auto_turf/snow/layer4, +/area/shiva/interior/caves/cp_camp) "xyd" = ( /obj/structure/prop/invuln/minecart_tracks{ dir = 10 @@ -27627,9 +23591,7 @@ name = "shuttle attachment point" }, /obj/item/storage/firstaid/adv, -/turf/open/shuttle{ - icon_state = "floor7" - }, +/turf/open/shuttle/can_surgery/black, /area/shiva/interior/aerodrome) "xzo" = ( /obj/item/lightstick/red/spoke/planted{ @@ -27646,9 +23608,7 @@ pixel_y = -24 }, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/shiva{ - icon_state = "red" - }, +/turf/open/floor/shiva/red, /area/shiva/interior/colony/central) "xzO" = ( /obj/structure/prop/invuln/ice_prefab/standalone/trim{ @@ -27681,9 +23641,7 @@ "xBo" = ( /obj/structure/surface/table, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/shiva{ - icon_state = "wred" - }, +/turf/open/floor/shiva/wred, /area/shiva/interior/colony/medseceng) "xCj" = ( /obj/structure/machinery/power/terminal{ @@ -27693,16 +23651,29 @@ dir = 1; pixel_y = 9 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/medseceng) +"xCz" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W-corner" + }, +/obj/item/lightstick/red/spoke/planted{ + pixel_x = -11; + pixel_y = 25 + }, +/turf/open/floor/plating, +/area/shiva/exterior/junkyard) "xCA" = ( /obj/effect/decal/cleanable/blood/drip, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/shiva/interior/bar) +"xCD" = ( +/obj/effect/decal/cleanable/blood{ + dir = 4; + icon_state = "gib6" + }, +/turf/open/auto_turf/snow/layer1, +/area/shiva/interior/caves/cp_camp) "xCN" = ( /obj/structure/prop/souto_land/pole{ dir = 1 @@ -27711,9 +23682,7 @@ dir = 8; pixel_y = 24 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/shiva/interior/bar) "xCW" = ( /obj/structure/prop/ice_colony/flamingo{ @@ -27728,30 +23697,21 @@ "xDq" = ( /obj/structure/closet/radiation, /obj/effect/spawner/random/technology_scanner, -/turf/open/floor/shiva{ - icon_state = "purplefull" - }, +/turf/open/floor/shiva/purplefull, /area/shiva/interior/colony/research_hab) "xEd" = ( /obj/structure/machinery/landinglight/ds2/delaythree{ dir = 4 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) "xEu" = ( /obj/structure/morgue, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/central) "xEw" = ( /obj/structure/machinery/disposal, -/turf/open/floor/shiva{ - dir = 6; - icon_state = "wred" - }, +/turf/open/floor/shiva/wred/southeast, /area/shiva/interior/colony/medseceng) "xEB" = ( /obj/item/tool/warning_cone, @@ -27761,9 +23721,7 @@ /obj/structure/bed/chair/comfy/orange{ dir = 4 }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/shiva/interior/colony/research_hab) "xFM" = ( /obj/structure/platform_decoration/strata{ @@ -27777,33 +23735,23 @@ }, /turf/open/auto_turf/snow/layer4, /area/shiva/exterior/cp_lz2) -"xFP" = ( -/turf/open/auto_turf/snow/layer0, -/area/shiva/interior/colony/research_hab) "xFR" = ( -/turf/open/floor/shiva{ - dir = 8; - icon_state = "snow_mat" - }, +/turf/open/floor/shiva/snow_mat/west, /area/shiva/interior/colony/n_admin) "xGR" = ( /obj/effect/landmark/xeno_spawn, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "wred" - }, +/turf/open/floor/shiva/wred/west, /area/shiva/interior/colony/medseceng) "xHu" = ( /obj/structure/largecrate/random, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, +/area/shiva/interior/aerodrome) +"xHv" = ( +/turf/open/auto_turf/ice/layer1, /area/shiva/interior/aerodrome) "xIL" = ( /obj/item/powerloader_clamp, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/research_hab) "xIO" = ( /obj/item/lightstick/red/spoke/planted{ @@ -27819,41 +23767,47 @@ pixel_y = 24 }, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/shiva/interior/bar) "xJA" = ( /obj/structure/bed/chair/comfy/beige{ dir = 8 }, -/turf/open/floor/shiva{ - icon_state = "yellowfull" - }, +/turf/open/floor/shiva/yellowfull, /area/shiva/interior/colony/research_hab) +"xLy" = ( +/obj/structure/platform/strata, +/obj/structure/platform/strata{ + dir = 8 + }, +/turf/open/gm/river, +/area/shiva/exterior/cp_s_research) +"xMs" = ( +/obj/structure/prop/ice_colony/ground_wire{ + dir = 4 + }, +/obj/structure/prop/ice_colony/ground_wire{ + dir = 4 + }, +/turf/open/auto_turf/snow/layer3, +/area/shiva/interior/caves/cp_camp) "xMz" = ( /turf/closed/wall/shiva/ice, /area/shiva/exterior/lz1_valley) "xMC" = ( /obj/item/bananapeel, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/bar) "xMH" = ( /obj/structure/machinery/power/apc{ dir = 1; start_charge = 0 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/deck) "xMQ" = ( /obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/lz2_habs) "xMS" = ( /obj/structure/prop/invuln/ice_prefab/trim{ @@ -27864,34 +23818,24 @@ }, /turf/open/auto_turf/snow/layer0, /area/shiva/interior/caves/cp_camp) +"xMX" = ( +/obj/effect/spawner/random/toolbox, +/obj/effect/landmark/crap_item, +/turf/open/floor/shiva/floor3, +/area/shiva/interior/caves/cp_camp) "xNe" = ( /obj/structure/machinery/iv_drip, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull/west, /area/shiva/interior/colony/medseceng) -"xNO" = ( -/turf/open/auto_turf/snow/layer4, -/area/shiva/exterior/research_alley) "xOb" = ( /turf/open/floor/plating/plating_catwalk/shiva, /area/shiva/interior/bar) -"xOT" = ( -/obj/item/device/flashlight/lamp/tripod/grey, -/turf/open/auto_turf/ice/layer2, -/area/shiva/interior/caves/left_spiders) "xPd" = ( -/turf/open/floor/shiva{ - icon_state = "radiator_tile2" - }, +/turf/open/floor/shiva/radiator_tile2, /area/shiva/interior/bar) "xQa" = ( /obj/structure/largecrate/random/case/small, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull/west, /area/shiva/interior/aerodrome) "xQj" = ( /obj/structure/flora/grass/tallgrass/ice/corner{ @@ -27900,32 +23844,23 @@ /turf/open/auto_turf/snow/layer0, /area/shiva/exterior/cp_lz2) "xQJ" = ( -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/lz2_habs) "xQQ" = ( /obj/structure/machinery/door/airlock/almayer/medical/colony{ name = "\improper Colony Dormitories" }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/botany) "xRg" = ( /obj/structure/surface/rack, -/turf/open/floor/shiva{ - icon_state = "yellowfull" - }, +/turf/open/floor/shiva/yellowfull, /area/shiva/interior/telecomm/lz1_biceps) "xRi" = ( /obj/structure/machinery/cm_vending/sorted/tech/tool_storage{ req_access_txt = "102" }, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/north, /area/shiva/interior/colony/medseceng) "xRy" = ( /obj/effect/decal/cleanable/ash, @@ -27946,10 +23881,7 @@ "xSk" = ( /obj/structure/surface/table/reinforced/prison, /obj/effect/spawner/random/powercell, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull/west, /area/shiva/interior/aerodrome) "xTK" = ( /obj/structure/inflatable/popped, @@ -27962,18 +23894,12 @@ /obj/item/weapon/ice_axe/red{ pixel_y = -4 }, -/turf/open/floor/shiva{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/southeast, /area/shiva/interior/colony/central) "xUm" = ( /obj/item/stack/sheet/metal, /obj/item/shard, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "wred" - }, +/turf/open/floor/shiva/wred/north, /area/shiva/interior/colony/medseceng) "xUt" = ( /obj/structure/flora/grass/tallgrass/ice/corner{ @@ -27983,10 +23909,7 @@ /area/shiva/exterior/cp_lz2) "xVo" = ( /obj/structure/machinery/photocopier, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/shiva/blue/west, /area/shiva/interior/colony/n_admin) "xVZ" = ( /obj/structure/prop/ice_colony/dense/ice_tray{ @@ -27994,12 +23917,6 @@ }, /turf/open/auto_turf/ice/layer1, /area/shiva/interior/caves/cp_camp) -"xWy" = ( -/obj/structure/flora/grass/tallgrass/ice/corner{ - dir = 5 - }, -/turf/open/auto_turf/snow/layer4, -/area/shiva/exterior/junkyard) "xXv" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/trash/plate{ @@ -28014,9 +23931,7 @@ pixel_x = 1; pixel_y = 8 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/shiva/interior/bar) "xXM" = ( /obj/structure/prop/invuln/minecart_tracks/bumper{ @@ -28024,12 +23939,14 @@ }, /turf/open/auto_turf/snow/layer2, /area/shiva/exterior/cp_colony_grounds) +"xXQ" = ( +/obj/structure/inflatable, +/turf/open/auto_turf/snow/layer0, +/area/shiva/exterior/cp_s_research) "xXV" = ( /obj/structure/closet/secure_closet/engineering_welding, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/garage) "xYx" = ( /turf/open/auto_turf/ice/layer1, @@ -28042,31 +23959,21 @@ /area/shiva/exterior/cp_lz2) "xZW" = ( /obj/item/trash/hotdog, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/shiva/interior/bar) "ycc" = ( -/turf/open/floor/shiva{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/shiva/red/northwest, /area/shiva/interior/colony/medseceng) "ydz" = ( /obj/structure/stairs/perspective{ dir = 8; icon_state = "p_stair_sn_full_cap" }, -/turf/open/floor/shiva{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/southeast, /area/shiva/interior/bar) "ydP" = ( /obj/structure/girder/displaced, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/central) "yer" = ( /obj/structure/prop/invuln/ice_prefab{ @@ -28079,10 +23986,7 @@ dir = 8; pixel_y = -5 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull/west, /area/shiva/interior/colony/medseceng) "yez" = ( /obj/structure/machinery/door/airlock/almayer/security/colony{ @@ -28093,9 +23997,7 @@ /area/shiva/interior/colony/medseceng) "yfE" = ( /obj/structure/surface/table, -/turf/open/floor/shiva{ - icon_state = "wredfull" - }, +/turf/open/floor/shiva/wredfull, /area/shiva/interior/colony/medseceng) "yfY" = ( /obj/structure/prop/invuln/minecart_tracks{ @@ -28107,42 +24009,33 @@ /obj/structure/surface/rack, /obj/item/circuitboard/apc, /obj/item/circuitboard/apc, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/north, /area/shiva/interior/colony/medseceng) "ygp" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/structure/prop/ice_colony/ice_crystal{ pixel_y = 5 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/lz2_habs) +"yhA" = ( +/obj/structure/fence, +/turf/open/auto_turf/snow/layer1, +/area/shiva/interior/caves/cp_camp) "yhX" = ( /obj/structure/surface/table, /obj/item/tool/wrench{ pixel_x = -5; pixel_y = -2 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/research_hab) "yiw" = ( -/turf/open/floor/shiva{ - dir = 4; - icon_state = "wredcorners" - }, +/turf/open/floor/shiva/wredcorners/east, /area/shiva/interior/colony/medseceng) "yiS" = ( /obj/structure/powerloader_wreckage, -/turf/open/floor/shiva{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/southeast, /area/shiva/interior/colony/research_hab) "yjh" = ( /obj/structure/surface/table/reinforced/prison, @@ -28150,18 +24043,14 @@ pixel_x = 1; pixel_y = 3 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/n_admin) "yjn" = ( /obj/structure/machinery/firealarm{ dir = 8; pixel_x = -24 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/central) "yjM" = ( /obj/structure/barricade/handrail/wire, @@ -28175,9 +24064,7 @@ /obj/structure/surface/table, /obj/item/storage/bag/plants, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/n_admin) "ykq" = ( /obj/structure/surface/table/reinforced/prison, @@ -28186,40 +24073,38 @@ pixel_x = 5; pixel_y = 10 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/medseceng) "ylz" = ( /obj/structure/blocker/forcefield/multitile_vehicles, /obj/structure/blocker/forcefield/multitile_vehicles, /turf/closed/wall/shiva/prefabricated, /area/shiva/interior/colony/medseceng) +"ylF" = ( +/obj/item/shard{ + icon_state = "medium" + }, +/turf/open/auto_turf/snow/layer1, +/area/shiva/interior/caves/cp_camp) "ylO" = ( /obj/structure/machinery/colony_floodlight_switch{ pixel_y = 32 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/colony/medseceng) "ylP" = ( /obj/structure/machinery/landinglight/ds2/delaythree, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) "ylU" = ( /obj/structure/prop/ice_colony/ground_wire{ dir = 4 }, -/turf/open/auto_turf/snow/layer0, +/turf/open/auto_turf/snow/layer1, /area/shiva/interior/caves/cp_camp) "ylZ" = ( /obj/structure/machinery/light/double, -/turf/open/floor/shiva{ - icon_state = "red" - }, +/turf/open/floor/shiva/red, /area/shiva/interior/colony/medseceng) (1,1,1) = {" @@ -28360,22 +24245,22 @@ puZ puZ puZ puZ -qgD -qgD -qgD -qgD -qgD -qgD -qgD -qgD -qgD -qgD -qgD -qgD -qgD -qgD -qgD -qgD +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ puZ puZ puZ @@ -28505,39 +24390,39 @@ puZ puZ puZ puZ -pxA -pxA -pxA -pxA -pxA -pxA -pxA -pxA -pxA -aIO -pxA -pxA -pxA -pxA puZ puZ puZ -pxA -pxA -pxA -pxA -pxA -pxA -pxA -pxA -pxA -pxA -pxA -pxA -pxA -pxA -pxA -pxA +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ puZ puZ puZ @@ -28660,46 +24545,46 @@ puZ puZ puZ puZ -asz -asz -asz -asz -asz -asz puZ -pxA -ueu -mMa -euA -vKu -euA -euA -vKu -rhS -oqQ -oqQ -rhS -ueu -pxA -pxA -pxA -pxA -pxA -sym -ctk -ugP -pxA -pxA -xwi -thc -ckI -dTn -pxA -pxA -rZt -rZt -rZt -pxA +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ puZ puZ puZ @@ -28820,48 +24705,48 @@ puZ puZ puZ puZ -asz -asz -asz -goj -djO -goj -goj -asz -pxA -pxA -lkX -ffw -uim -vKu -uim -ffw -lkX -vKu -vKu -vKu -vKu -vKu -uLu -pxA -pxA -bJi -bJi -euA -vPR -euA -euA -bJi -euA -euA -vPR -euA -bJi -euA -euA -bJi -rZt -pxA +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ puZ puZ puZ @@ -28982,50 +24867,50 @@ puZ puZ puZ puZ -asz -fjd -rZt -djO -kts -wAM -djO -asz -pxA -pxA -ift -smI -hUG -vKu -udJ -euA -ift -pKP -nNN -kZy -pKP -vKu -uLu -pxA -pxA -bJi -rZt -dTU -dTU -dTU -dTU -rZt -dTU -dTU -dTU -dTU -rZt -dTU -rZt -mwF -rZt -pxA -kTd -kTd +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +hFl +hFl +puZ +puZ +puZ +puZ +puZ puZ puZ puZ @@ -29144,51 +25029,51 @@ puZ puZ puZ puZ -asz -wgp -rZt -goj -qNK -hrb -goj -wnK -rZt -vKu -lkX -ift -sQU -vKu -sQU -ift -lkX -rhS -oqQ -oqQ -lNm -vKu -pxA -pxA -ctk -mwF -chU -bJi -euA -euA -euA -bJi -euA -euA -euA -euA -bJi -bJi -chU -mwF -rZt -twi -kue -kTd -flN +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +hFl +jCE +jCE +jCE +puZ +puZ +puZ +puZ +puZ puZ puZ puZ @@ -29303,55 +25188,55 @@ puZ puZ puZ puZ +tlB +oRH +tlB +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +aDM +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +hFl +jCE +jCE +kAg +jCE +jCE +puZ +puZ puZ puZ puZ -asz -tqs -rZt -goj -rZt -fHM -goj -wnK -rZt -vKu -wnK -rZt -rZt -wnK -rZt -rZt -wnK -vKu -vKu -vKu -vKu -vKu -bqy -pxA -ugP -mwF -chU -mwF -pxA -pxA -pxA -pxA -wnK -vKu -xIL -vKu -wnK -bJi -chU -bJi -rZt -twi -flN -flN -kue -flN puZ puZ puZ @@ -29451,6 +25336,8 @@ puZ puZ puZ puZ +ntJ +ntJ puZ puZ puZ @@ -29461,6 +25348,12 @@ puZ puZ puZ puZ +hBq +tlB +hBq +hBq +oRH +tlB puZ puZ puZ @@ -29468,52 +25361,44 @@ puZ puZ puZ puZ -asz -asz -rZt -goj -rZt -rZt -goj -wnK -xEB -vKu -wnK -rZt -rZt -eFQ -rZt -rZt -wnK -vKu -vKu -vKu -vKu -vKu -jqT -pxA -ctk -cVy -chU -mwF -pxA -kRV -kVe -wnK -mwF -mwF -yiS -mwF -vKu -mwF -chU -mwF -rZt -flN -flN -flN -kTd -kTd +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +snN +uqb +uqb +aDM +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +oaP +jCE +jCE +jCE +jCE +jCE +puZ +puZ +puZ +puZ +puZ +puZ puZ puZ puZ @@ -29612,6 +25497,9 @@ puZ puZ puZ puZ +wMh +ntJ +ntJ puZ puZ puZ @@ -29621,6 +25509,13 @@ puZ puZ puZ puZ +hBq +tlB +oRH +oRH +oRH +hBq +oRH puZ puZ puZ @@ -29630,53 +25525,43 @@ puZ puZ puZ puZ -asz -iIe -rZt -goj -fHM -rZt -goj -wnK -rZt -vKu -vKu -vKu -vKu -vKu -vKu -vKu -toN -vKu -vKu -dgF -hEE -wnK -pxA -pxA -pxA -wnK -wnK -wnK -pxA -hQO -pve -wnK -flN -wAP -flN -dJS -flN -mwF -chU -mwF -rZt -rZt -wBf -pxA -kTd -kue -flN +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +uqb +uqb +uqb +kLM +uqb +uqb +uqb +aDM +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +hFl +jLx +iWS +jCE +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ puZ puZ "} @@ -29773,81 +25658,81 @@ puZ puZ puZ puZ +ntJ +wMh +wMh +wMh puZ puZ puZ -aau -aau -aau puZ puZ puZ +xAS +xAS +hBq +tlB +oRH +oRH +tlB +tlB +oRH +tlB +hBq puZ puZ puZ puZ puZ puZ +slO +slO +slO puZ -lhu puZ +mev +cQW +rbA +aDM +cko +rLu +rLu +nMR +uqb +uqb +uqb +uqb +uqb +uqb +aDM puZ -asz -bNu -rZt -djO -qCs -pPt -goj -wnK -qyE -wnK -asz -fNE -fNE -fNE -pxA -xvS -xvS -pxA -pxA -iQe -qaF -chU -pxA -pxA -pxA -vKu -vKu -vKu -pxA -lGU -wnK -wnK -aPd -aRz -aXi -bag -flN -mwF -chU -mwF -rZt -flN -flN -pxA -flN -kTd -kue puZ puZ -"} -(11,1,1) = {" +puZ +puZ +puZ +puZ +puZ +puZ +jCE +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +"} +(11,1,1) = {" puZ puZ puZ caS -caS +caS dsD dsD mFm @@ -29935,14 +25820,62 @@ puZ puZ puZ puZ +jmW +jmW +jmW +wMh +ntJ +puZ +puZ +puZ +vrG +gXu +xAS +xAS +oRH +hBq +oRH +tlB +oRH +xAS +xAS +oRH +hBq +oRH +puZ +puZ +puZ +puZ +puZ +slO +slO +slO +slO +puZ +lLv +cQW +rbA +uqb +mNs +xMz +slO +ofl +uqb +uqb +aDM +uqb +uqb +uqb +uqb +riV +puZ +puZ +puZ +puZ +puZ +puZ puZ puZ -pct -hsu -hsu -aaP -aau -aau puZ puZ puZ @@ -29950,57 +25883,9 @@ puZ puZ puZ puZ -clK puZ puZ puZ -asz -iqt -rZt -goj -axa -hVs -djO -dBB -rZt -rZt -fNE -sdF -biM -biM -fNE -rZt -vKu -pxA -pxA -rZt -hEE -chU -gFb -sfM -oHF -wnK -wnK -wnK -pxA -lYG -wnK -wnK -aPe -aSJ -aXn -bah -flN -mwF -chU -mwF -flN -rZt -rZt -flN -flN -kTd -kue puZ puZ "} @@ -30097,72 +25982,72 @@ puZ puZ puZ puZ +wMh +wMh +wMh +jmW +ntJ +puZ +puZ +xAS +xAS +xAS +xAS +aFO +xAS +oRH +nmf +dcn +fVq +wwl +gpj +tlB +oRH +hBq +puZ +puZ +puZ +puZ +slO +slO +slO +poz +hhT +puZ +bCr +cTU +iOp +qza +mNs +slO +slO +ofl +uqb +xvb +kGW +aDM +uqb +uqb +uqb +aDM +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ puZ puZ -pct -hsu -aav -clK -uoZ -aau puZ puZ puZ -aav -clK -aav -clK -aav puZ puZ puZ -asz -asz -asz -goj -goj -djO -goj -wnK -rZt -rZt -fNE -nPH -biM -biM -fNE -chU -wnK -vFX -pxA -iQe -qaF -chU -kyu -drx -rZt -chU -rZt -chU -fNE -mHU -pDp -wnK -aQm -aXc -aXI -bbG -flN -mwF -chU -mwF -rZt -flN -rZt -flN -flN -flN -kue puZ puZ "} @@ -30259,72 +26144,72 @@ puZ puZ puZ puZ -puZ -aaw -hsu +wMh +wMh +wMh uoZ -clK -clK -aav -clK -aav -aav -rpE -clK -aav -aaP -aav -clK -dCY -asz -asz -asz -asz -asz -wnK -wnK -wnK -wnK -wnK -rZt -rZt -asz -wTm -biM -biM -fNE -chU -vKu -vQm -pxA -rZt -iQe -wnK -gFb -nMk -chU -rZt -chU -rZt -fNE -mWE -pDu -wnK -flN -flN -flN -flN -flN -mwF -chU -fww -sNX -dAt -flN -pxA -flN -flN -kue +ntJ +puZ +puZ +gEn +xAS +xAS +xAS +aFO +hBq +oRH +tlB +xxY +eHY +saA +oRH +lfe +oRH +oRH +puZ +puZ +puZ +puZ +vZS +vZS +niL +hic +aDM +uqb +uqb +uqb +uqb +mfa +jqx +slO +ivE +oqH +uqb +aDM +kLM +kLM +xvb +uqb +aDM +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ puZ puZ "} @@ -30421,72 +26306,72 @@ puZ puZ puZ puZ +wMh +jmW +wMh +wMh +wMh +puZ +puZ +gEn +tlB +oRH +aFO +aFO +aFO +hBq +hBq +xAS +oRH +xAS +oRH +oRH +oRH +xAS +xAS +kvQ +uqb +aDM +uqb +uqb +uqb +uqb +uqb +uqb +qza +kLM +hXX +kLM +mOv +niL +hic +kLM +uqb +uqb +aDM +xvb +uqb +uqb +uqb +aDM +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ puZ -aaw -hsu -clK -aau -aau -clK -aav -hsu -aav -rpE -clK -aav -clK -aav -clK -dCY -asz -wFB -eSt -wFB -dTU -rZt -gAV -rZt -dTU -asz -asz -asz -asz -asz -goj -goj -fNE -chU -wnK -pxA -pxA -pxA -pxA -pxA -pxA -mcw -rZt -chU -rZt -chU -pxA -pxA -pxA -wnK -mwF -mwF -mwF -mwF -vKu -mwF -chU -uOR -rZt -acP -flN -pxA -flN -flN -kue puZ puZ "} @@ -30582,73 +26467,73 @@ puZ puZ puZ puZ +wMh +jmW +jmW +wMh +puZ +puZ +puZ +puZ +lhP +dcn +fVq +vwx +aFO +dDj +aFO +aFO +aFO +aFO +aFO +xAS +oRH +oRH +xAS +xAS +kvQ +iOu +kLM +kLM +kLM +kLM +kLM +uqb +uqb +uqb +uqb +kLM +iQq +uqb +uqb +kLM +kLM +kLM +uqb +uqb +uqb +uqb +kLM +uqb +kLM +aDM +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ puZ -aaU -uoZ -aav -aau -dRb -dRb -aau -clK -clK -aau -dRb -dRb -dRb -dRb -aaL -abL -dCY -asz -gha -uuN -sNX -rZt -chU -gAV -chU -rZt -asz -dnH -jft -ghS -asz -goj -goj -pxA -rZH -vKu -ghU -pxA -vQm -vFX -pxA -pxA -wnK -wnK -wnK -wnK -wnK -pxA -rZt -vKu -vKu -wnK -vKu -wnK -vKu -wnK -bJi -chU -fww -gaJ -dAt -rZt -rZt -flN -flN -kTd puZ puZ "} @@ -30743,74 +26628,74 @@ puZ puZ puZ puZ +wMh +wMh +wMh +wMh +puZ +puZ +puZ +puZ +puZ +xAS +eSf +xAS +hEx +aFO +aFO +aFO +aFO +elf +too +xAS +oRH +aFO +aFO +xAS +aFO +iQq +iQq +iQq +iQq +uqb +uqb +uqb +uqb +kLM +kLM +iQq +gCx +uqb +uqb +qkI +iQq +kLM +kLM +kLM +kLM +gCx +kLM +uqb +uqb +aDM +upf +aDM +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ puZ -clK -aav -clK -aav -tkB -tue -dRb -clK -hsu -aav -dRb -dRb -dRb -dRb -dRb -dRb -dRb -dRb -asz -wFB -eSt -wFB -dTU -rZt -gAV -rZt -txX -kRj -qOZ -cEj -qOZ -goj -fwv -goj -bXo -chU -kQJ -vKu -wnK -vKu -wnK -vKu -kap -rZt -crF -crF -crF -wnK -vKu -wnK -chU -rZt -chU -rZt -chU -rZt -chU -rZt -chU -mwF -byr -rZt -rZt -flN -flN -kTd -kue puZ puZ "} @@ -30905,74 +26790,74 @@ puZ puZ puZ puZ -clK -aav -hsu -aau -clK -trw -qPj -abL -clK -aav -aaL -dRb -dRb -dRb -dRb -dRb -dRb -dRb -dRb -asz -rZt -byr -rZt -rZt -chU -gAV -chU -iaK -feA -biM -biM -biM -uuv -yhX -goj -pxA -rZt -dTU -hWY -dTU -dTU -dTU -rZt -kap -rZt -crF -crF -crF -wnK -vKu -wnK -chU -rZt -chU -rZt -chU -rZt -chU -rZt -chU -mwF -bgC -flN -flN -rZt -flN -kTd -flN +wMh +lqT +wMh +puZ +puZ +puZ +puZ +puZ +puZ +xAS +xAS +aFO +aFO +aFO +aFO +xAS +xAS +oRH +uIO +oRH +oRH +xAS +tlB +xAS +xAS +kvQ +oUu +uqb +kLM +kLM +uqb +iQq +gCx +kLM +uqb +kLM +iQq +iQq +kLM +kLM +kLM +kLM +kLM +iQq +iQq +kLM +kLM +kLM +uqb +uqb +uqb +kLM +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ puZ puZ "} @@ -31066,74 +26951,74 @@ puZ puZ puZ puZ -hsu +jmW pct -clK -clK -aav -clK -aaw -abL -clK -aav -hsu -abD -tkB -tue -dRb -dRb -dRb -dRb -dRb -dRb -asz -eaa -rZt -rZt -rZt -chU -gAV -chU -iaK -kTI -biM -xtI -qOd -goj -wnK -goj -pxA -pxA -pxA -pxA -pxA -pxA -pxA -pxA -pxA -wnK -wnK -wnK -wnK -wnK -pxA -rZt -vKu -vKu -wnK -vKu -wnK -vKu -wnK -bJi -chU -fww -sNX -dAt -flN -rZt -flN -kTd +wMh +pcY +pcY +pcY +pcY +pcY +pcY +oRH +xAS +aFO +aFO +aFO +aFO +xAS +oRH +tkS +xAS +aFO +oRH +xAS +oRH +xAS +xAS +xAS +kvQ +uqb +dgG +kLM +kLM +kLM +kLM +kLM +iQq +iQq +iQq +iQq +iQq +iQq +iQq +iQq +iQq +iQq +iQq +iQq +iQq +iQq +gCx +kLM +kLM +uqb +kLM +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ puZ puZ puZ @@ -31227,88 +27112,88 @@ puZ puZ puZ puZ -clK -uoZ -hsu -aau -aaP -clK -aau -aau -clK -aaE +wMh +jfO +jmW aau -hsu -uoZ -trw -qPj -dRb -dRb -dRb -dRb -dRb -dRb -asz -rZt -bgC -rZt -rZt -chU -gAV -chU -rZt -asz -biM -biM -biM -goj -lpA -uWA -pxA -tNP -lFp -jcv -fqJ -cSn -pxA -pxA -pxA -rZH -rZt -chU -rZt -rZt -pxA -pxA -pxA -wnK -mwF -mwF -mwF -mwF -vKu -mwF -chU -uOR -uuN -acP -flN -pxA -flN -kTd -puZ -puZ -puZ -"} -(20,1,1) = {" -puZ -puZ -puZ -caS -caS -aiK -mFm -mFm +ntJ +ntJ +wMh +wMh +wMh +oRH +xAS +aFO +aFO +aFO +oRH +xAS +eUn +tlB +xAS +aFO +xAS +xAS +oRH +oRH +rzw +nUk +xMz +xMz +uqb +uqb +kLM +kLM +gCx +iQq +iQq +cQW +cQW +cQW +iQq +iQq +iQq +gGH +iQq +iQq +cQW +cQW +cQW +cQW +kLM +iQq +iQq +iQq +kLM +uqb +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +"} +(20,1,1) = {" +puZ +puZ +puZ +caS +caS +aiK +mFm +mFm mFm mhP mEp @@ -31389,75 +27274,75 @@ puZ puZ puZ puZ -aav -clK -abC -clK -aau -aav -hsu -clK -clK -aau -clK -pct -hsu -aaL -dRb -dRb -dRb -dRb -aau -aau -dRb -asz -dAt -sNX -dAt -rZt -chU -gAV -chU -rZt -bXo -biM -biM -biM -goj -xJA -goj -bXo -vKu -soj -wnK -wnK -cSn -pxA -pxA -pxA -wnK -wnK -wnK -wnK -wnK -pxA -kRV -pEv -wnK -flN -flN -flN -flN -flN -mwF -chU -fww -sNX -dAt -rZt -pxA -kTd -flN +lqT +wMh +lqT +wMh +wMh +jmW +jmW +wMh +oRH +oRH +xAS +aFO +aFO +xAS +xAS +tlB +nig +mME +fVq +fXr +oRH +oRH +xAS +kRq +aFc +wMh +xMz +xMz +aDM +uqb +kLM +kLM +gGH +iQq +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +iQq +cQW +cQW +cQW +cQW +kLM +gGH +cQW +iQq +kLM +uqb +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ puZ puZ puZ @@ -31551,74 +27436,74 @@ puZ puZ puZ puZ -aav -clK -aav -clK -aav -dRb -dRb -abI -clK -aau -aau -clK -aav -abD -dRb -dRb -aav -aav -hsu -clK -dRb -asz -gha -rZt -sNX -rZt -chU -gAV -chU -rZt -asz -wqc -tOq -hXQ -asz -goj -goj -pxA -vKu -wnK -wnK -cSn -pxA -pxA -sIX -chU -rZt -chU -rZt -wnK -pxA -pxA -nmT -pve -wnK -aPd -aRz -aXi -bag -flN -mwF -chU -mwF -flN -wBf -pxA -pxA -kTd +lqT +wMh +lqT +wMh +wMh +wMh +wMh +wMh +oRH +hBq +xAS +aFO +xAS +xAS +hBq +xAS +pcY +cIs +hBq +pCw +xAS +oRH +xAS +xAS +mfc +xMz +xMz +aDM +uqb +uqb +kLM +iQq +iQq +iQq +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +kLM +cQW +iQq +kLM +kLM +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ puZ puZ puZ @@ -31712,78 +27597,78 @@ puZ puZ puZ puZ -aav -hsu -aav -aav -clK -dRb -dRb -tkB -tue -xOT -aau -clK -aav -hsu -hsu -abD -rpE -hsu -hsu -uoZ -clK +lqT +jmW +lqT +lqT +wMh +abH +wMh +oRH +oRH +hBq +xAS +aFO +aFO +xAS +xAS +oRH +pcY +pcY +pcY +pcY +pcY aat -asz -dAt -sNX -dAt -rZt -chU -gAV -chU -asz -asz -asz -asz -asz -asz -asz -asz -pxA -vdS -wnK -vKu -pxA -pxA -ahu -wnK -wnK -wnK -wnK -mUT -uYt -amu -pxA -nrr -wnK -wnK -aPe -act -acA -bah -flN -mwF -chU -bJi -rZt -flN -flN -rZt -flN +oRH +oRH +xAS +oRH +xMz +xMz +aDM +uqb +kLM +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +kLM +kLM +kLM +aDM +aDM +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ puZ puZ -ifQ puZ "} (23,1,1) = {" @@ -31874,86 +27759,86 @@ puZ puZ puZ puZ -uoZ -aav -clK -aaL -abD -dRb -dRb -trw -qPj -abD -hsu -aau -clK -aau -clK -uoZ -rpE -aav -aav -clK -aav -aat -asz -asz -asz -asz -asz -chU -gAV -chU -adS -aea -ptr -aew -aew -aex -asz -asz -lXy -nxA -vKu -vKu -bUe -rZt -chU -rZt -chU -dwQ -wnK -pxA -amu -amu -pxA -nzf -wnK -wnK -aQm -aXc -aXI -bbG -flN -mwF -chU -bJi -bJi -wBf -flN -kTd -kTd -puZ -puZ -puZ -puZ -"} -(24,1,1) = {" -puZ -puZ -puZ -caS -caS +jfO +lqT +wMh +wMh +wMh +oRH +oRH +oRH +tlB +tlB +xAS +aFO +aFO +xAS +oRH +oRH +pcY +pcY +pcY +pcY +pcY +pcY +cIZ +tlB +xAS +oRH +xMz +xMz +kLM +uqb +kLM +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +iQq +iQq +kLM +kLM +uqb +kLM +uqb +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +"} +(24,1,1) = {" +puZ +puZ +puZ +caS +caS caS caS mFm @@ -32037,73 +27922,73 @@ puZ puZ puZ rpE -rpE -rpE -dRb -dRb -dRb -dRb -dRb +jmW +jmW +pcY +pcY +xAS +oRH +oRH +tlB +xAS +tlB +xAS +xAS +oRH +xAS +oRH +pcY +pcY +pcY +pcY +pcY +pcY +yhA dRb -abO -aav -hsu -aaE -aav -aau -clK -rpE -aav -aaP -aav -clK -aat -aat -aat -aat +tlB dRb -asz -chU -gAV -chU -adT -rZt -rZt -rZt -rZt -mRU -aex -asz -nVn -iCJ -pxA -pxA -pxA -wnK -wnK -wnK -wnK -mUT -wnK -amu -jrg -jrg -pxA -nHH -pDp -wnK -flN -flN -flN -flN -flN -mwF -rZt -rZt -mwF -pxA -kTd -kTd +yhA +xMz +uqb +kLM +iQq +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +boD +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +iQq +iQq +iQq +iQq +iQq +kLM +lMO +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ puZ puZ puZ @@ -32193,78 +28078,78 @@ tlB puZ wMh wMh -aFO -fuz -aFO -dJl -fuz -aFO +tlB +vym +tlB +sDd +vym +xAS wMh abB -dRb -dRb -dRb -dRb -dRb -dRb -tkB -tue -aav -hsu -clK -clK -aav -rpE -clK -aav -clK -aav -clK -clK -clK -clK -dRb -asz -chU -gAV -chU -adV -rZt -rZt -rZt -rZt -rZt -mOu -asz -asz -asz -asz -asz -rZt -flN -rZt -rZt -dwQ -pxA -amu -amu -jrg -jrg -pxA -mWE -pJA -wnK -mwF -mwF -mwF -mwF -vKu -bJi -bJi -chU -mwF -pxA -flN +pcY +pcY +xAS +xAS +tlB +xAS +tlB +xAS +tlB +oRH +ben +vpD +vpD +pcY +pcY +pcY +pcY +pcY +pcY +pcY +tlB +xAS +tlB +tlB +xMz +uqb +uqb +kLM +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +iQq +iQq +iQq +kLM +kLM +ath +aDM +kLM +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ puZ puZ puZ @@ -32355,77 +28240,77 @@ tlB tlB oRH oRH -elN +pGi jmW -tPs -elN +ohd +pGi jmW -tPs +nEU abv wMh -dRb -dRb -dRb -dRb -dRb -dRb -trw -qPj -clK -uoZ -clK -aav -clK -rpE -aav -clK -uoZ -mOT -uoZ -aav -dRb -dRb -dRb -asz -rZH -gAV -chU -adW -aeb -rZt -miD -miD -adi -aCB -asz -asz -asz -asz -wnK -wnK -wnK -wnK -dwQ -flN -jrg -jrg -jrg -jrg -jrg -pxA -pxA -pxA -wnK -wnK -vKu -wnK +pcY +aFO +aFO +wMh +uir +uir +wMh +xAS +oRH +oRH +vpD +vpD +qFx +pcY +pcY +pcY +pcY +pcY +pcY +tlB +xAS +aFO +xAS +tlB +xMz +uqb +uqb +uqb +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +iQq +kLM +kLM +lNg +uqb +kLM +kLM vNN -wnK -rZt -mwF -chU -mwF -pxA +kAw +kAw +puZ +puZ +puZ +puZ puZ puZ puZ @@ -32514,80 +28399,80 @@ oRH oRH jVi oRH -xAS -aFO -aFO -vtz -pMV +tlB +tlB +tlB +rUW +xMs jqo -aFO -pMV -aFO +tlB +rld +tlB +xAS +wMh +wMh aFO wMh +jOi +ecx +uir +uir wMh -dRb -dRb -dRb -dRb -dRb -dRb -dRb -uoZ -clK -aav -clK -aav -dRb +hBq +xAS +vpD +vpD +vpD +ccu leg -uoZ -hsu -pct -dRb -dRb -dRb -dRb -dRb -asz -chU -gAV -chU -asz -asz -aed -asz -asz -aez -mRU -aeQ -asz -asz -rZt -flN -rZt -dwQ -flN -flN -amu -bJj -jrg -jrg -jrg -jrg -jrg -jrg -pxA -wnK -wnK -pxA -pxA -pxA -pxA -pxA -mwF -chU -mwF -pxA +pcY +pcY +pcY +pcY +rkG +xAS +aFO +xAS +tlB +xMz +aDM +uqb +uqb +kLM +iQq +iQq +iQq +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +kLM +cQW +iQq +kLM +kLM +wgM +kLM +ath +iQq +vNN +cwZ +kAw +puZ +puZ +puZ +puZ puZ puZ puZ @@ -32676,80 +28561,80 @@ jmW tlB oRH xAS -aFO +tlB vtz -aFO -aFO +xAS +tlB mCQ pPK eFI -aFO +tlB vtz gva -aFO +xAS wMh eFI wMh -dRb -dRb -dRb -dRb -dRb -hsu -aav -aav -dRb -dRb -dRb -aaw -aav +jOi +jOi +xMX +uir +wMh +wMh +wMh aav -dRb -dRb -lSU -lSU -lSU -lSU -lSU -chU -gAV -rZt -dTU -dTU -dTU -rZt -fNE -aeC -rZt -aeR -asz -wnK -dwQ -wnK -wnK -wnK -dwQ -bJj -bJj -jrg -jrg -bJj -osE -jrg -jrg -jrg -pxA -wnK -wnK -pxA -pxA -pxA -pxA -pxA -vKu -vKu -vKu -pxA +ben +vpD +vpD +vpD +pcY +pcY +pcY +pcY +tlB +tlB +xAS +tlB +xAS +xMz +aDM +uqb +uqb +uqb +kLM +gGH +iQq +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +kLM +cQW +cQW +cQW +cQW +kLM +gGH +cQW +kLM +uqb +lNg +erj +kLM +tcp +iQq +vNN +cwZ +kAw +kAw +hrk +puZ +puZ puZ puZ puZ @@ -32837,81 +28722,81 @@ pcY jmW wMh oRH -aFO -aFO -oRH -oRH +tlB +tlB +xAS +xAS wMh pcY jmW nuY wMh -elN +pGi jmW -tPs +ohd wMh wMh wMh wMh +jOi +kHG +uir wMh +ntJ +ntJ +wMh +wMh +wMh +wMh +oRH +pcY +pcY +pcY +pcY +yhA dRb +xAS dRb -aav -uoZ -clK -aav -dRb -dRb -dRb -dRb -dRb -dRb -dRb -dRb -lSU -rHO -rHO -fgK -lSU -chU -gAV -gAV -gAV -gAV -gAV -chU -fNE -aeP -miD -aiV -asz -rZt -rZt -rZt -rZt -flN -amu -fXX -bJj -jrg -bJj -bJj -bJj -bJj -bJj -osE -pxA -wnK -wnK -pxA -pxA -pxA -pxA -pxA -mwF -chU -mwF -pxA +yhA +xMz +cnt +cnt +uqb +xvb +kLM +gCx +kLM +iQq +cQW +cQW +cQW +iQq +iQq +iQq +gGH +kLM +kLM +cQW +cQW +cQW +cQW +kLM +iQq +iQq +kLM +kLM +lNg +xMz +xMz +iQq +kLM +vNN +cwZ +kAw +kAw +hrk +ugC +puZ puZ puZ puZ @@ -33008,72 +28893,72 @@ pcY pcY pcY wMh -aFO -pMV -dJl -aFO -aFO -aFO +tlB +xMs +ilW +xAS +xAS wMh -eFI +jOi +jOi wMh -dRb -rpE -rpE -rpE -dRb -dRb -dRb -dRb -dRb -dRb -dRb -dRb -dRb -ocl -dwQ -dwQ -dwQ -bXo -rZt -dTU -dTU -rZt -gAV -gAV -chU -asz -asz -asz -asz -asz -wnK -wnK -dwQ -wnK -fXX -bJj -bJj -gpz -gpz -gpz -bJj -osE -osE -gpz -gpz -xTK -fXX -fXX -jrg -jrg -jrg -jrg -pxA -xcE -ggL -xcE -pxA +uir +wMh +jmW +ntJ +jmW +ntJ +wMh +wMh +pcY +pcY +pcY +pcY +pcY +pcY +tlB +xAS +xAS +hBq +xMz +xMz +xMz +xMz +oqf +uqb +kTP +kLM +kLM +iQq +iQq +iQq +kLM +iQq +iQq +iQq +iQq +iQq +kLM +kLM +iQq +iQq +iQq +qkI +iQq +uqb +kLM +aDM +xMz +xMz +xMz +iQq +vNN +cwZ +kAw +kAw +kAw +hrk +puZ puZ puZ puZ @@ -33170,97 +29055,97 @@ pcY pcY pcY ouS -aFO +tlB jpp wMh wMh wMh +tlB +xAS +wMh wMh -aFO -aFO wMh -abP +jmW wMh wMh -abB +ntJ +jmW +wMh pcY pcY +tlB +hBq +tlB pcY -lSU -dRb -dRb -abY -abY -dRb -lSU -dwQ -dwQ -lSU -lSU -lSU -lSU -lSU -shO -gAV -gAV -chU -rZt -rZt -ahB -rZt -rZt -rZt -rZt -rZt -rZt -bJj -bJj -osE -gpz -bJj -bJj -bJj -bJj -bJj -gpz -gpz -rad -fXX -osE -gRJ -jrg -jrg -jrg -pxA -mwF -chU -mwF -pxA -puZ -puZ -puZ -puZ -puZ -puZ -puZ -"} -(32,1,1) = {" -puZ -puZ -puZ -caS -caS -caS -caS -mFm -mFm -mFm -mFm -mFm -mFm -mFm -mFm -mFm +hBq +tlB +xAS +aFO +tlB +hBq +xMz +xMz +xMz +xMz +aDM +uqb +kLM +gCx +kLM +kLM +kLM +kLM +kLM +kLM +iQq +iQq +kLM +iQq +iQq +kLM +uqb +iQq +iQq +iQq +kLM +xvb +uqb +uCs +xMz +xMz +xMz +xMz +cwZ +cwZ +kAw +kAw +kAw +hrk +puZ +puZ +puZ +puZ +puZ +puZ +puZ +"} +(32,1,1) = {" +puZ +puZ +puZ +caS +caS +caS +caS +mFm +mFm +mFm +mFm +mFm +mFm +mFm +mFm +mFm mFm mFm mFm @@ -33332,72 +29217,72 @@ pcY pcY pcY laz -aFO -aFO +tlB +tlB yjM kSO qBM -wMh -aFO -aFO -wMh +tlB +tlB +xAS xAS xAS -abQ +xAS +hBq +wMh +wMh +ntJ wMh -pcY -pcY -pcY -lSU dRb -abX -ors -ors -lSU -lSU -dwQ -dwQ -lSU -ada -ady -adE -lSU -goj -goj -goj -goj -goj -goj -goj -goj -goj -wnK -wnK -dwQ -flN -fXX -bJj -bJj -osE -bJj -bJj -gpz -gpz -bJj -bJj -xuz -ciL -bJj -bJj -bJj -jrg -jrg -jrg -amu -fXX -fXX -fSR -amu +xAS +hBq +tlB +tlB +hBq +tlB +tlB +tlB +xAS +aFO +tlB +xAS +tlB +xAS +kvQ +kLM +xvb +kLM +kLM +kLM +kLM +kLM +gCx +kJQ +kLM +qkI +iQq +kLM +iOu +kLM +iQq +qkI +lNg +kLM +lNg +uqb +uqb +xMz +xMz +xMz +xMz +xMz +xMz +cwZ +cwZ +kAw +kAw +kAw +kAw puZ puZ puZ @@ -33489,77 +29374,77 @@ wMh tQn nBo tlB -oRH +xAS sFj pcY kBo obH -aFO -aFO +tlB +tlB cQY rJI gso -pcY -wMh +tlB +tlB +tlB +oRH wMh -aFO -aFO +tlB +xAS xAS wMh -iZI -ntJ ntJ -pcY -lSU -abV -skl -skl -ors -elw -dwQ -dwQ -dwQ -lSU -ada -dwQ -dwQ -adI -goj -chU -goj -chU -chU -chU -goj -chU -aiD -rZt -flN -rZt -dwQ -bJj -osE -bJj -osE -osE -osE -gpz -bJj -gpz -gpz -bJj -ciL -gpz -bJj -xuz -jrg -jrg -jrg -amu -bJj -fSR -fXX -amu +wMh +mpI +hBq +tlB +tlB +xAS +xAS +xAS +xAS +xAS +xAS +xAS +aFO +xAS +tlB +xAS +cdh +aDM +uqb +kLM +kLM +uqb +uqb +kLM +kLM +kLM +iQq +bzK +iQq +iQq +kLM +kLM +iQq +iQq +iQq +iQq +iQq +iQq +iQq +xMz +xMz +xMz +xMz +xMz +xMz +kAw +kAw +kAw +kAw +kAw +kAw puZ puZ puZ @@ -33651,77 +29536,77 @@ pcY pcY pcY xeq -aFO +xAS tze wMh wMh pWn -aFO +tlB tTc cQY aNy xtc -nKD +tlB wMh wMh -vtz -aFO -aFO +tlB +tlB +tlB +xAS xAS wMh wMh -ntJ +aaA wMh -lSU -sgB -skl -skl -ors -dwQ -elw -dwQ -dwQ -adI -adj -dwQ -adH -lSU -goj -wnK -goj -wnK -wnK -wnK -goj -txU -goj -rZt -rZt -flN -asz -jrg -jrg -jrg -osE -osE -osE -osE -bJj -bJj -bJj -bJj -sLj -sLj -tnG -jrg -jrg -jrg -jrg -nkH -bJj -fXX -fSR -amu +xAS +tlB +xAS +xAS +aFO +aFO +aFO +aFO +aFO +tlB +xAS +aFO +xAS +tlB +kLM +uqb +kLM +kLM +kLM +kLM +kLM +iQq +iQq +kLM +iQq +iQq +iQq +iQq +kLM +iQq +iQq +iQq +iQq +iQq +iQq +iQq +iQq +xMz +xMz +xMz +xMz +xMz +xMz +kAw +kAw +kAw +kAw +kAw +kAw puZ puZ puZ @@ -33813,95 +29698,95 @@ wMh cQY xhU wMh -aFO -aFO -dJl -fuz -dJl -aFO -aFO -pXU +tlB +tlB +sDd +vym +sDd +tlB +tlB +nZG wMh wMh -aFO +tlB +hBq +tlB +tlB +oRH +tlB +tlB wMh wMh wMh -eFI +wMh +mpI +hBq +aFO +aFO +aFO +aFO aFO aFO xAS -wMh -ntJ -wMh -lSU -kbT -skl -skl -ors -lSU -lSU -dwQ -dwQ -lSU -dwQ -dwQ -dwQ -lSU -dtE -rZt -rZt -iXr -pue -wui -rZt -rZt -goj -asz -asz -asz -asz -asz -asz -jrg -jrg -jrg -bJj -bJj -bJj -gpz -osE -osE -bJj -osE -osE -jrg -jrg -jrg -jrg -jrg -bJj -gRJ -bJj -amu -puZ -puZ -puZ -puZ -puZ -puZ -puZ -"} -(36,1,1) = {" -puZ -puZ -puZ -caS -caS -caS -mFm -mFm -caS +tlB +tlB +tlB +xAS +aFO +xAS +kvQ +uqb +aDM +iQq +kLM +kLM +iQq +uqb +uqb +iQq +iQq +iQq +iQq +iQq +kLM +kLM +iQq +iQq +uqb +lNg +lNg +xvb +uqb +xMz +xMz +xMz +xMz +xMz +xMz +kAw +nZA +kAw +kAw +nZA +kAw +puZ +puZ +puZ +puZ +puZ +puZ +puZ +"} +(36,1,1) = {" +puZ +puZ +puZ +caS +caS +caS +mFm +mFm +caS caS mFm mFm @@ -33975,77 +29860,77 @@ oRH cQY oRH sIP -aFO -aFO -elN +tlB +tlB +pGi jmW -tPs -aFO +ohd +tlB wMh wMh wMh -aFO -aFO +tlB +tlB +tlB +tlB +oRH +tlB +tlB +xAS +wMh +wMh wMh -aFO wMh +dRb +xAS +tlB +xAS aFO +xAS +xAS +tlB +tlB +xAS +xAS +xAS aFO -tTc +xAS aFO -vaT -wMh -wMh -lSU -xFP -mIx -aca -wPp -wPp -lSU -dwQ -dwQ -lSU -gpb -adC -adC -lSU -goj -wnK -goj -gKE -pue -iYc -onM -wnK -goj -asz -afz -azH -agZ -aUS -asz -jrg -jrg -jrg -jrg -jrg -bJj -gpz -osE -osE -gpz -bJj -bJj -mKF -jrg -jrg -gRJ -sUD -hXH -apD -hXH -czI +fKb +kLM +iQq +kLM +kLM +kLM +kLM +uqb +iOu +kLM +iQq +iQq +iQq +iQq +iQq +iOu +iQq +iQq +uqb +hbD +iDy +iDy +hzJ +hzJ +xMz +xMz +xMz +xMz +xMz +kAw +nZA +nZA +kAw +kAw +kAw puZ puZ puZ @@ -34135,80 +30020,80 @@ aFO aFO aFO wfP -oRH +xAS tlB oRH -aFO -dJl +tlB +sDd hCa -dJl -aFO -aFO +sDd +tlB +tlB wMh wMh -aFO -aFO -aFO -aFO -aFO -aFO -aFO -vtz -aFO +hBq +wMh +wMh +hBq +tlB +tlB xAS +tlB wMh +jmW pcY -lSU -wPp -wPp -acb -wPp -wPp -lSU -dwQ -dwQ -lSU -lSU -lSU -lSU -lSU -goj -chU -dsY -hTb -pRH -lpA -goj -chU -goj -fNE -afV -rZt -rZt -aCB -asz -jrg -jrg -jrg -jrg -bJj -bJj -bJj -gpz -gpz -gpz -bJj -bJj -bJj -jrg -gRJ -bJj -osE -gpz -bJj -bJj -jrg -puZ +pcY +pcY +pcY +hBq +xAS +xAS +pcY +pcY +xAS +xAS +xAS +xAS +cbG +ylF +tlB +uji +uji +uji +uji +uji +uAd +kbK +jpE +iQq +kLM +iQq +iQq +iQq +iQq +iQq +iQq +iQq +iQq +kLM +kLM +qoU +hXB +hzJ +hzJ +hzJ +xMz +xMz +xMz +xMz +kAw +kAw +kAw +kAw +kAw +kAw +hrk +hrk puZ puZ puZ @@ -34301,76 +30186,76 @@ pZB wMh wMh aaA -elN +pGi jmW swV -aFO -aFO -aFO -wMh -wMh -wMh -aFO -wMh +xAS +xAS +tlB wMh +hBq +tlB wMh -aFO -vtz +tlB +oRH +tlB +tlB wMh wMh +ntJ pcY pcY -lSU -wPp -wPp -wPp -wPp -wPp -lSU -elw -dwQ -dwQ -dwQ -dwQ -lSU -lQm -goj -chU -goj -dqH -rZt -sCl -onM -chU -goj -fNE -afX -rZt -rZt -ahS -asz -jrg -jrg -jrg -jrg -bJj -bJj -bJj -osE -bJj -bJj -gpz -bJj -bJj -jrg -osE -bJj -bJj -gpz -bJj -jrg -jrg -puZ +pcY +pcY +tlB +hBq +xAS +pcY +pcY +pcY +xAS +toO +jld +xAS +pff +tlB +uji +uji +uji +uji +uji +kLM +kLM +knI +iQq +iQq +iQq +iQq +iQq +iQq +iQq +iQq +kLM +uqb +uqb +uqb +qEB +hzJ +hzJ +hzJ +hzJ +kAw +hrk +kAw +kAw +kAw +kAw +kAw +nZA +kAw +kAw +kAw +kAw puZ puZ puZ @@ -34463,105 +30348,105 @@ pcY gXW gXW kQW -dJl +ilW ylU -dJl -aFO -wMh +ilW +tlB wMh -aFO wMh -aFO -aFO -aFO +xAS wMh -aFO -aFO +tlB +tlB +tlB +tlB xAS +tlB +wMh +wMh wMh pcY pcY pcY -wPp -wPp -wPp -lSU -lSU -lSU -lSU -dwQ -oaO -dwQ -dwQ -dwQ -bXo -rZt -goj -vuj -goj -eaz -rZt -nwd -goj -wnK -goj -fNE -aud -rZt -rZt -ahT -asz -jrg -jrg -jrg -jrg -bJj -bJj -bJj -bJj -bJj -bJj -bJj -gpz -gpz -bJj -osE -bJj -gpz -gpz -bJj -jrg -jrg -puZ -puZ -puZ -puZ -puZ -puZ -puZ -"} -(40,1,1) = {" -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -caS -caS -eni -mMK -caS -caS -eni -eni -caS -mBM -slj -vOd -vOd +pcY +hBq +tlB +pcY +pcY +pcY +uKZ +iMA +aYy +bbj +aYy +iMA +uKZ +uji +uji +uji +uji +uji +uji +qhm +qhm +kXs +mcH +mcH +mcH +mcH +mcH +mcH +mcH +mcH +pNo +qhm +qhm +hzJ +hzJ +hzJ +hzJ +hzJ +kAw +kAw +kAw +hrk +hrk +kAw +nZA +nZA +kAw +kAw +kAw +kAw +hrk +puZ +puZ +puZ +puZ +puZ +"} +(40,1,1) = {" +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +caS +caS +eni +mMK +caS +caS +eni +eni +caS +mBM +slj +vOd +vOd slj mJA caS @@ -34629,73 +30514,73 @@ mbt mbt abt wMh -aFO -aFO -aFO -aFO -aFO -aFO -fXQ -pcY -wMh -vtz +xAS +tlB +xAS +tlB xAS wMh -pcY wMh +tlB +tlB wMh -wPp -wPp -wPp -lSU -dwQ -dwQ -dwQ -oaO -dwQ -rEW -lSU -lSU -lSU -ehe -bxW -chU -goj -rZt -rZt -rZt -goj -chU -oag -asz -aud -rZt -rZt -tiw -asz -jrg -jrg -jrg -bJj -osE -bJj -bJj -jrg -bJj -osE -bJj -gpz -gpz -gpz -bJj -bJj -gpz -gpz -fXX -jrg -iTQ -puZ -puZ +wMh +wMh +jmW +pcY +pcY +pcY +uji +uKZ +uKZ +uji +uji +uji +uKZ +fRg +fRg +fRg +bfy +fRg +uKZ +uji +dMo +ibP +dMo +uji +uji +kLM +lNE +uqb +iOu +kLM +iQq +iQq +iQq +iQq +kLM +kLM +uqb +uqb +uqb +hzJ +huz +huz +huz +huz +ncS +ncS +ncS +huz +huz +hrk +kAw +kAw +kAw +kAw +kAw +hrk +hrk puZ puZ puZ @@ -34793,70 +30678,70 @@ gXW mbt abw wMh -aFO -aFO -aFO +tlB +tlB +xAS wMh -sFj -pcY wMh -aFO +tlB xAS wMh -iZI -ntJ +wMh ntJ wMh -wPp -wPp -lSU -dwQ -eBG -dwQ -dwQ -elw -rRP -lSU -cvn -lSU -exm -goj -rWS -fVI -rZt -rZt -rZt -goj -chU -goj -aeU -rZt -rZt -rZt -aCB -asz -jrg -jrg -jrg -osE -bJj -bJj -bJj -jrg -bJj -bJj -bJj -bJj -bJj -bJj -bJj -gpz -bJj -bJj -fXX -fXX -iTQ -puZ +pcY +pcY +pcY +uji +oYH +ahe +pvv +sKi +pvv +pvv +aWY +pvv +pvv +pvv +pvv +pvv +pvv +pvv +pvv +fRg +uji +ofw +kop +kop +kop +tHd +tHd +kyD +kyD +kyD +kyD +tHd +tHd +rtZ +jMf +ofw +ofw +huz +huz +huz +huz +tRN +rdS +xvQ +huz +huz +kAw +kAw +kAw +kAw +nZA +kAw +hrk puZ puZ puZ @@ -34954,71 +30839,71 @@ idR jHg aui ecz -aFO -aFO -aFO -wMh -jmW -pcY -pcY -pcY -aFO -aFO +tlB +tlB +tlB xAS -iZI +tlB +tlB +tlB +tlB wMh wMh ntJ -wPp -wPp -lSU -dwQ -lSU -lSU -lSU -lSU -lSU -lSU -dwQ -lSU -qRo -goj -wnK -goj -kMJ -rZt -neS -goj -wnK -oag -asz -agl -rZt -rZt -apk -asz -jrg -jrg -jrg -osE -bJj -bJj -jrg -jrg -bJj -bJj -gpz -gpz -bJj -bJj -bJj -gpz -bJj -fXX -bJj -fXX -amu -puZ +ntJ +pcY +pcY +pcY +uji +dtr +oYH +pvv +aTn +pvv +pvv +pvv +pvv +pvv +bfi +pvv +pvv +pvv +pvv +pvv +fRg +hGj +tHd +xvp +kop +xwk +kop +kyD +kyD +kyD +kyD +tHd +kyD +tHd +kop +tHd +que +ofw +huz +kys +pef +rdS +axJ +axJ +xvQ +fXB +ncS +kAw +nZA +kAw +kAw +nZA +kAw +hrk puZ puZ puZ @@ -35118,91 +31003,91 @@ tes sPo wMh tze -aFO -xbm -pcY -pcY -pcY +tlB +tlB +tlB +tlB +xAS +xAS wMh wMh -vtz -aFO -cyW -xAS wMh wMh wMh -iZI -lSU -jis -lSU -acU -acU -lSU -lSU -lSU -fgH -lSU -bYk -goj -chU -dsY -uKo -rZt -wjK -goj -vTj -goj -asz -agm -rZt -rZt -ard -asz -asz -asz -jrg -bJj -bJj -bJj -jrg -jrg -jrg -bJj -gpz -bJj -gpz -bJj -osE -jrg -amu -fXX -fXX -bJj -amu -puZ -puZ -puZ -puZ -puZ -puZ -puZ -"} -(44,1,1) = {" -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -pWh -pyK -nmY -iXR -ntc -vYm +pcY +pcY +uji +fRg +oYH +pvv +pvv +aTh +aVx +aWI +aYd +baX +bcJ +pvv +pvv +pvv +pvv +pvv +fRg +hGj +tHd +kyD +tHd +kop +tHd +kyD +kyD +kyD +kyD +kyD +tHd +kyD +kyD +tHd +tHd +tHd +huz +krU +axJ +axJ +trX +uLT +wTT +fXB +ncS +hrk +hrk +nZA +kAw +kAw +kAw +kAw +puZ +puZ +puZ +puZ +puZ +puZ +"} +(44,1,1) = {" +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +pWh +pyK +nmY +iXR +ntc +vYm vYm vYm vYm @@ -35279,70 +31164,70 @@ aRL uLf nlx wMh -aFO -aFO +tlB +tlB wMh -jmW -pcY wMh -aFO -aFO -aFO -aFO -vtz -aFO -aFO +wMh +wMh +tlB xAS wMh -iZI wMh -flN -kEs -agw -agw -kEs -wXh -lSU -cvn -lSU -wOO -goj -chU -goj -lfk -rZt -uII -aiD -chU -goj -fNE -aud -rZt -rZt -mRU -ptr -aue -asz -jrg -bJj -gpz -gpz -bJj -jrg -jrg -jrg -gpz -gpz -gpz -bJj -osE -jrg -iTQ -rbq -rbq -rbq -amu -puZ +wMh +ntJ +wMh +wMh +uKZ +fRg +oYH +pvv +pvv +aUw +aVB +aWQ +aVN +aVN +aVN +bqN +aVx +dbH +pvv +pvv +gxK +hGj +kyD +kyD +kyD +tHd +kyD +kyD +kyD +kyD +kyD +kyD +kyD +tHd +tHd +kyD +kyD +kyD +huz +axJ +axJ +rBC +rdS +axJ +axJ +tkm +ncS +hrk +hrk +kAw +kAw +kAw +kAw +kAw puZ puZ puZ @@ -35441,72 +31326,72 @@ wMh wMh jJv afY -aFO +tlB tTc wMh +gZk +tlB +tlB +tlB +xAS wMh wMh -aFO -aFO -aFO -aFO -aFO -aFO -tTc -vtz -aFO -eFI -xct wMh -kEs -flN -flN -kEs -flN -kOi -lSU -lSU -lSU -lSU -bxW -wnK -goj -aNf -rZt -nBs -goj -txU -goj -fNE -aud -ptr -miD -miD -rZt -ava -asz -asz -dVw -gpz -gpz -bJj -bJj -jrg -bJj -bJj -gpz -bJj -bJj -jrg -jrg -amu -rbq -rbq -rbq -amu -puZ -puZ -puZ +wMh +ntJ +ntJ +uKZ +aQg +oYH +pvv +aTh +aUx +aVL +aWS +rNx +bbg +rNx +aWS +bYO +aWQ +dbH +fhv +fRg +hGj +tHd +tHd +kyD +kyD +tHd +fHx +kyD +kyD +kyD +kyD +kyD +kyD +kyD +kyD +kyD +tpg +exX +qIr +axJ +axJ +axJ +dQq +axJ +huz +huz +huz +hrk +kAw +kAw +kAw +kAw +kAw +fNf +oFl puZ puZ puZ @@ -35602,73 +31487,73 @@ wMh ntJ wMh wMh +tlB +tlB +hBq +pcY wMh -aFO -aFO -aFO -aFO -aFO -aFO -wMh -pWY -wMh -wMh -xAS -xAS +tlB +tlB +tlB wMh +pcY +pcY wMh -tig wMh -eFI -flN -kEs -kEs -fgB -kEs -kOi -lSU -coj -coj -lSU -dtE -rZt -rZt -rZt -rZt -mgT -rZt -uvU -goj -fNE -aud -miD -ptr -ptr -rZt -aCB -aeU -dwQ -bJj -bJj -bJj -bJj -bJj -bJj -bJj -bJj -gpz -bJj -bJj -bJj -jrg -amu -gpz -bJj -osE -amu -puZ -puZ -puZ +ntJ +ntJ +uKZ +aQg +oYH +pvv +aTi +aUy +aVL +vVq +aVL +aVL +aVL +aWS +clp +aVU +aUA +gIQ +fRg +hGj +kop +kop +kop +tHd +kyD +dyt +kyD +kyD +kyD +rNY +kyD +kyD +kyD +kyD +kyD +eSN +akF +alS +aMW +wHx +dQq +axJ +axJ +huz +huz +huz +hrk +nZA +nZA +nZA +kAw +kAw +rBk +hip puZ puZ puZ @@ -35756,7 +31641,7 @@ oRH oRH tlB wMh -tlB +xAS wMh wMh oRH @@ -35764,82 +31649,82 @@ tlB tlB wMh wMh -aFO -aFO -aFO -aFO -wMh -wMh -wMh -wMh -wMh -iZI -wMh -wMh -wMh +tlB +tlB +hBq +pcY +pcY +dRb +dRb +dRb +pcY +pcY +pcY +pcY wMh -jmW -xct wMh wMh -gCL -flN -kEs -flN -flN -vTc -rMI -dTU -dTU -rMI -goj -wnK -goj -wnK -wnK -wnK -goj -wnK -goj -fNE -aud -rZt -rZt -rZt -nBh -ajg -asz -asz -jrg -jrg -jrg -cBU -cBU -cBU -bJj -bJj -bJj -gpz -bJj -bJj -bJj -bJj -fXX -osE -fXX -amu -puZ -puZ -puZ -puZ -puZ -puZ -puZ -"} -(48,1,1) = {" -puZ -puZ -puZ +uKZ +fRg +oYH +pvv +aTj +aUz +aVU +aWS +rPa +baY +rPa +aWS +cbk +aWU +deV +eVG +fRg +hGj +kop +tHd +tHd +kyD +kyD +dyt +kyD +tHd +kyD +kyD +kyD +kyD +kyD +kyD +kyD +tpg +exX +qIr +rdS +axJ +axJ +axJ +axJ +axJ +huz +huz +sax +hrk +nZA +nZA +kAw +kAw +puZ +puZ +puZ +puZ +puZ +puZ +"} +(48,1,1) = {" +puZ +puZ +puZ puZ puZ puZ @@ -35925,77 +31810,77 @@ wMh oRH oRH wMh -aFO -aFO -aFO -aFO -wMh -wMh -pcY +tlB +tlB +tlB +tlB +tlB +tlB +hBq +tlB +xAS pcY pcY pcY -iZI pcY -wMh -ntJ -wMh -xct -wMh -wMh -wMh -flN -flN -eit -kEs -kEs -flN -rMI -dTU -dTU -rMI -goj -chU -goj -chU -chU -chU -goj -chU -aiD -asz -twt -agY -aha -arK -arU -asz -asz -qNE -qNE -enh -xNO -bJj -cBU -cBU -cBU -bJj -fXX -gpz -gpz -vlD -bJj -bJj -bJj -osE -bJj -amu -amu -amu -amu -amu -amu -amu +uji +uKZ +uKZ +uji +dtr +oYH +pvv +fhv +aUA +aVB +aWU +aVx +aVx +aVx +bqN +aVN +deV +dKR +pvv +fRg +hGj +tHd +kyD +kyD +kyD +kyD +kyD +tHd +tHd +kop +tHd +kyD +kyD +kyD +kyD +kyD +tpg +exX +qIr +aut +rdS +rdS +axJ +axJ +rdS +huz +huz +sax +hrk +kAw +nZA +kAw +kAw +puZ +puZ +puZ +puZ +puZ puZ "} (49,1,1) = {" @@ -36087,77 +31972,77 @@ wMh wMh wMh wMh -aFO -aFO -aFO -aFO -aFO -wMh -pcY -pcY +tlB +tlB +oRH +tlB +tlB +tlB +tlB +tlB +xAS pcY pcY pcY pcY -jmW -abT -wMh -iZI -pWY -wMh -wMh -flN -kEs -kEs -flN -eit -vTc -asz -coj -coj -asz -dtE -goj -goj -goj -goj -goj -goj -aiD -goj -asz -agz -asz -asz -asz -asz -asz -asz -qNE -enh -xNO -acd -cBU -cBU -cBU -bJj -cBU -bJj -gpz -gpz -bJj -bJj -gpz -rbq -fXX -rbq -mwJ -fXX -fXX -fXX -fXX -pLS -amu +uKZ +cHB +xSk +afd +fRg +oYH +aSA +gIQ +aTj +aVN +aWV +aYx +bbh +beK +pvv +pvv +pvv +pvv +pvv +fRg +hGj +kyD +kyD +kyD +kyD +kyD +kyD +tHd +ofw +tHd +kyD +kyD +kyD +kyD +kyD +kyD +kyD +huz +aut +rdS +aCy +tdc +axJ +axJ +tZW +huz +huz +sax +hrk +kAw +nZA +kAw +kAw +puZ +puZ +puZ +puZ +puZ puZ "} (50,1,1) = {" @@ -36247,79 +32132,79 @@ wMh hBq wMh oRH -aFO -aFO -aFO -aFO -aFO -wMh -wMh -wMh -pcY -pcY +tlB +tlB +tlB +oRH +tlB +oRH +tlB +tlB +tlB +tlB pcY pcY pcY pcY -jmW -jmW pcY -lSU -lSU -lSU -lSU -lSU -wBf -kEs -fgB -kEs -flN -asz -asz -asz -asz -asz -asz -tDg -iWX -wZh -asz -rMI -kdy -asz -asz -asz -asz -asz -asz -asz -asz -asz -qNE -xNO -enh -wwW -bJj -bJj -bJj -jrg -cBU -bJj -fXX -fXX -bJj -gpz -bJj -bJj -fXX -vOb -cuJ -fXX -bJj -fXX -fXX -pLS -amu +uKZ +xSk +aNq +oYH +fRg +oYH +pvv +pvv +pvv +pvv +pvv +pvv +pvv +pvv +pvv +pvv +pvv +pvv +pvv +fRg +hGj +kyD +xvp +tHd +xvp +tHd +tHd +kyD +tHd +kyD +kyD +kyD +kyD +pKK +kyD +xvp +tHd +huz +rdS +axJ +amH +tbR +axJ +rdS +ixC +huz +huz +sax +hrk +kAw +kAw +kAw +kAw +puZ +puZ +puZ +puZ +puZ puZ "} (51,1,1) = {" @@ -36409,15 +32294,13 @@ hBq wMh oRH xAS -aFO +tlB jCZ pGj -aFO -abH -wMh -wMh -pcY -pcY +tlB +hBn +oRH +tlB pcY pcY pcY @@ -36426,83 +32309,85 @@ pcY pcY pcY pcY -lSU -lSU -lSU -aSI -aRs -uRt -flN -sBW -rZt -nOB -rMI -rMI -asz -tRq -wdy -dTU -bZZ -dTU -twc -fNE -rZt -uvU -asz -asz -qNE -qNE -qNE -qNE -qNE -qNE -qNE -qNE -cEV -kSW -wwW -cBU -bJj -jrg -jrg -cBU -cBU -bJj -bJj -bJj -bJj -bJj -fXX -osE -gpz -amu -amu -amu -fXX -igJ -fXX -amu -puZ -"} -(52,1,1) = {" -puZ -puZ -puZ -puZ -puZ -anc -tYm -xQJ -xQJ -nTC -odz -bsM -edw -edw -qII -ntc -vYm -ntc +uKZ +hsw +aNp +bfR +oYH +oYH +pvv +pvv +pvv +pvv +pvv +pvv +pvv +pvv +pvv +pvv +pvv +pvv +pvv +gqe +uji +wNB +khx +jac +khx +iHu +jXD +tHd +kyD +kyD +tHd +tHd +huz +huz +huz +huz +huz +huz +mpt +axJ +rxd +sFv +axJ +rdS +hRC +huz +huz +sax +qCr +kAw +nZA +kAw +kAw +puZ +puZ +puZ +puZ +puZ +puZ +"} +(52,1,1) = {" +puZ +puZ +puZ +puZ +puZ +anc +tYm +cJu +cJu +nTC +pBL +bsM +edw +edw +qII +ntc +vYm +ntc ntc ntc ntc @@ -36571,79 +32456,79 @@ tlB wMh oRH xAS -elN +pGi jmW swV -aFO -wMh -xAS -wMh -pcY -pcY -xbn -qBn -rdp +tlB +oRH +oRH +tlB pcY pcY pcY pcY pcY -lSU -lSU -aOv -afF -rZt -rZt -gLv -afF -wBf -wnK -dTU -pkK -asz -emq -chU -kbZ -chU -gTv -chU -fNE -uvU -rZt -asz -asz -qNE -qNE -qNE -enh -enh -iSG -xNO -iSG -hRF -bax -wwW -wvS -cBU -bJj -bJj -cBU -cBU -bJj -bJj -bJj -qMc -bJj -rbq -osE -gpz -gpz -amu -amu -fXX -fXX -lAb -amu +uji +uji +uji +uji +uKZ +uKZ +uji +uji +uji +qLA +uji +uKZ +aVT +fRg +fRg +oYH +uKZ +bFS +ail +ail +ail +uKZ +uji +uji +iMA +iMA +iMA +uKZ +ehV +ofw +aQJ +kyD +kyD +tHd +kop +huz +cio +ieD +aKR +aDu +huz +axJ +rdS +rti +ieD +axJ +axJ +hIu +huz +huz +sax +sax +nZA +nZA +kAw +kAw +kAw +puZ +puZ +puZ +puZ puZ "} (53,1,1) = {" @@ -36654,10 +32539,10 @@ puZ puZ anc uot -xQJ -xQJ +cJu +cJu nTC -odz +pBL uCO bsM edw @@ -36733,79 +32618,79 @@ wMh wMh wMh oRH -aFO -pMV -aFO -aFO -wMh -wMh -pcY -pcY +tlB +xMs +tlB +oRH +tlB +oRH pcY -xbn -ppb -rdp pcY pcY pcY pcY pcY -lSU -lSU -tSI -rZt -gLv -rZt -gLv -afF -wBf -wnK -dTU -wnK -asz -kbZ -chU -gTv -sHf -tRq -chU -ogu -rZt -rZt -asz -asz -qNE -qNE -xNO -iSG -xNO -xNO -xNO -iSG -rwy -bBT -xrC -cBU -cBU -cBU -bJj -bJj -cBU -bJj -bJj -osE -bJj -bJj -bJj -amu -gpz -gpz -amu -amu -fXX -fXX -pLS -amu +uji +uji +fRg +aMs +bYV +lJh +loH +ppI +aMs +bKV +bKV +uKZ +nUa +bKV +bKV +bKV +iDW +bzh +fRg +fRg +fRg +fRg +aKS +fRg +ohq +mKB +cLq +iMA +avx +voo +tHd +kyD +kyD +tHd +tpg +exX +qIr +azS +qny +aDu +aut +kfW +axJ +axJ +axJ +axJ +axJ +rdS +huz +huz +sax +sax +nZA +nZA +kAw +kAw +kAw +puZ +puZ +puZ +puZ puZ "} (54,1,1) = {" @@ -36816,12 +32701,12 @@ puZ anc anc wls -xQJ +cJu emy nTC qkt -odz -odz +pBL +pBL anc anc anc @@ -36896,78 +32781,78 @@ wMh wMh oRH xAS -aFO -aFO +tlB +tlB wMh xAS -ntJ -pcY -pcY -pcY -xbn -qBn -rdp -wMh -wMh -wMh -ntJ +aFO pcY -lSU -lSU -afF -sBW -xDq -aSI -afF -aUT -asz -rMI -rMI -rMI -asz -emq -wnK -dTU -wnK -dTU -hfm -asz -rZt -rZq -asz -asz -rdQ -mmW -lLE -aSC -iSG -iSG -atJ -bax -bax -bBT -xrC -cBU -bJj -bJj -cBU -cBU -bJj -fjv -iTQ -osE -gpz -gpz -bJj -amu -gpz -gpz -amu -amu -fXX -fXX -amu -amu +gUc +xgH +xgH +xgH +gQJ +uji +uji +fRg +fRg +fRg +fRg +fRg +fRg +fRg +bKV +bKV +iMA +vHX +aWX +bKV +bKV +bsC +pvv +pvv +pvv +pvv +pvv +pvv +pvv +pvv +fRg +xQa +iMA +avx +kop +tHd +kyD +kyD +tHd +tpg +exX +alW +arW +anJ +dQq +hmo +rdS +axJ +dQq +axJ +axJ +axJ +axJ +huz +huz +sax +sax +nZA +nZA +kAw +kAw +kAw +puZ +puZ +puZ +puZ puZ "} (55,1,1) = {" @@ -37057,107 +32942,107 @@ aFO xAS oRH xAS +tlB +tlB +xAS aFO -aFO -aFO -wMh xAS -ntJ -pcY -pcY +aFO pcY -xbn -ppb -rdp -wMh -ntJ -wMh -wMh -wMh -lSU -aNL -nmi -afP -asz -asz -aTQ -asz -asz -wnK -dTU -wnK -asz -asz -qkL -fNE -fNE -asz -asz -asz -crF -crF -asz -asz -qNE -iSG -bax -aUQ -xNO -iSG -iSG -iSG -wwW -pPY -wwW -bJj -fjv -fjv -fjv -bJj -fjv -jrg -amu -osE -gpz -gpz -fXX -bJj -gpz -gpz -amu -amu -fXX -fXX -amu -puZ -puZ -"} -(56,1,1) = {" -puZ -puZ -puZ -puZ -anc -kTN -mCn -uRi -xQJ -qZa -xQJ -qZa -xQJ -nTC -tzu -mae -anc -mHP -ntc -azB -vYm -vYm -vYm -vYm -vYm +aGc +qkC +tzo +qkC +tGv +dtr +fRg +bKV +bKV +bKV +bKV +bKV +bKV +bKV +bKV +bKV +iMA +vHX +bKV +bKV +bKV +bsC +pvv +pvv +pvv +pvv +pvv +pvv +pvv +pvv +fRg +uKZ +uKZ +vqV +tHd +tHd +kyD +kyD +kyD +tHd +huz +pJM +ayZ +rdS +bqO +axJ +bqO +axJ +axJ +axJ +axJ +axJ +axJ +huz +huz +sax +sax +nZA +nZA +nZA +kAw +kAw +fNf +oFl +puZ +puZ +puZ +"} +(56,1,1) = {" +puZ +puZ +puZ +puZ +anc +nED +mCn +uRi +cJu +qZa +cJu +qZa +cJu +nTC +tzu +mae +anc +mHP +ntc +azB +vYm +vYm +vYm +vYm +vYm vYm vYm vYm @@ -37219,78 +33104,78 @@ aFO aFO xAS aFO +tlB +tlB +xAS aFO aFO aFO -wMh -wMh -ntJ -pcY -pcY -pcY -xbn -qBn -tyi -wMh -ntJ -ntJ -wMh -wMh -bXo -kxx -bIh -afQ -fNE -rZt -rZt -rZt -rZt -rZt -rZt -rZt -rkc -wnK -rZt -rZt -rZt -asz -asz -hMY -rZt -rZt -asz -asz -qNE -qPi -iSG -iSG -iSG -iSG -bax -iSG -wwW -pOy -wwW -jrg -cBU -fjv -fjv -fjv -jrg -jrg -amu -osE -gpz -osE -osE -bJj -gpz -amu -amu -amu -fXX -fXX -amu +xAS +aGd +aHd +aIG +tzo +aJk +fRg +fRg +bKV +bKV +aMK +aNl +aNl +aPn +bKV +bKV +tsU +uKZ +ocB +bKV +bKV +bKV +hDW +bAX +fRg +fRg +fRg +qXk +fRg +pvv +khz +fRg +iMA +nIA +scp +tHd +kyD +kyD +tHd +kyD +kyD +huz +aQq +axJ +axJ +axJ +axJ +jJZ +oXU +axJ +dQq +axJ +axJ +rdS +huz +huz +sax +sax +kAw +kAw +kAw +kAw +kAw +rBk +hip +puZ puZ puZ "} @@ -37310,7 +33195,7 @@ ffn xdT ryZ txS -pth +kRR anc gJI aEJ @@ -37378,81 +33263,81 @@ wMh wMh oRH oRH +xAS +tlB +tlB +hnj +tlB +tlB +xAS aFO aFO aFO -cou -aFO -aFO -xAS -wMh -pcY -jmW -pcY -pcY -aPX -dRi -abA -wMh -wMh -wMh -ntJ -wMh -asz -aNN -afN -afP -fNE -rZt -rZt -rZt -rZt -gGf -rZt -rZt -qVo -wnK -wnK -wnK -rZt -asz -asz -hLB -rZt -rZt -asz -asz -uil -iSG -ayJ -aSC -wwW -wwW -bax -wwW -wwW -cEV -rfv -jrg -amu -iTQ -amu -amu -amu -amu -amu -osE -gpz -osE -osE -bJj -gpz -amu -amu -amu -fXX -fXX -amu +aGd +tzo +qkC +tzo +aGd +fRg +fRg +bKV +bKV +bKV +bKV +kGz +bKV +bKV +ohE +bKV +uKZ +ahe +fRg +fRg +oYH +uKZ +bwk +cex +cex +cex +uKZ +xHu +pvv +pvv +oCG +kjM +oCG +kyD +kyD +kyD +tHd +ofw +tHd +kyD +huz +huz +avz +avz +axJ +axJ +alO +pJM +rgI +rdS +axJ +kLi +alP +huz +huz +sax +sax +kAw +kAw +nZA +kAw +kAw +kAw +puZ +puZ puZ puZ "} @@ -37462,10 +33347,10 @@ puZ puZ puZ anc -kTN +nED mCn -cce -xQJ +ctz +cJu qZa hKS qZa @@ -37546,75 +33431,75 @@ wMh wMh wMh aFO +tlB +xAS aFO xAS -wMh -jmW -jmW -wMh -wMh -wMh -ntJ -wMh -ntJ -wMh -wMh -ntJ -asz -asz -asz -asz -asz -asz -krT -rZt -rZt -rZt -gGf -bDx -asz -kXt -asz -wnK -rZt -asz -asz -kPX -rZt -rZt -asz -asz -qNE -nHp -bax -aUQ -wwW -wwW -bax -wwW -wwW -jrg -jrg -jrg -amu -igJ -fXX -fXX -fXX -fXX -fXX -osE -gpz -bJj -fXX -bJj -iTQ -amu -amu -amu -fXX -fXX -amu +aGb +tzo +qkC +tzo +aGd +fRg +fRg +bKV +bKV +pzj +pzi +bKV +bKV +bKV +bKV +bKV +oYH +bKV +bKV +bKV +bKV +oYH +bKV +bKV +bKV +bKV +iMA +sFR +pvv +pvv +oCG +wRm +oCG +kyD +kyD +kyD +szU +tHd +kyD +kyD +kop +ncS +pTp +pTp +rdS +axJ +alO +huz +qWL +aut +axJ +kLi +kLi +huz +huz +sax +sax +kAw +kAw +nZA +nZA +kAw +kAw +puZ +puZ puZ puZ "} @@ -37634,7 +33519,7 @@ bwJ nrU rZj txS -pth +kRR aEd ayc qta @@ -37709,74 +33594,74 @@ xAS wMh wMh aFO -aFO +tlB xAS -wMh -wMh -ntJ -ntJ -wMh -wMh -lAN -wMh -ntJ -ntJ -wMh -asz -abn -abF -abF -abF -acg -asz -aUU -aXh -mYX -bVr -aXh -aXh -bJf -rkc -wnK -rZt -hMY -asz -asz -crF -crF -asz -asz -xNO -iSG -iSG -iSG -iSG -wwW -xrC -xrC -iSG -enh -jrg -jrg -amu -lAb -fXX -fXX -fXX -fXX -fXX -fXX -bJj -bJj -gpz -osE -bJj -mwJ -bJj -fXX -fXX -fXX -amu +uji +aGe +tzo +tzo +aJj +aGd +fRg +fRg +bKV +bKV +aMK +aNl +aNl +aPn +bKV +bKV +bKV +fRg +bKV +bKV +bKV +bKV +uHA +bKV +bKV +rfd +bKV +iMA +hFJ +fRg +dZN +fRg +iMA +tLC +hye +tHd +kyD +tHd +kyD +kyD +tHd +kop +ncS +mRc +rdS +aXk +axJ +jFq +huz +qPh +rdS +axJ +axJ +sXt +huz +huz +sax +sax +kAw +kAw +nZA +nZA +nZA +kAw +puZ +puZ puZ puZ "} @@ -37786,14 +33671,14 @@ puZ puZ puZ anc -kTN +nED mCn -cce -xQJ +ctz +cJu qZa -xQJ +cJu qZa -xQJ +cJu nTC rSr aIv @@ -37872,73 +33757,73 @@ wMh aFO aFO aFO -aFO -aFO -wMh -wMh -ntJ -gvY -ntJ -qXC -wMh -wMh -wMh -wMh -asz -abp -abG -abJ -abG -ach -asz -aWC -aWs -qkR -eRG -sbd -wnK -aXH -rkc -wnK -rZt -fir -asz -asz -rZt -rZt -asz -asz -iSG -iSG -iSG -bax -bax -wwW -xrC -nRL -kSW -enh -jrg -jrg -amu -cur -fXX -fXX -amu -amu -iTQ -bJj -fXX -gpz -gpz -bJj -fXX -cuJ -fXX -bJj -fXX -fXX -amu +tlB +uji +ahX +qkC +tzo +qkC +mhS +dtr +fRg +bKV +bKV +bKV +bKV +bKV +bKV +bKV +bKV +bKV +fRg +bKV +bKV +bKV +bKV +fRg +bKV +bKV +bKV +bKV +uKZ +uKZ +iMA +iMA +iMA +uKZ +uKZ +ehV +tHd +kyD +kyD +kyD +tHd +tHd +kop +ncS +bWB +auh +aTO +hkS +itR +oNz +qOE +rdS +axJ +sYx +wFm +huz +huz +sax +sax +kAw +kAw +nZA +hrk +nZA +kAw +puZ +puZ puZ puZ "} @@ -38034,73 +33919,73 @@ wMh xAS xAS aFO -aFO -aFO -aFO -wMh -tRn -wMh -wMh -wMh -pyB -lAN -wMh -wMh -asz -abp -abJ -abJ -abJ -aSK -aTR -rMI -acY -rZt -bJi -rZt -wnK -aXH -rkc -wnK -wnK -asz -asz -dTj -rZt -rZt -tYA -fNE -iSG -aHz -iSG -bax -bax -eSc -xrC -cBs -xNO -enh -jrg -jrg -amu -amu -fXX -fXX -amu -jrg -osE -bJj -gpz -gpz -gpz -osE -bJj -iTQ -iTQ -amu -amu -amu -amu +xAS +uji +rXn +dsx +dsx +dsx +waS +uji +uji +fRg +fRg +pgh +fRg +fRg +fRg +lro +bKV +bKV +oYH +bKV +meg +bKV +bbi +beP +bKV +meg +bKV +bKV +eGG +bKV +bKV +ftr +obb +vHX +iMA +ehV +tHd +kyD +kyD +tHd +kop +kop +huz +huz +auh +bWB +qvY +gZZ +iof +aDu +qoY +axJ +axJ +wFm +sYx +huz +huz +sax +sax +nZA +kAw +nZA +nZA +nZA +kAw +puZ +puZ puZ puZ "} @@ -38111,13 +33996,13 @@ puZ puZ anc anc -cce -xQJ -xQJ +ctz +cJu +cJu nTC -odz -odz -odz +pBL +pBL +pBL anc anc anc @@ -38197,70 +34082,70 @@ vXw wMh xAS aFO -aFO -aFO -aFO -wMh -kSO -thK -xog -kqE -wMh -wMh -wMh -asz -aNP -abJ -abG -abJ -abJ -rZt -kxx -oZs -bJi -bJi -bJi -wnK -bQx -asz -asz -qkL -asz -asz -rZt -rZt -iEF -cYC -fNE -iSG -iSG -bax -wwW -xrC -xrC -xrC -iSp -xNO -xNO -enh -jrg -jrg -amu -fXX -fXX -amu -jrg -bJj -gpz -bJj -bJj -bJj -osE -bJj -amu -puZ -puZ -puZ +uji +uji +uji +uji +uji +uji +uji +uji +uji +aKL +uji +aNh +aLs +uji +uji +iMA +iMA +uKZ +oYH +gxK +fRg +oYH +uKZ +iMA +iMA +uji +uKZ +uKZ +bKV +okc +bKV +krm +iXx +iMA +ehV +kop +tHd +kyD +nAs +kop +ajE +huz +qSW +arZ +aIh +aPf +gtx +aTO +oww +qmv +axJ +axJ +axJ +axJ +huz +huz +sax +sax +kAw +kAw +hrk +kAw +nZA +kAw puZ puZ puZ @@ -38274,10 +34159,10 @@ puZ puZ anc kbl -xQJ +cJu nrB nTC -odz +pBL bsM edw iVj @@ -38359,89 +34244,89 @@ hPp pcY wMh xAS -aFO -aFO -nhF -aFO -rJI -pvR -vjg -wiG -wMh -ntJ -wMh -asz -aNR -abJ -abG -abJ -abJ -rZt -kxx -oZs -bJi -bJi -ahZ -eRG -aXH -rZt -rZt -rZt -hAX -crF -rZt -rZt -rZt -fhd -fNE -iSG -iSG -bax -wwW -xrC -xrC -xrC -xrC -xNO -xNO -enh -jrg -jrg -amu -eom -fXX -amu -osE -osE -bJj -bJj -bJj -bJj -bJj -bJj -amu -puZ -puZ -puZ -puZ -puZ -puZ -puZ -"} -(64,1,1) = {" -puZ -puZ -puZ -puZ -puZ -anc -dxh -xQJ -xQJ -nTC -odz -edw -bsM +uji +uji +uji +uji +uji +uji +uji +uji +aLk +bKV +bKV +aNg +bKV +aOb +uji +snX +fRg +aKS +fRg +fRg +dLk +fRg +aKS +fRg +fRg +fRg +rIj +uKZ +giH +uji +iMA +iMA +iMA +uKZ +ehV +kop +tHd +kyD +kyD +tHd +ajd +huz +fjS +anJ +aGf +aNE +ggr +hLE +qvY +qkQ +axJ +axJ +axJ +axJ +huz +huz +sax +iZj +kAw +kAw +hrk +kAw +nZA +kAw +hrk +puZ +puZ +puZ +"} +(64,1,1) = {" +puZ +puZ +puZ +puZ +puZ +anc +dxh +cJu +cJu +nTC +pBL +edw +bsM iVj qII eni @@ -38521,71 +34406,71 @@ pcY pcY wMh xAS -aFO -aFO -aFO -wMh -rJI -gso -aJd -ntJ +tPB wMh wMh +ntJ +ntJ +ntJ wMh -asz -abp -abJ -abJ -abJ -abJ -rZt -rMI -oZs -azm -bJi -rZt -wnK -aXH -rZt -rZt -rZt -dwQ -crF -rZt -rZt -rZt -rZt -fNE -iSG -iSG -wwW -xrC -wwW -jjq -iYu -eMx -xNO -xNO -jrg -jrg -jrg -amu -fXX -fXX -amu -osE -osE -gpz -bJj -jrg -bJj -bJj -gpz -osE -puZ -puZ -puZ -puZ +iMA +aKQ +bKV +bKV +omu +aFr +uji +uji +pvv +kJw +pvv +pvv +pvv +pvv +pvv +sYh +pvv +pvv +pvv +pvv +eGs +fRg +uji +xwo +jhm +bHC +bHC +iKW +tHd +kyD +kyD +kyD +kyD +qIr +oWk +qIr +anG +axJ +axJ +ggh +rdS +owe +axJ +rdS +axJ +axJ +axJ +huz +huz +sax +kAw +kAw +nZA +nZA +kAw +kAw +kAw +hrk puZ puZ puZ @@ -38683,71 +34568,71 @@ pcY jmW wMh aFO -aFO -aFO +tPB wMh -ntJ -rJI -gso -faR -ntJ wMh wMh +ntJ +ntJ wMh -asz -abp -abG -abJ -abG -acj -asz -aUX -aWB -gTU -wnK -wnK -wnK -aXH -rZt -rZt -rZt -asz -asz -rZt -rZt -hCY -hCY -fNE -iSG -iSG -xrC -wwW -bax -iSG -xrC -xrC -xNO -jrg -jrg -jrg -jrg -amu -fXX -fXX -amu -iTQ -bJj -gpz -bJj -jrg -bJj -bJj -gpz -osE -puZ -puZ -puZ -puZ +iMA +aJM +aJU +bKV +aLk +bMK +uji +snX +pvv +aSA +pvv +vFR +eVG +pvv +pvv +pvv +aSA +pvv +pvv +pvv +pvv +fRg +hvZ +tHd +xvp +tHd +xvp +tHd +kyD +tHd +kyD +kyD +kyD +qIr +oWk +qIr +ans +ans +aMW +fMq +aut +axJ +rdS +aut +huz +huz +huz +huz +huz +hrk +kAw +hrk +hrk +nZA +kAw +kAw +nZA +nZA puZ puZ puZ @@ -38845,70 +34730,70 @@ pcY jmW wMh nuy -nuy -aFO +vgR wMh ntJ -rJI -gso -qIu -ntJ ntJ wMh +ntJ wMh -asz -abx -abM -abM -abM -ack -asz -aUY -vjs -aXw -kaL -wnK -wnK -aXH -rZt -rZt -rZt -fNE -ril -rZt -iEF -far -nVL -fNE -iSG -wwW -xrC -wwW -wwW -enh -xNO -xNO -jrg -jrg -jrg -jrg -jrg -amu -fXX -fXX -osE -osE -gpz -gpz -jrg -jrg -bJj -bJj -osE -osE -puZ -puZ -puZ +uKZ +iMA +iMA +uji +uji +uji +uji +fRg +pvv +pvv +aTh +aVx +aWI +aYd +baX +bcJ +pvv +pvv +pvv +aSA +pvv +fRg +hvZ +tHd +kyD +kyD +kyD +kyD +tHd +kyD +kyD +kyD +kyD +qIr +akF +alS +ans +axJ +axJ +fbf +fbf +ook +hAS +aDu +huz +huz +huz +huz +huz +kAw +kAw +nZA +nZA +nZA +kAw +kAw +nZA puZ puZ puZ @@ -39007,118 +34892,118 @@ wMh wMh aFO nuy -nuy -aFO +hBq wMh -tRn -aNy -xtc -ggv +pcY ntJ +jmW +wMh ntJ wMh +fEl wMh -asz -asz -asz -asz -asz -asz -asz -ufb -wnK -jaU -uEx -bJi -bJi -aXH -rZt -rZt -rZt -fNE -mWA -rZt -iEF -etV -tNN -fNE -wwW -wwW -xrC -wwW -wwW -enh -enh -jrg -jrg -jrg -jrg -jrg -jrg -amu -fXX -fXX -osE -osE -bJj -bJj -jrg -jrg -jrg -bJj -bJj -bJj -puZ -puZ -puZ -puZ -puZ -puZ -puZ -"} -(68,1,1) = {" -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -aLJ -bKF -eni -ntc -kOV -eni -kOV -mMK -pWf -pWf -pWf -pWf -pWf -pWf -pWf -pWf -pWf -pWf -toD -eni -aHb -eni -ntc -ntc -ntc -ntc -kOV -aEJ -kOV -aEJ -eni -eni -aCD +hBq +lRJ +uKZ +fRg +gxK +pvv +pvv +aUw +fof +aWQ +aVN +aVN +aVN +bqN +aVN +dbH +wTz +pvv +fRg +hvZ +kyD +tHd +kyD +kyD +kyD +kyD +kyD +tHd +kyD +kyD +qIr +exX +qIr +rdS +rdS +axJ +axJ +axJ +bsS +pKf +iYC +huz +huz +oBV +pRU +hrk +hrk +kAw +nZA +nZA +nZA +kAw +kAw +nZA +puZ +puZ +puZ +puZ +"} +(68,1,1) = {" +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +aLJ +bKF +eni +ntc +kOV +eni +kOV +mMK +pWf +pWf +pWf +pWf +pWf +pWf +pWf +pWf +pWf +pWf +toD +eni +aHb +eni +ntc +ntc +ntc +ntc +kOV +aEJ +kOV +aEJ +eni +eni +aCD gNM aMu azy @@ -39169,70 +35054,70 @@ aFO aFO aFO aFO -aFO -aFO -aFO wMh -ofr -nJu -tze -wMh -wMh -ntJ wMh pcY pcY -pcY -pcY -pcY -pcY -asz -asz -asz -ahu -qfI -bJi -bJi -nAp -rZt -asz -asz -asz -asz -qkL -asz -asz -asz -asz -wwW -wwW -iSG -enh -enh -jrg -jrg -jrg -jrg -jrg -jrg -jrg -jrg -amu -amu -amu -bJj -fXX -gpz -bJj -bJj -jrg -jrg -bJj -gpz -osE -puZ -puZ -puZ +jmW +jmW +wMh +wMh +fEl +upK +hBq +hBq +uKZ +fRg +fRg +pvv +aTh +aUx +aVM +aWS +rNx +bbg +rNx +aWS +bYO +aWQ +dbH +wvx +fRg +hvZ +tHd +kyD +tHd +kyD +kyD +kyD +tHd +rli +aQJ +kyD +huz +huz +kLi +amI +aCy +rdS +axJ +axJ +nTu +hAS +sjh +huz +huz +tuA +kAw +hrk +hrk +kAw +kAw +kAw +nZA +kAw +kAw +nZA puZ puZ puZ @@ -39331,70 +35216,70 @@ tPs aFO aFO aFO -aFO -aFO -aFO -aFO -wMh -aFO -aFO -jmW wMh -lAN -ntJ wMh -cQY -skK -kSO -xog pcY pcY -asz -asz -asz -tpL -orO -orO -tJY -asz -asz -asz -gSJ -bJi -bJi -bJi -asz -xvd -lVJ -iSG -wwW -iSG -enh -jrg -jrg -jrg -jrg -jrg -jrg -jrg -jrg -jrg -jrg -jrg -jrg -bJj -fXX -bJj -bJj -gpz -bJj -bJj -bJj -gpz -bJj -puZ -puZ -puZ +pcY +pcY +pcY +pcY +pcY +lAN +nyc +tlB +uKZ +wUy +fRg +pvv +aTi +aUy +aVL +aWT +aVL +bOh +aVL +aWS +aVL +aVL +dCS +eoH +fRg +hvZ +kyD +kyD +tHd +kyD +kyD +tHd +qLS +ofw +jMf +tHd +huz +huz +dLi +amH +qsN +aMN +faH +hHf +nTu +qsN +iYC +huz +huz +dWO +hbB +kAw +hrk +kAw +kAw +kAw +kAw +kAw +oBV +nZA puZ puZ puZ @@ -39494,67 +35379,67 @@ aFO aFO aFO aFO -cou -aFO -aFO -aFO -aFO -aFO -aFO -aFO -wMh wMh -wMh -cQY -ntJ -aNy -xtc pcY pcY -asz -crF -aXH -bJi -crF -crF -tHD -uEx -crF -fNE -hyx -xFp -xFp -sHL -asz -lVN -iSG -iSG -wwW -iSG -enh -jrg -jrg -jrg -jrg -jrg -jrg -jrg -jrg -jrg -jrg -jrg -jrg -bJj -gpz -bJj -gpz -gpz -gpz -bJj -bJj -bJj -bJj -puZ +pcY +pcY +pcY +pcY +hBq +tlB +hBq +tlB +uKZ +xHu +fRg +pvv +aTj +cov +eHL +aWS +rPa +baY +rPa +aWS +fXp +aWU +deV +uyI +fRg +hvZ +kyD +kyD +kyD +kyD +kyD +kyD +tHd +ofw +kop +kyD +huz +huz +huz +huz +huz +huz +huz +huz +huz +huz +huz +huz +huz +nNX +hbB +kAw +kAw +kAw +hrk +kAw +kAw +jzs puZ puZ puZ @@ -39655,101 +35540,101 @@ aFO aFO wMh aFO -nuy -aFO -aFO -aFO -xAS -aFO -aFO -aFO -aFO aFO -wMh -wMh -pei -wMh -xfZ -ntJ pcY pcY -asz -crF -aXH -tHD -crF -crF -tHD -uEx -crF -fNE -qud -tZA -ctC -ctC -asz -asC -asC -iSG -asC -asC -jrg -jrg -jrg -jrg -jrg -jrg -jrg -jrg -jrg -jrg -jrg -jrg -jrg -bJj -gpz -gpz -gpz -gpz -gpz -gpz -gpz -gpz -bJj -bJj -puZ -puZ -puZ -puZ -puZ -puZ -"} -(72,1,1) = {" -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -aEr -ayj -eni -ntc -kOV -eni -kOV -toD -pWf -pWf -pWf -pWf -toD -pWf -pWf -kOV -kOV +pcY +pcY +pcY +pcY +nyc +hBq +xCD +hBq +tlB +uKZ +uwS +fRg +pvv +pvv +aUw +xyY +aWU +aVx +aVx +aVx +bqN +aUA +deV +pti +pvv +fRg +hvZ +tHd +kyD +kyD +kyD +kyD +kyD +tHd +jMf +tHd +kyD +kyD +huz +huz +huz +huz +huz +huz +huz +huz +huz +huz +huz +huz +dWO +hbB +kAw +kAw +kAw +hrk +kAw +nZA +kAw +puZ +puZ +puZ +puZ +puZ +puZ +"} +(72,1,1) = {" +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +aEr +ayj +eni +ntc +kOV +eni +kOV +toD +pWf +pWf +pWf +pWf +toD +pWf +pWf +kOV +kOV afC eni eni @@ -39817,68 +35702,68 @@ cou wMh wMh wMh -aFO -aFO -aFO -xAS wMh -jmW -aFO -aFO -aFO -aFO -aFO -aFO -cQY -mbt -mbt -mbt pcY pcY -asz -asz -asz -uOc -pCI -gmV -vTc -asz -asz -asz -fNE -fNE -fNE -fNE -asz -kVd -kVd -uzu -xgc -uzu -jrg -jrg -jrg -jrg -jrg -jrg -jrg -jrg -jrg -jrg -jrg -jrg -jrg -osE -gpz -gpz -gpz -gpz -bJj -bJj -bJj -gpz -bJj -bJj +pcY +pcY +pcY +hBq +nyc +hBq +cps +tlB +tlB +uKZ +oIR +fRg +pvv +pvv +aTj +aVN +aWV +aYx +bbh +beK +aSA +gIQ +oXM +pvv +pvv +fRg +hvZ +tHd +tHd +kyD +kyD +kyD +kyD +kyD +tHd +tHd +kyD +kyD +kyD +lXQ +cwZ +kAw +kAw +nZA +kAw +kAw +hrk +hrk +hrk +acl +kAw +kAw +hrk +kAw +kAw +kAw +kAw +kAw +puZ puZ puZ puZ @@ -39980,67 +35865,67 @@ wMh jmW jmW wMh -aFO -aFO -aFO -wMh -tJP -lAN -aFO -aFO -aFO -aFO -wMh -wMh -wMh -wMh -wMh -wMh pcY pcY -siZ -ukp -kVd -kVd -boW -boW -boW -siZ -dkv -xgc -kVd -kVd -rAH -rAH -kVd -uzu -boW -xgc -uzu -jrg -jrg -jrg -jrg -jrg -jrg -jrg -jrg -jrg -jrg -jrg -jrg -jrg -bJj -gpz -bJj -bJj -jrg -bJj -bJj -bJj -bJj -bJj -bJj +pcY +pcY +pcY +hBq +hBq +tlB +aFO +hBq +hBq +uKZ +rIj +wCn +pvv +pvv +pvv +pvv +pvv +mOY +drM +pvv +aSA +uaa +pvv +pvv +pvv +fRg +hvZ +tHd +xvp +tHd +xvp +tHd +tHd +kyD +tHd +kyD +kyD +tHd +kyD +jWh +cwZ +kAw +kAw +kAw +kAw +nZA +hrk +hrk +nZA +hRY +hrk +nZA +nZA +nZA +kAw +kAw +kAw +nDv +puZ puZ puZ puZ @@ -40142,68 +36027,68 @@ jmW jmW jmW wMh -aFO -aFO -aFO -xAS +pcY +pcY +pcY +pcY tJP -wMh -aFO -aFO -wMh -wMh -wMh -wMh -ntJ -ntJ -wMh -wMh -ukp -kVd -ckH -lIa -lIa -qjY -qjY -qjY -qjY -tsK -qjY -tsK -lIa -oHf -oHf -oHf -lIa -qjY -tsK -tsK -ckH -jrg -jrg -jrg -jrg -jrg -jrg -jrg -jrg -jrg -jrg -jrg -jrg -bJj -bJj -gpz -bJj -jrg -jrg -bJj -bJj -bJj -bJj -bJj -bJj -bJj +nyc +tlB +xAS +xCD +xAS +hBq +uKZ +rIj +ohq +pvv +pvv +pvv +tXL +pvv +pvv +pvv +pvv +pvv +pvv +pvv +hZI +pvv +fWq +uji +iOA +ofw +jMf +tHd +kop +kop +kyD +kyD +tHd +tHd +tHd +tHd +fpF +wSv +kAw +kAw +kAw +kAw +kAw +nZA +nZA +nZA +aco +hrk +nZA +nZA +nZA +kAw +nZA +nZA +puZ +puZ +puZ puZ puZ puZ @@ -40304,78 +36189,78 @@ wMh jmW wMh wMh -aFO +wMh +pcY +pcY +tlB +hBq +tlB +xAS aFO xAS xAS -tJP -faW -faW -faW -jmW -wMh -wMh -wMh -ntJ -ntJ -wMh -wMh -kVd -kVd -kVd -kVd -kVd -boW -boW -boW -boW -xgc -boW -xgc -xgc -kVd -rAH -rAH -kVd -xgc -kVd -ukp -jrg -jrg -jrg -jrg -jrg -jrg -jrg -jrg -jrg -jrg -jrg -bJj -bJj -bJj -osE -bJj -bJj -jrg -jrg -bJj -bJj -osE -bJj -bJj -bJj -bJj -puZ -puZ -puZ -puZ -puZ -"} -(76,1,1) = {" -puZ -puZ -puZ +oRH +uKZ +uKZ +uKZ +fRg +fRg +fRg +fRg +fRg +fRg +oZR +fRg +iXc +fRg +bxL +bxL +gGc +rzR +uji +qrY +qrY +qrY +hHR +hHR +xCz +uxZ +uxZ +uxZ +lWC +hHR +hHR +sax +sax +sax +hrk +kAw +kAw +kAw +kAw +kAw +kAw +teK +hrk +hrk +hrk +kAw +nZA +nZA +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +"} +(76,1,1) = {" +puZ +puZ +puZ puZ puZ puZ @@ -40467,67 +36352,67 @@ wMh ntJ wMh aFO +hBq +xAS +xAS +xAS +xAS +xAS aFO -cpC -lfe -pcY -pcY -pcY -pcY -mTN +oRH nzr -uZF -wMh -wMh -ntJ -ntJ -wMh -kVd -kVd -xgc -xgc -boW -boW -boW -xgc -boW -xgc -xgc -rAH -xgc -xgc -rAH -rAH -kVd -xgc -uzu -mhs -jrg -jrg -jrg -jrg -jrg -jrg -jrg -jrg -jrg -jrg -bJj -bJj -jrg -bJj -bJj -bJj -iel -jrg -jrg -bJj -bJj -osE -bJj -bJj -jrg -bJj +xAS +oRH +hBq +uKZ +uKZ +uji +gpF +oYH +fUP +uji +uKZ +iMA +iMA +iMA +uKZ +uKZ +uKZ +uKZ +uji +ofw +ofw +jMf +tHd +kop +kop +kyD +kyD +kyD +tHd +kop +gzb +sax +sax +sax +bcV +oFl +kAw +kAw +kAw +hrk +bcV +tFd +hrk +hrk +kAw +nZA +nZA +nZA +puZ +puZ +puZ +puZ puZ puZ puZ @@ -40627,69 +36512,69 @@ ntc xAS wMh wMh -wMh -jmW -wMh -wMh -kSO -xog -pcY -pcY -pcY -kSO -xog +aFO +aFO +aFO +aFO +xAS +aFO +aFO +aFO +xAS +xAS +aFO wTx -wMh -wMh -ntJ -wMh -vnr -kVd -kVd -dyt -dyt -fHx -xgc -boW -boW -xgc -boW -boW -boW -xgc -xgc -kVd -rAH -rAH -uzu -kVd -jrg -jrg -jrg -jrg -jrg -jrg -jrg -jrg -bJj -bJj -bJj -bJj -bJj -osE -osE -bJj -bJj -bJj -mie -jrg -bJj -bJj -gpz -bJj -bJj -bJj -bJj +xAS +fOa +aFO +aFO +uji +uKZ +jLX +uKZ +uji +tHd +rtZ +tHd +tHd +rtZ +kop +kop +xvp +tHd +jMf +xvp +kop +kop +kop +tHd +kyD +kyD +kyD +tHd +kop +bhN +fCs +sax +sax +rBk +vAU +kAw +kAw +kAw +tad +tlr +tuz +tFy +hrk +kAw +nZA +nZA +puZ +puZ +puZ +puZ +puZ puZ puZ puZ @@ -40789,68 +36674,68 @@ toD jmW wMh wMh -jmW +aFO +aFO +aFO +aFO +aFO xAS xAS -pcY -aNy -xtc -pcY -pcY -pcY -aNy -xtc -qKA -ntJ -wMh -wMh -ntJ -ntJ -kVd -kVd -boW -boW -xgc -boW -boW -boW -boW -boW -boW -boW -boW -kVd -xgc -rAH -rAH -uzu -kVd -jrg -jrg -jrg -jrg -jrg -jrg -jrg -jrg -bJj -jrg -bJj -bJj -bJj -osE -osE -bJj -gpz -bJj -bJj -jrg -gpz -gpz -bJj -bJj -bJj -bJj +xAS +aFO +aFO +aFO +aFO +oRH +xAS +aFO +aFO +wwZ +qnJ +jOi +qnJ +mkC +kyD +kyD +kyD +kyD +kyD +kyD +kyD +kyD +tHd +iMC +kyD +kyD +tHd +tHd +kyD +tHd +kyD +kyD +tHd +kop +bhN +fCs +sax +sax +sax +sax +kAw +kAw +kAw +acl +rBk +vAU +hrk +kAw +nZA +nZA +nZA +puZ +puZ +puZ +puZ puZ puZ puZ @@ -40951,68 +36836,68 @@ kOV wMh wMh wMh -ntJ -pcY -pcY -pcY -pcY -pcY -pcY -pcY -pcY -pcY -gXW -muI -wMh wMh -eKp -mda +oRH wMh -wRL -kVd +xAS +xAS +xAS +aFO +aFO +xAS +xAS +xAS +xAS +xAS +aFO +aFO +aFO +wLM ajy -boW -akf -boW -boW -boW -boW -boW -boW -boW -boW -boW -xgc -xgc -kVd -kVd -uzu -ukp -jrg -jrg -jrg -jrg -jrg -jrg -xgc -ukp -ukp -kVd -kVd -bJj -bJj -bJj -bJj -gpz -dhx -bJj -osE -gpz -gpz -bJj -bJj -bJj -bJj +jOi +ajy +ppS +kyD +kyD +kyD +kyD +kyD +kyD +kyD +kyD +kyD +kyD +kyD +kyD +kyD +kyD +kyD +kyD +kyD +kyD +tHd +kop +lip +sax +sax +sax +sax +kAw +kAw +nZA +kAw +aco +kAw +hrk +kAw +nZA +nZA +nZA +puZ +puZ +puZ +puZ +puZ puZ puZ puZ @@ -41114,66 +36999,66 @@ pcY pcY wMh wMh -ntJ wMh +oRH +oRH +xAS wMh -pcY -bQX -wMh -cBX -wMh -wMh -hlh -wMh -wMh -pcY -pcY -pcY -acc -kVd -kVd -boW -boW -boW -boW -boW -boW -boW -boW -boW -fHx -boW -boW -kVd -xgc -rAH -kVd -kVd -uzu -ukp -jrg -jrg -jrg -jrg -jrg -ukp -kVd -xgc -xgc -rAH -kVd -bJj -bJj -bJj -bJj -bJj -bJj -gpz -gpz -bJj -bJj -jrg -bJj +aFO +xAS +oRH +xAS +xAS +aFO +aFO +aFO +aFO +aFO +wLM +ajy +jOi +ajy +ppS +kyD +kyD +kyD +kyD +kyD +kyD +tHd +tHd +kyD +tHd +tHd +kyD +kyD +kyD +kyD +kyD +kyD +kyD +kyD +tHd +ofw +sax +hrk +llZ +kAw +nZA +nZA +nZA +kAw +aco +kAw +kAw +kAw +nZA +kAw +puZ +puZ +puZ +puZ +puZ puZ puZ puZ @@ -41275,67 +37160,67 @@ aby pcY pcY wMh -wMh -wMh -wMh -wMh -wMh -wMh -wMh -hlh -hPp -hPp -hPp -hPp -hPp -hPp -hPp -pcY -pcY -kVd -kVd -dyt -dyt -fHx -boW -boW -boW -boW -boW -boW -dyt -boW -boW -boW -rAH -xgc -kVd -kVd -uzu -ukp -jrg -jrg -ukp -ukp -jrg -uzu -xgc -xgc -xgc -xgc -uzu -rAH -osE -bJj -bJj -bJj -bJj -gpz -gpz -bJj -bJj -bJj -bJj +hBq +vCe +oRH +oRH +xAS +xAS +aFO +aFO +xAS +xAS +oRH +xAS +xAS +aFO +aFO +aFO +wLM +ajy +jOi +ajy +ppS +tHd +tHd +tHd +kop +aQJ +kop +eyx +kop +tHd +kop +kop +tHd +kyD +kyD +kyD +kyD +kyD +kyD +kyD +kyD +kyD +grk +hrk +kAw +qgP +kAw +nZA +qgP +kAw +aco +kAw +nZA +kAw +kAw +nZA +puZ +puZ +puZ +puZ +puZ puZ puZ puZ @@ -41437,65 +37322,65 @@ abz pcY wMh wMh -jmW -wMh -ntJ -wMh -ntJ -hlh +ulI +hBq +mzf +oRH wMh -jmW -hPp -aMy -mnZ -pwT -mnZ -qKn -hPp -pcY -pcY -ukp -kVd -boW -boW -boW -boW -boW -xgc -boW -boW -boW -dyt -boW -boW -boW -kVd -xgc -rAH -uzu -uzu -uzu -ukp -ukp -uzu -uzu -fkB -xgc -uzu -rAH -rAH -uzu -rAH -kVd -osE -bJj -bJj -bJj -gpz -bJj -bJj -bJj -bJj +xAS +aFO +xAS +xAS +oRH +tlB +oRH +oRH +xAS +aFO +aFO +lCg +ajy +jOi +ajy +lGT +jMf +tHd +kop +jMf +sJo +ofw +etl +fLi +gGT +kop +tHd +xvp +kyD +kyD +kyD +tHd +kyD +kyD +kyD +tHd +oDi +nRD +kAw +vPr +kAw +nZA +nZA +sax +kAw +acp +kAw +nZA +nZA +kAw +nZA +puZ +puZ +puZ puZ puZ puZ @@ -41601,62 +37486,62 @@ ntJ wMh wMh wMh -ntJ -ntJ -ntJ wMh -sFj -hPp -hPp -quO +vzM +wMh +xAS +aFO +aFO +jNr +xAS pwT -hVr +tlB sud ggC -hPp -pcY -ukp -rAH -kVd -boW -boW -boW -boW -boW -boW -xgc -boW -boW -boW -boW -boW -boW -xgc -xgc -kVd -kVd -kVd -uzu -ukp -pLf -rAH -rAH -oHf -rAH -kVd -rAH -kVd -rAH -rAH -bJj -bJj -bJj -gpz -gpz -osE -bJj -bJj -bJj +xAS +aFO +uir +bni +bni +bni +uir +ofw +jMf +tHd +kop +jMf +gGT +kop +rli +kop +kop +tHd +kyD +kyD +kyD +tHd +kyD +tHd +kyD +kyD +kyD +tHd +kjX +kAw +vPr +qgP +vPr +sax +sax +sax +sax +kAw +nZA +nZA +kAw +puZ +puZ +puZ puZ puZ puZ @@ -41767,56 +37652,56 @@ jmW wMh ntJ ntJ -swn -hPp -aKo -qBN -jOi -jOi -jOi -fGb -hPp -xgc -rAH -xgc -kVd -boW -boW -boW -boW -xgc -boW -boW -boW -boW -boW -boW -boW -xgc -xgc -xgc -kVd -kVd -plS -uzu -uzu -rAH -rAH -rAH -fkB -xgc -rAH -kVd -kVd -bJj -bJj -bJj -osE -osE -gpz -osE -bJj -bJj +oRH +oRH +oRH +oRH +oRH +oRH +tlB +tlB +tlB +tHd +kwa +kwa +kyD +kyD +kyD +kyD +kyD +tHd +kyD +kyD +kyD +kyD +kyD +kop +kop +kop +tHd +tHd +jMf +jMf +qLS +ofw +ofw +kop +kyD +kop +hbp +kAw +llZ +nZA +nZA +acl +kAw +kAw +hrk +hrk +nZA +hrk +kAw +kAw puZ puZ puZ @@ -41930,55 +37815,55 @@ wMh jmW ntJ wMh -bni -jOi -txO -jOi -jOi -jOi -jOi -bni -xgc -xgc -boW -xgc -ajy -boW +oRH +oRH +oRH +oRH +oRH +tlB +hBq +tlB +tHd +qrY +kyD +kwa +kyD +kyD akf -boW -boW -xgc -boW -boW -boW -boW -boW -boW -xgc -kVd -kVd -kVd -plS +fDH +kyD +tHd +kyD +kyD +kyD +kop +kop +kop +kop +jMf +jMf +jMf +qLS bRU -uzu -rAH -ukp -uzu -rAH -fkB -uzu -uzu -uzu -ukp -bJj -bJj -bJj -osE -gpz -gpz -gpz -bJj -bJj +ofw +kop +mwE +ofw +kyD +hbp +kAw +kAw +jaT +hrk +aco +kAw +qgP +hrk +nZA +nZA +nZA +kAw +kAw puZ puZ puZ @@ -42092,54 +37977,54 @@ pcY wMh wMh wMh -bni -jOi -jOi -jOi -jOi -jOi -jOi -bni -rAH -rAH -boW -boW -boW -boW -boW -boW -boW -boW -boW -boW -boW -boW -boW -boW -kVd -uzu -kVd -kVd -kVd -uzu -plS -rAH -rAH -rAH -rAH -rAH -ckH -ukp -ukp -jrg -bJj -bJj -jrg -osE -gpz -gpz -osE -bJj +oRH +kAm +hBq +kAm +hBq +hBq +xAS +oRH +kop +qrY +kyD +kyD +kyD +kyD +kyD +kyD +kyD +kyD +kyD +kyD +kyD +kyD +kyD +kyD +jMf +ofw +jMf +jMf +jMf +ofw +qLS +kop +kyD +kop +kyD +mxr +kAw +vPr +vPr +nZA +acp +kAw +sax +hrk +nZA +nZA +hrk +kAw puZ puZ puZ @@ -42251,57 +38136,57 @@ wMh ntJ pcY pcY -kVd -kVd -kVd -hPp -hPp -hPp -hPp -hPp -hPp -hPp -hPp -rAH -xgc -xgc -boW +jMf +jMf +jMf +kAm +oRH +hBq +oRH +hBq +xAS +tlB +oRH +kop +qrY +kyD +kyD dyt dyt -boW -boW -boW -boW -boW -boW -boW -boW -xgc -boW -xgc -xgc -kVd -kVd -kVd -uzu -kVd -uzu +kyD +kyD +kyD +kyD +kyD +kyD +kyD +kyD +tHd +kyD +tHd +tHd +jMf +jMf +jMf +ofw +jMf +ofw bhB -rAH -rAH -ukp -jrg -jrg -jrg -jrg -jrg -bJj -bJj -osE -bJj -bJj -bJj -bJj +kop +kop +gss +sax +sax +sax +sax +sax +kAw +kAw +hrk +kAw +kAw +kAw +kAw puZ puZ puZ @@ -42413,57 +38298,57 @@ jmW pcY pcY pcY -rAH -rAH -rAH -siZ -pFq -fVl -qOP -aMZ -uzu -xgc -siZ -rAH -xgc -xgc -boW -boW +kop +kop +kop +kop +kop +kop +kop +kop +jMf +kop +ofw +kop +kyD +kyD +kyD +kyD fHx -boW -xgc -boW -boW -boW -boW -boW -boW -boW -boW -xgc -xgc -kVd -kVd -xgc -kVd -rAH -kVd -uzu -uzu -ddA -kVd -ukp -jrg -jrg -jrg -jrg -jrg -bJj -osE -bJj -bJj -bJj -bJj +kyD +tHd +kyD +kyD +kyD +kyD +kyD +kyD +kyD +kyD +tHd +tHd +jMf +jMf +tHd +jMf +kop +jMf +ofw +ofw +rgy +jMf +gss +sax +sax +sax +sax +sax +kAw +hrk +kAw +kAw +kAw +kAw puZ puZ puZ @@ -42575,56 +38460,56 @@ wMh pcY pcY pcY -rAH -rAH -rAH -kVd -kVd -kVd -kVd -kVd -kVd -kVd -kVd +kop +kop +kop +kop +kop +jMf +kop +ofw +jMf +jMf +jMf agy -boW -boW -boW -boW -boW -boW -boW -xgc -boW -boW -boW -boW -xgc -boW -boW -rAH -rAH -aaf -rAH -rAH -ddA -xgc -rAH -uzu -msh -uzu -uzu -rAH -ukp -jrg -jrg -jrg -jrg -jrg -osE -gpz -gpz -bJj +kyD +kyD +kyD +kyD +qrY +kyD +kyD +tHd +kyD +kyD +kyD +kyD +tHd +kyD +kop +kop +kop +bnD +kop +kop +rgy +tHd +kop +ofw +oxP +ofw +ofw +kop +mwE +sax +sax +sax +sax +sax +hrk +nZA +nZA +kAw puZ puZ puZ @@ -42737,61 +38622,61 @@ wMh pcY pcY pcY -rAH -rAH -rAH -kVd -uzu -kVd -uzu -kVd -uzu -kVd -rAH -xgc -ajy -boW -xgc -boW -boW -boW -boW -boW -boW -boW -boW -xgc -boW -boW -boW -kVd -kVd -rAH -rAH -kVd -rAH -rAH -xgc -kVd -kVd -kVd -rAH -rAH -mhs -jrg -jrg -jrg -jrg -jrg -bJj -bJj -bJj -bJj -puZ -puZ -puZ -puZ -puZ +kop +kop +kop +jMf +ofw +jMf +ofw +jMf +ofw +jMf +kop +tHd +kyD +kyD +kyD +kyD +qrY +kyD +kyD +kyD +kyD +kyD +kyD +tHd +kyD +kyD +kyD +jMf +jMf +kop +kop +jMf +kop +kop +tHd +jMf +jMf +jMf +kop +kop +mhs +sax +sax +sax +sax +sax +kAw +kAw +qgP +kAw +puZ +puZ +puZ +puZ +puZ puZ puZ puZ @@ -42895,59 +38780,59 @@ kOV ntc kOV kOV -ukp -kVd -kVd -dHr -rAH -msh -uzu -uzu -xgc -rAH -kVd -kVd -rAH -xgc -rAH -xgc -xgc -boW -xgc -boW -xgc -boW -boW -xgc -xgc -xgc -xgc -boW -boW -boW -boW -kVd -kVd -kVd -kVd -ddA -rAH -kVd -kVd -rAH -xgc -xgc -kVd -uzu +mwE +jMf +jMf +mdV +kop +oxP +ofw +ofw +tHd +kop +jMf +jMf +kop +tHd +kop +fDH +tHd +kyD +tHd +kyD +qrY +kyD +kyD +tHd +tHd +tHd +tHd +kyD +kyD +kop +kop +jMf +jMf +jMf +jMf +rgy +kop +jMf +jMf +kop +tHd +tHd +jMf +ofw loe -jrg -jrg -jrg -jrg -jrg -bJj -gpz -bJj +sax +sax +sax +sax +sax +qgP +nZA +kAw puZ puZ puZ @@ -43057,59 +38942,59 @@ kOV kOV ntc kOV -kVd -kVd +jMf +jMf bhB -kVd -rAH -rAH -uzu -xgc -kVd -rAH -xgc -xgc -kVd -rAH -xgc -rAH -xgc -xgc -boW -boW -boW -xgc -uzu +jMf +kop +kop +ofw +tHd +jMf +kop +tHd +tHd +jMf +kop +tHd +kop +tHd +tHd +kyD +kyD +kyD +tHd +ofw gss gss gss gss -xgc -xgc -xgc -kVd -kVd -kVd -kVd -huF -uzu -rAH -uzu -aJR -kVd -rAH -rAH -rAH -rAH -kVd -rAH -jrg -jrg -jrg -jrg -bJj -gpz -bJj +tHd +tHd +tHd +jMf +jMf +jMf +jMf +gBp +ofw +kop +ofw +rEd +jMf +kop +kop +kop +kop +jMf +kop +sax +sax +sax +sax +hrk +nZA +kAw puZ puZ puZ @@ -43219,29 +39104,29 @@ kOV kOV ntc ntc -uzu +ofw vhM -uzu -kVd -kVd -rAH -rAH -kVd -rAH -uzu +ofw +jMf +jMf +kop +kop +jMf +kop +ofw dYp dYp dYp -kVd -kVd -rAH +jMf +jMf +kop fxy -boW -boW -boW +kyD +kyD +kyD fxy -xgc -rAH +tHd +kop gss gss gss @@ -43253,25 +39138,25 @@ tiO tiO gss abZ -kVd -kVd -rAH -rAH -rAH -boS -kVd -rAH -xgc -rAH -rAH -rAH -ukp -jrg -jrg -jrg -cIV -cIV -cIV +jMf +jMf +kop +kop +kop +gpS +jMf +kop +tHd +kop +kop +kop +mwE +sax +sax +sax +nZA +llZ +nZA puZ puZ puZ @@ -43381,16 +39266,16 @@ kOV kOV ntc ntc -kVd -uzu -kVd -kVd -rAH -kVd -xgc -rAH -rAH -uzu +jMf +ofw +jMf +jMf +kop +jMf +tHd +kop +kop +ofw dYp dYp dYp @@ -43431,9 +39316,9 @@ tHd mwE geE geE -mwE -mwE -mwE +kop +kop +plM tYw tYw tYw @@ -43543,15 +39428,15 @@ aEq ntc ntc vYm -xgc -kVd -kVd -xgc -xgc -rAH -xgc -kVd -uzu +tHd +jMf +jMf +tHd +tHd +kop +tHd +jMf +ofw dYp dYp dYp @@ -43705,15 +39590,15 @@ nOd nOd nOd nOd -xgc -xgc -kVd -xgc -kVd -xgc -kVd -uzu -uzu +tHd +tHd +jMf +tHd +ffg +tHd +jMf +ofw +ofw dYp dYp dYp @@ -43867,15 +39752,15 @@ dZb eOG aeN nOd -rAH -rAH -rAH -rAH -xgc -rAH -kVd +kop +kop +kop +kop +tHd +kop +jMf bRU -kVd +jMf dYp dYp dYp @@ -44029,15 +39914,15 @@ uhL uhL eHk nOd -kVd +jMf bhB -xgc -kVd -xgc -rAH -uzu -kVd -uzu +tHd +jMf +tHd +kop +ofw +jMf +ofw dYp dYp dYp @@ -44191,14 +40076,14 @@ uhL uhL eHk nOd -dHr -kVd -kVd -hxY -kVd -rAH -kVd -ddA +mdV +jMf +jMf +sJo +jMf +kop +jMf +rgy dYp dYp pqe @@ -44355,12 +40240,12 @@ nOd nOd nOd nOd -kVd -xgc -xgc -rAH -kVd -kVd +jMf +tHd +tHd +kop +jMf +jMf dYp dYp pqe @@ -44517,12 +40402,12 @@ uhL gIq jny nOd -rAH -xgc -xgc -kVd -uzu -dHr +kop +tHd +tHd +jMf +ofw +mdV dYp dYp pqe @@ -44679,12 +40564,12 @@ bVb goh okz nOd -kVd -xgc -xgc -kVd -huF -xgc +jMf +tHd +tHd +jMf +gBp +tHd dYp dYp pqe @@ -44841,12 +40726,12 @@ uFr tds uhL nOd -rAH +kop wta owr -uzu -plS -xgc +ofw +qLS +tHd dYp dYp pqe @@ -45003,11 +40888,11 @@ glG tds uhL nOd -rAH -aGF -boW -boW -boW +kop +aQJ +kyD +kyD +kyD dYp dYp dYp @@ -45165,11 +41050,11 @@ tWn hyu uhL nOd -rAH -kuS -boW -boW -boW +kop +oiH +kyD +kyD +kyD owr dYp dYp @@ -45327,12 +41212,12 @@ hyu uKN uhL nOd -rAH -xgc +kop +tHd owr -boW +kyD owr -boW +kyD dYp dYp pqe @@ -45700,7 +41585,7 @@ kyD tHd pDr tHd -dYw +kyD kyD kyD kyD @@ -45862,7 +41747,7 @@ tHd kyD pDr kyD -dYw +kyD kyD kyD kyD @@ -46392,7 +42277,7 @@ aaY jFy jFy axz -doc +tfd ivr axz jFy @@ -46552,12 +42437,12 @@ wlj axz axz rnz -doc +tfd uPo -doc -doc +tfd +tfd uPo -doc +tfd rnz jFy qrz @@ -46713,14 +42598,14 @@ qCn tKg axz axz -doc +tfd wCz lWW wCz lWW wCz lWW -doc +tfd jFy gNF jqY @@ -46875,14 +42760,14 @@ qCn ssf axz axz -doc +tfd nCo kRK nCo kRK nCo kRK -doc +tfd aaY ilo jqY @@ -47037,14 +42922,14 @@ rCO ssf axz axz -doc +tfd wCz lWW wCz lWW wCz lWW -doc +tfd jFy gNF gNF @@ -47199,14 +43084,14 @@ qCn jVx aaY aaY -doc +tfd nCo kRK nCo kRK nCo kRK -doc +tfd jFy jqY jqY @@ -47361,14 +43246,14 @@ qCn gPg xha axz -doc +tfd wCz lWW wCz lWW wCz lWW -doc +tfd jFy gNF jqY @@ -47523,14 +43408,14 @@ xha aaX xha axz -doc +tfd jMZ gvz jMZ gvz jMZ gvz -doc +tfd axz kFJ jqY @@ -47649,7 +43534,7 @@ puZ hcJ cUl cUl -xbT +cUl hcJ puZ puZ @@ -47685,13 +43570,13 @@ aaY xha xha vWt -doc -doc +tfd +tfd cRP dqW bMn cRP -doc +tfd sQt aaY axz @@ -47847,13 +43732,13 @@ axz xha xha axz -doc -doc +tfd +tfd jUa jvT djn djn -doc +tfd aeA axz pMs @@ -50228,17 +46113,17 @@ kyD tHd veu oZq -hrk -kAw -kAw +ijm +cIV +cIV sax sax sax sax -sPM -sPM -sPM -sPM +wiy +wiy +wiy +wiy ako puZ puZ @@ -50389,15 +46274,15 @@ tHd kyD tHd qEQ -sax -kAw -nZA -kAw -sax -bcV -oFl -sax -sax +jrg +bJj +gpz +bJj +jrg +qCW +ijE +jrg +jrg aaZ aaZ aaZ @@ -50523,47 +46408,47 @@ iXm daD dKL aPk -hcH -tnu +rRZ +oQo aSQ -tnu -hcH -aWF -jMf -ofw -jMf -tHd -kop -jMf -gGT -kop -rli -kop -kop -tHd -kyD -kyD -kyD -tHd -kyD -tHd -kyD -kyD -kyD -qEQ -sax -hrk -hrk -kAw -kAw -rBk -vAU -sax -sax -kAw -nZA -nZA -kAw +oQo +rRZ +rWW +kVd +uzu +kVd +xgc +rAH +kVd +iIR +rAH +ork +rAH +rAH +xgc +boW +boW +boW +xgc +boW +xgc +boW +boW +boW +dro +jrg +osE +osE +bJj +bJj +qdh +fmo +jrg +jrg +bJj +gpz +gpz +bJj puZ puZ puZ @@ -50680,53 +46565,53 @@ bIV bFg bIV bIV -cZk +bFg daD cZk cZk bIV -aKr -gKf -lxn -gKf -aFA -kyD -tHd -jMf -tHd -kop -jMf -sJo -ofw -etl -fLi -gGT -kop -tHd -xvp -kyD -kyD -kyD -tHd -kyD -kyD -kyD -tHd -oDi +boW +boW +boW +boW +boW +boW +xgc +kVd +xgc +rAH +kVd +hxY +uzu +hUA +mGk +iIR +rAH +xgc +wPs +boW +boW +boW +xgc +boW +boW +boW +xgc +nxt prO -kAw -hrk -nZA -nZA -nZA -kAw -kAw -acl -kAw -nZA -nZA -kAw -nZA +bJj +osE +gpz +gpz +gpz +bJj +bJj +iIg +bJj +gpz +gpz +bJj +gpz puZ puZ puZ @@ -50845,50 +46730,50 @@ bIV bIV cZk bIV -bIV bFg -aKA -qXS -lxn -qXS -aFC -kyD -kyD -tHd -tHd -tHd -kop -aQJ -kop -eyx -kop -tHd -kop -kop -tHd -kyD -kyD -kyD -kyD -kyD -kyD -kyD -kyD -kyD +cZk +rAH +boW +boW +boW +boW +boW +boW +xgc +xgc +xgc +rAH +aGF +rAH +klF +rAH +xgc +rAH +rAH +xgc +boW +boW +boW +boW +boW +boW +boW +boW +qjY ptm -hrk -kAw -nZA -nZA -nZA -kAw -kAw -aco -kAw -nZA -kAw -kAw -nZA +osE +bJj +gpz +gpz +gpz +bJj +bJj +niA +bJj +gpz +bJj +bJj +gpz puZ puZ puZ @@ -51008,49 +46893,49 @@ bIV bIV bFg bFg -bFg -aKA -qXS -lxn -qXS -aFC -kyD -kyD -kyD -kyD -kyD -kyD -kyD -kyD -tHd -tHd -kyD -tHd -tHd -kyD -kyD -kyD -kyD -kyD -kyD -kyD -kyD -tHd -ofw -sax -hrk -kAw -nZA -nZA -nZA -nZA -kAw -aco -kAw -kAw -kAw -nZA -kAw +cZk +boW +boW +boW +boW +boW +boW +boW +boW +boW +boW +boW +boW +boW +xgc +xgc +boW +xgc +xgc +boW +boW +boW +boW +boW +boW +boW +boW +xgc +fkB +jrg +osE +bJj +gpz +gpz +gpz +gpz +bJj +niA +bJj +bJj +bJj +gpz +bJj puZ puZ puZ @@ -51170,50 +47055,50 @@ bIV bIV bIV bIV -bFg -aKA -qXS -lxn -qXS -aFC -kyD -kyD -kyD -kyD -kyD -kyD -kyD -kyD -kyD -kyD -kyD -kyD -kyD -kyD -kyD -kyD -kyD -kyD -kyD -kyD -tHd -kop -gzb -sax -sax -sax -sax -kAw -kAw -nZA -kAw -aco -kAw -hrk -kAw -nZA -nZA -nZA +cZk +xgc +xgc +boW +boW +boW +boW +boW +boW +boW +boW +boW +boW +boW +boW +boW +boW +boW +boW +boW +boW +boW +boW +boW +boW +boW +xgc +rAH +ucN +jrg +jrg +jrg +jrg +bJj +bJj +gpz +bJj +niA +bJj +osE +bJj +gpz +gpz +gpz puZ puZ puZ @@ -51333,50 +47218,50 @@ bFg bFg cZk bIV -aKD -iGn -lxn -iGn -aFI -kyD -kyD -kyD -kyD -kyD -kyD -kyD -kyD -kyD -kyD -tHd -iMC -kyD -kyD -tHd -tHd -kyD -tHd -kyD -kyD -tHd -kop -bhN -fCs -sax -sax -sax -sax -kAw -kAw -kAw -acp -bcV -tFd -hrk -kAw -nZA -nZA -nZA +rAH +xgc +rAH +rAH +xgc +boW +boW +boW +boW +boW +boW +boW +boW +boW +boW +xgc +kyt +boW +boW +xgc +xgc +boW +xgc +boW +boW +xgc +rAH +fbS +qfR +jrg +jrg +jrg +jrg +bJj +bJj +bJj +srJ +qCW +nyS +osE +bJj +gpz +gpz +gpz puZ puZ puZ @@ -51495,50 +47380,50 @@ bFg aNe bIV aPm -uji -uKZ -jLX -uKZ -uji -aWG -xWy -tHd -rtZ -tHd -tHd -rtZ -kop -kop -xvp -tHd -jMf -xvp -kop -kop -kop -tHd -kyD -kyD -kyD -tHd -kop -bhN -fCs -sax -sax -bcV -oFl -kAw -kAw -kAw -tad -tlr -tuz -tFy -hrk -kAw -nZA -nZA +xgc +rAH +xgc +rAH +rAH +rAH +uzu +xgc +gJF +boW +boW +awP +rAH +xgc +wPs +xgc +kVd +wPs +rAH +rAH +rAH +xgc +boW +boW +boW +xgc +rAH +fbS +qfR +jrg +jrg +qCW +ijE +bJj +bJj +bJj +nvu +mCG +pRM +gQK +osE +bJj +gpz +gpz puZ puZ puZ @@ -51657,51 +47542,51 @@ aME bIV cZk xvA -iMA -rxf -oYH -uMJ -uji -uKZ -uKZ -uKZ -iMA -iMA -iMA -uKZ -uKZ -uKZ -uKZ -uji -ofw -ofw -jMf -tHd -kop -kop -kyD -kyD -kyD -tHd -kop -lip -sax -sax -sax -rBk -vAU -kAw -kAw -kAw -hrk -rBk -vAU -hrk -hrk -kAw -nZA -nZA -nZA +boW +xgc +wfH +rAH +xgc +rAH +wfH +rAH +boW +boW +boW +xgc +xgc +rAH +rAH +rAH +uzu +uzu +kVd +xgc +rAH +rAH +boW +boW +boW +xgc +rAH +sEC +jrg +jrg +jrg +qdh +fmo +bJj +bJj +bJj +osE +qdh +fmo +osE +osE +bJj +gpz +gpz +gpz puZ puZ puZ @@ -51817,53 +47702,53 @@ bFg bIV bIV cZk -uKZ -uKZ -uKZ -fRg -fRg -fRg -fRg -fRg -fRg -oZR -fRg -iXc -fRg -bxL -bxL -gGc -rzR -uji -hzJ -hzJ -hzJ -kyw -kyw -lUL -mLR -mLR -mLR -ocI -kyw -kyw -sax -sax -sax -hrk -kAw -kAw -kAw -kAw -kAw -kAw -hrk -hrk -hrk -hrk -kAw -nZA -nZA +rAH +rAH +rAH +rAH +rAH +boW +rAH +rAH +rAH +xgc +boW +boW +boW +rAH +rAH +rAH +rAH +rAH +rAH +rAH +rAH +rAH +rAH +rAH +boW +boW +xgc +rAH +rAH +oHf +jrg +jrg +jrg +osE +bJj +bJj +bJj +bJj +bJj +bJj +osE +osE +osE +osE +bJj +gpz +gpz puZ puZ puZ @@ -51979,54 +47864,54 @@ bIV aLZ bIV xvA -uKZ -rIj -ohq -pvv -pvv -pvv -tXL -pvv -pvv -pvv -pvv -pvv -pvv -pvv -hZI -pvv -fWq -uji -iOA -aDM -lNg -kLM -uqb -uqb -iQq -iQq -kLM -kLM -kLM -kLM +ukp +ukp +rAH +ukp +rAH +rAH +boW +ukp +kVd +kVd +boW +boW +boW +siZ +dkv +xgc +kVd +kVd +rAH +rAH +kVd +uzu +boW +xgc +uzu +boW +xgc +xgc +xgc +tsK pCe -wSv -kAw -kAw -kAw -kAw -kAw -nZA -nZA -nZA -kAw -hrk -nZA -nZA -nZA -kAw -nZA -nZA +rrj +bJj +bJj +bJj +bJj +bJj +gpz +gpz +gpz +bJj +osE +gpz +gpz +gpz +bJj +gpz +gpz puZ puZ puZ @@ -52141,55 +48026,55 @@ daD bFg xvA xvA -uKZ -rIj -wCn -pvv -pvv -pvv -pvv -pvv -mOY -drM -pvv -aSA -uaa -pvv -pvv -pvv -fRg -hvZ -kLM -iOu -kLM -iOu -kLM -kLM -iQq -kLM -iQq -iQq -kLM -iQq +rAH +rAH +ukp +rAH +rAH +rAH +ckH +lIa +lIa +qjY +qjY +qjY +qjY +tsK +qjY +tsK +lIa +oHf +oHf +oHf +lIa +qjY +tsK +tsK +ckH +tsK +qjY +qjY +tsK +qjY fnw -cwZ -kAw -kAw -kAw -kAw -nZA -hrk -hrk -nZA -nZA -hrk -nZA -nZA -nZA -kAw -kAw -kAw -nDv +wvS +bJj +bJj +bJj +bJj +gpz +osE +osE +gpz +gpz +osE +gpz +gpz +gpz +bJj +bJj +bJj +xuz puZ puZ puZ @@ -52302,57 +48187,57 @@ peb xvA aMj daD -daD -uKZ -oIR -fRg -pvv -pvv -aTh -aVx -aWI -aYd -baX -bcJ -aSA -gIQ -oXM -pvv -pvv -fRg -hvZ -kLM -kLM -iQq -iQq -iQq -iQq -iQq -kLM -kLM -iQq -iQq -iQq -nOw -cwZ -kAw -kAw -nZA -kAw -kAw -hrk -hrk -hrk -kAw -kAw -kAw -hrk -kAw -kAw -kAw -kAw -kAw -puZ +boW +qiy +pWp +pWp +pWp +pLf +pLf +asz +asz +asz +ndb +pCI +gmV +vTc +asz +asz +asz +fNE +fNE +fNE +fNE +asz +kVd +kVd +uzu +xgc +uzu +jrg +jrg +jrg +jrg +jrg +jrg +jrg +jrg +jrg +jrg +jrg +bJj +bJj +osE +gpz +gpz +gpz +gpz +bJj +bJj +bJj +gpz +bJj +bJj puZ puZ puZ @@ -52464,57 +48349,57 @@ peb xvA aLZ xvA -daD -uKZ -uwS -fRg -pvv -pvv -aUw -xyY -aWQ -aVx -aVx -aVx -bqN -aUA -dbH -pti -pvv -fRg -hvZ -kLM -iQq -iQq -iQq -iQq -iQq -kLM -lNg -kLM -iQq -iQq -huz -huz -huz -huz -huz -huz -huz -huz -huz -huz -huz -huz -dWO -hbB -kAw -kAw -kAw -hrk -kAw -nZA -kAw +ukp +oiL +ukp +guH +sQX +pLf +pLf +asz +crF +aXH +tHD +crF +crF +tHD +uEx +crF +fNE +qud +tZA +ctC +ctC +asz +ayz +ayz +kVd +ayz +ayz +jrg +jrg +jrg +jrg +jrg +jrg +jrg +jrg +jrg +jrg +jrg +jrg +bJj +bJj +gpz +gpz +gpz +gpz +gpz +gpz +gpz +gpz +bJj +bJj puZ puZ puZ @@ -52625,58 +48510,58 @@ aUd aUd xvA daD -xvA -daD -uKZ -xHu -fRg -pvv -aTh -aUx -eHL -aWS -aYf -baY -bdk -aWS -jnc -aWQ -dbH -uyI -fRg -hvZ -iQq -iQq -iQq -iQq -iQq -iQq -kLM -aDM -uqb -iQq -huz -huz -huz -huz -huz -huz -huz -huz -huz -huz -huz -huz -huz -nNX -hbB -kAw -kAw -kAw -hrk -kAw -kAw -vEN +bFg +ukp +qiy +sQX +cXU +cid +pLf +pLf +asz +crF +aXH +bJi +crF +crF +tHD +uEx +crF +fNE +hyx +xFp +xFp +sHL +asz +kAd +kVd +kVd +xgc +kVd +ukp +jrg +jrg +jrg +jrg +jrg +jrg +jrg +jrg +jrg +jrg +jrg +jrg +bJj +gpz +bJj +gpz +gpz +gpz +bJj +bJj +bJj +bJj +sax puZ puZ puZ @@ -52786,61 +48671,61 @@ aUd aUd aUd aUd -aMk +aMj peb -daD -uKZ -wUy -fRg -pvv -aTi -aUy -aVL -aWT -aVL -bOh -aVL -aWS -aVL -aVL -dCS -eoH -fRg -hvZ -iQq -iQq -kLM -iQq -iQq -kLM -bcM -aDM -lNg -kLM -huz -huz -dLi -amH -qsN -aMN -faH -hHf -nTu -qsN -iYC -huz -huz -dWO -hbB -kAw -hrk -kAw -kAw -kAw -kAw -kAw -oBV -nZA +ukp +qiy +wvd +nOK +xLy +pLf +pLf +asz +asz +asz +tpL +orO +orO +tJY +asz +asz +asz +gSJ +bJi +bJi +bJi +asz +ltA +dnj +kVd +xgc +kVd +ukp +jrg +jrg +jrg +jrg +jrg +jrg +jrg +jrg +jrg +jrg +jrg +jrg +bJj +fXX +bJj +bJj +gpz +bJj +bJj +bJj +gpz +bJj +sax +sax +sax puZ puZ puZ @@ -52949,60 +48834,60 @@ gJo gJo abg aMl -xvA -xvA -uKZ -fRg -fRg -pvv -aTj -cov -aVM -aWS -aYg -bbg -bea -aWS -cbk -aWU -deV -wvx -fRg -hvZ -kLM -iQq -kLM -iQq -iQq -iQq -kLM -snN -kTP -iQq -huz -huz -kLi -amI -aCy -rdS -axJ -axJ -nTu -hAS -sjh -huz -huz -tuA -kAw -hrk -hrk -kAw -kAw -kAw -nZA -kAw -kAw -nZA +rYj +pLf +pLf +pLf +pLf +pLf +pLf +asz +asz +asz +ahu +uEx +bJi +bJi +aXH +rZt +asz +asz +asz +asz +qkL +asz +asz +asz +asz +xgc +xgc +kVd +ukp +bJj +jrg +jrg +jrg +jrg +jrg +jrg +jrg +jrg +amu +amu +amu +bJj +fXX +gpz +bJj +bJj +jrg +jrg +bJj +gpz +osE +sax +sax +sax puZ puZ puZ @@ -53111,60 +48996,60 @@ qbF gJo abg gJo -xvA -xvA -uKZ -fRg -gxK -pvv -pvv -aUw -fof -aWU -aVN -aVN -aVN -bqN -aVN -deV -wTz -pvv -fRg -hvZ -iQq -kLM -iQq -iQq -iQq -iQq -iQq -kLM -iQq -iQq -tpg -exX -qIr -rdS -rdS -axJ -axJ -axJ -bsS -pKf -iYC -huz -huz -oBV -pRU -hrk -hrk -kAw -nZA -nZA -nZA -kAw -kAw -nZA +rYj +asz +asz +asz +asz +asz +asz +asz +ufb +wnK +jaU +uEx +bJi +bJi +aXH +rZt +rZt +rZt +fNE +mWA +rZt +iEF +etV +tNN +fNE +xgc +xgc +boW +xgc +xgc +ukp +ukp +jrg +jrg +jrg +jrg +jrg +jrg +amu +fXX +fXX +osE +osE +bJj +bJj +jrg +jrg +jrg +bJj +bJj +bJj +sax +sax +sax puZ puZ puZ @@ -53253,7 +49138,7 @@ ver ver ver fEO -oDM +bws ktd bFg bIV @@ -53269,110 +49154,110 @@ qbF qbF gJo qbF -gJo -uKZ -iMA -iMA -uji -uji -uji -uji -fRg -pvv -pvv -aTj -aVN -aWV -aYx -bbh -beK -pvv -pvv -pvv -aSA -pvv -fRg -hvZ -kLM -iQq -iQq -iQq -iQq -kLM -iQq -iQq -iQq -iQq -tpg -akF -alS -ans -axJ -axJ -fbf -fbf -ook -hAS -aDu -huz -huz -huz -huz -huz -kAw -kAw -nZA -nZA -nZA -kAw -kAw -nZA -puZ -puZ -puZ -puZ -"} -(156,1,1) = {" -acH -acT -ajO -ajO -acT -aoK -akL -aoK -aoK -acT -asd -agh -agh -aek -axG -onl -aNn -aTZ -rgu -xbz -pId -agh -agh -mMg -iJY -agh -agh -axG -iJY -agh -agh -lvW -acT -psl -eOM -arX -arX -ade -aOg -arX +daD +xHv +xHv +xHv +wXs +asz +abn +abF +abF +abF +acg +asz +aUY +vjs +aXw +kaL +wnK +wnK +aXH +rZt +rZt +rZt +fNE +ril +rZt +iEF +far +nVL +fNE +kVd +xgc +boW +xgc +xgc +ukp +uzu +uzu +jrg +jrg +jrg +jrg +jrg +amu +fXX +fXX +osE +osE +gpz +gpz +jrg +jrg +bJj +bJj +osE +osE +sax +sax +sax +puZ +puZ +puZ +puZ +"} +(156,1,1) = {" +acH +acT +ajO +ajO +acT +aoK +akL +aoK +aoK +acT +asd +agh +agh +aek +axG +onl +aNn +aTZ +rgu +xbz +pId +agh +agh +mMg +iJY +agh +agh +axG +iJY +agh +agh +lvW +acT +psl +eOM +arX +arX +ade +aOg +arX lwo lwo arX @@ -53415,7 +49300,7 @@ ver ver ver ver -pSD +ffo ktd cZk bIV @@ -53427,69 +49312,69 @@ cZk cZk tBB gJo -gJo -gJo -qbF +bFg +qdH +qdH qbF -gJo -iMA -aJM -aJU -bKV -aLk -bMK -uji -snX -pvv -aSA -pvv -vFR -eVG -pvv -pvv -pvv -aSA -pvv -pvv -pvv -pvv -fRg -hvZ -kLM -iOu -kLM -iOu -kLM -iQq -kLM -iQq -iQq -iQq -tpg -oWk -qIr -ans -ans -aMW -fMq -aut -axJ -rdS -aut -huz -huz -huz -huz -huz -hrk -kAw -hrk -hrk -nZA -kAw -kAw -nZA -nZA +bIV +xHv +xHv +xHv +wXs +asz +abp +abG +abJ +abG +acj +asz +aUX +aWB +gTU +wnK +wnK +wnK +aXH +rZt +rZt +rZt +asz +asz +rZt +rZt +hCY +hCY +fNE +kVd +kVd +boW +xgc +rAH +kVd +boW +boW +uzu +jrg +jrg +jrg +jrg +amu +fXX +fXX +amu +iTQ +bJj +gpz +bJj +jrg +bJj +bJj +gpz +osE +sax +sax +sax +sax puZ puZ puZ @@ -53589,69 +49474,69 @@ xvA xvA tBB gJo -gJo -qbF +bFg +qdH qbF qbF gJo -iMA -aKQ -bKV -bKV -omu -aFr -uji -uji -pvv -kJw -pvv -pvv -pvv -pvv -pvv -sYh -pvv -pvv -pvv -pvv -eGs -fRg -uji -jac -jQt -khx -khx -ltJ -kLM -iQq -iQq -iQq -iQq -tpg -oWk -qIr -anG -axJ -axJ -ggh -rdS -owe -axJ -rdS -axJ -axJ -axJ -huz -huz +xHv +xHv +xHv +wXs +asz +abp +abJ +abJ +abJ +aSK +aTR +rMI +oZs +azm +bJi +rZt +wnK +aXH +rZt +rZt +rZt +hAX +crF +rZt +rZt +rZt +rZt +fNE +kVd +kVd +xgc +boW +xgc +qMT +jOv +hEB +uzu +uzu +jrg +jrg +jrg +amu +fXX +fXX +amu +osE +osE +gpz +bJj +jrg +bJj +bJj +gpz +osE +sax +sax +sax sax -kAw -kAw -nZA -nZA -kAw -kAw -kAw -hrk puZ puZ puZ @@ -53749,71 +49634,71 @@ bIV cZk cZk cZk -uji -uji -uji -uji -uji -uji -uji -uji -aLk -bKV -bKV -aNg -bKV -aOb -uji -snX -fRg -pgh -fRg -fRg -dLk -fRg -pgh -fRg -fRg -fRg -rIj -uKZ -giH -uji -iMA -iMA -iMA -uKZ -ehV -uqb -kLM -iQq -iQq -kLM -ajd -huz -fjS -anJ -aGf -aNE -ggr -hLE -qvY -qkQ -axJ -axJ -axJ -axJ -huz -huz +sFs +xHv +sFs +xHv +xHv +xHv +xHv +xHv +xHv +uLi +wXs +asz +aNR +abJ +abG +abJ +abJ +rZt +kxx +oZs +bJi +bJi +ahZ +eRG +aXH +rZt +rZt +rZt +dwQ +crF +rZt +rZt +rZt +fhd +fNE +kVd +kVd +rAH +xgc +boW +boW +boW +boW +uzu +uzu +ukp +jrg +jrg +amu +eom +fXX +amu +osE +osE +bJj +bJj +bJj +bJj +bJj +bJj +amu +sax +sax +sax sax -iZj -kAw -kAw -hrk -kAw -nZA -kAw -hrk puZ puZ puZ @@ -53911,75 +49796,75 @@ cZk cZk cZk cZk -uji -uji -uji -uji -uji -uji -uji -uji -uji -aKL -uji -aNh -aLs -uji -uji -iMA -iMA -uKZ -oYH -gxK -fRg -oYH -uKZ -iMA -iMA -uji -uKZ -uKZ -bKV -kjU -bKV -krm -iXx -iMA -ehV -uqb -kLM -iQq -nAs -uqb -ajE -huz -qSW -arZ -aIh -aPf -gtx -aTO -oww -qmv -axJ -axJ -axJ -axJ -huz -huz -sax -sax -kAw -kAw -hrk -kAw -nZA -kAw -puZ -puZ -puZ -puZ -"} +tjL +xHv +xHv +gik +gik +gik +dbv +kaC +xHv +xHv +wXs +asz +aNP +abJ +abG +abJ +abJ +rZt +kxx +oZs +bJi +bJi +bJi +wnK +bQx +asz +asz +qkL +asz +asz +rZt +rZt +iEF +cYC +fNE +kVd +kVd +rAH +xgc +boW +boW +boW +lLf +uzu +uzu +ukp +jrg +jrg +amu +fXX +fXX +amu +jrg +bJj +gpz +bJj +bJj +bJj +osE +bJj +amu +sax +sax +sax +puZ +puZ +puZ +puZ +"} (160,1,1) = {" acH acT @@ -54073,72 +49958,72 @@ bIV bFg cZk bIV -uji -gUc -xgH -xgH -xgH -gQJ -uji -uji -fRg -fRg -aKS -fRg -fRg -fRg -lro -bKV -bKV -oYH -bKV -meg -bKV -bbi -beP -bKV -meg -bKV -bKV -eGG -bKV -bKV -ftr -obb -vHX -iMA -ehV -kLM -iQq -iQq -kLM -uqb -uqb -huz -huz -auh -bWB -qvY -gZZ -iof -aDu -qoY -axJ -axJ -wFm -sYx -huz -huz -sax -sax -nZA -kAw -nZA -nZA -nZA -kAw -puZ -puZ +xHv +sFs +xHv +xHv +gik +xHv +tmP +kaC +xHv +goe +wXs +asz +abp +abJ +abJ +abJ +abJ +rZt +rMI +acY +rZt +bJi +rZt +wnK +aXH +rkc +wnK +wnK +asz +asz +dTj +rZt +rZt +tYA +fNE +kVd +kuS +kVd +rAH +rAH +kch +boW +mKD +uzu +ukp +jrg +jrg +amu +amu +fXX +fXX +amu +jrg +osE +bJj +gpz +gpz +gpz +osE +bJj +iTQ +iTQ +amu +amu +amu +amu puZ puZ "} @@ -54225,7 +50110,7 @@ aAh ver ver ver -pSD +nJu ktd cZk bFg @@ -54235,72 +50120,72 @@ bIV fUZ bIV bIV -uji -ahX -qkC -tzo -qkC -mhS -dtr -fRg -bKV -bKV -bKV -bKV -bKV -bKV -bKV -bKV -bKV -fRg -bKV -bKV -bKV -bKV -fRg -bKV -bKV -bKV -bKV -uKZ -uKZ -iMA -iMA -iMA -uKZ -uKZ -ehV -kLM -iQq -iQq -iQq -kLM -kLM -uqb -ncS -bWB -auh -aTO -hkS -itR -oNz -qOE -rdS -axJ -sYx -wFm -huz -huz -sax -sax -kAw -kAw -nZA -hrk -nZA -kAw -puZ -puZ +xHv +xHv +xHv +xHv +xHv +goe +kaC +kaC +kaC +xHv +wXs +asz +abp +abG +abJ +abG +ach +asz +aWC +aWs +qkR +eRG +sbd +wnK +aXH +rkc +wnK +rZt +fir +rqK +asz +rZt +rZt +asz +asz +kVd +kVd +kVd +rAH +rAH +xgc +boW +vkr +nij +ukp +jrg +jrg +amu +cur +fXX +fXX +amu +amu +iTQ +bJj +fXX +gpz +gpz +bJj +fXX +cuJ +fXX +bJj +fXX +fXX +amu puZ puZ "} @@ -54387,7 +50272,7 @@ ver ver ver pNf -aCA +oDJ ktd gJo lTc @@ -54397,72 +50282,72 @@ bIV bFg bFg bFg -uji -aGc -tzo -tzo -aJj -aJk -fRg -fRg -bKV -bKV -aMK -aNl -aNl -aPn -bKV -bKV -bKV -fRg -bKV -bKV -bKV -bKV -uHA -bKV -bKV -rfd -bKV -iMA -hFJ -fRg -dZN -fRg -iMA -kGO -lyE -kLM -iQq -kLM -iQq -iQq -kLM -uqb -ncS -mRc -rdS -aXk -axJ -jFq -huz -qPh -rdS -axJ -axJ -sXt -huz -huz -sax -sax -kAw -kAw -nZA -nZA -nZA -kAw -puZ -puZ +xHv +xHv +uLi +xHv +qEH +kaC +kaC +kaC +xHv +xHv +wXs +asz +abx +abM +abM +abM +ack +asz +aUU +aXh +mYX +bVr +aXh +aXh +bJf +rkc +wnK +rZt +hMY +asz +asz +crF +crF +asz +asz +uzu +kVd +kVd +kVd +kVd +xgc +boW +boW +kVd +ukp +jrg +jrg +amu +lAb +fXX +fXX +fXX +fXX +fXX +fXX +bJj +bJj +gpz +osE +bJj +mwJ +bJj +fXX +fXX +fXX +amu puZ puZ "} @@ -54560,71 +50445,71 @@ bFg bFg bFg bIV -aGb -tzo -qkC -tzo -aGd -fRg -fRg -bKV -bKV -pzj -pzi -kGz -bKV -bKV -bKV -bKV -oYH -bKV -bKV -bKV -bKV -oYH -bKV -bKV -bKV -bKV -iMA -sFR -pvv -pvv -oCG -kjM -tpg -iQq -iQq -iQq -szU -kLM -iQq -iQq -uqb -ncS -pTp -pTp -rdS -axJ -alO -huz -qWL -aut -axJ -kLi -kLi -huz -huz -sax -sax -kAw -kAw -nZA -nZA -kAw -kAw -puZ -puZ +xHv +sFs +xHv +xHv +goe +kaC +xHv +gik +xHv +wXs +asz +asz +asz +asz +asz +asz +asz +rZt +rZt +rZt +gGf +bDx +asz +kXt +asz +wnK +rZt +asz +asz +kPX +rZt +rZt +asz +asz +pLf +hkZ +rAH +ccT +xgc +xgc +rAH +xgc +xgc +jrg +jrg +jrg +amu +igJ +fXX +fXX +fXX +fXX +fXX +osE +gpz +bJj +fXX +bJj +iTQ +amu +amu +amu +fXX +fXX +amu puZ puZ "} @@ -54669,124 +50554,124 @@ acT tMS agh agh -jAv -acT -arX -eOM -eOM -lwo -sYu -sYu -lwo -eTV -kSh -lwo -eTV -lwo -eTV -lwo -lwo -lwo -lwo -lwo -qep -arX -arX -arX -arX -arX -eOM -lwo -eOM -lwo -bjv -ktd -axP -smy -smy -lOO -qfq -ohb -ohb -smy -smy -gCy -ktd -oQl -gJo -cZk -bIV -bFg -bFg -bFg -bFg -bFg -bFg -aGd -tzo -qkC -tzo -aGd -fRg -fRg -bKV -bKV -bKV -bKV -bKV -bKV -bKV -ohE -bKV -uKZ -ahe -fRg -fRg -oYH -uKZ -bwk -cex -cex -cex -uKZ -xHu -pvv -pvv -oCG -wRm -tpg -iQq -iQq -iQq -kLM -aDM -kLM -iQq -huz -huz -avz -avz -axJ -axJ -alO -pJM -rgI -rdS -axJ -kLi -alP -huz -huz -sax -sax -kAw -kAw -nZA -kAw -kAw -kAw -puZ -puZ +jAv +acT +arX +eOM +eOM +lwo +sYu +sYu +lwo +eTV +kSh +lwo +eTV +lwo +eTV +lwo +lwo +lwo +lwo +lwo +qep +arX +arX +arX +arX +arX +eOM +lwo +eOM +lwo +bjv +ktd +axP +smy +smy +lOO +qfq +ohb +ohb +smy +smy +gCy +ktd +oQl +gJo +cZk +bIV +bFg +bFg +bFg +bFg +bFg +bFg +xHv +xHv +xHv +sFs +xHv +xHv +xHv +gik +gik +wXs +asz +aNN +afN +afP +fNE +rZt +rZt +rZt +rZt +gGf +rZt +rZt +qVo +wnK +wnK +wnK +rZt +asz +asz +hLB +rZt +rZt +asz +asz +shi +kVd +qEK +pGt +xgc +xgc +rAH +xgc +xgc +npY +rKq +jrg +amu +iTQ +amu +amu +amu +amu +amu +osE +gpz +osE +osE +bJj +gpz +amu +amu +amu +fXX +fXX +amu puZ puZ "} @@ -54884,71 +50769,71 @@ bFg bFg bFg bIV -aGd -aHd -aIG -tzo -aGd -fRg -fRg -bKV -bKV -aMK -aNl -aNl -aPn -bKV -bKV -tsU -uKZ -ocB -bKV -bKV -bKV -hDW -bzh -fRg -fRg -fRg -qXk -fRg -pvv -khz -fRg -iMA -kIo -lCe -kLM -iQq -iQq -kLM -iQq -iQq -huz -aQq -axJ -axJ -axJ -axJ -jJZ -oXU -axJ -dQq -axJ -axJ -rdS -huz -huz -sax -sax -kAw -kAw -kAw -kAw -kAw -bcV -oFl -puZ +xHv +xHv +xHv +uLi +xHv +xHv +xHv +gik +xHv +wXs +bXo +kxx +bIh +afQ +fNE +rZt +rZt +rZt +rZt +rZt +rZt +rZt +rkc +wnK +rZt +rZt +rZt +asz +asz +hMY +rZt +rZt +asz +asz +pLf +gZi +kVd +kVd +kVd +kVd +rAH +kVd +xgc +xXQ +boW +jrg +xgc +ukp +ukp +ukp +pLf +jrg +amu +osE +gpz +osE +osE +bJj +gpz +amu +amu +amu +fXX +fXX +amu puZ puZ "} @@ -55028,11 +50913,11 @@ oQl oQl oQl ktd -rHQ +xdk tXd aAh pSD -rHQ +xdk ktd oQl oQl @@ -55046,71 +50931,71 @@ bFg bFg bIV kaC -aGe -qkC -tzo -qkC -tGv -dtr -fRg -bKV -bKV -bKV -bKV -bKV -bKV -bKV -bKV -bKV -iMA -vHX -bKV -bKV -bKV -bsC -pvv -pvv -pvv -pvv -pvv -pvv -pvv -pvv -fRg -uKZ -uKZ -vqV -kLM -kLM -iQq -iQq -iQq -kLM -huz -pJM -ayZ -rdS -bqO -axJ -bqO -axJ -axJ -axJ -axJ -axJ -axJ -huz -huz -sax -sax -nZA -nZA -nZA -kAw -kAw -rBk -vAU -puZ +xHv +xHv +xHv +sFs +xHv +xHv +uLi +xHv +goe +wXs +lSU +aNL +nmi +afP +asz +asz +aTQ +asz +asz +wnK +dTU +wnK +asz +asz +qkL +fNE +fNE +asz +asz +asz +crF +crF +asz +asz +pLf +kVd +rAH +ccT +uzu +kVd +kVd +kVd +xgc +bkK +xgc +rAH +ukp +kVd +uzu +ukp +ukp +jrg +amu +osE +gpz +gpz +fXX +bJj +gpz +gpz +amu +amu +fXX +fXX +amu puZ puZ "} @@ -55190,11 +51075,11 @@ oQl oQl oQl ktd -rHQ +xdk ush vUL aCA -rHQ +xdk ktd oQl oQl @@ -55208,71 +51093,71 @@ bFg bFg cZk kaC -rXn -dsx -dsx -dsx -waS -uji -uji -fRg -fRg -fRg -fRg -fRg -fRg -fRg -bKV -bKV -iMA -vHX -aWX -bKV -bKV -bsC -pvv -pvv -pvv -pvv -pvv -pvv -pvv -pvv -fRg -xQa -iMA -avx -uqb -kLM -iQq -iQq -kLM -tpg -exX -alW -arW -anJ -dQq -hmo -rdS -axJ -dQq -axJ -axJ -axJ -axJ -huz -huz -sax -sax -nZA -nZA -kAw -kAw -kAw -puZ -puZ -puZ +xHv +xHv +xHv +xHv +xHv +goe +xHv +xHv +xHv +wXs +lSU +lSU +afF +sBW +xDq +aSI +afF +aUT +asz +rMI +rMI +rMI +asz +emq +wnK +dTU +wnK +dTU +hfm +asz +rZt +rZq +asz +asz +pIV +jKm +dbO +pGt +kVd +kVd +huF +rAH +rAH +bkK +boW +ukp +ukp +kVd +ukp +ukp +ukp +bJj +iTQ +osE +gpz +gpz +bJj +amu +gpz +gpz +amu +amu +fXX +fXX +amu puZ puZ "} @@ -55353,9 +51238,9 @@ oQl oQl ktd ktd -rHQ -rHQ -rHQ +xdk +xdk +xdk ktd ktd oQl @@ -55374,67 +51259,67 @@ kaC kaC kaC kaC -kaC -uji -uji -fRg -aMs -vIk -lJh -loH -ppI -aMs -bKV -bKV -uKZ -nUa -bKV -bKV -bKV -iDW -bAX -fRg -fRg -fRg -fRg -pgh -fRg -ohq -mKB -cLq -iMA -avx -voo -kLM -iQq -iQq -kLM -tpg -exX -qIr -azS -qny -aDu -aut -kfW -axJ -axJ -axJ -axJ -axJ -rdS -huz -huz -sax -sax -nZA -nZA -kAw -kAw -kAw -puZ -puZ -puZ +kaC +xHv +xHv +xHv +xHv +wXs +lSU +lSU +tSI +rZt +gLv +rZt +gLv +afF +wBf +wnK +dTU +wnK +asz +kbZ +chU +gTv +sHf +tRq +chU +ogu +rZt +rZt +asz +asz +pLf +pLf +uzu +kVd +uzu +uzu +uzu +boW +eXQ +eWl +boW +ukp +ukp +xgc +ukp +ukp +ukp +bJj +bJj +osE +bJj +bJj +bJj +amu +gpz +gpz +amu +amu +fXX +fXX +pLS puZ puZ "} @@ -55532,71 +51417,71 @@ mIL fQX fQX fQX -kaC -kaC -kaC -kaC -kaC -uji -uji -uji -uji -uKZ -uKZ -uji -uji -uji -qLA -uji -uKZ -aVT -fRg -fRg -oYH -uKZ -bFS -ail -ail -ail -uKZ -uji -uji -iMA -iMA -iMA -uKZ -ehV -aDM -kTP -iQq -iQq -kLM -uqb -huz -cio -ieD -aKR -aDu -huz -axJ -rdS -rti -ieD -axJ -axJ -hIu -huz -huz -sax -sax -nZA -nZA -kAw -kAw -kAw -puZ -puZ -puZ +oQl +oQl +oQl +oQl +oQl +mIL +mIL +gaz +mIL +bme +lSU +lSU +aOv +afF +rZt +rZt +gLv +afF +wBf +wnK +dTU +pkK +asz +emq +chU +kbZ +chU +gTv +chU +fNE +uvU +rZt +asz +asz +pLf +pLf +pLf +ukp +ukp +kVd +uzu +kVd +nEQ +ukp +xgc +ukp +xgc +kVd +ukp +ukp +ukp +bJj +bJj +bJj +qMc +bJj +rbq +osE +gpz +gpz +amu +amu +fXX +fXX +lAb puZ puZ "} @@ -55702,63 +51587,63 @@ oQl oQl oQl oQl -uKZ -hsw -aNp -bfR -oYH -oYH -pvv -pvv -pvv -pvv -pvv -pvv -pvv -pvv -pvv -pvv -pvv -pvv -pvv -gqe -uji -jkM -bHC -xwo -bHC -lCp -idG -kLM -iQq -iQq -kLM -kLM -huz -huz -huz -huz -huz -huz -mpt -axJ -rxd -sFv -axJ -rdS -hRC -huz -huz -sax -qCr -kAw -nZA -kAw -kAw -puZ -puZ -puZ -puZ +ood +bme +lSU +lSU +lSU +aSI +aRs +uRt +flN +sBW +rZt +nOB +rMI +rMI +asz +tRq +wdy +dTU +bZZ +dTU +twc +fNE +rZt +uvU +asz +asz +pLf +pLf +pLf +pLf +pLf +pLf +pLf +pLf +npY +nij +rAH +ukp +ukp +pLf +pLf +ukp +xgc +bJj +bJj +bJj +bJj +bJj +fXX +osE +gpz +amu +amu +amu +fXX +igJ +fXX puZ puZ "} @@ -55864,63 +51749,63 @@ oQl oQl oQl oQl -uKZ -xSk -aNq -oYH -fRg -oYH -pvv -pvv -pvv -pvv -pvv -pvv -pvv -pvv -pvv -pvv -pvv -pvv -pvv -fRg -hGj -iQq -iOu -kLM -iOu -kLM -kLM -iQq -kLM -iQq -iQq -iQq -iQq -pKK -iQq -iOu -kLM -huz -rdS -axJ -amH -tbR -axJ -rdS -ixC -huz -huz -sax -hrk -kAw -kAw -kAw -kAw -puZ -puZ -puZ -puZ +mIL +bme +lSU +lSU +lSU +lSU +lSU +wBf +kEs +fgB +kEs +flN +asz +asz +asz +asz +asz +asz +tDg +iWX +wZh +asz +rMI +kdy +asz +asz +asz +asz +asz +asz +asz +asz +asz +pLf +uzu +ukp +xgc +ukp +ukp +ukp +pLf +ukp +bJj +fXX +fXX +bJj +gpz +bJj +bJj +fXX +vOb +cuJ +fXX +bJj +fXX +fXX +pLS puZ puZ "} @@ -55974,115 +51859,115 @@ eOM lwo uWj arX -arX -bjv -ecj -ecj -ecj -ecj -ecj -ecj -aaO -eOM -eOM -eOM -eOM -qep -agM -bjv -lwo -lwo -lwo -eOM -arX -oQl -oQl -oQl -oQl -oQl -oQl -mIL -oQl -oQl -oQl -oQl -oQl -mIL -mIL -oQl -oQl -oQl -oQl -oQl -oQl -oQl -mIL -fQX -fQX -fQX -fQX -cKL -oQl -oQl -oQl -oQl -uKZ -cHB -xSk -afd -fRg -oYH -aSA -gIQ -aTh -aVx -aWI -aYd -baX -bcJ -pvv -pvv -pvv -pvv -pvv -fRg -hGj -iQq -iQq -iQq -iQq -iQq -iQq -kLM -aDM -kLM -iQq -iQq -iQq -iQq -iQq -iQq -iQq -huz -aut -rdS -aCy -tdc -axJ -axJ -tZW -huz -huz -sax -hrk -kAw -nZA -kAw -kAw -puZ -puZ -puZ -puZ +arX +bjv +ecj +ecj +ecj +ecj +ecj +ecj +aaO +eOM +eOM +eOM +eOM +qep +agM +bjv +lwo +lwo +lwo +eOM +arX +oQl +oQl +oQl +oQl +oQl +oQl +mIL +oQl +oQl +oQl +oQl +oQl +mIL +mIL +oQl +oQl +oQl +oQl +oQl +oQl +oQl +mIL +fQX +fQX +fQX +fQX +cKL +oQl +oQl +oQl +oQl +mIL +bme +lSU +twi +flN +flN +flN +kEs +kEs +flN +eit +vTc +asz +coj +coj +asz +dtE +goj +goj +goj +goj +goj +goj +aiD +goj +asz +agz +asz +asz +asz +asz +asz +asz +pLf +ukp +uzu +fBA +xgc +ukp +ukp +ukp +xgc +bJj +gpz +gpz +bJj +bJj +gpz +rbq +fXX +rbq +mwJ +fXX +fXX +fXX +fXX +pLS puZ puZ "} @@ -56188,63 +52073,63 @@ oQl oQl oQl oQl -uji -uKZ -uKZ -uji -dtr -oYH -pvv -fhv -aUA -aVB -aWQ -aVx -aVx -aVx -bqN -aVx -dbH -dKR -pvv -fRg -hGj -kLM -iQq -iQq -iQq -iQq -iQq -kLM -kLM -uqb -kLM -iQq -iQq -iQq -iQq -iQq -tpg -exX -qIr -aut -rdS -rdS -axJ -axJ -rdS -huz -huz -sax -hrk -kAw -nZA -kAw -kAw -puZ -puZ -puZ -puZ +mIL +mIL +uIE +flN +flN +flN +flN +flN +eit +kEs +kEs +flN +rMI +dTU +dTU +rMI +goj +chU +goj +chU +chU +chU +goj +chU +aiD +asz +twt +agY +aha +arK +arU +asz +asz +pLf +pLf +ukp +uzu +ukp +ukp +xgc +ukp +bJj +fXX +gpz +gpz +vlD +bJj +bJj +bJj +osE +bJj +amu +amu +amu +amu +amu +amu puZ puZ "} @@ -56351,58 +52236,58 @@ oQl oQl oQl mIL -mIL -mIL -uKZ -fRg -oYH -pvv -aTh -aUx -aVU -aWS -aYf -baY -bdk -aWS -bYO -aWQ -dbH -eVG -fRg -hGj -uqb -kLM -kLM -iQq -iQq -ipc -iQq -kLM -iQq -iQq -iQq -iQq -iQq -iQq -iQq -tpg -exX -qIr -rdS -axJ -axJ -axJ -axJ -axJ -huz -huz +fQX +gaz +uIE +flN +flN +gCL +flN +kEs +flN +flN +vTc +rMI +dTU +dTU +rMI +goj +wnK +goj +wnK +wnK +wnK +goj +wnK +goj +fNE +aud +rZt +rZt +rZt +nBh +ajg +asz +qfZ +jrg +jrg +jrg +ukp +ukp +ukp +bJj +bJj +bJj +gpz +bJj +bJj +bJj +bJj +fXX +osE +fXX +amu sax -hrk -nZA -nZA -kAw -kAw puZ puZ puZ @@ -56514,59 +52399,59 @@ oQl mIL mIL ood -ood -uKZ -aQg -oYH -pvv -aTi -aUy -aVL -vVq -aVL -aVL -aVL -aWS -clp -aVU -aUA -gIQ -fRg -hGj -uqb -uqb -uqb -kLM -iQq -ipc -iQq -iQq -iQq -iQq -iQq -iQq -iQq -iQq -iQq -eSN -akF -alS -aMW -wHx -dQq -axJ -axJ -huz -huz -huz -hrk -nZA -nZA -nZA -kAw -kAw -bcV -oFl +mIL +lqu +flN +eit +flN +kEs +kEs +fgB +kEs +kOi +lSU +coj +coj +lSU +dtE +rZt +rZt +rZt +rZt +mgT +rZt +uvU +goj +fNE +aud +miD +ptr +ptr +rZt +aCB +aeU +fXX +bJj +bJj +bJj +bJj +bJj +bJj +bJj +bJj +gpz +bJj +bJj +bJj +jrg +amu +gpz +bJj +osE +amu +sax +sax +sax puZ puZ puZ @@ -56668,67 +52553,67 @@ mIL mIL mPu fQX -fQX -fQX +jAL +jAL fQX mIL mIL mIL mIL ood -ood -uKZ -aQg -oYH -pvv -aTj -aUz -aVL -aWS -aYg -bbg -bea -aWS -cbk -aWU -deV -fhv -fRg -hGj -kLM -kLM -iQq -iQq -kLM -vdk -iQq -iQq -iQq -iQq -iQq -iQq -iQq -iQq -iQq -tpg -exX -qIr -axJ -axJ -axJ -dQq -axJ -huz -huz -huz -hrk -kAw -kAw -kAw -kAw -kAw -rBk -vAU +pqj +vwn +uIE +flN +kEs +flN +flN +kEs +flN +kOi +lSU +lSU +lSU +lSU +bxW +wnK +goj +aNf +rZt +nBs +goj +txU +goj +fNE +aud +ptr +miD +miD +rZt +ava +asz +qfZ +dVw +gpz +gpz +bJj +bJj +jrg +bJj +bJj +gpz +bJj +bJj +jrg +jrg +amu +rbq +rbq +rbq +amu +sax +sax +sax puZ puZ puZ @@ -56831,64 +52716,64 @@ mIL mIL fQX fQX -fQX -fQX -mIL +jAL +jAL mIL +vJu mIL ood +fQX +jAL mIL -mIL -uKZ -fRg -oYH -pvv -pvv -aUw -aVB -aWU -aVN -aVN -aVN -bqN -aVN -deV -pvv -pvv -gxK -hGj -iQq -iQq -iQq -kLM -iQq -iQq -iQq -iQq -iQq -iQq -iQq -kLM -kLM -iQq -iQq -iQq -huz -axJ -axJ -rBC -rdS -axJ -axJ -tkm -ncS -hrk -hrk -kAw -kAw -kAw -kAw -kAw +lSU +uIE +flN +kEs +agw +agw +kEs +wXh +lSU +cvn +lSU +wOO +goj +chU +goj +lfk +rZt +uII +aiD +chU +goj +fNE +aud +rZt +rZt +mRU +ptr +aue +asz +jrg +bJj +gpz +gpz +bJj +jrg +jrg +jrg +gpz +gpz +gpz +bJj +osE +jrg +iTQ +rbq +rbq +rbq +amu +sax puZ puZ puZ @@ -56996,61 +52881,61 @@ fQX fQX mIL mIL -mIL +vJu mIL mIL oQl -oQl -uji -fRg -oYH -pvv -pvv -aTj -aVN -aWV -aYx -bbh -beK -pvv -pvv -pvv -pvv -pvv -fRg -hGj -kLM -iQq -kLM -uqb -kLM -iQq -iQq -iQq -iQq -iQq -kLM -iQq -iQq -kLM -kLM -kLM -huz -krU -axJ -axJ -trX -uLT -wTT -fXB -ncS -hrk -hrk -nZA -kAw -kAw -kAw -kAw +mIL +mIL +lSU +ehO +jis +lSU +acU +acU +lSU +lSU +lSU +fgH +lSU +bYk +goj +chU +dsY +uKo +rZt +wjK +goj +vTj +goj +asz +agm +rZt +rZt +ard +asz +asz +asz +jrg +bJj +bJj +bJj +jrg +jrg +jrg +bJj +gpz +bJj +gpz +bJj +osE +jrg +amu +fXX +fXX +bJj +amu +sax puZ puZ puZ @@ -57153,66 +53038,66 @@ fQX fQX fQX fQX +jAL fQX -fQX -fQX -mIL +jAL mIL +jAL ood ood oQl oQl +ood oQl -uji -dtr -oYH -pvv -aTn -pvv -pvv -pvv -pvv -pvv -bfi -pvv -pvv -pvv -pvv -pvv -fRg -hGj -kLM -iOu -uqb -kJQ -uqb -iQq -iQq -iQq -iQq -kLM -iQq -kLM -uqb -kLM -que -aDM -huz -kys -pef -rdS -axJ -axJ -xvQ -fXB -ncS -kAw -nZA -kAw -kAw -nZA -kAw -hrk +oQl +lSU +dwQ +lSU +lSU +lSU +lSU +lSU +lSU +dwQ +lSU +qRo +goj +wnK +goj +kMJ +rZt +neS +goj +wnK +oag +asz +agl +rZt +rZt +apk +asz +jrg +jrg +jrg +osE +bJj +bJj +jrg +jrg +bJj +bJj +gpz +gpz +bJj +bJj +bJj +gpz +bJj +fXX +bJj +fXX +amu +sax puZ puZ puZ @@ -57324,57 +53209,57 @@ ood mIL oQl oQl +mIL oQl -uji -oYH -ahe -pvv -ugD -pvv -pvv -aWY -pvv -pvv -pvv -pvv -pvv -pvv -pvv -pvv -fRg -uji -aDM -uqb -uqb -uqb -kLM -kLM -iQq -iQq -iQq -iQq -kLM -kLM -sqb -lNg -aDM -aDM -huz -huz -huz -huz -tRN -rdS -xvQ -huz -huz -kAw -kAw -kAw -kAw -nZA -kAw -hrk +oQl +lSU +dwQ +eBG +dwQ +dwQ +elw +rRP +lSU +cvn +lSU +exm +goj +rWS +fVI +rZt +rZt +rZt +goj +chU +goj +aeU +rZt +rZt +rZt +aCB +asz +jrg +jrg +jrg +osE +bJj +bJj +bJj +jrg +bJj +bJj +bJj +bJj +bJj +bJj +bJj +gpz +bJj +bJj +fXX +fXX +iTQ +sax puZ puZ puZ @@ -57450,94 +53335,94 @@ ecj ecj ecj ecj -ecj -ecj -mIL -iMb -jAL -mIL -ood -oQl -oQl -oQl -mIL -mIL -cKL -fQX -iMb -fQX -fQX -fQX -iMb -iMb -iMb -iMb -iMb -iMb -fQX -fQX -fQX -fQX -fQX -fQX -mIL -mIL -mIL -gaz -oQl -oQl -oQl -uji -uKZ -uKZ -uji -uji -uji -uKZ -fRg -fRg -fRg -bfy -fRg -uKZ -uji -dMo -ano -dMo -uji -hzJ -kLM -lNE -uqb -iOu -kLM -iQq -iQq -iQq -iQq -kLM -kLM -uqb -uqb -uqb -hzJ -huz -huz -huz -huz -ncS -ncS -ncS -huz -huz -hrk -kAw -kAw -kAw -kAw -kAw -hrk -hrk +ecj +ecj +mIL +iMb +jAL +mIL +ood +oQl +oQl +oQl +mIL +mIL +cKL +fQX +iMb +fQX +fQX +fQX +iMb +iMb +iMb +iMb +iMb +iMb +fQX +jAL +fQX +fQX +fQX +jAL +mIL +fQX +fQX +gaz +oQl +oQl +oQl +oQl +oQl +lSU +dwQ +dwQ +dwQ +oaO +dwQ +rEW +lSU +lSU +lSU +lSU +bxW +chU +goj +rZt +rZt +rZt +goj +chU +oag +asz +aud +rZt +rZt +tiw +asz +jrg +jrg +jrg +bJj +osE +bJj +bJj +jrg +bJj +osE +bJj +gpz +gpz +gpz +bJj +bJj +gpz +gpz +fXX +jrg +iTQ +sax +sax puZ puZ puZ @@ -57639,67 +53524,67 @@ iMb kri fQX fQX -fQX -fQX -fQX -fQX mIL mIL +jAL +mIL +jAL +mIL mIL oQl oQl oQl oQl -cKL -fQX -oQl -oQl oQl -uKZ -iMA -aYy -bbj -aYy -iMA -uKZ -uji -uji -uji -uji -uji -hzJ -qhm -qhm -kXs -mcH -mcH -mcH -mcH -nEH -mcH -mcH -mcH -pNo -qhm -qhm -hzJ -hzJ -hzJ -hzJ -hzJ -kAw -kAw -kAw -hrk -hrk -kAw -nZA -nZA -kAw -kAw -kAw -kAw -hrk +lSU +lSU +lSU +lSU +dwQ +oaO +dwQ +dwQ +dwQ +bXo +rZt +goj +vuj +goj +eaz +rZt +nwd +goj +wnK +goj +fNE +aud +rZt +rZt +ahT +asz +jrg +jrg +jrg +jrg +bJj +bJj +bJj +bJj +bJj +bJj +bJj +gpz +gpz +bJj +osE +bJj +gpz +gpz +bJj +jrg +jrg +sax +sax puZ puZ puZ @@ -57800,67 +53685,67 @@ fIT fQX iMb fQX -mIL -mIL -fQX -fQX -fQX +wMh +cQY +kSO +qBM +wMh mIL mIL ood oQl oQl +vJu oQl oQl -fQX -cKL -jAL oQl oQl oQl -jAL -aYF -bbt -jAL -bGk -fQX -snZ -hzJ -hzJ -hzJ -hzJ -kLM -kLM -knI -iQq -iQq -iQq -iQq -iQq -iQq -iQq -iQq -kLM -uqb -uqb -uqb -qEB -hzJ -hzJ -hzJ -hzJ -kAw -hrk -kAw -kAw -kAw -kAw -kAw -nZA -kAw -kAw -kAw -kAw +lSU +elw +dwQ +dwQ +dwQ +dwQ +lSU +lQm +goj +chU +goj +dqH +rZt +sCl +onM +chU +goj +fNE +afX +rZt +rZt +ahS +asz +jrg +jrg +jrg +jrg +bJj +bJj +bJj +osE +bJj +bJj +gpz +bJj +bJj +jrg +osE +bJj +bJj +gpz +bJj +jrg +jrg +sax puZ puZ puZ @@ -57961,68 +53846,68 @@ tPz fIT fQX iMb -mIL -mIL -mIL -fQX -fQX -fQX -fQX +wMh +wMh +cQY +rJI +gso +pcY +gaz mIL gaz oQl oQl +vJu oQl oQl -cKL -jAL -jAL +acb oQl oQl -jAL -jAL -jAL -jAL -bfB -bGx -fQX -snZ -hzJ -hzJ -hzJ -hzJ -uAd -kbK -jpE -iQq -kLM -iQq -iQq -iQq -iQq -iQq -iQq -iQq -iQq -kLM -kLM -qoU -hXB -hzJ -hzJ -hzJ -xMz -xMz -xMz -xMz -kAw -kAw -kAw -kAw -kAw -kAw -hrk -hrk +lSU +dwQ +dwQ +lSU +lSU +lSU +lSU +lSU +goj +chU +dsY +hTb +pRH +lpA +goj +chU +goj +fNE +afV +rZt +rZt +aCB +asz +jrg +jrg +jrg +jrg +bJj +bJj +bJj +gpz +gpz +gpz +bJj +bJj +bJj +jrg +gRJ +bJj +osE +gpz +bJj +bJj +jrg +sax puZ puZ puZ @@ -58123,67 +54008,67 @@ aXZ fIT fQX iMb +wMh +wMh +cQY +aNy +xtc +nKD mIL mIL mIL -fQX -fQX -fQX -fQX -mIL -mIL mIL mIL -mhl -fQX -fQX -fQX -fQX -jAL -jAL -fQX -fQX -jAL -jAL -jAL -pqj -jAL -pqj -fKb -kLM -iQq -kLM -kLM -kLM -kLM -uqb -iOu -kLM -iQq -iQq -iQq -iQq -iQq -iOu -iQq -iQq -uqb -hbD -boz -iDy -hzJ -hzJ -xMz -xMz -xMz -xMz -xMz -kAw -nZA -nZA -kAw -kAw -kAw +vJu +oRK +mIx +aca +oQl +oQl +lSU +dwQ +dwQ +lSU +gpb +adC +adC +lSU +goj +wnK +goj +gKE +pue +iYc +onM +wnK +goj +asz +afz +azH +agZ +aUS +asz +jrg +jrg +jrg +jrg +jrg +bJj +gpz +osE +osE +gpz +bJj +bJj +mKF +jrg +jrg +gRJ +sUD +hXH +apD +hXH +czI puZ puZ puZ @@ -58281,71 +54166,71 @@ aDE aDG wRa vIi -fIT -fIT -iMb -fQX -fQX -mIL -fQX -fQX -fQX +fIT +fIT +iMb fQX fQX +wMh +pXU +wMh +wMh +aFO +gaz mIL mIL mIL mIL -wxY -fQX -fQX -fQX -fQX -fQX -fQX -fQX -fQX -fQX -fQX -fQX -jAL -pqj -jAL -kvQ -uqb -aDM -iQq -kLM -kLM -iQq -uqb -uqb -iQq -iQq -iQq -iQq -iQq -kLM -kLM -iQq -iQq -uqb -lNg -lNg -xvb -uqb -xMz -xMz -xMz -xMz -xMz -xMz -kAw -nZA -kAw -kAw -nZA -kAw +vJu +kbT +skl +skl +ors +lSU +lSU +dwQ +dwQ +lSU +dwQ +dwQ +dwQ +lSU +dtE +rZt +rZt +iXr +pue +wui +rZt +rZt +goj +asz +asz +asz +asz +asz +asz +jrg +jrg +jrg +bJj +bJj +bJj +gpz +osE +osE +bJj +osE +osE +jrg +jrg +jrg +jrg +jrg +flN +fLk +flN +pxA puZ puZ puZ @@ -58372,16 +54257,16 @@ acT qDT eAZ acT -hgx +npM cso agh -hgx -hgx -hgx -hgx +npM +npM +npM +npM agh cso -hgx +npM acT aii agh @@ -58447,67 +54332,67 @@ fIT fQX iMb iMb -fQX +jAL fQX fQX fQX fQX cKL -fQX -fQX +ood +cKL mIL mIL rcD -mIL -fQX -fQX -fQX -fQX -fQX -fQX -fQX -fQX -fQX -fQX -jAL -pqj -jAL -fQX -kLM -uqb -kLM -kLM -kLM -kLM -kLM -iQq -iQq -kLM -iQq -iQq -iQq -iQq -kLM -iQq -iQq -iQq -iQq -iQq -iQq -iQq -iQq -xMz -xMz -xMz -xMz -xMz -xMz -kAw -kAw -kAw -kAw -kAw -kAw +vJu +sgB +skl +skl +ors +dwQ +elw +dwQ +dwQ +adI +adj +dwQ +adH +lSU +goj +wnK +goj +wnK +wnK +wnK +goj +txU +goj +rZt +rZt +flN +asz +jrg +jrg +jrg +osE +osE +osE +osE +bJj +bJj +bJj +bJj +sLj +sLj +tnG +jrg +jrg +jrg +jrg +wBf +flN +dwQ +rZt +pxA puZ puZ puZ @@ -58534,7 +54419,7 @@ aDn eAZ eAZ aDn -hgx +npM cso agh cso @@ -58543,7 +54428,7 @@ cso cso agh cso -hgx +npM acT acT aii @@ -58603,7 +54488,7 @@ iMb iMb iMb aDH -iMb +pqj iMb iMb iMb @@ -58616,60 +54501,60 @@ fQX cKL fQX fQX -fQX +ood mIL ood mIL -wxY -fQX -fQX -fQX -fQX -fQX -fQX -fQX -fQX -jAL -jAL -pqj -jAL -fQX -jAL -cdh -aDM -uqb -kLM -kLM -uqb -uqb -kLM -kLM -kLM -iQq -bzK -iQq -iQq -kLM -kLM -iQq -iQq -iQq -iQq -iQq -iQq -iQq -xMz -xMz -xMz -xMz -xMz -xMz -kAw -kAw -kAw -kAw -kAw -kAw +vJu +abV +skl +skl +ors +elw +dwQ +dwQ +dwQ +lSU +ada +dwQ +dwQ +adI +goj +chU +goj +chU +chU +chU +goj +chU +aiD +rZt +flN +rZt +dwQ +bJj +osE +bJj +osE +osE +osE +gpz +bJj +gpz +gpz +bJj +ciL +gpz +bJj +xuz +jrg +jrg +jrg +pxA +flN +rZt +dwQ +pxA puZ puZ puZ @@ -58699,10 +54584,10 @@ aek eXL cso agh -hgx -hgx -hgx -hgx +npM +npM +npM +npM agh cso qdd @@ -58758,15 +54643,15 @@ oQl oQl jAL iMb +foc +jjX +jjX +jjX +vip iMb -iMb -fQX -fQX -iMb -iMb -iMb -iMb -fQX +pqj +pqj +pqj iMb iMb fQX @@ -58782,56 +54667,56 @@ mIL mIL ood mIL -mhl -fQX -cKL -fQX -fQX -cKL -fQX -fQX -fQX -jAL -pqj -fQX -jAL -fQX -jAL -kvQ -kLM -xvb -kLM -kLM -kLM -kLM -kLM -gCx -kJQ -kLM -qkI -iQq -kLM -iOu -kLM -iQq -qkI -lNg -kLM -lNg -uqb -uqb -xMz -xMz -xMz -xMz -xMz -xMz -cwZ -cwZ -kAw -kAw -kAw -kAw +vJu +oQl +abX +ors +ors +lSU +lSU +dwQ +dwQ +lSU +ada +ady +adE +lSU +goj +goj +goj +goj +goj +goj +goj +goj +goj +wnK +wnK +dwQ +flN +fXX +bJj +bJj +osE +bJj +bJj +gpz +gpz +bJj +bJj +xuz +ciL +bJj +bJj +bJj +jrg +jrg +jrg +pxA +dwQ +dwQ +rZt +pxA puZ puZ puZ @@ -58920,17 +54805,17 @@ iMb iMb iMb iMb -fQX -fQX -fQX -iMb -iMb +nqK +vRW +cwU +wQr +pAx +pqj +pqj iMb -fQX -fQX iMb iMb -fQX +jAL iMb iMb pQE @@ -58941,59 +54826,59 @@ mIL gaz mIL mIL -ood +jAL gaz mIL +vJu oQl oQl -fQX -cKL -fQX +abY +abY oQl -cKL -fQX -jAL -pqj -fQX -cKL -xMz -xMz -xMz -xMz -aDM -uqb -kLM -gCx -kLM -kLM -kLM -kLM -kLM -kLM -iQq -iQq -kLM -iQq -iQq -kLM -uqb -iQq -iQq -iQq -kLM -xvb -uqb -uCs -xMz -xMz -xMz -xMz -cwZ -cwZ -kAw -kAw -kAw -hrk +lSU +dwQ +dwQ +lSU +lSU +lSU +lSU +lSU +shO +gAV +gAV +chU +rZt +rZt +kmO +rZt +rZt +rZt +rZt +rZt +rZt +bJj +bJj +osE +gpz +bJj +bJj +bJj +bJj +bJj +gpz +gpz +rad +fXX +osE +gRJ +jrg +jrg +jrg +pxA +mwF +chU +mwF +pxA puZ puZ puZ @@ -59082,16 +54967,16 @@ iMb iMb jAL jAL -fQX -jAL -jAL +nqK +kxN +ttN +mgt +ivU +pqj +pqj iMb -fQX iMb -fQX -fQX aiz -iMb fQX iMb pQE @@ -59106,56 +54991,56 @@ ood gaz ood mIL -mIL oQl oQl oQl oQl oQl oQl -fQX -jAL -jAL -cKL -xMz -xMz -xMz -xMz -oqf -uqb -kTP -kLM -kLM -iQq -iQq -iQq -kLM -iQq -iQq -iQq -iQq -iQq -kLM -kLM -iQq -iQq -iQq -qkI -iQq -uqb -kLM -aDM -xMz -xMz -xMz -iQq -fKb -cwZ -kAw -kAw -kAw -hrk -puZ +lSU +dwQ +dwQ +dwQ +bXo +rZt +dTU +dTU +rZt +gAV +gAV +chU +asz +asz +asz +asz +asz +wnK +wnK +dwQ +wnK +dwQ +bJj +bJj +gpz +gpz +gpz +bJj +osE +osE +gpz +gpz +xTK +fXX +fXX +jrg +jrg +jrg +jrg +pxA +xcE +ggL +xcE +pxA puZ puZ puZ @@ -59244,14 +55129,14 @@ jAL jAL jAL jAL -jAL -iMb -jAL -iMb -jAL -iMb -iMb -iMb +nqK +kxN +jbK +mgt +dPW +pqj +pqj +pqj iMb iMb iMb @@ -59267,57 +55152,57 @@ ood ood mIL mIL -mIL -mIL -iMb +jAL oQl oQl oQl oQl -vAp -mhl -jAL -mhl -vAp -xMz -cnt -cnt -uqb -xvb -kLM -gCx -kLM -iQq -cQW -cQW -cQW -iQq -iQq -iQq -gGH -kLM -kLM -cQW -cQW -cQW -cQW -kLM -iQq -iQq -kLM -kLM -lNg -xMz -xMz -iQq -kLM -fKb -cwZ -kAw -kAw -hrk -kAw -puZ +oQl +oQl +lSU +rHO +rHO +fgK +lSU +chU +gAV +gAV +gAV +gAV +gAV +chU +fNE +aeP +miD +aiV +asz +rZt +rZt +rZt +rZt +flN +pxA +fXX +bJj +jrg +bJj +bJj +bJj +bJj +bJj +osE +pxA +wnK +wnK +pxA +pxA +pxA +pxA +pxA +mwF +chU +mwF +pxA puZ puZ puZ @@ -59406,12 +55291,12 @@ iMb jAL jAL iMb -iMb -iMb -jAL -jAL -jAL -iMb +tDb +qXx +laL +cWG +gNJ +pqj iMb iMb iMb @@ -59430,56 +55315,56 @@ mIL mIL iMb iMb +oQl +iMb iMb iMb oQl oQl -oQl -oQl -fQX -fQX -jAL -fQX -jAL -xMz -aDM -uqb -uqb -uqb -kLM -gGH -iQq -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -kLM -cQW -cQW -cQW -cQW -kLM -gGH -cQW -kLM -uqb -lNg -erj -kLM -tcp -iQq -fKb -cwZ -kAw -kAw -hrk -sax -puZ +lSU +lSU +lSU +lSU +lSU +chU +gAV +rZt +dTU +dTU +dTU +rZt +fNE +aeC +rZt +aeR +asz +wnK +dwQ +wnK +wnK +wnK +dwQ +bJj +bJj +jrg +jrg +bJj +osE +jrg +jrg +jrg +pxA +wnK +wnK +pxA +pxA +pxA +pxA +pxA +vKu +vKu +vKu +pxA puZ puZ puZ @@ -59567,12 +55452,12 @@ iMb iMb iMb iMb -iMb -iMb -iMb -iMb -iMb -iMb +aiz +mRa +lCB +lCB +lCB +wVJ iMb iMb iMb @@ -59589,59 +55474,59 @@ pQE mIL iMb iMb -vpD -vpD -vpD -ccu -ols +iMb +iMb +iMb oQl +iMb +iMb +iMb +iMb oQl oQl oQl -fQX -jAL -pqj -jAL -fQX -xMz -aDM -uqb -uqb -kLM -iQq -iQq -iQq -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -kLM -cQW -iQq -kLM -kLM -wgM -kLM -ath -iQq -fKb -cwZ -kAw -sax -sax -sax -puZ +oQl +oQl +asz +chU +gAV +chU +asz +asz +aed +asz +asz +aez +mRU +aeQ +asz +asz +rZt +flN +rZt +dwQ +flN +flN +amu +bJj +jrg +jrg +jrg +jrg +jrg +jrg +pxA +wnK +wnK +pxA +pxA +pxA +pxA +pxA +mwF +chU +mwF +pxA puZ puZ puZ @@ -59749,61 +55634,61 @@ pQE pQE mIL fQX +jAL +iMb +iMb +iMb +iMb +iMb +iMb +jAL +iMb +iMb iMb iMb -vpD -vpD -qFx -oQl -oQl -oQl oQl oQl oQl -fQX -jAL -pqj -jAL -fQX -xMz -uqb -uqb -uqb -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -iQq -kLM -kLM -lNg -uqb -kLM -kLM -fKb -kAw -kAw -sax -sax -sax -puZ +asz +rZH +gAV +chU +adW +aeb +rZt +miD +miD +adi +aCB +asz +asz +asz +asz +wnK +wnK +wnK +wnK +dwQ +flN +jrg +jrg +jrg +jrg +jrg +pxA +pxA +pxA +wnK +wnK +vKu +wnK +hfw +wnK +rZt +mwF +chU +mwF +pxA puZ puZ puZ @@ -59913,60 +55798,60 @@ fQX jAL fQX iMb -ben -vpD -vpD -oQl -oQl -oQl -oQl -oQl -oQl -oQl -fQX jAL -fQX -fQX -xMz -uqb -uqb -kLM -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -iQq -iQq -iQq -kLM -kLM -ath -aDM -kLM -sax -sax -sax -sax -sax -sax -sax -puZ -puZ +iMb +iMb +iMb +iMb +jAL +iMb +iMb +iMb +jAL +jAL +iMb +oQl +asz +chU +gAV +chU +adV +rZt +rZt +rZt +rZt +rZt +mOu +asz +asz +asz +asz +asz +rZt +flN +rZt +rZt +dwQ +pxA +pxA +pxA +jrg +jrg +pxA +mWE +pJA +wnK +mwF +mwF +mwF +mwF +vKu +bJi +bJi +chU +mwF +pxA +flN puZ puZ puZ @@ -60069,67 +55954,67 @@ fQX iMb iMb iMb -iMb +jAL fQX jAL fQX jAL jAL -vpD -ben -vpD -oQl -oQl -oQl -oQl -oQl +iMb +jAL +iMb +iMb +iMb +iMb +iMb +iMb +jDv +jDv +jDv +jDv oQl -vAp -mhl -fQX -mhl -vAp -xMz -uqb -kLM -iQq -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -boD -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -iQq -iQq -iQq -iQq -iQq -kLM -lMO -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ +asz +chU +gAV +chU +adT +rZt +rZt +rZt +rZt +mRU +aex +asz +nVn +iCJ +pxA +pxA +pxA +wnK +wnK +wnK +wnK +jXM +wnK +pxA +jrg +jrg +pxA +nHH +pDp +wnK +flN +flN +flN +flN +flN +mwF +rZt +rZt +mwF +pxA +kTd +kTd puZ puZ puZ @@ -60240,59 +56125,59 @@ pqj jAL iMb iMb -oQl -oQl -oQl -oQl -oQl -oQl -aUP -fQX -jAL iMb -xMz -xMz -kLM -uqb -kLM -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -iQq -iQq -kLM -kLM -uqb -kLM -uqb -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ +iMb +iMb +iMb +iMb +jDv +asz +asz +asz +asz +asz +chU +gAV +chU +adS +aea +ptr +aew +aew +aex +asz +asz +lXy +nxA +vKu +vKu +bUe +rZt +chU +rZt +chU +dwQ +wnK +pxA +pxA +pxA +pxA +nzf +wnK +wnK +aQm +aXc +aXI +bbG +flN +mwF +chU +bJi +bJi +wBf +flN +kTd +kTd puZ puZ puZ @@ -60402,59 +56287,59 @@ pqj jAL jAL iMb -oQl -oQl -oQl -oQl -oQl -aTr +iMb iMb iMb jAL iMb -xMz -xMz -aDM -uqb -kLM -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -kLM -kLM -kLM -aDM -aDM -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ +jDv +asz +dAt +sNX +dAt +rZt +chU +gAV +chU +asz +asz +asz +asz +asz +asz +asz +asz +pxA +vdS +wnK +vKu +pxA +pxA +ahu +wnK +wnK +wnK +wnK +jXM +uYt +pxA +pxA +nrr +wnK +wnK +aPe +act +acA +bah +flN +mwF +chU +bJi +rZt +flN +flN +rZt +flN puZ puZ puZ @@ -60564,59 +56449,59 @@ pqj jAL jAL cKL -jAL -oQl oQl -cKL -cKL -jAL iMb -jAL -jAL -pDH -xMz -xMz -aDM -uqb -uqb -kLM -iQq -iQq -iQq -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -kLM -cQW -iQq -kLM -kLM -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ +iMb +iMb +iMb +oQl +asz +gha +rZt +sNX +rZt +chU +gAV +chU +rZt +asz +wqc +tOq +hXQ +asz +goj +goj +pxA +vKu +wnK +wnK +cSn +pxA +pxA +sIX +chU +rZt +chU +rZt +wnK +pxA +pxA +nmT +pve +wnK +aPd +aRz +aXi +bag +flN +mwF +chU +mwF +flN +wBf +pxA +pxA +kTd puZ puZ puZ @@ -60726,60 +56611,60 @@ pqj pqj jAL jAL -fQX -aOk -aQh -rxF -wuw -iMb +oQl +oQl +oQl iMb jAL -onF -qRV -mIL -xMz -xMz -aDM -uqb -kLM -kLM -gGH -iQq -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -iQq -cQW -cQW -cQW -cQW -kLM -gGH -cQW -iQq -kLM -uqb -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ +oQl +asz +dAt +sNX +dAt +rZt +chU +gAV +chU +rZt +bXo +biM +biM +biM +goj +xJA +goj +bXo +vKu +soj +wnK +wnK +cSn +pxA +pxA +pxA +wnK +wnK +wnK +wnK +wnK +pxA +kRV +pEv +wnK +flN +flN +flN +flN +flN +mwF +chU +fww +sNX +dAt +rZt +pxA +kTd +flN puZ puZ puZ @@ -60888,60 +56773,60 @@ pqj pqj pqj iMb -jAL -aOl -oCk -jAL -jJf -jAL -jAL -iMb -iMb -kVs -bbF -xMz -xMz -uqb -uqb -kLM -kLM -gCx -iQq -iQq -cQW -cQW -cQW -iQq -iQq -iQq -gGH -iQq -iQq -cQW -cQW -cQW -cQW -kLM -iQq -iQq -iQq -kLM -uqb -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ +oQl +oQl +oQl +oQl +oQl +oQl +asz +rZt +bgC +rZt +rZt +chU +gAV +chU +rZt +asz +biM +biM +biM +goj +lpA +uWA +pxA +tNP +lFp +jcv +fqJ +cSn +pxA +pxA +pxA +rZH +rZt +chU +rZt +rZt +pxA +pxA +pxA +wnK +mwF +mwF +mwF +mwF +vKu +mwF +chU +uOR +uuN +acP +flN +pxA +flN +kTd puZ puZ puZ @@ -61050,60 +56935,60 @@ jAL pqj pqj pqj -pqj -jAL -iMb -aRo -jAL -pqj -iMb -jAL -iMb -jAL -jAL -jAL -kvQ -uqb -dgG -kLM -kLM -kLM -kLM -kLM -iQq -iQq -iQq -iQq -iQq -iQq -iQq -iQq -iQq -iQq -iQq -iQq -iQq -iQq -gCx -kLM -kLM -uqb -kLM -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ +oQl +oQl +oQl +oQl +oQl +oQl +asz +eaa +rZt +rZt +rZt +chU +gAV +chU +iaK +kTI +biM +xtI +qOd +goj +wnK +goj +pxA +pxA +pxA +pxA +pxA +pxA +pxA +pxA +pxA +wnK +wnK +wnK +wnK +wnK +pxA +rZt +vKu +vKu +wnK +vKu +wnK +vKu +wnK +bJi +chU +fww +sNX +dAt +flN +rZt +flN +kTd puZ puZ puZ @@ -61212,61 +57097,61 @@ jAL jAL pqj pqj -pqj -pqj -jAL -jAL -iMb -aTt -iMb -iMb -iMb -fQX -jAL -jAL -kvQ -oUu -uqb -kLM -kLM -uqb -iQq -gCx -kLM -uqb -kLM -iQq -iQq -kLM -kLM -kLM -kLM -kLM -iQq -iQq -kLM -kLM -kLM -uqb -uqb -uqb -kLM -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ +oQl +oQl +oQl +oQl +oQl +oQl +asz +rZt +byr +rZt +rZt +chU +gAV +chU +iaK +feA +biM +biM +biM +uuv +yhX +goj +pxA +rZt +dTU +osV +dTU +dTU +dTU +rZt +kap +rZt +crF +crF +crF +wnK +vKu +wnK +chU +rZt +chU +rZt +chU +rZt +chU +rZt +chU +mwF +bgC +flN +flN +rZt +flN +kTd +flN puZ puZ "} @@ -61374,61 +57259,61 @@ jAL jAL jAL pqj -pqj -pqj -pqj -pqj -aSF -aTw -iMb -iMb -jAL -pqj -jAL -pqj -iQq -iQq -iQq -iQq -uqb -uqb -uqb -uqb -kLM -kLM -iQq -gCx -uqb -uqb -qkI -iQq -kLM -kLM -kLM -kLM -gCx -kLM -uqb -uqb -aDM -upf -aDM -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ +oQl +oQl +oQl +oQl +oQl +oQl +asz +wFB +eSt +wFB +dTU +rZt +gAV +rZt +txX +kRj +qOZ +cEj +qOZ +goj +fwv +goj +bXo +chU +kQJ +vKu +wnK +vKu +wnK +vKu +kap +rZt +crF +crF +crF +wnK +vKu +wnK +chU +rZt +chU +rZt +chU +rZt +chU +rZt +chU +mwF +byr +rZt +rZt +xun +flN +kTd +kue puZ puZ "} @@ -61536,61 +57421,61 @@ aKk lyh rxF wcF -pqj -aOp -pqj -pqj -fQX -iMb -iMb -jAL +oQl +oQl +oQl iMb iMb -jAL -jAL -kvQ -iOu -kLM -kLM -kLM -kLM -kLM -uqb -uqb -uqb -uqb -kLM -iQq -uqb -uqb -kLM -kLM -kLM -uqb -uqb -uqb -uqb -kLM -uqb -kLM -aDM -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ +rib +asz +gha +uuN +sNX +rZt +chU +gAV +chU +rZt +asz +dnH +jft +ghS +asz +goj +goj +pxA +rZH +vKu +ghU +pxA +vQm +vFX +pxA +pxA +wnK +wnK +wnK +wnK +wnK +pxA +rZt +vKu +vKu +wnK +vKu +wnK +vKu +wnK +bJi +chU +fww +gaJ +dAt +rZt +rZt +flN +flN +kTd puZ puZ "} @@ -61694,65 +57579,65 @@ gkv gkv puZ puZ -aKn +jAL rMb iMb jJf -pqj -pqj -cKL -cKL -fQX -iMb -fQX iMb iMb iMb jAL -jAL -kvQ -uqb -aDM -uqb -uqb -uqb -uqb -uqb -uqb -qza -kLM -hXX -kLM -cko -rLu -nMR -kLM -uqb -uqb -aDM -xvb -uqb -uqb -uqb -aDM -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ +iMb +rib +asz +wFB +eSt +wFB +dTU +rZt +gAV +rZt +dTU +asz +asz +asz +asz +asz +goj +goj +fNE +chU +wnK +pxA +pxA +pxA +pxA +pxA +pxA +mcw +rZt +chU +rZt +chU +pxA +pxA +pxA +wnK +mwF +mwF +mwF +mwF +vKu +mwF +chU +uOR +rZt +acP +flN +pxA +flN +flN +kue puZ puZ "} @@ -61860,61 +57745,61 @@ aKn jAL jAL jAL -pqj -cKL -iMb -fQX -cKL -aTH +jAL iMb iMb -hJd iMb iMb -puZ -puZ -puZ -puZ -eaB -eaB -gJk -hIn -aDM -uqb -uqb -uqb -uqb -mfa -jqx -slO -nNl -nMR -uqb -aDM -kLM -kLM -xvb -uqb -aDM -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ +rib +asz +asz +asz +asz +asz +wnK +wnK +wnK +wnK +wnK +rZt +rZt +asz +wTm +biM +biM +fNE +chU +vKu +vQm +pxA +rZt +iQe +wnK +gFb +nMk +chU +rZt +chU +rZt +fNE +mWE +pDu +wnK +flN +flN +flN +flN +flN +mwF +chU +fww +sNX +dAt +flN +pxA +flN +flN +kue puZ puZ "} @@ -62022,61 +57907,61 @@ jAL jAL jAL jAL -pqj jAL iMb -aRp -lyh -rxF -wuw -aVW -fQX iMb -cKL -puZ -puZ -puZ -puZ -slO -slO -slO -aKP -aMn -puZ -kfl -eGe -rnO -qza -mNs -slO -slO -ofl -uqb -xvb -kGW -aDM -uqb -uqb -uqb -aDM -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ +jAL +jAL +oQl +oQl +oQl +asz +asz +asz +goj +goj +djO +goj +wnK +rZt +rZt +fNE +nPH +biM +biM +fNE +chU +wnK +vFX +pxA +iQe +qaF +chU +kyu +drx +rZt +chU +rZt +chU +fNE +mHU +pDp +wnK +aQm +aXc +aXI +bbG +flN +mwF +chU +mwF +rZt +flN +rZt +flN +flN +flN +kue puZ puZ "} @@ -62184,61 +58069,61 @@ puZ aLD aMv jAL +oQl +oQl +oQl +oQl jAL -iMb -cKL -iMb -rMb -iMb -fqb -jAL -iMb -cKL -iMb -puZ -puZ -puZ -puZ -puZ -slO -slO -slO -slO -puZ -lLv -cQW -rbA -uqb -mNs -xMz -slO -ofl -uqb -uqb -aDM -uqb -uqb -uqb -uqb -riV -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ +oQl +oQl +oQl +asz +iqt +rZt +goj +axa +hVs +djO +dBB +rZt +rZt +fNE +sdF +biM +biM +fNE +rZt +vKu +pxA +pxA +rZt +hEE +chU +gFb +sfM +oHF +wnK +wnK +wnK +pxA +lYG +wnK +wnK +aPe +aSJ +aXn +bah +flN +mwF +chU +mwF +flN +rZt +rZt +flN +flN +kTd +kue puZ puZ "} @@ -62346,61 +58231,61 @@ puZ puZ puZ jAL +oQl +oQl +oQl +oQl jAL -cKL -fQX -iMb -aSG -aTL -fQX -iMb -fQX -cKL -puZ -puZ -puZ -puZ -puZ -puZ -slO -slO -slO -puZ -puZ -mev -cQW -rbA -aDM -mOv -niL -niL -oqH -uqb -uqb -uqb -uqb -uqb -uqb -aDM -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -jCE -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ +oQl +oQl +oQl +asz +bNu +rZt +djO +qCs +pPt +goj +wnK +qyE +wnK +asz +fNE +fNE +fNE +pxA +xvS +xvS +pxA +pxA +iQe +qaF +chU +pxA +pxA +pxA +vKu +vKu +vKu +pxA +lGU +wnK +wnK +aPd +aRz +aXi +bag +flN +mwF +chU +mwF +rZt +flN +flN +pxA +flN +kTd +kue puZ puZ "} @@ -62510,59 +58395,59 @@ puZ puZ puZ puZ -cKL -fQX -iMb -iMb -iMb -cKL -iMb -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -uqb -uqb -uqb -kLM -uqb -uqb -uqb -aDM -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -hFl -jLx -iWS -jCE -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ +oQl +oQl +oQl +oQl +oQl +oQl +asz +iIe +rZt +goj +fHM +rZt +goj +wnK +rZt +vKu +vKu +vKu +vKu +vKu +vKu +vKu +toN +vKu +vKu +dgF +hEE +wnK +pxA +pxA +pxA +wnK +wnK +wnK +pxA +hQO +pve +wnK +flN +wAP +flN +dJS +flN +mwF +chU +mwF +rZt +rZt +wBf +pxA +kTd +kue +flN puZ puZ "} @@ -62673,57 +58558,57 @@ puZ puZ puZ puZ -cKL -fQX -cKL -cKL -iMb -fQX -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -snN -uqb -uqb -aDM -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -oaP -jCE -jCE -jCE -jCE -acO -puZ -puZ -puZ -puZ -puZ -puZ +oQl +oQl +oQl +oQl +oQl +asz +asz +rZt +goj +rZt +rZt +goj +wnK +xEB +vKu +wnK +rZt +rZt +eFQ +rZt +rZt +wnK +vKu +vKu +vKu +vKu +vKu +jqT +pxA +ctk +cVy +chU +mwF +pxA +kRV +kVe +wnK +mwF +mwF +yiS +mwF +vKu +mwF +chU +mwF +rZt +flN +flN +flN +kTd +kTd puZ puZ puZ @@ -62837,55 +58722,55 @@ puZ puZ puZ puZ -fQX -iMb -fQX -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -aDM -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -hFl -jCE -jCE -acM -jCE -jCE -puZ -puZ -puZ -puZ -puZ +oQl +oQl +oQl +asz +tqs +rZt +goj +rZt +fHM +goj +wnK +rZt +vKu +wnK +rZt +rZt +wnK +rZt +rZt +wnK +vKu +vKu +vKu +vKu +vKu +bqy +pxA +ugP +mwF +chU +mwF +pxA +pxA +pxA +pxA +wnK +vKu +xIL +vKu +wnK +bJi +chU +bJi +rZt +twi +flN +flN +kue +flN puZ puZ puZ @@ -63002,51 +58887,51 @@ puZ puZ puZ puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -hFl -jCE -jCE -jCE -puZ -puZ -puZ -puZ -puZ +asz +wgp +rZt +goj +qNK +hrb +goj +wnK +rZt +vKu +lkX +ift +sQU +vKu +sQU +ift +lkX +rhS +oqQ +oqQ +lNm +vKu +pxA +pxA +ctk +mwF +chU +bJi +euA +euA +euA +bJi +euA +euA +euA +euA +bJi +bJi +chU +mwF +rZt +twi +kue +kTd +flN puZ puZ puZ @@ -63164,50 +59049,50 @@ puZ puZ puZ puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -hFl -hFl -puZ -puZ -puZ -puZ -puZ +asz +fjd +rZt +djO +kts +wAM +djO +asz +pxA +pxA +ift +smI +hUG +vKu +udJ +euA +ift +pKP +nNN +kZy +pKP +vKu +uLu +pxA +pxA +bJi +rZt +dTU +dTU +dTU +dTU +rZt +dTU +dTU +dTU +dTU +rZt +dTU +rZt +mwF +rZt +pxA +kTd +kTd puZ puZ puZ @@ -63326,48 +59211,48 @@ puZ puZ puZ puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ +asz +asz +asz +goj +djO +goj +goj +asz +pxA +pxA +lkX +ffw +uim +vKu +uim +ffw +lkX +vKu +vKu +vKu +vKu +vKu +uLu +pxA +pxA +bJi +bJi +euA +vPR +euA +euA +bJi +euA +euA +vPR +euA +bJi +euA +euA +bJi +rZt +pxA puZ puZ puZ @@ -63490,46 +59375,46 @@ puZ puZ puZ puZ +asz +asz +asz +asz +asz +asz puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ +pxA +ueu +mMa +euA +vKu +euA +euA +vKu +rhS +oqQ +oqQ +rhS +ueu +pxA +pxA +pxA +pxA +pxA +sym +ctk +ugP +pxA +pxA +xwi +thc +ckI +dTn +pxA +pxA +rZt +rZt +rZt +pxA puZ puZ puZ @@ -63659,39 +59544,39 @@ puZ puZ puZ puZ +pxA +pxA +pxA +pxA +pxA +pxA +pxA +pxA +pxA +pxA +pxA +pxA +pxA +pxA puZ puZ puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ +pxA +pxA +pxA +pxA +pxA +pxA +pxA +pxA +pxA +pxA +pxA +pxA +pxA +pxA +pxA +pxA puZ puZ puZ diff --git a/maps/map_files/Ice_Colony_v3/lz2-south-caves/20.destroyed_lz2-south-caves.dmm b/maps/map_files/Ice_Colony_v3/lz2-south-caves/20.destroyed_lz2-south-caves.dmm index cdf4c289476b..58e057efe1fd 100644 --- a/maps/map_files/Ice_Colony_v3/lz2-south-caves/20.destroyed_lz2-south-caves.dmm +++ b/maps/map_files/Ice_Colony_v3/lz2-south-caves/20.destroyed_lz2-south-caves.dmm @@ -13,9 +13,7 @@ icon_state = "large"; name = "ice shard" }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) "g" = ( /obj/item/shard{ @@ -35,9 +33,7 @@ icon_state = "large"; name = "ice shard" }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/caves/s_lz2) "o" = ( /obj/item/shard{ @@ -62,9 +58,7 @@ /turf/open/auto_turf/ice/layer0, /area/shiva/interior/caves/s_lz2) "v" = ( -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/caves/s_lz2) "w" = ( /obj/structure/barricade/snow, @@ -76,15 +70,11 @@ name = "ice shard" }, /obj/structure/barricade/snow, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/caves/s_lz2) "z" = ( /obj/structure/barricade/metal/wired, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) "B" = ( /turf/closed/wall/shiva/prefabricated/reinforced/hull, @@ -108,9 +98,7 @@ /turf/open/auto_turf/ice/layer1, /area/shiva/exterior/lz2_fortress) "K" = ( -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) "L" = ( /turf/closed/wall/shiva/ice, @@ -136,9 +124,7 @@ icon_state = "medium"; name = "ice shard" }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) "T" = ( /obj/item/shard{ @@ -174,15 +160,11 @@ icon_state = "medium"; name = "ice shard" }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/caves/s_lz2) "Z" = ( /obj/structure/barricade/snow, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/caves/s_lz2) (1,1,1) = {" diff --git a/maps/map_files/Ice_Colony_v3/lz2-south-caves/30.builtup_lz2-south-caves.dmm b/maps/map_files/Ice_Colony_v3/lz2-south-caves/30.builtup_lz2-south-caves.dmm index 67c9c8136cb0..969190345f0f 100644 --- a/maps/map_files/Ice_Colony_v3/lz2-south-caves/30.builtup_lz2-south-caves.dmm +++ b/maps/map_files/Ice_Colony_v3/lz2-south-caves/30.builtup_lz2-south-caves.dmm @@ -5,9 +5,7 @@ "b" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/toy, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/lz2_habs) "c" = ( /turf/open/auto_turf/snow/layer4, @@ -17,9 +15,7 @@ /area/shiva/interior/caves/s_lz2) "e" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/shiva/interior/lz2_habs) "f" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic2/autoname, @@ -29,41 +25,29 @@ /turf/closed/wall/shiva/ice, /area/shiva/interior/oob) "k" = ( -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/lz2_habs) "l" = ( -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/shiva/interior/lz2_habs) "m" = ( /obj/effect/decal/cleanable/ash, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/shiva/interior/lz2_habs) "n" = ( /turf/open/auto_turf/snow/layer3, /area/shiva/exterior/cp_lz2) "o" = ( -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/lz2_habs) "p" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/tool, /obj/effect/spawner/random/powercell, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/lz2_habs) "q" = ( -/turf/open/floor/shiva{ - icon_state = "radiator_tile" - }, +/turf/open/floor/shiva/radiator_tile, /area/shiva/interior/lz2_habs) "r" = ( /turf/open/auto_turf/ice/layer2, @@ -73,32 +57,24 @@ /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/lz2_habs) "t" = ( /obj/structure/surface/rack, /obj/item/weapon/ice_axe/red, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/lz2_habs) "v" = ( /obj/structure/surface/rack, /obj/item/reagent_container/food/snacks/sliceable/bananabread, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/lz2_habs) "w" = ( /obj/structure/machinery/light/double{ dir = 4; pixel_y = -5 }, -/turf/open/floor/shiva{ - icon_state = "radiator_tile" - }, +/turf/open/floor/shiva/radiator_tile, /area/shiva/interior/lz2_habs) "x" = ( /turf/open/auto_turf/ice/layer1, @@ -118,9 +94,7 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/lz2_habs) "z" = ( /obj/structure/machinery/door/poddoor/shutters/almayer{ @@ -129,9 +103,7 @@ id = "nlz_shutters"; name = "\improper Bio-lab Shutters" }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/lz2_habs) "B" = ( /obj/structure/machinery/door/poddoor/shutters/almayer{ @@ -140,27 +112,21 @@ id = "nlz_shutters"; name = "\improper Bio-lab Shutters" }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/lz2_habs) "C" = ( /obj/structure/machinery/light/double{ dir = 8; pixel_y = -5 }, -/turf/open/floor/shiva{ - icon_state = "radiator_tile" - }, +/turf/open/floor/shiva/radiator_tile, /area/shiva/interior/lz2_habs) "D" = ( /turf/open/auto_turf/ice/layer0, /area/shiva/interior/caves/s_lz2) "F" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/lz2_habs) "G" = ( /obj/item/shard{ @@ -178,32 +144,24 @@ pixel_y = -5 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/lz2_habs) "K" = ( /obj/structure/machinery/light/double{ dir = 8; pixel_y = -5 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/lz2_habs) "L" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/lz2_habs) "P" = ( /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/lz2_habs) "Q" = ( /obj/item/clothing/shoes/snow, @@ -218,10 +176,7 @@ /obj/item/clothing/mask/rebreather, /obj/item/tank/emergency_oxygen/engi, /obj/item/clothing/mask/rebreather, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/north, /area/shiva/interior/lz2_habs) "S" = ( /obj/effect/decal/cleanable/dirt, @@ -233,18 +188,14 @@ "U" = ( /obj/structure/surface/table, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/lz2_habs) "V" = ( /obj/structure/surface/table, /obj/structure/largecrate/random/mini/chest/b{ pixel_x = -1 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/lz2_habs) "W" = ( /turf/closed/wall/shiva/prefabricated/reinforced/hull, @@ -260,14 +211,10 @@ pixel_y = -5; pixel_x = 2 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/lz2_habs) "Y" = ( -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) "Z" = ( /obj/structure/machinery/light/double{ @@ -275,9 +222,7 @@ pixel_y = 6 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/lz2_habs) (1,1,1) = {" diff --git a/maps/map_files/Ice_Colony_v3/lz2-variations/east-gate/blocked.dmm b/maps/map_files/Ice_Colony_v3/lz2-variations/east-gate/blocked.dmm index e7cccabcd6cf..fd089a343cfb 100644 --- a/maps/map_files/Ice_Colony_v3/lz2-variations/east-gate/blocked.dmm +++ b/maps/map_files/Ice_Colony_v3/lz2-variations/east-gate/blocked.dmm @@ -11,9 +11,7 @@ /area/shiva/exterior/lz2_fortress) "c" = ( /obj/effect/decal/cleanable/ash, -/turf/open/floor/shiva{ - icon_state = "radiator_tile" - }, +/turf/open/floor/shiva/radiator_tile, /area/shiva/exterior/lz2_fortress) "f" = ( /obj/item/weapon/gun/boltaction, @@ -25,9 +23,7 @@ "h" = ( /obj/structure/foamed_metal, /obj/effect/decal/cleanable/ash, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) "j" = ( /obj/item/lightstick/red/spoke/planted{ @@ -35,9 +31,7 @@ pixel_x = 12; pixel_y = 28 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) "l" = ( /obj/item/lightstick/red/spoke/planted{ @@ -48,9 +42,7 @@ /turf/open/auto_turf/snow/layer0, /area/shiva/exterior/cp_lz2) "m" = ( -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/exterior/lz2_fortress) "p" = ( /obj/structure/foamed_metal, @@ -59,29 +51,19 @@ /area/shiva/exterior/lz2_fortress) "r" = ( /obj/structure/foamed_metal, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) "u" = ( /obj/item/stack/sheet/metal/small_stack, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/east, /area/shiva/exterior/lz2_fortress) "w" = ( /obj/structure/foamed_metal, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/east, /area/shiva/exterior/lz2_fortress) "z" = ( /obj/structure/foamed_metal, -/turf/open/floor/shiva{ - icon_state = "radiator_tile" - }, +/turf/open/floor/shiva/radiator_tile, /area/shiva/exterior/lz2_fortress) "A" = ( /obj/item/lightstick/red/spoke/planted{ @@ -97,15 +79,10 @@ /area/shiva/exterior/lz2_fortress) "F" = ( /obj/effect/decal/cleanable/ash, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/east, /area/shiva/exterior/lz2_fortress) "H" = ( -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) "I" = ( /obj/structure/foamed_metal, @@ -116,14 +93,10 @@ pixel_x = 12; pixel_y = 25 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) "N" = ( -/turf/open/floor/shiva{ - icon_state = "radiator_tile" - }, +/turf/open/floor/shiva/radiator_tile, /area/shiva/exterior/lz2_fortress) "O" = ( /obj/structure/machinery/landinglight/ds2/spoke{ diff --git a/maps/map_files/Ice_Colony_v3/lz2-variations/east-gate/closed.dmm b/maps/map_files/Ice_Colony_v3/lz2-variations/east-gate/closed.dmm index 63cf02c171f8..190310c2c366 100644 --- a/maps/map_files/Ice_Colony_v3/lz2-variations/east-gate/closed.dmm +++ b/maps/map_files/Ice_Colony_v3/lz2-variations/east-gate/closed.dmm @@ -4,18 +4,14 @@ id = "eelz_shutters"; pixel_y = -22 }, -/turf/open/floor/shiva{ - icon_state = "radiator_tile" - }, +/turf/open/floor/shiva/radiator_tile, /area/shiva/exterior/lz2_fortress) "c" = ( /obj/structure/machinery/door_control{ id = "eelz_shutters"; pixel_y = 22 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) "d" = ( /turf/open/auto_turf/snow/layer1, @@ -34,18 +30,14 @@ pixel_x = 12; pixel_y = 28 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) "l" = ( /obj/item/lightstick/red/spoke/planted{ pixel_x = 12; pixel_y = 25 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) "m" = ( /obj/structure/flora/bush/snow{ @@ -66,14 +58,10 @@ id = "eelz_shutters"; pixel_y = 22 }, -/turf/open/floor/shiva{ - icon_state = "radiator_tile" - }, +/turf/open/floor/shiva/radiator_tile, /area/shiva/exterior/lz2_fortress) "u" = ( -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/exterior/lz2_fortress) "v" = ( /turf/open/auto_turf/snow/layer0, @@ -83,29 +71,20 @@ id = "elz_shutters"; pixel_y = 22 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) "D" = ( -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) "F" = ( /obj/structure/machinery/door_control{ id = "elz_shutters"; pixel_y = -22 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) "J" = ( -/turf/open/floor/shiva{ - dir = 4; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/east, /area/shiva/exterior/lz2_fortress) "Q" = ( /obj/structure/machinery/door/poddoor/shutters/almayer{ @@ -121,18 +100,14 @@ id = "elz_shutters"; pixel_y = 22 }, -/turf/open/floor/shiva{ - icon_state = "radiator_tile" - }, +/turf/open/floor/shiva/radiator_tile, /area/shiva/exterior/lz2_fortress) "S" = ( /obj/structure/machinery/door_control{ id = "eelz_shutters"; pixel_y = -22 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) "U" = ( /turf/closed/wall/shiva/prefabricated/reinforced/hull, @@ -151,9 +126,7 @@ id = "elz_shutters"; pixel_y = -22 }, -/turf/open/floor/shiva{ - icon_state = "radiator_tile" - }, +/turf/open/floor/shiva/radiator_tile, /area/shiva/exterior/lz2_fortress) (1,1,1) = {" diff --git a/maps/map_files/Ice_Colony_v3/lz2-variations/east/full-closed.dmm b/maps/map_files/Ice_Colony_v3/lz2-variations/east/full-closed.dmm index 4b5c38ce2535..7e3e5a909ec3 100644 --- a/maps/map_files/Ice_Colony_v3/lz2-variations/east/full-closed.dmm +++ b/maps/map_files/Ice_Colony_v3/lz2-variations/east/full-closed.dmm @@ -6,9 +6,7 @@ /turf/closed/wall/shiva/prefabricated/reinforced/hull, /area/shiva/exterior/lz2_fortress) "l" = ( -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) "S" = ( /obj/structure/flora/bush/snow{ diff --git a/maps/map_files/Ice_Colony_v3/lz2-variations/east/half-closed.dmm b/maps/map_files/Ice_Colony_v3/lz2-variations/east/half-closed.dmm index b1bf24256890..9b8d533d9ef8 100644 --- a/maps/map_files/Ice_Colony_v3/lz2-variations/east/half-closed.dmm +++ b/maps/map_files/Ice_Colony_v3/lz2-variations/east/half-closed.dmm @@ -3,24 +3,18 @@ /turf/open/auto_turf/snow/layer2, /area/shiva/exterior/cp_lz2) "c" = ( -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) "d" = ( /obj/structure/largecrate/random, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) "q" = ( /turf/closed/wall/shiva/prefabricated/reinforced/hull, /area/shiva/exterior/lz2_fortress) "t" = ( /obj/structure/largecrate/random/case/small, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) "O" = ( /turf/closed/wall/shiva/prefabricated/pink, @@ -36,9 +30,7 @@ /area/shiva/exterior/cp_lz2) "U" = ( /obj/structure/largecrate/random/secure, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) (1,1,1) = {" diff --git a/maps/map_files/Ice_Colony_v3/lz2-variations/eastsouth/full-closed.dmm b/maps/map_files/Ice_Colony_v3/lz2-variations/eastsouth/full-closed.dmm index 74d967c95bb1..79b0d6456798 100644 --- a/maps/map_files/Ice_Colony_v3/lz2-variations/eastsouth/full-closed.dmm +++ b/maps/map_files/Ice_Colony_v3/lz2-variations/eastsouth/full-closed.dmm @@ -15,32 +15,23 @@ /obj/item/clothing/mask/rebreather, /obj/item/tank/emergency_oxygen/engi, /obj/item/clothing/mask/rebreather, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/east, /area/shiva/exterior/lz2_fortress) "g" = ( /turf/closed/wall/shiva/prefabricated/reinforced/hull, /area/shiva/exterior/lz2_fortress) "h" = ( -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) "i" = ( /turf/closed/wall/shiva/prefabricated/pink, /area/shiva/exterior/lz2_fortress) "m" = ( -/turf/open/floor/shiva{ - icon_state = "radiator_tile" - }, +/turf/open/floor/shiva/radiator_tile, /area/shiva/exterior/lz2_fortress) "t" = ( /obj/structure/largecrate/random/mini/ammo, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) "P" = ( /turf/open/auto_turf/snow/layer2, diff --git a/maps/map_files/Ice_Colony_v3/lz2-variations/eastsouth/half-open.dmm b/maps/map_files/Ice_Colony_v3/lz2-variations/eastsouth/half-open.dmm index 42a9aee0420b..7c55fc2884ac 100644 --- a/maps/map_files/Ice_Colony_v3/lz2-variations/eastsouth/half-open.dmm +++ b/maps/map_files/Ice_Colony_v3/lz2-variations/eastsouth/half-open.dmm @@ -12,10 +12,7 @@ /obj/item/clothing/mask/rebreather, /obj/item/tank/emergency_oxygen/engi, /obj/item/clothing/mask/rebreather, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/east, /area/shiva/exterior/lz2_fortress) "d" = ( /obj/structure/flora/bush/snow{ @@ -24,9 +21,7 @@ /turf/open/auto_turf/snow/layer3, /area/shiva/exterior/cp_lz2) "h" = ( -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) "p" = ( /turf/open/auto_turf/snow/layer3, @@ -60,9 +55,7 @@ /turf/open/auto_turf/snow/layer2, /area/shiva/exterior/cp_lz2) "X" = ( -/turf/open/floor/shiva{ - icon_state = "radiator_tile" - }, +/turf/open/floor/shiva/radiator_tile, /area/shiva/exterior/lz2_fortress) (1,1,1) = {" diff --git a/maps/map_files/Ice_Colony_v3/lz2-variations/north/full-closed.dmm b/maps/map_files/Ice_Colony_v3/lz2-variations/north/full-closed.dmm index 4a3306f0b22d..ed8cae18048f 100644 --- a/maps/map_files/Ice_Colony_v3/lz2-variations/north/full-closed.dmm +++ b/maps/map_files/Ice_Colony_v3/lz2-variations/north/full-closed.dmm @@ -3,9 +3,7 @@ /turf/closed/wall/shiva/prefabricated/reinforced/hull, /area/shiva/exterior/lz2_fortress) "c" = ( -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) "s" = ( /turf/open/auto_turf/snow/layer4, diff --git a/maps/map_files/Ice_Colony_v3/lz2-variations/north/full-open.dmm b/maps/map_files/Ice_Colony_v3/lz2-variations/north/full-open.dmm index aea08fa5bf48..f73664ae2eda 100644 --- a/maps/map_files/Ice_Colony_v3/lz2-variations/north/full-open.dmm +++ b/maps/map_files/Ice_Colony_v3/lz2-variations/north/full-open.dmm @@ -6,9 +6,7 @@ /turf/open/auto_turf/snow/layer2, /area/shiva/exterior/cp_lz2) "w" = ( -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) "C" = ( /turf/open/auto_turf/snow/layer4, diff --git a/maps/map_files/Ice_Colony_v3/lz2-variations/south-gate/blocked.dmm b/maps/map_files/Ice_Colony_v3/lz2-variations/south-gate/blocked.dmm index 60525207b45b..c74e4644a044 100644 --- a/maps/map_files/Ice_Colony_v3/lz2-variations/south-gate/blocked.dmm +++ b/maps/map_files/Ice_Colony_v3/lz2-variations/south-gate/blocked.dmm @@ -34,15 +34,11 @@ /area/shiva/exterior/cp_lz2) "k" = ( /obj/item/stack/sheet/metal/small_stack, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/exterior/lz2_fortress) "l" = ( /obj/item/stack/sheet/metal/small_stack, -/turf/open/floor/shiva{ - icon_state = "radiator_tile" - }, +/turf/open/floor/shiva/radiator_tile, /area/shiva/exterior/lz2_fortress) "o" = ( /obj/structure/machinery/landinglight/ds2/spoke{ @@ -53,60 +49,41 @@ /area/shiva/exterior/lz2_fortress) "p" = ( /obj/structure/foamed_metal, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/north, /area/shiva/exterior/lz2_fortress) "s" = ( /turf/open/auto_turf/snow/layer0, /area/shiva/exterior/cp_lz2) "u" = ( -/turf/open/floor/shiva{ - icon_state = "radiator_tile" - }, +/turf/open/floor/shiva/radiator_tile, /area/shiva/exterior/lz2_fortress) "w" = ( -/turf/open/floor/shiva{ - dir = 1; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/north, /area/shiva/exterior/lz2_fortress) "x" = ( /obj/item/lightstick/red/spoke/planted{ pixel_x = 12; pixel_y = 25 }, -/turf/open/floor/shiva{ - icon_state = "radiator_tile" - }, +/turf/open/floor/shiva/radiator_tile, /area/shiva/exterior/lz2_fortress) "z" = ( -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) "A" = ( /obj/item/stack/sheet/metal/small_stack, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/north, /area/shiva/exterior/lz2_fortress) "B" = ( /obj/structure/foamed_metal, /obj/effect/decal/cleanable/ash, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) "C" = ( /turf/open/auto_turf/snow/layer2, /area/shiva/exterior/cp_lz2) "F" = ( -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/exterior/lz2_fortress) "I" = ( /obj/item/lightstick/red/spoke/planted{ @@ -114,9 +91,7 @@ pixel_x = -13; pixel_y = 25 }, -/turf/open/floor/shiva{ - icon_state = "radiator_tile" - }, +/turf/open/floor/shiva/radiator_tile, /area/shiva/exterior/lz2_fortress) "J" = ( /obj/structure/machinery/landinglight/ds2/spoke{ @@ -130,15 +105,11 @@ /area/shiva/exterior/lz2_fortress) "M" = ( /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) "N" = ( /obj/structure/foamed_metal, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) "Q" = ( /obj/structure/foamed_metal, @@ -158,10 +129,7 @@ /obj/item/weapon/gun/boltaction{ pixel_x = -6 }, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/north, /area/shiva/exterior/lz2_fortress) (1,1,1) = {" diff --git a/maps/map_files/Ice_Colony_v3/lz2-variations/south-gate/closed.dmm b/maps/map_files/Ice_Colony_v3/lz2-variations/south-gate/closed.dmm index d4111051f784..5c2f90c17f72 100644 --- a/maps/map_files/Ice_Colony_v3/lz2-variations/south-gate/closed.dmm +++ b/maps/map_files/Ice_Colony_v3/lz2-variations/south-gate/closed.dmm @@ -16,23 +16,17 @@ pixel_x = 12; pixel_y = 25 }, -/turf/open/floor/shiva{ - icon_state = "radiator_tile" - }, +/turf/open/floor/shiva/radiator_tile, /area/shiva/exterior/lz2_fortress) "e" = ( /obj/structure/machinery/door_control{ id = "sslz_shutters"; pixel_x = -22 }, -/turf/open/floor/shiva{ - icon_state = "radiator_tile" - }, +/turf/open/floor/shiva/radiator_tile, /area/shiva/exterior/lz2_fortress) "f" = ( -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) "g" = ( /turf/open/auto_turf/snow/layer2, @@ -45,9 +39,7 @@ id = "sslz_shutters"; pixel_x = -22 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) "r" = ( /turf/open/auto_turf/snow/layer4, @@ -74,30 +66,21 @@ id = "slz_shutters"; pixel_x = -22 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) "y" = ( /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) "B" = ( -/turf/open/floor/shiva{ - dir = 1; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/north, /area/shiva/exterior/lz2_fortress) "F" = ( /obj/structure/machinery/door_control{ id = "sslz_shutters"; pixel_x = 25 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) "L" = ( /obj/structure/machinery/door_control{ @@ -116,23 +99,17 @@ id = "slz_shutters"; pixel_x = -22 }, -/turf/open/floor/shiva{ - icon_state = "radiator_tile" - }, +/turf/open/floor/shiva/radiator_tile, /area/shiva/exterior/lz2_fortress) "U" = ( -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/exterior/lz2_fortress) "W" = ( /obj/structure/machinery/door_control{ id = "sslz_shutters"; pixel_x = 25 }, -/turf/open/floor/shiva{ - icon_state = "radiator_tile" - }, +/turf/open/floor/shiva/radiator_tile, /area/shiva/exterior/lz2_fortress) "X" = ( /obj/item/lightstick/red/spoke/planted{ @@ -143,9 +120,7 @@ /area/shiva/exterior/cp_lz2) "Y" = ( /obj/structure/foamed_metal, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) (1,1,1) = {" diff --git a/maps/map_files/Ice_Colony_v3/lz2-variations/southeast-gate/cleared.dmm b/maps/map_files/Ice_Colony_v3/lz2-variations/southeast-gate/cleared.dmm index bb1a8e543218..e3fe7e69221b 100644 --- a/maps/map_files/Ice_Colony_v3/lz2-variations/southeast-gate/cleared.dmm +++ b/maps/map_files/Ice_Colony_v3/lz2-variations/southeast-gate/cleared.dmm @@ -19,10 +19,7 @@ /area/shiva/exterior/lz2_fortress) "h" = ( /obj/item/stack/sheet/metal/small_stack, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/east, /area/shiva/exterior/lz2_fortress) "k" = ( /obj/item/stack/sheet/metal/small_stack, @@ -36,9 +33,7 @@ /turf/closed/wall/shiva/prefabricated/reinforced/hull, /area/shiva/exterior/lz2_fortress) "o" = ( -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) "p" = ( /obj/effect/decal/cleanable/ash, @@ -48,28 +43,21 @@ /obj/structure/machinery/power/apc{ dir = 8 }, -/turf/open/auto_turf/snow/layer2, +/turf/open/floor/plating, /area/shiva/exterior/cp_lz2) "r" = ( /obj/effect/decal/cleanable/ash, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) "t" = ( -/turf/open/floor/shiva{ - dir = 4; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/east, /area/shiva/exterior/lz2_fortress) "u" = ( /obj/item/lightstick/red/spoke/planted{ pixel_x = 12; pixel_y = 25 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) "w" = ( /obj/structure/machinery/landinglight/ds2/spoke{ @@ -101,14 +89,10 @@ /area/shiva/exterior/cp_lz2) "F" = ( /obj/item/stack/snow, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) "J" = ( -/turf/open/floor/shiva{ - icon_state = "radiator_tile" - }, +/turf/open/floor/shiva/radiator_tile, /area/shiva/exterior/lz2_fortress) "L" = ( /obj/item/lightstick/red/spoke/planted{ @@ -116,21 +100,14 @@ pixel_x = 12; pixel_y = 28 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) "O" = ( /obj/effect/decal/cleanable/ash, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/east, /area/shiva/exterior/lz2_fortress) "Q" = ( -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/exterior/lz2_fortress) "T" = ( /turf/open/auto_turf/snow/layer0, @@ -142,16 +119,12 @@ /obj/structure/machinery/power/apc{ dir = 4 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) "Z" = ( /obj/structure/foamed_metal, /obj/effect/decal/cleanable/ash, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) (1,1,1) = {" diff --git a/maps/map_files/Ice_Colony_v3/lz2-variations/southeast-gate/closed.dmm b/maps/map_files/Ice_Colony_v3/lz2-variations/southeast-gate/closed.dmm index 5ecd5cf734f5..c4ff89c41af2 100644 --- a/maps/map_files/Ice_Colony_v3/lz2-variations/southeast-gate/closed.dmm +++ b/maps/map_files/Ice_Colony_v3/lz2-variations/southeast-gate/closed.dmm @@ -3,48 +3,37 @@ /turf/closed/wall/shiva/prefabricated/reinforced/hull, /area/shiva/exterior/lz2_fortress) "f" = ( -/turf/open/floor/shiva{ - dir = 4; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/east, /area/shiva/exterior/lz2_fortress) "i" = ( /obj/structure/machinery/door_control{ id = "seelz_shutters"; pixel_y = -22 }, -/turf/open/floor/shiva{ - icon_state = "radiator_tile" - }, +/turf/open/floor/shiva/radiator_tile, /area/shiva/exterior/lz2_fortress) "j" = ( -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) "l" = ( /obj/structure/machinery/door_control{ id = "selz_shutters"; pixel_y = -22 }, -/turf/open/floor/shiva{ - icon_state = "radiator_tile" - }, +/turf/open/floor/shiva/radiator_tile, /area/shiva/exterior/lz2_fortress) "m" = ( /obj/structure/machinery/power/apc{ dir = 8 }, -/turf/open/auto_turf/snow/layer2, +/turf/open/floor/plating, /area/shiva/exterior/cp_lz2) "o" = ( /obj/structure/machinery/door_control{ id = "selz_shutters"; pixel_y = 22 }, -/turf/open/floor/shiva{ - icon_state = "radiator_tile" - }, +/turf/open/floor/shiva/radiator_tile, /area/shiva/exterior/lz2_fortress) "q" = ( /obj/item/lightstick/red/spoke/planted{ @@ -52,49 +41,37 @@ pixel_x = 12; pixel_y = 28 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) "r" = ( /obj/structure/machinery/door_control{ id = "seelz_shutters"; pixel_y = -22 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) "t" = ( -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/exterior/lz2_fortress) "v" = ( /obj/structure/machinery/power/apc{ dir = 4 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) "w" = ( /obj/item/lightstick/red/spoke/planted{ pixel_x = 12; pixel_y = 25 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) "z" = ( /obj/structure/machinery/door_control{ id = "selz_shutters"; pixel_y = 22 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) "B" = ( /turf/open/auto_turf/snow/layer0, @@ -112,9 +89,7 @@ id = "selz_shutters"; pixel_y = -22 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) "I" = ( /obj/item/lightstick/red/spoke/planted{ @@ -129,24 +104,18 @@ id = "seelz_shutters"; pixel_y = 22 }, -/turf/open/floor/shiva{ - icon_state = "radiator_tile" - }, +/turf/open/floor/shiva/radiator_tile, /area/shiva/exterior/lz2_fortress) "K" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) "L" = ( /obj/effect/decal/cleanable/blood{ dir = 4; icon_state = "gib6" }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) "N" = ( /turf/open/auto_turf/snow/layer1, @@ -165,9 +134,7 @@ id = "seelz_shutters"; pixel_y = 22 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) "V" = ( /turf/open/auto_turf/snow/layer2, diff --git a/maps/map_files/Ice_Colony_v3/lz2-variations/southeast/full-closed.dmm b/maps/map_files/Ice_Colony_v3/lz2-variations/southeast/full-closed.dmm index 88715aa30e8d..a16b6fff9252 100644 --- a/maps/map_files/Ice_Colony_v3/lz2-variations/southeast/full-closed.dmm +++ b/maps/map_files/Ice_Colony_v3/lz2-variations/southeast/full-closed.dmm @@ -24,23 +24,16 @@ /obj/item/clothing/mask/rebreather, /obj/item/tank/emergency_oxygen/engi, /obj/item/clothing/mask/rebreather, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/north, /area/shiva/exterior/lz2_fortress) "r" = ( /turf/open/auto_turf/snow/layer4, /area/shiva/exterior/cp_lz2) "L" = ( -/turf/open/floor/shiva{ - icon_state = "radiator_tile" - }, +/turf/open/floor/shiva/radiator_tile, /area/shiva/exterior/lz2_fortress) "N" = ( -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) (1,1,1) = {" diff --git a/maps/map_files/Ice_Colony_v3/lz2-variations/southeast/half-open.dmm b/maps/map_files/Ice_Colony_v3/lz2-variations/southeast/half-open.dmm index 089aed45da66..256ad00f6120 100644 --- a/maps/map_files/Ice_Colony_v3/lz2-variations/southeast/half-open.dmm +++ b/maps/map_files/Ice_Colony_v3/lz2-variations/southeast/half-open.dmm @@ -18,10 +18,7 @@ /obj/item/clothing/mask/rebreather, /obj/item/tank/emergency_oxygen/engi, /obj/item/clothing/mask/rebreather, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/north, /area/shiva/exterior/lz2_fortress) "t" = ( /obj/structure/flora/bush/snow{ @@ -36,14 +33,10 @@ /turf/closed/wall/shiva/prefabricated/reinforced/hull, /area/shiva/exterior/lz2_fortress) "C" = ( -/turf/open/floor/shiva{ - icon_state = "radiator_tile" - }, +/turf/open/floor/shiva/radiator_tile, /area/shiva/exterior/lz2_fortress) "Z" = ( -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) (1,1,1) = {" diff --git a/maps/map_files/Ice_Colony_v3/lz2-variations/southwest/full-open.dmm b/maps/map_files/Ice_Colony_v3/lz2-variations/southwest/full-open.dmm index 1434a0ba32a2..12e253378b6b 100644 --- a/maps/map_files/Ice_Colony_v3/lz2-variations/southwest/full-open.dmm +++ b/maps/map_files/Ice_Colony_v3/lz2-variations/southwest/full-open.dmm @@ -6,18 +6,14 @@ /turf/open/auto_turf/snow/layer4, /area/shiva/exterior/cp_lz2) "s" = ( -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) "z" = ( /turf/open/auto_turf/snow/layer3, /area/shiva/exterior/cp_lz2) "B" = ( /obj/item/weapon/gun/boltaction, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) "E" = ( /obj/effect/spawner/random/tool, diff --git a/maps/map_files/Ice_Colony_v3/lz2-variations/southwest/half-open.dmm b/maps/map_files/Ice_Colony_v3/lz2-variations/southwest/half-open.dmm index bb2c2631ba76..16f594f8f798 100644 --- a/maps/map_files/Ice_Colony_v3/lz2-variations/southwest/half-open.dmm +++ b/maps/map_files/Ice_Colony_v3/lz2-variations/southwest/half-open.dmm @@ -9,9 +9,7 @@ /turf/open/auto_turf/snow/layer3, /area/shiva/exterior/cp_lz2) "R" = ( -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/exterior/lz2_fortress) "Y" = ( /turf/closed/wall/shiva/prefabricated/reinforced/hull, diff --git a/maps/map_files/Ice_Colony_v3/sprinkles/33.labs-entrance.dmm b/maps/map_files/Ice_Colony_v3/sprinkles/33.labs-entrance.dmm index 4528507bb04f..399903bd1ed0 100644 --- a/maps/map_files/Ice_Colony_v3/sprinkles/33.labs-entrance.dmm +++ b/maps/map_files/Ice_Colony_v3/sprinkles/33.labs-entrance.dmm @@ -6,10 +6,7 @@ "cs" = ( /obj/structure/surface/rack, /obj/item/device/motiondetector/hacked, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "purplefull" - }, +/turf/open/floor/shiva/purplefull/west, /area/shiva/interior/colony/research_hab) "cO" = ( /obj/structure/surface/rack, @@ -19,10 +16,7 @@ /area/shiva/interior/colony/research_hab) "ei" = ( /obj/structure/machinery/space_heater, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "purplefull" - }, +/turf/open/floor/shiva/purplefull/north, /area/shiva/interior/colony/research_hab) "fs" = ( /obj/structure/barricade/wooden{ @@ -36,10 +30,7 @@ /turf/open/floor/plating, /area/shiva/interior/colony/research_hab) "hG" = ( -/turf/open/floor/shiva{ - dir = 1; - icon_state = "purplefull" - }, +/turf/open/floor/shiva/purplefull/north, /area/shiva/interior/colony/research_hab) "ip" = ( /obj/structure/closet/crate/secure/weyland, @@ -59,14 +50,11 @@ dir = 4; pixel_y = 9 }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/shiva/interior/colony/research_hab) "jW" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony/autoname{ dir = 1; - req_access = null; req_one_access = null }, /turf/open/floor/plating, @@ -78,15 +66,10 @@ /obj/item/explosive/grenade/custom/cleaner, /obj/item/explosive/grenade/custom/cleaner, /obj/item/storage/pill_bottle/kelotane/skillless, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/shiva/interior/colony/research_hab) "lA" = ( -/turf/open/floor/shiva{ - dir = 4; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/east, /area/shiva/interior/colony/research_hab) "lM" = ( /obj/structure/blocker/forcefield/multitile_vehicles, @@ -101,9 +84,7 @@ dir = 1; pixel_y = 9 }, -/turf/open/floor/shiva{ - icon_state = "purplefull" - }, +/turf/open/floor/shiva/purplefull, /area/shiva/interior/colony/research_hab) "mj" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony, @@ -116,16 +97,11 @@ /obj/item/explosive/grenade/custom/cleaner, /obj/item/explosive/grenade/custom/cleaner, /obj/item/storage/pill_bottle/bicaridine/skillless, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/shiva/interior/colony/research_hab) "nn" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "purplefull" - }, +/turf/open/floor/shiva/purplefull/west, /area/shiva/interior/colony/research_hab) "nQ" = ( /obj/structure/surface/table, @@ -141,22 +117,15 @@ /area/shiva/interior/colony/research_hab) "pr" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/research_hab) "pC" = ( /obj/structure/closet/radiation, -/turf/open/floor/shiva{ - icon_state = "purplefull" - }, +/turf/open/floor/shiva/purplefull, /area/shiva/interior/colony/research_hab) "pI" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "purplefull" - }, +/turf/open/floor/shiva/purplefull/east, /area/shiva/interior/colony/research_hab) "qr" = ( /obj/effect/decal/cleanable/dirt, @@ -169,10 +138,7 @@ "qH" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/toolbox, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "purplefull" - }, +/turf/open/floor/shiva/purplefull/west, /area/shiva/interior/colony/research_hab) "rA" = ( /obj/structure/machinery/space_heater, @@ -201,10 +167,7 @@ name = "\improper Omicron Field Gear Storage" }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/east, /area/shiva/interior/colony/research_hab) "sS" = ( /obj/structure/closet/crate, @@ -213,17 +176,12 @@ /area/shiva/interior/colony/research_hab) "sV" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/east, /area/shiva/interior/colony/research_hab) "tr" = ( /obj/structure/closet/radiation, /obj/effect/spawner/random/powercell, -/turf/open/floor/shiva{ - icon_state = "purplefull" - }, +/turf/open/floor/shiva/purplefull, /area/shiva/interior/colony/research_hab) "tL" = ( /obj/effect/decal/cleanable/dirt, @@ -238,10 +196,7 @@ /turf/open/floor/plating, /area/shiva/interior/colony/research_hab) "uJ" = ( -/turf/open/floor/shiva{ - dir = 4; - icon_state = "purplefull" - }, +/turf/open/floor/shiva/purplefull/east, /area/shiva/interior/colony/research_hab) "vf" = ( /obj/structure/window/framed/shiva, @@ -258,15 +213,10 @@ /obj/item/explosive/grenade/custom/cleaner, /obj/item/explosive/grenade/custom/cleaner, /obj/item/storage/pill_bottle/inaprovaline/skillless, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/shiva/interior/colony/research_hab) "yZ" = ( -/turf/open/floor/shiva{ - dir = 8; - icon_state = "purplefull" - }, +/turf/open/floor/shiva/purplefull/west, /area/shiva/interior/colony/research_hab) "zg" = ( /obj/structure/filingcabinet{ @@ -277,9 +227,7 @@ pixel_x = -8; pixel_y = 4 }, -/turf/open/floor/shiva{ - icon_state = "yellowfull" - }, +/turf/open/floor/shiva/yellowfull, /area/shiva/interior/colony/research_hab) "AC" = ( /turf/open/floor/plating, @@ -291,15 +239,10 @@ /obj/structure/machinery/door/airlock/multi_tile/almayer/generic2/autoname{ req_access_txt = "100" }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "purplefull" - }, +/turf/open/floor/shiva/purplefull/west, /area/shiva/interior/colony/research_hab) "GL" = ( -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/research_hab) "Hk" = ( /obj/structure/closet/radiation, @@ -307,9 +250,7 @@ dir = 8; pixel_y = -5 }, -/turf/open/floor/shiva{ - icon_state = "purplefull" - }, +/turf/open/floor/shiva/purplefull, /area/shiva/interior/colony/research_hab) "Hm" = ( /turf/open/auto_turf/snow/layer0, @@ -330,9 +271,7 @@ /area/shiva/interior/colony/research_hab) "JH" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/shiva{ - icon_state = "purplefull" - }, +/turf/open/floor/shiva/purplefull, /area/shiva/interior/colony/research_hab) "JI" = ( /obj/structure/surface/rack, @@ -342,9 +281,7 @@ /area/shiva/interior/colony/research_hab) "JO" = ( /obj/structure/machinery/light/double, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/research_hab) "KS" = ( /turf/open/floor/shiva, @@ -352,9 +289,7 @@ "Lg" = ( /obj/structure/surface/rack, /obj/item/clothing/suit/storage/labcoat/researcher, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/shiva/interior/colony/research_hab) "Lk" = ( /obj/structure/surface/rack, @@ -378,10 +313,7 @@ /area/shiva/interior/colony/research_hab) "Ov" = ( /obj/structure/machinery/space_heater, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "purplefull" - }, +/turf/open/floor/shiva/purplefull/west, /area/shiva/interior/colony/research_hab) "OW" = ( /obj/structure/surface/rack, @@ -390,9 +322,7 @@ dir = 8; pixel_y = 9 }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/shiva/interior/colony/research_hab) "Pf" = ( /obj/structure/machinery/door_control/brbutton{ @@ -425,9 +355,7 @@ dir = 4; pixel_x = -24 }, -/turf/open/floor/shiva{ - icon_state = "purplefull" - }, +/turf/open/floor/shiva/purplefull, /area/shiva/interior/colony/research_hab) "Rd" = ( /obj/structure/surface/table/reinforced/prison, @@ -442,9 +370,7 @@ }, /obj/effect/spawner/random/attachment, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/shiva/interior/colony/research_hab) "Vp" = ( /obj/structure/surface/table, @@ -453,9 +379,7 @@ pixel_y = 2 }, /obj/effect/spawner/random/bomb_supply, -/turf/open/floor/shiva{ - icon_state = "purplefull" - }, +/turf/open/floor/shiva/purplefull, /area/shiva/interior/colony/research_hab) "Vv" = ( /turf/open/auto_turf/ice/layer1, @@ -467,21 +391,15 @@ /obj/item/explosive/grenade/custom/cleaner, /obj/item/explosive/grenade/custom/cleaner, /obj/item/storage/pill_bottle/dexalin/skillless, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/shiva/interior/colony/research_hab) "Xo" = ( -/turf/open/floor/shiva{ - icon_state = "purplefull" - }, +/turf/open/floor/shiva/purplefull, /area/shiva/interior/colony/research_hab) "XI" = ( /obj/structure/closet/radiation, /obj/effect/spawner/random/technology_scanner, -/turf/open/floor/shiva{ - icon_state = "purplefull" - }, +/turf/open/floor/shiva/purplefull, /area/shiva/interior/colony/research_hab) "Yz" = ( /obj/effect/decal/warning_stripes{ @@ -504,9 +422,7 @@ "YZ" = ( /obj/structure/machinery/disposal, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/shiva/interior/colony/research_hab) (1,1,1) = {" diff --git a/maps/map_files/Ice_Colony_v3/sprinkles/30.labs-elevator_alternate.dmm b/maps/map_files/Ice_Colony_v3/sprinkles/unused/30.labs-elevator_alternate.dmm similarity index 75% rename from maps/map_files/Ice_Colony_v3/sprinkles/30.labs-elevator_alternate.dmm rename to maps/map_files/Ice_Colony_v3/sprinkles/unused/30.labs-elevator_alternate.dmm index f75a526b4f78..499218ac037e 100644 --- a/maps/map_files/Ice_Colony_v3/sprinkles/30.labs-elevator_alternate.dmm +++ b/maps/map_files/Ice_Colony_v3/sprinkles/unused/30.labs-elevator_alternate.dmm @@ -5,9 +5,7 @@ id = "garage_ice_labs"; name = "\improper Garage Shutters" }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/research_hab) "b" = ( /obj/structure/curtain/black, @@ -15,18 +13,13 @@ /area/shiva/interior/colony/research_hab) "c" = ( /obj/effect/spawner/random/tool, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/shiva/interior/colony/research_hab) "e" = ( /obj/effect/decal/warning_stripes{ icon_state = "NW-out" }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "purplefull" - }, +/turf/open/floor/shiva/purplefull/west, /area/shiva/interior/colony/research_hab) "f" = ( /obj/effect/decal/warning_stripes{ @@ -36,37 +29,25 @@ dir = 4; pixel_x = 6 }, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "purplefull" - }, +/turf/open/floor/shiva/purplefull/east, /area/shiva/interior/colony/research_hab) "g" = ( /obj/effect/decal/cleanable/blood/oil, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/shiva/interior/colony/research_hab) "h" = ( -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/shiva/interior/colony/research_hab) "k" = ( -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/research_hab) "l" = ( /obj/effect/decal/warning_stripes{ icon_state = "E" }, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "purplefull" - }, +/turf/open/floor/shiva/purplefull/east, /area/shiva/interior/colony/research_hab) "s" = ( /turf/open/floor/plating/plating_catwalk/shiva, @@ -75,10 +56,7 @@ /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "purplefull" - }, +/turf/open/floor/shiva/purplefull/west, /area/shiva/interior/colony/research_hab) "u" = ( /obj/structure/machinery/door_control{ @@ -96,19 +74,13 @@ /obj/effect/decal/warning_stripes{ icon_state = "N" }, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "purplefull" - }, +/turf/open/floor/shiva/purplefull/north, /area/shiva/interior/colony/research_hab) "B" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "purplefull" - }, +/turf/open/floor/shiva/purplefull/east, /area/shiva/interior/colony/research_hab) "E" = ( /obj/effect/decal/warning_stripes{ @@ -118,16 +90,11 @@ dir = 8; pixel_x = -6 }, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "purplefull" - }, +/turf/open/floor/shiva/purplefull/east, /area/shiva/interior/colony/research_hab) "F" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/research_hab) "I" = ( /turf/closed/wall/shiva/prefabricated/orange, @@ -135,18 +102,13 @@ "L" = ( /obj/structure/prop/dam/truck, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/research_hab) "Q" = ( /obj/effect/decal/warning_stripes{ icon_state = "E" }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "purplefull" - }, +/turf/open/floor/shiva/purplefull/west, /area/shiva/interior/colony/research_hab) "S" = ( /obj/effect/decal/cleanable/dirt, @@ -155,28 +117,20 @@ "T" = ( /obj/effect/decal/cleanable/blood/oil, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/colony/research_hab) "U" = ( /obj/effect/decal/warning_stripes{ icon_state = "N" }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "purplefull" - }, +/turf/open/floor/shiva/purplefull/north, /area/shiva/interior/colony/research_hab) "W" = ( /obj/effect/decal/warning_stripes{ icon_state = "NE-out" }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "purplefull" - }, +/turf/open/floor/shiva/purplefull/west, /area/shiva/interior/colony/research_hab) "X" = ( /obj/effect/decal/cleanable/dirt, @@ -185,9 +139,7 @@ /area/shiva/interior/colony/research_hab) "Z" = ( /obj/structure/prop/dam/crane, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/shiva/interior/colony/research_hab) (1,1,1) = {" diff --git a/maps/map_files/Ice_Colony_v3/sprinkles/35.south-spidercave_cleared.dmm b/maps/map_files/Ice_Colony_v3/sprinkles/unused/35.south-spidercave_cleared.dmm similarity index 98% rename from maps/map_files/Ice_Colony_v3/sprinkles/35.south-spidercave_cleared.dmm rename to maps/map_files/Ice_Colony_v3/sprinkles/unused/35.south-spidercave_cleared.dmm index 5ae1484c7915..6f9f55d9467d 100644 --- a/maps/map_files/Ice_Colony_v3/sprinkles/35.south-spidercave_cleared.dmm +++ b/maps/map_files/Ice_Colony_v3/sprinkles/unused/35.south-spidercave_cleared.dmm @@ -15,9 +15,7 @@ /area/shiva/interior/caves/left_spiders) "bP" = ( /obj/structure/prop/static_tank/fuel, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/caves/left_spiders) "cf" = ( /obj/structure/prop/ice_colony/ground_wire{ @@ -181,24 +179,18 @@ /obj/item/weapon/ice_axe/red{ pixel_y = -4 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/shiva/interior/caves/left_spiders) "xG" = ( /obj/structure/largecrate/random/case/double, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/caves/left_spiders) "yu" = ( /turf/closed/wall/shiva/prefabricated/pink, /area/shiva/interior/caves/left_spiders) "yS" = ( /obj/structure/largecrate/random/barrel/blue, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/caves/left_spiders) "Am" = ( /obj/effect/spider/cocoon, @@ -211,9 +203,7 @@ /area/shiva/interior/caves/left_spiders) "Ar" = ( /obj/structure/prop/static_tank, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/shiva/interior/caves/left_spiders) "AW" = ( /obj/structure/barricade/handrail/wire{ diff --git a/maps/map_files/Ice_Colony_v3/standalone/panic_room_hold.dmm b/maps/map_files/Ice_Colony_v3/standalone/panic_room_hold.dmm new file mode 100644 index 000000000000..30848fc8f513 --- /dev/null +++ b/maps/map_files/Ice_Colony_v3/standalone/panic_room_hold.dmm @@ -0,0 +1,2097 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"ai" = ( +/obj/structure/largecrate/random/barrel/red, +/turf/open/auto_turf/snow/layer2, +/area/shiva/exterior/junkyard/cp_bar) +"aq" = ( +/obj/structure/window_frame/colony/reinforced, +/obj/item/stack/rods, +/turf/open/floor/plating, +/area/shiva/interior/colony/s_admin) +"aH" = ( +/obj/item/tool/pen/blue{ + pixel_x = 5 + }, +/obj/effect/decal/cleanable/blood{ + icon_state = "gib6" + }, +/turf/open/floor/wood, +/area/shiva/interior/colony/s_admin) +"ba" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/machinery/alarm{ + dir = 4; + pixel_x = -24 + }, +/obj/effect/landmark/crap_item, +/turf/open/floor/shiva/bluefull, +/area/shiva/interior/colony/s_admin) +"bi" = ( +/obj/item/reagent_container/food/drinks/cans/waterbottle{ + pixel_x = -5; + pixel_y = 12 + }, +/turf/open/floor/shiva/bluefull, +/area/shiva/interior/colony/s_admin) +"bI" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/paper_bin, +/turf/open/floor/shiva/north, +/area/shiva/interior/colony/s_admin) +"ce" = ( +/turf/closed/wall/shiva/prefabricated/reinforced, +/area/shiva/interior/colony/s_admin) +"ch" = ( +/obj/item/lightstick/red/spoke/planted{ + pixel_x = 11; + pixel_y = 20 + }, +/turf/open/floor/shiva/floor3, +/area/shiva/interior/bar) +"cv" = ( +/obj/structure/machinery/alarm{ + dir = 4; + pixel_x = -24 + }, +/turf/open/floor/shiva/floor3, +/area/shiva/interior/colony/s_admin) +"cL" = ( +/obj/item/prop/colony/folded_bedroll, +/turf/open/floor/shiva/bluefull, +/area/shiva/interior/colony/s_admin) +"cO" = ( +/turf/open/floor/shiva/multi_tiles/southeast, +/area/shiva/interior/colony/s_admin) +"cS" = ( +/turf/closed/wall/shiva/prefabricated/reinforced, +/area/shiva/interior/bar) +"cY" = ( +/obj/structure/window/reinforced/tinted{ + dir = 8 + }, +/obj/item/shard{ + icon_state = "large" + }, +/obj/item/frame/table/reinforced, +/turf/open/floor/shiva/north, +/area/shiva/interior/colony/s_admin) +"dg" = ( +/obj/structure/barricade/metal{ + dir = 1; + health = 210 + }, +/turf/open/floor/shiva/bluefull, +/area/shiva/interior/colony/s_admin) +"do" = ( +/obj/effect/spawner/gibspawner/xeno, +/turf/open/floor/shiva/bluefull, +/area/shiva/interior/colony/s_admin) +"dv" = ( +/obj/item/ammo_magazine/rifle/m16, +/obj/structure/closet/secure_closet/guncabinet/wy, +/turf/open/floor/shiva/redfull/west, +/area/shiva/interior/colony/s_admin) +"dF" = ( +/turf/open/floor/shiva/bluefull, +/area/shiva/interior/colony/s_admin) +"eO" = ( +/obj/structure/barricade/wooden{ + dir = 1 + }, +/turf/open/floor/shiva/multi_tiles/west, +/area/shiva/interior/colony/s_admin) +"eZ" = ( +/turf/open/floor/shiva/redfull/west, +/area/shiva/interior/colony/s_admin) +"ff" = ( +/obj/structure/barricade/wooden{ + dir = 4; + pixel_y = 4 + }, +/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, +/turf/open/floor/wood, +/area/shiva/interior/colony/s_admin) +"fj" = ( +/turf/open/floor/shiva/floor3, +/area/shiva/interior/colony/s_admin) +"fx" = ( +/obj/structure/stairs/perspective{ + icon_state = "p_stair_full" + }, +/obj/effect/decal/cleanable/blood{ + layer = 3 + }, +/obj/effect/landmark/corpsespawner/doctor, +/turf/open/floor/shiva/multi_tiles/southeast, +/area/shiva/interior/bar) +"fM" = ( +/obj/structure/machinery/door/poddoor/shutters/almayer{ + name = "\improper Panic Room Shutters"; + id = "south_panicroom" + }, +/turf/open/floor/shiva, +/area/shiva/interior/colony/s_admin) +"fR" = ( +/turf/open/floor/wood, +/area/shiva/interior/colony/s_admin) +"fT" = ( +/obj/effect/decal/cleanable/vomit, +/turf/open/floor/shiva/green/southeast, +/area/shiva/interior/colony/botany) +"gf" = ( +/obj/structure/closet/crate/freezer, +/turf/open/floor/shiva/floor3, +/area/shiva/interior/colony/s_admin) +"gh" = ( +/obj/structure/noticeboard{ + pixel_y = 32 + }, +/obj/item/ammo_magazine/rifle/extended{ + current_rounds = 0 + }, +/turf/open/floor/shiva/north, +/area/shiva/interior/colony/s_admin) +"gk" = ( +/obj/effect/decal/cleanable/blood/oil, +/turf/open/floor/plating/platingdmg3, +/area/shiva/interior/colony/s_admin) +"gn" = ( +/obj/structure/machinery/computer/cameras/wooden_tv{ + pixel_y = 7 + }, +/obj/structure/surface/table/reinforced/prison, +/turf/open/floor/shiva/north, +/area/shiva/interior/colony/s_admin) +"gB" = ( +/obj/structure/surface/table, +/obj/item/weapon/gun/rifle/m16, +/turf/open/floor/shiva/bluefull, +/area/shiva/interior/colony/s_admin) +"gL" = ( +/obj/structure/bed/bedroll, +/turf/open/floor/shiva/floor3, +/area/shiva/interior/colony/s_admin) +"gO" = ( +/obj/structure/window/reinforced/tinted{ + dir = 8 + }, +/obj/structure/machinery/computer/communications{ + dir = 4 + }, +/obj/structure/surface/table/reinforced/prison, +/turf/open/floor/shiva/north, +/area/shiva/interior/colony/s_admin) +"gR" = ( +/obj/item/stack/rods, +/turf/open/floor/shiva/bluefull, +/area/shiva/interior/colony/s_admin) +"hN" = ( +/obj/item/ammo_casing, +/turf/open/floor/shiva/multi_tiles/southeast, +/area/shiva/interior/colony/s_admin) +"iF" = ( +/obj/item/weapon/gun/shotgun/pump/dual_tube/cmb, +/turf/open/floor/shiva/floor3, +/area/shiva/interior/colony/s_admin) +"iS" = ( +/obj/structure/filingcabinet, +/obj/item/paper/research_notes, +/obj/effect/landmark/objective_landmark/close, +/turf/open/floor/shiva/bluefull, +/area/shiva/interior/colony/s_admin) +"iZ" = ( +/obj/item/weapon/gun/rifle/m16, +/obj/structure/closet/secure_closet/guncabinet/wy, +/turf/open/floor/shiva/redfull/west, +/area/shiva/interior/colony/s_admin) +"js" = ( +/obj/item/stack/rods, +/turf/open/floor/shiva/green/southwest, +/area/shiva/interior/colony/botany) +"jE" = ( +/obj/effect/acid_hole{ + dir = 4 + }, +/turf/closed/wall/shiva/prefabricated, +/area/shiva/interior/colony/s_admin) +"jK" = ( +/obj/structure/flora/bush/snow{ + icon_state = "snowgrassall_1" + }, +/turf/open/auto_turf/snow/layer3, +/area/shiva/exterior/junkyard) +"jL" = ( +/obj/structure/machinery/alarm{ + dir = 4; + pixel_x = -24 + }, +/turf/open/floor/wood, +/area/shiva/interior/colony/s_admin) +"jP" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/clothing/head/soft/sec/corp{ + pixel_y = 10 + }, +/obj/item/tool/stamp/hos, +/turf/open/floor/shiva/north, +/area/shiva/interior/colony/s_admin) +"ky" = ( +/obj/item/reagent_container/food/drinks/cans/waterbottle{ + pixel_x = 10; + pixel_y = 16 + }, +/turf/open/floor/shiva/bluefull, +/area/shiva/interior/colony/s_admin) +"kB" = ( +/obj/structure/bed/bedroll, +/obj/effect/landmark/survivor_spawner/shivas_panic_room_doc, +/turf/open/floor/shiva/floor3, +/area/shiva/interior/colony/s_admin) +"kP" = ( +/obj/structure/surface/table/woodentable{ + dir = 1; + flipped = 1 + }, +/obj/structure/machinery/computer/objective, +/turf/open/floor/shiva/floor3, +/area/shiva/interior/colony/s_admin) +"kT" = ( +/obj/item/stack/folding_barricade, +/turf/open/floor/shiva/floor3, +/area/shiva/interior/colony/s_admin) +"lb" = ( +/obj/structure/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/obj/structure/filingcabinet/chestdrawer, +/obj/effect/landmark/objective_landmark/close, +/turf/open/floor/shiva/floor3, +/area/shiva/interior/colony/s_admin) +"lq" = ( +/obj/item/ammo_magazine/rifle{ + current_rounds = 0 + }, +/turf/open/floor/shiva/north, +/area/shiva/interior/colony/s_admin) +"lP" = ( +/obj/effect/landmark/corpsespawner/wygoon, +/obj/effect/decal/cleanable/blood{ + layer = 3 + }, +/turf/open/floor/shiva/north, +/area/shiva/interior/colony/s_admin) +"lQ" = ( +/obj/structure/window/reinforced/tinted{ + dir = 8 + }, +/obj/structure/window/reinforced/tinted{ + dir = 1 + }, +/obj/item/paper_bin, +/obj/item/tool/pen/blue, +/obj/structure/surface/table/reinforced/prison, +/turf/open/floor/shiva/north, +/area/shiva/interior/colony/s_admin) +"mC" = ( +/obj/structure/machinery/power/apc{ + dir = 8; + start_charge = 0 + }, +/turf/open/floor/shiva/bluefull, +/area/shiva/interior/colony/s_admin) +"mI" = ( +/obj/item/shard{ + icon_state = "medium" + }, +/turf/open/floor/shiva/bluefull, +/area/shiva/interior/colony/s_admin) +"ne" = ( +/turf/open/auto_turf/snow/layer3, +/area/shiva/exterior/junkyard/cp_bar) +"ng" = ( +/obj/effect/decal/cleanable/blood/gibs/xeno/limb, +/turf/open/floor/plating, +/area/shiva/interior/colony/s_admin) +"nh" = ( +/obj/structure/window/framed/shiva, +/turf/open/floor/plating, +/area/shiva/interior/colony/s_admin) +"ns" = ( +/obj/structure/surface/table, +/obj/item/weapon/gun/rifle/ar10, +/turf/open/floor/shiva/floor3, +/area/shiva/interior/colony/s_admin) +"ob" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/reagent_container/food/drinks/cans/ale{ + pixel_x = -7; + pixel_y = 3 + }, +/obj/item/reagent_container/food/drinks/cans/ale{ + pixel_y = 10 + }, +/obj/item/reagent_container/food/drinks/cans/ale{ + pixel_x = 7; + pixel_y = 4 + }, +/obj/item/reagent_container/food/drinks/cans/ale, +/turf/open/floor/shiva/north, +/area/shiva/interior/colony/s_admin) +"of" = ( +/obj/structure/machinery/door/poddoor/shutters/almayer{ + name = "\improper Panic Room Shutters"; + id = "north_panicroom" + }, +/turf/open/floor/plating, +/area/shiva/interior/colony/s_admin) +"ov" = ( +/obj/item/trash/buritto, +/turf/open/floor/shiva/bluefull, +/area/shiva/interior/colony/s_admin) +"oH" = ( +/obj/structure/machinery/light/double, +/turf/open/floor/shiva/green, +/area/shiva/interior/colony/botany) +"oT" = ( +/obj/item/shard{ + icon_state = "large" + }, +/turf/open/floor/shiva/north, +/area/shiva/interior/colony/s_admin) +"oY" = ( +/obj/structure/closet/crate/secure/weyland, +/obj/effect/landmark/objective_landmark/science, +/obj/effect/landmark/objective_landmark/medium, +/turf/open/floor/shiva/floor3, +/area/shiva/interior/colony/s_admin) +"pz" = ( +/obj/item/weapon/gun/boltaction, +/turf/open/floor/shiva/redfull/west, +/area/shiva/interior/colony/s_admin) +"pC" = ( +/obj/structure/machinery/disposal, +/turf/open/floor/shiva/floor3, +/area/shiva/interior/colony/s_admin) +"pG" = ( +/obj/structure/filingcabinet, +/obj/effect/landmark/objective_landmark/close, +/turf/open/floor/shiva/bluefull, +/area/shiva/interior/colony/s_admin) +"pQ" = ( +/turf/open/auto_turf/snow/layer1, +/area/shiva/exterior/junkyard) +"pS" = ( +/obj/structure/filingcabinet, +/obj/effect/landmark/objective_landmark/close, +/turf/open/floor/shiva/floor3, +/area/shiva/interior/colony/s_admin) +"pV" = ( +/obj/effect/decal/cleanable/blood/xeno, +/turf/open/floor/plating/platingdmg2, +/area/shiva/interior/colony/s_admin) +"qT" = ( +/obj/structure/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/turf/open/floor/shiva/bluefull, +/area/shiva/interior/colony/s_admin) +"qU" = ( +/obj/effect/landmark/corpsespawner/scientist, +/turf/open/floor/shiva/bluefull, +/area/shiva/interior/colony/s_admin) +"rB" = ( +/obj/structure/window/reinforced/tinted{ + dir = 4 + }, +/obj/structure/window/reinforced/tinted, +/obj/structure/surface/table/reinforced/prison, +/obj/item/paper_bin, +/obj/item/tool/pen/blue, +/obj/effect/landmark/objective_landmark/medium, +/turf/open/floor/shiva/north, +/area/shiva/interior/colony/s_admin) +"rM" = ( +/obj/structure/barricade/wooden{ + dir = 1 + }, +/turf/open/floor/shiva/bluefull, +/area/shiva/interior/colony/s_admin) +"rQ" = ( +/obj/item/ammo_magazine/rifle/boltaction, +/obj/effect/landmark/survivor_spawner/shivas_panic_room_civ, +/turf/open/floor/shiva/floor3, +/area/shiva/interior/colony/s_admin) +"sq" = ( +/obj/structure/machinery/faxmachine, +/turf/open/floor/shiva/bluefull, +/area/shiva/interior/colony/s_admin) +"sy" = ( +/obj/effect/decal/cleanable/blood{ + icon_state = "xgibdown1" + }, +/obj/structure/machinery/light/double, +/turf/open/floor/shiva/bluefull, +/area/shiva/interior/colony/s_admin) +"sZ" = ( +/obj/structure/machinery/vending/coffee, +/turf/open/floor/shiva/multi_tiles/west, +/area/shiva/interior/colony/s_admin) +"ti" = ( +/obj/effect/decal/cleanable/blood/gibs/xeno, +/turf/open/floor/plating/platingdmg3, +/area/shiva/interior/colony/s_admin) +"tk" = ( +/obj/structure/window/reinforced/tinted{ + dir = 4 + }, +/obj/structure/window/reinforced/tinted{ + dir = 1 + }, +/obj/structure/surface/table/reinforced/prison, +/obj/item/clipboard, +/obj/item/tool/stamp, +/turf/open/floor/shiva/north, +/area/shiva/interior/colony/s_admin) +"tl" = ( +/obj/structure/bed/chair/comfy{ + dir = 4 + }, +/obj/effect/landmark/survivor_spawner/shivas_panic_room_doc, +/turf/open/floor/shiva/bluefull, +/area/shiva/interior/colony/s_admin) +"tu" = ( +/obj/structure/machinery/light/double{ + dir = 8; + pixel_y = -5 + }, +/obj/structure/reagent_dispensers/water_cooler, +/turf/open/floor/shiva/bluefull, +/area/shiva/interior/colony/s_admin) +"tD" = ( +/obj/effect/decal/cleanable/vomit{ + icon_state = "vomit_2" + }, +/obj/item/reagent_container/food/drinks/bottle/sake{ + pixel_x = 9; + pixel_y = 17 + }, +/obj/effect/landmark/corpsespawner/chef, +/obj/structure/bed/bedroll, +/obj/item/bedsheet/ce, +/turf/open/floor/shiva/floor3, +/area/shiva/interior/colony/s_admin) +"tG" = ( +/obj/structure/janitorialcart, +/turf/open/floor/shiva/green/southeast, +/area/shiva/interior/colony/botany) +"tW" = ( +/obj/effect/decal/cleanable/blood/gibs/xeno, +/turf/open/floor/plating, +/area/shiva/interior/colony/s_admin) +"tY" = ( +/obj/structure/bed/chair{ + dir = 1 + }, +/turf/open/floor/shiva/bluefull, +/area/shiva/interior/colony/s_admin) +"ug" = ( +/obj/effect/decal/cleanable/blood/drip{ + icon_state = "3" + }, +/turf/open/floor/shiva/multi_tiles/west, +/area/shiva/interior/colony/s_admin) +"uh" = ( +/obj/effect/decal/cleanable/blood/drip, +/obj/item/ammo_casing, +/turf/open/floor/shiva/north, +/area/shiva/interior/colony/s_admin) +"ul" = ( +/obj/item/ammo_magazine/rifle/boltaction, +/turf/open/floor/shiva/floor3, +/area/shiva/interior/colony/s_admin) +"uA" = ( +/obj/structure/stairs/perspective{ + icon_state = "p_stair_full" + }, +/obj/item/ammo_magazine/pistol/holdout{ + pixel_x = 3; + pixel_y = 2 + }, +/turf/open/floor/shiva/multi_tiles/southeast, +/area/shiva/interior/bar) +"uE" = ( +/obj/structure/machinery/door_control{ + id = "north_panicroom"; + pixel_y = 30 + }, +/turf/open/floor/shiva/floor3, +/area/shiva/interior/colony/s_admin) +"uJ" = ( +/obj/item/stack/rods, +/turf/open/floor/shiva/north, +/area/shiva/interior/colony/s_admin) +"uM" = ( +/obj/structure/window/reinforced/tinted{ + dir = 8 + }, +/obj/structure/window/reinforced/tinted, +/obj/structure/surface/table/reinforced/prison, +/obj/item/clipboard, +/obj/item/tool/stamp, +/obj/effect/landmark/objective_landmark/far, +/turf/open/floor/shiva/north, +/area/shiva/interior/colony/s_admin) +"uP" = ( +/obj/structure/machinery/light/double{ + dir = 4; + pixel_y = -5 + }, +/obj/structure/machinery/vending/coffee, +/turf/open/floor/shiva/floor3, +/area/shiva/interior/colony/s_admin) +"uR" = ( +/obj/structure/machinery/light/double{ + dir = 8; + pixel_y = -5 + }, +/turf/open/floor/shiva/north, +/area/shiva/interior/colony/s_admin) +"vn" = ( +/obj/effect/decal/remains/xeno, +/turf/open/floor/shiva/bluefull, +/area/shiva/interior/colony/s_admin) +"vq" = ( +/obj/structure/filingcabinet, +/obj/item/paper/research_notes, +/obj/structure/machinery/light/double{ + dir = 8; + pixel_y = -5 + }, +/obj/effect/landmark/objective_landmark/science, +/turf/open/floor/shiva/floor3, +/area/shiva/interior/colony/s_admin) +"vs" = ( +/turf/open/floor/shiva/multi_tiles, +/area/shiva/interior/colony/s_admin) +"vL" = ( +/obj/item/reagent_container/glass/bucket/mopbucket{ + pixel_x = 5; + pixel_y = 5 + }, +/turf/open/floor/shiva/green/southeast, +/area/shiva/interior/colony/botany) +"wH" = ( +/turf/open/floor/plating/platingdmg3, +/area/shiva/interior/colony/s_admin) +"wM" = ( +/obj/item/reagent_container/food/drinks/cans/waterbottle{ + pixel_y = 5 + }, +/turf/open/floor/shiva/floor3, +/area/shiva/interior/colony/s_admin) +"wO" = ( +/obj/item/clipboard, +/obj/item/tool/pen/blue, +/obj/item/stack/sheet/metal, +/obj/item/shard{ + icon_state = "large" + }, +/obj/item/shard{ + icon_state = "large" + }, +/obj/structure/surface/table/reinforced/prison, +/turf/open/floor/shiva/north, +/area/shiva/interior/colony/s_admin) +"wW" = ( +/obj/effect/decal/cleanable/blood/drip, +/turf/open/floor/shiva/multi_tiles, +/area/shiva/interior/colony/s_admin) +"wX" = ( +/turf/open/floor/shiva/multi_tiles/west, +/area/shiva/interior/colony/s_admin) +"wY" = ( +/obj/structure/machinery/power/apc{ + dir = 1; + start_charge = 0 + }, +/turf/open/auto_turf/snow/layer2, +/area/shiva/exterior/junkyard/cp_bar) +"xa" = ( +/obj/item/shard{ + icon_state = "large" + }, +/turf/open/floor/shiva/bluefull, +/area/shiva/interior/colony/s_admin) +"xg" = ( +/obj/structure/bed/chair/office/light{ + dir = 4 + }, +/turf/open/floor/wood, +/area/shiva/interior/colony/s_admin) +"xD" = ( +/obj/structure/bed/chair/comfy/orange{ + dir = 1 + }, +/obj/item/paper_bin, +/obj/structure/machinery/light/double, +/obj/effect/decal/cleanable/blood{ + layer = 3 + }, +/turf/open/floor/shiva/floor3, +/area/shiva/interior/colony/s_admin) +"xZ" = ( +/obj/item/storage/belt/marine, +/turf/open/floor/shiva/floor3, +/area/shiva/interior/colony/s_admin) +"yd" = ( +/obj/item/weapon/gun/rifle/ar10, +/obj/item/ammo_magazine/rifle/ar10, +/obj/structure/closet/secure_closet/guncabinet/wy, +/turf/open/floor/shiva/redfull/west, +/area/shiva/interior/colony/s_admin) +"ye" = ( +/obj/structure/bed/chair/office/light{ + dir = 1 + }, +/obj/effect/landmark/survivor_spawner/shivas_panic_room_cl, +/turf/open/floor/shiva/bluefull, +/area/shiva/interior/colony/s_admin) +"yi" = ( +/obj/item/trash/wy_chips_pepper, +/turf/open/floor/shiva/floor3, +/area/shiva/interior/colony/s_admin) +"yo" = ( +/obj/structure/machinery/disposal, +/turf/open/floor/shiva/north, +/area/shiva/interior/colony/s_admin) +"yq" = ( +/obj/effect/decal/cleanable/blood{ + layer = 3 + }, +/obj/effect/decal/remains/human, +/turf/open/floor/shiva/bluefull, +/area/shiva/interior/colony/s_admin) +"yz" = ( +/obj/structure/flora/bush/snow{ + icon_state = "snowgrassall_3" + }, +/turf/open/auto_turf/snow/layer3, +/area/shiva/exterior/junkyard) +"yQ" = ( +/obj/effect/landmark/survivor_spawner/shivas_panic_room_sci, +/turf/open/floor/shiva/bluefull, +/area/shiva/interior/colony/s_admin) +"yS" = ( +/obj/structure/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/obj/item/weapon/gun/boltaction, +/obj/structure/closet/secure_closet/guncabinet/wy, +/turf/open/floor/shiva/redfull/west, +/area/shiva/interior/colony/s_admin) +"zc" = ( +/obj/structure/machinery/vending/snack, +/turf/open/floor/shiva/north, +/area/shiva/interior/colony/s_admin) +"zi" = ( +/obj/structure/window/reinforced/tinted{ + dir = 4 + }, +/obj/structure/surface/table/reinforced/prison, +/obj/item/paper_bin, +/obj/item/tool/pen/blue, +/turf/open/floor/shiva/north, +/area/shiva/interior/colony/s_admin) +"zp" = ( +/obj/effect/decal/cleanable/blood/oil/streak, +/turf/open/floor/shiva/north, +/area/shiva/interior/colony/s_admin) +"zu" = ( +/obj/structure/machinery/light/double, +/turf/open/floor/shiva/green/southeast, +/area/shiva/interior/colony/botany) +"zw" = ( +/obj/item/ammo_casing, +/turf/open/floor/shiva/north, +/area/shiva/interior/colony/s_admin) +"zA" = ( +/obj/structure/window_frame/colony/reinforced, +/turf/open/floor/plating, +/area/shiva/interior/colony/s_admin) +"Ad" = ( +/obj/structure/bed/chair/office/light{ + dir = 4 + }, +/turf/open/floor/shiva/north, +/area/shiva/interior/colony/s_admin) +"Av" = ( +/obj/structure/machinery/light/double{ + dir = 8; + pixel_y = -5 + }, +/obj/structure/closet/secure_closet/guncabinet/wy, +/turf/open/floor/shiva/redfull/west, +/area/shiva/interior/colony/s_admin) +"AC" = ( +/obj/effect/decal/cleanable/blood, +/turf/open/floor/shiva/north, +/area/shiva/interior/colony/s_admin) +"AY" = ( +/obj/structure/flora/pottedplant, +/turf/open/floor/shiva/north, +/area/shiva/interior/colony/s_admin) +"AZ" = ( +/turf/open/floor/plating/platingdmg1, +/area/shiva/interior/colony/s_admin) +"Bg" = ( +/obj/structure/machinery/light_construct{ + dir = 1 + }, +/obj/item/light_bulb/tube/prison, +/turf/open/floor/shiva/bluefull, +/area/shiva/interior/colony/s_admin) +"Bq" = ( +/obj/structure/window/reinforced/tinted{ + dir = 4 + }, +/obj/structure/machinery/computer/cameras{ + dir = 8 + }, +/obj/structure/surface/table/reinforced/prison, +/turf/open/floor/shiva/north, +/area/shiva/interior/colony/s_admin) +"Bv" = ( +/obj/structure/machinery/door_control{ + id = "south_panicroom"; + pixel_x = 30 + }, +/obj/structure/surface/table, +/obj/item/ammo_magazine/shotgun/slugs, +/turf/open/floor/shiva/floor3, +/area/shiva/interior/colony/s_admin) +"BD" = ( +/obj/item/lightstick/red/spoke/planted{ + pixel_x = -11; + pixel_y = 20 + }, +/turf/open/floor/shiva/floor3, +/area/shiva/interior/bar) +"BQ" = ( +/obj/effect/decal/cleanable/blood{ + icon_state = "gib6" + }, +/turf/open/floor/shiva/multi_tiles/southeast, +/area/shiva/interior/bar) +"BU" = ( +/obj/effect/landmark/survivor_spawner/shivas_panic_room_civ, +/turf/open/floor/shiva/bluefull, +/area/shiva/interior/colony/s_admin) +"Cc" = ( +/obj/item/stack/sheet/metal, +/turf/open/floor/plating/platingdmg3, +/area/shiva/interior/colony/s_admin) +"Cd" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/effect/landmark/good_item, +/turf/open/floor/shiva/bluefull, +/area/shiva/interior/colony/s_admin) +"Cu" = ( +/obj/structure/window/reinforced/tinted{ + dir = 8 + }, +/obj/structure/window/reinforced/tinted, +/obj/structure/surface/table/reinforced/prison, +/obj/item/clipboard, +/obj/item/tool/stamp, +/obj/effect/landmark/crap_item, +/turf/open/floor/shiva/north, +/area/shiva/interior/colony/s_admin) +"Cx" = ( +/obj/item/stack/sheet/metal, +/turf/open/floor/shiva/north, +/area/shiva/interior/colony/s_admin) +"CZ" = ( +/obj/item/ammo_casing, +/turf/open/floor/shiva/bluefull, +/area/shiva/interior/colony/s_admin) +"Dg" = ( +/obj/effect/decal/cleanable/vomit, +/obj/item/reagent_container/food/drinks/bottle/sake{ + pixel_x = -3; + pixel_y = 6 + }, +/turf/open/floor/shiva/bluefull, +/area/shiva/interior/colony/s_admin) +"Dl" = ( +/obj/structure/bed/chair{ + dir = 4 + }, +/turf/open/floor/shiva/bluefull, +/area/shiva/interior/colony/s_admin) +"Dx" = ( +/obj/structure/machinery/light/double, +/obj/item/shard{ + icon_state = "medium" + }, +/turf/open/floor/shiva/bluefull, +/area/shiva/interior/colony/s_admin) +"DB" = ( +/obj/effect/decal/cleanable/blood/drip, +/turf/open/floor/shiva/multi_tiles/west, +/area/shiva/interior/colony/s_admin) +"DU" = ( +/obj/structure/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/turf/open/floor/shiva/north, +/area/shiva/interior/colony/s_admin) +"DW" = ( +/obj/structure/machinery/vending/cigarette/colony, +/turf/open/floor/shiva/north, +/area/shiva/interior/colony/s_admin) +"DY" = ( +/obj/item/trash/burger, +/turf/open/floor/shiva/bluefull, +/area/shiva/interior/colony/s_admin) +"EX" = ( +/obj/structure/machinery/light/double{ + dir = 1; + pixel_y = 9 + }, +/obj/item/shard{ + icon_state = "large" + }, +/turf/open/floor/shiva/north, +/area/shiva/interior/colony/s_admin) +"Fa" = ( +/obj/effect/spawner/gibspawner/human, +/turf/open/floor/plating/platingdmg2, +/area/shiva/interior/colony/s_admin) +"Fc" = ( +/obj/structure/surface/table, +/obj/item/ammo_magazine/rifle/ar10, +/turf/open/floor/shiva/floor3, +/area/shiva/interior/colony/s_admin) +"Ff" = ( +/obj/item/stack/sheet/metal, +/turf/open/floor/plating/platingdmg1, +/area/shiva/interior/colony/s_admin) +"Fg" = ( +/obj/structure/largecrate/random/case/double, +/turf/open/auto_turf/snow/layer2, +/area/shiva/exterior/junkyard/cp_bar) +"Fn" = ( +/turf/open/floor/shiva/radiator_tile, +/area/shiva/interior/bar) +"Fp" = ( +/obj/structure/bed/chair/office/dark, +/turf/open/floor/shiva/bluefull, +/area/shiva/interior/colony/s_admin) +"Fx" = ( +/obj/structure/surface/table, +/obj/structure/prop/ice_colony/hula_girl, +/turf/open/floor/shiva/bluefull, +/area/shiva/interior/colony/s_admin) +"FH" = ( +/obj/effect/decal/cleanable/blood/oil, +/obj/item/stack/rods, +/turf/open/floor/wood, +/area/shiva/interior/colony/s_admin) +"FK" = ( +/obj/structure/machinery/photocopier, +/turf/open/floor/shiva/bluefull, +/area/shiva/interior/colony/s_admin) +"FY" = ( +/turf/template_noop, +/area/template_noop) +"GC" = ( +/turf/closed/wall/shiva/prefabricated, +/area/shiva/interior/colony/s_admin) +"GJ" = ( +/obj/structure/surface/table, +/obj/effect/landmark/objective_landmark/close, +/turf/open/floor/shiva/bluefull, +/area/shiva/interior/colony/s_admin) +"GQ" = ( +/obj/effect/decal/cleanable/blood/xeno{ + icon_state = "xgibhead" + }, +/turf/open/floor/shiva/north, +/area/shiva/interior/colony/s_admin) +"He" = ( +/obj/item/stool, +/turf/open/floor/shiva/bluefull, +/area/shiva/interior/colony/s_admin) +"Hf" = ( +/obj/structure/closet/secure_closet/security, +/obj/effect/landmark/objective_landmark/close, +/turf/open/floor/shiva/north, +/area/shiva/interior/colony/s_admin) +"Hp" = ( +/obj/effect/decal/cleanable/blood, +/turf/open/floor/shiva/multi_tiles/southeast, +/area/shiva/interior/colony/s_admin) +"Hx" = ( +/turf/open/floor/shiva/north, +/area/shiva/interior/colony/s_admin) +"HA" = ( +/obj/structure/window/reinforced/tinted{ + dir = 8 + }, +/obj/structure/machinery/computer/station_alert{ + dir = 4 + }, +/obj/structure/surface/table/reinforced/prison, +/turf/open/floor/shiva/north, +/area/shiva/interior/colony/s_admin) +"Ik" = ( +/turf/open/auto_turf/snow/layer3, +/area/shiva/exterior/junkyard) +"Iy" = ( +/obj/effect/decal/cleanable/blood{ + layer = 3 + }, +/obj/effect/landmark/corpsespawner/wysec, +/turf/open/floor/wood, +/area/shiva/interior/colony/s_admin) +"IB" = ( +/obj/effect/decal/cleanable/blood{ + icon_state = "gib6" + }, +/turf/open/floor/wood, +/area/shiva/interior/colony/s_admin) +"IQ" = ( +/obj/structure/machinery/vending/cigarette/colony, +/turf/open/floor/shiva/floor3, +/area/shiva/interior/colony/s_admin) +"Jp" = ( +/obj/item/ammo_magazine/rifle/extended{ + current_rounds = 0 + }, +/turf/open/floor/shiva/north, +/area/shiva/interior/colony/s_admin) +"Jv" = ( +/obj/structure/machinery/light/double{ + dir = 4; + pixel_y = -5 + }, +/turf/open/floor/shiva/north, +/area/shiva/interior/colony/s_admin) +"Jx" = ( +/turf/open/floor/shiva/multi_tiles/west, +/area/shiva/interior/colony/botany) +"JF" = ( +/obj/structure/machinery/blackbox_recorder, +/obj/item/prop/almayer/flight_recorder/colony{ + pixel_x = -6; + pixel_y = 10 + }, +/turf/open/floor/shiva/bluefull, +/area/shiva/interior/colony/s_admin) +"JQ" = ( +/obj/item/ammo_magazine/rifle/boltaction, +/obj/structure/machinery/alarm{ + dir = 4; + pixel_x = -24 + }, +/obj/structure/closet/secure_closet/guncabinet/wy, +/turf/open/floor/shiva/redfull/west, +/area/shiva/interior/colony/s_admin) +"Kb" = ( +/obj/structure/machinery/light/double, +/turf/open/floor/shiva/multi_tiles/west, +/area/shiva/interior/colony/botany) +"Ko" = ( +/obj/structure/bed/chair, +/obj/item/ammo_casing, +/turf/open/floor/shiva/bluefull, +/area/shiva/interior/colony/s_admin) +"Kp" = ( +/obj/structure/machinery/computer/cameras{ + dir = 8 + }, +/obj/structure/surface/table/reinforced/prison, +/obj/item/shard{ + icon_state = "large" + }, +/turf/open/floor/shiva/north, +/area/shiva/interior/colony/s_admin) +"KO" = ( +/obj/structure/largecrate/random/case/small, +/turf/open/auto_turf/snow/layer2, +/area/shiva/exterior/junkyard/cp_bar) +"KR" = ( +/obj/item/shard{ + icon_state = "medium" + }, +/turf/open/floor/shiva/north, +/area/shiva/interior/colony/s_admin) +"Ld" = ( +/obj/effect/decal/cleanable/blood/xeno, +/turf/open/floor/shiva/green, +/area/shiva/interior/colony/botany) +"Lh" = ( +/obj/structure/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, +/turf/open/floor/shiva/bluefull, +/area/shiva/interior/colony/s_admin) +"Lk" = ( +/obj/structure/largecrate/random/case, +/turf/open/auto_turf/snow/layer3, +/area/shiva/exterior/junkyard/cp_bar) +"Lr" = ( +/obj/structure/prop/ice_colony/tiger_rug{ + icon_state = "White" + }, +/turf/open/floor/shiva/bluefull, +/area/shiva/interior/colony/s_admin) +"Lu" = ( +/obj/structure/machinery/vending/cigarette/colony, +/turf/open/floor/shiva/multi_tiles/west, +/area/shiva/interior/colony/s_admin) +"LE" = ( +/turf/open/floor/shiva/multi_tiles/southeast, +/area/shiva/interior/bar) +"LF" = ( +/obj/effect/decal/cleanable/blood{ + layer = 3 + }, +/turf/open/floor/shiva/north, +/area/shiva/interior/colony/s_admin) +"LU" = ( +/turf/open/floor/shiva/snow_mat, +/area/shiva/interior/colony/botany) +"Mi" = ( +/obj/structure/surface/table, +/obj/effect/landmark/objective_landmark/close, +/turf/open/floor/shiva/floor3, +/area/shiva/interior/colony/s_admin) +"MG" = ( +/obj/structure/machinery/door/poddoor/shutters/almayer{ + name = "\improper Panic Room Shutters"; + id = "south_panicroom" + }, +/turf/open/floor/shiva/floor3, +/area/shiva/interior/colony/s_admin) +"ML" = ( +/obj/item/stack/sheet/wood, +/turf/open/floor/plating/platingdmg3, +/area/shiva/interior/colony/s_admin) +"MR" = ( +/obj/structure/safe, +/obj/item/spacecash/c1000{ + pixel_x = -2; + pixel_y = -1 + }, +/obj/item/spacecash/c1000, +/obj/item/spacecash/c500, +/obj/effect/landmark/good_item, +/turf/open/floor/shiva/redfull/west, +/area/shiva/interior/colony/s_admin) +"Nq" = ( +/turf/open/floor/shiva/green, +/area/shiva/interior/colony/botany) +"Nt" = ( +/obj/effect/decal/cleanable/blood/xeno{ + icon_state = "xgib6" + }, +/turf/open/floor/shiva/multi_tiles/southeast, +/area/shiva/interior/colony/s_admin) +"Nu" = ( +/obj/effect/landmark/survivor_spawner/shivas_panic_room_doc, +/turf/open/floor/shiva/floor3, +/area/shiva/interior/colony/s_admin) +"NC" = ( +/obj/item/lightstick/variant/planted, +/turf/open/auto_turf/snow/layer2, +/area/shiva/exterior/junkyard) +"On" = ( +/obj/item/stack/rods, +/obj/structure/window_frame/colony/reinforced, +/turf/open/floor/plating, +/area/shiva/interior/colony/s_admin) +"ON" = ( +/obj/item/lightstick/red/variant/planted, +/turf/open/auto_turf/snow/layer2, +/area/shiva/exterior/junkyard/cp_bar) +"OV" = ( +/obj/structure/machinery/light/double{ + dir = 4; + pixel_y = -5 + }, +/turf/open/floor/wood, +/area/shiva/interior/colony/s_admin) +"Pb" = ( +/obj/structure/filingcabinet, +/obj/item/paper/research_notes, +/obj/effect/landmark/objective_landmark/science, +/turf/open/floor/shiva/floor3, +/area/shiva/interior/colony/s_admin) +"Py" = ( +/obj/item/trash/kepler, +/turf/open/floor/shiva/bluefull, +/area/shiva/interior/colony/s_admin) +"PG" = ( +/turf/open/floor/shiva/snow_mat/east, +/area/shiva/interior/colony/botany) +"PI" = ( +/obj/structure/window/reinforced/tinted{ + dir = 8 + }, +/obj/structure/surface/table/reinforced/prison, +/obj/item/clipboard, +/obj/item/tool/stamp, +/obj/effect/landmark/crap_item, +/turf/open/floor/shiva/north, +/area/shiva/interior/colony/s_admin) +"PV" = ( +/obj/structure/bed/bedroll, +/obj/effect/landmark/survivor_spawner/shivas_panic_room_sci, +/turf/open/floor/shiva/bluefull, +/area/shiva/interior/colony/s_admin) +"Qh" = ( +/obj/structure/stairs/perspective{ + icon_state = "p_stair_sn_full_cap" + }, +/turf/open/floor/shiva/multi_tiles/southeast, +/area/shiva/interior/bar) +"QS" = ( +/turf/open/auto_turf/snow/layer2, +/area/shiva/exterior/junkyard) +"Rs" = ( +/obj/structure/surface/table, +/obj/item/tool/pen/blue{ + pixel_x = -6 + }, +/obj/item/paper_bin{ + pixel_y = 7 + }, +/turf/open/floor/shiva/bluefull, +/area/shiva/interior/colony/s_admin) +"Ru" = ( +/obj/structure/reagent_dispensers/water_cooler, +/turf/open/floor/shiva/north, +/area/shiva/interior/colony/s_admin) +"Ry" = ( +/obj/item/tool/mop{ + pixel_x = -10 + }, +/turf/open/floor/shiva/green, +/area/shiva/interior/colony/botany) +"RD" = ( +/obj/structure/bed/chair/wood/normal, +/turf/open/floor/shiva/bluefull, +/area/shiva/interior/colony/s_admin) +"RH" = ( +/obj/structure/window/reinforced/tinted{ + dir = 8 + }, +/obj/structure/window/reinforced/tinted{ + dir = 1 + }, +/obj/structure/surface/table/reinforced/prison, +/obj/item/paper_bin, +/obj/item/tool/pen/blue, +/turf/open/floor/shiva/north, +/area/shiva/interior/colony/s_admin) +"RP" = ( +/turf/open/floor/shiva/green/southwest, +/area/shiva/interior/colony/botany) +"RQ" = ( +/obj/structure/machinery/vending/snack, +/turf/open/floor/shiva/floor3, +/area/shiva/interior/colony/s_admin) +"RS" = ( +/obj/structure/bed/chair/office/light{ + dir = 8 + }, +/turf/open/floor/shiva/north, +/area/shiva/interior/colony/s_admin) +"Se" = ( +/obj/effect/decal/cleanable/vomit{ + icon_state = "vomit_4" + }, +/obj/item/reagent_container/food/drinks/bottle/sake{ + pixel_x = 5; + pixel_y = 10 + }, +/turf/open/floor/shiva/floor3, +/area/shiva/interior/colony/s_admin) +"Sl" = ( +/obj/structure/machinery/disposal/broken, +/turf/open/floor/plating, +/area/shiva/interior/colony/s_admin) +"Sq" = ( +/obj/item/tool/wet_sign, +/turf/open/floor/shiva/green/southeast, +/area/shiva/interior/colony/botany) +"SB" = ( +/obj/item/stack/sheet/metal, +/turf/open/floor/plating, +/area/shiva/interior/colony/s_admin) +"SU" = ( +/obj/item/device/flashlight/lamp{ + pixel_y = 7 + }, +/obj/item/frame/table/wood, +/obj/effect/decal/cleanable/blood{ + icon_state = "gib6" + }, +/turf/open/floor/wood, +/area/shiva/interior/colony/s_admin) +"Tc" = ( +/obj/item/frame/table/reinforced, +/turf/open/floor/shiva/bluefull, +/area/shiva/interior/colony/s_admin) +"Td" = ( +/obj/item/reagent_container/food/drinks/cans/waterbottle, +/obj/item/ammo_casing, +/turf/open/floor/shiva/floor3, +/area/shiva/interior/colony/s_admin) +"Tj" = ( +/obj/structure/machinery/disposal/broken, +/turf/open/floor/shiva/bluefull, +/area/shiva/interior/colony/s_admin) +"Tr" = ( +/obj/structure/machinery/computer/station_alert{ + dir = 4 + }, +/obj/structure/surface/table/reinforced/prison, +/obj/item/shard{ + icon_state = "medium" + }, +/turf/open/floor/shiva/north, +/area/shiva/interior/colony/s_admin) +"TG" = ( +/obj/item/prop/colony/folded_bedroll, +/turf/open/floor/shiva/redfull/west, +/area/shiva/interior/colony/s_admin) +"TI" = ( +/obj/item/ammo_casing, +/turf/open/floor/shiva/multi_tiles/west, +/area/shiva/interior/colony/s_admin) +"TL" = ( +/obj/item/weapon/gun/energy/taser, +/obj/structure/machinery/light/double{ + dir = 8; + pixel_y = -5 + }, +/turf/open/floor/wood, +/area/shiva/interior/colony/s_admin) +"Ub" = ( +/obj/item/trash/kepler/flamehot, +/turf/open/floor/shiva/floor3, +/area/shiva/interior/colony/s_admin) +"Ue" = ( +/obj/structure/stairs/perspective{ + icon_state = "p_stair_full" + }, +/obj/item/ammo_casing, +/turf/open/floor/shiva/multi_tiles/southeast, +/area/shiva/interior/bar) +"UD" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/comdoor/colony{ + name = "\improper Colony Administration"; + locked = 1 + }, +/turf/open/floor/shiva/north, +/area/shiva/interior/colony/s_admin) +"UW" = ( +/obj/structure/machinery/light/double, +/turf/open/floor/shiva/green/southwest, +/area/shiva/interior/colony/botany) +"Vb" = ( +/obj/item/bodybag, +/turf/open/floor/shiva/bluefull, +/area/shiva/interior/colony/s_admin) +"Vi" = ( +/obj/structure/window_frame/colony/reinforced, +/obj/item/shard, +/turf/open/floor/plating, +/area/shiva/interior/colony/s_admin) +"Vl" = ( +/obj/effect/acid_hole, +/turf/closed/wall/shiva/prefabricated, +/area/shiva/interior/colony/s_admin) +"Vy" = ( +/obj/structure/surface/table, +/obj/item/storage/toolbox/emergency, +/turf/open/floor/shiva/floor3, +/area/shiva/interior/colony/s_admin) +"VC" = ( +/obj/structure/machinery/light/double{ + dir = 4; + pixel_y = -5 + }, +/obj/structure/surface/table/reinforced/prison, +/obj/effect/landmark/crap_item, +/turf/open/floor/shiva/bluefull, +/area/shiva/interior/colony/s_admin) +"VE" = ( +/obj/structure/machinery/door/airlock/almayer/security/glass/colony{ + name = "\improper Colony Security Checkpoint" + }, +/turf/open/floor/shiva/north, +/area/shiva/interior/colony/s_admin) +"VX" = ( +/obj/structure/closet/secure_closet/personal, +/obj/effect/landmark/objective_landmark/medium, +/obj/effect/landmark/good_item, +/turf/open/floor/shiva/floor3, +/area/shiva/interior/colony/s_admin) +"Wj" = ( +/obj/structure/bed/chair{ + dir = 8 + }, +/turf/open/floor/shiva/bluefull, +/area/shiva/interior/colony/s_admin) +"Wm" = ( +/turf/open/auto_turf/snow/layer2, +/area/shiva/exterior/junkyard/cp_bar) +"WA" = ( +/obj/structure/stairs/perspective{ + dir = 4; + icon_state = "p_stair_sn_full_cap" + }, +/turf/open/floor/shiva/multi_tiles/southeast, +/area/shiva/interior/bar) +"WT" = ( +/obj/item/frame/table/wood, +/turf/open/floor/plating/platingdmg2, +/area/shiva/interior/colony/s_admin) +"Xt" = ( +/obj/structure/flora/pottedplant, +/turf/open/floor/shiva/bluefull, +/area/shiva/interior/colony/s_admin) +"Xu" = ( +/obj/effect/spawner/gibspawner/xeno, +/turf/open/floor/plating/platingdmg1, +/area/shiva/interior/colony/s_admin) +"XP" = ( +/obj/structure/window/reinforced/tinted{ + dir = 4 + }, +/obj/structure/window/reinforced/tinted, +/obj/structure/surface/table/reinforced/prison, +/obj/item/paper_bin, +/obj/item/tool/pen/blue, +/turf/open/floor/shiva/north, +/area/shiva/interior/colony/s_admin) +"YD" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/machinery/computer/cameras{ + dir = 1 + }, +/turf/open/floor/shiva/north, +/area/shiva/interior/colony/s_admin) +"YS" = ( +/obj/item/shard{ + icon_state = "medium" + }, +/turf/open/floor/shiva/floor3, +/area/shiva/interior/colony/s_admin) +"YT" = ( +/obj/structure/window/reinforced/tinted{ + dir = 4 + }, +/obj/structure/machinery/computer/atmos_alert{ + dir = 8 + }, +/obj/structure/surface/table/reinforced/prison, +/turf/open/floor/shiva/north, +/area/shiva/interior/colony/s_admin) +"Zi" = ( +/obj/item/weapon/gun/pistol/holdout, +/obj/item/ammo_magazine/pistol/holdout, +/turf/open/floor/shiva/multi_tiles/southeast, +/area/shiva/interior/bar) +"Zl" = ( +/obj/item/stack/cable_coil, +/turf/open/floor/plating/platingdmg1, +/area/shiva/interior/colony/s_admin) +"ZD" = ( +/obj/item/ammo_magazine/rifle/m16, +/turf/open/floor/shiva/bluefull, +/area/shiva/interior/colony/s_admin) + +(1,1,1) = {" +PG +ce +FY +FY +FY +FY +FY +FY +FY +FY +FY +FY +ce +ce +ce +ce +ce +ce +pQ +pQ +Ik +FY +FY +"} +(2,1,1) = {" +PG +ce +FY +FY +FY +FY +FY +FY +FY +FY +FY +ce +ce +JQ +yS +Av +yd +ce +QS +NC +QS +FY +FY +"} +(3,1,1) = {" +Kb +ce +FY +FY +FY +FY +FY +FY +FY +FY +FY +ce +MR +wM +fj +rQ +iZ +ce +Ik +jK +pQ +FY +FY +"} +(4,1,1) = {" +RP +ce +ce +ce +ce +ce +ce +ce +ce +ce +ce +ce +ce +fj +xZ +fj +dv +ce +yz +Ik +Ik +FY +FY +"} +(5,1,1) = {" +RP +GC +iS +pG +tu +ba +Cd +mC +dF +dF +qT +JF +ce +pz +TG +eZ +ce +ce +ce +ce +Ik +FY +FY +"} +(6,1,1) = {" +RP +Vl +dF +Hx +Ad +Hx +dF +CZ +Hx +Ad +zw +dF +ce +Nu +Ub +xZ +Pb +vq +pS +ce +QS +FY +FY +"} +(7,1,1) = {" +Ld +nh +rM +tk +YT +zi +xa +dF +tk +Kp +rB +qU +ce +ul +dF +dF +ov +yQ +kB +ce +Ik +FY +FY +"} +(8,1,1) = {" +RP +Vi +CZ +lQ +gO +uM +dF +dF +RH +Tr +PI +Dx +ce +uE +CZ +tl +Dl +dF +iF +ce +NC +FY +FY +"} +(9,1,1) = {" +UW +GC +mI +Hx +RS +Hx +CZ +dF +Hx +RS +Jp +dF +of +Td +RD +Rs +sq +ye +fj +ce +QS +FY +FY +"} +(10,1,1) = {" +js +zA +do +Hx +Hx +lP +dF +Lr +Hx +Hx +Hx +yq +of +Vy +Fp +Tj +Fx +tY +oY +ce +QS +FY +FY +"} +(11,1,1) = {" +Nq +tW +dg +uh +lq +Hx +dF +dF +Hx +Hx +Hx +CZ +of +ns +PV +He +Wj +dF +gf +ce +QS +FY +FY +"} +(12,1,1) = {" +oH +GC +Bg +oT +Cx +Hx +dF +CZ +LF +Ad +Hx +dF +of +Fc +CZ +DY +dF +BU +ce +ce +cS +ch +Fn +"} +(13,1,1) = {" +Nq +aq +rM +tk +Bq +XP +dF +dF +tk +Bq +XP +sy +ce +YS +dF +dF +cL +bi +Mi +MG +Qh +LE +LE +"} +(14,1,1) = {" +Nq +SB +FK +RH +HA +Cu +dF +dF +cY +HA +Cu +dF +ce +yi +BU +dF +dF +Ko +gB +fM +Ue +Zi +LE +"} +(15,1,1) = {" +Sq +GC +dF +Hx +RS +Hx +CZ +dF +zw +RS +Hx +dF +ce +fj +Vb +ky +CZ +ZD +GJ +fM +fx +BQ +BQ +"} +(16,1,1) = {" +vL +GC +dF +Tc +VC +dF +Lh +dF +gR +dF +vn +Xt +ce +Se +Dg +dF +yQ +CZ +Py +fM +uA +LE +LE +"} +(17,1,1) = {" +fT +ce +GC +GC +GC +jE +GC +ce +oT +cO +cO +uh +ce +tD +RQ +uP +IQ +gL +Bv +MG +WA +LE +LE +"} +(18,1,1) = {" +Ry +GC +DU +jL +TL +fR +ob +GC +AY +vs +vs +AY +ce +GC +GC +GC +GC +ce +ce +ce +cS +BD +Fn +"} +(19,1,1) = {" +tG +GC +gn +fR +fR +Iy +jP +GC +Ru +Hp +cO +Hx +GC +VX +cv +kP +lb +GC +ai +Wm +FY +FY +FY +"} +(20,1,1) = {" +Sq +GC +Hf +ff +OV +xg +YD +GC +gh +cO +cO +Hx +FH +IB +aH +SU +xD +GC +ne +Wm +FY +FY +FY +"} +(21,1,1) = {" +zu +ce +ce +VE +ce +wO +bI +ce +EX +cO +hN +Hx +GC +pC +fj +kT +fj +GC +KO +ON +FY +FY +FY +"} +(22,1,1) = {" +Jx +On +KR +GQ +uR +Hx +Hx +On +Cx +Nt +cO +AC +ce +GC +GC +AZ +GC +ce +Fg +Wm +FY +FY +FY +"} +(23,1,1) = {" +PG +UD +Lu +wX +TI +wX +ug +UD +eO +wW +vs +Hx +GC +Ff +wH +AZ +WT +GC +Lk +Wm +FY +FY +FY +"} +(24,1,1) = {" +LU +Hx +eO +wX +DB +wX +wX +Hx +sZ +vs +vs +zw +Zl +ML +AZ +ti +wH +pV +ne +Wm +FY +FY +FY +"} +(25,1,1) = {" +PG +nh +zc +zw +Hx +Hx +Hx +nh +DW +Hx +Hx +uJ +gk +ng +wH +Cc +Fa +GC +ne +ON +FY +FY +FY +"} +(26,1,1) = {" +PG +GC +Hx +Hx +Jv +Hx +AY +GC +yo +Hx +Jv +zp +GC +Sl +Xu +wH +AZ +GC +wY +Wm +FY +FY +FY +"} +(27,1,1) = {" +PG +GC +GC +GC +GC +GC +GC +GC +GC +GC +GC +ce +ce +ce +ce +GC +GC +ce +ne +Wm +FY +FY +FY +"} diff --git a/maps/map_files/Kutjevo/Kutjevo.dmm b/maps/map_files/Kutjevo/Kutjevo.dmm index 2e1ebb3ea204..ab9ccc4c399e 100644 --- a/maps/map_files/Kutjevo/Kutjevo.dmm +++ b/maps/map_files/Kutjevo/Kutjevo.dmm @@ -55,9 +55,7 @@ /area/kutjevo/interior/colony_South/power2) "acN" = ( /obj/structure/blocker/invisible_wall, -/turf/open/gm/river/desert/shallow_edge{ - dir = 4 - }, +/turf/open/gm/river/desert/shallow_edge/east, /area/kutjevo/interior/oob) "adD" = ( /turf/open/floor/almayer/research/containment/floor1, @@ -180,14 +178,10 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 8 - }, +/turf/open/floor/kutjevo/multi_tiles/west, /area/kutjevo/interior/complex/med/locks) "aog" = ( -/turf/open/desert/desert_shore/shore_edge1{ - dir = 4 - }, +/turf/open/desert/desert_shore/shore_edge1/east, /area/kutjevo/exterior/runoff_dunes) "aoh" = ( /obj/structure/platform_decoration/kutjevo/rock{ @@ -199,9 +193,7 @@ /turf/open/auto_turf/sand/layer0, /area/kutjevo/interior/colony_N_East) "aor" = ( -/turf/open/floor/kutjevo/colors/orange/edge{ - dir = 5 - }, +/turf/open/floor/kutjevo/colors/orange/edge/northeast, /area/kutjevo/interior/power_pt2_electric_boogaloo) "aoJ" = ( /obj/structure/stairs/perspective/kutjevo{ @@ -217,9 +209,7 @@ /turf/open/auto_turf/sand/layer1, /area/kutjevo/interior/colony_central) "apD" = ( -/turf/open/gm/river/desert/shallow_corner{ - dir = 4 - }, +/turf/open/gm/river/desert/shallow_corner/east, /area/kutjevo/exterior/lz_river) "aqC" = ( /obj/structure/machinery/cm_vending/sorted/medical/no_access, @@ -244,24 +234,20 @@ "arh" = ( /obj/item/prop/alien/hugger, /turf/open/auto_turf/sand/layer1, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "arr" = ( /obj/structure/blocker/invisible_wall, /obj/structure/platform/kutjevo{ dir = 8 }, -/turf/open/gm/river/desert/deep{ - icon = 'icons/turf/floors/desert_water_toxic.dmi' - }, +/turf/open/gm/river/desert/deep/toxic, /area/kutjevo/interior/oob) "arA" = ( /obj/effect/landmark/yautja_teleport, /turf/open/auto_turf/sand/layer1, /area/kutjevo/exterior/stonyfields) "arG" = ( -/turf/open/floor/kutjevo/tan/multi_tiles{ - dir = 1 - }, +/turf/open/floor/kutjevo/tan/multi_tiles/north, /area/kutjevo/exterior/runoff_bridge) "arM" = ( /obj/structure/flora/grass/tallgrass/desert/corner{ @@ -311,15 +297,11 @@ /obj/structure/bed/chair/office/dark{ dir = 4 }, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 10 - }, +/turf/open/floor/kutjevo/multi_tiles/southwest, /area/kutjevo/interior/colony_South/power2) "atC" = ( /obj/item/stack/rods, -/turf/open/floor/kutjevo/colors/purple/edge{ - dir = 8 - }, +/turf/open/floor/kutjevo/colors/purple/edge/west, /area/kutjevo/interior/construction) "atQ" = ( /obj/item/tank/emergency_oxygen/engi, @@ -362,18 +344,14 @@ /area/kutjevo/interior/power) "awJ" = ( /obj/structure/bed/chair, -/turf/open/floor/kutjevo/tan/grey_edge{ - dir = 4 - }, +/turf/open/floor/kutjevo/tan/grey_edge/east, /area/kutjevo/interior/complex/Northwest_Dorms) "axi" = ( /obj/structure/flora/bush/ausbushes/grassybush{ pixel_x = -4; pixel_y = 10 }, -/turf/open/gm/river/desert/shallow_edge{ - dir = 9 - }, +/turf/open/gm/river/desert/shallow_edge/northwest, /area/kutjevo/exterior/spring) "axK" = ( /obj/item/trash/cigbutt/bcigbutt, @@ -401,9 +379,7 @@ /area/kutjevo/interior/construction) "aze" = ( /obj/structure/platform/kutjevo, -/turf/open/floor/coagulation{ - icon_state = "7,0" - }, +/turf/open/floor/coagulation/icon7_0, /area/kutjevo/interior/construction) "azo" = ( /obj/structure/largecrate/random/case/small, @@ -413,28 +389,10 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 4 - }, +/turf/open/floor/kutjevo/multi_tiles/east, /area/kutjevo/interior/complex/med) -"azI" = ( -/obj/structure/platform/kutjevo/smooth{ - dir = 4 - }, -/obj/structure/barricade/handrail/kutjevo{ - layer = 3.1 - }, -/obj/structure/barricade/handrail/kutjevo{ - dir = 4 - }, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 1 - }, -/area/kutjevo/interior/colony_South/power2) "azO" = ( -/turf/open/desert/desert_shore/desert_shore1{ - dir = 8 - }, +/turf/open/desert/desert_shore/desert_shore1/west, /area/kutjevo/exterior/lz_river) "aAe" = ( /obj/structure/stairs/perspective/kutjevo{ @@ -442,9 +400,7 @@ icon_state = "p_stair_full"; pixel_y = 16 }, -/turf/open/floor/kutjevo/tan/multi_tiles{ - dir = 1 - }, +/turf/open/floor/kutjevo/tan/multi_tiles/north, /area/kutjevo/interior/power/comms) "aAg" = ( /obj/structure/machinery/recharge_station, @@ -463,9 +419,7 @@ /area/kutjevo/exterior/runoff_bridge) "aCo" = ( /obj/structure/reagent_dispensers/watertank, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 1 - }, +/turf/open/floor/kutjevo/multi_tiles/north, /area/kutjevo/interior/power/comms) "aCD" = ( /turf/open/floor/kutjevo/tan, @@ -483,9 +437,7 @@ /obj/structure/platform/kutjevo{ dir = 8 }, -/turf/open/floor/coagulation{ - icon_state = "0,8" - }, +/turf/open/floor/coagulation/icon0_8, /area/kutjevo/interior/construction) "aFc" = ( /obj/structure/surface/table/reinforced/prison, @@ -493,9 +445,7 @@ layer = 3.1 }, /obj/item/device/flashlight/lamp, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 4 - }, +/turf/open/floor/kutjevo/multi_tiles/east, /area/kutjevo/interior/colony_South/power2) "aFf" = ( /obj/item/tool/wirecutters/clippers, @@ -529,9 +479,7 @@ /area/kutjevo/interior/complex/botany/east) "aHg" = ( /obj/structure/blocker/invisible_wall, -/turf/open/gm/river/desert/shallow_edge{ - dir = 5 - }, +/turf/open/gm/river/desert/shallow_edge/northeast, /area/kutjevo/interior/oob) "aHl" = ( /turf/open/floor/kutjevo/colors/cyan, @@ -555,7 +503,7 @@ "aIy" = ( /obj/structure/largecrate/black_market/confiscated_equipment, /turf/open/floor/kutjevo/tan, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "aIF" = ( /obj/structure/prop/dam/boulder/boulder1, /turf/open/auto_turf/sand/layer1, @@ -606,15 +554,6 @@ }, /turf/closed/wall/kutjevo/colony, /area/kutjevo/interior/construction) -"aNj" = ( -/obj/structure/platform/kutjevo/smooth{ - dir = 8 - }, -/obj/structure/platform/kutjevo/smooth{ - dir = 1 - }, -/turf/open/floor/kutjevo/colors/orange, -/area/kutjevo/interior/colony_South/power2) "aNn" = ( /turf/open/auto_turf/sand/layer2, /area/kutjevo/interior/power/comms) @@ -647,10 +586,16 @@ /turf/open/floor/kutjevo/tan/multi_tiles, /area/kutjevo/interior/complex/botany) "aRu" = ( -/turf/open/floor/kutjevo/tan/alt_edge{ +/turf/open/floor/kutjevo/tan/alt_edge/north, +/area/kutjevo/exterior/lz_dunes) +"aRB" = ( +/obj/item/fuel_cell, +/obj/structure/surface/rack, +/obj/structure/platform/kutjevo/smooth{ dir = 1 }, -/area/kutjevo/exterior/lz_dunes) +/turf/open/floor/kutjevo/multi_tiles/west, +/area/kutjevo/interior/colony_South/power2) "aRS" = ( /obj/structure/bed{ can_buckle = 0; @@ -683,19 +628,14 @@ /turf/open/gm/dirt2, /area/kutjevo/exterior/complex_border/med_park) "aWt" = ( -/turf/open/desert/desert_shore/shore_corner2{ - dir = 8 - }, +/turf/open/desert/desert_shore/shore_corner2/west, /area/kutjevo/exterior/lz_river) "aWR" = ( -/obj/structure/blocker/invisible_wall, /obj/structure/machinery/light{ dir = 8 }, -/turf/open/gm/river/desert/deep{ - icon = 'icons/turf/floors/desert_water_toxic.dmi' - }, -/area/kutjevo/interior/oob) +/turf/open/gm/river/desert/deep/toxic, +/area/kutjevo/exterior/construction) "aXU" = ( /obj/structure/barricade/wooden{ dir = 1; @@ -716,9 +656,7 @@ pixel_x = -2; pixel_y = 5 }, -/turf/open/gm/dirtgrassborder2{ - icon_state = "wall3" - }, +/turf/open/gm/dirtgrassborder2/wall3, /area/kutjevo/exterior/complex_border/med_park) "baL" = ( /obj/structure/platform/kutjevo/smooth{ @@ -733,9 +671,7 @@ dir = 8 }, /obj/structure/blocker/invisible_wall, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 10 - }, +/turf/open/floor/kutjevo/multi_tiles/southwest, /area/kutjevo/interior/colony_South/power2) "bbc" = ( /obj/structure/surface/table/reinforced/prison, @@ -753,16 +689,11 @@ /obj/structure/platform/kutjevo{ dir = 4 }, -/obj/structure/blocker/invisible_wall, -/turf/open/gm/river/desert/deep{ - icon = 'icons/turf/floors/desert_water_toxic.dmi' - }, -/area/kutjevo/interior/oob) +/turf/open/gm/river/desert/deep, +/area/kutjevo/interior/complex/botany/east_tech) "bcl" = ( /obj/structure/largecrate/random/barrel/red, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 4 - }, +/turf/open/floor/kutjevo/multi_tiles/east, /area/kutjevo/interior/complex/botany) "bcG" = ( /obj/structure/platform/kutjevo{ @@ -771,9 +702,7 @@ /obj/structure/platform/kutjevo{ dir = 4 }, -/turf/open/floor/coagulation{ - icon_state = "8,8" - }, +/turf/open/floor/coagulation/icon8_8, /area/kutjevo/interior/construction) "bcO" = ( /obj/item/stack/rods, @@ -781,10 +710,8 @@ /area/kutjevo/interior/complex/botany) "bdd" = ( /obj/structure/largecrate, -/turf/open/floor/kutjevo/tan/alt_edge{ - dir = 1 - }, -/area/kutjevo/exterior/Northwest_Colony) +/turf/open/floor/kutjevo/tan/alt_edge/north, +/area/kutjevo/exterior/lz_pad) "bde" = ( /obj/structure/flora/grass/tallgrass/desert/corner{ dir = 10 @@ -805,9 +732,7 @@ /turf/open/floor/kutjevo/tan/multi_tiles, /area/kutjevo/interior/colony_South/power2) "bex" = ( -/turf/open/floor/kutjevo/multi_tiles{ - dir = 4 - }, +/turf/open/floor/kutjevo/multi_tiles/east, /area/kutjevo/interior/complex/med/auto_doc) "beR" = ( /obj/structure/stairs/perspective/kutjevo{ @@ -864,9 +789,7 @@ /turf/closed/wall/kutjevo/colony/reinforced, /area/kutjevo/interior/power) "bjc" = ( -/turf/open/gm/river/desert/shallow_corner{ - dir = 1 - }, +/turf/open/gm/river/desert/shallow_corner/north, /area/kutjevo/exterior/runoff_river) "bjj" = ( /obj/structure/machinery/light{ @@ -874,6 +797,10 @@ }, /turf/open/auto_turf/sand/layer1, /area/kutjevo/exterior/complex_border/botany_medical_cave) +"bkn" = ( +/obj/structure/machinery/power/reactor/colony, +/turf/open/floor/kutjevo/colors/orange, +/area/kutjevo/interior/power) "bkR" = ( /turf/open/auto_turf/sand/layer1, /area/kutjevo/interior/colony_north) @@ -896,18 +823,14 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/kutjevo/tan/grey_edge{ - dir = 1 - }, +/turf/open/floor/kutjevo/tan/grey_edge/north, /area/kutjevo/interior/complex/Northwest_Dorms) "bne" = ( /obj/structure/prop/dam/crane{ icon_state = "tractor"; name = "tractor" }, -/turf/open/floor/kutjevo/tan/multi_tiles{ - dir = 1 - }, +/turf/open/floor/kutjevo/tan/multi_tiles/north, /area/kutjevo/interior/power/comms) "bng" = ( /obj/structure/platform/kutjevo/smooth{ @@ -920,9 +843,7 @@ /turf/open/auto_turf/sand/layer1, /area/kutjevo/exterior/construction) "bnF" = ( -/turf/open/desert/desert_shore/shore_corner2{ - dir = 4 - }, +/turf/open/desert/desert_shore/shore_corner2/east, /area/kutjevo/exterior/runoff_bridge) "bnK" = ( /obj/structure/platform/kutjevo/rock{ @@ -935,15 +856,13 @@ /turf/open/auto_turf/sand/layer0, /area/kutjevo/interior/colony_north) "bnQ" = ( -/turf/closed/wall/kutjevo/colony/reinforced/hull, -/area/kutjevo/interior/colony_north) +/turf/open/gm/river/desert/deep/toxic, +/area/kutjevo/interior/complex/botany) "boa" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 4 - }, +/turf/open/floor/kutjevo/multi_tiles/east, /area/kutjevo/interior/power) "boR" = ( /turf/open/floor/kutjevo/colors/orange, @@ -1003,7 +922,7 @@ /turf/open/floor/kutjevo/tan, /area/kutjevo/interior/complex/Northwest_Security_Checkpoint) "btI" = ( -/turf/closed/wall/kutjevo/colony/reinforced/hull, +/turf/open/floor/plating/kutjevo/panelscorched, /area/kutjevo/interior/complex/botany/east_tech) "buo" = ( /obj/structure/machinery/power/apc{ @@ -1013,37 +932,28 @@ /turf/open/floor/kutjevo/colors/orange/inner_corner, /area/kutjevo/interior/foremans_office) "bux" = ( -/turf/open/floor/kutjevo/colors/cyan/edge{ - dir = 1 - }, +/turf/open/floor/kutjevo/colors/cyan/edge/north, /area/kutjevo/interior/complex/med/auto_doc) "buG" = ( /obj/effect/landmark/objective_landmark/close, /turf/open/floor/kutjevo/colors/cyan, /area/kutjevo/interior/complex/med) "bvT" = ( -/obj/structure/blocker/invisible_wall, /obj/structure/machinery/light{ dir = 1 }, -/turf/open/gm/river/desert/deep{ - icon = 'icons/turf/floors/desert_water_toxic.dmi' - }, -/area/kutjevo/interior/oob) +/turf/open/gm/river/desert/deep/toxic, +/area/kutjevo/exterior/construction) "bwt" = ( /obj/structure/prop/dam/truck/cargo, -/turf/open/floor/kutjevo/tan/multi_tiles{ - dir = 1 - }, +/turf/open/floor/kutjevo/tan/multi_tiles/north, /area/kutjevo/exterior/Northwest_Colony) "bwT" = ( /obj/structure/flora/bush/ausbushes/reedbush, /obj/structure/platform_decoration/kutjevo{ dir = 1 }, -/turf/open/gm/river/desert/shallow_edge{ - dir = 8 - }, +/turf/open/gm/river/desert/shallow_edge/west, /area/kutjevo/exterior/runoff_river) "byl" = ( /obj/structure/blocker/invisible_wall, @@ -1081,20 +991,14 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 8 - }, +/turf/open/floor/kutjevo/multi_tiles/west, /area/kutjevo/interior/complex/med/operating) "bAe" = ( /obj/structure/bed/sofa/south/grey/right, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 1 - }, +/turf/open/floor/kutjevo/multi_tiles/north, /area/kutjevo/exterior/runoff_bridge) "bBf" = ( -/turf/open/desert/desert_shore/shore_edge1{ - dir = 4 - }, +/turf/open/desert/desert_shore/shore_edge1/east, /area/kutjevo/exterior/runoff_river) "bBS" = ( /obj/structure/flora/bush/ausbushes/grassybush{ @@ -1105,9 +1009,7 @@ /area/kutjevo/exterior/runoff_bridge) "bDg" = ( /obj/structure/reagent_dispensers/water_cooler, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 10 - }, +/turf/open/floor/kutjevo/multi_tiles/southwest, /area/kutjevo/interior/colony_South/power2) "bDl" = ( /obj/structure/surface/table/almayer, @@ -1131,9 +1033,7 @@ /area/kutjevo/interior/colony_S_East) "bDW" = ( /obj/structure/blocker/invisible_wall, -/turf/open/desert/desert_shore/shore_corner2{ - dir = 8 - }, +/turf/open/desert/desert_shore/shore_corner2/west, /area/kutjevo/interior/oob/dev_room) "bDX" = ( /obj/structure/machinery/sensortower, @@ -1149,10 +1049,13 @@ pixel_y = 4 }, /turf/open/floor/almayer/research/containment/floor1, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "bEp" = ( /turf/closed/wall/kutjevo/rock, /area/kutjevo/exterior/scrubland) +"bEt" = ( +/turf/open/floor/kutjevo/multi_tiles, +/area/kutjevo/exterior/lz_pad) "bEH" = ( /turf/open/auto_turf/sand/layer2, /area/kutjevo/interior/colony_north) @@ -1177,9 +1080,7 @@ dir = 1 }, /obj/structure/blocker/invisible_wall, -/turf/open/gm/river/desert/shallow_edge{ - dir = 5 - }, +/turf/open/gm/river/desert/shallow_edge/northeast, /area/kutjevo/interior/oob) "bGg" = ( /obj/structure/flora/bush/desert{ @@ -1190,16 +1091,14 @@ "bGi" = ( /obj/item/stack/sheet/wood, /turf/open/floor/kutjevo/colors/orange, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "bGv" = ( /obj/item/reagent_container/food/drinks/cans/waterbottle, /turf/open/auto_turf/sand/layer0, /area/kutjevo/exterior/complex_border/med_rec) "bGw" = ( /obj/structure/blocker/invisible_wall, -/turf/open/desert/desert_shore/shore_edge1{ - dir = 1 - }, +/turf/open/desert/desert_shore/shore_edge1/north, /area/kutjevo/interior/oob/dev_room) "bGD" = ( /turf/open/desert/desert_shore/shore_edge1, @@ -1242,9 +1141,7 @@ /turf/open/auto_turf/sand/layer0, /area/kutjevo/exterior/construction) "bJf" = ( -/turf/open/desert/desert_shore/desert_shore1{ - dir = 1 - }, +/turf/open/desert/desert_shore/desert_shore1/north, /area/kutjevo/exterior/runoff_river) "bKi" = ( /obj/structure/pipes/unary/freezer{ @@ -1270,9 +1167,7 @@ /obj/structure/platform_decoration/kutjevo{ dir = 4 }, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 1 - }, +/turf/open/floor/kutjevo/multi_tiles/north, /area/kutjevo/exterior/complex_border/med_rec) "bKO" = ( /obj/effect/landmark/monkey_spawn, @@ -1290,9 +1185,7 @@ /area/kutjevo/interior/colony_central/mine_elevator) "bMu" = ( /obj/structure/bed/sofa/south/grey, -/turf/open/floor/kutjevo/tan/grey_edge{ - dir = 1 - }, +/turf/open/floor/kutjevo/tan/grey_edge/north, /area/kutjevo/interior/complex/Northwest_Dorms) "bNG" = ( /obj/structure/prop/dam/boulder/boulder1, @@ -1308,9 +1201,7 @@ dir = 1; pixel_y = 13 }, -/turf/open/floor/kutjevo/tan/multi_tiles{ - dir = 1 - }, +/turf/open/floor/kutjevo/tan/multi_tiles/north, /area/kutjevo/interior/power/comms) "bOc" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, @@ -1326,9 +1217,7 @@ /turf/open/floor/kutjevo/tan, /area/kutjevo/interior/complex/botany) "bQg" = ( -/obj/structure/machinery/colony_floodlight{ - pixel_y = 10 - }, +/obj/structure/machinery/colony_floodlight, /turf/open/floor/kutjevo/colors/orange, /area/kutjevo/interior/foremans_office) "bQk" = ( @@ -1337,9 +1226,7 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/kutjevo/colors/orange/edge{ - dir = 1 - }, +/turf/open/floor/kutjevo/colors/orange/edge/north, /area/kutjevo/interior/complex/Northwest_Security_Checkpoint) "bQy" = ( /obj/structure/cable/heavyduty{ @@ -1351,19 +1238,14 @@ /obj/structure/platform_decoration/kutjevo{ dir = 8 }, -/obj/structure/blocker/invisible_wall, -/turf/open/gm/river/desert/deep{ - icon = 'icons/turf/floors/desert_water_toxic.dmi' - }, -/area/kutjevo/interior/oob) +/turf/open/gm/river/desert/deep, +/area/kutjevo/interior/complex/botany/east_tech) "bRl" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/computer/communications{ dir = 1 }, -/turf/open/floor/kutjevo/colors/orange/edge{ - dir = 4 - }, +/turf/open/floor/kutjevo/colors/orange/edge/east, /area/kutjevo/interior/foremans_office) "bRF" = ( /obj/item/stack/sheet/metal, @@ -1389,9 +1271,7 @@ /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/kutjevo/colors/purple/edge{ - dir = 1 - }, +/turf/open/floor/kutjevo/colors/purple/edge/north, /area/kutjevo/interior/construction) "bTN" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony/autoname{ @@ -1412,9 +1292,7 @@ "bVB" = ( /obj/structure/blocker/invisible_wall, /obj/effect/landmark/corpsespawner/security/marshal, -/turf/open/gm/river/desert/deep{ - icon = 'icons/turf/floors/desert_water_toxic.dmi' - }, +/turf/open/gm/river/desert/deep/toxic, /area/kutjevo/interior/power) "bVK" = ( /obj/structure/stairs/perspective/kutjevo{ @@ -1438,7 +1316,7 @@ icon_state = "tree_3" }, /turf/open/auto_turf/sand/layer0, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "bXc" = ( /obj/structure/surface/rack, /obj/effect/landmark/objective_landmark/close, @@ -1463,9 +1341,7 @@ /area/kutjevo/exterior/lz_dunes) "cal" = ( /obj/structure/largecrate/random/case/double, -/turf/open/floor/kutjevo/colors/purple/edge{ - dir = 8 - }, +/turf/open/floor/kutjevo/colors/purple/edge/west, /area/kutjevo/interior/construction) "cau" = ( /obj/item/bodybag/tarp/reactive, @@ -1484,9 +1360,7 @@ /area/kutjevo/interior/complex/med/operating) "cbv" = ( /obj/structure/platform_decoration/kutjevo, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 10 - }, +/turf/open/floor/kutjevo/multi_tiles/southwest, /area/kutjevo/interior/colony_South/power2) "cbz" = ( /turf/open/floor/plating/kutjevo, @@ -1496,11 +1370,9 @@ dir = 4 }, /turf/open/floor/kutjevo/multi_tiles, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "ccu" = ( -/turf/open/floor/kutjevo/tan/grey_inner_edge{ - dir = 8 - }, +/turf/open/floor/kutjevo/tan/grey_inner_edge/west, /area/kutjevo/interior/complex/med) "cdE" = ( /obj/structure/barricade/deployable{ @@ -1509,9 +1381,7 @@ /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/kutjevo/colors/purple/inner_corner{ - dir = 4 - }, +/turf/open/floor/kutjevo/colors/purple/inner_corner/east, /area/kutjevo/interior/construction) "cek" = ( /obj/structure/platform_decoration/kutjevo/rock{ @@ -1569,9 +1439,7 @@ /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/kutjevo/tan/alt_edge{ - dir = 5 - }, +/turf/open/floor/kutjevo/tan/alt_edge/northeast, /area/kutjevo/interior/complex/Northwest_Flight_Control) "cjO" = ( /turf/open/floor/kutjevo/tan/multi_tiles, @@ -1580,25 +1448,17 @@ /obj/structure/platform_decoration/kutjevo/rock{ dir = 8 }, -/turf/open/mars_cave{ - icon_state = "mars_cave_10" - }, +/turf/open/mars_cave/mars_cave_10, /area/kutjevo/exterior/scrubland) "ckF" = ( /obj/structure/blocker/invisible_wall, -/turf/open/desert/desert_shore/desert_shore1{ - dir = 4 - }, +/turf/open/desert/desert_shore/desert_shore1/east, /area/kutjevo/interior/oob/dev_room) "clo" = ( -/turf/open/gm/river/desert/shallow_edge{ - dir = 9 - }, +/turf/open/gm/river/desert/shallow_edge/northwest, /area/kutjevo/exterior/runoff_dunes) "cmG" = ( -/turf/open/floor/kutjevo/colors/cyan/edge{ - dir = 4 - }, +/turf/open/floor/kutjevo/colors/cyan/edge/east, /area/kutjevo/interior/complex/med/triage) "cnb" = ( /obj/structure/reagent_dispensers/watertank, @@ -1610,15 +1470,17 @@ }, /turf/open/floor/kutjevo/colors/cyan/tile, /area/kutjevo/interior/complex/med/operating) +"cou" = ( +/obj/effect/decal/cleanable/blood/xeno, +/turf/open/floor/kutjevo/multi_tiles, +/area/kutjevo/exterior/lz_pad) "coF" = ( /obj/structure/machinery/power/apc{ dir = 1; pixel_y = 24; start_charge = 0 }, -/turf/open/floor/kutjevo/tan/grey_edge{ - dir = 1 - }, +/turf/open/floor/kutjevo/tan/grey_edge/north, /area/kutjevo/interior/complex/Northwest_Dorms) "coL" = ( /obj/structure/machinery/medical_pod/bodyscanner, @@ -1656,10 +1518,14 @@ /obj/structure/machinery/cm_vending/sorted/medical/wall_med/limited{ pixel_x = -28 }, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 6 - }, +/turf/open/floor/kutjevo/multi_tiles/southeast, /area/kutjevo/interior/complex/botany) +"cpD" = ( +/obj/structure/flora/bush/desert{ + icon_state = "tree_3" + }, +/turf/open/auto_turf/sand/layer1, +/area/kutjevo/exterior/lz_pad) "cqc" = ( /obj/structure/surface/table/almayer, /obj/item/ammo_magazine/shotgun/buckshot{ @@ -1667,16 +1533,12 @@ pixel_y = 13 }, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/kutjevo/colors/orange/inner_corner{ - dir = 4 - }, +/turf/open/floor/kutjevo/colors/orange/inner_corner/east, /area/kutjevo/interior/power_pt2_electric_boogaloo) "cqk" = ( /obj/structure/filingcabinet, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/kutjevo/tan/multi_tiles{ - dir = 4 - }, +/turf/open/floor/kutjevo/tan/multi_tiles/east, /area/kutjevo/interior/complex/botany/east) "cqX" = ( /obj/structure/stairs/perspective/kutjevo{ @@ -1707,7 +1569,7 @@ "ctA" = ( /obj/structure/largecrate, /turf/open/floor/almayer/research/containment/floor2, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "ctD" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_30" @@ -1741,19 +1603,15 @@ dir = 4 }, /obj/structure/largecrate/random, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 10 - }, +/turf/open/floor/kutjevo/multi_tiles/southwest, /area/kutjevo/interior/colony_South/power2) "cum" = ( /obj/structure/extinguisher_cabinet, -/turf/closed/wall/kutjevo/colony/reinforced/hull, +/turf/closed/wall/kutjevo/colony/reinforced, /area/kutjevo/interior/oob) "cun" = ( /obj/structure/platform_decoration/kutjevo, -/turf/open/desert/desert_shore/desert_shore1{ - dir = 8 - }, +/turf/open/desert/desert_shore/desert_shore1/west, /area/kutjevo/exterior/lz_river) "cuF" = ( /obj/structure/platform/kutjevo{ @@ -1768,17 +1626,13 @@ /turf/open/floor/kutjevo/plate, /area/kutjevo/interior/colony_central) "cvm" = ( -/turf/open/floor/kutjevo/multi_tiles{ - dir = 6 - }, +/turf/open/floor/kutjevo/multi_tiles/southeast, /area/kutjevo/interior/power) "cvF" = ( /obj/structure/reagent_dispensers/watertank{ desc = "A watertank. The label has been written over with the sequence 2---" }, -/turf/open/floor/kutjevo/tan/multi_tiles{ - dir = 1 - }, +/turf/open/floor/kutjevo/tan/multi_tiles/north, /area/kutjevo/exterior/Northwest_Colony) "cvV" = ( /obj/item/weapon/gun/rifle/mar40, @@ -1817,17 +1671,13 @@ /area/kutjevo/exterior/runoff_dunes) "cBd" = ( /obj/structure/machinery/vending/coffee, -/turf/open/floor/kutjevo/colors/purple/inner_corner{ - dir = 1 - }, +/turf/open/floor/kutjevo/colors/purple/inner_corner/north, /area/kutjevo/interior/construction) "cBi" = ( /obj/structure/platform_decoration/kutjevo{ dir = 4 }, -/turf/open/desert/desert_shore/desert_shore1{ - dir = 4 - }, +/turf/open/desert/desert_shore/desert_shore1/east, /area/kutjevo/exterior/scrubland) "cBq" = ( /obj/structure/flora/bush/ausbushes/ausbush{ @@ -1897,9 +1747,7 @@ /area/kutjevo/interior/complex/botany) "cFJ" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic/autoname, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 6 - }, +/turf/open/floor/kutjevo/multi_tiles/southeast, /area/kutjevo/interior/complex/botany/east_tech) "cFT" = ( /obj/structure/platform/kutjevo/smooth{ @@ -1908,9 +1756,7 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 10 - }, +/turf/open/floor/kutjevo/multi_tiles/southwest, /area/kutjevo/interior/colony_South/power2) "cFY" = ( /obj/item/stool, @@ -1965,9 +1811,7 @@ /turf/open/floor/plating/kutjevo, /area/kutjevo/interior/colony_central) "cKi" = ( -/turf/open/gm/river/desert/shallow_edge{ - dir = 8 - }, +/turf/open/gm/river/desert/shallow_edge/west, /area/kutjevo/exterior/runoff_dunes) "cKH" = ( /obj/structure/platform_decoration/kutjevo{ @@ -1985,8 +1829,8 @@ "cKY" = ( /obj/structure/prop/brazier/frame/full/campfire, /obj/item/tool/match/paper{ - pixel_y = -2; - pixel_x = -11 + pixel_x = -11; + pixel_y = -2 }, /turf/open/auto_turf/sand/layer1, /area/kutjevo/exterior/spring) @@ -1997,10 +1841,12 @@ }, /turf/open/auto_turf/sand/layer0, /area/kutjevo/exterior/lz_dunes) +"cLr" = ( +/obj/item/stack/sheet/metal, +/turf/open/auto_turf/sand/layer1, +/area/kutjevo/exterior/lz_pad) "cLQ" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_7" - }, +/turf/open/mars_cave/mars_cave_7, /area/kutjevo/exterior/lz_dunes) "cMc" = ( /obj/structure/platform/kutjevo/smooth, @@ -2027,9 +1873,7 @@ }, /obj/structure/closet/secure_closet/engineering_electrical, /obj/effect/landmark/objective_landmark/far, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 10 - }, +/turf/open/floor/kutjevo/multi_tiles/southwest, /area/kutjevo/interior/colony_South/power2) "cMJ" = ( /obj/structure/platform/kutjevo{ @@ -2056,14 +1900,10 @@ /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22" }, -/turf/open/floor/kutjevo/colors/cyan/inner_corner{ - dir = 8 - }, +/turf/open/floor/kutjevo/colors/cyan/inner_corner/west, /area/kutjevo/interior/complex/med) "cPn" = ( -/turf/open/floor/kutjevo/tan/alt_edge{ - dir = 4 - }, +/turf/open/floor/kutjevo/tan/alt_edge/east, /area/kutjevo/exterior/lz_dunes) "cPt" = ( /obj/item/stack/sheet/wood, @@ -2089,9 +1929,7 @@ }, /obj/structure/platform/kutjevo/smooth, /obj/structure/blocker/invisible_wall, -/turf/open/gm/river/desert/deep{ - icon = 'icons/turf/floors/desert_water_toxic.dmi' - }, +/turf/open/gm/river/desert/deep/toxic, /area/kutjevo/interior/oob) "cQz" = ( /obj/effect/landmark/objective_landmark/science, @@ -2152,9 +1990,7 @@ dir = 4 }, /obj/structure/blocker/invisible_wall, -/turf/open/gm/river/desert/deep{ - icon = 'icons/turf/floors/desert_water_toxic.dmi' - }, +/turf/open/gm/river/desert/deep/toxic, /area/kutjevo/interior/oob) "cTW" = ( /obj/structure/stairs/perspective/kutjevo{ @@ -2176,9 +2012,7 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 10 - }, +/turf/open/floor/kutjevo/multi_tiles/southwest, /area/kutjevo/interior/colony_South/power2) "cUm" = ( /turf/open/floor/plating/kutjevo, @@ -2239,9 +2073,7 @@ /mob/living/simple_animal/cat/Runtime{ name = "Garry" }, -/turf/open/gm/dirtgrassborder2{ - dir = 8 - }, +/turf/open/gm/dirtgrassborder2/west, /area/kutjevo/exterior/complex_border/med_park) "cXL" = ( /turf/open/floor/plating/kutjevo, @@ -2258,7 +2090,7 @@ "cYb" = ( /obj/structure/largecrate/supply/floodlights, /turf/open/floor/kutjevo/colors/orange, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "cZt" = ( /obj/effect/decal/cleanable/blood, /obj/structure/machinery/door_control/brbutton{ @@ -2271,9 +2103,7 @@ range = 15 }, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/kutjevo/tan/grey_edge{ - dir = 1 - }, +/turf/open/floor/kutjevo/tan/grey_edge/north, /area/kutjevo/interior/complex/med) "dax" = ( /obj/structure/sink{ @@ -2319,17 +2149,12 @@ /turf/open/floor/plating/kutjevo, /area/kutjevo/interior/complex/botany) "dcC" = ( -/turf/open/desert/desert_shore/shore_edge1{ - dir = 1 - }, +/turf/open/desert/desert_shore/shore_edge1/north, /area/kutjevo/exterior/spring) "ddi" = ( /obj/structure/platform/kutjevo, -/obj/structure/blocker/invisible_wall, -/turf/open/gm/river/desert/deep{ - icon = 'icons/turf/floors/desert_water_toxic.dmi' - }, -/area/kutjevo/interior/oob) +/turf/open/gm/river/desert/deep, +/area/kutjevo/interior/complex/botany/east_tech) "ddk" = ( /obj/structure/stairs/perspective/kutjevo{ dir = 4; @@ -2361,10 +2186,7 @@ /obj/structure/bookcase{ icon_state = "book-5" }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/kutjevo/interior/complex/med) "dew" = ( /turf/open/floor/kutjevo/plate, @@ -2383,15 +2205,11 @@ /turf/open/floor/kutjevo/grey/plate, /area/kutjevo/interior/complex/Northwest_Dorms) "dfY" = ( -/turf/open/gm/river/desert/shallow_edge{ - dir = 6 - }, +/turf/open/gm/river/desert/shallow_edge/southeast, /area/kutjevo/exterior/lz_river) "dga" = ( /obj/item/storage/belt/marine, -/turf/open/floor/kutjevo/tan/multi_tiles{ - dir = 1 - }, +/turf/open/floor/kutjevo/tan/multi_tiles/north, /area/kutjevo/interior/power/comms) "dgs" = ( /obj/item/toy/crayon/rainbow{ @@ -2415,7 +2233,7 @@ dir = 4 }, /turf/open/floor/kutjevo/multi_tiles, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "dib" = ( /turf/open/gm/river/desert/shallow_edge, /area/kutjevo/exterior/runoff_river) @@ -2451,14 +2269,13 @@ /obj/structure/platform/kutjevo/smooth{ dir = 8 }, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 10 - }, +/turf/open/floor/kutjevo/multi_tiles/southwest, /area/kutjevo/interior/colony_South/power2) +"dmy" = ( +/turf/open/asphalt/cement_sunbleached, +/area/kutjevo/exterior/lz_pad) "dnd" = ( -/turf/open/gm/river/desert/shallow_edge{ - dir = 8 - }, +/turf/open/gm/river/desert/shallow_edge/west, /area/kutjevo/exterior/spring) "dnl" = ( /obj/structure/platform/kutjevo/rock, @@ -2493,20 +2310,18 @@ /obj/structure/platform_decoration/kutjevo{ dir = 8 }, -/turf/open/gm/river/desert/shallow_edge{ - dir = 9 - }, +/turf/open/gm/river/desert/shallow_edge/northwest, /area/kutjevo/exterior/runoff_river) "dpt" = ( /obj/structure/machinery/landinglight/ds2/delayone{ dir = 1 }, /turf/open/floor/kutjevo/multi_tiles, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "dpH" = ( /obj/structure/largecrate/random/case/double, /turf/open/floor/kutjevo/tan, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "dql" = ( /obj/structure/prop/dam/wide_boulder/boulder1, /turf/open/auto_turf/sand/layer1, @@ -2515,9 +2330,7 @@ /obj/structure/platform/kutjevo/smooth{ dir = 8 }, -/turf/open/gm/river/desert/shallow_edge{ - dir = 10 - }, +/turf/open/gm/river/desert/shallow_edge/southwest, /area/kutjevo/exterior/runoff_bridge) "dqH" = ( /obj/structure/barricade/handrail/kutjevo{ @@ -2526,9 +2339,7 @@ /obj/structure/closet/secure_closet/engineering_electrical, /obj/structure/platform/kutjevo/smooth, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 10 - }, +/turf/open/floor/kutjevo/multi_tiles/southwest, /area/kutjevo/interior/colony_South/power2) "dqK" = ( /obj/structure/flora/grass/desert/lightgrass_1, @@ -2536,14 +2347,10 @@ /turf/open/auto_turf/sand/layer1, /area/kutjevo/interior/oob/dev_room) "dsi" = ( -/turf/open/floor/coagulation{ - icon_state = "7,0" - }, +/turf/open/floor/coagulation/icon7_0, /area/kutjevo/exterior/scrubland) "dsp" = ( -/turf/open/desert/desert_shore/desert_shore1{ - dir = 1 - }, +/turf/open/desert/desert_shore/desert_shore1/north, /area/kutjevo/exterior/scrubland) "dsN" = ( /obj/structure/flora/grass/tallgrass/desert/corner{ @@ -2560,9 +2367,7 @@ /turf/open/floor/plating/kutjevo, /area/kutjevo/interior/construction) "dte" = ( -/turf/open/gm/river/desert/shallow_edge{ - dir = 8 - }, +/turf/open/gm/river/desert/shallow_edge/west, /area/kutjevo/exterior/runoff_river) "dtM" = ( /obj/structure/blocker/invisible_wall, @@ -2572,9 +2377,7 @@ /obj/structure/platform/kutjevo{ dir = 8 }, -/turf/open/gm/river/desert/deep{ - icon = 'icons/turf/floors/desert_water_toxic.dmi' - }, +/turf/open/gm/river/desert/deep/toxic, /area/kutjevo/interior/oob) "dtV" = ( /obj/structure/machinery/blackbox_recorder, @@ -2594,12 +2397,6 @@ /obj/effect/decal/cleanable/blood, /turf/open/floor/kutjevo/colors/orange, /area/kutjevo/interior/colony_South/power2) -"dux" = ( -/obj/structure/machinery/power/geothermal, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 1 - }, -/area/kutjevo/interior/power/comms) "duP" = ( /obj/structure/girder, /turf/open/floor/plating/kutjevo, @@ -2624,14 +2421,10 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 4 - }, +/turf/open/floor/kutjevo/multi_tiles/east, /area/kutjevo/interior/complex/med) "dwP" = ( -/turf/open/floor/kutjevo/colors/orange/edge{ - dir = 4 - }, +/turf/open/floor/kutjevo/colors/orange/edge/east, /area/kutjevo/interior/complex/Northwest_Security_Checkpoint) "dxc" = ( /obj/structure/machinery/light{ @@ -2644,18 +2437,14 @@ /area/kutjevo/interior/oob) "dxL" = ( /obj/structure/prop/dam/truck/cargo, -/turf/open/floor/kutjevo/tan/multi_tiles{ - dir = 1 - }, +/turf/open/floor/kutjevo/tan/multi_tiles/north, /area/kutjevo/interior/power/comms) "dyz" = ( /obj/structure/flora/bush/ausbushes/grassybush{ pixel_x = -6; pixel_y = 10 }, -/turf/open/gm/river/desert/shallow_edge{ - dir = 9 - }, +/turf/open/gm/river/desert/shallow_edge/northwest, /area/kutjevo/exterior/runoff_river) "dyB" = ( /obj/effect/landmark/objective_landmark/close, @@ -2665,15 +2454,11 @@ /obj/structure/platform_decoration/kutjevo{ dir = 1 }, -/turf/open/gm/river/desert/shallow_corner{ - dir = 4 - }, +/turf/open/gm/river/desert/shallow_corner/east, /area/kutjevo/exterior/lz_river) "dyW" = ( -/turf/open/desert/desert_shore/shore_edge1{ - dir = 8 - }, -/area/kutjevo/exterior/Northwest_Colony) +/turf/open/desert/desert_shore/shore_edge1/west, +/area/kutjevo/exterior/lz_pad) "dzd" = ( /obj/item/storage/briefcase, /turf/open/auto_turf/sand/layer0, @@ -2696,9 +2481,7 @@ /turf/open/floor/kutjevo/multi_tiles, /area/kutjevo/interior/power) "dzH" = ( -/turf/open/desert/desert_shore/desert_shore1{ - dir = 1 - }, +/turf/open/desert/desert_shore/desert_shore1/north, /area/kutjevo/exterior/lz_dunes) "dzN" = ( /obj/item/stack/rods, @@ -2706,26 +2489,23 @@ /area/kutjevo/exterior/complex_border/med_rec) "dAB" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 6 - }, +/turf/open/floor/kutjevo/multi_tiles/southeast, /area/kutjevo/interior/power) "dAH" = ( /turf/open/desert/desert_shore/shore_edge1, /area/kutjevo/exterior/runoff_bridge) "dAM" = ( -/turf/open/gm/river/desert/shallow_corner{ - dir = 8 - }, +/turf/open/gm/river/desert/shallow_corner/west, /area/kutjevo/exterior/runoff_river) +"dBj" = ( +/turf/open/floor/kutjevo/plate, +/area/kutjevo/exterior/lz_pad) "dBt" = ( /obj/structure/flora/bush/ausbushes/grassybush{ pixel_x = -8; pixel_y = 10 }, -/turf/open/gm/river/desert/shallow_edge{ - dir = 5 - }, +/turf/open/gm/river/desert/shallow_edge/northeast, /area/kutjevo/exterior/spring) "dBO" = ( /obj/structure/ladder, @@ -2760,9 +2540,7 @@ /turf/open/floor/kutjevo/colors/green, /area/kutjevo/exterior/runoff_bridge) "dDm" = ( -/turf/open/gm/river/desert/shallow_edge{ - dir = 4 - }, +/turf/open/gm/river/desert/shallow_edge/east, /area/kutjevo/exterior/runoff_dunes) "dDq" = ( /obj/item/stack/sheet/metal, @@ -2770,7 +2548,7 @@ /area/kutjevo/exterior/Northwest_Colony) "dDL" = ( /turf/open/gm/river/desert/shallow, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "dEI" = ( /obj/effect/decal/cleanable/blood/oil, /obj/structure/machinery/landinglight/ds1/delayone, @@ -2781,9 +2559,7 @@ /turf/open/auto_turf/sand/layer2, /area/kutjevo/exterior/Northwest_Colony) "dFk" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_7" - }, +/turf/open/mars_cave/mars_cave_7, /area/kutjevo/exterior/scrubland) "dFx" = ( /obj/item/stack/sheet/metal, @@ -2810,9 +2586,7 @@ dir = 4 }, /obj/structure/flora/bush/ausbushes/reedbush, -/turf/open/desert/desert_shore/shore_edge1{ - dir = 4 - }, +/turf/open/desert/desert_shore/shore_edge1/east, /area/kutjevo/exterior/runoff_river) "dHj" = ( /obj/structure/machinery/door_control/brbutton/alt{ @@ -2841,9 +2615,7 @@ /area/kutjevo/interior/power) "dIc" = ( /obj/structure/flora/bush/ausbushes/grassybush, -/turf/open/gm/river/desert/shallow_edge{ - dir = 10 - }, +/turf/open/gm/river/desert/shallow_edge/southwest, /area/kutjevo/exterior/runoff_river) "dIo" = ( /obj/structure/machinery/landinglight/ds1/delaytwo{ @@ -2875,17 +2647,13 @@ /turf/open/floor/kutjevo/tan, /area/kutjevo/interior/complex/Northwest_Security_Checkpoint) "dKu" = ( -/turf/open/desert/desert_shore/shore_edge1{ - dir = 1 - }, +/turf/open/desert/desert_shore/shore_edge1/north, /area/kutjevo/exterior/runoff_river) "dKz" = ( /obj/structure/platform/kutjevo{ dir = 8 }, -/turf/open/floor/coagulation{ - icon_state = "0,5" - }, +/turf/open/floor/coagulation/icon0_5, /area/kutjevo/interior/colony_north) "dKO" = ( /obj/structure/bed/chair{ @@ -2904,14 +2672,10 @@ /turf/open/floor/kutjevo/colors/cyan, /area/kutjevo/interior/complex/med/cells) "dLZ" = ( -/turf/open/floor/coagulation{ - icon_state = "0,5" - }, +/turf/open/floor/coagulation/icon0_5, /area/kutjevo/interior/power/comms) "dNc" = ( -/turf/open/desert/desert_shore/shore_corner2{ - dir = 8 - }, +/turf/open/desert/desert_shore/shore_corner2/west, /area/kutjevo/exterior/runoff_river) "dNg" = ( /obj/structure/flora/grass/tallgrass/desert/corner{ @@ -2925,9 +2689,7 @@ /turf/open/auto_turf/sand/layer0, /area/kutjevo/interior/colony_north) "dOj" = ( -/turf/open/gm/river/desert/shallow_corner{ - dir = 1 - }, +/turf/open/gm/river/desert/shallow_corner/north, /area/kutjevo/exterior/spring) "dOJ" = ( /obj/structure/barricade/deployable, @@ -2938,7 +2700,7 @@ pixel_y = 14 }, /turf/open/desert/desert_shore/desert_shore1, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "dQq" = ( /obj/structure/flora/grass/tallgrass/desert/corner{ dir = 5 @@ -2946,9 +2708,7 @@ /turf/open/auto_turf/sand/layer1, /area/kutjevo/exterior/scrubland) "dQs" = ( -/turf/open/floor/kutjevo/multi_tiles{ - dir = 4 - }, +/turf/open/floor/kutjevo/multi_tiles/east, /area/kutjevo/interior/complex/med/locks) "dQv" = ( /obj/structure/girder, @@ -2966,9 +2726,7 @@ /turf/open/floor/kutjevo/tan/multi_tiles, /area/kutjevo/interior/power) "dRj" = ( -/turf/open/floor/kutjevo/multi_tiles{ - dir = 4 - }, +/turf/open/floor/kutjevo/multi_tiles/east, /area/kutjevo/exterior/runoff_bridge) "dRX" = ( /obj/structure/window/framed/kutjevo/reinforced, @@ -2992,19 +2750,13 @@ /area/kutjevo/interior/complex/Northwest_Flight_Control) "dTn" = ( /obj/structure/barricade/wooden, -/turf/open/floor/kutjevo/tan/multi_tiles{ - dir = 1 - }, +/turf/open/floor/kutjevo/tan/multi_tiles/north, /area/kutjevo/exterior/Northwest_Colony) "dTp" = ( -/turf/open/gm/river/desert/shallow_edge{ - dir = 5 - }, +/turf/open/gm/river/desert/shallow_edge/northeast, /area/kutjevo/exterior/lz_river) "dTJ" = ( -/turf/open/desert/desert_shore/desert_shore1{ - dir = 4 - }, +/turf/open/desert/desert_shore/desert_shore1/east, /area/kutjevo/exterior/runoff_river) "dTL" = ( /obj/structure/bed/chair{ @@ -3025,9 +2777,7 @@ /area/kutjevo/exterior/spring) "dUy" = ( /obj/structure/platform/kutjevo/smooth, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 4 - }, +/turf/open/floor/kutjevo/multi_tiles/east, /area/kutjevo/interior/colony_South/power2) "dUE" = ( /obj/structure/flora/grass/desert/lightgrass_10, @@ -3117,9 +2867,7 @@ /turf/open/auto_turf/sand/layer1, /area/kutjevo/interior/colony_South) "ebv" = ( -/turf/open/desert/desert_shore/shore_corner2{ - dir = 8 - }, +/turf/open/desert/desert_shore/shore_corner2/west, /area/kutjevo/exterior/spring) "ebB" = ( /turf/open/auto_turf/sand/layer1, @@ -3132,9 +2880,7 @@ dir = 4 }, /obj/structure/blocker/invisible_wall, -/turf/open/gm/river/desert/shallow_edge{ - dir = 1 - }, +/turf/open/gm/river/desert/shallow_edge/north, /area/kutjevo/interior/oob) "ebZ" = ( /obj/structure/platform_decoration/kutjevo/rock{ @@ -3153,12 +2899,9 @@ /turf/open/floor/kutjevo/colors/cyan, /area/kutjevo/interior/complex/med/auto_doc) "ecO" = ( -/obj/structure/blocker/invisible_wall, /obj/structure/machinery/light, -/turf/open/gm/river/desert/deep{ - icon = 'icons/turf/floors/desert_water_toxic.dmi' - }, -/area/kutjevo/interior/oob) +/turf/open/gm/river/desert/deep/toxic, +/area/kutjevo/exterior/construction) "ecV" = ( /obj/structure/flora/grass/tallgrass/desert/corner{ dir = 9 @@ -3170,9 +2913,7 @@ /turf/open/floor/plating/kutjevo, /area/kutjevo/interior/foremans_office) "eem" = ( -/turf/open/desert/desert_shore/shore_edge1{ - dir = 1 - }, +/turf/open/desert/desert_shore/shore_edge1/north, /area/kutjevo/exterior/runoff_bridge) "eeP" = ( /obj/structure/platform/kutjevo/smooth{ @@ -3182,17 +2923,13 @@ /area/kutjevo/interior/complex/botany) "efr" = ( /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/kutjevo/tan/multi_tiles{ - dir = 6 - }, +/turf/open/floor/kutjevo/tan/multi_tiles/southeast, /area/kutjevo/interior/colony_South/power2) "efF" = ( /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/kutjevo/colors/purple/edge{ - dir = 1 - }, +/turf/open/floor/kutjevo/colors/purple/edge/north, /area/kutjevo/interior/construction) "efS" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, @@ -3209,9 +2946,7 @@ /obj/structure/bed/chair/office/dark{ dir = 8 }, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 4 - }, +/turf/open/floor/kutjevo/multi_tiles/east, /area/kutjevo/interior/colony_South/power2) "egu" = ( /obj/structure/platform/kutjevo/smooth{ @@ -3220,9 +2955,7 @@ /obj/structure/machinery/optable, /obj/effect/decal/cleanable/blood, /obj/effect/landmark/corpsespawner/colonist/kutjevo/burst, -/turf/open/floor/kutjevo/colors/cyan/edge{ - dir = 8 - }, +/turf/open/floor/kutjevo/colors/cyan/edge/west, /area/kutjevo/interior/complex/med/operating) "egx" = ( /obj/structure/platform_decoration/kutjevo{ @@ -3253,9 +2986,7 @@ /obj/item/bedsheet/brown{ pixel_y = 13 }, -/turf/open/floor/kutjevo/tan/grey_edge{ - dir = 8 - }, +/turf/open/floor/kutjevo/tan/grey_edge/west, /area/kutjevo/interior/complex/Northwest_Dorms) "egZ" = ( /turf/open/auto_turf/sand/layer1, @@ -3280,7 +3011,7 @@ dir = 8 }, /turf/open/auto_turf/sand/layer0, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "ejP" = ( /obj/structure/bed/sofa/south/grey/left, /turf/open/floor/kutjevo/multi_tiles, @@ -3300,9 +3031,7 @@ dir = 8; network = null }, -/turf/open/floor/kutjevo/tan/alt_inner_edge{ - dir = 1 - }, +/turf/open/floor/kutjevo/tan/alt_inner_edge/north, /area/kutjevo/interior/complex/Northwest_Flight_Control) "ekJ" = ( /obj/structure/bed/chair{ @@ -3310,14 +3039,17 @@ }, /turf/open/floor/kutjevo/tan, /area/kutjevo/interior/complex/botany) +"ekV" = ( +/obj/structure/surface/rack, +/obj/effect/landmark/objective_landmark/medium, +/turf/open/floor/kutjevo/multi_tiles/southwest, +/area/kutjevo/interior/colony_South/power2) "ele" = ( /obj/effect/decal/cleanable/blood/oil, /turf/open/floor/kutjevo/tan/multi_tiles, /area/kutjevo/interior/complex/botany) "elo" = ( -/turf/open/floor/coagulation{ - icon_state = "8,3" - }, +/turf/open/floor/coagulation/icon8_3, /area/kutjevo/exterior/scrubland) "emi" = ( /obj/structure/stairs/perspective/kutjevo{ @@ -3338,9 +3070,7 @@ /obj/structure/platform/kutjevo/smooth{ dir = 8 }, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 6 - }, +/turf/open/floor/kutjevo/multi_tiles/southeast, /area/kutjevo/interior/colony_South/power2) "enK" = ( /obj/structure/window{ @@ -3374,9 +3104,7 @@ /obj/structure/barricade/handrail/kutjevo{ layer = 3.05 }, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 4 - }, +/turf/open/floor/kutjevo/multi_tiles/east, /area/kutjevo/interior/colony_South/power2) "epd" = ( /obj/item/reagent_container/food/drinks/cans/thirteenloko, @@ -3389,9 +3117,7 @@ /turf/open/floor/plating/kutjevo, /area/kutjevo/interior/construction) "epG" = ( -/turf/open/gm/dirtgrassborder2{ - icon_state = "wall2" - }, +/turf/open/gm/dirtgrassborder2/wall2, /area/kutjevo/exterior/complex_border/med_park) "epQ" = ( /obj/effect/landmark/monkey_spawn, @@ -3401,14 +3127,11 @@ /turf/open/floor/kutjevo/colors/orange/edge, /area/kutjevo/interior/power_pt2_electric_boogaloo) "epV" = ( -/obj/structure/blocker/invisible_wall, /obj/structure/machinery/light{ dir = 4 }, -/turf/open/gm/river/desert/deep{ - icon = 'icons/turf/floors/desert_water_toxic.dmi' - }, -/area/kutjevo/interior/oob) +/turf/open/gm/river/desert/deep/toxic, +/area/kutjevo/exterior/construction) "eqJ" = ( /obj/structure/flora/grass/desert/lightgrass_2, /turf/open/auto_turf/sand/layer1, @@ -3417,7 +3140,7 @@ /obj/structure/surface/rack, /obj/item/tool/crowbar/red, /turf/open/auto_turf/sand/layer1, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "era" = ( /obj/structure/closet/crate/freezer/rations, /obj/item/defenses/handheld/tesla_coil, @@ -3469,9 +3192,7 @@ pixel_x = 5; pixel_y = -12 }, -/turf/open/desert/desert_shore/desert_shore1{ - dir = 1 - }, +/turf/open/desert/desert_shore/desert_shore1/north, /area/kutjevo/exterior/runoff_river) "eud" = ( /obj/effect/landmark/xeno_spawn, @@ -3486,15 +3207,11 @@ pixel_y = 13 }, /obj/item/prop/helmetgarb/spent_buckshot, -/turf/open/floor/kutjevo/colors/orange/edge{ - dir = 1 - }, +/turf/open/floor/kutjevo/colors/orange/edge/north, /area/kutjevo/interior/complex/Northwest_Security_Checkpoint) "euI" = ( /obj/item/clipboard, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 10 - }, +/turf/open/floor/kutjevo/multi_tiles/southwest, /area/kutjevo/interior/colony_South/power2) "evr" = ( /turf/open/floor/kutjevo/colors, @@ -3531,9 +3248,7 @@ pixel_x = 5; pixel_y = 12 }, -/turf/open/desert/desert_shore/shore_edge1{ - dir = 8 - }, +/turf/open/desert/desert_shore/shore_edge1/west, /area/kutjevo/exterior/runoff_bridge) "exD" = ( /obj/structure/blocker/forcefield/multitile_vehicles, @@ -3565,9 +3280,7 @@ /turf/open/floor/kutjevo/tan, /area/kutjevo/interior/colony_north) "eyU" = ( -/turf/open/gm/river/desert/shallow_corner{ - dir = 1 - }, +/turf/open/gm/river/desert/shallow_corner/north, /area/kutjevo/exterior/lz_river) "ezg" = ( /obj/structure/surface/table/almayer, @@ -3577,9 +3290,7 @@ /obj/structure/largecrate/random/case/small{ pixel_y = 7 }, -/turf/open/floor/kutjevo/colors/purple/inner_corner{ - dir = 4 - }, +/turf/open/floor/kutjevo/colors/purple/inner_corner/east, /area/kutjevo/interior/construction) "ezm" = ( /obj/structure/largecrate/random/case/double, @@ -3628,12 +3339,12 @@ /area/kutjevo/interior/construction) "eCE" = ( /obj/item/clipboard{ - pixel_y = 4; - pixel_x = -4 + pixel_x = -4; + pixel_y = 4 }, /obj/item/tool/pen{ - name = "stained pen"; desc = "It's a seemingly normal pen... aside from the faint red fingerprints on the side..."; + name = "stained pen"; pixel_x = 2; pixel_y = 10 }, @@ -3646,9 +3357,7 @@ /area/kutjevo/interior/complex/med/cells) "eDQ" = ( /obj/structure/blocker/invisible_wall, -/turf/open/desert/desert_shore/shore_edge1{ - dir = 4 - }, +/turf/open/desert/desert_shore/shore_edge1/east, /area/kutjevo/interior/oob/dev_room) "eDS" = ( /obj/structure/prop/dam/boulder/boulder3, @@ -3666,10 +3375,8 @@ /turf/open/floor/kutjevo/colors/orange, /area/kutjevo/interior/colony_South/power2) "eFy" = ( -/turf/open/desert/desert_shore/desert_shore1{ - dir = 1 - }, -/area/kutjevo/exterior/Northwest_Colony) +/turf/open/desert/desert_shore/desert_shore1/north, +/area/kutjevo/exterior/lz_pad) "eFX" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, @@ -3692,7 +3399,7 @@ "eGL" = ( /obj/effect/landmark/objective_landmark/close, /turf/open/auto_turf/sand/layer1, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "eHX" = ( /turf/open/auto_turf/sand/layer0, /area/kutjevo/exterior/telecomm/lz1_south) @@ -3701,9 +3408,7 @@ /turf/open/auto_turf/sand/layer1, /area/kutjevo/exterior/spring) "eIL" = ( -/turf/open/floor/kutjevo/colors/cyan/edge{ - dir = 4 - }, +/turf/open/floor/kutjevo/colors/cyan/edge/east, /area/kutjevo/interior/complex/med/auto_doc) "eIZ" = ( /obj/item/stack/rods, @@ -3713,15 +3418,11 @@ /obj/structure/platform/kutjevo/smooth{ dir = 4 }, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 6 - }, +/turf/open/floor/kutjevo/multi_tiles/southeast, /area/kutjevo/interior/complex/botany) "eJi" = ( /obj/structure/blocker/invisible_wall, -/turf/open/gm/river/desert/deep{ - icon = 'icons/turf/floors/desert_water_toxic.dmi' - }, +/turf/open/gm/river/desert/deep/toxic, /area/kutjevo/interior/power) "eJo" = ( /obj/effect/landmark/corpsespawner/security/marshal, @@ -3729,9 +3430,7 @@ /area/kutjevo/interior/colony_South/power2) "eKr" = ( /obj/structure/blocker/invisible_wall, -/turf/open/gm/river{ - color = "#995555" - }, +/turf/open/gm/river/red, /area/kutjevo/interior/oob) "eLO" = ( /obj/structure/flora/grass/tallgrass/desert/corner{ @@ -3774,22 +3473,16 @@ /obj/structure/platform/kutjevo/smooth{ dir = 4 }, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 6 - }, +/turf/open/floor/kutjevo/multi_tiles/southeast, /area/kutjevo/interior/power) "eOc" = ( -/turf/open/floor/kutjevo/colors/orange/edge{ - dir = 9 - }, +/turf/open/floor/kutjevo/colors/orange/edge/northwest, /area/kutjevo/interior/power_pt2_electric_boogaloo) "eOt" = ( /obj/structure/platform_decoration/kutjevo{ dir = 8 }, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 10 - }, +/turf/open/floor/kutjevo/multi_tiles/southwest, /area/kutjevo/interior/colony_South/power2) "eOy" = ( /obj/effect/landmark/monkey_spawn, @@ -3825,9 +3518,7 @@ dir = 4 }, /obj/structure/platform/kutjevo, -/turf/open/floor/coagulation{ - icon_state = "8,0" - }, +/turf/open/floor/coagulation/icon8_0, /area/kutjevo/interior/colony_north) "ePx" = ( /turf/open/auto_turf/sand/layer0, @@ -3847,14 +3538,10 @@ /area/kutjevo/interior/power) "eQK" = ( /obj/structure/blocker/invisible_wall, -/turf/open/desert/desert_shore/desert_shore1{ - dir = 8 - }, +/turf/open/desert/desert_shore/desert_shore1/west, /area/kutjevo/interior/oob/dev_room) "eQQ" = ( -/obj/structure/machinery/colony_floodlight{ - pixel_y = 10 - }, +/obj/structure/machinery/colony_floodlight, /turf/open/floor/kutjevo/colors/purple, /area/kutjevo/interior/construction) "eQW" = ( @@ -3887,9 +3574,7 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 8 - }, +/turf/open/floor/kutjevo/multi_tiles/west, /area/kutjevo/interior/complex/med/locks) "eSH" = ( /turf/open/floor/kutjevo/colors/orange/inner_corner, @@ -3907,9 +3592,7 @@ /area/kutjevo/exterior/runoff_river) "eTy" = ( /obj/item/weapon/gun/rifle/mar40, -/turf/open/floor/kutjevo/tan/multi_tiles{ - dir = 1 - }, +/turf/open/floor/kutjevo/tan/multi_tiles/north, /area/kutjevo/interior/power/comms) "eTP" = ( /obj/structure/machinery/light/small{ @@ -3923,22 +3606,18 @@ /turf/open/floor/plating/kutjevo, /area/kutjevo/interior/construction) "eUA" = ( -/turf/open/floor/kutjevo/tan/grey_edge{ - dir = 1 - }, +/turf/open/floor/kutjevo/tan/grey_edge/north, /area/kutjevo/interior/construction) "eUJ" = ( /obj/structure/closet/crate, /obj/effect/landmark/objective_landmark/medium, /turf/open/floor/kutjevo/colors/orange, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "eVv" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/kutjevo/colors/orange/edge{ - dir = 1 - }, +/turf/open/floor/kutjevo/colors/orange/edge/north, /area/kutjevo/interior/power_pt2_electric_boogaloo) "eVy" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, @@ -3951,9 +3630,7 @@ layer = 3.1 }, /obj/item/clipboard, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 4 - }, +/turf/open/floor/kutjevo/multi_tiles/east, /area/kutjevo/interior/colony_South/power2) "eVR" = ( /turf/open/gm/river/desert/deep, @@ -4003,9 +3680,7 @@ /turf/open/floor/kutjevo/tiles, /area/kutjevo/exterior/Northwest_Colony) "fbK" = ( -/turf/open/floor/kutjevo/tan/alt_edge{ - dir = 8 - }, +/turf/open/floor/kutjevo/tan/alt_edge/west, /area/kutjevo/interior/colony_central) "fbZ" = ( /turf/open/floor/kutjevo/tan, @@ -4029,18 +3704,14 @@ /obj/structure/platform/kutjevo/smooth{ dir = 4 }, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 10 - }, +/turf/open/floor/kutjevo/multi_tiles/southwest, /area/kutjevo/interior/colony_South/power2) "fdF" = ( /obj/structure/platform_decoration/kutjevo{ dir = 8 }, /obj/structure/blocker/invisible_wall, -/turf/open/gm/river/desert/deep{ - icon = 'icons/turf/floors/desert_water_toxic.dmi' - }, +/turf/open/gm/river/desert/deep/toxic, /area/kutjevo/interior/power) "fdH" = ( /obj/effect/decal/cleanable/blood/splatter, @@ -4065,9 +3736,7 @@ "feQ" = ( /obj/structure/closet, /obj/item/clothing/under/kutjevo/drysuit, -/turf/open/floor/kutjevo/tan/grey_edge{ - dir = 1 - }, +/turf/open/floor/kutjevo/tan/grey_edge/north, /area/kutjevo/interior/complex/Northwest_Dorms) "feR" = ( /obj/structure/surface/rack, @@ -4098,9 +3767,7 @@ /obj/structure/surface/table/almayer, /obj/item/device/defibrillator, /obj/structure/machinery/light, -/turf/open/floor/kutjevo/colors/cyan/inner_corner{ - dir = 4 - }, +/turf/open/floor/kutjevo/colors/cyan/inner_corner/east, /area/kutjevo/interior/complex/med/auto_doc) "ffP" = ( /obj/structure/machinery/landinglight/ds1/delaythree{ @@ -4130,9 +3797,7 @@ /area/kutjevo/interior/complex/botany/east) "fiq" = ( /obj/structure/flora/bush/ausbushes/reedbush, -/turf/open/desert/desert_shore/desert_shore1{ - dir = 1 - }, +/turf/open/desert/desert_shore/desert_shore1/north, /area/kutjevo/exterior/runoff_river) "fiE" = ( /obj/item/stack/sheet/wood, @@ -4184,16 +3849,12 @@ /area/kutjevo/interior/colony_South) "flp" = ( /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/kutjevo/tan/multi_tiles{ - dir = 1 - }, +/turf/open/floor/kutjevo/tan/multi_tiles/north, /area/kutjevo/exterior/runoff_bridge) "flP" = ( /obj/structure/blocker/invisible_wall, /obj/structure/blocker/invisible_wall, -/turf/open/gm/river{ - color = "#995555" - }, +/turf/open/gm/river/red, /area/kutjevo/interior/oob) "flW" = ( /obj/effect/landmark/yautja_teleport, @@ -4209,13 +3870,11 @@ /area/kutjevo/exterior/stonyfields) "fmN" = ( /turf/open/floor/kutjevo/colors/orange, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "fmR" = ( /obj/structure/surface/table/almayer, /obj/item/reagent_container/food/drinks/bottle/vodka, -/turf/open/floor/kutjevo/colors/purple/inner_corner{ - dir = 4 - }, +/turf/open/floor/kutjevo/colors/purple/inner_corner/east, /area/kutjevo/interior/construction) "fne" = ( /obj/item/trash/barcardine, @@ -4228,9 +3887,7 @@ }, /obj/item/clipboard, /obj/item/device/flashlight/lamp, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 4 - }, +/turf/open/floor/kutjevo/multi_tiles/east, /area/kutjevo/interior/colony_South/power2) "foI" = ( /obj/structure/barricade/wooden{ @@ -4241,18 +3898,14 @@ dir = 4 }, /obj/effect/landmark/corpsespawner/wygoon, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 4 - }, +/turf/open/floor/kutjevo/multi_tiles/east, /area/kutjevo/interior/complex/botany) "fpj" = ( /obj/item/trash/hotdog, /turf/open/auto_turf/sand/layer2, /area/kutjevo/interior/construction) "fpJ" = ( -/turf/open/floor/kutjevo/multi_tiles{ - dir = 8 - }, +/turf/open/floor/kutjevo/multi_tiles/west, /area/kutjevo/interior/complex/med/locks) "fpM" = ( /obj/structure/platform_decoration/kutjevo{ @@ -4293,7 +3946,7 @@ /area/kutjevo/interior/complex/med/cells) "frx" = ( /obj/structure/extinguisher_cabinet, -/turf/closed/wall/kutjevo/colony/reinforced/hull, +/turf/closed/wall/kutjevo/colony/reinforced, /area/kutjevo/interior/power_pt2_electric_boogaloo) "frF" = ( /obj/structure/flora/grass/tallgrass/desert/corner{ @@ -4321,9 +3974,7 @@ /turf/open/floor/plating/kutjevo, /area/kutjevo/interior/power) "fui" = ( -/turf/open/desert/desert_shore/shore_edge1{ - dir = 1 - }, +/turf/open/desert/desert_shore/shore_edge1/north, /area/kutjevo/exterior/scrubland) "fuz" = ( /turf/open/auto_turf/sand/layer1, @@ -4333,9 +3984,7 @@ /turf/open/auto_turf/sand/layer1, /area/kutjevo/interior/colony_north) "fwF" = ( -/turf/open/floor/kutjevo/tan/alt_edge{ - dir = 1 - }, +/turf/open/floor/kutjevo/tan/alt_edge/north, /area/kutjevo/interior/colony_central) "fxL" = ( /obj/structure/flora/grass/tallgrass/desert/corner{ @@ -4346,9 +3995,7 @@ /area/kutjevo/interior/oob/dev_room) "fyB" = ( /obj/structure/barricade/wooden, -/turf/open/floor/kutjevo/tan/multi_tiles{ - dir = 1 - }, +/turf/open/floor/kutjevo/tan/multi_tiles/north, /area/kutjevo/interior/power/comms) "fyD" = ( /turf/open/floor/kutjevo/tan/multi_tiles, @@ -4362,9 +4009,7 @@ "fyZ" = ( /obj/structure/closet, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/kutjevo/tan/grey_edge{ - dir = 1 - }, +/turf/open/floor/kutjevo/tan/grey_edge/north, /area/kutjevo/interior/complex/Northwest_Dorms) "fAE" = ( /obj/effect/landmark/hunter_secondary, @@ -4372,9 +4017,7 @@ /area/kutjevo/exterior/complex_border/botany_medical_cave) "fAF" = ( /obj/structure/blocker/invisible_wall, -/turf/open/gm/river/desert/shallow_edge{ - dir = 1 - }, +/turf/open/gm/river/desert/shallow_edge/north, /area/kutjevo/interior/oob) "fAT" = ( /obj/item/device/flashlight/lamp/tripod/grey, @@ -4391,16 +4034,12 @@ /obj/structure/platform/kutjevo/smooth{ dir = 1 }, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 4 - }, +/turf/open/floor/kutjevo/multi_tiles/east, /area/kutjevo/interior/colony_South/power2) "fEu" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/cameras, -/turf/open/floor/kutjevo/tan/alt_edge{ - dir = 1 - }, +/turf/open/floor/kutjevo/tan/alt_edge/north, /area/kutjevo/interior/complex/Northwest_Flight_Control) "fEz" = ( /obj/structure/surface/table/almayer, @@ -4428,9 +4067,7 @@ /obj/item/book/manual/nuclear, /obj/structure/machinery/light, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 8 - }, +/turf/open/floor/kutjevo/multi_tiles/west, /area/kutjevo/interior/colony_South/power2) "fGk" = ( /obj/item/clipboard, @@ -4468,9 +4105,7 @@ "fKD" = ( /obj/item/stack/sheet/wood, /obj/effect/decal/cleanable/blood/gibs/xeno, -/turf/open/floor/kutjevo/tan/alt_edge{ - dir = 1 - }, +/turf/open/floor/kutjevo/tan/alt_edge/north, /area/kutjevo/interior/complex/Northwest_Flight_Control) "fKJ" = ( /obj/structure/reagent_dispensers/water_cooler{ @@ -4484,10 +4119,7 @@ }, /obj/structure/machinery/light, /obj/structure/platform/kutjevo/smooth, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/kutjevo/interior/complex/med/operating) "fKL" = ( /obj/structure/surface/table/almayer, @@ -4512,12 +4144,6 @@ /obj/effect/landmark/corpsespawner/security/marshal, /turf/open/floor/kutjevo/tan, /area/kutjevo/interior/construction) -"fMi" = ( -/obj/structure/stairs/perspective/kutjevo{ - icon_state = "p_stair_full" - }, -/turf/open/floor/plating/kutjevo, -/area/kutjevo/interior/colony_South/power2) "fMB" = ( /obj/structure/flora/grass/tallgrass/desert/corner{ dir = 5 @@ -4528,13 +4154,11 @@ /obj/structure/platform/kutjevo{ dir = 4 }, -/turf/open/desert/desert_shore/desert_shore1{ - dir = 1 - }, +/turf/open/desert/desert_shore/desert_shore1/north, /area/kutjevo/exterior/runoff_river) "fNe" = ( /obj/effect/landmark/nightmare{ - insert_tag = "cleaningprog" + insert_tag = "cleaningprog_botany" }, /turf/open/floor/kutjevo/tan, /area/kutjevo/interior/complex/botany) @@ -4561,14 +4185,10 @@ /obj/structure/platform/kutjevo{ dir = 8 }, -/turf/open/desert/desert_shore/desert_shore1{ - dir = 1 - }, +/turf/open/desert/desert_shore/desert_shore1/north, /area/kutjevo/exterior/runoff_river) "fQg" = ( -/turf/open/gm/dirtgrassborder2{ - dir = 8 - }, +/turf/open/gm/dirtgrassborder2/west, /area/kutjevo/exterior/complex_border/med_park) "fQn" = ( /obj/structure/girder, @@ -4595,9 +4215,7 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 8 - }, +/turf/open/floor/kutjevo/multi_tiles/west, /area/kutjevo/interior/power/comms) "fQJ" = ( /obj/structure/flora/grass/tallgrass/desert/corner{ @@ -4624,9 +4242,7 @@ dir = 4 }, /obj/structure/blocker/invisible_wall, -/turf/open/gm/river/desert/deep{ - icon = 'icons/turf/floors/desert_water_toxic.dmi' - }, +/turf/open/gm/river/desert/deep/toxic, /area/kutjevo/interior/oob) "fSm" = ( /obj/structure/sink{ @@ -4636,19 +4252,15 @@ /obj/structure/surface/table/almayer, /obj/item/reagent_container/spray/cleaner, /obj/item/roller, -/turf/open/floor/kutjevo/colors/cyan/edge{ - dir = 4 - }, +/turf/open/floor/kutjevo/colors/cyan/edge/east, /area/kutjevo/interior/complex/med/operating) "fSK" = ( /obj/structure/surface/table/gamblingtable, /obj/item/toy/handcard/aceofspades, /turf/open/auto_turf/sand/layer1, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "fTk" = ( -/turf/open/floor/kutjevo/multi_tiles{ - dir = 4 - }, +/turf/open/floor/kutjevo/multi_tiles/east, /area/kutjevo/interior/colony_South/power2) "fTR" = ( /obj/structure/closet/secure_closet/hydroponics, @@ -4672,22 +4284,12 @@ "fVm" = ( /obj/structure/surface/table/almayer, /obj/item/newspaper, -/turf/open/floor/kutjevo/tan/alt_inner_edge{ - dir = 1 - }, +/turf/open/floor/kutjevo/tan/alt_inner_edge/north, /area/kutjevo/interior/complex/Northwest_Flight_Control) "fVv" = ( /obj/structure/largecrate/random/secure, /turf/open/auto_turf/sand/layer0, /area/kutjevo/exterior/construction) -"fVA" = ( -/obj/structure/barricade/handrail/kutjevo{ - layer = 3.1 - }, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 8 - }, -/area/kutjevo/interior/colony_South/power2) "fWl" = ( /obj/effect/decal/cleanable/blood/oil, /turf/open/floor/kutjevo/grey/plate, @@ -4713,28 +4315,22 @@ "fYE" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/shuttle/dropship/flight/lz2, -/turf/open/floor/kutjevo/tan/alt_edge{ - dir = 5 - }, +/turf/open/floor/kutjevo/tan/alt_edge/northeast, /area/kutjevo/exterior/lz_pad) "fYF" = ( /obj/structure/bed/chair/comfy{ dir = 4 }, /turf/open/auto_turf/sand/layer1, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "fYI" = ( -/turf/open/gm/river/desert/shallow_corner{ - dir = 4 - }, +/turf/open/gm/river/desert/shallow_corner/east, /area/kutjevo/exterior/runoff_river) "fZT" = ( /obj/structure/platform/kutjevo/smooth{ dir = 4 }, -/turf/open/gm/river/desert/shallow_edge{ - dir = 6 - }, +/turf/open/gm/river/desert/shallow_edge/southeast, /area/kutjevo/exterior/runoff_bridge) "gbv" = ( /turf/closed/wall/kutjevo/rock/border, @@ -4743,9 +4339,7 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/kutjevo/tan/alt_edge{ - dir = 4 - }, +/turf/open/floor/kutjevo/tan/alt_edge/east, /area/kutjevo/interior/complex/Northwest_Flight_Control) "gce" = ( /obj/item/device/radio, @@ -4774,9 +4368,7 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 10 - }, +/turf/open/floor/kutjevo/multi_tiles/southwest, /area/kutjevo/interior/colony_South/power2) "gdX" = ( /obj/structure/surface/table/almayer, @@ -4799,18 +4391,14 @@ dir = 1 }, /obj/structure/blocker/invisible_wall, -/turf/open/desert/desert_shore/shore_edge1{ - dir = 1 - }, +/turf/open/desert/desert_shore/shore_edge1/north, /area/kutjevo/interior/oob/dev_room) "ggC" = ( /obj/structure/fence, /turf/open/floor/almayer/research/containment/floor2, /area/kutjevo/exterior/Northwest_Colony) "ghj" = ( -/turf/open/floor/kutjevo/colors/orange/inner_corner{ - dir = 8 - }, +/turf/open/floor/kutjevo/colors/orange/inner_corner/west, /area/kutjevo/interior/power_pt2_electric_boogaloo) "ghk" = ( /obj/structure/bed/sofa/vert/white, @@ -4828,9 +4416,7 @@ pixel_y = 6 }, /obj/structure/machinery/light, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 8 - }, +/turf/open/floor/kutjevo/multi_tiles/west, /area/kutjevo/interior/power/comms) "giY" = ( /obj/item/device/flashlight/lamp/tripod/grey, @@ -4855,15 +4441,13 @@ /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/kutjevo/colors/cyan/edge{ - dir = 1 - }, +/turf/open/floor/kutjevo/colors/cyan/edge/north, /area/kutjevo/interior/complex/med/operating) "gld" = ( /turf/open/auto_turf/sand/layer0, /area/kutjevo/exterior/complex_border/med_rec) "glB" = ( -/turf/closed/wall/kutjevo/colony/reinforced/hull, +/turf/closed/wall/kutjevo/colony, /area/kutjevo/interior/complex/med/cells) "gma" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, @@ -4874,7 +4458,7 @@ "gmA" = ( /obj/item/stack/sheet/wood, /turf/open/floor/kutjevo/tan, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "gmS" = ( /obj/structure/machinery/shower{ dir = 1; @@ -4898,14 +4482,10 @@ /turf/open/floor/kutjevo/multi_tiles, /area/kutjevo/exterior/runoff_dunes) "goa" = ( -/turf/open/floor/coagulation{ - icon_state = "0,0" - }, +/turf/open/floor/coagulation/icon0_0, /area/kutjevo/exterior/scrubland) "goh" = ( -/turf/open/gm/river/desert/shallow_edge{ - dir = 10 - }, +/turf/open/gm/river/desert/shallow_edge/southwest, /area/kutjevo/exterior/runoff_dunes) "gok" = ( /obj/structure/flora/bush/desert{ @@ -4926,9 +4506,7 @@ "gpm" = ( /obj/structure/bed/roller, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/kutjevo/colors/cyan/edge{ - dir = 1 - }, +/turf/open/floor/kutjevo/colors/cyan/edge/north, /area/kutjevo/interior/complex/med/triage) "gqQ" = ( /obj/item/weapon/gun/rifle/m16, @@ -4950,9 +4528,7 @@ icon_state = "tree_2"; pixel_y = 14 }, -/turf/open/desert/desert_shore/desert_shore1{ - dir = 1 - }, +/turf/open/desert/desert_shore/desert_shore1/north, /area/kutjevo/exterior/spring) "gsq" = ( /obj/structure/filingcabinet, @@ -4964,9 +4540,7 @@ dir = 4 }, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/kutjevo/colors/cyan/inner_corner{ - dir = 1 - }, +/turf/open/floor/kutjevo/colors/cyan/inner_corner/north, /area/kutjevo/interior/complex/med) "gtr" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, @@ -4976,10 +4550,7 @@ "gtE" = ( /obj/structure/blocker/invisible_wall, /obj/structure/platform/kutjevo, -/turf/open/gm/river{ - color = "#995555"; - name = "pool" - }, +/turf/open/gm/river/red_pool, /area/kutjevo/interior/power) "gtL" = ( /obj/structure/platform/kutjevo/smooth{ @@ -4989,9 +4560,7 @@ dir = 8 }, /obj/structure/blocker/invisible_wall, -/turf/open/gm/river/desert/deep{ - icon = 'icons/turf/floors/desert_water_toxic.dmi' - }, +/turf/open/gm/river/desert/deep/toxic, /area/kutjevo/interior/oob) "gvO" = ( /obj/structure/flora/grass/tallgrass/desert/corner{ @@ -5005,17 +4574,13 @@ }, /obj/structure/closet, /obj/item/clothing/under/kutjevo, -/turf/open/floor/kutjevo/tan/grey_edge{ - dir = 1 - }, +/turf/open/floor/kutjevo/tan/grey_edge/north, /area/kutjevo/interior/complex/Northwest_Dorms) "gwv" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/kutjevo/tan/alt_edge{ - dir = 8 - }, +/turf/open/floor/kutjevo/tan/alt_edge/west, /area/kutjevo/interior/complex/Northwest_Flight_Control) "gwC" = ( /obj/structure/platform/kutjevo{ @@ -5023,17 +4588,13 @@ }, /obj/structure/blocker/invisible_wall, /obj/structure/platform/kutjevo, -/turf/open/gm/river/desert/deep{ - icon = 'icons/turf/floors/desert_water_toxic.dmi' - }, +/turf/open/gm/river/desert/deep/toxic, /area/kutjevo/interior/power) "gwY" = ( /turf/closed/wall/kutjevo/colony, /area/kutjevo/interior/complex/med) "gxs" = ( -/turf/open/desert/desert_shore/shore_edge1{ - dir = 4 - }, +/turf/open/desert/desert_shore/shore_edge1/east, /area/kutjevo/exterior/scrubland) "gxD" = ( /obj/structure/stairs/perspective/kutjevo{ @@ -5041,9 +4602,7 @@ icon_state = "p_stair_full"; pixel_y = 16 }, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 6 - }, +/turf/open/floor/kutjevo/multi_tiles/southeast, /area/kutjevo/interior/power) "gxK" = ( /obj/structure/blocker/invisible_wall, @@ -5053,9 +4612,7 @@ /obj/effect/decal/cleanable/blood/xeno{ icon_state = "xgibarm" }, -/turf/open/floor/kutjevo/tan/multi_tiles{ - dir = 1 - }, +/turf/open/floor/kutjevo/tan/multi_tiles/north, /area/kutjevo/exterior/runoff_bridge) "gzb" = ( /obj/effect/decal/cleanable/blood/xeno, @@ -5086,9 +4643,7 @@ /turf/open/auto_turf/sand/layer0, /area/kutjevo/exterior/scrubland) "gAM" = ( -/turf/open/floor/kutjevo/tan/alt_edge{ - dir = 8 - }, +/turf/open/floor/kutjevo/tan/alt_edge/west, /area/kutjevo/exterior/lz_dunes) "gBa" = ( /obj/structure/largecrate/random/case/double, @@ -5135,9 +4690,7 @@ "gCh" = ( /obj/structure/surface/rack, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 6 - }, +/turf/open/floor/kutjevo/multi_tiles/southeast, /area/kutjevo/interior/colony_South/power2) "gCt" = ( /obj/structure/morgue{ @@ -5146,20 +4699,18 @@ /turf/open/floor/kutjevo/grey/plate, /area/kutjevo/interior/complex/med) "gCG" = ( -/obj/structure/stairs/perspective/kutjevo{ - icon_state = "p_stair_sn_full_cap" +/obj/structure/machinery/light{ + dir = 4 }, -/turf/open/auto_turf/sand/layer0, -/area/kutjevo/exterior/complex_border/med_rec) +/turf/open/floor/kutjevo/colors/orange/tile, +/area/kutjevo/interior/power_pt2_electric_boogaloo) "gDP" = ( /obj/item/tool/wrench, /turf/open/floor/kutjevo/tan, /area/kutjevo/interior/complex/Northwest_Flight_Control) "gEc" = ( /obj/effect/landmark/corpsespawner/wygoon, -/turf/open/floor/kutjevo/colors/cyan/inner_corner{ - dir = 8 - }, +/turf/open/floor/kutjevo/colors/cyan/inner_corner/west, /area/kutjevo/interior/complex/med/operating) "gEe" = ( /obj/effect/decal/cleanable/blood/xeno{ @@ -5191,15 +4742,11 @@ /area/kutjevo/interior/colony_N_East) "gFo" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/kutjevo/tan/alt_edge{ - dir = 10 - }, +/turf/open/floor/kutjevo/tan/alt_edge/southwest, /area/kutjevo/interior/complex/Northwest_Flight_Control) "gFt" = ( /obj/item/stack/sheet/metal, -/turf/open/floor/kutjevo/tan/alt_edge{ - dir = 8 - }, +/turf/open/floor/kutjevo/tan/alt_edge/west, /area/kutjevo/interior/complex/Northwest_Flight_Control) "gFA" = ( /turf/open/desert/desert_shore/shore_edge1, @@ -5213,9 +4760,7 @@ dir = 4 }, /obj/structure/largecrate/random/case/double, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 10 - }, +/turf/open/floor/kutjevo/multi_tiles/southwest, /area/kutjevo/interior/colony_South/power2) "gHp" = ( /obj/structure/surface/rack, @@ -5228,9 +4773,7 @@ /turf/open/auto_turf/sand/layer1, /area/kutjevo/exterior/spring) "gJx" = ( -/turf/open/gm/river/desert/shallow_corner{ - dir = 4 - }, +/turf/open/gm/river/desert/shallow_corner/east, /area/kutjevo/exterior/spring) "gJB" = ( /obj/structure/stairs/perspective/kutjevo{ @@ -5286,9 +4829,7 @@ /turf/open/floor/kutjevo/colors/orange, /area/kutjevo/interior/colony_South/power2) "gNI" = ( -/turf/open/floor/kutjevo/colors/cyan/inner_corner{ - dir = 4 - }, +/turf/open/floor/kutjevo/colors/cyan/inner_corner/east, /area/kutjevo/interior/complex/med/operating) "gNZ" = ( /obj/structure/flora/grass/tallgrass/desert/corner{ @@ -5355,9 +4896,7 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/kutjevo/tan/grey_inner_edge{ - dir = 1 - }, +/turf/open/floor/kutjevo/tan/grey_inner_edge/north, /area/kutjevo/interior/complex/med) "gTo" = ( /obj/structure/filingcabinet, @@ -5379,7 +4918,7 @@ "gTO" = ( /obj/structure/surface/rack, /turf/open/floor/kutjevo/plate, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "gUa" = ( /obj/structure/platform/kutjevo/smooth{ dir = 1 @@ -5414,9 +4953,7 @@ "gWo" = ( /obj/structure/blocker/invisible_wall, /obj/structure/filtration/coagulation_arm, -/turf/open/gm/river{ - color = "#990000" - }, +/turf/open/gm/river/darkred, /area/kutjevo/interior/oob) "gWF" = ( /obj/structure/flora/grass/tallgrass/desert/corner{ @@ -5509,14 +5046,8 @@ /turf/open/auto_turf/sand/layer0, /area/kutjevo/interior/colony_central) "hdF" = ( -/obj/structure/filtration/coagulation_arm{ - pixel_x = -16; - pixel_y = -16 - }, -/turf/open/gm/river/desert/deep{ - icon = 'icons/turf/floors/desert_water_toxic.dmi' - }, -/area/kutjevo/interior/oob) +/turf/open/floor/plating/kutjevo/platingdmg1, +/area/kutjevo/interior/complex/botany/east_tech) "hdQ" = ( /obj/structure/platform/kutjevo/smooth, /turf/open/floor/kutjevo/colors/orange, @@ -5532,18 +5063,14 @@ /turf/open/auto_turf/sand/layer1, /area/kutjevo/exterior/lz_dunes) "hfu" = ( -/turf/open/floor/kutjevo/colors/cyan/inner_corner{ - dir = 8 - }, +/turf/open/floor/kutjevo/colors/cyan/inner_corner/west, /area/kutjevo/interior/complex/med/triage) "hhu" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/cameras{ dir = 4 }, -/turf/open/floor/kutjevo/tan/alt_inner_edge{ - dir = 4 - }, +/turf/open/floor/kutjevo/tan/alt_inner_edge/east, /area/kutjevo/interior/complex/Northwest_Flight_Control) "hii" = ( /turf/open/auto_turf/sand/layer2, @@ -5557,9 +5084,7 @@ }, /obj/structure/closet/secure_closet/engineering_personal, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 10 - }, +/turf/open/floor/kutjevo/multi_tiles/southwest, /area/kutjevo/interior/colony_South/power2) "hiM" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_core, @@ -5581,9 +5106,7 @@ /turf/open/floor/kutjevo/tan, /area/kutjevo/interior/construction) "hmR" = ( -/turf/open/floor/kutjevo/colors/orange/edge{ - dir = 9 - }, +/turf/open/floor/kutjevo/colors/orange/edge/northwest, /area/kutjevo/interior/foremans_office) "hnm" = ( /obj/effect/landmark/objective_landmark/far, @@ -5594,7 +5117,7 @@ dir = 4 }, /turf/open/floor/kutjevo/multi_tiles, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "hnE" = ( /obj/structure/platform/kutjevo/rock{ dir = 4 @@ -5609,6 +5132,9 @@ /obj/structure/machinery/bioprinter{ stored_metal = 1000 }, +/obj/item/clothing/glasses/thermal/syndi{ + icon_state = "kutjevo_goggles" + }, /turf/open/floor/kutjevo/colors/cyan, /area/kutjevo/interior/complex/med/operating) "hnZ" = ( @@ -5660,9 +5186,7 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 4 - }, +/turf/open/floor/kutjevo/multi_tiles/east, /area/kutjevo/interior/complex/med) "hrz" = ( /turf/open/auto_turf/sand/layer0, @@ -5726,18 +5250,11 @@ dir = 1 }, /obj/structure/blocker/invisible_wall, -/turf/open/gm/river/desert/deep{ - icon = 'icons/turf/floors/desert_water_toxic.dmi' - }, +/turf/open/gm/river/desert/deep/toxic, /area/kutjevo/interior/oob) "hwA" = ( -/obj/structure/stairs/perspective/kutjevo{ - dir = 4; - icon_state = "p_stair_full" - }, -/obj/structure/platform/kutjevo/smooth, -/turf/open/floor/plating/kutjevo, -/area/kutjevo/interior/complex/med/locks) +/turf/open/floor/plating/kutjevo/platingdmg3, +/area/kutjevo/interior/complex/botany/east_tech) "hwO" = ( /obj/structure/machinery/light{ dir = 1 @@ -5821,14 +5338,10 @@ /area/kutjevo/interior/complex/Northwest_Dorms) "hCl" = ( /obj/structure/bed/sofa/south/grey/right, -/turf/open/floor/kutjevo/tan/grey_edge{ - dir = 1 - }, +/turf/open/floor/kutjevo/tan/grey_edge/north, /area/kutjevo/interior/complex/Northwest_Dorms) "hCu" = ( -/turf/open/floor/kutjevo/tan/multi_tiles{ - dir = 1 - }, +/turf/open/floor/kutjevo/tan/multi_tiles/north, /area/kutjevo/interior/complex/botany/east) "hDi" = ( /obj/structure/filingcabinet/chestdrawer{ @@ -5842,9 +5355,7 @@ pixel_y = 16 }, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/kutjevo/tan/grey_edge{ - dir = 1 - }, +/turf/open/floor/kutjevo/tan/grey_edge/north, /area/kutjevo/interior/complex/Northwest_Dorms) "hDu" = ( /obj/structure/surface/rack, @@ -5881,9 +5392,7 @@ /turf/open/floor/kutjevo/plate, /area/kutjevo/interior/colony_central) "hET" = ( -/turf/open/gm/river/desert/shallow_edge{ - dir = 10 - }, +/turf/open/gm/river/desert/shallow_edge/southwest, /area/kutjevo/exterior/spring) "hFi" = ( /obj/structure/barricade/wooden{ @@ -5905,17 +5414,12 @@ /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, /turf/open/auto_turf/sand/layer1, /area/kutjevo/interior/colony_South) -"hGM" = ( -/turf/closed/wall/kutjevo/colony/reinforced/hull, -/area/kutjevo/exterior/runoff_bridge) "hGP" = ( /obj/structure/blocker/forcefield/multitile_vehicles, /turf/open/floor/kutjevo/plate, /area/kutjevo/interior/colony_central) "hHi" = ( -/turf/open/floor/kutjevo/multi_tiles{ - dir = 6 - }, +/turf/open/floor/kutjevo/multi_tiles/southeast, /area/kutjevo/interior/complex/botany) "hHo" = ( /obj/structure/machinery/portable_atmospherics/powered/scrubber, @@ -5927,16 +5431,12 @@ pixel_x = -24; start_charge = 0 }, -/turf/open/floor/kutjevo/colors/orange/edge{ - dir = 8 - }, +/turf/open/floor/kutjevo/colors/orange/edge/west, /area/kutjevo/interior/power_pt2_electric_boogaloo) "hJN" = ( /obj/structure/largecrate/random, /obj/item/storage/fancy/cigarettes/lucky_strikes, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 1 - }, +/turf/open/floor/kutjevo/multi_tiles/north, /area/kutjevo/exterior/runoff_bridge) "hKE" = ( /obj/structure/platform/kutjevo{ @@ -5950,11 +5450,8 @@ /obj/structure/platform/kutjevo{ dir = 4 }, -/obj/structure/blocker/invisible_wall, -/turf/open/gm/river/desert/deep{ - icon = 'icons/turf/floors/desert_water_toxic.dmi' - }, -/area/kutjevo/interior/oob) +/turf/open/gm/river/desert/deep, +/area/kutjevo/interior/complex/botany/east_tech) "hLH" = ( /obj/structure/platform/kutjevo/rock{ dir = 1 @@ -5974,18 +5471,14 @@ "hOm" = ( /obj/structure/surface/table/almayer, /obj/item/storage/box/m94, -/turf/open/floor/kutjevo/colors/purple/inner_corner{ - dir = 8 - }, +/turf/open/floor/kutjevo/colors/purple/inner_corner/west, /area/kutjevo/interior/construction) "hOB" = ( /obj/structure/bed/chair{ dir = 8; pixel_y = 8 }, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 6 - }, +/turf/open/floor/kutjevo/multi_tiles/southeast, /area/kutjevo/interior/complex/botany) "hPf" = ( /obj/structure/window/framed/kutjevo/reinforced, @@ -6009,9 +5502,7 @@ /area/kutjevo/interior/oob/dev_room) "hRm" = ( /obj/item/stack/sheet/metal, -/turf/open/floor/plating/kutjevo{ - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/kutjevo/platingdmg3, /area/kutjevo/interior/complex/Northwest_Dorms) "hRG" = ( /obj/structure/prop/dam/boulder/boulder2, @@ -6052,9 +5543,7 @@ /turf/closed/wall/kutjevo/rock, /area/kutjevo/interior/colony_north) "hUy" = ( -/turf/open/floor/kutjevo/tan/grey_edge{ - dir = 4 - }, +/turf/open/floor/kutjevo/tan/grey_edge/east, /area/kutjevo/interior/complex/botany/east_tech) "hVg" = ( /obj/effect/spawner/random/tool, @@ -6072,9 +5561,7 @@ dir = 8 }, /obj/structure/largecrate/random/secure, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 4 - }, +/turf/open/floor/kutjevo/multi_tiles/east, /area/kutjevo/interior/complex/med/auto_doc) "hWD" = ( /obj/structure/lattice, @@ -6150,9 +5637,6 @@ /area/kutjevo/exterior/lz_dunes) "idX" = ( /obj/structure/closet/firecloset/full, -/obj/item/clothing/glasses/thermal/syndi{ - icon_state = "kutjevo_goggles" - }, /obj/effect/landmark/objective_landmark/close, /turf/open/floor/kutjevo/multi_tiles, /area/kutjevo/interior/complex/med/locks) @@ -6161,19 +5645,14 @@ /obj/structure/platform/kutjevo{ dir = 1 }, -/turf/open/gm/river{ - color = "#995555"; - name = "pool" - }, +/turf/open/gm/river/red_pool, /area/kutjevo/interior/oob) "ieA" = ( /obj/item/tool/weldingtool, -/turf/open/floor/kutjevo/tan/alt_edge{ - dir = 5 - }, +/turf/open/floor/kutjevo/tan/alt_edge/northeast, /area/kutjevo/interior/complex/Northwest_Flight_Control) "ify" = ( -/turf/closed/wall/kutjevo/colony/reinforced/hull, +/turf/closed/wall/kutjevo/colony, /area/kutjevo/interior/complex/med/pano) "ifE" = ( /obj/structure/machinery/power/apc{ @@ -6181,16 +5660,12 @@ pixel_x = -24; start_charge = 0 }, -/turf/open/floor/kutjevo/tan/grey_edge{ - dir = 8 - }, +/turf/open/floor/kutjevo/tan/grey_edge/west, /area/kutjevo/interior/construction) "ifT" = ( /obj/structure/largecrate/random, /obj/structure/machinery/light, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 8 - }, +/turf/open/floor/kutjevo/multi_tiles/west, /area/kutjevo/interior/colony_South/power2) "ige" = ( /obj/structure/blocker/invisible_wall, @@ -6215,33 +5690,23 @@ "iiy" = ( /obj/item/weapon/twohanded/folded_metal_chair, /turf/open/auto_turf/sand/layer1, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "iiG" = ( -/obj/structure/stairs/perspective/kutjevo{ - dir = 8; - icon_state = "p_stair_full" - }, -/obj/structure/platform/kutjevo/smooth, -/obj/structure/barricade/handrail/kutjevo, -/turf/open/floor/kutjevo/tan/multi_tiles, -/area/kutjevo/interior/colony_South/power2) +/turf/open/gm/river/desert/deep, +/area/kutjevo/interior/complex/botany/east_tech) "iiN" = ( /obj/item/stack/sheet/metal, /turf/open/floor/plating/kutjevo, /area/kutjevo/interior/complex/botany/east_tech) "ikW" = ( -/turf/open/floor/kutjevo/colors/purple/edge{ - dir = 4 - }, +/turf/open/floor/kutjevo/colors/purple/edge/east, /area/kutjevo/interior/construction) "imG" = ( /obj/structure/bed/sofa/vert/white/top{ pixel_y = 17 }, /obj/structure/bed/sofa/vert/white, -/turf/open/floor/kutjevo/tan/grey_edge{ - dir = 1 - }, +/turf/open/floor/kutjevo/tan/grey_edge/north, /area/kutjevo/interior/complex/med) "inR" = ( /obj/structure/flora/grass/tallgrass/desert/corner{ @@ -6251,9 +5716,7 @@ /area/kutjevo/exterior/construction) "iob" = ( /obj/structure/blocker/invisible_wall, -/turf/open/gm/river/desert/shallow_edge{ - dir = 8 - }, +/turf/open/gm/river/desert/shallow_edge/west, /area/kutjevo/interior/oob) "ips" = ( /obj/item/bodybag/tarp/reactive, @@ -6261,9 +5724,7 @@ /area/kutjevo/interior/power) "ipy" = ( /obj/item/stack/sheet/metal, -/turf/open/floor/kutjevo/tan/alt_edge{ - dir = 1 - }, +/turf/open/floor/kutjevo/tan/alt_edge/north, /area/kutjevo/interior/complex/Northwest_Flight_Control) "ipz" = ( /obj/structure/machinery/cm_vending/sorted/medical/blood, @@ -6293,9 +5754,7 @@ /obj/structure/platform/kutjevo{ dir = 4 }, -/turf/open/gm/river{ - color = "#990000" - }, +/turf/open/gm/river/darkred, /area/kutjevo/interior/oob) "irK" = ( /obj/structure/machinery/light/small{ @@ -6313,9 +5772,7 @@ /turf/open/floor/kutjevo/tan, /area/kutjevo/interior/complex/botany) "iuz" = ( -/turf/open/desert/desert_shore/shore_edge1{ - dir = 8 - }, +/turf/open/desert/desert_shore/shore_edge1/west, /area/kutjevo/exterior/runoff_river) "iuL" = ( /obj/structure/machinery/vending/coffee, @@ -6342,9 +5799,7 @@ /turf/open/auto_turf/sand/layer1, /area/kutjevo/interior/colony_South) "iwV" = ( -/turf/open/floor/kutjevo/tan/multi_tiles{ - dir = 1 - }, +/turf/open/floor/kutjevo/tan/multi_tiles/north, /area/kutjevo/interior/complex/botany) "iwW" = ( /obj/item/stool{ @@ -6357,25 +5812,21 @@ /turf/open/gm/river/desert/deep, /area/kutjevo/exterior/runoff_river) "iyd" = ( -/turf/open/floor/kutjevo/colors/cyan/inner_corner{ - dir = 1 - }, +/turf/open/floor/kutjevo/colors/cyan/inner_corner/north, /area/kutjevo/interior/complex/med/operating) "iyP" = ( -/turf/open/floor/coagulation{ - icon_state = "7,8-2" - }, +/turf/open/floor/coagulation/icon7_8_2, /area/kutjevo/exterior/scrubland) "izS" = ( /obj/structure/machinery/light, -/turf/open/floor/kutjevo/colors/cyan/inner_corner{ - dir = 4 - }, +/turf/open/floor/kutjevo/colors/cyan/inner_corner/east, /area/kutjevo/interior/complex/med/triage) +"izY" = ( +/obj/effect/decal/cleanable/blood/xeno, +/turf/open/auto_turf/sand/layer1, +/area/kutjevo/exterior/lz_pad) "iBa" = ( -/turf/open/floor/kutjevo/colors/orange/inner_corner{ - dir = 1 - }, +/turf/open/floor/kutjevo/colors/orange/inner_corner/north, /area/kutjevo/interior/power_pt2_electric_boogaloo) "iBd" = ( /obj/structure/filingcabinet{ @@ -6413,9 +5864,7 @@ "iCw" = ( /obj/structure/surface/table/almayer, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/kutjevo/tan/alt_inner_edge{ - dir = 8 - }, +/turf/open/floor/kutjevo/tan/alt_inner_edge/west, /area/kutjevo/interior/complex/Northwest_Flight_Control) "iCG" = ( /obj/structure/platform/kutjevo{ @@ -6423,15 +5872,13 @@ }, /obj/structure/blocker/invisible_wall, /obj/structure/platform/kutjevo, -/turf/open/gm/river{ - color = "#990000" - }, +/turf/open/gm/river/darkred, /area/kutjevo/interior/power) "iCQ" = ( /obj/structure/flora/grass/desert/lightgrass_9, /obj/effect/decal/cleanable/blood/oil, /turf/open/auto_turf/sand/layer1, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "iDz" = ( /obj/structure/flora/grass/tallgrass/desert/corner, /turf/open/auto_turf/sand/layer1, @@ -6469,18 +5916,13 @@ /area/kutjevo/exterior/runoff_dunes) "iIz" = ( /obj/structure/platform_decoration/kutjevo, -/obj/structure/blocker/invisible_wall, -/turf/open/gm/river/desert/deep{ - icon = 'icons/turf/floors/desert_water_toxic.dmi' - }, -/area/kutjevo/interior/oob) +/turf/open/gm/river/desert/deep, +/area/kutjevo/interior/complex/botany/east_tech) "iIT" = ( /obj/structure/platform/kutjevo{ dir = 4 }, -/turf/open/floor/coagulation{ - icon_state = "8,3" - }, +/turf/open/floor/coagulation/icon8_3, /area/kutjevo/interior/construction) "iJo" = ( /obj/structure/platform/kutjevo{ @@ -6489,9 +5931,7 @@ /turf/open/auto_turf/sand/layer0, /area/kutjevo/exterior/scrubland) "iJq" = ( -/turf/open/desert/desert_shore/shore_corner2{ - dir = 1 - }, +/turf/open/desert/desert_shore/shore_corner2/north, /area/kutjevo/exterior/runoff_dunes) "iJx" = ( /obj/structure/largecrate/random/case/double, @@ -6507,9 +5947,7 @@ /obj/structure/platform/kutjevo{ dir = 8 }, -/turf/open/floor/coagulation{ - icon_state = "0,8" - }, +/turf/open/floor/coagulation/icon0_8, /area/kutjevo/interior/colony_north) "iKE" = ( /obj/structure/surface/table/almayer, @@ -6542,14 +5980,10 @@ /obj/structure/sign/poster{ pixel_y = 32 }, -/turf/open/floor/kutjevo/colors/purple/inner_corner{ - dir = 1 - }, +/turf/open/floor/kutjevo/colors/purple/inner_corner/north, /area/kutjevo/interior/construction) "iMR" = ( -/turf/open/floor/kutjevo/tan/grey_edge{ - dir = 1 - }, +/turf/open/floor/kutjevo/tan/grey_edge/north, /area/kutjevo/interior/colony_central) "iNt" = ( /obj/structure/surface/table/reinforced/prison, @@ -6568,9 +6002,7 @@ /obj/structure/barricade/wooden{ dir = 8 }, -/turf/open/floor/kutjevo/tan/alt_edge{ - dir = 8 - }, +/turf/open/floor/kutjevo/tan/alt_edge/west, /area/kutjevo/interior/complex/Northwest_Flight_Control) "iPk" = ( /obj/item/prop/alien/hugger, @@ -6597,9 +6029,7 @@ /turf/open/floor/almayer/research/containment/floor2, /area/kutjevo/interior/oob) "iSN" = ( -/turf/open/gm/river/desert/shallow_edge{ - dir = 9 - }, +/turf/open/gm/river/desert/shallow_edge/northwest, /area/kutjevo/exterior/lz_river) "iTc" = ( /obj/effect/decal/cleanable/blood, @@ -6684,35 +6114,27 @@ /obj/structure/platform/kutjevo{ dir = 1 }, -/turf/open/gm/river/desert/deep{ - icon = 'icons/turf/floors/desert_water_toxic.dmi' - }, +/turf/open/gm/river/desert/deep/toxic, /area/kutjevo/interior/oob) "iXz" = ( /obj/structure/window/framed/kutjevo/reinforced, /turf/open/floor/plating/kutjevo, /area/kutjevo/interior/colony_central/mine_elevator) "iXD" = ( -/turf/open/floor/kutjevo/tan/multi_tiles{ - dir = 1 - }, +/turf/open/floor/kutjevo/tan/multi_tiles/north, /area/kutjevo/exterior/scrubland) "iYo" = ( /turf/open/floor/kutjevo/tan, /area/kutjevo/interior/complex/med/auto_doc) "iYO" = ( -/turf/open/floor/kutjevo/tan/grey_edge{ - dir = 5 - }, +/turf/open/floor/kutjevo/tan/grey_edge/northeast, /area/kutjevo/interior/complex/Northwest_Dorms) "iZi" = ( /obj/structure/barricade/wooden{ dir = 1; pixel_y = 20 }, -/turf/open/floor/kutjevo/tan/alt_edge{ - dir = 1 - }, +/turf/open/floor/kutjevo/tan/alt_edge/north, /area/kutjevo/interior/complex/Northwest_Flight_Control) "iZu" = ( /obj/structure/machinery/light, @@ -6726,8 +6148,8 @@ /area/kutjevo/exterior/complex_border/med_rec) "jac" = ( /obj/item/device/radio{ - name = "damp shortwave radio"; - desc = "A regular shortwave radio, this one has experienced minor water damage but is still functional." + desc = "A regular shortwave radio, this one has experienced minor water damage but is still functional."; + name = "damp shortwave radio" }, /turf/open/desert/desert_shore/shore_corner2, /area/kutjevo/exterior/spring) @@ -6750,16 +6172,12 @@ pixel_x = -24; start_charge = 0 }, -/turf/open/floor/kutjevo/colors/cyan/edge{ - dir = 8 - }, +/turf/open/floor/kutjevo/colors/cyan/edge/west, /area/kutjevo/interior/complex/med/auto_doc) "jcl" = ( /obj/structure/surface/table/almayer, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/kutjevo/tan/alt_edge{ - dir = 9 - }, +/turf/open/floor/kutjevo/tan/alt_edge/northwest, /area/kutjevo/interior/complex/Northwest_Flight_Control) "jcI" = ( /turf/open/auto_turf/sand/layer1, @@ -6846,9 +6264,7 @@ /turf/open/floor/kutjevo/multi_tiles, /area/kutjevo/exterior/runoff_bridge) "jiX" = ( -/turf/open/floor/kutjevo/tan/grey_edge{ - dir = 6 - }, +/turf/open/floor/kutjevo/tan/grey_edge/southeast, /area/kutjevo/interior/complex/Northwest_Dorms) "jjt" = ( /obj/structure/machinery/light{ @@ -6856,13 +6272,6 @@ }, /turf/open/floor/kutjevo/tan, /area/kutjevo/interior/construction) -"jkp" = ( -/obj/structure/platform/kutjevo/smooth, -/obj/structure/barricade/handrail/kutjevo, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 4 - }, -/area/kutjevo/interior/colony_South/power2) "jkJ" = ( /obj/structure/closet/secure_closet/hydroponics, /obj/item/reagent_container/glass/watertank, @@ -6881,15 +6290,17 @@ /obj/item/device/flashlight/lamp/tripod/grey, /turf/open/auto_turf/sand/layer1, /area/kutjevo/exterior/runoff_river) +"jmP" = ( +/obj/structure/machinery/power/reactor/colony, +/turf/open/floor/kutjevo/colors/orange, +/area/kutjevo/interior/power_pt2_electric_boogaloo) "jng" = ( /obj/structure/surface/table/almayer, /obj/item/paper_bin{ pixel_x = 4; pixel_y = 8 }, -/turf/open/floor/kutjevo/tan/alt_edge{ - dir = 1 - }, +/turf/open/floor/kutjevo/tan/alt_edge/north, /area/kutjevo/interior/complex/Northwest_Flight_Control) "jnr" = ( /turf/open/floor/kutjevo/tan/alt_edge, @@ -6923,9 +6334,7 @@ /obj/structure/platform_decoration/kutjevo{ dir = 4 }, -/turf/open/gm/river/desert/shallow_edge{ - dir = 1 - }, +/turf/open/gm/river/desert/shallow_edge/north, /area/kutjevo/exterior/runoff_river) "jog" = ( /obj/effect/landmark/static_comms/net_one, @@ -6933,16 +6342,8 @@ /area/kutjevo/exterior/telecomm/lz1_south) "joo" = ( /obj/item/cell/high, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 10 - }, +/turf/open/floor/kutjevo/multi_tiles/southwest, /area/kutjevo/interior/colony_South/power2) -"jos" = ( -/obj/structure/stairs/perspective/kutjevo{ - icon_state = "p_stair_full" - }, -/turf/open/auto_turf/sand/layer0, -/area/kutjevo/exterior/complex_border/med_rec) "joL" = ( /obj/structure/filingcabinet, /obj/structure/machinery/light{ @@ -6975,14 +6376,10 @@ /obj/structure/platform/kutjevo/rock{ dir = 1 }, -/turf/open/mars_cave{ - icon_state = "mars_cave_7" - }, +/turf/open/mars_cave/mars_cave_7, /area/kutjevo/exterior/scrubland) "jrk" = ( -/turf/open/floor/kutjevo/multi_tiles{ - dir = 1 - }, +/turf/open/floor/kutjevo/multi_tiles/north, /area/kutjevo/interior/complex/botany) "jrs" = ( /obj/structure/stairs/perspective/kutjevo{ @@ -7040,7 +6437,7 @@ "juC" = ( /obj/structure/largecrate/random/secure, /turf/open/floor/kutjevo/colors/orange, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "juH" = ( /obj/structure/stairs/perspective/kutjevo{ dir = 6; @@ -7089,9 +6486,7 @@ /turf/open/gm/river/desert/deep/covered, /area/kutjevo/interior/complex/med/operating) "jwx" = ( -/turf/open/floor/kutjevo/tan/grey_inner_edge{ - dir = 1 - }, +/turf/open/floor/kutjevo/tan/grey_inner_edge/north, /area/kutjevo/interior/complex/med) "jwA" = ( /turf/open/floor/kutjevo/multi_tiles, @@ -7112,14 +6507,8 @@ dir = 8 }, /obj/structure/machinery/vending/cola, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 10 - }, +/turf/open/floor/kutjevo/multi_tiles/southwest, /area/kutjevo/interior/colony_South/power2) -"jxR" = ( -/obj/structure/machinery/power/geothermal, -/turf/open/floor/kutjevo/colors/orange, -/area/kutjevo/interior/power_pt2_electric_boogaloo) "jxS" = ( /obj/structure/bed/chair{ dir = 8 @@ -7137,9 +6526,7 @@ /turf/open/floor/kutjevo/tan/multi_tiles, /area/kutjevo/interior/complex/botany/east_tech) "jyz" = ( -/turf/open/desert/desert_shore/shore_edge1{ - dir = 8 - }, +/turf/open/desert/desert_shore/shore_edge1/west, /area/kutjevo/exterior/lz_river) "jzb" = ( /obj/structure/prop/dam/truck/mining, @@ -7153,16 +6540,12 @@ /turf/closed/wall/kutjevo/colony/reinforced, /area/kutjevo/interior/complex/med) "jzm" = ( -/turf/open/floor/kutjevo/colors/orange/inner_corner{ - dir = 4 - }, +/turf/open/floor/kutjevo/colors/orange/inner_corner/east, /area/kutjevo/interior/power_pt2_electric_boogaloo) "jzQ" = ( /obj/structure/surface/table/reinforced/prison, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/kutjevo/colors/cyan/inner_corner{ - dir = 4 - }, +/turf/open/floor/kutjevo/colors/cyan/inner_corner/east, /area/kutjevo/interior/complex/med) "jBe" = ( /obj/structure/closet/firecloset/full, @@ -7187,9 +6570,7 @@ /turf/open/floor/plating/kutjevo, /area/kutjevo/interior/complex/botany) "jEh" = ( -/turf/open/floor/plating/kutjevo{ - icon_state = "panelscorched" - }, +/turf/open/floor/plating/kutjevo/panelscorched, /area/kutjevo/interior/complex/Northwest_Dorms) "jEo" = ( /obj/structure/machinery/camera/autoname{ @@ -7218,6 +6599,21 @@ /obj/item/stack/sheet/wood, /turf/open/floor/kutjevo/tan/multi_tiles, /area/kutjevo/interior/power/comms) +"jGo" = ( +/obj/structure/surface/rack, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/turf/open/floor/kutjevo/multi_tiles/southeast, +/area/kutjevo/interior/power) +"jGF" = ( +/turf/open/floor/almayer/research/containment/floor2, +/area/kutjevo/exterior/lz_pad) "jGX" = ( /obj/effect/landmark/survivor_spawner, /turf/open/floor/kutjevo/colors, @@ -7257,18 +6653,14 @@ "jJo" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/device/radio, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 10 - }, +/turf/open/floor/kutjevo/multi_tiles/southwest, /area/kutjevo/interior/colony_South/power2) "jKc" = ( /obj/structure/platform/kutjevo/smooth, /turf/open/asphalt/cement_sunbleached, /area/kutjevo/interior/power) "jKm" = ( -/turf/open/floor/kutjevo/tan/alt_edge{ - dir = 4 - }, +/turf/open/floor/kutjevo/tan/alt_edge/east, /area/kutjevo/interior/colony_central) "jKI" = ( /turf/closed/wall/kutjevo/colony/reinforced, @@ -7283,9 +6675,7 @@ /turf/open/floor/plating/kutjevo, /area/kutjevo/interior/colony_South/power2) "jOx" = ( -/turf/open/gm/river/desert/shallow_edge{ - dir = 1 - }, +/turf/open/gm/river/desert/shallow_edge/north, /area/kutjevo/exterior/runoff_dunes) "jOA" = ( /obj/item/prop/alien/hugger, @@ -7293,9 +6683,7 @@ dir = 1; pixel_y = 20 }, -/turf/open/floor/kutjevo/tan/alt_edge{ - dir = 1 - }, +/turf/open/floor/kutjevo/tan/alt_edge/north, /area/kutjevo/interior/complex/Northwest_Flight_Control) "jPb" = ( /obj/structure/monorail, @@ -7349,16 +6737,14 @@ /area/kutjevo/interior/power_pt2_electric_boogaloo) "jSQ" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic/autoname, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 6 - }, +/turf/open/floor/kutjevo/multi_tiles/southeast, /area/kutjevo/interior/complex/botany/east) "jUK" = ( /obj/structure/machinery/landinglight/ds2{ dir = 8 }, /turf/open/floor/kutjevo/multi_tiles, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "jUP" = ( /obj/structure/stairs/perspective/kutjevo{ dir = 1; @@ -7370,9 +6756,7 @@ /obj/structure/platform/kutjevo{ dir = 4 }, -/turf/open/floor/coagulation{ - icon_state = "8,3" - }, +/turf/open/floor/coagulation/icon8_3, /area/kutjevo/interior/colony_north) "jXo" = ( /obj/structure/stairs/perspective/kutjevo{ @@ -7387,9 +6771,7 @@ /turf/open/auto_turf/sand/layer2, /area/kutjevo/interior/colony_S_East) "jZT" = ( -/turf/open/floor/kutjevo/colors/cyan/edge{ - dir = 8 - }, +/turf/open/floor/kutjevo/colors/cyan/edge/west, /area/kutjevo/interior/complex/med/triage) "kah" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony/autoname{ @@ -7400,9 +6782,7 @@ "kbg" = ( /obj/structure/blocker/invisible_wall, /obj/structure/platform/kutjevo, -/turf/open/gm/river/desert/deep{ - icon = 'icons/turf/floors/desert_water_toxic.dmi' - }, +/turf/open/gm/river/desert/deep/toxic, /area/kutjevo/interior/power) "kbL" = ( /obj/effect/decal/cleanable/blood/oil, @@ -7415,9 +6795,7 @@ /area/kutjevo/exterior/runoff_river) "kcd" = ( /obj/structure/machinery/vending/snack, -/turf/open/floor/kutjevo/tan/grey_edge{ - dir = 1 - }, +/turf/open/floor/kutjevo/tan/grey_edge/north, /area/kutjevo/interior/construction) "kct" = ( /obj/effect/decal/cleanable/blood/xeno{ @@ -7435,9 +6813,7 @@ /turf/open/auto_turf/sand/layer1, /area/kutjevo/exterior/runoff_dunes) "kdY" = ( -/turf/open/floor/kutjevo/multi_tiles{ - dir = 4 - }, +/turf/open/floor/kutjevo/multi_tiles/east, /area/kutjevo/interior/power) "kec" = ( /obj/structure/platform_decoration/kutjevo/rock{ @@ -7451,9 +6827,7 @@ /obj/structure/barricade/deployable{ dir = 8 }, -/turf/open/floor/kutjevo/colors/purple/edge{ - dir = 8 - }, +/turf/open/floor/kutjevo/colors/purple/edge/west, /area/kutjevo/interior/construction) "keX" = ( /obj/structure/stairs/perspective/kutjevo{ @@ -7487,8 +6861,8 @@ /turf/open/auto_turf/sand/layer1, /area/kutjevo/exterior/spring) "khI" = ( -/obj/structure/window/framed/kutjevo/reinforced/hull, -/turf/open/floor/kutjevo/grey/plate, +/obj/structure/window/framed/kutjevo/reinforced, +/turf/open/floor/plating/kutjevo, /area/kutjevo/interior/complex/botany/east_tech) "khW" = ( /obj/structure/surface/table/almayer, @@ -7496,9 +6870,7 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/kutjevo/colors/orange/edge{ - dir = 4 - }, +/turf/open/floor/kutjevo/colors/orange/edge/east, /area/kutjevo/interior/complex/Northwest_Security_Checkpoint) "kie" = ( /obj/structure/blocker/invisible_wall, @@ -7511,9 +6883,7 @@ /area/kutjevo/interior/complex/botany) "kiE" = ( /obj/item/reagent_container/glass/bucket, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 6 - }, +/turf/open/floor/kutjevo/multi_tiles/southeast, /area/kutjevo/interior/complex/botany) "kiN" = ( /obj/structure/cable/heavyduty{ @@ -7527,9 +6897,7 @@ /area/kutjevo/interior/colony_central) "kjo" = ( /obj/structure/flora/bush/ausbushes/reedbush, -/turf/open/desert/desert_shore/desert_shore1{ - dir = 4 - }, +/turf/open/desert/desert_shore/desert_shore1/east, /area/kutjevo/exterior/scrubland) "kkB" = ( /obj/structure/machinery/vending/cigarette/colony, @@ -7537,9 +6905,7 @@ /area/kutjevo/interior/complex/med) "kkC" = ( /obj/structure/platform/kutjevo, -/turf/open/floor/coagulation{ - icon_state = "7,0" - }, +/turf/open/floor/coagulation/icon7_0, /area/kutjevo/interior/colony_north) "kkH" = ( /turf/closed/wall/kutjevo/colony/reinforced, @@ -7547,9 +6913,7 @@ "kls" = ( /obj/structure/surface/table/almayer, /obj/item/storage/surgical_tray, -/turf/open/floor/kutjevo/colors/cyan/inner_corner{ - dir = 1 - }, +/turf/open/floor/kutjevo/colors/cyan/inner_corner/north, /area/kutjevo/interior/complex/med/operating) "klu" = ( /obj/structure/surface/table/almayer, @@ -7558,9 +6922,7 @@ /turf/open/floor/kutjevo/grey/plate, /area/kutjevo/interior/complex/Northwest_Dorms) "klE" = ( -/turf/open/floor/kutjevo/multi_tiles{ - dir = 10 - }, +/turf/open/floor/kutjevo/multi_tiles/southwest, /area/kutjevo/interior/colony_South/power2) "klN" = ( /obj/structure/stairs/perspective/kutjevo{ @@ -7574,9 +6936,7 @@ dir = 1; pixel_y = 10 }, -/turf/open/floor/kutjevo/colors/cyan/edge{ - dir = 1 - }, +/turf/open/floor/kutjevo/colors/cyan/edge/north, /area/kutjevo/interior/complex/med) "kma" = ( /obj/structure/blocker/invisible_wall, @@ -7586,9 +6946,7 @@ /obj/structure/machinery/cm_vending/sorted/medical/wall_med/limited{ pixel_x = -28 }, -/turf/open/floor/kutjevo/colors/purple/edge{ - dir = 8 - }, +/turf/open/floor/kutjevo/colors/purple/edge/west, /area/kutjevo/interior/construction) "kne" = ( /obj/structure/flora/grass/desert/lightgrass_1, @@ -7648,14 +7006,22 @@ /area/kutjevo/interior/complex/med/operating) "kqE" = ( /obj/effect/decal/cleanable/blood/drip, -/turf/open/floor/kutjevo/tan/grey_edge{ - dir = 6 - }, +/turf/open/floor/kutjevo/tan/grey_edge/southeast, /area/kutjevo/interior/complex/Northwest_Dorms) "kqY" = ( /obj/structure/reagent_dispensers/water_cooler, /turf/open/floor/kutjevo/tan/multi_tiles, /area/kutjevo/interior/complex/botany) +"ksb" = ( +/obj/structure/platform/kutjevo/smooth{ + dir = 8 + }, +/obj/structure/machinery/light{ + dir = 8 + }, +/obj/structure/machinery/power/reactor/colony, +/turf/open/floor/kutjevo/colors/orange, +/area/kutjevo/interior/power) "ksl" = ( /obj/effect/landmark/railgun_camera_pos, /turf/open/auto_turf/sand/layer1, @@ -7697,9 +7063,7 @@ /area/kutjevo/exterior/Northwest_Colony) "kuL" = ( /obj/effect/landmark/corpsespawner/wygoon, -/turf/open/floor/kutjevo/colors/purple/edge{ - dir = 1 - }, +/turf/open/floor/kutjevo/colors/purple/edge/north, /area/kutjevo/interior/construction) "kuM" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, @@ -7725,9 +7089,7 @@ /area/kutjevo/interior/complex/med/triage) "kvu" = ( /obj/item/storage/briefcase, -/turf/open/floor/kutjevo/tan/grey_inner_edge{ - dir = 8 - }, +/turf/open/floor/kutjevo/tan/grey_inner_edge/west, /area/kutjevo/interior/complex/med) "kvI" = ( /obj/structure/blocker/forcefield/multitile_vehicles, @@ -7792,9 +7154,7 @@ dir = 1; pixel_y = 20 }, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 4 - }, +/turf/open/floor/kutjevo/multi_tiles/east, /area/kutjevo/interior/complex/botany) "kAf" = ( /obj/structure/surface/table/almayer, @@ -7802,9 +7162,7 @@ dir = 8; network = null }, -/turf/open/floor/kutjevo/tan/alt_inner_edge{ - dir = 8 - }, +/turf/open/floor/kutjevo/tan/alt_inner_edge/west, /area/kutjevo/interior/complex/Northwest_Flight_Control) "kAr" = ( /obj/structure/blocker/forcefield/multitile_vehicles, @@ -7827,15 +7185,13 @@ range = 15 }, /obj/effect/landmark/corpsespawner/wygoon, -/turf/open/floor/kutjevo/tan/grey_edge{ - dir = 1 - }, +/turf/open/floor/kutjevo/tan/grey_edge/north, /area/kutjevo/interior/complex/med) "kBm" = ( /obj/structure/closet/crate, /obj/effect/landmark/objective_landmark/close, /turf/open/floor/almayer/research/containment/floor2, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "kBz" = ( /obj/effect/landmark/monkey_spawn, /turf/open/auto_turf/sand/layer1, @@ -7868,7 +7224,7 @@ anchored = 0 }, /turf/open/floor/kutjevo/tan, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "kDS" = ( /turf/open/floor/kutjevo/tan, /area/kutjevo/interior/complex/botany) @@ -7903,9 +7259,7 @@ /turf/open/auto_turf/sand/layer1, /area/kutjevo/interior/colony_S_East) "kGM" = ( -/turf/open/floor/kutjevo/tan/grey_edge{ - dir = 1 - }, +/turf/open/floor/kutjevo/tan/grey_edge/north, /area/kutjevo/interior/complex/botany/east_tech) "kGU" = ( /turf/closed/wall/kutjevo/colony/reinforced, @@ -7917,9 +7271,7 @@ /obj/structure/surface/rack, /obj/item/stack/sheet/metal/medium_stack, /obj/item/stack/sheet/metal/medium_stack, -/turf/open/floor/kutjevo/colors/orange/inner_corner{ - dir = 8 - }, +/turf/open/floor/kutjevo/colors/orange/inner_corner/west, /area/kutjevo/interior/power_pt2_electric_boogaloo) "kIc" = ( /obj/structure/barricade/deployable{ @@ -7964,9 +7316,7 @@ /turf/open/floor/plating/kutjevo, /area/kutjevo/interior/complex/botany) "kMx" = ( -/turf/open/floor/coagulation{ - icon_state = "7,8-2" - }, +/turf/open/floor/coagulation/icon7_8_2, /area/kutjevo/interior/power/comms) "kMC" = ( /obj/structure/cable/heavyduty{ @@ -7975,9 +7325,7 @@ /turf/open/floor/plating/kutjevo, /area/kutjevo/interior/colony_central) "kMP" = ( -/turf/open/floor/kutjevo/tan/multi_tiles{ - dir = 1 - }, +/turf/open/floor/kutjevo/tan/multi_tiles/north, /area/kutjevo/interior/power/comms) "kNn" = ( /obj/structure/closet/secure_closet/hydroponics, @@ -7985,9 +7333,7 @@ /turf/open/floor/kutjevo/colors/green, /area/kutjevo/interior/complex/botany) "kNq" = ( -/turf/open/gm/river/desert/shallow_edge{ - dir = 10 - }, +/turf/open/gm/river/desert/shallow_edge/southwest, /area/kutjevo/exterior/lz_river) "kNx" = ( /obj/structure/platform/kutjevo{ @@ -8022,17 +7368,10 @@ /area/kutjevo/interior/colony_central/mine_elevator) "kPw" = ( /obj/effect/landmark/nightmare{ - insert_tag = "trappedmonke" + insert_tag = "trappedmonke_andclown" }, /turf/open/floor/kutjevo/tan/multi_tiles, /area/kutjevo/interior/oob) -"kPA" = ( -/obj/structure/stairs/perspective/kutjevo{ - dir = 4; - icon_state = "p_stair_full" - }, -/turf/open/floor/plating/kutjevo, -/area/kutjevo/interior/complex/med/locks) "kPM" = ( /obj/structure/stairs/perspective/kutjevo{ dir = 8; @@ -8058,9 +7397,7 @@ /turf/open/auto_turf/sand/layer1, /area/kutjevo/interior/construction) "kQD" = ( -/turf/open/desert/desert_shore/desert_shore1{ - dir = 8 - }, +/turf/open/desert/desert_shore/desert_shore1/west, /area/kutjevo/exterior/spring) "kQU" = ( /obj/structure/platform/kutjevo{ @@ -8074,24 +7411,18 @@ "kSh" = ( /obj/structure/filingcabinet, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/kutjevo/tan/multi_tiles{ - dir = 1 - }, +/turf/open/floor/kutjevo/tan/multi_tiles/north, /area/kutjevo/interior/complex/botany/east) "kSo" = ( /obj/structure/platform_decoration/kutjevo/rock{ dir = 4 }, /obj/structure/blocker/invisible_wall, -/turf/open/desert/desert_shore/shore_edge1{ - dir = 4 - }, +/turf/open/desert/desert_shore/shore_edge1/east, /area/kutjevo/interior/oob/dev_room) "kSy" = ( /obj/effect/decal/cleanable/blood/xeno, -/turf/open/floor/kutjevo/tan/grey_edge{ - dir = 10 - }, +/turf/open/floor/kutjevo/tan/grey_edge/southwest, /area/kutjevo/interior/complex/Northwest_Dorms) "kSB" = ( /obj/structure/platform/kutjevo{ @@ -8124,7 +7455,7 @@ "kVA" = ( /obj/structure/largecrate/supply/supplies/metal, /turf/open/floor/kutjevo/colors/orange, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "kVH" = ( /obj/structure/flora/grass/desert/lightgrass_11, /turf/open/auto_turf/sand/layer1, @@ -8137,29 +7468,22 @@ /obj/structure/machinery/light, /obj/structure/closet/secure_closet/security, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/kutjevo/colors/orange/edge{ - dir = 4 - }, +/turf/open/floor/kutjevo/colors/orange/edge/east, /area/kutjevo/interior/complex/Northwest_Security_Checkpoint) "kWd" = ( /obj/structure/surface/rack, /obj/item/weapon/gun/revolver/cmb, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/kutjevo/colors/orange/edge{ - dir = 1 - }, +/turf/open/floor/kutjevo/colors/orange/edge/north, /area/kutjevo/interior/complex/Northwest_Security_Checkpoint) +"kWX" = ( +/turf/open/auto_turf/sand/layer2, +/area/kutjevo/exterior/lz_pad) "kYb" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/book/manual/atmospipes, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 10 - }, +/turf/open/floor/kutjevo/multi_tiles/southwest, /area/kutjevo/interior/colony_South/power2) -"kYs" = ( -/obj/structure/window/framed/kutjevo/reinforced/hull, -/turf/open/floor/plating/kutjevo, -/area/kutjevo/interior/complex/med) "kZm" = ( /obj/structure/platform_decoration/kutjevo, /turf/open/gm/river/desert/shallow, @@ -8187,9 +7511,7 @@ /area/kutjevo/interior/colony_N_East) "lac" = ( /obj/item/ammo_magazine/rifle/mar40, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 1 - }, +/turf/open/floor/kutjevo/multi_tiles/north, /area/kutjevo/interior/power/comms) "laf" = ( /obj/structure/platform_decoration/kutjevo/rock{ @@ -8225,9 +7547,7 @@ /area/kutjevo/interior/complex/med) "lcv" = ( /obj/structure/bed/sofa/south/grey/left, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 1 - }, +/turf/open/floor/kutjevo/multi_tiles/north, /area/kutjevo/exterior/runoff_bridge) "lcS" = ( /turf/open/floor/kutjevo/colors, @@ -8253,9 +7573,7 @@ pixel_x = -24; start_charge = 0 }, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 8 - }, +/turf/open/floor/kutjevo/multi_tiles/west, /area/kutjevo/interior/complex/med/locks) "lfm" = ( /obj/item/stack/sheet/wood, @@ -8293,9 +7611,7 @@ dir = 4 }, /obj/item/device/radio, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 10 - }, +/turf/open/floor/kutjevo/multi_tiles/southwest, /area/kutjevo/interior/colony_South/power2) "lhY" = ( /obj/structure/machinery/light{ @@ -8307,9 +7623,7 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 4 - }, +/turf/open/floor/kutjevo/multi_tiles/east, /area/kutjevo/interior/colony_South/power2) "lkC" = ( /turf/open/floor/kutjevo/tan/multi_tiles, @@ -8341,9 +7655,7 @@ "lmK" = ( /obj/structure/flora/bush/ausbushes/reedbush, /obj/structure/blocker/invisible_wall, -/turf/open/desert/desert_shore/desert_shore1{ - dir = 4 - }, +/turf/open/desert/desert_shore/desert_shore1/east, /area/kutjevo/interior/oob/dev_room) "loe" = ( /obj/structure/platform/kutjevo/rock, @@ -8355,15 +7667,11 @@ icon_state = "xgib4" }, /obj/structure/machinery/light/small, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 4 - }, +/turf/open/floor/kutjevo/multi_tiles/east, /area/kutjevo/exterior/runoff_bridge) "lov" = ( /obj/item/ammo_magazine/rifle/mar40/extended, -/turf/open/floor/kutjevo/tan/multi_tiles{ - dir = 1 - }, +/turf/open/floor/kutjevo/tan/multi_tiles/north, /area/kutjevo/interior/power/comms) "loI" = ( /obj/structure/surface/rack, @@ -8389,9 +7697,7 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/kutjevo/colors/cyan/edge{ - dir = 1 - }, +/turf/open/floor/kutjevo/colors/cyan/edge/north, /area/kutjevo/interior/complex/med/triage) "lpJ" = ( /turf/open/desert/desert_shore/shore_corner2, @@ -8410,9 +7716,7 @@ /turf/open/floor/plating/kutjevo, /area/kutjevo/interior/power/comms) "lrx" = ( -/turf/open/desert/desert_shore/desert_shore1{ - dir = 4 - }, +/turf/open/desert/desert_shore/desert_shore1/east, /area/kutjevo/exterior/lz_dunes) "lry" = ( /obj/structure/machinery/light{ @@ -8432,9 +7736,7 @@ /area/kutjevo/exterior/scrubland) "lsy" = ( /obj/item/storage/belt/marine, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 4 - }, +/turf/open/floor/kutjevo/multi_tiles/east, /area/kutjevo/interior/power/comms) "ltv" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, @@ -8448,9 +7750,7 @@ /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/kutjevo/tan/alt_edge{ - dir = 10 - }, +/turf/open/floor/kutjevo/tan/alt_edge/southwest, /area/kutjevo/interior/complex/Northwest_Flight_Control) "lvb" = ( /obj/structure/surface/table/almayer, @@ -8461,9 +7761,7 @@ /turf/open/floor/kutjevo/colors/red/tile, /area/kutjevo/exterior/Northwest_Colony) "lwL" = ( -/turf/open/gm/dirtgrassborder2{ - dir = 4 - }, +/turf/open/gm/dirtgrassborder2/east, /area/kutjevo/exterior/complex_border/med_park) "lxc" = ( /turf/open/auto_turf/sand/layer1, @@ -8492,7 +7790,7 @@ "lxN" = ( /obj/effect/decal/cleanable/blood/xeno, /turf/open/floor/almayer/research/containment/floor2, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "lyD" = ( /obj/structure/stairs/perspective/kutjevo{ dir = 8; @@ -8511,18 +7809,17 @@ /turf/open/floor/kutjevo/tan/multi_tiles, /area/kutjevo/interior/colony_South/power2) "lyJ" = ( -/turf/open/floor/coagulation{ - icon_state = "0,5" - }, +/turf/open/floor/coagulation/icon0_5, /area/kutjevo/exterior/scrubland) "lzb" = ( /obj/structure/platform/kutjevo{ dir = 8 }, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 4 - }, +/turf/open/floor/kutjevo/multi_tiles/east, /area/kutjevo/interior/power/comms) +"lzD" = ( +/turf/open/floor/almayer/research/containment/floor1, +/area/kutjevo/exterior/lz_pad) "lAn" = ( /obj/structure/machinery/light{ dir = 4 @@ -8583,9 +7880,7 @@ /turf/open/floor/kutjevo/colors/purple, /area/kutjevo/interior/complex/med/locks) "lEf" = ( -/turf/open/gm/river/desert/shallow_edge{ - dir = 6 - }, +/turf/open/gm/river/desert/shallow_edge/southeast, /area/kutjevo/exterior/spring) "lEA" = ( /turf/closed/wall/kutjevo/colony/reinforced, @@ -8603,9 +7898,7 @@ icon_state = "solo_tank_empty" }, /obj/structure/blocker/invisible_wall, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 10 - }, +/turf/open/floor/kutjevo/multi_tiles/southwest, /area/kutjevo/interior/colony_South/power2) "lFt" = ( /obj/structure/blocker/invisible_wall, @@ -8637,25 +7930,18 @@ /area/kutjevo/interior/oob) "lIM" = ( /obj/structure/bed/chair/office/light, -/turf/open/floor/kutjevo/colors/orange/edge{ - dir = 1 - }, +/turf/open/floor/kutjevo/colors/orange/edge/north, /area/kutjevo/interior/foremans_office) +"lKk" = ( +/turf/open/auto_turf/sand/layer1, +/area/kutjevo/exterior/lz_pad) "lKR" = ( /obj/structure/platform_decoration/kutjevo, -/turf/open/floor/kutjevo/colors/purple/edge{ - dir = 4 - }, +/turf/open/floor/kutjevo/colors/purple/edge/east, /area/kutjevo/interior/construction) "lKV" = ( -/turf/open/desert/desert_shore/desert_shore1{ - dir = 8 - }, +/turf/open/desert/desert_shore/desert_shore1/west, /area/kutjevo/exterior/runoff_river) -"lLn" = ( -/obj/structure/window/framed/kutjevo/reinforced/hull, -/turf/open/floor/plating/kutjevo, -/area/kutjevo/interior/complex/botany) "lLo" = ( /obj/structure/monorail, /obj/structure/machinery/door/poddoor/shutters/almayer, @@ -8682,9 +7968,7 @@ /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/kutjevo/colors/purple/edge{ - dir = 8 - }, +/turf/open/floor/kutjevo/colors/purple/edge/west, /area/kutjevo/interior/construction) "lMr" = ( /obj/structure/barricade/wooden{ @@ -8715,11 +7999,8 @@ dir = 1 }, /turf/open/floor/kutjevo/multi_tiles, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "lNt" = ( -/obj/structure/platform/kutjevo/smooth{ - dir = 8 - }, /obj/structure/closet/secure_closet/engineering_personal, /obj/item/stack/sheet/metal/medium_stack, /obj/effect/landmark/objective_landmark/far, @@ -8795,18 +8076,14 @@ dir = 1; pixel_y = 13 }, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 6 - }, +/turf/open/floor/kutjevo/multi_tiles/southeast, /area/kutjevo/interior/power) "lVt" = ( /obj/effect/decal/cleanable/blood, /turf/open/floor/kutjevo/tan, /area/kutjevo/interior/complex/Northwest_Flight_Control) "lVO" = ( -/turf/open/gm/river/desert/shallow_edge{ - dir = 6 - }, +/turf/open/gm/river/desert/shallow_edge/southeast, /area/kutjevo/exterior/runoff_dunes) "lVS" = ( /obj/structure/monorail, @@ -8828,9 +8105,7 @@ dir = 4 }, /obj/structure/blocker/invisible_wall, -/turf/open/desert/desert_shore/desert_shore1{ - dir = 1 - }, +/turf/open/desert/desert_shore/desert_shore1/north, /area/kutjevo/interior/oob) "lXN" = ( /turf/open/floor/kutjevo/plate, @@ -8841,9 +8116,7 @@ /area/kutjevo/interior/colony_N_East) "lYI" = ( /obj/structure/blocker/invisible_wall, -/turf/open/gm/river/desert/shallow_corner{ - dir = 1 - }, +/turf/open/gm/river/desert/shallow_corner/north, /area/kutjevo/interior/oob) "lYW" = ( /obj/effect/landmark/survivor_spawner, @@ -8869,11 +8142,9 @@ "mao" = ( /obj/structure/prop/dam/large_boulder/boulder1, /turf/open/auto_turf/sand/layer0, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "mar" = ( -/turf/open/floor/kutjevo/tan/multi_tiles{ - dir = 1 - }, +/turf/open/floor/kutjevo/tan/multi_tiles/north, /area/kutjevo/exterior/Northwest_Colony) "maE" = ( /turf/open/floor/kutjevo/tan/alt_edge, @@ -8881,15 +8152,11 @@ "mbc" = ( /obj/structure/surface/table/almayer, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/kutjevo/tan/alt_edge{ - dir = 1 - }, +/turf/open/floor/kutjevo/tan/alt_edge/north, /area/kutjevo/interior/complex/Northwest_Flight_Control) "mbh" = ( /obj/structure/flora/bush/ausbushes/reedbush, -/turf/open/desert/desert_shore/shore_edge1{ - dir = 1 - }, +/turf/open/desert/desert_shore/shore_edge1/north, /area/kutjevo/exterior/scrubland) "mbp" = ( /obj/structure/barricade/wooden{ @@ -8907,15 +8174,17 @@ /turf/closed/wall/kutjevo/colony, /area/kutjevo/interior/complex/botany) "mct" = ( -/turf/open/gm/river/desert/shallow_corner{ - dir = 8 - }, +/turf/open/gm/river/desert/shallow_corner/west, /area/kutjevo/exterior/spring) "mcv" = ( /obj/structure/window/framed/kutjevo/reinforced/hull, /obj/structure/blocker/invisible_wall, /turf/open/floor/plating/kutjevo, /area/kutjevo/interior/oob) +"mcA" = ( +/obj/structure/machinery/fuelcell_recycler/full, +/turf/open/floor/kutjevo/multi_tiles/southeast, +/area/kutjevo/interior/power) "mcZ" = ( /obj/structure/bed/chair{ pixel_y = 8 @@ -8928,9 +8197,7 @@ /area/kutjevo/exterior/scrubland) "mdr" = ( /obj/structure/machinery/cm_vending/sorted/medical/no_access, -/turf/open/floor/kutjevo/colors/cyan/edge{ - dir = 1 - }, +/turf/open/floor/kutjevo/colors/cyan/edge/north, /area/kutjevo/interior/complex/med/triage) "mdu" = ( /obj/structure/machinery/light/small, @@ -8971,7 +8238,7 @@ "mfk" = ( /obj/structure/largecrate/random/case/double, /turf/open/floor/kutjevo/colors/orange, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "mfD" = ( /obj/structure/prop/dam/truck/mining, /turf/open/auto_turf/sand/layer1, @@ -8981,9 +8248,7 @@ dir = 8 }, /obj/structure/platform/kutjevo, -/turf/open/floor/coagulation{ - icon_state = "0,0" - }, +/turf/open/floor/coagulation/icon0_0, /area/kutjevo/interior/colony_north) "mgn" = ( /turf/open/floor/kutjevo/multi_tiles, @@ -9006,9 +8271,7 @@ }, /obj/structure/closet/secure_closet/engineering_personal, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 6 - }, +/turf/open/floor/kutjevo/multi_tiles/southeast, /area/kutjevo/interior/colony_South/power2) "mhj" = ( /obj/structure/platform/kutjevo/rock{ @@ -9020,9 +8283,7 @@ /turf/open/auto_turf/sand/layer1, /area/kutjevo/exterior/complex_border/botany_medical_cave) "mhJ" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_10" - }, +/turf/open/mars_cave/mars_cave_10, /area/kutjevo/exterior/lz_dunes) "mhN" = ( /obj/structure/flora/grass/tallgrass/desert/corner{ @@ -9044,26 +8305,19 @@ /area/kutjevo/exterior/telecomm/lz2_north) "mjq" = ( /obj/structure/flora/bush/ausbushes/grassybush, -/turf/open/gm/river/desert/shallow_edge{ - dir = 6 - }, +/turf/open/gm/river/desert/shallow_edge/southeast, /area/kutjevo/exterior/runoff_river) "mjN" = ( /obj/item/stack/barbed_wire, /turf/open/asphalt/cement_sunbleached, /area/kutjevo/exterior/Northwest_Colony) "mjP" = ( -/obj/structure/blocker/invisible_wall, -/turf/open/floor/coagulation{ - icon_state = "0,5" - }, -/area/kutjevo/interior/oob) +/turf/open/floor/coagulation/icon0_5, +/area/kutjevo/interior/complex/botany/east_tech) "mjW" = ( /obj/structure/flora/bush/ausbushes/reedbush, -/turf/open/desert/desert_shore/shore_edge1{ - dir = 1 - }, -/area/kutjevo/exterior/Northwest_Colony) +/turf/open/desert/desert_shore/shore_edge1/north, +/area/kutjevo/exterior/lz_pad) "mkJ" = ( /obj/structure/machinery/light, /turf/open/floor/kutjevo/colors/orange, @@ -9080,18 +8334,14 @@ /obj/structure/machinery/computer/cameras{ dir = 4 }, -/turf/open/floor/kutjevo/colors/orange/edge{ - dir = 8 - }, +/turf/open/floor/kutjevo/colors/orange/edge/west, /area/kutjevo/interior/complex/Northwest_Security_Checkpoint) "mmH" = ( /obj/structure/largecrate/random, /turf/open/floor/kutjevo/colors/orange, /area/kutjevo/interior/colony_South/power2) "mnk" = ( -/turf/open/desert/desert_shore/shore_edge1{ - dir = 8 - }, +/turf/open/desert/desert_shore/shore_edge1/west, /area/kutjevo/exterior/lz_dunes) "mnn" = ( /obj/structure/platform/kutjevo{ @@ -9117,9 +8367,7 @@ /turf/open/floor/almayer/research/containment/floor1, /area/kutjevo/exterior/complex_border/med_rec) "mqu" = ( -/turf/open/desert/desert_shore/desert_shore1{ - dir = 1 - }, +/turf/open/desert/desert_shore/desert_shore1/north, /area/kutjevo/exterior/lz_river) "mqG" = ( /turf/open/floor/kutjevo/colors/cyan/inner_corner, @@ -9128,16 +8376,12 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/kutjevo/colors/purple/inner_corner{ - dir = 8 - }, +/turf/open/floor/kutjevo/colors/purple/inner_corner/west, /area/kutjevo/interior/construction) "msF" = ( /obj/structure/surface/rack, /obj/effect/landmark/objective_landmark/far, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 1 - }, +/turf/open/floor/kutjevo/multi_tiles/north, /area/kutjevo/interior/power) "msK" = ( /turf/open/auto_turf/sand/layer1, @@ -9148,9 +8392,7 @@ /area/kutjevo/interior/complex/botany) "mti" = ( /obj/structure/reagent_dispensers/water_cooler, -/turf/open/floor/kutjevo/colors/orange/inner_corner{ - dir = 8 - }, +/turf/open/floor/kutjevo/colors/orange/inner_corner/west, /area/kutjevo/interior/foremans_office) "mtt" = ( /obj/effect/decal/cleanable/blood, @@ -9202,9 +8444,7 @@ "mvM" = ( /obj/structure/closet/emcloset, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 6 - }, +/turf/open/floor/kutjevo/multi_tiles/southeast, /area/kutjevo/interior/complex/med/locks) "mvX" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, @@ -9230,19 +8470,14 @@ /turf/open/floor/kutjevo/tan/multi_tiles, /area/kutjevo/interior/complex/botany/east_tech) "myk" = ( -/turf/open/gm/river/desert/shallow_edge{ - dir = 4 - }, +/turf/open/gm/river/desert/shallow_edge/east, /area/kutjevo/exterior/spring) "mzn" = ( /obj/structure/platform/kutjevo{ dir = 1 }, -/obj/structure/blocker/invisible_wall, -/turf/open/gm/river/desert/deep{ - icon = 'icons/turf/floors/desert_water_toxic.dmi' - }, -/area/kutjevo/interior/oob) +/turf/open/gm/river/desert/deep, +/area/kutjevo/interior/complex/botany/east_tech) "mzS" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/stack/medical/splint, @@ -9253,6 +8488,9 @@ /obj/item/storage/pill_bottle/dexalin/skillless, /turf/open/floor/kutjevo/grey/plate, /area/kutjevo/interior/complex/med) +"mAb" = ( +/turf/open/floor/kutjevo/tan/multi_tiles/north, +/area/kutjevo/exterior/lz_pad) "mAD" = ( /obj/structure/barricade/wooden{ dir = 1; @@ -9287,9 +8525,7 @@ /area/kutjevo/exterior/stonyfields) "mBG" = ( /obj/item/weapon/wirerod, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 10 - }, +/turf/open/floor/kutjevo/multi_tiles/southwest, /area/kutjevo/interior/colony_South/power2) "mBP" = ( /obj/structure/prop/dam/large_boulder/boulder2, @@ -9305,9 +8541,7 @@ /area/kutjevo/interior/complex/med/operating) "mCo" = ( /obj/structure/blocker/invisible_wall, -/turf/open/gm/river/desert/shallow_edge{ - dir = 9 - }, +/turf/open/gm/river/desert/shallow_edge/northwest, /area/kutjevo/interior/oob) "mCI" = ( /obj/structure/prop/dam/crane{ @@ -9354,9 +8588,7 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/kutjevo/colors/purple/edge{ - dir = 1 - }, +/turf/open/floor/kutjevo/colors/purple/edge/north, /area/kutjevo/interior/construction) "mDA" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, @@ -9404,9 +8636,7 @@ /obj/structure/platform/kutjevo{ dir = 8 }, -/turf/open/gm/river/desert/shallow_edge{ - dir = 1 - }, +/turf/open/gm/river/desert/shallow_edge/north, /area/kutjevo/interior/colony_central) "mFf" = ( /obj/structure/flora/grass/tallgrass/desert/corner{ @@ -9444,9 +8674,7 @@ pixel_x = -2; pixel_y = 5 }, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 6 - }, +/turf/open/floor/kutjevo/multi_tiles/southeast, /area/kutjevo/interior/complex/med/locks) "mHo" = ( /obj/structure/platform_decoration/kutjevo{ @@ -9459,7 +8687,7 @@ /area/kutjevo/interior/complex/med) "mIg" = ( /obj/effect/landmark/nightmare{ - insert_tag = "plinkingspot" + insert_tag = "plinkingspot_northlz" }, /turf/closed/wall/kutjevo/rock/border, /area/kutjevo/exterior/scrubland) @@ -9480,9 +8708,7 @@ /turf/open/floor/kutjevo/colors/green/tile, /area/kutjevo/interior/complex/botany/east) "mIA" = ( -/turf/open/gm/river/desert/shallow_edge{ - dir = 4 - }, +/turf/open/gm/river/desert/shallow_edge/east, /area/kutjevo/exterior/scrubland) "mIB" = ( /obj/structure/machinery/door/poddoor/shutters/almayer/open{ @@ -9495,7 +8721,7 @@ "mIT" = ( /obj/structure/machinery/landinglight/ds2/delayone, /turf/open/floor/kutjevo/multi_tiles, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "mJq" = ( /obj/structure/machinery/computer/cameras/telescreen/entertainment{ icon_state = "ai_bsod"; @@ -9527,14 +8753,10 @@ dir = 1 }, /obj/structure/machinery/camera/autoname, -/turf/open/floor/kutjevo/colors/cyan/edge{ - dir = 1 - }, +/turf/open/floor/kutjevo/colors/cyan/edge/north, /area/kutjevo/interior/complex/med/triage) "mLY" = ( -/turf/open/floor/kutjevo/tan/grey_edge{ - dir = 4 - }, +/turf/open/floor/kutjevo/tan/grey_edge/east, /area/kutjevo/interior/complex/Northwest_Dorms) "mMf" = ( /turf/open/auto_turf/sand/layer2, @@ -9542,9 +8764,7 @@ "mMF" = ( /obj/effect/decal/cleanable/blood, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/kutjevo/tan/multi_tiles{ - dir = 8 - }, +/turf/open/floor/kutjevo/tan/multi_tiles/west, /area/kutjevo/interior/colony_South/power2) "mMH" = ( /turf/open/auto_turf/sand/layer0, @@ -9554,14 +8774,10 @@ /area/kutjevo/exterior/telecomm/lz2_north) "mNl" = ( /obj/structure/blocker/invisible_wall, -/turf/open/gm/river{ - color = "#990000" - }, +/turf/open/gm/river/darkred, /area/kutjevo/interior/oob) "mNv" = ( -/turf/open/gm/river/desert/shallow_edge{ - dir = 5 - }, +/turf/open/gm/river/desert/shallow_edge/northeast, /area/kutjevo/exterior/spring) "mNM" = ( /turf/closed/wall/kutjevo/colony, @@ -9582,12 +8798,10 @@ /turf/open/floor/kutjevo/plate, /area/kutjevo/interior/colony_central) "mPt" = ( +/obj/structure/machinery/colony_floodlight, /obj/structure/platform/kutjevo{ dir = 1 }, -/obj/structure/machinery/colony_floodlight{ - pixel_y = 10 - }, /turf/open/auto_turf/sand/layer1, /area/kutjevo/interior/complex/med/triage) "mPL" = ( @@ -9602,9 +8816,7 @@ /turf/open/desert/desert_shore/desert_shore1, /area/kutjevo/exterior/lz_river) "mRP" = ( -/turf/open/floor/kutjevo/colors/purple/inner_corner{ - dir = 8 - }, +/turf/open/floor/kutjevo/colors/purple/inner_corner/west, /area/kutjevo/interior/construction) "mSd" = ( /obj/structure/platform_decoration/kutjevo{ @@ -9621,9 +8833,7 @@ /turf/open/floor/kutjevo/plate, /area/kutjevo/interior/colony_central) "mSv" = ( -/turf/open/floor/kutjevo/tan/grey_inner_edge{ - dir = 4 - }, +/turf/open/floor/kutjevo/tan/grey_inner_edge/east, /area/kutjevo/interior/complex/med/auto_doc) "mSG" = ( /obj/structure/flora/grass/tallgrass/desert, @@ -9644,9 +8854,7 @@ /turf/open/asphalt/cement_sunbleached, /area/kutjevo/exterior/scrubland) "mVr" = ( -/turf/open/gm/river/desert/shallow_corner{ - dir = 8 - }, +/turf/open/gm/river/desert/shallow_corner/west, /area/kutjevo/exterior/lz_river) "mVC" = ( /obj/structure/platform_decoration/kutjevo{ @@ -9659,9 +8867,7 @@ /area/kutjevo/interior/complex/med/cells) "mWA" = ( /obj/structure/machinery/autolathe/full, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 10 - }, +/turf/open/floor/kutjevo/multi_tiles/southwest, /area/kutjevo/interior/colony_South/power2) "mWO" = ( /obj/structure/platform_decoration/kutjevo, @@ -9674,9 +8880,7 @@ /turf/open/auto_turf/sand/layer1, /area/kutjevo/exterior/runoff_dunes) "mYj" = ( -/turf/open/floor/coagulation{ - icon_state = "0,8" - }, +/turf/open/floor/coagulation/icon0_8, /area/kutjevo/exterior/scrubland) "mYt" = ( /obj/effect/decal/cleanable/blood/oil, @@ -9695,9 +8899,7 @@ /turf/open/auto_turf/sand/layer0, /area/kutjevo/exterior/runoff_dunes) "mZE" = ( -/turf/open/floor/kutjevo/multi_tiles{ - dir = 1 - }, +/turf/open/floor/kutjevo/multi_tiles/north, /area/kutjevo/interior/power/comms) "nah" = ( /obj/structure/flora/grass/tallgrass/desert/corner{ @@ -9732,9 +8934,7 @@ /turf/open/auto_turf/sand/layer1, /area/kutjevo/interior/colony_South) "nct" = ( -/turf/open/gm/river/desert/shallow_edge{ - dir = 5 - }, +/turf/open/gm/river/desert/shallow_edge/northeast, /area/kutjevo/exterior/runoff_river) "ndw" = ( /obj/structure/stairs/perspective/kutjevo{ @@ -9746,9 +8946,7 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/kutjevo/colors/orange/edge{ - dir = 4 - }, +/turf/open/floor/kutjevo/colors/orange/edge/east, /area/kutjevo/interior/power_pt2_electric_boogaloo) "neI" = ( /obj/structure/machinery/light, @@ -9759,9 +8957,7 @@ pixel_y = 28 }, /obj/structure/machinery/iv_drip, -/turf/open/floor/kutjevo/colors/cyan/edge{ - dir = 1 - }, +/turf/open/floor/kutjevo/colors/cyan/edge/north, /area/kutjevo/interior/complex/med/triage) "ngp" = ( /obj/structure/platform_decoration/kutjevo{ @@ -9770,9 +8966,7 @@ /turf/open/auto_turf/sand/layer0, /area/kutjevo/exterior/scrubland) "ngK" = ( -/turf/open/floor/kutjevo/multi_tiles{ - dir = 1 - }, +/turf/open/floor/kutjevo/multi_tiles/north, /area/kutjevo/interior/colony_South/power2) "ngX" = ( /obj/structure/stairs/perspective/kutjevo{ @@ -9790,9 +8984,6 @@ }, /turf/open/floor/kutjevo/colors, /area/kutjevo/interior/complex/botany) -"nie" = ( -/turf/closed/wall/kutjevo/colony/reinforced/hull, -/area/kutjevo/interior/complex/botany/east) "niC" = ( /obj/structure/flora/bush/ausbushes/reedbush, /turf/open/desert/desert_shore/shore_corner2, @@ -9829,22 +9020,13 @@ /obj/structure/machinery/camera/autoname{ dir = 1 }, -/turf/open/gm/dirtgrassborder2{ - dir = 8 - }, +/turf/open/gm/dirtgrassborder2/west, /area/kutjevo/exterior/complex_border/med_park) -"nlc" = ( -/obj/structure/blocker/invisible_wall, -/obj/structure/window/framed/kutjevo/reinforced/hull, -/turf/open/floor/plating/kutjevo, -/area/kutjevo/interior/oob) "nlv" = ( /turf/open/auto_turf/sand/layer2, /area/kutjevo/interior/colony_central) "nlA" = ( -/turf/open/floor/kutjevo/tan/alt_edge{ - dir = 1 - }, +/turf/open/floor/kutjevo/tan/alt_edge/north, /area/kutjevo/exterior/construction) "nlT" = ( /obj/structure/platform/kutjevo, @@ -9853,9 +9035,7 @@ "nmw" = ( /obj/structure/surface/table/almayer, /obj/item/paper/janitor, -/turf/open/floor/kutjevo/tan/alt_edge{ - dir = 1 - }, +/turf/open/floor/kutjevo/tan/alt_edge/north, /area/kutjevo/interior/complex/Northwest_Flight_Control) "nmK" = ( /obj/structure/bed/chair/comfy{ @@ -9871,9 +9051,7 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/kutjevo/colors/orange/edge{ - dir = 8 - }, +/turf/open/floor/kutjevo/colors/orange/edge/west, /area/kutjevo/interior/power_pt2_electric_boogaloo) "nnx" = ( /obj/structure/stairs/perspective/kutjevo{ @@ -9884,9 +9062,7 @@ /area/kutjevo/exterior/construction) "nnz" = ( /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/kutjevo/colors/orange/edge{ - dir = 8 - }, +/turf/open/floor/kutjevo/colors/orange/edge/west, /area/kutjevo/interior/foremans_office) "nps" = ( /obj/effect/decal/cleanable/blood, @@ -9895,9 +9071,7 @@ "npx" = ( /obj/structure/surface/rack, /obj/item/stack/sheet/metal/large_stack, -/turf/open/floor/kutjevo/colors/orange/edge{ - dir = 1 - }, +/turf/open/floor/kutjevo/colors/orange/edge/north, /area/kutjevo/interior/complex/Northwest_Security_Checkpoint) "npB" = ( /obj/structure/machinery/light, @@ -9936,12 +9110,10 @@ /area/kutjevo/exterior/complex_border/med_rec) "nsC" = ( /obj/structure/extinguisher_cabinet, -/turf/closed/wall/kutjevo/colony/reinforced/hull, +/turf/closed/wall/kutjevo/colony, /area/kutjevo/interior/complex/botany/east) "nsF" = ( -/turf/open/floor/kutjevo/multi_tiles{ - dir = 6 - }, +/turf/open/floor/kutjevo/multi_tiles/southeast, /area/kutjevo/interior/complex/med/locks) "nsU" = ( /obj/structure/machinery/light{ @@ -9994,6 +9166,12 @@ }, /turf/open/floor/almayer/research/containment/floor2, /area/kutjevo/interior/complex/botany) +"nvi" = ( +/obj/structure/flora/grass/tallgrass/desert/corner{ + dir = 9 + }, +/turf/open/auto_turf/sand/layer0, +/area/kutjevo/exterior/lz_pad) "nvG" = ( /obj/effect/landmark/objective_landmark/close, /turf/open/floor/kutjevo/colors/red, @@ -10015,9 +9193,7 @@ start_charge = 0 }, /obj/item/clothing/suit/armor/vest/security, -/turf/open/floor/kutjevo/colors/cyan/edge{ - dir = 1 - }, +/turf/open/floor/kutjevo/colors/cyan/edge/north, /area/kutjevo/interior/complex/med/operating) "nyv" = ( /obj/structure/platform_decoration/kutjevo/rock{ @@ -10051,9 +9227,7 @@ /turf/open/floor/plating/kutjevo, /area/kutjevo/interior/complex/botany) "nzQ" = ( -/turf/open/floor/coagulation{ - icon_state = "8,8" - }, +/turf/open/floor/coagulation/icon8_8, /area/kutjevo/exterior/scrubland) "nAc" = ( /turf/open/auto_turf/sand/layer2, @@ -10107,9 +9281,7 @@ /obj/item/bedsheet/brown{ pixel_y = 13 }, -/turf/open/floor/kutjevo/tan/grey_edge{ - dir = 5 - }, +/turf/open/floor/kutjevo/tan/grey_edge/northeast, /area/kutjevo/interior/complex/Northwest_Dorms) "nDH" = ( /obj/structure/pipes/standard/simple/visible{ @@ -10127,16 +9299,6 @@ }, /turf/open/asphalt/cement_sunbleached, /area/kutjevo/exterior/scrubland) -"nEE" = ( -/obj/item/fuelCell, -/obj/structure/surface/rack, -/obj/structure/platform/kutjevo/smooth{ - dir = 1 - }, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 8 - }, -/area/kutjevo/interior/colony_South/power2) "nFM" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony/autoname{ dir = 1; @@ -10185,9 +9347,7 @@ /obj/structure/platform/kutjevo{ dir = 8 }, -/turf/open/gm/river{ - color = "#990000" - }, +/turf/open/gm/river/darkred, /area/kutjevo/interior/oob) "nHV" = ( /obj/structure/surface/rack, @@ -10224,9 +9384,7 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/kutjevo/colors/orange/edge{ - dir = 8 - }, +/turf/open/floor/kutjevo/colors/orange/edge/west, /area/kutjevo/interior/complex/Northwest_Security_Checkpoint) "nJC" = ( /turf/open/floor/kutjevo/colors/orange, @@ -10253,9 +9411,7 @@ /turf/open/auto_turf/sand/layer0, /area/kutjevo/interior/colony_South) "nLc" = ( -/turf/open/floor/kutjevo/multi_tiles{ - dir = 10 - }, +/turf/open/floor/kutjevo/multi_tiles/southwest, /area/kutjevo/interior/complex/botany) "nLg" = ( /obj/structure/cable/heavyduty{ @@ -10299,9 +9455,7 @@ /turf/open/floor/kutjevo/grey/plate, /area/kutjevo/interior/complex/Northwest_Dorms) "nLT" = ( -/turf/open/desert/desert_shore/shore_corner2{ - dir = 4 - }, +/turf/open/desert/desert_shore/shore_corner2/east, /area/kutjevo/exterior/lz_river) "nMz" = ( /obj/structure/reagent_dispensers/fueltank, @@ -10347,18 +9501,14 @@ /turf/open/auto_turf/sand/layer1, /area/kutjevo/interior/oob/dev_room) "nPA" = ( -/turf/open/floor/kutjevo/tan/grey_edge{ - dir = 4 - }, +/turf/open/floor/kutjevo/tan/grey_edge/east, /area/kutjevo/interior/colony_central) "nPO" = ( /obj/structure/machinery/iv_drip, /turf/open/floor/kutjevo/colors/cyan, /area/kutjevo/interior/complex/med/triage) "nPX" = ( -/turf/open/gm/river/desert/shallow_edge{ - dir = 9 - }, +/turf/open/gm/river/desert/shallow_edge/northwest, /area/kutjevo/exterior/spring) "nQc" = ( /obj/structure/platform_decoration/kutjevo/rock, @@ -10368,9 +9518,7 @@ /turf/open/auto_turf/sand/layer0, /area/kutjevo/interior/colony_north) "nQo" = ( -/turf/open/gm/river/desert/shallow_edge{ - dir = 8 - }, +/turf/open/gm/river/desert/shallow_edge/west, /area/kutjevo/exterior/lz_river) "nQr" = ( /obj/item/ammo_magazine/rifle/mar40, @@ -10380,9 +9528,7 @@ /obj/structure/platform/kutjevo{ dir = 1 }, -/turf/open/floor/coagulation{ - icon_state = "7,8-2" - }, +/turf/open/floor/coagulation/icon7_8_2, /area/kutjevo/interior/construction) "nRd" = ( /obj/item/tool/wrench, @@ -10433,9 +9579,7 @@ /area/kutjevo/interior/complex/Northwest_Security_Checkpoint) "nVH" = ( /obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 10 - }, +/turf/open/floor/kutjevo/multi_tiles/southwest, /area/kutjevo/interior/colony_South/power2) "nWo" = ( /obj/structure/platform/kutjevo{ @@ -10444,9 +9588,7 @@ /obj/structure/platform/kutjevo{ dir = 8 }, -/turf/open/desert/desert_shore/desert_shore1{ - dir = 4 - }, +/turf/open/desert/desert_shore/desert_shore1/east, /area/kutjevo/exterior/scrubland) "nWu" = ( /obj/structure/barricade/wooden{ @@ -10490,9 +9632,7 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 4 - }, +/turf/open/floor/kutjevo/multi_tiles/east, /area/kutjevo/interior/power) "nZw" = ( /obj/effect/decal/cleanable/blood/splatter, @@ -10530,9 +9670,7 @@ "oca" = ( /obj/structure/surface/table/almayer, /obj/item/device/flashlight/lamp, -/turf/open/floor/kutjevo/colors/orange/edge{ - dir = 1 - }, +/turf/open/floor/kutjevo/colors/orange/edge/north, /area/kutjevo/interior/complex/Northwest_Security_Checkpoint) "ocd" = ( /obj/structure/stairs/perspective/kutjevo{ @@ -10546,26 +9684,20 @@ /turf/open/floor/plating/kutjevo, /area/kutjevo/interior/colony_South/power2) "oce" = ( -/turf/open/gm/river/desert/shallow_edge{ - dir = 1 - }, +/turf/open/gm/river/desert/shallow_edge/north, /area/kutjevo/exterior/runoff_river) "ocn" = ( /obj/structure/machinery/light, /turf/open/asphalt/cement_sunbleached, /area/kutjevo/exterior/scrubland) "oeb" = ( -/turf/open/floor/kutjevo/multi_tiles{ - dir = 1 - }, +/turf/open/floor/kutjevo/multi_tiles/north, /area/kutjevo/exterior/runoff_bridge) "oex" = ( /turf/open/auto_turf/sand/layer1, /area/kutjevo/interior/complex/med/auto_doc) "oeE" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_11" - }, +/turf/open/mars_cave/mars_cave_11, /area/kutjevo/exterior/scrubland) "ofn" = ( /obj/structure/flora/grass/desert/lightgrass_6, @@ -10593,19 +9725,13 @@ }, /obj/item/clipboard, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 4 - }, +/turf/open/floor/kutjevo/multi_tiles/east, /area/kutjevo/interior/colony_South/power2) "ogo" = ( -/turf/open/floor/kutjevo/colors/cyan/edge{ - dir = 1 - }, +/turf/open/floor/kutjevo/colors/cyan/edge/north, /area/kutjevo/interior/complex/med/operating) "ogG" = ( -/turf/open/floor/kutjevo/multi_tiles{ - dir = 8 - }, +/turf/open/floor/kutjevo/multi_tiles/west, /area/kutjevo/interior/complex/med/operating) "oii" = ( /obj/structure/stairs/perspective/kutjevo{ @@ -10699,9 +9825,7 @@ /turf/open/floor/kutjevo/tan/multi_tiles, /area/kutjevo/interior/power/comms) "onC" = ( -/turf/open/floor/kutjevo/tan/alt_edge{ - dir = 9 - }, +/turf/open/floor/kutjevo/tan/alt_edge/northwest, /area/kutjevo/interior/complex/Northwest_Flight_Control) "onP" = ( /obj/structure/bed/chair{ @@ -10727,9 +9851,7 @@ /turf/open/floor/kutjevo/colors, /area/kutjevo/interior/complex/botany) "oqg" = ( -/turf/open/desert/desert_shore/shore_edge1{ - dir = 4 - }, +/turf/open/desert/desert_shore/shore_edge1/east, /area/kutjevo/exterior/lz_river) "oqw" = ( /obj/item/tool/pickaxe, @@ -10767,9 +9889,7 @@ /obj/structure/platform/kutjevo{ dir = 8 }, -/obj/structure/machinery/colony_floodlight{ - pixel_y = 10 - }, +/obj/structure/machinery/colony_floodlight, /turf/open/auto_turf/sand/layer1, /area/kutjevo/interior/complex/med) "oum" = ( @@ -10779,7 +9899,7 @@ "oun" = ( /obj/structure/barricade/wooden, /turf/open/floor/almayer/research/containment/floor2, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "ouR" = ( /obj/structure/blocker/invisible_wall, /obj/structure/xenoautopsy/tank/larva, @@ -10832,9 +9952,7 @@ dir = 1 }, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/kutjevo/tan/alt_edge{ - dir = 1 - }, +/turf/open/floor/kutjevo/tan/alt_edge/north, /area/kutjevo/interior/complex/Northwest_Flight_Control) "oxT" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, @@ -10843,17 +9961,13 @@ /area/kutjevo/interior/colony_S_East) "ozl" = ( /obj/structure/platform/kutjevo, -/turf/open/gm/river/desert/shallow_edge{ - dir = 10 - }, +/turf/open/gm/river/desert/shallow_edge/southwest, /area/kutjevo/exterior/lz_river) "ozq" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/surface/rack, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 1 - }, +/turf/open/floor/kutjevo/multi_tiles/north, /area/kutjevo/interior/power/comms) "ozs" = ( /obj/structure/platform/kutjevo{ @@ -10908,23 +10022,17 @@ /area/kutjevo/exterior/Northwest_Colony) "oFs" = ( /obj/structure/blocker/invisible_wall, -/turf/open/desert/desert_shore/shore_edge1{ - dir = 8 - }, +/turf/open/desert/desert_shore/shore_edge1/west, /area/kutjevo/interior/oob/dev_room) "oFz" = ( /obj/structure/filingcabinet, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/kutjevo/tan/multi_tiles{ - dir = 1 - }, +/turf/open/floor/kutjevo/tan/multi_tiles/north, /area/kutjevo/interior/complex/botany/east) "oFX" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/cameras, -/turf/open/floor/kutjevo/colors/orange/edge{ - dir = 1 - }, +/turf/open/floor/kutjevo/colors/orange/edge/north, /area/kutjevo/interior/complex/Northwest_Security_Checkpoint) "oGw" = ( /obj/structure/platform/kutjevo/smooth, @@ -10933,9 +10041,7 @@ /area/kutjevo/interior/colony_South/power2) "oGC" = ( /obj/structure/platform/kutjevo/smooth, -/turf/open/desert/desert_shore/desert_shore1{ - dir = 8 - }, +/turf/open/desert/desert_shore/desert_shore1/west, /area/kutjevo/exterior/runoff_river) "oIb" = ( /obj/structure/stairs/perspective/kutjevo{ @@ -10960,9 +10066,7 @@ "oIV" = ( /obj/structure/surface/rack, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 1 - }, +/turf/open/floor/kutjevo/multi_tiles/north, /area/kutjevo/interior/power/comms) "oJj" = ( /obj/structure/surface/table/almayer, @@ -10972,7 +10076,7 @@ /area/kutjevo/interior/complex/botany/east_tech) "oJE" = ( /turf/open/floor/kutjevo/tan/alt_edge, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "oJV" = ( /obj/structure/machinery/light{ dir = 1 @@ -10981,7 +10085,7 @@ /area/kutjevo/exterior/scrubland) "oKx" = ( /turf/closed/wall/kutjevo/rock, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "oKA" = ( /obj/item/storage/toolbox/electrical, /turf/open/floor/kutjevo/colors/orange, @@ -11008,13 +10112,15 @@ /area/kutjevo/interior/colony_South/power2) "oMW" = ( /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/kutjevo/colors/purple/edge{ - dir = 5 - }, +/turf/open/floor/kutjevo/colors/purple/edge/northeast, /area/kutjevo/interior/construction) "oMZ" = ( /turf/closed/wall/kutjevo/colony, /area/kutjevo/interior/foremans_office) +"oNE" = ( +/obj/structure/flora/grass/tallgrass/desert, +/turf/open/auto_turf/sand/layer0, +/area/kutjevo/exterior/lz_pad) "oNG" = ( /turf/closed/wall/kutjevo/rock, /area/kutjevo/exterior/construction) @@ -11027,14 +10133,10 @@ /turf/open/floor/kutjevo/tan, /area/kutjevo/interior/complex/med/cells) "oOd" = ( -/turf/open/floor/kutjevo/tan/alt_edge{ - dir = 5 - }, +/turf/open/floor/kutjevo/tan/alt_edge/northeast, /area/kutjevo/interior/complex/Northwest_Flight_Control) "oOl" = ( -/turf/open/floor/kutjevo/tan/multi_tiles{ - dir = 4 - }, +/turf/open/floor/kutjevo/tan/multi_tiles/east, /area/kutjevo/interior/complex/botany/east) "oOs" = ( /obj/structure/machinery/light/small{ @@ -11049,9 +10151,7 @@ /area/kutjevo/interior/colony_N_East) "oOO" = ( /obj/structure/platform/kutjevo, -/turf/open/gm/river/desert/shallow_corner{ - dir = 8 - }, +/turf/open/gm/river/desert/shallow_corner/west, /area/kutjevo/exterior/lz_river) "oPb" = ( /obj/structure/blocker/invisible_wall, @@ -11075,9 +10175,7 @@ /turf/open/floor/kutjevo/tan, /area/kutjevo/interior/complex/botany) "oQL" = ( -/turf/open/floor/kutjevo/tan/grey_edge{ - dir = 4 - }, +/turf/open/floor/kutjevo/tan/grey_edge/east, /area/kutjevo/interior/construction) "oQQ" = ( /obj/structure/window/framed/kutjevo/reinforced, @@ -11093,34 +10191,20 @@ /turf/open/auto_turf/sand/layer0, /area/kutjevo/exterior/scrubland) "oRE" = ( -/turf/open/floor/kutjevo/tan/grey_edge{ - dir = 8 - }, +/turf/open/floor/kutjevo/tan/grey_edge/west, /area/kutjevo/interior/complex/med/auto_doc) "oRM" = ( /obj/structure/machinery/cm_vending/sorted/tech/comp_storage, /obj/structure/platform/kutjevo/smooth{ dir = 1 }, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 6 - }, +/turf/open/floor/kutjevo/multi_tiles/southeast, /area/kutjevo/interior/colony_South/power2) "oRZ" = ( /obj/structure/machinery/autodoc_console, /obj/structure/machinery/light, -/turf/open/floor/kutjevo/colors/cyan/inner_corner{ - dir = 8 - }, +/turf/open/floor/kutjevo/colors/cyan/inner_corner/west, /area/kutjevo/interior/complex/med/auto_doc) -"oSx" = ( -/obj/structure/barricade/handrail/kutjevo{ - layer = 3.1 - }, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 4 - }, -/area/kutjevo/interior/colony_South/power2) "oSK" = ( /obj/structure/machinery/vending/snack, /turf/open/floor/kutjevo/tan/grey_edge, @@ -11163,9 +10247,7 @@ /obj/structure/platform/kutjevo/smooth{ dir = 8 }, -/turf/open/floor/kutjevo/colors/cyan/inner_corner{ - dir = 4 - }, +/turf/open/floor/kutjevo/colors/cyan/inner_corner/east, /area/kutjevo/interior/complex/med/operating) "oXb" = ( /obj/structure/stairs/perspective/kutjevo{ @@ -11207,14 +10289,10 @@ /area/kutjevo/exterior/runoff_river) "pbP" = ( /obj/structure/machinery/light, -/turf/open/floor/kutjevo/tan/alt_inner_edge{ - dir = 8 - }, +/turf/open/floor/kutjevo/tan/alt_inner_edge/west, /area/kutjevo/interior/complex/Northwest_Flight_Control) "pbR" = ( -/turf/open/floor/kutjevo/multi_tiles{ - dir = 6 - }, +/turf/open/floor/kutjevo/multi_tiles/southeast, /area/kutjevo/interior/colony_South/power2) "pbY" = ( /turf/closed/wall/kutjevo/colony/reinforced/hull, @@ -11237,9 +10315,7 @@ pixel_y = 6 }, /obj/structure/platform_decoration/kutjevo, -/turf/open/desert/desert_shore/desert_shore1{ - dir = 1 - }, +/turf/open/desert/desert_shore/desert_shore1/north, /area/kutjevo/exterior/runoff_river) "pfe" = ( /obj/effect/decal/cleanable/blood/drip, @@ -11250,9 +10326,7 @@ dir = 1; pixel_y = 20 }, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 1 - }, +/turf/open/floor/kutjevo/multi_tiles/north, /area/kutjevo/exterior/runoff_bridge) "pfq" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, @@ -11266,9 +10340,7 @@ /obj/structure/platform/kutjevo{ dir = 8 }, -/turf/open/floor/coagulation{ - icon_state = "0,5" - }, +/turf/open/floor/coagulation/icon0_5, /area/kutjevo/interior/construction) "pfK" = ( /obj/structure/barricade/wooden{ @@ -11311,18 +10383,14 @@ dir = 8; pixel_y = 8 }, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 1 - }, +/turf/open/floor/kutjevo/multi_tiles/north, /area/kutjevo/exterior/runoff_bridge) "pih" = ( /obj/structure/window/framed/kutjevo, /turf/open/floor/kutjevo/multi_tiles, /area/kutjevo/interior/construction) "pio" = ( -/turf/open/floor/kutjevo/tan/alt_inner_edge{ - dir = 8 - }, +/turf/open/floor/kutjevo/tan/alt_inner_edge/west, /area/kutjevo/interior/complex/Northwest_Flight_Control) "piq" = ( /obj/structure/platform/kutjevo/rock, @@ -11348,24 +10416,18 @@ /area/kutjevo/interior/complex/botany/east) "pjH" = ( /obj/structure/flora/bush/ausbushes/reedbush, -/turf/open/gm/river/desert/shallow_edge{ - dir = 4 - }, +/turf/open/gm/river/desert/shallow_edge/east, /area/kutjevo/exterior/lz_river) "pkg" = ( /obj/structure/platform/kutjevo{ dir = 4 }, /obj/structure/platform/kutjevo, -/turf/open/floor/coagulation{ - icon_state = "8,0" - }, +/turf/open/floor/coagulation/icon8_0, /area/kutjevo/interior/construction) "pks" = ( /obj/structure/blocker/invisible_wall, -/turf/open/floor/coagulation{ - icon_state = "8,6" - }, +/turf/open/floor/coagulation/icon8_6, /area/kutjevo/interior/oob) "pkP" = ( /turf/closed/wall/kutjevo/colony, @@ -11381,18 +10443,14 @@ /turf/open/floor/almayer/research/containment/floor2, /area/kutjevo/exterior/runoff_bridge) "plQ" = ( -/turf/open/floor/kutjevo/multi_tiles{ - dir = 6 - }, +/turf/open/floor/kutjevo/multi_tiles/southeast, /area/kutjevo/interior/complex/botany/east) "pma" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic/autoname, /turf/open/floor/kutjevo/grey/plate, /area/kutjevo/interior/complex/Northwest_Dorms) "pmo" = ( -/turf/open/floor/kutjevo/tan/alt_edge{ - dir = 10 - }, +/turf/open/floor/kutjevo/tan/alt_edge/southwest, /area/kutjevo/interior/complex/Northwest_Flight_Control) "pmu" = ( /obj/structure/stairs/perspective/kutjevo{ @@ -11408,9 +10466,7 @@ pixel_x = -6; pixel_y = 10 }, -/turf/open/gm/river/desert/shallow_edge{ - dir = 6 - }, +/turf/open/gm/river/desert/shallow_edge/southeast, /area/kutjevo/exterior/spring) "pmR" = ( /obj/structure/largecrate/supply/supplies/flares, @@ -11420,9 +10476,7 @@ /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 10 - }, +/turf/open/floor/kutjevo/multi_tiles/southwest, /area/kutjevo/interior/colony_South/power2) "pnM" = ( /obj/item/storage/belt/shotgun, @@ -11454,14 +10508,10 @@ /turf/open/floor/kutjevo/plate, /area/kutjevo/interior/construction) "ppn" = ( -/turf/open/desert/desert_shore/desert_shore1{ - dir = 1 - }, +/turf/open/desert/desert_shore/desert_shore1/north, /area/kutjevo/exterior/runoff_bridge) "ppB" = ( -/turf/open/floor/kutjevo/colors/orange/edge{ - dir = 4 - }, +/turf/open/floor/kutjevo/colors/orange/edge/east, /area/kutjevo/interior/power_pt2_electric_boogaloo) "ppM" = ( /obj/structure/blocker/invisible_wall, @@ -11471,9 +10521,7 @@ /turf/open/floor/plating/kutjevo, /area/shuttle/drop2/kutjevo) "pqs" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_23" - }, +/turf/open/mars_cave/mars_cave_23, /area/kutjevo/exterior/scrubland) "prv" = ( /obj/structure/blocker/invisible_wall, @@ -11483,9 +10531,7 @@ /obj/structure/platform/kutjevo{ dir = 4 }, -/turf/open/gm/river/desert/deep{ - icon = 'icons/turf/floors/desert_water_toxic.dmi' - }, +/turf/open/gm/river/desert/deep/toxic, /area/kutjevo/interior/power) "prJ" = ( /turf/open/auto_turf/sand/layer0, @@ -11565,16 +10611,8 @@ /turf/open/floor/kutjevo/multi_tiles, /area/kutjevo/interior/construction) "pxb" = ( -/turf/open/floor/kutjevo/colors/orange/edge{ - dir = 6 - }, +/turf/open/floor/kutjevo/colors/orange/edge/southeast, /area/kutjevo/interior/power_pt2_electric_boogaloo) -"pxl" = ( -/obj/structure/platform_decoration/kutjevo{ - dir = 1 - }, -/turf/open/floor/kutjevo/colors/orange, -/area/kutjevo/interior/complex/med/locks) "pxB" = ( /obj/structure/platform/kutjevo/rock{ dir = 1 @@ -11604,9 +10642,7 @@ /obj/structure/barricade/wooden{ dir = 4 }, -/turf/open/floor/kutjevo/tan/alt_edge{ - dir = 4 - }, +/turf/open/floor/kutjevo/tan/alt_edge/east, /area/kutjevo/interior/complex/Northwest_Flight_Control) "pzG" = ( /obj/structure/sign/safety/medical{ @@ -11619,9 +10655,7 @@ /turf/open/floor/almayer/research/containment/floor2, /area/kutjevo/interior/complex/med/auto_doc) "pzH" = ( -/turf/open/floor/kutjevo/multi_tiles{ - dir = 4 - }, +/turf/open/floor/kutjevo/multi_tiles/east, /area/kutjevo/interior/complex/med) "pzL" = ( /obj/structure/bed/chair, @@ -11631,9 +10665,7 @@ /obj/structure/platform/kutjevo/smooth{ dir = 1 }, -/turf/open/desert/desert_shore/desert_shore1{ - dir = 8 - }, +/turf/open/desert/desert_shore/desert_shore1/west, /area/kutjevo/exterior/runoff_river) "pBi" = ( /obj/structure/platform/kutjevo, @@ -11655,9 +10687,7 @@ /area/kutjevo/exterior/runoff_dunes) "pCJ" = ( /obj/structure/machinery/vending/snack, -/turf/open/floor/kutjevo/colors/purple/inner_corner{ - dir = 1 - }, +/turf/open/floor/kutjevo/colors/purple/inner_corner/north, /area/kutjevo/interior/construction) "pCS" = ( /turf/open/asphalt/cement_sunbleached, @@ -11667,9 +10697,7 @@ /turf/open/auto_turf/sand/layer0, /area/kutjevo/exterior/runoff_dunes) "pDk" = ( -/turf/open/floor/kutjevo/tan/grey_inner_edge{ - dir = 1 - }, +/turf/open/floor/kutjevo/tan/grey_inner_edge/north, /area/kutjevo/interior/construction) "pDs" = ( /obj/effect/decal/cleanable/blood, @@ -11686,9 +10714,7 @@ /turf/open/floor/kutjevo/colors/orange/tile, /area/kutjevo/interior/complex/Northwest_Security_Checkpoint) "pEg" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_5" - }, +/turf/open/mars_cave/mars_cave_5, /area/kutjevo/exterior/scrubland) "pEt" = ( /obj/structure/platform_decoration/kutjevo{ @@ -11726,9 +10752,7 @@ /area/kutjevo/interior/complex/med/auto_doc) "pGO" = ( /obj/item/storage/briefcase, -/turf/open/floor/kutjevo/colors/cyan/inner_corner{ - dir = 1 - }, +/turf/open/floor/kutjevo/colors/cyan/inner_corner/north, /area/kutjevo/interior/complex/med/auto_doc) "pGY" = ( /obj/effect/decal/medical_decals{ @@ -11740,9 +10764,7 @@ /obj/structure/barricade/wooden{ dir = 4 }, -/turf/open/floor/kutjevo/colors/orange/edge{ - dir = 4 - }, +/turf/open/floor/kutjevo/colors/orange/edge/east, /area/kutjevo/interior/complex/Northwest_Security_Checkpoint) "pHv" = ( /obj/effect/landmark/objective_landmark/medium, @@ -11772,15 +10794,11 @@ icon_state = "pottedplant_30"; pixel_y = 9 }, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 8 - }, +/turf/open/floor/kutjevo/multi_tiles/west, /area/kutjevo/interior/complex/med/locks) "pIK" = ( /obj/item/prop/helmetgarb/spent_buckshot, -/turf/open/floor/kutjevo/tan/multi_tiles{ - dir = 1 - }, +/turf/open/floor/kutjevo/tan/multi_tiles/north, /area/kutjevo/exterior/runoff_bridge) "pJa" = ( /obj/structure/machinery/light{ @@ -11828,9 +10846,7 @@ /area/kutjevo/exterior/complex_border/botany_medical_cave) "pLN" = ( /obj/structure/surface/table/almayer, -/turf/open/floor/kutjevo/tan/alt_inner_edge{ - dir = 1 - }, +/turf/open/floor/kutjevo/tan/alt_inner_edge/north, /area/kutjevo/interior/complex/Northwest_Flight_Control) "pLS" = ( /obj/effect/landmark/corpsespawner/wygoon, @@ -11841,9 +10857,7 @@ /area/kutjevo/interior/complex/med/locks) "pMS" = ( /obj/structure/largecrate/random/case/small, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 4 - }, +/turf/open/floor/kutjevo/multi_tiles/east, /area/kutjevo/interior/colony_South/power2) "pNi" = ( /obj/structure/window_frame/kutjevo, @@ -11884,16 +10898,14 @@ "pPn" = ( /obj/item/stack/sheet/wood, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/kutjevo/tan/multi_tiles{ - dir = 1 - }, +/turf/open/floor/kutjevo/tan/multi_tiles/north, /area/kutjevo/interior/power/comms) "pPz" = ( /obj/structure/machinery/landinglight/ds2/delayone{ dir = 8 }, /turf/open/floor/kutjevo/multi_tiles, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "pPJ" = ( /turf/open/gm/river/desert/shallow, /area/kutjevo/exterior/lz_dunes) @@ -11925,12 +10937,10 @@ "pRL" = ( /obj/structure/largecrate, /turf/open/floor/kutjevo/tan, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "pRS" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 1 - }, +/turf/open/floor/kutjevo/multi_tiles/north, /area/kutjevo/interior/colony_South/power2) "pSs" = ( /turf/open/floor/kutjevo/colors/red, @@ -11964,7 +10974,7 @@ pixel_y = 14 }, /turf/open/floor/almayer/research/containment/floor2, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "pVd" = ( /obj/structure/platform/kutjevo{ dir = 1 @@ -11998,9 +11008,7 @@ /area/kutjevo/exterior/Northwest_Colony) "pXf" = ( /obj/structure/blocker/invisible_wall, -/turf/open/floor/filtrationside{ - dir = 1 - }, +/turf/open/floor/filtrationside/north, /area/kutjevo/interior/power) "pXF" = ( /obj/item/device/flashlight/on, @@ -12029,20 +11037,14 @@ /area/kutjevo/interior/construction) "qaS" = ( /obj/structure/machinery/photocopier, -/turf/open/floor/kutjevo/tan/multi_tiles{ - dir = 4 - }, +/turf/open/floor/kutjevo/tan/multi_tiles/east, /area/kutjevo/interior/complex/botany/east_tech) "qaU" = ( -/turf/open/desert/desert_shore/shore_corner2{ - dir = 1 - }, +/turf/open/desert/desert_shore/shore_corner2/north, /area/kutjevo/exterior/spring) "qaY" = ( /obj/structure/blocker/invisible_wall, -/turf/open/desert/desert_shore/shore_corner2{ - dir = 1 - }, +/turf/open/desert/desert_shore/shore_corner2/north, /area/kutjevo/interior/oob/dev_room) "qcE" = ( /obj/structure/barricade/wooden{ @@ -12051,10 +11053,6 @@ }, /turf/open/floor/kutjevo/colors/green, /area/kutjevo/interior/complex/botany) -"qdj" = ( -/obj/structure/machinery/power/geothermal, -/turf/open/floor/kutjevo/colors/orange, -/area/kutjevo/interior/power) "qev" = ( /obj/item/trash/chunk, /turf/open/auto_turf/sand/layer2, @@ -12065,9 +11063,7 @@ pixel_y = 13 }, /obj/effect/decal/cleanable/blood, -/turf/open/floor/kutjevo/colors/orange/edge{ - dir = 1 - }, +/turf/open/floor/kutjevo/colors/orange/edge/north, /area/kutjevo/interior/complex/Northwest_Security_Checkpoint) "qgr" = ( /obj/item/ammo_magazine/rifle/m16, @@ -12079,9 +11075,7 @@ layer = 3.1 }, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 4 - }, +/turf/open/floor/kutjevo/multi_tiles/east, /area/kutjevo/interior/colony_South/power2) "qgW" = ( /turf/open/floor/kutjevo/tan/multi_tiles, @@ -12134,19 +11128,13 @@ /turf/open/floor/kutjevo/tan/multi_tiles, /area/kutjevo/interior/colony_South) "qnd" = ( -/turf/open/floor/kutjevo/tan/alt_edge{ - dir = 1 - }, -/area/kutjevo/exterior/Northwest_Colony) +/turf/open/floor/kutjevo/tan/alt_edge/north, +/area/kutjevo/exterior/lz_pad) "qny" = ( -/turf/open/desert/desert_shore/shore_corner2{ - dir = 1 - }, +/turf/open/desert/desert_shore/shore_corner2/north, /area/kutjevo/exterior/runoff_river) "qnB" = ( -/turf/open/floor/kutjevo/multi_tiles{ - dir = 1 - }, +/turf/open/floor/kutjevo/multi_tiles/north, /area/kutjevo/exterior/complex_border/med_rec) "qnU" = ( /turf/open/floor/kutjevo/tan, @@ -12202,9 +11190,7 @@ /turf/open/floor/kutjevo/colors/red, /area/kutjevo/interior/complex/med/pano) "qpZ" = ( -/turf/open/floor/kutjevo/multi_tiles{ - dir = 8 - }, +/turf/open/floor/kutjevo/multi_tiles/west, /area/kutjevo/interior/complex/botany) "qqM" = ( /obj/structure/surface/table/almayer, @@ -12221,9 +11207,7 @@ pixel_x = 1; pixel_y = 15 }, -/turf/open/floor/kutjevo/tan/grey_edge{ - dir = 1 - }, +/turf/open/floor/kutjevo/tan/grey_edge/north, /area/kutjevo/interior/complex/Northwest_Dorms) "qrl" = ( /obj/structure/stairs/perspective/kutjevo{ @@ -12240,9 +11224,7 @@ /turf/open/auto_turf/sand/layer0, /area/kutjevo/exterior/runoff_bridge) "qru" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_11" - }, +/turf/open/mars_cave/mars_cave_11, /area/kutjevo/exterior/lz_dunes) "qsY" = ( /obj/structure/cable/heavyduty{ @@ -12260,9 +11242,7 @@ /turf/open/floor/kutjevo/tan, /area/kutjevo/interior/complex/botany) "quu" = ( -/turf/open/floor/kutjevo/tan/grey_edge{ - dir = 1 - }, +/turf/open/floor/kutjevo/tan/grey_edge/north, /area/kutjevo/interior/complex/Northwest_Dorms) "quy" = ( /turf/open/gm/dirtgrassborder2, @@ -12272,9 +11252,7 @@ /area/kutjevo/interior/colony_central/mine_elevator) "qwg" = ( /obj/structure/blocker/invisible_wall, -/turf/open/gm/river/desert/deep{ - icon = 'icons/turf/floors/desert_water_toxic.dmi' - }, +/turf/open/gm/river/desert/deep/toxic, /area/kutjevo/interior/oob) "qwT" = ( /obj/item/tool/wirecutters/clippers, @@ -12305,9 +11283,7 @@ icon_state = "solo_tank_empty" }, /obj/structure/blocker/invisible_wall, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 10 - }, +/turf/open/floor/kutjevo/multi_tiles/southwest, /area/kutjevo/interior/colony_South/power2) "qyS" = ( /obj/structure/flora/grass/tallgrass/desert/corner{ @@ -12333,16 +11309,11 @@ /area/kutjevo/exterior/lz_river) "qAk" = ( /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/kutjevo/tan/multi_tiles{ - dir = 1 - }, +/turf/open/floor/kutjevo/tan/multi_tiles/north, /area/kutjevo/interior/power) "qAP" = ( /obj/structure/blocker/invisible_wall, -/turf/open/gm/river{ - color = "#995555"; - name = "pool" - }, +/turf/open/gm/river/red_pool, /area/kutjevo/interior/oob) "qBa" = ( /obj/structure/platform/kutjevo{ @@ -12371,31 +11342,23 @@ /turf/open/floor/plating/kutjevo, /area/kutjevo/interior/construction) "qCi" = ( -/turf/open/floor/kutjevo/colors/purple/edge{ - dir = 8 - }, +/turf/open/floor/kutjevo/colors/purple/edge/west, /area/kutjevo/interior/construction) "qCy" = ( /obj/structure/barricade/handrail/kutjevo{ dir = 4 }, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 6 - }, +/turf/open/floor/kutjevo/multi_tiles/southeast, /area/kutjevo/interior/colony_South/power2) "qDu" = ( /obj/item/trash/kepler, /turf/open/auto_turf/sand/layer0, /area/kutjevo/interior/construction) "qDH" = ( -/turf/open/floor/kutjevo/tan/alt_edge{ - dir = 4 - }, -/area/kutjevo/exterior/Northwest_Colony) +/turf/open/floor/kutjevo/tan/alt_edge/east, +/area/kutjevo/exterior/lz_pad) "qEq" = ( -/turf/open/floor/kutjevo/tan/alt_inner_edge{ - dir = 4 - }, +/turf/open/floor/kutjevo/tan/alt_inner_edge/east, /area/kutjevo/interior/complex/Northwest_Flight_Control) "qEA" = ( /obj/structure/flora/grass/tallgrass/desert/corner{ @@ -12414,9 +11377,7 @@ /turf/open/auto_turf/sand/layer1, /area/kutjevo/exterior/spring) "qFU" = ( -/turf/open/desert/desert_shore/shore_corner2{ - dir = 8 - }, +/turf/open/desert/desert_shore/shore_corner2/west, /area/kutjevo/exterior/runoff_dunes) "qGa" = ( /obj/structure/platform_decoration/kutjevo, @@ -12430,18 +11391,14 @@ /turf/open/auto_turf/sand/layer0, /area/kutjevo/interior/complex/botany) "qGJ" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_23" - }, +/turf/open/mars_cave/mars_cave_23, /area/kutjevo/exterior/lz_dunes) "qGQ" = ( /obj/structure/stairs/perspective/kutjevo{ dir = 1; icon_state = "p_stair_full" }, -/turf/open/floor/kutjevo/tan/multi_tiles{ - dir = 1 - }, +/turf/open/floor/kutjevo/tan/multi_tiles/north, /area/kutjevo/interior/power/comms) "qHH" = ( /obj/structure/stairs/perspective/kutjevo{ @@ -12467,14 +11424,9 @@ /area/kutjevo/exterior/scrubland) "qIN" = ( /obj/structure/surface/table/reinforced/prison, -/obj/structure/barricade/handrail/kutjevo{ - layer = 3.1 - }, /obj/item/toy/deck, /obj/item/device/flashlight/lamp, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 4 - }, +/turf/open/floor/kutjevo/multi_tiles/east, /area/kutjevo/interior/colony_South/power2) "qIV" = ( /obj/structure/platform/kutjevo/smooth, @@ -12484,9 +11436,7 @@ /turf/open/floor/kutjevo/colors/orange, /area/kutjevo/interior/colony_South/power2) "qJx" = ( -/turf/open/floor/kutjevo/colors/orange/edge{ - dir = 10 - }, +/turf/open/floor/kutjevo/colors/orange/edge/southwest, /area/kutjevo/interior/power_pt2_electric_boogaloo) "qKm" = ( /obj/structure/machinery/disposal, @@ -12500,11 +11450,8 @@ dir = 4 }, /obj/structure/platform/kutjevo, -/obj/structure/blocker/invisible_wall, -/turf/open/gm/river/desert/deep{ - icon = 'icons/turf/floors/desert_water_toxic.dmi' - }, -/area/kutjevo/interior/oob) +/turf/open/gm/river/desert/deep, +/area/kutjevo/interior/complex/botany/east_tech) "qLV" = ( /obj/structure/tunnel, /turf/open/auto_turf/sand/layer0, @@ -12523,17 +11470,13 @@ /turf/open/floor/plating/kutjevo, /area/kutjevo/interior/power) "qOw" = ( -/turf/open/gm/river/desert/shallow_edge{ - dir = 6 - }, +/turf/open/gm/river/desert/shallow_edge/southeast, /area/kutjevo/exterior/runoff_river) "qOy" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 1 - }, +/turf/open/floor/kutjevo/multi_tiles/north, /area/kutjevo/interior/complex/med/auto_doc) "qOJ" = ( /obj/structure/platform_decoration/kutjevo{ @@ -12543,9 +11486,7 @@ /area/kutjevo/interior/complex/med/locks) "qOM" = ( /obj/effect/decal/cleanable/blood/gibs/limb, -/turf/open/floor/kutjevo/colors/purple/edge{ - dir = 5 - }, +/turf/open/floor/kutjevo/colors/purple/edge/northeast, /area/kutjevo/interior/construction) "qOP" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, @@ -12561,9 +11502,7 @@ /turf/open/floor/kutjevo/colors/purple, /area/kutjevo/interior/construction) "qPz" = ( -/turf/open/gm/river/desert/shallow_edge{ - dir = 10 - }, +/turf/open/gm/river/desert/shallow_edge/southwest, /area/kutjevo/exterior/runoff_river) "qPO" = ( /turf/open/floor/plating/kutjevo, @@ -12583,9 +11522,7 @@ /area/kutjevo/interior/complex/botany) "qRp" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/kutjevo/tan/grey_edge{ - dir = 9 - }, +/turf/open/floor/kutjevo/tan/grey_edge/northwest, /area/kutjevo/interior/complex/Northwest_Dorms) "qRq" = ( /obj/structure/machinery/light{ @@ -12608,7 +11545,7 @@ dir = 1 }, /turf/open/floor/kutjevo/multi_tiles, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "qTN" = ( /obj/structure/platform/kutjevo/smooth{ dir = 1 @@ -12618,12 +11555,10 @@ "qUC" = ( /obj/structure/surface/rack, /turf/open/floor/kutjevo/colors/orange, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "qUZ" = ( /obj/item/stack/sheet/metal, -/turf/open/floor/kutjevo/tan/alt_edge{ - dir = 4 - }, +/turf/open/floor/kutjevo/tan/alt_edge/east, /area/kutjevo/interior/complex/Northwest_Flight_Control) "qVc" = ( /obj/structure/machinery/landinglight/ds1/delayone{ @@ -12650,15 +11585,11 @@ /area/kutjevo/interior/complex/botany) "qVU" = ( /obj/structure/machinery/light, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 1 - }, +/turf/open/floor/kutjevo/multi_tiles/north, /area/kutjevo/interior/complex/med/auto_doc) "qVY" = ( /obj/structure/flora/bush/ausbushes/grassybush, -/turf/open/gm/river/desert/shallow_edge{ - dir = 9 - }, +/turf/open/gm/river/desert/shallow_edge/northwest, /area/kutjevo/exterior/runoff_river) "qVZ" = ( /obj/structure/filtration/machine_96x96{ @@ -12698,6 +11629,13 @@ "raN" = ( /turf/closed/wall/kutjevo/colony/reinforced, /area/kutjevo/exterior/runoff_bridge) +"raV" = ( +/obj/structure/machinery/light, +/obj/structure/surface/rack, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/turf/open/floor/almayer/research/containment/floor1, +/area/kutjevo/interior/power) "rbu" = ( /obj/structure/machinery/light, /turf/open/floor/kutjevo/colors/cyan/edge, @@ -12708,17 +11646,15 @@ "rdx" = ( /obj/structure/largecrate/random/case/double, /turf/open/floor/almayer/research/containment/floor2, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "rej" = ( /obj/structure/prop/dam/large_boulder/boulder1, /turf/open/auto_turf/sand/layer0, /area/kutjevo/exterior/runoff_dunes) "rfz" = ( /obj/structure/flora/bush/ausbushes/reedbush, -/turf/open/desert/desert_shore/desert_shore1{ - dir = 4 - }, -/area/kutjevo/exterior/Northwest_Colony) +/turf/open/desert/desert_shore/desert_shore1/east, +/area/kutjevo/exterior/lz_pad) "rfE" = ( /obj/structure/blocker/forcefield/multitile_vehicles, /turf/closed/wall/kutjevo/colony/reinforced, @@ -12730,15 +11666,6 @@ /obj/structure/platform/kutjevo/rock, /turf/open/auto_turf/sand/layer0, /area/kutjevo/exterior/scrubland) -"rgh" = ( -/obj/structure/platform/kutjevo/smooth{ - dir = 4 - }, -/obj/structure/platform/kutjevo/smooth{ - dir = 1 - }, -/turf/open/floor/kutjevo/colors/orange, -/area/kutjevo/interior/colony_South/power2) "rgv" = ( /obj/structure/machinery/power/port_gen/pacman, /turf/open/auto_turf/sand/layer0, @@ -12772,9 +11699,7 @@ /turf/open/auto_turf/sand/layer1, /area/kutjevo/interior/colony_north) "rih" = ( -/turf/open/desert/desert_shore/shore_corner2{ - dir = 8 - }, +/turf/open/desert/desert_shore/shore_corner2/west, /area/kutjevo/exterior/lz_dunes) "riu" = ( /obj/structure/blocker/invisible_wall, @@ -12814,9 +11739,7 @@ /obj/structure/platform/kutjevo{ dir = 4 }, -/turf/open/gm/river{ - color = "#995555" - }, +/turf/open/gm/river/red, /area/kutjevo/interior/oob) "rkt" = ( /obj/structure/flora/grass/desert/lightgrass_9, @@ -12845,12 +11768,14 @@ dir = 4 }, /turf/open/floor/kutjevo/tan, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "rme" = ( -/turf/open/floor/kutjevo/multi_tiles{ - dir = 4 - }, +/turf/open/floor/kutjevo/multi_tiles/east, /area/kutjevo/interior/complex/botany) +"rmg" = ( +/obj/structure/flora/grass/tallgrass/desert, +/turf/open/auto_turf/sand/layer1, +/area/kutjevo/exterior/lz_pad) "rmo" = ( /obj/structure/platform/kutjevo/rock, /obj/structure/platform/kutjevo/rock{ @@ -12866,24 +11791,18 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 6 - }, +/turf/open/floor/kutjevo/multi_tiles/southeast, /area/kutjevo/interior/power) "rmO" = ( /obj/structure/largecrate/random/case, /turf/open/floor/kutjevo/colors/cyan, /area/kutjevo/interior/complex/med/auto_doc) "rno" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_10" - }, +/turf/open/mars_cave/mars_cave_10, /area/kutjevo/exterior/scrubland) "rnA" = ( /obj/effect/landmark/objective_landmark/close, -/turf/open/gm/dirtgrassborder2{ - dir = 1 - }, +/turf/open/gm/dirtgrassborder2/north, /area/kutjevo/exterior/complex_border/med_park) "rnM" = ( /obj/effect/landmark/hunter_secondary, @@ -12918,20 +11837,20 @@ }, /turf/open/floor/kutjevo/colors/purple, /area/kutjevo/interior/construction) +"rst" = ( +/obj/structure/prop/dam/boulder/boulder1, +/turf/open/auto_turf/sand/layer0, +/area/kutjevo/exterior/lz_pad) "rsM" = ( /obj/structure/machinery/power/apc{ dir = 1; pixel_y = 24; start_charge = 0 }, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 4 - }, +/turf/open/floor/kutjevo/multi_tiles/east, /area/kutjevo/interior/colony_South/power2) "rsV" = ( -/turf/open/desert/desert_shore/desert_shore1{ - dir = 8 - }, +/turf/open/desert/desert_shore/desert_shore1/west, /area/kutjevo/exterior/scrubland) "rte" = ( /obj/structure/prop/dam/boulder/boulder2, @@ -12948,9 +11867,7 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 6 - }, +/turf/open/floor/kutjevo/multi_tiles/southeast, /area/kutjevo/interior/power) "rvA" = ( /obj/structure/girder, @@ -13018,9 +11935,7 @@ dir = 8 }, /obj/structure/blocker/invisible_wall, -/turf/open/gm/river/desert/deep{ - icon = 'icons/turf/floors/desert_water_toxic.dmi' - }, +/turf/open/gm/river/desert/deep/toxic, /area/kutjevo/interior/oob) "rzc" = ( /turf/open/gm/river/desert/deep, @@ -13080,14 +11995,10 @@ /turf/open/floor/plating/kutjevo, /area/kutjevo/interior/construction) "rEs" = ( -/turf/open/floor/plating/kutjevo{ - icon_state = "platingdmg1" - }, +/turf/open/floor/plating/kutjevo/platingdmg1, /area/kutjevo/interior/complex/Northwest_Dorms) "rEI" = ( -/turf/open/floor/kutjevo/colors/orange/inner_corner{ - dir = 4 - }, +/turf/open/floor/kutjevo/colors/orange/inner_corner/east, /area/kutjevo/interior/foremans_office) "rES" = ( /turf/closed/wall/kutjevo/colony, @@ -13101,9 +12012,7 @@ /obj/item/reagent_container/food/drinks/coffeecup{ pixel_x = 3 }, -/turf/open/floor/kutjevo/tan/alt_edge{ - dir = 1 - }, +/turf/open/floor/kutjevo/tan/alt_edge/north, /area/kutjevo/interior/complex/Northwest_Flight_Control) "rFR" = ( /obj/effect/landmark/monkey_spawn, @@ -13142,9 +12051,7 @@ "rIo" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/storage/backpack/lightpack, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 10 - }, +/turf/open/floor/kutjevo/multi_tiles/southwest, /area/kutjevo/interior/colony_South/power2) "rID" = ( /obj/structure/machinery/shower{ @@ -13160,9 +12067,7 @@ /turf/open/auto_turf/sand/layer0, /area/kutjevo/interior/complex/botany/east_tech) "rJU" = ( -/turf/open/desert/desert_shore/shore_edge1{ - dir = 1 - }, +/turf/open/desert/desert_shore/shore_edge1/north, /area/kutjevo/exterior/runoff_dunes) "rKl" = ( /obj/item/storage/briefcase, @@ -13210,9 +12115,7 @@ /turf/open/floor/kutjevo/tan, /area/kutjevo/interior/colony_central) "rNg" = ( -/turf/open/desert/desert_shore/shore_corner2{ - dir = 4 - }, +/turf/open/desert/desert_shore/shore_corner2/east, /area/kutjevo/exterior/runoff_river) "rNG" = ( /obj/item/ammo_magazine/revolver/cmb, @@ -13230,9 +12133,8 @@ /area/kutjevo/exterior/lz_dunes) "rQa" = ( /obj/structure/machinery/cm_vending/sorted/medical/no_access, -/turf/open/floor/kutjevo/colors/cyan/inner_corner{ - dir = 1 - }, +/obj/structure/medical_supply_link/green, +/turf/open/floor/kutjevo/colors/cyan/inner_corner/north, /area/kutjevo/interior/complex/med/operating) "rQY" = ( /turf/open/floor/kutjevo/tan, @@ -13245,25 +12147,18 @@ /area/kutjevo/interior/complex/botany/east_tech) "rRC" = ( /obj/structure/surface/table/reinforced/prison, -/obj/structure/barricade/handrail/kutjevo{ - layer = 3.1 - }, /obj/item/clipboard, /obj/item/clothing/glasses/thermal/syndi{ icon_state = "kutjevo_goggles"; pixel_y = -2 }, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 4 - }, +/turf/open/floor/kutjevo/multi_tiles/east, /area/kutjevo/interior/colony_South/power2) "rRL" = ( /obj/structure/platform/kutjevo{ dir = 1 }, -/turf/open/floor/coagulation{ - icon_state = "7,8-2" - }, +/turf/open/floor/coagulation/icon7_8_2, /area/kutjevo/interior/colony_north) "rSg" = ( /obj/item/device/flashlight/lamp/tripod/grey, @@ -13276,10 +12171,8 @@ /turf/open/auto_turf/sand/layer1, /area/kutjevo/interior/colony_South) "rSU" = ( -/turf/open/floor/kutjevo/tan/alt_edge{ - dir = 8 - }, -/area/kutjevo/exterior/Northwest_Colony) +/turf/open/floor/kutjevo/tan/alt_edge/west, +/area/kutjevo/exterior/lz_pad) "rTi" = ( /obj/structure/platform_decoration/kutjevo/rock{ dir = 1 @@ -13291,9 +12184,7 @@ /turf/open/auto_turf/sand/layer0, /area/kutjevo/interior/colony_central) "rTF" = ( -/turf/open/floor/kutjevo/tan/grey_edge{ - dir = 10 - }, +/turf/open/floor/kutjevo/tan/grey_edge/southwest, /area/kutjevo/interior/construction) "rTL" = ( /obj/structure/window{ @@ -13350,9 +12241,7 @@ /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/kutjevo/tan/alt_edge{ - dir = 6 - }, +/turf/open/floor/kutjevo/tan/alt_edge/southeast, /area/kutjevo/interior/complex/Northwest_Flight_Control) "rXe" = ( /obj/structure/platform/kutjevo/rock{ @@ -13363,9 +12252,7 @@ "rXj" = ( /obj/structure/surface/table/almayer, /obj/item/storage/box/pizza, -/turf/open/floor/kutjevo/colors/purple/inner_corner{ - dir = 1 - }, +/turf/open/floor/kutjevo/colors/purple/inner_corner/north, /area/kutjevo/interior/construction) "rYc" = ( /obj/item/toy/handcard/uno_reverse_yellow, @@ -13373,9 +12260,7 @@ /area/kutjevo/interior/colony_central) "rYs" = ( /obj/structure/blocker/invisible_wall, -/turf/open/desert/desert_shore/desert_shore1{ - dir = 1 - }, +/turf/open/desert/desert_shore/desert_shore1/north, /area/kutjevo/interior/oob/dev_room) "rYF" = ( /obj/structure/flora/bush/ausbushes/reedbush{ @@ -13400,9 +12285,7 @@ /area/kutjevo/exterior/scrubland) "rZV" = ( /obj/item/tool/wirecutters/clippers, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 8 - }, +/turf/open/floor/kutjevo/multi_tiles/west, /area/kutjevo/interior/complex/botany) "rZW" = ( /turf/open/floor/kutjevo/colors/orange/tile, @@ -13411,14 +12294,12 @@ /obj/structure/platform/kutjevo{ dir = 1 }, -/turf/open/floor/kutjevo/tan/alt_edge{ - dir = 8 - }, +/turf/open/floor/kutjevo/tan/alt_edge/west, /area/kutjevo/interior/colony_central) "saK" = ( /obj/structure/machinery/landinglight/ds2/delaytwo, /turf/open/floor/kutjevo/multi_tiles, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "sbb" = ( /obj/structure/stairs/perspective/kutjevo{ icon_state = "p_stair_ew_full_cap" @@ -13438,9 +12319,7 @@ icon_state = "solo_tank_empty" }, /obj/structure/blocker/invisible_wall, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 10 - }, +/turf/open/floor/kutjevo/multi_tiles/southwest, /area/kutjevo/interior/colony_South/power2) "sbX" = ( /turf/open/auto_turf/sand/layer2, @@ -13483,15 +12362,10 @@ /obj/structure/platform/kutjevo{ dir = 8 }, -/obj/structure/blocker/invisible_wall, -/turf/open/gm/river/desert/deep{ - icon = 'icons/turf/floors/desert_water_toxic.dmi' - }, -/area/kutjevo/interior/oob) +/turf/open/gm/river/desert/deep, +/area/kutjevo/interior/complex/botany/east_tech) "sgc" = ( -/turf/open/floor/kutjevo/tan/alt_edge{ - dir = 6 - }, +/turf/open/floor/kutjevo/tan/alt_edge/southeast, /area/kutjevo/interior/complex/Northwest_Flight_Control) "sgF" = ( /obj/structure/noticeboard{ @@ -13507,31 +12381,23 @@ /obj/structure/bed/chair/office/light{ dir = 8 }, -/turf/open/floor/kutjevo/colors/orange/edge{ - dir = 4 - }, +/turf/open/floor/kutjevo/colors/orange/edge/east, /area/kutjevo/interior/foremans_office) "shX" = ( -/turf/open/floor/kutjevo/multi_tiles{ - dir = 8 - }, +/turf/open/floor/kutjevo/multi_tiles/west, /area/kutjevo/interior/colony_South/power2) "sit" = ( /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/kutjevo/tan/grey_edge{ - dir = 1 - }, +/turf/open/floor/kutjevo/tan/grey_edge/north, /area/kutjevo/interior/complex/Northwest_Dorms) "siR" = ( /obj/structure/reagent_dispensers/water_cooler, /turf/open/floor/kutjevo/colors/cyan, /area/kutjevo/interior/complex/med) "sjE" = ( -/turf/open/floor/kutjevo/tan/grey_edge{ - dir = 8 - }, +/turf/open/floor/kutjevo/tan/grey_edge/west, /area/kutjevo/interior/complex/Northwest_Dorms) "sjN" = ( /obj/structure/surface/rack, @@ -13550,9 +12416,7 @@ /turf/open/auto_turf/sand/layer2, /area/kutjevo/exterior/complex_border/botany_medical_cave) "slx" = ( -/turf/open/floor/kutjevo/tan/multi_tiles{ - dir = 6 - }, +/turf/open/floor/kutjevo/tan/multi_tiles/southeast, /area/kutjevo/interior/colony_South/power2) "slB" = ( /obj/structure/machinery/landinglight/ds1/delaythree{ @@ -13614,9 +12478,7 @@ pixel_x = 5; pixel_y = -12 }, -/turf/open/desert/desert_shore/shore_edge1{ - dir = 4 - }, +/turf/open/desert/desert_shore/shore_edge1/east, /area/kutjevo/exterior/runoff_bridge) "soe" = ( /obj/structure/flora/grass/tallgrass/desert/corner{ @@ -13652,9 +12514,7 @@ "spd" = ( /obj/structure/surface/rack, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 6 - }, +/turf/open/floor/kutjevo/multi_tiles/southeast, /area/kutjevo/interior/power) "sqr" = ( /obj/structure/platform/kutjevo, @@ -13669,9 +12529,7 @@ "sre" = ( /obj/structure/surface/table/almayer, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/kutjevo/colors/orange/edge{ - dir = 8 - }, +/turf/open/floor/kutjevo/colors/orange/edge/west, /area/kutjevo/interior/complex/Northwest_Security_Checkpoint) "srs" = ( /obj/structure/largecrate/random/case/double, @@ -13701,9 +12559,7 @@ /turf/open/floor/almayer/research/containment/floor1, /area/kutjevo/interior/complex/botany) "stt" = ( -/turf/open/floor/kutjevo/colors/orange/edge{ - dir = 8 - }, +/turf/open/floor/kutjevo/colors/orange/edge/west, /area/kutjevo/interior/power_pt2_electric_boogaloo) "svp" = ( /obj/structure/platform/kutjevo/rock{ @@ -13731,17 +12587,8 @@ /obj/structure/machinery/floodlight/landing, /turf/open/floor/kutjevo/plate, /area/kutjevo/exterior/lz_dunes) -"sxq" = ( -/obj/structure/stairs/perspective/kutjevo{ - dir = 6; - icon_state = "p_stair_full" - }, -/turf/open/auto_turf/sand/layer0, -/area/kutjevo/exterior/complex_border/med_rec) "sxy" = ( -/turf/open/gm/river/desert/shallow_edge{ - dir = 9 - }, +/turf/open/gm/river/desert/shallow_edge/northwest, /area/kutjevo/exterior/runoff_river) "sxZ" = ( /obj/structure/closet/secure_closet/medical3{ @@ -13780,18 +12627,14 @@ /area/kutjevo/exterior/lz_dunes) "sAe" = ( /obj/structure/reagent_dispensers/watertank, -/turf/open/floor/kutjevo/tan/multi_tiles{ - dir = 4 - }, +/turf/open/floor/kutjevo/tan/multi_tiles/east, /area/kutjevo/interior/complex/botany/east_tech) "sAf" = ( /obj/structure/machinery/cm_vending/sorted/tech/tool_storage, /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 10 - }, +/turf/open/floor/kutjevo/multi_tiles/southwest, /area/kutjevo/interior/colony_South/power2) "sAA" = ( /obj/structure/bed/chair{ @@ -13817,9 +12660,7 @@ /area/kutjevo/interior/foremans_office) "sBH" = ( /obj/structure/blocker/invisible_wall, -/turf/open/floor/coagulation{ - icon_state = "2,0" - }, +/turf/open/floor/coagulation/icon2_0, /area/kutjevo/interior/oob) "sCw" = ( /obj/structure/flora/bush/ausbushes/grassybush{ @@ -13830,9 +12671,7 @@ pixel_x = -6; pixel_y = 10 }, -/turf/open/gm/river/desert/shallow_edge{ - dir = 10 - }, +/turf/open/gm/river/desert/shallow_edge/southwest, /area/kutjevo/exterior/runoff_river) "sCA" = ( /obj/structure/prop/dam/boulder/boulder3, @@ -13848,9 +12687,7 @@ /obj/structure/platform/kutjevo{ dir = 1 }, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 1 - }, +/turf/open/floor/kutjevo/multi_tiles/north, /area/kutjevo/exterior/complex_border/med_rec) "sEG" = ( /turf/open/floor/kutjevo/tan/alt_edge, @@ -13866,9 +12703,7 @@ /obj/structure/filtration/machine_64x96{ icon_state = "filtration_machine_A_0" }, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 10 - }, +/turf/open/floor/kutjevo/multi_tiles/southwest, /area/kutjevo/interior/complex/botany) "sGs" = ( /turf/closed/wall/kutjevo/colony, @@ -13880,17 +12715,13 @@ /turf/open/floor/kutjevo/colors, /area/kutjevo/interior/complex/botany) "sGS" = ( -/turf/open/desert/desert_shore/shore_edge1{ - dir = 8 - }, +/turf/open/desert/desert_shore/shore_edge1/west, /area/kutjevo/exterior/spring) "sHg" = ( /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/kutjevo/colors/cyan/inner_corner{ - dir = 4 - }, +/turf/open/floor/kutjevo/colors/cyan/inner_corner/east, /area/kutjevo/interior/complex/med/operating) "sHu" = ( /obj/structure/flora/grass/tallgrass/desert/corner{ @@ -13909,16 +12740,6 @@ /obj/structure/barricade/wooden, /turf/open/floor/almayer/research/containment/floor2, /area/kutjevo/interior/complex/med/locks) -"sID" = ( -/obj/structure/platform/kutjevo/smooth{ - dir = 8 - }, -/obj/structure/machinery/light{ - dir = 8 - }, -/obj/structure/machinery/power/geothermal, -/turf/open/floor/kutjevo/colors/orange, -/area/kutjevo/interior/power) "sJj" = ( /obj/structure/bed/chair/office/light{ dir = 1 @@ -13930,9 +12751,7 @@ /obj/item/clothing/head/helmet/marine/veteran/kutjevo, /obj/item/clothing/glasses/kutjevo, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/kutjevo/tan/grey_edge{ - dir = 1 - }, +/turf/open/floor/kutjevo/tan/grey_edge/north, /area/kutjevo/interior/complex/Northwest_Dorms) "sKo" = ( /obj/structure/machinery/landinglight/ds1/delaytwo{ @@ -13955,7 +12774,7 @@ /obj/effect/decal/cleanable/blood/oil, /obj/structure/machinery/landinglight/ds2/delayone, /turf/open/floor/kutjevo/multi_tiles, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "sLx" = ( /obj/structure/largecrate/random/secure, /turf/open/floor/kutjevo/colors/orange, @@ -13992,34 +12811,15 @@ }, /turf/open/floor/kutjevo/tan/multi_tiles, /area/kutjevo/interior/complex/botany) -"sOy" = ( -/obj/structure/stairs/perspective/kutjevo{ - dir = 8; - icon_state = "p_stair_ew_full_cap_butt" - }, -/obj/structure/platform/stair_cut{ - icon_state = "kutjevo_platform_sm_stair" - }, -/turf/open/floor/plating/kutjevo, -/area/kutjevo/interior/complex/med/locks) "sOF" = ( /obj/item/stack/sheet/wood{ pixel_x = -4 }, -/turf/open/floor/kutjevo/colors/orange/edge{ - dir = 1 - }, +/turf/open/floor/kutjevo/colors/orange/edge/north, /area/kutjevo/interior/complex/Northwest_Security_Checkpoint) "sOJ" = ( /turf/open/gm/river/desert/shallow_corner, /area/kutjevo/exterior/lz_river) -"sOT" = ( -/obj/structure/blocker/invisible_wall, -/obj/structure/filtration/machine_96x96/indestructible{ - icon_state = "sedimentation" - }, -/turf/open/floor/plating/kutjevo, -/area/kutjevo/interior/power_pt2_electric_boogaloo) "sPp" = ( /obj/structure/platform/kutjevo/smooth, /turf/open/gm/river/desert/deep/covered, @@ -14028,9 +12828,7 @@ /turf/open/auto_turf/sand/layer0, /area/kutjevo/interior/power/comms) "sPV" = ( -/turf/open/floor/kutjevo/colors/orange/edge{ - dir = 1 - }, +/turf/open/floor/kutjevo/colors/orange/edge/north, /area/kutjevo/interior/power_pt2_electric_boogaloo) "sRb" = ( /obj/structure/stairs/perspective/kutjevo{ @@ -14092,22 +12890,18 @@ "sUt" = ( /obj/structure/machinery/landinglight/ds2/delaythree, /turf/open/floor/kutjevo/multi_tiles, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "sUC" = ( /obj/structure/blocker/invisible_wall, /obj/structure/filtration/coagulation_arm, -/turf/open/gm/river/desert/deep{ - icon = 'icons/turf/floors/desert_water_toxic.dmi' - }, +/turf/open/gm/river/desert/deep/toxic, /area/kutjevo/interior/oob) "sVc" = ( /obj/structure/platform/kutjevo{ dir = 1 }, /obj/structure/blocker/invisible_wall, -/turf/open/gm/river/desert/deep{ - icon = 'icons/turf/floors/desert_water_toxic.dmi' - }, +/turf/open/gm/river/desert/deep/toxic, /area/kutjevo/interior/power) "sVx" = ( /turf/open/gm/river/desert/deep/covered, @@ -14134,6 +12928,10 @@ /obj/effect/landmark/queen_spawn, /turf/open/auto_turf/sand/layer1, /area/kutjevo/interior/colony_N_East) +"sWR" = ( +/obj/effect/decal/cleanable/blood/xeno, +/turf/open/asphalt/cement_sunbleached, +/area/kutjevo/exterior/lz_pad) "sXj" = ( /obj/structure/largecrate/random/case/small, /obj/effect/spawner/random/toolbox{ @@ -14169,15 +12967,11 @@ /obj/structure/blocker/invisible_wall, /obj/item/toy/inflatable_duck, /obj/structure/platform/kutjevo, -/turf/open/gm/river/desert/deep{ - icon = 'icons/turf/floors/desert_water_toxic.dmi' - }, +/turf/open/gm/river/desert/deep/toxic, /area/kutjevo/interior/power) "sZz" = ( /obj/effect/landmark/corpsespawner/colonist/kutjevo, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 4 - }, +/turf/open/floor/kutjevo/multi_tiles/east, /area/kutjevo/exterior/runoff_bridge) "sZO" = ( /obj/structure/machinery/light, @@ -14186,9 +12980,7 @@ /area/kutjevo/interior/complex/med) "sZY" = ( /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/floor/kutjevo/tan/alt_edge{ - dir = 1 - }, +/turf/open/floor/kutjevo/tan/alt_edge/north, /area/kutjevo/interior/colony_central) "sZZ" = ( /obj/structure/flora/grass/tallgrass/desert/corner{ @@ -14199,6 +12991,12 @@ "tax" = ( /turf/open/gm/river/desert/shallow_edge, /area/kutjevo/exterior/runoff_dunes) +"tbk" = ( +/obj/structure/flora/grass/tallgrass/desert/corner{ + dir = 10 + }, +/turf/open/auto_turf/sand/layer0, +/area/kutjevo/exterior/lz_pad) "tbx" = ( /obj/structure/flora/grass/tallgrass/desert/corner{ dir = 9 @@ -14231,9 +13029,7 @@ /area/kutjevo/interior/complex/med/cells) "ten" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/kutjevo/colors/cyan/edge{ - dir = 1 - }, +/turf/open/floor/kutjevo/colors/cyan/edge/north, /area/kutjevo/interior/complex/med/operating) "ter" = ( /obj/structure/largecrate/random, @@ -14322,9 +13118,7 @@ /turf/open/auto_turf/sand/layer1, /area/kutjevo/exterior/Northwest_Colony) "tjS" = ( -/turf/open/desert/desert_shore/shore_corner2{ - dir = 1 - }, +/turf/open/desert/desert_shore/shore_corner2/north, /area/kutjevo/exterior/lz_river) "tjZ" = ( /obj/structure/platform_decoration/kutjevo{ @@ -14349,6 +13143,10 @@ }, /turf/open/floor/kutjevo/colors/orange, /area/kutjevo/interior/colony_central/mine_elevator) +"tlK" = ( +/obj/structure/machinery/power/reactor/colony, +/turf/open/floor/kutjevo/multi_tiles/north, +/area/kutjevo/interior/power/comms) "tlN" = ( /turf/closed/wall/kutjevo/colony/reinforced, /area/kutjevo/interior/power/comms) @@ -14360,17 +13158,13 @@ /turf/open/floor/kutjevo/tan/multi_tiles, /area/kutjevo/interior/colony_South/power2) "tnI" = ( -/turf/open/desert/desert_shore/shore_edge1{ - dir = 4 - }, -/area/kutjevo/exterior/Northwest_Colony) +/turf/open/desert/desert_shore/shore_edge1/east, +/area/kutjevo/exterior/lz_pad) "tnM" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/kutjevo/tan/grey_edge{ - dir = 1 - }, +/turf/open/floor/kutjevo/tan/grey_edge/north, /area/kutjevo/interior/complex/med) "tob" = ( /obj/structure/flora/grass/tallgrass/desert/corner{ @@ -14416,9 +13210,7 @@ /turf/open/floor/almayer/research/containment/floor2, /area/kutjevo/interior/complex/botany) "tqE" = ( -/turf/open/floor/kutjevo/multi_tiles{ - dir = 6 - }, +/turf/open/floor/kutjevo/multi_tiles/southeast, /area/kutjevo/interior/complex/botany/east_tech) "trC" = ( /obj/structure/platform/kutjevo/rock{ @@ -14462,15 +13254,11 @@ dir = 4 }, /obj/structure/blocker/invisible_wall, -/turf/open/gm/river/desert/deep{ - icon = 'icons/turf/floors/desert_water_toxic.dmi' - }, +/turf/open/gm/river/desert/deep/toxic, /area/kutjevo/interior/power) "tvb" = ( /obj/effect/decal/cleanable/blood/drip, -/turf/open/floor/kutjevo/colors/cyan/inner_corner{ - dir = 8 - }, +/turf/open/floor/kutjevo/colors/cyan/inner_corner/west, /area/kutjevo/interior/complex/med/operating) "tvJ" = ( /obj/structure/platform_decoration/kutjevo/rock, @@ -14484,17 +13272,13 @@ /turf/open/floor/plating/kutjevo, /area/kutjevo/interior/construction) "twq" = ( -/turf/open/desert/desert_shore/desert_shore1{ - dir = 4 - }, +/turf/open/desert/desert_shore/desert_shore1/east, /area/kutjevo/exterior/runoff_dunes) "txe" = ( /obj/structure/platform/kutjevo/rock{ dir = 1 }, -/turf/open/mars_cave{ - icon_state = "mars_cave_23" - }, +/turf/open/mars_cave/mars_cave_23, /area/kutjevo/exterior/scrubland) "txH" = ( /obj/structure/machinery/light, @@ -14567,9 +13351,7 @@ /obj/structure/flora/bush/ausbushes/reedbush{ pixel_y = 14 }, -/turf/open/desert/desert_shore/shore_corner2{ - dir = 1 - }, +/turf/open/desert/desert_shore/shore_corner2/north, /area/kutjevo/exterior/runoff_bridge) "tDP" = ( /obj/item/stack/sheet/wood, @@ -14586,6 +13368,19 @@ }, /turf/open/floor/kutjevo/colors/green/tile, /area/kutjevo/interior/complex/botany) +"tEj" = ( +/obj/structure/surface/rack, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/turf/open/floor/kutjevo/multi_tiles/southeast, +/area/kutjevo/interior/power) "tEK" = ( /obj/structure/bed/sofa/vert/grey/bot{ pixel_y = 4 @@ -14597,14 +13392,6 @@ /obj/structure/platform_decoration/kutjevo, /turf/open/floor/mech_bay_recharge_floor, /area/kutjevo/interior/power) -"tEV" = ( -/obj/structure/surface/rack, -/obj/item/book/manual/engineering_particle_accelerator, -/obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 10 - }, -/area/kutjevo/interior/colony_South/power2) "tFe" = ( /obj/structure/machinery/light, /turf/open/floor/kutjevo/colors/orange/edge, @@ -14613,9 +13400,7 @@ /obj/effect/decal/cleanable/blood/xeno{ icon_state = "xgib6" }, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 4 - }, +/turf/open/floor/kutjevo/multi_tiles/east, /area/kutjevo/interior/complex/botany) "tFH" = ( /obj/item/toy/beach_ball, @@ -14633,9 +13418,7 @@ /turf/open/auto_turf/sand/layer2, /area/kutjevo/exterior/construction) "tGi" = ( -/turf/open/floor/coagulation{ - icon_state = "8,6" - }, +/turf/open/floor/coagulation/icon8_6, /area/kutjevo/exterior/runoff_river) "tGm" = ( /obj/structure/flora/grass/tallgrass/desert/corner{ @@ -14646,17 +13429,18 @@ "tGE" = ( /obj/structure/machinery/floodlight/landing, /turf/open/floor/kutjevo/plate, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) +"tHh" = ( +/turf/open/auto_turf/sand/layer0, +/area/kutjevo/exterior/lz_pad) "tHI" = ( /obj/structure/machinery/landinglight/ds2/delaytwo{ dir = 8 }, /turf/open/floor/kutjevo/multi_tiles, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "tIh" = ( -/turf/open/gm/river/desert/shallow_edge{ - dir = 4 - }, +/turf/open/gm/river/desert/shallow_edge/east, /area/kutjevo/exterior/runoff_river) "tIy" = ( /obj/structure/closet/secure_closet/security_empty, @@ -14683,7 +13467,7 @@ /area/kutjevo/exterior/runoff_dunes) "tIY" = ( /turf/open/desert/desert_shore/shore_edge1, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "tKC" = ( /obj/structure/bed/sofa/vert/white, /turf/open/floor/kutjevo/tan, @@ -14696,9 +13480,7 @@ dir = 8 }, /obj/structure/platform/kutjevo, -/turf/open/floor/coagulation{ - icon_state = "0,0" - }, +/turf/open/floor/coagulation/icon0_0, /area/kutjevo/interior/construction) "tLO" = ( /obj/effect/decal/cleanable/blood/oil, @@ -14760,9 +13542,7 @@ /turf/open/auto_turf/sand/layer0, /area/kutjevo/exterior/lz_dunes) "tQB" = ( -/turf/open/desert/desert_shore/shore_edge1{ - dir = 8 - }, +/turf/open/desert/desert_shore/shore_edge1/west, /area/kutjevo/exterior/runoff_dunes) "tQO" = ( /obj/structure/stairs/perspective/kutjevo{ @@ -14812,23 +13592,18 @@ /turf/open/floor/kutjevo/colors/green/tile, /area/kutjevo/interior/complex/botany) "tUm" = ( -/turf/open/gm/dirtgrassborder2{ - dir = 1 - }, +/turf/open/gm/dirtgrassborder2/north, /area/kutjevo/exterior/complex_border/med_park) "tUz" = ( -/turf/open/gm/river/desert/shallow_edge{ - dir = 4 - }, +/turf/open/gm/river/desert/shallow_edge/east, /area/kutjevo/exterior/lz_river) "tVs" = ( /obj/effect/landmark/hunter_primary, /turf/open/floor/almayer/research/containment/floor2, /area/kutjevo/exterior/complex_border/botany_medical_cave) "tWv" = ( -/obj/structure/blocker/invisible_wall, /turf/open/gm/river, -/area/kutjevo/interior/oob) +/area/kutjevo/interior/power_pt2_electric_boogaloo) "tWM" = ( /turf/open/floor/kutjevo/tan/multi_tiles, /area/kutjevo/interior/power/comms) @@ -14857,17 +13632,11 @@ /turf/open/auto_turf/sand/layer1, /area/kutjevo/exterior/telecomm/lz2_north) "uah" = ( -/obj/structure/filtration/coagulation_arm, -/obj/structure/blocker/invisible_wall, -/turf/open/gm/river/desert/deep{ - icon = 'icons/turf/floors/desert_water_toxic.dmi' - }, -/area/kutjevo/interior/oob) +/turf/open/gm/river/desert/deep/toxic, +/area/kutjevo/exterior/construction) "uaj" = ( /obj/structure/machinery/light, -/turf/open/floor/kutjevo/tan/alt_inner_edge{ - dir = 4 - }, +/turf/open/floor/kutjevo/tan/alt_inner_edge/east, /area/kutjevo/interior/complex/Northwest_Flight_Control) "uam" = ( /obj/structure/platform_decoration/kutjevo, @@ -14878,9 +13647,7 @@ /turf/open/gm/river/desert/deep, /area/kutjevo/interior/oob) "uaz" = ( -/turf/open/desert/desert_shore/desert_shore1{ - dir = 1 - }, +/turf/open/desert/desert_shore/desert_shore1/north, /area/kutjevo/exterior/spring) "ubm" = ( /obj/structure/machinery/light{ @@ -14910,9 +13677,7 @@ /turf/open/auto_turf/sand/layer0, /area/kutjevo/interior/colony_N_East) "ueM" = ( -/turf/open/desert/desert_shore/shore_corner2{ - dir = 4 - }, +/turf/open/desert/desert_shore/shore_corner2/east, /area/kutjevo/exterior/spring) "ueO" = ( /obj/structure/prop/dam/boulder/boulder1, @@ -14921,9 +13686,7 @@ "ufp" = ( /obj/structure/surface/table/almayer, /obj/item/trash/syndi_cakes, -/turf/open/floor/kutjevo/tan/grey_edge{ - dir = 1 - }, +/turf/open/floor/kutjevo/tan/grey_edge/north, /area/kutjevo/interior/complex/Northwest_Dorms) "ufN" = ( /obj/structure/flora/grass/tallgrass/desert/corner{ @@ -14954,9 +13717,7 @@ /turf/open/floor/almayer/research/containment/floor2, /area/kutjevo/exterior/runoff_bridge) "uhD" = ( -/turf/open/floor/kutjevo/tan/grey_edge{ - dir = 8 - }, +/turf/open/floor/kutjevo/tan/grey_edge/west, /area/kutjevo/interior/construction) "uhM" = ( /obj/structure/blocker/invisible_wall, @@ -15029,11 +13790,8 @@ /obj/structure/platform/kutjevo{ dir = 8 }, -/obj/structure/blocker/invisible_wall, -/turf/open/gm/river/desert/deep{ - icon = 'icons/turf/floors/desert_water_toxic.dmi' - }, -/area/kutjevo/interior/oob) +/turf/open/gm/river/desert/deep, +/area/kutjevo/interior/complex/botany/east_tech) "ukN" = ( /obj/structure/prop/dam/boulder/boulder3, /turf/open/auto_turf/sand/layer0, @@ -15062,9 +13820,7 @@ /area/kutjevo/interior/complex/botany) "uma" = ( /obj/structure/largecrate/random/barrel/green, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 6 - }, +/turf/open/floor/kutjevo/multi_tiles/southeast, /area/kutjevo/interior/power) "umo" = ( /obj/structure/machinery/camera/autoname/lz_camera, @@ -15075,9 +13831,7 @@ /turf/open/floor/kutjevo/multi_tiles, /area/kutjevo/interior/colony_central) "umQ" = ( -/turf/open/desert/desert_shore/shore_edge1{ - dir = 8 - }, +/turf/open/desert/desert_shore/shore_edge1/west, /area/kutjevo/exterior/scrubland) "una" = ( /obj/structure/platform/kutjevo/rock{ @@ -15101,9 +13855,7 @@ /turf/open/floor/kutjevo/tan/alt_edge, /area/kutjevo/interior/complex/Northwest_Flight_Control) "upp" = ( -/turf/open/floor/kutjevo/tan/grey_edge{ - dir = 10 - }, +/turf/open/floor/kutjevo/tan/grey_edge/southwest, /area/kutjevo/interior/complex/Northwest_Dorms) "upY" = ( /obj/effect/decal/cleanable/blood/drip, @@ -15111,17 +13863,13 @@ /area/kutjevo/interior/complex/med/triage) "uqv" = ( /obj/structure/bed/chair/office/light, -/turf/open/floor/kutjevo/colors/cyan/edge{ - dir = 8 - }, +/turf/open/floor/kutjevo/colors/cyan/edge/west, /area/kutjevo/interior/complex/med) "uqL" = ( /obj/structure/platform_decoration/kutjevo{ dir = 8 }, -/turf/open/desert/desert_shore/desert_shore1{ - dir = 8 - }, +/turf/open/desert/desert_shore/desert_shore1/west, /area/kutjevo/exterior/lz_river) "uqR" = ( /obj/structure/machinery/light, @@ -15131,9 +13879,7 @@ /obj/structure/platform/kutjevo{ dir = 1 }, -/turf/open/floor/kutjevo/tan/alt_edge{ - dir = 4 - }, +/turf/open/floor/kutjevo/tan/alt_edge/east, /area/kutjevo/interior/colony_central) "uri" = ( /obj/structure/flora/bush/ausbushes/ppflowers{ @@ -15170,9 +13916,7 @@ /obj/structure/platform/kutjevo{ dir = 4 }, -/turf/open/floor/coagulation{ - icon_state = "8,8" - }, +/turf/open/floor/coagulation/icon8_8, /area/kutjevo/interior/colony_north) "usd" = ( /obj/structure/machinery/landinglight/ds1/delaytwo{ @@ -15202,9 +13946,7 @@ /area/kutjevo/interior/complex/med/cells) "uwD" = ( /obj/item/clothing/mask/cigarette/pipe/cobpipe, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 6 - }, +/turf/open/floor/kutjevo/multi_tiles/southeast, /area/kutjevo/interior/complex/botany) "uwY" = ( /obj/structure/platform/kutjevo{ @@ -15221,29 +13963,13 @@ }, /turf/open/floor/plating/kutjevo, /area/kutjevo/interior/oob) -"uxb" = ( -/obj/structure/platform/kutjevo/smooth{ - dir = 8 - }, -/obj/structure/barricade/handrail/kutjevo{ - layer = 3.1 - }, -/obj/structure/barricade/handrail/kutjevo{ - dir = 8 - }, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 10 - }, -/area/kutjevo/interior/colony_South/power2) "uxA" = ( /obj/structure/prop/dam/truck, /turf/open/asphalt/cement_sunbleached, /area/kutjevo/exterior/scrubland) "uze" = ( /obj/structure/platform/kutjevo/smooth, -/turf/open/desert/desert_shore/desert_shore1{ - dir = 4 - }, +/turf/open/desert/desert_shore/desert_shore1/east, /area/kutjevo/exterior/runoff_river) "uzp" = ( /obj/structure/window/framed/kutjevo, @@ -15332,9 +14058,7 @@ /obj/structure/surface/table/almayer, /obj/item/book/manual/surgery, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/kutjevo/colors/cyan/inner_corner{ - dir = 8 - }, +/turf/open/floor/kutjevo/colors/cyan/inner_corner/west, /area/kutjevo/interior/complex/med/operating) "uEr" = ( /obj/structure/filingcabinet{ @@ -15348,51 +14072,35 @@ pixel_y = 17 }, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/kutjevo/tan/alt_edge{ - dir = 1 - }, +/turf/open/floor/kutjevo/tan/alt_edge/north, /area/kutjevo/interior/complex/Northwest_Flight_Control) "uEY" = ( /obj/structure/platform_decoration/kutjevo{ dir = 8 }, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 1 - }, +/turf/open/floor/kutjevo/multi_tiles/north, /area/kutjevo/exterior/complex_border/med_rec) "uGd" = ( -/turf/open/gm/river/desert/shallow_edge{ - dir = 1 - }, +/turf/open/gm/river/desert/shallow_edge/north, /area/kutjevo/exterior/lz_river) "uGB" = ( /obj/structure/platform/kutjevo/rock{ dir = 1 }, /obj/structure/blocker/invisible_wall, -/turf/open/desert/desert_shore/desert_shore1{ - dir = 1 - }, +/turf/open/desert/desert_shore/desert_shore1/north, /area/kutjevo/interior/oob) "uGN" = ( /obj/structure/flora/grass/tallgrass/desert, /turf/open/auto_turf/sand/layer1, /area/kutjevo/exterior/stonyfields) "uHg" = ( -/turf/open/floor/kutjevo/tan/grey_edge{ - dir = 9 - }, +/turf/open/floor/kutjevo/tan/grey_edge/northwest, /area/kutjevo/interior/complex/Northwest_Dorms) "uHo" = ( /obj/structure/flora/grass/desert/lightgrass_3, /turf/open/auto_turf/sand/layer1, /area/kutjevo/exterior/construction) -"uHJ" = ( -/obj/structure/stairs/perspective/kutjevo{ - icon_state = "p_stair_sn_full_cap" - }, -/turf/open/floor/plating/kutjevo, -/area/kutjevo/interior/colony_South/power2) "uHP" = ( /turf/open/floor/kutjevo/colors/cyan, /area/kutjevo/interior/complex/med/auto_doc) @@ -15428,9 +14136,7 @@ "uJV" = ( /obj/structure/surface/rack, /obj/item/book/manual/orbital_cannon_manual, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 10 - }, +/turf/open/floor/kutjevo/multi_tiles/southwest, /area/kutjevo/interior/colony_South/power2) "uKx" = ( /obj/effect/decal/cleanable/blood/xeno{ @@ -15464,9 +14170,7 @@ /turf/open/floor/kutjevo, /area/kutjevo/interior/oob/dev_room) "uMg" = ( -/turf/open/desert/desert_shore/shore_edge1{ - dir = 4 - }, +/turf/open/desert/desert_shore/shore_edge1/east, /area/kutjevo/exterior/lz_dunes) "uML" = ( /obj/item/ammo_magazine/rifle/mar40/extended, @@ -15494,21 +14198,15 @@ /obj/structure/platform/kutjevo{ dir = 8 }, -/turf/open/gm/river{ - color = "#995555"; - name = "pool" - }, +/turf/open/gm/river/red_pool, /area/kutjevo/interior/oob) "uNJ" = ( /obj/structure/platform/kutjevo{ dir = 8 }, /obj/structure/platform/kutjevo, -/obj/structure/blocker/invisible_wall, -/turf/open/gm/river/desert/deep{ - icon = 'icons/turf/floors/desert_water_toxic.dmi' - }, -/area/kutjevo/interior/oob) +/turf/open/gm/river/desert/deep, +/area/kutjevo/interior/complex/botany/east_tech) "uNW" = ( /obj/structure/prop/dam/boulder/boulder2, /turf/open/auto_turf/sand/layer0, @@ -15605,9 +14303,7 @@ /area/kutjevo/interior/colony_South/power2) "uSG" = ( /obj/structure/window/framed/kutjevo/reinforced/hull, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 6 - }, +/turf/open/floor/kutjevo/multi_tiles/southeast, /area/kutjevo/interior/oob) "uTa" = ( /obj/effect/landmark/objective_landmark/science, @@ -15626,9 +14322,7 @@ /obj/structure/platform/kutjevo/smooth{ dir = 8 }, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 6 - }, +/turf/open/floor/kutjevo/multi_tiles/southeast, /area/kutjevo/interior/power) "uTo" = ( /obj/structure/machinery/cm_vending/sorted/medical/wall_med/limited{ @@ -15639,15 +14333,13 @@ "uTr" = ( /obj/structure/largecrate, /turf/open/floor/kutjevo/colors/orange, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "uWk" = ( /obj/structure/platform/kutjevo/rock{ dir = 1 }, /obj/structure/blocker/invisible_wall, -/turf/open/desert/desert_shore/shore_corner2{ - dir = 8 - }, +/turf/open/desert/desert_shore/shore_corner2/west, /area/kutjevo/interior/oob) "uWu" = ( /obj/effect/spawner/random/toolbox{ @@ -15661,9 +14353,7 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 4 - }, +/turf/open/floor/kutjevo/multi_tiles/east, /area/kutjevo/interior/complex/med) "uYi" = ( /turf/closed/wall/kutjevo/colony/reinforced/hull, @@ -15691,9 +14381,7 @@ /area/kutjevo/interior/power) "vaa" = ( /obj/structure/machinery/cm_vending/sorted/tech/electronics_storage, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 10 - }, +/turf/open/floor/kutjevo/multi_tiles/southwest, /area/kutjevo/interior/colony_South/power2) "vap" = ( /obj/effect/decal/cleanable/blood/xeno{ @@ -15730,17 +14418,13 @@ /turf/open/floor/mech_bay_recharge_floor, /area/kutjevo/interior/colony_central/mine_elevator) "vbA" = ( -/turf/open/desert/desert_shore/desert_shore1{ - dir = 8 - }, +/turf/open/desert/desert_shore/desert_shore1/west, /area/kutjevo/exterior/runoff_dunes) "vbV" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 6 - }, +/turf/open/floor/kutjevo/multi_tiles/southeast, /area/kutjevo/interior/power) "vcs" = ( /obj/structure/machinery/computer/cameras{ @@ -15750,9 +14434,7 @@ /turf/open/floor/kutjevo/colors/green/tile, /area/kutjevo/interior/complex/botany/east) "vcT" = ( -/turf/open/desert/desert_shore/shore_edge1{ - dir = 1 - }, +/turf/open/desert/desert_shore/shore_edge1/north, /area/kutjevo/exterior/lz_river) "vcW" = ( /obj/structure/platform/kutjevo/rock{ @@ -15770,9 +14452,7 @@ "vcY" = ( /obj/structure/platform/kutjevo/smooth, /obj/structure/blocker/invisible_wall, -/turf/open/gm/river/desert/deep{ - icon = 'icons/turf/floors/desert_water_toxic.dmi' - }, +/turf/open/gm/river/desert/deep/toxic, /area/kutjevo/interior/oob) "vdl" = ( /obj/structure/platform_decoration/kutjevo{ @@ -15836,9 +14516,7 @@ /turf/open/auto_turf/sand/layer1, /area/kutjevo/exterior/Northwest_Colony) "vfr" = ( -/turf/open/floor/kutjevo/colors/purple/edge{ - dir = 1 - }, +/turf/open/floor/kutjevo/colors/purple/edge/north, /area/kutjevo/interior/construction) "vfZ" = ( /obj/structure/platform/kutjevo/rock{ @@ -15847,9 +14525,7 @@ /turf/open/auto_turf/sand/layer1, /area/kutjevo/exterior/runoff_river) "vgw" = ( -/turf/open/floor/kutjevo/colors/cyan/edge{ - dir = 4 - }, +/turf/open/floor/kutjevo/colors/cyan/edge/east, /area/kutjevo/interior/complex/med) "vgX" = ( /obj/effect/decal/cleanable/blood/xeno{ @@ -15880,9 +14556,7 @@ /turf/open/auto_turf/sand/layer1, /area/kutjevo/exterior/scrubland) "vin" = ( -/turf/open/floor/coagulation{ - icon_state = "2,0" - }, +/turf/open/floor/coagulation/icon2_0, /area/kutjevo/exterior/lz_river) "viU" = ( /turf/open/floor/plating/kutjevo, @@ -15892,9 +14566,7 @@ /turf/open/floor/kutjevo/tan/multi_tiles, /area/kutjevo/exterior/runoff_bridge) "vkK" = ( -/turf/open/gm/river/desert/shallow_edge{ - dir = 5 - }, +/turf/open/gm/river/desert/shallow_edge/northeast, /area/kutjevo/exterior/runoff_dunes) "vkV" = ( /obj/structure/platform/kutjevo{ @@ -15903,11 +14575,8 @@ /obj/structure/platform/kutjevo{ dir = 4 }, -/obj/structure/blocker/invisible_wall, -/turf/open/gm/river/desert/deep{ - icon = 'icons/turf/floors/desert_water_toxic.dmi' - }, -/area/kutjevo/interior/oob) +/turf/open/gm/river/desert/deep, +/area/kutjevo/interior/complex/botany/east_tech) "vlg" = ( /obj/structure/flora/grass/tallgrass/desert/corner{ dir = 6 @@ -15919,9 +14588,7 @@ /obj/structure/barricade/wooden{ dir = 4 }, -/turf/open/floor/kutjevo/tan/alt_edge{ - dir = 4 - }, +/turf/open/floor/kutjevo/tan/alt_edge/east, /area/kutjevo/interior/complex/Northwest_Flight_Control) "vlt" = ( /obj/structure/surface/rack, @@ -15930,9 +14597,7 @@ /area/kutjevo/interior/power/comms) "vmB" = ( /obj/structure/flora/bush/ausbushes/reedbush, -/turf/open/desert/desert_shore/shore_corner2{ - dir = 1 - }, +/turf/open/desert/desert_shore/shore_corner2/north, /area/kutjevo/exterior/runoff_river) "vmH" = ( /obj/structure/monorail, @@ -15942,23 +14607,8 @@ /turf/open/floor/plating/kutjevo, /area/kutjevo/interior/colony_central/mine_elevator) "vmJ" = ( -/turf/open/floor/kutjevo/tan/grey_edge{ - dir = 4 - }, +/turf/open/floor/kutjevo/tan/grey_edge/east, /area/kutjevo/interior/complex/med) -"vnL" = ( -/obj/item/fuelCell, -/obj/structure/surface/rack, -/obj/structure/platform/kutjevo/smooth{ - dir = 1 - }, -/obj/structure/platform/kutjevo/smooth{ - dir = 4 - }, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 10 - }, -/area/kutjevo/interior/colony_South/power2) "vnO" = ( /obj/structure/bed/chair{ dir = 8 @@ -15998,7 +14648,7 @@ "vrB" = ( /obj/structure/machinery/floodlight, /turf/open/floor/kutjevo/tan, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "vse" = ( /obj/structure/bed/stool, /turf/open/auto_turf/sand/layer0, @@ -16007,17 +14657,13 @@ /obj/structure/platform_decoration/kutjevo{ dir = 8 }, -/turf/open/floor/kutjevo/colors/purple/edge{ - dir = 4 - }, +/turf/open/floor/kutjevo/colors/purple/edge/east, /area/kutjevo/interior/construction) "vsP" = ( /turf/closed/wall/kutjevo/rock, /area/kutjevo/interior/colony_N_East) "vsS" = ( -/turf/open/desert/desert_shore/shore_edge1{ - dir = 1 - }, +/turf/open/desert/desert_shore/shore_edge1/north, /area/kutjevo/exterior/lz_dunes) "vtY" = ( /obj/structure/machinery/light, @@ -16035,17 +14681,8 @@ /obj/structure/flora/grass/tallgrass/desert/corner, /turf/open/auto_turf/sand/layer1, /area/kutjevo/exterior/scrubland) -"vwB" = ( -/obj/structure/stairs/perspective/kutjevo{ - dir = 4; - icon_state = "p_stair_sn_full_cap" - }, -/turf/open/floor/plating/kutjevo, -/area/kutjevo/interior/colony_South/power2) "vxe" = ( -/turf/open/floor/kutjevo/tan/alt_edge{ - dir = 8 - }, +/turf/open/floor/kutjevo/tan/alt_edge/west, /area/kutjevo/interior/colony_South) "vxM" = ( /obj/structure/surface/table/almayer, @@ -16090,9 +14727,7 @@ "vCx" = ( /obj/structure/surface/table/almayer, /obj/item/reagent_container/food/snacks/applecakeslice, -/turf/open/floor/kutjevo/tan/grey_edge{ - dir = 8 - }, +/turf/open/floor/kutjevo/tan/grey_edge/west, /area/kutjevo/interior/complex/Northwest_Dorms) "vCT" = ( /obj/structure/blocker/invisible_wall, @@ -16102,10 +14737,7 @@ /obj/structure/platform/kutjevo{ dir = 8 }, -/turf/open/gm/river{ - color = "#995555"; - name = "pool" - }, +/turf/open/gm/river/red_pool, /area/kutjevo/interior/power) "vDi" = ( /obj/structure/platform_decoration/kutjevo{ @@ -16120,9 +14752,7 @@ /obj/structure/sign/safety/medical{ pixel_y = 32 }, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 4 - }, +/turf/open/floor/kutjevo/multi_tiles/east, /area/kutjevo/interior/complex/botany) "vDH" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony/autoname{ @@ -16165,9 +14795,7 @@ /area/kutjevo/interior/colony_South/power2) "vER" = ( /obj/structure/surface/table/almayer, -/turf/open/floor/kutjevo/tan/grey_edge{ - dir = 4 - }, +/turf/open/floor/kutjevo/tan/grey_edge/east, /area/kutjevo/interior/complex/Northwest_Dorms) "vES" = ( /obj/item/tool/wirecutters, @@ -16209,9 +14837,7 @@ }, /obj/structure/platform/kutjevo/smooth, /obj/structure/blocker/invisible_wall, -/turf/open/gm/river/desert/deep{ - icon = 'icons/turf/floors/desert_water_toxic.dmi' - }, +/turf/open/gm/river/desert/deep/toxic, /area/kutjevo/interior/oob) "vHf" = ( /obj/structure/surface/table/almayer, @@ -16227,17 +14853,13 @@ /area/kutjevo/interior/construction) "vHh" = ( /obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/kutjevo/tan/multi_tiles{ - dir = 4 - }, +/turf/open/floor/kutjevo/tan/multi_tiles/east, /area/kutjevo/interior/complex/botany/east) "vHG" = ( /obj/structure/platform/kutjevo/smooth{ dir = 1 }, -/turf/open/desert/desert_shore/shore_corner2{ - dir = 8 - }, +/turf/open/desert/desert_shore/shore_corner2/west, /area/kutjevo/exterior/runoff_river) "vHL" = ( /turf/open/floor/kutjevo/colors/green/tile, @@ -16326,9 +14948,7 @@ pixel_y = 17 }, /obj/structure/bed/sofa/vert/white, -/turf/open/floor/kutjevo/tan/grey_edge{ - dir = 1 - }, +/turf/open/floor/kutjevo/tan/grey_edge/north, /area/kutjevo/interior/complex/med/auto_doc) "vOc" = ( /obj/structure/cable/heavyduty{ @@ -16354,7 +14974,7 @@ /area/kutjevo/interior/complex/botany) "vPm" = ( /turf/open/floor/kutjevo/tan, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "vPE" = ( /obj/effect/decal/cleanable/blood/xeno{ icon_state = "xgib1" @@ -16398,9 +15018,7 @@ /area/kutjevo/exterior/lz_dunes) "vTe" = ( /obj/structure/platform_decoration/kutjevo, -/turf/open/desert/desert_shore/desert_shore1{ - dir = 4 - }, +/turf/open/desert/desert_shore/desert_shore1/east, /area/kutjevo/exterior/runoff_river) "vVr" = ( /turf/closed/wall/kutjevo/colony/reinforced, @@ -16413,9 +15031,7 @@ /obj/structure/platform/kutjevo{ dir = 4 }, -/turf/open/floor/kutjevo/colors/purple/edge{ - dir = 4 - }, +/turf/open/floor/kutjevo/colors/purple/edge/east, /area/kutjevo/interior/construction) "vXo" = ( /obj/structure/stairs/perspective/kutjevo{ @@ -16434,18 +15050,14 @@ /area/kutjevo/interior/power/comms) "vXs" = ( /obj/item/stack/sheet/metal, -/turf/open/floor/kutjevo/tan/grey_edge{ - dir = 8 - }, +/turf/open/floor/kutjevo/tan/grey_edge/west, /area/kutjevo/interior/complex/Northwest_Dorms) "vXK" = ( /obj/structure/bed/chair/office/dark, /turf/open/floor/kutjevo/colors, /area/kutjevo/interior/colony_South/power2) "vYC" = ( -/turf/open/desert/desert_shore/desert_shore1{ - dir = 4 - }, +/turf/open/desert/desert_shore/desert_shore1/east, /area/kutjevo/exterior/scrubland) "vYD" = ( /obj/effect/decal/cleanable/blood, @@ -16473,9 +15085,7 @@ /area/kutjevo/exterior/runoff_river) "vYW" = ( /obj/structure/machinery/recharge_station, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 10 - }, +/turf/open/floor/kutjevo/multi_tiles/southwest, /area/kutjevo/interior/colony_South/power2) "wae" = ( /obj/structure/flora/grass/tallgrass/desert/corner{ @@ -16483,6 +15093,9 @@ }, /turf/open/auto_turf/sand/layer1, /area/kutjevo/exterior/scrubland) +"wax" = ( +/turf/closed/wall/kutjevo/colony, +/area/kutjevo/exterior/lz_pad) "waP" = ( /obj/structure/stairs/perspective/kutjevo{ icon_state = "p_stair_ew_full_cap_butt" @@ -16559,9 +15172,7 @@ /turf/open/floor/kutjevo/colors, /area/kutjevo/interior/complex/botany) "wgK" = ( -/turf/open/floor/coagulation{ - icon_state = "8,0" - }, +/turf/open/floor/coagulation/icon8_0, /area/kutjevo/exterior/scrubland) "wgT" = ( /obj/structure/platform/kutjevo/rock{ @@ -16611,7 +15222,7 @@ "wlg" = ( /obj/structure/surface/rack, /turf/open/floor/kutjevo/tan, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "wlq" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/book/manual/engineering_construction, @@ -16619,9 +15230,7 @@ dir = 4 }, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 10 - }, +/turf/open/floor/kutjevo/multi_tiles/southwest, /area/kutjevo/interior/colony_South/power2) "wnk" = ( /obj/structure/largecrate/random/case/small, @@ -16651,9 +15260,7 @@ /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/kutjevo/tan/grey_edge{ - dir = 4 - }, +/turf/open/floor/kutjevo/tan/grey_edge/east, /area/kutjevo/interior/complex/Northwest_Dorms) "wpq" = ( /obj/structure/blocker/invisible_wall, @@ -16675,34 +15282,26 @@ /area/kutjevo/interior/power) "wqR" = ( /obj/structure/bed/chair, -/turf/open/gm/dirtgrassborder2{ - dir = 4 - }, +/turf/open/gm/dirtgrassborder2/east, /area/kutjevo/exterior/complex_border/med_park) "wrk" = ( /obj/structure/machinery/landinglight/ds2/delayone{ dir = 4 }, /turf/open/floor/kutjevo/multi_tiles, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "wrO" = ( -/turf/open/gm/river/desert/shallow_edge{ - dir = 1 - }, +/turf/open/gm/river/desert/shallow_edge/north, /area/kutjevo/exterior/spring) "wrV" = ( -/turf/open/desert/desert_shore/desert_shore1{ - dir = 4 - }, +/turf/open/desert/desert_shore/desert_shore1/east, /area/kutjevo/exterior/spring) "wsf" = ( /obj/structure/platform_decoration/kutjevo/rock{ dir = 8 }, /obj/structure/blocker/invisible_wall, -/turf/open/gm/river/desert/shallow_edge{ - dir = 1 - }, +/turf/open/gm/river/desert/shallow_edge/north, /area/kutjevo/interior/oob) "wsk" = ( /obj/structure/surface/table/almayer, @@ -16718,9 +15317,7 @@ dir = 1 }, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/kutjevo/colors/orange/inner_corner{ - dir = 1 - }, +/turf/open/floor/kutjevo/colors/orange/inner_corner/north, /area/kutjevo/interior/foremans_office) "wtk" = ( /obj/structure/barricade/wooden{ @@ -16729,12 +15326,6 @@ }, /turf/open/auto_turf/sand/layer0, /area/kutjevo/exterior/spring) -"wtu" = ( -/obj/structure/platform_decoration/kutjevo{ - dir = 4 - }, -/turf/open/floor/kutjevo/colors/orange, -/area/kutjevo/interior/complex/med/locks) "wtH" = ( /turf/closed/wall/kutjevo/colony, /area/kutjevo/interior/complex/botany/east) @@ -16760,7 +15351,7 @@ "wvg" = ( /obj/item/stack/sheet/metal, /turf/open/floor/almayer/research/containment/floor1, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "wvr" = ( /turf/open/floor/kutjevo/colors/orange, /area/kutjevo/interior/colony_South) @@ -16780,7 +15371,7 @@ "wvX" = ( /obj/structure/machinery/landinglight/ds2, /turf/open/floor/kutjevo/multi_tiles, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "wwc" = ( /obj/structure/prop/wooden_cross{ desc = "A wooden grave marker. The name 'Richard' is carved into the wood."; @@ -16792,7 +15383,7 @@ pixel_y = -2 }, /turf/open/auto_turf/sand/layer0, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "wwd" = ( /obj/item/stool, /turf/open/floor/kutjevo/colors/green/tile, @@ -16811,21 +15402,13 @@ /obj/structure/platform_decoration/kutjevo{ dir = 8 }, -/turf/open/gm/river/desert/shallow_edge{ - dir = 1 - }, +/turf/open/gm/river/desert/shallow_edge/north, /area/kutjevo/exterior/runoff_river) "wwQ" = ( /obj/structure/window/framed/kutjevo, /turf/open/floor/plating/kutjevo, /area/kutjevo/interior/complex/Northwest_Security_Checkpoint) "wwV" = ( -/obj/structure/platform/kutjevo/smooth{ - dir = 1 - }, -/obj/structure/platform/kutjevo/smooth{ - dir = 8 - }, /obj/structure/filingcabinet{ pixel_x = 8; pixel_y = 5 @@ -16899,9 +15482,7 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/kutjevo/tan/alt_edge{ - dir = 1 - }, +/turf/open/floor/kutjevo/tan/alt_edge/north, /area/kutjevo/interior/complex/Northwest_Flight_Control) "wDm" = ( /obj/structure/stairs/perspective/kutjevo{ @@ -16921,9 +15502,7 @@ /obj/structure/platform_decoration/kutjevo{ dir = 8 }, -/turf/open/gm/river/desert/shallow_edge{ - dir = 5 - }, +/turf/open/gm/river/desert/shallow_edge/northeast, /area/kutjevo/exterior/runoff_river) "wEU" = ( /obj/structure/barricade/wooden{ @@ -16931,14 +15510,11 @@ pixel_y = 13 }, /turf/open/floor/almayer/research/containment/floor2, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "wFa" = ( /obj/structure/filingcabinet, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/kutjevo/interior/complex/med) "wFQ" = ( /obj/structure/flora/grass/desert/lightgrass_9, @@ -16982,6 +15558,17 @@ /obj/effect/landmark/corpsespawner/colonist/kutjevo, /turf/open/floor/kutjevo/grey/plate, /area/kutjevo/interior/construction) +"wLB" = ( +/obj/item/fuel_cell, +/obj/structure/surface/rack, +/obj/structure/platform/kutjevo/smooth{ + dir = 1 + }, +/obj/structure/platform/kutjevo/smooth{ + dir = 4 + }, +/turf/open/floor/kutjevo/multi_tiles/southwest, +/area/kutjevo/interior/colony_South/power2) "wMw" = ( /obj/structure/blocker/invisible_wall, /turf/open/floor/kutjevo/multi_tiles, @@ -17010,9 +15597,7 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/kutjevo/colors/purple/inner_corner{ - dir = 1 - }, +/turf/open/floor/kutjevo/colors/purple/inner_corner/north, /area/kutjevo/interior/construction) "wOU" = ( /obj/structure/flora/bush/ausbushes/ausbush{ @@ -17085,10 +15670,8 @@ /turf/open/auto_turf/sand/layer0, /area/kutjevo/exterior/runoff_bridge) "wWy" = ( -/turf/open/gm/river/desert/deep{ - icon = 'icons/turf/floors/desert_water_toxic.dmi' - }, -/area/kutjevo/interior/oob) +/turf/open/gm/river/desert/deep/toxic, +/area/kutjevo/interior/complex/med) "wXd" = ( /turf/closed/wall/kutjevo/rock, /area/kutjevo/interior/colony_South) @@ -17097,7 +15680,7 @@ dir = 1 }, /turf/open/floor/kutjevo/multi_tiles, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "wXy" = ( /obj/effect/landmark/static_comms/net_two, /turf/open/auto_turf/sand/layer2, @@ -17150,9 +15733,7 @@ /area/kutjevo/interior/oob) "xaB" = ( /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 1 - }, +/turf/open/floor/kutjevo/multi_tiles/north, /area/kutjevo/exterior/runoff_bridge) "xaI" = ( /obj/structure/surface/table/almayer, @@ -17165,22 +15746,18 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/kutjevo/tan/alt_inner_edge{ - dir = 1 - }, +/turf/open/floor/kutjevo/tan/alt_inner_edge/north, /area/kutjevo/interior/complex/Northwest_Flight_Control) "xcG" = ( /obj/effect/decal/cleanable/blood/oil, /turf/open/floor/kutjevo/colors/orange, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "xcI" = ( /obj/structure/barricade/wooden{ dir = 4 }, /obj/effect/decal/cleanable/blood/drip, -/turf/open/floor/kutjevo/colors/orange/edge{ - dir = 4 - }, +/turf/open/floor/kutjevo/colors/orange/edge/east, /area/kutjevo/interior/complex/Northwest_Security_Checkpoint) "xdM" = ( /turf/open/floor/kutjevo/plate, @@ -17218,9 +15795,7 @@ dir = 1; pixel_y = 13 }, -/turf/open/floor/kutjevo/tan/multi_tiles{ - dir = 1 - }, +/turf/open/floor/kutjevo/tan/multi_tiles/north, /area/kutjevo/interior/power/comms) "xjg" = ( /obj/structure/platform/kutjevo{ @@ -17233,9 +15808,7 @@ /obj/structure/platform/kutjevo{ dir = 4 }, -/turf/open/desert/desert_shore/desert_shore1{ - dir = 8 - }, +/turf/open/desert/desert_shore/desert_shore1/west, /area/kutjevo/exterior/lz_river) "xjY" = ( /turf/open/floor/almayer/research/containment/floor1, @@ -17281,15 +15854,11 @@ /area/kutjevo/exterior/runoff_bridge) "xnk" = ( /obj/item/ammo_magazine/rifle/mar40, -/turf/open/floor/kutjevo/tan/multi_tiles{ - dir = 1 - }, +/turf/open/floor/kutjevo/tan/multi_tiles/north, /area/kutjevo/interior/power/comms) "xnr" = ( /obj/structure/blocker/invisible_wall, -/turf/open/desert/desert_shore/desert_shore1{ - dir = 1 - }, +/turf/open/desert/desert_shore/desert_shore1/north, /area/kutjevo/exterior/runoff_river) "xnT" = ( /obj/effect/landmark/monkey_spawn, @@ -17307,9 +15876,7 @@ /obj/structure/bed/chair/office/light{ dir = 8 }, -/turf/open/floor/kutjevo/tan/grey_inner_edge{ - dir = 4 - }, +/turf/open/floor/kutjevo/tan/grey_inner_edge/east, /area/kutjevo/interior/complex/med) "xoM" = ( /obj/structure/machinery/door/poddoor/shutters/almayer/open{ @@ -17319,18 +15886,14 @@ /turf/open/floor/plating/kutjevo, /area/kutjevo/interior/colony_South/power2) "xoV" = ( -/turf/open/desert/desert_shore/shore_corner2{ - dir = 4 - }, +/turf/open/desert/desert_shore/shore_corner2/east, /area/kutjevo/exterior/runoff_dunes) "xpd" = ( /obj/structure/largecrate/guns/merc, /turf/open/auto_turf/sand/layer0, /area/kutjevo/interior/power/comms) "xpk" = ( -/turf/open/desert/desert_shore/desert_shore1{ - dir = 4 - }, +/turf/open/desert/desert_shore/desert_shore1/east, /area/kutjevo/exterior/lz_river) "xpz" = ( /obj/structure/bed/chair{ @@ -17384,9 +15947,13 @@ "xrT" = ( /obj/structure/flora/grass/desert/lightgrass_8, /turf/open/auto_turf/sand/layer1, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "xti" = ( -/obj/structure/platform_decoration/kutjevo, +/obj/structure/stairs/perspective/kutjevo{ + dir = 4; + icon_state = "p_stair_full" + }, +/obj/structure/platform/kutjevo, /turf/open/auto_turf/sand/layer0, /area/kutjevo/exterior/complex_border/med_rec) "xtN" = ( @@ -17396,20 +15963,14 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/kutjevo/colors/cyan/edge{ - dir = 8 - }, +/turf/open/floor/kutjevo/colors/cyan/edge/west, /area/kutjevo/interior/complex/med/operating) "xuN" = ( -/turf/open/desert/desert_shore/shore_edge1{ - dir = 4 - }, +/turf/open/desert/desert_shore/shore_edge1/east, /area/kutjevo/exterior/spring) "xuY" = ( /obj/structure/barricade/wooden, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 4 - }, +/turf/open/floor/kutjevo/multi_tiles/east, /area/kutjevo/exterior/runoff_bridge) "xvg" = ( /obj/item/stool{ @@ -17459,9 +16020,7 @@ /area/kutjevo/interior/construction) "xyY" = ( /obj/structure/machinery/light/small, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 4 - }, +/turf/open/floor/kutjevo/multi_tiles/east, /area/kutjevo/exterior/runoff_bridge) "xzd" = ( /obj/structure/flora/bush/ausbushes/reedbush, @@ -17482,7 +16041,7 @@ dir = 4 }, /turf/open/floor/almayer/research/containment/floor1, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "xBb" = ( /obj/structure/platform/kutjevo{ dir = 4 @@ -17495,16 +16054,14 @@ /turf/open/floor/almayer/research/containment/floor2, /area/kutjevo/exterior/Northwest_Colony) "xCc" = ( -/turf/open/gm/dirtgrassborder2{ - icon_state = "wall3" - }, +/turf/open/gm/dirtgrassborder2/wall3, /area/kutjevo/exterior/complex_border/med_park) "xDR" = ( /obj/structure/machinery/landinglight/ds2/delaythree{ dir = 8 }, /turf/open/floor/kutjevo/multi_tiles, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "xDY" = ( /obj/item/weapon/gun/rifle/m16, /turf/open/floor/kutjevo/colors/orange, @@ -17520,7 +16077,7 @@ /obj/structure/surface/rack, /obj/item/packageWrap, /turf/open/floor/almayer/research/containment/floor2, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "xGF" = ( /obj/structure/stairs/perspective/kutjevo{ dir = 4; @@ -17528,6 +16085,12 @@ }, /turf/open/floor/plating/kutjevo, /area/kutjevo/interior/colony_South/power2) +"xGI" = ( +/obj/structure/machinery/power/terminal{ + dir = 4 + }, +/turf/open/floor/kutjevo/multi_tiles, +/area/kutjevo/interior/power) "xHm" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_29"; @@ -17589,9 +16152,7 @@ layer = 3.1 }, /obj/structure/machinery/power/port_gen/pacman/super, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 10 - }, +/turf/open/floor/kutjevo/multi_tiles/southwest, /area/kutjevo/interior/colony_South/power2) "xOU" = ( /obj/structure/sign/safety/hazard{ @@ -17614,9 +16175,7 @@ /turf/open/auto_turf/sand/layer1, /area/kutjevo/exterior/construction) "xQz" = ( -/turf/open/floor/kutjevo/colors/cyan/inner_corner{ - dir = 1 - }, +/turf/open/floor/kutjevo/colors/cyan/inner_corner/north, /area/kutjevo/interior/complex/med/triage) "xQM" = ( /obj/item/tool/minihoe, @@ -17626,9 +16185,6 @@ /obj/effect/landmark/objective_landmark/science, /turf/open/floor/kutjevo/colors/green/tile, /area/kutjevo/interior/complex/botany) -"xRh" = ( -/turf/closed/wall/kutjevo/colony/reinforced/hull, -/area/kutjevo/interior/power_pt2_electric_boogaloo) "xRo" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony/autoname{ dir = 1; @@ -17670,9 +16226,7 @@ /obj/structure/surface/rack, /obj/structure/machinery/light, /obj/item/stack/sheet/metal/small_stack, -/turf/open/floor/kutjevo/colors/orange/edge{ - dir = 8 - }, +/turf/open/floor/kutjevo/colors/orange/edge/west, /area/kutjevo/interior/complex/Northwest_Security_Checkpoint) "xVt" = ( /obj/structure/platform/kutjevo/smooth, @@ -17690,9 +16244,7 @@ /turf/open/auto_turf/sand/layer0, /area/kutjevo/interior/colony_N_East) "xVZ" = ( -/turf/open/floor/kutjevo/tan/multi_tiles{ - dir = 8 - }, +/turf/open/floor/kutjevo/tan/multi_tiles/west, /area/kutjevo/interior/colony_South/power2) "xWK" = ( /turf/open/auto_turf/sand/layer1, @@ -17723,9 +16275,7 @@ "xYR" = ( /obj/item/stack/sheet/wood, /obj/item/storage/belt/marine, -/turf/open/floor/kutjevo/tan/multi_tiles{ - dir = 1 - }, +/turf/open/floor/kutjevo/tan/multi_tiles/north, /area/kutjevo/interior/power/comms) "xZd" = ( /obj/structure/bed/chair{ @@ -17781,16 +16331,12 @@ /area/kutjevo/exterior/lz_dunes) "yaI" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/kutjevo/tan/grey_edge{ - dir = 4 - }, +/turf/open/floor/kutjevo/tan/grey_edge/east, /area/kutjevo/interior/complex/botany/east_tech) "ybd" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/faxmachine, -/turf/open/floor/kutjevo/tan/alt_edge{ - dir = 1 - }, +/turf/open/floor/kutjevo/tan/alt_edge/north, /area/kutjevo/interior/complex/Northwest_Flight_Control) "ybh" = ( /obj/structure/filtration/machine_96x96/indestructible{ @@ -17814,25 +16360,19 @@ /turf/open/floor/kutjevo/tan, /area/kutjevo/interior/complex/Northwest_Security_Checkpoint) "ycN" = ( -/turf/open/floor/kutjevo/tan/multi_tiles{ - dir = 4 - }, +/turf/open/floor/kutjevo/tan/multi_tiles/east, /area/kutjevo/interior/complex/botany) "ydh" = ( /obj/structure/platform_decoration/kutjevo, -/turf/open/gm/river/desert/shallow_edge{ - dir = 4 - }, +/turf/open/gm/river/desert/shallow_edge/east, /area/kutjevo/exterior/runoff_river) "yeY" = ( /obj/item/stack/sheet/wood, /turf/open/floor/kutjevo/colors/orange, /area/kutjevo/interior/power) "yfc" = ( -/turf/open/desert/desert_shore/desert_shore1{ - dir = 8 - }, -/area/kutjevo/exterior/Northwest_Colony) +/turf/open/desert/desert_shore/desert_shore1/west, +/area/kutjevo/exterior/lz_pad) "yfo" = ( /turf/open/floor/kutjevo/colors/orange, /area/kutjevo/interior/colony_central) @@ -17886,9 +16426,7 @@ icon_state = "tree_2"; pixel_y = 14 }, -/turf/open/desert/desert_shore/desert_shore1{ - dir = 4 - }, +/turf/open/desert/desert_shore/desert_shore1/east, /area/kutjevo/exterior/spring) "yir" = ( /turf/open/floor/kutjevo/colors/orange, @@ -17906,9 +16444,7 @@ /turf/open/floor/kutjevo/colors/cyan/tile, /area/kutjevo/interior/complex/med/cells) "yjF" = ( -/turf/open/desert/desert_shore/shore_corner2{ - dir = 8 - }, +/turf/open/desert/desert_shore/shore_corner2/west, /area/kutjevo/exterior/runoff_bridge) "yjI" = ( /turf/open/floor/kutjevo/tan, @@ -17931,9 +16467,7 @@ /area/kutjevo/interior/complex/med/cells) "ykL" = ( /obj/structure/largecrate/random, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 4 - }, +/turf/open/floor/kutjevo/multi_tiles/east, /area/kutjevo/interior/colony_South/power2) "ykY" = ( /obj/effect/landmark/xeno_hive_spawn, @@ -17960,10 +16494,7 @@ /obj/item/storage/pill_bottle/tramadol/skillless, /obj/structure/platform/kutjevo/smooth, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/kutjevo/interior/complex/med/operating) "ymc" = ( /obj/structure/machinery/shower{ @@ -18690,9 +17221,9 @@ dxF dxF dxF nTw -huR -huR -huR +dmy +dmy +dmy nTw dxF sWF @@ -18857,10 +17388,10 @@ dxF dxF dxF dxF -huR -huR -huR -xBm +dmy +dmy +dmy +jGF sWF sWF nJp @@ -19024,9 +17555,9 @@ dxF dxF dxF dxF -huR -huR -huR +dmy +dmy +dmy oun wwQ oca @@ -19191,9 +17722,9 @@ dxF dxF dxF dxF -huR -huR -huR +dmy +dmy +dmy oun wwQ oFX @@ -19358,9 +17889,9 @@ dxF dxF dxF dxF -huR -huR -huR +dmy +dmy +dmy oun wwQ oFX @@ -19506,13 +18037,13 @@ dxF dxF dxF dxF -ybV -ybV -ybV -ybV -ybV -ybV -ybV +oNE +oNE +oNE +oNE +oNE +oNE +oNE dxF dxF dxF @@ -19525,10 +18056,10 @@ dxF dxF dxF dxF -huR -huR -huR -xBm +dmy +dmy +dmy +jGF sWF bQk opQ @@ -19671,17 +18202,17 @@ dxF dxF dxF wwc -hrz -arM -ybV -mSG -ybV -mSG -mSG -mSG -ybV -ybV -ybV +tHh +tbk +oNE +rmg +oNE +rmg +rmg +rmg +oNE +oNE +oNE dxF dxF dxF @@ -19692,10 +18223,10 @@ dxF dxF dxF dxF -huR -huR -huR -xBm +dmy +dmy +dmy +jGF qzj sOF swq @@ -19830,17 +18361,17 @@ dxF dxF dxF dxF -hrz +tHh dxF dxF dxF dxF -hrz -hrz -hrz -hrz -hrz -arM +tHh +tHh +tHh +tHh +tHh +tbk eiX eiX eiX @@ -19849,7 +18380,7 @@ eiX eiX eiX eiX -ksW +nvi dxF dxF dxF @@ -19859,10 +18390,10 @@ dxF dxF dxF dxF -huR -huR -huR -xBm +dmy +dmy +dmy +jGF qzj qfw rwL @@ -19997,28 +18528,28 @@ dxF mjW yfc tIY -hrz +tHh dxF dxF dxF -hrz +tHh bWA -hrz -hrz -hrz -sVF -iin -iin -hrz -hrz -hrz -hrz -hrz -hrz -hrz -hrz -hrz -hrz +tHh +tHh +tHh +lKk +kWX +kWX +tHh +tHh +tHh +tHh +tHh +tHh +tHh +tHh +tHh +tHh dxF dxF dxF @@ -20026,10 +18557,10 @@ dxF dxF dxF dxF -huR -huR -huR -xBm +dmy +dmy +dmy +jGF wwQ eur opQ @@ -20100,10 +18631,10 @@ wGH cWV exI nbV -nbV umo nbV nbV +nbV lAI lAI lAI @@ -20164,39 +18695,39 @@ dxF eFy dDL dOU -hrz -hrz -hrz -hrz -hrz -hrz -sVF -sVF -sVF -sVF -sVF -iin -iin -hrz -hrz -bNG -hrz -hrz -sVF -sVF -sVF -hrz -hrz +tHh +tHh +tHh +tHh +tHh +tHh +lKk +lKk +lKk +lKk +lKk +kWX +kWX +tHh +tHh +rst +tHh +tHh +lKk +lKk +lKk +tHh +tHh bWA -hrz +tHh dxF dxF dxF dxF -iin -huR -huR -xBm +kWX +dmy +dmy +jGF sWF sWF khW @@ -20331,40 +18862,40 @@ dxF tnI rfz dyW -sVF -sVF -sVF -iin -iin -sVF -sVF -hrz -hrz -hrz -sVF -iin -iin -iin -hrz -hrz -hrz -hrz -sVF -hrz -hrz -hrz -hrz -hrz -hrz -hrz -iin -iin -sVF -sVF -huR -huR -xBm -aUF +lKk +lKk +lKk +kWX +kWX +lKk +lKk +tHh +tHh +tHh +lKk +kWX +kWX +kWX +tHh +tHh +tHh +tHh +lKk +tHh +tHh +tHh +tHh +tHh +tHh +tHh +kWX +kWX +lKk +lKk +dmy +dmy +jGF +bEt sWF sWF sWF @@ -20496,50 +19027,50 @@ dxF dxF dxF dxF -iin -hrz -hrz -hrz -hrz -sVF -hrz -hrz -hrz -iin -hrz -hrz -hrz -hrz -hrz -hrz -hrz -sVF -sVF -sVF -sVF -sVF -sVF -sVF -hrz -hrz -hrz -hrz -hrz -sVF -sVF -sVF -huR -huR -lRy -dht -dht -dht -dht -dht -dht -dht -dht -dht +kWX +tHh +tHh +tHh +tHh +lKk +tHh +tHh +tHh +kWX +tHh +tHh +tHh +tHh +tHh +tHh +tHh +lKk +lKk +lKk +lKk +lKk +lKk +lKk +tHh +tHh +tHh +tHh +tHh +lKk +lKk +lKk +dmy +dmy +dBj +lzD +lzD +lzD +lzD +lzD +lzD +lzD +lzD +lzD rzh dxF dxF @@ -20664,49 +19195,49 @@ dxF dxF dxF dxF -hrz -hrz -iin -sVF +tHh +tHh +kWX +lKk qDH qDH qDH -iin -iin -iin -iin -iin -sVF +kWX +kWX +kWX +kWX +kWX +lKk qDH qDH -sVF -sVF -sVF -sVF -sVF -sVF -sVF -sVF -sVF -sVF -sVF +lKk +lKk +lKk +lKk +lKk +lKk +lKk +lKk +lKk +lKk +lKk qDH qDH qDH -sVF -sVF -huR -huR -sVF -sVF -sVF -iin -iin -iin -sVF -sVF -sVF -sVF +lKk +lKk +dmy +dmy +lKk +lKk +lKk +kWX +kWX +kWX +lKk +lKk +lKk +lKk dxF dxF dxF @@ -20831,49 +19362,49 @@ dxF dxF dxF dxF -hrz -iin -iin -sVF -lRy -dht -dht -dht -dht -dht -dht -dht -dht -dht -dht -dht -dht -dht -dht -dht -dht -dht -dht -dht -dht -dht -dht -dht -dht -lRy -huR -huR -huR -sVF -sVF -sVF -sVF -sVF -sVF -sVF -sVF -sVF -sVF +tHh +kWX +kWX +lKk +dBj +lzD +lzD +lzD +lzD +lzD +lzD +lzD +lzD +lzD +lzD +lzD +lzD +lzD +lzD +lzD +lzD +lzD +lzD +lzD +lzD +lzD +lzD +lzD +lzD +dBj +dmy +dmy +dmy +lKk +lKk +lKk +lKk +lKk +lKk +lKk +lKk +lKk +lKk dxF dxF dxF @@ -20998,11 +19529,11 @@ dxF dxF dxF dxF -hrz -iin -sVF +tHh +kWX +lKk oJE -xBm +jGF tGE hnq dhL @@ -21027,19 +19558,19 @@ ccs hnq dhL tGE -xBm -huR -huR -huR -sVF -sVF +jGF +dmy +dmy +dmy +lKk +lKk qDH qDH qDH qDH qDH -sVF -sVF +lKk +lKk dxF dxF dxF @@ -21165,17 +19696,17 @@ dxF dxF dxF dxF -iin -sVF -hrz -sVF -xBm +kWX +lKk +tHh +lKk +jGF wvX hzN -hzN wqk hzN hzN +hzN ppX ppX ppX @@ -21194,17 +19725,17 @@ wqk hzN hzN dpt -xBm -huR -huR -huR -sVF +jGF +dmy +dmy +dmy +lKk oJE -lRy -dht -dht -dht -lRy +dBj +lzD +lzD +lzD +dBj qnd xrT dxF @@ -21331,12 +19862,12 @@ dxF dxF dxF dxF -iin -iin -sVF -hrz -sVF -xBm +kWX +kWX +lKk +tHh +lKk +jGF sUt hzN hzN @@ -21361,19 +19892,19 @@ hzN ppX hzN lNl -xBm -huR -huR -huR -sVF +jGF +dmy +dmy +dmy +lKk oJE -xBm +jGF uTr mfk mfk -xBm +jGF qnd -sVF +lKk dxF dxF dxF @@ -21498,12 +20029,12 @@ dxF dxF dxF dxF -iin -bGg -sVF -hrz +kWX +cpD +lKk +tHh oJE -xBm +jGF saK hzN hzN @@ -21528,20 +20059,20 @@ hzN ppX hzN qTI -xBm -huR -huR -sVF -sVF +jGF +dmy +dmy +lKk +lKk oJE -xBm +jGF rlI pRL vrB -xBm +jGF qnd -sVF -pkP +lKk +wax pkP pkP hrz @@ -21665,12 +20196,12 @@ dxF dxF dxF dxF -iin -sVF -sVF -sVF +kWX +lKk +lKk +lKk oJE -xBm +jGF sLf hzN ppX @@ -21695,20 +20226,20 @@ ppX ppX hzN wXf -xBm -huR -huR -sVF -iin +jGF +dmy +dmy +lKk +kWX oJE -xBm +jGF fmN fmN fmN -xBm +jGF qnd -sVF -mar +lKk +mAb ggC mar hrz @@ -21770,10 +20301,10 @@ wGH cWV uhO bbc -nbV umo nbV nbV +nbV lAI lAI lAI @@ -21832,12 +20363,12 @@ dxF dxF dxF dxF -iin -sVF -sVF -sVF +kWX +lKk +lKk +lKk oJE -xBm +jGF wvX hzN ppX @@ -21862,20 +20393,20 @@ hzN eBI hzN dpt -xBm -huR -huR -sVF -iin +jGF +dmy +dmy +lKk +kWX oJE -xBm +jGF wlg vPm vPm -xBm +jGF qnd -sVF -mar +lKk +mAb ggC mar hrz @@ -21999,12 +20530,12 @@ dxF dxF dxF dxF -iin -iin -sVF -hrz +kWX +kWX +lKk +tHh oJE -xBm +jGF sUt hzN ppX @@ -22029,20 +20560,20 @@ hzN hzN hzN lNl -xBm -huR -huR -sVF -sVF +jGF +dmy +dmy +lKk +lKk oJE -xBm +jGF qUC kVA fmN -xBm +jGF qnd -sVF -mar +lKk +mAb ggC mar sVF @@ -22166,12 +20697,12 @@ dxF dxF dxF dxF -hrz -iin -hrz -iin -iin -xBm +tHh +kWX +tHh +kWX +kWX +jGF saK hzN ppX @@ -22196,20 +20727,20 @@ hzN hzN hzN qTI -xBm -huR -huR -sVF -sVF +jGF +dmy +dmy +lKk +lKk oJE -lRy -dht -dht -dht -lRy +dBj +lzD +lzD +lzD +dBj qnd -sVF -mar +lKk +mAb pkP mar iin @@ -22333,12 +20864,12 @@ dxF dxF dxF dxF -hrz -hrz -hrz -hrz +tHh +tHh +tHh +tHh oJE -xBm +jGF mIT hzN ppX @@ -22363,20 +20894,20 @@ ppX ppX hzN wXf -xBm -huR -huR -huR -sVF -sVF +jGF +dmy +dmy +dmy +lKk +lKk rSU rSU rSU rSU rSU -sVF -sVF -mar +lKk +lKk +mAb ggC mar hrz @@ -22500,12 +21031,12 @@ dxF dxF dxF dxF -hrz +tHh mao -hrz -iin +tHh +kWX oJE -xBm +jGF wvX hzN hzN @@ -22530,20 +21061,20 @@ hzN ppX eBI dpt -xBm -huR -huR -huR -sVF -sVF -sVF -sVF -sVF -sVF -sVF -sVF -bGg -mar +jGF +dmy +dmy +dmy +lKk +lKk +lKk +lKk +lKk +lKk +lKk +lKk +cpD +mAb ggC mar hrz @@ -22667,12 +21198,12 @@ dxF dxF dxF dxF -hrz -hrz -hrz -hrz -iin -xBm +tHh +tHh +tHh +tHh +kWX +jGF sUt hzN hzN @@ -22697,20 +21228,20 @@ hzN ppX eBI lNl -xBm -huR -huR -huR -sVF -hrz -sVF -sVF -sVF -sVF -tjJ -sVF -sVF -mar +jGF +dmy +dmy +dmy +lKk +tHh +lKk +lKk +lKk +lKk +izY +lKk +lKk +mAb ggC mar hrz @@ -22834,18 +21365,18 @@ dxF dxF dxF dxF -hrz -hrz -hrz -hrz +tHh +tHh +tHh +tHh oJE -xBm +jGF saK hzN -hzN wqk hzN hzN +hzN ppX ppX ppX @@ -22864,18 +21395,18 @@ wqk hzN hzN qTI -xBm -huR -huR -huR -lRy -dht -dht -dht -dht -dht -dht -dht +jGF +dmy +dmy +dmy +dBj +lzD +lzD +lzD +lzD +lzD +lzD +lzD hoK hoK hoK @@ -23001,12 +21532,12 @@ dxF dxF dxF dxF -hrz -hrz -hrz -sVF +tHh +tHh +tHh +lKk oJE -xBm +jGF tGE pPz jUK @@ -23031,17 +21562,17 @@ tHI pPz jUK tGE -xBm -huR -huR -huR -xBm -aUF -aUF -aUF -aUF -aUF -aUF +jGF +dmy +dmy +dmy +jGF +bEt +bEt +bEt +bEt +bEt +bEt hoK hoK hbL @@ -23168,42 +21699,42 @@ dxF dxF dxF dxF -hrz -hrz -sVF -sVF +tHh +tHh +lKk +lKk oJE -lRy -dht -dht -dht -dht -dht -dht -dht -dht -dht -dht -dht -dht -dht -dht -dht -dht -dht -dht -dht -dht -dht -dht -dht -dht -lRy -huR -huR -huR +dBj +lzD +lzD +lzD +lzD +lzD +lzD +lzD +lzD +lzD +lzD +lzD +lzD +lzD +lzD +lzD +lzD +lzD +lzD +lzD +lzD +lzD +lzD +lzD +lzD +dBj +dmy +dmy +dmy lxN -aUF +bEt hoK hoK dkW @@ -23335,42 +21866,42 @@ dxF dxF dxF dxF -hrz -iin -sVF -sVF -bGg +tHh +kWX +lKk +lKk +cpD rSU rSU rSU -sVF +lKk rSU rSU -sVF +lKk rSU rSU -sVF -sVF -sVF -sVF -sVF -sVF -sVF -sVF -sVF -sVF -sVF -sVF -sVF -sVF -sVF +lKk +lKk +lKk +lKk +lKk +lKk +lKk +lKk +lKk +lKk +lKk +lKk +lKk +lKk +lKk rSU -sVF -huR -huR -huR -xBm -aUF +lKk +dmy +dmy +dmy +jGF +bEt hoK lOr iNY @@ -23501,43 +22032,43 @@ dxF dxF dxF dxF -iin -iin -iin -iin -sVF -hrz -sVF -sVF -sVF -sVF -sVF -sVF -sVF -sVF -hrz -sVF -sVF -hrz -hrz -hrz -hrz -iin -iin +kWX +kWX +kWX +kWX +lKk +tHh +lKk +lKk +lKk +lKk +lKk +lKk +lKk +lKk +tHh +lKk +lKk +tHh +tHh +tHh +tHh +kWX +kWX oKx oKx -sVF +lKk qDH qDH qDH qDH qDH -sVF -huR -huR -huR -xBm -aUF +lKk +dmy +dmy +dmy +jGF +bEt uAJ iZi nZK @@ -23669,42 +22200,42 @@ dxF dxF dxF dxF -iin -iin -iin -iin -iin -iin -iin -sVF -sVF -sVF -sVF -sVF -dFx -hrz -hrz -hrz -hrz -hrz -sVF -hrz -hrz -hrz -hrz +kWX +kWX +kWX +kWX +kWX +kWX +kWX +lKk +lKk +lKk +lKk +lKk +cLr +tHh +tHh +tHh +tHh +tHh +lKk +tHh +tHh +tHh +tHh oKx -sVF +lKk gTO -dht -dht -dht -lRy +lzD +lzD +lzD +dBj qnd -huR -huR -huR -xBm -aUF +dmy +dmy +dmy +jGF +bEt hEC ipy nZK @@ -23841,37 +22372,37 @@ dxF dxF dxF rzh -dht +lzD bEn bEn -dht -dht -dht +lzD +lzD +lzD xAr -dht +lzD xAr wvg -dht -dht -dht -dht -lRy -hrz -hrz -hrz -hrz +lzD +lzD +lzD +lzD +dBj +tHh +tHh +tHh +tHh eqQ xFN cYb gmA juC -xBm +jGF qnd -huR -huR -huR -xBm -aUF +dmy +dmy +dmy +jGF +bEt uAJ mbc nZK @@ -23928,13 +22459,13 @@ tWM cRo tlN kfe -dux +tlK boR tXm tWM tXm boR -dux +tlK tlN iaj iaj @@ -24020,25 +22551,25 @@ uzp acx jnV jnV -aUF -aUF -xBm -hrz -hrz -hrz -hrz +bEt +bEt +jGF +tHh +tHh +tHh +tHh oJE -xBm +jGF fmN vPm uTr kBm bdd -huR -huR -huR -xBm -gzb +dmy +dmy +dmy +jGF +cou hEC fEu nZK @@ -24095,13 +22626,13 @@ tWM xZr tlN kfe -dux +tlK vXq kKb tWM tXm boR -dux +tlK tlN iaj iaj @@ -24188,24 +22719,24 @@ sjE pHR jnV jnV -aUF -xBm -sVF -hrz -hrz -hrz +bEt +jGF +lKk +tHh +tHh +tHh oJE -xBm +jGF kDD vPm vPm rdx bdd -huR -huR -huR -xBm -aUF +dmy +dmy +dmy +jGF +bEt hoK pLN fYE @@ -24262,13 +22793,13 @@ tWM wtZ tlN kfe -dux +tlK boR tXm jFB kKb vXq -dux +tlK tlN iaj iaj @@ -24356,23 +22887,23 @@ cWc hst jnV jnV -xBm -sVF +jGF +lKk fYF -hrz -hrz +tHh +tHh oJE -xBm +jGF fmN vPm fmN ctA qnd -huR -huR -huR -xBm -aUF +dmy +dmy +dmy +jGF +bEt hoK hoK ybd @@ -24523,23 +23054,23 @@ cWc cWc dfz jnV -xBm -sVF +jGF +lKk fSK -sVF -sVF +lKk +lKk oJE -xBm +jGF fmN vPm bGi -xBm +jGF bdd -huR -huR -huR -xBm -aUF +dmy +dmy +dmy +jGF +bEt hoK hoK nmw @@ -24691,22 +23222,22 @@ cWc kSy pma wEU -sVF +lKk iiy eGL -bGg -sVF -xBm +cpD +lKk +jGF xcG vPm fmN -xBm -iin -huR -huR -huR -xBm -aUF +jGF +kWX +dmy +dmy +dmy +jGF +bEt hoK yhV onC @@ -24800,15 +23331,15 @@ ich jqt pyp pyp -aHW +pyp uPu vYI vYI vYI uCR -aHW -aHW -aHW +pyp +pyp +pyp aHW rwj rwj @@ -24858,22 +23389,22 @@ cWc jiX fto pUB -sVF +lKk arh -sVF -sVF -iin -xBm +lKk +lKk +kWX +jGF dpH aIy vPm -xBm -iin -huR -huR -huR -xBm -aUF +jGF +kWX +dmy +dmy +dmy +jGF +bEt uAJ uEr nZK @@ -25024,23 +23555,23 @@ lSc lSc fto jnV -xBm -sVF -sVF -sVF -sVF -iin -xBm +jGF +lKk +lKk +lKk +lKk +kWX +jGF eUJ aIy juC -xBm +jGF qnd -sVF -huR -kZV -xBm -aUF +lKk +dmy +sWR +jGF +bEt uAJ jOA nZK @@ -25191,23 +23722,23 @@ iXh ntz jnV jnV -xBm -sVF -sVF -sVF -sVF +jGF +lKk +lKk +lKk +lKk oJE -xBm +jGF fmN dpH juC -xBm +jGF qnd -iin -huR -huR -xBm -gzb +kWX +dmy +dmy +jGF +cou hEC fKD nZK @@ -25362,19 +23893,19 @@ rzh dxF dxF iCQ -sVF -sVF -lRy -dht -dht -dht -lRy +lKk +lKk +dBj +lzD +lzD +lzD +dBj qnd -iin -huR -huR -xBm -aUF +kWX +dmy +dmy +jGF +bEt uAJ iZi nZK @@ -25473,7 +24004,7 @@ cvm hQj hQj hQj -cvm +mcA rwj uZT uZT @@ -25530,18 +24061,18 @@ dxF dxF dxF dxF -sVF +lKk rSU rSU rSU rSU rSU -sVF -sVF -huR -huR -xBm -aUF +lKk +lKk +dmy +dmy +jGF +bEt hoK xca pyZ @@ -25640,7 +24171,7 @@ cvm hQj hQj hQj -cvm +mcA aHW aHW aHW @@ -25807,7 +24338,7 @@ cvm kdY kdY kdY -cvm +tEj rwj muG muG @@ -25968,13 +24499,13 @@ uGd fkP vin pBV -hQj +xGI uBz cvm hQj hQj hQj -cvm +jGo rwj wMw wMw @@ -26135,13 +24666,13 @@ eyU dyU pyp pyp -hQj +sNp pyp xjY xjY bbL xjY -voy +raV rwj uZT uZT @@ -26303,7 +24834,7 @@ dfY pyp pyp pyp -aHW +pyp yas ddk ddk @@ -26470,7 +25001,7 @@ xpk tQB ePx pBV -sID +ksb vdl xzY xzY @@ -26637,7 +25168,7 @@ nah xXI cTz pBV -qdj +bkn xzY oum hQj @@ -26804,7 +25335,7 @@ qjz niT cTz pBV -qdj +bkn xzY hQj hQj @@ -26971,7 +25502,7 @@ soe gCb cTz pBV -qdj +bkn oKA hQj hQj @@ -32774,7 +31305,7 @@ jwR qgW nAo nIA -rYS +mbS xhV kxW eNf @@ -33414,9 +31945,9 @@ dxF dxF dxF dxF -mxB -mxB -mxB +dxF +dxF +dxF dxF dxF hkO @@ -33581,8 +32112,8 @@ jPt pKP dxF dxF -mxB -mxB +dxF +dxF mhj dxF dxF @@ -33748,10 +32279,10 @@ bjj fpO orL dxF -mxB +dxF mhj fjF -gBl +wff dxF dxF eXm @@ -33912,7 +32443,7 @@ jzl jzl fUL jzl -kYs +lcs jzl jzl eMC @@ -33954,7 +32485,7 @@ kDS wGD mNM xvn -hGM +mNM xms dRj dRj @@ -34912,22 +33443,22 @@ oag oVX oVX iZu -jhS -jhS -kVJ -jhS -jhS -jhS +jzl +jzl +jzl +jzl +jzl +jzl wff wff wff wff -jhS -jhS -jhS -kVJ -kVJ -rYS +eXm +eXm +lHs +lHs +eXm +eXm lce hVg qgW @@ -35079,22 +33610,22 @@ snr oVX oVX cfa -kVJ +lcs wWy wWy wWy wWy -kVJ +lcs wff wff wff wff -kVJ -wWy -wWy -wWy -wWy -lLn +lHs +bnQ +bnQ +bnQ +bnQ +lHs kDS kDS eOM @@ -35238,7 +33769,7 @@ aHl lCu oVX jzl -pbY +jzl kBb uTj abS @@ -35246,22 +33777,22 @@ snr oVX oVX cfa -kVJ -wWy +lcs wWy -hdF +jzl +jzl wWy -kVJ +lcs nnf wff wff wff -kVJ -wWy -wWy -hdF -wWy -lLn +lHs +bnQ +eXm +eXm +bnQ +lHs kDS kDS kct @@ -35405,7 +33936,7 @@ etm lCu oVX jzl -pbY +jzl cZt cDf dvL @@ -35413,22 +33944,22 @@ snr oVX oVX cfa -kVJ -wWy -wWy +lcs wWy +jzl +jzl wWy -kVJ +lcs nnf wff wff wff -kVJ -wWy -wWy -wWy -wWy -lLn +lHs +bnQ +eXm +eXm +bnQ +lHs bGX kDS qgW @@ -35580,22 +34111,22 @@ snr oVX oVX ewF -kVJ +lcs wWy wWy wWy wWy -kVJ +lcs nnf nnf nnf wff -kVJ -wWy -wWy -wWy -wWy -lLn +lHs +bnQ +bnQ +bnQ +bnQ +lHs vDS vDS wGD @@ -35747,22 +34278,22 @@ oag oVX oVX sFL -jhS -jhS -kVJ -jhS -jhS -jhS +jzl +jzl +jzl +jzl +jzl +jzl wff nnf wff wff -jhS -jhS -jhS -kVJ -kVJ -rYS +eXm +eXm +lHs +lHs +eXm +eXm nIn cAt vDS @@ -36061,8 +34592,8 @@ rlB ryB nsd pfz -gCG -gld +pfz +pfz jhb eCY tOe @@ -36228,8 +34759,8 @@ rlB ryB nsd pfz -jos -gld +pfz +pfz jhb bKi asQ @@ -36395,8 +34926,8 @@ rlB ryB nsd pfz -jos -gld +pfz +pfz jhb eCY ygh @@ -36459,8 +34990,8 @@ vDS mNM xvn dJT -hGM -hGM +mNM +mNM oeb fyD oeb @@ -36562,7 +35093,7 @@ rlB jPW kGU kOD -sxq +wzC xti jhb ayB @@ -36626,7 +35157,7 @@ gqQ vys dRj lok -hGM +mNM qrl nOH fyD @@ -36739,9 +35270,9 @@ dRX dRX dRX jhb -pbY -pbY -pbY +jzl +jzl +jzl jzl lBP jzl @@ -37270,7 +35801,7 @@ jhD oQc oQc oQc -xRh +oQc yir xkk yir @@ -37461,7 +35992,7 @@ kDS nOH xuY xyY -hGM +mNM juH dRj dRj @@ -37628,7 +36159,7 @@ vfd mNM xvn dJT -hGM +mNM wuy mSd dTM @@ -37766,9 +36297,9 @@ xWK xWK xWK jhx -xRh -xRh -xRh +dip +dip +dip dnR lah kHm @@ -37933,9 +36464,9 @@ xWK xWK xWK jhx -nlc +ubR tWv -nlc +ubR eSH stt stt @@ -38100,9 +36631,9 @@ bKH xWK xWK xWK -nlc +ubR tWv -nlc +ubR sPV rQY rQY @@ -38267,9 +36798,9 @@ bKH xWK xWK xWK -xRh -xRh -xRh +dip +dip +dip eVv rQY pxb @@ -38420,9 +36951,9 @@ slF slF slF slF -sOy -kPA -hwA +slF +slF +slF nsF kOo nYz @@ -38440,9 +36971,9 @@ lah sPV rQY rkO -xRh +dip frx -xRh +dip eVv rxr qJx @@ -38451,7 +36982,7 @@ dip wtH wtH tIz -nie +tIz vHL vHL vHL @@ -38460,18 +36991,18 @@ tIz tIz wtH wtH -nie -jhS -jhS -jhS -jhS +wtH +wCU +wCU +wCU +wCU tGi tGi tGi tGi tGi -jhS -jhS +wCU +wCU dxF dxF dxF @@ -38587,9 +37118,9 @@ fpJ fpJ pIE wwV -wtu nAy -pxl +nAy +nAy lNt ktq ngX @@ -38607,9 +37138,9 @@ stt eOc rQY epR -mcv +ubR tWv -mcv +ubR sPV rQY rQY @@ -38627,18 +37158,18 @@ vHh tIz wtH wtH -nie -jhS -jhS -jhS -jhS -kVJ -kVJ -kVJ -kVJ -kVJ -jhS -jhS +wtH +wCU +wCU +wCU +wCU +khI +khI +khI +khI +khI +wCU +wCU dxF dxF dxF @@ -38774,9 +37305,9 @@ rQY rQY rQY epR -mcv +ubR tWv -mcv +ubR sPV rQY rQY @@ -38794,18 +37325,18 @@ sAe hMu wCU wCU -btI -btI -btI -btI -jhS +wCU +wCU +wCU +wCU +wCU mjP mjP mjP mjP mjP -jhS -jhS +wCU +wCU dxF dxF dxF @@ -38941,9 +37472,9 @@ rQY rQY rQY tFe -xRh -xRh -xRh +dip +dip +dip eVv rxr pxb @@ -38961,10 +37492,10 @@ hMu hMu wCU wCU -btI -btI -btI -btI +wCU +wCU +wCU +wCU sfz ukd ukd @@ -38972,7 +37503,7 @@ ukd ukd ukd uNJ -jhS +wCU dxF dxF dxF @@ -39133,13 +37664,13 @@ rRl mCd khI mzn -qwg -qwg -qwg -uah -qwg +iiG +iiG +wCU +iiG +iiG ddi -jhS +wCU dxF dxF dxF @@ -39300,13 +37831,13 @@ oJj jyq khI mzn -qwg -qwg -qwg -qwg -qwg +iiG +wCU +wCU +wCU +iiG ddi -jhS +wCU dxF dxF dxF @@ -39467,13 +37998,13 @@ iNF jyq khI mzn -qwg -qwg -qwg -qwg -qwg +iiG +iiG +wCU +iiG +iiG ddi -jhS +wCU dxF dxF dxF @@ -39634,13 +38165,13 @@ nbu jKN khI mzn -qwg -qwg -qwg -qwg -qwg +iiG +iiG +iiG +iiG +iiG ddi -jhS +wCU dxF dxF dxF @@ -39774,13 +38305,13 @@ dip dip szC vdV -szC -szC -sOT +lah +lah +lah dip -jxR -jxR -jxR +jmP +jmP +jmP dip gQr hMu @@ -39799,15 +38330,15 @@ nbu nbu nbu jKN -btI +wCU vkV bQY -qwg -qwg -qwg +iiG +iiG +iiG iIz qLa -jhS +wCU dxF dxF dxF @@ -39941,23 +38472,23 @@ oNG dip szC szC -szC -szC -szC +lah +lah +lah dip dip dip dip dip -mMf -mMf -gQr -gQr -gQr gQr gQr gQr rIL +rIL +rIL +rIL +rIL +rIL cyM rIL fWl @@ -39966,15 +38497,15 @@ nbu eBH nbu hYE -btI -btI +wCU +wCU mzn -qwg -qwg -uah +iiG +wCU +iiG ddi -jhS -jhS +wCU +wCU dxF dxF dxF @@ -40108,16 +38639,16 @@ oNG dip szC lNG -szC -lNG -szC +lah +gCG +dip dip -gQr -gQr rIL mMf -rIL -rIL +mMf +gQr +gQr +gQr rIL dnF rIL @@ -40136,11 +38667,11 @@ jKN jKN khI mzn -qwg -qwg -qwg +wCU +wCU +wCU ddi -jhS +wCU dxF dxF dxF @@ -40278,11 +38809,11 @@ dip dip dip dip -dip rIL rIL -mMf rIL +mMf +mMf rIL rIL rIL @@ -40293,7 +38824,7 @@ gQr gQr iGz dnF -gQr +rIL rMp kGM nbu @@ -40303,11 +38834,11 @@ jKN jKN khI mzn -qwg -qwg -qwg +iiG +wCU +iiG ddi -jhS +wCU dxF dxF dxF @@ -40443,8 +38974,14 @@ oNG rIL rIL rIL -mMf -mMf +rIL +rIL +rIL +rIL +rIL +rIL +rIL +rIL rIL rIL rIL @@ -40453,14 +38990,8 @@ gQr gQr gQr gQr -gQr -gQr -gQr -gQr -gQr -gQr -gQr -gQr +mMf +rIL hMu nbu kAW @@ -40470,11 +39001,11 @@ aHC jKN khI mzn -qwg -qwg -qwg +iiG +iiG +iiG ddi -jhS +wCU dxF dxF dxF @@ -40609,11 +39140,11 @@ rIL mMf rIL mMf -jhS -kVJ -kVJ -kVJ -jhS +rIL +rIL +rIL +rIL +rIL jhS jhS jhS @@ -40635,13 +39166,13 @@ hUy yaI hMu hMu -btI +wCU vkV bQY -qwg +iiG iIz hLi -jhS +wCU dxF dxF dxF @@ -40772,15 +39303,15 @@ fyF sTU bDX qaI -oNG -oNG +rIL +rIL fAT dnF -jhS -gtL -rzb -vGx -jhS +btI +rIL +rIL +rIL +mMf jhS gtL rzb @@ -40802,13 +39333,13 @@ oNK dkE dkE iBd -btI -jhS +wCU +wCU vkV bcb hLi -jhS -jhS +wCU +wCU dxF dxF dxF @@ -40941,13 +39472,13 @@ fyF qaI oNG oNG -oNG -oNG -jhS -hws -qwg -vcY -jhS +mMf +rIL +mMf +rIL +cXL +rIL +hwA jhS hws qwg @@ -40969,12 +39500,12 @@ tfx dkE tyJ eyk -btI -jhS -jhS -jhS -jhS -jhS +wCU +wCU +wCU +wCU +wCU +wCU dxF dxF dxF @@ -41109,12 +39640,12 @@ qaI oNG oNG oNG -oNG -jhS -cTG -fRZ -cQt -jhS +hMu +hMu +rIL +rIL +mMf +hMu jhS cTG fRZ @@ -41136,8 +39667,8 @@ dkE ugQ fjX peo -btI -jhS +wCU +wCU dxF dxF dxF @@ -41277,11 +39808,11 @@ rfE rdm rdm rdm -jhS -kVJ -kVJ -kVJ -jhS +hMu +cXL +rIL +hdF +hMu jhS kVJ kVJ @@ -41303,8 +39834,8 @@ cXL iiN duP hMu -jhS -jhS +wCU +wCU dxF dxF dxF @@ -41421,11 +39952,11 @@ mpW mpW pmv pmv -jhS -mcv -mcv -mcv -jhS +lPR +hPf +hPf +hPf +lPR feR xWK jhx @@ -41445,9 +39976,9 @@ rdm rdm fTk qIN -fDY fTk -jkp +fTk +fTk lkp foE fDY @@ -41463,15 +39994,15 @@ aFc fDY fTk dUy -jhS +nTw rzT aRS cXL cXL aRS hMu -jhS -jhS +wCU +wCU dxF dxF dxF @@ -41587,13 +40118,13 @@ beR jEN jEN dQD -jhS -jhS +lPR +lPR bvT -qwg +uah ecO -jhS -jhS +lPR +lPR xrv eTT xWK @@ -41612,9 +40143,9 @@ rdm rdm rsM rRC -aoJ -tnx -iiG +mLw +mLw +mLw fTk qgI aoJ @@ -41637,8 +40168,8 @@ wcl rUM nUV nUV -jhS -jhS +wCU +wCU dxF dxF dxF @@ -41754,13 +40285,13 @@ bKH bKH bKH bKH -mcv +hPf aWR -qwg -qwg +uah +lPR uah aWR -mcv +hPf cHb fyF xWK @@ -41796,16 +40327,16 @@ vXK evr fTk fTk -oSx -eaB +fTk +qGx qGx qGx qGx qGx rdm rdm -jhS -jhS +wCU +wCU dxF dxF dxF @@ -41921,13 +40452,13 @@ xWK xWK jhx xWK -mcv -qwg -qwg -qwg -qwg -qwg -mcv +hPf +uah +lPR +lPR +lPR +uah +hPf fyF lxc xWK @@ -41963,13 +40494,12 @@ klE klE ngK klE -azI -rgh +ngK +qGx qGx qGx qGx qGx -jhS jhS jhS jhS @@ -42022,6 +40552,7 @@ dxF dxF dxF dxF +dxF ybY "} (145,1,1) = {" @@ -42088,13 +40619,13 @@ xWK xWK bKH xWK -mcv +hPf epV -qwg -qwg -qwg +uah +lPR +uah epV -mcv +hPf cUm cUm xWK @@ -42130,8 +40661,8 @@ klE qGx qGx qGx -uHJ -uHJ +qGx +qGx qGx qGx eQW @@ -42139,7 +40670,7 @@ qGx qhV kma jhS -jhS +dxF dxF dxF dxF @@ -42255,13 +40786,13 @@ bKH xWK xWK xWK -jhS -jhS +lPR +lPR bvT -qwg +uah ecO -jhS -jhS +lPR +lPR cUm eTT hpB @@ -42297,8 +40828,8 @@ qGx duw mLw xVZ -fMi -fMi +xVZ +mLw mLw cpg fqm @@ -42306,7 +40837,7 @@ mLw qhV kma jhS -jhS +dxF dxF dxF dxF @@ -42423,11 +40954,11 @@ bKH xWK xWK xWK -jhS -mcv -mcv -mcv -jhS +lPR +hPf +hPf +hPf +lPR jhx xWK xWK @@ -42464,8 +40995,8 @@ xVZ xVZ mLw qGx -vwB -vwB +qGx +qGx qGx qGx gNx @@ -42473,7 +41004,7 @@ qGx qhV kma jhS -jhS +dxF dxF dxF dxF @@ -42631,8 +41162,8 @@ qGx mEe slx qGx -uxb -aNj +klE +qGx qGx rHE qGx @@ -42640,7 +41171,7 @@ rHE jhS jhS jhS -jhS +dxF dxF dxF dxF @@ -42798,16 +41329,16 @@ mBG qGx efr qGx -fVA -eaB +shX +qGx acD vSE acD vSE rdm rdm -jhS -jhS +rzh +rzh dxF dxF dxF @@ -42960,7 +41491,7 @@ mcv mcv mcv grR -nEE +aRB shX qGx slx @@ -42973,8 +41504,8 @@ rdm rdm rdm rdm -jhS -jhS +rzh +rzh dxF dxF dxF @@ -43127,7 +41658,7 @@ ouR ouR byw mcv -vnL +wLB fdr eFf slx @@ -43140,8 +41671,8 @@ rdm rdm rdm rdm -jhS -jhS +rzh +rzh dxF dxF mMH @@ -43299,7 +41830,7 @@ grR jeO slx qGx -tEV +ekV rdm rdm rdm @@ -43307,8 +41838,8 @@ rdm rdm rdm rdm -jhS -jhS +dxF +dxF mMH bpj bpj @@ -48083,9 +46614,9 @@ hUk hUk hUk hUk -bnQ -bnQ -bnQ +hUk +hUk +hUk fQx fQx fQx diff --git a/maps/map_files/Kutjevo/sprinkles/35.communications.dmm b/maps/map_files/Kutjevo/sprinkles/35.communications.dmm index bc89cfab0105..c392400aa31d 100644 --- a/maps/map_files/Kutjevo/sprinkles/35.communications.dmm +++ b/maps/map_files/Kutjevo/sprinkles/35.communications.dmm @@ -5,9 +5,7 @@ /turf/open/auto_turf/sand/layer0, /area/template_noop) "cm" = ( -/turf/open/floor/kutjevo/tan/grey_edge{ - dir = 8 - }, +/turf/open/floor/kutjevo/tan/grey_edge/west, /area/template_noop) "cL" = ( /obj/item/clothing/suit/storage/hazardvest/yellow, @@ -17,9 +15,7 @@ /turf/open/floor/kutjevo/grey/plate, /area/template_noop) "di" = ( -/turf/open/floor/kutjevo/tan/grey_edge{ - dir = 1 - }, +/turf/open/floor/kutjevo/tan/grey_edge/north, /area/template_noop) "dl" = ( /obj/structure/girder/displaced, @@ -104,9 +100,7 @@ /obj/structure/machinery/door/airlock/almayer/maint/colony/autoname{ req_one_access = null }, -/turf/open/floor/kutjevo/tan/grey_edge{ - dir = 1 - }, +/turf/open/floor/kutjevo/tan/grey_edge/north, /area/template_noop) "qM" = ( /obj/structure/machinery/light, @@ -134,9 +128,7 @@ /area/template_noop) "sQ" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/kutjevo/tan/grey_edge{ - dir = 1 - }, +/turf/open/floor/kutjevo/tan/grey_edge/north, /area/template_noop) "uS" = ( /obj/structure/surface/table/almayer, @@ -222,9 +214,7 @@ /area/template_noop) "Af" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/kutjevo/tan/grey_edge{ - dir = 4 - }, +/turf/open/floor/kutjevo/tan/grey_edge/east, /area/template_noop) "Ca" = ( /obj/structure/window/framed/kutjevo, @@ -235,18 +225,14 @@ /area/template_noop) "Ci" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/kutjevo/tan/grey_edge{ - dir = 1 - }, +/turf/open/floor/kutjevo/tan/grey_edge/north, /area/template_noop) "DY" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony/autoname{ dir = 1; req_one_access = null }, -/turf/open/floor/kutjevo/tan/grey_edge{ - dir = 4 - }, +/turf/open/floor/kutjevo/tan/grey_edge/east, /area/template_noop) "EK" = ( /obj/structure/window/framed/kutjevo, @@ -266,16 +252,12 @@ /area/template_noop) "Jg" = ( /obj/effect/spawner/random/toolbox, -/turf/open/floor/kutjevo/tan/grey_edge{ - dir = 4 - }, +/turf/open/floor/kutjevo/tan/grey_edge/east, /area/template_noop) "Jz" = ( /obj/item/stack/sheet/metal, /obj/item/stack/rods, -/turf/open/floor/kutjevo/tan/grey_edge{ - dir = 4 - }, +/turf/open/floor/kutjevo/tan/grey_edge/east, /area/template_noop) "Ks" = ( /obj/effect/decal/cleanable/blood/drip, @@ -306,7 +288,7 @@ dir = 1; req_one_access = null }, -/turf/closed/wall/kutjevo/colony, +/turf/open/floor/plating/kutjevo, /area/template_noop) "LG" = ( /obj/structure/fence, @@ -378,9 +360,7 @@ /turf/open/floor/kutjevo/tan/grey_edge, /area/template_noop) "Um" = ( -/turf/open/floor/kutjevo/tan/grey_edge{ - dir = 4 - }, +/turf/open/floor/kutjevo/tan/grey_edge/east, /area/template_noop) "Vc" = ( /obj/effect/decal/cleanable/dirt, @@ -393,9 +373,7 @@ /area/template_noop) "Xq" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/kutjevo/tan/grey_edge{ - dir = 8 - }, +/turf/open/floor/kutjevo/tan/grey_edge/west, /area/template_noop) "XS" = ( /obj/structure/fence{ @@ -405,9 +383,7 @@ /area/template_noop) "Yo" = ( /obj/item/clothing/head/hardhat/orange, -/turf/open/floor/kutjevo/tan/grey_edge{ - dir = 1 - }, +/turf/open/floor/kutjevo/tan/grey_edge/north, /area/template_noop) "YG" = ( /obj/structure/machinery/power/port_gen/pacman, @@ -419,9 +395,7 @@ dir = 1; req_one_access = null }, -/turf/open/floor/kutjevo/tan/grey_edge{ - dir = 8 - }, +/turf/open/floor/kutjevo/tan/grey_edge/west, /area/template_noop) "Zf" = ( /obj/structure/window/framed/kutjevo, diff --git a/maps/map_files/LV522_Chances_Claim/LV522_Chances_Claim.dmm b/maps/map_files/LV522_Chances_Claim/LV522_Chances_Claim.dmm index 5a4fa0fbdf91..f0860d688645 100644 --- a/maps/map_files/LV522_Chances_Claim/LV522_Chances_Claim.dmm +++ b/maps/map_files/LV522_Chances_Claim/LV522_Chances_Claim.dmm @@ -5,9 +5,7 @@ network = list("interrogation") }, /obj/structure/machinery/light/small, -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles, /area/lv522/indoors/c_block/mining) "aaF" = ( /turf/closed/shuttle/dropship2/tornado{ @@ -16,10 +14,7 @@ /area/lv522/landing_zone_forecon/UD6_Tornado) "aaI" = ( /obj/item/stack/sheet/metal, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/north, /area/lv522/indoors/a_block/admin) "aaX" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -30,9 +25,7 @@ /obj/effect/decal/cleanable/dirt, /obj/item/tank/emergency_oxygen/double, /obj/item/tank/emergency_oxygen/double, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/lone_buildings/storage_blocks) "abo" = ( /turf/closed/wall/strata_outpost, @@ -46,22 +39,8 @@ /obj/structure/platform_decoration{ dir = 1 }, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/lv522/outdoors/colony_streets/north_east_street) -"abL" = ( -/obj/structure/platform{ - dir = 1 - }, -/obj/structure/platform{ - dir = 4 - }, -/obj/structure/platform_decoration{ - dir = 9 - }, -/turf/open/gm/river, -/area/lv522/atmos/sewer) "abS" = ( /obj/effect/acid_hole, /turf/closed/wall/strata_ice/dirty, @@ -74,17 +53,12 @@ icon_state = "E"; pixel_x = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/cargo_intake) "abX" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/bed/chair/comfy, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/corpo/glass) "ack" = ( /obj/structure/sink{ @@ -92,10 +66,7 @@ pixel_x = -11 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/lv522/indoors/a_block/executive) "acn" = ( /obj/structure/largecrate/random/secure, @@ -104,9 +75,7 @@ icon_state = "NW-out"; pixel_y = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/way_in_command_centre) "acp" = ( /obj/effect/decal/cleanable/dirt, @@ -116,9 +85,7 @@ /obj/structure/largecrate/random{ layer = 2.9 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor) "acD" = ( /obj/effect/decal/cleanable/dirt, @@ -161,9 +128,7 @@ "adG" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/reagent_container/food/condiment/saltshaker, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/lone_buildings/chunk) "adI" = ( /obj/structure/ladder{ @@ -195,9 +160,7 @@ /area/lv522/indoors/b_block/bridge) "aem" = ( /obj/structure/barricade/plasteel/metal, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/lv522/outdoors/colony_streets/north_street) "aeD" = ( /obj/structure/largecrate/random, @@ -208,18 +171,14 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/mining) "afn" = ( /obj/item/reagent_container/spray/cleaner/drone{ pixel_x = -3; pixel_y = 6 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor) "afp" = ( /obj/structure/platform, @@ -243,9 +202,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/north_command_centre) "afI" = ( /obj/item/reagent_container/food/drinks/cans/beer{ @@ -269,9 +226,7 @@ /area/lv522/oob) "afX" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/lv522/outdoors/colony_streets/central_streets) "agu" = ( /obj/effect/decal/warning_stripes{ @@ -282,28 +237,19 @@ /area/lv522/outdoors/colony_streets/south_west_street) "agM" = ( /obj/effect/decal/cleanable/generic, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/bridge) "ahs" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/reactor_garage) "ahH" = ( -/turf/open/floor/corsat{ - dir = 9; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/northwest, /area/lv522/atmos/east_reactor/east) "ahJ" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/cargo_intake) "ahP" = ( /turf/open/asphalt/cement, @@ -326,9 +272,7 @@ /obj/structure/bed/chair/comfy{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "aij" = ( /obj/structure/stairs/perspective{ @@ -339,14 +283,8 @@ /area/lv522/outdoors/colony_streets/north_east_street) "aio" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/b_block/bar) -"ait" = ( -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/gm/river, -/area/lv522/landing_zone_1/tunnel) "aiw" = ( /obj/structure/desertdam/decals/road_edge{ icon_state = "road_edge_decal3"; @@ -368,12 +306,9 @@ /area/lv522/outdoors/colony_streets/central_streets) "ajw" = ( /obj/structure/pipes/standard/simple/hidden/green{ - dir = 10 - }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "brown" + dir = 4 }, +/turf/open/floor/corsat/brown/east, /area/lv522/atmos/north_command_centre) "ajM" = ( /obj/structure/machinery/door/poddoor/almayer{ @@ -386,10 +321,7 @@ /area/lv522/oob) "ajY" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/north, /area/lv522/atmos/east_reactor/south) "akh" = ( /obj/structure/foamed_metal, @@ -397,11 +329,11 @@ /turf/open/floor/plating/plating_catwalk/prison, /area/lv522/indoors/a_block/dorms/glass) "akk" = ( -/obj/structure/platform{ +/obj/structure/machinery/power/apc/weak{ dir = 1 }, -/turf/open/asphalt/cement, -/area/lv522/outdoors/colony_streets/south_east_street) +/turf/open/floor/corsat/plate, +/area/lv522/atmos/east_reactor) "akl" = ( /obj/structure/barricade/wooden{ dir = 8 @@ -410,9 +342,7 @@ /area/lv522/oob) "akn" = ( /obj/structure/machinery/door/airlock/almayer/maint, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/way_in_command_centre) "akp" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, @@ -423,9 +353,7 @@ /area/lv522/oob) "akP" = ( /obj/structure/girder, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/lv522/outdoors/colony_streets/north_street) "akV" = ( /obj/structure/prop/invuln/ice_prefab, @@ -441,29 +369,24 @@ /turf/closed/wall/strata_outpost/reinforced/hull, /area/lv522/oob) "alJ" = ( -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/oob) "ama" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison, /area/lv522/atmos/sewer) "amc" = ( /obj/structure/cargo_container/kelland/left, /turf/open/auto_turf/sand_white/layer0, /area/lv522/outdoors/colony_streets/north_east_street) "ame" = ( -/obj/structure/pipes/standard/simple/hidden/green, -/obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/floor/corsat{ - icon_state = "squares" +/obj/structure/machinery/light{ + dir = 1 }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor) "amC" = ( /obj/structure/bed/roller, @@ -472,10 +395,7 @@ /obj/structure/machinery/camera/autoname{ dir = 4 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/admin) "amP" = ( /obj/structure/machinery/light{ @@ -500,15 +420,10 @@ /area/lv522/indoors/c_block/cargo) "ana" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/west, /area/lv522/atmos/east_reactor/east) "anb" = ( -/turf/open/floor/prison{ - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe, /area/lv522/atmos/way_in_command_centre) "ann" = ( /obj/structure/barricade/wooden{ @@ -519,9 +434,7 @@ "ans" = ( /obj/structure/surface/table/almayer, /obj/item/book/manual/chef_recipes, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/lv522/indoors/a_block/kitchen) "anv" = ( /obj/structure/surface/table/reinforced/prison, @@ -537,10 +450,7 @@ "anw" = ( /obj/structure/girder/displaced, /obj/effect/decal/cleanable/cobweb, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/admin) "anG" = ( /obj/effect/decal/cleanable/dirt, @@ -548,9 +458,7 @@ /area/lv522/indoors/lone_buildings/outdoor_bot) "anH" = ( /obj/structure/largecrate/random, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/colony_streets/north_west_street) "anM" = ( /obj/structure/machinery/defenses/sentry/premade/dumb{ @@ -567,9 +475,7 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/c_block/mining) "aoi" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -577,33 +483,26 @@ }, /turf/open/auto_turf/shale/layer1, /area/lv522/outdoors/colony_streets/north_east_street) +"aom" = ( +/obj/structure/barricade/deployable, +/turf/open/shuttle/dropship/can_surgery/light_grey_bottom_right, +/area/lv522/landing_zone_forecon/UD6_Typhoon) "aox" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/north, /area/lv522/atmos/east_reactor/south) "aoH" = ( /obj/structure/machinery/light, /obj/structure/machinery/disposal, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "apc" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/space_heater/radiator/red, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan2" - }, +/turf/open/floor/strata/cyan2/east, /area/lv522/indoors/a_block/medical) "apd" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/east, /area/lv522/atmos/sewer) "ape" = ( /obj/structure/bed/chair{ @@ -615,10 +514,7 @@ "apt" = ( /obj/structure/pipes/vents/pump, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/b_block/bridge) "apC" = ( /obj/structure/prop/invuln/overhead_pipe{ @@ -629,17 +525,15 @@ /turf/open/floor/plating, /area/lv522/indoors/c_block/mining) "apS" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W" +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 10 }, -/turf/open/auto_turf/shale/layer1, -/area/lv522/outdoors/colony_streets/south_east_street) +/turf/open/floor/corsat/plate, +/area/lv522/atmos/north_command_centre) "aqo" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/east_reactor/south) "aqH" = ( /obj/structure/prop/vehicles/crawler{ @@ -650,9 +544,7 @@ /area/lv522/indoors/c_block/garage) "aqT" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor) "arh" = ( /obj/structure/prop/invuln/overhead_pipe{ @@ -660,9 +552,7 @@ pixel_x = -12; pixel_y = 6 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/oob) "arq" = ( /obj/structure/surface/table/reinforced/prison, @@ -671,26 +561,20 @@ /area/lv522/indoors/c_block/garage) "art" = ( /obj/structure/largecrate/random/secure, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/bridges/op_centre) "arN" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/surface/rack, /obj/item/clothing/head/welding, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/lv522/outdoors/colony_streets/windbreaker/observation) "arP" = ( -/obj/item/lightstick/red/spoke/planted{ - pixel_x = -9; - pixel_y = 25 +/obj/structure/machinery/light{ + dir = 8 }, -/turf/open/auto_turf/sand_white/layer0, -/area/lv522/outdoors/colony_streets/central_streets) +/turf/open/floor/prison/floor_plate, +/area/lv522/indoors/lone_buildings/storage_blocks) "arV" = ( /obj/structure/surface/table/almayer, /obj/item/storage/belt/utility, @@ -714,9 +598,7 @@ /area/lv522/indoors/a_block/kitchen) "asH" = ( /obj/structure/machinery/vending/coffee, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/south) "asI" = ( /obj/structure/prop/invuln/overhead_pipe{ @@ -734,9 +616,7 @@ "asZ" = ( /obj/structure/bed/chair, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/security) "att" = ( /obj/structure/prop/invuln/lifeboat_hatch_placeholder/terminal{ @@ -745,18 +625,13 @@ /obj/structure/barricade/handrail{ dir = 4 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/hallway) "atz" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/south) "atL" = ( /obj/structure/closet/crate, @@ -766,9 +641,7 @@ }, /obj/item/tool/pickaxe/silver, /obj/item/tool/pickaxe/silver, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/lone_buildings/storage_blocks) "atO" = ( /obj/structure/prop/vehicles/crawler{ @@ -779,18 +652,14 @@ }, /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/light, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/reactor_garage) "atV" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/n_rockies) "aue" = ( /obj/structure/prop/invuln/overhead_pipe{ @@ -803,12 +672,9 @@ }, /obj/item/stack/sheet/metal, /turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "aut" = ( -/turf/open/floor/corsat{ - dir = 5; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/northeast, /area/lv522/atmos/north_command_centre) "auG" = ( /turf/open/auto_turf/shale/layer2, @@ -819,16 +685,12 @@ dir = 1 }, /obj/structure/pipes/vents/pump, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/kitchen/glass) "avp" = ( /obj/item/stack/sheet/metal, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "awj" = ( /obj/item/stack/rods, @@ -851,9 +713,7 @@ icon_state = "N"; pixel_y = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/colony_streets/south_west_street) "axC" = ( /obj/structure/stairs/perspective{ @@ -861,9 +721,7 @@ icon_state = "p_stair_full" }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/a_block/hallway) "axD" = ( /obj/effect/decal/cleanable/blood/drip, @@ -879,27 +737,21 @@ /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/reactor_garage) "ayn" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/hallway) "ayX" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/south) "aza" = ( -/obj/structure/platform{ - dir = 1 +/obj/structure/stairs/perspective{ + icon_state = "p_stair_full" }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, @@ -923,19 +775,14 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/shiva{ - icon_state = "radiator_tile2" - }, +/turf/open/floor/shiva/radiator_tile2, /area/lv522/indoors/a_block/corpo/glass) "azK" = ( /obj/item/prop/colony/used_flare, /turf/open/floor/prison, /area/lv522/indoors/a_block/admin) "aAb" = ( -/turf/open/floor/corsat{ - dir = 9; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/northwest, /area/lv522/atmos/east_reactor) "aAI" = ( /obj/structure/window/framed/strata/reinforced, @@ -949,9 +796,7 @@ /area/lv522/outdoors/colony_streets/north_east_street) "aAW" = ( /obj/effect/spawner/gibspawner/xeno, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "aBm" = ( /obj/effect/decal/cleanable/dirt, @@ -959,10 +804,7 @@ icon_state = "lattice9"; pixel_x = -5 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/west, /area/lv522/indoors/a_block/hallway) "aBY" = ( /obj/vehicle/train/cargo/trolley, @@ -970,22 +812,14 @@ /turf/open/floor/prison, /area/lv522/indoors/c_block/mining) "aCJ" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/east, /area/lv522/atmos/filt) "aCQ" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/north, /area/lv522/atmos/east_reactor) "aCR" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/cargo_intake) "aCS" = ( /obj/structure/surface/rack, @@ -996,15 +830,11 @@ dir = 1 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/mining) "aDf" = ( /obj/structure/ore_box, -/turf/open/floor/plating{ - icon_state = "platebot" - }, +/turf/open/floor/plating/platebot, /area/lv522/indoors/c_block/cargo) "aDh" = ( /obj/structure/platform{ @@ -1013,15 +843,10 @@ /turf/open/floor/plating, /area/lv522/indoors/c_block/cargo) "aDj" = ( -/obj/structure/stairs/perspective{ - dir = 9; - icon_state = "p_stair_full" - }, -/obj/structure/platform_decoration{ - dir = 1 - }, -/turf/open/asphalt/cement, -/area/lv522/outdoors/colony_streets/north_east_street) +/obj/effect/landmark/structure_spawner/setup/distress/xeno_door, +/obj/structure/pipes/standard/simple/hidden/green, +/turf/open/floor/corsat/squares, +/area/lv522/atmos/north_command_centre) "aDs" = ( /obj/item/explosive/mine/active{ dir = 8 @@ -1035,19 +860,15 @@ /turf/open/floor/plating, /area/shuttle/drop2/lv522) "aDS" = ( -/turf/open/floor/corsat{ - dir = 5; - icon_state = "brown" - }, +/obj/structure/pipes/vents/pump, +/turf/open/floor/corsat/marked, /area/lv522/atmos/east_reactor) "aDZ" = ( /obj/structure/machinery/door/airlock/almayer/maint{ dir = 1; welded = 1 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/oob) "aEF" = ( /obj/structure/prop/invuln/overhead_pipe{ @@ -1059,9 +880,7 @@ /area/lv522/indoors/c_block/mining) "aEL" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor) "aEM" = ( /obj/structure/machinery/atm{ @@ -1077,19 +896,14 @@ /obj/structure/machinery/space_heater/radiator/red{ dir = 4 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/corpo) "aER" = ( /obj/structure/barricade/wooden{ dir = 8 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/c_block/cargo) "aFf" = ( /obj/structure/window/framed/strata/reinforced, @@ -1097,18 +911,13 @@ id = "LZ1_Lockdown_Lo"; name = "Emergency Lockdown" }, -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/landing_zone_1/ceiling) "aFA" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/n_rockies) "aFN" = ( /turf/open/floor/prison, @@ -1120,17 +929,13 @@ /obj/item/toy/beach_ball/holoball{ pixel_y = -3 }, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/lv522/outdoors/colony_streets/south_street) "aGg" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/north_command_centre) "aGy" = ( /obj/structure/surface/table/almayer, @@ -1138,9 +943,7 @@ dir = 8; pixel_y = 7 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/c_block/mining) "aGE" = ( /obj/structure/closet/crate/trashcart, @@ -1153,9 +956,7 @@ "aGI" = ( /obj/structure/largecrate/random/case/double, /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor) "aGQ" = ( /obj/effect/decal/cleanable/dirt, @@ -1186,10 +987,7 @@ }, /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/cm_vending/sorted/tech/comtech_tools, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/lv522/indoors/lone_buildings/outdoor_bot) "aIf" = ( /obj/structure/machinery/light{ @@ -1215,17 +1013,13 @@ dir = 1 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "aIM" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/reactor_garage) "aIY" = ( /obj/structure/prop/invuln/lattice_prop{ @@ -1233,10 +1027,7 @@ pixel_x = -5 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/west, /area/lv522/indoors/a_block/hallway) "aJg" = ( /obj/structure/fence{ @@ -1249,37 +1040,29 @@ /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/lv522/outdoors/colony_streets/north_east_street) "aJr" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "w-y2" +/obj/effect/decal/warning_stripes{ + icon_state = "S"; + pixel_y = -1 }, +/turf/open/floor/whiteyellowfull/east, /area/lv522/oob/w_y_vault) "aJS" = ( /obj/structure/surface/table/almayer, /obj/effect/landmark/objective_landmark/far, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/lv522/outdoors/colony_streets/windbreaker/observation) "aJT" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor) "aKf" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/bridges/op_centre) "aKn" = ( /obj/item/clothing/mask/facehugger{ @@ -1289,41 +1072,29 @@ name = "????"; stat = 2 }, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/landing_zone_2) "aKK" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/north_command_centre) "aKO" = ( /obj/structure/bed/chair/comfy{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/north, /area/lv522/indoors/a_block/admin) "aKQ" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner/west, /area/lv522/atmos/cargo_intake) "aLf" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/sewer) "aLy" = ( /obj/structure/machinery/light{ @@ -1332,17 +1103,8 @@ /obj/effect/decal/cleanable/dirt, /obj/structure/surface/table/almayer, /obj/item/device/flashlight/lamp/on, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/hallway) -"aLG" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "w-y0" - }, -/area/lv522/oob/w_y_vault) "aLJ" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, /turf/open/floor/corsat, @@ -1355,9 +1117,7 @@ /obj/item/bedsheet/brown{ layer = 3.1 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "aNn" = ( /obj/structure/transmitter/colony_net{ @@ -1366,10 +1126,7 @@ phone_id = "Colony Corporate"; pixel_y = 26 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/corpo) "aNr" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -1386,16 +1143,10 @@ /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/corpo/glass) "aNP" = ( -/turf/open/floor/strata{ - dir = 6; - icon_state = "white_cyan3" - }, +/turf/open/floor/strata/white_cyan3/southeast, /area/lv522/indoors/a_block/medical) "aOi" = ( /obj/structure/prop/ice_colony/ground_wire, @@ -1407,19 +1158,14 @@ "aOP" = ( /obj/effect/spawner/gibspawner/xeno, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/shiva{ - icon_state = "radiator_tile2" - }, +/turf/open/floor/shiva/radiator_tile2, /area/lv522/indoors/a_block/bridges) "aOV" = ( /obj/structure/barricade/deployable{ dir = 1 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/east, /area/lv522/indoors/a_block/admin) "aPe" = ( /obj/effect/decal/warning_stripes{ @@ -1429,10 +1175,7 @@ /area/lv522/outdoors/colony_streets/south_street) "aPu" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/lv522/indoors/b_block/bridge) "aPN" = ( /obj/structure/surface/table/almayer, @@ -1444,69 +1187,43 @@ }, /turf/open/floor/prison, /area/lv522/indoors/a_block/security/glass) -"aPS" = ( -/obj/structure/stairs/perspective{ - dir = 10; - icon_state = "p_stair_full" - }, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, -/area/lv522/outdoors/colony_streets/central_streets) "aQe" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/recharger, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/medical) "aQf" = ( /obj/structure/surface/table/almayer, /obj/item/map/lv522_map, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/lv522/outdoors/colony_streets/north_street) "aQs" = ( /obj/structure/machinery/telecomms/bus/preset_one, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/lv522/indoors/lone_buildings/outdoor_bot) "aQH" = ( /obj/structure/machinery/door/airlock/almayer/maint{ dir = 1; welded = 1 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, -/area/lv522/landing_zone_1/tunnel) +/turf/open/floor/corsat/marked, +/area/lv522/landing_zone_1/tunnel/far) "aQU" = ( /obj/structure/machinery/computer/cameras{ dir = 4; network = null; pixel_x = -16 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/north) "aRd" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/lv522/indoors/a_block/medical) "aRi" = ( -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/mining) "aRB" = ( /obj/structure/platform{ @@ -1514,7 +1231,7 @@ }, /obj/effect/decal/cleanable/blood/xeno, /turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "aRH" = ( /obj/effect/decal/warning_stripes{ icon_state = "SE-out"; @@ -1527,9 +1244,7 @@ dir = 4; icon_state = "p_stair_full" }, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/lv522/outdoors/colony_streets/central_streets) "aRN" = ( /obj/structure/largecrate/random/barrel, @@ -1542,10 +1257,7 @@ /area/lv522/indoors/a_block/dorms) "aSR" = ( /obj/structure/machinery/floodlight/landing, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/outdoors/colony_streets/north_east_street) "aSZ" = ( /obj/structure/pipes/standard/manifold/hidden/green, @@ -1556,10 +1268,7 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/b_block/bridge) "aTj" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -1587,9 +1296,7 @@ /obj/structure/prop/dam/truck/cargo{ layer = 3.1 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/east) "aTP" = ( /obj/structure/cargo_container/watatsumi/right, @@ -1599,17 +1306,13 @@ /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/c_block/bridge) "aTS" = ( /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "aUb" = ( /obj/structure/surface/table/almayer, @@ -1621,16 +1324,12 @@ pixel_x = 6; pixel_y = 14 }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/security/glass) "aUL" = ( /obj/structure/machinery/light, /obj/structure/machinery/disposal, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/security/glass) "aUN" = ( /obj/item/stack/sheet/wood/large_stack, @@ -1638,9 +1337,7 @@ dir = 1 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/casino) "aVa" = ( /obj/structure/platform{ @@ -1661,15 +1358,11 @@ "aVo" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/prop/almayer/computer/PC, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/north) "aVs" = ( /obj/structure/cargo_container/horizontal/blue/top, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/east_reactor/east) "aVt" = ( /obj/item/pamphlet/skill/powerloader, @@ -1677,9 +1370,7 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/north) "aVA" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -1690,10 +1381,7 @@ "aVD" = ( /obj/structure/pipes/standard/manifold/fourway/hidden/green, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv522/indoors/a_block/corpo/glass) "aVF" = ( /obj/structure/surface/table/almayer, @@ -1705,9 +1393,7 @@ pixel_x = 2; pixel_y = 7 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/north) "aVX" = ( /obj/structure/ore_box, @@ -1720,9 +1406,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/c_block/t_comm) "aWl" = ( /obj/structure/barricade/wooden, @@ -1733,69 +1417,45 @@ /obj/item/stack/rods{ pixel_y = 14 }, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/lv522/outdoors/colony_streets/central_streets) "aWu" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/northwest, /area/lv522/atmos/east_reactor/north) "aWw" = ( /obj/structure/sink{ pixel_y = 15 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan2" - }, +/turf/open/floor/strata/cyan2/east, /area/lv522/indoors/a_block/medical) "aWz" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner/north, /area/lv522/atmos/east_reactor/north) "aWB" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2, /area/lv522/indoors/a_block/dorms) "aWJ" = ( -/turf/open/floor/corsat{ - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner, /area/lv522/atmos/east_reactor/north) "aWT" = ( /obj/structure/surface/rack, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/c_block/mining) "aWX" = ( -/obj/structure/pipes/standard/simple/hidden/green, -/obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/floor/corsat{ - icon_state = "plate" - }, -/area/lv522/atmos/east_reactor) +/obj/effect/landmark/xeno_spawn, +/turf/open/floor/corsat/squares, +/area/lv522/atmos/east_reactor/south) "aXa" = ( -/turf/open/floor/corsat{ - dir = 6; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/southeast, /area/lv522/atmos/east_reactor/north) "aXx" = ( /obj/item/weapon/twohanded/folded_metal_chair, @@ -1805,10 +1465,14 @@ "aXB" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/c_block/mining) +"aXR" = ( +/obj/item/ammo_magazine/rifle/heap{ + current_rounds = 0 + }, +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_up_to_down, +/area/lv522/landing_zone_forecon/UD6_Typhoon) "aYd" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 @@ -1835,9 +1499,7 @@ id = "East_Lock"; name = "Emergency Lockdown" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/hallway) "aYF" = ( /obj/structure/desertdam/decals/road_edge{ @@ -1868,10 +1530,7 @@ pixel_x = 8; pixel_y = 5 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/a_block/fitness) "aYO" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -1884,9 +1543,7 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/cargo) "aZj" = ( /obj/structure/plasticflaps, @@ -1912,30 +1569,23 @@ pixel_y = 6 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/corpo) "bag" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/reactor_garage) "ban" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/blocker/invisible_wall, -/turf/open/floor/plating, -/area/lv522/indoors/c_block/cargo) +/obj/effect/landmark/structure_spawner/setup/distress/xeno_nest, +/obj/effect/landmark/corpsespawner/colonist/burst, +/obj/effect/landmark/xeno_spawn, +/turf/open/floor/corsat/plate, +/area/lv522/atmos/east_reactor/south) "baG" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner/north, /area/lv522/atmos/east_reactor/south) "baN" = ( /obj/structure/surface/rack, @@ -1947,6 +1597,10 @@ /obj/item/tool/shovel, /turf/open/floor/plating, /area/lv522/indoors/c_block/cargo) +"bbi" = ( +/obj/structure/machinery/power/reactor/colony, +/turf/open/floor/plating, +/area/lv522/indoors/lone_buildings/engineering) "bbk" = ( /obj/structure/prop/ice_colony/dense/planter_box{ dir = 9 @@ -1955,10 +1609,7 @@ pixel_y = 5 }, /obj/effect/decal/cleanable/cobweb2, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/b_block/bridge) "bby" = ( /obj/item/trash/barcardine, @@ -1966,9 +1617,7 @@ pixel_x = -7; pixel_y = 16 }, -/turf/open/floor/shiva{ - icon_state = "radiator_tile2" - }, +/turf/open/floor/shiva/radiator_tile2, /area/lv522/oob) "bbz" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -1978,17 +1627,13 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/c_block/cargo) "bbL" = ( /obj/structure/machinery/power/apc/weak{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/east) "bce" = ( /obj/item/trash/hotdog, @@ -2004,9 +1649,7 @@ pixel_x = -11; pixel_y = 12 }, -/turf/open/floor/shiva{ - icon_state = "radiator_tile2" - }, +/turf/open/floor/shiva/radiator_tile2, /area/lv522/oob) "bcf" = ( /obj/effect/spawner/gibspawner/xeno, @@ -2020,28 +1663,17 @@ /turf/open/auto_turf/sand_white/layer0, /area/lv522/outdoors/colony_streets/north_east_street) "bco" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/north, /area/lv522/atmos/west_reactor) "bcP" = ( -/turf/open/floor/corsat{ - dir = 5; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/northeast, /area/lv522/atmos/west_reactor) "bcU" = ( -/turf/open/asphalt/cement{ - icon_state = "cement15" - }, +/turf/open/asphalt/cement/cement15, /area/lv522/outdoors/n_rockies) "bdi" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/indoors/c_block/t_comm) "bdj" = ( /obj/structure/bed/chair/comfy, @@ -2049,16 +1681,12 @@ /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/colony_streets/north_west_street) "bdv" = ( /obj/structure/largecrate/random/case, /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor) "bdH" = ( /obj/structure/bed/chair{ @@ -2068,15 +1696,14 @@ /turf/open/floor/prison, /area/lv522/indoors/c_block/garage) "bdL" = ( -/obj/structure/platform, -/turf/open/asphalt/cement{ - icon_state = "cement4" +/obj/structure/stairs/perspective{ + dir = 1; + icon_state = "p_stair_full" }, +/turf/open/asphalt/cement/cement4, /area/lv522/outdoors/colony_streets/south_street) "bdX" = ( -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/lv522/outdoors/nw_rockies) "bdY" = ( /obj/effect/decal/warning_stripes{ @@ -2084,18 +1711,13 @@ pixel_x = 1 }, /obj/item/weapon/gun/launcher/grenade/m81/m79, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/outdoors/colony_streets/north_street) "beb" = ( /obj/structure/bed/chair/comfy{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/northwest, /area/lv522/atmos/east_reactor/north) "beh" = ( /obj/effect/decal/warning_stripes{ @@ -2110,9 +1732,7 @@ /area/lv522/outdoors/colony_streets/south_street) "bel" = ( /obj/structure/machinery/computer/crew/colony, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/lv522/outdoors/colony_streets/windbreaker/observation) "ben" = ( /obj/item/prop{ @@ -2132,15 +1752,11 @@ pixel_y = 13 }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/bridges/corpo) "bet" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/west_reactor) "bex" = ( /obj/effect/decal/cleanable/blood, @@ -2157,28 +1773,20 @@ /area/lv522/indoors/a_block/security) "bfn" = ( /obj/structure/surface/table/almayer, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/north, /area/lv522/atmos/east_reactor/north) "bgc" = ( /turf/open/floor/plating, /area/lv522/atmos/cargo_intake) "bgg" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/north, /area/lv522/atmos/east_reactor/north) "bgJ" = ( /obj/structure/machinery/door/poddoor/shutters/almayer/open{ id = "Sec-Kitchen-Lockdown"; name = "\improper Storm Shutters" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/kitchen) "bgN" = ( /obj/structure/surface/table/reinforced/prison, @@ -2192,69 +1800,32 @@ }, /obj/item/newspaper, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/garage) "bgV" = ( -/turf/open/asphalt/cement{ - icon_state = "cement2" - }, +/turf/open/asphalt/cement/cement2, /area/lv522/outdoors/n_rockies) "bha" = ( /obj/item/stack/rods, /turf/open/floor/prison, /area/lv522/outdoors/colony_streets/windbreaker/observation) "bhd" = ( -/turf/open/floor/corsat{ - dir = 5; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/northeast, /area/lv522/atmos/east_reactor/north) "bhh" = ( -/obj/structure/platform{ - dir = 1 - }, -/obj/structure/closet/crate/freezer{ - layer = 3 - }, -/obj/item/reagent_container/food/snacks/grown/orange, -/obj/item/reagent_container/food/snacks/grown/orange, -/obj/item/reagent_container/food/snacks/grown/orange, -/obj/item/reagent_container/food/snacks/grown/orange, -/obj/item/reagent_container/food/snacks/grown/orange, -/obj/item/reagent_container/food/snacks/grown/orange, -/obj/item/reagent_container/food/snacks/grown/orange, -/obj/item/reagent_container/food/snacks/grown/orange, -/obj/item/reagent_container/food/snacks/grown/orange, -/obj/item/reagent_container/food/snacks/grown/orange, -/obj/item/reagent_container/food/snacks/grown/orange, -/obj/item/reagent_container/food/snacks/grown/orange, -/obj/item/reagent_container/food/snacks/grown/orange, -/obj/item/reagent_container/food/snacks/grown/orange, -/obj/item/reagent_container/food/snacks/grown/orange, -/obj/item/reagent_container/food/snacks/grown/orange, -/obj/item/reagent_container/food/snacks/grown/orange, -/obj/item/reagent_container/food/snacks/grown/orange, -/obj/item/reagent_container/food/snacks/grown/orange, -/obj/item/reagent_container/food/snacks/grown/orange, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/lv522/indoors/c_block/cargo) +/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, +/turf/open/floor/corsat/brown/southeast, +/area/lv522/atmos/east_reactor/south) "bhD" = ( /obj/structure/platform_decoration{ dir = 1 }, /obj/structure/machinery/disposal, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/garage) "bhL" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/east_reactor/north) "bia" = ( /obj/structure/largecrate/supply/supplies/tables_racks, @@ -2277,41 +1848,29 @@ "biY" = ( /obj/structure/girder, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/west, /area/lv522/indoors/a_block/dorms) "biZ" = ( /obj/structure/barricade/sandbags{ dir = 8 }, /obj/item/trash/uscm_mre, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/lv522/outdoors/colony_streets/north_street) "bjd" = ( /turf/closed/wall/strata_outpost/reinforced, /area/lv522/atmos/sewer) "bjC" = ( -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/oob/w_y_vault) "bjF" = ( /obj/effect/decal/cleanable/blood/xeno, /obj/effect/decal/cleanable/liquid_fuel, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/kitchen/damage) "bjT" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/lv522/outdoors/n_rockies) "bjX" = ( /obj/effect/decal/warning_stripes{ @@ -2331,23 +1890,15 @@ }, /obj/effect/decal/cleanable/blood/oil, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/garage) "bkf" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/strata{ - dir = 9; - icon_state = "white_cyan3" - }, +/turf/open/floor/strata/white_cyan3/northwest, /area/lv522/indoors/a_block/medical/glass) "bkh" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/strata{ - dir = 10; - icon_state = "white_cyan3" - }, +/turf/open/floor/strata/white_cyan3/southwest, /area/lv522/indoors/a_block/medical) "bkl" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -2374,9 +1925,7 @@ /turf/closed/wall/shiva/prefabricated/reinforced, /area/lv522/outdoors/nw_rockies) "bkQ" = ( -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/oob) "bkY" = ( /obj/structure/surface/rack, @@ -2391,10 +1940,7 @@ pixel_y = -3 }, /obj/item/reagent_container/glass/bucket, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/b_block/bridge) "blW" = ( /obj/structure/machinery/light/double, @@ -2403,14 +1949,10 @@ layer = 3 }, /obj/structure/machinery/computer3/server/rack, -/turf/open/floor{ - icon_state = "bcircuit" - }, +/turf/open/floor/bcircuit, /area/lv522/indoors/c_block/mining) "bmg" = ( -/turf/open/asphalt/cement{ - icon_state = "cement9" - }, +/turf/open/asphalt/cement/cement9, /area/lv522/outdoors/colony_streets/east_central_street) "bmj" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -2418,11 +1960,12 @@ }, /turf/open/floor/prison, /area/lv522/indoors/a_block/security/glass) +"bmR" = ( +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_up_to_down, +/area/lv522/landing_zone_forecon/UD6_Typhoon) "bnf" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/garage) "bny" = ( /obj/effect/decal/cleanable/dirt, @@ -2432,9 +1975,7 @@ phone_id = "Reactor Garage"; pixel_y = 26 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/reactor_garage) "bnz" = ( /obj/structure/surface/table/almayer, @@ -2447,9 +1988,7 @@ }, /obj/effect/decal/cleanable/cobweb2, /obj/effect/spider/spiderling/nogrow, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/security) "bnH" = ( /obj/structure/machinery/light{ @@ -2457,10 +1996,7 @@ }, /obj/effect/decal/cleanable/dirt, /mob/living/simple_animal/mouse, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/north, /area/lv522/indoors/a_block/dorms) "bnP" = ( /obj/structure/pipes/vents/pump, @@ -2488,9 +2024,7 @@ /area/lv522/indoors/c_block/mining) "bpD" = ( /obj/structure/cargo_container/kelland/left, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/north) "bpN" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -2511,9 +2045,7 @@ /turf/open/floor/prison, /area/lv522/indoors/a_block/admin) "bqE" = ( -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/lv522/outdoors/colony_streets/south_east_street) "brk" = ( /obj/structure/cargo_container/grant/rightmid, @@ -2524,15 +2056,11 @@ dir = 1; icon_state = "p_stair_full" }, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/lv522/outdoors/colony_streets/north_west_street) "bsx" = ( /obj/structure/cargo_container/kelland/right, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/north) "bsz" = ( /obj/effect/decal/warning_stripes{ @@ -2546,17 +2074,12 @@ /turf/open/floor/plating/plating_catwalk/prison, /area/lv522/indoors/c_block/bridge) "btb" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/admin) "btP" = ( /obj/structure/closet/emcloset, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/lv522/outdoors/colony_streets/windbreaker/observation) "buD" = ( /obj/structure/barricade/deployable, @@ -2567,9 +2090,7 @@ dir = 1; flipped = 1 }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/bridges/garden_bridge) "bvI" = ( /obj/structure/surface/table/almayer, @@ -2577,18 +2098,14 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/command_centre) "bvK" = ( /obj/structure/machinery/door/airlock/almayer/medical/glass{ dir = 1; name = "\improper Chunk 'N Dump" }, -/turf/open/floor/strata{ - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1, /area/lv522/indoors/lone_buildings/chunk) "bvP" = ( /obj/structure/machinery/light{ @@ -2603,9 +2120,7 @@ /obj/item/reagent_container/food/condiment/peppermill{ pixel_x = 9 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "bwd" = ( /obj/item/toy/beach_ball/holoball{ @@ -2628,9 +2143,7 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "bwF" = ( /obj/item/stack/rods, @@ -2647,26 +2160,18 @@ pixel_x = -3; pixel_y = 2 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/lv522/indoors/c_block/t_comm) "bwU" = ( /obj/structure/largecrate/random, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor) "bxn" = ( /obj/structure/bed/chair{ dir = 1 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/north, /area/lv522/indoors/a_block/dorms) "bxr" = ( /obj/structure/prop/invuln/minecart_tracks{ @@ -2679,41 +2184,29 @@ /area/lv522/indoors/c_block/mining) "bxz" = ( /obj/structure/machinery/disposal, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/lv522/indoors/b_block/bar) "bxU" = ( /obj/item/clothing/head/hardhat, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/east_reactor) "bye" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/floor/corsat{ - icon_state = "brown" - }, +/turf/open/floor/corsat/brown, /area/lv522/atmos/east_reactor) "byu" = ( /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/north, /area/lv522/indoors/a_block/dorms) "byJ" = ( /obj/structure/machinery/light, /obj/effect/decal/cleanable/dirt, /obj/structure/surface/table/almayer, /obj/item/circuitboard/machine/ghettosmes, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/lv522/indoors/lone_buildings/outdoor_bot) "byR" = ( /obj/structure/closet/crate, @@ -2721,17 +2214,12 @@ /obj/item/ore/silver, /obj/item/ore/silver, /obj/item/ore/silver, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/lone_buildings/storage_blocks) "bzv" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 1; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/north, /area/lv522/atmos/reactor_garage) "bzC" = ( /turf/closed/wall/r_wall/biodome/biodome_unmeltable, @@ -2743,9 +2231,7 @@ /obj/item/prop/colony/usedbandage{ dir = 1 }, -/turf/open/floor/shiva{ - icon_state = "radiator_tile2" - }, +/turf/open/floor/shiva/radiator_tile2, /area/lv522/oob) "bzL" = ( /obj/structure/machinery/camera/autoname, @@ -2765,10 +2251,7 @@ pixel_x = 7; pixel_y = 1 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/b_block/hydro) "bAe" = ( /obj/structure/window/framed/strata/reinforced, @@ -2782,9 +2265,7 @@ /obj/item/prop/colony/usedbandage{ dir = 10 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/oob) "bBe" = ( /obj/structure/machinery/light{ @@ -2792,9 +2273,7 @@ }, /obj/structure/machinery/disposal, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/security) "bBt" = ( /obj/structure/desertdam/decals/road_edge{ @@ -2810,9 +2289,6 @@ /turf/open/floor/wood, /area/lv522/indoors/a_block/fitness/glass) "bBB" = ( -/obj/structure/prop/invuln/ice_prefab/trim{ - dir = 8 - }, /obj/structure/cargo_container/grant/left, /turf/open/auto_turf/shale/layer1, /area/lv522/outdoors/w_rockies) @@ -2827,9 +2303,7 @@ pixel_x = -16; pixel_y = 13 }, -/turf/open/floor/shiva{ - icon_state = "radiator_tile2" - }, +/turf/open/floor/shiva/radiator_tile2, /area/lv522/oob) "bBI" = ( /obj/item/stack/tile/plasteel{ @@ -2840,9 +2314,7 @@ /turf/open/gm/river, /area/lv522/indoors/a_block/kitchen/damage) "bBJ" = ( -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/reactor_garage) "bBW" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -2851,22 +2323,18 @@ /obj/structure/platform{ dir = 4 }, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/lv522/outdoors/colony_streets/north_east_street) "bCd" = ( -/obj/structure/machinery/light, -/turf/open/floor/corsat{ - icon_state = "plate" - }, -/area/lv522/atmos/east_reactor) +/obj/structure/pipes/standard/simple/hidden/green, +/obj/effect/landmark/structure_spawner/setup/distress/xeno_nest, +/obj/effect/landmark/corpsespawner/colonist/burst, +/obj/effect/landmark/xeno_spawn, +/turf/open/floor/corsat/plate, +/area/lv522/atmos/east_reactor/south) "bCh" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/b_block/bridge) "bCl" = ( /obj/structure/prop/invuln/lattice_prop{ @@ -2879,9 +2347,7 @@ /turf/open/floor/plating, /area/lv522/indoors/a_block/admin) "bCy" = ( -/turf/open/asphalt/cement{ - icon_state = "cement9" - }, +/turf/open/asphalt/cement/cement9, /area/lv522/outdoors/colony_streets/south_street) "bCX" = ( /obj/effect/decal/cleanable/dirt, @@ -2889,24 +2355,17 @@ /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/way_in_command_centre) "bDk" = ( /obj/structure/bed/chair/comfy{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/b_block/bar) "bDn" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan2" - }, +/turf/open/floor/strata/cyan2/east, /area/lv522/indoors/a_block/medical) "bDr" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -2923,9 +2382,7 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/east_reactor/north) "bDI" = ( /obj/structure/machinery/light{ @@ -2933,26 +2390,18 @@ }, /obj/structure/barricade/wooden, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/cargo) "bDR" = ( /obj/item/explosive/grenade/high_explosive, /turf/open/floor/prison, /area/lv522/indoors/a_block/kitchen) "bDS" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/west, /area/lv522/atmos/east_reactor/north) "bEk" = ( /obj/structure/bed/chair/comfy, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/corpo/glass) "bFn" = ( /obj/item/tool/wet_sign{ @@ -2967,10 +2416,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/lv522/indoors/b_block/hydro) "bGL" = ( /obj/structure/machinery/light{ @@ -2981,9 +2427,7 @@ }, /obj/effect/decal/cleanable/dirt, /mob/living/simple_animal/mouse, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "bGN" = ( /obj/structure/surface/table/almayer, @@ -2995,9 +2439,7 @@ }, /obj/effect/landmark/objective_landmark/close, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/cargo) "bGT" = ( /obj/effect/decal/cleanable/blood/drip, @@ -3020,14 +2462,10 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/north) "bHg" = ( -/turf/open/floor/strata{ - icon_state = "white_cyan3" - }, +/turf/open/floor/strata/white_cyan3, /area/lv522/indoors/a_block/medical) "bHk" = ( /obj/structure/barricade/sandbags, @@ -3056,10 +2494,7 @@ /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/lv522/indoors/c_block/t_comm) "bIe" = ( /obj/item/stack/sheet/metal, @@ -3072,9 +2507,7 @@ pixel_y = 7 }, /obj/item/tool/pen/red/clicky, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/c_block/mining) "bIr" = ( /turf/open/floor/corsat, @@ -3100,30 +2533,21 @@ /obj/item/trash/plate{ pixel_x = 6 }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/lv522/indoors/b_block/bar) "bIJ" = ( /turf/closed/wall/shiva/prefabricated/reinforced, /area/lv522/atmos/cargo_intake) "bIQ" = ( /obj/structure/largecrate/random/case/double, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor) "bIY" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/northeast, /area/lv522/atmos/west_reactor) "bJa" = ( -/turf/open/floor/shiva{ - icon_state = "radiator_tile2" - }, +/turf/open/floor/shiva/radiator_tile2, /area/lv522/indoors/a_block/corpo/glass) "bJp" = ( /obj/item/storage/backpack/marine/satchel{ @@ -3141,25 +2565,19 @@ /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/lv522/indoors/a_block/kitchen) "bJy" = ( /obj/structure/surface/table/almayer, /obj/effect/landmark/objective_landmark/far, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/way_in_command_centre) "bJE" = ( /obj/structure/prop/vehicles/crawler{ icon_state = "crawler_fuel"; pixel_y = 5 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor) "bJG" = ( /obj/effect/decal/cleanable/dirt, @@ -3168,10 +2586,7 @@ dir = 8; pixel_y = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/lv522/indoors/c_block/t_comm) "bJN" = ( /obj/item/stack/folding_barricade, @@ -3181,9 +2596,7 @@ /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ req_access_txt = "100" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/way_in_command_centre) "bJZ" = ( /obj/structure/barricade/wooden{ @@ -3198,33 +2611,24 @@ pixel_y = 11 }, /obj/item/clothing/head/hardhat/white, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor) "bKj" = ( /obj/structure/closet/crate, /obj/item/stack/sheet/plasteel/small_stack, /obj/item/ore/uranium, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/mining) "bKk" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner/west, /area/lv522/atmos/cargo_intake) "bKn" = ( /obj/structure/machinery/door/poddoor/shutters/almayer{ dir = 4; id = "Reactor_garage_1" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/reactor_garage) "bKq" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -3237,9 +2641,7 @@ icon_state = "N"; pixel_y = 1 }, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/lv522/outdoors/colony_streets/central_streets) "bLh" = ( /obj/structure/surface/table/almayer, @@ -3247,9 +2649,7 @@ pixel_x = 1; pixel_y = 6 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor) "bLk" = ( /obj/structure/surface/table/almayer, @@ -3260,24 +2660,19 @@ pixel_x = -3; pixel_y = 3 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor) "bLA" = ( /obj/structure/platform_decoration{ dir = 4 }, /turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "bLI" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/closet/secure_closet/engineering_electrical, /obj/structure/machinery/light, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/lv522/indoors/c_block/t_comm) "bLV" = ( /obj/structure/barricade/wooden{ @@ -3288,15 +2683,11 @@ pixel_y = 13 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/casino) "bMa" = ( /obj/structure/largecrate/random/case, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor) "bMB" = ( /obj/effect/decal/warning_stripes{ @@ -3335,24 +2726,18 @@ dir = 8 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/lv522/indoors/b_block/bar) "bNy" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper A-Block Corporate Office Airlock"; req_access_txt = "100" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/corpo) "bNA" = ( /obj/structure/machinery/light, -/turf/open/floor/prison{ - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2, /area/lv522/indoors/a_block/dorms) "bNE" = ( /obj/item/tank/oxygen{ @@ -3379,25 +2764,18 @@ pixel_y = 1 }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3, /area/lv522/indoors/a_block/dorms) "bNT" = ( /obj/effect/landmark/xeno_spawn, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/north, /area/lv522/atmos/east_reactor) "bOv" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/east_reactor) "bOE" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -3408,15 +2786,11 @@ "bOM" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/vents/pump, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/b_block/bar) "bOX" = ( -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/obj/effect/decal/cleanable/dirt, +/turf/closed/wall/shiva/prefabricated/reinforced, /area/lv522/indoors/lone_buildings/storage_blocks) "bPH" = ( /obj/structure/prop/invuln/ice_prefab/trim{ @@ -3429,7 +2803,7 @@ /area/lv522/outdoors/colony_streets/north_street) "bPJ" = ( /turf/closed/wall/strata_outpost, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "bPQ" = ( /obj/item/prop/helmetgarb/spacejam_tickets{ desc = "Two original, crisp, orange, tickets."; @@ -3453,35 +2827,25 @@ pixel_x = 8; pixel_y = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/lv522/indoors/a_block/fitness) "bQl" = ( /obj/structure/window/framed/strata/reinforced, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/fitness/glass) "bQq" = ( -/obj/structure/cargo_container/wy/mid{ - layer = 5 - }, -/turf/open/auto_turf/sand_white/layer0, +/obj/structure/cargo_container/grant/rightmid, +/turf/open/auto_turf/shale/layer2, /area/lv522/outdoors/w_rockies) "bQA" = ( /obj/structure/largecrate/random, /turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "bQC" = ( /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/north, /area/lv522/atmos/east_reactor) "bQG" = ( /obj/effect/decal/warning_stripes{ @@ -3498,21 +2862,14 @@ /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/b_block/bridge) "bRv" = ( /obj/item/trash/uscm_mre, /turf/open/auto_turf/sand_white/layer0, /area/lv522/outdoors/colony_streets/north_street) "bRN" = ( -/obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner/east, /area/lv522/atmos/north_command_centre) "bRP" = ( /obj/structure/bed/chair/comfy{ @@ -3534,18 +2891,14 @@ /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/kitchen) "bSD" = ( /obj/structure/bed/chair/comfy{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/lv522/indoors/b_block/bar) "bSI" = ( /obj/structure/barricade/wooden{ @@ -3554,16 +2907,11 @@ /obj/effect/decal/cleanable/blood/gibs, /obj/effect/decal/cleanable/blood, /obj/item/weapon/gun/revolver/cmb, -/turf/open/floor/shiva{ - icon_state = "radiator_tile2" - }, +/turf/open/floor/shiva/radiator_tile2, /area/lv522/indoors/a_block/bridges/op_centre) "bSM" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/west, /area/lv522/atmos/west_reactor) "bSU" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -3597,10 +2945,7 @@ pixel_x = -6; pixel_y = 10 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/admin) "bTT" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -3620,9 +2965,7 @@ pixel_y = 5 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/mining) "bUy" = ( /obj/structure/cargo_container/wy/left, @@ -3637,9 +2980,7 @@ dir = 5; pixel_y = 8 }, -/turf/open/floor/shiva{ - icon_state = "radiator_tile2" - }, +/turf/open/floor/shiva/radiator_tile2, /area/lv522/oob) "bUN" = ( /obj/effect/decal/cleanable/dirt, @@ -3650,10 +2991,7 @@ /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/lv522/indoors/b_block/hydro) "bUV" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -3676,15 +3014,11 @@ dir = 8 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/garage) "bVF" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/east_reactor/west) "bVG" = ( /obj/structure/bed/bedroll{ @@ -3696,9 +3030,7 @@ /obj/structure/machinery/door/airlock/almayer/engineering/colony{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/filt) "bWd" = ( /obj/structure/flora/jungle/planttop1, @@ -3708,17 +3040,12 @@ "bWm" = ( /obj/structure/barricade/wooden, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/west, /area/lv522/indoors/a_block/admin) "bWq" = ( /obj/item/trash/barcardine, /obj/item/tool/weldingtool, -/turf/open/floor/shiva{ - icon_state = "radiator_tile2" - }, +/turf/open/floor/shiva/radiator_tile2, /area/lv522/oob) "bWt" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -3739,27 +3066,18 @@ /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/west, /area/lv522/atmos/reactor_garage) "bWX" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/a_block/hallway) "bXl" = ( -/obj/structure/prop/ice_colony/ground_wire{ - dir = 1 - }, -/turf/open/floor/corsat{ - icon_state = "brown" - }, -/area/lv522/atmos/east_reactor) +/obj/effect/landmark/corpsespawner/colonist/burst, +/turf/open/floor/corsat/plate, +/area/lv522/atmos/east_reactor/south) "bXo" = ( /obj/structure/surface/table/almayer, /obj/item/paper_bin{ @@ -3771,21 +3089,15 @@ pixel_x = -9; pixel_y = 9 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "bXq" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/west_reactor) "bXA" = ( /obj/effect/landmark/monkey_spawn, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/north_command_centre) "bXO" = ( /obj/structure/bed/stool, @@ -3807,22 +3119,20 @@ /area/lv522/indoors/c_block/mining) "bYd" = ( /obj/structure/bed/chair/comfy, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/north) "bYx" = ( /obj/structure/cargo_container/wy/right, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/landing_zone_2) "bYy" = ( /obj/item/paper, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/lv522/indoors/c_block/cargo) +"bYC" = ( +/turf/open/shuttle/dropship/can_surgery/light_grey_top_right, +/area/lv522/landing_zone_forecon/UD6_Tornado) "bYS" = ( /obj/structure/prop/invuln/ice_prefab/trim{ dir = 4; @@ -3839,7 +3149,13 @@ /turf/open/auto_turf/sand_white/layer0, /area/lv522/outdoors/colony_streets/central_streets) "bYV" = ( -/obj/structure/platform, +/obj/structure/stairs/perspective{ + dir = 1; + icon_state = "p_stair_full" + }, +/obj/structure/platform{ + dir = 8 + }, /turf/open/asphalt/cement, /area/lv522/outdoors/colony_streets/south_street) "bYZ" = ( @@ -3857,9 +3173,7 @@ /area/lv522/indoors/lone_buildings/storage_blocks) "bZe" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/corsat{ - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner, /area/lv522/atmos/east_reactor/north) "bZB" = ( /obj/structure/girder/displaced, @@ -3874,9 +3188,7 @@ /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/colony_streets/north_west_street) "bZK" = ( /turf/closed/wall/shiva/prefabricated/reinforced, @@ -3890,17 +3202,12 @@ id = "LV_522_Hydro-Lockdown"; name = "\improper Storm Shutters" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/b_block/bridge) "bZX" = ( /obj/structure/barricade/deployable, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/west, /area/lv522/indoors/a_block/admin) "cac" = ( /obj/structure/prop/invuln/overhead/flammable_pipe/fly{ @@ -3914,10 +3221,7 @@ pixel_x = 12; pixel_y = -4 }, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/southeast, /area/lv522/atmos/east_reactor/north) "caf" = ( /obj/structure/surface/table/almayer, @@ -3928,19 +3232,14 @@ pixel_x = 2; pixel_y = 9 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/b_block/hydro) "cay" = ( /obj/structure/prop/invuln/overhead/flammable_pipe/fly{ dir = 8; pixel_y = 16 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/north) "caE" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -3950,12 +3249,10 @@ /turf/open/floor/wood/ship, /area/lv522/atmos/way_in_command_centre) "caN" = ( -/obj/structure/pipes/standard/manifold/hidden/green{ - dir = 1 - }, -/turf/open/floor/corsat{ - icon_state = "squares" +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 6 }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/east_reactor/west) "caP" = ( /obj/effect/decal/cleanable/blood/xeno{ @@ -3969,50 +3266,31 @@ pixel_x = 6; pixel_y = 19 }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/kitchen/damage) "caV" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison, /area/lv522/atmos/sewer) -"cbn" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "S"; - pixel_y = -1 - }, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, -/area/lv522/oob/w_y_vault) "cbp" = ( /obj/structure/machinery/squeezer, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/lv522/indoors/b_block/bar) "cbB" = ( /obj/structure/prop/invuln/overhead/flammable_pipe/fly{ dir = 10; pixel_y = 16 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/north) "cbR" = ( -/obj/structure/platform{ - dir = 4 - }, -/turf/open/asphalt/cement{ - icon_state = "cement3" +/obj/structure/stairs/perspective{ + dir = 8; + icon_state = "p_stair_full" }, +/turf/open/asphalt/cement/cement3, /area/lv522/outdoors/colony_streets/south_west_street) "cbW" = ( /obj/structure/machinery/light, @@ -4029,9 +3307,7 @@ icon_state = "flammable_pipe_3" }, /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor) "cce" = ( /obj/structure/surface/table/almayer, @@ -4043,10 +3319,7 @@ pixel_x = 5; pixel_y = 3 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/north, /area/lv522/atmos/east_reactor) "cct" = ( /obj/structure/bed/chair/wood/normal, @@ -4055,10 +3328,7 @@ /area/lv522/indoors/c_block/casino) "ccu" = ( /obj/structure/largecrate/random/case, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/northeast, /area/lv522/atmos/east_reactor) "ccN" = ( /obj/item/reagent_container/glass/bucket, @@ -4085,9 +3355,7 @@ dir = 4 }, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/north_command_centre) "cem" = ( /obj/structure/bed/chair/comfy{ @@ -4109,31 +3377,29 @@ /turf/open/asphalt/cement, /area/lv522/outdoors/colony_streets/east_central_street) "cfd" = ( -/obj/structure/closet/wardrobe/engineering_yellow, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/structure/surface/rack, +/turf/open/floor/prison/darkyellowfull2/east, /area/lv522/indoors/lone_buildings/engineering) "cfg" = ( /obj/structure/prop/vehicles/crawler{ dir = 8; layer = 3.1 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor) "cfv" = ( -/obj/structure/stairs/perspective{ - dir = 5; - icon_state = "p_stair_full" - }, -/obj/structure/platform_decoration, -/turf/open/asphalt/cement{ - icon_state = "cement4" +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 9 }, -/area/lv522/outdoors/colony_streets/north_east_street) +/turf/open/floor/corsat/brown, +/area/lv522/atmos/north_command_centre) "cfz" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper B-Block - Hydroponics Airlock" @@ -4142,9 +3408,7 @@ id = "LV_522_Hydro-Lockdown"; name = "\improper Storm Shutters" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/b_block/bridge) "cfT" = ( /obj/effect/decal/warning_stripes{ @@ -4165,10 +3429,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/a_block/fitness) "chm" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, @@ -4176,9 +3437,7 @@ /area/lv522/atmos/west_reactor) "cho" = ( /obj/item/weapon/gun/rifle/mar40/carbine, -/turf/open/floor/plating{ - icon_state = "platebot" - }, +/turf/open/floor/plating/platebot, /area/lv522/indoors/c_block/cargo) "chR" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -4193,21 +3452,14 @@ icon_state = "xgib3" }, /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/northeast, /area/lv522/atmos/east_reactor/south) "cia" = ( -/turf/open/floor/strata{ - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1, /area/lv522/indoors/lone_buildings/chunk) "cil" = ( /obj/effect/landmark/queen_spawn, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/east_reactor) "cim" = ( /obj/structure/pipes/vents/pump, @@ -4223,9 +3475,7 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/way_in_command_centre) "ciw" = ( /obj/structure/stairs/perspective{ @@ -4236,24 +3486,18 @@ /area/lv522/outdoors/n_rockies) "ciA" = ( /obj/structure/cargo_container/kelland/right, -/turf/open/asphalt/cement{ - icon_state = "cement15" - }, +/turf/open/asphalt/cement/cement15, /area/lv522/outdoors/colony_streets/south_east_street) "ciF" = ( /obj/item/reagent_container/glass/bucket/janibucket{ pixel_x = -6; pixel_y = 15 }, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/lv522/outdoors/colony_streets/south_street) "ciL" = ( /obj/item/tool/pen/clicky, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/east_reactor) "ciS" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -4278,9 +3522,7 @@ dir = 1; name = "\improper A-Block Corporate Office Airlock" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/bridges/corpo) "cjE" = ( /obj/effect/decal/warning_stripes{ @@ -4294,9 +3536,7 @@ dir = 1; icon_state = "fab_2" }, -/obj/structure/prop/invuln/ice_prefab{ - icon_state = "fab_2" - }, +/obj/structure/prop/invuln/ice_prefab, /turf/open/auto_turf/shale/layer1, /area/lv522/outdoors/w_rockies) "ckT" = ( @@ -4305,17 +3545,13 @@ dir = 6 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/security) "ckZ" = ( /obj/structure/barricade/handrail/strata{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/c_block/mining) "clf" = ( /obj/effect/landmark/xeno_spawn, @@ -4326,19 +3562,13 @@ dir = 8; icon_state = "p_stair_full" }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/lv522/indoors/b_block/bridge) "clT" = ( /obj/structure/barricade/wooden{ dir = 4 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/c_block/mining) "clY" = ( /turf/open/auto_turf/shale/layer1, @@ -4347,9 +3577,7 @@ /obj/structure/bed/chair/comfy{ dir = 1 }, -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles, /area/lv522/indoors/c_block/mining) "cmB" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -4365,9 +3593,7 @@ /obj/structure/machinery/door/airlock/almayer/generic{ name = "\improper A-Block Fitness Centre Airlock" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/fitness) "cmF" = ( /obj/structure/prop/vehicles/crawler{ @@ -4386,49 +3612,35 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/casino) "cnA" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_nest, /obj/effect/landmark/xeno_spawn, -/turf/open/floor/corsat{ - icon_state = "brown" - }, +/turf/open/floor/corsat/brown, /area/lv522/atmos/east_reactor/south) "cnN" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/lv522/outdoors/colony_streets/central_streets) "col" = ( /obj/structure/machinery/suit_storage_unit{ pixel_x = -2 }, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/mining) "con" = ( -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/lv522/outdoors/colony_streets/south_east_street) "coR" = ( /obj/structure/ore_box, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/mining) "cpk" = ( -/turf/open/asphalt/cement{ - icon_state = "cement15" - }, +/turf/open/asphalt/cement/cement15, /area/lv522/outdoors/colony_streets/south_east_street) "cpn" = ( /obj/structure/machinery/door/poddoor/almayer{ @@ -4437,9 +3649,7 @@ unacidable = 1 }, /obj/structure/blocker/invisible_wall, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/oob) "cpx" = ( /obj/structure/platform_decoration{ @@ -4462,10 +3672,7 @@ dir = 6; icon_state = "p_stair_full" }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/admin) "cpJ" = ( /obj/structure/barricade/deployable{ @@ -4480,19 +3687,8 @@ "cpO" = ( /obj/structure/machinery/light, /obj/structure/pipes/vents/pump, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/b_block/hydro) -"cpU" = ( -/obj/structure/machinery/floodlight/landing, -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, -/area/lv522/landing_zone_1) "cpX" = ( /obj/item/toy/beach_ball/holoball, /obj/item/shard{ @@ -4506,9 +3702,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner, /area/lv522/atmos/east_reactor/south) "cqb" = ( /obj/structure/stairs/perspective{ @@ -4530,16 +3724,11 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "cqr" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/west, /area/lv522/atmos/east_reactor/north) "cqs" = ( /obj/structure/machinery/light{ @@ -4552,32 +3741,23 @@ /turf/open/auto_turf/shale/layer2, /area/lv522/outdoors/colony_streets/central_streets) "cqH" = ( -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/c_block/cargo) "cqP" = ( /obj/structure/bed/chair/comfy{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/east_reactor/north) "crm" = ( /obj/structure/surface/table/almayer, /obj/item/prop/almayer/flight_recorder{ pixel_x = 9 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/east, /area/lv522/atmos/east_reactor/north) "crH" = ( -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/lv522/outdoors/colony_streets/north_street) "crM" = ( /obj/structure/surface/rack, @@ -4602,43 +3782,32 @@ "crX" = ( /obj/structure/prop/ice_colony/ground_wire, /obj/effect/landmark/structure_spawner/xvx_hive/xeno_core, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/east_reactor) "csv" = ( /obj/structure/platform{ dir = 1 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/kitchen) "csy" = ( /obj/structure/surface/table/almayer, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner/north, /area/lv522/atmos/east_reactor/south) "csC" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper C-Block - Garage Airlock" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/c_block/garage) "csK" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor/corsat{ - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner, /area/lv522/atmos/north_command_centre) "csS" = ( /obj/effect/spawner/gibspawner/xeno, @@ -4646,9 +3815,7 @@ icon_state = "xgib3" }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/south) "csU" = ( /obj/effect/decal/warning_stripes{ @@ -4662,18 +3829,14 @@ icon_state = "p_stair_full" }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/a_block/dorms) "ctu" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper C-Block - Casino Airlock"; welded = 1 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/c_block/casino) "ctE" = ( /obj/structure/foamed_metal, @@ -4681,20 +3844,16 @@ /area/lv522/oob) "cuk" = ( /obj/structure/cargo_container/horizontal/blue/top, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/outdoors/colony_streets/north_east_street) "cuu" = ( -/obj/effect/landmark/structure_spawner/setup/distress/xeno_nest, -/obj/effect/landmark/xeno_spawn, /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/obj/effect/landmark/structure_spawner/setup/distress/xeno_nest, +/obj/effect/landmark/corpsespawner/colonist/burst, +/obj/effect/landmark/xeno_spawn, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/south) "cuF" = ( /obj/item/tool/warning_cone{ @@ -4704,16 +3863,11 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/west) "cuY" = ( /obj/structure/machinery/cm_vending/sorted/tech/electronics_storage, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/lv522/indoors/lone_buildings/outdoor_bot) "cve" = ( /obj/structure/bed/chair/comfy{ @@ -4729,23 +3883,17 @@ pixel_y = 7 }, /obj/structure/surface/table/almayer, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/north) "cwe" = ( /obj/structure/machinery/portable_atmospherics/canister/empty/oxygen, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/mining) "cwq" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/north) "cwr" = ( /obj/structure/machinery/deployable/barrier, @@ -4753,9 +3901,7 @@ icon_state = "W"; pixel_x = -1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/way_in_command_centre) "cwE" = ( /obj/structure/largecrate/random/secure, @@ -4774,6 +3920,21 @@ /obj/effect/decal/cleanable/blood/oil/streak, /turf/open/floor/corsat, /area/lv522/atmos/east_reactor) +"cxn" = ( +/obj/structure/machinery/door/airlock/almayer/security/glass{ + dir = 8; + name = "\improper Marshal Head Office" + }, +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 4 + }, +/obj/structure/machinery/door/poddoor/shutters/almayer/open{ + dir = 4; + id = "Sec-Kitchen-Lockdown"; + name = "\improper Storm Shutters" + }, +/turf/open/floor/corsat/marked, +/area/lv522/indoors/a_block/security) "cxo" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 @@ -4785,9 +3946,7 @@ /turf/open/floor/corsat, /area/lv522/atmos/east_reactor) "cxv" = ( -/turf/open/asphalt/cement{ - icon_state = "cement14" - }, +/turf/open/asphalt/cement/cement14, /area/lv522/outdoors/colony_streets/south_west_street) "cxC" = ( /obj/structure/surface/table/almayer, @@ -4795,54 +3954,34 @@ dir = 4; pixel_x = -3 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "cxE" = ( -/obj/structure/machinery/colony_floodlight{ - layer = 4.3 - }, -/obj/structure/platform{ - dir = 1 - }, -/turf/open/asphalt/cement, -/area/lv522/outdoors/colony_streets/south_east_street) +/obj/effect/landmark/xeno_spawn, +/turf/open/floor/corsat/plate, +/area/lv522/atmos/east_reactor/south) "cxK" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/c_block/cargo) "cxT" = ( /obj/structure/bed/chair/comfy{ dir = 4 }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/northwest, /area/lv522/indoors/a_block/admin) "cyl" = ( /obj/structure/cargo_container/wy/left, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/atmos/cargo_intake) "cys" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/asphalt/cement{ - icon_state = "cement9" - }, +/turf/open/asphalt/cement/cement9, /area/lv522/outdoors/colony_streets/central_streets) "cyt" = ( -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/lv522/indoors/a_block/medical/glass) "cyu" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -4850,38 +3989,28 @@ }, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, /obj/structure/machinery/light, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/cargo_intake) "cyv" = ( /obj/effect/landmark/xeno_spawn, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/east_reactor) "cyH" = ( /obj/structure/machinery/space_heater/radiator/red{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/garage) "cyO" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/west_reactor) "cyV" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/shiva{ - icon_state = "radiator_tile2" - }, +/turf/open/floor/shiva/radiator_tile2, /area/lv522/indoors/b_block/bridge) "czd" = ( /obj/effect/decal/cleanable/vomit{ @@ -4897,9 +4026,7 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/mining) "czC" = ( /turf/closed/wall/strata_outpost, @@ -4907,7 +4034,7 @@ "czE" = ( /obj/item/stack/sheet/metal, /turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "czG" = ( /obj/structure/sign/safety/radio_rad{ pixel_y = 26 @@ -4931,10 +4058,7 @@ dir = 10; icon_state = "p_stair_full" }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/admin) "czW" = ( /obj/structure/barricade/wooden{ @@ -4946,9 +4070,7 @@ /area/lv522/outdoors/colony_streets/north_west_street) "cAp" = ( /obj/effect/landmark/xeno_spawn, -/turf/open/floor/corsat{ - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner, /area/lv522/atmos/east_reactor) "cAx" = ( /obj/structure/filingcabinet{ @@ -4962,54 +4084,42 @@ pixel_y = 20 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/casino) "cAy" = ( /obj/structure/cargo_container/horizontal/blue/middle, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/east_reactor/east) "cAW" = ( /obj/structure/cargo_container/kelland/right, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/indoors/lone_buildings/storage_blocks) "cBi" = ( -/turf/open/floor/corsat{ - dir = 10; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/southwest, /area/lv522/atmos/north_command_centre) "cBs" = ( /obj/item/tool/extinguisher, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/kitchen) +"cBU" = ( +/obj/structure/prop/vehicles/crawler{ + icon_state = "crawler_covered_bed" + }, +/turf/open/floor/corsat/plate, +/area/lv522/atmos/reactor_garage) "cBV" = ( /obj/effect/decal/cleanable/cobweb2, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/kitchen) "cCt" = ( /obj/item/prop/alien/hugger, /obj/item/clothing/head/helmet/riot, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/a_block/kitchen) "cCC" = ( /obj/effect/landmark/monkey_spawn, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/north_command_centre) "cCH" = ( /obj/effect/decal/cleanable/generic, @@ -5017,16 +4127,11 @@ /area/lv522/outdoors/colony_streets/north_east_street) "cCK" = ( /obj/structure/machinery/disposal, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/admin) "cCL" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/way_in_command_centre) "cCN" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -5035,15 +4140,10 @@ /area/lv522/indoors/c_block/cargo) "cCQ" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/corsat{ - icon_state = "brown" - }, +/turf/open/floor/corsat/brown, /area/lv522/atmos/north_command_centre) "cDh" = ( -/turf/open/floor/corsat{ - dir = 10; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/southwest, /area/lv522/atmos/east_reactor/north) "cDi" = ( /obj/structure/platform_decoration{ @@ -5056,23 +4156,16 @@ /turf/open/auto_turf/sand_white/layer0, /area/lv522/landing_zone_2) "cDo" = ( -/turf/open/floor/corsat{ - icon_state = "brown" - }, +/turf/open/floor/corsat/brown, /area/lv522/atmos/east_reactor/north) "cDp" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/asphalt/cement{ - icon_state = "cement9" - }, +/turf/open/asphalt/cement/cement9, /area/lv522/outdoors/colony_streets/north_east_street) "cDx" = ( /obj/structure/machinery/light, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/b_block/bridge) "cDH" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -5096,9 +4189,7 @@ "cEw" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/light, -/turf/open/floor/corsat{ - icon_state = "brown" - }, +/turf/open/floor/corsat/brown, /area/lv522/atmos/east_reactor/north) "cEx" = ( /obj/structure/surface/table/almayer, @@ -5106,19 +4197,14 @@ pixel_x = -7; pixel_y = 3 }, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/southeast, /area/lv522/atmos/east_reactor/north) "cEM" = ( /obj/item/tool/warning_cone{ pixel_x = -10; pixel_y = 3 }, -/turf/open/floor/corsat{ - icon_state = "brown" - }, +/turf/open/floor/corsat/brown, /area/lv522/atmos/east_reactor/north) "cEN" = ( /obj/structure/bed/bedroll{ @@ -5132,16 +4218,11 @@ /area/lv522/indoors/a_block/admin) "cFv" = ( /obj/structure/cargo_container/wy/mid, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/atmos/cargo_intake) "cFP" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "brown" - }, +/turf/open/floor/corsat/brown, /area/lv522/atmos/east_reactor/north) "cFR" = ( /obj/structure/pipes/standard/manifold/hidden/green{ @@ -5151,16 +4232,10 @@ /area/lv522/atmos/east_reactor) "cFW" = ( /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/lv522/indoors/b_block/bridge) "cGd" = ( -/turf/open/floor/corsat{ - dir = 5; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/northeast, /area/lv522/atmos/east_reactor/east) "cGw" = ( /obj/structure/machinery/light{ @@ -5168,20 +4243,14 @@ }, /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/space_heater/radiator/red, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/b_block/bridge) "cGG" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/structure/machinery/space_heater/radiator/red, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/b_block/hydro) "cGY" = ( /obj/item/tool/wrench, @@ -5195,10 +4264,7 @@ icon_state = "p_stair_full" }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/lv522/indoors/b_block/bridge) "cHg" = ( /obj/structure/machinery/deployable/barrier, @@ -5215,22 +4281,15 @@ dir = 1; welded = 1 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/east_reactor/south) "cHw" = ( /obj/structure/largecrate/random, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/lv522/outdoors/colony_streets/north_street) "cHy" = ( -/obj/structure/prop/ice_colony/ground_wire, -/turf/open/floor/corsat{ - icon_state = "squares" - }, -/area/lv522/atmos/east_reactor) +/turf/closed/wall/strata_outpost/reinforced, +/area/lv522/atmos/east_reactor/south) "cHC" = ( /obj/structure/prop/invuln/lattice_prop{ icon_state = "lattice12"; @@ -5241,25 +4300,12 @@ pixel_x = -7; pixel_y = 4 }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/lv522/indoors/a_block/dorms) "cHL" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/west, /area/lv522/atmos/east_reactor) -"cHY" = ( -/obj/structure/platform_decoration{ - dir = 8 - }, -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/gm/river, -/area/lv522/landing_zone_1/tunnel) "cIe" = ( /obj/structure/surface/rack, /obj/item/tool/minihoe{ @@ -5278,25 +4324,17 @@ pixel_y = -2 }, /obj/item/tool/wirecutters/clippers, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/b_block/hydro) "cIm" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner/west, /area/lv522/atmos/east_reactor/east) "cIo" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ dir = 1; name = "\improper C-Block - Cargo Airlock" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/c_block/cargo) "cIr" = ( /obj/structure/bed/chair{ @@ -5306,9 +4344,7 @@ /area/lv522/atmos/east_reactor) "cIs" = ( /obj/structure/cargo_container/horizontal/blue/bottom, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/east_reactor/east) "cIA" = ( /obj/structure/surface/table/reinforced/prison, @@ -5350,20 +4386,14 @@ }, /obj/effect/decal/cleanable/cobweb, /obj/structure/pipes/vents/pump, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/b_block/bar) "cIV" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/engidoor, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/east_reactor/east) "cIW" = ( -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/east_reactor/east) "cIX" = ( /obj/structure/window/reinforced{ @@ -5374,20 +4404,14 @@ pixel_x = 10; pixel_y = 22 }, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/northwest, /area/lv522/oob) "cJh" = ( /obj/structure/window/reinforced{ dir = 4 }, /obj/structure/prop/almayer/computers/sensor_computer2, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/northeast, /area/lv522/oob) "cJm" = ( /obj/structure/prop/invuln/ice_prefab{ @@ -5397,9 +4421,7 @@ /area/lv522/outdoors/w_rockies) "cJo" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/north_command_centre) "cJy" = ( /obj/effect/decal/cleanable/blood/xeno, @@ -5418,22 +4440,18 @@ }, /obj/item/stack/sheet/wood, /turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "cJW" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/lv522/outdoors/colony_streets/east_central_street) "cKf" = ( /obj/effect/decal/cleanable/blood, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/casino) "cKi" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -5441,14 +4459,15 @@ id = "LV_522_Hydro-Lockdown"; name = "\improper Storm Shutters" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/b_block/hydro) "cKo" = ( /obj/structure/closet/crate/trashcart, /obj/item/trash/chips, -/obj/structure/platform, +/obj/structure/stairs/perspective{ + dir = 1; + icon_state = "p_stair_full" + }, /turf/open/asphalt/cement, /area/lv522/outdoors/colony_streets/east_central_street) "cKp" = ( @@ -5502,10 +4521,7 @@ /turf/open/floor/corsat, /area/lv522/atmos/east_reactor) "cLb" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner/east, /area/lv522/atmos/east_reactor/east) "cLi" = ( /obj/structure/barricade/deployable{ @@ -5522,14 +4538,10 @@ /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/wood{ - icon_state = "wood-broken5" - }, +/turf/open/floor/wood/wood_broken5, /area/lv522/indoors/b_block/bar) "cLx" = ( -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms/glass) "cLB" = ( /obj/structure/stairs/perspective{ @@ -5544,15 +4556,11 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/south) "cLQ" = ( /obj/structure/largecrate/random/secure, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/bridges/op_centre) "cMc" = ( /obj/item/clothing/head/hardhat, @@ -5565,10 +4573,7 @@ amount = 2 }, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/atmos/cargo_intake) "cMt" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -5576,10 +4581,7 @@ }, /obj/effect/landmark/objective_landmark/science, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/strata{ - dir = 1; - icon_state = "white_cyan3" - }, +/turf/open/floor/strata/white_cyan3/north, /area/lv522/indoors/a_block/medical) "cMv" = ( /obj/effect/spawner/gibspawner/xeno, @@ -5588,33 +4590,22 @@ }, /obj/structure/pipes/vents/pump, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/lv522/indoors/a_block/kitchen) "cMQ" = ( -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan4" - }, +/turf/open/floor/strata/white_cyan4/east, /area/lv522/indoors/a_block/medical/glass) "cMW" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/southeast, /area/lv522/atmos/reactor_garage) "cNB" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/southwest, /area/lv522/atmos/east_reactor/east) "cNO" = ( /obj/structure/machinery/colony_floodlight_switch{ @@ -5623,10 +4614,7 @@ /turf/open/floor/plating, /area/lv522/indoors/lone_buildings/engineering) "cNQ" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner/west, /area/lv522/atmos/filt) "cNU" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -5642,25 +4630,18 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/indoors/lone_buildings/storage_blocks) "cOJ" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/cargo_intake) "cOZ" = ( /obj/structure/prop/invuln/overhead/flammable_pipe/fly, /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor) "cPg" = ( /obj/structure/surface/table/almayer, @@ -5670,9 +4651,7 @@ pixel_y = 7 }, /obj/item/toy/plush/farwa, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/lv522/outdoors/colony_streets/windbreaker/observation) "cPi" = ( /obj/effect/spawner/gibspawner/xeno, @@ -5684,38 +4663,26 @@ /turf/open/floor/corsat, /area/lv522/atmos/filt) "cPy" = ( -/turf/open/floor/corsat{ - dir = 10; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/southwest, /area/lv522/atmos/filt) "cPN" = ( /obj/structure/prop/invuln/overhead/flammable_pipe/fly{ dir = 1; pixel_y = 6 }, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/northwest, /area/lv522/oob) "cPO" = ( /obj/structure/bed/chair/comfy{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner/north, /area/lv522/oob) "cPU" = ( /obj/structure/bed/chair/comfy{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner/east, /area/lv522/oob) "cPY" = ( /obj/structure/surface/table/almayer, @@ -5724,9 +4691,7 @@ pixel_x = -5; pixel_y = 9 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "cQc" = ( /obj/effect/decal/hefa_cult_decals/d32{ @@ -5742,10 +4707,7 @@ icon_state = "folder_black"; name = "USCM classified intelligence folder" }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/north, /area/lv522/oob) "cQm" = ( /obj/structure/surface/table/reinforced/prison, @@ -5769,10 +4731,7 @@ /area/lv522/indoors/lone_buildings/storage_blocks) "cQS" = ( /obj/structure/surface/rack, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/atmos/cargo_intake) "cQW" = ( /obj/structure/machinery/light{ @@ -5784,76 +4743,54 @@ pixel_x = 3 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/cargo) "cRB" = ( /obj/structure/cargo_container/kelland/right, /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/lv522/outdoors/colony_streets/central_streets) "cRD" = ( /obj/structure/blocker/forcefield/vehicles, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/east_reactor/south) "cRG" = ( /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner/east, /area/lv522/oob) "cRL" = ( /obj/structure/prop/invuln/overhead/flammable_pipe/fly{ pixel_y = 6 }, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/northeast, /area/lv522/oob) "cRN" = ( -/obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "marked" - }, -/area/lv522/atmos/north_command_centre) +/obj/structure/largecrate, +/turf/open/asphalt/cement/cement3, +/area/lv522/outdoors/colony_streets/north_east_street) "cRT" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "brown" - }, +/turf/open/floor/corsat/brown, /area/lv522/atmos/east_reactor/east) "cSb" = ( /obj/structure/largecrate, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/west) "cSf" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper C-Block - Cargo Airlock" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/c_block/cargo) "cSh" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/west) "cSO" = ( /turf/open/floor/plating, @@ -5862,24 +4799,18 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/casino) "cTf" = ( /obj/structure/machinery/power/apc/weak{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/west) "cTz" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/kitchen/glass) "cTU" = ( /obj/structure/curtain/red, @@ -5897,9 +4828,7 @@ /area/lv522/indoors/c_block/mining) "cUa" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/c_block/casino) "cUg" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, @@ -5918,9 +4847,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/east_reactor) "cUl" = ( /obj/item/stack/cable_coil/cut, @@ -5933,9 +4860,7 @@ /obj/structure/bed/chair/comfy{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/east_reactor/east) "cUA" = ( /obj/effect/decal/cleanable/dirt, @@ -5953,9 +4878,7 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/way_in_command_centre) "cUG" = ( /turf/closed/wall/strata_outpost, @@ -5966,9 +4889,7 @@ pixel_x = -9; pixel_y = 11 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/c_block/t_comm) "cVc" = ( /obj/item/stack/tile/plasteel{ @@ -5981,26 +4902,18 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/east_reactor) "cVe" = ( /obj/item/stack/sheet/wood, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/c_block/mining) "cVm" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner/east, /area/lv522/atmos/east_reactor) "cVy" = ( /obj/structure/pipes/standard/manifold/hidden/green, @@ -6010,9 +4923,7 @@ /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/outdoors/colony_streets/north_street) "cWf" = ( /turf/open/auto_turf/sand_white/layer0, @@ -6027,9 +4938,7 @@ pixel_y = 10 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/b_block/bar) "cWr" = ( /obj/structure/surface/table/almayer, @@ -6040,40 +4949,26 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/security) "cWH" = ( -/obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/obj/structure/machinery/light{ - dir = 8 - }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, -/area/lv522/atmos/east_reactor) +/obj/structure/window/framed/strata/reinforced, +/turf/open/floor/corsat/marked, +/area/lv522/atmos/east_reactor/south) "cWL" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/west, /area/lv522/atmos/east_reactor/east) "cWS" = ( /obj/structure/platform{ dir = 4 }, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/lv522/outdoors/colony_streets/north_west_street) "cWT" = ( /obj/structure/platform{ dir = 4 }, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/lv522/outdoors/colony_streets/central_streets) "cWY" = ( /obj/structure/filingcabinet/seeds{ @@ -6087,35 +4982,24 @@ pixel_y = 16 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/b_block/hydro) "cWZ" = ( /obj/structure/blocker/forcefield/vehicles, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/filt) "cXf" = ( -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/casino) "cXi" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /obj/structure/machinery/photocopier, /obj/structure/machinery/light, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/south) "cXm" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/bridges) "cXq" = ( /obj/structure/prop/invuln/ice_prefab/trim{ @@ -6132,21 +5016,18 @@ /turf/open/floor/prison, /area/lv522/indoors/a_block/security) "cYe" = ( -/obj/structure/machinery/light{ - dir = 4 - }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, -/area/lv522/atmos/east_reactor) +/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, +/obj/effect/landmark/structure_spawner/setup/distress/xeno_nest, +/obj/effect/landmark/corpsespawner/colonist/burst, +/obj/effect/landmark/xeno_spawn, +/turf/open/floor/corsat, +/area/lv522/atmos/east_reactor/south) "cYf" = ( /obj/structure/closet/secure_closet/freezer/fridge/full, /obj/item/reagent_container/food/condiment/enzyme, /obj/item/reagent_container/food/condiment/enzyme, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/lv522/indoors/a_block/kitchen) "cYn" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, @@ -6162,10 +5043,7 @@ /area/lv522/indoors/c_block/mining) "cYF" = ( /obj/structure/cargo_container/wy/right, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/atmos/cargo_intake) "cYG" = ( /obj/structure/machinery/light, @@ -6173,9 +5051,7 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/bridges/op_centre) "cYQ" = ( /obj/structure/window/framed/corsat, @@ -6194,9 +5070,7 @@ }, /obj/structure/pipes/vents/pump, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/cargo) "cZu" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, @@ -6210,10 +5084,7 @@ pixel_x = 7; pixel_y = 20 }, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/northwest, /area/lv522/atmos/east_reactor/east) "cZH" = ( /obj/structure/blocker/invisible_wall, @@ -6221,17 +5092,11 @@ /area/lv522/atmos/sewer) "cZM" = ( /obj/structure/cargo_container/horizontal/blue/top, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/atmos/cargo_intake) "cZN" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/a_block/fitness) "cZQ" = ( /obj/structure/machinery/photocopier, @@ -6248,16 +5113,11 @@ pixel_x = 7; pixel_y = 20 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/north, /area/lv522/atmos/east_reactor/east) "dak" = ( /obj/structure/machinery/light, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/bridges/op_centre) "daq" = ( /obj/effect/decal/hefa_cult_decals/d32{ @@ -6265,13 +5125,9 @@ icon_state = "2" }, /obj/item/storage/belt/gun/m44/custom, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/west, /area/lv522/oob) "das" = ( -/obj/effect/landmark/lv624/fog_blocker/short, /obj/structure/machinery/landinglight/ds1/delayone, /turf/open/floor/plating, /area/lv522/landing_zone_1) @@ -6281,69 +5137,41 @@ pixel_y = 16 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/a_block/fitness) "daB" = ( /obj/structure/machinery/light{ dir = 1 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/casino) "daG" = ( /obj/structure/largecrate/random, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/outdoors/colony_streets/north_west_street) "daL" = ( /obj/item/clothing/under/marine/reconnaissance, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/oob) "dbc" = ( -/obj/structure/fence{ - layer = 2.9 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/lv522/outdoors/colony_streets/central_streets) +/turf/closed/wall/solaris/reinforced/hull/lv522, +/area/lv522/indoors/lone_buildings/storage_blocks) "dbi" = ( -/obj/item/clothing/suit/storage/marine/leader, +/obj/item/clothing/suit/storage/marine/medium/leader, /obj/item/clothing/head/helmet/marine/leader{ pixel_x = 9; pixel_y = 14 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/oob) "dbs" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/filt) "dbt" = ( /obj/item/reagent_container/food/snacks/meat/human, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/oob) "dbF" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -6366,8 +5194,12 @@ /turf/open/floor/plating/plating_catwalk/prison, /area/lv522/indoors/b_block/hydro) "dbP" = ( -/obj/structure/platform{ - dir = 4 +/obj/structure/stairs/perspective{ + dir = 8; + icon_state = "p_stair_full" + }, +/obj/structure/platform/stair_cut{ + icon_state = "platform_stair_alt" }, /turf/open/asphalt/cement, /area/lv522/outdoors/colony_streets/south_west_street) @@ -6380,9 +5212,7 @@ /area/lv522/indoors/a_block/kitchen) "dbX" = ( /obj/effect/decal/cleanable/blood/gibs, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/oob) "dcc" = ( /obj/structure/cargo_container/kelland/left, @@ -6392,10 +5222,7 @@ /turf/open/auto_turf/shale/layer1, /area/lv522/outdoors/colony_streets/north_east_street) "dci" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/east, /area/lv522/oob) "dck" = ( /obj/structure/surface/table/almayer, @@ -6405,9 +5232,7 @@ /obj/item/trash/ceramic_plate{ pixel_y = 8 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/south) "dco" = ( /obj/structure/cargo_container/grant/right, @@ -6417,22 +5242,15 @@ /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/east_reactor/west) "dcD" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/northwest, /area/lv522/atmos/east_reactor/west) "dcF" = ( /obj/structure/machinery/door/airlock/almayer/maint, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/c_block/casino) "dcJ" = ( /obj/structure/filingcabinet{ @@ -6445,20 +5263,15 @@ pixel_x = 8; pixel_y = 16 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/admin) "dcM" = ( /obj/effect/decal/cleanable/blood, /obj/effect/alien/resin/sticky, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/south) "dcR" = ( -/obj/effect/alien/weeds/node/alpha, +/obj/structure/cargo_container/grant/right, /turf/open/auto_turf/sand_white/layer0, /area/lv522/outdoors/w_rockies) "ddo" = ( @@ -6472,10 +5285,7 @@ amount = 30 }, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/atmos/cargo_intake) "ddr" = ( /obj/structure/surface/table/almayer, @@ -6483,15 +5293,10 @@ pixel_x = -4; pixel_y = 9 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "ddy" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/north, /area/lv522/atmos/cargo_intake) "ddC" = ( /obj/structure/filingcabinet{ @@ -6505,10 +5310,7 @@ pixel_y = 19 }, /obj/item/trash/uscm_mre, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/admin) "ddK" = ( /obj/structure/filingcabinet/chestdrawer{ @@ -6541,10 +5343,7 @@ /area/lv522/indoors/a_block/executive) "ddN" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/north, /area/lv522/atmos/east_reactor/west) "ddP" = ( /obj/structure/surface/table/almayer{ @@ -6552,17 +5351,11 @@ flipped = 1 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/admin) "ddS" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/north, /area/lv522/atmos/east_reactor/west) "dek" = ( /obj/effect/decal/warning_stripes{ @@ -6577,10 +5370,7 @@ /turf/open/auto_turf/sand_white/layer0, /area/lv522/outdoors/nw_rockies) "del" = ( -/turf/open/floor/corsat{ - dir = 5; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/northeast, /area/lv522/atmos/east_reactor/west) "den" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -6604,9 +5394,7 @@ /area/lv522/indoors/c_block/cargo) "dfn" = ( /obj/structure/largecrate/random/barrel/yellow, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/west) "dfE" = ( /obj/structure/filingcabinet{ @@ -6633,17 +5421,13 @@ /area/lv522/indoors/c_block/garage) "dfH" = ( /obj/effect/spawner/gibspawner/human, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/lv522/indoors/a_block/kitchen) "dfK" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/sewer) "dfV" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ @@ -6651,59 +5435,42 @@ welded = 1 }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/dorms) "dgb" = ( /obj/structure/cryofeed, /turf/open/floor/bluegrid, /area/lv522/atmos/east_reactor) "dgd" = ( -/turf/open/asphalt/cement{ - icon_state = "cement15" - }, +/turf/open/asphalt/cement/cement15, /area/lv522/outdoors/colony_streets/north_east_street) "dgj" = ( /obj/structure/machinery/light{ dir = 1 }, /obj/structure/machinery/disposal, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "dgq" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner/west, /area/lv522/atmos/east_reactor/east) "dgI" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/north, /area/lv522/atmos/west_reactor) "dgJ" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/prison{ - dir = 1; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/north, /area/lv522/atmos/cargo_intake) "dgO" = ( /obj/structure/tunnel, -/turf/open/floor/corsat{ - icon_state = "brown" - }, +/turf/open/floor/corsat/brown, /area/lv522/atmos/east_reactor) "dgR" = ( /obj/structure/machinery/conveyor{ @@ -6714,10 +5481,7 @@ /turf/open/floor/plating, /area/lv522/indoors/c_block/cargo) "dgY" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/b_block/bridge) "dgZ" = ( /obj/structure/window/framed/strata/reinforced, @@ -6725,21 +5489,17 @@ id = "LV522CIC_1"; name = "\improper Storm Shutters" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/hallway) "dhH" = ( -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/lv522/landing_zone_2) "dhJ" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "browncorner" - }, -/area/lv522/atmos/east_reactor) +/obj/effect/landmark/structure_spawner/setup/distress/xeno_nest, +/obj/effect/landmark/corpsespawner/colonist/burst, +/obj/effect/landmark/xeno_spawn, +/turf/open/floor/corsat, +/area/lv522/atmos/east_reactor/south) "dhP" = ( /obj/structure/machinery/landinglight/ds1/delayone{ dir = 8 @@ -6748,77 +5508,50 @@ /area/lv522/landing_zone_1) "dhQ" = ( /obj/structure/window/framed/strata/reinforced, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/corpo/glass) "dhW" = ( /obj/item/stack/tile/plasteel, /obj/structure/prop/ice_colony/ground_wire{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/east_reactor) "dhX" = ( /obj/item/stack/cable_coil/cut, /turf/open/floor/plating, /area/lv522/atmos/east_reactor) -"dic" = ( -/obj/structure/platform_decoration{ - dir = 4 - }, -/obj/structure/bed/chair/dropship/passenger{ - dir = 4 - }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, -/area/lv522/landing_zone_forecon/UD6_Tornado) "dio" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/way_in_command_centre) "dip" = ( /obj/structure/prop/ice_colony/ground_wire{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/east_reactor) "dit" = ( /obj/structure/machinery/floodlight, /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/mining) "diT" = ( -/turf/open/asphalt/cement{ - icon_state = "cement14" - }, +/turf/open/asphalt/cement/cement14, /area/lv522/outdoors/colony_streets/east_central_street) "diZ" = ( /obj/structure/pipes/vents/pump, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/security) "djg" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/mucus, -/turf/open/floor/strata{ - icon_state = "white_cyan3" - }, +/turf/open/floor/strata/white_cyan3, /area/lv522/indoors/a_block/medical) "djm" = ( /obj/structure/pipes/standard/manifold/hidden/green{ @@ -6828,9 +5561,7 @@ /area/lv522/indoors/lone_buildings/storage_blocks) "djq" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/floor/corsat{ - icon_state = "brown" - }, +/turf/open/floor/corsat/brown, /area/lv522/atmos/filt) "djD" = ( /obj/structure/surface/table/almayer, @@ -6843,9 +5574,7 @@ pixel_y = 8 }, /obj/item/tool/pen/blue/clicky, -/turf/open/floor/prison{ - icon_state = "blue" - }, +/turf/open/floor/prison/blue, /area/lv522/indoors/a_block/admin) "djM" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -6864,16 +5593,10 @@ /obj/structure/flora/bush/ausbushes/palebush{ pixel_y = 9 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/b_block/bridge) "dkh" = ( -/turf/open/floor/prison{ - dir = 6; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/southeast, /area/lv522/indoors/a_block/admin) "dkq" = ( /obj/structure/bed/chair/comfy{ @@ -6892,7 +5615,7 @@ /area/lv522/atmos/east_reactor) "dkJ" = ( /obj/structure/surface/table/almayer, -/obj/structure/machinery/computer/cameras/wooden_tv/prop{ +/obj/structure/machinery/computer/cameras/wooden_tv/broadcast{ dir = 8; layer = 3; pixel_x = 5; @@ -6901,20 +5624,14 @@ /turf/open/floor/plating/plating_catwalk/prison, /area/lv522/landing_zone_2/ceiling) "dkL" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/north, /area/lv522/atmos/east_reactor/east) "dkP" = ( /obj/structure/prop/invuln/overhead/flammable_pipe/fly{ dir = 1; pixel_y = 6 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/west, /area/lv522/oob) "dkX" = ( /obj/structure/platform_decoration, @@ -6923,9 +5640,7 @@ "dli" = ( /obj/structure/blocker/forcefield/vehicles, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/east_reactor/south) "dlC" = ( /obj/structure/prop/invuln/fire{ @@ -6942,9 +5657,7 @@ pixel_y = 26 }, /obj/structure/largecrate/random, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/colony_streets/north_west_street) "dmm" = ( /obj/item/weapon/twohanded/folded_metal_chair{ @@ -6959,9 +5672,7 @@ "dmn" = ( /obj/structure/surface/table/almayer, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms/glass) "dmx" = ( /obj/structure/prop/invuln/minecart_tracks, @@ -6969,9 +5680,7 @@ dir = 10 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/indoors/c_block/mining) "dmE" = ( /obj/structure/surface/table/almayer, @@ -6982,9 +5691,7 @@ name = "synthethic potted plant"; pixel_y = 12 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/south) "dmG" = ( /obj/structure/barricade/deployable{ @@ -7007,10 +5714,7 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/b_block/bridge) "dng" = ( /obj/effect/decal/hefa_cult_decals/d96{ @@ -7023,16 +5727,12 @@ /obj/item/prop/colony/proptag{ desc = "A fallen marine's information dog tag. It reads, Captain Hashim ibn Al-Waqqas" }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/oob) "dni" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/cobweb2, -/turf/open/floor/shiva{ - icon_state = "radiator_tile2" - }, +/turf/open/floor/shiva/radiator_tile2, /area/lv522/indoors/b_block/bridge) "dnx" = ( /obj/structure/pipes/vents/pump, @@ -7041,30 +5741,21 @@ dir = 1; pixel_y = 26 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "dnB" = ( /obj/item/clothing/head/helmet/marine/pilot, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/oob) "dnD" = ( /obj/structure/bed/chair/comfy, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/security/glass) "dnG" = ( /obj/structure/prop/invuln/overhead/flammable_pipe/fly{ pixel_y = 6 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/east, /area/lv522/oob) "dnM" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -7075,11 +5766,9 @@ dir = 1 }, /turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "dnQ" = ( -/turf/open/floor/corsat{ - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner, /area/lv522/atmos/west_reactor) "dnX" = ( /obj/structure/surface/table/almayer, @@ -7094,9 +5783,7 @@ pixel_x = -9; pixel_y = 3 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/lv522/indoors/a_block/kitchen) "doj" = ( /obj/item/ammo_magazine/rifle/heap{ @@ -7109,9 +5796,7 @@ "doq" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/dorms) "dos" = ( /obj/docking_port/stationary/marine_dropship/lz1{ @@ -7131,9 +5816,7 @@ /area/lv522/outdoors/colony_streets/north_street) "doC" = ( /obj/effect/landmark/xeno_spawn, -/turf/open/floor/corsat{ - icon_state = "brown" - }, +/turf/open/floor/corsat/brown, /area/lv522/atmos/west_reactor) "doF" = ( /obj/structure/barricade/deployable{ @@ -7142,22 +5825,15 @@ /turf/open/floor/prison, /area/lv522/atmos/cargo_intake) "doP" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner/west, /area/lv522/atmos/west_reactor) "dpg" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/west_reactor) "dpj" = ( /obj/structure/cargo_container/hd/mid/alt, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/north_command_centre) "dpk" = ( /obj/structure/prop/invuln/ice_prefab{ @@ -7174,20 +5850,13 @@ name = "????"; stat = 2 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/south) -"dqn" = ( -/obj/structure/stairs/perspective{ - icon_state = "p_stair_full" - }, -/obj/structure/platform{ - dir = 8 - }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" +"dpS" = ( +/obj/structure/bed/chair/dropship/passenger{ + dir = 4 }, +/turf/open/shuttle/dropship/can_surgery/medium_grey_single_wide_up_to_down, /area/lv522/landing_zone_forecon/UD6_Tornado) "dqr" = ( /obj/item/weapon/gun/rifle/m41a{ @@ -7196,18 +5865,33 @@ /turf/open/floor/prison, /area/lv522/atmos/cargo_intake) "dqB" = ( -/turf/open/asphalt/cement{ - icon_state = "cement2" - }, +/turf/open/asphalt/cement/cement2, /area/lv522/outdoors/colony_streets/south_east_street) "drd" = ( /obj/structure/stairs/perspective{ dir = 4; icon_state = "p_stair_full" }, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/plating, /area/lv522/landing_zone_1/tunnel) +"drg" = ( +/obj/structure/machinery/door/airlock/almayer/security/glass{ + name = "\improper Marshal Office Interrogation"; + req_access = null + }, +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 4 + }, +/obj/structure/machinery/door/poddoor/shutters/almayer/open{ + dir = 4; + id = "Sec-Kitchen-Lockdown"; + name = "\improper Storm Shutters" + }, +/turf/open/floor/corsat/marked, +/area/lv522/indoors/a_block/security) "drz" = ( /obj/effect/decal/cleanable/blood, /obj/item/tool/hatchet, @@ -7218,15 +5902,11 @@ /obj/structure/machinery/space_heater/radiator/red{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms/glass) "drS" = ( /obj/structure/cargo_container/hd/right/alt, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/north_command_centre) "drV" = ( /obj/structure/machinery/light{ @@ -7236,10 +5916,7 @@ dir = 1 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/b_block/hydro) "dsa" = ( /obj/structure/fence, @@ -7250,36 +5927,26 @@ /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/lv522/landing_zone_2/ceiling) "dsc" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/north, /area/lv522/atmos/cargo_intake) "dsl" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "NE-out"; - pixel_x = 1; - pixel_y = 1 +/obj/structure/stairs/perspective{ + dir = 10; + icon_state = "p_stair_full" }, -/turf/open/auto_turf/shale/layer1, -/area/lv522/outdoors/colony_streets/south_east_street) +/turf/open/asphalt/cement, +/area/lv522/outdoors/colony_streets/north_east_street) "dsq" = ( /obj/structure/surface/rack, /obj/item/stack/sheet/mineral/iron{ amount = 5 }, /obj/item/stack/sheet/mineral/platinum, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/atmos/cargo_intake) "dsu" = ( /obj/structure/machinery/light, @@ -7319,25 +5986,18 @@ icon_state = "N"; pixel_y = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/colony_streets/north_west_street) "dtb" = ( /obj/structure/surface/table/almayer, /obj/item/weapon/gun/rifle/m4ra{ current_mag = null }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/admin) "dtr" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/north_command_centre) "dtE" = ( /obj/effect/decal/cleanable/dirt, @@ -7345,15 +6005,11 @@ /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/casino) "dtR" = ( /obj/structure/surface/table/almayer, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/reactor_garage) "dtU" = ( /obj/effect/spawner/gibspawner/human, @@ -7362,26 +6018,18 @@ "dua" = ( /obj/effect/decal/cleanable/dirt, /obj/item/prop/colony/used_flare, -/turf/open/floor/prison{ - icon_state = "blue" - }, +/turf/open/floor/prison/blue, /area/lv522/indoors/a_block/hallway) "dut" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/lv522/indoors/a_block/medical/glass) "duN" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/east, /area/lv522/atmos/east_reactor/west) "dvn" = ( /obj/structure/machinery/door/airlock/almayer/generic{ @@ -7392,9 +6040,7 @@ id = "LV_522_Hydro-Lockdown"; name = "\improper Storm Shutters" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/b_block/hydro) "dvp" = ( /obj/structure/largecrate/supply, @@ -7422,10 +6068,7 @@ /area/lv522/outdoors/colony_streets/central_streets) "dwG" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner/east, /area/lv522/atmos/west_reactor) "dwI" = ( /obj/structure/surface/table/reinforced/almayer_B, @@ -7451,17 +6094,12 @@ /area/lv522/indoors/c_block/t_comm) "dwP" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/north, /area/lv522/atmos/north_command_centre) "dwX" = ( /obj/structure/surface/table/reinforced/prison, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/garage) "dxc" = ( /obj/structure/prop/invuln/overhead_pipe{ @@ -7473,25 +6111,18 @@ /area/lv522/atmos/east_reactor/south) "dxl" = ( /obj/effect/decal/cleanable/flour, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/lv522/indoors/a_block/kitchen) "dxJ" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/decal/cleanable/blood, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/east, /area/lv522/atmos/east_reactor/south) "dxU" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/west_reactor) "dxY" = ( /obj/structure/machinery/computer/telecomms/server{ @@ -7500,71 +6131,52 @@ /obj/structure/bed/chair/comfy{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/mining) "dya" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/north_command_centre) "dyl" = ( /obj/structure/largecrate, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/north_command_centre) "dyH" = ( /obj/structure/barricade/wooden, -/turf/open/floor/shiva{ - icon_state = "radiator_tile2" - }, +/turf/open/floor/shiva/radiator_tile2, /area/lv522/indoors/a_block/bridges/garden_bridge) "dyI" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/decal/cleanable/mucus, -/turf/open/floor/strata{ - dir = 1; - icon_state = "white_cyan3" - }, +/turf/open/floor/strata/white_cyan3/north, /area/lv522/indoors/a_block/medical) "dyS" = ( /obj/item/stack/sheet/wood, -/turf/open/auto_turf/sand_white/layer0, +/turf/open/asphalt/cement/cement12, /area/lv522/outdoors/colony_streets/south_street) "dzd" = ( /obj/structure/closet/secure_closet/marshal, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/security) "dzs" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/paper, /obj/item/tool/pen/blue/clicky, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/casino) "dzv" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/east_reactor/north) "dzB" = ( /obj/structure/curtain/red, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/c_block/casino) "dAf" = ( /obj/structure/surface/table/almayer, @@ -7575,35 +6187,22 @@ /obj/structure/machinery/power/apc/weak{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/command_centre) "dAm" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/north, /area/lv522/atmos/north_command_centre) "dAG" = ( -/obj/structure/pipes/vents/pump, -/obj/structure/machinery/light{ - dir = 8 - }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, -/area/lv522/atmos/east_reactor) +/obj/item/stack/sheet/metal, +/turf/open/floor/corsat/browncorner, +/area/lv522/atmos/east_reactor/south) "dAQ" = ( /obj/structure/platform_decoration{ dir = 1 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/lv522/indoors/b_block/bridge) "dBa" = ( /obj/structure/prop/ice_colony/dense/planter_box{ @@ -7613,18 +6212,13 @@ icon_state = "fernybush_2"; pixel_y = 10 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "dBb" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/mucus, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/lv522/indoors/a_block/medical/glass) "dBc" = ( /obj/structure/prop/server_equipment/yutani_server{ @@ -7635,9 +6229,7 @@ pixel_y = 11 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/casino) "dBd" = ( /obj/item/clothing/mask/facehugger{ @@ -7654,25 +6246,18 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor) "dBi" = ( /obj/structure/pipes/vents/pump, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/garage) "dBo" = ( /obj/item/device/defibrillator, /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/lv522/indoors/a_block/medical/glass) "dBC" = ( /obj/structure/cargo_container/horizontal/blue/middle, @@ -7687,21 +6272,14 @@ /area/lv522/outdoors/colony_streets/south_east_street) "dCx" = ( /obj/structure/closet/crate/radiation, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/north_command_centre) "dCJ" = ( -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/lv522/outdoors/colony_streets/east_central_street) "dCT" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/lv522/indoors/a_block/fitness/glass) "dCY" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -7716,25 +6294,17 @@ pixel_y = 7 }, /obj/item/tool/pen/red/clicky, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/c_block/mining) "dDq" = ( /turf/closed/wall/shiva/prefabricated, /area/lv522/landing_zone_2/ceiling) "dDC" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/west, /area/lv522/atmos/east_reactor/west) "dDF" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/floor/corsat{ - icon_state = "brown" - }, +/turf/open/floor/corsat/brown, /area/lv522/atmos/filt) "dDS" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -7748,9 +6318,7 @@ /area/lv522/atmos/cargo_intake) "dEk" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/north_command_centre) "dEm" = ( /obj/structure/closet, @@ -7781,28 +6349,20 @@ pixel_y = 13 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/admin) "dEL" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/west) "dEM" = ( /obj/structure/barricade/deployable{ dir = 1 }, /obj/item/prop/colony/used_flare, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/atmos/cargo_intake) "dEP" = ( /obj/structure/closet/crate/trashcart, @@ -7816,9 +6376,7 @@ id = "Sec-Kitchen-Lockdown"; name = "\improper Storm Shutters" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/security) "dFd" = ( /obj/structure/bed/chair/comfy, @@ -7870,23 +6428,17 @@ dir = 1 }, /obj/structure/machinery/light, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/command_centre) "dGp" = ( /obj/structure/cargo_container/horizontal/blue/middle{ layer = 3.1 }, -/turf/open/floor/plating{ - icon_state = "platebot" - }, +/turf/open/floor/plating/platebot, /area/lv522/indoors/c_block/cargo) "dGB" = ( /obj/structure/window_frame/strata, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/b_block/bar) "dGD" = ( /obj/structure/machinery/colony_floodlight{ @@ -7896,28 +6448,17 @@ /area/lv522/outdoors/colony_streets/south_street) "dGK" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/east, /area/lv522/indoors/lone_buildings/storage_blocks) "dGV" = ( -/turf/open/floor/corsat{ - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner, /area/lv522/atmos/east_reactor/west) "dHc" = ( -/turf/open/floor/corsat{ - dir = 6; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/southeast, /area/lv522/atmos/east_reactor/west) "dHg" = ( /obj/item/prop/colony/used_flare, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/admin) "dHj" = ( /obj/item/device/flashlight, @@ -7927,9 +6468,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner, /area/lv522/atmos/east_reactor) "dHy" = ( /obj/structure/bed/chair/comfy{ @@ -7943,21 +6482,14 @@ /obj/structure/platform{ dir = 8 }, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/lv522/outdoors/colony_streets/north_east_street) "dHE" = ( /obj/structure/bed/chair/comfy, -/turf/open/floor/prison{ - dir = 6; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/southeast, /area/lv522/indoors/a_block/hallway) "dHF" = ( -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/lv522/outdoors/colony_streets/north_east_street) "dHR" = ( /obj/structure/cargo_container/horizontal/blue/top{ @@ -7987,9 +6519,7 @@ icon_state = "E"; pixel_x = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/colony_streets/south_west_street) "dIG" = ( /obj/structure/surface/table/reinforced/prison, @@ -8001,9 +6531,7 @@ network = null; pixel_y = 3 }, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/garage) "dIK" = ( /obj/structure/bed/chair, @@ -8014,26 +6542,20 @@ dir = 8 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/shiva{ - icon_state = "radiator_tile2" - }, +/turf/open/floor/shiva/radiator_tile2, /area/lv522/indoors/a_block/bridges/garden_bridge) "dIX" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /obj/structure/prop/ice_colony/ground_wire{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/east_reactor) "dJp" = ( /obj/structure/bed/chair/comfy{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "dJs" = ( /obj/item/tool/pen/red/clicky, @@ -8047,10 +6569,7 @@ /obj/effect/decal/cleanable/dirt, /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/computer/operating, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan2" - }, +/turf/open/floor/strata/cyan2/east, /area/lv522/indoors/a_block/medical) "dJJ" = ( /obj/structure/cargo_container/horizontal/blue/middle{ @@ -8059,10 +6578,7 @@ /turf/open/auto_turf/sand_white/layer0, /area/lv522/outdoors/nw_rockies) "dJN" = ( -/turf/open/floor/corsat{ - dir = 10; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/southwest, /area/lv522/atmos/east_reactor/east) "dKd" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -8073,21 +6589,13 @@ /area/lv522/indoors/c_block/garage) "dKC" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/lv522/indoors/a_block/fitness/glass) "dKF" = ( -/turf/open/floor/corsat{ - icon_state = "brown" - }, +/turf/open/floor/corsat/brown, /area/lv522/atmos/east_reactor/east) "dKM" = ( -/turf/open/floor/corsat{ - dir = 6; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/southeast, /area/lv522/atmos/east_reactor/east) "dKO" = ( /obj/structure/machinery/photocopier, @@ -8098,30 +6606,21 @@ /obj/structure/machinery/power/apc/weak{ dir = 1 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/corpo/glass) "dLq" = ( /obj/item/prop/colony/proptag{ desc = "A fallen marine's information dog tag. It reads, Staff Sergeant Thomas 'Dog' Smith" }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/oob) "dLs" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/north_command_centre) "dLz" = ( /obj/effect/decal/cleanable/blood/gibs, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/oob) "dLC" = ( /obj/structure/largecrate/random/barrel/white, @@ -8137,9 +6636,7 @@ pixel_y = 10 }, /obj/item/device/implanter/subdermal_armor, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/oob) "dMl" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -8157,23 +6654,15 @@ }, /obj/effect/decal/cleanable/dirt, /mob/living/simple_animal/mouse, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/lv522/indoors/a_block/executive) "dMu" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/east, /area/lv522/atmos/west_reactor) "dMy" = ( /obj/structure/cargo_container/kelland/left, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/colony_streets/north_west_street) "dMN" = ( /obj/effect/decal/hefa_cult_decals/d32{ @@ -8185,10 +6674,7 @@ layer = 3.1; pixel_y = 2 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/east, /area/lv522/oob) "dMY" = ( /obj/structure/machinery/landinglight/ds1/delaytwo{ @@ -8198,9 +6684,7 @@ /area/lv522/landing_zone_1) "dNd" = ( /obj/effect/landmark/monkey_spawn, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/north_command_centre) "dNe" = ( /obj/effect/decal/warning_stripes{ @@ -8209,9 +6693,7 @@ pixel_x = -1; pixel_y = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/way_in_command_centre) "dNm" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -8224,10 +6706,11 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/south) +"dNx" = ( +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_up_to_down, +/area/lv522/landing_zone_forecon/UD6_Tornado) "dNK" = ( /obj/structure/machinery/door/airlock/almayer/engineering{ name = "\improper Workshop Storage"; @@ -8237,17 +6720,13 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/corpo) "dNP" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/a_block/security/glass) "dOa" = ( /turf/closed/wall/strata_outpost, @@ -8257,23 +6736,16 @@ /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/sewer) "dOw" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/east, /area/lv522/atmos/north_command_centre) "dOz" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/b_block/hydro) "dOI" = ( /obj/structure/prop/invuln/remote_console_pod, @@ -8282,44 +6754,29 @@ layer = 3.5; pixel_y = -9 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/shuttle/drop2/lv522) "dOK" = ( /obj/structure/cargo_container/arious/leftmid, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/north_command_centre) "dOY" = ( /obj/structure/machinery/cm_vending/sorted/tech/electronics_storage{ req_access = null; req_one_access_txt = "7;23;27" }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/north) "dPl" = ( /obj/structure/largecrate/random, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/reactor_garage) "dPq" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner/north, /area/lv522/atmos/east_reactor/north) "dPv" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/lv522/indoors/b_block/bridge) "dPG" = ( /obj/item/trash/uscm_mre, @@ -8339,47 +6796,32 @@ pixel_x = 1; pixel_y = 2 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/lv522/indoors/lone_buildings/outdoor_bot) "dPP" = ( /obj/effect/decal/cleanable/blood/drip, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/lv522/outdoors/colony_streets/south_west_street) "dQa" = ( /obj/structure/curtain/medical, /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/lv522/indoors/a_block/medical/glass) "dQg" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/north) "dQh" = ( /obj/structure/machinery/light{ dir = 1 }, /obj/structure/machinery/disposal, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/medical) "dQm" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/east_reactor/west) "dQr" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -8401,20 +6843,16 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/b_block/bar) "dQQ" = ( -/obj/structure/platform{ - dir = 1 +/obj/structure/stairs/perspective{ + icon_state = "p_stair_full" }, /obj/structure/barricade/wooden{ dir = 8 }, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/lv522/outdoors/colony_streets/south_street) "dRn" = ( /obj/structure/machinery/door/airlock/almayer/secure/colony{ @@ -8423,25 +6861,18 @@ name = "Storage"; req_access_txt = "100" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/cargo_intake) "dRy" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_nest, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/north, /area/lv522/atmos/east_reactor/south) "dRK" = ( /obj/structure/stairs/perspective{ dir = 9; icon_state = "p_stair_full" }, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/lv522/outdoors/colony_streets/north_west_street) "dRL" = ( /turf/closed/wall/strata_outpost, @@ -8450,22 +6881,15 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/command_centre) "dSt" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/west, /area/lv522/atmos/east_reactor/east) "dSy" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/corsat{ - icon_state = "brown" - }, +/turf/open/floor/corsat/brown, /area/lv522/atmos/east_reactor/east) "dSW" = ( /obj/structure/prop/invuln/overhead/flammable_pipe/fly{ @@ -8475,10 +6899,7 @@ /obj/effect/decal/hefa_cult_decals/d96{ desc = "You think you can make out the iconography of a Xenomorph?" }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/southwest, /area/lv522/oob) "dTs" = ( /obj/effect/landmark/objective_landmark/close, @@ -8497,19 +6918,14 @@ /area/lv522/outdoors/colony_streets/north_west_street) "dTW" = ( /obj/item/reagent_container/food/snacks/meat/human, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner/west, /area/lv522/oob) "dUj" = ( /obj/effect/decal/hefa_cult_decals/d32{ desc = "You think you can make out the iconography of a Xenomorph."; icon_state = "bee" }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/oob) "dUq" = ( /obj/structure/surface/table/almayer, @@ -8517,26 +6933,19 @@ pixel_x = 5; pixel_y = 5 }, -/turf/open/floor/plating{ - icon_state = "platebot" - }, +/turf/open/floor/plating/platebot, /area/lv522/indoors/c_block/cargo) "dUD" = ( /obj/item/prop/colony/proptag{ desc = "A fallen marine's information dog tag. It reads, Ensign Robert 'Roach' Yangley" }, -/turf/open/floor/corsat{ - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner, /area/lv522/oob) "dUE" = ( /obj/structure/prop/invuln/overhead/flammable_pipe/fly{ pixel_y = 6 }, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/southeast, /area/lv522/oob) "dUS" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, @@ -8562,16 +6971,12 @@ welded = 1 }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/dorm_north) "dVD" = ( /obj/structure/surface/rack, /obj/item/tool/pickaxe, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/lv522/outdoors/colony_streets/south_east_street) "dVM" = ( /obj/structure/curtain/red, @@ -8581,10 +6986,7 @@ /obj/structure/machinery/power/apc/weak{ dir = 1 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/medical) "dWc" = ( /obj/structure/closet/crate/trashcart, @@ -8605,10 +7007,7 @@ /area/lv522/outdoors/colony_streets/south_east_street) "dWE" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/west, /area/lv522/atmos/west_reactor) "dWG" = ( /obj/structure/window/reinforced{ @@ -8616,15 +7015,11 @@ layer = 3 }, /obj/structure/machinery/computer3/server/rack, -/turf/open/floor{ - icon_state = "bcircuit" - }, +/turf/open/floor/bcircuit, /area/lv522/indoors/c_block/mining) "dWT" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/west_reactor) "dWY" = ( /turf/closed/shuttle/dropship2/tornado{ @@ -8639,9 +7034,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/east_reactor) "dXo" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_nest, @@ -8649,16 +7042,12 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/south) "dXq" = ( /obj/effect/landmark/monkey_spawn, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/north_command_centre) "dXt" = ( /obj/item/stack/folding_barricade, @@ -8669,9 +7058,7 @@ /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /obj/structure/surface/table/almayer, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/south) "dXI" = ( /obj/structure/surface/table/woodentable/fancy, @@ -8685,26 +7072,20 @@ /turf/open/floor/wood, /area/lv522/indoors/a_block/security) "dXN" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/east, /area/lv522/atmos/east_reactor/east) "dXX" = ( -/obj/structure/surface/table/almayer, -/obj/item/storage/belt/utility, -/turf/open/floor/prison{ - icon_state = "floor_plate" +/obj/structure/closet/fireaxecabinet{ + pixel_y = 29 }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/sewer) "dYb" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles, /area/lv522/indoors/c_block/mining) "dYA" = ( /obj/structure/cargo_container/kelland/right, @@ -8723,9 +7104,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "brown" - }, +/turf/open/floor/corsat/brown, /area/lv522/atmos/east_reactor) "dZd" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -8735,10 +7114,7 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner/west, /area/lv522/atmos/east_reactor) "dZr" = ( /obj/structure/ore_box, @@ -8746,9 +7122,7 @@ dir = 1 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/mining) "dZs" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, @@ -8760,9 +7134,7 @@ dir = 1; name = "\improper Mining Equipment" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/c_block/mining) "dZx" = ( /obj/structure/surface/table/almayer, @@ -8780,19 +7152,13 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/southeast, /area/lv522/atmos/east_reactor/south) "dZM" = ( /obj/item/ammo_magazine/rifle/heap{ current_rounds = 0 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/atmos/cargo_intake) "dZP" = ( /obj/structure/curtain/red, @@ -8808,9 +7174,7 @@ id = "LV_522_Hydro-Lockdown"; name = "\improper Storm Shutters" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/b_block/bridge) "eah" = ( /obj/structure/surface/table/almayer, @@ -8823,55 +7187,40 @@ }, /obj/item/prop/alien/hugger, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "eam" = ( /obj/structure/blocker/forcefield/vehicles, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/command_centre) "ear" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/east_reactor/west) "eaE" = ( /turf/open/floor/prison, /area/lv522/atmos/cargo_intake) "eaG" = ( /obj/structure/ore_box, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/lone_buildings/storage_blocks) "ebe" = ( /obj/item/storage/pouch/autoinjector/full, /turf/open/auto_turf/shale/layer2, /area/lv522/outdoors/w_rockies) "ebn" = ( -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/security/glass) "ebt" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/lv522/outdoors/colony_streets/south_east_street) "ebP" = ( /obj/effect/decal/hefa_cult_decals/d32{ icon_state = "2" }, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/southwest, /area/lv522/oob) "ebR" = ( /obj/structure/surface/table/almayer, @@ -8882,17 +7231,11 @@ phone_id = "Colony Engineering"; pixel_y = -6 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/lv522/indoors/lone_buildings/engineering) "ecm" = ( /obj/structure/machinery/iv_drip, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/hallway) "ecq" = ( /obj/structure/fence, @@ -8903,18 +7246,14 @@ /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/colony_streets/north_east_street) "ecK" = ( /obj/structure/stairs/perspective{ dir = 1; icon_state = "p_stair_full" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/way_in_command_centre) "ecP" = ( /turf/closed/shuttle/dropship2/tornado{ @@ -8923,10 +7262,7 @@ /area/lv522/landing_zone_forecon/UD6_Tornado) "ecU" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/northeast, /area/lv522/atmos/east_reactor/south) "edi" = ( /obj/structure/prop/invuln/overhead_pipe{ @@ -8937,16 +7273,10 @@ /obj/vehicle/train/cargo/trolley, /obj/effect/decal/cleanable/blood, /turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "edk" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner/west, /area/lv522/oob) -"eds" = ( -/turf/closed/wall/strata_outpost/reinforced/hull, -/area/lv522/indoors/c_block/casino) "edw" = ( /obj/structure/bed/roller, /obj/effect/decal/cleanable/dirt, @@ -8954,16 +7284,11 @@ /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/medical) "edP" = ( /obj/effect/decal/cleanable/blood/drip, -/turf/open/floor/corsat{ - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner, /area/lv522/oob) "edQ" = ( /obj/structure/prop/invuln/ice_prefab{ @@ -8987,7 +7312,7 @@ pixel_y = 6 }, /turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "eeG" = ( /obj/structure/prop/ice_colony/dense/planter_box{ dir = 9 @@ -8995,10 +7320,7 @@ /obj/structure/flora/bush/ausbushes/reedbush{ pixel_y = 10 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/b_block/bridge) "eeY" = ( /obj/structure/pipes/standard/manifold/hidden/green, @@ -9007,10 +7329,7 @@ "efk" = ( /obj/structure/machinery/light, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/hallway) "efy" = ( /obj/structure/machinery/door/poddoor/almayer{ @@ -9019,9 +7338,7 @@ unacidable = 1 }, /obj/structure/blocker/invisible_wall, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/east_reactor) "efK" = ( /obj/item/stack/tile/plasteel{ @@ -9038,35 +7355,19 @@ }, /turf/open/gm/river, /area/lv522/indoors/a_block/kitchen/damage) -"efM" = ( -/obj/structure/platform, -/obj/structure/platform{ - dir = 8 - }, -/obj/structure/platform_decoration{ - dir = 10; - layer = 3.51 - }, -/turf/open/gm/river, -/area/lv522/atmos/sewer) "efR" = ( /obj/effect/decal/hefa_cult_decals/d32{ desc = "You think you can make out the iconography of a Xenomorph." }, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/southeast, /area/lv522/oob) "efS" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/east_reactor) "efT" = ( /obj/structure/closet/coffin/woodencrate, @@ -9115,30 +7416,19 @@ }, /obj/item/clothing/suit/storage/bomber/alt, /obj/item/clothing/suit/storage/bomber/alt, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/kitchen) "egd" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/north, /area/lv522/atmos/east_reactor) "egj" = ( /obj/structure/machinery/floodlight, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/prison, /area/lv522/indoors/lone_buildings/storage_blocks) "egt" = ( /obj/structure/powerloader_wreckage, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/north, /area/lv522/atmos/east_reactor) "egv" = ( /obj/item/cell/crap{ @@ -9153,16 +7443,10 @@ pixel_y = -6 }, /obj/structure/surface/table/almayer, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/lv522/indoors/lone_buildings/outdoor_bot) "egD" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner/north, /area/lv522/atmos/east_reactor) "egE" = ( /obj/structure/machinery/washing_machine{ @@ -9174,16 +7458,11 @@ layer = 3.5; pixel_y = 29 }, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/mining) "egK" = ( /obj/structure/bed/chair/comfy, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/southwest, /area/lv522/atmos/east_reactor/south) "egP" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ @@ -9194,9 +7473,7 @@ id = "Sec-Kitchen-Lockdown"; name = "\improper Storm Shutters" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/kitchen) "egV" = ( /obj/structure/barricade/deployable{ @@ -9213,17 +7490,12 @@ /turf/open/floor/plating, /area/lv522/indoors/a_block/kitchen/damage) "egY" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner/east, /area/lv522/atmos/east_reactor) "ehr" = ( /obj/structure/reagent_dispensers/fueltank, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/lv522/indoors/b_block/bar) "ehy" = ( /obj/effect/acid_hole, @@ -9236,9 +7508,7 @@ pixel_y = 1 }, /obj/effect/alien/resin/sticky, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/south) "ehO" = ( /obj/effect/alien/resin/sticky, @@ -9246,10 +7516,7 @@ /area/lv522/atmos/east_reactor/south) "eil" = ( /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/southwest, /area/lv522/oob) "eiC" = ( /obj/effect/decal/warning_stripes{ @@ -9261,9 +7528,7 @@ pixel_x = -7; pixel_y = -5 }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/outdoors/colony_streets/north_street) "eiP" = ( /obj/structure/coatrack{ @@ -9279,27 +7544,18 @@ pixel_y = -6 }, /obj/effect/decal/cleanable/dirt, -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/landing_zone_1/ceiling) "eiY" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/lv522/outdoors/colony_streets/north_street) "eiZ" = ( /turf/open/floor/prison, /area/lv522/outdoors/colony_streets/north_west_street) "ejo" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/east, /area/lv522/atmos/north_command_centre) "eju" = ( /obj/item/storage/backpack/marine/satchel{ @@ -9324,39 +7580,26 @@ /obj/item/ammo_magazine/rifle/heap{ current_rounds = 0 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/north, /area/lv522/indoors/a_block/dorms) "ejN" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/east_reactor) "ekf" = ( /obj/structure/curtain/medical, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/medical) "ekt" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/north_command_centre) "ekK" = ( /obj/item/clothing/under/marine/reconnaissance, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/southeast, /area/lv522/oob) "ekO" = ( /obj/structure/bed/chair/wood/normal{ @@ -9374,9 +7617,7 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/garage) "elq" = ( /obj/structure/prop/ice_colony/ground_wire, @@ -9392,23 +7633,16 @@ /area/lv522/outdoors/colony_streets/south_east_street) "elx" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/east_reactor) "elS" = ( /obj/item/stack/rods, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/north, /area/lv522/indoors/a_block/hallway) "elX" = ( /obj/structure/surface/table/almayer, /obj/item/clothing/suit/storage/CMB, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/lv522/outdoors/colony_streets/windbreaker/observation) "emb" = ( /obj/item/ammo_magazine/smartgun{ @@ -9431,16 +7665,14 @@ dir = 4 }, /obj/structure/machinery/light, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor) "emt" = ( -/obj/structure/cargo_container/grant/rightmid, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" +/obj/structure/barricade/handrail{ + dir = 8 }, +/obj/structure/largecrate/random/barrel/white, +/turf/open/floor/prison/cell_stripe/west, /area/lv522/indoors/lone_buildings/storage_blocks) "emz" = ( /obj/structure/pipes/standard/manifold/hidden/green{ @@ -9455,20 +7687,13 @@ network = list("interrogation") }, /obj/structure/machinery/light/small, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/b_block/hydro) "emH" = ( -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/lv522/outdoors/colony_streets/north_street) "ene" = ( -/turf/open/floor/shiva{ - icon_state = "radiator_tile2" - }, +/turf/open/floor/shiva/radiator_tile2, /area/lv522/indoors/a_block/hallway) "eng" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -9482,28 +7707,24 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/south) "enr" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/east_reactor) +"enB" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/lv522/landing_zone_1/tunnel/far) "enD" = ( /obj/structure/curtain/red, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "enG" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/corsat{ - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner, /area/lv522/atmos/north_command_centre) "enP" = ( /obj/structure/pipes/standard/manifold/hidden/green{ @@ -9514,10 +7735,7 @@ "enR" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/closet/bodybag, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/hallway) "enS" = ( /obj/effect/spawner/gibspawner/xeno, @@ -9530,9 +7748,7 @@ /obj/vehicle/powerloader/ft{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/east_reactor/north) "eof" = ( /obj/structure/sign/safety/restrictedarea{ @@ -9548,9 +7764,7 @@ /obj/structure/barricade/metal{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/outdoors/colony_streets/north_street) "eov" = ( /obj/structure/machinery/door/poddoor/almayer{ @@ -9581,18 +7795,14 @@ name = "\improper Secure Blast Door"; unacidable = 1 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/oob) "eow" = ( /obj/structure/tunnel{ pixel_x = 2; pixel_y = -6 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/west_reactor) "eoA" = ( /obj/item/prop/colony/used_flare, @@ -9611,29 +7821,21 @@ dir = 1 }, /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/south) "eoH" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner, /area/lv522/atmos/north_command_centre) "eoZ" = ( /obj/effect/landmark/xeno_spawn, /obj/effect/landmark/queen_spawn, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/west_reactor) "epb" = ( /obj/effect/landmark/xeno_hive_spawn, /obj/effect/landmark/ert_spawns/groundside_xeno, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/west_reactor) "epe" = ( /obj/effect/decal/cleanable/dirt, @@ -9644,46 +7846,31 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/b_block/bridge) "ept" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/northwest, /area/lv522/atmos/east_reactor) "epI" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner/west, /area/lv522/atmos/north_command_centre) "epN" = ( /obj/structure/closet/emcloset, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/plating, /area/lv522/landing_zone_1/tunnel) "epS" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/east) "epX" = ( /obj/item/storage/firstaid/toxin/empty, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/lv522/indoors/a_block/medical/glass) "eqe" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -9695,47 +7882,33 @@ pixel_x = -5; pixel_y = 3 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/a_block/hallway/damage) "equ" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/east_reactor) "eqD" = ( /obj/effect/decal/cleanable/blood/drip, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/filt) "eqE" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/outdoors/nw_rockies) "eqM" = ( -/turf/open/floor/plating{ - icon_state = "platingdmg1" - }, +/turf/open/floor/plating/platingdmg1, /area/lv522/indoors/a_block/security) "eqU" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/southeast, /area/lv522/atmos/north_command_centre) "eqV" = ( /obj/structure/largecrate/random/barrel, /turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "erw" = ( /obj/vehicle/train/cargo/trolley, /obj/effect/landmark/objective_landmark/close, @@ -9749,17 +7922,11 @@ /area/lv522/outdoors/colony_streets/south_west_street) "erS" = ( /obj/structure/cargo_container/watatsumi/rightmid, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/indoors/lone_buildings/storage_blocks) "erZ" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/east, /area/lv522/atmos/east_reactor/west) "esa" = ( /obj/structure/pipes/standard/manifold/fourway/hidden/green, @@ -9767,9 +7934,7 @@ /area/lv522/indoors/a_block/dorms) "esj" = ( /obj/structure/cargo_container/kelland/left, -/turf/open/asphalt/cement{ - icon_state = "cement9" - }, +/turf/open/asphalt/cement/cement9, /area/lv522/outdoors/colony_streets/east_central_street) "eso" = ( /turf/open/floor/prison, @@ -9782,24 +7947,20 @@ /turf/open/auto_turf/shale/layer1, /area/lv522/outdoors/colony_streets/north_west_street) "esB" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 6 +/obj/structure/stairs/perspective{ + icon_state = "p_stair_full" }, -/turf/closed/wall/mineral/bone_resin, -/area/lv522/oob) +/turf/open/asphalt/cement, +/area/lv522/outdoors/colony_streets/north_east_street) "esF" = ( /obj/structure/surface/rack, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/mining) "etn" = ( /obj/structure/prop/invuln/minecart_tracks{ dir = 10 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/indoors/c_block/mining) "etq" = ( /obj/item/device/flashlight/lamp/green{ @@ -9812,27 +7973,20 @@ id = "Secure_Master_Armoury_2"; name = "remote door-control" }, -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles, /area/lv522/indoors/c_block/mining) "etx" = ( /turf/open/gm/river, /area/lv522/indoors/a_block/kitchen/damage) "etN" = ( /obj/structure/machinery/photocopier, -/turf/open/floor/plating{ - icon_state = "platebot" - }, +/turf/open/floor/plating/platebot, /area/lv522/indoors/c_block/cargo) "euj" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/lv522/indoors/a_block/medical) "eum" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ @@ -9844,9 +7998,7 @@ id = "Sec-Kitchen-Lockdown"; name = "\improper Storm Shutters" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/kitchen/glass) "eur" = ( /obj/structure/stairs/perspective{ @@ -9862,24 +8014,29 @@ /obj/effect/decal/cleanable/blood, /obj/item/prop/alien/hugger, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan2" - }, +/turf/open/floor/strata/cyan2/east, /area/lv522/indoors/a_block/medical) "euN" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 9 +/obj/structure/stairs/perspective{ + dir = 6; + icon_state = "p_stair_full" }, -/turf/closed/wall/mineral/bone_resin, -/area/lv522/oob) +/turf/open/asphalt/cement, +/area/lv522/outdoors/colony_streets/north_east_street) "euT" = ( /obj/structure/stairs/perspective{ icon_state = "p_stair_full" }, /obj/vehicle/train/cargo/engine, /turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) +"evg" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/machinery/power/apc/weak{ + dir = 8 + }, +/turf/open/floor/prison/greenfull/east, +/area/lv522/landing_zone_1/ceiling) "evu" = ( /obj/structure/tunnel/maint_tunnel{ pixel_y = 6 @@ -9888,7 +8045,7 @@ dir = 1 }, /turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "evv" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/surface/table/reinforced/prison, @@ -9900,27 +8057,20 @@ pixel_x = 3; pixel_y = 6 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/lv522/indoors/c_block/t_comm) "evx" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor) "evN" = ( /obj/structure/window/framed/strata/reinforced, /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/corpo/glass) "evS" = ( /obj/structure/platform, @@ -9939,48 +8089,33 @@ dir = 8 }, /obj/structure/prop/almayer/computers/sensor_computer1, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/northwest, /area/lv522/oob) "ewf" = ( /obj/structure/platform, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/lv522/outdoors/colony_streets/south_east_street) "ewm" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/west, /area/lv522/atmos/east_reactor) "ewn" = ( /obj/structure/platform, -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/lv522/outdoors/colony_streets/south_west_street) "ewp" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor) "ewt" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor) "ewE" = ( /obj/structure/platform{ @@ -10016,16 +8151,13 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor) "exQ" = ( /obj/structure/machinery/light/small{ dir = 1 }, /obj/structure/largecrate, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/plating, /area/lv522/landing_zone_1/tunnel) "exZ" = ( @@ -10033,9 +8165,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/east_reactor) "eyc" = ( /obj/structure/platform{ @@ -10044,13 +8174,11 @@ /turf/open/asphalt/cement, /area/lv522/outdoors/colony_streets/central_streets) "eyh" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 6 - }, -/turf/open/floor/corsat{ - icon_state = "marked" +/obj/structure/platform{ + dir = 4 }, -/area/lv522/atmos/north_command_centre) +/turf/open/asphalt/cement, +/area/lv522/outdoors/colony_streets/north_east_street) "eym" = ( /obj/structure/surface/rack, /obj/item/storage/toolbox/mechanical/green{ @@ -10059,18 +8187,13 @@ /obj/item/storage/toolbox/mechanical/green{ pixel_y = -3 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/reactor_garage) "eyn" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/lv522/outdoors/colony_streets/central_streets) "eyy" = ( -/obj/effect/landmark/lv624/fog_blocker/short, /obj/structure/machinery/landinglight/ds1, /turf/open/floor/plating, /area/lv522/landing_zone_1) @@ -10086,19 +8209,11 @@ icon_state = "p_stair_full" }, /obj/item/trash/uscm_mre, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/admin) "ezj" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 10 - }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, -/area/lv522/atmos/east_reactor/west) +/turf/open/asphalt/cement/cement12, +/area/lv522/outdoors/colony_streets/north_east_street) "ezo" = ( /obj/structure/surface/table/almayer, /obj/item/prop/helmetgarb/spacejam_tickets{ @@ -10125,23 +8240,16 @@ /area/lv522/atmos/east_reactor/east) "ezB" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/south) "ezC" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "ezH" = ( /obj/structure/cargo_container/watatsumi/rightmid, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/outdoors/colony_streets/north_west_street) "ezU" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, @@ -10153,17 +8261,13 @@ }, /obj/effect/landmark/xeno_hive_spawn, /obj/effect/landmark/ert_spawns/groundside_xeno, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/east_reactor) "eAg" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/west_reactor) "eAm" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -10174,9 +8278,7 @@ /area/lv522/indoors/a_block/dorms) "eAz" = ( /obj/effect/landmark/monkey_spawn, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/east_reactor) "eAC" = ( /obj/structure/surface/table/almayer, @@ -10192,16 +8294,11 @@ density = 0; pixel_y = 16 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/a_block/fitness/glass) "eAF" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "brown" - }, +/turf/open/floor/corsat/brown, /area/lv522/atmos/east_reactor/east) "eAX" = ( /obj/structure/surface/table/almayer, @@ -10210,9 +8307,7 @@ /area/lv522/indoors/b_block/hydro) "eAY" = ( /obj/structure/cargo_container/kelland/left, -/turf/open/floor/plating{ - icon_state = "platebot" - }, +/turf/open/floor/plating/platebot, /area/lv522/indoors/c_block/cargo) "eBi" = ( /obj/item/stack/cable_coil/cut, @@ -10221,9 +8316,7 @@ /area/lv522/atmos/east_reactor) "eBm" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/floor/corsat{ - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner, /area/lv522/atmos/east_reactor/south) "eBu" = ( /obj/structure/surface/table/almayer, @@ -10231,27 +8324,20 @@ dir = 1 }, /obj/structure/machinery/light, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/c_block/mining) "eBA" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/dorms) "eBH" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /obj/structure/prop/ice_colony/ground_wire{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/east_reactor) "eCe" = ( /obj/effect/alien/resin/sticky, @@ -10280,9 +8366,7 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/kitchen/glass) "eDq" = ( /obj/structure/platform{ @@ -10313,16 +8397,11 @@ dir = 8 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/reactor_garage) "eDI" = ( /obj/structure/machinery/light, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/lv522/indoors/lone_buildings/outdoor_bot) "eDL" = ( /obj/structure/machinery/washing_machine, @@ -10330,9 +8409,7 @@ pixel_y = 15 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/garage) "eDS" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -10341,17 +8418,13 @@ /turf/open/auto_turf/shale/layer2, /area/lv522/outdoors/n_rockies) "eEv" = ( -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/lv522/indoors/b_block/bar) "eEx" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/north_command_centre) "eEH" = ( /obj/structure/barricade/wooden{ @@ -10361,9 +8434,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/asphalt/cement{ - icon_state = "cement9" - }, +/turf/open/asphalt/cement/cement9, /area/lv522/outdoors/colony_streets/central_streets) "eFb" = ( /obj/structure/machinery/light{ @@ -10380,10 +8451,7 @@ /obj/structure/bed/roller, /obj/item/prop/alien/hugger, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/medical/glass) "eFP" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -10399,15 +8467,11 @@ /area/lv522/outdoors/n_rockies) "eGs" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/north_command_centre) "eGL" = ( /obj/effect/landmark/monkey_spawn, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/east_reactor/east) "eGQ" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -10415,22 +8479,16 @@ /area/lv522/atmos/east_reactor/east) "eHn" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv522/indoors/a_block/corpo/glass) "eHp" = ( -/obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/floor/corsat{ - icon_state = "squares" - }, -/area/lv522/atmos/east_reactor) +/obj/item/stack/sheet/metal, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/corsat/plate, +/area/lv522/atmos/east_reactor/south) "eHu" = ( /obj/structure/closet/secure_closet/miner, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/mining) "eHy" = ( /obj/structure/surface/table/woodentable/fancy, @@ -10445,14 +8503,10 @@ dir = 1 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/garage) "eHE" = ( -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/n_rockies) "eHF" = ( /obj/structure/cargo_container/kelland/right, @@ -10460,67 +8514,48 @@ /area/lv522/indoors/c_block/cargo) "eHI" = ( /obj/structure/machinery/light, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/bridge) "eHR" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/east_reactor/west) "eHS" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/east_reactor/west) "eHX" = ( /obj/structure/surface/table/reinforced/prison, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/atmos/cargo_intake) "eIk" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/a_block/dorms/glass) "eIn" = ( /obj/structure/surface/rack, /obj/item/stack/sheet/mineral/silver{ amount = 20 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/atmos/cargo_intake) "eIF" = ( /obj/structure/bed/alien, /obj/item/pipe{ pixel_x = -6 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/a_block/fitness) "eIT" = ( /obj/structure/bed/chair/comfy, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/corsat{ - icon_state = "brown" - }, +/turf/open/floor/corsat/brown, /area/lv522/atmos/east_reactor/south) "eJc" = ( /obj/structure/surface/table/almayer, @@ -10544,9 +8579,7 @@ pixel_y = 21 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles, /area/lv522/indoors/c_block/mining) "eJm" = ( /obj/effect/decal/cleanable/dirt, @@ -10562,9 +8595,7 @@ dir = 8; pixel_y = 4 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/south) "eJw" = ( /obj/item/clothing/mask/rebreather{ @@ -10580,10 +8611,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/north, /area/lv522/atmos/east_reactor) "eKc" = ( /obj/structure/closet/secure_closet/miner, @@ -10591,20 +8619,14 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/mining) "eKe" = ( -/turf/open/asphalt/cement{ - icon_state = "cement9" - }, +/turf/open/asphalt/cement/cement9, /area/lv522/outdoors/colony_streets/north_east_street) "eKj" = ( /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/east_reactor) "eKm" = ( /obj/structure/flora/bush/ausbushes/grassybush, @@ -10619,9 +8641,7 @@ "eKK" = ( /obj/structure/blocker/forcefield/vehicles, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/east_reactor/south) "eKL" = ( /obj/structure/bed/chair{ @@ -10630,9 +8650,7 @@ /turf/open/floor/prison, /area/lv522/indoors/b_block/hydro) "eLf" = ( -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/lv522/landing_zone_2) "eLl" = ( /obj/structure/machinery/door/airlock/almayer/medical{ @@ -10640,16 +8658,16 @@ name = "\improper A-Block - Colony Medical Centre Airlock" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/medical) "eLx" = ( -/obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/floor/corsat{ - icon_state = "marked" +/obj/structure/machinery/prop/almayer/computer/PC{ + dir = 1; + pixel_y = 3 }, -/area/lv522/atmos/east_reactor) +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/corsat/plate, +/area/lv522/atmos/east_reactor/south) "eLG" = ( /obj/item/lightstick/red/spoke/planted{ pixel_x = -19; @@ -10673,10 +8691,7 @@ /area/lv522/indoors/a_block/corpo/glass) "eLN" = ( /obj/structure/machinery/light, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv522/indoors/a_block/corpo/glass) "eLU" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -10694,9 +8709,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/c_block/cargo) "eMj" = ( /obj/structure/stairs/perspective{ @@ -10706,36 +8719,32 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/lv522/indoors/b_block/bridge) "eMl" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner/north, /area/lv522/atmos/east_reactor) "eMm" = ( -/obj/structure/prop/invuln/fusion_reactor, -/obj/structure/prop/turbine_extras, -/obj/structure/prop/turbine_extras, -/turf/open/floor/corsat{ - icon_state = "plate" +/obj/structure/platform{ + dir = 1 }, -/area/lv522/atmos/east_reactor) +/obj/structure/platform{ + dir = 4 + }, +/obj/structure/platform_decoration{ + dir = 9 + }, +/turf/open/gm/river, +/area/lv522/atmos/sewer) "eMz" = ( /obj/item/stack/rods/plasteel, /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/east_reactor) "eMD" = ( /obj/structure/machinery/light{ @@ -10746,15 +8755,11 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/bridge) "eMY" = ( /obj/item/reagent_container/glass/bucket/janibucket, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/lv522/outdoors/colony_streets/south_street) "eNc" = ( /obj/structure/machinery/door/airlock/almayer/generic{ @@ -10764,9 +8769,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/c_block/cargo) "eNf" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -10777,10 +8780,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/east, /area/lv522/atmos/east_reactor) "eNW" = ( /obj/structure/barricade/deployable{ @@ -10793,9 +8793,7 @@ name = "????"; stat = 2 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/colony_streets/north_east_street) "eOe" = ( /obj/structure/bed/chair{ @@ -10811,32 +8809,24 @@ dir = 8 }, /obj/structure/machinery/vending/coffee, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms/glass) "eOl" = ( /obj/item/shard{ icon_state = "medium" }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/a_block/admin) "eOn" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/west_reactor) "eOA" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor/corsat{ - icon_state = "brown" - }, +/turf/open/floor/corsat/brown, /area/lv522/atmos/north_command_centre) "eOE" = ( /obj/effect/decal/warning_stripes{ @@ -10851,18 +8841,14 @@ /obj/structure/machinery/power/apc/weak{ dir = 1 }, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/lv522/outdoors/colony_streets/windbreaker/observation) "eOU" = ( /obj/structure/machinery/light{ dir = 4 }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "ePc" = ( /obj/structure/surface/table/almayer{ @@ -10873,9 +8859,7 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/a_block/admin) "ePl" = ( /obj/structure/prop/invuln/fire{ @@ -10894,31 +8878,23 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor/corsat{ - icon_state = "brown" - }, +/turf/open/floor/corsat/brown, /area/lv522/atmos/north_command_centre) "eQf" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner, /area/lv522/atmos/west_reactor) "eQu" = ( /obj/structure/pipes/standard/simple/hidden/green{ - dir = 9 - }, -/turf/open/floor/corsat{ - icon_state = "marked" + dir = 4 }, -/area/lv522/atmos/north_command_centre) +/turf/open/asphalt/cement/cement14, +/area/lv522/outdoors/colony_streets/north_east_street) "eQB" = ( /obj/structure/machinery/portable_atmospherics/canister/phoron, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/indoors/c_block/mining) "eQV" = ( /obj/structure/surface/rack, @@ -10932,9 +8908,7 @@ /obj/item/frame/table/almayer{ pixel_y = 4 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "eQY" = ( /obj/structure/surface/table/almayer, @@ -10942,17 +8916,12 @@ pixel_y = 3 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/a_block/hallway) "eRg" = ( -/obj/structure/prop/turbine, -/obj/structure/prop/turbine_extras/border, -/turf/open/floor/corsat{ - icon_state = "plate" - }, -/area/lv522/oob) +/obj/structure/machinery/door/airlock/almayer/maint, +/turf/open/floor/corsat/marked, +/area/lv522/atmos/sewer) "eRI" = ( /obj/structure/barricade/deployable{ dir = 8 @@ -10963,50 +8932,42 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/east_reactor) "eSf" = ( /obj/structure/barricade/wooden{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/kitchen) "eSx" = ( /obj/effect/spider/spiderling/nogrow, /turf/open/floor/prison, /area/lv522/indoors/a_block/security/glass) "eSy" = ( -/obj/structure/platform{ - dir = 1 - }, -/obj/structure/largecrate/random, -/turf/open/floor/plating{ - icon_state = "platebot" +/obj/structure/stairs/perspective{ + icon_state = "p_stair_full" }, +/turf/open/floor/plating/platebot, /area/lv522/indoors/c_block/cargo) "eSO" = ( /obj/structure/largecrate/random, /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/mining) "eSQ" = ( /obj/structure/bed/chair{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/landing_zone_2/ceiling) +"eSW" = ( +/turf/open/gm/river, +/area/lv522/landing_zone_1/tunnel/far) "eSY" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, @@ -11014,20 +8975,8 @@ /area/lv522/indoors/c_block/cargo) "eTn" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/reactor_garage) -"eTu" = ( -/obj/structure/stairs/perspective{ - icon_state = "p_stair_full" - }, -/obj/structure/platform{ - dir = 4 - }, -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) "eTQ" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 @@ -11038,10 +8987,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/southeast, /area/lv522/atmos/west_reactor) "eUf" = ( /obj/item/ammo_magazine/m2c{ @@ -11067,9 +9013,7 @@ dir = 4 }, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/west_reactor) "eUt" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -11087,14 +9031,10 @@ id = "LV_522_Hydro-Lockdown"; name = "\improper Storm Shutters" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/b_block/bridge) "eUO" = ( -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/lone_buildings/outdoor_bot) "eUS" = ( /turf/closed/shuttle/dropship2/tornado{ @@ -11114,29 +9054,21 @@ name = "synthethic potted plant"; pixel_y = 28 }, -/turf/open/floor/plating{ - icon_state = "platebot" - }, +/turf/open/floor/plating/platebot, /area/lv522/indoors/c_block/cargo) "eVg" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/north_command_centre) "eVi" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/floor/corsat{ - icon_state = "brown" - }, +/turf/open/floor/corsat/brown, /area/lv522/atmos/east_reactor/north) "eVW" = ( /obj/effect/landmark/monkey_spawn, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/east_reactor) "eWn" = ( /obj/structure/blocker/forcefield/vehicles, @@ -11144,17 +9076,13 @@ dir = 4 }, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/east_reactor) "eWy" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/east) "eWF" = ( /obj/effect/decal/cleanable/dirt, @@ -11167,24 +9095,17 @@ /obj/item/storage/firstaid/adv{ pixel_y = 14 }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/security) "eWK" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/southwest, /area/lv522/atmos/east_reactor/east) "eWR" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/landing_zone_2) "eWW" = ( /obj/structure/window_frame/strata, @@ -11199,16 +9120,12 @@ id = "LV522CIC_1"; name = "\improper Storm Shutters" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/admin) "eXd" = ( /obj/effect/spawner/gibspawner/xeno, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/lv522/indoors/a_block/kitchen) "eXe" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, @@ -11252,10 +9169,7 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan3" - }, +/turf/open/floor/strata/white_cyan3/west, /area/lv522/indoors/a_block/medical/glass) "eYA" = ( /obj/item/clothing/head/headband/tan{ @@ -11268,50 +9182,43 @@ /turf/closed/wall/strata_outpost/reinforced, /area/lv522/landing_zone_1/tunnel) "eYT" = ( -/obj/structure/prop/ice_colony/ground_wire{ - dir = 8 - }, -/turf/open/auto_turf/sand_white/layer0, -/area/lv522/outdoors/colony_streets/central_streets) +/obj/effect/decal/cleanable/dirt, +/obj/effect/spider/spiderling/nogrow, +/turf/open/floor/prison, +/area/lv522/indoors/lone_buildings/storage_blocks) "eZb" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/reactor_garage) "eZe" = ( -/turf/open/asphalt/cement{ - icon_state = "cement14" - }, +/turf/open/asphalt/cement/cement14, /area/lv522/outdoors/colony_streets/south_east_street) "eZq" = ( -/obj/structure/prop/turbine_extras/left, -/obj/structure/prop/invuln/fusion_reactor, -/turf/open/floor/corsat{ - icon_state = "plate" +/obj/structure/transmitter/colony_net{ + phone_category = "LV522 Chances Claim"; + phone_color = "red"; + phone_id = "Reactor Sewer"; + pixel_y = 26 }, -/area/lv522/oob) +/obj/effect/decal/cleanable/dirt, +/obj/structure/prop/static_tank/water, +/turf/open/floor/prison/floor_plate, +/area/lv522/atmos/sewer) "eZv" = ( /obj/structure/fence, /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/n_rockies) "eZF" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/sewer) "eZK" = ( -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/a_block/admin) "eZM" = ( /obj/structure/bed/chair/wood/normal{ @@ -11334,7 +9241,6 @@ phone_id = "LZ1 Service Tunnel"; pixel_y = 24 }, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/plating, /area/lv522/landing_zone_1/tunnel) "eZY" = ( @@ -11342,9 +9248,7 @@ dir = 4 }, /obj/structure/prop/almayer/computers/sensor_computer2, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/north_command_centre) "fac" = ( /obj/structure/platform, @@ -11352,9 +9256,7 @@ icon_state = "N"; pixel_y = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/colony_streets/south_east_street) "faJ" = ( /obj/item/trash/uscm_mre{ @@ -11365,9 +9267,7 @@ /area/lv522/outdoors/colony_streets/north_street) "faK" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/east) "faQ" = ( /obj/structure/bed/chair/comfy{ @@ -11378,9 +9278,7 @@ /area/lv522/outdoors/colony_streets/central_streets) "faZ" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/north_command_centre) "fba" = ( /obj/structure/flora/bush/ausbushes/grassybush{ @@ -11388,12 +9286,6 @@ }, /turf/open/floor/grass, /area/lv522/indoors/a_block/garden) -"fbh" = ( -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, -/area/lv522/outdoors/colony_streets/south_west_street) "fbA" = ( /obj/structure/prop/invuln/ice_prefab/standalone{ icon_state = "white" @@ -11402,9 +9294,7 @@ /area/lv522/outdoors/colony_streets/north_east_street) "fbC" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "brown" - }, +/turf/open/floor/corsat/brown, /area/lv522/atmos/east_reactor) "fbE" = ( /obj/effect/decal/cleanable/dirt, @@ -11413,68 +9303,51 @@ pixel_x = 9; pixel_y = 3 }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/kitchen/damage) "fbS" = ( /obj/structure/platform{ dir = 4 }, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/lv522/outdoors/colony_streets/south_east_street) "fcd" = ( /obj/vehicle/train/cargo/trolley, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/lone_buildings/storage_blocks) "fcv" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/prop/almayer/computer/PC{ pixel_y = 7 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "fcV" = ( /obj/structure/cargo_container/kelland/right, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/north_command_centre) "fcW" = ( -/obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor/corsat{ - icon_state = "brown" - }, -/area/lv522/atmos/north_command_centre) -"fda" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "brown" +/turf/open/asphalt/cement/cement12, +/area/lv522/outdoors/colony_streets/north_east_street) +"fda" = ( +/obj/structure/pipes/standard/manifold/hidden/green{ + dir = 1 }, -/area/lv522/atmos/north_command_centre) +/turf/open/asphalt/cement/cement12, +/area/lv522/outdoors/colony_streets/north_east_street) "fdb" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ dir = 1; name = "\improper C-Block - Casino Airlock"; welded = 1 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/c_block/casino) "fdf" = ( -/turf/open/asphalt/cement{ - icon_state = "cement15" - }, +/turf/open/asphalt/cement/cement15, /area/lv522/landing_zone_2) "fdh" = ( /obj/item/lightstick/red/spoke/planted{ @@ -11492,25 +9365,19 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/filt) "fdE" = ( /obj/item/ammo_magazine/rifle/heap{ current_rounds = 0 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/south) "fdR" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/north_command_centre) "fdS" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, @@ -11519,9 +9386,7 @@ /area/lv522/outdoors/colony_streets/north_east_street) "fdT" = ( /obj/structure/closet/crate, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/landing_zone_2) "fdZ" = ( /obj/structure/window_frame/strata, @@ -11529,44 +9394,31 @@ dir = 4; id = "Sec-Kitchen-Lockdown" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/kitchen/glass) "feu" = ( /obj/item/prop/alien/hugger, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/landing_zone_2/ceiling) "feF" = ( /obj/structure/pipes/standard/simple/hidden/green{ - dir = 5 - }, -/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/corsat{ - icon_state = "plate" + dir = 4 }, -/area/lv522/atmos/east_reactor/west) +/turf/open/asphalt/cement/cement15, +/area/lv522/outdoors/colony_streets/north_east_street) "feS" = ( /obj/item/prop/colony/used_flare, -/turf/open/floor/corsat{ - icon_state = "brown" - }, +/turf/open/floor/corsat/brown, /area/lv522/atmos/east_reactor/south) "feZ" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/east) "ffb" = ( -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/bridge) "ffj" = ( /obj/item/prop/alien/hugger, @@ -11583,17 +9435,12 @@ /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/lv522/outdoors/colony_streets/south_street) "ffr" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/east_reactor/west) "ffG" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, @@ -11619,10 +9466,7 @@ phone_id = "Colony Medical"; pixel_x = 16 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/medical/glass) "fgf" = ( /obj/item/ammo_magazine/m2c{ @@ -11674,26 +9518,18 @@ dir = 1 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/mining) "fhQ" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 10 - }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "brown" +/obj/structure/machinery/colony_floodlight{ + layer = 4.3 }, -/area/lv522/atmos/east_reactor/west) +/turf/open/asphalt/cement/cement4, +/area/lv522/outdoors/colony_streets/north_east_street) "fhY" = ( /obj/structure/surface/rack, /obj/item/tool/pickaxe, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/atmos/cargo_intake) "fib" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, @@ -11708,9 +9544,7 @@ /area/lv522/indoors/c_block/cargo) "fiA" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/east) "fiB" = ( /obj/structure/prop/invuln/ice_prefab{ @@ -11727,9 +9561,7 @@ /obj/structure/machinery/power/apc/weak{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/kitchen/glass) "fiS" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -11756,16 +9588,11 @@ "fjt" = ( /obj/structure/machinery/light, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "blue" - }, +/turf/open/floor/prison/blue, /area/lv522/indoors/a_block/hallway) "fjF" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/lv522/indoors/a_block/medical/glass) "fjP" = ( /obj/effect/decal/cleanable/dirt, @@ -11775,17 +9602,13 @@ /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/north_command_centre) "fki" = ( /obj/structure/bed/chair{ dir = 1 }, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/lv522/outdoors/colony_streets/south_street) "fkj" = ( /turf/open/floor/grass, @@ -11812,17 +9635,11 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/b_block/bridge) "fkW" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/north, /area/lv522/atmos/east_reactor) "fld" = ( /mob/living/simple_animal/mouse, @@ -11835,10 +9652,7 @@ layer = 3.1; pixel_y = 6 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/admin) "flC" = ( /obj/structure/machinery/light/small, @@ -11846,10 +9660,7 @@ dir = 1; network = list("interrogation") }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/lv522/indoors/lone_buildings/engineering) "flI" = ( /obj/structure/surface/table/woodentable/fancy, @@ -11871,25 +9682,19 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/east) "fmB" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "brown" - }, -/area/lv522/oob) +/obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, +/turf/open/floor/corsat/brown/north, +/area/lv522/atmos/east_reactor) "fmH" = ( /obj/structure/pipes/vents/pump, /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/space_heater/radiator/red{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "fmL" = ( /obj/structure/surface/rack{ @@ -11903,10 +9708,7 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/lv522/indoors/a_block/dorms) "fni" = ( /obj/effect/decal/warning_stripes{ @@ -11934,19 +9736,13 @@ pixel_x = 9; pixel_y = 17 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/a_block/fitness) "fol" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/northwest, /area/lv522/atmos/filt) "fop" = ( /turf/open/floor/corsat, @@ -11960,10 +9756,7 @@ dir = 8 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/lv522/indoors/b_block/bridge) "foT" = ( /obj/effect/decal/warning_stripes{ @@ -11972,9 +9765,7 @@ /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/colony_streets/north_west_street) "foX" = ( /obj/effect/decal/cleanable/dirt, @@ -11984,22 +9775,15 @@ /obj/structure/bed/chair/comfy{ dir = 1 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/lv522/indoors/c_block/t_comm) "fpl" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/lv522/indoors/a_block/kitchen) "fpm" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/east_reactor/south) "fpn" = ( /obj/item/device/analyzer, @@ -12007,53 +9791,39 @@ /area/lv522/atmos/east_reactor) "fpr" = ( /obj/structure/largecrate/random, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/c_block/mining) "fps" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/a_block/dorms) "fpB" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 5 - }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "brown" +/obj/structure/stairs/perspective{ + dir = 1; + icon_state = "p_stair_full" }, -/area/lv522/atmos/east_reactor/west) +/turf/open/asphalt/cement, +/area/lv522/outdoors/colony_streets/north_street) "fpH" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/east, /area/lv522/atmos/north_command_centre) "fpW" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/wood{ - icon_state = "wood-broken4" - }, +/turf/open/floor/wood/wood_broken4, /area/lv522/indoors/b_block/bar) "fqD" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/a_block/dorms/glass) "fqU" = ( /obj/item/ammo_magazine/rifle/heap{ @@ -12061,9 +9831,7 @@ }, /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/south) "frH" = ( /obj/item/clothing/head/hardhat/dblue{ @@ -12078,34 +9846,26 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/east_reactor/west) "frZ" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/east_reactor/west) "fsf" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/west_reactor) "fsj" = ( /obj/structure/machinery/power/apc/weak{ dir = 1 }, /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/north_command_centre) "fss" = ( /obj/structure/prop/ice_colony/ground_wire{ @@ -12128,9 +9888,7 @@ /area/lv522/indoors/c_block/garage) "fsC" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/east_reactor/west) "fsQ" = ( /obj/structure/machinery/iv_drip, @@ -12139,9 +9897,7 @@ "fsV" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/north_command_centre) "ftd" = ( /obj/structure/bed/chair{ @@ -12181,17 +9937,13 @@ /obj/structure/platform{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "ftD" = ( /obj/structure/machinery/door/airlock/almayer/generic{ name = "\improper A-Block Fitness Centre Airlock" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/fitness/glass) "ftK" = ( /obj/structure/bed/chair, @@ -12209,9 +9961,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/east) "ful" = ( /obj/structure/stairs/perspective{ @@ -12236,17 +9986,12 @@ /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/east_reactor/east) "fvk" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/a_block/fitness/glass) "fvn" = ( /obj/structure/platform{ @@ -12256,12 +10001,10 @@ dir = 8 }, /turf/open/gm/river, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "fvo" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/west_reactor) "fvx" = ( /obj/structure/prop/vehicles/crawler{ @@ -12278,12 +10021,9 @@ /turf/open/floor/prison, /area/lv522/indoors/c_block/cargo) "fvQ" = ( -/obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "browncorner" - }, -/area/lv522/atmos/east_reactor) +/obj/structure/window/framed/strata/reinforced, +/turf/open/floor/corsat/marked, +/area/lv522/atmos/sewer) "fvV" = ( /obj/effect/decal/warning_stripes{ icon_state = "NW-out"; @@ -12296,15 +10036,15 @@ dir = 1; name = "\improper Executive Suite" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/executive) +"fwh" = ( +/obj/structure/barricade/deployable, +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_left_to_right, +/area/lv522/landing_zone_forecon/UD6_Typhoon) "fwj" = ( /obj/effect/landmark/monkey_spawn, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/west_reactor) "fwo" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, @@ -12315,10 +10055,7 @@ dir = 8 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/a_block/fitness) "fwT" = ( /obj/item/tool/lighter/random{ @@ -12349,16 +10086,11 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/c_block/mining) "fwX" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/north_command_centre) "fxh" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -12368,26 +10100,16 @@ /area/lv522/atmos/east_reactor/south) "fxl" = ( /obj/vehicle/train/cargo/engine, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/cargo) "fxq" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/west) -"fxZ" = ( -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) "fyl" = ( /obj/structure/pipes/vents/pump, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/bridges/op_centre) "fyC" = ( /obj/structure/surface/table/almayer, @@ -12412,9 +10134,7 @@ "fyD" = ( /obj/structure/barricade/wooden, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/a_block/hallway) "fzf" = ( /obj/structure/stairs/perspective{ @@ -12435,10 +10155,7 @@ /obj/structure/platform{ dir = 4 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/admin) "fzl" = ( /obj/structure/stairs/perspective{ @@ -12449,10 +10166,7 @@ dir = 1 }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/admin) "fzp" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -12460,10 +10174,7 @@ /turf/open/floor/plating/plating_catwalk/prison, /area/lv522/indoors/b_block/bridge) "fzu" = ( -/turf/open/floor/corsat{ - dir = 9; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/northwest, /area/lv522/atmos/reactor_garage) "fzC" = ( /turf/closed/shuttle/dropship2/tornado{ @@ -12482,15 +10193,10 @@ dir = 8 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/way_in_command_centre) "fzL" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/east, /area/lv522/atmos/west_reactor) "fzV" = ( /obj/structure/stairs/perspective{ @@ -12508,9 +10214,7 @@ /area/lv522/outdoors/colony_streets/north_east_street) "fAt" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/way_in_command_centre) "fAx" = ( /obj/structure/filingcabinet{ @@ -12523,23 +10227,17 @@ pixel_x = 6; pixel_y = 20 }, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/lv522/atmos/east_reactor/east) "fAA" = ( /obj/structure/largecrate/random/barrel{ layer = 2.9 }, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/lv522/outdoors/colony_streets/central_streets) "fAG" = ( /obj/structure/cargo_container/arious/rightmid, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/north_command_centre) "fAH" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -12548,37 +10246,24 @@ /obj/item/prop/colony/usedbandage{ dir = 9 }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/northwest, /area/lv522/indoors/a_block/admin) "fAY" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ dir = 1; name = "\improper A-Block Fitness Centre Airlock" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/fitness) "fBg" = ( -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/reactor_garage) "fBp" = ( -/turf/open/asphalt/cement{ - icon_state = "cement15" - }, +/turf/open/asphalt/cement/cement15, /area/lv522/outdoors/colony_streets/east_central_street) "fBL" = ( -/obj/effect/landmark/lv624/fog_blocker/short, /obj/structure/machinery/landinglight/ds1/delaytwo, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/landing_zone_1) "fBP" = ( /obj/structure/filingcabinet/chestdrawer{ @@ -12586,9 +10271,7 @@ pixel_x = -11; pixel_y = 20 }, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/lv522/atmos/east_reactor/east) "fBR" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -12601,34 +10284,26 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/cargo_intake) "fBY" = ( /obj/item/prop/colony/used_flare, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/colony_streets/north_street) "fCb" = ( /obj/structure/platform{ dir = 1 }, /turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "fCl" = ( /obj/structure/barricade/wooden{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/a_block/kitchen/glass) "fCE" = ( -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/lv522/atmos/east_reactor/east) "fCN" = ( /obj/structure/surface/table/woodentable/fancy, @@ -12637,31 +10312,23 @@ pixel_y = 6 }, /obj/item/tool/pen/blue/clicky, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/lv522/atmos/east_reactor/east) "fCP" = ( /obj/structure/bed/chair/comfy{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/east_reactor/east) "fCU" = ( /obj/effect/decal/cleanable/blood{ desc = "Watch your step."; icon_state = "gib6" }, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/lv522/outdoors/colony_streets/central_streets) "fCW" = ( -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/lone_buildings/storage_blocks) "fDg" = ( /turf/closed/shuttle/dropship2/tornado/typhoon{ @@ -12681,9 +10348,7 @@ pixel_y = 4 }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/east_reactor/east) "fDj" = ( /obj/structure/surface/table/almayer, @@ -12694,24 +10359,15 @@ /obj/item/tool/pen/blue/clicky, /obj/effect/landmark/objective_landmark/close, /obj/effect/decal/cleanable/dirt, -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/landing_zone_1/ceiling) "fDn" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner/west, /area/lv522/atmos/east_reactor) "fDv" = ( /obj/structure/cargo_container/kelland/left, -/turf/open/asphalt/cement{ - icon_state = "cement2" - }, +/turf/open/asphalt/cement/cement2, /area/lv522/outdoors/colony_streets/south_street) "fDz" = ( /obj/structure/surface/table/almayer, @@ -12720,18 +10376,13 @@ pixel_y = 6 }, /obj/item/seeds/potatoseed, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/lv522/indoors/b_block/hydro) "fDC" = ( -/obj/structure/prop/ice_colony/ground_wire, -/obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, -/area/lv522/atmos/east_reactor) +/obj/effect/decal/cleanable/dirt, +/obj/structure/prop/static_tank/water, +/turf/open/floor/prison/floor_plate, +/area/lv522/atmos/sewer) "fDF" = ( /obj/structure/surface/rack, /obj/item/card/id/silver/clearance_badge/cl{ @@ -12740,18 +10391,11 @@ pixel_x = 5; registered_name = "John Forklift" }, -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/landing_zone_1/ceiling) "fDH" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/west, /area/lv522/atmos/east_reactor) "fDS" = ( /obj/structure/machinery/conveyor{ @@ -12762,9 +10406,7 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/cargo_intake) "fEe" = ( /obj/structure/platform, @@ -12773,9 +10415,7 @@ /area/lv522/indoors/c_block/garage) "fEF" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/shiva{ - icon_state = "radiator_tile2" - }, +/turf/open/floor/shiva/radiator_tile2, /area/lv522/indoors/a_block/bridges/op_centre) "fEW" = ( /obj/structure/prop/ice_colony/dense/planter_box{ @@ -12785,16 +10425,12 @@ layer = 4.3; pixel_y = 13 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "fEY" = ( /obj/structure/surface/rack, /obj/item/explosive/plastic, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/lv522/outdoors/colony_streets/south_east_street) "fFp" = ( /obj/item/clothing/gloves/yellow, @@ -12818,28 +10454,20 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/west, /area/lv522/atmos/east_reactor) "fFS" = ( /obj/effect/landmark/monkey_spawn, /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/west_reactor) "fGh" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/northwest, /area/lv522/atmos/west_reactor) "fGv" = ( /obj/structure/window_frame/strata, @@ -12849,9 +10477,7 @@ id = "LV_522_Hydro-Lockdown"; name = "\improper Storm Shutters" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/b_block/hydro) "fGw" = ( /obj/effect/spawner/gibspawner/xeno, @@ -12861,28 +10487,18 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner/north, /area/lv522/atmos/west_reactor) "fGJ" = ( -/turf/open/floor/corsat{ - dir = 6; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/southeast, /area/lv522/atmos/west_reactor) "fGN" = ( /obj/structure/cargo_container/arious/right, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/north_command_centre) "fGU" = ( /obj/structure/closet/crate, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/north_command_centre) "fHf" = ( /obj/structure/platform, @@ -12890,33 +10506,21 @@ layer = 2.9 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/way_in_command_centre) "fHy" = ( /obj/structure/barricade/wooden{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/c_block/mining) -"fHB" = ( -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/asphalt/cement, -/area/lv522/outdoors/colony_streets/south_west_street) "fHC" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/lv522/indoors/a_block/executive) "fHH" = ( /obj/effect/decal/cleanable/dirt, @@ -12924,9 +10528,7 @@ icon_state = "N"; pixel_y = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/way_in_command_centre) "fIa" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -12936,21 +10538,15 @@ /area/lv522/indoors/b_block/bridge) "fIe" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor) "fIr" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/colony_streets/north_street) "fIx" = ( /obj/structure/closet/emcloset, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/mining) "fII" = ( /obj/structure/prop/ice_colony/ground_wire{ @@ -12963,22 +10559,16 @@ dir = 1 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/kitchen/glass) "fIQ" = ( /obj/structure/blocker/forcefield/vehicles, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/west_reactor) "fJe" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "brown" - }, +/turf/open/floor/corsat/brown, /area/lv522/atmos/north_command_centre) "fJg" = ( /obj/structure/pipes/standard/manifold/hidden/green{ @@ -12996,27 +10586,20 @@ dir = 1 }, /turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "fKf" = ( /obj/structure/platform{ dir = 1 }, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/lv522/outdoors/colony_streets/north_east_street) "fKt" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/east_reactor/west) "fKu" = ( /obj/structure/largecrate, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/north, /area/lv522/atmos/cargo_intake) "fLa" = ( /turf/closed/shuttle/dropship2/tornado{ @@ -13030,10 +10613,7 @@ /obj/effect/landmark/survivor_spawner/lv522_forecon_smartgunner, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/west, /area/lv522/indoors/a_block/admin) "fLi" = ( /obj/item/tool/warning_cone{ @@ -13041,9 +10621,7 @@ pixel_y = 11 }, /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/west) "fLz" = ( /obj/structure/machinery{ @@ -13068,9 +10646,7 @@ /area/lv522/oob) "fLA" = ( /obj/structure/surface/table/almayer, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor) "fLF" = ( /obj/structure/machinery/door/poddoor/almayer/closed{ @@ -13078,10 +10654,7 @@ id = "LZ1_Lockdown_Lo"; name = "Emergency Lockdown" }, -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/landing_zone_1) "fLK" = ( /obj/structure/cryofeed, @@ -13096,15 +10669,11 @@ pixel_x = 8; pixel_y = 12 }, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/plating, /area/lv522/landing_zone_1/tunnel) "fLP" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/north, /area/lv522/atmos/east_reactor) "fLS" = ( /obj/structure/prop/dam/crane, @@ -13116,9 +10685,7 @@ name = "\improper B-Block Bar" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/b_block/bar) "fMd" = ( /obj/structure/prop/invuln/overhead/flammable_pipe/fly{ @@ -13128,9 +10695,7 @@ /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor) "fMx" = ( /obj/structure/prop/invuln/overhead/flammable_pipe/fly{ @@ -13141,9 +10706,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/east_reactor) "fMN" = ( /obj/structure/surface/table/almayer, @@ -13186,24 +10749,19 @@ pixel_x = -9; pixel_y = 10 }, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/garage) "fMT" = ( -/turf/open/floor/corsat{ - icon_state = "browncorner" - }, -/area/lv522/atmos/east_reactor) +/obj/effect/decal/cleanable/dirt, +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/prison/floor_plate, +/area/lv522/atmos/sewer) "fNk" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/structure/bed/chair, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/southwest, /area/lv522/atmos/reactor_garage) "fNm" = ( /obj/effect/landmark/monkey_spawn, @@ -13211,17 +10769,12 @@ /area/lv522/atmos/east_reactor/east) "fNp" = ( /obj/structure/reagent_dispensers/watertank, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/b_block/hydro) "fNq" = ( /obj/structure/surface/table/reinforced/prison, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/garage) "fOc" = ( /obj/structure/machinery/landinglight/ds1/delayone{ @@ -13233,17 +10786,12 @@ /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/casino) "fOy" = ( /obj/structure/reagent_dispensers/watertank, /obj/effect/decal/cleanable/cobweb, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/b_block/hydro) "fOM" = ( /obj/structure/bed/chair/comfy{ @@ -13253,9 +10801,7 @@ /area/lv522/atmos/east_reactor/east) "fOX" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/landing_zone_2/ceiling) "fPa" = ( /obj/structure/prop/server_equipment/yutani_server{ @@ -13266,18 +10812,10 @@ /obj/effect/decal/cleanable/blood/drip, /turf/open/floor/prison, /area/lv522/indoors/lone_buildings/outdoor_bot) -"fPt" = ( -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/asphalt/cement{ - icon_state = "cement2" - }, -/area/lv522/outdoors/colony_streets/south_west_street) "fPB" = ( /obj/structure/bed/chair, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2, /area/lv522/indoors/a_block/dorms) "fPH" = ( /obj/structure/closet/crate/miningcar, @@ -13294,18 +10832,14 @@ /obj/structure/machinery/prop/almayer/computer/PC{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/lv522/atmos/east_reactor/east) "fQb" = ( /obj/structure/surface/table/almayer, /obj/item/trash/plate{ pixel_y = 9 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "fQi" = ( /obj/item/prop/colony/canister{ @@ -13313,38 +10847,27 @@ layer = 3.1; pixel_y = 16 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/reactor_garage) "fQD" = ( /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/lv522/outdoors/colony_streets/windbreaker/observation) "fRc" = ( /obj/structure/machinery/mill, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/cargo) "fRd" = ( /obj/structure/bed/chair/comfy{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/lv522/atmos/east_reactor/east) "fRf" = ( /obj/structure/closet/bodybag, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/hallway) "fRk" = ( /obj/structure/window/framed/strata/reinforced, @@ -13352,9 +10875,7 @@ id = "LV522CIC_1"; name = "\improper Storm Shutters" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/admin) "fRP" = ( /obj/structure/prop/vehicles/crawler{ @@ -13378,9 +10899,7 @@ pixel_y = 6 }, /obj/item/tool/pen/blue/clicky, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/east_reactor/east) "fSf" = ( /obj/structure/blocker/invisible_wall, @@ -13390,24 +10909,16 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/sewer) "fSo" = ( -/obj/effect/landmark/lv624/fog_blocker/short, /obj/structure/machinery/landinglight/ds1, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/landing_zone_1) "fSq" = ( /obj/structure/window_frame/strata, /obj/item/stack/rods, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/dorms) "fSv" = ( /obj/structure/surface/table/almayer, @@ -13431,9 +10942,7 @@ pixel_y = 12 }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/east_reactor/east) "fSX" = ( /obj/structure/surface/table/almayer, @@ -13442,9 +10951,7 @@ pixel_y = 6 }, /obj/item/tool/pen/blue/clicky, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/east_reactor/east) "fTi" = ( /obj/structure/prop/invuln/ice_prefab{ @@ -13458,40 +10965,25 @@ }, /turf/open/auto_turf/shale/layer1, /area/lv522/outdoors/nw_rockies) -"fTm" = ( -/obj/structure/stairs/perspective{ - icon_state = "p_stair_full" - }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, -/area/lv522/landing_zone_forecon/UD6_Tornado) "fTs" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/west, /area/lv522/atmos/west_reactor) "fTN" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/auto_turf/shale/layer1, +/turf/open/asphalt/cement/cement3, /area/lv522/outdoors/colony_streets/south_west_street) "fTO" = ( /obj/effect/landmark/xeno_spawn, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/west_reactor) "fTP" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/prison, /area/lv522/indoors/b_block/bridge) "fTS" = ( -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/cargo_intake) "fUf" = ( /obj/effect/decal{ @@ -13501,9 +10993,7 @@ name = "weak acid" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/hallway) "fUx" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -13520,16 +11010,12 @@ density = 0; pixel_y = 16 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/command_centre) "fVB" = ( /obj/structure/closet, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "fVC" = ( /obj/structure/prop/invuln/overhead_pipe{ @@ -13542,7 +11028,7 @@ dir = 4 }, /turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "fVU" = ( /obj/structure/prop/invuln/ice_prefab{ dir = 1 @@ -13551,9 +11037,7 @@ icon_state = "E"; pixel_x = 1 }, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/lv522/outdoors/colony_streets/central_streets) "fWD" = ( /obj/item/stack/folding_barricade, @@ -13561,9 +11045,7 @@ icon_state = "E"; pixel_x = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/way_in_command_centre) "fWG" = ( /turf/open/auto_turf/shale/layer1, @@ -13578,9 +11060,7 @@ id = "Sec-Kitchen-Lockdown"; name = "\improper Storm Shutters" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/kitchen) "fWW" = ( /obj/structure/prop/ice_colony/ground_wire{ @@ -13599,9 +11079,7 @@ "fXa" = ( /obj/structure/machinery/vending/snack, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/b_block/bar) "fXn" = ( /turf/closed/shuttle/dropship2/tornado{ @@ -13611,30 +11089,21 @@ "fXs" = ( /obj/structure/blocker/forcefield/vehicles, /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/filt) "fXv" = ( /obj/structure/prop/ice_colony/ground_wire{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/command_centre) "fXx" = ( -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/lv522/outdoors/colony_streets/central_streets) "fXy" = ( /obj/structure/curtain/medical, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/lv522/indoors/a_block/medical/glass) "fXG" = ( /obj/structure/prop/invuln/minecart_tracks{ @@ -13648,15 +11117,10 @@ name = "\improper materials storage bin"; pixel_y = 8 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/indoors/c_block/mining) "fXS" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/atmos/cargo_intake) "fXU" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -13667,25 +11131,15 @@ /area/lv522/atmos/east_reactor) "fXZ" = ( /obj/structure/curtain/medical, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan4" - }, +/turf/open/floor/strata/white_cyan4/east, /area/lv522/indoors/a_block/medical) "fYm" = ( -/obj/structure/stairs/perspective{ - dir = 10; - icon_state = "p_stair_full" - }, /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/camera/autoname, /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/b_block/bridge) "fYw" = ( /obj/structure/surface/table/almayer, @@ -13695,9 +11149,7 @@ }, /obj/item/clothing/glasses/meson, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/c_block/mining) "fYD" = ( /obj/structure/stairs/perspective{ @@ -13707,24 +11159,17 @@ dir = 4 }, /turf/open/gm/river, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "fYP" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/floor/corsat{ - icon_state = "brown" - }, +/turf/open/floor/corsat/brown, /area/lv522/atmos/east_reactor/west) "fYZ" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/southwest, /area/lv522/indoors/a_block/admin) "fZd" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/t_comm) "fZl" = ( /obj/structure/surface/table/almayer, @@ -13736,10 +11181,7 @@ pixel_x = -3; pixel_y = 6 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/a_block/fitness) "fZo" = ( /obj/structure/prop/invuln/overhead_pipe{ @@ -13749,7 +11191,7 @@ }, /obj/structure/closet/firecloset/full, /turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "fZy" = ( /obj/structure/prop/invuln/ice_prefab{ dir = 10 @@ -13766,17 +11208,11 @@ /area/lv522/indoors/c_block/mining) "fZS" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/indoors/c_block/mining) "gat" = ( /obj/structure/cargo_container/horizontal/blue/middle, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/north, /area/lv522/atmos/cargo_intake) "gaw" = ( /obj/structure/barricade/deployable{ @@ -13787,10 +11223,7 @@ "gaI" = ( /obj/effect/decal/cleanable/dirt, /obj/item/prop/alien/hugger, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/lv522/indoors/c_block/t_comm) "gaS" = ( /obj/item/bananapeel{ @@ -13813,9 +11246,7 @@ "gbh" = ( /obj/structure/machinery/recharge_station, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/mining) "gbk" = ( /obj/structure/surface/table/almayer, @@ -13841,30 +11272,14 @@ /area/lv522/indoors/c_block/casino) "gbo" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/north, /area/lv522/atmos/reactor_garage) -"gbq" = ( -/obj/structure/stairs/perspective{ - dir = 10; - icon_state = "p_stair_full" - }, -/obj/structure/platform_decoration{ - dir = 4 - }, -/turf/open/floor/plating, -/area/lv522/indoors/c_block/cargo) "gbz" = ( /obj/item/prop/colony/used_flare, /obj/structure/barricade/deployable{ dir = 1 }, -/turf/open/floor/prison{ - dir = 5; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/northeast, /area/lv522/indoors/a_block/admin) "gbB" = ( /obj/structure/machinery/colony_floodlight{ @@ -13885,10 +11300,7 @@ /area/lv522/atmos/east_reactor) "gbR" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/lv522/indoors/a_block/medical) "gbW" = ( /obj/effect/decal{ @@ -13899,13 +11311,11 @@ pixel_x = -2; pixel_y = 16 }, -/turf/open/auto_turf/sand_white/layer0, +/turf/open/asphalt/cement/cement12, /area/lv522/outdoors/colony_streets/south_street) "gck" = ( /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/east_reactor/south) "gcn" = ( /obj/item/xeno_egg/alpha{ @@ -13917,22 +11327,16 @@ pixel_y = 7 }, /obj/structure/closet/crate, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/north_command_centre) "gcr" = ( /obj/structure/closet/toolcloset, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/reactor_garage) "gcv" = ( /obj/structure/foamed_metal, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/a_block/dorms/glass) "gcO" = ( /obj/effect/decal/cleanable/dirt, @@ -13944,9 +11348,7 @@ /area/lv522/indoors/a_block/executive) "gcX" = ( /obj/structure/window_frame/strata/reinforced, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/lone_buildings/engineering) "gcY" = ( /obj/structure/cargo_container/ferret/left, @@ -13957,11 +11359,18 @@ /obj/structure/machinery/prop/almayer/computer/PC{ dir = 8 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/admin) +"gdr" = ( +/obj/structure/bed/chair/dropship/passenger{ + dir = 4 + }, +/obj/structure/machinery/light/double{ + dir = 8; + pixel_y = -5 + }, +/turf/open/shuttle/dropship/can_surgery/medium_grey_single_wide_up_to_down, +/area/lv522/landing_zone_forecon/UD6_Tornado) "gdt" = ( /obj/item/tool/kitchen/knife, /obj/effect/decal/cleanable/dirt, @@ -13970,16 +11379,11 @@ "gdA" = ( /obj/structure/barricade/deployable, /obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/lv522/outdoors/colony_streets/north_street) "gdJ" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/north, /area/lv522/atmos/east_reactor/west) "gdO" = ( /turf/closed/wall/strata_outpost, @@ -13990,24 +11394,16 @@ }, /obj/effect/decal/cleanable/dirt, /obj/item/prop/colony/used_flare, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/admin) "gdX" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, /obj/structure/machinery/light, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/east_reactor) "gej" = ( /obj/structure/platform, -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/lv522/landing_zone_1) "gek" = ( /obj/structure/prop/invuln/ice_prefab/trim{ @@ -14020,16 +11416,12 @@ icon_state = "SE-out"; pixel_x = 1 }, -/turf/open/asphalt/cement{ - icon_state = "cement2" - }, +/turf/open/asphalt/cement/cement2, /area/lv522/outdoors/colony_streets/central_streets) "gem" = ( /obj/structure/surface/rack, /obj/item/clothing/head/welding, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/reactor_garage) "geq" = ( /obj/structure/prop/invuln/overhead/flammable_pipe/fly{ @@ -14039,9 +11431,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/east_reactor) "get" = ( /turf/open/floor/carpet, @@ -14058,17 +11448,13 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/east_reactor) "geB" = ( /obj/structure/barricade/wooden{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "geH" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -14087,9 +11473,7 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/reactor_garage) "geT" = ( /obj/structure/prop/invuln/overhead_pipe{ @@ -14100,7 +11484,7 @@ /obj/effect/decal/cleanable/dirt, /obj/structure/platform, /turf/open/gm/river, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "gfi" = ( /obj/item/weapon/twohanded/folded_metal_chair, /obj/item/prop/alien/hugger{ @@ -14113,21 +11497,17 @@ dir = 2; name = "\improper A-Block - Colony Operations Centre Airlock" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/hallway) "gfs" = ( /obj/item/prop/alien/hugger, /obj/effect/decal/cleanable/blood, /turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "gfu" = ( /obj/structure/surface/table/woodentable/fancy, /obj/item/device/flashlight/lamp/green, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/lv522/atmos/east_reactor/east) "gfL" = ( /obj/effect/decal/warning_stripes{ @@ -14141,10 +11521,7 @@ "gfU" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/bed/sofa/vert/white/top, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv522/indoors/a_block/corpo/glass) "gge" = ( /obj/item/storage/belt/medical/lifesaver, @@ -14152,28 +11529,19 @@ /area/lv522/atmos/cargo_intake) "ggj" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/a_block/admin) "ggp" = ( /obj/structure/machinery/floodlight, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/garage) "ggH" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/north, /area/lv522/atmos/east_reactor/south) "ggM" = ( /obj/effect/landmark/monkey_spawn, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/lv522/atmos/east_reactor/east) "ggO" = ( /obj/structure/surface/table/almayer, @@ -14182,17 +11550,10 @@ pixel_y = 4 }, /obj/item/tool/pen/blue/clicky, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/hallway) "ggS" = ( -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/landing_zone_1/ceiling) "ggZ" = ( /obj/structure/prop/invuln/minecart_tracks{ @@ -14201,31 +11562,22 @@ /turf/open/floor/prison, /area/lv522/indoors/c_block/mining) "gha" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/north, /area/lv522/atmos/way_in_command_centre) "ghr" = ( /obj/structure/machinery/door/airlock/almayer/engineering, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/east_reactor/east) "ghu" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/lv522/indoors/b_block/bar) "ghw" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/power/apc/weak{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms/glass) "ghy" = ( /obj/structure/surface/table/almayer, @@ -14240,10 +11592,14 @@ pixel_y = 4 }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/east_reactor/east) +"ghY" = ( +/obj/structure/bed/chair/dropship/passenger{ + dir = 4 + }, +/turf/open/shuttle/dropship/can_surgery/light_grey_top_right, +/area/lv522/outdoors/w_rockies) "gib" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/stairs/perspective{ @@ -14253,15 +11609,11 @@ /obj/structure/platform{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/sewer) "gif" = ( /obj/item/stack/sheet/metal, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/kitchen/glass) "gij" = ( /obj/item/tool/wirecutters, @@ -14270,9 +11622,7 @@ /area/lv522/indoors/c_block/casino) "giF" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/west_reactor) "giV" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -14280,9 +11630,7 @@ icon_state = "N"; pixel_y = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/way_in_command_centre) "giX" = ( /obj/structure/curtain/red, @@ -14290,9 +11638,7 @@ /area/lv522/indoors/a_block/executive) "gjm" = ( /obj/effect/landmark/monkey_spawn, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/west_reactor) "gjt" = ( /obj/structure/machinery/colony_floodlight{ @@ -14316,25 +11662,18 @@ dir = 1; pixel_y = 2 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/south) "gjF" = ( /obj/effect/decal/cleanable/dirt, /obj/item/prop/colony/used_flare, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/north, /area/lv522/indoors/a_block/admin) "gjQ" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/t_comm) "gjV" = ( /obj/structure/prop/invuln/ice_prefab{ @@ -14359,27 +11698,20 @@ /obj/structure/window{ dir = 4 }, -/turf/open/floor/plating{ - icon_state = "platebotc" - }, +/turf/open/floor/plating/platebotc, /area/lv522/indoors/b_block/hydro/glass) "gkl" = ( /obj/structure/barricade/wooden, /obj/item/shard{ icon_state = "medium" }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/admin) "gkF" = ( /obj/structure/machinery/computer/arcade, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/cobweb2, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/b_block/bar) "gkH" = ( /obj/structure/tunnel/maint_tunnel{ @@ -14388,16 +11720,14 @@ /obj/structure/machinery/light/small, /obj/effect/decal/cleanable/blood/xeno, /turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "gkY" = ( /obj/structure/closet/bombcloset, /turf/open/asphalt/cement, /area/lv522/outdoors/colony_streets/south_east_street) "glj" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/cargo_intake) "gll" = ( /obj/structure/bed/chair{ @@ -14406,9 +11736,7 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/cargo_intake) "glO" = ( /obj/item/stack/sheet/wood, @@ -14426,21 +11754,17 @@ /turf/open/floor/plating, /area/lv522/indoors/c_block/mining) "glV" = ( -/obj/structure/platform{ - dir = 1 +/obj/structure/stairs/perspective{ + icon_state = "p_stair_full" }, /obj/item/stack/sheet/wood, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/lv522/outdoors/colony_streets/south_street) "gmb" = ( /obj/structure/prop/vehicles/crawler{ layer = 2.9 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/reactor_garage) "gme" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -14452,9 +11776,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/west_reactor) "gmu" = ( /obj/structure/platform{ @@ -14464,9 +11786,7 @@ /area/lv522/outdoors/colony_streets/south_street) "gnd" = ( /obj/structure/machinery/light, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/east_reactor) "gnf" = ( /obj/structure/machinery/landinglight/ds1/delaythree{ @@ -14476,40 +11796,29 @@ /area/lv522/landing_zone_1) "gnk" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/east_reactor) "gnl" = ( /obj/structure/surface/table/almayer, /obj/item/circuitboard/airlock, /obj/effect/landmark/objective_landmark/close, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/mining) "gnx" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/cargo_intake) "gny" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/a_block/bridges) "gnA" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/west, /area/lv522/atmos/east_reactor/south) "gok" = ( /obj/effect/decal/cleanable/dirt, @@ -14523,19 +11832,19 @@ /turf/open/auto_turf/sand_white/layer0, /area/lv522/outdoors/colony_streets/south_west_street) "gou" = ( -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/northwest, /area/lv522/indoors/a_block/dorms) +"goC" = ( +/obj/structure/bed/chair/dropship/passenger{ + dir = 8 + }, +/turf/open/shuttle/dropship/can_surgery/medium_grey_single_wide_up_to_down, +/area/lv522/landing_zone_forecon/UD6_Tornado) "goK" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/west, /area/lv522/atmos/north_command_centre) "goO" = ( /obj/structure/window/reinforced{ @@ -14563,9 +11872,7 @@ layer = 3.1 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/c_block/mining) "goT" = ( /obj/structure/stairs/perspective{ @@ -14581,43 +11888,25 @@ "gpi" = ( /obj/structure/reagent_dispensers/fueltank, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/cargo) "gpp" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; pixel_y = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/colony_streets/north_west_street) "gpr" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper C-Block - Cargo Airlock" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/c_block/cargo) -"gpu" = ( -/obj/item/fuelCell{ - pixel_x = -8; - pixel_y = -2 - }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "brown" - }, -/area/lv522/atmos/east_reactor) "gpB" = ( /obj/structure/machinery/power/port_gen/pacman/super, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/lv522/outdoors/colony_streets/south_west_street) "gpN" = ( /obj/effect/spawner/gibspawner/xeno, @@ -14633,34 +11922,27 @@ /area/lv522/indoors/a_block/security/glass) "gqg" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/west, /area/lv522/atmos/east_reactor) "gqh" = ( /obj/item/trash/uscm_mre, -/turf/open/floor/prison{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/east, /area/lv522/indoors/a_block/admin) "gqG" = ( -/obj/structure/machinery/fuelcell_recycler, -/turf/open/floor/corsat{ - icon_state = "plate" +/obj/structure/platform, +/obj/structure/stairs/perspective{ + dir = 8; + icon_state = "p_stair_full" }, -/area/lv522/atmos/east_reactor) +/turf/open/gm/river, +/area/lv522/atmos/sewer) "grg" = ( /obj/effect/decal/cleanable/blood, /obj/structure/machinery/light{ dir = 1 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/medical) "grq" = ( /obj/structure/barricade/wooden{ @@ -14676,14 +11958,14 @@ /turf/open/floor/plating/plating_catwalk/prison, /area/lv522/indoors/a_block/dorms) "grz" = ( -/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/obj/structure/prop/invuln/overhead/flammable_pipe/fly{ - pixel_y = 6 +/obj/structure/platform_decoration{ + dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "plate" +/obj/structure/platform_decoration{ + dir = 8 }, -/area/lv522/atmos/east_reactor) +/turf/open/gm/river, +/area/lv522/atmos/sewer) "grP" = ( /obj/structure/pipes/standard/simple/hidden/green, /turf/open/floor/prison, @@ -14717,10 +11999,7 @@ /obj/structure/bed/chair/comfy{ dir = 8 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/west, /area/lv522/indoors/a_block/admin) "gsP" = ( /obj/effect/decal/warning_stripes{ @@ -14743,10 +12022,7 @@ }, /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/vents/pump, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/lv522/indoors/c_block/t_comm) "gts" = ( /obj/structure/tunnel, @@ -14763,51 +12039,52 @@ pixel_x = 8; pixel_y = 20 }, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/casino) "gtH" = ( /obj/structure/machinery/light{ dir = 1 }, /obj/structure/machinery/disposal, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/lv522/indoors/a_block/dorm_north) "gtS" = ( -/obj/structure/pipes/standard/simple/hidden/green, +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 4 + }, +/obj/structure/cargo_container/wy/mid, /turf/open/auto_turf/shale/layer2, -/area/lv522/outdoors/n_rockies) +/area/lv522/outdoors/w_rockies) "gtX" = ( /obj/effect/decal/cleanable/blood, /obj/effect/decal/warning_stripes{ icon_state = "N"; pixel_y = 1 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/south) "gug" = ( /obj/structure/cargo_container/horizontal/blue/bottom, -/turf/open/floor/plating{ - icon_state = "platebot" - }, +/turf/open/floor/plating/platebot, /area/lv522/indoors/c_block/cargo) "guh" = ( /obj/structure/largecrate/random, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) +"guj" = ( +/obj/structure/machinery/door/airlock/almayer/generic{ + dir = 1; + name = "\improper Dormitories" + }, +/obj/structure/pipes/standard/simple/hidden/green, +/turf/open/floor/corsat/marked, +/area/lv522/indoors/a_block/dorm_north) "gul" = ( /obj/structure/tunnel/maint_tunnel{ pixel_y = 6 }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/kitchen) "guB" = ( /obj/structure/bed/chair/comfy{ @@ -14819,9 +12096,7 @@ /obj/structure/bed/chair/comfy{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/lv522/indoors/b_block/bar) "guE" = ( /obj/structure/platform{ @@ -14841,9 +12116,7 @@ }, /obj/structure/pipes/vents/pump, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "guR" = ( /turf/closed/shuttle/dropship2/tornado/typhoon{ @@ -14862,17 +12135,12 @@ dir = 1; icon_state = "p_stair_full" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/way_in_command_centre) "gvr" = ( /obj/structure/closet/bodybag, /obj/structure/curtain/medical, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/lv522/indoors/a_block/medical/glass) "gvs" = ( /obj/structure/machinery/space_heater, @@ -14880,9 +12148,7 @@ pixel_x = 5; pixel_y = 9 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/cargo_intake) "gvG" = ( /obj/item/toy/beach_ball/holoball, @@ -14893,9 +12159,7 @@ id = "Sec-Kitchen-Lockdown"; name = "\improper Storm Shutters" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/security) "gvT" = ( /obj/effect/decal/cleanable/dirt, @@ -14906,12 +12170,9 @@ /turf/open/floor/plating/plating_catwalk/prison, /area/lv522/indoors/a_block/bridges/corpo) "gwk" = ( -/obj/structure/cable/heavyduty{ - icon_state = "4-8" - }, -/obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/plating, -/area/lv522/atmos/east_reactor) +/obj/structure/prop/static_tank/water, +/turf/open/floor/prison/floor_plate, +/area/lv522/atmos/sewer) "gwt" = ( /obj/structure/cargo_container/wy/right, /turf/open/floor/prison, @@ -14929,10 +12190,7 @@ /area/lv522/outdoors/colony_streets/north_street) "gwK" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/west, /area/lv522/atmos/east_reactor/south) "gwP" = ( /obj/structure/cargo_container/kelland/left, @@ -14950,9 +12208,7 @@ id = "Sec-Kitchen-Lockdown"; name = "\improper Storm Shutters" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/security) "gxb" = ( /obj/structure/surface/table/almayer, @@ -14961,23 +12217,17 @@ pixel_y = 3 }, /obj/structure/pipes/vents/pump, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/reactor_garage) "gxc" = ( /obj/structure/surface/table/almayer, /obj/item/reagent_container/food/snacks/cheeseburger, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/command_centre) "gxl" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/prop/almayer/computer/PC, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/command_centre) "gxp" = ( /obj/structure/machinery/landinglight/ds2/delaythree{ @@ -14992,17 +12242,13 @@ pixel_y = 3 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/a_block/hallway) "gxE" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 1 }, -/turf/open/asphalt/cement{ - icon_state = "cement15" - }, +/turf/open/asphalt/cement/cement15, /area/lv522/outdoors/colony_streets/south_east_street) "gxM" = ( /obj/structure/surface/table/almayer, @@ -15010,9 +12256,7 @@ pixel_y = 5 }, /obj/item/tool/pen/blue/clicky, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/command_centre) "gxN" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -15030,40 +12274,29 @@ /area/lv522/indoors/c_block/casino) "gyn" = ( /obj/structure/prop/almayer/computers/sensor_computer1, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/command_centre) "gyB" = ( /obj/item/prop/colony/used_flare, /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/south) "gyC" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/northwest, /area/lv522/atmos/east_reactor/south) "gyK" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/floor/corsat{ - icon_state = "brown" - }, +/turf/open/floor/corsat/brown, /area/lv522/atmos/north_command_centre) "gzk" = ( /obj/structure/prop/almayer/computers/sensor_computer2, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/command_centre) "gzu" = ( /obj/structure/barricade/deployable{ @@ -15072,54 +12305,30 @@ /obj/structure/barricade/deployable, /turf/open/floor/prison, /area/lv522/atmos/cargo_intake) -"gzw" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "SW-out"; - pixel_x = -1; - pixel_y = -1 - }, -/obj/effect/landmark/corpsespawner/wy/manager, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, -/area/lv522/oob/w_y_vault) "gzD" = ( /obj/structure/prop/almayer/computers/sensor_computer3, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/command_centre) "gzS" = ( /obj/structure/pipes/unary/freezer{ dir = 1; icon_state = "freezer_1" }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/medical/glass) "gzT" = ( /obj/structure/cargo_container/kelland/right{ layer = 2.9 }, /obj/structure/stairs/perspective{ - dir = 9; + dir = 1; icon_state = "p_stair_full" }, -/obj/structure/platform_decoration{ - dir = 1 - }, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/lv522/outdoors/colony_streets/north_east_street) "gzY" = ( /obj/structure/largecrate/random, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/sewer) "gAa" = ( /obj/structure/prop/ice_colony/ground_wire{ @@ -15134,9 +12343,7 @@ "gAJ" = ( /obj/structure/surface/table/almayer, /obj/structure/prop/server_equipment/laptop, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/command_centre) "gAO" = ( /obj/structure/prop/invuln/ice_prefab{ @@ -15147,9 +12354,7 @@ "gAS" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/south) "gAU" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -15159,22 +12364,8 @@ pixel_x = -37; pixel_y = 17 }, -/turf/open/floor/prison{ - dir = 5; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/northeast, /area/lv522/indoors/a_block/hallway) -"gBb" = ( -/obj/structure/prop/structure_lattice, -/obj/structure/stairs/perspective{ - dir = 5; - icon_state = "p_stair_full" - }, -/obj/structure/platform_decoration, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, -/area/lv522/outdoors/colony_streets/north_east_street) "gBe" = ( /obj/item/stack/sheet/metal, /obj/effect/decal/cleanable/dirt, @@ -15191,7 +12382,7 @@ /obj/item/seeds/riceseed, /obj/structure/closet/crate, /obj/item/seeds/riceseed, -/turf/open/auto_turf/sand_white/layer0, +/turf/open/asphalt/cement/cement3, /area/lv522/outdoors/colony_streets/south_west_street) "gBy" = ( /obj/effect/decal/warning_stripes{ @@ -15207,9 +12398,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "gCE" = ( /obj/structure/surface/table/reinforced/almayer_B, @@ -15221,9 +12410,7 @@ /obj/structure/machinery/power/apc/weak{ dir = 1 }, -/turf/open/floor/strata{ - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1, /area/lv522/indoors/lone_buildings/chunk) "gCO" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -15246,24 +12433,18 @@ id = "cargo_container" }, /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/cargo_intake) "gDz" = ( /obj/structure/barricade/wooden{ dir = 1 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/a_block/kitchen/glass) "gDA" = ( /obj/structure/platform, -/turf/open/floor/prison{ - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2, /area/lv522/indoors/a_block/dorms) "gDL" = ( /obj/structure/surface/table/reinforced/prison, @@ -15286,32 +12467,13 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/c_block/cargo) "gEx" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/blood/xeno, /turf/open/auto_turf/sand_white/layer0, /area/lv522/outdoors/colony_streets/north_street) -"gEA" = ( -/obj/structure/machinery/door/airlock/almayer/security/glass{ - dir = 8; - name = "\improper Marshall Head Office" - }, -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 4 - }, -/obj/structure/machinery/door/poddoor/shutters/almayer/open{ - dir = 4; - id = "Sec-Kitchen-Lockdown"; - name = "\improper Storm Shutters" - }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, -/area/lv522/indoors/a_block/security) "gEB" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 @@ -15320,7 +12482,7 @@ /area/lv522/outdoors/nw_rockies) "gEQ" = ( /obj/structure/surface/table/almayer, -/obj/structure/machinery/computer/cameras/wooden_tv/prop{ +/obj/structure/machinery/computer/cameras/wooden_tv/broadcast{ dir = 1; pixel_x = -10; pixel_y = 6 @@ -15330,16 +12492,11 @@ pixel_y = 8 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "gES" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/b_block/hydro) "gFi" = ( /obj/structure/filingcabinet/seeds{ @@ -15352,10 +12509,7 @@ pixel_x = 7; pixel_y = 16 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/b_block/hydro) "gFp" = ( /obj/item/ammo_magazine/rifle/heap{ @@ -15374,85 +12528,66 @@ /area/lv522/indoors/c_block/casino) "gFy" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, +/obj/structure/machinery/camera/autoname{ + dir = 8 + }, +/obj/structure/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/indoors/lone_buildings/storage_blocks) "gFD" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/faxmachine, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/command_centre) "gFG" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/east, /area/lv522/atmos/west_reactor) "gFM" = ( /obj/structure/machinery/colony_floodlight{ layer = 4.3 }, -/turf/open/asphalt/cement{ - icon_state = "cement2" - }, +/turf/open/asphalt/cement/cement2, /area/lv522/outdoors/colony_streets/east_central_street) "gGa" = ( /obj/structure/pipes/standard/manifold/hidden/green, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/strata{ - dir = 1; - icon_state = "white_cyan3" - }, +/turf/open/floor/strata/white_cyan3/north, /area/lv522/indoors/a_block/medical) "gGe" = ( /obj/structure/largecrate/random, /obj/structure/largecrate/random{ pixel_y = 18 }, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/garage) "gGg" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/northeast, /area/lv522/atmos/east_reactor/south) "gGk" = ( /obj/structure/prop/server_equipment/yutani_server, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/command_centre) "gGq" = ( /obj/structure/prop/server_equipment/yutani_server/broken, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/command_centre) "gGx" = ( /obj/item/weapon/gun/pistol/m1911{ current_mag = null }, /obj/effect/decal/cleanable/blood, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/lv522/outdoors/n_rockies) "gGM" = ( -/turf/open/asphalt/cement{ - icon_state = "cement14" - }, +/turf/open/asphalt/cement/cement14, /area/lv522/outdoors/colony_streets/south_street) "gGP" = ( /obj/structure/cargo_container/horizontal/blue/bottom, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/lv522/outdoors/colony_streets/north_west_street) "gGW" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -15474,31 +12609,22 @@ }, /obj/effect/landmark/objective_landmark/close, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/b_block/hydro) "gHz" = ( -/turf/open/asphalt/cement{ - icon_state = "cement2" - }, +/turf/open/asphalt/cement/cement2, /area/lv522/outdoors/colony_streets/north_west_street) "gHD" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/lv522/outdoors/colony_streets/north_street) "gHF" = ( /obj/structure/stairs/perspective{ icon_state = "p_stair_full" }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/cargo_intake) "gHN" = ( /obj/structure/prop/vehicles/crawler{ @@ -15509,9 +12635,7 @@ "gHX" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/a_block/dorms) "gIa" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -15529,15 +12653,11 @@ /area/lv522/outdoors/colony_streets/east_central_street) "gIh" = ( /obj/structure/cargo_container/kelland/left, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/lv522/outdoors/colony_streets/south_east_street) "gIr" = ( /obj/structure/platform_decoration, -/turf/open/asphalt/cement{ - icon_state = "cement2" - }, +/turf/open/asphalt/cement/cement2, /area/lv522/outdoors/colony_streets/south_east_street) "gIv" = ( /obj/structure/cargo_container/ferret/left, @@ -15547,19 +12667,14 @@ /obj/structure/stairs/perspective{ icon_state = "p_stair_full" }, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/northwest, /area/lv522/atmos/cargo_intake) "gIZ" = ( /obj/structure/bed/chair/comfy{ dir = 1 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/south) "gJm" = ( /obj/structure/cargo_container/ferret/mid, @@ -15576,28 +12691,22 @@ }, /obj/structure/platform, /turf/open/gm/river, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "gJD" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/lv522/outdoors/nw_rockies) "gJK" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/reactor_garage) "gJL" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/spider/spiderling/nogrow, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/lone_buildings/storage_blocks) "gJM" = ( /obj/structure/reagent_dispensers/watertank, @@ -15605,15 +12714,11 @@ dir = 8 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/cargo) "gKa" = ( /obj/structure/machinery/colony_floodlight, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/outdoors/colony_streets/south_east_street) "gKg" = ( /obj/structure/platform, @@ -15622,29 +12727,14 @@ id = "LZ1_Lockdown_Lo"; name = "Emergency Lockdown" }, -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/landing_zone_1) -"gKD" = ( -/obj/item/fuelCell{ - pixel_x = 6; - pixel_y = 4 - }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "brown" - }, -/area/lv522/atmos/east_reactor) "gKM" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner, /area/lv522/atmos/east_reactor) "gKO" = ( /obj/structure/machinery/colony_floodlight{ @@ -15665,9 +12755,7 @@ /obj/structure/prop/invuln/ice_prefab/standalone/trim{ icon_state = "white_trim" }, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/lv522/outdoors/colony_streets/north_east_street) "gLd" = ( /obj/structure/machinery/power/apc/weak{ @@ -15689,10 +12777,7 @@ icon_state = "p_stair_full" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/north, /area/lv522/atmos/cargo_intake) "gLV" = ( /obj/structure/prop/server_equipment/yutani_server/broken{ @@ -15701,9 +12786,7 @@ pixel_y = 16 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/kitchen) "gMb" = ( /obj/structure/bed/chair/comfy{ @@ -15718,64 +12801,39 @@ }, /turf/open/auto_turf/sand_white/layer0, /area/lv522/outdoors/n_rockies) -"gMe" = ( -/obj/structure/platform{ - dir = 1 - }, -/obj/structure/platform{ - dir = 4 - }, -/obj/structure/platform_decoration{ - dir = 9 - }, -/turf/open/asphalt/cement, -/area/lv522/outdoors/n_rockies) "gMy" = ( /obj/structure/stairs/perspective{ icon_state = "p_stair_full" }, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/northeast, /area/lv522/atmos/cargo_intake) "gMG" = ( /obj/structure/platform_decoration{ dir = 1 }, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/lv522/outdoors/colony_streets/north_east_street) "gMQ" = ( -/turf/open/asphalt/cement{ - icon_state = "cement9" - }, +/turf/open/asphalt/cement/cement9, /area/lv522/outdoors/colony_streets/south_west_street) "gMV" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/lv522/indoors/a_block/dorm_north) "gNb" = ( /obj/structure/machinery/light, /obj/structure/closet/emcloset, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "gNe" = ( /obj/structure/prop/server_equipment/yutani_server/off, /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/command_centre) "gNn" = ( /obj/structure/largecrate/supply/medicine/medkits{ @@ -15795,10 +12853,7 @@ /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/east, /area/lv522/atmos/reactor_garage) "gNJ" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -15807,41 +12862,27 @@ /turf/open/floor/plating, /area/lv522/indoors/a_block/bridges/op_centre) "gNN" = ( -/obj/structure/machinery/light{ - dir = 4 - }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, -/area/lv522/oob/w_y_vault) +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/plating_catwalk/prison, +/area/lv522/atmos/sewer) "gOb" = ( /obj/structure/closet/emcloset, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/b_block/hydro) "gOj" = ( /obj/structure/cargo_container/horizontal/blue/middle, /turf/open/auto_turf/sand_white/layer0, /area/lv522/outdoors/nw_rockies) "gOo" = ( -/obj/structure/prop/invuln/fusion_reactor, -/obj/structure/prop/turbine_extras, -/turf/open/floor/corsat{ - icon_state = "plate" - }, -/area/lv522/atmos/east_reactor) +/turf/open/floor/plating/plating_catwalk/prison, +/area/lv522/atmos/sewer) "gOC" = ( /obj/structure/pipes/vents/pump, /obj/effect/decal/cleanable/dirt, /obj/structure/surface/table/almayer, /obj/item/ammo_box/magazine/shotgun/beanbag/empty, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/security) "gOE" = ( /obj/structure/surface/table/almayer, @@ -15855,17 +12896,13 @@ pixel_y = 5 }, /obj/item/reagent_container/spray/cleaner, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/security/glass) "gOG" = ( -/obj/structure/prop/turbine_extras/border, -/obj/structure/prop/turbine, -/turf/open/floor/corsat{ - icon_state = "plate" - }, -/area/lv522/atmos/east_reactor) +/obj/structure/surface/table/almayer, +/obj/item/frame/fire_alarm, +/turf/open/floor/prison/floor_plate, +/area/lv522/atmos/sewer) "gOJ" = ( /obj/item/tool/wirecutters{ pixel_x = -1; @@ -15893,18 +12930,13 @@ "gPp" = ( /obj/item/stack/sheet/metal, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/admin) "gPq" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/east_reactor/west) "gPv" = ( /obj/structure/platform{ @@ -15922,10 +12954,7 @@ /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/light, /obj/structure/closet/secure_closet/engineering_electrical, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/lv522/indoors/lone_buildings/outdoor_bot) "gPQ" = ( /obj/structure/machinery/conveyor{ @@ -15933,10 +12962,7 @@ id = "cargo_container" }, /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/northwest, /area/lv522/atmos/cargo_intake) "gQu" = ( /mob/living/simple_animal/cat/kitten{ @@ -15950,11 +12976,7 @@ pixel_y = 6 }, /obj/effect/decal/cleanable/dirt, -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/landing_zone_1/ceiling) "gQV" = ( /obj/structure/platform{ @@ -15975,9 +12997,7 @@ /area/lv522/outdoors/colony_streets/north_east_street) "gRp" = ( /obj/structure/machinery/floodlight/landing, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/landing_zone_2) "gRs" = ( /obj/structure/cargo_container/watatsumi/leftmid, @@ -15999,36 +13019,27 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/south) "gRK" = ( /obj/structure/bed/chair/comfy, -/turf/open/floor/prison{ - icon_state = "blue" - }, +/turf/open/floor/prison/blue, /area/lv522/indoors/a_block/admin) "gRU" = ( /obj/item/paper_bin/uscm{ pixel_x = -7; pixel_y = 7 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "gRV" = ( -/obj/structure/prop/turbine, -/obj/structure/prop/turbine_extras/border, -/turf/open/floor/corsat{ - icon_state = "plate" +/obj/structure/bed/chair{ + dir = 4 }, -/area/lv522/atmos/east_reactor) +/turf/open/floor/prison/floor_plate, +/area/lv522/atmos/sewer) "gSn" = ( -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/c_block/mining) "gSw" = ( /obj/item/prop/colony/used_flare, @@ -16040,23 +13051,16 @@ /obj/structure/foamed_metal{ layer = 3.1 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms/glass) "gTc" = ( /obj/structure/platform_decoration{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/way_in_command_centre) "gTw" = ( -/turf/open/floor/corsat{ - dir = 6; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/southeast, /area/lv522/atmos/north_command_centre) "gTM" = ( /obj/structure/girder, @@ -16064,16 +13068,12 @@ /area/lv522/landing_zone_forecon/UD6_Typhoon) "gTX" = ( /obj/structure/machinery/photocopier, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/lv522/atmos/east_reactor/east) "gUe" = ( /obj/structure/ore_box, /obj/effect/decal/cleanable/cobweb, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/mining) "gUi" = ( /obj/structure/flora/jungle/planttop1, @@ -16087,9 +13087,7 @@ /area/lv522/outdoors/colony_streets/south_street) "gUm" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/lv522/atmos/east_reactor/east) "gUv" = ( /obj/structure/surface/table/woodentable/fancy, @@ -16105,31 +13103,21 @@ pixel_x = 9; pixel_y = 2 }, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/lv522/atmos/east_reactor/east) "gUA" = ( /obj/structure/closet/secure_closet/engineering_welding, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/lv522/indoors/lone_buildings/engineering) "gUQ" = ( /obj/structure/machinery/disposal, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/lv522/indoors/a_block/kitchen) "gUY" = ( /obj/item/prop/alien/hugger, /obj/effect/decal/cleanable/vomit, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/medical) "gVd" = ( /obj/structure/prop/invuln/ice_prefab/standalone/trim, @@ -16158,9 +13146,7 @@ /area/lv522/landing_zone_1) "gVr" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/strata{ - icon_state = "white_cyan3" - }, +/turf/open/floor/strata/white_cyan3, /area/lv522/indoors/a_block/medical) "gVv" = ( /obj/item/lightstick/red/spoke/planted{ @@ -16173,10 +13159,7 @@ /turf/open/auto_turf/shale/layer1, /area/lv522/outdoors/colony_streets/north_west_street) "gVA" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/landing_zone_2/ceiling) "gWb" = ( /obj/structure/surface/table/almayer, @@ -16196,43 +13179,30 @@ dir = 4 }, /turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "gWg" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_nest, /obj/effect/landmark/xeno_spawn, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/southeast, /area/lv522/atmos/east_reactor/south) "gWh" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2, /area/lv522/indoors/a_block/dorms) "gWq" = ( /obj/structure/pipes/vents/pump, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/medical) "gWu" = ( /obj/effect/spawner/gibspawner/xeno, -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/west, /area/lv522/atmos/way_in_command_centre) "gWx" = ( /obj/structure/closet/secure_closet/miner{ pixel_x = 4 }, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/mining) "gWI" = ( /turf/open/asphalt/cement, @@ -16243,15 +13213,12 @@ name = "Bathroom" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/dorms) "gXb" = ( /obj/structure/machinery/light/small{ dir = 4 }, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/plating, /area/lv522/landing_zone_1/tunnel) "gXc" = ( @@ -16269,10 +13236,7 @@ /area/lv522/indoors/a_block/kitchen/glass) "gXA" = ( /obj/item/prop/alien/hugger, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/lv522/indoors/b_block/hydro) "gXB" = ( /obj/structure/surface/table/woodentable/fancy, @@ -16280,9 +13244,7 @@ /obj/item/clothing/mask/cigarette/pipe{ pixel_y = 5 }, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/lv522/atmos/east_reactor/east) "gXE" = ( /obj/structure/prop/invuln/ice_prefab/roof_greeble{ @@ -16295,22 +13257,16 @@ "gXI" = ( /obj/structure/pipes/vents/pump, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe, /area/lv522/atmos/reactor_garage) "gXL" = ( /obj/item/prop/alien/hugger, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/strata{ - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1, /area/lv522/indoors/lone_buildings/chunk) "gXR" = ( /obj/structure/cargo_container/horizontal/blue/bottom, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/cargo_intake) "gXT" = ( /obj/item/shard{ @@ -16327,10 +13283,7 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/admin) "gYc" = ( /obj/structure/reagent_dispensers/watertank, @@ -16344,24 +13297,18 @@ pixel_y = 3 }, /obj/item/paper/janitor, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/command_centre) "gYF" = ( /obj/structure/pipes/vents/pump, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2, /area/lv522/indoors/a_block/dorms) "gYH" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper A-Block Security Airlock" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/bridges/op_centre) "gYK" = ( /obj/effect/decal/cleanable/dirt, @@ -16369,9 +13316,7 @@ icon_state = "W"; pixel_x = -1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/way_in_command_centre) "gYM" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -16380,9 +13325,7 @@ /turf/closed/wall/strata_outpost/reinforced, /area/lv522/atmos/cargo_intake) "gYO" = ( -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/colony_streets/south_west_street) "gYT" = ( /obj/structure/bed/chair/comfy{ @@ -16395,56 +13338,38 @@ flipped = 1 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/kitchen/glass) "gZd" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/command_centre) "gZg" = ( /obj/structure/closet/secure_closet/engineering_electrical, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/lv522/indoors/lone_buildings/engineering) "gZh" = ( /obj/structure/platform_decoration, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/admin) "gZp" = ( /obj/structure/machinery/seed_extractor, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/lv522/indoors/b_block/hydro) "gZv" = ( /obj/structure/machinery/door/airlock/almayer/generic{ name = "\improper A-Block Shared Dorms Airlock" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/dorm_north) "gZJ" = ( /obj/structure/machinery/power/apc/weak{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/indoors/lone_buildings/storage_blocks) "gZL" = ( /obj/effect/decal/cleanable/blood/drip, @@ -16457,37 +13382,26 @@ icon_state = "p_stair_full" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/lv522/indoors/b_block/bridge) "haf" = ( -/obj/effect/landmark/lv624/fog_blocker/short, /obj/structure/machinery/landinglight/ds1/delaytwo, /turf/open/floor/plating, /area/lv522/landing_zone_1) "hag" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "blue" - }, +/turf/open/floor/prison/blue, /area/lv522/indoors/a_block/admin) "hai" = ( /obj/structure/bed/chair/comfy{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/command_centre) "ham" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/southeast, /area/lv522/atmos/reactor_garage) "han" = ( /obj/structure/cargo_container/horizontal/blue/bottom, @@ -16498,9 +13412,7 @@ /turf/open/floor/corsat, /area/lv522/atmos/cargo_intake) "haq" = ( -/turf/open/floor/strata{ - icon_state = "white_cyan3" - }, +/turf/open/floor/strata/white_cyan3, /area/lv522/indoors/a_block/medical/glass) "har" = ( /obj/effect/decal/cleanable/dirt, @@ -16511,9 +13423,7 @@ dir = 5 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "blue" - }, +/turf/open/floor/prison/blue, /area/lv522/indoors/a_block/admin) "hau" = ( /obj/structure/sink{ @@ -16521,10 +13431,7 @@ pixel_x = 11 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/lv522/indoors/a_block/dorms) "haF" = ( /obj/structure/prop/invuln/overhead_pipe{ @@ -16546,17 +13453,13 @@ icon_state = "xgib3" }, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/south) "haR" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/east_reactor/east) "haY" = ( /obj/structure/pipes/standard/manifold/fourway/hidden/green, @@ -16565,15 +13468,11 @@ /area/lv522/indoors/c_block/cargo) "hbj" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/filt) "hbk" = ( /obj/effect/spawner/gibspawner/robot, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/security) "hbp" = ( /obj/structure/surface/table/almayer, @@ -16594,9 +13493,7 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "hbu" = ( /obj/item/clothing/mask/facehugger{ @@ -16606,10 +13503,7 @@ name = "????"; stat = 2 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/landing_zone_2) "hbw" = ( /obj/item/explosive/grenade/high_explosive/m15{ @@ -16626,31 +13520,20 @@ /obj/structure/bed/chair/comfy{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/northwest, /area/lv522/atmos/command_centre) "hbG" = ( /obj/structure/machinery/medical_pod/bodyscanner, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/medical) "hbH" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/north, /area/lv522/atmos/command_centre) "hbN" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/east_reactor/east) "hcd" = ( /obj/effect/decal/warning_stripes{ @@ -16660,9 +13543,7 @@ icon_state = "E"; pixel_x = 1 }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/outdoors/colony_streets/north_street) "hcv" = ( /obj/structure/fence, @@ -16673,16 +13554,10 @@ icon_state = "E"; pixel_x = 1 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/lv522/landing_zone_2/ceiling) "hcx" = ( -/turf/open/floor/corsat{ - dir = 5; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/northeast, /area/lv522/atmos/command_centre) "hcE" = ( /obj/item/stack/sheet/metal, @@ -16695,38 +13570,26 @@ /area/lv522/indoors/c_block/mining) "hcV" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/west, /area/lv522/atmos/cargo_intake) "hcZ" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/command_centre) "hdd" = ( /obj/item/prop/alien/hugger, /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/command_centre) "hdk" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 5; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/northeast, /area/lv522/indoors/a_block/admin) "hdq" = ( /obj/effect/decal/cleanable/generic, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/garage) "hds" = ( /obj/structure/surface/table/woodentable, @@ -16734,9 +13597,7 @@ pixel_x = 3; pixel_y = 5 }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/lv522/indoors/b_block/bar) "hdu" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -16757,30 +13618,21 @@ pixel_y = 24 }, /obj/structure/pipes/vents/pump, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/command_centre) "hdQ" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/south) "hdR" = ( /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/north, /area/lv522/atmos/cargo_intake) "hef" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/south) "heB" = ( /obj/structure/cargo_container/ferret/right, @@ -16788,17 +13640,13 @@ /area/lv522/atmos/cargo_intake) "heC" = ( /obj/structure/machinery/disposal, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/cargo) "heF" = ( -/obj/structure/prop/server_equipment/yutani_server, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "brown" - }, -/area/lv522/atmos/east_reactor) +/obj/structure/surface/table/almayer, +/obj/item/storage/belt/utility, +/turf/open/floor/prison/floor_plate, +/area/lv522/atmos/sewer) "heO" = ( /obj/structure/machinery/camera/autoname{ dir = 4 @@ -16806,20 +13654,13 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/b_block/hydro) "heU" = ( -/obj/structure/prop/server_equipment/yutani_server/broken{ - layer = 2.9 - }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "brown" - }, -/area/lv522/atmos/east_reactor) +/obj/structure/blocker/invisible_wall, +/obj/structure/platform_decoration, +/turf/open/floor/plating, +/area/lv522/atmos/sewer) "heX" = ( /obj/structure/largecrate/random/barrel{ layer = 5.1; @@ -16833,10 +13674,7 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/bridges/op_centre) "hfi" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, @@ -16844,10 +13682,7 @@ layer = 3.1; pixel_y = 10 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/north, /area/lv522/atmos/east_reactor) "hft" = ( /obj/structure/largecrate/random, @@ -16862,13 +13697,12 @@ /turf/open/floor/prison, /area/lv522/indoors/a_block/admin) "hfE" = ( -/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/obj/structure/prop/server_equipment/yutani_server/off, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "brown" +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 5 }, -/area/lv522/atmos/east_reactor) +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/prison/floor_plate, +/area/lv522/atmos/sewer) "hfS" = ( /obj/structure/pipes/standard/simple/hidden/green, /turf/open/floor/prison, @@ -16885,21 +13719,19 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/b_block/bridge) "hgo" = ( -/obj/structure/stairs/perspective{ - dir = 9; - icon_state = "p_stair_full" - }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" +/obj/item/storage/backpack/marine/satchel{ + desc = "It's the heavy-duty black polymer kind. Time to take out the trash!"; + icon = 'icons/obj/janitor.dmi'; + icon_state = "trashbag3"; + name = "trash bag"; + pixel_x = -4; + pixel_y = 5 }, -/area/lv522/indoors/b_block/hydro) +/turf/open/floor/plating/plating_catwalk/prison, +/area/lv522/atmos/sewer) "hgr" = ( /obj/structure/girder/reinforced, /turf/open/auto_turf/shale/layer1, @@ -16923,33 +13755,24 @@ dir = 5 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/east, /area/lv522/indoors/a_block/hallway) "hgM" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/east_reactor/west) "hgQ" = ( -/obj/structure/prop/ice_colony/ground_wire{ - dir = 1 - }, -/obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "brown" +/obj/effect/decal/cleanable/dirt, +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 5 }, -/area/lv522/atmos/east_reactor) +/turf/open/floor/prison, +/area/lv522/atmos/sewer) "hhb" = ( /obj/structure/platform{ dir = 4 }, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/lv522/landing_zone_2) "hhu" = ( /obj/structure/machinery/conveyor{ @@ -16957,27 +13780,18 @@ id = "cargo_container" }, /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/cargo_intake) "hhD" = ( -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/lv522/outdoors/colony_streets/north_street) "hhI" = ( -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/lv522/indoors/b_block/bridge) "hhJ" = ( /obj/structure/surface/rack, /obj/item/tool/crowbar, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/lv522/outdoors/colony_streets/windbreaker/observation) "hhK" = ( /obj/structure/machinery/door/poddoor/shutters/almayer{ @@ -16987,34 +13801,23 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/way_in_command_centre) "hhQ" = ( /obj/structure/closet/radiation, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/east_reactor/south) "hig" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/east_reactor/east) "hij" = ( /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/north, /area/lv522/atmos/reactor_garage) "hip" = ( /obj/structure/pipes/vents/pump, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/lv522/outdoors/colony_streets/north_west_street) "hix" = ( /obj/structure/platform{ @@ -17023,20 +13826,14 @@ /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/colony_streets/south_east_street) "hiB" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/command_centre) "hiK" = ( -/turf/open/asphalt/cement{ - icon_state = "cement14" - }, +/turf/open/asphalt/cement/cement14, /area/lv522/outdoors/colony_streets/north_west_street) "hiL" = ( /obj/structure/platform{ @@ -17046,16 +13843,13 @@ dir = 4 }, /turf/open/gm/river, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "hiV" = ( /obj/item/prop/alien/hugger, /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/northwest, /area/lv522/atmos/command_centre) "hiZ" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -17064,24 +13858,19 @@ /obj/structure/machinery/door/airlock/almayer/generic{ name = "\improper Mining Control" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/c_block/mining) "hjB" = ( /obj/effect/landmark/monkey_spawn, /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/north, /area/lv522/atmos/command_centre) "hjE" = ( /obj/effect/decal/cleanable/blood/oil, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison, +/turf/closed/wall/shiva/prefabricated/reinforced, /area/lv522/indoors/lone_buildings/storage_blocks) "hjW" = ( /obj/structure/surface/table/almayer, @@ -17110,15 +13899,11 @@ /obj/item/clothing/head/welding{ pixel_y = 7 }, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/garage) "hkr" = ( /obj/structure/girder, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/lv522/outdoors/colony_streets/north_street) "hku" = ( /obj/structure/surface/table/almayer, @@ -17139,9 +13924,7 @@ layer = 2.9; pixel_y = 3 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "hkw" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -17151,9 +13934,7 @@ /obj/item/clothing/head/hardhat{ pixel_x = 17 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/command_centre) "hky" = ( /obj/effect/landmark/monkey_spawn, @@ -17161,10 +13942,7 @@ dir = 4 }, /obj/structure/prop/ice_colony/ground_wire, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner/north, /area/lv522/atmos/command_centre) "hkC" = ( /obj/structure/surface/table/almayer, @@ -17178,27 +13956,19 @@ /obj/item/tool/pen/red/clicky{ pixel_x = -6 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/c_block/mining) "hkD" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/east, /area/lv522/atmos/command_centre) "hkE" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/command_centre) "hkO" = ( /obj/structure/surface/rack, @@ -17209,18 +13979,13 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/cargo_intake) "hkY" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/west, /area/lv522/atmos/cargo_intake) "hlf" = ( /obj/structure/pipes/standard/manifold/fourway/hidden/green, @@ -17233,16 +13998,12 @@ /obj/structure/machinery/power/apc/weak{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/north) "hll" = ( /obj/structure/surface/table/almayer, /obj/item/device/binoculars, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/lv522/outdoors/colony_streets/windbreaker/observation) "hlp" = ( /obj/structure/machinery/conveyor{ @@ -17252,29 +14013,21 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/cargo_intake) "hlH" = ( /obj/structure/surface/table/reinforced/prison, -/obj/item/handcuffs/cable/white, -/obj/item/handcuffs/cable/white{ +/obj/item/restraint/adjustable/cable/white, +/obj/item/restraint/adjustable/cable/white{ pixel_y = 4 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/corpo/glass) "hlJ" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/northwest, /area/lv522/atmos/command_centre) "hmz" = ( /obj/structure/largecrate/random/barrel/white, @@ -17285,10 +14038,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/north, /area/lv522/atmos/command_centre) "hmJ" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -17305,22 +14055,14 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/command_centre) "hmV" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/northwest, /area/lv522/atmos/east_reactor/south) "hna" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/north, /area/lv522/atmos/east_reactor/south) "hnk" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -17334,15 +14076,10 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/b_block/bar) "hnD" = ( -/turf/open/floor/corsat{ - dir = 10; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/southwest, /area/lv522/atmos/west_reactor) "hoq" = ( /obj/structure/prop/invuln/ice_prefab/roof_greeble{ @@ -17373,9 +14110,7 @@ id = "Sec-Kitchen-Lockdown"; name = "\improper Storm Shutters" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/security) "hoy" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -17392,9 +14127,7 @@ icon_state = "E"; pixel_x = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/cargo_intake) "hoZ" = ( /obj/structure/surface/table/almayer, @@ -17410,55 +14143,37 @@ /obj/structure/machinery/space_heater/radiator/red{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "hpq" = ( -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/lv522/outdoors/colony_streets/south_west_street) "hpy" = ( -/turf/open/floor/corsat{ - dir = 9; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/northwest, /area/lv522/atmos/command_centre) "hpH" = ( /obj/structure/largecrate/random/secure, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/a_block/hallway) "hpI" = ( /obj/item/ammo_magazine/rifle/heap{ current_rounds = 0 }, -/turf/open/floor/corsat{ - icon_state = "brown" - }, +/turf/open/floor/corsat/brown, /area/lv522/atmos/east_reactor/south) "hqp" = ( /obj/structure/coatrack{ pixel_x = 11 }, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/lv522/indoors/a_block/dorm_north) "hqB" = ( /obj/effect/spawner/gibspawner/xeno, /obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/lv522/outdoors/colony_streets/north_street) "hqD" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner/north, /area/lv522/atmos/command_centre) "hqZ" = ( /obj/structure/bed/chair/wheelchair, @@ -17474,16 +14189,12 @@ /turf/open/organic/grass, /area/lv522/indoors/a_block/garden) "hrk" = ( -/turf/open/asphalt/cement{ - icon_state = "cement2" - }, +/turf/open/asphalt/cement/cement2, /area/lv522/outdoors/colony_streets/east_central_street) "hrl" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/vending/coffee, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/way_in_command_centre) "hrw" = ( /obj/effect/decal/cleanable/dirt, @@ -17491,9 +14202,7 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/lv522/outdoors/colony_streets/windbreaker/observation) "hrx" = ( /obj/structure/surface/table/almayer, @@ -17501,9 +14210,7 @@ dir = 4; pixel_y = 3 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "hry" = ( /obj/structure/machinery/conveyor{ @@ -17511,25 +14218,18 @@ id = "cargo_container" }, /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner/north, /area/lv522/atmos/cargo_intake) "hrH" = ( /obj/structure/platform_decoration, /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/way_in_command_centre) "hrU" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/mining) "hsh" = ( /obj/structure/bed/chair{ @@ -17539,10 +14239,7 @@ /area/lv522/indoors/b_block/hydro) "hsz" = ( /obj/structure/machinery/floodlight, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/indoors/lone_buildings/storage_blocks) "hsA" = ( /obj/structure/prop/invuln/lattice_prop{ @@ -17556,10 +14253,7 @@ layer = 2; name = "weak acid" }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/lv522/indoors/a_block/admin) "htu" = ( /obj/structure/prop/invuln/ice_prefab/roof_greeble{ @@ -17588,31 +14282,22 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/corpo) "htX" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/command_centre) "hup" = ( /obj/item/tool/crowbar, -/turf/open/floor/corsat{ - icon_state = "brown" - }, +/turf/open/floor/corsat/brown, /area/lv522/atmos/command_centre) "huq" = ( /obj/structure/barricade/wooden{ dir = 8 }, /obj/effect/decal/cleanable/blood/gibs, -/turf/open/floor/shiva{ - icon_state = "radiator_tile2" - }, +/turf/open/floor/shiva/radiator_tile2, /area/lv522/indoors/a_block/bridges/op_centre) "huu" = ( /obj/structure/pipes/standard/manifold/hidden/green, @@ -17620,16 +14305,11 @@ /area/lv522/indoors/b_block/bridge) "huF" = ( /obj/structure/machinery/space_heater/radiator/red, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "huN" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/west, /area/lv522/indoors/a_block/hallway) "huX" = ( /obj/structure/surface/table/almayer, @@ -17641,9 +14321,7 @@ phone_id = "Colony Kitchen"; pixel_y = -6 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/lv522/indoors/a_block/kitchen) "hvh" = ( /obj/structure/platform, @@ -17668,9 +14346,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/nw_rockies) "hwa" = ( /obj/structure/platform/stair_cut{ @@ -17683,34 +14359,23 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/b_block/bridge) "hwf" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/simple/hidden/green{ dir = 1 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/a_block/fitness) "hwr" = ( /obj/structure/prop/ice_colony/ground_wire{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner/west, /area/lv522/atmos/command_centre) "hwt" = ( -/turf/open/floor/corsat{ - icon_state = "brown" - }, +/turf/open/floor/corsat/brown, /area/lv522/atmos/east_reactor) "hwF" = ( /obj/structure/prop/invuln/ice_prefab{ @@ -17729,9 +14394,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/east_reactor/south) "hxn" = ( /obj/effect/decal/warning_stripes{ @@ -17751,9 +14414,7 @@ /area/lv522/outdoors/colony_streets/north_street) "hxV" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/command_centre) "hxY" = ( /obj/item/storage/backpack/marine/satchel{ @@ -17767,24 +14428,17 @@ /turf/open/asphalt/cement, /area/lv522/outdoors/colony_streets/east_central_street) "hye" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/east, /area/lv522/atmos/command_centre) "hyf" = ( /obj/structure/machinery/light, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/shiva{ - icon_state = "radiator_tile2" - }, +/turf/open/floor/shiva/radiator_tile2, /area/lv522/indoors/b_block/bridge) "hyA" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/generic, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/b_block/bar) "hyE" = ( /obj/effect/decal/cleanable/blood, @@ -17793,9 +14447,7 @@ dir = 1; pixel_y = 26 }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/kitchen/glass) "hyZ" = ( /obj/structure/fence{ @@ -17808,15 +14460,11 @@ /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/colony_streets/north_west_street) "hzc" = ( /obj/structure/largecrate/random, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/mining) "hzk" = ( /obj/effect/decal/cleanable/dirt, @@ -17826,26 +14474,19 @@ /obj/structure/machinery/door/airlock/multi_tile/almayer/engidoor{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/command_centre) "hzu" = ( /obj/structure/reagent_dispensers/watertank, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/cargo) "hzw" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/barricade/deployable{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/north, /area/lv522/atmos/way_in_command_centre) "hzA" = ( /obj/item/ammo_magazine/rifle/heap{ @@ -17864,9 +14505,7 @@ icon_state = "N"; pixel_y = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/cargo_intake) "hzO" = ( /obj/structure/surface/rack, @@ -17879,9 +14518,7 @@ }, /obj/effect/decal/cleanable/dirt, /obj/effect/spider/spiderling/nogrow, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/lv522/indoors/a_block/kitchen) "hzV" = ( /obj/effect/decal/cleanable/dirt, @@ -17893,9 +14530,7 @@ pixel_x = -1; pixel_y = 2 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/way_in_command_centre) "hAd" = ( /obj/structure/machinery/door/airlock/almayer/generic{ @@ -17903,9 +14538,7 @@ name = "\improper A-Block Dorms And Office Airlock" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/dorms) "hAg" = ( /obj/structure/prop/invuln/ice_prefab{ @@ -17922,24 +14555,17 @@ pixel_y = 15 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/lv522/indoors/a_block/kitchen) "hAk" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/west, /area/lv522/atmos/cargo_intake) "hAr" = ( /obj/structure/window/reinforced{ dir = 8 }, /obj/structure/prop/almayer/computers/sensor_computer1, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/north_command_centre) "hAs" = ( /obj/structure/bed/chair{ @@ -17951,9 +14577,7 @@ /obj/structure/prop/invuln/ice_prefab/standalone{ icon_state = "white" }, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/lv522/outdoors/colony_streets/north_east_street) "hAy" = ( /obj/structure/machinery/light{ @@ -17966,17 +14590,11 @@ /obj/structure/bed/bedroll{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/north, /area/lv522/indoors/a_block/admin) "hAD" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/northwest, /area/lv522/atmos/reactor_garage) "hAE" = ( /obj/structure/fence{ @@ -17989,27 +14607,18 @@ icon_state = "N"; pixel_y = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/colony_streets/north_west_street) "hAK" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/west, /area/lv522/atmos/command_centre) "hAX" = ( /obj/item/weapon/gun/boltaction, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/c_block/cargo) "hBf" = ( -/turf/open/floor/corsat{ - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner, /area/lv522/atmos/command_centre) "hBg" = ( /obj/structure/cryofeed, @@ -18019,54 +14628,37 @@ "hBp" = ( /obj/structure/dispenser/oxygen, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/mining) "hBB" = ( /obj/item/prop/alien/hugger, -/turf/open/floor/corsat{ - icon_state = "brown" - }, +/turf/open/floor/corsat/brown, /area/lv522/atmos/command_centre) "hBC" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/device/autopsy_scanner, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/medical) "hBD" = ( /obj/effect/landmark/monkey_spawn, -/turf/open/floor/corsat{ - icon_state = "brown" - }, +/turf/open/floor/corsat/brown, /area/lv522/atmos/command_centre) "hCi" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/lv522/indoors/a_block/kitchen) "hCq" = ( /obj/structure/bed/bedroll{ dir = 4 }, /obj/effect/landmark/survivor_spawner, -/turf/open/floor/prison{ - dir = 9; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/northwest, /area/lv522/indoors/a_block/admin) "hCv" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner/west, /area/lv522/atmos/command_centre) "hCH" = ( /obj/structure/surface/table/almayer, @@ -18075,15 +14667,11 @@ "hCU" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/east_reactor/east) "hCV" = ( /obj/item/stool, -/turf/open/floor/strata{ - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1, /area/lv522/indoors/lone_buildings/chunk) "hDa" = ( /turf/open/floor/plating/plating_catwalk/prison, @@ -18096,15 +14684,11 @@ }, /obj/effect/spawner/gibspawner/xeno, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/colony_streets/north_street) "hDh" = ( /obj/structure/bed/chair/comfy, -/turf/open/floor/corsat{ - icon_state = "brown" - }, +/turf/open/floor/corsat/brown, /area/lv522/atmos/command_centre) "hDy" = ( /turf/closed/wall/strata_outpost, @@ -18137,24 +14721,17 @@ id = "LV522CIC_1"; name = "\improper Storm Shutters" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/admin) "hEJ" = ( /obj/structure/closet/secure_closet/engineering_electrical, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/way_in_command_centre) "hES" = ( /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/b_block/hydro) "hFg" = ( /obj/structure/prop/almayer/computers/sensor_computer2, @@ -18162,33 +14739,19 @@ pixel_x = -7; pixel_y = 19 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/c_block/mining) -"hFm" = ( -/turf/open/shuttle/dropship{ - icon_state = "rasputin4" - }, -/area/lv522/landing_zone_forecon/UD6_Tornado) "hFu" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner, /area/lv522/atmos/command_centre) "hFA" = ( /obj/structure/closet/emcloset, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/sewer) "hFG" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/casino) "hFL" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -18197,15 +14760,10 @@ /obj/structure/platform{ dir = 8 }, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/lv522/outdoors/colony_streets/north_east_street) "hFS" = ( -/turf/open/floor/corsat{ - dir = 6; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/southeast, /area/lv522/atmos/command_centre) "hFX" = ( /turf/open/auto_turf/shale/layer2, @@ -18213,16 +14771,11 @@ "hGg" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/bed/sofa/vert/white, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv522/indoors/a_block/corpo/glass) "hGm" = ( /obj/structure/closet/firecloset/full, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/way_in_command_centre) "hGJ" = ( /obj/structure/platform_decoration/strata{ @@ -18232,9 +14785,7 @@ /area/lv522/oob) "hGU" = ( /obj/effect/landmark/monkey_spawn, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/command_centre) "hGX" = ( /obj/structure/bed/chair/comfy{ @@ -18251,37 +14802,32 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/prison, /area/lv522/atmos/outdoor) -"hHh" = ( -/obj/structure/machinery/colony_floodlight{ - layer = 4.3 +"hHe" = ( +/obj/structure/platform{ + dir = 1 }, -/turf/open/asphalt/cement{ - icon_state = "cement9" +/turf/open/gm/river, +/area/lv522/landing_zone_1/tunnel/far) +"hHh" = ( +/obj/structure/platform{ + dir = 4 }, -/area/lv522/outdoors/colony_streets/north_east_street) +/turf/open/asphalt/cement, +/area/lv522/outdoors/colony_streets/central_streets) "hHj" = ( /obj/structure/largecrate, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/cargo_intake) "hHN" = ( /obj/structure/bed/chair/comfy, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/command_centre) "hHY" = ( /obj/structure/bed/chair/comfy, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/southwest, /area/lv522/atmos/command_centre) "hIf" = ( -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/landing_zone_2) "hIp" = ( /obj/item/weapon/gun/rifle/m41a{ @@ -18299,33 +14845,27 @@ /area/lv522/indoors/c_block/casino) "hIz" = ( /obj/structure/surface/table/almayer, -/obj/item/handcuffs{ +/obj/item/restraint/handcuffs{ pixel_y = 12 }, -/obj/item/handcuffs{ +/obj/item/restraint/handcuffs{ pixel_y = 6 }, -/obj/item/handcuffs, +/obj/item/restraint/handcuffs, /obj/item/weapon/classic_baton, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/security/glass) "hIA" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/cobweb2, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/cargo) "hID" = ( /obj/structure/machinery/light{ pixel_x = 16 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/strata{ - icon_state = "white_cyan3" - }, +/turf/open/floor/strata/white_cyan3, /area/lv522/indoors/a_block/medical) "hIP" = ( /obj/structure/pipes/standard/manifold/hidden/green{ @@ -18348,9 +14888,7 @@ dir = 4 }, /obj/structure/machinery/disposal, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms/glass) "hJq" = ( /obj/structure/platform/strata, @@ -18360,9 +14898,7 @@ /turf/closed/wall/strata_ice/dirty, /area/lv522/oob) "hJB" = ( -/turf/open/floor/corsat{ - icon_state = "brown" - }, +/turf/open/floor/corsat/brown, /area/lv522/atmos/east_reactor/west) "hJG" = ( /obj/structure/pipes/standard/manifold/hidden/green{ @@ -18374,9 +14910,7 @@ /obj/structure/surface/rack, /obj/item/explosive/plastic, /obj/item/explosive/plastic, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/lone_buildings/storage_blocks) "hJZ" = ( /turf/open/auto_turf/sand_white/layer0, @@ -18386,32 +14920,17 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/lv522/indoors/b_block/bar) "hKu" = ( /obj/structure/surface/table/almayer, /obj/item/trash/ceramic_plate, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/lv522/outdoors/colony_streets/windbreaker/observation) "hKy" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/indoors/lone_buildings/outdoor_bot) -"hKz" = ( -/obj/item/clothing/under/liaison_suit/suspenders{ - pixel_x = -4; - pixel_y = 9 - }, -/obj/item/clothing/accessory/red, -/turf/open/floor/carpet, -/area/lv522/indoors/a_block/executive) "hKE" = ( /obj/structure/prop/ice_colony/ground_wire{ dir = 4 @@ -18424,15 +14943,10 @@ /area/lv522/outdoors/nw_rockies) "hKI" = ( /obj/structure/closet/firecloset/full, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/sewer) "hKJ" = ( -/turf/open/floor/prison{ - dir = 5; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/northeast, /area/lv522/indoors/a_block/admin) "hKK" = ( /obj/item/clothing/mask/facehugger{ @@ -18458,35 +14972,24 @@ pixel_x = -2; pixel_y = 10 }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/northwest, /area/lv522/indoors/a_block/hallway) "hKS" = ( /obj/structure/barricade/deployable{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/outdoors/colony_streets/north_east_street) "hLl" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/barricade/handrail{ dir = 8 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/west, /area/lv522/indoors/lone_buildings/storage_blocks) "hLm" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/kitchen/glass) "hLo" = ( /turf/open/floor/wood, @@ -18494,37 +14997,28 @@ "hLx" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/space_heater/radiator/red, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/b_block/bridge) "hLF" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/corpo/glass) "hLK" = ( /obj/effect/decal/cleanable/blood/gibs, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/kitchen/glass) +"hLR" = ( +/turf/open/shuttle/dropship/can_surgery/light_grey_top_left, +/area/lv522/landing_zone_forecon/UD6_Tornado) "hLT" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/cargo_intake) "hLY" = ( -/turf/open/floor/corsat{ - icon_state = "brown" - }, +/turf/open/floor/corsat/brown, /area/lv522/atmos/east_reactor/south) "hMb" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -18537,25 +15031,19 @@ /obj/structure/surface/table/almayer, /obj/structure/machinery/recharger, /obj/item/clothing/glasses/kutjevo, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/lv522/indoors/lone_buildings/outdoor_bot) "hMz" = ( -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/lv522/outdoors/colony_streets/south_east_street) "hME" = ( -/obj/effect/decal{ - icon = 'icons/mob/xenos/effects.dmi'; - icon_state = "acid_weak"; - layer = 2; - name = "weak acid" +/obj/effect/decal/warning_stripes{ + icon_state = "SE-out"; + pixel_x = 1; + pixel_y = -1 }, -/turf/open/floor/corsat, -/area/lv522/atmos/east_reactor) +/turf/open/floor/prison/floor_plate, +/area/lv522/atmos/sewer) "hMI" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, @@ -18573,10 +15061,7 @@ /area/lv522/outdoors/colony_streets/south_east_street) "hMR" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/medical/glass) "hMT" = ( /obj/structure/surface/table/gamblingtable, @@ -18588,15 +15073,24 @@ "hNf" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/blood, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/south) "hNj" = ( -/obj/item/stack/sheet/metal, -/obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat, -/area/lv522/atmos/east_reactor) +/obj/structure/machinery/door_control{ + id = "Marked_6"; + name = "Cargo Shutter Control"; + pixel_y = 10 + }, +/obj/structure/surface/table/almayer, +/obj/item/prop{ + desc = "The first page reads. 'Classified Weyland Bio-Weapons Division level eight clearance required.' The rest talks about some sort of XX-121 combat stim?"; + icon = 'icons/obj/items/paper.dmi'; + icon_state = "folder_black"; + name = "Weyland classified intelligence folder"; + pixel_y = -2 + }, +/turf/open/floor/strata/white_cyan1/east, +/area/lv522/oob/w_y_vault) "hNk" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 @@ -18606,17 +15100,13 @@ "hNt" = ( /obj/item/trash/uscm_mre, /obj/structure/surface/table/almayer, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/lv522/outdoors/colony_streets/north_street) "hNz" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/lv522/outdoors/colony_streets/central_streets) "hNF" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -18627,9 +15117,7 @@ dir = 1; name = "\improper Family Dormitories" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/dorms) "hNP" = ( /obj/structure/platform{ @@ -18644,15 +15132,27 @@ /turf/open/auto_turf/sand_white/layer0, /area/lv522/outdoors/colony_streets/north_street) "hNV" = ( -/obj/item/stack/rods, -/turf/open/floor/corsat, -/area/lv522/atmos/east_reactor) +/obj/item/storage/backpack/marine/satchel{ + desc = "It's the heavy-duty black polymer kind. Time to take out the trash!"; + icon = 'icons/obj/janitor.dmi'; + icon_state = "trashbag3"; + name = "trash bag"; + pixel_x = -4; + pixel_y = 6 + }, +/obj/item/storage/backpack/marine/satchel{ + desc = "It's the heavy-duty black polymer kind. Time to take out the trash!"; + icon = 'icons/obj/janitor.dmi'; + icon_state = "trashbag3"; + name = "trash bag"; + pixel_x = 3; + pixel_y = -2 + }, +/turf/open/floor/plating/plating_catwalk/prison, +/area/lv522/atmos/sewer) "hNZ" = ( /obj/effect/spawner/gibspawner/xeno, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/atmos/cargo_intake) "hOl" = ( /obj/structure/bed/bedroll{ @@ -18660,10 +15160,7 @@ }, /obj/item/trash/uscm_mre, /obj/effect/landmark/survivor_spawner, -/turf/open/floor/prison{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/west, /area/lv522/indoors/a_block/admin) "hOy" = ( /obj/effect/decal{ @@ -18676,54 +15173,38 @@ /area/lv522/oob) "hOB" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating{ - icon_state = "platebot" - }, +/turf/open/floor/plating/platebot, /area/lv522/indoors/c_block/cargo) "hOG" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/east, /area/lv522/atmos/filt) "hOH" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/filt) "hOI" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /obj/structure/blocker/forcefield/vehicles, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/command_centre) "hOK" = ( /obj/structure/largecrate/random, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/hallway) "hOL" = ( /obj/structure/prop/server_equipment/yutani_server, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/security/glass) "hON" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/prop/almayer/computer/PC{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/command_centre) "hPd" = ( /obj/structure/prop/vehicles/crawler{ @@ -18741,21 +15222,15 @@ /obj/structure/window/reinforced{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/command_centre) "hPz" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "brown" - }, +/turf/open/floor/corsat/brown, /area/lv522/atmos/command_centre) "hPI" = ( /obj/item/prop/alien/hugger, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/lv522/indoors/b_block/bar) "hPM" = ( /obj/item/stack/sheet/metal, @@ -18788,9 +15263,7 @@ /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/nw_rockies) "hQE" = ( /obj/structure/machinery/power/apc/weak{ @@ -18799,10 +15272,7 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/b_block/bridge) "hQU" = ( /obj/structure/prop/invuln/ice_prefab/trim{ @@ -18812,19 +15282,13 @@ /area/lv522/outdoors/nw_rockies) "hRd" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/southeast, /area/lv522/atmos/command_centre) "hRj" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/west, /area/lv522/atmos/cargo_intake) "hRu" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -18833,31 +15297,24 @@ /turf/open/auto_turf/sand_white/layer0, /area/lv522/outdoors/w_rockies) "hRy" = ( -/obj/structure/prop/invuln/fusion_reactor, -/turf/open/floor/corsat{ - icon_state = "plate" +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 10 }, -/area/lv522/atmos/east_reactor) +/turf/open/floor/prison, +/area/lv522/atmos/sewer) "hRz" = ( /obj/structure/pipes/vents/pump, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/casino) "hRG" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/cargo_intake) "hRW" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/west, /area/lv522/atmos/east_reactor) "hSi" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -18869,24 +15326,15 @@ /obj/structure/cargo_container/kelland/left{ layer = 4.13 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/outdoors/colony_streets/north_east_street) "hSO" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/southeast, /area/lv522/atmos/command_centre) "hSQ" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/prison{ - dir = 1; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/north, /area/lv522/atmos/way_in_command_centre) "hTd" = ( /obj/structure/window/reinforced{ @@ -18894,40 +15342,26 @@ layer = 3 }, /obj/structure/machinery/computer3/server/rack, -/turf/open/floor{ - icon_state = "bcircuit" - }, +/turf/open/floor/bcircuit, /area/lv522/atmos/command_centre) "hTe" = ( /turf/open/gm/river, /area/lv522/landing_zone_1/tunnel) -"hTf" = ( -/obj/structure/platform_decoration, -/turf/open/asphalt/cement, -/area/lv522/outdoors/n_rockies) "hTg" = ( /obj/structure/surface/table/almayer, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/command_centre) "hTh" = ( -/turf/open/floor/corsat{ - icon_state = "brown" - }, +/turf/open/floor/corsat/brown, /area/lv522/atmos/west_reactor) "hTk" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/east_reactor/east) "hTo" = ( /obj/structure/surface/table/almayer, /obj/item/clothing/glasses/meson, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/command_centre) "hTA" = ( /obj/structure/machinery/door/airlock/almayer/engineering{ @@ -18937,21 +15371,17 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/c_block/cargo) "hTI" = ( -/obj/structure/prop/server_equipment/yutani_server/off{ - pixel_x = -4 - }, -/turf/open/floor{ - icon_state = "bcircuit" +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 }, -/area/lv522/atmos/east_reactor) +/turf/open/floor/prison, +/area/lv522/atmos/sewer) "hTW" = ( /obj/structure/largecrate/random/secure, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/auto_turf/sand_white/layer0, /area/lv522/landing_zone_1) "hTX" = ( @@ -18962,10 +15392,7 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/b_block/bridge) "hTY" = ( /obj/structure/machinery/light{ @@ -18973,18 +15400,14 @@ }, /obj/structure/foamed_metal, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms/glass) "hUq" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/space_heater/radiator/red{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/garage) "hUM" = ( /obj/structure/surface/table/almayer, @@ -19000,18 +15423,13 @@ pixel_x = 7; pixel_y = 7 }, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/plating, /area/lv522/landing_zone_1/tunnel) "hUY" = ( -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/structure/prop/almayer/computers/sensor_computer1, -/turf/open/floor{ - icon_state = "bcircuit" - }, -/area/lv522/atmos/east_reactor) +/obj/structure/closet/emcloset, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/corsat/marked, +/area/lv522/atmos/sewer) "hUZ" = ( /obj/structure/barricade/deployable, /obj/item/weapon/gun/rifle/m41a{ @@ -19019,45 +15437,24 @@ }, /turf/open/floor/prison, /area/lv522/atmos/cargo_intake) -"hVh" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/storage/fancy/cigarettes/wypacket{ - pixel_x = 5; - pixel_y = 6 - }, -/obj/item/clothing/under/liaison_suit/suspenders, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, -/area/lv522/indoors/a_block/corpo/glass) "hVk" = ( -/obj/item/stack/sheet/metal, -/turf/open/floor{ - icon_state = "bcircuit" - }, -/area/lv522/atmos/east_reactor) +/obj/structure/pipes/standard/simple/hidden/green, +/turf/open/floor/prison, +/area/lv522/atmos/sewer) "hVu" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/kitchen/glass) "hVw" = ( /obj/structure/window/framed/shiva, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/lone_buildings/chunk) "hWs" = ( /obj/structure/stairs/perspective{ dir = 10; icon_state = "p_stair_full" }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/b_block/bridge) "hWz" = ( /obj/structure/platform, @@ -19075,16 +15472,11 @@ /obj/structure/prop/almayer/computers/sensor_computer2{ layer = 2.0 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/way_in_command_centre) "hWD" = ( /obj/structure/barricade/deployable, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/admin) "hWI" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -19097,9 +15489,7 @@ dir = 8 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/c_block/casino) "hWV" = ( /obj/structure/barricade/deployable, @@ -19119,13 +15509,10 @@ /turf/closed/wall/mineral/bone_resin, /area/lv522/oob) "hXA" = ( -/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "brown" - }, -/area/lv522/atmos/east_reactor) +/obj/structure/closet/firecloset/full, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/corsat/marked, +/area/lv522/atmos/sewer) "hXO" = ( /obj/structure/prop/invuln/ice_prefab{ dir = 10 @@ -19134,59 +15521,30 @@ icon_state = "E"; pixel_x = 1 }, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/lv522/outdoors/colony_streets/central_streets) "hXP" = ( -/obj/item/prop/alien/hugger, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "brown" - }, -/area/lv522/atmos/east_reactor) +/turf/closed/wall/r_wall/biodome/biodome_unmeltable, +/area/lv522/oob/w_y_vault) "hXW" = ( /obj/item/storage/firstaid/adv/empty, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/north, /area/lv522/indoors/a_block/hallway) "hXZ" = ( -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/effect/decal{ - icon = 'icons/mob/xenos/effects.dmi'; - icon_state = "acid_weak"; - layer = 2; - name = "weak acid" - }, -/turf/open/floor{ - icon_state = "bcircuit" - }, -/area/lv522/atmos/east_reactor) +/turf/open/floor/almayer/w_y1/north, +/area/lv522/oob/w_y_vault) "hYf" = ( -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/lone_buildings/storage_blocks) "hYg" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /obj/structure/surface/table/almayer, -/turf/open/floor/corsat{ - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner, /area/lv522/atmos/east_reactor/south) "hYk" = ( -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/item/stack/sheet/metal, -/turf/open/floor{ - icon_state = "bcircuit" - }, -/area/lv522/atmos/east_reactor) +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer/w_y2/north, +/area/lv522/oob/w_y_vault) "hYn" = ( /obj/item/tool/pen/blue/clicky{ pixel_x = 6 @@ -19199,16 +15557,11 @@ pixel_y = 16 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/admin) "hYL" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/shiva{ - icon_state = "radiator_tile2" - }, +/turf/open/floor/shiva/radiator_tile2, /area/lv522/indoors/b_block/bridge) "hYV" = ( /obj/effect/decal/cleanable/dirt, @@ -19223,18 +15576,14 @@ /obj/effect/decal/cleanable/dirt, /obj/structure/prop/server_equipment/laptop/closed, /obj/structure/surface/table/almayer, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/lv522/outdoors/colony_streets/windbreaker/observation) "hZn" = ( -/obj/structure/prop/server_equipment/yutani_server{ - pixel_x = -4 - }, -/turf/open/floor{ - icon_state = "bcircuit" +/obj/structure/machinery/light{ + dir = 4 }, -/area/lv522/atmos/east_reactor) +/turf/open/floor/strata/white_cyan1/east, +/area/lv522/oob/w_y_vault) "hZC" = ( /obj/structure/closet/crate, /obj/item/stack/sheet/metal/medium_stack, @@ -19243,16 +15592,15 @@ /turf/open/floor/prison, /area/lv522/indoors/c_block/mining) "hZK" = ( -/obj/structure/prop/server_equipment/yutani_server/broken{ - pixel_x = 3 - }, -/obj/structure/prop/server_equipment{ - pixel_x = -16 +/obj/structure/platform{ + dir = 8 }, -/turf/open/floor{ - icon_state = "bcircuit" +/obj/structure/stairs/perspective{ + dir = 1; + icon_state = "p_stair_full" }, -/area/lv522/atmos/east_reactor) +/turf/open/gm/river, +/area/lv522/atmos/sewer) "hZL" = ( /obj/structure/bed/chair/wood/normal{ dir = 4 @@ -19265,17 +15613,12 @@ "hZO" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/reactor_garage) "hZR" = ( /obj/structure/closet/firecloset/full, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/b_block/hydro) "hZZ" = ( /obj/structure/barricade/deployable, @@ -19285,28 +15628,20 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/lv522/indoors/a_block/medical/glass) "ial" = ( /obj/structure/filtration/machine_96x96/indestructible{ icon_state = "sedimentation" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/lv522/oob) "iam" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/filt) "iaM" = ( /obj/effect/decal/cleanable/dirt, @@ -19322,10 +15657,7 @@ /area/lv522/indoors/a_block/bridges) "ibk" = ( /obj/structure/prop/almayer/computers/sensor_computer1, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/admin) "ibu" = ( /obj/effect/spawner/gibspawner/xeno, @@ -19339,9 +15671,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/reactor_garage) "ibE" = ( /turf/closed/shuttle/dropship2/tornado{ @@ -19350,9 +15680,7 @@ /area/lv522/landing_zone_forecon/UD6_Tornado) "ibT" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/command_centre) "ibW" = ( /obj/structure/window/framed/strata/reinforced, @@ -19361,15 +15689,13 @@ id = "LV_522_Hydro-Lockdown"; name = "\improper Storm Shutters" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/b_block/hydro) "ica" = ( /obj/effect/decal/cleanable/dirt, /obj/item/prop/alien/hugger, /turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "ici" = ( /obj/effect/decal/cleanable/vomit{ icon_state = "vomit_4" @@ -19377,27 +15703,19 @@ /obj/structure/machinery/space_heater/radiator/red{ dir = 4 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/medical/glass) "ick" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/west, /area/lv522/atmos/cargo_intake) "icr" = ( -/obj/structure/prop/invuln/overhead/flammable_pipe/fly{ - dir = 1 - }, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "brown" +/obj/structure/stairs/perspective{ + dir = 1; + icon_state = "p_stair_full" }, -/area/lv522/atmos/east_reactor) +/turf/open/gm/river, +/area/lv522/atmos/sewer) "icy" = ( /obj/item/prop/alien/hugger, /turf/open/floor/prison, @@ -19407,25 +15725,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/prison, /area/lv522/indoors/lone_buildings/storage_blocks) -"icM" = ( -/obj/structure/machinery/door_control{ - id = "Marked_6"; - name = "Cargo Shutter Control"; - pixel_y = 10 - }, -/obj/structure/surface/table/almayer, -/obj/item/prop{ - desc = "The first page reads. 'Classified Weyland Bio-Weapons Division level eight clearance required.' The rest talks about some sort of XX-121 combat stim?"; - icon = 'icons/obj/items/paper.dmi'; - icon_state = "folder_black"; - name = "Weyland classified intelligence folder"; - pixel_y = -2 - }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, -/area/lv522/oob/w_y_vault) "icT" = ( /obj/structure/machinery/light{ dir = 1 @@ -19441,38 +15740,30 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/bridge) "idk" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/east, /area/lv522/atmos/reactor_garage) "idn" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "brown" - }, +/turf/open/floor/corsat/brown, /area/lv522/atmos/east_reactor/west) "idq" = ( -/obj/structure/machinery/power/apc/weak{ - dir = 1 +/obj/structure/platform{ + dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "plate" +/obj/structure/stairs/perspective{ + dir = 1; + icon_state = "p_stair_full" }, -/area/lv522/atmos/east_reactor) +/turf/open/gm/river, +/area/lv522/atmos/sewer) "idt" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan2" - }, +/turf/open/floor/strata/cyan2/east, /area/lv522/indoors/a_block/medical) "idH" = ( /obj/item/device/flashlight/flare/on, @@ -19498,9 +15789,7 @@ /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/colony_streets/south_west_street) "iel" = ( /obj/structure/blocker/invisible_wall, @@ -19510,14 +15799,13 @@ /turf/closed/wall/solaris/reinforced/hull/lv522, /area/lv522/oob) "ier" = ( -/obj/structure/bed/chair/comfy{ - dir = 1 - }, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "brown" +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 }, -/area/lv522/atmos/east_reactor) +/turf/open/floor/prison/floor_plate, +/area/lv522/atmos/sewer) "ieE" = ( /obj/item/ammo_magazine/rifle/heap{ current_rounds = 0 @@ -19530,9 +15818,7 @@ pixel_x = -10; pixel_y = 4 }, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/lv522/outdoors/colony_streets/north_street) "ieW" = ( /obj/structure/prop/invuln/ice_prefab/trim{ @@ -19562,28 +15848,23 @@ /turf/open/floor/plating, /area/lv522/landing_zone_forecon/UD6_Tornado) "ifh" = ( -/obj/structure/prop/invuln/overhead/flammable_pipe/fly{ - dir = 1; - pixel_y = 6 - }, -/turf/open/floor/corsat{ - icon_state = "plate" +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_x = 1; + pixel_y = 1 }, -/area/lv522/atmos/east_reactor) +/turf/open/floor/whiteyellowfull/east, +/area/lv522/oob/w_y_vault) "ifi" = ( /obj/structure/cargo_container/hd/left/alt, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/north_command_centre) "ifw" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/prop/almayer/computer/PC{ pixel_y = 6 }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/security) "ifx" = ( /obj/structure/surface/rack, @@ -19607,14 +15888,12 @@ /turf/open/auto_turf/shale/layer1, /area/lv522/outdoors/colony_streets/north_east_street) "igp" = ( -/obj/structure/bed/chair/comfy{ - dir = 1 - }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "brown" +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 }, -/area/lv522/atmos/east_reactor) +/turf/open/floor/whiteyellowfull/east, +/area/lv522/oob/w_y_vault) "igv" = ( /obj/structure/desertdam/decals/road_edge{ icon_state = "road_edge_decal3"; @@ -19629,27 +15908,20 @@ /turf/open/floor/wood, /area/lv522/indoors/a_block/fitness/glass) "igA" = ( -/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/obj/structure/reagent_dispensers/water_cooler/stacks{ - density = 0; - pixel_y = 24 - }, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "brown" +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + layer = 2.5; + pixel_x = -1; + pixel_y = 1 }, -/area/lv522/atmos/east_reactor) +/turf/open/floor/whiteyellowfull/east, +/area/lv522/oob/w_y_vault) "igL" = ( /obj/structure/machinery/disposal, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/b_block/hydro) "igT" = ( -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/lv522/outdoors/colony_streets/east_central_street) "iha" = ( /obj/structure/surface/table/almayer, @@ -19661,30 +15933,20 @@ pixel_y = 9 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/lv522/indoors/a_block/kitchen) "ihd" = ( /obj/item/stack/medical/bruise_pack, -/turf/open/floor/prison{ - icon_state = "blue" - }, +/turf/open/floor/prison/blue, /area/lv522/indoors/a_block/hallway) "ihf" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/southeast, /area/lv522/atmos/east_reactor/south) "ihs" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/north, /area/lv522/indoors/a_block/dorms) "ihy" = ( /obj/structure/barricade/deployable, @@ -19699,9 +15961,7 @@ icon_state = "N"; pixel_y = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/colony_streets/north_west_street) "iiC" = ( /obj/structure/surface/table/almayer, @@ -19721,9 +15981,7 @@ pixel_x = -7; pixel_y = -2 }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/security) "iiE" = ( /obj/structure/stairs/perspective{ @@ -19736,9 +15994,7 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/shiva{ - icon_state = "radiator_tile2" - }, +/turf/open/floor/shiva/radiator_tile2, /area/lv522/indoors/a_block/bridges) "iiV" = ( /obj/effect/decal/warning_stripes{ @@ -19763,10 +16019,7 @@ /obj/structure/machinery/space_heater/radiator/red{ dir = 4 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/lv522/indoors/a_block/dorms) "ijE" = ( /obj/structure/barricade/wooden{ @@ -19774,26 +16027,18 @@ pixel_y = 7 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/corpo/glass) "ijJ" = ( /obj/structure/machinery/light{ dir = 4 }, /obj/structure/machinery/disposal, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/corpo/glass) "ijO" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/east_reactor) "ijR" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -19803,7 +16048,6 @@ /area/lv522/indoors/c_block/mining) "ikb" = ( /obj/structure/surface/rack, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/plating, /area/lv522/landing_zone_1/tunnel) "ike" = ( @@ -19815,23 +16059,17 @@ phone_id = "Colony Bar & Grill"; pixel_x = -16 }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/lv522/indoors/b_block/bar) "ikr" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/cargo_intake) "ikw" = ( /obj/item/stack/sheet/metal, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/lv522/outdoors/colony_streets/north_east_street) "ikT" = ( /obj/structure/window_frame/strata, @@ -19839,9 +16077,7 @@ icon_state = "medium" }, /obj/structure/curtain/red, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/c_block/t_comm) "ikZ" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -19861,9 +16097,7 @@ id = "LV_522_Hydro-Lockdown"; name = "\improper Storm Shutters" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/b_block/hydro) "ilK" = ( /obj/item/stack/sheet/metal, @@ -19871,10 +16105,7 @@ /area/lv522/outdoors/nw_rockies) "ilR" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/north, /area/lv522/indoors/a_block/admin) "ilU" = ( /obj/structure/prop/invuln{ @@ -19892,34 +16123,25 @@ id = "LV_522_Hydro-Lockdown"; name = "\improper Storm Shutters" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/b_block/bridge) "img" = ( /obj/effect/landmark/objective_landmark/medium, /obj/effect/spawner/gibspawner/xeno, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/atmos/cargo_intake) "imh" = ( /obj/structure/barricade/handrail/strata{ dir = 8 }, /obj/structure/machinery/light, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/c_block/mining) "imJ" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/a_block/bridges/dorms_fitness) "imT" = ( /obj/structure/stairs/perspective{ @@ -19935,11 +16157,7 @@ pixel_y = 6 }, /obj/item/tool/pen/blue/clicky, -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/landing_zone_1/ceiling) "inp" = ( /obj/item/prop/colony/used_flare, @@ -19954,9 +16172,7 @@ /turf/open/floor/prison, /area/lv522/indoors/a_block/dorms) "inU" = ( -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/lv522/outdoors/n_rockies) "iod" = ( /obj/structure/cargo_container/ferret/mid, @@ -19968,25 +16184,21 @@ /area/lv522/outdoors/nw_rockies) "ioD" = ( /obj/structure/prop/structure_lattice, -/obj/structure/platform, -/turf/open/asphalt/cement{ - icon_state = "cement4" +/obj/structure/stairs/perspective{ + dir = 1; + icon_state = "p_stair_full" }, +/turf/open/asphalt/cement/cement4, /area/lv522/outdoors/colony_streets/north_east_street) "ioT" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/lv522/indoors/c_block/t_comm) "ipf" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/item/tool/weldingtool/simple, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/lv522/indoors/a_block/dorm_north) "ipw" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -20018,35 +16230,14 @@ dir = 8 }, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/lv522/indoors/toilet) -"ipH" = ( -/obj/structure/surface/table/almayer, -/obj/item/stack/sheet/mineral/gold{ - amount = 60; - pixel_y = 6 - }, -/obj/item/stack/sheet/mineral/gold{ - amount = 60; - pixel_y = 12 - }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, -/area/lv522/oob/w_y_vault) "ipN" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/east, /area/lv522/indoors/a_block/hallway) "iqa" = ( /obj/structure/bed/chair/comfy{ @@ -20063,17 +16254,12 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/bridges) "iqt" = ( /obj/effect/decal/cleanable/dirt, /obj/item/prop/colony/used_flare, -/turf/open/floor/prison{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/east, /area/lv522/indoors/a_block/admin) "iqw" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -20085,9 +16271,7 @@ dir = 4 }, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/south) "iqQ" = ( /obj/structure/prop/invuln/ice_prefab{ @@ -20109,16 +16293,12 @@ /area/lv522/landing_zone_2) "iqZ" = ( /obj/structure/machinery/light, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/kitchen/glass) "irs" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/cobweb2, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/casino) "irH" = ( /obj/structure/surface/table/woodentable/fancy, @@ -20128,15 +16308,12 @@ pixel_y = 17 }, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/lv522/indoors/b_block/bar) "irR" = ( /obj/structure/platform_decoration{ dir = 4 }, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/asphalt/cement, /area/lv522/outdoors/colony_streets/south_west_street) "isa" = ( @@ -20148,16 +16325,11 @@ icon_state = "E"; pixel_x = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/colony_streets/north_west_street) "iso" = ( /obj/structure/cargo_container/lockmart/left, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/atmos/cargo_intake) "iss" = ( /obj/item/prop/alien/hugger, @@ -20169,18 +16341,14 @@ dir = 8; id = "cargo_container" }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/cargo_intake) "isA" = ( /obj/structure/window/framed/strata/reinforced, /obj/structure/machinery/door/poddoor/shutters/almayer{ id = "Sec-Kitchen-Lockdown" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/kitchen/glass) "isF" = ( /obj/structure/machinery/conveyor{ @@ -20190,60 +16358,32 @@ /obj/structure/barricade/handrail{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/cargo_intake) -"isG" = ( -/obj/structure/largecrate/random/barrel, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/lv522/indoors/lone_buildings/storage_blocks) "isL" = ( -/obj/structure/surface/table/almayer, -/obj/item/spacecash/c1000, -/obj/item/spacecash/c1000, -/obj/item/spacecash/c1000, -/obj/item/spacecash/c1000, -/obj/item/spacecash/c1000, -/obj/item/spacecash/c1000, -/obj/item/spacecash/c1000, -/obj/item/spacecash/c1000, -/obj/item/spacecash/c1000, -/obj/item/spacecash/c1000, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" +/obj/structure/machinery/light{ + dir = 8 }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/oob/w_y_vault) "iti" = ( /obj/structure/machinery/power/monitor{ name = "Main Power Grid Monitoring" }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/cargo_intake) "itl" = ( /obj/effect/decal/cleanable/blood/drip, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/corpo/glass) "itp" = ( /obj/structure/pipes/standard/manifold/fourway/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/cargo_intake) "its" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/dorms) "itz" = ( /obj/structure/largecrate/random/barrel/white, @@ -20255,9 +16395,7 @@ /area/lv522/atmos/cargo_intake) "itE" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/strata{ - icon_state = "white_cyan3" - }, +/turf/open/floor/strata/white_cyan3, /area/lv522/indoors/a_block/medical/glass) "itG" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -20279,18 +16417,14 @@ /obj/structure/machinery/microwave{ pixel_y = 18 }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/lone_buildings/chunk) "iup" = ( /obj/structure/machinery/space_heater/radiator/red{ dir = 4; pixel_y = 7 }, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/cargo) "iuv" = ( /obj/structure/prop/invuln/ice_prefab{ @@ -20301,40 +16435,28 @@ "iuy" = ( /obj/effect/decal/cleanable/dirt, /obj/item/prop/colony/used_flare, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/north, /area/lv522/indoors/a_block/hallway) "iuC" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "brown" - }, +/turf/open/floor/corsat/brown, /area/lv522/atmos/reactor_garage) "iuK" = ( /obj/effect/landmark/survivor_spawner, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 9; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/northwest, /area/lv522/indoors/a_block/admin) "iuW" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/north, /area/lv522/indoors/a_block/admin) "ivb" = ( /obj/structure/machinery/camera/autoname, /obj/structure/machinery/light/small{ dir = 1 }, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/plating, /area/lv522/landing_zone_1/tunnel) "ivj" = ( @@ -20342,9 +16464,7 @@ dir = 9; icon_state = "p_stair_full" }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "ivk" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -20368,27 +16488,19 @@ /obj/effect/decal/cleanable/blood/xeno, /turf/open/auto_turf/shale/layer1, /area/lv522/outdoors/nw_rockies) -"ivK" = ( -/turf/closed/wall/strata_outpost/reinforced/hull, -/area/lv522/indoors/lone_buildings/engineering) "ivN" = ( /obj/structure/surface/table/almayer, -/obj/structure/machinery/computer/cameras/wooden_tv/prop{ +/obj/structure/machinery/computer/cameras/wooden_tv/broadcast{ pixel_y = 8 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "iwb" = ( /obj/structure/stairs/perspective{ dir = 6; icon_state = "p_stair_full" }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/hallway) "iwt" = ( /obj/structure/barricade/deployable, @@ -20410,9 +16522,7 @@ /area/lv522/indoors/c_block/cargo) "iwJ" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/engidoor, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/command_centre) "iwV" = ( /obj/structure/prop/ice_colony/ground_wire, @@ -20427,16 +16537,12 @@ /area/lv522/outdoors/colony_streets/south_east_street) "ixf" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/command_centre) "ixs" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/a_block/corpo/glass) "ixD" = ( /turf/open/floor/corsat, @@ -20460,94 +16566,69 @@ "ixV" = ( /obj/effect/decal/cleanable/blood/xeno, /turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "ixW" = ( /obj/structure/stairs/perspective{ dir = 8; icon_state = "p_stair_full" }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/admin) "iyl" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/east, /area/lv522/atmos/cargo_intake) "iyq" = ( /obj/structure/machinery/vending/coffee, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/cargo_intake) "iyt" = ( /obj/structure/stairs/perspective{ dir = 6; icon_state = "p_stair_full" }, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/lv522/outdoors/colony_streets/central_streets) "iyx" = ( /obj/item/stack/rods, /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/a_block/admin) "iyC" = ( /obj/structure/machinery/vending/cigarette/colony, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/cargo_intake) "iyE" = ( /obj/structure/largecrate/random, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/reactor_garage) "iyQ" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/floor/corsat{ - icon_state = "brown" - }, +/turf/open/floor/corsat/brown, /area/lv522/atmos/east_reactor/south) "iyS" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/corsat{ - icon_state = "brown" - }, +/turf/open/floor/corsat/brown, /area/lv522/atmos/reactor_garage) "iyT" = ( /obj/structure/platform_decoration, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/lv522/indoors/b_block/bridge) "izb" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/outdoors/colony_streets/north_street) "izj" = ( /obj/structure/prop/ice_colony/dense/planter_box{ @@ -20556,17 +16637,12 @@ /obj/structure/flora/bush/ausbushes/reedbush{ pixel_y = 11 }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/kitchen) "izn" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv522/indoors/a_block/corpo/glass) "izp" = ( /obj/structure/surface/table/almayer, @@ -20576,10 +16652,7 @@ }, /obj/effect/landmark/objective_landmark/close, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/lv522/indoors/lone_buildings/engineering) "izr" = ( /obj/structure/platform/stair_cut, @@ -20587,9 +16660,7 @@ dir = 8; icon_state = "p_stair_full" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/c_block/garage) "izz" = ( /obj/effect/decal/cleanable/greenglow, @@ -20601,16 +16672,11 @@ }, /obj/effect/decal/cleanable/dirt, /mob/living/simple_animal/mouse, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/corpo) "izY" = ( /obj/structure/machinery/vending/cola, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/cargo_intake) "iAv" = ( /turf/closed/wall/strata_outpost/reinforced, @@ -20627,9 +16693,7 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/mining) "iAZ" = ( /obj/structure/pipes/standard/manifold/hidden/green, @@ -20640,16 +16704,12 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles, /area/lv522/indoors/c_block/mining) "iBl" = ( /obj/structure/largecrate/random, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/landing_zone_2/ceiling) "iBo" = ( /obj/structure/surface/rack, @@ -20657,9 +16717,7 @@ /obj/item/clothing/under/overalls, /obj/item/clothing/under/overalls, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/mining) "iBr" = ( /obj/structure/bed/chair/comfy{ @@ -20670,25 +16728,19 @@ /area/lv522/indoors/a_block/admin) "iBs" = ( /obj/structure/machinery/vending/snack/packaged, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/cargo_intake) "iBI" = ( /obj/structure/prop/server_equipment/yutani_server{ density = 0; pixel_y = 16 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/south) "iBQ" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/bed/chair, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/c_block/t_comm) "iBY" = ( /obj/structure/prop/invuln/ice_prefab{ @@ -20713,24 +16765,18 @@ /obj/structure/window/reinforced{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/south) "iCC" = ( /obj/effect/landmark/survivor_spawner, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/a_block/admin) "iCR" = ( /obj/structure/barricade/wooden{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/kitchen/glass) "iCS" = ( /obj/item/stack/sheet/metal, @@ -20741,15 +16787,11 @@ /obj/structure/machinery/space_heater/radiator/red{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "iDg" = ( /obj/structure/surface/table/almayer, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/south) "iDC" = ( /obj/item/clothing/head/helmet/marine/grenadier{ @@ -20759,9 +16801,7 @@ pixel_x = 3; pixel_y = 13 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/colony_streets/north_street) "iDD" = ( /obj/item/stack/tile/plasteel{ @@ -20779,47 +16819,31 @@ /turf/open/floor/prison, /area/lv522/outdoors/colony_streets/windbreaker/observation) "iEn" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/north, /area/lv522/atmos/reactor_garage) "iEq" = ( /obj/structure/cargo_container/lockmart/mid, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/atmos/cargo_intake) "iFk" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/north, /area/lv522/atmos/east_reactor/south) "iFB" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/prop/almayer/computer/PC, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/south) "iFN" = ( /obj/item/explosive/mine/active, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/outdoors/colony_streets/north_east_street) "iFO" = ( /obj/structure/surface/rack, /obj/item/clothing/under/colonist, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms/glass) "iFV" = ( /obj/structure/surface/table/almayer, @@ -20827,25 +16851,35 @@ pixel_y = 5 }, /obj/item/tool/pen/blue/clicky, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/obj/effect/landmark/structure_spawner/setup/distress/xeno_nest, +/obj/effect/landmark/xeno_spawn, +/obj/effect/landmark/corpsespawner/colonist/burst, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/south) "iGc" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/cargo_intake) +"iGk" = ( +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_left_to_right, +/area/lv522/landing_zone_forecon/UD6_Typhoon) "iGl" = ( -/obj/structure/machinery/door/airlock/almayer/engineering, -/turf/open/floor/corsat{ - icon_state = "marked" - }, -/area/lv522/atmos/east_reactor) +/obj/structure/surface/table/almayer, +/obj/item/spacecash/c1000, +/obj/item/spacecash/c1000, +/obj/item/spacecash/c1000, +/obj/item/spacecash/c1000, +/obj/item/spacecash/c1000, +/obj/item/spacecash/c1000, +/obj/item/spacecash/c1000, +/obj/item/spacecash/c1000, +/obj/item/spacecash/c1000, +/obj/item/spacecash/c1000, +/turf/open/floor/strata/white_cyan1/east, +/area/lv522/oob/w_y_vault) "iGn" = ( /obj/structure/largecrate/random/barrel{ layer = 3.2; @@ -20859,9 +16893,7 @@ /area/lv522/indoors/a_block/bridges/op_centre) "iGr" = ( /obj/structure/largecrate/random, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/landing_zone_2) "iGD" = ( /obj/structure/tunnel/maint_tunnel{ @@ -20869,16 +16901,13 @@ }, /obj/structure/machinery/light/small, /turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "iGF" = ( /obj/structure/bed/chair{ dir = 8 }, /obj/structure/pipes/vents/pump, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/corpo/glass) "iGK" = ( /obj/effect/decal/warning_stripes{ @@ -20888,19 +16917,14 @@ icon_state = "N"; pixel_y = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/cargo_intake) "iGM" = ( /obj/structure/pipes/vents/pump, /obj/structure/machinery/space_heater/radiator/red{ dir = 4 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/corpo) "iGQ" = ( /obj/structure/surface/table/almayer, @@ -20908,15 +16932,11 @@ pixel_x = 7; pixel_y = 2 }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/security) "iHg" = ( /obj/effect/landmark/survivor_spawner, -/turf/open/floor/prison{ - icon_state = "blue" - }, +/turf/open/floor/prison/blue, /area/lv522/indoors/a_block/admin) "iHl" = ( /obj/structure/surface/table/reinforced/prison, @@ -20931,9 +16951,7 @@ icon_state = "alert:2"; name = "inventory computer" }, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/casino) "iHw" = ( /obj/structure/prop/invuln/minecart_tracks{ @@ -20942,9 +16960,7 @@ /obj/structure/prop/invuln/minecart_tracks/bumper{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/indoors/c_block/mining) "iHD" = ( /obj/item/prop/alien/hugger, @@ -20962,7 +16978,6 @@ pixel_x = -6; pixel_y = 6 }, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/plating, /area/lv522/landing_zone_1/tunnel) "iIs" = ( @@ -20971,9 +16986,7 @@ /area/lv522/indoors/a_block/admin) "iIt" = ( /obj/structure/surface/table/almayer, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/filt) "iIw" = ( /obj/structure/stairs/perspective{ @@ -20987,10 +17000,7 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/corpo/glass) "iIK" = ( /obj/structure/foamed_metal, @@ -21012,10 +17022,7 @@ /obj/item/shard{ icon_state = "medium" }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/admin) "iJu" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -21029,15 +17036,11 @@ dir = 8; req_one_access_txt = "100" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/c_block/mining) "iJA" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/west_reactor) "iJE" = ( /obj/effect/decal/cleanable/dirt, @@ -21058,17 +17061,11 @@ }, /obj/structure/pipes/vents/pump, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/lv522/indoors/a_block/dorms) "iJW" = ( /obj/structure/bed/sofa/vert/white/top, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv522/indoors/a_block/corpo/glass) "iJZ" = ( /obj/effect/decal/cleanable/blood, @@ -21085,15 +17082,10 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/east, /area/lv522/atmos/cargo_intake) "iKC" = ( -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/command_centre) "iKF" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -21102,15 +17094,10 @@ "iKJ" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/corpo/glass) "iKN" = ( -/turf/open/floor/corsat{ - icon_state = "brown" - }, +/turf/open/floor/corsat/brown, /area/lv522/atmos/command_centre) "iKY" = ( /obj/effect/decal/warning_stripes{ @@ -21124,9 +17111,7 @@ /area/lv522/outdoors/colony_streets/south_west_street) "iLc" = ( /obj/structure/closet/secure_closet/freezer/fridge/full, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/lone_buildings/chunk) "iLg" = ( /obj/structure/surface/table/reinforced/prison, @@ -21134,41 +17119,27 @@ pixel_y = 8 }, /obj/item/tool/pen/clicky, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/corpo) "iLn" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/northeast, /area/lv522/atmos/reactor_garage) "iLq" = ( /obj/structure/surface/table/almayer{ dir = 1; flipped = 1 }, -/turf/open/floor/shiva{ - icon_state = "radiator_tile2" - }, +/turf/open/floor/shiva/radiator_tile2, /area/lv522/indoors/a_block/bridges/garden_bridge) "iLC" = ( -/obj/structure/stairs/perspective{ - dir = 1; - icon_state = "p_stair_full" - }, -/obj/structure/pipes/standard/simple/hidden/green, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 4 }, -/area/lv522/indoors/b_block/hydro) +/turf/open/floor/prison, +/area/lv522/atmos/sewer) "iMv" = ( /obj/structure/reagent_dispensers/watertank, /turf/open/floor/corsat, @@ -21186,9 +17157,7 @@ /area/lv522/indoors/a_block/executive) "iMx" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_core, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/west_reactor) "iMC" = ( /obj/effect/decal/warning_stripes{ @@ -21203,26 +17172,18 @@ "iMQ" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/space_heater/radiator/red, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/lv522/outdoors/colony_streets/windbreaker/observation) "iMS" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner/north, /area/lv522/atmos/cargo_intake) "iMU" = ( /obj/structure/machinery/light{ dir = 1 }, /obj/structure/machinery/space_heater, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/lv522/indoors/lone_buildings/outdoor_bot) "iNb" = ( /obj/structure/barricade/wooden{ @@ -21234,23 +17195,15 @@ icon_state = "medium" }, /obj/structure/pipes/vents/pump, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/admin) "iNs" = ( /obj/structure/cargo_container/kelland/left, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/outdoors/colony_streets/north_east_street) "iNX" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/a_block/security/glass) "iOi" = ( /obj/structure/prop/invuln/ice_prefab{ @@ -21259,10 +17212,7 @@ /turf/open/auto_turf/sand_white/layer0, /area/lv522/outdoors/nw_rockies) "iOl" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner/east, /area/lv522/atmos/cargo_intake) "iOt" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -21270,9 +17220,7 @@ }, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, /obj/structure/machinery/light, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor) "iOw" = ( /obj/item/storage/toolbox/electrical{ @@ -21282,29 +17230,18 @@ pixel_x = -11; pixel_y = 9 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/reactor_garage) "iOx" = ( /obj/effect/landmark/xeno_spawn, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner/west, /area/lv522/atmos/east_reactor) "iOG" = ( -/turf/open/floor/corsat{ - dir = 5; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/northeast, /area/lv522/atmos/cargo_intake) "iOO" = ( /obj/structure/bed/chair/comfy, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/north, /area/lv522/atmos/cargo_intake) "iOY" = ( /obj/structure/prop/invuln/ice_prefab{ @@ -21328,10 +17265,7 @@ /area/lv522/outdoors/nw_rockies) "iPb" = ( /obj/structure/cargo_container/lockmart/right, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/atmos/cargo_intake) "iPu" = ( /obj/structure/pipes/standard/manifold/hidden/green{ @@ -21346,18 +17280,14 @@ welded = 1 }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/dorms) "iPD" = ( /obj/structure/machinery/door/poddoor/almayer/closed{ id = "West LZ Storage"; name = "Emergency Lockdown" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/lone_buildings/storage_blocks) "iPO" = ( /obj/structure/surface/table/almayer, @@ -21366,35 +17296,23 @@ /turf/open/floor/plating, /area/lv522/indoors/c_block/cargo) "iPR" = ( -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/lv522/outdoors/colony_streets/central_streets) "iPV" = ( /obj/structure/machinery/shower{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/lv522/indoors/a_block/fitness) "iPZ" = ( -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/corpo) "iQb" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/shiva{ - icon_state = "radiator_tile2" - }, +/turf/open/floor/shiva/radiator_tile2, /area/lv522/atmos/way_in_command_centre) "iQe" = ( -/turf/open/floor/corsat{ - dir = 9; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/northwest, /area/lv522/atmos/east_reactor/south) "iQo" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -21410,10 +17328,7 @@ /obj/structure/bed/chair/comfy{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/north, /area/lv522/atmos/east_reactor/south) "iQL" = ( /obj/structure/bed/bedroll{ @@ -21423,86 +17338,59 @@ /area/lv522/indoors/a_block/admin) "iQR" = ( /obj/structure/stairs/perspective{ - dir = 5; + dir = 6; icon_state = "p_stair_full" }, -/obj/structure/platform_decoration, -/turf/open/asphalt/cement, -/area/lv522/outdoors/colony_streets/east_central_street) +/turf/open/asphalt/cement/cement12, +/area/lv522/outdoors/colony_streets/south_east_street) "iRa" = ( /obj/structure/largecrate/random, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/c_block/mining) "iRl" = ( /obj/item/prop/colony/used_flare, /turf/open/floor/plating, /area/lv522/outdoors/colony_streets/north_east_street) "iRV" = ( -/obj/effect/landmark/structure_spawner/setup/distress/xeno_nest, -/obj/effect/landmark/corpsespawner/colonist/burst, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "brown" +/obj/effect/decal/cleanable/dirt, +/obj/structure/stairs/perspective{ + icon_state = "p_stair_full" }, -/area/lv522/atmos/east_reactor/south) +/turf/open/floor/plating, +/area/lv522/indoors/c_block/cargo) "iRW" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" }, /obj/effect/spawner/gibspawner/xeno, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/outdoors/colony_streets/north_street) "iRY" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/east_reactor) "iSc" = ( /obj/structure/bed/chair/comfy{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/northeast, /area/lv522/atmos/east_reactor/south) "iSf" = ( /obj/structure/pipes/standard/simple/hidden/green, /turf/open/auto_turf/shale/layer2, /area/lv522/outdoors/colony_streets/north_west_street) -"iSu" = ( -/turf/open/shuttle/dropship{ - icon_state = "rasputin8" - }, -/area/lv522/landing_zone_forecon/UD6_Tornado) -"iSx" = ( -/obj/structure/girder, -/turf/open/floor/plating, -/area/lv522/indoors/lone_buildings/storage_blocks) "iSF" = ( -/obj/structure/surface/table/almayer, -/obj/structure/prop/server_equipment/laptop/on, -/turf/open/floor/corsat{ - icon_state = "plate" - }, -/area/lv522/atmos/east_reactor) +/obj/structure/largecrate/random, +/turf/open/floor/plating, +/area/lv522/indoors/c_block/cargo) "iTb" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/prop/almayer/computer/PC{ pixel_y = 6 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/c_block/mining) "iTf" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ @@ -21517,17 +17405,37 @@ id = "Sec-Kitchen-Lockdown"; name = "\improper Storm Shutters" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/security) "iTn" = ( -/obj/structure/bed/chair/comfy, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "brown" +/obj/structure/closet/crate/freezer{ + layer = 3 }, -/area/lv522/atmos/east_reactor) +/obj/item/reagent_container/food/snacks/grown/orange, +/obj/item/reagent_container/food/snacks/grown/orange, +/obj/item/reagent_container/food/snacks/grown/orange, +/obj/item/reagent_container/food/snacks/grown/orange, +/obj/item/reagent_container/food/snacks/grown/orange, +/obj/item/reagent_container/food/snacks/grown/orange, +/obj/item/reagent_container/food/snacks/grown/orange, +/obj/item/reagent_container/food/snacks/grown/orange, +/obj/item/reagent_container/food/snacks/grown/orange, +/obj/item/reagent_container/food/snacks/grown/orange, +/obj/item/reagent_container/food/snacks/grown/orange, +/obj/item/reagent_container/food/snacks/grown/orange, +/obj/item/reagent_container/food/snacks/grown/orange, +/obj/item/reagent_container/food/snacks/grown/orange, +/obj/item/reagent_container/food/snacks/grown/orange, +/obj/item/reagent_container/food/snacks/grown/orange, +/obj/item/reagent_container/food/snacks/grown/orange, +/obj/item/reagent_container/food/snacks/grown/orange, +/obj/item/reagent_container/food/snacks/grown/orange, +/obj/item/reagent_container/food/snacks/grown/orange, +/obj/item/reagent_container/food/snacks/grown/orange, +/obj/item/reagent_container/food/snacks/grown/orange, +/obj/item/reagent_container/food/snacks/grown/orange, +/turf/open/floor/plating, +/area/lv522/indoors/c_block/cargo) "iTF" = ( /obj/item/ammo_box/magazine/m4ra/ap/empty, /obj/effect/decal/cleanable/dirt, @@ -21539,9 +17447,7 @@ /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/way_in_command_centre) "iTS" = ( /obj/structure/prop/invuln/ice_prefab{ @@ -21563,23 +17469,16 @@ pixel_x = 1; pixel_y = 2 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/way_in_command_centre) "iTY" = ( /obj/structure/surface/rack, /obj/item/clothing/suit/storage/hazardvest, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/lone_buildings/storage_blocks) "iUj" = ( /obj/item/prop/colony/used_flare, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/atmos/cargo_intake) "iUk" = ( /obj/structure/prop/dam/drill{ @@ -21591,46 +17490,30 @@ /area/lv522/outdoors/colony_streets/south_east_street) "iUo" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 6; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/southeast, /area/lv522/indoors/a_block/dorms) "iUT" = ( -/obj/structure/prop/ice_colony/ground_wire{ - dir = 8 - }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "browncorner" - }, -/area/lv522/atmos/east_reactor) +/obj/structure/machinery/squeezer, +/turf/open/floor/plating, +/area/lv522/indoors/c_block/cargo) "iUX" = ( -/obj/structure/prop/ice_colony/ground_wire{ - dir = 4 - }, -/turf/open/floor/corsat{ - icon_state = "browncorner" - }, -/area/lv522/atmos/east_reactor) +/obj/structure/platform, +/turf/open/asphalt/cement, +/area/lv522/outdoors/colony_streets/south_street) "iVe" = ( /obj/structure/stairs/perspective{ dir = 5; icon_state = "p_stair_full" }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/hallway) "iVk" = ( -/obj/structure/bed/chair/comfy, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "brown" +/obj/structure/platform_decoration{ + dir = 1 }, -/area/lv522/atmos/east_reactor) +/turf/open/asphalt/cement/cement9, +/area/lv522/outdoors/colony_streets/south_street) "iVm" = ( /obj/item/storage/backpack/marine/satchel{ desc = "It's the heavy-duty black polymer kind. Time to take out the trash!"; @@ -21646,19 +17529,12 @@ /obj/structure/machinery/sensortower{ pixel_x = 6 }, -/turf/open/floor{ - icon_state = "bcircuit" - }, +/turf/open/floor/bcircuit, /area/lv522/indoors/a_block/admin) "iVU" = ( -/obj/structure/surface/table/almayer, -/obj/structure/machinery/prop/almayer/computer/PC{ - dir = 8 - }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, -/area/lv522/atmos/east_reactor) +/obj/structure/platform_decoration, +/turf/open/asphalt/cement/cement2, +/area/lv522/outdoors/colony_streets/south_street) "iVY" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/spider/spiderling/nogrow, @@ -21667,32 +17543,23 @@ pixel_y = 26 }, /obj/effect/decal/cleanable/cobweb2, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/security) "iWc" = ( /obj/structure/filtration/machine_64x96{ icon_state = "filtration_machine_A_1" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/lv522/oob) "iWg" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/surface/table/almayer, /obj/structure/prop/server_equipment/laptop/on, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/lv522/outdoors/colony_streets/windbreaker/observation) "iWh" = ( /obj/structure/machinery/portable_atmospherics/canister/empty/oxygen, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/lv522/outdoors/colony_streets/south_street) "iWo" = ( /obj/effect/spawner/gibspawner/xeno, @@ -21704,30 +17571,20 @@ }, /obj/structure/foamed_metal, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms/glass) "iWu" = ( /obj/structure/filtration/machine_64x96{ icon_state = "filtration_machine_B_1" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/lv522/oob) "iWy" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/filt) "iWz" = ( -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan2" - }, +/turf/open/floor/strata/cyan2/east, /area/lv522/indoors/a_block/medical) "iWN" = ( /obj/structure/platform_decoration{ @@ -21740,10 +17597,7 @@ dir = 8; id = "cargo_container" }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/north, /area/lv522/atmos/cargo_intake) "iXy" = ( /obj/structure/largecrate/random/mini/med{ @@ -21756,6 +17610,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, +/obj/structure/cargo_container/wy/left, /turf/open/auto_turf/shale/layer2, /area/lv522/outdoors/w_rockies) "iXM" = ( @@ -21776,17 +17631,12 @@ /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/lv522/indoors/a_block/fitness) "iYc" = ( /obj/structure/machinery/light, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/kitchen) "iYf" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -21795,9 +17645,7 @@ /obj/structure/platform_decoration{ dir = 8 }, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/lv522/outdoors/colony_streets/north_west_street) "iYm" = ( /obj/structure/barricade/deployable, @@ -21808,10 +17656,7 @@ dir = 8; id = "cargo_container" }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner/north, /area/lv522/atmos/cargo_intake) "iYt" = ( /obj/structure/pipes/standard/manifold/hidden/green{ @@ -21825,15 +17670,11 @@ dir = 8; id = "cargo_container" }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/cargo_intake) "iYG" = ( /obj/item/stack/sandbags_empty/small_stack, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/colony_streets/north_street) "iYL" = ( /obj/structure/machinery/conveyor{ @@ -21843,9 +17684,7 @@ /obj/structure/barricade/handrail{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/cargo_intake) "iYO" = ( /obj/structure/surface/table/almayer, @@ -21859,17 +17698,13 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/security) "iZg" = ( /obj/structure/machinery/power/monitor{ name = "Main Power Grid Monitoring" }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/cargo_intake) "iZI" = ( /turf/open/floor/corsat, @@ -21880,9 +17715,7 @@ /area/lv522/atmos/way_in_command_centre) "jab" = ( /obj/structure/window/framed/strata/reinforced, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/medical) "jaq" = ( /obj/structure/platform_decoration{ @@ -21906,9 +17739,7 @@ id = "LV522CIC_1"; name = "\improper Storm Shutters" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/admin) "jaO" = ( /obj/structure/surface/table/woodentable/fancy, @@ -21942,9 +17773,7 @@ }, /obj/effect/decal/cleanable/dirt, /mob/living/simple_animal/mouse, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/lv522/indoors/a_block/fitness) "jba" = ( /obj/structure/stairs/perspective{ @@ -21955,21 +17784,17 @@ dir = 8 }, /turf/open/gm/river, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "jbd" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "jbm" = ( /obj/structure/largecrate/random, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/cargo) "jbn" = ( /obj/effect/decal/cleanable/dirt, @@ -21980,10 +17805,7 @@ /area/lv522/atmos/way_in_command_centre) "jbs" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/north, /area/lv522/atmos/cargo_intake) "jbv" = ( /obj/structure/fence{ @@ -21996,10 +17818,7 @@ /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/lv522/outdoors/colony_streets/central_streets) "jbI" = ( /obj/structure/prop/invuln/ice_prefab{ @@ -22016,35 +17835,24 @@ /obj/structure/pipes/standard/simple/visible{ dir = 6 }, -/turf/open/floor/strata{ - icon_state = "white_cyan3" - }, +/turf/open/floor/strata/white_cyan3, /area/lv522/indoors/a_block/medical/glass) "jci" = ( /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner/east, /area/lv522/atmos/cargo_intake) "jcl" = ( -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor) "jcq" = ( /obj/structure/bed/chair/comfy{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/cargo_intake) "jct" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/bridges) "jcH" = ( /obj/effect/spawner/gibspawner/human, @@ -22052,25 +17860,17 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/north, /area/lv522/indoors/a_block/dorms) "jdf" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/static_comms/net_two, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/indoors/c_block/t_comm) "jdl" = ( /obj/structure/surface/table/almayer, /obj/item/prop/alien/hugger, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/cargo_intake) "jdn" = ( /obj/effect/decal/cleanable/blood/drip, @@ -22080,95 +17880,71 @@ "jdo" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/c_block/t_comm) "jdq" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/lv522/outdoors/colony_streets/south_east_street) "jds" = ( /obj/structure/surface/table/almayer, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/cargo_intake) "jdv" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/outdoor) "jdD" = ( /obj/structure/bed/chair/comfy{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/cargo_intake) "jeb" = ( /obj/vehicle/powerloader{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/reactor_garage) "jef" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner/west, /area/lv522/atmos/east_reactor/south) "jey" = ( -/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/obj/effect/landmark/structure_spawner/setup/distress/xeno_nest, -/obj/effect/landmark/corpsespawner/colonist/burst, -/turf/open/floor/corsat{ - icon_state = "plate" - }, -/area/lv522/atmos/east_reactor/south) +/obj/structure/pipes/standard/simple/hidden/green, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/prison/greenfull/northwest, +/area/lv522/indoors/b_block/bridge) "jeD" = ( -/obj/structure/surface/table/almayer, -/obj/structure/machinery/faxmachine, -/turf/open/floor/corsat{ - icon_state = "plate" +/obj/structure/stairs/perspective{ + dir = 1; + icon_state = "p_stair_full" }, -/area/lv522/atmos/east_reactor) +/obj/structure/platform{ + dir = 4 + }, +/turf/open/asphalt/cement, +/area/lv522/outdoors/colony_streets/south_street) "jeH" = ( /obj/structure/machinery/light, /obj/structure/pipes/vents/pump, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/casino) "jeI" = ( /obj/structure/machinery/cm_vending/sorted/medical/no_access, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan3" - }, +/turf/open/floor/strata/white_cyan3/east, /area/lv522/indoors/a_block/medical/glass) "jeJ" = ( /obj/structure/machinery/disposal, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/garage) "jft" = ( -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/security) "jfx" = ( /obj/structure/filingcabinet{ @@ -22184,9 +17960,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/way_in_command_centre) "jfG" = ( /obj/item/reagent_container/food/drinks/cans/waterbottle{ @@ -22197,9 +17971,7 @@ pixel_x = -4; pixel_y = -7 }, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/lv522/indoors/a_block/dorm_north) "jfH" = ( /obj/effect/decal/warning_stripes{ @@ -22209,19 +17981,17 @@ icon_state = "E"; pixel_x = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/way_in_command_centre) "jfK" = ( -/obj/structure/surface/table/almayer, -/obj/structure/machinery/prop/almayer/computer/PC{ - dir = 1 +/obj/structure/stairs/perspective{ + icon_state = "p_stair_full" }, -/turf/open/floor/corsat{ - icon_state = "plate" +/obj/structure/platform{ + dir = 4 }, -/area/lv522/atmos/east_reactor) +/turf/open/asphalt/cement, +/area/lv522/outdoors/colony_streets/south_street) "jfO" = ( /turf/open/floor/prison, /area/lv522/indoors/a_block/kitchen/glass) @@ -22246,25 +18016,18 @@ /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/colony_streets/north_west_street) "jgI" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/closet/emcloset, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/lv522/indoors/a_block/dorm_north) "jgV" = ( /obj/structure/surface/table/almayer, /obj/effect/decal/cleanable/dirt, /obj/item/clothing/accessory/poncho, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/admin) "jhe" = ( /obj/effect/decal/warning_stripes{ @@ -22276,9 +18039,7 @@ /obj/structure/foamed_metal, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms/glass) "jhl" = ( /obj/structure/pipes/standard/manifold/fourway/hidden/green, @@ -22293,10 +18054,7 @@ dir = 4 }, /obj/structure/largecrate/random/secure, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/hallway) "jhQ" = ( /obj/effect/decal/warning_stripes{ @@ -22308,61 +18066,45 @@ /area/lv522/outdoors/colony_streets/south_east_street) "jhS" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/east, /area/lv522/atmos/east_reactor) "jhY" = ( -/obj/structure/surface/table/almayer, -/obj/item/clothing/glasses/meson, -/obj/item/prop/alien/hugger, -/turf/open/floor/corsat{ - icon_state = "plate" +/obj/structure/platform{ + dir = 4 }, -/area/lv522/atmos/east_reactor) +/turf/open/asphalt/cement, +/area/lv522/outdoors/colony_streets/south_west_street) "jic" = ( -/obj/structure/surface/table/almayer, -/obj/item/reagent_container/food/snacks/cheeseburger{ - pixel_y = 5 - }, -/obj/item/trash/burger, -/turf/open/floor/corsat{ - icon_state = "plate" +/obj/structure/platform{ + dir = 1 }, -/area/lv522/atmos/east_reactor) -"jig" = ( -/obj/structure/surface/table/almayer, -/obj/item/clothing/head/hardhat{ - pixel_x = -7; - pixel_y = 8 +/obj/structure/machinery/colony_floodlight, +/obj/structure/platform{ + dir = 8 }, -/obj/item/clothing/head/hardhat{ - pixel_x = 8; - pixel_y = 14 +/obj/structure/platform_decoration{ + dir = 5 }, -/turf/open/floor/corsat{ - icon_state = "plate" +/turf/open/asphalt/cement, +/area/lv522/outdoors/colony_streets/south_street) +"jig" = ( +/obj/structure/platform_decoration{ + dir = 4 }, -/area/lv522/atmos/east_reactor) +/turf/open/asphalt/cement/cement12, +/area/lv522/outdoors/colony_streets/south_street) "jin" = ( /obj/structure/filtration/machine_96x96/indestructible{ icon_state = "sedimentation_A_1"; layer = 3.1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/lv522/oob) "jis" = ( /obj/structure/filtration/machine_64x128{ icon_state = "filtration_1" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/lv522/oob) "jix" = ( /obj/structure/platform_decoration{ @@ -22374,9 +18116,7 @@ /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/colony_streets/south_east_street) "jiF" = ( /obj/structure/stairs/perspective{ @@ -22384,10 +18124,7 @@ icon_state = "p_stair_full" }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/b_block/bridge) "jiP" = ( /obj/structure/surface/table/almayer, @@ -22415,10 +18152,7 @@ icon_state = "S" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/lv522/outdoors/nw_rockies) "jiY" = ( /obj/effect/decal/cleanable/blood/oil, @@ -22429,27 +18163,19 @@ /area/lv522/atmos/cargo_intake) "jjg" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/atmos/cargo_intake) "jjj" = ( /obj/structure/machinery/door/poddoor/shutters/almayer{ id = "Reactor_garage_2" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/reactor_garage) "jjl" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/north, /area/lv522/atmos/east_reactor/south) "jjo" = ( /obj/structure/surface/table/almayer, @@ -22464,18 +18190,14 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/cargo_intake) "jjq" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/power/apc/weak{ dir = 1 }, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/lv522/indoors/a_block/dorm_north) "jjt" = ( /obj/structure/filingcabinet/chestdrawer{ @@ -22492,10 +18214,7 @@ icon_state = "medium" }, /obj/effect/landmark/survivor_spawner, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/admin) "jjG" = ( /obj/structure/prop/ice_colony/ground_wire, @@ -22512,16 +18231,12 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/cargo_intake) "jjV" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_nest, /obj/effect/landmark/xeno_spawn, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/south) "jjW" = ( /obj/structure/machinery/door/poddoor/shutters/almayer{ @@ -22531,9 +18246,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/reactor_garage) "jkp" = ( /obj/structure/fence{ @@ -22546,10 +18259,7 @@ /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/lv522/outdoors/colony_streets/south_west_street) "jkC" = ( /obj/structure/pipes/vents/pump, @@ -22567,21 +18277,8 @@ /obj/item/shard{ icon_state = "medium" }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/lv522/indoors/lone_buildings/engineering) -"jkO" = ( -/obj/structure/platform{ - dir = 4 - }, -/obj/structure/platform, -/obj/structure/platform_decoration{ - dir = 6 - }, -/turf/open/asphalt/cement, -/area/lv522/outdoors/n_rockies) "jlc" = ( /obj/structure/surface/rack, /obj/item/tool/minihoe{ @@ -22600,16 +18297,11 @@ pixel_y = -2 }, /obj/item/tool/wirecutters/clippers, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/b_block/bridge) "jlh" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/south) "jll" = ( /obj/structure/machinery/light{ @@ -22621,14 +18313,10 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor) "jlr" = ( -/turf/open/floor/coagulation{ - icon_state = "0,8" - }, +/turf/open/floor/coagulation/icon0_8, /area/lv522/oob) "jlu" = ( /obj/structure/surface/table/almayer, @@ -22636,31 +18324,21 @@ dir = 1; pixel_y = 5 }, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/cargo) "jmd" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/surface/rack, /obj/item/weapon/gun/revolver/cmb, /obj/item/ammo_magazine/revolver/cmb, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/security) "jmi" = ( -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/medical) "jmv" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/b_block/bridge) "jmz" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -22687,9 +18365,7 @@ /area/lv522/outdoors/w_rockies) "jmU" = ( /obj/structure/barricade/handrail, -/turf/open/floor/coagulation{ - icon_state = "4,8" - }, +/turf/open/floor/coagulation/icon4_8, /area/lv522/oob) "jmW" = ( /obj/item/prop/colony/used_flare, @@ -22700,33 +18376,23 @@ icon_state = "E"; pixel_x = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/cargo_intake) "jmX" = ( -/turf/open/floor/corsat{ - icon_state = "brown" - }, +/turf/open/floor/corsat/brown, /area/lv522/atmos/reactor_garage) "jnb" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/hallway) "jnd" = ( /obj/structure/machinery/body_scanconsole, /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/medical) "jnk" = ( /obj/structure/bed/chair{ @@ -22735,19 +18401,14 @@ /turf/open/floor/prison, /area/lv522/indoors/a_block/dorms/glass) "jnp" = ( -/turf/open/floor/coagulation{ - icon_state = "8,8" - }, +/turf/open/floor/coagulation/icon8_8, /area/lv522/oob) "jnr" = ( /obj/structure/machinery/light{ dir = 4 }, /obj/structure/machinery/floodlight, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/indoors/lone_buildings/storage_blocks) "jnB" = ( /obj/structure/barricade/handrail{ @@ -22762,9 +18423,7 @@ /obj/effect/decal/cleanable/dirt, /obj/item/stack/sheet/metal, /obj/effect/decal/cleanable/generic, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/lv522/outdoors/colony_streets/windbreaker/observation) "jnF" = ( /obj/effect/decal/warning_stripes{ @@ -22776,10 +18435,7 @@ "joe" = ( /obj/structure/bed/chair, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/a_block/fitness) "jom" = ( /obj/structure/prop/invuln/ice_prefab{ @@ -22793,9 +18449,7 @@ /area/lv522/outdoors/colony_streets/central_streets) "joJ" = ( /obj/structure/window/framed/strata/reinforced, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/reactor_garage) "joK" = ( /obj/structure/window/reinforced{ @@ -22814,10 +18468,7 @@ pixel_x = -8; pixel_y = 16 }, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/northeast, /area/lv522/oob) "joL" = ( /obj/structure/platform{ @@ -22831,19 +18482,14 @@ phone_id = "Colony Garage"; pixel_x = -16 }, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/garage) "jpa" = ( /obj/structure/bedsheetbin{ pixel_y = 7 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/a_block/fitness) "jpc" = ( /obj/effect/spawner/gibspawner/xeno, @@ -22852,9 +18498,7 @@ "jpm" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /obj/structure/machinery/light, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/south) "jpx" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -22867,35 +18511,24 @@ dir = 4 }, /mob/living/simple_animal/corgi/puppy, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/c_block/mining) "jqa" = ( /obj/structure/ore_box, /turf/open/floor/prison, /area/lv522/atmos/cargo_intake) "jqr" = ( -/turf/open/asphalt/cement{ - icon_state = "cement9" - }, +/turf/open/asphalt/cement/cement9, /area/lv522/outdoors/colony_streets/south_east_street) "jqz" = ( /obj/structure/largecrate/random, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/cargo_intake) "jqF" = ( -/turf/open/asphalt/cement{ - icon_state = "cement9" - }, +/turf/open/asphalt/cement/cement9, /area/lv522/outdoors/colony_streets/north_west_street) "jqL" = ( -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/reactor_garage) "jqO" = ( /obj/structure/platform{ @@ -22912,16 +18545,12 @@ /area/lv522/outdoors/colony_streets/central_streets) "jri" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/west) "jrn" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/generic, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/cargo) "jro" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ @@ -22936,9 +18565,7 @@ id = "LV522CIC_1"; name = "\improper Storm Shutters" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/admin) "jru" = ( /obj/structure/platform{ @@ -22952,9 +18579,7 @@ pixel_y = 16 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/kitchen/glass) "jrD" = ( /obj/structure/surface/table/almayer, @@ -22964,9 +18589,7 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/lv522/indoors/a_block/kitchen) "jrE" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ @@ -22976,9 +18599,7 @@ id = "LV_522_Hydro-Lockdown"; name = "\improper Storm Shutters" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/b_block/hydro) "jrJ" = ( /obj/effect/decal/cleanable/dirt, @@ -22991,10 +18612,7 @@ pixel_x = 3; pixel_y = 8 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/lv522/indoors/c_block/t_comm) "jrL" = ( /obj/item/stack/sheet/metal, @@ -23004,9 +18622,7 @@ /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/colony_streets/north_west_street) "jrT" = ( /obj/effect/decal/cleanable/blood/xeno, @@ -23017,9 +18633,7 @@ name = "\improper A-Block Dorms And Office Airlock" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/dorms) "jsy" = ( /obj/structure/machinery/conveyor{ @@ -23027,9 +18641,7 @@ id = "cargo_container" }, /obj/structure/largecrate/random, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/cargo_intake) "jsD" = ( /obj/effect/decal/warning_stripes{ @@ -23052,9 +18664,7 @@ /area/lv522/atmos/cargo_intake) "jtf" = ( /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/cargo_intake) "jtg" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -23063,10 +18673,7 @@ /turf/open/floor/plating, /area/lv522/indoors/c_block/cargo) "jth" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/north, /area/lv522/atmos/east_reactor/west) "jtu" = ( /obj/structure/barricade/deployable, @@ -23077,25 +18684,18 @@ /area/lv522/atmos/cargo_intake) "jtQ" = ( /obj/structure/prop/ice_colony/ground_wire, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/cargo_intake) "jtZ" = ( /obj/structure/surface/table/reinforced/prison, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/corpo/glass) "jud" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 1 }, -/turf/open/floor{ - icon_state = "bcircuit" - }, +/turf/open/floor/bcircuit, /area/lv522/indoors/a_block/admin) "jue" = ( /obj/structure/prop/ice_colony/ground_wire, @@ -23110,9 +18710,7 @@ pixel_x = -10; pixel_y = 11 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/west) "jus" = ( /obj/structure/prop/invuln/ice_prefab/trim{ @@ -23126,18 +18724,12 @@ /area/lv522/outdoors/nw_rockies) "juw" = ( /obj/item/prop/colony/used_flare, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/north, /area/lv522/atmos/east_reactor/south) "juQ" = ( /obj/effect/decal/cleanable/blood/xeno, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/lv522/indoors/b_block/hydro) "juY" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -23155,9 +18747,7 @@ /area/lv522/atmos/cargo_intake) "jvh" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/security) "jvk" = ( /obj/structure/surface/table/woodentable/fancy, @@ -23190,20 +18780,38 @@ }, /turf/open/floor/plating/plating_catwalk/prison, /area/lv522/indoors/a_block/admin) +"jvF" = ( +/obj/structure/machinery/computer/cameras{ + desc = "The flight controls for a UD6 Dropship. these controls look pretty banged up, and there's some blood covering the screen.."; + name = "\improper 'Typhoon' flight controls"; + network = null; + pixel_y = 21 + }, +/obj/structure/bed/chair/dropship/pilot{ + dir = 1 + }, +/obj/structure/machinery/light/double{ + dir = 1; + layer = 2.9; + pixel_y = 9 + }, +/obj/item/prop/almayer/flight_recorder{ + layer = 2.9; + pixel_x = -9; + pixel_y = 4 + }, +/turf/open/shuttle/dropship/can_surgery/medium_grey_single_wide_up_to_down, +/area/lv522/landing_zone_forecon/UD6_Typhoon) "jvG" = ( /obj/structure/machinery/vending/cola, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms/glass) "jwx" = ( /obj/structure/reagent_dispensers/fueltank/gas, /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/reactor_garage) "jwM" = ( /obj/effect/decal/cleanable/dirt, @@ -23216,15 +18824,11 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/c_block/garage) "jwT" = ( /obj/item/tool/wet_sign, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/cargo_intake) "jwV" = ( /obj/structure/filingcabinet{ @@ -23247,9 +18851,7 @@ /obj/item/tool/mop{ pixel_y = 6 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/cargo_intake) "jxz" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -23260,9 +18862,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/c_block/mining) "jxD" = ( /obj/structure/platform, @@ -23276,7 +18876,6 @@ /area/lv522/landing_zone_2) "jxF" = ( /obj/structure/largecrate/guns/russian, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/plating, /area/lv522/landing_zone_1/tunnel) "jxI" = ( @@ -23293,9 +18892,7 @@ id = "Sec-Kitchen-Lockdown"; name = "\improper Storm Shutters" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/kitchen) "jyf" = ( /obj/structure/machinery/colony_floodlight{ @@ -23307,17 +18904,11 @@ "jyw" = ( /obj/structure/pipes/vents/pump, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv522/indoors/a_block/corpo) "jyx" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/corpo) "jyC" = ( /obj/structure/machinery/light{ @@ -23325,18 +18916,14 @@ }, /obj/structure/pipes/vents/pump, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/a_block/hallway) "jyF" = ( /obj/structure/machinery/light{ dir = 8 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "jyM" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -23353,9 +18940,7 @@ /obj/structure/platform{ dir = 1 }, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/lv522/outdoors/colony_streets/central_streets) "jzB" = ( /obj/effect/decal/cleanable/dirt, @@ -23369,9 +18954,7 @@ pixel_x = 1 }, /obj/structure/machinery/light, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/way_in_command_centre) "jzC" = ( /obj/effect/decal/cleanable/dirt, @@ -23448,12 +19031,19 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating/plating_catwalk/prison, /area/lv522/indoors/a_block/dorm_north) -"jBm" = ( -/obj/structure/machinery/vending/hydronutrients, -/turf/open/floor/prison{ +"jAX" = ( +/obj/structure/machinery/light/double{ dir = 4; - icon_state = "greenfull" + pixel_y = -5 }, +/obj/structure/bed/chair/dropship/passenger{ + dir = 8 + }, +/turf/open/shuttle/dropship/can_surgery/medium_grey_single_wide_up_to_down, +/area/lv522/landing_zone_forecon/UD6_Tornado) +"jBm" = ( +/obj/structure/machinery/vending/hydronutrients, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/b_block/bridge) "jBr" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -23465,28 +19055,20 @@ pixel_x = 1; pixel_y = -1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/way_in_command_centre) "jBs" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/a_block/fitness/glass) "jBu" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/power/apc/weak{ dir = 1 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/lv522/indoors/lone_buildings/outdoor_bot) "jBw" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -23503,10 +19085,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/east, /area/lv522/indoors/a_block/admin) "jBR" = ( /obj/structure/bed/chair{ @@ -23525,9 +19104,7 @@ /area/lv522/outdoors/colony_streets/north_street) "jBY" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/prison{ - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe, /area/lv522/atmos/way_in_command_centre) "jCb" = ( /obj/structure/prop/invuln/ice_prefab{ @@ -23549,37 +19126,27 @@ /area/lv522/outdoors/nw_rockies) "jCh" = ( /obj/structure/machinery/door/airlock/almayer/maint, -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/landing_zone_1/tunnel) "jCq" = ( /obj/structure/bed/chair/comfy{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/cargo_intake) "jCQ" = ( -/obj/effect/landmark/structure_spawner/setup/distress/xeno_nest, -/obj/effect/landmark/xeno_spawn, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "browncorner" +/obj/structure/platform_decoration{ + dir = 8 }, -/area/lv522/atmos/east_reactor/south) +/turf/open/asphalt/cement/cement12, +/area/lv522/outdoors/colony_streets/south_street) "jCS" = ( /obj/item/trash/wy_chips_pepper, /obj/structure/machinery/light{ dir = 8 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/admin) "jCU" = ( /obj/structure/stairs/perspective{ @@ -23594,17 +19161,12 @@ pixel_y = 8 }, /obj/effect/spawner/gibspawner/xeno, -/turf/open/floor/plating{ - icon_state = "platingdmg1" - }, +/turf/open/floor/plating/platingdmg1, /area/lv522/indoors/a_block/admin) "jCY" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/vending/coffee, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/hallway) "jDc" = ( /obj/structure/stairs/perspective{ @@ -23614,9 +19176,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/lv522/outdoors/colony_streets/north_west_street) "jDy" = ( /obj/structure/stairs/perspective{ @@ -23626,9 +19186,7 @@ /obj/structure/platform/stair_cut{ icon_state = "platform_stair_alt" }, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/lv522/outdoors/colony_streets/north_street) "jDA" = ( /obj/structure/pipes/standard/manifold/hidden/green{ @@ -23647,9 +19205,6 @@ density = 0; pixel_y = 16 }, -/obj/structure/platform_decoration{ - dir = 4 - }, /turf/open/gm/river, /area/lv522/atmos/sewer) "jDO" = ( @@ -23666,26 +19221,21 @@ icon_state = "S"; pixel_y = -1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/way_in_command_centre) "jEk" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/landmark/structure_spawner/setup/distress/xeno_nest, -/obj/effect/landmark/xeno_spawn, /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/obj/effect/landmark/corpsespawner/colonist/burst, +/obj/effect/landmark/xeno_spawn, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/south) "jEq" = ( /obj/structure/machinery/vending/cola, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/south) "jEu" = ( /obj/structure/sign/safety/rad_haz, @@ -23702,9 +19252,7 @@ pixel_y = 26 }, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/south) "jEW" = ( /obj/structure/bed/chair{ @@ -23727,9 +19275,7 @@ /obj/structure/window/reinforced{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/command_centre) "jFc" = ( /obj/item/tool/wrench, @@ -23742,7 +19288,7 @@ icon_state = "p_stair_full" }, /turf/open/gm/river, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "jFr" = ( /obj/structure/cargo_container/arious/rightmid, /turf/open/floor/prison, @@ -23751,17 +19297,11 @@ /obj/structure/morgue{ dir = 8 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/medical) "jFC" = ( /obj/structure/machinery/space_heater, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/north, /area/lv522/indoors/a_block/dorms) "jFG" = ( /obj/structure/cargo_container/arious/right, @@ -23788,24 +19328,22 @@ /turf/open/floor/plating, /area/lv522/indoors/c_block/mining) "jGh" = ( -/obj/structure/cargo_container/grant/right, +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 4 + }, +/obj/structure/cargo_container/wy/right, /turf/open/auto_turf/shale/layer1, -/area/lv522/outdoors/colony_streets/north_west_street) +/area/lv522/outdoors/w_rockies) "jGj" = ( /obj/effect/decal/cleanable/dirt, /obj/item/maintenance_jack, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/corpo) "jGm" = ( /obj/structure/barricade/handrail{ dir = 4 }, -/turf/open/floor/coagulation{ - icon_state = "0,5" - }, +/turf/open/floor/coagulation/icon0_5, /area/lv522/oob) "jGp" = ( /obj/structure/platform{ @@ -23824,10 +19362,8 @@ /turf/open/auto_turf/shale/layer1, /area/lv522/outdoors/colony_streets/central_streets) "jHa" = ( -/obj/structure/cargo_container/wy/right{ - layer = 5 - }, -/turf/open/auto_turf/sand_white/layer0, +/obj/structure/cargo_container/kelland/left, +/turf/open/auto_turf/shale/layer1, /area/lv522/outdoors/w_rockies) "jHb" = ( /turf/open/gm/river, @@ -23840,10 +19376,17 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) +"jHm" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/storage/fancy/cigarettes/wypacket{ + pixel_x = 5; + pixel_y = 6 + }, +/obj/item/clothing/suit/storage/jacket/marine/corporate, +/turf/open/floor/strata/white_cyan1/east, +/area/lv522/indoors/a_block/corpo/glass) "jHy" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 @@ -23853,19 +19396,14 @@ dir = 8; name = "\improper Dormitories" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/dorms) "jHR" = ( /obj/structure/machinery/space_heater/radiator/red{ dir = 1; pixel_y = 26 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/medical) "jIk" = ( /obj/structure/machinery/landinglight/ds1/delaythree{ @@ -23877,9 +19415,7 @@ /obj/structure/surface/rack, /obj/effect/decal/cleanable/dirt, /obj/item/stack/sheet/metal/medium_stack, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/garage) "jIG" = ( /obj/item/tool/wet_sign{ @@ -23892,39 +19428,32 @@ pixel_y = 21 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/cargo) "jII" = ( /obj/structure/largecrate/random, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/outdoors/n_rockies) "jIQ" = ( -/obj/structure/cable/heavyduty{ - icon_state = "4-8" +/obj/structure/machinery/colony_floodlight{ + layer = 4.3 }, -/turf/open/floor/plating, -/area/lv522/atmos/east_reactor) +/obj/structure/platform{ + dir = 1 + }, +/turf/open/asphalt/cement, +/area/lv522/outdoors/colony_streets/south_street) "jIR" = ( /obj/effect/decal/cleanable/greenglow, /turf/open/gm/river, /area/lv522/oob) "jJa" = ( -/turf/open/floor/corsat{ - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner, /area/lv522/atmos/north_command_centre) "jJc" = ( /obj/effect/landmark/objective_landmark/close, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/lv522/indoors/b_block/bridge) "jJh" = ( /obj/structure/surface/table/almayer, @@ -23939,25 +19468,18 @@ /obj/item/reagent_container/food/snacks/grilledcheese{ pixel_y = 27 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/b_block/bar) "jJi" = ( /obj/structure/machinery/iv_drip, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/medical/glass) "jJj" = ( /obj/structure/barricade/handrail{ dir = 8 }, -/turf/open/floor/coagulation{ - icon_state = "8,3" - }, +/turf/open/floor/coagulation/icon8_3, /area/lv522/oob) "jJF" = ( /obj/effect/decal/cleanable/dirt, @@ -23968,24 +19490,17 @@ /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/outdoors/colony_streets/windbreaker/observation) "jJO" = ( /obj/structure/surface/table/almayer, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/west, /area/lv522/atmos/filt) "jKa" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/lv522/outdoors/colony_streets/south_east_street) "jKb" = ( /obj/structure/platform{ @@ -23994,39 +19509,29 @@ /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/colony_streets/east_central_street) "jKm" = ( /obj/structure/surface/table/almayer, /obj/item/storage/toolbox/mechanical, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/filt) "jKo" = ( /obj/vehicle/train/cargo/engine, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/filt) "jKu" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "brown" - }, +/turf/open/floor/corsat/brown, /area/lv522/atmos/north_command_centre) "jKB" = ( /obj/structure/platform_decoration{ dir = 4 }, -/turf/open/asphalt/cement{ - icon_state = "cement15" - }, +/turf/open/asphalt/cement/cement15, /area/lv522/outdoors/colony_streets/north_east_street) "jLf" = ( /obj/item/shard{ @@ -24035,25 +19540,18 @@ /obj/item/stack/rods, /obj/item/stack/sheet/metal, /obj/structure/pipes/vents/pump, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/admin) "jLk" = ( /obj/structure/cargo_container/wy/left, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/landing_zone_2) "jLD" = ( /obj/item/stack/sheet/wood, /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/casino) "jLF" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -24073,20 +19571,14 @@ name = "supply crate" }, /obj/structure/machinery/light, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/bridges/op_centre) "jMr" = ( /obj/structure/stairs/perspective{ dir = 1; icon_state = "p_stair_full" }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/admin) "jMv" = ( /obj/structure/prop/invuln/minecart_tracks{ @@ -24117,10 +19609,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/west, /area/lv522/atmos/reactor_garage) "jMZ" = ( /obj/structure/surface/table/almayer, @@ -24136,10 +19625,7 @@ /area/lv522/indoors/a_block/dorms) "jNv" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/corpo/glass) "jNQ" = ( /obj/structure/machinery/space_heater/radiator/red{ @@ -24148,9 +19634,7 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/lv522/indoors/a_block/dorm_north) "jNV" = ( /obj/structure/surface/table/almayer, @@ -24162,10 +19646,7 @@ pixel_x = -2; pixel_y = 16 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/admin) "jNY" = ( /obj/structure/surface/table/reinforced/prison, @@ -24175,10 +19656,7 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/corpo) "jOh" = ( /obj/structure/platform{ @@ -24197,9 +19675,7 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "jOw" = ( /obj/item/storage/backpack/marine/satchel{ @@ -24233,9 +19709,7 @@ id = "LV_522_Hydro-Lockdown"; name = "\improper Storm Shutters" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/b_block/bridge) "jOF" = ( /obj/effect/acid_hole, @@ -24256,7 +19730,6 @@ dir = 5; icon_state = "p_stair_full" }, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/auto_turf/sand_white/layer0, /area/lv522/landing_zone_1) "jPj" = ( @@ -24268,9 +19741,7 @@ pixel_x = 3 }, /obj/effect/decal/cleanable/cobweb, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/cargo) "jPk" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -24278,15 +19749,10 @@ }, /obj/structure/surface/table/reinforced/prison, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/corpo) "jPv" = ( -/turf/open/asphalt/cement{ - icon_state = "cement14" - }, +/turf/open/asphalt/cement/cement14, /area/lv522/outdoors/colony_streets/central_streets) "jPw" = ( /turf/open/floor/plating, @@ -24296,9 +19762,7 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/east_reactor) "jPC" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, @@ -24321,11 +19785,7 @@ "jQC" = ( /obj/structure/machinery/light, /obj/structure/machinery/disposal, -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/landing_zone_1/ceiling) "jRc" = ( /obj/structure/machinery/disposal, @@ -24341,9 +19801,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/cargo_intake) "jRZ" = ( /obj/structure/largecrate/random, @@ -24357,32 +19815,23 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/b_block/bridge) "jSC" = ( /obj/structure/machinery/light, /obj/structure/machinery/disposal, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "jSR" = ( /obj/structure/machinery/conveyor, /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/cargo_intake) "jSU" = ( -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/a_block/corpo/glass) "jSW" = ( /obj/structure/prop/ice_colony/dense/planter_box{ @@ -24392,10 +19841,7 @@ icon_state = "fernybush_2"; pixel_y = 10 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/b_block/bridge) "jTb" = ( /obj/structure/bed/chair/comfy{ @@ -24404,33 +19850,24 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/cargo_intake) "jTi" = ( /obj/structure/prop/ice_colony/ground_wire, /obj/structure/prop/ice_colony/ground_wire{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/cargo_intake) "jTl" = ( /obj/structure/bed/chair/comfy{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/southwest, /area/lv522/indoors/a_block/admin) "jTr" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms/glass) "jTx" = ( /obj/structure/cable/heavyduty{ @@ -24442,9 +19879,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/cargo_intake) "jTH" = ( /obj/effect/decal/warning_stripes{ @@ -24459,17 +19894,13 @@ /area/lv522/outdoors/colony_streets/south_west_street) "jTJ" = ( /obj/structure/cargo_container/watatsumi/leftmid, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/colony_streets/north_west_street) "jTS" = ( /obj/structure/surface/table/almayer, /obj/item/circuitboard/apc, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms/glass) "jUc" = ( /obj/structure/largecrate/random, @@ -24480,9 +19911,7 @@ /obj/structure/barricade/metal{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/outdoors/colony_streets/north_street) "jUe" = ( /obj/structure/prop/ice_colony/ground_wire{ @@ -24495,10 +19924,7 @@ /turf/open/floor/prison, /area/lv522/indoors/a_block/security) "jUk" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/indoors/lone_buildings/storage_blocks) "jUn" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -24511,32 +19937,23 @@ icon_state = "E"; pixel_x = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/n_rockies) "jUy" = ( /obj/structure/machinery/power/port_gen/pacman/super, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/lv522/indoors/lone_buildings/outdoor_bot) "jUI" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/cargo) "jUO" = ( /obj/structure/prop/ice_colony/flamingo{ dir = 5; pixel_x = 15 }, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/lv522/outdoors/colony_streets/east_central_street) "jUW" = ( /obj/structure/surface/table/reinforced/almayer_B, @@ -24549,9 +19966,7 @@ pixel_x = -10; pixel_y = 8 }, -/turf/open/floor/strata{ - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1, /area/lv522/indoors/lone_buildings/chunk) "jUY" = ( /obj/structure/machinery/door_control/brbutton{ @@ -24561,9 +19976,7 @@ /area/lv522/atmos/reactor_garage) "jVa" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor) "jVq" = ( /obj/structure/machinery/landinglight/ds2/delaytwo{ @@ -24578,16 +19991,12 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/bridge) "jVC" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_nest, /obj/effect/landmark/corpsespawner/colonist/burst, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/south) "jVH" = ( /obj/item/paper{ @@ -24604,14 +20013,12 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/dorms) "jVS" = ( -/obj/structure/cargo_container/kelland/right, -/turf/open/auto_turf/sand_white/layer0, -/area/lv522/outdoors/colony_streets/north_west_street) +/obj/structure/cargo_container/horizontal/blue/top, +/turf/open/auto_turf/shale/layer1, +/area/lv522/outdoors/w_rockies) "jVV" = ( /obj/structure/prop/invuln/minecart_tracks, /obj/structure/closet/crate/miningcar{ @@ -24629,50 +20036,33 @@ "jWr" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_nest, /obj/effect/landmark/xeno_spawn, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/southwest, /area/lv522/atmos/east_reactor/south) "jWB" = ( -/turf/open/floor/corsat{ - dir = 6; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/southeast, /area/lv522/atmos/east_reactor/south) "jWV" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/corpo/glass) "jWX" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/west, /area/lv522/indoors/a_block/dorms) "jWZ" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/platform_decoration{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/way_in_command_centre) "jXc" = ( /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/a_block/fitness) "jXp" = ( /obj/structure/prop/invuln/rope{ @@ -24698,9 +20088,7 @@ /obj/item/ammo_magazine/rifle/heap{ current_rounds = 0 }, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/lv522/outdoors/colony_streets/north_street) "jYj" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -24711,9 +20099,7 @@ /obj/structure/tunnel/maint_tunnel{ pixel_y = 6 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "jYr" = ( /obj/structure/machinery/landinglight/ds2/delaythree{ @@ -24736,31 +20122,23 @@ /obj/structure/machinery/power/apc/weak{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/south) "jYF" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/shiva{ - icon_state = "radiator_tile2" - }, +/turf/open/floor/shiva/radiator_tile2, /area/lv522/indoors/c_block/cargo) "jYK" = ( /obj/structure/stairs/perspective{ dir = 6; icon_state = "p_stair_full" }, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/auto_turf/sand_white/layer0, /area/lv522/landing_zone_1) "jYZ" = ( /obj/structure/filingcabinet, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/corpo/glass) "jZc" = ( /obj/structure/flora/jungle/thickbush, @@ -24771,10 +20149,7 @@ dir = 8 }, /obj/structure/cargo_container/watatsumi/leftmid, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/indoors/lone_buildings/storage_blocks) "jZo" = ( /obj/structure/desertdam/decals/road_edge{ @@ -24784,15 +20159,10 @@ /area/lv522/indoors/a_block/fitness/glass) "jZA" = ( /obj/item/prop/colony/used_flare, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/a_block/hallway) "jZD" = ( -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/lv522/landing_zone_1) "jZE" = ( /obj/structure/platform_decoration{ @@ -24805,9 +20175,7 @@ /obj/structure/machinery/space_heater/radiator/red{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/kitchen) "jZS" = ( /obj/structure/filtration/collector_pipes{ @@ -24816,23 +20184,15 @@ /obj/structure/barricade/handrail{ dir = 4 }, -/turf/open/floor/coagulation{ - icon_state = "0,5" - }, +/turf/open/floor/coagulation/icon0_5, /area/lv522/oob) "kaD" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan3" - }, +/turf/open/floor/strata/white_cyan3/west, /area/lv522/indoors/a_block/medical/glass) "kaQ" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/north, /area/lv522/atmos/east_reactor/south) "kaV" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -24845,9 +20205,7 @@ "kaX" = ( /obj/effect/landmark/survivor_spawner, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "blue" - }, +/turf/open/floor/prison/blue, /area/lv522/indoors/a_block/admin) "kba" = ( /obj/structure/filtration/collector_pipes{ @@ -24865,36 +20223,35 @@ "kbg" = ( /obj/structure/surface/table/almayer, /obj/item/clothing/suit/storage/hazardvest, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/west, /area/lv522/atmos/filt) "kbn" = ( /obj/structure/cargo_container/kelland/right, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/outdoors/colony_streets/north_east_street) "kbo" = ( /obj/structure/surface/rack, /obj/item/stack/sheet/metal/medium_stack, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/plating, /area/lv522/landing_zone_1/tunnel) +"kbq" = ( +/obj/structure/bed/chair/dropship/passenger{ + dir = 4 + }, +/obj/structure/machinery/light/double{ + dir = 8; + pixel_y = -5 + }, +/turf/open/shuttle/dropship/can_surgery/medium_grey_single_wide_up_to_down, +/area/lv522/landing_zone_forecon/UD6_Typhoon) "kbu" = ( /obj/vehicle/train/cargo/trolley, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/filt) "kbF" = ( /obj/structure/surface/table/almayer, /obj/item/cpr_dummy, -/turf/open/floor/plating{ - icon_state = "platebot" - }, +/turf/open/floor/plating/platebot, /area/lv522/indoors/c_block/cargo) "kbH" = ( /obj/effect/decal/cleanable/dirt, @@ -24905,10 +20262,7 @@ /area/lv522/outdoors/colony_streets/windbreaker/observation) "kbJ" = ( /obj/vehicle/train/cargo/trolley, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/east, /area/lv522/atmos/filt) "kbM" = ( /obj/structure/filtration/collector_pipes{ @@ -24919,9 +20273,7 @@ dir = 4 }, /obj/structure/blocker/invisible_wall, -/turf/open/floor/coagulation{ - icon_state = "0,5" - }, +/turf/open/floor/coagulation/icon0_5, /area/lv522/oob) "kbS" = ( /obj/item/shard{ @@ -24930,14 +20282,10 @@ /turf/open/asphalt/cement, /area/lv522/outdoors/colony_streets/south_west_street) "kbV" = ( -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/east_reactor/west) "kca" = ( -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/east_reactor/east) "kcb" = ( /turf/closed/wall/mineral/bone_resin, @@ -24956,9 +20304,7 @@ "kck" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/command_centre) "kco" = ( /obj/structure/platform{ @@ -24970,9 +20316,7 @@ "kcv" = ( /obj/effect/decal/cleanable/blood, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/kitchen/damage) "kcw" = ( /obj/structure/pipes/standard/manifold/hidden/green{ @@ -24981,10 +20325,7 @@ /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/a_block/fitness) "kcC" = ( /obj/structure/prop/ice_colony/ground_wire, @@ -25014,9 +20355,7 @@ /turf/open/floor/plating, /area/lv522/landing_zone_2) "kcS" = ( -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "kcY" = ( /obj/structure/surface/table/almayer, @@ -25024,10 +20363,7 @@ /area/lv522/indoors/a_block/admin) "kda" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/southeast, /area/lv522/atmos/east_reactor/south) "kdf" = ( /obj/structure/stairs/perspective{ @@ -25047,9 +20383,7 @@ dir = 5; icon_state = "p_stair_full" }, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/mining) "kdm" = ( /obj/structure/cargo_container/wy/right, @@ -25073,9 +20407,7 @@ pixel_y = 16 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/cargo) "kdw" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ @@ -25087,9 +20419,7 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/corpo) "kdx" = ( /obj/structure/largecrate/random/barrel/green, @@ -25119,9 +20449,7 @@ dir = 8 }, /obj/structure/blocker/invisible_wall, -/turf/open/floor/coagulation{ - icon_state = "8,3" - }, +/turf/open/floor/coagulation/icon8_3, /area/lv522/oob) "keq" = ( /obj/structure/platform_decoration{ @@ -25139,10 +20467,7 @@ /obj/structure/extinguisher_cabinet{ pixel_y = 30 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/lv522/indoors/lone_buildings/engineering) "kfq" = ( /obj/item/lightstick/red/spoke/planted{ @@ -25156,9 +20481,7 @@ dir = 9; icon_state = "p_stair_full" }, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/casino) "kfu" = ( /obj/structure/machinery/conveyor{ @@ -25166,17 +20489,12 @@ id = "cargo_container" }, /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/north, /area/lv522/atmos/cargo_intake) "kfv" = ( /obj/structure/largecrate/random/secure, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/landing_zone_2/ceiling) "kfw" = ( /obj/structure/prop/ice_colony/dense/planter_box{ @@ -25185,29 +20503,20 @@ /obj/structure/flora/bush{ pixel_y = 9 }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/kitchen) "kfA" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/west, /area/lv522/atmos/cargo_intake) "kfD" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/shiva{ - icon_state = "radiator_tile2" - }, +/turf/open/floor/shiva/radiator_tile2, /area/lv522/indoors/a_block/kitchen) "kfF" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/cargo_intake) "kfG" = ( /obj/structure/prop/dam/crane/cargo{ @@ -25222,9 +20531,7 @@ /area/lv522/landing_zone_2) "kgb" = ( /obj/item/weapon/twohanded/folded_metal_chair, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/cargo_intake) "kgm" = ( /obj/structure/surface/table/almayer, @@ -25233,9 +20540,7 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/south) "kgC" = ( /obj/structure/machinery/conveyor{ @@ -25246,59 +20551,39 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/cargo_intake) "kgQ" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/colony_streets/north_street) "kgR" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; pixel_y = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/way_in_command_centre) -"khd" = ( -/turf/closed/wall/strata_outpost/reinforced/hull, -/area/lv522/indoors/c_block/cargo) "khf" = ( /obj/structure/prop/server_equipment, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/indoors/lone_buildings/outdoor_bot) "khm" = ( /obj/effect/decal/warning_stripes{ icon_state = "W"; pixel_x = -1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/way_in_command_centre) "kho" = ( /obj/structure/dispenser, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/hallway) "khx" = ( /obj/item/prop/alien/hugger, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/lv522/indoors/a_block/medical/glass) "khz" = ( /obj/item/trash/uscm_mre, @@ -25330,9 +20615,7 @@ pixel_x = -1; pixel_y = 8 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/colony_streets/north_street) "kib" = ( /obj/item/clothing/head/hardhat/white, @@ -25340,9 +20623,7 @@ pixel_x = 11; pixel_y = -9 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/cargo_intake) "kie" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -25354,9 +20635,7 @@ /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/c_block/cargo) "kih" = ( /obj/structure/machinery/conveyor{ @@ -25366,10 +20645,7 @@ /obj/structure/barricade/handrail{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/north, /area/lv522/atmos/cargo_intake) "kiD" = ( /obj/structure/machinery/conveyor{ @@ -25377,10 +20653,7 @@ id = "cargo_container" }, /obj/structure/largecrate/random, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/northeast, /area/lv522/atmos/cargo_intake) "kiE" = ( /obj/structure/barricade/wooden{ @@ -25389,23 +20662,16 @@ /obj/item/shard{ icon_state = "medium" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/a_block/admin) "kiG" = ( /obj/structure/closet/bodybag, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/lv522/indoors/a_block/medical) "kiO" = ( /obj/structure/machinery/deployable/barrier, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/security) "kiQ" = ( /obj/structure/bed{ @@ -25417,9 +20683,7 @@ pixel_y = 25 }, /obj/item/prop/alien/hugger, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "kiT" = ( /obj/item/stack/medical/bruise_pack, @@ -25434,10 +20698,7 @@ pixel_x = -11; pixel_y = 23 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/landing_zone_2) "kjj" = ( /obj/structure/pipes/standard/manifold/fourway/hidden/green, @@ -25466,36 +20727,27 @@ dir = 1 }, /obj/effect/decal/cleanable/generic, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/kitchen/glass) "kjU" = ( /obj/item/reagent_container/food/snacks/donut, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/cargo_intake) "kkc" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/west_reactor) "kkq" = ( -/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/obj/structure/machinery/light, -/turf/open/floor/corsat{ - icon_state = "plate" +/obj/structure/platform_decoration{ + dir = 8 }, -/area/lv522/atmos/east_reactor) +/turf/open/asphalt/cement/cement3, +/area/lv522/outdoors/colony_streets/south_west_street) "kkr" = ( /obj/structure/prop/ice_colony/ground_wire{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/cargo_intake) "kky" = ( /obj/structure/cable/heavyduty{ @@ -25513,43 +20765,29 @@ pixel_y = 14 }, /obj/structure/machinery/light, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "kkP" = ( /obj/structure/surface/rack, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/cargo) "kkR" = ( /obj/structure/bed/chair/comfy, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/way_in_command_centre) "kkS" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/structure/prop/cash_register/off/open{ pixel_y = 8 }, -/turf/open/floor/strata{ - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1, /area/lv522/indoors/lone_buildings/chunk) "kkZ" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner/north, /area/lv522/atmos/north_command_centre) "klj" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/east, /area/lv522/atmos/outdoor) "kll" = ( /obj/structure/cable/heavyduty{ @@ -25562,25 +20800,18 @@ dir = 8 }, /obj/item/prop/alien/hugger, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "klx" = ( /obj/structure/prop/ice_colony/ground_wire{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/cargo_intake) "klz" = ( /obj/structure/curtain/medical, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/medical/glass) "klL" = ( /obj/structure/machinery/microwave, @@ -25590,9 +20821,7 @@ /obj/item/trash/ceramic_plate{ pixel_y = 21 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/cargo_intake) "klW" = ( /obj/effect/decal/cleanable/blood/oil, @@ -25608,9 +20837,7 @@ /area/lv522/atmos/west_reactor) "kmg" = ( /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/cargo_intake) "kmq" = ( /obj/structure/machinery/colony_floodlight{ @@ -25621,10 +20848,7 @@ "kms" = ( /obj/item/stack/sheet/metal, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 9; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/northwest, /area/lv522/indoors/a_block/admin) "kmw" = ( /obj/effect/decal/warning_stripes{ @@ -25635,16 +20859,11 @@ pixel_x = -12; pixel_y = 7 }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/outdoors/colony_streets/north_street) "kmz" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/north, /area/lv522/atmos/north_command_centre) "kmE" = ( /obj/structure/desertdam/decals/road_edge{ @@ -25667,25 +20886,19 @@ icon_state = "E"; pixel_x = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/a_block/garden) "kmH" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/lv522/indoors/b_block/bar) "kmP" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/south) "kmY" = ( /obj/structure/surface/table/almayer, @@ -25703,32 +20916,23 @@ pixel_x = -7 }, /obj/item/prop/alien/hugger, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "kne" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/east_reactor/south) "kni" = ( /obj/structure/machinery/bioprinter, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan2" - }, +/turf/open/floor/strata/cyan2/east, /area/lv522/indoors/a_block/medical) "knt" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/south) "knN" = ( /obj/structure/stairs/perspective{ @@ -25736,18 +20940,13 @@ icon_state = "p_stair_full" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/casino) "knS" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/west, /area/lv522/atmos/east_reactor/south) "knT" = ( /obj/structure/machinery/cm_vending/sorted/tech/tool_storage{ @@ -25765,10 +20964,7 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/a_block/fitness) "koj" = ( /obj/structure/pipes/vents/pump, @@ -25790,17 +20986,13 @@ dir = 1 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/landing_zone_2/ceiling) "koG" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/a_block/bridges/corpo) "koM" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -25809,19 +21001,13 @@ /turf/open/floor/prison, /area/lv522/indoors/a_block/admin) "kpo" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner/east, /area/lv522/atmos/east_reactor/south) "kpu" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/north, /area/lv522/indoors/a_block/dorms) "kpB" = ( /obj/structure/barricade/handrail{ @@ -25839,16 +21025,11 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/south) "kpG" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner/north, /area/lv522/atmos/east_reactor/south) "kpN" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -25862,18 +21043,13 @@ "kqa" = ( /obj/structure/surface/table/almayer, /obj/item/storage/pouch/tools/full, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/west, /area/lv522/atmos/filt) "kqb" = ( /turf/closed/wall/strata_outpost, /area/lv522/indoors/a_block/kitchen) "kqp" = ( -/turf/open/asphalt/cement{ - icon_state = "cement2" - }, +/turf/open/asphalt/cement/cement2, /area/lv522/outdoors/colony_streets/north_east_street) "kqJ" = ( /obj/structure/barricade/wooden{ @@ -25890,18 +21066,13 @@ /area/lv522/outdoors/colony_streets/north_east_street) "kqX" = ( /obj/item/clipboard, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/cargo_intake) "kri" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/east, /area/lv522/atmos/reactor_garage) "krj" = ( /obj/structure/prop/ice_colony/ground_wire{ @@ -25910,9 +21081,7 @@ /obj/structure/prop/ice_colony/ground_wire{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/cargo_intake) "krm" = ( /obj/structure/surface/table/almayer{ @@ -25930,10 +21099,7 @@ /turf/open/floor/plating/plating_catwalk/prison, /area/lv522/atmos/east_reactor/south) "krH" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/outdoors/colony_streets/north_east_street) "krK" = ( /obj/effect/decal/cleanable/dirt, @@ -25942,16 +21108,11 @@ /area/lv522/indoors/a_block/admin) "krN" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/shiva{ - icon_state = "radiator_tile2" - }, +/turf/open/floor/shiva/radiator_tile2, /area/lv522/indoors/a_block/bridges/garden_bridge) "krP" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/strata{ - dir = 5; - icon_state = "white_cyan3" - }, +/turf/open/floor/strata/white_cyan3/northeast, /area/lv522/indoors/a_block/medical/glass) "ksa" = ( /obj/structure/surface/table/almayer, @@ -25959,9 +21120,7 @@ pixel_y = 8 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/lv522/outdoors/colony_streets/windbreaker/observation) "ksf" = ( /obj/structure/prop/invuln/ice_prefab{ @@ -25977,23 +21136,16 @@ /turf/open/floor/plating/plating_catwalk/prison, /area/lv522/outdoors/colony_streets/windbreaker/observation) "ksm" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/west, /area/lv522/atmos/north_command_centre) "kss" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/light, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/south) "ksA" = ( -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/indoors/c_block/mining) "ksO" = ( /obj/effect/decal/warning_stripes{ @@ -26010,9 +21162,7 @@ /obj/structure/barricade/metal{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/outdoors/colony_streets/north_street) "kti" = ( /obj/structure/platform, @@ -26039,9 +21189,7 @@ /obj/effect/landmark/objective_landmark/close, /obj/structure/closet/crate, /obj/item/stack/sheet/plasteel/large_stack, -/turf/open/floor/plating{ - icon_state = "platebot" - }, +/turf/open/floor/plating/platebot, /area/lv522/indoors/c_block/cargo) "kug" = ( /obj/structure/closet/crate/trashcart, @@ -26064,24 +21212,16 @@ pixel_y = -3 }, /obj/item/reagent_container/glass/bucket, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/b_block/hydro) "kun" = ( /obj/structure/surface/table/almayer, /obj/item/device/camera, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms/glass) "kup" = ( /obj/effect/spawner/gibspawner/xeno, -/turf/open/floor/prison{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/east, /area/lv522/indoors/a_block/admin) "kuD" = ( /obj/effect/decal/cleanable/blood, @@ -26093,9 +21233,7 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/way_in_command_centre) "kvc" = ( /obj/structure/cargo_container/horizontal/blue/middle, @@ -26111,9 +21249,7 @@ "kvq" = ( /obj/structure/window_frame/strata/reinforced, /obj/item/stack/rods, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/lone_buildings/engineering) "kvJ" = ( /obj/structure/surface/table/almayer, @@ -26124,26 +21260,19 @@ pixel_x = 3; pixel_y = 11 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/a_block/fitness/glass) "kvM" = ( /obj/structure/pipes/vents/pump, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/lv522/outdoors/colony_streets/windbreaker/observation) "kwc" = ( /obj/structure/stairs/perspective{ dir = 6; icon_state = "p_stair_full" }, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/lv522/outdoors/colony_streets/north_street) "kwg" = ( /turf/open/floor/plating/plating_catwalk/prison, @@ -26154,9 +21283,7 @@ /turf/open/floor/prison, /area/lv522/indoors/c_block/mining) "kwo" = ( -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/dorms) "kwt" = ( /obj/structure/platform, @@ -26185,15 +21312,11 @@ pixel_x = 1; pixel_y = 8 }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/security/glass) "kxm" = ( /obj/effect/landmark/monkey_spawn, -/turf/open/floor/corsat{ - icon_state = "brown" - }, +/turf/open/floor/corsat/brown, /area/lv522/atmos/cargo_intake) "kxq" = ( /obj/structure/surface/table/reinforced/prison, @@ -26208,28 +21331,18 @@ /obj/structure/machinery/power/apc/weak{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/mining) "kxH" = ( /obj/item/prop/colony/used_flare, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/lv522/outdoors/colony_streets/north_street) "kxW" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/east, /area/lv522/indoors/a_block/dorms) "kyb" = ( -/turf/open/floor/corsat{ - dir = 10; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/southwest, /area/lv522/atmos/cargo_intake) "kyo" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -26243,9 +21356,7 @@ pixel_x = -14; pixel_y = -2 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/cargo_intake) "kyB" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -26269,40 +21380,28 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/c_block/mining) "kyK" = ( /obj/structure/prop/ice_colony/ground_wire{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/southwest, /area/lv522/atmos/cargo_intake) "kzc" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/cargo_intake) "kzd" = ( /obj/effect/decal/warning_stripes{ icon_state = "S"; pixel_y = -1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/way_in_command_centre) "kze" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor/prison{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/west, /area/lv522/indoors/a_block/admin) "kzk" = ( /turf/closed/shuttle/dropship2/tornado{ @@ -26331,18 +21430,13 @@ /area/lv522/outdoors/colony_streets/east_central_street) "kzG" = ( /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/reactor_garage) "kzR" = ( /obj/structure/machinery/door/airlock/almayer/generic{ name = "Bathroom" }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/lv522/indoors/a_block/dorms) "kzT" = ( /turf/open/floor/prison, @@ -26350,9 +21444,7 @@ "kAf" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/cobweb, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/casino) "kAj" = ( /obj/structure/bed/chair/comfy, @@ -26363,22 +21455,16 @@ /obj/structure/machinery/power/apc/weak{ dir = 1 }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/lv522/indoors/b_block/bar) "kAG" = ( -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/c_block/bridge) "kAI" = ( /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "brown" - }, +/turf/open/floor/corsat/brown, /area/lv522/atmos/cargo_intake) "kBj" = ( /obj/structure/cargo_container/horizontal/blue/top, @@ -26394,10 +21480,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/southwest, /area/lv522/atmos/east_reactor/south) "kBq" = ( /obj/structure/girder, @@ -26425,14 +21508,14 @@ /turf/open/floor/plating, /area/lv522/indoors/c_block/garage) "kBD" = ( -/obj/structure/machinery/power/port_gen/pacman, +/obj/structure/cargo_container/horizontal/blue/middle{ + layer = 3.1 + }, /turf/open/auto_turf/shale/layer1, /area/lv522/outdoors/w_rockies) "kBJ" = ( /obj/item/prop/colony/canister, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/cargo_intake) "kBK" = ( /obj/structure/stairs/perspective{ @@ -26444,12 +21527,10 @@ "kBL" = ( /obj/structure/surface/table/almayer, /obj/item/clothing/head/hardhat, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/cargo_intake) "kBT" = ( -/obj/structure/cargo_container/grant/left, +/obj/structure/cargo_container/horizontal/blue/bottom, /turf/open/auto_turf/shale/layer1, /area/lv522/outdoors/w_rockies) "kBU" = ( @@ -26457,9 +21538,7 @@ /obj/item/tool/pen/blue/clicky, /obj/effect/landmark/objective_landmark/close, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/casino) "kCf" = ( /obj/item/prop/colony/proptag{ @@ -26468,10 +21547,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/outdoors/colony_streets/north_west_street) "kCC" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -26481,17 +21557,13 @@ icon_state = "E"; pixel_x = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/colony_streets/north_west_street) "kCD" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/lv522/outdoors/colony_streets/north_west_street) "kCF" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -26503,20 +21575,16 @@ /area/lv522/outdoors/colony_streets/north_west_street) "kCJ" = ( /obj/structure/cargo_container/ferret/left, -/turf/open/asphalt/cement{ - icon_state = "cement2" - }, +/turf/open/asphalt/cement/cement2, /area/lv522/outdoors/colony_streets/north_west_street) "kCM" = ( /obj/structure/surface/table/almayer, /obj/item/device/flashlight/lamp, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/cargo_intake) "kCN" = ( /obj/structure/surface/table/almayer, -/obj/structure/machinery/computer/cameras/wooden_tv/prop{ +/obj/structure/machinery/computer/cameras/wooden_tv/broadcast{ pixel_y = 16 }, /obj/item/trash/plate, @@ -26524,32 +21592,23 @@ pixel_y = 3 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "kDH" = ( /obj/structure/machinery/disposal, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "kDQ" = ( /obj/item/prop/colony/usedbandage{ dir = 9 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/west, /area/lv522/indoors/a_block/admin) "kDU" = ( /obj/structure/platform_decoration{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/cargo_intake) "kDY" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -26573,9 +21632,7 @@ /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/a_block/admin) "kEj" = ( /obj/effect/decal/cleanable/dirt, @@ -26586,35 +21643,27 @@ dir = 4 }, /turf/open/gm/river, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "kEo" = ( /obj/structure/machinery/colony_floodlight{ layer = 4.3 }, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/lv522/outdoors/colony_streets/east_central_street) "kEx" = ( /obj/structure/stairs/perspective{ icon_state = "p_stair_ew_full_cap" }, /obj/structure/platform/stair_cut/alt, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/cargo_intake) "kEA" = ( /obj/structure/machinery/door/airlock/almayer/maint, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/east_reactor/south) "kEL" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/east_reactor/south) "kEN" = ( /obj/effect/decal/cleanable/blood/splatter, @@ -26636,29 +21685,20 @@ id = "LV522CIC_1"; name = "\improper Storm Shutters" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/hallway) "kEQ" = ( -/turf/open/floor/shiva{ - icon_state = "radiator_tile2" - }, +/turf/open/floor/shiva/radiator_tile2, /area/lv522/indoors/c_block/bridge) "kEW" = ( /obj/structure/closet/secure_closet/freezer/fridge, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/admin) "kEZ" = ( /obj/structure/platform_decoration{ dir = 8 }, -/turf/open/asphalt/cement{ - icon_state = "cement14" - }, +/turf/open/asphalt/cement/cement14, /area/lv522/outdoors/colony_streets/central_streets) "kFd" = ( /obj/structure/prop/invuln/overhead_pipe{ @@ -26678,10 +21718,7 @@ /area/lv522/oob) "kFx" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/strata{ - dir = 6; - icon_state = "white_cyan3" - }, +/turf/open/floor/strata/white_cyan3/southeast, /area/lv522/indoors/a_block/medical) "kFB" = ( /obj/structure/machinery/landinglight/ds2/delaytwo, @@ -26691,9 +21728,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/asphalt/cement{ - icon_state = "cement9" - }, +/turf/open/asphalt/cement/cement9, /area/lv522/outdoors/colony_streets/north_street) "kFP" = ( /obj/structure/platform/strata{ @@ -26720,10 +21755,7 @@ /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/b_block/hydro) "kGX" = ( /obj/structure/tunnel, @@ -26733,10 +21765,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "w-y0" - }, +/turf/open/floor/almayer/w_y0/north, /area/lv522/atmos/way_in_command_centre) "kHy" = ( /obj/structure/surface/table/almayer, @@ -26744,9 +21773,7 @@ pixel_x = -5; pixel_y = 5 }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/security) "kHP" = ( /obj/effect/decal/cleanable/dirt, @@ -26758,16 +21785,23 @@ /obj/structure/machinery/space_heater/radiator/red{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/security) +"kHW" = ( +/obj/structure/stairs/perspective{ + icon_state = "p_stair_full" + }, +/obj/structure/platform{ + dir = 4 + }, +/turf/open/floor/plating, +/area/lv522/landing_zone_1/tunnel/far) "kHX" = ( -/turf/open/floor/corsat{ - dir = 10; - icon_state = "brown" +/obj/structure/platform_decoration{ + dir = 4 }, -/area/lv522/atmos/east_reactor) +/turf/open/asphalt/cement/cement1, +/area/lv522/outdoors/colony_streets/south_street) "kHZ" = ( /obj/structure/surface/table/almayer, /obj/item/tool/weldpack{ @@ -26780,18 +21814,13 @@ layer = 3.1 }, /obj/effect/decal/cleanable/liquid_fuel, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/lv522/outdoors/colony_streets/north_street) "kId" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/outdoors/colony_streets/north_west_street) "kIj" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -26804,10 +21833,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/outdoors/colony_streets/north_west_street) "kIs" = ( /obj/effect/decal/warning_stripes{ @@ -26821,14 +21847,12 @@ /obj/item/ammo_magazine/rifle/m4ra/ap{ current_rounds = 0 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/southwest, /area/lv522/indoors/a_block/admin) "kIV" = ( /obj/effect/decal/warning_stripes{ - icon_state = "SW-out" + icon_state = "SE-out"; + pixel_x = 1 }, /turf/open/auto_turf/sand_white/layer0, /area/lv522/outdoors/colony_streets/south_east_street) @@ -26838,9 +21862,7 @@ id = "LV522CIC_1"; name = "\improper Storm Shutters" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/admin) "kJb" = ( /obj/structure/surface/table/almayer, @@ -26852,9 +21874,7 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "kJc" = ( /obj/structure/surface/table/almayer, @@ -26863,22 +21883,16 @@ pixel_y = 3 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/south) "kJh" = ( /obj/item/stack/rods, /obj/structure/platform, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/lv522/outdoors/colony_streets/north_east_street) "kJv" = ( /obj/structure/largecrate/random/mini, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/lv522/outdoors/colony_streets/central_streets) "kJO" = ( /obj/effect/decal/cleanable/blood/oil, @@ -26888,10 +21902,7 @@ /obj/structure/filtration/machine_96x96{ icon_state = "disinfection" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/lv522/oob) "kKc" = ( /obj/structure/toilet{ @@ -26902,50 +21913,35 @@ /obj/structure/machinery/space_heater/radiator/red{ dir = 8 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/lv522/indoors/a_block/dorms) "kKh" = ( /obj/structure/barricade/handrail{ dir = 1 }, -/turf/open/floor/coagulation{ - icon_state = "2,0" - }, +/turf/open/floor/coagulation/icon2_0, /area/lv522/oob) "kKj" = ( /obj/structure/machinery/colony_floodlight, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/outdoors/colony_streets/north_east_street) "kKD" = ( /obj/effect/landmark/monkey_spawn, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/filt) "kKR" = ( -/turf/open/floor/plating{ - icon_state = "platingdmg1" - }, +/turf/open/floor/plating/platingdmg1, /area/lv522/indoors/a_block/dorms) "kLc" = ( /obj/item/clothing/head/hardhat, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/filt) "kLe" = ( /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "kLs" = ( /obj/item/clothing/mask/facehugger{ @@ -26955,24 +21951,14 @@ name = "????"; stat = 2 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/filt) "kLO" = ( -/obj/structure/stairs/perspective{ - dir = 1; - icon_state = "p_stair_full" - }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" +/obj/effect/decal/warning_stripes{ + icon_state = "SW-out" }, -/area/lv522/indoors/b_block/hydro) -"kLQ" = ( -/obj/structure/cargo_container/grant/right, -/turf/open/auto_turf/shale/layer1, -/area/lv522/outdoors/w_rockies) +/turf/open/asphalt/cement/cement3, +/area/lv522/outdoors/colony_streets/south_west_street) "kMi" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 @@ -27002,10 +21988,7 @@ pixel_x = 8; pixel_y = 11 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/a_block/fitness) "kMN" = ( /obj/item/reagent_container/food/drinks/flask/marine, @@ -27013,10 +21996,7 @@ /obj/structure/machinery/space_heater/radiator/red{ dir = 4 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/admin) "kNe" = ( /obj/item/shard{ @@ -27024,48 +22004,22 @@ }, /turf/open/floor/plating/plating_catwalk/prison, /area/lv522/indoors/a_block/admin) -"kNj" = ( -/obj/structure/prop/vehicles/crawler{ - dir = 8; - icon_state = "crawler_crate_alt2"; - layer = 3.1 - }, -/turf/open/auto_turf/sand_white/layer0, -/area/lv522/outdoors/w_rockies) "kNw" = ( /obj/item/prop/alien/hugger, /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/a_block/security) "kNL" = ( /obj/structure/surface/table/almayer, /obj/item/clothing/gloves/yellow, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/lv522/indoors/lone_buildings/outdoor_bot) -"kNM" = ( -/obj/structure/machinery/door/airlock/almayer/generic{ - dir = 1; - name = "\improper Dormitories"; - welded = null - }, -/obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "marked" - }, -/area/lv522/indoors/a_block/dorm_north) "kNR" = ( /obj/structure/closet/crate/explosives, /obj/item/storage/box/explosive_mines, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/lv522/landing_zone_forecon/UD6_Tornado) "kNY" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ @@ -27073,9 +22027,7 @@ name = "\improper A-Block Dorms And Office Airlock"; welded = 1 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/dorms) "kOa" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -27089,16 +22041,12 @@ pixel_x = -13; pixel_y = -9 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/c_block/t_comm) "kOz" = ( /obj/structure/machinery/vending/cigarette/colony, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/lv522/outdoors/colony_streets/windbreaker/observation) "kOE" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -27111,9 +22059,7 @@ /obj/effect/decal/cleanable/blood/xeno{ icon_state = "xgib3" }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/south) "kOJ" = ( /obj/structure/machinery/conveyor{ @@ -27123,9 +22069,7 @@ /obj/structure/barricade/handrail{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/cargo_intake) "kOQ" = ( /obj/structure/machinery/conveyor{ @@ -27147,18 +22091,13 @@ /area/lv522/atmos/cargo_intake) "kOV" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/outdoors/colony_streets/north_west_street) "kPG" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/cargo_intake) "kPJ" = ( /obj/structure/machinery/door/airlock/almayer/generic{ @@ -27168,10 +22107,7 @@ id = "LZ1_Lockdown_Lo"; name = "Emergency Lockdown" }, -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/landing_zone_1/ceiling) "kPO" = ( /obj/structure/prop/invuln/ice_prefab{ @@ -27185,29 +22121,21 @@ icon_state = "E"; pixel_x = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/colony_streets/north_west_street) "kPV" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "kQc" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/lv522/outdoors/colony_streets/windbreaker/observation) "kQw" = ( -/turf/open/floor/corsat{ - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner, /area/lv522/atmos/cargo_intake) "kQJ" = ( /obj/item/explosive/mine/active{ @@ -27225,10 +22153,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/southwest, /area/lv522/atmos/cargo_intake) "kQS" = ( /obj/item/stack/tile/plasteel{ @@ -27249,10 +22174,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner/west, /area/lv522/atmos/cargo_intake) "kRb" = ( /obj/item/weapon/telebaton, @@ -27261,7 +22183,7 @@ /area/lv522/indoors/a_block/security) "kRf" = ( /obj/structure/prop/invuln/ice_prefab/trim{ - dir = 6 + dir = 8 }, /obj/structure/cargo_container/grant/rightmid, /turf/open/auto_turf/sand_white/layer0, @@ -27279,25 +22201,19 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/dorms) "kRp" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/cargo_intake) "kRw" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner, /area/lv522/atmos/cargo_intake) "kRB" = ( /obj/structure/machinery/light, @@ -27305,20 +22221,14 @@ dir = 9 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/lv522/indoors/a_block/dorms) "kRJ" = ( /obj/effect/landmark/monkey_spawn, /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/southeast, /area/lv522/atmos/cargo_intake) "kRQ" = ( /turf/open/floor/wood, @@ -27333,9 +22243,7 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/garage) "kRZ" = ( /obj/structure/bed/chair/comfy{ @@ -27351,9 +22259,7 @@ /obj/structure/stairs/perspective{ icon_state = "p_stair_full" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/a_block/admin) "kSm" = ( /obj/structure/machinery/light{ @@ -27400,18 +22306,14 @@ /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/colony_streets/north_west_street) "kSZ" = ( /obj/structure/reagent_dispensers/water_cooler/stacks{ pixel_y = 16 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/security) "kTd" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -27419,9 +22321,7 @@ }, /obj/effect/decal/cleanable/blood/oil, /obj/structure/machinery/light, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/cargo_intake) "kTm" = ( /obj/structure/barricade/wooden{ @@ -27430,9 +22330,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/a_block/security/glass) "kTn" = ( /obj/structure/prop/invuln/ice_prefab/trim{ @@ -27448,9 +22346,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/c_block/cargo) "kTF" = ( /obj/structure/surface/table/almayer, @@ -27459,25 +22355,17 @@ dir = 8 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/b_block/hydro) "kTJ" = ( /obj/structure/prop/invuln/ice_prefab/standalone{ icon_state = "white" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/outdoors/colony_streets/north_east_street) "kUf" = ( /obj/structure/machinery/vending/snack, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms/glass) "kUo" = ( /obj/structure/machinery/vending/snack, @@ -27487,9 +22375,7 @@ /obj/structure/prop/ice_colony/ground_wire{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "brown" - }, +/turf/open/floor/corsat/brown, /area/lv522/atmos/cargo_intake) "kUF" = ( /obj/effect/decal/cleanable/dirt, @@ -27498,15 +22384,11 @@ pixel_x = -1; pixel_y = 2 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/way_in_command_centre) "kUH" = ( /obj/structure/closet/emcloset, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/security) "kUJ" = ( /obj/structure/prop/invuln/ice_prefab/trim{ @@ -27521,27 +22403,21 @@ /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper A-Block Corporate Office Airlock" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/security) "kUP" = ( /obj/structure/machinery/light{ dir = 1 }, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/security) "kVa" = ( /obj/effect/spawner/gibspawner/xeno, /obj/effect/decal/cleanable/blood/xeno{ icon_state = "xgib3" }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/east_reactor/south) "kVh" = ( /obj/item/prop/colony/used_flare, @@ -27556,9 +22432,7 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/a_block/dorms) "kVG" = ( /obj/structure/cargo_container/kelland/left, @@ -27575,17 +22449,11 @@ dir = 1; pixel_y = 26 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/north, /area/lv522/indoors/a_block/hallway) "kVT" = ( /obj/item/stack/rods, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/north, /area/lv522/indoors/a_block/admin) "kVV" = ( /obj/item/ammo_magazine/rifle/heap{ @@ -27598,47 +22466,24 @@ /obj/structure/machinery/computer/emails{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner/west, /area/lv522/atmos/cargo_intake) "kWi" = ( /obj/structure/pipes/standard/manifold/hidden/green, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) -"kWp" = ( -/obj/structure/window/framed/strata/reinforced, -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/floor/corsat{ - icon_state = "marked" - }, -/area/lv522/landing_zone_1/ceiling) -"kWD" = ( -/obj/structure/prop/vehicles/crawler{ - icon_state = "crawler_crate_alt2"; - layer = 3.1 - }, -/turf/open/auto_turf/shale/layer1, -/area/lv522/outdoors/w_rockies) "kWH" = ( /obj/structure/stairs/perspective{ dir = 8; icon_state = "p_stair_full" }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/cargo_intake) "kWZ" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "kXa" = ( /obj/structure/window/reinforced{ @@ -27646,15 +22491,10 @@ layer = 3 }, /obj/structure/machinery/computer3/server/rack, -/turf/open/floor{ - icon_state = "bcircuit" - }, +/turf/open/floor/bcircuit, /area/lv522/atmos/east_reactor/south) "kXc" = ( -/obj/structure/prop/ice_colony/ground_wire{ - dir = 8 - }, -/turf/open/auto_turf/shale/layer1, +/turf/closed/wall/solaris/reinforced/hull/lv522, /area/lv522/outdoors/colony_streets/central_streets) "kXe" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -27665,9 +22505,7 @@ "kXf" = ( /obj/item/stack/sheet/wood, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/landing_zone_2) "kXg" = ( /obj/structure/machinery/door/airlock/almayer/medical{ @@ -27678,9 +22516,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/medical) "kXk" = ( /obj/structure/bed, @@ -27690,9 +22526,7 @@ /obj/item/clothing/under/suit_jacket/stowaway, /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles, /area/lv522/indoors/c_block/mining) "kXo" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -27702,9 +22536,7 @@ /area/lv522/outdoors/w_rockies) "kXB" = ( /obj/item/stack/sheet/metal, -/turf/open/floor/corsat{ - icon_state = "brown" - }, +/turf/open/floor/corsat/brown, /area/lv522/atmos/cargo_intake) "kXY" = ( /turf/open/floor/prison, @@ -27720,10 +22552,7 @@ dir = 8; flipped = 1 }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/northwest, /area/lv522/indoors/a_block/admin) "kYH" = ( /obj/structure/barricade/wooden{ @@ -27738,25 +22567,19 @@ /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/lv522/outdoors/colony_streets/windbreaker/observation) "kYM" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/security) "kZe" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/warning_stripes{ icon_state = "SW-out" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/way_in_command_centre) "kZj" = ( /obj/item/ammo_magazine/rifle/m4ra/ap{ @@ -27769,7 +22592,6 @@ /obj/structure/platform_decoration{ dir = 8 }, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/plating, /area/lv522/landing_zone_1/tunnel) "kZs" = ( @@ -27781,18 +22603,6 @@ /obj/effect/decal/cleanable/blood/drip, /turf/open/floor/prison, /area/lv522/indoors/a_block/admin) -"kZJ" = ( -/obj/structure/window/framed/strata/reinforced, -/obj/structure/machinery/door/poddoor/almayer/closed{ - id = "LZ1_Lockdown_Lo"; - name = "Emergency Lockdown" - }, -/obj/effect/landmark/lv624/fog_blocker/short, -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/floor/corsat{ - icon_state = "marked" - }, -/area/lv522/landing_zone_1/ceiling) "kZX" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal{ @@ -27803,36 +22613,27 @@ pixel_x = 23; pixel_y = 21 }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/kitchen/damage) "lag" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/power/apc/weak{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/way_in_command_centre) "lao" = ( /obj/structure/machinery/door/airlock/almayer/maint{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/sewer) "lau" = ( /obj/item/stack/sheet/metal, /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/east, /area/lv522/indoors/a_block/admin) "laX" = ( /obj/structure/prop/invuln/ice_prefab/trim{ @@ -27858,24 +22659,18 @@ /obj/item/shard{ icon_state = "medium" }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "lbo" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/way_in_command_centre) "lbt" = ( /obj/structure/machinery/door/poddoor/shutters/almayer{ id = "Reactor_entry_1" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/way_in_command_centre) "lbA" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -27891,7 +22686,7 @@ /area/lv522/indoors/a_block/admin) "lbH" = ( /obj/structure/largecrate/random, -/turf/open/auto_turf/shale/layer1, +/turf/open/asphalt/cement/cement12, /area/lv522/outdoors/colony_streets/south_street) "lbI" = ( /obj/structure/surface/table/almayer, @@ -27903,51 +22698,36 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/way_in_command_centre) "lbK" = ( /obj/structure/barricade/deployable{ dir = 8 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/admin) "lbX" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/east, /area/lv522/atmos/outdoor) "lcK" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/admin) "lcM" = ( /obj/item/prop/alien/hugger, /obj/structure/surface/table/almayer, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/lv522/indoors/b_block/bar) "lcP" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/floor/corsat{ - icon_state = "brown" - }, +/turf/open/floor/corsat/brown, /area/lv522/atmos/west_reactor) "lcT" = ( /obj/structure/surface/table/almayer, @@ -27957,23 +22737,17 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "ldg" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/a_block/admin) "ldi" = ( /obj/structure/machinery/light, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/cargo_intake) "ldr" = ( /obj/effect/decal/cleanable/blood/xeno{ @@ -27994,9 +22768,7 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe, /area/lv522/atmos/reactor_garage) "ldC" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -28008,51 +22780,21 @@ }, /turf/open/auto_turf/shale/layer1, /area/lv522/outdoors/colony_streets/north_west_street) -"lea" = ( -/obj/structure/machinery/door/airlock/almayer/security/glass{ - name = "\improper Marshall Office Interrogation"; - req_access = null - }, -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 4 - }, -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 4 - }, -/obj/structure/machinery/door/poddoor/shutters/almayer/open{ - dir = 4; - id = "Sec-Kitchen-Lockdown"; - name = "\improper Storm Shutters" - }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, -/area/lv522/indoors/a_block/security) "leg" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/lv522/indoors/a_block/fitness/glass) "leh" = ( /obj/structure/machinery/space_heater/radiator/red{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/security) "lek" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/east, /area/lv522/indoors/a_block/dorms) "lel" = ( /obj/structure/machinery/floodlight, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/mining) "lep" = ( /obj/effect/decal/cleanable/dirt, @@ -28067,48 +22809,37 @@ dir = 4; id = "Reactor_entry_2" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/way_in_command_centre) "leH" = ( /obj/structure/barricade/deployable{ dir = 8 }, -/obj/item/clothing/suit/storage/marine/rto, +/obj/item/clothing/suit/storage/marine/medium/rto, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/east, /area/lv522/atmos/east_reactor/south) "leI" = ( /obj/structure/barricade/wooden{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "leO" = ( /obj/structure/machinery/portable_atmospherics/hydroponics{ icon_state = "hydrotray4" }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating{ - icon_state = "platebotc" - }, +/turf/open/floor/plating/platebotc, /area/lv522/indoors/b_block/hydro/glass) "leP" = ( /obj/item/reagent_container/glass/bucket/janibucket{ pixel_x = 7; pixel_y = -12 }, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/lv522/outdoors/colony_streets/south_street) "leV" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -28118,62 +22849,48 @@ /area/lv522/indoors/a_block/admin) "lfe" = ( /obj/structure/window_frame/strata, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/dorms) "lfj" = ( -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/sewer) "lfA" = ( /obj/structure/closet/crate, /obj/item/weapon/classic_baton, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/landing_zone_2) "lfS" = ( -/turf/open/asphalt/cement{ - icon_state = "cement2" - }, +/turf/open/asphalt/cement/cement2, /area/lv522/outdoors/nw_rockies) "lfU" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/recharger, -/turf/open/floor/plating{ - icon_state = "platebot" - }, +/turf/open/floor/plating/platebot, /area/lv522/indoors/c_block/cargo) "lgf" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/cargo_intake) "lgY" = ( /obj/structure/platform_decoration{ dir = 1 }, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/auto_turf/sand_white/layer0, /area/lv522/landing_zone_1) "lhb" = ( /obj/structure/prop/invuln/ice_prefab{ - dir = 9 + dir = 5 }, /obj/structure/prop/invuln/ice_prefab/roof_greeble{ - icon_state = "solarpanel1" + icon_state = "solarpanel1"; + pixel_x = 7 }, /turf/open/auto_turf/shale/layer1, /area/lv522/outdoors/w_rockies) "lhd" = ( /obj/effect/decal/cleanable/blood/xeno, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/a_block/admin) "lhp" = ( /obj/effect/decal/warning_stripes{ @@ -28183,39 +22900,24 @@ /obj/item/weapon/gun/rifle/m41a{ current_mag = null }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/outdoors/colony_streets/north_street) -"lhC" = ( -/obj/structure/prop/invuln/ice_prefab{ - dir = 5 - }, -/turf/open/auto_turf/sand_white/layer0, -/area/lv522/outdoors/w_rockies) "lhD" = ( /obj/structure/barricade/handrail{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/cargo_intake) "lhE" = ( /obj/structure/cargo_container/hd/left/alt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/landing_zone_2) "lhI" = ( /obj/structure/closet/secure_closet/miner, /obj/structure/barricade/handrail{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/mining) "lhK" = ( /obj/structure/closet/secure_closet{ @@ -28226,35 +22928,23 @@ /area/lv522/indoors/a_block/security/glass) "lhP" = ( /obj/structure/curtain/medical, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/lv522/indoors/a_block/medical) "lhT" = ( -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/a_block/security) "lit" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/floor/corsat{ - icon_state = "brown" - }, +/turf/open/floor/corsat/brown, /area/lv522/atmos/cargo_intake) "liD" = ( /obj/item/prop/alien/hugger, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/atmos/cargo_intake) "liK" = ( /obj/item/prop/colony/used_flare, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/south) "liN" = ( /obj/structure/pipes/vents/pump, @@ -28266,9 +22956,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/south) "ljm" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_nest, @@ -28276,9 +22964,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/east_reactor/south) "ljq" = ( /obj/structure/girder/displaced, @@ -28301,16 +22987,12 @@ "ljQ" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_nest, /obj/effect/landmark/corpsespawner/colonist/burst, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "brown" - }, +/obj/effect/landmark/xeno_spawn, +/turf/open/floor/corsat/brown/west, /area/lv522/atmos/east_reactor/south) "ljW" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/strata{ - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1, /area/lv522/indoors/lone_buildings/chunk) "lkj" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -28323,14 +23005,19 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/south) "lko" = ( /obj/item/stack/sheet/metal, /turf/open/floor/corsat, /area/lv522/atmos/cargo_intake) +"lkx" = ( +/obj/item/fuel_cell{ + pixel_x = -8; + pixel_y = -2 + }, +/turf/open/floor/corsat/brown/east, +/area/lv522/atmos/east_reactor) "lkH" = ( /obj/item/ammo_magazine/rifle/heap{ current_rounds = 0 @@ -28340,31 +23027,22 @@ "llA" = ( /obj/effect/decal/cleanable/blood/drip, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/a_block/kitchen) "llG" = ( /obj/structure/bed/chair/comfy{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/southeast, /area/lv522/atmos/east_reactor/south) "llJ" = ( /obj/structure/machinery/light, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/way_in_command_centre) "llM" = ( /obj/item/tool/kitchen/knife/butcher, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/lv522/indoors/a_block/kitchen) "llU" = ( /obj/structure/prop/invuln/ice_prefab, @@ -28388,45 +23066,33 @@ /obj/structure/machinery/space_heater/radiator/red{ dir = 8 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/admin) "lmp" = ( /obj/structure/bed, /obj/item/bedsheet/brown{ layer = 3.1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/a_block/hallway) "lmu" = ( /obj/structure/barricade/deployable{ dir = 8 }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/east, /area/lv522/atmos/east_reactor/south) "lmz" = ( /obj/item/weapon/gun/rifle/m41a{ current_mag = null }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/south) "lmA" = ( /obj/structure/surface/table/almayer, /obj/item/folder/black_random, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "lmF" = ( /obj/effect/decal/cleanable/dirt, @@ -28443,18 +23109,14 @@ pixel_y = -6; stat = 2 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/lone_buildings/outdoor_bot) "lmI" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ dir = 1; name = "\improper A-Block Dorms And Office Airlock" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/dorms) "lmJ" = ( /obj/structure/prop/dam/crane/cargo, @@ -28471,9 +23133,7 @@ icon_state = "W" }, /obj/item/stack/folding_barricade, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/outdoors/colony_streets/north_street) "lmY" = ( /turf/closed/wall/strata_outpost, @@ -28483,39 +23143,28 @@ icon_state = "N"; pixel_y = 1 }, -/turf/open/floor/prison{ - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe, /area/lv522/atmos/east_reactor/south) "lnj" = ( /obj/structure/barricade/wooden{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/kitchen/glass) "lnC" = ( /obj/structure/largecrate/supply/supplies/water, /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/filt) "lnF" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner/east, /area/lv522/atmos/filt) "lnH" = ( /obj/structure/surface/table/almayer, /obj/item/ore/gold, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "lnK" = ( /obj/structure/stairs/perspective{ @@ -28525,9 +23174,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/lv522/outdoors/colony_streets/north_street) "lnL" = ( /obj/structure/prop/invuln/ice_prefab{ @@ -28545,18 +23192,13 @@ /turf/open/floor/prison, /area/lv522/indoors/a_block/dorms) "lnU" = ( -/turf/open/floor/corsat{ - dir = 5; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/northeast, /area/lv522/atmos/filt) "lot" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/c_block/bridge) "loB" = ( /obj/structure/surface/table/almayer, @@ -28565,36 +23207,27 @@ pixel_x = -4; pixel_y = 9 }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/security) "loD" = ( /obj/structure/machinery/conveyor{ dir = 5; id = "cargo_container" }, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/northwest, /area/lv522/atmos/cargo_intake) "loS" = ( /obj/structure/bed/chair{ dir = 8 }, /obj/item/prop/alien/hugger, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/lv522/outdoors/colony_streets/windbreaker/observation) "lpi" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/lv522/outdoors/colony_streets/east_central_street) "lpq" = ( /obj/structure/bed/stool, @@ -28603,10 +23236,7 @@ /area/lv522/indoors/b_block/bar) "lpt" = ( /obj/structure/cargo_container/watatsumi/right, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/indoors/lone_buildings/storage_blocks) "lpy" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, @@ -28643,32 +23273,23 @@ /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/barricade/wooden, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/bridges/garden_bridge) "lqY" = ( /obj/effect/decal/cleanable/dirt, /obj/item/stack/sheet/metal, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/cargo_intake) "lrd" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/floor/corsat{ - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner, /area/lv522/atmos/east_reactor/south) "lrh" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/cargo_intake) "lrm" = ( /obj/structure/prop/invuln/ice_prefab{ @@ -28684,53 +23305,37 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/reactor_garage) "lrt" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/a_block/security) "lrG" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/cargo_intake) "lrJ" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/kitchen) "lrM" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner/west, /area/lv522/atmos/reactor_garage) "lrQ" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_nest, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/south) "lsf" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/southwest, /area/lv522/indoors/a_block/admin) "lsD" = ( /obj/structure/bed/chair/comfy{ @@ -28757,9 +23362,7 @@ icon_state = "N"; pixel_y = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/colony_streets/north_east_street) "ltf" = ( /obj/structure/platform{ @@ -28777,9 +23380,7 @@ /obj/structure/platform{ dir = 4 }, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/lv522/outdoors/colony_streets/north_east_street) "ltC" = ( /obj/structure/bed/chair/comfy, @@ -28796,12 +23397,9 @@ /turf/open/floor/plating/plating_catwalk/prison, /area/lv522/indoors/a_block/security) "lul" = ( -/obj/structure/surface/table/almayer, -/obj/item/frame/fire_alarm, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/lv522/atmos/sewer) +/obj/structure/platform_decoration, +/turf/open/asphalt/cement/cement3, +/area/lv522/outdoors/colony_streets/south_west_street) "lum" = ( /obj/structure/platform, /obj/structure/platform{ @@ -28826,14 +23424,11 @@ /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/auto_turf/sand_white/layer0, +/turf/open/asphalt/cement/cement3, /area/lv522/outdoors/colony_streets/south_west_street) "lvF" = ( /obj/item/tool/surgery/circular_saw, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan2" - }, +/turf/open/floor/strata/cyan2/east, /area/lv522/indoors/a_block/medical) "lvH" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -28848,48 +23443,36 @@ /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/nw_rockies) "lvX" = ( /obj/structure/bed/chair/comfy{ dir = 4 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/corpo/glass) "lwc" = ( /obj/structure/prop/vehicles{ icon_state = "truck_damaged" }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/reactor_garage) "lwm" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner/west, /area/lv522/atmos/east_reactor/south) "lwr" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor/plating/plating_catwalk/prison, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/sewer) "lwv" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/lv522/outdoors/colony_streets/central_streets) "lwH" = ( /obj/structure/surface/rack, @@ -28903,9 +23486,7 @@ /obj/item/frame/table/almayer{ pixel_y = 1 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "lwW" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -28920,31 +23501,20 @@ }, /turf/open/floor/prison, /area/lv522/indoors/a_block/admin) -"lxj" = ( -/obj/structure/prop/invuln/ice_prefab, -/turf/open/auto_turf/sand_white/layer0, -/area/lv522/outdoors/w_rockies) "lxp" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/security/glass) "lxG" = ( /obj/structure/surface/table/almayer, /obj/effect/spider/spiderling/nogrow, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/b_block/bar) "lxI" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/east, /area/lv522/indoors/a_block/admin) "lxL" = ( /turf/open/floor/prison, @@ -28955,9 +23525,7 @@ /area/lv522/indoors/a_block/corpo/glass) "lxW" = ( /obj/structure/cargo_container/kelland/left, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/north_command_centre) "lxZ" = ( /obj/structure/bed/chair/comfy{ @@ -28974,24 +23542,17 @@ "lyu" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/south) "lyD" = ( -/turf/open/asphalt/cement{ - icon_state = "cement15" - }, +/turf/open/asphalt/cement/cement15, /area/lv522/outdoors/colony_streets/south_street) "lyP" = ( /turf/open/auto_turf/shale/layer2, /area/lv522/outdoors/colony_streets/north_east_street) "lyQ" = ( /obj/effect/landmark/survivor_spawner, -/turf/open/floor/prison{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/east, /area/lv522/indoors/a_block/admin) "lzb" = ( /obj/effect/decal/cleanable/dirt, @@ -28999,18 +23560,14 @@ dir = 8 }, /obj/structure/machinery/light, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/way_in_command_centre) "lze" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/colony_streets/north_west_street) "lzk" = ( /obj/structure/machinery/door/airlock/almayer/generic{ @@ -29018,9 +23575,7 @@ name = "\improper Post Office" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/dorms) "lzw" = ( /obj/structure/prop/ice_colony/ground_wire, @@ -29037,9 +23592,7 @@ }, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/cobweb2/dynamic, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/garage) "lzB" = ( /obj/structure/surface/rack, @@ -29052,10 +23605,7 @@ }, /obj/structure/machinery/faxmachine, /obj/effect/decal/cleanable/cobweb, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/c_block/mining) "lzU" = ( /obj/structure/platform{ @@ -29072,9 +23622,7 @@ /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/colony_streets/south_east_street) "lAa" = ( /obj/effect/decal/cleanable/dirt, @@ -29086,19 +23634,14 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/a_block/dorms) "lAk" = ( /obj/structure/machinery/power/apc/weak{ dir = 1 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/c_block/mining) "lAm" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -29106,72 +23649,49 @@ /turf/open/floor/plating/plating_catwalk/prison, /area/lv522/indoors/a_block/fitness/glass) "lAn" = ( -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/colony_streets/north_east_street) "lAA" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/west, /area/lv522/atmos/cargo_intake) "lAD" = ( /obj/structure/foamed_metal, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/south) "lAK" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/south) "lAS" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/south) "lBd" = ( /obj/structure/machinery/disposal, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/b_block/bridge) "lBj" = ( /obj/structure/machinery/light{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) -"lBl" = ( -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/auto_turf/sand_white/layer0, -/area/lv522/landing_zone_1) "lBu" = ( /obj/structure/machinery/light{ dir = 4 }, /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/east, /area/lv522/indoors/a_block/hallway) "lBw" = ( /obj/structure/stairs/perspective{ @@ -29184,9 +23704,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/lv522/indoors/b_block/bar) "lBE" = ( /obj/structure/prop/invuln/ice_prefab{ @@ -29205,28 +23723,11 @@ "lCj" = ( /obj/item/prop/alien/hugger, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/admin) -"lCn" = ( -/obj/structure/stairs/perspective{ - dir = 10; - icon_state = "p_stair_full" - }, -/obj/structure/platform_decoration{ - dir = 4 - }, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, -/area/lv522/outdoors/colony_streets/east_central_street) "lCx" = ( /obj/effect/decal/cleanable/generic, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/security) "lCD" = ( /obj/effect/decal/cleanable/dirt, @@ -29234,10 +23735,7 @@ pixel_y = 30 }, /obj/structure/machinery/iv_drip, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/north, /area/lv522/indoors/a_block/hallway) "lCH" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -29249,10 +23747,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/outdoors/colony_streets/north_west_street) "lDc" = ( /obj/structure/barricade/deployable{ @@ -29261,50 +23756,37 @@ /obj/structure/machinery/m56d_hmg{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "brown" - }, +/turf/open/floor/corsat/brown, /area/lv522/atmos/east_reactor/south) "lDk" = ( -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/way_in_command_centre) "lDr" = ( /obj/item/prop/colony/proptag{ desc = "A fallen marine's information dog tag. It reads, Sergeant Douglas 'Bedwetter' Smith" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/southeast, /area/lv522/atmos/east_reactor/south) "lDC" = ( /obj/structure/bed/chair{ dir = 1 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/security) "lDE" = ( /obj/structure/stairs/perspective{ icon_state = "p_stair_full" }, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/lv522/outdoors/colony_streets/east_central_street) "lDN" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/prop/almayer/computer/PC{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/east_reactor/south) "lDU" = ( /obj/structure/surface/table/almayer, @@ -29314,9 +23796,7 @@ pixel_x = 26 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/security/glass) "lEb" = ( /obj/structure/pipes/vents/pump, @@ -29326,17 +23806,12 @@ pixel_x = -16; req_access = null }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/north, /area/lv522/atmos/filt) "lEd" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/closet/secure_closet/engineering_welding, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/way_in_command_centre) "lEk" = ( /obj/structure/surface/table/almayer, @@ -29348,56 +23823,37 @@ pixel_x = 3; pixel_y = 3 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "lEF" = ( -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/bridges/dorms_fitness) "lER" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/cargo_intake) "lEZ" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/west, /area/lv522/atmos/reactor_garage) "lFa" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/north, /area/lv522/atmos/reactor_garage) "lFd" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/east_reactor) "lFk" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/east_reactor) "lFt" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/north, /area/lv522/atmos/filt) "lFO" = ( /obj/item/storage/backpack/marine/satchel{ @@ -29424,20 +23880,14 @@ /obj/item/stack/sheet/mineral/uranium/small_stack{ pixel_y = 7 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/lv522/indoors/lone_buildings/outdoor_bot) "lGx" = ( /obj/item/trash/uscm_mre, /obj/structure/machinery/space_heater/radiator/red{ dir = 8 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/admin) "lGA" = ( /obj/effect/decal/cleanable/dirt, @@ -29447,24 +23897,16 @@ layer = 3.1; pixel_y = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/hallway) "lGW" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/cobweb, -/turf/open/floor/shiva{ - icon_state = "radiator_tile2" - }, +/turf/open/floor/shiva/radiator_tile2, /area/lv522/indoors/c_block/bridge) "lHa" = ( /obj/structure/prop/almayer/computers/sensor_computer2, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/admin) "lHd" = ( /obj/structure/reagent_dispensers/watertank, @@ -29484,18 +23926,13 @@ pixel_y = 7 }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/admin) "lHh" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/shiva{ - icon_state = "radiator_tile2" - }, +/turf/open/floor/shiva/radiator_tile2, /area/lv522/indoors/c_block/cargo) "lHk" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -29515,9 +23952,7 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/lv522/indoors/a_block/kitchen) "lHu" = ( /obj/effect/decal/cleanable/dirt, @@ -29534,9 +23969,7 @@ /area/lv522/indoors/lone_buildings/engineering) "lHH" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/landing_zone_2/ceiling) "lHL" = ( /obj/structure/bed/chair{ @@ -29548,9 +23981,7 @@ /turf/open/floor/carpet, /area/lv522/indoors/c_block/garage) "lHS" = ( -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles, /area/lv522/indoors/c_block/mining) "lHV" = ( /obj/item/stack/sheet/metal, @@ -29564,9 +23995,7 @@ /area/lv522/indoors/a_block/admin) "lId" = ( /obj/structure/largecrate/random/barrel, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/landing_zone_2) "lIy" = ( /obj/effect/decal/cleanable/dirt, @@ -29577,19 +24006,14 @@ id = "LV_522_Hydro-Lockdown"; name = "\improper Storm Shutters" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/b_block/hydro) "lIB" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/lv522/indoors/b_block/bridge) "lIR" = ( /obj/structure/prop/invuln/ice_prefab/trim{ @@ -29606,7 +24030,6 @@ /area/lv522/atmos/filt) "lJq" = ( /obj/structure/largecrate/random/secure, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/auto_turf/shale/layer1, /area/lv522/landing_zone_1) "lJU" = ( @@ -29616,11 +24039,7 @@ pixel_y = 6 }, /obj/item/tool/pen/blue/clicky, -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/landing_zone_1/ceiling) "lKi" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -29632,15 +24051,11 @@ /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/colony_streets/north_west_street) "lKl" = ( /obj/structure/machinery/vending/snack/packaged, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/south) "lKu" = ( /obj/structure/machinery/power/smes/buildable{ @@ -29655,20 +24070,14 @@ /area/lv522/indoors/lone_buildings/engineering) "lKC" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/north, /area/lv522/atmos/filt) "lKF" = ( /obj/structure/barricade/deployable{ dir = 4 }, /obj/effect/landmark/survivor_spawner/lv522_forecon_marksman, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/lv522/indoors/a_block/admin) "lLl" = ( /obj/structure/foamed_metal, @@ -29683,17 +24092,11 @@ /obj/structure/machinery/power/apc/weak{ dir = 1 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/lv522/indoors/c_block/t_comm) "lMF" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/southeast, /area/lv522/atmos/east_reactor/south) "lMH" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -29703,10 +24106,7 @@ /area/lv522/outdoors/nw_rockies) "lML" = ( /obj/effect/decal/cleanable/generic, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/b_block/hydro) "lMN" = ( /obj/structure/barricade/deployable{ @@ -29715,25 +24115,18 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/south) "lMT" = ( /obj/structure/machinery/light{ dir = 8 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/hallway) "lMZ" = ( /obj/effect/decal/cleanable/mucus, -/turf/open/floor/strata{ - icon_state = "white_cyan3" - }, +/turf/open/floor/strata/white_cyan3, /area/lv522/indoors/a_block/medical/glass) "lNb" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ @@ -29742,9 +24135,7 @@ panel_open = 1 }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/dorms) "lNf" = ( /obj/structure/pipes/standard/manifold/hidden/green{ @@ -29762,10 +24153,7 @@ dir = 8; icon_state = "p_stair_full" }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/admin) "lNs" = ( /obj/structure/surface/table/almayer, @@ -29786,24 +24174,18 @@ /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/south) "lNT" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/indoors/c_block/mining) "lNU" = ( /obj/effect/decal/warning_stripes{ icon_state = "E"; pixel_x = 1 }, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/lv522/outdoors/colony_streets/central_streets) "lOi" = ( /obj/structure/pipes/standard/manifold/hidden/green{ @@ -29814,10 +24196,7 @@ /area/lv522/indoors/a_block/dorms/glass) "lOk" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/prison{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/west, /area/lv522/indoors/a_block/admin) "lOq" = ( /obj/structure/bed/chair/comfy{ @@ -29833,10 +24212,7 @@ }, /obj/item/prop/alien/hugger, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan2" - }, +/turf/open/floor/strata/cyan2/east, /area/lv522/indoors/a_block/medical) "lPf" = ( /obj/structure/stairs/perspective{ @@ -29856,24 +24232,22 @@ /area/lv522/outdoors/colony_streets/south_east_street) "lPv" = ( /obj/effect/decal/cleanable/liquid_fuel, -/turf/open/asphalt/cement{ - icon_state = "cement4" +/obj/structure/stairs/perspective{ + dir = 1; + icon_state = "p_stair_full" }, +/turf/open/asphalt/cement/cement4, /area/lv522/outdoors/colony_streets/north_street) "lPM" = ( /obj/structure/girder, -/turf/open/asphalt/cement{ - icon_state = "cement15" - }, +/turf/open/asphalt/cement/cement15, /area/lv522/outdoors/colony_streets/north_street) "lPT" = ( /obj/structure/bed/chair{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/mining) "lPY" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -29911,9 +24285,7 @@ layer = 2.9; pixel_y = 3 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "lRF" = ( /obj/structure/girder, @@ -29938,25 +24310,17 @@ "lSl" = ( /obj/structure/barricade/wooden, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/hallway) "lSq" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/lv522/outdoors/colony_streets/central_streets) "lSs" = ( /obj/structure/machinery/conveyor, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/west, /area/lv522/atmos/cargo_intake) "lSF" = ( /obj/structure/stairs/perspective{ @@ -29990,9 +24354,7 @@ dir = 10 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/indoors/c_block/mining) "lTl" = ( /obj/structure/prop/ice_colony/dense/planter_box{ @@ -30001,10 +24363,7 @@ /obj/structure/flora/bush/ausbushes/reedbush{ pixel_y = 11 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/a_block/dorms) "lTQ" = ( /obj/effect/decal/cleanable/blood/gibs/xeno, @@ -30021,10 +24380,7 @@ "lUf" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/static_comms/net_one, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/indoors/lone_buildings/outdoor_bot) "lUh" = ( /obj/effect/decal/warning_stripes{ @@ -30062,9 +24418,7 @@ /obj/structure/machinery/prop/almayer/computer/PC{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "blue" - }, +/turf/open/floor/prison/blue, /area/lv522/indoors/a_block/admin) "lUU" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -30072,9 +24426,7 @@ name = "\improper A-Block Corporate Office Airlock"; req_access_txt = "100" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/corpo) "lUV" = ( /obj/effect/decal/warning_stripes{ @@ -30106,32 +24458,23 @@ /area/lv522/landing_zone_2/ceiling) "lVD" = ( /obj/structure/window/framed/strata/reinforced, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/bridges/corpo) "lVK" = ( /obj/structure/closet/bodybag, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/lv522/indoors/a_block/medical/glass) "lVV" = ( /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/casino) "lVY" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/a_block/dorms) "lVZ" = ( /obj/structure/stairs/perspective{ @@ -30141,15 +24484,13 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/auto_turf/shale/layer1, +/turf/open/asphalt/cement/cement12, /area/lv522/outdoors/colony_streets/north_east_street) "lWa" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/cargo_intake) "lWf" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -30161,21 +24502,16 @@ pixel_y = 16 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/kitchen/glass) "lWj" = ( /obj/structure/platform, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/auto_turf/sand_white/layer0, /area/lv522/landing_zone_1) "lWm" = ( /obj/structure/machinery/light, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/security/glass) "lWW" = ( /obj/item/trash/crushed_cup{ @@ -30185,9 +24521,7 @@ /turf/open/asphalt/cement, /area/lv522/outdoors/colony_streets/east_central_street) "lXC" = ( -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/east_reactor) "lXO" = ( /obj/effect/decal/cleanable/blood/drip, @@ -30197,9 +24531,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/east_reactor/south) "lXY" = ( /obj/structure/bed/chair/comfy{ @@ -30215,7 +24547,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/auto_turf/sand_white/layer0, +/turf/open/asphalt/cement/cement12, /area/lv522/outdoors/colony_streets/north_east_street) "lYG" = ( /obj/structure/platform_decoration{ @@ -30237,9 +24569,7 @@ "lYL" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms/glass) "lYR" = ( /obj/structure/surface/table/woodentable/fancy, @@ -30257,16 +24587,12 @@ /area/lv522/outdoors/colony_streets/north_west_street) "lZq" = ( /obj/structure/closet/firecloset/full, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/lv522/indoors/a_block/dorm_north) "lZI" = ( /obj/effect/decal/cleanable/dirt, /obj/item/prop/colony/used_flare, -/turf/open/floor/shiva{ - icon_state = "radiator_tile2" - }, +/turf/open/floor/shiva/radiator_tile2, /area/lv522/indoors/a_block/bridges/op_centre) "lZO" = ( /obj/structure/coatrack{ @@ -30281,28 +24607,18 @@ pixel_x = -7; pixel_y = 5 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/a_block/fitness) "lZY" = ( /obj/structure/machinery/light, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/lv522/indoors/b_block/bar) "mad" = ( /obj/effect/decal/cleanable/blood, -/obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/east_reactor/south) "maj" = ( -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/east_reactor/south) "mam" = ( /obj/effect/decal/warning_stripes{ @@ -30313,10 +24629,7 @@ pixel_y = 1 }, /obj/structure/fence, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/lv522/landing_zone_2/ceiling) "max" = ( /turf/open/auto_turf/sand_white/layer0, @@ -30327,20 +24640,14 @@ pixel_x = -11 }, /obj/effect/decal/cleanable/generic, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/b_block/hydro) "maE" = ( /obj/structure/machinery/light{ dir = 8 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/admin) "maF" = ( /obj/effect/spawner/gibspawner/xeno, @@ -30353,9 +24660,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/east_reactor/south) "mbr" = ( /obj/effect/decal/cleanable/dirt, @@ -30377,10 +24682,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/east, /area/lv522/atmos/east_reactor/south) "mbw" = ( /obj/effect/decal/cleanable/blood, @@ -30391,9 +24693,7 @@ phone_id = "Colony Dining"; pixel_y = 26 }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/kitchen/glass) "mbx" = ( /obj/effect/decal/cleanable/blood/xeno, @@ -30403,15 +24703,11 @@ /obj/structure/machinery/space_heater/radiator/red{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/security) "mbG" = ( /obj/item/prop/alien/hugger, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/lv522/indoors/b_block/bar) "mbH" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -30421,9 +24717,7 @@ /area/lv522/indoors/a_block/dorms) "mbM" = ( /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/filt) "mbO" = ( /obj/structure/cargo_container/horizontal/blue/bottom{ @@ -30441,9 +24735,7 @@ "mcf" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/strata{ - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1, /area/lv522/indoors/lone_buildings/chunk) "mco" = ( /obj/structure/machinery/space_heater/radiator/red{ @@ -30455,27 +24747,20 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv522/indoors/a_block/corpo/glass) "mcE" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/filt) "mcG" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/corsat{ - icon_state = "brown" - }, +/turf/open/floor/corsat/brown, /area/lv522/atmos/cargo_intake) "mcO" = ( /obj/structure/machinery/portable_atmospherics/canister/empty/oxygen{ @@ -30483,9 +24768,7 @@ pixel_x = 13; pixel_y = 19 }, -/turf/open/asphalt/cement{ - icon_state = "cement14" - }, +/turf/open/asphalt/cement/cement14, /area/lv522/outdoors/colony_streets/south_street) "mdp" = ( /obj/effect/decal/cleanable/blood/oil, @@ -30498,9 +24781,7 @@ }, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/cobweb, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/casino) "mdD" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -30519,30 +24800,30 @@ /turf/open/floor/plating/plating_catwalk/prison, /area/lv522/atmos/filt) "men" = ( -/turf/open/floor/shiva{ - icon_state = "radiator_tile2" - }, +/turf/open/floor/shiva/radiator_tile2, /area/lv522/atmos/way_in_command_centre) "meq" = ( -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/a_block/dorms/glass) "mev" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/shiva{ - icon_state = "radiator_tile2" - }, +/turf/open/floor/shiva/radiator_tile2, /area/lv522/indoors/a_block/bridges/corpo) "meK" = ( /obj/structure/machinery/door/airlock/almayer/generic{ dir = 1; name = "\improper C-Block - Cargo Airlock" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/c_block/bridge) +"meM" = ( +/obj/item/clothing/accessory/red, +/obj/item/clothing/under/liaison_suit/field{ + pixel_x = -4; + pixel_y = 9 + }, +/turf/open/floor/carpet, +/area/lv522/indoors/a_block/executive) "mfh" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, @@ -30552,10 +24833,7 @@ /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/east, /area/lv522/indoors/a_block/hallway) "mfF" = ( /obj/effect/decal/cleanable/dirt, @@ -30568,18 +24846,13 @@ pixel_x = 5; pixel_y = -6 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/a_block/fitness) "mfV" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/security) "mgb" = ( /obj/structure/largecrate/random/mini{ @@ -30592,9 +24865,7 @@ /obj/structure/bed/chair/comfy{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "blue" - }, +/turf/open/floor/prison/blue, /area/lv522/indoors/a_block/admin) "mgB" = ( /obj/structure/surface/table/almayer, @@ -30611,17 +24882,12 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/security/glass) "mhs" = ( /obj/item/prop/colony/used_flare, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/north, /area/lv522/indoors/a_block/hallway) "mhT" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -30644,30 +24910,21 @@ /area/lv522/outdoors/colony_streets/north_east_street) "mis" = ( /obj/effect/alien/resin/sticky, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner/east, /area/lv522/atmos/east_reactor/south) "miz" = ( /obj/structure/stairs/perspective{ dir = 1; icon_state = "p_stair_full" }, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/lv522/outdoors/colony_streets/north_street) "miH" = ( -/turf/open/floor{ - icon_state = "bcircuit" - }, +/turf/open/floor/bcircuit, /area/lv522/atmos/east_reactor/south) "miW" = ( /obj/structure/cargo_container/kelland/left, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/lone_buildings/storage_blocks) "miZ" = ( /obj/structure/prop/ice_colony/ground_wire, @@ -30678,10 +24935,7 @@ /area/lv522/outdoors/colony_streets/south_east_street) "mjq" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner/west, /area/lv522/atmos/west_reactor) "mjs" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -30695,19 +24949,14 @@ /area/lv522/outdoors/colony_streets/south_street) "mjC" = ( /obj/structure/surface/rack, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/b_block/hydro) "mjE" = ( /obj/structure/machinery/light{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/landing_zone_2/ceiling) "mjF" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -30715,26 +24964,18 @@ /area/lv522/atmos/reactor_garage) "mjR" = ( /obj/item/stack/sheet/metal, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/lv522/outdoors/n_rockies) "mjT" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 6; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/southeast, /area/lv522/indoors/a_block/admin) "mjW" = ( /obj/structure/machinery/vending/walkman{ density = 0; pixel_y = 16 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/lv522/indoors/a_block/fitness) "mjY" = ( /obj/item/shard{ @@ -30743,36 +24984,26 @@ pixel_y = -8 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/lv522/indoors/b_block/bridge) "mkb" = ( /obj/structure/prop/server_equipment/yutani_server{ density = 0; pixel_y = 16 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/atmos/east_reactor/south) "mkd" = ( /obj/item/stack/folding_barricade, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/security) "mkh" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/way_in_command_centre) "mkm" = ( /obj/structure/closet/crate, @@ -30784,9 +25015,7 @@ /area/lv522/outdoors/colony_streets/south_east_street) "mkJ" = ( /obj/structure/machinery/deployable/barrier, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/security) "mkW" = ( /obj/structure/bed/chair{ @@ -30808,11 +25037,12 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/atmos/east_reactor/south) +"mlv" = ( +/obj/structure/largecrate/random/secure, +/turf/open/floor/plating, +/area/lv522/landing_zone_1/tunnel/far) "mly" = ( /obj/structure/closet/firecloset/full, /obj/effect/decal/cleanable/dirt, @@ -30822,9 +25052,7 @@ /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "mlE" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -30849,25 +25077,18 @@ pixel_x = 2; pixel_y = 6 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "mlQ" = ( /obj/structure/surface/table/almayer, /obj/item/storage/belt/gun/smartgunner, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/admin) "mlR" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/reactor_garage) "mlZ" = ( /obj/structure/surface/table/almayer, @@ -30876,10 +25097,7 @@ pixel_y = 4 }, /obj/item/tool/pen/blue/clicky, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/admin) "mmh" = ( /obj/item/ammo_magazine/rifle/heap{ @@ -30889,18 +25107,14 @@ icon_state = "SE-out"; pixel_x = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/way_in_command_centre) "mmj" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/filt) "mmv" = ( /obj/structure/machinery/light{ @@ -30908,9 +25122,7 @@ }, /obj/structure/pipes/vents/pump, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "mmw" = ( /obj/structure/machinery/camera/autoname{ @@ -30919,10 +25131,7 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/lv522/outdoors/colony_streets/south_west_street) "mmE" = ( /obj/structure/machinery/colony_floodlight{ @@ -30931,14 +25140,10 @@ /obj/structure/platform{ dir = 8 }, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/lv522/outdoors/colony_streets/north_east_street) "mnb" = ( -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/lv522/outdoors/colony_streets/south_street) "mnr" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -30953,10 +25158,7 @@ dir = 8; pixel_x = -11 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/lv522/indoors/a_block/dorms) "mnw" = ( /obj/item/clothing/suit/storage/marine/M3S, @@ -30966,9 +25168,7 @@ /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/lv522/outdoors/colony_streets/windbreaker/observation) "mnz" = ( /obj/structure/platform_decoration{ @@ -30980,24 +25180,18 @@ /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/a_block/garden) "mnN" = ( /obj/item/prop/alien/hugger, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "mnQ" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/n_rockies) "mnU" = ( /obj/effect/decal/cleanable/dirt, @@ -31011,23 +25205,22 @@ dir = 9 }, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/filt) "moe" = ( -/turf/closed/wall/strata_outpost/reinforced/hull, -/area/lv522/oob/w_y_vault) +/obj/structure/stairs/perspective{ + dir = 8; + icon_state = "p_stair_full" + }, +/obj/structure/platform, +/turf/open/asphalt/cement, +/area/lv522/outdoors/colony_streets/south_west_street) "moz" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/light{ dir = 8 }, -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/landing_zone_1/ceiling) "moI" = ( /obj/effect/decal/cleanable/dirt, @@ -31041,11 +25234,7 @@ pixel_x = 8; pixel_y = 20 }, -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/landing_zone_1/ceiling) "moO" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -31057,22 +25246,15 @@ /obj/structure/machinery/door/airlock/almayer/generic{ name = "\improper A-Block Shared Dorms Airlock" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/outdoors/colony_streets/windbreaker/observation) "moZ" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/west, /area/lv522/atmos/east_reactor/west) "mpr" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "blue" - }, +/turf/open/floor/prison/blue, /area/lv522/indoors/a_block/admin) "mpF" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ @@ -31084,25 +25266,19 @@ id = "LV_522_Hydro-Lockdown"; name = "\improper Storm Shutters" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/b_block/bridge) "mpI" = ( /obj/structure/prop/server_equipment/yutani_server{ density = 0; pixel_y = 16 }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/security) "mpL" = ( /obj/structure/surface/table/almayer, /obj/item/device/flashlight/lamp, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/security) "mpN" = ( /obj/structure/prop/vehicles/crawler{ @@ -31116,17 +25292,12 @@ dir = 1; pixel_y = 3 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/south) "mpU" = ( /obj/structure/surface/rack, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/admin) "mqc" = ( /obj/effect/decal/cleanable/blood, @@ -31134,9 +25305,7 @@ icon_state = "W"; pixel_x = -1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/way_in_command_centre) "mqi" = ( /obj/structure/surface/table/almayer{ @@ -31144,10 +25313,7 @@ flipped = 1 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/admin) "mqk" = ( /obj/structure/desertdam/decals/road_edge{ @@ -31164,26 +25330,19 @@ /obj/structure/machinery/door/airlock/almayer/engineering/colony{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/east_reactor/south) "mqu" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/east_reactor/south) "mqv" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/west, /area/lv522/indoors/a_block/admin) "mqx" = ( /turf/open/gm/river, @@ -31208,22 +25367,15 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/east_reactor/south) "mrD" = ( /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/corpo/glass) "mrL" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/east_reactor) "mrM" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -31236,10 +25388,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/east, /area/lv522/atmos/east_reactor/south) "mse" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -31247,10 +25396,7 @@ /area/lv522/outdoors/colony_streets/south_west_street) "msf" = ( /obj/structure/machinery/light, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/southeast, /area/lv522/atmos/east_reactor) "msj" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -31265,15 +25411,11 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/command_centre) "msr" = ( /obj/structure/barricade/deployable, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/security) "msB" = ( /obj/item/reagent_container/food/snacks/stewedsoymeat{ @@ -31292,15 +25434,11 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/lv522/outdoors/n_rockies) "mto" = ( /obj/effect/landmark/monkey_spawn, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/filt) "mtt" = ( /obj/effect/decal/cleanable/vomit{ @@ -31339,9 +25477,7 @@ /area/lv522/indoors/a_block/dorms) "muB" = ( /obj/structure/girder, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/lv522/outdoors/colony_streets/north_street) "muO" = ( /obj/structure/surface/table/almayer, @@ -31362,22 +25498,16 @@ pixel_x = -8; pixel_y = 4 }, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/plating/plating_catwalk/prison, /area/lv522/landing_zone_1/ceiling) "muP" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/cobweb, /obj/effect/spider/spiderling/nogrow, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/hallway) "muV" = ( -/turf/open/floor/prison{ - icon_state = "blue" - }, +/turf/open/floor/prison/blue, /area/lv522/indoors/a_block/admin) "mvd" = ( /obj/structure/stairs/perspective{ @@ -31388,10 +25518,7 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/admin) "mvB" = ( /obj/item/prop/alien/hugger, @@ -31399,34 +25526,23 @@ /area/lv522/indoors/a_block/security) "mvI" = ( /obj/structure/bed/chair, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/reactor_garage) "mvP" = ( /obj/effect/decal/cleanable/dirt, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/plating/plating_catwalk/prison, /area/lv522/landing_zone_1/ceiling) "mvR" = ( -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/corpo/glass) "mwf" = ( /obj/structure/machinery/conveyor, -/turf/open/floor/corsat{ - icon_state = "brown" - }, +/turf/open/floor/corsat/brown, /area/lv522/atmos/cargo_intake) "mwh" = ( /obj/structure/surface/table/almayer, /obj/item/trash/cheesie, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/admin) "mwk" = ( /obj/effect/decal/warning_stripes{ @@ -31437,9 +25553,7 @@ icon_state = "E"; pixel_x = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/colony_streets/south_west_street) "mwp" = ( /obj/effect/spawner/random/tool, @@ -31458,9 +25572,7 @@ dir = 1; name = "\improper A-Block Corporate Office Airlock" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/corpo/glass) "mwT" = ( /obj/structure/prop/dam/truck, @@ -31469,9 +25581,7 @@ pixel_x = -1; pixel_y = 16 }, -/turf/open/floor/plating{ - icon_state = "platebot" - }, +/turf/open/floor/plating/platebot, /area/lv522/indoors/c_block/cargo) "mwX" = ( /obj/structure/prop/ice_colony/ground_wire{ @@ -31481,9 +25591,7 @@ /area/lv522/outdoors/colony_streets/north_west_street) "mxg" = ( /obj/structure/machinery/colony_floodlight, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/garden) "mxo" = ( /obj/structure/surface/rack, @@ -31491,38 +25599,27 @@ /obj/item/clothing/head/hardhat, /obj/item/tool/pickaxe, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/mining) "mxp" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_nest, /obj/effect/landmark/corpsespawner/colonist/burst, -/turf/open/floor/corsat{ - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner, /area/lv522/atmos/east_reactor/south) "mxt" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/east, /area/lv522/indoors/c_block/cargo) "mxz" = ( /obj/effect/spawner/gibspawner/xeno, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/b_block/hydro) "mxD" = ( /obj/structure/bed/chair{ dir = 4 }, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/plating/plating_catwalk/prison, /area/lv522/landing_zone_1/ceiling) "mxO" = ( @@ -31536,25 +25633,18 @@ id = "Sec-Kitchen-Lockdown"; name = "\improper Storm Shutters" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/kitchen/glass) "myf" = ( /obj/effect/decal/cleanable/cobweb2, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/b_block/hydro) "myz" = ( /turf/open/floor/plating/plating_catwalk/prison, /area/lv522/atmos/reactor_garage) "myC" = ( /obj/structure/machinery/vending/snack, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/mining) "myE" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -31571,10 +25661,7 @@ /obj/structure/machinery/atm{ pixel_y = 11 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/a_block/fitness) "myQ" = ( /obj/structure/surface/table/almayer, @@ -31582,11 +25669,7 @@ dir = 8; pixel_y = 5 }, -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/landing_zone_1/ceiling) "myV" = ( /obj/item/clothing/suit/storage/marine/light, @@ -31602,11 +25685,7 @@ /obj/item/device/flashlight/lamp{ pixel_x = 6 }, -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/landing_zone_1/ceiling) "mzi" = ( /obj/structure/largecrate/random/secure, @@ -31620,9 +25699,7 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/south) "mzX" = ( /obj/structure/bed/chair{ @@ -31636,17 +25713,13 @@ /area/lv522/outdoors/colony_streets/north_west_street) "mAA" = ( /obj/structure/machinery/light, -/turf/open/floor/shiva{ - icon_state = "radiator_tile2" - }, +/turf/open/floor/shiva/radiator_tile2, /area/lv522/indoors/c_block/cargo) "mAC" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/east_reactor/south) "mAD" = ( /obj/structure/closet/secure_closet/detective, @@ -31686,19 +25759,14 @@ }, /obj/structure/pipes/vents/pump, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/security) "mBy" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/west, /area/lv522/atmos/reactor_garage) "mBF" = ( /turf/closed/wall/strata_outpost, @@ -31708,20 +25776,14 @@ /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "w-y2" - }, +/turf/open/floor/almayer/w_y2/north, /area/lv522/atmos/way_in_command_centre) "mCm" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/lv522/indoors/a_block/fitness/glass) "mCq" = ( /obj/item/storage/beer_pack, @@ -31732,10 +25794,7 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/east, /area/lv522/atmos/reactor_garage) "mCA" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -31745,9 +25804,7 @@ "mCQ" = ( /obj/effect/decal/cleanable/blood, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/filt) "mDw" = ( /obj/structure/prop/invuln/ice_prefab{ @@ -31763,49 +25820,34 @@ pixel_y = 11 }, /obj/effect/decal/cleanable/cobweb, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/b_block/bridge) "mDT" = ( /obj/structure/largecrate/random/mini, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/landing_zone_2/ceiling) "mDX" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/space_heater/radiator/red{ dir = 8 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/a_block/fitness/glass) "mEg" = ( -/turf/open/floor/corsat{ - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner, /area/lv522/atmos/filt) "mEi" = ( /obj/structure/bed/chair, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms/glass) "mEp" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/north, /area/lv522/atmos/reactor_garage) "mEx" = ( /obj/item/stack/rods, @@ -31817,27 +25859,12 @@ /area/lv522/indoors/a_block/admin) "mEB" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/lv522/indoors/a_block/medical/glass) "mEG" = ( /obj/structure/largecrate/random, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/n_rockies) -"mFe" = ( -/obj/structure/machinery/light{ - dir = 8 - }, -/obj/structure/cargo_container/grant/left, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, -/area/lv522/indoors/lone_buildings/storage_blocks) "mFg" = ( /obj/structure/surface/table/almayer, /obj/item/co2_cartridge{ @@ -31845,9 +25872,7 @@ pixel_y = 14 }, /obj/item/clothing/accessory/armband/engine, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/south) "mFm" = ( /obj/structure/surface/table/almayer, @@ -31862,11 +25887,7 @@ }, /obj/effect/landmark/objective_landmark/close, /obj/effect/decal/cleanable/dirt, -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/landing_zone_1/ceiling) "mFA" = ( /obj/structure/stairs/perspective{ @@ -31880,9 +25901,7 @@ /obj/structure/machinery/door/airlock/almayer/generic{ name = "\improper C-Block - Radio Tower Airlock" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/c_block/t_comm) "mFZ" = ( /obj/structure/barricade/handrail/strata{ @@ -31904,36 +25923,25 @@ /obj/structure/machinery/prop/almayer/computer/PC{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/security) "mGH" = ( /obj/structure/largecrate/random/barrel/white, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/outdoors/nw_rockies) "mGN" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/lv522/outdoors/colony_streets/north_street) "mGY" = ( /obj/structure/window/framed/shiva, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/lone_buildings/outdoor_bot) "mHa" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/a_block/dorms/glass) "mHo" = ( /obj/structure/bed/chair/comfy{ @@ -31952,9 +25960,7 @@ /area/lv522/indoors/a_block/bridges/garden_bridge) "mHP" = ( /obj/effect/decal/cleanable/blood/drip, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/filt) "mHU" = ( /obj/structure/flora/bush/ausbushes/lavendergrass, @@ -31962,27 +25968,21 @@ /area/lv522/indoors/a_block/garden) "mHZ" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/shiva{ - icon_state = "radiator_tile2" - }, +/turf/open/floor/shiva/radiator_tile2, /area/lv522/indoors/a_block/corpo/glass) "mIa" = ( /obj/effect/decal/warning_stripes{ icon_state = "E"; pixel_x = 1 }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/outdoors/colony_streets/north_street) "mIq" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/way_in_command_centre) "mIO" = ( /obj/structure/machinery/vending/coffee, @@ -31990,9 +25990,7 @@ dir = 8 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/b_block/bar) "mIU" = ( /obj/item/clothing/mask/facehugger{ @@ -32003,18 +26001,12 @@ stat = 2 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/c_block/mining) "mIV" = ( /obj/structure/platform_decoration, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/admin) "mJs" = ( /obj/structure/prop/invuln/overhead_pipe{ @@ -32024,7 +26016,7 @@ }, /obj/vehicle/train/cargo/trolley, /turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "mJt" = ( /obj/structure/stairs/perspective{ dir = 9; @@ -32032,28 +26024,24 @@ }, /obj/structure/platform, /obj/structure/machinery/light, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/admin) "mJF" = ( /obj/structure/cargo_container/kelland/left{ layer = 2.9 }, -/obj/structure/platform, -/turf/open/asphalt/cement{ - icon_state = "cement4" +/obj/structure/stairs/perspective{ + dir = 1; + icon_state = "p_stair_full" }, +/turf/open/asphalt/cement/cement4, /area/lv522/outdoors/colony_streets/north_east_street) "mJG" = ( /obj/structure/surface/rack, /obj/item/device/analyzer, /obj/effect/landmark/objective_landmark/close, /obj/item/stack/sheet/cardboard/full_stack, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/mining) "mJQ" = ( /obj/item/storage/backpack/marine/satchel{ @@ -32080,16 +26068,11 @@ "mJZ" = ( /obj/structure/surface/table/almayer, /obj/item/clothing/suit/chef/classic, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/lv522/indoors/a_block/kitchen) "mKu" = ( /obj/structure/largecrate/random, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/landing_zone_2/ceiling) "mKA" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -32097,21 +26080,15 @@ /obj/structure/machinery/space_heater/radiator/red{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/a_block/admin) "mKN" = ( /obj/structure/cargo_container/kelland/left, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/cargo_intake) "mKQ" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/cargo_intake) "mKZ" = ( /obj/structure/prop/invuln/overhead_pipe{ @@ -32127,14 +26104,10 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/colony_streets/north_street) "mLp" = ( -/turf/open/floor/coagulation{ - icon_state = "8,0" - }, +/turf/open/floor/coagulation/icon8_0, /area/lv522/oob) "mLI" = ( /obj/structure/barricade/deployable{ @@ -32144,9 +26117,7 @@ icon_state = "W"; pixel_x = -1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/way_in_command_centre) "mLO" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -32179,24 +26150,17 @@ /area/lv522/outdoors/colony_streets/north_west_street) "mLX" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/east, /area/lv522/atmos/east_reactor/south) "mMj" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_nest, /obj/effect/landmark/corpsespawner/colonist/burst, -/turf/open/floor/corsat{ - icon_state = "brown" - }, +/turf/open/floor/corsat/brown, /area/lv522/atmos/east_reactor/south) "mMr" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/faxmachine/corporate, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/south) "mMv" = ( /obj/structure/bed/chair/comfy{ @@ -32210,25 +26174,17 @@ /area/lv522/indoors/a_block/dorms) "mMI" = ( /obj/structure/machinery/cm_vending/sorted/boozeomat, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/lv522/indoors/b_block/bar) "mMQ" = ( /obj/effect/decal/cleanable/blood/xeno, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/a_block/hallway) "mMU" = ( -/turf/open/floor/corsat{ - dir = 6; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/southeast, /area/lv522/atmos/filt) "mMX" = ( /obj/structure/powerloader_wreckage, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/plating, /area/lv522/landing_zone_1/tunnel) "mNc" = ( @@ -32244,9 +26200,7 @@ pixel_y = 12 }, /obj/item/clothing/mask/cigarette, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/lv522/indoors/a_block/dorm_north) "mNm" = ( /turf/open/floor/corsat, @@ -32262,24 +26216,25 @@ pixel_x = -3; pixel_y = 7 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "mNy" = ( /obj/structure/closet/bodybag, /obj/structure/curtain/medical, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/lv522/indoors/a_block/medical/glass) +"mNz" = ( +/obj/structure/barricade/deployable, +/obj/effect/decal/cleanable/blood/splatter, +/turf/open/shuttle/dropship/can_surgery/light_grey_bottom_left, +/area/lv522/landing_zone_forecon/UD6_Typhoon) "mNI" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "w-y1" +/obj/effect/decal/warning_stripes{ + icon_state = "S"; + pixel_y = -1 }, +/turf/open/floor/whiteyellowfull/east, /area/lv522/oob/w_y_vault) "mNR" = ( /obj/structure/prop/ice_colony/dense/planter_box{ @@ -32288,9 +26243,7 @@ /obj/structure/flora/bush/ausbushes/var3/ywflowers{ layer = 3 }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/kitchen) "mNX" = ( /obj/structure/pipes/vents/pump, @@ -32307,33 +26260,23 @@ /obj/item/device/flashlight/lamp{ pixel_x = -8 }, -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/landing_zone_1/ceiling) "mOh" = ( /obj/structure/machinery/space_heater/radiator/red{ pixel_y = 16 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/reactor_garage) "mOl" = ( /obj/structure/cargo_container/kelland/right, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/cargo_intake) "mOs" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/plating{ - icon_state = "platingdmg1" - }, +/turf/open/floor/plating/platingdmg1, /area/lv522/indoors/a_block/security) "mOy" = ( /obj/vehicle/train/cargo/trolley, @@ -32352,9 +26295,7 @@ pixel_y = 14 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/lv522/indoors/a_block/kitchen) "mOI" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -32370,10 +26311,7 @@ pixel_y = 9 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/b_block/bridge) "mOO" = ( /obj/structure/prop/invuln/ice_prefab{ @@ -32393,11 +26331,7 @@ name = "remote door-control"; pixel_y = 4 }, -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/landing_zone_1/ceiling) "mOQ" = ( /obj/structure/surface/table/almayer, @@ -32405,9 +26339,7 @@ dir = 8 }, /obj/structure/foamed_metal, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms/glass) "mPc" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -32420,9 +26352,7 @@ id = "Reactor_garage_2" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/reactor_garage) "mPj" = ( /turf/closed/wall/strata_outpost, @@ -32435,20 +26365,14 @@ icon_state = "E"; pixel_x = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/way_in_command_centre) "mPy" = ( /obj/structure/largecrate/random/barrel/green, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/cargo) "mPz" = ( -/turf/open/floor/coagulation{ - icon_state = "0,0" - }, +/turf/open/floor/coagulation/icon0_0, /area/lv522/oob) "mPB" = ( /obj/effect/decal/cleanable/dirt, @@ -32459,9 +26383,7 @@ /area/lv522/indoors/a_block/dorms/glass) "mPL" = ( /obj/structure/surface/rack, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "mPR" = ( /obj/structure/machinery/light{ @@ -32489,18 +26411,14 @@ /obj/item/reagent_container/food/snacks/donut{ pixel_y = 3 }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/security) "mQm" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/cameras/wooden_tv{ pixel_y = 6 }, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/landing_zone_2/ceiling) "mQq" = ( /obj/structure/machinery/space_heater/radiator/red{ @@ -32510,18 +26428,12 @@ /area/lv522/indoors/a_block/dorms/glass) "mQt" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/northeast, /area/lv522/atmos/reactor_garage) "mQv" = ( /obj/effect/decal/cleanable/dirt, /obj/item/prop/colony/used_flare, -/turf/open/floor/prison{ - dir = 5; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/northeast, /area/lv522/indoors/a_block/dorms) "mQw" = ( /obj/structure/stairs/perspective{ @@ -32552,14 +26464,16 @@ }, /obj/item/reagent_container/food/snacks/sliceable/bread, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/lv522/indoors/a_block/kitchen) "mRh" = ( -/obj/structure/window/framed/corsat, -/turf/open/floor/corsat, -/area/lv522/atmos/east_reactor) +/obj/structure/stairs/perspective{ + dir = 4; + icon_state = "p_stair_full" + }, +/obj/structure/platform, +/turf/open/asphalt/cement, +/area/lv522/outdoors/colony_streets/south_street) "mRs" = ( /obj/item/prop/colony/used_flare, /turf/open/auto_turf/shale/layer1, @@ -32582,9 +26496,7 @@ /area/lv522/indoors/a_block/executive) "mSc" = ( /obj/item/tool/wet_sign, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/cargo_intake) "mSe" = ( /turf/open/floor/plating/plating_catwalk/prison, @@ -32612,21 +26524,14 @@ /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/colony_streets/north_east_street) "mTd" = ( -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/west_reactor) "mTo" = ( /obj/structure/largecrate/random/secure, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/atmos/outdoor) "mTx" = ( /obj/structure/machinery/light{ @@ -32634,10 +26539,7 @@ }, /obj/item/cpr_dummy, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/medical) "mTE" = ( /obj/structure/platform/strata{ @@ -32682,10 +26584,7 @@ network = list("interrogation") }, /obj/structure/machinery/light/small, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/c_block/mining) "mUl" = ( /obj/structure/stairs/perspective{ @@ -32693,21 +26592,6 @@ }, /turf/open/floor/plating, /area/lv522/atmos/filt) -"mUo" = ( -/obj/structure/platform{ - dir = 8 - }, -/obj/structure/blocker/invisible_wall, -/obj/structure/prop/invuln{ - desc = "big pile energy."; - icon = 'icons/obj/structures/props/ice_colony/barrel_yard.dmi'; - icon_state = "pile_0"; - layer = 2.9; - name = "barrel pile"; - pixel_y = 3 - }, -/turf/open/floor/plating, -/area/lv522/indoors/c_block/cargo) "mUr" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" @@ -32723,9 +26607,7 @@ /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/a_block/garden) "mUS" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -32736,9 +26618,7 @@ id = "Sec-Kitchen-Lockdown"; name = "\improper Storm Shutters" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/kitchen) "mVi" = ( /obj/structure/platform, @@ -32746,9 +26626,7 @@ icon_state = "N"; pixel_y = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/a_block/garden) "mVj" = ( /obj/structure/machinery/light, @@ -32756,10 +26634,7 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/bridges/op_centre) "mVm" = ( /obj/effect/decal/cleanable/dirt, @@ -32781,9 +26656,7 @@ dir = 1; pixel_y = 26 }, -/turf/open/floor/wood{ - icon_state = "wood-broken2" - }, +/turf/open/floor/wood/wood_broken2, /area/lv522/indoors/b_block/bar) "mVE" = ( /obj/structure/stairs/perspective{ @@ -32796,14 +26669,10 @@ /area/lv522/atmos/filt) "mVH" = ( /obj/structure/surface/table/almayer, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms/glass) "mWc" = ( -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/lv522/outdoors/nw_rockies) "mWd" = ( /obj/structure/largecrate/random/secure, @@ -32827,16 +26696,11 @@ dir = 10 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/c_block/cargo) "mXn" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/southwest, /area/lv522/atmos/cargo_intake) "mXy" = ( /obj/structure/surface/table/woodentable/fancy, @@ -32844,16 +26708,11 @@ pixel_x = 6; pixel_y = 7 }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/lv522/indoors/b_block/bar) "mXA" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner/west, /area/lv522/atmos/cargo_intake) "mYo" = ( /obj/effect/decal/cleanable/blood/drip, @@ -32861,10 +26720,7 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/corpo) "mYS" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -32878,9 +26734,7 @@ /area/lv522/indoors/c_block/mining) "mZj" = ( /obj/structure/barricade/wooden, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/bridges/garden_bridge) "mZs" = ( /obj/structure/prop/invuln/ice_prefab/trim{ @@ -32893,9 +26747,7 @@ /area/lv522/outdoors/colony_streets/north_west_street) "mZE" = ( /obj/structure/foamed_metal, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms/glass) "mZJ" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -32905,13 +26757,11 @@ dir = 1; name = "\improper Family Dormitories" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/dorms) "mZK" = ( /obj/structure/surface/table/almayer, -/obj/structure/machinery/computer/cameras/wooden_tv/prop{ +/obj/structure/machinery/computer/cameras/wooden_tv/broadcast{ pixel_x = 16; pixel_y = 7 }, @@ -32921,20 +26771,12 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/prison, /area/lv522/indoors/a_block/dorms) -"mZM" = ( -/obj/structure/cargo_container/wy/left{ - layer = 5 - }, -/turf/open/auto_turf/sand_white/layer0, -/area/lv522/outdoors/w_rockies) "mZN" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/east_reactor/south) "mZQ" = ( /obj/structure/barricade/deployable, @@ -32944,9 +26786,7 @@ /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/east_reactor/south) "mZW" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, @@ -32963,17 +26803,13 @@ /obj/structure/machinery/prop/almayer/computer/PC{ pixel_y = 9 }, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/landing_zone_2/ceiling) "naw" = ( /obj/item/ammo_magazine/rifle/heap{ current_rounds = 0 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/colony_streets/north_east_street) "nax" = ( /turf/open/auto_turf/sand_white/layer0, @@ -32988,9 +26824,7 @@ icon_state = "flammable_pipe_3"; pixel_x = -3 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/west_reactor) "naH" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -33004,28 +26838,12 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/north, /area/lv522/indoors/a_block/hallway) "naS" = ( -/obj/effect/landmark/lv624/fog_blocker/short, /obj/structure/machinery/landinglight/ds1/delaythree, /turf/open/floor/plating, /area/lv522/landing_zone_1) -"naZ" = ( -/obj/structure/platform_decoration{ - dir = 8 - }, -/obj/structure/stairs/perspective{ - dir = 6; - icon_state = "p_stair_full" - }, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, -/area/lv522/outdoors/colony_streets/south_east_street) "nbg" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -33034,9 +26852,7 @@ /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/colony_streets/south_west_street) "nbj" = ( /obj/structure/platform{ @@ -33048,10 +26864,7 @@ /obj/structure/barricade/deployable{ dir = 1 }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/lv522/indoors/a_block/admin) "nbn" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -33077,15 +26890,11 @@ pixel_y = 22 }, /obj/effect/decal/cleanable/generic, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/security) "nbD" = ( /obj/structure/machinery/light, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/command_centre) "nbE" = ( /obj/structure/cargo_container/kelland/right, @@ -33098,36 +26907,28 @@ /area/lv522/landing_zone_forecon/UD6_Typhoon) "nbT" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 1; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/north, /area/lv522/atmos/cargo_intake) "ncg" = ( -/obj/structure/platform{ - dir = 8 - }, -/turf/open/asphalt/cement{ - icon_state = "cement1" +/obj/structure/stairs/perspective{ + dir = 4; + icon_state = "p_stair_full" }, +/turf/open/asphalt/cement/cement1, /area/lv522/outdoors/colony_streets/south_street) "ncp" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ dir = 1; name = "\improper B-Block Bar" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/b_block/bar) "ncv" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/south) "ncz" = ( /obj/structure/platform, @@ -33135,9 +26936,7 @@ icon_state = "N"; pixel_y = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/colony_streets/north_east_street) "ncA" = ( /obj/item/clothing/suit/storage/marine/medium, @@ -33153,9 +26952,7 @@ /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/nw_rockies) "ndb" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -33169,10 +26966,7 @@ icon_state = "medium" }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/lv522/indoors/b_block/hydro) "ndP" = ( /obj/structure/platform{ @@ -33189,14 +26983,12 @@ icon_state = "NW-out"; pixel_y = 1 }, -/turf/open/auto_turf/sand_white/layer0, +/turf/open/asphalt/cement/cement3, /area/lv522/outdoors/colony_streets/south_west_street) "nee" = ( /obj/structure/pipes/standard/manifold/hidden/green, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/security) "nel" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -33212,27 +27004,19 @@ pixel_y = 26 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/lv522/indoors/a_block/dorm_north) "nez" = ( /obj/item/ammo_magazine/rifle/heap{ current_rounds = 0 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/outdoors/colony_streets/north_east_street) "neI" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/west, /area/lv522/atmos/way_in_command_centre) "neO" = ( /obj/structure/machinery/light{ @@ -33240,9 +27024,7 @@ }, /obj/structure/pipes/vents/pump, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/bridges/garden_bridge) "neX" = ( /obj/structure/bed/chair/comfy{ @@ -33250,9 +27032,7 @@ }, /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/lv522/indoors/b_block/bar) "nfe" = ( /obj/structure/window_frame/strata, @@ -33276,9 +27056,7 @@ icon_state = "E"; pixel_x = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/colony_streets/north_east_street) "nfk" = ( /obj/item/lightstick/red/spoke/planted{ @@ -33295,10 +27073,7 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/bridges/garden_bridge) "nfq" = ( /turf/closed/shuttle/dropship2/tornado/typhoon{ @@ -33334,6 +27109,12 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/prison, /area/lv522/indoors/c_block/casino) +"ngy" = ( +/obj/structure/bed/chair/dropship/passenger{ + dir = 8 + }, +/turf/open/shuttle/dropship/can_surgery/medium_grey_single_wide_up_to_down, +/area/lv522/landing_zone_forecon/UD6_Typhoon) "ngK" = ( /obj/structure/platform{ dir = 4 @@ -33341,17 +27122,13 @@ /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/a_block/garden) "ngL" = ( /obj/structure/cargo_container/horizontal/blue/bottom{ pixel_x = 6 }, -/turf/open/floor/plating{ - icon_state = "platebot" - }, +/turf/open/floor/plating/platebot, /area/lv522/indoors/c_block/cargo) "ngY" = ( /turf/open/floor/plating/plating_catwalk/prison, @@ -33360,13 +27137,6 @@ /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /turf/open/floor/plating, /area/lv522/atmos/filt) -"nhi" = ( -/obj/effect/landmark/lv624/fog_blocker/short, -/obj/structure/machinery/landinglight/ds1/delaytwo{ - dir = 4 - }, -/turf/open/floor/plating, -/area/lv522/landing_zone_1) "nhs" = ( /obj/item/weapon/twohanded/folded_metal_chair, /obj/effect/decal/cleanable/dirt, @@ -33384,9 +27154,7 @@ id = "LV522CIC_1"; name = "\improper Storm Shutters" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/admin) "nia" = ( /obj/structure/reagent_dispensers/beerkeg{ @@ -33403,9 +27171,7 @@ }, /obj/structure/machinery/light, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/lv522/indoors/b_block/bar) "niu" = ( /obj/structure/platform_decoration{ @@ -33415,16 +27181,11 @@ /area/lv522/atmos/filt) "niA" = ( /obj/structure/largecrate/random/barrel/green, -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/lv522/landing_zone_1) "niE" = ( /obj/structure/pipes/standard/manifold/fourway/hidden/green, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/a_block/hallway) "niL" = ( /obj/structure/machinery/chem_dispenser/soda{ @@ -33432,15 +27193,11 @@ pixel_y = 32 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/wood{ - icon_state = "wood-broken" - }, +/turf/open/floor/wood/wood_broken, /area/lv522/indoors/b_block/bar) "niT" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/lv522/indoors/a_block/dorm_north) "niU" = ( /obj/structure/foamed_metal, @@ -33451,9 +27208,7 @@ /area/lv522/atmos/cargo_intake) "njd" = ( /obj/structure/platform_decoration, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/lv522/outdoors/colony_streets/north_west_street) "njm" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -33470,27 +27225,20 @@ /obj/effect/decal/cleanable/blood/xeno{ icon_state = "xgib3" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/way_in_command_centre) "njF" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/northeast, /area/lv522/atmos/east_reactor) "njH" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/a_block/hallway) "njW" = ( /obj/structure/machinery/camera/autoname{ @@ -33498,10 +27246,7 @@ network = list("interrogation") }, /obj/structure/machinery/light/small, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/a_block/fitness) "nkt" = ( /obj/structure/surface/table/almayer, @@ -33509,10 +27254,7 @@ /obj/structure/machinery/prop/almayer/computer/PC{ dir = 8 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/admin) "nku" = ( /obj/structure/prop/invuln/lattice_prop{ @@ -33524,39 +27266,27 @@ pixel_x = 4; pixel_y = -6 }, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3, /area/lv522/indoors/a_block/admin) "nkv" = ( /obj/item/prop/colony/used_flare, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/lv522/outdoors/nw_rockies) "nky" = ( /obj/structure/machinery/power/apc/weak, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/lv522/indoors/lone_buildings/engineering) "nkX" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/lv522/outdoors/colony_streets/south_street) "nly" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/indoors/lone_buildings/storage_blocks) "nlz" = ( /obj/structure/machinery/portable_atmospherics/canister/sleeping_agent{ @@ -33593,9 +27323,7 @@ layer = 3.1 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "nlV" = ( /obj/structure/machinery/portable_atmospherics/canister/sleeping_agent{ @@ -33611,11 +27339,11 @@ /turf/open/floor/prison, /area/lv522/indoors/c_block/casino) "nlY" = ( -/obj/structure/platform{ +/obj/structure/platform_decoration{ dir = 1 }, -/turf/open/asphalt/cement, -/area/lv522/outdoors/colony_streets/east_central_street) +/turf/open/asphalt/cement/cement1, +/area/lv522/outdoors/colony_streets/south_street) "nmh" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/prop/almayer/computer/PC{ @@ -33629,19 +27357,14 @@ icon_state = "W"; pixel_x = -1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/way_in_command_centre) "nmB" = ( /obj/structure/surface/table/almayer{ dir = 8; flipped = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/admin) "nmK" = ( /obj/item/prop/alien/hugger, @@ -33651,9 +27374,7 @@ /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /obj/effect/landmark/structure_spawner/setup/distress/xeno_nest, /obj/effect/landmark/xeno_spawn, -/turf/open/floor/corsat{ - icon_state = "brown" - }, +/turf/open/floor/corsat/brown, /area/lv522/atmos/east_reactor/south) "nnj" = ( /obj/structure/barricade/handrail/strata{ @@ -33662,15 +27383,11 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/c_block/mining) "nno" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/east_reactor) "nnv" = ( /obj/item/reagent_container/food/drinks/coffeecup/wy{ @@ -33678,7 +27395,6 @@ pixel_y = -8 }, /obj/effect/decal/strata_decals/grime/grime3, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/prison, /area/lv522/landing_zone_1/ceiling) "nnz" = ( @@ -33707,29 +27423,22 @@ name = "\improper Secure Blast Door"; unacidable = 1 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/lone_buildings/storage_blocks) "nnW" = ( /obj/item/weapon/twohanded/folded_metal_chair, /obj/item/prop/alien/hugger, /obj/effect/decal/cleanable/dirt, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/prison, /area/lv522/landing_zone_1/ceiling) "noD" = ( -/turf/open/floor/corsat{ - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner, /area/lv522/atmos/east_reactor/south) "noH" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper C-Block - Casino Airlock" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/c_block/casino) "noL" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -33750,26 +27459,18 @@ /area/lv522/outdoors/colony_streets/south_east_street) "noV" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/corsat{ - icon_state = "brown" - }, +/turf/open/floor/corsat/brown, /area/lv522/atmos/east_reactor/south) "npb" = ( /obj/effect/spawner/gibspawner/xeno, /obj/effect/decal/cleanable/blood/xeno{ icon_state = "xgib3" }, -/obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/east_reactor/south) "npd" = ( /obj/structure/machinery/light, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/southwest, /area/lv522/atmos/east_reactor) "npp" = ( /obj/structure/girder, @@ -33778,9 +27479,7 @@ pixel_x = 11; pixel_y = -8 }, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3, /area/lv522/indoors/a_block/dorms) "npx" = ( /obj/structure/filtration/machine_96x96/indestructible{ @@ -33794,9 +27493,7 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/lv522/indoors/a_block/dorm_north) "npD" = ( /obj/effect/decal/warning_stripes{ @@ -33832,9 +27529,7 @@ /obj/item/bedsheet/brown{ layer = 3.1 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "npT" = ( /obj/structure/surface/table/almayer, @@ -33844,9 +27539,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/east_reactor/south) "nqj" = ( /obj/structure/surface/table/gamblingtable, @@ -33865,18 +27558,14 @@ /area/lv522/indoors/a_block/dorms) "nqw" = ( /obj/structure/girder, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/lone_buildings/storage_blocks) "nqy" = ( /obj/structure/machinery/camera/autoname, /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/shiva{ - icon_state = "radiator_tile2" - }, +/turf/open/floor/shiva/radiator_tile2, /area/lv522/indoors/a_block/bridges/corpo_fitness) "nqB" = ( /obj/structure/filtration/machine_96x96/indestructible{ @@ -33887,10 +27576,7 @@ /area/lv522/oob) "nqE" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/east, /area/lv522/atmos/cargo_intake) "nqN" = ( /obj/structure/machinery/camera/autoname{ @@ -33899,16 +27585,11 @@ /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/corpo/glass) "nqQ" = ( /obj/item/stack/sheet/metal, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/south) "nqY" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -33923,17 +27604,12 @@ /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "nrh" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/atmos/outdoor) "nri" = ( /obj/structure/platform_decoration, @@ -33944,9 +27620,7 @@ /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/colony_streets/north_street) "nru" = ( /obj/effect/decal/warning_stripes{ @@ -33961,9 +27635,7 @@ "nrA" = ( /obj/structure/surface/rack, /obj/item/stack/sheet/metal/medium_stack, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/lone_buildings/storage_blocks) "nrJ" = ( /obj/structure/surface/table/reinforced/prison, @@ -33973,10 +27645,7 @@ }, /obj/item/storage/firstaid/regular, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/medical/glass) "nrL" = ( /obj/structure/surface/table/almayer{ @@ -33986,10 +27655,7 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/admin) "nrP" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -34002,16 +27668,11 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/shiva{ - icon_state = "radiator_tile2" - }, +/turf/open/floor/shiva/radiator_tile2, /area/lv522/indoors/a_block/corpo/glass) "nsd" = ( /obj/effect/decal/cleanable/generic, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/lv522/indoors/lone_buildings/engineering) "nsr" = ( /obj/structure/surface/table/almayer, @@ -34020,7 +27681,6 @@ pixel_y = 5 }, /obj/effect/decal/cleanable/dirt, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/prison, /area/lv522/landing_zone_1/ceiling) "nsv" = ( @@ -34034,24 +27694,17 @@ dir = 8; pixel_y = 16 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/b_block/hydro) "nti" = ( /obj/structure/bed/chair, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms/glass) "ntk" = ( /obj/structure/machinery/door/airlock/almayer/generic{ name = "\improper C-Block - Garage Airlock" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/c_block/garage) "ntq" = ( /obj/structure/prop/invuln/overhead_pipe{ @@ -34063,10 +27716,7 @@ /area/lv522/atmos/east_reactor/south) "ntK" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/c_block/mining) "ntL" = ( /obj/item/stack/sheet/metal, @@ -34087,9 +27737,7 @@ icon_state = "W"; pixel_x = -1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/way_in_command_centre) "ntS" = ( /obj/effect/decal/cleanable/dirt, @@ -34097,14 +27745,11 @@ /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/shiva{ - icon_state = "radiator_tile2" - }, +/turf/open/floor/shiva/radiator_tile2, /area/lv522/indoors/c_block/bridge) "ntT" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/largecrate/random/barrel/white, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/plating, /area/lv522/landing_zone_1/tunnel) "nud" = ( @@ -34115,9 +27760,7 @@ /area/lv522/indoors/a_block/security) "nuo" = ( /obj/structure/machinery/light, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/lv522/indoors/a_block/dorm_north) "nuG" = ( /obj/structure/platform{ @@ -34146,10 +27789,7 @@ }, /obj/item/stack/rods, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/admin) "nuU" = ( /obj/structure/surface/table/almayer, @@ -34157,11 +27797,7 @@ /obj/structure/machinery/light{ dir = 1 }, -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/landing_zone_1/ceiling) "nvd" = ( /obj/structure/girder/reinforced, @@ -34170,9 +27806,7 @@ "nvt" = ( /obj/effect/decal/cleanable/dirt, /obj/item/prop/colony/used_flare, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/bridges/op_centre) "nvB" = ( /obj/structure/cargo_container/kelland/right, @@ -34184,13 +27818,6 @@ }, /turf/open/floor/prison, /area/lv522/indoors/lone_buildings/outdoor_bot) -"nvV" = ( -/obj/structure/platform{ - dir = 1 - }, -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/gm/river, -/area/lv522/landing_zone_1/tunnel) "nwj" = ( /turf/closed/wall/strata_outpost, /area/lv522/indoors/a_block/dorms/glass) @@ -34199,45 +27826,30 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "nwR" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; pixel_y = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/east_reactor/south) "nwZ" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan2" - }, +/turf/open/floor/strata/cyan2/east, /area/lv522/indoors/a_block/medical) "nxb" = ( /obj/structure/platform_decoration, /obj/structure/machinery/light, -/turf/open/floor/prison{ - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2, /area/lv522/indoors/a_block/dorms) "nxj" = ( /obj/structure/girder, -/turf/open/floor/prison{ - icon_state = "blue" - }, +/turf/open/floor/prison/blue, /area/lv522/indoors/a_block/admin) -"nxu" = ( -/turf/open/floor/plating, -/area/lv522/indoors/lone_buildings/storage_blocks) "nxF" = ( /obj/structure/machinery/light/small, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/plating, /area/lv522/landing_zone_1/tunnel) "nxJ" = ( @@ -34249,9 +27861,7 @@ id = "LV_522_Hydro-Lockdown"; name = "\improper Storm Shutters" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/b_block/hydro) "nxO" = ( /obj/structure/barricade/wooden{ @@ -34262,10 +27872,7 @@ /obj/structure/machinery/vending/cola{ layer = 3.1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/admin) "nxQ" = ( /obj/structure/bed/chair/comfy{ @@ -34275,17 +27882,13 @@ icon_state = "N"; pixel_y = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/east_reactor/south) "nye" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/colony_streets/south_west_street) "nyv" = ( /obj/item/ammo_magazine/rifle/heap{ @@ -34305,23 +27908,15 @@ }, /obj/structure/surface/table/almayer, /obj/item/device/radio, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "nzt" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv522/indoors/a_block/corpo) "nzK" = ( /obj/item/storage/backpack/marine/satchel/rto, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/west, /area/lv522/oob) "nzR" = ( /obj/item/stack/sheet/metal, @@ -34329,9 +27924,7 @@ /area/lv522/atmos/cargo_intake) "nzU" = ( /obj/structure/barricade/deployable, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/colony_streets/north_east_street) "nzZ" = ( /obj/structure/machinery/portable_atmospherics/canister/sleeping_agent{ @@ -34352,9 +27945,7 @@ id = "Sec-Kitchen-Lockdown"; name = "\improper Storm Shutters" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/security) "nAC" = ( /obj/structure/stairs/perspective{ @@ -34369,14 +27960,24 @@ "nBe" = ( /turf/open/floor/plating, /area/lv522/indoors/a_block/kitchen/damage) +"nBh" = ( +/obj/structure/machinery/cm_vending/sorted/medical/wall_med/limited{ + pixel_x = 30 + }, +/obj/effect/decal/cleanable/blood/splatter, +/obj/item/ammo_box/rounds/smg{ + layer = 3; + pixel_x = 1; + pixel_y = 4 + }, +/turf/open/shuttle/dropship/can_surgery/medium_grey_single_wide_up_to_down, +/area/lv522/landing_zone_forecon/UD6_Typhoon) "nBo" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/structure/machinery/door/airlock/almayer/generic/glass, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/way_in_command_centre) "nBs" = ( /obj/structure/largecrate/random/barrel/green, @@ -34411,35 +28012,24 @@ /turf/open/auto_turf/sand_white/layer0, /area/lv522/outdoors/w_rockies) "nCC" = ( +/obj/effect/decal/cleanable/dirt, /obj/effect/decal/warning_stripes{ - icon_state = "NW-out"; - layer = 2.5; - pixel_x = -1; - pixel_y = 1 - }, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" + icon_state = "W"; + pixel_x = -1 }, +/turf/open/floor/whiteyellowfull/east, /area/lv522/oob/w_y_vault) "nCX" = ( /obj/structure/largecrate/random/barrel, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/cargo_intake) "nCZ" = ( /obj/item/stack/rods, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/hallway) "nDl" = ( -/turf/open/floor/shiva{ - icon_state = "radiator_tile2" - }, +/turf/open/floor/shiva/radiator_tile2, /area/lv522/indoors/a_block/bridges/garden_bridge) "nDn" = ( /obj/structure/bed/chair{ @@ -34459,15 +28049,15 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/north, /area/lv522/atmos/west_reactor) "nDI" = ( /obj/structure/closet/crate/trashcart, /obj/item/trash/wy_chips_pepper, -/obj/structure/platform, +/obj/structure/stairs/perspective{ + dir = 1; + icon_state = "p_stair_full" + }, /turf/open/asphalt/cement, /area/lv522/outdoors/colony_streets/east_central_street) "nDM" = ( @@ -34499,12 +28089,9 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/east_reactor/south) "nEq" = ( -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/plating/plating_catwalk/prison, /area/lv522/landing_zone_1/ceiling) "nEX" = ( @@ -34530,17 +28117,12 @@ /obj/structure/machinery/power/apc/weak{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/filt) "nFM" = ( /obj/effect/landmark/objective_landmark/science, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/strata{ - dir = 10; - icon_state = "white_cyan3" - }, +/turf/open/floor/strata/white_cyan3/southwest, /area/lv522/indoors/a_block/medical) "nFN" = ( /obj/item/tool/weldingtool{ @@ -34554,9 +28136,7 @@ /turf/open/floor/prison, /area/lv522/indoors/c_block/casino) "nFO" = ( -/obj/structure/prop/invuln/ice_prefab{ - dir = 5 - }, +/obj/structure/machinery/power/port_gen/pacman, /turf/open/auto_turf/shale/layer1, /area/lv522/outdoors/w_rockies) "nGc" = ( @@ -34565,24 +28145,18 @@ /area/lv522/atmos/filt) "nGe" = ( /obj/structure/cargo_container/kelland/left, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/auto_turf/sand_white/layer0, /area/lv522/landing_zone_1) "nGq" = ( /obj/effect/spawner/gibspawner/xeno, -/turf/open/floor/prison{ - icon_state = "blue" - }, +/turf/open/floor/prison/blue, /area/lv522/indoors/a_block/admin) "nGx" = ( /obj/structure/bed/chair/comfy{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 6; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/southeast, /area/lv522/indoors/a_block/admin) "nGB" = ( /obj/structure/cargo_container/kelland/right, @@ -34601,7 +28175,6 @@ /area/lv522/atmos/filt) "nGJ" = ( /obj/structure/cargo_container/kelland/right, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/auto_turf/shale/layer1, /area/lv522/landing_zone_1) "nGU" = ( @@ -34610,42 +28183,39 @@ icon_state = "N"; pixel_y = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/colony_streets/north_street) "nHg" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/shiva{ - icon_state = "radiator_tile2" - }, +/turf/open/floor/shiva/radiator_tile2, /area/lv522/atmos/way_in_command_centre) "nHi" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/landing_zone_1) "nHl" = ( /obj/structure/barricade/sandbags, -/turf/open/asphalt/cement{ - icon_state = "cement14" - }, +/turf/open/asphalt/cement/cement14, /area/lv522/outdoors/colony_streets/north_street) "nHA" = ( -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/cargo) +"nHF" = ( +/obj/item/clothing/mask/facehugger{ + desc = "It has some sort of a tube at the end of its tail. What the hell is this thing?"; + icon_state = "facehugger_impregnated"; + layer = 3; + name = "????"; + stat = 2 + }, +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_up_to_down, +/area/lv522/landing_zone_forecon/UD6_Tornado) "nHT" = ( /obj/structure/bed/chair, /obj/structure/machinery/light{ dir = 1 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles, /area/lv522/indoors/c_block/mining) "nIa" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -34654,22 +28224,17 @@ /turf/open/floor/prison, /area/lv522/indoors/a_block/admin) "nIu" = ( -/obj/structure/stairs/perspective{ - dir = 9; - icon_state = "p_stair_full" - }, -/turf/open/asphalt/cement{ - icon_state = "cement4" +/obj/effect/decal/warning_stripes{ + icon_state = "S" }, -/area/lv522/outdoors/colony_streets/north_street) +/turf/open/auto_turf/sand_white/layer0, +/area/lv522/outdoors/colony_streets/south_east_street) "nIF" = ( /obj/structure/reagent_dispensers/fueltank{ layer = 2.9 }, /obj/effect/decal/cleanable/liquid_fuel, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/lv522/outdoors/colony_streets/north_street) "nIJ" = ( /obj/structure/surface/rack, @@ -34677,9 +28242,7 @@ dir = 4 }, /obj/structure/machinery/light/double, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/c_block/mining) "nJr" = ( /obj/structure/barricade/wooden{ @@ -34700,9 +28263,7 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/way_in_command_centre) "nJV" = ( /obj/structure/noticeboard, @@ -34722,26 +28283,19 @@ /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/lv522/indoors/a_block/dorm_north) "nKj" = ( /obj/effect/decal/cleanable/blood/oil, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison, /area/lv522/indoors/lone_buildings/storage_blocks) "nKk" = ( /obj/structure/machinery/camera/autoname{ dir = 1 }, /obj/structure/machinery/light/small, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/kitchen/glass) "nKm" = ( /obj/structure/platform_decoration, @@ -34769,24 +28323,17 @@ "nKS" = ( /obj/structure/closet/secure_closet/marshal, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/security) "nLe" = ( /obj/structure/machinery/vending/cola, /obj/effect/decal/cleanable/cobweb2, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/admin) "nLi" = ( /obj/structure/surface/table/almayer, /obj/item/tool/soap, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/lv522/indoors/a_block/dorm_north) "nLm" = ( /turf/closed/wall/strata_outpost, @@ -34815,29 +28362,21 @@ icon_state = "E"; pixel_x = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/colony_streets/north_street) "nLW" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/lv522/indoors/a_block/dorm_north) "nMc" = ( /obj/structure/largecrate, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/auto_turf/shale/layer1, /area/lv522/landing_zone_1) "nMd" = ( /obj/structure/closet/toolcloset, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/lv522/indoors/lone_buildings/engineering) "nMl" = ( /obj/effect/decal/cleanable/dirt, @@ -34847,18 +28386,14 @@ /obj/structure/surface/table/almayer, /obj/effect/decal/cleanable/dirt, /obj/item/ammo_box/magazine/l42a, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/security) "nMw" = ( /obj/effect/decal/cleanable/dirt, /obj/item/ammo_magazine/rifle/heap{ current_rounds = 0 }, -/turf/open/floor/shiva{ - icon_state = "radiator_tile2" - }, +/turf/open/floor/shiva/radiator_tile2, /area/lv522/atmos/way_in_command_centre) "nMz" = ( /obj/item/prop/alien/hugger, @@ -34866,9 +28401,7 @@ dir = 10 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "nMB" = ( /obj/structure/bed/chair{ @@ -34884,18 +28417,14 @@ /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/colony_streets/north_street) "nMT" = ( /obj/structure/machinery/colony_floodlight{ layer = 4.3; pixel_y = 9 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/outdoors/colony_streets/north_street) "nMX" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -34909,9 +28438,7 @@ icon_state = "E"; pixel_x = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/colony_streets/north_street) "nNh" = ( /obj/effect/decal/cleanable/dirt, @@ -34921,10 +28448,7 @@ /obj/structure/toilet{ pixel_y = 16 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/lv522/indoors/a_block/dorms) "nNi" = ( /obj/structure/platform_decoration{ @@ -34936,28 +28460,21 @@ /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/colony_streets/north_street) "nNA" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/c_block/cargo) "nNH" = ( /obj/structure/machinery/camera/autoname, /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/corpo/glass) "nNL" = ( /obj/item/ammo_magazine/rifle, @@ -34987,9 +28504,7 @@ pixel_x = -6; pixel_y = 4 }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/security) "nOg" = ( /obj/structure/platform{ @@ -34998,9 +28513,7 @@ /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/colony_streets/north_street) "nOl" = ( /obj/effect/decal/cleanable/blood/drip, @@ -35011,9 +28524,7 @@ dir = 1 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/a_block/dorms) "nOB" = ( /obj/effect/decal/cleanable/dirt, @@ -35022,9 +28533,7 @@ "nOI" = ( /obj/structure/surface/table/almayer, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/b_block/bar) "nOS" = ( /obj/structure/platform_decoration{ @@ -35037,9 +28546,7 @@ icon_state = "E"; pixel_x = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/colony_streets/north_street) "nOT" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -35049,9 +28556,7 @@ dir = 8; name = "\improper Dormitories" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/c_block/mining) "nPb" = ( /obj/structure/platform, @@ -35091,9 +28596,7 @@ name = "synthethic potted plant"; pixel_y = 14 }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/security) "nPL" = ( /obj/structure/stairs/perspective{ @@ -35101,10 +28604,7 @@ icon_state = "p_stair_full" }, /obj/structure/platform, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/admin) "nPN" = ( /turf/closed/shuttle/dropship2/tornado, @@ -35117,9 +28617,7 @@ /obj/structure/platform_decoration{ dir = 8 }, -/turf/open/asphalt/cement{ - icon_state = "cement14" - }, +/turf/open/asphalt/cement/cement14, /area/lv522/outdoors/colony_streets/north_east_street) "nQk" = ( /obj/structure/barricade/deployable{ @@ -35128,9 +28626,7 @@ /obj/structure/barricade/deployable{ dir = 8 }, -/turf/open/asphalt/cement{ - icon_state = "cement2" - }, +/turf/open/asphalt/cement/cement2, /area/lv522/outdoors/colony_streets/north_street) "nQn" = ( /obj/item/stack/rods, @@ -35138,10 +28634,7 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/admin) "nQu" = ( /turf/open/floor/plating, @@ -35172,16 +28665,11 @@ /area/lv522/outdoors/colony_streets/north_street) "nQM" = ( /obj/structure/cargo_container/watatsumi/leftmid, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/lv522/outdoors/colony_streets/north_west_street) "nQO" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/southeast, /area/lv522/atmos/reactor_garage) "nQQ" = ( /obj/item/storage/backpack/marine/satchel{ @@ -35207,9 +28695,7 @@ /obj/structure/pipes/vents/pump, /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/light, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "nRs" = ( /obj/structure/prop/ice_colony/ground_wire{ @@ -35219,30 +28705,26 @@ /turf/open/auto_turf/shale/layer1, /area/lv522/outdoors/colony_streets/central_streets) "nRy" = ( -/obj/structure/closet/fireaxecabinet{ - pixel_y = 29 +/obj/structure/machinery/colony_floodlight{ + layer = 4.3 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" +/obj/structure/platform{ + dir = 8 }, -/area/lv522/atmos/sewer) +/turf/open/asphalt/cement, +/area/lv522/outdoors/colony_streets/south_street) "nRI" = ( /obj/item/ammo_magazine/rifle/heap{ current_rounds = 0 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/colony_streets/north_street) "nRJ" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/faxmachine, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/admin) "nRK" = ( /obj/structure/stairs/perspective{ @@ -35255,24 +28737,19 @@ "nRQ" = ( /obj/structure/window_frame/strata, /obj/structure/curtain/red, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/c_block/t_comm) "nRY" = ( /obj/structure/largecrate/random/secure, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "nSm" = ( /obj/structure/surface/table/almayer, /obj/item/trash/plate, /obj/effect/decal/cleanable/dirt, /obj/item/clothing/accessory/poncho, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/admin) "nSq" = ( /obj/effect/decal/cleanable/dirt, @@ -35280,7 +28757,6 @@ /obj/structure/machinery/light/small{ dir = 1 }, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/plating, /area/lv522/landing_zone_1/tunnel) "nSA" = ( @@ -35293,21 +28769,14 @@ pixel_y = -13 }, /obj/structure/pipes/vents/pump, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/lv522/indoors/a_block/dorm_north) "nSC" = ( /obj/structure/machinery/shower{ pixel_y = 16 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/lv522/indoors/a_block/fitness) -"nSE" = ( -/turf/closed/wall/strata_outpost/reinforced/hull, -/area/lv522/indoors/a_block/admin) "nSF" = ( /obj/structure/barricade/deployable{ dir = 1 @@ -35334,10 +28803,6 @@ }, /turf/open/floor/prison, /area/lv522/indoors/a_block/dorm_north) -"nTj" = ( -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/closed/wall/strata_outpost/reinforced/hull, -/area/lv522/oob/w_y_vault) "nTl" = ( /turf/closed/wall/r_wall/biodome/biodome_unmeltable, /area/lv522/atmos/east_reactor) @@ -35351,10 +28816,7 @@ /turf/closed/wall/strata_outpost, /area/lv522/indoors/a_block/bridges/dorms_fitness) "nTx" = ( -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv522/indoors/a_block/corpo/glass) "nTD" = ( /obj/structure/platform, @@ -35372,9 +28834,7 @@ /area/lv522/atmos/cargo_intake) "nTX" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/bridges/corpo) "nUd" = ( /obj/structure/cargo_container/wy/left, @@ -35384,10 +28844,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner/north, /area/lv522/atmos/filt) "nUO" = ( /obj/structure/closet/crate/trashcart, @@ -35395,9 +28852,7 @@ /area/lv522/outdoors/colony_streets/north_east_street) "nUV" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/filt) "nVc" = ( /obj/structure/powerloader_wreckage, @@ -35408,10 +28863,7 @@ density = 0; pixel_y = 16 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/lv522/indoors/c_block/t_comm) "nVh" = ( /obj/structure/machinery/conveyor{ @@ -35425,16 +28877,13 @@ pixel_x = -9; pixel_y = 8 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/a_block/fitness) "nVr" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/closet/emcloset, /turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "nVN" = ( /obj/item/ammo_magazine/flamer_tank/empty, /obj/effect/decal/cleanable/liquid_fuel, @@ -35451,9 +28900,7 @@ icon_state = "E"; pixel_x = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/colony_streets/south_east_street) "nVW" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -35461,33 +28908,25 @@ /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/outdoor) "nVX" = ( /obj/structure/barricade/deployable{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/colony_streets/north_east_street) "nWl" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/cargo_intake) "nWn" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "nWp" = ( /obj/structure/surface/table/almayer, @@ -35503,10 +28942,7 @@ pixel_x = 5; pixel_y = 13 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/lv522/indoors/lone_buildings/outdoor_bot) "nWq" = ( /obj/item/storage/backpack/marine/satchel{ @@ -35527,9 +28963,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/executive) "nWG" = ( /obj/structure/machinery/vending/coffee{ @@ -35538,18 +28972,13 @@ pixel_y = 16 }, /obj/item/prop/alien/hugger, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/kitchen/glass) "nWI" = ( /obj/effect/decal/cleanable/vomit{ icon_state = "vomit_2" }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan3" - }, +/turf/open/floor/strata/white_cyan3/east, /area/lv522/indoors/a_block/medical/glass) "nWK" = ( /obj/structure/machinery/suit_storage_unit/compression_suit/uscm{ @@ -35559,9 +28988,7 @@ /obj/structure/platform{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "nXi" = ( /obj/effect/decal/warning_stripes{ @@ -35572,9 +28999,7 @@ icon_state = "W" }, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/colony_streets/south_west_street) "nXl" = ( /obj/item/clothing/shoes/jackboots{ @@ -35585,10 +29010,7 @@ pixel_x = -5; pixel_y = -1 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/a_block/fitness) "nXC" = ( /obj/item/tool/wrench, @@ -35607,9 +29029,7 @@ pixel_y = 25 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/casino) "nXM" = ( /obj/structure/barricade/sandbags{ @@ -35619,9 +29039,7 @@ pixel_x = 13; pixel_y = -5 }, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/lv522/outdoors/colony_streets/north_street) "nXO" = ( /obj/item/ammo_box/magazine/misc/flares, @@ -35633,9 +29051,7 @@ pixel_x = 6; pixel_y = 4 }, -/turf/open/floor/strata{ - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1, /area/lv522/indoors/lone_buildings/chunk) "nXX" = ( /obj/effect/decal/warning_stripes{ @@ -35646,28 +29062,14 @@ /area/lv522/outdoors/colony_streets/south_street) "nXY" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/east, /area/lv522/indoors/c_block/cargo) "nYv" = ( /obj/structure/machinery/power/apc/weak{ dir = 1 }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/northwest, /area/lv522/indoors/a_block/hallway) -"nYz" = ( -/obj/structure/platform{ - dir = 4 - }, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, -/area/lv522/outdoors/n_rockies) "nYF" = ( /obj/item/weapon/twohanded/folded_metal_chair, /obj/effect/decal/cleanable/dirt, @@ -35690,14 +29092,12 @@ icon_state = "E"; pixel_x = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/colony_streets/south_east_street) "nYU" = ( /obj/effect/acid_hole, /turf/closed/wall/strata_outpost, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "nYW" = ( /obj/structure/machinery/space_heater/radiator/red{ dir = 1; @@ -35719,34 +29119,30 @@ /obj/structure/barricade/handrail{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/a_block/fitness) "nZF" = ( -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/cargo_intake) +"nZP" = ( +/turf/open/floor/plating, +/area/lv522/landing_zone_1/tunnel/far) "oaa" = ( -/turf/open/asphalt/cement{ - icon_state = "cement14" - }, +/turf/open/asphalt/cement/cement14, /area/lv522/outdoors/n_rockies) "oaj" = ( -/obj/structure/pipes/standard/simple/hidden/green, -/turf/closed/wall/r_wall/biodome/biodome_unmeltable, -/area/lv522/atmos/cargo_intake) -"oan" = ( /obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 + icon_state = "SW-out" }, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" +/turf/open/auto_turf/sand_white/layer0, +/area/lv522/outdoors/colony_streets/south_east_street) +"oan" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SE-out"; + pixel_x = 1; + pixel_y = -1 }, +/turf/open/floor/whiteyellowfull/east, /area/lv522/oob/w_y_vault) "oaq" = ( /obj/item/storage/backpack/marine/satchel{ @@ -35764,10 +29160,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/lv522/indoors/b_block/bridge) "oaH" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -35780,9 +29173,7 @@ /obj/structure/cargo_container/kelland/left{ layer = 2.9 }, -/turf/open/asphalt/cement{ - icon_state = "cement2" - }, +/turf/open/asphalt/cement/cement2, /area/lv522/outdoors/colony_streets/south_street) "oaN" = ( /obj/structure/cargo_container/kelland/right{ @@ -35796,10 +29187,7 @@ dir = 1 }, /obj/structure/machinery/light/small, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/a_block/fitness) "obe" = ( /turf/closed/shuttle/dropship2/tornado/typhoon{ @@ -35809,10 +29197,7 @@ "obt" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/telecomms/bus/preset_one, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/lv522/indoors/c_block/t_comm) "oce" = ( /obj/item/stack/sheet/metal, @@ -35826,10 +29211,7 @@ /area/lv522/indoors/a_block/bridges) "ocw" = ( /obj/structure/machinery/disposal, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/corpo/glass) "oda" = ( /obj/structure/prop/invuln/minecart_tracks, @@ -35853,9 +29235,7 @@ }, /obj/item/reagent_container/food/snacks/plaincakeslice, /obj/structure/machinery/light, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/lv522/indoors/a_block/kitchen) "odt" = ( /obj/structure/window_frame/strata, @@ -35864,9 +29244,7 @@ id = "LV522CIC_1"; name = "\improper Storm Shutters" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/hallway) "odQ" = ( /obj/structure/machinery/light{ @@ -35877,9 +29255,7 @@ /obj/item/weapon/baseballbat/metal{ pixel_x = 5 }, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/lv522/indoors/a_block/dorm_north) "odT" = ( /obj/effect/decal/cleanable/dirt, @@ -35889,31 +29265,22 @@ /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/shiva{ - icon_state = "radiator_tile2" - }, +/turf/open/floor/shiva/radiator_tile2, /area/lv522/indoors/a_block/bridges/corpo) "odX" = ( /obj/structure/prop/invuln/minecart_tracks, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/c_block/mining) "odZ" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/a_block/bridges/dorms_fitness) "oem" = ( /obj/structure/bed/chair/comfy{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/east, /area/lv522/atmos/east_reactor/south) "oet" = ( /obj/structure/prop/dam/crane/cargo{ @@ -35933,10 +29300,7 @@ /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/admin) "oeL" = ( /obj/structure/bed/chair{ @@ -35956,9 +29320,7 @@ pixel_y = 6 }, /obj/effect/spawner/gibspawner/xeno, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "oeN" = ( /obj/structure/stairs/perspective{ @@ -35968,17 +29330,14 @@ dir = 8 }, /turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "oeT" = ( /obj/structure/pipes/vents/pump, /obj/structure/machinery/light{ dir = 1 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/c_block/mining) "oeU" = ( /obj/structure/bed/chair/comfy{ @@ -35986,15 +29345,16 @@ }, /turf/open/floor/prison, /area/lv522/atmos/way_in_command_centre) +"oeV" = ( +/turf/open/shuttle/dropship/can_surgery/light_grey_bottom_left, +/area/lv522/landing_zone_forecon/UD6_Tornado) "oeX" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /turf/open/auto_turf/sand_white/layer0, /area/lv522/outdoors/n_rockies) "ofd" = ( /obj/structure/window/framed/strata/reinforced, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/bridges) "ofi" = ( /turf/open/auto_turf/shale/layer1, @@ -36008,10 +29368,7 @@ /area/lv522/outdoors/colony_streets/central_streets) "ofS" = ( /obj/structure/cargo_container/kelland/left, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/indoors/lone_buildings/storage_blocks) "ofX" = ( /obj/structure/surface/table/almayer, @@ -36024,29 +29381,22 @@ pixel_x = -9; pixel_y = 12 }, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/plating, /area/lv522/landing_zone_1/tunnel) "ofZ" = ( /obj/structure/platform{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/cargo) "oga" = ( /obj/structure/surface/table/reinforced/prison, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/casino) "ogf" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/a_block/security) "ogA" = ( /obj/effect/decal/cleanable/blood/xeno, @@ -36075,9 +29425,7 @@ }, /obj/item/stack/rods, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/kitchen/glass) "ogK" = ( /obj/structure/prop/ice_colony/dense/planter_box{ @@ -36087,15 +29435,11 @@ icon_state = "fernybush_2"; pixel_y = 10 }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/kitchen) "ogT" = ( /obj/structure/machinery/door/airlock/almayer/maint, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/c_block/mining) "ogX" = ( /obj/structure/platform{ @@ -36106,31 +29450,21 @@ }, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/liquid_fuel, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/kitchen) "ogZ" = ( /obj/effect/decal/cleanable/dirt, /mob/living/simple_animal/mouse, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan2" - }, +/turf/open/floor/strata/cyan2/east, /area/lv522/indoors/a_block/medical) "oht" = ( /obj/effect/decal/cleanable/blood/xeno, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/lv522/indoors/b_block/hydro) "ohw" = ( /obj/effect/decal/cleanable/liquid_fuel, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/kitchen) "ohL" = ( /obj/effect/decal/cleanable/dirt, @@ -36138,17 +29472,12 @@ dir = 1; pixel_y = 26 }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/kitchen) "ohP" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/lv522/indoors/a_block/fitness) "ohX" = ( /obj/structure/prop/invuln/lattice_prop{ @@ -36156,9 +29485,7 @@ pixel_x = 9; pixel_y = 3 }, -/turf/open/floor/plating{ - icon_state = "platingdmg1" - }, +/turf/open/floor/plating/platingdmg1, /area/lv522/indoors/a_block/kitchen/damage) "oig" = ( /obj/structure/barricade/wooden{ @@ -36192,7 +29519,6 @@ dir = 9; icon_state = "p_stair_full" }, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/auto_turf/sand_white/layer0, /area/lv522/landing_zone_1) "oiD" = ( @@ -36201,9 +29527,7 @@ pixel_x = 10; pixel_y = 13 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/indoors/c_block/mining) "oiP" = ( /obj/structure/platform_decoration{ @@ -36217,25 +29541,17 @@ /obj/structure/barricade/wooden{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/lone_buildings/storage_blocks) "oiW" = ( /obj/structure/foamed_metal, /turf/open/floor/plating, /area/lv522/atmos/cargo_intake) "oiY" = ( -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/asphalt/cement{ - icon_state = "cement14" - }, +/turf/open/asphalt/cement/cement14, /area/lv522/landing_zone_1) "oiZ" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/a_block/fitness/glass) "ojb" = ( /obj/structure/coatrack{ @@ -36245,17 +29561,11 @@ /obj/structure/machinery/space_heater/radiator/red{ dir = 4 }, -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/landing_zone_1/ceiling) "ojn" = ( /obj/structure/surface/table/almayer, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/east_reactor) "ojp" = ( /turf/closed/wall/strata_outpost, @@ -36271,9 +29581,7 @@ dir = 1 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/shiva{ - icon_state = "radiator_tile2" - }, +/turf/open/floor/shiva/radiator_tile2, /area/lv522/indoors/a_block/bridges/garden_bridge) "ojx" = ( /obj/item/prop/alien/hugger, @@ -36281,9 +29589,7 @@ /obj/item/shard{ icon_state = "medium" }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "ojy" = ( /obj/structure/closet/crate/trashcart{ @@ -36296,40 +29602,13 @@ /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper C-Block - Cargo Airlock" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/c_block/bridge) "ojW" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/a_block/hallway) -"okj" = ( -/obj/effect/decal/cleanable/dirt, -/obj/item/storage/backpack/marine/satchel{ - desc = "It's the heavy-duty black polymer kind. Time to take out the trash!"; - icon = 'icons/obj/janitor.dmi'; - icon_state = "trashbag3"; - name = "trash bag"; - pixel_x = -4; - pixel_y = 6 - }, -/obj/item/storage/backpack/marine/satchel{ - desc = "It's the heavy-duty black polymer kind. Time to take out the trash!"; - icon = 'icons/obj/janitor.dmi'; - icon_state = "trashbag3"; - name = "trash bag"; - pixel_x = 3; - pixel_y = -2 - }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, -/area/lv522/atmos/sewer) "okA" = ( /obj/structure/surface/rack, /obj/structure/machinery/camera/autoname{ @@ -36345,10 +29624,7 @@ pixel_y = 29 }, /obj/structure/machinery/iv_drip, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/hallway) "ols" = ( /obj/structure/bed/chair/comfy{ @@ -36356,17 +29632,12 @@ }, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "olz" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/b_block/bridge) "olI" = ( /obj/item/prop/colony/usedbandage{ @@ -36375,10 +29646,7 @@ /turf/open/floor/prison, /area/lv522/indoors/a_block/admin) "oml" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/hallway) "omG" = ( /obj/structure/surface/table/almayer, @@ -36390,11 +29658,7 @@ pixel_x = 9; pixel_y = 4 }, -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/landing_zone_1/ceiling) "omT" = ( /obj/structure/sign/safety/radio_rad{ @@ -36413,25 +29677,18 @@ /area/lv522/indoors/c_block/garage) "onj" = ( /obj/structure/platform, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/lv522/outdoors/colony_streets/north_east_street) "onM" = ( /obj/structure/barricade/deployable{ dir = 1 }, -/turf/open/floor/shiva{ - icon_state = "radiator_tile2" - }, +/turf/open/floor/shiva/radiator_tile2, /area/lv522/atmos/way_in_command_centre) "onT" = ( /obj/structure/largecrate/random, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/hallway) "onX" = ( /obj/effect/decal/cleanable/blood/oil, @@ -36447,15 +29704,10 @@ name = "\improper Generator Room"; welded = 1 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/lone_buildings/engineering) "oot" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/north, /area/lv522/indoors/a_block/dorms) "oox" = ( /obj/structure/stairs/perspective{ @@ -36464,14 +29716,12 @@ }, /obj/structure/largecrate/random/barrel/white, /turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "ooG" = ( /obj/structure/machinery/power/apc/weak{ dir = 1 }, -/turf/open/floor/shiva{ - icon_state = "radiator_tile2" - }, +/turf/open/floor/shiva/radiator_tile2, /area/lv522/indoors/a_block/bridges) "opl" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -36503,11 +29753,7 @@ }, /obj/structure/machinery/light, /obj/effect/decal/cleanable/dirt, -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/landing_zone_1/ceiling) "opO" = ( /obj/structure/pipes/standard/manifold/fourway/hidden/green, @@ -36517,9 +29763,7 @@ /obj/structure/platform{ dir = 8 }, -/obj/structure/largecrate/random{ - layer = 2.9 - }, +/obj/structure/ore_box, /turf/open/floor/plating, /area/lv522/indoors/c_block/cargo) "oqn" = ( @@ -36529,9 +29773,7 @@ /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/colony_streets/north_east_street) "oqp" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -36551,10 +29793,7 @@ /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/lv522/outdoors/colony_streets/central_streets) "oqD" = ( /obj/structure/coatrack{ @@ -36575,9 +29814,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/lv522/indoors/b_block/bar) "oqQ" = ( /obj/structure/fence, @@ -36588,9 +29825,7 @@ icon_state = "E"; pixel_x = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/colony_streets/north_west_street) "ora" = ( /obj/structure/flora/pottedplant{ @@ -36603,6 +29838,12 @@ }, /turf/open/floor/plating, /area/lv522/indoors/c_block/cargo) +"ori" = ( +/obj/structure/barricade/deployable{ + dir = 4 + }, +/turf/open/shuttle/dropship/can_surgery/medium_grey_single_wide_up_to_down, +/area/lv522/landing_zone_forecon/UD6_Typhoon) "orm" = ( /obj/structure/platform/strata{ dir = 4 @@ -36611,17 +29852,18 @@ /area/lv522/oob) "ort" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/security/glass) "ory" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/prison{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/east, /area/lv522/indoors/a_block/hallway) +"orA" = ( +/obj/structure/platform_decoration{ + dir = 8 + }, +/turf/open/gm/river, +/area/lv522/landing_zone_1/tunnel/far) "orE" = ( /obj/item/prop/colony/used_flare, /turf/open/auto_turf/sand_white/layer0, @@ -36632,10 +29874,7 @@ dir = 8; pixel_y = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/north, /area/lv522/indoors/a_block/admin) "orP" = ( /obj/structure/prop/invuln/ice_prefab/trim{ @@ -36649,10 +29888,7 @@ /area/lv522/outdoors/colony_streets/north_west_street) "orS" = ( /obj/effect/decal/cleanable/blood/xeno, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/north, /area/lv522/indoors/a_block/admin) "orU" = ( /obj/structure/machinery/landinglight/ds1/delayone{ @@ -36672,75 +29908,45 @@ /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/colony_streets/north_west_street) -"osm" = ( -/obj/structure/transmitter/colony_net{ - phone_category = "LV522 Chances Claim"; - phone_color = "red"; - phone_id = "Reactor Sewer"; - pixel_y = 26 - }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/lv522/atmos/sewer) "osE" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper A-Block Corporate Office Airlock"; req_access_txt = "100" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/corpo/glass) "osN" = ( -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/lv522/outdoors/colony_streets/south_west_street) "osU" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/a_block/dorms) "osV" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/casino) "ote" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner/north, /area/lv522/atmos/north_command_centre) "otj" = ( /obj/effect/decal/cleanable/cobweb, -/turf/open/floor/shiva{ - icon_state = "radiator_tile2" - }, +/turf/open/floor/shiva/radiator_tile2, /area/lv522/indoors/a_block/bridges) "otq" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/medical) "otx" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, /obj/structure/platform_decoration, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/sewer) "otH" = ( /obj/structure/surface/table/almayer, @@ -36748,48 +29954,33 @@ desc = "A fallen marine's information dog tag. It reads, Sergeant Robert 'Boab' Macdonald" }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/admin) "otM" = ( /obj/structure/machinery/space_heater/radiator/red{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/lv522/indoors/lone_buildings/engineering) "otQ" = ( -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/north_command_centre) "otS" = ( /obj/structure/stairs/perspective{ icon_state = "p_stair_full" }, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/lv522/outdoors/colony_streets/south_east_street) "otT" = ( /obj/structure/platform, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/kitchen) "otY" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan2" - }, +/turf/open/floor/strata/cyan2/east, /area/lv522/indoors/a_block/medical/glass) "oud" = ( /obj/structure/platform{ @@ -36813,9 +30004,7 @@ /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/lv522/indoors/a_block/dorm_north) "ouG" = ( /obj/structure/barricade/deployable{ @@ -36832,15 +30021,17 @@ /area/lv522/indoors/a_block/kitchen) "ouI" = ( /obj/structure/cargo_container/kelland/right, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/lone_buildings/storage_blocks) "ouO" = ( /obj/structure/reagent_dispensers/fueltank{ layer = 2.9 }, /obj/effect/decal/cleanable/liquid_fuel, +/obj/structure/stairs/perspective{ + dir = 1; + icon_state = "p_stair_full" + }, /turf/open/asphalt/cement, /area/lv522/outdoors/colony_streets/north_street) "ovr" = ( @@ -36863,9 +30054,7 @@ icon_state = "W" }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/outdoors/colony_streets/north_street) "ovT" = ( /obj/structure/stairs/perspective{ @@ -36879,9 +30068,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/lv522/outdoors/colony_streets/south_street) "owg" = ( /obj/effect/decal/cleanable/dirt, @@ -36896,14 +30083,10 @@ unacidable = 1 }, /obj/structure/blocker/invisible_wall, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/oob) "owQ" = ( -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/c_block/garage) "owX" = ( /obj/structure/machinery/light{ @@ -36911,6 +30094,12 @@ }, /turf/open/floor/prison, /area/lv522/indoors/a_block/kitchen) +"oxd" = ( +/obj/item/clothing/suit/storage/RO{ + name = "\improper UA jacket" + }, +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_up_to_down, +/area/lv522/landing_zone_forecon/UD6_Typhoon) "oxq" = ( /obj/item/paper{ pixel_x = 10; @@ -36929,18 +30118,13 @@ /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/lv522/outdoors/colony_streets/north_street) "oxH" = ( /obj/structure/barricade/handrail/strata{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/c_block/mining) "oxT" = ( /obj/structure/platform{ @@ -36950,9 +30134,7 @@ icon_state = "E"; pixel_x = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/colony_streets/north_east_street) "oyf" = ( /obj/structure/machinery/landinglight/ds1/delaythree{ @@ -36967,44 +30149,31 @@ /turf/open/floor/prison, /area/lv522/indoors/a_block/hallway) "oyB" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/north, /area/lv522/indoors/a_block/hallway) "oyC" = ( /obj/structure/machinery/camera/autoname, /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/admin) "oyK" = ( /obj/effect/spawner/gibspawner/xeno, -/turf/open/floor/corsat{ - icon_state = "brown" - }, +/turf/open/floor/corsat/brown, /area/lv522/atmos/east_reactor/south) "oyM" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/filt) "oyN" = ( /obj/structure/machinery/door/airlock/almayer/maint{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/dorms) "oyY" = ( /obj/structure/largecrate, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/auto_turf/sand_white/layer0, /area/lv522/landing_zone_1) "ozk" = ( @@ -37012,10 +30181,7 @@ icon_state = "lattice3"; pixel_x = -5 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/west, /area/lv522/indoors/a_block/hallway) "ozn" = ( /turf/open/floor/prison, @@ -37025,16 +30191,11 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/corpo/glass) "ozw" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/mining) "ozF" = ( /obj/item/shard{ @@ -37046,9 +30207,7 @@ "ozJ" = ( /obj/structure/surface/table/almayer, /obj/effect/landmark/objective_landmark/far, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/lv522/indoors/a_block/dorm_north) "ozQ" = ( /obj/structure/stairs/perspective{ @@ -37058,16 +30217,11 @@ /obj/structure/platform_decoration{ dir = 1 }, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/lv522/outdoors/colony_streets/north_east_street) "ozR" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/north, /area/lv522/indoors/a_block/hallway) "oAd" = ( /obj/structure/surface/table/almayer, @@ -37077,10 +30231,7 @@ "oAp" = ( /obj/item/stack/sheet/metal, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/hallway) "oAu" = ( /obj/structure/platform{ @@ -37101,9 +30252,7 @@ pixel_y = 16 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "oAY" = ( /obj/effect/decal/cleanable/dirt, @@ -37120,9 +30269,7 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/way_in_command_centre) "oBf" = ( /obj/structure/bed/chair/wheelchair, @@ -37134,7 +30281,6 @@ /obj/structure/machinery/light/small{ dir = 1 }, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/plating, /area/lv522/landing_zone_1/tunnel) "oBx" = ( @@ -37155,9 +30301,7 @@ pixel_x = -1; pixel_y = 5 }, -/turf/open/floor/plating{ - icon_state = "platebot" - }, +/turf/open/floor/plating/platebot, /area/lv522/indoors/c_block/cargo) "oCn" = ( /obj/structure/blocker/invisible_wall, @@ -37173,9 +30317,7 @@ /obj/item/tank/emergency_oxygen/double, /obj/structure/machinery/light, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/mining) "oCt" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -37188,55 +30330,39 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "white_cyan4" - }, +/turf/open/floor/strata/white_cyan4, /area/lv522/indoors/a_block/medical) "oDj" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/reactor_garage) "oDu" = ( /obj/structure/machinery/door/airlock/almayer/maint, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/dorms) "oDU" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/command_centre) "oDZ" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/lv522/indoors/lone_buildings/outdoor_bot) "oEc" = ( /obj/structure/largecrate/random/secure, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/landing_zone_2/ceiling) "oEw" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/north_command_centre) "oFr" = ( /obj/structure/machinery/light{ @@ -37254,10 +30380,7 @@ dir = 5 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/lv522/indoors/a_block/dorms) "oFG" = ( /obj/item/reagent_container/food/drinks/drinkingglass{ @@ -37273,31 +30396,22 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/bridges) "oFU" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/c_block/cargo) "oGl" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/decal/cleanable/liquid_fuel, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/lv522/indoors/a_block/kitchen/damage) "oGp" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/a_block/security) "oGE" = ( /obj/item/prop/alien/hugger, @@ -37317,18 +30431,14 @@ pixel_x = 7; pixel_y = -7 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "oGY" = ( /obj/structure/machinery/space_heater/radiator/red{ dir = 1; pixel_y = 26 }, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/cargo) "oGZ" = ( /obj/item/stack/sheet/wood, @@ -37341,9 +30451,7 @@ /obj/structure/machinery/space_heater/radiator/red{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms/glass) "oHl" = ( /obj/structure/filingcabinet{ @@ -37360,9 +30468,7 @@ dir = 10 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/a_block/hallway) "oHB" = ( /obj/structure/machinery/optable{ @@ -37370,16 +30476,10 @@ pixel_x = 16; pixel_y = -6 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/lv522/indoors/a_block/medical) "oHQ" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/east, /area/lv522/indoors/a_block/admin) "oHR" = ( /obj/structure/transmitter/colony_net{ @@ -37389,27 +30489,19 @@ phone_id = "Colony Security"; pixel_x = -16 }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/security/glass) "oHW" = ( /obj/structure/closet/crate, /obj/item/stack/sheet/metal/large_stack, -/turf/open/floor/plating{ - icon_state = "platebot" - }, +/turf/open/floor/plating/platebot, /area/lv522/indoors/c_block/cargo) "oIr" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/a_block/dorms/glass) "oIu" = ( -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/lv522/outdoors/colony_streets/south_street) "oIE" = ( /obj/structure/machinery/door/airlock/almayer/generic{ @@ -37418,15 +30510,11 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/dorms) "oIP" = ( /obj/effect/decal/cleanable/generic, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/cargo) "oJj" = ( /obj/effect/decal/cleanable/dirt, @@ -37460,9 +30548,7 @@ pixel_x = 4; pixel_y = 8 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "oJQ" = ( /obj/structure/machinery/door/airlock/almayer/generic{ @@ -37472,9 +30558,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/dorms) "oJS" = ( /turf/closed/wall/mineral/bone_resin, @@ -37507,9 +30591,7 @@ dir = 1 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/cargo) "oKG" = ( /obj/structure/platform, @@ -37519,7 +30601,6 @@ /obj/structure/platform_decoration{ dir = 10 }, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/auto_turf/sand_white/layer0, /area/lv522/landing_zone_1) "oKI" = ( @@ -37529,15 +30610,10 @@ }, /obj/effect/decal/cleanable/blood/drip, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/lv522/outdoors/colony_streets/north_east_street) "oKK" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/west, /area/lv522/atmos/east_reactor/south) "oKN" = ( /obj/structure/transmitter/colony_net{ @@ -37546,24 +30622,17 @@ phone_id = "Reactor Central Office"; pixel_y = 26 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/command_centre) "oKP" = ( /obj/structure/machinery/autolathe, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/cargo) "oKQ" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/spider/spiderling/nogrow, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/lv522/indoors/b_block/hydro) "oLa" = ( /turf/open/floor/plating/plating_catwalk/prison, @@ -37585,10 +30654,7 @@ icon_state = "N"; pixel_y = 1 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/lv522/outdoors/colony_streets/east_central_street) "oLo" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -37607,10 +30673,7 @@ "oLu" = ( /obj/structure/pipes/vents/pump, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv522/indoors/a_block/corpo/glass) "oLz" = ( /obj/structure/prop/invuln/ice_prefab/trim{ @@ -37621,29 +30684,20 @@ pixel_x = 6; pixel_y = -1 }, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/lv522/outdoors/colony_streets/north_street) "oLG" = ( -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/lv522/indoors/a_block/medical) "oLK" = ( -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/reactor_garage) "oLW" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/security) "oMi" = ( /obj/effect/decal/cleanable/blood/xeno, @@ -37656,9 +30710,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/bridges/op_centre) "oMo" = ( /obj/structure/surface/table/woodentable/fancy, @@ -37677,14 +30729,10 @@ id = "Sec-Kitchen-Lockdown"; name = "\improper Storm Shutters" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/security) "oML" = ( -/turf/open/floor/corsat{ - icon_state = "brown" - }, +/turf/open/floor/corsat/brown, /area/lv522/atmos/north_command_centre) "oMX" = ( /obj/item/storage/belt/grenade, @@ -37698,10 +30746,7 @@ dir = 1; pixel_y = 1 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/lv522/indoors/c_block/t_comm) "oNe" = ( /obj/effect/decal/cleanable/blood/xeno, @@ -37720,20 +30765,14 @@ }, /obj/effect/decal/cleanable/dirt, /obj/item/storage/firstaid/adv/empty, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/a_block/hallway) "oNM" = ( /obj/structure/machinery/light, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/casino) "oNQ" = ( -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/lv522/outdoors/colony_streets/north_west_street) "oOe" = ( /obj/effect/decal/cleanable/dirt, @@ -37745,15 +30784,16 @@ name = "Emergency Lockdown" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/lone_buildings/storage_blocks) "oOD" = ( /obj/structure/prop/invuln/ice_prefab{ dir = 1; icon_state = "fab_2" }, +/obj/structure/prop/invuln/ice_prefab{ + icon_state = "fab_2" + }, /turf/open/auto_turf/shale/layer2, /area/lv522/outdoors/w_rockies) "oOS" = ( @@ -37771,9 +30811,7 @@ /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/security) "oPu" = ( /obj/effect/spawner/gibspawner/xeno, @@ -37784,40 +30822,27 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/b_block/bar) "oPR" = ( /obj/structure/bed/chair{ dir = 4 }, -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/landing_zone_1/ceiling) "oPW" = ( /obj/structure/machinery/light, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/bridge) "oQs" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/north, /area/lv522/atmos/cargo_intake) "oQt" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/closet/athletic_mixed, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/lv522/indoors/a_block/dorm_north) "oQC" = ( /obj/structure/platform_decoration, @@ -37832,15 +30857,11 @@ dir = 8 }, /obj/structure/machinery/disposal, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/landing_zone_2/ceiling) "oRr" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms/glass) "oRt" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -37849,15 +30870,10 @@ /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/light, /obj/structure/machinery/space_heater/radiator/red, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "oRG" = ( -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan4" - }, +/turf/open/floor/strata/white_cyan4/west, /area/lv522/indoors/a_block/medical/glass) "oRS" = ( /obj/structure/surface/table/almayer, @@ -37865,11 +30881,7 @@ /obj/structure/machinery/light{ dir = 4 }, -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/landing_zone_1/ceiling) "oRU" = ( /obj/structure/machinery/portable_atmospherics/canister/sleeping_agent{ @@ -37899,16 +30911,12 @@ /turf/open/auto_turf/shale/layer1, /area/lv522/outdoors/colony_streets/south_street) "oSH" = ( -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/bridges) "oSX" = ( /obj/structure/blocker/forcefield/vehicles, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/east_reactor) "oTc" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -37923,22 +30931,16 @@ /area/lv522/indoors/a_block/bridges/dorms_fitness) "oTd" = ( /obj/structure/cargo_container/ferret/mid, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/lv522/outdoors/colony_streets/north_west_street) "oTg" = ( -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/a_block/dorms) "oTl" = ( /obj/structure/surface/table/almayer, /obj/effect/decal/cleanable/cobweb2/dynamic, /obj/item/stack/sheet/metal/medium_stack, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "oTp" = ( /obj/structure/surface/table/almayer, @@ -37967,30 +30969,21 @@ "oTG" = ( /obj/structure/largecrate/random, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/cargo) "oTI" = ( -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/b_block/hydro) "oTJ" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/a_block/dorms) "oTL" = ( /obj/structure/largecrate/random, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/landing_zone_2) "oTX" = ( /obj/effect/spawner/gibspawner/xeno, @@ -38005,43 +30998,27 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/lv522/indoors/b_block/bar) "oUq" = ( /turf/closed/wall/strata_outpost/reinforced, /area/lv522/atmos/way_in_command_centre) -"oUC" = ( -/obj/structure/prop/invuln/overhead/flammable_pipe/fly{ - pixel_y = 6 - }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, -/area/lv522/atmos/east_reactor) "oUE" = ( /obj/effect/decal/warning_stripes{ icon_state = "SW-out"; pixel_x = -1; pixel_y = -1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/way_in_command_centre) "oUZ" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor) "oVb" = ( /obj/vehicle/train/cargo/trolley, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/lone_buildings/storage_blocks) "oVk" = ( /obj/structure/largecrate/random{ @@ -38058,9 +31035,7 @@ "oVA" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/reagent_container/food/drinks/coffee, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/lone_buildings/chunk) "oVD" = ( /obj/structure/pipes/vents/pump, @@ -38074,11 +31049,7 @@ /obj/structure/machinery/space_heater/radiator/red{ dir = 8 }, -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/landing_zone_1/ceiling) "oVL" = ( /obj/structure/surface/table/reinforced/prison, @@ -38091,9 +31062,7 @@ pixel_y = 17 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/garage) "oVO" = ( /obj/structure/fence{ @@ -38107,30 +31076,21 @@ icon_state = "S" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/lv522/outdoors/colony_streets/north_street) "oVS" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/c_block/mining) "oWq" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/east_reactor) "oWy" = ( /obj/structure/machinery/space_heater/radiator/red{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "oWK" = ( /obj/structure/machinery/door/airlock/almayer/maint, @@ -38140,25 +31100,18 @@ name = "High Pressure Door"; unacidable = 1 }, -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/landing_zone_1/tunnel) "oWS" = ( /obj/item/prop/colony/used_flare, /obj/structure/machinery/light, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/south) "oWV" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/shiva{ - icon_state = "radiator_tile2" - }, +/turf/open/floor/shiva/radiator_tile2, /area/lv522/indoors/a_block/bridges) "oXa" = ( /obj/item/shard{ @@ -38168,17 +31121,12 @@ /area/lv522/indoors/a_block/kitchen/glass) "oXd" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/lv522/outdoors/colony_streets/north_street) "oXk" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/west, /area/lv522/atmos/reactor_garage) "oXp" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -38188,19 +31136,14 @@ /area/lv522/outdoors/colony_streets/central_streets) "oXB" = ( /obj/item/trash/uscm_mre, -/turf/open/floor/prison{ - dir = 6; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/southeast, /area/lv522/indoors/a_block/admin) "oXF" = ( /obj/effect/spawner/gibspawner/xeno, /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/shiva{ - icon_state = "radiator_tile2" - }, +/turf/open/floor/shiva/radiator_tile2, /area/lv522/indoors/a_block/bridges) "oXQ" = ( /obj/structure/machinery/light{ @@ -38223,9 +31166,7 @@ id = "East_Lock"; name = "Emergency Lockdown" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/hallway) "oXZ" = ( /obj/structure/cargo_container/kelland/left, @@ -38245,15 +31186,8 @@ pixel_x = 1; pixel_y = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/way_in_command_centre) -"oYM" = ( -/obj/structure/platform_decoration, -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/auto_turf/sand_white/layer0, -/area/lv522/landing_zone_1) "oYO" = ( /obj/structure/platform{ dir = 1 @@ -38266,17 +31200,12 @@ /area/lv522/landing_zone_2) "oYZ" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/bridges/op_centre) "oZC" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/a_block/fitness) "oZN" = ( /obj/structure/platform, @@ -38301,19 +31230,14 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/c_block/cargo) "paK" = ( /obj/structure/machinery/vending/coffee, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/a_block/admin) "paT" = ( /obj/structure/cargo_container/kelland/right, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/auto_turf/sand_white/layer0, /area/lv522/landing_zone_1) "pbi" = ( @@ -38332,18 +31256,8 @@ /area/lv522/indoors/a_block/hallway) "pbO" = ( /obj/item/stack/sheet/wood, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/landing_zone_2) -"pck" = ( -/obj/structure/largecrate/random/barrel/white, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/lv522/indoors/lone_buildings/storage_blocks) "pco" = ( /obj/structure/pipes/standard/manifold/fourway/hidden/green, /turf/open/floor/prison, @@ -38360,17 +31274,11 @@ pixel_y = 16 }, /obj/effect/decal/cleanable/generic, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/b_block/hydro) "pcz" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/indoors/lone_buildings/outdoor_bot) "pcH" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -38381,10 +31289,7 @@ dir = 5; icon_state = "p_stair_full" }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/b_block/bridge) "pcQ" = ( /obj/effect/decal/cleanable/blood, @@ -38398,9 +31303,7 @@ dir = 1; icon_state = "p_stair_full" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison, /area/lv522/atmos/sewer) "pdp" = ( /obj/structure/prop/invuln/overhead_pipe{ @@ -38414,7 +31317,7 @@ dir = 8 }, /turf/open/gm/river, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "pdq" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper B-Block - Hydroponics Airlock"; @@ -38424,9 +31327,7 @@ id = "LV_522_Hydro-Lockdown"; name = "\improper Storm Shutters" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/b_block/hydro) "pdr" = ( /obj/structure/curtain/red, @@ -38438,9 +31339,7 @@ name = "????"; stat = 2 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "pdv" = ( /obj/structure/platform_decoration{ @@ -38452,18 +31351,14 @@ /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/colony_streets/north_east_street) "pdB" = ( /obj/structure/machinery/space_heater/radiator/red{ dir = 4 }, /obj/structure/pipes/vents/pump, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "pdF" = ( /obj/effect/decal/cleanable/dirt, @@ -38471,9 +31366,7 @@ dir = 1 }, /obj/structure/machinery/light/small, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/a_block/admin) "pdO" = ( /obj/structure/pipes/vents/pump, @@ -38481,10 +31374,7 @@ /obj/structure/machinery/shower{ pixel_y = 16 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/lv522/indoors/a_block/dorms) "pdR" = ( /obj/effect/landmark/objective_landmark/close, @@ -38511,14 +31401,10 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/north, /area/lv522/atmos/way_in_command_centre) "pez" = ( /obj/structure/cargo_container/horizontal/blue/top, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/auto_turf/sand_white/layer0, /area/lv522/landing_zone_1) "peM" = ( @@ -38526,17 +31412,14 @@ dir = 1 }, /turf/open/gm/river, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "peS" = ( /obj/structure/surface/table/almayer{ dir = 1; flipped = 1 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/admin) "pfe" = ( /obj/structure/bed/chair{ @@ -38558,15 +31441,10 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "pfj" = ( -/turf/open/floor/corsat{ - dir = 10; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/southwest, /area/lv522/atmos/east_reactor/south) "pfq" = ( /obj/structure/machinery/camera/autoname{ @@ -38574,10 +31452,7 @@ network = list("interrogation") }, /obj/structure/machinery/light/small, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/b_block/bridge) "pfv" = ( /obj/structure/surface/table/almayer, @@ -38596,14 +31471,10 @@ pixel_x = -4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/lv522/indoors/a_block/kitchen) "pfD" = ( -/turf/open/floor/shiva{ - icon_state = "radiator_tile2" - }, +/turf/open/floor/shiva/radiator_tile2, /area/lv522/indoors/b_block/bridge) "pfE" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -38612,10 +31483,7 @@ flipped = 1 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/bridges/garden_bridge) "pfN" = ( /turf/open/floor/plating/plating_catwalk/prison, @@ -38628,16 +31496,12 @@ dir = 4; id = "Reactor_e_entry_3" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/filt) "pfV" = ( /obj/item/prop/alien/hugger, /obj/structure/machinery/light, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "pfX" = ( /obj/effect/landmark/survivor_spawner, @@ -38647,10 +31511,7 @@ /obj/structure/bed/chair/comfy{ dir = 1 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/corpo/glass) "pgm" = ( /obj/item/lightstick/red/spoke/planted{ @@ -38664,10 +31525,7 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/lv522/indoors/a_block/dorms) "pgp" = ( /obj/structure/platform{ @@ -38676,9 +31534,7 @@ /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/colony_streets/north_east_street) "pgs" = ( /obj/effect/spawner/gibspawner/xeno, @@ -38686,22 +31542,16 @@ dir = 1 }, /obj/effect/decal/cleanable/generic, -/turf/open/floor/prison{ - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2, /area/lv522/indoors/a_block/dorms) "pgt" = ( /obj/structure/machinery/disposal, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/security) "pgy" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/west_reactor) "pgG" = ( /obj/structure/platform_decoration{ @@ -38714,19 +31564,8 @@ icon_state = "E"; pixel_x = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/colony_streets/north_east_street) -"pgJ" = ( -/obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/obj/structure/machinery/light{ - dir = 4 - }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, -/area/lv522/atmos/east_reactor) "pha" = ( /obj/structure/bed/chair{ can_buckle = 0; @@ -38747,38 +31586,24 @@ /obj/structure/machinery/power/apc/weak{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "phn" = ( /turf/open/floor/plating/plating_catwalk/prison, /area/lv522/indoors/b_block/hydro) "phq" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles, /area/lv522/indoors/c_block/mining) "phu" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/lv522/indoors/b_block/hydro) "phZ" = ( /obj/structure/surface/table/almayer, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/lv522/indoors/c_block/cargo) -"pid" = ( -/obj/structure/machinery/door/airlock/almayer/generic, -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/floor/corsat{ - icon_state = "marked" - }, -/area/lv522/landing_zone_1/ceiling) "pit" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /turf/open/auto_turf/sand_white/layer0, @@ -38806,9 +31631,7 @@ pixel_y = 7 }, /obj/item/tool/pen/blue/clicky, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/east_reactor/south) "piY" = ( /obj/structure/platform{ @@ -38817,17 +31640,11 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/lv522/indoors/c_block/cargo) -"pjl" = ( -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/closed/wall/strata_ice/dirty, -/area/lv522/oob) "pjm" = ( /obj/structure/platform{ dir = 8 }, -/obj/structure/largecrate/random{ - layer = 2.9 - }, +/obj/structure/ore_box, /obj/effect/decal/cleanable/cobweb, /turf/open/floor/plating, /area/lv522/indoors/c_block/cargo) @@ -38836,10 +31653,7 @@ /area/lv522/outdoors/n_rockies) "pjM" = ( /obj/effect/spawner/gibspawner/xeno, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/north, /area/lv522/indoors/a_block/dorms) "pjT" = ( /obj/structure/surface/table/almayer, @@ -38866,15 +31680,11 @@ /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/mining) "pka" = ( /obj/structure/platform_decoration, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/cargo) "pkB" = ( /turf/closed/shuttle/dropship2/tornado{ @@ -38887,17 +31697,8 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/reactor_garage) -"pkH" = ( -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, -/area/lv522/landing_zone_1) "plb" = ( /obj/structure/machinery/door_display/research_cell{ dir = 4; @@ -38905,55 +31706,39 @@ pixel_x = -16; req_access = null }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/north, /area/lv522/atmos/filt) "pli" = ( /obj/effect/decal/cleanable/dirt, /obj/item/prop/colony/used_flare, /turf/open/floor/prison, /area/lv522/indoors/a_block/kitchen) -"plz" = ( -/turf/closed/wall/strata_outpost/reinforced/hull, -/area/lv522/indoors/a_block/executive) "plN" = ( /obj/structure/platform, /obj/effect/decal/warning_stripes{ icon_state = "N"; pixel_y = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/colony_streets/east_central_street) "pme" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/space_heater/radiator/red{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/landing_zone_2/ceiling) "pmg" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/hallway) "png" = ( /obj/structure/cargo_container/wy/mid{ health = 5000 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/landing_zone_1) "pni" = ( /obj/item/weapon/gun/revolver/cmb, @@ -38961,35 +31746,14 @@ /area/lv522/indoors/a_block/kitchen/glass) "pnj" = ( /obj/structure/largecrate/random/secure, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/landing_zone_1) -"pnu" = ( -/obj/item/fuelCell{ - layer = 3.1; - pixel_x = 3; - pixel_y = 15 - }, -/obj/item/fuelCell{ - layer = 3.1; - pixel_x = -10; - pixel_y = 18 - }, -/turf/open/floor/plating, -/area/lv522/indoors/c_block/cargo) "pnx" = ( -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/fitness) "pnz" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor/prison{ - dir = 10; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/southwest, /area/lv522/indoors/a_block/hallway) "pnE" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -39013,9 +31777,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/security) "poQ" = ( /obj/effect/decal/cleanable/dirt, @@ -39035,15 +31797,15 @@ dir = 1; flipped = 1 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "ppD" = ( /obj/effect/decal/warning_stripes{ - icon_state = "S" + icon_state = "NE-out"; + pixel_x = 1; + pixel_y = 1 }, -/turf/open/auto_turf/sand_white/layer0, +/turf/open/auto_turf/shale/layer1, /area/lv522/outdoors/colony_streets/south_east_street) "ppF" = ( /turf/closed/shuttle/dropship2/tornado/typhoon{ @@ -39064,38 +31826,28 @@ dir = 1; req_one_access_txt = "100" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/c_block/mining) "ppX" = ( /obj/item/prop/colony/used_flare, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/lv522/outdoors/colony_streets/north_street) "pqj" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/spacecash/c1000, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/casino) "pqA" = ( /obj/structure/surface/table/almayer, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/lv522/indoors/b_block/bar) "pqB" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/newspaper, /obj/item/tool/pen/blue/clicky, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/casino) "pqI" = ( /obj/structure/surface/table/reinforced/prison, @@ -39111,10 +31863,7 @@ pixel_y = 15 }, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan2" - }, +/turf/open/floor/strata/cyan2/east, /area/lv522/indoors/a_block/medical) "pqQ" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -39127,9 +31876,7 @@ /turf/open/asphalt/cement, /area/lv522/outdoors/colony_streets/south_street) "pqU" = ( -/turf/open/floor/prison{ - icon_state = "blue" - }, +/turf/open/floor/prison/blue, /area/lv522/indoors/a_block/hallway) "pqZ" = ( /turf/closed/shuttle/dropship2/tornado/typhoon{ @@ -39147,7 +31894,6 @@ /area/lv522/outdoors/colony_streets/north_west_street) "prT" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/obj/structure/cargo_container/grant/rightmid, /turf/open/auto_turf/shale/layer1, /area/lv522/outdoors/w_rockies) "prU" = ( @@ -39170,9 +31916,7 @@ current_rounds = 4 }, /obj/structure/platform_decoration, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/lv522/outdoors/colony_streets/north_east_street) "prW" = ( /obj/structure/surface/table/almayer, @@ -39207,14 +31951,8 @@ /area/lv522/outdoors/colony_streets/north_west_street) "psq" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/north, /area/lv522/atmos/filt) -"psC" = ( -/turf/closed/wall/strata_outpost/reinforced/hull, -/area/lv522/indoors/a_block/hallway) "psF" = ( /obj/effect/decal/cleanable/dirt, /obj/item/ammo_magazine/rifle/mar40/lmg, @@ -39229,30 +31967,21 @@ /turf/open/auto_turf/shale/layer1, /area/lv522/outdoors/colony_streets/south_east_street) "psT" = ( -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/a_block/hallway) "ptc" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner/north, /area/lv522/atmos/filt) "ptp" = ( /obj/structure/machinery/light, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/cargo) "ptU" = ( /obj/structure/machinery/light, /obj/structure/machinery/disposal, -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles, /area/lv522/indoors/c_block/mining) "pul" = ( /obj/item/ammo_magazine/pistol/m1911{ @@ -39260,33 +31989,22 @@ pixel_y = 12 }, /obj/structure/platform, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/lv522/outdoors/colony_streets/north_east_street) "puu" = ( /obj/structure/machinery/cm_vending/sorted/medical/no_access, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan3" - }, +/turf/open/floor/strata/white_cyan3/west, /area/lv522/indoors/a_block/medical/glass) "puC" = ( /obj/structure/bed/chair/comfy{ dir = 8 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/admin) "puJ" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/hallway) "puV" = ( /obj/structure/cargo_container/kelland/right, @@ -39299,22 +32017,10 @@ }, /turf/open/auto_turf/shale/layer1, /area/lv522/outdoors/colony_streets/central_streets) -"pvd" = ( -/obj/effect/landmark/lv624/fog_blocker/short, -/obj/structure/machinery/landinglight/ds1/delayone{ - dir = 4 - }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, -/area/lv522/landing_zone_1) "pvz" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/light, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/south) "pvW" = ( /obj/item/lightstick/red/spoke/planted{ @@ -39331,10 +32037,7 @@ /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/north, /area/lv522/indoors/a_block/dorms) "pwu" = ( /obj/structure/platform_decoration{ @@ -39352,9 +32055,7 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/south) "pwB" = ( /obj/effect/decal/warning_stripes{ @@ -39362,9 +32063,7 @@ pixel_x = -1; pixel_y = 2 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/way_in_command_centre) "pwC" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_nest, @@ -39379,32 +32078,17 @@ pixel_y = -6 }, /turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) -"pwH" = ( -/obj/effect/landmark/lv624/fog_blocker/short, -/obj/structure/machinery/landinglight/ds1/delayone{ - dir = 8 - }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, -/area/lv522/landing_zone_1) +/area/lv522/landing_zone_1/tunnel/far) "pwJ" = ( /obj/structure/prop/dam/crane/damaged, -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/east, /area/lv522/indoors/lone_buildings/storage_blocks) "pwR" = ( /obj/structure/surface/table/almayer, /obj/item/tool/weldpack{ pixel_y = 2 }, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/lv522/outdoors/colony_streets/north_west_street) "pwT" = ( /obj/effect/decal/cleanable/dirt, @@ -39415,10 +32099,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/b_block/bridge) "pwX" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, @@ -39433,15 +32114,11 @@ /area/lv522/outdoors/colony_streets/central_streets) "pxN" = ( /obj/structure/surface/table/almayer, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/east_reactor/south) "pxS" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/a_block/dorms) "pxY" = ( /turf/closed/shuttle/dropship2/tornado/typhoon{ @@ -39450,19 +32127,14 @@ /area/lv522/landing_zone_forecon/UD6_Typhoon) "pyc" = ( /obj/effect/decal/cleanable/blood/drip, -/turf/open/floor/prison{ - dir = 1; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/north, /area/lv522/atmos/way_in_command_centre) "pyo" = ( /obj/structure/machinery/conveyor{ dir = 10; id = "cargo_container" }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/cargo_intake) "pys" = ( /turf/closed/shuttle/dropship2/tornado{ @@ -39471,10 +32143,7 @@ /area/lv522/landing_zone_forecon/UD6_Typhoon) "pyA" = ( /obj/structure/machinery/disposal, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/hallway) "pyO" = ( /obj/structure/prop/invuln/fire{ @@ -39527,9 +32196,7 @@ pixel_x = -8; pixel_y = 15 }, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/garage) "pzo" = ( /obj/item/weapon/twohanded/folded_metal_chair, @@ -39538,16 +32205,11 @@ "pzs" = ( /obj/structure/barricade/wooden, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/a_block/hallway) "pzH" = ( /obj/structure/barricade/wooden, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/hallway) "pAd" = ( /turf/closed/shuttle/dropship2/tornado{ @@ -39555,9 +32217,7 @@ }, /area/lv522/landing_zone_forecon/UD6_Tornado) "pAj" = ( -/turf/open/asphalt/cement{ - icon_state = "cement2" - }, +/turf/open/asphalt/cement/cement2, /area/lv522/outdoors/colony_streets/south_west_street) "pAp" = ( /obj/structure/largecrate, @@ -39568,10 +32228,7 @@ /turf/open/floor/corsat, /area/lv522/atmos/east_reactor/south) "pAN" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/north, /area/lv522/atmos/east_reactor/south) "pAW" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -39584,26 +32241,23 @@ /obj/structure/machinery/cm_vending/sorted/medical/blood, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/medical/glass) "pBn" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/closet/secure_closet/miner, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/mining) +"pBz" = ( +/obj/structure/machinery/door/airlock/hatch/cockpit/two, +/turf/open/shuttle/dropship/can_surgery/medium_grey_single_wide_up_to_down, +/area/lv522/landing_zone_forecon/UD6_Typhoon) "pBF" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/space_heater/radiator/red{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "pBK" = ( /obj/structure/surface/table/gamblingtable, @@ -39622,15 +32276,10 @@ /obj/structure/stairs/perspective{ icon_state = "p_stair_full" }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/light_grey_single_wide_up_to_down, /area/lv522/landing_zone_forecon/UD6_Typhoon) "pBT" = ( -/turf/open/floor/prison{ - dir = 6; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/southeast, /area/lv522/indoors/a_block/dorms) "pCb" = ( /obj/structure/filingcabinet/seeds{ @@ -39646,10 +32295,7 @@ /obj/structure/pipes/vents/pump, /obj/effect/landmark/objective_landmark/close, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/b_block/hydro) "pCg" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -39677,9 +32323,7 @@ dir = 5; icon_state = "p_stair_full" }, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/lv522/outdoors/colony_streets/central_streets) "pCv" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -39693,10 +32337,7 @@ icon_state = "p_stair_full" }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/lv522/indoors/b_block/bridge) "pCP" = ( /obj/item/tool/hatchet, @@ -39714,58 +32355,40 @@ /obj/item/ammo_magazine/smg/nailgun{ current_rounds = 0 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/lv522/indoors/lone_buildings/engineering) "pCW" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/a_block/fitness) "pCZ" = ( /obj/structure/machinery/vending/cola, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/admin) "pDe" = ( /obj/structure/machinery/squeezer, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/b_block/hydro) "pDh" = ( /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/a_block/dorms) "pDA" = ( /obj/structure/machinery/light, /obj/structure/barricade/wooden{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/kitchen/glass) "pDM" = ( /obj/structure/bed/chair/comfy{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/east_reactor/south) "pDU" = ( /obj/structure/barricade/wooden{ @@ -39788,24 +32411,18 @@ dir = 10 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "pEk" = ( /obj/structure/machinery/light{ dir = 8 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/garage) "pEm" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/east_reactor/south) "pEp" = ( /obj/structure/surface/table/almayer, @@ -39813,9 +32430,7 @@ dir = 8; pixel_y = 5 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/east_reactor/south) "pEs" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -39825,26 +32440,19 @@ /obj/structure/machinery/space_heater/radiator/red{ dir = 8 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/admin) "pEv" = ( /obj/structure/machinery/door/poddoor/shutters/almayer{ dir = 4; id = "Reactor_e_entry_4" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/filt) "pEw" = ( /obj/structure/blocker/forcefield/vehicles, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/command_centre) "pEA" = ( /obj/item/lightstick/red/spoke/planted{ @@ -39861,12 +32469,10 @@ /obj/structure/platform_decoration{ dir = 4 }, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/plating, /area/lv522/landing_zone_1/tunnel) "pFw" = ( /obj/structure/cargo_container/horizontal/blue/middle, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/auto_turf/sand_white/layer0, /area/lv522/landing_zone_1) "pFF" = ( @@ -39881,9 +32487,7 @@ icon_state = "E"; pixel_x = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/a_block/garden) "pFH" = ( /obj/structure/stairs/perspective{ @@ -39895,9 +32499,7 @@ "pFQ" = ( /obj/item/prop/alien/hugger, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/security) "pGe" = ( /obj/item/ammo_magazine/rifle/heap{ @@ -39907,9 +32509,7 @@ icon_state = "W"; pixel_x = -1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/way_in_command_centre) "pGg" = ( /obj/structure/bed/chair{ @@ -39949,9 +32549,7 @@ pixel_x = -9; pixel_y = 5 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/a_block/admin) "pGQ" = ( /obj/item/prop/alien/hugger, @@ -39980,7 +32578,7 @@ dir = 8 }, /turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "pHT" = ( /obj/structure/pipes/standard/simple/hidden/green, /turf/open/floor/corsat, @@ -39988,9 +32586,7 @@ "pIa" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/bridges/dorms_fitness) "pIu" = ( /turf/closed/shuttle/dropship2/tornado/typhoon{ @@ -39999,50 +32595,19 @@ /area/lv522/landing_zone_forecon/UD6_Typhoon) "pIx" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/c_block/mining) -"pIO" = ( -/obj/structure/machinery/computer/cameras{ - desc = "The flight controls for a UD6 Dropship. these controls look pretty banged up, and there's some blood covering the screen.."; - name = "\improper 'Typhoon' flight controls"; - network = null; - pixel_y = 21 - }, -/obj/structure/bed/chair/dropship/pilot{ - dir = 1 - }, -/obj/structure/machinery/light/double{ - dir = 1; - layer = 2.9; - pixel_y = 9 - }, -/obj/item/prop/almayer/flight_recorder{ - layer = 2.9; - pixel_x = -9; - pixel_y = 4 - }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, -/area/lv522/landing_zone_forecon/UD6_Typhoon) "pJb" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper A-Block Fitness Centre Airlock" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/fitness) "pJd" = ( /obj/effect/decal/cleanable/cobweb2, /obj/structure/surface/table/almayer, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/b_block/hydro) "pJh" = ( /obj/structure/surface/table/almayer{ @@ -40052,17 +32617,11 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/admin) "pJj" = ( /obj/structure/closet/crate/hydroponics/prespawned, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/b_block/hydro) "pJt" = ( /obj/structure/largecrate/random/mini{ @@ -40078,26 +32637,19 @@ pixel_x = -6; pixel_y = 4 }, -/turf/open/floor/shiva{ - icon_state = "radiator_tile2" - }, +/turf/open/floor/shiva/radiator_tile2, /area/lv522/indoors/a_block/bridges/op_centre) "pJG" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/space_heater/radiator/red, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/admin) "pJV" = ( /obj/structure/machinery/light{ dir = 8 }, /obj/structure/pipes/vents/pump, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "pJW" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -40118,10 +32670,7 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/bridges/op_centre) "pKo" = ( /obj/effect/decal/cleanable/dirt, @@ -40132,19 +32681,14 @@ /obj/structure/bed/chair/comfy{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/admin) "pKv" = ( /obj/structure/machinery/door/poddoor/shutters/almayer{ dir = 4; id = "Reactor_e_entry_3" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/filt) "pKX" = ( /turf/closed/wall/strata_outpost, @@ -40158,17 +32702,6 @@ }, /turf/open/floor/corsat, /area/lv522/atmos/cargo_intake) -"pLm" = ( -/obj/structure/platform, -/obj/structure/platform{ - dir = 4 - }, -/obj/structure/platform_decoration{ - dir = 6 - }, -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/auto_turf/sand_white/layer0, -/area/lv522/landing_zone_1) "pLs" = ( /obj/structure/barricade/wooden{ dir = 4 @@ -40189,9 +32722,7 @@ icon_state = "W"; pixel_x = -1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/way_in_command_centre) "pLT" = ( /obj/item/reagent_container/glass/bucket/janibucket{ @@ -40204,15 +32735,11 @@ /area/lv522/indoors/a_block/security) "pMd" = ( /obj/structure/window/framed/strata/reinforced, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/dorms) "pMg" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/filt) "pMs" = ( /obj/structure/surface/table/gamblingtable, @@ -40248,18 +32775,14 @@ /obj/structure/machinery/door/airlock/almayer/maint{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/landing_zone_1/tunnel) "pNc" = ( /obj/structure/prop/server_equipment/yutani_server/broken, /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/command_centre) "pNf" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -40269,16 +32792,12 @@ /turf/open/floor/plating/plating_catwalk/prison, /area/lv522/indoors/a_block/dorms) "pNo" = ( -/turf/open/floor/corsat{ - icon_state = "brown" - }, +/turf/open/floor/corsat/brown, /area/lv522/atmos/filt) "pNq" = ( /obj/structure/window/framed/strata/reinforced, /obj/structure/curtain/medical, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/medical) "pNs" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -40288,16 +32807,12 @@ /area/lv522/indoors/a_block/kitchen) "pNv" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/floor/corsat{ - icon_state = "brown" - }, +/turf/open/floor/corsat/brown, /area/lv522/atmos/cargo_intake) "pNF" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/blood/oil/streak, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/reactor_garage) "pNJ" = ( /obj/structure/stairs/perspective{ @@ -40308,10 +32823,7 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/b_block/bridge) "pNY" = ( /obj/effect/decal/cleanable/dirt, @@ -40319,9 +32831,7 @@ /area/lv522/indoors/c_block/t_comm) "pOa" = ( /obj/structure/machinery/colony_floodlight, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/outdoors/colony_streets/east_central_street) "pOb" = ( /obj/item/prop/colony/used_flare, @@ -40343,9 +32853,7 @@ pixel_x = 4; pixel_y = 21 }, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/lv522/outdoors/colony_streets/north_east_street) "pOs" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -40367,9 +32875,7 @@ dir = 8 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "pOK" = ( /obj/structure/platform/strata{ @@ -40391,16 +32897,11 @@ pixel_x = 7; pixel_y = 16 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/admin) "pPm" = ( /obj/structure/largecrate, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/lv522/outdoors/colony_streets/north_west_street) "pPt" = ( /obj/structure/largecrate/random, @@ -40417,9 +32918,7 @@ /obj/item/weapon/gun/rifle/m41a{ current_mag = null }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/outdoors/colony_streets/north_street) "pPC" = ( /turf/open/floor/plating/plating_catwalk/prison, @@ -40430,21 +32929,16 @@ }, /obj/item/prop/alien/hugger, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/lv522/indoors/a_block/dorms) "pQq" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/closet/firecloset/full, /turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "pQx" = ( /obj/structure/closet/firecloset/full, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/cargo) "pQA" = ( /obj/item/prop/alien/hugger, @@ -40460,11 +32954,7 @@ dir = 1 }, /obj/effect/decal/cleanable/dirt, -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/landing_zone_1/ceiling) "pQN" = ( /obj/item/cell/apc{ @@ -40475,37 +32965,27 @@ pixel_y = -2 }, /obj/structure/surface/table/almayer, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/lv522/indoors/lone_buildings/outdoor_bot) "pQQ" = ( /obj/structure/prop/ice_colony/dense/planter_box{ dir = 9 }, /obj/structure/flora/bush/ausbushes/ppflowers, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/b_block/bridge) "pQR" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/east_reactor) "pRf" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/corsat{ - icon_state = "brown" - }, +/turf/open/floor/corsat/brown, /area/lv522/atmos/cargo_intake) "pRg" = ( /obj/structure/machinery/camera/autoname/lz_camera, @@ -40517,10 +32997,7 @@ "pRi" = ( /obj/structure/machinery/seed_extractor, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/b_block/hydro) "pRv" = ( /obj/structure/pipes/standard/manifold/hidden/green{ @@ -40546,15 +33023,10 @@ "pRR" = ( /obj/effect/spawner/gibspawner/xeno, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/a_block/security) "pRT" = ( -/turf/open/floor/corsat{ - dir = 6; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/southeast, /area/lv522/atmos/cargo_intake) "pSs" = ( /obj/structure/machinery/light{ @@ -40564,53 +33036,33 @@ dir = 9 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/lv522/indoors/a_block/dorms) "pSK" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "w-y1" - }, +/turf/open/floor/almayer/w_y1/north, /area/lv522/atmos/way_in_command_centre) "pTa" = ( /obj/structure/prop/vehicles/crawler{ layer = 3.1 }, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/lv522/outdoors/colony_streets/central_streets) "pTj" = ( /obj/structure/machinery/vending/cigarette/colony, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms/glass) "pTl" = ( -/turf/open/floor/shiva{ - icon_state = "radiator_tile2" - }, +/turf/open/floor/shiva/radiator_tile2, /area/lv522/indoors/a_block/bridges/op_centre) "pTB" = ( /obj/structure/surface/table/almayer, /obj/item/trash/plate, /obj/structure/machinery/light, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) -"pTH" = ( -/obj/structure/machinery/door/airlock/hatch/cockpit/two, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, -/area/lv522/landing_zone_forecon/UD6_Typhoon) "pTO" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/bed{ @@ -40638,9 +33090,7 @@ pixel_y = 13 }, /obj/item/prop/alien/hugger, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "pTW" = ( /obj/item/explosive/mine/active{ @@ -40660,15 +33110,11 @@ "pUd" = ( /obj/structure/machinery/light, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "pUf" = ( /obj/structure/tent/big, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/lv522/outdoors/colony_streets/north_street) "pUo" = ( /obj/structure/pipes/vents/pump, @@ -40676,9 +33122,7 @@ /turf/open/floor/prison, /area/lv522/indoors/c_block/casino) "pUv" = ( -/turf/open/asphalt/cement{ - icon_state = "cement9" - }, +/turf/open/asphalt/cement/cement9, /area/lv522/outdoors/colony_streets/central_streets) "pUR" = ( /obj/structure/prop/ice_colony/ground_wire, @@ -40689,9 +33133,7 @@ /area/lv522/outdoors/w_rockies) "pVb" = ( /obj/item/prop/colony/used_flare, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/colony_streets/north_east_street) "pVn" = ( /obj/structure/platform_decoration, @@ -40716,16 +33158,10 @@ dir = 8 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/lv522/indoors/a_block/dorms) "pVx" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/a_block/fitness) "pVy" = ( /obj/structure/closet/crate, @@ -40733,9 +33169,7 @@ dir = 1 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/mining) "pVA" = ( /obj/structure/bed/chair{ @@ -40748,10 +33182,7 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/north, /area/lv522/atmos/way_in_command_centre) "pVX" = ( /obj/structure/machinery/light{ @@ -40762,17 +33193,12 @@ }, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/cobweb, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/corpo/glass) "pWk" = ( /obj/structure/surface/table/almayer, /obj/item/ammo_box/magazine/shotgun, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/security) "pWx" = ( /obj/structure/machinery/power/apc/weak{ @@ -40782,19 +33208,8 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/landing_zone_2/ceiling) -"pWC" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/bed/chair{ - dir = 1 - }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/lv522/atmos/sewer) "pWR" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 @@ -40806,17 +33221,11 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/lv522/indoors/lone_buildings/engineering) "pWX" = ( /obj/item/prop/colony/used_flare, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/north, /area/lv522/indoors/a_block/admin) "pXh" = ( /obj/effect/decal/cleanable/dirt, @@ -40827,28 +33236,20 @@ icon_state = "N"; pixel_y = 2 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/way_in_command_centre) "pXk" = ( /obj/structure/machinery/power/monitor{ name = "Main Power Grid Monitoring" }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/lv522/indoors/lone_buildings/engineering) "pXq" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/lv522/indoors/b_block/bridge) "pXu" = ( /obj/structure/cargo_container/kelland/right, @@ -40857,15 +33258,12 @@ "pXv" = ( /obj/item/prop/alien/hugger, /turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "pXx" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/strata{ - dir = 1; - icon_state = "white_cyan3" - }, +/turf/open/floor/strata/white_cyan3/north, /area/lv522/indoors/a_block/medical) "pXz" = ( /obj/structure/platform{ @@ -40877,10 +33275,7 @@ /obj/structure/flora/bush/ausbushes/grassybush{ pixel_y = 7 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/b_block/bridge) "pXR" = ( /obj/structure/barricade/sandbags, @@ -40895,17 +33290,13 @@ dir = 8 }, /obj/vehicle/train/cargo/engine, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/indoors/lone_buildings/storage_blocks) "pYj" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/stairs/perspective{ icon_state = "p_stair_full" }, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/plating, /area/lv522/landing_zone_1/tunnel) "pYu" = ( @@ -40915,10 +33306,7 @@ "pYG" = ( /obj/effect/decal/cleanable/blood/gibs/xeno, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/c_block/mining) "pYN" = ( /obj/structure/platform_decoration{ @@ -40934,17 +33322,12 @@ /turf/open/floor/plating, /area/lv522/indoors/c_block/mining) "pYP" = ( -/turf/open/floor/corsat{ - icon_state = "brown" - }, +/turf/open/floor/corsat/brown, /area/lv522/oob) "pYY" = ( /obj/vehicle/train/cargo/trolley, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/indoors/lone_buildings/storage_blocks) "pZb" = ( /turf/closed/shuttle/dropship2/tornado/typhoon{ @@ -40953,9 +33336,7 @@ /area/lv522/landing_zone_forecon/UD6_Typhoon) "pZi" = ( /obj/structure/prop/invuln/ice_prefab, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/lv522/outdoors/colony_streets/north_street) "pZo" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -40974,9 +33355,7 @@ name = "\improper UA Prepared Meal (cornbread)"; pixel_y = 9 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/reactor_garage) "pZA" = ( /obj/item/storage/secure/safe{ @@ -41005,26 +33384,21 @@ pixel_x = 8; pixel_y = 3 }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/lv522/indoors/b_block/bar) "qal" = ( /obj/structure/surface/table/almayer, /obj/item/device/flashlight/lamp/green, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "qaT" = ( /obj/structure/stairs/perspective{ icon_state = "p_stair_full" }, /turf/open/gm/river, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "qbf" = ( /obj/structure/cargo_container/horizontal/blue/bottom, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/auto_turf/sand_white/layer0, /area/lv522/landing_zone_1) "qbi" = ( @@ -41033,15 +33407,11 @@ icon_state = "p_stair_full" }, /obj/structure/platform, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/lv522/outdoors/colony_streets/north_street) "qbu" = ( /obj/structure/platform_decoration, -/turf/open/asphalt/cement{ - icon_state = "cement2" - }, +/turf/open/asphalt/cement/cement2, /area/lv522/outdoors/colony_streets/north_street) "qbB" = ( /obj/effect/decal/cleanable/dirt, @@ -41051,17 +33421,13 @@ /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/mining) "qbD" = ( /obj/structure/platform_decoration{ dir = 1 }, -/turf/open/asphalt/cement{ - icon_state = "cement9" - }, +/turf/open/asphalt/cement/cement9, /area/lv522/outdoors/colony_streets/north_east_street) "qbG" = ( /obj/effect/decal{ @@ -41089,6 +33455,16 @@ /obj/structure/sign/safety/high_voltage, /turf/open/auto_turf/shale/layer1, /area/lv522/outdoors/colony_streets/central_streets) +"qbP" = ( +/obj/structure/machinery/light/double{ + dir = 8; + pixel_y = -5 + }, +/obj/structure/bed/chair/dropship/passenger{ + dir = 4 + }, +/turf/open/shuttle/dropship/can_surgery/medium_grey_single_wide_up_to_down, +/area/lv522/landing_zone_forecon/UD6_Tornado) "qbW" = ( /obj/structure/prop/invuln/ice_prefab/trim{ dir = 8 @@ -41111,10 +33487,7 @@ /area/lv522/outdoors/colony_streets/central_streets) "qcd" = ( /obj/item/tool/wirecutters, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/north, /area/lv522/indoors/a_block/admin) "qce" = ( /obj/structure/pipes/vents/pump, @@ -41131,39 +33504,28 @@ pixel_x = -7; pixel_y = 7 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/reactor_garage) "qcw" = ( /obj/effect/spawner/gibspawner/human, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/lv522/indoors/a_block/kitchen) "qcy" = ( /obj/effect/spawner/gibspawner/xeno, /turf/open/floor/plating/plating_catwalk/prison, /area/lv522/indoors/a_block/dorms) "qcA" = ( -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/lv522/indoors/a_block/kitchen) "qcO" = ( /obj/structure/machinery/photocopier, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/landing_zone_1) "qda" = ( /obj/structure/largecrate/random/barrel/green, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/landing_zone_2/ceiling) "qdc" = ( /obj/structure/desertdam/decals/road_edge{ @@ -41182,9 +33544,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/lv522/outdoors/colony_streets/south_west_street) "qdS" = ( /obj/structure/bed/sofa/south/grey/left, @@ -41196,23 +33556,17 @@ layer = 2.6 }, /obj/structure/machinery/door/airlock/multi_tile/elevator/freight, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/indoors/c_block/mining) "qeJ" = ( /obj/structure/prop/vehicles/crawler, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/reactor_garage) "qeK" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "qfm" = ( /obj/structure/prop/ice_colony/ground_wire{ @@ -41238,16 +33592,11 @@ /area/lv522/indoors/a_block/dorms/glass) "qfz" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/c_block/cargo) "qfD" = ( /obj/structure/window/reinforced, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/a_block/fitness) "qfK" = ( /obj/structure/machinery/light{ @@ -41270,9 +33619,7 @@ id = "Sec-Kitchen-Lockdown"; name = "\improper Storm Shutters" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/kitchen) "qgj" = ( /obj/structure/barricade/wooden{ @@ -41298,9 +33645,7 @@ /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/lone_buildings/chunk) "qhO" = ( /obj/structure/bed/chair/comfy{ @@ -41324,10 +33669,7 @@ dir = 1 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/strata{ - dir = 1; - icon_state = "white_cyan3" - }, +/turf/open/floor/strata/white_cyan3/north, /area/lv522/indoors/a_block/medical) "qiw" = ( /obj/effect/decal/cleanable/dirt, @@ -41338,17 +33680,12 @@ }, /obj/structure/machinery/light, /obj/structure/machinery/recharger, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/lv522/indoors/c_block/t_comm) "qix" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/south) "qiC" = ( /obj/structure/machinery/camera/autoname{ @@ -41357,24 +33694,18 @@ /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/shiva{ - icon_state = "radiator_tile2" - }, +/turf/open/floor/shiva/radiator_tile2, /area/lv522/indoors/a_block/bridges) "qiG" = ( /obj/structure/window/framed/strata/reinforced, /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/dorm_north) "qiJ" = ( /obj/structure/machinery/vending/coffee, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "qiN" = ( /obj/effect/decal/cleanable/dirt, @@ -41384,18 +33715,13 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/lv522/indoors/a_block/dorm_north) "qjq" = ( /obj/structure/machinery/portable_atmospherics/hydroponics{ icon_state = "hydrotray4" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/landing_zone_1) "qjr" = ( /obj/item/prop/alien/hugger, @@ -41415,9 +33741,7 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3, /area/lv522/indoors/a_block/dorms) "qjC" = ( /obj/item/stack/rods, @@ -41430,9 +33754,7 @@ /obj/structure/prop/vehicles/crawler{ icon_state = "crawler_crate" }, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/lv522/outdoors/colony_streets/south_street) "qjO" = ( /obj/effect/decal/warning_stripes{ @@ -41440,18 +33762,6 @@ }, /turf/open/auto_turf/shale/layer1, /area/lv522/outdoors/colony_streets/south_east_street) -"qjX" = ( -/obj/item/clothing/mask/facehugger{ - desc = "It has some sort of a tube at the end of its tail. What the hell is this thing?"; - icon_state = "facehugger_impregnated"; - layer = 3; - name = "????"; - stat = 2 - }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, -/area/lv522/landing_zone_forecon/UD6_Tornado) "qkw" = ( /obj/structure/prop/invuln/remote_console_pod, /obj/structure/machinery/computer/shuttle/dropship/flight/lz1{ @@ -41469,9 +33779,7 @@ "qlr" = ( /obj/item/trash/barcardine, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "blue" - }, +/turf/open/floor/prison/blue, /area/lv522/indoors/a_block/hallway) "qly" = ( /obj/structure/surface/table/almayer, @@ -41516,18 +33824,14 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/command_centre) "qmp" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/recharger{ pixel_y = 1 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "qmr" = ( /obj/structure/surface/table/almayer, @@ -41536,10 +33840,7 @@ pixel_y = 15 }, /obj/item/trash/plate, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/admin) "qmA" = ( /turf/open/floor/plating, @@ -41553,9 +33854,7 @@ icon_state = "E"; pixel_x = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/cargo_intake) "qmM" = ( /obj/structure/prop/invuln/fire{ @@ -41595,10 +33894,7 @@ /obj/item/clothing/head/headset{ pixel_x = 4 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/lv522/landing_zone_forecon/UD6_Typhoon) "qnn" = ( /obj/structure/surface/table/almayer, @@ -41610,9 +33906,7 @@ pixel_x = -7; pixel_y = 7 }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/security/glass) "qnG" = ( /obj/structure/surface/table/almayer, @@ -41628,9 +33922,7 @@ /obj/structure/machinery/power/apc/weak{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms/glass) "qnM" = ( /obj/effect/decal/cleanable/dirt, @@ -41647,42 +33939,24 @@ /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/colony_streets/north_street) "qnU" = ( /obj/structure/closet/firecloset/full, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/hallway) -"qnV" = ( -/obj/structure/bed/chair/dropship/passenger{ - dir = 8 - }, -/obj/effect/decal/cleanable/blood/splatter, -/turf/open/shuttle/dropship{ - icon_state = "rasputin6" - }, -/area/lv522/landing_zone_forecon/UD6_Typhoon) "qnY" = ( /obj/structure/surface/table/almayer, /obj/item/prop/alien/hugger, /obj/structure/machinery/light, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "qoj" = ( /obj/item/ammo_magazine/rifle/heap{ current_rounds = 0 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/colony_streets/north_street) "qot" = ( /obj/structure/surface/table/almayer, @@ -41694,22 +33968,11 @@ /turf/open/auto_turf/shale/layer1, /area/lv522/outdoors/colony_streets/north_east_street) "qpc" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/east, /area/lv522/indoors/lone_buildings/storage_blocks) "qpd" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/north, /area/lv522/atmos/sewer) -"qpg" = ( -/turf/open/shuttle/dropship{ - icon_state = "floor8" - }, -/area/lv522/landing_zone_forecon/UD6_Typhoon) "qpq" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/prop/almayer/computer/PC{ @@ -41727,9 +33990,7 @@ pixel_x = -1; pixel_y = 3 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/way_in_command_centre) "qpz" = ( /obj/structure/cable/heavyduty{ @@ -41745,17 +34006,18 @@ /turf/open/floor/plating, /area/lv522/outdoors/colony_streets/central_streets) "qpD" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 4 +/obj/structure/machinery/light{ + dir = 1 }, -/turf/closed/wall/mineral/bone_resin, -/area/lv522/oob) +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/turf/open/auto_turf/shale/layer1, +/area/lv522/outdoors/colony_streets/south_east_street) "qpE" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/landing_zone_2/ceiling) "qpJ" = ( /obj/structure/machinery/door/airlock/almayer/generic{ @@ -41767,30 +34029,19 @@ id = "Sec-Kitchen-Lockdown"; name = "\improper Storm Shutters" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/kitchen/glass) "qqc" = ( /obj/structure/filingcabinet, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/landing_zone_1) "qqk" = ( /obj/structure/pipes/standard/manifold/fourway/hidden/green, -/turf/open/floor/strata{ - dir = 1; - icon_state = "white_cyan3" - }, +/turf/open/floor/strata/white_cyan3/north, /area/lv522/indoors/a_block/medical) "qqq" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/west, /area/lv522/atmos/filt) "qqx" = ( /obj/structure/barricade/wooden{ @@ -41817,9 +34068,7 @@ pixel_x = 9; pixel_y = 3 }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/security) "qqG" = ( /obj/structure/platform, @@ -41838,20 +34087,8 @@ /turf/open/asphalt/cement, /area/lv522/outdoors/n_rockies) "qqN" = ( -/obj/structure/filingcabinet{ - density = 0; - pixel_x = -8; - pixel_y = 16 - }, -/obj/structure/filingcabinet{ - density = 0; - pixel_x = 8; - pixel_y = 16 - }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/obj/effect/landmark/lv624/fog_blocker/short, +/turf/closed/wall/r_wall/biodome/biodome_unmeltable, /area/lv522/oob/w_y_vault) "qqR" = ( /obj/structure/platform, @@ -41859,18 +34096,8 @@ dir = 8; icon_state = "p_stair_full" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/c_block/garage) -"qqS" = ( -/obj/structure/bed/chair/dropship/passenger{ - dir = 4 - }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin7" - }, -/area/lv522/outdoors/w_rockies) "qqW" = ( /obj/structure/surface/rack, /obj/effect/decal/cleanable/dirt, @@ -41880,10 +34107,7 @@ /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/b_block/hydro) "qrf" = ( /obj/structure/prop/almayer/computers/sensor_computer3, @@ -41892,22 +34116,15 @@ health = 80; pixel_y = 7 }, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/mining) "qrj" = ( /obj/structure/machinery/optable, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/lv522/outdoors/w_rockies) "qro" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/filt) "qrG" = ( /obj/structure/surface/table/almayer, @@ -41919,9 +34136,7 @@ dir = 10 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/strata{ - icon_state = "white_cyan3" - }, +/turf/open/floor/strata/white_cyan3, /area/lv522/indoors/a_block/medical/glass) "qsi" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -41955,10 +34170,7 @@ /obj/structure/flora/bush/ausbushes/var3/ywflowers{ layer = 3 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/b_block/bridge) "qsN" = ( /obj/structure/window_frame/strata, @@ -41969,9 +34181,7 @@ dir = 1 }, /obj/structure/machinery/light/small, -/turf/open/floor/prison{ - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2, /area/lv522/indoors/a_block/dorms) "qsU" = ( /obj/structure/platform{ @@ -41981,9 +34191,7 @@ icon_state = "E"; pixel_x = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/a_block/garden) "qsW" = ( /obj/structure/platform{ @@ -42006,14 +34214,8 @@ /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/colony_streets/east_central_street) -"qtl" = ( -/obj/structure/cargo_container/horizontal/blue/top, -/turf/open/auto_turf/shale/layer1, -/area/lv522/outdoors/colony_streets/north_west_street) "qts" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 @@ -42053,10 +34255,7 @@ /obj/structure/machinery/power/apc/weak{ dir = 1 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/a_block/fitness/glass) "qtN" = ( /obj/effect/decal/warning_stripes{ @@ -42088,10 +34287,7 @@ /area/lv522/indoors/c_block/cargo) "quL" = ( /obj/structure/largecrate, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/landing_zone_1) "qvb" = ( /obj/structure/stairs/perspective{ @@ -42099,28 +34295,16 @@ icon_state = "p_stair_full" }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/way_in_command_centre) "qvA" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/landing_zone_2) "qvJ" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating/plating_catwalk/prison, /area/lv522/indoors/a_block/dorms) -"qvK" = ( -/obj/structure/cargo_container/grant/right, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, -/area/lv522/indoors/lone_buildings/storage_blocks) "qvM" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/bed/chair/comfy{ @@ -42139,9 +34323,7 @@ dir = 4 }, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/north_command_centre) "qvY" = ( /obj/structure/pipes/vents/pump, @@ -42166,14 +34348,12 @@ pixel_x = -7; pixel_y = 7 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "qxf" = ( /obj/effect/decal/cleanable/dirt, /turf/closed/wall/strata_outpost, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "qxg" = ( /obj/structure/surface/table/almayer, /obj/item/paper, @@ -42191,10 +34371,7 @@ }, /obj/item/toy/deck, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/a_block/fitness/glass) "qxk" = ( /obj/structure/platform_decoration{ @@ -42208,10 +34385,7 @@ /area/lv522/indoors/c_block/cargo) "qxp" = ( /obj/structure/closet/emcloset, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/a_block/fitness) "qxB" = ( /obj/item/ammo_magazine/sniper{ @@ -42229,26 +34403,18 @@ /area/lv522/outdoors/colony_streets/north_east_street) "qxD" = ( /obj/structure/machinery/microwave, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/landing_zone_1) "qxF" = ( /obj/structure/machinery/door/airlock/almayer/generic{ name = "\improper Bedroom" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/b_block/bar) "qxL" = ( /obj/structure/closet/secure_closet/medical2, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan2" - }, +/turf/open/floor/strata/cyan2/east, /area/lv522/indoors/a_block/medical) "qxO" = ( /obj/structure/prop/invuln/overhead_pipe{ @@ -42256,7 +34422,7 @@ }, /obj/item/stack/sheet/metal, /turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "qxX" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, @@ -42280,21 +34446,8 @@ pixel_y = 6 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) -"qyp" = ( -/obj/structure/transmitter/colony_net{ - phone_category = "LV522 Chances Claim"; - phone_color = "red"; - phone_id = "Reactor Eastern Reactor Control"; - pixel_y = 26 - }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, -/area/lv522/atmos/east_reactor) "qyG" = ( /obj/structure/pipes/standard/simple/hidden/green, /turf/open/auto_turf/sand_white/layer0, @@ -42302,19 +34455,13 @@ "qyI" = ( /obj/structure/closet/firecloset/full, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/a_block/fitness/glass) "qyM" = ( /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/a_block/fitness) "qyS" = ( /obj/structure/desertdam/decals/road_edge{ @@ -42330,13 +34477,11 @@ /area/lv522/indoors/a_block/fitness/glass) "qzp" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/dropshiprear/dropshipside/ds2{ - id = "sh_dropship2"; dir = 2; + id = "sh_dropship2"; name = "\improper Typhoon crew hatch" }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/light_grey_single_wide_up_to_down, /area/lv522/landing_zone_forecon/UD6_Typhoon) "qzw" = ( /turf/closed/shuttle/dropship2/tornado{ @@ -42369,19 +34514,14 @@ pixel_x = -11; pixel_y = 16 }, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/lv522/outdoors/colony_streets/south_street) "qzD" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/strata{ - dir = 1; - icon_state = "white_cyan4" - }, +/turf/open/floor/strata/white_cyan4/north, /area/lv522/indoors/a_block/medical) "qzE" = ( /obj/structure/platform{ @@ -42411,33 +34551,25 @@ /area/lv522/indoors/c_block/casino) "qAy" = ( /obj/item/toy/beach_ball, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/a_block/bridges/dorms_fitness) "qAF" = ( /obj/structure/bed/chair{ dir = 1 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms/glass) "qAS" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner, /area/lv522/atmos/reactor_garage) "qAX" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/kitchen) "qBb" = ( /obj/structure/barricade/wooden, @@ -42472,9 +34604,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/plating{ - icon_state = "platebot" - }, +/turf/open/floor/plating/platebot, /area/lv522/indoors/c_block/cargo) "qBE" = ( /obj/structure/surface/table/almayer, @@ -42497,15 +34627,11 @@ name = "\improper Northlock" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/bridges/corpo) "qBW" = ( /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/a_block/admin) "qCd" = ( /obj/structure/machinery/power/apc/weak{ @@ -42515,20 +34641,11 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/bridges/op_centre) "qCe" = ( -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/bridges/corpo) -"qCs" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) "qCB" = ( /obj/structure/surface/rack, /obj/item/clothing/shoes/blue{ @@ -42545,9 +34662,7 @@ name = "blue slippers"; pixel_y = -8 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/b_block/bar) "qCE" = ( /obj/item/clothing/mask/facehugger{ @@ -42557,18 +34672,13 @@ name = "????"; stat = 2 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner/north, /area/lv522/atmos/east_reactor/south) "qCL" = ( /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/lv522/indoors/a_block/dorm_north) "qCY" = ( /obj/structure/prop/invuln/ice_prefab{ @@ -42589,10 +34699,7 @@ name = "Suit Storage Unit"; pixel_x = 3 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/hallway) "qDl" = ( /obj/effect/decal/warning_stripes{ @@ -42616,7 +34723,6 @@ dir = 1; icon_state = "p_stair_full" }, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/auto_turf/sand_white/layer0, /area/lv522/landing_zone_1) "qDw" = ( @@ -42628,7 +34734,6 @@ dir = 5; icon_state = "p_stair_full" }, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/auto_turf/sand_white/layer0, /area/lv522/landing_zone_1) "qDL" = ( @@ -42670,18 +34775,14 @@ name = "\improper C-Block - Casino Airlock" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/c_block/casino) "qEu" = ( /obj/structure/stairs/perspective{ dir = 10; icon_state = "p_stair_full" }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "qEQ" = ( /obj/effect/decal/cleanable/dirt, @@ -42692,18 +34793,14 @@ /area/lv522/atmos/sewer) "qET" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/east_reactor/south) "qEU" = ( /obj/structure/window/framed/strata/reinforced, /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/dorms) "qFc" = ( /obj/effect/decal/warning_stripes{ @@ -42716,9 +34813,7 @@ /obj/structure/barricade/metal{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/outdoors/colony_streets/north_street) "qFs" = ( /turf/closed/shuttle/dropship2/tornado/typhoon{ @@ -42726,15 +34821,11 @@ }, /area/lv522/landing_zone_forecon/UD6_Typhoon) "qFE" = ( -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/lv522/outdoors/colony_streets/north_west_street) "qFW" = ( /obj/effect/spawner/gibspawner/xeno, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/east_reactor/south) "qGf" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -42747,19 +34838,14 @@ phone_id = "Colony Fitness"; pixel_y = 26 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/lv522/indoors/a_block/fitness) "qGq" = ( /obj/structure/bed/chair/comfy{ dir = 4 }, /obj/structure/barricade/wooden, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "qGC" = ( /turf/open/floor/prison, @@ -42769,9 +34855,7 @@ /obj/structure/machinery/portable_atmospherics/hydroponics{ icon_state = "hydrotray4" }, -/turf/open/floor/plating{ - icon_state = "platebotc" - }, +/turf/open/floor/plating/platebotc, /area/lv522/indoors/b_block/hydro/glass) "qGI" = ( /obj/structure/ore_box{ @@ -42789,9 +34873,7 @@ /area/lv522/landing_zone_forecon/UD6_Typhoon) "qHa" = ( /obj/structure/bed/chair/comfy, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "qHg" = ( /turf/closed/shuttle/dropship2/tornado{ @@ -42812,9 +34894,7 @@ dir = 4; id = "Sec-Kitchen-Lockdown" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/kitchen/glass) "qHr" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -42837,10 +34917,7 @@ pixel_x = 5; pixel_y = 6 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/lv522/landing_zone_forecon/UD6_Typhoon) "qHD" = ( /obj/effect/decal/cleanable/dirt, @@ -42872,32 +34949,24 @@ /area/lv522/oob) "qIy" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/corpo/glass) "qIE" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/bridge) "qIJ" = ( /obj/structure/machinery/light{ dir = 8 }, /obj/structure/pipes/vents/pump, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/cargo) "qJl" = ( /obj/effect/decal/cleanable/blood/splatter, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/lv522/landing_zone_forecon/UD6_Typhoon) "qJp" = ( /obj/structure/pipes/vents/pump, @@ -42905,10 +34974,7 @@ dir = 1; pixel_y = 26 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/medical) "qJv" = ( /obj/structure/prop/ice_colony/dense/planter_box{ @@ -42917,34 +34983,18 @@ /obj/structure/flora/bush/ausbushes/pointybush{ pixel_y = 12 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/b_block/bridge) -"qJw" = ( -/obj/item/clothing/suit/storage/RO{ - name = "\improper UA jacket" - }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, -/area/lv522/landing_zone_forecon/UD6_Typhoon) "qJy" = ( /obj/structure/largecrate/random, /turf/open/auto_turf/shale/layer1, /area/lv522/outdoors/colony_streets/south_west_street) "qJE" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/south) "qJH" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/lv522/indoors/c_block/t_comm) "qJK" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -42969,9 +35019,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/lv522/outdoors/colony_streets/north_east_street) "qKk" = ( /obj/effect/landmark/survivor_spawner, @@ -42997,9 +35045,7 @@ /area/lv522/outdoors/colony_streets/central_streets) "qKO" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/sewer) "qKV" = ( /obj/structure/platform_decoration{ @@ -43007,15 +35053,12 @@ }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "qLa" = ( /obj/structure/barricade/wooden{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/lv522/indoors/lone_buildings/engineering) "qLd" = ( /obj/structure/surface/table/almayer, @@ -43025,26 +35068,19 @@ pixel_y = -5 }, /obj/effect/landmark/objective_landmark/far, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/lv522/outdoors/w_rockies) "qLk" = ( /obj/structure/closet/firecloset/full, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/plating, /area/lv522/landing_zone_1/tunnel) "qLu" = ( /obj/structure/platform, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/asphalt/cement, /area/lv522/outdoors/colony_streets/south_west_street) "qLy" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/prison{ - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2, /area/lv522/indoors/a_block/dorms) "qLz" = ( /turf/closed/shuttle/dropship2/tornado/typhoon{ @@ -43056,9 +35092,7 @@ pixel_y = 26 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/strata{ - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1, /area/lv522/indoors/lone_buildings/chunk) "qLQ" = ( /obj/item/storage/backpack/marine/satchel{ @@ -43102,26 +35136,11 @@ icon_state = "70" }, /area/lv522/landing_zone_forecon/UD6_Typhoon) -"qMJ" = ( -/obj/structure/platform{ - dir = 8 - }, -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/auto_turf/sand_white/layer0, -/area/lv522/landing_zone_1) -"qMX" = ( -/obj/structure/cargo_container/horizontal/blue/middle{ - layer = 3.1 - }, -/turf/open/auto_turf/shale/layer1, -/area/lv522/outdoors/colony_streets/north_west_street) "qNg" = ( /obj/structure/machinery/door/airlock/almayer/generic{ name = "\improper Bedroom" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/c_block/mining) "qNh" = ( /obj/effect/landmark/yautja_teleport, @@ -43142,23 +35161,16 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/cobweb, /obj/structure/closet/secure_closet/engineering_electrical, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/lv522/indoors/c_block/t_comm) "qNG" = ( /obj/structure/bed/stool, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/lv522/indoors/b_block/bar) "qNI" = ( /obj/structure/cargo_container/grant/right, -/turf/open/floor/plating{ - icon_state = "platebot" - }, +/turf/open/floor/plating/platebot, /area/lv522/indoors/c_block/cargo) "qNK" = ( /obj/structure/surface/table/almayer, @@ -43190,10 +35202,7 @@ pixel_y = 7 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/a_block/fitness/glass) "qNQ" = ( /obj/structure/surface/table/almayer, @@ -43203,10 +35212,7 @@ }, /obj/item/seeds/potatoseed, /obj/structure/machinery/light, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/b_block/hydro) "qNR" = ( /obj/structure/barricade/handrail/strata{ @@ -43220,15 +35226,10 @@ name = "blue slippers" }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/lv522/indoors/b_block/bar) "qOa" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/lv522/indoors/lone_buildings/engineering) "qOi" = ( /obj/structure/prop/invuln/fire{ @@ -43245,51 +35246,35 @@ }, /obj/structure/surface/table/almayer, /obj/item/prop/colony/game, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/fitness/glass) "qOQ" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/lv522/indoors/a_block/fitness) "qOS" = ( /obj/structure/curtain/medical, /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/strata{ - dir = 1; - icon_state = "white_cyan3" - }, +/turf/open/floor/strata/white_cyan3/north, /area/lv522/indoors/a_block/medical) "qPm" = ( /obj/item/ammo_box/magazine/misc/mre/empty, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/lv522/outdoors/colony_streets/north_street) "qPq" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/north, /area/lv522/atmos/command_centre) "qPu" = ( /obj/item/weapon/gun/revolver/cmb, /obj/item/clothing/head/soft/sec, /obj/structure/curtain/medical, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan3" - }, +/turf/open/floor/strata/white_cyan3/east, /area/lv522/indoors/a_block/medical/glass) "qPA" = ( /obj/structure/barricade/handrail/strata{ @@ -43317,16 +35302,13 @@ pixel_y = 6 }, /turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "qPT" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/space_heater/radiator/red{ dir = 8 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/a_block/fitness) "qPU" = ( /obj/structure/bed/chair{ @@ -43342,9 +35324,7 @@ /area/lv522/indoors/c_block/garage) "qQh" = ( /obj/structure/cargo_container/watatsumi/right, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/lv522/outdoors/colony_streets/north_west_street) "qQi" = ( /obj/structure/prop/ice_colony/ground_wire{ @@ -43354,9 +35334,7 @@ /area/lv522/outdoors/colony_streets/central_streets) "qQo" = ( /obj/structure/closet/bodybag, -/turf/open/floor/prison{ - icon_state = "blue" - }, +/turf/open/floor/prison/blue, /area/lv522/indoors/a_block/hallway) "qQp" = ( /obj/structure/bed/chair{ @@ -43366,10 +35344,7 @@ /obj/structure/machinery/space_heater/radiator/red{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/a_block/fitness) "qQr" = ( /obj/item/trash/candle{ @@ -43383,9 +35358,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/lv522/indoors/a_block/dorm_north) "qQB" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -43397,9 +35370,7 @@ /obj/structure/stairs/perspective{ icon_state = "p_stair_full" }, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/lv522/outdoors/colony_streets/central_streets) "qQN" = ( /obj/structure/machinery/light{ @@ -43408,10 +35379,7 @@ /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/corpo) "qQQ" = ( /obj/structure/largecrate/random, @@ -43429,18 +35397,13 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/west, /area/lv522/indoors/a_block/dorms) "qRw" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/reactor_garage) "qRB" = ( /obj/structure/closet/crate, @@ -43452,10 +35415,6 @@ /turf/open/auto_turf/shale/layer1, /area/lv522/outdoors/colony_streets/south_street) "qRF" = ( -/obj/structure/stairs/perspective{ - dir = 5; - icon_state = "p_stair_full" - }, /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/camera/autoname{ dir = 8 @@ -43463,10 +35422,7 @@ /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/b_block/hydro) "qRH" = ( /obj/structure/platform{ @@ -43479,28 +35435,20 @@ /obj/structure/barricade/deployable{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/a_block/admin) "qSj" = ( /obj/structure/surface/rack, /obj/structure/machinery/light, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/lv522/indoors/a_block/dorm_north) "qSk" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/shiva{ - icon_state = "radiator_tile2" - }, +/turf/open/floor/shiva/radiator_tile2, /area/lv522/indoors/a_block/bridges) "qSu" = ( /obj/structure/machinery/disposal, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/casino) "qSw" = ( /obj/item/ammo_magazine/rifle/heap{ @@ -43524,9 +35472,7 @@ pixel_y = 10 }, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/cargo) "qSP" = ( /turf/closed/shuttle/dropship2/tornado/typhoon{ @@ -43540,10 +35486,7 @@ /obj/structure/flora/bush/ausbushes/var3/stalkybush{ pixel_y = 13 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/b_block/bridge) "qSW" = ( /obj/structure/platform{ @@ -43553,9 +35496,7 @@ dir = 8 }, /obj/structure/machinery/disposal, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/mining) "qTh" = ( /turf/closed/shuttle/dropship2/tornado/typhoon{ @@ -43570,17 +35511,11 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/lv522/indoors/b_block/bridge) "qTu" = ( /obj/structure/girder, -/turf/open/floor/prison{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/east, /area/lv522/indoors/a_block/admin) "qTx" = ( /obj/structure/window/framed/strata/reinforced, @@ -43589,15 +35524,11 @@ id = "Sec-Kitchen-Lockdown"; name = "\improper Storm Shutters" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/security) "qTE" = ( /obj/item/clothing/suit/storage/marine/medium, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/east_reactor/south) "qTG" = ( /obj/structure/window/framed/strata/reinforced, @@ -43605,19 +35536,14 @@ id = "Sec-Kitchen-Lockdown"; name = "\improper Storm Shutters" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/kitchen) "qTH" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/northeast, /area/lv522/atmos/command_centre) "qTI" = ( /obj/item/lightstick/red/spoke/planted{ @@ -43633,22 +35559,6 @@ }, /turf/open/auto_turf/sand_white/layer0, /area/lv522/outdoors/colony_streets/south_east_street) -"qTO" = ( -/obj/structure/largecrate/supply/ammo/m41a/half{ - pixel_x = 5 - }, -/obj/item/storage/box/guncase/m41a{ - pixel_x = 2; - pixel_y = 6 - }, -/obj/item/ammo_box/rounds/empty{ - layer = 3.1; - pixel_y = -15 - }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, -/area/lv522/landing_zone_forecon/UD6_Typhoon) "qUf" = ( /obj/item/ammo_magazine/rifle/m4ra/ext{ current_rounds = 0 @@ -43669,9 +35579,7 @@ /obj/structure/barricade/handrail{ dir = 4 }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/lv522/landing_zone_forecon/UD6_Typhoon) "qUh" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -43681,46 +35589,24 @@ /area/lv522/outdoors/colony_streets/south_east_street) "qUq" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/lv522/indoors/a_block/dorm_north) "qUs" = ( /obj/structure/window/framed/strata/reinforced, /obj/structure/curtain/red, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/c_block/t_comm) "qUz" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/reactor_garage) -"qUD" = ( -/obj/structure/machinery/cm_vending/sorted/medical/wall_med/limited{ - pixel_x = 30 - }, -/obj/effect/decal/cleanable/blood/splatter, -/obj/item/ammo_box/rounds/smg{ - layer = 3; - pixel_x = 1; - pixel_y = 4 - }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, -/area/lv522/landing_zone_forecon/UD6_Typhoon) "qUL" = ( /turf/open/floor/plating, /area/lv522/outdoors/colony_streets/north_east_street) "qUQ" = ( -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/west) "qVb" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -43731,18 +35617,14 @@ id = "Sec-Kitchen-Lockdown"; name = "\improper Storm Shutters" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/kitchen/glass) "qVf" = ( /obj/structure/machinery/space_heater/radiator/red{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "qVl" = ( /turf/closed/shuttle/dropship2/tornado/typhoon{ @@ -43753,9 +35635,7 @@ /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper Electronics Storage" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/lone_buildings/outdoor_bot) "qVN" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -43765,9 +35645,7 @@ dir = 4; id = "Reactor_e_entry_4" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/filt) "qVQ" = ( /obj/structure/machinery/camera/autoname{ @@ -43776,7 +35654,6 @@ /obj/structure/machinery/light/small{ dir = 4 }, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/plating, /area/lv522/landing_zone_1/tunnel) "qWf" = ( @@ -43786,15 +35663,27 @@ }, /turf/open/floor/prison, /area/lv522/indoors/lone_buildings/engineering) +"qWk" = ( +/obj/structure/largecrate/supply/ammo/m41a/half{ + pixel_x = 5 + }, +/obj/item/storage/box/guncase/m41a{ + pixel_x = 2; + pixel_y = 6 + }, +/obj/item/ammo_box/rounds/empty{ + layer = 3.1; + pixel_y = -15 + }, +/turf/open/shuttle/dropship/can_surgery/medium_grey_single_wide_up_to_down, +/area/lv522/landing_zone_forecon/UD6_Typhoon) "qWt" = ( /obj/structure/window/framed/strata/reinforced, /obj/structure/machinery/door/poddoor/shutters/almayer{ dir = 4; id = "Sec-Kitchen-Lockdown" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/kitchen) "qWX" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ @@ -43802,9 +35691,7 @@ name = "\improper Human Resources Office" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/dorms) "qWZ" = ( /turf/closed/shuttle/dropship2/tornado/typhoon{ @@ -43814,16 +35701,8 @@ "qXs" = ( /obj/structure/closet/firecloset/full, /obj/effect/decal/cleanable/dirt, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/plating, /area/lv522/landing_zone_1/tunnel) -"qXz" = ( -/obj/structure/cargo_container/horizontal/blue/bottom, -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 10 - }, -/turf/open/auto_turf/shale/layer1, -/area/lv522/outdoors/colony_streets/north_west_street) "qXH" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/toy, @@ -43835,9 +35714,7 @@ dir = 1 }, /obj/structure/closet, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "qXY" = ( /obj/structure/platform{ @@ -43848,26 +35725,20 @@ "qYc" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/door/window/eastleft, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/fitness/glass) "qYk" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/cargo_intake) "qYl" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/decal/cleanable/blood/drip, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/a_block/dorms) "qYo" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -43876,18 +35747,14 @@ "qYp" = ( /obj/structure/surface/table/almayer, /obj/item/trash/ceramic_plate, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/lv522/outdoors/colony_streets/windbreaker/observation) "qYq" = ( /obj/structure/machinery/light{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles, /area/lv522/indoors/c_block/mining) "qYt" = ( /obj/item/stack/sheet/metal, @@ -43898,16 +35765,11 @@ dir = 5 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/kitchen/glass) "qYv" = ( /obj/structure/closet/basketball, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/a_block/fitness) "qYy" = ( /obj/structure/stairs/perspective{ @@ -43917,9 +35779,7 @@ /obj/structure/platform{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/sewer) "qYG" = ( /obj/structure/pipes/standard/manifold/hidden/green{ @@ -43930,9 +35790,7 @@ /area/lv522/indoors/b_block/hydro) "qYM" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/reactor_garage) "qYP" = ( /obj/structure/platform{ @@ -43949,18 +35807,14 @@ "qYX" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/flour, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/lv522/indoors/a_block/kitchen) "qZd" = ( /obj/structure/machinery/light{ pixel_x = 16 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/bridge) "qZf" = ( /obj/item/storage/belt/marine{ @@ -43974,26 +35828,18 @@ /obj/item/storage/fancy/egg_box, /obj/effect/landmark/objective_landmark/medium, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "qZu" = ( /obj/structure/largecrate/random/barrel/yellow, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/lv522/outdoors/colony_streets/north_east_street) "qZB" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/floor/corsat{ - icon_state = "brown" - }, +/turf/open/floor/corsat/brown, /area/lv522/atmos/east_reactor) "qZC" = ( -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/hallway) "qZJ" = ( /obj/structure/machinery/light{ @@ -44003,10 +35849,7 @@ icon_state = "N"; pixel_y = 1 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/lv522/indoors/lone_buildings/engineering) "qZT" = ( /obj/item/prop/colony/usedbandage{ @@ -44021,9 +35864,7 @@ pixel_y = 4 }, /obj/item/prop/alien/hugger, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "qZY" = ( /obj/item/weapon/gun/rifle/m41a{ @@ -44039,37 +35880,26 @@ icon_state = "W" }, /obj/item/trash/uscm_mre, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/outdoors/colony_streets/north_street) "raj" = ( /obj/structure/window/framed/strata/reinforced, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/hallway) "ran" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/lv522/indoors/a_block/kitchen) "rar" = ( /obj/structure/machinery/disposal, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan2" - }, +/turf/open/floor/strata/cyan2/east, /area/lv522/indoors/a_block/medical) "ras" = ( /obj/structure/powerloader_wreckage/jd, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/shiva{ - icon_state = "radiator_tile2" - }, +/turf/open/floor/shiva/radiator_tile2, /area/lv522/indoors/a_block/bridges/op_centre) "raH" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -44085,10 +35915,7 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/a_block/fitness) "raS" = ( /obj/structure/desertdam/decals/road_edge{ @@ -44168,9 +35995,7 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/mining) "rbV" = ( /obj/structure/prop/vehicles/crawler{ @@ -44184,9 +36009,7 @@ dir = 4 }, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/floor/corsat{ - icon_state = "brown" - }, +/turf/open/floor/corsat/brown, /area/lv522/atmos/east_reactor) "rbX" = ( /obj/effect/landmark/yautja_teleport, @@ -44194,9 +36017,6 @@ /area/lv522/outdoors/colony_streets/east_central_street) "rbZ" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/obj/structure/machinery/light{ - dir = 8 - }, /turf/open/floor/corsat, /area/lv522/atmos/east_reactor/south) "rcd" = ( @@ -44249,32 +36069,23 @@ /area/lv522/indoors/a_block/fitness/glass) "rcR" = ( /obj/structure/largecrate/random/barrel/white, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/plating, /area/lv522/landing_zone_1/tunnel) "rcV" = ( /obj/structure/machinery/bioprinter, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan2" - }, +/turf/open/floor/strata/cyan2/east, /area/lv522/indoors/a_block/medical) "rdc" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/space_heater/radiator/red, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/b_block/bar) "rdf" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/west, /area/lv522/atmos/reactor_garage) "rdq" = ( /obj/structure/prop/invuln/ice_prefab/roof_greeble{ @@ -44293,10 +36104,7 @@ /obj/item/tool/wrench{ pixel_y = -6 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/b_block/hydro) "rdF" = ( /obj/structure/closet/crate/medical, @@ -44318,19 +36126,14 @@ icon_state = "crawler_crate_alt2"; layer = 3.1 }, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/lv522/outdoors/colony_streets/south_east_street) "rdT" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating/plating_catwalk/prison, /area/lv522/indoors/a_block/hallway/damage) "rej" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/c_block/mining) "reo" = ( /turf/open/floor/carpet, @@ -44345,15 +36148,10 @@ /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/landing_zone_2/ceiling) "rex" = ( -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/medical/glass) "reB" = ( /obj/item/tool/surgery/WYautopsy, @@ -44362,10 +36160,7 @@ dir = 4; pixel_x = 11 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan2" - }, +/turf/open/floor/strata/cyan2/east, /area/lv522/indoors/a_block/medical) "reQ" = ( /obj/structure/bed/chair{ @@ -44374,9 +36169,7 @@ /turf/open/floor/carpet, /area/lv522/indoors/a_block/dorm_north) "rfe" = ( -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/a_block/bridges/corpo) "rfg" = ( /obj/structure/platform{ @@ -44385,9 +36178,7 @@ /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/colony_streets/east_central_street) "rfi" = ( /turf/closed/shuttle/dropship2/tornado{ @@ -44410,10 +36201,7 @@ pixel_y = 5 }, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/b_block/hydro) "rfB" = ( /obj/structure/prop/ice_colony/flamingo{ @@ -44422,9 +36210,7 @@ pixel_x = -7; pixel_y = 10 }, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/lv522/outdoors/colony_streets/east_central_street) "rfK" = ( /obj/structure/surface/table/almayer, @@ -44439,9 +36225,7 @@ registered_name = "John Forklift" }, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/cargo) "rfW" = ( /obj/structure/surface/table/reinforced/prison, @@ -44452,16 +36236,15 @@ "rge" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/light, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/lv522/indoors/a_block/dorm_north) "rgk" = ( /obj/structure/machinery/power/port_gen/pacman/mrs, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/cargo) +"rgn" = ( +/turf/open/shuttle/dropship/can_surgery/medium_grey_single_wide_up_to_down, +/area/lv522/landing_zone_forecon/UD6_Typhoon) "rgA" = ( /turf/closed/shuttle/dropship2/tornado{ icon_state = "101" @@ -44483,61 +36266,37 @@ dir = 1 }, /turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "rhh" = ( /obj/structure/bed/chair/wheelchair, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/lv522/outdoors/colony_streets/windbreaker/observation) "rhk" = ( /obj/structure/machinery/landinglight/ds1/delayone{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/landing_zone_1) "rhz" = ( /obj/structure/pipes/standard/tank/oxygen{ dir = 1 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/medical/glass) "rhB" = ( -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/lv522/landing_zone_forecon/UD6_Typhoon) "rhF" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv522/indoors/a_block/corpo/glass) "rie" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/bridges/op_centre) -"rig" = ( -/obj/item/ammo_magazine/rifle/heap{ - current_rounds = 0 - }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, -/area/lv522/landing_zone_forecon/UD6_Typhoon) "rii" = ( /turf/closed/shuttle/dropship2/tornado{ icon_state = "102" @@ -44558,9 +36317,7 @@ /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/casino) "riZ" = ( /obj/structure/platform{ @@ -44572,10 +36329,7 @@ /obj/structure/flora/bush/ausbushes/var3/sunnybush{ pixel_y = 15 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/b_block/bridge) "rjl" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, @@ -44587,9 +36341,7 @@ pixel_y = 26 }, /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/south) "rjn" = ( /obj/structure/prop/invuln/ice_prefab/trim{ @@ -44612,60 +36364,37 @@ /obj/structure/largecrate/random/barrel/green{ pixel_x = -2 }, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/lv522/outdoors/colony_streets/central_streets) "rjJ" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/asphalt/cement{ - icon_state = "cement2" - }, +/turf/open/asphalt/cement/cement2, /area/lv522/outdoors/colony_streets/east_central_street) "rjP" = ( -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/light_grey_single_wide_up_to_down, /area/lv522/landing_zone_forecon/UD6_Typhoon) "rkd" = ( /obj/structure/surface/table/almayer, /obj/effect/landmark/objective_landmark/medium, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/lv522/indoors/a_block/kitchen) -"rkR" = ( -/obj/structure/barricade/deployable{ - dir = 4 - }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, -/area/lv522/landing_zone_forecon/UD6_Typhoon) "rkV" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/shiva{ - icon_state = "radiator_tile2" - }, +/turf/open/floor/shiva/radiator_tile2, /area/lv522/indoors/a_block/bridges/op_centre) "rla" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/west, /area/lv522/atmos/filt) "rls" = ( /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/security) "rlB" = ( /turf/open/floor/plating/plating_catwalk/prison, @@ -44673,9 +36402,7 @@ "rlI" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/lv522/indoors/b_block/bar) "rlV" = ( /obj/effect/decal/cleanable/blood/oil, @@ -44689,10 +36416,7 @@ /obj/item/tool/surgery/scalpel, /obj/structure/surface/table/reinforced/prison, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/medical) "rmi" = ( /obj/structure/machinery/camera/autoname{ @@ -44701,9 +36425,7 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/shiva{ - icon_state = "radiator_tile2" - }, +/turf/open/floor/shiva/radiator_tile2, /area/lv522/indoors/a_block/bridges) "rmp" = ( /obj/structure/largecrate/random/barrel/red, @@ -44722,15 +36444,11 @@ /obj/structure/bed/chair{ dir = 1 }, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/plating, /area/lv522/landing_zone_1/tunnel) "rmD" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/southwest, /area/lv522/indoors/a_block/hallway) "rmM" = ( /obj/structure/bed, @@ -44738,16 +36456,11 @@ layer = 3.1 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/a_block/hallway) "rmV" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/northwest, /area/lv522/atmos/east_reactor/south) "rmX" = ( /obj/effect/decal/warning_stripes{ @@ -44761,18 +36474,14 @@ dir = 1 }, /obj/structure/machinery/light/small, -/turf/open/floor/prison{ - icon_state = "blue" - }, +/turf/open/floor/prison/blue, /area/lv522/indoors/a_block/hallway) "rnp" = ( /obj/structure/largecrate/random, /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/n_rockies) "rnq" = ( /turf/closed/wall/solaris/reinforced/hull/lv522, @@ -44788,9 +36497,7 @@ /obj/structure/prop/invuln/ice_prefab{ dir = 5 }, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/lv522/outdoors/colony_streets/north_street) "rnB" = ( /turf/open/auto_turf/sand_white/layer0, @@ -44802,18 +36509,12 @@ /turf/open/auto_turf/shale/layer1, /area/lv522/outdoors/colony_streets/north_west_street) "rnT" = ( -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/lv522/landing_zone_1) "rod" = ( /obj/structure/pipes/vents/pump, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/a_block/fitness/glass) "rot" = ( /obj/structure/cargo_container/kelland/right, @@ -44831,9 +36532,7 @@ dir = 4 }, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/cargo_intake) "rox" = ( /obj/structure/bed/chair/comfy{ @@ -44847,32 +36546,21 @@ /obj/structure/machinery/door/poddoor/shutters/almayer{ id = "Sec-Kitchen-Lockdown" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/kitchen/glass) "roM" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/east, /area/lv522/atmos/east_reactor/west) "roN" = ( /obj/structure/machinery/smartfridge/seeds, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/b_block/hydro) "roT" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/lv522/indoors/a_block/fitness) "rpe" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -44883,9 +36571,7 @@ dir = 4 }, /obj/effect/spawner/random/toy, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/fitness/glass) "rpm" = ( /obj/item/ammo_magazine/rifle/heap{ @@ -44899,35 +36585,23 @@ /turf/open/floor/plating/plating_catwalk/prison, /area/lv522/indoors/a_block/fitness/glass) "rpG" = ( -/turf/open/floor/prison{ - dir = 5; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/northeast, /area/lv522/indoors/a_block/hallway) "rqd" = ( /obj/structure/pipes/vents/pump, /obj/structure/closet/firecloset/full, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/a_block/fitness) "rqn" = ( -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/landing_zone_2) "rqs" = ( -/turf/open/floor/shiva{ - icon_state = "radiator_tile2" - }, +/turf/open/floor/shiva/radiator_tile2, /area/lv522/indoors/a_block/bridges) "rqA" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/c_block/cargo) "rqE" = ( /obj/structure/surface/table/reinforced/almayer_B, @@ -44949,9 +36623,7 @@ dir = 4 }, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/filt) "rrf" = ( /obj/structure/platform, @@ -44965,33 +36637,19 @@ "rro" = ( /obj/structure/machinery/disposal, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms/glass) -"rrB" = ( -/obj/vehicle/powerloader, -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, -/area/lv522/landing_zone_forecon/UD6_Tornado) "rrI" = ( /obj/structure/bed/chair/comfy{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/landing_zone_1) "rrN" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/a_block/fitness) "rrV" = ( /obj/structure/window_frame/strata, @@ -45001,9 +36659,7 @@ /obj/structure/machinery/door/poddoor/shutters/almayer{ id = "Sec-Kitchen-Lockdown" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/kitchen/glass) "rsa" = ( /obj/effect/decal/cleanable/dirt, @@ -45015,9 +36671,7 @@ "rsl" = ( /obj/structure/surface/rack, /obj/item/tool/crowbar, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/lv522/indoors/a_block/dorm_north) "rsq" = ( /obj/item/toy/beach_ball, @@ -45030,7 +36684,7 @@ }, /obj/structure/largecrate/random/barrel, /turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "rsF" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 @@ -45063,9 +36717,7 @@ pixel_x = -4; pixel_y = 24 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "rtr" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -45078,16 +36730,11 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan3" - }, +/obj/structure/medical_supply_link/green, +/turf/open/floor/strata/white_cyan3/east, /area/lv522/indoors/a_block/medical/glass) "rtw" = ( -/turf/open/floor/corsat{ - dir = 5; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/northeast, /area/lv522/atmos/reactor_garage) "rtz" = ( /obj/item/stack/sheet/wood, @@ -45097,15 +36744,22 @@ }, /turf/open/floor/plating/plating_catwalk/prison, /area/lv522/indoors/c_block/cargo) +"rtA" = ( +/obj/structure/stairs/perspective{ + icon_state = "p_stair_full" + }, +/obj/structure/platform{ + dir = 8 + }, +/turf/open/shuttle/dropship/can_surgery/light_grey_middle, +/area/lv522/landing_zone_forecon/UD6_Tornado) "rtI" = ( /obj/structure/largecrate/random/barrel/white, /turf/open/floor/prison, /area/lv522/outdoors/nw_rockies) "rtX" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/lv522/outdoors/colony_streets/windbreaker/observation) "ruc" = ( /obj/structure/cargo_container/kelland/left{ @@ -45127,9 +36781,7 @@ /area/lv522/landing_zone_forecon/UD6_Typhoon) "rus" = ( /obj/effect/decal/cleanable/blood/splatter, -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/light_grey_single_wide_up_to_down, /area/lv522/landing_zone_forecon/UD6_Typhoon) "ruv" = ( /obj/structure/blocker/invisible_wall, @@ -45157,9 +36809,7 @@ }, /obj/effect/landmark/objective_landmark/close, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/garage) "ruY" = ( /obj/structure/machinery/optable, @@ -45168,17 +36818,12 @@ }, /obj/structure/pipes/vents/pump, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan2" - }, +/turf/open/floor/strata/cyan2/east, /area/lv522/indoors/a_block/medical) "rvg" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/reactor_garage) "rvh" = ( /obj/effect/decal/cleanable/blood/gibs/xeno/body, @@ -45195,10 +36840,7 @@ /obj/structure/flora/bush/ausbushes/var3/stalkybush{ pixel_y = 12 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/b_block/bridge) "rvv" = ( /obj/structure/machinery/door/airlock/almayer/engineering{ @@ -45208,15 +36850,11 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/c_block/cargo) "rvw" = ( /obj/structure/machinery/space_heater/radiator/red, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/lv522/indoors/a_block/dorm_north) "rvx" = ( /obj/structure/prop/invuln/ice_prefab/trim{ @@ -45225,9 +36863,7 @@ /turf/open/auto_turf/shale/layer1, /area/lv522/outdoors/colony_streets/north_street) "rvI" = ( -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/lv522/outdoors/colony_streets/north_west_street) "rwo" = ( /obj/structure/surface/table/almayer, @@ -45246,9 +36882,7 @@ /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/colony_streets/south_west_street) "rwx" = ( /obj/structure/desertdam/decals/road_edge{ @@ -45297,9 +36931,7 @@ /turf/open/floor/wood, /area/lv522/indoors/a_block/fitness/glass) "rwM" = ( -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/lone_buildings/engineering) "rwR" = ( /obj/structure/desertdam/decals/road_edge{ @@ -45319,25 +36951,18 @@ "rxl" = ( /obj/structure/surface/table/almayer, /obj/item/reagent_container/food/snacks/tofukabob, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "rxo" = ( /obj/structure/surface/table/almayer, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/outdoors/colony_streets/north_east_street) "rxu" = ( /obj/structure/stairs/perspective{ dir = 5; icon_state = "p_stair_full" }, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/lv522/outdoors/colony_streets/north_street) "rxI" = ( /turf/open/auto_turf/shale/layer2, @@ -45348,32 +36973,24 @@ /obj/item/tool/surgery/retractor, /obj/structure/surface/table/reinforced/prison, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/medical) "rxT" = ( /obj/structure/machinery/door/poddoor/almayer/closed{ id = "East_Lock"; name = "Emergency Lockdown" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/hallway) "ryj" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/a_block/corpo/glass) "rys" = ( /obj/structure/stairs/perspective{ dir = 4; icon_state = "p_stair_full" }, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/auto_turf/sand_white/layer0, /area/lv522/landing_zone_1) "ryu" = ( @@ -45384,49 +37001,33 @@ /obj/item/ore/silver, /obj/item/ore/silver, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/mining) "ryv" = ( -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/security) "ryI" = ( /obj/structure/largecrate/random, /obj/item/explosive/plastic/breaching_charge{ pixel_y = -2 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/colony_streets/north_street) "ryO" = ( /obj/structure/window/framed/strata/reinforced, /obj/structure/curtain/red, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/executive) "ryT" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/light, -/turf/open/floor/shiva{ - icon_state = "radiator_tile2" - }, +/turf/open/floor/shiva/radiator_tile2, /area/lv522/indoors/a_block/corpo/glass) "ryU" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/landing_zone_1) "rza" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/west, /area/lv522/atmos/filt) "rzq" = ( /obj/structure/cargo_container/kelland/left, @@ -45434,18 +37035,12 @@ /area/lv522/outdoors/colony_streets/north_west_street) "rzz" = ( /obj/effect/decal/cleanable/dirt, -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/landing_zone_1/ceiling) "rzG" = ( /obj/structure/surface/table/almayer, /obj/item/storage/beer_pack, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "rzR" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -45466,45 +37061,32 @@ /area/lv522/indoors/b_block/bar) "rAg" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/north, /area/lv522/indoors/a_block/dorms) "rAu" = ( /obj/structure/platform_decoration, -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/asphalt/cement{ - icon_state = "cement2" - }, +/turf/open/asphalt/cement/cement2, /area/lv522/landing_zone_1) "rAK" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/bridges) "rAL" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/structure/machinery/light, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/cargo_intake) "rAM" = ( /obj/structure/largecrate/random/case, /turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "rAX" = ( -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv522/indoors/a_block/corpo) "rBd" = ( /obj/structure/platform{ @@ -45528,11 +37110,6 @@ icon_state = "41" }, /area/lv522/landing_zone_forecon/UD6_Typhoon) -"rBV" = ( -/turf/open/floor/plating{ - icon_state = "platingdmg1" - }, -/area/lv522/indoors/lone_buildings/storage_blocks) "rBZ" = ( /turf/closed/shuttle/dropship2/tornado{ icon_state = "97" @@ -45540,47 +37117,28 @@ /area/lv522/landing_zone_forecon/UD6_Tornado) "rCa" = ( /obj/structure/closet/secure_closet/atmos_personal, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/lv522/indoors/lone_buildings/engineering) "rCi" = ( /turf/closed/shuttle/dropship2/tornado{ icon_state = "99" }, /area/lv522/landing_zone_forecon/UD6_Tornado) -"rCp" = ( -/obj/structure/bed/chair/dropship/passenger{ - dir = 4 - }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, -/area/lv522/landing_zone_forecon/UD6_Typhoon) "rCu" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/east, /area/lv522/outdoors/n_rockies) "rCz" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/engidoor/glass/colony{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/east_reactor/south) "rCE" = ( /obj/structure/machinery/light{ dir = 8 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/b_block/bridge) "rCI" = ( /obj/structure/prop/invuln/fire{ @@ -45595,20 +37153,12 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/asphalt/cement{ - icon_state = "cement2" - }, +/turf/open/asphalt/cement/cement2, /area/lv522/outdoors/colony_streets/south_east_street) "rCV" = ( /obj/item/prop/colony/used_flare, /turf/open/auto_turf/shale/layer1, /area/lv522/outdoors/colony_streets/north_street) -"rDb" = ( -/obj/item/device/m56d_post, -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, -/area/lv522/landing_zone_forecon/UD6_Typhoon) "rDu" = ( /obj/structure/machinery/door_control{ id = "UD6"; @@ -45618,21 +37168,11 @@ icon_state = "53" }, /area/lv522/landing_zone_forecon/UD6_Typhoon) -"rDz" = ( -/obj/structure/bed/chair/dropship/passenger{ - dir = 8 - }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, -/area/lv522/landing_zone_forecon/UD6_Typhoon) "rDM" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/a_block/hallway) "rEc" = ( /obj/structure/surface/table/almayer{ @@ -45642,28 +37182,21 @@ /obj/item/shard{ icon_state = "medium" }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/admin) "rEj" = ( /obj/structure/machinery/door/airlock/almayer/medical{ dir = 2; name = "\improper A-Block - Colony Medical Centre Airlock" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/medical) "rEm" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/c_block/t_comm) "rEP" = ( /obj/effect/spawner/gibspawner/human, @@ -45671,9 +37204,7 @@ /area/lv522/outdoors/w_rockies) "rEV" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/cargo_intake) "rFh" = ( /obj/structure/platform_decoration{ @@ -45687,21 +37218,13 @@ icon_state = "E"; pixel_x = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/colony_streets/east_central_street) "rFp" = ( /turf/closed/shuttle/dropship2/tornado/typhoon{ icon_state = "51" }, /area/lv522/landing_zone_forecon/UD6_Typhoon) -"rFw" = ( -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, -/area/lv522/outdoors/colony_streets/south_west_street) "rFT" = ( /obj/structure/machinery/landinglight/ds2, /turf/open/floor/plating, @@ -45717,9 +37240,7 @@ /area/lv522/outdoors/w_rockies) "rGm" = ( /obj/item/tool/weldingtool, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/a_block/dorms) "rGD" = ( /obj/effect/decal/cleanable/dirt, @@ -45735,27 +37256,21 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "rHl" = ( /obj/structure/window/framed/strata/reinforced, /obj/structure/machinery/door/poddoor/shutters/almayer{ id = "Sec-Kitchen-Lockdown" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/kitchen) "rHu" = ( /obj/structure/surface/table/almayer, /obj/item/trash/ceramic_plate{ pixel_y = 6 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "rHX" = ( /obj/structure/closet/crate/trashcart, @@ -45767,10 +37282,7 @@ /obj/structure/fence{ layer = 2.9 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/lv522/outdoors/colony_streets/south_west_street) "rIn" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -45778,32 +37290,17 @@ }, /turf/open/floor/plating/plating_catwalk/prison, /area/lv522/indoors/lone_buildings/engineering) -"rIr" = ( -/obj/structure/stairs/perspective{ - dir = 9; - icon_state = "p_stair_full" - }, -/obj/structure/platform_decoration{ - dir = 1 - }, -/turf/open/asphalt/cement, -/area/lv522/outdoors/colony_streets/east_central_street) "rIx" = ( /obj/structure/machinery/light{ dir = 4 }, /obj/structure/machinery/disposal, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/casino) "rIB" = ( /obj/effect/decal/cleanable/blood/drip, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/north, /area/lv522/indoors/a_block/dorms) "rIH" = ( /obj/structure/prop/invuln/lattice_prop{ @@ -45811,9 +37308,7 @@ pixel_x = 11; pixel_y = 24 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "rIM" = ( /obj/structure/window/framed/strata/reinforced, @@ -45822,38 +37317,22 @@ id = "LZ1_Lockdown_Lo"; name = "Emergency Lockdown" }, -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/landing_zone_1/ceiling) "rIZ" = ( /obj/structure/machinery/light, /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/disposal, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "rJf" = ( /obj/structure/window/framed/strata/reinforced, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/dorm_north) "rJr" = ( /obj/structure/surface/rack, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/outdoors/colony_streets/north_east_street) -"rJv" = ( -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/asphalt/cement{ - icon_state = "cement15" - }, -/area/lv522/outdoors/colony_streets/south_west_street) "rJB" = ( /obj/effect/decal/cleanable/blood/xeno{ icon_state = "xgib3" @@ -45877,17 +37356,12 @@ /area/lv522/indoors/a_block/dorms) "rJI" = ( /obj/structure/largecrate/random, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/outdoors/nw_rockies) "rKa" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/alien/resin/sticky, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/east_reactor/south) "rKe" = ( /obj/structure/platform{ @@ -45897,9 +37371,7 @@ icon_state = "E"; pixel_x = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/colony_streets/east_central_street) "rKg" = ( /obj/structure/surface/table/almayer, @@ -45911,19 +37383,13 @@ /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/a_block/fitness/glass) "rKt" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/lv522/indoors/a_block/fitness) "rKz" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -45931,18 +37397,14 @@ }, /obj/structure/bed/chair, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/reactor_garage) "rKS" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/reactor_garage) "rKW" = ( /obj/effect/decal/cleanable/blood, @@ -45960,9 +37422,7 @@ pixel_x = -8 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/lv522/indoors/a_block/kitchen) "rLg" = ( /obj/structure/window/framed/strata/reinforced, @@ -45970,15 +37430,11 @@ id = "LV_522_Hydro-Lockdown"; name = "\improper Storm Shutters" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/b_block/hydro) "rLk" = ( /obj/effect/decal/cleanable/blood/drip, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/lv522/outdoors/colony_streets/north_street) "rLq" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -45987,10 +37443,7 @@ /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/a_block/fitness) "rLt" = ( /obj/structure/pipes/standard/manifold/hidden/green{ @@ -46000,10 +37453,7 @@ dir = 1 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/a_block/fitness) "rLx" = ( /obj/structure/surface/table/woodentable/fancy, @@ -46021,10 +37471,7 @@ dir = 1 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/a_block/fitness) "rLB" = ( /obj/effect/decal/warning_stripes{ @@ -46035,17 +37482,13 @@ icon_state = "W" }, /obj/structure/fence, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/nw_rockies) "rMb" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/fitness) "rMd" = ( /obj/item/weapon/gun/boltaction{ @@ -46057,18 +37500,12 @@ /area/lv522/indoors/c_block/t_comm) "rMg" = ( /obj/structure/barricade/wooden, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/admin) "rMi" = ( /obj/structure/pipes/standard/manifold/hidden/green, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/lv522/indoors/a_block/fitness) "rMr" = ( /obj/effect/decal/cleanable/dirt, @@ -46076,9 +37513,7 @@ dir = 1 }, /obj/structure/machinery/light/small, -/turf/open/floor/shiva{ - icon_state = "radiator_tile2" - }, +/turf/open/floor/shiva/radiator_tile2, /area/lv522/indoors/a_block/hallway) "rMz" = ( /obj/item/storage/backpack/marine/satchel{ @@ -46093,9 +37528,7 @@ /area/lv522/outdoors/colony_streets/east_central_street) "rMD" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/sewer) "rME" = ( /turf/closed/wall/solaris/reinforced/hull/lv522, @@ -46113,9 +37546,7 @@ /area/lv522/outdoors/colony_streets/north_east_street) "rNs" = ( /obj/item/stack/sheet/wood, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/landing_zone_2) "rNv" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -46133,9 +37564,7 @@ /turf/open/floor/plating/plating_catwalk/prison, /area/lv522/indoors/c_block/mining) "rNF" = ( -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/lone_buildings/chunk) "rNO" = ( /obj/structure/surface/table/almayer, @@ -46143,9 +37572,7 @@ /turf/open/floor/plating, /area/lv522/indoors/c_block/cargo) "rOb" = ( -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/landing_zone_2/ceiling) "rOf" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -46179,7 +37606,6 @@ dir = 6; layer = 3.51 }, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/asphalt/cement, /area/lv522/landing_zone_1) "rOD" = ( @@ -46197,10 +37623,7 @@ pixel_y = 15 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan2" - }, +/turf/open/floor/strata/cyan2/east, /area/lv522/indoors/a_block/medical) "rOO" = ( /turf/closed/shuttle/dropship2/tornado{ @@ -46211,27 +37634,16 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/lv522/outdoors/colony_streets/central_streets) "rPu" = ( /obj/structure/machinery/light, /obj/effect/decal/cleanable/dirt, /turf/open/floor/prison, /area/lv522/indoors/c_block/t_comm) -"rPQ" = ( -/obj/structure/platform_decoration{ - dir = 4 - }, -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/auto_turf/sand_white/layer0, -/area/lv522/landing_zone_1) "rQd" = ( /obj/structure/closet/secure_closet/quartermaster, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/cargo) "rQg" = ( /obj/structure/window/framed/strata/reinforced, @@ -46239,9 +37651,7 @@ id = "LV_522_Hydro-Lockdown"; name = "\improper Storm Shutters" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/b_block/bridge) "rQB" = ( /obj/structure/closet/crate/miningcar/yellow, @@ -46265,9 +37675,7 @@ pixel_y = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/lv522/indoors/b_block/bar) "rRm" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -46275,9 +37683,7 @@ }, /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/light, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "rRr" = ( /obj/structure/filingcabinet/filingcabinet{ @@ -46290,10 +37696,7 @@ pixel_x = -8; pixel_y = 16 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/medical) "rRy" = ( /obj/structure/prop/server_equipment/yutani_server{ @@ -46302,16 +37705,12 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/landing_zone_2/ceiling) "rRA" = ( /obj/structure/pipes/vents/pump, /obj/structure/machinery/light, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/way_in_command_centre) "rRJ" = ( /obj/effect/decal/cleanable/dirt, @@ -46327,9 +37726,7 @@ /obj/item/reagent_container/food/snacks/packaged_hdogs{ pixel_y = 2 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/c_block/t_comm) "rRP" = ( /obj/effect/decal/cleanable/blood/drip, @@ -46346,10 +37743,7 @@ /area/lv522/indoors/a_block/kitchen/damage) "rRY" = ( /obj/structure/closet, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/landing_zone_2) "rSd" = ( /obj/structure/desertdam/decals/road_edge{ @@ -46377,27 +37771,18 @@ "rSe" = ( /obj/structure/machinery/light, /obj/structure/pipes/vents/pump, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/admin) "rSh" = ( /obj/structure/largecrate/random/barrel/white, -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/landing_zone_1/ceiling) "rSs" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/sewer) "rSG" = ( /obj/item/clothing/shoes/jackboots{ @@ -46410,9 +37795,7 @@ }, /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/vents/pump, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/b_block/bar) "rSW" = ( /obj/structure/prop/ice_colony/dense/planter_box{ @@ -46421,34 +37804,24 @@ /obj/structure/flora/bush/ausbushes/var3/fernybush{ pixel_y = 12 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/b_block/bridge) "rTf" = ( /obj/structure/platform_decoration{ dir = 1 }, -/turf/open/asphalt/cement{ - icon_state = "cement9" - }, +/turf/open/asphalt/cement/cement9, /area/lv522/outdoors/colony_streets/south_east_street) "rTh" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "brown" - }, +/turf/open/floor/corsat/brown, /area/lv522/atmos/cargo_intake) "rUe" = ( /obj/structure/largecrate/supply{ pixel_x = -4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/bridges/op_centre) "rUg" = ( /obj/structure/platform_decoration{ @@ -46461,18 +37834,14 @@ icon_state = "E"; pixel_x = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/colony_streets/east_central_street) "rUl" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/cargo_intake) "rUr" = ( /obj/structure/machinery/prop/almayer/computer/PC{ @@ -46481,6 +37850,15 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/prison, /area/lv522/indoors/a_block/admin) +"rUS" = ( +/obj/structure/platform_decoration{ + dir = 8 + }, +/obj/structure/bed/chair/dropship/passenger{ + dir = 8 + }, +/turf/open/shuttle/dropship/can_surgery/medium_grey_single_wide_up_to_down, +/area/lv522/landing_zone_forecon/UD6_Tornado) "rUX" = ( /obj/structure/shuttle/engine/heater{ dir = 4; @@ -46507,41 +37885,29 @@ pixel_x = 1; pixel_y = 1 }, -/turf/open/asphalt/cement{ - icon_state = "cement14" - }, +/turf/open/asphalt/cement/cement14, /area/lv522/outdoors/colony_streets/central_streets) "rVB" = ( /obj/effect/spawner/gibspawner/xeno, /obj/effect/decal/cleanable/blood/xeno{ icon_state = "xgib3" }, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/northeast, /area/lv522/atmos/east_reactor/south) "rVO" = ( /obj/structure/surface/table/almayer, -/turf/open/floor/prison{ - dir = 10; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/southwest, /area/lv522/indoors/a_block/admin) "rVR" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/landing_zone_2) "rVW" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "rWu" = ( /obj/effect/decal/cleanable/dirt, @@ -46552,9 +37918,7 @@ /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/colony_streets/south_west_street) "rWP" = ( /obj/structure/window/framed/strata/reinforced, @@ -46568,16 +37932,12 @@ dir = 1 }, /obj/structure/ore_box, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/mining) "rXa" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/light, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/south) "rXb" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -46589,9 +37949,7 @@ icon_state = "p_stair_full" }, /obj/structure/platform, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/way_in_command_centre) "rXr" = ( /obj/structure/fence{ @@ -46604,16 +37962,11 @@ /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/lv522/outdoors/nw_rockies) "rXE" = ( /obj/item/stack/sheet/wood, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/cargo) "rXH" = ( /obj/effect/decal/cleanable/blood, @@ -46622,9 +37975,7 @@ /area/lv522/indoors/b_block/hydro) "rYg" = ( /obj/structure/machinery/vending/dinnerware, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/lv522/indoors/a_block/kitchen) "rYi" = ( /obj/structure/platform{ @@ -46643,26 +37994,20 @@ /obj/structure/platform_decoration{ dir = 10 }, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/asphalt/cement, /area/lv522/outdoors/colony_streets/south_west_street) "rYu" = ( /obj/structure/barricade/deployable{ dir = 8 }, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/lv522/outdoors/colony_streets/north_street) "rYD" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/strata{ - dir = 1; - icon_state = "white_cyan3" - }, +/turf/open/floor/strata/white_cyan3/north, /area/lv522/indoors/a_block/medical) "rYE" = ( /obj/effect/decal/cleanable/vomit{ @@ -46701,35 +38046,28 @@ "rZi" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/a_block/bridges/dorms_fitness) "rZE" = ( /obj/structure/pipes/vents/pump, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/mining) "rZF" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/a_block/bridges/dorms_fitness) "rZK" = ( +/obj/structure/stairs/perspective{ + icon_state = "p_stair_full" + }, /obj/structure/platform{ - dir = 1 + dir = 8 }, /turf/open/asphalt/cement, /area/lv522/outdoors/colony_streets/south_street) "rZL" = ( -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/landing_zone_2/ceiling) "sag" = ( /obj/structure/ore_box, @@ -46744,9 +38082,7 @@ id = "LV522CIC_1"; name = "\improper Storm Shutters" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/admin) "say" = ( /obj/structure/pipes/vents/pump, @@ -46762,9 +38098,7 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/way_in_command_centre) "saz" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -46778,7 +38112,6 @@ /area/lv522/oob) "saL" = ( /obj/structure/platform, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/asphalt/cement, /area/lv522/landing_zone_1) "saQ" = ( @@ -46791,26 +38124,19 @@ icon_state = "flammable_pipe_3"; pixel_x = 2 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/west_reactor) "saS" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/corpo/glass) "saV" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/garage) "saY" = ( /obj/structure/prop/invuln/ice_prefab/roof_greeble{ @@ -46827,9 +38153,7 @@ dir = 1; name = "\improper Mining Overseers Office" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/c_block/mining) "sbh" = ( /obj/structure/platform_decoration, @@ -46838,6 +38162,10 @@ }, /turf/open/asphalt/cement, /area/lv522/landing_zone_2/ceiling) +"sbj" = ( +/obj/effect/decal/cleanable/blood/splatter, +/turf/open/shuttle/dropship/can_surgery/medium_grey_single_wide_up_to_down, +/area/lv522/landing_zone_forecon/UD6_Typhoon) "sbm" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -46847,9 +38175,7 @@ icon_state = "E"; pixel_x = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/n_rockies) "sbx" = ( /obj/structure/machinery/camera/autoname{ @@ -46858,9 +38184,7 @@ /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/mining) "sbG" = ( /turf/closed/shuttle/dropship2/tornado/typhoon{ @@ -46869,10 +38193,7 @@ /area/lv522/landing_zone_forecon/UD6_Typhoon) "sbJ" = ( /obj/structure/closet/wardrobe/medic_white, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/medical) "sbV" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -46886,9 +38207,7 @@ /turf/open/floor/prison, /area/lv522/indoors/c_block/t_comm) "scd" = ( -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3, /area/lv522/indoors/a_block/kitchen/damage) "sci" = ( /turf/closed/shuttle/dropship2/tornado/typhoon{ @@ -46900,45 +38219,17 @@ icon_state = "40" }, /area/lv522/landing_zone_forecon/UD6_Tornado) -"scv" = ( -/obj/structure/bed/chair/dropship/passenger{ - dir = 4 - }, -/obj/structure/machinery/light/double{ - dir = 8; - pixel_y = -5 - }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, -/area/lv522/landing_zone_forecon/UD6_Typhoon) "scw" = ( /obj/item/ammo_magazine/rifle/heap{ current_rounds = 0 }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, -/area/lv522/landing_zone_forecon/UD6_Typhoon) -"scy" = ( -/obj/structure/bed/chair/dropship/passenger{ - dir = 8 - }, -/obj/structure/machinery/light/double{ - dir = 4; - pixel_y = -5 - }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/lv522/landing_zone_forecon/UD6_Typhoon) "scM" = ( /obj/structure/surface/table/almayer, /obj/item/reagent_container/food/snacks/cheeseburger, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/lv522/indoors/b_block/bar) "sdC" = ( /obj/structure/largecrate/random/secure{ @@ -46955,22 +38246,17 @@ "sdM" = ( /obj/structure/surface/table/almayer, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "sdN" = ( /obj/structure/largecrate, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/plating, /area/lv522/landing_zone_1/tunnel) "sdR" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/south) "sec" = ( /obj/structure/prop/invuln/fire{ @@ -46996,9 +38282,7 @@ /area/lv522/outdoors/colony_streets/north_west_street) "seA" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/a_block/hallway) "seF" = ( /obj/structure/window/framed/corsat, @@ -47008,10 +38292,7 @@ /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/west, /area/lv522/indoors/a_block/dorms) "seJ" = ( /obj/structure/surface/table/almayer, @@ -47021,33 +38302,21 @@ /obj/item/toy/crossbow_ammo, /obj/item/toy/crossbow_ammo, /obj/item/toy/crossbow_ammo, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/a_block/fitness/glass) "seX" = ( /obj/structure/platform_decoration{ dir = 1 }, -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/asphalt/cement{ - icon_state = "cement9" - }, +/turf/open/asphalt/cement/cement9, /area/lv522/outdoors/colony_streets/south_west_street) "sfc" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/east, /area/lv522/atmos/way_in_command_centre) "sfm" = ( /obj/structure/surface/table/almayer, /obj/item/toy/bikehorn, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/a_block/fitness/glass) "sfI" = ( /obj/structure/platform{ @@ -47062,9 +38331,7 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "brown" - }, +/turf/open/floor/corsat/brown, /area/lv522/atmos/east_reactor/south) "sfO" = ( /obj/structure/platform_decoration{ @@ -47089,9 +38356,7 @@ /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/reactor_garage) "sgG" = ( /obj/structure/surface/table/almayer, @@ -47102,9 +38367,7 @@ /obj/item/reagent_container/food/snacks/sliceable/pizza/margherita{ pixel_y = 2 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "sgT" = ( /turf/closed/wall/strata_outpost/reinforced/hull, @@ -47120,23 +38383,19 @@ /area/lv522/indoors/a_block/executive) "sha" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/a_block/hallway) "shc" = ( /obj/structure/machinery/light{ dir = 8 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/casino) "she" = ( /obj/structure/machinery/floodlight, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, +/turf/open/floor/prison/cell_stripe/east, /area/lv522/indoors/lone_buildings/storage_blocks) "shh" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/dropshiprear/dropshipside/ds2{ @@ -47144,17 +38403,12 @@ id = "sh_dropship2"; name = "\improper Typhoon crew hatch" }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/light_grey_single_wide_up_to_down, /area/lv522/landing_zone_forecon/UD6_Typhoon) "shm" = ( /obj/structure/machinery/vending/cola, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/a_block/fitness/glass) "shq" = ( /turf/closed/shuttle/dropship2/tornado{ @@ -47169,18 +38423,13 @@ /obj/structure/surface/table/almayer, /obj/effect/spawner/random/toy, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/a_block/fitness/glass) "shZ" = ( /obj/structure/machinery/colony_floodlight{ layer = 4.3 }, -/turf/open/asphalt/cement{ - icon_state = "cement9" - }, +/turf/open/asphalt/cement/cement9, /area/lv522/outdoors/colony_streets/east_central_street) "sid" = ( /obj/structure/stairs/perspective{ @@ -47192,32 +38441,22 @@ "sil" = ( /obj/structure/surface/table/almayer, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/a_block/fitness/glass) "six" = ( -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/c_block/cargo) "siB" = ( /obj/item/ammo_magazine/rifle/heap{ current_rounds = 0 }, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/lv522/outdoors/colony_streets/north_street) "siT" = ( /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/lv522/indoors/a_block/fitness) "siX" = ( /obj/structure/prop/ice_colony/ground_wire{ @@ -47231,9 +38470,7 @@ /area/lv522/outdoors/colony_streets/south_street) "sjb" = ( /obj/item/stack/sandbags/small_stack, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/lv522/outdoors/colony_streets/north_street) "sjd" = ( /obj/effect/decal/cleanable/dirt, @@ -47241,11 +38478,7 @@ /obj/item/key/cargo_train{ icon_state = "keys" }, -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/landing_zone_1/ceiling) "sje" = ( /obj/structure/bed/chair{ @@ -47253,10 +38486,7 @@ }, /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/lv522/indoors/a_block/fitness) "sjp" = ( /obj/structure/bed/chair{ @@ -47264,20 +38494,14 @@ }, /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/lv522/indoors/a_block/fitness) "sjx" = ( /obj/item/prop/colony/canister{ layer = 3.1; pixel_y = 16 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/north, /area/lv522/atmos/reactor_garage) "sjy" = ( /turf/closed/wall/strata_outpost, @@ -47307,9 +38531,7 @@ /obj/item/bedsheet/brown{ layer = 3.1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/c_block/mining) "sjQ" = ( /obj/effect/decal/cleanable/dirt, @@ -47320,9 +38542,7 @@ /obj/structure/closet/crate/green, /obj/item/device/sentry_computer, /obj/item/defenses/handheld/sentry, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/lv522/landing_zone_forecon/UD6_Tornado) "sjY" = ( /turf/open/auto_turf/shale/layer2, @@ -47335,24 +38555,17 @@ /obj/structure/machinery/space_heater/radiator/red{ dir = 8 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/lv522/indoors/a_block/dorms) "skk" = ( /obj/effect/decal/cleanable/blood, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/south) "skC" = ( /obj/structure/closet/secure_closet/engineering_welding, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/reactor_garage) "skE" = ( /turf/closed/shuttle/dropship2/tornado{ @@ -47365,19 +38578,14 @@ }, /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/lv522/indoors/b_block/bridge) "skU" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/lv522/indoors/b_block/bar) "slq" = ( /obj/structure/platform_decoration{ @@ -47396,9 +38604,7 @@ phone_id = "Reactor Control"; pixel_y = 6 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/way_in_command_centre) "slD" = ( /obj/structure/prop/invuln/ice_prefab/trim{ @@ -47427,9 +38633,7 @@ pixel_x = -9; pixel_y = 4 }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/lv522/landing_zone_forecon/UD6_Tornado) "slO" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -47445,10 +38649,7 @@ /turf/open/floor/prison, /area/lv522/indoors/a_block/dorms) "smr" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/east, /area/lv522/atmos/reactor_garage) "sms" = ( /obj/effect/decal/cleanable/blood/drip, @@ -47456,39 +38657,32 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/corpo/glass) "smF" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan2" - }, +/turf/open/floor/strata/cyan2/east, /area/lv522/indoors/a_block/medical/glass) "smK" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/oob) "smR" = ( -/turf/open/floor/corsat{ - icon_state = "marked" +/obj/structure/machinery/door/poddoor/almayer/closed{ + dir = 4; + id = "West LZ Storage"; + name = "Emergency Lockdown" }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/lone_buildings/storage_blocks) "smY" = ( /obj/structure/stairs/perspective{ dir = 4; icon_state = "p_stair_full" }, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/lv522/outdoors/colony_streets/north_street) "snb" = ( /obj/effect/decal/cleanable/blood/gibs, @@ -47501,9 +38695,7 @@ pixel_y = 6 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/security) "sno" = ( /obj/structure/prop/invuln/ice_prefab, @@ -47514,26 +38706,19 @@ dir = 8 }, /obj/structure/prop/almayer/computers/sensor_computer1, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/c_block/mining) "snP" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /obj/structure/surface/table/almayer, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/south) "snR" = ( /obj/structure/surface/rack, /obj/item/tank/oxygen, /obj/item/tank/oxygen, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/mining) "snX" = ( /turf/closed/wall/strata_outpost, @@ -47555,10 +38740,7 @@ dir = 1; pixel_y = 26 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/a_block/fitness) "spe" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -47566,10 +38748,6 @@ }, /turf/open/auto_turf/sand_white/layer0, /area/lv522/outdoors/colony_streets/north_street) -"spj" = ( -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/closed/wall/strata_outpost/reinforced, -/area/lv522/landing_zone_1/tunnel) "spm" = ( /obj/structure/bed/chair/comfy, /obj/effect/decal/cleanable/dirt, @@ -47577,20 +38755,16 @@ /turf/open/floor/carpet, /area/lv522/indoors/b_block/bar) "spn" = ( -/obj/effect/decal/cleanable/dirt, /obj/effect/decal/warning_stripes{ - icon_state = "W"; - pixel_x = -1 - }, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" + icon_state = "SW-out"; + pixel_x = -1; + pixel_y = -1 }, +/obj/effect/landmark/corpsespawner/wy/manager, +/turf/open/floor/whiteyellowfull/east, /area/lv522/oob/w_y_vault) "spo" = ( -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/lv522/outdoors/colony_streets/central_streets) "sps" = ( /obj/effect/decal/warning_stripes{ @@ -47608,9 +38782,7 @@ /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/colony_streets/north_street) "spz" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -47618,24 +38790,17 @@ dir = 1; name = "\improper Mining Control" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/c_block/mining) "spB" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/way_in_command_centre) "spI" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/east, /area/lv522/atmos/east_reactor/north) "spJ" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -47646,9 +38811,7 @@ /area/lv522/indoors/b_block/bridge) "spM" = ( /obj/structure/machinery/light, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/cargo) "spW" = ( /obj/structure/platform{ @@ -47657,19 +38820,13 @@ /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/colony_streets/south_east_street) "sqd" = ( -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/b_block/bridge) "sql" = ( -/turf/open/asphalt/cement{ - icon_state = "cement15" - }, +/turf/open/asphalt/cement/cement15, /area/lv522/outdoors/colony_streets/central_streets) "sqH" = ( /obj/structure/machinery/door_display/research_cell{ @@ -47686,9 +38843,7 @@ icon_state = "W"; pixel_x = -1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/way_in_command_centre) "sqQ" = ( /obj/effect/decal/cleanable/dirt, @@ -47697,9 +38852,7 @@ "srf" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_nest, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/south) "srk" = ( /obj/effect/decal/cleanable/dirt, @@ -47708,9 +38861,7 @@ id = "LV_522_Hydro-Lockdown"; name = "\improper Storm Shutters" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/b_block/bridge) "srm" = ( /obj/structure/filingcabinet{ @@ -47719,9 +38870,7 @@ /obj/structure/filingcabinet{ pixel_x = 7 }, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/cargo) "srE" = ( /obj/structure/stairs/perspective{ @@ -47736,16 +38885,11 @@ /area/lv522/indoors/a_block/kitchen) "srM" = ( /obj/structure/machinery/vending/hydroseeds, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/b_block/hydro) "srQ" = ( /obj/structure/cargo_container/ferret/right, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/lv522/outdoors/colony_streets/north_west_street) "srS" = ( /obj/structure/machinery/landinglight/ds2/delaythree{ @@ -47760,9 +38904,7 @@ pixel_x = -1; pixel_y = 2 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/way_in_command_centre) "ssh" = ( /obj/structure/closet/crate/trashcart, @@ -47780,43 +38922,27 @@ /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/colony_streets/north_east_street) "ssl" = ( /obj/structure/barricade/wooden{ dir = 4; layer = 5.3 }, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/lv522/outdoors/colony_streets/central_streets) "ssn" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner/east, /area/lv522/atmos/west_reactor) "ssU" = ( /turf/closed/shuttle/dropship2/tornado{ icon_state = "89" }, /area/lv522/landing_zone_forecon/UD6_Tornado) -"std" = ( -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/asphalt/cement{ - icon_state = "cement9" - }, -/area/lv522/outdoors/colony_streets/south_west_street) "stG" = ( /obj/structure/pipes/vents/pump, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/lv522/indoors/lone_buildings/outdoor_bot) "suh" = ( /obj/effect/decal/cleanable/dirt, @@ -47829,16 +38955,12 @@ }, /obj/item/storage/toolbox/mechanical, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/security/glass) "sus" = ( /obj/structure/surface/table/almayer, /obj/item/storage/toolbox/mechanical/green, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/lv522/outdoors/colony_streets/north_west_street) "suF" = ( /obj/structure/bed/chair{ @@ -47849,9 +38971,7 @@ "suG" = ( /obj/item/prop/colony/used_flare, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/south) "suS" = ( /obj/effect/decal/cleanable/dirt, @@ -47864,9 +38984,7 @@ pixel_x = 1; pixel_y = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/way_in_command_centre) "suV" = ( /obj/structure/machinery/computer/cameras/wooden_tv{ @@ -47886,9 +39004,7 @@ pixel_y = -6 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/wood{ - icon_state = "wood-broken" - }, +/turf/open/floor/wood/wood_broken, /area/lv522/indoors/b_block/bar) "svf" = ( /obj/structure/window_frame/strata, @@ -47896,9 +39012,7 @@ id = "LV522CIC_1"; name = "\improper Storm Shutters" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/admin) "svo" = ( /obj/structure/surface/table/almayer, @@ -47935,15 +39049,11 @@ /turf/open/auto_turf/shale/layer1, /area/lv522/outdoors/colony_streets/north_west_street) "swu" = ( -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/east_reactor) "swD" = ( /obj/structure/largecrate/supply/supplies/metal, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/landing_zone_2/ceiling) "swF" = ( /obj/structure/stairs/perspective{ @@ -47959,23 +39069,17 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/lv522/indoors/c_block/t_comm) "swY" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/bed/roller, /obj/item/stack/medical/bruise_pack, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/hallway) "sxg" = ( /obj/item/stack/rods, -/turf/open/auto_turf/shale/layer1, +/turf/open/asphalt/cement/cement12, /area/lv522/outdoors/colony_streets/south_street) "sxp" = ( /obj/structure/surface/table/almayer, @@ -47987,15 +39091,11 @@ /area/lv522/indoors/a_block/security/glass) "sxU" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/west) "syg" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/floor/corsat{ - icon_state = "brown" - }, +/turf/open/floor/corsat/brown, /area/lv522/atmos/east_reactor/south) "syl" = ( /obj/structure/bed/chair/comfy{ @@ -48003,25 +39103,19 @@ }, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/generic, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/lv522/indoors/b_block/bar) "syt" = ( /obj/structure/surface/table/almayer, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms/glass) "syy" = ( /obj/structure/machinery/power/apc/weak{ dir = 1 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/garage) "syB" = ( /obj/structure/ore_box, @@ -48042,16 +39136,11 @@ /obj/structure/machinery/door/airlock/almayer/generic{ dir = 2 }, -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/landing_zone_1/ceiling) "syV" = ( /obj/structure/bed/chair/comfy, -/turf/open/floor/corsat{ - icon_state = "brown" - }, +/turf/open/floor/corsat/brown, /area/lv522/atmos/east_reactor/south) "syW" = ( /obj/item/explosive/mine/active{ @@ -48067,31 +39156,21 @@ icon_state = "W" }, /obj/structure/barricade/deployable, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/outdoors/colony_streets/north_street) "szo" = ( /obj/structure/platform{ dir = 8 }, -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/lv522/outdoors/colony_streets/south_west_street) "szJ" = ( /obj/structure/machinery/medical_pod/sleeper, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/medical) "szT" = ( /obj/structure/ore_box, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/lv522/outdoors/colony_streets/south_east_street) "szY" = ( /obj/structure/bed/chair/comfy{ @@ -48106,9 +39185,7 @@ layer = 3.1 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/mining) "sAp" = ( /obj/structure/barricade/wooden{ @@ -48141,31 +39218,15 @@ name = "synthethic potted plant"; pixel_y = 14 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms/glass) "sAT" = ( /obj/structure/surface/table/almayer, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/landing_zone_1) "sAU" = ( /turf/open/floor/plating/plating_catwalk/prison, /area/lv522/indoors/a_block/security/glass) -"sBg" = ( -/obj/structure/prop/server_equipment/yutani_server{ - pixel_x = 3 - }, -/obj/structure/prop/server_equipment{ - pixel_x = -16 - }, -/turf/open/floor{ - icon_state = "bcircuit" - }, -/area/lv522/atmos/east_reactor) "sBt" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 @@ -48175,26 +39236,14 @@ "sBy" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/medical) -"sBz" = ( -/obj/structure/platform{ - dir = 1 - }, -/obj/structure/machinery/squeezer, -/turf/open/floor/plating, -/area/lv522/indoors/c_block/cargo) "sBH" = ( /obj/structure/reagent_dispensers/water_cooler/stacks{ density = 0; pixel_y = 16 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/way_in_command_centre) "sBX" = ( /obj/structure/girder, @@ -48208,10 +39257,7 @@ dir = 9; icon_state = "p_stair_full" }, -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/lv522/landing_zone_1) "sCi" = ( /obj/item/clothing/shoes/jackboots{ @@ -48223,17 +39269,8 @@ pixel_y = 9 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/mining) -"sCk" = ( -/obj/effect/landmark/lv624/fog_blocker/short, -/obj/structure/machinery/landinglight/ds1{ - dir = 8 - }, -/turf/open/floor/plating, -/area/lv522/landing_zone_1) "sCp" = ( /turf/closed/shuttle/dropship2/tornado{ icon_state = "75" @@ -48252,9 +39289,7 @@ pixel_y = 3 }, /obj/structure/closet/crate, -/turf/open/floor/corsat{ - icon_state = "brown" - }, +/turf/open/floor/corsat/brown, /area/lv522/atmos/east_reactor/north) "sCP" = ( /obj/structure/machinery/light{ @@ -48263,10 +39298,7 @@ /obj/structure/closet/crate, /obj/effect/decal/cleanable/dirt, /obj/item/storage/pouch/medkit/full_advanced, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/indoors/lone_buildings/storage_blocks) "sDa" = ( /obj/structure/machinery/light/small{ @@ -48278,15 +39310,10 @@ /obj/structure/machinery/space_heater/radiator/red{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/lone_buildings/chunk) "sDf" = ( -/turf/open/floor/corsat{ - dir = 5; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/northeast, /area/lv522/atmos/east_reactor/south) "sDq" = ( /obj/structure/barricade/wooden{ @@ -48303,10 +39330,7 @@ /obj/structure/largecrate/random{ layer = 2.9 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/landing_zone_2) "sDS" = ( /turf/open/floor/prison, @@ -48322,44 +39346,45 @@ dir = 8 }, /obj/effect/landmark/survivor_spawner, -/turf/open/floor/prison{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/east, /area/lv522/indoors/a_block/admin) "sEk" = ( /obj/structure/barricade/wooden{ dir = 1 }, /obj/item/tool/weldingtool, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/a_block/kitchen/glass) "sED" = ( /obj/effect/landmark/objective_landmark/close, /obj/structure/barricade/wooden{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/lone_buildings/storage_blocks) +"sES" = ( +/obj/item/fuel_cell{ + layer = 3.1; + pixel_x = 3; + pixel_y = 15 + }, +/obj/item/fuel_cell{ + layer = 3.1; + pixel_x = -10; + pixel_y = 18 + }, +/turf/open/floor/plating, +/area/lv522/indoors/c_block/cargo) "sFb" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/northwest, /area/lv522/atmos/reactor_garage) "sFf" = ( /obj/item/trash/burger, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "blue" - }, +/turf/open/floor/prison/blue, /area/lv522/indoors/a_block/admin) "sFp" = ( /obj/structure/machinery/colony_floodlight{ @@ -48367,18 +39392,14 @@ layer = 4.3; pixel_y = 17 }, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/lv522/outdoors/colony_streets/central_streets) "sFF" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/b_block/hydro) "sFG" = ( /turf/closed/shuttle/dropship2/tornado/typhoon{ @@ -48405,15 +39426,11 @@ /obj/structure/closet/crate, /obj/item/tool/pickaxe/silver, /obj/item/tool/pickaxe/silver, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/lone_buildings/storage_blocks) "sGt" = ( /obj/structure/largecrate/random, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/lv522/outdoors/nw_rockies) "sGv" = ( /obj/effect/decal/warning_stripes{ @@ -48423,19 +39440,14 @@ /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/way_in_command_centre) "sGD" = ( /obj/item/shard{ icon_state = "medium" }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/lv522/indoors/c_block/t_comm) "sGF" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -48448,27 +39460,11 @@ }, /turf/open/floor/plating/plating_catwalk/prison, /area/lv522/landing_zone_2/ceiling) -"sGT" = ( -/obj/structure/barricade/deployable, -/obj/effect/decal/cleanable/blood/splatter, -/turf/open/shuttle/dropship{ - icon_state = "rasputin4" - }, -/area/lv522/landing_zone_forecon/UD6_Typhoon) -"sGY" = ( -/obj/structure/barricade/deployable, -/turf/open/shuttle/dropship{ - icon_state = "floor8" - }, -/area/lv522/landing_zone_forecon/UD6_Typhoon) "sHb" = ( /obj/structure/platform_decoration{ dir = 4 }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/lv522/indoors/b_block/bridge) "sHd" = ( /obj/structure/stairs/perspective{ @@ -48479,25 +39475,15 @@ dir = 4 }, /turf/open/gm/river, -/area/lv522/landing_zone_1/tunnel) -"sHg" = ( -/obj/structure/barricade/deployable, -/turf/open/shuttle/dropship{ - icon_state = "rasputin8" - }, -/area/lv522/landing_zone_forecon/UD6_Typhoon) +/area/lv522/landing_zone_1/tunnel/far) "sHk" = ( /obj/structure/curtain/red, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/c_block/casino) "sHy" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/west_reactor) "sHS" = ( /obj/structure/stairs/perspective{ @@ -48505,9 +39491,7 @@ icon_state = "p_stair_full" }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/casino) "sHY" = ( /obj/structure/platform{ @@ -48527,9 +39511,7 @@ "sIq" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/generic, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "sIr" = ( /obj/structure/surface/rack, @@ -48551,11 +39533,7 @@ dir = 1 }, /obj/effect/decal/cleanable/dirt, -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/landing_zone_1/ceiling) "sIK" = ( /turf/closed/shuttle/dropship2/tornado/typhoon{ @@ -48567,9 +39545,7 @@ icon_state = "NW-out"; pixel_y = 1 }, -/turf/open/asphalt/cement{ - icon_state = "cement15" - }, +/turf/open/asphalt/cement/cement15, /area/lv522/outdoors/colony_streets/central_streets) "sIS" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -48584,17 +39560,13 @@ /area/lv522/indoors/c_block/cargo) "sKa" = ( /obj/effect/decal/cleanable/blood/xeno, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/lv522/outdoors/colony_streets/north_street) "sKc" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/lv522/outdoors/colony_streets/central_streets) "sKi" = ( /turf/closed/shuttle/dropship2/tornado{ @@ -48617,10 +39589,7 @@ pixel_x = -1; pixel_y = 29 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/lv522/indoors/toilet) "sKu" = ( /obj/structure/barricade/handrail/strata, @@ -48628,9 +39597,7 @@ dir = 8 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/c_block/mining) "sKx" = ( /obj/item/clothing/mask/facehugger{ @@ -48665,9 +39632,7 @@ dir = 8; name = "\improper Dormitories" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/dorms) "sKJ" = ( /turf/open/auto_turf/shale/layer2, @@ -48675,25 +39640,18 @@ "sKL" = ( /obj/item/prop/alien/hugger, /obj/effect/spider/spiderling/nogrow, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/lv522/indoors/a_block/fitness) "sKS" = ( /obj/structure/reagent_dispensers/fueltank, /obj/item/prop/colony/canister{ pixel_y = 11 }, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/garage) "sKU" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/lv522/outdoors/colony_streets/north_west_street) "sLa" = ( /obj/structure/showcase{ @@ -48714,9 +39672,7 @@ /obj/structure/machinery/faxmachine{ pixel_y = 2 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/way_in_command_centre) "sLk" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -48747,9 +39703,7 @@ /obj/item/bedsheet/brown{ layer = 3.1 }, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/lv522/indoors/a_block/dorm_north) "sLn" = ( /obj/effect/decal/cleanable/greenglow, @@ -48772,9 +39726,7 @@ /area/lv522/indoors/c_block/cargo) "sLQ" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "sLR" = ( /obj/structure/prop/dam/van/damaged{ @@ -48798,9 +39750,7 @@ icon_state = "E"; pixel_x = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/nw_rockies) "sMa" = ( /obj/structure/prop/ice_colony/ground_wire{ @@ -48825,17 +39775,13 @@ dir = 1 }, /obj/structure/machinery/light/small, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/casino) "sML" = ( /obj/structure/barricade/wooden{ dir = 1 }, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/lv522/outdoors/colony_streets/east_central_street) "sMN" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -48869,10 +39815,7 @@ /obj/structure/platform{ dir = 8 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/corpo/glass) "sNQ" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, @@ -48891,9 +39834,7 @@ pixel_x = -2; pixel_y = 27 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/b_block/bar) "sNU" = ( /obj/structure/machinery/light{ @@ -48904,10 +39845,7 @@ pixel_x = 3; pixel_y = 13 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/corpo) "sOe" = ( /obj/structure/filingcabinet{ @@ -48920,18 +39858,12 @@ pixel_x = 8; pixel_y = 16 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/corpo) "sOm" = ( /obj/item/stack/sheet/metal/large_stack, /obj/structure/closet/crate, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/indoors/lone_buildings/storage_blocks) "sOA" = ( /obj/item/clothing/head/welding{ @@ -48950,9 +39882,7 @@ /turf/open/auto_turf/shale/layer1, /area/lv522/outdoors/colony_streets/south_west_street) "sOL" = ( -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/lv522/outdoors/colony_streets/windbreaker/observation) "sOM" = ( /obj/structure/platform{ @@ -48967,9 +39897,7 @@ /turf/open/auto_turf/sand_white/layer0, /area/lv522/landing_zone_1) "sON" = ( -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/colony_streets/north_west_street) "sOR" = ( /obj/effect/decal/cleanable/dirt, @@ -48985,33 +39913,24 @@ /obj/effect/decal/cleanable/blood, /obj/structure/curtain/medical, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/medical/glass) "sPa" = ( /obj/structure/machinery/vending/cola, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/b_block/bar) "sPb" = ( /obj/structure/barricade/wooden, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/a_block/admin) "sPh" = ( /obj/structure/stairs/perspective{ dir = 1; icon_state = "p_stair_full" }, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/lv522/outdoors/colony_streets/north_east_street) "sPk" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -49033,9 +39952,7 @@ id = "Sec-Kitchen-Lockdown"; name = "\improper Storm Shutters" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/security) "sPs" = ( /obj/item/stack/rods, @@ -49052,29 +39969,20 @@ name = "Vault Lockdown" }, /obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/oob/w_y_vault) "sPS" = ( /obj/structure/surface/table/almayer, /obj/effect/spawner/random/toolbox, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/security) "sPU" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/lv522/outdoors/colony_streets/north_street) "sQb" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/prison{ - dir = 9; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/northwest, /area/lv522/indoors/a_block/admin) "sQr" = ( /obj/structure/surface/table/woodentable/fancy, @@ -49083,14 +39991,10 @@ pixel_x = 12; pixel_y = 17 }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/lv522/indoors/b_block/bar) "sQu" = ( -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/lv522/outdoors/n_rockies) "sQA" = ( /obj/effect/decal/cleanable/blood/xeno, @@ -49104,9 +40008,7 @@ /area/lv522/indoors/lone_buildings/engineering) "sQI" = ( /obj/effect/decal/cleanable/generic, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/kitchen) "sQL" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -49114,9 +40016,7 @@ dir = 1; icon_state = "p_stair_full" }, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/lv522/outdoors/colony_streets/north_street) "sQN" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -49127,17 +40027,12 @@ "sQQ" = ( /obj/structure/surface/table/almayer, /obj/item/folder/black_random, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "sQR" = ( /obj/item/stack/sheet/wood, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/landing_zone_2) "sQS" = ( /obj/item/prop/alien/hugger, @@ -49145,18 +40040,14 @@ icon_state = "E"; pixel_x = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/way_in_command_centre) "sQT" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating{ - icon_state = "platingdmg1" - }, +/turf/open/floor/plating/platingdmg1, /area/lv522/indoors/a_block/bridges/op_centre) "sQY" = ( /obj/structure/machinery/door/airlock/almayer/maint{ @@ -49164,22 +40055,15 @@ req_one_access_txt = "100"; welded = 1 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/c_block/mining) "sQZ" = ( /obj/item/weapon/twohanded/folded_metal_chair, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/landing_zone_1) "sRd" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/asphalt/cement{ - icon_state = "cement9" - }, +/turf/open/asphalt/cement/cement9, /area/lv522/outdoors/colony_streets/north_west_street) "sRu" = ( /obj/structure/platform, @@ -49193,9 +40077,7 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/south) "sRA" = ( /turf/open/auto_turf/shale/layer1, @@ -49223,10 +40105,7 @@ /area/lv522/outdoors/colony_streets/east_central_street) "sSi" = ( /obj/structure/cargo_container/wy/right, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/landing_zone_1) "sSk" = ( /obj/effect/decal/cleanable/dirt, @@ -49234,57 +40113,40 @@ dir = 1 }, /obj/structure/machinery/light/small, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/hallway) "sSl" = ( /obj/structure/machinery/deployable/barrier, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/kitchen) "sSn" = ( -/turf/open/asphalt/cement{ - icon_state = "cement9" - }, +/turf/open/asphalt/cement/cement9, /area/lv522/outdoors/colony_streets/north_street) "sSv" = ( /obj/structure/machinery/door/airlock/almayer/maint{ dir = 1 }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/way_in_command_centre) "sSG" = ( /obj/structure/stairs/perspective{ dir = 1; icon_state = "p_stair_full" }, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/casino) "sSQ" = ( /obj/structure/machinery/door/poddoor/almayer/closed{ id = "LZ1_Lockdown_Lo"; name = "Emergency Lockdown" }, -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/landing_zone_1) "sSW" = ( /obj/item/stack/rods, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/lv522/indoors/b_block/bridge) "sSZ" = ( /obj/structure/machinery/light{ @@ -49295,26 +40157,20 @@ /obj/item/ore/silver, /obj/item/ore/silver, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/mining) "sTr" = ( /obj/structure/machinery/door/poddoor/shutters/almayer{ dir = 4; id = "Reactor_garage_3" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/reactor_garage) "sTy" = ( /obj/structure/window_frame/strata, /obj/item/stack/rods, /obj/effect/decal/cleanable/blood, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/b_block/bar) "sTA" = ( /obj/structure/desertdam/decals/road_edge{ @@ -49346,16 +40202,6 @@ }, /turf/open/auto_turf/sand_white/layer0, /area/lv522/outdoors/colony_streets/east_central_street) -"sUj" = ( -/obj/structure/stairs/perspective{ - dir = 6; - icon_state = "p_stair_full" - }, -/obj/structure/platform_decoration{ - dir = 8 - }, -/turf/open/floor/plating, -/area/lv522/indoors/c_block/cargo) "sUs" = ( /obj/effect/decal/cleanable/blood/oil, /obj/effect/decal/cleanable/dirt, @@ -49363,10 +40209,7 @@ /area/lv522/indoors/c_block/garage) "sUI" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/west, /area/lv522/indoors/c_block/cargo) "sVJ" = ( /obj/structure/barricade/handrail{ @@ -49377,10 +40220,7 @@ "sVM" = ( /obj/structure/closet/emcloset, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/hallway) "sWn" = ( /obj/effect/decal/cleanable/dirt, @@ -49406,47 +40246,34 @@ /obj/structure/bed/chair/comfy{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/admin) "sWT" = ( /obj/item/shard{ icon_state = "medium" }, /obj/effect/landmark/survivor_spawner, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/north, /area/lv522/indoors/a_block/admin) "sXm" = ( /obj/structure/surface/table/almayer, /obj/item/newspaper, /obj/structure/machinery/light, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "sXo" = ( /obj/structure/largecrate/random, /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/colony_streets/north_west_street) "sXM" = ( /obj/structure/surface/table/almayer, /obj/effect/decal/cleanable/dirt, /obj/effect/spawner/random/powercell, /obj/structure/machinery/cell_charger, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/lv522/indoors/lone_buildings/engineering) "sXQ" = ( /obj/structure/bed/chair/comfy, @@ -49458,9 +40285,7 @@ icon_state = "E"; pixel_x = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/colony_streets/north_west_street) "sXZ" = ( /obj/structure/platform{ @@ -49470,22 +40295,18 @@ /area/lv522/indoors/c_block/garage) "sYh" = ( /obj/structure/machinery/door/airlock/hatch/cockpit/two, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/lv522/landing_zone_forecon/UD6_Tornado) -"sYk" = ( -/obj/structure/platform, -/turf/open/asphalt/cement, -/area/lv522/outdoors/colony_streets/north_east_street) "sYl" = ( /obj/item/stack/sheet/metal, /turf/open/auto_turf/sand_white/layer0, /area/lv522/outdoors/colony_streets/north_east_street) "sYv" = ( -/obj/structure/platform{ - dir = 8 +/obj/structure/stairs/perspective{ + dir = 4; + icon_state = "p_stair_full" }, +/obj/structure/platform/stair_cut, /turf/open/asphalt/cement, /area/lv522/outdoors/colony_streets/south_street) "sYH" = ( @@ -49494,9 +40315,7 @@ "sYM" = ( /obj/structure/machinery/light, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/casino) "sZq" = ( /turf/open/gm/river, @@ -49506,9 +40325,7 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/lv522/indoors/a_block/dorm_north) "sZz" = ( /obj/structure/largecrate/random/case/small, @@ -49517,9 +40334,7 @@ /area/lv522/indoors/c_block/mining) "taj" = ( /obj/structure/closet/crate, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/lv522/outdoors/colony_streets/central_streets) "taw" = ( /obj/structure/platform_decoration, @@ -49548,10 +40363,7 @@ /area/lv522/outdoors/colony_streets/north_east_street) "taO" = ( /obj/effect/spider/spiderling/nogrow, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv522/indoors/a_block/corpo/glass) "taP" = ( /obj/structure/pipes/standard/manifold/hidden/green, @@ -49561,18 +40373,8 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/lv522/outdoors/colony_streets/south_east_street) -"taS" = ( -/obj/structure/platform_decoration{ - dir = 8 - }, -/turf/open/asphalt/cement{ - icon_state = "cement14" - }, -/area/lv522/outdoors/n_rockies) "taW" = ( /obj/structure/platform{ dir = 8 @@ -49580,7 +40382,6 @@ /obj/structure/stairs/perspective{ icon_state = "p_stair_full" }, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/auto_turf/sand_white/layer0, /area/lv522/landing_zone_1) "tbl" = ( @@ -49588,6 +40389,15 @@ icon_state = "16" }, /area/lv522/landing_zone_forecon/UD6_Typhoon) +"tbt" = ( +/obj/structure/platform_decoration{ + dir = 4 + }, +/obj/structure/bed/chair/dropship/passenger{ + dir = 4 + }, +/turf/open/shuttle/dropship/can_surgery/medium_grey_single_wide_up_to_down, +/area/lv522/landing_zone_forecon/UD6_Tornado) "tby" = ( /obj/structure/bed/chair/comfy{ dir = 4 @@ -49606,35 +40416,30 @@ /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/colony_streets/north_west_street) "tbK" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "SE-out"; - pixel_x = 1; - pixel_y = -1 +/obj/structure/filingcabinet{ + density = 0; + pixel_x = -8; + pixel_y = 16 }, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" +/obj/structure/filingcabinet{ + density = 0; + pixel_x = 8; + pixel_y = 16 }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/oob/w_y_vault) "tcj" = ( /obj/structure/machinery/light, -/turf/open/floor/shiva{ - icon_state = "radiator_tile2" - }, +/turf/open/floor/shiva/radiator_tile2, /area/lv522/indoors/b_block/bridge) "tco" = ( /obj/item/shard{ icon_state = "medium" }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/hallway) "tcu" = ( /turf/closed/shuttle/dropship2/tornado{ @@ -49643,10 +40448,7 @@ /area/lv522/landing_zone_forecon/UD6_Tornado) "tcv" = ( /obj/item/prop/colony/used_flare, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/outdoors/colony_streets/north_east_street) "tcz" = ( /turf/closed/shuttle/dropship2/tornado/typhoon{ @@ -49660,10 +40462,7 @@ /obj/structure/flora/bush/ausbushes/reedbush{ pixel_y = 11 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/b_block/bridge) "tcJ" = ( /turf/closed/shuttle/elevator{ @@ -49679,9 +40478,7 @@ /area/lv522/indoors/c_block/mining) "tcX" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/lv522/outdoors/colony_streets/north_east_street) "tdi" = ( /obj/structure/prop/dam/crane, @@ -49709,9 +40506,7 @@ /obj/effect/decal/cleanable/blood/splatter{ icon_state = "gib4" }, -/turf/open/floor/shiva{ - icon_state = "radiator_tile2" - }, +/turf/open/floor/shiva/radiator_tile2, /area/lv522/indoors/a_block/bridges/corpo) "tdE" = ( /turf/closed/shuttle/dropship2/tornado/typhoon{ @@ -49724,15 +40519,10 @@ }, /area/lv522/landing_zone_forecon/UD6_Typhoon) "tdM" = ( -/obj/structure/platform{ - dir = 1 - }, -/obj/structure/platform{ - dir = 8 - }, -/obj/structure/platform_decoration{ - dir = 5; - layer = 3.51 +/obj/structure/platform/stair_cut, +/obj/structure/stairs/perspective{ + dir = 8; + icon_state = "p_stair_full" }, /turf/open/gm/river, /area/lv522/atmos/sewer) @@ -49743,29 +40533,19 @@ /obj/structure/platform{ dir = 8 }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/lv522/landing_zone_forecon/UD6_Typhoon) "tdT" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 6; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/southeast, /area/lv522/indoors/a_block/hallway) "tdV" = ( /obj/structure/girder, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/admin) "teh" = ( -/turf/open/floor/prison{ - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2, /area/lv522/indoors/a_block/dorms) "tek" = ( /obj/structure/surface/table/almayer, @@ -49774,9 +40554,7 @@ pixel_y = 4 }, /obj/item/tool/pen/blue/clicky, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "tew" = ( /obj/structure/machinery/portable_atmospherics/hydroponics{ @@ -49787,9 +40565,7 @@ pixel_x = 16 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating{ - icon_state = "platebotc" - }, +/turf/open/floor/plating/platebotc, /area/lv522/indoors/b_block/hydro/glass) "tex" = ( /obj/structure/barricade/wooden{ @@ -49806,9 +40582,7 @@ /area/lv522/outdoors/colony_streets/south_east_street) "teE" = ( /obj/structure/bed/chair/comfy, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/south) "teL" = ( /obj/structure/stairs/perspective{ @@ -49817,18 +40591,14 @@ /obj/structure/platform{ dir = 4 }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/lv522/landing_zone_forecon/UD6_Typhoon) "teO" = ( /obj/structure/machinery/door/airlock/almayer/generic{ name = "\improper C-Block - Cargo Airlock"; welded = 1 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/c_block/cargo) "tfb" = ( /obj/structure/stairs/perspective{ @@ -49836,10 +40606,7 @@ icon_state = "p_stair_full" }, /obj/effect/decal/cleanable/dirt, -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/lv522/landing_zone_1) "tfi" = ( /obj/structure/platform_decoration{ @@ -49850,17 +40617,12 @@ "tfl" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/railgun_camera_pos, -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/landing_zone_1/ceiling) "tfK" = ( /obj/structure/surface/table/almayer, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/south) "tfO" = ( /obj/item/prop/colony/usedbandage{ @@ -49879,16 +40641,11 @@ }, /area/lv522/landing_zone_forecon/UD6_Typhoon) "tfW" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/west, /area/lv522/atmos/reactor_garage) "tfZ" = ( /obj/effect/spider/spiderling/nogrow, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/lone_buildings/storage_blocks) "tgj" = ( /obj/structure/surface/table/almayer, @@ -49899,16 +40656,11 @@ /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper A-Block Dorms And Office Airlock" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/dorms) "tgq" = ( /obj/structure/surface/rack, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/landing_zone_1) "tgM" = ( /turf/closed/shuttle/dropship2/tornado/typhoon{ @@ -49922,17 +40674,13 @@ id = "LV522CIC_1"; name = "\improper Storm Shutters" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/admin) "thd" = ( /obj/structure/surface/table/almayer, /obj/structure/foamed_metal, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms/glass) "the" = ( /turf/closed/shuttle/dropship2/tornado{ @@ -49944,17 +40692,13 @@ /obj/structure/platform{ dir = 8 }, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/lv522/outdoors/colony_streets/north_east_street) "thI" = ( /obj/structure/barricade/wooden{ dir = 1 }, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/lv522/outdoors/colony_streets/central_streets) "thU" = ( /obj/structure/prop/invuln/overhead_pipe{ @@ -49968,16 +40712,11 @@ /obj/structure/bed/roller, /obj/effect/decal/cleanable/blood, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/lv522/indoors/a_block/medical) "tiC" = ( /obj/item/weapon/twohanded/folded_metal_chair, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/lv522/outdoors/colony_streets/central_streets) "tiJ" = ( /obj/item/explosive/grenade/incendiary/molotov, @@ -49987,9 +40726,7 @@ /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/garage) "tiQ" = ( /turf/closed/wall/r_wall/biodome/biodome_unmeltable, @@ -50014,22 +40751,15 @@ /turf/open/gm/river, /area/lv522/indoors/a_block/kitchen/damage) "tjg" = ( -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/east_reactor/west) "tjh" = ( /obj/structure/closet/firecloset/full, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/garage) "tjx" = ( /obj/structure/largecrate/random/barrel, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/landing_zone_2/ceiling) "tjM" = ( /obj/structure/pipes/standard/manifold/fourway/hidden/green, @@ -50038,10 +40768,7 @@ "tjQ" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/space_heater/radiator/red, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/a_block/fitness) "tjR" = ( /obj/structure/largecrate/random, @@ -50070,9 +40797,7 @@ id = "LV_522_Hydro-Lockdown"; name = "\improper Storm Shutters" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/b_block/hydro) "tkx" = ( /obj/structure/machinery/light{ @@ -50082,15 +40807,10 @@ /obj/structure/machinery/power/port_gen/pacman{ layer = 2.9 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/lv522/indoors/c_block/t_comm) "tkA" = ( -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/lv522/landing_zone_2) "tkL" = ( /obj/structure/prop/server_equipment/yutani_server{ @@ -50105,11 +40825,14 @@ dir = 1 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/a_block/fitness) +"tkN" = ( +/obj/structure/stairs/perspective{ + icon_state = "p_stair_full" + }, +/turf/open/shuttle/dropship/can_surgery/light_grey_middle, +/area/lv522/landing_zone_forecon/UD6_Tornado) "tkW" = ( /obj/structure/surface/table/almayer, /obj/item/storage/belt/utility/full, @@ -50119,9 +40842,7 @@ /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "tlr" = ( /obj/structure/prop/ice_colony/ground_wire{ @@ -50131,9 +40852,7 @@ /area/lv522/outdoors/colony_streets/south_east_street) "tlv" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/floor/corsat{ - icon_state = "brown" - }, +/turf/open/floor/corsat/brown, /area/lv522/atmos/east_reactor/south) "tlz" = ( /obj/structure/bed/chair{ @@ -50141,10 +40860,7 @@ }, /obj/structure/machinery/light/double, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/a_block/fitness) "tlB" = ( /obj/structure/prop/invuln/overhead_pipe{ @@ -50154,51 +40870,38 @@ }, /obj/structure/platform, /turf/open/gm/river, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "tlR" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/faxmachine{ pixel_y = 5 }, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/landing_zone_2/ceiling) "tlX" = ( /obj/structure/bed/chair{ dir = 1 }, /obj/structure/machinery/light/double, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/a_block/fitness) "tlZ" = ( /obj/structure/machinery/light/double, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/a_block/fitness) "tmy" = ( /obj/structure/machinery/light{ dir = 1 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/shiva{ - icon_state = "radiator_tile2" - }, +/turf/open/floor/shiva/radiator_tile2, /area/lv522/indoors/b_block/bridge) "tmC" = ( /obj/structure/platform{ dir = 1 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/corpo/glass) "tmL" = ( /obj/structure/surface/table/almayer, @@ -50210,45 +40913,40 @@ pixel_x = -1; pixel_y = 1 }, -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/landing_zone_1/ceiling) "tmX" = ( /obj/structure/platform{ dir = 1 }, /obj/item/stack/rods, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/corpo/glass) +"tna" = ( +/obj/structure/machinery/cm_vending/sorted/medical/wall_med/limited{ + pixel_x = 30 + }, +/obj/structure/bed/chair/dropship/passenger{ + dir = 8 + }, +/turf/open/shuttle/dropship/can_surgery/medium_grey_single_wide_up_to_down, +/area/lv522/landing_zone_forecon/UD6_Tornado) "tne" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/b_block/hydro) "tnh" = ( /obj/structure/bed/chair{ dir = 4 }, /obj/item/prop/alien/hugger, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "tni" = ( /obj/structure/platform{ dir = 8 }, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/lv522/outdoors/colony_streets/south_east_street) "tns" = ( /obj/structure/machinery/landinglight/ds1{ @@ -50260,16 +40958,11 @@ /obj/structure/platform{ dir = 1 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/corpo/glass) "tnL" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/b_block/bar) "tnM" = ( /obj/structure/cargo_container/horizontal/blue/top, @@ -50280,10 +40973,7 @@ dir = 8 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv522/indoors/a_block/corpo/glass) "tnU" = ( /obj/effect/decal/warning_stripes{ @@ -50291,17 +40981,12 @@ pixel_x = 1 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/outdoors/colony_streets/north_street) "tog" = ( /obj/structure/pipes/vents/pump, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/lv522/indoors/b_block/bridge) "tos" = ( /obj/structure/stairs/perspective{ @@ -50328,10 +41013,7 @@ dir = 4 }, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan3" - }, +/turf/open/floor/strata/white_cyan3/east, /area/lv522/indoors/a_block/medical/glass) "toY" = ( /turf/closed/shuttle/dropship2/tornado{ @@ -50348,10 +41030,7 @@ desc = "Some sort of fancy...toy? You're not sure.."; pixel_x = -12 }, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv522/indoors/a_block/corpo) "tpa" = ( /obj/structure/window/framed/strata/reinforced, @@ -50366,16 +41045,11 @@ /obj/structure/surface/table/almayer, /obj/item/clipboard, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms/glass) "tpz" = ( /obj/structure/machinery/photocopier, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/corpo) "tpD" = ( /obj/structure/prop/ice_colony/ground_wire{ @@ -50384,10 +41058,7 @@ /turf/open/auto_turf/shale/layer1, /area/lv522/outdoors/colony_streets/central_streets) "tpN" = ( -/turf/open/floor/strata{ - dir = 1; - icon_state = "white_cyan3" - }, +/turf/open/floor/strata/white_cyan3/north, /area/lv522/indoors/a_block/medical/glass) "tpV" = ( /obj/structure/surface/table/almayer, @@ -50400,33 +41071,21 @@ /area/lv522/indoors/a_block/dorms) "tqb" = ( /obj/structure/barricade/deployable, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/outdoors/colony_streets/north_east_street) "tqh" = ( /obj/structure/bed/chair/comfy{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/north, /area/lv522/atmos/east_reactor/south) "tqU" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/lv522/indoors/a_block/fitness/glass) "tra" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/east, /area/lv522/atmos/east_reactor) "trj" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -50454,9 +41113,7 @@ icon_state = "N"; pixel_y = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/colony_streets/north_east_street) "trW" = ( /obj/structure/prop/invuln/ice_prefab/trim{ @@ -50478,9 +41135,7 @@ flipped = 1 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "tsx" = ( /obj/structure/window/reinforced{ @@ -50509,16 +41164,11 @@ }, /obj/item/prop/alien/hugger, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "tsM" = ( /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/lv522/indoors/b_block/bridge) "tsV" = ( /obj/structure/toilet{ @@ -50529,20 +41179,14 @@ pixel_x = -11 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/lv522/indoors/a_block/dorms) "ttd" = ( /obj/structure/stairs/perspective{ dir = 6; icon_state = "p_stair_full" }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/b_block/bridge) "ttf" = ( /obj/effect/landmark/corpsespawner/forecon_spotter, @@ -50553,27 +41197,9 @@ /obj/effect/decal/cleanable/blood, /turf/open/auto_turf/sand_white/layer0, /area/lv522/outdoors/nw_rockies) -"tth" = ( -/obj/structure/bed/chair/dropship/passenger{ - dir = 4 - }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, -/area/lv522/landing_zone_forecon/UD6_Tornado) -"tti" = ( -/obj/structure/platform_decoration{ - dir = 4 - }, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, -/area/lv522/outdoors/colony_streets/south_east_street) "ttp" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/outdoors/colony_streets/windbreaker/observation) "ttC" = ( /obj/item/weapon/gun/smg/nailgun, @@ -50585,24 +41211,18 @@ name = "\improper Electronics Storage" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/lone_buildings/outdoor_bot) "ttT" = ( /obj/structure/stairs/perspective{ dir = 1; icon_state = "p_stair_full" }, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/auto_turf/sand_white/layer0, /area/lv522/landing_zone_1) "tue" = ( /obj/structure/machinery/cryo_cell, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/medical/glass) "tum" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -50610,10 +41230,7 @@ /area/lv522/indoors/c_block/garage) "tur" = ( /obj/structure/cargo_container/hd/right/alt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/landing_zone_2) "tuJ" = ( /obj/effect/decal/cleanable/dirt, @@ -50631,33 +41248,25 @@ /area/lv522/indoors/b_block/hydro) "tuK" = ( /obj/structure/ore_box, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/mining) "tvi" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor/prison{ - icon_state = "blue" - }, +/turf/open/floor/prison/blue, /area/lv522/indoors/a_block/admin) "tvk" = ( /obj/structure/prop/turbine_extras/border, /obj/structure/prop/turbine, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/colony_streets/south_west_street) "tvn" = ( /obj/item/stack/sheet/metal, /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/lv522/outdoors/colony_streets/central_streets) "tvq" = ( /obj/structure/prop/vehicles/crawler{ @@ -50672,22 +41281,22 @@ "tvx" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/bed/chair, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/lv522/indoors/c_block/t_comm) "tvz" = ( /obj/structure/surface/table/almayer, /obj/structure/foamed_metal, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms/glass) -"tvO" = ( -/turf/open/asphalt/cement{ - icon_state = "cement12" +"tvL" = ( +/obj/structure/bed/chair/dropship/passenger{ + dir = 8 }, +/obj/effect/decal/cleanable/blood/splatter, +/turf/open/shuttle/dropship/can_surgery/light_grey_top_left, +/area/lv522/landing_zone_forecon/UD6_Typhoon) +"tvO" = ( +/turf/open/asphalt/cement/cement12, /area/lv522/outdoors/colony_streets/north_street) "tvP" = ( /obj/structure/stairs/perspective{ @@ -50695,10 +41304,7 @@ icon_state = "p_stair_full" }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/admin) "tvZ" = ( /obj/structure/pipes/standard/manifold/hidden/green{ @@ -50711,25 +41317,16 @@ /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/lv522/indoors/a_block/fitness) "twq" = ( /obj/structure/platform_decoration, /obj/item/reagent_container/food/drinks/flask/marine, /obj/effect/landmark/survivor_spawner, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/admin) "tww" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/west, /area/lv522/indoors/a_block/admin) "twB" = ( /turf/closed/shuttle/dropship2/tornado{ @@ -50738,10 +41335,7 @@ /area/lv522/landing_zone_forecon/UD6_Tornado) "twQ" = ( /obj/structure/closet/secure_closet/medical1, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/medical) "twT" = ( /obj/structure/cargo_container/grant/right, @@ -50756,16 +41350,10 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/southwest, /area/lv522/atmos/east_reactor/south) "txs" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner/north, /area/lv522/atmos/cargo_intake) "txK" = ( /obj/effect/decal/cleanable/blood/drip, @@ -50781,9 +41369,7 @@ dir = 1; icon_state = "p_stair_full" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison, /area/lv522/atmos/sewer) "tyc" = ( /obj/structure/surface/rack, @@ -50808,17 +41394,12 @@ }, /obj/item/stack/sheet/metal/large_stack, /obj/structure/closet/crate, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/indoors/lone_buildings/storage_blocks) "typ" = ( /obj/item/storage/backpack/marine/engineerpack/satchel, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/security) "tyy" = ( /obj/structure/desertdam/decals/road_edge{ @@ -50837,27 +41418,13 @@ icon_state = "E"; pixel_x = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/sewer) "tzd" = ( /turf/closed/shuttle/elevator{ dir = 4 }, /area/lv522/indoors/c_block/mining) -"tzm" = ( -/obj/structure/bed/chair/dropship/passenger{ - dir = 8 - }, -/obj/structure/machinery/light/double{ - dir = 4; - pixel_y = -5 - }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, -/area/lv522/landing_zone_forecon/UD6_Tornado) "tzz" = ( /obj/structure/largecrate/random/secure, /obj/structure/largecrate/random/mini{ @@ -50874,17 +41441,13 @@ /obj/item/weapon/gun/rifle/lmg{ current_mag = null }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/lv522/landing_zone_forecon/UD6_Typhoon) "tzF" = ( /obj/structure/platform_decoration{ dir = 8 }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/lv522/landing_zone_forecon/UD6_Typhoon) "tzM" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -50902,28 +41465,21 @@ layer = 2.6; pixel_y = 25 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "tAh" = ( /obj/structure/surface/table/almayer{ dir = 4; flipped = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/admin) "tAn" = ( /obj/item/shard{ icon_state = "medium" }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/shiva{ - icon_state = "radiator_tile2" - }, +/turf/open/floor/shiva/radiator_tile2, /area/lv522/indoors/c_block/cargo) "tAr" = ( /obj/item/weapon/twohanded/folded_metal_chair, @@ -50936,9 +41492,7 @@ /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/a_block/garden) "tBb" = ( /obj/structure/prop/dam/drill, @@ -50951,10 +41505,7 @@ /obj/structure/barricade/handrail{ dir = 8 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/hallway) "tBC" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -50963,11 +41514,6 @@ }, /turf/open/auto_turf/sand_white/layer0, /area/lv522/outdoors/colony_streets/central_streets) -"tBM" = ( -/turf/open/shuttle/dropship{ - icon_state = "rasputin6" - }, -/area/lv522/landing_zone_forecon/UD6_Tornado) "tBQ" = ( /obj/structure/prop/ice_colony/ground_wire{ dir = 4 @@ -50982,10 +41528,7 @@ /area/lv522/outdoors/colony_streets/central_streets) "tBS" = ( /obj/item/prop/alien/hugger, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/lv522/indoors/a_block/fitness) "tCa" = ( /obj/item/trash/uscm_mre{ @@ -51002,9 +41545,7 @@ dir = 1; name = "\improper Emergency Engineering" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/lone_buildings/engineering) "tCh" = ( /obj/effect/decal/warning_stripes{ @@ -51033,46 +41574,24 @@ "tCN" = ( /turf/closed/wall/strata_ice/dirty, /area/lv522/outdoors/colony_streets/south_east_street) -"tCR" = ( -/turf/open/shuttle/dropship{ - icon_state = "floor8" - }, -/area/lv522/landing_zone_forecon/UD6_Tornado) -"tCX" = ( -/turf/open/floor/corsat{ - dir = 6; - icon_state = "brown" - }, -/area/lv522/atmos/east_reactor) "tDd" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, /turf/open/auto_turf/shale/layer1, /area/lv522/outdoors/colony_streets/central_streets) -"tDm" = ( -/turf/open/shuttle/dropship{ - icon_state = "rasputin7" - }, -/area/lv522/landing_zone_forecon/UD6_Tornado) "tDu" = ( /obj/structure/machinery/computer/operating, /obj/structure/surface/table/reinforced/prison, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan2" - }, +/turf/open/floor/strata/cyan2/east, /area/lv522/indoors/a_block/medical) "tDB" = ( /obj/structure/bed/chair/comfy{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/east, /area/lv522/indoors/a_block/admin) "tDQ" = ( /obj/structure/surface/table/reinforced/prison, @@ -51080,15 +41599,10 @@ pixel_y = 6 }, /obj/item/storage/briefcase, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/corpo/glass) "tDR" = ( -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/east_reactor/north) "tDS" = ( /turf/closed/wall/strata_outpost, @@ -51096,9 +41610,7 @@ "tEc" = ( /obj/item/prop/alien/hugger, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/shiva{ - icon_state = "radiator_tile2" - }, +/turf/open/floor/shiva/radiator_tile2, /area/lv522/indoors/a_block/bridges/garden_bridge) "tEk" = ( /obj/structure/surface/table/almayer, @@ -51106,21 +41618,15 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/security) "tEu" = ( -/turf/open/asphalt/cement{ - icon_state = "cement2" - }, +/turf/open/asphalt/cement/cement2, /area/lv522/outdoors/colony_streets/south_street) "tEC" = ( /obj/item/stool, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/lone_buildings/chunk) "tEJ" = ( /obj/structure/machinery/colony_floodlight{ @@ -51128,35 +41634,24 @@ layer = 4.3; pixel_y = 17 }, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/lv522/outdoors/colony_streets/north_street) "tEM" = ( /obj/item/shard{ icon_state = "medium" }, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv522/indoors/a_block/corpo/glass) "tEQ" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv522/indoors/a_block/corpo/glass) "tEW" = ( /obj/structure/machinery/vending/cigarette/colony, /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/corpo/glass) "tEY" = ( /obj/structure/safe{ @@ -51166,20 +41661,14 @@ /obj/item/clothing/head/helmet/marine/veteran/pmc, /obj/item/m_gift, /obj/item/coin/diamond, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/corpo) "tFf" = ( /obj/structure/bed/chair/comfy/beige{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv522/indoors/a_block/corpo) "tFk" = ( /obj/structure/surface/table/woodentable/fancy, @@ -51190,18 +41679,13 @@ pixel_y = 4 }, /obj/item/folder/red, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv522/indoors/a_block/corpo) "tFu" = ( /obj/structure/surface/rack, /obj/item/storage/bag/ore, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/mining) "tFx" = ( /turf/closed/wall/strata_outpost, @@ -51217,16 +41701,6 @@ }, /turf/open/floor/wood, /area/lv522/indoors/c_block/casino) -"tFZ" = ( -/obj/structure/surface/table/almayer, -/obj/item/paper_bin{ - pixel_y = 5 - }, -/obj/item/tool/pen/blue/clicky, -/turf/open/floor/corsat{ - icon_state = "plate" - }, -/area/lv522/atmos/east_reactor) "tGb" = ( /obj/structure/prop/ice_colony/ground_wire, /obj/structure/prop/ice_colony/ground_wire{ @@ -51253,25 +41727,17 @@ /turf/open/floor/wood, /area/lv522/indoors/c_block/casino) "tGw" = ( -/turf/open/asphalt/cement{ - icon_state = "cement9" - }, +/turf/open/asphalt/cement/cement9, /area/lv522/landing_zone_2) "tGy" = ( /obj/structure/bed/chair/comfy, /obj/item/stack/sheet/wood, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/outdoors/colony_streets/north_west_street) "tGI" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/corpo) "tGP" = ( /obj/structure/window/reinforced{ @@ -51298,30 +41764,21 @@ /obj/item/bedsheet/brown{ layer = 3.1 }, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/cargo) "tGY" = ( /obj/effect/decal/cleanable/blood/drip, /obj/structure/bed/chair/comfy/beige, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv522/indoors/a_block/corpo) "tHo" = ( /obj/structure/machinery/portable_atmospherics/canister/phoron, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/indoors/c_block/mining) "tHC" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/filt) "tHJ" = ( /obj/structure/platform{ @@ -51333,42 +41790,26 @@ /area/lv522/indoors/a_block/dorms) "tIy" = ( /obj/structure/cargo_container/kelland/left, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/landing_zone_1) "tID" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/prison, /area/lv522/indoors/c_block/garage) -"tIF" = ( -/obj/structure/bed/chair/dropship/passenger{ - dir = 8 - }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, -/area/lv522/landing_zone_forecon/UD6_Tornado) "tIM" = ( /obj/structure/prop/vehicles/crawler{ dir = 8; icon_state = "crawler_crate_alt2"; layer = 3.2 }, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/lv522/outdoors/colony_streets/east_central_street) "tIS" = ( /obj/structure/barricade/handrail{ dir = 8 }, /obj/item/stack/sheet/metal, -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/west, /area/lv522/indoors/lone_buildings/storage_blocks) "tIT" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -51376,9 +41817,7 @@ id = "LV_522_Hydro-Lockdown"; name = "\improper Storm Shutters" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/b_block/bridge) "tJa" = ( /obj/vehicle/train/cargo/trolley, @@ -51399,14 +41838,14 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/auto_turf/shale/layer1, +/turf/open/asphalt/cement/cement12, /area/lv522/outdoors/colony_streets/north_east_street) "tJG" = ( /obj/structure/stairs/perspective{ icon_state = "p_stair_full" }, /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/auto_turf/sand_white/layer0, +/turf/open/asphalt/cement/cement12, /area/lv522/outdoors/colony_streets/north_east_street) "tJM" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -51418,10 +41857,7 @@ /obj/structure/machinery/camera/autoname{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/a_block/fitness) "tJN" = ( /obj/structure/bed/chair, @@ -51429,9 +41865,7 @@ /area/lv522/indoors/c_block/mining) "tKb" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/cargo_intake) "tKe" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -51446,9 +41880,7 @@ pixel_y = 15 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/mining) "tKo" = ( /obj/structure/prop/invuln/overhead/flammable_pipe/fly{ @@ -51464,9 +41896,6 @@ /turf/open/auto_turf/shale/layer1, /area/lv522/outdoors/colony_streets/south_street) "tKC" = ( -/obj/structure/machinery/light{ - dir = 1 - }, /obj/effect/decal/warning_stripes{ icon_state = "N"; pixel_y = 1 @@ -51487,16 +41916,11 @@ dir = 8; pixel_y = 3 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/reactor_garage) "tKS" = ( /obj/effect/decal/cleanable/dirt, -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/landing_zone_1/ceiling) "tLl" = ( /obj/structure/machinery/light/double/blue{ @@ -51510,9 +41934,7 @@ /obj/structure/prop/invuln/minecart_tracks/bumper{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/indoors/c_block/mining) "tLr" = ( /obj/structure/surface/table/almayer, @@ -51543,33 +41965,19 @@ /area/lv522/indoors/a_block/security) "tLJ" = ( /obj/structure/cargo_container/horizontal/blue/bottom, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/outdoors/colony_streets/north_east_street) "tLL" = ( /obj/structure/curtain/medical, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/strata{ - icon_state = "white_cyan3" - }, +/turf/open/floor/strata/white_cyan3, /area/lv522/indoors/a_block/medical) "tLQ" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/cargo_intake) "tLX" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/almayer/w_y0/north, /area/lv522/oob/w_y_vault) "tMk" = ( /turf/open/floor/prison, @@ -51577,20 +41985,14 @@ "tMl" = ( /obj/structure/machinery/iv_drip, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/lv522/indoors/a_block/medical) "tMp" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/prison, /area/lv522/indoors/a_block/dorm_north) "tMq" = ( -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/asphalt/cement{ - icon_state = "cement2" - }, +/turf/open/asphalt/cement/cement2, /area/lv522/landing_zone_1) "tMt" = ( /obj/structure/platform_decoration, @@ -51598,10 +42000,7 @@ dir = 10; icon_state = "p_stair_full" }, -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/lv522/landing_zone_1) "tMD" = ( /obj/item/prop/alien/hugger, @@ -51609,10 +42008,7 @@ /area/lv522/indoors/c_block/garage) "tML" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/lv522/indoors/lone_buildings/outdoor_bot) "tMS" = ( /obj/structure/window/framed/strata/reinforced, @@ -51621,9 +42017,7 @@ id = "LV_522_Hydro-Lockdown"; name = "\improper Storm Shutters" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/b_block/bridge) "tMT" = ( /obj/structure/surface/table/woodentable/fancy, @@ -51636,9 +42030,7 @@ /turf/open/floor/wood, /area/lv522/indoors/c_block/casino) "tMV" = ( -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/east_reactor/south) "tNc" = ( /obj/structure/prop/ice_colony/ground_wire, @@ -51649,9 +42041,7 @@ /turf/open/floor/prison, /area/lv522/indoors/c_block/mining) "tNr" = ( -/turf/open/asphalt/cement{ - icon_state = "cement14" - }, +/turf/open/asphalt/cement/cement14, /area/lv522/outdoors/colony_streets/north_street) "tNC" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -51663,18 +42053,8 @@ /area/lv522/outdoors/colony_streets/north_east_street) "tNS" = ( /obj/item/stack/sheet/metal, -/turf/open/floor/plating, +/turf/open/floor/prison, /area/lv522/indoors/lone_buildings/storage_blocks) -"tNT" = ( -/obj/structure/prop/vehicles/crawler{ - icon_state = "crawler_covered_bed"; - unacidable = 0; - unslashable = 0 - }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, -/area/lv522/atmos/reactor_garage) "tOe" = ( /obj/structure/platform{ dir = 8 @@ -51683,9 +42063,7 @@ icon_state = "E"; pixel_x = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/colony_streets/south_east_street) "tOo" = ( /turf/open/asphalt/cement, @@ -51704,9 +42082,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/lv522/outdoors/colony_streets/north_street) "tOx" = ( /obj/effect/decal/cleanable/blood, @@ -51719,16 +42095,11 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner/west, /area/lv522/atmos/east_reactor/south) "tOV" = ( /obj/structure/cargo_container/watatsumi/leftmid, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/lv522/outdoors/colony_streets/north_east_street) "tPa" = ( /obj/structure/stairs/perspective{ @@ -51739,10 +42110,7 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/b_block/bridge) "tPb" = ( /obj/structure/prop/structure_lattice, @@ -51756,9 +42124,7 @@ /area/lv522/landing_zone_1) "tPr" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/lv522/outdoors/colony_streets/north_west_street) "tPs" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -51774,9 +42140,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/lv522/outdoors/colony_streets/north_street) "tPB" = ( /obj/structure/surface/table/woodentable/fancy, @@ -51788,10 +42152,7 @@ dir = 5 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/lv522/indoors/a_block/medical/glass) "tQb" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -51805,37 +42166,27 @@ name = "\improper A-Block Corporate Office Airlock" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/corpo) "tQi" = ( /turf/open/floor/plating/plating_catwalk/prison, /area/lv522/indoors/a_block/bridges/corpo) "tQp" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/lone_buildings/outdoor_bot) "tQw" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/east_reactor/west) "tQF" = ( /obj/structure/machinery/door/poddoor/shutters/almayer{ id = "Sec-Corpo-Bridge-Lockdown" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/security) "tRd" = ( -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/bridges) "tRs" = ( /obj/structure/stairs/perspective{ @@ -51843,7 +42194,7 @@ }, /obj/structure/largecrate/random, /turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "tRI" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/cameras/wooden_tv{ @@ -51855,17 +42206,11 @@ pixel_y = 4 }, /obj/structure/machinery/light, -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/landing_zone_1/ceiling) "tRS" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/south) "tSb" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -51883,9 +42228,7 @@ /area/lv522/outdoors/colony_streets/east_central_street) "tSn" = ( /obj/structure/girder, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/a_block/admin) "tSo" = ( /turf/closed/shuttle/dropship2/tornado{ @@ -51897,9 +42240,7 @@ dir = 8; pixel_y = -5 }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/lv522/landing_zone_forecon/UD6_Typhoon) "tSL" = ( /turf/closed/wall/strata_outpost, @@ -51914,9 +42255,11 @@ dir = 4; pixel_y = -5 }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, +/area/lv522/landing_zone_forecon/UD6_Typhoon) +"tTb" = ( +/obj/effect/decal/cleanable/blood/splatter, +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_up_to_down, /area/lv522/landing_zone_forecon/UD6_Typhoon) "tTl" = ( /obj/structure/prop/almayer/computers/sensor_computer3{ @@ -51928,9 +42271,7 @@ pixel_y = -7; req_access = null }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/way_in_command_centre) "tTr" = ( /obj/item/lightstick/red/spoke/planted{ @@ -51950,10 +42291,7 @@ "tTN" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/closet/bodybag, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/north, /area/lv522/indoors/a_block/hallway) "tTR" = ( /obj/effect/decal/cleanable/dirt, @@ -51964,17 +42302,13 @@ /obj/item/shard{ icon_state = "medium" }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "tTZ" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/lv522/outdoors/colony_streets/north_east_street) "tUe" = ( /obj/effect/decal/cleanable/dirt, @@ -51982,26 +42316,17 @@ /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/medical) "tUg" = ( /obj/structure/cargo_container/kelland/right, -/turf/open/floor/plating{ - icon_state = "platebot" - }, +/turf/open/floor/plating/platebot, /area/lv522/indoors/c_block/cargo) "tUB" = ( /obj/structure/surface/table/almayer, /obj/item/trash/plate, /obj/item/reagent_container/food/snacks/mushroompizzaslice, -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/landing_zone_1/ceiling) "tUL" = ( /obj/item/lightstick/red/spoke/planted{ @@ -52018,17 +42343,11 @@ /area/lv522/indoors/a_block/dorms) "tVa" = ( /obj/structure/window/framed/strata/reinforced, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/way_in_command_centre) "tVj" = ( /obj/structure/largecrate/random/barrel/white, -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/landing_zone_1/ceiling) "tVv" = ( /obj/structure/barricade/wooden{ @@ -52040,30 +42359,21 @@ /obj/effect/decal/cleanable/dirt, /obj/structure/surface/table/almayer, /obj/structure/prop/server_equipment/laptop/on, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/lv522/indoors/b_block/hydro) "tVN" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/kitchen) "tVP" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/lv522/outdoors/colony_streets/east_central_street) "tWt" = ( /obj/structure/platform_decoration, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/lv522/outdoors/colony_streets/north_east_street) "tWv" = ( /obj/structure/prop/invuln/overhead_pipe{ @@ -52080,10 +42390,7 @@ /area/lv522/indoors/c_block/mining) "tWC" = ( /obj/structure/closet/firecloset/full, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/a_block/fitness) "tWE" = ( /obj/structure/pipes/standard/manifold/hidden/green, @@ -52091,10 +42398,7 @@ /area/lv522/outdoors/colony_streets/north_east_street) "tWX" = ( /obj/item/storage/backpack, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/lv522/indoors/a_block/fitness) "tXa" = ( /obj/structure/surface/table/almayer, @@ -52116,10 +42420,7 @@ }, /obj/item/reagent_container/glass/rag, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/a_block/fitness) "tXc" = ( /obj/structure/stairs/perspective{ @@ -52127,7 +42428,7 @@ }, /obj/vehicle/train/cargo/trolley, /turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "tXd" = ( /obj/structure/prop/invuln/lattice_prop{ dir = 1; @@ -52141,23 +42442,16 @@ layer = 2; name = "weak acid" }, -/turf/open/floor/plating{ - icon_state = "platingdmg1" - }, +/turf/open/floor/plating/platingdmg1, /area/lv522/indoors/a_block/admin) "tXg" = ( /obj/structure/barricade/wooden, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "tXp" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner/east, /area/lv522/atmos/east_reactor/south) "tXG" = ( /obj/structure/bed/chair{ @@ -52165,10 +42459,7 @@ }, /obj/item/prop/alien/hugger, /obj/effect/decal/cleanable/dirt, -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/landing_zone_1/ceiling) "tXW" = ( /turf/open/auto_turf/shale/layer2, @@ -52178,17 +42469,12 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/b_block/hydro) "tYs" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/lv522/indoors/b_block/bar) "tYt" = ( /obj/structure/platform{ @@ -52199,25 +42485,17 @@ layer = 2.9 }, /obj/structure/flora/bush/ausbushes/var3/brflowers, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/b_block/bridge) "tYx" = ( /obj/structure/platform{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/kitchen) "tYL" = ( /obj/structure/largecrate/random/secure, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/hallway) "tYZ" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -52227,9 +42505,7 @@ /area/lv522/indoors/a_block/bridges/dorms_fitness) "tZc" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/b_block/bridge) "tZh" = ( /turf/open/auto_turf/shale/layer2, @@ -52239,15 +42515,11 @@ flipped = 1 }, /obj/structure/machinery/light, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/kitchen/glass) "tZs" = ( /obj/item/prop/alien/hugger, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/cargo_intake) "tZF" = ( /obj/structure/prop/ice_colony/ground_wire{ @@ -52265,46 +42537,26 @@ pixel_y = 12 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/a_block/fitness) -"tZM" = ( -/obj/structure/platform{ - dir = 4 - }, -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/auto_turf/sand_white/layer0, -/area/lv522/landing_zone_1) "tZP" = ( /obj/item/prop/alien/hugger, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/landing_zone_2/ceiling) "tZR" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/east, /area/lv522/indoors/a_block/hallway) "uad" = ( /obj/structure/closet/boxinggloves, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/a_block/fitness) "uam" = ( -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/corpo/glass) "uar" = ( /obj/effect/decal/cleanable/dirt, @@ -52315,18 +42567,14 @@ /obj/structure/surface/table/almayer{ flipped = 1 }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/kitchen/glass) "uaI" = ( /turf/open/floor/prison, /area/lv522/indoors/c_block/garage) "uaT" = ( /obj/structure/window/framed/strata/reinforced, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/dorms/glass) "uaY" = ( /obj/effect/decal/cleanable/dirt, @@ -52334,48 +42582,35 @@ /area/lv522/outdoors/colony_streets/windbreaker/observation) "ubd" = ( /obj/structure/closet/boxinggloves, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/a_block/fitness) "ubv" = ( /obj/structure/target{ name = "punching bag" }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/a_block/fitness) "ubw" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "blue" - }, +/turf/open/floor/prison/blue, /area/lv522/indoors/a_block/hallway) "ubz" = ( /obj/structure/machinery/shower{ pixel_y = 16 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/lv522/indoors/a_block/fitness) "ubF" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/plating/plating_catwalk/prison, +/turf/open/floor/prison, /area/lv522/atmos/sewer) "ubH" = ( /obj/structure/stairs/perspective{ - dir = 6; icon_state = "p_stair_full" }, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement, /area/lv522/outdoors/colony_streets/central_streets) "ubJ" = ( /obj/structure/blocker/invisible_wall, @@ -52383,15 +42618,21 @@ /area/lv522/indoors/c_block/cargo) "uco" = ( /obj/structure/curtain/red, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/lv522/indoors/a_block/fitness) +"ucs" = ( +/obj/structure/bed/chair/dropship/passenger{ + dir = 8 + }, +/obj/structure/machinery/light/double{ + dir = 4; + pixel_y = -5 + }, +/turf/open/shuttle/dropship/can_surgery/medium_grey_single_wide_up_to_down, +/area/lv522/landing_zone_forecon/UD6_Tornado) "ucx" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/fitness) "ucD" = ( /turf/closed/shuttle/dropship2/tornado{ @@ -52416,16 +42657,11 @@ pixel_x = -6; pixel_y = 7 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/a_block/fitness) "ucY" = ( /obj/structure/closet/emcloset, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/way_in_command_centre) "udi" = ( /obj/structure/platform{ @@ -52439,10 +42675,7 @@ /obj/item/reagent_container/food/drinks/golden_cup{ pixel_y = 9 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/a_block/fitness) "udA" = ( /obj/structure/machinery/landinglight/ds2/delayone{ @@ -52457,9 +42690,7 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/lone_buildings/storage_blocks) "udM" = ( /obj/effect/decal/cleanable/dirt, @@ -52473,19 +42704,14 @@ /turf/open/floor/plating/plating_catwalk/prison, /area/lv522/indoors/lone_buildings/engineering) "udR" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/east, /area/lv522/atmos/cargo_intake) "udU" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/cargo_intake) "uea" = ( /obj/structure/surface/table/almayer, @@ -52498,10 +42724,7 @@ pixel_x = 6; pixel_y = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/a_block/fitness) "ueg" = ( /obj/structure/pipes/standard/manifold/fourway/hidden/green, @@ -52509,9 +42732,7 @@ /area/lv522/indoors/c_block/mining) "uep" = ( /obj/structure/window/framed/strata/reinforced, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/bridges/corpo_fitness) "uet" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -52533,9 +42754,7 @@ id = "LV522CIC_1"; name = "\improper Storm Shutters" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/admin) "ueR" = ( /obj/effect/decal/cleanable/blood/oil/streak, @@ -52544,26 +42763,17 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/corpo/glass) "ueT" = ( /obj/structure/bed/sofa/vert/white, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv522/indoors/a_block/corpo/glass) "ueW" = ( /obj/structure/machinery/space_heater/radiator/red{ dir = 8 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/corpo/glass) "ueX" = ( /obj/effect/decal{ @@ -52578,9 +42788,7 @@ id = "Sec-Kitchen-Lockdown"; name = "\improper Storm Shutters" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/security) "ueY" = ( /obj/structure/machinery/door/airlock/almayer/maint{ @@ -52591,15 +42799,11 @@ id = "LV_522_Hydro-Lockdown"; name = "\improper Storm Shutters" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/b_block/bridge) "ufs" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/a_block/admin) "ufu" = ( /obj/item/tool/wrench{ @@ -52617,10 +42821,7 @@ density = 0; icon_state = "book-5" }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/corpo) "ufR" = ( /obj/structure/machinery/landinglight/ds2/delayone{ @@ -52635,17 +42836,11 @@ pixel_y = 6 }, /obj/structure/machinery/light, -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/landing_zone_1/ceiling) "ufU" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/shiva{ - icon_state = "radiator_tile2" - }, +/turf/open/floor/shiva/radiator_tile2, /area/lv522/indoors/a_block/hallway) "ugi" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -52653,10 +42848,7 @@ }, /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/west, /area/lv522/atmos/cargo_intake) "ugn" = ( /obj/structure/prop/invuln/ice_prefab/roof_greeble{ @@ -52664,18 +42856,13 @@ pixel_x = 4; pixel_y = 2 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/outdoors/colony_streets/north_east_street) "ugo" = ( /obj/structure/stairs/perspective{ icon_state = "p_stair_full" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/a_block/admin) "ugu" = ( /obj/effect/spawner/gibspawner/xeno, @@ -52686,17 +42873,12 @@ icon_state = "E"; pixel_x = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/cargo_intake) "ugG" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/tool, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/landing_zone_2) "ugN" = ( /obj/item/storage/backpack/marine/satchel/scout_cloak, @@ -52718,17 +42900,11 @@ "ugY" = ( /obj/item/stack/rods, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/lv522/indoors/c_block/t_comm) "uhf" = ( /obj/item/prop/alien/hugger, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/north, /area/lv522/indoors/a_block/dorms) "uhv" = ( /obj/structure/bed/chair{ @@ -52747,10 +42923,7 @@ /obj/structure/surface/table/woodentable/fancy, /obj/item/weapon/pole/fancy_cane, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv522/indoors/a_block/corpo) "uhP" = ( /obj/effect/decal/cleanable/blood/drip, @@ -52761,10 +42934,7 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/corpo) "uhV" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -52775,9 +42945,7 @@ dir = 1; pixel_y = 26 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "uic" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -52788,9 +42956,7 @@ dir = 1; pixel_y = 26 }, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/bridge) "uie" = ( /obj/structure/prop/invuln/ice_prefab{ @@ -52806,27 +42972,18 @@ pixel_x = 8; pixel_y = -2 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/hallway) "uii" = ( /obj/structure/surface/table/reinforced/prison, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv522/indoors/a_block/corpo) "uiu" = ( /obj/structure/surface/table/almayer, /obj/item/trash/plate, /obj/item/trash/eat, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/admin) "uiK" = ( /turf/open/auto_turf/sand_white/layer0, @@ -52838,10 +42995,7 @@ /obj/structure/surface/table/reinforced/prison, /obj/item/folder/black_random, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv522/indoors/a_block/corpo) "uiQ" = ( /obj/structure/surface/table/reinforced/prison, @@ -52856,10 +43010,7 @@ pixel_y = 12 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/corpo) "uiS" = ( /obj/structure/window_frame/strata, @@ -52890,13 +43041,11 @@ pixel_y = -5 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/garage) "ujy" = ( /obj/effect/decal/warning_stripes{ - icon_state = "N"; + icon_state = "NW-out"; pixel_y = 1 }, /turf/open/auto_turf/shale/layer1, @@ -52908,10 +43057,7 @@ pixel_x = 4; pixel_y = 3 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/outdoors/colony_streets/north_east_street) "ukp" = ( /obj/structure/surface/table/almayer, @@ -52928,18 +43074,13 @@ }, /obj/item/tool/surgery/scalpel/manager, /obj/effect/decal/cleanable/vomit, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan2" - }, +/turf/open/floor/strata/cyan2/east, /area/lv522/indoors/a_block/medical) "ukB" = ( /obj/item/stack/sheet/metal, /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "ukK" = ( /obj/effect/decal/cleanable/blood, @@ -52952,9 +43093,7 @@ "ukT" = ( /obj/structure/closet/crate, /obj/item/storage/pouch/pressurized_reagent_canister/revival, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/lone_buildings/storage_blocks) "ulh" = ( /turf/closed/shuttle/dropship2/tornado{ @@ -52962,10 +43101,7 @@ }, /area/lv522/landing_zone_forecon/UD6_Tornado) "ulL" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/west, /area/lv522/indoors/a_block/dorms) "ulZ" = ( /turf/open/organic/grass, @@ -52987,10 +43123,7 @@ /obj/structure/platform{ dir = 4 }, -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/lv522/landing_zone_1) "umR" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -53021,9 +43154,7 @@ dir = 1 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "unS" = ( /obj/structure/pipes/vents/pump, @@ -53031,18 +43162,14 @@ /area/lv522/indoors/c_block/cargo) "unU" = ( /obj/structure/prop/dam/crane/damaged, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/reactor_garage) "unX" = ( /obj/item/weapon/twohanded/folded_metal_chair, /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/a_block/hallway) "uog" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -53060,11 +43187,7 @@ pixel_x = -8; pixel_y = 4 }, -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/landing_zone_1/ceiling) "uok" = ( /obj/structure/prop/invuln{ @@ -53078,16 +43201,11 @@ /area/lv522/indoors/c_block/cargo) "uol" = ( /obj/effect/decal/cleanable/dirt, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/prison, /area/lv522/landing_zone_1/ceiling) "uom" = ( /obj/structure/machinery/disposal, -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/landing_zone_1/ceiling) "uoA" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -53099,16 +43217,11 @@ id = "LV_522_Hydro-Lockdown"; name = "\improper Storm Shutters" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/b_block/bridge) "upa" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/west, /area/lv522/atmos/east_reactor/south) "upc" = ( /obj/structure/machinery/suit_storage_unit{ @@ -53117,9 +43230,7 @@ /obj/structure/machinery/suit_storage_unit{ pixel_x = 16 }, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/mining) "upl" = ( /obj/structure/surface/table/almayer, @@ -53135,11 +43246,7 @@ pixel_x = 6; pixel_y = 16 }, -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/landing_zone_1/ceiling) "upr" = ( /obj/effect/spawner/random/technology_scanner, @@ -53161,7 +43268,6 @@ /area/lv522/indoors/b_block/hydro) "upX" = ( /obj/structure/machinery/disposal, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/plating/plating_catwalk/prison, /area/lv522/landing_zone_1/ceiling) "upZ" = ( @@ -53181,7 +43287,6 @@ /obj/structure/machinery/power/apc/weak{ dir = 1 }, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/plating, /area/lv522/landing_zone_1/tunnel) "uqo" = ( @@ -53189,9 +43294,7 @@ /area/lv522/indoors/a_block/admin) "uqt" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/north_command_centre) "uqx" = ( /obj/structure/window/framed/strata/reinforced, @@ -53199,9 +43302,7 @@ dir = 4; id = "Sec-Armoury-Lockdown" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/security) "uqP" = ( /obj/structure/cargo_container/horizontal/blue/top{ @@ -53228,8 +43329,8 @@ /turf/open/floor/prison, /area/lv522/indoors/c_block/mining) "urp" = ( -/obj/structure/platform{ - dir = 1 +/obj/structure/platform_decoration{ + dir = 4 }, /obj/structure/largecrate/random, /turf/open/asphalt/cement, @@ -53253,38 +43354,27 @@ /turf/open/floor/prison, /area/lv522/indoors/a_block/security) "urY" = ( -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/colony_streets/north_street) "usn" = ( /obj/effect/landmark/static_comms/net_one, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/indoors/lone_buildings/engineering) "usy" = ( /obj/structure/machinery/shower{ dir = 1 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/lv522/indoors/a_block/fitness) "usz" = ( -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/fitness) "usJ" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/wood{ - icon_state = "wood-broken3" - }, +/turf/open/floor/wood/wood_broken3, /area/lv522/indoors/b_block/bar) "usP" = ( /obj/effect/decal/cleanable/dirt, @@ -53300,15 +43390,10 @@ pixel_x = -3; pixel_y = -3 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/lv522/indoors/c_block/t_comm) "utd" = ( -/turf/open/floor/shiva{ - icon_state = "radiator_tile2" - }, +/turf/open/floor/shiva/radiator_tile2, /area/lv522/indoors/a_block/bridges/corpo_fitness) "utm" = ( /obj/structure/surface/table/almayer, @@ -53321,11 +43406,7 @@ pixel_y = 4 }, /obj/effect/landmark/objective_landmark/close, -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/landing_zone_1/ceiling) "utq" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, @@ -53345,11 +43426,7 @@ /obj/item/trash/cigbutt{ pixel_x = 4 }, -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/landing_zone_1/ceiling) "utH" = ( /obj/effect/spawner/gibspawner/xeno, @@ -53361,9 +43438,7 @@ /obj/effect/decal/cleanable/blood/xeno{ icon_state = "xgib3" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/way_in_command_centre) "utR" = ( /obj/structure/machinery/power/apc/weak{ @@ -53372,17 +43447,12 @@ /obj/structure/surface/table/reinforced/prison, /obj/item/tool/pen/blue, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/corpo/glass) "uue" = ( /obj/structure/machinery/light, /obj/structure/machinery/disposal, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/kitchen) "uug" = ( /obj/structure/stairs/perspective{ @@ -53396,31 +43466,22 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/plating, /area/lv522/landing_zone_1/tunnel) "uul" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/corsat{ - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner, /area/lv522/atmos/east_reactor/south) "uur" = ( /obj/effect/decal/cleanable/blood/oil/streak, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/corpo/glass) "uuA" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/space_heater/radiator/red{ dir = 8 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/corpo) "uuB" = ( /obj/structure/bed/chair/comfy{ @@ -53443,19 +43504,13 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/corpo) "uuW" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/corpo) "uvg" = ( /obj/effect/decal/warning_stripes{ @@ -53469,19 +43524,14 @@ pixel_x = -5; pixel_y = 16 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/lv522/indoors/lone_buildings/outdoor_bot) "uvt" = ( /obj/item/ammo_magazine/rifle/heap{ current_rounds = 0 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/south) "uvC" = ( /obj/structure/closet/crate/trashcart, @@ -53490,36 +43540,26 @@ /area/lv522/outdoors/colony_streets/east_central_street) "uvF" = ( /obj/structure/curtain/medical, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan3" - }, +/turf/open/floor/strata/white_cyan3/east, /area/lv522/indoors/a_block/medical/glass) "uwb" = ( /obj/structure/machinery/light/double, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/lv522/outdoors/colony_streets/north_west_street) "uwe" = ( /obj/effect/decal/cleanable/blood, /turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "uwk" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/fitness) "uwn" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/corpo) "uwF" = ( /turf/closed/wall/strata_ice/dirty, @@ -53536,10 +43576,7 @@ /obj/item/stack/rods, /obj/item/shard, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/corpo) "uxb" = ( /obj/structure/surface/table/reinforced/prison, @@ -53549,10 +43586,7 @@ }, /obj/item/storage/firstaid/fire, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/medical/glass) "uxd" = ( /obj/effect/spawner/gibspawner/xeno, @@ -53560,40 +43594,23 @@ /area/lv522/outdoors/nw_rockies) "uxf" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/cargo_intake) "uxi" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/cargo_intake) "uxn" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/cobweb, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/security) -"uxT" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "SE-out"; - pixel_x = 1 - }, -/turf/open/auto_turf/sand_white/layer0, -/area/lv522/outdoors/colony_streets/south_east_street) "uya" = ( -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/garage) "uyt" = ( -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/bridges/corpo) "uyB" = ( /obj/structure/machinery/light{ @@ -53601,9 +43618,7 @@ }, /obj/structure/machinery/disposal, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/a_block/hallway) "uyM" = ( /obj/structure/surface/table/reinforced/prison, @@ -53619,9 +43634,7 @@ icon_state = "ashtray_small_bl_full"; pixel_y = 9 }, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/garage) "uyN" = ( /obj/effect/decal/cleanable/blood/drip, @@ -53649,26 +43662,21 @@ }, /obj/structure/platform, /turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "uzD" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/prop/almayer/computer/PC{ pixel_x = 4; pixel_y = 6 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/way_in_command_centre) "uzI" = ( /turf/closed/wall/solaris/reinforced/hull/lv522, /area/space) "uzK" = ( /obj/item/stack/rods, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/admin) "uzR" = ( /obj/structure/barricade/wooden{ @@ -53677,10 +43685,7 @@ pixel_y = 17 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/hallway) "uAa" = ( /turf/open/floor/prison, @@ -53693,10 +43698,7 @@ /turf/open/auto_turf/sand_white/layer0, /area/lv522/outdoors/colony_streets/north_west_street) "uAd" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/north, /area/lv522/atmos/north_command_centre) "uAm" = ( /turf/open/floor/corsat, @@ -53714,9 +43716,7 @@ /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper A-Block - Colony Operations Centre Airlock" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/hallway) "uBm" = ( /obj/structure/girder, @@ -53737,10 +43737,7 @@ pixel_x = 16 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/strata{ - dir = 1; - icon_state = "white_cyan3" - }, +/turf/open/floor/strata/white_cyan3/north, /area/lv522/indoors/a_block/medical/glass) "uCo" = ( /obj/structure/stairs/perspective{ @@ -53766,9 +43763,7 @@ /obj/structure/bed/chair/comfy{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/north_command_centre) "uDb" = ( /turf/open/floor/prison, @@ -53784,26 +43779,12 @@ }, /turf/open/floor/corsat, /area/lv522/atmos/east_reactor/east) -"uDM" = ( -/obj/structure/machinery/light/double{ - dir = 8; - pixel_y = -5 - }, -/obj/structure/bed/chair/dropship/passenger{ - dir = 4 - }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, -/area/lv522/landing_zone_forecon/UD6_Tornado) "uDP" = ( /obj/structure/bed/chair/comfy{ dir = 8 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "uDT" = ( /obj/structure/pipes/standard/manifold/hidden/green{ @@ -53816,10 +43797,7 @@ dir = 10; id = "cargo_container" }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner/north, /area/lv522/atmos/cargo_intake) "uEr" = ( /obj/structure/stairs/perspective{ @@ -53858,10 +43836,7 @@ /turf/open/floor/plating, /area/lv522/landing_zone_forecon/UD6_Typhoon) "uEC" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/lv522/indoors/a_block/fitness) "uEE" = ( /obj/structure/bed/chair/comfy, @@ -53871,25 +43846,18 @@ /obj/item/explosive/mine/active{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/colony_streets/north_east_street) "uEH" = ( /obj/structure/machinery/landinglight/ds1/delayone{ dir = 8 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/landing_zone_1) "uEP" = ( /obj/structure/machinery/disposal, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/a_block/hallway) "uEV" = ( /obj/effect/decal/cleanable/dirt, @@ -53897,7 +43865,6 @@ dir = 1 }, /obj/structure/largecrate, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/plating, /area/lv522/landing_zone_1/tunnel) "uEX" = ( @@ -53911,10 +43878,7 @@ /area/lv522/landing_zone_forecon/UD6_Typhoon) "uFe" = ( /obj/structure/bed/sofa/vert/white/bot, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv522/indoors/a_block/corpo/glass) "uFo" = ( /obj/effect/decal/cleanable/dirt, @@ -53923,19 +43887,13 @@ /obj/structure/barricade/deployable{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/admin) "uFp" = ( /obj/structure/platform_decoration{ dir = 8 }, -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/asphalt/cement{ - icon_state = "cement14" - }, +/turf/open/asphalt/cement/cement14, /area/lv522/landing_zone_1) "uFz" = ( /obj/item/clipboard, @@ -53947,9 +43905,7 @@ pixel_x = -7; pixel_y = 7 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/way_in_command_centre) "uFB" = ( /obj/structure/prop/invuln/ice_prefab{ @@ -53960,34 +43916,23 @@ /area/lv522/outdoors/colony_streets/central_streets) "uFF" = ( /obj/vehicle/train/cargo/trolley, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/cargo) "uFG" = ( -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/command_centre) "uFL" = ( /obj/effect/decal/cleanable/generic, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/lv522/indoors/b_block/bar) "uFO" = ( /obj/structure/machinery/door/airlock/almayer/generic{ name = "\improper Mining Equipment" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/c_block/mining) "uFT" = ( -/turf/open/floor/corsat{ - dir = 10; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/southwest, /area/lv522/atmos/reactor_garage) "uGa" = ( /obj/effect/decal/cleanable/dirt, @@ -53995,10 +43940,7 @@ layer = 2.9; pill_type_to_fill = null }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/hallway) "uGd" = ( /obj/effect/decal/warning_stripes{ @@ -54011,21 +43953,15 @@ dir = 1 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/south) "uGl" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/cargo) "uGK" = ( /obj/structure/machinery/door/airlock/almayer/maint, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/reactor_garage) "uGO" = ( /obj/structure/coatrack{ @@ -54036,9 +43972,7 @@ pixel_x = 9; pixel_y = 9 }, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/landing_zone_2/ceiling) "uGT" = ( /obj/item/explosive/mine/active, @@ -54057,18 +43991,13 @@ name = "weak acid" }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/east, /area/lv522/indoors/a_block/dorms) "uHn" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/cargo_intake) "uHq" = ( /obj/structure/surface/table/almayer, @@ -54079,21 +44008,15 @@ /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms/glass) "uHE" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/asphalt/cement{ - icon_state = "cement2" - }, +/turf/open/asphalt/cement/cement2, /area/lv522/outdoors/colony_streets/central_streets) "uHN" = ( /obj/structure/window/framed/strata/reinforced, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/corpo) "uIa" = ( /obj/effect/decal/cleanable/dirt, @@ -54101,9 +44024,7 @@ dir = 1 }, /obj/structure/machinery/light/small, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/a_block/hallway) "uIe" = ( /obj/structure/ore_box, @@ -54117,25 +44038,17 @@ /area/lv522/indoors/b_block/bridge) "uIn" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/landing_zone_2) "uIo" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/lv522/indoors/a_block/fitness) "uIr" = ( /obj/structure/barricade/wooden{ dir = 1 }, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/lv522/outdoors/colony_streets/central_streets) "uIB" = ( /obj/structure/sign/nosmoking_2{ @@ -54143,13 +44056,10 @@ }, /obj/structure/surface/rack, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/garage) "uIF" = ( /obj/structure/barricade/handrail, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/plating, /area/lv522/landing_zone_1/tunnel) "uIJ" = ( @@ -54166,20 +44076,15 @@ /area/lv522/indoors/a_block/fitness/glass) "uIO" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/lv522/indoors/a_block/fitness) "uIW" = ( -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/west_reactor) "uIY" = ( /obj/structure/platform_decoration, /turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "uIZ" = ( /obj/structure/window_frame/strata, /obj/item/stack/rods, @@ -54188,6 +44093,12 @@ }, /turf/open/floor/plating, /area/lv522/indoors/c_block/casino) +"uJf" = ( +/obj/structure/bed/chair/dropship/passenger{ + dir = 4 + }, +/turf/open/shuttle/dropship/can_surgery/medium_grey_single_wide_up_to_down, +/area/lv522/landing_zone_forecon/UD6_Typhoon) "uJl" = ( /obj/structure/filingcabinet{ density = 0; @@ -54200,22 +44111,15 @@ pixel_y = 19 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/a_block/hallway) "uJr" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/west, /area/lv522/indoors/a_block/dorms) "uJY" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/a_block/admin) "uKa" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -54229,9 +44133,7 @@ dir = 4; id = "Sec-Kitchen-Lockdown" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/kitchen/glass) "uKw" = ( /obj/structure/bed/chair{ @@ -54241,17 +44143,13 @@ /turf/open/floor/prison, /area/lv522/indoors/c_block/garage) "uKy" = ( -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/bridges/op_centre) "uKD" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/filt) "uKE" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -54260,11 +44158,6 @@ /mob/living/simple_animal/mouse, /turf/open/floor/plating, /area/lv522/indoors/c_block/cargo) -"uKQ" = ( -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, -/area/lv522/landing_zone_forecon/UD6_Tornado) "uKR" = ( /obj/structure/barricade/wooden{ dir = 1 @@ -54287,25 +44180,18 @@ /obj/structure/platform_decoration{ dir = 9 }, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/asphalt/cement, /area/lv522/landing_zone_1) "uLk" = ( /obj/structure/machinery/conveyor, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner/north, /area/lv522/atmos/cargo_intake) "uLp" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/a_block/bridges/corpo_fitness) "uLw" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -54357,9 +44243,7 @@ /turf/open/floor/prison, /area/lv522/indoors/c_block/mining) "uMq" = ( -/turf/open/floor/shiva{ - icon_state = "radiator_tile2" - }, +/turf/open/floor/shiva/radiator_tile2, /area/lv522/indoors/a_block/kitchen) "uMr" = ( /obj/effect/decal/cleanable/dirt, @@ -54374,16 +44258,12 @@ /turf/open/floor/plating/plating_catwalk/prison, /area/lv522/indoors/a_block/bridges) "uMP" = ( -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/east) "uMV" = ( /obj/structure/machinery/light, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/security) "uNd" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -54411,44 +44291,25 @@ /area/lv522/indoors/b_block/bridge) "uNB" = ( /obj/structure/window/framed/strata/reinforced, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/bridges/op_centre) "uNJ" = ( /obj/structure/machinery/vending/coffee, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/admin) "uNS" = ( /obj/structure/surface/table/almayer, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/admin) -"uNT" = ( -/obj/structure/prop/invuln/fusion_reactor, -/obj/structure/prop/turbine_extras/left, -/turf/open/floor/corsat{ - icon_state = "plate" - }, -/area/lv522/atmos/east_reactor) "uNW" = ( /obj/structure/surface/table/almayer, /obj/item/trash/ceramic_plate{ pixel_y = 6 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms/glass) "uOd" = ( -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/lv522/outdoors/colony_streets/south_west_street) "uOj" = ( /obj/structure/surface/table/woodentable/fancy, @@ -54483,7 +44344,6 @@ /obj/structure/platform_decoration{ dir = 5 }, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/asphalt/cement, /area/lv522/outdoors/colony_streets/south_west_street) "uOD" = ( @@ -54501,16 +44361,11 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/bridges/corpo_fitness) "uOP" = ( /obj/effect/decal/cleanable/blood/xeno, -/turf/open/asphalt/cement{ - icon_state = "cement9" - }, +/turf/open/asphalt/cement/cement9, /area/lv522/outdoors/colony_streets/north_street) "uPc" = ( /turf/open/floor/plating/plating_catwalk/prison, @@ -54519,33 +44374,23 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/corpo/glass) "uPn" = ( /obj/effect/decal/cleanable/blood/oil, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/cargo) "uPo" = ( /obj/structure/largecrate/guns/russian, -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/landing_zone_1/ceiling) "uPv" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/prop/almayer/computer/PC{ pixel_y = 3 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/south) "uPy" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -54558,16 +44403,12 @@ /obj/structure/machinery/door/airlock/almayer/generic{ dir = 2 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/c_block/t_comm) "uPS" = ( /obj/structure/surface/table/almayer, /obj/item/paper/janitor, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/c_block/mining) "uQf" = ( /obj/structure/platform{ @@ -54583,16 +44424,11 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv522/indoors/a_block/corpo/glass) "uQi" = ( -/obj/item/clothing/suit/storage/marine/smooth, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/obj/item/clothing/suit/storage/marine/medium/smooth, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/south) "uQn" = ( /obj/structure/platform{ @@ -54620,19 +44456,13 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/medical) "uQF" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv522/indoors/a_block/corpo) "uQI" = ( /obj/effect/decal/warning_stripes{ @@ -54645,26 +44475,18 @@ /turf/open/floor/corsat, /area/lv522/atmos/cargo_intake) "uRb" = ( -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/lv522/outdoors/colony_streets/north_east_street) "uRt" = ( /obj/effect/decal/cleanable/blood/drip, /obj/structure/pipes/standard/manifold/hidden/green, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv522/indoors/a_block/corpo/glass) "uRx" = ( /obj/item/reagent_container/glass/rag, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/lv522/indoors/a_block/fitness) "uRB" = ( /obj/structure/bed{ @@ -54676,9 +44498,7 @@ pixel_y = 5 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "uRL" = ( /obj/structure/fence, @@ -54693,21 +44513,16 @@ /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/colony_streets/north_street) "uRR" = ( /obj/structure/platform{ dir = 4 }, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/gm/river, /area/lv522/landing_zone_1/tunnel) "uSn" = ( -/turf/open/asphalt/cement{ - icon_state = "cement15" - }, +/turf/open/asphalt/cement/cement15, /area/lv522/outdoors/colony_streets/north_west_street) "uSo" = ( /obj/item/storage/backpack/marine/satchel{ @@ -54727,9 +44542,7 @@ "uSw" = ( /obj/structure/surface/table/reinforced/prison, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/casino) "uSB" = ( /turf/closed/shuttle/dropship2/tornado{ @@ -54771,10 +44584,7 @@ /turf/open/floor/prison, /area/lv522/indoors/c_block/cargo) "uTj" = ( -/turf/open/floor/corsat{ - dir = 9; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/northwest, /area/lv522/atmos/north_command_centre) "uTv" = ( /obj/structure/window_frame/strata, @@ -54782,10 +44592,7 @@ /area/lv522/indoors/a_block/corpo) "uTy" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/west, /area/lv522/atmos/east_reactor/south) "uTI" = ( /obj/structure/machinery/light{ @@ -54793,18 +44600,13 @@ }, /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/bridges/corpo) "uTK" = ( /obj/structure/platform_decoration{ dir = 4 }, -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/lv522/outdoors/colony_streets/south_west_street) "uTS" = ( /obj/structure/pipes/vents/pump, @@ -54812,17 +44614,12 @@ pixel_y = 16 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/lv522/indoors/a_block/executive) "uTV" = ( /obj/structure/surface/table/almayer, /obj/item/prop/alien/hugger, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "uTY" = ( /obj/structure/prop/invuln/overhead_pipe{ @@ -54855,9 +44652,7 @@ pixel_y = 7 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/mining) "uUB" = ( /obj/structure/foamed_metal, @@ -54868,24 +44663,17 @@ "uVa" = ( /obj/effect/landmark/monkey_spawn, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/filt) "uVj" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/security) "uVw" = ( /obj/structure/barricade/handrail{ layer = 3.7 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/indoors/c_block/mining) "uVy" = ( /obj/effect/decal/cleanable/blood/xeno, @@ -54893,9 +44681,7 @@ /area/lv522/indoors/a_block/kitchen/damage) "uVH" = ( /obj/item/stool, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/lone_buildings/chunk) "uVI" = ( /obj/structure/machinery/light{ @@ -54907,10 +44693,7 @@ /obj/structure/bed/chair/comfy{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/landing_zone_1) "uVU" = ( /obj/structure/surface/table/almayer, @@ -54919,9 +44702,7 @@ pixel_y = 7 }, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/security) "uVZ" = ( /obj/structure/surface/table/almayer, @@ -54932,33 +44713,24 @@ /obj/structure/machinery/power/apc/weak{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms/glass) "uWh" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/bed/chair/comfy{ dir = 1 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/corpo/glass) "uWx" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/lv522/indoors/b_block/bar) "uWz" = ( /obj/structure/machinery/disposal, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/kitchen/glass) "uWD" = ( /obj/effect/decal/warning_stripes{ @@ -54970,9 +44742,7 @@ /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper B-Block Bar" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/b_block/bar) "uWO" = ( /turf/open/auto_turf/sand_white/layer0, @@ -54981,22 +44751,12 @@ /obj/structure/machinery/portable_atmospherics/hydroponics{ icon_state = "hydrotray4" }, -/turf/open/floor/plating{ - icon_state = "platebotc" - }, +/turf/open/floor/plating/platebotc, /area/lv522/indoors/b_block/hydro/glass) "uXa" = ( /obj/structure/largecrate/random/barrel/green, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/landing_zone_2/ceiling) -"uXj" = ( -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, -/area/lv522/landing_zone_forecon/UD6_Tornado) "uXp" = ( /obj/item/weapon/twohanded/folded_metal_chair, /obj/effect/decal/warning_stripes{ @@ -55014,7 +44774,6 @@ /obj/structure/platform{ dir = 8 }, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/plating, /area/lv522/landing_zone_1/ceiling) "uXO" = ( @@ -55028,17 +44787,12 @@ pixel_y = 5 }, /obj/item/toy/plush/farwa, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/a_block/fitness/glass) "uYi" = ( /obj/effect/decal/cleanable/blood, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/casino) "uYk" = ( /obj/structure/largecrate/random, @@ -55047,23 +44801,15 @@ /area/lv522/indoors/c_block/mining) "uYq" = ( /obj/structure/cargo_container/grant/left, -/turf/open/floor/plating{ - icon_state = "platebot" - }, +/turf/open/floor/plating/platebot, /area/lv522/indoors/c_block/cargo) "uZc" = ( /obj/structure/machinery/floodlight/landing, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/landing_zone_1) "uZf" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/southeast, /area/lv522/atmos/west_reactor) "uZC" = ( /obj/structure/surface/table/almayer, @@ -55074,23 +44820,15 @@ pixel_y = 20 }, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/cargo) "uZO" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/a_block/fitness) "uZV" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/west, /area/lv522/atmos/way_in_command_centre) "vae" = ( /obj/item/prop/colony/used_flare, @@ -55099,7 +44837,7 @@ "val" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/surface/table/woodentable/fancy, -/obj/structure/machinery/computer/cameras/wooden_tv/prop{ +/obj/structure/machinery/computer/cameras/wooden_tv/broadcast{ dir = 1; pixel_y = 3 }, @@ -55109,10 +44847,7 @@ /obj/effect/decal/cleanable/dirt, /obj/item/stack/rods, /obj/item/stack/sheet/metal, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/admin) "vaA" = ( /obj/structure/surface/table/almayer, @@ -55124,9 +44859,7 @@ pixel_x = 7 }, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/cargo) "vaZ" = ( /obj/item/lightstick/red/spoke/planted{ @@ -55135,17 +44868,6 @@ }, /turf/open/auto_turf/shale/layer1, /area/lv522/outdoors/colony_streets/central_streets) -"vbk" = ( -/obj/structure/stairs/perspective{ - icon_state = "p_stair_full" - }, -/obj/structure/platform{ - dir = 4 - }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, -/area/lv522/landing_zone_forecon/UD6_Tornado) "vbm" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 @@ -55157,13 +44879,9 @@ name = "????"; stat = 2 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/west, /area/lv522/atmos/east_reactor/south) "vbu" = ( -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/prison, /area/lv522/landing_zone_1/ceiling) "vbF" = ( @@ -55196,18 +44914,14 @@ layer = 3.1 }, /obj/item/prop/alien/hugger, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "vbV" = ( /obj/structure/machinery/light{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/mining) "vbX" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -55231,23 +44945,17 @@ /obj/structure/platform{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/way_in_command_centre) "vcH" = ( /obj/structure/barricade/wooden, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/casino) "vcJ" = ( /obj/structure/closet/secure_closet/miner, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/mining) "vcR" = ( /obj/structure/largecrate/random/mini/med, @@ -55271,12 +44979,10 @@ /turf/open/floor/prison, /area/lv522/indoors/a_block/dorms) "vdp" = ( -/obj/structure/platform{ - dir = 1 - }, -/turf/open/asphalt/cement{ - icon_state = "cement12" +/obj/structure/stairs/perspective{ + icon_state = "p_stair_full" }, +/turf/open/asphalt/cement/cement12, /area/lv522/outdoors/colony_streets/south_street) "vdx" = ( /obj/structure/surface/table/almayer, @@ -55291,27 +44997,21 @@ }, /obj/effect/landmark/objective_landmark/close, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/landing_zone_2/ceiling) "vdz" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ dir = 1; name = "\improper C-Block - Garage Airlock" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/c_block/bridge) "vdH" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/space_heater/radiator/red{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/casino) "vdP" = ( /obj/structure/platform_decoration{ @@ -55320,16 +45020,13 @@ /obj/structure/platform_decoration{ dir = 4 }, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/plating, /area/lv522/landing_zone_1/ceiling) "vdV" = ( /obj/structure/surface/table/almayer, /obj/effect/decal/cleanable/dirt, /obj/item/reagent_container/food/snacks/cheesyfries, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "vdZ" = ( /obj/structure/surface/table/woodentable/fancy, @@ -55338,37 +45035,26 @@ }, /turf/open/floor/wood, /area/lv522/indoors/c_block/casino) -"veq" = ( -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/auto_turf/shale/layer1, -/area/lv522/landing_zone_1) "ves" = ( /obj/structure/machinery/light{ dir = 8 }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/cargo) "veD" = ( /obj/structure/surface/rack, /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/admin) "veP" = ( /obj/structure/pipes/standard/simple/hidden/green, /turf/open/floor/plating/plating_catwalk/prison, /area/lv522/indoors/a_block/kitchen) "veQ" = ( -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/lv522/outdoors/colony_streets/south_west_street) "veT" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -55382,9 +45068,7 @@ }, /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/bridges/corpo) "vfj" = ( /obj/structure/bed/stool{ @@ -55422,19 +45106,14 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/bridges/op_centre) "vfN" = ( /obj/structure/surface/rack, /obj/item/hardpoint/locomotion/van_wheels, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/cobweb, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/garage) "vga" = ( /turf/closed/shuttle/dropship2/tornado/typhoon{ @@ -55461,9 +45140,7 @@ pixel_y = -12 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/lv522/indoors/b_block/bar) "vgw" = ( /obj/structure/platform, @@ -55476,9 +45153,7 @@ /area/lv522/indoors/a_block/admin) "vgI" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/shiva{ - icon_state = "radiator_tile2" - }, +/turf/open/floor/shiva/radiator_tile2, /area/lv522/indoors/a_block/bridges/corpo_fitness) "vgM" = ( /obj/structure/platform_decoration{ @@ -55496,23 +45171,16 @@ "vhr" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/south) "vht" = ( /obj/structure/closet/emcloset, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/a_block/fitness/glass) "vhA" = ( /obj/item/prop/colony/used_flare, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/east_reactor/south) "vhC" = ( /turf/closed/shuttle/dropship2/tornado/typhoon{ @@ -55530,14 +45198,11 @@ }, /area/lv522/landing_zone_forecon/UD6_Typhoon) "vir" = ( -/obj/structure/closet/wardrobe/engineering_yellow, /obj/effect/decal/warning_stripes{ icon_state = "SW-out" }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/obj/structure/machinery/fuelcell_recycler/full, +/turf/open/floor/prison/darkyellowfull2/east, /area/lv522/indoors/lone_buildings/engineering) "viA" = ( /obj/item/lightstick/red/spoke/planted{ @@ -55563,10 +45228,7 @@ /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan2" - }, +/turf/open/floor/strata/cyan2/east, /area/lv522/indoors/a_block/medical) "viE" = ( /obj/structure/platform/strata{ @@ -55582,17 +45244,12 @@ /obj/structure/bed/chair/comfy{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/southwest, /area/lv522/atmos/east_reactor/south) "viI" = ( /obj/structure/pipes/vents/pump, /obj/vehicle/powerloader, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/reactor_garage) "viN" = ( /obj/effect/decal/cleanable/blood/oil/streak, @@ -55610,9 +45267,7 @@ /area/lv522/atmos/east_reactor/south) "vjn" = ( /obj/structure/surface/rack, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/garage) "vjr" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -55620,23 +45275,9 @@ }, /turf/open/floor/prison, /area/lv522/indoors/c_block/mining) -"vjs" = ( -/obj/structure/machinery/light/double{ - dir = 4; - pixel_y = -5 - }, -/obj/structure/bed/chair/dropship/passenger{ - dir = 8 - }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, -/area/lv522/landing_zone_forecon/UD6_Tornado) "vju" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/reactor_garage) "vjv" = ( /turf/closed/shuttle/dropship2/tornado{ @@ -55659,9 +45300,7 @@ pixel_x = 10; pixel_y = 27 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/b_block/bar) "vjB" = ( /obj/structure/machinery/light{ @@ -55670,14 +45309,11 @@ /turf/open/floor/prison, /area/lv522/indoors/a_block/dorms) "vjC" = ( -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/plating, /area/lv522/landing_zone_1/ceiling) "vjF" = ( /obj/structure/cargo_container/horizontal/blue/bottom, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/landing_zone_2) "vjG" = ( /obj/structure/largecrate/random{ @@ -55710,10 +45346,7 @@ /area/lv522/indoors/a_block/admin) "vkC" = ( /obj/effect/decal/cleanable/cobweb, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/fitness) "vkD" = ( /obj/effect/decal/cleanable/dirt, @@ -55722,10 +45355,7 @@ /area/lv522/indoors/c_block/casino) "vkG" = ( /obj/structure/window/reinforced, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/lv522/indoors/a_block/fitness) "vlp" = ( /obj/item/pipe, @@ -55742,20 +45372,13 @@ pixel_y = 7 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/garage) "vlN" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/a_block/bridges/corpo_fitness) "vlT" = ( -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/lv522/outdoors/colony_streets/east_central_street) "vlX" = ( /obj/effect/decal/cleanable/dirt, @@ -55766,18 +45389,13 @@ /obj/structure/barricade/wooden{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/c_block/cargo) "vmo" = ( /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/a_block/fitness) "vmG" = ( /obj/structure/surface/table/gamblingtable, @@ -55792,9 +45410,7 @@ /obj/structure/surface/rack, /obj/item/stack/sheet/cardboard/full_stack, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/cargo) "vmQ" = ( /obj/structure/prop/invuln/ice_prefab/trim{ @@ -55806,9 +45422,7 @@ "vmT" = ( /obj/structure/pipes/vents/pump, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "vne" = ( /obj/structure/fence{ @@ -55821,38 +45435,24 @@ /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/lv522/outdoors/colony_streets/north_west_street) "vni" = ( -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/bridges/corpo_fitness) "vnp" = ( /obj/structure/curtain/medical, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan3" - }, +/turf/open/floor/strata/white_cyan3/west, /area/lv522/indoors/a_block/medical/glass) "vnq" = ( /obj/structure/machinery/power/apc/weak{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/bridges/op_centre) "vnX" = ( /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/corpo/glass) "voi" = ( /obj/effect/decal/cleanable/blood, @@ -55866,14 +45466,10 @@ phone_id = "Colony Casino"; pixel_x = 16 }, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/casino) "vou" = ( -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/lone_buildings/outdoor_bot) "vov" = ( /obj/item/prop/alien/hugger{ @@ -55895,18 +45491,13 @@ /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/lv522/outdoors/colony_streets/central_streets) "voL" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/asphalt/cement{ - icon_state = "cement2" - }, +/turf/open/asphalt/cement/cement2, /area/lv522/outdoors/colony_streets/central_streets) "voX" = ( /obj/effect/decal/cleanable/dirt, @@ -55916,9 +45507,7 @@ pixel_x = -1; pixel_y = 2 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/way_in_command_centre) "vpa" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -55937,15 +45526,10 @@ /obj/structure/flora/bush{ pixel_y = 9 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/a_block/dorms) "vpk" = ( -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/corpo) "vpp" = ( /obj/structure/window/framed/strata/reinforced, @@ -55956,9 +45540,7 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/way_in_command_centre) "vpB" = ( /obj/effect/decal/cleanable/dirt, @@ -55966,10 +45548,7 @@ dir = 1; pixel_y = 26 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/corpo) "vpD" = ( /obj/effect/decal/cleanable/dirt, @@ -55977,9 +45556,7 @@ /area/lv522/indoors/c_block/garage) "vpO" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/corpo) "vpU" = ( /turf/closed/shuttle/dropship2/tornado{ @@ -55987,20 +45564,25 @@ }, /area/lv522/landing_zone_forecon/UD6_Tornado) "vqe" = ( +/obj/structure/filingcabinet{ + density = 0; + pixel_x = -8; + pixel_y = 16 + }, +/obj/structure/filingcabinet{ + density = 0; + pixel_x = 8; + pixel_y = 16 + }, /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/oob/w_y_vault) "vqk" = ( /obj/vehicle/train/cargo/trolley, /obj/structure/machinery/light, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/cargo) "vqm" = ( /obj/item/prop/alien/hugger, @@ -56016,33 +45598,22 @@ }, /turf/open/floor/plating/plating_catwalk/prison, /area/lv522/indoors/a_block/admin) -"vqw" = ( -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/auto_turf/shale/layer2, -/area/lv522/landing_zone_1) "vqF" = ( /obj/item/ammo_magazine/rifle/heap{ current_rounds = 0 }, /obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/lv522/outdoors/colony_streets/north_street) "vqH" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/corpo/glass) "vqW" = ( /obj/structure/barricade/wooden, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/casino) "vra" = ( /obj/structure/pipes/standard/manifold/hidden/green{ @@ -56052,10 +45623,7 @@ /area/lv522/indoors/a_block/dorms/glass) "vrd" = ( /obj/item/prop/colony/used_flare, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/outdoors/colony_streets/north_east_street) "vrf" = ( /obj/structure/machinery/light{ @@ -56067,27 +45635,23 @@ "vrg" = ( /obj/structure/barricade/wooden, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/admin) "vrE" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/warning_stripes{ - icon_state = "S"; - pixel_y = -1 +/obj/structure/surface/table/almayer, +/obj/item/stack/sheet/mineral/gold{ + amount = 60; + pixel_y = 6 }, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" +/obj/item/stack/sheet/mineral/gold{ + amount = 60; + pixel_y = 12 }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/oob/w_y_vault) "vrV" = ( /obj/structure/window/framed/corsat/hull, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/oob) "vrW" = ( /obj/structure/stairs/perspective{ @@ -56105,17 +45669,13 @@ pixel_y = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/lv522/indoors/a_block/kitchen) "vsh" = ( /obj/structure/fence{ layer = 2.9 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/colony_streets/south_west_street) "vsj" = ( /obj/structure/reagent_dispensers/fueltank/gas, @@ -56125,9 +45685,7 @@ pixel_y = 13 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/reactor_garage) "vsk" = ( /obj/structure/coatrack{ @@ -56136,25 +45694,17 @@ }, /obj/structure/pipes/vents/pump, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles, /area/lv522/indoors/c_block/mining) "vso" = ( /obj/structure/largecrate/random/barrel/yellow, -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/landing_zone_1/ceiling) "vss" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 1 }, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/lv522/outdoors/colony_streets/south_east_street) "vsy" = ( /obj/structure/stairs/perspective{ @@ -56164,18 +45714,13 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/way_in_command_centre) "vsG" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/a_block/fitness) "vsI" = ( /obj/structure/surface/rack, @@ -56184,18 +45729,14 @@ /obj/structure/barricade/handrail/strata{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/c_block/mining) "vsZ" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/south) "vtc" = ( /turf/open/auto_turf/shale/layer1, @@ -56204,19 +45745,14 @@ /obj/structure/machinery/power/apc/weak{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/a_block/bridges/corpo) "vtp" = ( /obj/structure/toilet{ pixel_y = 16 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/lv522/indoors/a_block/executive) "vtA" = ( /obj/structure/surface/table/almayer, @@ -56224,15 +45760,10 @@ pixel_x = -2; pixel_y = 6 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/lv522/indoors/a_block/kitchen) "vtN" = ( -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/lv522/landing_zone_1) "vtP" = ( /obj/structure/machinery/portable_atmospherics/hydroponics{ @@ -56242,9 +45773,7 @@ dir = 8 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating{ - icon_state = "platebotc" - }, +/turf/open/floor/plating/platebotc, /area/lv522/indoors/b_block/hydro/glass) "vuc" = ( /obj/structure/bed/chair/comfy{ @@ -56260,27 +45789,17 @@ /obj/structure/machinery/door/airlock/almayer/maint{ dir = 1 }, -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/landing_zone_1/ceiling) "vuH" = ( /obj/structure/largecrate, -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/landing_zone_1/ceiling) "vuS" = ( /obj/item/ammo_magazine/rifle/heap{ current_rounds = 0 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/west, /area/lv522/atmos/east_reactor/south) "vuY" = ( /obj/item/clothing/mask/facehugger{ @@ -56290,19 +45809,14 @@ name = "????"; stat = 2 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/colony_streets/north_east_street) "vvi" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/lv522/indoors/b_block/bridge) "vwi" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -56325,10 +45839,7 @@ "vwQ" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/closet/firecloset/full, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/admin) "vxa" = ( /obj/structure/closet/crate, @@ -56345,10 +45856,7 @@ /area/lv522/indoors/c_block/mining) "vxe" = ( /obj/item/prop/colony/used_flare, -/turf/open/floor/prison{ - dir = 10; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/southwest, /area/lv522/indoors/a_block/admin) "vxf" = ( /obj/item/pipe{ @@ -56364,10 +45872,7 @@ /obj/structure/bed/chair/comfy{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/northeast, /area/lv522/atmos/east_reactor/south) "vxv" = ( /obj/structure/surface/table/woodentable/fancy, @@ -56379,9 +45884,7 @@ /obj/effect/decal/cleanable/blood/xeno{ icon_state = "xgib3" }, -/turf/open/floor/prison{ - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe, /area/lv522/atmos/way_in_command_centre) "vxG" = ( /obj/structure/stairs/perspective{ @@ -56391,9 +45894,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 1 }, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/lv522/outdoors/colony_streets/north_east_street) "vxM" = ( /obj/structure/barricade/wooden, @@ -56407,10 +45908,7 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan2" - }, +/turf/open/floor/strata/cyan2/east, /area/lv522/indoors/a_block/medical) "vyz" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -56425,25 +45923,14 @@ /area/lv522/indoors/b_block/bar) "vyH" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/medical) -"vzc" = ( -/obj/structure/machinery/power/geothermal{ - fail_rate = 5 - }, -/turf/open/floor/plating, -/area/lv522/indoors/lone_buildings/engineering) "vzd" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/east_reactor/west) "vzg" = ( /obj/item/stack/rods{ @@ -56458,10 +45945,7 @@ pixel_x = 13; pixel_y = 25 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/admin) "vzn" = ( /obj/item/clothing/shoes/jackboots{ @@ -56481,9 +45965,7 @@ /area/lv522/indoors/a_block/dorms) "vzu" = ( /obj/item/prop/alien/hugger, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/b_block/bar) "vzw" = ( /obj/structure/machinery/light{ @@ -56492,10 +45974,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/b_block/bridge) "vzy" = ( /obj/structure/prop/invuln/ice_prefab/trim{ @@ -56521,59 +46000,47 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/a_block/hallway) "vzZ" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan4" - }, +/turf/open/floor/strata/white_cyan4/west, /area/lv522/indoors/a_block/medical) "vAi" = ( -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/west_reactor) "vAn" = ( /obj/item/prop/alien/hugger, /turf/open/floor/prison, /area/lv522/indoors/a_block/kitchen/glass) -"vAW" = ( -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" +"vAu" = ( +/obj/item/fuel_cell{ + pixel_x = 6; + pixel_y = 4 }, +/turf/open/floor/corsat/brown/east, +/area/lv522/atmos/east_reactor) +"vAW" = ( +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/landing_zone_1/ceiling) "vAX" = ( /obj/structure/bed/chair/comfy, /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/south) "vBa" = ( /obj/structure/girder/displaced, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/lv522/outdoors/colony_streets/central_streets) "vBb" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/b_block/bar) "vBd" = ( -/turf/open/floor/plating{ - icon_state = "platebot" - }, +/turf/open/floor/plating/platebot, /area/lv522/indoors/c_block/cargo) "vBm" = ( /obj/structure/platform{ @@ -56585,7 +46052,6 @@ /obj/structure/platform_decoration{ dir = 9 }, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/gm/river, /area/lv522/landing_zone_1/tunnel) "vBx" = ( @@ -56597,9 +46063,7 @@ /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "vBB" = ( /obj/structure/surface/table/gamblingtable, @@ -56611,10 +46075,7 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv522/indoors/a_block/corpo/glass) "vBK" = ( /obj/structure/platform_decoration{ @@ -56625,18 +46086,13 @@ /area/lv522/indoors/c_block/garage) "vBL" = ( /obj/effect/spawner/gibspawner/xeno, -/turf/open/asphalt/cement{ - icon_state = "cement9" - }, +/turf/open/asphalt/cement/cement9, /area/lv522/outdoors/colony_streets/north_street) "vBM" = ( /obj/structure/barricade/handrail{ dir = 8 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/west, /area/lv522/indoors/lone_buildings/storage_blocks) "vBN" = ( /obj/structure/bed/chair, @@ -56649,18 +46105,14 @@ }, /obj/effect/decal/cleanable/dirt, /obj/item/trash/uscm_mre, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/outdoors/colony_streets/north_street) "vCy" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; pixel_y = 1 }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/outdoors/colony_streets/north_street) "vCz" = ( /obj/item/pipe{ @@ -56689,7 +46141,6 @@ pixel_y = 19; serial_number = 16 }, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/plating/plating_catwalk/prison, /area/lv522/landing_zone_1/ceiling) "vCG" = ( @@ -56706,9 +46157,7 @@ /turf/open/floor/plating/plating_catwalk/prison, /area/lv522/indoors/a_block/hallway) "vDo" = ( -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/landing_zone_2/ceiling) "vDp" = ( /obj/structure/surface/table/almayer, @@ -56716,9 +46165,7 @@ pixel_y = 6 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "vDr" = ( /obj/structure/largecrate/random, @@ -56740,10 +46187,7 @@ /obj/structure/flora/bush{ pixel_y = 9 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/b_block/bridge) "vDT" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ @@ -56756,17 +46200,13 @@ id = "LV522CIC_1"; name = "\improper Storm Shutters" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/admin) "vDV" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/north_command_centre) "vEf" = ( /obj/structure/pipes/standard/manifold/hidden/green{ @@ -56785,34 +46225,23 @@ pixel_x = 7; pixel_y = 20 }, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/northeast, /area/lv522/atmos/east_reactor/east) "vEB" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/bed/roller, /obj/item/prop/alien/hugger, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/hallway) "vEK" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/b_block/hydro) "vER" = ( /obj/structure/machinery/landinglight/ds1/delaytwo{ dir = 1 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/landing_zone_1) "vEW" = ( /obj/structure/barricade/wooden, @@ -56846,9 +46275,7 @@ /area/lv522/outdoors/colony_streets/north_west_street) "vFJ" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/lv522/outdoors/colony_streets/north_west_street) "vFQ" = ( /obj/structure/machinery/light{ @@ -56856,9 +46283,7 @@ }, /obj/structure/surface/table/almayer, /obj/item/device/flashlight/lamp, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "vGb" = ( /obj/structure/machinery/colony_floodlight{ @@ -56876,7 +46301,6 @@ /turf/open/auto_turf/shale/layer1, /area/lv522/outdoors/colony_streets/central_streets) "vGo" = ( -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/asphalt/cement, /area/lv522/landing_zone_1) "vGp" = ( @@ -56888,19 +46312,14 @@ /area/lv522/outdoors/colony_streets/north_east_street) "vGB" = ( /obj/structure/window/framed/strata/reinforced, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/outdoors/colony_streets/windbreaker/observation) "vGG" = ( /obj/structure/pipes/standard/manifold/hidden/green, /turf/open/floor/plating/plating_catwalk/prison, /area/lv522/indoors/a_block/dorms) "vGP" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/indoors/lone_buildings/engineering) "vHd" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -56916,10 +46335,7 @@ /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/lv522/indoors/lone_buildings/engineering) "vHw" = ( /obj/structure/barricade/wooden{ @@ -56941,10 +46357,7 @@ pixel_x = -8; pixel_y = 8 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/a_block/fitness) "vHG" = ( /obj/effect/decal/cleanable/dirt, @@ -56973,9 +46386,7 @@ layer = 3.1 }, /obj/item/prop/alien/hugger, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "vHN" = ( /obj/structure/prop/ice_colony/ground_wire, @@ -56989,36 +46400,25 @@ /obj/structure/machinery/power/apc/weak{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/security) "vIb" = ( /obj/structure/surface/table/almayer, /obj/item/clothing/gloves/boxing, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/a_block/fitness) "vId" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/prison{ - dir = 5; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/northeast, /area/lv522/indoors/a_block/dorms) "vIe" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/a_block/fitness) "vIg" = ( /obj/structure/machinery/door/airlock/almayer/generic{ @@ -57026,45 +46426,23 @@ name = "\improper Community Office" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/dorms) -"vIt" = ( -/obj/structure/machinery/camera/autoname{ - dir = 8 - }, -/obj/structure/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, -/area/lv522/indoors/lone_buildings/storage_blocks) "vIy" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/prison, /area/lv522/indoors/lone_buildings/engineering) "vIS" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/west, /area/lv522/atmos/east_reactor/south) "vIU" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/way_in_command_centre) "vJb" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/fitness) "vJj" = ( /obj/structure/machinery/landinglight/ds1{ @@ -57075,17 +46453,13 @@ "vJn" = ( /obj/structure/surface/table/almayer, /obj/item/newspaper, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "vJo" = ( /obj/structure/barricade/deployable{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/colony_streets/north_east_street) "vJr" = ( /obj/structure/machinery/landinglight/ds2/delaythree, @@ -57097,25 +46471,11 @@ /obj/structure/window/reinforced{ dir = 8 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/a_block/fitness) "vJw" = ( /obj/effect/decal/cleanable/dirt, -/obj/item/storage/backpack/marine/satchel{ - desc = "It's the heavy-duty black polymer kind. Time to take out the trash!"; - icon = 'icons/obj/janitor.dmi'; - icon_state = "trashbag3"; - name = "trash bag"; - pixel_x = -4; - pixel_y = 5 - }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/east, /area/lv522/atmos/sewer) "vJD" = ( /obj/structure/window/framed/strata/reinforced, @@ -57130,9 +46490,7 @@ /area/lv522/outdoors/colony_streets/north_west_street) "vJT" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "vKe" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -57143,25 +46501,31 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/c_block/casino) "vKA" = ( /obj/structure/surface/table/almayer, /obj/item/clothing/under/redpyjamas, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms/glass) "vKF" = ( /obj/structure/surface/table/almayer, /obj/item/toy/beach_ball/holoball, -/turf/open/floor/prison{ +/turf/open/floor/prison/greenfull/east, +/area/lv522/indoors/a_block/fitness) +"vKJ" = ( +/obj/structure/machinery/door/airlock/almayer/security/glass{ + name = "\improper Marshal Office Armory" + }, +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 4 + }, +/obj/structure/machinery/door/poddoor/shutters/almayer{ dir = 4; - icon_state = "greenfull" + id = "Sec-Armoury-Lockdown" }, -/area/lv522/indoors/a_block/fitness) +/turf/open/floor/corsat/marked, +/area/lv522/indoors/a_block/security) "vKO" = ( /obj/effect/decal/warning_stripes{ icon_state = "NE-out"; @@ -57189,25 +46553,18 @@ pixel_y = 10 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/b_block/bar) "vLu" = ( /obj/structure/surface/table/almayer, /obj/item/clothing/gloves/boxing/yellow, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/a_block/fitness) "vLA" = ( /obj/structure/pipes/standard/manifold/visible{ dir = 1 }, -/turf/open/floor/strata{ - icon_state = "white_cyan3" - }, +/turf/open/floor/strata/white_cyan3, /area/lv522/indoors/a_block/medical/glass) "vLI" = ( /obj/structure/machinery/door/poddoor/shutters/almayer/open{ @@ -57215,16 +46572,12 @@ id = "LV_522_Hydro-Lockdown"; name = "\improper Storm Shutters" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/b_block/bridge) "vLO" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/hardpoint/locomotion/van_wheels, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/garage) "vLQ" = ( /obj/structure/surface/table/reinforced/prison, @@ -57232,22 +46585,16 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/casino) "vLR" = ( /obj/item/stack/sheet/wood, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/casino) "vMg" = ( /obj/structure/safe, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/casino) "vMu" = ( /obj/item/weapon/gun/boltaction, @@ -57264,9 +46611,7 @@ icon_state = "N"; pixel_y = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/colony_streets/central_streets) "vMJ" = ( /obj/structure/surface/table/gamblingtable, @@ -57278,10 +46623,7 @@ /area/lv522/indoors/c_block/casino) "vMM" = ( /obj/structure/machinery/light/small, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/corpo/glass) "vMX" = ( /obj/structure/surface/rack, @@ -57291,9 +46633,7 @@ pixel_y = 11 }, /obj/item/ammo_box/magazine/misc/flares, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/lone_buildings/storage_blocks) "vNi" = ( /obj/item/prop/alien/hugger, @@ -57313,10 +46653,7 @@ "vNy" = ( /obj/effect/decal/cleanable/blood, /obj/structure/bed/roller, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv522/indoors/a_block/corpo/glass) "vNO" = ( /obj/structure/barricade/wooden{ @@ -57333,19 +46670,12 @@ id = "LZ1_Lockdown_Lo"; name = "Emergency Lockdown" }, -/obj/effect/landmark/lv624/fog_blocker/short, -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/landing_zone_1/ceiling) "vNY" = ( /obj/effect/decal/cleanable/blood, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/lv522/indoors/b_block/hydro) "vOb" = ( /obj/structure/machinery/door_control{ @@ -57358,67 +46688,48 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv522/indoors/a_block/corpo/glass) "vOt" = ( /obj/structure/barricade/wooden{ dir = 8 }, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/lv522/outdoors/colony_streets/south_street) "vOA" = ( /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/corpo/glass) "vOP" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, /obj/item/prop/alien/hugger, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/command_centre) "vOT" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/shiva{ - icon_state = "radiator_tile2" - }, +/turf/open/floor/shiva/radiator_tile2, /area/lv522/indoors/c_block/bridge) "vOY" = ( /obj/effect/decal/cleanable/blood/drip, /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/corpo) "vOZ" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "vPb" = ( /obj/structure/machinery/door/airlock/almayer/generic{ dir = 2 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/landing_zone_2/ceiling) "vPk" = ( /obj/effect/decal/warning_stripes{ @@ -57433,15 +46744,11 @@ id = "LV522CIC_1"; name = "\improper Storm Shutters" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/admin) "vPm" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/lv522/outdoors/colony_streets/north_street) "vPs" = ( /obj/structure/prop/dam/crane/damaged, @@ -57464,37 +46771,27 @@ /area/lv522/outdoors/colony_streets/central_streets) "vQn" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/floor/corsat{ - icon_state = "brown" - }, +/turf/open/floor/corsat/brown, /area/lv522/atmos/east_reactor) "vQL" = ( /obj/effect/decal/cleanable/blood, /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv522/indoors/a_block/corpo/glass) "vQO" = ( /obj/structure/machinery/light{ dir = 4 }, /obj/structure/machinery/disposal, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/b_block/bridge) "vQT" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/bridges/corpo) "vQX" = ( /obj/effect/decal/cleanable/dirt, @@ -57506,10 +46803,7 @@ /obj/structure/barricade/handrail{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/a_block/fitness) "vRh" = ( /obj/structure/surface/table/almayer, @@ -57522,24 +46816,17 @@ pixel_y = 5 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "vRv" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/largecrate/random/mini/wooden, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/a_block/fitness) "vRQ" = ( /obj/structure/surface/table/almayer, /obj/item/stack/sheet/metal/medium_stack, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/c_block/cargo) "vSc" = ( /obj/structure/machinery/door/airlock/almayer/generic{ @@ -57548,9 +46835,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/executive) "vSC" = ( /obj/structure/surface/table/almayer, @@ -57561,16 +46846,12 @@ pixel_x = -2; pixel_y = 5 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/c_block/mining) "vSJ" = ( /obj/structure/blocker/forcefield/vehicles, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/north_command_centre) "vSM" = ( /obj/structure/tunnel, @@ -57580,16 +46861,16 @@ /obj/structure/platform{ dir = 4 }, +/obj/structure/stairs/perspective{ + icon_state = "p_stair_full" + }, /turf/open/asphalt/cement, /area/lv522/outdoors/colony_streets/central_streets) "vSO" = ( /obj/structure/machinery/power/apc/weak{ dir = 1 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/a_block/fitness) "vSU" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -57602,10 +46883,7 @@ /obj/structure/tunnel/maint_tunnel{ pixel_y = 6 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/hallway) "vTn" = ( /obj/structure/barricade/wooden{ @@ -57622,24 +46900,13 @@ /turf/open/auto_turf/sand_white/layer0, /area/lv522/outdoors/colony_streets/central_streets) "vTx" = ( -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/lv522/outdoors/colony_streets/north_east_street) -"vTH" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, -/area/lv522/indoors/lone_buildings/storage_blocks) "vTK" = ( /obj/structure/prop/vehicles{ icon_state = "van_damaged" }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/north, /area/lv522/atmos/reactor_garage) "vTO" = ( /obj/structure/machinery/landinglight/ds1{ @@ -57650,33 +46917,23 @@ "vTQ" = ( /obj/structure/barricade/handrail, /obj/effect/decal/cleanable/dirt, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/plating, /area/lv522/landing_zone_1/tunnel) "vTT" = ( -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/landing_zone_1/ceiling) "vTW" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/hallway) "vUb" = ( /obj/structure/machinery/light, /obj/effect/decal/cleanable/dirt, /obj/structure/surface/table/almayer, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/admin) "vUe" = ( /obj/structure/pipes/standard/manifold/hidden/green{ @@ -57694,10 +46951,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/hallway) "vUn" = ( /obj/structure/surface/table/reinforced/prison, @@ -57717,17 +46971,11 @@ dir = 8 }, /obj/item/stack/sheet/metal, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/admin) "vUX" = ( /obj/structure/powerloader_wreckage/ft, -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/landing_zone_1/ceiling) "vVd" = ( /obj/structure/cargo_container/kelland/left, @@ -57746,39 +46994,27 @@ }, /obj/structure/closet/emcloset, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/kitchen) "vVi" = ( /obj/structure/largecrate, -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/landing_zone_1/ceiling) "vVp" = ( /obj/structure/machinery/light{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/garage) "vVs" = ( /obj/structure/window/framed/strata/reinforced, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/b_block/bar) "vVx" = ( /obj/structure/reagent_dispensers/watertank, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/way_in_command_centre) "vVS" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -57793,10 +47029,7 @@ layer = 3.1; pixel_y = 17 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/hallway) "vWl" = ( /obj/item/prop/alien/hugger, @@ -57813,9 +47046,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/lv522/outdoors/colony_streets/north_west_street) "vWI" = ( /obj/structure/largecrate/random, @@ -57830,9 +47061,7 @@ icon_state = "E"; pixel_x = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/colony_streets/north_west_street) "vXc" = ( /turf/open/auto_turf/shale/layer1, @@ -57842,9 +47071,7 @@ dir = 8 }, /obj/item/prop/alien/hugger, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "vXY" = ( /obj/structure/barricade/handrail/strata{ @@ -57856,18 +47083,14 @@ /area/lv522/indoors/c_block/cargo) "vYb" = ( /obj/effect/decal/cleanable/blood/oil, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/lv522/outdoors/colony_streets/south_east_street) "vYJ" = ( /obj/structure/barricade/wooden{ dir = 8 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/casino) "vYK" = ( /obj/structure/platform_decoration{ @@ -57890,9 +47113,7 @@ /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms/glass) "vYY" = ( /obj/structure/surface/table/almayer, @@ -57900,7 +47121,6 @@ /obj/structure/machinery/computer/cameras/wooden_tv{ pixel_y = 6 }, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/plating, /area/lv522/landing_zone_1/tunnel) "vZm" = ( @@ -57909,10 +47129,7 @@ }, /obj/item/stack/sheet/metal, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/b_block/hydro) "vZn" = ( /obj/structure/toilet{ @@ -57925,18 +47142,11 @@ /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/lv522/indoors/toilet) "vZv" = ( /obj/structure/cargo_container/kelland/left, -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/landing_zone_1/ceiling) "vZy" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -57946,10 +47156,7 @@ /area/lv522/indoors/a_block/security) "vZI" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/west, /area/lv522/indoors/a_block/admin) "vZP" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, @@ -57964,28 +47171,13 @@ }, /turf/open/floor/prison, /area/lv522/indoors/c_block/mining) -"vZY" = ( -/obj/structure/cargo_container/grant/rightmid, -/turf/open/auto_turf/shale/layer1, -/area/lv522/outdoors/w_rockies) "wac" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/east, /area/lv522/indoors/a_block/hallway) -"waj" = ( -/obj/structure/girder/displaced, -/turf/open/floor/plating{ - icon_state = "platingdmg1" - }, -/area/lv522/indoors/lone_buildings/storage_blocks) "wan" = ( /obj/structure/surface/table/almayer, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "wao" = ( /obj/structure/window/framed/strata/reinforced, @@ -57993,17 +47185,13 @@ /area/lv522/indoors/c_block/garage) "way" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/admin) "waz" = ( /obj/structure/machinery/light/small{ dir = 4 }, /obj/structure/largecrate, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/plating, /area/lv522/landing_zone_1/tunnel) "waD" = ( @@ -58011,9 +47199,7 @@ dir = 1; name = "Bathroom" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/toilet) "waQ" = ( /obj/structure/platform, @@ -58031,9 +47217,12 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "marked" +/obj/structure/machinery/door/poddoor/almayer/closed{ + dir = 4; + id = "West LZ Storage"; + name = "Emergency Lockdown" }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/lone_buildings/storage_blocks) "wbj" = ( /obj/structure/machinery/cm_vending/sorted/tech/comp_storage{ @@ -58067,18 +47256,14 @@ pixel_x = 8; pixel_y = 22 }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/security/glass) "wbE" = ( /obj/structure/platform_decoration{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/garage) "wbL" = ( /obj/structure/machinery/door/airlock/almayer/engineering{ @@ -58087,9 +47272,7 @@ req_access_txt = "100"; req_one_access = null }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/corpo) "wbP" = ( /obj/structure/surface/table/reinforced/almayer_B, @@ -58098,9 +47281,7 @@ pixel_x = -11; pixel_y = 10 }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/lone_buildings/chunk) "wbR" = ( /turf/open/floor/plating, @@ -58108,28 +47289,19 @@ "wbX" = ( /obj/structure/curtain/medical, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan3" - }, +/turf/open/floor/strata/white_cyan3/west, /area/lv522/indoors/a_block/medical/glass) "wcp" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/corpo/glass) "wcq" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/corpo/glass) "wcM" = ( /obj/structure/largecrate/random/secure, @@ -58144,37 +47316,27 @@ dir = 1 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/corpo) "wcR" = ( /obj/item/tool/crowbar, -/turf/open/asphalt/cement{ - icon_state = "cement15" - }, +/turf/open/asphalt/cement/cement15, /area/lv522/outdoors/colony_streets/north_west_street) "wcT" = ( /obj/item/storage/firstaid/toxin/empty, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv522/indoors/a_block/corpo/glass) "wcX" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "wcY" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/largecrate/random/case, /turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "wdd" = ( /obj/item/stack/sheet/wood, /obj/effect/decal/cleanable/dirt, @@ -58184,30 +47346,20 @@ /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/colony_streets/north_west_street) "wdi" = ( -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/a_block/security/glass) "wdj" = ( /turf/open/floor/prison, /area/lv522/indoors/lone_buildings/engineering) "wdy" = ( -/turf/open/asphalt/cement{ - icon_state = "cement2" - }, +/turf/open/asphalt/cement/cement2, /area/lv522/outdoors/colony_streets/central_streets) "wdI" = ( /obj/structure/cargo_container/kelland/right, -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/landing_zone_1/ceiling) "wdY" = ( /obj/structure/platform{ @@ -58217,24 +47369,17 @@ /area/lv522/landing_zone_1) "wea" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/east_reactor/south) "wee" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/corpo/glass) "weh" = ( /obj/structure/closet/secure_closet/freezer/fridge/full, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/b_block/bar) "wes" = ( /obj/structure/platform_decoration{ @@ -58284,23 +47429,15 @@ pixel_y = 24 }, /obj/structure/girder/reinforced, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "wfe" = ( /obj/effect/landmark/survivor_spawner, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 6; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/southeast, /area/lv522/indoors/a_block/admin) "wfh" = ( -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan3" - }, +/turf/open/floor/strata/white_cyan3/east, /area/lv522/indoors/a_block/medical/glass) "wfi" = ( /obj/structure/machinery/light{ @@ -58309,10 +47446,7 @@ /obj/item/prop/colony/usedbandage{ dir = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/admin) "wfl" = ( /obj/structure/surface/table/almayer, @@ -58339,7 +47473,7 @@ icon_state = "p_stair_full" }, /turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "wfE" = ( /obj/structure/stairs/perspective{ dir = 4; @@ -58348,16 +47482,11 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/lv522/outdoors/colony_streets/central_streets) "wfK" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/corpo) "wfP" = ( /turf/open/floor/plating, @@ -58371,9 +47500,7 @@ /obj/structure/largecrate/random{ pixel_y = 16 }, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/cargo) "wgn" = ( /obj/structure/largecrate/random, @@ -58399,9 +47526,7 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/kitchen) "whn" = ( /obj/structure/surface/table/almayer, @@ -58409,16 +47534,12 @@ dir = 8; pixel_y = 4 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "whs" = ( /obj/structure/surface/rack, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/garage) "whz" = ( /obj/structure/filingcabinet{ @@ -58432,17 +47553,13 @@ pixel_y = 22 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/security/glass) "whD" = ( /obj/structure/platform{ dir = 8 }, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/lv522/outdoors/colony_streets/north_east_street) "whE" = ( /obj/structure/cargo_container/horizontal/blue/top{ @@ -58457,39 +47574,29 @@ /area/lv522/indoors/c_block/cargo) "whG" = ( /obj/structure/largecrate/random/barrel/yellow, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/landing_zone_2) "whK" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/east_reactor/south) "whR" = ( /obj/item/newspaper, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/kitchen) "whW" = ( /obj/structure/machinery/vending/coffee, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/garage) "whZ" = ( /obj/structure/machinery/conveyor{ dir = 8; id = "cargo_container" }, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/cargo) "wiz" = ( /obj/structure/desertdam/decals/road_edge{ @@ -58536,9 +47643,7 @@ dir = 4 }, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/east_reactor/south) "wjE" = ( /obj/structure/platform_decoration{ @@ -58565,14 +47670,10 @@ /area/lv522/indoors/lone_buildings/outdoor_bot) "wjP" = ( /obj/effect/decal/warning_stripes{ - icon_state = "NE-out"; - pixel_x = 1; - pixel_y = 1 - }, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" + icon_state = "E"; + pixel_x = 1 }, +/turf/open/floor/whiteyellowfull/east, /area/lv522/oob/w_y_vault) "wke" = ( /obj/structure/stairs/perspective{ @@ -58583,10 +47684,7 @@ dir = 1 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/admin) "wko" = ( /obj/effect/decal/warning_stripes{ @@ -58608,15 +47706,11 @@ pixel_y = 16 }, /obj/effect/spider/spiderling/nogrow, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/cargo) "wky" = ( /obj/structure/largecrate/random/barrel/white, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/lone_buildings/storage_blocks) "wkC" = ( /obj/structure/prop/invuln/lattice_prop{ @@ -58624,15 +47718,10 @@ pixel_x = 6; pixel_y = 19 }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/lv522/indoors/a_block/kitchen/damage) "wkO" = ( -/turf/open/floor/shiva{ - icon_state = "radiator_tile2" - }, +/turf/open/floor/shiva/radiator_tile2, /area/lv522/indoors/c_block/cargo) "wlw" = ( /obj/structure/surface/table/woodentable/fancy, @@ -58654,11 +47743,7 @@ /area/lv522/indoors/c_block/cargo) "wlY" = ( /obj/structure/largecrate/random/secure, -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/landing_zone_1/ceiling) "wmk" = ( /turf/open/floor/plating/plating_catwalk/prison, @@ -58671,22 +47756,14 @@ /obj/structure/bed/chair/comfy{ dir = 1 }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/lv522/indoors/b_block/bar) "wng" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/lone_buildings/engineering) -"wnl" = ( -/obj/structure/cargo_container/wy/mid, -/turf/open/auto_turf/shale/layer1, -/area/lv522/outdoors/w_rockies) "wnu" = ( /obj/structure/cargo_container/wy/right, /turf/open/auto_turf/shale/layer1, @@ -58697,9 +47774,7 @@ id = "LV522CIC_1"; name = "\improper Storm Shutters" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/hallway) "wnM" = ( /obj/effect/decal/cleanable/dirt, @@ -58710,11 +47785,7 @@ /obj/structure/machinery/space_heater/radiator/red{ dir = 4 }, -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/landing_zone_1/ceiling) "wob" = ( /obj/effect/decal/cleanable/dirt, @@ -58722,15 +47793,11 @@ /area/lv522/indoors/a_block/kitchen) "wog" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/bridge) "woi" = ( /obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/cargo) "woq" = ( /obj/structure/cargo_container/horizontal/blue/bottom, @@ -58776,10 +47843,7 @@ /obj/structure/prop/server_equipment{ icon_state = "rackframe_broken" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/indoors/lone_buildings/outdoor_bot) "wpd" = ( /obj/structure/surface/table/gamblingtable, @@ -58792,10 +47856,7 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan3" - }, +/turf/open/floor/strata/white_cyan3/west, /area/lv522/indoors/a_block/medical/glass) "wpn" = ( /obj/structure/window/framed/strata/reinforced, @@ -58813,15 +47874,10 @@ /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/a_block/fitness) "wpF" = ( -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/indoors/c_block/mining) "wpH" = ( /obj/structure/window_frame/strata, @@ -58834,9 +47890,7 @@ /obj/structure/surface/table/almayer, /obj/effect/landmark/objective_landmark/medium, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "wqt" = ( /turf/closed/shuttle/dropship2/tornado{ @@ -58852,10 +47906,7 @@ /area/lv522/indoors/c_block/garage) "wqV" = ( /obj/structure/machinery/vending/hydroseeds, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/b_block/bridge) "wrc" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -58876,33 +47927,23 @@ pixel_x = -6; pixel_y = -6 }, -/turf/open/floor/strata{ - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1, /area/lv522/indoors/lone_buildings/chunk) "wrz" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/c_block/cargo) "wrC" = ( /turf/closed/wall/strata_outpost, /area/lv522/indoors/a_block/corpo) -"wrY" = ( -/obj/structure/platform, -/turf/open/asphalt/cement, -/area/lv522/outdoors/colony_streets/east_central_street) "wsf" = ( /obj/structure/curtain/red, /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "wsz" = ( /obj/structure/machinery/light{ @@ -58910,9 +47951,7 @@ }, /obj/structure/closet/emcloset, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/garage) "wsC" = ( /obj/structure/platform{ @@ -58935,15 +47974,6 @@ /mob/living/simple_animal/mouse, /turf/open/floor/plating, /area/lv522/indoors/c_block/cargo) -"wsX" = ( -/obj/structure/stairs/perspective{ - dir = 5; - icon_state = "p_stair_full" - }, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, -/area/lv522/outdoors/colony_streets/north_street) "wsY" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 @@ -58962,70 +47992,48 @@ density = 0; pixel_y = 16 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/lv522/indoors/lone_buildings/outdoor_bot) "wtH" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/north_command_centre) "wtI" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/bridges/corpo) "wtK" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/prop/almayer/computer/PC{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/security) "wtT" = ( /obj/structure/cargo_container/grant/rightmid, -/turf/open/floor/plating{ - icon_state = "platebot" - }, +/turf/open/floor/plating/platebot, /area/lv522/indoors/c_block/cargo) "wua" = ( /obj/structure/surface/table/almayer, /obj/item/clothing/accessory/storage/black_vest, /obj/item/clothing/head/helmet/riot, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/security) "wud" = ( -/turf/open/floor/wood{ - icon_state = "wood-broken7" - }, +/turf/open/floor/wood/wood_broken7, /area/lv522/indoors/b_block/bar) "wue" = ( /obj/effect/spawner/gibspawner/xeno, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/security) "wuK" = ( /obj/structure/closet/crate, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/landing_zone_1) "wuQ" = ( -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/lv522/indoors/b_block/bar) "wuX" = ( /obj/structure/bed/chair/wood/normal{ @@ -59043,9 +48051,7 @@ /area/lv522/outdoors/colony_streets/south_east_street) "wvq" = ( /obj/structure/machinery/seed_extractor, -/turf/open/floor/plating{ - icon_state = "platebotc" - }, +/turf/open/floor/plating/platebotc, /area/lv522/indoors/b_block/hydro/glass) "wvt" = ( /obj/effect/decal/cleanable/dirt, @@ -59055,32 +48061,23 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "brown" - }, +/turf/open/floor/corsat/brown, /area/lv522/atmos/east_reactor/south) "wvO" = ( /obj/structure/filingcabinet, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/corpo) "wvV" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/north) "wvX" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper A-Block Shared Dorms Airlock" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/outdoors/colony_streets/windbreaker/observation) "wvY" = ( /obj/structure/window/framed/strata/reinforced, @@ -59100,9 +48097,7 @@ "wwi" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/east_reactor/west) "wwn" = ( /obj/structure/surface/table/reinforced/prison, @@ -59112,10 +48107,7 @@ pixel_y = 13 }, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/corpo) "wwy" = ( /obj/structure/machinery/door/poddoor/almayer{ @@ -59134,9 +48126,7 @@ unacidable = 1; use_power = 0 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/oob) "wwG" = ( /obj/structure/surface/table/almayer, @@ -59147,19 +48137,14 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/lv522/outdoors/colony_streets/central_streets) "wwM" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/space_heater/radiator/red{ dir = 4 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/corpo/glass) "wwO" = ( /obj/effect/decal/cleanable/dirt, @@ -59167,9 +48152,7 @@ dir = 1; name = "\improper Family Dormitories" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/dorms) "wwU" = ( /obj/effect/decal/cleanable/dirt, @@ -59180,33 +48163,23 @@ /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/b_block/bridge) "wwX" = ( -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/bridges) "wxa" = ( /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/lv522/indoors/b_block/hydro) "wxb" = ( /obj/structure/machinery/disposal, /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "wxg" = ( /obj/effect/decal/warning_stripes{ @@ -59216,17 +48189,13 @@ icon_state = "E"; pixel_x = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/colony_streets/south_west_street) "wxB" = ( /obj/effect/decal/warning_stripes{ icon_state = "SW-out" }, -/turf/open/asphalt/cement{ - icon_state = "cement9" - }, +/turf/open/asphalt/cement/cement9, /area/lv522/outdoors/colony_streets/central_streets) "wxZ" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -59236,24 +48205,15 @@ /area/lv522/indoors/a_block/admin) "wyn" = ( /obj/item/ammo_magazine/rifle/boltaction, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/lv522/indoors/c_block/t_comm) "wyv" = ( -/turf/open/floor/corsat{ - dir = 10; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/southwest, /area/lv522/atmos/command_centre) "wyy" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/lv522/indoors/b_block/hydro) "wyA" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -59262,9 +48222,7 @@ /obj/item/weapon/gun/rifle/m41a{ current_mag = null }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/south) "wyE" = ( /obj/structure/surface/table/almayer, @@ -59277,16 +48235,12 @@ pixel_x = -7; pixel_y = 7 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "wyI" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/bridges) "wyM" = ( /turf/closed/shuttle/dropship2/tornado{ @@ -59326,9 +48280,7 @@ /area/lv522/outdoors/colony_streets/south_west_street) "wzJ" = ( /obj/structure/machinery/light, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "wzS" = ( /obj/structure/platform_decoration, @@ -59339,9 +48291,7 @@ /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/colony_streets/east_central_street) "wAf" = ( /turf/closed/shuttle/dropship2/tornado{ @@ -59351,17 +48301,12 @@ "wAB" = ( /obj/structure/surface/table/almayer, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/reactor_garage) "wAE" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/light, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/north, /area/lv522/atmos/east_reactor/south) "wAM" = ( /obj/structure/cargo_container/horizontal/blue/middle, @@ -59369,30 +48314,14 @@ layer = 3.1; pixel_y = 9 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/outdoors/colony_streets/north_east_street) "wBp" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/executive) -"wBr" = ( -/obj/structure/machinery/cm_vending/sorted/medical/wall_med/limited{ - pixel_x = 30 - }, -/obj/structure/bed/chair/dropship/passenger{ - dir = 8 - }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, -/area/lv522/landing_zone_forecon/UD6_Tornado) "wBx" = ( /obj/structure/machinery/landinglight/ds2/delayone{ dir = 1 @@ -59417,9 +48346,7 @@ /area/lv522/atmos/west_reactor) "wBR" = ( /obj/structure/powerloader_wreckage, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/reactor_garage) "wCr" = ( /turf/closed/shuttle/dropship2/tornado{ @@ -59434,31 +48361,21 @@ dir = 10 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/lv522/indoors/a_block/dorms) "wCy" = ( /obj/structure/machinery/computer/arcade{ density = 0; pixel_y = 16 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/a_block/fitness) "wCC" = ( -/turf/open/asphalt/cement{ - icon_state = "cement15" - }, +/turf/open/asphalt/cement/cement15, /area/lv522/outdoors/colony_streets/north_street) "wCJ" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/lv522/indoors/b_block/bar) "wCM" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -59474,9 +48391,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/asphalt/cement{ - icon_state = "cement9" - }, +/turf/open/asphalt/cement/cement9, /area/lv522/outdoors/colony_streets/central_streets) "wCS" = ( /obj/structure/surface/table/almayer, @@ -59487,9 +48402,7 @@ name = "synthethic potted plant"; pixel_y = 14 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "wCW" = ( /obj/structure/machinery/door/airlock/almayer/generic{ @@ -59499,28 +48412,20 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/hallway) "wDa" = ( /turf/open/floor/prison, /area/lv522/landing_zone_2) "wDh" = ( -/turf/open/floor/prison{ - dir = 9; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/northwest, /area/lv522/indoors/a_block/admin) "wDj" = ( /turf/closed/wall/strata_outpost, /area/lv522/outdoors/colony_streets/windbreaker/observation) "wDk" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/prison{ - dir = 10; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/southwest, /area/lv522/indoors/a_block/admin) "wDu" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -59531,22 +48436,15 @@ phone_id = "Colony Botany"; pixel_x = 16 }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/lv522/indoors/b_block/hydro) "wDy" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/lv522/indoors/b_block/bar) "wDO" = ( /obj/structure/machinery/door/airlock/almayer/generic, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/b_block/bar) "wDZ" = ( /obj/structure/surface/table/almayer, @@ -59564,28 +48462,20 @@ dir = 1 }, /obj/structure/bed/roller, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/north, /area/lv522/indoors/a_block/hallway) "wEo" = ( /obj/structure/cargo_container/wy/mid{ health = 5000 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/landing_zone_2) "wEz" = ( /obj/structure/prop/server_equipment/yutani_server{ density = 0; pixel_y = 16 }, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/lv522/outdoors/nw_rockies) "wEE" = ( /obj/effect/decal/cleanable/dirt, @@ -59595,10 +48485,7 @@ pixel_y = 8 }, /obj/item/seeds/bananaseed, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/lv522/indoors/b_block/hydro) "wEP" = ( /obj/structure/prop/invuln/ice_prefab/standalone/trim{ @@ -59612,9 +48499,7 @@ "wEQ" = ( /obj/structure/surface/table/almayer, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "wEW" = ( /obj/effect/decal/cleanable/blood/oil, @@ -59628,46 +48513,35 @@ /obj/structure/platform{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/way_in_command_centre) "wFA" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/atmos/outdoor) "wFB" = ( /obj/structure/window/framed/strata/reinforced, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/c_block/cargo) "wFP" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/b_block/hydro) "wFT" = ( /obj/structure/surface/table/almayer, -/turf/open/floor/plating{ - icon_state = "platebot" - }, +/turf/open/floor/plating/platebot, /area/lv522/indoors/c_block/cargo) "wFU" = ( /obj/structure/bed/chair/comfy, -/turf/open/floor/prison{ - dir = 6; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/southeast, /area/lv522/indoors/a_block/admin) +"wGc" = ( +/obj/item/device/m56d_post, +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_up_to_down, +/area/lv522/landing_zone_forecon/UD6_Typhoon) "wGh" = ( /obj/effect/decal/cleanable/blood, /turf/open/floor/prison, @@ -59678,9 +48552,7 @@ icon_state = "S"; pixel_y = -1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/way_in_command_centre) "wGE" = ( /obj/structure/surface/table/almayer, @@ -59688,9 +48560,7 @@ pixel_y = 5 }, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/cargo) "wGG" = ( /obj/structure/surface/table/almayer{ @@ -59698,9 +48568,7 @@ flipped = 1 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/kitchen/glass) "wGH" = ( /obj/item/prop/colony/usedbandage{ @@ -59720,9 +48588,7 @@ /obj/structure/bed/chair/comfy{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "wGY" = ( /obj/effect/decal/cleanable/dirt, @@ -59730,17 +48596,13 @@ /area/lv522/indoors/a_block/admin) "wHi" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/lone_buildings/storage_blocks) "wHj" = ( /obj/structure/surface/rack, /obj/structure/machinery/light, /obj/item/clothing/mask/gas, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/lone_buildings/storage_blocks) "wHo" = ( /obj/structure/surface/table/almayer, @@ -59750,21 +48612,18 @@ }, /obj/item/clothing/head/hardhat/white, /obj/effect/decal/cleanable/dirt, -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/landing_zone_1/ceiling) +"wHw" = ( +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_left_to_right, +/area/lv522/landing_zone_forecon/UD6_Tornado) "wHz" = ( /obj/item/clothing/shoes/veteran/pmc{ name = "steel toe boots" }, /obj/structure/machinery/light, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/mining) "wHF" = ( /turf/open/floor/prison, @@ -59774,9 +48633,7 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/cargo) "wHU" = ( /obj/structure/cargo_container/horizontal/blue/middle, @@ -59796,9 +48653,7 @@ dir = 1; name = "\improper A-Block - Colony Operations Centre Airlock" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/hallway) "wIi" = ( /obj/structure/machinery/colony_floodlight{ @@ -59824,9 +48679,7 @@ /obj/effect/decal/cleanable/blood/xeno{ icon_state = "xgib3" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/way_in_command_centre) "wIE" = ( /obj/structure/flora/bush/ausbushes/ppflowers, @@ -59840,24 +48693,18 @@ layer = 3 }, /obj/structure/machinery/light, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/kitchen) "wJb" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "wJk" = ( /obj/structure/surface/table/almayer, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/lv522/outdoors/colony_streets/windbreaker/observation) "wJq" = ( /turf/open/floor/plating/plating_catwalk/prison, @@ -59877,25 +48724,27 @@ /obj/structure/surface/table/reinforced/prison, /obj/effect/landmark/objective_landmark/close, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/casino) +"wKH" = ( +/obj/structure/stairs/perspective{ + icon_state = "p_stair_full" + }, +/obj/structure/platform{ + dir = 4 + }, +/turf/open/shuttle/dropship/can_surgery/light_grey_middle, +/area/lv522/landing_zone_forecon/UD6_Tornado) "wKR" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/lv522/outdoors/colony_streets/north_west_street) "wKV" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/surface/rack, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/lv522/indoors/lone_buildings/outdoor_bot) "wLd" = ( /obj/structure/machinery/light, @@ -59923,14 +48772,12 @@ /obj/structure/closet/emcloset, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "wLN" = ( /obj/structure/surface/table/almayer, /obj/item/reagent_container/food/drinks/coffee, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "wLU" = ( /obj/structure/machinery/light{ @@ -59943,9 +48790,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/lv522/outdoors/colony_streets/north_west_street) "wMq" = ( /obj/structure/surface/table/reinforced/prison, @@ -59954,9 +48799,7 @@ pixel_y = 10 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/casino) "wMF" = ( /obj/structure/machinery/camera/autoname{ @@ -59965,9 +48808,7 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "wNl" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -59983,23 +48824,16 @@ /obj/structure/platform_decoration{ dir = 4 }, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/lv522/outdoors/colony_streets/north_street) "wNp" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/casino) "wNF" = ( /obj/item/stack/rods, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/admin) "wNX" = ( /obj/structure/bed/chair, @@ -60008,40 +48842,27 @@ /area/lv522/indoors/c_block/mining) "wOo" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/lv522/indoors/lone_buildings/engineering) "wOu" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/lv522/outdoors/n_rockies) "wOC" = ( /obj/structure/surface/table/almayer, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/b_block/bar) "wOU" = ( /obj/item/prop/alien/hugger, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/lv522/indoors/c_block/t_comm) "wPt" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/power/port_gen/pacman, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/lv522/indoors/lone_buildings/outdoor_bot) "wPL" = ( /obj/structure/platform_decoration/strata{ @@ -60057,16 +48878,12 @@ /turf/open/auto_turf/sand_white/layer0, /area/lv522/landing_zone_2) "wPR" = ( -/turf/open/floor/wood{ - icon_state = "wood-broken6" - }, +/turf/open/floor/wood/wood_broken6, /area/lv522/indoors/b_block/bar) "wPV" = ( /obj/structure/closet/crate, /obj/item/storage/xeno_tag_case, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/lone_buildings/storage_blocks) "wQa" = ( /turf/open/auto_turf/shale/layer1, @@ -60075,55 +48892,38 @@ /obj/structure/bed/chair/comfy{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/northeast, /area/lv522/atmos/east_reactor/south) "wQy" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/indoors/c_block/mining) "wRa" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/closet/emcloset, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/admin) "wRd" = ( /obj/item/prop/alien/hugger, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2/southwest, /area/lv522/indoors/a_block/dorms) "wRf" = ( /obj/structure/machinery/door/airlock/almayer/maint, /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/sewer) "wRk" = ( /obj/effect/decal/warning_stripes{ - icon_state = "NW-out"; - pixel_y = 1 + icon_state = "W" }, /turf/open/auto_turf/shale/layer1, /area/lv522/outdoors/colony_streets/south_east_street) "wRl" = ( /obj/structure/closet/firecloset/full, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/kitchen) "wRp" = ( /obj/structure/surface/rack, @@ -60138,10 +48938,7 @@ /area/lv522/outdoors/colony_streets/north_west_street) "wRC" = ( /obj/structure/machinery/light, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/b_block/hydro) "wRJ" = ( /obj/item/hardpoint/locomotion/van_wheels{ @@ -60149,10 +48946,7 @@ name = "Lifting weights" }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/a_block/fitness) "wRL" = ( /turf/closed/shuttle/dropship2/tornado{ @@ -60161,25 +48955,18 @@ /area/lv522/landing_zone_forecon/UD6_Tornado) "wRZ" = ( /obj/structure/window/framed/strata/reinforced, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/bridges/garden_bridge) "wSb" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor) "wSr" = ( /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/corpo) "wSt" = ( /obj/effect/decal/cleanable/blood/gibs, @@ -60203,21 +48990,14 @@ pixel_x = 6; pixel_y = 19 }, -/turf/open/floor/strata{ - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1, /area/lv522/indoors/lone_buildings/chunk) "wTn" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/corpo) "wTq" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/east, /area/lv522/atmos/east_reactor/south) "wTr" = ( /turf/open/floor/plating/plating_catwalk/prison, @@ -60228,10 +49008,7 @@ pixel_x = 11 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/corpo) "wTv" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, @@ -60239,9 +49016,7 @@ /area/lv522/atmos/west_reactor) "wTx" = ( /obj/structure/cargo_container/kelland/left, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/mining) "wTy" = ( /obj/structure/surface/table/reinforced/prison, @@ -60268,17 +49043,12 @@ /area/lv522/indoors/c_block/garage) "wTJ" = ( /obj/structure/machinery/vending/coffee, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/corpo) "wTV" = ( /obj/structure/prop/vehicles, /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/reactor_garage) "wUj" = ( /obj/structure/closet/crate/miningcar/yellow, @@ -60288,26 +49058,20 @@ /obj/item/ore/diamond, /obj/item/ore/diamond, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/mining) "wUp" = ( /obj/structure/stairs/perspective{ dir = 4; icon_state = "p_stair_full" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/way_in_command_centre) "wUx" = ( /obj/structure/barricade/deployable{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/a_block/admin) "wUL" = ( /obj/structure/closet/toolcloset, @@ -60349,20 +49113,14 @@ "wWc" = ( /obj/structure/surface/table/almayer, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner/west, /area/lv522/atmos/east_reactor/south) "wWe" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/carpet, /area/lv522/indoors/a_block/executive) "wWV" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/north, /area/lv522/indoors/a_block/admin) "wWX" = ( /obj/effect/decal/cleanable/blood/gibs/xeno/body, @@ -60382,22 +49140,14 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/b_block/hydro) "wXA" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/east_reactor/south) "wXQ" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/outdoors/colony_streets/north_east_street) "wYa" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -60422,9 +49172,7 @@ pixel_x = 1; pixel_y = 6 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/lv522/indoors/a_block/kitchen) "wYE" = ( /obj/structure/surface/table/almayer, @@ -60445,10 +49193,7 @@ /obj/structure/platform{ dir = 4 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/admin) "wZl" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -60489,9 +49234,7 @@ icon_state = "p_stair_full" }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/landing_zone_2/ceiling) "wZH" = ( /obj/structure/surface/table/almayer, @@ -60499,9 +49242,7 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/b_block/bar) "wZI" = ( /obj/effect/decal/cleanable/dirt, @@ -60509,9 +49250,7 @@ /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/cargo) "xaj" = ( /obj/structure/barricade/deployable{ @@ -60520,9 +49259,7 @@ /obj/structure/machinery/power/apc/weak{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/a_block/admin) "xay" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -60531,15 +49268,11 @@ /obj/structure/machinery/space_heater/radiator/red{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "xaD" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/a_block/dorms) "xaM" = ( /obj/item/shard{ @@ -60548,18 +49281,14 @@ /obj/structure/machinery/light, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/kitchen/glass) "xaN" = ( /obj/structure/stairs/perspective{ dir = 1; icon_state = "p_stair_full" }, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/landing_zone_2/ceiling) "xaQ" = ( /obj/structure/surface/table/almayer, @@ -60575,18 +49304,14 @@ pixel_x = 11; pixel_y = 4 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/c_block/mining) "xbj" = ( /obj/structure/surface/rack, /obj/item/weapon/gun/revolver/cmb, /obj/item/ammo_magazine/revolver/cmb, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/security) "xbk" = ( /obj/structure/prop/ice_colony/ground_wire{ @@ -60603,17 +49328,12 @@ "xbN" = ( /obj/structure/machinery/sleep_console, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/medical) "xbX" = ( /obj/structure/pipes/vents/pump, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/a_block/hallway) "xce" = ( /turf/closed/wall/r_wall/biodome/biodome_unmeltable, @@ -60630,10 +49350,7 @@ }, /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/static_comms/net_two, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/indoors/c_block/mining) "xcE" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -60658,9 +49375,7 @@ /turf/open/floor/prison, /area/lv522/indoors/c_block/mining) "xcU" = ( -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/oob) "xcX" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -60668,9 +49383,7 @@ /turf/open/floor/plating/plating_catwalk/prison, /area/lv522/indoors/c_block/mining) "xcY" = ( -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/landing_zone_1) "xdb" = ( /obj/structure/prop/ice_colony/ground_wire, @@ -60690,11 +49403,7 @@ pixel_x = -13; pixel_y = 2 }, -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/landing_zone_1/ceiling) "xdt" = ( /obj/structure/prop/ice_colony/ground_wire{ @@ -60718,10 +49427,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/north, /area/lv522/atmos/command_centre) "xdX" = ( /obj/item/lightstick/red/spoke/planted{ @@ -60760,23 +49466,12 @@ /turf/open/floor/prison, /area/lv522/indoors/a_block/dorms) "xeG" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/north, /area/lv522/atmos/cargo_intake) -"xfe" = ( -/obj/structure/cargo_container/grant/left, -/turf/open/auto_turf/shale/layer1, -/area/lv522/outdoors/colony_streets/north_west_street) "xfp" = ( /obj/structure/pipes/standard/simple/hidden/green, /turf/open/floor/plating/plating_catwalk/prison, /area/lv522/indoors/a_block/bridges/dorms_fitness) -"xfr" = ( -/obj/structure/cargo_container/grant/rightmid, -/turf/open/auto_turf/shale/layer1, -/area/lv522/outdoors/colony_streets/north_west_street) "xfu" = ( /obj/item/ammo_magazine/rifle/heap{ current_rounds = 0 @@ -60796,10 +49491,7 @@ /area/lv522/indoors/c_block/casino) "xfW" = ( /obj/structure/largecrate/random/barrel/yellow, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/landing_zone_1) "xfX" = ( /obj/structure/pipes/standard/manifold/hidden/green{ @@ -60809,9 +49501,7 @@ /area/lv522/indoors/a_block/dorms) "xgl" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/north_command_centre) "xgA" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -60823,9 +49513,7 @@ /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/way_in_command_centre) "xgH" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -60842,17 +49530,13 @@ /obj/structure/prop/invuln/minecart_tracks{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/indoors/c_block/mining) "xgW" = ( /obj/structure/prop/vehicles/crawler{ icon_state = "crawler_crate_alt" }, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/lv522/outdoors/colony_streets/south_east_street) "xgX" = ( /obj/structure/surface/rack, @@ -60873,35 +49557,25 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/asphalt/cement{ - icon_state = "cement9" - }, +/turf/open/asphalt/cement/cement9, /area/lv522/outdoors/colony_streets/north_street) "xho" = ( -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/north_command_centre) "xhq" = ( /obj/structure/closet, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "xhu" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/recharger{ pixel_y = 2 }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/security/glass) "xhB" = ( /obj/structure/closet/firecloset/full, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "xhD" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -60912,9 +49586,7 @@ /area/lv522/indoors/c_block/bridge) "xhL" = ( /obj/structure/largecrate/random, -/turf/open/asphalt/cement{ - icon_state = "cement9" - }, +/turf/open/asphalt/cement/cement9, /area/lv522/outdoors/colony_streets/north_street) "xhT" = ( /obj/effect/decal/cleanable/generic, @@ -60922,10 +49594,7 @@ /area/lv522/indoors/c_block/casino) "xhW" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/indoors/lone_buildings/storage_blocks) "xic" = ( /turf/closed/shuttle/dropship2/tornado/typhoon{ @@ -60940,32 +49609,24 @@ /turf/open/floor/prison, /area/lv522/indoors/c_block/casino) "xiG" = ( -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/kitchen) "xiU" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "xiY" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/east_reactor/west) "xje" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/bridge) "xju" = ( /obj/structure/machinery/light{ @@ -60978,40 +49639,29 @@ /area/lv522/indoors/c_block/cargo) "xjz" = ( /obj/structure/machinery/cm_vending/sorted/tech/comp_storage, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/lv522/indoors/lone_buildings/outdoor_bot) "xjC" = ( /obj/structure/pipes/vents/pump, /obj/structure/closet, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "xjF" = ( /turf/closed/wall/strata_outpost, /area/lv522/indoors/a_block/executive) "xjO" = ( /obj/structure/window/framed/strata/reinforced, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/c_block/garage) "xjS" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/lv522/indoors/b_block/bar) "xjU" = ( /obj/structure/closet/firecloset/full, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/lv522/outdoors/colony_streets/windbreaker/observation) "xjY" = ( /obj/structure/machinery/light{ @@ -61021,9 +49671,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/bridge) "xka" = ( /obj/structure/surface/table/almayer, @@ -61032,22 +49680,8 @@ pixel_y = 7 }, /obj/item/paper/wy, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/security) -"xkk" = ( -/obj/structure/bed/chair/dropship/passenger{ - dir = 4 - }, -/obj/structure/machinery/light/double{ - dir = 8; - pixel_y = -5 - }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, -/area/lv522/landing_zone_forecon/UD6_Tornado) "xkr" = ( /obj/effect/landmark/objective_landmark/medium, /obj/effect/decal/cleanable/dirt, @@ -61058,16 +49692,10 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/bridges/op_centre) "xkB" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/atmos/outdoor) "xkO" = ( /turf/closed/wall/shiva/prefabricated/reinforced, @@ -61075,35 +49703,31 @@ "xln" = ( /obj/structure/closet/crate, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/mining) "xlq" = ( /obj/structure/bed/chair, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkpurple2" - }, +/turf/open/floor/prison/darkpurple2, /area/lv522/indoors/a_block/dorms) "xly" = ( /obj/structure/cargo_container/grant/rightmid, /turf/open/auto_turf/shale/layer1, /area/lv522/outdoors/colony_streets/central_streets) "xlI" = ( -/turf/open/floor/shiva{ - icon_state = "radiator_tile2" - }, +/turf/open/floor/shiva/radiator_tile2, /area/lv522/indoors/a_block/bridges/corpo) "xlL" = ( /obj/structure/reagent_dispensers/fueltank{ layer = 2.9 }, /obj/effect/decal/cleanable/liquid_fuel, -/turf/open/asphalt/cement{ - icon_state = "cement4" +/obj/structure/stairs/perspective{ + dir = 1; + icon_state = "p_stair_full" }, +/turf/open/asphalt/cement/cement4, /area/lv522/outdoors/colony_streets/north_street) "xlN" = ( /obj/structure/surface/rack, @@ -61128,26 +49752,20 @@ "xlV" = ( /obj/structure/surface/table/almayer, /obj/item/device/flashlight/lamp, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/mining) "xlY" = ( /obj/structure/machinery/light{ dir = 1 }, /obj/structure/machinery/vending/coffee, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/mining) "xmj" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/nw_rockies) "xmk" = ( /obj/structure/pipes/vents/pump, @@ -61155,25 +49773,17 @@ /obj/item/pipe{ pixel_x = -6 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/a_block/fitness) "xmD" = ( -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/south) "xmN" = ( /obj/effect/decal/cleanable/blood/drip, /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv522/indoors/a_block/corpo) "xmT" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, @@ -61183,20 +49793,14 @@ /obj/structure/bed/chair{ dir = 1 }, -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/landing_zone_1/ceiling) "xnk" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv522/indoors/a_block/corpo) "xno" = ( /obj/item/weapon/gun/smartgun{ @@ -61212,10 +49816,7 @@ dir = 4; icon_state = "p_stair_full" }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/lv522/indoors/b_block/bridge) "xnu" = ( /obj/structure/surface/table/reinforced/almayer_B, @@ -61226,22 +49827,15 @@ name = "menu"; pixel_y = 26 }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/lone_buildings/chunk) "xnG" = ( /obj/structure/surface/table/almayer, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/a_block/hallway) "xnI" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/bridges/op_centre) "xnJ" = ( /obj/structure/surface/table/almayer, @@ -61252,9 +49846,7 @@ /obj/item/device/flash{ pixel_y = 1 }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/security/glass) "xnP" = ( /obj/structure/surface/table/reinforced/prison, @@ -61265,10 +49857,7 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/corpo) "xnX" = ( /obj/effect/decal/cleanable/dirt, @@ -61278,16 +49867,11 @@ /obj/structure/platform_decoration{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/sewer) "xoj" = ( -/obj/structure/largecrate/random/barrel/red, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/closed/wall/solaris/reinforced/hull/lv522, /area/lv522/indoors/lone_buildings/storage_blocks) "xoC" = ( /obj/structure/machinery/door/airlock/almayer/generic{ @@ -61295,18 +49879,14 @@ name = "\improper A-Block - Colony Operations Centre Airlock" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/hallway) "xpg" = ( /turf/closed/wall/strata_outpost/reinforced, /area/lv522/outdoors/nw_rockies) "xpu" = ( /obj/structure/platform, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/a_block/dorms) "xpH" = ( /obj/structure/platform{ @@ -61322,25 +49902,12 @@ /obj/structure/barricade/deployable{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/outdoors/colony_streets/north_east_street) "xqd" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/a_block/fitness) -"xqi" = ( -/obj/structure/platform{ - dir = 1 - }, -/obj/structure/largecrate/random, -/turf/open/floor/plating, -/area/lv522/indoors/c_block/cargo) "xqj" = ( /obj/effect/landmark/yautja_teleport, /turf/open/auto_turf/shale/layer2, @@ -61348,42 +49915,39 @@ "xqp" = ( /turf/open/auto_turf/shale/layer2, /area/lv522/landing_zone_1) +"xqN" = ( +/obj/structure/bed/chair/dropship/passenger{ + dir = 8 + }, +/obj/structure/machinery/light/double{ + dir = 4; + pixel_y = -5 + }, +/turf/open/shuttle/dropship/can_surgery/medium_grey_single_wide_up_to_down, +/area/lv522/landing_zone_forecon/UD6_Typhoon) "xqV" = ( /obj/structure/cargo_container/kelland/right, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/mining) "xqY" = ( /obj/structure/cargo_container/kelland/right, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/landing_zone_1) "xrr" = ( /obj/structure/barricade/deployable, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/security) "xrA" = ( -/turf/open/floor/corsat{ - icon_state = "brown" - }, +/turf/open/floor/corsat/brown, /area/lv522/atmos/cargo_intake) "xrB" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/shiva{ - icon_state = "radiator_tile2" - }, +/turf/open/floor/shiva/radiator_tile2, /area/lv522/indoors/c_block/cargo) "xrF" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/corsat{ - icon_state = "brown" - }, +/turf/open/floor/corsat/brown, /area/lv522/atmos/cargo_intake) "xrH" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -61410,20 +49974,13 @@ /turf/open/floor/plating, /area/lv522/landing_zone_2) "xsE" = ( -/obj/structure/platform{ - dir = 4 - }, -/obj/structure/platform, -/obj/structure/platform_decoration{ - dir = 6 - }, -/turf/open/gm/river, +/turf/open/floor/prison, /area/lv522/atmos/sewer) "xsN" = ( /obj/structure/largecrate/random/barrel, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "xtb" = ( /turf/closed/wall/strata_outpost, /area/lv522/indoors/a_block/fitness) @@ -61437,19 +49994,13 @@ /obj/item/storage/pouch/cassette{ pixel_y = 5 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/lv522/indoors/c_block/t_comm) "xtk" = ( /obj/item/prop/colony/usedbandage{ dir = 5 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/admin) "xtH" = ( /obj/effect/spawner/gibspawner/human, @@ -61470,9 +50021,7 @@ /obj/structure/window{ dir = 8 }, -/turf/open/floor/plating{ - icon_state = "platebotc" - }, +/turf/open/floor/plating/platebotc, /area/lv522/indoors/b_block/hydro/glass) "xuk" = ( /obj/structure/surface/table/almayer, @@ -61483,9 +50032,7 @@ /area/lv522/indoors/a_block/admin) "xuB" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/lv522/indoors/b_block/bar) "xuD" = ( /obj/structure/surface/table/almayer, @@ -61498,29 +50045,19 @@ pixel_y = 10 }, /obj/item/tool/pen, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/south) "xuQ" = ( /obj/structure/largecrate/random/secure, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/way_in_command_centre) "xuU" = ( -/turf/open/floor/corsat{ - dir = 9; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/northwest, /area/lv522/atmos/cargo_intake) "xva" = ( /obj/structure/cargo_container/watatsumi/right, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/outdoors/colony_streets/north_west_street) "xvj" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ @@ -61531,9 +50068,7 @@ id = "LV522CIC_1"; name = "\improper Storm Shutters" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/admin) "xvl" = ( /turf/closed/wall/strata_outpost, @@ -61545,46 +50080,23 @@ /area/lv522/indoors/c_block/t_comm) "xvB" = ( /obj/structure/window/framed/strata/reinforced, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/c_block/bridge) "xvG" = ( -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/b_block/bar) "xvQ" = ( /obj/structure/window/framed/strata/reinforced, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/lone_buildings/engineering) "xvW" = ( -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/a_block/bridges) -"xwv" = ( -/obj/structure/platform_decoration{ - dir = 4 - }, -/obj/structure/stairs/perspective{ - dir = 10; - icon_state = "p_stair_full" - }, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, -/area/lv522/outdoors/colony_streets/south_east_street) "xwD" = ( /obj/structure/machinery/space_heater/radiator/red{ dir = 8 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/b_block/hydro) "xwK" = ( /obj/effect/decal/warning_stripes{ @@ -61592,9 +50104,7 @@ pixel_x = 1 }, /obj/item/stack/sandbags/small_stack, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/outdoors/colony_streets/north_street) "xwO" = ( /obj/structure/cargo_container/seegson/left, @@ -61602,9 +50112,7 @@ /area/lv522/outdoors/colony_streets/north_west_street) "xwZ" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/east_reactor/south) "xxk" = ( /obj/structure/prop/ice_colony/ground_wire{ @@ -61621,9 +50129,7 @@ /turf/open/auto_turf/sand_white/layer0, /area/lv522/outdoors/colony_streets/south_east_street) "xxq" = ( -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/lv522/outdoors/colony_streets/south_east_street) "xxs" = ( /obj/effect/decal/cleanable/dirt, @@ -61644,9 +50150,7 @@ icon_state = "E"; pixel_x = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/colony_streets/north_west_street) "xxU" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -61656,36 +50160,26 @@ /area/lv522/indoors/a_block/admin) "xxV" = ( /obj/structure/cargo_container/seegson/right, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/lv522/outdoors/colony_streets/north_west_street) "xxW" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/cargo_intake) -"xyf" = ( -/obj/structure/cargo_container/kelland/left, -/turf/open/auto_turf/sand_white/layer0, -/area/lv522/outdoors/colony_streets/north_west_street) "xyi" = ( /obj/structure/closet/emcloset, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "xym" = ( /obj/structure/closet/secure_closet/engineering_electrical, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/lv522/indoors/lone_buildings/outdoor_bot) +"xyu" = ( +/turf/open/shuttle/dropship/can_surgery/medium_grey_single_wide_up_to_down, +/area/lv522/landing_zone_forecon/UD6_Tornado) "xyC" = ( /obj/structure/machinery/landinglight/ds2/delaythree, /obj/effect/decal/cleanable/dirt, @@ -61693,24 +50187,17 @@ /area/lv522/landing_zone_2) "xyL" = ( /obj/structure/window/framed/strata/reinforced, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/fitness) "xyN" = ( -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/lv522/outdoors/colony_streets/central_streets) "xzj" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/lv522/indoors/lone_buildings/engineering) "xzn" = ( /turf/open/floor/prison, @@ -61722,18 +50209,12 @@ pixel_y = 9 }, /obj/effect/decal/cleanable/dirt, -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/landing_zone_1/ceiling) "xzu" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_nest, /obj/effect/landmark/xeno_spawn, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/east_reactor/south) "xzK" = ( /turf/open/asphalt/cement, @@ -61749,13 +50230,8 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/c_block/mining) -"xAw" = ( -/turf/closed/wall/strata_outpost/reinforced/hull, -/area/lv522/indoors/a_block/bridges/op_centre) "xAF" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 @@ -61780,9 +50256,7 @@ /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/colony_streets/north_west_street) "xAO" = ( /turf/open/gm/river, @@ -61792,9 +50266,7 @@ /turf/open/floor/prison, /area/lv522/indoors/c_block/mining) "xAR" = ( -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/lv522/outdoors/colony_streets/south_street) "xAS" = ( /obj/structure/fence{ @@ -61807,9 +50279,7 @@ icon_state = "N"; pixel_y = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/colony_streets/south_west_street) "xAZ" = ( /obj/effect/decal/cleanable/dirt, @@ -61820,9 +50290,7 @@ dir = 8 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/security) "xBi" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ @@ -61833,9 +50301,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/corpo/glass) "xBo" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -61852,30 +50318,19 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/lv522/outdoors/n_rockies) "xBS" = ( /obj/structure/stairs/perspective{ - dir = 6; icon_state = "p_stair_full" }, -/obj/structure/platform_decoration{ - dir = 8 - }, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement, /area/lv522/outdoors/colony_streets/east_central_street) "xCG" = ( /obj/structure/bed/chair/comfy{ dir = 8 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/corpo/glass) "xCN" = ( /obj/item/clothing/under/shorts/blue{ @@ -61886,18 +50341,14 @@ /area/lv522/indoors/a_block/executive) "xCS" = ( /obj/structure/machinery/light, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/south) "xCT" = ( /turf/open/floor/prison, /area/lv522/indoors/a_block/dorm_north) "xCY" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/garage) "xDl" = ( /obj/effect/decal/cleanable/blood, @@ -61938,9 +50389,7 @@ icon_state = "E"; pixel_x = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/colony_streets/south_west_street) "xDJ" = ( /obj/effect/decal/cleanable/dirt, @@ -61949,10 +50398,7 @@ /area/lv522/indoors/a_block/kitchen) "xDL" = ( /obj/structure/cargo_container/kelland/left, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/outdoors/colony_streets/north_west_street) "xDM" = ( /obj/structure/surface/table/almayer{ @@ -61970,10 +50416,7 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/b_block/hydro) "xDR" = ( /obj/structure/machinery/conveyor{ @@ -61990,17 +50433,11 @@ /area/lv522/outdoors/colony_streets/north_west_street) "xEk" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/east, /area/lv522/atmos/cargo_intake) "xEp" = ( /obj/structure/cargo_container/kelland/right, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/outdoors/colony_streets/north_west_street) "xEB" = ( /obj/structure/bed/chair/comfy{ @@ -62013,36 +50450,26 @@ /obj/structure/machinery/door/poddoor/shutters/almayer{ id = "Reactor_entry_1" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/way_in_command_centre) "xEH" = ( /obj/structure/machinery/landinglight/ds1{ dir = 1 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/landing_zone_1) "xFg" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/lv522/outdoors/colony_streets/north_street) "xFp" = ( /turf/open/asphalt/cement, /area/lv522/outdoors/colony_streets/north_east_street) "xFt" = ( /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner/north, /area/lv522/atmos/east_reactor/south) "xFv" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -62056,9 +50483,7 @@ dir = 1 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/a_block/admin) "xFG" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -62070,9 +50495,7 @@ name = "\improper A-Block Fitness Centre Airlock" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/fitness) "xGa" = ( /obj/effect/decal/cleanable/blood/xeno{ @@ -62094,9 +50517,7 @@ /obj/structure/machinery/door/poddoor/shutters/almayer{ id = "Sec-Corpo-Bridge-Lockdown" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/security) "xGf" = ( /obj/effect/decal/cleanable/dirt, @@ -62112,25 +50533,19 @@ "xGC" = ( /obj/item/reagent_container/glass/bucket/janibucket, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/mining) "xGR" = ( /obj/structure/machinery/door/airlock/almayer/maint, /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/way_in_command_centre) "xGX" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/east_reactor/south) "xHr" = ( /obj/structure/pipes/vents/pump, @@ -62142,26 +50557,20 @@ /area/lv522/indoors/c_block/casino) "xHz" = ( /obj/structure/machinery/door/airlock/almayer/generic{ - name = "\improper Corporate Liason Office " - }, -/turf/open/floor/corsat{ - icon_state = "marked" + name = "\improper Corporate Liaison Office " }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/corpo) "xHO" = ( /obj/structure/girder, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/lv522/outdoors/colony_streets/north_street) "xIr" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /obj/effect/spider/spiderling/nogrow, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/a_block/dorms) "xIv" = ( /turf/open/floor/prison, @@ -62169,7 +50578,6 @@ "xIK" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/largecrate, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/plating, /area/lv522/landing_zone_1/tunnel) "xIW" = ( @@ -62188,15 +50596,11 @@ /area/lv522/indoors/c_block/cargo) "xJg" = ( /obj/structure/machinery/light, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/lv522/outdoors/colony_streets/windbreaker/observation) "xJt" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/way_in_command_centre) "xJB" = ( /obj/structure/largecrate/random/barrel/red, @@ -62209,16 +50613,11 @@ id = "LV522CIC_1"; name = "\improper Storm Shutters" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/admin) "xJI" = ( /obj/effect/decal/cleanable/generic, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/lv522/indoors/b_block/hydro) "xJK" = ( /obj/structure/prop/ice_colony/dense/planter_box{ @@ -62227,10 +50626,7 @@ /obj/structure/flora/bush/ausbushes/ausbush{ pixel_y = 8 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/b_block/bridge) "xJL" = ( /obj/effect/decal/cleanable/dirt, @@ -62244,10 +50640,7 @@ /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/lv522/indoors/lone_buildings/engineering) "xKc" = ( /obj/structure/barricade/handrail{ @@ -62260,9 +50653,7 @@ /obj/item/ammo_magazine/m56d, /obj/item/ammo_magazine/m56d, /obj/item/device/m56d_gun, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/lv522/landing_zone_forecon/UD6_Typhoon) "xKk" = ( /turf/closed/wall/strata_outpost_ribbed, @@ -62275,9 +50666,7 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms) "xLg" = ( /obj/effect/decal/cleanable/dirt, @@ -62291,14 +50680,10 @@ /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/way_in_command_centre) "xLm" = ( -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/north) "xLn" = ( /obj/structure/surface/table/almayer, @@ -62315,9 +50700,7 @@ pixel_y = -5 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/lv522/indoors/b_block/bar) "xLq" = ( /obj/item/prop/alien/hugger, @@ -62328,9 +50711,7 @@ dir = 1 }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/sewer) "xLU" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -62355,28 +50736,19 @@ pixel_x = 8; pixel_y = 16 }, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/cargo) "xMu" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/lone_buildings/chunk) "xMz" = ( /obj/structure/machinery/disposal, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/b_block/bar) "xME" = ( /obj/structure/surface/table/almayer, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner/east, /area/lv522/atmos/east_reactor/south) "xMO" = ( /obj/effect/decal/cleanable/dirt, @@ -62413,44 +50785,22 @@ /area/lv522/indoors/b_block/hydro) "xNt" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/north, /area/lv522/atmos/east_reactor/south) -"xNu" = ( -/obj/structure/platform_decoration{ - dir = 8 - }, -/obj/structure/bed/chair/dropship/passenger{ - dir = 8 - }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, -/area/lv522/landing_zone_forecon/UD6_Tornado) "xNG" = ( /obj/structure/machinery/computer/crew/colony{ density = 0; pixel_y = 16 }, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/lv522/outdoors/colony_streets/windbreaker/observation) "xNR" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/lv522/indoors/b_block/hydro) "xOb" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/a_block/fitness/glass) "xOw" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -62463,14 +50813,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/prison, /area/lv522/indoors/a_block/admin) -"xOB" = ( -/obj/structure/platform{ - dir = 1 - }, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, -/area/lv522/outdoors/colony_streets/east_central_street) "xOD" = ( /obj/item/clothing/glasses/mbcg, /turf/open/floor/prison, @@ -62478,19 +50820,8 @@ "xOQ" = ( /obj/structure/window/framed/strata/reinforced, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/fitness) -"xOS" = ( -/obj/structure/machinery/power/apc/weak{ - dir = 1 - }, -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, -/area/lv522/landing_zone_1) "xPa" = ( /obj/structure/machinery/conveyor, /turf/open/floor/plating, @@ -62503,9 +50834,7 @@ /area/lv522/indoors/c_block/mining) "xPj" = ( /obj/structure/largecrate/random, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/garage) "xPo" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -62543,9 +50872,7 @@ icon_state = "E"; pixel_x = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/colony_streets/north_west_street) "xPW" = ( /obj/effect/decal/cleanable/dirt, @@ -62569,18 +50896,14 @@ /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/outdoor) "xQc" = ( /turf/closed/wall/r_wall/biodome/biodome_unmeltable, /area/lv522/atmos/east_reactor/south) "xQi" = ( /obj/structure/closet/firecloset/full, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/security) "xQj" = ( /obj/effect/decal/cleanable/dirt, @@ -62590,9 +50913,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/medical) "xQq" = ( /obj/effect/decal/cleanable/dirt, @@ -62607,30 +50928,18 @@ /obj/item/tool/pen/blue/clicky, /obj/effect/landmark/objective_landmark/science, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/a_block/hallway) -"xQR" = ( -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, -/area/lv522/indoors/lone_buildings/storage_blocks) "xRg" = ( /obj/structure/bed/chair/comfy{ dir = 1 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/north, /area/lv522/indoors/a_block/admin) "xRk" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/lv522/outdoors/colony_streets/north_street) "xRn" = ( /obj/item/clothing/head/hardhat, @@ -62641,9 +50950,7 @@ dir = 1; pixel_y = 26 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/lv522/indoors/a_block/kitchen) "xRq" = ( /obj/structure/surface/table/reinforced/almayer_B, @@ -62667,9 +50974,7 @@ dir = 8; pixel_y = 17 }, -/turf/open/floor/strata{ - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1, /area/lv522/indoors/lone_buildings/chunk) "xRw" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -62682,30 +50987,20 @@ /obj/structure/bed/roller, /obj/effect/landmark/survivor_spawner, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/admin) "xRE" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/outdoors/colony_streets/north_west_street) "xRG" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/prop/almayer/computer/PC{ pixel_y = 7 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms/glass) "xRK" = ( -/turf/open/asphalt/cement{ - icon_state = "cement2" - }, +/turf/open/asphalt/cement/cement2, /area/lv522/outdoors/colony_streets/north_street) "xRM" = ( /obj/structure/machinery/door/airlock/dropship_hatch/two{ @@ -62716,9 +51011,7 @@ id = "UD6 East"; indestructible = 1 }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/light_grey_single_wide_up_to_down, /area/lv522/landing_zone_forecon/UD6_Tornado) "xRQ" = ( /obj/structure/surface/table/woodentable/fancy, @@ -62741,10 +51034,7 @@ dir = 1 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/b_block/bridge) "xSD" = ( /obj/structure/largecrate/random/barrel/green, @@ -62754,24 +51044,16 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/east, /area/lv522/atmos/way_in_command_centre) "xSL" = ( /obj/structure/bed/chair/comfy{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/northwest, /area/lv522/atmos/east_reactor/south) "xSN" = ( -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/filt) "xSP" = ( /obj/structure/pipes/standard/manifold/hidden/green{ @@ -62792,22 +51074,21 @@ }, /turf/open/auto_turf/shale/layer1, /area/lv522/outdoors/colony_streets/south_street) +"xTb" = ( +/obj/vehicle/powerloader, +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_up_to_down, +/area/lv522/landing_zone_forecon/UD6_Tornado) "xTj" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/camera/autoname, /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/mining) "xTs" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/lv522/indoors/a_block/fitness) "xTJ" = ( /obj/item/tool/kitchen/utensil/pknife{ @@ -62841,18 +51122,14 @@ pixel_y = 7 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/b_block/bar) "xUq" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/corsat, /area/lv522/atmos/reactor_garage) "xUx" = ( -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/filt) "xUJ" = ( /obj/effect/decal/cleanable/blood/drip, @@ -62861,18 +51138,14 @@ /area/lv522/indoors/a_block/security) "xUQ" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/shiva{ - icon_state = "radiator_tile2" - }, +/turf/open/floor/shiva/radiator_tile2, /area/lv522/indoors/a_block/bridges/op_centre) "xVd" = ( /turf/closed/wall/strata_outpost_ribbed, /area/lv522/indoors/lone_buildings/engineering) "xVq" = ( /obj/structure/blocker/forcefield/vehicles, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/east_reactor/south) "xVz" = ( /obj/structure/prop/ice_colony/ground_wire{ @@ -62882,9 +51155,7 @@ /area/lv522/outdoors/colony_streets/north_west_street) "xVB" = ( /obj/structure/machinery/deployable/barrier, -/turf/open/floor/shiva{ - icon_state = "radiator_tile2" - }, +/turf/open/floor/shiva/radiator_tile2, /area/lv522/atmos/way_in_command_centre) "xVG" = ( /obj/structure/largecrate/random, @@ -62902,19 +51173,14 @@ dir = 8 }, /turf/open/gm/river, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "xVI" = ( /obj/effect/spawner/gibspawner/xeno, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/prison/blue/north, /area/lv522/indoors/a_block/admin) "xVV" = ( -/turf/open/asphalt/cement{ - icon_state = "cement15" - }, +/turf/open/asphalt/cement/cement15, /area/lv522/outdoors/colony_streets/south_west_street) "xWb" = ( /obj/structure/bed/chair{ @@ -62927,26 +51193,18 @@ /area/lv522/outdoors/colony_streets/north_west_street) "xWc" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/cargo_intake) "xWf" = ( -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/a_block/bridges/dorms_fitness) "xWx" = ( /obj/structure/machinery/door/airlock/almayer/generic, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/toilet) "xWz" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/filt) "xWA" = ( /obj/structure/stairs/perspective{ @@ -62957,9 +51215,7 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/a_block/hallway) "xWF" = ( /obj/structure/prop/server_equipment/yutani_server{ @@ -62970,33 +51226,25 @@ pixel_y = 11 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/a_block/fitness) "xWL" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/item/stack/rods, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/lv522/outdoors/colony_streets/north_street) "xWO" = ( -/obj/structure/platform{ - dir = 1 - }, -/turf/open/asphalt/cement{ - icon_state = "cement12" +/obj/structure/stairs/perspective{ + dir = 10; + icon_state = "p_stair_full" }, +/turf/open/asphalt/cement/cement12, /area/lv522/outdoors/colony_streets/south_east_street) "xWP" = ( /obj/structure/pipes/standard/manifold/fourway/hidden/green, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/lv522/outdoors/colony_streets/north_street) "xXg" = ( /turf/open/asphalt/cement, @@ -63012,16 +51260,12 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/sewer) "xXz" = ( /obj/structure/foamed_metal, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms/glass) "xXN" = ( /obj/effect/decal/cleanable/dirt, @@ -63029,17 +51273,13 @@ /area/lv522/indoors/a_block/dorms) "xXO" = ( /obj/structure/machinery/door/airlock/almayer/generic, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/landing_zone_1/ceiling) "xXQ" = ( /obj/structure/platform_decoration{ dir = 1 }, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/lv522/outdoors/colony_streets/north_street) "xXR" = ( /obj/structure/machinery/colony_floodlight{ @@ -63050,19 +51290,14 @@ /turf/open/asphalt/cement, /area/lv522/outdoors/colony_streets/north_street) "xXV" = ( -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/lv522/outdoors/nw_rockies) "xXX" = ( /obj/structure/target{ name = "punching bag" }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/a_block/fitness) "xYn" = ( /obj/structure/surface/table/woodentable/fancy, @@ -63084,16 +51319,12 @@ /turf/open/floor/plating/plating_catwalk/prison, /area/lv522/atmos/east_reactor/south) "xZw" = ( -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/cargo_intake) "xZy" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/indoors/c_block/mining) "xZz" = ( /obj/effect/decal/cleanable/blood/splatter, @@ -63111,15 +51342,8 @@ dir = 5; id = "cargo_container" }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/cargo_intake) -"xZN" = ( -/obj/structure/largecrate/random/secure, -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) "xZP" = ( /obj/structure/stairs/perspective{ dir = 1; @@ -63132,10 +51356,7 @@ /obj/structure/machinery/space_heater/radiator/red{ pixel_y = 26 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/lv522/indoors/lone_buildings/engineering) "yae" = ( /obj/structure/surface/table/almayer, @@ -63145,9 +51366,7 @@ }, /obj/item/tool/pen/blue/clicky, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/a_block/hallway) "yaf" = ( /obj/structure/surface/rack, @@ -63161,9 +51380,7 @@ "yai" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/lv522/atmos/east_reactor/south) "yaj" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -63176,9 +51393,7 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/mining) "yar" = ( /obj/structure/fence, @@ -63189,43 +51404,21 @@ icon_state = "N"; pixel_y = 1 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/lv522/landing_zone_2/ceiling) -"yat" = ( -/obj/structure/machinery/door/airlock/almayer/security/glass{ - name = "\improper Marshall Office Armory" - }, -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 4 - }, -/obj/structure/machinery/door/poddoor/shutters/almayer{ - dir = 4; - id = "Sec-Armoury-Lockdown" - }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, -/area/lv522/indoors/a_block/security) "yaw" = ( /obj/structure/machinery/door/airlock/almayer/maint{ dir = 1 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/reactor_garage) "yaC" = ( /obj/effect/decal/warning_stripes{ icon_state = "NW-out"; pixel_y = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/way_in_command_centre) "yaF" = ( /obj/effect/spawner/gibspawner/xeno, @@ -63245,9 +51438,7 @@ /obj/structure/largecrate/random{ layer = 2.9 }, -/turf/open/floor/plating{ - icon_state = "platebot" - }, +/turf/open/floor/plating/platebot, /area/lv522/indoors/c_block/cargo) "ybd" = ( /obj/structure/blocker/forcefield/vehicles, @@ -63257,9 +51448,7 @@ unacidable = 1 }, /obj/structure/blocker/invisible_wall, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/oob) "ybj" = ( /obj/item/prop/alien/hugger, @@ -63271,9 +51460,7 @@ pixel_y = 2 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/security/glass) "ybz" = ( /turf/open/asphalt/cement, @@ -63282,9 +51469,7 @@ /obj/structure/surface/table/reinforced/prison, /obj/effect/spawner/random/toolbox, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/indoors/c_block/garage) "yca" = ( /obj/effect/decal/cleanable/dirt, @@ -63292,16 +51477,12 @@ /area/lv522/indoors/a_block/kitchen/glass) "ycb" = ( /obj/structure/machinery/door/airlock/almayer/generic, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/lone_buildings/storage_blocks) "ycc" = ( /obj/structure/largecrate/random/barrel, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/landing_zone_2/ceiling) "yct" = ( /obj/structure/surface/rack, @@ -63309,15 +51490,11 @@ /obj/structure/machinery/power/apc/weak{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms/glass) "ycv" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/kitchen) "ycw" = ( /obj/structure/girder/reinforced, @@ -63343,18 +51520,13 @@ /area/lv522/outdoors/colony_streets/south_east_street) "ycO" = ( /obj/structure/machinery/light, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/b_block/bridge) "ycV" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/asphalt/cement{ - icon_state = "cement15" - }, +/turf/open/asphalt/cement/cement15, /area/lv522/outdoors/n_rockies) "ydb" = ( /obj/effect/decal/cleanable/dirt, @@ -63364,52 +51536,41 @@ /obj/structure/platform{ dir = 8 }, -/obj/structure/blocker/invisible_wall, +/obj/structure/largecrate/random{ + layer = 2.9 + }, /turf/open/floor/plating, /area/lv522/indoors/c_block/cargo) "ydz" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/recharge_station, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/kitchen) "ydA" = ( -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/lv522/outdoors/colony_streets/north_west_street) "ydD" = ( /obj/structure/surface/table/almayer, /obj/item/ammo_box/magazine/shotgun/buckshot/empty, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/security) "ydS" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/bridges/op_centre) "ydU" = ( /obj/structure/bed/chair/comfy{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/b_block/bar) "ydV" = ( /obj/structure/surface/table/almayer{ dir = 1; flipped = 1 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/admin) "yeD" = ( /obj/item/ammo_magazine/pistol/m1911{ @@ -63420,10 +51581,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/outdoors/colony_streets/north_west_street) "yeH" = ( /obj/effect/decal/cleanable/dirt, @@ -63442,14 +51600,10 @@ icon_state = "E"; pixel_x = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/colony_streets/north_west_street) "yeS" = ( -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/north_command_centre) "yfu" = ( /turf/open/floor/prison, @@ -63457,10 +51611,7 @@ "yfz" = ( /obj/structure/largecrate/random/mini, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/lv522/landing_zone_2/ceiling) "yfH" = ( /obj/structure/window/framed/strata/reinforced, @@ -63473,21 +51624,13 @@ /turf/open/floor/plating, /area/lv522/landing_zone_2) "yfP" = ( -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/lv522/indoors/a_block/dorm_north) "yfR" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/indoors/b_block/hydro) "yfS" = ( -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/northwest, /area/lv522/indoors/b_block/hydro) "yfX" = ( /obj/item/weapon/gun/boltaction{ @@ -63511,22 +51654,15 @@ /area/lv522/indoors/c_block/casino) "ygu" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/east, /area/lv522/atmos/east_reactor/west) "ygw" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/indoors/a_block/security) "ygD" = ( -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/outdoors/colony_streets/windbreaker/observation) "yhi" = ( /obj/effect/decal/cleanable/dirt, @@ -63550,10 +51686,7 @@ /obj/item/storage/firstaid/adv, /obj/structure/pipes/vents/pump, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/lv522/indoors/a_block/medical/glass) "yhz" = ( /obj/structure/window_frame/corsat, @@ -63567,30 +51700,21 @@ /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/shiva{ - icon_state = "radiator_tile2" - }, +/turf/open/floor/shiva/radiator_tile2, /area/lv522/indoors/a_block/bridges/garden_bridge) "yhK" = ( /obj/structure/pipes/standard/simple/hidden/green, /turf/open/auto_turf/shale/layer1, /area/lv522/outdoors/colony_streets/north_west_street) "yhR" = ( -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/lv522/outdoors/colony_streets/south_street) "yhU" = ( -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/landing_zone_1/ceiling) "yif" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/dorms) "yim" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -63599,17 +51723,13 @@ /turf/open/auto_turf/sand_white/layer0, /area/lv522/outdoors/n_rockies) "yiu" = ( -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/east_reactor/south) "yiH" = ( /obj/structure/window_frame/strata, /obj/effect/spawner/gibspawner/xeno, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/dorms) "yiM" = ( /turf/open/auto_turf/sand_white/layer0, @@ -63629,24 +51749,18 @@ name = "\improper A-Block Security Airlock"; welded = 1 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/indoors/a_block/bridges/op_centre) "yje" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/atmos/sewer) "yjg" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/engidoor/glass/colony, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/atmos/east_reactor/south) "yjm" = ( /obj/structure/largecrate/random, @@ -63670,9 +51784,7 @@ pixel_y = 25 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/lv522/indoors/a_block/bridges/corpo) "yjr" = ( /obj/effect/decal/cleanable/blood/splatter, @@ -63704,9 +51816,7 @@ pixel_x = -11; pixel_y = -8 }, -/turf/open/floor/shiva{ - icon_state = "radiator_tile2" - }, +/turf/open/floor/shiva/radiator_tile2, /area/lv522/indoors/a_block/bridges/corpo) "yjK" = ( /obj/structure/prop/ice_colony/ground_wire{ @@ -63716,10 +51826,7 @@ /turf/open/auto_turf/sand_white/layer0, /area/lv522/outdoors/colony_streets/south_east_street) "yjL" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison/whitegreenfull/southwest, /area/lv522/oob) "yjP" = ( /obj/structure/surface/table/almayer, @@ -63730,9 +51837,7 @@ }, /obj/item/tool/screwdriver, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, +/turf/open/floor/prison/darkbrownfull2, /area/lv522/landing_zone_2/ceiling) "yjT" = ( /obj/effect/decal/warning_stripes{ @@ -63742,9 +51847,7 @@ /area/lv522/outdoors/colony_streets/south_west_street) "yjU" = ( /obj/structure/cargo_container/horizontal/blue/middle, -/turf/open/floor/plating{ - icon_state = "platebot" - }, +/turf/open/floor/plating/platebot, /area/lv522/indoors/c_block/cargo) "yjW" = ( /obj/structure/surface/table/almayer, @@ -63754,39 +51857,28 @@ }, /obj/item/tank/emergency_oxygen/engi, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +/turf/open/floor/prison/darkpurplefull2, /area/lv522/indoors/a_block/dorms/glass) "ykc" = ( -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3/west, /area/lv522/indoors/a_block/bridges/op_centre) "yke" = ( /obj/structure/machinery/vending/snack, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/a_block/admin) +"ykj" = ( +/turf/open/shuttle/dropship/can_surgery/light_grey_bottom_right, +/area/lv522/landing_zone_forecon/UD6_Tornado) "ykn" = ( /obj/structure/surface/table/almayer, /obj/structure/window/reinforced{ dir = 4 }, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, +/turf/open/floor/prison/blue_plate/north, /area/lv522/indoors/c_block/mining) "ykL" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/lv522/indoors/lone_buildings/outdoor_bot) "ykR" = ( /obj/structure/bed/chair/comfy, @@ -63795,9 +51887,7 @@ icon_state = "E"; pixel_x = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/lv522/outdoors/colony_streets/north_west_street) "ykT" = ( /turf/open/floor/plating/plating_catwalk/prison, @@ -63820,25 +51910,17 @@ pixel_x = -7 }, /obj/effect/landmark/objective_landmark/close, -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, +/turf/open/floor/prison/greenfull/east, /area/lv522/landing_zone_1/ceiling) "yld" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/alien/resin/sticky, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/lv522/atmos/east_reactor/south) "ylm" = ( -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/lv522/outdoors/n_rockies) "ylo" = ( /turf/closed/wall/shiva/prefabricated/reinforced, @@ -63851,9 +51933,7 @@ /turf/open/floor/prison, /area/lv522/indoors/c_block/t_comm) "ylr" = ( -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/lv522/outdoors/colony_streets/east_central_street) "ylC" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -63868,14 +51948,12 @@ /area/lv522/indoors/a_block/admin) "ymc" = ( /obj/structure/window/framed/strata/reinforced, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/lv522/landing_zone_1/ceiling) "ymf" = ( /obj/structure/platform_decoration, /turf/open/gm/river, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) (1,1,1) = {" bMX @@ -64968,7 +53046,7 @@ nGe pez pFw qbf -lBl +pxb paT pxb pxb @@ -65192,11 +53270,11 @@ cpy cpy oyY paT -lBl -lBl -lBl -lBl -lBl +pxb +pxb +pxb +pxb +pxb pxb nQz tPf @@ -65418,12 +53496,12 @@ cpy cpy cpy hTW -lBl -vqw -lBl -lBl -lBl -oYM +pxb +xqp +pxb +pxb +pxb +nQz tPf oKc uZc @@ -65644,13 +53722,13 @@ cpy cpy cpy nGe -veq -veq -vqw -vqw -vqw -oYM -pLm +pwa +pwa +xqp +xqp +xqp +nQz +oKc ryU ryU ryU @@ -65871,12 +53949,12 @@ cpy cpy cpy nGJ -veq -veq -lBl -oYM -tZM -pLm +pwa +pwa +pxb +nQz +tPf +oKc ryU ryU uiM @@ -66098,10 +54176,10 @@ cpy cpy cpy nMc -lBl -oYM -tZM -pLm +pxb +nQz +tPf +oKc ryU ryU ryU @@ -66224,9 +54302,9 @@ vtc jrT cpy cpy -kBT -uiK -mZM +sRA +sRA +sRA sRA sRA rWS @@ -66324,11 +54402,11 @@ cpy cpy cpy lJq -lBl -oYM -pLm -pkH -pkH +pxb +nQz +oKc +ryU +ryU ryU wuK xfW @@ -66451,9 +54529,9 @@ hSi vtc cpy cpy -vZY -dcR -bQq +rWS +sRA +sRA sRA rWS pRK @@ -66551,11 +54629,11 @@ cpy cpy cpy lJq -oYM -pLm -pkH -pvd -nhi +nQz +oKc +ryU +rhk +uTd oyf tns fOc @@ -66678,20 +54756,20 @@ lMH vtc cpy cpy -kLQ +rWS +rWS sRA -jHa sRA obe pRM qnk qHA -qTO -rhB -qJl -rCp -scv -rCp +qWk +rgn +sbj +uJf +kbq +uJf tdH nfq fDg @@ -66777,9 +54855,9 @@ cpy cpy cpy cpy -veq +pwa lWj -cpU +uZc fSo nFj pRg @@ -66911,14 +54989,14 @@ pps pxY pIu nbO -qnV -rjP -rjP -rig -rjP -rDb -rjP -sGT +tvL +bmR +bmR +aXR +bmR +wGc +bmR +mNz tdS tzA tSJ @@ -67004,9 +55082,9 @@ tFx tFx tFx niA -veq +pwa oiC -pkH +ryU naS nFj nFj @@ -67136,16 +55214,16 @@ cpy cpy ppF pys -pIO -pTH -qpg +jvF +pBz +iGk qJl qUf riE ruj rDu xKc -sGY +fwh pBQ rjP rus @@ -67228,12 +55306,12 @@ cpy tFx tFx wnP -rzz +evg syM rnT -lBl +pxb ttT -pkH +ryU haf nFj nFj @@ -67365,14 +55443,14 @@ pqZ pyO qst gTM -qqS -qJw -rjP -rjP -rus -rjP -rig -sHg +ghY +oxd +bmR +bmR +tTb +bmR +aXR +aom teL tzF tSU @@ -67457,10 +55535,10 @@ moz mvP ggS tFx -xOS -lBl +rnT +pxb ttT -pkH +ryU das sYH sYH @@ -67594,12 +55672,12 @@ rWS pUc qrj qLd -qUD -rkR -rkR -rDz -scy -rDz +nBh +ori +ori +ngy +xqN +ngy tfV rFp sdE @@ -67656,7 +55734,7 @@ ien ien ien ien -ien +spo umf vXc vXc @@ -67683,11 +55761,11 @@ tFx moI mxD uom -kWp +ymc rnT -lBl +pxb ttT -pkH +ryU eyy sYH sYH @@ -67723,11 +55801,11 @@ cpy eYM eYM eYM -fxZ -fxZ -fxZ +wfP +wfP +wfP eYM -nvV +sRM eYM eYM cpy @@ -67875,15 +55953,15 @@ ylo ylo ylo ylo +dbc ylo ylo ylo ylo ylo ylo -ylo -ien -ien +rMF +spo vXc vXc vXc @@ -67910,11 +55988,11 @@ tFx inm myQ myZ -kWp +ymc rnT -lBl +pxb ttT -pkH +ryU naS sYH sYH @@ -67950,12 +56028,12 @@ eYM eYM uqe pNa -fxZ -fxZ -fxZ +wfP +wfP +wfP pNa -nvV -ait +sRM +hTe eYM cpy cpy @@ -68100,18 +56178,18 @@ udK wHi nly miW -hYf -mFe -hYf -wHi +ylo +ylo +dbc +bOX jZe wky wPV tyl ylo -ien -ien -ien +rMF +spo +vXc vXc vXc vXc @@ -68139,9 +56217,9 @@ rIM rIM tFx rnT -lBl +pxb ttT -pkH +ryU haf sYH sYH @@ -68174,15 +56252,15 @@ pxb cpy eYM eYM -qCs -fxZ +jJF +wfP eYM -fxZ -fxZ -fxZ +wfP +wfP +wfP eYM -nvV -ait +sRM +hTe eYM cpy cpy @@ -68286,9 +56364,9 @@ cpy cpy cpy rWS -sRA -sRA -sRA +jVS +kBD +kBT ien ien ien @@ -68327,17 +56405,17 @@ hYf wHi jUk ouI -hYf -emt -pck -hYf +arP +ylo +xoj +ylo erS abe ukT ofS ylo -ien -ien +rMF +spo vXc vXc vXc @@ -68361,14 +56439,14 @@ qJy aRN ien mmw -fbh -fbh -fHB +veQ +veQ +fnA sSQ rnT -lBl +pxb ttT -pkH +ryU das sYH sYH @@ -68401,15 +56479,15 @@ pxb cpy eYM hUM -qCs -fxZ +jJF +wfP eYM -fxZ -fxZ -fxZ +wfP +wfP +wfP eYM -nvV -ait +sRM +hTe eYM cpy cpy @@ -68555,16 +56633,16 @@ hYf xhW hYf hYf -qvK +ylo xoj -hYf +ylo lpt gJL wHi cAW ylo ylo -ien +spo vXc vXc vXc @@ -68590,12 +56668,12 @@ tZh ofi ofi max -rFw +osN sSQ rnT -lBl +pxb ttT -pkH +ryU eyy nFj nFj @@ -68628,15 +56706,15 @@ cpy cpy eYM vYY -fxZ -fxZ +wfP +wfP eYM -qCs -fxZ -fxZ +jJF +wfP +wfP eYM -nvV -ait +sRM +hTe eYM cpy cpy @@ -68735,7 +56813,7 @@ cpy cpy sRA sRA -sRA +jHa cpy rWS rWS @@ -68782,17 +56860,17 @@ hYf hLl wHi hYf -vBM -hYf -isG -vBM +ylo +dbc +ylo +emt hYf wHi tIS -xQR -waj -ien -ien +yfu +ylo +spo +vXc vXc vXc umf @@ -68817,12 +56895,12 @@ hpq tZh ofi max -rFw +osN sSQ rnT -lBl +pxb jPg -pkH +ryU naS nFj nFj @@ -68856,14 +56934,14 @@ cpy eYM ofX rmC -fxZ +wfP eYM -qCs -fxZ -fxZ +jJF +wfP +wfP eYM -nvV -ait +sRM +hTe eYM cpy cpy @@ -68962,7 +57040,7 @@ cpy cpy cpy sRA -sRA +nvB abt rWS sRA @@ -69009,16 +57087,16 @@ yfu yfu bZd yfu -bZd -bZd +bOX +xoj +ylo yfu +bZd yfu bZd -xQR -vTH -gFy -nxu -ien +bZd +iPD +spo vXc vXc vXc @@ -69035,9 +57113,9 @@ nJv rCa rCa nJv -vzc -vzc -vzc +bbi +bbi +bbi xVd nJv hpq @@ -69047,9 +57125,9 @@ max ien ien ien -lBl +pxb lWj -cpU +uZc fBL nFj pRg @@ -69083,14 +57161,14 @@ cpy eYM fLM rmC -fxZ +wfP eYM -qCs -fxZ -fxZ +jJF +wfP +wfP eYM -nvV -ait +sRM +hTe eYM cpy cpy @@ -69177,13 +57255,13 @@ auG uWO vtc vtc -kBD +sRA cpy cpy sRA -sRA +bBB rWS -iXI +gtS sRA cpy cpy @@ -69236,16 +57314,16 @@ qJK qJK cQB bZd +ylo +xoj +bOX yfu +tNS bZd bZd yfu -tNS -gFy -gFy -rBV -iSx -ien +iPD +spo vXc vXc cpy @@ -69265,21 +57343,21 @@ nJv bzL qmA qmA -vzc +bbi nJv hpq ofi ofi max -rFw +osN sSQ rnT -lBl +pxb lgY oKG -pkH -pwH -sCk +ryU +uEH +vJj jIk aGS dhP @@ -69310,14 +57388,14 @@ cpy eYM eYM ivb -fxZ +wfP eYM -fxZ -fxZ -fxZ +wfP +wfP +wfP eYM -nvV -ait +sRM +hTe eYM cpy cpy @@ -69404,13 +57482,13 @@ auG uWO uWO vtc -kBD +sRA cpy cpy sRA +bQq rWS -rWS -kXo +jGh sRA sRA cpy @@ -69463,17 +57541,17 @@ yfu yfu bDr bZd -yfu -yfu -bZd +ylo +dbc +bOX +eYT bZd +yfu bZd -bOX -gFy -tNS -xQR -ien -ien +yfu +iPD +spo +vXc vXc cpy vXc @@ -69492,21 +57570,21 @@ nJv cNO qmA mdp -vzc +bbi nJv gpB ofi ofi max -rFw +osN sSQ rnT -lBl -lBl +pxb +pxb lgY oKG -pkH -pkH +ryU +ryU ryU tgq qcO @@ -69536,15 +57614,15 @@ pxb cpy eYM exQ -fxZ -fxZ +wfP +wfP eYM -fxZ -fxZ -fxZ +wfP +wfP +wfP eYM -nvV -ait +sRM +hTe eYM eYM cpy @@ -69631,11 +57709,11 @@ vtc vtc uWO vtc -kBT +sRA uiK uiK sRA -uiK +dcR sRA bKq goY @@ -69691,15 +57769,15 @@ yfu bDr yfu hjE -yfu -qpc +dbc +ylo nKj dGK qpc she egj ylo -ien +spo vXc vXc vXc @@ -69719,7 +57797,7 @@ nJv rZg mwC kIs -vzc +bbi nJv gpB ofi @@ -69728,11 +57806,11 @@ max ien ien ien -veq -lBl -lBl +pwa +pxb +pxb lgY -qMJ +udi oKG ryU ryU @@ -69763,16 +57841,16 @@ cpy cpy eYM eYM -fxZ -fxZ +wfP +wfP eYM -fxZ -fxZ -fxZ +wfP +wfP +wfP eYM -nvV -ait -ait +sRM +hTe +hTe eYM cpy cpy @@ -69859,7 +57937,7 @@ vtc vtc uWO prT -kWD +sRA tTr pUR uiK @@ -69878,8 +57956,8 @@ goY rsF sRA sRA -wms -ien +sRA +clY sjY clY clY @@ -69917,16 +57995,16 @@ jUk hYf sIS yfu -bZd -gJL -vIt -cOA -xhW +bOX +xoj +ylo +ylo +gFy hsz jnr ylo ylo -ien +spo vXc vXc vXc @@ -69952,16 +58030,16 @@ hpq ofi tZh max -rFw +osN sSQ rnT -veq -veq -lBl -lBl -lBl +pwa +pwa +pxb +pxb +pxb lgY -qMJ +udi oKG ryU ryU @@ -69990,16 +58068,16 @@ cpy cpy eYM jxF -fxZ -xZN +wfP +mzi eYM -fxZ -fxZ +wfP +wfP nxF eYM -nvV -ait -ait +sRM +hTe +hTe eYM cpy cpy @@ -70085,7 +58163,7 @@ vtc vtc vtc uWO -kLQ +sRA sRA uiK uiK @@ -70105,7 +58183,7 @@ hKE viA sRA sRA -wnl +sRA sjY sjY clY @@ -70144,17 +58222,17 @@ ylo smR wbi smR -smR -smR +ylo +dbc ylo ylo ylo ylo ylo ylo -ien -ien -ien +rMF +sql +vXc vXc yiM yiM @@ -70179,16 +58257,16 @@ hpq ofi max max -rFw +osN sSQ rnT -veq -veq -veq -lBl -lBl -lBl -lBl +pwa +pwa +pwa +pxb +pxb +pxb +pxb lgY oKG ryU @@ -70221,12 +58299,12 @@ jCh eYM eYM ivb -fxZ -fxZ +wfP +wfP eYM vBm -cHY -ait +qxk +hTe eYM cpy cpy @@ -70312,7 +58390,7 @@ uWO vtc vtc uWO -kNj +uiK sRA uiK uiK @@ -70332,7 +58410,7 @@ uiK hRu uiK sRA -wnu +sRA sjY clY clY @@ -70372,15 +58450,15 @@ xyN cnN xyN xyN -xyN +kXc lwv xyN xyN -dbc +xyN xyN xyN sql -ien +vXc yiM yiM yiM @@ -70406,7 +58484,7 @@ hpq max max max -rFw +osN sSQ vGo jZD @@ -70414,11 +58492,11 @@ jZD jZD jZD oiY -lBl -lBl -lBl +pxb +pxb +pxb lgY -qMJ +udi oKG uZc ryU @@ -70443,17 +58521,17 @@ pxb cpy eYM eYM -fxZ -fxZ -fxZ +wfP +wfP +wfP eYM -fxZ -fxZ -qCs +wfP +wfP +jJF eYM eYM -nvV -ait +sRM +hTe eYM cpy cpy @@ -70598,16 +58676,16 @@ rwE rwE hWI yiM +kXc +kXc +kXc vXc vXc vXc -vXc -vXc -dbc umf umf vXc -ien +yiM yiM yiM yiM @@ -70633,54 +58711,54 @@ hpq max max max -rFw +osN tFx -kWp +ymc tFx tFx -kWp +ymc tFx rnT -lBl -lBl -lBl -lBl -lBl +pxb +pxb +pxb +pxb +pxb lgY -qMJ +udi qDt -pkH -pkH -pkH +ryU +ryU +ryU taW -qMJ -rPQ -lBl -lBl -lBl -lBl -lBl -lBl -veq -veq -veq -vqw -vqw +udi +gVn +pxb +pxb +pxb +pxb +pxb +pxb +pwa +pwa +pwa +xqp +xqp cpy cpy eYM mMX -fxZ -fxZ -fxZ +wfP +wfP +wfP eYM -fxZ -fxZ -qCs +wfP +wfP +jJF xIK eYM -nvV -ait +sRM +hTe eYM cpy cpy @@ -70768,8 +58846,8 @@ uWO vtc bBB nFO -lhC -lxj +uiK +uiK sRA uiK uiK @@ -70788,7 +58866,7 @@ uiK uiK sRA clY -xfe +clY clY xGc lvb @@ -70824,18 +58902,18 @@ yiM yiM yiM yiM -eYT -eYT +yiM +yiM kXc vXc vXc vXc -dbc vXc vXc -ien -ien -ien +vXc +vXc +yiM +yiM yiM yiM yiM @@ -70847,10 +58925,10 @@ nJv xvQ gcX kvq -ivK +nJv wng tCg -ivK +nJv xvQ xvQ xvQ @@ -70860,54 +58938,54 @@ xVV max max ofi -rFw +osN aFf wHo xzp ojb uom -kWp +ymc rnT -lBl -lBl -lBl -veq -veq -lBl -lBl +pxb +pxb +pxb +pwa +pwa +pxb +pxb qDD rys rys rys jYK -lBl -lBl -lBl -lBl -veq -veq -lBl -veq -veq -veq -lBl -vqw -vqw +pxb +pxb +pxb +pxb +pwa +pwa +pxb +pwa +pwa +pwa +pxb +xqp +xqp cpy cpy eYM mMX -fxZ -fxZ -fxZ +wfP +wfP +wfP eYM -fxZ -fxZ -fxZ -qCs +wfP +wfP +wfP +jJF eYM -nvV -ait +sRM +hTe eYM cpy cpy @@ -71015,7 +59093,7 @@ uiK uiK uiK wKj -xfr +clY clY hJZ slO @@ -71051,17 +59129,17 @@ yiM yiM yiM yiM -arP yiM yiM -puY +kXc +vXc +vXc vXc vXc -dbc vXc vXc yiM -ien +yiM yiM yiM yiM @@ -71087,54 +59165,54 @@ max max max ofi -rFw -kZJ +osN +aFf ggS uol uol rzz -kWp +ymc rnT -lBl -lBl -veq -veq -veq -veq -veq -veq -lBl -lBl -lBl -lBl -lBl -lBl -lBl -veq -veq -veq -veq -veq -veq -lBl -lBl -veq -vqw +pxb +pxb +pwa +pwa +pwa +pwa +pwa +pwa +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pwa +pwa +pwa +pwa +pwa +pwa +pxb +pxb +pwa +xqp cpy cpy eYM oBw -fxZ -fxZ -fxZ +wfP +wfP +wfP eYM -xZN -fxZ -fxZ -qCs +mzi +wfP +wfP +jJF eYM -nvV -ait +sRM +hTe eYM cpy cpy @@ -71242,8 +59320,8 @@ rGi uiK uiK hJZ -jGh -xyf +clY +hJZ hJZ slO hJZ @@ -71279,16 +59357,16 @@ yiM yiM yiM yiM -yiM -yiM -yiM +kXc +kXc +kXc +vXc vXc vXc -dbc vXc yiM yiM -ien +yiM yiM yiM yiM @@ -71314,7 +59392,7 @@ max max max ofi -rFw +osN kPJ ggS nEq @@ -71322,46 +59400,46 @@ nEq rzz syM rnT -lBl -veq -veq -veq -vqw -veq -veq -veq -veq -veq -veq -veq -lBl -lBl -veq -veq -veq -veq -veq -veq -lBl -lBl -lBl -lBl -lBl +pxb +pwa +pwa +pwa +xqp +pwa +pwa +pwa +pwa +pwa +pwa +pwa +pxb +pxb +pwa +pwa +pwa +pwa +pwa +pwa +pxb +pxb +pxb +pxb +pxb cpy cpy eYM sdN -fxZ -fxZ -qCs +wfP +wfP +jJF eYM xIK -fxZ -fxZ +wfP +wfP rcR eYM -nvV -ait +sRM +hTe eYM cpy cpy @@ -71470,7 +59548,7 @@ sRA ien ien ien -jVS +hJZ hJZ slO hJZ @@ -71507,16 +59585,16 @@ yiM yiM yiM wdy +kXc iPR iPR iPR iPR -dbc jPv vXc -ien -ien -ien +vXc +yiM +yiM yiM yiM pWR @@ -71541,31 +59619,31 @@ max max ofi tZh -rFw +osN aFf lJU uol vbu oPR -kWp +ymc rnT -veq -veq -veq -lBl -vqw -vqw -veq -veq -vqw -vqw -vqw -veq -veq -veq -veq -veq -veq +pwa +pwa +pwa +pxb +xqp +xqp +pwa +pwa +xqp +xqp +xqp +pwa +pwa +pwa +pwa +pwa +pwa tMq jZD jZD @@ -71578,17 +59656,17 @@ cpy cpy eYM kbo -fxZ -qCs -qCs +wfP +jJF +jJF eYM xIK -qCs -fxZ +jJF +wfP rcR eYM -nvV -ait +sRM +hTe eYM cpy cpy @@ -71742,7 +59820,7 @@ nLm rMF jPv vXc -ien +vXc yiM yiM yiM @@ -71768,22 +59846,22 @@ max max ofi tZh -rFw +osN aFf xdn rzz omG oRS -kWp +ymc rnT -veq -veq -lBl -cpy -lBl -lBl -lBl -veq +pwa +pwa +pxb +cpy +pxb +pxb +pxb +pwa rAu umK sCb @@ -71791,8 +59869,8 @@ tfb tMt umK uFp -veq -veq +pwa +pwa vtN tFx tFx @@ -71805,17 +59883,17 @@ cpy cpy eYM ikb -fxZ -qCs +wfP +jJF eYM eYM eYM ntT -fxZ -fxZ +wfP +wfP eYM -nvV -ait +sRM +hTe eYM cpy cpy @@ -71969,7 +60047,7 @@ nLm nLm rVa jPv -ien +vXc vXc vXc yiM @@ -71994,22 +60072,22 @@ max max max tZh -fPt -fHB +pAj +fnA tFx -kWp -pid -kWp +ymc +xXO +ymc tFx tFx rnT -lBl -lBl +pxb +pxb cpy cpy -lBl -lBl -lBl +pxb +pxb +pxb rAu rOw tFx @@ -72041,8 +60119,8 @@ eYM jCh eYM eYM -nvV -ait +sRM +hTe eYM cpy cpy @@ -72132,9 +60210,9 @@ ien sjY hJZ ien -qtl -qMX -qXz +clY +clY +rnG kYm hJZ hJZ @@ -72195,9 +60273,9 @@ wan wEQ nLm nLm -ien -ien -ien +rMF +jPv +vXc vXc umf xTV @@ -72221,7 +60299,7 @@ cxv max max tZh -rFw +osN tFx tFx eiP @@ -72230,13 +60308,13 @@ jQC tFx tFx rnT -lBl -lBl -lBl -lBl -lBl -lBl -veq +pxb +pxb +pxb +pxb +pxb +pxb +pwa gej tFx tFx @@ -72258,17 +60336,17 @@ tFx eYM uEV sdN -fxZ -qCs -qCs +wfP +jJF +jJF eYM eYM eYM nSq -fxZ -qCs +wfP +jJF vTQ -nvV +sRM eYM eYM cpy @@ -72423,7 +60501,7 @@ uDP kDH nLm nLm -ien +spo vXc vXc vXc @@ -72448,22 +60526,22 @@ kmq cxv max max -rFw +osN aFf mFm nnv vbu vbu rzz -kWp +ymc rnT -lBl -lBl -lBl -lBl -lBl -lBl -veq +pxb +pxb +pxb +pxb +pxb +pxb +pwa gej tFx ykU @@ -72484,18 +60562,18 @@ ggS tFx eZW pET -fxZ -fxZ -fxZ -qCs +wfP +wfP +wfP +jJF xIK eYM qXs -qCs -fxZ -fxZ +jJF +wfP +wfP vTQ -nvV +sRM eYM cpy cpy @@ -72650,7 +60728,7 @@ fjP vJT pfV nLm -ien +spo vXc vXc vXc @@ -72675,7 +60753,7 @@ mBF hpq max max -rFw +osN aFf mOf nnW @@ -72684,13 +60762,13 @@ uol rzz syM rnT -lBl -lBl -lBl -lBl -lBl -veq -veq +pxb +pxb +pxb +pxb +pxb +pwa +pwa gej ymc gQy @@ -72710,19 +60788,19 @@ ggS rSh vNW pYj -fxZ -fxZ -fxZ -fxZ -fxZ +wfP +wfP +wfP +wfP +wfP waz eYM qLk -fxZ -fxZ -fxZ +wfP +wfP +wfP uIF -nvV +sRM eYM cpy cpy @@ -72876,9 +60954,9 @@ tUM uOs uOs vJT -nLm -ien -ien +pMd +spo +vXc vXc jue wYa @@ -72902,14 +60980,14 @@ kbS hpq max max -rFw +osN aFf mOP nsr uol uol oVK -kWp +ymc vGo jZD ien @@ -72936,20 +61014,20 @@ nEq ggS tVj tFx -eTu +cLB kZq -qCs +jJF qVQ -qCs +jJF xIK eYM eYM epN -fxZ -qCs -qCs +wfP +jJF +jJF uIF -nvV +sRM eYM cpy cpy @@ -73103,8 +61181,8 @@ uOs uOs lsD wyE -nLm -ien +pMd +spo vXc vXc upz @@ -73129,7 +61207,7 @@ fnA dPP max max -rFw +osN tFx tFx nuU @@ -73172,11 +61250,11 @@ eYM eYM eYM epN -fxZ -fxZ -fxZ +wfP +wfP +wfP vTQ -nvV +sRM eYM cpy cpy @@ -73330,8 +61408,8 @@ lBj vJT whn tek -nLm -ien +pMd +spo vXc vXc vXc @@ -73356,22 +61434,22 @@ mBF hpq max max -std -fHB +gMQ +fnA tFx rIM rIM rIM tFx -fHB -fbh -fbh +fnA +veQ +veQ ien -fbh -fbh -fbh +veQ +veQ +veQ ien -fbh +veQ qLu aFf fDF @@ -73390,25 +61468,25 @@ vAW tVj tFx tFx -pjl -pjl -pjl -pjl -pjl -pjl -pjl +cpy +cpy +cpy +cpy +cpy +cpy +cpy eYM eYM -qCs +jJF gXb -qCs -qCs +jJF +jJF eYM eYM -pjl -pjl -pjl -pjl +cpy +cpy +cpy +cpy bMX "} (43,1,1) = {" @@ -73558,8 +61636,8 @@ oDu nLm nLm nLm -ien -ien +spo +vXc umf vXc vaZ @@ -73584,13 +61662,13 @@ hpq max max max -std -fbh -fbh -fbh -fbh -fbh -rJv +gMQ +veQ +veQ +veQ +veQ +veQ +xVV ofi max max @@ -73616,23 +61694,23 @@ tFx tFx tFx tFx -pjl -pjl cpy cpy cpy cpy cpy -pjl -pjl -spj +cpy +cpy +cpy +cpy +eYM eYM eYM oWK eYM eYM -pjl -pjl +cpy +cpy cpy cpy cpy @@ -73785,7 +61863,7 @@ fVB cxC rzG nLm -ien +spo vXc umf vXc @@ -73835,16 +61913,17 @@ ufS tFx tFx cpy -fHB -fbh -fbh -fbh -fbh -fbh -fbh -fbh -fbh -fHB +fnA +veQ +veQ +veQ +veQ +veQ +veQ +veQ +veQ +fnA +cpy cpy cpy cpy @@ -73852,13 +61931,12 @@ cpy cpy cpy cpy -pjl -spj +eYM iIa drd uug -spj -pjl +eYM +cpy cpy cpy cpy @@ -74012,7 +62090,7 @@ bGL koj aMI nLm -ien +spo vXc vXc vXc @@ -74082,7 +62160,7 @@ bPJ bPJ bPJ aue -wfP +nZP dnO bPJ bPJ @@ -74239,8 +62317,8 @@ sKH weR nLm nLm -ien -ien +spo +vXc vXc vXc wYa @@ -74310,7 +62388,7 @@ jba bPJ edi pXv -wfP +nZP pQq nVr bPJ @@ -74531,14 +62609,14 @@ ofi osN aQH qaT -hTe -hTe +eSW +eSW jFl aQH mJs czE -wfP -wfP +nZP +nZP wcY bPJ bPJ @@ -74758,15 +62836,15 @@ ofi osN bPJ fYD -qxk +orA ymf sHd bPJ eeb -wfP +nZP ixV -wfP -wfP +nZP +nZP uwe bPJ bPJ @@ -74991,11 +63069,11 @@ bPJ bPJ bPJ rAM -wfP -wfP -wfP -wfP -sRM +nZP +nZP +nZP +nZP +hHe bPJ cpy bMX @@ -75218,11 +63296,11 @@ cpy bPJ bPJ qxf -wfP -wfP -wfP +nZP +nZP +nZP pXv -sRM +hHe bPJ cpy bMX @@ -75445,10 +63523,10 @@ cpy cpy bPJ evu -wfP -wfP -wfP -jJF +nZP +nZP +nZP +enB hiL bPJ cpy @@ -75673,10 +63751,10 @@ cpy bPJ bPJ gfs -wfP -wfP +nZP +nZP gWc -wfP +nZP bPJ cpy bMX @@ -76127,9 +64205,9 @@ cpy cpy cpy bPJ -wfP -wfP -wfP +nZP +nZP +nZP iGD bPJ cpy @@ -76355,7 +64433,7 @@ cpy cpy bPJ bPJ -wfP +nZP ixV bPJ bPJ @@ -76582,8 +64660,8 @@ cpy cpy cpy bPJ -wfP -wfP +nZP +nZP ixV bPJ cpy @@ -76810,7 +64888,7 @@ cpy cpy bPJ ica -wfP +nZP fvn bPJ cpy @@ -77037,8 +65115,8 @@ bPJ bPJ bPJ qKV -jJF -sRM +enB +hHe bPJ cpy bMX @@ -77264,8 +65342,8 @@ fnA bPJ bPJ fCb -jJF -sRM +enB +hHe bPJ cpy bMX @@ -77491,7 +65569,7 @@ osN bPJ oeN rgS -wfP +nZP hiL bPJ cpy @@ -77718,8 +65796,8 @@ osN bPJ tXc fJr -wfP -wfP +nZP +nZP bPJ cpy bMX @@ -77945,7 +66023,7 @@ osN aQH euT fJr -wfP +nZP bPJ bPJ cpy @@ -78170,9 +66248,9 @@ max max osN bPJ -cLB +kHW cJF -wfP +nZP gkH bPJ cpy @@ -78399,7 +66477,7 @@ fnA bPJ bPJ aRB -jJF +enB bPJ bPJ cpy @@ -78626,8 +66704,8 @@ bPJ bPJ bPJ bLA -jJF -wfP +enB +nZP bPJ cpy bMX @@ -78852,8 +66930,8 @@ fnA cpy cpy bPJ -wfP -jJF +nZP +enB fvn bPJ cpy @@ -79079,9 +67157,9 @@ cpy cpy cpy bPJ -wfP +nZP uwe -sRM +hHe bPJ cpy bMX @@ -79209,20 +67287,20 @@ hhD oLz rnA pZi -ahP +fpB pQE ooG rAK oSH qSk pQE +ubH rMF xyN xyN xyN xyN xyN -xyN rMF nLm nLm @@ -79280,11 +67358,11 @@ aPu cGw wIr wIr -fnA -cxv -ofi -ofi -hov +jhY +kkq +uOd +uOd +kLO fTN fTN fTN @@ -79293,8 +67371,8 @@ fTN lvl ndZ gBv -pAj -fnA +lul +jhY wIr wIr xSA @@ -79306,9 +67384,9 @@ wIr cpy bPJ bPJ -wfP -wfP -sRM +nZP +nZP +hHe bPJ cpy bMX @@ -79436,17 +67514,17 @@ fjr bPH dox tGl -crH +miz ofd rqs uPy qGK qSk ofd +ubH spo vXc vXc -vXc mqC pwz dFg @@ -79494,10 +67572,10 @@ tSL tSL tSL tSL -dbP -cbR -cbR -dbP +fnA +uOd +uOd +fnA wIr wIr mDz @@ -79520,7 +67598,7 @@ cbR cbR cbR cbR -dbP +moe wIr wIr vDL @@ -79533,8 +67611,8 @@ wIr wIr bPJ xsN -wfP -wfP +nZP +nZP bPJ bPJ cpy @@ -79586,7 +67664,7 @@ xZw saC saC saC -qpD +saC saC bzC iAv @@ -79663,15 +67741,15 @@ fjr rZc dox tGl -crH +miz ofd qSk xeg uMO rqs ofd +ubH spo -vXc laX dFH vXc @@ -79761,7 +67839,7 @@ wIr wIr nRY uwe -wfP +nZP bPJ cpy cpy @@ -79890,15 +67968,15 @@ fjr rZc dox tGl -crH +miz ofd qSk xeg uMO rqs ofd +ubH spo -vXc rjn bVu vXc @@ -79947,7 +68025,7 @@ tSL tne kGm lML -hgo +yfR wIr tmy hYL @@ -79988,7 +68066,7 @@ lBd wIr guh bQA -wfP +nZP bPJ cpy cpy @@ -80015,10 +68093,10 @@ dLs afA saC saC -esB -sGF -dLs -fcW +saC +saC +yeS +jKu xho otQ otQ @@ -80117,15 +68195,15 @@ nQx rvx fZy hAg -crH +miz ofd qiC xeg qGK rqs ofd +ubH spo -vXc qbI qlD qpz @@ -80174,13 +68252,13 @@ lIy xNR yfS yfS -kLO +yfS cfz jmv tkf dgY cfz -cHb +aPu qzQ oLa uWT @@ -80214,7 +68292,7 @@ hhI hLx wIr oox -mzi +mlv pXv bPJ cpy @@ -80241,8 +68319,8 @@ aut dOw ajw bRN -sGF -euN +saC +saC saC yeS jKu @@ -80344,20 +68422,20 @@ spe nQx fjr rCV -crH +miz pQE pQE rAK oSH pQE pQE +ubH spo vXc vXc vXc vXc vXc -vXc yiM yiM yiM @@ -80401,13 +68479,13 @@ cKi msj msj phu -iLC +wyy tIT olz pOs olz tIT -skS +jey iXM uIk uWT @@ -80466,7 +68544,7 @@ cNV cNV cCC xho -xho +vDV uAd saC saC @@ -80496,7 +68574,7 @@ saC saC saC saC -oaj +bzC iAv jqL vTK @@ -80571,15 +68649,15 @@ ugV jXQ nQx fjr -nIu +miz ofd iiL xeg uMO oXF ofd -aPS -vXc +ubH +spo vXc vXc vXc @@ -80634,7 +68712,7 @@ tmy pfD hyf wIr -ttd +dgY aPu xgH uWT @@ -80669,7 +68747,7 @@ pfq wIr rsD bQA -wfP +nZP bPJ cpy cpy @@ -80693,7 +68771,7 @@ cNV lxW dCx dtr -xho +vDV uAd saC saC @@ -80753,11 +68831,11 @@ pjJ lCH vjW pjJ -ien +clY hJZ hJZ jqF -vne +oxt hhD ahP xyL @@ -80805,8 +68883,8 @@ ocn qGK xvW jct -qQM -vXc +ubH +spo pgm vXc yiM @@ -80894,9 +68972,9 @@ aPu mOJ wIr wIr -mzi -wfP -jJF +mlv +nZP +enB bPJ cpy cpy @@ -80920,7 +68998,7 @@ cNV fcV dCx otQ -xho +vDV uAd saC kwJ @@ -80979,12 +69057,12 @@ ylm pjJ lCH pjJ -ien -ien -ien +pjJ +clY +clY hJZ hJZ -vne +oxt fjr crH xyL @@ -81032,8 +69110,8 @@ iaY bGT xvW tRd -qQM -vXc +ubH +spo tpD qQi qQi @@ -81083,10 +69161,10 @@ tSL tSL tSL tSL -sYv -ncg -ncg -sYv +tOo +oIu +oIu +tOo wIr wIr pXz @@ -81109,7 +69187,7 @@ ncg ncg ncg ncg -sYv +mRh wIr wIr vDL @@ -81121,9 +69199,9 @@ vDL wIr wIr evu -wfP -jJF -jJF +nZP +enB +enB bPJ cpy cpy @@ -81147,7 +69225,7 @@ cNV saC otQ otQ -xho +vDV uAd xgl kwJ @@ -81207,11 +69285,11 @@ vjW lCH pjJ pjJ -pjJ -ien -ien -ien -ien +clY +clY +clY +clY +oxt fjr crH xyL @@ -81252,7 +69330,7 @@ rCV cpy fjr fjr -wsX +miz ofd oWV xeg @@ -81260,7 +69338,7 @@ qGK oWV ofd ubH -vXc +spo yiM yiM yiM @@ -81314,7 +69392,7 @@ lyD mPr hFX bCy -tOo +iUX wIr wIr hwa @@ -81323,21 +69401,21 @@ clR dne wIr wIr -dGD -lyD -mPr -mPr -mPr -mPr -mPr -mPr -nax -nax -mPr -mPr -mPr -bCy -dGD +jic +kHX +oIu +oIu +oIu +oIu +oIu +oIu +oIu +oIu +oIu +oIu +oIu +nlY +nRy wIr wIr epq @@ -81348,8 +69426,8 @@ wIr wIr qxf qxf -wfP -jJF +nZP +enB bPJ bPJ cpy @@ -81374,13 +69452,13 @@ saC saC otQ otQ -xho -uAd -dEk -xho -xho -yeS -jKu +apS +dAm +aDj +cJo +cJo +dLs +cfv xho otQ saC @@ -81434,10 +69512,10 @@ vjW hdu nCa nCa -nCa -nCa -nCa -gtS +yhK +yhK +yhK +iSf oVO nQx crH @@ -81479,15 +69557,15 @@ fjr cpy cpy fjr -crH +miz pQE pQE oFN cXm pQE pQE +ubH spo -vXc yiM yiM iBY @@ -81541,7 +69619,7 @@ mPr mPr hFX hFX -bCy +iVk bYV wIr wIr @@ -81550,7 +69628,7 @@ mpF wIr wIr rZK -lyD +jig mPr mPr mPr @@ -81574,9 +69652,9 @@ vLI wIr bPJ wLw -wfP -wfP -wfP +nZP +nZP +nZP bPJ cpy cpy @@ -81607,7 +69685,7 @@ dEk yeS yeS yeS -jKu +oML xho saC saC @@ -81656,15 +69734,15 @@ mjF gXI joJ urp -hTf -nYz -nYz -nYz -nYz -nYz -nYz -taS -vjW +gWI +sQu +sQu +sQu +sQu +ydA +ydA +hiK +sjY oxt jDO sSn @@ -81706,15 +69784,15 @@ cpy cpy cpy fjr -crH +miz ofd otj uPy uMO rmi ofd +ubH spo -vXc yiM yiM qCY @@ -81777,7 +69855,7 @@ jmv hYL rQg vdp -mPr +xAR mPr tNc gUj @@ -81801,9 +69879,9 @@ tOo bPJ bPJ fZo -wfP -wfP -wfP +nZP +nZP +nZP bPJ cpy cpy @@ -81834,7 +69912,7 @@ ejo dOw dOw dOw -fda +gTw tiQ tiQ tiQ @@ -81861,7 +69939,7 @@ mKN lko lLA jqL -tNT +cBU mvI pZy wAB @@ -81882,8 +69960,8 @@ kri kEj ldy joJ -gMe -jkO +gWI +gWI oUq oUq tVa @@ -81933,15 +70011,15 @@ cpy cpy cpy fjr -crH +miz ofd qSk xeg qGK qSk ofd +ubH spo -vXc yiM yiM qCY @@ -82004,7 +70082,7 @@ tkf hYL rQg vdp -mPr +xAR mPr tNc nax @@ -82028,9 +70106,9 @@ mnb ouj bPJ pdp -wfP -wfP -wfP +nZP +nZP +nZP bPJ cpy cpy @@ -82059,9 +70137,9 @@ saC saC saC otQ -eyh -cRN -eQu +otQ +otQ +otQ saC saC saC @@ -82167,10 +70245,10 @@ xeg qGK qSk ofd +ubH spo yiM yiM -yiM qCY uie yiM @@ -82231,7 +70309,7 @@ tkf hYL rQg vdp -mPr +xAR mPr mPr iCb @@ -82255,9 +70333,9 @@ mnb gmu nYU geT -wfP -jJF -jJF +nZP +enB +enB bPJ cpy cpy @@ -82286,7 +70364,7 @@ saC saC saC saC -oEw +yeS saC saC saC @@ -82394,10 +70472,10 @@ xeg qGK rqs ofd +ubH spo yiM yiM -yiM bYS xLY yiM @@ -82458,7 +70536,7 @@ tkf hYL rQg vdp -mPr +xAR mPr nax bjX @@ -82482,8 +70560,8 @@ mnb gmu bPJ tlB -wfP -jJF +nZP +enB bPJ bPJ cpy @@ -82513,7 +70591,7 @@ saC saC saC saC -qpD +saC saC saC saC @@ -82622,7 +70700,7 @@ wwX rqs pQE vSN -cWT +hHh cWT cWT cWT @@ -82709,8 +70787,8 @@ mnb eDq bPJ gJr -wfP -wfP +nZP +nZP bPJ cpy cpy @@ -82740,7 +70818,7 @@ saC saC saC otQ -eVg +otQ otQ saC saC @@ -82912,7 +70990,7 @@ dgY wIr wIr vdp -mPr +xAR mPr aPe ylo @@ -82936,7 +71014,7 @@ tOo bPJ bPJ pHi -wfP +nZP uIY bPJ cpy @@ -82967,7 +71045,7 @@ saC wLp kbV kbV -gPq +kbV kbV kbV saC @@ -83139,7 +71217,7 @@ tkf pfD rQg vdp -mPr +xAR mPr uXp ylo @@ -83194,9 +71272,9 @@ wLp qUQ qUQ qUQ -ezj -cSh -feF +qUQ +qUQ +sxU qUQ qUQ qUQ @@ -83234,17 +71312,17 @@ saC saC saC saC -tTv -tTv -tTv -tTv -tTv -tTv -tTv -tTv -tTv -tTv -tTv +oUq +oUq +oUq +oUq +oUq +oUq +oUq +oUq +oUq +oUq +oUq oUq hWC vcF @@ -83282,7 +71360,7 @@ xlU sjy sjy sjy -lea +drg sjy tpa tpa @@ -83423,8 +71501,8 @@ dDC dDC dDC dDC -fhQ -fpB +dDC +dDC dDC saC saC @@ -83464,14 +71542,14 @@ saC saC saC saC -tTv +oUq men xVB onM men iQb pXh -tTv +oUq oUq tTl bJN @@ -83593,7 +71671,7 @@ oLa hYL rQg vdp -mPr +xAR qbG aPe nnG @@ -83651,7 +71729,7 @@ tjg kbV tjg tjg -gPq +kbV saC saC saC @@ -83745,7 +71823,7 @@ sjy sjy uqx sjy -yat +vKJ sjy uqx sjy @@ -83878,7 +71956,7 @@ tjg kbV tjg tjg -gPq +kbV saC saC saC @@ -84105,7 +72183,7 @@ kbV xiY fKt fKt -vzd +ear tQw saC saC @@ -84274,7 +72352,7 @@ tkf pfD rQg dQQ -nax +xAR nax uvg cfT @@ -84332,7 +72410,7 @@ xiY xiY tjg tjg -gPq +kbV tjg tjg hJB @@ -84501,7 +72579,7 @@ jmv wIr wIr glV -mPr +xAR nax nax uvg @@ -84572,11 +72650,11 @@ hLY saC lmY iBI -iQe +hmV pfj -jjV +hdQ cuu -jVC +ban tiQ tiQ kEx @@ -84588,9 +72666,9 @@ saC uhx pwX pwX +qjG saC -saC -tTv +oUq men sse iZS @@ -84599,14 +72677,14 @@ wIx jfH men iQb -tTv +oUq bUN saC saC saC saC saC -tTv +oUq mVm sBH kXY @@ -84728,7 +72806,7 @@ jmv wIr wIr vdp -mPr +xAR nax nax nax @@ -84815,9 +72893,9 @@ saC yaj qjG qjG -saC -saC -tTv +qjG +pwC +oUq nHg hzV iZS @@ -84825,15 +72903,15 @@ jkJ xLi men men -tTv -tTv -tTv +oUq +oUq +oUq saC saC saC saC -tTv -tTv +oUq +oUq mVm hrl kXY @@ -84955,7 +73033,7 @@ tkf pfD rQg vdp -mPr +xAR mPr nax nax @@ -85026,33 +73104,33 @@ hLY qJE ujg iDg -iRV +hna yiu -xzu -jCQ -jWr +aWX +jef +pfj xmD xmD -jVC +bXl miH saC saC saC -qgx +cYe yaj qjG qjG -qgx -saC -tTv +rbZ +pwC +oUq men kUF gWu neI xLi men -tTv -tTv +oUq +oUq oUq oUq oUq @@ -85182,7 +73260,7 @@ tkf hYL rQg vdp -mPr +xAR mPr nax nax @@ -85257,28 +73335,28 @@ iSc wTq wTq wTq -jWB +bhh xYD kry -jjV +cxE miH saC saC saC -pwC +dhJ yaj qjG qjG -saC -saC -tTv -tTv +qjG +dhJ +oUq +oUq cUA nMX pco jzB -tTv -tTv +oUq +oUq oUq oUq ucY @@ -85371,7 +73449,7 @@ jmG oQN vBd wtT -pnu +sES vBd eVc vVS @@ -85380,11 +73458,11 @@ gwP ild xJd jwM -khd +jmG wZt jwM nPc -khd +jmG xDD xDD jmG @@ -85409,7 +73487,7 @@ oLa hYL rQg vdp -mPr +xAR mPr mPr nax @@ -85481,23 +73559,23 @@ qJE lmY iFV iDg -jey +hdQ jlh jEk -hef +bCd kmP xmD -jVC +bXl kXa saC saC saC -pwC +dhJ yaj qjG qjG -saC -saC +qjG +dhJ saC saC afL @@ -85505,7 +73583,7 @@ sfc xSE bCX iQb -tTv +oUq oUq cCL sGv @@ -85607,11 +73685,11 @@ eHF ftK pMs jEW -khd +jmG nnB fvN ful -khd +jmG xDD xDD jmG @@ -85636,7 +73714,7 @@ dgY hYL rQg vdp -mPr +xAR mPr mPr mPr @@ -85722,17 +73800,17 @@ pwC qjG yaj qjG +qjG pwC saC saC saC -saC hXt saC jkJ mIq iQb -tTv +oUq oUq vVx fHH @@ -85834,11 +73912,11 @@ jmG jmG jmG jmG -khd +jmG eNc wZy teO -khd +jmG aZj aZj jmG @@ -85854,16 +73932,16 @@ jmG xAR mPr hFX -tEu -bYV +iVU +jeD wIr wIr bZV mpF wIr wIr -rZK -gGM +jfK +jCQ mPr mPr mPr @@ -85959,7 +74037,7 @@ kwg jkJ xLi iQb -tTv +oUq oUq oUq suS @@ -86081,7 +74159,7 @@ jmG xAR mPr tEu -tOo +iUX wIr wIr pNJ @@ -86090,7 +74168,7 @@ xnp tPa wIr wIr -dGD +jIQ mcO mPr mPr @@ -86186,7 +74264,7 @@ kwg jkJ xLi nMw -tTv +oUq oUq hEJ kgR @@ -86225,7 +74303,7 @@ wcp wwM jYZ hlH -hVh +jHm jtZ lvX lvX @@ -86298,7 +74376,7 @@ qNR ifB ptp jmG -khd +jmG ycH gQV piY @@ -86413,7 +74491,7 @@ uZV neI xLi men -tTv +oUq oUq xuQ fHH @@ -87330,15 +75408,15 @@ eZF lfj lfj yje +lfj bjd -nTj -nTj -nTj +qqN +qqN sPH -nTj -nTj -nTj -cpy +hXP +qqN +qqN +qqN ien rxI nri @@ -87555,17 +75633,17 @@ tiQ bjd pqQ tdM -vFD +gqG yje +lfj bjd -nTj qqN vqe bjC -vqe +bjC isL -nTj -ien +iGl +qqN ien ien nGU @@ -87766,7 +75844,7 @@ saC cnA hdQ xmD -xQc +qjG qJE xQc qJE @@ -87784,15 +75862,15 @@ qEQ lYK hvh pqQ +lfj bjd -nTj qqN tbK oan wjP -isL -nTj -cpy +ifh +iGl +qqN ien rxI nLF @@ -87887,12 +75965,12 @@ yhi xPK oTG jmG -khd +jmG pjm opQ ydy -ydy -mUo +opQ +opQ jmG xzK xxq @@ -87992,8 +76070,8 @@ saC eBm gWg xmD -xQc -xQc +qjG +qjG qJE xQc xQc @@ -88011,15 +76089,15 @@ qEQ lYK hvh pqQ +lfj bjd -nTj -ipH -cbn -aLG +qqN +vrE +mNI tLX +igp bjC -nTj -ien +qqN ien ien rxI @@ -88117,9 +76195,9 @@ jmG uYq aVX meb -ubJ -ubJ -ubJ +meb +meb +aVX jmG hMz fWG @@ -88184,14 +76262,14 @@ aEL aEL aEL jcl -jVa +jcl jcl jcl ewp fIe fIe fIe -aWX +fIe fIe fMd ewt @@ -88217,9 +76295,9 @@ mZU wXA hwG syg -jjV xmD -cHu +xmD +tMV jVC qJE qJE @@ -88238,15 +76316,15 @@ qEQ lYK hvh pqQ +lfj bjd -nTj -icM -cbn +qqN +hNj mNI -tLX +hXZ +igp bjC -nTj -ien +qqN ien ien ien @@ -88339,14 +76417,14 @@ yhi spM jmG jmG -khd +jmG vBd brk rdF ild -ban -ubJ -ubJ +jwM +iTn +iUT jmG hMz fWG @@ -88445,8 +76523,8 @@ yiu cpZ kda qJE -xQc -xQc +qjG +qjG xmD mPY qJE @@ -88465,15 +76543,15 @@ eZF lYK hvh eZF +lfj bjd -nTj -ipH +qqN vrE aJr -tLX +hYk +igp bjC -nTj -ien +qqN ien ien cpy @@ -88569,7 +76647,7 @@ jmG eSy ild dco -ild +iSF jwM liN ild @@ -88672,7 +76750,7 @@ yiu wvB xmD qJE -xQc +qjG xmD xmD mPY @@ -88692,15 +76770,15 @@ pqQ lYK hvh eZF +lfj bjd -nTj qqN -gzw +tbK spn nCC -isL -nTj -cpy +igA +iGl +qqN cpy cpy cpy @@ -88741,7 +76819,7 @@ gwR sjy sjy sjy -gEA +cxn sjy sjy cBs @@ -88793,8 +76871,8 @@ onX wiE uFF wFB -xqi -ild +jCU +iSF ild ild hOB @@ -88864,7 +76942,7 @@ aLJ dDS iZI fFw -fib +iZI jcl aCQ dXd @@ -88873,10 +76951,10 @@ jcl swu hwt jcl -eHp +swu dHk -gKD -gpu +vAu +lkx tra saC saC @@ -88898,8 +76976,8 @@ yiu yiu wvB xmD -xQc -xQc +qjG +qjG hdQ iQe vIS @@ -88919,15 +76997,15 @@ pqQ lYK hvh pqQ +lfj bjd -nTj qqN +tbK bjC -gNN +hZn bjC -isL -nTj -cpy +iGl +qqN cpy cpy cpy @@ -89091,7 +77169,7 @@ iZI dDS iZI iZI -svW +iZI jcl aCQ evx @@ -89100,11 +77178,11 @@ nTl jcl hwt jcl -svW +iZI dYX -hRy -gqG -gOo +lXC +lXC +lXC saC saC saC @@ -89125,7 +77203,7 @@ yiu uul dZG xmD -seF +qjG qJE lrQ dRy @@ -89146,15 +77224,15 @@ eZF lYK hvh pqQ +lfj bjd -nTj -nTj -nTj -nTj -nTj -nTj -nTj -cpy +qqN +qqN +qqN +qqN +qqN +qqN +qqN cpy cpy cpy @@ -89204,7 +77282,7 @@ pNs xGf xGf whR -pGl +kqb mOG qcA fpl @@ -89247,7 +77325,7 @@ yhi yhi fxl six -gbq +jCU jwM jwM ild @@ -89318,7 +77396,7 @@ fib fXU fib fib -svW +aLJ jcl aCQ emr @@ -89327,12 +77405,12 @@ nTl dBe qZB jVa -svW +nno dYX -jcl -jcl -gOG -heF +lXC +lXC +lXC +aCQ saC saC saC @@ -89352,7 +77430,7 @@ yiu hLY knt kOF -seF +qjG qJE iQe baG @@ -89373,14 +77451,14 @@ pqQ lYK hvh qEQ -bjd -moe -moe -moe -moe -moe -moe -moe +lfj +mPj +mPj +mPj +mPj +mPj +mPj +mPj cpy cpy cpy @@ -89545,20 +77623,20 @@ iZI dDS iZI iZI -svW +aLJ jVa fLP wSb nTl nTl -jcl +akk hwt jcl -svW +nno dYX -hRy -grz -uNT +lXC +lXC +lXC aCQ saC saC @@ -89575,11 +77653,11 @@ vjl vjl xzu xzu -xzu +aWX hLY knt -xQc -xQc +qjG +qjG srf dRy yiu @@ -89600,16 +77678,16 @@ pqQ lYK hvh qEQ +lfj +mPj +hgo +hNV +gOo +lfj bjd -bjd -bjd -bjd -bjd -bjd -bjd -alI -alI -alI +mPj +mPj +cpy cpy cpy cpy @@ -89658,7 +77736,7 @@ mUS jxT kqb kqb -pGl +kqb kqb kqb bJp @@ -89781,7 +77859,7 @@ fLA eVW hwt jcl -svW +nno rbW tiQ tiQ @@ -89805,7 +77883,7 @@ vlq xwZ syg iqz -xQc +qjG qJE qJE aox @@ -89827,16 +77905,16 @@ pqQ lYK hvh eZF -bjd -okj +lfj +vJw vJw apd apd lfj +lfj +lfj bjd -bjd -bjd -alI +mPj cpy cpy cpy @@ -89885,7 +77963,7 @@ oMn oYZ pTl pKX -nlY +xBS xXg kqb kqb @@ -89928,7 +78006,7 @@ wiE wiE uGl six -sUj +jCU jwM ild vBd @@ -90007,12 +78085,12 @@ ojn swu swu hwt -aEL -svW +jcl +iZI dYX -hRy -ifh -gOo +lXC +lXC +lXC aCQ lXC saC @@ -90061,9 +78139,9 @@ woU woU xXv lfj -bjd -bjd -alI +lfj +lfj +mPj cpy cpy cpy @@ -90088,9 +78166,9 @@ uog xBo nnz oVD -plz +xjF xFp -sYk +xZP uNB xUQ ykc @@ -90112,8 +78190,8 @@ djM xAZ pTl uNB -nlY -ylr +xBS +xXg wIi kqb kqb @@ -90155,7 +78233,7 @@ yhi wiE spM jmG -aza +iRV jwM ild vBd @@ -90234,21 +78312,21 @@ swu swu swu hwt -aEL -cWH -dYX -jcl jcl -gOG -heU +swu +dYX +lXC +lXC +lXC +aCQ lXC ijO saC tiQ -tiQ saC saC -tiQ +saC +saC tiQ saC saC @@ -90259,7 +78337,7 @@ vjl qjG hLY knt -whK +tMV xmD hna yiu @@ -90278,8 +78356,8 @@ pAw tiQ bjd yje -lYK -jZE +eMm +grz hNP hNP hNP @@ -90289,8 +78367,8 @@ vFD dfK xXv lfj -bjd -alI +lfj +mPj cpy cpy cpy @@ -90310,14 +78388,14 @@ xjF vSc xjF gCO -hKz +meM wgW wgW jRT jRT ryO xFp -sYk +xZP uNB xUQ xAZ @@ -90339,8 +78417,8 @@ xOw ykT xUQ uNB -xOB -tTD +xBS +xXg ylr ylr ylr @@ -90382,7 +78460,7 @@ wiE wEW hzu wFB -bhh +jCU ild jwM vBd @@ -90462,20 +78540,20 @@ swu swu hwt jcl -mrL +swu dYX -hRy -oUC -uNT +lXC +lXC +lXC aCQ lXC lXC tiQ tiQ -icr -kHX -iSF -jeD +saC +saC +saC +saC tiQ saC saC @@ -90505,19 +78583,19 @@ jpm tiQ bjd yje -abL -qsW +lfj +eMm qsW qsW qsW cgn mqx jZE -vFD +hZK pqQ qpd -bjd -alI +gOo +mPj cpy cpy cpy @@ -90544,7 +78622,7 @@ jRT sgV ryO xFp -sYk +xZP uNB pTl xAZ @@ -90566,8 +78644,8 @@ xOw ykT xUQ uNB -xOB -tTD +xBS +dCJ tTD sKJ sKJ @@ -90609,7 +78687,7 @@ taw aYQ gJM jmG -sBz +jCU ild jwM okA @@ -90689,7 +78767,7 @@ eAz lFk hwt jcl -mrL +swu dYX tiQ tiQ @@ -90698,11 +78776,11 @@ hfi lXC lXC tiQ -hTI -aCQ -dhJ -iTn -jfK +saC +saC +saC +saC +saC tiQ jEq saC @@ -90713,7 +78791,7 @@ yiu yiu lDc lMN -whK +tMV mnw qjG yiu @@ -90740,11 +78818,11 @@ tyU lYK mqx mqx -hvh +icr pqQ qpd -bjd -alI +gOo +mPj cpy cpy cpy @@ -90771,7 +78849,7 @@ ydb val ryO xFp -sYk +xZP uNB pTl ykT @@ -90793,8 +78871,8 @@ xOw xAZ pTl uNB -xOB -tTD +xBS +dCJ tTD sKJ tTD @@ -90827,7 +78905,7 @@ fdb vNk vNk vNk -eds +vNk vNk mFA eur @@ -90916,20 +78994,20 @@ nTl nTl nTl lXC -eHp +swu dYX -jcl -jcl -jcl +lXC +lXC +lXC aCQ lXC lXC tiQ -sBg -hXP -tra -tCX -tFZ +saC +saC +saC +saC +saC tiQ lKl xmD @@ -90940,7 +79018,7 @@ leH lmu lDr lNI -aqo +qET ugN pHT lXQ @@ -90956,10 +79034,10 @@ xmD knt xmD skk -tiQ -bjd +lTi bjd bjd +eRg wRf bjd hKI @@ -90967,11 +79045,11 @@ hFA lYK mqx mqx -hvh +icr pqQ qpd -bjd -alI +gOo +mPj cpy cpy cpy @@ -90996,9 +79074,9 @@ wgW wgW ydb xRQ -plz +xjF xFp -sYk +xZP pKX pKX vnq @@ -91020,8 +79098,8 @@ qCd dak pKX pKX -xOB -tTD +xBS +dCJ tTD tTD tTD @@ -91061,7 +79139,7 @@ lot aTR xvl xvl -cxE +jmG jmG jmG xzK @@ -91143,20 +79221,20 @@ nTl nTl nTl lXC -eLx +lXC dYX -jcl -jcl -jcl +lXC +lXC +lXC aCQ lXC lXC tiQ tiQ -idq -jcl -jcl -kkq +saC +saC +saC +saC tiQ jEu xmD @@ -91182,9 +79260,9 @@ xVq liK gyC pfj -pvz -tiQ -tiQ +ayX +qjG +lTi bjd rMD eZF @@ -91194,11 +79272,11 @@ bjd lYK mqx mqx -hvh +icr pqQ qpd -bjd -alI +gOo +mPj cpy cpy cpy @@ -91225,8 +79303,8 @@ jRc xjF xjF xFp -aDj -xAw +xZP +pKX nvt ykT kGb @@ -91246,9 +79324,9 @@ fyl kcd oig cLQ -xAw -lCn -tTD +pKX +xBS +dCJ tTD tTD tTD @@ -91288,8 +79366,8 @@ icW eHI xvl xvl -akk -xxq +teD +xzK xxq xxq xxq @@ -91372,19 +79450,19 @@ nTl nTl nTl dYX -jcl -jcl -jcl +lXC +lXC +lXC aCQ lXC lXC -hME -hUY -ier -hRW -kHX -jcl -dAG +saC +saC +saC +saC +saC +saC +saC tiQ jYE xYD @@ -91392,8 +79470,8 @@ knt lAD saC saC -seF -xQc +cWH +cHy saC saC myV @@ -91421,22 +79499,22 @@ cZH jDN mqx nJW -hvh +icr eZF lfj -bjd -alI +lfj +mPj cpy cpy cpy cpy cpy ien -tNQ -qSH -qSH +cRN +vTx +vTx trV -pZo +eQu vGp eKe xFp @@ -91474,9 +79552,9 @@ qqx pag bia gYH -lDE -tTD -tTD +xBS +dCJ +rnB tTD tTD tTD @@ -91516,7 +79594,7 @@ agM xvl xvl xWO -fWG +hMz fWG fWG fWG @@ -91605,13 +79683,13 @@ hRW egD lXC lXC -iZI -hVk -igp -swu -iUT -kHX -evx +saC +saC +saC +saC +saC +saC +saC xQc lAK xYD @@ -91622,7 +79700,7 @@ ncA lDN pxN saC -xQc +cHy sdR lNA wXA @@ -91640,7 +79718,7 @@ pfj qjG qjG bjd -nRy +lfj pqQ bjd fSf @@ -91648,11 +79726,11 @@ cZH mqx mqx mqx -hvh +icr pqQ qpd -bjd -alI +gOo +mPj cpy cpy cpy @@ -91663,7 +79741,7 @@ vGB vGB wDj wDj -pZo +fcW vGp vGp eKe @@ -91701,10 +79779,10 @@ mTK sdC dvp uKy -lDE -tTD -tTD -tTD +xBS +dCJ +rnB +rnB tTD tTD cpy @@ -91742,8 +79820,8 @@ xgA bsG vOT xvB -xWO -fWG +otS +hMz fWG fWG fWG @@ -91831,14 +79909,14 @@ enr elx elx elx -elx -hNj -hXA -fvQ -fDC -gwk -hgQ -exB +aDS +saC +saC +saC +saC +saC +saC +saC xQc xmD xmD @@ -91849,7 +79927,7 @@ nwR oem maj maj -seF +cWH knt hna yiu @@ -91867,19 +79945,19 @@ oyK ayX vKP bjd -osm +lfj pqQ bjd fSf -cZH -cgn -mqx -mqx -hvh +heU +qsW +qsW +qsW +idq pqQ qpd -bjd -alI +gOo +mPj cpy cpy wDj @@ -91906,8 +79984,8 @@ qSH qSH qSH qSH -cfv -xAw +sPh +pKX xnI ykT djM @@ -91927,11 +80005,11 @@ art gNn mgb rUe -xAw +pKX xBS -tTD -tTD -tTD +dCJ +rnB +rnB tTD tTD tTD @@ -91969,8 +80047,8 @@ aSZ acE vOT xvB -xWO -fWG +otS +hMz fWG fWG cpy @@ -92059,18 +80137,18 @@ lXC lXC lXC lXC -iZI -hXP -egY -cHy -jIQ -bXl -jcl +saC +saC +saC +saC +saC +saC +saC xQc tMV tMV kne -xQc +cHy mkb lnd xYD @@ -92099,14 +80177,14 @@ pqQ bjd bjd bjd -lYK -mqx -mqx -hvh +rMD +rMD +rMD +lfj pqQ qpd -bjd -alI +gOo +mPj cpy cpy wDj @@ -92133,7 +80211,7 @@ rMR qSH qSH vGp -onj +sPh pKX pKX pKn @@ -92155,10 +80233,10 @@ heX jMk pKX pKX -xOB -tTD -tTD -tTD +xBS +dCJ +rnB +rnB tTD tTD tTD @@ -92196,8 +80274,8 @@ eMD qZd xvl xvl -xWO -fWG +otS +hMz fWG cpy uwT @@ -92286,24 +80364,24 @@ tra egY lXC lXC -hNV -hXZ -igp -swu -iUX -tCX -jcl +saC +saC +saC +saC +saC +saC +saC xQc jjV xmD knt -xQc +cHy mlp nxQ oKK pDM qTE -xQc +cHy wyA hna yiu @@ -92321,21 +80399,21 @@ jWB lKl lTi bjd -lul +lfj dfK qKO xLr -xXv -lYK -mqx -mqx -hvh +hfE +xsE +xsE +xsE +lfj pqQ qpd -bjd -alI -alI -alI +mPj +mPj +mPj +mPj wDj cPg eJR @@ -92360,7 +80438,7 @@ qSH qSH vGp vGp -onj +sPh uNB xUQ ykT @@ -92382,11 +80460,11 @@ iGn uOp bSI uNB -xOB -tTD -tTD -tTD -tTD +xBS +dCJ +rnB +rnB +rnB sKJ tTD tTD @@ -92423,8 +80501,8 @@ xje ffb xvl xvl -xWO -fWG +otS +hMz dBD sps sps @@ -92507,30 +80585,30 @@ nTl nTl nTl vQn -aEL -aEL -jcl +lXC +lXC +lXC aCQ lXC lXC -iZI -hYk -aDS -tra -tCX -jcl -cYe +saC +saC +saC +saC +saC +saC +saC tiQ dXo xYD kpE -xQc -xQc +cHy +cHy nEd piW pEp -xQc -xQc +cHy +cHy knt hna qFW @@ -92549,18 +80627,18 @@ asH tiQ bjd dXX -pWC rMD -bjd -pqQ -lYK -mqx -mqx -hvh +rMD +lao eZF -bjd -bjd -bjd +xsE +xsE +xsE +lfj +eZF +lfj +lfj +lfj bjd bjd mPj @@ -92587,7 +80665,7 @@ qSH qSH vGp vGp -onj +sPh uNB xUQ xAZ @@ -92609,9 +80687,9 @@ sAp vHw fEF uNB -xOB -tTD -tTD +xBS +dCJ +rnB sKJ sKJ sKJ @@ -92650,8 +80728,8 @@ xhD acE vOT xvB -xWO -fWG +otS +hMz qjO ylo ylo @@ -92734,29 +80812,29 @@ nTl nno lXC hwt -jVa -jcl -jcl +lXC +lXC +lXC fkW lXC lXC hOy -tiQ -qyp -jcl -jcl -bCd +saC +saC +saC +saC +saC tiQ jEu xmD xYD kpE xmD -xQc -xQc -seF -xQc -xQc +cHy +cHy +cWH +cHy +cHy uQi knt juw @@ -92775,19 +80853,19 @@ seF tiQ tiQ bjd +eZq +gwk +lfj bjd -bjd -bjd -bjd -qEQ -abL -cgn -mqx -hvh -dfK -woU -woU -woU +yje +xsE +xsE +xsE +xsE +hRy +hVk +hVk +hVk xnX gib mPj @@ -92798,7 +80876,7 @@ iMQ wDj wDj wDj -pRv +fda xSv xSv xSv @@ -92814,7 +80892,7 @@ qSH vGp vGp vGp -onj +sPh uNB pTl xAZ @@ -92836,9 +80914,9 @@ xOw snb rkV uNB -xOB -tTD -hrk +xBS +xXg +vlT vlT vlT vlT @@ -92877,8 +80955,8 @@ xgA acE vOT xvB -xWO -fWG +otS +hMz qjO ylo byR @@ -92961,18 +81039,18 @@ nTl lXC swu hwt -jVa -jcl -jcl +lXC +lXC +lXC aCQ lXC lXC tiQ -hZn -aAb -hRW -kHX -jhY +saC +saC +saC +saC +saC tiQ jjV xmD @@ -93001,20 +81079,20 @@ xmD kss tiQ tiQ -alI -alI -alI -alI +bjd +fvQ +fvQ +bjd bjd lwr -rSs -abL -cgn -jZE -hNP -hNP -hNP -efM +hgQ +xsE +xsE +xsE +xsE +xsE +xsE +xsE caV pcV xLr @@ -93023,9 +81101,9 @@ gjA rtX wDj wDj -vGp -vGp -pZo +xFp +xFp +fcW qSH qSH qSH @@ -93041,7 +81119,7 @@ qSH vGp vGp kqp -sYk +xZP uNB xUQ xnI @@ -93063,8 +81141,8 @@ bSa xAZ xUQ uNB -nlY -vlT +xBS +xXg wIi tTK tTK @@ -93104,8 +81182,8 @@ xjY qZd xvl xvl -xWO -fWG +otS +hMz qjO ylo sGj @@ -93195,11 +81273,11 @@ aCQ lXC lXC tiQ -hZK -aCQ -fMT -iVk -jic +saC +saC +saC +saC +saC tiQ jjV iQe @@ -93228,21 +81306,21 @@ pfj vAX kJc tiQ -saC -saC -saC -alI +bjd +fDC +gNN +bjd bjd gzY ama -kbb -abL -qsW -qsW -qsW -qsW +hgQ xsE -eZF +xsE +xsE +xsE +xsE +xsE +iLC tyb lao iJE @@ -93252,7 +81330,7 @@ vGB mTa oqn pdv -umR +fcW qSH qSH qSH @@ -93268,7 +81346,7 @@ vGp vGp kqp xFp -xAw +pKX pKX pKX kIZ @@ -93290,7 +81368,7 @@ vfK rie xUQ pKX -nlY +xBS xXg tTK tTK @@ -93331,8 +81409,8 @@ qIE wog xvl xvl -xWO -fWG +otS +hMz qjO jOF oiR @@ -93415,18 +81493,18 @@ hwt jcl swu hwt -hRy -ifh -gOo +lXC +lXC +lXC aCQ lXC lXC tiQ tiQ -igA -tCX -iVU -jig +saC +saC +saC +saC tiQ xmD hna @@ -93453,22 +81531,22 @@ xSL txo jef pfj -tfK +eHp tiQ -saC -saC -saC -alI +bjd +fDC +gNN +fDC bjd bjd -lfj -eTQ -woU -aLf +rMD +hRy +hVk ubF ubF -woU -woU +ubF +hVk +hVk otx qYy mPj @@ -93479,7 +81557,7 @@ vGB ncz kKj pgp -umR +fcW qSH qSH vGp @@ -93558,8 +81636,8 @@ xhD bsG kEQ xvB -xWO -fWG +otS +hMz qjO ylo hYf @@ -93640,19 +81718,19 @@ mrL lFd qZB jVa -pgJ +mrL hwt -jcl -jcl -gRV -hfE lXC lXC -swu -tiQ -mRh -iGl +lXC +fkW +lXC +lXC +mrL tiQ +saC +saC +saC tiQ tiQ vjl @@ -93680,22 +81758,22 @@ csy wWc pfj syV -kJc -tiQ -saC -saC -saC -alI -alI -bjd -bjd -bjd -bjd -bjd -bjd +eLx +vKP bjd +rMD +gOo +rMD bjd bjd +rMD +xsE +xsE +xsE +xsE +rMD +rMD +rMD bjd bjd mPj @@ -93706,7 +81784,7 @@ wDj nff oxT pgG -umR +fcW qSH vGp vGp @@ -93785,8 +81863,8 @@ xhD bsG vOT xvB -xWO -fWG +otS +hMz qjO ylo ylo @@ -93867,18 +81945,18 @@ swu swu hwt jcl -svW +nno hwt -hRy -oUC -uNT -aCQ lXC lXC -swu -swu -swu -jcl +lXC +aCQ +lXC +nno +mrL +saC +saC +saC saC saC saC @@ -93908,18 +81986,18 @@ lmY sfM hLY xmD -tiQ -saC -saC -saC -saC -alI -alI -alI -alI -alI -alI -alI +qjG +bjd +rMD +lfj +lfj +fDC +bjd +rMD +xsE +xsE +xsE +rMD wDj wDj wDj @@ -93930,10 +82008,10 @@ vGB moQ vGB wDj -qSH -qSH -qSH -umR +xFp +xFp +dHF +feF vGp vGp vGp @@ -94012,8 +82090,8 @@ icW eHI xvl xvl -xwv -fWG +otS +hMz gBy mUr kSm @@ -94094,17 +82172,17 @@ jcl swu hwt jcl -svW +nno bye tiQ tiQ tiQ -aCQ -lXC -lXC -iRY -swu -jcl +fmB +nno +nno +lFd +saC +saC saC saC saC @@ -94135,30 +82213,30 @@ lmY sfM hLY ayX -tiQ -saC -saC -saC -saC -saC -saC -saC -saC -saC -saC +qjG +bjd +lfj +gOo +gOo +rMD +lao +rMD +xsE +xsE +rMD wDj wDj -saC -saC -saC +sOL +sOL +sOL wDj eOT sOL sOL sOL wDj -qSH -qSH +xFp +ezj qSH umR vGp @@ -94240,7 +82318,7 @@ acE kEQ xvl otS -fWG +hMz fWG fWG uwT @@ -94312,7 +82390,7 @@ fib gbQ jYj jYj -eFP +elx fIe egd ewt @@ -94321,16 +82399,16 @@ nTl jcl hwt jcl -svW +lXC hwt -hRy -ifh -eMm -aCQ lXC lXC -swu -swu +lXC +fmB +nno +nno +saC +saC saC saC saC @@ -94361,22 +82439,22 @@ xME hYg jWB eIT -kJc -tiQ -saC -saC -saC -saC -saC -saC -saC -saC -saC -saC +eLx +qjG +bjd +fMT +gOo +gOo +lfj +lao +hME +hTI +hTI +ier wDj -saC -saC -saC +sOL +eJR +eJR arN vGB sOL @@ -94384,8 +82462,8 @@ eJR eJR fQD vGB -qSH -qSH +xFp +ezj qSH umR vGp @@ -94467,7 +82545,7 @@ acE kEQ meK otS -fWG +hMz cpy cpy uwT @@ -94539,20 +82617,20 @@ iZI dDS iZI iZI -svW +lXC jVa fLP iOt nTl nTl -dBe -qZB -jVa -svW +ame hwt jcl -jcl -eRg +lXC +hwt +lXC +lXC +nno fmB saC saC @@ -94586,23 +82664,23 @@ sDf kpo wQs llG -noD +dAG lMF -iDg -tiQ -saC -saC -saC -saC -saC -saC -saC -saC -saC -saC +nqQ +lTi +bjd +fMT +lfj +gRV +rMD +bjd +bjd +hUY +hXA +hUY wDj -saC -saC +sOL +eJR iJE hZg vGB @@ -94611,8 +82689,8 @@ rlB azE qYp vGB -qSH -qSH +xFp +ezj qSH umR vGp @@ -94694,7 +82772,7 @@ bsG kEQ xvl otS -fWG +hMz cpy uwT uwT @@ -94766,7 +82844,7 @@ iZI dDS iZI iZI -svW +lXC jcl aCQ evx @@ -94775,11 +82853,11 @@ nTl jcl hwt jcl -svW +lXC hwt -hRy -gqG -eZq +lXC +lXC +nno saC saC saC @@ -94817,18 +82895,18 @@ jWB teE mpQ tiQ -saC -saC -saC -saC -saC -saC -saC -saC -saC -saC +bjd +bjd +gOG +heF +bjd +bjd +bjd +bjd +bjd +bjd wDj -saC +sOL hhJ sOL sOL @@ -94838,8 +82916,8 @@ rlB eJR loS vGB -qSH -qSH +xFp +ezj qSH umR vGp @@ -94920,8 +82998,8 @@ icW oPW xvl xvl -naZ -uwT +otS +hMz fWG uwT uwT @@ -94993,7 +83071,7 @@ iZI dDS iZI iZI -fib +iZI jcl aCQ equ @@ -95002,7 +83080,7 @@ jcl dXd fbC fIe -ame +oWq fDn fDH fFE @@ -95045,18 +83123,18 @@ cXi tiQ tiQ saC -saC -saC -saC -saC +bjd +bjd +bjd +bjd saC saC saC saC saC wDj -saC -saC +wDj +wDj ygD jJI uaY @@ -95065,8 +83143,8 @@ eJR eJR xJg wDj -aij -qSH +dsl +ezj qSH umR qSH @@ -95147,8 +83225,8 @@ xhD bsG kEQ xvB -xWO -uwT +otS +hMz fWG fWG uwT @@ -95292,8 +83370,8 @@ rlB eJR rtX wvX -nTp -qSH +esB +ezj qSH umR qSH @@ -95374,8 +83452,8 @@ xhD bsG kEQ xvB -xWO -uwT +otS +hMz fWG fWG uwT @@ -95519,8 +83597,8 @@ rlB iJE rtX ygD -nTp -qSH +esB +ezj qSH umR qSH @@ -95594,15 +83672,15 @@ uuD uuD lFO gIg -wrY +imT xvl xvl xjY qZd xvl xvl -xWO -uwT +otS +hMz uwT fWG fWG @@ -95682,7 +83760,7 @@ jcl jcl evx jcl -jVa +jcl jcl jcl jcl @@ -95746,8 +83824,8 @@ hcE sjQ wJk wDj -bcl -qSH +euN +ezj qSH umR qSH @@ -95821,15 +83899,15 @@ evv uuD uuD xXg -rIr +imT xvl xvl xje wog xvl xvl -xWO -uwT +otS +hMz uwT uwT fWG @@ -95973,8 +84051,8 @@ eJR azE wJk wDj -qSH -qSH +xFp +ezj qSH qQB qDV @@ -96055,8 +84133,8 @@ xhD bsG kEQ xvB -xWO -uwT +otS +hMz uwT uwT fWG @@ -96200,8 +84278,8 @@ eJR eJR mnx wDj -qSH -qSH +xFp +ezj qSH qSH umR @@ -96282,13 +84360,13 @@ xgA bsG vOT xvB -xWO -uxT +otS +hMz +kIV sps sps sps -dsl -uwT +ppD uwT uwT uwT @@ -96427,8 +84505,8 @@ sOL sOL sOL wDj -ltB -ltB +eyh +eyh ltB ltB bBW @@ -96502,20 +84580,20 @@ rOg qJH qUs xXg -iQR +imT xvl xvl xjY qZd xvl xvl -xWO -ppD +otS +hMz +nIu xkO xkO xkO -tKC -uwT +qpD uwT uwT uwT @@ -96729,20 +84807,20 @@ rOg jrJ qUs xXg -wrY +imT xvl xvl xje wog xvl xvl -xWO -ppD +otS +hMz +nIu xkO vZn waD -ujy -uwT +tKC uwT uwT uwT @@ -96899,7 +84977,7 @@ vGp cpy pZo tWt -nSE +tDS tDS thc thc @@ -96956,20 +85034,20 @@ bHT qiw uuD xXg -wrY +imT xvB kEQ xhD bsG kEQ xvB -xWO -ppD +otS +hMz +nIu xkO xkO xkO -tKC -uwT +qpD uwT uwT uwT @@ -97183,20 +85261,20 @@ bJG uuD uuD xXg -wrY +imT xvB vOT xhD bsG vOT xvB -xWO -ppD +otS +hMz +nIu xkO ipC waD -ujy -uwT +tKC uwT uwT uwT @@ -97410,20 +85488,20 @@ uuD uuD viG xXg -wrY +imT xvl xvl jVz wog xvl xvl -xWO -ppD +otS +hMz +nIu xkO xkO xkO -tKC -fWG +qpD uwT uwT uwT @@ -97637,20 +85715,20 @@ xXg xXg xXg xXg -wrY +imT xvl xvl icW oPW xvl xvl -xWO -kIV +otS +hMz +oaj mUr mUr -apS wRk -fWG +ujy uwT uwT uwT @@ -97788,7 +85866,7 @@ dVo ipf qxX qUq -kNM +guj nLW oBx nTg @@ -97864,15 +85942,15 @@ xXg xXg xXg xXg -wrY +imT xvl xvl lot vdz xvl xvl -xWO -uwT +otS +hMz uwT uwT fWG @@ -98098,8 +86176,8 @@ swF fzV qqR cUG -xWO -uwT +iQR +hMz uwT uwT fWG @@ -98325,8 +86403,8 @@ xRw uaI eHB cUG -tti -uwT +xzK +cpk uwT uwT fWG @@ -99414,10 +87492,10 @@ mgk vUb gdO gdO -psC +gdO ayn wHY -psC +gdO gdO tTK tTK @@ -101000,7 +89078,7 @@ umR vGp vGp vGp -uRb +fhQ gdO gdO gdO @@ -101227,16 +89305,16 @@ umR qSH vGp vGp -hHh -sYk +eKe +xZP gdO ene vTW puJ ufU gdO -nlY -ylr +xBS +xXg ylr ylr ylr @@ -101462,8 +89540,8 @@ vDa pej ufU raj -xOB -sKJ +lDE +dCJ tTD rnB rnB @@ -101689,8 +89767,8 @@ vDa pej rMr gdO -lCn -tTD +lDE +dCJ rnB rnB rnB @@ -101917,7 +89995,7 @@ puJ pej uBd lDE -rnB +dCJ rnB rnB rnB @@ -102144,7 +90222,7 @@ puJ pej qZC lDE -rnB +dCJ rnB rnB rnB @@ -102363,15 +90441,15 @@ vGp vGp vGp vGp -gBb +ioD gdO ene pej pej ufU gdO -xBS -rnB +lDE +dCJ rnB rnB rnB @@ -102597,8 +90675,8 @@ pej pej ufU raj -xOB -rnB +lDE +dCJ rnB rnB rnB @@ -102817,7 +90895,7 @@ vGp vGp kQJ tPb -onj +sPh gdO ene puJ @@ -102825,7 +90903,7 @@ puJ ene gdO cpy -rnB +dCJ rnB rnB rnB @@ -103475,14 +91553,14 @@ nSF qUL sct sIA -tth -uDM -tth -uXj -uXj -tth -xkk -tth +dpS +qbP +dpS +xyu +xyu +dpS +gdr +dpS fLa bpZ wRL @@ -103702,18 +91780,18 @@ rfi rAc shq sKi -tBM -uKQ -uKQ -uKQ -uKQ -qjX -uKQ -hFm -dqn -dic -uDM -tth +hLR +dNx +dNx +dNx +dNx +nHF +dNx +oeV +rtA +tbt +qbP +dpS nPn lVs bUy @@ -103929,18 +92007,18 @@ rgA rBZ slK sYh -tCR +wHw sjS wAf skE skE nQY kNR -tCR -fTm -uKQ -uKQ -rrB +wHw +tkN +dNx +dNx +xTb srE qUL iQt @@ -104156,18 +92234,18 @@ rii rCi ssU sKi -tDm -uKQ -uKQ -uKQ -uKQ -uKQ -uKQ -iSu -vbk -xNu -vjs -tIF +bYC +dNx +dNx +dNx +dNx +dNx +dNx +ykj +wKH +rUS +jAX +goC ifg gOZ hZc @@ -104383,14 +92461,14 @@ qUL pTW swr sIA -tIF -vjs -wBr -uXj -uXj -tIF -tzm -tIF +goC +jAX +tna +xyu +xyu +goC +ucs +goC twB fXn uSB diff --git a/maps/map_files/LV624/LV624.dmm b/maps/map_files/LV624/LV624.dmm index 9c84577bbbdd..98c56dde6098 100644 --- a/maps/map_files/LV624/LV624.dmm +++ b/maps/map_files/LV624/LV624.dmm @@ -119,15 +119,11 @@ /turf/closed/wall/cult, /area/lv624/ground/caves/east_caves) "aaR" = ( -/turf/open/floor{ - icon_state = "cult" - }, +/turf/open/floor/cult, /area/lv624/ground/caves/east_caves) "aaS" = ( /obj/effect/decal/remains/xeno, -/turf/open/floor{ - icon_state = "cult" - }, +/turf/open/floor/cult, /area/lv624/ground/caves/east_caves) "aaT" = ( /turf/open/gm/dirtgrassborder/grassdirt_corner2/north_east, @@ -153,9 +149,7 @@ /area/lv624/ground/caves/north_central_caves) "aba" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor{ - icon_state = "cult" - }, +/turf/open/floor/cult, /area/lv624/ground/caves/east_caves) "abb" = ( /turf/open/gm/river, @@ -206,9 +200,7 @@ /obj/structure/largecrate/supply/ammo/shotgun{ pixel_y = 8 }, -/turf/open/floor/wood{ - icon_state = "wood-broken" - }, +/turf/open/floor/wood/wood_broken, /area/lv624/ground/caves/north_central_caves) "abo" = ( /obj/effect/landmark/hunter_primary, @@ -225,10 +217,7 @@ "abt" = ( /obj/structure/surface/rack, /obj/item/weapon/gun/rifle/lmg, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/lv624/ground/barrens/north_east_barrens/ceiling) "abv" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, @@ -246,9 +235,7 @@ /turf/open/gm/dirt, /area/lv624/ground/caves/west_caves) "abz" = ( -/turf/open/gm/dirt{ - icon_state = "desert0" - }, +/turf/open/gm/dirt/desert0, /area/lv624/ground/barrens/south_eastern_barrens) "abA" = ( /obj/structure/closet/crate/freezer/rations, @@ -277,9 +264,7 @@ unacidable = 1 }, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor{ - icon_state = "cult" - }, +/turf/open/floor/cult, /area/lv624/ground/caves/west_caves) "abH" = ( /obj/effect/landmark/good_item, @@ -310,17 +295,13 @@ /turf/closed/wall/rock/brown, /area/lv624/ground/caves/south_central_caves) "abU" = ( -/turf/open/floor/wood{ - icon_state = "wood-broken3" - }, +/turf/open/floor/wood/wood_broken3, /area/lv624/ground/caves/north_central_caves) "abV" = ( /obj/structure/pipes/standard/simple/hidden/cyan, /obj/effect/landmark/xeno_hive_spawn, /obj/effect/landmark/ert_spawns/groundside_xeno, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/main_hall) "abW" = ( /obj/effect/landmark/hunter_primary, @@ -331,9 +312,7 @@ /turf/open/floor/plating, /area/lv624/lazarus/quartstorage) "abZ" = ( -/turf/open/floor/wood{ - icon_state = "wood-broken" - }, +/turf/open/floor/wood/wood_broken, /area/lv624/ground/caves/north_central_caves) "aca" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, @@ -342,9 +321,7 @@ /area/lv624/ground/caves/west_caves) "acb" = ( /obj/structure/window/framed/colony, -/turf/open/floor/plating{ - icon_state = "platebotc" - }, +/turf/open/floor/plating/platebotc, /area/lv624/lazarus/quartstorage) "acc" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ @@ -375,9 +352,7 @@ }, /obj/item/tool/kitchen/knife/butcher, /obj/effect/decal/cleanable/blood, -/turf/open/floor/wood{ - icon_state = "wood-broken4" - }, +/turf/open/floor/wood/wood_broken4, /area/lv624/ground/caves/north_central_caves) "acl" = ( /obj/structure/window/framed/colony, @@ -385,18 +360,14 @@ /area/lv624/lazarus/chapel) "acm" = ( /obj/structure/window/framed/colony, -/turf/open/floor{ - icon_state = "bar" - }, +/turf/open/floor/bar, /area/lv624/lazarus/canteen) "acn" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper Nexus Dome Canteen"; req_access_txt = "100" }, -/turf/open/floor{ - icon_state = "bar" - }, +/turf/open/floor/bar, /area/lv624/lazarus/canteen) "aco" = ( /obj/effect/landmark/crap_item, @@ -423,20 +394,14 @@ req_access_txt = "100"; req_one_access = null }, -/turf/open/floor{ - icon_state = "bar" - }, +/turf/open/floor/bar, /area/lv624/lazarus/canteen) "act" = ( /obj/structure/window/framed/colony, -/turf/open/floor{ - icon_state = "bar" - }, +/turf/open/floor/bar, /area/lv624/lazarus/kitchen) "acu" = ( -/turf/open/floor{ - icon_state = "cult" - }, +/turf/open/floor/cult, /area/lv624/ground/caves/west_caves) "acv" = ( /obj/structure/machinery/door/airlock/almayer/medical/glass/colony{ @@ -444,29 +409,21 @@ req_access_txt = "100"; req_one_access = null }, -/turf/open/floor{ - icon_state = "bar" - }, +/turf/open/floor/bar, /area/lv624/lazarus/kitchen) "acw" = ( /obj/structure/foamed_metal, -/turf/open/shuttle{ - icon_state = "floor4" - }, +/turf/open/shuttle/bright_red, /area/lv624/lazarus/crashed_ship_containers) "acy" = ( /obj/effect/decal/remains/xeno, -/turf/open/floor{ - icon_state = "cult" - }, +/turf/open/floor/cult, /area/lv624/ground/caves/west_caves) "acB" = ( /obj/structure/machinery/constructable_frame{ icon_state = "box_1" }, -/turf/open/shuttle{ - icon_state = "floor4" - }, +/turf/open/shuttle/bright_red, /area/lv624/lazarus/crashed_ship_containers) "acC" = ( /obj/structure/surface/table/woodentable/poor, @@ -501,9 +458,7 @@ /turf/open/gm/dirt, /area/lv624/lazarus/crashed_ship_containers) "acJ" = ( -/turf/open/shuttle{ - icon_state = "floor4" - }, +/turf/open/shuttle/bright_red, /area/lv624/ground/barrens/north_east_barrens) "acK" = ( /obj/structure/tunnel{ @@ -513,24 +468,18 @@ /area/lv624/ground/caves/west_caves) "acL" = ( /obj/item/tool/shovel, -/turf/open/shuttle{ - icon_state = "floor4" - }, +/turf/open/shuttle/bright_red, /area/lv624/lazarus/crashed_ship_containers) "acM" = ( /obj/structure/bed/chair/dropship/pilot, -/turf/open/shuttle{ - icon_state = "floor4" - }, +/turf/open/shuttle/bright_red, /area/lv624/lazarus/crashed_ship_containers) "acN" = ( /obj/structure/bed/chair/dropship/pilot{ dir = 1 }, /obj/effect/decal/cleanable/blood/drip, -/turf/open/shuttle{ - icon_state = "floor4" - }, +/turf/open/shuttle/bright_red, /area/lv624/lazarus/crashed_ship_containers) "acO" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, @@ -539,9 +488,7 @@ /area/lv624/ground/caves/south_central_caves) "acQ" = ( /obj/item/device/flashlight/on, -/turf/open/shuttle{ - icon_state = "floor4" - }, +/turf/open/shuttle/bright_red, /area/lv624/lazarus/crashed_ship_containers) "acS" = ( /obj/effect/landmark/hunter_primary, @@ -550,32 +497,24 @@ "acT" = ( /obj/effect/decal/cleanable/blood, /obj/effect/landmark/corpsespawner/wygoon, -/turf/open/shuttle{ - icon_state = "floor4" - }, +/turf/open/shuttle/bright_red, /area/lv624/lazarus/crashed_ship_containers) "acU" = ( /obj/item/tool/pickaxe, -/turf/open/shuttle{ - icon_state = "floor4" - }, +/turf/open/shuttle/bright_red, /area/lv624/lazarus/crashed_ship_containers) "acV" = ( /obj/structure/surface/rack, /obj/item/ammo_magazine/rifle/nsg23/extended, /obj/item/weapon/gun/rifle/nsg23/no_lock, -/turf/open/shuttle{ - icon_state = "floor4" - }, +/turf/open/shuttle/bright_red, /area/lv624/lazarus/crashed_ship_containers) "acW" = ( /obj/effect/decal/cleanable/blood/drip, /obj/item/ammo_magazine/rifle/nsg23{ current_rounds = 0 }, -/turf/open/shuttle{ - icon_state = "floor4" - }, +/turf/open/shuttle/bright_red, /area/lv624/lazarus/crashed_ship_containers) "acX" = ( /obj/effect/decal/remains/xeno, @@ -591,9 +530,7 @@ /area/lv624/ground/caves/south_central_caves) "acZ" = ( /obj/structure/closet/secure_closet/freezer/meat, -/turf/open/floor/wood{ - icon_state = "wood-broken3" - }, +/turf/open/floor/wood/wood_broken3, /area/lv624/ground/caves/north_central_caves) "ada" = ( /obj/structure/surface/table/reinforced/prison, @@ -602,9 +539,7 @@ /obj/item/stack/sheet/wood{ amount = 16 }, -/turf/open/shuttle{ - icon_state = "floor4" - }, +/turf/open/shuttle/bright_red, /area/lv624/lazarus/crashed_ship_containers) "adc" = ( /obj/effect/landmark/crap_item, @@ -612,21 +547,15 @@ /area/lv624/ground/caves/south_central_caves) "add" = ( /obj/item/clothing/suit/storage/hazardvest, -/turf/open/shuttle{ - icon_state = "floor4" - }, +/turf/open/shuttle/bright_red, /area/lv624/lazarus/crashed_ship_containers) "ade" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor{ - icon_state = "cult" - }, +/turf/open/floor/cult, /area/lv624/ground/caves/west_caves) "adf" = ( /obj/effect/landmark/corpsespawner/wygoon, -/turf/open/shuttle{ - icon_state = "floor4" - }, +/turf/open/shuttle/bright_red, /area/lv624/lazarus/crashed_ship_containers) "adg" = ( /obj/structure/girder/displaced, @@ -686,18 +615,13 @@ /area/lv624/ground/barrens/north_east_barrens) "adx" = ( /obj/structure/xenoautopsy/tank/larva, -/turf/open/shuttle{ - icon_state = "floor4" - }, +/turf/open/shuttle/bright_red, /area/lv624/lazarus/crashed_ship_containers) "ady" = ( /turf/closed/wall/cult, /area/lv624/ground/caves/south_central_caves) "adA" = ( -/turf/open/floor/airless{ - dir = 5; - icon_state = "asteroidfloor" - }, +/turf/open/floor/airless/asteroidfloor/northeast, /area/lv624/ground/barrens/north_east_barrens) "adC" = ( /obj/structure/surface/rack, @@ -707,10 +631,7 @@ /obj/item/stack/sheet/mineral/platinum{ pixel_x = -6 }, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/lv624/ground/barrens/north_east_barrens/ceiling) "adD" = ( /obj/structure/surface/rack, @@ -718,10 +639,7 @@ amount = 2 }, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/lv624/ground/barrens/north_east_barrens/ceiling) "adE" = ( /obj/structure/surface/rack, @@ -734,18 +652,12 @@ amount = 30 }, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/lv624/ground/barrens/north_east_barrens/ceiling) "adF" = ( /obj/structure/surface/rack, /obj/item/tool/shovel, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/lv624/ground/barrens/north_east_barrens/ceiling) "adH" = ( /obj/effect/decal/remains/xeno, @@ -763,18 +675,14 @@ name = "Mining Storage"; req_access_txt = "100" }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/lv624/ground/barrens/north_east_barrens/ceiling) "adJ" = ( /obj/effect/landmark/monkey_spawn, /turf/open/gm/dirt, /area/lv624/ground/caves/west_caves) "adM" = ( -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/lv624/ground/barrens/north_east_barrens/ceiling) "adN" = ( /obj/structure/surface/rack, @@ -785,10 +693,7 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/lv624/ground/barrens/north_east_barrens/ceiling) "adP" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_membrane, @@ -806,33 +711,22 @@ pixel_x = -4 }, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/lv624/ground/barrens/north_east_barrens/ceiling) "adS" = ( /obj/structure/xenoautopsy/tank/hugger, -/turf/open/shuttle{ - icon_state = "floor4" - }, +/turf/open/shuttle/bright_red, /area/lv624/lazarus/crashed_ship_containers) "adT" = ( /obj/structure/surface/rack, /obj/item/stack/sheet/mineral/silver{ amount = 20 }, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/lv624/ground/barrens/north_east_barrens/ceiling) "adU" = ( /obj/effect/landmark/crap_item, -/turf/open/floor/airless{ - dir = 5; - icon_state = "asteroidfloor" - }, +/turf/open/floor/airless/asteroidfloor/northeast, /area/lv624/ground/barrens/north_east_barrens) "adX" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, @@ -865,10 +759,7 @@ dir = 8; icon_state = "p_stair_full" }, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv624/ground/caves/south_east_caves) "aec" = ( /obj/structure/surface/table/woodentable/poor, @@ -893,10 +784,7 @@ /obj/item/weapon/gun/rifle/mar40{ pixel_y = -3 }, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/lv624/ground/barrens/north_east_barrens/ceiling) "aej" = ( /obj/structure/flora/jungle/vines/heavy, @@ -913,17 +801,11 @@ /area/lv624/ground/caves/south_east_caves) "ael" = ( /obj/structure/fence, -/turf/open/floor{ - dir = 9; - icon_state = "warning" - }, +/turf/open/floor/warning/northwest, /area/lv624/ground/barrens/containers) "aem" = ( /obj/structure/fence, -/turf/open/floor{ - dir = 1; - icon_state = "warning" - }, +/turf/open/floor/warning/north, /area/lv624/ground/barrens/containers) "aen" = ( /obj/structure/fence, @@ -952,50 +834,32 @@ /area/lv624/ground/caves/west_caves) "aet" = ( /obj/structure/fence, -/turf/open/floor{ - dir = 8; - icon_state = "warning" - }, +/turf/open/floor/warning/west, /area/lv624/ground/barrens/containers) "aev" = ( /turf/open/gm/dirtgrassborder/grassdirt_corner2/north_west, /area/lv624/ground/caves/sand_temple) "aex" = ( -/turf/open/floor{ - dir = 1; - icon_state = "bot" - }, +/turf/open/floor/bot/north, /area/lv624/ground/barrens/containers) "aey" = ( /obj/structure/cargo_container/wy/left, -/turf/open/floor{ - dir = 1; - icon_state = "bot" - }, +/turf/open/floor/bot/north, /area/lv624/ground/barrens/containers) "aez" = ( /turf/open/gm/river, /area/lv624/ground/caves/west_caves) "aeA" = ( /obj/structure/cargo_container/wy/mid, -/turf/open/floor{ - dir = 1; - icon_state = "bot" - }, +/turf/open/floor/bot/north, /area/lv624/ground/barrens/containers) "aeC" = ( /obj/structure/cargo_container/wy/right, -/turf/open/floor{ - dir = 1; - icon_state = "bot" - }, +/turf/open/floor/bot/north, /area/lv624/ground/barrens/containers) "aeD" = ( /obj/structure/cargo_container/horizontal/blue/top, -/turf/open/floor{ - dir = 1; - icon_state = "bot" - }, +/turf/open/floor/bot/north, /area/lv624/ground/barrens/containers) "aeE" = ( /obj/structure/largecrate/random, @@ -1032,10 +896,7 @@ color = "#b29082"; icon_state = "p_stair_full" }, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv624/ground/caves/sand_temple) "aeS" = ( /obj/effect/landmark/hunter_primary, @@ -1059,10 +920,7 @@ /area/lv624/ground/barrens/containers) "afd" = ( /obj/structure/fence, -/turf/open/floor{ - dir = 4; - icon_state = "warning" - }, +/turf/open/floor/warning/east, /area/lv624/ground/barrens/containers) "aff" = ( /obj/structure/cargo_container/wy/left, @@ -1089,10 +947,7 @@ icon_state = "p_stair_full" }, /obj/structure/platform/mineral/sandstone/runed, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv624/ground/caves/sand_temple) "afk" = ( /obj/item/ammo_casing, @@ -1119,30 +974,19 @@ "afr" = ( /obj/structure/ore_box, /obj/structure/fence, -/turf/open/floor{ - dir = 4; - icon_state = "warning" - }, +/turf/open/floor/warning/east, /area/lv624/ground/barrens/containers) "afu" = ( /obj/item/ammo_casing, -/obj/structure/machinery/floodlight/landing{ - name = "bolted floodlight" - }, -/turf/open/floor/plating{ - dir = 9; - icon_state = "warnplate" - }, +/obj/structure/machinery/colony_floodlight, +/turf/open/floor/plating/warnplate/northwest, /area/lv624/ground/barrens/central_barrens) "afv" = ( /obj/structure/surface/table/reinforced{ dir = 1; flipped = 1 }, -/turf/open/floor/plating{ - dir = 1; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/north, /area/lv624/ground/barrens/central_barrens) "afw" = ( /obj/structure/surface/table/reinforced{ @@ -1150,25 +994,14 @@ flipped = 1 }, /obj/item/ammo_casing, -/turf/open/floor/plating{ - dir = 1; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/north, /area/lv624/ground/barrens/central_barrens) "afx" = ( -/turf/open/floor/plating{ - dir = 1; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/north, /area/lv624/ground/barrens/central_barrens) "afy" = ( -/obj/structure/machinery/floodlight/landing{ - name = "bolted floodlight" - }, -/turf/open/floor/plating{ - dir = 5; - icon_state = "warnplate" - }, +/obj/structure/machinery/colony_floodlight, +/turf/open/floor/plating/warnplate/northeast, /area/lv624/ground/barrens/central_barrens) "afE" = ( /obj/effect/decal/remains/xeno, @@ -1177,10 +1010,7 @@ dir = 8; icon_state = "p_stair_full" }, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv624/ground/caves/south_east_caves) "afF" = ( /obj/effect/decal/cleanable/blood, @@ -1191,10 +1021,7 @@ dir = 8; flipped = 1 }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/west, /area/lv624/ground/barrens/central_barrens) "afI" = ( /obj/effect/landmark/crap_item, @@ -1224,10 +1051,7 @@ dir = 4; flipped = 1 }, -/turf/open/floor/plating{ - dir = 4; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/east, /area/lv624/ground/barrens/central_barrens) "afR" = ( /obj/structure/ore_box, @@ -1249,10 +1073,7 @@ flipped = 1 }, /obj/effect/decal/remains/human, -/turf/open/floor/plating{ - dir = 8; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/west, /area/lv624/ground/barrens/central_barrens) "afX" = ( /obj/item/ammo_casing, @@ -1353,10 +1174,7 @@ /turf/open/gm/dirt, /area/lv624/ground/barrens/east_barrens) "ags" = ( -/turf/open/floor/plating{ - dir = 8; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/west, /area/lv624/ground/barrens/central_barrens) "agt" = ( /obj/structure/surface/table/reinforced{ @@ -1376,16 +1194,10 @@ pixel_x = -6 }, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/lv624/ground/barrens/north_east_barrens/ceiling) "agv" = ( -/turf/open/floor/plating{ - dir = 4; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/east, /area/lv624/ground/barrens/central_barrens) "agz" = ( /obj/structure/cargo_container/horizontal/blue/middle, @@ -1409,9 +1221,7 @@ /area/lv624/ground/barrens/central_barrens) "agF" = ( /obj/item/ammo_casing, -/obj/structure/machinery/floodlight/landing{ - name = "bolted floodlight" - }, +/obj/structure/machinery/colony_floodlight, /turf/open/floor/plating, /area/lv624/ground/barrens/central_barrens) "agG" = ( @@ -1434,10 +1244,7 @@ /area/lv624/ground/barrens/east_barrens) "agQ" = ( /obj/item/ammo_casing, -/turf/open/floor/plating{ - dir = 8; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/west, /area/lv624/ground/barrens/central_barrens) "agR" = ( /obj/structure/surface/table/reinforced{ @@ -1483,10 +1290,7 @@ /area/lv624/ground/barrens/central_barrens) "agW" = ( /obj/item/ammo_casing, -/turf/open/floor/plating{ - dir = 4; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/east, /area/lv624/ground/barrens/central_barrens) "agX" = ( /turf/open/gm/dirt, @@ -1549,15 +1353,11 @@ /area/lv624/ground/barrens/west_barrens/ceiling) "ahy" = ( /obj/structure/inflatable, -/turf/open/floor{ - icon_state = "redyellowfull" - }, +/turf/open/floor/redyellowfull, /area/lv624/ground/barrens/west_barrens/ceiling) "ahz" = ( /obj/structure/inflatable/door, -/turf/open/floor{ - icon_state = "redyellowfull" - }, +/turf/open/floor/redyellowfull, /area/lv624/ground/barrens/west_barrens/ceiling) "ahB" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, @@ -1572,29 +1372,18 @@ /area/lv624/ground/caves/south_west_caves) "ahJ" = ( /obj/structure/girder, -/turf/open/floor{ - icon_state = "redyellowfull" - }, +/turf/open/floor/redyellowfull, /area/lv624/ground/barrens/west_barrens/ceiling) "ahK" = ( /obj/item/device/analyzer, -/turf/open/floor{ - icon_state = "redyellowfull" - }, +/turf/open/floor/redyellowfull, /area/lv624/ground/barrens/west_barrens/ceiling) "ahL" = ( -/turf/open/floor{ - icon_state = "redyellowfull" - }, +/turf/open/floor/redyellowfull, /area/lv624/ground/barrens/west_barrens/ceiling) "ahM" = ( -/obj/structure/machinery/floodlight/landing{ - name = "bolted floodlight" - }, -/turf/open/floor/plating{ - dir = 10; - icon_state = "warnplate" - }, +/obj/structure/machinery/colony_floodlight, +/turf/open/floor/plating/warnplate/southwest, /area/lv624/ground/barrens/central_barrens) "ahN" = ( /obj/structure/surface/table/reinforced{ @@ -1602,9 +1391,7 @@ }, /obj/effect/decal/remains/human, /obj/effect/decal/cleanable/blood, -/turf/open/floor/plating{ - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate, /area/lv624/ground/barrens/central_barrens) "ahO" = ( /obj/effect/decal/remains/human, @@ -1614,29 +1401,18 @@ /obj/structure/surface/table/reinforced{ flipped = 1 }, -/turf/open/floor/plating{ - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate, /area/lv624/ground/barrens/central_barrens) "ahR" = ( -/turf/open/floor/plating{ - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate, /area/lv624/ground/barrens/central_barrens) "ahS" = ( /obj/item/ammo_casing, -/turf/open/floor/plating{ - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate, /area/lv624/ground/barrens/central_barrens) "ahT" = ( -/obj/structure/machinery/floodlight/landing{ - name = "bolted floodlight" - }, -/turf/open/floor/plating{ - dir = 6; - icon_state = "warnplate" - }, +/obj/structure/machinery/colony_floodlight, +/turf/open/floor/plating/warnplate/southeast, /area/lv624/ground/barrens/central_barrens) "ahV" = ( /obj/effect/landmark/crap_item, @@ -1644,71 +1420,47 @@ /area/lv624/ground/caves/south_west_caves) "ahW" = ( /obj/item/tool/shovel, -/turf/open/floor{ - icon_state = "redyellowfull" - }, +/turf/open/floor/redyellowfull, /area/lv624/ground/barrens/west_barrens/ceiling) "aie" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor{ - icon_state = "redyellowfull" - }, +/turf/open/floor/redyellowfull, /area/lv624/ground/barrens/west_barrens/ceiling) "aif" = ( /obj/effect/landmark/crap_item, -/turf/open/floor{ - icon_state = "redyellowfull" - }, +/turf/open/floor/redyellowfull, /area/lv624/ground/barrens/west_barrens/ceiling) "aih" = ( /obj/structure/largecrate/random, /obj/item/tool/crowbar/red, -/turf/open/floor/plating{ - dir = 9; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/northwest, /area/lv624/ground/barrens/east_barrens/ceiling) "aij" = ( /obj/structure/filingcabinet, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/plating{ - dir = 1; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/north, /area/lv624/ground/barrens/east_barrens/ceiling) "aik" = ( /obj/structure/surface/table, /obj/item/ashtray/plastic, /obj/item/stack/flag/red, /obj/item/weapon/gun/pistol/holdout, -/turf/open/floor/plating{ - dir = 1; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/north, /area/lv624/ground/barrens/east_barrens/ceiling) "aim" = ( /obj/structure/surface/table, /obj/item/device/flashlight/lamp, -/turf/open/floor/plating{ - dir = 1; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/north, /area/lv624/ground/barrens/east_barrens/ceiling) "ain" = ( /obj/structure/machinery/computer3, -/turf/open/floor/plating{ - dir = 1; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/north, /area/lv624/ground/barrens/east_barrens/ceiling) "aio" = ( /obj/structure/machinery/constructable_frame{ icon_state = "box_1" }, -/turf/open/floor/plating{ - dir = 1; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/north, /area/lv624/ground/barrens/east_barrens/ceiling) "aip" = ( /obj/structure/surface/table, @@ -1716,25 +1468,17 @@ amount = 40 }, /obj/effect/spawner/random/tech_supply, -/turf/open/floor/plating{ - dir = 1; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/north, /area/lv624/ground/barrens/east_barrens/ceiling) "aiq" = ( /obj/structure/surface/table, /obj/item/stack/cable_coil/random, /obj/effect/spawner/random/tech_supply, -/turf/open/floor/plating{ - dir = 5; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/northeast, /area/lv624/ground/barrens/east_barrens/ceiling) "aiu" = ( /obj/effect/landmark/corpsespawner/miner, -/turf/open/floor{ - icon_state = "redyellowfull" - }, +/turf/open/floor/redyellowfull, /area/lv624/ground/barrens/west_barrens/ceiling) "aiv" = ( /obj/structure/flora/bush/ausbushes/ppflowers, @@ -1743,57 +1487,37 @@ "aiw" = ( /obj/structure/machinery/constructable_frame, /obj/effect/spawner/random/bomb_supply, -/turf/open/floor/plating{ - dir = 9; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/northwest, /area/lv624/ground/barrens/east_barrens/ceiling) "aix" = ( /obj/item/frame/apc, -/turf/open/floor/plating{ - dir = 1; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/north, /area/lv624/ground/barrens/east_barrens/ceiling) "aiy" = ( /obj/structure/machinery/portable_atmospherics/powered/scrubber, -/turf/open/floor/plating{ - dir = 1; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/north, /area/lv624/ground/barrens/east_barrens/ceiling) "aiz" = ( /obj/structure/disposalpipe/junction{ dir = 4 }, -/turf/open/floor/plating{ - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate, /area/lv624/ground/barrens/east_barrens/ceiling) "aiA" = ( /obj/structure/extinguisher_cabinet{ pixel_y = 30 }, -/turf/open/floor/plating{ - dir = 1; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/north, /area/lv624/ground/barrens/east_barrens/ceiling) "aiB" = ( /obj/effect/spawner/random/tech_supply, -/turf/open/floor/plating{ - dir = 1; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/north, /area/lv624/ground/barrens/east_barrens/ceiling) "aiD" = ( /obj/structure/sink{ pixel_y = 30 }, -/turf/open/floor/plating{ - dir = 1; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/north, /area/lv624/ground/barrens/east_barrens/ceiling) "aiF" = ( /obj/item/weapon/butterfly/switchblade, @@ -1816,67 +1540,48 @@ /obj/structure/surface/table, /obj/item/stack/medical/ointment, /obj/effect/spawner/random/toolbox, -/turf/open/floor/plating{ - dir = 4; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/east, /area/lv624/ground/barrens/east_barrens/ceiling) "aiK" = ( /obj/structure/window/framed/colony, -/turf/open/floor{ - icon_state = "platebot" - }, +/turf/open/floor/platebot, /area/lv624/ground/barrens/east_barrens/ceiling) "aiL" = ( /obj/structure/machinery/door/airlock/almayer/secure/colony{ name = "Water Filtration Plant"; req_access_txt = "100" }, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/lv624/ground/barrens/east_barrens/ceiling) "aiM" = ( -/turf/open/floor/plating{ - dir = 10; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/southwest, /area/lv624/ground/barrens/east_barrens/ceiling) "aiO" = ( /obj/structure/disposalpipe/segment{ dir = 4; icon_state = "pipe-c" }, -/turf/open/floor/plating{ - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate, /area/lv624/ground/barrens/east_barrens/ceiling) "aiP" = ( /obj/structure/disposalpipe/junction{ dir = 8; icon_state = "pipe-j2" }, -/turf/open/floor/plating{ - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate, /area/lv624/ground/barrens/east_barrens/ceiling) "aiQ" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/plating{ - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate, /area/lv624/ground/barrens/east_barrens/ceiling) "aiR" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, /obj/effect/spawner/random/tech_supply, -/turf/open/floor/plating{ - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate, /area/lv624/ground/barrens/east_barrens/ceiling) "aiS" = ( /obj/item/tool/kitchen/knife/butcher, @@ -1887,25 +1592,18 @@ dir = 2; icon_state = "pipe-c" }, -/turf/open/floor/plating{ - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate, /area/lv624/ground/barrens/east_barrens/ceiling) "aiU" = ( /obj/structure/machinery/portable_atmospherics/powered/scrubber, -/turf/open/floor/plating{ - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate, /area/lv624/ground/barrens/east_barrens/ceiling) "aiV" = ( -/turf/open/floor/plating{ - dir = 6; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/southeast, /area/lv624/ground/barrens/east_barrens/ceiling) "aja" = ( /obj/effect/decal/cleanable/blood/splatter, -/turf/open/gm/dirtgrassborder/east, +/turf/open/gm/dirtgrassborder/grassdirt_corner2/south_east, /area/lv624/ground/jungle/west_jungle) "ajc" = ( /obj/structure/blocker/forcefield/multitile_vehicles, @@ -1916,10 +1614,7 @@ "ajd" = ( /obj/structure/surface/rack, /obj/item/tool/pickaxe, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/lv624/ground/barrens/north_east_barrens/ceiling) "ajg" = ( /obj/structure/flora/bush/ausbushes, @@ -1944,10 +1639,7 @@ /obj/item/stack/sheet/animalhide/xeno{ name = "Lurker Hide" }, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv624/ground/caves/sand_temple) "ajp" = ( /obj/structure/flora/bush/ausbushes/ppflowers, @@ -1990,10 +1682,7 @@ /area/lv624/ground/river/east_river) "ajx" = ( /obj/effect/landmark/lv624/fog_blocker, -/turf/open/floor/plating{ - dir = 9; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/northwest, /area/lv624/ground/river/central_river) "ajA" = ( /obj/structure/fence, @@ -2002,10 +1691,7 @@ /area/lv624/lazarus/landing_zones/lz1) "ajD" = ( /obj/effect/landmark/lv624/fog_blocker, -/turf/open/floor/plating{ - dir = 5; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/northeast, /area/lv624/ground/river/east_river) "ajE" = ( /obj/effect/landmark/lv624/fog_blocker, @@ -2033,25 +1719,16 @@ /area/lv624/ground/river/east_river) "ajJ" = ( /obj/structure/grille, -/turf/open/floor/plating{ - dir = 8; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/west, /area/lv624/ground/river/central_river) "ajL" = ( /obj/structure/grille, -/turf/open/floor/plating{ - dir = 4; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/east, /area/lv624/ground/river/east_river) "ajM" = ( /obj/structure/fence, /obj/effect/landmark/lv624/fog_blocker, -/turf/open/floor/plating{ - dir = 1; - icon_state = "asteroidwarning" - }, +/turf/open/floor/plating/asteroidwarning/north, /area/lv624/ground/river/central_river) "ajR" = ( /obj/effect/decal/mecha_wreckage/ripley{ @@ -2062,10 +1739,7 @@ /area/lv624/ground/barrens/west_barrens) "ajS" = ( /obj/effect/landmark/lv624/fog_blocker, -/turf/open/floor/plating{ - dir = 1; - icon_state = "asteroidwarning" - }, +/turf/open/floor/plating/asteroidwarning/north, /area/lv624/ground/river/central_river) "ajT" = ( /obj/effect/landmark/lv624/fog_blocker, @@ -2073,16 +1747,10 @@ /area/lv624/ground/river/central_river) "ajU" = ( /obj/structure/fence, -/turf/open/floor/plating{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/plating/asteroidfloor/north, /area/lv624/ground/river/central_river) "ajV" = ( -/turf/open/floor/plating{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/plating/asteroidfloor/north, /area/lv624/ground/river/central_river) "ajW" = ( /turf/open/floor/plating, @@ -2113,20 +1781,14 @@ icon_state = "pipe-c" }, /obj/structure/grille, -/turf/open/floor/plating{ - dir = 8; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/west, /area/lv624/ground/river/central_river) "akc" = ( /obj/structure/grille{ density = 0; icon_state = "brokengrille" }, -/turf/open/floor/plating{ - dir = 4; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/east, /area/lv624/ground/river/east_river) "akd" = ( /obj/effect/landmark/hunter_primary, @@ -2135,8 +1797,7 @@ "akh" = ( /obj/item/trash/candy, /obj/structure/machinery/power/apc{ - dir = 1; - name = "Corporate Lobby APC" + dir = 1 }, /obj/structure/machinery/door_control{ id = "secure_outer_blast"; @@ -2169,10 +1830,7 @@ "akp" = ( /obj/structure/grille, /obj/effect/landmark/lv624/fog_blocker, -/turf/open/floor/plating{ - dir = 4; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/east, /area/lv624/ground/river/east_river) "akq" = ( /obj/structure/flora/bush/ausbushes/var3/fernybush, @@ -2185,10 +1843,7 @@ "akt" = ( /obj/structure/disposalpipe/junction, /obj/structure/grille, -/turf/open/floor/plating{ - dir = 8; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/west, /area/lv624/ground/river/central_river) "aku" = ( /obj/structure/disposalpipe/segment{ @@ -2196,10 +1851,7 @@ icon_state = "pipe-c" }, /obj/structure/grille, -/turf/open/floor/plating{ - dir = 4; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/east, /area/lv624/ground/river/east_river) "akv" = ( /obj/structure/disposalpipe/trunk{ @@ -2216,33 +1868,21 @@ /area/lv624/lazarus/landing_zones/lz1) "akA" = ( /obj/structure/grille, -/turf/open/floor/plating{ - dir = 8; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/west, /area/lv624/ground/river/west_river) "akC" = ( /obj/structure/grille, -/turf/open/floor/plating{ - dir = 4; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/east, /area/lv624/ground/river/central_river) "akD" = ( /obj/structure/disposalpipe/segment, /obj/structure/grille, -/turf/open/floor/plating{ - dir = 8; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/west, /area/lv624/ground/river/central_river) "akE" = ( /obj/structure/disposalpipe/segment, /obj/structure/grille, -/turf/open/floor/plating{ - dir = 4; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/east, /area/lv624/ground/river/east_river) "akJ" = ( /obj/structure/disposalpipe/segment{ @@ -2263,10 +1903,7 @@ density = 0; icon_state = "brokengrille" }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/west, /area/lv624/ground/river/west_river) "akN" = ( /obj/structure/flora/bush/ausbushes/var3/brflowers, @@ -2278,10 +1915,7 @@ density = 0; icon_state = "brokengrille" }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/west, /area/lv624/ground/river/central_river) "akQ" = ( /obj/structure/flora/bush/ausbushes/var3/brflowers, @@ -2295,10 +1929,7 @@ "akT" = ( /obj/structure/disposalpipe/junction, /obj/structure/grille, -/turf/open/floor/plating{ - dir = 8; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/west, /area/lv624/ground/river/west_river) "akU" = ( /obj/structure/disposalpipe/segment{ @@ -2306,10 +1937,7 @@ icon_state = "pipe-c" }, /obj/structure/grille, -/turf/open/floor/plating{ - dir = 4; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/east, /area/lv624/ground/river/central_river) "akV" = ( /obj/structure/disposalpipe/trunk{ @@ -2349,10 +1977,7 @@ icon_state = "pipe-c" }, /obj/structure/grille, -/turf/open/floor/plating{ - dir = 4; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/east, /area/lv624/ground/river/east_river) "ale" = ( /obj/structure/flora/bush/ausbushes/grassybush, @@ -2365,10 +1990,7 @@ "ali" = ( /obj/structure/disposalpipe/segment, /obj/structure/grille, -/turf/open/floor/plating{ - dir = 4; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/east, /area/lv624/ground/river/central_river) "alo" = ( /obj/effect/landmark/lv624/fog_blocker, @@ -2407,10 +2029,7 @@ density = 0; icon_state = "brokengrille" }, -/turf/open/floor/plating{ - dir = 4; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/east, /area/lv624/ground/river/central_river) "alF" = ( /obj/structure/flora/bush/ausbushes/var3/brflowers, @@ -2421,10 +2040,7 @@ dir = 1 }, /obj/structure/grille, -/turf/open/floor/plating{ - dir = 8; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/west, /area/lv624/ground/river/central_river) "alL" = ( /obj/effect/landmark/lv624/fog_blocker, @@ -2456,10 +2072,7 @@ density = 0; icon_state = "brokengrille" }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/west, /area/lv624/ground/river/west_river) "alS" = ( /obj/structure/disposalpipe/segment{ @@ -2467,10 +2080,7 @@ icon_state = "pipe-c" }, /obj/structure/grille, -/turf/open/floor/plating{ - dir = 4; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/east, /area/lv624/ground/river/central_river) "alT" = ( /obj/structure/disposalpipe/segment{ @@ -2490,14 +2100,10 @@ /area/lv624/ground/river/central_river) "alX" = ( /obj/structure/fence, -/turf/open/floor/plating{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/plating/asteroidwarning, /area/lv624/ground/river/central_river) "alY" = ( -/turf/open/floor/plating{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/plating/asteroidwarning, /area/lv624/ground/river/central_river) "alZ" = ( /obj/effect/landmark/crap_item, @@ -2506,17 +2112,11 @@ /area/lv624/ground/river/central_river) "ama" = ( /obj/effect/landmark/lv624/fog_blocker, -/turf/open/floor/plating{ - dir = 10; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/southwest, /area/lv624/ground/river/central_river) "amf" = ( /obj/effect/landmark/lv624/fog_blocker, -/turf/open/floor/plating{ - dir = 6; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/southeast, /area/lv624/ground/river/east_river) "amh" = ( /obj/structure/flora/jungle/alienplant1, @@ -2528,10 +2128,7 @@ "aml" = ( /obj/structure/disposalpipe/segment, /obj/structure/grille, -/turf/open/floor/plating{ - dir = 8; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/west, /area/lv624/ground/river/west_river) "amo" = ( /obj/structure/flora/bush/ausbushes/var3/fullgrass, @@ -2562,10 +2159,7 @@ dir = 1 }, /obj/structure/grille, -/turf/open/floor/plating{ - dir = 8; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/west, /area/lv624/ground/river/west_river) "amB" = ( /obj/effect/landmark/lv624/fog_blocker, @@ -2595,9 +2189,9 @@ /turf/open/gm/dirt, /area/lv624/ground/caves/west_caves) "amK" = ( -/obj/effect/landmark/lv624/fog_blocker, -/turf/open/gm/dirtgrassborder/grassdirt_corner2/south_east, -/area/lv624/ground/river/west_river) +/obj/structure/flora/bush/ausbushes/var3/leafybush, +/turf/open/gm/dirt, +/area/lv624/ground/jungle/west_jungle) "amL" = ( /obj/structure/flora/bush/ausbushes/palebush, /turf/open/gm/river, @@ -2608,26 +2202,18 @@ /area/lv624/lazarus/landing_zones/lz1) "amR" = ( /obj/effect/landmark/lv624/fog_blocker, -/turf/open/floor/plating{ - dir = 10; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/southwest, /area/lv624/ground/river/east_river) "amS" = ( /obj/structure/machinery/constructable_frame{ icon_state = "box_1" }, /obj/effect/landmark/lv624/fog_blocker, -/turf/open/floor/plating{ - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate, /area/lv624/ground/river/central_river) "amT" = ( /obj/effect/landmark/lv624/fog_blocker, -/turf/open/floor/plating{ - dir = 6; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/southeast, /area/lv624/ground/river/central_river) "amW" = ( /obj/effect/landmark/crap_item, @@ -2635,10 +2221,7 @@ /area/lv624/ground/jungle/north_east_jungle) "amX" = ( /obj/effect/landmark/lv624/fog_blocker, -/turf/open/floor/plating{ - dir = 9; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/northwest, /area/lv624/ground/river/west_river) "amZ" = ( /obj/structure/flora/bush/ausbushes/var3/fullgrass, @@ -2663,10 +2246,7 @@ icon_state = "box_1" }, /obj/effect/landmark/lv624/fog_blocker, -/turf/open/floor/plating{ - dir = 1; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/north, /area/lv624/ground/river/central_river) "ank" = ( /turf/open/floor/plating, @@ -2701,10 +2281,7 @@ /area/lv624/ground/caves/central_caves) "anE" = ( /obj/effect/landmark/lv624/fog_blocker, -/turf/open/floor/plating{ - dir = 5; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/northeast, /area/lv624/ground/river/central_river) "anF" = ( /turf/closed/wall, @@ -2716,10 +2293,7 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor{ - dir = 8; - icon_state = "whiteyellowcorner" - }, +/turf/open/floor/whiteyellowcorner/west, /area/lv624/lazarus/corporate_dome) "anM" = ( /obj/structure/flora/bush/ausbushes/var3/sparsegrass, @@ -2738,10 +2312,7 @@ /area/lv624/lazarus/medbay) "anT" = ( /obj/structure/window/framed/colony/reinforced, -/turf/open/floor{ - dir = 9; - icon_state = "green" - }, +/turf/open/floor/green/northwest, /area/lv624/lazarus/hydroponics) "anW" = ( /obj/structure/flora/bush/ausbushes/pointybush, @@ -2749,25 +2320,18 @@ /area/lv624/ground/jungle/south_east_jungle) "aoa" = ( /obj/structure/machinery/medical_pod/sleeper, -/turf/open/floor{ - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull, /area/lv624/lazarus/medbay) "aob" = ( /obj/structure/machinery/sleep_console, /obj/structure/extinguisher_cabinet{ pixel_y = 30 }, -/turf/open/floor{ - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull, /area/lv624/lazarus/medbay) "aol" = ( /obj/structure/machinery/smartfridge, -/turf/open/floor{ - dir = 9; - icon_state = "green" - }, +/turf/open/floor/green/northwest, /area/lv624/lazarus/hydroponics) "aon" = ( /obj/structure/flora/bush/ausbushes/var3/stalkybush, @@ -2782,9 +2346,7 @@ /obj/item/clothing/glasses/hud/health, /obj/effect/landmark/crap_item, /obj/item/reagent_container/spray/cleaner, -/turf/open/floor{ - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull, /area/lv624/lazarus/medbay) "aos" = ( /obj/structure/surface/table, @@ -2798,30 +2360,19 @@ }, /obj/item/storage/belt/medical/full, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - dir = 1; - icon_state = "whiteblue" - }, +/turf/open/floor/whiteblue/north, /area/lv624/lazarus/medbay) "aou" = ( -/turf/open/floor{ - icon_state = "whitebluecorner" - }, +/turf/open/floor/whitebluecorner, /area/lv624/lazarus/medbay) "aov" = ( -/turf/open/floor{ - dir = 1; - icon_state = "whiteblue" - }, +/turf/open/floor/whiteblue/north, /area/lv624/lazarus/medbay) "aow" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - dir = 5; - icon_state = "whiteblue" - }, +/turf/open/floor/whiteblue/northeast, /area/lv624/lazarus/medbay) "aox" = ( /obj/structure/machinery/medical_pod/bodyscanner, @@ -2831,22 +2382,14 @@ name = "General Listening Channel"; pixel_y = 28 }, -/turf/open/floor{ - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull, /area/lv624/lazarus/medbay) "aoz" = ( /obj/structure/reagent_dispensers/watertank, -/turf/open/floor{ - dir = 9; - icon_state = "green" - }, +/turf/open/floor/green/northwest, /area/lv624/lazarus/hydroponics) "aoA" = ( -/turf/open/floor{ - dir = 9; - icon_state = "green" - }, +/turf/open/floor/green/northwest, /area/lv624/lazarus/hydroponics) "aoB" = ( /obj/structure/surface/table, @@ -2855,63 +2398,39 @@ dir = 1 }, /obj/item/reagent_container/glass/watertank, -/turf/open/floor{ - dir = 9; - icon_state = "green" - }, +/turf/open/floor/green/northwest, /area/lv624/lazarus/hydroponics) "aoC" = ( /obj/structure/surface/table, /obj/item/clothing/gloves/botanic_leather, -/turf/open/floor{ - dir = 9; - icon_state = "green" - }, +/turf/open/floor/green/northwest, /area/lv624/lazarus/hydroponics) "aoE" = ( -/turf/open/floor{ - dir = 8; - icon_state = "whiteblue" - }, +/turf/open/floor/whiteblue/west, /area/lv624/lazarus/medbay) "aoF" = ( /obj/item/reagent_container/hypospray, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/medbay) "aoI" = ( /obj/effect/landmark/crap_item, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/medbay) "aoK" = ( -/turf/open/floor{ - dir = 4; - icon_state = "whiteblue" - }, +/turf/open/floor/whiteblue/east, /area/lv624/lazarus/medbay) "aoL" = ( /obj/structure/machinery/optable, /obj/item/tank/anesthetic, -/turf/open/floor{ - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull, /area/lv624/lazarus/medbay) "aoO" = ( /obj/item/reagent_container/glass/bucket, -/turf/open/floor{ - dir = 9; - icon_state = "green" - }, +/turf/open/floor/green/northwest, /area/lv624/lazarus/hydroponics) "aoP" = ( /obj/structure/machinery/portable_atmospherics/hydroponics, -/turf/open/floor{ - dir = 9; - icon_state = "green" - }, +/turf/open/floor/green/northwest, /area/lv624/lazarus/hydroponics) "aoR" = ( /obj/structure/surface/table, @@ -2920,16 +2439,10 @@ pixel_y = 6 }, /obj/effect/landmark/crap_item, -/turf/open/floor{ - dir = 9; - icon_state = "green" - }, +/turf/open/floor/green/northwest, /area/lv624/lazarus/hydroponics) "aoU" = ( -/turf/open/floor{ - dir = 1; - icon_state = "whitebluecorner" - }, +/turf/open/floor/whitebluecorner/north, /area/lv624/lazarus/medbay) "aoX" = ( /obj/structure/flora/bush/ausbushes/var3/fullgrass, @@ -2974,9 +2487,7 @@ "apw" = ( /obj/structure/bed, /obj/item/bedsheet/medical, -/turf/open/floor{ - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull, /area/lv624/lazarus/medbay) "apx" = ( /obj/item/device/radio/intercom{ @@ -2985,33 +2496,21 @@ name = "General Listening Channel"; pixel_y = 28 }, -/turf/open/floor{ - dir = 1; - icon_state = "whiteblue" - }, +/turf/open/floor/whiteblue/north, /area/lv624/lazarus/medbay) "apA" = ( /obj/structure/machinery/vending/snack, -/turf/open/floor{ - dir = 1; - icon_state = "whiteblue" - }, +/turf/open/floor/whiteblue/north, /area/lv624/lazarus/medbay) "apC" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - dir = 1; - icon_state = "whiteblue" - }, +/turf/open/floor/whiteblue/north, /area/lv624/lazarus/medbay) "apH" = ( /obj/item/tool/crowbar, -/turf/open/floor{ - dir = 9; - icon_state = "green" - }, +/turf/open/floor/green/northwest, /area/lv624/lazarus/hydroponics) "apN" = ( /turf/closed/wall/r_wall, @@ -3030,9 +2529,7 @@ /area/lv624/ground/barrens/south_eastern_jungle_barrens) "apV" = ( /obj/item/clothing/under/colonist, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/medbay) "apW" = ( /obj/structure/flora/jungle/vines/light_3, @@ -3044,9 +2541,7 @@ dir = 2; name = "\improper Medical Bay" }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/medbay) "aqf" = ( /obj/structure/window/framed/colony/reinforced, @@ -3064,14 +2559,11 @@ name = "General Listening Channel"; pixel_x = -30 }, -/turf/open/floor{ - dir = 9; - icon_state = "green" - }, +/turf/open/floor/green/northwest, /area/lv624/lazarus/hydroponics) "aqq" = ( /obj/structure/flora/bush/ausbushes/pointybush, -/turf/open/gm/dirtgrassborder/west, +/turf/open/gm/dirtgrassborder/grassdirt_corner2/south_west, /area/lv624/ground/jungle/west_jungle) "aqr" = ( /obj/structure/flora/bush/ausbushes/var3/fernybush, @@ -3102,10 +2594,7 @@ dir = 8 }, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor{ - dir = 8; - icon_state = "whiteblue" - }, +/turf/open/floor/whiteblue/west, /area/lv624/lazarus/medbay) "aqF" = ( /obj/structure/fence, @@ -3142,10 +2631,7 @@ pixel_x = 3; pixel_y = 3 }, -/turf/open/floor{ - dir = 4; - icon_state = "whiteblue" - }, +/turf/open/floor/whiteblue/east, /area/lv624/lazarus/medbay) "aqR" = ( /turf/open/gm/dirtgrassborder/grassdirt_corner2/south_east, @@ -3174,16 +2660,11 @@ "arf" = ( /obj/structure/machinery/cm_vending/sorted/medical/blood, /obj/structure/machinery/light, -/turf/open/floor{ - icon_state = "whiteblue" - }, +/turf/open/floor/whiteblue, /area/lv624/lazarus/medbay) "arg" = ( /obj/effect/landmark/crap_item, -/turf/open/floor{ - dir = 8; - icon_state = "whitebluecorner" - }, +/turf/open/floor/whitebluecorner/west, /area/lv624/lazarus/medbay) "ari" = ( /obj/structure/flora/bush/ausbushes/reedbush, @@ -3202,20 +2683,14 @@ pixel_y = -3 }, /obj/item/reagent_container/glass/bucket, -/turf/open/floor{ - dir = 9; - icon_state = "green" - }, +/turf/open/floor/green/northwest, /area/lv624/lazarus/hydroponics) "arq" = ( /obj/structure/surface/rack, /obj/item/clothing/suit/apron, /obj/item/tool/shovel, /obj/item/clothing/gloves/botanic_leather, -/turf/open/floor{ - dir = 9; - icon_state = "green" - }, +/turf/open/floor/green/northwest, /area/lv624/lazarus/hydroponics) "arr" = ( /obj/structure/surface/rack, @@ -3232,47 +2707,33 @@ pixel_y = -2 }, /obj/structure/machinery/light, -/turf/open/floor{ - dir = 9; - icon_state = "green" - }, +/turf/open/floor/green/northwest, /area/lv624/lazarus/hydroponics) "art" = ( /obj/structure/surface/table, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, /obj/structure/machinery/light, /obj/item/reagent_container/glass/fertilizer, -/turf/open/floor{ - dir = 9; - icon_state = "green" - }, +/turf/open/floor/green/northwest, /area/lv624/lazarus/hydroponics) "aru" = ( -/obj/structure/machinery/power/apc{ - dir = 1; - name = "Hydroponics APC"; - pixel_y = 30; - start_charge = 0 - }, -/turf/open/floor{ - dir = 9; - icon_state = "green" +/obj/structure/machinery/power/apc/nocharge{ + dir = 1 }, +/turf/open/floor/green/northwest, /area/lv624/lazarus/hydroponics) "arv" = ( /obj/structure/surface/table, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 9; - icon_state = "green" - }, +/turf/open/floor/green/northwest, /area/lv624/lazarus/hydroponics) "arw" = ( /obj/structure/fence, /turf/open/gm/dirtgrassborder/west, /area/lv624/lazarus/quartstorage/outdoors) "arE" = ( -/turf/open/gm/dirtgrassborder/grassdirt_corner2/north_east, +/obj/structure/flora/jungle/vines/light_1, +/turf/open/gm/dirtgrassborder/grassdirt_corner/south_west, /area/lv624/ground/jungle/west_jungle) "arG" = ( /obj/effect/landmark/survivor_spawner, @@ -3284,15 +2745,11 @@ /area/lv624/lazarus/quartstorage/outdoors) "arI" = ( /obj/structure/girder, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/lv624/lazarus/quartstorage/outdoors) "arJ" = ( /obj/structure/window_frame/colony, -/turf/open/floor/plating{ - icon_state = "platebotc" - }, +/turf/open/floor/plating/platebotc, /area/lv624/lazarus/quartstorage/outdoors) "arK" = ( /turf/closed/wall, @@ -3300,10 +2757,7 @@ "arL" = ( /obj/structure/barricade/wooden, /obj/structure/flora/jungle/vines/heavy, -/turf/open/floor{ - dir = 1; - icon_state = "warning" - }, +/turf/open/floor/warning/north, /area/lv624/lazarus/landing_zones/lz1) "arO" = ( /obj/effect/landmark/lv624/fog_blocker, @@ -3328,9 +2782,7 @@ /area/lv624/ground/river/east_river) "arT" = ( /obj/structure/flora/bush/ausbushes/reedbush, -/turf/open/gm/dirt{ - icon_state = "desert2" - }, +/turf/open/gm/dirt/desert2, /area/lv624/ground/barrens/south_eastern_barrens) "arU" = ( /obj/structure/flora/bush/ausbushes/var3/fullgrass, @@ -3347,8 +2799,8 @@ /turf/open/gm/grass/grass2, /area/lv624/ground/jungle/west_jungle) "asd" = ( -/obj/structure/flora/bush/ausbushes/var3/fullgrass, -/turf/open/gm/dirtgrassborder/south, +/obj/structure/flora/jungle/vines/light_3, +/turf/open/gm/dirtgrassborder/west, /area/lv624/ground/jungle/west_jungle) "ase" = ( /turf/open/gm/dirtgrassborder/grassdirt_corner2/south_west, @@ -3362,14 +2814,10 @@ /turf/open/gm/dirt, /area/lv624/lazarus/quartstorage/outdoors) "asj" = ( -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/lv624/lazarus/quartstorage/outdoors) "ask" = ( -/turf/open/floor/plating{ - icon_state = "platebotc" - }, +/turf/open/floor/plating/platebotc, /area/lv624/lazarus/quartstorage/outdoors) "asl" = ( /obj/structure/flora/bush/ausbushes/var3/fullgrass, @@ -3412,9 +2860,7 @@ /area/lv624/lazarus/quartstorage/outdoors) "asA" = ( /obj/structure/barricade/wooden, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/lv624/lazarus/quartstorage/outdoors) "asF" = ( /obj/structure/flora/bush/ausbushes/palebush, @@ -3430,20 +2876,15 @@ /area/lv624/ground/colony/south_medbay_road) "asJ" = ( /obj/structure/flora/jungle/vines/light_1, -/turf/open/floor{ - dir = 5; - icon_state = "warning" - }, +/turf/open/floor/warning/northeast, /area/lv624/lazarus/landing_zones/lz1) "asK" = ( -/obj/structure/flora/bush/ausbushes/pointybush, -/turf/open/gm/grass/grass1, +/obj/structure/flora/jungle/vines/light_3, +/turf/open/gm/dirt, /area/lv624/ground/jungle/west_jungle) "asL" = ( /obj/item/tool/warning_cone, -/turf/open/floor/plating{ - icon_state = "platebotc" - }, +/turf/open/floor/plating/platebotc, /area/lv624/lazarus/quartstorage/outdoors) "asM" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony{ @@ -3458,9 +2899,7 @@ /area/lv624/lazarus/quartstorage) "asO" = ( /obj/structure/window_frame/colony, -/turf/open/floor/plating{ - icon_state = "platebotc" - }, +/turf/open/floor/plating/platebotc, /area/lv624/lazarus/quartstorage) "asP" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony{ @@ -3502,21 +2941,15 @@ name = "\improper Research Dome"; req_access_txt = "100" }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/research) "asX" = ( -/obj/structure/flora/grass/tallgrass/jungle/corner{ - dir = 6 - }, -/turf/open/gm/grass/grass2, +/obj/structure/flora/jungle/vines/light_3, +/turf/open/gm/dirtgrassborder/south, /area/lv624/ground/jungle/west_jungle) "asY" = ( -/obj/structure/flora/grass/tallgrass/jungle/corner{ - dir = 10 - }, -/turf/open/gm/grass/grass2, +/obj/effect/landmark/monkey_spawn, +/turf/open/gm/dirt, /area/lv624/ground/jungle/west_jungle) "asZ" = ( /obj/structure/flora/bush/ausbushes/var3/ywflowers, @@ -3530,33 +2963,23 @@ /area/lv624/ground/jungle/west_jungle) "atc" = ( /obj/structure/girder, -/turf/open/floor/plating{ - icon_state = "platebotc" - }, +/turf/open/floor/plating/platebotc, /area/lv624/lazarus/quartstorage/outdoors) "atd" = ( /obj/structure/largecrate/random, -/turf/open/floor/plating{ - icon_state = "platebotc" - }, +/turf/open/floor/plating/platebotc, /area/lv624/lazarus/quartstorage/outdoors) "ath" = ( /obj/structure/surface/table, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/northeast, /area/lv624/lazarus/research) "ati" = ( /turf/open/floor/vault, /area/lv624/lazarus/quartstorage) "atk" = ( /obj/structure/flora/jungle/vines/heavy, -/turf/open/floor{ - dir = 4; - icon_state = "warning" - }, +/turf/open/floor/warning/east, /area/lv624/lazarus/landing_zones/lz1) "atn" = ( /obj/structure/window_frame/colony/reinforced, @@ -3568,16 +2991,11 @@ /turf/open/floor/plating, /area/lv624/lazarus/research) "atp" = ( -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/research) "atq" = ( /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/northeast, /area/lv624/lazarus/research) "atu" = ( /turf/open/gm/dirtgrassborder/west, @@ -3596,10 +3014,7 @@ req_access_txt = "100"; req_one_access = null }, -/turf/open/floor{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/northeast, /area/lv624/lazarus/fitness) "atz" = ( /obj/structure/window_frame/colony, @@ -3615,9 +3030,7 @@ /area/lv624/ground/jungle/west_jungle) "atD" = ( /obj/structure/girder/displaced, -/turf/open/floor/plating{ - icon_state = "platebotc" - }, +/turf/open/floor/plating/platebotc, /area/lv624/lazarus/quartstorage/outdoors) "atE" = ( /obj/item/stack/sheet/wood{ @@ -3627,9 +3040,7 @@ /area/lv624/lazarus/quartstorage) "atF" = ( /obj/effect/landmark/survivor_spawner, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/lv624/lazarus/quartstorage) "atG" = ( /obj/structure/machinery/light/small{ @@ -3673,10 +3084,7 @@ pixel_y = 4 }, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/northeast, /area/lv624/lazarus/research) "atQ" = ( /obj/structure/lamarr{ @@ -3686,10 +3094,7 @@ occupied = 0 }, /obj/item/shard, -/turf/open/floor{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/northeast, /area/lv624/lazarus/research) "atR" = ( /obj/structure/lamarr{ @@ -3702,10 +3107,7 @@ pixel_x = 32 }, /obj/item/shard, -/turf/open/floor{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/northeast, /area/lv624/lazarus/research) "atS" = ( /obj/effect/decal/cleanable/blood, @@ -3716,10 +3118,7 @@ dir = 4 }, /obj/item/prop/alien/hugger, -/turf/open/floor{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/northeast, /area/lv624/lazarus/research) "atU" = ( /turf/closed/wall, @@ -3730,15 +3129,10 @@ pixel_y = 4 }, /obj/item/tool/pen, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/medbay) "atX" = ( -/turf/open/floor{ - dir = 4; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/east, /area/lv624/lazarus/fitness) "atY" = ( /obj/structure/window_frame/colony, @@ -3765,9 +3159,7 @@ /turf/open/gm/river, /area/lv624/ground/river/west_river) "aue" = ( -/turf/open/floor/wood{ - icon_state = "wood-broken3" - }, +/turf/open/floor/wood/wood_broken3, /area/lv624/ground/jungle/west_jungle/ceiling) "auf" = ( /turf/open/floor/wood, @@ -3787,19 +3179,14 @@ name = "Surgery Cleaner" }, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor{ - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull, /area/lv624/lazarus/medbay) "aul" = ( /obj/effect/landmark/lv624/fog_blocker, /turf/open/gm/coast/beachcorner2/south_east, /area/lv624/ground/river/west_river) "aum" = ( -/turf/open/floor{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/northeast, /area/lv624/lazarus/research) "aun" = ( /obj/structure/flora/bush/ausbushes/reedbush, @@ -3812,17 +3199,11 @@ }, /obj/effect/landmark/corpsespawner/scientist, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/northeast, /area/lv624/lazarus/research) "aup" = ( /obj/item/prop/alien/hugger, -/turf/open/floor{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/northeast, /area/lv624/lazarus/research) "aut" = ( /obj/structure/surface/table/reinforced/prison{ @@ -3836,26 +3217,18 @@ name = "\improper Research Dome"; req_access_txt = "100" }, -/turf/open/floor{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/northeast, /area/lv624/lazarus/research) "auv" = ( /obj/effect/decal/remains/human, /obj/effect/landmark/crap_item, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/research) "auw" = ( /obj/structure/bed/chair/office/dark{ dir = 1 }, -/turf/open/floor{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/northeast, /area/lv624/lazarus/research) "aux" = ( /obj/structure/flora/jungle/vines/light_3, @@ -3869,17 +3242,11 @@ "auz" = ( /obj/structure/surface/rack, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 4; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/east, /area/lv624/lazarus/fitness) "auA" = ( /obj/structure/machinery/vending/snack, -/turf/open/floor{ - dir = 4; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/east, /area/lv624/lazarus/fitness) "auB" = ( /obj/structure/surface/table, @@ -3889,62 +3256,41 @@ }, /obj/item/reagent_container/glass/fertilizer, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 9; - icon_state = "green" - }, +/turf/open/floor/green/northwest, /area/lv624/lazarus/hydroponics) "auD" = ( /obj/item/clothing/under/shorts/red, /obj/structure/surface/rack, -/turf/open/floor{ - dir = 4; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/east, /area/lv624/lazarus/fitness) "auE" = ( /turf/open/gm/river, /area/lv624/lazarus/fitness) "auF" = ( -/turf/open/floor{ - dir = 8; - icon_state = "barber" - }, +/turf/open/floor/barber/west, /area/lv624/lazarus/fitness) "auG" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - dir = 8; - icon_state = "barber" - }, +/turf/open/floor/barber/west, /area/lv624/lazarus/fitness) "auH" = ( /obj/structure/closet/crate/secure/hydrosec, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - dir = 4; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/east, /area/lv624/lazarus/fitness) "auI" = ( /obj/structure/cargo_container/wy/left, -/turf/open/floor/plating{ - icon_state = "platebotc" - }, +/turf/open/floor/plating/platebotc, /area/lv624/lazarus/quartstorage/outdoors) "auJ" = ( /obj/structure/cargo_container/wy/mid, -/turf/open/floor/plating{ - icon_state = "platebotc" - }, +/turf/open/floor/plating/platebotc, /area/lv624/lazarus/quartstorage/outdoors) "auK" = ( /obj/structure/cargo_container/wy/right, -/turf/open/floor/plating{ - icon_state = "platebotc" - }, +/turf/open/floor/plating/platebotc, /area/lv624/lazarus/quartstorage/outdoors) "auM" = ( /obj/structure/flora/bush/ausbushes/var3/fullgrass, @@ -3966,37 +3312,23 @@ /obj/structure/barricade/wooden{ dir = 4 }, -/turf/open/floor/wood{ - icon_state = "wood-broken" - }, +/turf/open/floor/wood/wood_broken, /area/lv624/ground/jungle/west_jungle/ceiling) "auV" = ( /obj/effect/decal/remains/human, -/turf/open/floor{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/northeast, /area/lv624/lazarus/research) "auW" = ( /obj/item/bananapeel, -/turf/open/floor{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/northeast, /area/lv624/lazarus/research) "auX" = ( /obj/structure/machinery/light, -/turf/open/floor{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/northeast, /area/lv624/lazarus/research) "auY" = ( /obj/structure/machinery/chem_dispenser, -/turf/open/floor{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/northeast, /area/lv624/lazarus/research) "auZ" = ( /obj/item/toy/inflatable_duck, @@ -4004,21 +3336,15 @@ /area/lv624/lazarus/fitness) "ava" = ( /obj/structure/cargo_container/seegson/left, -/turf/open/floor/plating{ - icon_state = "platebotc" - }, +/turf/open/floor/plating/platebotc, /area/lv624/lazarus/quartstorage/outdoors) "avb" = ( /obj/structure/cargo_container/seegson/mid, -/turf/open/floor/plating{ - icon_state = "platebotc" - }, +/turf/open/floor/plating/platebotc, /area/lv624/lazarus/quartstorage/outdoors) "avc" = ( /obj/structure/cargo_container/seegson/right, -/turf/open/floor/plating{ - icon_state = "platebotc" - }, +/turf/open/floor/plating/platebotc, /area/lv624/lazarus/quartstorage/outdoors) "ave" = ( /obj/structure/surface/rack, @@ -4064,10 +3390,7 @@ /obj/item/clothing/shoes/yautja_flavor{ anchored = 1 }, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/lv624/ground/caves/sand_temple) "avm" = ( /turf/open/floor/wood, @@ -4087,10 +3410,7 @@ dir = 4; icon_state = "p_stair_full" }, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv624/ground/caves/south_east_caves) "avq" = ( /obj/structure/machinery/door/airlock/almayer/research/colony{ @@ -4099,10 +3419,7 @@ name = "\improper Research Dome"; req_access_txt = "100" }, -/turf/open/floor{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/northeast, /area/lv624/lazarus/research) "avr" = ( /obj/structure/machinery/door/airlock/almayer/research/colony{ @@ -4113,23 +3430,15 @@ opacity = 0; req_access_txt = "100" }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/research) "avu" = ( /obj/structure/closet/lasertag/red, -/turf/open/floor{ - dir = 4; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/east, /area/lv624/lazarus/fitness) "avv" = ( /obj/item/toy/beach_ball, -/turf/open/floor{ - dir = 8; - icon_state = "barber" - }, +/turf/open/floor/barber/west, /area/lv624/lazarus/fitness) "avw" = ( /obj/effect/landmark/good_item, @@ -4137,9 +3446,7 @@ /area/lv624/lazarus/fitness) "avx" = ( /obj/effect/landmark/hunter_secondary, -/turf/open/floor/plating{ - icon_state = "platebotc" - }, +/turf/open/floor/plating/platebotc, /area/lv624/lazarus/quartstorage/outdoors) "avy" = ( /obj/structure/flora/bush/ausbushes/var3/fullgrass, @@ -4149,28 +3456,20 @@ "avB" = ( /obj/structure/surface/table, /obj/effect/landmark/good_item, -/turf/open/floor{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/northeast, /area/lv624/lazarus/research) "avD" = ( /obj/structure/surface/table, /obj/effect/decal/remains/human, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/northeast, /area/lv624/lazarus/research) "avE" = ( /obj/structure/machinery/light{ dir = 8 }, /obj/structure/surface/table, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/research) "avF" = ( /obj/effect/decal/cleanable/blood/splatter, @@ -4180,18 +3479,13 @@ pixel_x = 25 }, /obj/effect/landmark/crap_item, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/research) "avG" = ( /obj/structure/surface/table, /obj/item/clipboard, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/northeast, /area/lv624/lazarus/research) "avH" = ( /turf/closed/wall, @@ -4201,10 +3495,7 @@ /obj/item/tool/crowbar, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/northeast, /area/lv624/lazarus/research) "avK" = ( /obj/effect/landmark/lv624/fog_blocker, @@ -4213,24 +3504,15 @@ "avL" = ( /obj/structure/closet/lasertag/blue, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - dir = 4; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/east, /area/lv624/lazarus/fitness) "avM" = ( /obj/effect/landmark/crap_item, -/turf/open/floor{ - dir = 4; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/east, /area/lv624/lazarus/fitness) "avN" = ( /obj/item/tool/soap, -/turf/open/floor{ - dir = 4; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/east, /area/lv624/lazarus/fitness) "avP" = ( /obj/structure/fence, @@ -4256,18 +3538,14 @@ /obj/structure/surface/rack, /obj/item/clothing/under/colonist, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/lv624/lazarus/quartstorage) "avU" = ( /obj/item/stack/rods{ amount = 20 }, /obj/structure/surface/rack, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/lv624/lazarus/quartstorage) "avV" = ( /obj/structure/surface/rack, @@ -4279,10 +3557,7 @@ pixel_x = 4; pixel_y = -2 }, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/lv624/lazarus/quartstorage) "avX" = ( /obj/structure/flora/bush/ausbushes/var3/sparsegrass, @@ -4328,24 +3603,18 @@ name = "\improper Research Dome"; req_access_txt = "100" }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/research) "awk" = ( /obj/structure/bed/chair/office/dark{ dir = 1 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/research) "awl" = ( /obj/item/prop/alien/hugger, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/research) "awm" = ( /obj/structure/machinery/door/airlock/almayer/research/colony{ @@ -4355,43 +3624,31 @@ opacity = 0; req_access_txt = "100" }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/research) "awn" = ( /obj/effect/landmark/monkey_spawn, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/research) "awo" = ( /obj/structure/machinery/door/airlock/almayer/research/colony{ name = "\improper Research Dome"; req_access_txt = "100" }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/research) "awp" = ( /obj/effect/decal/remains/human, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/research) "awq" = ( /obj/item/clothing/glasses/regular, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/research) "awr" = ( /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/research) "aws" = ( /obj/structure/machinery/door/poddoor/almayer/open{ @@ -4405,10 +3662,7 @@ opacity = 0; req_access_txt = "100" }, -/turf/open/floor{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/northeast, /area/lv624/lazarus/research) "awt" = ( /obj/effect/decal/remains/human, @@ -4420,29 +3674,17 @@ /area/lv624/lazarus/fitness) "awv" = ( /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/northeast, /area/lv624/lazarus/fitness) "aww" = ( -/obj/structure/machinery/power/apc{ - dir = 1; - name = "Fitness APC"; - pixel_y = 30; - start_charge = 0 - }, -/turf/open/floor{ - dir = 4; - icon_state = "whitepurplecorner" +/obj/structure/machinery/power/apc/nocharge{ + dir = 1 }, +/turf/open/floor/whitepurplecorner/east, /area/lv624/lazarus/fitness) "awx" = ( /obj/effect/decal/remains/human, -/turf/open/floor{ - dir = 4; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/east, /area/lv624/lazarus/fitness) "awy" = ( /obj/item/device/radio/intercom{ @@ -4451,34 +3693,21 @@ name = "General Listening Channel"; pixel_y = 30 }, -/turf/open/floor{ - dir = 4; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/east, /area/lv624/lazarus/fitness) -"awz" = ( -/obj/structure/flora/grass/tallgrass/jungle/corner, -/turf/open/gm/grass/grass1, -/area/lv624/ground/jungle/west_jungle) "awC" = ( /obj/structure/flora/bush/ausbushes/reedbush, /turf/open/gm/coast/beachcorner/north_east, /area/lv624/ground/jungle/west_jungle) "awD" = ( -/turf/open/floor/plating{ - dir = 1; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/north, /area/lv624/lazarus/robotics) "awE" = ( /obj/structure/barricade/wooden{ dir = 1; pixel_y = 7 }, -/turf/open/floor/plating{ - dir = 1; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/north, /area/lv624/lazarus/robotics) "awF" = ( /obj/item/storage/toolbox/mechanical, @@ -4486,32 +3715,22 @@ /area/lv624/ground/jungle/north_west_jungle) "awG" = ( /obj/effect/landmark/survivor_spawner, -/turf/open/floor{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/northeast, /area/lv624/lazarus/research) "awH" = ( /obj/item/prop/alien/hugger, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/research) "awI" = ( /obj/effect/decal/remains/human, /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/research) "awK" = ( /obj/effect/landmark/good_item, -/turf/open/floor{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/northeast, /area/lv624/lazarus/research) "awL" = ( /obj/structure/flora/bush/ausbushes/var3/fullgrass, @@ -4530,10 +3749,7 @@ opacity = 0; req_access_txt = "100" }, -/turf/open/floor{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/northeast, /area/lv624/lazarus/research) "awN" = ( /obj/effect/decal/cleanable/blood/splatter, @@ -4550,10 +3766,7 @@ name = "\improper Leisure Dome"; req_access_txt = "100" }, -/turf/open/floor{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/northeast, /area/lv624/lazarus/fitness) "awQ" = ( /obj/effect/landmark/monkey_spawn, @@ -4561,24 +3774,15 @@ /area/lv624/ground/jungle/south_central_jungle) "awR" = ( /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor{ - dir = 4; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/east, /area/lv624/lazarus/fitness) "awS" = ( /obj/effect/landmark/survivor_spawner, -/turf/open/floor{ - dir = 4; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/east, /area/lv624/lazarus/fitness) "awT" = ( /obj/item/clothing/under/shorts/blue, -/turf/open/floor{ - dir = 4; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/east, /area/lv624/lazarus/fitness) "awU" = ( /obj/structure/machinery/door/airlock/almayer/medical/glass/colony{ @@ -4586,10 +3790,7 @@ req_access_txt = "100"; req_one_access = null }, -/turf/open/floor{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/northeast, /area/lv624/lazarus/fitness) "awV" = ( /obj/structure/flora/grass/tallgrass/jungle/corner{ @@ -4613,96 +3814,63 @@ "awZ" = ( /obj/structure/surface/rack, /obj/item/tool/crowbar, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/lv624/lazarus/quartstorage) "axa" = ( -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/lv624/lazarus/quartstorage) "axb" = ( /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/lv624/lazarus/quartstorage) "axe" = ( -/turf/open/floor/plating{ - icon_state = "platebot" - }, +/turf/open/floor/plating/platebot, /area/lv624/lazarus/robotics) "axf" = ( /obj/structure/machinery/recharge_station, -/turf/open/floor/plating{ - icon_state = "platebot" - }, +/turf/open/floor/plating/platebot, /area/lv624/lazarus/robotics) "axg" = ( /obj/structure/machinery/cm_vending/sorted/tech/robotics, -/turf/open/floor/plating{ - icon_state = "platebot" - }, +/turf/open/floor/plating/platebot, /area/lv624/lazarus/robotics) "axh" = ( /obj/structure/barricade/wooden{ dir = 1; pixel_y = 7 }, -/turf/open/floor{ - icon_state = "vault" - }, +/turf/open/floor/vault2, /area/lv624/lazarus/robotics) "axi" = ( -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/lv624/lazarus/robotics) "axj" = ( -/turf/open/floor{ - icon_state = "vault" - }, +/turf/open/floor/vault2, /area/lv624/lazarus/robotics) "axk" = ( /obj/structure/prop/mech/armor_booster, /obj/effect/decal/cleanable/cobweb, -/turf/open/floor/plating{ - icon_state = "platebot" - }, +/turf/open/floor/plating/platebot, /area/lv624/lazarus/robotics) "axo" = ( /obj/structure/closet/cabinet, -/turf/open/floor/wood{ - icon_state = "wood-broken" - }, +/turf/open/floor/wood/wood_broken, /area/lv624/ground/caves/north_central_caves) "axp" = ( /obj/effect/landmark/survivor_spawner, /turf/open/floor/wood, /area/lv624/ground/jungle/west_jungle/ceiling) "axt" = ( -/turf/open/floor{ - dir = 9; - icon_state = "warnwhite" - }, +/turf/open/floor/warnwhite/northwest, /area/lv624/lazarus/fitness) "axu" = ( /obj/structure/holohoop, -/turf/open/floor{ - dir = 1; - icon_state = "warnwhite" - }, +/turf/open/floor/warnwhite/north, /area/lv624/lazarus/fitness) "axv" = ( -/turf/open/floor{ - dir = 5; - icon_state = "warnwhite" - }, +/turf/open/floor/warnwhite/northeast, /area/lv624/lazarus/fitness) "axw" = ( /turf/open/gm/coast/beachcorner/south_west, @@ -4719,16 +3887,11 @@ dir = 1 }, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - dir = 4; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/east, /area/lv624/lazarus/fitness) "axA" = ( /obj/item/stool, -/turf/open/floor/plating{ - icon_state = "platebot" - }, +/turf/open/floor/plating/platebot, /area/lv624/lazarus/robotics) "axB" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony{ @@ -4736,25 +3899,18 @@ req_access_txt = "100"; req_one_access = null }, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/lv624/lazarus/robotics) "axC" = ( /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor{ - icon_state = "vault" - }, +/turf/open/floor/vault2, /area/lv624/lazarus/robotics) "axD" = ( /obj/effect/decal/remains/human, /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/north_west_jungle) "axF" = ( -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/lv624/lazarus/research) "axG" = ( /obj/structure/machinery/shower{ @@ -4764,25 +3920,17 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/lv624/lazarus/research) "axH" = ( /obj/structure/machinery/cm_vending/sorted/tech/science, -/turf/open/floor{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/northeast, /area/lv624/lazarus/research) "axI" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/northeast, /area/lv624/lazarus/research) "axJ" = ( /obj/structure/machinery/light{ @@ -4793,10 +3941,7 @@ phone_id = "Research Dome"; pixel_y = 24 }, -/turf/open/floor{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/northeast, /area/lv624/lazarus/research) "axL" = ( /obj/structure/surface/table, @@ -4804,26 +3949,17 @@ /obj/item/cell/hyper, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/northeast, /area/lv624/lazarus/research) "axN" = ( /obj/item/storage/firstaid/regular, /obj/structure/surface/rack, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 4; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/east, /area/lv624/lazarus/fitness) "axQ" = ( /obj/effect/landmark/crap_item, -/turf/open/floor{ - dir = 4; - icon_state = "warnwhite" - }, +/turf/open/floor/warnwhite/east, /area/lv624/lazarus/fitness) "axR" = ( /obj/structure/flora/jungle/vines/light_3, @@ -4834,14 +3970,8 @@ pixel_x = 29 }, /obj/structure/reagent_dispensers/watertank, -/turf/open/floor{ - dir = 4; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/east, /area/lv624/lazarus/fitness) -"axV" = ( -/turf/open/gm/dirtgrassborder/north, -/area/lv624/ground/jungle/west_jungle) "axW" = ( /obj/effect/decal/remains/xeno, /obj/structure/fence, @@ -4870,17 +4000,9 @@ /obj/effect/landmark/lv624/xeno_tunnel, /turf/open/gm/grass/grass1, /area/lv624/lazarus/quartstorage/outdoors) -"ayd" = ( -/obj/structure/flora/grass/tallgrass/jungle/corner{ - dir = 4 - }, -/turf/open/gm/grass/grass1, -/area/lv624/ground/jungle/west_jungle) "ayg" = ( /obj/structure/computerframe, -/turf/open/floor/plating{ - icon_state = "platebot" - }, +/turf/open/floor/plating/platebot, /area/lv624/lazarus/robotics) "ayh" = ( /obj/structure/flora/bush/ausbushes/reedbush, @@ -4893,111 +4015,72 @@ /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/plating{ - icon_state = "platebot" - }, +/turf/open/floor/plating/platebot, /area/lv624/lazarus/robotics) "ayk" = ( /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor{ - icon_state = "vault" - }, +/turf/open/floor/vault2, /area/lv624/lazarus/robotics) -"ayl" = ( -/obj/structure/flora/grass/tallgrass/jungle/corner{ - dir = 1 - }, -/turf/open/gm/grass/grass1, -/area/lv624/ground/jungle/west_jungle) "aym" = ( /obj/structure/machinery/autolathe, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/lv624/lazarus/robotics) "ayn" = ( /obj/structure/dispenser/oxygen, /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/plating{ - icon_state = "platebot" - }, +/turf/open/floor/plating/platebot, /area/lv624/lazarus/robotics) "ayp" = ( /obj/item/bananapeel, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/lv624/lazarus/research) "ayq" = ( /obj/effect/decal/remains/human, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/lv624/lazarus/research) "ayr" = ( /obj/structure/machinery/door/airlock/almayer/research/colony{ name = "\improper Research Dome"; req_access_txt = "100" }, -/turf/open/floor{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/northeast, /area/lv624/lazarus/research) "ays" = ( /obj/structure/bed/chair/office/dark, -/turf/open/floor{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/northeast, /area/lv624/lazarus/research) "ayt" = ( -/turf/open/floor{ - dir = 8; - icon_state = "warnwhite" - }, +/turf/open/floor/warnwhite/west, /area/lv624/lazarus/fitness) "ayu" = ( /obj/structure/window/framed/colony/reinforced, /turf/open/floor/plating, /area/lv624/lazarus/main_hall) "ayv" = ( -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/fitness) "ayw" = ( /turf/open/floor/plating, /area/lv624/lazarus/main_hall) "ayx" = ( -/turf/open/floor{ - dir = 4; - icon_state = "warnwhite" - }, +/turf/open/floor/warnwhite/east, /area/lv624/lazarus/fitness) "ayy" = ( /obj/item/clothing/under/shorts/black{ pixel_x = 2; pixel_y = 2 }, -/turf/open/floor{ - dir = 4; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/east, /area/lv624/lazarus/fitness) "ayz" = ( /obj/item/tool/mop, /obj/structure/surface/rack, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 4; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/east, /area/lv624/lazarus/fitness) "ayA" = ( /obj/structure/flora/grass/tallgrass/jungle/corner{ @@ -5024,15 +4107,11 @@ req_access_txt = "100"; req_one_access = null }, -/turf/open/floor/plating{ - icon_state = "platebot" - }, +/turf/open/floor/plating/platebot, /area/lv624/lazarus/robotics) "ayG" = ( /obj/effect/decal/remains/human, -/turf/open/floor{ - icon_state = "vault" - }, +/turf/open/floor/vault2, /area/lv624/lazarus/robotics) "ayI" = ( /obj/structure/sink{ @@ -5042,9 +4121,7 @@ /obj/effect/decal/cleanable/blood/splatter, /obj/item/prop/alien/hugger, /obj/effect/landmark/corpsespawner/scientist, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/lv624/lazarus/research) "ayJ" = ( /obj/item/storage/box/beakers, @@ -5052,38 +4129,23 @@ /obj/structure/sign/safety/biohazard{ pixel_x = -18 }, -/turf/open/floor{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/northeast, /area/lv624/lazarus/research) "ayK" = ( /obj/effect/decal/remains/human, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/research) "ayL" = ( /obj/item/clothing/suit/redtag, /obj/structure/closet/athletic_mixed, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor{ - dir = 4; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/east, /area/lv624/lazarus/fitness) "ayM" = ( /obj/structure/surface/table, /obj/item/folder, -/turf/open/floor{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/northeast, /area/lv624/lazarus/research) -"ayN" = ( -/obj/structure/flora/bush/ausbushes/reedbush, -/turf/open/gm/dirtgrassborder/grassdirt_corner2/south_west, -/area/lv624/ground/jungle/west_jungle) "ayO" = ( /obj/item/weapon/baseballbat/metal, /obj/item/weapon/baseballbat/metal{ @@ -5091,10 +4153,7 @@ }, /obj/structure/surface/rack, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - dir = 4; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/east, /area/lv624/lazarus/fitness) "ayP" = ( /turf/closed/wall/r_wall, @@ -5133,10 +4192,7 @@ /obj/item/clothing/head/soft/ferret{ pixel_y = 5 }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/west, /area/lv624/lazarus/robotics) "ayX" = ( /obj/structure/surface/table/reinforced, @@ -5150,61 +4206,36 @@ /obj/structure/extinguisher_cabinet{ pixel_y = 30 }, -/turf/open/floor{ - icon_state = "vault" - }, +/turf/open/floor/vault2, /area/lv624/lazarus/robotics) "ayZ" = ( /obj/item/clothing/mask/gas, -/turf/open/floor{ - icon_state = "vault" - }, +/turf/open/floor/vault2, /area/lv624/lazarus/robotics) "aza" = ( /obj/effect/landmark/good_item, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, -/area/lv624/lazarus/robotics) -"azb" = ( -/obj/structure/prop/mech/mech_parts/part/gygax_torso, -/turf/open/floor{ - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/lv624/lazarus/robotics) "azc" = ( -/obj/structure/machinery/power/apc{ - dir = 1; - name = "Robotics Lab APC"; - pixel_y = 30; - start_charge = 0 - }, -/turf/open/floor{ - icon_state = "vault" +/obj/structure/machinery/power/apc/nocharge{ + dir = 1 }, +/turf/open/floor/vault2, /area/lv624/lazarus/robotics) "azd" = ( /obj/structure/machinery/light/small{ dir = 1 }, /obj/structure/machinery/cm_vending/sorted/tech/comp_storage, -/turf/open/floor{ - icon_state = "vault" - }, +/turf/open/floor/vault2, /area/lv624/lazarus/robotics) "aze" = ( /obj/structure/largecrate/random, -/turf/open/floor{ - icon_state = "vault" - }, +/turf/open/floor/vault2, /area/lv624/lazarus/robotics) "azf" = ( /obj/structure/largecrate/random, -/turf/open/floor/plating{ - dir = 4; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/east, /area/lv624/lazarus/robotics) "azg" = ( /obj/structure/flora/grass/tallgrass/jungle/corner{ @@ -5215,10 +4246,7 @@ "azh" = ( /obj/item/prop/alien/hugger, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/northeast, /area/lv624/lazarus/research) "azi" = ( /obj/structure/surface/rack, @@ -5227,54 +4255,34 @@ pixel_y = 3 }, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 4; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/east, /area/lv624/lazarus/fitness) "azj" = ( -/turf/open/floor{ - dir = 10; - icon_state = "warnwhite" - }, +/turf/open/floor/warnwhite/southwest, /area/lv624/lazarus/fitness) "azk" = ( /obj/structure/holohoop{ dir = 1 }, /obj/structure/machinery/light, -/turf/open/floor{ - icon_state = "warnwhite" - }, +/turf/open/floor/warnwhite, /area/lv624/lazarus/fitness) "azl" = ( -/turf/open/floor{ - dir = 6; - icon_state = "warnwhite" - }, +/turf/open/floor/warnwhite/southeast, /area/lv624/lazarus/fitness) "azm" = ( /obj/structure/closet/boxinggloves, -/turf/open/floor{ - dir = 4; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/east, /area/lv624/lazarus/fitness) "azn" = ( /obj/structure/surface/rack, /obj/structure/machinery/light, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 4; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/east, /area/lv624/lazarus/fitness) "azo" = ( /obj/structure/machinery/vending/cola, -/turf/open/floor{ - dir = 4; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/east, /area/lv624/lazarus/fitness) "azp" = ( /turf/closed/wall/r_wall, @@ -5286,30 +4294,22 @@ "azr" = ( /obj/structure/machinery/vending/cigarette/colony, /obj/effect/landmark/crap_item, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/main_hall) "azs" = ( /obj/structure/flora/bush/ausbushes/reedbush, /turf/open/gm/river, /area/lv624/ground/jungle/west_jungle) "azt" = ( -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/main_hall) "azu" = ( /obj/item/stack/sheet/wood, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/main_hall) "azv" = ( /obj/item/trash/cheesie, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/main_hall) "azw" = ( /turf/closed/wall/r_wall, @@ -5320,9 +4320,7 @@ /area/lv624/lazarus/sleep_female) "azy" = ( /obj/structure/window/framed/colony/reinforced, -/turf/open/floor/plating{ - icon_state = "platebotc" - }, +/turf/open/floor/plating/platebotc, /area/lv624/lazarus/sleep_female) "azB" = ( /obj/structure/flora/bush/ausbushes/var3/sparsegrass, @@ -5341,30 +4339,18 @@ /turf/open/floor/plating, /area/lv624/lazarus/robotics) "azF" = ( -/turf/open/floor/plating{ - dir = 8; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/west, /area/lv624/lazarus/robotics) "azG" = ( /obj/structure/machinery/mecha_part_fabricator, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/lv624/lazarus/robotics) "azI" = ( /obj/effect/decal/remains/human, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/lv624/lazarus/robotics) "azJ" = ( -/turf/open/floor/plating{ - dir = 4; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/east, /area/lv624/lazarus/robotics) "azK" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony{ @@ -5379,24 +4365,16 @@ "azL" = ( /obj/structure/closet/cabinet, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - dir = 4; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/east, /area/lv624/lazarus/fitness) "azM" = ( /obj/structure/closet/secure_closet/hydroponics, -/turf/open/floor{ - dir = 4; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/east, /area/lv624/lazarus/fitness) "azN" = ( /obj/structure/bed, /obj/item/bedsheet/brown, -/turf/open/floor{ - icon_state = "bluecorner" - }, +/turf/open/floor/bluecorner, /area/lv624/lazarus/sleep_male) "azO" = ( /obj/structure/closet{ @@ -5405,9 +4383,7 @@ opened = 1 }, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor{ - icon_state = "bluecorner" - }, +/turf/open/floor/bluecorner, /area/lv624/lazarus/sleep_male) "azP" = ( /turf/closed/wall, @@ -5417,9 +4393,7 @@ dir = 1; pixel_y = 7 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/main_hall) "azR" = ( /turf/closed/wall, @@ -5431,18 +4405,12 @@ }, /obj/structure/machinery/light, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/northeast, /area/lv624/lazarus/research) "azT" = ( /obj/structure/bed, /obj/item/bedsheet/yellow, -/turf/open/floor{ - dir = 9; - icon_state = "purple" - }, +/turf/open/floor/purple/northwest, /area/lv624/lazarus/sleep_female) "azU" = ( /obj/structure/barricade/wooden, @@ -5498,29 +4466,15 @@ /area/lv624/ground/caves/sand_temple) "aAh" = ( /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/plating{ - dir = 8; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/west, /area/lv624/lazarus/robotics) "aAi" = ( /obj/structure/machinery/light/small, -/turf/open/floor{ - icon_state = "vault" - }, +/turf/open/floor/vault2, /area/lv624/lazarus/robotics) "aAj" = ( /obj/structure/machinery/cm_vending/sorted/tech/tool_storage, -/turf/open/floor{ - icon_state = "vault" - }, -/area/lv624/lazarus/robotics) -"aAk" = ( -/obj/structure/prop/mech/mech_parts/chassis/gygax, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2, /area/lv624/lazarus/robotics) "aAl" = ( /turf/open/gm/dirt, @@ -5529,9 +4483,7 @@ /obj/structure/machinery/constructable_frame{ icon_state = "box_1" }, -/turf/open/floor{ - icon_state = "vault" - }, +/turf/open/floor/vault2, /area/lv624/lazarus/robotics) "aAo" = ( /obj/structure/sign/safety/analysis_lab{ @@ -5570,9 +4522,7 @@ dir = 1 }, /obj/effect/landmark/good_item, -/turf/open/floor{ - icon_state = "bluecorner" - }, +/turf/open/floor/bluecorner, /area/lv624/lazarus/sleep_male) "aAw" = ( /obj/structure/bed, @@ -5583,9 +4533,7 @@ name = "General Listening Channel"; pixel_x = -30 }, -/turf/open/floor{ - icon_state = "bluecorner" - }, +/turf/open/floor/bluecorner, /area/lv624/lazarus/sleep_male) "aAx" = ( /obj/structure/closet, @@ -5595,25 +4543,19 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor{ - icon_state = "bluecorner" - }, +/turf/open/floor/bluecorner, /area/lv624/lazarus/sleep_male) "aAy" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/main_hall) "aAz" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/main_hall) "aAA" = ( /obj/structure/closet, @@ -5622,18 +4564,12 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor{ - dir = 9; - icon_state = "purple" - }, +/turf/open/floor/purple/northwest, /area/lv624/lazarus/sleep_female) "aAB" = ( /obj/structure/bed, /obj/item/bedsheet/purple, -/turf/open/floor{ - dir = 9; - icon_state = "purple" - }, +/turf/open/floor/purple/northwest, /area/lv624/lazarus/sleep_female) "aAC" = ( /obj/structure/bed{ @@ -5643,10 +4579,7 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - dir = 9; - icon_state = "purple" - }, +/turf/open/floor/purple/northwest, /area/lv624/lazarus/sleep_female) "aAD" = ( /obj/structure/surface/rack, @@ -5669,77 +4602,54 @@ "aAP" = ( /obj/structure/surface/table, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - icon_state = "bluecorner" - }, +/turf/open/floor/bluecorner, /area/lv624/lazarus/sleep_male) "aAR" = ( -/obj/structure/machinery/power/apc{ - dir = 1; - name = "Research APC"; - pixel_y = 30; - start_charge = 0 - }, /obj/structure/machinery/light/small{ dir = 1 }, /obj/structure/surface/table, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 5; - icon_state = "whitepurple" +/obj/structure/machinery/power/apc/nocharge{ + dir = 1 }, +/turf/open/floor/whitepurple/northeast, /area/lv624/lazarus/research) "aAS" = ( -/obj/structure/machinery/power/apc{ - dir = 1; - name = "Men's Dorms APC"; - pixel_y = 30; - start_charge = 0 - }, /obj/structure/surface/table, /obj/item/toy/deck, /obj/item/storage/fancy/cigarettes/wypacket, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - icon_state = "bluecorner" +/obj/structure/machinery/power/apc/nocharge{ + dir = 1 }, +/turf/open/floor/bluecorner, /area/lv624/lazarus/sleep_male) "aAU" = ( -/turf/open/floor{ - icon_state = "bluecorner" - }, +/turf/open/floor/bluecorner, /area/lv624/lazarus/sleep_male) "aAW" = ( /obj/structure/bed, -/turf/open/floor{ - icon_state = "bluecorner" - }, +/turf/open/floor/bluecorner, /area/lv624/lazarus/sleep_male) "aAX" = ( /obj/structure/closet, /obj/item/clothing/under/rank/scientist, /obj/structure/window/reinforced/tinted, /obj/item/stack/medical/advanced/bruise_pack, -/turf/open/floor{ - icon_state = "bluecorner" - }, +/turf/open/floor/bluecorner, /area/lv624/lazarus/sleep_male) "aAY" = ( /obj/structure/barricade/wooden{ dir = 4 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/main_hall) "aAZ" = ( /obj/structure/barricade/wooden{ dir = 8 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/main_hall) "aBa" = ( /obj/structure/closet{ @@ -5755,17 +4665,11 @@ name = "General Listening Channel"; pixel_x = -30 }, -/turf/open/floor{ - dir = 9; - icon_state = "purple" - }, +/turf/open/floor/purple/northwest, /area/lv624/lazarus/sleep_female) "aBb" = ( /obj/structure/bed, -/turf/open/floor{ - dir = 9; - icon_state = "purple" - }, +/turf/open/floor/purple/northwest, /area/lv624/lazarus/sleep_female) "aBc" = ( /obj/item/device/radio/intercom{ @@ -5774,36 +4678,24 @@ name = "General Listening Channel"; pixel_x = -30 }, -/turf/open/floor{ - dir = 9; - icon_state = "purple" - }, +/turf/open/floor/purple/northwest, /area/lv624/lazarus/sleep_female) "aBd" = ( /obj/item/reagent_container/food/snacks/donkpocket, /obj/structure/flora/pottedplant, /obj/structure/pipes/vents/pump, -/turf/open/floor{ - dir = 9; - icon_state = "purple" - }, +/turf/open/floor/purple/northwest, /area/lv624/lazarus/sleep_female) "aBe" = ( /obj/structure/surface/table, /obj/item/phone, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 9; - icon_state = "purple" - }, +/turf/open/floor/purple/northwest, /area/lv624/lazarus/sleep_female) "aBf" = ( /obj/structure/surface/table, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 9; - icon_state = "purple" - }, +/turf/open/floor/purple/northwest, /area/lv624/lazarus/sleep_female) "aBg" = ( /obj/item/stack/sheet/metal, @@ -5843,10 +4735,7 @@ dir = 4; icon_state = "p_stair_full" }, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv624/ground/caves/sand_temple) "aBk" = ( /obj/structure/flora/bush/ausbushes/grassybush, @@ -5872,9 +4761,7 @@ }, /obj/structure/largecrate/random, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/plating{ - icon_state = "platebot" - }, +/turf/open/floor/plating/platebot, /area/lv624/lazarus/robotics) "aBq" = ( /obj/structure/largecrate, @@ -5885,43 +4772,32 @@ /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/plating{ - icon_state = "platebot" - }, +/turf/open/floor/plating/platebot, /area/lv624/lazarus/robotics) "aBr" = ( /obj/structure/machinery/constructable_frame{ icon_state = "box_1" }, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/lv624/lazarus/robotics) "aBs" = ( /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor{ - icon_state = "vault" - }, +/turf/open/floor/vault2, /area/lv624/lazarus/robotics) "aBt" = ( /obj/structure/computerframe, /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/plating{ - icon_state = "platebot" - }, +/turf/open/floor/plating/platebot, /area/lv624/lazarus/robotics) "aBv" = ( /obj/structure/surface/table, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/lv624/lazarus/research) "aBx" = ( /obj/effect/landmark/hunter_secondary, @@ -5931,51 +4807,34 @@ /obj/structure/flora/pottedplant, /obj/item/trash/cheesie, /obj/structure/pipes/vents/pump, -/turf/open/floor{ - icon_state = "bluecorner" - }, +/turf/open/floor/bluecorner, /area/lv624/lazarus/sleep_male) "aBz" = ( /obj/structure/bed/chair/office/light{ dir = 1 }, -/turf/open/floor{ - icon_state = "bluecorner" - }, +/turf/open/floor/bluecorner, /area/lv624/lazarus/sleep_male) "aBA" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor{ - icon_state = "bluecorner" - }, +/turf/open/floor/bluecorner, /area/lv624/lazarus/sleep_male) "aBB" = ( /obj/effect/decal/cleanable/vomit, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/main_hall) "aBC" = ( -/turf/open/floor{ - dir = 9; - icon_state = "purple" - }, +/turf/open/floor/purple/northwest, /area/lv624/lazarus/sleep_female) "aBD" = ( /obj/structure/barricade/wooden{ dir = 8 }, -/turf/open/floor{ - dir = 9; - icon_state = "purple" - }, +/turf/open/floor/purple/northwest, /area/lv624/lazarus/sleep_female) "aBE" = ( /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor{ - dir = 9; - icon_state = "purple" - }, +/turf/open/floor/purple/northwest, /area/lv624/lazarus/sleep_female) "aBF" = ( /obj/structure/bed/chair/comfy/lime{ @@ -5983,10 +4842,7 @@ }, /obj/effect/landmark/survivor_spawner, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 9; - icon_state = "purple" - }, +/turf/open/floor/purple/northwest, /area/lv624/lazarus/sleep_female) "aBG" = ( /obj/item/stack/rods{ @@ -6030,15 +4886,6 @@ /obj/structure/flora/jungle/vines/light_3, /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/central_jungle) -"aBR" = ( -/obj/structure/largecrate, -/obj/structure/prop/mech/mech_parts/part/gygax_armor{ - layer = 1 - }, -/turf/open/floor/plating{ - icon_state = "platebot" - }, -/area/lv624/lazarus/robotics) "aBS" = ( /obj/structure/barricade/wooden{ dir = 8 @@ -6050,44 +4897,31 @@ req_access_txt = "100"; req_one_access = null }, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/lv624/lazarus/robotics) "aBT" = ( /obj/structure/bed/chair/wheelchair, -/turf/open/floor{ - icon_state = "bluecorner" - }, +/turf/open/floor/bluecorner, /area/lv624/lazarus/sleep_male) "aBU" = ( /obj/effect/decal/cleanable/blood, /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - icon_state = "bluecorner" - }, +/turf/open/floor/bluecorner, /area/lv624/lazarus/sleep_male) "aBV" = ( /obj/effect/decal/cleanable/blood, /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor{ - icon_state = "bluecorner" - }, +/turf/open/floor/bluecorner, /area/lv624/lazarus/sleep_male) "aBW" = ( /obj/item/stack/medical/advanced/bruise_pack, -/turf/open/floor{ - icon_state = "bluecorner" - }, +/turf/open/floor/bluecorner, /area/lv624/lazarus/sleep_male) "aBY" = ( /obj/effect/landmark/crap_item, -/turf/open/floor{ - icon_state = "bluecorner" - }, +/turf/open/floor/bluecorner, /area/lv624/lazarus/sleep_male) "aBZ" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ @@ -6095,14 +4929,10 @@ name = "\improper Nexus Dome Male Dormitories"; req_access_txt = "100" }, -/turf/open/floor{ - icon_state = "bluecorner" - }, +/turf/open/floor/bluecorner, /area/lv624/lazarus/sleep_male) "aCa" = ( -/turf/open/floor{ - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen, /area/lv624/lazarus/main_hall) "aCb" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ @@ -6110,32 +4940,17 @@ name = "\improper Nexus Dome Female Dormitories"; req_access_txt = "100" }, -/turf/open/floor{ - dir = 9; - icon_state = "purple" - }, +/turf/open/floor/purple/northwest, /area/lv624/lazarus/sleep_female) "aCc" = ( /obj/effect/landmark/crap_item, -/turf/open/floor{ - dir = 9; - icon_state = "purple" - }, +/turf/open/floor/purple/northwest, /area/lv624/lazarus/sleep_female) "aCd" = ( /obj/structure/machinery/light/small{ dir = 4 }, -/obj/structure/machinery/power/apc{ - dir = 4; - name = "Women's Dorms APC"; - pixel_x = 30; - start_charge = 0 - }, -/turf/open/floor{ - dir = 9; - icon_state = "purple" - }, +/turf/open/floor/purple/northwest, /area/lv624/lazarus/sleep_female) "aCh" = ( /obj/structure/machinery/landinglight/ds2/delaytwo{ @@ -6149,27 +4964,19 @@ /area/lv624/lazarus/landing_zones/lz2) "aCk" = ( /obj/structure/largecrate/random, -/turf/open/floor/plating{ - icon_state = "platebot" - }, +/turf/open/floor/plating/platebot, /area/lv624/lazarus/robotics) "aCl" = ( /obj/structure/largecrate, -/turf/open/floor/plating{ - icon_state = "platebot" - }, +/turf/open/floor/plating/platebot, /area/lv624/lazarus/robotics) "aCm" = ( /obj/structure/machinery/vending/coffee, -/turf/open/floor{ - icon_state = "vault" - }, +/turf/open/floor/vault2, /area/lv624/lazarus/robotics) "aCn" = ( /obj/structure/ore_box, -/turf/open/floor/plating{ - icon_state = "platebot" - }, +/turf/open/floor/plating/platebot, /area/lv624/lazarus/robotics) "aCo" = ( /obj/effect/decal/mecha_wreckage/ripley{ @@ -6185,9 +4992,7 @@ "aCq" = ( /obj/structure/surface/table, /obj/item/trash/cheesie, -/turf/open/floor{ - icon_state = "bluecorner" - }, +/turf/open/floor/bluecorner, /area/lv624/lazarus/sleep_male) "aCr" = ( /obj/structure/bed/chair/office/light{ @@ -6195,9 +5000,7 @@ }, /obj/effect/decal/cleanable/blood, /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor{ - icon_state = "bluecorner" - }, +/turf/open/floor/bluecorner, /area/lv624/lazarus/sleep_male) "aCs" = ( /obj/structure/fence, @@ -6208,16 +5011,12 @@ /obj/item/tool/crowbar, /obj/item/clothing/gloves/yellow, /obj/item/stack/medical/bruise_pack, -/turf/open/floor{ - icon_state = "bluecorner" - }, +/turf/open/floor/bluecorner, /area/lv624/lazarus/sleep_male) "aCu" = ( /obj/structure/bed, /obj/item/bedsheet/blue, -/turf/open/floor{ - icon_state = "bluecorner" - }, +/turf/open/floor/bluecorner, /area/lv624/lazarus/sleep_male) "aCv" = ( /obj/structure/closet{ @@ -6229,24 +5028,17 @@ dir = 1 }, /obj/item/clothing/under/colonist, -/turf/open/floor{ - icon_state = "bluecorner" - }, +/turf/open/floor/bluecorner, /area/lv624/lazarus/sleep_male) "aCw" = ( -/turf/open/floor{ - icon_state = "whitegreencorner" - }, +/turf/open/floor/whitegreencorner, /area/lv624/lazarus/main_hall) "aCx" = ( /obj/structure/flora/bush/ausbushes/grassybush, /turf/open/floor/grass, /area/lv624/lazarus/main_hall) "aCy" = ( -/turf/open/floor{ - dir = 8; - icon_state = "whitegreencorner" - }, +/turf/open/floor/whitegreencorner/west, /area/lv624/lazarus/main_hall) "aCz" = ( /obj/structure/closet, @@ -6255,28 +5047,19 @@ }, /obj/item/device/healthanalyzer, /obj/item/clothing/shoes/centcom, -/turf/open/floor{ - dir = 9; - icon_state = "purple" - }, +/turf/open/floor/purple/northwest, /area/lv624/lazarus/sleep_female) "aCA" = ( /obj/structure/bed, /obj/item/bedsheet/hos, -/turf/open/floor{ - dir = 9; - icon_state = "purple" - }, +/turf/open/floor/purple/northwest, /area/lv624/lazarus/sleep_female) "aCB" = ( /obj/structure/bed, /obj/item/bedsheet/purple, /obj/structure/pipes/standard/simple/hidden/cyan, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor{ - dir = 9; - icon_state = "purple" - }, +/turf/open/floor/purple/northwest, /area/lv624/lazarus/sleep_female) "aCC" = ( /obj/item/reagent_container/food/drinks/flask/barflask, @@ -6286,10 +5069,7 @@ name = "General Listening Channel"; pixel_x = -30 }, -/turf/open/floor{ - dir = 9; - icon_state = "purple" - }, +/turf/open/floor/purple/northwest, /area/lv624/lazarus/sleep_female) "aCE" = ( /obj/structure/girder/displaced, @@ -6310,14 +5090,10 @@ /area/lv624/lazarus/landing_zones/lz2) "aCK" = ( /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/plating{ - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate, /area/lv624/lazarus/robotics) "aCL" = ( -/turf/open/floor/plating{ - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate, /area/lv624/lazarus/robotics) "aCO" = ( /turf/open/gm/dirtgrassborder/grassdirt_corner/north_west, @@ -6332,9 +5108,7 @@ name = "General Listening Channel"; pixel_x = -30 }, -/turf/open/floor{ - icon_state = "bluecorner" - }, +/turf/open/floor/bluecorner, /area/lv624/lazarus/sleep_male) "aCQ" = ( /obj/structure/surface/table, @@ -6342,16 +5116,12 @@ layer = 3.1 }, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - icon_state = "bluecorner" - }, +/turf/open/floor/bluecorner, /area/lv624/lazarus/sleep_male) "aCR" = ( /obj/item/trash/cheesie, /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor{ - icon_state = "bluecorner" - }, +/turf/open/floor/bluecorner, /area/lv624/lazarus/sleep_male) "aCS" = ( /obj/structure/fence, @@ -6364,9 +5134,7 @@ opened = 1 }, /obj/item/clothing/under/colonist, -/turf/open/floor{ - icon_state = "bluecorner" - }, +/turf/open/floor/bluecorner, /area/lv624/lazarus/sleep_male) "aCU" = ( /obj/structure/bed, @@ -6376,13 +5144,12 @@ name = "General Listening Channel"; pixel_x = -30 }, -/turf/open/floor{ - icon_state = "bluecorner" - }, +/turf/open/floor/bluecorner, /area/lv624/lazarus/sleep_male) "aCV" = ( +/obj/structure/flora/bush/ausbushes/lavendergrass, /turf/open/gm/grass/grass1, -/area/lv624/lazarus/sleep_male) +/area/lv624/ground/jungle/central_jungle) "aCX" = ( /turf/open/floor/grass, /area/lv624/lazarus/main_hall) @@ -6401,53 +5168,36 @@ }, /obj/item/clothing/under/colonist, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - dir = 9; - icon_state = "purple" - }, +/turf/open/floor/purple/northwest, /area/lv624/lazarus/sleep_female) "aCZ" = ( /obj/structure/surface/table, /obj/item/weapon/gun/pistol/holdout, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/plating{ - icon_state = "platebot" - }, +/turf/open/floor/plating/platebot, /area/lv624/lazarus/robotics) "aDa" = ( /obj/structure/bed, /obj/item/bedsheet/mime, /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor{ - dir = 9; - icon_state = "purple" - }, +/turf/open/floor/purple/northwest, /area/lv624/lazarus/sleep_female) "aDb" = ( /obj/structure/bed/chair/comfy/black, -/turf/open/floor{ - dir = 9; - icon_state = "purple" - }, +/turf/open/floor/purple/northwest, /area/lv624/lazarus/sleep_female) "aDc" = ( /obj/structure/surface/table, /obj/item/device/megaphone, /obj/item/tool/wrench, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 9; - icon_state = "purple" - }, +/turf/open/floor/purple/northwest, /area/lv624/lazarus/sleep_female) "aDd" = ( /turf/open/floor/plating, /area/lv624/lazarus/quartstorage) "aDi" = ( -/turf/open/floor{ - dir = 1; - icon_state = "warning" - }, +/turf/open/floor/warning/north, /area/lv624/lazarus/landing_zones/lz1) "aDj" = ( /obj/structure/flora/jungle/planttop1, @@ -6466,45 +5216,33 @@ dir = 1 }, /obj/effect/landmark/survivor_spawner, -/turf/open/floor{ - icon_state = "bluecorner" - }, +/turf/open/floor/bluecorner, /area/lv624/lazarus/sleep_male) "aDq" = ( /obj/structure/bed, /obj/item/bedsheet/blue, /obj/structure/machinery/light, -/turf/open/floor{ - icon_state = "bluecorner" - }, +/turf/open/floor/bluecorner, /area/lv624/lazarus/sleep_male) "aDr" = ( /obj/structure/surface/table, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/plating{ - icon_state = "platebot" - }, +/turf/open/floor/plating/platebot, /area/lv624/lazarus/robotics) "aDs" = ( /obj/structure/bed/roller, /obj/structure/machinery/light, -/turf/open/floor{ - icon_state = "bluecorner" - }, +/turf/open/floor/bluecorner, /area/lv624/lazarus/sleep_male) "aDt" = ( /obj/structure/closet, /obj/item/storage/fancy/cigarettes/wypacket, -/turf/open/floor{ - icon_state = "bluecorner" - }, +/turf/open/floor/bluecorner, /area/lv624/lazarus/sleep_male) "aDu" = ( /obj/structure/bed/chair, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/main_hall) "aDv" = ( /turf/open/gm/dirt, @@ -6517,10 +5255,7 @@ /obj/structure/closet, /obj/item/clothing/under/blackskirt, /obj/item/stack/medical/advanced/ointment, -/turf/open/floor{ - dir = 9; - icon_state = "purple" - }, +/turf/open/floor/purple/northwest, /area/lv624/lazarus/sleep_female) "aDy" = ( /turf/closed/wall, @@ -6528,19 +5263,13 @@ "aDz" = ( /obj/structure/bed, /obj/structure/machinery/light, -/turf/open/floor{ - dir = 9; - icon_state = "purple" - }, +/turf/open/floor/purple/northwest, /area/lv624/lazarus/sleep_female) "aDA" = ( /obj/structure/bed, /obj/structure/machinery/light, /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor{ - dir = 9; - icon_state = "purple" - }, +/turf/open/floor/purple/northwest, /area/lv624/lazarus/sleep_female) "aDB" = ( /obj/structure/surface/table, @@ -6549,17 +5278,11 @@ pixel_x = -32 }, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 9; - icon_state = "purple" - }, +/turf/open/floor/purple/northwest, /area/lv624/lazarus/sleep_female) "aDE" = ( -/obj/structure/machinery/power/apc{ - dir = 8; - name = "Storage Pods APC"; - pixel_x = -30; - start_charge = 0 +/obj/structure/machinery/power/apc/nocharge{ + dir = 8 }, /turf/open/floor/vault, /area/lv624/lazarus/quartstorage) @@ -6568,10 +5291,7 @@ /turf/open/floor/vault, /area/lv624/lazarus/quartstorage) "aDG" = ( -/turf/open/floor{ - dir = 8; - icon_state = "warning" - }, +/turf/open/floor/warning/west, /area/lv624/lazarus/landing_zones/lz1) "aDI" = ( /obj/structure/machinery/landinglight/ds1/delaytwo, @@ -6590,10 +5310,7 @@ /turf/open/floor/plating, /area/lv624/lazarus/landing_zones/lz1) "aDM" = ( -/turf/open/floor{ - dir = 4; - icon_state = "warning" - }, +/turf/open/floor/warning/east, /area/lv624/lazarus/landing_zones/lz1) "aDN" = ( /obj/structure/flora/jungle/plantbot1, @@ -6620,10 +5337,7 @@ /turf/closed/wall, /area/lv624/lazarus/toilet) "aDV" = ( -/turf/open/floor/plating{ - dir = 10; - icon_state = "asteroidwarning" - }, +/turf/open/floor/plating/asteroidwarning/southwest, /area/lv624/lazarus/landing_zones/lz2) "aDW" = ( /obj/structure/machinery/light{ @@ -6632,9 +5346,7 @@ /obj/structure/surface/table, /obj/item/trash/cheesie, /obj/effect/landmark/crap_item, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/main_hall) "aDX" = ( /obj/structure/machinery/light{ @@ -6643,9 +5355,7 @@ /obj/structure/surface/table, /obj/item/reagent_container/food/snacks/cheeseburger, /obj/effect/landmark/crap_item, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/main_hall) "aDY" = ( /turf/closed/wall, @@ -6659,26 +5369,17 @@ /area/lv624/lazarus/quart) "aEd" = ( /obj/structure/largecrate/random, -/turf/open/floor{ - dir = 4; - icon_state = "loadingarea" - }, +/turf/open/floor/loadingarea/east, /area/lv624/lazarus/quartstorage) "aEe" = ( /turf/open/gm/dirtgrassborder/grassdirt_corner2/north_west, /area/lv624/ground/jungle/west_jungle) "aEf" = ( /obj/effect/landmark/crap_item, -/turf/open/floor{ - dir = 1; - icon_state = "bot" - }, +/turf/open/floor/bot/north, /area/lv624/lazarus/quartstorage) "aEg" = ( -/turf/open/floor{ - dir = 1; - icon_state = "bot" - }, +/turf/open/floor/bot/north, /area/lv624/lazarus/quartstorage) "aEh" = ( /obj/structure/reagent_dispensers/watertank, @@ -6702,10 +5403,7 @@ /area/lv624/lazarus/landing_zones/lz1) "aEn" = ( /obj/effect/landmark/survivor_spawner, -/turf/open/floor{ - dir = 8; - icon_state = "barber" - }, +/turf/open/floor/barber/west, /area/lv624/lazarus/fitness) "aEs" = ( /obj/structure/fence, @@ -6739,15 +5437,10 @@ /obj/structure/machinery/light/small{ dir = 1 }, -/obj/structure/machinery/power/apc{ - dir = 1; - name = "Unisex Bathrooms APC"; - pixel_y = 30; - start_charge = 0 - }, -/turf/open/floor{ - icon_state = "freezerfloor" +/obj/structure/machinery/power/apc/nocharge{ + dir = 8 }, +/turf/open/floor/freezerfloor, /area/lv624/lazarus/toilet) "aEB" = ( /obj/structure/window/reinforced/tinted, @@ -6755,9 +5448,7 @@ dir = 4 }, /obj/effect/landmark/crap_item, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/lv624/lazarus/toilet) "aEC" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ @@ -6773,9 +5464,7 @@ /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/lv624/lazarus/toilet) "aEE" = ( /obj/structure/machinery/shower{ @@ -6788,9 +5477,7 @@ /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/lv624/lazarus/toilet) "aEF" = ( /obj/structure/pipes/standard/manifold/hidden/cyan, @@ -6806,10 +5493,7 @@ /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor{ - dir = 1; - icon_state = "chapel" - }, +/turf/open/floor/chapel/north, /area/lv624/lazarus/chapel) "aEH" = ( /obj/item/device/radio/intercom{ @@ -6821,43 +5505,29 @@ /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor{ - dir = 4; - icon_state = "chapel" - }, +/turf/open/floor/chapel/east, /area/lv624/lazarus/chapel) "aEI" = ( /obj/effect/decal/cleanable/blood/drip, /turf/open/floor/wood, /area/lv624/ground/caves/north_central_caves) "aEJ" = ( -/turf/open/floor/wood{ - icon_state = "wood-broken6" - }, +/turf/open/floor/wood/wood_broken6, /area/lv624/ground/caves/north_central_caves) "aEK" = ( -/obj/structure/machinery/power/apc{ - dir = 1; - name = "Chapel APC"; - pixel_y = 30; - start_charge = 0 - }, /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor{ - dir = 1; - icon_state = "chapel" +/obj/structure/machinery/power/apc/nocharge{ + dir = 1 }, +/turf/open/floor/chapel/north, /area/lv624/lazarus/chapel) "aEL" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor{ - dir = 4; - icon_state = "chapel" - }, +/turf/open/floor/chapel/east, /area/lv624/lazarus/chapel) "aEM" = ( /turf/open/gm/coast/beachcorner2/north_east, @@ -6869,25 +5539,19 @@ /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/main_hall) "aEP" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/main_hall) "aEQ" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor{ - icon_state = "whitegreencorner" - }, +/turf/open/floor/whitegreencorner, /area/lv624/lazarus/main_hall) "aER" = ( /obj/structure/flora/bush/ausbushes/var3/leafybush, @@ -6900,10 +5564,7 @@ /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor{ - dir = 8; - icon_state = "whitegreencorner" - }, +/turf/open/floor/whitegreencorner/west, /area/lv624/lazarus/main_hall) "aET" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ @@ -6919,20 +5580,14 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv624/lazarus/quart) "aEV" = ( /obj/structure/largecrate/random, /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv624/lazarus/quart) "aEW" = ( /obj/structure/surface/table, @@ -6942,10 +5597,7 @@ /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv624/lazarus/quart) "aEX" = ( /obj/structure/dispenser, @@ -6958,34 +5610,22 @@ /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv624/lazarus/quart) "aEY" = ( /obj/structure/largecrate/random, /obj/structure/pipes/standard/manifold/hidden/cyan, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv624/lazarus/quart) "aEZ" = ( -/obj/structure/machinery/power/apc{ - dir = 1; - name = "Quartermaster APC"; - pixel_y = 30; - start_charge = 0 - }, /obj/structure/largecrate/random, /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" +/obj/structure/machinery/power/apc/nocharge{ + dir = 1 }, +/turf/open/floor/whiteyellowfull/east, /area/lv624/lazarus/quart) "aFa" = ( /obj/structure/largecrate/random, @@ -6995,20 +5635,14 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv624/lazarus/quart) "aFb" = ( /obj/structure/largecrate/random, /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor{ - dir = 4; - icon_state = "loadingarea" - }, +/turf/open/floor/loadingarea/east, /area/lv624/lazarus/quartstorage) "aFh" = ( /obj/structure/window/reinforced/tinted, @@ -7016,9 +5650,7 @@ /obj/structure/toilet{ dir = 4 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/lv624/lazarus/toilet) "aFj" = ( /obj/structure/window/reinforced/tinted, @@ -7028,49 +5660,36 @@ /obj/structure/toilet{ dir = 8 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/lv624/lazarus/toilet) "aFk" = ( /obj/structure/machinery/shower{ dir = 4 }, /obj/effect/landmark/survivor_spawner, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/lv624/lazarus/toilet) "aFl" = ( /obj/structure/machinery/shower{ dir = 8 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/lv624/lazarus/toilet) "aFm" = ( /turf/closed/wall/wood, /area/lv624/ground/jungle/west_jungle/ceiling) "aFn" = ( -/turf/open/floor{ - icon_state = "chapel" - }, +/turf/open/floor/chapel, /area/lv624/lazarus/chapel) "aFo" = ( /turf/open/floor/plating, /area/lv624/lazarus/chapel) "aFp" = ( -/turf/open/floor{ - dir = 8; - icon_state = "chapel" - }, +/turf/open/floor/chapel/west, /area/lv624/lazarus/chapel) "aFq" = ( /obj/structure/window_frame/colony, -/turf/open/floor/plating{ - icon_state = "platebotc" - }, +/turf/open/floor/plating/platebotc, /area/lv624/lazarus/chapel) "aFr" = ( /obj/structure/bed/chair/wheelchair, @@ -7094,16 +5713,10 @@ req_access_txt = "100"; req_one_access = null }, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv624/lazarus/quart) "aFv" = ( -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv624/lazarus/quart) "aFw" = ( /obj/structure/machinery/bot/mulebot{ @@ -7113,10 +5726,7 @@ on = 0 }, /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv624/lazarus/quart) "aFx" = ( /obj/structure/window/reinforced{ @@ -7125,44 +5735,29 @@ /obj/structure/computerframe{ anchored = 1 }, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv624/lazarus/quart) "aFy" = ( /obj/structure/surface/rack, /obj/effect/landmark/costume/butler, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv624/lazarus/quart) "aFA" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/tech_supply, /obj/effect/spawner/random/tech_supply, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv624/lazarus/quart) "aFB" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/technology_scanner, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv624/lazarus/quart) "aFC" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/tech_supply, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv624/lazarus/quart) "aFD" = ( /obj/structure/surface/rack, @@ -7171,17 +5766,11 @@ }, /obj/effect/spawner/random/toolbox, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv624/lazarus/quart) "aFE" = ( /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor{ - dir = 1; - icon_state = "bot" - }, +/turf/open/floor/bot/north, /area/lv624/lazarus/quartstorage) "aFF" = ( /obj/structure/barricade/wooden, @@ -7222,34 +5811,24 @@ /obj/structure/machinery/shower{ dir = 4 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/lv624/lazarus/toilet) "aFP" = ( /obj/structure/machinery/shower{ dir = 8 }, /obj/effect/glowshroom, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/lv624/lazarus/toilet) "aFQ" = ( /obj/structure/window_frame/wood, /turf/open/floor/wood, /area/lv624/ground/jungle/west_jungle/ceiling) "aFR" = ( -/turf/open/floor{ - dir = 4; - icon_state = "chapel" - }, +/turf/open/floor/chapel/east, /area/lv624/lazarus/chapel) "aFS" = ( -/turf/open/floor{ - dir = 1; - icon_state = "chapel" - }, +/turf/open/floor/chapel/north, /area/lv624/lazarus/chapel) "aFT" = ( /obj/structure/flora/bush/ausbushes/grassybush, @@ -7258,57 +5837,36 @@ /area/lv624/lazarus/main_hall) "aFU" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv624/lazarus/quart) "aFV" = ( /obj/structure/surface/table, /obj/item/trash/cheesie, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/northeast, /area/lv624/lazarus/research) "aFW" = ( /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv624/lazarus/quart) "aFY" = ( -/turf/open/floor{ - dir = 4; - icon_state = "loadingarea" - }, +/turf/open/floor/loadingarea/east, /area/lv624/lazarus/quartstorage) "aFZ" = ( /obj/structure/window_frame/colony/reinforced, /turf/open/floor/plating, /area/lv624/lazarus/quartstorage) "aGa" = ( -/turf/open/floor{ - dir = 9; - icon_state = "warning" - }, +/turf/open/floor/warning/northwest, /area/lv624/lazarus/landing_zones/lz1) "aGb" = ( /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor{ - dir = 1; - icon_state = "warning" - }, +/turf/open/floor/warning/north, /area/lv624/lazarus/landing_zones/lz1) "aGc" = ( -/turf/open/floor{ - dir = 5; - icon_state = "warning" - }, +/turf/open/floor/warning/northeast, /area/lv624/lazarus/landing_zones/lz1) "aGe" = ( /obj/structure/machinery/landinglight/ds1/delayone{ @@ -7341,15 +5899,11 @@ /area/lv624/ground/jungle/west_central_jungle) "aGm" = ( /obj/effect/glowshroom, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/lv624/lazarus/toilet) "aGn" = ( /obj/effect/landmark/survivor_spawner, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/lv624/lazarus/toilet) "aGo" = ( /obj/structure/machinery/door/airlock/almayer/generic{ @@ -7357,35 +5911,24 @@ name = "\improper Nexus Dome Bathroom"; req_access_txt = "100" }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/lv624/lazarus/toilet) "aGp" = ( /obj/structure/machinery/light{ dir = 8 }, /obj/effect/landmark/good_item, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv624/lazarus/quart) "aGq" = ( /obj/structure/machinery/status_display{ pixel_y = -32 }, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv624/lazarus/quart) "aGr" = ( /obj/structure/machinery/door/window/westleft, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv624/lazarus/quart) "aGs" = ( /turf/closed/wall, @@ -7393,27 +5936,18 @@ "aGt" = ( /obj/structure/surface/rack, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv624/lazarus/quart) "aGu" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/bomb_supply, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv624/lazarus/quart) "aGw" = ( /turf/open/floor, /area/lv624/lazarus/quartstorage) "aGx" = ( -/turf/open/floor{ - dir = 1; - icon_state = "loadingarea" - }, +/turf/open/floor/loadingarea/north, /area/lv624/lazarus/quartstorage) "aGy" = ( /obj/item/stack/sheet/wood{ @@ -7442,32 +5976,24 @@ /turf/open/floor/plating, /area/lv624/lazarus/landing_zones/lz1) "aGH" = ( -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/lv624/lazarus/toilet) "aGI" = ( /obj/structure/sink{ pixel_y = 30 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/lv624/lazarus/toilet) "aGJ" = ( /obj/effect/landmark/crap_item, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/lv624/lazarus/toilet) "aGK" = ( /obj/structure/surface/table, /obj/structure/prop/mech/drill, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - icon_state = "vault" - }, +/turf/open/floor/vault2, /area/lv624/lazarus/robotics) "aGN" = ( /obj/structure/flora/bush/ausbushes/var3/brflowers, @@ -7478,10 +6004,7 @@ /obj/structure/window/reinforced{ dir = 8 }, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv624/lazarus/quart) "aGP" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony{ @@ -7492,21 +6015,13 @@ req_access_txt = "100"; req_one_access = null }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/quartstorage) "aGQ" = ( -/turf/open/floor{ - dir = 10; - icon_state = "warning" - }, +/turf/open/floor/warning/southwest, /area/lv624/lazarus/landing_zones/lz1) "aGR" = ( -/turf/open/floor{ - dir = 1; - icon_state = "warningcorner" - }, +/turf/open/floor/warningcorner/north, /area/lv624/lazarus/landing_zones/lz1) "aGS" = ( /obj/structure/machinery/colony_floodlight, @@ -7538,15 +6053,11 @@ /obj/item/poster, /obj/item/clothing/glasses/regular/hipster, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - icon_state = "bluecorner" - }, +/turf/open/floor/bluecorner, /area/lv624/lazarus/sleep_male) "aHa" = ( /obj/structure/machinery/washing_machine, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/lv624/lazarus/toilet) "aHb" = ( /obj/structure/surface/table, @@ -7555,9 +6066,7 @@ }, /obj/item/explosive/grenade/custom/cleaner, /obj/item/reagent_container/spray/cleaner, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/lv624/lazarus/toilet) "aHc" = ( /obj/structure/machinery/light/small{ @@ -7566,101 +6075,68 @@ /obj/structure/surface/table, /obj/structure/prop/mech/hydralic_clamp, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/plating{ - icon_state = "platebot" - }, +/turf/open/floor/plating/platebot, /area/lv624/lazarus/robotics) "aHe" = ( /obj/structure/machinery/vending/cigarette/colony, -/turf/open/floor{ - dir = 9; - icon_state = "whiteblue" - }, +/turf/open/floor/whiteblue/northwest, /area/lv624/lazarus/main_hall) "aHf" = ( /obj/structure/flora/pottedplant, /obj/structure/machinery/light/spot{ dir = 1 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/main_hall) "aHg" = ( /obj/effect/landmark/good_item, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/main_hall) "aHh" = ( /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/north, /area/lv624/lazarus/main_hall) "aHi" = ( /obj/structure/machinery/vending/snack, -/turf/open/floor{ - dir = 5; - icon_state = "whiteblue" - }, +/turf/open/floor/whiteblue/northeast, /area/lv624/lazarus/main_hall) "aHj" = ( /obj/structure/machinery/recharge_station, /obj/structure/window/reinforced{ dir = 8 }, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv624/lazarus/quart) "aHl" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/toolbox, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv624/lazarus/quart) "aHm" = ( /obj/structure/machinery/fermenter, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv624/lazarus/quart) "aHn" = ( /obj/structure/machinery/still, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv624/lazarus/quart) "aHo" = ( /obj/structure/machinery/vending/coffee, /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/main_hall) "aHp" = ( /obj/structure/extinguisher_cabinet{ pixel_y = 30 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/main_hall) "aHq" = ( /obj/structure/machinery/vending/cigarette/colony, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/main_hall) "aHr" = ( /obj/item/device/radio/intercom{ @@ -7669,23 +6145,14 @@ name = "General Listening Channel"; pixel_x = -30 }, -/turf/open/floor{ - dir = 8; - icon_state = "warning" - }, +/turf/open/floor/warning/west, /area/lv624/lazarus/landing_zones/lz1) "aHs" = ( /obj/item/tool/crowbar/red, -/turf/open/floor{ - dir = 8; - icon_state = "warningcorner" - }, +/turf/open/floor/warningcorner/west, /area/lv624/lazarus/landing_zones/lz1) "aHu" = ( -/turf/open/floor{ - dir = 4; - icon_state = "warningcorner" - }, +/turf/open/floor/warningcorner/east, /area/lv624/lazarus/landing_zones/lz1) "aHB" = ( /obj/structure/fence, @@ -7701,47 +6168,32 @@ /area/lv624/ground/jungle/west_jungle) "aHF" = ( /obj/structure/machinery/vending/coffee, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/main_hall) "aHH" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper Nexus Dome Chapel"; req_access_txt = "100" }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/chapel) "aHI" = ( -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/chapel) "aHJ" = ( /obj/structure/flora/pottedplant, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/main_hall) "aHK" = ( /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/main_hall) "aHL" = ( /obj/structure/largecrate/random, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/main_hall) "aHM" = ( -/turf/open/floor{ - dir = 1; - icon_state = "bot" - }, +/turf/open/floor/bot/north, /area/lv624/lazarus/landing_zones/lz1) "aHN" = ( /obj/structure/machinery/colony_floodlight, @@ -7765,25 +6217,17 @@ /turf/open/floor/wood, /area/lv624/ground/caves/north_central_caves) "aHZ" = ( -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowcorner" - }, +/turf/open/floor/whiteyellowcorner/east, /area/lv624/lazarus/main_hall) "aIb" = ( /obj/structure/flora/jungle/vines/light_1, -/turf/open/floor{ - dir = 8; - icon_state = "warning" - }, +/turf/open/floor/warning/west, /area/lv624/lazarus/landing_zones/lz2) "aIc" = ( /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/main_hall) "aId" = ( /obj/structure/flora/jungle/vines/light_3, @@ -7791,9 +6235,7 @@ /area/lv624/ground/jungle/south_west_jungle) "aIe" = ( /obj/effect/landmark/crap_item, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/main_hall) "aIg" = ( /obj/structure/machinery/light/small{ @@ -7808,65 +6250,42 @@ /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/main_hall) "aIh" = ( -/obj/structure/machinery/power/apc{ - dir = 1; - name = "Central Hallway APC"; - pixel_y = 30; - start_charge = 0 - }, /obj/structure/surface/table, /obj/effect/landmark/crap_item, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - icon_state = "white" +/obj/structure/machinery/power/apc/nocharge{ + dir = 1 }, +/turf/open/floor/white, /area/lv624/lazarus/main_hall) "aIi" = ( /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/main_hall) "aIj" = ( /obj/item/trash/chips, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/main_hall) "aIl" = ( /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/main_hall) "aIm" = ( /obj/structure/flora/bush/ausbushes/var3/fernybush, /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/west_jungle) -"aIn" = ( -/obj/structure/flora/bush/ausbushes/var3/sunnybush, -/turf/open/gm/grass/grass1, -/area/lv624/ground/jungle/west_jungle) -"aIo" = ( -/obj/structure/flora/bush/ausbushes/var3/stalkybush, -/turf/open/gm/grass/grass1, -/area/lv624/ground/jungle/west_jungle) "aIp" = ( /obj/structure/surface/table, /obj/effect/landmark/crap_item, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/main_hall) "aIq" = ( /obj/effect/landmark/monkey_spawn, @@ -7880,17 +6299,13 @@ /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/main_hall) "aIs" = ( /obj/structure/noticeboard{ pixel_y = 30 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/main_hall) "aIt" = ( /obj/item/device/radio/intercom{ @@ -7899,29 +6314,20 @@ name = "General Listening Channel"; pixel_y = 30 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/main_hall) "aIu" = ( /obj/structure/machinery/newscaster{ pixel_y = 30 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/main_hall) "aIv" = ( /obj/effect/landmark/hunter_secondary, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/main_hall) "aIw" = ( -/turf/open/floor{ - dir = 8; - icon_state = "loadingarea" - }, +/turf/open/floor/loadingarea/west, /area/lv624/lazarus/landing_zones/lz1) "aIy" = ( /obj/structure/surface/table/woodentable/poor, @@ -7931,9 +6337,7 @@ pixel_x = 4; pixel_y = 4 }, -/turf/open/floor/carpet{ - icon_state = "bcarpet01" - }, +/turf/open/floor/carpet/bcarpet01, /area/lv624/ground/caves/north_central_caves) "aIz" = ( /obj/structure/flora/jungle/vines/light_1, @@ -7948,19 +6352,16 @@ /area/lv624/ground/caves/south_central_caves) "aIB" = ( /obj/structure/closet, -/turf/open/floor{ - dir = 9; - icon_state = "purple" - }, +/turf/open/floor/purple/northwest, /area/lv624/lazarus/sleep_female) "aIE" = ( /obj/structure/flora/bush/ausbushes/var3/stalkybush, /obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{ - pixel_x = 11; - pixel_y = -2; light_on = 1; light_range = 1; - light_system = 1 + light_system = 1; + pixel_x = 11; + pixel_y = -2 }, /turf/open/auto_turf/strata_grass/layer1, /area/lv624/ground/caves/south_west_caves) @@ -7975,10 +6376,7 @@ /obj/structure/surface/rack, /obj/item/clothing/glasses/regular, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/northeast, /area/lv624/lazarus/research) "aIJ" = ( /obj/structure/flora/bush/ausbushes/var3/sparsegrass, @@ -7995,9 +6393,7 @@ dir = 2; name = "\improper Atmospherics Condenser" }, -/turf/open/floor/plating{ - icon_state = "platebotc" - }, +/turf/open/floor/plating/platebotc, /area/lv624/lazarus/yggdrasil) "aIO" = ( /obj/structure/flora/jungle/vines/heavy, @@ -8009,10 +6405,7 @@ name = "\improper Nexus Dome"; req_access_txt = "100" }, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowcorner" - }, +/turf/open/floor/whiteyellowcorner/east, /area/lv624/lazarus/main_hall) "aIV" = ( /obj/structure/flora/jungle/vines/light_3, @@ -8020,9 +6413,7 @@ /turf/closed/wall/strata_ice/jungle, /area/lv624/ground/jungle/south_west_jungle) "aIX" = ( -/obj/structure/flora/grass/tallgrass/jungle/corner{ - dir = 3 - }, +/obj/structure/flora/grass/tallgrass/jungle/corner, /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/west_jungle) "aIY" = ( @@ -8034,10 +6425,7 @@ /turf/closed/wall/strata_ice/jungle, /area/lv624/lazarus/landing_zones/lz1) "aJa" = ( -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv624/lazarus/main_hall) "aJb" = ( /turf/open/floor, @@ -8049,36 +6437,23 @@ "aJd" = ( /obj/effect/decal/cleanable/blood/splatter, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv624/lazarus/main_hall) "aJe" = ( /obj/effect/decal/cleanable/blood/splatter, /obj/effect/decal/cleanable/blood/gibs, /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv624/lazarus/main_hall) "aJf" = ( /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv624/lazarus/main_hall) "aJg" = ( -/turf/open/floor{ - icon_state = "whiteyellowcorner" - }, +/turf/open/floor/whiteyellowcorner, /area/lv624/lazarus/main_hall) "aJh" = ( -/turf/open/floor{ - icon_state = "whiteyellow" - }, +/turf/open/floor/whiteyellow, /area/lv624/lazarus/main_hall) "aJi" = ( /obj/structure/flora/jungle/vines/light_2, @@ -8086,10 +6461,7 @@ /turf/closed/wall/strata_ice/jungle, /area/lv624/ground/jungle/south_east_jungle) "aJj" = ( -/turf/open/floor{ - dir = 8; - icon_state = "whiteyellowcorner" - }, +/turf/open/floor/whiteyellowcorner/west, /area/lv624/lazarus/main_hall) "aJk" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ @@ -8097,16 +6469,11 @@ name = "\improper Nexus Dome"; req_access_txt = "100" }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/main_hall) "aJl" = ( /obj/effect/landmark/crap_item, -/turf/open/floor{ - dir = 8; - icon_state = "loadingarea" - }, +/turf/open/floor/loadingarea/west, /area/lv624/lazarus/landing_zones/lz1) "aJr" = ( /turf/open/gm/grass/grass1, @@ -8131,10 +6498,7 @@ /turf/open/floor/plating, /area/lv624/lazarus/main_hall) "aJB" = ( -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellow" - }, +/turf/open/floor/whiteyellow/east, /area/lv624/lazarus/main_hall) "aJC" = ( /obj/item/phone{ @@ -8149,18 +6513,14 @@ dir = 1 }, /obj/structure/window/reinforced, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/lv624/lazarus/main_hall) "aJD" = ( /obj/structure/window/reinforced{ dir = 1 }, /obj/structure/window/reinforced, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/lv624/lazarus/main_hall) "aJE" = ( /obj/structure/showcase, @@ -8168,9 +6528,7 @@ dir = 1 }, /obj/structure/window/reinforced, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/lv624/lazarus/main_hall) "aJF" = ( /obj/structure/fence, @@ -8191,22 +6549,14 @@ dir = 1 }, /obj/structure/window/reinforced, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/lv624/lazarus/main_hall) "aJH" = ( -/turf/open/floor{ - dir = 8; - icon_state = "whiteyellow" - }, +/turf/open/floor/whiteyellow/west, /area/lv624/lazarus/main_hall) "aJI" = ( /obj/effect/decal/cleanable/blood/gibs, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv624/lazarus/main_hall) "aJJ" = ( /obj/structure/pipes/standard/simple/hidden/cyan, @@ -8216,10 +6566,7 @@ }, /area/lv624/lazarus/main_hall) "aJK" = ( -/turf/open/floor{ - dir = 1; - icon_state = "whiteyellowcorner" - }, +/turf/open/floor/whiteyellowcorner/north, /area/lv624/lazarus/main_hall) "aJL" = ( /obj/item/stock_parts/matter_bin/super, @@ -8232,18 +6579,14 @@ dir = 8; health = 80 }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/lv624/lazarus/main_hall) "aJM" = ( /obj/structure/window/reinforced, /obj/structure/window/reinforced{ dir = 1 }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/lv624/lazarus/main_hall) "aJN" = ( /obj/structure/showcase{ @@ -8254,9 +6597,7 @@ /obj/structure/window/reinforced{ dir = 1 }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/lv624/lazarus/main_hall) "aJO" = ( /obj/structure/fence, @@ -8272,17 +6613,13 @@ /obj/structure/window/reinforced{ dir = 4 }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/lv624/lazarus/main_hall) "aJQ" = ( /obj/item/stack/sheet/wood{ amount = 2 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/main_hall) "aJR" = ( /obj/effect/decal/cleanable/blood/tracks/footprints{ @@ -8291,10 +6628,7 @@ /obj/effect/decal/cleanable/blood/tracks/footprints{ dir = 8 }, -/turf/open/floor{ - dir = 8; - icon_state = "warning" - }, +/turf/open/floor/warning/west, /area/lv624/lazarus/landing_zones/lz1) "aJS" = ( /obj/effect/landmark/hunter_primary, @@ -8303,9 +6637,7 @@ "aJZ" = ( /obj/structure/closet, /obj/item/clothing/glasses/sunglasses, -/turf/open/floor{ - icon_state = "bluecorner" - }, +/turf/open/floor/bluecorner, /area/lv624/lazarus/sleep_male) "aKb" = ( /turf/closed/wall/strata_ice/jungle, @@ -8343,10 +6675,7 @@ dir = 4; icon_state = "p_stair_full" }, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv624/ground/caves/south_east_caves) "aKk" = ( /obj/structure/flora/jungle/plantbot1, @@ -8378,9 +6707,8 @@ /area/lv624/lazarus/yggdrasil) "aKq" = ( /obj/structure/flora/jungle/vines/light_1, -/obj/structure/machinery/power/apc{ - dir = 1; - name = "Atmospherics Processing APC" +/obj/structure/machinery/power/apc/nocharge{ + dir = 1 }, /turf/open/gm/grass/grass2, /area/lv624/lazarus/yggdrasil) @@ -8390,18 +6718,12 @@ /turf/open/floor/plating, /area/lv624/lazarus/yggdrasil) "aKv" = ( -/turf/open/floor{ - dir = 1; - icon_state = "whiteyellow" - }, +/turf/open/floor/whiteyellow/north, /area/lv624/lazarus/main_hall) "aKx" = ( /obj/item/tool/crowbar, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv624/lazarus/main_hall) "aKy" = ( /obj/effect/decal/cleanable/blood{ @@ -8447,26 +6769,20 @@ "aKJ" = ( /obj/structure/machinery/light/small, /obj/effect/landmark/crap_item, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/main_hall) "aKK" = ( /obj/structure/machinery/light/small, /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/main_hall) "aKL" = ( /obj/item/frame/table, /obj/effect/landmark/crap_item, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/main_hall) "aKM" = ( /obj/effect/decal/cleanable/blood/splatter, @@ -8547,9 +6863,7 @@ /obj/item/reagent_container/glass/bucket/mopbucket, /obj/item/tool/mop, /obj/item/tool/mop, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/main_hall) "aLo" = ( /obj/structure/flora/jungle/vines/light_3, @@ -8568,15 +6882,11 @@ /area/lv624/ground/caves/west_caves) "aLs" = ( /obj/effect/landmark/survivor_spawner, -/turf/open/floor/plating{ - icon_state = "platebot" - }, +/turf/open/floor/plating/platebot, /area/lv624/lazarus/robotics) "aLt" = ( /obj/effect/landmark/survivor_spawner, -/turf/open/floor{ - icon_state = "vault" - }, +/turf/open/floor/vault2, /area/lv624/lazarus/robotics) "aLv" = ( /turf/open/gm/grass/grass2, @@ -8635,9 +6945,7 @@ /obj/structure/surface/rack, /obj/item/weapon/gun/shotgun/pump, /obj/item/ammo_magazine/shotgun/slugs, -/turf/open/floor{ - icon_state = "cult" - }, +/turf/open/floor/cult, /area/lv624/lazarus/armory) "aLT" = ( /obj/effect/decal/cleanable/cobweb2, @@ -8647,9 +6955,7 @@ /obj/effect/landmark/crap_item, /obj/effect/landmark/crap_item, /obj/item/clothing/suit/armor/vest/security, -/turf/open/floor{ - icon_state = "cult" - }, +/turf/open/floor/cult, /area/lv624/lazarus/armory) "aLW" = ( /obj/structure/flora/jungle/vines/heavy, @@ -8657,17 +6963,11 @@ /area/lv624/ground/jungle/east_central_jungle) "aLX" = ( /obj/structure/target/syndicate, -/turf/open/floor{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/red/northeast, /area/lv624/lazarus/security) "aLZ" = ( /obj/structure/target, -/turf/open/floor{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/red/northwest, /area/lv624/lazarus/security) "aMa" = ( /obj/item/device/flash, @@ -8685,24 +6985,18 @@ name = "General Listening Channel"; pixel_y = 30 }, -/turf/open/floor{ - icon_state = "redcorner" - }, +/turf/open/floor/redcorner, /area/lv624/lazarus/security) "aMb" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/weapon/gun/shotgun/pump/dual_tube/cmb, /obj/item/ammo_magazine/shotgun/buckshot, -/turf/open/floor{ - icon_state = "red" - }, +/turf/open/floor/red, /area/lv624/lazarus/security) "aMc" = ( /obj/structure/closet, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - icon_state = "bluecorner" - }, +/turf/open/floor/bluecorner, /area/lv624/lazarus/sleep_male) "aMd" = ( /obj/structure/surface/table/reinforced/prison, @@ -8715,86 +7009,59 @@ phone_color = "red"; phone_id = "Marshal Office" }, -/turf/open/floor{ - dir = 8; - icon_state = "redcorner" - }, +/turf/open/floor/redcorner/west, /area/lv624/lazarus/security) "aMe" = ( /obj/structure/machinery/vending/cola, -/turf/open/floor{ - dir = 10; - icon_state = "whiteblue" - }, +/turf/open/floor/whiteblue/southwest, /area/lv624/lazarus/main_hall) "aMf" = ( /obj/structure/flora/pottedplant, /obj/structure/machinery/light/spot, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/main_hall) "aMg" = ( /obj/item/trash/raisins, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/main_hall) "aMh" = ( /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor{ - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen, /area/lv624/lazarus/main_hall) "aMi" = ( /obj/structure/reagent_dispensers/watertank, -/turf/open/floor{ - dir = 6; - icon_state = "whiteblue" - }, +/turf/open/floor/whiteblue/southeast, /area/lv624/lazarus/main_hall) "aMj" = ( /obj/structure/device/broken_piano, /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor{ - icon_state = "bar" - }, +/turf/open/floor/bar, /area/lv624/lazarus/canteen) "aMk" = ( /obj/structure/bed/chair/office/light{ dir = 8 }, -/turf/open/floor{ - icon_state = "bar" - }, +/turf/open/floor/bar, /area/lv624/lazarus/canteen) "aMl" = ( -/turf/open/floor{ - icon_state = "bar" - }, +/turf/open/floor/bar, /area/lv624/lazarus/canteen) "aMm" = ( /obj/structure/surface/table/gamblingtable, -/turf/open/floor{ - icon_state = "bar" - }, +/turf/open/floor/bar, /area/lv624/lazarus/canteen) "aMn" = ( /obj/structure/machinery/vending/cola, /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/main_hall) "aMo" = ( /obj/structure/machinery/vending/snack, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/main_hall) "aMp" = ( /obj/item/device/radio/intercom{ @@ -8803,15 +7070,10 @@ name = "General Listening Channel"; pixel_x = -30 }, -/turf/open/floor{ - dir = 10; - icon_state = "warning" - }, +/turf/open/floor/warning/southwest, /area/lv624/lazarus/landing_zones/lz1) "aMq" = ( -/turf/open/floor{ - icon_state = "warning" - }, +/turf/open/floor/warning, /area/lv624/lazarus/landing_zones/lz1) "aMr" = ( /obj/effect/landmark/lv624/xeno_tunnel, @@ -8875,9 +7137,7 @@ "aMX" = ( /obj/structure/machinery/deployable/barrier, /obj/effect/decal/cleanable/cobweb, -/turf/open/floor{ - icon_state = "cult" - }, +/turf/open/floor/cult, /area/lv624/lazarus/armory) "aMY" = ( /obj/structure/machinery/light/small{ @@ -8888,43 +7148,27 @@ /obj/item/ammo_magazine/pistol/highpower, /obj/item/ammo_magazine/pistol/highpower, /obj/item/ammo_magazine/pistol/highpower, -/turf/open/floor{ - icon_state = "cult" - }, +/turf/open/floor/cult, /area/lv624/lazarus/armory) "aMZ" = ( -/turf/open/floor{ - icon_state = "cult" - }, +/turf/open/floor/cult, /area/lv624/lazarus/armory) "aNb" = ( /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/red/northeast, /area/lv624/lazarus/security) "aNc" = ( -/turf/open/floor{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/red/northwest, /area/lv624/lazarus/security) "aNd" = ( /obj/structure/closet, /obj/item/clothing/shoes/mime, -/turf/open/floor{ - dir = 9; - icon_state = "purple" - }, +/turf/open/floor/purple/northwest, /area/lv624/lazarus/sleep_female) "aNe" = ( -/turf/open/floor{ - dir = 9; - icon_state = "redfull" - }, +/turf/open/floor/redfull/northwest, /area/lv624/lazarus/security) "aNf" = ( /obj/structure/flora/jungle/planttop1, @@ -8934,19 +7178,14 @@ /obj/structure/bed/chair/office/light{ dir = 1 }, -/turf/open/floor{ - dir = 9; - icon_state = "redfull" - }, +/turf/open/floor/redfull/northwest, /area/lv624/lazarus/security) "aNi" = ( /obj/effect/decal/cleanable/blood, /obj/item/device/flashlight/lamp, /obj/structure/surface/table, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - icon_state = "bluecorner" - }, +/turf/open/floor/bluecorner, /area/lv624/lazarus/sleep_male) "aNj" = ( /obj/structure/flora/bush/ausbushes/var3/stalkybush, @@ -8958,9 +7197,7 @@ /area/lv624/lazarus/kitchen) "aNl" = ( /obj/structure/bed/stool, -/turf/open/floor{ - icon_state = "bar" - }, +/turf/open/floor/bar, /area/lv624/lazarus/canteen) "aNn" = ( /obj/structure/flora/bush/ausbushes/reedbush, @@ -8978,9 +7215,7 @@ /area/lv624/lazarus/landing_zones/lz1) "aNA" = ( /obj/structure/flora/jungle/vines/light_1, -/turf/open/floor/plating{ - icon_state = "platebotc" - }, +/turf/open/floor/plating/platebotc, /area/lv624/lazarus/yggdrasil) "aNB" = ( /obj/structure/flora/bush/ausbushes/var3/fernybush, @@ -9028,59 +7263,37 @@ /area/lv624/lazarus/yggdrasil) "aNL" = ( /obj/structure/machinery/deployable/barrier, -/turf/open/floor{ - icon_state = "cult" - }, +/turf/open/floor/cult, /area/lv624/lazarus/armory) "aNM" = ( /obj/structure/surface/rack, /obj/effect/landmark/crap_item, /obj/effect/landmark/crap_item, /obj/item/clothing/suit/armor/vest/security, -/turf/open/floor{ - icon_state = "cult" - }, +/turf/open/floor/cult, /area/lv624/lazarus/armory) "aNN" = ( -/turf/open/floor{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/red/northeast, /area/lv624/lazarus/security) "aNO" = ( /obj/structure/machinery/vending/security, -/turf/open/floor{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/red/east, /area/lv624/lazarus/security) "aNP" = ( /obj/item/folder/red, -/turf/open/floor{ - dir = 9; - icon_state = "redfull" - }, +/turf/open/floor/redfull/northwest, /area/lv624/lazarus/security) "aNQ" = ( -/turf/open/floor{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/red/southwest, /area/lv624/lazarus/security) "aNR" = ( -/obj/structure/machinery/power/apc{ - dir = 1; - name = "Security Office APC" - }, -/turf/open/floor{ - icon_state = "red" +/obj/structure/machinery/power/apc/nocharge{ + dir = 1 }, +/turf/open/floor/red, /area/lv624/lazarus/security) "aNS" = ( -/turf/open/floor{ - dir = 8; - icon_state = "redcorner" - }, +/turf/open/floor/redcorner/west, /area/lv624/lazarus/security) "aNT" = ( /obj/structure/machinery/door/airlock/almayer/security/colony{ @@ -9096,10 +7309,7 @@ pixel_y = 22 }, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 8; - icon_state = "barber" - }, +/turf/open/floor/barber/west, /area/lv624/lazarus/kitchen) "aNW" = ( /obj/structure/sink/kitchen{ @@ -9115,19 +7325,13 @@ pixel_y = -4 }, /obj/item/reagent_container/food/snacks/donkpocket, -/turf/open/floor{ - dir = 8; - icon_state = "barber" - }, +/turf/open/floor/barber/west, /area/lv624/lazarus/kitchen) "aNX" = ( /obj/structure/surface/table, /obj/item/reagent_container/food/snacks/grown/tomato, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 8; - icon_state = "barber" - }, +/turf/open/floor/barber/west, /area/lv624/lazarus/kitchen) "aNY" = ( /obj/structure/surface/table, @@ -9135,24 +7339,15 @@ pixel_y = 9 }, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 8; - icon_state = "barber" - }, +/turf/open/floor/barber/west, /area/lv624/lazarus/kitchen) "aNZ" = ( -/turf/open/floor{ - dir = 8; - icon_state = "barber" - }, +/turf/open/floor/barber/west, /area/lv624/lazarus/kitchen) "aOa" = ( /obj/structure/surface/table, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 8; - icon_state = "barber" - }, +/turf/open/floor/barber/west, /area/lv624/lazarus/kitchen) "aOb" = ( /obj/effect/landmark/lv624/fog_blocker, @@ -9162,31 +7357,22 @@ /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor{ - icon_state = "bar" - }, +/turf/open/floor/bar, /area/lv624/lazarus/canteen) "aOd" = ( /obj/structure/barricade/wooden, -/turf/open/floor{ - icon_state = "bar" - }, +/turf/open/floor/bar, /area/lv624/lazarus/canteen) "aOe" = ( /obj/structure/window/framed/colony/reinforced, -/turf/open/floor/plating{ - icon_state = "platebotc" - }, +/turf/open/floor/plating/platebotc, /area/lv624/lazarus/canteen) "aOo" = ( /obj/structure/surface/table, /obj/item/clothing/glasses/sunglasses/big, /obj/structure/machinery/light, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 9; - icon_state = "purple" - }, +/turf/open/floor/purple/northwest, /area/lv624/lazarus/sleep_female) "aOs" = ( /obj/structure/flora/jungle/vines/light_1, @@ -9213,15 +7399,10 @@ /turf/open/gm/dirt, /area/lv624/ground/jungle/east_central_jungle) "aOy" = ( -/obj/structure/machinery/power/apc{ - dir = 8; - name = "Secure Vault APC"; - pixel_x = -28; - start_charge = 0 - }, -/turf/open/floor{ - icon_state = "cult" +/obj/structure/machinery/power/apc/nocharge{ + dir = 8 }, +/turf/open/floor/cult, /area/lv624/lazarus/armory) "aOA" = ( /obj/item/storage/toolbox/syndicate, @@ -9229,15 +7410,10 @@ /obj/effect/landmark/crap_item, /obj/effect/landmark/crap_item, /obj/item/clothing/suit/armor/vest/security, -/turf/open/floor{ - icon_state = "cult" - }, +/turf/open/floor/cult, /area/lv624/lazarus/armory) "aOB" = ( -/turf/open/floor/plating{ - dir = 1; - icon_state = "asteroidwarning" - }, +/turf/open/floor/plating/asteroidwarning/north, /area/lv624/lazarus/landing_zones/lz2) "aOC" = ( /obj/structure/window/reinforced{ @@ -9248,10 +7424,7 @@ /obj/item/ammo_magazine/revolver/cmb, /obj/item/ammo_magazine/revolver/cmb, /obj/item/ammo_magazine/revolver/cmb, -/turf/open/floor{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/red/northeast, /area/lv624/lazarus/security) "aOD" = ( /obj/structure/window/reinforced{ @@ -9263,10 +7436,7 @@ /obj/item/weapon/gun/revolver/cmb, /obj/item/ammo_magazine/revolver/cmb, /obj/item/ammo_magazine/revolver/cmb, -/turf/open/floor{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/red/northwest, /area/lv624/lazarus/security) "aOF" = ( /obj/structure/surface/table/woodentable/fancy, @@ -9284,23 +7454,14 @@ /obj/structure/surface/table/reinforced/prison, /obj/item/device/binoculars, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 9; - icon_state = "redfull" - }, +/turf/open/floor/redfull/northwest, /area/lv624/lazarus/security) "aOJ" = ( /obj/structure/bed/chair/office/light, -/turf/open/floor{ - dir = 9; - icon_state = "redfull" - }, +/turf/open/floor/redfull/northwest, /area/lv624/lazarus/security) "aOK" = ( -/turf/open/floor{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/red/west, /area/lv624/lazarus/security) "aOL" = ( /obj/structure/fence, @@ -9313,42 +7474,31 @@ /area/lv624/lazarus/main_hall) "aON" = ( /obj/effect/landmark/survivor_spawner, -/turf/open/floor{ - dir = 9; - icon_state = "brown" - }, +/turf/open/floor/brown/northwest, /area/lv624/lazarus/comms) "aOO" = ( /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor{ - icon_state = "bar" - }, +/turf/open/floor/bar, /area/lv624/lazarus/canteen) "aOP" = ( /obj/structure/surface/table, /obj/item/trash/plate, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - icon_state = "bar" - }, +/turf/open/floor/bar, /area/lv624/lazarus/canteen) "aOQ" = ( /obj/structure/surface/table, /obj/item/trash/candy, -/turf/open/floor{ - icon_state = "bar" - }, +/turf/open/floor/bar, /area/lv624/lazarus/canteen) "aOR" = ( /obj/structure/bed/chair{ dir = 8 }, /obj/effect/landmark/crap_item, -/turf/open/floor{ - icon_state = "bar" - }, +/turf/open/floor/bar, /area/lv624/lazarus/canteen) "aOS" = ( /obj/structure/flora/jungle/planttop1, @@ -9373,10 +7523,7 @@ /obj/item/paper_bin, /obj/item/tool/pen, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv624/lazarus/quart) "aPf" = ( /obj/structure/flora/jungle/vines/light_3, @@ -9408,9 +7555,7 @@ /area/lv624/ground/jungle/south_west_jungle) "aPo" = ( /obj/effect/landmark/crap_item, -/turf/open/floor{ - icon_state = "cult" - }, +/turf/open/floor/cult, /area/lv624/lazarus/armory) "aPp" = ( /obj/structure/machinery/door/airlock/almayer/secure/colony{ @@ -9418,22 +7563,14 @@ name = "\improper Nexus Dome Armory"; req_one_access_txt = "19;106" }, -/turf/open/floor{ - icon_state = "cult" - }, +/turf/open/floor/cult, /area/lv624/lazarus/armory) "aPq" = ( -/turf/open/floor{ - dir = 4; - icon_state = "redcorner" - }, +/turf/open/floor/redcorner/east, /area/lv624/lazarus/security) "aPr" = ( /obj/structure/machinery/light/small, -/turf/open/floor{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/red/north, /area/lv624/lazarus/security) "aPs" = ( /obj/structure/surface/table, @@ -9448,9 +7585,7 @@ pixel_y = 30 }, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/lv624/lazarus/toilet) "aPt" = ( /turf/closed/wall/r_wall, @@ -9458,20 +7593,14 @@ "aPu" = ( /obj/structure/surface/table/reinforced/prison, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/red/north, /area/lv624/lazarus/security) "aPv" = ( /obj/structure/surface/table/reinforced/prison, -/obj/item/handcuffs, +/obj/item/restraint/handcuffs, /obj/item/storage/firstaid/adv, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/red/north, /area/lv624/lazarus/security) "aPx" = ( /obj/structure/pipes/standard/simple/hidden/cyan, @@ -9480,56 +7609,39 @@ /area/lv624/lazarus/main_hall) "aPy" = ( /obj/structure/machinery/vending/dinnerware, -/turf/open/floor{ - dir = 8; - icon_state = "barber" - }, +/turf/open/floor/barber/west, /area/lv624/lazarus/kitchen) "aPz" = ( /obj/structure/machinery/chem_master/condimaster, /obj/structure/surface/table, -/turf/open/floor{ - dir = 8; - icon_state = "barber" - }, +/turf/open/floor/barber/west, /area/lv624/lazarus/kitchen) "aPA" = ( /obj/structure/surface/table, /obj/structure/machinery/microwave, -/turf/open/floor{ - dir = 8; - icon_state = "barber" - }, +/turf/open/floor/barber/west, /area/lv624/lazarus/kitchen) "aPB" = ( /obj/structure/surface/table, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - icon_state = "bar" - }, +/turf/open/floor/bar, /area/lv624/lazarus/canteen) "aPC" = ( /obj/structure/surface/table, /obj/item/reagent_container/food/snacks/grown/banana, -/turf/open/floor{ - icon_state = "bar" - }, +/turf/open/floor/bar, /area/lv624/lazarus/canteen) "aPD" = ( /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor{ - icon_state = "bar" - }, +/turf/open/floor/bar, /area/lv624/lazarus/canteen) "aPE" = ( /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor{ - icon_state = "bar" - }, +/turf/open/floor/bar, /area/lv624/lazarus/canteen) "aPH" = ( /obj/structure/surface/table/woodentable/fancy, @@ -9546,19 +7658,13 @@ "aPI" = ( /obj/structure/surface/table/woodentable/fancy, /obj/item/tool/candle, -/turf/open/floor{ - dir = 8; - icon_state = "chapel" - }, +/turf/open/floor/chapel/west, /area/lv624/lazarus/chapel) "aPJ" = ( /obj/structure/surface/table/woodentable/fancy, /obj/item/storage/box/matches, /obj/item/tool/candle, -/turf/open/floor{ - dir = 1; - icon_state = "chapel" - }, +/turf/open/floor/chapel/north, /area/lv624/lazarus/chapel) "aPM" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, @@ -9570,6 +7676,7 @@ /area/lv624/ground/caves/north_east_caves) "aPN" = ( /obj/structure/window_frame/colony/reinforced, +/obj/item/stack/rods, /turf/open/floor/plating, /area/lv624/lazarus/comms) "aPO" = ( @@ -9579,10 +7686,7 @@ req_access_txt = "100"; req_one_access = null }, -/turf/open/floor{ - dir = 9; - icon_state = "brown" - }, +/turf/open/floor/delivery, /area/lv624/lazarus/comms) "aPR" = ( /obj/structure/lz_sign/lazarus_sign{ @@ -9619,9 +7723,7 @@ }, /obj/structure/surface/table, /obj/item/trash/plate, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/main_hall) "aQa" = ( /obj/structure/flora/grass/ice/both, @@ -9630,57 +7732,39 @@ /area/lv624/lazarus/main_hall) "aQb" = ( /obj/item/frame/table, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/main_hall) "aQc" = ( /obj/structure/surface/table, /obj/structure/machinery/processor, -/turf/open/floor{ - dir = 8; - icon_state = "barber" - }, +/turf/open/floor/barber/west, /area/lv624/lazarus/kitchen) "aQd" = ( /obj/structure/machinery/smartfridge, -/turf/open/floor{ - dir = 8; - icon_state = "barber" - }, +/turf/open/floor/barber/west, /area/lv624/lazarus/kitchen) "aQe" = ( /obj/structure/machinery/light/small{ dir = 4 }, /obj/structure/machinery/vending/coffee, -/turf/open/floor{ - dir = 8; - icon_state = "barber" - }, +/turf/open/floor/barber/west, /area/lv624/lazarus/kitchen) "aQf" = ( /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor{ - icon_state = "bar" - }, +/turf/open/floor/bar, /area/lv624/lazarus/canteen) "aQg" = ( /obj/structure/bed/chair{ dir = 4 }, /obj/effect/landmark/crap_item, -/turf/open/floor{ - icon_state = "bar" - }, +/turf/open/floor/bar, /area/lv624/lazarus/canteen) "aQn" = ( -/turf/open/floor{ - dir = 9; - icon_state = "brown" - }, +/turf/open/floor/brown/northwest, /area/lv624/lazarus/comms) "aQo" = ( /obj/structure/flora/jungle/vines/heavy, @@ -9720,23 +7804,16 @@ "aQy" = ( /obj/structure/surface/table/woodentable/fancy, /obj/item/trash/candle, -/turf/open/floor{ - dir = 1; - icon_state = "chapel" - }, +/turf/open/floor/chapel/north, /area/lv624/lazarus/chapel) "aQB" = ( /obj/structure/bed/chair/office/light{ dir = 8 }, -/turf/open/floor{ - icon_state = "grimy" - }, +/turf/open/floor/grimy, /area/lv624/lazarus/captain) "aQD" = ( -/turf/open/floor{ - icon_state = "grimy" - }, +/turf/open/floor/grimy, /area/lv624/lazarus/captain) "aQE" = ( /obj/structure/machinery/light/small{ @@ -9748,33 +7825,25 @@ name = "General Listening Channel"; pixel_y = 30 }, -/turf/open/floor{ - icon_state = "grimy" - }, +/turf/open/floor/grimy, /area/lv624/lazarus/captain) "aQF" = ( /obj/structure/surface/table, /obj/structure/mirror{ pixel_y = -30 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/lv624/lazarus/toilet) "aQG" = ( /obj/structure/bookcase, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/lv624/lazarus/hop) "aQH" = ( /obj/structure/bookcase, /obj/item/bananapeel, /obj/item/book/manual/research_and_development, /obj/item/book/manual/security_space_law, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/lv624/lazarus/hop) "aQI" = ( /obj/structure/showcase{ @@ -9787,18 +7856,14 @@ /obj/structure/window/reinforced{ dir = 8 }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/lv624/lazarus/hop) "aQJ" = ( /obj/structure/noticeboard{ pixel_y = 30 }, /obj/item/trash/cheesie, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/lv624/lazarus/hop) "aQK" = ( /obj/structure/machinery/light/small{ @@ -9810,9 +7875,7 @@ name = "General Listening Channel"; pixel_y = 30 }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/lv624/lazarus/hop) "aQM" = ( /turf/closed/wall/r_wall, @@ -9821,34 +7884,21 @@ /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/main_hall) "aQO" = ( /obj/item/reagent_container/food/snacks/grown/banana, -/turf/open/floor{ - dir = 8; - icon_state = "barber" - }, +/turf/open/floor/barber/west, /area/lv624/lazarus/kitchen) "aQP" = ( /obj/structure/machinery/cm_vending/sorted/boozeomat, -/turf/open/floor{ - dir = 8; - icon_state = "barber" - }, +/turf/open/floor/barber/west, /area/lv624/lazarus/kitchen) "aQQ" = ( -/obj/structure/machinery/power/apc{ - dir = 8; - name = "Cafeteria APC"; - pixel_x = -28; - start_charge = 0 - }, -/turf/open/floor{ - icon_state = "bar" +/obj/structure/machinery/power/apc/nocharge{ + dir = 8 }, +/turf/open/floor/bar, /area/lv624/lazarus/canteen) "aQX" = ( /obj/effect/landmark/hunter_primary, @@ -9867,66 +7917,42 @@ "aRd" = ( /obj/structure/surface/table, /obj/item/device/mmi/radio_enabled, -/turf/open/floor{ - dir = 9; - icon_state = "brown" - }, +/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, +/turf/open/floor/brown/northwest, /area/lv624/lazarus/comms) "aRe" = ( -/obj/structure/surface/table, -/obj/item/device/flashlight, -/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 9; - icon_state = "brown" +/obj/effect/decal/cleanable/dirt, +/obj/structure/machinery/power/monitor, +/obj/item/ashtray/glass{ + pixel_x = 3; + pixel_y = 15 }, +/turf/open/floor/brown/northwest, /area/lv624/lazarus/comms) "aRf" = ( -/obj/structure/surface/table, -/obj/item/device/radio/headset{ - frequency = 1469; - pixel_x = 4; - pixel_y = 4 - }, -/obj/item/device/radio/headset{ - frequency = 1469 - }, -/obj/structure/machinery/light{ - dir = 1 - }, -/turf/open/floor{ - dir = 9; - icon_state = "brown" - }, -/area/lv624/lazarus/comms) +/obj/structure/flora/bush/ausbushes/lavendergrass, +/turf/open/gm/grass/grass1, +/area/lv624/ground/jungle/west_central_jungle) "aRg" = ( /turf/open/floor/plating, /area/lv624/lazarus/landing_zones/lz2) "aRh" = ( /obj/structure/closet/coffin, -/turf/open/floor{ - dir = 8; - icon_state = "chapel" - }, +/turf/open/floor/chapel/west, /area/lv624/lazarus/chapel) "aRi" = ( -/obj/structure/surface/table, -/obj/item/ashtray/glass, -/obj/item/tool/crowbar, -/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 9; - icon_state = "brown" +/obj/structure/machinery/light{ + dir = 8 }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/machinery/cm_vending/sorted/tech/electronics_storage, +/turf/open/floor/brown/northwest, /area/lv624/lazarus/comms) "aRj" = ( /obj/structure/surface/rack, /obj/structure/machinery/light, /obj/effect/spawner/random/technology_scanner, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv624/lazarus/quart) "aRo" = ( /obj/structure/flora/bush/ausbushes/var3/brflowers, @@ -9964,17 +7990,13 @@ dir = 4 }, /obj/effect/landmark/good_item, -/turf/open/floor{ - icon_state = "grimy" - }, +/turf/open/floor/grimy, /area/lv624/lazarus/captain) "aRA" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor{ - icon_state = "grimy" - }, +/turf/open/floor/grimy, /area/lv624/lazarus/captain) "aRB" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ @@ -9984,9 +8006,7 @@ desc = "It's a corgi puppy. MISTER WIGGLES!! HE IS THE GREATEST!"; name = "\improper Mister Wiggles" }, -/turf/open/floor{ - icon_state = "grimy" - }, +/turf/open/floor/grimy, /area/lv624/lazarus/captain) "aRC" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ @@ -9997,49 +8017,37 @@ name = "\improper Nexus Dome Marshal's Quarters"; req_access_txt = "100" }, -/turf/open/floor{ - icon_state = "cult" - }, +/turf/open/floor/cult, /area/lv624/lazarus/captain) "aRD" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/lv624/lazarus/hop) "aRE" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, /obj/effect/landmark/crap_item, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/lv624/lazarus/hop) "aRF" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/wood{ - icon_state = "wood-broken6" - }, +/turf/open/floor/wood/wood_broken6, /area/lv624/lazarus/hop) "aRG" = ( /obj/structure/machinery/floodlight/landing, -/turf/open/floor/mech_bay_recharge_floor{ - name = "Shuttle Landing Lights" - }, +/turf/open/floor/mech_bay_recharge_floor/shuttle_landing_lights, /area/lv624/lazarus/landing_zones/lz2) "aRI" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, /obj/effect/landmark/good_item, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/lv624/lazarus/hop) "aRK" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ @@ -10064,9 +8072,7 @@ /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/main_hall) "aRR" = ( /obj/structure/surface/table, @@ -10079,9 +8085,7 @@ dir = 4 }, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/lv624/lazarus/kitchen) "aRU" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ @@ -10090,9 +8094,7 @@ /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/lv624/lazarus/kitchen) "aRV" = ( /obj/structure/flora/bush/ausbushes/var3/sparsegrass, @@ -10102,9 +8104,7 @@ /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor{ - icon_state = "bar" - }, +/turf/open/floor/bar, /area/lv624/lazarus/canteen) "aRX" = ( /obj/structure/machinery/light/small{ @@ -10113,9 +8113,7 @@ /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor{ - icon_state = "bar" - }, +/turf/open/floor/bar, /area/lv624/lazarus/canteen) "aRZ" = ( /obj/structure/machinery/landinglight/ds1/delaythree{ @@ -10142,28 +8140,29 @@ /turf/open/floor/plating, /area/lv624/lazarus/landing_zones/lz1) "aSd" = ( -/obj/structure/bed/chair/office/light{ - dir = 1 +/obj/structure/machinery/blackbox_recorder, +/obj/item/prop/almayer/flight_recorder/colony{ + pixel_x = -6; + pixel_y = 10 }, -/turf/open/floor{ - dir = 9; - icon_state = "brown" +/obj/effect/decal/warning_stripes{ + icon_state = "W"; + pixel_x = -1 }, +/turf/open/floor/brown/northwest, /area/lv624/lazarus/comms) "aSe" = ( -/obj/structure/surface/table, -/obj/item/device/multitool, -/turf/open/floor{ - dir = 9; - icon_state = "brown" +/obj/structure/machinery/cm_vending/sorted/tech/comp_storage, +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/brown/northwest, /area/lv624/lazarus/comms) "aSg" = ( /obj/structure/largecrate/random, -/turf/open/floor{ - dir = 9; - icon_state = "brown" - }, +/turf/open/floor/brown/northwest, /area/lv624/lazarus/comms) "aSi" = ( /obj/structure/foamed_metal, @@ -10186,27 +8185,17 @@ dir = 8; icon_state = "p_stair_full" }, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv624/ground/caves/south_east_caves) "aSq" = ( -/obj/structure/machinery/power/apc{ - dir = 8; - name = "Commandant's Quarters APC"; - pixel_x = -28; - start_charge = 0 - }, -/turf/open/floor{ - icon_state = "grimy" +/obj/structure/machinery/power/apc/nocharge{ + dir = 8 }, +/turf/open/floor/grimy, /area/lv624/lazarus/captain) "aSs" = ( /obj/structure/coatrack, -/turf/open/floor{ - icon_state = "grimy" - }, +/turf/open/floor/grimy, /area/lv624/lazarus/captain) "aSv" = ( /obj/structure/window/framed/colony/reinforced, @@ -10214,29 +8203,21 @@ /area/lv624/lazarus/captain) "aSw" = ( /obj/item/trash/popcorn, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/lv624/lazarus/hop) "aSy" = ( /obj/structure/bed/chair/wood/wings{ dir = 4 }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/lv624/lazarus/hop) "aSz" = ( /obj/structure/surface/table, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor{ - icon_state = "vault" - }, +/turf/open/floor/vault2, /area/lv624/lazarus/robotics) "aSA" = ( -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/lv624/lazarus/hop) "aSB" = ( /obj/structure/window/framed/colony/reinforced, @@ -10245,30 +8226,22 @@ "aSC" = ( /obj/structure/surface/table, /obj/item/clothing/suit/chef/classic, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/lv624/lazarus/kitchen) "aSD" = ( /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/lv624/lazarus/kitchen) "aSE" = ( -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/lv624/lazarus/kitchen) "aSF" = ( /obj/structure/machinery/requests_console{ pixel_x = 30 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/lv624/lazarus/kitchen) "aSG" = ( /obj/item/device/radio/intercom{ @@ -10278,44 +8251,29 @@ pixel_y = 30 }, /obj/effect/landmark/crap_item, -/turf/open/floor{ - icon_state = "bar" - }, +/turf/open/floor/bar, /area/lv624/lazarus/canteen) "aSH" = ( /obj/structure/machinery/status_display{ pixel_y = 30 }, /obj/structure/bed/chair, -/turf/open/floor{ - icon_state = "bar" - }, +/turf/open/floor/bar, /area/lv624/lazarus/canteen) "aSI" = ( -/obj/structure/machinery/computer/telecomms/server, -/turf/open/floor{ - dir = 9; - icon_state = "brown" +/obj/structure/machinery/light{ + dir = 4 }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/brown/northwest, /area/lv624/lazarus/comms) "aSJ" = ( -/obj/item/device/radio/intercom{ - freerange = 1; - frequency = 1469; - name = "General Listening Channel"; - pixel_x = -30 - }, -/turf/open/floor{ - dir = 9; - icon_state = "brown" - }, +/turf/open/floor/podhatchfloor, /area/lv624/lazarus/comms) "aSK" = ( -/obj/structure/machinery/computer/telecomms/traffic, -/turf/open/floor{ - dir = 9; - icon_state = "brown" - }, +/obj/structure/window_frame/colony/reinforced, +/obj/item/shard, +/turf/open/floor/plating, /area/lv624/lazarus/comms) "aSL" = ( /turf/closed/wall/r_wall, @@ -10330,17 +8288,13 @@ name = "safe"; spawnkey = 0 }, -/turf/open/floor{ - icon_state = "grimy" - }, +/turf/open/floor/grimy, /area/lv624/lazarus/captain) "aST" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/clothing/under/CM_uniform, /obj/item/clothing/suit/armor/vest/security, -/turf/open/floor{ - icon_state = "red" - }, +/turf/open/floor/red, /area/lv624/lazarus/security) "aSU" = ( /obj/structure/machinery/door/airlock/almayer/command/colony{ @@ -10358,24 +8312,18 @@ /obj/structure/surface/table, /obj/item/reagent_container/food/snacks/grilledcheese, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/lv624/lazarus/kitchen) "aSX" = ( /turf/closed/wall, /area/lv624/lazarus/engineering) "aSY" = ( /obj/structure/closet/secure_closet/freezer/kitchen, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/lv624/lazarus/kitchen) "aSZ" = ( /obj/structure/closet/secure_closet/freezer/meat, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/lv624/lazarus/kitchen) "aTb" = ( /turf/open/floor/plating, @@ -10384,15 +8332,11 @@ /obj/structure/surface/table, /obj/item/trash/chips, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - icon_state = "bar" - }, +/turf/open/floor/bar, /area/lv624/lazarus/canteen) "aTd" = ( /obj/item/frame/table, -/turf/open/floor{ - icon_state = "bar" - }, +/turf/open/floor/bar, /area/lv624/lazarus/canteen) "aTe" = ( /obj/structure/window/framed/colony/reinforced, @@ -10404,61 +8348,39 @@ "aTg" = ( /turf/closed/wall, /area/lv624/lazarus/comms) -"aTh" = ( -/obj/structure/reagent_dispensers/watertank, -/turf/open/floor{ - dir = 9; - icon_state = "brown" - }, -/area/lv624/lazarus/comms) "aTi" = ( -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor{ - dir = 9; - icon_state = "brown" - }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/brown/northwest, /area/lv624/lazarus/comms) "aTj" = ( -/obj/structure/machinery/blackbox_recorder, -/obj/item/prop/almayer/flight_recorder/colony{ - pixel_x = -6; - pixel_y = 10 +/obj/effect/decal/warning_stripes{ + icon_state = "W"; + pixel_x = -1 }, -/turf/open/floor{ - dir = 9; - icon_state = "brown" +/obj/structure/machinery/computer/telecomms/traffic{ + layer = 3.1; + pixel_y = 16 + }, +/obj/structure/bed/chair/office/light{ + dir = 1; + layer = 3.2 }, +/turf/open/floor/brown/northwest, /area/lv624/lazarus/comms) "aTk" = ( /obj/effect/landmark/static_comms/net_one, -/turf/open/floor{ - dir = 9; - icon_state = "brown" - }, +/turf/open/floor/podhatchfloor, /area/lv624/lazarus/comms) -"aTo" = ( -/obj/structure/machinery/power/geothermal, -/obj/structure/lattice{ - layer = 2.9 - }, -/turf/open/floor/plating{ - icon_state = "warnplate" - }, -/area/lv624/lazarus/engineering) "aTq" = ( /obj/structure/foamed_metal, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/lv624/lazarus/engineering) "aTs" = ( /obj/structure/machinery/power/smes/buildable{ capacity = 1e+006; dir = 1 }, -/turf/open/floor/plating{ - icon_state = "platebotc" - }, +/turf/open/floor/plating/platebotc, /area/lv624/lazarus/engineering) "aTt" = ( /obj/structure/machinery/landinglight/ds2/delaytwo, @@ -10468,9 +8390,12 @@ /obj/structure/machinery/colony_floodlight_switch{ pixel_y = 30 }, -/turf/open/floor{ - icon_state = "dark" +/obj/item/device/assembly/voice, +/obj/effect/decal/warning_stripes{ + icon_state = "W"; + pixel_x = -1 }, +/turf/open/floor/dark, /area/lv624/lazarus/engineering) "aTv" = ( /obj/structure/machinery/landinglight/ds2, @@ -10489,15 +8414,11 @@ /area/lv624/ground/barrens/north_east_barrens) "aTB" = ( /obj/structure/machinery/light/small, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/lv624/lazarus/hop) "aTC" = ( /obj/item/trash/cheesie, -/turf/open/floor/wood{ - icon_state = "wood-broken4" - }, +/turf/open/floor/wood/wood_broken4, /area/lv624/lazarus/hop) "aTD" = ( /obj/structure/machinery/door/airlock/almayer/generic{ @@ -10514,9 +8435,7 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor{ - icon_state = "bar" - }, +/turf/open/floor/bar, /area/lv624/lazarus/canteen) "aTF" = ( /obj/structure/surface/table, @@ -10526,58 +8445,45 @@ pixel_y = 4 }, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - icon_state = "bar" - }, +/turf/open/floor/bar, /area/lv624/lazarus/canteen) "aTG" = ( /obj/structure/extinguisher_cabinet{ pixel_y = 30 }, -/turf/open/floor{ - dir = 9; - icon_state = "brown" - }, +/turf/open/floor/brown/northwest, /area/lv624/lazarus/comms) "aTH" = ( /obj/effect/landmark/good_item, -/turf/open/floor{ - dir = 9; - icon_state = "brown" - }, +/turf/open/floor/brown/northwest, /area/lv624/lazarus/comms) "aTI" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - dir = 9; - icon_state = "brown" - }, +/turf/open/floor/brown/northwest, /area/lv624/lazarus/comms) "aTJ" = ( /obj/structure/machinery/power/apc{ dir = 1; - name = "Telecomms APC"; - pixel_y = 30; start_charge = 15 }, -/turf/open/floor{ - icon_state = "delivery" - }, +/turf/open/floor/delivery, /area/lv624/lazarus/comms) "aTK" = ( -/turf/open/gm/dirt, +/obj/structure/surface/rack, +/obj/item/device/multitool, +/turf/open/floor/brown/northwest, /area/lv624/lazarus/comms) "aTM" = ( -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/lv624/lazarus/engineering) "aTN" = ( -/turf/open/floor/plating{ - icon_state = "warnplate" +/obj/structure/stairs/perspective{ + dir = 1; + icon_state = "p_stair_full" }, +/turf/open/floor/plating/warnplate, /area/lv624/lazarus/engineering) "aTP" = ( /obj/structure/machinery/power/terminal{ @@ -10585,18 +8491,14 @@ }, /obj/effect/decal/cleanable/blood/oil, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - icon_state = "platebot" - }, +/turf/open/floor/platebot, /area/lv624/lazarus/engineering) "aTR" = ( /obj/structure/machinery/power/terminal{ dir = 1 }, /obj/item/clothing/gloves/yellow, -/turf/open/floor{ - icon_state = "platebot" - }, +/turf/open/floor/platebot, /area/lv624/lazarus/engineering) "aTS" = ( /obj/effect/landmark/survivor_spawner, @@ -10612,18 +8514,14 @@ "aTW" = ( /obj/item/clothing/glasses/regular, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor{ - icon_state = "grimy" - }, +/turf/open/floor/grimy, /area/lv624/lazarus/hop) "aTX" = ( /obj/structure/bed/chair/office/light{ dir = 1 }, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor{ - icon_state = "grimy" - }, +/turf/open/floor/grimy, /area/lv624/lazarus/hop) "aTY" = ( /obj/structure/machinery/door/airlock/almayer/command/colony{ @@ -10632,41 +8530,30 @@ name = "\improper Nexus Dome Director's Quarters"; req_access_txt = "100" }, -/turf/open/floor{ - icon_state = "cult" - }, +/turf/open/floor/cult, /area/lv624/lazarus/hop) "aTZ" = ( /obj/structure/machinery/vending, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/main_hall) "aUa" = ( /obj/structure/pipes/standard/simple/hidden/cyan, /obj/effect/landmark/crap_item, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/main_hall) "aUb" = ( /obj/structure/kitchenspike, /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/lv624/lazarus/kitchen) "aUc" = ( /obj/structure/surface/rack, /obj/structure/machinery/power/apc{ - dir = 1; - name = "Kitchen APC" - }, -/turf/open/floor{ - icon_state = "freezerfloor" + dir = 1 }, +/turf/open/floor/freezerfloor, /area/lv624/lazarus/kitchen) "aUd" = ( /obj/item/tool/kitchen/knife/butcher, @@ -10674,9 +8561,7 @@ /obj/structure/extinguisher_cabinet{ pixel_y = 30 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/lv624/lazarus/kitchen) "aUe" = ( /obj/structure/flora/bush/ausbushes/var3/stalkybush, @@ -10700,70 +8585,54 @@ req_access_txt = "100"; req_one_access = null }, -/turf/open/floor{ - dir = 9; - icon_state = "brown" - }, +/turf/open/floor/delivery, /area/lv624/lazarus/comms) "aUl" = ( -/obj/item/device/multitool, -/obj/structure/surface/rack, -/turf/open/floor{ - dir = 9; - icon_state = "brown" - }, -/area/lv624/lazarus/comms) +/turf/open/gm/dirtgrassborder/south, +/area/lv624/ground/colony/north_tcomms_road) "aUo" = ( /obj/effect/spawner/random/toolbox, /obj/structure/surface/table/reinforced/prison, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - icon_state = "dark" +/obj/effect/decal/cleanable/dirt, +/obj/structure/foamed_metal{ + layer = 3.01 }, +/obj/structure/machinery/fuelcell_recycler/full, +/turf/open/floor/dark, /area/lv624/lazarus/engineering) "aUq" = ( -/turf/open/floor/plating{ - icon_state = "platebot" - }, +/turf/open/floor/plating/platebot, /area/lv624/lazarus/engineering) "aUs" = ( -/turf/open/floor/plating{ - dir = 8; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/west, /area/lv624/lazarus/engineering) "aUt" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/device/assembly/timer, -/obj/item/device/assembly/voice, -/obj/item/tool/crowbar, -/turf/open/floor{ - icon_state = "dark" - }, -/area/lv624/lazarus/engineering) +/obj/structure/flora/jungle/vines/heavy, +/obj/structure/window_frame/colony, +/obj/item/shard, +/turf/open/floor/plating, +/area/lv624/lazarus/yggdrasil) "aUu" = ( /obj/structure/machinery/light, /obj/structure/bed/stool, -/turf/open/floor{ - icon_state = "dark" +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 2 }, +/turf/open/floor/dark, /area/lv624/lazarus/engineering) "aUv" = ( /obj/item/device/flashlight, /obj/structure/surface/table/reinforced/prison, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/red/east, /area/lv624/lazarus/security) "aUx" = ( /obj/structure/machinery/power/monitor{ name = "Main Power Grid Monitoring" }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/lv624/lazarus/engineering) "aUz" = ( /obj/effect/landmark/lv624/fog_blocker, @@ -10780,26 +8649,20 @@ dir = 4 }, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor{ - icon_state = "grimy" - }, +/turf/open/floor/grimy, /area/lv624/lazarus/hop) "aUB" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor{ - icon_state = "grimy" - }, +/turf/open/floor/grimy, /area/lv624/lazarus/hop) "aUD" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor{ - icon_state = "grimy" - }, +/turf/open/floor/grimy, /area/lv624/lazarus/hop) "aUE" = ( /obj/item/device/radio/intercom{ @@ -10811,21 +8674,7 @@ /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor{ - icon_state = "grimy" - }, -/area/lv624/lazarus/hop) -"aUF" = ( -/obj/structure/pipes/standard/simple/hidden/cyan{ - dir = 4 - }, -/obj/structure/machinery/power/apc{ - dir = 1; - name = "Research Director's APC" - }, -/turf/open/floor{ - icon_state = "grimy" - }, +/turf/open/floor/grimy, /area/lv624/lazarus/hop) "aUG" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ @@ -10835,18 +8684,14 @@ /area/lv624/lazarus/hop) "aUH" = ( /obj/structure/pipes/standard/manifold/hidden/cyan, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/main_hall) "aUI" = ( /obj/structure/largecrate/random, /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/main_hall) "aUJ" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ @@ -10858,26 +8703,20 @@ /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/lv624/lazarus/kitchen) "aUM" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, /obj/effect/landmark/crap_item, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/lv624/lazarus/kitchen) "aUN" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/lv624/lazarus/kitchen) "aUO" = ( /obj/item/shard, @@ -10890,8 +8729,6 @@ "aUR" = ( /obj/structure/machinery/power/apc{ dir = 1; - name = "Secure Vault APC"; - pixel_y = 30; start_charge = 200 }, /turf/open/floor/greengrid, @@ -10909,54 +8746,42 @@ /area/lv624/ground/jungle/south_west_jungle) "aVb" = ( /obj/structure/machinery/light, -/turf/open/floor{ - dir = 9; - icon_state = "brown" - }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/brown/northwest, /area/lv624/lazarus/comms) "aVd" = ( /obj/structure/lattice{ layer = 2.9 }, -/obj/structure/machinery/power/geothermal{ - fail_rate = 5 - }, -/turf/open/floor/plating{ - dir = 6; - icon_state = "warnplate" - }, +/obj/structure/platform, +/obj/structure/machinery/power/reactor/colony, +/turf/open/floor/plating/warnplate/southeast, /area/lv624/lazarus/engineering) "aVe" = ( -/turf/open/floor/plating{ - dir = 4; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/east, /area/lv624/lazarus/engineering) "aVf" = ( /obj/structure/lattice{ layer = 2.9 }, -/obj/structure/machinery/power/geothermal{ - fail_rate = 5 - }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "warnplate" +/obj/item/clothing/head/hardhat/orange{ + pixel_x = -7; + pixel_y = 13 }, +/obj/structure/machinery/power/reactor/colony, +/turf/open/floor/plating/warnplate/west, /area/lv624/lazarus/engineering) "aVg" = ( /obj/structure/lattice{ layer = 2.9 }, -/obj/structure/machinery/power/geothermal{ - fail_rate = 5 - }, -/turf/open/floor/plating{ - dir = 4; - icon_state = "warnplate" - }, +/obj/structure/machinery/power/reactor/colony, +/turf/open/floor/plating/warnplate/east, /area/lv624/lazarus/engineering) "aVj" = ( +/obj/structure/platform_decoration{ + dir = 1 + }, /obj/structure/machinery/door/airlock/almayer/engineering/colony{ dir = 1; locked = 1; @@ -10964,9 +8789,7 @@ req_access_txt = "100"; req_one_access = null }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/delivery, /area/lv624/lazarus/engineering) "aVk" = ( /obj/structure/sign/safety/maint, @@ -10991,42 +8814,30 @@ "aVo" = ( /obj/structure/filingcabinet/chestdrawer, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor{ - icon_state = "grimy" - }, +/turf/open/floor/grimy, /area/lv624/lazarus/hop) "aVp" = ( /obj/structure/bed/chair/office/light, -/turf/open/floor{ - icon_state = "grimy" - }, +/turf/open/floor/grimy, /area/lv624/lazarus/hop) "aVq" = ( /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor{ - icon_state = "grimy" - }, +/turf/open/floor/grimy, /area/lv624/lazarus/hop) "aVr" = ( /mob/living/simple_animal/mouse, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/lv624/lazarus/kitchen) "aVs" = ( /obj/structure/reagent_dispensers/watertank, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/lv624/lazarus/kitchen) "aVt" = ( /obj/structure/machinery/gibber, /obj/effect/landmark/good_item, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/lv624/lazarus/kitchen) "aVu" = ( /turf/closed/wall/r_wall, @@ -11040,9 +8851,7 @@ "aVx" = ( /obj/structure/surface/table/woodentable/poor, /obj/item/ammo_magazine/shotgun/buckshot, -/turf/open/floor/carpet{ - icon_state = "bcarpet02" - }, +/turf/open/floor/carpet/bcarpet02, /area/lv624/ground/caves/north_central_caves) "aVA" = ( /obj/structure/flora/jungle/plantbot1, @@ -11054,9 +8863,7 @@ /area/lv624/lazarus/engineering) "aVC" = ( /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/lv624/lazarus/engineering) "aVE" = ( /obj/structure/flora/jungle/planttop1, @@ -11066,15 +8873,14 @@ /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/south_west_jungle) "aVF" = ( -/obj/structure/machinery/power/apc{ - dir = 1; - name = "Geothermal APC"; - pixel_y = 30; - start_charge = 0 +/obj/structure/extinguisher_cabinet{ + pixel_y = 30 }, -/turf/open/floor{ - icon_state = "dark" +/obj/effect/decal/warning_stripes{ + icon_state = "W"; + pixel_x = -1 }, +/turf/open/floor/dark, /area/lv624/lazarus/engineering) "aVG" = ( /obj/item/device/radio/intercom{ @@ -11083,25 +8889,25 @@ name = "General Listening Channel"; pixel_y = 30 }, -/turf/open/floor{ - icon_state = "dark" +/obj/structure/stairs/perspective{ + dir = 4; + icon_state = "p_stair_full" }, +/obj/structure/platform/stair_cut, +/obj/item/clothing/head/hardhat/orange, +/turf/open/floor/dark, /area/lv624/lazarus/engineering) "aVH" = ( -/obj/item/clothing/head/hardhat/orange, /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - icon_state = "dark" - }, +/obj/structure/foamed_metal, +/turf/open/floor/dark, /area/lv624/lazarus/engineering) "aVI" = ( -/obj/structure/foamed_metal, /obj/structure/machinery/vending/coffee, -/turf/open/floor{ - icon_state = "dark" - }, +/obj/structure/foamed_metal, +/turf/open/floor/dark, /area/lv624/lazarus/engineering) "aVJ" = ( /obj/effect/landmark/lv624/xeno_tunnel, @@ -11120,31 +8926,23 @@ /obj/structure/surface/table/woodentable, /obj/item/device/taperecorder, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - icon_state = "grimy" - }, +/turf/open/floor/grimy, /area/lv624/lazarus/hop) "aVN" = ( /obj/structure/barricade/wooden, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/main_hall) "aVO" = ( /obj/structure/barricade/wooden, /obj/effect/landmark/crap_item, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/main_hall) "aVP" = ( /obj/item/reagent_container/food/snacks/grown/banana{ pixel_x = -8 }, /obj/structure/surface/rack, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/lv624/lazarus/kitchen) "aVS" = ( /turf/closed/wall/mineral/sandstone/runed, @@ -11197,21 +8995,18 @@ /obj/structure/computerframe{ anchored = 1 }, +/obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/lv624/lazarus/secure_storage) "aWd" = ( -/obj/structure/machinery/cm_vending/sorted/tech/comp_storage, -/turf/open/floor{ - dir = 9; - icon_state = "brown" - }, +/obj/item/shard, +/turf/open/floor/podhatchfloor, /area/lv624/lazarus/comms) "aWe" = ( -/obj/structure/machinery/computer/telecomms/monitor, -/turf/open/floor{ - dir = 9; - icon_state = "brown" +/obj/structure/machinery/computer/telecomms/monitor{ + pixel_y = 16 }, +/turf/open/floor/dark, /area/lv624/lazarus/comms) "aWf" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony{ @@ -11219,20 +9014,15 @@ req_access_txt = "100"; req_one_access = null }, -/obj/structure/foamed_metal, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/delivery, /area/lv624/lazarus/engineering) "aWg" = ( -/obj/structure/machinery/power/geothermal, /obj/structure/lattice{ layer = 2.9 }, -/turf/open/floor/plating{ - dir = 10; - icon_state = "warnplate" - }, +/obj/structure/platform, +/obj/structure/machinery/power/reactor/colony, +/turf/open/floor/plating/warnplate/southwest, /area/lv624/lazarus/engineering) "aWh" = ( /obj/structure/fence, @@ -11240,15 +9030,11 @@ /area/lv624/ground/colony/north_nexus_road) "aWi" = ( /obj/structure/bed/stool, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/lv624/lazarus/engineering) "aWj" = ( /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/main_hall) "aWk" = ( /obj/structure/flora/jungle/vines/heavy{ @@ -11259,28 +9045,19 @@ /area/lv624/ground/jungle/south_west_jungle/ceiling) "aWl" = ( /obj/structure/flora/jungle/vines/light_3, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv624/ground/jungle/south_west_jungle/ceiling) "aWm" = ( /obj/structure/flora/jungle/vines/heavy{ pixel_y = 26 }, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv624/ground/jungle/south_west_jungle/ceiling) "aWn" = ( /obj/structure/flora/jungle/vines/light_2{ pixel_y = -22 }, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv624/ground/jungle/south_west_jungle/ceiling) "aWo" = ( /obj/structure/flora/jungle/vines/heavy{ @@ -11289,20 +9066,14 @@ /obj/structure/flora/jungle/vines/light_2{ pixel_y = -22 }, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv624/ground/jungle/south_west_jungle/ceiling) "aWp" = ( /obj/structure/flora/jungle/vines/heavy{ pixel_y = 26 }, /obj/structure/flora/jungle/vines/light_3, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv624/ground/jungle/south_west_jungle/ceiling) "aWq" = ( /obj/effect/decal/cleanable/blood/xeno, @@ -11316,92 +9087,89 @@ /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/south_west_jungle) "aWv" = ( -/turf/open/floor/plating{ - icon_state = "platebotc" - }, +/turf/open/floor/plating/platebotc, /area/lv624/lazarus/secure_storage) "aWw" = ( /obj/effect/decal/remains/xeno, /turf/open/gm/dirt, /area/lv624/ground/colony/south_medbay_road) -"aWx" = ( -/obj/structure/bed/chair/office/light, -/turf/open/floor{ - dir = 9; - icon_state = "brown" - }, -/area/lv624/lazarus/comms) "aWy" = ( -/obj/structure/foamed_metal, -/turf/open/gm/dirt, +/obj/structure/surface/table, +/obj/item/device/radio/headset{ + frequency = 1469; + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/device/radio/headset{ + frequency = 1469 + }, +/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, +/turf/open/floor/brown/northwest, /area/lv624/lazarus/comms) "aWz" = ( /obj/structure/window_frame/colony/reinforced, /turf/open/floor/plating, /area/lv624/lazarus/engineering) "aWA" = ( -/obj/structure/foamed_metal, -/obj/structure/machinery/cm_vending/sorted/tech/electronics_storage, -/turf/open/floor{ - icon_state = "dark" +/obj/structure/machinery/computer/telecomms/server{ + pixel_y = 16 }, -/area/lv624/lazarus/engineering) +/obj/structure/bed/chair/office/light{ + dir = 1 + }, +/turf/open/floor/brown/northwest, +/area/lv624/lazarus/comms) "aWC" = ( /obj/structure/machinery/colony_floodlight, /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/east_central_jungle) "aWD" = ( -/turf/open/floor/plating{ - dir = 1; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/north, /area/lv624/lazarus/engineering) "aWE" = ( -/obj/structure/sign/safety/high_voltage{ - pixel_x = 7; - pixel_y = -32 +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 }, -/obj/structure/surface/table/reinforced/prison, -/obj/item/tool/extinguisher, -/obj/effect/spawner/random/powercell, -/turf/open/floor{ - icon_state = "dark" - }, -/area/lv624/lazarus/engineering) +/obj/item/prop/alien/hugger, +/turf/open/floor/brown/northwest, +/area/lv624/lazarus/comms) "aWF" = ( -/obj/structure/machinery/light, -/obj/structure/machinery/power/monitor{ - name = "Main Power Grid Monitoring" - }, -/turf/open/floor{ - icon_state = "dark" - }, -/area/lv624/lazarus/engineering) -"aWG" = ( /obj/effect/spawner/random/toolbox, /obj/structure/surface/table/reinforced/prison, /obj/item/device/radio, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - icon_state = "dark" +/obj/structure/machinery/light, +/turf/open/floor/dark, +/area/lv624/lazarus/engineering) +"aWG" = ( +/obj/structure/stairs/perspective{ + dir = 4; + icon_state = "p_stair_full" + }, +/obj/structure/platform{ + layer = 3.1 }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/dark, /area/lv624/lazarus/engineering) "aWH" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/folder, /obj/item/device/assembly/signaller, -/turf/open/floor{ - icon_state = "dark" +/obj/structure/platform_decoration{ + dir = 1 }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/dark, /area/lv624/lazarus/engineering) "aWI" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/device/flashlight, /obj/effect/spawner/random/tool, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - icon_state = "dark" - }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/dark, /area/lv624/lazarus/engineering) "aWJ" = ( /obj/structure/flora/jungle/vines/heavy, @@ -11416,9 +9184,7 @@ name = "\improper Nexus Dome"; req_access_txt = "100" }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/main_hall) "aWM" = ( /obj/structure/grille{ @@ -11430,10 +9196,7 @@ /turf/open/floor/plating, /area/lv624/lazarus/main_hall) "aWO" = ( -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv624/ground/jungle/south_west_jungle/ceiling) "aWP" = ( /obj/effect/landmark/monkey_spawn, @@ -11468,73 +9231,61 @@ /turf/open/floor/greengrid, /area/lv624/lazarus/secure_storage) "aWV" = ( -/obj/structure/surface/rack, -/obj/item/weapon/gun/rifle/m41a, -/turf/open/floor/greengrid, +/obj/item/stack/rods/plasteel, +/obj/effect/decal/cleanable/dirt, +/turf/open/gm/dirt, /area/lv624/lazarus/secure_storage) "aWW" = ( /obj/structure/surface/rack, -/obj/item/ammo_magazine/rifle/extended, +/obj/effect/decal/cleanable/dirt, /turf/open/floor/greengrid, /area/lv624/lazarus/secure_storage) "aWX" = ( -/obj/structure/surface/table, -/obj/item/tool/weldingtool, -/obj/item/tool/wrench, -/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 9; - icon_state = "brown" +/obj/effect/decal/warning_stripes{ + icon_state = "W"; + pixel_x = -1 }, -/area/lv624/lazarus/comms) -"aWY" = ( -/obj/structure/surface/table, -/obj/item/device/radio/off{ - frequency = 1469 - }, -/turf/open/floor{ - dir = 9; - icon_state = "brown" +/obj/structure/machinery/light{ + dir = 4 }, +/obj/effect/decal/cleanable/dirt, +/obj/item/stack/rods, +/turf/open/floor/brown/northwest, /area/lv624/lazarus/comms) +"aWY" = ( +/turf/closed/wall, +/area/lv624/lazarus/yggdrasil) "aWZ" = ( -/obj/structure/surface/table, -/obj/item/clothing/head/soft/blue, -/obj/structure/machinery/light, -/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 9; - icon_state = "brown" - }, -/area/lv624/lazarus/comms) +/obj/structure/flora/bush/ausbushes/lavendergrass, +/turf/open/gm/grass/grass1, +/area/lv624/ground/colony/west_tcomms_road) "aXa" = ( -/obj/structure/surface/table, -/obj/item/device/radio/off{ - frequency = 1469 - }, -/obj/item/tool/crowbar, /obj/structure/machinery/light, -/obj/item/tool/hatchet{ - pixel_x = 6; - pixel_y = 4 - }, -/turf/open/floor{ - dir = 9; - icon_state = "brown" +/obj/structure/stairs/perspective{ + dir = 8; + icon_state = "p_stair_full" }, +/obj/structure/platform, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/brown/northwest, /area/lv624/lazarus/comms) "aXc" = ( /obj/structure/surface/table, -/turf/open/floor{ - icon_state = "bluecorner" - }, +/turf/open/floor/bluecorner, /area/lv624/lazarus/sleep_male) "aXd" = ( -/turf/open/gm/dirtgrassborder/south, +/obj/structure/bed/chair/office/light{ + dir = 1 + }, +/turf/open/floor/brown/northwest, /area/lv624/lazarus/comms) "aXe" = ( -/obj/structure/foamed_metal, -/turf/open/gm/dirtgrassborder/south, +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/obj/item/tool/crowbar, +/turf/open/floor/brown/northwest, /area/lv624/lazarus/comms) "aXf" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony{ @@ -11544,9 +9295,7 @@ req_access_txt = "100"; req_one_access = null }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/delivery, /area/lv624/lazarus/engineering) "aXg" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony{ @@ -11555,9 +9304,7 @@ req_access_txt = "100"; req_one_access = null }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/delivery, /area/lv624/lazarus/engineering) "aXh" = ( /turf/open/gm/grass/grass1, @@ -11581,20 +9328,23 @@ /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/south_west_jungle) "aXn" = ( -/obj/structure/fence, -/turf/open/gm/grass/grass1, -/area/lv624/ground/jungle/south_central_jungle) +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_x = 1; + pixel_y = 1 + }, +/turf/open/floor/brown/northwest, +/area/lv624/lazarus/comms) "aXo" = ( /obj/effect/landmark/crap_item, /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/east_central_jungle) "aXs" = ( -/obj/structure/extinguisher_cabinet{ - pixel_y = 30 - }, -/turf/open/floor{ - icon_state = "dark" +/obj/effect/decal/cleanable/dirt, +/obj/structure/machinery/power/apc/nocharge{ + dir = 1 }, +/turf/open/floor/delivery, /area/lv624/lazarus/engineering) "aXt" = ( /obj/structure/surface/rack, @@ -11605,18 +9355,15 @@ phone_id = "Engineering"; pixel_y = 24 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/lv624/lazarus/engineering) "aXu" = ( /obj/structure/machinery/light{ dir = 1 }, /obj/structure/reagent_dispensers/fueltank, -/turf/open/floor{ - icon_state = "dark" - }, +/obj/effect/spawner/random/tool, +/turf/open/floor/dark, /area/lv624/lazarus/engineering) "aXv" = ( /obj/effect/landmark/monkey_spawn, @@ -11624,9 +9371,7 @@ /area/lv624/ground/jungle/east_central_jungle) "aXw" = ( /obj/structure/closet/secure_closet/engineering_electrical, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/lv624/lazarus/engineering) "aXx" = ( /obj/structure/flora/jungle/vines/heavy, @@ -11639,10 +9384,7 @@ /area/lv624/ground/jungle/south_west_jungle/ceiling) "aXA" = ( /obj/structure/flora/bush/ausbushes/var3/ywflowers, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv624/ground/jungle/south_west_jungle/ceiling) "aXB" = ( /obj/structure/flora/jungle/vines/heavy{ @@ -11677,11 +9419,13 @@ "aXF" = ( /obj/structure/surface/rack, /obj/item/ammo_magazine/shotgun/buckshot, +/obj/effect/decal/cleanable/dirt, /turf/open/floor/greengrid, /area/lv624/lazarus/secure_storage) "aXG" = ( /obj/structure/surface/rack, /obj/item/ammo_magazine/shotgun/slugs, +/obj/effect/decal/cleanable/dirt, /turf/open/floor/greengrid, /area/lv624/lazarus/secure_storage) "aXH" = ( @@ -11698,31 +9442,24 @@ }, /obj/item/weapon/baseballbat/metal, /obj/item/device/lightreplacer, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/lv624/lazarus/engineering) "aXK" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark" - }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/dark, /area/lv624/lazarus/engineering) "aXL" = ( /obj/structure/closet/secure_closet/security, /obj/item/clothing/suit/armor/vest/security, -/turf/open/floor{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/red/east, /area/lv624/lazarus/security) "aXN" = ( /obj/effect/spawner/random/powercell, -/turf/open/floor{ - icon_state = "dark" - }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/dark, /area/lv624/lazarus/engineering) "aXP" = ( /obj/structure/flora/jungle/planttop1, @@ -11734,10 +9471,7 @@ /area/lv624/ground/jungle/south_west_jungle/ceiling) "aXR" = ( /obj/structure/flora/jungle/vines/heavy, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv624/ground/jungle/south_west_jungle/ceiling) "aXS" = ( /obj/structure/flora/jungle/vines/heavy{ @@ -11757,25 +9491,26 @@ /obj/structure/foamed_metal{ layer = 3.1 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/lv624/lazarus/engineering) "aXX" = ( /turf/open/gm/grass/grass1, /area/lv624/lazarus/landing_zones/lz2) "aXZ" = ( /obj/structure/surface/rack, -/obj/effect/spawner/random/tool, -/turf/open/floor{ - icon_state = "dark" - }, +/obj/item/weapon/gun/smg/nailgun, +/obj/item/weapon/gun/smg/nailgun, +/obj/item/ammo_magazine/smg/nailgun, +/obj/item/ammo_magazine/smg/nailgun, +/obj/item/ammo_magazine/smg/nailgun, +/obj/item/ammo_magazine/smg/nailgun, +/obj/item/ammo_magazine/smg/nailgun, +/obj/item/ammo_magazine/smg/nailgun, +/turf/open/floor/dark, /area/lv624/lazarus/engineering) "aYc" = ( /obj/structure/machinery/power/port_gen/pacman/super, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/lv624/lazarus/engineering) "aYd" = ( /obj/structure/grille{ @@ -11785,9 +9520,7 @@ /obj/structure/foamed_metal{ layer = 3.1 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/lv624/lazarus/engineering) "aYf" = ( /obj/structure/largecrate/random, @@ -11795,19 +9528,10 @@ /turf/open/floor/greengrid, /area/lv624/lazarus/secure_storage) "aYh" = ( -/obj/structure/surface/rack, -/obj/item/weapon/gun/smg/nailgun, -/obj/item/weapon/gun/smg/nailgun, -/obj/item/ammo_magazine/smg/nailgun, -/obj/item/ammo_magazine/smg/nailgun, -/obj/item/ammo_magazine/smg/nailgun, -/obj/item/ammo_magazine/smg/nailgun, -/obj/item/ammo_magazine/smg/nailgun, -/obj/item/ammo_magazine/smg/nailgun, -/turf/open/floor{ - icon_state = "dark" - }, -/area/lv624/lazarus/engineering) +/obj/effect/decal/cleanable/dirt, +/obj/item/stack/rods, +/turf/open/floor/brown/northwest, +/area/lv624/lazarus/comms) "aYj" = ( /obj/effect/landmark/lv624/xeno_tunnel, /obj/structure/flora/jungle/vines/light_3, @@ -11821,9 +9545,7 @@ /area/lv624/ground/jungle/south_west_jungle) "aYn" = ( /obj/effect/landmark/objective_landmark/science, -/turf/open/shuttle{ - icon_state = "floor4" - }, +/turf/open/shuttle/bright_red, /area/lv624/lazarus/crashed_ship_containers) "aYo" = ( /obj/structure/flora/jungle/vines/heavy{ @@ -11884,14 +9606,10 @@ dir = 4 }, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/lv624/lazarus/hop) "aYE" = ( -/turf/open/gm/dirt{ - icon_state = "desert_dug" - }, +/turf/open/gm/dirt/desert_dug, /area/lv624/ground/barrens/west_barrens) "aYF" = ( /obj/structure/girder, @@ -11903,22 +9621,15 @@ /obj/structure/machinery/cell_charger, /obj/item/storage/fancy/cigarettes/wypacket, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/lv624/lazarus/hop) "aYH" = ( /obj/structure/closet/lawcloset, /obj/item/clothing/suit/armor/vest/security, -/turf/open/floor{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/red/north, /area/lv624/lazarus/security) "aYI" = ( -/turf/open/gm/dirt{ - icon_state = "desert0" - }, +/turf/open/gm/dirt/desert0, /area/lv624/ground/caves/south_west_caves) "aYJ" = ( /obj/structure/surface/table/woodentable/fancy, @@ -11928,9 +9639,7 @@ phone_color = "blue"; phone_id = "Director's Office" }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/lv624/lazarus/hop) "aYM" = ( /obj/structure/surface/table/woodentable/fancy, @@ -11938,21 +9647,15 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor{ - icon_state = "grimy" - }, +/turf/open/floor/grimy, /area/lv624/lazarus/hop) "aYN" = ( /obj/structure/surface/table/woodentable/fancy, /obj/structure/machinery/computer/rdconsole, -/turf/open/floor{ - icon_state = "grimy" - }, +/turf/open/floor/grimy, /area/lv624/lazarus/hop) "aYO" = ( -/turf/open/floor/wood{ - icon_state = "wood-broken4" - }, +/turf/open/floor/wood/wood_broken4, /area/lv624/ground/caves/north_central_caves) "aYQ" = ( /obj/effect/landmark/lv624/fog_blocker, @@ -12004,15 +9707,6 @@ /obj/effect/landmark/lv624/fog_blocker, /turf/open/gm/dirt, /area/lv624/ground/river/west_river) -"aZc" = ( -/obj/structure/surface/table, -/obj/item/weapon/twohanded/fireaxe, -/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 9; - icon_state = "brown" - }, -/area/lv624/lazarus/comms) "aZd" = ( /obj/structure/closet/radiation, /obj/item/device/radio/intercom{ @@ -12021,9 +9715,8 @@ name = "General Listening Channel"; pixel_x = -30 }, -/turf/open/floor{ - icon_state = "dark" - }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/dark, /area/lv624/lazarus/engineering) "aZe" = ( /obj/structure/bookcase, @@ -12031,9 +9724,8 @@ /obj/item/book/manual/engineering_guide, /obj/item/book/manual/engineering_hacking, /obj/item/book/manual/atmospipes, -/turf/open/floor{ - icon_state = "dark" - }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/dark, /area/lv624/lazarus/engineering) "aZf" = ( /obj/structure/surface/table/reinforced/prison, @@ -12041,9 +9733,11 @@ /obj/item/device/analyzer, /obj/item/device/multitool, /obj/item/device/assembly/prox_sensor, -/turf/open/floor{ - icon_state = "dark" - }, +/obj/effect/decal/cleanable/dirt, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/turf/open/floor/dark, /area/lv624/lazarus/engineering) "aZg" = ( /obj/structure/surface/table/woodentable/fancy, @@ -12051,17 +9745,15 @@ /obj/structure/machinery/computer/objective{ dir = 1 }, -/turf/open/floor{ - icon_state = "grimy" - }, +/turf/open/floor/grimy, /area/lv624/lazarus/captain) "aZh" = ( /obj/structure/surface/table, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - dir = 9; - icon_state = "brown" - }, +/obj/item/tool/crowbar, +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, +/turf/open/floor/dark, /area/lv624/lazarus/comms) "aZi" = ( /obj/structure/surface/table/woodentable/fancy, @@ -12069,9 +9761,7 @@ pixel_y = 26 }, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - icon_state = "grimy" - }, +/turf/open/floor/grimy, /area/lv624/lazarus/captain) "aZj" = ( /obj/structure/closet/cabinet, @@ -12079,9 +9769,7 @@ layer = 2.6 }, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor{ - icon_state = "grimy" - }, +/turf/open/floor/grimy, /area/lv624/lazarus/captain) "aZn" = ( /obj/structure/surface/table/woodentable/poor, @@ -12097,23 +9785,17 @@ /obj/structure/surface/table/woodentable/fancy, /obj/item/device/megaphone, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - icon_state = "grimy" - }, +/turf/open/floor/grimy, /area/lv624/lazarus/captain) "aZp" = ( /obj/structure/surface/table/woodentable/poor, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/wood{ - icon_state = "wood-broken6" - }, +/turf/open/floor/wood/wood_broken6, /area/lv624/ground/jungle/west_jungle/ceiling) "aZs" = ( /obj/structure/closet/secure_closet/bar, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/lv624/lazarus/kitchen) "aZt" = ( /obj/structure/surface/rack, @@ -12124,26 +9806,21 @@ /obj/structure/surface/table/reinforced/prison, /obj/item/ashtray/bronze, /obj/item/storage/donut_box, -/turf/open/floor{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/red/west, /area/lv624/lazarus/security) "aZx" = ( /obj/structure/closet/toolcloset, /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor{ - icon_state = "dark" - }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/dark, /area/lv624/lazarus/engineering) "aZy" = ( /obj/structure/closet/secure_closet/engineering_personal, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - icon_state = "dark" - }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/dark, /area/lv624/lazarus/engineering) "aZz" = ( /obj/structure/filingcabinet/security{ @@ -12154,19 +9831,14 @@ dir = 4 }, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - dir = 1; - icon_state = "redcorner" - }, +/turf/open/floor/redcorner/north, /area/lv624/lazarus/security) "aZA" = ( /obj/structure/filingcabinet, /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/wood{ - icon_state = "wood-broken4" - }, +/turf/open/floor/wood/wood_broken4, /area/lv624/lazarus/hop) "aZB" = ( /obj/structure/surface/table/woodentable/fancy, @@ -12177,80 +9849,74 @@ pixel_y = 12 }, /obj/item/tool/wrench, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/lv624/lazarus/hop) "aZC" = ( /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor{ - icon_state = "bar" - }, +/turf/open/floor/bar, /area/lv624/lazarus/canteen) "aZD" = ( /obj/structure/closet/secure_closet/freezer/fridge, /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/lv624/lazarus/kitchen) "aZE" = ( /obj/structure/filingcabinet, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - icon_state = "grimy" - }, +/turf/open/floor/grimy, /area/lv624/lazarus/hop) "aZF" = ( /obj/structure/surface/table/woodentable, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - icon_state = "grimy" - }, +/turf/open/floor/grimy, /area/lv624/lazarus/hop) "aZG" = ( -/obj/structure/filingcabinet, -/obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - icon_state = "dark" +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 }, -/area/lv624/lazarus/engineering) +/turf/open/floor/brown/northwest, +/area/lv624/lazarus/comms) "aZI" = ( -/obj/structure/filingcabinet/chestdrawer, -/turf/open/floor{ - icon_state = "dark" +/obj/structure/filingcabinet/chestdrawer{ + density = 0; + pixel_x = -8; + pixel_y = 16 }, +/obj/structure/filingcabinet{ + density = 0; + pixel_x = 7; + pixel_y = 16 + }, +/obj/effect/landmark/objective_landmark/close, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/dark, /area/lv624/lazarus/engineering) "aZJ" = ( /obj/structure/bed, /obj/item/clothing/mask/cigarette/pipe, /obj/item/clothing/under/colonist, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/lv624/lazarus/engineering) "aZK" = ( -/obj/structure/surface/rack, -/obj/item/clothing/mask/gas, -/turf/open/floor{ - dir = 9; - icon_state = "brown" +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + pixel_x = -1; + pixel_y = 1 }, +/turf/open/floor/brown/northwest, /area/lv624/lazarus/comms) "aZL" = ( -/obj/structure/surface/rack, -/obj/structure/prop/mech/drill, +/obj/item/stack/sheet/metal, /turf/open/floor/greengrid, /area/lv624/lazarus/secure_storage) "aZM" = ( /obj/effect/landmark/survivor_spawner, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/lv624/lazarus/engineering) "aZO" = ( /obj/effect/landmark/xeno_spawn, @@ -12301,10 +9967,6 @@ /obj/structure/flora/jungle/vines/heavy, /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/west_central_jungle) -"bbu" = ( -/obj/structure/flora/bush/ausbushes/var3/stalkybush, -/turf/open/gm/grass/grass2, -/area/lv624/ground/jungle/west_jungle) "bbx" = ( /obj/structure/flora/jungle/vines/light_1, /obj/structure/flora/jungle/vines/heavy, @@ -12312,7 +9974,7 @@ /area/lv624/ground/jungle/east_central_jungle) "bbC" = ( /obj/effect/landmark/hunter_primary, -/turf/open/gm/grass/grass2, +/turf/open/gm/dirt, /area/lv624/ground/jungle/west_jungle) "bbH" = ( /obj/structure/flora/bush/ausbushes/var3/sparsegrass, @@ -12369,11 +10031,11 @@ /area/lv624/ground/caves/west_caves) "bcU" = ( /obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{ - pixel_x = -10; - pixel_y = -2; light_on = 1; light_range = 1; - light_system = 1 + light_system = 1; + pixel_x = -10; + pixel_y = -2 }, /turf/open/auto_turf/strata_grass/layer1, /area/lv624/ground/caves/south_east_caves) @@ -12390,10 +10052,7 @@ pixel_x = 4; pixel_y = 4 }, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/lv624/lazarus/quartstorage) "bei" = ( /obj/structure/flora/jungle/vines/heavy, @@ -12444,10 +10103,7 @@ health = 80 }, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv624/ground/caves/sand_temple) "bit" = ( /obj/structure/machinery/colony_floodlight, @@ -12478,18 +10134,14 @@ /area/lv624/ground/jungle/south_west_jungle) "blC" = ( /obj/item/stack/sheet/wood, -/turf/open/shuttle{ - icon_state = "floor4" - }, +/turf/open/shuttle/bright_red, /area/lv624/lazarus/crashed_ship_containers) "bnz" = ( /obj/structure/machinery/door/airlock/almayer/generic{ dir = 1; - name = "\improper Corporate Liason" - }, -/turf/open/floor{ - icon_state = "white" + name = "\improper Corporate Liaison" }, +/turf/open/floor/white, /area/lv624/lazarus/corporate_dome) "bnE" = ( /obj/structure/flora/bush/ausbushes/pointybush, @@ -12588,10 +10240,7 @@ name = "Weyland-Yutani Automatic Teller Machine"; pixel_x = -30 }, -/turf/open/floor{ - dir = 4; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/east, /area/lv624/lazarus/fitness) "buw" = ( /obj/structure/flora/grass/tallgrass/jungle/corner{ @@ -12612,6 +10261,10 @@ "bvj" = ( /turf/open/auto_turf/strata_grass/layer1, /area/lv624/ground/caves/east_caves) +"bvq" = ( +/obj/structure/prop/mech/parts/chassis/gygax, +/turf/open/floor/vault2/west, +/area/lv624/lazarus/robotics) "bvS" = ( /obj/structure/flora/bush/ausbushes/var3/ywflowers, /turf/open/auto_turf/strata_grass/layer1, @@ -12654,9 +10307,7 @@ /turf/open/gm/dirt, /area/lv624/ground/colony/north_tcomms_road) "bzs" = ( -/turf/open/gm/dirtgrassborder{ - dir = 4 - }, +/turf/open/gm/dirtgrassborder/west, /area/lv624/ground/jungle/south_west_jungle/ceiling) "bzD" = ( /obj/structure/largecrate/random, @@ -12664,10 +10315,7 @@ pixel_x = 1; pixel_y = 8 }, -/turf/open/floor/plating{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/plating/asteroidfloor/north, /area/lv624/lazarus/corporate_dome) "bAB" = ( /turf/open/gm/dirtgrassborder/grassdirt_corner/north_east, @@ -12745,10 +10393,7 @@ /area/lv624/ground/river/west_river) "bGV" = ( /obj/structure/machinery/iv_drip, -/turf/open/floor{ - dir = 6; - icon_state = "whiteblue" - }, +/turf/open/floor/whiteblue/southeast, /area/lv624/lazarus/medbay) "bIO" = ( /obj/structure/platform_decoration/mineral/sandstone/runed{ @@ -12756,6 +10401,10 @@ }, /turf/open/gm/coast/beachcorner/north_east, /area/lv624/ground/caves/sand_temple) +"bJe" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/brown/northwest, +/area/lv624/lazarus/comms) "bJz" = ( /obj/effect/decal/cleanable/blood, /obj/effect/landmark/corpsespawner/wygoon, @@ -12775,6 +10424,16 @@ "bLE" = ( /turf/open/gm/dirtgrassborder/south, /area/lv624/ground/caves/sand_temple) +"bLH" = ( +/obj/structure/machinery/power/monitor{ + name = "Main Power Grid Monitoring" + }, +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 2 + }, +/turf/open/floor/dark, +/area/lv624/lazarus/engineering) "bMu" = ( /turf/open/gm/dirtgrassborder/west, /area/lv624/ground/jungle/east_jungle) @@ -12805,10 +10464,10 @@ /area/lv624/ground/barrens/south_eastern_barrens) "bOm" = ( /obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{ - pixel_x = 4; light_on = 1; light_range = 1; - light_system = 1 + light_system = 1; + pixel_x = 4 }, /turf/open/auto_turf/strata_grass/layer1, /area/lv624/ground/barrens/north_east_barrens) @@ -12830,6 +10489,11 @@ /obj/structure/flora/bush/ausbushes/pointybush, /turf/open/auto_turf/strata_grass/layer1, /area/lv624/ground/caves/north_west_caves) +"bQf" = ( +/obj/structure/machinery/power/port_gen/pacman/super, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/dark, +/area/lv624/lazarus/engineering) "bQz" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /obj/effect/decal/grass_overlay/grass1{ @@ -12855,10 +10519,7 @@ icon_state = "p_stair_full" }, /obj/structure/flora/jungle/vines/heavy, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/lv624/ground/caves/sand_temple) "bSm" = ( /obj/effect/landmark/crap_item, @@ -12866,32 +10527,31 @@ /area/lv624/ground/colony/west_tcomms_road) "bTw" = ( /obj/effect/landmark/nightmare{ - insert_tag = "cargospecial" + insert_tag = "cargospecial1" }, /turf/open/floor/vault, /area/lv624/lazarus/quartstorage) +"bUc" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/shard, +/turf/open/floor/dark, +/area/lv624/lazarus/comms) "bUs" = ( /obj/structure/surface/table/woodentable/poor, /obj/item/ammo_magazine/shotgun/buckshot, -/turf/open/floor/carpet{ - icon_state = "bcarpet07" - }, +/turf/open/floor/carpet/bcarpet07, /area/lv624/ground/caves/north_central_caves) "bUU" = ( /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/lv624/lazarus/corporate_dome) "bXd" = ( /obj/item/device/flashlight/on, /obj/effect/decal/cleanable/blood/drip, /obj/effect/landmark/corpsespawner/wygoon, -/turf/open/shuttle{ - icon_state = "floor4" - }, +/turf/open/shuttle/bright_red, /area/lv624/lazarus/crashed_ship_containers) "bXP" = ( /obj/structure/flora/jungle/vines/light_3, @@ -12909,15 +10569,10 @@ /area/lv624/ground/jungle/central_jungle) "bZX" = ( /obj/structure/window/framed/colony, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/lv624/ground/barrens/east_barrens/ceiling) "cac" = ( -/obj/structure/flora/grass/tallgrass/jungle/corner{ - dir = 3 - }, +/obj/structure/flora/grass/tallgrass/jungle/corner, /turf/open/gm/grass/grass1, /area/lv624/lazarus/landing_zones/lz1) "cag" = ( @@ -12925,9 +10580,7 @@ /area/lv624/ground/caves/sand_temple) "caH" = ( /obj/effect/landmark/objective_landmark/far, -/turf/open/floor/plating{ - icon_state = "platebotc" - }, +/turf/open/floor/plating/platebotc, /area/lv624/lazarus/quartstorage/outdoors) "caX" = ( /obj/structure/flora/grass/tallgrass/jungle/corner{ @@ -12944,9 +10597,7 @@ "cdj" = ( /obj/structure/window_frame/colony, /obj/effect/decal/cleanable/blood/drip, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/medbay) "cdw" = ( /obj/effect/landmark/objective_landmark/science, @@ -12959,11 +10610,12 @@ /turf/closed/wall/rock/brown, /area/lv624/ground/caves/south_central_caves) "cen" = ( -/turf/open/floor{ - dir = 8; - icon_state = "whiteyellow" - }, +/turf/open/floor/whiteyellow/west, /area/lv624/lazarus/corporate_dome) +"cfA" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/platingdmg1, +/area/lv624/lazarus/secure_storage) "cfD" = ( /turf/closed/wall/r_wall/unmeltable, /area/lv624/lazarus/quartstorage/outdoors) @@ -12987,17 +10639,11 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor{ - dir = 5; - icon_state = "whiteblue" - }, +/turf/open/floor/whiteblue/northeast, /area/lv624/lazarus/corporate_dome) "cgC" = ( /obj/structure/flora/jungle/vines/light_1, -/turf/open/floor{ - dir = 10; - icon_state = "warning" - }, +/turf/open/floor/warning/southwest, /area/lv624/lazarus/landing_zones/lz2) "cgD" = ( /obj/structure/machinery/colony_floodlight, @@ -13006,9 +10652,7 @@ "cgK" = ( /obj/item/stool, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/plating{ - icon_state = "platebot" - }, +/turf/open/floor/plating/platebot, /area/lv624/lazarus/robotics) "chf" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_core, @@ -13016,14 +10660,18 @@ /area/lv624/ground/caves/west_caves) "chi" = ( /obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{ - pixel_x = -10; - pixel_y = -2; light_on = 1; light_range = 1; - light_system = 1 + light_system = 1; + pixel_x = -10; + pixel_y = -2 }, /turf/open/auto_turf/strata_grass/layer1, /area/lv624/ground/caves/south_west_caves) +"chy" = ( +/obj/structure/girder/reinforced, +/turf/open/floor/plating, +/area/lv624/lazarus/secure_storage) "cij" = ( /obj/structure/flora/jungle/vines/heavy, /turf/open/gm/dirtgrassborder/grassdirt_corner2/north_east, @@ -13066,10 +10714,7 @@ /area/lv624/lazarus/quartstorage/outdoors) "cmP" = ( /obj/structure/barricade/metal/wired, -/turf/open/floor{ - dir = 10; - icon_state = "whiteblue" - }, +/turf/open/floor/whiteblue/southwest, /area/lv624/lazarus/corporate_dome) "cng" = ( /obj/structure/stairs/perspective{ @@ -13077,10 +10722,7 @@ dir = 4; icon_state = "p_stair_full" }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/lv624/ground/caves/sand_temple) "cop" = ( /obj/effect/decal/grass_overlay/grass1{ @@ -13117,10 +10759,7 @@ "cqE" = ( /obj/structure/barricade/wooden, /obj/structure/flora/jungle/vines/light_2, -/turf/open/floor{ - dir = 1; - icon_state = "warning" - }, +/turf/open/floor/warning/north, /area/lv624/lazarus/landing_zones/lz1) "cqH" = ( /obj/item/reagent_container/food/snacks/grown/mushroom/chanterelle, @@ -13152,9 +10791,12 @@ /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /turf/open/gm/dirt, /area/lv624/ground/barrens/central_barrens) +"ctS" = ( +/obj/structure/fence, +/turf/open/gm/dirt, +/area/lv624/ground/colony/west_tcomms_road) "cvk" = ( /obj/structure/fence, -/obj/structure/flora/bush/ausbushes/lavendergrass, /turf/open/gm/dirtgrassborder/east, /area/lv624/ground/jungle/west_central_jungle) "cwv" = ( @@ -13167,9 +10809,7 @@ /area/lv624/ground/jungle/north_east_jungle) "cxc" = ( /obj/item/tool/shovel, -/turf/open/gm/dirt{ - icon_state = "desert_dug" - }, +/turf/open/gm/dirt/desert_dug, /area/lv624/ground/barrens/west_barrens) "cxi" = ( /obj/structure/flora/bush/ausbushes/var3/brflowers, @@ -13179,6 +10819,15 @@ /obj/structure/foamed_metal, /turf/open/gm/dirtgrassborder/south, /area/lv624/ground/jungle/east_central_jungle) +"cyP" = ( +/obj/structure/stairs/perspective{ + dir = 8; + icon_state = "p_stair_full" + }, +/obj/structure/platform/stair_cut/alt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/brown/northwest, +/area/lv624/lazarus/comms) "czq" = ( /obj/effect/landmark/objective_landmark/science, /turf/open/auto_turf/strata_grass/layer1, @@ -13215,24 +10864,17 @@ pixel_x = 6; pixel_y = 12 }, -/turf/open/floor{ - dir = 6; - icon_state = "whiteblue" - }, +/turf/open/floor/whiteblue/southeast, /area/lv624/lazarus/corporate_dome) "cCe" = ( /obj/effect/decal/remains/xeno, -/turf/open/floor{ - icon_state = "cult" - }, +/turf/open/floor/cult, /area/lv624/ground/caves/south_west_caves) "cCr" = ( /turf/open/gm/dirtgrassborder/south, /area/lv624/ground/jungle/east_jungle) "cCP" = ( -/turf/open/gm/dirt{ - icon_state = "desert1" - }, +/turf/open/gm/dirt/desert1, /area/lv624/ground/caves/south_west_caves) "cDr" = ( /obj/structure/girder, @@ -13305,10 +10947,7 @@ dir = 8 }, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/plating{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/plating/asteroidfloor/north, /area/lv624/lazarus/corporate_dome) "cJA" = ( /obj/effect/landmark/monkey_spawn, @@ -13319,10 +10958,7 @@ /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/south_west_jungle) "cLD" = ( -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowcorner" - }, +/turf/open/floor/whiteyellowcorner/east, /area/lv624/lazarus/corporate_dome) "cMj" = ( /obj/effect/landmark/hunter_primary, @@ -13338,6 +10974,14 @@ }, /turf/open/gm/dirt, /area/lv624/ground/caves/north_west_caves) +"cNE" = ( +/obj/structure/machinery/light{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/item/shard, +/turf/open/floor/brown/northwest, +/area/lv624/lazarus/comms) "cNH" = ( /obj/structure/surface/rack, /obj/item/storage/box/beakers, @@ -13348,10 +10992,7 @@ /area/lv624/lazarus/quartstorage/outdoors) "cOz" = ( /obj/structure/bed/chair/comfy/beige, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowcorner" - }, +/turf/open/floor/whiteyellowcorner/east, /area/lv624/lazarus/corporate_dome) "cOF" = ( /obj/structure/closet/cabinet, @@ -13371,6 +11012,11 @@ /obj/structure/machinery/colony_floodlight, /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/south_west_jungle) +"cQU" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/device/multitool, +/turf/open/floor/brown/northwest, +/area/lv624/lazarus/comms) "cQX" = ( /obj/structure/stairs/perspective{ color = "#b29082"; @@ -13434,16 +11080,11 @@ "cYi" = ( /obj/structure/surface/table, /obj/item/reagent_container/food/snacks/pie, -/turf/open/floor{ - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull, /area/lv624/lazarus/medbay) "cZs" = ( /obj/structure/barricade/wooden, -/turf/open/floor{ - dir = 9; - icon_state = "warning" - }, +/turf/open/floor/warning/northwest, /area/lv624/lazarus/landing_zones/lz2) "daz" = ( /obj/structure/prop/brazier/torch, @@ -13460,9 +11101,7 @@ /area/lv624/ground/caves/south_central_caves) "dbA" = ( /obj/structure/xenoautopsy/tank, -/turf/open/shuttle{ - icon_state = "floor4" - }, +/turf/open/shuttle/bright_red, /area/lv624/lazarus/crashed_ship_containers) "dbY" = ( /obj/structure/flora/bush/ausbushes/lavendergrass, @@ -13478,17 +11117,11 @@ /obj/item/circuitboard/airlock{ pixel_x = 12 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/north, /area/lv624/ground/colony/telecomm/cargo) "dff" = ( /obj/structure/bed/sofa/vert/grey, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellow" - }, +/turf/open/floor/whiteyellow/east, /area/lv624/lazarus/corporate_dome) "dfJ" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_nest, @@ -13563,9 +11196,7 @@ /area/lv624/ground/jungle/north_west_jungle) "dql" = ( /obj/structure/largecrate, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/lv624/lazarus/quartstorage) "dqo" = ( /obj/structure/stairs/perspective{ @@ -13573,16 +11204,10 @@ dir = 4; icon_state = "p_stair_full" }, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv624/ground/barrens/south_eastern_barrens) "dqz" = ( -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/north, /area/lv624/ground/colony/telecomm/cargo) "dqK" = ( /obj/structure/flora/bush/ausbushes/var3/ywflowers, @@ -13598,10 +11223,15 @@ /obj/item/ammo_magazine/rifle/mar40/extended, /obj/item/ammo_magazine/rifle/mar40/extended, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/lv624/ground/barrens/north_east_barrens/ceiling) +"drX" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/turf/open/floor/dark, +/area/lv624/lazarus/engineering) "dsi" = ( /obj/effect/landmark/monkey_spawn, /turf/open/gm/dirt, @@ -13609,10 +11239,7 @@ "dsz" = ( /obj/structure/closet/crate/hydroponics/prespawned, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - dir = 9; - icon_state = "green" - }, +/turf/open/floor/green/northwest, /area/lv624/lazarus/hydroponics) "dtr" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, @@ -13635,10 +11262,7 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor{ - dir = 6; - icon_state = "whiteyellow" - }, +/turf/open/floor/whiteyellow/southeast, /area/lv624/lazarus/corporate_dome) "dws" = ( /obj/structure/stairs/perspective{ @@ -13649,10 +11273,7 @@ /obj/structure/platform_decoration/mineral/sandstone/runed{ dir = 8 }, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv624/ground/barrens/south_eastern_barrens) "dwt" = ( /obj/structure/fence, @@ -13660,10 +11281,7 @@ /area/lv624/lazarus/landing_zones/lz2) "dwN" = ( /obj/structure/bed/sofa/vert/grey/bot, -/turf/open/floor{ - dir = 6; - icon_state = "whiteyellow" - }, +/turf/open/floor/whiteyellow/southeast, /area/lv624/lazarus/corporate_dome) "dxb" = ( /obj/structure/surface/rack, @@ -13671,10 +11289,7 @@ /obj/item/explosive/grenade/incendiary/molotov{ pixel_x = 8 }, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/lv624/lazarus/quartstorage) "dxy" = ( /obj/structure/flora/bush/ausbushes/lavendergrass{ @@ -13695,10 +11310,10 @@ /area/lv624/ground/caves/south_central_caves) "dBS" = ( /obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{ - pixel_x = -10; light_on = 1; light_range = 1; - light_system = 1 + light_system = 1; + pixel_x = -10 }, /turf/open/auto_turf/strata_grass/layer1, /area/lv624/ground/caves/north_west_caves) @@ -13712,9 +11327,7 @@ /obj/item/reagent_container/food/drinks/cans/waterbottle{ pixel_x = 2 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/medbay) "dCZ" = ( /obj/structure/flora/grass/tallgrass/jungle/corner{ @@ -13776,11 +11389,14 @@ /obj/effect/landmark/lv624/fog_blocker, /turf/open/gm/dirtgrassborder/grassdirt_corner/south_east, /area/lv624/ground/jungle/north_jungle) +"dHr" = ( +/obj/item/weapon/twohanded/fireaxe, +/obj/effect/decal/cleanable/blood, +/turf/open/floor/dark, +/area/lv624/lazarus/comms) "dId" = ( /obj/structure/machinery/cm_vending/sorted/medical/no_access, -/turf/open/floor{ - icon_state = "whiteblue" - }, +/turf/open/floor/whiteblue, /area/lv624/lazarus/medbay) "dIj" = ( /obj/structure/flora/bush/ausbushes/reedbush, @@ -13796,15 +11412,10 @@ /area/lv624/ground/caves/north_east_caves) "dID" = ( /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/lv624/ground/caves/sand_temple) "dIO" = ( -/turf/open/gm/dirt{ - icon_state = "desert0" - }, +/turf/open/gm/dirt/desert0, /area/lv624/ground/barrens/central_barrens) "dJG" = ( /obj/structure/flora/grass/tallgrass/jungle/corner{ @@ -13825,10 +11436,7 @@ /obj/item/book/manual/medical_diagnostics_manual, /obj/item/book/manual/security_space_law, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - dir = 5; - icon_state = "whiteblue" - }, +/turf/open/floor/whiteblue/northeast, /area/lv624/lazarus/corporate_dome) "dLm" = ( /obj/structure/blocker/forcefield/multitile_vehicles, @@ -13904,9 +11512,7 @@ "dOC" = ( /obj/structure/kitchenspike, /obj/effect/decal/cleanable/blood, -/turf/open/floor/wood{ - icon_state = "wood-broken" - }, +/turf/open/floor/wood/wood_broken, /area/lv624/ground/caves/north_central_caves) "dOQ" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, @@ -13914,9 +11520,7 @@ /turf/open/gm/dirt, /area/lv624/ground/caves/central_caves) "dTm" = ( -/turf/open/gm/dirt{ - icon_state = "desert1" - }, +/turf/open/gm/dirt/desert1, /area/lv624/ground/barrens/south_eastern_jungle_barrens) "dTY" = ( /obj/effect/landmark/objective_landmark/far, @@ -13932,9 +11536,7 @@ /obj/structure/barricade/handrail/strata{ dir = 8 }, -/turf/open/gm/dirtgrassborder/weedable{ - icon_state = "grass1" - }, +/turf/open/gm/dirtgrassborder/weedable/grass1, /area/lv624/ground/barrens/south_eastern_barrens) "dVQ" = ( /obj/structure/surface/rack, @@ -13945,17 +11547,12 @@ pixel_x = -7 }, /obj/item/reagent_container/food/drinks/cans/souto/classic, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/lv624/lazarus/quartstorage) "dWa" = ( /obj/effect/landmark/objective_landmark/science, /obj/structure/barricade/wooden, -/turf/open/shuttle{ - icon_state = "floor4" - }, +/turf/open/shuttle/bright_red, /area/lv624/lazarus/crashed_ship_containers) "dWM" = ( /obj/effect/landmark/monkey_spawn, @@ -13982,9 +11579,7 @@ "dZH" = ( /obj/structure/filingcabinet, /obj/structure/machinery/light, -/turf/open/floor{ - icon_state = "whiteblue" - }, +/turf/open/floor/whiteblue, /area/lv624/lazarus/medbay) "dZY" = ( /obj/structure/flora/jungle/vines/light_3, @@ -14006,10 +11601,7 @@ /obj/item/stack/sheet/wood{ amount = 2 }, -/turf/open/floor{ - dir = 1; - icon_state = "bot" - }, +/turf/open/floor/bot/north, /area/lv624/lazarus/landing_zones/lz1) "ebr" = ( /turf/open/gm/dirtgrassborder/east, @@ -14031,10 +11623,7 @@ /area/lv624/lazarus/crashed_ship_containers) "ecK" = ( /obj/structure/closet/coffin/predator, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/lv624/ground/caves/sand_temple) "ecO" = ( /turf/open/gm/dirtgrassborder/north, @@ -14077,10 +11666,7 @@ /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "Hydroponics" }, -/turf/open/floor{ - dir = 9; - icon_state = "green" - }, +/turf/open/floor/green/northwest, /area/lv624/lazarus/hydroponics) "eil" = ( /obj/structure/flora/grass/tallgrass/jungle, @@ -14091,10 +11677,7 @@ amount = 2 }, /obj/structure/flora/jungle/vines/heavy, -/turf/open/floor{ - dir = 5; - icon_state = "warning" - }, +/turf/open/floor/warning/northeast, /area/lv624/lazarus/landing_zones/lz2) "eiP" = ( /obj/structure/flora/bush/ausbushes/grassybush, @@ -14115,9 +11698,7 @@ "ejx" = ( /obj/structure/disposalpipe/segment, /obj/structure/window/framed/colony, -/turf/open/floor/plating{ - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate, /area/lv624/ground/barrens/east_barrens/ceiling) "ekB" = ( /obj/structure/stairs/perspective{ @@ -14138,10 +11719,7 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - dir = 9; - icon_state = "green" - }, +/turf/open/floor/green/northwest, /area/lv624/lazarus/hydroponics) "elp" = ( /obj/effect/decal/grass_overlay/grass1/inner{ @@ -14152,6 +11730,13 @@ }, /turf/open/gm/dirt, /area/lv624/ground/caves/east_caves) +"elO" = ( +/obj/structure/platform_decoration{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/brown/northwest, +/area/lv624/lazarus/comms) "enn" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /obj/effect/decal/grass_overlay/grass1{ @@ -14167,11 +11752,12 @@ /obj/structure/machinery/colony_floodlight, /turf/open/gm/grass/grass1, /area/lv624/ground/colony/south_medbay_road) +"eot" = ( +/obj/structure/prop/mech/parts/gygax_torso, +/turf/open/floor/vault2, +/area/lv624/lazarus/robotics) "eoM" = ( -/turf/open/floor{ - dir = 4; - icon_state = "whitebluecorner" - }, +/turf/open/floor/whitebluecorner/east, /area/lv624/lazarus/medbay) "eoW" = ( /obj/structure/flora/bush/ausbushes/pointybush, @@ -14186,10 +11772,7 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor{ - dir = 9; - icon_state = "whiteblue" - }, +/turf/open/floor/whiteblue/northwest, /area/lv624/lazarus/corporate_dome) "eqs" = ( /obj/structure/flora/grass/tallgrass/jungle/corner{ @@ -14202,9 +11785,7 @@ /area/lv624/ground/river/central_river) "eqP" = ( /obj/structure/machinery/bioprinter, -/turf/open/floor{ - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull, /area/lv624/lazarus/medbay) "eqS" = ( /obj/structure/flora/bush/ausbushes/var3/brflowers, @@ -14220,9 +11801,7 @@ /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, /obj/structure/blocker/forcefield/multitile_vehicles, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/floor{ - icon_state = "cult" - }, +/turf/open/floor/cult, /area/lv624/ground/caves/south_west_caves) "etU" = ( /obj/structure/flora/bush/ausbushes/var3/fernybush, @@ -14232,12 +11811,17 @@ /obj/effect/landmark/objective_landmark/medium, /turf/open/gm/dirt, /area/lv624/ground/caves/south_west_caves) +"euU" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/brown/northwest, +/area/lv624/lazarus/comms) "euW" = ( /obj/structure/surface/table/woodentable/poor, /obj/item/tool/candle, -/turf/open/floor/carpet{ - icon_state = "bcarpet03" - }, +/turf/open/floor/carpet/bcarpet03, /area/lv624/ground/caves/north_central_caves) "evT" = ( /obj/structure/flora/jungle/plantbot1, @@ -14254,10 +11838,15 @@ /turf/open/gm/dirtgrassborder/north, /area/lv624/ground/jungle/south_west_jungle) "eyb" = ( -/obj/structure/fence, -/obj/structure/flora/bush/ausbushes/lavendergrass, -/turf/open/gm/dirtgrassborder/west, -/area/lv624/ground/colony/west_tcomms_road) +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + pixel_x = -1; + pixel_y = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/item/shard, +/turf/open/floor/brown/northwest, +/area/lv624/lazarus/comms) "eyn" = ( /obj/structure/flora/jungle/vines/light_3, /turf/closed/wall/strata_ice/jungle, @@ -14275,10 +11864,7 @@ /obj/structure/platform_decoration/mineral/sandstone/runed{ dir = 1 }, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv624/ground/caves/sand_temple) "eAr" = ( /obj/structure/showcase{ @@ -14309,10 +11895,7 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor{ - dir = 9; - icon_state = "green" - }, +/turf/open/floor/green/northwest, /area/lv624/lazarus/hydroponics) "eCx" = ( /obj/structure/flora/bush/ausbushes/ppflowers, @@ -14348,10 +11931,7 @@ "eGx" = ( /obj/structure/surface/rack, /obj/item/storage/firstaid/adv, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/lv624/lazarus/quartstorage) "eGD" = ( /turf/open/gm/dirt, @@ -14360,9 +11940,7 @@ /obj/structure/bed, /obj/effect/decal/cleanable/blood, /obj/effect/landmark/corpsespawner/engineer, -/turf/open/floor{ - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull, /area/lv624/lazarus/medbay) "eHq" = ( /obj/structure/flora/bush/ausbushes/var3/stalkybush, @@ -14382,9 +11960,7 @@ "eLx" = ( /obj/effect/decal/cleanable/blood/drip, /obj/effect/landmark/objective_landmark/medium, -/turf/open/shuttle{ - icon_state = "floor4" - }, +/turf/open/shuttle/bright_red, /area/lv624/lazarus/crashed_ship_containers) "eMe" = ( /obj/effect/decal/grass_overlay/grass1/inner{ @@ -14397,9 +11973,7 @@ /area/lv624/ground/jungle/south_east_jungle) "eNQ" = ( /obj/structure/flora/bush/ausbushes/var3/fullgrass, -/turf/open/gm/dirt{ - icon_state = "desert_dug" - }, +/turf/open/gm/dirt/desert_dug, /area/lv624/ground/barrens/south_eastern_jungle_barrens) "eOk" = ( /turf/open/gm/dirtgrassborder/grassdirt_corner/north_east, @@ -14409,9 +11983,7 @@ /turf/open/gm/dirt, /area/lv624/ground/barrens/east_barrens) "ePp" = ( -/turf/open/gm/dirt{ - icon_state = "desert3" - }, +/turf/open/gm/dirt/desert3, /area/lv624/ground/barrens/south_eastern_jungle_barrens) "ePu" = ( /obj/effect/landmark/xeno_hive_spawn, @@ -14446,11 +12018,13 @@ "eTQ" = ( /turf/open/gm/dirtgrassborder/north, /area/lv624/ground/jungle/south_east_jungle) +"eUI" = ( +/obj/item/storage/toolbox, +/turf/open/gm/dirt, +/area/lv624/ground/colony/west_tcomms_road) "eVH" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor{ - icon_state = "cult" - }, +/turf/open/floor/cult, /area/lv624/ground/caves/south_west_caves) "eYb" = ( /obj/structure/flora/bush/ausbushes/var3/sunnybush, @@ -14459,10 +12033,7 @@ "eYh" = ( /obj/structure/surface/rack, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv624/lazarus/quart) "eYD" = ( /obj/structure/flora/bush/ausbushes/var3/stalkybush, @@ -14484,15 +12055,10 @@ /obj/structure/barricade/metal{ health = 250 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/corporate_dome) "fau" = ( -/turf/open/floor/plating{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/plating/asteroidfloor/north, /area/lv624/lazarus/corporate_dome) "fbb" = ( /obj/structure/flora/grass/tallgrass/jungle/corner{ @@ -14506,11 +12072,11 @@ /area/lv624/ground/jungle/east_jungle) "fcQ" = ( /obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{ - pixel_x = -5; - pixel_y = -5; light_on = 1; light_range = 1; - light_system = 1 + light_system = 1; + pixel_x = -5; + pixel_y = -5 }, /turf/open/auto_turf/strata_grass/layer1, /area/lv624/ground/caves/south_west_caves) @@ -14521,19 +12087,14 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/lv624/lazarus/quartstorage) "ffb" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ dir = 2; name = "Hydroponics" }, -/turf/open/floor{ - dir = 9; - icon_state = "green" - }, +/turf/open/floor/green/northwest, /area/lv624/lazarus/hydroponics) "ffC" = ( /obj/effect/landmark/crap_item, @@ -14557,10 +12118,7 @@ /obj/structure/platform_decoration/mineral/sandstone/runed{ dir = 4 }, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv624/ground/barrens/south_eastern_barrens) "fhJ" = ( /turf/open/gm/dirtgrassborder/west, @@ -14570,6 +12128,11 @@ /obj/structure/flora/jungle/vines/light_2, /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/south_east_jungle) +"fij" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/bed/chair/office/light, +/turf/open/floor/dark, +/area/lv624/lazarus/comms) "fio" = ( /obj/structure/flora/grass/tallgrass/jungle/corner{ dir = 9 @@ -14615,10 +12178,7 @@ dir = 4; pixel_x = 11 }, -/turf/open/floor/plating{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/plating/asteroidfloor/north, /area/lv624/lazarus/corporate_dome) "fmV" = ( /obj/structure/flora/bush/ausbushes/ausbush, @@ -14640,13 +12200,8 @@ /turf/open/gm/dirt, /area/lv624/ground/caves/south_central_caves) "fqM" = ( -/obj/structure/machinery/power/apc{ - start_charge = 0 - }, -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" - }, +/obj/structure/machinery/power/apc/nocharge, +/turf/open/floor/asteroidwarning/east, /area/lv624/ground/colony/telecomm/sw_lz2) "frV" = ( /obj/effect/decal/grass_overlay/grass1/inner{ @@ -14656,10 +12211,7 @@ /area/lv624/ground/caves/north_west_caves) "fsa" = ( /obj/structure/surface/table, -/turf/open/floor{ - dir = 8; - icon_state = "barber" - }, +/turf/open/floor/barber/west, /area/lv624/lazarus/kitchen) "fsc" = ( /obj/effect/decal/grass_overlay/grass1/inner{ @@ -14674,10 +12226,7 @@ /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor{ - dir = 10; - icon_state = "whiteblue" - }, +/turf/open/floor/whiteblue/southwest, /area/lv624/lazarus/corporate_dome) "fur" = ( /turf/open/gm/dirtgrassborder/east, @@ -14698,10 +12247,7 @@ /obj/structure/platform/mineral/sandstone/runed{ dir = 1 }, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv624/ground/caves/sand_temple) "fyA" = ( /obj/structure/flora/jungle/planttop1, @@ -14709,9 +12255,7 @@ /area/lv624/ground/jungle/south_east_jungle) "fzg" = ( /obj/item/storage/firstaid/toxin/empty, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/corporate_dome) "fzZ" = ( /obj/structure/showcase{ @@ -14729,16 +12273,16 @@ /obj/item/clothing/shoes/yautja_flavor{ anchored = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/lv624/ground/caves/sand_temple) +"fAs" = ( +/obj/item/tool/crowbar, +/turf/open/floor/dark, +/area/lv624/lazarus/engineering) "fAz" = ( /obj/structure/machinery/cm_vending/sorted/medical/no_access, -/turf/open/floor{ - icon_state = "whitebluefull" - }, +/obj/structure/medical_supply_link, +/turf/open/floor/whitebluefull, /area/lv624/lazarus/medbay) "fAD" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_nest, @@ -14757,10 +12301,7 @@ dir = 4 }, /obj/structure/flora/jungle/vines/heavy, -/turf/open/floor{ - dir = 10; - icon_state = "warning" - }, +/turf/open/floor/warning/southwest, /area/lv624/lazarus/landing_zones/lz1) "fDE" = ( /turf/open/auto_turf/strata_grass/layer1, @@ -14770,9 +12311,7 @@ /turf/open/gm/river, /area/lv624/ground/barrens/west_barrens) "fDT" = ( -/turf/open/gm/dirt{ - icon_state = "desert_dug" - }, +/turf/open/gm/dirt/desert_dug, /area/lv624/ground/caves/south_west_caves) "fEn" = ( /obj/structure/flora/jungle/vines/light_1, @@ -14788,17 +12327,11 @@ /area/lv624/ground/barrens/south_west_barrens) "fFA" = ( /obj/structure/machinery/cm_vending/sorted/tech/tool_storage, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/lv624/lazarus/quartstorage) "fFM" = ( /obj/structure/surface/rack, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/lv624/lazarus/quartstorage) "fFN" = ( /obj/structure/window_frame/colony/reinforced, @@ -14806,13 +12339,8 @@ /turf/open/floor/plating, /area/lv624/lazarus/engineering) "fFZ" = ( -/obj/structure/machinery/power/apc{ - start_charge = 0 - }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/obj/structure/machinery/power/apc/nocharge, +/turf/open/floor/asteroidfloor/north, /area/lv624/ground/colony/telecomm/cargo) "fGn" = ( /obj/effect/decal/grass_overlay/grass1, @@ -14825,9 +12353,7 @@ /area/lv624/ground/jungle/south_west_jungle) "fHi" = ( /obj/item/ammo_magazine/smg/mp5, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/corporate_dome) "fHw" = ( /obj/item/device/sentry_computer{ @@ -14867,25 +12393,39 @@ /obj/structure/flora/bush/ausbushes/ausbush, /turf/open/auto_turf/strata_grass/layer1, /area/lv624/ground/caves/south_west_caves) +"fLf" = ( +/obj/effect/landmark/survivor_spawner, +/obj/effect/decal/warning_stripes{ + icon_state = "W"; + pixel_x = -1 + }, +/turf/open/floor/dark, +/area/lv624/lazarus/engineering) "fLh" = ( /obj/item/reagent_container/food/snacks/grown/mushroom/angel, /turf/open/auto_turf/strata_grass/layer1, /area/lv624/ground/caves/west_caves) +"fMa" = ( +/obj/item/prop/alien/hugger, +/turf/open/floor/dark, +/area/lv624/lazarus/engineering) "fMl" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ dir = 1; name = "\improper Corporation Office"; req_access_txt = "100" }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/corporate_dome) +"fMv" = ( +/obj/item/stack/sheet/metal, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/greengrid, +/area/lv624/lazarus/secure_storage) "fNA" = ( /obj/structure/barricade/wooden, -/turf/open/shuttle{ - icon_state = "floor4" - }, +/turf/open/shuttle/bright_red, /area/lv624/lazarus/crashed_ship_containers) "fPi" = ( /turf/open/gm/coast/north, @@ -14893,6 +12433,14 @@ "fPH" = ( /turf/open/gm/dirtgrassborder/south, /area/lv624/ground/jungle/west_central_jungle) +"fQx" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + pixel_x = -1; + pixel_y = 2 + }, +/turf/open/floor/dark, +/area/lv624/lazarus/engineering) "fQL" = ( /turf/open/gm/coast/beachcorner2/south_east, /area/lv624/ground/river/west_river) @@ -14952,9 +12500,7 @@ /turf/open/gm/dirtgrassborder/east, /area/lv624/ground/jungle/north_west_jungle) "gaw" = ( -/obj/structure/flora/grass/tallgrass/jungle/corner{ - dir = 3 - }, +/obj/structure/flora/grass/tallgrass/jungle/corner, /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/north_jungle) "gbl" = ( @@ -14964,10 +12510,7 @@ "gby" = ( /obj/structure/flora/jungle/vines/light_3, /obj/structure/flora/jungle/vines/heavy, -/turf/open/floor{ - dir = 9; - icon_state = "warning" - }, +/turf/open/floor/warning/northwest, /area/lv624/lazarus/landing_zones/lz2) "gbz" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, @@ -14983,27 +12526,23 @@ /area/lv624/ground/jungle/south_central_jungle) "gcB" = ( /obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{ - pixel_x = 6; - pixel_y = -8; light_on = 1; light_range = 1; - light_system = 1 + light_system = 1; + pixel_x = 6; + pixel_y = -8 }, /turf/open/auto_turf/strata_grass/layer1, /area/lv624/ground/caves/central_caves) "gcI" = ( /obj/effect/landmark/crap_item, -/turf/open/shuttle{ - icon_state = "floor4" - }, +/turf/open/shuttle/bright_red, /area/lv624/lazarus/crashed_ship_containers) "gcZ" = ( /obj/structure/barricade/metal/wired{ health = 300 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/corporate_dome) "gdr" = ( /obj/structure/flora/bush/ausbushes/grassybush, @@ -15028,10 +12567,7 @@ amount = 2 }, /obj/structure/flora/jungle/vines/light_3, -/turf/open/floor{ - dir = 1; - icon_state = "warning" - }, +/turf/open/floor/warning/north, /area/lv624/lazarus/landing_zones/lz2) "gfc" = ( /obj/structure/surface/table/reinforced{ @@ -15049,9 +12585,7 @@ /area/lv624/ground/jungle/south_west_jungle) "gin" = ( /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/plating{ - icon_state = "platebotc" - }, +/turf/open/floor/plating/platebotc, /area/lv624/lazarus/quartstorage/outdoors) "git" = ( /obj/structure/flora/jungle/vines/light_1, @@ -15078,18 +12612,16 @@ /area/lv624/ground/barrens/south_eastern_jungle_barrens) "gnt" = ( /obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{ - pixel_x = -5; - pixel_y = -5; light_on = 1; light_range = 1; - light_system = 1 + light_system = 1; + pixel_x = -5; + pixel_y = -5 }, /turf/open/auto_turf/strata_grass/layer1, /area/lv624/ground/caves/north_west_caves) "gnx" = ( -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/corporate_dome) "god" = ( /obj/structure/fence, @@ -15105,13 +12637,16 @@ /turf/open/gm/dirtgrassborder/grassdirt_corner/south_west, /area/lv624/ground/jungle/west_central_jungle) "gqG" = ( -/obj/item/device/assembly/infra, +/obj/structure/sign/safety/high_voltage{ + pixel_x = 7; + pixel_y = -32 + }, /obj/structure/surface/table/reinforced/prison, +/obj/item/tool/extinguisher, /obj/effect/spawner/random/powercell, -/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - icon_state = "dark" - }, +/obj/item/device/assembly/infra, +/obj/effect/spawner/random/powercell, +/turf/open/floor/dark, /area/lv624/lazarus/engineering) "grl" = ( /obj/structure/flora/jungle/planttop1, @@ -15134,9 +12669,7 @@ /area/lv624/ground/caves/south_east_caves) "gss" = ( /obj/structure/largecrate/random/barrel/yellow, -/turf/open/shuttle{ - icon_state = "floor4" - }, +/turf/open/shuttle/bright_red, /area/lv624/lazarus/crashed_ship_containers) "gsA" = ( /obj/structure/flora/grass/tallgrass/jungle/corner{ @@ -15153,9 +12686,7 @@ /obj/effect/landmark/nightmare{ insert_tag = "cargospecial2" }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/lv624/lazarus/quartstorage) "guW" = ( /obj/effect/landmark/nightmare{ @@ -15207,15 +12738,11 @@ /turf/open/gm/dirt, /area/lv624/ground/caves/north_east_caves) "gzo" = ( -/turf/open/gm/dirt{ - icon_state = "desert3" - }, +/turf/open/gm/dirt/desert3, /area/lv624/ground/barrens/east_barrens) "gzD" = ( /obj/structure/machinery/light/small, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/lv624/lazarus/quartstorage) "gzH" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, @@ -15232,9 +12759,7 @@ "gAS" = ( /obj/effect/vehicle_spawner/van/decrepit, /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/lv624/lazarus/corporate_dome) "gBG" = ( /obj/structure/fence, @@ -15261,9 +12786,7 @@ /obj/item/ammo_casing/bullet{ icon_state = "casing_9_1" }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/corporate_dome) "gFm" = ( /obj/effect/landmark/lv624/fog_blocker, @@ -15278,12 +12801,14 @@ /turf/open/gm/dirt, /area/lv624/ground/caves/south_central_caves) "gKg" = ( -/obj/item/clothing/head/hardhat/orange, -/turf/open/floor/plating{ - dir = 5; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/northeast, /area/lv624/lazarus/engineering) +"gKN" = ( +/obj/structure/platform_decoration{ + dir = 8 + }, +/turf/open/floor/brown/northwest, +/area/lv624/lazarus/comms) "gMe" = ( /obj/effect/landmark/nightmare{ insert_tag = "lv-rightsidepass" @@ -15319,6 +12844,11 @@ "gRx" = ( /turf/open/gm/dirtgrassborder/south, /area/lv624/ground/colony/south_medbay_road) +"gSb" = ( +/obj/item/stack/sheet/metal, +/obj/effect/decal/cleanable/dirt, +/turf/open/gm/dirt, +/area/lv624/lazarus/secure_storage) "gTj" = ( /obj/effect/decal/grass_overlay/grass1/inner{ dir = 8 @@ -15338,10 +12868,7 @@ }, /obj/effect/landmark/objective_landmark/close, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor{ - dir = 9; - icon_state = "whiteblue" - }, +/turf/open/floor/whiteblue/northwest, /area/lv624/lazarus/corporate_dome) "gTv" = ( /obj/structure/flora/jungle/vines/light_3, @@ -15379,10 +12906,7 @@ pixel_x = -3; pixel_y = -3 }, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/lv624/lazarus/quartstorage) "gWE" = ( /obj/effect/decal/grass_overlay/grass1{ @@ -15396,16 +12920,11 @@ /area/lv624/ground/jungle/south_east_jungle) "gXu" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/medidoor/colony, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/medbay) "gXy" = ( /obj/structure/flora/jungle/vines/light_3, -/turf/open/floor{ - dir = 6; - icon_state = "warning" - }, +/turf/open/floor/warning/southeast, /area/lv624/lazarus/landing_zones/lz1) "gYs" = ( /obj/structure/fence, @@ -15425,6 +12944,11 @@ /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, /turf/open/auto_turf/strata_grass/layer1, /area/lv624/ground/caves/south_central_caves) +"haE" = ( +/obj/item/stack/rods, +/obj/effect/decal/cleanable/dirt, +/turf/open/gm/dirt, +/area/lv624/ground/jungle/south_west_jungle) "haN" = ( /obj/structure/flora/bush/ausbushes/grassybush, /turf/open/gm/grass/grass1, @@ -15434,9 +12958,7 @@ /area/lv624/ground/barrens/south_eastern_jungle_barrens) "hbF" = ( /obj/item/tool/kitchen/utensil/fork, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/medbay) "hbK" = ( /obj/structure/flora/jungle/vines/light_2, @@ -15452,9 +12974,7 @@ "hcv" = ( /obj/structure/largecrate/random, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/plating{ - icon_state = "platebotc" - }, +/turf/open/floor/plating/platebotc, /area/lv624/lazarus/quartstorage/outdoors) "hcN" = ( /obj/structure/surface/table/reinforced/prison{ @@ -15463,26 +12983,25 @@ /turf/open/gm/dirt, /area/lv624/ground/caves/sand_temple) "hdh" = ( -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/lv624/ground/colony/telecomm/sw_lz2) "hdA" = ( /obj/effect/landmark/xeno_hive_spawn, /obj/effect/landmark/ert_spawns/groundside_xeno, -/turf/open/floor/plating{ - dir = 4; - icon_state = "asteroidwarning" - }, +/turf/open/floor/plating/asteroidwarning/east, /area/lv624/lazarus/landing_zones/lz2) +"hen" = ( +/obj/item/tool/weldingtool, +/obj/effect/decal/cleanable/dirt, +/turf/open/gm/dirt, +/area/lv624/ground/jungle/south_central_jungle) "hez" = ( /obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{ - pixel_x = 2; - pixel_y = 7; light_on = 1; light_range = 1; - light_system = 1 + light_system = 1; + pixel_x = 2; + pixel_y = 7 }, /turf/open/auto_turf/strata_grass/layer1, /area/lv624/ground/caves/central_caves) @@ -15524,10 +13043,7 @@ /turf/open/auto_turf/strata_grass/layer1, /area/lv624/ground/caves/west_caves) "hhv" = ( -/turf/open/floor{ - dir = 8; - icon_state = "whiteblue" - }, +/turf/open/floor/whiteblue/west, /area/lv624/lazarus/corporate_dome) "hhU" = ( /obj/vehicle/train/cargo/trolley, @@ -15582,18 +13098,15 @@ /turf/open/gm/dirtgrassborder/west, /area/lv624/ground/jungle/west_central_jungle) "hpG" = ( -/turf/open/floor{ - dir = 1; - icon_state = "bot" - }, +/turf/open/floor/bot/north, /area/lv624/ground/caves/north_central_caves) "hpK" = ( /obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{ - pixel_x = -10; - pixel_y = -2; light_on = 1; light_range = 1; - light_system = 1 + light_system = 1; + pixel_x = -10; + pixel_y = -2 }, /turf/open/auto_turf/strata_grass/layer1, /area/lv624/ground/caves/south_central_caves) @@ -15601,10 +13114,7 @@ /obj/structure/surface/table, /obj/effect/landmark/good_item, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/northeast, /area/lv624/lazarus/research) "hqQ" = ( /obj/structure/flora/bush/ausbushes/var3/sunnybush, @@ -15621,9 +13131,7 @@ name = "\improper Corporation Dome"; req_access_txt = "100" }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/corporate_dome) "hrG" = ( /obj/structure/flora/bush/ausbushes/var3/fullgrass, @@ -15634,10 +13142,10 @@ /area/lv624/ground/river/central_river) "htV" = ( /obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{ - pixel_x = 4; light_on = 1; light_range = 1; - light_system = 1 + light_system = 1; + pixel_x = 4 }, /turf/open/auto_turf/strata_grass/layer1, /area/lv624/ground/caves/west_caves) @@ -15675,10 +13183,7 @@ /obj/structure/barricade/wooden{ dir = 4 }, -/turf/open/floor{ - dir = 9; - icon_state = "warning" - }, +/turf/open/floor/warning/northwest, /area/lv624/lazarus/landing_zones/lz1) "hzR" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_membrane, @@ -15689,15 +13194,18 @@ dir = 1; pixel_y = 7 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/corporate_dome) "hBL" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_membrane, /obj/effect/landmark/structure_spawner/setup/distress/xeno_membrane, /turf/open/gm/dirt, /area/lv624/ground/caves/central_caves) +"hDe" = ( +/obj/structure/bed/stool, +/obj/item/prop/alien/hugger, +/turf/open/floor/dark, +/area/lv624/lazarus/engineering) "hDX" = ( /obj/effect/decal/remains/xeno, /turf/open/gm/dirt, @@ -15712,10 +13220,7 @@ /area/lv624/ground/jungle/north_west_jungle) "hEs" = ( /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor{ - dir = 9; - icon_state = "green" - }, +/turf/open/floor/green/northwest, /area/lv624/lazarus/hydroponics) "hEu" = ( /obj/structure/fence, @@ -15757,9 +13262,20 @@ /obj/effect/landmark/objective_landmark/far, /turf/open/floor/vault, /area/lv624/lazarus/quartstorage) +"hJh" = ( +/obj/structure/coatrack{ + pixel_x = 11; + pixel_y = 14 + }, +/obj/item/clothing/head/soft/blue{ + pixel_x = 7; + pixel_y = 28 + }, +/turf/open/floor/brown/northwest, +/area/lv624/lazarus/comms) "hJn" = ( /obj/structure/flora/jungle/vines/light_2, -/turf/open/gm/grass/grass2, +/turf/open/gm/grass/grass1, /area/lv624/ground/jungle/west_jungle) "hJW" = ( /turf/open/gm/dirtgrassborder/south, @@ -15779,10 +13295,7 @@ /area/lv624/ground/jungle/south_central_jungle) "hMd" = ( /obj/effect/landmark/objective_landmark/far, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv624/ground/jungle/south_west_jungle/ceiling) "hMr" = ( /obj/structure/surface/rack{ @@ -15815,6 +13328,15 @@ /obj/item/reagent_container/food/snacks/grown/mushroom/plumphelmet, /turf/open/auto_turf/strata_grass/layer1, /area/lv624/ground/caves/central_caves) +"hOo" = ( +/obj/structure/stairs/perspective{ + dir = 1; + icon_state = "p_stair_full" + }, +/obj/effect/decal/cleanable/dirt, +/obj/item/stack/rods, +/turf/open/floor/brown/northwest, +/area/lv624/lazarus/comms) "hPV" = ( /obj/effect/decal/remains/xeno{ pixel_x = 31 @@ -15826,15 +13348,10 @@ /obj/structure/reagent_dispensers/water_cooler{ pixel_x = -12 }, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/lv624/lazarus/quartstorage) "hRy" = ( -/turf/open/gm/dirt{ - icon_state = "desert3" - }, +/turf/open/gm/dirt/desert3, /area/lv624/ground/caves/south_west_caves) "hRB" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, @@ -15852,14 +13369,20 @@ /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/east_jungle) "hSa" = ( -/turf/open/floor{ - dir = 8; - icon_state = "warningcorner" - }, +/turf/open/floor/warningcorner/west, /area/lv624/lazarus/landing_zones/lz1) "hSn" = ( /turf/open/gm/grass/grass1, /area/lv624/ground/colony/west_nexus_road) +"hSp" = ( +/obj/structure/flora/grass/tallgrass/jungle/corner{ + dir = 9 + }, +/obj/effect/landmark/nightmare{ + insert_tag = "corporatedome" + }, +/turf/open/gm/grass/grass1, +/area/lv624/ground/colony/west_tcomms_road) "hSz" = ( /obj/effect/landmark/hunter_secondary, /turf/open/gm/grass/grass1, @@ -15868,6 +13391,10 @@ /obj/effect/landmark/monkey_spawn, /turf/open/gm/dirt, /area/lv624/ground/jungle/east_central_jungle) +"hTp" = ( +/obj/structure/girder/reinforced, +/turf/open/floor/plating/platingdmg1, +/area/lv624/lazarus/secure_storage) "hTR" = ( /obj/structure/flora/bush/ausbushes/var3/ywflowers, /turf/open/auto_turf/strata_grass/layer1, @@ -15898,9 +13425,7 @@ /obj/structure/bed/chair/office/dark{ dir = 4 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/medbay) "hZn" = ( /obj/item/stack/sheet/metal{ @@ -15911,9 +13436,7 @@ /area/lv624/ground/jungle/north_west_jungle) "hZW" = ( /obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - icon_state = "redyellowfull" - }, +/turf/open/floor/redyellowfull, /area/lv624/ground/barrens/west_barrens/ceiling) "iab" = ( /turf/open/gm/dirtgrassborder/grassdirt_corner/south_east, @@ -15939,10 +13462,7 @@ /obj/item/stack/sheet/animalhide/xeno{ name = "Warrior hide" }, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv624/ground/caves/sand_temple) "ibS" = ( /obj/structure/flora/jungle/vines/light_2, @@ -15969,10 +13489,7 @@ /obj/item/clothing/suit/armor/yautja_flavor{ anchored = 1 }, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/lv624/ground/caves/sand_temple) "ieH" = ( /obj/item/stack/sheet/wood{ @@ -15983,11 +13500,11 @@ /area/lv624/lazarus/landing_zones/lz1) "ieN" = ( /obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{ - pixel_x = 2; - pixel_y = 7; light_on = 1; light_range = 1; - light_system = 1 + light_system = 1; + pixel_x = 2; + pixel_y = 7 }, /turf/open/auto_turf/strata_grass/layer1, /area/lv624/ground/caves/west_caves) @@ -16030,6 +13547,14 @@ /obj/effect/landmark/queen_spawn, /turf/open/gm/dirt, /area/lv624/ground/caves/east_caves) +"iiO" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + pixel_x = -1; + pixel_y = 1 + }, +/turf/open/floor/dark, +/area/lv624/lazarus/engineering) "ikA" = ( /obj/item/reagent_container/food/snacks/grown/mushroom/chanterelle, /turf/open/auto_turf/strata_grass/layer1, @@ -16054,9 +13579,7 @@ pixel_x = 1; pixel_y = 9 }, -/turf/open/floor/carpet{ - icon_state = "bcarpet09" - }, +/turf/open/floor/carpet/bcarpet09, /area/lv624/ground/caves/north_central_caves) "iml" = ( /obj/structure/surface/rack, @@ -16085,18 +13608,15 @@ /turf/open/gm/dirt, /area/lv624/ground/caves/north_east_caves) "isR" = ( -/obj/effect/landmark/objective_landmark/medium, -/obj/structure/largecrate/random, -/turf/open/floor{ - dir = 9; - icon_state = "brown" +/obj/structure/surface/table, +/obj/item/device/flashlight, +/obj/item/device/radio/off{ + frequency = 1469 }, +/turf/open/floor/brown/northwest, /area/lv624/lazarus/comms) "itE" = ( -/turf/open/floor/plating{ - dir = 6; - icon_state = "asteroidwarning" - }, +/turf/open/floor/plating/asteroidwarning/southeast, /area/lv624/lazarus/landing_zones/lz2) "iuf" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, @@ -16106,9 +13626,7 @@ /turf/open/gm/dirt, /area/lv624/ground/caves/west_caves) "iuO" = ( -/turf/open/gm/dirtgrassborder{ - icon_state = "desert3" - }, +/turf/open/gm/dirtgrassborder/desert3, /area/lv624/ground/barrens/south_eastern_barrens) "ivl" = ( /obj/structure/flora/jungle/vines/light_2, @@ -16131,10 +13649,7 @@ /obj/structure/platform/mineral/sandstone/runed{ dir = 8 }, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/lv624/ground/caves/sand_temple) "iye" = ( /obj/effect/decal/grass_overlay/grass1{ @@ -16154,9 +13669,7 @@ /turf/open/gm/dirt, /area/lv624/ground/caves/central_caves) "izv" = ( -/turf/open/gm/dirt{ - icon_state = "desert0" - }, +/turf/open/gm/dirt/desert0, /area/lv624/ground/barrens/south_eastern_jungle_barrens) "izX" = ( /obj/structure/surface/table/reinforced/prison{ @@ -16185,10 +13698,7 @@ /turf/open/gm/dirtgrassborder/east, /area/lv624/ground/jungle/east_jungle) "iBD" = ( -/turf/open/floor{ - dir = 10; - icon_state = "whiteblue" - }, +/turf/open/floor/whiteblue/southwest, /area/lv624/lazarus/medbay) "iCN" = ( /obj/structure/fence, @@ -16204,10 +13714,7 @@ /obj/structure/barricade/wooden{ dir = 4 }, -/turf/open/floor{ - dir = 8; - icon_state = "warning" - }, +/turf/open/floor/warning/west, /area/lv624/lazarus/landing_zones/lz1) "iGf" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, @@ -16248,9 +13755,7 @@ /area/lv624/ground/barrens/south_eastern_jungle_barrens) "iKp" = ( /obj/structure/surface/rack, -/turf/open/shuttle{ - icon_state = "floor4" - }, +/turf/open/shuttle/bright_red, /area/lv624/lazarus/crashed_ship_containers) "iLL" = ( /obj/effect/decal/remains/human, @@ -16295,10 +13800,7 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - dir = 1; - icon_state = "whiteblue" - }, +/turf/open/floor/whiteblue/north, /area/lv624/lazarus/medbay) "iRb" = ( /obj/effect/landmark/monkey_spawn, @@ -16306,10 +13808,7 @@ /area/lv624/ground/barrens/south_eastern_jungle_barrens) "iSa" = ( /obj/structure/flora/jungle/vines/heavy, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/lv624/ground/caves/sand_temple) "iSg" = ( /obj/structure/flora/bush/ausbushes/ppflowers, @@ -16331,9 +13830,7 @@ /turf/open/gm/dirtgrassborder/grassdirt_corner/south_west, /area/lv624/ground/jungle/south_central_jungle) "iVg" = ( -/turf/open/gm/dirt{ - icon_state = "desert2" - }, +/turf/open/gm/dirt/desert2, /area/lv624/ground/barrens/south_eastern_jungle_barrens) "iWC" = ( /obj/structure/machinery/colony_floodlight, @@ -16357,6 +13854,16 @@ /obj/structure/flora/bush/ausbushes/var3/fullgrass, /turf/open/gm/grass/grass1, /area/lv624/ground/colony/west_tcomms_road) +"iYL" = ( +/obj/item/device/radio/intercom{ + freerange = 1; + frequency = 1469; + name = "General Listening Channel"; + pixel_y = 26 + }, +/obj/item/prop/alien/hugger, +/turf/open/floor/brown/northwest, +/area/lv624/lazarus/comms) "iZG" = ( /obj/effect/landmark/crap_item, /turf/open/gm/dirt, @@ -16367,14 +13874,16 @@ /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/south_west_jungle) "jaa" = ( -/turf/open/gm/dirt{ - icon_state = "desert2" - }, +/turf/open/gm/dirt/desert2, /area/lv624/ground/barrens/central_barrens) "jas" = ( /obj/structure/flora/jungle/vines/heavy, /turf/open/gm/dirtgrassborder/grassdirt_corner/south_east, /area/lv624/ground/caves/sand_temple) +"jaw" = ( +/obj/item/stack/sheet/metal, +/turf/open/gm/dirt, +/area/lv624/ground/colony/west_tcomms_road) "jbd" = ( /obj/structure/flora/bush/ausbushes/var3/sparsegrass, /turf/open/gm/grass/grass1, @@ -16385,6 +13894,12 @@ }, /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/north_jungle) +"jcb" = ( +/obj/structure/machinery/power/apc/nocharge{ + dir = 4 + }, +/turf/open/floor/purple/northwest, +/area/lv624/lazarus/sleep_female) "jcn" = ( /obj/effect/decal/grass_overlay/grass1{ dir = 8 @@ -16397,9 +13912,20 @@ /obj/structure/flora/bush/ausbushes/lavendergrass, /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/south_west_jungle) +"jdL" = ( +/obj/structure/foamed_metal, +/obj/structure/flora/jungle/vines/light_2, +/turf/open/floor/plating/warnplate, +/area/lv624/lazarus/engineering) "jeL" = ( /turf/closed/wall/r_wall, /area/lv624/ground/caves/north_central_caves) +"jfN" = ( +/obj/structure/platform{ + dir = 4 + }, +/turf/open/floor/brown/northwest, +/area/lv624/lazarus/comms) "jga" = ( /turf/open/gm/river, /area/lv624/ground/jungle/west_jungle) @@ -16441,10 +13967,7 @@ /turf/closed/wall/strata_ice/jungle, /area/lv624/ground/jungle/east_jungle) "jiR" = ( -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/lv624/lazarus/quartstorage) "jlh" = ( /obj/structure/machinery/colony_floodlight, @@ -16475,9 +13998,7 @@ pixel_y = 8 }, /obj/item/tool/pen/clicky, -/turf/open/floor{ - icon_state = "whitebluecorner" - }, +/turf/open/floor/whitebluecorner, /area/lv624/lazarus/corporate_dome) "jpX" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, @@ -16496,9 +14017,7 @@ /area/lv624/ground/caves/west_caves) "jrC" = ( /obj/structure/curtain/red, -/turf/open/shuttle{ - icon_state = "floor6" - }, +/turf/open/shuttle/red, /area/lv624/ground/caves/sand_temple) "jsd" = ( /obj/structure/flora/jungle/vines/light_2, @@ -16510,9 +14029,7 @@ /area/lv624/lazarus/landing_zones/lz1) "jum" = ( /obj/effect/landmark/lv624/fog_blocker, -/turf/open/gm/dirt{ - icon_state = "desert1" - }, +/turf/open/gm/dirt/desert1, /area/lv624/ground/river/east_river) "jvl" = ( /obj/structure/cargo_container/lockmart/mid, @@ -16525,10 +14042,12 @@ /turf/open/gm/dirt, /area/lv624/ground/caves/west_caves) "jwW" = ( -/turf/open/floor/plating{ - dir = 6; - icon_state = "warnplate" +/obj/structure/platform_decoration, +/obj/structure/stairs/perspective{ + dir = 1; + icon_state = "p_stair_full" }, +/turf/open/floor/plating/warnplate/southeast, /area/lv624/lazarus/engineering) "jxw" = ( /obj/structure/surface/table/reinforced/prison{ @@ -16561,10 +14080,7 @@ pixel_x = -8; pixel_y = 7 }, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/lv624/lazarus/quartstorage) "jzm" = ( /obj/structure/surface/table/reinforced/prison, @@ -16572,9 +14088,7 @@ dir = 2; layer = 2.9 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/corporate_dome) "jzZ" = ( /obj/structure/flora/jungle/vines/light_2, @@ -16595,9 +14109,7 @@ /obj/structure/platform_decoration/mineral/sandstone/runed{ dir = 4 }, -/turf/open/shuttle{ - icon_state = "floor6" - }, +/turf/open/shuttle/red, /area/lv624/ground/caves/sand_temple) "jBl" = ( /obj/effect/decal/grass_overlay/grass1{ @@ -16665,6 +14177,13 @@ /obj/structure/flora/jungle/vines/light_3, /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/central_jungle) +"jIr" = ( +/obj/structure/largecrate, +/obj/structure/prop/mech/parts/gygax_armor{ + layer = 1 + }, +/turf/open/floor/plating/platebot, +/area/lv624/lazarus/robotics) "jJg" = ( /obj/structure/flora/bush/ausbushes/var3/sparsegrass, /turf/open/auto_turf/strata_grass/layer1, @@ -16717,13 +14236,8 @@ /obj/structure/machinery/light{ dir = 4 }, -/obj/structure/machinery/power/geothermal{ - fail_rate = 5 - }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "warnplate" - }, +/obj/structure/machinery/power/reactor/colony, +/turf/open/floor/plating/warnplate/west, /area/lv624/lazarus/engineering) "jMD" = ( /obj/effect/decal/grass_overlay/grass1/inner{ @@ -16740,9 +14254,7 @@ /obj/structure/platform_decoration/mineral/sandstone/runed{ dir = 1 }, -/turf/open/shuttle{ - icon_state = "floor6" - }, +/turf/open/shuttle/red, /area/lv624/ground/caves/sand_temple) "jMS" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, @@ -16752,10 +14264,7 @@ "jNR" = ( /obj/effect/decal/cleanable/blood/splatter, /obj/effect/landmark/objective_landmark/far, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv624/lazarus/main_hall) "jQj" = ( /obj/structure/flora/jungle/vines/heavy, @@ -16770,10 +14279,7 @@ dir = 8 }, /obj/structure/flora/jungle/vines/light_3, -/turf/open/floor{ - dir = 6; - icon_state = "warning" - }, +/turf/open/floor/warning/southeast, /area/lv624/lazarus/landing_zones/lz2) "jQW" = ( /obj/structure/surface/table/reinforced/prison{ @@ -16785,6 +14291,15 @@ /obj/effect/landmark/objective_landmark/far, /turf/open/gm/dirt, /area/lv624/ground/caves/sand_temple) +"jQX" = ( +/obj/structure/pipes/standard/simple/hidden/cyan{ + dir = 4 + }, +/obj/structure/machinery/power/apc/nocharge{ + dir = 1 + }, +/turf/open/floor/grimy, +/area/lv624/lazarus/hop) "jRm" = ( /turf/open/gm/dirt, /area/lv624/ground/colony/north_nexus_road) @@ -16797,9 +14312,7 @@ dir = 1; pixel_y = 7 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/corporate_dome) "jRJ" = ( /obj/effect/decal/cleanable/blood/xeno, @@ -16807,11 +14320,11 @@ /area/lv624/ground/jungle/north_west_jungle) "jRL" = ( /obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{ - pixel_x = 2; - pixel_y = 7; light_on = 1; light_range = 1; - light_system = 1 + light_system = 1; + pixel_x = 2; + pixel_y = 7 }, /turf/open/auto_turf/strata_grass/layer1, /area/lv624/ground/caves/east_caves) @@ -16868,10 +14381,7 @@ /obj/item/tool/pen/red/clicky{ pixel_y = 6 }, -/turf/open/floor{ - dir = 5; - icon_state = "whiteyellow" - }, +/turf/open/floor/whiteyellow/northeast, /area/lv624/lazarus/corporate_dome) "jZL" = ( /obj/effect/landmark/monkey_spawn, @@ -16893,10 +14403,7 @@ /area/lv624/ground/barrens/north_east_barrens) "kbn" = ( /obj/structure/machinery/sensortower, -/turf/open/floor{ - dir = 1; - icon_state = "bot" - }, +/turf/open/floor/bot/north, /area/lv624/ground/caves/north_central_caves) "kbr" = ( /obj/structure/showcase{ @@ -16904,10 +14411,7 @@ icon_state = "yaut"; name = "alien sarcophagus" }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/lv624/ground/caves/sand_temple) "kcP" = ( /obj/effect/landmark/lv624/fog_blocker, @@ -16990,9 +14494,7 @@ /turf/open/gm/dirt, /area/lv624/ground/caves/sand_temple) "krs" = ( -/turf/open/gm/dirt{ - icon_state = "desert2" - }, +/turf/open/gm/dirt/desert2, /area/lv624/ground/caves/south_west_caves) "ksc" = ( /obj/structure/flora/bush/ausbushes/var3/sunnybush{ @@ -17017,10 +14519,7 @@ /obj/item/storage/toolbox/electrical{ pixel_y = -3 }, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/lv624/lazarus/quartstorage) "ktf" = ( /obj/structure/barricade/handrail/strata{ @@ -17042,10 +14541,7 @@ pixel_x = 6; pixel_y = 4 }, -/turf/open/floor{ - dir = 9; - icon_state = "green" - }, +/turf/open/floor/green/northwest, /area/lv624/lazarus/hydroponics) "kuZ" = ( /obj/structure/machinery/colony_floodlight, @@ -17054,6 +14550,9 @@ "kvo" = ( /turf/open/gm/dirtgrassborder/grassdirt_corner2/south_west, /area/lv624/ground/jungle/east_central_jungle) +"kvv" = ( +/turf/open/floor/dark, +/area/lv624/lazarus/comms) "kvE" = ( /obj/structure/machinery/landinglight/ds2/delaythree, /turf/open/floor/plating, @@ -17063,10 +14562,6 @@ /obj/structure/flora/jungle/vines/heavy, /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/south_west_jungle) -"kxo" = ( -/obj/effect/landmark/monkey_spawn, -/turf/open/gm/grass/grass1, -/area/lv624/lazarus/landing_zones/lz2) "kxv" = ( /obj/effect/decal/grass_overlay/grass1/inner{ dir = 1 @@ -17086,6 +14581,14 @@ }, /turf/open/gm/dirt, /area/lv624/ground/caves/south_west_caves) +"kyz" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_x = 1; + pixel_y = 1 + }, +/turf/open/floor/dark, +/area/lv624/lazarus/engineering) "kyN" = ( /obj/structure/flora/bush/ausbushes/var3/ywflowers, /turf/open/gm/grass/grass1, @@ -17102,10 +14605,7 @@ dir = 4 }, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - dir = 9; - icon_state = "green" - }, +/turf/open/floor/green/northwest, /area/lv624/lazarus/hydroponics) "kzn" = ( /obj/effect/decal/grass_overlay/grass1/inner{ @@ -17113,6 +14613,11 @@ }, /turf/open/gm/dirt, /area/lv624/ground/caves/north_west_caves) +"kzp" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/foamed_metal, +/turf/open/floor/dark, +/area/lv624/lazarus/engineering) "kzu" = ( /obj/structure/flora/bush/ausbushes/grassybush, /turf/open/gm/grass/grass1, @@ -17139,9 +14644,7 @@ req_access_txt = "100"; req_one_access = null }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/lv624/lazarus/corporate_dome) "kAl" = ( /obj/structure/flora/jungle/vines/heavy, @@ -17151,10 +14654,7 @@ /obj/structure/machinery/cm_vending/sorted/tech/comp_storage{ req_access = list(7,23,27) }, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/lv624/lazarus/quartstorage) "kBq" = ( /obj/structure/flora/bush/ausbushes/ausbush, @@ -17179,9 +14679,7 @@ /turf/open/gm/dirt, /area/lv624/ground/jungle/east_jungle) "kHB" = ( -/turf/open/gm/dirt{ - icon_state = "desert3" - }, +/turf/open/gm/dirt/desert3, /area/lv624/ground/barrens/central_barrens) "kHU" = ( /turf/open/gm/grass/grass1, @@ -17208,6 +14706,17 @@ }, /turf/open/gm/dirt, /area/lv624/ground/caves/north_west_caves) +"kKL" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/brown/northwest, +/area/lv624/lazarus/comms) "kLl" = ( /obj/effect/decal/grass_overlay/grass1/inner{ dir = 8 @@ -17232,10 +14741,7 @@ /area/lv624/ground/jungle/east_jungle) "kPL" = ( /obj/structure/fence, -/turf/open/floor{ - dir = 4; - icon_state = "warning" - }, +/turf/open/floor/warning/east, /area/lv624/ground/barrens/east_barrens) "kPU" = ( /obj/structure/platform_decoration/mineral/sandstone/runed{ @@ -17247,9 +14753,7 @@ /obj/structure/surface/table, /obj/item/trash/plate, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - icon_state = "bar" - }, +/turf/open/floor/bar, /area/lv624/lazarus/canteen) "kQY" = ( /turf/open/gm/coast/beachcorner/north_west, @@ -17265,18 +14769,14 @@ /obj/item/weapon/gun/shotgun/pump/dual_tube/cmb{ pixel_y = -6 }, -/turf/open/shuttle{ - icon_state = "floor4" - }, +/turf/open/shuttle/bright_red, /area/lv624/lazarus/crashed_ship_containers) "kRR" = ( /turf/open/gm/dirtgrassborder/grassdirt_corner2/north_east, /area/lv624/ground/caves/sand_temple) "kSs" = ( /obj/structure/inflatable, -/turf/open/shuttle{ - icon_state = "floor4" - }, +/turf/open/shuttle/bright_red, /area/lv624/lazarus/crashed_ship_containers) "kSH" = ( /obj/structure/bed/alien{ @@ -17284,6 +14784,10 @@ }, /turf/open/gm/dirt, /area/lv624/ground/caves/sand_temple) +"kSN" = ( +/obj/structure/girder, +/turf/open/floor/plating/platingdmg3, +/area/lv624/lazarus/secure_storage) "kSR" = ( /obj/structure/fence, /turf/open/gm/dirtgrassborder/grassdirt_corner/north_west, @@ -17302,10 +14806,12 @@ /obj/structure/flora/jungle/plantbot1, /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/north_west_jungle) +"kVS" = ( +/obj/item/weapon/gun/rifle/m41a, +/turf/open/gm/dirt, +/area/lv624/lazarus/secure_storage) "kWH" = ( -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/lv624/lazarus/corporate_dome) "kWJ" = ( /obj/structure/machinery/landinglight/ds2/delaythree{ @@ -17318,11 +14824,10 @@ /turf/open/gm/dirt, /area/lv624/ground/caves/west_caves) "kWX" = ( -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" - }, -/area/lv624/ground/colony/telecomm/sw_lz2) +/obj/effect/landmark/objective_landmark/medium, +/obj/structure/largecrate/random, +/turf/open/floor/brown/northwest, +/area/lv624/lazarus/comms) "kXE" = ( /obj/structure/flora/bush/ausbushes/ausbush, /turf/open/gm/dirtgrassborder/north, @@ -17355,15 +14860,10 @@ "kZS" = ( /obj/structure/surface/table/reinforced/prison, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - dir = 8; - icon_state = "whiteblue" - }, +/turf/open/floor/whiteblue/west, /area/lv624/lazarus/corporate_dome) "lav" = ( -/turf/open/gm/dirt{ - icon_state = "desert_dug" - }, +/turf/open/gm/dirt/desert_dug, /area/lv624/ground/caves/west_caves) "laY" = ( /obj/structure/flora/jungle/vines/light_1, @@ -17446,10 +14946,7 @@ }, /obj/structure/flora/jungle/vines/heavy, /obj/structure/flora/jungle/vines/light_2, -/turf/open/floor{ - dir = 1; - icon_state = "warning" - }, +/turf/open/floor/warning/north, /area/lv624/lazarus/landing_zones/lz1) "lnr" = ( /obj/structure/flora/bush/ausbushes/lavendergrass, @@ -17481,9 +14978,7 @@ /turf/open/gm/dirt, /area/lv624/ground/caves/south_east_caves) "lpV" = ( -/turf/open/floor/plating{ - icon_state = "platebotc" - }, +/turf/open/floor/plating/platebotc, /area/lv624/lazarus/quartstorage) "lqI" = ( /obj/structure/flora/bush/ausbushes/var3/sparsegrass, @@ -17517,10 +15012,10 @@ /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/central_jungle) "lud" = ( -/obj/structure/fence, -/obj/structure/flora/bush/ausbushes/lavendergrass, -/turf/open/gm/dirtgrassborder/west, -/area/lv624/ground/colony/north_tcomms_road) +/obj/structure/foamed_metal, +/obj/structure/flora/jungle/vines/heavy, +/turf/open/floor/plating/warnplate, +/area/lv624/lazarus/engineering) "lxr" = ( /obj/structure/flora/jungle/vines/light_2, /turf/open/gm/dirtgrassborder/south, @@ -17557,10 +15052,16 @@ /turf/open/gm/dirt, /area/lv624/ground/caves/north_east_caves) "lzE" = ( -/turf/open/gm/dirt{ - icon_state = "desert0" - }, +/turf/open/gm/dirt/desert0, /area/lv624/ground/barrens/west_barrens) +"lzW" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/turf/open/floor/dark, +/area/lv624/lazarus/engineering) "lAX" = ( /obj/structure/flora/bush/ausbushes/reedbush, /turf/open/gm/grass/grass1, @@ -17576,9 +15077,7 @@ /obj/structure/barricade/handrail/strata{ dir = 8 }, -/turf/open/gm/dirtgrassborder/weedable{ - icon_state = "grass1" - }, +/turf/open/gm/dirtgrassborder/weedable/grass1, /area/lv624/ground/barrens/south_eastern_barrens) "lBr" = ( /obj/structure/flora/bush/ausbushes/grassybush, @@ -17598,10 +15097,7 @@ /area/lv624/ground/jungle/north_west_jungle) "lDh" = ( /obj/item/clothing/suit/armor/yautja_flavor, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/lv624/ground/caves/sand_temple) "lEY" = ( /obj/structure/flora/bush/ausbushes/lavendergrass, @@ -17621,20 +15117,14 @@ name = "Garage Shutters"; pixel_x = -28 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/lv624/lazarus/corporate_dome) "lHc" = ( /obj/structure/lattice{ layer = 2.9 }, -/obj/structure/machinery/power/geothermal{ - fail_rate = 5 - }, -/turf/open/floor/plating{ - icon_state = "warnplate" - }, +/obj/structure/machinery/power/reactor/colony, +/turf/open/floor/plating/warnplate, /area/lv624/lazarus/engineering) "lHL" = ( /obj/effect/landmark/hunter_primary, @@ -17649,9 +15139,7 @@ amount = 2 }, /obj/effect/landmark/objective_landmark/far, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/lv624/lazarus/quartstorage) "lIL" = ( /obj/structure/blocker/forcefield/multitile_vehicles, @@ -17678,10 +15166,7 @@ /obj/item/clothing/shoes/yautja_flavor{ anchored = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/lv624/ground/caves/sand_temple) "lJo" = ( /obj/structure/flora/jungle/vines/heavy, @@ -17694,18 +15179,15 @@ "lKe" = ( /obj/structure/flora/jungle/vines/heavy, /obj/structure/flora/jungle/vines/light_3, -/turf/open/floor{ - dir = 10; - icon_state = "warning" - }, +/turf/open/floor/warning/southwest, /area/lv624/lazarus/landing_zones/lz2) "lKl" = ( /obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{ - pixel_x = 6; - pixel_y = -8; light_on = 1; light_range = 1; - light_system = 1 + light_system = 1; + pixel_x = 6; + pixel_y = -8 }, /turf/open/auto_turf/strata_grass/layer1, /area/lv624/ground/caves/west_caves) @@ -17735,37 +15217,34 @@ /area/lv624/ground/caves/north_east_caves) "lNe" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor{ - dir = 1; - icon_state = "whitebluecorner" - }, +/turf/open/floor/whitebluecorner/north, /area/lv624/lazarus/corporate_dome) "lNG" = ( /obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{ - pixel_x = 2; - pixel_y = 7; light_on = 1; light_range = 1; - light_system = 1 + light_system = 1; + pixel_x = 2; + pixel_y = 7 }, /turf/open/auto_turf/strata_grass/layer1, /area/lv624/ground/caves/south_east_caves) "lPJ" = ( -/turf/open/gm/dirtgrassborder{ - icon_state = "desert" - }, +/turf/open/gm/dirtgrassborder/desert, /area/lv624/ground/barrens/south_eastern_barrens) "lQC" = ( /turf/open/gm/dirt, /area/lv624/ground/barrens/east_barrens) +"lQP" = ( +/obj/structure/window_frame/colony, +/obj/item/shard, +/turf/open/floor/plating, +/area/lv624/lazarus/comms) "lRd" = ( /obj/item/stack/sheet/wood{ amount = 2 }, -/turf/open/floor{ - dir = 1; - icon_state = "warning" - }, +/turf/open/floor/warning/north, /area/lv624/lazarus/landing_zones/lz1) "lRy" = ( /obj/effect/landmark/crap_item, @@ -17782,10 +15261,7 @@ dir = 1 }, /obj/item/clothing/shoes/dress, -/turf/open/floor{ - dir = 9; - icon_state = "whiteblue" - }, +/turf/open/floor/whiteblue/northwest, /area/lv624/lazarus/corporate_dome) "lSA" = ( /obj/effect/decal/grass_overlay/grass1{ @@ -17812,10 +15288,7 @@ /obj/item/stack/sheet/wood{ amount = 2 }, -/turf/open/floor{ - dir = 5; - icon_state = "warning" - }, +/turf/open/floor/warning/northeast, /area/lv624/lazarus/landing_zones/lz2) "lUc" = ( /obj/structure/flora/bush/ausbushes/ppflowers, @@ -17877,20 +15350,14 @@ /area/lv624/lazarus/landing_zones/lz2) "lZl" = ( /obj/structure/largecrate/random, -/turf/open/floor{ - dir = 1; - icon_state = "bot" - }, +/turf/open/floor/bot/north, /area/lv624/lazarus/landing_zones/lz1) "maE" = ( /obj/item/stack/sheet/wood{ amount = 2 }, /obj/effect/landmark/objective_landmark/far, -/turf/open/floor{ - dir = 1; - icon_state = "bot" - }, +/turf/open/floor/bot/north, /area/lv624/lazarus/landing_zones/lz1) "mbp" = ( /obj/structure/flora/jungle/alienplant1{ @@ -17911,14 +15378,18 @@ /area/lv624/ground/jungle/east_jungle) "mca" = ( /obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{ - pixel_x = 2; - pixel_y = 7; light_on = 1; light_range = 1; - light_system = 1 + light_system = 1; + pixel_x = 2; + pixel_y = 7 }, /turf/open/auto_turf/strata_grass/layer1, /area/lv624/ground/caves/south_central_caves) +"mdw" = ( +/obj/structure/prop/mech/drill, +/turf/open/floor/greengrid, +/area/lv624/lazarus/secure_storage) "mdQ" = ( /turf/closed/wall/rock/brown, /area/lv624/ground/caves/west_caves) @@ -17928,11 +15399,11 @@ /area/lv624/ground/jungle/south_east_jungle) "mfn" = ( /obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{ - pixel_x = 2; - pixel_y = -2; light_on = 1; light_range = 1; - light_system = 1 + light_system = 1; + pixel_x = 2; + pixel_y = -2 }, /turf/open/auto_turf/strata_grass/layer1, /area/lv624/ground/caves/east_caves) @@ -17962,42 +15433,30 @@ id = "garage_lv"; name = "\improper Garage" }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/lv624/lazarus/corporate_dome) "mhZ" = ( -/turf/open/shuttle{ - icon_state = "floor6" - }, +/turf/open/shuttle/red, /area/lv624/ground/caves/sand_temple) "miF" = ( /obj/item/storage/firstaid, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/medbay) "mjm" = ( -/turf/open/gm/dirt{ - icon_state = "desert3" - }, +/turf/open/gm/dirt/desert3, /area/lv624/ground/river/east_river) "mjB" = ( /obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - dir = 8; - icon_state = "whitebluecorner" - }, +/turf/open/floor/whitebluecorner/west, /area/lv624/lazarus/corporate_dome) "mjY" = ( /obj/structure/barricade/handrail/strata{ dir = 1 }, -/turf/open/gm/dirtgrassborder/weedable{ - icon_state = "grass1" - }, +/turf/open/gm/dirtgrassborder/weedable/grass1, /area/lv624/ground/barrens/south_eastern_barrens) "mkn" = ( +/obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/lv624/lazarus/secure_storage) "mko" = ( @@ -18006,9 +15465,7 @@ /area/lv624/ground/colony/south_nexus_road) "mkr" = ( /obj/effect/landmark/hunter_primary, -/turf/open/floor{ - icon_state = "cult" - }, +/turf/open/floor/cult, /area/lv624/ground/caves/south_west_caves) "mku" = ( /obj/effect/landmark/monkey_spawn, @@ -18018,7 +15475,7 @@ "mkU" = ( /obj/structure/foamed_metal, /obj/structure/flora/jungle/vines/light_2, -/turf/open/floor/plating, +/turf/open/floor/delivery, /area/lv624/lazarus/engineering) "mkW" = ( /obj/structure/flora/grass/tallgrass/jungle/corner{ @@ -18026,6 +15483,13 @@ }, /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/north_east_jungle) +"mkZ" = ( +/obj/structure/platform_decoration{ + dir = 4 + }, +/obj/structure/foamed_metal, +/turf/open/floor/dark, +/area/lv624/lazarus/engineering) "mmu" = ( /obj/structure/flora/jungle/plantbot1, /turf/open/gm/grass/grass1, @@ -18056,15 +15520,15 @@ pixel_x = -4; pixel_y = 9 }, -/turf/open/floor{ - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull, /area/lv624/lazarus/medbay) +"mqf" = ( +/obj/item/tool/wrench, +/turf/open/floor/plating, +/area/lv624/lazarus/secure_storage) "mqw" = ( /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/lv624/lazarus/corporate_dome) "mqJ" = ( /obj/effect/landmark/lv624/fog_blocker, @@ -18090,10 +15554,7 @@ /area/lv624/ground/river/west_river) "mtP" = ( /obj/structure/machinery/vending/coffee, -/turf/open/floor{ - dir = 1; - icon_state = "whiteblue" - }, +/turf/open/floor/whiteblue/north, /area/lv624/lazarus/medbay) "mun" = ( /obj/structure/fence, @@ -18112,10 +15573,7 @@ /area/lv624/ground/jungle/north_east_jungle) "mvc" = ( /obj/effect/landmark/static_comms/net_two, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/lv624/ground/colony/telecomm/cargo) "mvr" = ( /obj/structure/machinery/colony_floodlight, @@ -18126,10 +15584,7 @@ name = "Weyland-Yutani Automatic Teller Machine"; pixel_y = 30 }, -/turf/open/floor{ - dir = 9; - icon_state = "whiteblue" - }, +/turf/open/floor/whiteblue/northwest, /area/lv624/lazarus/corporate_dome) "mxd" = ( /obj/structure/flora/bush/ausbushes/var3/ywflowers, @@ -18145,11 +15600,15 @@ /obj/structure/flora/jungle/vines/light_2, /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/south_west_jungle) -"mBL" = ( -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" +"mBH" = ( +/obj/structure/foamed_metal{ + layer = 3.1 }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/dark, +/area/lv624/lazarus/engineering) +"mBL" = ( +/turf/open/floor/asteroidwarning/north, /area/lv624/ground/colony/telecomm/sw_lz2) "mBN" = ( /obj/structure/window/reinforced{ @@ -18162,10 +15621,7 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor{ - dir = 10; - icon_state = "whiteblue" - }, +/turf/open/floor/whiteblue/southwest, /area/lv624/lazarus/corporate_dome) "mEo" = ( /obj/effect/decal/grass_overlay/grass1/inner{ @@ -18206,10 +15662,7 @@ /turf/open/gm/grass/grass1, /area/lv624/lazarus/landing_zones/lz2) "mJB" = ( -/turf/open/floor{ - dir = 1; - icon_state = "whiteyellowcorner" - }, +/turf/open/floor/whiteyellowcorner/north, /area/lv624/lazarus/corporate_dome) "mJF" = ( /obj/structure/flora/bush/ausbushes/palebush, @@ -18242,10 +15695,7 @@ pixel_x = 6; pixel_y = -2 }, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/lv624/lazarus/quartstorage) "mNl" = ( /obj/effect/decal/grass_overlay/grass1/inner{ @@ -18285,30 +15735,21 @@ amount = 2 }, /obj/structure/flora/jungle/vines/heavy, -/turf/open/floor{ - dir = 1; - icon_state = "warning" - }, +/turf/open/floor/warning/north, /area/lv624/lazarus/landing_zones/lz2) "mRm" = ( /obj/structure/reagent_dispensers/fueltank, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/lv624/lazarus/corporate_dome) "mSo" = ( -/turf/open/gm/dirt{ - icon_state = "desert1" - }, +/turf/open/gm/dirt/desert1, /area/lv624/ground/barrens/central_barrens) "mSN" = ( /obj/structure/flora/bush/ausbushes/ausbush, /turf/open/gm/dirtgrassborder/east, /area/lv624/ground/barrens/south_eastern_jungle_barrens) "mUH" = ( -/turf/open/gm/dirtgrassborder{ - icon_state = "desert0" - }, +/turf/open/gm/dirtgrassborder/desert0, /area/lv624/ground/barrens/south_eastern_barrens) "mUQ" = ( /obj/structure/flora/bush/ausbushes/var3/fernybush, @@ -18344,10 +15785,7 @@ /area/lv624/ground/barrens/south_eastern_barrens) "mVn" = ( /obj/structure/machinery/photocopier, -/turf/open/floor{ - dir = 10; - icon_state = "whiteblue" - }, +/turf/open/floor/whiteblue/southwest, /area/lv624/lazarus/corporate_dome) "mVr" = ( /obj/structure/flora/bush/ausbushes/palebush, @@ -18393,9 +15831,7 @@ name = "Garage Shutters"; pixel_y = -28 }, -/turf/open/floor/plating{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/plating/asteroidwarning, /area/lv624/lazarus/landing_zones/lz2) "ndk" = ( /obj/structure/flora/bush/ausbushes/ppflowers, @@ -18444,10 +15880,7 @@ /turf/open/gm/grass/grass1, /area/lv624/ground/barrens/south_eastern_barrens) "niV" = ( -/turf/open/floor/plating{ - dir = 4; - icon_state = "asteroidwarning" - }, +/turf/open/floor/plating/asteroidwarning/east, /area/lv624/lazarus/landing_zones/lz2) "njl" = ( /obj/effect/decal/cleanable/blood/oil, @@ -18458,10 +15891,7 @@ /turf/open/gm/dirt, /area/lv624/ground/colony/west_tcomms_road) "njO" = ( -/turf/open/floor{ - dir = 5; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/northeast, /area/lv624/ground/colony/telecomm/cargo) "nkg" = ( /obj/structure/prop/brazier/torch, @@ -18500,10 +15930,7 @@ /area/lv624/ground/jungle/west_jungle) "nqt" = ( /obj/item/device/analyzer/plant_analyzer, -/turf/open/floor{ - dir = 9; - icon_state = "green" - }, +/turf/open/floor/green/northwest, /area/lv624/lazarus/hydroponics) "nqv" = ( /turf/open/gm/river, @@ -18513,16 +15940,19 @@ /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/north_jungle) "nrb" = ( -/turf/open/floor{ - dir = 1; - icon_state = "whitebluecorner" - }, +/turf/open/floor/whitebluecorner/north, /area/lv624/lazarus/corporate_dome) "nrm" = ( -/turf/open/gm/dirt{ - icon_state = "desert3" - }, +/turf/open/gm/dirt/desert3, /area/lv624/ground/barrens/west_barrens) +"nrK" = ( +/obj/structure/stairs/perspective{ + dir = 1; + icon_state = "p_stair_full" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/brown/northwest, +/area/lv624/lazarus/comms) "nrP" = ( /obj/structure/transmitter/colony_net{ phone_category = "Lazarus Landing"; @@ -18533,10 +15963,10 @@ /area/lv624/lazarus/quartstorage) "nrR" = ( /obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{ - pixel_x = -10; light_on = 1; light_range = 1; - light_system = 1 + light_system = 1; + pixel_x = -10 }, /turf/open/auto_turf/strata_grass/layer1, /area/lv624/ground/caves/south_east_caves) @@ -18558,10 +15988,7 @@ /obj/structure/platform_decoration/mineral/sandstone/runed{ dir = 1 }, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv624/ground/barrens/south_eastern_barrens) "ntr" = ( /turf/closed/wall/strata_ice/jungle, @@ -18615,10 +16042,14 @@ /turf/open/gm/dirt, /area/lv624/lazarus/landing_zones/lz2) "nwR" = ( -/turf/open/floor/plating{ - dir = 10; - icon_state = "warnplate" +/obj/structure/platform_decoration{ + dir = 1 + }, +/obj/structure/stairs/perspective{ + dir = 1; + icon_state = "p_stair_full" }, +/turf/open/floor/plating/warnplate/southwest, /area/lv624/lazarus/engineering) "nxe" = ( /obj/structure/surface/table/woodentable/poor, @@ -18626,16 +16057,11 @@ pixel_x = 2; pixel_y = 3 }, -/turf/open/floor/wood{ - icon_state = "wood-broken6" - }, +/turf/open/floor/wood/wood_broken6, /area/lv624/ground/caves/north_central_caves) "nxu" = ( /obj/effect/decal/cleanable/blood/drip, -/turf/open/floor{ - dir = 8; - icon_state = "whiteyellowcorner" - }, +/turf/open/floor/whiteyellowcorner/west, /area/lv624/lazarus/corporate_dome) "nys" = ( /obj/effect/decal/grass_overlay/grass1{ @@ -18652,19 +16078,13 @@ /obj/item/stack/sheet/wood{ amount = 2 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/lv624/lazarus/quartstorage) "nBh" = ( -/turf/open/floor{ - icon_state = "cult" - }, +/turf/open/floor/cult, /area/lv624/ground/caves/south_west_caves) "nBK" = ( -/turf/open/gm/dirt{ - icon_state = "desert3" - }, +/turf/open/gm/dirt/desert3, /area/lv624/ground/caves/sand_temple) "nBM" = ( /obj/structure/flora/jungle/vines/heavy, @@ -18674,10 +16094,7 @@ "nDr" = ( /obj/structure/surface/rack, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/lv624/lazarus/quartstorage) "nEd" = ( /turf/closed/wall/r_wall, @@ -18713,17 +16130,11 @@ /obj/structure/surface/table, /obj/item/device/analyzer/plant_analyzer, /obj/effect/landmark/crap_item, -/turf/open/floor{ - dir = 9; - icon_state = "green" - }, +/turf/open/floor/green/northwest, /area/lv624/lazarus/hydroponics) "nHj" = ( /obj/item/tool/extinguisher, -/turf/open/floor{ - dir = 9; - icon_state = "green" - }, +/turf/open/floor/green/northwest, /area/lv624/lazarus/hydroponics) "nHq" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_nest, @@ -18738,10 +16149,7 @@ /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/east_jungle) "nHP" = ( -/turf/open/floor{ - dir = 6; - icon_state = "whiteblue" - }, +/turf/open/floor/whiteblue/southeast, /area/lv624/lazarus/medbay) "nHY" = ( /obj/structure/flora/bush/ausbushes/reedbush, @@ -18756,15 +16164,10 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor{ - dir = 10; - icon_state = "whiteblue" - }, +/turf/open/floor/whiteblue/southwest, /area/lv624/lazarus/corporate_dome) "nIA" = ( -/turf/open/gm/dirt{ - icon_state = "desert0" - }, +/turf/open/gm/dirt/desert0, /area/lv624/ground/barrens/east_barrens) "nIH" = ( /obj/structure/stairs/perspective{ @@ -18772,10 +16175,7 @@ dir = 6; icon_state = "p_stair_full" }, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv624/ground/caves/sand_temple) "nIZ" = ( /obj/structure/machinery/door/airlock/almayer/medical/glass/colony{ @@ -18783,9 +16183,7 @@ req_access_txt = "100"; req_one_access = null }, -/turf/open/floor{ - icon_state = "bar" - }, +/turf/open/floor/bar, /area/lv624/lazarus/canteen) "nJF" = ( /obj/structure/fence, @@ -18807,10 +16205,7 @@ /area/lv624/ground/caves/south_central_caves) "nLH" = ( /obj/structure/prop/tower, -/turf/open/floor{ - dir = 1; - icon_state = "bot" - }, +/turf/open/floor/bot/north, /area/lv624/lazarus/landing_zones/lz1) "nLI" = ( /obj/structure/flora/bush/ausbushes/palebush, @@ -18818,9 +16213,7 @@ /area/lv624/ground/jungle/east_central_jungle) "nMu" = ( /obj/effect/landmark/objective_landmark/science, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/lv624/lazarus/research) "nMJ" = ( /obj/structure/flora/jungle/vines/heavy, @@ -18828,11 +16221,11 @@ /area/lv624/lazarus/corporate_dome) "nNu" = ( /obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{ - pixel_x = 6; - pixel_y = -8; light_on = 1; light_range = 1; - light_system = 1 + light_system = 1; + pixel_x = 6; + pixel_y = -8 }, /turf/open/auto_turf/strata_grass/layer1, /area/lv624/ground/barrens/north_east_barrens) @@ -18845,9 +16238,7 @@ dir = 4 }, /obj/effect/landmark/objective_landmark/far, -/turf/open/floor/plating{ - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate, /area/lv624/ground/barrens/east_barrens/ceiling) "nOX" = ( /obj/structure/machinery/colony_floodlight, @@ -18862,18 +16253,15 @@ dir = 1; icon_state = "p_stair_full" }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/lv624/ground/caves/sand_temple) "nQH" = ( /obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{ - pixel_x = 6; - pixel_y = -8; light_on = 1; light_range = 1; - light_system = 1 + light_system = 1; + pixel_x = 6; + pixel_y = -8 }, /turf/open/auto_turf/strata_grass/layer1, /area/lv624/ground/caves/south_west_caves) @@ -18883,10 +16271,7 @@ dir = 10; icon_state = "p_stair_full" }, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv624/ground/caves/sand_temple) "nRA" = ( /obj/item/reagent_container/food/snacks/grown/mushroom/plumphelmet{ @@ -18897,9 +16282,7 @@ /area/lv624/ground/caves/west_caves) "nSg" = ( /obj/structure/window/framed/colony, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/medbay) "nSR" = ( /obj/structure/flora/grass/tallgrass/jungle/corner{ @@ -18909,20 +16292,14 @@ /area/lv624/lazarus/landing_zones/lz1) "nTE" = ( /obj/structure/curtain/red, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/lv624/ground/caves/sand_temple) "nUs" = ( /obj/structure/stairs/perspective{ color = "#6b675e"; icon_state = "p_stair_full" }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/lv624/ground/caves/sand_temple) "nUy" = ( /turf/closed/wall/r_wall/unmeltable, @@ -18940,9 +16317,7 @@ icon_state = "cartridge_3_1" }, /obj/effect/decal/cleanable/blood/drip, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/corporate_dome) "nUZ" = ( /obj/effect/decal/grass_overlay/grass1, @@ -18983,10 +16358,7 @@ /obj/structure/platform/mineral/sandstone/runed{ dir = 1 }, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv624/ground/barrens/south_eastern_barrens) "nWJ" = ( /obj/structure/flora/bush/ausbushes/var3/stalkybush, @@ -19002,15 +16374,15 @@ /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/south_east_jungle) "nYZ" = ( -/turf/open/floor{ - dir = 8; - icon_state = "whitebluecorner" - }, +/turf/open/floor/whitebluecorner/west, /area/lv624/lazarus/medbay) "nZz" = ( /obj/structure/flora/bush/ausbushes/lavendergrass, /turf/open/gm/grass/grass2, /area/lv624/ground/barrens/south_eastern_jungle_barrens) +"oas" = ( +/turf/open/floor/delivery, +/area/lv624/lazarus/engineering) "oaL" = ( /obj/structure/flora/bush/ausbushes/ausbush, /turf/open/gm/grass/grass1, @@ -19034,9 +16406,7 @@ "ocG" = ( /obj/effect/landmark/corpsespawner/security/liaison, /obj/effect/decal/cleanable/blood, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/corporate_dome) "ocL" = ( /obj/effect/landmark/lv624/fog_blocker, @@ -19073,15 +16443,10 @@ /obj/item/weapon/twohanded/yautja/glaive/damaged{ name = "damaged war glaive" }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/lv624/ground/caves/sand_temple) "ofg" = ( -/turf/open/gm/dirt{ - icon_state = "desert1" - }, +/turf/open/gm/dirt/desert1, /area/lv624/ground/caves/west_caves) "ofv" = ( /obj/effect/landmark/crap_item, @@ -19097,10 +16462,8 @@ /turf/open/gm/dirt, /area/lv624/ground/river/east_river) "ogR" = ( -/turf/open/floor/plating{ - dir = 9; - icon_state = "warnplate" - }, +/obj/item/prop/alien/hugger, +/turf/open/floor/plating/warnplate/northwest, /area/lv624/lazarus/engineering) "ogZ" = ( /obj/structure/flora/bush/ausbushes/var3/stalkybush, @@ -19137,6 +16500,13 @@ /obj/effect/landmark/objective_landmark/close, /turf/open/floor/plating, /area/lv624/ground/barrens/central_barrens) +"oiR" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W"; + pixel_x = -1 + }, +/turf/open/floor/brown/northwest, +/area/lv624/lazarus/comms) "omu" = ( /obj/structure/flora/bush/ausbushes/var3/sparsegrass, /turf/open/gm/dirt, @@ -19179,18 +16549,19 @@ /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/south_central_jungle) "orB" = ( -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/east, /area/lv624/ground/colony/telecomm/cargo) +"ose" = ( +/obj/structure/girder/displaced, +/turf/open/gm/dirt, +/area/lv624/ground/jungle/south_central_jungle) "osf" = ( /obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{ - pixel_x = 11; - pixel_y = -2; light_on = 1; light_range = 1; - light_system = 1 + light_system = 1; + pixel_x = 11; + pixel_y = -2 }, /turf/open/auto_turf/strata_grass/layer1, /area/lv624/ground/caves/central_caves) @@ -19258,17 +16629,11 @@ dir = 4; icon_state = "p_stair_full" }, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv624/ground/caves/sand_temple) "oyT" = ( /obj/structure/closet/toolcloset, -/turf/open/floor/plating{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/plating/asteroidfloor/north, /area/lv624/lazarus/corporate_dome) "oAD" = ( /obj/structure/flora/grass/tallgrass/jungle/corner{ @@ -19277,9 +16642,7 @@ /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/north_west_jungle) "oAJ" = ( -/obj/structure/flora/grass/tallgrass/jungle/corner{ - dir = 3 - }, +/obj/structure/flora/grass/tallgrass/jungle/corner, /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/south_central_jungle) "oAV" = ( @@ -19323,9 +16686,7 @@ /obj/structure/surface/table, /obj/item/reagent_container/food/snacks/grown/banana, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - icon_state = "bar" - }, +/turf/open/floor/bar, /area/lv624/lazarus/canteen) "oEI" = ( /turf/open/gm/coast/west, @@ -19363,9 +16724,7 @@ /turf/open/gm/dirt, /area/lv624/ground/barrens/south_eastern_barrens) "oGr" = ( -/turf/open/gm/dirt{ - icon_state = "desert3" - }, +/turf/open/gm/dirt/desert3, /area/lv624/ground/barrens/south_eastern_barrens) "oGs" = ( /obj/structure/fence, @@ -19380,20 +16739,23 @@ /area/lv624/ground/jungle/east_central_jungle) "oHU" = ( /obj/structure/girder, -/turf/open/floor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/asteroidplating, /area/lv624/ground/caves/north_central_caves) +"oIO" = ( +/obj/structure/surface/table, +/obj/effect/decal/cleanable/dirt, +/obj/item/device/radio/off{ + frequency = 1469 + }, +/turf/open/floor/dark, +/area/lv624/lazarus/comms) "oJL" = ( /obj/effect/landmark/crap_item, /turf/open/gm/grass/grass1, /area/lv624/ground/colony/west_nexus_road) "oKP" = ( /obj/effect/landmark/static_comms/net_two, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/lv624/ground/colony/telecomm/sw_lz2) "oLk" = ( /obj/structure/fence, @@ -19416,10 +16778,7 @@ /obj/item/clothing/under/marine/veteran/pmc, /obj/item/storage/fancy/cigar, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - dir = 5; - icon_state = "whiteyellow" - }, +/turf/open/floor/whiteyellow/northeast, /area/lv624/lazarus/corporate_dome) "oOd" = ( /obj/effect/landmark/monkey_spawn, @@ -19427,9 +16786,7 @@ /area/lv624/ground/jungle/south_west_jungle) "oOf" = ( /obj/structure/flora/jungle/vines/heavy, -/turf/open/floor{ - icon_state = "warning" - }, +/turf/open/floor/warning, /area/lv624/lazarus/landing_zones/lz2) "oOB" = ( /obj/structure/machinery/landinglight/ds2/delayone, @@ -19438,15 +16795,10 @@ "oOV" = ( /obj/structure/flora/jungle/vines/light_1, /obj/structure/flora/jungle/vines/light_3, -/turf/open/floor{ - icon_state = "warning" - }, +/turf/open/floor/warning, /area/lv624/lazarus/landing_zones/lz2) "oPT" = ( -/turf/open/floor{ - dir = 1; - icon_state = "loadingarea" - }, +/turf/open/floor/loadingarea/north, /area/lv624/lazarus/landing_zones/lz1) "oQm" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, @@ -19455,6 +16807,12 @@ "oRH" = ( /turf/open/gm/dirtgrassborder/south, /area/lv624/ground/jungle/north_east_jungle) +"oRY" = ( +/obj/structure/surface/rack, +/obj/item/clothing/mask/gas, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/brown/northwest, +/area/lv624/lazarus/comms) "oSh" = ( /obj/item/stack/sheet/wood{ amount = 2 @@ -19484,9 +16842,7 @@ pixel_x = 5; pixel_y = 4 }, -/turf/open/floor{ - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull, /area/lv624/lazarus/medbay) "oTt" = ( /turf/open/gm/coast/beachcorner/south_east, @@ -19513,15 +16869,10 @@ /obj/structure/machinery/cm_vending/sorted/medical/wall_med/limited{ pixel_x = 29 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/lv624/lazarus/corporate_dome) "oVM" = ( -/turf/open/floor/plating{ - dir = 1; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/north, /area/lv624/ground/barrens/east_barrens/ceiling) "oWN" = ( /obj/structure/flora/jungle/vines/heavy, @@ -19560,6 +16911,15 @@ /obj/structure/window/framed/colony/reinforced, /turf/open/floor/plating, /area/lv624/lazarus/corporate_dome) +"paQ" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/storage/fancy/cigarettes/wypacket{ + pixel_x = 5; + pixel_y = 6 + }, +/obj/item/clothing/under/liaison_suit/blue, +/turf/open/floor/whiteyellow/southeast, +/area/lv624/lazarus/corporate_dome) "pba" = ( /obj/structure/flora/bush/ausbushes/var3/sparsegrass, /turf/open/gm/grass/grass1, @@ -19574,19 +16934,13 @@ /area/lv624/ground/colony/south_nexus_road) "pbG" = ( /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/lv624/ground/caves/sand_temple) "pca" = ( /obj/effect/landmark/nightmare{ - insert_tag = "nexuscenter" - }, -/turf/open/floor{ - dir = 9; - icon_state = "redfull" + insert_tag = "nexuscenter_barricaded" }, +/turf/open/floor/redfull/northwest, /area/lv624/lazarus/security) "pcd" = ( /turf/open/gm/coast/south, @@ -19600,10 +16954,7 @@ /area/lv624/ground/jungle/east_jungle) "pcz" = ( /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor{ - dir = 1; - icon_state = "bot" - }, +/turf/open/floor/bot/north, /area/lv624/ground/barrens/containers) "pcA" = ( /turf/open/gm/dirtgrassborder/grassdirt_corner2/north_east, @@ -19626,24 +16977,20 @@ /turf/open/auto_turf/strata_grass/layer1, /area/lv624/ground/barrens/north_east_barrens) "pgf" = ( -/obj/structure/machinery/power/apc{ - dir = 1; - name = "Medbay APC"; - pixel_y = 30; - start_charge = 0 - }, -/turf/open/floor{ - dir = 1; - icon_state = "whiteblue" +/obj/structure/machinery/power/apc/nocharge{ + dir = 1 }, +/turf/open/floor/whiteblue/north, /area/lv624/lazarus/medbay) "pgD" = ( /obj/structure/machinery/vending/coffee, -/turf/open/floor{ - dir = 5; - icon_state = "whiteblue" - }, +/turf/open/floor/whiteblue/northeast, /area/lv624/lazarus/corporate_dome) +"phk" = ( +/obj/item/stack/rods, +/obj/effect/decal/cleanable/dirt, +/turf/open/gm/dirt, +/area/lv624/lazarus/secure_storage) "phU" = ( /obj/structure/flora/jungle/vines/heavy, /turf/open/gm/grass/grass1, @@ -19677,23 +17024,22 @@ }, /turf/open/gm/grass/grass1, /area/lv624/ground/colony/west_tcomms_road) +"plC" = ( +/turf/open/floor/plating, +/area/lv624/lazarus/secure_storage) "pmt" = ( /obj/effect/landmark/objective_landmark/science, /turf/open/gm/dirt, /area/lv624/ground/caves/south_west_caves) "pmz" = ( -/turf/open/gm/dirt{ - icon_state = "desert2" - }, +/turf/open/gm/dirt/desert2, /area/lv624/ground/river/east_river) "pnl" = ( /obj/structure/largecrate/random, /turf/open/floor/greengrid, /area/lv624/lazarus/corporate_dome) "por" = ( -/obj/structure/flora/grass/tallgrass/jungle/corner{ - dir = 3 - }, +/obj/structure/flora/grass/tallgrass/jungle/corner, /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/central_jungle) "pox" = ( @@ -19701,9 +17047,7 @@ dir = 8; health = 70 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/corporate_dome) "poX" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, @@ -19727,9 +17071,7 @@ /area/lv624/ground/caves/west_caves) "prd" = ( /obj/structure/flora/jungle/vines/light_2, -/turf/open/floor{ - icon_state = "warning" - }, +/turf/open/floor/warning, /area/lv624/lazarus/landing_zones/lz1) "prQ" = ( /obj/structure/flora/jungle/vines/light_2, @@ -19755,14 +17097,10 @@ /obj/item/ammo_magazine/rifle/nsg23{ current_rounds = 0 }, -/turf/open/shuttle{ - icon_state = "floor4" - }, +/turf/open/shuttle/bright_red, /area/lv624/lazarus/crashed_ship_containers) "ptm" = ( -/turf/open/gm/dirt{ - icon_state = "desert0" - }, +/turf/open/gm/dirt/desert0, /area/lv624/ground/caves/west_caves) "ptr" = ( /obj/structure/flora/bush/ausbushes/palebush, @@ -19772,16 +17110,11 @@ /turf/open/floor/greengrid, /area/lv624/lazarus/corporate_dome) "pwq" = ( -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/medbay) "pws" = ( /obj/structure/flora/jungle/vines/light_3, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/lv624/ground/caves/sand_temple) "pxc" = ( /obj/effect/landmark/lv624/fog_blocker, @@ -19792,9 +17125,7 @@ /turf/open/gm/dirtgrassborder/east, /area/lv624/ground/barrens/south_eastern_jungle_barrens) "pyG" = ( -/turf/open/floor{ - icon_state = "whiteyellowcorner" - }, +/turf/open/floor/whiteyellowcorner, /area/lv624/lazarus/corporate_dome) "pyS" = ( /obj/effect/landmark/crap_item, @@ -19809,10 +17140,12 @@ phone_category = "Lazarus Landing"; phone_id = "Medbay" }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/medbay) +"pzP" = ( +/obj/effect/decal/cleanable/blood/oil, +/turf/open/floor/dark, +/area/lv624/lazarus/comms) "pAE" = ( /obj/structure/flora/bush/ausbushes/var3/leafybush, /turf/open/auto_turf/strata_grass/layer1, @@ -19842,10 +17175,7 @@ desc = "An old hide from a fearsome creature."; name = "hunter hide" }, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv624/ground/caves/sand_temple) "pDt" = ( /turf/open/gm/dirt, @@ -19855,9 +17185,7 @@ /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/north_west_jungle) "pDK" = ( -/turf/open/gm/dirt{ - icon_state = "desert0" - }, +/turf/open/gm/dirt/desert0, /area/lv624/ground/caves/sand_temple) "pEl" = ( /obj/effect/landmark/hunter_primary, @@ -19870,10 +17198,7 @@ /turf/open/gm/dirt, /area/lv624/ground/caves/south_east_caves) "pEV" = ( -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/lv624/ground/caves/sand_temple) "pFe" = ( /turf/open/gm/dirtgrassborder/west, @@ -19906,10 +17231,7 @@ /area/lv624/ground/colony/west_tcomms_road) "pHA" = ( /obj/structure/surface/table/reinforced/prison, -/turf/open/floor{ - dir = 6; - icon_state = "whiteblue" - }, +/turf/open/floor/whiteblue/southeast, /area/lv624/lazarus/corporate_dome) "pIl" = ( /obj/effect/decal/grass_overlay/grass1/inner{ @@ -19942,16 +17264,11 @@ /turf/open/gm/grass/grass1, /area/lv624/lazarus/quartstorage/outdoors) "pKm" = ( -/turf/open/floor{ - icon_state = "asteroidwarning"; - dir = 8 - }, +/turf/open/floor/asteroidwarning/west, /area/lv624/ground/colony/telecomm/sw_lz2) "pKp" = ( /obj/effect/landmark/crap_item, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/lv624/lazarus/quartstorage) "pKS" = ( /obj/structure/flora/jungle/vines/heavy, @@ -19964,10 +17281,10 @@ /area/lv624/ground/colony/west_nexus_road) "pLv" = ( /obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{ - pixel_x = 4; light_on = 1; light_range = 1; - light_system = 1 + light_system = 1; + pixel_x = 4 }, /turf/open/auto_turf/strata_grass/layer1, /area/lv624/ground/caves/north_west_caves) @@ -19980,9 +17297,7 @@ /turf/open/gm/dirt, /area/lv624/ground/barrens/west_barrens) "pNa" = ( -/obj/structure/flora/grass/tallgrass/jungle/corner{ - dir = 3 - }, +/obj/structure/flora/grass/tallgrass/jungle/corner, /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/north_west_jungle) "pNr" = ( @@ -19999,10 +17314,7 @@ /area/lv624/ground/barrens/central_barrens) "pOW" = ( /obj/item/storage/firstaid/toxin, -/turf/open/floor{ - dir = 10; - icon_state = "whiteblue" - }, +/turf/open/floor/whiteblue/southwest, /area/lv624/lazarus/medbay) "pPd" = ( /obj/structure/flora/bush/ausbushes/lavendergrass, @@ -20011,11 +17323,9 @@ "pQn" = ( /obj/structure/machinery/door/airlock/almayer/generic{ locked = 1; - name = "\improper Corporate Liason" - }, -/turf/open/floor{ - icon_state = "white" + name = "\improper Corporate Liaison" }, +/turf/open/floor/white, /area/lv624/lazarus/corporate_dome) "pQV" = ( /obj/structure/flora/bush/ausbushes/palebush, @@ -20035,16 +17345,10 @@ phone_id = "Corporate Office"; pixel_y = 24 }, -/turf/open/floor{ - dir = 5; - icon_state = "whiteyellow" - }, +/turf/open/floor/whiteyellow/northeast, /area/lv624/lazarus/corporate_dome) "pRh" = ( -/turf/open/floor/plating{ - dir = 5; - icon_state = "asteroidwarning" - }, +/turf/open/floor/plating/asteroidwarning/northeast, /area/lv624/lazarus/landing_zones/lz2) "pRp" = ( /obj/structure/surface/table/reinforced/prison{ @@ -20054,10 +17358,7 @@ dir = 4; health = 80 }, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv624/ground/caves/sand_temple) "pRx" = ( /obj/structure/stairs/perspective{ @@ -20089,19 +17390,17 @@ "pTk" = ( /obj/item/bedsheet/medical, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/medbay) "pUm" = ( /turf/closed/wall/rock/brown, /area/lv624/ground/caves/east_caves) "pVZ" = ( /obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{ - pixel_x = -10; light_on = 1; light_range = 1; - light_system = 1 + light_system = 1; + pixel_x = -10 }, /turf/open/auto_turf/strata_grass/layer1, /area/lv624/ground/caves/central_caves) @@ -20131,6 +17430,15 @@ /obj/item/clothing/mask/gas, /turf/open/floor/vault, /area/lv624/lazarus/quartstorage) +"qap" = ( +/obj/structure/machinery/light, +/obj/structure/stairs/perspective{ + dir = 9; + icon_state = "p_stair_full" + }, +/obj/structure/platform, +/turf/open/floor/brown/northwest, +/area/lv624/lazarus/comms) "qaE" = ( /obj/effect/landmark/hunter_primary, /obj/effect/landmark/queen_spawn, @@ -20160,10 +17468,13 @@ icon_state = "cartridge_6_1" }, /obj/item/ammo_magazine/smg/mp5, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/corporate_dome) +"qez" = ( +/obj/effect/landmark/good_item, +/obj/effect/decal/cleanable/blood/xeno, +/turf/open/floor/dark, +/area/lv624/lazarus/comms) "qeW" = ( /turf/open/gm/coast/beachcorner2/north_west, /area/lv624/ground/caves/sand_temple) @@ -20198,6 +17509,18 @@ }, /turf/open/gm/dirt, /area/lv624/ground/caves/west_caves) +"qit" = ( +/obj/item/prop/alien/hugger{ + pixel_x = -20; + pixel_y = 8 + }, +/obj/item/tool/hatchet{ + pixel_x = -14; + pixel_y = 6 + }, +/obj/effect/decal/cleanable/blood/xeno, +/turf/open/floor/brown/northwest, +/area/lv624/lazarus/comms) "qiL" = ( /obj/item/reagent_container/food/snacks/grown/mushroom/amanita, /turf/open/auto_turf/strata_grass/layer1, @@ -20223,10 +17546,7 @@ dir = 8; icon_state = "p_stair_full" }, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv624/ground/barrens/south_eastern_barrens) "qqJ" = ( /turf/open/gm/dirtgrassborder/grassdirt_corner2/south_west, @@ -20279,10 +17599,7 @@ anchored = 1; unacidable = 0 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/lv624/ground/caves/sand_temple) "qvf" = ( /obj/structure/flora/jungle/vines/light_3, @@ -20302,10 +17619,7 @@ }, /obj/item/folder/red, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellow" - }, +/turf/open/floor/whiteyellow/east, /area/lv624/lazarus/corporate_dome) "qxZ" = ( /obj/structure/surface/table/woodentable/poor, @@ -20365,18 +17679,12 @@ dir = 5; icon_state = "p_stair_full" }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/lv624/ground/caves/sand_temple) "qDg" = ( /obj/structure/barricade/wooden, /obj/structure/flora/jungle/vines/heavy, -/turf/open/floor{ - dir = 1; - icon_state = "warning" - }, +/turf/open/floor/warning/north, /area/lv624/lazarus/landing_zones/lz2) "qDx" = ( /turf/open/gm/dirtgrassborder/grassdirt_corner/south_east, @@ -20395,6 +17703,10 @@ }, /turf/open/gm/grass/grass1, /area/lv624/ground/colony/west_tcomms_road) +"qEz" = ( +/obj/item/ammo_magazine/rifle/extended, +/turf/open/floor/greengrid, +/area/lv624/lazarus/secure_storage) "qGH" = ( /obj/structure/flora/bush/ausbushes/var3/ywflowers, /turf/open/gm/grass/grass2, @@ -20406,7 +17718,7 @@ "qGR" = ( /obj/structure/foamed_metal, /obj/structure/flora/jungle/vines/heavy, -/turf/open/floor/plating, +/turf/open/floor/delivery, /area/lv624/lazarus/engineering) "qHC" = ( /obj/structure/largecrate/random/barrel/red, @@ -20426,15 +17738,11 @@ "qJg" = ( /obj/structure/surface/table, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor{ - icon_state = "whiteblue" - }, +/turf/open/floor/whiteblue, /area/lv624/lazarus/medbay) "qJq" = ( /obj/structure/machinery/body_scanconsole, -/turf/open/floor{ - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull, /area/lv624/lazarus/medbay) "qJx" = ( /obj/structure/flora/bush/ausbushes/var3/leafybush, @@ -20450,10 +17758,7 @@ /turf/open/gm/dirtgrassborder/east, /area/lv624/ground/colony/north_nexus_road) "qKC" = ( -/turf/open/floor{ - dir = 9; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/northwest, /area/lv624/ground/colony/telecomm/sw_lz2) "qLc" = ( /obj/structure/flora/grass/tallgrass/jungle, @@ -20463,6 +17768,18 @@ /obj/structure/flora/jungle/alienplant1, /turf/open/gm/river, /area/lv624/ground/jungle/west_jungle) +"qNl" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/brown/northwest, +/area/lv624/lazarus/comms) +"qNz" = ( +/obj/structure/stairs/perspective{ + dir = 1; + icon_state = "p_stair_full" + }, +/turf/open/floor/brown/northwest, +/area/lv624/lazarus/comms) "qNQ" = ( /obj/structure/machinery/landinglight/ds2/delayone{ dir = 4 @@ -20483,10 +17800,7 @@ /obj/structure/platform/mineral/sandstone/runed{ dir = 1 }, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv624/ground/caves/sand_temple) "qPY" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, @@ -20530,10 +17844,7 @@ "qTM" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/ammo_magazine/smg/mp5, -/turf/open/floor{ - dir = 8; - icon_state = "whiteblue" - }, +/turf/open/floor/whiteblue/west, /area/lv624/lazarus/corporate_dome) "qUM" = ( /turf/open/gm/dirtgrassborder/north, @@ -20544,11 +17855,11 @@ /area/lv624/ground/caves/north_west_caves) "qVi" = ( /obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{ - pixel_x = -10; - pixel_y = -2; light_on = 1; light_range = 1; - light_system = 1 + light_system = 1; + pixel_x = -10; + pixel_y = -2 }, /turf/open/auto_turf/strata_grass/layer1, /area/lv624/ground/caves/north_east_caves) @@ -20567,11 +17878,12 @@ "qXo" = ( /obj/structure/surface/rack, /obj/item/explosive/grenade/incendiary/molotov, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/lv624/lazarus/quartstorage) +"qXt" = ( +/obj/item/stack/rods, +/turf/open/floor/dark, +/area/lv624/lazarus/comms) "qYF" = ( /obj/structure/flora/bush/ausbushes/var3/sunnybush, /turf/open/gm/dirt, @@ -20596,15 +17908,10 @@ /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor{ - dir = 4; - icon_state = "whiteblue" - }, +/turf/open/floor/whiteblue/east, /area/lv624/lazarus/corporate_dome) "rba" = ( -/turf/open/gm/dirt{ - icon_state = "desert1" - }, +/turf/open/gm/dirt/desert1, /area/lv624/ground/barrens/west_barrens) "rbs" = ( /obj/effect/decal/grass_overlay/grass1{ @@ -20632,9 +17939,7 @@ /area/lv624/ground/barrens/south_eastern_barrens) "rcY" = ( /obj/effect/landmark/objective_landmark/science, -/turf/open/floor{ - icon_state = "redyellowfull" - }, +/turf/open/floor/redyellowfull, /area/lv624/ground/barrens/west_barrens/ceiling) "rdS" = ( /obj/structure/surface/table/reinforced/prison, @@ -20645,10 +17950,7 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor{ - dir = 4; - icon_state = "whiteblue" - }, +/turf/open/floor/whiteblue/east, /area/lv624/lazarus/corporate_dome) "rdZ" = ( /obj/structure/surface/table/reinforced/prison, @@ -20662,10 +17964,7 @@ pixel_x = 4; pixel_y = 4 }, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/lv624/lazarus/quartstorage) "rfH" = ( /obj/structure/flora/jungle/vines/light_2, @@ -20685,10 +17984,10 @@ /area/lv624/ground/jungle/north_east_jungle) "rhi" = ( /obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{ - pixel_x = 4; light_on = 1; light_range = 1; - light_system = 1 + light_system = 1; + pixel_x = 4 }, /turf/open/auto_turf/strata_grass/layer1, /area/lv624/ground/caves/east_caves) @@ -20697,37 +17996,37 @@ /area/lv624/ground/river/central_river) "rkq" = ( /obj/effect/landmark/crap_item, -/turf/open/floor{ - dir = 9; - icon_state = "green" - }, +/turf/open/floor/green/northwest, /area/lv624/lazarus/hydroponics) +"rkZ" = ( +/obj/item/shard, +/obj/item/stack/rods, +/turf/open/floor/brown/northwest, +/area/lv624/lazarus/comms) "rmg" = ( -/obj/structure/machinery/power/monitor, -/obj/structure/foamed_metal, /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - icon_state = "dark" - }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/foamed_metal, +/turf/open/floor/dark, /area/lv624/lazarus/engineering) "rmt" = ( /obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{ - pixel_x = 4; light_on = 1; light_range = 1; - light_system = 1 + light_system = 1; + pixel_x = 4 }, /turf/open/auto_turf/strata_grass/layer1, /area/lv624/ground/caves/south_central_caves) "rmW" = ( /obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{ - pixel_x = 11; - pixel_y = -2; light_on = 1; light_range = 1; - light_system = 1 + light_system = 1; + pixel_x = 11; + pixel_y = -2 }, /turf/open/auto_turf/strata_grass/layer1, /area/lv624/ground/caves/west_caves) @@ -20745,10 +18044,7 @@ /area/lv624/ground/caves/north_east_caves) "rpR" = ( /obj/structure/flora/jungle/vines/heavy, -/turf/open/floor{ - dir = 6; - icon_state = "warning" - }, +/turf/open/floor/warning/southeast, /area/lv624/lazarus/landing_zones/lz1) "rqf" = ( /obj/structure/flora/bush/ausbushes/palebush, @@ -20782,10 +18078,6 @@ /obj/effect/landmark/objective_landmark/close, /turf/open/floor/vault, /area/lv624/lazarus/quartstorage) -"rvL" = ( -/obj/structure/flora/bush/ausbushes/ausbush, -/turf/open/gm/grass/grass2, -/area/lv624/ground/jungle/west_jungle) "rvW" = ( /obj/effect/landmark/lv624/fog_blocker, /turf/open/gm/grass/grass1, @@ -20809,10 +18101,13 @@ }, /turf/open/gm/dirt, /area/lv624/ground/caves/sand_temple) +"rwK" = ( +/obj/effect/decal/remains/xeno, +/obj/item/stack/sheet/metal, +/turf/open/gm/dirt, +/area/lv624/ground/colony/west_tcomms_road) "rxV" = ( -/turf/open/gm/dirtgrassborder{ - icon_state = "desert_dug" - }, +/turf/open/gm/dirtgrassborder/desert_dug, /area/lv624/ground/barrens/south_eastern_barrens) "ryp" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, @@ -20822,15 +18117,10 @@ "ryJ" = ( /obj/structure/surface/table, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/northeast, /area/lv624/lazarus/research) "ryY" = ( -/obj/structure/flora/grass/tallgrass/jungle/corner{ - dir = 3 - }, +/obj/structure/flora/grass/tallgrass/jungle/corner, /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/south_west_jungle) "rze" = ( @@ -20844,10 +18134,7 @@ /obj/item/stack/sheet/wood{ amount = 2 }, -/turf/open/floor{ - dir = 5; - icon_state = "warning" - }, +/turf/open/floor/warning/northeast, /area/lv624/lazarus/landing_zones/lz1) "rAo" = ( /obj/structure/surface/table/reinforced/prison, @@ -20856,18 +18143,15 @@ pixel_x = 4; pixel_y = 13 }, -/turf/open/floor/plating{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/plating/asteroidfloor/north, /area/lv624/lazarus/corporate_dome) "rAU" = ( /obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{ - pixel_x = 6; - pixel_y = -8; light_on = 1; light_range = 1; - light_system = 1 + light_system = 1; + pixel_x = 6; + pixel_y = -8 }, /turf/open/auto_turf/strata_grass/layer1, /area/lv624/ground/caves/east_caves) @@ -20881,14 +18165,15 @@ dir = 8; icon_state = "p_stair_full" }, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv624/ground/caves/sand_temple) "rCV" = ( /turf/open/gm/grass/grass2, /area/lv624/ground/jungle/south_central_jungle) +"rDK" = ( +/obj/item/stack/sheet/metal, +/turf/open/floor/plating/platingdmg1, +/area/lv624/lazarus/secure_storage) "rER" = ( /obj/effect/decal/grass_overlay/grass1/inner{ dir = 6 @@ -20916,11 +18201,11 @@ /area/lv624/lazarus/quartstorage) "rGE" = ( /obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{ - pixel_x = 6; - pixel_y = -8; light_on = 1; light_range = 1; - light_system = 1 + light_system = 1; + pixel_x = 6; + pixel_y = -8 }, /turf/open/auto_turf/strata_grass/layer1, /area/lv624/ground/caves/south_east_caves) @@ -20991,17 +18276,13 @@ /obj/item/device/flashlight/lamp/green{ pixel_x = 3 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/corporate_dome) "rNq" = ( /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/lv624/lazarus/corporate_dome) "rON" = ( /obj/structure/flora/jungle/vines/light_3, @@ -21040,10 +18321,7 @@ pixel_x = 1; pixel_y = -1 }, -/turf/open/floor{ - dir = 9; - icon_state = "green" - }, +/turf/open/floor/green/northwest, /area/lv624/lazarus/hydroponics) "rSy" = ( /turf/open/gm/dirtgrassborder/grassdirt_corner2/north_east, @@ -21071,10 +18349,7 @@ phone_id = "Communications"; pixel_y = 24 }, -/turf/open/floor{ - dir = 9; - icon_state = "brown" - }, +/turf/open/floor/brown/northwest, /area/lv624/lazarus/comms) "rWs" = ( /obj/effect/decal/grass_overlay/grass1/inner{ @@ -21111,9 +18386,7 @@ /obj/item/ammo_magazine/rifle/mar40, /obj/item/ammo_magazine/rifle/mar40, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/lv624/lazarus/quartstorage) "sau" = ( /obj/effect/landmark/crap_item, @@ -21124,9 +18397,7 @@ /obj/effect/decal/cleanable/blood, /obj/structure/bed/roller, /obj/effect/landmark/corpsespawner/wygoon, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/corporate_dome) "scs" = ( /obj/effect/decal/grass_overlay/grass1{ @@ -21149,11 +18420,11 @@ pixel_x = 10; pixel_y = 5 }, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/lv624/lazarus/quartstorage) +"sfg" = ( +/turf/open/gm/dirtgrassborder/grassdirt_corner2/south_east, +/area/lv624/ground/jungle/south_central_jungle) "sfH" = ( /obj/structure/inflatable, /turf/open/gm/dirt, @@ -21185,9 +18456,7 @@ /area/lv624/lazarus/landing_zones/lz1) "shy" = ( /obj/structure/barricade/handrail/strata, -/turf/open/gm/dirtgrassborder/weedable{ - icon_state = "grass1" - }, +/turf/open/gm/dirtgrassborder/weedable/grass1, /area/lv624/ground/barrens/south_eastern_barrens) "sic" = ( /obj/structure/flora/bush/ausbushes/var3/brflowers, @@ -21209,10 +18478,10 @@ /area/lv624/ground/caves/sand_temple) "snc" = ( /obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{ - pixel_x = 4; light_on = 1; light_range = 1; - light_system = 1 + light_system = 1; + pixel_x = 4 }, /turf/open/auto_turf/strata_grass/layer1, /area/lv624/ground/caves/south_west_caves) @@ -21220,9 +18489,7 @@ /obj/item/ammo_casing/bullet{ icon_state = "cartridge_10_1" }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/corporate_dome) "snm" = ( /turf/open/gm/grass/grass2, @@ -21233,9 +18500,7 @@ /area/lv624/ground/colony/west_tcomms_road) "snI" = ( /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor{ - icon_state = "cult" - }, +/turf/open/floor/cult, /area/lv624/lazarus/armory) "soz" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, @@ -21281,10 +18546,7 @@ /obj/structure/platform_decoration/mineral/sandstone/runed{ dir = 4 }, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv624/ground/caves/sand_temple) "srn" = ( /obj/effect/decal/grass_overlay/grass1/inner{ @@ -21312,6 +18574,13 @@ /obj/structure/flora/bush/ausbushes/grassybush, /turf/open/gm/grass/grass1, /area/lv624/lazarus/landing_zones/lz2) +"svv" = ( +/obj/structure/extinguisher_cabinet{ + pixel_y = 30 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/dark, +/area/lv624/lazarus/engineering) "swR" = ( /obj/structure/flora/jungle/vines/light_3, /obj/structure/flora/jungle/vines/heavy, @@ -21368,10 +18637,7 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor{ - dir = 6; - icon_state = "whiteblue" - }, +/turf/open/floor/whiteblue/southeast, /area/lv624/lazarus/corporate_dome) "sBC" = ( /obj/structure/fence, @@ -21393,16 +18659,16 @@ /obj/structure/platform/mineral/sandstone/runed{ dir = 1 }, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv624/ground/barrens/south_eastern_barrens) +"sCx" = ( +/obj/item/clothing/head/welding, +/obj/effect/decal/cleanable/dirt, +/turf/open/gm/dirt, +/area/lv624/ground/jungle/south_west_jungle) "sCJ" = ( /obj/structure/flora/jungle/vines/heavy, -/turf/open/floor{ - icon_state = "warning" - }, +/turf/open/floor/warning, /area/lv624/lazarus/landing_zones/lz1) "sCX" = ( /obj/structure/flora/jungle/vines/light_1, @@ -21436,10 +18702,7 @@ req_access_txt = "100"; req_one_access = null }, -/turf/open/floor/plating{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/plating/asteroidfloor/north, /area/lv624/lazarus/corporate_dome) "sGg" = ( /obj/structure/flora/grass/tallgrass/jungle/corner{ @@ -21455,10 +18718,7 @@ /turf/closed/wall/rock/brown, /area/lv624/ground/barrens/south_west_barrens) "sIi" = ( -/turf/open/floor{ - dir = 4; - icon_state = "whitebluecorner" - }, +/turf/open/floor/whitebluecorner/east, /area/lv624/lazarus/corporate_dome) "sIr" = ( /obj/effect/landmark/crap_item, @@ -21589,9 +18849,7 @@ /turf/open/gm/dirt, /area/lv624/ground/caves/south_central_caves) "sWk" = ( -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3, /area/lv624/lazarus/secure_storage) "sWy" = ( /obj/effect/landmark/monkey_spawn, @@ -21619,18 +18877,15 @@ anchored = 1; unacidable = 0 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/lv624/ground/caves/sand_temple) "sXg" = ( /obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{ - pixel_x = -10; - pixel_y = -2; light_on = 1; light_range = 1; - light_system = 1 + light_system = 1; + pixel_x = -10; + pixel_y = -2 }, /turf/open/auto_turf/strata_grass/layer1, /area/lv624/ground/caves/west_caves) @@ -21648,14 +18903,9 @@ "taa" = ( /obj/structure/barricade/wooden, /obj/structure/flora/jungle/vines/light_3, -/turf/open/floor{ - dir = 9; - icon_state = "warning" - }, +/turf/open/floor/warning/northwest, /area/lv624/lazarus/landing_zones/lz1) "taK" = ( -/obj/structure/fence, -/obj/structure/flora/bush/ausbushes/lavendergrass, /turf/open/gm/dirtgrassborder/grassdirt_corner2/south_east, /area/lv624/ground/colony/north_tcomms_road) "tbV" = ( @@ -21679,17 +18929,14 @@ /turf/open/gm/dirt, /area/lv624/ground/caves/north_central_caves) "tem" = ( -/obj/structure/machinery/power/geothermal, /obj/structure/lattice{ layer = 2.9 }, /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/plating{ - dir = 4; - icon_state = "warnplate" - }, +/obj/structure/machinery/power/reactor/colony, +/turf/open/floor/plating/warnplate/east, /area/lv624/lazarus/engineering) "teJ" = ( /obj/structure/flora/jungle/vines/heavy, @@ -21710,11 +18957,9 @@ /area/lv624/lazarus/quartstorage) "tgi" = ( /obj/effect/landmark/nightmare{ - insert_tag = "lz-containers" - }, -/turf/open/floor{ - icon_state = "warning" + insert_tag = "lz-containers_swapped" }, +/turf/open/floor/warning, /area/lv624/lazarus/landing_zones/lz1) "tgL" = ( /mob/living/simple_animal/bat, @@ -21727,11 +18972,11 @@ /area/lv624/ground/river/west_river) "thk" = ( /obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{ - pixel_x = -5; - pixel_y = -5; light_on = 1; light_range = 1; - light_system = 1 + light_system = 1; + pixel_x = -5; + pixel_y = -5 }, /turf/open/auto_turf/strata_grass/layer1, /area/lv624/ground/caves/central_caves) @@ -21758,10 +19003,7 @@ /obj/item/clothing/shoes/yautja_flavor{ anchored = 1 }, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/lv624/ground/caves/sand_temple) "thI" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, @@ -21817,9 +19059,7 @@ /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/east_central_jungle) "tnY" = ( -/turf/open/gm/dirt{ - icon_state = "desert3" - }, +/turf/open/gm/dirt/desert3, /area/lv624/ground/caves/west_caves) "toz" = ( /obj/structure/flora/bush/ausbushes/pointybush, @@ -21900,19 +19140,17 @@ /area/lv624/ground/barrens/south_eastern_barrens) "tuJ" = ( /obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{ - pixel_x = -5; - pixel_y = -5; light_on = 1; light_range = 1; - light_system = 1 + light_system = 1; + pixel_x = -5; + pixel_y = -5 }, /turf/open/auto_turf/strata_grass/layer1, /area/lv624/ground/caves/north_east_caves) "tuX" = ( /obj/effect/landmark/crap_item, -/turf/open/floor/wood{ - icon_state = "wood-broken6" - }, +/turf/open/floor/wood/wood_broken6, /area/lv624/ground/caves/north_central_caves) "tvC" = ( /obj/structure/flora/bush/ausbushes/palebush, @@ -21941,18 +19179,13 @@ /obj/structure/surface/table, /obj/item/reagent_container/spray, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 8; - icon_state = "whiteblue" - }, +/turf/open/floor/whiteblue/west, /area/lv624/lazarus/medbay) "tyG" = ( /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/north_jungle) "tzo" = ( -/turf/open/gm/dirt{ - icon_state = "desert_dug" - }, +/turf/open/gm/dirt/desert_dug, /area/lv624/ground/barrens/central_barrens) "tzB" = ( /obj/structure/platform/mineral/sandstone/runed{ @@ -21964,6 +19197,13 @@ /obj/effect/landmark/crap_item, /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/south_central_jungle) +"tzP" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/bed/chair/office/light{ + dir = 1 + }, +/turf/open/floor/brown/northwest, +/area/lv624/lazarus/comms) "tBB" = ( /obj/structure/machinery/colony_floodlight, /turf/open/gm/grass/grass1, @@ -21993,15 +19233,11 @@ /area/lv624/ground/caves/east_caves) "tEn" = ( /obj/structure/flora/jungle/vines/light_3, -/turf/open/floor{ - icon_state = "warning" - }, +/turf/open/floor/warning, /area/lv624/lazarus/landing_zones/lz2) "tES" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/corporate_dome) "tHc" = ( /obj/structure/flora/grass/tallgrass/jungle/corner, @@ -22010,10 +19246,7 @@ "tIg" = ( /obj/structure/surface/table, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 8; - icon_state = "whiteblue" - }, +/turf/open/floor/whiteblue/west, /area/lv624/lazarus/medbay) "tIZ" = ( /obj/structure/flora/bush/ausbushes/var3/fullgrass, @@ -22022,10 +19255,7 @@ "tJb" = ( /obj/structure/surface/rack, /obj/item/weapon/gun/rifle/mar40/carbine, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/lv624/lazarus/quartstorage) "tJh" = ( /obj/structure/showcase{ @@ -22053,6 +19283,10 @@ }, /turf/open/gm/grass/grass1, /area/lv624/lazarus/landing_zones/lz1) +"tLe" = ( +/obj/effect/landmark/monkey_spawn, +/turf/open/gm/grass/grass1, +/area/lv624/ground/jungle/north_west_jungle) "tLQ" = ( /obj/structure/flora/bush/ausbushes/genericbush, /turf/open/gm/grass/grass1, @@ -22060,9 +19294,7 @@ "tLS" = ( /obj/structure/bed/chair/office/light, /obj/effect/decal/cleanable/blood/drip, -/turf/open/floor{ - icon_state = "whiteblue" - }, +/turf/open/floor/whiteblue, /area/lv624/lazarus/corporate_dome) "tLU" = ( /obj/structure/flora/bush/ausbushes/var3/sparsegrass, @@ -22085,11 +19317,12 @@ icon_state = "p_stair_full" }, /obj/structure/platform_decoration/mineral/sandstone/runed, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv624/ground/barrens/south_eastern_barrens) +"tMP" = ( +/obj/structure/window_frame/colony, +/turf/open/floor/plating, +/area/lv624/lazarus/comms) "tMQ" = ( /obj/effect/decal/grass_overlay/grass1/inner{ dir = 9 @@ -22114,11 +19347,11 @@ /area/lv624/ground/caves/south_central_caves) "tQU" = ( /obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{ - pixel_x = 2; - pixel_y = 7; light_on = 1; light_range = 1; - light_system = 1 + light_system = 1; + pixel_x = 2; + pixel_y = 7 }, /turf/open/auto_turf/strata_grass/layer1, /area/lv624/ground/caves/south_west_caves) @@ -22167,9 +19400,7 @@ /area/lv624/ground/caves/north_east_caves) "tWw" = ( /obj/effect/decal/cleanable/blood/drip, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/corporate_dome) "tWK" = ( /obj/structure/flora/grass/tallgrass/jungle/corner{ @@ -22182,9 +19413,7 @@ /area/lv624/ground/jungle/east_central_jungle) "tXZ" = ( /obj/structure/largecrate, -/turf/open/shuttle{ - icon_state = "floor4" - }, +/turf/open/shuttle/bright_red, /area/lv624/lazarus/crashed_ship_containers) "tYx" = ( /obj/effect/landmark/objective_landmark/medium, @@ -22210,6 +19439,13 @@ "tZD" = ( /turf/closed/wall/r_wall, /area/lv624/lazarus/landing_zones/lz2) +"uaz" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/bed/chair/office/light{ + dir = 8 + }, +/turf/open/floor/brown/northwest, +/area/lv624/lazarus/comms) "uaL" = ( /obj/structure/flora/bush/ausbushes/lavendergrass, /turf/open/auto_turf/strata_grass/layer1, @@ -22228,9 +19464,7 @@ dir = 4; icon_state = "p_stair_full" }, -/turf/open/shuttle{ - icon_state = "floor6" - }, +/turf/open/shuttle/red, /area/lv624/ground/caves/sand_temple) "ubN" = ( /obj/structure/flora/bush/ausbushes/var3/leafybush, @@ -22244,9 +19478,7 @@ /area/lv624/ground/barrens/south_eastern_barrens) "udM" = ( /obj/effect/landmark/good_item, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/lv624/lazarus/engineering) "udP" = ( /turf/open/gm/dirt, @@ -22282,10 +19514,7 @@ /obj/structure/surface/table/reinforced/prison{ color = "#6b675e" }, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv624/ground/caves/sand_temple) "uin" = ( /obj/structure/surface/table/woodentable/poor, @@ -22294,9 +19523,7 @@ pixel_x = 6; pixel_y = 3 }, -/turf/open/floor/carpet{ - icon_state = "bcarpet08" - }, +/turf/open/floor/carpet/bcarpet08, /area/lv624/ground/caves/north_central_caves) "uiz" = ( /obj/structure/fence, @@ -22334,10 +19561,15 @@ /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/east_central_jungle) "ukE" = ( -/turf/open/gm/dirt{ - icon_state = "desert1" - }, +/turf/open/gm/dirt/desert1, /area/lv624/ground/barrens/south_eastern_barrens) +"ukS" = ( +/obj/structure/reagent_dispensers/fueltank, +/obj/item/device/flashlight{ + pixel_y = 5 + }, +/turf/open/floor/brown/northwest, +/area/lv624/lazarus/comms) "ukY" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, @@ -22347,20 +19579,14 @@ /turf/open/gm/dirt, /area/lv624/ground/caves/west_caves) "ukZ" = ( -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/lv624/ground/colony/telecomm/cargo) "ulj" = ( /obj/structure/surface/table/reinforced/prison{ color = "#6b675e" }, /obj/item/weapon/twohanded/yautja/spear, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/lv624/ground/caves/sand_temple) "ulp" = ( /obj/structure/transmitter/colony_net{ @@ -22369,7 +19595,8 @@ phone_id = "Secure Storage"; pixel_y = 24 }, -/turf/open/floor/greengrid, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, /area/lv624/lazarus/secure_storage) "umb" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_membrane, @@ -22391,6 +19618,10 @@ /obj/structure/flora/bush/ausbushes/reedbush, /turf/open/auto_turf/strata_grass/layer1, /area/lv624/ground/caves/east_caves) +"upp" = ( +/obj/structure/platform_decoration, +/turf/open/floor/brown/northwest, +/area/lv624/lazarus/comms) "upM" = ( /obj/effect/landmark/crap_item, /turf/open/gm/grass/grass1, @@ -22403,8 +19634,8 @@ /area/lv624/ground/caves/east_caves) "upV" = ( /obj/item/stack/cable_coil/random{ - pixel_y = 9; - pixel_x = 7 + pixel_x = 7; + pixel_y = 9 }, /turf/open/gm/dirt, /area/lv624/ground/jungle/east_jungle) @@ -22413,10 +19644,7 @@ /turf/open/auto_turf/strata_grass/layer1, /area/lv624/ground/caves/south_west_caves) "urR" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/lv624/ground/caves/sand_temple) "urY" = ( /obj/structure/barricade/sandbags/wired{ @@ -22459,11 +19687,11 @@ /area/lv624/ground/caves/north_central_caves) "uxL" = ( /obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{ - pixel_x = 11; - pixel_y = -2; light_on = 1; light_range = 1; - light_system = 1 + light_system = 1; + pixel_x = 11; + pixel_y = -2 }, /turf/open/auto_turf/strata_grass/layer1, /area/lv624/ground/caves/south_central_caves) @@ -22484,10 +19712,7 @@ /turf/open/gm/dirt, /area/lv624/ground/caves/south_east_caves) "uzH" = ( -/turf/open/floor/plating{ - dir = 8; - icon_state = "asteroidwarning" - }, +/turf/open/floor/plating/asteroidwarning/west, /area/lv624/lazarus/landing_zones/lz2) "uAp" = ( /turf/closed/wall/strata_ice/jungle, @@ -22504,10 +19729,7 @@ name = "alien sarcophagus" }, /obj/structure/flora/jungle/vines/heavy, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/lv624/ground/caves/sand_temple) "uDs" = ( /turf/open/gm/grass/grass2, @@ -22535,17 +19757,11 @@ /obj/item/weapon/gun/shotgun/pump/dual_tube/cmb{ pixel_y = 3 }, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/lv624/lazarus/quartstorage) "uFA" = ( /obj/structure/flora/jungle/vines/heavy, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/lv624/ground/caves/sand_temple) "uFB" = ( /obj/structure/flora/bush/ausbushes/reedbush, @@ -22553,10 +19769,7 @@ /area/lv624/ground/barrens/east_barrens) "uGM" = ( /obj/item/storage/fancy/cigarettes/emeraldgreen, -/turf/open/floor{ - dir = 4; - icon_state = "whitebluecorner" - }, +/turf/open/floor/whitebluecorner/east, /area/lv624/lazarus/corporate_dome) "uHc" = ( /obj/effect/decal/grass_overlay/grass1/inner{ @@ -22570,9 +19783,7 @@ /area/lv624/ground/jungle/north_east_jungle) "uIF" = ( /obj/structure/barricade/sandbags/wired, -/turf/open/floor/wood{ - icon_state = "wood-broken3" - }, +/turf/open/floor/wood/wood_broken3, /area/lv624/ground/caves/north_central_caves) "uKT" = ( /obj/structure/bed/chair/comfy/black{ @@ -22581,9 +19792,7 @@ /turf/open/gm/dirt, /area/lv624/ground/caves/sand_temple) "uLW" = ( -/obj/structure/flora/grass/tallgrass/jungle/corner{ - dir = 3 - }, +/obj/structure/flora/grass/tallgrass/jungle/corner, /turf/open/gm/grass/grass2, /area/lv624/ground/jungle/north_jungle) "uMd" = ( @@ -22623,9 +19832,7 @@ /area/lv624/ground/caves/south_central_caves) "uOK" = ( /obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - icon_state = "cult" - }, +/turf/open/floor/cult, /area/lv624/ground/caves/south_west_caves) "uRb" = ( /obj/structure/machinery/colony_floodlight, @@ -22642,9 +19849,6 @@ /obj/structure/fence, /turf/open/gm/dirtgrassborder/north, /area/lv624/ground/colony/west_tcomms_road) -"uSw" = ( -/turf/open/gm/dirtgrassborder/grassdirt_corner/north_east, -/area/lv624/ground/jungle/west_jungle) "uSy" = ( /turf/open/gm/coast/beachcorner2/north_east, /area/lv624/ground/barrens/east_barrens) @@ -22657,9 +19861,7 @@ /obj/item/device/flashlight/lantern, /obj/structure/barricade/sandbags/wired, /obj/item/weapon/baseballbat/metal, -/turf/open/floor/wood{ - icon_state = "wood-broken6" - }, +/turf/open/floor/wood/wood_broken6, /area/lv624/ground/caves/north_central_caves) "uTe" = ( /obj/structure/flora/grass/tallgrass/jungle/corner{ @@ -22670,17 +19872,13 @@ "uUi" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/folder/black_random, -/turf/open/floor{ - icon_state = "whiteblue" - }, +/turf/open/floor/whiteblue, /area/lv624/lazarus/corporate_dome) "uUl" = ( /turf/open/gm/dirtgrassborder/west, /area/lv624/ground/jungle/south_west_jungle) "uUJ" = ( -/turf/open/gm/dirtgrassborder{ - icon_state = "desert1" - }, +/turf/open/gm/dirtgrassborder/desert1, /area/lv624/ground/barrens/south_eastern_barrens) "uVk" = ( /obj/effect/landmark/objective_landmark/far, @@ -22689,9 +19887,7 @@ "uVx" = ( /obj/structure/machinery/floodlight/landing, /obj/effect/decal/warning_stripes, -/turf/open/floor/mech_bay_recharge_floor{ - name = "Shuttle Landing Lights" - }, +/turf/open/floor/mech_bay_recharge_floor/shuttle_landing_lights, /area/lv624/lazarus/landing_zones/lz1) "uVU" = ( /obj/effect/landmark/lv624/xeno_tunnel, @@ -22700,22 +19896,22 @@ /area/lv624/ground/jungle/east_jungle) "uWr" = ( /obj/effect/decal/cleanable/blood/oil/streak, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/lv624/lazarus/corporate_dome) "uWJ" = ( /turf/closed/wall/strata_ice/jungle, /area/lv624/ground/caves/south_west_caves) +"uXT" = ( +/obj/item/device/assembly/timer, +/turf/open/floor/dark, +/area/lv624/lazarus/engineering) "uXV" = ( /obj/structure/flora/bush/ausbushes/lavendergrass, /turf/open/gm/dirt, /area/lv624/ground/jungle/south_central_jungle) "uXW" = ( /obj/structure/barricade/sandbags/wired, -/turf/open/floor/wood{ - icon_state = "wood-broken" - }, +/turf/open/floor/wood/wood_broken, /area/lv624/ground/caves/north_central_caves) "uYj" = ( /turf/open/auto_turf/strata_grass/layer1, @@ -22739,20 +19935,14 @@ /obj/structure/barricade/wooden{ dir = 8 }, -/turf/open/floor{ - dir = 1; - icon_state = "warningcorner" - }, +/turf/open/floor/warningcorner/north, /area/lv624/lazarus/landing_zones/lz1) "uZz" = ( /obj/structure/surface/table/holotable, /obj/structure/machinery/computer/objective{ dir = 5 }, -/turf/open/floor{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/northeast, /area/lv624/lazarus/research) "vam" = ( /obj/structure/flora/bush/ausbushes/reedbush, @@ -22777,6 +19967,13 @@ /obj/structure/machinery/colony_floodlight, /turf/open/gm/grass/grass1, /area/lv624/lazarus/landing_zones/lz2) +"vdl" = ( +/obj/structure/stairs/perspective{ + dir = 4; + icon_state = "p_stair_full" + }, +/turf/open/floor/dark, +/area/lv624/lazarus/engineering) "vdt" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, @@ -22789,9 +19986,7 @@ req_access_txt = "100"; req_one_access = null }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/lv624/lazarus/corporate_dome) "vef" = ( /obj/effect/landmark/objective_landmark/science, @@ -22801,9 +19996,7 @@ /obj/item/ammo_casing/bullet{ icon_state = "cartridge_3_1" }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/corporate_dome) "ver" = ( /obj/structure/platform_decoration/mineral/sandstone/runed{ @@ -22815,9 +20008,7 @@ /obj/structure/platform_decoration/mineral/sandstone/runed{ dir = 4 }, -/turf/open/gm/dirt{ - icon_state = "desert_dug" - }, +/turf/open/gm/dirt/desert_dug, /area/lv624/ground/caves/sand_temple) "vfR" = ( /obj/structure/flora/jungle/plantbot1, @@ -22871,10 +20062,7 @@ dir = 6; icon_state = "p_stair_full" }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/lv624/ground/caves/sand_temple) "vkN" = ( /obj/effect/landmark/objective_landmark/far, @@ -22885,11 +20073,11 @@ dir = 10 }, /obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{ - pixel_x = 2; - pixel_y = 7; light_on = 1; light_range = 1; - light_system = 1 + light_system = 1; + pixel_x = 2; + pixel_y = 7 }, /turf/open/gm/dirt, /area/lv624/ground/caves/south_east_caves) @@ -22913,9 +20101,7 @@ /obj/item/ammo_casing/bullet{ icon_state = "cartridge_9_1" }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/corporate_dome) "vnW" = ( /obj/structure/flora/bush/ausbushes/reedbush, @@ -22967,10 +20153,7 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor{ - dir = 9; - icon_state = "whiteblue" - }, +/turf/open/floor/whiteblue/northwest, /area/lv624/lazarus/corporate_dome) "vxa" = ( /obj/structure/flora/jungle/vines/light_3, @@ -22992,10 +20175,7 @@ /area/lv624/ground/jungle/south_west_jungle) "vyz" = ( /obj/structure/largecrate, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/lv624/lazarus/quartstorage) "vAg" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, @@ -23027,10 +20207,7 @@ /area/lv624/ground/caves/sand_temple) "vBQ" = ( /obj/structure/largecrate, -/turf/open/floor{ - dir = 1; - icon_state = "bot" - }, +/turf/open/floor/bot/north, /area/lv624/lazarus/landing_zones/lz1) "vCG" = ( /obj/structure/blocker/forcefield/multitile_vehicles, @@ -23047,10 +20224,7 @@ /area/lv624/ground/jungle/east_jungle) "vEj" = ( /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor{ - dir = 9; - icon_state = "brown" - }, +/turf/open/floor/brown/northwest, /area/lv624/lazarus/comms) "vEp" = ( /obj/structure/flora/jungle/vines/light_1, @@ -23084,29 +20258,26 @@ amount = 10; pixel_y = 3 }, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/lv624/lazarus/quartstorage) "vIt" = ( -/turf/open/gm/dirt{ - icon_state = "desert0" - }, +/turf/open/gm/dirt/desert0, /area/lv624/ground/river/east_river) "vIY" = ( /obj/item/ammo_casing/bullet{ icon_state = "cartridge_9_1" }, -/turf/open/floor{ - icon_state = "whiteyellow" - }, +/turf/open/floor/whiteyellow, /area/lv624/lazarus/corporate_dome) "vJs" = ( /obj/structure/flora/grass/tallgrass/jungle, /obj/item/bananapeel, /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/west_jungle) +"vJM" = ( +/obj/item/shard, +/turf/open/floor/dark, +/area/lv624/lazarus/comms) "vKc" = ( /obj/effect/landmark/crap_item, /turf/open/gm/grass/grass1, @@ -23118,6 +20289,13 @@ "vLO" = ( /turf/open/gm/dirtgrassborder/south, /area/lv624/lazarus/quartstorage/outdoors) +"vMC" = ( +/obj/structure/extinguisher_cabinet{ + pixel_y = 30 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/brown/northwest, +/area/lv624/lazarus/comms) "vMV" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, /obj/structure/blocker/forcefield/multitile_vehicles, @@ -23171,10 +20349,22 @@ /obj/structure/flora/bush/ausbushes/var3/sunnybush, /turf/open/auto_turf/strata_grass/layer1, /area/lv624/ground/caves/south_east_caves) +"vRe" = ( +/obj/structure/surface/table, +/obj/structure/machinery/light, +/obj/item/tool/wrench, +/obj/item/tool/weldingtool, +/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, +/turf/open/floor/brown/northwest, +/area/lv624/lazarus/comms) "vSG" = ( /obj/structure/flora/jungle/vines/light_1, /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/north_east_jungle) +"vTT" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/greengrid, +/area/lv624/lazarus/secure_storage) "vUj" = ( /obj/structure/flora/bush/ausbushes/var3/sparsegrass, /turf/open/gm/dirtgrassborder/south, @@ -23196,10 +20386,7 @@ /turf/open/gm/dirtgrassborder/grassdirt_corner/south_east, /area/lv624/ground/jungle/south_central_jungle) "vVf" = ( -/turf/open/floor{ - dir = 5; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/northeast, /area/lv624/ground/colony/telecomm/sw_lz2) "vVC" = ( /turf/closed/wall/strata_ice/jungle, @@ -23210,10 +20397,7 @@ /area/lv624/ground/jungle/west_jungle) "vVN" = ( /obj/structure/machinery/cm_vending/sorted/tech/electronics_storage, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/lv624/lazarus/quartstorage) "vWs" = ( /obj/structure/flora/jungle/vines/light_3, @@ -23230,6 +20414,10 @@ /obj/structure/flora/jungle/vines/heavy, /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/north_west_jungle) +"vYL" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/dark, +/area/lv624/lazarus/engineering) "vZT" = ( /obj/effect/landmark/objective_landmark/close, /turf/open/gm/dirt, @@ -23262,9 +20450,7 @@ /obj/structure/barricade/handrail/strata{ dir = 4 }, -/turf/open/gm/dirtgrassborder/weedable{ - icon_state = "grass1" - }, +/turf/open/gm/dirtgrassborder/weedable/grass1, /area/lv624/ground/barrens/south_eastern_barrens) "wcj" = ( /obj/structure/platform_decoration/mineral/sandstone/runed{ @@ -23290,10 +20476,18 @@ }, /turf/open/gm/coast/beachcorner2/south_east, /area/lv624/ground/caves/sand_temple) +"weB" = ( +/obj/item/stack/rods/plasteel, +/turf/open/floor/greengrid, +/area/lv624/lazarus/secure_storage) "weH" = ( /obj/structure/flora/bush/ausbushes/genericbush, /turf/open/gm/grass/grass2, /area/lv624/ground/jungle/north_jungle) +"weR" = ( +/obj/item/stack/rods, +/turf/open/floor/plating/platingdmg3, +/area/lv624/lazarus/secure_storage) "wgk" = ( /obj/structure/flora/bush/ausbushes/ppflowers, /obj/structure/platform_decoration/mineral/sandstone/runed{ @@ -23303,11 +20497,11 @@ /area/lv624/ground/caves/sand_temple) "whk" = ( /obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{ - pixel_x = 2; - pixel_y = 7; light_on = 1; light_range = 1; - light_system = 1 + light_system = 1; + pixel_x = 2; + pixel_y = 7 }, /turf/open/auto_turf/strata_grass/layer1, /area/lv624/ground/caves/north_west_caves) @@ -23317,15 +20511,10 @@ /obj/structure/machinery/power/apc{ dir = 1 }, -/turf/open/floor{ - dir = 9; - icon_state = "whiteblue" - }, +/turf/open/floor/whiteblue/northwest, /area/lv624/lazarus/corporate_dome) "whv" = ( -/turf/open/gm/dirtgrassborder{ - icon_state = "desert2" - }, +/turf/open/gm/dirtgrassborder/desert2, /area/lv624/ground/barrens/south_eastern_barrens) "whx" = ( /obj/structure/flora/bush/ausbushes/lavendergrass, @@ -23386,6 +20575,10 @@ }, /turf/open/floor/sandstone/runed, /area/lv624/ground/caves/sand_temple) +"wol" = ( +/obj/item/ammo_magazine/rifle/extended, +/turf/open/floor/plating, +/area/lv624/lazarus/secure_storage) "woF" = ( /obj/structure/flora/jungle/vines/light_3, /obj/structure/barricade/metal/wired{ @@ -23397,9 +20590,7 @@ /area/lv624/ground/jungle/north_west_jungle) "woK" = ( /obj/effect/decal/cleanable/blood/drip, -/turf/open/floor/wood{ - icon_state = "wood-broken6" - }, +/turf/open/floor/wood/wood_broken6, /area/lv624/ground/caves/north_central_caves) "woM" = ( /obj/structure/showcase{ @@ -23420,10 +20611,7 @@ /obj/item/clothing/shoes/yautja_flavor{ anchored = 1 }, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/lv624/ground/caves/sand_temple) "woT" = ( /obj/effect/decal/grass_overlay/grass1{ @@ -23463,18 +20651,6 @@ /obj/structure/flora/bush/ausbushes/ppflowers, /turf/open/auto_turf/strata_grass/layer1, /area/lv624/ground/caves/south_west_caves) -"wtK" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/storage/fancy/cigarettes/wypacket{ - pixel_x = 5; - pixel_y = 6 - }, -/obj/item/clothing/under/liaison_suit/suspenders, -/turf/open/floor{ - dir = 6; - icon_state = "whiteyellow" - }, -/area/lv624/lazarus/corporate_dome) "wvO" = ( /obj/structure/flora/bush/ausbushes/genericbush, /turf/open/gm/grass/grass1, @@ -23484,9 +20660,7 @@ /turf/open/gm/dirt, /area/lv624/ground/barrens/central_barrens) "wwI" = ( -/turf/open/floor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/asteroidplating, /area/lv624/ground/caves/north_central_caves) "wxP" = ( /turf/open/gm/dirtgrassborder/grassdirt_corner/south_west, @@ -23545,9 +20719,7 @@ "wFR" = ( /obj/effect/landmark/crap_item, /obj/effect/decal/cleanable/blood/drip, -/turf/open/floor/wood{ - icon_state = "wood-broken3" - }, +/turf/open/floor/wood/wood_broken3, /area/lv624/ground/caves/north_central_caves) "wHh" = ( /obj/effect/decal/grass_overlay/grass1{ @@ -23556,18 +20728,15 @@ /turf/open/gm/dirt, /area/lv624/ground/caves/west_caves) "wHp" = ( -/turf/open/floor/plating{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/plating/asteroidfloor/north, /area/lv624/lazarus/landing_zones/lz2) "wHE" = ( /obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{ - pixel_x = -1; - pixel_y = 7; light_on = 1; light_range = 1; - light_system = 1 + light_system = 1; + pixel_x = -1; + pixel_y = 7 }, /turf/open/auto_turf/strata_grass/layer1, /area/lv624/ground/caves/south_west_caves) @@ -23588,22 +20757,16 @@ /obj/structure/barricade/metal/wired{ dir = 8 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/corporate_dome) "wLe" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_10" }, -/turf/open/floor{ - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull, /area/lv624/lazarus/medbay) "wLz" = ( -/turf/open/floor/plating{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/plating/asteroidwarning, /area/lv624/lazarus/landing_zones/lz2) "wLT" = ( /obj/structure/flora/bush/ausbushes/var3/fullgrass, @@ -23615,11 +20778,11 @@ /area/lv624/ground/jungle/west_central_jungle) "wMr" = ( /obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{ - pixel_x = 2; - pixel_y = 7; light_on = 1; light_range = 1; - light_system = 1 + light_system = 1; + pixel_x = 2; + pixel_y = 7 }, /turf/open/auto_turf/strata_grass/layer1, /area/lv624/ground/caves/north_east_caves) @@ -23629,10 +20792,7 @@ /area/lv624/ground/caves/west_caves) "wNB" = ( /obj/structure/flora/jungle/vines/light_3, -/turf/open/floor{ - dir = 10; - icon_state = "warning" - }, +/turf/open/floor/warning/southwest, /area/lv624/lazarus/landing_zones/lz1) "wOv" = ( /obj/structure/window/reinforced{ @@ -23645,9 +20805,7 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor{ - icon_state = "whiteblue" - }, +/turf/open/floor/whiteblue, /area/lv624/lazarus/corporate_dome) "wPN" = ( /turf/open/gm/coast/beachcorner2/south_east, @@ -23699,10 +20857,7 @@ /obj/structure/platform/mineral/sandstone/runed{ dir = 8 }, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/lv624/ground/caves/sand_temple) "wSR" = ( /obj/effect/landmark/hunter_secondary, @@ -23713,10 +20868,7 @@ /obj/item/storage/firstaid/fire{ pixel_x = -5 }, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/lv624/lazarus/quartstorage) "wSY" = ( /obj/structure/machinery/door/airlock/almayer/generic{ @@ -23724,9 +20876,7 @@ locked = 1; name = "\improper Storage Room" }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/corporate_dome) "wTa" = ( /obj/structure/flora/jungle/vines/light_2, @@ -23763,9 +20913,7 @@ /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/south_east_jungle) "wWg" = ( -/turf/open/floor/plating{ - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate, /area/lv624/ground/barrens/east_barrens/ceiling) "wWm" = ( /turf/open/gm/dirtgrassborder/west, @@ -23783,10 +20931,7 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor{ - dir = 5; - icon_state = "whiteblue" - }, +/turf/open/floor/whiteblue/northeast, /area/lv624/lazarus/corporate_dome) "wWS" = ( /obj/effect/landmark/hunter_secondary, @@ -23845,10 +20990,7 @@ /area/lv624/ground/caves/east_caves) "xbu" = ( /obj/item/shard, -/turf/open/floor{ - dir = 10; - icon_state = "whiteyellow" - }, +/turf/open/floor/whiteyellow/southwest, /area/lv624/lazarus/corporate_dome) "xch" = ( /turf/open/gm/dirt, @@ -23877,22 +21019,21 @@ /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor{ - dir = 6; - icon_state = "whiteblue" - }, +/turf/open/floor/whiteblue/southeast, /area/lv624/lazarus/corporate_dome) "xeT" = ( /obj/structure/flora/jungle/vines/light_2, /turf/open/gm/grass/grass2, /area/lv624/ground/jungle/south_west_jungle) +"xfa" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/brown/northwest, +/area/lv624/lazarus/comms) "xfP" = ( /obj/item/stack/rods, /obj/item/shard, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellow" - }, +/turf/open/floor/whiteyellow/east, /area/lv624/lazarus/corporate_dome) "xgE" = ( /turf/closed/wall/r_wall, @@ -23913,10 +21054,7 @@ /area/lv624/ground/barrens/south_eastern_barrens) "xkU" = ( /obj/structure/bed/sofa/vert/grey/top, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellow" - }, +/turf/open/floor/whiteyellow/east, /area/lv624/lazarus/corporate_dome) "xmK" = ( /obj/structure/flora/bush/ausbushes/grassybush, @@ -23945,17 +21083,11 @@ "xqV" = ( /obj/structure/surface/rack, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor{ - dir = 4; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/east, /area/lv624/lazarus/fitness) "xrI" = ( /obj/structure/flora/jungle/vines/light_3, -/turf/open/floor{ - dir = 6; - icon_state = "warning" - }, +/turf/open/floor/warning/southeast, /area/lv624/lazarus/landing_zones/lz2) "xsN" = ( /obj/structure/flora/jungle/vines/light_1, @@ -23970,6 +21102,14 @@ /obj/effect/landmark/lv624/fog_blocker, /turf/open/gm/dirt, /area/lv624/ground/river/west_river) +"xvj" = ( +/turf/open/gm/dirt, +/area/lv624/lazarus/secure_storage) +"xvz" = ( +/obj/structure/platform_decoration, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/brown/northwest, +/area/lv624/lazarus/comms) "xvN" = ( /obj/structure/barricade/handrail/strata{ dir = 1 @@ -23977,9 +21117,7 @@ /obj/structure/barricade/handrail/strata{ dir = 4 }, -/turf/open/gm/dirtgrassborder/weedable{ - icon_state = "grass1" - }, +/turf/open/gm/dirtgrassborder/weedable/grass1, /area/lv624/ground/barrens/south_eastern_barrens) "xvV" = ( /obj/effect/landmark/nightmare{ @@ -23996,22 +21134,17 @@ /area/lv624/ground/caves/east_caves) "xwQ" = ( /obj/structure/surface/table/reinforced/prison, -/obj/item/handcuffs/cable/white{ +/obj/item/restraint/adjustable/cable/white{ pixel_y = 4 }, -/obj/item/handcuffs/cable/white, -/turf/open/floor{ - icon_state = "whiteyellow" - }, +/obj/item/restraint/adjustable/cable/white, +/turf/open/floor/whiteyellow, /area/lv624/lazarus/corporate_dome) "xxz" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/tool/crowbar, /obj/item/reagent_container/spray/cleaner, -/turf/open/floor{ - dir = 9; - icon_state = "whiteyellow" - }, +/turf/open/floor/whiteyellow/northwest, /area/lv624/lazarus/corporate_dome) "xyH" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, @@ -24025,9 +21158,7 @@ /obj/item/ammo_magazine/rifle/nsg23{ current_rounds = 0 }, -/turf/open/shuttle{ - icon_state = "floor4" - }, +/turf/open/shuttle/bright_red, /area/lv624/lazarus/crashed_ship_containers) "xze" = ( /obj/structure/flora/bush/ausbushes/reedbush, @@ -24037,9 +21168,7 @@ /turf/open/gm/dirtgrassborder/east, /area/lv624/ground/jungle/north_jungle) "xBi" = ( -/turf/open/gm/dirt{ - icon_state = "desert1" - }, +/turf/open/gm/dirt/desert1, /area/lv624/ground/caves/sand_temple) "xBm" = ( /turf/open/gm/river, @@ -24051,9 +21180,7 @@ "xCF" = ( /obj/item/ammo_magazine/smg/mp5, /obj/item/weapon/gun/smg/mp5, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/corporate_dome) "xDl" = ( /obj/structure/machinery/colony_floodlight, @@ -24071,9 +21198,7 @@ /area/lv624/ground/jungle/west_central_jungle) "xFf" = ( /obj/structure/surface/table, -/turf/open/floor{ - icon_state = "bar" - }, +/turf/open/floor/bar, /area/lv624/lazarus/canteen) "xGd" = ( /obj/structure/flora/jungle/vines/heavy, @@ -24126,9 +21251,7 @@ /turf/open/floor/vault, /area/lv624/lazarus/quartstorage) "xLT" = ( -/turf/open/floor/plating{ - icon_state = "platingdmg1" - }, +/turf/open/floor/plating/platingdmg1, /area/lv624/lazarus/secure_storage) "xNi" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, @@ -24144,6 +21267,10 @@ /obj/structure/flora/bush/ausbushes/var3/sparsegrass, /turf/open/gm/dirtgrassborder/east, /area/lv624/ground/jungle/south_central_jungle) +"xOL" = ( +/obj/item/stack/rods, +/turf/open/gm/dirt, +/area/lv624/ground/colony/west_tcomms_road) "xPk" = ( /turf/open/gm/dirtgrassborder/grassdirt_corner2/north_west, /area/lv624/ground/colony/south_medbay_road) @@ -24161,10 +21288,7 @@ /area/lv624/ground/jungle/south_east_jungle) "xQy" = ( /obj/structure/largecrate/random, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/lv624/lazarus/quartstorage) "xQI" = ( /obj/structure/flora/grass/tallgrass/jungle/corner{ @@ -24172,6 +21296,10 @@ }, /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/east_jungle) +"xRc" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/gm/dirt, +/area/lv624/lazarus/secure_storage) "xRe" = ( /obj/effect/decal/grass_overlay/grass1/inner{ dir = 10 @@ -24212,12 +21340,6 @@ /obj/structure/flora/jungle/plantbot1, /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/east_jungle) -"xVo" = ( -/obj/structure/flora/grass/tallgrass/jungle/corner{ - dir = 3 - }, -/turf/open/gm/grass/grass1, -/area/lv624/ground/jungle/north_east_jungle) "xVN" = ( /turf/open/gm/dirtgrassborder/grassdirt_corner2/south_west, /area/lv624/ground/jungle/south_central_jungle) @@ -24262,9 +21384,7 @@ "ybQ" = ( /obj/structure/surface/table/woodentable/fancy, /obj/item/weapon/pole/fancy_cane, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/corporate_dome) "ydp" = ( /obj/structure/flora/bush/ausbushes/pointybush, @@ -24274,6 +21394,14 @@ /obj/structure/blocker/forcefield/multitile_vehicles, /turf/open/auto_turf/strata_grass/layer1, /area/lv624/ground/caves/central_caves) +"ydX" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/engidoor/glass/colony{ + name = "\improper Communications Dome"; + req_access_txt = "100"; + req_one_access = null + }, +/turf/open/floor/delivery, +/area/lv624/lazarus/engineering) "yfe" = ( /obj/effect/decal/grass_overlay/grass1{ dir = 8 @@ -24281,9 +21409,7 @@ /turf/open/gm/dirt, /area/lv624/ground/caves/south_east_caves) "yfH" = ( -/turf/open/shuttle{ - icon_state = "floor4" - }, +/turf/open/shuttle/bright_red, /area/lv624/lazarus/crashed_ship_containers) "yga" = ( /turf/open/gm/dirtgrassborder/grassdirt_corner2/south_west, @@ -24304,23 +21430,15 @@ dir = 8 }, /obj/structure/flora/jungle/vines/heavy, -/turf/open/floor{ - dir = 4; - icon_state = "warning" - }, +/turf/open/floor/warning/east, /area/lv624/lazarus/landing_zones/lz2) "yhR" = ( /obj/structure/closet, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - dir = 9; - icon_state = "purple" - }, +/turf/open/floor/purple/northwest, /area/lv624/lazarus/sleep_female) "yhT" = ( -/turf/open/gm/dirt{ - icon_state = "desert2" - }, +/turf/open/gm/dirt/desert2, /area/lv624/ground/caves/west_caves) "yhY" = ( /obj/structure/inflatable/door, @@ -24331,9 +21449,7 @@ name = "\improper Corporation Dome"; req_access_txt = "100" }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/corporate_dome) "yiE" = ( /obj/structure/flora/jungle/vines/heavy, @@ -24376,10 +21492,7 @@ "ylI" = ( /obj/structure/filingcabinet, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - dir = 10; - icon_state = "whiteyellow" - }, +/turf/open/floor/whiteyellow/southwest, /area/lv624/lazarus/corporate_dome) "ylL" = ( /obj/effect/landmark/crap_item, @@ -25014,7 +22127,7 @@ atC aAt aro aHE -aIn +aro asw asw asw @@ -25234,13 +22347,13 @@ nsk nsk nsk aun -aqS -suv -atZ +ase +arE +atC vVD -ayT -aro -aro +asd +atu +asx aro asw asw @@ -25461,20 +22574,20 @@ aYX alC alC auc -amK -arn -asK +aZb +aAl +ase pbd avf -ayT -aro -aBk -aro -aIo +asK +aAl +ase +atu +asx asw asw asw -aro +arP awb awe awe @@ -25689,18 +22802,18 @@ aYS aud aud auP -aqS -rvL -asc -aro -aro -aro -asw -aro -aro -aro -aro -aro +aAl +aAl +aAl +aAl +aAl +aAl +avf +aAl +aAl +ase +atu +asx aro aro ata @@ -25917,19 +23030,19 @@ arV aud aud auP -aqS +aAl avf -aro -awb -ayd -azg -aro -aro -aIm -aro -aro -arP -asc +aAl +aAl +aAl +aAl +aAl +aAl +aAl +aAl +aAl +ase +asx aro aro aro @@ -26145,18 +23258,18 @@ aud amG bGb auP -asd +aAl avf -asX -awe -awe -ayl -aro -aro -aro -aIq -aCO -atu +aAl +aAl +aAl +aAl +aAl +aAl +aAl +asY +aAl +aAl aqq atu atu @@ -26373,17 +23486,17 @@ aud aud asp auP -aqS -asc -asY -awe -awe -awV -aro -asw -aro -aCO -aEe +aAl +aAl +aAl +aAl +aAl +aAl +aAl +avf +avf +aAl +aAl aAl aAl aAl @@ -26601,16 +23714,16 @@ aud aud aud auP -aqS -bbu -asZ -awz -ayl -aro -atA -aro -asg -axV +aAl +aAl +aAl +aAl +aAl +aAl +aAl +avf +aAl +aAl aAl aAl aAl @@ -26829,16 +23942,16 @@ asF aud fQL aBn -asd -aro -asX -awe -ayA -ayd -azg -aro -aCO -aEe +aAl +aAl +aAl +aAl +aAl +aAl +aAl +aAl +aAl +aAl aAl aAl ayh @@ -27057,15 +24170,15 @@ aud aud oym xuK -ase -asx -ata -awV -asw -ata -awV -aro -axV +aAl +aAl +aAl +avf +avf +aAl +aAl +aAl +aAl kQY knd knd @@ -27285,15 +24398,15 @@ arU aud atJ aYR -akZ -aqS -arP -aro -aro -aro -asc -aCO -aEe +axw +aAl +aAl +aAl +avf +avf +aAl +aAl +aAl oek jga jga @@ -27514,14 +24627,14 @@ xJA xJA bGb dmf -ase -atu -atu -asx -aro +aAl +aAl +aAl +aAl +aAl bbC -axV -ayh +aAl +kQY ayV jga azs @@ -27745,10 +24858,10 @@ bBu knd knd axw -ase -atu -atu -aEe +aAl +aAl +aAl +aAl oek jga jga @@ -28878,8 +25991,8 @@ aud aud asF auP -aqR -arE +aAl +aAl npf sTB sTB @@ -29106,13 +26219,13 @@ aud aud bGb auP -aqS -uSw -asa -asa -asa -asa -arE +aAl +aAl +aAl +aAl +aAl +aAl +aAl awC sTB sTB @@ -29334,13 +26447,13 @@ aud asp aud auP -aqS -arP -asc -asg -aro -atA -axV +aAl +amK +aAl +aAl +aAl +aAl +aAl aiS aAl aAl @@ -29562,15 +26675,15 @@ aud aud aud auP -aqS +aAl aFm aFm auO aFm aFm aAl -aqR -asa +aAl +aAl aja asa asa @@ -29790,16 +26903,16 @@ aud aud amG auP -aqS +aAl aFm aue auf aXC aFm aAl -ayN -asx -ayT +aqi +aAl +asX aAp aAp baN @@ -30018,7 +27131,7 @@ aud aud aud asR -aqS +aAl aFm auf auf @@ -30026,7 +27139,7 @@ aZp aFm aAl omu -aqS +aAl aAp aAp aAp @@ -30246,7 +27359,7 @@ amG aud aul aBn -aqS +aAl aFQ aug wFx @@ -30254,7 +27367,7 @@ avo aFQ xTM aAl -aDv +aAl aAp aAp nmO @@ -30474,7 +27587,7 @@ aud bGb auP aqi -ase +aAl aFm aZn axp @@ -30482,7 +27595,7 @@ auf aFm aAl wXg -aDv +aAl aAp nmO aXX @@ -30710,7 +27823,7 @@ auf aFm aAl aAl -aDv +aAl aAp aXX aRG @@ -31164,7 +28277,7 @@ uiW sqs oTJ qKC -kWX +pKm hdh oKP aAp @@ -31401,7 +28514,7 @@ aZP aOB oOB aRg -aRg +aCi aRg aRg aRg @@ -31419,7 +28532,7 @@ aRg aRg aRg aRg -aRg +aCi aRg odw aRg @@ -31631,7 +28744,6 @@ aTv aRg aRg aRg -aCi aRg aRg aRg @@ -31646,7 +28758,8 @@ aRg aRg aRg aRg -aCi +aRg +aRg aKO aRg aEw @@ -31849,7 +28962,7 @@ tka lCG cDQ oTJ -nuW +aAp aAp cIL nmO @@ -32125,7 +29238,7 @@ aWT aUQ aZL aUQ -aUQ +mdw aTf aTf aTf @@ -32347,7 +29460,7 @@ aTf aUj aUQ aUQ -ygp +aZL aUQ gte aUQ @@ -32533,7 +29646,7 @@ oTJ oTJ oTJ oTJ -nuW +aAp aAp nmO aXX @@ -32804,11 +29917,11 @@ aUj aUQ aUQ aVZ -aUQ -aWV +qEz +ygp aUQ aXE -aUQ +vTT aUQ aYu aTf @@ -33030,13 +30143,13 @@ aTf aTf aTf ulp -aUQ +aZL aWa -aUQ +xRc aWW aUQ aXF -aUQ +weB aUQ aTf aTf @@ -33258,13 +30371,13 @@ vxU aTf aTf aUS -aUQ +xLT iml -aUQ -aWW -aUQ +vTT +fMv +plC aXG -aUQ +aZL aYf aTf aTf @@ -33455,7 +30568,7 @@ aTv aRg aRg aRg -aCi +aRg aRg aRg aRg @@ -33470,7 +30583,7 @@ aRg aRg aRg aRg -aCi +aRg aRg aRg aEw @@ -33486,13 +30599,13 @@ aXh aTf aTf aTf +aWV aUQ +plC +vTT +weR aUQ -aUQ -aUQ -sWk -aUQ -aUQ +cfA aTf aTf aTf @@ -33681,7 +30794,7 @@ aZP aOB kvE aRg -aRg +aCi aRg aRg aRg @@ -33699,7 +30812,7 @@ aRg aRg aRg aRg -aRg +aCi aRg byK aRg @@ -33718,9 +30831,9 @@ aTf aTf mkn xLT -mkn -xLT -sWk +xvj +cfA +kSN aTf aTf aXh @@ -33944,12 +31057,12 @@ efp aTf aTf aWc -mkn -mkn +phk +wol sWk -mkn -mkn -xLT +mqf +gSb +hTp kBq aXh aXh @@ -34171,13 +31284,13 @@ bSm efp efp aTf -aTf -xLT -aWv +chy +rDK aWv +kVS xLT -xTT -xTT +sCx +haE vUj qGH aLj @@ -34400,12 +31513,12 @@ buw efp efp uSq +eUI qIO qIO -qIO -qIO +jaw uXV -qtj +hen dMc knp iIU @@ -34624,7 +31737,7 @@ aXh wTC kjp kjp -ply +hSp efp efp uSq @@ -34632,7 +31745,7 @@ njC qIO qIO qIO -qtj +ose qtj ksM rox @@ -34856,7 +31969,7 @@ efp efp gDu uSq -hDX +rwK qIO qIO aXH @@ -35051,7 +32164,7 @@ aDv aDv aRx aXX -kxo +aXX aXX aXX aXX @@ -35084,9 +32197,9 @@ efp efp efp uSq +xOL qIO -qIO -qIO +jaw ntL kxI kxI @@ -35735,7 +32848,7 @@ axi axj avH aBp -aBR +jIr aCk ado aXX @@ -35989,7 +33102,7 @@ rAo fkJ fau xgE -efp +aWZ efp efp efp @@ -36218,7 +33331,7 @@ xgE sFY xgE xgE -eyb +bgL bgL bgL bgL @@ -36872,7 +33985,7 @@ aym axi aza azG -aAk +bvq axi aBr axi @@ -37098,7 +34211,7 @@ axj axj axj ayG -azb +eot axi axj axj @@ -37585,7 +34698,7 @@ xgE sxY sxY xgE -cPV +aRf cPV uSq qIO @@ -37774,7 +34887,7 @@ nuW psh psh psh -psh +tLe psh tLQ ado @@ -38950,7 +36063,7 @@ gnx gnx fzg pyG -wtK +paQ wJA wMk wMk @@ -38959,8 +36072,8 @@ uSq qIO qIO qIO -qIO -qIO +ctS +ctS ntL kxI kxI @@ -39187,9 +36300,9 @@ uSq njC qIO qIO -qIO -qIO -ntL +ctS +sfg +vVe kxI jxG qZv @@ -39415,9 +36528,9 @@ uSq qIO qIO qIO -qIO -qIO -ntL +ctS +hLu +kxI kxI oAJ qZv @@ -39644,8 +36757,8 @@ aPT aUk aPT aPt -qIO -ntL +hLu +kxI kxI gzd eqs @@ -39868,9 +36981,9 @@ aPT aPT aPT aPt -aTG -aQn +vMC aQn +qNl aPt aPT aPT @@ -40092,17 +37205,17 @@ bwR cPV bCH aPT +aWy +aXd aQn -aON -aQn -aQn -aQn -aQn +aTi +aTi aQn aQn +aTi aQn isR -aSg +vRe aPT ooM nuU @@ -40325,12 +37438,12 @@ aQn aQn aQn aTH -aUl aQn aQn aQn aQn -aWX +aQn +uaz aPT kxI kxI @@ -40546,19 +37659,19 @@ byY fTf nhi cPV -cPV +aRf aPT -aRe -aSd -aSI -aTg +aWA aQn +aON +aTg +iYL aQn aQn aTg -aWd -aSd -aWY +hJh +aQn +aTi aPT kxI kxI @@ -40773,10 +37886,10 @@ ylL byY mun oGs -lud +oGs aPt aPt -aRf +euU aQn aTg aTg @@ -40785,8 +37898,8 @@ aQn aVb aTg aTg +aTG aQn -aWZ aPt aPt kxI @@ -41003,19 +38116,19 @@ byY byY byY aPN +cNE +aTi aQn aQn aQn -aSJ -aTh -aQn -aQn aQn -aTh aQn aQn +cQU +aTi aQn aQn +xfa aPT kxI lAX @@ -41233,9 +38346,9 @@ byY aPO aQn aQn +rkZ aQn -aQn -aQn +aTi vEj aTg rVH @@ -41458,20 +38571,20 @@ byY byY byY byY -aPN -aQn -aQn +aSK +aSI +aYh aQn aQn aTi -aQn -aQn -aQn aTi -aQn -aQn -aQn -aQn +qit +upp +jfN +jfN +gKN +xvz +elO aPT kxI lIU @@ -41688,16 +38801,16 @@ byY taK aPt aPt -aTI +aQn aQn aTg aTg -aTI -aQn -aVb +kKL +aXn +qap aTg aTg -aTG +cyP aXa aPt aPt @@ -41913,20 +39026,20 @@ uiN byY byY byY -fTf +aUl aPT aRi +aTi aQn aQn -aSK aTg aTJ -aQn -aQn +aZG +qNz aTg aWe -aWx -aZc +kvv +kvv aPT kxI kxI @@ -42141,19 +39254,19 @@ uiN byY byY byY -fTf +aUl aPT aSe +aWE +aXn aQn aQn -aQn -aQn -aQn +oiR aZK -aQn -aQn -aQn -aQn +qNz +kvv +kvv +kvv aZh aPT kxI @@ -42369,20 +39482,20 @@ uiN byY byY byY -fTf +aUl aPT -aQn +aSJ aTk +aXe aQn aQn -aTj -aQn -aQn -aQn -aTH -aQn aQn aQn +qNz +qez +kvv +fij +oIO aPT sBJ kxI @@ -42592,25 +39705,25 @@ aLv aJr iSg aJr -aJr +aCV aIO aMN aNA aMN aIO aPt -aTI -aQn -aQn +aWd +aSJ +aZG aQn -aPt aQn aQn aQn +qNz +kvv +dHr +bUc aPt -aPT -aPT -aPN aPt tzK kxI @@ -42826,20 +39939,20 @@ aMO aKB aMP aIO -aSg +aSd +aTj +aWX +eyb aQn aQn aQn aQn -aPt -aPT -aUk -aPT -aPt -aTK -aTK -aXd -aXn +nrK +kvv +kvv +qXt +tMP +kxI kxI tsa kxI @@ -43054,20 +40167,20 @@ aMP aNB aNJ aIO +aUt aIL -aIL -aIO +aWY aRe -aQn -aPT -aTK -aTK -aTK -aTK -aTK -aWy -aXe -aXn +tzP +bJe +ukS +aTi +hOo +vJM +kvv +pzP +lQP +kxI kxI kxI kxI @@ -43287,15 +40400,15 @@ aQo aJz aIO aSg -aPT -aTK +aPt aTK +oRY aSL +aWf aVB aWf -fFN aSL -aXn +sBJ kxI kxI lUc @@ -43514,14 +40627,14 @@ aEt aQp aRo aIO -aSg +kWX aSL aSL aSL aSL rmg aTq -aWA +aTq aSL aSL aVB @@ -43747,9 +40860,9 @@ aSL aVg tem aVd -aTM +kzp +aTq aTq -aZG aSX aZI aXJ @@ -43971,17 +41084,17 @@ aQr aQo aSi aSL -aTo +lHc ogR aUs nwR aTM -aTM -aTM +aTq +kzp aXf aTM aTM -aXW +mBH aVB kxI kxI @@ -44199,12 +41312,12 @@ aQs aQo aSi mkU -qGR +lud aWD aUq aTN aTM -aTM +fMa aUo aSX aZJ @@ -44427,13 +41540,13 @@ aQt aQo aSj qGR -mkU +jdL aWD aUq aTN udM aTM -aWE +aUx aSX aSX aSX @@ -44666,7 +41779,7 @@ aSX aZd aZx aXZ -aYh +vYL aVB kxI kxI @@ -44887,14 +42000,14 @@ aSL aVf jMk aWg -aTM -aTM +lzW +kyz aWF aSX -aXs +svv aTM aZM -aTM +vYL aXg kyN kxI @@ -45116,9 +42229,9 @@ aSX aSX aSX aXs +drX aTM -aTM -aXg +ydX aTM aVC aTM @@ -45341,12 +42454,12 @@ aJz aSL aTs aTP -aUt +bLH aSX aVF -aTM -aTM -aXg +iiO +uXT +oas aTM aTM aZf @@ -45572,12 +42685,12 @@ aTR aUu aSX aVG -aTM +vdl aWG aSX aXt aWi -aYc +bQf aVB dEp kxI @@ -45796,11 +42909,11 @@ xuk oUy aSL aTu -aZM -aTM +fLf +fQx aVj -aTM -aWi +mkZ +hDe aWH aSX aXu @@ -46025,7 +43138,7 @@ mNO fFN aTM aTM -aUx +fAs aSX aVH aTq @@ -46483,7 +43596,7 @@ aSm aSm oUy aSL -hHc +aVB aWf aVB aSL @@ -47594,7 +44707,7 @@ oUy aMD bbJ bbO -aCV +oUy aDS aDS aFh @@ -50357,7 +47470,7 @@ aSA aSA aTC aQM -aUF +jQX aVq aVM aSB @@ -53262,7 +50375,7 @@ cwV bit cpY cpY -xVo +tHc kip rck cpY @@ -53490,7 +50603,7 @@ cwV vSG pba cpY -xVo +tHc kip kip ueZ @@ -54204,7 +51317,7 @@ azw aBg azR aCd -aBC +jcb aDb aOo aDY @@ -57130,7 +54243,7 @@ arS als arO oRH -xVo +tHc kip rck cpY @@ -58084,7 +55197,6 @@ aGz aGz aDJ ank -ank ano ank ank @@ -58093,6 +55205,7 @@ ank ank ank ank +ank ano ank ank @@ -60364,7 +57477,6 @@ btF aDi aDL ank -ank ano ank ank @@ -60373,6 +57485,7 @@ ank ank ank ank +ank ano ank ank diff --git a/maps/map_files/LV624/armory/10.cheese.dmm b/maps/map_files/LV624/armory/10.cheese.dmm index cee714b1c170..127e19a04809 100644 --- a/maps/map_files/LV624/armory/10.cheese.dmm +++ b/maps/map_files/LV624/armory/10.cheese.dmm @@ -1,20 +1,13 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE "a" = ( -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/main_hall) "b" = ( /obj/item/stack/sheet/wood, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/main_hall) "c" = ( -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellow" - }, +/turf/open/floor/whiteyellow/east, /area/lv624/lazarus/main_hall) "d" = ( /obj/item/phone{ @@ -31,36 +24,24 @@ dir = 1 }, /obj/structure/window/reinforced, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/lv624/lazarus/main_hall) "e" = ( /obj/structure/barricade/wooden{ dir = 8 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/main_hall) "f" = ( -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowcorner" - }, +/turf/open/floor/whiteyellowcorner/east, /area/lv624/lazarus/main_hall) "g" = ( -/turf/open/floor{ - dir = 1; - icon_state = "whiteyellow" - }, +/turf/open/floor/whiteyellow/north, /area/lv624/lazarus/main_hall) "h" = ( /obj/structure/machinery/light/small, /obj/effect/landmark/crap_item, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/main_hall) "i" = ( /turf/closed/wall/r_wall, @@ -72,9 +53,7 @@ /obj/structure/surface/rack, /obj/item/weapon/gun/shotgun/pump, /obj/item/ammo_magazine/shotgun/slugs, -/turf/open/floor{ - icon_state = "cult" - }, +/turf/open/floor/cult, /area/lv624/lazarus/armory) "l" = ( /obj/effect/decal/cleanable/cobweb2, @@ -83,23 +62,16 @@ /obj/item/reagent_container/hypospray/autoinjector/tricord, /obj/effect/landmark/crap_item, /obj/effect/landmark/crap_item, -/turf/open/floor{ - icon_state = "cult" - }, +/turf/open/floor/cult, /area/lv624/lazarus/armory) "m" = ( /obj/structure/target/syndicate, -/turf/open/floor{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/red/northeast, /area/lv624/lazarus/security) "n" = ( /obj/structure/machinery/deployable/barrier, /obj/effect/decal/cleanable/cobweb, -/turf/open/floor{ - icon_state = "cult" - }, +/turf/open/floor/cult, /area/lv624/lazarus/armory) "o" = ( /obj/structure/machinery/light/small{ @@ -110,14 +82,10 @@ /obj/item/ammo_magazine/pistol/highpower, /obj/item/ammo_magazine/pistol/highpower, /obj/item/ammo_magazine/pistol/highpower, -/turf/open/floor{ - icon_state = "cult" - }, +/turf/open/floor/cult, /area/lv624/lazarus/armory) "p" = ( -/turf/open/floor{ - icon_state = "cult" - }, +/turf/open/floor/cult, /area/lv624/lazarus/armory) "q" = ( /obj/structure/surface/rack, @@ -125,38 +93,22 @@ /obj/effect/landmark/crap_item, /obj/item/reagent_container/food/snacks/sliceable/cheesewheel/verymature, /obj/item/reagent_container/food/snacks/sliceable/cheesewheel/verymature, -/turf/open/floor{ - icon_state = "cult" - }, +/turf/open/floor/cult, /area/lv624/lazarus/armory) "r" = ( /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/red/northeast, /area/lv624/lazarus/security) "s" = ( /obj/structure/machinery/deployable/barrier, -/turf/open/floor{ - icon_state = "cult" - }, +/turf/open/floor/cult, /area/lv624/lazarus/armory) "t" = ( -/turf/open/floor{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/red/northeast, /area/lv624/lazarus/security) "u" = ( -/obj/structure/machinery/power/apc{ - dir = 8; - name = "Secure Vault APC"; - pixel_x = -28; - start_charge = 0 - }, /obj/structure/surface/rack, /obj/item/reagent_container/food/snacks/cheesewedge/verymature{ pixel_x = -7; @@ -169,9 +121,10 @@ /obj/item/reagent_container/food/snacks/cheesewedge/verymature{ pixel_y = 6 }, -/turf/open/floor{ - icon_state = "cult" +/obj/structure/machinery/power/apc/nocharge{ + dir = 8 }, +/turf/open/floor/cult, /area/lv624/lazarus/armory) "w" = ( /obj/structure/surface/rack, @@ -182,9 +135,7 @@ pixel_x = 8; pixel_y = -4 }, -/turf/open/floor{ - icon_state = "cult" - }, +/turf/open/floor/cult, /area/lv624/lazarus/armory) "y" = ( /obj/structure/window/reinforced{ @@ -195,28 +146,21 @@ /obj/item/ammo_magazine/revolver/cmb, /obj/item/ammo_magazine/revolver/cmb, /obj/item/ammo_magazine/revolver/cmb, -/turf/open/floor{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/red/northeast, /area/lv624/lazarus/security) "z" = ( /turf/closed/wall/strata_ice/jungle, /area/lv624/ground/jungle/east_central_jungle) "A" = ( /obj/effect/landmark/crap_item, -/turf/open/floor{ - icon_state = "cult" - }, +/turf/open/floor/cult, /area/lv624/lazarus/armory) "B" = ( /obj/structure/machinery/door/airlock/almayer/secure/colony{ locked = 1; name = "\improper Nexus Dome Armory" }, -/turf/open/floor{ - icon_state = "cult" - }, +/turf/open/floor/cult, /area/lv624/lazarus/armory) "C" = ( /obj/structure/machinery/door_control{ @@ -232,15 +176,11 @@ /obj/item/reagent_container/food/snacks/sliceable/cheesewheel/mature{ pixel_y = -6 }, -/turf/open/floor{ - icon_state = "cult" - }, +/turf/open/floor/cult, /area/lv624/lazarus/armory) "M" = ( /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor{ - icon_state = "cult" - }, +/turf/open/floor/cult, /area/lv624/lazarus/armory) "Q" = ( /obj/structure/surface/rack, @@ -253,9 +193,7 @@ pixel_x = -4; pixel_y = -3 }, -/turf/open/floor{ - icon_state = "cult" - }, +/turf/open/floor/cult, /area/lv624/lazarus/armory) (1,1,1) = {" diff --git a/maps/map_files/LV624/armory/10.extra.dmm b/maps/map_files/LV624/armory/10.extra.dmm index 7086e945d1ad..7acd81bb8e97 100644 --- a/maps/map_files/LV624/armory/10.extra.dmm +++ b/maps/map_files/LV624/armory/10.extra.dmm @@ -1,20 +1,13 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE "a" = ( -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/main_hall) "b" = ( /obj/item/stack/sheet/wood, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/main_hall) "c" = ( -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellow" - }, +/turf/open/floor/whiteyellow/east, /area/lv624/lazarus/main_hall) "d" = ( /obj/item/phone{ @@ -31,36 +24,24 @@ dir = 1 }, /obj/structure/window/reinforced, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/lv624/lazarus/main_hall) "e" = ( /obj/structure/barricade/wooden{ dir = 8 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/main_hall) "f" = ( -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowcorner" - }, +/turf/open/floor/whiteyellowcorner/east, /area/lv624/lazarus/main_hall) "g" = ( -/turf/open/floor{ - dir = 1; - icon_state = "whiteyellow" - }, +/turf/open/floor/whiteyellow/north, /area/lv624/lazarus/main_hall) "h" = ( /obj/structure/machinery/light/small, /obj/effect/landmark/crap_item, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/main_hall) "i" = ( /turf/closed/wall/r_wall, @@ -76,9 +57,7 @@ /obj/item/ammo_magazine/shotgun/slugs, /obj/item/ammo_magazine/shotgun/flechette, /obj/item/ammo_magazine/shotgun/incendiary, -/turf/open/floor{ - icon_state = "cult" - }, +/turf/open/floor/cult, /area/lv624/lazarus/armory) "l" = ( /obj/effect/decal/cleanable/cobweb2, @@ -93,23 +72,16 @@ /obj/item/reagent_container/hypospray/autoinjector/tricord, /obj/effect/landmark/crap_item, /obj/effect/landmark/crap_item, -/turf/open/floor{ - icon_state = "cult" - }, +/turf/open/floor/cult, /area/lv624/lazarus/armory) "m" = ( /obj/structure/target/syndicate, -/turf/open/floor{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/red/northeast, /area/lv624/lazarus/security) "n" = ( /obj/structure/machinery/deployable/barrier, /obj/effect/decal/cleanable/cobweb, -/turf/open/floor{ - icon_state = "cult" - }, +/turf/open/floor/cult, /area/lv624/lazarus/armory) "o" = ( /obj/structure/machinery/light/small{ @@ -125,14 +97,10 @@ /obj/item/explosive/grenade/flashbang, /obj/item/explosive/grenade/flashbang, /obj/item/ammo_magazine/shotgun/beanbag, -/turf/open/floor{ - icon_state = "cult" - }, +/turf/open/floor/cult, /area/lv624/lazarus/armory) "p" = ( -/turf/open/floor{ - icon_state = "cult" - }, +/turf/open/floor/cult, /area/lv624/lazarus/armory) "q" = ( /obj/structure/surface/rack{ @@ -142,41 +110,26 @@ /obj/effect/landmark/crap_item, /obj/item/ammo_magazine/smg/m39/extended, /obj/item/weapon/gun/smg/m39, -/turf/open/floor{ - icon_state = "cult" - }, +/turf/open/floor/cult, /area/lv624/lazarus/armory) "r" = ( /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/red/northeast, /area/lv624/lazarus/security) "s" = ( /obj/structure/machinery/deployable/barrier, -/turf/open/floor{ - icon_state = "cult" - }, +/turf/open/floor/cult, /area/lv624/lazarus/armory) "t" = ( -/turf/open/floor{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/red/northeast, /area/lv624/lazarus/security) "u" = ( -/obj/structure/machinery/power/apc{ - dir = 8; - name = "Secure Vault APC"; - pixel_x = -28; - start_charge = 0 - }, -/turf/open/floor{ - icon_state = "cult" +/obj/structure/machinery/power/apc/nocharge{ + dir = 8 }, +/turf/open/floor/cult, /area/lv624/lazarus/armory) "w" = ( /obj/item/storage/toolbox/syndicate, @@ -187,9 +140,7 @@ /obj/effect/landmark/crap_item, /obj/item/ammo_magazine/smg/m39/extended, /obj/item/weapon/gun/smg/m39, -/turf/open/floor{ - icon_state = "cult" - }, +/turf/open/floor/cult, /area/lv624/lazarus/armory) "y" = ( /obj/structure/window/reinforced{ @@ -200,28 +151,21 @@ /obj/item/ammo_magazine/revolver/cmb, /obj/item/ammo_magazine/revolver/cmb, /obj/item/ammo_magazine/revolver/cmb, -/turf/open/floor{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/red/northeast, /area/lv624/lazarus/security) "z" = ( /turf/closed/wall/strata_ice/jungle, /area/lv624/ground/jungle/east_central_jungle) "A" = ( /obj/effect/landmark/crap_item, -/turf/open/floor{ - icon_state = "cult" - }, +/turf/open/floor/cult, /area/lv624/lazarus/armory) "B" = ( /obj/structure/machinery/door/airlock/almayer/secure/colony{ locked = 1; name = "\improper Nexus Dome Armory" }, -/turf/open/floor{ - icon_state = "cult" - }, +/turf/open/floor/cult, /area/lv624/lazarus/armory) "C" = ( /obj/structure/surface/rack, @@ -237,15 +181,11 @@ pixel_x = -26; range = 200 }, -/turf/open/floor{ - icon_state = "cult" - }, +/turf/open/floor/cult, /area/lv624/lazarus/armory) "H" = ( /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor{ - icon_state = "cult" - }, +/turf/open/floor/cult, /area/lv624/lazarus/armory) (1,1,1) = {" diff --git a/maps/map_files/LV624/armory/10.looted.dmm b/maps/map_files/LV624/armory/10.looted.dmm index b81e0660816d..87fbccfce955 100644 --- a/maps/map_files/LV624/armory/10.looted.dmm +++ b/maps/map_files/LV624/armory/10.looted.dmm @@ -1,21 +1,14 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE "a" = ( -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/main_hall) "b" = ( /obj/item/stack/sheet/wood, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/main_hall) "c" = ( /obj/item/stack/tile/plasteel, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellow" - }, +/turf/open/floor/whiteyellow/east, /area/lv624/lazarus/main_hall) "d" = ( /obj/item/phone{ @@ -32,38 +25,26 @@ dir = 1 }, /obj/structure/window/reinforced, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/lv624/lazarus/main_hall) "e" = ( /obj/structure/barricade/wooden{ dir = 8 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/main_hall) "f" = ( -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowcorner" - }, +/turf/open/floor/whiteyellowcorner/east, /area/lv624/lazarus/main_hall) "g" = ( -/turf/open/floor{ - dir = 1; - icon_state = "whiteyellow" - }, +/turf/open/floor/whiteyellow/north, /area/lv624/lazarus/main_hall) "h" = ( /obj/structure/barricade/wooden{ dir = 8 }, /obj/item/stack/tile/plasteel, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/main_hall) "i" = ( /turf/closed/wall/r_wall, @@ -74,82 +55,52 @@ "k" = ( /obj/structure/machinery/light/small, /obj/effect/landmark/crap_item, -/turf/open/floor{ - icon_state = "platingdmg3" - }, +/turf/open/floor/platingdmg3, /area/lv624/lazarus/main_hall) "l" = ( -/turf/open/floor{ - icon_state = "platingdmg3" - }, +/turf/open/floor/platingdmg3, /area/lv624/lazarus/main_hall) "m" = ( /obj/structure/target/syndicate, -/turf/open/floor{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/red/northeast, /area/lv624/lazarus/security) "n" = ( /obj/structure/machinery/deployable/barrier, /obj/effect/decal/cleanable/cobweb, -/turf/open/floor{ - icon_state = "cult" - }, +/turf/open/floor/cult, /area/lv624/lazarus/armory) "o" = ( /obj/item/stack/tile/plasteel, -/turf/open/floor{ - icon_state = "platingdmg3" - }, +/turf/open/floor/platingdmg3, /area/lv624/lazarus/main_hall) "p" = ( -/turf/open/floor{ - icon_state = "cult" - }, +/turf/open/floor/cult, /area/lv624/lazarus/armory) "q" = ( -/turf/open/floor{ - icon_state = "platingdmg3" - }, +/turf/open/floor/platingdmg3, /area/lv624/lazarus/armory) "r" = ( /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/red/northeast, /area/lv624/lazarus/security) "s" = ( /obj/structure/machinery/deployable/barrier, -/turf/open/floor{ - icon_state = "cult" - }, +/turf/open/floor/cult, /area/lv624/lazarus/armory) "t" = ( -/turf/open/floor{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/red/northeast, /area/lv624/lazarus/security) "u" = ( -/obj/structure/machinery/power/apc{ - dir = 8; - name = "Secure Vault APC"; - pixel_x = -28; - start_charge = 0 - }, -/turf/open/floor{ - icon_state = "cult" +/obj/structure/machinery/power/apc/nocharge{ + dir = 8 }, +/turf/open/floor/cult, /area/lv624/lazarus/armory) "w" = ( /obj/item/stack/sheet/metal, -/turf/open/floor{ - icon_state = "cult" - }, +/turf/open/floor/cult, /area/lv624/lazarus/armory) "y" = ( /obj/structure/window/reinforced{ @@ -160,10 +111,7 @@ /obj/item/ammo_magazine/revolver/cmb, /obj/item/ammo_magazine/revolver/cmb, /obj/item/ammo_magazine/revolver/cmb, -/turf/open/floor{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/red/northeast, /area/lv624/lazarus/security) "z" = ( /turf/closed/wall/strata_ice/jungle, @@ -173,18 +121,14 @@ dir = 1 }, /obj/item/stack/sheet/metal, -/turf/open/floor{ - icon_state = "cult" - }, +/turf/open/floor/cult, /area/lv624/lazarus/armory) "B" = ( /obj/structure/machinery/door/airlock/almayer/secure/colony{ locked = 1; name = "\improper Nexus Dome Armory" }, -/turf/open/floor{ - icon_state = "cult" - }, +/turf/open/floor/cult, /area/lv624/lazarus/armory) "T" = ( /obj/structure/machinery/door_control{ @@ -193,15 +137,11 @@ pixel_x = -26; range = 200 }, -/turf/open/floor{ - icon_state = "cult" - }, +/turf/open/floor/cult, /area/lv624/lazarus/armory) "Y" = ( /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/main_hall) (1,1,1) = {" diff --git a/maps/map_files/LV624/cargospecial/cargospecial3_gear.dmm b/maps/map_files/LV624/cargospecial/cargospecial3_gear.dmm index 80d478e1ef51..c75595ead93b 100644 --- a/maps/map_files/LV624/cargospecial/cargospecial3_gear.dmm +++ b/maps/map_files/LV624/cargospecial/cargospecial3_gear.dmm @@ -1,10 +1,7 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE "a" = ( /obj/structure/surface/rack, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/lv624/lazarus/quartstorage) "f" = ( /obj/structure/surface/rack, @@ -15,9 +12,7 @@ pixel_x = -6 }, /obj/item/tool/shovel/etool, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/lv624/lazarus/quartstorage) "i" = ( /obj/structure/surface/rack, @@ -30,18 +25,13 @@ pixel_y = 4 }, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/lv624/lazarus/quartstorage) "A" = ( /obj/structure/surface/rack, /obj/item/clothing/accessory/storage/black_vest/brown_vest, /obj/item/clothing/accessory/storage/black_vest/brown_vest, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/lv624/lazarus/quartstorage) "C" = ( /obj/structure/surface/rack, @@ -56,10 +46,7 @@ }, /obj/item/poster, /obj/item/clothing/glasses/sunglasses, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/lv624/lazarus/quartstorage) "E" = ( /turf/open/floor/vault, @@ -68,9 +55,7 @@ /obj/structure/surface/rack, /obj/item/stack/folding_barricade, /obj/item/facepaint/skull, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/lv624/lazarus/quartstorage) "R" = ( /obj/structure/surface/rack, @@ -79,10 +64,7 @@ /obj/effect/landmark/wo_supplies/storage/webbing, /obj/item/poster, /obj/item/clothing/glasses/sunglasses, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/lv624/lazarus/quartstorage) "V" = ( /obj/structure/surface/rack, @@ -92,9 +74,7 @@ /obj/item/explosive/grenade/high_explosive/frag{ pixel_x = 6 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/lv624/lazarus/quartstorage) (1,1,1) = {" diff --git a/maps/map_files/LV624/centralcaves/10.T.dmm b/maps/map_files/LV624/centralcaves/10.T.dmm index 56c54485e09e..09af40a6e0eb 100644 --- a/maps/map_files/LV624/centralcaves/10.T.dmm +++ b/maps/map_files/LV624/centralcaves/10.T.dmm @@ -63,17 +63,11 @@ /area/lv624/ground/caves/south_central_caves) "o" = ( /obj/structure/fence, -/turf/open/floor{ - dir = 9; - icon_state = "warning" - }, +/turf/open/floor/warning/northwest, /area/lv624/ground/barrens/containers) "p" = ( /obj/structure/fence, -/turf/open/floor{ - dir = 1; - icon_state = "warning" - }, +/turf/open/floor/warning/north, /area/lv624/ground/barrens/containers) "s" = ( /obj/effect/decal/grass_overlay/grass1/inner{ diff --git a/maps/map_files/LV624/centralcaves/10.qc.dmm b/maps/map_files/LV624/centralcaves/10.qc.dmm index 5f63ae797e02..6245715951fd 100644 --- a/maps/map_files/LV624/centralcaves/10.qc.dmm +++ b/maps/map_files/LV624/centralcaves/10.qc.dmm @@ -38,10 +38,7 @@ /area/lv624/ground/caves/south_central_caves) "hW" = ( /obj/structure/fence, -/turf/open/floor{ - dir = 9; - icon_state = "warning" - }, +/turf/open/floor/warning/northwest, /area/lv624/ground/barrens/containers) "iS" = ( /obj/item/reagent_container/food/snacks/grown/mushroom/plumphelmet{ @@ -207,10 +204,7 @@ /area/lv624/ground/caves/south_central_caves) "JZ" = ( /obj/structure/fence, -/turf/open/floor{ - dir = 1; - icon_state = "warning" - }, +/turf/open/floor/warning/north, /area/lv624/ground/barrens/containers) "KX" = ( /turf/open/gm/dirt, diff --git a/maps/map_files/LV624/crashedship/10.digsite.dmm b/maps/map_files/LV624/crashedship/10.digsite.dmm index 6132b455f14d..13a4b645df03 100644 --- a/maps/map_files/LV624/crashedship/10.digsite.dmm +++ b/maps/map_files/LV624/crashedship/10.digsite.dmm @@ -11,9 +11,7 @@ "bB" = ( /obj/item/clothing/shoes/veteran/pmc, /obj/structure/foamed_metal, -/turf/open/shuttle{ - icon_state = "floor4" - }, +/turf/open/shuttle/bright_red, /area/lv624/lazarus/crashed_ship_containers) "bT" = ( /obj/structure/shuttle/engine/propulsion, @@ -24,15 +22,11 @@ /obj/structure/bed/chair{ dir = 8 }, -/turf/open/shuttle{ - icon_state = "floor4" - }, +/turf/open/shuttle/bright_red, /area/lv624/lazarus/crashed_ship_containers) "cV" = ( /obj/item/storage/toolbox/electrical, -/turf/open/shuttle{ - icon_state = "floor4" - }, +/turf/open/shuttle/bright_red, /area/lv624/lazarus/crashed_ship_containers) "cZ" = ( /obj/item/storage/toolbox/mechanical, @@ -46,25 +40,18 @@ /area/lv624/lazarus/crashed_ship_containers) "eW" = ( /obj/effect/landmark/crap_item, -/turf/open/floor/airless{ - dir = 5; - icon_state = "asteroidfloor" - }, +/turf/open/floor/airless/asteroidfloor/northeast, /area/lv624/ground/barrens/north_east_barrens) "gu" = ( /obj/item/stack/cable_coil/random, /obj/item/explosive/grenade/high_explosive, /obj/item/explosive/grenade/high_explosive, /obj/structure/foamed_metal, -/turf/open/shuttle{ - icon_state = "floor4" - }, +/turf/open/shuttle/bright_red, /area/lv624/lazarus/crashed_ship_containers) "ip" = ( /obj/effect/decal/cleanable/blood, -/turf/open/shuttle{ - icon_state = "floor4" - }, +/turf/open/shuttle/bright_red, /area/lv624/lazarus/crashed_ship_containers) "jo" = ( /obj/item/tool/shovel/spade, @@ -72,15 +59,11 @@ /area/lv624/ground/barrens/north_east_barrens) "jE" = ( /obj/structure/xenoautopsy/tank/broken, -/turf/open/shuttle{ - icon_state = "floor4" - }, +/turf/open/shuttle/bright_red, /area/lv624/lazarus/crashed_ship_containers) "kp" = ( /obj/effect/landmark/crap_item, -/turf/open/shuttle{ - icon_state = "floor4" - }, +/turf/open/shuttle/bright_red, /area/lv624/lazarus/crashed_ship_containers) "kP" = ( /obj/structure/girder/displaced, @@ -110,9 +93,7 @@ /area/lv624/lazarus/crashed_ship_containers) "rP" = ( /obj/structure/bed/chair/dropship/pilot, -/turf/open/shuttle{ - icon_state = "floor4" - }, +/turf/open/shuttle/bright_red, /area/lv624/lazarus/crashed_ship_containers) "tf" = ( /obj/structure/machinery/constructable_frame{ @@ -122,9 +103,7 @@ /turf/open/gm/dirt, /area/lv624/lazarus/crashed_ship_containers) "tv" = ( -/turf/open/shuttle{ - icon_state = "floor4" - }, +/turf/open/shuttle/bright_red, /area/lv624/ground/barrens/north_east_barrens) "uw" = ( /obj/structure/bed/chair{ @@ -134,9 +113,7 @@ /area/lv624/lazarus/crashed_ship_containers) "vA" = ( /obj/effect/landmark/objective_landmark/science, -/turf/open/shuttle{ - icon_state = "floor4" - }, +/turf/open/shuttle/bright_red, /area/lv624/lazarus/crashed_ship_containers) "vD" = ( /obj/structure/surface/rack, @@ -149,9 +126,7 @@ /turf/open/gm/dirt, /area/lv624/lazarus/crashed_ship_containers) "xg" = ( -/turf/open/shuttle{ - icon_state = "floor4" - }, +/turf/open/shuttle/bright_red, /area/lv624/lazarus/crashed_ship_containers) "xt" = ( /obj/item/ammo_magazine/rifle/m16, @@ -166,9 +141,7 @@ /area/lv624/lazarus/crashed_ship_containers) "yj" = ( /obj/effect/landmark/objective_landmark/medium, -/turf/open/shuttle{ - icon_state = "floor4" - }, +/turf/open/shuttle/bright_red, /area/lv624/lazarus/crashed_ship_containers) "yJ" = ( /obj/structure/machinery/constructable_frame{ @@ -188,9 +161,7 @@ /area/lv624/ground/caves/central_caves) "BQ" = ( /obj/structure/xenoautopsy/tank/hugger, -/turf/open/shuttle{ - icon_state = "floor4" - }, +/turf/open/shuttle/bright_red, /area/lv624/lazarus/crashed_ship_containers) "Cn" = ( /obj/effect/landmark/objective_landmark/science, @@ -207,9 +178,7 @@ /area/lv624/lazarus/crashed_ship_containers) "DT" = ( /obj/structure/foamed_metal, -/turf/open/shuttle{ - icon_state = "floor4" - }, +/turf/open/shuttle/bright_red, /area/lv624/lazarus/crashed_ship_containers) "Fg" = ( /obj/item/tool/warning_cone, @@ -247,16 +216,12 @@ "Kz" = ( /obj/item/tool/crowbar, /obj/effect/landmark/objective_landmark/science, -/turf/open/shuttle{ - icon_state = "floor4" - }, +/turf/open/shuttle/bright_red, /area/lv624/lazarus/crashed_ship_containers) "KG" = ( /obj/structure/bed/chair/dropship/pilot, /obj/item/clothing/head/helmet/marine/veteran/pmc/leader, -/turf/open/shuttle{ - icon_state = "floor4" - }, +/turf/open/shuttle/bright_red, /area/lv624/lazarus/crashed_ship_containers) "LQ" = ( /obj/effect/landmark/corpsespawner/security, @@ -281,9 +246,7 @@ "RT" = ( /obj/item/explosive/grenade/high_explosive/pmc, /obj/structure/foamed_metal, -/turf/open/shuttle{ - icon_state = "floor4" - }, +/turf/open/shuttle/bright_red, /area/lv624/lazarus/crashed_ship_containers) "SJ" = ( /turf/template_noop, @@ -318,10 +281,7 @@ /turf/open/gm/dirt, /area/lv624/lazarus/crashed_ship_containers) "ZH" = ( -/turf/open/floor/airless{ - dir = 5; - icon_state = "asteroidfloor" - }, +/turf/open/floor/airless/asteroidfloor/northeast, /area/lv624/ground/barrens/north_east_barrens) (1,1,1) = {" diff --git a/maps/map_files/LV624/crashedship/10.swapped.dmm b/maps/map_files/LV624/crashedship/10.swapped.dmm index e8257934ce51..363872ddfa9f 100644 --- a/maps/map_files/LV624/crashedship/10.swapped.dmm +++ b/maps/map_files/LV624/crashedship/10.swapped.dmm @@ -17,9 +17,7 @@ /area/lv624/ground/barrens/north_east_barrens) "eC" = ( /obj/item/storage/firstaid/adv, -/turf/open/shuttle{ - icon_state = "floor4" - }, +/turf/open/shuttle/bright_red, /area/lv624/lazarus/crashed_ship_containers) "fb" = ( /obj/structure/bed/chair{ @@ -34,9 +32,7 @@ "fx" = ( /obj/structure/surface/table/almayer, /obj/item/ammo_magazine/rifle/m16/ap, -/turf/open/shuttle{ - icon_state = "floor4" - }, +/turf/open/shuttle/bright_red, /area/lv624/lazarus/crashed_ship_containers) "fC" = ( /obj/effect/decal/cleanable/blood/oil, @@ -69,24 +65,18 @@ "mG" = ( /obj/structure/surface/table/almayer, /obj/item/ammo_magazine/shotgun/buckshot, -/turf/open/shuttle{ - icon_state = "floor4" - }, +/turf/open/shuttle/bright_red, /area/lv624/lazarus/crashed_ship_containers) "ng" = ( /obj/structure/bed/chair{ dir = 4 }, /obj/structure/foamed_metal, -/turf/open/shuttle{ - icon_state = "floor4" - }, +/turf/open/shuttle/bright_red, /area/lv624/lazarus/crashed_ship_containers) "pd" = ( /obj/item/ammo_magazine/rifle/m16, -/turf/open/shuttle{ - icon_state = "floor4" - }, +/turf/open/shuttle/bright_red, /area/lv624/lazarus/crashed_ship_containers) "pg" = ( /obj/effect/alien/weeds/node, @@ -105,9 +95,7 @@ /area/lv624/lazarus/crashed_ship_containers) "qk" = ( /obj/effect/spawner/random/toolbox, -/turf/open/shuttle{ - icon_state = "floor4" - }, +/turf/open/shuttle/bright_red, /area/lv624/lazarus/crashed_ship_containers) "qS" = ( /obj/effect/landmark/objective_landmark/medium, @@ -155,9 +143,7 @@ /area/lv624/lazarus/crashed_ship_containers) "At" = ( /obj/structure/foamed_metal, -/turf/open/shuttle{ - icon_state = "floor4" - }, +/turf/open/shuttle/bright_red, /area/lv624/lazarus/crashed_ship_containers) "AI" = ( /turf/open/gm/dirt, @@ -165,28 +151,20 @@ "AT" = ( /obj/item/ammo_magazine/rifle/m16, /obj/item/ammo_magazine/rifle/m16, -/turf/open/shuttle{ - icon_state = "floor4" - }, +/turf/open/shuttle/bright_red, /area/lv624/lazarus/crashed_ship_containers) "BI" = ( /obj/structure/bed/chair{ dir = 8 }, -/turf/open/shuttle{ - icon_state = "floor4" - }, +/turf/open/shuttle/bright_red, /area/lv624/lazarus/crashed_ship_containers) "BW" = ( /obj/structure/bed/chair/dropship/pilot, -/turf/open/shuttle{ - icon_state = "floor4" - }, +/turf/open/shuttle/bright_red, /area/lv624/lazarus/crashed_ship_containers) "CI" = ( -/turf/open/shuttle{ - icon_state = "floor4" - }, +/turf/open/shuttle/bright_red, /area/lv624/ground/barrens/north_east_barrens) "Dq" = ( /turf/template_noop, @@ -194,16 +172,12 @@ "Ex" = ( /obj/structure/surface/rack, /obj/item/weapon/gun/rifle/m16, -/turf/open/shuttle{ - icon_state = "floor4" - }, +/turf/open/shuttle/bright_red, /area/lv624/lazarus/crashed_ship_containers) "EH" = ( /obj/item/ammo_magazine/rifle/m16/ap, /obj/item/ammo_magazine/rifle/m16/ap, -/turf/open/shuttle{ - icon_state = "floor4" - }, +/turf/open/shuttle/bright_red, /area/lv624/lazarus/crashed_ship_containers) "Fb" = ( /turf/closed/shuttle{ @@ -221,9 +195,7 @@ /area/lv624/lazarus/crashed_ship_containers) "Io" = ( /obj/effect/landmark/objective_landmark/science, -/turf/open/shuttle{ - icon_state = "floor4" - }, +/turf/open/shuttle/bright_red, /area/lv624/lazarus/crashed_ship_containers) "IT" = ( /obj/structure/girder/displaced, @@ -234,30 +206,21 @@ "Jl" = ( /obj/structure/surface/rack, /obj/item/weapon/gun/shotgun/pump/dual_tube/cmb, -/turf/open/shuttle{ - icon_state = "floor4" - }, +/turf/open/shuttle/bright_red, /area/lv624/lazarus/crashed_ship_containers) "KY" = ( /obj/effect/landmark/crap_item, -/turf/open/shuttle{ - icon_state = "floor4" - }, +/turf/open/shuttle/bright_red, /area/lv624/lazarus/crashed_ship_containers) "My" = ( -/turf/open/floor/airless{ - dir = 5; - icon_state = "asteroidfloor" - }, +/turf/open/floor/airless/asteroidfloor/northeast, /area/lv624/ground/barrens/north_east_barrens) "NQ" = ( /obj/structure/girder/displaced, /turf/open/gm/dirt, /area/lv624/lazarus/crashed_ship_containers) "Pa" = ( -/turf/open/shuttle{ - icon_state = "floor4" - }, +/turf/open/shuttle/bright_red, /area/lv624/lazarus/crashed_ship_containers) "Pp" = ( /obj/effect/landmark/crap_item, @@ -267,19 +230,14 @@ /obj/structure/machinery/constructable_frame{ icon_state = "box_1" }, -/turf/open/shuttle{ - icon_state = "floor4" - }, +/turf/open/shuttle/bright_red, /area/lv624/lazarus/crashed_ship_containers) "QE" = ( /turf/closed/wall/rock/brown, /area/lv624/ground/caves/south_east_caves) "Sj" = ( /obj/effect/landmark/crap_item, -/turf/open/floor/airless{ - dir = 5; - icon_state = "asteroidfloor" - }, +/turf/open/floor/airless/asteroidfloor/northeast, /area/lv624/ground/barrens/north_east_barrens) "SS" = ( /obj/structure/foamed_metal, @@ -308,9 +266,7 @@ /obj/structure/bed/chair{ dir = 4 }, -/turf/open/shuttle{ - icon_state = "floor4" - }, +/turf/open/shuttle/bright_red, /area/lv624/lazarus/crashed_ship_containers) "WE" = ( /obj/item/explosive/grenade/high_explosive, diff --git a/maps/map_files/LV624/gym/20.pool.dmm b/maps/map_files/LV624/gym/20.pool.dmm index be863f49c556..e0f24e9fdfdd 100644 --- a/maps/map_files/LV624/gym/20.pool.dmm +++ b/maps/map_files/LV624/gym/20.pool.dmm @@ -4,10 +4,7 @@ /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/central_jungle) "bQ" = ( -/turf/open/floor{ - dir = 8; - icon_state = "barber" - }, +/turf/open/floor/barber/west, /area/lv624/lazarus/fitness) "dw" = ( /obj/item/clothing/under/shorts/red, @@ -21,10 +18,7 @@ pixel_y = -8 }, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - dir = 4; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/east, /area/lv624/lazarus/fitness) "gL" = ( /obj/structure/machinery/door/airlock/almayer/medical/glass/colony{ @@ -33,10 +27,7 @@ req_access_txt = "100"; req_one_access = null }, -/turf/open/floor{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/northeast, /area/lv624/lazarus/fitness) "hb" = ( /obj/structure/machinery/light{ @@ -45,10 +36,7 @@ /obj/structure/machinery/cm_vending/sorted/medical/wall_med/limited{ pixel_x = 29 }, -/turf/open/floor{ - dir = 4; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/east, /area/lv624/lazarus/fitness) "hX" = ( /obj/structure/filingcabinet/medical, @@ -75,17 +63,11 @@ /obj/item/clothing/under/swimsuit/red{ pixel_x = -7 }, -/turf/open/floor{ - dir = 4; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/east, /area/lv624/lazarus/fitness) "kE" = ( /obj/structure/machinery/vending/snack, -/turf/open/floor{ - dir = 4; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/east, /area/lv624/lazarus/fitness) "kY" = ( /obj/item/device/radio/intercom{ @@ -94,31 +76,19 @@ name = "General Listening Channel"; pixel_y = 30 }, -/turf/open/floor{ - dir = 4; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/east, /area/lv624/lazarus/fitness) "li" = ( /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor{ - dir = 4; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/east, /area/lv624/lazarus/fitness) "ls" = ( /obj/item/tool/soap, -/turf/open/floor{ - dir = 8; - icon_state = "barber" - }, +/turf/open/floor/barber/west, /area/lv624/lazarus/fitness) "lB" = ( /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/northeast, /area/lv624/lazarus/fitness) "ma" = ( /obj/structure/flora/grass/tallgrass/jungle/corner{ @@ -128,25 +98,16 @@ /area/lv624/ground/jungle/central_jungle) "oK" = ( /obj/item/shard, -/turf/open/floor{ - dir = 4; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/east, /area/lv624/lazarus/fitness) "re" = ( /obj/structure/closet/crate/secure/hydrosec, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor{ - dir = 4; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/east, /area/lv624/lazarus/fitness) "rI" = ( /obj/structure/reagent_dispensers/water_cooler/stacks, -/turf/open/floor{ - dir = 4; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/east, /area/lv624/lazarus/fitness) "sA" = ( /turf/closed/wall, @@ -157,16 +118,10 @@ name = "\improper Leisure Dome"; req_access_txt = "100" }, -/turf/open/floor{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/northeast, /area/lv624/lazarus/fitness) "vq" = ( -/turf/open/floor{ - dir = 4; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/east, /area/lv624/lazarus/fitness) "wj" = ( /turf/open/gm/dirt, @@ -196,10 +151,7 @@ /area/lv624/lazarus/fitness) "yP" = ( /obj/effect/landmark/good_item, -/turf/open/floor{ - dir = 4; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/east, /area/lv624/lazarus/fitness) "yV" = ( /obj/structure/sign/safety/water{ @@ -208,46 +160,28 @@ }, /obj/structure/surface/table, /obj/item/storage/box/cups, -/turf/open/floor{ - dir = 4; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/east, /area/lv624/lazarus/fitness) "zq" = ( /obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - dir = 8; - icon_state = "barber" - }, +/turf/open/floor/barber/west, /area/lv624/lazarus/fitness) "Be" = ( -/obj/structure/machinery/power/apc{ - dir = 1; - name = "Fitness APC"; - pixel_y = 30; - start_charge = 0 - }, /obj/effect/decal/remains/human, -/turf/open/floor{ - dir = 4; - icon_state = "whitepurplecorner" +/obj/structure/machinery/power/apc/nocharge{ + dir = 1 }, +/turf/open/floor/whitepurplecorner/east, /area/lv624/lazarus/fitness) "Ei" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor{ - dir = 4; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/east, /area/lv624/lazarus/fitness) "Er" = ( /obj/effect/landmark/good_item, -/turf/open/floor{ - dir = 8; - icon_state = "barber" - }, +/turf/open/floor/barber/west, /area/lv624/lazarus/fitness) "Ez" = ( /turf/open/floor, @@ -264,17 +198,11 @@ /obj/structure/surface/rack, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor{ - dir = 4; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/east, /area/lv624/lazarus/fitness) "Ga" = ( /obj/structure/prop/static_tank/water, -/turf/open/floor{ - dir = 4; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/east, /area/lv624/lazarus/fitness) "Gf" = ( /turf/open/gm/dirtgrassborder/grassdirt_corner2/south_west, @@ -287,17 +215,11 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor{ - dir = 4; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/east, /area/lv624/lazarus/fitness) "IA" = ( /obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - dir = 4; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/east, /area/lv624/lazarus/fitness) "Jk" = ( /obj/structure/flora/grass/tallgrass/jungle/corner{ @@ -330,10 +252,7 @@ "Px" = ( /obj/structure/surface/rack, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 4; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/east, /area/lv624/lazarus/fitness) "Rf" = ( /obj/structure/closet/athletic_mixed, @@ -341,10 +260,7 @@ dir = 4 }, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - dir = 4; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/east, /area/lv624/lazarus/fitness) "Rl" = ( /obj/item/clothing/under/shorts/red, @@ -352,17 +268,11 @@ /obj/item/clothing/mask/snorkel, /obj/item/clothing/mask/snorkel, /obj/item/clothing/mask/snorkel, -/turf/open/floor{ - dir = 4; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/east, /area/lv624/lazarus/fitness) "SW" = ( /obj/structure/machinery/vending/cola, -/turf/open/floor{ - dir = 4; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/east, /area/lv624/lazarus/fitness) "Td" = ( /obj/structure/machinery/colony_floodlight, @@ -378,19 +288,13 @@ dir = 8 }, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - dir = 4; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/east, /area/lv624/lazarus/fitness) "UM" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor{ - dir = 4; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/east, /area/lv624/lazarus/fitness) "Vb" = ( /turf/open/gm/dirtgrassborder/south, @@ -403,10 +307,7 @@ /obj/structure/surface/rack, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, /obj/item/storage/firstaid/regular, -/turf/open/floor{ - dir = 4; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/east, /area/lv624/lazarus/fitness) "Wj" = ( /turf/open/gm/grass/grass1, diff --git a/maps/map_files/LV624/gym/30.alternate.dmm b/maps/map_files/LV624/gym/30.alternate.dmm index 79d0887c2219..f0e7ac35b806 100644 --- a/maps/map_files/LV624/gym/30.alternate.dmm +++ b/maps/map_files/LV624/gym/30.alternate.dmm @@ -6,10 +6,7 @@ name = "treadmill" }, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 4; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/east, /area/lv624/lazarus/fitness) "aG" = ( /obj/structure/window_frame/colony, @@ -23,10 +20,7 @@ pixel_y = 2 }, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 4; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/east, /area/lv624/lazarus/fitness) "ds" = ( /obj/structure/machinery/conveyor_switch{ @@ -41,18 +35,12 @@ pixel_x = -8; pixel_y = -4 }, -/turf/open/floor{ - dir = 4; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/east, /area/lv624/lazarus/fitness) "ej" = ( /obj/structure/closet/crate/secure/hydrosec, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - dir = 4; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/east, /area/lv624/lazarus/fitness) "ek" = ( /obj/structure/surface/table/almayer, @@ -60,10 +48,7 @@ pixel_x = -5 }, /obj/effect/spawner/random/toy, -/turf/open/floor{ - dir = 4; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/east, /area/lv624/lazarus/fitness) "ez" = ( /obj/structure/surface/rack, @@ -73,24 +58,16 @@ pixel_x = -5; pixel_y = -9 }, -/turf/open/floor{ - dir = 4; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/east, /area/lv624/lazarus/fitness) "eD" = ( /obj/structure/machinery/light, /obj/structure/surface/rack, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 4; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/east, /area/lv624/lazarus/fitness) "fr" = ( -/turf/open/floor{ - icon_state = "warnwhite" - }, +/turf/open/floor/warnwhite, /area/lv624/lazarus/fitness) "fv" = ( /obj/effect/landmark/survivor_spawner, @@ -100,10 +77,7 @@ /turf/closed/wall, /area/lv624/lazarus/fitness) "hd" = ( -/turf/open/floor{ - dir = 4; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/east, /area/lv624/lazarus/fitness) "hm" = ( /obj/structure/machinery/conveyor{ @@ -115,17 +89,11 @@ pixel_x = 8; pixel_y = 7 }, -/turf/open/floor{ - dir = 4; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/east, /area/lv624/lazarus/fitness) "hn" = ( /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor{ - dir = 4; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/east, /area/lv624/lazarus/fitness) "il" = ( /obj/item/clothing/under/shorts/red, @@ -139,18 +107,13 @@ pixel_y = -8 }, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - dir = 4; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/east, /area/lv624/lazarus/fitness) "iM" = ( /obj/item/toy/beach_ball/holoball, /obj/effect/decal/warning_stripes, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/fitness) "iN" = ( /obj/structure/barricade/handrail, @@ -167,17 +130,11 @@ "kk" = ( /obj/effect/landmark/crap_item, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 4; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/east, /area/lv624/lazarus/fitness) "kv" = ( /obj/effect/decal/remains/human, -/turf/open/floor{ - dir = 4; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/east, /area/lv624/lazarus/fitness) "lq" = ( /turf/open/gm/dirtgrassborder/grassdirt_corner2/south_east, @@ -191,23 +148,14 @@ dir = 1 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 4; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/east, /area/lv624/lazarus/fitness) "pV" = ( /obj/structure/machinery/light, -/turf/open/floor{ - dir = 4; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/east, /area/lv624/lazarus/fitness) "rw" = ( -/turf/open/floor{ - dir = 1; - icon_state = "warnwhite" - }, +/turf/open/floor/warnwhite/north, /area/lv624/lazarus/fitness) "sd" = ( /obj/structure/machinery/door/airlock/almayer/medical/glass/colony{ @@ -216,19 +164,14 @@ req_access_txt = "100"; req_one_access = null }, -/turf/open/floor{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/northeast, /area/lv624/lazarus/fitness) "sx" = ( /obj/structure/window/framed/colony, /turf/open/floor/plating, /area/lv624/lazarus/fitness) "tD" = ( -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/fitness) "tY" = ( /turf/open/gm/dirt, @@ -249,10 +192,7 @@ "uV" = ( /obj/structure/bed/chair, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - dir = 4; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/east, /area/lv624/lazarus/fitness) "uY" = ( /obj/structure/barricade/handrail{ @@ -268,10 +208,7 @@ id = "lv_gym_2"; name = "treadmill" }, -/turf/open/floor{ - dir = 4; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/east, /area/lv624/lazarus/fitness) "vZ" = ( /obj/structure/flora/grass/tallgrass/jungle, @@ -279,10 +216,7 @@ /area/lv624/ground/jungle/central_jungle) "wA" = ( /obj/structure/bed/chair, -/turf/open/floor{ - dir = 4; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/east, /area/lv624/lazarus/fitness) "wL" = ( /turf/open/gm/dirtgrassborder/south, @@ -291,10 +225,7 @@ /obj/structure/closet/boxinggloves, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor{ - dir = 4; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/east, /area/lv624/lazarus/fitness) "xT" = ( /obj/structure/surface/rack, @@ -304,18 +235,12 @@ pixel_y = -5 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 4; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/east, /area/lv624/lazarus/fitness) "Ah" = ( /obj/structure/closet/athletic_mixed, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor{ - dir = 4; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/east, /area/lv624/lazarus/fitness) "Aq" = ( /obj/structure/flora/grass/tallgrass/jungle/corner{ @@ -324,20 +249,14 @@ /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/central_jungle) "AE" = ( -/turf/open/floor{ - dir = 9; - icon_state = "warnwhite" - }, +/turf/open/floor/warnwhite/northwest, /area/lv624/lazarus/fitness) "Bl" = ( /turf/open/gm/grass/grass2, /area/lv624/ground/jungle/central_jungle) "Bm" = ( /obj/structure/machinery/vending/cola, -/turf/open/floor{ - dir = 4; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/east, /area/lv624/lazarus/fitness) "BE" = ( /obj/structure/window_frame/colony, @@ -353,10 +272,7 @@ dir = 1 }, /obj/effect/landmark/corpsespawner/colonist/random/burst, -/turf/open/floor{ - dir = 4; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/east, /area/lv624/lazarus/fitness) "CO" = ( /obj/structure/machinery/colony_floodlight, @@ -364,18 +280,12 @@ /area/lv624/ground/colony/south_medbay_road) "CZ" = ( /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/northeast, /area/lv624/lazarus/fitness) "DH" = ( /obj/structure/closet/lasertag/blue, /obj/item/tool/crowbar, -/turf/open/floor{ - dir = 4; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/east, /area/lv624/lazarus/fitness) "DM" = ( /turf/open/gm/grass/grass1, @@ -385,16 +295,10 @@ dir = 4 }, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - dir = 8; - icon_state = "warnwhite" - }, +/turf/open/floor/warnwhite/west, /area/lv624/lazarus/fitness) "FD" = ( -/turf/open/floor{ - dir = 6; - icon_state = "warnwhite" - }, +/turf/open/floor/warnwhite/southeast, /area/lv624/lazarus/fitness) "Ge" = ( /obj/structure/barricade/handrail{ @@ -404,10 +308,7 @@ /area/lv624/lazarus/fitness) "Hn" = ( /obj/item/clothing/suit/redtag, -/turf/open/floor{ - dir = 4; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/east, /area/lv624/lazarus/fitness) "Hz" = ( /obj/structure/fence, @@ -416,17 +317,11 @@ "HF" = ( /obj/structure/surface/rack, /obj/item/storage/firstaid/o2, -/turf/open/floor{ - dir = 4; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/east, /area/lv624/lazarus/fitness) "Ia" = ( /obj/structure/machinery/vending/snack, -/turf/open/floor{ - dir = 4; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/east, /area/lv624/lazarus/fitness) "In" = ( /turf/open/floor, @@ -435,16 +330,10 @@ /obj/structure/holohoop{ dir = 8 }, -/turf/open/floor{ - dir = 4; - icon_state = "warnwhite" - }, +/turf/open/floor/warnwhite/east, /area/lv624/lazarus/fitness) "Ix" = ( -/turf/open/floor{ - dir = 10; - icon_state = "warnwhite" - }, +/turf/open/floor/warnwhite/southwest, /area/lv624/lazarus/fitness) "IL" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ @@ -453,18 +342,12 @@ req_access_txt = "100" }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/northeast, /area/lv624/lazarus/fitness) "Js" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 4; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/east, /area/lv624/lazarus/fitness) "JF" = ( /obj/structure/surface/rack, @@ -473,10 +356,7 @@ pixel_x = -6; pixel_y = 2 }, -/turf/open/floor{ - dir = 4; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/east, /area/lv624/lazarus/fitness) "JN" = ( /obj/structure/filingcabinet/medical, @@ -485,10 +365,7 @@ /area/lv624/lazarus/fitness) "Kc" = ( /obj/effect/landmark/crap_item, -/turf/open/floor{ - dir = 4; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/east, /area/lv624/lazarus/fitness) "LB" = ( /obj/structure/fence, @@ -500,9 +377,7 @@ /area/lv624/ground/jungle/east_central_jungle) "Mn" = ( /obj/structure/machinery/light, -/turf/open/floor{ - icon_state = "warnwhite" - }, +/turf/open/floor/warnwhite, /area/lv624/lazarus/fitness) "Nt" = ( /turf/open/gm/grass/grass1, @@ -519,10 +394,7 @@ "Op" = ( /obj/effect/landmark/survivor_spawner, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 4; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/east, /area/lv624/lazarus/fitness) "Pb" = ( /obj/structure/barricade/handrail, @@ -534,10 +406,7 @@ /area/lv624/ground/colony/north_nexus_road) "PC" = ( /obj/item/tool/soap, -/turf/open/floor{ - dir = 4; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/east, /area/lv624/lazarus/fitness) "Qf" = ( /obj/structure/machinery/atm{ @@ -545,10 +414,7 @@ pixel_x = -30 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 4; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/east, /area/lv624/lazarus/fitness) "Qh" = ( /obj/structure/flora/grass/tallgrass/jungle/corner{ @@ -564,28 +430,19 @@ pixel_y = 30 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 4; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/east, /area/lv624/lazarus/fitness) "Qw" = ( /turf/open/gm/dirt, /area/lv624/ground/colony/north_nexus_road) "Sj" = ( /obj/effect/decal/cleanable/blood/oil/streak, -/turf/open/floor{ - dir = 4; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/east, /area/lv624/lazarus/fitness) "Ss" = ( /obj/effect/spawner/gibspawner/robot, /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/northeast, /area/lv624/lazarus/fitness) "SD" = ( /obj/structure/flora/grass/tallgrass/jungle/corner{ @@ -594,49 +451,32 @@ /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/central_jungle) "To" = ( -/turf/open/floor{ - dir = 5; - icon_state = "warnwhite" - }, +/turf/open/floor/warnwhite/northeast, /area/lv624/lazarus/fitness) "Tq" = ( /obj/structure/surface/rack, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 4; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/east, /area/lv624/lazarus/fitness) "Tv" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 4; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/east, /area/lv624/lazarus/fitness) "TS" = ( /obj/effect/decal/cleanable/blood/splatter, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 4; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/east, /area/lv624/lazarus/fitness) "Ur" = ( /obj/effect/landmark/crap_item, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/fitness) "Vk" = ( /obj/structure/closet/lasertag/red, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - dir = 4; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/east, /area/lv624/lazarus/fitness) "Vs" = ( /obj/structure/machinery/conveyor{ @@ -644,10 +484,7 @@ id = "lv_gym_1"; name = "treadmill" }, -/turf/open/floor{ - dir = 4; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/east, /area/lv624/lazarus/fitness) "Wh" = ( /turf/open/gm/dirtgrassborder/grassdirt_corner2/south_west, @@ -658,23 +495,14 @@ /turf/open/floor/plating, /area/lv624/lazarus/fitness) "Wy" = ( -/obj/structure/machinery/power/apc{ - dir = 1; - name = "Fitness APC"; - pixel_y = 30; - start_charge = 0 - }, -/turf/open/floor{ - dir = 4; - icon_state = "whitepurplecorner" +/obj/structure/machinery/power/apc/nocharge{ + dir = 1 }, +/turf/open/floor/whitepurplecorner/east, /area/lv624/lazarus/fitness) "Xu" = ( /obj/structure/reagent_dispensers/watertank, -/turf/open/floor{ - dir = 4; - icon_state = "whitepurplecorner" - }, +/turf/open/floor/whitepurplecorner/east, /area/lv624/lazarus/fitness) (1,1,1) = {" diff --git a/maps/map_files/LV624/hydro/30.destroyed.dmm b/maps/map_files/LV624/hydro/30.destroyed.dmm index 09eb12287a58..d26d559b2fc3 100644 --- a/maps/map_files/LV624/hydro/30.destroyed.dmm +++ b/maps/map_files/LV624/hydro/30.destroyed.dmm @@ -2,36 +2,28 @@ "aO" = ( /obj/effect/landmark/crap_item, /obj/item/reagent_container/glass/watertank, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/lv624/lazarus/hydroponics) "bd" = ( /obj/item/stack/sheet/metal, /obj/item/explosive/mine/pmc/active{ dir = 1 }, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/lv624/lazarus/hydroponics) "bk" = ( /obj/item/tool/extinguisher, /obj/effect/decal/cleanable/blood/tracks/footprints{ dir = 1 }, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/lv624/lazarus/hydroponics) "bm" = ( /obj/item/stack/sheet/metal, /obj/effect/spawner/random/claymore/midchance{ dir = 1 }, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, +/turf/open/floor/plating/panelscorched, /area/lv624/lazarus/hydroponics) "bM" = ( /obj/structure/fence, @@ -43,18 +35,14 @@ /area/lv624/lazarus/hydroponics) "cQ" = ( /obj/effect/decal/cleanable/blood/xeno, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, +/turf/open/floor/plating/panelscorched, /area/lv624/lazarus/hydroponics) "dZ" = ( /obj/item/stack/sheet/metal, /obj/effect/spawner/random/claymore/lowchance{ dir = 8 }, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/lv624/lazarus/hydroponics) "eU" = ( /turf/open/gm/dirtgrassborder/grassdirt_corner2/north_east, @@ -74,24 +62,17 @@ armor_rad = 10; name = "damaged WY PMC gloves" }, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/lv624/lazarus/hydroponics) "fX" = ( /obj/item/device/analyzer/plant_analyzer, /obj/effect/spawner/random/claymore, -/turf/open/floor{ - dir = 9; - icon_state = "green" - }, +/turf/open/floor/green/northwest, /area/lv624/lazarus/hydroponics) "ih" = ( /obj/item/clothing/gloves/botanic_leather, /obj/item/stack/sheet/metal, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, +/turf/open/floor/plating/panelscorched, /area/lv624/lazarus/hydroponics) "it" = ( /obj/item/tool/hatchet{ @@ -99,9 +80,7 @@ pixel_y = 4 }, /obj/structure/machinery/portable_atmospherics/hydroponics, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3, /area/lv624/lazarus/hydroponics) "jg" = ( /obj/structure/flora/bush/ausbushes/var3/sparsegrass, @@ -109,9 +88,7 @@ /area/lv624/ground/jungle/north_jungle) "jy" = ( /obj/structure/machinery/portable_atmospherics/hydroponics, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3, /area/lv624/lazarus/hydroponics) "jY" = ( /obj/item/reagent_container/spray/plantbgone{ @@ -123,9 +100,7 @@ /obj/effect/spawner/random/claymore/midchance{ dir = 1 }, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/lv624/lazarus/hydroponics) "kg" = ( /obj/structure/window/framed/colony/reinforced, @@ -139,21 +114,15 @@ /obj/effect/decal/cleanable/blood/tracks/footprints{ dir = 1 }, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, +/turf/open/floor/plating/panelscorched, /area/lv624/lazarus/hydroponics) "kD" = ( /obj/item/reagent_container/glass/bucket, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3, /area/lv624/lazarus/hydroponics) "lm" = ( /obj/item/stack/sheet/metal, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3, /area/lv624/lazarus/hydroponics) "lP" = ( /obj/item/stack/sheet/metal, @@ -174,21 +143,16 @@ desc = "This appears to be the head of a synthetic, though it it is so destroyed there is no way in hell anyone is going to bring it back to even basic functionality."; name = "shattered synthetic head"; pixel_x = 9; - pixel_y = 3 + pixel_y = 3; + icon_state = "scandinavian_head_m" }, /obj/item/robot_parts/arm/l_arm, -/turf/open/floor{ - dir = 9; - icon_state = "green" - }, +/turf/open/floor/green/northwest, /area/lv624/lazarus/hydroponics) "np" = ( /obj/item/tool/weldingtool/simple, /obj/item/stack/sheet/wood, -/turf/open/floor{ - dir = 9; - icon_state = "green" - }, +/turf/open/floor/green/northwest, /area/lv624/lazarus/hydroponics) "nJ" = ( /obj/item/stack/sheet/metal, @@ -199,9 +163,7 @@ /area/lv624/ground/colony/south_medbay_road) "ot" = ( /obj/effect/landmark/crap_item, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, +/turf/open/floor/plating/panelscorched, /area/lv624/lazarus/hydroponics) "ou" = ( /turf/open/gm/dirt, @@ -211,9 +173,7 @@ /obj/effect/spawner/random/claymore/lowchance{ dir = 4 }, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/lv624/lazarus/hydroponics) "se" = ( /obj/structure/fence, @@ -231,9 +191,7 @@ /obj/item/clothing/under/marine/veteran/pmc/leader{ pixel_x = -7 }, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, +/turf/open/floor/plating/panelscorched, /area/lv624/lazarus/hydroponics) "vm" = ( /obj/item/stack/sheet/wood{ @@ -247,9 +205,7 @@ pixel_x = -6; pixel_y = 8 }, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3, /area/lv624/lazarus/hydroponics) "xa" = ( /obj/effect/decal/cleanable/blood, @@ -261,9 +217,7 @@ pixel_x = 6; pixel_y = 8 }, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, +/turf/open/floor/plating/panelscorched, /area/lv624/lazarus/hydroponics) "xm" = ( /obj/item/stack/sheet/metal, @@ -276,9 +230,7 @@ pixel_x = -7; pixel_y = 9 }, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, +/turf/open/floor/plating/panelscorched, /area/lv624/lazarus/hydroponics) "xM" = ( /obj/structure/surface/rack, @@ -287,18 +239,14 @@ pixel_y = -3 }, /obj/item/reagent_container/glass/bucket, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/lv624/lazarus/hydroponics) "ym" = ( /obj/item/tool/crowbar, /obj/effect/spawner/random/claymore/midchance{ dir = 4 }, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/lv624/lazarus/hydroponics) "zj" = ( /obj/item/stack/folding_barricade, @@ -311,9 +259,7 @@ /area/lv624/lazarus/hydroponics) "zL" = ( /obj/structure/girder, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/lv624/lazarus/hydroponics) "zS" = ( /obj/structure/window_frame/colony, @@ -332,9 +278,7 @@ /obj/structure/barricade/wooden{ dir = 8 }, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, +/turf/open/floor/plating/panelscorched, /area/lv624/lazarus/hydroponics) "BL" = ( /obj/structure/flora/bush/ausbushes/genericbush, @@ -345,16 +289,11 @@ /obj/item/clothing/suit/apron, /obj/item/tool/shovel, /obj/item/clothing/gloves/botanic_leather, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/lv624/lazarus/hydroponics) "Cq" = ( /obj/structure/girder, -/turf/open/floor{ - dir = 9; - icon_state = "green" - }, +/turf/open/floor/green/northwest, /area/lv624/lazarus/hydroponics) "CG" = ( /obj/item/reagent_container/glass/fertilizer{ @@ -364,15 +303,11 @@ /obj/item/reagent_container/glass/fertilizer, /obj/item/stack/sheet/metal, /obj/effect/spawner/random/claymore/midchance, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/lv624/lazarus/hydroponics) "Ed" = ( /obj/item/stack/sheet/metal, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/lv624/lazarus/hydroponics) "Fk" = ( /obj/item/clothing/head/helmet/marine/veteran/pmc{ @@ -383,9 +318,7 @@ /area/lv624/lazarus/hydroponics) "FJ" = ( /obj/effect/decal/cleanable/blood/xeno, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/lv624/lazarus/hydroponics) "Ha" = ( /obj/structure/barricade/deployable{ @@ -406,64 +339,46 @@ name = "scratched VP78 magazine (9mm)"; pixel_x = 6 }, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3, /area/lv624/lazarus/hydroponics) "IO" = ( /obj/item/device/analyzer/plant_analyzer, /obj/effect/landmark/crap_item, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/lv624/lazarus/hydroponics) "Jc" = ( /obj/item/stack/sheet/metal, /obj/effect/decal/cleanable/blood/tracks/footprints{ dir = 1 }, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, +/turf/open/floor/plating/panelscorched, /area/lv624/lazarus/hydroponics) "JE" = ( /turf/open/floor, /area/lv624/lazarus/hydroponics) "JK" = ( /obj/effect/landmark/crap_item, -/turf/open/floor{ - dir = 9; - icon_state = "green" - }, +/turf/open/floor/green/northwest, /area/lv624/lazarus/hydroponics) "JO" = ( /obj/structure/machinery/portable_atmospherics/hydroponics, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, +/turf/open/floor/plating/panelscorched, /area/lv624/lazarus/hydroponics) "Km" = ( /turf/open/gm/grass/grass1, /area/lv624/ground/colony/south_medbay_road) "Lk" = ( /obj/effect/decal/cleanable/blood/xeno, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3, /area/lv624/lazarus/hydroponics) "Lu" = ( /obj/structure/window_frame/colony, -/turf/open/floor{ - dir = 9; - icon_state = "green" - }, +/turf/open/floor/green/northwest, /area/lv624/lazarus/hydroponics) "LQ" = ( /obj/item/stack/sheet/metal, /obj/effect/spawner/random/claymore/lowchance, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/lv624/lazarus/hydroponics) "Mm" = ( /obj/effect/landmark/crap_item, @@ -478,25 +393,18 @@ /obj/item/ammo_magazine/rifle/nsg23, /obj/item/ammo_magazine/rifle/nsg23, /obj/item/ammo_magazine/rifle/nsg23, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, +/turf/open/floor/plating/panelscorched, /area/lv624/lazarus/hydroponics) "MT" = ( /obj/effect/landmark/crap_item, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/lv624/lazarus/hydroponics) "MV" = ( /obj/item/stack/sheet/metal, /obj/effect/spawner/random/claymore/midchance{ dir = 4 }, -/turf/open/floor{ - dir = 9; - icon_state = "green" - }, +/turf/open/floor/green/northwest, /area/lv624/lazarus/hydroponics) "NO" = ( /obj/effect/landmark/crap_item, @@ -504,9 +412,7 @@ /area/lv624/lazarus/hydroponics) "On" = ( /obj/structure/window_frame/colony, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/lv624/lazarus/hydroponics) "OH" = ( /obj/structure/surface/rack, @@ -522,9 +428,7 @@ /obj/item/tool/minihoe{ pixel_y = -2 }, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3, /area/lv624/lazarus/hydroponics) "OI" = ( /obj/item/reagent_container/glass/fertilizer, @@ -534,32 +438,23 @@ "OK" = ( /obj/structure/closet/crate/hydroponics/prespawned, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/lv624/lazarus/hydroponics) "OO" = ( /obj/item/ammo_magazine/rifle/nsg23/extended, /obj/effect/landmark/objective_landmark/medium, /obj/item/stack/sheet/wood, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, +/turf/open/floor/plating/panelscorched, /area/lv624/lazarus/hydroponics) "Pk" = ( /obj/item/stack/sheet/metal, -/turf/open/floor{ - dir = 9; - icon_state = "green" - }, +/turf/open/floor/green/northwest, /area/lv624/lazarus/hydroponics) "Px" = ( /obj/effect/decal/cleanable/blood/tracks/footprints{ dir = 1 }, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/lv624/lazarus/hydroponics) "Qd" = ( /obj/item/stack/folding_barricade, @@ -581,9 +476,7 @@ /turf/open/floor/plating, /area/lv624/lazarus/hydroponics) "QR" = ( -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, +/turf/open/floor/plating/panelscorched, /area/lv624/lazarus/hydroponics) "RT" = ( /obj/item/clothing/shoes/veteran/pmc{ @@ -600,22 +493,15 @@ pixel_y = -10; slowdown = 0.5 }, -/turf/open/floor{ - dir = 9; - icon_state = "green" - }, +/turf/open/floor/green/northwest, /area/lv624/lazarus/hydroponics) "TC" = ( -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3, /area/lv624/lazarus/hydroponics) "TL" = ( /obj/item/stack/sheet/metal, /obj/effect/spawner/random/claymore/midchance, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3, /area/lv624/lazarus/hydroponics) "Ul" = ( /obj/structure/barricade/deployable{ @@ -626,9 +512,7 @@ }, /obj/item/weapon/gun/rifle/nsg23/no_lock, /obj/item/ammo_magazine/rifle/nsg23, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, +/turf/open/floor/plating/panelscorched, /area/lv624/lazarus/hydroponics) "UG" = ( /obj/effect/decal/cleanable/blood, @@ -636,18 +520,13 @@ dir = 4 }, /obj/item/weapon/gun/rifle/nsg23/no_lock, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3, /area/lv624/lazarus/hydroponics) "Wg" = ( /turf/open/floor/plating, /area/lv624/lazarus/hydroponics) "Xv" = ( -/turf/open/floor{ - dir = 9; - icon_state = "green" - }, +/turf/open/floor/green/northwest, /area/lv624/lazarus/hydroponics) "XA" = ( /turf/open/gm/grass/grass1, @@ -661,31 +540,22 @@ /obj/item/explosive/grenade/high_explosive/pmc{ pixel_x = 6 }, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3, /area/lv624/lazarus/hydroponics) "YV" = ( -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/lv624/lazarus/hydroponics) "Zm" = ( /obj/item/stack/sheet/metal, /obj/item/robot_parts/leg/l_leg, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, +/turf/open/floor/plating/panelscorched, /area/lv624/lazarus/hydroponics) "ZL" = ( /obj/item/tool/minihoe{ pixel_x = 1; pixel_y = -1 }, -/turf/open/floor{ - dir = 9; - icon_state = "green" - }, +/turf/open/floor/green/northwest, /area/lv624/lazarus/hydroponics) (1,1,1) = {" diff --git a/maps/map_files/LV624/maintemple/1.intact.dmm b/maps/map_files/LV624/maintemple/1.intact.dmm index 8f7c741d80c6..d61a92500b89 100644 --- a/maps/map_files/LV624/maintemple/1.intact.dmm +++ b/maps/map_files/LV624/maintemple/1.intact.dmm @@ -20,10 +20,7 @@ dir = 4; name = "plasma power generator" }, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/lv624/ground/caves/sand_temple/powered) "aI" = ( /obj/structure/surface/table/reinforced/prison{ @@ -55,10 +52,7 @@ /obj/structure/bed/chair/comfy/black{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/lv624/ground/caves/sand_temple/powered) "aT" = ( /obj/structure/stairs/perspective{ @@ -70,10 +64,7 @@ /area/lv624/ground/caves/sand_temple) "bP" = ( /obj/structure/bed/chair/comfy/black, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/lv624/ground/caves/sand_temple/powered) "bZ" = ( /obj/structure/surface/table/reinforced/prison{ @@ -108,10 +99,7 @@ amount = 30; pixel_y = 6 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/lv624/ground/caves/sand_temple/powered) "dB" = ( /obj/structure/surface/table/reinforced/prison{ @@ -149,9 +137,7 @@ /obj/structure/barricade/handrail/strata{ dir = 1 }, -/turf/open/gm/dirtgrassborder/weedable{ - icon_state = "grass1" - }, +/turf/open/gm/dirtgrassborder/weedable/grass1, /area/lv624/ground/barrens/south_eastern_barrens) "dK" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, @@ -170,10 +156,7 @@ /area/lv624/ground/caves/sand_temple) "dQ" = ( /obj/structure/machinery/autolathe/yautja, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/lv624/ground/caves/sand_temple/powered) "dV" = ( /obj/structure/surface/table/reinforced/prison{ @@ -215,10 +198,7 @@ dir = 4; icon_state = "p_stair_full" }, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv624/ground/caves/sand_temple) "ez" = ( /obj/structure/surface/table/reinforced/prison{ @@ -307,17 +287,11 @@ /obj/item/tool/surgery/bonegel/predatorbonegel, /obj/item/tool/surgery/bonesetter/predatorbonesetter, /obj/item/tool/surgery/surgicaldrill/predatorsurgicaldrill, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/lv624/ground/caves/sand_temple) "fQ" = ( /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/lv624/ground/caves/sand_temple) "fV" = ( /obj/structure/prop/brazier/torch, @@ -335,19 +309,14 @@ /obj/item/tank/oxygen/yellow{ pixel_x = -4 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/lv624/ground/caves/sand_temple) "gw" = ( /turf/open/gm/dirtgrassborder/south, /area/lv624/ground/caves/sand_temple) "gA" = ( /obj/structure/curtain/red, -/turf/open/shuttle{ - icon_state = "floor6" - }, +/turf/open/shuttle/red, /area/lv624/ground/caves/sand_temple) "gI" = ( /obj/structure/flora/bush/ausbushes/var3/sunnybush{ @@ -357,20 +326,14 @@ /turf/open/gm/grass/grass1, /area/lv624/ground/caves/sand_temple) "gL" = ( -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/lv624/ground/caves/sand_temple) "gS" = ( /obj/structure/surface/table/reinforced/prison{ color = "#6b675e" }, /obj/item/weapon/twohanded/yautja/spear, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/lv624/ground/caves/sand_temple) "gY" = ( /obj/structure/stairs/perspective{ @@ -381,9 +344,7 @@ /obj/structure/platform_decoration/mineral/sandstone/runed{ dir = 1 }, -/turf/open/shuttle{ - icon_state = "floor6" - }, +/turf/open/shuttle/red, /area/lv624/ground/caves/sand_temple) "gZ" = ( /obj/structure/platform_decoration/mineral/sandstone/runed{ @@ -421,16 +382,11 @@ dir = 10; icon_state = "p_stair_full" }, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv624/ground/caves/sand_temple) "hD" = ( /obj/item/weapon/yautja/knife, -/turf/open/gm/dirtgrassborder{ - icon_state = "desert2" - }, +/turf/open/gm/dirtgrassborder/desert2, /area/lv624/ground/barrens/south_eastern_barrens) "hL" = ( /obj/structure/platform/mineral/sandstone/runed, @@ -457,10 +413,7 @@ /obj/item/weapon/twohanded/yautja/glaive/damaged{ name = "damaged war glaive" }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/lv624/ground/caves/sand_temple) "iw" = ( /obj/structure/stairs/perspective{ @@ -495,10 +448,7 @@ /obj/item/clothing/shoes/yautja_flavor{ anchored = 1 }, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/lv624/ground/caves/sand_temple) "iW" = ( /obj/structure/barricade/handrail/strata{ @@ -507,20 +457,15 @@ /obj/structure/barricade/handrail/strata{ dir = 4 }, -/turf/open/gm/dirtgrassborder/weedable{ - icon_state = "grass1" - }, +/turf/open/gm/dirtgrassborder/weedable/grass1, /area/lv624/ground/barrens/south_eastern_barrens) "ja" = ( /obj/structure/surface/table/reinforced/prison{ color = "#6b675e" }, -/obj/item/restraints, +/obj/item/xeno_restraints, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/lv624/ground/caves/sand_temple) "kb" = ( /obj/effect/decal/remains/xeno, @@ -532,10 +477,7 @@ dir = 8; icon_state = "p_stair_full" }, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv624/ground/caves/sand_temple) "kO" = ( /obj/structure/blocker/forcefield/multitile_vehicles, @@ -687,10 +629,7 @@ /obj/item/tool/surgery/hemostat/predatorhemostat, /obj/item/tool/surgery/retractor/predatorretractor, /obj/item/tool/surgery/scalpel/predatorscalpel, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/lv624/ground/caves/sand_temple) "od" = ( /obj/structure/platform/mineral/sandstone/runed{ @@ -717,10 +656,7 @@ color = "#b29082"; icon_state = "p_stair_full" }, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv624/ground/caves/sand_temple) "pu" = ( /obj/structure/stairs/perspective{ @@ -728,9 +664,7 @@ dir = 4; icon_state = "p_stair_full" }, -/turf/open/shuttle{ - icon_state = "floor6" - }, +/turf/open/shuttle/red, /area/lv624/ground/caves/sand_temple) "pX" = ( /obj/structure/stairs/perspective{ @@ -787,10 +721,7 @@ /area/lv624/ground/barrens/south_eastern_barrens) "rS" = ( /obj/structure/closet/coffin/predator, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/lv624/ground/caves/sand_temple) "rU" = ( /obj/effect/decal/remains/xeno{ @@ -816,10 +747,7 @@ dir = 6; icon_state = "p_stair_full" }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/lv624/ground/caves/sand_temple) "sM" = ( /obj/structure/platform_decoration/mineral/sandstone/runed, @@ -840,10 +768,7 @@ /obj/structure/platform/mineral/sandstone/runed{ dir = 8 }, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/lv624/ground/caves/sand_temple) "ts" = ( /obj/structure/stairs/perspective{ @@ -899,10 +824,7 @@ /obj/item/clothing/shoes/yautja_flavor{ anchored = 1 }, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/lv624/ground/caves/sand_temple) "uE" = ( /turf/open/floor/sandstone/runed, @@ -950,10 +872,7 @@ color = "#6b675e"; icon_state = "p_stair_full" }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/lv624/ground/caves/sand_temple) "wf" = ( /obj/structure/stairs/perspective{ @@ -993,19 +912,14 @@ icon_state = "yaut"; name = "alien sarcophagus" }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/lv624/ground/caves/sand_temple) "wZ" = ( /obj/effect/decal/cleanable/blood{ basecolor = "#20d450"; color = "#20d450" }, -/turf/open/gm/dirtgrassborder{ - icon_state = "desert0" - }, +/turf/open/gm/dirtgrassborder/desert0, /area/lv624/ground/barrens/south_eastern_barrens) "xx" = ( /obj/structure/platform_decoration/mineral/sandstone/runed, @@ -1153,10 +1067,7 @@ /obj/item/clothing/shoes/yautja_flavor{ anchored = 1 }, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/lv624/ground/caves/sand_temple) "BY" = ( /obj/structure/surface/table/reinforced/prison{ @@ -1182,9 +1093,7 @@ basecolor = "#20d450"; color = "#20d450" }, -/turf/open/gm/dirtgrassborder{ - icon_state = "desert3" - }, +/turf/open/gm/dirtgrassborder/desert3, /area/lv624/ground/barrens/south_eastern_barrens) "Dd" = ( /obj/structure/blocker/forcefield/multitile_vehicles, @@ -1196,10 +1105,7 @@ dir = 1; icon_state = "p_stair_full" }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/lv624/ground/caves/sand_temple) "DG" = ( /obj/structure/barricade/handrail/strata{ @@ -1229,10 +1135,7 @@ /obj/item/clothing/shoes/yautja_flavor{ anchored = 1 }, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/lv624/ground/caves/sand_temple) "DX" = ( /obj/structure/stairs/perspective{ @@ -1282,22 +1185,14 @@ dir = 6; icon_state = "p_stair_full" }, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv624/ground/caves/sand_temple) "FS" = ( /obj/structure/xenoautopsy/tank/alien, -/turf/open/shuttle{ - icon_state = "floor6" - }, +/turf/open/shuttle/red, /area/lv624/ground/caves/sand_temple) "Ge" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/lv624/ground/caves/sand_temple) "Gt" = ( /obj/structure/platform/mineral/sandstone/runed{ @@ -1321,10 +1216,7 @@ /area/lv624/ground/caves/sand_temple) "He" = ( /obj/structure/curtain/red, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/lv624/ground/caves/sand_temple) "Hl" = ( /obj/structure/surface/table/reinforced/prison{ @@ -1381,9 +1273,7 @@ /obj/structure/barricade/handrail/strata{ dir = 4 }, -/turf/open/gm/dirtgrassborder/weedable{ - icon_state = "grass1" - }, +/turf/open/gm/dirtgrassborder/weedable/grass1, /area/lv624/ground/barrens/south_eastern_barrens) "IR" = ( /obj/structure/prop/brazier/torch, @@ -1397,9 +1287,7 @@ /turf/open/gm/dirtgrassborder/grassdirt_corner/south_east, /area/lv624/ground/barrens/south_eastern_barrens) "Jc" = ( -/turf/open/shuttle{ - icon_state = "floor6" - }, +/turf/open/shuttle/red, /area/lv624/ground/caves/sand_temple) "Je" = ( /obj/item/weapon/harpoon/yautja{ @@ -1436,9 +1324,7 @@ /obj/structure/platform_decoration/mineral/sandstone/runed{ dir = 4 }, -/turf/open/shuttle{ - icon_state = "floor6" - }, +/turf/open/shuttle/red, /area/lv624/ground/caves/sand_temple) "JZ" = ( /obj/structure/platform_decoration/mineral/sandstone/runed{ @@ -1468,12 +1354,6 @@ /obj/structure/surface/table/reinforced/prison{ color = "#6b675e" }, -/obj/item/XenoItem/AntiAcid{ - pixel_x = -6 - }, -/obj/item/XenoItem/AntiAcid{ - pixel_x = 4 - }, /obj/effect/landmark/objective_landmark/close, /turf/open/floor/sandstone/runed, /area/lv624/ground/caves/sand_temple) @@ -1531,17 +1411,11 @@ /obj/item/clothing/suit/armor/yautja_flavor{ anchored = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/lv624/ground/caves/sand_temple) "Mx" = ( /obj/structure/prop/brazier, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/lv624/ground/caves/sand_temple) "MB" = ( /obj/structure/bed/chair/comfy/black{ @@ -1564,9 +1438,7 @@ /turf/open/floor/sandstone/runed, /area/lv624/ground/caves/sand_temple) "MK" = ( -/turf/open/gm/dirtgrassborder{ - icon_state = "desert_dug" - }, +/turf/open/gm/dirtgrassborder/desert_dug, /area/lv624/ground/barrens/south_eastern_barrens) "Nt" = ( /obj/structure/stairs/perspective{ @@ -1574,10 +1446,7 @@ dir = 4; icon_state = "p_stair_full" }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/lv624/ground/caves/sand_temple) "ND" = ( /obj/structure/stairs/perspective{ @@ -1588,10 +1457,7 @@ /obj/structure/platform/mineral/sandstone/runed{ dir = 8 }, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/lv624/ground/caves/sand_temple) "Od" = ( /obj/structure/surface/table/reinforced/prison{ @@ -1603,10 +1469,7 @@ /obj/item/stack/medical/advanced/ointment/predator{ pixel_x = 5 }, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/lv624/ground/caves/sand_temple) "OC" = ( /turf/closed/wall/mineral/sandstone/runed, @@ -1616,15 +1479,11 @@ /obj/structure/barricade/handrail/strata{ dir = 8 }, -/turf/open/gm/dirtgrassborder/weedable{ - icon_state = "grass1" - }, +/turf/open/gm/dirtgrassborder/weedable/grass1, /area/lv624/ground/barrens/south_eastern_barrens) "OP" = ( /obj/structure/barricade/handrail/strata, -/turf/open/gm/dirtgrassborder/weedable{ - icon_state = "grass1" - }, +/turf/open/gm/dirtgrassborder/weedable/grass1, /area/lv624/ground/barrens/south_eastern_barrens) "Ps" = ( /obj/structure/platform/mineral/sandstone/runed{ @@ -1658,10 +1517,7 @@ /obj/item/clothing/shoes/yautja/hunter{ anchored = 1 }, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/lv624/ground/caves/sand_temple/powered) "PO" = ( /obj/item/weapon/harpoon/yautja{ @@ -1701,10 +1557,7 @@ dir = 5; icon_state = "p_stair_full" }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/lv624/ground/caves/sand_temple) "Rh" = ( /obj/structure/prop/brazier/torch, @@ -1778,22 +1631,14 @@ pixel_y = 7 }, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/lv624/ground/caves/sand_temple/powered) "TY" = ( /obj/structure/machinery/optable, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/lv624/ground/caves/sand_temple) "UK" = ( -/turf/open/gm/dirtgrassborder{ - icon_state = "desert" - }, +/turf/open/gm/dirtgrassborder/desert, /area/lv624/ground/barrens/south_eastern_barrens) "UP" = ( /obj/structure/stairs/perspective{ @@ -1803,9 +1648,7 @@ /area/lv624/ground/caves/sand_temple) "UU" = ( /obj/structure/xenoautopsy/tank/broken, -/turf/open/shuttle{ - icon_state = "floor6" - }, +/turf/open/shuttle/red, /area/lv624/ground/caves/sand_temple) "UX" = ( /obj/structure/surface/table/reinforced/prison{ @@ -1828,10 +1671,7 @@ /obj/structure/bed/chair/comfy/black{ dir = 1 }, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/lv624/ground/caves/sand_temple) "Ws" = ( /obj/structure/barricade/handrail/strata{ @@ -1840,9 +1680,7 @@ /obj/structure/barricade/handrail/strata{ dir = 8 }, -/turf/open/gm/dirtgrassborder/weedable{ - icon_state = "grass1" - }, +/turf/open/gm/dirtgrassborder/weedable/grass1, /area/lv624/ground/barrens/south_eastern_barrens) "Wv" = ( /obj/structure/surface/table/reinforced/prison{ @@ -1894,10 +1732,7 @@ /obj/item/clothing/shoes/yautja_flavor{ anchored = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/lv624/ground/caves/sand_temple) "YT" = ( /obj/structure/stairs/perspective{ @@ -1922,9 +1757,7 @@ /turf/open/floor/sandstone/runed, /area/lv624/ground/barrens/south_eastern_barrens) "ZG" = ( -/turf/open/gm/dirtgrassborder{ - icon_state = "desert1" - }, +/turf/open/gm/dirtgrassborder/desert1, /area/lv624/ground/barrens/south_eastern_barrens) "ZX" = ( /turf/template_noop, diff --git a/maps/map_files/LV624/maintemple/2.flooded.dmm b/maps/map_files/LV624/maintemple/2.flooded.dmm index 8643676807fc..725a5b22aa13 100644 --- a/maps/map_files/LV624/maintemple/2.flooded.dmm +++ b/maps/map_files/LV624/maintemple/2.flooded.dmm @@ -59,10 +59,7 @@ dir = 8; icon_state = "p_stair_full" }, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv624/ground/caves/sand_temple) "bP" = ( /obj/structure/flora/jungle/vines/light_3, @@ -87,10 +84,7 @@ /obj/structure/platform_decoration/mineral/sandstone/runed{ dir = 1 }, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv624/ground/barrens/south_eastern_barrens) "dA" = ( /obj/structure/flora/jungle/vines/heavy, @@ -131,9 +125,7 @@ /obj/structure/barricade/handrail/strata{ dir = 1 }, -/turf/open/gm/dirtgrassborder/weedable{ - icon_state = "grass1" - }, +/turf/open/gm/dirtgrassborder/weedable/grass1, /area/lv624/ground/barrens/south_eastern_barrens) "dK" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, @@ -214,9 +206,7 @@ /area/lv624/ground/caves/sand_temple) "gA" = ( /obj/structure/curtain/red, -/turf/open/shuttle{ - icon_state = "floor6" - }, +/turf/open/shuttle/red, /area/lv624/ground/caves/sand_temple) "gI" = ( /obj/structure/flora/bush/ausbushes/var3/sunnybush{ @@ -226,10 +216,7 @@ /turf/open/gm/grass/grass1, /area/lv624/ground/caves/sand_temple) "gL" = ( -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/lv624/ground/caves/sand_temple) "gS" = ( /obj/structure/platform/mineral/sandstone/runed{ @@ -246,9 +233,7 @@ /obj/structure/platform_decoration/mineral/sandstone/runed{ dir = 1 }, -/turf/open/shuttle{ - icon_state = "floor6" - }, +/turf/open/shuttle/red, /area/lv624/ground/caves/sand_temple) "gZ" = ( /obj/structure/platform_decoration/mineral/sandstone/runed{ @@ -267,9 +252,7 @@ /turf/open/gm/coast/beachcorner/south_west, /area/lv624/ground/caves/sand_temple) "hD" = ( -/turf/open/gm/dirtgrassborder{ - icon_state = "desert2" - }, +/turf/open/gm/dirtgrassborder/desert2, /area/lv624/ground/barrens/south_eastern_barrens) "hO" = ( /obj/structure/bed/chair/comfy/black{ @@ -291,10 +274,7 @@ /obj/item/weapon/twohanded/yautja/glaive/damaged{ name = "damaged war glaive" }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/lv624/ground/caves/sand_temple) "iw" = ( /obj/structure/stairs/perspective{ @@ -305,10 +285,7 @@ /obj/structure/platform_decoration/mineral/sandstone/runed{ dir = 8 }, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv624/ground/barrens/south_eastern_barrens) "iM" = ( /obj/structure/flora/jungle/vines/heavy, @@ -325,9 +302,7 @@ /obj/structure/barricade/handrail/strata{ dir = 4 }, -/turf/open/gm/dirtgrassborder/weedable{ - icon_state = "grass1" - }, +/turf/open/gm/dirtgrassborder/weedable/grass1, /area/lv624/ground/barrens/south_eastern_barrens) "ja" = ( /obj/structure/flora/jungle/vines/light_3, @@ -428,10 +403,7 @@ /area/lv624/ground/caves/sand_temple) "mF" = ( /obj/structure/closet/coffin/predator, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/lv624/ground/caves/sand_temple) "mI" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, @@ -491,10 +463,7 @@ /area/lv624/ground/caves/sand_temple) "ow" = ( /obj/structure/flora/jungle/vines/heavy, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/lv624/ground/caves/sand_temple) "oC" = ( /obj/structure/platform/mineral/sandstone/runed{ @@ -519,9 +488,7 @@ dir = 4; icon_state = "p_stair_full" }, -/turf/open/shuttle{ - icon_state = "floor6" - }, +/turf/open/shuttle/red, /area/lv624/ground/caves/sand_temple) "py" = ( /obj/structure/platform/mineral/sandstone/runed{ @@ -544,10 +511,7 @@ /obj/structure/platform_decoration/mineral/sandstone/runed{ dir = 4 }, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv624/ground/barrens/south_eastern_barrens) "qf" = ( /obj/structure/platform/mineral/sandstone/runed{ @@ -593,10 +557,7 @@ /area/lv624/ground/barrens/south_eastern_barrens) "rL" = ( /obj/structure/flora/jungle/vines/heavy, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/lv624/ground/caves/sand_temple) "rU" = ( /obj/effect/decal/remains/xeno{ @@ -610,10 +571,7 @@ dir = 6; icon_state = "p_stair_full" }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/lv624/ground/caves/sand_temple) "sM" = ( /obj/structure/platform_decoration/mineral/sandstone/runed, @@ -631,10 +589,7 @@ /obj/structure/platform/mineral/sandstone/runed{ dir = 8 }, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/lv624/ground/caves/sand_temple) "tn" = ( /obj/structure/surface/table/reinforced/prison{ @@ -673,10 +628,7 @@ name = "alien sarcophagus" }, /obj/structure/flora/jungle/vines/heavy, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/lv624/ground/caves/sand_temple) "uy" = ( /obj/structure/showcase{ @@ -697,10 +649,7 @@ /obj/item/clothing/shoes/yautja_flavor{ anchored = 1 }, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/lv624/ground/caves/sand_temple) "uE" = ( /turf/open/floor/sandstone/runed, @@ -727,10 +676,7 @@ icon_state = "p_stair_full" }, /obj/structure/platform_decoration/mineral/sandstone/runed, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv624/ground/barrens/south_eastern_barrens) "vl" = ( /obj/item/tool/kitchen/utensil/spoon, @@ -765,10 +711,7 @@ color = "#6b675e"; icon_state = "p_stair_full" }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/lv624/ground/caves/sand_temple) "wf" = ( /obj/structure/stairs/perspective{ @@ -838,18 +781,13 @@ icon_state = "yaut"; name = "alien sarcophagus" }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/lv624/ground/caves/sand_temple) "wU" = ( /turf/open/gm/coast/beachcorner/north_west, /area/lv624/ground/caves/sand_temple) "wZ" = ( -/turf/open/gm/dirtgrassborder{ - icon_state = "desert0" - }, +/turf/open/gm/dirtgrassborder/desert0, /area/lv624/ground/barrens/south_eastern_barrens) "xp" = ( /turf/open/gm/coast/beachcorner/south_west, @@ -1027,10 +965,7 @@ /obj/item/clothing/suit/armor/yautja_flavor{ anchored = 1 }, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/lv624/ground/caves/sand_temple) "Ci" = ( /obj/structure/platform_decoration/mineral/sandstone/runed{ @@ -1050,9 +985,7 @@ /turf/open/gm/dirt, /area/lv624/ground/barrens/south_eastern_barrens) "Cr" = ( -/turf/open/gm/dirtgrassborder{ - icon_state = "desert3" - }, +/turf/open/gm/dirtgrassborder/desert3, /area/lv624/ground/barrens/south_eastern_barrens) "Dg" = ( /obj/structure/stairs/perspective{ @@ -1060,10 +993,7 @@ dir = 1; icon_state = "p_stair_full" }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/lv624/ground/caves/sand_temple) "Dj" = ( /turf/open/gm/coast/beachcorner2/south_west, @@ -1107,10 +1037,7 @@ /obj/item/clothing/mask/yautja_flavor/map_random{ anchored = 1 }, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/lv624/ground/caves/sand_temple) "DZ" = ( /obj/effect/landmark/lv624/fog_blocker, @@ -1131,10 +1058,7 @@ dir = 4; health = 80 }, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv624/ground/caves/sand_temple) "Es" = ( /obj/structure/flora/jungle/vines/light_3, @@ -1149,10 +1073,7 @@ /area/lv624/ground/caves/sand_temple) "EL" = ( /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/lv624/ground/caves/sand_temple) "EM" = ( /obj/structure/showcase{ @@ -1183,10 +1104,7 @@ /obj/item/clothing/shoes/yautja_flavor{ anchored = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/lv624/ground/caves/sand_temple) "Ff" = ( /obj/item/weapon/twohanded/yautja/spear, @@ -1216,10 +1134,7 @@ /turf/open/gm/dirtgrassborder/grassdirt_corner/south_east, /area/lv624/ground/caves/sand_temple) "Ge" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/lv624/ground/caves/sand_temple) "Gt" = ( /obj/structure/platform/mineral/sandstone/runed{ @@ -1252,10 +1167,7 @@ /area/lv624/ground/caves/sand_temple) "He" = ( /obj/structure/curtain/red, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/lv624/ground/caves/sand_temple) "Hk" = ( /obj/structure/flora/jungle/vines/heavy, @@ -1331,9 +1243,7 @@ /obj/structure/barricade/handrail/strata{ dir = 4 }, -/turf/open/gm/dirtgrassborder/weedable{ - icon_state = "grass1" - }, +/turf/open/gm/dirtgrassborder/weedable/grass1, /area/lv624/ground/barrens/south_eastern_barrens) "IZ" = ( /obj/structure/barricade/handrail/strata{ @@ -1343,9 +1253,7 @@ /turf/open/gm/dirtgrassborder/grassdirt_corner/south_east, /area/lv624/ground/barrens/south_eastern_barrens) "Jc" = ( -/turf/open/shuttle{ - icon_state = "floor6" - }, +/turf/open/shuttle/red, /area/lv624/ground/caves/sand_temple) "Je" = ( /obj/item/weapon/harpoon/yautja{ @@ -1398,9 +1306,7 @@ /obj/structure/platform_decoration/mineral/sandstone/runed{ dir = 4 }, -/turf/open/shuttle{ - icon_state = "floor6" - }, +/turf/open/shuttle/red, /area/lv624/ground/caves/sand_temple) "JN" = ( /obj/structure/showcase{ @@ -1417,10 +1323,7 @@ /obj/item/clothing/shoes/yautja_flavor{ anchored = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/lv624/ground/caves/sand_temple) "JZ" = ( /obj/structure/platform_decoration/mineral/sandstone/runed{ @@ -1457,10 +1360,7 @@ desc = "A bizarre alien device used for trapping and killing prey."; name = "Alien Mine" }, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv624/ground/caves/sand_temple) "KL" = ( /turf/open/gm/dirtgrassborder/east, @@ -1526,10 +1426,7 @@ /obj/item/clothing/shoes/yautja_flavor{ anchored = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/lv624/ground/caves/sand_temple) "Mq" = ( /obj/structure/prop/brazier/torch, @@ -1542,9 +1439,7 @@ /turf/open/gm/coast/beachcorner/north_east, /area/lv624/ground/barrens/south_eastern_barrens) "MK" = ( -/turf/open/gm/dirtgrassborder{ - icon_state = "desert_dug" - }, +/turf/open/gm/dirtgrassborder/desert_dug, /area/lv624/ground/barrens/south_eastern_barrens) "MX" = ( /obj/structure/flora/jungle/vines/light_3, @@ -1556,10 +1451,7 @@ dir = 4; icon_state = "p_stair_full" }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/lv624/ground/caves/sand_temple) "ND" = ( /obj/structure/stairs/perspective{ @@ -1571,10 +1463,7 @@ /obj/structure/platform/mineral/sandstone/runed{ dir = 8 }, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/lv624/ground/caves/sand_temple) "OC" = ( /turf/closed/wall/mineral/sandstone/runed, @@ -1584,15 +1473,11 @@ /obj/structure/barricade/handrail/strata{ dir = 8 }, -/turf/open/gm/dirtgrassborder/weedable{ - icon_state = "grass1" - }, +/turf/open/gm/dirtgrassborder/weedable/grass1, /area/lv624/ground/barrens/south_eastern_barrens) "OP" = ( /obj/structure/barricade/handrail/strata, -/turf/open/gm/dirtgrassborder/weedable{ - icon_state = "grass1" - }, +/turf/open/gm/dirtgrassborder/weedable/grass1, /area/lv624/ground/barrens/south_eastern_barrens) "OR" = ( /obj/structure/blocker/forcefield/multitile_vehicles, @@ -1669,10 +1554,7 @@ dir = 5; icon_state = "p_stair_full" }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/lv624/ground/caves/sand_temple) "QX" = ( /obj/structure/bed/chair/comfy/black{ @@ -1710,10 +1592,7 @@ icon_state = "p_stair_full" }, /obj/structure/flora/jungle/vines/heavy, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/lv624/ground/caves/sand_temple) "SK" = ( /obj/structure/platform_decoration/mineral/sandstone/runed{ @@ -1770,9 +1649,7 @@ /turf/open/gm/dirtgrassborder/grassdirt_corner2/north_west, /area/lv624/ground/caves/sand_temple) "UK" = ( -/turf/open/gm/dirtgrassborder{ - icon_state = "desert" - }, +/turf/open/gm/dirtgrassborder/desert, /area/lv624/ground/barrens/south_eastern_barrens) "UQ" = ( /obj/structure/platform_decoration/mineral/sandstone/runed, @@ -1801,9 +1678,7 @@ /obj/structure/barricade/handrail/strata{ dir = 8 }, -/turf/open/gm/dirtgrassborder/weedable{ - icon_state = "grass1" - }, +/turf/open/gm/dirtgrassborder/weedable/grass1, /area/lv624/ground/barrens/south_eastern_barrens) "Wv" = ( /obj/item/reagent_container/food/snacks/stew, @@ -1824,10 +1699,7 @@ /area/lv624/ground/barrens/south_eastern_barrens) "Xr" = ( /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/lv624/ground/caves/sand_temple) "XQ" = ( /obj/structure/surface/table/reinforced/prison{ @@ -1871,10 +1743,7 @@ /obj/item/clothing/mask/yautja_flavor/map_random{ anchored = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/lv624/ground/caves/sand_temple) "YT" = ( /obj/structure/stairs/perspective{ @@ -1898,9 +1767,7 @@ /turf/open/floor/sandstone/runed, /area/lv624/ground/barrens/south_eastern_barrens) "ZG" = ( -/turf/open/gm/dirtgrassborder{ - icon_state = "desert1" - }, +/turf/open/gm/dirtgrassborder/desert1, /area/lv624/ground/barrens/south_eastern_barrens) "ZX" = ( /turf/template_noop, diff --git a/maps/map_files/LV624/medbay/10.destroyed.dmm b/maps/map_files/LV624/medbay/10.destroyed.dmm index 88e17a3aeee0..a676d0ff68bd 100644 --- a/maps/map_files/LV624/medbay/10.destroyed.dmm +++ b/maps/map_files/LV624/medbay/10.destroyed.dmm @@ -1,62 +1,42 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE "am" = ( /obj/item/stack/sheet/metal, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3, /area/lv624/lazarus/medbay) "aw" = ( /obj/item/clothing/under/colonist, /obj/effect/decal/cleanable/blood/drip, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/lv624/lazarus/medbay) "aO" = ( /obj/structure/barricade/wooden, -/turf/open/floor{ - dir = 8; - icon_state = "damaged3" - }, +/turf/open/floor/damaged3/west, /area/lv624/lazarus/medbay) "bk" = ( /obj/structure/machinery/medical_pod/sleeper, -/turf/open/floor{ - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull, /area/lv624/lazarus/medbay) "cQ" = ( /obj/structure/machinery/sleep_console, /obj/structure/extinguisher_cabinet{ pixel_y = 30 }, -/turf/open/floor{ - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull, /area/lv624/lazarus/medbay) "fX" = ( -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, +/turf/open/floor/plating/panelscorched, /area/lv624/lazarus/medbay) "gp" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_10" }, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3, /area/lv624/lazarus/medbay) "hW" = ( -/obj/structure/machinery/power/apc{ - dir = 1; - name = "Medbay APC"; - pixel_y = 30; - start_charge = 0 - }, -/turf/open/floor{ - icon_state = "white" +/obj/structure/machinery/power/apc/nocharge{ + dir = 1 }, +/turf/open/floor/white, /area/lv624/lazarus/medbay) "ih" = ( /obj/structure/machinery/medical_pod/bodyscanner, @@ -66,36 +46,26 @@ name = "General Listening Channel"; pixel_y = 28 }, -/turf/open/floor{ - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull, /area/lv624/lazarus/medbay) "iq" = ( /obj/item/reagent_container/food/drinks/cans/waterbottle{ pixel_x = 2 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/medbay) "it" = ( /obj/item/storage/firstaid, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/medbay) "jg" = ( /obj/structure/machinery/body_scanconsole, -/turf/open/floor{ - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull, /area/lv624/lazarus/medbay) "jW" = ( /obj/item/storage/firstaid/toxin, /obj/structure/barricade/wooden, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/medbay) "jY" = ( /obj/structure/flora/jungle/planttop1, @@ -110,9 +80,7 @@ /obj/item/clothing/glasses/hud/health, /obj/effect/landmark/crap_item, /obj/item/reagent_container/spray/cleaner, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/medbay) "kD" = ( /obj/structure/flora/jungle/planttop1, @@ -120,9 +88,7 @@ /area/lv624/ground/colony/south_medbay_road) "lk" = ( /obj/structure/machinery/cm_vending/sorted/medical/no_access, -/turf/open/floor{ - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull, /area/lv624/lazarus/medbay) "lD" = ( /obj/structure/surface/table, @@ -133,15 +99,11 @@ phone_category = "Lazarus Landing"; phone_id = "Medbay" }, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3, /area/lv624/lazarus/medbay) "mz" = ( /obj/structure/machinery/light, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3, /area/lv624/lazarus/medbay) "mS" = ( /obj/item/device/radio/intercom{ @@ -150,15 +112,10 @@ name = "General Listening Channel"; pixel_y = 28 }, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3, /area/lv624/lazarus/medbay) "nz" = ( -/turf/open/floor{ - dir = 4; - icon_state = "whitebluecorner" - }, +/turf/open/floor/whitebluecorner/east, /area/lv624/lazarus/medbay) "nG" = ( /obj/structure/fence, @@ -168,16 +125,11 @@ /turf/open/gm/dirt, /area/lv624/ground/colony/south_medbay_road) "ok" = ( -/turf/open/floor{ - dir = 1; - icon_state = "whiteblue" - }, +/turf/open/floor/whiteblue/north, /area/lv624/lazarus/medbay) "ot" = ( /obj/effect/decal/cleanable/blood/drip, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, +/turf/open/floor/plating/panelscorched, /area/lv624/lazarus/medbay) "pp" = ( /obj/structure/closet/wardrobe, @@ -185,9 +137,7 @@ dir = 8 }, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3, /area/lv624/lazarus/medbay) "qe" = ( /obj/structure/surface/table, @@ -198,15 +148,11 @@ pixel_x = 5; pixel_y = 4 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/medbay) "rL" = ( /obj/effect/landmark/crap_item, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3, /area/lv624/lazarus/medbay) "rZ" = ( /obj/structure/flora/bush/ausbushes/var3/fernybush, @@ -220,22 +166,14 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - dir = 5; - icon_state = "whiteblue" - }, +/turf/open/floor/whiteblue/northeast, /area/lv624/lazarus/medbay) "uV" = ( -/turf/open/floor{ - dir = 8; - icon_state = "damaged3" - }, +/turf/open/floor/damaged3/west, /area/lv624/lazarus/medbay) "vm" = ( /obj/effect/decal/cleanable/blood/drip, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/lv624/lazarus/medbay) "xe" = ( /obj/structure/fence, @@ -248,9 +186,7 @@ desc = "Someone has crossed out the Space from Space Cleaner and written in Surgery. 'Do not remove under punishment of death!!!' is scrawled on the back."; name = "Surgery Cleaner" }, -/turf/open/floor{ - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull, /area/lv624/lazarus/medbay) "xM" = ( /turf/open/gm/dirtgrassborder/north, @@ -269,32 +205,23 @@ /area/lv624/ground/colony/south_medbay_road) "zl" = ( /obj/item/reagent_container/hypospray, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/medbay) "zy" = ( /obj/item/stack/sheet/metal, /obj/effect/decal/cleanable/blood/drip, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3, /area/lv624/lazarus/medbay) "zD" = ( /obj/structure/surface/table, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3, /area/lv624/lazarus/medbay) "zL" = ( /obj/effect/landmark/corpsespawner/doctor, /obj/effect/decal/cleanable/blood, /obj/item/weapon/gun/pistol/holdout, -/turf/open/floor{ - dir = 4; - icon_state = "whiteblue" - }, +/turf/open/floor/whiteblue/east, /area/lv624/lazarus/medbay) "zS" = ( /obj/structure/flora/bush/ausbushes/lavendergrass, @@ -310,44 +237,30 @@ "BL" = ( /obj/structure/window_frame/colony, /obj/item/shard, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3, /area/lv624/lazarus/medbay) "Cq" = ( /obj/structure/machinery/optable, /obj/item/tank/anesthetic, -/turf/open/floor{ - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull, /area/lv624/lazarus/medbay) "Df" = ( /obj/item/stack/sheet/metal, /obj/effect/decal/cleanable/blood, /obj/effect/landmark/corpsespawner/engineer, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3, /area/lv624/lazarus/medbay) "Dk" = ( /obj/effect/landmark/crap_item, /obj/effect/decal/cleanable/blood, -/turf/open/floor{ - dir = 8; - icon_state = "damaged5" - }, +/turf/open/floor/damaged5/west, /area/lv624/lazarus/medbay) "Ed" = ( -/turf/open/floor{ - dir = 8; - icon_state = "damaged5" - }, +/turf/open/floor/damaged5/west, /area/lv624/lazarus/medbay) "EZ" = ( /obj/structure/girder, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/lv624/lazarus/medbay) "Fk" = ( /turf/closed/wall, @@ -358,16 +271,12 @@ pixel_x = 3; pixel_y = 3 }, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3, /area/lv624/lazarus/medbay) "Gh" = ( /obj/effect/landmark/crap_item, /obj/structure/barricade/wooden, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/medbay) "Ha" = ( /obj/structure/flora/bush/ausbushes/var3/fernybush, @@ -375,29 +284,20 @@ /area/lv624/ground/jungle/north_jungle) "Il" = ( /obj/structure/machinery/bioprinter, -/turf/open/floor{ - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull, /area/lv624/lazarus/medbay) "Iy" = ( /obj/structure/barricade/wooden, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/medbay) "IO" = ( /obj/structure/machinery/iv_drip, /obj/structure/barricade/wooden, -/turf/open/floor{ - dir = 6; - icon_state = "whiteblue" - }, +/turf/open/floor/whiteblue/southeast, /area/lv624/lazarus/medbay) "Jc" = ( /obj/structure/girder, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3, /area/lv624/lazarus/medbay) "JE" = ( /turf/open/gm/grass/grass1, @@ -407,22 +307,15 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3, /area/lv624/lazarus/medbay) "JO" = ( /obj/effect/landmark/crap_item, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, +/turf/open/floor/plating/panelscorched, /area/lv624/lazarus/medbay) "JY" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor{ - dir = 8; - icon_state = "damaged5" - }, +/turf/open/floor/damaged5/west, /area/lv624/lazarus/medbay) "Km" = ( /obj/structure/flora/bush/ausbushes/reedbush, @@ -432,15 +325,11 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/lv624/lazarus/medbay) "LX" = ( /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/medbay) "MT" = ( /obj/item/device/radio/intercom{ @@ -449,24 +338,18 @@ name = "General Listening Channel"; pixel_y = 28 }, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/lv624/lazarus/medbay) "MW" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_10" }, -/turf/open/floor{ - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull, /area/lv624/lazarus/medbay) "Ny" = ( /obj/structure/window_frame/colony, /obj/item/shard, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/medbay) "NO" = ( /obj/structure/surface/table, @@ -480,9 +363,7 @@ }, /obj/item/storage/belt/medical/full, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/medbay) "Os" = ( /obj/structure/surface/table, @@ -490,117 +371,83 @@ pixel_y = 4 }, /obj/item/tool/pen, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3, /area/lv624/lazarus/medbay) "OK" = ( /obj/structure/window_frame/colony, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3, /area/lv624/lazarus/medbay) "OO" = ( /obj/item/tool/kitchen/utensil/fork, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/lv624/lazarus/medbay) "Pd" = ( /obj/item/trash/cigbutt, /turf/open/gm/dirt, /area/lv624/ground/colony/south_medbay_road) "Pk" = ( -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3, /area/lv624/lazarus/medbay) "Px" = ( /obj/structure/surface/table, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3, /area/lv624/lazarus/medbay) "PE" = ( /obj/structure/filingcabinet, /obj/structure/machinery/light, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor{ - dir = 8; - icon_state = "damaged5" - }, +/turf/open/floor/damaged5/west, /area/lv624/lazarus/medbay) "Qd" = ( /turf/open/floor, /area/lv624/lazarus/medbay) "QR" = ( -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/lv624/lazarus/medbay) "RO" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/medidoor/colony{ dir = 2; name = "\improper Medical Bay" }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/medbay) "RT" = ( /obj/structure/bed/chair/office/dark{ dir = 4 }, -/turf/open/floor{ - dir = 8; - icon_state = "damaged5" - }, +/turf/open/floor/damaged5/west, /area/lv624/lazarus/medbay) "Sz" = ( /obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/medbay) "TC" = ( /obj/structure/surface/table, /obj/item/reagent_container/spray, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3, /area/lv624/lazarus/medbay) "Ul" = ( /obj/effect/decal/cleanable/blood, /obj/effect/landmark/corpsespawner/doctor, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3, /area/lv624/lazarus/medbay) "Uq" = ( /obj/effect/decal/cleanable/blood/drip, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3, /area/lv624/lazarus/medbay) "UG" = ( /obj/effect/landmark/corpsespawner/doctor, /obj/effect/decal/cleanable/blood, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/medbay) "UH" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/medidoor/colony, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/medbay) "Xv" = ( /obj/effect/landmark/crap_item, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/medbay) "XA" = ( /turf/open/gm/grass/grass1, @@ -609,14 +456,10 @@ /turf/closed/wall/r_wall, /area/lv624/lazarus/medbay) "YJ" = ( -/turf/open/floor{ - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull, /area/lv624/lazarus/medbay) "YV" = ( -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/medbay) (1,1,1) = {" diff --git a/maps/map_files/LV624/medbay/30.larvasurgery.dmm b/maps/map_files/LV624/medbay/30.larvasurgery.dmm index b67b5e7bf1c5..f03f922bf828 100644 --- a/maps/map_files/LV624/medbay/30.larvasurgery.dmm +++ b/maps/map_files/LV624/medbay/30.larvasurgery.dmm @@ -14,18 +14,14 @@ /area/lv624/ground/jungle/north_jungle) "ai" = ( /obj/structure/machinery/medical_pod/sleeper, -/turf/open/floor{ - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull, /area/lv624/lazarus/medbay) "aj" = ( /obj/structure/machinery/sleep_console, /obj/structure/extinguisher_cabinet{ pixel_y = 30 }, -/turf/open/floor{ - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull, /area/lv624/lazarus/medbay) "al" = ( /obj/structure/flora/jungle/planttop1, @@ -36,9 +32,7 @@ /obj/item/clothing/glasses/hud/health, /obj/effect/landmark/crap_item, /obj/item/reagent_container/spray/cleaner, -/turf/open/floor{ - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull, /area/lv624/lazarus/medbay) "ao" = ( /obj/structure/surface/table, @@ -52,10 +46,7 @@ }, /obj/item/storage/belt/medical/full, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - dir = 1; - icon_state = "whiteblue" - }, +/turf/open/floor/whiteblue/north, /area/lv624/lazarus/medbay) "ap" = ( /obj/structure/machinery/medical_pod/bodyscanner, @@ -65,20 +56,13 @@ name = "General Listening Channel"; pixel_y = 28 }, -/turf/open/floor{ - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull, /area/lv624/lazarus/medbay) "aq" = ( -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/medbay) "ar" = ( -/turf/open/floor{ - dir = 1; - icon_state = "whiteblue" - }, +/turf/open/floor/whiteblue/north, /area/lv624/lazarus/medbay) "as" = ( /obj/structure/machinery/light{ @@ -86,83 +70,58 @@ }, /obj/effect/decal/cleanable/blood, /obj/item/storage/surgical_tray, -/turf/open/floor{ - dir = 5; - icon_state = "whiteblue" - }, +/turf/open/floor/whiteblue/northeast, /area/lv624/lazarus/medbay) "at" = ( /obj/structure/surface/table/reinforced, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor{ - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull, /area/lv624/lazarus/medbay) "au" = ( /obj/structure/flora/jungle/plantbot1, /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/north_jungle) "av" = ( -/turf/open/floor{ - dir = 8; - icon_state = "whiteblue" - }, +/turf/open/floor/whiteblue/west, /area/lv624/lazarus/medbay) "aw" = ( /obj/item/reagent_container/hypospray, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/medbay) "az" = ( /obj/effect/landmark/crap_item, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/medbay) "aA" = ( /obj/effect/decal/cleanable/blood/drip, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/medbay) "aB" = ( /obj/item/reagent_container/spray/cleaner{ desc = "Someone has crossed out the Space from Space Cleaner and written in Surgery. 'Do not remove under punishment of death!!!' is scrawled on the back."; name = "Surgery Cleaner" }, -/turf/open/floor{ - dir = 4; - icon_state = "whiteblue" - }, +/turf/open/floor/whiteblue/east, /area/lv624/lazarus/medbay) "aC" = ( /obj/structure/machinery/optable, /obj/item/tank/anesthetic, /obj/effect/decal/cleanable/blood, /obj/effect/landmark/corpsespawner/scientist, -/turf/open/floor{ - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull, /area/lv624/lazarus/medbay) "aI" = ( /obj/structure/machinery/cm_vending/sorted/medical/no_access, -/turf/open/floor{ - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull, /area/lv624/lazarus/medbay) "aJ" = ( /obj/structure/machinery/bioprinter, -/turf/open/floor{ - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull, /area/lv624/lazarus/medbay) "aO" = ( /obj/structure/bed, /obj/item/bedsheet/medical, -/turf/open/floor{ - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull, /area/lv624/lazarus/medbay) "aP" = ( /obj/item/device/radio/intercom{ @@ -171,97 +130,65 @@ name = "General Listening Channel"; pixel_y = 28 }, -/turf/open/floor{ - dir = 1; - icon_state = "whiteblue" - }, +/turf/open/floor/whiteblue/north, /area/lv624/lazarus/medbay) "aU" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - dir = 1; - icon_state = "whiteblue" - }, +/turf/open/floor/whiteblue/north, /area/lv624/lazarus/medbay) "aX" = ( /turf/open/floor, /area/lv624/lazarus/medbay) "aY" = ( /obj/item/clothing/under/colonist, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/medbay) "bb" = ( /obj/structure/machinery/vending/coffee, -/turf/open/floor{ - dir = 1; - icon_state = "whiteblue" - }, +/turf/open/floor/whiteblue/north, /area/lv624/lazarus/medbay) "bc" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/medidoor/colony{ dir = 2; name = "\improper Medical Bay" }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/medbay) "bg" = ( -/turf/open/floor{ - icon_state = "whitebluecorner" - }, +/turf/open/floor/whitebluecorner, /area/lv624/lazarus/medbay) "bi" = ( /obj/effect/decal/cleanable/blood/drip, -/turf/open/floor{ - dir = 1; - icon_state = "whitebluecorner" - }, +/turf/open/floor/whitebluecorner/north, /area/lv624/lazarus/medbay) "bk" = ( /obj/structure/machinery/vending/snack, -/turf/open/floor{ - dir = 1; - icon_state = "whiteblue" - }, +/turf/open/floor/whiteblue/north, /area/lv624/lazarus/medbay) "bo" = ( /obj/structure/window_frame/colony, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/medbay) "bp" = ( /obj/structure/machinery/cm_vending/sorted/medical/blood, /obj/structure/machinery/light, -/turf/open/floor{ - icon_state = "whiteblue" - }, +/turf/open/floor/whiteblue, /area/lv624/lazarus/medbay) "bq" = ( /obj/structure/bed, /obj/effect/decal/cleanable/blood, /obj/effect/landmark/corpsespawner/engineer, -/turf/open/floor{ - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull, /area/lv624/lazarus/medbay) "bs" = ( /obj/item/tool/kitchen/utensil/fork, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/medbay) "bu" = ( /obj/item/tool/crowbar, -/turf/open/floor{ - dir = 1; - icon_state = "whiteblue" - }, +/turf/open/floor/whiteblue/north, /area/lv624/lazarus/medbay) "bw" = ( /obj/structure/fence, @@ -269,16 +196,12 @@ /area/lv624/ground/colony/south_medbay_road) "bx" = ( /obj/item/trash/plate, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/medbay) "by" = ( /obj/effect/landmark/corpsespawner/doctor, /obj/effect/decal/cleanable/blood, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/medbay) "bA" = ( /obj/structure/surface/table, @@ -286,16 +209,11 @@ pixel_y = 4 }, /obj/item/tool/pen, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/medbay) "bB" = ( /obj/effect/landmark/crap_item, -/turf/open/floor{ - dir = 8; - icon_state = "whitebluecorner" - }, +/turf/open/floor/whitebluecorner/west, /area/lv624/lazarus/medbay) "bE" = ( /obj/structure/fence, @@ -314,95 +232,64 @@ /area/lv624/ground/colony/south_medbay_road) "bN" = ( /obj/effect/decal/cleanable/blood/xeno, -/turf/open/floor{ - dir = 10; - icon_state = "whiteblue" - }, +/turf/open/floor/whiteblue/southwest, /area/lv624/lazarus/medbay) "io" = ( /obj/item/stack/medical/ointment, /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - dir = 1; - icon_state = "whiteblue" - }, +/turf/open/floor/whiteblue/north, /area/lv624/lazarus/medbay) "mA" = ( /obj/structure/window/framed/colony, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/medbay) "pc" = ( /obj/structure/bed/chair/office/dark{ dir = 4 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/medbay) "qr" = ( /obj/structure/surface/table, /obj/item/reagent_container/spray, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 8; - icon_state = "whiteblue" - }, +/turf/open/floor/whiteblue/west, /area/lv624/lazarus/medbay) "qC" = ( -/turf/open/floor{ - dir = 4; - icon_state = "whitebluecorner" - }, +/turf/open/floor/whitebluecorner/east, /area/lv624/lazarus/medbay) "qK" = ( /obj/structure/flora/bush/ausbushes/reedbush, /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/north_west_jungle) "qP" = ( -/obj/structure/machinery/power/apc{ - dir = 1; - name = "Medbay APC"; - pixel_y = 30; - start_charge = 0 - }, /obj/effect/landmark/corpsespawner/colonist/random/burst, /obj/effect/decal/cleanable/blood, -/turf/open/floor{ - dir = 1; - icon_state = "whiteblue" +/obj/structure/machinery/power/apc/nocharge{ + dir = 1 }, +/turf/open/floor/whiteblue/north, /area/lv624/lazarus/medbay) "tr" = ( /obj/item/storage/firstaid/toxin, -/turf/open/floor{ - dir = 10; - icon_state = "whiteblue" - }, +/turf/open/floor/whiteblue/southwest, /area/lv624/lazarus/medbay) "us" = ( /obj/structure/filingcabinet, /obj/structure/machinery/light, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor{ - icon_state = "whiteblue" - }, +/turf/open/floor/whiteblue, /area/lv624/lazarus/medbay) "uD" = ( /obj/item/storage/firstaid, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/medbay) "vC" = ( /obj/item/frame/table, /obj/effect/decal/cleanable/blood/xeno, -/turf/open/floor{ - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull, /area/lv624/lazarus/medbay) "we" = ( /obj/structure/flora/bush/ausbushes/lavendergrass, @@ -413,19 +300,14 @@ /turf/open/gm/dirtgrassborder/north, /area/lv624/ground/colony/south_medbay_road) "yd" = ( -/turf/open/floor{ - dir = 6; - icon_state = "whiteblue" - }, +/turf/open/floor/whiteblue/southeast, /area/lv624/lazarus/medbay) "zE" = ( /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/north_west_jungle) "zF" = ( /obj/structure/machinery/cm_vending/sorted/medical/no_access, -/turf/open/floor{ - icon_state = "whiteblue" - }, +/turf/open/floor/whiteblue, /area/lv624/lazarus/medbay) "zL" = ( /obj/structure/flora/jungle/planttop1, @@ -433,16 +315,12 @@ /area/lv624/ground/colony/south_medbay_road) "AO" = ( /obj/effect/decal/cleanable/blood/xeno, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/medbay) "CZ" = ( /obj/item/bedsheet/medical, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/medbay) "DR" = ( /obj/structure/surface/table, @@ -450,10 +328,7 @@ pixel_x = 3; pixel_y = 3 }, -/turf/open/floor{ - dir = 4; - icon_state = "whiteblue" - }, +/turf/open/floor/whiteblue/east, /area/lv624/lazarus/medbay) "En" = ( /obj/structure/surface/table, @@ -464,9 +339,7 @@ pixel_x = 5; pixel_y = 4 }, -/turf/open/floor{ - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull, /area/lv624/lazarus/medbay) "Es" = ( /obj/structure/flora/bush/ausbushes/genericbush, @@ -480,10 +353,7 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor{ - dir = 8; - icon_state = "whiteblue" - }, +/turf/open/floor/whiteblue/west, /area/lv624/lazarus/medbay) "JK" = ( /obj/structure/surface/table, @@ -492,16 +362,11 @@ pixel_x = 8; pixel_y = 6 }, -/turf/open/floor{ - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull, /area/lv624/lazarus/medbay) "Le" = ( /obj/structure/machinery/iv_drip, -/turf/open/floor{ - dir = 6; - icon_state = "whiteblue" - }, +/turf/open/floor/whiteblue/southeast, /area/lv624/lazarus/medbay) "LQ" = ( /obj/structure/flora/bush/ausbushes/var3/fernybush, @@ -523,58 +388,40 @@ phone_category = "Lazarus Landing"; phone_id = "Medbay" }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/medbay) "Qu" = ( /obj/structure/machinery/body_scanconsole, -/turf/open/floor{ - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull, /area/lv624/lazarus/medbay) "QG" = ( /obj/item/reagent_container/food/drinks/cans/waterbottle{ pixel_x = 2 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/medbay) "QQ" = ( /obj/structure/surface/table, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 8; - icon_state = "whiteblue" - }, +/turf/open/floor/whiteblue/west, /area/lv624/lazarus/medbay) "TK" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/medidoor/colony, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/medbay) "Vq" = ( /obj/structure/surface/table, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor{ - icon_state = "whiteblue" - }, +/turf/open/floor/whiteblue, /area/lv624/lazarus/medbay) "VI" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_10" }, -/turf/open/floor{ - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull, /area/lv624/lazarus/medbay) "YV" = ( -/turf/open/floor{ - dir = 8; - icon_state = "whitebluecorner" - }, +/turf/open/floor/whitebluecorner/west, /area/lv624/lazarus/medbay) (1,1,1) = {" diff --git a/maps/map_files/LV624/science/10.yautja.dmm b/maps/map_files/LV624/science/10.yautja.dmm index 04e671be3259..8b44093643e7 100644 --- a/maps/map_files/LV624/science/10.yautja.dmm +++ b/maps/map_files/LV624/science/10.yautja.dmm @@ -25,9 +25,7 @@ locked = 1; name = "\improper Research Dome" }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/research) "ae" = ( /turf/open/gm/dirt, @@ -52,21 +50,13 @@ /obj/structure/surface/table, /obj/effect/landmark/crap_item, /obj/item/weapon/yautja/combistick, -/turf/open/floor{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/northeast, /area/lv624/lazarus/research) "ak" = ( -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/research) "al" = ( -/turf/open/floor{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/northeast, /area/lv624/lazarus/research) "an" = ( /obj/structure/fence, @@ -86,10 +76,7 @@ /obj/structure/surface/table, /obj/item/reagent_container/hypospray/autoinjector/yautja, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/northeast, /area/lv624/lazarus/research) "aq" = ( /obj/structure/surface/table, @@ -99,10 +86,7 @@ /obj/item/tool/surgery/retractor/predatorretractor, /obj/item/tool/surgery/scalpel/predatorscalpel, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/northeast, /area/lv624/lazarus/research) "ar" = ( /turf/closed/wall, @@ -111,26 +95,17 @@ /obj/structure/surface/table, /obj/item/storage/fancy/vials/random, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/northeast, /area/lv624/lazarus/research) "at" = ( /obj/structure/surface/table, /obj/item/clipboard, /obj/item/paper/research_notes, -/turf/open/floor{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/northeast, /area/lv624/lazarus/research) "au" = ( /obj/structure/machinery/chem_master, -/turf/open/floor{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/northeast, /area/lv624/lazarus/research) "av" = ( /turf/open/gm/grass/grass1, @@ -138,45 +113,30 @@ "aw" = ( /obj/structure/machinery/optable, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/northeast, /area/lv624/lazarus/research) "ax" = ( /obj/structure/bed/chair/office/dark{ dir = 8 }, -/turf/open/floor{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/northeast, /area/lv624/lazarus/research) "ay" = ( /obj/structure/machinery/door/airlock/almayer/research/colony{ locked = 1; name = "\improper Research Dome" }, -/turf/open/floor{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/northeast, /area/lv624/lazarus/research) "az" = ( /obj/structure/machinery/smartfridge/chemistry, -/turf/open/floor{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/northeast, /area/lv624/lazarus/research) "aA" = ( /obj/structure/bed/chair/office/dark{ dir = 1 }, -/turf/open/floor{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/northeast, /area/lv624/lazarus/research) "aC" = ( /obj/structure/machinery/light{ @@ -188,34 +148,22 @@ phone_id = "Research Dome"; pixel_y = 24 }, -/turf/open/floor{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/northeast, /area/lv624/lazarus/research) "aD" = ( /obj/structure/surface/rack{ layer = 2.5 }, /obj/item/clothing/glasses/regular, -/turf/open/floor{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/northeast, /area/lv624/lazarus/research) "aE" = ( /obj/structure/machinery/light, -/turf/open/floor{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/northeast, /area/lv624/lazarus/research) "aF" = ( /obj/structure/machinery/chem_dispenser, -/turf/open/floor{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/northeast, /area/lv624/lazarus/research) "aG" = ( /obj/structure/machinery/door/airlock/almayer/research/colony{ @@ -223,10 +171,7 @@ locked = 1; name = "\improper Research Dome" }, -/turf/open/floor{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/northeast, /area/lv624/lazarus/research) "aH" = ( /obj/structure/machinery/door/airlock/almayer/research/colony{ @@ -234,9 +179,7 @@ locked = 1; name = "\improper Research Dome" }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/research) "aJ" = ( /obj/structure/machinery/light{ @@ -251,9 +194,7 @@ /obj/item/paper/research_notes, /obj/item/prop/alien/hugger, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/research) "aK" = ( /obj/structure/machinery/door_control{ @@ -261,36 +202,22 @@ name = "Science Wing Lockdown"; pixel_x = 25 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/research) "aL" = ( -/obj/structure/machinery/power/apc{ - dir = 1; - name = "Research APC"; - pixel_y = 30; - start_charge = 0 - }, /obj/structure/machinery/light/small{ dir = 1 }, /obj/structure/surface/table, /obj/item/paper/research_notes, -/turf/open/floor{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/northeast, /area/lv624/lazarus/research) "aM" = ( /obj/structure/surface/table, /obj/structure/machinery/cell_charger, /obj/item/tool/crowbar, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/northeast, /area/lv624/lazarus/research) "aN" = ( /obj/structure/machinery/door/poddoor/almayer{ @@ -303,32 +230,24 @@ locked = 1; name = "\improper Research Dome" }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/research) "aO" = ( /obj/structure/bed/chair/office/dark{ dir = 1 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/research) "aP" = ( /obj/structure/machinery/door/airlock/almayer/research/colony{ locked = 1; name = "\improper Research Dome" }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/research) "aQ" = ( /obj/item/clothing/glasses/regular, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/research) "aS" = ( /obj/structure/machinery/door/poddoor/almayer{ @@ -337,31 +256,22 @@ layer = 3.3; name = "\improper Science Wing Blast Door" }, -/turf/open/floor{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/northeast, /area/lv624/lazarus/research) "aT" = ( /obj/structure/machinery/light{ dir = 4 }, /obj/effect/landmark/crap_item, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/research) "aW" = ( /obj/structure/surface/table, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/lv624/lazarus/research) "aX" = ( -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/lv624/lazarus/research) "aY" = ( /obj/structure/machinery/shower{ @@ -370,41 +280,27 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/lv624/lazarus/research) "aZ" = ( /obj/structure/machinery/cm_vending/sorted/tech/science, -/turf/open/floor{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/northeast, /area/lv624/lazarus/research) "ba" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/northeast, /area/lv624/lazarus/research) "bb" = ( /obj/structure/surface/table, /obj/item/weapon/yautja/scythe, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/northeast, /area/lv624/lazarus/research) "bd" = ( /obj/structure/bed/chair/office/dark, -/turf/open/floor{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/northeast, /area/lv624/lazarus/research) "be" = ( /obj/structure/sink{ @@ -413,19 +309,14 @@ pixel_x = 11 }, /obj/effect/landmark/crap_item, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/lv624/lazarus/research) "bf" = ( /obj/item/storage/box/beakers, /obj/structure/surface/table, /obj/structure/sign/safety/biohazard, /obj/effect/landmark/crap_item, -/turf/open/floor{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/northeast, /area/lv624/lazarus/research) "bg" = ( /turf/open/gm/grass/grass1, @@ -437,114 +328,82 @@ /obj/structure/surface/table, /obj/item/weapon/yautja/knife, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/northeast, /area/lv624/lazarus/research) "bj" = ( /obj/structure/surface/table, /obj/item/reagent_container/hypospray/autoinjector/yautja, /obj/item/reagent_container/hypospray/autoinjector/yautja, -/turf/open/floor{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/northeast, /area/lv624/lazarus/research) "bk" = ( /obj/structure/surface/table, /obj/item/explosive/grenade/spawnergrenade/smartdisc, /obj/item/explosive/grenade/spawnergrenade/smartdisc, -/turf/open/floor{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/northeast, /area/lv624/lazarus/research) "ec" = ( /obj/effect/landmark/crap_item, -/turf/open/floor{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/northeast, /area/lv624/lazarus/research) "gd" = ( /obj/effect/landmark/crap_item, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/research) "gM" = ( /obj/structure/surface/table, /obj/item/paper/research_notes, /obj/effect/landmark/crap_item, -/turf/open/floor{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/northeast, /area/lv624/lazarus/research) "rg" = ( /obj/structure/surface/table, /obj/item/paper/research_notes, -/turf/open/floor{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/northeast, /area/lv624/lazarus/research) "vn" = ( /obj/effect/landmark/objective_landmark/science, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/lv624/lazarus/research) "zm" = ( /obj/effect/landmark/monkey_spawn, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/research) "CC" = ( /obj/effect/decal/cleanable/blood/splatter, /obj/effect/landmark/corpsespawner/scientist, -/turf/open/floor{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/northeast, /area/lv624/lazarus/research) "FO" = ( /obj/effect/landmark/crap_item, -/turf/open/floor{ - icon_state = "freezerfloor" +/turf/open/floor/freezerfloor, +/area/lv624/lazarus/research) +"Hj" = ( +/obj/effect/landmark/crap_item, +/obj/structure/machinery/power/apc/nocharge{ + dir = 1 }, +/turf/open/floor/whitepurple/northeast, /area/lv624/lazarus/research) "Lo" = ( /obj/effect/decal/cleanable/blood/splatter, /obj/effect/decal/remains/human, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/research) "LE" = ( /obj/structure/surface/table, /obj/effect/landmark/crap_item, -/turf/open/floor{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/northeast, /area/lv624/lazarus/research) "Np" = ( /obj/effect/decal/cleanable/blood/splatter, /obj/effect/landmark/corpsespawner/scientist, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/research) "Zw" = ( /obj/structure/surface/table, /obj/item/storage/fancy/vials/random, -/turf/open/floor{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/northeast, /area/lv624/lazarus/research) (1,1,1) = {" @@ -724,7 +583,7 @@ Zw al aE ab -ec +Hj ak al ab diff --git a/maps/map_files/LV624/science/40.fullylocked.dmm b/maps/map_files/LV624/science/40.fullylocked.dmm index 933de359a481..9dbf737c1b11 100644 --- a/maps/map_files/LV624/science/40.fullylocked.dmm +++ b/maps/map_files/LV624/science/40.fullylocked.dmm @@ -25,9 +25,7 @@ locked = 1; name = "\improper Research Dome" }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/research) "ae" = ( /turf/open/gm/dirt, @@ -50,22 +48,14 @@ /area/lv624/lazarus/research) "aj" = ( /obj/structure/surface/table, -/turf/open/floor{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/northeast, /area/lv624/lazarus/research) "ak" = ( -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/research) "al" = ( /obj/structure/xenoautopsy/tank/alien, -/turf/open/floor{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/northeast, /area/lv624/lazarus/research) "an" = ( /obj/structure/fence, @@ -83,41 +73,26 @@ /area/lv624/lazarus/research) "ap" = ( /obj/structure/xenoautopsy/tank/hugger, -/turf/open/floor{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/northeast, /area/lv624/lazarus/research) "aq" = ( /obj/structure/surface/table, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/northeast, /area/lv624/lazarus/research) "ar" = ( /obj/structure/machinery/chem_master, -/turf/open/floor{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/northeast, /area/lv624/lazarus/research) "as" = ( /obj/structure/machinery/optable, -/turf/open/floor{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/northeast, /area/lv624/lazarus/research) "at" = ( /obj/structure/bed/chair/office/dark{ dir = 8 }, -/turf/open/floor{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/northeast, /area/lv624/lazarus/research) "au" = ( /turf/closed/wall, @@ -126,26 +101,17 @@ /obj/structure/surface/table, /obj/item/clipboard, /obj/item/paper/research_notes, -/turf/open/floor{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/northeast, /area/lv624/lazarus/research) "aw" = ( /obj/structure/machinery/smartfridge/chemistry, -/turf/open/floor{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/northeast, /area/lv624/lazarus/research) "ax" = ( /turf/open/gm/grass/grass1, /area/lv624/ground/colony/south_medbay_road) "ay" = ( -/turf/open/floor{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/northeast, /area/lv624/lazarus/research) "az" = ( /obj/structure/machinery/door/airlock/almayer/research/colony{ @@ -153,9 +119,7 @@ locked = 1; name = "\improper Research Dome" }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/research) "aA" = ( /obj/structure/machinery/door_control{ @@ -163,37 +127,27 @@ name = "Science Wing Lockdown"; pixel_x = 25 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/research) "aB" = ( /obj/structure/machinery/door/airlock/almayer/research/colony{ locked = 1; name = "\improper Research Dome" }, -/turf/open/floor{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/northeast, /area/lv624/lazarus/research) "aC" = ( /obj/structure/machinery/door/airlock/almayer/research/colony{ locked = 1; name = "\improper Research Dome" }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/research) "aD" = ( /obj/structure/bed/chair/office/dark{ dir = 1 }, -/turf/open/floor{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/northeast, /area/lv624/lazarus/research) "aF" = ( /obj/structure/surface/table, @@ -202,20 +156,14 @@ }, /obj/structure/machinery/light, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/northeast, /area/lv624/lazarus/research) "aG" = ( /obj/structure/surface/rack{ layer = 2.5 }, /obj/item/clothing/glasses/regular, -/turf/open/floor{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/northeast, /area/lv624/lazarus/research) "aI" = ( /obj/structure/machinery/door/poddoor/almayer/planet_side_blastdoor{ @@ -224,24 +172,15 @@ layer = 3.3; name = "\improper Science Wing Blast Door" }, -/turf/open/floor{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/northeast, /area/lv624/lazarus/research) "aJ" = ( /obj/structure/machinery/light, -/turf/open/floor{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/northeast, /area/lv624/lazarus/research) "aK" = ( /obj/structure/machinery/chem_dispenser, -/turf/open/floor{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/northeast, /area/lv624/lazarus/research) "aL" = ( /obj/structure/machinery/door/airlock/almayer/research/colony{ @@ -249,18 +188,13 @@ locked = 1; name = "\improper Research Dome" }, -/turf/open/floor{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/northeast, /area/lv624/lazarus/research) "aM" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/research) "aO" = ( /obj/structure/machinery/shower{ @@ -269,19 +203,14 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/lv624/lazarus/research) "aP" = ( /obj/structure/machinery/light{ dir = 8 }, /obj/structure/xenoautopsy/jar_shelf, -/turf/open/floor{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/northeast, /area/lv624/lazarus/research) "aQ" = ( /obj/structure/machinery/light{ @@ -295,9 +224,7 @@ }, /obj/item/storage/fancy/vials/random, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/research) "aR" = ( /obj/structure/sink{ @@ -305,34 +232,20 @@ icon_state = "sink"; pixel_x = 11 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/lv624/lazarus/research) "aS" = ( -/obj/structure/machinery/power/apc{ - dir = 1; - name = "Research APC"; - pixel_y = 30; - start_charge = 0 - }, /obj/structure/machinery/light/small{ dir = 1 }, /obj/structure/surface/table, -/turf/open/floor{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/northeast, /area/lv624/lazarus/research) "aT" = ( /obj/structure/surface/table, /obj/structure/machinery/cell_charger, /obj/item/tool/crowbar, -/turf/open/floor{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/northeast, /area/lv624/lazarus/research) "aU" = ( /obj/structure/machinery/door/poddoor/almayer/planet_side_blastdoor{ @@ -345,71 +258,48 @@ locked = 1; name = "\improper Research Dome" }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/research) "aV" = ( /obj/structure/bed/chair/office/dark{ dir = 1 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/research) "bb" = ( /obj/item/clothing/glasses/regular, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/research) "bm" = ( /obj/structure/surface/table, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/lv624/lazarus/research) "bn" = ( /obj/structure/surface/table, /obj/item/paper/research_notes, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/northeast, /area/lv624/lazarus/research) "bp" = ( /obj/structure/machinery/cm_vending/sorted/tech/science, -/turf/open/floor{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/northeast, /area/lv624/lazarus/research) "bq" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/northeast, /area/lv624/lazarus/research) "bx" = ( /obj/structure/bed/chair/office/dark, -/turf/open/floor{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/northeast, /area/lv624/lazarus/research) "bz" = ( /obj/item/storage/box/beakers, /obj/structure/surface/table, /obj/structure/sign/safety/biohazard, -/turf/open/floor{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/northeast, /area/lv624/lazarus/research) "bE" = ( /turf/open/gm/grass/grass1, @@ -419,9 +309,7 @@ /area/lv624/ground/jungle/central_jungle) "ky" = ( /obj/effect/landmark/objective_landmark/science, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/lv624/lazarus/research) "oe" = ( /obj/structure/transmitter/colony_net{ @@ -429,61 +317,46 @@ phone_id = "Research Dome"; pixel_y = 24 }, -/turf/open/floor{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/northeast, /area/lv624/lazarus/research) "qs" = ( /obj/structure/surface/table, /obj/item/storage/fancy/vials/random, -/turf/open/floor{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/northeast, /area/lv624/lazarus/research) "wY" = ( -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/lv624/lazarus/research) "DC" = ( /obj/structure/machinery/light, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor{ - dir = 5; - icon_state = "whitepurple" +/turf/open/floor/whitepurple/northeast, +/area/lv624/lazarus/research) +"Fm" = ( +/obj/structure/machinery/power/apc/nocharge{ + dir = 1 }, +/turf/open/floor/whitepurple/northeast, /area/lv624/lazarus/research) "Jv" = ( /obj/effect/landmark/corpsespawner/scientist, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/research) "Kl" = ( /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/research) "Mu" = ( /obj/structure/surface/table, /obj/item/storage/fancy/vials/random, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/northeast, /area/lv624/lazarus/research) "Tz" = ( /obj/structure/surface/table, /obj/item/paper/research_notes, -/turf/open/floor{ - dir = 5; - icon_state = "whitepurple" - }, +/turf/open/floor/whitepurple/northeast, /area/lv624/lazarus/research) (1,1,1) = {" @@ -663,7 +536,7 @@ Mu ay aJ ab -ay +Fm ak ay ab diff --git a/maps/map_files/LV624/sprinkles/20.lz-containers_swapped.dmm b/maps/map_files/LV624/sprinkles/20.lz-containers_swapped.dmm index 834d594eff5e..aa5e4df27f59 100644 --- a/maps/map_files/LV624/sprinkles/20.lz-containers_swapped.dmm +++ b/maps/map_files/LV624/sprinkles/20.lz-containers_swapped.dmm @@ -1,15 +1,9 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE "a" = ( -/turf/open/floor{ - dir = 8; - icon_state = "warning" - }, +/turf/open/floor/warning/west, /area/lv624/lazarus/landing_zones/lz1) "c" = ( -/turf/open/floor{ - dir = 8; - icon_state = "loadingarea" - }, +/turf/open/floor/loadingarea/west, /area/lv624/lazarus/landing_zones/lz1) "d" = ( /turf/open/floor, @@ -20,10 +14,7 @@ /area/lv624/lazarus/landing_zones/lz1) "g" = ( /obj/effect/landmark/crap_item, -/turf/open/floor{ - dir = 8; - icon_state = "loadingarea" - }, +/turf/open/floor/loadingarea/west, /area/lv624/lazarus/landing_zones/lz1) "j" = ( /obj/effect/decal/cleanable/blood/tracks/footprints{ @@ -32,10 +23,7 @@ /obj/effect/decal/cleanable/blood/tracks/footprints{ dir = 8 }, -/turf/open/floor{ - dir = 8; - icon_state = "warning" - }, +/turf/open/floor/warning/west, /area/lv624/lazarus/landing_zones/lz1) "k" = ( /obj/structure/machinery/bot/mulebot{ @@ -44,17 +32,11 @@ health = 1; on = 0 }, -/turf/open/floor{ - dir = 8; - icon_state = "loadingarea" - }, +/turf/open/floor/loadingarea/west, /area/lv624/lazarus/landing_zones/lz1) "m" = ( /obj/structure/largecrate, -/turf/open/floor{ - dir = 1; - icon_state = "bot" - }, +/turf/open/floor/bot/north, /area/lv624/lazarus/landing_zones/lz1) "o" = ( /obj/item/device/radio/intercom{ @@ -63,29 +45,18 @@ name = "General Listening Channel"; pixel_x = -30 }, -/turf/open/floor{ - dir = 10; - icon_state = "warning" - }, +/turf/open/floor/warning/southwest, /area/lv624/lazarus/landing_zones/lz1) "p" = ( -/turf/open/floor{ - icon_state = "warning" - }, +/turf/open/floor/warning, /area/lv624/lazarus/landing_zones/lz1) "t" = ( /obj/structure/largecrate/random/barrel/white, -/turf/open/floor{ - dir = 1; - icon_state = "bot" - }, +/turf/open/floor/bot/north, /area/lv624/lazarus/landing_zones/lz1) "C" = ( /obj/structure/largecrate/random/barrel/red, -/turf/open/floor{ - dir = 1; - icon_state = "bot" - }, +/turf/open/floor/bot/north, /area/lv624/lazarus/landing_zones/lz1) "F" = ( /obj/vehicle/train/cargo/trolley, @@ -93,22 +64,13 @@ /area/lv624/lazarus/landing_zones/lz1) "K" = ( /obj/structure/largecrate/random/barrel/green, -/turf/open/floor{ - dir = 1; - icon_state = "bot" - }, +/turf/open/floor/bot/north, /area/lv624/lazarus/landing_zones/lz1) "L" = ( -/turf/open/floor{ - dir = 1; - icon_state = "bot" - }, +/turf/open/floor/bot/north, /area/lv624/lazarus/landing_zones/lz1) "O" = ( -/turf/open/floor{ - dir = 1; - icon_state = "loadingarea" - }, +/turf/open/floor/loadingarea/north, /area/lv624/lazarus/landing_zones/lz1) "P" = ( /obj/vehicle/train/cargo/engine, @@ -116,24 +78,15 @@ /turf/open/floor, /area/lv624/lazarus/landing_zones/lz1) "R" = ( -/turf/open/floor{ - dir = 4; - icon_state = "warningcorner" - }, +/turf/open/floor/warningcorner/east, /area/lv624/lazarus/landing_zones/lz1) "T" = ( /obj/structure/largecrate/random/barrel/blue, -/turf/open/floor{ - dir = 1; - icon_state = "bot" - }, +/turf/open/floor/bot/north, /area/lv624/lazarus/landing_zones/lz1) "U" = ( /obj/vehicle/train/cargo/trolley, -/turf/open/floor{ - dir = 1; - icon_state = "bot" - }, +/turf/open/floor/bot/north, /area/lv624/lazarus/landing_zones/lz1) "X" = ( /obj/structure/machinery/bot/mulebot{ @@ -143,10 +96,7 @@ on = 0 }, /obj/effect/landmark/objective_landmark/far, -/turf/open/floor{ - dir = 1; - icon_state = "bot" - }, +/turf/open/floor/bot/north, /area/lv624/lazarus/landing_zones/lz1) (1,1,1) = {" diff --git a/maps/map_files/LV624/sprinkles/30.nexuscenter_barricaded.dmm b/maps/map_files/LV624/sprinkles/30.nexuscenter_barricaded.dmm index 8b09597980a6..ab33751f89e9 100644 --- a/maps/map_files/LV624/sprinkles/30.nexuscenter_barricaded.dmm +++ b/maps/map_files/LV624/sprinkles/30.nexuscenter_barricaded.dmm @@ -1,21 +1,15 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE "aa" = ( -/turf/open/floor{ - icon_state = "damaged5" - }, +/turf/open/floor/damaged5, /area/lv624/lazarus/main_hall) "ab" = ( /obj/structure/barricade/wooden{ dir = 1 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/main_hall) "ac" = ( -/turf/open/floor{ - icon_state = "damaged2" - }, +/turf/open/floor/damaged2, /area/lv624/lazarus/main_hall) "ad" = ( /obj/structure/flora/bush/ausbushes/var3/brflowers, @@ -24,17 +18,13 @@ /turf/open/floor/grass, /area/lv624/lazarus/main_hall) "ae" = ( -/turf/open/floor{ - icon_state = "damaged4" - }, +/turf/open/floor/damaged4, /area/lv624/lazarus/main_hall) "af" = ( /obj/item/stack/sheet/metal, /obj/item/stack/sheet/metal, /obj/effect/decal/cleanable/blood/gibs, -/turf/open/floor{ - icon_state = "platingdmg3" - }, +/turf/open/floor/platingdmg3, /area/lv624/lazarus/main_hall) "ag" = ( /obj/structure/flora/pottedplant, @@ -44,9 +34,7 @@ /obj/structure/barricade/wooden{ dir = 8 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/main_hall) "ah" = ( /obj/structure/machinery/vending/snack, @@ -55,37 +43,26 @@ pixel_x = 4; pixel_y = 4 }, -/turf/open/floor{ - dir = 5; - icon_state = "whiteblue" - }, +/turf/open/floor/whiteblue/northeast, /area/lv624/lazarus/main_hall) "ai" = ( /obj/item/stack/sheet/metal, -/turf/open/floor{ - icon_state = "floorscorched2" - }, +/turf/open/floor/floorscorched2, /area/lv624/lazarus/main_hall) "aj" = ( /obj/item/stack/sheet/wood, -/turf/open/floor{ - icon_state = "damaged2" - }, +/turf/open/floor/damaged2, /area/lv624/lazarus/main_hall) "ak" = ( /obj/item/frame/table, /obj/item/ammo_magazine/smg/mp27, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/main_hall) "al" = ( /obj/effect/decal/cleanable/blood/splatter, /obj/effect/decal/cleanable/blood/splatter, /obj/item/ammo_casing, -/turf/open/floor{ - icon_state = "damaged2" - }, +/turf/open/floor/damaged2, /area/lv624/lazarus/main_hall) "am" = ( /obj/effect/landmark/good_item, @@ -93,57 +70,43 @@ /obj/effect/decal/cleanable/blood/splatter, /obj/item/ammo_casing, /obj/item/ammo_casing, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/main_hall) "an" = ( /obj/structure/pipes/standard/simple/hidden/cyan, /obj/item/ammo_casing, /obj/item/ammo_casing, -/turf/open/floor{ - icon_state = "damaged5" - }, +/turf/open/floor/damaged5, /area/lv624/lazarus/main_hall) "ap" = ( /obj/item/weapon/twohanded/fireaxe, /obj/item/ammo_casing, /obj/item/ammo_casing, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/main_hall) "aq" = ( /obj/item/ammo_casing, /obj/item/ammo_casing, -/turf/open/floor{ - icon_state = "damaged4" - }, +/turf/open/floor/damaged4, /area/lv624/lazarus/main_hall) "ar" = ( /obj/item/ammo_casing, /obj/item/ammo_casing, -/turf/open/floor{ - icon_state = "damaged3" - }, +/turf/open/floor/damaged3, /area/lv624/lazarus/main_hall) "as" = ( /obj/item/limb/arm/l_arm, /obj/effect/decal/cleanable/blood/splatter, /obj/effect/decal/cleanable/blood/splatter, /obj/item/ammo_casing, -/turf/open/floor{ - icon_state = "floorscorched1" - }, +/turf/open/floor/floorscorched1, /area/lv624/lazarus/main_hall) "at" = ( /obj/effect/decal/cleanable/vomit, /obj/item/ammo_casing, /obj/item/ammo_casing, /obj/item/ammo_casing, -/turf/open/floor{ - icon_state = "damaged2" - }, +/turf/open/floor/damaged2, /area/lv624/lazarus/main_hall) "au" = ( /obj/structure/surface/table{ @@ -151,17 +114,13 @@ flipped = 1 }, /obj/effect/landmark/crap_item, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/main_hall) "av" = ( /obj/effect/decal/cleanable/blood/splatter, /obj/item/ammo_casing, /obj/item/ammo_casing, -/turf/open/floor{ - icon_state = "platingdmg3" - }, +/turf/open/floor/platingdmg3, /area/lv624/lazarus/main_hall) "aw" = ( /obj/structure/pipes/standard/simple/hidden/cyan, @@ -169,31 +128,23 @@ /obj/item/ammo_casing, /obj/effect/landmark/xeno_hive_spawn, /obj/effect/landmark/ert_spawns/groundside_xeno, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/main_hall) "ax" = ( /obj/item/ammo_casing, -/turf/open/floor{ - icon_state = "floorscorched1" - }, +/turf/open/floor/floorscorched1, /area/lv624/lazarus/main_hall) "ay" = ( /obj/effect/decal/cleanable/blood/splatter, /obj/effect/decal/cleanable/blood/splatter, /obj/item/ammo_casing, -/turf/open/floor{ - icon_state = "floorscorched2" - }, +/turf/open/floor/floorscorched2, /area/lv624/lazarus/main_hall) "az" = ( /obj/effect/decal/cleanable/blood/splatter, /obj/item/ammo_casing, /obj/item/ammo_casing, -/turf/open/floor{ - icon_state = "floorscorched1" - }, +/turf/open/floor/floorscorched1, /area/lv624/lazarus/main_hall) "aA" = ( /obj/structure/barricade/wooden{ @@ -201,17 +152,13 @@ }, /obj/structure/barricade/wooden, /obj/item/ammo_casing, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/main_hall) "aB" = ( /obj/structure/flora/pottedplant, /obj/structure/barricade/wooden, /obj/item/ammo_casing, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/main_hall) "aC" = ( /obj/effect/decal/cleanable/blood/splatter, @@ -219,9 +166,7 @@ /obj/effect/decal/cleanable/blood/splatter, /obj/item/ammo_casing, /obj/item/ammo_casing, -/turf/open/floor{ - icon_state = "damaged5" - }, +/turf/open/floor/damaged5, /area/lv624/lazarus/main_hall) "aD" = ( /obj/effect/landmark/corpsespawner/engineer, @@ -231,9 +176,7 @@ /obj/item/trash/chips, /obj/effect/decal/cleanable/blood/splatter, /obj/item/ammo_casing, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/main_hall) "aF" = ( /obj/item/limb/foot/r_foot, @@ -243,9 +186,7 @@ }, /obj/item/ammo_casing, /obj/item/ammo_casing, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/main_hall) "aG" = ( /obj/effect/decal/cleanable/blood/splatter, @@ -254,26 +195,20 @@ /obj/effect/decal/cleanable/blood/splatter, /obj/item/ammo_casing, /obj/item/ammo_casing, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/main_hall) "aH" = ( /obj/structure/pipes/standard/simple/hidden/cyan, /obj/item/frame/table, /obj/item/ammo_casing, -/turf/open/floor{ - icon_state = "damaged4" - }, +/turf/open/floor/damaged4, /area/lv624/lazarus/main_hall) "aI" = ( /obj/effect/decal/cleanable/blood/splatter, /obj/item/frame/table, /obj/item/ammo_casing, /obj/item/ammo_casing, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/main_hall) "aJ" = ( /obj/item/limb/hand/r_hand, @@ -283,68 +218,50 @@ }, /obj/item/ammo_casing, /obj/item/ammo_casing, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/main_hall) "aK" = ( /obj/structure/barricade/wooden{ dir = 8 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/main_hall) "aL" = ( -/turf/open/floor{ - icon_state = "floorscorched1" - }, +/turf/open/floor/floorscorched1, /area/lv624/lazarus/main_hall) "aM" = ( /obj/structure/barricade/wooden{ dir = 8 }, -/turf/open/floor{ - icon_state = "damaged2" - }, +/turf/open/floor/damaged2, /area/lv624/lazarus/main_hall) "aN" = ( /obj/effect/decal/cleanable/blood/splatter, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor{ - icon_state = "damaged5" - }, +/turf/open/floor/damaged5, /area/lv624/lazarus/main_hall) "aO" = ( /obj/effect/decal/cleanable/blood/splatter, /obj/effect/decal/cleanable/blood/gibs, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/main_hall) "aP" = ( /obj/item/ammo_casing, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/main_hall) "aQ" = ( /obj/item/weapon/gun/smg/mp27, /obj/item/ammo_casing, /obj/item/ammo_casing, /obj/item/ammo_casing, -/turf/open/floor{ - icon_state = "damaged3" - }, +/turf/open/floor/damaged3, /area/lv624/lazarus/main_hall) "aR" = ( /obj/item/limb/foot/r_foot, /obj/effect/decal/cleanable/blood/splatter, /obj/item/ammo_casing, /obj/item/ammo_casing, -/turf/open/floor{ - icon_state = "damaged4" - }, +/turf/open/floor/damaged4, /area/lv624/lazarus/main_hall) "aS" = ( /obj/effect/decal/cleanable/blood/splatter, @@ -357,38 +274,28 @@ /obj/item/ammo_magazine/smg/mp27, /obj/item/ammo_magazine/smg/mp27, /obj/item/ammo_magazine/smg/mp27, -/turf/open/floor{ - icon_state = "wall_thermite" - }, +/turf/open/floor/wall_thermite, /area/lv624/lazarus/main_hall) "aU" = ( /obj/item/ammo_casing, /obj/item/ammo_casing, /obj/item/ammo_casing, -/turf/open/floor{ - icon_state = "damaged4" - }, +/turf/open/floor/damaged4, /area/lv624/lazarus/main_hall) "aV" = ( /obj/structure/surface/table, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/main_hall) "aW" = ( /obj/structure/barricade/wooden, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/main_hall) "aX" = ( /obj/effect/decal/cleanable/blood/splatter, /obj/effect/decal/cleanable/blood/gibs, /obj/structure/pipes/standard/simple/hidden/cyan, /obj/item/ammo_casing, -/turf/open/floor{ - icon_state = "floorscorched1" - }, +/turf/open/floor/floorscorched1, /area/lv624/lazarus/main_hall) "aY" = ( /obj/effect/decal/cleanable/blood/splatter, @@ -412,50 +319,37 @@ /obj/structure/barricade/metal{ dir = 4 }, -/turf/open/floor{ - icon_state = "floorscorched2" - }, +/turf/open/floor/floorscorched2, /area/lv624/lazarus/main_hall) "bb" = ( /obj/item/frame/table, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor{ - icon_state = "platingdmg3" - }, +/turf/open/floor/platingdmg3, /area/lv624/lazarus/main_hall) "bc" = ( /obj/effect/decal/cleanable/blood/splatter, /obj/structure/surface/table{ flipped = 1 }, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv624/lazarus/main_hall) "bd" = ( /obj/effect/decal/cleanable/blood/splatter, /obj/item/ammo_casing, -/turf/open/floor{ - icon_state = "damaged5" - }, +/turf/open/floor/damaged5, /area/lv624/lazarus/main_hall) "be" = ( /obj/item/stack/barbed_wire, /obj/effect/decal/cleanable/blood/splatter, /obj/item/ammo_casing, -/turf/open/floor{ - icon_state = "damaged2" - }, +/turf/open/floor/damaged2, /area/lv624/lazarus/main_hall) "bf" = ( /obj/structure/barricade/metal{ dir = 4 }, /obj/item/ammo_casing, -/turf/open/floor{ - icon_state = "floorscorched2" - }, +/turf/open/floor/floorscorched2, /area/lv624/lazarus/main_hall) "bg" = ( /obj/effect/decal/cleanable/blood/splatter, @@ -470,25 +364,18 @@ /obj/item/ammo_casing, /obj/item/ammo_casing, /obj/item/ammo_casing, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv624/lazarus/main_hall) "bi" = ( /obj/effect/decal/cleanable/blood/gibs, /obj/item/ammo_casing, /obj/item/ammo_casing, /obj/item/ammo_casing, -/turf/open/floor{ - icon_state = "damaged5" - }, +/turf/open/floor/damaged5, /area/lv624/lazarus/main_hall) "bj" = ( /obj/structure/barricade/wooden, -/turf/open/floor{ - icon_state = "whitegreencorner" - }, +/turf/open/floor/whitegreencorner, /area/lv624/lazarus/main_hall) "bk" = ( /obj/structure/flora/bush/ausbushes/var3/stalkybush, @@ -498,15 +385,10 @@ /area/lv624/lazarus/main_hall) "bl" = ( /obj/structure/surface/table, -/turf/open/floor{ - dir = 8; - icon_state = "whitegreencorner" - }, +/turf/open/floor/whitegreencorner/west, /area/lv624/lazarus/main_hall) "bm" = ( -/turf/open/floor{ - icon_state = "floorscorched2" - }, +/turf/open/floor/floorscorched2, /area/lv624/lazarus/main_hall) "bn" = ( /obj/structure/pipes/standard/simple/hidden/cyan, @@ -515,9 +397,7 @@ /area/lv624/lazarus/main_hall) "bo" = ( /obj/item/stack/barbed_wire, -/turf/open/floor{ - icon_state = "damaged2" - }, +/turf/open/floor/damaged2, /area/lv624/lazarus/main_hall) "bp" = ( /obj/effect/decal/cleanable/blood/splatter, @@ -525,16 +405,11 @@ /obj/item/ammo_casing, /obj/item/ammo_casing, /obj/item/ammo_casing, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv624/lazarus/main_hall) "bq" = ( /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor{ - icon_state = "damaged4" - }, +/turf/open/floor/damaged4, /area/lv624/lazarus/main_hall) "br" = ( /obj/effect/decal/cleanable/blood/splatter, @@ -547,44 +422,32 @@ /obj/item/ammo_casing, /obj/item/ammo_casing, /obj/item/ammo_casing, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv624/lazarus/main_hall) "bs" = ( /obj/item/ammo_casing, /obj/item/ammo_casing, /obj/item/ammo_casing, -/turf/open/floor{ - icon_state = "floorscorched2" - }, +/turf/open/floor/floorscorched2, /area/lv624/lazarus/main_hall) "bt" = ( /obj/item/weapon/gun/smg/mp27, /obj/item/ammo_casing, /obj/item/ammo_casing, /obj/item/ammo_casing, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv624/lazarus/main_hall) "bu" = ( /obj/item/stack/barbed_wire, /obj/item/ammo_casing, /obj/item/ammo_casing, /obj/item/ammo_casing, -/turf/open/floor{ - icon_state = "damaged2" - }, +/turf/open/floor/damaged2, /area/lv624/lazarus/main_hall) "bv" = ( /obj/item/ammo_casing, /obj/item/ammo_casing, -/turf/open/floor{ - icon_state = "floorscorched2" - }, +/turf/open/floor/floorscorched2, /area/lv624/lazarus/main_hall) "bw" = ( /obj/structure/barricade/metal{ @@ -592,27 +455,18 @@ }, /obj/effect/decal/cleanable/blood/gibs, /obj/item/ammo_casing, -/turf/open/floor{ - icon_state = "damaged5" - }, +/turf/open/floor/damaged5, /area/lv624/lazarus/main_hall) "bx" = ( -/turf/open/floor{ - icon_state = "wall_thermite" - }, +/turf/open/floor/wall_thermite, /area/lv624/lazarus/main_hall) "by" = ( /obj/item/ammo_casing, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellow" - }, +/turf/open/floor/whiteyellow/east, /area/lv624/lazarus/main_hall) "bz" = ( /obj/item/ammo_casing, -/turf/open/floor{ - icon_state = "damaged2" - }, +/turf/open/floor/damaged2, /area/lv624/lazarus/main_hall) "bA" = ( /obj/item/tool/crowbar, @@ -622,10 +476,7 @@ flipped = 1 }, /obj/item/ammo_casing, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv624/lazarus/main_hall) "bB" = ( /obj/effect/decal/cleanable/blood/splatter, @@ -633,9 +484,7 @@ /obj/item/ammo_casing, /obj/item/ammo_casing, /obj/effect/landmark/objective_landmark/far, -/turf/open/floor{ - icon_state = "floorscorched1" - }, +/turf/open/floor/floorscorched1, /area/lv624/lazarus/main_hall) "bC" = ( /obj/effect/decal/cleanable/blood{ @@ -645,9 +494,7 @@ /obj/item/limb/hand/l_hand, /obj/item/ammo_casing, /obj/item/ammo_casing, -/turf/open/floor{ - icon_state = "floorscorched1" - }, +/turf/open/floor/floorscorched1, /area/lv624/lazarus/main_hall) "bD" = ( /obj/effect/decal/cleanable/blood/gibs, @@ -655,9 +502,7 @@ /obj/item/ammo_casing, /obj/item/ammo_casing, /obj/item/ammo_casing, -/turf/open/floor{ - icon_state = "platingdmg3" - }, +/turf/open/floor/platingdmg3, /area/lv624/lazarus/main_hall) "bE" = ( /obj/effect/landmark/corpsespawner/chef, @@ -666,33 +511,23 @@ flipped = 1 }, /obj/item/ammo_casing, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv624/lazarus/main_hall) "bF" = ( /obj/item/ammo_casing, /obj/item/ammo_casing, -/turf/open/floor{ - icon_state = "floorscorched1" - }, +/turf/open/floor/floorscorched1, /area/lv624/lazarus/main_hall) "bG" = ( /obj/effect/decal/cleanable/blood/splatter, /obj/item/ammo_casing, -/turf/open/floor{ - icon_state = "floorscorched2" - }, +/turf/open/floor/floorscorched2, /area/lv624/lazarus/main_hall) "bH" = ( /obj/structure/barricade/wooden, /obj/effect/decal/cleanable/blood/splatter, /obj/item/ammo_casing, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowcorner" - }, +/turf/open/floor/whiteyellowcorner/east, /area/lv624/lazarus/main_hall) "bI" = ( /obj/effect/decal/cleanable/blood/splatter, @@ -700,9 +535,7 @@ /obj/item/ammo_casing, /obj/item/ammo_casing, /obj/item/ammo_casing, -/turf/open/floor{ - icon_state = "damaged2" - }, +/turf/open/floor/damaged2, /area/lv624/lazarus/main_hall) "bJ" = ( /obj/effect/decal/cleanable/blood/splatter, @@ -711,15 +544,10 @@ }, /obj/item/ammo_casing, /obj/item/ammo_casing, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv624/lazarus/main_hall) "bK" = ( -/turf/open/floor{ - icon_state = "platingdmg3" - }, +/turf/open/floor/platingdmg3, /area/lv624/lazarus/main_hall) "bL" = ( /obj/effect/decal/cleanable/blood/splatter, @@ -744,17 +572,12 @@ /obj/effect/decal/cleanable/blood/splatter, /obj/item/ammo_casing, /obj/item/ammo_casing, -/turf/open/floor{ - dir = 1; - icon_state = "whiteyellowcorner" - }, +/turf/open/floor/whiteyellowcorner/north, /area/lv624/lazarus/main_hall) "bO" = ( /obj/effect/landmark/good_item, /obj/item/ammo_casing, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/main_hall) "bP" = ( /obj/effect/decal/cleanable/blood/splatter, @@ -764,40 +587,30 @@ /obj/effect/decal/cleanable/blood/splatter, /obj/effect/decal/cleanable/blood/splatter, /obj/item/ammo_casing, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/main_hall) "bQ" = ( /obj/structure/pipes/standard/simple/hidden/cyan, /obj/item/ammo_casing, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/main_hall) "bR" = ( /obj/effect/decal/cleanable/blood/splatter, /obj/effect/decal/cleanable/blood/splatter, /obj/item/ammo_magazine/smg/mp27, /obj/item/ammo_casing, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/main_hall) "bS" = ( /obj/effect/decal/cleanable/blood/splatter, /obj/item/ammo_casing, /obj/item/ammo_casing, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/main_hall) "bT" = ( /obj/item/weapon/gun/smg/mp27, /obj/item/ammo_casing, -/turf/open/floor{ - icon_state = "floorscorched1" - }, +/turf/open/floor/floorscorched1, /area/lv624/lazarus/main_hall) "bU" = ( /obj/item/trash/raisins, @@ -805,61 +618,42 @@ dir = 8 }, /obj/item/ammo_casing, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/main_hall) "bV" = ( /obj/structure/pipes/standard/simple/hidden/cyan, /obj/effect/decal/cleanable/blood/splatter, /obj/item/ammo_casing, -/turf/open/floor{ - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen, /area/lv624/lazarus/main_hall) "bW" = ( /obj/effect/decal/cleanable/blood/splatter, /obj/effect/decal/cleanable/blood/splatter, /obj/item/ammo_casing, -/turf/open/floor{ - icon_state = "damaged5" - }, +/turf/open/floor/damaged5, /area/lv624/lazarus/main_hall) "bX" = ( /obj/effect/landmark/good_item, /obj/effect/decal/cleanable/blood/splatter, /obj/item/ammo_casing, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/main_hall) "zt" = ( -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/main_hall) "zv" = ( /obj/item/trash/cheesie, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/main_hall) "BB" = ( /obj/effect/decal/cleanable/vomit, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/main_hall) "Cw" = ( -/turf/open/floor{ - icon_state = "whitegreencorner" - }, +/turf/open/floor/whitegreencorner, /area/lv624/lazarus/main_hall) "Cy" = ( -/turf/open/floor{ - dir = 8; - icon_state = "whitegreencorner" - }, +/turf/open/floor/whitegreencorner/west, /area/lv624/lazarus/main_hall) "DY" = ( /turf/closed/wall, @@ -874,10 +668,7 @@ icon_state = "door_open"; name = "\improper Nexus Cargo Storage" }, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv624/lazarus/quart) "Fz" = ( /obj/structure/window/framed/colony/reinforced, @@ -893,60 +684,43 @@ /area/lv624/lazarus/chapel) "He" = ( /obj/structure/machinery/vending/cigarette/colony, -/turf/open/floor{ - dir = 9; - icon_state = "whiteblue" - }, +/turf/open/floor/whiteblue/northwest, /area/lv624/lazarus/main_hall) "Hf" = ( /obj/structure/flora/pottedplant, /obj/structure/machinery/light/spot{ dir = 1 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/main_hall) "HH" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper Nexus Dome Chapel" }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/chapel) "HI" = ( -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/chapel) "HJ" = ( /obj/structure/flora/pottedplant, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/main_hall) "Ie" = ( /obj/effect/landmark/crap_item, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/main_hall) "Ii" = ( /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/main_hall) "Il" = ( /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/main_hall) "Ir" = ( /obj/structure/machinery/atm{ @@ -956,34 +730,20 @@ /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/main_hall) "IY" = ( -/turf/open/floor{ - dir = 8; - icon_state = "whiteyellowcorner" - }, +/turf/open/floor/whiteyellowcorner/west, /area/lv624/lazarus/main_hall) "Jf" = ( /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, +/turf/open/floor/whiteyellowfull/east, /area/lv624/lazarus/main_hall) "JH" = ( -/turf/open/floor{ - dir = 8; - icon_state = "whiteyellow" - }, +/turf/open/floor/whiteyellow/west, /area/lv624/lazarus/main_hall) "JK" = ( -/turf/open/floor{ - dir = 1; - icon_state = "whiteyellowcorner" - }, +/turf/open/floor/whiteyellowcorner/north, /area/lv624/lazarus/main_hall) "KQ" = ( /obj/structure/window/framed/colony/reinforced, @@ -996,39 +756,27 @@ /obj/item/reagent_container/glass/bucket/mopbucket, /obj/item/tool/mop, /obj/item/tool/mop, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/main_hall) "Lp" = ( /turf/closed/wall, /area/lv624/lazarus/canteen) "Lq" = ( /obj/structure/window/framed/colony/reinforced, -/turf/open/floor{ - icon_state = "cult" - }, +/turf/open/floor/cult, /area/lv624/lazarus/canteen) "Me" = ( /obj/structure/machinery/vending/cola, -/turf/open/floor{ - dir = 10; - icon_state = "whiteblue" - }, +/turf/open/floor/whiteblue/southwest, /area/lv624/lazarus/main_hall) "Mf" = ( /obj/structure/flora/pottedplant, /obj/structure/machinery/light/spot, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/lv624/lazarus/main_hall) "Mi" = ( /obj/structure/reagent_dispensers/watertank, -/turf/open/floor{ - dir = 6; - icon_state = "whiteblue" - }, +/turf/open/floor/whiteblue/southeast, /area/lv624/lazarus/main_hall) "Nk" = ( /turf/closed/wall, @@ -1042,9 +790,7 @@ /area/lv624/lazarus/security) "NU" = ( /obj/structure/window/framed/colony/reinforced, -/turf/open/floor{ - icon_state = "cult" - }, +/turf/open/floor/cult, /area/lv624/lazarus/kitchen) "OK" = ( /turf/template_noop, @@ -1058,10 +804,7 @@ /obj/structure/machinery/door/airlock/almayer/medical/glass/colony{ name = "\improper Nexus Dome Canteen" }, -/turf/open/floor{ - dir = 8; - icon_state = "barber" - }, +/turf/open/floor/barber/west, /area/lv624/lazarus/kitchen) (1,1,1) = {" diff --git a/maps/map_files/LV624/standalone/clfship.dmm b/maps/map_files/LV624/standalone/clfship.dmm index 10a6618c681d..177ecbd6e450 100644 --- a/maps/map_files/LV624/standalone/clfship.dmm +++ b/maps/map_files/LV624/standalone/clfship.dmm @@ -26,10 +26,7 @@ id = "clf_umbilical_1"; name = "\improper Umbillical Airlock" }, -/turf/open/floor{ - dir = 8; - icon_state = "damaged3" - }, +/turf/open/floor/damaged3/west, /area/lv624/lazarus/crashed_ship) "aO" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, @@ -44,10 +41,7 @@ /area/lv624/ground/caves/south_west_caves) "bc" = ( /obj/structure/machinery/vending/snack, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/almayer/green/north, /area/lv624/lazarus/crashed_ship) "bf" = ( /obj/structure/surface/rack, @@ -55,10 +49,7 @@ /obj/item/ammo_magazine/shotgun/buckshot, /obj/item/ammo_magazine/shotgun/buckshot, /obj/item/ammo_magazine/shotgun/buckshot, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/southwest, /area/lv624/lazarus/crashed_ship) "by" = ( /turf/closed/wall/rock/brown, @@ -68,15 +59,10 @@ /turf/open/floor/almayer, /area/lv624/lazarus/crashed_ship) "bL" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "bluecorner" - }, +/turf/open/floor/almayer/bluecorner/east, /area/lv624/lazarus/crashed_ship) "bP" = ( -/turf/open/floor/plating{ - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate, /area/lv624/lazarus/crashed_ship) "bQ" = ( /obj/structure/machinery/defenses/sentry/premade/dumb{ @@ -86,10 +72,6 @@ /obj/item/ammo_casing/shell{ icon_state = "casing_7_1" }, -/obj/structure/machinery/defenses/sentry/premade/dumb{ - dir = 1; - faction_group = list("CLF") - }, /turf/open/gm/dirt, /area/lv624/ground/caves/south_west_caves) "ca" = ( @@ -103,18 +85,14 @@ pixel_x = 3; pixel_y = 2 }, -/turf/open/floor/almayer{ - icon_state = "emerald" - }, +/turf/open/floor/almayer/emerald, /area/lv624/lazarus/crashed_ship) "dt" = ( /obj/structure/barricade/metal/wired{ dir = 4; icon_state = "metal_3" }, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3, /area/lv624/lazarus/crashed_ship) "dN" = ( /turf/open/floor/plating, @@ -148,9 +126,7 @@ /area/lv624/lazarus/crashed_ship) "eY" = ( /obj/item/tool/shovel/spade, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/lv624/ground/caves/south_west_caves) "fe" = ( /obj/item/weapon/gun/rifle/m16, @@ -159,16 +135,11 @@ pixel_y = 6 }, /obj/structure/surface/rack, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "bluecorner" - }, +/turf/open/floor/almayer/bluecorner/north, /area/lv624/lazarus/crashed_ship) "ft" = ( /obj/item/stool, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/lv624/lazarus/crashed_ship) "fA" = ( /obj/structure/transmitter/clf_net{ @@ -176,17 +147,12 @@ phone_id = "Armoury"; pixel_y = 32 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "bluecorner" - }, +/turf/open/floor/almayer/bluecorner/north, /area/lv624/lazarus/crashed_ship) "fX" = ( /obj/item/stool, -/obj/effect/landmark/survivor_spawner/lv624_crashed_clf, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/obj/effect/landmark/survivor_spawner/lv624_crashed_clf_leader, +/turf/open/floor/platingdmg1, /area/lv624/lazarus/crashed_ship) "gg" = ( /obj/structure/surface/rack, @@ -197,10 +163,7 @@ /obj/item/device/radio{ pixel_x = -3 }, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "green" - }, +/turf/open/floor/almayer/green/southwest, /area/lv624/lazarus/crashed_ship) "gj" = ( /obj/item/stack/sheet/metal{ @@ -212,10 +175,7 @@ dir = 8; icon_state = "metal_1" }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/west, /area/lv624/lazarus/crashed_ship) "gn" = ( /obj/structure/girder/displaced, @@ -227,9 +187,7 @@ /area/lv624/ground/caves/south_west_caves) "gv" = ( /obj/item/stack/rods, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/lv624/ground/caves/south_west_caves) "gD" = ( /obj/structure/surface/table/reinforced/prison, @@ -255,15 +213,10 @@ /obj/item/ammo_magazine/rifle/m16{ pixel_x = -4 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "bluecorner" - }, +/turf/open/floor/almayer/bluecorner/east, /area/lv624/lazarus/crashed_ship) "gF" = ( -/turf/open/floor/almayer{ - icon_state = "emeraldcorner" - }, +/turf/open/floor/almayer/emeraldcorner, /area/lv624/lazarus/crashed_ship) "gQ" = ( /obj/effect/decal/cleanable/blood/oil/streak, @@ -273,17 +226,11 @@ /obj/structure/surface/table/reinforced/prison, /obj/item/paper_bin, /obj/item/tool/pen, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "emerald" - }, +/turf/open/floor/almayer/emerald/southwest, /area/lv624/lazarus/crashed_ship) "gW" = ( /obj/structure/girder/displaced, -/turf/open/floor{ - dir = 8; - icon_state = "damaged3" - }, +/turf/open/floor/damaged3/west, /area/lv624/lazarus/crashed_ship) "gX" = ( /obj/effect/decal/cleanable/blood/oil, @@ -308,16 +255,10 @@ /obj/item/ammo_magazine/pistol/heavy, /obj/item/clothing/accessory/storage/webbing, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "green" - }, +/turf/open/floor/almayer/green/northeast, /area/lv624/lazarus/crashed_ship) "id" = ( -/turf/open/floor/plating{ - dir = 5; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/northeast, /area/lv624/lazarus/crashed_ship) "iq" = ( /turf/closed/shuttle/ert{ @@ -326,10 +267,7 @@ /area/lv624/lazarus/crashed_ship) "iF" = ( /obj/effect/landmark/corpsespawner/wysec, -/turf/open/floor{ - dir = 8; - icon_state = "damaged3" - }, +/turf/open/floor/damaged3/west, /area/lv624/lazarus/crashed_ship) "jb" = ( /obj/structure/largecrate/random/barrel/red, @@ -343,16 +281,11 @@ /turf/open/gm/dirt, /area/lv624/ground/caves/south_west_caves) "jr" = ( -/turf/open/floor/almayer{ - icon_state = "bluecorner" - }, +/turf/open/floor/almayer/bluecorner, /area/lv624/lazarus/crashed_ship) "jx" = ( /obj/item/stack/rods, -/turf/open/floor/plating{ - dir = 9; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/northwest, /area/lv624/lazarus/crashed_ship) "jz" = ( /obj/structure/barricade/sandbags/wired{ @@ -375,19 +308,13 @@ /obj/structure/machinery/cm_vending/sorted/medical/wall_med{ pixel_y = 25 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "emerald" - }, +/turf/open/floor/almayer/emerald/north, /area/lv624/lazarus/crashed_ship) "jO" = ( /obj/structure/barricade/metal/wired{ dir = 8 }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/west, /area/lv624/lazarus/crashed_ship) "jR" = ( /obj/item/stack/rods, @@ -406,10 +333,7 @@ "kp" = ( /obj/item/stack/rods, /obj/structure/girder, -/turf/open/floor{ - dir = 8; - icon_state = "damaged3" - }, +/turf/open/floor/damaged3/west, /area/lv624/lazarus/crashed_ship) "kw" = ( /obj/item/ammo_casing/shell{ @@ -418,18 +342,14 @@ /obj/structure/barricade/metal/wired{ icon_state = "metal_1" }, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/lv624/lazarus/crashed_ship) "ky" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic2{ dir = 8; name = "\improper Bridge" }, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/lv624/lazarus/crashed_ship) "kO" = ( /obj/structure/bed, @@ -439,16 +359,11 @@ pixel_y = 20 }, /obj/item/toy/plush/farwa, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "green" - }, +/turf/open/floor/almayer/green/northwest, /area/lv624/lazarus/crashed_ship) "kY" = ( /obj/structure/machinery/door/airlock/almayer/generic, -/turf/open/floor{ - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull, /area/lv624/lazarus/crashed_ship) "lf" = ( /obj/structure/barricade/sandbags/wired{ @@ -460,10 +375,7 @@ "lh" = ( /obj/item/stack/rods, /obj/item/ammo_magazine/smg/fp9000, -/turf/open/floor{ - dir = 8; - icon_state = "damaged3" - }, +/turf/open/floor/damaged3/west, /area/lv624/lazarus/crashed_ship) "lj" = ( /obj/item/tool/shovel/spade, @@ -479,9 +391,7 @@ pixel_x = -2; pixel_y = 3 }, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/lv624/lazarus/crashed_ship) "ln" = ( /obj/structure/bed/chair, @@ -497,15 +407,11 @@ /area/lv624/lazarus/crashed_ship) "lD" = ( /obj/item/stack/rods, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3, /area/lv624/lazarus/crashed_ship) "lU" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/lv624/lazarus/crashed_ship) "mq" = ( /obj/structure/largecrate/supply/supplies/water, @@ -523,14 +429,10 @@ /area/lv624/ground/caves/south_west_caves) "mK" = ( /obj/structure/girder/displaced, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/lv624/ground/caves/south_west_caves) "mS" = ( -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3, /area/lv624/lazarus/crashed_ship) "nj" = ( /obj/effect/landmark/survivor_spawner/lv624_crashed_clf_engineer, @@ -546,10 +448,7 @@ /obj/item/ammo_magazine/shotgun/slugs, /obj/item/ammo_magazine/shotgun/slugs, /obj/item/ammo_magazine/shotgun/slugs, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/northwest, /area/lv624/lazarus/crashed_ship) "nO" = ( /obj/item/tool/wet_sign, @@ -560,10 +459,7 @@ dir = 1; pixel_y = 20 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "greencorner" - }, +/turf/open/floor/almayer/greencorner/east, /area/lv624/lazarus/crashed_ship) "ok" = ( /obj/effect/landmark/survivor_spawner/lv624_crashed_clf, @@ -571,34 +467,25 @@ /area/lv624/lazarus/crashed_ship) "ou" = ( /obj/structure/reagent_dispensers/fueltank, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/lv624/lazarus/crashed_ship) "oI" = ( /obj/item/stack/rods, /obj/effect/landmark/corpsespawner/clf, -/turf/open/floor{ - dir = 8; - icon_state = "damaged3" - }, +/turf/open/floor/damaged3/west, /area/lv624/lazarus/crashed_ship) "oO" = ( /obj/structure/barricade/plasteel/wired{ icon_state = "plasteel_3" }, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3, /area/lv624/lazarus/crashed_ship) "oW" = ( /obj/structure/barricade/metal/wired{ dir = 4; icon_state = "metal_1" }, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3, /area/lv624/lazarus/crashed_ship) "pq" = ( /turf/closed/shuttle/ert{ @@ -610,25 +497,17 @@ /turf/open/floor/almayer, /area/lv624/lazarus/crashed_ship) "pS" = ( -/turf/open/floor/plating{ - dir = 1; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/north, /area/lv624/lazarus/crashed_ship) "pY" = ( /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor{ - dir = 8; - icon_state = "damaged3" - }, +/turf/open/floor/damaged3/west, /area/lv624/ground/caves/south_west_caves) "qu" = ( /obj/item/ammo_casing/shell{ icon_state = "casing_2_1" }, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3, /area/lv624/lazarus/crashed_ship) "qT" = ( /obj/structure/barricade/sandbags/wired{ @@ -642,9 +521,7 @@ "qU" = ( /obj/item/ammo_magazine/smg/fp9000, /obj/item/stack/rods, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/lv624/lazarus/crashed_ship) "rf" = ( /obj/item/ammo_casing/shell{ @@ -675,10 +552,7 @@ /obj/item/device/flashlight/lamp{ pixel_y = 3 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "green" - }, +/turf/open/floor/almayer/green/west, /area/lv624/lazarus/crashed_ship) "sO" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, @@ -716,10 +590,7 @@ /area/lv624/lazarus/crashed_ship) "ug" = ( /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor{ - dir = 8; - icon_state = "damaged3" - }, +/turf/open/floor/damaged3/west, /area/lv624/lazarus/crashed_ship) "uq" = ( /obj/item/tool/warning_cone, @@ -727,16 +598,12 @@ /area/lv624/ground/caves/south_west_caves) "ur" = ( /obj/item/stack/rods, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3, /area/lv624/ground/caves/south_west_caves) "uz" = ( /obj/structure/girder/displaced, /obj/item/stack/rods, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3, /area/lv624/ground/caves/south_west_caves) "uX" = ( /obj/structure/bed/chair{ @@ -746,19 +613,14 @@ /area/lv624/lazarus/crashed_ship) "vb" = ( /obj/structure/machinery/vending/coffee, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/almayer/green/north, /area/lv624/lazarus/crashed_ship) "vf" = ( /obj/structure/machinery/door/poddoor/almayer{ id = "clf_umbilical_1"; name = "\improper Umbillical Airlock" }, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/lv624/lazarus/crashed_ship) "vo" = ( /turf/closed/shuttle/ert{ @@ -768,26 +630,18 @@ "vp" = ( /obj/item/stack/rods, /obj/effect/decal/cleanable/blood, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/lv624/lazarus/crashed_ship) "vw" = ( /turf/open/gm/dirt, /area/lv624/ground/barrens/west_barrens) "vO" = ( /obj/structure/girder/reinforced, -/turf/open/floor{ - dir = 8; - icon_state = "damaged3" - }, +/turf/open/floor/damaged3/west, /area/lv624/lazarus/crashed_ship) "wh" = ( /obj/item/weapon/gun/rifle/sniper/svd, -/turf/open/floor{ - dir = 8; - icon_state = "damaged3" - }, +/turf/open/floor/damaged3/west, /area/lv624/lazarus/crashed_ship) "wo" = ( /obj/structure/machinery/floodlight, @@ -795,10 +649,7 @@ /area/lv624/lazarus/crashed_ship) "wr" = ( /obj/structure/machinery/floodlight, -/turf/open/floor{ - dir = 8; - icon_state = "damaged3" - }, +/turf/open/floor/damaged3/west, /area/lv624/lazarus/crashed_ship) "wx" = ( /obj/effect/decal/cleanable/blood/oil, @@ -813,29 +664,19 @@ /area/lv624/lazarus/crashed_ship) "wR" = ( /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3, /area/lv624/lazarus/crashed_ship) "wV" = ( /obj/structure/machinery/power/smes/buildable/charged, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/north, /area/lv624/lazarus/crashed_ship) "xh" = ( /obj/structure/girder, -/turf/open/floor{ - dir = 8; - icon_state = "damaged3" - }, +/turf/open/floor/damaged3/west, /area/lv624/lazarus/crashed_ship) "xj" = ( /obj/structure/girder/displaced, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3, /area/lv624/lazarus/crashed_ship) "xk" = ( /obj/item/ammo_casing/shell{ @@ -845,9 +686,7 @@ dir = 8; faction_group = list("CLF") }, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/lv624/lazarus/crashed_ship) "xl" = ( /obj/structure/largecrate/random/barrel/yellow, @@ -876,22 +715,14 @@ id = "clf_umbilical_1"; name = "\improper Umbillical Airlock" }, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3, /area/lv624/lazarus/crashed_ship) "xI" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "bluecorner" - }, +/turf/open/floor/almayer/bluecorner/north, /area/lv624/lazarus/crashed_ship) "xK" = ( /obj/structure/machinery/cm_vending/sorted/marine_food, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "green" - }, +/turf/open/floor/almayer/green/northeast, /area/lv624/lazarus/crashed_ship) "xX" = ( /obj/structure/machinery/light/small{ @@ -903,10 +734,7 @@ "yK" = ( /obj/item/stack/rods, /obj/item/ammo_magazine/sniper/svd, -/turf/open/floor{ - dir = 8; - icon_state = "damaged3" - }, +/turf/open/floor/damaged3/west, /area/lv624/lazarus/crashed_ship) "yT" = ( /obj/structure/barricade/metal/wired{ @@ -915,9 +743,7 @@ /obj/structure/machinery/m56d_hmg{ rounds = 700 }, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/lv624/lazarus/crashed_ship) "yX" = ( /obj/structure/surface/table/reinforced/prison, @@ -929,9 +755,7 @@ /area/lv624/lazarus/crashed_ship) "zb" = ( /obj/structure/girder/reinforced, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/lv624/lazarus/crashed_ship) "zl" = ( /obj/structure/barricade/metal/wired{ @@ -947,9 +771,7 @@ /obj/structure/barricade/metal/wired{ icon_state = "metal_1" }, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/lv624/lazarus/crashed_ship) "zD" = ( /obj/structure/sink{ @@ -959,16 +781,12 @@ pixel_x = 2; pixel_y = -4 }, -/turf/open/floor{ - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull, /area/lv624/lazarus/crashed_ship) "zJ" = ( /obj/item/stack/rods, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/lv624/lazarus/crashed_ship) "Aa" = ( /obj/effect/vehicle_spawner/van/fixed{ @@ -976,10 +794,7 @@ desc = "A rather old hunk of metal with four wheels, you know what to do. Entrance on the back and sides. This one seems to be used by the CLF"; name = "CLF Van" }, -/turf/open/floor/plating{ - dir = 1; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/north, /area/lv624/lazarus/crashed_ship) "Ab" = ( /turf/open/gm/dirt, @@ -999,16 +814,11 @@ /obj/item/ammo_magazine/pistol/heavy, /obj/item/ammo_magazine/pistol/heavy, /obj/item/ammo_magazine/pistol/heavy, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "green" - }, +/turf/open/floor/almayer/green/northeast, /area/lv624/lazarus/crashed_ship) "AP" = ( /obj/structure/cargo_container/arious/right, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/lv624/lazarus/crashed_ship) "AQ" = ( /obj/structure/machinery/door_control/brbutton{ @@ -1026,10 +836,7 @@ /turf/open/gm/dirt, /area/lv624/ground/caves/south_west_caves) "Bc" = ( -/turf/open/floor{ - dir = 8; - icon_state = "damaged3" - }, +/turf/open/floor/damaged3/west, /area/lv624/lazarus/crashed_ship) "Bg" = ( /obj/structure/surface/table/woodentable, @@ -1053,10 +860,7 @@ /area/lv624/ground/caves/south_west_caves) "BY" = ( /obj/structure/cargo_container/arious/leftmid, -/turf/open/floor{ - dir = 8; - icon_state = "damaged3" - }, +/turf/open/floor/damaged3/west, /area/lv624/lazarus/crashed_ship) "Cq" = ( /obj/item/circuitboard/apc{ @@ -1078,9 +882,7 @@ "Cw" = ( /obj/item/ammo_magazine/smg/fp9000, /obj/item/ammo_magazine/smg/fp9000, -/turf/open/floor/plating{ - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate, /area/lv624/lazarus/crashed_ship) "CO" = ( /obj/structure/machinery/door/poddoor/almayer{ @@ -1090,10 +892,7 @@ /turf/open/gm/dirt, /area/lv624/lazarus/crashed_ship) "CZ" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "green" - }, +/turf/open/floor/almayer/green/east, /area/lv624/lazarus/crashed_ship) "Dm" = ( /turf/closed/shuttle/ert{ @@ -1109,38 +908,26 @@ /obj/structure/machinery/optable, /obj/item/tank/anesthetic, /obj/item/clothing/mask/breath/medical, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "emerald" - }, +/turf/open/floor/almayer/emerald/southwest, /area/lv624/lazarus/crashed_ship) "Dv" = ( /obj/structure/bed, /obj/item/bedsheet/yellow, /obj/item/toy/katana, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "green" - }, +/turf/open/floor/almayer/green/west, /area/lv624/lazarus/crashed_ship) "Dw" = ( /obj/structure/bed, /obj/item/bedsheet/rd, /obj/effect/landmark/corpsespawner/colonist, /obj/effect/decal/cleanable/blood, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "green" - }, +/turf/open/floor/almayer/green/east, /area/lv624/lazarus/crashed_ship) "DO" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/storage/firstaid/regular, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "emerald" - }, +/turf/open/floor/almayer/emerald/north, /area/lv624/lazarus/crashed_ship) "DS" = ( /obj/structure/surface/table/woodentable, @@ -1162,9 +949,7 @@ /obj/item/weapon/gun/shotgun/pump/dual_tube/cmb{ pixel_y = 9 }, -/turf/open/floor/almayer{ - icon_state = "orangecorner" - }, +/turf/open/floor/almayer/orangecorner, /area/lv624/lazarus/crashed_ship) "DZ" = ( /turf/closed/shuttle/ert{ @@ -1178,19 +963,13 @@ /obj/structure/barricade/metal/wired{ icon_state = "metal_1" }, -/turf/open/floor/plating{ - dir = 10; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/southwest, /area/lv624/lazarus/crashed_ship) "Em" = ( /obj/structure/machinery/cm_vending/sorted/medical/wall_med{ pixel_y = 25 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "bluecorner" - }, +/turf/open/floor/almayer/bluecorner/east, /area/lv624/lazarus/crashed_ship) "Ev" = ( /turf/closed/shuttle/ert{ @@ -1205,9 +984,7 @@ /obj/structure/machinery/m56d_hmg{ rounds = 700 }, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3, /area/lv624/lazarus/crashed_ship) "EB" = ( /obj/structure/surface/table/reinforced/prison, @@ -1217,29 +994,21 @@ /obj/item/attachable/attached_gun/flamer, /obj/item/attachable/bayonet, /obj/item/attachable/bayonet, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "bluecorner" - }, +/turf/open/floor/almayer/bluecorner/west, /area/lv624/lazarus/crashed_ship) "EO" = ( /obj/structure/machinery/light/small{ dir = 8; pixel_x = -10 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "greencorner" - }, +/turf/open/floor/almayer/greencorner/west, /area/lv624/lazarus/crashed_ship) "Gf" = ( /obj/structure/barricade/metal/wired{ dir = 8; icon_state = "metal_1" }, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/lv624/lazarus/crashed_ship) "Gm" = ( /obj/structure/surface/rack, @@ -1252,10 +1021,7 @@ dir = 1; pixel_y = 20 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "emerald" - }, +/turf/open/floor/almayer/emerald/north, /area/lv624/lazarus/crashed_ship) "GQ" = ( /obj/effect/landmark/corpsespawner/engineer, @@ -1267,24 +1033,17 @@ stat = 1 }, /obj/structure/surface/table/reinforced/prison, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/lv624/lazarus/crashed_ship) "Hg" = ( /obj/structure/cargo_container/arious/rightmid, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/lv624/lazarus/crashed_ship) "Hj" = ( /turf/closed/wall/rock/brown, /area/lv624/ground/caves/south_west_caves) "HN" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orangecorner" - }, +/turf/open/floor/almayer/orangecorner/west, /area/lv624/lazarus/crashed_ship) "HR" = ( /obj/structure/surface/table/reinforced/prison, @@ -1302,22 +1061,13 @@ pixel_y = 11 }, /obj/item/clothing/glasses/welding, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/southeast, /area/lv624/lazarus/crashed_ship) "Ik" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "greencorner" - }, +/turf/open/floor/almayer/greencorner/west, /area/lv624/lazarus/crashed_ship) "IG" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "greencorner" - }, +/turf/open/floor/almayer/greencorner/north, /area/lv624/lazarus/crashed_ship) "IH" = ( /obj/item/ammo_casing/shell{ @@ -1328,15 +1078,12 @@ "IP" = ( /obj/structure/bed, /obj/item/bedsheet/yellow, -/obj/item/handcuffs{ +/obj/item/restraint/handcuffs{ pixel_x = 4; pixel_y = 4 }, -/obj/item/handcuffs, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "green" - }, +/obj/item/restraint/handcuffs, +/turf/open/floor/almayer/green/southeast, /area/lv624/lazarus/crashed_ship) "JC" = ( /obj/item/stack/rods, @@ -1348,9 +1095,7 @@ dir = 1; pixel_y = 20 }, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/lv624/lazarus/crashed_ship) "JO" = ( /obj/structure/machinery/light/small{ @@ -1358,10 +1103,7 @@ pixel_y = 20 }, /obj/structure/machinery/medical_pod/bodyscanner, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "emerald" - }, +/turf/open/floor/almayer/emerald/north, /area/lv624/lazarus/crashed_ship) "JW" = ( /obj/item/toy/beach_ball{ @@ -1396,28 +1138,19 @@ /obj/item/storage/backpack/general_belt{ pixel_y = 3 }, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3, /area/lv624/lazarus/crashed_ship) "LD" = ( /obj/item/stack/rods, -/turf/open/floor/plating{ - dir = 8; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/west, /area/lv624/lazarus/crashed_ship) "LG" = ( /obj/structure/girder/reinforced, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3, /area/lv624/lazarus/crashed_ship) "LK" = ( /obj/structure/largecrate/random/barrel/white, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3, /area/lv624/lazarus/crashed_ship) "LV" = ( /obj/structure/blocker/forcefield/multitile_vehicles, @@ -1442,36 +1175,24 @@ /area/lv624/lazarus/crashed_ship) "Mw" = ( /obj/structure/machinery/cm_vending/sorted/medical/no_access, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "emerald" - }, +/turf/open/floor/almayer/emerald/northeast, /area/lv624/lazarus/crashed_ship) "Mz" = ( /obj/structure/machinery/light/small{ dir = 1; pixel_y = 20 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "bluecorner" - }, +/turf/open/floor/almayer/bluecorner/east, /area/lv624/lazarus/crashed_ship) "MO" = ( /obj/structure/machinery/light/small{ dir = 1; pixel_y = 20 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/almayer/blue/north, /area/lv624/lazarus/crashed_ship) "Nk" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "greencorner" - }, +/turf/open/floor/almayer/greencorner/east, /area/lv624/lazarus/crashed_ship) "Ns" = ( /turf/closed/shuttle/ert{ @@ -1486,9 +1207,7 @@ dir = 1; pixel_y = 20 }, -/turf/open/floor{ - icon_state = "whitebluefull" - }, +/turf/open/floor/whitebluefull, /area/lv624/lazarus/crashed_ship) "NC" = ( /obj/structure/machinery/light/small{ @@ -1496,10 +1215,7 @@ pixel_x = 3; pixel_y = 20 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/almayer/green/north, /area/lv624/lazarus/crashed_ship) "NI" = ( /obj/structure/surface/table/reinforced/prison, @@ -1524,18 +1240,12 @@ pixel_x = 18; pixel_y = 6 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "bluecorner" - }, +/turf/open/floor/almayer/bluecorner/north, /area/lv624/lazarus/crashed_ship) "Oc" = ( /obj/effect/landmark/corpsespawner/colonist/random, /obj/effect/decal/cleanable/blood, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "emeraldcorner" - }, +/turf/open/floor/almayer/emeraldcorner/west, /area/lv624/lazarus/crashed_ship) "Op" = ( /obj/structure/surface/rack, @@ -1543,17 +1253,11 @@ pixel_y = 7 }, /obj/item/storage/backpack/general_belt, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "emerald" - }, +/turf/open/floor/almayer/emerald/north, /area/lv624/lazarus/crashed_ship) "Ot" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "emeraldcorner" - }, +/turf/open/floor/almayer/emeraldcorner/east, /area/lv624/lazarus/crashed_ship) "OB" = ( /obj/item/ammo_casing/shell{ @@ -1563,19 +1267,14 @@ dir = 4; faction_group = list("CLF") }, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3, /area/lv624/lazarus/crashed_ship) "OL" = ( /obj/structure/machinery/vending/cigarette/colony, /turf/open/floor/plating/plating_catwalk, /area/lv624/lazarus/crashed_ship) "OS" = ( -/turf/open/floor/almayer{ - dir = 10; - icon_state = "emerald" - }, +/turf/open/floor/almayer/emerald/southwest, /area/lv624/lazarus/crashed_ship) "OU" = ( /obj/structure/machinery/floodlight, @@ -1590,37 +1289,25 @@ phone_id = "Engineering" }, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/almayer{ - icon_state = "orangecorner" - }, +/turf/open/floor/almayer/orangecorner, /area/lv624/lazarus/crashed_ship) "Pu" = ( /obj/effect/landmark/corpsespawner/clf, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/lv624/lazarus/crashed_ship) "Px" = ( -/obj/structure/machinery/power/apc{ - dir = 1; - name = "Crashed Ship APC"; - pixel_y = 25 - }, /obj/structure/machinery/autolathe, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "orange" +/obj/structure/machinery/power/apc{ + dir = 1 }, +/turf/open/floor/almayer/orange/northwest, /area/lv624/lazarus/crashed_ship) "PA" = ( /obj/structure/machinery/cm_vending/sorted/medical/wall_med{ pixel_y = 25 }, /obj/item/storage/firstaid/regular/empty, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/almayer/green/north, /area/lv624/lazarus/crashed_ship) "PR" = ( /obj/structure/surface/table/reinforced/prison, @@ -1630,24 +1317,15 @@ pixel_y = 4 }, /obj/item/storage/firstaid/regular, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "emerald" - }, +/turf/open/floor/almayer/emerald/northwest, /area/lv624/lazarus/crashed_ship) "PY" = ( /obj/effect/landmark/survivor_spawner/lv624_crashed_clf, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "bluecorner" - }, +/turf/open/floor/almayer/bluecorner/east, /area/lv624/lazarus/crashed_ship) "Qc" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "emeraldcorner" - }, +/turf/open/floor/almayer/emeraldcorner/west, /area/lv624/lazarus/crashed_ship) "Qd" = ( /turf/closed/shuttle/ert{ @@ -1655,9 +1333,7 @@ }, /area/lv624/lazarus/crashed_ship) "Qf" = ( -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/lv624/lazarus/crashed_ship) "Qj" = ( /obj/structure/machinery/body_scanconsole, @@ -1667,10 +1343,7 @@ phone_id = "Medical Bay"; pixel_y = 32 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "emerald" - }, +/turf/open/floor/almayer/emerald/north, /area/lv624/lazarus/crashed_ship) "Qp" = ( /obj/item/stack/rods, @@ -1680,15 +1353,11 @@ /obj/structure/barricade/metal/wired{ icon_state = "metal_1" }, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3, /area/lv624/lazarus/crashed_ship) "Qu" = ( /obj/structure/girder, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/lv624/lazarus/crashed_ship) "QE" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic2{ @@ -1698,16 +1367,10 @@ /turf/open/floor/almayer, /area/lv624/lazarus/crashed_ship) "QQ" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "bluecorner" - }, +/turf/open/floor/almayer/bluecorner/west, /area/lv624/lazarus/crashed_ship) "Ro" = ( -/turf/open/floor{ - dir = 8; - icon_state = "damaged3" - }, +/turf/open/floor/damaged3/west, /area/lv624/ground/caves/south_west_caves) "RS" = ( /turf/open/floor/almayer, @@ -1728,9 +1391,7 @@ /obj/item/attachable/bayonet, /obj/item/attachable/bayonet, /obj/item/attachable/attached_gun/flamer, -/turf/open/floor/almayer{ - icon_state = "bluecorner" - }, +/turf/open/floor/almayer/bluecorner, /area/lv624/lazarus/crashed_ship) "Sx" = ( /obj/structure/largecrate/random/barrel/blue, @@ -1746,19 +1407,14 @@ /area/lv624/lazarus/crashed_ship) "SW" = ( /obj/item/weapon/gun/smg/fp9000, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/lv624/lazarus/crashed_ship) "Tx" = ( /obj/structure/largecrate/supply/supplies/mre{ desc = "A supply crate containing fifty reposessed USCM MRE packets."; name = "\improper CLF Supply MRE crate (x50)" }, -/turf/open/floor/plating{ - dir = 9; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/northwest, /area/lv624/lazarus/crashed_ship) "Tz" = ( /turf/closed/shuttle/ert{ @@ -1770,9 +1426,7 @@ dir = 8; icon_state = "plasteel_closed_1" }, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/lv624/lazarus/crashed_ship) "TK" = ( /obj/item/stack/rods, @@ -1802,10 +1456,7 @@ /obj/item/weapon/gun/rifle/mar40{ pixel_y = 6 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/northeast, /area/lv624/lazarus/crashed_ship) "TQ" = ( /turf/closed/shuttle/ert{ @@ -1813,10 +1464,7 @@ }, /area/lv624/lazarus/crashed_ship) "Ud" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "emeraldcorner" - }, +/turf/open/floor/almayer/emeraldcorner/west, /area/lv624/lazarus/crashed_ship) "Up" = ( /obj/structure/surface/table/almayer, @@ -1824,15 +1472,11 @@ /obj/item/storage/bag/trash, /obj/item/tool/screwdriver, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/lv624/lazarus/crashed_ship) "Uv" = ( /obj/item/ammo_magazine/smg/fp9000, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3, /area/lv624/lazarus/crashed_ship) "Uw" = ( /obj/structure/largecrate/random/barrel/blue, @@ -1842,14 +1486,10 @@ /obj/structure/barricade/plasteel/wired{ icon_state = "plasteel_2" }, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3, /area/lv624/lazarus/crashed_ship) "UV" = ( -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/lv624/ground/caves/south_west_caves) "Vb" = ( /obj/item/stack/rods, @@ -1859,10 +1499,7 @@ /area/lv624/lazarus/crashed_ship) "Ve" = ( /obj/item/stack/rods, -/turf/open/floor{ - dir = 8; - icon_state = "damaged3" - }, +/turf/open/floor/damaged3/west, /area/lv624/ground/caves/south_west_caves) "Vh" = ( /obj/structure/surface/rack, @@ -1873,17 +1510,12 @@ /obj/item/device/radio{ pixel_x = 3 }, -/turf/open/floor/almayer{ - icon_state = "green" - }, +/turf/open/floor/almayer/green, /area/lv624/lazarus/crashed_ship) "Vj" = ( /obj/item/ammo_magazine/smg/fp9000, /obj/item/ammo_magazine/smg/fp9000, -/turf/open/floor/plating{ - dir = 4; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/east, /area/lv624/lazarus/crashed_ship) "Vs" = ( /obj/item/ammo_casing/shell{ @@ -1919,10 +1551,7 @@ pixel_x = -3; pixel_y = 20 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orangecorner" - }, +/turf/open/floor/almayer/orangecorner/north, /area/lv624/lazarus/crashed_ship) "VX" = ( /turf/closed/shuttle/ert{ @@ -1931,9 +1560,7 @@ /area/lv624/lazarus/crashed_ship) "Wa" = ( /obj/effect/landmark/survivor_spawner/lv624_crashed_clf, -/turf/open/floor/almayer{ - icon_state = "green" - }, +/turf/open/floor/almayer/green, /area/lv624/lazarus/crashed_ship) "Wg" = ( /obj/structure/surface/table/almayer, @@ -1949,9 +1576,7 @@ /area/lv624/lazarus/crashed_ship) "Wt" = ( /obj/structure/largecrate/supply/ammo/m56d, -/turf/open/floor{ - icon_state = "platingdmg1" - }, +/turf/open/floor/platingdmg1, /area/lv624/lazarus/crashed_ship) "WH" = ( /turf/closed/shuttle/ert{ @@ -1960,15 +1585,10 @@ /area/lv624/lazarus/crashed_ship) "WJ" = ( /obj/structure/largecrate/supply/supplies/flares, -/turf/open/floor/plating{ - dir = 10; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/southwest, /area/lv624/lazarus/crashed_ship) "Xm" = ( -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3, /area/lv624/ground/caves/south_west_caves) "Xq" = ( /turf/closed/shuttle/ert{ @@ -1977,20 +1597,14 @@ /area/lv624/lazarus/crashed_ship) "Xx" = ( /obj/item/stack/rods, -/turf/open/floor{ - dir = 8; - icon_state = "damaged3" - }, +/turf/open/floor/damaged3/west, /area/lv624/lazarus/crashed_ship) "XG" = ( /obj/structure/machinery/light/small{ dir = 1; pixel_y = 20 }, -/turf/open/floor/plating{ - dir = 1; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/north, /area/lv624/lazarus/crashed_ship) "XM" = ( /obj/structure/transmitter/clf_net{ @@ -1998,10 +1612,7 @@ phone_id = "Cargo Bay"; pixel_y = 32 }, -/turf/open/floor{ - dir = 8; - icon_state = "damaged3" - }, +/turf/open/floor/damaged3/west, /area/lv624/lazarus/crashed_ship) "XX" = ( /turf/closed/shuttle/ert{ @@ -2010,26 +1621,19 @@ /area/lv624/lazarus/crashed_ship) "Ya" = ( /obj/item/ammo_magazine/sniper/svd, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3, /area/lv624/lazarus/crashed_ship) "Yh" = ( /obj/structure/barricade/metal/wired{ dir = 8 }, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, +/turf/open/floor/plating/platingdmg3, /area/lv624/lazarus/crashed_ship) "Yj" = ( /turf/template_noop, /area/template_noop) "Ys" = ( -/turf/open/floor/plating{ - dir = 10; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/southwest, /area/lv624/lazarus/crashed_ship) "Yx" = ( /obj/structure/reagent_dispensers/fueltank, @@ -2041,9 +1645,7 @@ department = "CLF - Cell 42" }, /obj/item/paper/prison_station/pirate_note/clfship, -/turf/open/floor/almayer{ - icon_state = "emerald" - }, +/turf/open/floor/almayer/emerald, /area/lv624/lazarus/crashed_ship) "YF" = ( /turf/closed/shuttle/ert{ @@ -2052,10 +1654,7 @@ }, /area/lv624/lazarus/crashed_ship) "YX" = ( -/turf/open/floor/plating{ - dir = 6; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/southeast, /area/lv624/lazarus/crashed_ship) "Zu" = ( /obj/structure/surface/rack, @@ -2065,10 +1664,7 @@ dir = 1; pixel_y = 20 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "bluecorner" - }, +/turf/open/floor/almayer/bluecorner/east, /area/lv624/lazarus/crashed_ship) "ZN" = ( /obj/item/stack/sheet/metal{ @@ -2076,10 +1672,7 @@ pixel_x = 4; pixel_y = 4 }, -/turf/open/floor/plating{ - dir = 6; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/southeast, /area/lv624/lazarus/crashed_ship) "ZS" = ( /turf/closed/shuttle/ert{ @@ -2087,9 +1680,7 @@ }, /area/lv624/lazarus/crashed_ship) "ZV" = ( -/turf/open/floor/almayer{ - icon_state = "greencorner" - }, +/turf/open/floor/almayer/greencorner, /area/lv624/lazarus/crashed_ship) (1,1,1) = {" diff --git a/maps/map_files/LV624/standalone/corporatedome.dmm b/maps/map_files/LV624/standalone/corporatedome.dmm new file mode 100644 index 000000000000..e4fb2114f273 --- /dev/null +++ b/maps/map_files/LV624/standalone/corporatedome.dmm @@ -0,0 +1,1493 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aQ" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ + name = "\improper Corporation Dome"; + req_access_txt = "100" + }, +/turf/open/floor/white, +/area/lv624/lazarus/corporate_dome) +"bm" = ( +/obj/structure/surface/rack, +/obj/item/spacecash/c1000/counterfeit, +/obj/item/spacecash/c1000/counterfeit, +/obj/item/spacecash/c1000/counterfeit, +/turf/open/floor/whiteblue/west, +/area/lv624/lazarus/corporate_dome) +"bA" = ( +/obj/effect/decal/cleanable/blood/drip, +/turf/open/floor/white, +/area/lv624/lazarus/corporate_dome) +"bD" = ( +/obj/effect/decal/cleanable/blood/drip, +/turf/open/gm/dirt, +/area/lv624/ground/colony/west_tcomms_road) +"bE" = ( +/obj/effect/decal/cleanable/blood/drip, +/obj/item/shard, +/turf/open/floor/white, +/area/lv624/lazarus/corporate_dome) +"cm" = ( +/obj/structure/largecrate/random/case/small, +/obj/structure/barricade/sandbags{ + dir = 4 + }, +/turf/open/floor/white, +/area/lv624/lazarus/corporate_dome) +"cn" = ( +/obj/structure/machinery/light{ + dir = 8 + }, +/obj/structure/largecrate/random/case/double, +/turf/open/floor/whiteblue/southwest, +/area/lv624/lazarus/corporate_dome) +"cA" = ( +/turf/open/floor/white, +/area/lv624/lazarus/corporate_dome) +"cB" = ( +/obj/structure/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/dark, +/area/lv624/lazarus/corporate_dome) +"cR" = ( +/obj/structure/flora/jungle/vines/light_2, +/obj/structure/flora/jungle/vines/heavy, +/turf/closed/wall/r_wall, +/area/lv624/lazarus/corporate_dome) +"da" = ( +/obj/effect/decal/cleanable/blood/drip{ + pixel_y = 20 + }, +/obj/effect/decal/cleanable/blood/drip, +/turf/open/floor/plating/asteroidfloor/north, +/area/lv624/lazarus/landing_zones/lz2) +"dq" = ( +/obj/structure/surface/table/woodentable/fancy, +/obj/item/folder/white{ + pixel_y = 8 + }, +/obj/item/folder/yellow{ + pixel_y = 4 + }, +/obj/item/folder/red, +/obj/effect/landmark/objective_landmark/close, +/turf/open/floor/whiteyellow/east, +/area/lv624/lazarus/corporate_dome) +"dH" = ( +/obj/structure/machinery/blackbox_recorder, +/obj/item/prop/almayer/flight_recorder/colony{ + pixel_x = -6; + pixel_y = 10 + }, +/turf/open/floor/greengrid, +/area/lv624/lazarus/corporate_dome) +"dI" = ( +/obj/effect/decal/cleanable/blood{ + icon_state = "gib6" + }, +/turf/open/gm/dirt, +/area/lv624/ground/colony/west_tcomms_road) +"dO" = ( +/obj/item/weapon/pole/fancy_cane, +/obj/item/shard, +/turf/open/floor/whiteyellow/east, +/area/lv624/lazarus/corporate_dome) +"dY" = ( +/turf/open/floor/plating/asteroidwarning, +/area/lv624/lazarus/landing_zones/lz2) +"ev" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/effect/landmark/objective_landmark/close, +/turf/open/floor/white, +/area/lv624/lazarus/corporate_dome) +"eF" = ( +/obj/structure/barricade/deployable{ + damage_state = 1; + health = 245; + icon_state = "folding_1" + }, +/turf/open/floor/whiteblue/southwest, +/area/lv624/lazarus/corporate_dome) +"fm" = ( +/obj/effect/vehicle_spawner/van/decrepit, +/obj/effect/decal/cleanable/blood/oil, +/turf/open/floor/dark, +/area/lv624/lazarus/corporate_dome) +"fq" = ( +/obj/effect/acid_hole, +/turf/closed/wall/r_wall, +/area/lv624/lazarus/corporate_dome) +"ft" = ( +/obj/effect/decal/cleanable/blood/oil, +/turf/open/floor/dark, +/area/lv624/lazarus/corporate_dome) +"fF" = ( +/obj/item/ammo_casing/bullet{ + icon_state = "casing_9_1" + }, +/turf/open/floor/white, +/area/lv624/lazarus/corporate_dome) +"fH" = ( +/turf/open/floor/whiteblue/east, +/area/lv624/lazarus/corporate_dome) +"gx" = ( +/obj/structure/window/framed/colony/reinforced, +/turf/open/floor/plating, +/area/lv624/lazarus/corporate_dome) +"gz" = ( +/obj/item/shard, +/turf/open/gm/grass/grass1, +/area/lv624/ground/jungle/west_central_jungle) +"gX" = ( +/obj/structure/machinery/door/airlock/almayer/engineering/colony{ + name = "\improper Garage"; + req_access_txt = "100"; + req_one_access = null + }, +/turf/open/floor/dark, +/area/lv624/lazarus/corporate_dome) +"ha" = ( +/turf/open/floor/whiteyellow/southwest, +/area/lv624/lazarus/corporate_dome) +"hc" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced, +/obj/structure/machinery/light{ + dir = 4 + }, +/obj/structure/showcase{ + desc = "The display model for a Weyland Yutani generation one synthetic. It almost feels like the eyes on this one follow you."; + icon = 'icons/mob/humans/species/r_synthetic.dmi'; + icon_state = "Synthetic_Template"; + name = "Display synthetic" + }, +/obj/item/clothing/under/marine/veteran/pmc/corporate{ + pixel_y = -2 + }, +/turf/open/floor/whiteblue/northeast, +/area/lv624/lazarus/corporate_dome) +"he" = ( +/obj/structure/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/dark, +/area/lv624/lazarus/corporate_dome) +"hf" = ( +/obj/structure/machinery/vending/snack, +/turf/open/floor/white, +/area/lv624/lazarus/corporate_dome) +"is" = ( +/obj/item/stack/sheet/wood, +/obj/effect/decal/cleanable/blood/gibs/xeno, +/turf/open/floor/whiteyellow/east, +/area/lv624/lazarus/corporate_dome) +"iF" = ( +/obj/structure/closet/crate/secure/weyland, +/obj/item/reagent_container/food/snacks/packaged_hdogs, +/obj/item/reagent_container/food/snacks/packaged_hdogs, +/obj/item/reagent_container/food/snacks/packaged_burrito, +/obj/item/reagent_container/food/snacks/packaged_burrito, +/obj/item/reagent_container/food/snacks/packaged_burger, +/obj/item/reagent_container/food/snacks/packaged_burger, +/turf/open/floor/whitebluecorner/west, +/area/lv624/lazarus/corporate_dome) +"iT" = ( +/obj/structure/filingcabinet, +/obj/effect/landmark/objective_landmark/close, +/turf/open/floor/whiteyellow/southwest, +/area/lv624/lazarus/corporate_dome) +"jH" = ( +/obj/structure/bookcase/manuals/medical, +/obj/item/book/manual/security_space_law, +/obj/item/book/manual/medical_diagnostics_manual, +/obj/item/book/manual/research_and_development, +/turf/open/floor/whiteyellow/east, +/area/lv624/lazarus/corporate_dome) +"jJ" = ( +/obj/item/shard, +/turf/open/floor/whiteyellow/west, +/area/lv624/lazarus/corporate_dome) +"kl" = ( +/obj/structure/machinery/light{ + dir = 4 + }, +/turf/open/floor/whiteblue/east, +/area/lv624/lazarus/corporate_dome) +"kU" = ( +/obj/structure/machinery/door_control{ + id = "garage_lv"; + name = "Garage Shutters"; + pixel_y = -28 + }, +/obj/effect/landmark/corpsespawner/colonist, +/obj/effect/decal/cleanable/blood, +/turf/open/floor/plating/asteroidwarning, +/area/lv624/lazarus/landing_zones/lz2) +"ln" = ( +/obj/structure/machinery/light{ + dir = 8 + }, +/turf/open/floor/whiteblue/northwest, +/area/lv624/lazarus/corporate_dome) +"lG" = ( +/obj/item/storage/firstaid/adv/empty, +/obj/structure/transmitter/colony_net{ + phone_category = "Lazarus Landing"; + phone_color = "blue"; + phone_id = "Corporate Office"; + pixel_y = 24 + }, +/turf/open/floor/whiteyellow/northeast, +/area/lv624/lazarus/corporate_dome) +"lX" = ( +/obj/structure/window_frame/colony/reinforced, +/obj/item/shard, +/turf/open/floor/plating/platingdmg1, +/area/lv624/lazarus/corporate_dome) +"mg" = ( +/obj/effect/decal/cleanable/blood, +/turf/open/floor/white, +/area/lv624/lazarus/corporate_dome) +"mi" = ( +/turf/open/floor/plating/platingdmg1, +/area/lv624/lazarus/corporate_dome) +"mp" = ( +/obj/effect/decal/cleanable/blood/oil, +/obj/item/stack/rods, +/obj/structure/machinery/vending/coffee, +/turf/open/floor/white, +/area/lv624/lazarus/corporate_dome) +"ms" = ( +/turf/open/floor/whiteblue, +/area/lv624/lazarus/corporate_dome) +"mw" = ( +/obj/effect/landmark/survivor_spawner/lv624_corporate_dome_goon, +/obj/item/ammo_casing/bullet, +/turf/open/floor/dark, +/area/lv624/lazarus/corporate_dome) +"mK" = ( +/obj/effect/spawner/gibspawner/human, +/turf/open/gm/dirt, +/area/lv624/ground/colony/west_tcomms_road) +"ny" = ( +/obj/effect/landmark/corpsespawner/prisoner, +/obj/effect/decal/cleanable/blood, +/obj/item/clothing/glasses/sunglasses/blindfold, +/turf/open/floor/dark, +/area/lv624/lazarus/corporate_dome) +"oj" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ + dir = 1; + name = "\improper Corporation Office"; + req_access_txt = "100" + }, +/turf/open/floor/white, +/area/lv624/lazarus/corporate_dome) +"oq" = ( +/obj/structure/window_frame/colony/reinforced, +/turf/open/floor/plating, +/area/lv624/lazarus/corporate_dome) +"pg" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/machinery/light{ + dir = 4 + }, +/obj/structure/showcase{ + desc = "The display model for a Weyland Yutani generation one synthetic. It almost feels like the eyes on this one follow you."; + icon = 'icons/mob/humans/species/r_synthetic.dmi'; + icon_state = "Synthetic_Template"; + name = "Display synthetic" + }, +/obj/item/clothing/under/liaison_suit/blazer, +/obj/item/clothing/head/manager{ + pixel_y = 13 + }, +/turf/open/floor/whiteblue, +/area/lv624/lazarus/corporate_dome) +"pR" = ( +/obj/structure/filingcabinet, +/obj/effect/landmark/objective_landmark/close, +/turf/open/floor/whiteyellow/southeast, +/area/lv624/lazarus/corporate_dome) +"qn" = ( +/obj/structure/machinery/light/small{ + dir = 4 + }, +/obj/structure/closet/bodybag, +/obj/effect/landmark/corpsespawner/clf, +/turf/open/floor/dark, +/area/lv624/lazarus/corporate_dome) +"qH" = ( +/obj/structure/machinery/door/airlock/almayer/engineering/colony{ + dir = 1; + name = "\improper Workshop Storage"; + req_access_txt = "100"; + req_one_access = null + }, +/turf/open/floor/dark, +/area/lv624/lazarus/corporate_dome) +"qI" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/paper_bin/wy{ + pixel_y = 8 + }, +/obj/item/tool/pen/clicky, +/obj/item/device/flashlight/lamp{ + pixel_x = -7; + pixel_y = 15 + }, +/turf/open/floor/whiteblue/northeast, +/area/lv624/lazarus/corporate_dome) +"qJ" = ( +/obj/structure/machinery/door/airlock/almayer/generic{ + dir = 1; + name = "\improper Storage Room" + }, +/turf/open/floor/white, +/area/lv624/lazarus/corporate_dome) +"qM" = ( +/obj/effect/decal/cleanable/blood/oil/streak, +/obj/structure/machinery/door_control{ + id = "garage_lv"; + name = "Garage Shutters"; + pixel_x = -28 + }, +/turf/open/floor/dark, +/area/lv624/lazarus/corporate_dome) +"sc" = ( +/obj/effect/decal/cleanable/blood, +/obj/structure/bed/chair/office/light{ + dir = 1 + }, +/obj/effect/landmark/survivor_spawner/lv624_corporate_dome_cl, +/turf/open/floor/whitebluecorner/north, +/area/lv624/lazarus/corporate_dome) +"sm" = ( +/obj/structure/machinery/vending/cigarette, +/turf/open/floor/white, +/area/lv624/lazarus/corporate_dome) +"sH" = ( +/obj/structure/window_frame/colony/reinforced, +/obj/item/stack/rods, +/turf/open/floor/plating/platingdmg1, +/area/lv624/lazarus/corporate_dome) +"sX" = ( +/obj/structure/window/framed/colony/reinforced, +/turf/open/floor/plating/platingdmg2, +/area/lv624/lazarus/corporate_dome) +"vf" = ( +/obj/structure/machinery/door/airlock/almayer/generic{ + dir = 1; + name = "\improper Corporate Liaison"; + locked = 1 + }, +/turf/open/floor/white, +/area/lv624/lazarus/corporate_dome) +"vC" = ( +/obj/structure/prop/server_equipment/yutani_server/off, +/turf/open/floor/greengrid, +/area/lv624/lazarus/corporate_dome) +"vW" = ( +/obj/structure/barricade/wooden, +/turf/open/floor/whiteyellow, +/area/lv624/lazarus/corporate_dome) +"wy" = ( +/obj/structure/machinery/door/airlock/almayer/engineering/colony{ + name = "\improper Workshop Storage"; + req_access_txt = "100"; + req_one_access = null + }, +/turf/open/floor/plating/asteroidfloor/north, +/area/lv624/lazarus/corporate_dome) +"wW" = ( +/obj/structure/closet/bodybag, +/obj/effect/landmark/corpsespawner/security/marshal, +/turf/open/floor/dark, +/area/lv624/lazarus/corporate_dome) +"xk" = ( +/obj/structure/machinery/light{ + dir = 4 + }, +/obj/structure/filingcabinet{ + density = 0; + pixel_x = -8; + pixel_y = 16 + }, +/obj/effect/landmark/objective_landmark/science, +/turf/open/floor/whiteblue/northeast, +/area/lv624/lazarus/corporate_dome) +"xG" = ( +/obj/structure/machinery/photocopier, +/obj/effect/decal/cleanable/blood/drip, +/turf/open/floor/white, +/area/lv624/lazarus/corporate_dome) +"yc" = ( +/turf/open/floor/plating/asteroidwarning/north, +/area/lv624/lazarus/landing_zones/lz2) +"yJ" = ( +/turf/open/floor/plating/platingdmg2, +/area/lv624/lazarus/corporate_dome) +"zm" = ( +/obj/structure/safe{ + spawnkey = 0 + }, +/obj/structure/machinery/light{ + dir = 1 + }, +/obj/effect/landmark/objective_landmark/close, +/turf/open/floor/whiteyellow/northeast, +/area/lv624/lazarus/corporate_dome) +"zs" = ( +/obj/structure/window_frame/colony/reinforced, +/obj/item/shard, +/turf/open/floor/plating, +/area/lv624/lazarus/corporate_dome) +"zw" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/folder/black{ + name = "Weyland-Yutani Classified folder"; + desc = "A black folder which has the Weyland-Yutani symbol inside it, along with CLASSIFIED in giant red letters." + }, +/obj/effect/landmark/objective_landmark/close, +/obj/item/reagent_container/food/drinks/coffeecup/wy{ + pixel_x = -9; + pixel_y = 7 + }, +/turf/open/floor/whiteblue/southeast, +/area/lv624/lazarus/corporate_dome) +"zx" = ( +/obj/effect/decal/cleanable/blood/gibs/xeno, +/turf/open/floor/white, +/area/lv624/lazarus/corporate_dome) +"zz" = ( +/obj/structure/window_frame/colony/reinforced, +/obj/item/tool/pen/red/clicky, +/turf/open/floor/plating, +/area/lv624/lazarus/corporate_dome) +"Aj" = ( +/obj/structure/sink{ + dir = 4; + pixel_x = 11 + }, +/obj/structure/prop/invuln/pipe_water{ + dir = 8; + pixel_y = -12; + pixel_x = 6 + }, +/turf/open/floor/plating, +/area/lv624/lazarus/corporate_dome) +"AG" = ( +/obj/structure/barricade/wooden, +/turf/open/floor/white, +/area/lv624/lazarus/corporate_dome) +"AT" = ( +/obj/item/shard, +/turf/open/floor/white, +/area/lv624/lazarus/corporate_dome) +"Bh" = ( +/turf/open/floor/dark, +/area/lv624/lazarus/corporate_dome) +"BL" = ( +/obj/structure/machinery/door/poddoor/almayer{ + dir = 8; + id = "garage_lv"; + name = "\improper Garage" + }, +/turf/open/floor/dark, +/area/lv624/lazarus/corporate_dome) +"BZ" = ( +/obj/item/ammo_casing/bullet{ + icon_state = "cartridge_6_1" + }, +/turf/open/floor/white, +/area/lv624/lazarus/corporate_dome) +"Ct" = ( +/obj/structure/window_frame/colony/reinforced, +/turf/open/floor/plating/platingdmg1, +/area/lv624/lazarus/corporate_dome) +"CF" = ( +/obj/structure/machinery/door/airlock/almayer/generic{ + locked = 1; + name = "\improper Corporate Liaison" + }, +/obj/effect/decal/cleanable/blood/drip, +/turf/open/floor/white, +/area/lv624/lazarus/corporate_dome) +"Df" = ( +/obj/effect/decal/cleanable/blood/drip, +/turf/open/floor/whiteyellowcorner/west, +/area/lv624/lazarus/corporate_dome) +"Dn" = ( +/obj/item/ammo_magazine/smg/mp5, +/obj/item/ammo_magazine/smg/mp5, +/obj/item/ammo_magazine/smg/mp5, +/obj/item/ammo_magazine/smg/mp5, +/obj/item/ammo_magazine/smg/mp5, +/obj/item/ammo_magazine/smg/mp5, +/obj/item/ammo_magazine/smg/mp5, +/obj/item/ammo_magazine/smg/mp5, +/obj/item/ammo_magazine/smg/mp5, +/obj/structure/closet/crate/secure/weyland, +/obj/item/weapon/gun/smg/mp5, +/obj/item/weapon/gun/smg/mp5, +/turf/open/floor/whitebluecorner/east, +/area/lv624/lazarus/corporate_dome) +"Dp" = ( +/obj/effect/decal/cleanable/blood, +/obj/structure/bed/roller, +/obj/effect/landmark/corpsespawner/wysec, +/obj/item/prop/colony/usedbandage{ + dir = 9; + pixel_x = 5; + pixel_y = 15 + }, +/turf/open/floor/white, +/area/lv624/lazarus/corporate_dome) +"DU" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/storage/toolbox/mechanical{ + pixel_y = 6 + }, +/obj/item/storage/toolbox/electrical, +/turf/open/floor/whiteblue/southeast, +/area/lv624/lazarus/corporate_dome) +"Ez" = ( +/obj/structure/machinery/light_construct{ + dir = 4 + }, +/obj/item/stack/cable_coil, +/turf/open/floor/whiteyellow/southeast, +/area/lv624/lazarus/corporate_dome) +"EM" = ( +/obj/structure/flora/jungle/vines/light_3, +/turf/closed/wall/r_wall, +/area/lv624/lazarus/corporate_dome) +"Fh" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/storage/fancy/cigarettes/emeraldgreen, +/obj/item/storage/fancy/cigarettes/wypacket{ + pixel_x = 5; + pixel_y = 6 + }, +/turf/open/floor/whitebluecorner, +/area/lv624/lazarus/corporate_dome) +"Fk" = ( +/obj/effect/decal/cleanable/blood/drip, +/turf/open/floor/plating/asteroidwarning/north, +/area/lv624/lazarus/landing_zones/lz2) +"Fl" = ( +/turf/open/floor/whitebluecorner/north, +/area/lv624/lazarus/corporate_dome) +"Fu" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/storage/firstaid/adv{ + pixel_x = 6; + pixel_y = 6 + }, +/obj/item/storage/firstaid/adv, +/obj/effect/landmark/objective_landmark/medium, +/turf/open/floor/greengrid, +/area/lv624/lazarus/corporate_dome) +"FP" = ( +/obj/item/shard, +/obj/item/stack/sheet/wood, +/turf/open/floor/whiteyellow/southeast, +/area/lv624/lazarus/corporate_dome) +"FZ" = ( +/obj/structure/machinery/faxmachine/corporate/liaison, +/obj/structure/surface/table/reinforced/prison, +/turf/open/floor/whiteblue/southwest, +/area/lv624/lazarus/corporate_dome) +"Gi" = ( +/obj/structure/prop/server_equipment/yutani_server/broken, +/turf/open/floor/greengrid, +/area/lv624/lazarus/corporate_dome) +"Go" = ( +/obj/item/ammo_casing/bullet{ + icon_state = "cartridge_10_1" + }, +/turf/open/floor/white, +/area/lv624/lazarus/corporate_dome) +"Gt" = ( +/obj/structure/machinery/light_construct/small{ + dir = 8 + }, +/turf/open/floor/plating/platingdmg1, +/area/lv624/lazarus/corporate_dome) +"GM" = ( +/turf/open/floor/whiteyellowcorner/north, +/area/lv624/lazarus/corporate_dome) +"GV" = ( +/turf/open/floor/whiteblue/west, +/area/lv624/lazarus/corporate_dome) +"Hn" = ( +/obj/item/ammo_casing/bullet{ + icon_state = "cartridge_9_1" + }, +/obj/effect/decal/cleanable/blood/gibs/xeno, +/turf/open/floor/white, +/area/lv624/lazarus/corporate_dome) +"Ho" = ( +/obj/structure/largecrate/random/barrel/green, +/turf/open/floor/whiteyellowcorner, +/area/lv624/lazarus/corporate_dome) +"Hv" = ( +/obj/effect/decal/cleanable/blood/drip, +/obj/structure/surface/table/reinforced/prison, +/obj/item/storage/fancy/cigar, +/obj/effect/landmark/objective_landmark/close, +/turf/open/floor/whiteyellow/northwest, +/area/lv624/lazarus/corporate_dome) +"HK" = ( +/obj/structure/machinery/power/apc{ + dir = 1 + }, +/obj/effect/spawner/random/powercell, +/obj/item/tool/crowbar/red{ + pixel_x = 8; + pixel_y = 8 + }, +/obj/item/tool/screwdriver, +/obj/effect/decal/cleanable/blood/oil, +/turf/open/floor/whiteblue/northwest, +/area/lv624/lazarus/corporate_dome) +"Ii" = ( +/turf/open/gm/dirt, +/area/lv624/ground/colony/west_tcomms_road) +"IM" = ( +/obj/item/shard, +/obj/effect/decal/cleanable/blood/oil, +/obj/item/stack/rods{ + amount = 15 + }, +/turf/open/floor/white, +/area/lv624/lazarus/corporate_dome) +"Jg" = ( +/obj/structure/machinery/light, +/turf/open/floor/greengrid, +/area/lv624/lazarus/corporate_dome) +"Jq" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ + locked = 1; + name = "\improper Corporation Dome"; + req_access_txt = "100" + }, +/turf/open/floor/white, +/area/lv624/lazarus/corporate_dome) +"JL" = ( +/obj/effect/decal/cleanable/blood, +/obj/item/prop/colony/usedbandage{ + dir = 10 + }, +/turf/open/floor/whiteyellow, +/area/lv624/lazarus/corporate_dome) +"Kv" = ( +/obj/effect/decal/cleanable/blood, +/turf/open/gm/dirt, +/area/lv624/ground/colony/west_tcomms_road) +"KC" = ( +/turf/open/floor/whiteyellowcorner/east, +/area/lv624/lazarus/corporate_dome) +"KG" = ( +/obj/effect/decal/cleanable/blood/xeno, +/turf/open/floor/white, +/area/lv624/lazarus/corporate_dome) +"Le" = ( +/obj/effect/acid_hole{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/lv624/lazarus/corporate_dome) +"Lh" = ( +/obj/item/stack/cable_coil, +/obj/effect/decal/cleanable/blood/oil/streak, +/obj/item/shard, +/obj/structure/machinery/vending/cola, +/turf/open/floor/white, +/area/lv624/lazarus/corporate_dome) +"Li" = ( +/obj/structure/window_frame/colony/reinforced, +/obj/item/shard, +/obj/item/stack/rods, +/turf/open/floor/plating, +/area/lv624/lazarus/corporate_dome) +"Ln" = ( +/obj/structure/barricade/plasteel/metal{ + health = 250 + }, +/turf/open/floor/white, +/area/lv624/lazarus/corporate_dome) +"LZ" = ( +/turf/open/floor/plating/platingdmg3, +/area/lv624/lazarus/corporate_dome) +"Me" = ( +/turf/open/floor/plating/asteroidfloor/north, +/area/lv624/lazarus/landing_zones/lz2) +"Ml" = ( +/obj/structure/machinery/atm{ + name = "Weyland-Yutani Automatic Teller Machine"; + pixel_y = 30 + }, +/turf/open/floor/whiteblue/northwest, +/area/lv624/lazarus/corporate_dome) +"OH" = ( +/obj/structure/machinery/cm_vending/sorted/medical/wall_med/limited{ + pixel_x = 29 + }, +/obj/structure/closet/crate/secure/weyland, +/obj/item/stack/sheet/metal/med_small_stack, +/obj/item/stack/sheet/plasteel/med_small_stack, +/obj/item/stack/sandbags/small_stack, +/obj/item/device/motiondetector/hacked/pmc, +/turf/open/floor/dark, +/area/lv624/lazarus/corporate_dome) +"Pa" = ( +/obj/structure/closet/toolcloset, +/turf/open/floor/plating, +/area/lv624/lazarus/corporate_dome) +"Pr" = ( +/obj/item/ammo_casing/bullet{ + icon_state = "casing_9_1" + }, +/turf/open/floor/whiteyellowcorner/east, +/area/lv624/lazarus/corporate_dome) +"Qi" = ( +/obj/structure/flora/jungle/vines/light_1, +/turf/closed/wall/r_wall, +/area/lv624/lazarus/corporate_dome) +"Rn" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced, +/obj/structure/machinery/light{ + dir = 8 + }, +/obj/structure/showcase{ + desc = "The display model for a Weyland Yutani generation one synthetic. It almost feels like the eyes on this one follow you."; + icon = 'icons/mob/humans/species/r_synthetic.dmi'; + icon_state = "Synthetic_Template"; + name = "Display synthetic" + }, +/obj/item/clothing/head/helmet/marine/veteran/pmc{ + pixel_y = 11; + pixel_x = -1 + }, +/obj/item/clothing/under/marine/veteran/pmc{ + pixel_y = -2 + }, +/turf/open/floor/whiteblue/northwest, +/area/lv624/lazarus/corporate_dome) +"RD" = ( +/obj/item/ammo_casing/bullet{ + icon_state = "casing_1_1" + }, +/turf/open/floor/white, +/area/lv624/lazarus/corporate_dome) +"RF" = ( +/obj/effect/decal/cleanable/blood/drip, +/obj/structure/surface/table/reinforced/prison, +/obj/effect/landmark/objective_landmark/close, +/turf/open/floor/white, +/area/lv624/lazarus/corporate_dome) +"RN" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/obj/structure/surface/table/reinforced/prison, +/obj/structure/prop/server_equipment/laptop/on, +/turf/open/floor/whiteblue/northwest, +/area/lv624/lazarus/corporate_dome) +"Sb" = ( +/obj/effect/landmark/survivor_spawner/lv624_corporate_dome_goon, +/turf/open/floor/white, +/area/lv624/lazarus/corporate_dome) +"SO" = ( +/obj/structure/flora/jungle/vines/heavy, +/turf/closed/wall/r_wall, +/area/lv624/lazarus/corporate_dome) +"SV" = ( +/turf/open/floor/greengrid, +/area/lv624/lazarus/corporate_dome) +"Tc" = ( +/obj/item/paper_bin/wy{ + pixel_y = 8 + }, +/obj/item/frame/table/wood/fancy, +/turf/open/floor/whiteyellow/northeast, +/area/lv624/lazarus/corporate_dome) +"TF" = ( +/obj/structure/machinery/light{ + dir = 8 + }, +/obj/structure/largecrate/supply/medicine, +/turf/open/floor/whiteblue/southwest, +/area/lv624/lazarus/corporate_dome) +"Uo" = ( +/obj/item/shard, +/turf/open/floor/plating/asteroidfloor/north, +/area/lv624/lazarus/corporate_dome) +"Uz" = ( +/obj/effect/decal/cleanable/blood/oil/streak, +/turf/open/floor/dark, +/area/lv624/lazarus/corporate_dome) +"UF" = ( +/obj/structure/machinery/light{ + dir = 4 + }, +/turf/open/floor/whiteblue/southeast, +/area/lv624/lazarus/corporate_dome) +"Vj" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/ashtray/glass, +/obj/item/trash/cigbutt/cigarbutt{ + pixel_y = 12 + }, +/obj/item/trash/cigbutt, +/turf/open/floor/whitebluecorner/east, +/area/lv624/lazarus/corporate_dome) +"Wx" = ( +/obj/effect/decal/cleanable/blood/drip, +/turf/open/floor/whiteyellowcorner, +/area/lv624/lazarus/corporate_dome) +"Xc" = ( +/obj/structure/barricade/metal{ + dir = 4; + health = 200 + }, +/turf/open/floor/white, +/area/lv624/lazarus/corporate_dome) +"Xf" = ( +/obj/item/stack/sheet/metal, +/turf/open/floor/plating/platingdmg3, +/area/lv624/lazarus/corporate_dome) +"Xp" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/machinery/light{ + dir = 8 + }, +/obj/structure/showcase{ + desc = "The display model for a Weyland Yutani generation one synthetic. It almost feels like the eyes on this one follow you."; + icon = 'icons/mob/humans/species/r_synthetic.dmi'; + icon_state = "Synthetic_Template"; + name = "Display synthetic" + }, +/obj/item/clothing/under/colonist{ + pixel_y = -2 + }, +/turf/open/floor/whiteblue/southwest, +/area/lv624/lazarus/corporate_dome) +"Xt" = ( +/turf/template_noop, +/area/template_noop) +"Xz" = ( +/obj/item/ammo_casing/bullet{ + icon_state = "cartridge_3_1" + }, +/turf/open/floor/white, +/area/lv624/lazarus/corporate_dome) +"XC" = ( +/obj/structure/machinery/light{ + dir = 8 + }, +/obj/structure/largecrate/random/barrel/white, +/turf/open/floor/whiteyellowcorner/west, +/area/lv624/lazarus/corporate_dome) +"XG" = ( +/turf/closed/wall/r_wall, +/area/lv624/lazarus/corporate_dome) +"Ye" = ( +/obj/structure/largecrate/supply/supplies/water, +/turf/open/floor/whiteblue/northeast, +/area/lv624/lazarus/corporate_dome) +"Yg" = ( +/obj/item/moneybag, +/obj/structure/surface/rack, +/obj/item/coin/diamond, +/turf/open/floor/whiteblue/northwest, +/area/lv624/lazarus/corporate_dome) +"Yv" = ( +/obj/item/frame/table/reinforced, +/turf/open/floor/plating, +/area/lv624/lazarus/corporate_dome) +"YN" = ( +/turf/open/gm/dirt, +/area/lv624/lazarus/landing_zones/lz2) +"ZG" = ( +/obj/effect/decal/cleanable/blood, +/obj/effect/landmark/corpsespawner/scientist, +/obj/item/restraint/handcuffs, +/turf/open/floor/dark, +/area/lv624/lazarus/corporate_dome) +"ZO" = ( +/obj/effect/decal/cleanable/blood/drip, +/obj/item/stack/sheet/wood, +/turf/open/floor/white, +/area/lv624/lazarus/corporate_dome) +"ZT" = ( +/obj/effect/landmark/survivor_spawner/lv624_corporate_dome_cl, +/turf/open/floor/white, +/area/lv624/lazarus/corporate_dome) + +(1,1,1) = {" +Xt +Xt +Xt +Fk +Me +dY +Xt +Xt +Xt +Xt +Xt +Xt +Xt +Xt +Xt +Xt +Xt +Xt +Xt +Xt +"} +(2,1,1) = {" +Xt +Xt +Xt +yc +da +dY +Xt +Xt +Xt +Xt +Xt +Xt +Xt +Xt +Xt +Xt +Xt +Xt +Xt +Xt +"} +(3,1,1) = {" +Xt +Xt +Xt +yc +Me +kU +XG +XG +XG +XG +XG +XG +XG +Xt +Xt +Xt +Xt +Xt +Xt +Xt +"} +(4,1,1) = {" +Xt +Xt +XG +BL +BL +BL +XG +he +Bh +fm +he +XG +XG +XG +LZ +yJ +Xt +Xt +Xt +Xt +"} +(5,1,1) = {" +Xt +Xt +XG +Bh +Bh +Bh +qM +Uz +ft +Bh +Bh +XG +Pa +Gt +LZ +LZ +Xt +Xt +Xt +Xt +"} +(6,1,1) = {" +Xt +Xt +XG +ny +Bh +mw +Bh +Bh +Bh +Bh +Bh +qH +Uo +yJ +LZ +mi +Xt +Xt +Xt +Xt +"} +(7,1,1) = {" +Xt +Xt +XG +ZG +cB +mw +wW +qn +OH +Bh +Bh +XG +Yv +Aj +mi +XG +Xt +Xt +Xt +Xt +"} +(8,1,1) = {" +Xt +XG +XG +XG +XG +XG +XG +XG +XG +gX +XG +XG +XG +XG +wy +XG +XG +Xt +Xt +Xt +"} +(9,1,1) = {" +YN +XG +ln +GV +GV +TF +XG +Rn +Fl +cA +iF +Xp +XG +Ml +GV +eF +fq +Ii +Ii +Ii +"} +(10,1,1) = {" +YN +Lh +hf +ev +cA +cA +Jq +cA +cA +Go +cA +cA +aQ +cA +Hn +Ln +aQ +Kv +Ii +Ii +"} +(11,1,1) = {" +YN +mp +sm +RF +fF +KG +cA +cA +cA +Sb +cA +cA +cA +RD +Sb +AG +cA +Ii +dI +mK +"} +(12,1,1) = {" +YN +XG +xk +fH +fH +UF +XG +hc +Dn +cA +cA +pg +XG +Ye +kl +DU +XG +Ii +Ii +bD +"} +(13,1,1) = {" +Xt +XG +XG +XG +XG +XG +XG +XG +XG +cA +oj +XG +XG +XG +XG +XG +XG +Xt +Xt +Xt +"} +(14,1,1) = {" +Xt +Xt +Xt +XG +XG +Yg +bm +FZ +gx +cA +cA +cn +XG +Gi +vC +XG +Xt +Xt +Xt +Xt +"} +(15,1,1) = {" +Xt +Xt +XG +XG +HK +Fl +ZT +ms +IM +cA +BZ +cA +qJ +SV +Jg +XG +Xt +Xt +Xt +Xt +"} +(16,1,1) = {" +Xt +Xt +XG +RN +sc +bA +cA +ms +gx +cm +Sb +UF +XG +Fu +dH +EM +Xt +Xt +Xt +Xt +"} +(17,1,1) = {" +Xt +Xt +XG +qI +Vj +xG +Fh +zw +XG +cA +oj +XG +XG +XG +XG +Qi +Xt +Xt +Xt +Xt +"} +(18,1,1) = {" +Xt +Xt +XG +XG +XG +CF +XG +XG +XG +KG +bA +XC +jJ +iT +Xf +Xt +Xt +Xt +Xt +Xt +"} +(19,1,1) = {" +Xt +Xt +XG +Hv +GM +bA +Df +ha +zz +AT +mg +cA +bA +vW +zs +Xt +Xt +Xt +Xt +Xt +"} +(20,1,1) = {" +Xt +Xt +XG +zm +KC +zx +Dp +JL +oq +cA +Xz +cA +Ho +FP +sH +Xt +Xt +Xt +Xt +Xt +"} +(21,1,1) = {" +Xt +Xt +XG +XG +lG +Pr +cA +ZO +vf +bE +Xc +Wx +Ez +SO +cR +Xt +Xt +Xt +Xt +Xt +"} +(22,1,1) = {" +Xt +Xt +Xt +XG +XG +Tc +dq +dO +Xf +jH +is +pR +SO +SO +Xt +Xt +Xt +Xt +Xt +Xt +"} +(23,1,1) = {" +Xt +Xt +Xt +Xt +XG +Li +sX +Ct +Le +sX +lX +sX +SO +Xt +Xt +Xt +Xt +Xt +Xt +Xt +"} +(24,1,1) = {" +Xt +Xt +Xt +Xt +Xt +Xt +gz +Xt +Xt +Xt +Xt +Xt +Xt +Xt +Xt +Xt +Xt +Xt +Xt +Xt +"} +(25,1,1) = {" +Xt +Xt +Xt +Xt +Xt +Xt +Xt +Xt +Xt +Xt +Xt +Xt +Xt +Xt +Xt +Xt +Xt +Xt +Xt +Xt +"} diff --git a/maps/map_files/LV624/standalone/laststand.dmm b/maps/map_files/LV624/standalone/laststand.dmm index 43201f92cb17..3b678e2c09a6 100644 --- a/maps/map_files/LV624/standalone/laststand.dmm +++ b/maps/map_files/LV624/standalone/laststand.dmm @@ -15,9 +15,7 @@ /obj/structure/largecrate/supply/ammo/shotgun{ pixel_y = 8 }, -/turf/open/floor/wood{ - icon_state = "wood-broken" - }, +/turf/open/floor/wood/wood_broken, /area/lv624/ground/caves/north_central_caves) "ah" = ( /turf/closed/wall/wood, @@ -30,9 +28,7 @@ /turf/open/floor/wood, /area/lv624/ground/caves/north_central_caves) "ak" = ( -/turf/open/floor/wood{ - icon_state = "wood-broken" - }, +/turf/open/floor/wood/wood_broken, /area/lv624/ground/caves/north_central_caves) "al" = ( /obj/structure/bed/alien, @@ -51,9 +47,7 @@ }, /obj/item/tool/kitchen/knife/butcher, /obj/effect/decal/cleanable/blood, -/turf/open/floor/wood{ - icon_state = "wood-broken4" - }, +/turf/open/floor/wood/wood_broken4, /area/lv624/ground/caves/north_central_caves) "ao" = ( /obj/structure/surface/table/woodentable/poor, @@ -70,9 +64,7 @@ /area/lv624/ground/caves/north_central_caves) "ap" = ( /obj/structure/closet/secure_closet/freezer/meat, -/turf/open/floor/wood{ - icon_state = "wood-broken3" - }, +/turf/open/floor/wood/wood_broken3, /area/lv624/ground/caves/north_central_caves) "aq" = ( /obj/structure/closet/crate, @@ -93,9 +85,7 @@ pixel_x = 6; pixel_y = 3 }, -/turf/open/floor/carpet{ - icon_state = "bcarpet08" - }, +/turf/open/floor/carpet/bcarpet08, /area/lv624/ground/caves/north_central_caves) "au" = ( /obj/structure/surface/table/woodentable/poor, @@ -106,15 +96,11 @@ /turf/open/floor/wood, /area/lv624/ground/caves/north_central_caves) "aw" = ( -/turf/open/floor/wood{ - icon_state = "wood-broken6" - }, +/turf/open/floor/wood/wood_broken6, /area/lv624/ground/caves/north_central_caves) "ay" = ( /obj/structure/closet/cabinet, -/turf/open/floor/wood{ - icon_state = "wood-broken" - }, +/turf/open/floor/wood/wood_broken, /area/lv624/ground/caves/north_central_caves) "aA" = ( /obj/structure/barricade/sandbags/wired, @@ -126,9 +112,7 @@ /turf/open/floor/wood, /area/lv624/ground/caves/north_central_caves) "aC" = ( -/turf/open/floor/wood{ - icon_state = "wood-broken4" - }, +/turf/open/floor/wood/wood_broken4, /area/lv624/ground/caves/north_central_caves) "aD" = ( /turf/closed/wall/strata_ice/jungle, @@ -183,9 +167,7 @@ /turf/open/floor/wood, /area/lv624/ground/caves/north_central_caves) "aP" = ( -/turf/open/floor/wood{ - icon_state = "wood-broken3" - }, +/turf/open/floor/wood/wood_broken3, /area/lv624/ground/caves/north_central_caves) "aQ" = ( /obj/structure/surface/table/woodentable/poor, @@ -195,23 +177,17 @@ pixel_x = 4; pixel_y = 4 }, -/turf/open/floor/carpet{ - icon_state = "bcarpet01" - }, +/turf/open/floor/carpet/bcarpet01, /area/lv624/ground/caves/north_central_caves) "aR" = ( /obj/structure/surface/table/woodentable/poor, /obj/item/ammo_magazine/shotgun/buckshot, -/turf/open/floor/carpet{ - icon_state = "bcarpet02" - }, +/turf/open/floor/carpet/bcarpet02, /area/lv624/ground/caves/north_central_caves) "aS" = ( /obj/structure/surface/table/woodentable/poor, /obj/item/tool/candle, -/turf/open/floor/carpet{ - icon_state = "bcarpet03" - }, +/turf/open/floor/carpet/bcarpet03, /area/lv624/ground/caves/north_central_caves) "aU" = ( /obj/effect/decal/cleanable/blood, @@ -224,9 +200,7 @@ /area/lv624/ground/caves/north_central_caves) "aW" = ( /obj/effect/landmark/crap_item, -/turf/open/floor/wood{ - icon_state = "wood-broken6" - }, +/turf/open/floor/wood/wood_broken6, /area/lv624/ground/caves/north_central_caves) "aZ" = ( /obj/structure/window_frame/wood, @@ -243,9 +217,7 @@ /area/lv624/ground/caves/north_central_caves) "bc" = ( /obj/effect/decal/cleanable/blood/drip, -/turf/open/floor/wood{ - icon_state = "wood-broken6" - }, +/turf/open/floor/wood/wood_broken6, /area/lv624/ground/caves/north_central_caves) "bd" = ( /obj/structure/closet/crate, @@ -270,16 +242,12 @@ "jP" = ( /obj/item/weapon/gun/rifle/m41aMK1, /obj/item/ammo_magazine/rifle/m41aMK1, -/turf/open/floor/wood{ - icon_state = "wood-broken6" - }, +/turf/open/floor/wood/wood_broken6, /area/lv624/ground/caves/north_central_caves) "jQ" = ( /obj/effect/landmark/crap_item, /obj/effect/decal/cleanable/blood/drip, -/turf/open/floor/wood{ - icon_state = "wood-broken3" - }, +/turf/open/floor/wood/wood_broken3, /area/lv624/ground/caves/north_central_caves) "lJ" = ( /obj/structure/curtain/red, @@ -291,9 +259,7 @@ pixel_x = 2; pixel_y = 3 }, -/turf/open/floor/wood{ - icon_state = "wood-broken6" - }, +/turf/open/floor/wood/wood_broken6, /area/lv624/ground/caves/north_central_caves) "mu" = ( /obj/structure/surface/table/woodentable/poor, @@ -317,9 +283,7 @@ pixel_x = 1; pixel_y = 9 }, -/turf/open/floor/carpet{ - icon_state = "bcarpet09" - }, +/turf/open/floor/carpet/bcarpet09, /area/lv624/ground/caves/north_central_caves) "pH" = ( /obj/structure/surface/table/woodentable/poor, @@ -355,9 +319,7 @@ "EY" = ( /obj/structure/surface/table/woodentable/poor, /obj/item/ammo_magazine/shotgun/buckshot, -/turf/open/floor/carpet{ - icon_state = "bcarpet07" - }, +/turf/open/floor/carpet/bcarpet07, /area/lv624/ground/caves/north_central_caves) "Ic" = ( /obj/structure/bed/chair/wood/normal{ @@ -372,31 +334,23 @@ /area/lv624/ground/caves/north_central_caves) "Ms" = ( /obj/structure/barricade/sandbags/wired, -/turf/open/floor/wood{ - icon_state = "wood-broken3" - }, +/turf/open/floor/wood/wood_broken3, /area/lv624/ground/caves/north_central_caves) "ND" = ( /obj/structure/surface/table/woodentable/poor, /obj/item/device/flashlight/lantern, /obj/structure/barricade/sandbags/wired, /obj/item/weapon/baseballbat/metal, -/turf/open/floor/wood{ - icon_state = "wood-broken6" - }, +/turf/open/floor/wood/wood_broken6, /area/lv624/ground/caves/north_central_caves) "OT" = ( /obj/structure/kitchenspike, /obj/effect/decal/cleanable/blood, -/turf/open/floor/wood{ - icon_state = "wood-broken" - }, +/turf/open/floor/wood/wood_broken, /area/lv624/ground/caves/north_central_caves) "Td" = ( /obj/structure/barricade/sandbags/wired, -/turf/open/floor/wood{ - icon_state = "wood-broken" - }, +/turf/open/floor/wood/wood_broken, /area/lv624/ground/caves/north_central_caves) "UM" = ( /obj/structure/bed/alien, diff --git a/maps/map_files/LV624/standalone/leftsidepass.dmm b/maps/map_files/LV624/standalone/leftsidepass.dmm index 678059d4ad83..0b90931f2fd3 100644 --- a/maps/map_files/LV624/standalone/leftsidepass.dmm +++ b/maps/map_files/LV624/standalone/leftsidepass.dmm @@ -1,8 +1,4 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE -"ab" = ( -/obj/effect/landmark/lv624/fog_blocker, -/turf/open/gm/coast/north, -/area/lv624/ground/river/west_river) "ac" = ( /obj/effect/landmark/hunter_primary, /turf/open/gm/dirt, @@ -53,87 +49,26 @@ "ar" = ( /turf/open/gm/coast/beachcorner/south_east, /area/lv624/ground/river/west_river) -"as" = ( -/obj/structure/flora/bush/ausbushes/var3/fullgrass, -/turf/open/gm/dirt, -/area/lv624/ground/jungle/west_jungle) -"at" = ( -/turf/open/gm/dirtgrassborder/grassdirt_corner2/south_east, -/area/lv624/ground/river/west_river) "au" = ( /turf/open/gm/dirtgrassborder/south, /area/lv624/ground/jungle/west_jungle) -"av" = ( -/turf/open/gm/dirtgrassborder/grassdirt_corner2/south_west, -/area/lv624/ground/jungle/west_jungle) "aw" = ( -/obj/structure/flora/bush/ausbushes/reedbush, /turf/open/gm/coast/beachcorner/south_west, /area/lv624/ground/jungle/west_jungle) -"ax" = ( -/turf/open/gm/dirtgrassborder/grassdirt_corner/south_east, -/area/lv624/ground/jungle/west_jungle) -"ay" = ( -/obj/structure/flora/bush/ausbushes/ausbush, -/turf/open/gm/grass/grass2, -/area/lv624/ground/jungle/west_jungle) -"az" = ( -/turf/open/gm/grass/grass2, -/area/lv624/ground/jungle/west_jungle) -"aA" = ( -/obj/structure/flora/bush/ausbushes/var3/stalkybush, -/turf/open/gm/grass/grass2, -/area/lv624/ground/jungle/west_jungle) -"aB" = ( -/turf/open/gm/dirtgrassborder/grassdirt_corner/south_west, -/area/lv624/ground/jungle/west_jungle) "aC" = ( /obj/structure/flora/jungle/vines/light_2, /turf/open/gm/grass/grass2, /area/lv624/ground/jungle/west_jungle) "aD" = ( /obj/structure/flora/jungle/vines/light_1, -/turf/open/gm/grass/grass2, +/turf/open/gm/dirtgrassborder/grassdirt_corner/south_west, /area/lv624/ground/jungle/west_jungle) "aE" = ( -/obj/structure/flora/bush/ausbushes/pointybush, -/turf/open/gm/grass/grass1, -/area/lv624/ground/jungle/west_jungle) -"aF" = ( -/obj/structure/flora/grass/tallgrass/jungle/corner{ - dir = 6 - }, -/turf/open/gm/grass/grass2, -/area/lv624/ground/jungle/west_jungle) -"aG" = ( -/obj/structure/flora/grass/tallgrass/jungle/corner{ - dir = 10 - }, -/turf/open/gm/grass/grass2, -/area/lv624/ground/jungle/west_jungle) -"aH" = ( -/obj/structure/flora/bush/ausbushes/var3/ywflowers, -/turf/open/gm/grass/grass1, -/area/lv624/ground/jungle/west_jungle) -"aI" = ( -/obj/structure/flora/grass/tallgrass/jungle/corner{ - dir = 10 - }, -/turf/open/gm/grass/grass1, -/area/lv624/ground/jungle/west_jungle) -"aJ" = ( -/obj/structure/flora/bush/ausbushes/var3/leafybush, -/turf/open/gm/grass/grass1, -/area/lv624/ground/jungle/west_jungle) -"aK" = ( -/turf/open/gm/dirtgrassborder/west, +/turf/open/gm/dirtgrassborder/grassdirt_corner2/south_west, /area/lv624/ground/jungle/west_jungle) "aU" = ( /turf/closed/wall/strata_ice/jungle, /area/lv624/ground/river/west_river) -"aV" = ( -/turf/open/gm/grass/grass1, -/area/lv624/ground/jungle/west_jungle) "aX" = ( /turf/open/gm/coast/beachcorner2/south_east, /area/lv624/ground/river/west_river) @@ -172,8 +107,7 @@ /turf/open/gm/river, /area/lv624/ground/river/west_river) "bV" = ( -/obj/structure/flora/bush/ausbushes/var3/fullgrass, -/turf/open/gm/dirtgrassborder/south, +/turf/open/gm/dirt, /area/lv624/ground/jungle/west_jungle) "gX" = ( /turf/closed/wall/rock/brown, @@ -268,7 +202,7 @@ ES ES ES qG -au +aE aD "} (4,1,1) = {" @@ -282,8 +216,8 @@ ai ad ad aq -at -ax +ES +bV aE "} (5,1,1) = {" @@ -297,9 +231,9 @@ bm bc bc bt -au -ay -az +bV +bV +bV "} (6,1,1) = {" bi @@ -312,9 +246,9 @@ aj bc bc bt -au +bV Za -aV +bV "} (7,1,1) = {" bi @@ -329,7 +263,7 @@ FJ bt bV Za -aF +bV "} (8,1,1) = {" bi @@ -342,9 +276,9 @@ bc bc am bt -au -az -aG +bV +bV +bV "} (9,1,1) = {" bx @@ -357,9 +291,9 @@ bc bc bc bt -au -aA -aH +bV +bV +bV "} (10,1,1) = {" bf @@ -373,8 +307,8 @@ bc aX ar bV -aV -aF +bV +bV "} (11,1,1) = {" bi @@ -386,10 +320,10 @@ bN bc bc bt -as -av -aB -aI +bV +bV +bV +bV "} (12,1,1) = {" bi @@ -403,8 +337,8 @@ bc ao zW aw -au -aJ +bV +bV "} (13,1,1) = {" bx @@ -418,12 +352,12 @@ bc bc ve Ms -av -aK +bV +bV "} (14,1,1) = {" bi -ab +bL af af af diff --git a/maps/map_files/LV624/standalone/lv-bridge-east.dmm b/maps/map_files/LV624/standalone/lv-bridge-east.dmm index 62df758ef0df..09f938cadc91 100644 --- a/maps/map_files/LV624/standalone/lv-bridge-east.dmm +++ b/maps/map_files/LV624/standalone/lv-bridge-east.dmm @@ -5,25 +5,16 @@ "ac" = ( /obj/effect/landmark/lv624/fog_blocker, /obj/structure/fence, -/turf/open/floor/plating{ - dir = 9; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/northwest, /area/lv624/ground/barrens/central_barrens) "ad" = ( /obj/effect/landmark/lv624/fog_blocker, -/turf/open/floor/plating{ - dir = 1; - icon_state = "asteroidwarning" - }, +/turf/open/floor/plating/asteroidwarning/north, /area/lv624/ground/barrens/central_barrens) "ae" = ( /obj/effect/landmark/lv624/fog_blocker, /obj/structure/fence, -/turf/open/floor/plating{ - dir = 5; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/northeast, /area/lv624/ground/barrens/central_barrens) "af" = ( /obj/effect/landmark/lv624/fog_blocker, @@ -50,16 +41,10 @@ "al" = ( /obj/effect/landmark/lv624/fog_blocker, /obj/structure/fence, -/turf/open/floor/plating{ - dir = 8; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/west, /area/lv624/ground/river/central_river) "am" = ( -/turf/open/floor/plating{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/plating/asteroidfloor/north, /area/lv624/ground/river/central_river) "ao" = ( /obj/effect/landmark/lv624/fog_blocker, @@ -80,10 +65,7 @@ "au" = ( /obj/effect/landmark/lv624/fog_blocker, /obj/structure/fence, -/turf/open/floor/plating{ - dir = 4; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/east, /area/lv624/ground/river/central_river) "av" = ( /obj/effect/landmark/crap_item, @@ -128,10 +110,7 @@ /area/lv624/ground/river/central_river) "aO" = ( /obj/structure/fence, -/turf/open/floor/plating{ - dir = 10; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/southwest, /area/lv624/ground/river/central_river) "aQ" = ( /obj/structure/flora/bush/ausbushes/reedbush, @@ -148,17 +127,11 @@ /turf/open/gm/dirt, /area/lv624/ground/river/central_river) "aW" = ( -/turf/open/floor/plating{ - dir = 2; - icon_state = "asteroidwarning" - }, +/turf/open/floor/plating/asteroidwarning, /area/lv624/ground/river/central_river) "aX" = ( /obj/structure/fence, -/turf/open/floor/plating{ - dir = 6; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/southeast, /area/lv624/ground/river/central_river) "aZ" = ( /turf/open/gm/coast/beachcorner/south_east, @@ -254,10 +227,7 @@ /area/lv624/ground/river/central_river) "Bv" = ( /obj/effect/landmark/good_item, -/turf/open/floor/plating{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/plating/asteroidfloor/north, /area/lv624/ground/river/central_river) "BA" = ( /obj/structure/flora/bush/ausbushes/genericbush, @@ -272,10 +242,7 @@ /area/lv624/ground/jungle/north_jungle) "GU" = ( /obj/effect/landmark/crap_item, -/turf/open/floor/plating{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/plating/asteroidfloor/north, /area/lv624/ground/river/central_river) "Hi" = ( /obj/structure/flora/jungle/plantbot1, @@ -313,10 +280,7 @@ /area/lv624/ground/river/central_river) "XY" = ( /obj/structure/fence, -/turf/open/floor/plating{ - dir = 4; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/east, /area/lv624/ground/river/central_river) "YA" = ( /obj/structure/flora/jungle/plantbot1, @@ -324,10 +288,7 @@ /area/lv624/ground/river/central_river) "YL" = ( /obj/structure/fence, -/turf/open/floor/plating{ - dir = 8; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/west, /area/lv624/ground/river/central_river) (1,1,1) = {" diff --git a/maps/map_files/LV624/standalone/lv-bridge-nofog.dmm b/maps/map_files/LV624/standalone/lv-bridge-nofog.dmm index 1b9b8a9408b8..d715a9e30fcf 100644 --- a/maps/map_files/LV624/standalone/lv-bridge-nofog.dmm +++ b/maps/map_files/LV624/standalone/lv-bridge-nofog.dmm @@ -4,52 +4,31 @@ /area/lv624/ground/river/central_river) "ab" = ( /obj/structure/fence, -/turf/open/floor/plating{ - dir = 9; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/northwest, /area/lv624/ground/river/central_river) "ac" = ( /obj/effect/decal/cleanable/blood/drip, -/turf/open/floor/plating{ - dir = 1; - icon_state = "asteroidwarning" - }, +/turf/open/floor/plating/asteroidwarning/north, /area/lv624/ground/river/central_river) "ad" = ( /obj/structure/fence, -/turf/open/floor/plating{ - dir = 5; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/northeast, /area/lv624/ground/river/central_river) "ae" = ( /obj/structure/fence, -/turf/open/floor/plating{ - dir = 8; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/west, /area/lv624/ground/river/central_river) "af" = ( /obj/structure/fence, -/turf/open/floor/plating{ - dir = 4; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/east, /area/lv624/ground/river/central_river) "ag" = ( /obj/structure/fence, -/turf/open/floor/plating{ - dir = 10; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/southwest, /area/lv624/ground/river/central_river) "ah" = ( /obj/structure/fence, -/turf/open/floor/plating{ - dir = 6; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/southeast, /area/lv624/ground/river/central_river) "ai" = ( /turf/open/gm/dirt, @@ -62,20 +41,14 @@ /area/lv624/ground/jungle/north_jungle) "al" = ( /obj/effect/decal/cleanable/blood/drip, -/turf/open/floor/plating{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/plating/asteroidfloor/north, /area/lv624/ground/river/central_river) "dC" = ( /turf/open/gm/coast/beachcorner2/south_east, /area/lv624/ground/river/central_river) "iW" = ( /obj/effect/landmark/crap_item, -/turf/open/floor/plating{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/plating/asteroidfloor/north, /area/lv624/ground/river/central_river) "jr" = ( /obj/effect/landmark/lv624/fog_blocker, @@ -97,10 +70,7 @@ /turf/open/gm/coast/south, /area/lv624/ground/river/central_river) "lY" = ( -/turf/open/floor/plating{ - dir = 2; - icon_state = "asteroidwarning" - }, +/turf/open/floor/plating/asteroidwarning, /area/lv624/ground/river/central_river) "mq" = ( /obj/structure/machinery/colony_floodlight, @@ -129,10 +99,7 @@ "qL" = ( /obj/effect/spawner/gibspawner/human, /obj/effect/decal/cleanable/blood, -/turf/open/floor/plating{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/plating/asteroidfloor/north, /area/lv624/ground/river/central_river) "xB" = ( /obj/effect/landmark/crap_item, @@ -146,16 +113,10 @@ /area/lv624/ground/jungle/north_jungle) "BW" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/plating{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/plating/asteroidfloor/north, /area/lv624/ground/river/central_river) "DX" = ( -/turf/open/floor/plating{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/plating/asteroidfloor/north, /area/lv624/ground/river/central_river) "EG" = ( /obj/effect/landmark/lv624/fog_blocker, @@ -167,10 +128,7 @@ "Uh" = ( /obj/effect/landmark/corpsespawner/miner, /obj/effect/decal/cleanable/blood, -/turf/open/floor/plating{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/plating/asteroidfloor/north, /area/lv624/ground/river/central_river) "VN" = ( /turf/open/gm/grass/grass1, @@ -179,10 +137,7 @@ /turf/open/gm/dirtgrassborder/south, /area/lv624/ground/jungle/north_east_jungle) "Yw" = ( -/turf/open/floor/plating{ - dir = 1; - icon_state = "asteroidwarning" - }, +/turf/open/floor/plating/asteroidwarning/north, /area/lv624/ground/river/central_river) (1,1,1) = {" diff --git a/maps/map_files/LV624/standalone/rightsidepass.dmm b/maps/map_files/LV624/standalone/rightsidepass.dmm index 944be98dfbe7..e7ce416997f0 100644 --- a/maps/map_files/LV624/standalone/rightsidepass.dmm +++ b/maps/map_files/LV624/standalone/rightsidepass.dmm @@ -96,25 +96,19 @@ /area/lv624/ground/jungle/east_jungle) "tn" = ( /obj/structure/flora/bush/ausbushes/var3/fullgrass, -/turf/open/gm/dirt{ - icon_state = "desert_dug" - }, +/turf/open/gm/dirt/desert_dug, /area/lv624/ground/barrens/south_eastern_jungle_barrens) "tJ" = ( /turf/open/gm/coast/beachcorner/north_east, /area/lv624/ground/barrens/south_eastern_jungle_barrens) "tN" = ( -/turf/open/gm/dirt{ - icon_state = "desert3" - }, +/turf/open/gm/dirt/desert3, /area/lv624/ground/barrens/south_eastern_jungle_barrens) "tT" = ( /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/east_jungle) "ww" = ( -/turf/open/gm/dirt{ - icon_state = "desert2" - }, +/turf/open/gm/dirt/desert2, /area/lv624/ground/river/east_river) "zT" = ( /obj/structure/flora/bush/ausbushes/ppflowers, @@ -202,9 +196,7 @@ /turf/open/gm/dirt, /area/lv624/ground/river/east_river) "PZ" = ( -/turf/open/gm/dirt{ - icon_state = "desert0" - }, +/turf/open/gm/dirt/desert0, /area/lv624/ground/jungle/east_jungle) "Qb" = ( /obj/structure/flora/bush/ausbushes/var3/stalkybush, @@ -225,9 +217,7 @@ /turf/open/gm/dirtgrassborder/grassdirt_corner/south_east, /area/lv624/ground/jungle/east_jungle) "Wq" = ( -/turf/open/gm/dirt{ - icon_state = "desert2" - }, +/turf/open/gm/dirt/desert2, /area/lv624/ground/barrens/south_eastern_jungle_barrens) "WK" = ( /obj/structure/flora/bush/ausbushes/reedbush, diff --git a/maps/map_files/LV624/standalone/sandtemple-jungle.dmm b/maps/map_files/LV624/standalone/sandtemple-jungle.dmm index 770d6a93473e..724344cd0743 100644 --- a/maps/map_files/LV624/standalone/sandtemple-jungle.dmm +++ b/maps/map_files/LV624/standalone/sandtemple-jungle.dmm @@ -244,12 +244,6 @@ /obj/structure/flora/jungle/vines/light_2, /turf/closed/wall/strata_ice/jungle, /area/lv624/ground/jungle/south_west_jungle) -"Wp" = ( -/obj/structure/flora/grass/tallgrass/jungle/corner{ - dir = 3 - }, -/turf/open/gm/grass/grass1, -/area/lv624/ground/jungle/south_west_jungle) "WQ" = ( /obj/structure/flora/grass/tallgrass/jungle/corner{ dir = 8 @@ -415,7 +409,7 @@ LW DF oD oD -Wp +cP uj uj WQ diff --git a/maps/map_files/LV624/storage-crashed-ship/10.armorystorage.dmm b/maps/map_files/LV624/storage-crashed-ship/10.armorystorage.dmm index 90b9f293b9f8..f31ebd3d2995 100644 --- a/maps/map_files/LV624/storage-crashed-ship/10.armorystorage.dmm +++ b/maps/map_files/LV624/storage-crashed-ship/10.armorystorage.dmm @@ -12,16 +12,11 @@ pixel_x = 4 }, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/lv624/ground/barrens/north_east_barrens/ceiling) "d" = ( /obj/item/tool/shovel, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/lv624/ground/barrens/north_east_barrens/ceiling) "e" = ( /obj/structure/machinery/door/airlock/almayer/secure/colony{ @@ -31,9 +26,7 @@ name = "\improper Armory Vault"; req_access_txt = "100" }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/lv624/ground/barrens/north_east_barrens/ceiling) "i" = ( /obj/structure/surface/rack, @@ -54,10 +47,7 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/lv624/ground/barrens/north_east_barrens/ceiling) "j" = ( /turf/closed/wall, @@ -74,10 +64,7 @@ dir = 4 }, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/lv624/ground/barrens/north_east_barrens/ceiling) "p" = ( /turf/open/gm/dirt, @@ -95,29 +82,20 @@ /obj/item/ammo_magazine/smg/fp9000, /obj/item/ammo_magazine/smg/fp9000, /obj/item/ammo_magazine/smg/fp9000, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/lv624/ground/barrens/north_east_barrens/ceiling) "t" = ( /obj/item/tool/pickaxe, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/lv624/ground/barrens/north_east_barrens/ceiling) "v" = ( /obj/effect/landmark/crap_item, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/lv624/ground/barrens/north_east_barrens/ceiling) "x" = ( /obj/structure/surface/rack, /obj/item/weapon/gun/smg/fp9000, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/lv624/ground/barrens/north_east_barrens/ceiling) "y" = ( /obj/structure/surface/table/reinforced/prison, @@ -128,10 +106,7 @@ /obj/item/explosive/grenade/high_explosive/stick{ pixel_x = -6 }, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/lv624/ground/barrens/north_east_barrens/ceiling) "z" = ( /obj/structure/surface/rack, @@ -142,10 +117,7 @@ pixel_y = -3 }, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/lv624/ground/barrens/north_east_barrens/ceiling) "B" = ( /obj/structure/closet/crate, @@ -156,9 +128,7 @@ /obj/item/ammo_magazine/rifle/mar40, /obj/item/ammo_magazine/rifle/mar40/extended, /obj/item/ammo_magazine/rifle/mar40/extended, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/lv624/ground/barrens/north_east_barrens/ceiling) "F" = ( /obj/structure/surface/table/reinforced/prison, @@ -166,9 +136,7 @@ /obj/item/weapon/gun/smg/nailgun, /obj/item/ammo_box/magazine/nailgun, /obj/item/ammo_box/magazine/nailgun, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/lv624/ground/barrens/north_east_barrens/ceiling) "G" = ( /obj/structure/surface/rack, @@ -178,10 +146,7 @@ /obj/item/weapon/gun/smg/mp27{ pixel_y = 6 }, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/lv624/ground/barrens/north_east_barrens/ceiling) "I" = ( /obj/structure/machinery/light{ @@ -200,27 +165,20 @@ /obj/item/ammo_magazine/smg/mac15{ pixel_x = 6 }, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/lv624/ground/barrens/north_east_barrens/ceiling) "K" = ( /obj/effect/landmark/crap_item, /turf/open/gm/dirt, /area/lv624/ground/barrens/north_east_barrens) "N" = ( -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/lv624/ground/barrens/north_east_barrens/ceiling) "O" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/lv624/ground/barrens/north_east_barrens/ceiling) "P" = ( /obj/structure/surface/rack, @@ -228,20 +186,14 @@ /obj/item/weapon/gun/smg/mac15{ pixel_y = 6 }, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/lv624/ground/barrens/north_east_barrens/ceiling) "Q" = ( /obj/structure/surface/rack, /obj/item/stack/sheet/mineral/diamond{ amount = 2 }, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/lv624/ground/barrens/north_east_barrens/ceiling) "T" = ( /obj/structure/machinery/door/airlock/almayer/secure/colony{ @@ -250,18 +202,13 @@ name = "\improper Armory Vault"; req_access_txt = "100" }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/lv624/ground/barrens/north_east_barrens/ceiling) "U" = ( /obj/structure/surface/rack, /obj/item/weapon/gun/rifle/lmg, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/lv624/ground/barrens/north_east_barrens/ceiling) "V" = ( /obj/structure/surface/rack, @@ -271,10 +218,7 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/lv624/ground/barrens/north_east_barrens/ceiling) "X" = ( /obj/effect/alien/weeds/node, @@ -290,10 +234,7 @@ }, /obj/effect/landmark/crap_item, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/lv624/ground/barrens/north_east_barrens/ceiling) (1,1,1) = {" diff --git a/maps/map_files/LV624/storage-crashed-ship/10.valuables.dmm b/maps/map_files/LV624/storage-crashed-ship/10.valuables.dmm index c76947ab37e8..c8363f1720ab 100644 --- a/maps/map_files/LV624/storage-crashed-ship/10.valuables.dmm +++ b/maps/map_files/LV624/storage-crashed-ship/10.valuables.dmm @@ -8,18 +8,14 @@ amount = 50 }, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/lv624/ground/barrens/north_east_barrens/ceiling) "e" = ( /obj/structure/machinery/light{ dir = 4 }, /obj/structure/largecrate/supply, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/lv624/ground/barrens/north_east_barrens/ceiling) "f" = ( /turf/closed/wall, @@ -29,9 +25,7 @@ /obj/item/stack/sheet/mineral/diamond{ amount = 2 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/lv624/ground/barrens/north_east_barrens/ceiling) "l" = ( /obj/effect/landmark/crap_item, @@ -52,9 +46,7 @@ /obj/item/ammo_magazine/smg/fp9000, /obj/item/ammo_magazine/smg/fp9000, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/lv624/ground/barrens/north_east_barrens/ceiling) "p" = ( /obj/structure/surface/rack, @@ -62,16 +54,11 @@ amount = 20 }, /obj/effect/landmark/crap_item, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/lv624/ground/barrens/north_east_barrens/ceiling) "q" = ( /obj/effect/landmark/crap_item, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/lv624/ground/barrens/north_east_barrens/ceiling) "r" = ( /obj/effect/landmark/crap_item, @@ -81,16 +68,12 @@ /obj/structure/surface/rack, /obj/item/tool/pickaxe, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/lv624/ground/barrens/north_east_barrens/ceiling) "t" = ( /obj/structure/surface/rack, /obj/item/tool/shovel, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/lv624/ground/barrens/north_east_barrens/ceiling) "y" = ( /obj/structure/surface/rack, @@ -103,43 +86,30 @@ amount = 30 }, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/lv624/ground/barrens/north_east_barrens/ceiling) "C" = ( /obj/structure/surface/rack, /obj/item/stack/sheet/mineral/platinum{ pixel_x = -6 }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/lv624/ground/barrens/north_east_barrens/ceiling) "D" = ( /obj/structure/largecrate/supply, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/lv624/ground/barrens/north_east_barrens/ceiling) "G" = ( /obj/structure/surface/rack, /obj/item/weapon/gun/rifle/lmg, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/lv624/ground/barrens/north_east_barrens/ceiling) "H" = ( /obj/structure/machinery/light{ dir = 8 }, /obj/effect/landmark/crap_item, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/lv624/ground/barrens/north_east_barrens/ceiling) "I" = ( /obj/structure/surface/rack, @@ -149,10 +119,7 @@ /obj/item/weapon/gun/rifle/mar40{ pixel_y = -3 }, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/lv624/ground/barrens/north_east_barrens/ceiling) "M" = ( /obj/structure/surface/rack, @@ -160,9 +127,7 @@ amount = 5 }, /obj/item/tool/pickaxe/diamond, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/lv624/ground/barrens/north_east_barrens/ceiling) "N" = ( /obj/effect/alien/weeds/node, @@ -180,10 +145,7 @@ pixel_y = 6 }, /obj/effect/landmark/crap_item, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, +/turf/open/floor/vault2/west, /area/lv624/ground/barrens/north_east_barrens/ceiling) "U" = ( /obj/structure/closet/crate, @@ -194,9 +156,7 @@ /obj/item/ammo_magazine/rifle/mar40, /obj/item/ammo_magazine/rifle/mar40/extended, /obj/item/ammo_magazine/rifle/mar40/extended, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/lv624/ground/barrens/north_east_barrens/ceiling) "V" = ( /obj/structure/machinery/light{ @@ -208,9 +168,7 @@ amount = 5 }, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/lv624/ground/barrens/north_east_barrens/ceiling) "X" = ( /obj/structure/machinery/door/airlock/almayer/secure/colony{ @@ -219,14 +177,10 @@ name = "Mining Storage"; req_access_txt = "100" }, -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/lv624/ground/barrens/north_east_barrens/ceiling) "Z" = ( -/turf/open/floor{ - icon_state = "dark" - }, +/turf/open/floor/dark, /area/lv624/ground/barrens/north_east_barrens/ceiling) (1,1,1) = {" diff --git a/maps/map_files/New_Varadero/New_Varadero.dmm b/maps/map_files/New_Varadero/New_Varadero.dmm index 656c4a7f48b1..42e94f253587 100644 --- a/maps/map_files/New_Varadero/New_Varadero.dmm +++ b/maps/map_files/New_Varadero/New_Varadero.dmm @@ -17,9 +17,7 @@ "aaA" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/bed/sofa/vert/grey/top, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/medical) "aaG" = ( /obj/effect/landmark/lv624/fog_blocker{ @@ -32,18 +30,12 @@ dir = 4 }, /mob/living/simple_animal/mouse, -/turf/open/floor/shiva{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/southeast, /area/varadero/interior/medical) "abl" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/device/radio, -/turf/open/floor/shiva{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/shiva/red/southwest, /area/varadero/interior/security) "abu" = ( /obj/item/stack/sheet/wood, @@ -69,9 +61,7 @@ /obj/structure/barricade/handrail/wire{ dir = 4 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/pontoon_beach) "abL" = ( /obj/item/device/flashlight/lamp/tripod, @@ -81,15 +71,8 @@ /obj/structure/surface/table/reinforced/prison, /obj/item/storage/box/beakers, /obj/item/reagent_container/glass/beaker/bluespace, -/turf/open/floor/shiva{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/southeast, /area/varadero/interior/medical) -"ade" = ( -/obj/structure/machinery/camera/autoname/lz_camera, -/turf/open/gm/dirt, -/area/varadero/exterior/lz2_near) "adw" = ( /turf/closed/wall/r_wall, /area/varadero/interior/cargo) @@ -102,10 +85,7 @@ /area/varadero/interior/research) "adR" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/north, /area/varadero/interior/electrical) "aer" = ( /obj/structure/platform_decoration/kutjevo{ @@ -122,10 +102,7 @@ /obj/structure/machinery/light, /obj/structure/closet/l3closet/scientist, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "purplefull" - }, +/turf/open/floor/shiva/purplefull/west, /area/varadero/interior/research) "afx" = ( /obj/structure/machinery/light{ @@ -136,16 +113,11 @@ pixel_x = 16; pixel_y = 24 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "green" - }, +/turf/open/floor/shiva/green/west, /area/varadero/interior/hall_SE) "afz" = ( /obj/structure/machinery/door/airlock/multi_tile/elevator/access/dormatory, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/hall_N) "afR" = ( /obj/effect/decal/warning_stripes{ @@ -154,9 +126,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/shiva{ - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow, /area/varadero/interior/cargo) "agi" = ( /obj/structure/window/reinforced{ @@ -188,18 +158,13 @@ /area/varadero/interior/hall_SE) "agn" = ( /obj/structure/window_frame/colony, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/eastbeach) "agJ" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/storage/box/trackimp, /obj/item/device/binoculars, -/turf/open/floor/shiva{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/shiva/red/southeast, /area/varadero/interior/security) "agM" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -233,27 +198,20 @@ pixel_x = 10; pixel_y = -4 }, -/turf/open/shuttle{ - icon_state = "floor6" - }, +/turf/open/shuttle/red, /area/varadero/interior_protected/vessel) "ahK" = ( /obj/structure/machinery/landinglight/ds2/delaytwo{ dir = 4 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/varadero/exterior/lz1_near) "aiR" = ( /obj/structure/machinery/door/airlock/almayer/security{ name = "\improper Underground Security Evidence Storage"; req_access_txt = "100" }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/security) "akd" = ( /obj/structure/closet/secure_closet/freezer/fridge, @@ -261,22 +219,16 @@ pixel_y = 24 }, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/varadero/interior/cargo) "akf" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance) "akg" = ( /obj/effect/overlay/palmtree_r, -/turf/open/gm/dirt{ - icon_state = "desert0" - }, +/turf/open/gm/dirt/desert0, /area/varadero/exterior/monsoon) "akk" = ( /obj/structure/surface/table/woodentable, @@ -298,18 +250,14 @@ /area/varadero/interior_protected/vessel) "akO" = ( /obj/effect/decal/cleanable/blood/gibs, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/mess) "ald" = ( /obj/structure/pipes/unary/freezer{ dir = 8; icon_state = "freezer_1" }, -/turf/open/floor/shiva{ - icon_state = "red" - }, +/turf/open/floor/shiva/red, /area/varadero/interior/medical) "alh" = ( /obj/structure/filingcabinet{ @@ -349,27 +297,21 @@ /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/research) "alL" = ( /obj/structure/prop/structure_lattice{ dir = 1; health = 300 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/caves) "alM" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, /obj/structure/machinery/sleep_console, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/medical) "ami" = ( /obj/structure/prop/dam/crane/damaged{ @@ -380,10 +322,7 @@ /area/varadero/interior_protected/caves/digsite) "ani" = ( /obj/structure/machinery/vending/security, -/turf/open/floor/shiva{ - dir = 9; - icon_state = "blue" - }, +/turf/open/floor/shiva/blue/northwest, /area/varadero/interior/technical_storage) "anu" = ( /obj/structure/disposalpipe/junction{ @@ -393,9 +332,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/hall_N) "anA" = ( /obj/effect/decal/cleanable/dirt, @@ -405,9 +342,7 @@ /area/varadero/interior/beach_bar) "aoi" = ( /obj/item/device/flashlight/lamp/tripod, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/research) "aoo" = ( /obj/structure/prop/structure_lattice{ @@ -416,9 +351,7 @@ icon_state = "book-5"; name = "book case" }, -/turf/open/floor/shiva{ - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull, /area/varadero/interior/medical) "aoC" = ( /turf/closed/wall/rock/brown, @@ -434,6 +367,18 @@ /obj/structure/flora/bush/ausbushes/var3/fullgrass, /turf/open/auto_turf/sand_white/layer1, /area/varadero/interior/maintenance/security) +"apt" = ( +/obj/structure/platform/kutjevo/smooth{ + climb_delay = 1; + layer = 2.99 + }, +/obj/structure/platform/kutjevo/smooth{ + dir = 8; + climb_delay = 1; + layer = 2.99 + }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, +/area/varadero/exterior/pontoon_beach/lz) "apG" = ( /obj/structure/blocker/invisible_wall/water, /obj/item/lightstick/variant/planted, @@ -441,9 +386,7 @@ /area/varadero/exterior/farocean) "apH" = ( /obj/item/tool/wrench, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/comms2) "apI" = ( /obj/structure/machinery/computer/cameras/telescreen{ @@ -454,28 +397,20 @@ /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/shiva/red/north, /area/varadero/interior/security) "apY" = ( /obj/structure/reagent_dispensers/fueltank, /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/hall_SE) "aqb" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "snow_mat" - }, +/turf/open/floor/shiva/snow_mat/east, /area/varadero/interior/security) "aqh" = ( /obj/structure/flora/bush/desert{ @@ -487,16 +422,11 @@ pixel_x = -17; pixel_y = -19 }, -/turf/open/gm/river/ocean{ - name = "deep ocean"; - default_name = "deep ocean" - }, +/turf/open/gm/river/ocean/deep_ocean, /area/varadero/exterior/pontoon_beach) "aqk" = ( /obj/structure/reagent_dispensers/watertank, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/north) "aqq" = ( /obj/structure/prop/rock/brown, @@ -510,26 +440,18 @@ /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/north) "ara" = ( /turf/open/floor/wood, /area/varadero/interior/court) "arg" = ( /obj/structure/closet/emcloset, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "greenfull" - }, +/turf/open/floor/shiva/greenfull/west, /area/varadero/interior/hall_N) "arC" = ( /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/varadero/interior/comms1) "arF" = ( /obj/structure/closet/crate/trashcart, @@ -544,27 +466,18 @@ /obj/structure/bed/chair/hunter{ dir = 1 }, -/turf/open/shuttle{ - icon_state = "floor6" - }, +/turf/open/shuttle/red, /area/varadero/interior_protected/vessel) "asx" = ( -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/lz1_near) "atz" = ( /obj/structure/machinery/vending/cigarette/colony, -/turf/open/floor/shiva{ - dir = 6; - icon_state = "blue" - }, +/turf/open/floor/shiva/blue/southeast, /area/varadero/interior/administration) "atM" = ( /obj/structure/prop/mech/drill, -/turf/open/shuttle{ - icon_state = "floor6" - }, +/turf/open/shuttle/red, /area/varadero/interior_protected/vessel) "aud" = ( /obj/structure/sink{ @@ -574,19 +487,14 @@ pixel_y = 28 }, /obj/effect/decal/cleanable/blood, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/varadero/interior/toilets) "auE" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22"; pixel_y = 8 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "greenfull" - }, +/turf/open/floor/shiva/greenfull/west, /area/varadero/interior/hall_NW) "avl" = ( /obj/structure/disposalpipe/junction{ @@ -594,16 +502,11 @@ icon_state = "pipe-j2" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/hall_SE) "avy" = ( /obj/effect/landmark/survivor_spawner, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/north, /area/varadero/interior/administration) "avD" = ( /turf/closed/wall/huntership, @@ -623,16 +526,12 @@ /area/varadero/exterior/comms4) "awr" = ( /obj/structure/flora/bush/ausbushes/var3/ywflowers, -/turf/open/gm/dirt{ - icon_state = "desert0" - }, +/turf/open/gm/dirt/desert0, /area/varadero/exterior/lz1_near) "awu" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/toolbox, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/research) "awJ" = ( /turf/open/gm/coast/beachcorner/south_east, @@ -642,18 +541,14 @@ /obj/structure/machinery/storm_siren{ pixel_y = 5 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/comms2) "axs" = ( /obj/structure/machinery/storm_siren{ dir = 8; pixel_x = 3 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/comms2) "axv" = ( /obj/structure/platform/kutjevo/smooth{ @@ -663,10 +558,7 @@ /obj/structure/barricade/handrail/wire{ layer = 3.1 }, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/exterior/pool) "axY" = ( /obj/structure/bed/chair/comfy/lime, @@ -678,17 +570,11 @@ icon_state = "pipe-c" }, /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/administration) "ayx" = ( -/obj/structure/prop/power_transformer{ - dir = 0 - }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/obj/structure/prop/power_transformer, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/lz2_near) "ayF" = ( /obj/structure/flora/bush/ausbushes/var3/fernybush, @@ -696,10 +582,7 @@ /area/varadero/exterior/lz2_near) "azh" = ( /obj/item/clothing/shoes/swimmingfins, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "snow_mat" - }, +/turf/open/floor/shiva/snow_mat/east, /area/varadero/interior/maintenance) "azr" = ( /obj/structure/platform/kutjevo/smooth{ @@ -713,32 +596,22 @@ icon_state = "hr_kutjevo"; name = "support struts" }, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/exterior/pool) "azv" = ( /obj/effect/decal/cleanable/blood/drip, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/hall_SE) "azw" = ( /obj/structure/largecrate/random/mini/wooden, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/maintenance/south) "azK" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22"; pixel_y = 8 }, -/turf/open/floor/shiva{ - dir = 9; - icon_state = "blue" - }, +/turf/open/floor/shiva/blue/northwest, /area/varadero/interior/administration) "aAg" = ( /obj/structure/machinery/disposal, @@ -752,9 +625,7 @@ dir = 1 }, /obj/effect/decal/cleanable/blood, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/mess) "aAr" = ( /obj/structure/platform/kutjevo/smooth{ @@ -772,19 +643,13 @@ climb_delay = 1; layer = 2.99 }, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/exterior/farocean) "aAC" = ( /obj/item/shard{ icon_state = "medium" }, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/exterior/pool) "aAX" = ( /obj/docking_port/stationary/marine_dropship/lz2{ @@ -796,29 +661,21 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/north) "aBp" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/varadero/interior/cargo) "aBz" = ( /obj/item/stack/cable_coil, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/eastbeach) "aBB" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/hall_SE) "aBK" = ( /obj/structure/flora/bush/ausbushes/var3/brflowers{ @@ -834,10 +691,22 @@ req_access_txt = "100"; req_one_access = null }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/disposals) +"aBY" = ( +/obj/structure/barricade/handrail{ + desc = "Your platforms look pretty heavy king, let me support them for you."; + dir = 1; + icon_state = "hr_kutjevo"; + name = "support struts" + }, +/obj/structure/platform/kutjevo/smooth{ + dir = 1; + climb_delay = 1; + layer = 2.99 + }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, +/area/varadero/exterior/pontoon_beach/lz) "aCd" = ( /obj/structure/barricade/handrail/wire{ layer = 3.1 @@ -846,10 +715,7 @@ climb_delay = 1; layer = 2.99 }, -/turf/open/gm/river/ocean{ - name = "deep ocean"; - default_name = "deep ocean" - }, +/turf/open/gm/river/ocean/deep_ocean, /area/varadero/exterior/comms4) "aCl" = ( /obj/structure/machinery/door/airlock/strata/autoname{ @@ -859,22 +725,15 @@ locked = 1; name = "\improper Engine Room" }, -/turf/open/shuttle{ - icon_state = "floor6" - }, +/turf/open/shuttle/red, /area/varadero/interior_protected/vessel) "aCo" = ( /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/lz1_near) "aCz" = ( /obj/structure/window/framed/colony/reinforced, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "purplefull" - }, +/turf/open/floor/shiva/purplefull/west, /area/varadero/interior/research) "aCH" = ( /obj/structure/bed/chair/wheelchair{ @@ -884,9 +743,7 @@ name = "Dr. O's fantastic self rolling wheelie chair"; pixel_x = 7 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/maintenance/south) "aCW" = ( /obj/effect/overlay/palmtree_r{ @@ -898,19 +755,14 @@ /obj/structure/barricade/handrail/wire{ dir = 4 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/varadero/exterior/lz2_near) "aCY" = ( /obj/effect/decal/cleanable/blood/oil, /obj/structure/machinery/power/apc{ dir = 1 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/north) "aDu" = ( /obj/structure/machinery/power/apc{ @@ -918,18 +770,13 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/cargo) "aDF" = ( /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/west, /area/varadero/interior/cargo) "aDQ" = ( /obj/structure/filingcabinet{ @@ -951,16 +798,12 @@ /area/varadero/interior/administration) "aDZ" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/electrical) "aEf" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/tool, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/lz1_near) "aEg" = ( /obj/effect/decal/cleanable/blood{ @@ -972,16 +815,11 @@ /obj/structure/prop/ice_colony/ground_wire{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/varadero/interior_protected/vessel) "aEi" = ( /obj/structure/reagent_dispensers/water_cooler, -/turf/open/floor/shiva{ - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull, /area/varadero/interior/medical) "aED" = ( /obj/structure/prop/invuln/lattice_prop{ @@ -989,19 +827,14 @@ pixel_x = 16; pixel_y = -8 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/hall_SE) "aEQ" = ( /obj/structure/shuttle/engine/router{ dir = 4; unacidable = 0 }, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/varadero/interior_protected/vessel) "aFg" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -1024,24 +857,18 @@ pixel_x = 6; pixel_y = 14 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/laundry) "aFt" = ( /turf/closed/wall, /area/varadero/interior_protected/maintenance/south) "aFu" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/varadero/interior/cargo) "aFK" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/electrical) "aFM" = ( /obj/structure/machinery/door/window/brigdoor/westleft{ @@ -1052,19 +879,14 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/security) "aFX" = ( /obj/effect/decal/warning_stripes/asteroid{ dir = 1; icon_state = "warning_s" }, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "greencorners" - }, +/turf/open/floor/shiva/greencorners/east, /area/varadero/interior/hall_SE) "aGx" = ( /obj/structure/machinery/door/airlock/almayer/maint{ @@ -1084,10 +906,7 @@ dir = 4; pixel_x = -24 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/shiva/red/west, /area/varadero/interior/security) "aHs" = ( /obj/structure/surface/table/reinforced/prison, @@ -1103,9 +922,7 @@ /turf/open/floor/wood, /area/varadero/interior/research) "aHu" = ( -/turf/open/gm/dirt{ - icon_state = "desert3" - }, +/turf/open/gm/dirt/desert3, /area/varadero/exterior/lz1_near) "aHw" = ( /obj/structure/prop/structure_lattice{ @@ -1117,16 +934,11 @@ layer = 3.1; pixel_y = 10 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/lz2_near) "aHy" = ( /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/varadero/exterior/lz1_near) "aHM" = ( /obj/structure/machinery/firealarm{ @@ -1138,17 +950,13 @@ /obj/item/shard{ icon_state = "medium" }, -/turf/open/shuttle{ - icon_state = "floor6" - }, +/turf/open/shuttle/red, /area/varadero/interior_protected/vessel) "aIq" = ( /obj/structure/barricade/handrail/wire{ layer = 3.1 }, -/turf/open/floor/shiva{ - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow, /area/varadero/interior/electrical) "aJc" = ( /obj/structure/pipes/vents/pump{ @@ -1167,9 +975,7 @@ pixel_x = 5; pixel_y = 7 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/research) "aJp" = ( /obj/effect/decal/cleanable/blood{ @@ -1187,9 +993,7 @@ /obj/structure/prop/ice_colony/ground_wire{ dir = 1 }, -/turf/open/shuttle{ - icon_state = "floor6" - }, +/turf/open/shuttle/red, /area/varadero/interior_protected/vessel) "aJD" = ( /obj/structure/platform/kutjevo/smooth{ @@ -1212,10 +1016,7 @@ climb_delay = 1; layer = 2.99 }, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/exterior/pontoon_beach) "aJF" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -1229,9 +1030,7 @@ /area/varadero/interior/hall_SE) "aJI" = ( /obj/effect/landmark/ert_spawns/groundside_xeno, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/varadero/interior/research) "aJP" = ( /obj/structure/bed/chair/wood/normal, @@ -1239,10 +1038,7 @@ /area/varadero/interior/library) "aJW" = ( /obj/structure/largecrate/random/case, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "purple" - }, +/turf/open/floor/shiva/purple/east, /area/varadero/interior/research) "aKk" = ( /obj/structure/machinery/light/small{ @@ -1253,9 +1049,7 @@ pixel_x = -5; pixel_y = 6 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/security) "aKJ" = ( /obj/item/tool/warning_cone, @@ -1267,27 +1061,18 @@ /turf/open/gm/dirt, /area/varadero/exterior/eastbeach) "aLc" = ( -/turf/open/floor/shiva{ - dir = 4; - icon_state = "yellowcorners" - }, +/turf/open/floor/shiva/yellowcorners/east, /area/varadero/interior/disposals) "aLl" = ( -/turf/open/floor/shiva{ - icon_state = "wred" - }, +/turf/open/floor/shiva/wred, /area/varadero/interior/medical) "aLn" = ( /obj/effect/landmark/hunter_primary, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/hall_SE) "aMp" = ( /obj/structure/machinery/photocopier, -/turf/open/floor/shiva{ - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull, /area/varadero/interior/medical) "aMC" = ( /turf/closed/wall/r_wall/unmeltable, @@ -1298,9 +1083,7 @@ dir = 1 }, /obj/effect/landmark/xeno_spawn, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/maintenance/south) "aOg" = ( /turf/open/gm/grass/grass1/weedable, @@ -1321,26 +1104,19 @@ /area/varadero/interior/hall_SE) "aPQ" = ( /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/varadero/interior/research) "aPU" = ( /obj/structure/bed/chair{ icon_state = "chair_alt" }, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/shiva/blue/north, /area/varadero/interior/administration) "aQc" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance) "aQq" = ( /obj/structure/window/framed/colony/reinforced/hull, @@ -1351,41 +1127,28 @@ dir = 1 }, /obj/effect/landmark/objective_landmark/far, -/turf/open/floor/shiva{ - icon_state = "snow_mat" - }, +/turf/open/floor/shiva/snow_mat, /area/varadero/interior/security) "aQG" = ( -/turf/open/floor/shiva{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/shiva/red/northwest, /area/varadero/interior/morgue) "aQN" = ( -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/lz2_near) "aQR" = ( /obj/structure/pipes/standard/manifold/hidden/green, /obj/effect/landmark/objective_landmark/far, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/security) "aQY" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/item/tool/screwdriver, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/comms2) "aRr" = ( -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/hall_NW) "aRL" = ( /obj/structure/surface/table/reinforced/prison, @@ -1401,9 +1164,7 @@ pixel_x = 2; pixel_y = 8 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/security) "aSe" = ( /obj/item/reagent_container/food/snacks/birthdaycakeslice, @@ -1427,15 +1188,11 @@ /area/varadero/interior/maintenance/north) "aTg" = ( /obj/effect/decal/cleanable/blood/oil/streak, -/turf/open/gm/dirt{ - icon_state = "desert3" - }, +/turf/open/gm/dirt/desert3, /area/varadero/exterior/lz1_near) "aTh" = ( /obj/effect/landmark/hunter_primary, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/medical) "aTC" = ( /obj/item/reagent_container/food/snacks/eat_bar{ @@ -1446,25 +1203,18 @@ pixel_x = -5; pixel_y = -9 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/maintenance/south) "aTS" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" }, /obj/effect/landmark/survivor_spawner, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/varadero/interior/cargo) "aTY" = ( /obj/structure/prop/rock/brown, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/exterior/pontoon_beach) "aUA" = ( /obj/structure/prop/rock/brown, @@ -1490,9 +1240,7 @@ /obj/structure/mirror{ pixel_x = -32 }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/hall_SE) "aVs" = ( /obj/structure/machinery/door/poddoor/almayer/planet_side_blastdoor{ @@ -1501,10 +1249,7 @@ name = "Pontoon South Door"; openspeed = 17 }, -/turf/open/floor/plating/icefloor{ - dir = 1; - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate/north, /area/varadero/interior/maintenance/north) "aVt" = ( /obj/structure/prop/structure_lattice{ @@ -1516,9 +1261,7 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/varadero/interior/library) "aVF" = ( /obj/structure/surface/table/reinforced/prison, @@ -1530,10 +1273,7 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/shiva/blue/north, /area/varadero/interior/technical_storage) "aVQ" = ( /obj/structure/machinery/cm_vending/sorted/medical/wall_med/limited, @@ -1541,16 +1281,10 @@ /area/varadero/interior/hall_N) "aWA" = ( /obj/structure/largecrate/random/case/small, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "purple" - }, +/turf/open/floor/shiva/purple/east, /area/varadero/interior/research) "aWP" = ( -/turf/open/floor{ - dir = 8; - icon_state = "darkgreencorners2" - }, +/turf/open/floor/darkgreencorners2/west, /area/varadero/interior/hall_SE) "aXb" = ( /obj/structure/flora/bush/ausbushes/var3/stalkybush, @@ -1560,9 +1294,7 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/north) "aXn" = ( /obj/structure/prop/rock/brown, @@ -1572,25 +1304,18 @@ /obj/effect/landmark/lv624/fog_blocker{ time_to_dispel = 25000 }, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/exterior/eastocean) "aXt" = ( /obj/structure/catwalk, /obj/effect/decal/cleanable/blood/oil, -/turf/open/gm/river/desert/deep{ - base_river_slowdown = 0 - }, +/turf/open/gm/river/desert/deep/no_slowdown, /area/varadero/interior/maintenance/north) "aXz" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/shiva{ - icon_state = "snow_mat" - }, +/turf/open/floor/shiva/snow_mat, /area/varadero/interior/maintenance) "aXA" = ( /obj/structure/largecrate/supply/medicine/iv, @@ -1606,10 +1331,7 @@ climb_delay = 1; layer = 2.99 }, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/interior/caves/north_research) "aZb" = ( /obj/structure/bedsheetbin{ @@ -1619,9 +1341,7 @@ pixel_x = -2; pixel_y = 5 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/bunks) "aZq" = ( /obj/structure/window/reinforced{ @@ -1643,10 +1363,7 @@ pixel_y = 13 }, /obj/structure/machinery/light, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/west, /area/varadero/interior/medical) "aZv" = ( /obj/structure/bed/chair{ @@ -1656,28 +1373,21 @@ /turf/open/floor/wood, /area/varadero/interior/hall_SE) "aZX" = ( -/turf/open/floor/shiva{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/east, /area/varadero/interior/comms3) "baa" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/maintenance/south) "bag" = ( /obj/structure/machinery/light/small{ dir = 4 }, /obj/effect/landmark/monkey_spawn, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/research) "bah" = ( /obj/structure/platform/kutjevo/smooth{ @@ -1687,20 +1397,15 @@ /obj/structure/barricade/handrail/wire{ layer = 3.1 }, -/turf/open/gm/river/ocean{ - name = "deep ocean"; - default_name = "deep ocean" - }, -/area/varadero/exterior/pontoon_beach) +/turf/open/gm/river/ocean/deep_ocean, +/area/varadero/exterior/pontoon_beach/lz) "bak" = ( /obj/structure/prop/invuln/overhead_pipe{ dir = 4; pixel_x = -14; pixel_y = 13 }, -/turf/open/floor/shiva{ - icon_state = "snow_mat" - }, +/turf/open/floor/shiva/snow_mat, /area/varadero/interior/maintenance) "baH" = ( /obj/structure/surface/rack, @@ -1708,18 +1413,13 @@ /obj/item/weapon/gun/shotgun/pump{ pixel_y = -5 }, -/turf/open/floor/shiva{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/shiva/red/southwest, /area/varadero/interior/security) "baN" = ( /obj/structure/closet/crate/secure, /obj/effect/landmark/objective_landmark/close, /obj/item/trash/wy_chips_pepper, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/cargo) "bbt" = ( /obj/effect/landmark/hunter_primary, @@ -1735,10 +1435,7 @@ /area/varadero/exterior/lz2_near) "bbW" = ( /obj/item/clothing/under/shorts/black, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull/west, /area/varadero/interior/maintenance) "bcg" = ( /obj/structure/surface/rack, @@ -1747,17 +1444,11 @@ health = 80 }, /obj/item/tool/surgery/surgicaldrill/predatorsurgicaldrill, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "purplefull" - }, +/turf/open/floor/shiva/purplefull/west, /area/varadero/interior/research) "bcD" = ( /obj/item/tool/wet_sign, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/varadero/exterior/eastbeach) "bdc" = ( /obj/item/stack/tile/plasteel{ @@ -1765,9 +1456,7 @@ pixel_x = 17; pixel_y = 16 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/maintenance/south) "bdH" = ( /turf/open/gm/coast/beachcorner/north_east, @@ -1780,9 +1469,7 @@ name = "\improper Underground Security Custodial Closet"; req_access_txt = "100" }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/security) "ben" = ( /obj/structure/filingcabinet{ @@ -1811,16 +1498,12 @@ }, /obj/structure/closet/crate, /obj/effect/landmark/objective_landmark/far, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/maintenance/south) "beE" = ( /obj/item/device/taperecorder, /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/shiva{ - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull, /area/varadero/interior/security) "beK" = ( /turf/open/gm/coast/beachcorner/north_east, @@ -1831,10 +1514,7 @@ }, /obj/structure/filingcabinet/security, /obj/effect/landmark/objective_landmark/far, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/shiva/red/east, /area/varadero/interior/security) "bfg" = ( /obj/structure/surface/table, @@ -1854,34 +1534,23 @@ /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance) "bft" = ( /obj/structure/surface/rack, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance) "bfX" = ( /obj/effect/decal/cleanable/blood/drip, /obj/effect/decal/cleanable/blood, /obj/effect/landmark/corpsespawner/colonist, -/turf/open/gm/dirt{ - icon_state = "desert3" - }, +/turf/open/gm/dirt/desert3, /area/varadero/exterior/eastbeach) "bgh" = ( -/turf/open/floor/plating/icefloor{ - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate, /area/varadero/interior/maintenance/north) "bgl" = ( -/turf/open/floor/shiva{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/north, /area/varadero/interior/electrical) "bgE" = ( /turf/closed/wall/r_wall, @@ -1894,9 +1563,7 @@ /area/varadero/interior/hall_N) "bhU" = ( /obj/structure/machinery/floodlight{ - name = "Floodlight"; - unacidable = 0; - wrenchable = 1 + name = "Floodlight" }, /obj/structure/platform_decoration/kutjevo{ dir = 8 @@ -1910,9 +1577,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/hall_N) "bio" = ( /obj/structure/surface/table/woodentable, @@ -1926,9 +1591,7 @@ pixel_x = -4; pixel_y = 12 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/morgue) "biF" = ( /obj/structure/surface/table/reinforced/prison, @@ -1939,10 +1602,7 @@ pixel_y = 8 }, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "purplefull" - }, +/turf/open/floor/shiva/purplefull/west, /area/varadero/interior/research) "biS" = ( /obj/structure/platform/kutjevo/smooth{ @@ -1964,17 +1624,11 @@ icon_state = "pottedplant_22"; pixel_y = 8 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "purplefull" - }, +/turf/open/floor/shiva/purplefull/west, /area/varadero/interior/research) "bjA" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/shiva/blue/north, /area/varadero/interior/administration) "bjC" = ( /obj/structure/flora/bush/ausbushes/var3/fernybush, @@ -1983,9 +1637,7 @@ "bjP" = ( /obj/structure/filingcabinet, /obj/effect/landmark/objective_landmark/far, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/records) "bko" = ( /obj/effect/landmark/lv624/fog_blocker{ @@ -2000,9 +1652,7 @@ name = "Underground Morgue"; req_access_txt = "100" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/varadero/interior/morgue) "bkG" = ( /obj/structure/surface/table/reinforced/prison, @@ -2013,9 +1663,7 @@ /obj/structure/machinery/computer/communications{ dir = 4 }, -/turf/open/floor/shiva{ - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull, /area/varadero/interior/medical) "bkM" = ( /turf/closed/wall, @@ -2031,10 +1679,7 @@ health = 80 }, /obj/item/tool/surgery/hemostat/predatorhemostat, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "purplefull" - }, +/turf/open/floor/shiva/purplefull/west, /area/varadero/interior/research) "bmI" = ( /obj/effect/landmark/xeno_hive_spawn, @@ -2046,9 +1691,7 @@ /obj/effect/decal/warning_stripes/asteroid{ icon_state = "warning_s" }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/north) "bnc" = ( /obj/structure/surface/table, @@ -2063,23 +1706,16 @@ pixel_x = 8; pixel_y = -8 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/maintenance/south) "bnf" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/varadero/exterior/lz1_near) "bng" = ( /obj/structure/surface/rack, /obj/item/tool/pickaxe, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/maintenance/south) "bnm" = ( /turf/closed/wall/rock/brown, @@ -2093,9 +1729,7 @@ req_access_txt = "100"; req_one_access = null }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/maintenance/south) "bnH" = ( /obj/structure/prop/dam/truck/damaged, @@ -2103,34 +1737,25 @@ /area/varadero/exterior/lz2_near) "boI" = ( /obj/structure/prop/almayer/computers/sensor_computer2, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/varadero/interior/dock_control) "boV" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "snow_mat" - }, +/turf/open/floor/shiva/snow_mat/west, /area/varadero/interior/maintenance) "bpH" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/decal/cleanable/blood/drip, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/cargo) "bpI" = ( /obj/effect/landmark/hunter_secondary, /obj/effect/decal/cleanable/blood/drip, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/hall_N) "bpT" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -2154,16 +1779,11 @@ pixel_x = -15; pixel_y = 2 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "purplefull" - }, +/turf/open/floor/shiva/purplefull/west, /area/varadero/interior/research) "brM" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/administration) "brT" = ( /turf/closed/wall/huntership/destructible, @@ -2179,9 +1799,7 @@ /area/varadero/interior_protected/caves/digsite) "bst" = ( /obj/structure/closet/crate/miningcar, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/maintenance/south) "bte" = ( /obj/structure/closet/crate/radiation, @@ -2220,16 +1838,11 @@ /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/disposalpipe/segment, /obj/effect/decal/cleanable/blood/drip, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/hall_SE) "buH" = ( /obj/structure/machinery/light, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "greenfull" - }, +/turf/open/floor/shiva/greenfull/west, /area/varadero/interior/hall_SE) "bvE" = ( /obj/structure/machinery/power/apc{ @@ -2237,9 +1850,7 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/research) "bvF" = ( /obj/structure/flora/bush/desert{ @@ -2256,26 +1867,17 @@ climb_delay = 1; layer = 2.99 }, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/exterior/pontoon_beach) "bwz" = ( /obj/structure/closet/emcloset, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "purple" - }, +/turf/open/floor/shiva/purple/east, /area/varadero/interior/hall_NW) "bwP" = ( /obj/structure/machinery/landinglight/ds2{ dir = 1 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/varadero/exterior/lz1_near) "bxc" = ( /obj/structure/surface/table/reinforced/prison, @@ -2284,16 +1886,11 @@ }, /obj/effect/spawner/random/powercell, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "purplefull" - }, +/turf/open/floor/shiva/purplefull/west, /area/varadero/interior/research) "bxx" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/maintenance/south) "bye" = ( /obj/structure/stairs/perspective{ @@ -2301,10 +1898,7 @@ dir = 5; icon_state = "p_stair_full" }, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/varadero/interior_protected/vessel) "byl" = ( /obj/structure/surface/table/reinforced/prison, @@ -2323,7 +1917,7 @@ pixel_x = -5; pixel_y = 1 }, -/obj/item/handcuffs{ +/obj/item/restraint/handcuffs{ pixel_x = 2; pixel_y = 16 }, @@ -2331,9 +1925,7 @@ dir = 8; pixel_x = 24 }, -/turf/open/floor/shiva{ - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull, /area/varadero/interior/security) "bys" = ( /obj/structure/platform_decoration/kutjevo{ @@ -2348,10 +1940,7 @@ /area/varadero/interior_protected/caves/digsite) "byC" = ( /obj/structure/flora/bush/ausbushes/var3/stalkybush, -/turf/open/gm/river/ocean{ - name = "deep ocean"; - default_name = "deep ocean" - }, +/turf/open/gm/river/ocean/deep_ocean, /area/varadero/exterior/eastocean) "byF" = ( /obj/structure/platform/kutjevo/smooth{ @@ -2363,31 +1952,20 @@ /area/varadero/exterior/farocean) "byU" = ( /obj/effect/decal/cleanable/blood/drip, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/research) "bzf" = ( /obj/structure/machinery/light/small, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "snow_mat" - }, +/turf/open/floor/shiva/snow_mat/north, /area/varadero/interior/maintenance) "bzn" = ( /obj/effect/decal/warning_stripes{ icon_state = "E" }, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/north, /area/varadero/interior/cargo) "bzq" = ( -/turf/open/floor/shiva{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/west, /area/varadero/interior/medical) "bzz" = ( /obj/structure/platform/kutjevo/smooth{ @@ -2405,9 +1983,7 @@ /obj/structure/flora/bush/ausbushes/pointybush{ pixel_y = 11 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/cargo) "bAE" = ( /obj/structure/window/reinforced{ @@ -2446,9 +2022,7 @@ dir = 2; icon_state = "pipe-c" }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/records) "bBt" = ( /obj/structure/cable/heavyduty{ @@ -2469,24 +2043,17 @@ "bBV" = ( /obj/structure/blocker/invisible_wall/water, /obj/item/lightstick/variant/planted, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/exterior/farocean) "bCi" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/research) "bCA" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/security) "bCM" = ( /obj/structure/platform_decoration/kutjevo, @@ -2501,26 +2068,18 @@ icon_state = "hr_kutjevo"; name = "support struts" }, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, -/area/varadero/exterior/pontoon_beach) +/turf/open/gm/river/shallow_ocean_shallow_ocean, +/area/varadero/exterior/pontoon_beach/lz) "bDs" = ( /obj/item/weapon/gun/flare{ current_mag = null }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/varadero/exterior/lz2_near) "bEj" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/disposalpipe/junction, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/hall_N) "bEX" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -2529,9 +2088,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/comms3) "bEY" = ( /obj/structure/platform/kutjevo/smooth{ @@ -2553,9 +2110,7 @@ pixel_y = 17 }, /obj/structure/machinery/recharger, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/medical) "bFo" = ( /obj/structure/surface/table, @@ -2569,18 +2124,14 @@ pixel_x = 3; pixel_y = 17 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/security) "bFV" = ( /obj/structure/machinery/light/small{ dir = 4 }, /obj/structure/surface/rack, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/cargo) "bGe" = ( /obj/item/stool{ @@ -2588,20 +2139,13 @@ pixel_y = -6 }, /obj/effect/landmark/survivor_spawner, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/north) "bGy" = ( -/turf/open/floor/shiva{ - dir = 4; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/east, /area/varadero/interior/hall_SE) "bGz" = ( -/turf/open/floor/wood{ - icon_state = "wood-broken3" - }, +/turf/open/floor/wood/wood_broken3, /area/varadero/interior/hall_SE) "bGC" = ( /obj/structure/sign/safety/restrictedarea, @@ -2617,9 +2161,7 @@ /obj/structure/machinery/alarm{ pixel_y = 24 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/varadero/interior/toilets) "bIt" = ( /turf/closed/wall, @@ -2636,10 +2178,7 @@ /obj/structure/machinery/power/apc{ dir = 1 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/varadero/interior/comms1) "bJH" = ( /obj/item/tool/warning_cone, @@ -2657,10 +2196,7 @@ climb_delay = 1; layer = 2.99 }, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/exterior/pontoon_beach) "bLl" = ( /obj/structure/platform/kutjevo/smooth{ @@ -2683,10 +2219,7 @@ climb_delay = 1; layer = 2.99 }, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/exterior/pontoon_beach) "bLp" = ( /obj/structure/bed/chair/comfy/orange{ @@ -2695,9 +2228,7 @@ /turf/open/floor/wood, /area/varadero/interior/administration) "bLy" = ( -/turf/open/floor/shiva{ - icon_state = "green" - }, +/turf/open/floor/shiva/green, /area/varadero/interior/mess) "bLB" = ( /obj/structure/window/framed/colony, @@ -2711,16 +2242,10 @@ /obj/structure/prop/ice_colony/tiger_rug{ icon_state = "HotlineAlt" }, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/shiva/red/east, /area/varadero/interior/administration) "bLN" = ( -/turf/open/floor/shiva{ - dir = 1; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/north, /area/varadero/interior/comms3) "bLV" = ( /obj/item/lightstick/variant/planted, @@ -2738,9 +2263,7 @@ /area/varadero/interior/records) "bMk" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/varadero/interior/cargo) "bMx" = ( /obj/structure/largecrate/random/case/double, @@ -2749,53 +2272,38 @@ "bMG" = ( /obj/structure/closet/crate/ammo/alt, /obj/item/trash/ceramic_plate, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/cargo) "bMV" = ( /obj/structure/closet/hydrant{ pixel_y = 32 }, -/turf/open/floor/shiva{ - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow, /area/varadero/interior/hall_SE) "bNi" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/east, /area/varadero/interior/hall_SE) "bNt" = ( /obj/structure/closet/secure_closet/personal/patient, /obj/item/clothing/suit/storage/bomber, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/bunks) "bNC" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/shiva{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/southeast, /area/varadero/interior/administration) "bNN" = ( /obj/structure/machinery/landinglight/ds2/delayone{ dir = 4 }, /obj/item/prop/almayer/comp_open, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/varadero/exterior/lz1_near) "bOO" = ( /obj/structure/machinery/disposal, @@ -2803,9 +2311,7 @@ /obj/structure/machinery/alarm{ pixel_y = 24 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/hall_N) "bPe" = ( /obj/structure/platform/kutjevo/smooth{ @@ -2814,41 +2320,28 @@ layer = 2.99 }, /obj/structure/flora/bush/ausbushes/var3/stalkybush, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/interior_protected/caves) "bPk" = ( /obj/structure/window/framed/colony/reinforced, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/security) "bPl" = ( /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "green" - }, +/turf/open/floor/shiva/green/east, /area/varadero/interior/hall_NW) "bPm" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22"; pixel_y = 8 }, -/turf/open/floor/shiva{ - dir = 5; - icon_state = "green" - }, +/turf/open/floor/shiva/green/northeast, /area/varadero/interior/hall_SE) "bPx" = ( /obj/item/device/flashlight/lamp/tripod, -/turf/open/shuttle{ - icon_state = "floor6" - }, +/turf/open/shuttle/red, /area/varadero/interior_protected/vessel) "bPF" = ( /obj/structure/window/reinforced{ @@ -2863,10 +2356,7 @@ color = "#6b675e" }, /obj/structure/window/reinforced, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/varadero/interior_protected/vessel) "bPG" = ( /obj/structure/surface/table/woodentable, @@ -2875,26 +2365,19 @@ pixel_x = 1; pixel_y = 13 }, -/turf/open/floor/prison/chapel_carpet{ - dir = 1; - icon_state = "doubleside" - }, +/turf/open/floor/prison/chapel_carpet/doubleside/north, /area/varadero/interior/chapel) "bPL" = ( -/obj/item/handcuffs{ +/obj/item/restraint/handcuffs{ pixel_x = 2; pixel_y = 16 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/security) "bQa" = ( /obj/structure/catwalk, /obj/structure/largecrate/random, -/turf/open/gm/river/desert/deep{ - base_river_slowdown = 0 - }, +/turf/open/gm/river/desert/deep/no_slowdown, /area/varadero/interior/maintenance/north) "bQH" = ( /obj/structure/pipes/standard/manifold/fourway/hidden/green, @@ -2902,9 +2385,7 @@ dir = 4; icon_state = "pipe-c" }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/administration) "bRg" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -2917,17 +2398,13 @@ /area/varadero/interior/disposals) "bRo" = ( /obj/structure/reagent_dispensers/beerkeg/alt_dark, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/varadero/interior/cargo) "bRQ" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/administration) "bRS" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -2938,9 +2415,7 @@ "bSd" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/varadero/interior/research) "bSj" = ( /obj/structure/platform_decoration/kutjevo{ @@ -2962,9 +2437,7 @@ /obj/structure/machinery/power/apc{ dir = 1 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/comms2) "bSQ" = ( /obj/item/tool/warning_cone, @@ -2981,17 +2454,12 @@ climb_delay = 1; layer = 2.99 }, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/interior/caves/north_research) "bTm" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/item/weapon/gun/rifle/m4ra, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/bunks) "bTA" = ( /obj/structure/disposalpipe/segment, @@ -3002,35 +2470,24 @@ /obj/structure/surface/table/reinforced/prison{ color = "#6b675e" }, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/varadero/interior_protected/vessel) "bUg" = ( /obj/structure/machinery/microwave{ pixel_y = 9 }, /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/shiva{ - icon_state = "snow_mat" - }, +/turf/open/floor/shiva/snow_mat, /area/varadero/interior/security) "bUK" = ( /obj/structure/machinery/storm_siren{ dir = 8; pixel_x = 3 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "green" - }, +/turf/open/floor/shiva/green/west, /area/varadero/interior/hall_N) "bUP" = ( -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/exterior/monsoon) "bUR" = ( /obj/structure/surface/table/reinforced/prison, @@ -3039,10 +2496,7 @@ pixel_y = 4 }, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "purplefull" - }, +/turf/open/floor/shiva/purplefull/west, /area/varadero/interior/research) "bUZ" = ( /obj/structure/flora/bush/ausbushes/var3/fernybush, @@ -3063,23 +2517,16 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/shiva{ - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull, /area/varadero/interior/medical) "bVu" = ( /obj/structure/pipes/standard/simple/visible{ dir = 5 }, -/turf/open/floor/shiva{ - icon_state = "red" - }, +/turf/open/floor/shiva/red, /area/varadero/interior/medical) "bVI" = ( -/turf/open/floor/shiva{ - dir = 8; - icon_state = "green" - }, +/turf/open/floor/shiva/green/west, /area/varadero/interior/court) "bVQ" = ( /obj/structure/stairs/perspective{ @@ -3095,9 +2542,7 @@ /turf/open/gm/dirt, /area/varadero/exterior/lz1_near) "bVS" = ( -/turf/open/gm/dirt{ - icon_state = "desert_dug" - }, +/turf/open/gm/dirt/desert_dug, /area/varadero/exterior/lz1_near) "bVX" = ( /turf/open/gm/coast/beachcorner2/south_west, @@ -3107,9 +2552,7 @@ /obj/item/stack/sheet/plasteel/medium_stack, /obj/item/trash/crushed_cup, /obj/item/prop/magazine/dirty/torn, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/cargo) "bYO" = ( /obj/item/tool/shovel/spade, @@ -3130,9 +2573,7 @@ req_access = null; req_one_access = null }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/varadero/interior/maintenance/research) "bZv" = ( /obj/structure/machinery/storm_siren{ @@ -3142,16 +2583,10 @@ /area/varadero/exterior/lz1_near) "bZA" = ( /obj/structure/reagent_dispensers/watertank, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/varadero/interior/maintenance/north) "bZI" = ( -/turf/open/floor/shiva{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/southeast, /area/varadero/interior/hall_SE) "bZU" = ( /turf/open/floor/plating/icefloor, @@ -3174,16 +2609,11 @@ climb_delay = 1; layer = 2.99 }, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/exterior/pontoon_beach) "cba" = ( /obj/structure/window/framed/colony/reinforced, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/maintenance/south) "cbe" = ( /obj/structure/filingcabinet{ @@ -3198,23 +2628,16 @@ pixel_x = -11; pixel_y = 20 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance) "cbg" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/electrical) "cbq" = ( -/turf/open/floor/shiva{ - dir = 1; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/north, /area/varadero/interior/electrical) "cbv" = ( /obj/structure/surface/table, @@ -3226,17 +2649,11 @@ pixel_x = 4; pixel_y = 4 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/research) "cbI" = ( -/obj/item/cpr_dummy{ - dir = 0 - }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/obj/item/cpr_dummy, +/turf/open/floor/shiva/floor3, /area/varadero/interior/medical) "cbK" = ( /obj/structure/desertdam/decals/road_edge{ @@ -3263,29 +2680,21 @@ /obj/structure/bed/chair/office/dark{ dir = 4 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/security) "cdb" = ( /turf/closed/wall, /area/varadero/interior/maintenance/security) "cdc" = ( /obj/effect/landmark/xeno_spawn, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/varadero/interior_protected/vessel) "cdy" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/shiva/red/east, /area/varadero/interior/security) "cdL" = ( /obj/effect/landmark/corpsespawner/colonist/burst, @@ -3296,10 +2705,7 @@ dir = 4; pixel_x = -3 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/west, /area/varadero/interior/cargo) "cdS" = ( /obj/effect/decal/cleanable/blood, @@ -3313,9 +2719,7 @@ /area/varadero/exterior/eastbeach) "ceo" = ( /obj/structure/bed/chair, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/laundry) "ceJ" = ( /obj/item/storage/fancy/candle_box, @@ -3327,33 +2731,24 @@ pixel_x = -3; pixel_y = 8 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/lz1_near) "cfs" = ( /obj/structure/machinery/power/smes/buildable{ name = "colony distribution SMES" }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/north) "cgb" = ( /obj/structure/machinery/cm_vending/sorted/tech/tool_storage, /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/north, /area/varadero/interior/technical_storage) "cgj" = ( /obj/item/stack/sheet/metal/med_small_stack, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/comms3) "cgr" = ( /obj/structure/flora/bush/ausbushes/var3/stalkybush, @@ -3366,19 +2761,14 @@ /obj/structure/machinery/floodlight/landing/floor{ pixel_x = -1 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/varadero/exterior/lz1_near) "che" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/comms3) "chr" = ( /obj/structure/bed/stool{ @@ -3396,9 +2786,7 @@ /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/maintenance/south) "chU" = ( /obj/structure/shuttle/engine/propulsion/burst{ @@ -3411,56 +2799,40 @@ /turf/open/gm/dirt, /area/varadero/exterior/lz2_near) "cic" = ( -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/laundry) "cil" = ( /obj/structure/barricade/handrail/wire{ layer = 3.1 }, /obj/effect/decal/cleanable/blood/drip, -/turf/open/floor/shiva{ - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow, /area/varadero/interior/electrical) "cit" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/hall_SE) "ciu" = ( /obj/structure/largecrate/random/case/small, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/north, /area/varadero/interior/hall_SE) "ciH" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/hall_N) "ciR" = ( /obj/structure/machinery/vending/coffee, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "green" - }, +/turf/open/floor/shiva/green/east, /area/varadero/interior/hall_SE) "cjf" = ( /obj/item/reagent_container/glass/bucket{ pixel_x = 8; pixel_y = -6 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/north) "cjU" = ( /obj/structure/barricade/handrail/wire{ @@ -3468,33 +2840,23 @@ }, /obj/structure/closet/secure_closet/scientist, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "purple" - }, +/turf/open/floor/shiva/purple/west, /area/varadero/interior/research) "ckx" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/medical) "ckz" = ( /obj/structure/machinery/photocopier, -/turf/open/floor/shiva{ - dir = 6; - icon_state = "purple" - }, +/turf/open/floor/shiva/purple/southeast, /area/varadero/interior/research) "ckF" = ( /obj/structure/pipes/standard/manifold/fourway/hidden/green, /obj/effect/landmark/corpsespawner/doctor, /obj/effect/decal/cleanable/vomit, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/medical) "ckG" = ( /obj/structure/flora/bush/ausbushes/var3/fullgrass, @@ -3502,10 +2864,7 @@ /turf/open/auto_turf/sand_white/layer1, /area/varadero/interior_protected/maintenance/south) "ckI" = ( -/turf/open/floor/shiva{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/west, /area/varadero/interior/hall_N) "ckM" = ( /obj/effect/landmark/monkey_spawn, @@ -3516,9 +2875,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/varadero/interior/research) "clA" = ( /obj/effect/landmark/objective_landmark/close, @@ -3526,9 +2883,7 @@ /area/varadero/interior/dock_control) "clD" = ( /obj/effect/landmark/yautja_teleport, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/bunks) "clG" = ( /obj/structure/platform/kutjevo/smooth{ @@ -3541,10 +2896,7 @@ climb_delay = 1; layer = 2.99 }, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/interior_protected/caves) "clX" = ( /turf/closed/wall/r_wall, @@ -3556,10 +2908,7 @@ pixel_y = 13 }, /obj/structure/prop/invuln/pipe_water, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "snow_mat" - }, +/turf/open/floor/shiva/snow_mat/east, /area/varadero/interior/maintenance) "cmk" = ( /obj/structure/barricade/handrail/wire{ @@ -3574,10 +2923,7 @@ /obj/item/reagent_container/food/drinks/cans/souto/lime, /obj/item/reagent_container/food/drinks/cans/souto/peach, /obj/item/reagent_container/food/drinks/bottle/sake, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/varadero/exterior/lz1_near) "cmr" = ( /obj/item/stack/tile/plasteel{ @@ -3591,10 +2937,7 @@ pixel_y = 7 }, /obj/structure/surface/table, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/varadero/exterior/lz1_near) "cne" = ( /obj/structure/platform/kutjevo/smooth{ @@ -3605,10 +2948,7 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/varadero/interior/comms1) "cnv" = ( /obj/structure/closet/crate/ammo/alt, @@ -3622,30 +2962,20 @@ pixel_y = 4; pixel_x = -5 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/cargo) "cnW" = ( /obj/structure/surface/table, /obj/structure/prop/server_equipment/laptop/on, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/west, /area/varadero/interior/hall_NW) "coc" = ( -/obj/structure/reagent_dispensers/watertank, -/turf/open/floor/shiva{ - icon_state = "blue" - }, +/obj/structure/tunnel/maint_tunnel, +/turf/open/floor/shiva/blue, /area/varadero/interior/technical_storage) "cog" = ( /obj/structure/window/framed/colony/reinforced, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellowfull" - }, +/turf/open/floor/shiva/yellowfull/west, /area/varadero/interior/cargo) "coz" = ( /obj/structure/sign/safety/bulkhead_door, @@ -3653,32 +2983,23 @@ /area/varadero/interior/maintenance/north) "coQ" = ( /obj/effect/decal/cleanable/blood, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/exterior/pontoon_beach) "coX" = ( /obj/structure/barricade/handrail/wire{ layer = 3.1 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/eastbeach) "cpA" = ( /obj/structure/morgue, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/morgue) "cpC" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/security) "cpF" = ( /obj/structure/barricade/handrail{ @@ -3687,10 +3008,7 @@ icon_state = "hr_kutjevo"; name = "support struts" }, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/exterior/pontoon_beach) "cql" = ( /obj/structure/platform/kutjevo/smooth{ @@ -3714,10 +3032,7 @@ dir = 4 }, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "purple" - }, +/turf/open/floor/shiva/purple/west, /area/varadero/interior/research) "cqC" = ( /obj/structure/extinguisher_cabinet, @@ -3736,27 +3051,19 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/security) "csb" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/bed/sofa/vert/grey/bot, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/medical) "csr" = ( /obj/structure/prop/ice_colony/flamingo, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/caves) "cto" = ( -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/maintenance/south) "ctw" = ( /obj/structure/flora/pottedplant{ @@ -3767,10 +3074,7 @@ dir = 4; pixel_x = -3 }, -/turf/open/floor/shiva{ - dir = 10; - icon_state = "blue" - }, +/turf/open/floor/shiva/blue/southwest, /area/varadero/interior/administration) "cty" = ( /turf/closed/wall/rock/brown, @@ -3791,10 +3095,7 @@ climb_delay = 1; layer = 2.99 }, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/exterior/pontoon_beach) "cuc" = ( /obj/structure/barricade/handrail/wire{ @@ -3804,9 +3105,7 @@ /obj/item/stack/sheet/glass{ amount = 30 }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/electrical) "cud" = ( /obj/structure/machinery/power/apc{ @@ -3814,17 +3113,12 @@ pixel_x = -24; start_charge = 0 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/west, /area/varadero/interior/electrical) "cug" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/disposalpipe/segment, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/hall_SE) "cur" = ( /obj/structure/surface/rack, @@ -3836,10 +3130,7 @@ dir = 8; pixel_x = 3 }, -/turf/open/floor/shiva{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/shiva/red/northeast, /area/varadero/interior/security) "cvW" = ( /obj/structure/closet/secure_closet/freezer/kitchen, @@ -3851,18 +3142,13 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "green" - }, +/turf/open/floor/shiva/green/west, /area/varadero/interior/mess) "cvX" = ( /obj/structure/bed/chair/office/dark{ dir = 4 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/security) "cwe" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -3875,19 +3161,14 @@ pixel_x = -10; pixel_y = 4 }, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/north, /area/varadero/interior/hall_SE) "cwk" = ( /obj/structure/largecrate/random, /obj/structure/machinery/storm_siren{ pixel_y = 5 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/caves/east) "cwp" = ( /obj/structure/window/reinforced{ @@ -3902,10 +3183,7 @@ color = "#6b675e" }, /obj/item/clothing/suit/armor/riot, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/varadero/interior_protected/vessel) "cwE" = ( /turf/closed/wall/rock/brown, @@ -3926,10 +3204,7 @@ climb_delay = 1; layer = 2.99 }, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/interior/caves/north_research) "cyT" = ( /obj/structure/machinery/light/small, @@ -3938,29 +3213,19 @@ pixel_x = -16; pixel_y = -8 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/research) "czA" = ( /obj/item/stack/sheet/wood, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/pontoon_beach) "czG" = ( /obj/item/device/flashlight/lamp/tripod, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/varadero/interior_protected/vessel) "cAw" = ( /obj/structure/closet/secure_closet/cargotech, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellowfull" - }, +/turf/open/floor/shiva/yellowfull/west, /area/varadero/interior/cargo) "cAx" = ( /obj/structure/largecrate/random, @@ -3968,9 +3233,7 @@ /area/varadero/interior/records) "cAX" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/medical) "cBq" = ( /obj/structure/flora/pottedplant{ @@ -3985,10 +3248,7 @@ /area/varadero/interior/caves/north_research) "cBW" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "snow_mat" - }, +/turf/open/floor/shiva/snow_mat/east, /area/varadero/interior/medical) "cCk" = ( /obj/structure/machinery/storm_siren{ @@ -4000,28 +3260,21 @@ /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/maintenance/south) "cDm" = ( /obj/item/reagent_container/food/drinks/cans/beer{ pixel_x = -9; pixel_y = 12 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/lz1_near) "cDr" = ( /obj/structure/closet/secure_closet/medical1{ req_access_txt = "100" }, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "wred" - }, +/turf/open/floor/shiva/wred/north, /area/varadero/interior/medical) "cEm" = ( /obj/structure/platform/kutjevo/smooth{ @@ -4032,11 +3285,8 @@ /obj/structure/barricade/handrail/wire{ layer = 3.1 }, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, -/area/varadero/exterior/pontoon_beach) +/turf/open/gm/river/shallow_ocean_shallow_ocean, +/area/varadero/exterior/pontoon_beach/lz) "cEu" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 @@ -4047,16 +3297,11 @@ /obj/structure/closet/hydrant{ pixel_y = 32 }, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/shiva/green/north, /area/varadero/interior/hall_SE) "cFe" = ( /obj/structure/closet/firecloset/full, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/maintenance/south) "cFh" = ( /obj/effect/decal/cleanable/dirt, @@ -4064,9 +3309,7 @@ /area/varadero/exterior/eastocean) "cFu" = ( /obj/structure/xenoautopsy/tank/larva, -/turf/open/shuttle{ - icon_state = "floor6" - }, +/turf/open/shuttle/red, /area/varadero/interior_protected/vessel) "cFw" = ( /turf/open/gm/dirt, @@ -4074,52 +3317,27 @@ "cFz" = ( /turf/open/gm/coast/beachcorner2/north_west, /area/varadero/interior/caves/east) -"cFK" = ( -/obj/structure/machinery/door/poddoor/almayer/planet_side_blastdoor{ - id = "undergroundhangarsouth"; - unacidable = 1; - name = "Pontoon South Door"; - openspeed = 17 - }, -/obj/structure/machinery/door/poddoor/almayer/planet_side_blastdoor{ - id = "undergroundhangarsouth"; - unacidable = 1; - name = "Pontoon South Door"; - openspeed = 17 - }, -/turf/open/floor/plating/icefloor{ - dir = 1; - icon_state = "warnplate" - }, -/area/varadero/interior/maintenance/north) "cFZ" = ( /obj/structure/cargo_container/kelland/left, /turf/open/gm/dirt, /area/varadero/exterior/lz2_near) "cGc" = ( /obj/item/book/manual/detective, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/varadero/interior/library) "cGd" = ( /obj/structure/machinery/power/apc{ pixel_y = -24; start_charge = 0 }, -/turf/open/floor/shiva{ - icon_state = "green" - }, +/turf/open/floor/shiva/green, /area/varadero/interior/mess) "cGx" = ( /obj/structure/machinery/light{ dir = 8 }, /obj/structure/machinery/r_n_d/protolathe, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "purple" - }, +/turf/open/floor/shiva/purple/west, /area/varadero/interior/research) "cGD" = ( /obj/effect/landmark/lv624/fog_blocker{ @@ -4139,17 +3357,11 @@ icon_state = "pottedplant_22"; pixel_y = 8 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "purplefull" - }, +/turf/open/floor/shiva/purplefull/west, /area/varadero/interior/hall_NW) "cGT" = ( /obj/structure/machinery/r_n_d/circuit_imprinter, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "purple" - }, +/turf/open/floor/shiva/purple/west, /area/varadero/interior/research) "cGV" = ( /turf/closed/wall/r_wall/elevator{ @@ -4161,10 +3373,7 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/shiva/red/west, /area/varadero/interior/security) "cHl" = ( /obj/structure/machinery/door/airlock/almayer/maint{ @@ -4172,9 +3381,7 @@ req_access_txt = "100"; req_one_access = null }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/technical_storage) "cHR" = ( /obj/structure/surface/table, @@ -4185,9 +3392,7 @@ pixel_y = 24 }, /obj/effect/decal/cleanable/blood, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/mess) "cHS" = ( /obj/structure/closet/crate/freezer/rations, @@ -4199,9 +3404,7 @@ /obj/item/explosive/grenade/incendiary/molotov{ pixel_x = 6 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/varadero/interior/cargo) "cHV" = ( /obj/structure/window/phoronreinforced{ @@ -4223,17 +3426,11 @@ /area/varadero/interior_protected/vessel) "cHY" = ( /obj/effect/landmark/hunter_primary, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/varadero/exterior/lz1_near) "cIB" = ( /obj/structure/machinery/cm_vending/sorted/tech/electronics_storage, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/north, /area/varadero/interior/technical_storage) "cIP" = ( /obj/item/clothing/shoes/snow, @@ -4245,9 +3442,7 @@ /obj/effect/decal/strata_decals/grime/grime3{ dir = 8 }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/bunks) "cJa" = ( /obj/structure/reagent_dispensers/water_cooler{ @@ -4256,17 +3451,11 @@ pixel_y = 19 }, /obj/effect/decal/strata_decals/grime/grime2, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "purplefull" - }, +/turf/open/floor/shiva/purplefull/west, /area/varadero/interior/research) "cJL" = ( /obj/structure/flora/bush/ausbushes/var3/stalkybush, -/turf/open/gm/river/ocean{ - name = "deep ocean"; - default_name = "deep ocean" - }, +/turf/open/gm/river/ocean/deep_ocean, /area/varadero/exterior/farocean) "cKB" = ( /obj/structure/platform/kutjevo/smooth{ @@ -4274,16 +3463,11 @@ climb_delay = 1; layer = 2.99 }, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/exterior/farocean) "cKC" = ( /obj/item/explosive/grenade/incendiary, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/security) "cKK" = ( /obj/item/paper/crumpled/bloody, @@ -4292,10 +3476,7 @@ /area/varadero/interior/maintenance/north) "cKZ" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellowcorners" - }, +/turf/open/floor/shiva/yellowcorners/west, /area/varadero/interior/cargo) "cLD" = ( /obj/structure/bed/chair/office/dark{ @@ -4305,10 +3486,7 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "greenfull" - }, +/turf/open/floor/shiva/greenfull/west, /area/varadero/interior/hall_SE) "cLP" = ( /turf/open/space, @@ -4320,16 +3498,11 @@ layer = 2.99 }, /obj/structure/blocker/invisible_wall/water, -/turf/open/gm/river/ocean{ - name = "deep ocean"; - default_name = "deep ocean" - }, +/turf/open/gm/river/ocean/deep_ocean, /area/varadero/exterior/farocean) "cLX" = ( /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/maintenance/south) "cLY" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -4340,39 +3513,27 @@ req_access_txt = "100"; req_one_access = null }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/mess) "cMf" = ( /obj/structure/bed/chair, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/shiva/green/north, /area/varadero/interior/court) "cNb" = ( /obj/structure/surface/table, /obj/item/device/binoculars, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/north) "cNh" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/device/flashlight, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/security) "cNt" = ( /turf/open/gm/coast/north, /area/varadero/exterior/comms4) "cNu" = ( -/turf/open/floor/shiva{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/north, /area/varadero/interior/hall_SE) "cNA" = ( /obj/structure/surface/table/reinforced/prison, @@ -4396,43 +3557,27 @@ }, /turf/open/floor/plating, /area/varadero/interior/administration) -"cNC" = ( -/obj/item/fuelCell{ - pixel_x = 4; - pixel_y = 22 - }, -/turf/open/auto_turf/sand_white/layer1, -/area/varadero/interior_protected/maintenance/south) "cNF" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/hall_SE) "cNJ" = ( /obj/structure/closet, /obj/item/device/flashlight/lantern, /obj/item/map/current_map, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/varadero/interior_protected/vessel) "cNT" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/varadero/interior/research) "cOj" = ( /obj/item/circuitboard/apc, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/north) "cOs" = ( /obj/structure/bed/sofa/pews/flipped{ @@ -4443,49 +3588,36 @@ /area/varadero/interior/chapel) "cOK" = ( /obj/item/stack/cable_coil/cut, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/east, /area/varadero/interior/morgue) "cPI" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/structure/largecrate/random, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/cargo) "cPR" = ( /obj/structure/window/framed/colony/reinforced, /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/varadero/interior/research) "cQr" = ( /obj/item/tool/crowbar/red{ pixel_x = 9; pixel_y = 8 }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/technical_storage) "cQu" = ( /obj/structure/prop/turbine_extras/left, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/lz1_near) "cRn" = ( /obj/item/prop/alien/hugger, -/turf/open/shuttle{ - icon_state = "floor6" - }, +/turf/open/shuttle/red, /area/varadero/interior_protected/vessel) "cRx" = ( /obj/structure/flora/bush/ausbushes/var3/sparsegrass{ @@ -4497,9 +3629,7 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/comms2) "cSa" = ( /obj/structure/flora/bush/ausbushes/var3/ywflowers{ @@ -4516,17 +3646,13 @@ /area/varadero/interior/chapel) "cTb" = ( /obj/item/device/flashlight/flare, -/turf/open/shuttle{ - icon_state = "floor6" - }, +/turf/open/shuttle/red, /area/varadero/interior_protected/vessel) "cTg" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/morgue) "cTr" = ( /obj/structure/machinery/light{ @@ -4535,23 +3661,16 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull/west, /area/varadero/interior/medical) "cTw" = ( /obj/structure/window/framed/colony, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/hall_SE) "cTV" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/toolbox, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/north) "cUE" = ( /obj/structure/surface/table/reinforced/prison{ @@ -4561,10 +3680,7 @@ pixel_x = 16; pixel_y = 16 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/varadero/interior_protected/vessel) "cUF" = ( /obj/structure/prop/invuln/minecart_tracks{ @@ -4582,9 +3698,7 @@ layer = 2.99 }, /obj/structure/blocker/invisible_wall/water, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/oob) "cUN" = ( /obj/structure/prop/rock/brown{ @@ -4593,18 +3707,13 @@ name = "sturdy rock(s)"; desc = "A solidified collection of local minerals. When melted, becomes a substance best known as lava. These look particularly durable." }, -/turf/open/gm/river/ocean{ - name = "deep ocean"; - default_name = "deep ocean" - }, +/turf/open/gm/river/ocean/deep_ocean, /area/varadero/exterior/farocean) "cUZ" = ( /obj/structure/largecrate/random/case/double{ anchored = 1 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/caves) "cVd" = ( /obj/structure/flora/bush/ausbushes/var3/fernybush, @@ -4620,9 +3729,7 @@ /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/hall_NW) "cWs" = ( /obj/structure/prop/invuln/overhead_pipe{ @@ -4634,10 +3741,7 @@ dir = 4 }, /obj/structure/prop/invuln/pipe_water, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "snow_mat" - }, +/turf/open/floor/shiva/snow_mat/west, /area/varadero/interior/maintenance) "cWu" = ( /obj/structure/prop/invuln/minecart_tracks{ @@ -4654,9 +3758,7 @@ layer = 2.99 }, /obj/structure/blocker/invisible_wall/water, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/oob) "cXa" = ( /obj/structure/platform/kutjevo/smooth{ @@ -4674,9 +3776,7 @@ /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/technical_storage) "cYa" = ( /obj/item/storage/firstaid/adv, @@ -4687,20 +3787,14 @@ dir = 4 }, /obj/effect/decal/cleanable/blood/drip, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "greenfull" - }, +/turf/open/floor/shiva/greenfull/west, /area/varadero/interior/hall_N) "cYr" = ( /obj/structure/machinery/landinglight/ds2/delaytwo{ dir = 4 }, /obj/item/stack/cable_coil/cut, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/varadero/exterior/lz1_near) "cYw" = ( /obj/structure/machinery/floodlight/landing{ @@ -4708,15 +3802,11 @@ name = "Construction Light" }, /obj/effect/decal/warning_stripes, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/monsoon) "cYB" = ( /obj/structure/window_frame/colony/reinforced, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/security) "cYC" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_core, @@ -4728,17 +3818,11 @@ /area/varadero/interior/caves/north_research) "cYZ" = ( /obj/structure/machinery/landinglight/ds2, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/varadero/exterior/lz1_near) "cZN" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellowfull" - }, +/turf/open/floor/shiva/yellowfull/west, /area/varadero/interior/technical_storage) "cZR" = ( /obj/structure/sign/safety/medical, @@ -4748,9 +3832,7 @@ /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/north) "dad" = ( /obj/item/stack/tile/plasteel, @@ -4759,22 +3841,14 @@ "daA" = ( /obj/structure/bed/chair, /obj/effect/landmark/survivor_spawner, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/shiva/green/north, /area/varadero/interior/court) "daS" = ( /obj/structure/flora/bush/ausbushes/var3/stalkybush, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/exterior/pontoon_beach) "dbg" = ( -/turf/open/floor/shiva{ - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow, /area/varadero/interior/technical_storage) "dbu" = ( /obj/structure/pipes/standard/manifold/hidden/green{ @@ -4784,9 +3858,7 @@ /area/varadero/interior/chapel) "dbV" = ( /obj/item/trash/liquidfood, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/hall_NW) "dcM" = ( /obj/item/ammo_magazine/revolver/cmb, @@ -4817,9 +3889,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/hall_NW) "ded" = ( /obj/structure/surface/table/reinforced/prison, @@ -4827,9 +3897,7 @@ pixel_y = 9 }, /obj/item/tool/pen/blue, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/morgue) "deg" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, @@ -4858,10 +3926,7 @@ /area/varadero/exterior/eastbeach) "deX" = ( /obj/item/trash/boonie, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/west, /area/varadero/interior/hall_NW) "dfs" = ( /obj/item/storage/belt/utility, @@ -4876,41 +3941,30 @@ /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/varadero/interior/morgue) "dfP" = ( /obj/structure/machinery/computer/shuttle_control/ice_colony/elevator1{ pixel_y = 32 }, /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/maintenance/south) "dgq" = ( -/turf/open/floor/shiva{ - icon_state = "red" - }, +/turf/open/floor/shiva/red, /area/varadero/interior/morgue) "dgF" = ( /obj/structure/machinery/storm_siren{ dir = 8; pixel_x = 3 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/electrical) "dgP" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "yellowcorners" - }, +/turf/open/floor/shiva/yellowcorners/north, /area/varadero/interior/disposals) "dgY" = ( /obj/structure/prop/rock/brown, @@ -4921,9 +3975,7 @@ dir = 4 }, /obj/structure/machinery/disposal, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/records) "dhQ" = ( /obj/effect/decal/cleanable/blood, @@ -4933,18 +3985,13 @@ /area/varadero/interior/chapel) "dhV" = ( /obj/structure/platform_decoration/kutjevo, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/exterior/comms4) "dir" = ( /obj/effect/landmark/lv624/fog_blocker{ time_to_dispel = 25000 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/caves/east) "diu" = ( /obj/structure/bed/chair/comfy{ @@ -4965,9 +4012,7 @@ dir = 4; pixel_x = 7 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/maintenance/south) "diK" = ( /obj/structure/machinery/power/apc{ @@ -5003,37 +4048,26 @@ /obj/structure/machinery/alarm{ pixel_y = 24 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/records) "diW" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "redcorners" - }, +/turf/open/floor/shiva/redcorners/north, /area/varadero/interior/security) "djb" = ( /obj/effect/decal/cleanable/vomit, -/turf/open/floor/shiva{ - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull, /area/varadero/interior/medical) "djh" = ( /obj/item/book/manual/security_space_law, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/varadero/interior/library) "djC" = ( /obj/structure/closet/toolcloset, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/north) "djH" = ( /obj/structure/pipes/vents/pump, @@ -5048,24 +4082,17 @@ /turf/open/floor/interior/plastic, /area/varadero/interior_protected/caves/digsite) "dkl" = ( -/turf/open/floor/shiva{ - icon_state = "snow_mat" - }, +/turf/open/floor/shiva/snow_mat, /area/varadero/interior/maintenance) "dkr" = ( /obj/structure/window/framed/colony/reinforced, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/research) "dkC" = ( /obj/structure/platform_decoration/kutjevo{ dir = 8 }, -/turf/open/gm/river/ocean{ - name = "deep ocean"; - default_name = "deep ocean" - }, +/turf/open/gm/river/ocean/deep_ocean, /area/varadero/exterior/comms4) "dkS" = ( /obj/effect/landmark/lv624/fog_blocker{ @@ -5077,9 +4104,7 @@ /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor/shiva{ - icon_state = "snow_mat" - }, +/turf/open/floor/shiva/snow_mat, /area/varadero/interior/maintenance) "dlh" = ( /obj/structure/machinery/chem_dispenser/soda{ @@ -5094,18 +4119,13 @@ dir = 4; pixel_x = -3 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/lz1_near) "dlv" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "purple" - }, +/turf/open/floor/shiva/purple/north, /area/varadero/interior/research) "dlD" = ( /obj/structure/prop/rock/brown_degree, @@ -5121,10 +4141,7 @@ dir = 4 }, /obj/effect/landmark/corpsespawner/colonist/burst, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "snow_mat" - }, +/turf/open/floor/shiva/snow_mat/east, /area/varadero/interior/medical) "dmR" = ( /obj/structure/surface/rack, @@ -5135,9 +4152,7 @@ /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/varadero/interior/research) "dnh" = ( /obj/structure/machinery/shower{ @@ -5150,45 +4165,31 @@ icon_state = "road_edge_decal3"; pixel_y = 16 }, -/turf/open/floor/wood{ - icon_state = "wood-broken3" - }, +/turf/open/floor/wood/wood_broken3, /area/varadero/interior/court) "dnU" = ( /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/varadero/interior/toilets) "dnV" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/varadero/interior/security) "dnW" = ( /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor/shiva{ - icon_state = "wredfull" - }, +/turf/open/floor/shiva/wredfull, /area/varadero/interior/medical) "doa" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull/west, /area/varadero/interior/medical) "dob" = ( /obj/structure/largecrate/random/case/double, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/varadero/exterior/lz1_near) "dos" = ( /obj/item/clothing/head/helmet, @@ -5204,9 +4205,7 @@ dir = 4; pixel_x = 24 }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/records) "doP" = ( /obj/structure/prop/rock/brown, @@ -5227,18 +4226,13 @@ name = "\improper Underground Security Brig"; req_access_txt = "100" }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/security) "dpO" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/evidencebag, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/shiva/red/east, /area/varadero/interior/security) "dpW" = ( /turf/open/gm/coast/beachcorner/north_east, @@ -5247,10 +4241,7 @@ /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellowcorners" - }, +/turf/open/floor/shiva/yellowcorners/west, /area/varadero/interior/cargo) "dqx" = ( /obj/structure/cargo_container/wy/right, @@ -5261,18 +4252,14 @@ /obj/structure/machinery/alarm{ pixel_y = 24 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/varadero/interior/cargo) "drK" = ( /obj/structure/bed/chair{ dir = 8; icon_state = "chair_alt" }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/maintenance/south) "dsi" = ( /obj/effect/decal/cleanable/blood/oil/streak, @@ -5280,10 +4267,7 @@ /area/varadero/interior_protected/caves/digsite) "dss" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellowfull" - }, +/turf/open/floor/shiva/yellowfull/west, /area/varadero/interior/cargo) "dsz" = ( /obj/structure/filingcabinet{ @@ -5299,19 +4283,14 @@ pixel_y = 11 }, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/comms2) "dsC" = ( /obj/structure/platform/kutjevo/smooth{ climb_delay = 1; layer = 2.99 }, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/exterior/comms4) "dtj" = ( /obj/structure/sign/poster/propaganda, @@ -5368,46 +4347,30 @@ pixel_x = -13; pixel_y = 12 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull/west, /area/varadero/interior/hall_N) "dvT" = ( -/turf/open/gm/dirt{ - icon_state = "desert0" - }, +/turf/open/gm/dirt/desert0, /area/varadero/exterior/eastbeach) "dwN" = ( /obj/item/tool/wet_sign, /obj/item/tool/mop, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/eastbeach) "dwP" = ( /obj/structure/machinery/computer3/powermonitor, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/north, /area/varadero/interior/electrical) "dxn" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22"; pixel_y = 8 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "greenfull" - }, +/turf/open/floor/shiva/greenfull/west, /area/varadero/interior/hall_N) "dxt" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "snow_mat" - }, +/turf/open/floor/shiva/snow_mat/north, /area/varadero/interior/maintenance) "dxK" = ( /obj/structure/prop/rock/brown, @@ -5415,9 +4378,7 @@ /area/varadero/interior/caves/north_research) "dyl" = ( /obj/effect/spawner/random/tool, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/lz2_near) "dyo" = ( /obj/structure/platform/kutjevo/smooth{ @@ -5446,25 +4407,17 @@ pixel_x = 3; pixel_y = 2 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "purplefull" - }, +/turf/open/floor/shiva/purplefull/west, /area/varadero/interior/research) "dBA" = ( /obj/item/tool/surgery/surgicaldrill/predatorsurgicaldrill{ pixel_x = 10 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/varadero/interior_protected/vessel) "dBB" = ( /obj/structure/machinery/body_scanconsole, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/medical) "dCz" = ( /obj/structure/surface/table/reinforced/prison, @@ -5476,15 +4429,10 @@ dir = 8; health = 80 }, -/turf/open/floor/shiva{ - icon_state = "red" - }, +/turf/open/floor/shiva/red, /area/varadero/interior/morgue) "dCE" = ( -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellowfull" - }, +/turf/open/floor/shiva/yellowfull/west, /area/varadero/interior/comms3) "dDn" = ( /obj/item/shard{ @@ -5505,9 +4453,7 @@ "dEo" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/toolbox, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/maintenance/south) "dEJ" = ( /obj/structure/machinery/landinglight/ds2/spoke{ @@ -5520,9 +4466,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/varadero/interior/cargo) "dFm" = ( /obj/structure/largecrate/supply/supplies/water, @@ -5555,9 +4499,7 @@ "dGh" = ( /obj/effect/landmark/objective_landmark/medium, /obj/structure/closet/crate/hydroponics/prespawned, -/turf/open/floor/shiva{ - icon_state = "blue" - }, +/turf/open/floor/shiva/blue, /area/varadero/interior/technical_storage) "dGr" = ( /turf/closed/shuttle{ @@ -5575,16 +4517,11 @@ dir = 1 }, /obj/effect/decal/cleanable/blood, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/varadero/interior/toilets) "dHD" = ( /obj/item/device/flashlight/lamp/tripod, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/varadero/interior_protected/vessel) "dHY" = ( /obj/structure/desertdam/decals/road_edge{ @@ -5626,20 +4563,23 @@ /area/varadero/interior_protected/caves/digsite) "dID" = ( /obj/structure/closet/wardrobe/engineering_yellow, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellowfull" - }, +/turf/open/floor/shiva/yellowfull/west, /area/varadero/interior/electrical) "dIK" = ( /obj/structure/largecrate/random, /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/maintenance/south) +"dJI" = ( +/obj/structure/surface/rack, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/turf/open/floor/plating/icefloor/asteroidplating, +/area/varadero/interior/maintenance/security) "dJX" = ( /obj/effect/decal/cleanable/blood/drip, /obj/effect/decal/cleanable/blood, @@ -5647,10 +4587,7 @@ /area/varadero/exterior/lz2_near) "dKc" = ( /obj/structure/closet/secure_closet/security, -/turf/open/floor/shiva{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/shiva/red/northeast, /area/varadero/interior/hall_N) "dKy" = ( /obj/structure/closet/crate/freezer/cooler/oj, @@ -5661,9 +4598,7 @@ /obj/item/reagent_container/food/drinks/cans/souto/grape, /obj/item/reagent_container/food/drinks/cans/souto/lime, /obj/item/reagent_container/food/drinks/cans/souto/grape, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/lz1_near) "dLN" = ( /obj/structure/flora/pottedplant{ @@ -5674,17 +4609,13 @@ dir = 4; pixel_x = 24 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/varadero/interior/medical) "dLP" = ( /obj/item/stool{ icon_state = "stool_alt" }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/varadero/interior/medical) "dMm" = ( /obj/structure/window/reinforced{ @@ -5693,10 +4624,7 @@ }, /obj/structure/surface/rack, /obj/item/tool/surgery/bonegel/predatorbonegel, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "purplefull" - }, +/turf/open/floor/shiva/purplefull/west, /area/varadero/interior/research) "dNh" = ( /obj/structure/stairs/perspective{ @@ -5704,23 +4632,17 @@ dir = 1; icon_state = "p_stair_full" }, -/turf/open/gm/dirt{ - icon_state = "desert3" - }, +/turf/open/gm/dirt/desert3, /area/varadero/exterior/lz1_near) "dNt" = ( /obj/effect/landmark/yautja_teleport, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/caves/north_research) "dNU" = ( /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/electrical) "dNW" = ( /obj/structure/machinery/light{ @@ -5741,9 +4663,7 @@ /obj/item/facepaint/lipstick/jade{ pixel_x = 5 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/medical) "dNY" = ( /obj/structure/window/reinforced/tinted{ @@ -5753,16 +4673,11 @@ /obj/item/device/flashlight/lamp/green{ pixel_y = 6 }, -/turf/open/floor/shiva{ - icon_state = "snow_mat" - }, +/turf/open/floor/shiva/snow_mat, /area/varadero/interior/security) "dNZ" = ( /obj/structure/prop/rock/brown, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/interior_protected/caves/central) "dOk" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -5772,9 +4687,7 @@ req_access_txt = "100"; req_one_access = null }, -/turf/open/floor/shiva{ - icon_state = "wredfull" - }, +/turf/open/floor/shiva/wredfull, /area/varadero/interior/medical) "dOl" = ( /obj/item/prop/colony/used_flare, @@ -5785,9 +4698,7 @@ /turf/open/gm/dirt, /area/varadero/exterior/lz2_near) "dOS" = ( -/turf/open/gm/dirt{ - icon_state = "desert2" - }, +/turf/open/gm/dirt/desert2, /area/varadero/exterior/pontoon_beach) "dPR" = ( /obj/item/reagent_container/glass/bucket, @@ -5797,50 +4708,31 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "greenfull" - }, +/turf/open/floor/shiva/greenfull/west, /area/varadero/interior/hall_N) "dQl" = ( -/turf/open/floor/shiva{ - dir = 8; - icon_state = "purplefull" - }, +/turf/open/floor/shiva/purplefull/west, /area/varadero/interior/research) "dQr" = ( /obj/structure/noticeboard{ pixel_y = 32 }, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/shiva/red/north, /area/varadero/interior/security) "dQK" = ( /obj/effect/landmark/static_comms/net_one, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/varadero/interior/comms1) "dQT" = ( /obj/structure/bed/chair/comfy/teal, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/medical) "dRs" = ( -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/exterior/eastocean) "dRI" = ( /obj/effect/landmark/yautja_teleport, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/caves/east) "dRX" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -5851,15 +4743,11 @@ req_access_txt = "100"; req_one_access = null }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/hall_N) "dSs" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/bunks) "dSA" = ( /obj/structure/prop/structure_lattice{ @@ -5871,22 +4759,16 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/varadero/interior/library) "dTe" = ( /obj/item/stack/cable_coil/random, -/turf/open/shuttle{ - icon_state = "floor6" - }, +/turf/open/shuttle/red, /area/varadero/interior_protected/vessel) "dTl" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/item/device/flashlight/lamp/tripod, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/research) "dTu" = ( /obj/structure/blocker/invisible_wall/water, @@ -5895,10 +4777,7 @@ /area/varadero/exterior/farocean) "dTC" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/shiva/red/north, /area/varadero/interior/medical) "dTG" = ( /turf/open/gm/coast/beachcorner/south_west, @@ -5908,38 +4787,26 @@ climb_delay = 1; layer = 2.99 }, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/interior_protected/caves) "dUh" = ( /obj/structure/morgue, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/shiva/red/east, /area/varadero/interior/morgue) "dUA" = ( /obj/structure/machinery/bioprinter, -/turf/open/floor/shiva{ - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull, /area/varadero/interior/medical) "dUL" = ( /obj/structure/machinery/light/small{ dir = 4 }, /obj/structure/barricade/wooden, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/security) "dUS" = ( /obj/effect/landmark/xeno_spawn, -/turf/open/shuttle{ - icon_state = "floor6" - }, +/turf/open/shuttle/red, /area/varadero/interior_protected/vessel) "dVq" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -5949,24 +4816,16 @@ req_one_access = null; req_access = null }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/varadero/interior/library) "dWl" = ( /obj/structure/filingcabinet, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellowfull" - }, +/turf/open/floor/shiva/yellowfull/west, /area/varadero/interior/electrical) "dWE" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/west, /area/varadero/interior/administration) "dWH" = ( /obj/structure/platform/kutjevo/smooth{ @@ -5976,10 +4835,7 @@ /obj/structure/barricade/handrail/wire{ layer = 3.1 }, -/turf/open/gm/river/ocean{ - name = "deep ocean"; - default_name = "deep ocean" - }, +/turf/open/gm/river/ocean/deep_ocean, /area/varadero/exterior/comms4) "dWN" = ( /obj/structure/surface/table/woodentable/fancy, @@ -6022,9 +4878,7 @@ /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance) "dYp" = ( /obj/item/book/manual/hydroponics_beekeeping, @@ -6038,27 +4892,19 @@ }, /obj/effect/spawner/random/bomb_supply, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "purplefull" - }, +/turf/open/floor/shiva/purplefull/west, /area/varadero/interior/research) "dYy" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull/west, /area/varadero/interior/hall_SE) "dYW" = ( /obj/item/reagent_container/glass/bucket/mopbucket{ pixel_x = 11 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/eastbeach) "dYX" = ( /obj/structure/machinery/light, @@ -6068,31 +4914,8 @@ /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/shiva{ - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow, /area/varadero/interior/cargo) -"dZZ" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/clothing/mask/cigarette/cigar/tarbacks{ - pixel_x = -7; - pixel_y = 8 - }, -/obj/item/tool/lighter/zippo{ - icon_off = "blackzippo"; - icon_on = "blackzippoon"; - icon_state = "blackzippo"; - pixel_x = -5; - pixel_y = 7 - }, -/obj/item/ashtray/plastic{ - pixel_x = 6; - pixel_y = -4 - }, -/turf/open/floor/shiva{ - icon_state = "blue" - }, -/area/varadero/interior/technical_storage) "eat" = ( /obj/structure/platform_decoration/kutjevo{ dir = 4 @@ -6125,9 +4948,7 @@ /area/varadero/interior/hall_N) "eaQ" = ( /obj/effect/spawner/random/toolbox, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/north) "ebi" = ( /obj/structure/flora/bush/ausbushes/var3/fernybush, @@ -6150,9 +4971,7 @@ }, /obj/effect/decal/cleanable/blood/drip, /obj/effect/decal/cleanable/blood, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/lz2_near) "ebJ" = ( /obj/structure/prop/invuln/minecart_tracks{ @@ -6169,28 +4988,20 @@ layer = 2.99 }, /obj/structure/blocker/invisible_wall/water, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/oob) "ebN" = ( /obj/structure/platform_decoration/kutjevo{ dir = 1 }, -/turf/open/gm/river/ocean{ - name = "deep ocean"; - default_name = "deep ocean" - }, +/turf/open/gm/river/ocean/deep_ocean, /area/varadero/exterior/pontoon_beach) "ecb" = ( /obj/structure/machinery/cm_vending/sorted/tech/comp_storage, /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/shiva/blue/north, /area/varadero/interior/technical_storage) "ecX" = ( /obj/effect/landmark/corpsespawner/engineer, @@ -6198,10 +5009,7 @@ /turf/open/gm/coast/north, /area/varadero/exterior/pontoon_beach) "edu" = ( -/turf/open/floor/shiva{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/shiva/blue/north, /area/varadero/interior/maintenance) "edD" = ( /obj/structure/platform/kutjevo/smooth{ @@ -6214,31 +5022,21 @@ climb_delay = 1; layer = 2.99 }, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/interior/caves/north_research) "eea" = ( /obj/vehicle/train/cargo/engine{ dir = 2 }, -/turf/open/floor/shiva{ - icon_state = "blue" - }, +/turf/open/floor/shiva/blue, /area/varadero/interior/hall_SE) "eeg" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk, -/turf/open/floor/shiva{ - dir = 5; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/northeast, /area/varadero/interior/technical_storage) "efw" = ( -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/research) "efy" = ( /turf/closed/wall/rock/brown, @@ -6247,10 +5045,7 @@ /obj/structure/machinery/landinglight/ds2{ dir = 4 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/varadero/exterior/lz1_near) "egj" = ( /obj/effect/landmark/hunter_secondary, @@ -6261,9 +5056,7 @@ /obj/structure/noticeboard{ pixel_y = -32 }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/varadero/interior/hall_N) "egH" = ( /obj/structure/prop/structure_lattice{ @@ -6275,9 +5068,7 @@ /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/varadero/interior/library) "egJ" = ( /obj/structure/surface/table, @@ -6286,10 +5077,7 @@ pixel_y = 11 }, /obj/item/reagent_container/glass/pressurized_canister, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/west, /area/varadero/interior/technical_storage) "egV" = ( /obj/item/ammo_magazine/handful/shotgun/buckshot, @@ -6305,19 +5093,14 @@ climb_delay = 1; layer = 2.99 }, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/exterior/pontoon_beach) "ehD" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/hall_NW) "ehH" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -6328,9 +5111,7 @@ pixel_x = -16; pixel_y = -8 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/cargo) "ehM" = ( /obj/structure/stairs/perspective{ @@ -6368,9 +5149,7 @@ /area/varadero/exterior/lz2_near) "eij" = ( /obj/structure/bed, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/security) "eiK" = ( /obj/structure/prop/rock/brown, @@ -6394,9 +5173,7 @@ dir = 8; pixel_x = 24 }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/varadero/interior/library) "ejM" = ( /turf/open/gm/coast/north, @@ -6409,17 +5186,12 @@ req_one_access = null; req_access = null }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/medical) "ekg" = ( /obj/structure/closet/secure_closet/engineering_personal, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/north, /area/varadero/interior/comms3) "ekE" = ( /obj/structure/platform/kutjevo/smooth{ @@ -6435,10 +5207,7 @@ /area/varadero/exterior/monsoon) "ekO" = ( /obj/structure/flora/bush/ausbushes/var3/fernybush, -/turf/open/gm/river/ocean{ - name = "deep ocean"; - default_name = "deep ocean" - }, +/turf/open/gm/river/ocean/deep_ocean, /area/varadero/exterior/comms4) "elI" = ( /turf/open/gm/coast/beachcorner/north_west, @@ -6446,27 +5215,21 @@ "elO" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/barricade/wooden, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/security) "elP" = ( -/turf/open/gm/dirt{ - icon_state = "desert2" - }, +/turf/open/gm/dirt/desert2, /area/varadero/exterior/monsoon) "emt" = ( /obj/structure/tunnel{ id = "north_research_tunnel" }, /turf/open/auto_turf/sand_white/layer1, -/area/varadero/interior/caves/north_research) +/area/varadero/interior_protected/caves/digsite) "emC" = ( /obj/structure/surface/rack, /obj/item/tool/surgery/scalpel/pict_system, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance) "emP" = ( /obj/structure/machinery/camera/autoname/lz_camera, @@ -6476,22 +5239,14 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/comms2) "enH" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/shiva/red/north, /area/varadero/interior/security) "enU" = ( -/turf/open/floor/shiva{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/west, /area/varadero/interior/cargo) "enZ" = ( /obj/structure/blocker/invisible_wall/water, @@ -6509,9 +5264,7 @@ /obj/item/shard{ icon_state = "medium" }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/security) "eov" = ( /turf/open/gm/dirt, @@ -6522,9 +5275,7 @@ pixel_x = 16; pixel_y = -8 }, -/turf/open/gm/dirt{ - icon_state = "desert3" - }, +/turf/open/gm/dirt/desert3, /area/varadero/exterior/eastbeach) "eoV" = ( /obj/structure/prop/resin_prop, @@ -6543,9 +5294,7 @@ dir = 8; icon_state = "pipe-c" }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/hall_SE) "epQ" = ( /turf/closed/wall, @@ -6556,9 +5305,7 @@ name = "\improper Underground Technical Storage"; req_access_txt = "100" }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/technical_storage) "eqe" = ( /obj/structure/surface/table/reinforced/prison, @@ -6574,10 +5321,7 @@ pixel_x = 7; pixel_y = -7 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "purplefull" - }, +/turf/open/floor/shiva/purplefull/west, /area/varadero/interior/research) "eqg" = ( /obj/structure/platform/kutjevo/smooth{ @@ -6591,29 +5335,21 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/varadero/interior/toilets) "eqB" = ( /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/security) "eqT" = ( /obj/effect/decal/cleanable/blood/drip, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/varadero/exterior/lz2_near) "erE" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/hall_N) "erK" = ( /obj/structure/machinery/door/airlock/almayer/maint{ @@ -6621,9 +5357,7 @@ req_access_txt = "100"; req_one_access = null }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/north) "erQ" = ( /obj/effect/overlay/palmtree_r, @@ -6631,18 +5365,13 @@ /area/varadero/exterior/monsoon) "esw" = ( /obj/effect/landmark/monkey_spawn, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/maintenance/south) "esz" = ( /obj/structure/surface/rack, /obj/item/storage/pouch/shotgun, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/shiva/red/west, /area/varadero/interior/medical) "esA" = ( /obj/effect/landmark/lv624/fog_blocker{ @@ -6651,18 +5380,12 @@ /obj/effect/landmark/lv624/fog_blocker{ time_to_dispel = 25000 }, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/exterior/eastocean) "esB" = ( /obj/structure/closet/radiation, /obj/effect/landmark/crap_item, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellowfull" - }, +/turf/open/floor/shiva/yellowfull/west, /area/varadero/interior/comms3) "esK" = ( /obj/effect/decal/warning_stripes{ @@ -6673,33 +5396,25 @@ /area/varadero/interior_protected/caves/digsite) "esM" = ( /obj/structure/target/syndicate, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/caves) "esO" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/varadero/interior/library) "etf" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper Underground Main Hallway" }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/hall_SE) "etv" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/maintenance/south) "etE" = ( /obj/structure/filingcabinet{ @@ -6729,17 +5444,11 @@ /obj/structure/surface/rack, /obj/item/tool/crowbar/red, /obj/item/tank/emergency_oxygen, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/varadero/exterior/lz1_near) "euM" = ( /obj/structure/machinery/light, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/shiva/green/north, /area/varadero/interior/hall_N) "euS" = ( /obj/structure/platform/kutjevo/smooth{ @@ -6748,7 +5457,7 @@ layer = 2.99 }, /turf/open/gm/coast/beachcorner/south_west, -/area/varadero/exterior/pontoon_beach) +/area/varadero/exterior/pontoon_beach/lz) "evV" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22" @@ -6756,38 +5465,26 @@ /obj/structure/machinery/firealarm{ pixel_y = 24 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/hall_N) "evW" = ( /obj/item/lightstick/variant/planted, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/monsoon) "evX" = ( /obj/structure/machinery/landinglight/ds2/delaytwo{ dir = 1 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/varadero/exterior/lz1_near) "ewv" = ( /obj/structure/machinery/constructable_frame, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/eastbeach) "ewS" = ( /obj/structure/surface/table, /obj/item/reagent_container/food/drinks/bottle/holywater, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/shiva/red/north, /area/varadero/interior/morgue) "exj" = ( /obj/structure/flora/bush/ausbushes/var3/fullgrass, @@ -6803,17 +5500,11 @@ "exH" = ( /obj/item/device/defibrillator, /obj/structure/surface/table, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "wred" - }, +/turf/open/floor/shiva/wred/north, /area/varadero/interior/medical) "exX" = ( /obj/structure/flora/bush/ausbushes/var3/stalkybush, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/exterior/eastocean) "eye" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -6821,9 +5512,7 @@ }, /obj/effect/landmark/corpsespawner/security, /obj/effect/decal/cleanable/blood, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/security) "eyt" = ( /turf/closed/wall/rock/brown, @@ -6846,10 +5535,7 @@ pixel_x = -14; pixel_y = 13 }, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "snow_mat" - }, +/turf/open/floor/shiva/snow_mat/east, /area/varadero/interior/maintenance) "ezd" = ( /obj/structure/pipes/standard/manifold/hidden/green{ @@ -6859,14 +5545,10 @@ dir = 4; icon_state = "pipe-c" }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/cargo) "ezt" = ( -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/hall_SE) "ezx" = ( /obj/structure/prop/structure_lattice{ @@ -6886,17 +5568,13 @@ /obj/structure/sign/safety/water{ pixel_x = 15 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/lz1_near) "ezI" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/varadero/interior/research) "ezU" = ( /obj/structure/platform/kutjevo/smooth{ @@ -6917,19 +5595,14 @@ icon_state = "pipe-c" }, /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/hall_SE) "ezZ" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk{ dir = 4 }, -/turf/open/floor/shiva{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/shiva/red/northwest, /area/varadero/interior/security) "eAG" = ( /obj/structure/disposalpipe/segment{ @@ -6939,26 +5612,20 @@ /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor/shiva{ - icon_state = "wredfull" - }, +/turf/open/floor/shiva/wredfull, /area/varadero/interior/medical) "eAJ" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/hall_SE) "eBf" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance) "eBm" = ( /obj/structure/platform/kutjevo/smooth{ @@ -6975,10 +5642,7 @@ /obj/structure/machinery/storm_siren{ pixel_y = 5 }, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/exterior/pontoon_beach) "eBs" = ( /turf/closed/wall/r_wall/elevator{ @@ -6989,33 +5653,24 @@ /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/cargo) "eBL" = ( -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/varadero/interior/cargo) "eBS" = ( /obj/item/tool/surgery/hemostat/predatorhemostat, /obj/structure/surface/table/reinforced/prison{ color = "#6b675e" }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/varadero/interior_protected/vessel) "eBT" = ( /obj/structure/surface/table, /obj/item/reagent_container/food/drinks/cup{ pixel_x = 3 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/maintenance/south) "eCg" = ( /obj/item/tool/warning_cone, @@ -7023,9 +5678,7 @@ /area/varadero/exterior/pontoon_beach) "eCj" = ( /obj/structure/prop/almayer/computers/sensor_computer3, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/varadero/interior/dock_control) "eCu" = ( /obj/structure/flora/bush/ausbushes/var3/stalkybush, @@ -7044,10 +5697,7 @@ indestructible = 1; unacidable = 1 }, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/exterior/farocean) "eDF" = ( /obj/structure/bed/stool{ @@ -7069,10 +5719,7 @@ climb_delay = 1; layer = 2.99 }, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/exterior/pontoon_beach) "eEd" = ( /obj/structure/blocker/forcefield/multitile_vehicles, @@ -7095,35 +5742,34 @@ /turf/open/gm/dirt, /area/varadero/exterior/pontoon_beach) "eFJ" = ( -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/comms3) "eFW" = ( /obj/structure/machinery/storm_siren{ pixel_y = 5 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/security) +"eGd" = ( +/obj/structure/machinery/power/reactor/colony, +/obj/structure/machinery/light{ + dir = 8 + }, +/turf/open/floor/plating/icefloor/asteroidplating, +/area/varadero/interior/electrical) "eGq" = ( /obj/item/reagent_container/food/snacks/eat_bar, /obj/item/reagent_container/food/snacks/eat_bar{ pixel_x = -4; pixel_y = -7 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/maintenance/south) "eGL" = ( /obj/item/stack/sheet/plasteel{ amount = 24 }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/electrical) "eGP" = ( /obj/structure/closet/cabinet, @@ -7151,10 +5797,7 @@ icon_state = "pottedplant_22"; pixel_y = 8 }, -/turf/open/floor/shiva{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/shiva/red/southwest, /area/varadero/interior/security) "eHZ" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, @@ -7162,10 +5805,7 @@ /area/varadero/interior_protected/caves/central) "eIr" = ( /obj/structure/platform_decoration/kutjevo, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/varadero/interior_protected/vessel) "eIT" = ( /obj/structure/surface/table/reinforced/prison, @@ -7178,16 +5818,10 @@ pixel_y = 5 }, /obj/item/reagent_container/food/condiment/saltshaker, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/east, /area/varadero/interior/hall_SE) "eIV" = ( -/turf/open/floor/shiva{ - dir = 4; - icon_state = "wred" - }, +/turf/open/floor/shiva/wred/east, /area/varadero/interior/medical) "eJI" = ( /obj/structure/barricade/handrail/wire{ @@ -7202,9 +5836,7 @@ pixel_x = 6; pixel_y = -2 }, -/turf/open/floor/shiva{ - icon_state = "red" - }, +/turf/open/floor/shiva/red, /area/varadero/interior/medical) "eJN" = ( /obj/structure/prop/invuln/lattice_prop{ @@ -7215,27 +5847,20 @@ /obj/structure/barricade/handrail/wire{ dir = 4 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/varadero/exterior/eastbeach) "eJS" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/decal/cleanable/blood/oil/streak, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/maintenance/south) "eKw" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/security) "eKF" = ( /obj/structure/bed/chair{ @@ -7243,9 +5868,7 @@ icon_state = "chair_alt"; pixel_y = 9 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/security) "eKL" = ( /obj/effect/overlay/palmtree_r{ @@ -7269,9 +5892,7 @@ pixel_y = 6 }, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/shiva{ - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull, /area/varadero/interior/medical) "eLZ" = ( /obj/structure/prop/ice_colony/dense/planter_box/hydro{ @@ -7282,10 +5903,7 @@ pixel_x = -1; pixel_y = 12 }, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/interior/caves/north_research) "eMi" = ( /obj/structure/desertdam/decals/road_edge{ @@ -7312,10 +5930,8 @@ /turf/open/floor/wood, /area/varadero/interior/court) "eMD" = ( -/turf/open/floor/shiva{ - dir = 10; - icon_state = "red" - }, +/obj/structure/tunnel/maint_tunnel, +/turf/open/floor/shiva/red/southwest, /area/varadero/interior/security) "eNk" = ( /obj/item/toy/sword, @@ -7338,19 +5954,14 @@ /obj/structure/machinery/optable, /obj/effect/landmark/corpsespawner/colonist/burst, /obj/effect/decal/cleanable/blood, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "snow_mat" - }, +/turf/open/floor/shiva/snow_mat/east, /area/varadero/interior/medical) "eOu" = ( /obj/structure/machinery/camera/autoname{ dir = 1; network = list("interrogation") }, -/turf/open/floor/shiva{ - icon_state = "red" - }, +/turf/open/floor/shiva/red, /area/varadero/interior/security) "eOv" = ( /obj/item/circuitboard/airlock, @@ -7360,18 +5971,13 @@ /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/shiva{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/shiva/red/northeast, /area/varadero/interior/security) "ePb" = ( /obj/effect/decal/warning_stripes{ icon_state = "E" }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/varadero/interior/cargo) "ePz" = ( /obj/item/explosive/grenade/incendiary/molotov{ @@ -7383,9 +5989,7 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/shiva{ - icon_state = "green" - }, +/turf/open/floor/shiva/green, /area/varadero/interior/hall_N) "eQa" = ( /obj/structure/pipes/standard/manifold/hidden/green{ @@ -7396,9 +6000,7 @@ pixel_x = 17; pixel_y = 16 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/security) "eQm" = ( /obj/structure/window/framed/wood, @@ -7410,17 +6012,12 @@ pixel_y = 5 }, /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/maintenance/south) "eQz" = ( /obj/structure/filingcabinet/filingcabinet, /obj/item/paper/research_notes, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/shiva/blue/west, /area/varadero/interior/administration) "eQC" = ( /obj/structure/largecrate/supply/supplies/water, @@ -7434,17 +6031,13 @@ }, /obj/effect/decal/cleanable/blood/oil, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/caves/east) "eQZ" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/varadero/interior/toilets) "eRD" = ( /obj/structure/pipes/vents/pump, @@ -7459,25 +6052,19 @@ "eRM" = ( /obj/structure/surface/rack, /obj/item/tool/crowbar, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/lz1_near) "eRO" = ( /obj/structure/prop/souto_land/streamer{ dir = 1; pixel_y = 24 }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/hall_NW) "eRQ" = ( /obj/item/tool/screwdriver, /obj/item/device/multitool, -/turf/open/shuttle{ - icon_state = "floor6" - }, +/turf/open/shuttle/red, /area/varadero/interior_protected/vessel) "eSg" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -7486,17 +6073,12 @@ /obj/structure/closet/hydrant{ pixel_y = 32 }, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/shiva/red/east, /area/varadero/interior/medical) "eSo" = ( /obj/structure/closet/crate/construction, /obj/item/tool/extinguisher, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/eastbeach) "eTb" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -7510,9 +6092,7 @@ "eTi" = ( /obj/effect/decal/cleanable/blood/gibs, /obj/effect/landmark/corpsespawner/colonist/burst, -/turf/open/floor/shiva{ - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull, /area/varadero/interior/medical) "eTP" = ( /obj/structure/desertdam/decals/road_edge{ @@ -7526,19 +6106,13 @@ /turf/open/floor/wood, /area/varadero/interior/court) "eUh" = ( -/turf/open/floor/shiva{ - dir = 8; - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull/west, /area/varadero/interior/maintenance) "eUv" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/shiva{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/shiva/red/southeast, /area/varadero/interior/security) "eUH" = ( /obj/structure/disposalpipe/segment{ @@ -7551,17 +6125,12 @@ /area/varadero/interior/hall_SE) "eVn" = ( /obj/structure/largecrate/random, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/north, /area/varadero/interior/cargo) "eVH" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/blood/oil/streak, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/comms2) "eVU" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -7569,9 +6138,7 @@ dir = 4; icon_state = "pipe-c" }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/hall_SE) "eVW" = ( /obj/structure/prop/invuln/minecart_tracks{ @@ -7582,9 +6149,7 @@ name = "\improper materials storage bin"; pixel_y = 8 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/lz1_near) "eWp" = ( /obj/structure/platform/kutjevo/smooth{ @@ -7593,16 +6158,10 @@ layer = 2.99 }, /obj/structure/largecrate/random, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/varadero/interior/comms1) "eWR" = ( -/turf/open/floor/shiva{ - dir = 8; - icon_state = "purplecorners" - }, +/turf/open/floor/shiva/purplecorners/west, /area/varadero/interior/research) "eWZ" = ( /obj/structure/prop/invuln/minecart_tracks{ @@ -7617,9 +6176,7 @@ climb_delay = 1; layer = 2.99 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/lz1_near) "eXg" = ( /obj/structure/platform/kutjevo/smooth{ @@ -7638,17 +6195,12 @@ icon_state = "hr_kutjevo"; name = "support struts" }, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/exterior/pontoon_beach) "eXr" = ( /obj/structure/surface/rack, /obj/item/storage/briefcase, -/turf/open/floor/shiva{ - icon_state = "purple" - }, +/turf/open/floor/shiva/purple, /area/varadero/interior/research) "eXw" = ( /obj/structure/prop/ice_colony/dense/planter_box/hydro{ @@ -7656,10 +6208,7 @@ name = "barge float"; desc = "A supportive lattice connected to two floating pontoons." }, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/exterior/farocean) "eXN" = ( /obj/effect/landmark/lv624/fog_blocker{ @@ -7681,52 +6230,35 @@ /obj/structure/bed/chair/office/light{ dir = 1 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "purplefull" - }, +/turf/open/floor/shiva/purplefull/west, /area/varadero/interior/research) "eYG" = ( -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/morgue) "eYM" = ( /obj/structure/machinery/power/monitor, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/electrical) "eZc" = ( /obj/structure/pipes/standard/manifold/fourway/hidden/green, -/turf/open/floor/shiva{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/southeast, /area/varadero/interior/administration) "eZk" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; pixel_y = 1 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/cargo) "fao" = ( /obj/structure/reagent_dispensers/water_cooler{ density = 0; pixel_y = 19 }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/hall_NW) "faq" = ( -/turf/open/floor/shiva{ - dir = 8; - icon_state = "greenfull" - }, +/turf/open/floor/shiva/greenfull/west, /area/varadero/interior/medical) "fay" = ( /turf/closed/wall/r_wall, @@ -7744,17 +6276,11 @@ icon_state = "pottedplant_22"; pixel_y = 8 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellowfull" - }, +/turf/open/floor/shiva/yellowfull/west, /area/varadero/interior/comms3) "faX" = ( /obj/structure/closet/secure_closet/engineering_electrical, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/north, /area/varadero/interior/electrical) "fbr" = ( /obj/effect/landmark/corpsespawner/miner, @@ -7775,9 +6301,7 @@ dir = 4 }, /obj/effect/decal/cleanable/blood/drip, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/eastbeach) "fbQ" = ( /obj/structure/desertdam/decals/road_edge{ @@ -7800,10 +6324,7 @@ /obj/item/tool/surgery/FixOVein/predatorFixOVein{ pixel_x = -4 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/varadero/interior_protected/vessel) "fbZ" = ( /obj/structure/prop/server_equipment/yutani_server, @@ -7816,9 +6337,7 @@ /area/varadero/interior_protected/caves/digsite) "fcg" = ( /obj/structure/closet/secure_closet/freezer/meat, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/varadero/interior/cargo) "fcp" = ( /obj/structure/flora/bush/ausbushes/var3/stalkybush, @@ -7837,18 +6356,14 @@ pixel_x = 16; pixel_y = 24 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/cargo) "fdn" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/machinery/cm_vending/sorted/medical/wall_med/limited{ pixel_x = -28 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/research) "fdw" = ( /obj/structure/pipes/vents/pump{ @@ -7857,9 +6372,7 @@ /obj/structure/barricade/handrail/wire{ layer = 3.1 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/court) "fdA" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -7870,9 +6383,7 @@ req_access = null; req_one_access = null }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/varadero/interior/maintenance/research) "fef" = ( /obj/structure/surface/table/reinforced/prison, @@ -7884,10 +6395,7 @@ pixel_x = -3; pixel_y = 3 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "purplefull" - }, +/turf/open/floor/shiva/purplefull/west, /area/varadero/interior/research) "feH" = ( /obj/effect/landmark/lv624/fog_blocker{ @@ -7904,23 +6412,16 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/security) "feV" = ( /obj/structure/surface/table, /obj/effect/spawner/random/attachment, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/shiva/blue/north, /area/varadero/interior/administration) "feW" = ( /obj/effect/decal/cleanable/blood/drip, -/turf/open/gm/dirt{ - icon_state = "desert3" - }, +/turf/open/gm/dirt/desert3, /area/varadero/interior/maintenance/north) "ffe" = ( /obj/structure/curtain/shower, @@ -7931,9 +6432,7 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/medical) "ffx" = ( /obj/structure/disposalpipe/segment{ @@ -7950,9 +6449,7 @@ /obj/structure/barricade/handrail/wire{ layer = 3.1 }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/disposals) "fga" = ( /obj/structure/machinery/light/small{ @@ -7960,16 +6457,12 @@ }, /obj/structure/surface/rack, /obj/item/tool/wrench, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/security) "fgS" = ( /obj/structure/closet/crate/secure, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/cargo) "fgW" = ( /obj/structure/bed/chair/wood/normal{ @@ -7986,34 +6479,21 @@ pixel_x = -10; pixel_y = 11 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/maintenance/south) "fhu" = ( -/obj/structure/bed/chair{ - dir = 3 - }, -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" - }, +/obj/structure/bed/chair, +/turf/open/floor/asteroidwarning/west, /area/varadero/exterior/lz1_near) "fhA" = ( /obj/item/device/flashlight, /obj/structure/surface/table/reinforced/prison{ color = "#6b675e" }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/varadero/interior_protected/vessel) "fhM" = ( -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/west, /area/varadero/interior/disposals) "fhV" = ( /obj/structure/surface/table, @@ -8024,28 +6504,21 @@ /obj/item/reagent_container/food/drinks/cup{ pixel_x = 7 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/maintenance/south) "fiv" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ dir = 1; name = "\improper Underground Staff Canteen" }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/mess) "fiA" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22"; pixel_y = 8 }, -/turf/open/floor/shiva{ - dir = 6; - icon_state = "green" - }, +/turf/open/floor/shiva/green/southeast, /area/varadero/interior/hall_SE) "fiB" = ( /obj/structure/surface/table/reinforced/prison, @@ -8059,9 +6532,7 @@ pixel_y = 11 }, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/shiva{ - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull, /area/varadero/interior/medical) "fjg" = ( /turf/open/gm/grass/grass1/weedable, @@ -8069,19 +6540,13 @@ "fjv" = ( /obj/structure/blocker/invisible_wall/water, /obj/structure/prop/rock/brown, -/turf/open/gm/river/ocean{ - name = "deep ocean"; - default_name = "deep ocean" - }, +/turf/open/gm/river/ocean/deep_ocean, /area/varadero/exterior/farocean) "fjx" = ( /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/shiva{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/shiva/red/northwest, /area/varadero/interior/security) "fjC" = ( /obj/structure/disposalpipe/segment, @@ -8103,9 +6568,7 @@ "fjK" = ( /obj/structure/closet/crate/secure, /obj/effect/landmark/objective_landmark/far, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/cargo) "fjM" = ( /obj/structure/machinery/conveyor, @@ -8118,19 +6581,14 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "green" - }, +/turf/open/floor/shiva/green/west, /area/varadero/interior/hall_SE) "fkd" = ( /obj/item/toy/beach_ball, /turf/open/auto_turf/sand_white/layer1, /area/varadero/exterior/pontoon_beach) "fkj" = ( -/turf/open/floor/shiva{ - icon_state = "green" - }, +/turf/open/floor/shiva/green, /area/varadero/interior/hall_SE) "fky" = ( /obj/structure/prop/ice_colony/dense/planter_box/plated{ @@ -8141,23 +6599,17 @@ icon_state = "pointybush_3"; pixel_y = 11 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/maintenance/south) "fkE" = ( /obj/structure/largecrate/random/case/double, -/turf/open/floor/shiva{ - icon_state = "blue" - }, +/turf/open/floor/shiva/blue, /area/varadero/interior/hall_SE) "fkF" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/north) "fkR" = ( /turf/closed/wall, @@ -8183,39 +6635,29 @@ dir = 8; icon_state = "chair_alt" }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/comms2) "fnj" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/maintenance/south) "fnl" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/landmark/static_comms/net_two, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/comms2) "fnq" = ( /obj/effect/spawner/random/technology_scanner, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/hall_SE) "fnX" = ( /obj/structure/platform_decoration/kutjevo{ dir = 4 }, -/turf/open/floor/shiva{ - icon_state = "snow_mat" - }, +/turf/open/floor/shiva/snow_mat, /area/varadero/interior/maintenance) "fof" = ( /obj/structure/shuttle/engine/heater{ @@ -8227,10 +6669,7 @@ icon_state = "phoronrwindow" }, /obj/item/device/flashlight/slime, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/varadero/interior_protected/vessel) "foz" = ( /obj/structure/surface/table/reinforced/prison, @@ -8238,10 +6677,7 @@ dir = 8; pixel_x = -11 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "green" - }, +/turf/open/floor/shiva/green/west, /area/varadero/interior/mess) "foE" = ( /obj/effect/decal/cleanable/blood/drip, @@ -8250,17 +6686,11 @@ pixel_x = -16; pixel_y = 24 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/varadero/exterior/eastbeach) "foF" = ( /obj/structure/machinery/bot/mulebot, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/north, /area/varadero/interior/cargo) "foQ" = ( /obj/structure/platform_decoration/kutjevo{ @@ -8285,10 +6715,7 @@ pixel_x = 6; pixel_y = 18 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/west, /area/varadero/interior/hall_NW) "fpe" = ( /obj/structure/machinery/power/apc{ @@ -8296,9 +6723,7 @@ pixel_x = 24; start_charge = 0 }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/varadero/interior/library) "fpf" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -8306,9 +6731,7 @@ /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/hall_NW) "fpq" = ( /turf/open/gm/coast/beachcorner2/south_east, @@ -8322,31 +6745,22 @@ /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance) "fqu" = ( /obj/item/weapon/gun/rifle/m41a, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/north, /area/varadero/interior/hall_SE) "fqY" = ( /obj/structure/disposalpipe/segment{ dir = 8 }, /obj/structure/machinery/light, -/turf/open/floor/shiva{ - icon_state = "red" - }, +/turf/open/floor/shiva/red, /area/varadero/interior/security) "frQ" = ( /obj/item/stack/sheet/metal, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/hall_SE) "frR" = ( /obj/structure/prop/rock/brown, @@ -8376,30 +6790,22 @@ /turf/closed/wall/r_wall, /area/varadero/interior/research) "ftF" = ( -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/comms3) "fuh" = ( /obj/structure/prop/ice_colony/soil_net, -/turf/open/gm/dirt{ - icon_state = "desert_dug" - }, +/turf/open/gm/dirt/desert_dug, /area/varadero/interior/maintenance/north) "fuj" = ( /obj/structure/barricade/wooden, /obj/structure/safe/floor, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/maintenance/south) "fuF" = ( /obj/structure/machinery/storm_siren{ pixel_y = 5 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/cargo) "fuS" = ( /obj/structure/window/framed/colony/reinforced, @@ -8425,10 +6831,7 @@ /obj/structure/machinery/chem_dispenser/soda/beer{ pixel_y = 8 }, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/north, /area/varadero/interior/hall_SE) "fvV" = ( /obj/structure/largecrate/random/barrel/green, @@ -8446,9 +6849,7 @@ name = "Construction Light" }, /obj/effect/decal/warning_stripes, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/pontoon_beach) "fxR" = ( /obj/item/moneybag{ @@ -8463,10 +6864,7 @@ /obj/structure/bed/chair/hunter{ dir = 8 }, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/varadero/interior_protected/vessel) "fxX" = ( /obj/structure/prop/invuln/overhead_pipe{ @@ -8481,9 +6879,7 @@ layer = 3.01 }, /obj/structure/catwalk, -/turf/open/gm/river/desert/deep{ - base_river_slowdown = 0 - }, +/turf/open/gm/river/desert/deep/no_slowdown, /area/varadero/interior/maintenance/north) "fyH" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -8493,9 +6889,7 @@ /obj/item/ammo_casing/shell{ icon_state = "cartridge_1_1" }, -/turf/open/floor/shiva{ - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull, /area/varadero/interior/medical) "fyP" = ( /obj/structure/surface/table/woodentable, @@ -8512,9 +6906,7 @@ name = "Orion"; real_name = "Orion" }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/varadero/interior/morgue) "fzc" = ( /obj/structure/blocker/forcefield/multitile_vehicles, @@ -8522,28 +6914,19 @@ /area/varadero/interior/caves/north_research) "fzx" = ( /obj/effect/spawner/random/tool, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/north) "fzy" = ( /obj/structure/closet/emcloset, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/hall_N) "fAq" = ( /obj/structure/machinery/photocopier, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/shiva/red/north, /area/varadero/interior/morgue) "fAs" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/shiva{ - icon_state = "blue" - }, +/turf/open/floor/shiva/blue, /area/varadero/interior/administration) "fAO" = ( /turf/open/floor/plating, @@ -8552,9 +6935,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance) "fBV" = ( /obj/structure/blocker/forcefield/multitile_vehicles, @@ -8565,19 +6946,13 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/north, /area/varadero/interior/electrical) "fDB" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/east, /area/varadero/interior/cargo) "fDH" = ( /obj/structure/blocker/invisible_wall/water, @@ -8586,10 +6961,7 @@ /area/varadero/exterior/farocean) "fEb" = ( /obj/structure/barricade/wooden, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "snow_mat" - }, +/turf/open/floor/shiva/snow_mat/west, /area/varadero/interior/maintenance) "fEm" = ( /obj/structure/largecrate/random, @@ -8597,38 +6969,28 @@ pixel_x = -3; pixel_y = 14 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/hall_SE) "fEu" = ( -/turf/open/floor{ - icon_state = "bcircuit" - }, +/turf/open/floor/bcircuit, /area/varadero/interior/electrical) "fEz" = ( /obj/structure/machinery/door/airlock/multi_tile/elevator/access/arrivals, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/records) "fEA" = ( /obj/structure/girder/displaced, /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/security) "fEI" = ( /obj/structure/bedsheetbin{ icon_state = "linenbin-empty" }, /obj/item/clothing/under/CM_uniform, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/bunks) "fER" = ( /obj/structure/disposalpipe/segment, @@ -8636,10 +6998,7 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/shiva/red/east, /area/varadero/interior/security) "fFm" = ( /obj/structure/surface/table/reinforced/prison, @@ -8647,9 +7006,7 @@ pixel_x = 3 }, /obj/effect/spawner/random/attachment, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/hall_SE) "fFs" = ( /obj/structure/machinery/reagentgrinder{ @@ -8660,9 +7017,7 @@ /obj/item/stack/sheet/mineral/phoron, /obj/item/stack/sheet/mineral/phoron, /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/medical) "fFw" = ( /obj/item/stack/sheet/wood, @@ -8673,10 +7028,7 @@ pixel_y = 24 }, /obj/structure/machinery/power/port_gen/pacman, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/north, /area/varadero/interior/electrical) "fFH" = ( /obj/structure/platform/kutjevo/smooth{ @@ -8690,9 +7042,7 @@ /obj/structure/bed/chair/office/dark{ dir = 8 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/administration) "fFK" = ( /obj/structure/bed{ @@ -8703,16 +7053,11 @@ layer = 2.1; name = "lattice" }, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/interior_protected/vessel) "fFO" = ( /obj/effect/landmark/corpsespawner/colonist/burst, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/caves) "fGM" = ( /obj/structure/bed/chair/wood/normal{ @@ -8724,9 +7069,7 @@ /turf/open/floor/carpet, /area/varadero/interior/library) "fGN" = ( -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/farocean) "fGP" = ( /obj/effect/landmark/queen_spawn, @@ -8736,10 +7079,7 @@ /obj/structure/platform_decoration/kutjevo{ dir = 1 }, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/exterior/pontoon_beach) "fHg" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, @@ -8757,25 +7097,18 @@ dir = 1; icon_state = "pipe-c" }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/hall_NW) "fHx" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22"; pixel_y = 8 }, -/turf/open/floor/shiva{ - icon_state = "snow_mat" - }, +/turf/open/floor/shiva/snow_mat, /area/varadero/interior/security) "fIk" = ( /obj/item/prop/colony/used_flare, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/varadero/exterior/lz2_near) "fJb" = ( /obj/structure/prop/invuln/lattice_prop{ @@ -8786,17 +7119,12 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "green" - }, +/turf/open/floor/shiva/green/east, /area/varadero/interior/hall_SE) "fJw" = ( /obj/effect/decal/cleanable/blood, /obj/item/weapon/gun/rifle/m41a, -/turf/open/floor/shiva{ - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull, /area/varadero/interior/medical) "fJI" = ( /obj/item/clothing/gloves/yautja{ @@ -8813,19 +7141,13 @@ /obj/structure/bed/chair/hunter{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/varadero/interior_protected/vessel) "fJR" = ( /obj/structure/surface/table, /obj/item/bodybag/cryobag, /obj/item/storage/box/syringes, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "wred" - }, +/turf/open/floor/shiva/wred/north, /area/varadero/interior/medical) "fKz" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -8836,9 +7158,7 @@ req_access = null; req_one_access = null }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/varadero/interior/research) "fLn" = ( /obj/structure/machinery/door/window/brigdoor/westleft{ @@ -8847,16 +7167,11 @@ id = "brg" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "snow_mat" - }, +/turf/open/floor/shiva/snow_mat/east, /area/varadero/interior/security) "fLu" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/maintenance/south) "fLY" = ( /turf/open/gm/coast/beachcorner2/north_west, @@ -8866,10 +7181,7 @@ /obj/item/storage/toolbox/mechanical, /obj/item/storage/toolbox/mechanical, /obj/effect/landmark/crap_item, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/west, /area/varadero/interior/comms3) "fMq" = ( /obj/item/device/cassette_tape/heavymetal{ @@ -8881,10 +7193,7 @@ pixel_x = 5; pixel_y = -3 }, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/shiva/red/east, /area/varadero/interior/medical) "fMI" = ( /obj/structure/flora/bush/ausbushes/var3/sparsegrass, @@ -8893,10 +7202,7 @@ "fMP" = ( /obj/effect/landmark/objective_landmark/far, /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/north, /area/varadero/interior/hall_SE) "fNm" = ( /obj/structure/platform/kutjevo/smooth{ @@ -8922,9 +7228,7 @@ pixel_x = 16; pixel_y = -8 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/research) "fOG" = ( /obj/structure/platform/kutjevo/smooth{ @@ -8933,10 +7237,7 @@ layer = 2.99 }, /obj/structure/machinery/constructable_frame, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/varadero/interior/comms1) "fOO" = ( /obj/structure/machinery/cm_vending/sorted/medical/wall_med/limited, @@ -8949,17 +7250,13 @@ /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/hall_SE) "fPo" = ( /obj/structure/surface/table/reinforced/prison, /obj/effect/landmark/crap_item, /obj/item/storage/fancy/cigar, -/turf/open/floor/shiva{ - icon_state = "blue" - }, +/turf/open/floor/shiva/blue, /area/varadero/interior/administration) "fPp" = ( /obj/structure/flora/bush/ausbushes/var3/ywflowers{ @@ -8973,19 +7270,14 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/eastbeach) "fPy" = ( /obj/structure/prop/rock/brown, /obj/effect/landmark/lv624/fog_blocker{ time_to_dispel = 25000 }, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/exterior/eastocean) "fPJ" = ( /obj/effect/decal/cleanable/dirt, @@ -9004,10 +7296,7 @@ icon_state = "pottedplant_22"; pixel_y = 8 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/west, /area/varadero/interior/hall_NW) "fQh" = ( /obj/item/shard{ @@ -9022,18 +7311,13 @@ /area/varadero/interior/beach_bar) "fQr" = ( /obj/structure/closet/emcloset, -/turf/open/floor/shiva{ - icon_state = "green" - }, +/turf/open/floor/shiva/green, /area/varadero/interior/hall_N) "fQE" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "green" - }, +/turf/open/floor/shiva/green/east, /area/varadero/interior/mess) "fQK" = ( /obj/structure/flora/bush/ausbushes/var3/sparsegrass{ @@ -9043,9 +7327,7 @@ /area/varadero/exterior/comms4) "fQW" = ( /obj/structure/prop/turbine_extras, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/comms1) "fRl" = ( /obj/structure/largecrate/random/case, @@ -9065,14 +7347,10 @@ /area/varadero/exterior/eastbeach) "fTh" = ( /obj/item/tool/shovel, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/monsoon) "fUn" = ( -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/maintenance/north) "fUs" = ( /obj/structure/machinery/light/small, @@ -9084,37 +7362,26 @@ }, /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/objective_landmark/far, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/caves/east) "fUF" = ( /obj/structure/machinery/landinglight/ds2/delaythree{ dir = 8 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/varadero/exterior/lz1_near) "fUJ" = ( /obj/structure/machinery/vending/cigarette, /turf/open/floor/wood, /area/varadero/interior/hall_SE) "fUY" = ( -/turf/open/floor/shiva{ - dir = 6; - icon_state = "purple" - }, +/turf/open/floor/shiva/purple/southeast, /area/varadero/interior/research) "fUZ" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/shiva{ - dir = 9; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/northwest, /area/varadero/interior/disposals) "fVt" = ( /obj/structure/machinery/door_control{ @@ -9123,9 +7390,7 @@ pixel_y = -26 }, /obj/item/storage/box/flashbangs, -/turf/open/floor/shiva{ - icon_state = "red" - }, +/turf/open/floor/shiva/red, /area/varadero/interior/security) "fVw" = ( /obj/effect/decal/warning_stripes{ @@ -9140,36 +7405,24 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/shiva{ - dir = 6; - icon_state = "purple" - }, +/turf/open/floor/shiva/purple/southeast, /area/varadero/interior/research) "fWr" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "purple" - }, +/turf/open/floor/shiva/purple/east, /area/varadero/interior/hall_NW) "fWz" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/shiva{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/southeast, /area/varadero/interior/administration) "fWA" = ( /obj/structure/bed/chair, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "purplefull" - }, +/turf/open/floor/shiva/purplefull/west, /area/varadero/interior/research) "fWE" = ( /obj/structure/platform/kutjevo/smooth{ @@ -9181,7 +7434,7 @@ layer = 3.1 }, /turf/open/gm/coast/beachcorner2/north_west, -/area/varadero/exterior/pontoon_beach) +/area/varadero/exterior/pontoon_beach/lz) "fWR" = ( /obj/structure/stairs/perspective{ color = "#b29082"; @@ -9197,10 +7450,7 @@ /area/varadero/exterior/lz1_near) "fWU" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull/west, /area/varadero/interior/hall_N) "fWW" = ( /obj/structure/surface/rack, @@ -9223,9 +7473,7 @@ pixel_y = 12 }, /obj/item/trash/barcardine, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/lz1_near) "fXA" = ( /obj/structure/platform/kutjevo/smooth{ @@ -9248,10 +7496,7 @@ /area/varadero/interior/hall_SE) "fXH" = ( /obj/structure/machinery/landinglight/ds2/delaythree, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/varadero/exterior/lz1_near) "fXX" = ( /obj/structure/closet/crate, @@ -9260,49 +7505,31 @@ }, /obj/item/trash/crushed_cup, /obj/item/trash/c_tube, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/cargo) "fYs" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/maintenance/south) "fYA" = ( -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellowfull" - }, +/turf/open/floor/shiva/yellowfull/west, /area/varadero/interior/hall_N) "fYH" = ( -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellowfull" - }, +/turf/open/floor/shiva/yellowfull/west, /area/varadero/interior/disposals) "fYQ" = ( -/turf/open/floor/shiva{ - dir = 8; - icon_state = "snow_mat" - }, +/turf/open/floor/shiva/snow_mat/west, /area/varadero/interior/medical) "fZe" = ( /obj/structure/machinery/door/airlock/multi_tile/elevator/access/dormatory, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "greenfull" - }, +/turf/open/floor/shiva/greenfull/west, /area/varadero/interior/hall_N) "fZx" = ( /obj/item/stool{ pixel_x = -7; pixel_y = -4 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/lz1_near) "fZB" = ( /obj/structure/prop/structure_lattice{ @@ -9318,26 +7545,19 @@ icon_state = "vent4"; pixel_y = 25 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/lz1_near) "fZI" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "greenfull" - }, +/turf/open/floor/shiva/greenfull/west, /area/varadero/interior/medical) "fZP" = ( /obj/item/shard{ icon_state = "medium" }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/caves/east) "fZX" = ( /obj/structure/platform_decoration/kutjevo, @@ -9349,16 +7569,11 @@ pixel_x = -24; start_charge = 0 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "green" - }, +/turf/open/floor/shiva/green/west, /area/varadero/interior/court) "gar" = ( /obj/structure/machinery/computer3/powermonitor, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/electrical) "gaw" = ( /obj/structure/flora/pottedplant{ @@ -9368,10 +7583,7 @@ /obj/structure/machinery/alarm{ pixel_y = 24 }, -/turf/open/floor/shiva{ - dir = 9; - icon_state = "green" - }, +/turf/open/floor/shiva/green/northwest, /area/varadero/interior/hall_SE) "gaG" = ( /obj/structure/platform_decoration/kutjevo{ @@ -9381,9 +7593,7 @@ /area/varadero/exterior/eastbeach) "gaJ" = ( /obj/effect/spawner/random/tool, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/caves/east) "gbE" = ( /obj/structure/barricade/handrail{ @@ -9399,10 +7609,7 @@ dir = 1; icon_state = "chair" }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "greenfull" - }, +/turf/open/floor/shiva/greenfull/west, /area/varadero/interior/hall_SE) "gcB" = ( /obj/structure/largecrate/random/barrel/white, @@ -9421,10 +7628,7 @@ /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/shiva{ - dir = 9; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/northwest, /area/varadero/interior/cargo) "gdJ" = ( /obj/structure/platform/kutjevo/smooth{ @@ -9456,10 +7660,7 @@ pixel_x = 17; pixel_y = 16 }, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/exterior/pool) "geo" = ( /turf/open/gm/dirt, @@ -9510,18 +7711,13 @@ /obj/structure/disposalpipe/trunk{ dir = 8 }, -/turf/open/floor/shiva{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/shiva/red/southeast, /area/varadero/interior/security) "gfj" = ( /obj/effect/decal/cleanable/cobweb{ dir = 4 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/security) "gfk" = ( /obj/structure/girder/displaced, @@ -9531,9 +7727,7 @@ /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/shiva{ - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow, /area/varadero/interior/disposals) "gfr" = ( /obj/structure/surface/table/reinforced/prison, @@ -9550,9 +7744,7 @@ pixel_y = 3 }, /obj/item/ammo_magazine/rifle, -/turf/open/floor/shiva{ - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull, /area/varadero/interior/medical) "gfs" = ( /obj/structure/surface/table, @@ -9564,15 +7756,11 @@ pixel_x = 4; pixel_y = 7 }, -/turf/open/floor/shiva{ - icon_state = "blue" - }, +/turf/open/floor/shiva/blue, /area/varadero/interior/hall_SE) "gfu" = ( /obj/item/device/flashlight/lamp/tripod, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/security) "gfA" = ( /obj/structure/desertdam/decals/road_edge{ @@ -9586,9 +7774,7 @@ /area/varadero/interior/court) "gfG" = ( /obj/structure/closet/crate/trashcart, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/security) "ggk" = ( /turf/closed/wall/r_wall/elevator{ @@ -9608,27 +7794,19 @@ /area/varadero/interior_protected/caves) "gha" = ( /obj/structure/surface/table, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/security) "ghb" = ( /obj/item/tool/crowbar, -/turf/open/floor/shiva{ - icon_state = "red" - }, +/turf/open/floor/shiva/red, /area/varadero/interior/security) "ghr" = ( /obj/effect/decal/cleanable/blood/drip, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/morgue) "ghs" = ( /obj/structure/largecrate/random, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/maintenance/south) "ghI" = ( /obj/structure/catwalk, @@ -9641,9 +7819,7 @@ /turf/open/gm/coast/south, /area/varadero/exterior/monsoon) "ghW" = ( -/turf/open/gm/dirt{ - icon_state = "desert2" - }, +/turf/open/gm/dirt/desert2, /area/varadero/exterior/lz2_near) "gia" = ( /obj/structure/disposalpipe/segment{ @@ -9651,17 +7827,12 @@ icon_state = "pipe-c" }, /obj/structure/pipes/standard/manifold/fourway/hidden/green, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/hall_SE) "giq" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/blood/drip, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "purple" - }, +/turf/open/floor/shiva/purple/north, /area/varadero/interior/research) "giN" = ( /turf/open/auto_turf/sand_white/layer1, @@ -9678,9 +7849,7 @@ pixel_x = 12; pixel_y = 13 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/maintenance/south) "gjs" = ( /obj/structure/prop/invuln/lattice_prop{ @@ -9688,15 +7857,10 @@ pixel_x = 16; pixel_y = 24 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance) "gjw" = ( -/turf/open/floor/shiva{ - dir = 4; - icon_state = "snow_mat" - }, +/turf/open/floor/shiva/snow_mat/east, /area/varadero/interior/medical) "gjy" = ( /obj/structure/surface/table/reinforced/prison, @@ -9704,9 +7868,7 @@ dir = 1 }, /obj/structure/machinery/computer/communications, -/turf/open/floor/shiva{ - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull, /area/varadero/interior/medical) "gjz" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -9714,9 +7876,7 @@ icon_state = "pottedplant_22"; pixel_y = 8 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/security) "gjC" = ( /obj/effect/overlay/palmtree_r, @@ -9726,9 +7886,7 @@ /obj/structure/machinery/shower{ dir = 1 }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/research) "gkk" = ( /obj/structure/surface/table/reinforced/prison, @@ -9747,9 +7905,7 @@ /obj/structure/machinery/power/apc{ dir = 1 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/comms4) "gkx" = ( /obj/item/stack/tile/plasteel{ @@ -9769,9 +7925,7 @@ pixel_x = 16; pixel_y = 24 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/eastbeach) "gkL" = ( /obj/structure/surface/table/reinforced/prison, @@ -9779,16 +7933,11 @@ dir = 8; pixel_y = 2 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull/west, /area/varadero/interior/administration) "gkS" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/electrical) "glp" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, @@ -9797,64 +7946,45 @@ /area/varadero/interior_protected/maintenance/south) "gms" = ( /obj/effect/landmark/good_item, -/turf/open/shuttle{ - icon_state = "floor6" - }, +/turf/open/shuttle/red, /area/varadero/interior_protected/vessel) "gmE" = ( /obj/structure/closet/jcloset, /obj/effect/landmark/objective_landmark/far, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellowfull" - }, +/turf/open/floor/shiva/yellowfull/west, /area/varadero/interior/laundry) "gmK" = ( /obj/structure/machinery/vending/snack, -/turf/open/floor/shiva{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/shiva/red/southeast, /area/varadero/interior/security) "gmT" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk{ dir = 1 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "greenfull" - }, +/turf/open/floor/shiva/greenfull/west, /area/varadero/interior/hall_SE) "gnm" = ( /obj/structure/surface/rack, /obj/item/weapon/gun/shotgun/pump, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/north) "gnx" = ( /obj/structure/machinery/storm_siren{ pixel_y = 5 }, -/turf/open/floor/shiva{ - icon_state = "green" - }, +/turf/open/floor/shiva/green, /area/varadero/interior/hall_N) "gnC" = ( /obj/item/reagent_container/food/drinks/cans/beer{ pixel_x = -9; pixel_y = 7 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/lz1_near) "gnZ" = ( /obj/effect/landmark/yautja_teleport, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/varadero/interior/security) "god" = ( /obj/structure/desertdam/decals/road_edge{ @@ -9883,10 +8013,7 @@ }, /obj/structure/blocker/invisible_wall/water, /obj/item/lightstick/variant/planted, -/turf/open/gm/river/ocean{ - name = "deep ocean"; - default_name = "deep ocean" - }, +/turf/open/gm/river/ocean/deep_ocean, /area/varadero/exterior/farocean) "gqE" = ( /obj/structure/bed/sofa/pews/flipped{ @@ -9896,19 +8023,14 @@ /area/varadero/interior/chapel) "gqN" = ( /obj/item/tool/soap, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/varadero/interior/security) "gqX" = ( /obj/effect/decal/warning_stripes/asteroid{ dir = 1; icon_state = "warning_s" }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/west, /area/varadero/interior/hall_N) "grG" = ( /obj/structure/blocker/invisible_wall/water, @@ -9925,34 +8047,25 @@ /area/varadero/interior_protected/caves/central) "gso" = ( /obj/effect/landmark/ert_spawns/groundside_xeno, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/varadero/interior/cargo) "gsq" = ( /obj/structure/machinery/vending/coffee, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/shiva/blue/east, /area/varadero/interior/administration) "gsu" = ( /obj/effect/decal/remains/xeno{ pixel_y = 25 }, /obj/effect/landmark/xeno_spawn, -/turf/open/shuttle{ - icon_state = "floor6" - }, +/turf/open/shuttle/red, /area/varadero/interior_protected/vessel) "gsw" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" }, /obj/item/tool/stamp, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/cargo) "gsC" = ( /obj/structure/flora/bush/ausbushes/var3/fullgrass, @@ -9985,9 +8098,7 @@ dir = 8; pixel_x = 3 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/eastbeach) "gtz" = ( /obj/structure/barricade/wooden{ @@ -9996,16 +8107,11 @@ /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/security) "gun" = ( /obj/structure/largecrate/random/case/double, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "purple" - }, +/turf/open/floor/shiva/purple/east, /area/varadero/interior/research) "gux" = ( /obj/effect/decal/cleanable/blood/oil/streak, @@ -10019,9 +8125,7 @@ /area/varadero/interior/technical_storage) "guE" = ( /obj/structure/largecrate/random, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/hall_SE) "gvo" = ( /obj/item/ore/diamond, @@ -10031,18 +8135,12 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "green" - }, +/turf/open/floor/shiva/green/west, /area/varadero/interior/hall_SE) "gvF" = ( /obj/structure/machinery/computer/cameras, /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/shiva{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/shiva/red/southeast, /area/varadero/interior/administration) "gvJ" = ( /obj/item/shard{ @@ -10050,37 +8148,24 @@ pixel_x = -5; pixel_y = -6 }, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/exterior/pool) "gvM" = ( -/turf/open/floor/shiva{ - dir = 8; - icon_state = "green" - }, +/turf/open/floor/shiva/green/west, /area/varadero/interior/maintenance/north) "gvR" = ( /obj/structure/largecrate/random, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellowfull" - }, +/turf/open/floor/shiva/yellowfull/west, /area/varadero/interior/disposals) "gwB" = ( /obj/structure/pipes/standard/manifold/fourway/hidden/green, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/varadero/interior/cargo) "gwC" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/research) "gwD" = ( /obj/structure/prop/invuln/lattice_prop{ @@ -10091,19 +8176,14 @@ /turf/closed/wall/rock/brown, /area/varadero/exterior/eastbeach) "gwG" = ( -/turf/open/floor/shiva{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/shiva/red/north, /area/varadero/interior/security) "gwW" = ( /obj/structure/surface/rack, /obj/item/storage/pouch/sling, /obj/effect/landmark/objective_landmark/science, /obj/structure/machinery/light, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/medical) "gxi" = ( /obj/structure/prop/invuln/lattice_prop{ @@ -10119,9 +8199,7 @@ /area/varadero/interior_protected/caves/swcaves) "gxX" = ( /obj/structure/window/framed/colony/reinforced, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/hall_SE) "gyw" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -10153,10 +8231,7 @@ pixel_x = -5; pixel_y = 2 }, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/north, /area/varadero/interior/technical_storage) "gzm" = ( /obj/structure/platform/kutjevo/smooth{ @@ -10174,10 +8249,7 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/west, /area/varadero/interior/cargo) "gAK" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -10188,25 +8260,19 @@ pixel_x = 17; pixel_y = 16 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/maintenance/south) "gAV" = ( /obj/structure/barricade/wooden{ dir = 1 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/security) "gBi" = ( /obj/item/stool{ icon_state = "stool_alt" }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/medical) "gBp" = ( /obj/structure/surface/table/reinforced/prison, @@ -10222,9 +8288,7 @@ pixel_x = 8 }, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/shiva{ - icon_state = "blue" - }, +/turf/open/floor/shiva/blue, /area/varadero/interior/technical_storage) "gBM" = ( /obj/structure/stairs/perspective{ @@ -10232,10 +8296,7 @@ dir = 6; icon_state = "p_stair_full" }, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/varadero/interior_protected/vessel) "gBP" = ( /obj/structure/blocker/invisible_wall/water, @@ -10253,10 +8314,7 @@ /area/varadero/exterior/farocean) "gBV" = ( /obj/structure/machinery/photocopier, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull/west, /area/varadero/interior/security) "gBW" = ( /obj/item/stack/sandbags_empty/half, @@ -10275,9 +8333,7 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/shiva{ - icon_state = "blue" - }, +/turf/open/floor/shiva/blue, /area/varadero/interior/hall_SE) "gCH" = ( /obj/item/ammo_casing{ @@ -10314,9 +8370,7 @@ /area/varadero/exterior/monsoon) "gDh" = ( /obj/structure/largecrate/random, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/security) "gDr" = ( /obj/item/tool/warning_cone, @@ -10331,16 +8385,11 @@ "gEy" = ( /obj/structure/machinery/light, /obj/item/tool/wirecutters/clippers, -/turf/open/floor/shiva{ - dir = 10; - icon_state = "purple" - }, +/turf/open/floor/shiva/purple/southwest, /area/varadero/interior/research) "gEz" = ( /obj/structure/machinery/medical_pod/bodyscanner, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/medical) "gEO" = ( /obj/structure/surface/rack, @@ -10348,10 +8397,7 @@ /obj/item/weapon/gun/pistol/m4a3{ pixel_y = -3 }, -/turf/open/floor/shiva{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/shiva/red/southeast, /area/varadero/interior/security) "gEP" = ( /obj/structure/prop/rock/brown, @@ -10367,25 +8413,18 @@ health = 80 }, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/shiva{ - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull, /area/varadero/interior/medical) "gFt" = ( /obj/structure/largecrate/random, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "green" - }, +/turf/open/floor/shiva/green/west, /area/varadero/interior/hall_SE) "gFx" = ( /turf/open/floor/wood, /area/varadero/interior/hall_SE) "gFA" = ( /obj/structure/largecrate/random/barrel/red, -/turf/open/gm/dirt{ - icon_state = "desert1" - }, +/turf/open/gm/dirt/desert1, /area/varadero/exterior/eastbeach) "gFH" = ( /obj/structure/inflatable/door, @@ -10396,10 +8435,7 @@ icon_state = "pottedplant_22"; pixel_y = 8 }, -/turf/open/floor/shiva{ - dir = 5; - icon_state = "blue" - }, +/turf/open/floor/shiva/blue/northeast, /area/varadero/interior/administration) "gFY" = ( /obj/effect/decal/warning_stripes{ @@ -10411,10 +8447,7 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "greenfull" - }, +/turf/open/floor/shiva/greenfull/west, /area/varadero/interior/hall_SE) "gHJ" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, @@ -10423,24 +8456,17 @@ "gHT" = ( /obj/structure/surface/rack, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/cargo) "gIB" = ( /obj/structure/machinery/vending/snack, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "greenfull" - }, +/turf/open/floor/shiva/greenfull/west, /area/varadero/interior/hall_SE) "gJs" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/medical) "gJy" = ( /obj/effect/overlay/palmtree_r{ @@ -10459,30 +8485,20 @@ /obj/effect/decal/warning_stripes/asteroid{ icon_state = "warning_s" }, -/turf/open/floor/shiva{ - dir = 10; - icon_state = "green" - }, +/turf/open/floor/shiva/green/southwest, /area/varadero/interior/court) "gKs" = ( -/turf/open/gm/river/ocean{ - name = "deep ocean"; - default_name = "deep ocean" - }, +/turf/open/gm/river/ocean/deep_ocean, /area/varadero/interior/oob) "gKw" = ( /obj/structure/surface/rack, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/cargo) "gLo" = ( /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/maintenance/south) "gLw" = ( /turf/open/floor/wood, @@ -10512,9 +8528,7 @@ /obj/structure/barricade/handrail/wire{ layer = 3.5 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/pontoon_beach) "gMm" = ( /obj/structure/platform/kutjevo/rock{ @@ -10525,10 +8539,7 @@ icon_state = "lattice12"; pixel_y = -3 }, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/interior_protected/maintenance/south) "gMp" = ( /obj/structure/surface/table, @@ -10545,10 +8556,7 @@ climb_delay = 1; layer = 2.99 }, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/interior/caves/north_research) "gNb" = ( /obj/structure/closet/wardrobe/chaplain_black, @@ -10558,9 +8566,7 @@ /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor/shiva{ - icon_state = "wredfull" - }, +/turf/open/floor/shiva/wredfull, /area/varadero/interior/medical) "gNE" = ( /obj/structure/inflatable/door, @@ -10568,10 +8574,7 @@ /area/varadero/interior_protected/caves/digsite) "gOe" = ( /obj/structure/machinery/door/airlock/multi_tile/elevator/access/arrivals, -/turf/open/floor/shiva{ - dir = 9; - icon_state = "green" - }, +/turf/open/floor/shiva/green/northwest, /area/varadero/interior/records) "gOj" = ( /obj/item/tool/warning_cone, @@ -10588,14 +8591,10 @@ /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance) "gPG" = ( -/turf/open/gm/dirt{ - icon_state = "desert2" - }, +/turf/open/gm/dirt/desert2, /area/varadero/exterior/lz1_near) "gPL" = ( /obj/structure/platform/kutjevo/smooth{ @@ -10618,10 +8617,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/shiva/red/west, /area/varadero/interior/administration) "gQa" = ( /obj/structure/bed/chair/office/light{ @@ -10631,9 +8627,7 @@ /obj/item/ammo_casing/shell{ icon_state = "cartridge_3_1" }, -/turf/open/floor/shiva{ - icon_state = "wredfull" - }, +/turf/open/floor/shiva/wredfull, /area/varadero/interior/medical) "gRj" = ( /obj/effect/landmark/lv624/fog_blocker{ @@ -10653,10 +8647,7 @@ icon_state = "security_cam"; name = "Hunter Nav Console" }, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/varadero/interior_protected/vessel) "gRS" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -10666,15 +8657,11 @@ req_access_txt = "100"; req_one_access = null }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/security) "gRU" = ( /obj/structure/machinery/floodlight{ - name = "Floodlight"; - unacidable = 0; - wrenchable = 1 + name = "Floodlight" }, /turf/open/auto_turf/sand_white/layer1, /area/varadero/interior_protected/caves/digsite) @@ -10685,35 +8672,25 @@ /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance) "gSC" = ( /obj/structure/machinery/light/small, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance) "gSE" = ( /obj/structure/surface/table/reinforced/prison{ color = "#6b675e" }, /obj/effect/landmark/xeno_spawn, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/varadero/interior_protected/vessel) "gSY" = ( /obj/structure/largecrate/random/mini/ammo{ pixel_x = -6; pixel_y = -3 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/varadero/exterior/lz1_near) "gTe" = ( /turf/open/floor/plating, @@ -10742,10 +8719,7 @@ climb_delay = 1; layer = 2.99 }, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/exterior/lz2_near) "gVQ" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -10753,9 +8727,7 @@ }, /obj/effect/decal/cleanable/blood, /obj/item/weapon/shield/riot, -/turf/open/floor/shiva{ - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull, /area/varadero/interior/medical) "gWd" = ( /obj/structure/desertdam/decals/road_edge{ @@ -10795,48 +8767,33 @@ /obj/structure/machinery/constructable_frame{ icon_state = "box_1" }, -/turf/open/floor/shiva{ - dir = 10; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/southwest, /area/varadero/interior/cargo) "gXw" = ( /obj/effect/decal/cleanable/blood/drip, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/lz2_near) "gXN" = ( /obj/structure/machinery/recharge_station, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellowfull" - }, +/turf/open/floor/shiva/yellowfull/west, /area/varadero/interior/electrical) "gXO" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/east, /area/varadero/interior/comms3) "gYg" = ( /obj/item/toy/beach_ball/holoball, /obj/structure/surface/rack, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance) "gYh" = ( /turf/closed/wall/wood, /area/varadero/interior/beach_bar) "gZq" = ( /obj/effect/landmark/survivor_spawner, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/morgue) "gZI" = ( /obj/structure/filingcabinet{ @@ -10878,17 +8835,13 @@ pixel_x = -2; pixel_y = 18 }, -/turf/open/floor/shiva{ - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull, /area/varadero/interior/security) "haC" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/shiva{ - icon_state = "wred" - }, +/turf/open/floor/shiva/wred, /area/varadero/interior/medical) "haP" = ( /turf/closed/wall/r_wall/unmeltable, @@ -10896,35 +8849,27 @@ "haR" = ( /obj/structure/prop/rock/brown, /turf/open/gm/coast/beachcorner2/north_west, -/area/varadero/exterior/pontoon_beach) +/area/varadero/exterior/pontoon_beach/lz) "haT" = ( -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/technical_storage) "haV" = ( /obj/structure/closet/crate/secure, /obj/effect/landmark/objective_landmark/medium, /obj/item/trash/kepler, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/cargo) "haX" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/security) "hbi" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/maintenance/south) "hbD" = ( /obj/structure/platform/kutjevo/smooth{ @@ -10932,10 +8877,7 @@ climb_delay = 1; layer = 2.99 }, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/interior_protected/caves) "hbP" = ( /obj/structure/surface/table, @@ -10943,9 +8885,7 @@ pixel_x = 4; pixel_y = 12 }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/electrical) "hca" = ( /obj/structure/disposalpipe/segment{ @@ -10954,9 +8894,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/hall_N) "hcz" = ( /obj/structure/machinery/power/apc{ @@ -10964,10 +8902,7 @@ pixel_x = -24; start_charge = 0 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/varadero/exterior/lz1_near) "hcI" = ( /obj/item/stack/tile/plasteel{ @@ -10983,9 +8918,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/comms2) "hej" = ( /obj/structure/platform_decoration/kutjevo{ @@ -10995,16 +8928,11 @@ /area/varadero/exterior/pontoon_beach) "hek" = ( /obj/structure/machinery/vending/cigarette/colony, -/turf/open/floor/shiva{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/shiva/red/northeast, /area/varadero/interior/security) "hen" = ( /obj/structure/bed/chair, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/mess) "heu" = ( /obj/item/device/flashlight/lamp/tripod, @@ -11020,17 +8948,12 @@ dir = 4 }, /obj/structure/barricade/wooden, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/security) "hfo" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/disposalpipe/segment, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "greenfull" - }, +/turf/open/floor/shiva/greenfull/west, /area/varadero/interior/hall_SE) "hfD" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -11038,15 +8961,10 @@ dir = 8 }, /obj/effect/landmark/objective_landmark/far, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/varadero/interior/research) "hfR" = ( -/turf/open/floor/prison/chapel_carpet{ - dir = 1; - icon_state = "doubleside" - }, +/turf/open/floor/prison/chapel_carpet/doubleside/north, /area/varadero/interior/chapel) "hfX" = ( /obj/structure/machinery/door/window/brigdoor/eastleft{ @@ -11055,9 +8973,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/varadero/interior/research) "hfZ" = ( /obj/item/lightstick/red/spoke/planted{ @@ -11066,24 +8982,17 @@ indestructible = 1; unacidable = 1 }, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/exterior/farocean) "hgc" = ( /obj/structure/window/framed/colony/reinforced, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/lz2_near) "hgB" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/hall_SE) "hhM" = ( /turf/closed/wall/r_wall, @@ -11093,24 +9002,16 @@ /obj/item/tool/stamp{ icon_state = "stamp-ce" }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/records) "hic" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/north, /area/varadero/interior/cargo) "hiD" = ( -/turf/open/floor/shiva{ - dir = 1; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/north, /area/varadero/interior/mess) "hiE" = ( /obj/structure/flora/bush/ausbushes/var3/brflowers, @@ -11120,10 +9021,7 @@ /obj/structure/platform_decoration/kutjevo{ dir = 4 }, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/exterior/farocean) "hjn" = ( /obj/structure/prop/invuln/lattice_prop{ @@ -11178,17 +9076,12 @@ req_access_txt = "100"; req_one_access = null }, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "snow_mat" - }, +/turf/open/floor/shiva/snow_mat/east, /area/varadero/interior/medical) "hlp" = ( /obj/structure/closet/toolcloset, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/electrical) "hlw" = ( /obj/effect/decal/cleanable/blood/drip, @@ -11200,10 +9093,7 @@ climb_delay = 1; layer = 2.99 }, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/exterior/pool) "hlG" = ( /obj/structure/barricade/handrail/wire{ @@ -11213,10 +9103,7 @@ climb_delay = 1; layer = 2.99 }, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/exterior/comms4) "hlK" = ( /obj/structure/surface/table/woodentable, @@ -11242,9 +9129,7 @@ /turf/open/auto_turf/sand_white/layer1, /area/varadero/interior_protected/caves/digsite) "hmh" = ( -/turf/open/gm/dirt{ - icon_state = "desert_dug" - }, +/turf/open/gm/dirt/desert_dug, /area/varadero/exterior/lz2_near) "hmm" = ( /obj/structure/machinery/light, @@ -11260,16 +9145,11 @@ pixel_x = -6; pixel_y = 7 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/laundry) "hmp" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "greenfull" - }, +/turf/open/floor/shiva/greenfull/west, /area/varadero/interior/hall_N) "hmR" = ( /obj/item/tool/crowbar, @@ -11288,10 +9168,7 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/exterior/comms4) "hoC" = ( /obj/structure/prop/rock/brown, @@ -11305,10 +9182,7 @@ dir = 4 }, /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull/west, /area/varadero/interior/security) "hoK" = ( /obj/item/stack/tile/plasteel{ @@ -11326,40 +9200,27 @@ basecolor = "#20d450"; color = "#20d450" }, -/turf/open/shuttle{ - icon_state = "floor6" - }, +/turf/open/shuttle/red, /area/varadero/interior_protected/vessel) "hre" = ( /turf/open/gm/dirt, /area/varadero/interior_protected/caves/digsite) "hrG" = ( -/turf/open/floor/shiva{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/southeast, /area/varadero/interior/hall_N) "hrI" = ( /obj/structure/closet/emcloset, -/turf/open/floor/shiva{ - dir = 9; - icon_state = "green" - }, +/turf/open/floor/shiva/green/northwest, /area/varadero/interior/hall_SE) "hsa" = ( /obj/structure/platform/kutjevo/smooth{ climb_delay = 1; layer = 2.99 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/lz2_near) "hsl" = ( -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/varadero/interior/maintenance/north) "hso" = ( /obj/effect/decal/cleanable/dirt, @@ -11375,15 +9236,11 @@ dir = 4 }, /obj/item/tool/wet_sign, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/varadero/interior/toilets) "hsF" = ( /obj/effect/landmark/yautja_teleport, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/cargo) "hte" = ( /turf/closed/wall/rock/brown, @@ -11411,9 +9268,7 @@ /area/varadero/interior/security) "htP" = ( /obj/effect/decal/cleanable/blood/drip, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/north) "htU" = ( /obj/structure/machinery/light{ @@ -11436,29 +9291,19 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/comms4) "hus" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/comms3) "hux" = ( /obj/structure/bed/chair/office/light, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "purplefull" - }, +/turf/open/floor/shiva/purplefull/west, /area/varadero/interior/research) "huy" = ( /obj/structure/closet/secure_closet/engineering_electrical, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/varadero/exterior/lz1_near) "huE" = ( /obj/effect/landmark/lv624/fog_blocker{ @@ -11477,27 +9322,18 @@ /obj/structure/disposalpipe/trunk{ dir = 4 }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/medical) "hvO" = ( -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/hall_N) "hwa" = ( /obj/structure/largecrate/random, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance) "hwE" = ( /obj/structure/flora/bush/ausbushes/var3/stalkybush, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/exterior/monsoon) "hwL" = ( /obj/structure/prop/dam/crane/damaged, @@ -11507,9 +9343,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/technical_storage) "hwP" = ( /obj/effect/spawner/random/toolbox, @@ -11525,16 +9359,11 @@ pixel_x = -7; pixel_y = 3 }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/electrical) "hxa" = ( /obj/structure/closet/secure_closet/security, -/turf/open/floor/shiva{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/shiva/red/southwest, /area/varadero/interior/administration) "hxO" = ( /obj/structure/barricade/wooden{ @@ -11547,36 +9376,23 @@ dir = 4 }, /obj/item/tool/crowbar, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "snow_mat" - }, +/turf/open/floor/shiva/snow_mat/west, /area/varadero/interior/medical) "hyp" = ( /obj/structure/machinery/computer/prisoner, -/turf/open/floor/shiva{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/shiva/red/northwest, /area/varadero/interior/security) "hyr" = ( -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/north) "hys" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/hall_SE) "hyQ" = ( /obj/structure/surface/table/reinforced/prison, /obj/effect/spawner/random/tool, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "purplefull" - }, +/turf/open/floor/shiva/purplefull/west, /area/varadero/interior/research) "hyT" = ( /obj/structure/flora/bush/ausbushes/var3/ywflowers{ @@ -11586,15 +9402,10 @@ /area/varadero/interior_protected/caves/central) "hza" = ( /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/comms2) "hzm" = ( -/turf/open/floor/shiva{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/shiva/red/east, /area/varadero/interior/security) "hzx" = ( /obj/structure/flora/bush/ausbushes/var3/fullgrass, @@ -11624,20 +9435,14 @@ /obj/structure/platform_decoration/kutjevo{ dir = 8 }, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/exterior/pontoon_beach) "hBA" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, /turf/open/auto_turf/sand_white/layer1, /area/varadero/interior_protected/caves/central) "hBX" = ( -/turf/open/floor/shiva{ - dir = 10; - icon_state = "purple" - }, +/turf/open/floor/shiva/purple/southwest, /area/varadero/interior/research) "hCw" = ( /obj/structure/stairs/perspective{ @@ -11657,9 +9462,7 @@ dir = 4 }, /obj/structure/disposalpipe/segment, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/hall_NW) "hDk" = ( /obj/structure/bedsheetbin, @@ -11668,9 +9471,7 @@ pixel_y = 8 }, /obj/item/ammo_magazine/rifle/m4ra, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/bunks) "hDw" = ( /obj/structure/stairs/perspective{ @@ -11681,16 +9482,12 @@ /turf/open/gm/dirt, /area/varadero/exterior/lz2_near) "hDA" = ( -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/research) "hDX" = ( /obj/structure/machinery/cryo_cell, /obj/structure/pipes/standard/cap, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/medical) "hDY" = ( /obj/structure/prop/invuln/ice_prefab/roof_greeble{ @@ -11705,23 +9502,15 @@ dir = 1 }, /obj/effect/decal/cleanable/blood/gibs, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/varadero/exterior/lz1_near) "hEv" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/gm/dirt{ - icon_state = "desert1" - }, +/turf/open/gm/dirt/desert1, /area/varadero/exterior/eastocean) "hEN" = ( /obj/structure/closet/l3closet/scientist, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "purplefull" - }, +/turf/open/floor/shiva/purplefull/west, /area/varadero/interior/research) "hET" = ( /obj/structure/platform/kutjevo/smooth{ @@ -11736,9 +9525,7 @@ dir = 4 }, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/shiva{ - icon_state = "purple" - }, +/turf/open/floor/shiva/purple, /area/varadero/interior/research) "hFE" = ( /obj/structure/machinery/door/airlock/almayer/maint{ @@ -11746,10 +9533,7 @@ req_access_txt = "100"; req_one_access = null }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull/west, /area/varadero/interior/hall_N) "hFM" = ( /obj/structure/window_frame/wood, @@ -11761,9 +9545,7 @@ /area/varadero/interior/caves/north_research) "hGz" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor/shiva{ - icon_state = "wredfull" - }, +/turf/open/floor/shiva/wredfull, /area/varadero/interior/medical) "hHn" = ( /obj/effect/landmark/hunter_secondary, @@ -11780,16 +9562,11 @@ dir = 1; name = "\improper Underground Power Substation" }, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/north, /area/varadero/interior/electrical) "hHK" = ( /obj/structure/machinery/bot/mulebot, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/cargo) "hHR" = ( /obj/structure/prop/structure_lattice{ @@ -11807,19 +9584,14 @@ icon_state = "road_edge_decal3"; pixel_y = 16 }, -/turf/open/floor/wood{ - icon_state = "wood-broken" - }, +/turf/open/floor/wood/wood_broken, /area/varadero/interior/court) "hJl" = ( /obj/structure/machinery/firealarm{ pixel_y = 24 }, /obj/structure/bed/chair, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/shiva/red/north, /area/varadero/interior/security) "hJq" = ( /obj/structure/bed/chair{ @@ -11849,19 +9621,14 @@ /obj/structure/machinery/computer/communications{ dir = 4 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/shiva/blue/west, /area/varadero/interior/technical_storage) "hKe" = ( /obj/structure/bed/chair/office/dark{ dir = 1 }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/shiva{ - icon_state = "red" - }, +/turf/open/floor/shiva/red, /area/varadero/interior/hall_N) "hKK" = ( /turf/open/gm/coast/west, @@ -11884,9 +9651,7 @@ }, /obj/effect/landmark/corpsespawner/doctor, /obj/effect/decal/cleanable/blood/gibs, -/turf/open/floor/shiva{ - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull, /area/varadero/interior/medical) "hLF" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -11900,16 +9665,11 @@ pixel_x = -16; pixel_y = 13 }, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "snow_mat" - }, +/turf/open/floor/shiva/snow_mat/east, /area/varadero/interior/maintenance) "hLQ" = ( /obj/effect/decal/cleanable/blood/oil/streak, -/turf/open/floor/shiva{ - icon_state = "blue" - }, +/turf/open/floor/shiva/blue, /area/varadero/interior/maintenance) "hLY" = ( /obj/item/shard{ @@ -11917,25 +9677,18 @@ pixel_x = -5; pixel_y = -6 }, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/shiva/blue/north, /area/varadero/interior/maintenance) "hMg" = ( /obj/structure/barricade/handrail/wire{ layer = 3.5 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/lz2_near) "hMh" = ( /obj/structure/filingcabinet, /obj/item/paper/research_notes, -/turf/open/floor/shiva{ - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull, /area/varadero/interior/medical) "hMC" = ( /obj/item/clothing/ears/earmuffs{ @@ -11944,9 +9697,7 @@ pixel_y = 18 }, /obj/effect/decal/cleanable/blood, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/caves) "hMG" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -11965,10 +9716,7 @@ /area/varadero/exterior/eastbeach) "hMV" = ( /obj/structure/machinery/light, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/shiva/red/east, /area/varadero/interior/medical) "hNb" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -11983,10 +9731,7 @@ /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull/west, /area/varadero/interior/hall_SE) "hNq" = ( /obj/structure/platform/kutjevo/smooth{ @@ -12008,9 +9753,7 @@ name = "Construction Light" }, /obj/effect/decal/warning_stripes, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/lz1_near) "hOv" = ( /obj/structure/desertdam/decals/road_edge{ @@ -12025,9 +9768,7 @@ /turf/open/floor/wood, /area/varadero/interior/court) "hPd" = ( -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/bunks) "hPj" = ( /turf/closed/wall/rock/brown, @@ -12037,37 +9778,26 @@ /turf/open/gm/dirt, /area/varadero/exterior/lz2_near) "hPD" = ( -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/court) "hPF" = ( /obj/item/paper/crumpled, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/shiva/red/west, /area/varadero/interior/morgue) "hQb" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/administration) "hQl" = ( /obj/structure/girder, -/turf/open/gm/dirt{ - icon_state = "desert3" - }, +/turf/open/gm/dirt/desert3, /area/varadero/exterior/eastbeach) "hQo" = ( /obj/structure/bed/roller, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance) "hQP" = ( /obj/item/ammo_magazine/handful/shotgun/buckshot{ @@ -12095,9 +9825,7 @@ pixel_x = 18; pixel_y = 23 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/lz2_near) "hRs" = ( /obj/structure/machinery/power/smes/magical{ @@ -12106,10 +9834,7 @@ dir = 4; name = "plasma power generator" }, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/varadero/interior_protected/vessel) "hRv" = ( /obj/effect/landmark/objective_landmark/far, @@ -12124,9 +9849,7 @@ }, /obj/structure/surface/table, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/electrical) "hTO" = ( /obj/effect/decal/warning_stripes{ @@ -12139,18 +9862,14 @@ /area/varadero/interior_protected/vessel) "hTQ" = ( /obj/structure/airlock_assembly, -/turf/open/shuttle{ - icon_state = "floor6" - }, +/turf/open/shuttle/red, /area/varadero/interior_protected/vessel) "hTX" = ( /obj/structure/machinery/storm_siren{ dir = 4; pixel_x = -3 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/monsoon) "hTZ" = ( /obj/structure/surface/table, @@ -12161,32 +9880,22 @@ /obj/structure/prop/server_equipment/laptop/closed{ pixel_y = 9 }, -/turf/open/floor/shiva{ - icon_state = "blue" - }, +/turf/open/floor/shiva/blue, /area/varadero/interior/hall_SE) "hUp" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/shiva/red/east, /area/varadero/interior/security) "hUs" = ( /obj/structure/closet/hydrant{ pixel_y = 32 }, -/turf/open/floor/shiva{ - icon_state = "blue" - }, +/turf/open/floor/shiva/blue, /area/varadero/interior/hall_SE) "hUx" = ( -/turf/open/floor/shiva{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/shiva/red/west, /area/varadero/interior/hall_SE) "hUU" = ( /obj/structure/machinery/requests_console{ @@ -12196,18 +9905,14 @@ /area/varadero/interior/cargo) "hUY" = ( /obj/structure/closet/wardrobe/engineering_yellow, -/turf/open/floor/shiva{ - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow, /area/varadero/interior/electrical) "hVL" = ( /obj/item/stack/sandbags/large_stack{ pixel_y = 4; pixel_x = -12 }, -/turf/open/gm/dirt{ - icon_state = "desert0" - }, +/turf/open/gm/dirt/desert0, /area/varadero/exterior/lz2_near) "hWv" = ( /obj/structure/flora/bush/ausbushes/var3/sparsegrass{ @@ -12219,9 +9924,7 @@ /obj/structure/surface/table, /obj/item/tool/kitchen/utensil/fork, /obj/effect/decal/cleanable/blood, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/mess) "hWG" = ( /obj/effect/landmark/xeno_spawn, @@ -12241,72 +9944,45 @@ /turf/open/gm/dirt, /area/varadero/exterior/pontoon_beach) "hXq" = ( -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/caves/digsite) "hXv" = ( /obj/structure/surface/table, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/shiva/red/north, /area/varadero/interior/security) "hXR" = ( /turf/open/auto_turf/sand_white/layer1, /area/varadero/exterior/pontoon_beach) "hYp" = ( /obj/structure/window/framed/colony, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/maintenance) "hZo" = ( /obj/structure/disposalpipe/segment{ dir = 2; icon_state = "pipe-c" }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/medical) "hZD" = ( -/turf/open/floor/shiva{ - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull, /area/varadero/interior/security) "hZE" = ( /obj/structure/flora/bush/ausbushes/var3/fernybush, /turf/open/gm/coast/north, /area/varadero/exterior/lz1_near) "iad" = ( -/turf/open/floor/shiva{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/shiva/green/north, /area/varadero/interior/hall_SE) "iah" = ( /obj/item/tool/pickaxe, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/varadero/interior/comms1) -"ias" = ( -/obj/structure/machinery/camera/autoname/lz_camera, -/obj/structure/machinery/landinglight/ds1/spoke{ - pixel_y = -5; - pixel_x = 13 - }, -/turf/open/auto_turf/sand_white/layer1, -/area/varadero/exterior/lz2_near) "iat" = ( /obj/structure/barricade/wooden{ dir = 1 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance) "iax" = ( /turf/open/gm/coast/south, @@ -12321,9 +9997,7 @@ /area/varadero/exterior/eastbeach) "iaM" = ( /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/maintenance/south) "iaO" = ( /turf/closed/wall/r_wall/elevator{ @@ -12341,15 +10015,11 @@ /obj/effect/landmark/lv624/fog_blocker{ time_to_dispel = 25000 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/caves/east) "ibo" = ( /obj/structure/prop/broken_arcade, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/varadero/interior/library) "ibs" = ( /obj/effect/decal/cleanable/blood/oil/streak, @@ -12360,9 +10030,7 @@ dir = 4 }, /obj/structure/machinery/chem_dispenser, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/medical) "ibP" = ( /obj/structure/surface/table/reinforced/prison, @@ -12370,10 +10038,7 @@ pixel_x = -1; pixel_y = 3 }, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/shiva/blue/north, /area/varadero/interior/technical_storage) "ibV" = ( /obj/item/device/flashlight/lamp/tripod, @@ -12411,10 +10076,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "purplefull" - }, +/turf/open/floor/shiva/purplefull/west, /area/varadero/interior/research) "ico" = ( /obj/structure/prop/ice_colony/dense/planter_box/plated{ @@ -12425,9 +10087,7 @@ icon_state = "pointybush_2"; pixel_y = 11 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/research) "icJ" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -12438,18 +10098,13 @@ pixel_x = -5; pixel_y = -6 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/security) "icM" = ( /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "green" - }, +/turf/open/floor/shiva/green/east, /area/varadero/interior/hall_NW) "idn" = ( /obj/structure/window/reinforced{ @@ -12464,10 +10119,7 @@ color = "#6b675e" }, /obj/item/clothing/head/uppcap/peaked, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/varadero/interior_protected/vessel) "idr" = ( /obj/effect/decal/cleanable/dirt, @@ -12479,16 +10131,11 @@ /area/varadero/interior/security) "iet" = ( /obj/structure/machinery/light/small, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/varadero/interior/library) "ieu" = ( /obj/structure/machinery/computer/arcade, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "snow_mat" - }, +/turf/open/floor/shiva/snow_mat/north, /area/varadero/interior/security) "ifx" = ( /obj/item/weapon/gun/smg/nailgun{ @@ -12496,15 +10143,10 @@ }, /obj/structure/surface/rack, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/shiva{ - dir = 5; - icon_state = "purple" - }, +/turf/open/floor/shiva/purple/northeast, /area/varadero/interior/research) "ifB" = ( -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/comms4) "ifO" = ( /obj/structure/blocker/invisible_wall/water, @@ -12537,9 +10179,7 @@ /area/varadero/exterior/pontoon_beach) "igQ" = ( /obj/structure/machinery/power/port_gen/pacman, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/north) "igU" = ( /obj/item/roller{ @@ -12551,18 +10191,13 @@ pixel_x = 4; pixel_y = 14 }, -/turf/open/floor/shiva{ - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull, /area/varadero/interior/medical) "ihn" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "greenfull" - }, +/turf/open/floor/shiva/greenfull/west, /area/varadero/interior/hall_SE) "iht" = ( /obj/structure/surface/table, @@ -12570,18 +10205,13 @@ pixel_y = 8 }, /obj/item/storage/belt/utility, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/electrical) "ihC" = ( /obj/effect/landmark/lv624/fog_blocker{ time_to_dispel = 25000 }, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/exterior/monsoon) "ihX" = ( /obj/structure/platform/kutjevo/smooth{ @@ -12609,9 +10239,7 @@ name = "Construction Light" }, /obj/effect/decal/warning_stripes, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/eastbeach) "iiX" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -12622,20 +10250,14 @@ name = "Underground Secure Technical Storage"; req_access_txt = "100" }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/technical_storage) "ijo" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_core, -/turf/open/shuttle{ - icon_state = "floor6" - }, +/turf/open/shuttle/red, /area/varadero/interior_protected/vessel) "ijO" = ( -/turf/open/floor/wood{ - icon_state = "wood-broken3" - }, +/turf/open/floor/wood/wood_broken3, /area/varadero/interior/beach_bar) "ijZ" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_core, @@ -12652,9 +10274,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/administration) "ilZ" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -12663,23 +10283,16 @@ name = "\improper Underground Security Armory"; req_access_txt = "100" }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/security) "imd" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/disposalpipe/segment, -/turf/open/floor/shiva{ - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow, /area/varadero/interior/hall_N) "imk" = ( /obj/structure/prop/rock/brown, -/turf/open/gm/river/ocean{ - name = "deep ocean"; - default_name = "deep ocean" - }, +/turf/open/gm/river/ocean/deep_ocean, /area/varadero/exterior/farocean) "imu" = ( /obj/item/stack/tile/plasteel{ @@ -12687,9 +10300,7 @@ pixel_x = 17; pixel_y = 16 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/security) "imz" = ( /turf/closed/wall/r_wall/elevator/gears, @@ -12697,18 +10308,13 @@ "imZ" = ( /obj/structure/surface/table, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/electrical) "inj" = ( /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/varadero/exterior/lz1_near) "inN" = ( /obj/structure/barricade/handrail/wire{ @@ -12717,9 +10323,7 @@ /obj/structure/barricade/handrail/wire{ dir = 4 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/pontoon_beach) "inV" = ( /obj/effect/landmark/lv624/fog_blocker{ @@ -12729,9 +10333,7 @@ icon_state = "medium" }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/caves/east) "ioc" = ( /obj/structure/surface/table/woodentable, @@ -12760,16 +10362,11 @@ pixel_y = 13 }, /obj/structure/barricade/wooden, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/maintenance/south) "ioA" = ( /obj/structure/machinery/vending/cigarette/colony, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "green" - }, +/turf/open/floor/shiva/green/east, /area/varadero/interior/hall_SE) "ipi" = ( /obj/structure/platform/kutjevo/smooth{ @@ -12791,9 +10388,7 @@ icon_state = "pointybush_3"; pixel_y = 11 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/hall_SE) "ipC" = ( /obj/structure/flora/bush/ausbushes/var3/sparsegrass{ @@ -12818,16 +10413,11 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/comms1) "iqU" = ( /obj/structure/xenoautopsy/tank/larva, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/varadero/interior_protected/vessel) "iqW" = ( /obj/structure/surface/rack, @@ -12835,35 +10425,24 @@ name = "Incendiary Ammunition Order"; desc = "An order manifest for incendiary ammo that has yet to be filled out." }, -/turf/open/floor/shiva{ - icon_state = "red" - }, +/turf/open/floor/shiva/red, /area/varadero/interior/security) "ira" = ( /obj/item/frame/apc, /turf/open/auto_turf/sand_white/layer1, /area/varadero/interior/maintenance) "irj" = ( -/turf/open/floor/shiva{ - dir = 8; - icon_state = "redcorners" - }, +/turf/open/floor/shiva/redcorners/west, /area/varadero/interior/security) "irk" = ( /obj/structure/machinery/landinglight/ds2/delayone, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/varadero/exterior/lz1_near) "irw" = ( /obj/structure/closet/fireaxecabinet{ pixel_x = -32 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/shiva/blue/west, /area/varadero/interior/technical_storage) "isK" = ( /obj/structure/surface/table/reinforced/prison, @@ -12875,9 +10454,7 @@ pixel_x = 7; pixel_y = 3 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/cargo) "itb" = ( /obj/structure/window/framed/colony/reinforced, @@ -12889,10 +10466,7 @@ climb_delay = 1; layer = 2.99 }, -/turf/open/gm/river/ocean{ - name = "deep ocean"; - default_name = "deep ocean" - }, +/turf/open/gm/river/ocean/deep_ocean, /area/varadero/exterior/farocean) "itP" = ( /turf/closed/wall/r_wall/elevator{ @@ -12923,16 +10497,12 @@ pixel_x = -8; pixel_y = 7 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/cargo) "ivg" = ( /obj/structure/closet/secure_closet/freezer/fridge, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/medical) "ivo" = ( /obj/structure/airlock_assembly, @@ -12945,9 +10515,7 @@ /obj/structure/disposalpipe/junction{ dir = 8 }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/hall_N) "ivO" = ( /obj/structure/largecrate/random/mini/med{ @@ -12955,25 +10523,18 @@ pixel_x = -13; pixel_y = 11 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/caves) "ivX" = ( /obj/structure/closet/hydrant{ pixel_y = 32 }, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/shiva/red/north, /area/varadero/interior/security) "iwc" = ( /obj/structure/closet/crate, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance) "iwf" = ( /mob/living/simple_animal/mouse, @@ -13020,20 +10581,14 @@ /area/varadero/interior/caves/east) "iwV" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/varadero/interior_protected/vessel) "ixd" = ( /obj/structure/machinery/computer/communications{ dir = 4 }, /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull/west, /area/varadero/interior/administration) "ixh" = ( /obj/structure/surface/rack, @@ -13041,10 +10596,7 @@ /obj/item/weapon/gun/pistol/vp78{ pixel_y = -4 }, -/turf/open/floor/shiva{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/shiva/red/northwest, /area/varadero/interior/security) "ixl" = ( /obj/item/tool/pickaxe, @@ -13052,9 +10604,7 @@ /area/varadero/interior_protected/caves) "ixq" = ( /obj/item/device/flashlight, -/turf/open/gm/dirt{ - icon_state = "desert3" - }, +/turf/open/gm/dirt/desert3, /area/varadero/exterior/lz1_near) "ixr" = ( /turf/open/auto_turf/sand_white/layer1, @@ -13070,10 +10620,7 @@ /turf/open/floor/plating, /area/varadero/interior_protected/caves/digsite) "iyd" = ( -/turf/open/floor{ - dir = 9; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/northwest, /area/varadero/exterior/lz1_near) "iyk" = ( /obj/effect/decal/warning_stripes{ @@ -13094,9 +10641,7 @@ /area/varadero/interior/caves/east) "izi" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/shuttle{ - icon_state = "floor6" - }, +/turf/open/shuttle/red, /area/varadero/interior_protected/vessel) "izl" = ( /obj/structure/platform/kutjevo/smooth{ @@ -13110,16 +10655,11 @@ icon_state = "hr_kutjevo"; name = "support struts" }, -/turf/open/gm/river/ocean{ - name = "deep ocean"; - default_name = "deep ocean" - }, +/turf/open/gm/river/ocean/deep_ocean, /area/varadero/exterior/comms4) "izs" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/varadero/interior/research) "izy" = ( /obj/structure/machinery/storm_siren{ @@ -13133,28 +10673,21 @@ pixel_x = 7; pixel_y = -6 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/lz1_near) "izP" = ( /obj/structure/barricade/handrail/wire{ dir = 8; layer = 2.991 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/shiva/blue/west, /area/varadero/interior/maintenance) "iAa" = ( /obj/structure/machinery/firealarm{ dir = 1; pixel_y = -24 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/varadero/interior/toilets) "iAc" = ( /obj/effect/decal/strata_decals/grime/grime4{ @@ -13167,16 +10700,11 @@ /obj/effect/decal/strata_decals/grime/grime3{ dir = 8 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/research) "iAx" = ( /obj/structure/filingcabinet, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/east, /area/varadero/interior/cargo) "iAE" = ( /obj/structure/blocker/invisible_wall/water, @@ -13202,15 +10730,10 @@ pixel_x = -16; pixel_y = 24 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "green" - }, +/turf/open/floor/shiva/green/west, /area/varadero/interior/mess) "iCy" = ( -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/research) "iCB" = ( /obj/effect/landmark/queen_spawn, @@ -13225,10 +10748,7 @@ layer = 3.1 }, /obj/effect/decal/cleanable/blood/drip, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/varadero/exterior/lz2_near) "iDM" = ( /obj/structure/machinery/bot/medbot{ @@ -13240,10 +10760,7 @@ "iDS" = ( /obj/structure/closet/secure_closet/security, /obj/effect/landmark/objective_landmark/far, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull/west, /area/varadero/interior/hall_SE) "iEe" = ( /obj/effect/decal/cleanable/dirt, @@ -13263,9 +10780,7 @@ pixel_y = -11; desc = "A chest... filled with the wildest riches!" }, -/turf/open/gm/dirt{ - icon_state = "desert_dug" - }, +/turf/open/gm/dirt/desert_dug, /area/varadero/exterior/lz2_near) "iFm" = ( /obj/structure/surface/table/reinforced/prison, @@ -13288,10 +10803,7 @@ pixel_x = 5; pixel_y = 9 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "purplefull" - }, +/turf/open/floor/shiva/purplefull/west, /area/varadero/interior/research) "iFK" = ( /obj/structure/surface/table/reinforced/prison, @@ -13304,10 +10816,7 @@ pixel_y = 7 }, /obj/item/clothing/mask/cigarette/weed, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/shiva/blue/east, /area/varadero/interior/technical_storage) "iFQ" = ( /obj/structure/blocker/forcefield/multitile_vehicles, @@ -13317,29 +10826,20 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/security) "iGm" = ( -/turf/open/floor/wood{ - icon_state = "wood-broken6" - }, +/turf/open/floor/wood/wood_broken6, /area/varadero/interior/court) "iGM" = ( /obj/effect/decal/cleanable/cobweb{ dir = 1 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/security) "iGS" = ( /obj/effect/landmark/corpsespawner/engineer, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/north, /area/varadero/interior/electrical) "iHh" = ( /obj/item/weapon/gun/shotgun/pump, @@ -13350,9 +10850,7 @@ /turf/open/gm/grass/grass1/weedable, /area/varadero/interior_protected/caves/central) "iHN" = ( -/turf/open/gm/dirt{ - icon_state = "desert1" - }, +/turf/open/gm/dirt/desert1, /area/varadero/exterior/eastocean) "iIc" = ( /obj/item/device/flashlight/slime{ @@ -13375,17 +10873,12 @@ dir = 4 }, /obj/structure/surface/table, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/electrical) "iIL" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/device/flashlight/lamp, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/shiva/red/east, /area/varadero/interior/security) "iIW" = ( /obj/structure/surface/table, @@ -13397,9 +10890,7 @@ pixel_x = -6; pixel_y = 10 }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/hall_NW) "iIY" = ( /turf/open/gm/coast/east, @@ -13409,17 +10900,12 @@ dir = 8; pixel_x = 3 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/north) "iJk" = ( /obj/structure/pipes/standard/manifold/hidden/green, /obj/effect/decal/cleanable/blood/gibs, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "green" - }, +/turf/open/floor/shiva/green/west, /area/varadero/interior/mess) "iJD" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -13433,15 +10919,11 @@ dir = 8; icon_state = "pipe-j2" }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/hall_SE) "iLc" = ( /obj/structure/surface/table/woodentable, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/security) "iLd" = ( /obj/structure/window/reinforced{ @@ -13474,10 +10956,7 @@ /area/varadero/interior/bunks) "iLz" = ( /obj/structure/machinery/r_n_d/destructive_analyzer, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "purple" - }, +/turf/open/floor/shiva/purple/west, /area/varadero/interior/research) "iLD" = ( /obj/structure/window/framed/colony, @@ -13488,43 +10967,30 @@ icon_state = "W" }, /obj/item/prop/magazine/boots, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/cargo) "iMp" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/shiva{ - dir = 5; - icon_state = "blue" - }, +/turf/open/floor/shiva/blue/northeast, /area/varadero/interior/hall_SE) "iMM" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/hall_SE) "iNh" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22"; pixel_y = 8 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellowfull" - }, +/turf/open/floor/shiva/yellowfull/west, /area/varadero/interior/hall_SE) "iNr" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/shiva/red/west, /area/varadero/interior/security) "iNE" = ( /obj/structure/prop/invuln/lattice_prop{ @@ -13532,16 +10998,12 @@ pixel_x = 16; pixel_y = 24 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/mess) "iNU" = ( /obj/effect/decal/cleanable/blood/drip, /obj/item/device/flashlight, -/turf/open/floor/shiva{ - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull, /area/varadero/interior/medical) "iOi" = ( /obj/structure/machinery/storm_siren{ @@ -13573,27 +11035,18 @@ /area/varadero/interior/administration) "iPH" = ( /obj/effect/spawner/random/tool, -/turf/open/floor/shiva{ - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow, /area/varadero/interior/comms3) "iPI" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/shiva{ - icon_state = "red" - }, +/turf/open/floor/shiva/red, /area/varadero/interior/security) "iQl" = ( /obj/item/storage/firstaid, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/varadero/interior/morgue) "iQr" = ( -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/varadero/exterior/lz2_near) "iQs" = ( /obj/structure/barricade/handrail/wire{ @@ -13612,15 +11065,10 @@ pixel_y = 5 }, /obj/structure/surface/table, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/varadero/exterior/lz1_near) "iQS" = ( -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/comms2) "iRw" = ( /obj/structure/pipes/vents/pump{ @@ -13631,31 +11079,23 @@ /area/varadero/interior/technical_storage) "iRR" = ( /obj/structure/window/framed/colony/reinforced, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/hall_NW) "iRZ" = ( /obj/structure/window/framed/colony, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance) "iSi" = ( /obj/structure/platform_decoration/kutjevo{ dir = 1 }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/disposals) "iSz" = ( /obj/structure/prop/invuln/minecart_tracks{ dir = 8 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/lz1_near) "iSC" = ( /obj/structure/window/reinforced{ @@ -13677,10 +11117,7 @@ pixel_y = 8 }, /obj/structure/window/reinforced, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/varadero/interior_protected/vessel) "iSO" = ( /obj/structure/surface/table, @@ -13696,10 +11133,7 @@ dir = 8; pixel_x = -24 }, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/shiva/red/north, /area/varadero/interior/morgue) "iSW" = ( /turf/open/gm/dirt, @@ -13708,16 +11142,11 @@ /obj/structure/morgue{ dir = 8 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/morgue) "iTF" = ( /obj/structure/machinery/vending/cigarette/colony, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "greenfull" - }, +/turf/open/floor/shiva/greenfull/west, /area/varadero/interior/hall_SE) "iTP" = ( /obj/structure/filingcabinet{ @@ -13744,10 +11173,7 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/west, /area/varadero/interior/cargo) "iUH" = ( /obj/structure/machinery/floodlight/landing{ @@ -13755,18 +11181,14 @@ name = "Construction Light" }, /obj/effect/decal/warning_stripes, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/eastbeach) "iUZ" = ( /obj/structure/ore_box, /turf/open/gm/dirt, /area/varadero/exterior/lz1_near) "iVt" = ( -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/electrical) "iVD" = ( /obj/structure/platform/kutjevo/smooth{ @@ -13780,18 +11202,13 @@ icon_state = "hr_kutjevo"; name = "support struts" }, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/exterior/comms4) "iWf" = ( /obj/structure/bed/chair/office/light{ dir = 1 }, -/turf/open/floor/shiva{ - icon_state = "wredfull" - }, +/turf/open/floor/shiva/wredfull, /area/varadero/interior/medical) "iWj" = ( /obj/structure/blocker/invisible_wall/water, @@ -13802,24 +11219,18 @@ icon_state = "cartridge_10" }, /obj/effect/landmark/corpsespawner/miner, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/caves) "iWK" = ( /obj/structure/disposalpipe/segment{ dir = 1; icon_state = "pipe-c" }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/administration) "iWX" = ( /obj/structure/machinery/floodlight{ - name = "Floodlight"; - unacidable = 0; - wrenchable = 1 + name = "Floodlight" }, /turf/open/auto_turf/sand_white/layer1, /area/varadero/exterior/eastbeach) @@ -13838,18 +11249,13 @@ pixel_x = -13; pixel_y = 11 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/security) "iXX" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor/prison/chapel_carpet{ - dir = 1; - icon_state = "doubleside" - }, +/turf/open/floor/prison/chapel_carpet/doubleside/north, /area/varadero/interior/chapel) "iYb" = ( /obj/structure/machinery/light{ @@ -13859,10 +11265,7 @@ pixel_x = -10; pixel_y = 15 }, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "purple" - }, +/turf/open/floor/shiva/purple/north, /area/varadero/interior/research) "iYi" = ( /turf/closed/wall/r_wall/elevator{ @@ -13890,10 +11293,7 @@ icon_state = "hr_kutjevo"; name = "support struts" }, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/exterior/comms4) "iZx" = ( /obj/structure/machinery/door_control/brbutton{ @@ -13901,19 +11301,13 @@ name = "Cargo Bay Lock"; pixel_y = 20 }, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/north, /area/varadero/interior/cargo) "iZH" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/shiva/red/east, /area/varadero/interior/medical) "iZP" = ( /obj/structure/prop/invuln/lattice_prop{ @@ -13932,61 +11326,43 @@ /obj/item/shard{ icon_state = "medium" }, -/turf/open/floor/shiva{ - icon_state = "blue" - }, +/turf/open/floor/shiva/blue, /area/varadero/interior/maintenance) "jab" = ( /obj/structure/closet/secure_closet/scientist, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "purple" - }, +/turf/open/floor/shiva/purple/west, /area/varadero/interior/research) "jai" = ( /obj/structure/filingcabinet/security, /obj/effect/landmark/objective_landmark/far, -/turf/open/floor/shiva{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/shiva/red/southeast, /area/varadero/interior/security) "jaF" = ( /turf/open/gm/coast/east, /area/varadero/exterior/pontoon_beach) "jaL" = ( /obj/effect/decal/cleanable/blood/drip, -/turf/open/floor/shiva{ - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow, /area/varadero/interior/electrical) "jbh" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk{ dir = 4 }, -/turf/open/floor/shiva{ - dir = 10; - icon_state = "blue" - }, +/turf/open/floor/shiva/blue/southwest, /area/varadero/interior/administration) "jbR" = ( /obj/item/device/flashlight/lamp/tripod{ pixel_x = 7; pixel_y = 18 }, -/turf/open/shuttle{ - icon_state = "floor6" - }, +/turf/open/shuttle/red, /area/varadero/interior_protected/vessel) "jcr" = ( /turf/closed/wall/rock/brown, /area/varadero/interior_protected/caves/swcaves) "jcz" = ( -/turf/open/floor/shiva{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/east, /area/varadero/interior/technical_storage) "jcB" = ( /obj/structure/machinery/power/apc{ @@ -13995,10 +11371,7 @@ start_charge = 0 }, /obj/effect/decal/cleanable/blood/drip, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "purple" - }, +/turf/open/floor/shiva/purple/north, /area/varadero/interior/research) "jcC" = ( /obj/structure/surface/rack, @@ -14007,20 +11380,11 @@ pixel_x = 6; pixel_y = -4 }, -/turf/open/floor/shiva{ - icon_state = "red" - }, +/turf/open/floor/shiva/red, /area/varadero/interior/security) "jcT" = ( /turf/closed/wall, /area/varadero/interior/maintenance) -"jcY" = ( -/obj/structure/window/framed/colony/reinforced, -/obj/structure/window/framed/colony/reinforced, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, -/area/varadero/interior/maintenance/security) "jdm" = ( /obj/structure/flora/bush/ausbushes/var3/fullgrass, /turf/open/auto_turf/sand_white/layer1, @@ -14044,9 +11408,7 @@ /area/varadero/exterior/eastocean) "jeo" = ( /obj/item/tool/mop, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/hall_SE) "jew" = ( /obj/structure/bed/chair/office/dark{ @@ -14054,9 +11416,7 @@ pixel_x = -6; pixel_y = 3 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/security) "jeO" = ( /obj/structure/machinery/conveyor, @@ -14080,10 +11440,7 @@ /obj/item/clothing/suit/armor/yautja_flavor{ anchored = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/varadero/interior_protected/caves/digsite) "jeW" = ( /obj/item/device/flashlight/lamp/tripod, @@ -14101,9 +11458,7 @@ dir = 8 }, /obj/structure/barricade/handrail/wire, -/turf/open/floor/wood{ - icon_state = "wood-broken3" - }, +/turf/open/floor/wood/wood_broken3, /area/varadero/interior/court) "jfw" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -14115,9 +11470,7 @@ dir = 8; pixel_x = 3 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/security) "jfA" = ( /obj/item/device/motiondetector/hacked, @@ -14126,49 +11479,34 @@ "jfD" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/manifold/fourway/hidden/green, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/east, /area/varadero/interior/hall_SE) "jfP" = ( /obj/structure/barricade/wooden, -/turf/open/floor/shiva{ - icon_state = "snow_mat" - }, +/turf/open/floor/shiva/snow_mat, /area/varadero/interior/maintenance) "jgL" = ( -/turf/open/floor{ - dir = 6; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/southeast, /area/varadero/exterior/lz1_near) "jgQ" = ( /obj/structure/bed/chair/office/light{ dir = 8 }, -/turf/open/floor/shiva{ - icon_state = "wredfull" - }, +/turf/open/floor/shiva/wredfull, /area/varadero/interior/medical) "jgV" = ( /obj/structure/flora/bush/ausbushes/ppflowers, /turf/open/auto_turf/sand_white/layer1, /area/varadero/interior/caves/north_research) "jgY" = ( -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/records) "jhe" = ( /obj/structure/bed/chair, /obj/structure/machinery/alarm{ pixel_y = 24 }, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/shiva/red/north, /area/varadero/interior/security) "jhu" = ( /obj/structure/platform/kutjevo/smooth{ @@ -14185,10 +11523,7 @@ /area/varadero/exterior/lz1_near) "jhv" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "snow_mat" - }, +/turf/open/floor/shiva/snow_mat/east, /area/varadero/interior/security) "jhK" = ( /obj/item/lightstick/red/spoke/planted{ @@ -14197,50 +11532,37 @@ indestructible = 1; unacidable = 1 }, -/turf/open/gm/river/ocean{ - name = "deep ocean"; - default_name = "deep ocean" - }, +/turf/open/gm/river/ocean/deep_ocean, /area/varadero/exterior/farocean) "jhL" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor/shiva{ - icon_state = "blue" - }, +/turf/open/floor/shiva/blue, /area/varadero/interior/administration) "jhM" = ( /obj/structure/platform_decoration/kutjevo{ dir = 8 }, -/turf/open/gm/dirt{ - icon_state = "desert3" - }, +/turf/open/gm/dirt/desert3, /area/varadero/exterior/lz1_near) "jhW" = ( /obj/structure/barricade/handrail/wire{ dir = 8; layer = 2.991 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/research) "jif" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/item/device/flashlight, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/research) "jjg" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/hall_SE) "jjj" = ( /obj/structure/prop/invuln/lattice_prop{ @@ -14281,33 +11603,37 @@ pixel_x = 24 }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/shiva/red/east, /area/varadero/interior/security) "jjN" = ( -/turf/open/gm/dirt{ - icon_state = "desert2" - }, +/turf/open/gm/dirt/desert2, /area/varadero/interior/maintenance/north) "jjS" = ( -/turf/open/floor/shiva{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/west, /area/varadero/interior/maintenance/north) "jjZ" = ( /obj/structure/prop/turbine, /obj/structure/prop/turbine_extras/border, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/lz1_near) -"jks" = ( -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" +"jkq" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/clothing/mask/cigarette/cigar/tarbacks{ + pixel_x = -7; + pixel_y = 8 + }, +/obj/item/tool/lighter/zippo/black{ + pixel_x = -5; + pixel_y = 7 + }, +/obj/item/ashtray/plastic{ + pixel_x = 6; + pixel_y = -4 }, +/turf/open/floor/shiva/blue, +/area/varadero/interior/technical_storage) +"jks" = ( +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/eastbeach) "jlt" = ( /obj/structure/surface/table/reinforced/prison, @@ -14319,10 +11645,7 @@ pixel_x = -6; pixel_y = 7 }, -/turf/open/floor/shiva{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/shiva/red/northwest, /area/varadero/interior/administration) "jmb" = ( /obj/structure/cable/heavyduty{ @@ -14342,10 +11665,7 @@ dir = 4 }, /obj/structure/machinery/light, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "purple" - }, +/turf/open/floor/shiva/purple/north, /area/varadero/interior/research) "jnA" = ( /obj/structure/disposalpipe/segment{ @@ -14354,10 +11674,7 @@ }, /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/blood/drip, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "snow_mat" - }, +/turf/open/floor/shiva/snow_mat/east, /area/varadero/interior/medical) "joe" = ( /obj/structure/flora/bush/ausbushes/var3/sparsegrass{ @@ -14372,10 +11689,7 @@ /area/varadero/exterior/eastbeach) "joN" = ( /obj/item/trash/candle, -/turf/open/floor/prison/chapel_carpet{ - dir = 1; - icon_state = "doubleside" - }, +/turf/open/floor/prison/chapel_carpet/doubleside/north, /area/varadero/interior/chapel) "joO" = ( /obj/structure/machinery/power/port_gen/pacman, @@ -14399,9 +11713,7 @@ "jps" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/trash/c_tube, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/maintenance/south) "jpD" = ( /turf/closed/wall/r_wall, @@ -14411,9 +11723,7 @@ dir = 1; icon_state = "warning_s" }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/hall_SE) "jpZ" = ( /obj/structure/platform/kutjevo/smooth{ @@ -14428,10 +11738,7 @@ climb_delay = 1; layer = 2.99 }, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/exterior/comms4) "jqd" = ( /obj/effect/decal/cleanable/blood/oil, @@ -14452,9 +11759,7 @@ "jqJ" = ( /obj/structure/disposalpipe/segment, /obj/item/key/cargo_train, -/turf/open/floor/shiva{ - icon_state = "yellowcorners" - }, +/turf/open/floor/shiva/yellowcorners, /area/varadero/interior/cargo) "jqK" = ( /obj/structure/surface/table/reinforced/prison, @@ -14462,9 +11767,7 @@ pixel_x = -30 }, /obj/item/tool/surgery/scalpel/manager, -/turf/open/floor/shiva{ - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull, /area/varadero/interior/medical) "jrq" = ( /obj/structure/machinery/door/airlock/almayer/maint{ @@ -14482,9 +11785,7 @@ "jrv" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/caves/east) "jsf" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -14495,18 +11796,14 @@ req_access_txt = "100"; req_one_access = null }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/security) "jsh" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/hall_N) "jsx" = ( /obj/item/prop/almayer/comp_open, @@ -14523,18 +11820,13 @@ dir = 4 }, /obj/structure/machinery/vending/cola, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "green" - }, +/turf/open/floor/shiva/green/east, /area/varadero/interior/hall_SE) "jts" = ( /obj/structure/prop/invuln/minecart_tracks{ dir = 9 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/comms1) "jtx" = ( /obj/structure/platform/kutjevo/smooth{ @@ -14544,23 +11836,14 @@ /obj/structure/flora/bush/ausbushes/var3/stalkybush{ pixel_y = 9 }, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/interior_protected/caves) "jty" = ( /obj/effect/landmark/hunter_primary, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/west, /area/varadero/interior/hall_N) "jtH" = ( -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/west, /area/varadero/exterior/lz2_near) "jtI" = ( /obj/structure/surface/table/reinforced/prison, @@ -14570,16 +11853,10 @@ /obj/structure/machinery/firealarm{ pixel_y = 24 }, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/shiva/red/north, /area/varadero/interior/security) "jtU" = ( -/turf/open/floor/shiva{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/east, /area/varadero/interior/electrical) "jub" = ( /obj/structure/machinery/prop/almayer/CICmap{ @@ -14590,9 +11867,7 @@ name = "Hunter Globe"; pixel_y = 16 }, -/turf/open/shuttle{ - icon_state = "floor6" - }, +/turf/open/shuttle/red, /area/varadero/interior_protected/vessel) "juL" = ( /obj/structure/surface/table/reinforced/prison, @@ -14601,10 +11876,7 @@ pixel_x = 16; pixel_y = -8 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "green" - }, +/turf/open/floor/shiva/green/west, /area/varadero/interior/mess) "juW" = ( /turf/closed/wall/r_wall, @@ -14623,15 +11895,11 @@ /turf/open/floor/carpet, /area/varadero/interior/research) "jvh" = ( -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/records) "jvF" = ( /obj/item/ammo_magazine/revolver/cmb, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/research) "jwf" = ( /obj/structure/platform_decoration/kutjevo, @@ -14640,9 +11908,7 @@ /area/varadero/interior_protected/caves/digsite) "jwy" = ( /obj/item/weapon/gun/revolver/cmb, -/turf/open/floor/shiva{ - icon_state = "purple" - }, +/turf/open/floor/shiva/purple, /area/varadero/interior/research) "jwX" = ( /obj/structure/largecrate/random, @@ -14658,18 +11924,13 @@ "jxi" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/closet/secure_closet/engineering_welding, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance) "jyq" = ( /obj/structure/machinery/landinglight/ds2/delaytwo{ dir = 8 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/varadero/exterior/lz1_near) "jyw" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -14685,18 +11946,14 @@ pixel_y = 12 }, /obj/structure/surface/table, -/turf/open/floor/shiva{ - icon_state = "snow_mat" - }, +/turf/open/floor/shiva/snow_mat, /area/varadero/interior/maintenance) "jzB" = ( /obj/structure/machinery/storm_siren{ dir = 8; pixel_x = 3 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/lz2_near) "jzL" = ( /obj/structure/platform/kutjevo/smooth{ @@ -14704,9 +11961,7 @@ layer = 2.99 }, /obj/item/tool/warning_cone, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/pontoon_beach) "jzZ" = ( /turf/open/floor/carpet, @@ -14718,9 +11973,7 @@ pixel_x = 16; pixel_y = -8 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance) "jAI" = ( /obj/item/device/flashlight/lamp/tripod, @@ -14736,19 +11989,14 @@ /obj/structure/prop/static_tank/water{ pixel_y = 8 }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/disposals) "jBp" = ( /obj/structure/bed/chair{ dir = 8; icon_state = "chair_alt" }, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/shiva/blue/east, /area/varadero/interior/administration) "jBw" = ( /obj/item/trash/cigbutt/ucigbutt{ @@ -14758,9 +12006,7 @@ /turf/open/floor/wood, /area/varadero/interior/security) "jCr" = ( -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/mess) "jCs" = ( /obj/structure/flora/bush/ausbushes/var3/fullgrass, @@ -14773,9 +12019,7 @@ name = "\improper Underground Technical Storage"; req_access_txt = "100" }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/technical_storage) "jCE" = ( /obj/structure/machinery/door/airlock/almayer/medical{ @@ -14784,10 +12028,7 @@ req_access_txt = "100"; req_one_access = null }, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "snow_mat" - }, +/turf/open/floor/shiva/snow_mat/east, /area/varadero/interior/medical) "jCN" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -14796,16 +12037,11 @@ /obj/structure/machinery/storm_siren{ pixel_y = 5 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/varadero/interior/toilets) "jDe" = ( /obj/structure/flora/bush/ausbushes/var3/stalkybush, -/turf/open/gm/river/ocean{ - name = "deep ocean"; - default_name = "deep ocean" - }, +/turf/open/gm/river/ocean/deep_ocean, /area/varadero/exterior/comms4) "jDO" = ( /obj/structure/prop/structure_lattice{ @@ -14814,10 +12050,7 @@ icon_state = "book-3"; name = "book case" }, -/turf/open/floor/shiva{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/southeast, /area/varadero/interior/administration) "jDW" = ( /obj/structure/disposalpipe/segment{ @@ -14827,10 +12060,7 @@ /obj/structure/noticeboard{ pixel_y = 32 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "greenfull" - }, +/turf/open/floor/shiva/greenfull/west, /area/varadero/interior/hall_SE) "jEv" = ( /obj/structure/prop/invuln/lattice_prop{ @@ -14854,9 +12084,7 @@ "jEZ" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/tool, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/north) "jFt" = ( /obj/effect/decal/cleanable/dirt, @@ -14869,10 +12097,7 @@ /turf/open/floor/wood, /area/varadero/interior/beach_bar) "jFL" = ( -/turf/open/gm/river/ocean{ - name = "deep ocean"; - default_name = "deep ocean" - }, +/turf/open/gm/river/ocean/deep_ocean, /area/varadero/exterior/monsoon) "jGk" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -14883,18 +12108,14 @@ req_access_txt = "100"; req_one_access = null }, -/turf/open/floor/shiva{ - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull, /area/varadero/interior/medical) "jGm" = ( /obj/structure/machinery/storm_siren{ dir = 4; pixel_x = -3 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/research) "jGz" = ( /obj/structure/machinery/power/apc{ @@ -14902,15 +12123,11 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/varadero/interior/toilets) "jGA" = ( /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/research) "jGT" = ( /obj/structure/prop/invuln/minecart_tracks, @@ -14920,9 +12137,7 @@ /obj/structure/platform_decoration/kutjevo{ dir = 4 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/comms1) "jHb" = ( /obj/structure/bed/chair{ @@ -14937,9 +12152,7 @@ layer = 2.991 }, /obj/structure/closet/radiation, -/turf/open/floor/shiva{ - icon_state = "purple" - }, +/turf/open/floor/shiva/purple, /area/varadero/interior/research) "jHJ" = ( /obj/structure/surface/table/woodentable/fancy, @@ -14965,9 +12178,7 @@ pixel_y = 13 }, /obj/structure/machinery/light, -/turf/open/floor/shiva{ - icon_state = "blue" - }, +/turf/open/floor/shiva/blue, /area/varadero/interior/technical_storage) "jJf" = ( /obj/effect/landmark/corpsespawner/colonist/burst, @@ -14986,10 +12197,7 @@ /obj/item/stack/sheet/plasteel{ amount = 24 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "purplefull" - }, +/turf/open/floor/shiva/purplefull/west, /area/varadero/interior/research) "jJC" = ( /obj/structure/prop/invuln/lattice_prop{ @@ -15007,18 +12215,13 @@ name = "\improper Underground Security Interrogation Observation"; req_access_txt = "100" }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/security) "jKs" = ( /obj/structure/barricade/handrail/wire{ layer = 3.1 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/varadero/exterior/lz2_near) "jKz" = ( /obj/structure/machinery/holosign/surgery{ @@ -15032,10 +12235,7 @@ req_access_txt = "100"; req_one_access = null }, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "snow_mat" - }, +/turf/open/floor/shiva/snow_mat/east, /area/varadero/interior/medical) "jKK" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -15071,10 +12271,7 @@ /obj/structure/platform_decoration/kutjevo{ dir = 4 }, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/exterior/pontoon_beach) "jLU" = ( /obj/structure/reagent_dispensers/fueltank/gas, @@ -15084,22 +12281,14 @@ /obj/structure/barricade/handrail/wire{ layer = 3.01 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/north) "jMr" = ( -/turf/open/floor/shiva{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/southeast, /area/varadero/interior/administration) "jMK" = ( /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/shiva{ - dir = 9; - icon_state = "purple" - }, +/turf/open/floor/shiva/purple/northwest, /area/varadero/interior/research) "jNn" = ( /obj/structure/flora/bush/ausbushes/var3/ywflowers, @@ -15113,10 +12302,7 @@ /area/varadero/exterior/eastbeach) "jNS" = ( /obj/structure/bed/chair/wheelchair, -/turf/open/floor/shiva{ - dir = 5; - icon_state = "wred" - }, +/turf/open/floor/shiva/wred/northeast, /area/varadero/interior/medical) "jNT" = ( /obj/structure/pipes/vents/pump, @@ -15137,17 +12323,11 @@ /area/varadero/interior/bunks) "jNW" = ( /obj/item/stack/sheet/metal, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/west, /area/varadero/interior/hall_SE) "jOR" = ( /obj/structure/closet/secure_closet/security_empty, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/shiva/blue/east, /area/varadero/interior/administration) "jPe" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -15160,9 +12340,7 @@ /obj/item/paper/janitor{ pixel_y = 8 }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/electrical) "jPh" = ( /obj/structure/surface/rack, @@ -15173,19 +12351,14 @@ /obj/item/tool/pickaxe/drill{ pixel_y = 4 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/varadero/interior/comms1) "jPC" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, /obj/structure/pipes/standard/manifold/fourway/hidden/green, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/hall_SE) "jPM" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -15203,10 +12376,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "snow_mat" - }, +/turf/open/floor/shiva/snow_mat/east, /area/varadero/interior/maintenance) "jQg" = ( /obj/structure/disposalpipe/segment{ @@ -15216,9 +12386,7 @@ name = "\improper Underground Security"; req_access_txt = "100" }, -/turf/open/floor/shiva{ - icon_state = "red" - }, +/turf/open/floor/shiva/red, /area/varadero/interior/security) "jQB" = ( /obj/structure/surface/table/woodentable, @@ -15244,18 +12412,13 @@ }, /obj/structure/window/reinforced, /obj/item/clothing/head/fedora, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/varadero/interior_protected/vessel) "jQM" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/research) "jRu" = ( /obj/structure/prop/invuln/minecart_tracks{ @@ -15269,9 +12432,7 @@ name = "\improper materials storage bin"; pixel_y = 8 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/comms1) "jSN" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -15283,10 +12444,7 @@ "jSP" = ( /obj/structure/surface/rack, /obj/item/tool/pickaxe/jackhammer, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/varadero/interior/comms1) "jSX" = ( /turf/open/gm/coast/beachcorner/north_west, @@ -15298,51 +12456,37 @@ /turf/open/gm/dirt, /area/varadero/exterior/eastocean) "jTL" = ( -/turf/open/floor{ - icon_state = "bcircuit" - }, +/turf/open/floor/bcircuit, /area/varadero/interior/maintenance/north) "jTR" = ( /turf/open/gm/coast/beachcorner/south_west, /area/varadero/exterior/monsoon) "jTY" = ( /obj/structure/closet/secure_closet/personal/patient, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/bunks) "jUt" = ( /obj/item/tool/weldingtool/experimental, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/hall_SE) "jUM" = ( /obj/structure/urinal{ pixel_y = 32 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/varadero/interior/security) "jUY" = ( /obj/structure/bed/chair/hunter, -/turf/open/shuttle{ - icon_state = "floor6" - }, +/turf/open/shuttle/red, /area/varadero/interior_protected/vessel) "jVl" = ( -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/varadero/interior/hall_N) "jVK" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/security) "jWA" = ( /obj/structure/surface/table, @@ -15355,9 +12499,7 @@ pixel_x = 3; pixel_y = 17 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/comms2) "jXp" = ( /obj/structure/platform_decoration/kutjevo{ @@ -15373,9 +12515,7 @@ dir = 4; icon_state = "pipe-c" }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/administration) "jYs" = ( /obj/structure/window/reinforced{ @@ -15390,10 +12530,7 @@ color = "#6b675e" }, /obj/item/storage/large_holster/katana/full, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/varadero/interior_protected/vessel) "jYX" = ( /obj/structure/surface/table/reinforced/prison, @@ -15406,10 +12543,7 @@ pixel_x = -5; pixel_y = 9 }, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/shiva/blue/east, /area/varadero/interior/technical_storage) "jYZ" = ( /obj/item/tool/pickaxe, @@ -15424,10 +12558,7 @@ icon_state = "pottedplant_22"; pixel_y = 8 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/shiva/red/west, /area/varadero/interior/security) "jZE" = ( /obj/effect/decal/cleanable/blood/drip, @@ -15459,10 +12590,7 @@ /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "snow_mat" - }, +/turf/open/floor/shiva/snow_mat/east, /area/varadero/interior/medical) "kap" = ( /obj/structure/platform/kutjevo/smooth{ @@ -15472,11 +12600,8 @@ /obj/structure/barricade/handrail/wire{ layer = 3.1 }, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, -/area/varadero/exterior/pontoon_beach) +/turf/open/gm/river/shallow_ocean_shallow_ocean, +/area/varadero/exterior/pontoon_beach/lz) "kaY" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/storage/pill_bottle/inaprovaline/skillless{ @@ -15487,16 +12612,11 @@ pixel_x = -4; pixel_y = 8 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull/west, /area/varadero/interior/administration) "kbp" = ( /obj/structure/janitorialcart, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/hall_SE) "kbQ" = ( /turf/open/auto_turf/sand_white/layer1, @@ -15511,9 +12631,7 @@ /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/electrical) "kce" = ( /turf/open/floor/plating, @@ -15527,9 +12645,7 @@ pixel_x = -6; pixel_y = 5 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/maintenance/south) "kdf" = ( /obj/structure/machinery/door/airlock/almayer/maint{ @@ -15538,10 +12654,7 @@ req_access_txt = "100"; req_one_access = null }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/varadero/interior/maintenance/north) "kdq" = ( /obj/structure/blocker/invisible_wall/water, @@ -15552,24 +12665,17 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/plating/icefloor{ - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate, /area/varadero/interior/maintenance/north) "keb" = ( /obj/effect/decal/cleanable/blood/gibs, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/varadero/exterior/eastbeach) "keE" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/varadero/interior/library) "keN" = ( /obj/structure/machinery/door/airlock/almayer/maint{ @@ -15578,9 +12684,7 @@ req_access_txt = "100"; req_one_access = null }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/cargo) "keY" = ( /obj/structure/flora/bush/ausbushes/var3/stalkybush, @@ -15596,9 +12700,7 @@ /obj/structure/pipes/standard/simple/visible{ dir = 5 }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/medical) "kfG" = ( /turf/closed/wall, @@ -15608,10 +12710,7 @@ /obj/structure/machinery/computer/med_data/laptop{ pixel_y = 3 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull/west, /area/varadero/interior/administration) "kgm" = ( /obj/effect/vehicle_spawner/van/decrepit{ @@ -15636,17 +12735,13 @@ /obj/structure/barricade/handrail/wire{ layer = 3.01 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/maintenance/south) "khb" = ( /obj/structure/barricade/handrail/wire{ layer = 3.1 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/court) "khB" = ( /obj/structure/platform/kutjevo/smooth{ @@ -15662,16 +12757,11 @@ pixel_x = -5; pixel_y = -6 }, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/shiva/blue/east, /area/varadero/interior/maintenance) "kif" = ( /obj/structure/ladder, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/farocean) "kin" = ( /obj/structure/barricade/handrail/wire{ @@ -15682,24 +12772,18 @@ name = "Construction Light" }, /obj/effect/decal/warning_stripes, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/pontoon_beach) "kiE" = ( /obj/structure/window/framed/colony, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/maintenance) "kiG" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/item/clothing/under/CM_uniform, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/security) "kjp" = ( /obj/effect/decal/cleanable/blood/drip, @@ -15708,9 +12792,7 @@ pixel_x = -16; pixel_y = 24 }, -/turf/open/gm/dirt{ - icon_state = "desert3" - }, +/turf/open/gm/dirt/desert3, /area/varadero/exterior/eastbeach) "kjr" = ( /obj/structure/platform/kutjevo/smooth{ @@ -15721,9 +12803,7 @@ /turf/open/auto_turf/sand_white/layer1, /area/varadero/exterior/monsoon) "kjI" = ( -/turf/open/shuttle{ - icon_state = "floor6" - }, +/turf/open/shuttle/red, /area/varadero/interior_protected/vessel) "kjN" = ( /obj/structure/flora/bush/ausbushes/var3/stalkybush, @@ -15747,9 +12827,7 @@ /area/varadero/interior_protected/caves/digsite) "kkw" = ( /obj/effect/decal/cleanable/blood/gibs, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/maintenance/south) "kkF" = ( /turf/closed/wall/r_wall/unmeltable, @@ -15758,9 +12836,7 @@ /obj/structure/barricade/wooden{ dir = 4 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/security) "kli" = ( /obj/structure/platform/kutjevo/smooth{ @@ -15773,10 +12849,7 @@ climb_delay = 1; layer = 2.99 }, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/interior/caves/north_research) "klu" = ( /obj/structure/bed/chair{ @@ -15785,10 +12858,7 @@ /obj/structure/closet/hydrant{ pixel_y = 32 }, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/shiva/blue/north, /area/varadero/interior/administration) "klP" = ( /obj/structure/closet/secure_closet/personal/patient, @@ -15796,18 +12866,14 @@ pixel_x = -3; pixel_y = 1 }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/bunks) "klT" = ( /turf/closed/wall/r_wall/unmeltable, /area/varadero/interior/maintenance/research) "klY" = ( /obj/item/cell/high, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/north) "kmb" = ( /obj/structure/machinery/light{ @@ -15818,29 +12884,20 @@ pixel_x = -16; pixel_y = 24 }, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "green" - }, +/turf/open/floor/shiva/green/east, /area/varadero/interior/hall_SE) "kmo" = ( /obj/structure/machinery/power/port_gen/pacman, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/eastbeach) "kmu" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/toolbox, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance) "kmI" = ( /obj/structure/window/framed/colony/reinforced, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/caves/central) "kmW" = ( /obj/structure/flora/bush/ausbushes/var3/stalkybush, @@ -15865,22 +12922,15 @@ }, /obj/structure/platform_decoration/kutjevo, /obj/structure/blocker/invisible_wall/water, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/oob) "knP" = ( /obj/structure/machinery/light/small, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/research) "kof" = ( /obj/structure/filingcabinet, -/turf/open/floor/shiva{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/shiva/red/northwest, /area/varadero/interior/security) "koZ" = ( /obj/structure/platform/kutjevo/smooth{ @@ -15906,15 +12956,11 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/north) "kpS" = ( /obj/item/clothing/head/helmet, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/medical) "kqe" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -15924,9 +12970,7 @@ req_access_txt = "100"; req_one_access = null }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance) "kqs" = ( /obj/structure/cargo_container/wy/mid, @@ -15939,9 +12983,7 @@ "kqE" = ( /obj/structure/surface/rack, /obj/effect/landmark/objective_landmark/far, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/security) "kqN" = ( /obj/item/device/flashlight/lamp/tripod, @@ -15949,15 +12991,11 @@ /area/varadero/interior/caves/east) "kqQ" = ( /obj/structure/xenoautopsy/tank/broken, -/turf/open/shuttle{ - icon_state = "floor6" - }, +/turf/open/shuttle/red, /area/varadero/interior_protected/vessel) "krl" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor/shiva{ - icon_state = "red" - }, +/turf/open/floor/shiva/red, /area/varadero/interior/medical) "krL" = ( /obj/structure/window/framed/colony/reinforced, @@ -15972,9 +13010,7 @@ /obj/structure/disposalpipe/segment{ dir = 8 }, -/turf/open/floor/shiva{ - icon_state = "red" - }, +/turf/open/floor/shiva/red, /area/varadero/interior/security) "ksf" = ( /obj/structure/machinery/light{ @@ -15988,10 +13024,7 @@ /area/varadero/interior/chapel) "ksn" = ( /obj/structure/machinery/vending/cola, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "purplefull" - }, +/turf/open/floor/shiva/purplefull/west, /area/varadero/interior/research) "ksu" = ( /obj/structure/platform/kutjevo/smooth{ @@ -16011,28 +13044,21 @@ /area/varadero/interior_protected/maintenance/south) "ktN" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/comms3) "kul" = ( /obj/item/pizzabox/meat{ pixel_x = -5; pixel_y = 13 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/maintenance/south) "kus" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22"; pixel_y = 8 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "greenfull" - }, +/turf/open/floor/shiva/greenfull/west, /area/varadero/interior/hall_SE) "kuE" = ( /obj/structure/machinery/power/apc{ @@ -16050,22 +13076,15 @@ /turf/open/auto_turf/sand_white/layer1, /area/varadero/exterior/eastbeach) "kuX" = ( -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/hall_NW) "kvx" = ( /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "purplefull" - }, +/turf/open/floor/shiva/purplefull/west, /area/varadero/interior/research) "kvz" = ( /obj/effect/decal/cleanable/blood/oil/streak, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/caves/east) "kvC" = ( /obj/structure/flora/bush/ausbushes/var3/sparsegrass{ @@ -16087,25 +13106,17 @@ /obj/structure/machinery/floodlight/landing/floor{ pixel_x = 1 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/varadero/exterior/lz1_near) "kvS" = ( /obj/structure/largecrate/random, /obj/structure/barricade/handrail/wire{ dir = 4 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/comms4) "kwB" = ( -/turf/open/floor/shiva{ - dir = 4; - icon_state = "green" - }, +/turf/open/floor/shiva/green/east, /area/varadero/interior/hall_NW) "kxe" = ( /turf/open/gm/coast/beachcorner2/south_east, @@ -16115,9 +13126,7 @@ dir = 4; icon_state = "chair_alt" }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/comms2) "kyh" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -16126,9 +13135,7 @@ req_access = null; req_one_access = null }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/medical) "kyj" = ( /obj/structure/prop/rock/brown, @@ -16145,9 +13152,7 @@ /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/hall_SE) "kyz" = ( /obj/structure/machinery/door/airlock/almayer/engineering/autoname, @@ -16162,9 +13167,7 @@ /area/varadero/interior/disposals) "kyI" = ( /obj/effect/spawner/random/toolbox, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/comms4) "kyK" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -16174,17 +13177,13 @@ dir = 4; icon_state = "pipe-c" }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/hall_SE) "kyL" = ( /obj/structure/bed/chair/comfy/beige{ dir = 4 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/hall_SE) "kyP" = ( /obj/structure/machinery/storm_siren{ @@ -16196,9 +13195,7 @@ /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/lz1_near) "kzp" = ( /obj/structure/surface/rack, @@ -16220,15 +13217,11 @@ /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/hall_N) "kAl" = ( /obj/structure/largecrate/random, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/comms2) "kAm" = ( /obj/structure/machinery/vending/coffee, @@ -16275,9 +13268,7 @@ /obj/structure/surface/table/reinforced/prison, /obj/item/stack/sheet/mineral/phoron/medium_stack, /obj/item/stack/sheet/metal/med_small_stack, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/north) "kCy" = ( /obj/structure/surface/table/reinforced/prison, @@ -16288,15 +13279,10 @@ /obj/item/device/reagent_scanner{ pixel_x = -7 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "purplefull" - }, +/turf/open/floor/shiva/purplefull/west, /area/varadero/interior/research) "kCA" = ( -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/varadero/interior/electrical) "kCT" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -16305,9 +13291,7 @@ name = "\improper Underground Security Lobby"; req_access_txt = "100" }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/security) "kDd" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -16319,15 +13303,11 @@ /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/electrical) "kDh" = ( /obj/structure/closet/firecloset/full, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/research) "kDk" = ( /obj/item/tool/screwdriver, @@ -16341,31 +13321,23 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/medical) "kDH" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/medical) "kDJ" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_core, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/maintenance/south) "kDO" = ( /obj/structure/closet/crate, /obj/effect/landmark/objective_landmark/close, /obj/item/trash/chunk, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/cargo) "kEB" = ( /obj/structure/prop/invuln/static_corpse/afric_zimmer{ @@ -16378,10 +13350,7 @@ /area/varadero/interior/maintenance/north) "kEK" = ( /obj/item/stack/sheet/metal, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/varadero/interior_protected/vessel) "kEV" = ( /obj/structure/machinery/door/airlock/almayer/maint{ @@ -16389,30 +13358,20 @@ req_access_txt = "100"; req_one_access = null }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance) "kFn" = ( /obj/structure/machinery/floodlight/landing/floor, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/varadero/exterior/lz2_near) "kFH" = ( /obj/effect/decal/cleanable/blood/oil, /obj/item/device/flashlight/flare, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/varadero/exterior/lz2_near) "kFT" = ( /obj/structure/machinery/vending/snack, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull/west, /area/varadero/interior/medical) "kFV" = ( /obj/structure/largecrate/random/mini/med{ @@ -16426,10 +13385,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/shiva/red/east, /area/varadero/interior/medical) "kGq" = ( /obj/structure/flora/bush/ausbushes/var3/fullgrass, @@ -16454,15 +13410,11 @@ pixel_y = 8 }, /obj/structure/blocker/invisible_wall/water, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/oob) "kGD" = ( /obj/effect/decal/cleanable/blood/oil/streak, -/turf/open/gm/dirt{ - icon_state = "desert_dug" - }, +/turf/open/gm/dirt/desert_dug, /area/varadero/exterior/pontoon_beach) "kGF" = ( /obj/item/paper_bin{ @@ -16473,9 +13425,7 @@ }, /obj/structure/surface/table/reinforced/prison, /obj/item/device/flash, -/turf/open/floor/shiva{ - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull, /area/varadero/interior/security) "kGJ" = ( /turf/open/gm/coast/east, @@ -16516,22 +13466,14 @@ req_access_txt = "100"; req_one_access = null }, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/north, /area/varadero/interior/electrical) "kIJ" = ( -/turf/open/floor{ - dir = 10; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/southwest, /area/varadero/exterior/lz1_near) "kIK" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance) "kIV" = ( /obj/structure/prop/invuln/overhead_pipe{ @@ -16543,9 +13485,7 @@ dir = 4; pixel_y = 13 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/north) "kKS" = ( /turf/open/floor/interior/plastic, @@ -16564,25 +13504,27 @@ /turf/open/gm/dirt, /area/varadero/exterior/pontoon_beach) "kLd" = ( -/turf/open/floor/shiva{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/shiva/red/west, /area/varadero/interior/administration) "kLA" = ( /obj/structure/disposalpipe/trunk{ dir = 8 }, /obj/structure/machinery/disposal, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellowfull" - }, +/turf/open/floor/shiva/yellowfull/west, /area/varadero/interior/electrical) "kLF" = ( /obj/effect/decal/cleanable/blood/oil, /turf/open/auto_turf/sand_white/layer1, /area/varadero/exterior/lz2_near) +"kMe" = ( +/obj/structure/platform/kutjevo/smooth{ + dir = 4; + climb_delay = 1; + layer = 2.99 + }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, +/area/varadero/exterior/pontoon_beach/lz) "kMf" = ( /obj/structure/window/framed/colony/reinforced/tinted, /turf/open/floor/plating, @@ -16594,28 +13536,20 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/shiva{ - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow, /area/varadero/interior/cargo) "kMy" = ( /obj/structure/machinery/landinglight/ds2/delaytwo{ dir = 1 }, /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/varadero/exterior/lz1_near) "kME" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/varadero/exterior/lz1_near) "kMN" = ( /obj/structure/machinery/flasher{ @@ -16624,18 +13558,13 @@ pixel_x = -32; pixel_y = 32 }, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "redcorners" - }, +/turf/open/floor/shiva/redcorners/north, /area/varadero/interior/security) "kMU" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/shiva{ - icon_state = "red" - }, +/turf/open/floor/shiva/red, /area/varadero/interior/medical) "kNa" = ( /obj/structure/machinery/door/airlock/almayer/generic{ @@ -16653,37 +13582,27 @@ pixel_x = -10; pixel_y = 11 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/varadero/interior/laundry) "kNN" = ( /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/research) "kOS" = ( /obj/structure/machinery/light{ dir = 8 }, /obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/west, /area/varadero/interior/electrical) "kPj" = ( /obj/structure/machinery/alarm{ pixel_y = 24 }, /obj/effect/decal/cleanable/blood, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/shiva/green/north, /area/varadero/interior/mess) "kPX" = ( /obj/structure/surface/table, @@ -16695,10 +13614,7 @@ pixel_x = 10; pixel_y = 10 }, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "green" - }, +/turf/open/floor/shiva/green/east, /area/varadero/interior/hall_NW) "kPZ" = ( /obj/structure/surface/rack, @@ -16709,9 +13625,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/maintenance/south) "kQy" = ( /obj/structure/platform/kutjevo/smooth{ @@ -16728,9 +13642,7 @@ "kRp" = ( /obj/structure/blocker/forcefield/multitile_vehicles, /obj/item/device/flashlight/lamp/tripod, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/maintenance/south) "kRH" = ( /turf/open/gm/coast/beachcorner/north_west, @@ -16755,10 +13667,7 @@ unacidable = 1; layer = 4.1 }, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/exterior/comms4) "kSd" = ( /obj/structure/machinery/alarm{ @@ -16772,10 +13681,7 @@ /obj/structure/barricade/handrail/wire{ dir = 4 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/varadero/exterior/lz1_near) "kSD" = ( /obj/structure/platform/kutjevo/smooth{ @@ -16789,10 +13695,7 @@ layer = 2.99 }, /obj/structure/flora/bush/ausbushes/var3/stalkybush, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/interior_protected/caves) "kSN" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -16802,17 +13705,11 @@ req_access_txt = "100"; req_one_access = null }, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/north, /area/varadero/interior/comms3) "kTo" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/west, /area/varadero/interior/administration) "kTs" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -16829,10 +13726,7 @@ pixel_y = 6 }, /obj/structure/surface/table, -/turf/open/floor/shiva{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/shiva/red/southeast, /area/varadero/interior/hall_N) "kTG" = ( /obj/structure/machinery/door/airlock/almayer/maint{ @@ -16841,15 +13735,11 @@ req_access_txt = "100"; req_one_access = null }, -/turf/open/floor/shiva{ - icon_state = "wred" - }, +/turf/open/floor/shiva/wred, /area/varadero/interior/medical) "kTI" = ( /obj/structure/machinery/light/small, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/varadero/interior/security) "kUj" = ( /obj/effect/decal/cleanable/blood, @@ -16857,10 +13747,7 @@ /turf/open/floor/wood, /area/varadero/interior/maintenance/north) "kVp" = ( -/turf/open/floor/shiva{ - dir = 9; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/northwest, /area/varadero/interior/cargo) "kVq" = ( /obj/structure/platform/kutjevo/smooth{ @@ -16874,9 +13761,7 @@ /obj/effect/landmark/lv624/fog_blocker{ time_to_dispel = 25000 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/caves/east) "kVL" = ( /obj/structure/platform/kutjevo/smooth{ @@ -16896,10 +13781,7 @@ /obj/structure/platform_decoration/kutjevo{ dir = 1 }, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/exterior/farocean) "kWj" = ( /obj/effect/landmark/objective_landmark/medium, @@ -16909,9 +13791,7 @@ /turf/open/shuttle/elevator/grating, /area/varadero/interior/records) "kWR" = ( -/turf/open/gm/dirt{ - icon_state = "desert_dug" - }, +/turf/open/gm/dirt/desert_dug, /area/varadero/interior/maintenance/north) "kWZ" = ( /obj/structure/prop/invuln/lattice_prop{ @@ -16919,22 +13799,15 @@ pixel_x = 16; pixel_y = -8 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance) "kXn" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/north, /area/varadero/interior/cargo) "kXP" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/varadero/interior/cargo) "kXQ" = ( /turf/open/auto_turf/sand_white/layer1, @@ -16944,28 +13817,20 @@ dir = 1; icon_state = "pipe-c" }, -/turf/open/floor/shiva{ - icon_state = "blue" - }, +/turf/open/floor/shiva/blue, /area/varadero/interior/administration) "kYn" = ( /obj/structure/machinery/light, /obj/structure/closet/secure_closet/personal, -/turf/open/floor/shiva{ - icon_state = "red" - }, +/turf/open/floor/shiva/red, /area/varadero/interior/security) "kYF" = ( /obj/item/tool/weldingtool, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/lz2_near) "kYM" = ( /obj/effect/landmark/static_comms/net_one, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/comms4) "kYN" = ( /obj/structure/prop/invuln/lattice_prop{ @@ -16973,31 +13838,21 @@ pixel_x = -16; pixel_y = -8 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/research) "kZe" = ( /obj/structure/barricade/handrail/wire{ layer = 3.1 }, -/turf/open/gm/dirt{ - icon_state = "desert3" - }, +/turf/open/gm/dirt/desert3, /area/varadero/exterior/eastbeach) "kZg" = ( /obj/structure/closet/emcloset, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "purplefull" - }, +/turf/open/floor/shiva/purplefull/west, /area/varadero/interior/hall_NW) "kZl" = ( /obj/effect/landmark/crap_item, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/varadero/interior_protected/vessel) "kZn" = ( /obj/structure/surface/table, @@ -17008,9 +13863,7 @@ pixel_y = 24 }, /obj/effect/decal/cleanable/blood, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/mess) "laa" = ( /obj/structure/bed/chair{ @@ -17023,15 +13876,11 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/security) "lat" = ( /obj/item/device/camera, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/north) "laN" = ( /obj/structure/flora/pottedplant{ @@ -17040,23 +13889,16 @@ /obj/structure/barricade/handrail/wire{ dir = 4 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/comms4) "lbi" = ( /obj/structure/closet/secure_closet/cargotech, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellowfull" - }, +/turf/open/floor/shiva/yellowfull/west, /area/varadero/interior/cargo) "lbr" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/shiva{ - icon_state = "green" - }, +/turf/open/floor/shiva/green, /area/varadero/interior/hall_N) "lbK" = ( /obj/structure/pipes/standard/manifold/hidden/green{ @@ -17066,9 +13908,7 @@ dir = 4; icon_state = "pipe-c" }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/hall_SE) "lbX" = ( /obj/structure/stairs/perspective{ @@ -17085,9 +13925,7 @@ /obj/structure/barricade/handrail/wire{ dir = 4 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/eastbeach) "lci" = ( /obj/structure/prop/rock/brown, @@ -17097,9 +13935,7 @@ /obj/structure/machinery/storm_siren{ pixel_y = 5 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/north) "ldw" = ( /obj/structure/machinery/light/small{ @@ -17113,18 +13949,14 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/wood{ - icon_state = "wood-broken3" - }, +/turf/open/floor/wood/wood_broken3, /area/varadero/interior/hall_SE) "leF" = ( /obj/structure/machinery/optable{ desc = "This maybe could be used for advanced medical procedures."; name = "Exam Table" }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/morgue) "leG" = ( /obj/structure/prop/invuln/minecart_tracks{ @@ -17143,19 +13975,14 @@ }, /obj/structure/platform_decoration/kutjevo, /obj/structure/blocker/invisible_wall/water, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/oob) "leI" = ( /obj/structure/sink{ dir = 1; pixel_y = -10 }, -/turf/open/floor/shiva{ - dir = 6; - icon_state = "purple" - }, +/turf/open/floor/shiva/purple/southeast, /area/varadero/interior/research) "leO" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -17166,16 +13993,11 @@ }, /obj/structure/surface/table, /obj/item/weapon/gun/flamer, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/electrical) "leP" = ( /obj/item/stack/cable_coil/cut, -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/west, /area/varadero/exterior/lz1_near) "leT" = ( /obj/structure/machinery/conveyor, @@ -17184,17 +14006,13 @@ /area/varadero/interior/cargo) "leU" = ( /obj/structure/largecrate/random, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/north) "lfp" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/disposalpipe/segment, /obj/effect/decal/cleanable/blood, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/hall_NW) "lgb" = ( /obj/structure/bedsheetbin, @@ -17203,18 +14021,13 @@ dir = 4; pixel_x = -3 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/bunks) "lgP" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "green" - }, +/turf/open/floor/shiva/green/east, /area/varadero/interior/hall_N) "lhm" = ( /obj/structure/surface/table/reinforced/prison, @@ -17227,10 +14040,7 @@ pixel_x = -6; pixel_y = 22 }, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/shiva/red/north, /area/varadero/interior/administration) "lhn" = ( /obj/structure/catwalk, @@ -17240,24 +14050,18 @@ density = 0; climb_delay = 0 }, -/turf/open/gm/river/desert/deep{ - base_river_slowdown = 0 - }, +/turf/open/gm/river/desert/deep/no_slowdown, /area/varadero/interior/maintenance/north) "lhp" = ( /obj/structure/barricade/wooden{ dir = 4 }, -/turf/open/floor/shiva{ - icon_state = "snow_mat" - }, +/turf/open/floor/shiva/snow_mat, /area/varadero/interior/maintenance) "lhB" = ( /obj/structure/window_frame/colony/reinforced, /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/caves) "lhJ" = ( /obj/structure/machinery/door/airlock/almayer/maint{ @@ -17287,25 +14091,18 @@ "liE" = ( /obj/structure/closet/crate/secure/weapon, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/shiva{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/shiva/red/northwest, /area/varadero/interior/security) "liM" = ( /obj/structure/pipes/binary/passive_gate, -/turf/open/gm/river/desert/deep{ - base_river_slowdown = 0 - }, +/turf/open/gm/river/desert/deep/no_slowdown, /area/varadero/interior/maintenance/north) "ljt" = ( /obj/structure/prop/structure_lattice{ dir = 1; health = 300 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/caves/north_research) "ljx" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -17314,16 +14111,11 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/electrical) "lkz" = ( /obj/effect/landmark/corpsespawner/colonist/burst, -/turf/open/floor/prison/chapel_carpet{ - dir = 1; - icon_state = "doubleside" - }, +/turf/open/floor/prison/chapel_carpet/doubleside/north, /area/varadero/interior/chapel) "lkH" = ( /obj/structure/largecrate/random/barrel/red, @@ -17331,16 +14123,11 @@ /area/varadero/interior/hall_N) "lkI" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/technical_storage) "llj" = ( /obj/structure/prop/rock/brown, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/exterior/comms4) "lmd" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -17350,9 +14137,7 @@ req_access_txt = "100"; req_one_access = null }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/hall_SE) "lms" = ( /obj/structure/machinery/door/airlock/strata/autoname{ @@ -17360,9 +14145,7 @@ locked = 1; name = "\improper Engine Room" }, -/turf/open/shuttle{ - icon_state = "floor6" - }, +/turf/open/shuttle/red, /area/varadero/interior_protected/vessel) "lmu" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -17371,10 +14154,7 @@ /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22" }, -/turf/open/floor/prison/chapel_carpet{ - dir = 1; - icon_state = "doubleside" - }, +/turf/open/floor/prison/chapel_carpet/doubleside/north, /area/varadero/interior/chapel) "lmS" = ( /obj/structure/platform/kutjevo/smooth{ @@ -17391,10 +14171,7 @@ /obj/structure/platform_decoration/kutjevo{ dir = 1 }, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/exterior/pontoon_beach) "lnw" = ( /obj/structure/surface/table/reinforced/prison, @@ -17406,16 +14183,11 @@ pixel_x = 6; pixel_y = 2 }, -/turf/open/floor/shiva{ - dir = 5; - icon_state = "blue" - }, +/turf/open/floor/shiva/blue/northeast, /area/varadero/interior/administration) "lnG" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/hall_N) "lnO" = ( /turf/open/gm/coast/north, @@ -17423,9 +14195,7 @@ "loh" = ( /obj/effect/decal/cleanable/blood/drip, /obj/effect/decal/cleanable/blood/xeno, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/varadero/interior/electrical) "loA" = ( /obj/structure/prop/structure_lattice{ @@ -17447,30 +14217,20 @@ /area/varadero/interior_protected/maintenance/south) "loQ" = ( /obj/structure/closet/emcloset, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/varadero/exterior/lz1_near) "loW" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "purple" - }, +/turf/open/floor/shiva/purple/east, /area/varadero/interior/research) "lpv" = ( -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/varadero/interior/laundry) "lpJ" = ( /obj/structure/machinery/light, -/turf/open/floor{ - icon_state = "bcircuit" - }, +/turf/open/floor/bcircuit, /area/varadero/interior/maintenance/north) "lqa" = ( /obj/item/tool/warning_cone{ @@ -17504,25 +14264,18 @@ pixel_y = 5 }, /obj/effect/spawner/random/supply_kit, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/shiva/red/east, /area/varadero/interior/administration) "lrR" = ( /obj/structure/girder/displaced, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/eastbeach) "lss" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/hall_N) "lsN" = ( /obj/effect/overlay/palmtree_r, @@ -17530,27 +14283,20 @@ /area/varadero/exterior/pontoon_beach) "lsR" = ( /obj/item/ammo_magazine/rifle/m4ra, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/bunks) "lsT" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/electrical) "lsU" = ( /obj/structure/window/framed/colony/reinforced, /turf/open/floor/plating, /area/varadero/interior/hall_N) "ltA" = ( -/turf/open/floor/shiva{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/shiva/green/north, /area/varadero/interior/records) "ltB" = ( /obj/structure/machinery/storm_siren{ @@ -17570,33 +14316,22 @@ pixel_x = -2; pixel_y = -2 }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/hall_NW) "ltW" = ( -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/varadero/interior/research) "lum" = ( /obj/structure/prop/rock/brown, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/exterior/pool) "lun" = ( /obj/item/device/mass_spectrometer, /obj/effect/landmark/xeno_spawn, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/maintenance/south) "lur" = ( -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/electrical) "luu" = ( /obj/item/tool/warning_cone{ @@ -17621,9 +14356,7 @@ layer = 2.99 }, /obj/structure/blocker/invisible_wall/water, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/oob) "luC" = ( /obj/structure/prop/invuln/lattice_prop{ @@ -17648,17 +14381,11 @@ climb_delay = 1; layer = 2.99 }, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/varadero/interior_protected/vessel) "lvG" = ( /obj/structure/curtain/red, -/turf/open/floor/shiva{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/southeast, /area/varadero/interior/bunks) "lvS" = ( /obj/structure/machinery/door/airlock/strata/autoname{ @@ -17668,9 +14395,7 @@ locked = 1; name = "\improper Research Chamber" }, -/turf/open/shuttle{ - icon_state = "floor6" - }, +/turf/open/shuttle/red, /area/varadero/interior_protected/vessel) "lvV" = ( /obj/structure/window/reinforced{ @@ -17679,10 +14404,7 @@ /obj/structure/window/reinforced{ dir = 4 }, -/turf/open/floor/plating{ - dir = 5; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/northeast, /area/varadero/interior/disposals) "lwm" = ( /obj/structure/platform/kutjevo/smooth{ @@ -17715,22 +14437,15 @@ dir = 8 }, /obj/effect/landmark/survivor_spawner, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/comms1) "lxs" = ( /obj/structure/flora/bush/ausbushes/var3/fernybush, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/exterior/eastocean) "lxy" = ( /obj/structure/closet/secure_closet/personal, -/turf/open/floor/shiva{ - icon_state = "red" - }, +/turf/open/floor/shiva/red, /area/varadero/interior/security) "lxR" = ( /obj/structure/platform/kutjevo/smooth{ @@ -17743,10 +14458,7 @@ /obj/item/shard{ icon_state = "medium" }, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/exterior/pool) "lxT" = ( /obj/structure/surface/table/reinforced/prison, @@ -17757,19 +14469,14 @@ pixel_x = -8; pixel_y = 3 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/medical) "lyp" = ( /obj/structure/machinery/storm_siren{ dir = 4; pixel_x = -3 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/shiva/red/west, /area/varadero/interior/security) "lyP" = ( /turf/closed/wall/rock/brown, @@ -17777,16 +14484,10 @@ "lze" = ( /obj/structure/blocker/invisible_wall/water, /obj/structure/blocker/invisible_wall/water, -/turf/open/gm/river/ocean{ - name = "deep ocean"; - default_name = "deep ocean" - }, +/turf/open/gm/river/ocean/deep_ocean, /area/varadero/exterior/farocean) "lzu" = ( -/turf/open/floor/shiva{ - dir = 8; - icon_state = "greenfull" - }, +/turf/open/floor/shiva/greenfull/west, /area/varadero/interior/hall_N) "lzD" = ( /obj/effect/overlay/palmtree_r, @@ -17794,10 +14495,7 @@ /area/varadero/exterior/pontoon_beach) "lzP" = ( /obj/structure/machinery/autolathe, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellowfull" - }, +/turf/open/floor/shiva/yellowfull/west, /area/varadero/interior/cargo) "lzT" = ( /turf/closed/wall/rock/brown, @@ -17809,34 +14507,25 @@ pixel_x = -24; indestructible = 1 }, -/turf/open/floor/plating/icefloor{ - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate, /area/varadero/interior/maintenance/north) "lAk" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/medical) "lBf" = ( /obj/item/stack/cable_coil/cut{ pixel_x = 5; pixel_y = 4 }, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "snow_mat" - }, +/turf/open/floor/shiva/snow_mat/east, /area/varadero/interior/medical) "lBw" = ( /obj/structure/window/framed/colony/reinforced, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/varadero/interior/research) "lCK" = ( /obj/structure/prop/structure_lattice{ @@ -17852,53 +14541,35 @@ icon_state = "vent4"; pixel_y = 25 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/comms4) "lDh" = ( -/turf/open/floor/shiva{ - icon_state = "blue" - }, +/turf/open/floor/shiva/blue, /area/varadero/interior/maintenance) "lDk" = ( -/turf/open/floor/shiva{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/shiva/red/southwest, /area/varadero/interior/hall_N) "lDm" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/security) "lDz" = ( /obj/effect/landmark/queen_spawn, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/varadero/interior_protected/vessel) "lDF" = ( /turf/closed/wall/rock/brown, /area/varadero/interior_protected/caves/digsite) "lDN" = ( -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellowfull" - }, +/turf/open/floor/shiva/yellowfull/west, /area/varadero/interior/cargo) "lDS" = ( /obj/structure/bed/roller, /obj/structure/machinery/iv_drip, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "wred" - }, +/turf/open/floor/shiva/wred/north, /area/varadero/interior/medical) "lEc" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -17908,34 +14579,25 @@ pixel_x = 16; pixel_y = 24 }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/hall_SE) "lEm" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/varadero/exterior/lz1_near) "lEw" = ( /obj/structure/disposalpipe/segment{ dir = 8; icon_state = "pipe-c" }, -/turf/open/floor/shiva{ - icon_state = "blue" - }, +/turf/open/floor/shiva/blue, /area/varadero/interior/administration) "lEM" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/decal/cleanable/blood, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "snow_mat" - }, +/turf/open/floor/shiva/snow_mat/east, /area/varadero/interior/medical) "lEV" = ( /obj/structure/barricade/handrail/wire{ @@ -17959,19 +14621,13 @@ /turf/open/auto_turf/sand_white/layer1, /area/varadero/interior/caves/east) "lFl" = ( -/turf/open/floor/plating/icefloor{ - dir = 8; - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate/west, /area/varadero/interior/cargo) "lFr" = ( /obj/structure/platform_decoration/kutjevo{ dir = 4 }, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/varadero/interior_protected/vessel) "lFA" = ( /obj/structure/machinery/storm_siren{ @@ -17982,9 +14638,7 @@ /area/varadero/interior/hall_SE) "lFE" = ( /obj/structure/window/framed/colony/reinforced, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/caves/east) "lFI" = ( /obj/structure/prop/structure_lattice{ @@ -18007,15 +14661,11 @@ unacidable = 1; layer = 4.1 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/comms4) "lFS" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/administration) "lFT" = ( /obj/structure/stairs/perspective{ @@ -18023,10 +14673,7 @@ dir = 9; icon_state = "p_stair_full" }, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/varadero/interior_protected/vessel) "lGp" = ( /turf/closed/wall/r_wall/unmeltable, @@ -18050,17 +14697,13 @@ dir = 1 }, /obj/structure/machinery/light, -/turf/open/floor/shiva{ - icon_state = "green" - }, +/turf/open/floor/shiva/green, /area/varadero/interior/hall_SE) "lIb" = ( /obj/structure/bed, /obj/effect/landmark/corpsespawner/prisoner, /obj/effect/decal/cleanable/blood, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/security) "lId" = ( /obj/structure/platform/kutjevo/smooth{ @@ -18079,18 +14722,13 @@ icon_state = "hr_kutjevo"; name = "support struts" }, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, -/area/varadero/exterior/pontoon_beach) +/turf/open/gm/river/shallow_ocean_shallow_ocean, +/area/varadero/exterior/pontoon_beach/lz) "lIo" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/hall_SE) "lIE" = ( /obj/structure/surface/table/reinforced/prison, @@ -18098,10 +14736,7 @@ dir = 1; name = "LZ1 Pontoon Dock computer" }, -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/west, /area/varadero/exterior/lz1_console) "lIO" = ( /obj/structure/prop/ice_colony/tiger_rug{ @@ -18118,25 +14753,27 @@ dir = 1; icon_state = "chair_alt" }, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/east, /area/varadero/interior/hall_SE) "lIU" = ( /obj/effect/spawner/random/attachment, /turf/open/floor/carpet, /area/varadero/interior/administration) +"lIW" = ( +/obj/structure/machinery/landinglight/ds1/spoke{ + pixel_y = -5; + pixel_x = 13 + }, +/obj/structure/machinery/camera/autoname/lz_camera, +/turf/open/auto_turf/sand_white/layer1, +/area/varadero/exterior/lz2_near) "lJo" = ( /obj/structure/machinery/light{ dir = 8 }, /obj/effect/landmark/objective_landmark/close, /obj/structure/surface/rack, -/turf/open/floor/shiva{ - dir = 10; - icon_state = "wred" - }, +/turf/open/floor/shiva/wred/southwest, /area/varadero/interior/medical) "lKI" = ( /obj/structure/surface/table/reinforced/prison, @@ -18145,46 +14782,31 @@ pixel_y = 7 }, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "purplefull" - }, +/turf/open/floor/shiva/purplefull/west, /area/varadero/interior/research) "lKS" = ( /obj/structure/barricade/handrail/wire{ layer = 3.1 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "purple" - }, +/turf/open/floor/shiva/purple/west, /area/varadero/interior/research) "lKV" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/medical) "lLq" = ( -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellowfull" - }, +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/shiva/yellowfull/west, /area/varadero/interior/technical_storage) "lLZ" = ( -/turf/open/floor/shiva{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/shiva/red/east, /area/varadero/interior/hall_N) "lMb" = ( /obj/item/device/flashlight/lamp/tripod, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/caves) "lMl" = ( /obj/structure/platform/kutjevo/smooth{ @@ -18192,45 +14814,27 @@ climb_delay = 1; layer = 2.99 }, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/exterior/pool) "lMq" = ( /obj/structure/surface/table/reinforced/prison, /obj/effect/landmark/crap_item, /obj/effect/spawner/random/supply_kit, -/turf/open/floor/shiva{ - dir = 5; - icon_state = "blue" - }, +/turf/open/floor/shiva/blue/northeast, /area/varadero/interior/administration) "lMv" = ( -/turf/open/floor/shiva{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/west, /area/varadero/interior/hall_SE) "lMB" = ( -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/varadero/interior/comms1) "lMD" = ( /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/shiva{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/southeast, /area/varadero/interior/hall_SE) "lMP" = ( /obj/structure/filingcabinet, -/turf/open/floor/shiva{ - dir = 6; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/southeast, /area/varadero/interior/cargo) "lNb" = ( /obj/structure/window/framed/colony/reinforced, @@ -18238,18 +14842,13 @@ /area/varadero/interior/hall_SE) "lNd" = ( /obj/effect/decal/cleanable/blood/drip, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/eastbeach) "lNq" = ( /obj/structure/bed, /obj/item/bedsheet/orange, /obj/item/toy/plush/farwa, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "snow_mat" - }, +/turf/open/floor/shiva/snow_mat/west, /area/varadero/interior/security) "lNw" = ( /obj/structure/surface/table/reinforced/prison, @@ -18270,10 +14869,7 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "green" - }, +/turf/open/floor/shiva/green/west, /area/varadero/interior/hall_N) "lOc" = ( /obj/structure/prop/invuln/overhead_pipe{ @@ -18281,9 +14877,7 @@ pixel_x = -14; pixel_y = 13 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/maintenance/south) "lPj" = ( /obj/structure/prop/invuln/minecart_tracks{ @@ -18299,9 +14893,7 @@ layer = 2.99 }, /obj/structure/blocker/invisible_wall/water, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/oob) "lPk" = ( /obj/item/stack/cable_coil/cut{ @@ -18311,10 +14903,7 @@ /turf/open/floor/plating, /area/varadero/interior/hall_SE) "lPq" = ( -/turf/open/floor/shiva{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/shiva/red/east, /area/varadero/interior/morgue) "lQg" = ( /obj/structure/desertdam/decals/road_edge{ @@ -18334,23 +14923,15 @@ dir = 4 }, /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/north, /area/varadero/interior/hall_SE) "lQO" = ( /obj/structure/closet/secure_closet/freezer/fridge, -/turf/open/floor/shiva{ - dir = 9; - icon_state = "green" - }, +/turf/open/floor/shiva/green/northwest, /area/varadero/interior/mess) "lQW" = ( /obj/effect/decal/cleanable/blood/oil/streak, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/pontoon_beach) "lRy" = ( /obj/structure/surface/table, @@ -18362,9 +14943,7 @@ /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/varadero/interior/morgue) "lRz" = ( /obj/item/ammo_casing{ @@ -18376,14 +14955,10 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/shiva{ - icon_state = "purplecorners" - }, +/turf/open/floor/shiva/purplecorners, /area/varadero/interior/research) "lSg" = ( -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/cargo) "lSG" = ( /obj/structure/curtain/shower, @@ -18393,10 +14968,7 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/shiva{ - dir = 6; - icon_state = "green" - }, +/turf/open/floor/shiva/green/southeast, /area/varadero/interior/court) "lTg" = ( /turf/open/auto_turf/sand_white/layer1, @@ -18412,32 +14984,21 @@ /turf/open/auto_turf/sand_white/layer1, /area/varadero/interior_protected/caves/digsite) "lTR" = ( -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/exterior/pontoon_beach) "lUe" = ( /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance) "lUG" = ( /obj/structure/platform_decoration/kutjevo, -/turf/open/gm/river/ocean{ - name = "deep ocean"; - default_name = "deep ocean" - }, +/turf/open/gm/river/ocean/deep_ocean, /area/varadero/exterior/farocean) "lUT" = ( /obj/structure/machinery/smartfridge, -/turf/open/floor/shiva{ - dir = 10; - icon_state = "green" - }, +/turf/open/floor/shiva/green/southwest, /area/varadero/interior/mess) "lVa" = ( /obj/structure/platform/kutjevo/smooth{ @@ -18445,15 +15006,11 @@ climb_delay = 1; layer = 2.99 }, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/varadero/interior/comms1) "lVc" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/security) "lVf" = ( /obj/item/tool/warning_cone{ @@ -18471,9 +15028,7 @@ "lVP" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/disposalpipe/segment, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/hall_NW) "lVQ" = ( /obj/structure/flora/bush/ausbushes/var3/fernybush, @@ -18513,17 +15068,13 @@ dir = 8; icon_state = "chair_alt" }, -/turf/open/floor/shiva{ - icon_state = "red" - }, +/turf/open/floor/shiva/red, /area/varadero/interior/medical) "lWo" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/hall_N) "lWB" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -18535,9 +15086,7 @@ pixel_x = 16; pixel_y = 24 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/research) "lWJ" = ( /obj/structure/machinery/firealarm{ @@ -18555,10 +15104,7 @@ pixel_x = -1; pixel_y = 3 }, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/north, /area/varadero/interior/technical_storage) "lXv" = ( /obj/effect/decal/cleanable/dirt, @@ -18581,9 +15127,7 @@ dir = 1 }, /obj/structure/blocker/invisible_wall/water, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/oob) "lYi" = ( /obj/structure/surface/table, @@ -18591,9 +15135,7 @@ pixel_x = -1; pixel_y = 1 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/maintenance/south) "lYo" = ( /obj/structure/prop/rock/brown, @@ -18605,16 +15147,12 @@ "lYA" = ( /obj/structure/closet/secure_closet/medical2, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/shiva{ - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull, /area/varadero/interior/medical) "lYD" = ( /obj/effect/decal/cleanable/dirt, /obj/item/stack/sheet/wood, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/monsoon) "lYF" = ( /obj/structure/largecrate/random/case, @@ -18623,9 +15161,7 @@ "lYQ" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /obj/effect/landmark/xeno_spawn, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/maintenance/south) "lZa" = ( /obj/structure/prop/structure_lattice{ @@ -18641,10 +15177,7 @@ icon_state = "pottedplant_22"; pixel_y = 8 }, -/turf/open/floor/shiva{ - dir = 10; - icon_state = "green" - }, +/turf/open/floor/shiva/green/southwest, /area/varadero/interior/hall_SE) "lZh" = ( /obj/structure/desertdam/decals/road_edge{ @@ -18663,9 +15196,7 @@ dir = 4 }, /obj/effect/landmark/survivor_spawner, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/lz1_near) "lZU" = ( /obj/item/ammo_casing/shell{ @@ -18683,25 +15214,17 @@ dir = 8; icon_state = "pipe-c" }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/administration) "mau" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/shiva{ - icon_state = "wredfull" - }, +/turf/open/floor/shiva/wredfull, /area/varadero/interior/medical) "maN" = ( -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/medical) "maQ" = ( -/turf/open/floor/shiva{ - icon_state = "red" - }, +/turf/open/floor/shiva/red, /area/varadero/interior/administration) "mbt" = ( /obj/structure/bed/chair{ @@ -18711,10 +15234,7 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/shiva/blue/east, /area/varadero/interior/administration) "mbu" = ( /obj/structure/prop/ice_colony/dense/planter_box/plated{ @@ -18724,9 +15244,7 @@ /obj/structure/flora/bush/ausbushes/pointybush{ pixel_y = 11 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/research) "mca" = ( /obj/structure/surface/table/reinforced/prison, @@ -18743,10 +15261,7 @@ /obj/structure/machinery/alarm{ pixel_y = 24 }, -/turf/open/floor/shiva{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/shiva/red/northeast, /area/varadero/interior/security) "mcp" = ( /obj/structure/prop/invuln/lattice_prop{ @@ -18754,23 +15269,15 @@ pixel_x = 16; pixel_y = 24 }, -/turf/open/gm/dirt{ - icon_state = "desert1" - }, +/turf/open/gm/dirt/desert1, /area/varadero/exterior/eastbeach) "mcr" = ( /obj/structure/machinery/light, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/varadero/exterior/lz1_near) "mcs" = ( /obj/structure/surface/table, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "greenfull" - }, +/turf/open/floor/shiva/greenfull/west, /area/varadero/interior/hall_SE) "mcB" = ( /obj/structure/platform_decoration/kutjevo, @@ -18800,15 +15307,11 @@ /turf/open/floor/wood, /area/varadero/interior/administration) "mdg" = ( -/turf/open/gm/dirt{ - icon_state = "desert0" - }, +/turf/open/gm/dirt/desert0, /area/varadero/exterior/lz2_near) "mdj" = ( /obj/item/clothing/head/helmet, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/security) "mdy" = ( /obj/structure/platform/kutjevo/smooth{ @@ -18827,16 +15330,11 @@ climb_delay = 1; layer = 2.99 }, -/turf/open/gm/river/ocean{ - name = "deep ocean"; - default_name = "deep ocean" - }, +/turf/open/gm/river/ocean/deep_ocean, /area/varadero/exterior/comms4) "mdL" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/caves) "mdM" = ( /obj/structure/platform/kutjevo/smooth{ @@ -18844,10 +15342,7 @@ climb_delay = 1; layer = 2.99 }, -/turf/open/gm/river/ocean{ - name = "deep ocean"; - default_name = "deep ocean" - }, +/turf/open/gm/river/ocean/deep_ocean, /area/varadero/exterior/farocean) "mdN" = ( /obj/structure/window/framed/colony/reinforced, @@ -18885,9 +15380,7 @@ dir = 1; pixel_y = -24 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/laundry) "meS" = ( /obj/effect/landmark/monkey_spawn, @@ -18899,6 +15392,9 @@ }, /turf/open/floor/carpet, /area/varadero/interior/chapel) +"mfP" = ( +/turf/open/gm/river/ocean/deep_ocean, +/area/varadero/exterior/pontoon_beach/lz) "mgq" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/disposalpipe/segment, @@ -18920,9 +15416,7 @@ pixel_y = 24 }, /obj/structure/machinery/constructable_frame, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/eastbeach) "miy" = ( /obj/structure/window/framed/colony/reinforced, @@ -18935,41 +15429,29 @@ /obj/structure/machinery/landinglight/ds2/delayone{ dir = 1 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/varadero/exterior/lz1_near) "miP" = ( /obj/structure/reagent_dispensers/watertank, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/research) "miR" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/recharger{ pixel_y = 4 }, -/turf/open/floor/wood{ - icon_state = "wood-broken3" - }, +/turf/open/floor/wood/wood_broken3, /area/varadero/interior/dock_control) "miT" = ( /obj/item/stool, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/varadero/exterior/lz1_near) "miU" = ( /obj/item/stack/tile/plasteel{ pixel_x = 8; pixel_y = 6 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/cargo) "mjA" = ( /obj/structure/disposalpipe/segment{ @@ -18978,9 +15460,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/administration) "mkc" = ( /obj/structure/surface/table/reinforced/prison, @@ -18989,10 +15469,7 @@ dir = 1 }, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "purple" - }, +/turf/open/floor/shiva/purple/north, /area/varadero/interior/research) "mke" = ( /obj/structure/window/reinforced{ @@ -19009,10 +15486,7 @@ /obj/structure/largecrate/random/mini/wooden{ desc = "A small wooden crate with a note attached it reads, 'Item 8 taken to examination." }, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/varadero/interior_protected/vessel) "mkn" = ( /obj/structure/surface/table, @@ -19025,10 +15499,7 @@ pixel_x = 2; pixel_y = 20 }, -/turf/open/floor/shiva{ - dir = 6; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/southeast, /area/varadero/interior/technical_storage) "mkt" = ( /obj/structure/machinery/alarm{ @@ -19036,9 +15507,7 @@ pixel_x = -24 }, /obj/effect/spawner/random/attachment, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/hall_SE) "mlN" = ( /obj/vehicle/powerloader/ft, @@ -19052,9 +15521,7 @@ req_access_txt = "100"; req_one_access = null }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/maintenance) "mmq" = ( /obj/structure/fence, @@ -19086,9 +15553,7 @@ /area/varadero/exterior/pontoon_beach) "mnc" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/security) "mnm" = ( /obj/structure/window/reinforced{ @@ -19151,10 +15616,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/shiva{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/southeast, /area/varadero/interior/hall_N) "moH" = ( /obj/structure/largecrate/random/case/double, @@ -19182,16 +15644,11 @@ /area/varadero/interior/court) "mpn" = ( /obj/item/weapon/baton, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/research) "mpH" = ( /obj/structure/largecrate/random, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/varadero/exterior/lz1_near) "mpL" = ( /obj/structure/machinery/light/small, @@ -19199,19 +15656,13 @@ /area/varadero/interior/maintenance/north) "mqe" = ( /obj/structure/cryofeed, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/varadero/interior_protected/vessel) "mqt" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/shiva/blue/north, /area/varadero/interior/administration) "mrd" = ( /obj/structure/disposalpipe/segment{ @@ -19220,14 +15671,10 @@ /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/hall_N) "mrC" = ( -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/varadero/exterior/lz1_near) "mrP" = ( /obj/structure/disposalpipe/segment{ @@ -19238,9 +15685,7 @@ dir = 4; pixel_x = -24 }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/medical) "mrR" = ( /obj/effect/decal/cleanable/blood, @@ -19249,9 +15694,7 @@ "mrT" = ( /obj/structure/closet/secure_closet/engineering_personal, /obj/item/clothing/accessory/storage/black_vest/brown_vest, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/electrical) "mrY" = ( /obj/structure/prop/rock/brown, @@ -19260,30 +15703,20 @@ "msj" = ( /obj/structure/prop/rock/brown, /obj/structure/blocker/invisible_wall/water, -/turf/open/gm/river/ocean{ - name = "deep ocean"; - default_name = "deep ocean" - }, +/turf/open/gm/river/ocean/deep_ocean, /area/varadero/exterior/farocean) "msx" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper Underground Requesitions Bay" }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/west, /area/varadero/interior/cargo) "mtp" = ( /obj/structure/machinery/floodlight{ - name = "Floodlight"; - unacidable = 0; - wrenchable = 1 - }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" + name = "Floodlight" }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/eastbeach) "mtx" = ( /obj/structure/prop/invuln/overhead_pipe{ @@ -19292,10 +15725,7 @@ pixel_y = 13 }, /obj/structure/barricade/wooden, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "snow_mat" - }, +/turf/open/floor/shiva/snow_mat/west, /area/varadero/interior/maintenance) "mtJ" = ( /obj/structure/barricade/wooden, @@ -19306,75 +15736,50 @@ /area/varadero/exterior/lz2_near) "mtU" = ( /obj/structure/closet/secure_closet/engineering_electrical, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance) "mux" = ( -/turf/open/floor/shiva{ - dir = 5; - icon_state = "green" - }, +/turf/open/floor/shiva/green/northeast, /area/varadero/interior/hall_N) "muE" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk{ dir = 8 }, -/turf/open/floor/shiva{ - dir = 6; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/southeast, /area/varadero/interior/cargo) "mve" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/landmark/corpsespawner/security, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/security) "mvi" = ( /obj/effect/decal/cleanable/blood/drip, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/north, /area/varadero/interior/electrical) "mvv" = ( /obj/effect/decal/remains/xeno{ pixel_y = 25 }, -/turf/open/shuttle{ - icon_state = "floor6" - }, +/turf/open/shuttle/red, /area/varadero/interior_protected/vessel) "mvA" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/security) "mvI" = ( -/turf/open/floor/shiva{ - dir = 4; - icon_state = "green" - }, +/turf/open/floor/shiva/green/east, /area/varadero/interior/hall_SE) "mvO" = ( /obj/structure/machinery/floodlight{ - name = "Floodlight"; - unacidable = 0; - wrenchable = 1 - }, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "yellow" + name = "Floodlight" }, +/turf/open/floor/shiva/yellow/north, /area/varadero/interior/electrical) "mwd" = ( /obj/effect/landmark/corpsespawner/colonist/burst, @@ -19399,10 +15804,7 @@ pixel_x = 1; pixel_y = -2 }, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/exterior/comms4) "mwD" = ( /obj/item/storage/toolbox/mechanical{ @@ -19419,9 +15821,7 @@ /obj/item/stack/cable_coil/cut{ pixel_y = 12 }, -/turf/open/floor/shiva{ - icon_state = "blue" - }, +/turf/open/floor/shiva/blue, /area/varadero/interior/technical_storage) "mwI" = ( /obj/structure/flora/bush/ausbushes/var3/fullgrass, @@ -19433,9 +15833,7 @@ /area/varadero/interior/hall_N) "mxx" = ( /obj/structure/largecrate/random, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/research) "mxB" = ( /obj/structure/flora/bush/ausbushes/var3/fullgrass, @@ -19453,27 +15851,20 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor/shiva{ - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull, /area/varadero/interior/medical) "mym" = ( /obj/structure/lamarr, /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/varadero/interior/research) "myo" = ( /obj/effect/decal/warning_stripes{ icon_state = "N" }, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "yellowcorners" - }, +/turf/open/floor/shiva/yellowcorners/north, /area/varadero/interior/cargo) "mzf" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -19481,9 +15872,7 @@ dir = 2; icon_state = "pipe-c" }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/hall_SE) "mzt" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -19502,18 +15891,13 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/north, /area/varadero/interior/hall_SE) "mzI" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/research) "mzJ" = ( /obj/structure/prop/structure_lattice{ @@ -19537,25 +15921,18 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/varadero/interior/cargo) "mAm" = ( /obj/structure/filingcabinet, /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/east, /area/varadero/interior/cargo) "mAB" = ( /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/hall_SE) "mAP" = ( /obj/structure/surface/rack, @@ -19567,9 +15944,7 @@ pixel_x = -2; pixel_y = -4 }, -/turf/open/floor/shiva{ - icon_state = "red" - }, +/turf/open/floor/shiva/red, /area/varadero/interior/security) "mAX" = ( /obj/structure/prop/dam/van{ @@ -19578,21 +15953,15 @@ name = "crawler"; pixel_y = 7 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/cargo) "mBG" = ( -/turf/open/floor/shiva{ - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow, /area/varadero/interior/disposals) "mCe" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/blood/xeno, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/security) "mCx" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -19601,10 +15970,7 @@ /obj/structure/barricade/handrail/wire{ dir = 4 }, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/east, /area/varadero/interior/disposals) "mCF" = ( /turf/open/auto_turf/sand_white/layer1, @@ -19645,10 +16011,7 @@ /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22" }, -/turf/open/floor/prison/chapel_carpet{ - dir = 1; - icon_state = "doubleside" - }, +/turf/open/floor/prison/chapel_carpet/doubleside/north, /area/varadero/interior/chapel) "mDm" = ( /obj/structure/flora/bush/ausbushes/var3/sparsegrass{ @@ -19670,10 +16033,7 @@ climb_delay = 1; layer = 2.99 }, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/exterior/pontoon_beach) "mEA" = ( /obj/structure/surface/table/reinforced/prison, @@ -19681,18 +16041,13 @@ pixel_x = -3; pixel_y = 3 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "purplefull" - }, +/turf/open/floor/shiva/purplefull/west, /area/varadero/interior/research) "mEB" = ( /obj/structure/machinery/power/smes/buildable{ name = "colony distribution SMES" }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/electrical) "mED" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, @@ -19700,27 +16055,18 @@ /area/varadero/interior/caves/east) "mFY" = ( /obj/structure/machinery/vending/coffee, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/hall_N) "mGb" = ( -/turf/open/floor/shiva{ - dir = 4; - icon_state = "green" - }, +/turf/open/floor/shiva/green/east, /area/varadero/interior/hall_N) "mHa" = ( /obj/item/tank/anesthetic, -/turf/open/floor/shiva{ - icon_state = "snow_mat" - }, +/turf/open/floor/shiva/snow_mat, /area/varadero/interior/maintenance) "mHh" = ( /obj/structure/machinery/light/small, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/security) "mHM" = ( /obj/structure/prop/invuln/minecart_tracks{ @@ -19737,22 +16083,15 @@ layer = 2.99 }, /obj/structure/blocker/invisible_wall/water, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/oob) "mIG" = ( /obj/structure/bed, /obj/item/bedsheet/orange, -/turf/open/floor/shiva{ - icon_state = "snow_mat" - }, +/turf/open/floor/shiva/snow_mat, /area/varadero/interior/security) "mIL" = ( -/turf/open/floor/shiva{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/north, /area/varadero/interior/cargo) "mIQ" = ( /obj/structure/platform/kutjevo/smooth{ @@ -19760,9 +16099,7 @@ climb_delay = 1; layer = 2.99 }, -/turf/open/floor/shiva{ - icon_state = "snow_mat" - }, +/turf/open/floor/shiva/snow_mat, /area/varadero/interior/maintenance) "mIU" = ( /obj/structure/platform/kutjevo/smooth{ @@ -19784,10 +16121,7 @@ /area/varadero/interior/caves/north_research) "mJh" = ( /obj/effect/decal/cleanable/blood/drip, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/north, /area/varadero/interior/hall_SE) "mJH" = ( /obj/effect/decal/cleanable/blood/oil/streak, @@ -19809,33 +16143,23 @@ pixel_x = 6; pixel_y = 5 }, -/turf/open/floor/shiva{ - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull, /area/varadero/interior/medical) "mLg" = ( /obj/structure/platform_decoration/kutjevo, -/turf/open/gm/river/ocean{ - name = "deep ocean"; - default_name = "deep ocean" - }, +/turf/open/gm/river/ocean/deep_ocean, /area/varadero/exterior/comms4) "mLt" = ( /obj/structure/sign/goldenplaque{ pixel_y = 32 }, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/shiva/red/north, /area/varadero/interior/security) "mLB" = ( /obj/structure/prop/invuln/minecart_tracks{ dir = 10 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/lz1_near) "mLJ" = ( /obj/structure/platform_decoration/kutjevo, @@ -19863,41 +16187,29 @@ climb_delay = 1; layer = 2.99 }, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/interior_protected/caves) "mMZ" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/structure/surface/rack, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/maintenance/south) "mNm" = ( /obj/structure/machinery/light{ dir = 1 }, /obj/structure/machinery/floodlight{ - name = "Floodlight"; - unacidable = 0; - wrenchable = 1 - }, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "yellow" + name = "Floodlight" }, +/turf/open/floor/shiva/yellow/north, /area/varadero/interior/electrical) "mNO" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/maintenance/south) "mNT" = ( /obj/structure/prop/ice_colony/dense/planter_box/plated{ @@ -19908,76 +16220,53 @@ icon_state = "pointybush_2"; pixel_y = 11 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/security) "mOx" = ( /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull/west, /area/varadero/interior/maintenance) "mOG" = ( /obj/structure/prop/structure_lattice{ dir = 1; health = 300 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/maintenance/south) "mOO" = ( /obj/structure/machinery/vending/coffee, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/medical) "mPf" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/records) "mPk" = ( -/turf/open/gm/river/ocean{ - name = "deep ocean"; - default_name = "deep ocean" - }, +/turf/open/gm/river/ocean/deep_ocean, /area/varadero/exterior/farocean) "mPl" = ( /obj/structure/machinery/storm_siren{ dir = 4; pixel_x = -3 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance) "mPI" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/landmark/survivor_spawner, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/bunks) "mPT" = ( /obj/structure/surface/rack, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/maintenance/south) "mPW" = ( /obj/structure/blocker/invisible_wall/water, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/exterior/farocean) "mPX" = ( /obj/structure/machinery/floodlight/landing{ @@ -19985,37 +16274,26 @@ name = "Construction Light" }, /obj/effect/decal/warning_stripes, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/research) "mQh" = ( /obj/structure/closet/secure_closet/engineering_welding, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/electrical) "mQC" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/hall_SE) "mQF" = ( /obj/structure/window/framed/colony/reinforced, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/caves/north_research) "mQG" = ( /obj/effect/decal/cleanable/blood/oil/streak, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/exterior/pontoon_beach) "mRq" = ( /obj/structure/window/framed/colony, @@ -20026,22 +16304,15 @@ color = "#aba9a9" }, /obj/structure/curtain/red, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/varadero/interior_protected/vessel) "mRL" = ( /obj/item/paper/crumpled/bloody, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/varadero/interior/morgue) "mRZ" = ( /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/administration) "mSa" = ( /obj/structure/tunnel{ @@ -20073,9 +16344,7 @@ /area/varadero/interior/bunks) "mSf" = ( /obj/effect/decal/cleanable/blood/drip, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/electrical) "mSu" = ( /obj/structure/blocker/forcefield/multitile_vehicles, @@ -20083,9 +16352,7 @@ /area/varadero/interior_protected/maintenance/south) "mSD" = ( /obj/structure/pipes/vents/pump/on, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/varadero/interior/electrical) "mSS" = ( /obj/structure/prop/invuln/minecart_tracks{ @@ -20098,9 +16365,7 @@ layer = 2.99 }, /obj/structure/blocker/invisible_wall/water, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/oob) "mTD" = ( /obj/structure/machinery/light{ @@ -20126,22 +16391,15 @@ /turf/open/floor/carpet, /area/varadero/interior/chapel) "mUz" = ( -/turf/open/gm/dirt{ - icon_state = "desert_dug" - }, +/turf/open/gm/dirt/desert_dug, /area/varadero/exterior/eastbeach) "mUP" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/maintenance/south) "mVc" = ( /obj/structure/machinery/photocopier, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "purple" - }, +/turf/open/floor/shiva/purple/east, /area/varadero/interior/research) "mVj" = ( /obj/structure/platform/kutjevo/smooth{ @@ -20180,25 +16438,16 @@ dir = 8; pixel_y = 24 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/west, /area/varadero/interior/hall_NW) "mVN" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull/west, /area/varadero/interior/medical) "mVS" = ( -/turf/open/floor/shiva{ - dir = 8; - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull/west, /area/varadero/interior/hall_SE) "mVY" = ( /obj/structure/platform/kutjevo/smooth{ @@ -20207,10 +16456,7 @@ layer = 2.99 }, /obj/item/clothing/under/shorts/grey, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/exterior/pool) "mXi" = ( /obj/effect/landmark/objective_landmark/far, @@ -20220,18 +16466,13 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/shiva/blue/east, /area/varadero/interior/administration) "mXx" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper Underground Sports Center" }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/court) "mXO" = ( /obj/structure/machinery/firealarm{ @@ -20245,25 +16486,17 @@ pixel_x = -9 }, /obj/item/clothing/suit/armor/vest, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/shiva/red/north, /area/varadero/interior/hall_N) "mXV" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/hall_SE) "mYd" = ( /obj/structure/bed/chair, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/north, /area/varadero/interior/electrical) "mYA" = ( /obj/structure/blocker/invisible_wall/water, @@ -20272,27 +16505,17 @@ climb_delay = 1; layer = 2.99 }, -/turf/open/gm/river/ocean{ - name = "deep ocean"; - default_name = "deep ocean" - }, +/turf/open/gm/river/ocean/deep_ocean, /area/varadero/exterior/farocean) "mYR" = ( /obj/item/facepaint/sunscreen_stick, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/lz1_near) "mYW" = ( -/turf/open/floor/shiva{ - dir = 1; - icon_state = "yellowcorners" - }, +/turf/open/floor/shiva/yellowcorners/north, /area/varadero/interior/cargo) "mZi" = ( -/turf/open/floor/shiva{ - icon_state = "green" - }, +/turf/open/floor/shiva/green, /area/varadero/interior/court) "mZk" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -20300,9 +16523,7 @@ }, /obj/structure/closet/crate, /obj/item/prop/magazine/dirty/torn/alt, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/security) "mZC" = ( /obj/structure/surface/table/woodentable{ @@ -20326,10 +16547,7 @@ pixel_x = 32 }, /obj/structure/disposalpipe/segment, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellowfull" - }, +/turf/open/floor/shiva/yellowfull/west, /area/varadero/interior/cargo) "mZH" = ( /obj/structure/blocker/invisible_wall/water, @@ -20343,33 +16561,24 @@ /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/varadero/interior/electrical) "nak" = ( /obj/structure/machinery/storm_siren{ dir = 4; pixel_x = -3 }, -/turf/open/gm/dirt{ - icon_state = "desert1" - }, +/turf/open/gm/dirt/desert1, /area/varadero/exterior/eastbeach) "nau" = ( /obj/structure/platform_decoration/kutjevo{ dir = 8 }, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/varadero/interior_protected/vessel) "nbA" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/hall_SE) "nbB" = ( /turf/open/auto_turf/sand_white/layer1, @@ -20384,17 +16593,12 @@ /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22" }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/shiva/red/west, /area/varadero/interior/morgue) "nch" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/security) "ncn" = ( /obj/item/trash/cheesie, @@ -20438,10 +16642,7 @@ color = "#6b675e" }, /obj/item/tool/surgery/retractor/predatorretractor, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/varadero/interior_protected/vessel) "nee" = ( /obj/structure/barricade/handrail/wire{ @@ -20456,10 +16657,7 @@ /obj/structure/barricade/handrail/wire{ dir = 8 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/varadero/exterior/lz1_near) "neD" = ( /obj/structure/fence, @@ -20473,9 +16671,7 @@ /area/varadero/interior_protected/caves/digsite) "neJ" = ( /obj/effect/landmark/objective_landmark/far, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/research) "neU" = ( /obj/structure/machinery/power/apc{ @@ -20483,42 +16679,32 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/hall_N) "nfk" = ( /obj/effect/decal/cleanable/blood/oil, /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance) "nfv" = ( /obj/structure/bedsheetbin, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/laundry) "nfX" = ( /obj/item/reagent_container/glass/bucket{ pixel_x = -11; pixel_y = -4 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/cargo) "nfZ" = ( /obj/structure/machinery/conveyor_switch, /obj/effect/decal/warning_stripes{ icon_state = "E" }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/varadero/interior/cargo) "ngg" = ( /turf/closed/wall/rock/brown, @@ -20533,16 +16719,11 @@ pixel_x = 16; pixel_y = 24 }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/hall_SE) "ngC" = ( /obj/structure/largecrate/random/mini/chest, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/varadero/interior/maintenance/north) "ngY" = ( /obj/item/stack/sheet/metal/med_small_stack, @@ -20607,10 +16788,7 @@ name = "support struts" }, /obj/structure/platform_decoration/kutjevo, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/exterior/pontoon_beach) "nih" = ( /obj/structure/prop/structure_lattice{ @@ -20619,9 +16797,7 @@ icon_state = "book-5"; name = "book case" }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/varadero/interior/library) "nio" = ( /turf/closed/wall/r_wall/elevator/gears, @@ -20634,9 +16810,7 @@ /area/varadero/exterior/lz2_near) "niF" = ( /obj/structure/closet/secure_closet/personal/patient, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/medical) "njC" = ( /obj/structure/platform_decoration/kutjevo{ @@ -20656,10 +16830,7 @@ pixel_x = 5; pixel_y = 3 }, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "wred" - }, +/turf/open/floor/shiva/wred/north, /area/varadero/interior/medical) "nkq" = ( /obj/effect/decal/remains/human, @@ -20667,9 +16838,7 @@ basecolor = "#20d450"; color = "#20d450" }, -/turf/open/shuttle{ - icon_state = "floor6" - }, +/turf/open/shuttle/red, /area/varadero/interior_protected/vessel) "nkF" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -20688,9 +16857,7 @@ pixel_y = 11 }, /obj/structure/barricade/handrail/wire, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/cargo) "nmC" = ( /obj/structure/machinery/cm_vending/sorted/boozeomat/chess{ @@ -20717,60 +16884,42 @@ }, /obj/structure/surface/table, /obj/effect/landmark/objective_landmark/far, -/turf/open/floor/shiva{ - icon_state = "snow_mat" - }, +/turf/open/floor/shiva/snow_mat, /area/varadero/interior/security) "nmQ" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/security) "nnb" = ( -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/varadero/exterior/eastbeach) "nni" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/cargo) "nnk" = ( /obj/item/tool/surgery/circular_saw/predatorbonesaw, -/turf/open/shuttle{ - icon_state = "floor6" - }, +/turf/open/shuttle/red, /area/varadero/interior_protected/vessel) "nnt" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper Underground Requesitions Lobby" }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/cargo) "nnw" = ( /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/hall_N) "nnF" = ( /obj/structure/machinery/vending/snack, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "greenfull" - }, +/turf/open/floor/shiva/greenfull/west, /area/varadero/interior/medical) "noj" = ( /obj/item/device/flashlight/lamp/tripod, @@ -20778,9 +16927,7 @@ /area/varadero/interior_protected/maintenance/south) "noC" = ( /obj/structure/pipes/vents/pump/on, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/comms3) "noR" = ( /obj/item/shard{ @@ -20794,9 +16941,7 @@ pixel_x = -3 }, /obj/structure/largecrate/random, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/north) "npF" = ( /obj/effect/landmark/survivor_spawner, @@ -20820,42 +16965,31 @@ /obj/item/stool{ icon_state = "stool_alt" }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellowfull" - }, +/turf/open/floor/shiva/yellowfull/west, /area/varadero/interior/technical_storage) "nqQ" = ( /obj/structure/window/framed/colony/reinforced, /turf/open/floor/plating/icefloor, /area/varadero/interior/dock_control) "nrd" = ( -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/varadero/interior/security) "nsc" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance) "nsl" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/varadero/interior/electrical) "nsn" = ( /obj/effect/decal/cleanable/blood/drip, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/cargo) "nsN" = ( /turf/open/gm/coast/south, @@ -20867,9 +17001,7 @@ /obj/structure/closet/hydrant{ pixel_y = 32 }, -/turf/open/floor/shiva{ - icon_state = "green" - }, +/turf/open/floor/shiva/green, /area/varadero/interior/hall_N) "nuv" = ( /obj/structure/prop/invuln/overhead_pipe{ @@ -20877,40 +17009,28 @@ pixel_x = 12; pixel_y = 13 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/maintenance/south) "nuQ" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "purple" - }, +/turf/open/floor/shiva/purple/west, /area/varadero/interior/research) "nvv" = ( /obj/structure/blocker/fog, -/turf/open/gm/river/ocean{ - name = "deep ocean"; - default_name = "deep ocean" - }, +/turf/open/gm/river/ocean/deep_ocean, /area/varadero/exterior/farocean) "nwi" = ( /obj/structure/machinery/power/port_gen/pacman/mrs, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/north) "nwq" = ( /turf/open/auto_turf/sand_white/layer1, /area/varadero/exterior/eastbeach) "nxl" = ( /obj/structure/closet/wardrobe/engineering_yellow, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/comms2) "nxW" = ( /obj/structure/window/framed/colony, @@ -20920,34 +17040,23 @@ /obj/structure/closet/hydrant{ pixel_x = -32 }, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "purple" - }, +/turf/open/floor/shiva/purple/east, /area/varadero/interior/hall_NW) "nzb" = ( /obj/structure/stairs/perspective{ color = "#6b675e"; icon_state = "p_stair_full" }, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/varadero/interior_protected/vessel) "nzd" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/varadero/interior/security) "nzr" = ( -/turf/open/floor/shiva{ - dir = 6; - icon_state = "green" - }, +/turf/open/floor/shiva/green/southeast, /area/varadero/interior/mess) "nzS" = ( /obj/structure/platform/kutjevo/smooth{ @@ -20962,10 +17071,7 @@ /obj/item/tool/pickaxe/drill{ pixel_y = 4 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/varadero/interior/comms1) "nBc" = ( /turf/open/gm/coast/beachcorner2/south_west, @@ -20973,10 +17079,7 @@ "nBj" = ( /obj/structure/closet/emcloset, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/north, /area/varadero/interior/technical_storage) "nBl" = ( /obj/structure/machinery/power/apc{ @@ -20984,10 +17087,7 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellowfull" - }, +/turf/open/floor/shiva/yellowfull/west, /area/varadero/interior/disposals) "nBD" = ( /obj/structure/surface/table, @@ -20997,9 +17097,7 @@ pixel_x = 16; pixel_y = 24 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/mess) "nBH" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/medidoor{ @@ -21008,21 +17106,15 @@ req_one_access = null; req_access = null }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/hall_NW) "nCl" = ( /obj/structure/fence, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/lz2_near) "nCE" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/shiva{ - icon_state = "green" - }, +/turf/open/floor/shiva/green, /area/varadero/interior/hall_SE) "nCF" = ( /turf/open/gm/coast/beachcorner/north_east, @@ -21048,9 +17140,7 @@ req_access_txt = "100"; req_one_access = null }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/court) "nDL" = ( /obj/structure/platform/kutjevo/smooth{ @@ -21066,9 +17156,7 @@ /obj/structure/prop/server_equipment/laptop/on{ pixel_x = -5 }, -/turf/open/shuttle{ - icon_state = "floor6" - }, +/turf/open/shuttle/red, /area/varadero/interior_protected/vessel) "nEY" = ( /obj/effect/decal/warning_stripes{ @@ -21080,15 +17168,11 @@ /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/varadero/interior/toilets) "nFg" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/disposals) "nFp" = ( /obj/structure/platform/kutjevo/smooth{ @@ -21100,35 +17184,23 @@ climb_delay = 1; layer = 2.99 }, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/interior/caves/north_research) "nFy" = ( /obj/structure/surface/table/reinforced/prison{ color = "#6b675e" }, /obj/item/tool/surgery/bonesetter/predatorbonesetter, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/varadero/interior_protected/vessel) "nFB" = ( /obj/structure/machinery/floodlight/landing, /obj/effect/decal/warning_stripes, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/varadero/exterior/lz1_near) "nFD" = ( /obj/structure/flora/bush/ausbushes/var3/fernybush, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/exterior/pontoon_beach) "nFH" = ( /obj/structure/platform/kutjevo/smooth{ @@ -21136,10 +17208,7 @@ climb_delay = 1; layer = 2.99 }, -/turf/open/gm/river/ocean{ - name = "deep ocean"; - default_name = "deep ocean" - }, +/turf/open/gm/river/ocean/deep_ocean, /area/varadero/exterior/comms4) "nFK" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, @@ -21156,10 +17225,7 @@ name = "\improper Underground Engineering Locker Room"; req_access_txt = "100" }, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/north, /area/varadero/interior/comms3) "nHy" = ( /obj/structure/platform/kutjevo/smooth{ @@ -21171,15 +17237,11 @@ /turf/open/gm/dirt, /area/varadero/exterior/pontoon_beach) "nHA" = ( -/turf/open/floor/shiva{ - icon_state = "red" - }, +/turf/open/floor/shiva/red, /area/varadero/interior/security) "nHC" = ( /obj/structure/girder/displaced, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/caves) "nHH" = ( /obj/structure/platform_decoration/kutjevo{ @@ -21194,10 +17256,7 @@ pixel_x = -17; pixel_y = -19 }, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/exterior/pontoon_beach) "nIF" = ( /obj/structure/reagent_dispensers/water_cooler/stacks{ @@ -21218,10 +17277,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/shiva{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/southeast, /area/varadero/interior/medical) "nJd" = ( /obj/item/stack/sheet/wood/small_stack, @@ -21233,15 +17289,11 @@ /area/varadero/exterior/lz1_near) "nKd" = ( /obj/structure/prop/turbine_extras, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/lz1_near) "nKf" = ( /obj/item/tool/hatchet, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/lz2_near) "nKr" = ( /obj/structure/surface/table, @@ -21249,9 +17301,7 @@ pixel_x = -1; pixel_y = 3 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/research) "nKy" = ( /obj/structure/surface/rack, @@ -21263,17 +17313,11 @@ /area/varadero/interior/maintenance/north) "nKR" = ( /obj/structure/prop/rock/brown, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/exterior/monsoon) "nLw" = ( /obj/structure/machinery/r_n_d/server, -/turf/open/floor/shiva{ - dir = 10; - icon_state = "purple" - }, +/turf/open/floor/shiva/purple/southwest, /area/varadero/interior/research) "nLH" = ( /obj/structure/prop/invuln/lattice_prop{ @@ -21285,22 +17329,14 @@ dir = 8; layer = 3.5 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/varadero/exterior/eastbeach) "nLI" = ( -/turf/open/floor/shiva{ - dir = 4; - icon_state = "snow_mat" - }, +/turf/open/floor/shiva/snow_mat/east, /area/varadero/interior/maintenance) "nMe" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/medical) "nMJ" = ( /obj/item/tool/pickaxe, @@ -21317,9 +17353,7 @@ req_access_txt = "100"; req_one_access = null }, -/turf/open/floor/shiva{ - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull, /area/varadero/interior/security) "nNz" = ( /obj/structure/machinery/light{ @@ -21337,9 +17371,7 @@ dir = 8 }, /obj/effect/decal/cleanable/blood/drip, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/hall_N) "nOg" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -21351,16 +17383,11 @@ name = "Underground Power Substation"; req_access_txt = "100" }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/electrical) "nOj" = ( /obj/effect/landmark/hunter_secondary, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/west, /area/varadero/interior/cargo) "nOz" = ( /obj/structure/surface/table/woodentable/fancy, @@ -21389,9 +17416,7 @@ "nOO" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/disposalpipe/segment, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/hall_N) "nOQ" = ( /obj/structure/safe/floor{ @@ -21411,10 +17436,7 @@ dir = 1 }, /obj/structure/largecrate/random, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/varadero/interior/comms1) "nPE" = ( /obj/structure/safe, @@ -21440,10 +17462,7 @@ dir = 4; pixel_x = -24 }, -/turf/open/floor/shiva{ - dir = 9; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/northwest, /area/varadero/interior/technical_storage) "nPI" = ( /obj/structure/prop/structure_lattice{ @@ -21457,19 +17476,14 @@ "nPK" = ( /obj/structure/closet/crate/trashcart, /obj/item/trash/chips, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/cargo) "nPR" = ( /obj/structure/machinery/light{ dir = 4 }, /obj/structure/largecrate/random/barrel/green, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/east, /area/varadero/interior/cargo) "nQo" = ( /obj/structure/machinery/conveyor, @@ -21487,10 +17501,7 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "purple" - }, +/turf/open/floor/shiva/purple/east, /area/varadero/interior/research) "nQR" = ( /obj/structure/platform/kutjevo/smooth{ @@ -21498,30 +17509,20 @@ climb_delay = 1; layer = 2.99 }, -/turf/open/gm/river/ocean{ - name = "deep ocean"; - default_name = "deep ocean" - }, +/turf/open/gm/river/ocean/deep_ocean, /area/varadero/exterior/comms4) "nRk" = ( /obj/structure/closet/crate, /obj/item/stack/sheet/metal/med_large_stack, /obj/item/trash/boonie, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/cargo) "nRy" = ( /obj/structure/bed/chair, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/shiva/green/north, /area/varadero/interior/mess) "nRH" = ( -/turf/open/gm/dirt{ - icon_state = "desert3" - }, +/turf/open/gm/dirt/desert3, /area/varadero/interior/maintenance/north) "nRP" = ( /obj/structure/machinery/power/apc{ @@ -21530,18 +17531,13 @@ start_charge = 0 }, /obj/item/cell/high, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/north, /area/varadero/interior/technical_storage) "nRT" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/shiva{ - icon_state = "wredfull" - }, +/turf/open/floor/shiva/wredfull, /area/varadero/interior/medical) "nRU" = ( /obj/structure/prop/invuln/lattice_prop{ @@ -21549,18 +17545,13 @@ pixel_x = 16; pixel_y = 24 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/eastbeach) "nRW" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "snow_mat" - }, +/turf/open/floor/shiva/snow_mat/north, /area/varadero/interior/medical) "nSi" = ( /obj/structure/largecrate/random/case, @@ -21579,9 +17570,7 @@ req_access_txt = "100"; req_one_access = null }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/laundry) "nTG" = ( /turf/closed/wall/r_wall, @@ -21604,10 +17593,7 @@ pixel_y = -9 }, /obj/effect/landmark/survivor_spawner, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull/west, /area/varadero/interior/maintenance) "nTS" = ( /obj/effect/decal/cleanable/blood/oil/streak, @@ -21615,10 +17601,7 @@ /area/varadero/interior/technical_storage) "nUf" = ( /obj/structure/window/framed/colony/reinforced, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/north, /area/varadero/interior/electrical) "nVk" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -21632,18 +17615,13 @@ pixel_x = -16; pixel_y = 13 }, -/turf/open/floor/shiva{ - icon_state = "snow_mat" - }, +/turf/open/floor/shiva/snow_mat, /area/varadero/interior/maintenance) "nVn" = ( /obj/structure/window/reinforced{ dir = 4 }, -/turf/open/floor/plating{ - dir = 4; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/east, /area/varadero/interior/disposals) "nVv" = ( /obj/structure/platform/kutjevo/smooth{ @@ -21660,26 +17638,17 @@ unacidable = 1; layer = 4.1 }, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/exterior/comms4) "nVy" = ( /obj/structure/closet/coffin, -/turf/open/floor/shiva{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/shiva/red/northeast, /area/varadero/interior/morgue) "nWg" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "green" - }, +/turf/open/floor/shiva/green/east, /area/varadero/interior/hall_NW) "nWS" = ( /obj/item/stack/tile/plasteel{ @@ -21696,18 +17665,13 @@ /obj/item/paper_bin{ pixel_y = 6 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/records) "nXR" = ( /obj/structure/machinery/landinglight/ds2{ dir = 8 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/varadero/exterior/lz1_near) "nXY" = ( /obj/structure/prop/ice_colony/dense/planter_box{ @@ -21716,40 +17680,28 @@ /obj/structure/flora/bush/desert{ pixel_y = 14 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/hall_NW) "nYx" = ( /obj/structure/machinery/storm_siren{ dir = 8; pixel_x = 3 }, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "purple" - }, +/turf/open/floor/shiva/purple/east, /area/varadero/interior/research) "nYy" = ( /obj/structure/machinery/light/small, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "snow_mat" - }, +/turf/open/floor/shiva/snow_mat/west, /area/varadero/interior/maintenance) "nYL" = ( /obj/effect/decal/warning_stripes{ icon_state = "N" }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/varadero/interior/cargo) "nZd" = ( /obj/effect/landmark/survivor_spawner, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/medical) "nZi" = ( /obj/structure/window/reinforced{ @@ -21770,10 +17722,7 @@ layer = 3.5; pixel_y = 13 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/west, /area/varadero/interior/medical) "nZk" = ( /obj/structure/desertdam/decals/road_edge{ @@ -21785,9 +17734,7 @@ /area/varadero/interior/court) "nZP" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/caves/east) "oam" = ( /obj/structure/disposalpipe/segment{ @@ -21797,10 +17744,7 @@ /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/shiva/green/north, /area/varadero/interior/hall_SE) "oaO" = ( /obj/effect/decal/cleanable/blood/drip, @@ -21811,18 +17755,14 @@ /turf/open/floor/wood, /area/varadero/interior/maintenance/north) "oaR" = ( -/turf/open/floor/wood{ - icon_state = "wood-broken6" - }, +/turf/open/floor/wood/wood_broken6, /area/varadero/interior/security) "obm" = ( /obj/structure/pipes/standard/manifold/hidden/green, /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/hall_SE) "obr" = ( /obj/effect/overlay/palmtree_r{ @@ -21838,24 +17778,16 @@ pixel_y = -18; indestructible = 1 }, -/turf/open/floor/plating/icefloor{ - dir = 1; - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate/north, /area/varadero/exterior/lz1_near) "obS" = ( /obj/structure/window/framed/colony/reinforced, -/turf/open/floor/shiva{ - icon_state = "snow_mat" - }, +/turf/open/floor/shiva/snow_mat, /area/varadero/interior/security) "ocr" = ( /obj/structure/bed, /obj/item/bedsheet/orange, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "snow_mat" - }, +/turf/open/floor/shiva/snow_mat/east, /area/varadero/interior/security) "ocz" = ( /obj/structure/prop/structure_lattice{ @@ -21871,9 +17803,7 @@ icon_state = "vent4"; pixel_y = 25 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/lz2_near) "ocQ" = ( /obj/structure/surface/table/reinforced/prison, @@ -21882,9 +17812,7 @@ pixel_x = 6; pixel_y = -4 }, -/turf/open/floor/shiva{ - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull, /area/varadero/interior/medical) "odw" = ( /obj/structure/machinery/photocopier, @@ -21899,26 +17827,18 @@ /obj/effect/decal/strata_decals/grime/grime2{ dir = 8 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "purplefull" - }, +/turf/open/floor/shiva/purplefull/west, /area/varadero/interior/research) "odZ" = ( /obj/structure/closet/toolcloset, /obj/structure/barricade/handrail/wire, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/west, /area/varadero/interior/cargo) "oef" = ( /obj/effect/decal/warning_stripes/asteroid{ icon_state = "warning_s" }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/security) "oep" = ( /obj/structure/platform/kutjevo/smooth{ @@ -21933,9 +17853,7 @@ dir = 8 }, /obj/structure/barricade/wooden, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance) "oeO" = ( /obj/structure/surface/table, @@ -21943,9 +17861,7 @@ pixel_x = 6; pixel_y = 9 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/maintenance/south) "ofC" = ( /obj/structure/flora/bush/ausbushes/var3/fullgrass, @@ -21962,9 +17878,7 @@ /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/electrical) "ogj" = ( /obj/structure/surface/table/woodentable, @@ -21981,10 +17895,7 @@ /area/varadero/interior/library) "ogq" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/shiva/green/north, /area/varadero/interior/hall_N) "ogW" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -21996,7 +17907,7 @@ /area/varadero/interior/hall_SE) "ohi" = ( /obj/structure/surface/table/reinforced/prison, -/obj/item/handcuffs, +/obj/item/restraint/handcuffs, /obj/structure/machinery/flasher_button{ id = "sec_checkpoint"; pixel_y = 24 @@ -22006,10 +17917,7 @@ name = "Checkpoint Lockdown"; pixel_y = 36 }, -/turf/open/floor/shiva{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/shiva/red/northwest, /area/varadero/interior/security) "ohC" = ( /obj/structure/platform/kutjevo/smooth{ @@ -22018,15 +17926,13 @@ layer = 2.99 }, /turf/open/gm/coast/beachcorner2/south_west, -/area/varadero/exterior/pontoon_beach) +/area/varadero/exterior/pontoon_beach/lz) "ohM" = ( /obj/structure/barricade/wooden{ dir = 8 }, /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/north) "oiB" = ( /obj/structure/machinery/firealarm{ @@ -22045,49 +17951,32 @@ pixel_x = -13; pixel_y = 3 }, -/turf/open/floor/prison/chapel_carpet{ - dir = 1; - icon_state = "doubleside" - }, +/turf/open/floor/prison/chapel_carpet/doubleside/north, /area/varadero/interior/chapel) "oiM" = ( -/turf/open/floor/shiva{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/west, /area/varadero/interior/administration) "ojm" = ( /obj/structure/closet/toolcloset, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/varadero/exterior/lz1_near) "ojF" = ( /obj/item/tool/surgery/bonegel/predatorbonegel, -/turf/open/shuttle{ - icon_state = "floor6" - }, +/turf/open/shuttle/red, /area/varadero/interior_protected/vessel) "ojG" = ( /obj/structure/barricade/wooden, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance) "ojJ" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/structure/window/framed/colony, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance) "oke" = ( -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/cargo) "okf" = ( /obj/structure/surface/rack, @@ -22096,31 +17985,23 @@ pixel_y = 5 }, /obj/item/storage/firstaid/adv, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/north) "okB" = ( /obj/structure/surface/rack, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/shiva{ - icon_state = "purple" - }, +/turf/open/floor/shiva/purple, /area/varadero/interior/research) "okI" = ( /obj/structure/surface/rack, /obj/item/implantpad, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/security) "okJ" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/security) "ola" = ( /obj/structure/machinery/power/apc{ @@ -22128,15 +18009,10 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/lz2_near) "olD" = ( -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/east, /area/varadero/exterior/lz1_near) "olP" = ( /obj/structure/machinery/door/airlock/almayer/generic{ @@ -22144,9 +18020,7 @@ name = "\improper Underground Requesitions Freezer"; req_access_txt = "100" }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/varadero/interior/cargo) "olU" = ( /obj/structure/machinery/door/airlock/almayer/security/glass{ @@ -22158,9 +18032,7 @@ /area/varadero/interior/administration) "omj" = ( /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/north) "onj" = ( /obj/structure/flora/bush/ausbushes/var3/fullgrass, @@ -22170,10 +18042,7 @@ /obj/structure/machinery/landinglight/ds2/delayone{ dir = 4 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/varadero/exterior/lz1_near) "ooe" = ( /obj/structure/surface/rack, @@ -22186,9 +18055,7 @@ pixel_x = 12; pixel_y = 13 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/north) "oos" = ( /obj/structure/bed/chair/wood/normal{ @@ -22196,12 +18063,13 @@ }, /turf/open/floor/carpet, /area/varadero/interior/library) +"ooP" = ( +/turf/open/gm/river/shallow_ocean_shallow_ocean, +/area/varadero/exterior/pontoon_beach/lz) "opd" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/reagent_dispensers/beerkeg, -/turf/open/floor/wood{ - icon_state = "wood-broken3" - }, +/turf/open/floor/wood/wood_broken3, /area/varadero/interior/beach_bar) "opP" = ( /obj/structure/platform/kutjevo/smooth{ @@ -22212,10 +18080,7 @@ /obj/item/shard{ icon_state = "medium" }, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/exterior/pool) "opW" = ( /obj/structure/surface/table/woodentable/fancy, @@ -22241,18 +18106,13 @@ req_access_txt = "100"; req_one_access = null }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellowfull" - }, +/turf/open/floor/shiva/yellowfull/west, /area/varadero/interior/cargo) "orb" = ( /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/security) "orr" = ( /obj/effect/landmark/lv624/fog_blocker{ @@ -22280,10 +18140,7 @@ dir = 1; icon_state = "pipe-c" }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "greenfull" - }, +/turf/open/floor/shiva/greenfull/west, /area/varadero/interior/hall_SE) "osn" = ( /obj/effect/landmark/xeno_hive_spawn, @@ -22294,17 +18151,13 @@ /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/electrical) "ost" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/hall_N) "osE" = ( /obj/structure/largecrate/random/barrel, @@ -22329,9 +18182,7 @@ dir = 8 }, /obj/structure/platform_decoration/kutjevo, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/comms1) "otO" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -22342,24 +18193,17 @@ /area/varadero/interior/caves/east) "ouP" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/security) "ouV" = ( /obj/effect/spawner/random/bomb_supply, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/north, /area/varadero/interior/hall_SE) "ovp" = ( /obj/structure/platform_decoration/kutjevo{ dir = 1 }, -/turf/open/floor/shiva{ - icon_state = "snow_mat" - }, +/turf/open/floor/shiva/snow_mat, /area/varadero/interior/maintenance) "ovC" = ( /turf/open/floor/carpet, @@ -22380,9 +18224,7 @@ pixel_x = 1; pixel_y = 7 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/maintenance/south) "owM" = ( /obj/structure/blocker/forcefield/multitile_vehicles, @@ -22419,9 +18261,7 @@ pixel_y = 11 }, /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/maintenance/south) "oxi" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -22440,10 +18280,7 @@ /obj/structure/machinery/storm_siren{ pixel_y = 5 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "greenfull" - }, +/turf/open/floor/shiva/greenfull/west, /area/varadero/interior/hall_N) "oyb" = ( /obj/structure/prop/structure_lattice{ @@ -22452,15 +18289,11 @@ icon_state = "book-3"; name = "book case" }, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/varadero/interior/library) "oyi" = ( /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/varadero/interior/research) "oyl" = ( /obj/structure/stairs/perspective{ @@ -22472,17 +18305,13 @@ /area/varadero/exterior/lz2_near) "oyv" = ( /obj/item/device/flashlight, -/turf/open/gm/dirt{ - icon_state = "desert2" - }, +/turf/open/gm/dirt/desert2, /area/varadero/exterior/lz2_near) "oyx" = ( /obj/structure/bed/chair{ icon_state = "chair_alt" }, -/turf/open/floor/shiva{ - icon_state = "blue" - }, +/turf/open/floor/shiva/blue, /area/varadero/interior/hall_SE) "oyT" = ( /obj/structure/surface/table/reinforced/prison, @@ -22508,16 +18337,11 @@ /area/varadero/interior/security) "ozz" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/north, /area/varadero/interior/hall_SE) "ozC" = ( /obj/item/weapon/gun/shotgun/pump, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/hall_SE) "ozD" = ( /obj/structure/platform/kutjevo/smooth{ @@ -22525,19 +18349,14 @@ climb_delay = 1; layer = 2.99 }, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/exterior/comms4) "oAm" = ( /obj/structure/toilet{ dir = 1 }, /obj/structure/machinery/light/small, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/varadero/interior/toilets) "oAC" = ( /obj/effect/decal/cleanable/blood/oil, @@ -22563,9 +18382,7 @@ /area/varadero/exterior/monsoon) "oBj" = ( /obj/structure/machinery/vending/cigarette/colony, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/hall_N) "oBq" = ( /obj/item/shard{ @@ -22580,10 +18397,7 @@ req_access_txt = "100"; req_one_access = null }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellowfull" - }, +/turf/open/floor/shiva/yellowfull/west, /area/varadero/interior/cargo) "oBG" = ( /obj/structure/machinery/light{ @@ -22592,10 +18406,7 @@ /obj/structure/machinery/storm_siren{ pixel_y = 5 }, -/turf/open/floor/shiva{ - dir = 5; - icon_state = "green" - }, +/turf/open/floor/shiva/green/northeast, /area/varadero/interior/court) "oBJ" = ( /obj/structure/machinery/shower{ @@ -22606,10 +18417,7 @@ /area/varadero/interior/laundry) "oBP" = ( /obj/structure/closet/emcloset, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/east, /area/varadero/interior/electrical) "oBQ" = ( /obj/structure/bed/chair{ @@ -22620,33 +18428,23 @@ pixel_x = 16; pixel_y = 24 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/west, /area/varadero/interior/hall_SE) "oBR" = ( /obj/structure/machinery/washing_machine, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/laundry) "oCi" = ( /obj/item/shard{ icon_state = "medium"; name = "ice shard" }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/hall_SE) "oCy" = ( /obj/structure/closet/secure_closet/security, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/shiva{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/shiva/red/southeast, /area/varadero/interior/security) "oCN" = ( /obj/structure/machinery/computer/cameras{ @@ -22656,21 +18454,14 @@ dir = 8 }, /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull/west, /area/varadero/interior/security) "oCR" = ( -/turf/open/gm/dirt{ - icon_state = "desert0" - }, +/turf/open/gm/dirt/desert0, /area/varadero/exterior/lz1_near) "oDz" = ( /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/hall_SE) "oDB" = ( /obj/structure/flora/bush/ausbushes/var3/ywflowers, @@ -22681,9 +18472,7 @@ /area/varadero/exterior/eastbeach) "oDN" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/shiva{ - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow, /area/varadero/interior/electrical) "oDS" = ( /obj/structure/sign/safety/hazard{ @@ -22709,9 +18498,7 @@ dir = 4 }, /obj/structure/prop/invuln/minecart_tracks, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/lz1_near) "oET" = ( /turf/closed/wall/r_wall/unmeltable, @@ -22719,32 +18506,22 @@ "oEX" = ( /obj/structure/closet/crate, /obj/item/clothing/head/helmet, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/maintenance/south) "oFd" = ( /obj/structure/bed/chair/office/dark{ dir = 4; icon_state = "chair" }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "greenfull" - }, +/turf/open/floor/shiva/greenfull/west, /area/varadero/interior/hall_SE) "oFq" = ( -/turf/open/floor/shiva{ - dir = 4; - icon_state = "green" - }, +/turf/open/floor/shiva/green/east, /area/varadero/interior/mess) "oGc" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/disposalpipe/segment, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/hall_SE) "oGv" = ( /turf/open/gm/dirt, @@ -22764,16 +18541,11 @@ dir = 4 }, /obj/structure/disposalpipe/junction, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/hall_SE) "oIC" = ( /obj/structure/janitorialcart, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellowfull" - }, +/turf/open/floor/shiva/yellowfull/west, /area/varadero/interior/electrical) "oJb" = ( /obj/structure/stairs/perspective{ @@ -22790,29 +18562,20 @@ name = "Underground Hangar Power Substation"; req_access = null }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/varadero/interior/maintenance/north) "oJv" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/administration) "oJB" = ( -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/varadero/interior/cargo) "oJW" = ( /obj/structure/closet/firecloset/full, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/security) "oJX" = ( /obj/item/stack/sheet/metal, @@ -22856,35 +18619,24 @@ pixel_y = 24 }, /obj/structure/largecrate/random, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/hall_SE) "oKy" = ( /obj/structure/surface/table/reinforced/prison{ color = "#6b675e" }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/varadero/interior_protected/vessel) "oKN" = ( /obj/item/weapon/gun/shotgun/pump, /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/shiva/red/west, /area/varadero/interior/hall_N) "oLa" = ( /obj/item/trash/barcardine, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/varadero/exterior/lz1_near) "oLM" = ( /obj/structure/sign/safety/airlock{ @@ -22904,10 +18656,7 @@ icon_state = "hr_kutjevo"; name = "support struts" }, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/exterior/pontoon_beach) "oMa" = ( /obj/structure/surface/table, @@ -22931,62 +18680,42 @@ /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/east, /area/varadero/interior/hall_SE) "oMs" = ( -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/hall_N) "oNa" = ( /obj/structure/blocker/invisible_wall/water, /obj/structure/flora/bush/ausbushes/var3/stalkybush, /obj/structure/platform_decoration/kutjevo, -/turf/open/gm/river/ocean{ - name = "deep ocean"; - default_name = "deep ocean" - }, +/turf/open/gm/river/ocean/deep_ocean, /area/varadero/exterior/farocean) "oNy" = ( /turf/open/shuttle/elevator, /area/varadero/interior/hall_N) "oOF" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "purple" - }, +/turf/open/floor/shiva/purple/north, /area/varadero/interior/research) "oPb" = ( /obj/effect/landmark/xeno_hive_spawn, /obj/effect/landmark/ert_spawns/groundside_xeno, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/varadero/interior_protected/vessel) "oPe" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor/shiva{ - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow, /area/varadero/interior/cargo) "oPr" = ( /obj/structure/surface/table/reinforced/prison, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/shiva{ - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull, /area/varadero/interior/medical) "oPQ" = ( -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/caves/north_research) "oPV" = ( /turf/open/floor/plating, @@ -22999,9 +18728,7 @@ pixel_x = 4; pixel_y = 7 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/cargo) "oRB" = ( /obj/structure/closet/hydrant{ @@ -23012,9 +18739,7 @@ pixel_x = -2; pixel_y = 6 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/hall_NW) "oRD" = ( /obj/structure/prop/rock/brown, @@ -23030,16 +18755,12 @@ }, /obj/effect/landmark/objective_landmark/far, /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/hall_SE) "oSe" = ( /obj/structure/surface/table, /obj/item/stack/sheet/metal/med_large_stack, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/electrical) "oSX" = ( /obj/structure/window/framed/colony/reinforced, @@ -23061,10 +18782,7 @@ /obj/structure/surface/table/reinforced/prison, /obj/item/device/taperecorder, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/shiva{ - dir = 10; - icon_state = "blue" - }, +/turf/open/floor/shiva/blue/southwest, /area/varadero/interior/administration) "oTX" = ( /obj/structure/platform/kutjevo/smooth{ @@ -23072,10 +18790,7 @@ climb_delay = 1; layer = 2.99 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/varadero/interior/comms1) "oUh" = ( /obj/structure/cable/heavyduty{ @@ -23090,35 +18805,23 @@ /turf/open/floor/plating, /area/varadero/interior_protected/caves/digsite) "oUp" = ( -/turf/open/floor/shiva{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/shiva/red/southeast, /area/varadero/interior/morgue) "oUO" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/inflatable, /obj/item/inflatable/door, /obj/item/storage/box/engineer, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/north, /area/varadero/interior/electrical) "oVm" = ( /obj/structure/surface/rack, /obj/item/storage/toolbox/electrical, /obj/item/storage/toolbox/electrical, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/west, /area/varadero/interior/comms3) "oVn" = ( -/turf/open/floor/shiva{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/shiva/blue/east, /area/varadero/interior/technical_storage) "oVp" = ( /obj/structure/prop/invuln/minecart_tracks, @@ -23128,18 +18831,13 @@ /obj/structure/platform_decoration/kutjevo{ dir = 8 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/comms1) "oVr" = ( /obj/structure/disposalpipe/segment{ dir = 8 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "redcorners" - }, +/turf/open/floor/shiva/redcorners/west, /area/varadero/interior/security) "oVt" = ( /obj/effect/landmark/monkey_spawn, @@ -23151,9 +18849,7 @@ name = "Construction Light" }, /obj/effect/decal/warning_stripes, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/eastocean) "oWg" = ( /obj/structure/prop/rock/brown, @@ -23183,15 +18879,11 @@ /area/varadero/interior_protected/caves/digsite) "oWO" = ( /obj/structure/toilet, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/varadero/interior/security) "oWU" = ( /obj/effect/landmark/yautja_teleport, -/turf/open/shuttle{ - icon_state = "floor6" - }, +/turf/open/shuttle/red, /area/varadero/interior_protected/vessel) "oXf" = ( /turf/open/floor/carpet, @@ -23200,16 +18892,10 @@ /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "purple" - }, +/turf/open/floor/shiva/purple/west, /area/varadero/interior/research) "oXm" = ( -/turf/open/floor/shiva{ - dir = 8; - icon_state = "snow_mat" - }, +/turf/open/floor/shiva/snow_mat/west, /area/varadero/interior/maintenance) "oXo" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, @@ -23217,10 +18903,7 @@ /area/varadero/interior_protected/caves/digsite) "oXp" = ( /obj/structure/machinery/vending/snack, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/shiva/red/north, /area/varadero/interior/security) "oXw" = ( /obj/docking_port/stationary/marine_dropship/lz1{ @@ -23241,42 +18924,30 @@ pixel_y = 24 }, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/mess) "oXZ" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull/west, /area/varadero/interior/administration) "oYB" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/shiva/red/north, /area/varadero/interior/medical) "oZw" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/disposalpipe/segment, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/hall_N) "oZA" = ( /obj/structure/prop/invuln/overhead_pipe{ dir = 4; pixel_y = 13 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/north) "oZJ" = ( /obj/structure/fence, @@ -23287,10 +18958,7 @@ dir = 4; pixel_x = -3 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/varadero/exterior/lz1_near) "paB" = ( /obj/structure/surface/table/reinforced/prison, @@ -23301,9 +18969,7 @@ dir = 8; health = 80 }, -/turf/open/floor/shiva{ - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull, /area/varadero/interior/medical) "pbd" = ( /obj/structure/surface/table/woodentable, @@ -23332,10 +18998,7 @@ /turf/open/floor/wood, /area/varadero/interior/administration) "pbp" = ( -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/north, /area/varadero/exterior/lz1_near) "pbt" = ( /turf/closed/wall, @@ -23348,9 +19011,7 @@ req_access_txt = "100"; req_one_access = null }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/security) "pbM" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ @@ -23358,9 +19019,7 @@ name = "\improper Underground Staff Canteen" }, /obj/effect/decal/cleanable/blood/drip, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/mess) "pbT" = ( /obj/structure/prop/rock/brown, @@ -23370,9 +19029,7 @@ "pco" = ( /obj/structure/surface/rack, /obj/item/tool/surgery/scalpel, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance) "pcH" = ( /obj/effect/decal/cleanable/blood{ @@ -23386,24 +19043,17 @@ /obj/structure/prop/ice_colony/ground_wire{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/varadero/interior_protected/vessel) "pcK" = ( /obj/structure/reagent_dispensers/watertank, -/turf/open/floor/shiva{ - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow, /area/varadero/interior/technical_storage) "pdc" = ( /obj/structure/largecrate/random{ anchored = 1 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/caves) "pdn" = ( /obj/item/tool/shovel/spade, @@ -23415,15 +19065,10 @@ pixel_x = 2; pixel_y = 8 }, -/turf/open/floor/shiva{ - icon_state = "green" - }, +/turf/open/floor/shiva/green, /area/varadero/interior/hall_SE) "pdK" = ( -/turf/open/gm/river/ocean{ - name = "deep ocean"; - default_name = "deep ocean" - }, +/turf/open/gm/river/ocean/deep_ocean, /area/varadero/exterior/lz2_near) "pea" = ( /obj/structure/prop/rock/brown, @@ -23446,19 +19091,13 @@ icon_state = "hr_kutjevo"; name = "support struts" }, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/exterior/pool) "peA" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/west, /area/varadero/interior/medical) "pfd" = ( /turf/open/gm/coast/beachcorner/north_east, @@ -23467,25 +19106,18 @@ /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/security) "pfL" = ( /obj/structure/surface/table/reinforced/prison{ color = "#6b675e" }, /obj/item/trash/plate, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/varadero/interior_protected/vessel) "pfR" = ( /obj/structure/reagent_dispensers/beerkeg/alt, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/varadero/interior/cargo) "pgg" = ( /obj/item/tool/pickaxe, @@ -23502,10 +19134,7 @@ "phd" = ( /obj/structure/filingcabinet, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/shiva/red/west, /area/varadero/interior/security) "phk" = ( /obj/structure/flora/bush/ausbushes/var3/stalkybush, @@ -23529,10 +19158,7 @@ pixel_x = -16; pixel_y = 24 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/west, /area/varadero/interior/hall_SE) "pja" = ( /obj/structure/bed/chair/comfy/black{ @@ -23548,17 +19174,13 @@ pixel_y = 28 }, /obj/effect/decal/cleanable/vomit, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/varadero/interior/toilets) "pjm" = ( /obj/effect/decal/remains/xeno{ pixel_y = -25 }, -/turf/open/shuttle{ - icon_state = "floor6" - }, +/turf/open/shuttle/red, /area/varadero/interior_protected/vessel) "pjn" = ( /obj/structure/pipes/vents/pump{ @@ -23569,9 +19191,7 @@ /area/varadero/interior/library) "pjs" = ( /obj/structure/bed/chair, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/research) "pjD" = ( /turf/open/gm/coast/beachcorner2/south_west, @@ -23593,10 +19213,7 @@ desc = "A high-power hydroelectric generator."; name = "hydroelectric generator" }, -/turf/open/gm/river/ocean{ - name = "deep ocean"; - default_name = "deep ocean" - }, +/turf/open/gm/river/ocean/deep_ocean, /area/varadero/exterior/farocean) "pku" = ( /obj/structure/desertdam/decals/road_edge{ @@ -23615,33 +19232,23 @@ /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/cargo) "pkT" = ( /obj/structure/machinery/power/port_gen/pacman, -/turf/open/floor{ - icon_state = "bcircuit" - }, +/turf/open/floor/bcircuit, /area/varadero/interior/electrical) "pkX" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/north, /area/varadero/interior/electrical) "plc" = ( /obj/structure/surface/rack, /obj/item/clipboard, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "purple" - }, +/turf/open/floor/shiva/purple/east, /area/varadero/interior/research) "pll" = ( /obj/structure/prop/invuln/lattice_prop{ @@ -23653,10 +19260,7 @@ /area/varadero/exterior/eastbeach) "plm" = ( /obj/effect/decal/cleanable/blood/gibs/xeno, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/varadero/exterior/lz1_near) "plq" = ( /turf/open/gm/coast/beachcorner2/north_east, @@ -23674,17 +19278,13 @@ pixel_x = 1; pixel_y = -2 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/comms4) "plN" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/cargo) "plT" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, @@ -23696,9 +19296,7 @@ dir = 4 }, /obj/effect/decal/cleanable/blood, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/varadero/interior/toilets) "pmy" = ( /obj/structure/surface/table/reinforced/prison, @@ -23713,28 +19311,18 @@ pixel_y = 11 }, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull/west, /area/varadero/interior/administration) "pmM" = ( -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/monsoon) "pmW" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/varadero/exterior/eastbeach) "pnn" = ( /obj/item/ammo_magazine/shotgun/slugs, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/research) "pnL" = ( /obj/structure/machinery/light, @@ -23742,10 +19330,7 @@ icon_state = "pottedplant_22"; pixel_y = 8 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellowfull" - }, +/turf/open/floor/shiva/yellowfull/west, /area/varadero/interior/comms3) "pol" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -23757,10 +19342,7 @@ pixel_x = 16; pixel_y = -8 }, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "green" - }, +/turf/open/floor/shiva/green/east, /area/varadero/interior/hall_SE) "pox" = ( /obj/structure/machinery/storm_siren{ @@ -23779,9 +19361,7 @@ pixel_x = 13; pixel_y = 8 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/maintenance/south) "poE" = ( /obj/structure/stairs/perspective{ @@ -23789,18 +19369,13 @@ dir = 1; icon_state = "p_stair_full" }, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/north, /area/varadero/interior/electrical) "poU" = ( /obj/structure/disposalpipe/segment{ dir = 8 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/hall_SE) "ppl" = ( /obj/effect/landmark/xeno_spawn, @@ -23810,19 +19385,18 @@ /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/security) +"ppU" = ( +/obj/structure/flora/bush/ausbushes/var3/stalkybush, +/turf/open/gm/river/ocean/deep_ocean, +/area/varadero/exterior/pontoon_beach/lz) "pqf" = ( /obj/structure/window/phoronreinforced{ dir = 4; icon_state = "phoronrwindow" }, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/varadero/interior_protected/vessel) "pqj" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -23832,45 +19406,30 @@ /area/varadero/interior/records) "pqC" = ( /obj/effect/decal/cleanable/blood/drip, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "green" - }, +/turf/open/floor/shiva/green/west, /area/varadero/interior/hall_SE) "pqG" = ( /obj/structure/machinery/firealarm{ dir = 8; pixel_x = -24 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "green" - }, +/turf/open/floor/shiva/green/west, /area/varadero/interior/court) "pqH" = ( /obj/structure/closet/secure_closet/engineering_electrical, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/shiva/blue/north, /area/varadero/interior/technical_storage) "pqO" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/shiva/red/west, /area/varadero/interior/morgue) "pqY" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22"; pixel_y = 8 }, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "wred" - }, +/turf/open/floor/shiva/wred/east, /area/varadero/interior/medical) "prh" = ( /obj/structure/disposalpipe/segment{ @@ -23878,10 +19437,7 @@ icon_state = "pipe-c" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/shiva/red/west, /area/varadero/interior/medical) "prl" = ( /obj/item/grown/log, @@ -23897,10 +19453,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/shiva/green/north, /area/varadero/interior/hall_SE) "psb" = ( /obj/item/trash/cigbutt/ucigbutt{ @@ -23919,9 +19472,7 @@ /area/varadero/exterior/lz1_near) "psk" = ( /obj/structure/closet/secure_closet/bar, -/turf/open/floor/wood{ - icon_state = "wood-broken" - }, +/turf/open/floor/wood/wood_broken, /area/varadero/interior/beach_bar) "pth" = ( /obj/structure/surface/rack, @@ -23932,9 +19483,7 @@ /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/surface/rack, /obj/effect/spawner/random/toolbox, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance) "ptp" = ( /obj/structure/platform/kutjevo/smooth{ @@ -23942,16 +19491,11 @@ climb_delay = 1; layer = 2.99 }, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/exterior/comms4) "ptw" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/laundry) "ptC" = ( /obj/structure/machinery/door/airlock/almayer/maint{ @@ -23963,32 +19507,22 @@ /area/varadero/interior/maintenance/north) "ptM" = ( /obj/effect/spawner/random/toolbox, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/varadero/interior/laundry) "ptP" = ( /obj/structure/surface/table, /obj/item/device/flashlight/lamp/green{ pixel_y = 4 }, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "snow_mat" - }, +/turf/open/floor/shiva/snow_mat/east, /area/varadero/interior/security) "ptY" = ( /obj/item/stack/sheet/metal, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/north, /area/varadero/interior/hall_SE) "pun" = ( /obj/effect/decal/cleanable/blood/gibs, -/turf/open/gm/dirt{ - icon_state = "desert3" - }, +/turf/open/gm/dirt/desert3, /area/varadero/exterior/pontoon_beach) "puq" = ( /obj/item/lightstick/variant/planted, @@ -24006,10 +19540,7 @@ req_access_txt = "100"; req_one_access = null }, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "snow_mat" - }, +/turf/open/floor/shiva/snow_mat/east, /area/varadero/interior/medical) "pvs" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -24018,9 +19549,7 @@ /obj/structure/machinery/storm_siren{ pixel_y = 5 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance) "pvQ" = ( /obj/structure/flora/bush/ausbushes/var3/stalkybush, @@ -24033,10 +19562,7 @@ /obj/item/reagent_container/food/drinks/bottle/orangejuice{ pixel_y = 6 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/varadero/interior_protected/vessel) "pxa" = ( /obj/structure/surface/table/reinforced/prison, @@ -24052,9 +19578,7 @@ /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/varadero/interior/cargo) "pyk" = ( /obj/item/reagent_container/food/snacks/wrapped/barcardine{ @@ -24066,53 +19590,35 @@ }, /obj/effect/landmark/objective_landmark/close, /obj/structure/surface/table, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/north) "pyz" = ( /obj/effect/landmark/corpsespawner/colonist/burst, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/maintenance/south) "pAa" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/shiva/blue/west, /area/varadero/interior/administration) "pAp" = ( -/turf/open/floor/plating/icefloor{ - dir = 1; - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate/north, /area/varadero/exterior/lz1_near) "pAX" = ( /obj/structure/prop/rock/brown, -/turf/open/gm/river/ocean{ - name = "deep ocean"; - default_name = "deep ocean" - }, +/turf/open/gm/river/ocean/deep_ocean, /area/varadero/exterior/pontoon_beach) "pAZ" = ( /obj/structure/surface/rack, /obj/item/stack/sheet/glass/phoronglass{ amount = 32 }, -/turf/open/floor{ - icon_state = "bcircuit" - }, +/turf/open/floor/bcircuit, /area/varadero/interior/electrical) "pBb" = ( /obj/structure/reagent_dispensers/water_cooler, -/turf/open/floor/shiva{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/shiva/red/southwest, /area/varadero/interior/security) "pBf" = ( /obj/structure/prop/rock/brown{ @@ -24126,10 +19632,7 @@ layer = 2.1; name = "lattice" }, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/interior_protected/vessel) "pBo" = ( /obj/structure/coatrack, @@ -24141,9 +19644,7 @@ /area/varadero/interior/security) "pBx" = ( /obj/item/device/flashlight, -/turf/open/floor/shiva{ - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow, /area/varadero/interior/cargo) "pBK" = ( /obj/structure/filingcabinet{ @@ -24152,18 +19653,13 @@ /obj/structure/filingcabinet{ pixel_x = 8 }, -/turf/open/floor/shiva{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/shiva/red/northeast, /area/varadero/interior/administration) "pBS" = ( /obj/effect/decal/cleanable/cobweb, /obj/structure/surface/rack, /obj/item/ammo_magazine/shotgun/buckshot, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/security) "pCa" = ( /obj/structure/blocker/invisible_wall/water, @@ -24175,10 +19671,7 @@ /obj/structure/largecrate/random/mini/ammo{ pixel_y = 4 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "purplefull" - }, +/turf/open/floor/shiva/purplefull/west, /area/varadero/interior/research) "pCf" = ( /obj/structure/disposalpipe/segment{ @@ -24191,24 +19684,18 @@ dir = 1; name = "\improper Underground Main Hallway" }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/hall_N) "pCp" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/hall_NW) "pCO" = ( /obj/structure/surface/rack, /obj/item/stack/sheet/mineral/phoron/medium_stack, -/turf/open/floor{ - icon_state = "bcircuit" - }, +/turf/open/floor/bcircuit, /area/varadero/interior/electrical) "pCP" = ( /obj/structure/machinery/door/airlock/almayer/medical/glass{ @@ -24224,10 +19711,7 @@ /obj/item/stack/cable_coil/blue, /obj/item/stack/rods, /obj/item/storage/donut_box, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/north, /area/varadero/interior/electrical) "pDl" = ( /obj/structure/girder, @@ -24238,9 +19722,7 @@ dir = 8 }, /obj/structure/disposalpipe/segment, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/hall_NW) "pDF" = ( /obj/structure/machinery/storm_siren{ @@ -24249,21 +19731,24 @@ }, /obj/structure/closet/firecloset, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/varadero/exterior/lz1_near) "pDW" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/comms2) "pDX" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /turf/open/auto_turf/sand_white/layer1, /area/varadero/interior_protected/caves/digsite) +"pEo" = ( +/obj/structure/platform/kutjevo/smooth{ + dir = 8; + climb_delay = 1; + layer = 2.99 + }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, +/area/varadero/exterior/pontoon_beach/lz) "pEE" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -24271,9 +19756,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/hall_SE) "pFd" = ( /obj/item/storage/pouch/construction, @@ -24286,10 +19769,7 @@ /area/varadero/exterior/eastbeach) "pFF" = ( /obj/effect/decal/cleanable/blood/gibs/xeno/limb, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/varadero/exterior/lz1_near) "pGc" = ( /obj/structure/window/framed/colony/reinforced, @@ -24300,10 +19780,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull/west, /area/varadero/interior/hall_SE) "pGj" = ( /obj/structure/prop/rock/brown, @@ -24320,25 +19797,18 @@ /turf/open/auto_turf/sand_white/layer1, /area/varadero/interior_protected/maintenance/south) "pGS" = ( -/turf/open/floor/shiva{ - dir = 1; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/north, /area/varadero/interior/hall_SE) "pIe" = ( /obj/item/stack/sheet/wood, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/north) "pIj" = ( /obj/structure/surface/rack, /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/security) "pIz" = ( /obj/structure/surface/table, @@ -24362,9 +19832,7 @@ pixel_x = 5; pixel_y = 15 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/varadero/interior/laundry) "pIC" = ( /obj/structure/closet/secure_closet/security_empty, @@ -24373,23 +19841,17 @@ /area/varadero/interior/security) "pJf" = ( /obj/structure/barricade/wooden, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/north) "pJn" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/security) "pJp" = ( /obj/structure/closet/toolcloset, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/north) "pJs" = ( /obj/effect/decal/cleanable/blood, @@ -24404,9 +19866,7 @@ pixel_x = 16; pixel_y = 24 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/research) "pJF" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, @@ -24414,17 +19874,12 @@ /area/varadero/interior_protected/caves) "pJQ" = ( /obj/item/book/manual/evaguide, -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/varadero/interior/library) "pJZ" = ( /obj/structure/surface/table, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/shiva/blue/north, /area/varadero/interior/administration) "pKg" = ( /obj/item/book/manual/nuclear, @@ -24445,10 +19900,7 @@ /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/varadero/exterior/lz1_near) "pLF" = ( /obj/structure/pipes/standard/manifold/hidden/green{ @@ -24464,17 +19916,11 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/shiva/red/east, /area/varadero/interior/administration) "pMe" = ( /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/east, /area/varadero/interior/morgue) "pMy" = ( /obj/structure/window/reinforced{ @@ -24497,25 +19943,18 @@ }, /obj/item/toy/plush/farwa, /obj/structure/machinery/light, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/medical) "pMG" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/west, /area/varadero/exterior/lz1_near) "pNa" = ( /obj/structure/catwalk, /obj/structure/barricade/handrail/wire{ layer = 3.01 }, -/turf/open/gm/river/desert/deep{ - base_river_slowdown = 0 - }, +/turf/open/gm/river/desert/deep/no_slowdown, /area/varadero/interior/maintenance/north) "pNf" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -24540,10 +19979,7 @@ /obj/structure/machinery/firealarm{ pixel_y = 24 }, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/north, /area/varadero/interior/electrical) "pNR" = ( /obj/effect/decal/cleanable/blood/drip, @@ -24569,35 +20005,25 @@ /obj/item/shard{ icon_state = "medium" }, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/shiva/blue/east, /area/varadero/interior/maintenance) "pOa" = ( /obj/structure/largecrate/supply, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/maintenance/south) "pOg" = ( /obj/structure/machinery/storm_siren{ dir = 8; pixel_x = 3 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/security) "pOz" = ( /obj/structure/machinery/computer/card{ dir = 8 }, /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/shiva{ - dir = 6; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/southeast, /area/varadero/interior/disposals) "pOC" = ( /obj/item/tool/wirecutters/clippers, @@ -24610,15 +20036,11 @@ pixel_x = -4; pixel_y = 13 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/laundry) "pPl" = ( /obj/structure/machinery/light, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/varadero/interior/comms1) "pQp" = ( /turf/closed/wall/r_wall, @@ -24628,9 +20050,7 @@ dir = 4 }, /obj/structure/largecrate/random, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/maintenance/south) "pQF" = ( /obj/structure/disposalpipe/segment{ @@ -24641,16 +20061,10 @@ dir = 8; pixel_x = 3 }, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/east, /area/varadero/interior/technical_storage) "pRa" = ( -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/exterior/farocean) "pRb" = ( /obj/effect/decal/cleanable/blood/drip, @@ -24661,10 +20075,7 @@ /obj/structure/machinery/door/window/northright{ name = "Disposals Chute" }, -/turf/open/floor/plating{ - dir = 1; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/north, /area/varadero/interior/disposals) "pRs" = ( /obj/structure/prop/souto_land/pole{ @@ -24679,16 +20090,10 @@ pixel_x = -2; pixel_y = 3 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "snow_mat" - }, +/turf/open/floor/shiva/snow_mat/west, /area/varadero/interior/security) "pRP" = ( -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellowfull" - }, +/turf/open/floor/shiva/yellowfull/west, /area/varadero/interior/hall_SE) "pRR" = ( /obj/structure/platform/kutjevo/smooth{ @@ -24703,18 +20108,13 @@ /obj/structure/barricade/handrail/wire{ layer = 3.1 }, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/exterior/pool) "pRV" = ( /turf/open/gm/coast/beachcorner2/north_east, /area/varadero/exterior/comms4) "pRX" = ( -/turf/open/floor/shiva{ - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow, /area/varadero/interior/hall_SE) "pSg" = ( /obj/structure/inflatable/door, @@ -24725,18 +20125,13 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/hall_NW) "pSK" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/west, /area/varadero/interior/cargo) "pTc" = ( /obj/structure/machinery/door/airlock/strata/autoname{ @@ -24744,9 +20139,7 @@ locked = 1; name = "\improper Engine Room" }, -/turf/open/shuttle{ - icon_state = "floor6" - }, +/turf/open/shuttle/red, /area/varadero/interior_protected/vessel) "pTg" = ( /obj/structure/machinery/light{ @@ -24757,10 +20150,7 @@ /area/varadero/interior/maintenance/north) "pTI" = ( /obj/structure/flora/bush/ausbushes/var3/fullgrass, -/turf/open/gm/river/ocean{ - name = "deep ocean"; - default_name = "deep ocean" - }, +/turf/open/gm/river/ocean/deep_ocean, /area/varadero/exterior/lz2_near) "pTO" = ( /obj/effect/decal/warning_stripes{ @@ -24782,10 +20172,7 @@ climb_delay = 1; layer = 2.99 }, -/turf/open/gm/river/ocean{ - name = "deep ocean"; - default_name = "deep ocean" - }, +/turf/open/gm/river/ocean/deep_ocean, /area/varadero/exterior/comms4) "pUi" = ( /obj/structure/platform/kutjevo/smooth{ @@ -24815,26 +20202,20 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/shiva{ - icon_state = "wredfull" - }, +/turf/open/floor/shiva/wredfull, /area/varadero/interior/medical) "pVl" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/varadero/interior/research) "pVz" = ( /obj/structure/barricade/handrail/wire{ dir = 8 }, /obj/item/device/flashlight/lamp/tripod, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/comms4) "pVF" = ( /obj/structure/surface/rack, @@ -24842,10 +20223,7 @@ desc = "A timeless piece of technology from another era, of spacemen who once plunged into the 12th Bay and beyond." }, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "purple" - }, +/turf/open/floor/shiva/purple/east, /area/varadero/interior/research) "pVN" = ( /obj/structure/window/framed/colony, @@ -24856,10 +20234,7 @@ density = 0; pixel_y = 17 }, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/shiva/blue/north, /area/varadero/interior/administration) "pXp" = ( /obj/structure/disposalpipe/junction{ @@ -24869,25 +20244,18 @@ /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/hall_N) "pXG" = ( /obj/structure/closet/emcloset, -/turf/open/floor/shiva{ - dir = 10; - icon_state = "green" - }, +/turf/open/floor/shiva/green/southwest, /area/varadero/interior/hall_SE) "pXL" = ( /obj/structure/machinery/light{ dir = 1 }, /obj/structure/machinery/vending/snack, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/hall_N) "pXT" = ( /obj/structure/machinery/landinglight/ds1/spoke{ @@ -24905,14 +20273,10 @@ pixel_x = 16; pixel_y = 24 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/cargo) "pYv" = ( -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/technical_storage) "pYx" = ( /obj/structure/window/reinforced{ @@ -24941,6 +20305,9 @@ }, /turf/open/floor/wood, /area/varadero/interior/bunks) +"pYH" = ( +/turf/open/gm/coast/beachcorner2/south_west, +/area/varadero/exterior/pontoon_beach/lz) "pYI" = ( /obj/effect/landmark/lv624/fog_blocker{ time_to_dispel = 25000 @@ -24949,9 +20316,7 @@ /turf/open/gm/dirt, /area/varadero/exterior/monsoon) "pYK" = ( -/turf/open/gm/dirt{ - icon_state = "desert1" - }, +/turf/open/gm/dirt/desert1, /area/varadero/exterior/monsoon) "pYV" = ( /obj/structure/pipes/vents/pump, @@ -24960,10 +20325,7 @@ pixel_x = -16; pixel_y = 24 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "green" - }, +/turf/open/floor/shiva/green/west, /area/varadero/interior/mess) "pZl" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -24972,15 +20334,11 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/electrical) "pZD" = ( /obj/structure/closet/crate, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance) "pZS" = ( /obj/effect/landmark/lv624/fog_blocker{ @@ -25000,9 +20358,7 @@ "qaX" = ( /obj/structure/window_frame/colony/reinforced, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/caves/east) "qaY" = ( /obj/structure/sign/safety/water, @@ -25021,10 +20377,7 @@ dir = 10; icon_state = "p_stair_full" }, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/varadero/interior_protected/vessel) "qcD" = ( /obj/structure/bed/chair{ @@ -25036,9 +20389,7 @@ pixel_x = -10; pixel_y = -9 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/comms2) "qcN" = ( /turf/closed/wall, @@ -25047,15 +20398,10 @@ /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/records) "qdk" = ( -/turf/open/floor/shiva{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/north, /area/varadero/interior/comms3) "qdL" = ( /obj/structure/surface/table/reinforced/prison, @@ -25105,9 +20451,7 @@ /area/varadero/interior/bunks) "qeK" = ( /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/hall_SE) "qfb" = ( /obj/structure/closet/crate/ammo/alt, @@ -25121,9 +20465,7 @@ pixel_y = -5 }, /obj/item/ammo_magazine/revolver/cmb, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/cargo) "qfr" = ( /turf/open/gm/dirt, @@ -25149,10 +20491,7 @@ pixel_x = -4; pixel_y = 9 }, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/exterior/pool) "qgm" = ( /turf/open/gm/coast/beachcorner2/north_east, @@ -25162,18 +20501,14 @@ /obj/effect/decal/warning_stripes/asteroid{ icon_state = "warning_s" }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/hall_N) "qgR" = ( /obj/item/storage/firstaid/regular{ pixel_x = 4; pixel_y = -6 }, -/turf/open/floor/shiva{ - icon_state = "red" - }, +/turf/open/floor/shiva/red, /area/varadero/interior/hall_N) "qhF" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -25187,9 +20522,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/administration) "qhO" = ( /obj/effect/spawner/random/tool, @@ -25209,19 +20542,14 @@ /area/varadero/exterior/lz1_near) "qhZ" = ( /obj/structure/window/framed/colony/reinforced, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/security) "qio" = ( /turf/closed/wall/rock/brown, /area/varadero/interior/maintenance) "qir" = ( /obj/structure/machinery/cm_vending/sorted/medical/blood, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "wred" - }, +/turf/open/floor/shiva/wred/north, /area/varadero/interior/medical) "qis" = ( /obj/item/paper{ @@ -25238,10 +20566,7 @@ /obj/item/stack/sheet/plasteel{ amount = 24 }, -/turf/open/floor/shiva{ - dir = 10; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/southwest, /area/varadero/interior/cargo) "qiP" = ( /obj/structure/bed/chair/comfy/beige{ @@ -25251,24 +20576,18 @@ pixel_x = 15; pixel_y = -9 }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/technical_storage) "qjd" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/laundry) "qjg" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/remains/human, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/security) "qjU" = ( /obj/effect/overlay/palmtree_r{ @@ -25282,9 +20601,7 @@ /area/varadero/exterior/eastbeach) "qkF" = ( /obj/structure/largecrate/random/secure, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/north) "qlj" = ( /obj/structure/prop/invuln/lattice_prop{ @@ -25292,15 +20609,11 @@ pixel_x = 16; pixel_y = 24 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/research) "qlw" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/monsoon) "qlx" = ( /obj/item/stack/tile/plasteel, @@ -25309,9 +20622,7 @@ "qlW" = ( /obj/structure/surface/table, /obj/item/trash/plate, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/mess) "qmF" = ( /obj/structure/platform/kutjevo/smooth{ @@ -25323,24 +20634,16 @@ dir = 4; pixel_x = -3 }, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/exterior/pontoon_beach) "qnf" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/disposalpipe/junction, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/administration) "qnm" = ( /obj/structure/closet/emcloset, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellowfull" - }, +/turf/open/floor/shiva/yellowfull/west, /area/varadero/interior/hall_SE) "qnp" = ( /obj/item/shard{ @@ -25358,9 +20661,7 @@ req_access_txt = "100"; req_one_access = null }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/hall_SE) "qnW" = ( /obj/structure/closet/fireaxecabinet, @@ -25377,15 +20678,10 @@ /area/varadero/exterior/comms4) "qoy" = ( /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/shiva{ - icon_state = "purple" - }, +/turf/open/floor/shiva/purple, /area/varadero/interior/research) "qoE" = ( -/turf/open/floor{ - dir = 5; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/northeast, /area/varadero/exterior/lz1_near) "qoI" = ( /turf/open/gm/coast/beachcorner/north_west, @@ -25397,16 +20693,11 @@ /obj/structure/machinery/alarm{ pixel_y = 24 }, -/turf/open/floor/shiva{ - dir = 9; - icon_state = "green" - }, +/turf/open/floor/shiva/green/northwest, /area/varadero/interior/court) "qpD" = ( /obj/item/device/multitool, -/turf/open/shuttle{ - icon_state = "floor6" - }, +/turf/open/shuttle/red, /area/varadero/interior_protected/vessel) "qpK" = ( /obj/structure/machinery/door/airlock/almayer/maint{ @@ -25417,9 +20708,7 @@ /turf/open/floor/plating, /area/varadero/interior/maintenance/north) "qpZ" = ( -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/disposals) "qqs" = ( /obj/structure/pipes/standard/manifold/hidden/green{ @@ -25428,14 +20717,10 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/electrical) "qqA" = ( -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance) "qqJ" = ( /obj/structure/sign/safety/bulkhead_door, @@ -25449,10 +20734,7 @@ /area/varadero/exterior/lz1_near) "qqM" = ( /obj/structure/largecrate/random/mini, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/varadero/interior/maintenance/north) "qqR" = ( /obj/structure/prop/rock/brown{ @@ -25461,10 +20743,7 @@ name = "sturdy rock(s)"; desc = "A solidified collection of local minerals. When melted, becomes a substance best known as lava. These look particularly durable." }, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/exterior/pontoon_beach) "qsb" = ( /obj/structure/platform/kutjevo/smooth{ @@ -25488,26 +20767,19 @@ dir = 4; pixel_x = 24 }, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/shiva/red/east, /area/varadero/interior/security) "qto" = ( /obj/structure/machinery/door/airlock/almayer/security/glass{ name = "\improper Underground Security Interrogation"; req_access_txt = "100" }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/security) "qtr" = ( /obj/structure/surface/rack, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/north) "qtv" = ( /obj/structure/prop/invuln/lattice_prop{ @@ -25526,10 +20798,7 @@ /obj/item/clothing/ears/earmuffs{ pixel_y = 18 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "purplefull" - }, +/turf/open/floor/shiva/purplefull/west, /area/varadero/interior/research) "qul" = ( /turf/closed/wall/rock/brown, @@ -25540,9 +20809,7 @@ /area/varadero/interior/hall_SE) "quP" = ( /obj/effect/landmark/static_comms/net_two, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/security) "quR" = ( /obj/item/stack/sheet/metal, @@ -25554,27 +20821,20 @@ /area/varadero/interior/administration) "qvv" = ( /obj/effect/landmark/corpsespawner/colonist, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/east, /area/varadero/interior/morgue) "qvO" = ( /obj/structure/machinery/light/small{ dir = 1 }, /obj/structure/surface/rack, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/security) "qvQ" = ( /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/mess) "qvS" = ( /turf/open/gm/coast/south, @@ -25584,36 +20844,24 @@ icon_state = "pottedplant_22"; pixel_y = 8 }, -/turf/open/floor/shiva{ - dir = 6; - icon_state = "blue" - }, +/turf/open/floor/shiva/blue/southeast, /area/varadero/interior/administration) "qwE" = ( /obj/effect/decal/cleanable/blood, /turf/open/auto_turf/sand_white/layer1, /area/varadero/interior_protected/caves/swcaves) "qwQ" = ( -/turf/open/gm/river/ocean{ - name = "deep ocean"; - default_name = "deep ocean" - }, +/turf/open/gm/river/ocean/deep_ocean, /area/varadero/exterior/pontoon_beach) "qwU" = ( /obj/structure/xenoautopsy/tank/hugger, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/varadero/interior_protected/vessel) "qxa" = ( /obj/structure/surface/rack, /obj/item/reagent_container/glass/bucket/mopbucket, /obj/item/tool/mop, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellowfull" - }, +/turf/open/floor/shiva/yellowfull/west, /area/varadero/interior/electrical) "qxb" = ( /obj/structure/bed/alien{ @@ -25636,15 +20884,10 @@ layer = 3.5; pixel_y = 13 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/varadero/interior_protected/vessel) "qxu" = ( -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/hall_N) "qyk" = ( /obj/structure/machinery/light{ @@ -25671,16 +20914,12 @@ /obj/structure/machinery/storm_siren{ pixel_y = 5 }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/disposals) "qyH" = ( /obj/structure/window/framed/colony/reinforced, /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/caves) "qyJ" = ( /turf/open/gm/coast/beachcorner/south_west, @@ -25693,9 +20932,7 @@ /obj/structure/bed/chair/wood/normal{ dir = 4 }, -/turf/open/floor/wood{ - icon_state = "wood-broken3" - }, +/turf/open/floor/wood/wood_broken3, /area/varadero/interior/beach_bar) "qza" = ( /obj/structure/stairs/perspective{ @@ -25712,9 +20949,7 @@ /area/varadero/interior_protected/vessel) "qzb" = ( /obj/structure/window/framed/colony, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/north) "qzd" = ( /obj/structure/filingcabinet/filingcabinet, @@ -25723,10 +20958,7 @@ pixel_x = -11; pixel_y = 20 }, -/turf/open/floor/shiva{ - dir = 9; - icon_state = "blue" - }, +/turf/open/floor/shiva/blue/northwest, /area/varadero/interior/administration) "qzi" = ( /obj/structure/sign/safety/high_voltage, @@ -25751,9 +20983,7 @@ locked = 1; name = "\improper External Airlock" }, -/turf/open/shuttle{ - icon_state = "floor6" - }, +/turf/open/shuttle/red, /area/varadero/interior_protected/vessel) "qAg" = ( /obj/effect/landmark/monkey_spawn, @@ -25767,10 +20997,7 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "snow_mat" - }, +/turf/open/floor/shiva/snow_mat/east, /area/varadero/interior/security) "qAy" = ( /obj/item/tool/shovel, @@ -25793,11 +21020,8 @@ climb_delay = 1; layer = 2.99 }, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, -/area/varadero/exterior/pontoon_beach) +/turf/open/gm/river/shallow_ocean_shallow_ocean, +/area/varadero/exterior/pontoon_beach/lz) "qAS" = ( /obj/effect/landmark/corpsespawner/colonist/burst, /turf/open/auto_turf/sand_white/layer1, @@ -25809,9 +21033,7 @@ pixel_y = 20 }, /obj/effect/spawner/random/tool, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance) "qBy" = ( /obj/structure/desertdam/decals/road_edge{ @@ -25828,9 +21050,7 @@ pixel_x = -5; pixel_y = -6 }, -/turf/open/floor/shiva{ - icon_state = "snow_mat" - }, +/turf/open/floor/shiva/snow_mat, /area/varadero/interior/maintenance) "qBQ" = ( /obj/structure/coatrack, @@ -25854,10 +21074,7 @@ /area/varadero/interior/research) "qCk" = ( /obj/structure/machinery/vending/snack, -/turf/open/floor/shiva{ - dir = 5; - icon_state = "blue" - }, +/turf/open/floor/shiva/blue/northeast, /area/varadero/interior/administration) "qCE" = ( /obj/structure/surface/table/woodentable/poor, @@ -25872,9 +21089,7 @@ /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/hall_NW) "qCT" = ( /obj/structure/inflatable, @@ -25890,10 +21105,7 @@ climb_delay = 1; layer = 2.99 }, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/exterior/comms4) "qDh" = ( /obj/structure/prop/invuln/lattice_prop{ @@ -25901,9 +21113,7 @@ pixel_x = 16; pixel_y = 24 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/research) "qDr" = ( /obj/structure/platform/kutjevo/smooth{ @@ -25914,33 +21124,23 @@ /area/varadero/exterior/pontoon_beach) "qDs" = ( /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/shiva{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/shiva/red/southeast, /area/varadero/interior/security) "qDt" = ( /obj/structure/disposalpipe/segment{ dir = 4; icon_state = "pipe-c" }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/hall_SE) "qDv" = ( /obj/structure/bed/chair, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/medical) "qDw" = ( /obj/structure/filingcabinet, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/shiva{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/shiva/red/southwest, /area/varadero/interior/security) "qDR" = ( /obj/item/device/flashlight, @@ -25951,9 +21151,7 @@ pixel_x = -4; pixel_y = -2 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/security) "qEc" = ( /obj/structure/platform_decoration/kutjevo{ @@ -25974,9 +21172,7 @@ /area/varadero/interior/hall_SE) "qEn" = ( /obj/item/stack/sheet/metal, -/turf/open/shuttle{ - icon_state = "floor6" - }, +/turf/open/shuttle/red, /area/varadero/interior_protected/vessel) "qEt" = ( /obj/structure/platform/kutjevo/smooth{ @@ -25988,23 +21184,16 @@ /area/varadero/exterior/eastbeach) "qEG" = ( /obj/structure/largecrate/supply/supplies/mre, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/maintenance/south) "qFe" = ( /obj/effect/overlay/palmtree_r{ icon_state = "palm2" }, -/turf/open/gm/dirt{ - icon_state = "desert1" - }, +/turf/open/gm/dirt/desert1, /area/varadero/exterior/pontoon_beach) "qFC" = ( -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/west, /area/varadero/exterior/lz1_near) "qFI" = ( /obj/item/tool/wet_sign, @@ -26018,61 +21207,43 @@ dir = 8; icon_state = "pipe-j2" }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/administration) "qFZ" = ( /turf/open/floor/wood, /area/varadero/interior/bunks) "qGE" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/west, /area/varadero/interior/cargo) "qHc" = ( /turf/open/gm/grass/grass1/weedable, /area/varadero/interior/caves/north_research) "qHl" = ( /obj/structure/prop/fishing/line/long/part2, -/turf/open/gm/river/ocean{ - name = "deep ocean"; - default_name = "deep ocean" - }, +/turf/open/gm/river/ocean/deep_ocean, /area/varadero/exterior/pontoon_beach) "qHu" = ( /obj/effect/landmark/hunter_primary, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "green" - }, +/turf/open/floor/shiva/green/east, /area/varadero/interior/hall_N) "qHF" = ( /obj/structure/disposalpipe/segment{ dir = 8; icon_state = "pipe-c" }, -/turf/open/floor/shiva{ - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow, /area/varadero/interior/disposals) "qHJ" = ( /obj/structure/largecrate/random/barrel/blue, /turf/open/shuttle/elevator, /area/varadero/interior/hall_N) "qId" = ( -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellowfull" - }, +/turf/open/floor/shiva/yellowfull/west, /area/varadero/interior/electrical) "qIi" = ( /obj/item/tool/wet_sign, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/hall_SE) "qIF" = ( /turf/open/gm/dirt, @@ -26080,17 +21251,13 @@ "qJF" = ( /obj/structure/surface/rack, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance) "qKb" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22" }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/hall_N) "qKq" = ( /obj/structure/closet/secure_closet/RD, @@ -26121,10 +21288,7 @@ climb_delay = 1; layer = 2.99 }, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/exterior/pontoon_beach) "qLq" = ( /obj/structure/prop/ice_colony/dense/planter_box/plated{ @@ -26135,9 +21299,7 @@ icon_state = "pointybush_2"; pixel_y = 11 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/hall_SE) "qLs" = ( /obj/structure/desertdam/decals/road_edge{ @@ -26153,21 +21315,15 @@ pixel_x = -5; pixel_y = -6 }, -/turf/open/shuttle{ - icon_state = "floor6" - }, +/turf/open/shuttle/red, /area/varadero/interior_protected/vessel) "qMl" = ( /obj/structure/machinery/light, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/hall_N) "qMr" = ( /obj/item/tool/minihoe, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/maintenance/south) "qMD" = ( /obj/structure/surface/table/reinforced/prison, @@ -26180,10 +21336,7 @@ pixel_y = 4 }, /obj/item/device/cassette_tape/pop2, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "purplefull" - }, +/turf/open/floor/shiva/purplefull/west, /area/varadero/interior/research) "qMW" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -26193,14 +21346,10 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/research) "qNu" = ( -/turf/open/gm/dirt{ - icon_state = "desert1" - }, +/turf/open/gm/dirt/desert1, /area/varadero/exterior/lz2_near) "qNC" = ( /obj/structure/surface/table, @@ -26212,17 +21361,11 @@ pixel_x = 4; pixel_y = -1 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellowfull" - }, +/turf/open/floor/shiva/yellowfull/west, /area/varadero/interior/cargo) "qNE" = ( /obj/structure/largecrate/random/secure, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/varadero/exterior/lz1_near) "qNI" = ( /obj/structure/surface/table/reinforced/prison, @@ -26235,17 +21378,13 @@ pixel_y = -4 }, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/medical) "qNP" = ( /obj/structure/bed/chair/comfy/beige{ dir = 8 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/hall_SE) "qNX" = ( /turf/open/gm/coast/beachcorner/north_west, @@ -26258,9 +21397,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/administration) "qOF" = ( /obj/item/tool/pen/blue, @@ -26281,10 +21418,7 @@ climb_delay = 1; layer = 2.99 }, -/turf/open/gm/river/ocean{ - name = "deep ocean"; - default_name = "deep ocean" - }, +/turf/open/gm/river/ocean/deep_ocean, /area/varadero/exterior/comms4) "qOS" = ( /obj/item/reagent_container/glass/bucket, @@ -26300,10 +21434,7 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/shiva{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/shiva/red/northwest, /area/varadero/interior/security) "qPs" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -26312,24 +21443,17 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/hall_N) "qPG" = ( /obj/structure/barricade/handrail/wire{ dir = 4 }, -/turf/open/floor/shiva{ - dir = 5; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/northeast, /area/varadero/interior/disposals) "qQd" = ( /obj/structure/closet/secure_closet/engineering_electrical, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/security) "qQe" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -26339,18 +21463,13 @@ dir = 1; pixel_y = -24 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/varadero/interior/toilets) "qQk" = ( /obj/structure/barricade/handrail/wire{ layer = 3.1 }, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/shiva/blue/north, /area/varadero/interior/maintenance) "qQt" = ( /obj/structure/window/reinforced{ @@ -26380,9 +21499,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/varadero/interior/research) "qQN" = ( /obj/structure/prop/invuln/lattice_prop{ @@ -26390,22 +21507,15 @@ pixel_x = 16; pixel_y = 24 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "green" - }, +/turf/open/floor/shiva/green/west, /area/varadero/interior/hall_SE) "qRe" = ( /obj/effect/decal/cleanable/blood/oil/streak, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/varadero/interior/comms1) "qRi" = ( /obj/item/device/flashlight/lamp/tripod, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/caves/north_research) "qRy" = ( /obj/structure/desertdam/decals/road_edge{ @@ -26415,15 +21525,11 @@ /area/varadero/interior/court) "qRP" = ( /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/security) "qSj" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/shiva{ - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow, /area/varadero/interior/comms3) "qSJ" = ( /obj/structure/machinery/power/apc{ @@ -26431,9 +21537,7 @@ pixel_x = 24; start_charge = 0 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/morgue) "qSR" = ( /obj/structure/closet/crate/trashcart, @@ -26455,9 +21559,7 @@ indestructible = 1; unacidable = 1 }, -/turf/open/gm/dirt{ - icon_state = "desert1" - }, +/turf/open/gm/dirt/desert1, /area/varadero/exterior/monsoon) "qTs" = ( /obj/structure/platform/kutjevo/smooth{ @@ -26479,14 +21581,10 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/records) "qTE" = ( -/turf/open/gm/dirt{ - icon_state = "desert1" - }, +/turf/open/gm/dirt/desert1, /area/varadero/exterior/eastbeach) "qTZ" = ( /obj/structure/flora/bush/ausbushes/var3/stalkybush, @@ -26497,17 +21595,12 @@ name = "\improper Underground Security"; req_access_txt = "100" }, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/shiva/red/north, /area/varadero/interior/security) "qUj" = ( /obj/structure/surface/rack, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/research) "qUK" = ( /obj/structure/surface/rack, @@ -26515,9 +21608,7 @@ /turf/open/floor/interior/plastic, /area/varadero/interior_protected/caves/digsite) "qUQ" = ( -/turf/open/floor/shiva{ - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull, /area/varadero/interior/medical) "qUW" = ( /obj/effect/decal/cleanable/blood/drip, @@ -26525,9 +21616,7 @@ /area/varadero/interior/maintenance/north) "qVb" = ( /obj/item/stack/cable_coil/cyan, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/eastbeach) "qVl" = ( /obj/structure/closet/secure_closet/personal/patient, @@ -26536,26 +21625,20 @@ layer = 2.991 }, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/medical) "qVp" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/research) "qVD" = ( /obj/item/reagent_container/glass/bucket{ pixel_x = 8; pixel_y = -6 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/lz1_near) "qVL" = ( /obj/structure/pipes/standard/manifold/hidden/green{ @@ -26568,34 +21651,24 @@ dir = 4; pixel_x = -3 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/north) "qVS" = ( /obj/structure/window/reinforced/tinted{ dir = 4 }, /obj/structure/surface/table, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "snow_mat" - }, +/turf/open/floor/shiva/snow_mat/east, /area/varadero/interior/security) "qWt" = ( /obj/structure/filingcabinet/security, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/shiva/red/north, /area/varadero/interior/hall_N) "qWw" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/maintenance/south) "qWC" = ( /turf/open/floor/shiva, @@ -26604,23 +21677,15 @@ /obj/structure/machinery/firealarm{ pixel_y = 24 }, -/turf/open/floor/shiva{ - dir = 5; - icon_state = "green" - }, +/turf/open/floor/shiva/green/northeast, /area/varadero/interior/mess) "qXO" = ( /obj/structure/window_frame/colony/reinforced, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "snow_mat" - }, +/turf/open/floor/shiva/snow_mat/north, /area/varadero/interior/maintenance) "qYd" = ( /obj/effect/landmark/xeno_spawn, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/maintenance/south) "qYg" = ( /obj/item/stack/tile/plasteel{ @@ -26635,25 +21700,18 @@ pixel_x = 3; pixel_y = 7 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/maintenance/south) "qZr" = ( /obj/effect/landmark/yautja_teleport, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/varadero/interior/toilets) "qZH" = ( /obj/structure/machinery/conveyor_switch, /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellowfull" - }, +/turf/open/floor/shiva/yellowfull/west, /area/varadero/interior/cargo) "qZJ" = ( /obj/item/tool/warning_cone, @@ -26673,9 +21731,7 @@ /area/varadero/exterior/lz2_near) "rbd" = ( /obj/item/stack/sheet/wood/small_stack, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/north) "rbp" = ( /obj/structure/prop/invuln/minecart_tracks{ @@ -26694,18 +21750,14 @@ }, /obj/structure/platform_decoration/kutjevo, /obj/structure/blocker/invisible_wall/water, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/oob) "rbU" = ( /turf/open/floor/wood, /area/varadero/interior/research) "rco" = ( /obj/structure/inflatable/door, -/turf/open/shuttle{ - icon_state = "floor6" - }, +/turf/open/shuttle/red, /area/varadero/interior_protected/vessel) "rcq" = ( /obj/structure/machinery/cm_vending/sorted/medical/wall_med/limited, @@ -26719,10 +21771,7 @@ /obj/structure/bed/chair/office/light{ dir = 4 }, -/turf/open/floor/shiva{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/southeast, /area/varadero/interior/medical) "rdq" = ( /obj/item/tool/wrench{ @@ -26734,9 +21783,7 @@ pixel_x = 17; pixel_y = 16 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/cargo) "rdx" = ( /obj/structure/pipes/standard/manifold/hidden/green{ @@ -26756,27 +21803,19 @@ /turf/open/gm/coast/east, /area/varadero/exterior/comms4) "res" = ( -/turf/open/gm/dirt{ - icon_state = "desert3" - }, +/turf/open/gm/dirt/desert3, /area/varadero/exterior/eastbeach) "rex" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22"; pixel_y = 8 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "purplefull" - }, +/turf/open/floor/shiva/purplefull/west, /area/varadero/interior/research) "reA" = ( /obj/structure/xenoautopsy/tank/broken, /obj/effect/decal/cleanable/blood/xeno, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/varadero/interior_protected/vessel) "reG" = ( /turf/closed/wall/r_wall/elevator{ @@ -26788,9 +21827,7 @@ icon_state = "pottedplant_22"; pixel_y = 8 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/north) "rft" = ( /obj/structure/disposalpipe/segment, @@ -26798,29 +21835,21 @@ icon_state = "pottedplant_22"; pixel_y = 8 }, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/shiva/blue/north, /area/varadero/interior/administration) "rfV" = ( /obj/structure/flora/bush/ausbushes/var3/sparsegrass, /turf/open/gm/dirt, /area/varadero/exterior/pontoon_beach) "rgb" = ( -/turf/open/floor/shiva{ - dir = 8; - icon_state = "green" - }, +/turf/open/floor/shiva/green/west, /area/varadero/interior/hall_NW) "rgf" = ( /obj/structure/platform/kutjevo/smooth{ climb_delay = 1; layer = 2.99 }, -/turf/open/gm/dirt{ - icon_state = "desert1" - }, +/turf/open/gm/dirt/desert1, /area/varadero/exterior/lz1_near) "rgg" = ( /obj/structure/girder/displaced, @@ -26831,23 +21860,15 @@ pixel_y = 32 }, /obj/structure/pipes/vents/pump, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/shiva/blue/north, /area/varadero/interior/administration) "rgz" = ( -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/caves/swcaves) "rgZ" = ( /obj/item/tool/kitchen/knife, /obj/structure/surface/table, -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/east, /area/varadero/exterior/lz1_near) "rhu" = ( /obj/effect/decal/cleanable/blood/drip, @@ -26876,10 +21897,7 @@ /area/varadero/exterior/lz2_near) "rja" = ( /obj/item/toy/beach_ball, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/exterior/pool) "rjn" = ( /turf/closed/wall/r_wall/elevator{ @@ -26888,9 +21906,7 @@ /area/varadero/interior/records) "rjo" = ( /obj/structure/prop/rock/brown, -/turf/open/gm/dirt{ - icon_state = "desert2" - }, +/turf/open/gm/dirt/desert2, /area/varadero/exterior/lz1_near) "rjE" = ( /obj/structure/surface/table/reinforced/prison, @@ -26905,10 +21921,7 @@ pixel_x = -7; pixel_y = 8 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "purplefull" - }, +/turf/open/floor/shiva/purplefull/west, /area/varadero/interior/research) "rjH" = ( /obj/structure/machinery/light/small{ @@ -26917,9 +21930,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/maintenance/south) "rjM" = ( /obj/structure/surface/table/woodentable, @@ -26938,16 +21949,11 @@ dir = 1 }, /obj/item/ammo_magazine/revolver/cmb, -/turf/open/floor/shiva{ - icon_state = "purple" - }, +/turf/open/floor/shiva/purple, /area/varadero/interior/research) "rkA" = ( /obj/structure/closet/secure_closet/engineering_welding, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/varadero/exterior/lz1_near) "rkC" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, @@ -26972,20 +21978,14 @@ climb_delay = 1; layer = 2.99 }, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/exterior/pontoon_beach) "rlJ" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22"; pixel_y = 8 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "purplefull" - }, +/turf/open/floor/shiva/purplefull/west, /area/varadero/interior/hall_NW) "rme" = ( /obj/structure/surface/table, @@ -26994,9 +21994,7 @@ pixel_x = 1; pixel_y = -2 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/research) "rmf" = ( /obj/structure/barricade/wooden, @@ -27020,30 +22018,19 @@ /obj/structure/machinery/storm_siren{ pixel_y = 5 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/maintenance/south) "rmB" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "snow_mat" - }, +/turf/open/floor/shiva/snow_mat/west, /area/varadero/interior/maintenance) "rmL" = ( /obj/structure/closet/secure_closet/security, -/turf/open/floor/shiva{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/shiva/red/northeast, /area/varadero/interior/security) "rmS" = ( /obj/structure/xenoautopsy/tank/alien, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/varadero/interior_protected/vessel) "rmV" = ( /obj/effect/spawner/random/powercell, @@ -27051,9 +22038,7 @@ /area/varadero/interior/maintenance/north) "rmZ" = ( /obj/effect/decal/cleanable/blood/drip, -/turf/open/floor/shiva{ - icon_state = "red" - }, +/turf/open/floor/shiva/red, /area/varadero/interior/morgue) "rnj" = ( /obj/structure/surface/table/reinforced/prison{ @@ -27061,26 +22046,18 @@ }, /obj/item/tool/surgery/cautery/predatorcautery, /obj/item/tool/surgery/scalpel/predatorscalpel, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/varadero/interior_protected/vessel) "rnL" = ( /obj/structure/flora/bush/ausbushes/var3/stalkybush, -/turf/open/gm/river/ocean{ - name = "deep ocean"; - default_name = "deep ocean" - }, +/turf/open/gm/river/ocean/deep_ocean, /area/varadero/exterior/lz2_near) "rnP" = ( /obj/structure/machinery/door/airlock/almayer/engineering/glass{ req_access = null; req_one_access = null }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/varadero/interior/cargo) "ron" = ( /obj/structure/tunnel{ @@ -27096,9 +22073,7 @@ /obj/item/spacecash/c1000{ pixel_y = 6 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/hall_NW) "roJ" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -27108,9 +22083,7 @@ req_access_txt = "100"; req_one_access = null }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/varadero/interior/cargo) "roT" = ( /obj/structure/platform/kutjevo/smooth{ @@ -27132,16 +22105,11 @@ icon_state = "ladder10"; name = "ladder" }, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/exterior/pool) "rpd" = ( /obj/structure/bed/chair, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/security) "rpu" = ( /turf/closed/wall, @@ -27154,26 +22122,19 @@ /obj/structure/surface/table/reinforced/prison, /obj/item/storage/box/lights, /obj/structure/machinery/light, -/turf/open/floor/shiva{ - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow, /area/varadero/interior/electrical) "rpI" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/electrical) "rpN" = ( /obj/item/shard{ icon_state = "medium" }, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/shiva/blue/north, /area/varadero/interior/maintenance) "rpT" = ( /obj/item/ammo_casing/shell{ @@ -27184,9 +22145,7 @@ "rqa" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/attachment, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/maintenance/south) "rqg" = ( /obj/effect/landmark/lv624/fog_blocker{ @@ -27205,19 +22164,14 @@ pixel_y = 8 }, /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/shiva{ - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull, /area/varadero/interior/security) "rqx" = ( /obj/structure/disposalpipe/segment{ dir = 4; icon_state = "pipe-c" }, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/north, /area/varadero/interior/disposals) "rqG" = ( /obj/structure/platform/kutjevo/smooth{ @@ -27229,10 +22183,7 @@ climb_delay = 1; layer = 2.99 }, -/turf/open/gm/river/ocean{ - name = "deep ocean"; - default_name = "deep ocean" - }, +/turf/open/gm/river/ocean/deep_ocean, /area/varadero/exterior/farocean) "rrp" = ( /obj/item/paper_bin, @@ -27249,18 +22200,13 @@ /obj/structure/machinery/power/terminal{ dir = 4 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/electrical) "rrA" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/north, /area/varadero/interior/cargo) "rsf" = ( /obj/structure/flora/bush/ausbushes/var3/fullgrass, @@ -27268,10 +22214,8 @@ /area/varadero/interior/caves/east) "rsh" = ( /obj/structure/machinery/cm_vending/sorted/medical/no_access, -/turf/open/floor/shiva{ - dir = 9; - icon_state = "wred" - }, +/obj/structure/medical_supply_link, +/turf/open/floor/shiva/wred/northwest, /area/varadero/interior/medical) "rsj" = ( /obj/structure/surface/table/reinforced/almayer_B, @@ -27282,31 +22226,23 @@ pixel_x = -5; pixel_y = 17 }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/medical) "rsB" = ( -/turf/open/floor/shiva{ - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow, /area/varadero/interior/electrical) "rsL" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper Underground Security Checkpoint"; req_access_txt = "100" }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/security) "rsM" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/medical) "rsO" = ( /obj/structure/platform/kutjevo/smooth{ @@ -27330,9 +22266,7 @@ req_access = null; req_one_access = null }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/medical) "rtu" = ( /obj/structure/bed/chair{ @@ -27342,28 +22276,20 @@ dir = 1; pixel_y = -24 }, -/turf/open/floor/shiva{ - icon_state = "green" - }, +/turf/open/floor/shiva/green, /area/varadero/interior/hall_SE) "rtx" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/shiva{ - icon_state = "wredfull" - }, +/turf/open/floor/shiva/wredfull, /area/varadero/interior/medical) "rtP" = ( /obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/north) "rtR" = ( /obj/item/tool/wirecutters, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/electrical) "rtV" = ( /obj/structure/pipes/vents/pump{ @@ -27374,9 +22300,7 @@ pixel_x = 16; pixel_y = 24 }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/hall_SE) "ruq" = ( /obj/structure/surface/table/reinforced/prison, @@ -27385,10 +22309,7 @@ pixel_y = 7 }, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "purplefull" - }, +/turf/open/floor/shiva/purplefull/west, /area/varadero/interior/research) "ruZ" = ( /obj/item/ammo_magazine/smg/nailgun, @@ -27402,10 +22323,7 @@ pixel_y = 1 }, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "purple" - }, +/turf/open/floor/shiva/purple/east, /area/varadero/interior/research) "rvD" = ( /turf/open/auto_turf/sand_white/layer1, @@ -27418,10 +22336,7 @@ dir = 8 }, /obj/structure/machinery/light, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull/west, /area/varadero/interior/security) "rwP" = ( /obj/structure/closet/crate/ammo/alt/flame, @@ -27430,9 +22345,7 @@ pixel_x = -6; pixel_y = 6 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/cargo) "rwV" = ( /obj/structure/prop/invuln/lattice_prop{ @@ -27440,22 +22353,14 @@ pixel_x = 16; pixel_y = 24 }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/hall_SE) "rxa" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "snow_mat" - }, +/turf/open/floor/shiva/snow_mat/east, /area/varadero/interior/maintenance) "rxe" = ( -/turf/open/floor/shiva{ - dir = 5; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/northeast, /area/varadero/interior/cargo) "rxI" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -27464,9 +22369,7 @@ pixel_x = 16; pixel_y = -8 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/research) "ryD" = ( /turf/open/auto_turf/sand_white/layer1, @@ -27482,37 +22385,25 @@ pixel_y = 9 }, /obj/item/ammo_magazine/rifle, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/bunks) "rzg" = ( -/turf/open/floor/shiva{ - dir = 1; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/north, /area/varadero/interior/administration) "rzM" = ( -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/administration) "rzO" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22"; pixel_y = 8 }, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/shiva/blue/north, /area/varadero/interior/administration) "rzU" = ( /obj/effect/decal/cleanable/blood, /obj/item/clothing/suit/armor/vest, -/turf/open/floor/shiva{ - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull, /area/varadero/interior/medical) "rAf" = ( /obj/structure/surface/table/reinforced/prison{ @@ -27521,22 +22412,15 @@ /obj/item/trash/plate{ pixel_y = 7 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/varadero/interior_protected/vessel) "rAj" = ( /obj/structure/largecrate/random/case/double, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/north) "rAy" = ( /obj/structure/bedsheetbin, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/bunks) "rBa" = ( /obj/structure/disposalpipe/segment, @@ -27547,20 +22431,14 @@ /area/varadero/interior/hall_SE) "rBi" = ( /obj/structure/filingcabinet/security, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull/west, /area/varadero/interior/hall_SE) "rBq" = ( /obj/structure/flora/bush/ausbushes/var3/ywflowers, /turf/open/gm/dirt, /area/varadero/exterior/lz2_near) "rBP" = ( -/turf/open/floor/shiva{ - dir = 8; - icon_state = "green" - }, +/turf/open/floor/shiva/green/west, /area/varadero/interior/hall_SE) "rCf" = ( /obj/structure/largecrate/random/case/small, @@ -27575,10 +22453,7 @@ icon_state = "lattice12"; pixel_y = -3 }, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/interior/hall_SE) "rCB" = ( /obj/structure/filingcabinet/chestdrawer{ @@ -27597,33 +22472,23 @@ icon_state = "cartridge_3_1" }, /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/caves) "rDD" = ( /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/security) "rDK" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /obj/item/stack/sheet/metal, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/varadero/interior_protected/vessel) "rFj" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/landmark/objective_landmark/far, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "purplefull" - }, +/turf/open/floor/shiva/purplefull/west, /area/varadero/interior/research) "rFv" = ( /obj/effect/decal/cleanable/blood/drip, @@ -27649,9 +22514,7 @@ /obj/structure/machinery/storm_siren{ pixel_y = 5 }, -/turf/open/floor/shiva{ - icon_state = "blue" - }, +/turf/open/floor/shiva/blue, /area/varadero/interior/hall_SE) "rGA" = ( /obj/structure/largecrate/random, @@ -27665,15 +22528,10 @@ /obj/structure/barricade/handrail/wire{ dir = 4 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/comms4) "rHv" = ( -/turf/open/floor/shiva{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/shiva/green/north, /area/varadero/interior/hall_N) "rHE" = ( /obj/structure/platform/kutjevo/smooth{ @@ -27686,10 +22544,7 @@ /obj/structure/platform_decoration/kutjevo{ dir = 1 }, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/interior/caves/north_research) "rIG" = ( /obj/structure/flora/bush/ausbushes/var3/sparsegrass{ @@ -27701,16 +22556,11 @@ /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "green" - }, +/turf/open/floor/shiva/green/east, /area/varadero/interior/court) "rIU" = ( /obj/structure/window/framed/colony, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/chapel) "rJq" = ( /obj/structure/surface/table, @@ -27728,29 +22578,20 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/north, /area/varadero/interior/disposals) "rKf" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor/shiva{ - icon_state = "green" - }, +/turf/open/floor/shiva/green, /area/varadero/interior/hall_N) "rKl" = ( /obj/structure/machinery/portable_atmospherics/canister/empty, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/electrical) "rKy" = ( /obj/structure/pipes/standard/manifold/hidden/green, /obj/item/clothing/suit/armor/vest, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/security) "rKB" = ( /obj/structure/surface/table/woodentable/fancy, @@ -27764,15 +22605,10 @@ /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/north, /area/varadero/interior/electrical) "rKM" = ( -/turf/open/gm/dirt{ - icon_state = "desert1" - }, +/turf/open/gm/dirt/desert1, /area/varadero/exterior/pontoon_beach) "rKS" = ( /obj/structure/platform/kutjevo/smooth{ @@ -27790,9 +22626,7 @@ /area/varadero/exterior/monsoon) "rLC" = ( /obj/structure/machinery/photocopier, -/turf/open/floor/shiva{ - icon_state = "wredfull" - }, +/turf/open/floor/shiva/wredfull, /area/varadero/interior/medical) "rLK" = ( /obj/structure/prop/ice_colony/dense/planter_box/hydro{ @@ -27810,24 +22644,17 @@ climb_delay = 1; layer = 2.99 }, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/interior/caves/north_research) "rLU" = ( /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance) "rLW" = ( /obj/structure/closet/crate/secure, /obj/item/trash/chunk, /obj/item/trash/raisins, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/cargo) "rMb" = ( /obj/structure/flora/bush/ausbushes/var3/fernybush, @@ -27843,14 +22670,10 @@ "rMM" = ( /obj/structure/prop/turbine, /obj/structure/prop/turbine_extras/border, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/comms1) "rMN" = ( -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/hall_SE) "rMP" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, @@ -27861,9 +22684,7 @@ climb_delay = 1; layer = 2.99 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/comms4) "rNm" = ( /obj/item/stack/sheet/wood, @@ -27878,9 +22699,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/shiva{ - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull, /area/varadero/interior/medical) "rOL" = ( /obj/structure/closet/secure_closet/personal{ @@ -27893,9 +22712,7 @@ pixel_x = 7; pixel_y = 15 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/varadero/interior/laundry) "rPB" = ( /obj/structure/blocker/forcefield/multitile_vehicles, @@ -27911,9 +22728,7 @@ /obj/structure/barricade/wooden{ dir = 4 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/north) "rQe" = ( /obj/structure/surface/rack, @@ -27924,19 +22739,14 @@ /obj/structure/machinery/storm_siren{ pixel_y = 5 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/comms1) "rQk" = ( /obj/effect/decal/warning_stripes/asteroid{ dir = 1; icon_state = "warning_s" }, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "greencorners" - }, +/turf/open/floor/shiva/greencorners/north, /area/varadero/interior/hall_SE) "rQU" = ( /obj/structure/girder, @@ -27948,15 +22758,10 @@ /turf/open/gm/dirt, /area/varadero/exterior/eastbeach) "rQV" = ( -/turf/open/floor/shiva{ - dir = 8; - icon_state = "purple" - }, +/turf/open/floor/shiva/purple/west, /area/varadero/interior/research) "rQY" = ( -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/administration) "rRm" = ( /obj/structure/disposalpipe/segment{ @@ -27967,16 +22772,11 @@ /area/varadero/interior/technical_storage) "rRq" = ( /obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/security) "rRz" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/shiva/blue/north, /area/varadero/interior/administration) "rSl" = ( /obj/item/tool/wrench, @@ -27984,9 +22784,7 @@ /area/varadero/exterior/eastbeach) "rSu" = ( /obj/structure/window/framed/colony, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/hall_N) "rSx" = ( /obj/structure/surface/table, @@ -27998,17 +22796,11 @@ pixel_x = 3; pixel_y = 5 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellowfull" - }, +/turf/open/floor/shiva/yellowfull/west, /area/varadero/interior/cargo) "rSA" = ( /obj/effect/decal/cleanable/blood/drip, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/varadero/exterior/lz1_near) "rSI" = ( /obj/structure/machinery/power/apc{ @@ -28062,13 +22854,11 @@ /area/varadero/interior/bunks) "rTi" = ( /obj/structure/window_frame/colony/reinforced, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/caves/east) "rTu" = ( /obj/structure/surface/table/woodentable, -/obj/item/handcuffs, +/obj/item/restraint/handcuffs, /obj/item/weapon/baton, /turf/open/floor/wood, /area/varadero/interior/security) @@ -28076,9 +22866,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/electrical) "rTT" = ( /obj/structure/disposaloutlet{ @@ -28091,10 +22879,7 @@ /area/varadero/interior/disposals) "rUa" = ( /obj/structure/flora/bush/ausbushes/var3/stalkybush, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/exterior/farocean) "rUc" = ( /obj/structure/platform/kutjevo/smooth{ @@ -28118,18 +22903,13 @@ dir = 4 }, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "purple" - }, +/turf/open/floor/shiva/purple/north, /area/varadero/interior/research) "rUI" = ( /obj/structure/closet/crate/construction, /obj/item/reagent_container/food/snacks/wrapped/chunk, /obj/item/tool/hatchet, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/eastbeach) "rVi" = ( /obj/item/tool/candle, @@ -28146,16 +22926,11 @@ "rVI" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/disposalpipe/segment, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/administration) "rVS" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/north, /area/varadero/interior/comms3) "rVZ" = ( /obj/structure/prop/invuln/lattice_prop{ @@ -28163,9 +22938,7 @@ pixel_x = -16; pixel_y = 24 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance) "rWx" = ( /obj/structure/sink{ @@ -28175,23 +22948,17 @@ /obj/structure/mirror{ pixel_y = -28 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/varadero/interior/toilets) "rWG" = ( /obj/structure/machinery/sensortower{ pixel_x = -9 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior_protected/caves/central) "rWJ" = ( /obj/item/stool, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/varadero/interior/research) "rWN" = ( /obj/structure/flora/bush/ausbushes/var3/ywflowers, @@ -28206,15 +22973,11 @@ icon_state = "pointybush_3"; pixel_y = 11 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/security) "rXf" = ( /obj/item/stack/cable_coil/cut, -/turf/open/floor/shiva{ - icon_state = "redcorners" - }, +/turf/open/floor/shiva/redcorners, /area/varadero/interior/morgue) "rXk" = ( /turf/open/gm/coast/beachcorner/south_west, @@ -28234,18 +22997,13 @@ "rYC" = ( /obj/structure/blocker/invisible_wall/water, /obj/item/lightstick/variant/planted, -/turf/open/gm/river/ocean{ - name = "deep ocean"; - default_name = "deep ocean" - }, +/turf/open/gm/river/ocean/deep_ocean, /area/varadero/exterior/farocean) "rYO" = ( /obj/structure/prop/static_tank/water{ pixel_y = 8 }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/disposals) "rYR" = ( /obj/item/lightstick/red/spoke/planted{ @@ -28255,10 +23013,7 @@ unacidable = 1; layer = 4.1 }, -/turf/open/gm/river/ocean{ - name = "deep ocean"; - default_name = "deep ocean" - }, +/turf/open/gm/river/ocean/deep_ocean, /area/varadero/exterior/farocean) "rZr" = ( /obj/structure/prop/ice_colony/flamingo{ @@ -28279,9 +23034,7 @@ pixel_x = -16; pixel_y = 13 }, -/turf/open/floor/shiva{ - icon_state = "snow_mat" - }, +/turf/open/floor/shiva/snow_mat, /area/varadero/interior/maintenance) "sah" = ( /obj/structure/machinery/door/airlock/almayer/maint{ @@ -28304,16 +23057,10 @@ pixel_x = -4; pixel_y = 3 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "greenfull" - }, +/turf/open/floor/shiva/greenfull/west, /area/varadero/interior/medical) "saC" = ( -/turf/open/floor/shiva{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/east, /area/varadero/interior/cargo) "saQ" = ( /obj/structure/barricade/wooden, @@ -28324,14 +23071,20 @@ }, /turf/open/floor/wood, /area/varadero/interior/beach_bar) +"sbP" = ( +/obj/structure/machinery/landinglight/ds1/spoke{ + pixel_y = -5; + pixel_x = -13 + }, +/obj/structure/machinery/camera/autoname/lz_camera, +/turf/open/auto_turf/sand_white/layer1, +/area/varadero/exterior/lz2_near) "sbX" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22"; pixel_y = 8 }, -/turf/open/floor/shiva{ - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull, /area/varadero/interior/medical) "scD" = ( /obj/structure/bed/chair{ @@ -28347,23 +23100,16 @@ pixel_x = 2; pixel_y = 2 }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/hall_NW) "sdy" = ( -/turf/open/floor/shiva{ - dir = 4; - icon_state = "green" - }, +/turf/open/floor/shiva/green/east, /area/varadero/interior/maintenance/north) "sdz" = ( /turf/closed/wall/r_wall, /area/varadero/interior/hall_NW) "sdS" = ( -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/medical) "sdU" = ( /obj/effect/landmark/yautja_teleport, @@ -28380,24 +23126,17 @@ dir = 8; pixel_x = 3 }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/electrical) "ses" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/shiva{ - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow, /area/varadero/interior/disposals) "seY" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "snow_mat" - }, +/turf/open/floor/shiva/snow_mat/west, /area/varadero/interior/medical) "seZ" = ( /obj/structure/window/reinforced{ @@ -28428,9 +23167,7 @@ /area/varadero/interior/bunks) "sff" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/shiva{ - icon_state = "snow_mat" - }, +/turf/open/floor/shiva/snow_mat, /area/varadero/interior/maintenance) "sfj" = ( /obj/item/shard{ @@ -28442,9 +23179,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/cargo) "sfF" = ( /obj/structure/machinery/storm_siren{ @@ -28458,10 +23193,7 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/west, /area/varadero/interior/cargo) "sgk" = ( /obj/structure/flora/bush/ausbushes/var3/stalkybush, @@ -28469,9 +23201,7 @@ /area/varadero/interior/caves/east) "sgl" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/maintenance/south) "sgn" = ( /obj/structure/barricade/handrail{ @@ -28486,10 +23216,7 @@ icon_state = "hr_kutjevo"; name = "support struts" }, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/exterior/pontoon_beach) "sgp" = ( /obj/structure/barricade/wooden, @@ -28499,9 +23226,7 @@ /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/hall_SE) "sgy" = ( /obj/structure/disposalpipe/segment{ @@ -28515,9 +23240,7 @@ dir = 8; layer = 2.991 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/medical) "sgz" = ( /obj/structure/pipes/standard/manifold/hidden/green{ @@ -28533,9 +23256,7 @@ /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/hall_N) "shO" = ( /obj/structure/fence, @@ -28550,9 +23271,7 @@ /area/varadero/interior_protected/caves/digsite) "shP" = ( /obj/item/clothing/suit/armor/vest, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/security) "sia" = ( /obj/structure/machinery/firealarm{ @@ -28572,25 +23291,17 @@ /obj/structure/machinery/alarm{ pixel_y = 24 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellowfull" - }, +/turf/open/floor/shiva/yellowfull/west, /area/varadero/interior/comms3) "sid" = ( /obj/structure/window/framed/colony, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/varadero/interior/maintenance/north) "sjD" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/shiva{ - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow, /area/varadero/interior/hall_SE) "sjR" = ( /obj/structure/surface/table/reinforced/prison, @@ -28601,17 +23312,13 @@ /obj/item/tool/soap{ pixel_x = 5 }, -/turf/open/floor/shiva{ - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull, /area/varadero/interior/medical) "skp" = ( /obj/structure/barricade/handrail/wire{ dir = 8 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/comms4) "skY" = ( /obj/effect/landmark/objective_landmark/far, @@ -28620,9 +23327,7 @@ /area/varadero/interior/hall_SE) "slw" = ( /obj/structure/flora/bush/ausbushes/var3/fernybush, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/lz2_near) "slA" = ( /obj/structure/bed/chair/comfy{ @@ -28643,9 +23348,7 @@ dir = 4; pixel_x = 7 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/security) "slB" = ( /obj/structure/filingcabinet{ @@ -28669,27 +23372,19 @@ dir = 1; icon_state = "p_stair_full" }, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/varadero/interior_protected/vessel) "smE" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/structure/reagent_dispensers/watertank, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/security) "smO" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/faxmachine, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/shiva/blue/north, /area/varadero/interior/administration) "snl" = ( /obj/structure/window/framed/colony, @@ -28705,9 +23400,7 @@ /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/security) "snE" = ( /obj/structure/pipes/standard/manifold/hidden/green{ @@ -28718,62 +23411,49 @@ "snP" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/curtain/red, -/turf/open/floor/shiva{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/southeast, /area/varadero/interior/bunks) "snS" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/varadero/interior_protected/vessel) "sou" = ( /obj/structure/machinery/door/poddoor/shutters/almayer{ id = "cargobay"; name = "\improper Requesitions Storage Shutters" }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/west, /area/varadero/interior/cargo) "spd" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "snow_mat" - }, +/turf/open/floor/shiva/snow_mat/east, /area/varadero/interior/medical) "spv" = ( /obj/effect/landmark/lv624/fog_blocker{ time_to_dispel = 25000 }, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/exterior/eastocean) +"spN" = ( +/obj/item/fuel_cell{ + pixel_x = 4; + pixel_y = 22 + }, +/turf/open/auto_turf/sand_white/layer1, +/area/varadero/interior_protected/maintenance/south) "spP" = ( /obj/structure/bed/chair, /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/landmark/survivor_spawner, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/shiva/green/north, /area/varadero/interior/court) "sre" = ( /obj/structure/filingcabinet, /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/records) "srg" = ( /turf/open/gm/dirt, @@ -28794,10 +23474,7 @@ /obj/structure/surface/rack, /obj/item/storage/pouch/tools/full, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull/west, /area/varadero/interior/medical) "srY" = ( /obj/structure/sign/safety/airlock{ @@ -28816,27 +23493,26 @@ /obj/item/device/flashlight/lamp/green{ pixel_y = 7 }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/electrical) "ssh" = ( /obj/structure/prop/turbine_extras/left, /obj/item/tool/crowbar, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/comms1) "ssv" = ( /obj/effect/landmark/hunter_secondary, /obj/structure/machinery/landinglight/ds2/delaythree{ dir = 4 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/varadero/exterior/lz1_near) +"ssw" = ( +/obj/structure/platform_decoration/kutjevo{ + dir = 1 + }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, +/area/varadero/exterior/pontoon_beach/lz) "ssZ" = ( /obj/item/storage/belt/marine, /turf/open/floor/carpet, @@ -28848,9 +23524,7 @@ /obj/structure/closet/secure_closet/medical1{ req_access_txt = "100" }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance) "stw" = ( /obj/structure/platform/kutjevo/rock{ @@ -28861,58 +23535,41 @@ icon_state = "lattice12"; pixel_y = -3 }, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/interior/maintenance/security) "stK" = ( /obj/structure/blocker/invisible_wall/water, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/caves/digsite) "stU" = ( /obj/structure/machinery/storm_siren{ dir = 4; pixel_x = -3 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/mess) "stV" = ( /obj/structure/reagent_dispensers/water_cooler{ density = 0; pixel_y = 19 }, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/north, /area/varadero/interior/cargo) "suC" = ( /obj/structure/barricade/handrail/wire{ dir = 4 }, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/north, /area/varadero/interior/cargo) "suE" = ( /obj/item/tool/wet_sign, -/turf/open/floor/shiva{ - icon_state = "blue" - }, +/turf/open/floor/shiva/blue, /area/varadero/interior/maintenance) "suY" = ( /obj/structure/barricade/handrail/wire{ dir = 8 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/lz2_near) "svt" = ( /obj/structure/platform/kutjevo/smooth{ @@ -28927,9 +23584,7 @@ /area/varadero/interior/hall_N) "svG" = ( /obj/item/tool/warning_cone, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/lz1_near) "svH" = ( /obj/structure/surface/table/woodentable, @@ -28951,10 +23606,7 @@ /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/west, /area/varadero/interior/cargo) "swi" = ( /obj/item/storage/pouch/shotgun/large, @@ -28973,17 +23625,18 @@ pixel_x = 1; pixel_y = 7 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/maintenance/south) "swv" = ( /obj/structure/surface/rack, /obj/item/pizzabox/meat, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/maintenance/south) +"swM" = ( +/obj/structure/machinery/power/reactor/colony, +/obj/structure/machinery/light/small, +/turf/open/floor/plating/icefloor/asteroidplating, +/area/varadero/interior/electrical) "swV" = ( /obj/structure/closet/crate/construction, /turf/open/auto_turf/sand_white/layer1, @@ -29007,9 +23660,7 @@ /area/varadero/interior_protected/caves/digsite) "sxY" = ( /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/security) "syb" = ( /obj/structure/surface/rack, @@ -29047,31 +23698,21 @@ /obj/item/ammo_magazine/pistol{ pixel_x = 4 }, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/shiva/red/east, /area/varadero/interior/security) "syl" = ( /obj/structure/machinery/door/poddoor/shutters/almayer{ id = "cargobay"; name = "\improper Requesitions Storage Shutters" }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/cargo) "syt" = ( /obj/item/device/flashlight, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/north, /area/varadero/interior/electrical) "syL" = ( -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/bunks) "syM" = ( /obj/structure/surface/table/reinforced/prison, @@ -29088,10 +23729,7 @@ dir = 8; pixel_x = -24 }, -/turf/open/floor/shiva{ - dir = 10; - icon_state = "blue" - }, +/turf/open/floor/shiva/blue/southwest, /area/varadero/interior/technical_storage) "szh" = ( /turf/closed/wall/r_wall/elevator{ @@ -29111,24 +23749,20 @@ pixel_x = 4; pixel_y = -6 }, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/exterior/pool) "szZ" = ( /obj/structure/curtain/red, -/turf/open/shuttle{ - icon_state = "floor6" - }, +/turf/open/shuttle/red, /area/varadero/interior_protected/vessel) "sAR" = ( /obj/item/tool/wet_sign, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/west, /area/varadero/interior/cargo) +"sAW" = ( +/obj/structure/prop/rock/brown, +/turf/open/gm/river/ocean/deep_ocean, +/area/varadero/exterior/pontoon_beach/lz) "sAY" = ( /obj/structure/machinery/door/airlock/almayer/maint{ dir = 1; @@ -29136,9 +23770,7 @@ req_access_txt = "100"; req_one_access = null }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/morgue) "sBk" = ( /obj/structure/bed/chair{ @@ -29147,10 +23779,7 @@ /obj/effect/decal/strata_decals/grime/grime3{ dir = 4 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "purplefull" - }, +/turf/open/floor/shiva/purplefull/west, /area/varadero/interior/research) "sBF" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -29159,15 +23788,11 @@ name = "\improper Colony Administration"; req_access_txt = "100" }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/administration) "sBN" = ( /obj/structure/target/syndicate, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/security) "sBX" = ( /obj/structure/window/framed/colony, @@ -29179,9 +23804,7 @@ dir = 8; icon_state = "pipe-c" }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/hall_N) "sCp" = ( /obj/item/stack/sheet/metal, @@ -29189,21 +23812,15 @@ icon_state = "medium" }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/caves/east) "sCA" = ( /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/security) "sCJ" = ( /obj/vehicle/train/cargo/trolley, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/varadero/interior/cargo) "sCV" = ( /obj/structure/machinery/alarm{ @@ -29213,16 +23830,11 @@ /obj/structure/machinery/firealarm{ pixel_y = 24 }, -/turf/open/floor/shiva{ - dir = 5; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/northeast, /area/varadero/interior/cargo) "sDf" = ( /obj/structure/machinery/light, -/turf/open/floor/shiva{ - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow, /area/varadero/interior/cargo) "sDj" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -29231,15 +23843,11 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/hall_NW) "sDo" = ( /obj/item/stack/cable_coil/cut, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/technical_storage) "sDE" = ( /obj/structure/prop/ice_colony/dense/planter_box/plated{ @@ -29253,9 +23861,7 @@ /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/research) "sDH" = ( /obj/item/grown/log, @@ -29263,9 +23869,7 @@ /turf/open/gm/dirt, /area/varadero/exterior/monsoon) "sDM" = ( -/turf/open/floor/shiva{ - icon_state = "purple" - }, +/turf/open/floor/shiva/purple, /area/varadero/interior/research) "sDQ" = ( /obj/structure/machinery/power/apc{ @@ -29273,19 +23877,13 @@ pixel_x = 24; start_charge = 0 }, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "wred" - }, +/turf/open/floor/shiva/wred/east, /area/varadero/interior/medical) "sDZ" = ( /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/east, /area/varadero/interior/cargo) "sFc" = ( /obj/effect/decal/cleanable/dirt, @@ -29294,17 +23892,13 @@ /area/varadero/interior/beach_bar) "sFJ" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/morgue) "sFN" = ( /obj/structure/flora/bush/ausbushes/var3/sparsegrass{ icon_state = "sparsegrass_2" }, -/turf/open/gm/dirt{ - icon_state = "desert3" - }, +/turf/open/gm/dirt/desert3, /area/varadero/exterior/lz1_near) "sGb" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -29314,35 +23908,24 @@ name = "\improper Underground Disposals"; req_access_txt = "100" }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/disposals) "sGo" = ( -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/varadero/interior/toilets) "sGY" = ( -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/cargo) "sHs" = ( /obj/effect/decal/cleanable/blood/drip, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/varadero/interior/electrical) "sHJ" = ( /obj/structure/platform/kutjevo/smooth{ climb_delay = 1; layer = 2.99 }, -/turf/open/gm/river/ocean{ - name = "deep ocean"; - default_name = "deep ocean" - }, +/turf/open/gm/river/ocean/deep_ocean, /area/varadero/exterior/comms4) "sHO" = ( /obj/item/stack/tile/plasteel{ @@ -29354,30 +23937,21 @@ /area/varadero/interior/maintenance/security) "sHV" = ( /obj/structure/machinery/landinglight/ds2/delaytwo, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/varadero/exterior/lz1_near) "sIf" = ( /obj/structure/bed/chair{ dir = 8; icon_state = "chair_alt" }, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/shiva/red/north, /area/varadero/interior/medical) "sIn" = ( /obj/structure/machinery/storm_siren{ dir = 4; pixel_x = -3 }, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "purple" - }, +/turf/open/floor/shiva/purple/east, /area/varadero/interior/hall_NW) "sIK" = ( /obj/structure/prop/invuln/lattice_prop{ @@ -29390,30 +23964,20 @@ pixel_x = 16; pixel_y = -8 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/varadero/exterior/eastbeach) "sIQ" = ( /obj/item/stack/sheet/wood/small_stack, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/varadero/exterior/lz1_near) "sIU" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/hall_SE) "sJm" = ( -/turf/open/gm/dirt{ - icon_state = "desert1" - }, +/turf/open/gm/dirt/desert1, /area/varadero/exterior/lz1_near) "sJq" = ( /obj/structure/window/reinforced{ @@ -29439,17 +24003,12 @@ "sJx" = ( /obj/structure/surface/table, /obj/item/reagent_container/food/snacks/chips, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/mess) "sJB" = ( /obj/structure/filingcabinet/security, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/shiva{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/shiva/red/northwest, /area/varadero/interior/hall_N) "sJF" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -29458,10 +24017,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkgreencorners2" - }, +/turf/open/floor/darkgreencorners2/north, /area/varadero/interior/hall_SE) "sJZ" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -29470,24 +24026,17 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/hall_SE) "sKe" = ( /obj/structure/machinery/autolathe, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "purple" - }, +/turf/open/floor/shiva/purple/west, /area/varadero/interior/research) "sKu" = ( /obj/structure/barricade/wooden{ dir = 8 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/security) "sKz" = ( /obj/structure/closet/crate/supply, @@ -29508,9 +24057,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/shiva{ - icon_state = "purple" - }, +/turf/open/floor/shiva/purple, /area/varadero/interior/research) "sKN" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -29518,15 +24065,6 @@ }, /turf/open/auto_turf/sand_white/layer1, /area/varadero/interior/maintenance) -"sLi" = ( -/obj/structure/machinery/power/geothermal, -/obj/structure/machinery/light{ - dir = 8 - }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, -/area/varadero/interior/electrical) "sLO" = ( /obj/item/device/flashlight/slime{ mouse_opacity = 0; @@ -29534,17 +24072,11 @@ indestructible = 1; alpha = 0 }, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/exterior/pool) "sLU" = ( /obj/structure/reagent_dispensers/water_cooler, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/shiva/blue/north, /area/varadero/interior/administration) "sMn" = ( /obj/structure/bed/chair/office/dark, @@ -29557,52 +24089,38 @@ /area/varadero/interior/maintenance) "sNa" = ( /obj/structure/window/reinforced/tinted, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/varadero/interior/laundry) "sNl" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, /obj/structure/disposalpipe/segment, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/cargo) "sNp" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/floor/shiva{ - icon_state = "snow_mat" - }, +/turf/open/floor/shiva/snow_mat, /area/varadero/interior/maintenance) "sNx" = ( /turf/closed/wall/rock/brown, /area/varadero/exterior/farocean) "sNy" = ( -/turf/open/gm/river/ocean{ - name = "deep ocean"; - default_name = "deep ocean" - }, +/turf/open/gm/river/ocean/deep_ocean, /area/varadero/exterior/comms4) "sNT" = ( /obj/structure/machinery/light/small{ dir = 1 }, /obj/structure/reagent_dispensers/fueltank, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/varadero/interior/maintenance/north) "sOj" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/disposalpipe/junction, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/hall_SE) "sOw" = ( /obj/effect/landmark/xeno_spawn, @@ -29610,10 +24128,7 @@ /area/varadero/interior_protected/vessel) "sPh" = ( /obj/structure/machinery/constructable_frame, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellowfull" - }, +/turf/open/floor/shiva/yellowfull/west, /area/varadero/interior/electrical) "sPs" = ( /obj/structure/window/framed/colony/reinforced, @@ -29622,21 +24137,14 @@ "sPD" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/storage/toolbox/mechanical/green, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/comms2) "sPY" = ( -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/west, /area/varadero/interior/electrical) "sQn" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/research) "sQs" = ( /obj/structure/filingcabinet{ @@ -29700,10 +24208,7 @@ pixel_y = 5 }, /obj/structure/surface/table, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/varadero/exterior/lz1_near) "sSU" = ( /obj/structure/machinery/door/airlock/almayer/command{ @@ -29711,36 +24216,25 @@ name = "\improper Underground Command Center"; req_access_txt = "100" }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/administration) "sSZ" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/shiva/red/west, /area/varadero/interior/morgue) "sTA" = ( /obj/structure/disposalpipe/segment{ dir = 4; icon_state = "pipe-c" }, -/turf/open/floor/shiva{ - dir = 10; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/southwest, /area/varadero/interior/disposals) "sTT" = ( /obj/structure/machinery/light, /obj/structure/closet/toolcloset, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/varadero/exterior/lz1_near) "sTW" = ( /obj/structure/disposalpipe/segment{ @@ -29755,9 +24249,7 @@ req_access = null; req_one_access = null }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/medical) "sUj" = ( /obj/structure/platform/kutjevo/smooth{ @@ -29777,9 +24269,7 @@ dir = 6 }, /obj/structure/blocker/invisible_wall/water, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/oob) "sUp" = ( /obj/item/toy/beach_ball, @@ -29787,9 +24277,7 @@ /area/varadero/exterior/lz1_near) "sUG" = ( /obj/item/tool/pickaxe/plasmacutter, -/turf/open/shuttle{ - icon_state = "floor6" - }, +/turf/open/shuttle/red, /area/varadero/interior_protected/vessel) "sUK" = ( /obj/structure/flora/bush/desert{ @@ -29800,10 +24288,7 @@ /obj/structure/prop/ice_colony/dense/planter_box/hydro{ density = 0 }, -/turf/open/gm/river/ocean{ - name = "deep ocean"; - default_name = "deep ocean" - }, +/turf/open/gm/river/ocean/deep_ocean, /area/varadero/exterior/pontoon_beach) "sVk" = ( /obj/structure/cable/heavyduty{ @@ -29828,10 +24313,7 @@ /turf/closed/wall/rock/brown, /area/varadero/interior/oob) "sWp" = ( -/turf/open/floor/shiva{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/shiva/red/north, /area/varadero/interior/medical) "sXb" = ( /turf/closed/wall, @@ -29846,10 +24328,7 @@ /area/varadero/exterior/farocean) "sYi" = ( /obj/structure/closet/secure_closet/engineering_personal, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellowfull" - }, +/turf/open/floor/shiva/yellowfull/west, /area/varadero/interior/comms3) "sZd" = ( /obj/structure/girder/displaced, @@ -29857,9 +24336,7 @@ /area/varadero/exterior/lz2_near) "sZe" = ( /obj/item/paper, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/north) "sZW" = ( /obj/structure/platform/kutjevo/smooth{ @@ -29877,10 +24354,7 @@ dir = 8; pixel_x = 3 }, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/exterior/comms4) "tak" = ( /obj/structure/surface/table/reinforced/prison, @@ -29888,33 +24362,24 @@ /area/varadero/interior/hall_SE) "tam" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/hall_N) "tbQ" = ( /obj/structure/reagent_dispensers/water_cooler, /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/shiva/blue/north, /area/varadero/interior/administration) "tcq" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/prop/server_equipment/laptop/closed, /obj/structure/surface/table, -/turf/open/floor/shiva{ - icon_state = "snow_mat" - }, +/turf/open/floor/shiva/snow_mat, /area/varadero/interior/maintenance) "tcS" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/varadero/interior/toilets) "tcX" = ( /obj/structure/surface/rack, @@ -29922,9 +24387,7 @@ /obj/item/frame/table, /obj/item/frame/table, /obj/item/frame/table, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/maintenance/south) "tdp" = ( /obj/structure/flora/bush/ausbushes/var3/fullgrass, @@ -29952,10 +24415,7 @@ pixel_x = -6; pixel_y = 5 }, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "snow_mat" - }, +/turf/open/floor/shiva/snow_mat/east, /area/varadero/interior/security) "tdN" = ( /obj/structure/window/framed/colony/reinforced, @@ -29974,16 +24434,11 @@ climb_delay = 1; layer = 2.99 }, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/exterior/comms4) "teg" = ( /obj/structure/girder, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/eastbeach) "ten" = ( /obj/structure/prop/invuln/minecart_tracks{ @@ -30003,9 +24458,7 @@ name = "\improper materials storage bin"; pixel_y = 8 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/lz1_near) "teu" = ( /obj/structure/prop/ice_colony/dense/planter_box/plated{ @@ -30015,18 +24468,14 @@ /obj/structure/flora/bush/ausbushes/pointybush{ pixel_y = 11 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/technical_storage) "tex" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, /obj/structure/closet/secure_closet/personal/patient, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/medical) "tez" = ( /obj/item/toy/bikehorn/rubberducky, @@ -30042,19 +24491,14 @@ /turf/open/shuttle/elevator/grating, /area/varadero/interior/hall_N) "tfc" = ( -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/varadero/exterior/lz2_near) "tfj" = ( /obj/effect/decal/warning_stripes/asteroid{ dir = 1; icon_state = "warning_s" }, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "green" - }, +/turf/open/floor/shiva/green/east, /area/varadero/interior/hall_N) "tfC" = ( /obj/structure/showcase{ @@ -30076,10 +24520,7 @@ anchored = 1; unacidable = 0 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/varadero/interior_protected/caves/digsite) "tgk" = ( /obj/structure/filingcabinet{ @@ -30109,9 +24550,7 @@ /turf/open/gm/dirt, /area/varadero/exterior/monsoon) "tgE" = ( -/turf/open/gm/dirt{ - icon_state = "desert_dug" - }, +/turf/open/gm/dirt/desert_dug, /area/varadero/exterior/pontoon_beach) "tgK" = ( /obj/structure/closet/crate/construction, @@ -30122,6 +24561,10 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/shiva, /area/varadero/interior/technical_storage) +"thp" = ( +/obj/structure/machinery/power/reactor/colony, +/turf/open/floor/plating/icefloor/asteroidplating, +/area/varadero/interior/electrical) "thS" = ( /obj/structure/window/framed/colony, /turf/open/floor/plating, @@ -30132,9 +24575,7 @@ /obj/item/stack/sheet/mineral/plastic{ amount = 3 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/bunks) "tia" = ( /obj/structure/machinery/conveyor, @@ -30167,9 +24608,7 @@ pixel_x = 18; pixel_y = 23 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/monsoon) "tjs" = ( /obj/structure/platform/kutjevo/smooth{ @@ -30190,10 +24629,7 @@ /turf/open/floor/plating, /area/varadero/interior_protected/caves/digsite) "tjF" = ( -/turf/open/floor/shiva{ - dir = 8; - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull/west, /area/varadero/interior/medical) "tjO" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -30203,22 +24639,15 @@ /turf/open/floor/wood, /area/varadero/interior/hall_SE) "tjS" = ( -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/west, /area/varadero/interior/cargo) "tkh" = ( -/turf/open/gm/dirt{ - icon_state = "desert2" - }, +/turf/open/gm/dirt/desert2, /area/varadero/exterior/eastbeach) "tkr" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/tool, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/comms2) "tkw" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -30230,9 +24659,7 @@ req_one_access = null; req_access = null }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/varadero/interior/research) "tkF" = ( /obj/structure/prop/rock/brown, @@ -30242,9 +24669,7 @@ /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/administration) "tkV" = ( /obj/structure/platform/kutjevo/smooth{ @@ -30267,11 +24692,8 @@ climb_delay = 1; layer = 2.99 }, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, -/area/varadero/exterior/pontoon_beach) +/turf/open/gm/river/shallow_ocean_shallow_ocean, +/area/varadero/exterior/pontoon_beach/lz) "tlq" = ( /obj/item/lightstick/red/spoke/planted{ pixel_x = -10; @@ -30293,21 +24715,15 @@ /obj/structure/machinery/firealarm{ pixel_y = 24 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/varadero/interior/toilets) "tlM" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/blood, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/security) "tlT" = ( -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/electrical) "tmm" = ( /obj/structure/machinery/door/airlock/almayer/engineering{ @@ -30315,15 +24731,10 @@ name = "\improper Underground Engineering Locker Room"; req_access_txt = "100" }, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/north, /area/varadero/interior/comms3) "tmC" = ( -/turf/open/gm/dirt{ - icon_state = "desert0" - }, +/turf/open/gm/dirt/desert0, /area/varadero/exterior/pontoon_beach) "tmZ" = ( /turf/open/gm/coast/west, @@ -30334,9 +24745,7 @@ pixel_x = -3; pixel_y = 8 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/cargo) "tnA" = ( /obj/structure/filingcabinet{ @@ -30352,17 +24761,12 @@ pixel_y = 11 }, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/shiva/blue/north, /area/varadero/interior/technical_storage) "tnD" = ( /obj/structure/surface/table/woodentable/poor, /obj/item/reagent_container/food/drinks/bottle/absinthe, -/turf/open/floor/wood{ - icon_state = "wood-broken6" - }, +/turf/open/floor/wood/wood_broken6, /area/varadero/interior/beach_bar) "tnN" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/medidoor{ @@ -30370,9 +24774,7 @@ name = "\improper Theta-V Research Laboratory"; req_access_txt = "100" }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/varadero/interior/research) "toN" = ( /obj/item/tool/warning_cone{ @@ -30405,15 +24807,10 @@ dir = 4; health = 80 }, -/turf/open/floor/shiva{ - icon_state = "red" - }, +/turf/open/floor/shiva/red, /area/varadero/interior/morgue) "tpL" = ( -/turf/open/floor/shiva{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/shiva/green/north, /area/varadero/interior/court) "tpO" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, @@ -30427,9 +24824,7 @@ /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/lz1_near) "tqa" = ( /obj/structure/platform/kutjevo/smooth{ @@ -30441,10 +24836,7 @@ climb_delay = 1; layer = 2.99 }, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/interior_protected/caves) "tqh" = ( /obj/structure/window/framed/colony/reinforced, @@ -30458,17 +24850,11 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/shiva{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/southeast, /area/varadero/interior/medical) "tqV" = ( /obj/structure/platform_decoration/kutjevo, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/exterior/pontoon_beach) "trh" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -30477,9 +24863,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/comms3) "trB" = ( /obj/item/stack/sheet/wood{ @@ -30523,16 +24907,11 @@ /area/varadero/exterior/monsoon) "trQ" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/caves) "tso" = ( /obj/structure/closet/athletic_mixed, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull/west, /area/varadero/interior/maintenance) "tsz" = ( /obj/structure/prop/ice_colony/dense/planter_box/plated{ @@ -30542,9 +24921,7 @@ /obj/structure/flora/bush/ausbushes/pointybush{ pixel_y = 11 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/hall_SE) "tsC" = ( /obj/structure/flora/bush/ausbushes/var3/sparsegrass{ @@ -30554,17 +24931,11 @@ /area/varadero/exterior/eastbeach) "tsX" = ( /obj/structure/machinery/cm_vending/sorted/tech/tool_storage, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/shiva/blue/north, /area/varadero/interior/technical_storage) "tuL" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "greenfull" - }, +/turf/open/floor/shiva/greenfull/west, /area/varadero/interior/hall_SE) "tuR" = ( /obj/structure/flora/bush/ausbushes/var3/fullgrass, @@ -30584,18 +24955,14 @@ pixel_y = 7 }, /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/maintenance/south) "tvv" = ( /obj/structure/disposalpipe/segment{ dir = 1; icon_state = "pipe-c" }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/hall_SE) "tvI" = ( /obj/structure/surface/table/reinforced/prison, @@ -30611,18 +24978,13 @@ dir = 8; pixel_x = 3 }, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "snow_mat" - }, +/turf/open/floor/shiva/snow_mat/east, /area/varadero/interior/security) "twm" = ( /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/shiva{ - icon_state = "green" - }, +/turf/open/floor/shiva/green, /area/varadero/interior/hall_SE) "tyT" = ( /obj/structure/disposalpipe/segment{ @@ -30635,31 +24997,28 @@ /obj/structure/barricade/handrail/wire{ dir = 4 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/medical) +"tyV" = ( +/obj/structure/platform_decoration/kutjevo{ + dir = 4 + }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, +/area/varadero/exterior/pontoon_beach/lz) "tzp" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/hall_NW) "tzw" = ( -/turf/open/floor{ - icon_state = "wood" - }, +/turf/open/floor/wood, /area/varadero/interior/library) "tzP" = ( /obj/structure/barricade/handrail/wire{ layer = 3.1 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/varadero/exterior/lz1_near) "tAT" = ( /obj/effect/landmark/corpsespawner/colonist/burst, @@ -30668,9 +25027,7 @@ "tBm" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/toolbox, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/security) "tCl" = ( /obj/structure/window/framed/colony, @@ -30683,50 +25040,33 @@ "tCG" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/toolbox, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/lz1_near) "tCM" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/shiva/red/north, /area/varadero/interior/security) "tCV" = ( /obj/effect/decal/cleanable/blood/drip, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/varadero/exterior/lz2_near) "tDh" = ( /obj/structure/pipes/portables_connector{ dir = 8 }, /obj/structure/machinery/portable_atmospherics/canister/oxygen, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/medical) "tDo" = ( /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/caves) "tDF" = ( -/turf/open/floor/shiva{ - dir = 1; - icon_state = "snow_mat" - }, +/turf/open/floor/shiva/snow_mat/north, /area/varadero/interior/maintenance) "tDR" = ( /obj/structure/largecrate/random/barrel/green, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/caves) "tEc" = ( /obj/structure/platform/kutjevo/smooth{ @@ -30745,9 +25085,7 @@ /turf/open/auto_turf/sand_white/layer1, /area/varadero/interior_protected/caves/central) "tEJ" = ( -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/hall_SE) "tEM" = ( /obj/structure/prop/invuln/overhead_pipe{ @@ -30764,10 +25102,7 @@ /area/varadero/exterior/eastbeach) "tER" = ( /obj/structure/prop/rock/brown, -/turf/open/gm/river/ocean{ - name = "deep ocean"; - default_name = "deep ocean" - }, +/turf/open/gm/river/ocean/deep_ocean, /area/varadero/exterior/comms4) "tFQ" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, @@ -30778,25 +25113,16 @@ /obj/structure/closet/secure_closet/security_empty, /obj/item/ammo_box/magazine/shotgun/buckshot, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/shiva/blue/west, /area/varadero/interior/administration) "tGl" = ( -/turf/open/floor/shiva{ - dir = 5; - icon_state = "purple" - }, +/turf/open/floor/shiva/purple/northeast, /area/varadero/interior/research) "tGr" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "snow_mat" - }, +/turf/open/floor/shiva/snow_mat/east, /area/varadero/interior/medical) "tGw" = ( /obj/structure/platform/kutjevo/smooth{ @@ -30812,18 +25138,13 @@ /area/varadero/interior/hall_N) "tHc" = ( /obj/structure/prop/rock/brown, -/turf/open/gm/river/ocean{ - name = "deep ocean"; - default_name = "deep ocean" - }, +/turf/open/gm/river/ocean/deep_ocean, /area/varadero/exterior/eastocean) "tIT" = ( /obj/structure/closet/crate/trashcart{ pixel_y = 8 }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/disposals) "tIV" = ( /obj/structure/surface/table/reinforced, @@ -30849,10 +25170,7 @@ /obj/item/device/flashlight/lamp/green{ pixel_y = 7 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull/west, /area/varadero/interior/medical) "tKr" = ( /obj/structure/machinery/light, @@ -30862,18 +25180,13 @@ /obj/structure/window/reinforced/tinted{ dir = 8 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull/west, /area/varadero/interior/security) "tKw" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/varadero/interior/toilets) "tKI" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -30885,9 +25198,7 @@ dir = 8; pixel_x = 3 }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/records) "tLu" = ( /obj/structure/window/framed/colony/reinforced, @@ -30900,10 +25211,7 @@ "tMx" = ( /obj/structure/closet/secure_closet/freezer/fridge, /obj/item/key/cargo_train, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "purplefull" - }, +/turf/open/floor/shiva/purplefull/west, /area/varadero/interior/research) "tMJ" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, @@ -30943,9 +25251,7 @@ climb_delay = 1; layer = 2.99 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/pontoon_beach) "tNE" = ( /obj/structure/filingcabinet{ @@ -30978,19 +25284,14 @@ /area/varadero/interior/administration) "tOd" = ( /obj/item/clothing/suit/armor/vest, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/electrical) "tOp" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22"; pixel_y = 8 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellowfull" - }, +/turf/open/floor/shiva/yellowfull/west, /area/varadero/interior/hall_NW) "tOx" = ( /obj/structure/platform/kutjevo/smooth{ @@ -31006,20 +25307,22 @@ dir = 8 }, /obj/structure/blocker/invisible_wall/water, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/oob) +"tOB" = ( +/obj/structure/platform/kutjevo/smooth{ + climb_delay = 1; + layer = 2.99 + }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, +/area/varadero/exterior/pontoon_beach/lz) "tOK" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/device/camera{ pixel_y = 5 }, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull/west, /area/varadero/interior/administration) "tOV" = ( /obj/item/tool/warning_cone, @@ -31029,9 +25332,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/hall_N) "tPE" = ( /obj/item/tool/pickaxe, @@ -31045,9 +25346,7 @@ pixel_y = 24 }, /obj/structure/largecrate/random/case/small, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/cargo) "tPK" = ( /obj/structure/prop/invuln/lattice_prop{ @@ -31062,31 +25361,21 @@ /obj/structure/machinery/microwave{ pixel_y = 6 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "green" - }, +/turf/open/floor/shiva/green/west, /area/varadero/interior/mess) "tQn" = ( /obj/structure/closet/coffin, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/shiva/red/north, /area/varadero/interior/morgue) "tQy" = ( /obj/structure/window/framed/colony/reinforced, -/turf/open/floor/shiva{ - icon_state = "snow_mat" - }, +/turf/open/floor/shiva/snow_mat, /area/varadero/interior/maintenance) "tQz" = ( /obj/structure/sink{ pixel_y = 15 }, -/turf/open/floor/shiva{ - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull, /area/varadero/interior/medical) "tQI" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -31094,14 +25383,10 @@ dir = 8; icon_state = "cartridge_2" }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/bunks) "tQT" = ( -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/comms1) "tRs" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -31112,9 +25397,7 @@ req_access_txt = "100"; req_one_access = null }, -/turf/open/floor/shiva{ - icon_state = "wredfull" - }, +/turf/open/floor/shiva/wredfull, /area/varadero/interior/medical) "tRN" = ( /obj/structure/prop/rock/brown, @@ -31123,10 +25406,7 @@ "tSg" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/disposalpipe/segment, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/east, /area/varadero/interior/hall_SE) "tSK" = ( /obj/structure/window/framed/wood, @@ -31140,9 +25420,7 @@ /area/varadero/interior/caves/north_research) "tSR" = ( /obj/structure/window_frame/colony/reinforced, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/caves) "tTo" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -31150,9 +25428,7 @@ /obj/structure/prop/souto_land/streamer{ pixel_y = 24 }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/hall_NW) "tTq" = ( /obj/effect/landmark/lv624/fog_blocker{ @@ -31160,10 +25436,7 @@ }, /obj/structure/blocker/invisible_wall/water, /obj/structure/flora/bush/ausbushes/var3/stalkybush, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/exterior/farocean) "tTN" = ( /obj/structure/stairs/perspective{ @@ -31172,9 +25445,7 @@ icon_state = "p_stair_ew_full_cap"; layer = 3.5 }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/disposals) "tTU" = ( /obj/item/device/flashlight/lamp/tripod, @@ -31187,10 +25458,7 @@ /obj/structure/window/reinforced/tinted{ dir = 4 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull/west, /area/varadero/interior/security) "tVf" = ( /obj/structure/closet/crate, @@ -31199,24 +25467,17 @@ /turf/open/gm/dirt, /area/varadero/exterior/lz1_near) "tVj" = ( -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/caves/east) "tVl" = ( /obj/structure/machinery/storm_siren{ pixel_y = 5 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "greenfull" - }, +/turf/open/floor/shiva/greenfull/west, /area/varadero/interior/hall_SE) "tVo" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/cargo) "tVD" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -31225,16 +25486,12 @@ pixel_x = 17; pixel_y = 16 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/research) "tVX" = ( /obj/structure/surface/rack, /obj/item/maintenance_jack, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/maintenance/south) "tWA" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, @@ -31252,10 +25509,7 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellowfull" - }, +/turf/open/floor/shiva/yellowfull/west, /area/varadero/interior/laundry) "tXu" = ( /turf/closed/wall/r_wall/unmeltable, @@ -31272,10 +25526,7 @@ /turf/open/floor/wood, /area/varadero/interior/administration) "tXF" = ( -/turf/open/floor/shiva{ - dir = 8; - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull/west, /area/varadero/interior/hall_SE) "tXT" = ( /obj/structure/fence, @@ -31288,9 +25539,7 @@ /turf/open/floor/plating, /area/varadero/interior_protected/caves/digsite) "tYg" = ( -/turf/open/floor/shiva{ - icon_state = "red" - }, +/turf/open/floor/shiva/red, /area/varadero/interior/medical) "tYw" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -31299,9 +25548,7 @@ /obj/structure/barricade/wooden{ dir = 8 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/security) "tYP" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -31313,17 +25560,13 @@ /obj/structure/barricade/wooden{ dir = 8 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance) "tYT" = ( /obj/structure/machinery/storm_siren{ pixel_y = 5 }, -/turf/open/floor/shiva{ - icon_state = "purple" - }, +/turf/open/floor/shiva/purple, /area/varadero/interior/research) "tZl" = ( /obj/effect/landmark/lv624/fog_blocker{ @@ -31340,27 +25583,18 @@ name = "\improper Underground Engineering Locker Room"; req_access_txt = "100" }, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/north, /area/varadero/interior/electrical) "tZr" = ( /obj/item/toy/deck/uno{ pixel_y = 6 }, /obj/structure/surface/table, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/varadero/exterior/lz1_near) "tZE" = ( /obj/structure/machinery/chem_master, -/turf/open/floor/shiva{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/shiva/red/northeast, /area/varadero/interior/medical) "uaU" = ( /obj/effect/decal/warning_stripes{ @@ -31373,10 +25607,7 @@ /obj/structure/machinery/landinglight/ds2/delayone{ dir = 8 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/varadero/exterior/lz1_near) "uaY" = ( /obj/structure/machinery/door/poddoor/almayer/planet_side_blastdoor{ @@ -31386,10 +25617,7 @@ openspeed = 17; dir = 4 }, -/turf/open/floor/plating/icefloor{ - dir = 4; - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate/east, /area/varadero/interior/cargo) "ubF" = ( /obj/structure/disposalpipe/segment{ @@ -31398,29 +25626,19 @@ }, /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/machinery/medical_pod/sleeper, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/medical) "ubH" = ( /obj/structure/closet/secure_closet/personal/patient, /obj/structure/barricade/handrail/wire{ dir = 4 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/medical) "ubJ" = ( /obj/effect/decal/cleanable/blood/oil/streak, /turf/open/auto_turf/sand_white/layer1, /area/varadero/interior_protected/maintenance/south) -"ubK" = ( -/obj/structure/machinery/power/geothermal, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, -/area/varadero/interior/electrical) "ubT" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk{ @@ -31432,10 +25650,7 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellowfull" - }, +/turf/open/floor/shiva/yellowfull/west, /area/varadero/interior/cargo) "ucv" = ( /obj/structure/barricade/handrail/wire{ @@ -31443,24 +25658,16 @@ }, /obj/structure/closet/radiation, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/shiva{ - icon_state = "purple" - }, +/turf/open/floor/shiva/purple, /area/varadero/interior/research) "ucL" = ( /obj/structure/flora/bush/ausbushes/var3/fernybush, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/exterior/monsoon) "udg" = ( /obj/structure/closet/secure_closet/engineering_welding, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/shiva/blue/north, /area/varadero/interior/technical_storage) "udp" = ( /obj/structure/prop/rock/brown, @@ -31468,33 +25675,24 @@ /area/varadero/exterior/eastbeach) "ueg" = ( /obj/vehicle/train/cargo/trolley, -/turf/open/floor/shiva{ - icon_state = "blue" - }, +/turf/open/floor/shiva/blue, /area/varadero/interior/hall_SE) "uet" = ( /turf/open/gm/coast/beachcorner/north_west, /area/varadero/interior/caves/east) "ueB" = ( /obj/structure/cable, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/lz2_near) "ueP" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance) "ueQ" = ( /obj/structure/computer3frame, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/varadero/interior_protected/vessel) "ufn" = ( /obj/structure/stairs/perspective{ @@ -31527,16 +25725,10 @@ pixel_y = 5 }, /obj/structure/surface/table, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/varadero/exterior/lz1_near) "ufV" = ( -/turf/open/floor/shiva{ - dir = 4; - icon_state = "green" - }, +/turf/open/floor/shiva/green/east, /area/varadero/interior/court) "ugi" = ( /obj/structure/bed/chair{ @@ -31546,9 +25738,7 @@ dir = 1; icon_state = "warning_c" }, -/turf/open/floor/shiva{ - icon_state = "green" - }, +/turf/open/floor/shiva/green, /area/varadero/interior/court) "ugR" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -31557,26 +25747,18 @@ /turf/open/floor/prison/chapel_carpet, /area/varadero/interior/chapel) "ugW" = ( -/turf/open/floor/shiva{ - icon_state = "blue" - }, +/turf/open/floor/shiva/blue, /area/varadero/interior/administration) "uhi" = ( /obj/structure/prop/ice_colony/dense/planter_box/hydro{ desc = "A high-power hydroelectric generator."; name = "hydroelectric generator" }, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/exterior/farocean) "uhD" = ( /obj/structure/machinery/light, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull/west, /area/varadero/interior/hall_SE) "uhV" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, @@ -31584,23 +25766,16 @@ /area/varadero/interior_protected/caves/swcaves) "uiq" = ( /obj/structure/surface/table, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/hall_N) "uiy" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/device/taperecorder, -/turf/open/floor/shiva{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/shiva/red/southeast, /area/varadero/interior/security) "ujg" = ( /obj/effect/landmark/ert_spawns/groundside_xeno, -/turf/open/shuttle{ - icon_state = "floor6" - }, +/turf/open/shuttle/red, /area/varadero/interior_protected/vessel) "ujp" = ( /obj/structure/bed/chair{ @@ -31611,10 +25786,7 @@ /obj/item/paper/crumpled{ pixel_x = 9 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/west, /area/varadero/interior/hall_NW) "ujR" = ( /obj/item/shard{ @@ -31622,48 +25794,33 @@ pixel_x = -5; pixel_y = -6 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "snow_mat" - }, +/turf/open/floor/shiva/snow_mat/west, /area/varadero/interior/maintenance) "ukw" = ( /obj/structure/window/reinforced{ dir = 1 }, /obj/structure/disposalpipe/segment, -/turf/open/floor/plating{ - dir = 1; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/north, /area/varadero/interior/disposals) "ukz" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/disposalpipe/segment, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/cargo) "ukX" = ( /obj/structure/surface/rack, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/north) "ulb" = ( /obj/structure/prop/rock/brown, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/exterior/eastocean) "uli" = ( /obj/structure/bed/chair/hunter{ dir = 4 }, -/turf/open/shuttle{ - icon_state = "floor6" - }, +/turf/open/shuttle/red, /area/varadero/interior_protected/vessel) "ulv" = ( /turf/open/auto_turf/sand_white/layer1, @@ -31674,10 +25831,7 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/shiva/red/north, /area/varadero/interior/security) "umO" = ( /obj/structure/bed/chair{ @@ -31688,9 +25842,7 @@ pixel_x = -24; start_charge = 0 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/hall_NW) "umT" = ( /turf/open/floor/carpet, @@ -31711,10 +25863,7 @@ pixel_x = -8; pixel_y = 11 }, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/shiva/red/north, /area/varadero/interior/security) "unw" = ( /obj/structure/machinery/alarm{ @@ -31751,10 +25900,7 @@ pixel_x = -17; pixel_y = -19 }, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/exterior/pontoon_beach) "uon" = ( /obj/structure/largecrate/random, @@ -31766,15 +25912,11 @@ /obj/structure/machinery/storm_siren{ pixel_y = 5 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/caves/east) "uoO" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/security) "uoU" = ( /obj/structure/platform/kutjevo/smooth{ @@ -31798,9 +25940,7 @@ dir = 8; layer = 3.5 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/eastbeach) "upH" = ( /obj/structure/flora/bush/ausbushes/var3/ywflowers, @@ -31821,16 +25961,12 @@ pixel_x = 5; pixel_y = 16 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/hall_SE) "uqw" = ( /obj/structure/surface/rack, /obj/item/reagent_container/blood/OMinus, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/security) "uqx" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -31841,9 +25977,7 @@ req_access_txt = "100"; req_one_access = null }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/maintenance) "uqU" = ( /obj/structure/surface/table/woodentable, @@ -31863,15 +25997,10 @@ /area/varadero/interior/court) "urA" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/hall_N) "urD" = ( -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/exterior/lz2_near) "urE" = ( /obj/structure/bed/chair/comfy/lime{ @@ -31884,9 +26013,7 @@ dir = 4 }, /obj/structure/machinery/light/small, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/security) "usQ" = ( /obj/item/facepaint/sunscreen_stick, @@ -31905,9 +26032,7 @@ /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/morgue) "uul" = ( /obj/structure/machinery/light{ @@ -31932,27 +26057,17 @@ pixel_y = -24; start_charge = 0 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/varadero/interior/laundry) "uuN" = ( -/turf/open/floor/shiva{ - dir = 9; - icon_state = "purple" - }, +/turf/open/floor/shiva/purple/northwest, /area/varadero/interior/research) "uvd" = ( -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/varadero/interior_protected/vessel) "uvr" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/security) "uvw" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -31962,9 +26077,7 @@ name = "Underground Morgue"; req_access_txt = "100" }, -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/varadero/interior/morgue) "uvB" = ( /obj/structure/machinery/shower{ @@ -31979,21 +26092,15 @@ dir = 4 }, /obj/effect/landmark/objective_landmark/far, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance) "uww" = ( -/turf/open/floor/shiva{ - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow, /area/varadero/interior/hall_N) "uwJ" = ( /obj/structure/surface/rack, /obj/item/tool/screwdriver, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/security) "uwN" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -32007,10 +26114,7 @@ "uwQ" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/storage/box/lightstick, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/north, /area/varadero/interior/electrical) "uxi" = ( /obj/structure/stairs/perspective{ @@ -32023,10 +26127,7 @@ climb_delay = 1; layer = 2.99 }, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/varadero/interior_protected/vessel) "uxM" = ( /obj/structure/blocker/invisible_wall/water, @@ -32038,49 +26139,35 @@ pixel_y = 24 }, /obj/structure/largecrate/random, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/cargo) "uyK" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/technical_storage) "uzb" = ( /obj/structure/machinery/alarm{ pixel_y = 24 }, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/north, /area/varadero/interior/disposals) "uzg" = ( /obj/structure/machinery/light, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/hall_SE) "uzr" = ( /obj/structure/machinery/computer/atmos_alert{ dir = 8 }, /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/shiva{ - dir = 5; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/northeast, /area/varadero/interior/disposals) "uzs" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/landmark/objective_landmark/far, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/administration) "uAt" = ( /obj/structure/machinery/door/airlock/almayer/maint{ @@ -32089,9 +26176,7 @@ req_access_txt = "100"; req_one_access = null }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/north) "uAM" = ( /obj/structure/largecrate/random/barrel/yellow, @@ -32106,18 +26191,13 @@ /area/varadero/interior/maintenance/north) "uBX" = ( /obj/vehicle/train/cargo/engine, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/varadero/interior/cargo) "uCc" = ( /obj/structure/machinery/cm_vending/sorted/tech/comp_storage{ req_access_txt = "102" }, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/north, /area/varadero/interior/technical_storage) "uCe" = ( /turf/open/floor/prison/chapel_carpet, @@ -32132,43 +26212,32 @@ dir = 4; icon_state = "pipe-c" }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/hall_N) "uDQ" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/cargo) "uEc" = ( /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/security) "uEz" = ( /obj/structure/disposalpipe/segment{ dir = 4; icon_state = "pipe-c" }, -/turf/open/floor/shiva{ - icon_state = "blue" - }, +/turf/open/floor/shiva/blue, /area/varadero/interior/administration) "uEE" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/prison/chapel_carpet{ - dir = 1; - icon_state = "doubleside" - }, +/turf/open/floor/prison/chapel_carpet/doubleside/north, /area/varadero/interior/chapel) "uEF" = ( /obj/structure/barricade/handrail/wire{ @@ -32182,31 +26251,20 @@ /area/varadero/interior/maintenance/north) "uEI" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellowfull" - }, +/turf/open/floor/shiva/yellowfull/west, /area/varadero/interior/hall_SE) "uFq" = ( -/turf/open/gm/dirt{ - icon_state = "desert0" - }, +/turf/open/gm/dirt/desert0, /area/varadero/exterior/monsoon) "uFE" = ( /obj/effect/decal/cleanable/blood/oil, /obj/structure/machinery/landinglight/ds2/delaythree{ dir = 4 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/varadero/exterior/lz1_near) "uFJ" = ( -/turf/open/floor/shiva{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/shiva/red/west, /area/varadero/interior/security) "uFO" = ( /obj/structure/platform/kutjevo/smooth{ @@ -32219,18 +26277,13 @@ /obj/effect/decal/warning_stripes{ icon_state = "N" }, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "yellowcorners" - }, +/turf/open/floor/shiva/yellowcorners/east, /area/varadero/interior/cargo) "uGs" = ( /obj/structure/machinery/power/terminal{ dir = 8 }, -/turf/open/floor{ - icon_state = "bcircuit" - }, +/turf/open/floor/bcircuit, /area/varadero/interior/maintenance/north) "uHD" = ( /obj/structure/machinery/landinglight/ds1/spoke{ @@ -32253,9 +26306,7 @@ /obj/structure/prop/static_tank{ pixel_y = 8 }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/disposals) "uIl" = ( /obj/structure/machinery/alarm{ @@ -32273,9 +26324,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/security) "uIR" = ( /turf/closed/wall, @@ -32297,9 +26346,7 @@ /obj/structure/machinery/photocopier{ pixel_y = 4 }, -/turf/open/floor/wood{ - icon_state = "wood-broken6" - }, +/turf/open/floor/wood/wood_broken6, /area/varadero/interior/dock_control) "uKY" = ( /obj/structure/platform/kutjevo/smooth{ @@ -32316,10 +26363,7 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/exterior/pontoon_beach) "uKZ" = ( /obj/item/stack/tile/plasteel{ @@ -32336,15 +26380,10 @@ pixel_y = 9 }, /obj/item/clothing/head/cmcap, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/bunks) "uLY" = ( -/turf/open/floor/shiva{ - dir = 8; - icon_state = "greenfull" - }, +/turf/open/floor/shiva/greenfull/west, /area/varadero/interior/hall_SE) "uMu" = ( /obj/structure/surface/table/reinforced/prison, @@ -32353,10 +26392,7 @@ /area/varadero/interior/records) "uMx" = ( /obj/structure/dispenser, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/shiva/blue/north, /area/varadero/interior/technical_storage) "uMB" = ( /obj/structure/surface/table, @@ -32366,10 +26402,7 @@ dir = 8; pixel_x = -24 }, -/turf/open/floor/shiva{ - dir = 10; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/southwest, /area/varadero/interior/technical_storage) "uMQ" = ( /obj/item/ammo_casing/shell{ @@ -32377,9 +26410,7 @@ }, /obj/effect/decal/cleanable/blood, /obj/item/weapon/gun/pistol/mod88, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/caves) "uNh" = ( /obj/structure/closet/secure_closet/personal{ @@ -32392,14 +26423,10 @@ pixel_x = -6; pixel_y = 15 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/varadero/interior/laundry) "uNq" = ( -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/laundry) "uNz" = ( /obj/structure/blocker/invisible_wall/water, @@ -32412,9 +26439,7 @@ icon_state = "pipe-c" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/medical) "uOk" = ( /obj/structure/platform/kutjevo/smooth{ @@ -32436,24 +26461,16 @@ dir = 4 }, /obj/structure/blocker/invisible_wall/water, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/oob) "uOo" = ( /obj/structure/pipes/vents/pump, /obj/structure/bed/roller, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/shiva/red/west, /area/varadero/interior/morgue) "uOC" = ( /obj/structure/closet/emcloset, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "green" - }, +/turf/open/floor/shiva/green/east, /area/varadero/interior/hall_N) "uOF" = ( /obj/structure/prop/invuln/overhead_pipe{ @@ -32464,20 +26481,13 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/shiva{ - icon_state = "snow_mat" - }, +/turf/open/floor/shiva/snow_mat, /area/varadero/interior/maintenance) "uOL" = ( -/turf/open/floor/shiva{ - dir = 1; - icon_state = "purple" - }, +/turf/open/floor/shiva/purple/north, /area/varadero/interior/hall_NW) "uQa" = ( -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/caves) "uQi" = ( /turf/closed/wall/r_wall/unmeltable, @@ -32486,28 +26496,20 @@ /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/shiva{ - icon_state = "green" - }, +/turf/open/floor/shiva/green, /area/varadero/interior/court) "uQJ" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/disposalpipe/segment, /obj/item/stack/sheet/metal, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/hall_SE) "uQK" = ( -/turf/open/floor/shiva{ - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow, /area/varadero/interior/cargo) "uRa" = ( /obj/effect/decal/cleanable/blood/drip, -/turf/open/gm/dirt{ - icon_state = "desert3" - }, +/turf/open/gm/dirt/desert3, /area/varadero/exterior/eastbeach) "uRU" = ( /turf/closed/wall/r_wall/elevator, @@ -32528,33 +26530,22 @@ /area/varadero/exterior/monsoon) "uTj" = ( /obj/structure/flora/bush/ausbushes/var3/fernybush, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/exterior/comms4) "uTq" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/item/device/flashlight/lamp/tripod, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/security) "uTu" = ( /turf/open/gm/coast/beachcorner/south_east, /area/varadero/exterior/pontoon_beach) "uTA" = ( /obj/effect/landmark/xeno_spawn, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/varadero/interior_protected/vessel) "uTV" = ( -/turf/open/floor/shiva{ - dir = 8; - icon_state = "wred" - }, +/turf/open/floor/shiva/wred/west, /area/varadero/interior/medical) "uTY" = ( /obj/structure/prop/rock/brown, @@ -32565,9 +26556,7 @@ /obj/structure/pipes/standard/manifold/visible{ dir = 1 }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/medical) "uUl" = ( /obj/structure/bed/sofa/pews/flipped{ @@ -32587,9 +26576,7 @@ /obj/item/device/defibrillator{ pixel_y = 5 }, -/turf/open/floor/shiva{ - icon_state = "red" - }, +/turf/open/floor/shiva/red, /area/varadero/interior/medical) "uUS" = ( /obj/structure/disposalpipe/junction{ @@ -32597,22 +26584,14 @@ icon_state = "pipe-j2" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/shiva{ - icon_state = "redcorners" - }, +/turf/open/floor/shiva/redcorners, /area/varadero/interior/security) "uUW" = ( /obj/structure/machinery/vending/coffee, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "greenfull" - }, +/turf/open/floor/shiva/greenfull/west, /area/varadero/interior/medical) "uVe" = ( -/turf/open/floor/shiva{ - dir = 6; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/southeast, /area/varadero/interior/cargo) "uVo" = ( /obj/structure/prop/invuln/lattice_prop{ @@ -32620,9 +26599,7 @@ pixel_x = -16; pixel_y = 24 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/research) "uVu" = ( /obj/structure/disposalpipe/segment{ @@ -32634,9 +26611,7 @@ "uVy" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/item/tool/crowbar/red, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/maintenance/south) "uVR" = ( /obj/structure/barricade/wooden{ @@ -32645,18 +26620,13 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/wood{ - icon_state = "wood-broken" - }, +/turf/open/floor/wood/wood_broken, /area/varadero/interior/beach_bar) "uVV" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "green" - }, +/turf/open/floor/shiva/green/east, /area/varadero/interior/hall_NW) "uVY" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -32666,15 +26636,11 @@ dir = 8; icon_state = "pipe-c" }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/hall_SE) "uWo" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/gm/dirt{ - icon_state = "desert0" - }, +/turf/open/gm/dirt/desert0, /area/varadero/exterior/eastocean) "uWA" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -32688,17 +26654,13 @@ layer = 3.1 }, /obj/structure/pipes/binary/passive_gate, -/turf/open/gm/river/desert/deep{ - base_river_slowdown = 0 - }, +/turf/open/gm/river/desert/deep/no_slowdown, /area/varadero/interior/maintenance/north) "uXw" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/hall_SE) "uXR" = ( /obj/structure/machinery/storm_siren{ @@ -32712,9 +26674,7 @@ /area/varadero/interior/toilets) "uXX" = ( /obj/structure/machinery/light, -/turf/open/floor/shiva{ - icon_state = "green" - }, +/turf/open/floor/shiva/green, /area/varadero/interior/mess) "uXZ" = ( /obj/structure/window/framed/colony, @@ -32727,16 +26687,11 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/mess) "uYJ" = ( /obj/structure/flora/bush/ausbushes/var3/stalkybush, -/turf/open/gm/river/ocean{ - name = "deep ocean"; - default_name = "deep ocean" - }, +/turf/open/gm/river/ocean/deep_ocean, /area/varadero/exterior/pontoon_beach) "uYL" = ( /obj/item/stack/tile/plasteel{ @@ -32749,9 +26704,8 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/obj/structure/machinery/fuelcell_recycler/full, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/electrical) "uZK" = ( /obj/effect/decal/cleanable/blood/oil, @@ -32759,20 +26713,14 @@ dir = 4; pixel_x = -3 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/varadero/exterior/lz1_near) "uZY" = ( /obj/structure/machinery/door/airlock/almayer/engineering/glass{ req_access = null; req_one_access = null }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellowfull" - }, +/turf/open/floor/shiva/yellowfull/west, /area/varadero/interior/cargo) "vap" = ( /obj/structure/machinery/alarm{ @@ -32782,10 +26730,7 @@ dir = 4; pixel_x = 24 }, -/turf/open/floor/shiva{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/shiva/red/northeast, /area/varadero/interior/security) "vaV" = ( /obj/structure/surface/table/reinforced/prison, @@ -32797,10 +26742,7 @@ pixel_x = 5; pixel_y = 3 }, -/turf/open/floor/shiva{ - dir = 9; - icon_state = "blue" - }, +/turf/open/floor/shiva/blue/northwest, /area/varadero/interior/administration) "vbr" = ( /obj/structure/prop/souto_land/pole, @@ -32808,10 +26750,7 @@ dir = 4; pixel_y = 24 }, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "purple" - }, +/turf/open/floor/shiva/purple/east, /area/varadero/interior/hall_NW) "vbH" = ( /obj/effect/overlay/palmtree_r{ @@ -32845,17 +26784,12 @@ req_access_txt = "100"; req_one_access = null }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/administration) "vcj" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/tool/surgery/scalpel, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/shiva/red/north, /area/varadero/interior/morgue) "vco" = ( /obj/item/paper_bin, @@ -32867,9 +26801,7 @@ /area/varadero/interior/security) "vct" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/caves/swcaves) "vcz" = ( /obj/structure/prop/rock/brown, @@ -32885,9 +26817,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/research) "vdL" = ( /obj/effect/landmark/xeno_spawn, @@ -32927,10 +26857,7 @@ dir = 1; icon_state = "warning_s" }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "green" - }, +/turf/open/floor/shiva/green/west, /area/varadero/interior/hall_N) "vfj" = ( /obj/structure/desertdam/decals/road_edge{ @@ -32966,19 +26893,13 @@ /area/varadero/interior/court) "vfG" = ( /obj/effect/landmark/railgun_camera_pos, -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/west, /area/varadero/exterior/lz1_near) "vfH" = ( /obj/structure/surface/table, /obj/item/bodybag, /obj/structure/machinery/light, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/shiva/red/north, /area/varadero/interior/morgue) "vgu" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -32988,9 +26909,7 @@ req_access_txt = "100"; req_one_access = null }, -/turf/open/floor/shiva{ - icon_state = "wred" - }, +/turf/open/floor/shiva/wred, /area/varadero/interior/medical) "vgA" = ( /obj/item/stool{ @@ -33014,10 +26933,7 @@ dir = 8; icon_state = "chair_alt" }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull/west, /area/varadero/interior/medical) "vhw" = ( /obj/structure/sign/safety/water{ @@ -33029,16 +26945,11 @@ /obj/structure/blocker/invisible_wall/water, /obj/structure/blocker/invisible_wall/water, /obj/structure/flora/bush/ausbushes/var3/stalkybush, -/turf/open/gm/river/ocean{ - name = "deep ocean"; - default_name = "deep ocean" - }, +/turf/open/gm/river/ocean/deep_ocean, /area/varadero/exterior/farocean) "vhI" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/caves/central) "vhJ" = ( /obj/structure/surface/table/reinforced/prison, @@ -33075,9 +26986,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/security) "viP" = ( /obj/structure/disposalpipe/segment{ @@ -33090,10 +26999,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/north, /area/varadero/interior/comms3) "viY" = ( /obj/structure/prop/structure_lattice{ @@ -33114,18 +27020,14 @@ pixel_x = 18; pixel_y = 23 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/lz1_near) "vjA" = ( /obj/structure/reagent_dispensers/beerkeg/alt, /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/varadero/interior/cargo) "vjO" = ( /obj/structure/platform/kutjevo/smooth{ @@ -33141,10 +27043,7 @@ /area/varadero/exterior/monsoon) "vjZ" = ( /obj/structure/platform_decoration/kutjevo, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/exterior/farocean) "vke" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ @@ -33155,10 +27054,7 @@ "vku" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/item/stool, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "purplefull" - }, +/turf/open/floor/shiva/purplefull/west, /area/varadero/interior/research) "vll" = ( /obj/effect/decal/cleanable/blood/drip, @@ -33169,16 +27065,11 @@ /area/varadero/exterior/lz2_near) "vlm" = ( /obj/item/lightstick/variant/planted, -/turf/open/gm/river/ocean{ - name = "deep ocean"; - default_name = "deep ocean" - }, +/turf/open/gm/river/ocean/deep_ocean, /area/varadero/exterior/farocean) "vlw" = ( /obj/structure/barricade/wooden, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/security) "vlB" = ( /obj/structure/largecrate/random/barrel/white, @@ -33191,15 +27082,11 @@ pixel_y = 24 }, /obj/structure/window_frame/colony, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/eastbeach) "vmc" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/varadero/interior/electrical) "vmw" = ( /obj/structure/flora/bush/ausbushes/var3/sparsegrass, @@ -33211,16 +27098,11 @@ icon_state = "medium" }, /obj/item/stack/sheet/metal, -/turf/open/shuttle{ - icon_state = "floor6" - }, +/turf/open/shuttle/red, /area/varadero/interior_protected/vessel) "vnb" = ( /obj/structure/bed/chair/hunter, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/varadero/interior_protected/vessel) "vnm" = ( /turf/closed/wall, @@ -33229,28 +27111,19 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/east, /area/varadero/interior/electrical) "vnN" = ( /obj/structure/morgue, /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/shiva/red/east, /area/varadero/interior/morgue) "vnU" = ( /obj/item/storage/box/bodybags, /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/shiva{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/shiva/red/southwest, /area/varadero/interior/security) "vom" = ( /obj/item/storage/beer_pack, @@ -33273,10 +27146,7 @@ /area/varadero/interior/caves/east) "vpr" = ( /obj/effect/decal/cleanable/blood/xeno, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/varadero/exterior/lz1_near) "vpQ" = ( /obj/structure/machinery/storm_siren{ @@ -33286,9 +27156,7 @@ /turf/open/gm/coast/west, /area/varadero/exterior/pool) "vpV" = ( -/turf/open/floor/shiva{ - icon_state = "snow_mat" - }, +/turf/open/floor/shiva/snow_mat, /area/varadero/interior/security) "vqd" = ( /obj/structure/machinery/door/airlock/almayer/maint{ @@ -33296,25 +27164,18 @@ req_access_txt = "100"; req_one_access = null }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/hall_SE) "vqw" = ( /obj/structure/bed/chair/office/dark{ dir = 1 }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull/west, /area/varadero/interior/hall_SE) "vqG" = ( /obj/structure/largecrate/random, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/caves/east) "vqK" = ( /obj/item/stack/sheet/wood, @@ -33324,19 +27185,13 @@ /obj/structure/platform_decoration/kutjevo{ dir = 8 }, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/exterior/comms4) "vqU" = ( /obj/effect/landmark/corpsespawner/chef, /obj/effect/decal/cleanable/blood, /obj/effect/decal/cleanable/blood/gibs, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/north, /area/varadero/interior/mess) "vqY" = ( /turf/open/floor/carpet, @@ -33351,24 +27206,18 @@ pixel_x = -16; pixel_y = 13 }, -/turf/open/gm/dirt{ - icon_state = "desert3" - }, +/turf/open/gm/dirt/desert3, /area/varadero/interior/maintenance/north) "vrh" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/medical) "vrj" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/chem_dispenser/soda{ pixel_y = 7 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/hall_SE) "vru" = ( /obj/structure/bed/chair/comfy/beige, @@ -33386,9 +27235,7 @@ buckling_y = 18; dir = 8 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/security) "vsa" = ( /obj/structure/prop/invuln/lattice_prop{ @@ -33396,41 +27243,30 @@ pixel_x = 16; pixel_y = 24 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/cargo) "vss" = ( -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/pontoon_beach) "vsJ" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "wred" - }, +/turf/open/floor/shiva/wred/east, /area/varadero/interior/medical) "vsP" = ( /obj/structure/disposalpipe/junction{ dir = 1; icon_state = "pipe-j2" }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/medical) "vtP" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, /obj/structure/reagent_dispensers/watertank, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance) "vtR" = ( /obj/structure/filingcabinet{ @@ -33446,10 +27282,7 @@ pixel_y = 11 }, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/shiva{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/shiva/red/northeast, /area/varadero/interior/security) "vus" = ( /obj/structure/stairs/perspective{ @@ -33467,10 +27300,7 @@ /obj/structure/barricade/handrail/wire{ dir = 4 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/varadero/exterior/eastbeach) "vuE" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -33502,9 +27332,7 @@ pixel_x = 16; pixel_y = 24 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/research) "vvS" = ( /obj/structure/disposalpipe/segment{ @@ -33512,18 +27340,13 @@ icon_state = "pipe-c" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "redcorners" - }, +/turf/open/floor/shiva/redcorners/east, /area/varadero/interior/security) "vwT" = ( /obj/structure/machinery/storm_siren{ pixel_y = 5 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/research) "vxi" = ( /obj/effect/decal/cleanable/blood/oil/streak, @@ -33535,9 +27358,7 @@ }, /obj/structure/closet/radiation, /obj/structure/barricade/handrail/wire, -/turf/open/floor/shiva{ - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow, /area/varadero/interior/cargo) "vyp" = ( /obj/structure/machinery/light/small{ @@ -33552,9 +27373,7 @@ density = 0; climb_delay = 0 }, -/turf/open/gm/river/desert/deep{ - base_river_slowdown = 0 - }, +/turf/open/gm/river/desert/deep/no_slowdown, /area/varadero/interior/maintenance/north) "vyI" = ( /obj/structure/catwalk, @@ -33562,19 +27381,17 @@ density = 0; layer = 2.1 }, -/turf/open/gm/river/desert/deep{ - base_river_slowdown = 0 - }, +/turf/open/gm/river/desert/deep/no_slowdown, /area/varadero/interior/maintenance/north) "vyX" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/storage/box/evidence, /obj/item/tool/hand_labeler, -/turf/open/floor/shiva{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/shiva/red/northeast, /area/varadero/interior/security) +"vzi" = ( +/turf/closed/wall/rock/brown, +/area/varadero/exterior/pontoon_beach/lz) "vzq" = ( /obj/structure/machinery/storm_siren{ pixel_y = 5 @@ -33583,9 +27400,7 @@ /area/varadero/exterior/lz2_near) "vzt" = ( /obj/structure/reagent_dispensers/watertank, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/hall_SE) "vzB" = ( /obj/structure/platform/kutjevo/smooth{ @@ -33611,10 +27426,7 @@ "vzN" = ( /obj/structure/bed/chair/office/dark, /obj/structure/disposalpipe/segment, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellowfull" - }, +/turf/open/floor/shiva/yellowfull/west, /area/varadero/interior/cargo) "vzY" = ( /obj/structure/sink{ @@ -33623,15 +27435,11 @@ /obj/structure/mirror{ pixel_y = 28 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/varadero/interior/toilets) "vAg" = ( /obj/structure/machinery/light, -/turf/open/floor/shiva{ - icon_state = "red" - }, +/turf/open/floor/shiva/red, /area/varadero/interior/security) "vAz" = ( /obj/structure/prop/invuln/overhead_pipe{ @@ -33639,50 +27447,35 @@ pixel_y = 13 }, /obj/structure/prop/invuln/pipe_water, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/north) "vAF" = ( /obj/effect/decal/cleanable/blood/drip, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/hall_N) "vAI" = ( /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/maintenance/south) "vAR" = ( /obj/structure/machinery/computer/cameras, /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull/west, /area/varadero/interior/hall_SE) "vAZ" = ( /obj/item/facepaint/sunscreen_stick, -/turf/open/gm/dirt{ - icon_state = "desert0" - }, +/turf/open/gm/dirt/desert0, /area/varadero/exterior/lz1_near) "vBk" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/item/reagent_container/glass/bucket, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/research) "vBq" = ( /obj/effect/landmark/objective_landmark/far, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/research) "vBC" = ( /obj/structure/platform/kutjevo/rock{ @@ -33693,10 +27486,7 @@ icon_state = "lattice12"; pixel_y = -3 }, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/interior/cargo) "vBF" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -33712,9 +27502,7 @@ pixel_x = 17; pixel_y = 16 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/research) "vBW" = ( /obj/structure/disposalpipe/segment{ @@ -33724,9 +27512,7 @@ icon_state = "pottedplant_22"; pixel_y = 8 }, -/turf/open/floor/shiva{ - icon_state = "blue" - }, +/turf/open/floor/shiva/blue, /area/varadero/interior/administration) "vBZ" = ( /obj/effect/decal/warning_stripes{ @@ -33739,10 +27525,7 @@ /turf/open/auto_turf/sand_white/layer1, /area/varadero/interior_protected/caves/digsite) "vCf" = ( -/turf/open/floor/shiva{ - dir = 8; - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull/west, /area/varadero/interior/administration) "vCE" = ( /obj/structure/disposalpipe/segment, @@ -33750,9 +27533,7 @@ pixel_x = 3; pixel_y = 6 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/technical_storage) "vDe" = ( /obj/structure/barricade/handrail/wire{ @@ -33776,24 +27557,17 @@ /area/varadero/exterior/pool) "vDl" = ( /obj/structure/machinery/recharge_station, -/turf/open/floor/shiva{ - icon_state = "red" - }, +/turf/open/floor/shiva/red, /area/varadero/interior/morgue) "vDm" = ( -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/west, /area/varadero/interior/hall_NW) "vDr" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/maintenance/south) "vDw" = ( /obj/item/fishing_pole{ @@ -33804,9 +27578,7 @@ "vDC" = ( /obj/structure/pipes/standard/manifold/hidden/green, /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/hall_SE) "vDI" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -33816,9 +27588,7 @@ name = "\improper Underground Requesitions Freezer"; req_access_txt = "100" }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/varadero/interior/cargo) "vDP" = ( /obj/structure/platform/kutjevo/smooth{ @@ -33838,13 +27608,10 @@ "vEa" = ( /obj/structure/closet/crate/medical, /obj/item/tool/wirecutters/clippers, -/obj/item/handcuffs/zip, +/obj/item/restraint/handcuffs/zip, /obj/item/tool/surgery/surgicaldrill, /obj/item/storage/firstaid/adv, -/turf/open/floor/shiva{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/shiva/red/southeast, /area/varadero/interior/security) "vEe" = ( /obj/structure/platform/kutjevo/smooth{ @@ -33867,10 +27634,7 @@ /area/varadero/exterior/pontoon_beach) "vEg" = ( /obj/structure/flora/bush/ausbushes/var3/fernybush, -/turf/open/gm/river/ocean{ - name = "deep ocean"; - default_name = "deep ocean" - }, +/turf/open/gm/river/ocean/deep_ocean, /area/varadero/exterior/pontoon_beach) "vEi" = ( /obj/structure/window_frame/colony/reinforced, @@ -33878,22 +27642,15 @@ icon_state = "medium" }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/caves/east) "vEJ" = ( /obj/structure/bed/chair, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "green" - }, +/turf/open/floor/shiva/green/east, /area/varadero/interior/hall_NW) "vEM" = ( /obj/structure/window/framed/colony/reinforced, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/north) "vEU" = ( /obj/structure/plasticflaps/mining, @@ -33910,9 +27667,7 @@ layer = 2.99 }, /obj/structure/blocker/invisible_wall/water, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/oob) "vFl" = ( /obj/structure/flora/bush/ausbushes/var3/fullgrass, @@ -33921,16 +27676,12 @@ "vFs" = ( /obj/structure/surface/rack, /obj/item/tool/weldpack, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/comms1) "vFu" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/disposalpipe/segment, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/varadero/interior/hall_N) "vGn" = ( /obj/effect/overlay/palmtree_r{ @@ -33958,15 +27709,11 @@ dir = 4 }, /obj/effect/landmark/corpsespawner/colonist/burst, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/varadero/interior/toilets) "vJg" = ( /obj/item/tool/shovel, -/turf/open/gm/dirt{ - icon_state = "desert_dug" - }, +/turf/open/gm/dirt/desert_dug, /area/varadero/exterior/lz1_near) "vJk" = ( /obj/structure/platform/kutjevo/smooth{ @@ -33983,16 +27730,12 @@ dir = 1 }, /obj/structure/blocker/invisible_wall/water, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/oob) "vJp" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/largecrate/supply/supplies/mre, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/security) "vKv" = ( /obj/structure/window/framed/colony/reinforced/hull{ @@ -34012,10 +27755,7 @@ pixel_y = 2 }, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull/west, /area/varadero/interior/administration) "vLc" = ( /obj/item/reagent_container/glass/bucket{ @@ -34025,9 +27765,7 @@ /obj/structure/barricade/handrail/wire{ dir = 8 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/comms4) "vLh" = ( /obj/structure/platform_decoration/kutjevo, @@ -34039,9 +27777,7 @@ dir = 1; icon_state = "pipe-c" }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/laundry) "vLo" = ( /obj/effect/overlay/palmtree_r{ @@ -34056,34 +27792,28 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/cargo) "vLw" = ( /obj/structure/prop/almayer/computers/sensor_computer1{ name = "computer" }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/varadero/interior/dock_control) +"vLI" = ( +/obj/structure/prop/rock/brown, +/turf/open/gm/river/shallow_ocean_shallow_ocean, +/area/varadero/exterior/pontoon_beach/lz) "vLU" = ( /obj/structure/machinery/vending/security, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/shiva/red/north, /area/varadero/interior/security) "vLV" = ( /obj/structure/machinery/landinglight/ds2/spoke{ pixel_x = -1; pixel_y = 22 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/varadero/exterior/lz1_near) "vMe" = ( /obj/structure/largecrate/random/mini/med{ @@ -34091,30 +27821,20 @@ pixel_x = -13; pixel_y = 11 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/varadero/exterior/lz1_near) "vMo" = ( /obj/item/tool/shovel, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/lz2_near) "vMq" = ( /obj/item/stack/sheet/metal/med_large_stack, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/varadero/interior/comms1) "vMU" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/tool, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance) "vNu" = ( /turf/open/floor/carpet, @@ -34141,26 +27861,18 @@ /area/varadero/interior/research) "vNT" = ( /obj/structure/xenoautopsy/tank, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/varadero/interior_protected/vessel) "vNY" = ( /obj/structure/machinery/light{ dir = 1 }, /obj/structure/machinery/vending/cola, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/hall_N) "vOa" = ( /obj/structure/machinery/computer/crew, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/varadero/interior_protected/vessel) "vOo" = ( /obj/item/device/flashlight/lamp/tripod, @@ -34175,9 +27887,7 @@ req_access_txt = "100"; req_one_access = null }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/security) "vOW" = ( /obj/item/clothing/suit/armor/vest, @@ -34187,9 +27897,7 @@ /obj/structure/bed/chair/office/dark{ dir = 4 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/administration) "vPh" = ( /obj/structure/stairs/perspective{ @@ -34201,10 +27909,7 @@ climb_delay = 1; layer = 2.99 }, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/varadero/interior_protected/vessel) "vPi" = ( /obj/structure/closet/secure_closet/personal, @@ -34218,9 +27923,7 @@ "vPj" = ( /obj/structure/surface/table, /obj/item/reagent_container/food/drinks/dry_ramen, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/mess) "vPK" = ( /obj/item/ammo_casing{ @@ -34249,6 +27952,18 @@ }, /turf/open/floor/carpet, /area/varadero/interior/chapel) +"vQF" = ( +/obj/structure/platform/kutjevo/smooth{ + dir = 8; + climb_delay = 1; + layer = 2.99 + }, +/obj/structure/platform/kutjevo/smooth{ + climb_delay = 1; + layer = 2.99 + }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, +/area/varadero/exterior/pontoon_beach/lz) "vQK" = ( /obj/structure/platform/kutjevo/smooth{ dir = 8; @@ -34260,10 +27975,7 @@ "vQL" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/frame/light_fixture, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/north, /area/varadero/interior/electrical) "vRI" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -34293,19 +28005,14 @@ dir = 8; icon_state = "chair_alt" }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull/west, /area/varadero/interior/medical) "vSu" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/comms2) "vSN" = ( /obj/structure/machinery/portable_atmospherics/hydroponics, @@ -34315,9 +28022,7 @@ /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/varadero/interior/research) "vTd" = ( /obj/structure/machinery/conveyor, @@ -34326,9 +28031,7 @@ /area/varadero/interior/cargo) "vTe" = ( /obj/structure/barricade/wooden, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/maintenance/south) "vTl" = ( /obj/structure/surface/table/reinforced/prison, @@ -34350,32 +28053,23 @@ "vUx" = ( /obj/structure/girder/displaced, /obj/structure/prop/invuln/overhead_pipe, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/eastbeach) "vUE" = ( /obj/structure/disposalpipe/segment{ dir = 1; icon_state = "pipe-c" }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/hall_N) "vUM" = ( -/turf/open/floor/shiva{ - icon_state = "blue" - }, +/turf/open/floor/shiva/blue, /area/varadero/interior/hall_SE) "vUQ" = ( /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/varadero/exterior/lz1_near) "vUT" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ @@ -34393,9 +28087,7 @@ name = "\improper materials storage bin"; pixel_y = 8 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/comms1) "vVy" = ( /obj/structure/machinery/shower{ @@ -34404,9 +28096,7 @@ /obj/structure/window/reinforced/tinted{ dir = 4 }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/research) "vVz" = ( /obj/structure/prop/structure_lattice{ @@ -34430,28 +28120,22 @@ layer = 2.99 }, /turf/open/gm/coast/beachcorner/north_west, -/area/varadero/exterior/pontoon_beach) +/area/varadero/exterior/pontoon_beach/lz) "vWG" = ( /obj/structure/bed/chair, /obj/structure/machinery/storm_siren{ pixel_y = 5 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/hall_NW) "vXx" = ( /obj/effect/decal/cleanable/blood/xeno, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/security) "vXG" = ( /obj/structure/closet/crate/construction, /obj/item/grown/log, -/turf/open/gm/dirt{ - icon_state = "desert2" - }, +/turf/open/gm/dirt/desert2, /area/varadero/exterior/monsoon) "vXW" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -34461,15 +28145,11 @@ name = "\improper Underground Security Showers"; req_access_txt = "100" }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/security) "vYp" = ( /obj/structure/window/framed/colony/reinforced, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/research) "vYr" = ( /obj/structure/machinery/door/airlock/almayer/maint{ @@ -34477,9 +28157,7 @@ req_access_txt = "100"; req_one_access = null }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/maintenance/north) "vYy" = ( /obj/item/tool/shovel, @@ -34521,10 +28199,7 @@ /area/varadero/interior_protected/caves) "vZl" = ( /obj/structure/closet/secure_closet/personal, -/turf/open/floor/shiva{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/shiva/red/southwest, /area/varadero/interior/security) "vZm" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -34547,15 +28222,11 @@ /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/varadero/interior/toilets) "vZz" = ( /obj/effect/landmark/objective_landmark/far, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/hall_SE) "vZN" = ( /obj/structure/platform/kutjevo/smooth{ @@ -34578,9 +28249,7 @@ /area/varadero/exterior/pontoon_beach) "vZO" = ( /obj/effect/landmark/corpsespawner/miner, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/varadero/interior/toilets) "vZR" = ( /obj/structure/platform/kutjevo/smooth{ @@ -34588,22 +28257,15 @@ climb_delay = 1; layer = 2.99 }, -/turf/open/gm/river/ocean{ - name = "deep ocean"; - default_name = "deep ocean" - }, -/area/varadero/exterior/pontoon_beach) +/turf/open/gm/river/ocean/deep_ocean, +/area/varadero/exterior/pontoon_beach/lz) "vZS" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/technical_storage) "wae" = ( /obj/structure/closet/secure_closet/miner, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/electrical) "waB" = ( /obj/structure/disposalpipe/segment{ @@ -34612,10 +28274,7 @@ /turf/open/floor/shiva, /area/varadero/interior/technical_storage) "waP" = ( -/turf/open/floor/plating/icefloor{ - dir = 4; - icon_state = "warnplate" - }, +/turf/open/floor/plating/icefloor/warnplate/east, /area/varadero/exterior/lz1_near) "wba" = ( /obj/structure/largecrate/random, @@ -34625,9 +28284,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/shiva{ - icon_state = "blue" - }, +/turf/open/floor/shiva/blue, /area/varadero/interior/administration) "wcb" = ( /obj/structure/blocker/invisible_wall/water, @@ -34644,28 +28301,20 @@ pixel_x = -16; pixel_y = 26 }, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/north, /area/varadero/interior/cargo) "wcq" = ( /obj/structure/prop/invuln/minecart_tracks{ dir = 1 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/lz1_near) "wcE" = ( /obj/effect/decal/cleanable/blood/drip, /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22" }, -/turf/open/floor/prison/chapel_carpet{ - dir = 1; - icon_state = "doubleside" - }, +/turf/open/floor/prison/chapel_carpet/doubleside/north, /area/varadero/interior/chapel) "wdb" = ( /obj/structure/machinery/computer/cameras/wooden_tv{ @@ -34691,20 +28340,14 @@ density = 0 }, /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "snow_mat" - }, +/turf/open/floor/shiva/snow_mat/east, /area/varadero/interior/medical) "wdx" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/bed/chair/office/light{ dir = 4 }, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/north, /area/varadero/interior/disposals) "wdy" = ( /obj/structure/platform_decoration/kutjevo{ @@ -34716,9 +28359,7 @@ /obj/structure/prop/invuln/minecart_tracks{ dir = 4 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/lz1_near) "wdI" = ( /obj/structure/reagent_dispensers/watertank, @@ -34727,16 +28368,11 @@ "wdX" = ( /obj/structure/filingcabinet/filingcabinet, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/shiva/blue/east, /area/varadero/interior/administration) "weG" = ( /obj/structure/catwalk, -/turf/open/gm/river/desert/deep{ - base_river_slowdown = 0 - }, +/turf/open/gm/river/desert/deep/no_slowdown, /area/varadero/interior/maintenance/north) "weJ" = ( /obj/structure/machinery/landinglight/ds2/spoke{ @@ -34748,9 +28384,7 @@ "wff" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/tool, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/maintenance/south) "wfh" = ( /obj/structure/prop/invuln/lattice_prop{ @@ -34758,15 +28392,10 @@ pixel_x = 16; pixel_y = -8 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/eastbeach) "wfr" = ( -/turf/open/floor/shiva{ - dir = 4; - icon_state = "purple" - }, +/turf/open/floor/shiva/purple/east, /area/varadero/interior/hall_NW) "wft" = ( /obj/structure/platform/kutjevo/smooth{ @@ -34790,9 +28419,7 @@ /obj/structure/bedsheetbin{ icon_state = "linenbin-empty" }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/bunks) "wfK" = ( /obj/structure/stairs/perspective{ @@ -34826,18 +28453,13 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/west, /area/varadero/interior/hall_NW) "wgv" = ( /obj/structure/machinery/constructable_frame{ icon_state = "box_1" }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/maintenance/south) "wgU" = ( /obj/structure/prop/invuln/minecart_tracks{ @@ -34854,9 +28476,7 @@ }, /obj/structure/blocker/invisible_wall/water, /obj/structure/plasticflaps/mining, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/oob) "wic" = ( /obj/structure/machinery/alarm{ @@ -34873,36 +28493,24 @@ dir = 1; name = "\improper Underground Main Hallway" }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/hall_NW) "wiL" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/paper_bin, /obj/item/paper/research_notes, /obj/item/storage/belt/shotgun, -/turf/open/floor/shiva{ - icon_state = "blue" - }, +/turf/open/floor/shiva/blue, /area/varadero/interior/administration) -"wjd" = ( -/obj/item/book/manual/robotics_cyborgs, -/turf/open/floor/carpet, -/area/varadero/interior/library) "wjf" = ( /obj/structure/machinery/washing_machine, /obj/structure/machinery/washing_machine{ pixel_y = 15 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/laundry) "wjB" = ( -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/varadero/interior/comms1) "wjV" = ( /obj/structure/window/framed/colony, @@ -34920,10 +28528,7 @@ layer = 2.99 }, /obj/structure/flora/bush/ausbushes/var3/stalkybush, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/interior_protected/caves) "wkq" = ( /obj/structure/machinery/photocopier, @@ -34937,18 +28542,14 @@ name = "\improper Underground Engineering Locker Room"; req_access_txt = "100" }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/electrical) "wku" = ( /obj/structure/machinery/door/poddoor/almayer/planet_side_blastdoor{ id = "colony_sec_armory"; name = "Secure Armory" }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/security) "wkC" = ( /obj/item/stack/cable_coil/cut{ @@ -34959,9 +28560,7 @@ pixel_x = -4; pixel_y = 9 }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/technical_storage) "wkM" = ( /obj/structure/window/reinforced{ @@ -34996,9 +28595,7 @@ dir = 4 }, /obj/effect/decal/cleanable/vomit, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/varadero/interior/toilets) "wlB" = ( /turf/open/gm/dirt, @@ -35012,16 +28609,11 @@ /obj/structure/disposalpipe/trunk{ dir = 4 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/medical) "wmg" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "purplefull" - }, +/turf/open/floor/shiva/purplefull/west, /area/varadero/interior/research) "wmt" = ( /obj/structure/largecrate/random/barrel/red, @@ -35031,10 +28623,7 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "green" - }, +/turf/open/floor/shiva/green/east, /area/varadero/interior/hall_SE) "wmL" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -35045,23 +28634,16 @@ req_access_txt = "100"; req_one_access = null }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/hall_NW) "wng" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/security) "wno" = ( -/turf/open/floor/shiva{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/shiva/green/north, /area/varadero/interior/mess) "wns" = ( /obj/effect/decal/cleanable/blood, @@ -35074,9 +28656,7 @@ /obj/structure/closet/crate, /obj/effect/landmark/objective_landmark/far, /obj/item/trash/crushed_cup, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/cargo) "wnA" = ( /obj/effect/decal/cleanable/blood/drip{ @@ -35092,15 +28672,11 @@ /turf/open/auto_turf/sand_white/layer1, /area/varadero/interior/caves/east) "wnK" = ( -/turf/open/floor/shiva{ - icon_state = "wredfull" - }, +/turf/open/floor/shiva/wredfull, /area/varadero/interior/medical) "woj" = ( /obj/effect/spawner/random/toolbox, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/technical_storage) "won" = ( /obj/structure/filingcabinet{ @@ -35115,18 +28691,14 @@ pixel_x = -8; pixel_y = 11 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/comms2) "wop" = ( /obj/structure/girder/displaced, /turf/open/gm/dirt, /area/varadero/exterior/eastbeach) "wot" = ( -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/records) "wox" = ( /obj/structure/machinery/light{ @@ -35136,10 +28708,7 @@ icon_state = "pottedplant_22"; pixel_y = 8 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellowfull" - }, +/turf/open/floor/shiva/yellowfull/west, /area/varadero/interior/hall_SE) "woF" = ( /obj/effect/decal/cleanable/blood, @@ -35149,9 +28718,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/shiva{ - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull, /area/varadero/interior/medical) "woJ" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -35168,24 +28735,17 @@ /obj/structure/bed/chair/office/dark{ dir = 8 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/security) "wpm" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/bed/stool{ icon_state = "stool_alt" }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/hall_SE) "wpr" = ( -/turf/open/floor/shiva{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/shiva/red/west, /area/varadero/interior/medical) "wpG" = ( /obj/effect/landmark/monkey_spawn, @@ -35197,10 +28757,7 @@ /obj/structure/bedsheetbin{ pixel_y = 4 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "snow_mat" - }, +/turf/open/floor/shiva/snow_mat/west, /area/varadero/interior/security) "wpX" = ( /obj/effect/decal/strata_decals/grime/grime2, @@ -35214,9 +28771,7 @@ /obj/structure/prop/invuln/minecart_tracks{ dir = 1 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/comms1) "wrg" = ( /obj/structure/desertdam/decals/road_edge{ @@ -35230,9 +28785,7 @@ "wrv" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/device/flashlight/lamp, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/security) "wrB" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -35251,10 +28804,7 @@ /area/varadero/interior/court) "wsa" = ( /obj/structure/closet/crate/hydroponics/prespawned, -/turf/open/floor/shiva{ - dir = 6; - icon_state = "blue" - }, +/turf/open/floor/shiva/blue/southeast, /area/varadero/interior/technical_storage) "wsn" = ( /obj/item/storage/toolbox/mechanical, @@ -35280,16 +28830,11 @@ "wsZ" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/bed/sofa/vert/grey, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/medical) "wtk" = ( /obj/structure/barricade/wooden, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/varadero/exterior/eastbeach) "wts" = ( /obj/structure/flora/bush/ausbushes/var3/sparsegrass{ @@ -35298,16 +28843,11 @@ /obj/effect/landmark/lv624/fog_blocker{ time_to_dispel = 25000 }, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/exterior/eastocean) "wty" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/cargo) "wtB" = ( /obj/structure/prop/ice_colony/dense/planter_box{ @@ -35317,9 +28857,7 @@ icon_state = "tree_2"; pixel_y = 12 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/hall_NW) "wtU" = ( /obj/structure/bed/chair{ @@ -35327,56 +28865,40 @@ icon_state = "chair_alt" }, /obj/effect/landmark/xeno_spawn, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/maintenance/south) "wuA" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/item/tool/wirecutters/clippers, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/research) "wuR" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, /obj/structure/pipes/standard/manifold/fourway/hidden/green, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/comms3) "wvI" = ( -/obj/structure/tunnel{ - id = "north_research_tunnel" - }, -/turf/open/auto_turf/sand_white/layer1, -/area/varadero/interior/hall_SE) +/obj/structure/tunnel/maint_tunnel, +/turf/open/floor/shiva/purple, +/area/varadero/interior/research) "wvK" = ( /obj/structure/closet/crate/freezer, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/varadero/interior/cargo) "wwd" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk{ dir = 4 }, -/turf/open/floor/shiva{ - dir = 9; - icon_state = "blue" - }, +/turf/open/floor/shiva/blue/northwest, /area/varadero/interior/administration) "wwk" = ( -/turf/open/floor/shiva{ - dir = 1; - icon_state = "snow_mat" - }, +/turf/open/floor/shiva/snow_mat/north, /area/varadero/interior/medical) "wwq" = ( /obj/structure/catwalk, @@ -35387,27 +28909,19 @@ density = 0; layer = 2.1 }, -/turf/open/gm/river/desert/deep{ - base_river_slowdown = 0 - }, +/turf/open/gm/river/desert/deep/no_slowdown, /area/varadero/interior/maintenance/north) "wws" = ( /obj/item/reagent_container/food/snacks/eat_bar, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/maintenance/south) "wxf" = ( /obj/structure/machinery/power/monitor, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/north) "wxu" = ( /obj/structure/bed/chair, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/varadero/interior/laundry) "wxD" = ( /obj/structure/filingcabinet{ @@ -35421,23 +28935,16 @@ pixel_x = 8 }, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/comms2) "wyE" = ( /obj/item/storage/belt/marine/quackers, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/exterior/pool) "wAx" = ( /obj/effect/landmark/corpsespawner/security, /obj/effect/decal/cleanable/blood, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/research) "wBc" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, @@ -35445,10 +28952,7 @@ /area/varadero/interior_protected/caves/central) "wBp" = ( /obj/structure/blocker/invisible_wall/water, -/turf/open/gm/river/ocean{ - name = "deep ocean"; - default_name = "deep ocean" - }, +/turf/open/gm/river/ocean/deep_ocean, /area/varadero/exterior/farocean) "wBD" = ( /obj/structure/surface/table/woodentable, @@ -35460,25 +28964,17 @@ /turf/open/floor/carpet, /area/varadero/interior/library) "wBN" = ( -/turf/open/floor/shiva{ - dir = 4; - icon_state = "yellowcorners" - }, +/turf/open/floor/shiva/yellowcorners/east, /area/varadero/interior/cargo) "wBY" = ( /obj/structure/prop/invuln/minecart_tracks{ dir = 8 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/comms1) "wCc" = ( /obj/structure/machinery/floodlight/landing/floor, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/varadero/exterior/lz1_near) "wCE" = ( /obj/structure/pipes/vents/pump{ @@ -35488,9 +28984,7 @@ /area/varadero/interior/records) "wCR" = ( /obj/effect/decal/cleanable/blood/oil/streak, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/lz1_near) "wDi" = ( /obj/effect/decal/cleanable/blood/gibs, @@ -35504,65 +28998,48 @@ /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/varadero/interior/cargo) "wDH" = ( /obj/structure/barricade/handrail/wire{ dir = 8; layer = 3.5 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/varadero/exterior/eastbeach) "wDN" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, /obj/structure/machinery/light, -/turf/open/floor/shiva{ - icon_state = "blue" - }, +/turf/open/floor/shiva/blue, /area/varadero/interior/administration) "wEn" = ( /obj/structure/largecrate/random, /obj/structure/barricade/wooden, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/north) "wEL" = ( /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/morgue) "wEU" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/shiva{ - icon_state = "snow_mat" - }, +/turf/open/floor/shiva/snow_mat, /area/varadero/interior/maintenance) "wFx" = ( /obj/item/stack/tile/plasteel{ pixel_x = 8; pixel_y = 6 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/maintenance/south) "wFJ" = ( /obj/structure/prop/dam/crane/damaged, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/farocean) "wFP" = ( /obj/structure/machinery/door_control/brbutton{ @@ -35581,15 +29058,11 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/medical) "wGl" = ( /obj/structure/largecrate/random, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/cargo) "wGs" = ( /obj/effect/landmark/hunter_primary, @@ -35598,10 +29071,7 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellowfull" - }, +/turf/open/floor/shiva/yellowfull/west, /area/varadero/interior/comms3) "wGQ" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -35614,9 +29084,7 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/security) "wHk" = ( /turf/closed/wall, @@ -35630,9 +29098,7 @@ /obj/structure/prop/static_tank/fuel{ pixel_y = 8 }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/disposals) "wIg" = ( /obj/structure/platform/kutjevo/smooth{ @@ -35640,34 +29106,24 @@ climb_delay = 1; layer = 2.99 }, -/turf/open/gm/dirt{ - icon_state = "desert1" - }, +/turf/open/gm/dirt/desert1, /area/varadero/exterior/lz1_near) "wIm" = ( /obj/structure/disposalpipe/junction{ dir = 8; icon_state = "pipe-j2" }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/cargo) "wIr" = ( -/turf/open/floor/shiva{ - dir = 1; - icon_state = "purple" - }, +/turf/open/floor/shiva/purple/north, /area/varadero/interior/research) "wIH" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/computer/station_alert{ dir = 8 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull/west, /area/varadero/interior/administration) "wJl" = ( /obj/structure/platform/kutjevo/smooth{ @@ -35686,26 +29142,18 @@ climb_delay = 1; layer = 2.99 }, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/exterior/pontoon_beach) "wJu" = ( /obj/structure/machinery/door/poddoor/shutters/almayer{ id = "cargobay"; name = "\improper Requesitions Storage Shutters" }, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/east, /area/varadero/interior/cargo) "wJB" = ( /obj/item/device/motiondetector/hacked, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/hall_NW) "wKi" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -35718,24 +29166,16 @@ /turf/open/gm/dirt, /area/varadero/exterior/lz1_near) "wLq" = ( -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/exterior/comms4) "wLv" = ( /obj/item/weapon/gun/rifle/m41a, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/bunks) "wLB" = ( /obj/structure/blocker/invisible_wall/water, /obj/structure/flora/bush/ausbushes/var3/stalkybush, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/exterior/farocean) "wLF" = ( /obj/structure/surface/table/reinforced/prison, @@ -35747,10 +29187,7 @@ pixel_x = 6; pixel_y = 3 }, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/north, /area/varadero/interior/hall_SE) "wLR" = ( /obj/structure/surface/table/reinforced/prison, @@ -35758,9 +29195,7 @@ pixel_x = -14; pixel_y = 2 }, -/turf/open/floor/shiva{ - icon_state = "blue" - }, +/turf/open/floor/shiva/blue, /area/varadero/interior/technical_storage) "wMj" = ( /obj/structure/window/framed/colony/reinforced, @@ -35768,22 +29203,15 @@ /area/varadero/interior/hall_SE) "wMn" = ( /obj/structure/reagent_dispensers/watertank, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/security) "wMw" = ( -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/varadero/exterior/lz1_near) "wMx" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/stack/nanopaste, -/turf/open/floor/shiva{ - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull, /area/varadero/interior/medical) "wNz" = ( /obj/item/stack/tile/plasteel{ @@ -35796,10 +29224,7 @@ /obj/structure/platform_decoration/kutjevo{ dir = 1 }, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/varadero/interior_protected/vessel) "wNV" = ( /obj/structure/surface/table, @@ -35808,26 +29233,18 @@ pixel_x = 6; pixel_y = 10 }, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "wred" - }, +/turf/open/floor/shiva/wred/north, /area/varadero/interior/medical) "wOC" = ( /obj/item/stack/tile/plasteel, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/maintenance/south) "wOL" = ( /obj/effect/landmark/crap_item, /obj/structure/window/reinforced{ dir = 1 }, -/turf/open/floor/plating{ - dir = 1; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/north, /area/varadero/interior/disposals) "wOO" = ( /turf/closed/wall/r_wall, @@ -35840,9 +29257,7 @@ /obj/structure/surface/table/reinforced/prison, /obj/item/evidencebag, /obj/effect/landmark/objective_landmark/far, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/security) "wPl" = ( /obj/structure/platform/kutjevo/smooth{ @@ -35854,10 +29269,7 @@ climb_delay = 1; layer = 2.99 }, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/exterior/pontoon_beach) "wPv" = ( /obj/structure/platform/kutjevo/smooth{ @@ -35876,9 +29288,7 @@ /area/varadero/exterior/lz1_near) "wPE" = ( /obj/effect/decal/cleanable/blood/oil/streak, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/north) "wPH" = ( /obj/structure/platform_decoration/kutjevo{ @@ -35890,15 +29300,11 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/medical) "wQh" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/caves/east) "wQi" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/comdoor{ @@ -35906,9 +29312,7 @@ name = "\improper Colony Offices"; req_access_txt = "100" }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/administration) "wRi" = ( /obj/structure/surface/table, @@ -35916,27 +29320,20 @@ layer = 3.1; pixel_y = 7 }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/electrical) "wRu" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/shiva{ - icon_state = "wred" - }, +/turf/open/floor/shiva/wred, /area/varadero/interior/medical) "wRB" = ( /obj/structure/machinery/light, /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22" }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "greenfull" - }, +/turf/open/floor/shiva/greenfull/west, /area/varadero/interior/hall_N) "wRR" = ( /obj/structure/platform/kutjevo/smooth{ @@ -35952,32 +29349,22 @@ layer = 2.99 }, /obj/structure/blocker/invisible_wall/water, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/oob) "wSx" = ( /turf/closed/wall, /area/varadero/interior/laundry) "wSL" = ( -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/exterior/pool) "wSM" = ( -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior_protected/caves/central) "wSX" = ( /obj/structure/platform_decoration/kutjevo{ dir = 8 }, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/north, /area/varadero/interior/cargo) "wTE" = ( /obj/structure/bed/chair{ @@ -35989,9 +29376,7 @@ pixel_x = -7; pixel_y = -4 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/maintenance/south) "wTJ" = ( /turf/open/floor/plating, @@ -36000,23 +29385,15 @@ /obj/structure/machinery/firealarm{ pixel_y = 24 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellowfull" - }, +/turf/open/floor/shiva/yellowfull/west, /area/varadero/interior/disposals) "wUj" = ( /obj/structure/window/framed/colony/reinforced, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/north, /area/varadero/interior/comms3) "wUr" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/caves) "wUF" = ( /obj/effect/overlay/palmtree_r, @@ -36030,10 +29407,7 @@ /area/varadero/interior/oob) "wVa" = ( /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/shiva/red/west, /area/varadero/interior/medical) "wVf" = ( /turf/closed/wall/r_wall, @@ -36056,25 +29430,17 @@ /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/varadero/interior/morgue) "wVD" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull/west, /area/varadero/interior/medical) "wVE" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "green" - }, +/turf/open/floor/shiva/green/east, /area/varadero/interior/hall_SE) "wVI" = ( /obj/structure/sign/safety/airlock{ @@ -36123,23 +29489,17 @@ /area/varadero/interior/maintenance/security) "wXu" = ( /obj/structure/surface/rack, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/security) "wXC" = ( /obj/item/device/flashlight/lamp/tripod, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/maintenance/south) "wXD" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/hall_SE) "wYa" = ( /obj/structure/desertdam/decals/road_edge{ @@ -36168,9 +29528,7 @@ /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/varadero/interior/electrical) "wZF" = ( /obj/structure/bed/chair/wood/normal{ @@ -36181,23 +29539,17 @@ "xag" = ( /obj/effect/decal/cleanable/blood/xeno, /obj/item/device/flashlight/lamp/tripod, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/maintenance/south) "xaK" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22" }, -/turf/open/floor/shiva{ - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow, /area/varadero/interior/cargo) "xbc" = ( /obj/effect/landmark/monkey_spawn, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/caves/north_research) "xbm" = ( /obj/structure/machinery/photocopier, @@ -36208,17 +29560,13 @@ dir = 4 }, /obj/effect/decal/cleanable/blood, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/mess) "xbD" = ( /obj/structure/window/reinforced/tinted{ dir = 8 }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/research) "xce" = ( /obj/structure/platform/kutjevo/smooth{ @@ -36238,16 +29586,11 @@ /area/varadero/interior/records) "xcz" = ( /obj/item/stack/sheet/metal, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/caves/east) "xcE" = ( /obj/effect/decal/cleanable/blood/oil/streak, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/varadero/exterior/lz1_near) "xdz" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -36258,17 +29601,11 @@ pixel_x = -6; pixel_y = 6 }, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/east, /area/varadero/interior/hall_SE) "xdJ" = ( /obj/structure/closet/emcloset, -/turf/open/floor/shiva{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/shiva/red/northwest, /area/varadero/interior/security) "xdW" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -36278,9 +29615,7 @@ dir = 4 }, /obj/effect/decal/cleanable/blood/drip, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/electrical) "xeO" = ( /obj/structure/platform_decoration/kutjevo{ @@ -36298,15 +29633,11 @@ /obj/structure/prop/souto_land/streamer{ pixel_y = 24 }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/hall_NW) "xff" = ( /obj/structure/largecrate/random, -/turf/open/floor/shiva{ - icon_state = "blue" - }, +/turf/open/floor/shiva/blue, /area/varadero/interior/hall_SE) "xfo" = ( /turf/closed/wall/r_wall/unmeltable, @@ -36332,9 +29663,7 @@ dir = 1; health = 300 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/hall_SE) "xgW" = ( /obj/structure/surface/table/reinforced/prison, @@ -36354,10 +29683,7 @@ pixel_x = 7; pixel_y = -2 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull/west, /area/varadero/interior/administration) "xgY" = ( /obj/effect/overlay/palmtree_r, @@ -36367,10 +29693,7 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/shiva/red/west, /area/varadero/interior/security) "xhx" = ( /obj/structure/prop/ice_colony/dense/planter_box/plated{ @@ -36393,25 +29716,13 @@ }, /obj/structure/closet/crate/ammo/alt, /obj/item/storage/belt/utility, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/cargo) -"xjp" = ( -/obj/structure/machinery/power/geothermal, -/obj/structure/machinery/light/small, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, -/area/varadero/interior/electrical) "xka" = ( /obj/structure/window/framed/colony/reinforced{ color = "#aba9a9" }, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/varadero/interior_protected/vessel) "xkb" = ( /obj/structure/surface/table/reinforced/prison, @@ -36421,10 +29732,7 @@ /obj/item/clothing/glasses/science{ pixel_y = 9 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "bluefull" - }, +/turf/open/floor/shiva/bluefull/west, /area/varadero/interior/administration) "xke" = ( /obj/effect/overlay/palmtree_r, @@ -36435,9 +29743,7 @@ icon_state = "pottedplant_22"; pixel_y = 8 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/varadero/interior/medical) "xlb" = ( /obj/structure/machinery/disposal, @@ -36445,25 +29751,18 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/shiva/green/north, /area/varadero/interior/hall_SE) "xlv" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/disposalpipe/segment, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/disposals) "xml" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/shiva{ - icon_state = "yellowcorners" - }, +/turf/open/floor/shiva/yellowcorners, /area/varadero/interior/cargo) "xmL" = ( /obj/structure/prop/invuln/lattice_prop{ @@ -36479,28 +29778,20 @@ pixel_x = 12; pixel_y = 13 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "snow_mat" - }, +/turf/open/floor/shiva/snow_mat/west, /area/varadero/interior/maintenance) "xnr" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/research) "xnS" = ( /turf/closed/wall/r_wall/unmeltable, /area/varadero/exterior/eastbeach) "xnV" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/shiva{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/shiva/red/southwest, /area/varadero/interior/morgue) "xpe" = ( /obj/structure/surface/rack, @@ -36514,9 +29805,7 @@ pixel_x = 17; pixel_y = 16 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/security) "xpw" = ( /obj/structure/surface/table/reinforced/prison, @@ -36533,27 +29822,14 @@ pixel_y = 18 }, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/shiva/blue/west, /area/varadero/interior/technical_storage) -"xpL" = ( -/obj/structure/machinery/camera/autoname/lz_camera, -/obj/structure/machinery/landinglight/ds1/spoke{ - pixel_y = -5; - pixel_x = -13 - }, -/turf/open/auto_turf/sand_white/layer1, -/area/varadero/exterior/lz2_near) "xpP" = ( /turf/closed/wall/r_wall, /area/varadero/interior/comms1) "xqy" = ( /obj/effect/landmark/objective_landmark/far, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/caves) "xqG" = ( /obj/structure/mirror{ @@ -36563,9 +29839,7 @@ dir = 8; pixel_x = -11 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/varadero/interior/security) "xqN" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -36573,9 +29847,7 @@ name = "\improper Colony Administration"; req_access_txt = "100" }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/administration) "xqP" = ( /obj/structure/disposalpipe/segment{ @@ -36585,9 +29857,7 @@ /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22" }, -/turf/open/floor/shiva{ - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow, /area/varadero/interior/cargo) "xqS" = ( /obj/structure/stairs/perspective{ @@ -36600,10 +29870,7 @@ climb_delay = 1; layer = 2.99 }, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/varadero/interior_protected/vessel) "xqY" = ( /obj/structure/disposalpipe/segment{ @@ -36618,10 +29885,7 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/east, /area/varadero/interior/cargo) "xrl" = ( /obj/structure/platform/kutjevo/smooth{ @@ -36635,33 +29899,21 @@ icon_state = "hr_kutjevo"; name = "support struts" }, -/turf/open/gm/river/ocean{ - name = "deep ocean"; - default_name = "deep ocean" - }, +/turf/open/gm/river/ocean/deep_ocean, /area/varadero/exterior/farocean) "xrA" = ( /obj/structure/machinery/vending/coffee, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "purplefull" - }, +/turf/open/floor/shiva/purplefull/west, /area/varadero/interior/research) "xsi" = ( /obj/structure/bed/chair, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/shiva/red/north, /area/varadero/interior/security) "xsH" = ( /obj/structure/machinery/landinglight/ds2/delaythree{ dir = 1 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/varadero/exterior/lz1_near) "xtZ" = ( /obj/structure/desertdam/decals/road_edge{ @@ -36675,10 +29927,7 @@ /area/varadero/interior/court) "xug" = ( /obj/effect/decal/cleanable/blood/gibs, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "snow_mat" - }, +/turf/open/floor/shiva/snow_mat/east, /area/varadero/interior/medical) "xuB" = ( /obj/structure/disposalpipe/segment{ @@ -36688,9 +29937,7 @@ /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/hall_N) "xuJ" = ( /obj/structure/machinery/atm{ @@ -36705,40 +29952,29 @@ /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/shiva{ - icon_state = "yellowcorners" - }, +/turf/open/floor/shiva/yellowcorners, /area/varadero/interior/cargo) "xuT" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/computer/emails{ pixel_y = 5 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "purplefull" - }, +/turf/open/floor/shiva/purplefull/west, /area/varadero/interior/research) "xuW" = ( /obj/effect/landmark/hunter_primary, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/hall_N) "xuX" = ( /obj/structure/stairs/perspective{ color = "#6b675e"; icon_state = "p_stair_full" }, -/turf/open/shuttle{ - icon_state = "floor6" - }, +/turf/open/shuttle/red, /area/varadero/interior_protected/vessel) "xvj" = ( /obj/structure/machinery/light/small, -/turf/open/floor/shiva{ - icon_state = "snow_mat" - }, +/turf/open/floor/shiva/snow_mat, /area/varadero/interior/maintenance) "xvF" = ( /obj/structure/window/framed/colony/reinforced, @@ -36748,10 +29984,7 @@ /obj/structure/surface/table/reinforced/prison, /obj/item/packageWrap, /obj/item/tool/hand_labeler, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellowfull" - }, +/turf/open/floor/shiva/yellowfull/west, /area/varadero/interior/cargo) "xwG" = ( /obj/structure/prop/invuln/lattice_prop{ @@ -36760,18 +29993,14 @@ pixel_y = -8 }, /obj/item/device/flashlight/lamp/tripod, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/research) "xwY" = ( /obj/structure/machinery/light{ dir = 8 }, /obj/item/tool/wet_sign, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/varadero/interior/toilets) "xxk" = ( /turf/open/auto_turf/sand_white/layer1, @@ -36790,15 +30019,11 @@ pixel_x = 2; pixel_y = 17 }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/bunks) "xxs" = ( /obj/structure/closet/crate, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/security) "xxE" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -36809,9 +30034,7 @@ req_access = null; req_one_access = null }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/varadero/interior/research) "xxI" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -36834,10 +30057,7 @@ /obj/structure/disposalpipe/trunk{ dir = 8 }, -/turf/open/floor/shiva{ - dir = 6; - icon_state = "blue" - }, +/turf/open/floor/shiva/blue/southeast, /area/varadero/interior/administration) "xya" = ( /obj/structure/surface/rack, @@ -36854,9 +30074,7 @@ pixel_x = 2; pixel_y = 2 }, -/turf/open/floor/shiva{ - icon_state = "snow_mat" - }, +/turf/open/floor/shiva/snow_mat, /area/varadero/interior/maintenance) "xyr" = ( /obj/structure/sink{ @@ -36864,16 +30082,10 @@ pixel_x = -11; pixel_y = 3 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "purplefull" - }, +/turf/open/floor/shiva/purplefull/west, /area/varadero/interior/research) "xyJ" = ( -/turf/open/floor/shiva{ - dir = 5; - icon_state = "green" - }, +/turf/open/floor/shiva/green/northeast, /area/varadero/interior/records) "xyO" = ( /obj/structure/machinery/door/airlock/multi_tile/elevator/research, @@ -36885,15 +30097,11 @@ /area/varadero/interior/maintenance/security) "xzc" = ( /obj/structure/flora/bush/ausbushes/var3/ywflowers, -/turf/open/gm/dirt{ - icon_state = "desert0" - }, +/turf/open/gm/dirt/desert0, /area/varadero/exterior/pontoon_beach) "xzd" = ( /obj/effect/decal/cleanable/vomit, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/varadero/interior/toilets) "xzj" = ( /obj/structure/sign/safety/airlock{ @@ -36902,33 +30110,24 @@ /turf/closed/wall, /area/varadero/interior/library) "xzr" = ( -/turf/open/floor/shiva{ - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow, /area/varadero/interior/comms3) "xAg" = ( /turf/closed/wall/r_wall/unmeltable, /area/varadero/interior/comms2) "xAs" = ( /obj/structure/largecrate/random/mini/chest/b, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/north) "xAx" = ( /turf/open/gm/coast/east, /area/varadero/interior/caves/east) "xAK" = ( -/turf/open/floor/shiva{ - dir = 4; - icon_state = "purple" - }, +/turf/open/floor/shiva/purple/east, /area/varadero/interior/research) "xAO" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/hall_SE) "xBv" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -36938,9 +30137,7 @@ name = "\improper Underground Lavatory"; req_access_txt = "100" }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/laundry) "xBw" = ( /obj/structure/machinery/storm_siren{ @@ -36957,25 +30154,16 @@ time_to_dispel = 25000 }, /obj/structure/blocker/invisible_wall/water, -/turf/open/gm/river/ocean{ - name = "deep ocean"; - default_name = "deep ocean" - }, +/turf/open/gm/river/ocean/deep_ocean, /area/varadero/exterior/farocean) "xBO" = ( /obj/structure/closet/emcloset, /obj/effect/landmark/objective_landmark/far, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellowfull" - }, +/turf/open/floor/shiva/yellowfull/west, /area/varadero/interior/hall_SE) "xBS" = ( /obj/structure/largecrate/random/case/small, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/varadero/exterior/lz1_near) "xCn" = ( /turf/open/auto_turf/sand_white/layer1, @@ -36994,23 +30182,15 @@ req_access_txt = "100" }, /obj/structure/machinery/light, -/turf/open/floor/shiva{ - dir = 6; - icon_state = "wred" - }, +/turf/open/floor/shiva/wred/southeast, /area/varadero/interior/medical) "xCM" = ( /obj/structure/largecrate/random, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/comms4) "xCU" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "yellowcorners" - }, +/turf/open/floor/shiva/yellowcorners/north, /area/varadero/interior/cargo) "xCZ" = ( /obj/structure/prop/tower, @@ -37032,9 +30212,7 @@ dir = 4 }, /obj/effect/landmark/corpsespawner/scientist, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/varadero/interior/research) "xDy" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -37045,9 +30223,7 @@ req_access_txt = "100"; req_one_access = null }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/court) "xDE" = ( /obj/structure/blocker/invisible_wall/water, @@ -37057,18 +30233,14 @@ "xEc" = ( /obj/effect/decal/cleanable/blood/oil, /obj/structure/machinery/light, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/north) "xEl" = ( /obj/structure/machinery/storm_siren{ pixel_y = 5 }, /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/caves) "xEG" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, @@ -37076,10 +30248,7 @@ /turf/open/auto_turf/sand_white/layer1, /area/varadero/interior_protected/maintenance/south) "xFb" = ( -/turf/open/gm/river/ocean{ - name = "deep ocean"; - default_name = "deep ocean" - }, +/turf/open/gm/river/ocean/deep_ocean, /area/varadero/exterior/eastocean) "xFw" = ( /obj/structure/bed/chair{ @@ -37087,18 +30256,14 @@ dir = 8; pixel_y = 18 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/varadero/interior/laundry) "xFE" = ( /turf/open/floor/wood, /area/varadero/interior/records) "xFO" = ( /obj/item/device/flashlight, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/mess) "xFS" = ( /obj/structure/platform_decoration/kutjevo{ @@ -37111,14 +30276,10 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/shiva{ - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull, /area/varadero/interior/medical) "xGp" = ( -/turf/open/floor/wood{ - icon_state = "wood-broken6" - }, +/turf/open/floor/wood/wood_broken6, /area/varadero/interior/hall_SE) "xGJ" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -37141,15 +30302,11 @@ /area/varadero/interior/court) "xHz" = ( /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/caves/east) "xIA" = ( /obj/structure/closet/secure_closet/freezer/fridge/groceries, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/varadero/interior/cargo) "xJb" = ( /obj/structure/machinery/landinglight/ds2/spoke{ @@ -37157,36 +30314,26 @@ pixel_y = 22 }, /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/varadero/exterior/lz1_near) "xJt" = ( /obj/structure/surface/table, /obj/effect/spawner/random/toolbox, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/security) "xJx" = ( /obj/structure/machinery/photocopier, /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/shiva/blue/north, /area/varadero/interior/administration) "xJH" = ( /obj/structure/flora/bush/ausbushes/var3/stalkybush, /turf/open/gm/coast/beachcorner2/north_west, /area/varadero/exterior/lz2_near) "xJZ" = ( -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/security) "xKo" = ( /obj/structure/surface/table, @@ -37196,9 +30343,7 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/north) "xKq" = ( /obj/structure/surface/table/reinforced/prison, @@ -37237,9 +30382,7 @@ icon_state = "pottedplant_22"; pixel_y = 8 }, -/turf/open/floor/shiva{ - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull, /area/varadero/interior/medical) "xKL" = ( /obj/structure/surface/rack, @@ -37264,28 +30407,19 @@ pixel_x = -7; pixel_y = 6 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/shiva/red/west, /area/varadero/interior/security) "xKS" = ( /obj/structure/lz_sign/new_varadero, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/varadero/exterior/lz1_near) "xLB" = ( /obj/structure/platform/kutjevo/smooth{ climb_delay = 1; layer = 2.99 }, -/turf/open/gm/river/ocean{ - name = "deep ocean"; - default_name = "deep ocean" - }, -/area/varadero/exterior/pontoon_beach) +/turf/open/gm/river/ocean/deep_ocean, +/area/varadero/exterior/pontoon_beach/lz) "xLE" = ( /obj/structure/noticeboard{ pixel_y = 32 @@ -37295,31 +30429,21 @@ /area/varadero/interior/security) "xLN" = ( /obj/structure/machinery/vending/coffee, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull/west, /area/varadero/interior/medical) "xMq" = ( /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/security) "xMs" = ( /obj/item/paper, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/east, /area/varadero/interior/morgue) "xNb" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/hall_SE) "xNw" = ( /obj/effect/decal/cleanable/blood/drip, @@ -37336,22 +30460,16 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance) "xOo" = ( -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/security) "xOx" = ( /obj/structure/closet/crate/secure, /obj/item/trash/popcorn, /obj/item/hardpoint/locomotion/van_wheels, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/cargo) "xOz" = ( /obj/structure/machinery/light{ @@ -37363,33 +30481,24 @@ /obj/structure/mirror{ pixel_y = 28 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/varadero/interior/toilets) "xOI" = ( /obj/item/tool/wrench, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/lz1_near) "xOX" = ( /obj/structure/platform/kutjevo/smooth{ climb_delay = 1; layer = 2.99 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/lz1_near) "xPj" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/shiva/blue/west, /area/varadero/interior/administration) "xPx" = ( /obj/structure/machinery/door/airlock/almayer/medical/glass{ @@ -37398,15 +30507,11 @@ req_access = null; req_one_access = null }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/varadero/interior/research) "xPV" = ( /obj/structure/machinery/light, -/turf/open/floor/shiva{ - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow, /area/varadero/interior/electrical) "xQJ" = ( /obj/structure/surface/table/woodentable/poor, @@ -37424,9 +30529,7 @@ dir = 2; icon_state = "pipe-c" }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/electrical) "xRx" = ( /obj/structure/surface/table/woodentable, @@ -37459,35 +30562,24 @@ /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor/shiva{ - dir = 1 - }, +/turf/open/floor/shiva/north, /area/varadero/interior/cargo) "xTA" = ( /obj/structure/prop/rock/brown, -/turf/open/gm/river{ - name = "shallow ocean"; - default_name = "shallow ocean" - }, +/turf/open/gm/river/shallow_ocean_shallow_ocean, /area/varadero/exterior/farocean) "xTH" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/shiva{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/southeast, /area/varadero/interior/medical) "xUp" = ( /obj/effect/decal/cleanable/blood, /turf/open/auto_turf/sand_white/layer1, /area/varadero/exterior/lz2_near) "xUq" = ( -/turf/open/floor/shiva{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/shiva/blue/north, /area/varadero/interior/administration) "xUs" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -37497,9 +30589,7 @@ /obj/structure/machinery/storm_siren{ pixel_y = 5 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/research) "xUu" = ( /obj/structure/surface/table/woodentable, @@ -37507,9 +30597,7 @@ /turf/open/floor/carpet, /area/varadero/interior/library) "xUH" = ( -/turf/open/floor/wood{ - icon_state = "wood-broken3" - }, +/turf/open/floor/wood/wood_broken3, /area/varadero/interior/court) "xVe" = ( /obj/item/prop/helmetgarb/bullet_pipe{ @@ -37520,34 +30608,25 @@ pixel_x = 10; pixel_y = 10 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/research) "xVw" = ( /obj/structure/blocker/invisible_wall/water, /obj/structure/flora/bush/ausbushes/var3/stalkybush, -/turf/open/gm/river/ocean{ - name = "deep ocean"; - default_name = "deep ocean" - }, +/turf/open/gm/river/ocean/deep_ocean, /area/varadero/exterior/farocean) "xVA" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk{ dir = 8 }, -/turf/open/floor/shiva{ - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull, /area/varadero/interior/medical) "xVC" = ( /obj/structure/closet/crate/secure, /obj/item/trash/sosjerky, /obj/item/ammo_magazine/shotgun/buckshot, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/cargo) "xVQ" = ( /obj/structure/sign/safety/reception, @@ -37558,35 +30637,26 @@ /area/varadero/interior/maintenance/north) "xVX" = ( /obj/item/tool/warning_cone, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/lz2_near) "xWj" = ( /obj/structure/machinery/firealarm{ pixel_y = 24 }, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/shiva/red/north, /area/varadero/interior/security) "xWL" = ( /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/exterior/eastbeach) "xWU" = ( /obj/item/trash/candle, /turf/open/floor/wood, /area/varadero/interior/chapel) "xWY" = ( -/turf/open/floor/shiva{ - icon_state = "green" - }, +/turf/open/floor/shiva/green, /area/varadero/interior/hall_N) "xXe" = ( /obj/structure/surface/table/reinforced/prison, @@ -37599,18 +30669,12 @@ pixel_x = -6; pixel_y = 12 }, -/turf/open/floor/shiva{ - dir = 5; - icon_state = "blue" - }, +/turf/open/floor/shiva/blue/northeast, /area/varadero/interior/technical_storage) "xXr" = ( /obj/effect/decal/cleanable/blood/drip, /obj/effect/decal/cleanable/blood/gibs/xeno/body, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/varadero/exterior/lz1_near) "xYB" = ( /obj/item/tool/pickaxe, @@ -37621,9 +30685,7 @@ pixel_x = 4; pixel_y = -2 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/north) "xYM" = ( /obj/structure/bed/chair{ @@ -37633,10 +30695,7 @@ dir = 8; pixel_x = -24 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/shiva/yellow/west, /area/varadero/interior/cargo) "xZa" = ( /obj/structure/prop/rock/brown, @@ -37647,9 +30706,7 @@ dir = 1 }, /obj/structure/surface/rack, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior_protected/maintenance/south) "xZD" = ( /obj/structure/disposalpipe/segment{ @@ -37663,16 +30720,10 @@ /area/varadero/interior/disposals) "xZN" = ( /obj/effect/landmark/yautja_teleport, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellowfull" - }, +/turf/open/floor/shiva/yellowfull/west, /area/varadero/interior/disposals) "xZO" = ( -/turf/open/floor/shiva{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/shiva/blue/west, /area/varadero/interior/administration) "yab" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -37680,15 +30731,11 @@ dir = 4; icon_state = "pipe-c" }, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/cargo) "yaf" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/shiva{ - icon_state = "red" - }, +/turf/open/floor/shiva/red, /area/varadero/interior/medical) "yaC" = ( /obj/structure/machinery/door/airlock/strata/autoname{ @@ -37696,9 +30743,7 @@ locked = 1; name = "\improper Navigation Chamber" }, -/turf/open/shuttle{ - icon_state = "floor6" - }, +/turf/open/shuttle/red, /area/varadero/interior_protected/vessel) "yba" = ( /obj/structure/machinery/space_heater, @@ -37709,10 +30754,7 @@ pixel_x = -2; pixel_y = 16 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "purplefull" - }, +/turf/open/floor/shiva/purplefull/west, /area/varadero/interior/research) "ybj" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -37723,9 +30765,7 @@ pixel_x = -16; pixel_y = -8 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/research) "ybm" = ( /obj/structure/surface/table/woodentable, @@ -37740,9 +30780,7 @@ /obj/structure/flora/bush/ausbushes/pointybush{ pixel_y = 11 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/security) "ybY" = ( /obj/structure/surface/table, @@ -37752,9 +30790,7 @@ pixel_y = 11 }, /obj/item/tool/pen/blue, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles, /area/varadero/interior/hall_NW) "ycz" = ( /obj/structure/machinery/shower{ @@ -37784,17 +30820,13 @@ /area/varadero/interior/records) "ydP" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/medical) "ydQ" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/security) "ydZ" = ( /obj/structure/window/reinforced{ @@ -37813,31 +30845,20 @@ /obj/item/ammo_magazine/sniper/svd, /obj/item/weapon/gun/rifle/sniper/svd, /obj/structure/window/reinforced, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/varadero/interior_protected/vessel) "yeF" = ( /obj/item/reagent_container/glass/bucket/mopbucket, /obj/item/tool/mop, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/maintenance/security) "yeG" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/frame/camera, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/east, /area/varadero/interior/hall_SE) "yeH" = ( -/turf/open/floor/shiva{ - dir = 8; - icon_state = "green" - }, +/turf/open/floor/shiva/green/west, /area/varadero/interior/hall_N) "yeJ" = ( /obj/structure/machinery/light/small{ @@ -37856,28 +30877,20 @@ "yeY" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/shiva/red/east, /area/varadero/interior/security) "yfh" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor/shiva{ - icon_state = "wredfull" - }, +/turf/open/floor/shiva/wredfull, /area/varadero/interior/medical) "yfQ" = ( /obj/structure/bed/chair{ dir = 4; icon_state = "chair_alt" }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/shiva/blue/west, /area/varadero/interior/administration) "yfT" = ( /obj/item/stack/tile/plasteel{ @@ -37908,9 +30921,7 @@ /obj/structure/catwalk{ indestructible = 1 }, -/turf/open/gm/river/desert/deep{ - base_river_slowdown = 0 - }, +/turf/open/gm/river/desert/deep/no_slowdown, /area/varadero/interior/maintenance/north) "ygT" = ( /obj/structure/surface/table, @@ -37919,10 +30930,7 @@ pixel_x = 5; pixel_y = 3 }, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "wred" - }, +/turf/open/floor/shiva/wred/north, /area/varadero/interior/medical) "ygY" = ( /obj/item/card/id/silver{ @@ -37930,19 +30938,13 @@ pixel_y = 4 }, /obj/structure/surface/table, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/varadero/exterior/lz1_near) "ygZ" = ( /obj/structure/machinery/landinglight/ds2/delaythree{ dir = 4 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/varadero/exterior/lz1_near) "yhy" = ( /obj/structure/filingcabinet{ @@ -37992,9 +30994,7 @@ /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/floor/shiva{ - icon_state = "wredfull" - }, +/turf/open/floor/shiva/wredfull, /area/varadero/interior/medical) "yji" = ( /obj/structure/surface/table/reinforced/prison, @@ -38005,10 +31005,7 @@ /obj/item/storage/firstaid/rad{ pixel_y = 4 }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "purplefull" - }, +/turf/open/floor/shiva/purplefull/west, /area/varadero/interior/research) "yjp" = ( /obj/structure/machinery/door/airlock/almayer/security/glass{ @@ -38016,10 +31013,7 @@ name = "\improper Underground Security Checkpoint"; req_access_txt = "100" }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "redfull" - }, +/turf/open/floor/shiva/redfull/west, /area/varadero/interior/hall_N) "yjH" = ( /obj/structure/cargo_container/kelland/right, @@ -38031,10 +31025,7 @@ dir = 1; icon_state = "pipe-c" }, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "multi_tiles" - }, +/turf/open/floor/shiva/multi_tiles/north, /area/varadero/interior/electrical) "ykc" = ( /turf/closed/wall, @@ -38051,16 +31042,12 @@ pixel_x = 8; pixel_y = 6 }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, +/turf/open/floor/plating/icefloor/asteroidplating, /area/varadero/interior/caves/east) "ykA" = ( /obj/structure/closet/crate/construction, /obj/item/storage/belt/utility/full, -/turf/open/gm/dirt{ - icon_state = "desert0" - }, +/turf/open/gm/dirt/desert0, /area/varadero/exterior/eastbeach) "ykE" = ( /obj/structure/surface/table/reinforced/prison, @@ -38069,9 +31056,7 @@ pixel_y = 1 }, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, +/turf/open/floor/shiva/floor3, /area/varadero/interior/medical) "ykM" = ( /obj/effect/overlay/palmtree_r{ @@ -39130,7 +32115,7 @@ oPQ xCn cBI xCn -emt +xCn ljt pGs pGs @@ -41312,7 +34297,7 @@ wmg vSY izs oyi -sDM +wvI fay ebr ebr @@ -48038,7 +41023,7 @@ ibP haT teu haT -dZZ +jkq ykw cIB waB @@ -49401,8 +42386,8 @@ mPk mPk wBp fjv -qwQ -uYJ +mfP +ppU bah uZK kME @@ -49582,9 +42567,9 @@ mPk mPk wBp wBp -qwQ -uYJ -lTR +mfP +ppU +ooP kap wMw wMw @@ -49763,10 +42748,10 @@ mPk mPk rYC fjv -uYJ -qwQ -pAX -lTR +ppU +mfP +sAW +ooP kap wMw wMw @@ -49944,11 +42929,11 @@ mPk mPk wBp wBp -qwQ -qwQ -qwQ -lTR -qwQ +mfP +mfP +mfP +ooP +mfP kap wMw wMw @@ -49964,8 +42949,7 @@ wMw pbp sHV bZU -bZU -bZU +rtm bZU bZU bZU @@ -49983,6 +42967,7 @@ bZU bZU bZU bZU +rtm bZU xsH mrC @@ -50125,12 +43110,12 @@ mPk mPk imk wBp -qwQ -uYJ -qwQ -qwQ -qwQ -qwQ +mfP +ppU +mfP +mfP +mfP +mfP kap sSz miT @@ -50148,7 +43133,7 @@ irk bZU bZU bZU -rtm +bZU bZU bZU bZU @@ -50163,7 +43148,7 @@ bZU bZU bZU qOh -rtm +bZU bZU bZU bwP @@ -50307,12 +43292,12 @@ mPk mPk mPk fjv -qwQ -qwQ -pAX -qwQ -qwQ -qwQ +mfP +mfP +sAW +mfP +mfP +mfP kap cmU wMw @@ -50489,12 +43474,12 @@ mPk mPk mPk wBp -qwQ -qwQ -qwQ -qwQ -qwQ -lTR +mfP +mfP +mfP +mfP +mfP +ooP kap rgZ olD @@ -50671,18 +43656,18 @@ mPk mPk mPk rYC -lTR -pAX -qwQ -qwQ -lTR -lTR -eDY +ooP +sAW +mfP +mfP +ooP +ooP +tOB tpV asx cfq qAI -bJV +pEo ohC euS vWn @@ -50853,20 +43838,20 @@ mPk mPk mPk wBp -lTR -qwQ -qwQ -qwQ -lTR -qwQ -eDY +ooP +mfP +mfP +mfP +ooP +mfP +tOB lZR aCo lZR -caD -lTR -aTY -eGX +aBY +ooP +vLI +pYH haR kap wMw @@ -50905,7 +43890,7 @@ wMw wMw wMw pAp -cFK +aVs kdV gvM gvM @@ -51037,19 +44022,19 @@ mPk xVw dXg dXg -qwQ -qwQ -qwQ -qwQ +mfP +mfP +mfP +mfP xLB gnC mYR asx -caD -lTR -dXg -lTR -lTR +aBY +ooP +vzi +ooP +ooP kap wMw ygY @@ -51220,18 +44205,18 @@ wBp qwQ dXg dXg -qwQ -lTR -qwQ -fHf -wPl +mfP +ooP +mfP +ssw +vQF xOX lId -jLS -lTR -dXg -dXg -aTY +tyV +ooP +vzi +vzi +vLI kap oLa vUQ @@ -51402,18 +44387,18 @@ wBp uYJ dXg dXg -qwQ -qwQ -qwQ -qwQ +mfP +mfP +mfP +mfP xLB xOX bCM -rlI -rlI -rlI -rlI -rlI +kMe +kMe +kMe +kMe +kMe cEm fZB wMw @@ -51586,9 +44571,9 @@ qwQ dXg dXg dXg -qwQ -qwQ -eDY +mfP +mfP +tOB xOX tkV asx @@ -51604,7 +44589,7 @@ irk bZU bZU bZU -rtm +bZU bZU bZU bZU @@ -51619,7 +44604,7 @@ qOh bZU bZU bZU -rtm +bZU bZU bZU bwP @@ -51770,7 +44755,7 @@ dXg dXg dXg dXg -eDY +tOB asx asx kzo @@ -51784,8 +44769,7 @@ wMw pbp cYZ bZU -bZU -bZU +rtm bZU bZU bZU @@ -51803,6 +44787,7 @@ bZU bZU bZU bZU +rtm bZU miF mrC @@ -51954,7 +44939,7 @@ qwQ dXg xFS vZR -eha +apt dKy qVD fXu @@ -52796,7 +45781,7 @@ cto iFb mCF jdm -mCF +mSa mCF mCF mCF @@ -53514,7 +46499,7 @@ pKs chs chs kGq -wvI +ixr ixr ixr ixr @@ -53556,7 +46541,7 @@ xxk xxk xEG cSa -mCF +mSa mCF mCF mCF @@ -53830,7 +46815,7 @@ pjn mCY jzZ mCY -wjd +jzZ mRq xWY hvO @@ -54245,7 +47230,7 @@ bkM pKs pKs bkM -cNC +spN etv cto xxk @@ -60392,9 +53377,9 @@ mSf kCA rsB wOO -ubK -ubK -sLi +thp +thp +eGd pkT pAZ wOO @@ -60760,7 +53745,7 @@ lur lur lur fEu -ubK +thp oSX viK xJZ @@ -60942,7 +53927,7 @@ aDZ aDZ rTv fEu -ubK +thp oSX mZk xJZ @@ -61124,7 +54109,7 @@ rKl lur cbg fEu -xjp +swM wOO viK xJZ @@ -61672,7 +54657,7 @@ uZa mEB mEB oSX -xJZ +dJI xJZ xJZ viK @@ -62122,7 +55107,7 @@ cty cty aOg mCF -mSa +mCF mCF pGs pGs @@ -62990,7 +55975,7 @@ wXs xJZ ouy eyt -wnE +kbQ kbQ kbQ kbQ @@ -63426,7 +56411,7 @@ wlB lTg lTg lTg -lTg +emP pXT lTg lTg @@ -63435,16 +56420,16 @@ wlB wlB lTg lTg -lTg emP lTg +lTg wlB wlB wlB wlB wlB lTg -pXT +lIW pXT rhu wlB @@ -63610,7 +56595,7 @@ eia lTg lTg lTg -ade +wlB wlB wlB wlB @@ -63625,7 +56610,7 @@ wlB wlB wlB nFX -ias +pXT lTg wlB lTg @@ -63866,7 +56851,7 @@ ryD xJZ iLc dUL -jcY +bPk sny xJZ xJZ @@ -64798,7 +57783,7 @@ eyt eyt jqw qfu -kbQ +wnE sgk kbQ kbQ @@ -65066,7 +58051,7 @@ lTg lTg lTg lTg -ade +wlB wlB wlB wlB @@ -65081,7 +58066,7 @@ nFX wlB wlB wlB -xpL +uHD lTg wlB lTg @@ -65246,7 +58231,7 @@ lTg lTg wlB lTg -lTg +emP uHD lTg lTg @@ -65255,16 +58240,16 @@ wlB wlB lTg lTg -lTg emP lTg +lTg wlB wlB wlB wlB wlB lTg -uHD +sbP uHD lTg lTg @@ -65929,7 +58914,7 @@ bsf bsf bsf bsf -bsf +emt bsf bsf pDX diff --git a/maps/map_files/Sorokyne_Strata/Sorokyne_Strata.dmm b/maps/map_files/Sorokyne_Strata/Sorokyne_Strata.dmm index 84355a59b16d..2baad841c255 100644 --- a/maps/map_files/Sorokyne_Strata/Sorokyne_Strata.dmm +++ b/maps/map_files/Sorokyne_Strata/Sorokyne_Strata.dmm @@ -16,10 +16,7 @@ /area/strata/ug/interior) "aaf" = ( /obj/effect/landmark/xeno_spawn, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/gen/bball/nest) "aag" = ( /obj/effect/landmark/xeno_spawn, @@ -65,10 +62,7 @@ "aap" = ( /obj/item/weapon/gun/rifle/type71/carbine, /obj/effect/decal/cleanable/blood/gibs/core, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/gen/bball/nest) "aaq" = ( /obj/effect/decal/remains/xeno, @@ -87,9 +81,7 @@ dir = 8; icon_state = "p_stair_ew_half_cap" }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ug/interior/jungle/deep/minehead) "aau" = ( /obj/structure/platform/strata{ @@ -128,10 +120,7 @@ /obj/structure/machinery/power/monitor{ name = "Main Power Grid Monitoring" }, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/gen/bball/nest) "aaA" = ( /obj/structure/surface/table/reinforced/prison, @@ -245,10 +234,7 @@ "aaR" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /obj/effect/decal/cleanable/blood, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/gen/bball/nest) "aaS" = ( /obj/structure/bedsheetbin, @@ -264,10 +250,6 @@ /obj/effect/blocker/sorokyne_cold_water, /turf/open/gm/river, /area/strata/ag/exterior/paths/cabin_area) -"aaV" = ( -/obj/item/fuelCell, -/turf/open/auto_turf/ice/layer1, -/area/strata/ag/interior/outpost/gen/bball/nest) "aaW" = ( /obj/structure/machinery/light/small{ dir = 1; @@ -379,19 +361,13 @@ "abt" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/computer/cameras, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/gen/bball/nest) "abu" = ( /obj/structure/surface/rack, /obj/item/tank/emergency_oxygen/engi, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/gen/bball/nest) "abv" = ( /obj/effect/decal/cleanable/blood, @@ -406,10 +382,7 @@ /obj/structure/machinery/camera/autoname{ dir = 8 }, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/gen/bball/nest) "abz" = ( /obj/structure/machinery/light/small{ @@ -424,18 +397,14 @@ "abB" = ( /obj/structure/bed/nest, /obj/effect/landmark/corpsespawner/upp, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ug/interior/jungle/deep/minehead) "abC" = ( /turf/closed/wall/resin/membrane/strata/on_tiles, /area/strata/ug/interior/jungle/deep/minehead) "abD" = ( /obj/effect/landmark/xeno_spawn, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ug/interior/jungle/deep/minehead) "abE" = ( /obj/structure/surface/rack, @@ -444,10 +413,7 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ug/interior/jungle/deep/structures/res) "abF" = ( /obj/structure/surface/rack, @@ -455,28 +421,17 @@ /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ug/interior/jungle/deep/structures/res) -"abG" = ( -/obj/item/fuelCell, -/turf/open/auto_turf/snow/brown_base/layer1, -/area/strata/ag/interior/outpost/gen/bball/nest) "abH" = ( /obj/structure/surface/rack, /obj/item/storage/box/explosive_mines, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ug/interior/jungle/deep/structures/res) "abI" = ( /obj/structure/surface/rack, /obj/item/storage/box/cdeathalarm_kit, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ug/interior/jungle/deep/structures/res) "abJ" = ( /obj/structure/surface/rack, @@ -486,38 +441,27 @@ dir = 1; pixel_y = 20 }, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ug/interior/jungle/deep/structures/res) "abK" = ( /obj/structure/closet/wardrobe/grey, /obj/effect/landmark/wo_supplies/storage/mines, /obj/effect/landmark/wo_supplies/storage/mines, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/gen/bball/nest) "abL" = ( /obj/item/ammo_magazine/rifle/type71, /obj/item/ammo_magazine/rifle/type71, /obj/structure/surface/rack, /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/gen/bball/nest) "abM" = ( /obj/item/stack/rods, /obj/effect/decal/cleanable/blood/gibs/core, /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/gen/bball/nest) "abN" = ( /obj/item/stack/rods, @@ -543,17 +487,13 @@ /obj/structure/barricade/handrail/strata{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/exterior/paths/cabin_area) "abQ" = ( /obj/structure/barricade/handrail/strata{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/exterior/paths/cabin_area) "abR" = ( /obj/structure/platform/strata{ @@ -567,44 +507,29 @@ /area/strata/ag/exterior/paths/cabin_area) "abS" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ug/interior/jungle/deep/minehead) "abT" = ( /obj/structure/surface/rack, /obj/item/storage/pill_bottle/bicaridine, /obj/item/tool/crowbar, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ug/interior/jungle/deep/structures/res) "abU" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ug/interior/jungle/deep/structures/res) "abV" = ( /obj/structure/surface/rack, /obj/item/ammo_magazine/rifle/type71, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ug/interior/jungle/deep/structures/res) "abW" = ( /obj/structure/window/reinforced/tinted, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ug/interior/jungle/deep/structures/res) "abX" = ( -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ug/interior/jungle/deep/structures/res) "abY" = ( /obj/structure/flora/pottedplant{ @@ -614,15 +539,11 @@ dir = 1; pixel_y = 20 }, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ug/interior/jungle/deep/structures/res) "abZ" = ( /obj/structure/machinery/vending/coffee, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ug/interior/jungle/deep/structures/res) "aca" = ( /obj/structure/sink{ @@ -632,10 +553,7 @@ /obj/structure/mirror{ pixel_x = -29 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ug/interior/jungle/deep/structures/res) "acb" = ( /obj/structure/toilet{ @@ -645,10 +563,7 @@ dir = 1; pixel_y = 20 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ug/interior/jungle/deep/structures/res) "acc" = ( /obj/structure/platform/strata, @@ -658,9 +573,7 @@ "acd" = ( /obj/effect/decal/cleanable/blood, /obj/effect/decal/cleanable/blood/gibs/core, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/gen/bball) "ace" = ( /obj/structure/machinery/light/small{ @@ -668,18 +581,6 @@ }, /turf/open/asphalt/cement, /area/strata/ug/interior/jungle/platform/east/scrub) -"acf" = ( -/obj/structure/barricade/handrail/strata{ - dir = 4 - }, -/obj/structure/platform_decoration/strata/metal{ - dir = 4 - }, -/obj/item/fuelCell, -/turf/open/floor/strata{ - icon_state = "red2" - }, -/area/strata/ag/interior/outpost/engi) "acg" = ( /obj/effect/blocker/sorokyne_cold_water, /obj/structure/platform/strata/metal{ @@ -709,15 +610,11 @@ /area/strata/ag/exterior/paths/cabin_area) "acj" = ( /obj/effect/decal/cleanable/vomit, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ug/interior/jungle/deep/minehead) "ack" = ( /obj/structure/machinery/space_heater, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ug/interior/jungle/deep/minehead) "acl" = ( /obj/structure/machinery/light/small{ @@ -725,37 +622,25 @@ pixel_y = 20 }, /obj/effect/landmark/xeno_spawn, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ug/interior/jungle/deep/minehead) "acm" = ( /obj/structure/largecrate/random/barrel/white, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ug/interior/jungle/deep/structures/res) "acn" = ( /obj/structure/reagent_dispensers, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ug/interior/jungle/deep/structures/res) "aco" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/reagent_container/spray/cleaner, /obj/item/paper_bin, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ug/interior/jungle/deep/structures/res) "acp" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ug/interior/jungle/deep/structures/res) "acq" = ( /obj/structure/machinery/shower{ @@ -768,25 +653,17 @@ /obj/structure/machinery/door/window/eastright{ dir = 8 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ug/interior/jungle/deep/structures/res) "acr" = ( /obj/item/stack/rods, /obj/structure/inflatable/door, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/gen/bball) "acs" = ( /obj/effect/decal/cleanable/blood, /obj/structure/inflatable/door, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/gen/bball) "act" = ( /obj/structure/inflatable/door, @@ -824,98 +701,63 @@ "acx" = ( /obj/structure/bed/nest, /obj/effect/landmark/corpsespawner/doctor, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ug/interior/jungle/deep/minehead) "acy" = ( /obj/effect/decal/cleanable/blood{ icon_state = "xgibdown1" }, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ug/interior/jungle/deep/minehead) "acz" = ( /obj/effect/decal/cleanable/ash, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ug/interior/jungle/deep/minehead) "acA" = ( /obj/structure/window/reinforced/tinted, /obj/structure/largecrate/random/barrel/yellow, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ug/interior/jungle/deep/structures/res) "acB" = ( /obj/structure/window/reinforced/tinted, /obj/structure/largecrate/random/barrel/white, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ug/interior/jungle/deep/structures/res) -"acC" = ( -/obj/structure/barricade/handrail/strata{ - dir = 4 - }, -/obj/item/fuelCell, -/turf/open/floor/strata{ - icon_state = "red2" - }, -/area/strata/ag/interior/outpost/engi) "acE" = ( /obj/structure/window/framed/strata, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ug/interior/jungle/deep/structures/res) "acF" = ( /obj/structure/bed/chair/office/light{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ug/interior/jungle/deep/structures/res) "acG" = ( /obj/structure/window/reinforced/tinted, /obj/item/stool, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ug/interior/jungle/deep/structures/res) "acH" = ( /obj/item/stool, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ug/interior/jungle/deep/structures/res) "acI" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/gen/bball) "acJ" = ( /obj/structure/machinery/light/small{ dir = 1; pixel_y = 20 }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/gen/bball) "acK" = ( /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/gen/bball) "acL" = ( /obj/structure/machinery/scoreboard{ @@ -925,9 +767,7 @@ /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/gen/bball) "acM" = ( /obj/structure/machinery/light/small{ @@ -936,16 +776,11 @@ }, /obj/effect/landmark/corpsespawner/russian, /obj/structure/bed/roller, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/gen/bball) "acN" = ( /obj/structure/window/framed/strata/reinforced, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/dorms/hive) "acO" = ( /obj/structure/flora/grass/tallgrass/ice/corner{ @@ -967,15 +802,11 @@ /area/strata/ag/interior/outpost/gen/bball/nest) "acR" = ( /obj/effect/decal/remains/xeno, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ug/interior/jungle/deep/minehead) "acS" = ( /obj/structure/machinery/disposal, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ug/interior/jungle/deep/minehead) "acT" = ( /obj/structure/filingcabinet, @@ -983,18 +814,14 @@ dir = 1 }, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ug/interior/jungle/deep/structures/res) "acU" = ( /turf/open/auto_turf/ice/layer0, /area/strata/ag/interior/outpost/gen/bball/nest) "acV" = ( /obj/effect/landmark/xeno_spawn, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ug/interior/jungle/deep/structures/res) "acW" = ( /obj/structure/bed/nest, @@ -1008,45 +835,33 @@ /area/strata/ag/exterior/marsh/water) "acY" = ( /obj/structure/platform/strata/metal, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/nearlz1) "acZ" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/paper_bin, /obj/item/tool/pen/blue, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ug/interior/jungle/deep/structures/res) "ada" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/computer/cameras{ dir = 1 }, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ug/interior/jungle/deep/structures/res) "adb" = ( /obj/structure/largecrate/random/case/double, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ug/interior/jungle/deep/structures/res) "adc" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /obj/effect/landmark/xeno_spawn, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ug/interior/jungle/deep/structures/res) "add" = ( /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ug/interior/jungle/deep/structures/res) "ade" = ( /obj/structure/surface/table/reinforced/prison, @@ -1055,23 +870,17 @@ dir = 1; pixel_y = 20 }, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ug/interior/jungle/deep/structures/res) "adf" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/storage/box/ids, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ug/interior/jungle/deep/structures/res) "adg" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/computer/communications, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ug/interior/jungle/deep/structures/res) "adh" = ( /obj/structure/sign/safety/bulkhead_door, @@ -1081,18 +890,13 @@ /obj/structure/machinery/door/airlock/almayer/maint/colony{ dir = 2 }, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/gen/bball/nest) "adj" = ( /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/gen/bball) "adk" = ( /obj/structure/machinery/weather_siren{ @@ -1121,9 +925,7 @@ /turf/open/auto_turf/snow/brown_base/layer0, /area/strata/ag/interior/outpost/gen/bball/nest) "ado" = ( -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/exterior/paths/cabin_area) "adq" = ( /obj/structure/machinery/weather_siren{ @@ -1137,62 +939,42 @@ "ads" = ( /obj/structure/inflatable/popped/door, /obj/effect/decal/cleanable/blood, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/exterior/nearlz2) "adt" = ( /obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ug/interior/jungle/deep/minehead) "adw" = ( /obj/structure/reagent_dispensers/watertank, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ug/interior/jungle/deep/minehead) "adx" = ( /obj/structure/filingcabinet, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ug/interior/jungle/deep/structures/res) "ady" = ( /obj/effect/decal/strata_decals/catwalk/prison, /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ug/interior/jungle/deep/structures/res) "adz" = ( /obj/structure/window/framed/strata, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ug/interior/jungle/deep/structures/res) "adA" = ( /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ug/interior/jungle/deep/structures/res) "adB" = ( /obj/structure/closet/basketball, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan1" - }, +/turf/open/floor/strata/cyan1/east, /area/strata/ag/interior/outpost/gen/bball) "adC" = ( /obj/effect/decal/cleanable/blood/gibs/core, @@ -1211,9 +993,7 @@ /obj/structure/barricade/handrail/strata{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/outpost/gen/bball) "adE" = ( /obj/effect/decal/warning_stripes{ @@ -1225,9 +1005,7 @@ /obj/structure/barricade/handrail/strata{ dir = 1 }, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/outpost/gen/bball) "adF" = ( /obj/effect/decal/warning_stripes{ @@ -1242,20 +1020,14 @@ /obj/structure/barricade/handrail/strata{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/outpost/gen/bball) "adG" = ( /obj/structure/closet/basketball, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/outpost/gen/bball) "adH" = ( -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/outpost/gen/bball) "adI" = ( /obj/structure/flora/grass/tallgrass/ice, @@ -1281,9 +1053,7 @@ /obj/structure/inflatable/popped/door, /obj/effect/decal/cleanable/dirt, /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ug/interior/jungle/deep/minehead) "adN" = ( /obj/item/lightstick/red/planted, @@ -1295,18 +1065,14 @@ pixel_y = 20 }, /obj/effect/decal/cleanable/ash, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ug/interior/jungle/deep/minehead) "adP" = ( /obj/structure/machinery/light/small{ dir = 1; pixel_y = 20 }, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ug/interior/jungle/deep/minehead) "adQ" = ( /turf/closed/wall/wood, @@ -1319,33 +1085,25 @@ }, /obj/item/tool/kitchen/utensil/pfork, /obj/item/device/flashlight/lamp, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ug/interior/jungle/deep/structures/res) "adS" = ( /turf/closed/wall/strata_outpost/reinforced/hull, /area/strata/ag/interior/research_decks/security) "adT" = ( /obj/structure/machinery/space_heater, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ug/interior/jungle/deep/structures/res) "adU" = ( /obj/structure/closet/secure_closet/security/soro, /obj/item/reagent_container/food/snacks/carpmeat, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ug/interior/jungle/deep/structures/res) "adV" = ( /obj/structure/filingcabinet, /obj/structure/window/reinforced/tinted, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ug/interior/jungle/deep/structures/res) "adW" = ( /obj/item/stack/rods, @@ -1354,18 +1112,13 @@ "adX" = ( /obj/structure/barricade/handrail/strata, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ug/interior/jungle/deep/structures/res) "adY" = ( /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ug/interior/jungle/deep/structures/res) "adZ" = ( /obj/structure/machinery/cm_vending/sorted/boozeomat, @@ -1373,21 +1126,15 @@ dir = 1; pixel_y = 20 }, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ug/interior/jungle/deep/structures/res) "aea" = ( /obj/structure/machinery/vending/cigarette/colony, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ug/interior/jungle/deep/structures/res) "aeb" = ( /obj/structure/machinery/vending/snack, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ug/interior/jungle/deep/structures/res) "aec" = ( /obj/structure/machinery/vending/coffee, @@ -1395,9 +1142,7 @@ dir = 1; pixel_y = 20 }, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ug/interior/jungle/deep/structures/res) "aed" = ( /obj/effect/decal/warning_stripes{ @@ -1406,25 +1151,19 @@ /obj/structure/barricade/handrail/strata{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/outpost/gen/bball) "aee" = ( /obj/structure/closet/secure_closet/personal, /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/outpost/gen/bball) "aef" = ( /obj/structure/inflatable/door, /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ug/interior/jungle/deep/minehead) "aeg" = ( /obj/effect/decal/cleanable/blood/gibs/core, @@ -1439,33 +1178,30 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ug/interior/jungle/deep/structures/res) "aei" = ( /obj/structure/bed/chair/office/light, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ug/interior/jungle/deep/structures/res) "aej" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ dir = 8 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ug/interior/jungle/deep/structures/res) "aek" = ( /obj/structure/barricade/handrail/strata{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ug/interior/jungle/deep/structures/res) +"aem" = ( +/obj/item/fuel_cell, +/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, +/obj/structure/barricade/handrail/strata, +/turf/open/floor/strata/multi_tiles, +/area/strata/ag/interior/dorms/hive) "aen" = ( /obj/effect/landmark/monkey_spawn, /turf/open/auto_turf/snow/brown_base/layer0, @@ -1474,17 +1210,13 @@ /obj/structure/barricade/handrail/strata{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ug/interior/jungle/deep/structures/res) "aeq" = ( /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ug/interior/jungle/deep/structures/res) "aer" = ( /obj/structure/window/reinforced/tinted{ @@ -1494,25 +1226,18 @@ /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ug/interior/jungle/deep/structures/res) "aes" = ( /obj/structure/bed/nest, /obj/item/storage/pill_bottle/inaprovaline/skillless, /obj/effect/decal/cleanable/blood/gibs/core, -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles, /area/strata/ag/interior/dorms/hive) "aet" = ( /obj/structure/closet/secure_closet/personal, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan1" - }, +/turf/open/floor/strata/cyan1/east, /area/strata/ag/interior/outpost/gen/bball) "aeu" = ( /obj/effect/decal/warning_stripes{ @@ -1520,9 +1245,7 @@ }, /obj/effect/decal/warning_stripes, /obj/item/toy/beach_ball/holoball, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/outpost/gen/bball) "aev" = ( /obj/effect/landmark/corpsespawner/upp, @@ -1530,9 +1253,7 @@ /area/strata/ag/interior/outpost/gen/bball/nest) "aex" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ug/interior/jungle/deep/minehead) "aez" = ( /obj/structure/flora/bush/ausbushes/grassybush, @@ -1540,17 +1261,13 @@ /area/strata/ug/interior/jungle/deep/minehead) "aeB" = ( /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ug/interior/jungle/deep/structures/res) "aeC" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22" }, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ug/interior/jungle/deep/structures/res) "aeD" = ( /obj/structure/machinery/light/small{ @@ -1560,9 +1277,7 @@ /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 10 }, -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles, /area/strata/ag/interior/dorms) "aeE" = ( /obj/structure/window/reinforced/tinted{ @@ -1570,18 +1285,13 @@ }, /obj/structure/surface/table/reinforced/prison, /obj/item/reagent_container/food/snacks/cheesecakeslice, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ug/interior/jungle/deep/structures/res) "aeF" = ( /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ug/interior/jungle/deep/structures/res) "aeH" = ( /obj/structure/surface/table/reinforced/prison, @@ -1591,9 +1301,7 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/outpost/gen/bball) "aeJ" = ( /obj/structure/flora/grass/tallgrass/ice/corner{ @@ -1611,17 +1319,13 @@ /area/strata/ag/exterior/paths/cabin_area) "aeM" = ( /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles, /area/strata/ag/interior/dorms) "aeN" = ( /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ug/interior/jungle/deep/minehead) "aeR" = ( /obj/structure/machinery/power/apc{ @@ -1629,26 +1333,18 @@ pixel_x = -24; start_charge = 0 }, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ug/interior/jungle/deep/structures/res) "aeS" = ( /obj/effect/decal/strata_decals/catwalk/prison, /obj/structure/disposalpipe/segment, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ug/interior/jungle/deep/structures/res) "aeT" = ( /obj/structure/barricade/handrail/strata{ dir = 4 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ug/interior/jungle/deep/structures/res) "aeU" = ( /obj/structure/flora/grass/tallgrass/ice, @@ -1668,9 +1364,7 @@ layer = 2.9 }, /obj/structure/barricade/handrail/strata, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/admin) "aeY" = ( /turf/closed/shuttle/ert{ @@ -1686,43 +1380,29 @@ /obj/structure/barricade/handrail/strata{ dir = 8 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ug/interior/jungle/deep/structures/res) "afb" = ( /obj/effect/decal/strata_decals/catwalk/prison, /obj/structure/disposalpipe/segment, /obj/item/stack/rods, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ug/interior/jungle/deep/structures/res) "afc" = ( /obj/effect/decal/cleanable/blood{ icon_state = "gib6" }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ug/interior/jungle/deep/structures/res) "afd" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ug/interior/jungle/deep/structures/res) "afe" = ( /obj/structure/bookcase{ icon_state = "book-5" }, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ug/interior/jungle/deep/structures/res) "aff" = ( /obj/item/lightstick/planted, @@ -1730,9 +1410,7 @@ /area/strata/ag/interior/mountain) "afg" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony, -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles, /area/strata/ag/interior/dorms) "afh" = ( /obj/effect/decal/warning_stripes{ @@ -1741,9 +1419,7 @@ /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/outpost/gen/bball) "afi" = ( /obj/effect/decal/warning_stripes{ @@ -1759,9 +1435,7 @@ icon_state = "E" }, /obj/structure/barricade/handrail/strata, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/outpost/gen/bball) "afj" = ( /obj/effect/decal/warning_stripes{ @@ -1774,9 +1448,7 @@ dir = 4 }, /obj/structure/barricade/handrail/strata, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/outpost/gen/bball) "afk" = ( /obj/structure/blocker/forcefield/multitile_vehicles, @@ -1784,22 +1456,16 @@ /area/strata/ag/interior/outpost/gen/bball/nest) "afl" = ( /obj/structure/inflatable/door, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ug/interior/jungle/deep/minehead) "afm" = ( /obj/structure/inflatable/popped/door, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ug/interior/jungle/deep/minehead) "afn" = ( /obj/structure/inflatable/popped/door, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ug/interior/jungle/deep/minehead) "afo" = ( /obj/structure/inflatable/door, @@ -1815,9 +1481,7 @@ /obj/structure/barricade/handrail/strata{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/admin) "afs" = ( /obj/structure/flora/pottedplant{ @@ -1827,10 +1491,7 @@ dir = 4 }, /obj/structure/barricade/handrail/strata, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ug/interior/jungle/deep/structures/res) "aft" = ( /obj/structure/sink{ @@ -1838,9 +1499,7 @@ pixel_x = -11 }, /obj/effect/decal/cleanable/blood, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/tcomms) "afu" = ( /obj/structure/flora/pottedplant{ @@ -1850,10 +1509,7 @@ dir = 8 }, /obj/structure/barricade/handrail/strata, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ug/interior/jungle/deep/structures/res) "afv" = ( /obj/structure/platform/strata{ @@ -1871,9 +1527,7 @@ "afx" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/computer/communications, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/strata/ug/interior/jungle/deep/structures/res) "afy" = ( /turf/closed/shuttle/ert{ @@ -1894,63 +1548,32 @@ /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ug/interior/jungle/deep/structures/res) -"afB" = ( -/obj/item/fuelCell, -/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/obj/structure/machinery/light/small{ - dir = 1; - pixel_y = 20 - }, -/obj/structure/barricade/handrail/strata, -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, -/area/strata/ag/interior/dorms/hive) -"afC" = ( -/obj/item/fuelCell, -/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/obj/structure/barricade/handrail/strata, -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, -/area/strata/ag/interior/dorms/hive) "afD" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 6 }, -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles, /area/strata/ag/interior/dorms/hive) "afE" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles, /area/strata/ag/interior/dorms/hive) "afF" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles, /area/strata/ag/interior/dorms/hive) "afG" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/tool, /obj/effect/spawner/random/tool, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/engi/drome) "afH" = ( /obj/structure/machinery/light/small{ @@ -1960,9 +1583,7 @@ /obj/structure/pipes/standard/manifold/hidden/cyan{ dir = 1 }, -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles, /area/strata/ag/interior/dorms/maintenance) "afI" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ @@ -1987,48 +1608,34 @@ /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles, /area/strata/ag/interior/dorms/maintenance) "afL" = ( /obj/structure/pipes/standard/manifold/hidden/cyan{ dir = 1 }, -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles, /area/strata/ag/interior/dorms/maintenance) "afM" = ( /obj/structure/machinery/washing_machine, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan1" - }, +/turf/open/floor/strata/cyan1/east, /area/strata/ag/interior/outpost/gen/bball) "afN" = ( /obj/structure/bedsheetbin, /obj/structure/machinery/camera/autoname{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/outpost/gen/bball) "afO" = ( /obj/effect/decal/cleanable/blood/gibs/down, /obj/item/dogtag, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/outpost/gen/bball) "afP" = ( /obj/structure/machinery/washing_machine, /obj/effect/decal/cleanable/blood, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/outpost/gen/bball) "afQ" = ( /obj/structure/flora/grass/tallgrass/ice/corner{ @@ -2045,10 +1652,7 @@ dir = 1; pixel_y = 20 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ug/interior/jungle/deep/structures/res) "afU" = ( /obj/structure/machinery/light/small{ @@ -2056,10 +1660,7 @@ pixel_y = 20 }, /obj/structure/inflatable/popped/door, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ug/interior/jungle/deep/structures/res) "afV" = ( /obj/structure/flora/grass/tallgrass/ice/corner{ @@ -2069,9 +1670,7 @@ /turf/open/auto_turf/snow/brown_base/layer3, /area/strata/ag/exterior/paths/cabin_area) "afW" = ( -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles, /area/strata/ag/interior/dorms) "afX" = ( /obj/structure/surface/table/reinforced/prison, @@ -2080,17 +1679,13 @@ dir = 1; pixel_y = 20 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/strata/ug/interior/jungle/deep/structures/res) "afY" = ( /obj/structure/bed/chair/dropship/passenger{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "test_floor5" - }, +/turf/open/floor/almayer/test_floor5, /area/strata/ug/interior/jungle/deep/structures/res) "afZ" = ( /obj/structure/flora/grass/tallgrass/ice/corner{ @@ -2101,9 +1696,7 @@ "aga" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/faxmachine, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ug/interior/jungle/deep/structures/res) "agb" = ( /obj/structure/flora/grass/tallgrass/ice/corner{ @@ -2122,16 +1715,11 @@ /area/strata/ag/exterior/paths/cabin_area) "agf" = ( /obj/structure/bedsheetbin, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan1" - }, +/turf/open/floor/strata/cyan1/east, /area/strata/ag/interior/outpost/gen/bball) "agg" = ( /obj/structure/bedsheetbin, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/outpost/gen/bball) "agh" = ( /obj/structure/machinery/washing_machine, @@ -2139,9 +1727,7 @@ /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/outpost/gen/bball) "agi" = ( /obj/effect/decal/cleanable/dirt, @@ -2150,18 +1736,12 @@ "agl" = ( /obj/structure/machinery/light/small, /obj/structure/inflatable/popped/door, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ug/interior/jungle/deep/structures/res) "agm" = ( /obj/structure/inflatable/door, /obj/structure/machinery/light/small, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ug/interior/jungle/deep/structures/res) "agn" = ( /obj/structure/barricade/handrail/strata, @@ -2175,15 +1755,11 @@ "agp" = ( /obj/structure/surface/table/reinforced/prison, /obj/effect/spawner/random/tool, -/turf/open/floor/almayer{ - icon_state = "test_floor5" - }, +/turf/open/floor/almayer/test_floor5, /area/strata/ug/interior/jungle/deep/structures/res) "agq" = ( /obj/structure/bed/chair/dropship/passenger, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/strata/ug/interior/jungle/deep/structures/res) "agr" = ( /obj/structure/machinery/space_heater, @@ -2191,15 +1767,11 @@ dir = 1; pixel_y = 20 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/strata/ug/interior/jungle/deep/structures/res) "ags" = ( /obj/effect/spawner/random/tool, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/strata/ug/interior/jungle/deep/structures/res) "agt" = ( /obj/effect/landmark/xeno_spawn, @@ -2207,15 +1779,11 @@ dir = 1; pixel_y = 20 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/strata/ug/interior/jungle/deep/structures/res) "agu" = ( /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/almayer{ - icon_state = "test_floor5" - }, +/turf/open/floor/almayer/test_floor5, /area/strata/ug/interior/jungle/deep/structures/res) "agv" = ( /turf/closed/shuttle/ert{ @@ -2224,22 +1792,15 @@ /area/strata/ug/interior/jungle/deep/structures/res) "agw" = ( /obj/structure/filingcabinet, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/outpost/admin) "agx" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ug/interior/jungle/deep/structures/res) "agy" = ( /obj/item/stack/rods, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ug/interior/jungle/deep/structures/res) "agz" = ( /obj/structure/stairs/perspective{ @@ -2249,9 +1810,7 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/dorms/flight_control) "agA" = ( /obj/effect/particle_effect/steam, @@ -2270,18 +1829,14 @@ dir = 4 }, /obj/effect/landmark/survivor_spawner, -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles, /area/strata/ag/interior/dorms/hive) "agC" = ( /obj/effect/decal/remains/xeno, /obj/structure/pipes/standard/manifold/hidden/cyan{ dir = 1 }, -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles, /area/strata/ag/interior/dorms/hive) "agD" = ( /obj/effect/decal/cleanable/blood, @@ -2292,9 +1847,7 @@ /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles, /area/strata/ag/interior/dorms/hive) "agE" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, @@ -2302,27 +1855,21 @@ /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles, /area/strata/ag/interior/dorms/hive) "agF" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, /obj/structure/machinery/door/airlock/almayer/maint/colony, -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles, /area/strata/ag/interior/dorms/hive) "agG" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /obj/structure/pipes/standard/manifold/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles, /area/strata/ag/interior/dorms/hive) "agH" = ( /obj/structure/barricade/snow{ @@ -2337,25 +1884,17 @@ pixel_y = -4 }, /obj/effect/decal/cleanable/blood/gibs/core, -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles, /area/strata/ag/interior/dorms/hive) "agJ" = ( /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan2" - }, +/turf/open/floor/strata/cyan2/east, /area/strata/ag/interior/dorms/canteen) "agK" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/reagent_container/spray/cleaner, /obj/item/reagent_container/food/snacks/flour, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan1" - }, +/turf/open/floor/strata/cyan1/east, /area/strata/ag/interior/dorms/canteen) "agL" = ( /obj/structure/surface/table/reinforced/prison, @@ -2364,18 +1903,12 @@ dir = 1; pixel_y = 20 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan1" - }, +/turf/open/floor/strata/cyan1/east, /area/strata/ag/interior/dorms/canteen) "agM" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/reagentgrinder, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan1" - }, +/turf/open/floor/strata/cyan1/east, /area/strata/ag/interior/dorms/canteen) "agN" = ( /obj/structure/sign/safety/fire_haz, @@ -2386,16 +1919,11 @@ /area/space) "agP" = ( /obj/structure/machinery/gibber, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan2" - }, +/turf/open/floor/strata/cyan2/east, /area/strata/ag/interior/dorms/canteen) "agQ" = ( /obj/structure/closet/lasertag/red, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/gen/bball) "agR" = ( /turf/open/auto_turf/snow/brown_base/layer1, @@ -2434,10 +1962,7 @@ /obj/structure/barricade/handrail/strata{ dir = 4 }, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ug/interior/jungle/deep/structures/res) "ahe" = ( /obj/structure/flora/pottedplant{ @@ -2449,33 +1974,23 @@ /obj/structure/barricade/handrail/strata{ dir = 8 }, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ug/interior/jungle/deep/structures/res) "ahf" = ( /obj/structure/barricade/handrail/strata{ dir = 1 }, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ug/interior/jungle/deep/structures/res) "ahg" = ( /turf/closed/wall/strata_outpost/reinforced/hull, /area/strata/ag/interior/paths/cabin_area/central) "ahh" = ( -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/strata/ug/interior/jungle/deep/structures/res) "ahi" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/strata/ug/interior/jungle/deep/structures/res) "ahj" = ( /obj/item/stack/catwalk, @@ -2501,9 +2016,7 @@ /area/strata/ug/interior/jungle/deep/structures/res) "ahm" = ( /obj/item/stack/catwalk, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/strata/ug/interior/jungle/deep/structures/res) "ahn" = ( /turf/open/auto_turf/ice/layer2, @@ -2517,24 +2030,18 @@ dir = 4 }, /obj/item/paper_bin, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ug/interior/jungle/deep/structures/res) "ahp" = ( /obj/item/storage/box/donkpockets, /obj/item/storage/box/donkpockets, /obj/structure/surface/rack, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ug/interior/jungle/deep/structures/res) "ahq" = ( /obj/structure/closet, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/dorms/flight_control) "ahr" = ( /obj/structure/closet/fireaxecabinet, @@ -2542,9 +2049,7 @@ /area/strata/ag/interior/dorms/flight_control) "ahs" = ( /obj/effect/decal/remains/xeno, -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles, /area/strata/ag/interior/dorms/hive) "aht" = ( /obj/structure/bed/nest, @@ -2554,39 +2059,28 @@ }, /obj/effect/decal/cleanable/blood/gibs/core, /obj/effect/landmark/corpsespawner/russian, -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles, /area/strata/ag/interior/dorms/hive) "ahu" = ( /obj/structure/pipes/standard/simple/hidden/cyan, /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan2" - }, +/turf/open/floor/strata/cyan2/east, /area/strata/ag/interior/dorms/canteen) "ahv" = ( /obj/structure/mirror{ pixel_y = 28 }, /obj/structure/largecrate/guns/russian, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/dorms/canteen) "ahw" = ( /obj/structure/machinery/processor, /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan2" - }, +/turf/open/floor/strata/cyan2/east, /area/strata/ag/interior/dorms/canteen) "ahx" = ( /obj/structure/pipes/vents/pump{ @@ -2595,20 +2089,14 @@ /obj/structure/machinery/camera/autoname{ dir = 4 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan2" - }, +/turf/open/floor/strata/cyan2/east, /area/strata/ag/interior/dorms/canteen) "ahy" = ( /obj/structure/kitchenspike, /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan2" - }, +/turf/open/floor/strata/cyan2/east, /area/strata/ag/interior/dorms/canteen) "ahz" = ( /obj/structure/barricade/snow{ @@ -2645,9 +2133,7 @@ /area/strata/ug/interior/jungle/deep/structures/res) "ahJ" = ( /obj/structure/surface/rack, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/strata/ug/interior/jungle/deep/structures/res) "ahK" = ( /turf/open/gm/coast/beachcorner/north_west, @@ -2661,9 +2147,7 @@ /area/strata/ug/interior/jungle/deep/structures/res) "ahM" = ( /obj/effect/spawner/random/tool, -/turf/open/floor/almayer{ - icon_state = "test_floor5" - }, +/turf/open/floor/almayer/test_floor5, /area/strata/ug/interior/jungle/deep/structures/res) "ahN" = ( /obj/structure/disposalpipe/segment{ @@ -2679,32 +2163,24 @@ pixel_y = 20 }, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/dorms/flight_control) "ahP" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/dorms/flight_control) "ahQ" = ( /obj/structure/machinery/door/airlock/almayer/security/colony{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/dorms/flight_control) "ahR" = ( /obj/structure/stairs/perspective{ color = "#6e6e6e" }, /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles, /area/strata/ag/interior/dorms/hive) "ahS" = ( /obj/item/stack/rods, @@ -2718,45 +2194,30 @@ /obj/structure/machinery/camera/autoname{ dir = 4 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan2" - }, +/turf/open/floor/strata/cyan2/east, /area/strata/ag/interior/dorms/canteen) "ahU" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/dorms/canteen) "ahV" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/dorms/canteen) "ahW" = ( /obj/item/stack/sandbags, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/dorms/canteen) "ahX" = ( /obj/structure/closet/secure_closet/freezer/fridge, /obj/item/reagent_container/food/drinks/milk, /obj/item/reagent_container/food/drinks/milk, /obj/item/reagent_container/food/drinks/milk, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan2" - }, +/turf/open/floor/strata/cyan2/east, /area/strata/ag/interior/dorms/canteen) "ahY" = ( /obj/structure/flora/grass/tallgrass/ice/corner{ @@ -2787,37 +2248,27 @@ "aih" = ( /obj/effect/landmark/crap_item, /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ug/interior/jungle/deep/structures/res) "aii" = ( /obj/structure/machinery/computer/guestpass, /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ug/interior/jungle/deep/structures/res) "aij" = ( /obj/item/device/flashlight/lamp, /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ug/interior/jungle/deep/structures/res) "aik" = ( /obj/item/storage/firstaid/adv, /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ug/interior/jungle/deep/structures/res) "ail" = ( /obj/structure/machinery/computer/cameras, /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ug/interior/jungle/deep/structures/res) "aim" = ( /turf/closed/shuttle/ert{ @@ -2858,9 +2309,7 @@ "air" = ( /obj/item/stool, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/strata/ug/interior/jungle/deep/structures/res) "ais" = ( /turf/closed/shuttle/ert{ @@ -2871,10 +2320,7 @@ /obj/effect/decal/strata_decals/catwalk/prison, /obj/structure/disposalpipe/segment, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ug/interior/jungle/deep/structures/res) "aiu" = ( /obj/structure/window/reinforced/tinted{ @@ -2884,16 +2330,11 @@ /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ug/interior/jungle/deep/structures/res) "aiv" = ( /obj/structure/machinery/light/small, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ug/interior/jungle/deep/structures/res) "aiw" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ @@ -2911,9 +2352,7 @@ /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/dorms/flight_control) "aiz" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ @@ -2922,9 +2361,7 @@ /obj/structure/machinery/door/airlock/almayer/security/colony{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/dorms/flight_control) "aiA" = ( /obj/structure/pipes/standard/manifold/hidden/cyan{ @@ -2940,9 +2377,7 @@ pixel_x = 6; pixel_y = -4 }, -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles, /area/strata/ag/interior/dorms/hive) "aiC" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, @@ -2951,9 +2386,7 @@ pixel_y = -4 }, /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles, /area/strata/ag/interior/dorms/hive) "aiD" = ( /obj/structure/machinery/light/small{ @@ -2964,26 +2397,18 @@ "aiE" = ( /obj/structure/bed/nest, /obj/effect/decal/cleanable/blood/gibs/core, -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles, /area/strata/ag/interior/dorms/hive) "aiF" = ( /obj/item/tool/kitchen/rollingpin, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/dorms/canteen) "aiG" = ( /obj/structure/sink{ dir = 4; pixel_x = 11 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan2" - }, +/turf/open/floor/strata/cyan2/east, /area/strata/ag/interior/dorms/canteen) "aiH" = ( /obj/structure/sign/safety/fridge, @@ -3005,9 +2430,7 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles, /area/strata/ag/interior/dorms/maintenance) "aiK" = ( /obj/structure/barricade/snow{ @@ -3022,25 +2445,16 @@ /area/strata/ag/interior/outpost/gen/bball) "aiM" = ( /obj/structure/window/framed/strata/reinforced, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/outpost/canteen/personal_storage) "aiN" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/comdoor/colony{ name = "\improper Airlock" }, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/outpost/canteen/personal_storage) "aiO" = ( -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/outpost/canteen/personal_storage) "aiP" = ( /obj/effect/particle_effect/steam, @@ -3061,14 +2475,10 @@ dir = 4 }, /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ug/interior/jungle/deep/structures/res) "aiV" = ( -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ug/interior/jungle/deep/structures/res) "aiW" = ( /obj/structure/flora/grass/tallgrass/ice/corner{ @@ -3079,18 +2489,14 @@ "aiX" = ( /obj/item/clipboard, /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ug/interior/jungle/deep/structures/res) "aiY" = ( /obj/structure/machinery/computer/cameras{ dir = 8 }, /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ug/interior/jungle/deep/structures/res) "aiZ" = ( /obj/structure/flora/grass/tallgrass/ice, @@ -3115,15 +2521,11 @@ "ajd" = ( /obj/structure/filingcabinet, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ug/interior/jungle/deep/structures/res) "aje" = ( /obj/structure/machinery/washing_machine, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ug/interior/jungle/deep/structures/res) "ajf" = ( /obj/structure/platform/strata/metal{ @@ -3136,9 +2538,7 @@ /area/strata/ug/interior/jungle/deep/south_dorms) "ajg" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony, -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles, /area/strata/ag/interior/dorms/flight_control) "ajh" = ( /obj/structure/flora/grass/tallgrass/ice/corner{ @@ -3148,18 +2548,14 @@ /area/strata/ag/exterior/paths/cabin_area) "aji" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony, -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles, /area/strata/ag/interior/dorms/hive) "ajj" = ( /obj/effect/decal/cleanable/blood, /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles, /area/strata/ag/interior/dorms/hive) "ajk" = ( /obj/item/weapon/gun/revolver/cmb{ @@ -3169,9 +2565,7 @@ /obj/structure/pipes/standard/manifold/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles, /area/strata/ag/interior/dorms/hive) "ajl" = ( /obj/effect/decal/cleanable/blood, @@ -3189,28 +2583,19 @@ /obj/item/clothing/head/soft/ferret{ pixel_y = 9 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan2" - }, +/turf/open/floor/strata/cyan2/east, /area/strata/ag/interior/dorms/canteen) "ajo" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/reagent_container/food/snacks/eggplantparm, /obj/structure/pipes/standard/simple/hidden/cyan, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan2" - }, +/turf/open/floor/strata/cyan2/east, /area/strata/ag/interior/dorms/canteen) "ajp" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/reagent_container/food/snacks/jellysandwich, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan2" - }, +/turf/open/floor/strata/cyan2/east, /area/strata/ag/interior/dorms/canteen) "ajr" = ( /obj/structure/surface/table/reinforced/prison, @@ -3220,26 +2605,18 @@ pixel_y = 3 }, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan2" - }, +/turf/open/floor/strata/cyan2/east, /area/strata/ag/interior/dorms/canteen) "ajs" = ( /obj/structure/machinery/door/airlock/almayer/medical/glass/colony{ dir = 2; name = "\improper Airlock" }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan2" - }, +/turf/open/floor/strata/cyan2/east, /area/strata/ag/interior/dorms/canteen) "ajt" = ( /obj/structure/surface/rack, -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles, /area/strata/ag/interior/dorms/maintenance) "aju" = ( /obj/effect/landmark/monkey_spawn, @@ -3249,10 +2626,7 @@ /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/disposals) "ajw" = ( /obj/effect/particle_effect/steam, @@ -3265,47 +2639,33 @@ /area/strata/ag/exterior/marsh/river) "ajx" = ( /obj/structure/closet/secure_closet/personal, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/outpost/canteen/personal_storage) "ajy" = ( /obj/structure/closet/secure_closet/personal, -/turf/open/floor/prison{ - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2, /area/strata/ag/interior/outpost/canteen/personal_storage) "ajz" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/device/lightreplacer, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/canteen/personal_storage) "ajC" = ( /obj/effect/decal/cleanable/blood{ icon_state = "gib6" }, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ug/interior/jungle/deep/structures/res) "ajD" = ( /obj/item/clipboard, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ug/interior/jungle/deep/structures/res) "ajE" = ( /obj/structure/machinery/light/small{ dir = 1; pixel_y = 20 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ug/interior/jungle/deep/structures/res) "ajF" = ( /turf/closed/shuttle/ert{ @@ -3315,27 +2675,19 @@ /area/strata/ug/interior/jungle/deep/structures/res) "ajG" = ( /obj/effect/landmark/xeno_spawn, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/strata/ug/interior/jungle/deep/structures/res) "ajH" = ( /obj/structure/bookcase, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ug/interior/jungle/deep/structures/res) "ajI" = ( /obj/item/stool, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ug/interior/jungle/deep/structures/res) "ajJ" = ( /obj/structure/bedsheetbin, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ug/interior/jungle/deep/structures/res) "ajK" = ( /obj/structure/pipes/standard/simple/hidden/cyan, @@ -3347,9 +2699,7 @@ icon_state = "xgib4" }, /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles, /area/strata/ag/interior/dorms/hive) "ajN" = ( /turf/open/auto_turf/snow/brown_base/layer1, @@ -3357,37 +2707,17 @@ "ajO" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/faxmachine, -/turf/open/floor/strata{ - icon_state = "purp2" - }, +/turf/open/floor/strata/purp2, /area/strata/ug/interior/jungle/deep/structures/engi) -"ajP" = ( -/obj/item/fuelCell, -/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/obj/structure/machinery/light/small{ - dir = 4 - }, -/obj/structure/barricade/handrail/strata{ - dir = 8 - }, -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, -/area/strata/ag/interior/dorms/hive) "ajQ" = ( /obj/structure/largecrate/random/secure, -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles, /area/strata/ag/interior/dorms/hive) "ajR" = ( /obj/structure/barricade/wooden{ dir = 1 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/strata/ag/interior/dorms/canteen) "ajS" = ( /obj/structure/surface/table/reinforced/almayer_B, @@ -3406,9 +2736,7 @@ pixel_y = 10 }, /obj/structure/window, -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles, /area/strata/ag/interior/dorms/maintenance) "ajT" = ( /obj/structure/surface/table/reinforced/almayer_B, @@ -3419,24 +2747,18 @@ dir = 1; pixel_y = 20 }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/strata/ag/interior/dorms/maintenance) "ajU" = ( /obj/structure/machinery/chem_dispenser/soda{ pixel_y = 22 }, /obj/structure/surface/table/reinforced/almayer_B, -/turf/open/floor/strata{ - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1, /area/strata/ag/interior/dorms/maintenance) "ajV" = ( /obj/structure/machinery/washing_machine, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/canteen/personal_storage) "ajW" = ( /obj/item/stack/rods, @@ -3447,16 +2769,12 @@ /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/outpost/canteen/personal_storage) "ajY" = ( /obj/structure/closet/wardrobe/red, /obj/item/clothing/suit/imperium_monk, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/outpost/canteen/personal_storage) "ajZ" = ( /obj/structure/closet/secure_closet/personal, @@ -3465,9 +2783,7 @@ pixel_y = 20 }, /obj/item/clothing/suit/storage/bomber, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/outpost/canteen/personal_storage) "aka" = ( /obj/structure/flora/grass/tallgrass/ice/corner, @@ -3480,10 +2796,7 @@ /obj/structure/surface/table/reinforced/prison, /obj/item/device/mass_spectrometer, /obj/item/device/matter_decompiler, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/canteen/personal_storage) "ake" = ( /turf/closed/wall/strata_outpost/reinforced/hull, @@ -3493,15 +2806,10 @@ dir = 8 }, /obj/effect/decal/cleanable/blood, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ug/interior/jungle/deep/structures/res) "akg" = ( -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ug/interior/jungle/deep/structures/res) "akh" = ( /turf/closed/shuttle/ert{ @@ -3541,10 +2849,7 @@ /obj/effect/decal/strata_decals/catwalk/prison, /obj/structure/disposalpipe/segment, /obj/effect/decal/cleanable/blood/gibs/core, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ug/interior/jungle/deep/structures/res) "ako" = ( /obj/structure/surface/table/reinforced/prison, @@ -3552,23 +2857,17 @@ pixel_x = 6; pixel_y = -4 }, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/dorms/flight_control) "akp" = ( /obj/structure/filingcabinet/chestdrawer, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/dorms/flight_control) "akq" = ( /obj/structure/surface/table/reinforced/prison, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/dorms/flight_control) "akr" = ( /obj/structure/machinery/light/small{ @@ -3597,44 +2896,29 @@ /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles, /area/strata/ag/interior/dorms/hive) "aku" = ( /obj/structure/bed/chair, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/dorms/canteen) "akv" = ( /obj/structure/pipes/standard/manifold/hidden/cyan{ dir = 8 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/dorms/canteen) "akw" = ( /obj/item/stack/sandbags, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/strata/ag/interior/dorms/canteen) "akx" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/reagent_container/food/drinks/coffee, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/strata/ag/interior/dorms/maintenance) "aky" = ( -/turf/open/floor/strata{ - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1, /area/strata/ag/interior/dorms/maintenance) "akz" = ( /obj/structure/flora/grass/tallgrass/ice/corner{ @@ -3646,9 +2930,7 @@ /obj/structure/pipes/standard/manifold/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles, /area/strata/ag/interior/dorms/maintenance) "akB" = ( /obj/structure/barricade/snow{ @@ -3661,16 +2943,12 @@ /area/strata/ag/exterior/paths/cabin_area) "akC" = ( /obj/structure/closet/wardrobe/engineering_yellow, -/turf/open/floor/prison{ - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2, /area/strata/ag/interior/outpost/canteen/personal_storage) "akD" = ( /obj/structure/closet/secure_closet/personal, /obj/item/clothing/suit/storage/apron/overalls, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/outpost/canteen/personal_storage) "akE" = ( /obj/structure/sign/nosmoking_1, @@ -3690,33 +2968,22 @@ /area/strata/ag/exterior/paths/cabin_area) "akK" = ( /obj/structure/machinery/light/small, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ug/interior/jungle/deep/structures/res) "akL" = ( /obj/structure/machinery/photocopier, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ug/interior/jungle/deep/structures/res) "akM" = ( /obj/structure/filingcabinet, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ug/interior/jungle/deep/structures/res) "akN" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ dir = 1 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ug/interior/jungle/deep/structures/res) "akO" = ( /obj/structure/largecrate/random/barrel/green, @@ -3735,10 +3002,7 @@ /obj/structure/barricade/handrail/strata{ dir = 8 }, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ug/interior/jungle/deep/structures/res) "akR" = ( /turf/closed/wall/strata_outpost/reinforced/hull, @@ -3757,79 +3021,54 @@ "akU" = ( /obj/structure/window/framed/strata/reinforced, /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/dorms/flight_control) "akV" = ( /obj/structure/window/framed/strata/reinforced, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/nearlz1) "akW" = ( /obj/structure/pipes/standard/simple/hidden/cyan, /obj/structure/machinery/door/airlock/almayer/maint/colony{ dir = 2 }, -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles, /area/strata/ag/interior/dorms/hive) "akX" = ( /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/dorms/canteen) "akY" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/reagent_container/food/snacks/cubancarp, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan1" - }, +/turf/open/floor/strata/cyan1/east, /area/strata/ag/interior/dorms/canteen) "ala" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/reagent_container/food/snacks/fishfingers, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan1" - }, +/turf/open/floor/strata/cyan1/east, /area/strata/ag/interior/dorms/canteen) "alb" = ( /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/dorms/canteen) "alc" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/reagent_container/food/snacks/meatballspagetti, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan1" - }, +/turf/open/floor/strata/cyan1/east, /area/strata/ag/interior/dorms/canteen) "ald" = ( /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/strata/ag/interior/dorms/canteen) "ale" = ( /obj/structure/surface/table/reinforced/almayer_B, @@ -3842,16 +3081,12 @@ pixel_x = 8; pixel_y = 17 }, -/turf/open/floor/strata{ - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1, /area/strata/ag/interior/dorms/maintenance) "alf" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/reagent_container/food/snacks/sliceable/bread, -/turf/open/floor/strata{ - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1, /area/strata/ag/interior/dorms/maintenance) "ali" = ( /obj/structure/flora/grass/tallgrass/ice/corner{ @@ -3871,73 +3106,48 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan1" - }, +/turf/open/floor/strata/cyan1/east, /area/strata/ag/interior/outpost/canteen/personal_storage) "all" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/canteen/personal_storage) "alm" = ( /obj/structure/closet/secure_closet/personal, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/outpost/canteen/personal_storage) "aln" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/canteen/personal_storage) "alo" = ( /obj/effect/decal/strata_decals/catwalk/prison, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/outpost/canteen/personal_storage) "alp" = ( /obj/structure/machinery/door/airlock/almayer/medical/glass/colony{ name = "\improper Chunkeez Diner door" }, -/turf/open/floor/strata{ - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1, /area/strata/ag/interior/dorms/maintenance) "alq" = ( /obj/item/stool, -/turf/open/floor/strata{ - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1, /area/strata/ag/interior/dorms/maintenance) "alr" = ( /obj/structure/machinery/light/small{ dir = 1; pixel_y = 20 }, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/outpost/canteen/personal_storage) "als" = ( /obj/structure/closet/secure_closet/personal, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/canteen/personal_storage) "alu" = ( /obj/structure/reagent_dispensers/watertank, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/tcomms) "alv" = ( /obj/structure/barricade/snow, @@ -3953,9 +3163,7 @@ "alx" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/structure/machinery/microwave, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/strata/ag/interior/dorms/maintenance) "aly" = ( /turf/closed/wall/strata_ice/jungle, @@ -3971,9 +3179,7 @@ dir = 1; pixel_y = 20 }, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/nearlz1) "alB" = ( /obj/structure/platform_decoration/strata/metal{ @@ -3983,97 +3189,64 @@ dir = 1; pixel_y = 20 }, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/nearlz1) "alC" = ( -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/nearlz1) "alD" = ( /obj/structure/platform/strata/metal{ dir = 1 }, /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/nearlz1) "alE" = ( /obj/structure/lz_sign/sorokyne_sign/interior, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/dorms) "alF" = ( -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/dorms) "alG" = ( /obj/structure/machinery/vending/coffee, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/dorms) "alH" = ( /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/strata/ag/interior/dorms/canteen) "alI" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/reagent_container/food/snacks/mushroompizzaslice, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan1" - }, +/turf/open/floor/strata/cyan1/east, /area/strata/ag/interior/dorms/canteen) "alJ" = ( /obj/structure/bed/chair{ dir = 8 }, /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/dorms/canteen) "alK" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/reagent_container/food/snacks/omelette, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan1" - }, +/turf/open/floor/strata/cyan1/east, /area/strata/ag/interior/dorms/canteen) "alL" = ( /obj/structure/machinery/camera/autoname{ dir = 8 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/strata/ag/interior/dorms/canteen) "alM" = ( /obj/structure/pipes/vents/pump/on, /obj/structure/platform/strata/metal{ dir = 8 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/exterior/research_decks) "alN" = ( /obj/effect/decal/cleanable/blood, @@ -4084,10 +3257,7 @@ /area/strata/ag/exterior/research_decks) "alQ" = ( /obj/structure/pipes/vents/pump/on, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/exterior/research_decks) "alR" = ( /obj/structure/barricade/snow{ @@ -4101,80 +3271,54 @@ /area/strata/ag/exterior/paths/cabin_area) "alT" = ( /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/outpost/canteen/personal_storage) "alU" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/outpost/canteen/personal_storage) "alV" = ( /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/outpost/canteen/personal_storage) "alW" = ( /obj/effect/decal/strata_decals/catwalk/prison, /obj/structure/curtain/open/shower, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/outpost/canteen/personal_storage) "alX" = ( /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/canteen/personal_storage) "alY" = ( /obj/effect/decal/strata_decals/catwalk/prison, /obj/effect/landmark/survivor_spawner, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/outpost/canteen/personal_storage) "alZ" = ( /obj/structure/closet/secure_closet/personal, /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/canteen/personal_storage) "amc" = ( /obj/effect/decal/cleanable/blood{ layer = 3 }, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ug/interior/jungle/deep/structures/res) "amd" = ( /obj/structure/sink{ dir = 4; pixel_x = 11 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ug/interior/jungle/deep/structures/res) "ame" = ( /obj/structure/mirror, @@ -4183,18 +3327,12 @@ "amf" = ( /obj/structure/largecrate/random, /obj/effect/decal/cleanable/cobweb, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ug/interior/jungle/deep/structures/res) "amg" = ( /obj/structure/surface/rack, /obj/item/spacecash/c500, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ug/interior/jungle/deep/structures/res) "ami" = ( /turf/open/auto_turf/snow/brown_base/layer1, @@ -4230,10 +3368,7 @@ /obj/item/clothing/suit/storage/snow_suit, /obj/item/tank/emergency_oxygen/engi, /obj/item/tank/emergency_oxygen/engi, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ug/interior/jungle/deep/structures/res) "amq" = ( /obj/structure/pipes/vents/pump, @@ -4241,25 +3376,17 @@ /area/strata/ag/interior/nearlz1) "amr" = ( /obj/structure/pipes/vents/pump/on, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/dorms) "ams" = ( /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/dorms/canteen) "amt" = ( /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/dorms/canteen) "amu" = ( /obj/structure/prop/almayer/computers/sensor_computer1, @@ -4273,9 +3400,7 @@ /obj/structure/platform/strata/metal{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2, /area/strata/ag/exterior/research_decks) "amw" = ( /obj/effect/decal/cleanable/blood, @@ -4286,9 +3411,7 @@ dir = 4 }, /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor/prison{ - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2, /area/strata/ag/exterior/research_decks) "amA" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, @@ -4314,10 +3437,7 @@ "amL" = ( /obj/item/stool, /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/outpost/canteen/personal_storage) "amM" = ( /obj/structure/bedsheetbin, @@ -4325,21 +3445,14 @@ dir = 1; pixel_y = 25 }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/canteen/personal_storage) "amN" = ( /obj/structure/machinery/light/small, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/canteen/personal_storage) "amO" = ( -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/outpost/canteen/personal_storage) "amP" = ( /obj/structure/machinery/shower{ @@ -4364,17 +3477,11 @@ layer = 3 }, /obj/item/weapon/gun/pistol/holdout, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ug/interior/jungle/deep/structures/res) "amZ" = ( /obj/structure/machinery/disposal, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ug/interior/jungle/deep/structures/res) "ana" = ( /obj/effect/decal/cleanable/blood{ @@ -4382,10 +3489,7 @@ }, /obj/effect/decal/cleanable/blood/gibs/limb, /obj/item/stack/sheet/metal/medium_stack, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/engi/drome) "anb" = ( /obj/structure/platform/strata/metal{ @@ -4403,9 +3507,7 @@ /area/strata/ag/interior/outpost/gen/foyer) "and" = ( /obj/item/stool, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/strata/ag/interior/dorms/maintenance) "ane" = ( /turf/open/floor/strata, @@ -4418,23 +3520,17 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/nearlz1) "anh" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 6 }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/nearlz1) "ani" = ( /obj/structure/pipes/standard/manifold/hidden/cyan, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/nearlz1) "anj" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ @@ -4444,29 +3540,21 @@ /area/strata/ag/interior/nearlz1) "ank" = ( /obj/structure/pipes/standard/manifold/fourway/hidden/cyan, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/dorms) "anl" = ( /obj/structure/window/framed/strata/reinforced, -/turf/open/floor/strata{ - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1, /area/strata/ag/interior/dorms/maintenance) "anm" = ( /obj/structure/pipes/standard/manifold/hidden/cyan, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/dorms) "ann" = ( /obj/structure/pipes/standard/manifold/hidden/cyan{ dir = 1 }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/dorms) "ano" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ @@ -4475,20 +3563,14 @@ /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ dir = 1 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan2" - }, +/turf/open/floor/strata/cyan2/east, /area/strata/ag/interior/dorms/canteen) "anp" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, /obj/structure/machinery/light/small, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/strata/ag/interior/dorms/canteen) "anq" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ @@ -4498,10 +3580,7 @@ pixel_y = -24; start_charge = 0 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/strata/ag/interior/dorms/canteen) "anr" = ( /obj/structure/surface/rack, @@ -4514,9 +3593,7 @@ pixel_x = 6; pixel_y = -4 }, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/research_decks/security) "ans" = ( /obj/structure/closet/secure_closet/security/soro, @@ -4526,20 +3603,14 @@ pixel_y = 20 }, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/research_decks/security) "ant" = ( -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/research_decks/security) "anu" = ( /obj/structure/machinery/space_heater, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/research_decks/security) "anv" = ( /obj/structure/surface/table/reinforced/prison, @@ -4552,9 +3623,7 @@ dir = 1; pixel_y = 20 }, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/research_decks/security) "anw" = ( /obj/effect/decal/cleanable/blood, @@ -4564,10 +3633,7 @@ /area/strata/ag/exterior/research_decks) "anx" = ( /obj/effect/spawner/random/toolbox, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/exterior/research_decks) "anz" = ( /obj/structure/surface/table/reinforced/prison, @@ -4581,24 +3647,18 @@ dir = 1; pixel_y = 20 }, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/research_decks/security) "anA" = ( /obj/structure/machinery/space_heater, /obj/structure/pipes/vents/pump/on, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/research_decks/security) "anB" = ( /obj/item/reagent_container/food/snacks/carpmeat, /obj/effect/landmark/objective_landmark/close, /obj/structure/closet/secure_closet/security/soro, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/research_decks/security) "anC" = ( /obj/item/device/megaphone, @@ -4606,9 +3666,7 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/outpost/security) "anE" = ( /obj/structure/stairs/perspective{ @@ -4623,18 +3681,14 @@ pixel_x = 3; pixel_y = 7 }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/strata/ag/interior/dorms/maintenance) "anG" = ( /turf/closed/wall/strata_outpost/reinforced/hull, /area/strata/ag/interior/outpost/canteen/personal_storage) "anI" = ( /obj/structure/machinery/vending/snack, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/outpost/security) "anJ" = ( /obj/structure/sign/safety/galley, @@ -4643,25 +3697,17 @@ "anK" = ( /obj/structure/machinery/washing_machine, /obj/item/facepaint/skull, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/canteen/personal_storage) "anL" = ( /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/outpost/canteen/personal_storage) "anM" = ( /obj/effect/decal/strata_decals/catwalk/prison, /obj/structure/pipes/standard/simple/hidden/cyan, /obj/structure/curtain/open/shower, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/outpost/canteen/personal_storage) "anN" = ( /obj/structure/platform/strata/metal{ @@ -4672,9 +3718,7 @@ "anP" = ( /obj/structure/bedsheetbin, /obj/item/device/binoculars/range, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/outpost/canteen/personal_storage) "anR" = ( /obj/structure/machinery/cm_vending/sorted/medical/wall_med/limited, @@ -4690,16 +3734,12 @@ /area/strata/ag/interior/outpost/canteen/personal_storage) "anV" = ( /obj/structure/curtain/open/shower, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/outpost/canteen/personal_storage) "anW" = ( /obj/structure/pipes/standard/simple/hidden/cyan, /obj/structure/curtain/open/shower, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/outpost/canteen/personal_storage) "aoa" = ( /obj/structure/flora/bush/ausbushes/grassybush{ @@ -4713,31 +3753,22 @@ /area/strata/ug/interior/jungle/deep/minehead) "aod" = ( /obj/structure/machinery/computer/crew, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ug/interior/jungle/deep/structures/res) "aoi" = ( /obj/effect/spawner/random/tool, /turf/open/auto_turf/strata_grass/layer1, /area/strata/ug/interior/jungle/deep/structures/res) "aoj" = ( -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/nearlz1) "aok" = ( /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/asphalt/cement{ - icon_state = "cement2" - }, +/turf/open/asphalt/cement/cement2, /area/strata/ag/interior/landingzone_1) "aol" = ( /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/nearlz1) "aom" = ( /obj/structure/machinery/light/small{ @@ -4747,38 +3778,25 @@ /area/strata/ag/interior/nearlz1) "aon" = ( /obj/structure/machinery/vending/cigarette/colony, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/dorms) "aoo" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/dorms) "aop" = ( /obj/structure/window/framed/strata/reinforced, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/dorms/canteen) "aoq" = ( /obj/structure/pipes/standard/simple/hidden/cyan, /obj/structure/machinery/door/airlock/multi_tile/almayer/generic, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/dorms/canteen) "aor" = ( -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/dorms/canteen) "aos" = ( /obj/structure/pipes/standard/simple/hidden/cyan, @@ -4786,23 +3804,17 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles, /area/strata/ag/interior/dorms/maintenance) "aot" = ( -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/research_decks/security) "aou" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/computer/cameras{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/research_decks/security) "aov" = ( /obj/effect/decal/cleanable/blood{ @@ -4817,9 +3829,7 @@ dir = 8 }, /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/research_decks/security) "aoz" = ( /obj/structure/machinery/power/apc{ @@ -4830,9 +3840,7 @@ /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/research_decks/security) "aoA" = ( /obj/item/lightstick/planted, @@ -4845,9 +3853,7 @@ "aoC" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/barricade/handrail/strata, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/outpost/security) "aoD" = ( /obj/structure/surface/table/reinforced/prison, @@ -4856,63 +3862,43 @@ pixel_y = 6 }, /obj/structure/barricade/handrail/strata, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/outpost/security) "aoE" = ( /obj/structure/machinery/door/airlock/almayer/security/colony{ dir = 8 }, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/security) "aoF" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/microwave, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/outpost/security) "aoH" = ( /obj/structure/machinery/vending/coffee, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/outpost/security) "aoI" = ( /obj/structure/window/framed/strata/reinforced, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/outpost/canteen/lower_cafeteria) "aoJ" = ( /obj/structure/machinery/washing_machine, /obj/structure/machinery/camera/autoname{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/canteen/personal_storage) "aoK" = ( /obj/structure/pipes/standard/manifold/hidden/cyan{ dir = 8 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/outpost/canteen/personal_storage) "aoL" = ( /obj/structure/pipes/standard/manifold/hidden/cyan, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/outpost/canteen/personal_storage) "aoM" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ @@ -4922,19 +3908,13 @@ dir = 1; pixel_y = 20 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/outpost/canteen/personal_storage) "aoO" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 9 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/outpost/canteen/personal_storage) "aoP" = ( /obj/structure/stairs/perspective{ @@ -4959,10 +3939,7 @@ icon_state = "p_stair_ew_full_cap"; layer = 3.5 }, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ug/interior/jungle/deep/minehead) "aoT" = ( /obj/structure/flora/bush/ausbushes/grassybush{ @@ -4974,38 +3951,25 @@ /obj/structure/surface/rack, /obj/item/storage/box/masks, /obj/item/storage/box/masks, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ug/interior/jungle/deep/structures/res) "aoV" = ( /obj/structure/surface/rack, /obj/item/storage/box/holobadge, /obj/item/storage/box/holobadge, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ug/interior/jungle/deep/structures/res) "aoW" = ( /obj/structure/reagent_dispensers/watertank, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ug/interior/jungle/deep/structures/res) "aoX" = ( /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ug/interior/jungle/deep/structures/res) "aoY" = ( /obj/structure/machinery/light/small, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ug/interior/jungle/deep/structures/res) "apc" = ( /obj/structure/machinery/floodlight/landing, @@ -5021,45 +3985,31 @@ /area/strata/ag/exterior/paths/cabin_area) "apf" = ( /obj/structure/machinery/landinglight/ds1/delayone, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/strata/ag/interior/landingzone_1) "aph" = ( /obj/structure/machinery/landinglight/ds1, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/strata/ag/interior/landingzone_1) "api" = ( /obj/effect/decal/cleanable/blood/oil, /obj/structure/machinery/landinglight/ds1/delaythree, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/strata/ag/interior/landingzone_1) "apj" = ( /obj/structure/machinery/landinglight/ds1/delaytwo, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/strata/ag/interior/landingzone_1) "apk" = ( /obj/structure/machinery/landinglight/ds1/delaythree, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/strata/ag/interior/landingzone_1) "apl" = ( /obj/structure/window/framed/strata/reinforced, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/strata/ag/interior/dorms/maintenance) "apm" = ( -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/strata/ag/interior/landingzone_1) "app" = ( /obj/structure/pipes/standard/simple/hidden/cyan, @@ -5067,9 +4017,7 @@ /obj/structure/machinery/door/airlock/almayer/maint/colony{ dir = 2 }, -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles, /area/strata/ag/interior/dorms) "apr" = ( /obj/structure/flora/pottedplant{ @@ -5078,24 +4026,17 @@ /obj/structure/machinery/camera/autoname{ dir = 4 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/dorms) "aps" = ( /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/research_decks/security) "apt" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22" }, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/research_decks/security) "apu" = ( /obj/structure/surface/table/reinforced/prison, @@ -5103,43 +4044,33 @@ /obj/structure/machinery/computer/objective{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/research_decks/security) "apv" = ( /obj/structure/machinery/landinglight/ds2/delayone{ dir = 4 }, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/strata/ag/exterior/landingzone_2) "apw" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22" }, /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/research_decks/security) "apx" = ( /obj/structure/machinery/camera/autoname{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/research_decks/security) "apy" = ( /obj/structure/surface/rack, /obj/item/storage/box/m94, /obj/item/storage/box/m94, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/engi) "apz" = ( /turf/open/auto_turf/snow/brown_base/layer4, @@ -5155,38 +4086,26 @@ "apC" = ( /obj/structure/closet/secure_closet/personal, /obj/item/clothing/suit/radiation, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/canteen/lower_cafeteria) "apD" = ( /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/canteen/lower_cafeteria) "apE" = ( /obj/structure/machinery/washing_machine, /obj/item/clothing/suit/bluetag, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/canteen/personal_storage) "apF" = ( /obj/structure/machinery/light/small, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/outpost/canteen/personal_storage) "apG" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/outpost/canteen/personal_storage) "apI" = ( /obj/structure/curtain/open/shower, @@ -5199,45 +4118,31 @@ icon_state = "p_stair_full" }, /obj/structure/platform/strata/metal, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/admin) "apK" = ( /obj/effect/decal/cleanable/greenglow, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/outpost/canteen/personal_storage) "apL" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/toy/deck, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ug/interior/jungle/deep/structures/res) "apM" = ( /obj/structure/machinery/vending/coffee, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ug/interior/jungle/deep/structures/res) "apN" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/storage/box/pizza, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ug/interior/jungle/deep/structures/res) "apO" = ( /obj/structure/machinery/power/monitor{ name = "Main Power Grid Monitoring" }, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ug/interior/jungle/deep/structures/res) "apP" = ( /obj/structure/flora/bush/ausbushes/var3/fullgrass, @@ -5254,9 +4159,7 @@ pixel_x = 6; pixel_y = 19 }, -/turf/open/floor/strata{ - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1, /area/strata/ag/interior/dorms/maintenance) "apT" = ( /obj/structure/surface/table/reinforced/prison, @@ -5267,40 +4170,30 @@ /obj/structure/surface/table/reinforced/almayer_B, /obj/item/tool/kitchen/knife, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/strata{ - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1, /area/strata/ag/interior/dorms/maintenance) "apV" = ( /obj/structure/window/framed/strata/reinforced, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/dorms) "apW" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/computer/cameras{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/dorms) "apX" = ( /obj/structure/machinery/door/airlock/almayer/security/colony{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles, /area/strata/ag/interior/dorms) "apY" = ( /obj/structure/pipes/standard/manifold/hidden/cyan{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles, /area/strata/ag/interior/dorms) "apZ" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ @@ -5309,9 +4202,7 @@ /obj/effect/decal/cleanable/blood{ icon_state = "xgib2" }, -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles, /area/strata/ag/interior/dorms) "aqa" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ @@ -5319,9 +4210,7 @@ }, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /obj/effect/decal/cleanable/blood, -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles, /area/strata/ag/interior/dorms) "aqb" = ( /obj/effect/decal/cleanable/blood{ @@ -5330,9 +4219,7 @@ /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles, /area/strata/ag/interior/dorms) "aqc" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, @@ -5340,35 +4227,25 @@ /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles, /area/strata/ag/interior/dorms) "aqd" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/strata/ag/interior/dorms/maintenance) "aqe" = ( /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/dorms) "aqf" = ( /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/dorms) "aqg" = ( /obj/structure/sign/nosmoking_2, @@ -5376,18 +4253,14 @@ /area/strata/ag/interior/dorms) "aqh" = ( /obj/structure/machinery/power/port_gen/pacman/super, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/dorms) "aqi" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, /obj/item/stool, -/turf/open/floor/strata{ - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1, /area/strata/ag/interior/dorms/maintenance) "aqj" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ @@ -5412,17 +4285,11 @@ /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ dir = 2 }, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/research_decks/security) "aqo" = ( /obj/structure/window/framed/strata/reinforced, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/research_decks/security) "aqp" = ( /obj/structure/sign/nosmoking_1, @@ -5440,28 +4307,20 @@ "aqs" = ( /obj/structure/window/framed/strata/reinforced, /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/research_decks/security) "aqt" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ dir = 2 }, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/research_decks/security) "aqv" = ( /obj/structure/surface/rack, /obj/item/storage/box/cups, /obj/item/storage/box/cups, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/engi) "aqy" = ( /obj/structure/bed/chair{ @@ -5470,17 +4329,13 @@ /obj/structure/machinery/camera/autoname{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/outpost/security) "aqz" = ( /obj/structure/surface/rack, /obj/item/stack/folding_barricade, /obj/item/weapon/gun/rifle/type71/carbine, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/outpost/security) "aqA" = ( /obj/structure/surface/table/reinforced/almayer_B, @@ -5488,88 +4343,62 @@ /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1, /area/strata/ag/interior/dorms/maintenance) "aqB" = ( /obj/item/storage/box/nade_box/tear_gas, /obj/structure/closet/secure_closet/security/soro, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/outpost/security) "aqC" = ( /obj/item/stool, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/outpost/security) "aqD" = ( /obj/structure/toilet{ dir = 8 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/outpost/security) "aqE" = ( /obj/structure/closet/secure_closet/personal, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/canteen/lower_cafeteria) "aqG" = ( /obj/structure/machinery/computer/communications{ dir = 4 }, /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/canteen/personal_storage) "aqH" = ( /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/canteen/personal_storage) "aqI" = ( /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/canteen/personal_storage) "aqJ" = ( /obj/structure/closet/secure_closet/personal, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/canteen/personal_storage) "aqK" = ( /obj/item/stool, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/canteen/personal_storage) "aqL" = ( /obj/structure/closet/secure_closet/personal, /obj/structure/machinery/light/small, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/canteen/personal_storage) "aqM" = ( /obj/item/stool, /obj/structure/machinery/light/small, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/canteen/personal_storage) "aqN" = ( /obj/item/lightstick/planted, @@ -5578,15 +4407,11 @@ /area/strata/ag/interior/restricted/devroom) "aqP" = ( /obj/item/device/aicard, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/canteen/personal_storage) "aqQ" = ( /obj/item/stack/sandbags/large_stack, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/canteen/personal_storage) "aqR" = ( /obj/structure/stairs/perspective{ @@ -5604,103 +4429,71 @@ /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1, /area/strata/ag/interior/dorms/maintenance) "aqU" = ( /obj/structure/reagent_dispensers/water_cooler, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ug/interior/jungle/deep/structures/res) "aqV" = ( /obj/structure/machinery/vending/cigarette/colony, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ug/interior/jungle/deep/structures/res) "aqW" = ( /obj/item/clipboard, /obj/item/clipboard, /obj/structure/surface/rack, /obj/item/storage/box/cups, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ug/interior/jungle/deep/structures/res) "aqX" = ( /obj/structure/machinery/light/small, /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ug/interior/jungle/deep/structures/res) "aqY" = ( /obj/structure/bed/chair{ dir = 1 }, /obj/structure/machinery/light/small, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ug/interior/jungle/deep/structures/res) "aqZ" = ( /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ug/interior/jungle/deep/structures/res) "ara" = ( /obj/structure/closet/secure_closet/personal, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ug/interior/jungle/deep/structures/res) "arb" = ( /obj/item/storage/belt/security, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ug/interior/jungle/deep/structures/res) "arc" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/computer/secure_data{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/dorms) "ard" = ( /obj/structure/bed/chair/office/light, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/dorms) "are" = ( /obj/effect/decal/cleanable/blood, /turf/open/auto_turf/snow/brown_base/layer3, /area/strata/ag/exterior/paths/cabin_area) -"arg" = ( -/obj/structure/machinery/power/geothermal, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/strata/ag/interior/dorms) "arh" = ( -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/strata/ag/interior/dorms) "ari" = ( /obj/structure/machinery/power/port_gen/pacman/super, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/strata/ag/interior/dorms) "arj" = ( /obj/structure/platform/strata/metal{ @@ -5726,9 +4519,7 @@ /turf/open/asphalt/cement, /area/strata/ag/exterior/research_decks) "aro" = ( -/turf/open/floor/prison{ - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2, /area/strata/ag/exterior/paths/north_outpost) "arp" = ( /obj/structure/largecrate/random, @@ -5754,9 +4545,7 @@ /obj/item/storage/box/donkpockets, /obj/item/storage/box/donkpockets, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/engi) "art" = ( /obj/structure/surface/rack, @@ -5765,9 +4554,7 @@ /obj/item/storage/box/holobadge, /obj/item/storage/box/evidence, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/engi) "aru" = ( /obj/structure/surface/rack, @@ -5775,9 +4562,7 @@ /obj/item/storage/box/lightstick/red, /obj/item/storage/box/lightstick/red, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/engi) "arv" = ( /obj/structure/filingcabinet, @@ -5785,23 +4570,17 @@ dir = 8 }, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/outpost/security) "arw" = ( /obj/structure/bed/chair/office/light, /obj/effect/landmark/corpsespawner/russian, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/security) "arx" = ( /obj/structure/pipes/vents/pump, /obj/effect/landmark/objective_landmark/far, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/security) "ary" = ( /obj/structure/bed/chair{ @@ -5810,15 +4589,11 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/outpost/security) "arz" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/outpost/security) "arA" = ( /obj/structure/bed/chair{ @@ -5827,9 +4602,7 @@ /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/outpost/security) "arB" = ( /obj/structure/machinery/camera/autoname{ @@ -5844,9 +4617,7 @@ }, /obj/item/stack/folding_barricade, /obj/item/weapon/gun/rifle/type71/carbine, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/outpost/security) "arE" = ( /obj/structure/surface/rack, @@ -5856,36 +4627,25 @@ /obj/structure/machinery/camera/autoname{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/outpost/security) "arF" = ( /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/outpost/security) "arG" = ( /obj/structure/sink{ dir = 4; pixel_x = 11 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/outpost/security) "arH" = ( /obj/structure/pipes/standard/simple/hidden/cyan, /obj/structure/machinery/door/airlock/multi_tile/almayer/comdoor/colony{ name = "\improper Airlock" }, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/outpost/canteen/personal_storage) "arI" = ( /obj/structure/sign/prop3, @@ -5893,9 +4653,7 @@ /area/strata/ag/interior/outpost/canteen) "arJ" = ( /obj/effect/decal/cleanable/blood/gibs/xeno/body, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/outpost/canteen) "arK" = ( /obj/structure/platform/strata/metal, @@ -5919,17 +4677,11 @@ /area/strata/ug/interior/jungle/deep/minehead) "arO" = ( /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ug/interior/jungle/deep/structures/res) "arP" = ( /obj/structure/largecrate/random, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ug/interior/jungle/deep/structures/res) "arQ" = ( /obj/structure/closet/fireaxecabinet, @@ -5939,9 +4691,7 @@ /obj/structure/machinery/landinglight/ds1{ dir = 4 }, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/strata/ag/interior/landingzone_1) "arS" = ( /obj/structure/machinery/camera/autoname/lz_camera, @@ -5951,18 +4701,14 @@ /obj/structure/machinery/landinglight/ds1{ dir = 8 }, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/strata/ag/interior/landingzone_1) "arU" = ( /obj/item/storage/box/ids, /obj/structure/surface/table/reinforced/prison, /obj/item/storage/box/ids, /obj/structure/window/reinforced/tinted, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/dorms) "arV" = ( /obj/structure/surface/table/reinforced/prison, @@ -5970,15 +4716,11 @@ dir = 2 }, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/dorms) "arW" = ( /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/dorms) "arX" = ( /obj/structure/machinery/light/small{ @@ -5986,14 +4728,10 @@ pixel_y = 20 }, /obj/structure/bed/sofa/vert/grey/top, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/dorms) "arY" = ( -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/dorms) "arZ" = ( /obj/structure/platform/strata{ @@ -6008,9 +4746,7 @@ /area/strata/ag/interior/dorms) "asb" = ( /obj/structure/platform/strata/metal, -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles, /area/strata/ag/interior/dorms) "asc" = ( /obj/structure/pipes/vents/pump{ @@ -6019,24 +4755,17 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/dorms) "asd" = ( -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/strata/ag/exterior/tcomms/tcomms_deck) "ase" = ( /obj/structure/machinery/power/smes/buildable{ capacity = 1e+006; dir = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/strata/ag/interior/dorms) "asf" = ( /obj/structure/machinery/power/terminal{ @@ -6059,9 +4788,7 @@ dir = 4 }, /obj/structure/machinery/door/airlock/almayer/maint/colony, -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles, /area/strata/ag/interior/dorms/maintenance) "asj" = ( /obj/structure/stairs/perspective{ @@ -6082,14 +4809,10 @@ /turf/open/asphalt/cement, /area/strata/ag/exterior/research_decks) "asm" = ( -/turf/open/asphalt/cement{ - icon_state = "cement14" - }, +/turf/open/asphalt/cement/cement14, /area/strata/ag/exterior/research_decks) "asn" = ( -/turf/open/asphalt/cement{ - icon_state = "cement15" - }, +/turf/open/asphalt/cement/cement15, /area/strata/ag/exterior/research_decks) "aso" = ( /obj/structure/flora/grass/tallgrass/ice, @@ -6110,18 +4833,7 @@ /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22" }, -/turf/open/floor/prison{ - icon_state = "darkyellowfull2" - }, -/area/strata/ag/interior/outpost/engi) -"asr" = ( -/obj/item/fuelCell, -/obj/structure/barricade/handrail/strata{ - dir = 8 - }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/prison/darkyellowfull2, /area/strata/ag/interior/outpost/engi) "ass" = ( /obj/structure/surface/rack, @@ -6129,9 +4841,7 @@ /obj/item/storage/box/donkpockets, /obj/item/storage/box/donkpockets, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/engi) "ast" = ( /obj/item/storage/box/donkpockets, @@ -6162,9 +4872,7 @@ dir = 4 }, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/engi) "asx" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ @@ -6178,9 +4886,7 @@ /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/outpost/security) "asz" = ( /obj/structure/surface/table/reinforced/prison, @@ -6188,9 +4894,7 @@ /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/outpost/security) "asA" = ( /obj/structure/surface/table/reinforced/prison, @@ -6200,9 +4904,7 @@ /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/outpost/security) "asB" = ( /obj/structure/surface/table/reinforced/prison, @@ -6214,9 +4916,7 @@ /obj/item/paper_bin, /obj/structure/pipes/standard/manifold/hidden/cyan, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/outpost/security) "asD" = ( /obj/effect/decal/cleanable/blood/oil, @@ -6226,9 +4926,7 @@ /obj/structure/pipes/standard/manifold/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/outpost/security) "asF" = ( /obj/structure/machinery/light/small{ @@ -6241,55 +4939,41 @@ /obj/item/stack/folding_barricade, /obj/item/ammo_magazine/rifle/type71, /obj/item/ammo_magazine/rifle/type71, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/outpost/security) "asJ" = ( /obj/structure/surface/rack, /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/canteen/lower_cafeteria) "asK" = ( /obj/structure/barricade/deployable{ dir = 1 }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/canteen/lower_cafeteria) "asL" = ( -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/canteen/lower_cafeteria) "asM" = ( /obj/structure/machinery/power/apc{ dir = 1; pixel_y = 25 }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/canteen/lower_cafeteria) "asN" = ( /obj/structure/largecrate/random, /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/canteen/lower_cafeteria) "asO" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/canteen/lower_cafeteria) "asP" = ( /obj/structure/surface/table/reinforced/prison, @@ -6298,42 +4982,27 @@ pixel_y = 6 }, /obj/item/device/flashlight/lamp, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/canteen/lower_cafeteria) "asQ" = ( /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/canteen/lower_cafeteria) "asR" = ( /obj/structure/reagent_dispensers/water_cooler, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/canteen/lower_cafeteria) "asS" = ( /obj/structure/machinery/vending/cigarette/colony, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/strata/ag/interior/outpost/canteen/lower_cafeteria) "asT" = ( /obj/structure/machinery/vending/snack, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/strata/ag/interior/outpost/canteen/lower_cafeteria) "asU" = ( /obj/structure/machinery/vending/coffee, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/strata/ag/interior/outpost/canteen/lower_cafeteria) "asV" = ( /obj/structure/surface/table/woodentable, @@ -6354,9 +5023,7 @@ dir = 4; pixel_x = 9 }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/strata/ag/interior/dorms/maintenance) "asY" = ( /obj/structure/machinery/light/small{ @@ -6364,18 +5031,14 @@ pixel_y = 20 }, /obj/effect/spawner/random/powercell, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/outpost/canteen) "asZ" = ( /obj/item/trash/plate{ pixel_x = 1; pixel_y = 3 }, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/outpost/canteen) "ata" = ( /obj/structure/flora/pottedplant{ @@ -6387,18 +5050,14 @@ /obj/structure/machinery/camera/autoname{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/outpost/canteen) "atc" = ( /obj/structure/machinery/light/small{ dir = 1; pixel_y = 20 }, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/outpost/canteen) "atd" = ( /obj/structure/barricade/handrail/strata{ @@ -6406,9 +5065,7 @@ }, /obj/item/device/megaphone, /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/strata/ug/interior/jungle/deep/minehead) "ate" = ( /obj/structure/barricade/handrail/strata{ @@ -6417,9 +5074,7 @@ /obj/structure/barricade/handrail/strata{ dir = 4 }, -/turf/open/asphalt/cement{ - icon_state = "cement9" - }, +/turf/open/asphalt/cement/cement9, /area/strata/ug/interior/jungle/deep/minehead) "atf" = ( /obj/structure/platform/strata/metal{ @@ -6433,17 +5088,11 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ug/interior/jungle/deep/structures/res) "ath" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ug/interior/jungle/deep/structures/res) "ati" = ( /obj/structure/machinery/light/small{ @@ -6451,45 +5100,32 @@ pixel_y = 20 }, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ug/interior/jungle/deep/structures/res) "atj" = ( /obj/structure/reagent_dispensers/watertank, -/turf/open/asphalt/cement{ - icon_state = "cement2" - }, +/turf/open/asphalt/cement/cement2, /area/strata/ug/interior/jungle/deep/structures/res) "atk" = ( /obj/structure/fence, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/strata/ug/interior/jungle/deep/structures/res) "atl" = ( /obj/structure/reagent_dispensers/fueltank, -/turf/open/asphalt/cement{ - icon_state = "cement9" - }, +/turf/open/asphalt/cement/cement9, /area/strata/ug/interior/jungle/deep/structures/res) "atm" = ( /obj/structure/machinery/light/small{ dir = 1; pixel_y = 20 }, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ug/interior/jungle/deep/structures/res) "atn" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ dir = 8 }, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ug/interior/jungle/deep/structures/res) "ato" = ( /obj/structure/flora/grass/tallgrass/ice, @@ -6505,33 +5141,18 @@ /obj/structure/machinery/landinglight/ds1/delayone{ dir = 4 }, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/strata/ag/interior/landingzone_1) "atq" = ( /obj/effect/decal/cleanable/blood/oil, /obj/structure/machinery/landinglight/ds1/delaythree{ dir = 8 }, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/strata/ag/interior/landingzone_1) "atr" = ( /obj/structure/bed/sofa/vert/grey/bot, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, -/area/strata/ag/interior/dorms) -"ats" = ( -/obj/item/fuelCell, -/obj/structure/barricade/handrail/strata{ - dir = 1 - }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/dorms) "att" = ( /obj/structure/machinery/camera/autoname{ @@ -6564,20 +5185,14 @@ /obj/structure/platform_decoration/strata/metal{ dir = 8 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/exterior/research_decks) "atA" = ( /obj/structure/pipes/standard/simple/hidden/cyan, /obj/structure/platform_decoration/strata/metal{ dir = 4 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/exterior/research_decks) "atB" = ( /obj/structure/flora/grass/tallgrass/ice/corner{ @@ -6609,19 +5224,14 @@ }, /obj/structure/filingcabinet, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/engi) "atG" = ( /obj/structure/pipes/standard/simple/hidden/cyan, /obj/structure/machinery/door/airlock/almayer/generic{ dir = 2 }, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/outpost/engi) "atI" = ( /obj/structure/machinery/camera/autoname{ @@ -6633,16 +5243,12 @@ /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/outpost/security) "atL" = ( /obj/structure/pipes/standard/simple/hidden/cyan, /obj/effect/landmark/survivor_spawner, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/outpost/security) "atO" = ( /obj/structure/surface/table/reinforced/prison, @@ -6654,9 +5260,7 @@ "atP" = ( /obj/effect/decal/cleanable/blood, /obj/structure/coatrack, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/canteen/lower_cafeteria) "atQ" = ( /obj/structure/barricade/deployable{ @@ -6683,23 +5287,17 @@ /area/strata/ag/interior/outpost/canteen) "atU" = ( /obj/effect/decal/cleanable/blood/gibs/body, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/outpost/canteen) "atV" = ( /obj/effect/decal/cleanable/blood/gibs/down, /obj/item/device/encryptionkey/dutch, /obj/item/dogtag, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/outpost/canteen) "atW" = ( /obj/structure/bed/chair, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/outpost/canteen) "atY" = ( /obj/structure/blocker/forcefield/multitile_vehicles, @@ -6710,9 +5308,7 @@ dir = 4 }, /obj/effect/spawner/random/tool, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/strata/ug/interior/jungle/deep/minehead) "aua" = ( /obj/structure/flora/grass/tallgrass/jungle/corner{ @@ -6722,49 +5318,33 @@ /area/strata/ug/interior/jungle/deep/north_carp) "aub" = ( /obj/structure/surface/rack, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ug/interior/jungle/deep/structures/res) "auc" = ( /obj/structure/largecrate/random/barrel/yellow, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ug/interior/jungle/deep/structures/res) "aud" = ( /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ug/interior/jungle/deep/structures/res) "aue" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ug/interior/jungle/deep/structures/res) "auf" = ( /obj/structure/reagent_dispensers/watertank, -/turf/open/asphalt/cement{ - icon_state = "cement14" - }, +/turf/open/asphalt/cement/cement14, /area/strata/ug/interior/jungle/deep/structures/res) "aug" = ( /obj/structure/fence, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/strata/ug/interior/jungle/deep/structures/res) "auh" = ( /obj/structure/reagent_dispensers/fueltank, -/turf/open/asphalt/cement{ - icon_state = "cement15" - }, +/turf/open/asphalt/cement/cement15, /area/strata/ug/interior/jungle/deep/structures/res) "aui" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ @@ -6776,41 +5356,31 @@ /obj/structure/machinery/landinglight/ds1/delaytwo{ dir = 4 }, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/strata/ag/interior/landingzone_1) "auk" = ( /obj/structure/machinery/landinglight/ds1/delaytwo{ dir = 8 }, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/strata/ag/interior/landingzone_1) "aul" = ( /obj/structure/pipes/standard/manifold/hidden/cyan{ dir = 1 }, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/dorms) "aum" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/dorms) "aun" = ( /obj/structure/pipes/standard/manifold/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/dorms) "auo" = ( /obj/structure/flora/pottedplant{ @@ -6819,37 +5389,27 @@ /obj/structure/barricade/handrail/strata{ dir = 1 }, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/dorms) "aup" = ( /obj/structure/closet/secure_closet/engineering_electrical, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/dorms) "auq" = ( /obj/structure/closet/secure_closet/engineering_personal, /obj/effect/decal/strata_decals/grime/grime4, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/dorms) "aur" = ( /obj/structure/surface/rack, /obj/item/storage/box/explosive_mines, /obj/item/storage/box/explosive_mines, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ug/interior/jungle/deep/structures/res) "aus" = ( /obj/structure/pipes/standard/simple/hidden/cyan, /obj/structure/machinery/door/airlock/multi_tile/almayer/generic, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/dorms) "auv" = ( /obj/structure/sign/safety/restrictedarea, @@ -6871,16 +5431,11 @@ /obj/structure/machinery/power/monitor{ name = "Main Power Grid Monitoring" }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/engi) "auB" = ( /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/engi) "auC" = ( /turf/closed/wall/strata_outpost/reinforced/hull, @@ -6890,59 +5445,39 @@ dir = 1; pixel_y = 20 }, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/engi) "auE" = ( /obj/structure/pipes/standard/simple/hidden/cyan, /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/engi) "auF" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/security) "auH" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22" }, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/outpost/security) "auI" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/tool/stamp, /obj/item/device/flashlight/lamp/green, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/outpost/security) "auJ" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/paper_bin, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/outpost/security) "auK" = ( /obj/structure/pipes/standard/manifold/hidden/cyan{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/outpost/security) "auL" = ( /obj/structure/pipes/vents/pump{ @@ -6966,9 +5501,7 @@ /area/strata/ag/interior/outpost/security) "auP" = ( /obj/structure/machinery/vending/cigarette/colony, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/canteen/lower_cafeteria) "auQ" = ( /obj/structure/bed/chair, @@ -6978,10 +5511,7 @@ /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/strata/ag/interior/outpost/canteen/lower_cafeteria) "auU" = ( /obj/effect/decal/cleanable/blood/gibs/down, @@ -6989,42 +5519,28 @@ /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/strata/ag/interior/outpost/canteen/lower_cafeteria) "auV" = ( /obj/item/clothing/gloves/white, /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/strata/ag/interior/outpost/canteen/lower_cafeteria) "auW" = ( /obj/structure/pipes/standard/manifold/hidden/cyan, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/strata/ag/interior/outpost/canteen/lower_cafeteria) "auX" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/strata/ag/interior/outpost/canteen/lower_cafeteria) "auY" = ( /obj/effect/decal/cleanable/blood/gibs/limb, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/outpost/canteen) "auZ" = ( /obj/structure/flora/grass/tallgrass/ice/corner{ @@ -7052,31 +5568,23 @@ /area/strata/ag/interior/outpost/canteen) "avc" = ( /obj/structure/machinery/vending/snack, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/outpost/canteen) "avd" = ( /obj/structure/reagent_dispensers/water_cooler, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/outpost/canteen) "ave" = ( /obj/structure/barricade/handrail/strata, /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/strata/ug/interior/jungle/deep/minehead) "avf" = ( /obj/structure/barricade/handrail/strata{ dir = 4 }, /obj/structure/barricade/handrail/strata, -/turf/open/asphalt/cement{ - icon_state = "cement15" - }, +/turf/open/asphalt/cement/cement15, /area/strata/ug/interior/jungle/deep/minehead) "avg" = ( /obj/item/reagent_container/food/drinks/cans/waterbottle, @@ -7101,26 +5609,19 @@ pixel_x = 8; pixel_y = 6 }, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ug/interior/jungle/deep/structures/res) "avk" = ( /obj/structure/stairs/perspective{ color = "#6e6e6e"; icon_state = "p_stair_sn_full_cap" }, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ug/interior/jungle/deep/structures/res) "avl" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/device/flashlight/lamp, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ug/interior/jungle/deep/structures/res) "avm" = ( /obj/structure/flora/grass/tallgrass/ice/corner{ @@ -7132,9 +5633,7 @@ /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/dorms) "avr" = ( /obj/item/weapon/wirerod, @@ -7143,18 +5642,14 @@ /area/strata/ag/interior/dorms) "avs" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/dorms) "avt" = ( /obj/structure/machinery/light/small{ dir = 1 }, /obj/item/stack/cable_coil/random, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/dorms) "avu" = ( /obj/effect/decal/strata_decals/catwalk/prison, @@ -7164,23 +5659,16 @@ /area/strata/ag/interior/dorms) "avv" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/strata/ag/interior/dorms/maintenance) "avw" = ( -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/interior/dorms) "avx" = ( /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/dorms) "avz" = ( /obj/effect/decal/strata_decals/grime/grime2, @@ -7188,15 +5676,11 @@ /obj/structure/machinery/camera/autoname{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/dorms) "avA" = ( /obj/structure/closet/secure_closet/freezer/fridge/full, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/strata/ag/interior/dorms/maintenance) "avB" = ( /obj/structure/machinery/light/small{ @@ -7218,10 +5702,7 @@ dir = 8; name = "\improper Airlock" }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/interior/dorms) "avE" = ( /obj/effect/decal/strata_decals/grime/grime2{ @@ -7254,9 +5735,7 @@ dir = 2; icon_state = "pipe-c" }, -/turf/open/floor/prison{ - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2, /area/strata/ag/exterior/research_decks) "avK" = ( /obj/item/clothing/shoes/snow, @@ -7272,9 +5751,7 @@ dir = 4 }, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/prison{ - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2, /area/strata/ag/exterior/research_decks) "avL" = ( /turf/open/auto_turf/ice/layer1, @@ -7295,9 +5772,7 @@ /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22" }, -/turf/open/floor/prison{ - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2, /area/strata/ag/interior/outpost/engi) "avR" = ( /obj/structure/platform/strata/metal{ @@ -7307,9 +5782,7 @@ /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22" }, -/turf/open/floor/prison{ - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2, /area/strata/ag/interior/outpost/engi) "avS" = ( /obj/structure/barricade/handrail/strata{ @@ -7321,50 +5794,33 @@ pixel_y = 6 }, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/engi) "avT" = ( /obj/structure/bed/chair/office/light, /obj/effect/landmark/survivor_spawner, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/engi) "avU" = ( /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/engi) "avV" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/storage/box/donkpockets, /obj/item/device/flashlight/lamp/green, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/engi) "avW" = ( /obj/structure/machinery/power/monitor{ name = "Main Power Grid Monitoring" }, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/engi) "avX" = ( /obj/structure/surface/table/reinforced/prison, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/engi) "avY" = ( /obj/structure/machinery/light/small{ @@ -7372,22 +5828,16 @@ }, /obj/item/storage/box/explosive_mines, /obj/item/storage/box/explosive_mines, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/security) "avZ" = ( /obj/structure/filingcabinet, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/security) "awa" = ( /obj/structure/machinery/photocopier, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/security) "awb" = ( /obj/item/lightstick/red/planted, @@ -7400,32 +5850,24 @@ /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/security) "awd" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 6 }, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/outpost/security) "awe" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 9 }, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/outpost/security) "awf" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/reagent_container/food/drinks/cans/souto/grape, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/security) "awg" = ( /obj/structure/flora/pottedplant{ @@ -7435,21 +5877,15 @@ dir = 1; pixel_y = 20 }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/security) "awh" = ( /obj/structure/bed/chair/office/light, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/security) "awi" = ( /obj/structure/machinery/vending/snack, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/canteen/lower_cafeteria) "awj" = ( /obj/structure/surface/table/reinforced/prison, @@ -7461,18 +5897,13 @@ dir = 1; pixel_y = 20 }, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/outpost/canteen/lower_cafeteria) "awk" = ( /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/outpost/canteen/lower_cafeteria) "awl" = ( /obj/structure/surface/table/reinforced/prison, @@ -7481,35 +5912,24 @@ dir = 1; pixel_y = 20 }, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/outpost/canteen/lower_cafeteria) "awm" = ( /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/strata/ag/interior/outpost/canteen/lower_cafeteria) "awo" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony{ dir = 2 }, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/canteen) "awp" = ( /obj/structure/window/framed/strata/reinforced, /obj/structure/machinery/door/poddoor/shutters/almayer, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/maint/canteen_e_1) "awq" = ( /turf/open/auto_turf/snow/brown_base/layer4, @@ -7538,18 +5958,14 @@ /obj/structure/bed/chair/office/light{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ug/interior/jungle/deep/structures/res) "aww" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/computer/cameras{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ug/interior/jungle/deep/structures/res) "awx" = ( /obj/structure/flora/bush/ausbushes/grassybush{ @@ -7589,24 +6005,16 @@ /obj/structure/machinery/computer/cameras{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ug/interior/jungle/deep/structures/res) "awE" = ( /obj/structure/surface/rack, /obj/item/toy/deck, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ug/interior/jungle/deep/structures/res) "awF" = ( /obj/structure/largecrate/random/barrel/green, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ug/interior/jungle/deep/structures/res) "awG" = ( /obj/structure/pipes/standard/simple/hidden/cyan, @@ -7641,10 +6049,7 @@ /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ dir = 1 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/interior/dorms) "awM" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ @@ -7654,10 +6059,7 @@ dir = 8; name = "\improper Airlock" }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/interior/dorms) "awN" = ( /obj/structure/pipes/vents/pump{ @@ -7686,9 +6088,7 @@ /obj/structure/platform/strata/metal{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles, /area/strata/ag/exterior/paths/adminext) "awR" = ( /obj/structure/barricade/handrail/strata{ @@ -7705,19 +6105,13 @@ /obj/item/reagent_container/spray/cleaner, /obj/item/toy/deck, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/exterior/research_decks) "awT" = ( /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/exterior/research_decks) "awU" = ( /obj/structure/closet/secure_closet/personal, @@ -7731,9 +6125,7 @@ /obj/structure/platform/strata/metal{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2, /area/strata/ag/exterior/research_decks) "awX" = ( /obj/structure/closet/secure_closet/personal, @@ -7757,10 +6149,7 @@ /area/strata/ag/exterior/paths/cabin_area) "axa" = ( /obj/effect/decal/cleanable/blood/oil/streak, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/exterior/research_decks) "axb" = ( /obj/structure/stairs/perspective{ @@ -7772,9 +6161,7 @@ /area/strata/ag/exterior/paths/adminext) "axc" = ( /obj/structure/machinery/cm_vending/sorted/tech/comp_storage, -/turf/open/floor/prison{ - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2, /area/strata/ag/interior/outpost/engi) "axd" = ( /obj/structure/closet/bombcloset, @@ -7782,16 +6169,12 @@ /obj/item/stack/sheet/mineral/plastic, /obj/item/stack/sheet/mineral/plastic, /obj/item/stack/sheet/mineral/plastic, -/turf/open/floor/prison{ - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2, /area/strata/ag/interior/outpost/engi) "axe" = ( /obj/structure/bed/chair, /obj/item/stack/sheet/metal/medium_stack, -/turf/open/floor/prison{ - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2, /area/strata/ag/interior/outpost/engi) "axf" = ( /obj/structure/tunnel/maint_tunnel{ @@ -7812,17 +6195,12 @@ dir = 1; icon_state = "p_stair_sn_full_cap" }, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/engi) "axj" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/device/flashlight/lamp/green, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/engi) "axk" = ( /obj/structure/flora/grass/tallgrass/ice, @@ -7833,26 +6211,20 @@ /area/strata/ag/interior/outpost/gen/bball) "axn" = ( /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/engi) "axp" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22" }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/engi) "axq" = ( /obj/structure/bed/chair/office/light{ dir = 1 }, /obj/effect/landmark/survivor_spawner, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/engi) "axr" = ( /obj/structure/surface/rack, @@ -7861,24 +6233,17 @@ dir = 4 }, /obj/item/stack/sheet/metal/medium_stack, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/engi) "axt" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony{ dir = 2 }, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/engi) "axu" = ( /obj/structure/closet/secure_closet/security/soro, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/research_decks/security) "axv" = ( /turf/open/auto_turf/snow/brown_base/layer4, @@ -7893,44 +6258,34 @@ /obj/structure/bed/chair/office/light{ dir = 1 }, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/outpost/security) "axC" = ( /obj/item/storage/box/ids, /obj/structure/surface/table/reinforced/prison, /obj/item/storage/box/ids, /obj/structure/window/reinforced/tinted, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/outpost/security) "axD" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/door/window/eastright{ dir = 2 }, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/outpost/security) "axE" = ( /obj/structure/machinery/vending/snack, /obj/structure/machinery/camera/autoname{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/canteen/lower_cafeteria) "axF" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/reagent_container/food/drinks/bottle/vodka, /obj/item/reagent_container/food/condiment/peppermill, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/outpost/canteen/lower_cafeteria) "axG" = ( /obj/structure/surface/table/reinforced/prison, @@ -7940,9 +6295,7 @@ }, /obj/item/reagent_container/food/condiment/peppermill, /obj/structure/bed/chair, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/outpost/canteen/lower_cafeteria) "axH" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ @@ -7954,24 +6307,17 @@ /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 10 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/outpost/canteen/lower_cafeteria) "axJ" = ( /obj/item/device/t_scanner, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/outpost/canteen) "axK" = ( /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/outpost/canteen) "axL" = ( /obj/structure/surface/table/woodentable, @@ -8003,45 +6349,32 @@ "axO" = ( /obj/item/reagent_container/food/drinks/shaker, /obj/effect/decal/cleanable/blood, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/maint/canteen_e_1) "axP" = ( /obj/structure/reagent_dispensers/beerkeg, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/maint/canteen_e_1) "axQ" = ( /obj/structure/window/framed/strata/reinforced, /obj/structure/machinery/door/poddoor/shutters/almayer{ dir = 8 }, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/maint/canteen_e_1) "axR" = ( /obj/structure/window/reinforced/tinted{ dir = 4 }, /obj/structure/closet/secure_closet/personal, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ug/interior/jungle/deep/minehead/ruins) "axS" = ( /obj/structure/window/reinforced/tinted{ dir = 8 }, /obj/structure/closet/secure_closet/personal, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ug/interior/jungle/deep/minehead/ruins) "axT" = ( /obj/structure/bed{ @@ -8051,10 +6384,7 @@ dir = 1; pixel_y = 20 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ug/interior/jungle/deep/minehead/ruins) "axU" = ( /obj/structure/barricade/wooden{ @@ -8071,10 +6401,7 @@ "axW" = ( /obj/structure/surface/rack, /obj/item/storage/box/handcuffs, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ug/interior/jungle/deep/structures/res) "axX" = ( /obj/structure/flora/bush/ausbushes/grassybush, @@ -8099,59 +6426,42 @@ "ayd" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/toy/deck, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ug/interior/jungle/deep/structures/res) "aye" = ( /obj/structure/surface/rack, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ug/interior/jungle/deep/structures/res) "ayf" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ug/interior/jungle/deep/structures/res) "ayg" = ( /obj/effect/decal/cleanable/blood/oil, /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/strata/ag/interior/landingzone_1) "ayh" = ( /obj/structure/machinery/landinglight/ds2/delaythree{ dir = 1 }, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/strata/ag/exterior/landingzone_2) "ayj" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22" }, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/dorms) "ayk" = ( /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/dorms) "ayl" = ( /obj/structure/inflatable/popped, /obj/effect/decal/cleanable/blood, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/tcomms) "aym" = ( /obj/structure/flora/pottedplant{ @@ -8216,10 +6526,7 @@ /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/exterior/research_decks) "ayz" = ( /obj/structure/flora/grass/tallgrass/ice/corner{ @@ -8231,9 +6538,7 @@ /obj/structure/platform/strata/metal{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2, /area/strata/ag/exterior/paths/adminext) "ayC" = ( /obj/effect/decal/strata_decals/catwalk/prison, @@ -8241,24 +6546,18 @@ dir = 8; icon_state = "pipe-c" }, -/turf/open/floor/prison{ - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2, /area/strata/ag/exterior/research_decks) "ayD" = ( /obj/effect/decal/strata_decals/catwalk/prison, /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2, /area/strata/ag/exterior/research_decks) "ayE" = ( /obj/structure/surface/table/reinforced/prison, /obj/effect/spawner/random/toolbox, /obj/effect/spawner/random/toolbox, -/turf/open/floor/prison{ - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2, /area/strata/ag/interior/outpost/engi) "ayF" = ( /obj/structure/pipes/standard/manifold/hidden/cyan{ @@ -8280,10 +6579,7 @@ /obj/structure/machinery/power/terminal{ dir = 1 }, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/engi) "ayK" = ( /obj/effect/decal/cleanable/blood/oil, @@ -8291,25 +6587,25 @@ dir = 1; pixel_y = 20 }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/structure/surface/rack, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/engi) "ayL" = ( /obj/item/stack/rods, /obj/structure/pipes/vents/pump/on, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/engi) "ayM" = ( /obj/structure/machinery/light/small{ dir = 1; pixel_y = 20 }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/engi) "ayN" = ( /obj/structure/surface/rack, @@ -8318,9 +6614,7 @@ dir = 4 }, /obj/item/stack/sheet/metal/medium_stack, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/engi) "ayO" = ( /obj/structure/flora/grass/tallgrass/ice/corner{ @@ -8328,24 +6622,9 @@ }, /turf/open/auto_turf/snow/brown_base/layer1, /area/strata/ag/exterior/paths/north_outpost) -"ayP" = ( -/obj/item/fuelCell, -/obj/structure/barricade/handrail/strata{ - dir = 4 - }, -/obj/structure/platform/strata/metal{ - dir = 8 - }, -/turf/open/floor/strata{ - icon_state = "red2" - }, -/area/strata/ag/interior/outpost/engi) "ayS" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/interior/outpost/engi) "ayW" = ( /obj/structure/pipes/standard/simple/hidden/cyan, @@ -8368,30 +6647,22 @@ pixel_x = -24; start_charge = 0 }, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/outpost/security) "aza" = ( /obj/item/poster, /obj/structure/closet/secure_closet/security/soro, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/outpost/security) "azb" = ( /obj/structure/window/framed/strata/reinforced, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/outpost/security) "azd" = ( /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/security) "aze" = ( /obj/effect/decal/cleanable/blood, @@ -8400,9 +6671,7 @@ "azf" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/reagent_container/food/condiment/saltshaker, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/outpost/canteen/lower_cafeteria) "azg" = ( /obj/structure/surface/table/reinforced/prison, @@ -8411,9 +6680,7 @@ pixel_y = 3 }, /obj/item/reagent_container/food/condiment/saltshaker, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/outpost/canteen/lower_cafeteria) "azh" = ( /obj/structure/flora/grass/tallgrass/ice/corner{ @@ -8427,10 +6694,7 @@ }, /obj/effect/decal/cleanable/blood, /obj/effect/decal/cleanable/blood/gibs/core, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/strata/ag/interior/outpost/canteen/lower_cafeteria) "azj" = ( /obj/structure/machinery/light/small{ @@ -8444,10 +6708,7 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/canteen) "azm" = ( /obj/structure/bed/chair{ @@ -8458,32 +6719,20 @@ "azo" = ( /obj/item/dogtag, /obj/effect/decal/cleanable/blood/gibs/down, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/maint/canteen_e_1) "azp" = ( /obj/structure/machinery/cm_vending/sorted/boozeomat, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/maint/canteen_e_1) "azq" = ( /obj/structure/bed{ icon_state = "abed" }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ug/interior/jungle/deep/minehead/ruins) "azr" = ( -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ug/interior/jungle/deep/minehead/ruins) "azs" = ( /obj/item/reagent_container/food/drinks/cans/waterbottle, @@ -8513,42 +6762,31 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/strata/ag/interior/landingzone_1) "azz" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/storage/briefcase, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/dorms) "azA" = ( /obj/structure/window/reinforced/tinted{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/dorms) "azB" = ( /obj/structure/window/reinforced/tinted{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/dorms) "azC" = ( /obj/structure/window/reinforced/tinted{ dir = 8 }, /obj/structure/filingcabinet/chestdrawer, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan1" - }, +/turf/open/floor/strata/cyan1/east, /area/strata/ag/interior/dorms) "azD" = ( /obj/structure/bed/chair{ @@ -8575,10 +6813,7 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan1" - }, +/turf/open/floor/strata/cyan1/east, /area/strata/ag/interior/dorms) "azH" = ( /obj/structure/machinery/optable, @@ -8587,20 +6822,14 @@ /obj/effect/decal/cleanable/blood{ icon_state = "xgib2" }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan1" - }, +/turf/open/floor/strata/cyan1/east, /area/strata/ag/interior/dorms) "azI" = ( /obj/structure/machinery/bioprinter, /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan1" - }, +/turf/open/floor/strata/cyan1/east, /area/strata/ag/interior/dorms) "azL" = ( /obj/structure/sink{ @@ -8610,18 +6839,14 @@ /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/strata{ - icon_state = "orange_tile" - }, +/turf/open/floor/strata/orange_tile, /area/strata/ag/interior/dorms) "azM" = ( /obj/structure/mirror{ pixel_y = 24 }, /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor/strata{ - icon_state = "orange_tile" - }, +/turf/open/floor/strata/orange_tile, /area/strata/ag/interior/dorms) "azO" = ( /obj/structure/sign/nosmoking_1, @@ -8662,10 +6887,7 @@ /area/strata/ug/interior/jungle/deep/structures/res) "azV" = ( /obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/exterior/research_decks) "azX" = ( /obj/effect/landmark/monkey_spawn, @@ -8692,16 +6914,11 @@ dir = 8 }, /obj/structure/fence, -/turf/open/floor/prison{ - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2, /area/strata/ag/exterior/research_decks) "aAe" = ( /obj/structure/platform_decoration/strata/metal, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/exterior/research_decks) "aAf" = ( /obj/effect/decal/cleanable/blood/oil/streak, @@ -8713,17 +6930,12 @@ /obj/structure/platform_decoration/strata/metal{ dir = 1 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/interior/outpost/engi) "aAh" = ( /obj/structure/filingcabinet, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison{ - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2, /area/strata/ag/interior/outpost/engi) "aAj" = ( /obj/effect/decal/cleanable/blood/gibs/limb, @@ -8734,9 +6946,7 @@ dir = 1 }, /obj/item/stack/sheet/metal/medium_stack, -/turf/open/floor/prison{ - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2, /area/strata/ag/interior/outpost/engi) "aAm" = ( /obj/effect/decal/cleanable/blood, @@ -8746,9 +6956,7 @@ dir = 4 }, /obj/effect/landmark/survivor_spawner, -/turf/open/floor/prison{ - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2, /area/strata/ag/interior/outpost/engi) "aAn" = ( /obj/effect/decal/cleanable/blood, @@ -8761,9 +6969,7 @@ /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/engi) "aAo" = ( /obj/effect/decal/cleanable/blood/gibs/xeno/body, @@ -8776,52 +6982,36 @@ "aAp" = ( /obj/effect/decal/cleanable/blood/gibs/xeno/down, /obj/structure/pipes/standard/manifold/hidden/cyan, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/engi) "aAr" = ( /obj/structure/pipes/standard/manifold/hidden/cyan{ dir = 1 }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/engi) "aAs" = ( /obj/structure/barricade/handrail/strata, /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/engi) "aAt" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/engi) "aAu" = ( /obj/structure/pipes/standard/manifold/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/engi) "aAv" = ( /obj/structure/barricade/handrail/strata, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/engi) "aAw" = ( /obj/structure/surface/rack, @@ -8832,9 +7022,7 @@ }, /obj/structure/barricade/handrail/strata, /obj/item/stack/sheet/metal/medium_stack, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/engi) "aAx" = ( /obj/structure/machinery/light/small{ @@ -8846,9 +7034,7 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/outpost/security) "aAB" = ( /obj/structure/machinery/light/small{ @@ -8868,23 +7054,17 @@ dir = 1; pixel_y = 20 }, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/outpost/security) "aAD" = ( /obj/structure/machinery/space_heater, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/outpost/security) "aAF" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22" }, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/outpost/security) "aAG" = ( /obj/structure/surface/table/reinforced/prison, @@ -8893,24 +7073,17 @@ pixel_x = 8; pixel_y = 6 }, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/outpost/security) "aAJ" = ( /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/canteen/lower_cafeteria) "aAK" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/strata/ag/interior/outpost/canteen/lower_cafeteria) "aAL" = ( /obj/structure/pipes/standard/simple/hidden/cyan, @@ -8918,20 +7091,14 @@ /area/strata/ag/interior/outpost/canteen/lower_cafeteria) "aAM" = ( /obj/structure/machinery/cm_vending/sorted/marine_food, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/canteen) "aAO" = ( /obj/effect/decal/cleanable/blood{ layer = 3 }, /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/strata/ag/interior/outpost/canteen) "aAP" = ( /obj/effect/decal/cleanable/blood{ @@ -8940,10 +7107,7 @@ /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/strata/ag/interior/outpost/canteen) "aAR" = ( /turf/open/auto_turf/snow/brown_base/layer2, @@ -8996,17 +7160,11 @@ /obj/structure/closet/secure_closet/freezer/fridge, /obj/item/reagent_container/food/drinks/milk, /obj/effect/decal/cleanable/blood, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/maint/canteen_e_1) "aAZ" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ug/interior/jungle/deep/minehead/ruins) "aBa" = ( /obj/item/dogtag, @@ -9022,10 +7180,7 @@ dir = 1; name = "Reinforced Airlock" }, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ug/interior/jungle/deep/minehead/ruins) "aBe" = ( /obj/structure/flora/grass/tallgrass/jungle, @@ -9040,9 +7195,7 @@ /area/strata/ug/interior/jungle/deep/structures/res) "aBi" = ( /obj/structure/largecrate/random, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/nearlz1) "aBj" = ( /obj/structure/surface/table/reinforced/prison, @@ -9050,16 +7203,12 @@ dir = 4 }, /obj/item/tool/pen/blue, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/dorms) "aBk" = ( /obj/structure/machinery/light/small, /obj/structure/bed/sofa/vert/grey/bot, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/dorms) "aBl" = ( /obj/effect/decal/cleanable/blood{ @@ -9084,32 +7233,23 @@ dir = 8; name = "\improper Airlock" }, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/dorms) "aBn" = ( /obj/effect/decal/cleanable/blood, /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 10 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan1" - }, +/turf/open/floor/strata/cyan1/east, /area/strata/ag/interior/dorms) "aBo" = ( /obj/effect/decal/strata_decals/catwalk/prison, /obj/effect/decal/cleanable/greenglow, -/turf/open/floor{ - icon_state = "bcircuit" - }, +/turf/open/floor/bcircuit, /area/strata/ag/interior/dorms) "aBp" = ( /obj/structure/morgue, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ag/interior/outpost/med) "aBq" = ( /obj/structure/machinery/weather_siren{ @@ -9123,17 +7263,13 @@ /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/strata{ - icon_state = "orange_tile" - }, +/turf/open/floor/strata/orange_tile, /area/strata/ag/interior/dorms) "aBt" = ( /obj/structure/toilet{ dir = 1 }, -/turf/open/floor/strata{ - icon_state = "orange_tile" - }, +/turf/open/floor/strata/orange_tile, /area/strata/ag/interior/dorms) "aBu" = ( /obj/effect/decal/strata_decals/catwalk/prison, @@ -9167,10 +7303,7 @@ /area/strata/ug/interior/jungle/deep/structures/res) "aBI" = ( /obj/structure/largecrate/random/barrel/green, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/exterior/research_decks) "aBJ" = ( /obj/structure/pipes/vents/pump{ @@ -9193,16 +7326,12 @@ /obj/effect/decal/cleanable/blood{ icon_state = "xtracks" }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/engi) "aBR" = ( /obj/effect/decal/cleanable/blood/oil, /obj/effect/decal/cleanable/blood/gibs/core, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/engi) "aBS" = ( /obj/effect/decal/cleanable/blood, @@ -9216,9 +7345,7 @@ /obj/structure/barricade/handrail/strata{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/engi) "aBU" = ( /obj/structure/platform/strata/metal{ @@ -9230,18 +7357,14 @@ /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22" }, -/turf/open/floor/prison{ - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2, /area/strata/ag/interior/outpost/engi) "aBW" = ( /obj/structure/stairs/perspective{ color = "#6e6e6e"; icon_state = "p_stair_sn_full_cap" }, -/turf/open/floor/prison{ - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2, /area/strata/ag/interior/outpost/engi) "aBX" = ( /obj/structure/stairs/perspective{ @@ -9249,9 +7372,7 @@ icon_state = "p_stair_full" }, /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor/prison{ - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2, /area/strata/ag/interior/outpost/engi) "aBY" = ( /obj/structure/platform/strata/metal{ @@ -9260,9 +7381,7 @@ /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22" }, -/turf/open/floor/prison{ - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2, /area/strata/ag/interior/outpost/engi) "aBZ" = ( /obj/structure/reagent_dispensers/watertank, @@ -9270,17 +7389,11 @@ dir = 1; pixel_y = 20 }, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/engi) "aCa" = ( /obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/engi) "aCb" = ( /obj/structure/pipes/vents/pump{ @@ -9293,40 +7406,30 @@ /obj/structure/machinery/computer/cameras{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/outpost/security) "aCd" = ( /obj/structure/bed/chair/office/light{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/outpost/security) "aCe" = ( /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/outpost/security) "aCf" = ( /obj/structure/bed/chair/office/light{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/outpost/security) "aCg" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/computer/cameras{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/outpost/security) "aCh" = ( /obj/structure/flora/pottedplant{ @@ -9338,9 +7441,7 @@ /obj/structure/barricade/handrail/strata{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/outpost/security) "aCi" = ( /obj/structure/bed/chair{ @@ -9355,10 +7456,7 @@ dir = 1; pixel_y = 20 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan1" - }, +/turf/open/floor/strata/cyan1/east, /area/strata/ag/interior/outpost/canteen/lower_cafeteria) "aCl" = ( /turf/closed/wall/strata_outpost/reinforced/hull, @@ -9371,29 +7469,20 @@ /area/strata/ag/interior/outpost/canteen) "aCo" = ( /obj/structure/machinery/vending/sovietsoda, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/maint/canteen_e_1) "aCq" = ( /obj/structure/machinery/space_heater, /obj/structure/platform/strata/metal{ dir = 1 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ug/interior/jungle/deep/minehead/ruins) "aCr" = ( /obj/structure/stairs/perspective{ color = "#6e6e6e" }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ug/interior/jungle/deep/minehead/ruins) "aCs" = ( /obj/structure/machinery/light/small{ @@ -9403,10 +7492,7 @@ /obj/structure/platform_decoration/strata/metal{ dir = 4 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ug/interior/jungle/deep/minehead/ruins) "aCt" = ( /obj/item/stack/rods, @@ -9427,9 +7513,7 @@ /area/strata/ug/interior/jungle/deep/north_carp) "aCw" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ug/interior/jungle/deep/structures/engi) "aCy" = ( /obj/structure/flora/grass/tallgrass/jungle/corner{ @@ -9451,9 +7535,7 @@ /area/strata/ag/exterior/paths/north_outpost) "aCC" = ( /obj/structure/machinery/space_heater, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/nearlz1) "aCD" = ( /obj/structure/closet, @@ -9464,10 +7546,7 @@ /obj/structure/machinery/door/airlock/almayer/maint/colony{ dir = 2 }, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/dorms) "aCG" = ( /obj/effect/decal/cleanable/blood, @@ -9480,23 +7559,15 @@ /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan1" - }, +/turf/open/floor/strata/cyan1/east, /area/strata/ag/interior/dorms) "aCI" = ( /obj/effect/decal/strata_decals/catwalk/prison, -/turf/open/floor{ - icon_state = "bcircuit" - }, +/turf/open/floor/bcircuit, /area/strata/ag/interior/dorms) "aCK" = ( /obj/structure/xenoautopsy/tank/larva, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan1" - }, +/turf/open/floor/strata/cyan1/east, /area/strata/ag/interior/dorms) "aCL" = ( /obj/effect/decal/cleanable/greenglow, @@ -9543,29 +7614,19 @@ /area/strata/ag/exterior/paths/north_outpost) "aCT" = ( /obj/structure/prop/dam/truck/cargo, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/exterior/research_decks) "aCU" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/interior/outpost/engi) "aCV" = ( /obj/item/stack/rods, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/engi) "aCW" = ( /obj/item/stack/sheet/metal/medium_stack, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/engi) "aCY" = ( /obj/structure/platform/strata/metal{ @@ -9574,9 +7635,7 @@ /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2, /area/strata/ag/interior/outpost/engi) "aDa" = ( /obj/structure/barricade/handrail/strata, @@ -9596,26 +7655,19 @@ /obj/item/stack/sheet/metal/medium_stack, /obj/item/stack/sheet/metal/medium_stack, /obj/structure/surface/rack, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/engi) "aDf" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22" }, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/outpost/security) "aDg" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/outpost/security) "aDh" = ( /obj/item/stack/snow, @@ -9624,19 +7676,14 @@ /area/strata/ug/interior/jungle/deep/structures/res) "aDi" = ( /obj/structure/window/framed/strata/reinforced, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/outpost/security) "aDk" = ( /obj/structure/bed/chair{ dir = 4 }, /obj/effect/decal/cleanable/blood, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/strata/ag/interior/outpost/canteen/lower_cafeteria) "aDl" = ( /obj/structure/surface/table/reinforced/prison, @@ -9645,44 +7692,31 @@ pixel_y = 3 }, /obj/item/reagent_container/food/condiment/peppermill, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/outpost/canteen/lower_cafeteria) "aDn" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/reagent_container/food/condiment/saltshaker, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan1" - }, +/turf/open/floor/strata/cyan1/east, /area/strata/ag/interior/outpost/canteen/lower_cafeteria) "aDo" = ( /obj/structure/bed/chair{ dir = 8 }, /obj/effect/decal/cleanable/blood, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/strata/ag/interior/outpost/canteen/lower_cafeteria) "aDp" = ( /obj/effect/decal/cleanable/blood{ layer = 3 }, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/outpost/canteen) "aDq" = ( /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/strata/ag/interior/outpost/canteen) "aDr" = ( /obj/structure/machinery/chem_dispenser/soda/beer, @@ -9706,10 +7740,7 @@ dir = 8 }, /obj/structure/coatrack, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ug/interior/jungle/deep/minehead/ruins) "aDx" = ( /obj/effect/decal/cleanable/blood{ @@ -9728,17 +7759,13 @@ /area/strata/ug/interior/jungle/deep/north_carp) "aDC" = ( /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/dorms) "aDD" = ( /obj/structure/closet, /obj/item/storage/pill_bottle/kelotane/skillless, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles, /area/strata/ag/interior/dorms) "aDE" = ( /turf/closed/wall/strata_outpost/reinforced/hull, @@ -9749,32 +7776,22 @@ /area/strata/ag/interior/dorms) "aDG" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/dorms) "aDH" = ( /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/dorms) "aDI" = ( /obj/structure/machinery/medical_pod/bodyscanner, /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan1" - }, +/turf/open/floor/strata/cyan1/east, /area/strata/ag/interior/dorms) "aDJ" = ( /obj/structure/machinery/body_scanconsole, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan1" - }, +/turf/open/floor/strata/cyan1/east, /area/strata/ag/interior/dorms) "aDK" = ( /obj/structure/stairs/perspective{ @@ -9784,9 +7801,7 @@ /obj/structure/platform/strata/metal{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles, /area/strata/ag/exterior/paths/dorms_quad) "aDL" = ( /obj/structure/stairs/perspective{ @@ -9797,9 +7812,7 @@ /obj/structure/platform/strata/metal{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles, /area/strata/ag/exterior/paths/dorms_quad) "aDM" = ( /obj/structure/barricade/handrail/strata{ @@ -9835,10 +7848,7 @@ "aDU" = ( /obj/effect/decal/cleanable/blood/oil, /obj/structure/machinery/light/small, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/exterior/research_decks) "aDV" = ( /obj/item/clothing/shoes/snow, @@ -9848,35 +7858,23 @@ /obj/item/clothing/suit/storage/snow_suit, /obj/item/tank/emergency_oxygen/engi, /obj/effect/decal/strata_decals/grime/grime3, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/exterior/research_decks) "aDW" = ( /obj/structure/largecrate/random/barrel/green, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/exterior/research_decks) "aDX" = ( /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/exterior/research_decks) "aDY" = ( /obj/structure/platform_decoration/strata/metal{ dir = 8 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/exterior/research_decks) "aDZ" = ( /obj/structure/platform/strata/metal{ @@ -9888,27 +7886,19 @@ /obj/structure/platform_decoration/strata/metal{ dir = 4 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/interior/outpost/engi) "aEb" = ( /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2, /area/strata/ag/interior/outpost/engi) "aEc" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony{ dir = 2 }, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/outpost/engi) "aEe" = ( /turf/closed/wall/strata_outpost/reinforced/hull, @@ -9918,9 +7908,7 @@ /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/security) "aEg" = ( /obj/effect/decal/cleanable/blood{ @@ -9929,54 +7917,38 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/canteen/lower_cafeteria) "aEh" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/reagent_container/food/snacks/carrotfries, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/outpost/canteen/lower_cafeteria) "aEi" = ( /obj/structure/bed/chair{ dir = 8 }, /obj/effect/decal/cleanable/blood, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/outpost/canteen/lower_cafeteria) "aEj" = ( /obj/structure/bed/chair{ dir = 4 }, /obj/effect/decal/cleanable/blood, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/outpost/canteen/lower_cafeteria) "aEk" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/reagent_container/food/condiment/peppermill, /obj/item/device/encryptionkey/dutch, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan1" - }, +/turf/open/floor/strata/cyan1/east, /area/strata/ag/interior/outpost/canteen/lower_cafeteria) "aEl" = ( /obj/structure/pipes/standard/manifold/hidden/cyan{ dir = 8 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/strata/ag/interior/outpost/canteen) "aEm" = ( /obj/structure/flora/pottedplant{ @@ -9985,10 +7957,7 @@ /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/strata/ag/interior/outpost/canteen) "aEn" = ( /obj/structure/surface/table/reinforced/prison, @@ -9998,10 +7967,7 @@ /obj/item/stack/sheet/mineral/plastic, /obj/item/stack/sheet/mineral/plastic, /obj/item/stack/sheet/mineral/plastic, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/strata/ag/interior/outpost/canteen) "aEo" = ( /obj/structure/largecrate/random/case/double, @@ -10009,10 +7975,7 @@ /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/strata/ag/interior/outpost/canteen) "aEq" = ( /obj/structure/machinery/cm_vending/sorted/medical/wall_med/limited{ @@ -10020,18 +7983,12 @@ }, /obj/structure/largecrate/random, /obj/item/seeds/walkingmushroommycelium, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/strata/ag/interior/outpost/canteen) "aEr" = ( /obj/structure/closet/crate/freezer/rations, /obj/item/clothing/suit/xenos, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/maint/canteen_e_1) "aEs" = ( /obj/structure/closet/crate/freezer/rations, @@ -10039,10 +7996,7 @@ dir = 1; pixel_y = 25 }, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/maint/canteen_e_1) "aEt" = ( /obj/structure/sink{ @@ -10052,10 +8006,7 @@ /obj/structure/mirror{ pixel_x = -29 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ug/interior/jungle/deep/minehead/ruins) "aEu" = ( /obj/structure/machinery/power/apc{ @@ -10063,16 +8014,11 @@ pixel_y = 25 }, /obj/item/reagent_container/food/drinks/cans/waterbottle, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ug/interior/jungle/deep/minehead/ruins) "aEv" = ( /obj/structure/curtain/medical, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ug/interior/jungle/deep/minehead/ruins) "aEw" = ( /obj/structure/bed/chair{ @@ -10090,10 +8036,7 @@ /obj/structure/bookcase{ icon_state = "book-5" }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ug/interior/jungle/deep/minehead/ruins) "aEC" = ( /obj/structure/barricade/handrail/strata, @@ -10105,21 +8048,15 @@ /area/strata/ug/interior/jungle/deep/south_res) "aEF" = ( /obj/structure/largecrate/random/case/small, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/nearlz1) "aEG" = ( /obj/effect/decal/cleanable/blood/oil, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/strata/ag/interior/landingzone_1) "aEH" = ( /obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles, /area/strata/ag/interior/dorms) "aEI" = ( /obj/effect/decal/strata_decals/catwalk/prison, @@ -10131,16 +8068,12 @@ /obj/structure/machinery/camera/autoname{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "orange_tile" - }, +/turf/open/floor/strata/orange_tile, /area/strata/ag/interior/dorms) "aEK" = ( /obj/structure/machinery/chem_dispenser/soda/beer, /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/strata{ - icon_state = "orange_tile" - }, +/turf/open/floor/strata/orange_tile, /area/strata/ag/interior/dorms) "aEL" = ( /obj/structure/sign/nosmoking_1, @@ -10212,9 +8145,7 @@ /area/strata/ag/interior/outpost/engi) "aFb" = ( /obj/structure/machinery/light/small, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/engi) "aFc" = ( /obj/structure/pipes/standard/manifold/hidden/cyan{ @@ -10224,9 +8155,7 @@ dir = 4 }, /obj/structure/barricade/handrail/strata, -/turf/open/floor/prison{ - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2, /area/strata/ag/interior/outpost/engi) "aFd" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ @@ -10235,23 +8164,17 @@ /obj/structure/platform/strata/metal{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2, /area/strata/ag/interior/outpost/engi) "aFf" = ( /obj/structure/pipes/standard/manifold/hidden/cyan{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2, /area/strata/ag/interior/outpost/engi) "aFg" = ( /obj/structure/pipes/standard/manifold/hidden/cyan, -/turf/open/floor/prison{ - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2, /area/strata/ag/interior/outpost/engi) "aFi" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ @@ -10262,9 +8185,7 @@ icon_state = "p_stair_ew_full_cap"; layer = 3.5 }, -/turf/open/floor/prison{ - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2, /area/strata/ag/interior/outpost/engi) "aFj" = ( /obj/item/lightstick/red/spoke/planted{ @@ -10281,26 +8202,19 @@ /obj/structure/prop/ice_colony/ground_wire{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "red2" - }, +/turf/open/floor/strata/red2, /area/strata/ug/interior/jungle/deep/north_carp) "aFk" = ( /obj/structure/stairs/perspective{ color = "#6e6e6e" }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/exterior/research_decks) "aFl" = ( /obj/structure/pipes/standard/manifold/hidden/cyan{ dir = 1 }, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/outpost/security) "aFm" = ( /obj/structure/pipes/standard/manifold/hidden/cyan{ @@ -10310,9 +8224,7 @@ dir = 1; pixel_y = 20 }, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/outpost/security) "aFn" = ( /obj/effect/decal/cleanable/blood{ @@ -10321,9 +8233,7 @@ /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/outpost/security) "aFo" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ @@ -10338,9 +8248,7 @@ dir = 8; icon_state = "p_stair_full" }, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/outpost/security) "aFp" = ( /obj/effect/decal/cleanable/blood{ @@ -10354,9 +8262,7 @@ dir = 8; icon_state = "p_stair_full" }, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/outpost/security) "aFq" = ( /obj/effect/decal/cleanable/blood{ @@ -10365,9 +8271,7 @@ /obj/structure/pipes/standard/manifold/hidden/cyan{ dir = 1 }, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/outpost/security) "aFr" = ( /obj/effect/decal/cleanable/blood{ @@ -10379,9 +8283,7 @@ /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/outpost/security) "aFs" = ( /obj/effect/decal/cleanable/blood{ @@ -10412,10 +8314,7 @@ dir = 8 }, /obj/effect/landmark/survivor_spawner, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/strata/ag/interior/outpost/canteen/lower_cafeteria) "aFv" = ( /obj/structure/machinery/light/small, @@ -10423,10 +8322,7 @@ /area/strata/ag/exterior/paths/north_outpost) "aFw" = ( /obj/structure/pipes/standard/manifold/fourway/hidden/cyan, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/strata/ag/interior/outpost/canteen/lower_cafeteria) "aFx" = ( /obj/structure/bed/chair{ @@ -10444,53 +8340,35 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/strata/ag/interior/outpost/canteen) "aFA" = ( /obj/structure/largecrate/random, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/strata/ag/interior/outpost/canteen) "aFB" = ( /obj/structure/machinery/door/airlock/almayer/generic{ dir = 2 }, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/outpost/canteen) "aFC" = ( /obj/structure/machinery/light/small, /obj/structure/tunnel/maint_tunnel, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/engi/drome) "aFD" = ( /turf/closed/wall/strata_ice/jungle, /area/strata/ag/interior/outpost/maint/canteen_e_1) "aFE" = ( /obj/structure/closet/crate/freezer/rations, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/maint/canteen_e_1) "aFG" = ( /obj/structure/toilet{ dir = 1 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ug/interior/jungle/deep/minehead/ruins) "aFH" = ( /obj/structure/machinery/shower{ @@ -10505,37 +8383,23 @@ /obj/structure/machinery/door/window/eastright{ dir = 1 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ug/interior/jungle/deep/minehead/ruins) "aFI" = ( /obj/effect/spawner/random/tool, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ug/interior/jungle/deep/minehead/ruins) "aFJ" = ( /obj/structure/filingcabinet, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ug/interior/jungle/deep/minehead/ruins) "aFL" = ( /obj/structure/window/framed/strata, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/interior/dorms) "aFM" = ( /obj/structure/reagent_dispensers/beerkeg, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/dorms) "aFN" = ( /obj/structure/machinery/light/small{ @@ -10545,26 +8409,20 @@ dir = 5 }, /obj/effect/decal/cleanable/blood, -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles, /area/strata/ag/interior/dorms) "aFO" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles, /area/strata/ag/interior/dorms) "aFP" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, /obj/structure/machinery/door/airlock/almayer/maint/colony, -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles, /area/strata/ag/interior/dorms) "aFQ" = ( /obj/effect/decal/strata_decals/catwalk/prison, @@ -10582,9 +8440,7 @@ /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1, /area/strata/ag/interior/dorms) "aFS" = ( /obj/structure/surface/table/reinforced/prison, @@ -10592,9 +8448,7 @@ /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "orange_tile" - }, +/turf/open/floor/strata/orange_tile, /area/strata/ag/interior/dorms) "aFT" = ( /obj/structure/bed/chair{ @@ -10610,10 +8464,7 @@ /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "orange_edge" - }, +/turf/open/floor/strata/orange_edge/west, /area/strata/ag/interior/dorms) "aFV" = ( /obj/structure/flora/grass/tallgrass/ice, @@ -10635,9 +8486,7 @@ /area/strata/ag/exterior/paths/north_outpost) "aGc" = ( /obj/structure/machinery/space_heater, -/turf/open/floor/prison{ - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2, /area/strata/ag/exterior/research_decks) "aGd" = ( /obj/structure/platform/strata/metal{ @@ -10672,10 +8521,7 @@ /area/strata/ag/interior/mountain) "aGh" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/exterior/research_decks) "aGi" = ( /obj/structure/machinery/light/small{ @@ -10695,18 +8541,14 @@ /obj/structure/machinery/door/airlock/almayer/engineering/colony{ dir = 2 }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/engi) "aGn" = ( /obj/structure/pipes/standard/simple/hidden/cyan, /obj/structure/machinery/door/airlock/almayer/engineering/colony{ dir = 2 }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/engi) "aGp" = ( /obj/structure/sign/safety/laser, @@ -10728,9 +8570,7 @@ /obj/structure/platform/strata/metal{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2, /area/strata/ag/interior/outpost/engi) "aGu" = ( /obj/structure/platform_decoration/strata/metal{ @@ -10749,10 +8589,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/engi) "aGy" = ( /obj/effect/decal/strata_decals/catwalk/prison, @@ -10760,10 +8597,7 @@ dir = 4 }, /obj/structure/machinery/light/small, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/engi) "aGz" = ( /obj/structure/stairs/perspective{ @@ -10771,10 +8605,7 @@ dir = 8; icon_state = "p_stair_full" }, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/engi) "aGA" = ( /obj/structure/machinery/light/small, @@ -10782,10 +8613,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/engi) "aGB" = ( /obj/structure/stairs/perspective{ @@ -10793,9 +8621,7 @@ dir = 8; icon_state = "p_stair_full" }, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/outpost/security) "aGC" = ( /obj/structure/machinery/light/small, @@ -10811,9 +8637,7 @@ /area/strata/ag/interior/outpost/security) "aGE" = ( /obj/item/stack/sheet/wood, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/outpost/security) "aGF" = ( /obj/effect/decal/cleanable/blood{ @@ -10841,9 +8665,7 @@ dir = 1; pixel_y = 20 }, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/outpost/canteen/lower_cafeteria) "aGI" = ( /obj/structure/bed/chair{ @@ -10851,18 +8673,12 @@ }, /obj/effect/decal/cleanable/blood, /obj/effect/decal/cleanable/blood/gibs/core, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/outpost/canteen/lower_cafeteria) "aGJ" = ( /obj/item/stack/rods, /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/outpost/canteen/lower_cafeteria) "aGK" = ( /obj/structure/surface/table/reinforced/prison, @@ -10875,9 +8691,7 @@ dir = 1; pixel_y = 20 }, -/turf/open/floor/prison{ - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2, /area/strata/ag/interior/outpost/canteen/lower_cafeteria) "aGL" = ( /obj/structure/flora/grass/tallgrass/ice/corner{ @@ -10890,18 +8704,12 @@ /obj/structure/barricade/handrail/strata{ dir = 8 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/strata/ag/interior/outpost/canteen) "aGN" = ( /obj/structure/surface/rack, /obj/item/device/radio, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/strata/ag/interior/outpost/canteen) "aGO" = ( /obj/structure/machinery/light/small{ @@ -10916,26 +8724,17 @@ /obj/structure/machinery/door/airlock/almayer/generic{ dir = 2 }, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/outpost/maint/canteen_e_1) "aGR" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/microwave, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ug/interior/jungle/deep/minehead/ruins) "aGS" = ( /obj/item/stack/sheet/wood, /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ug/interior/jungle/deep/minehead/ruins) "aGU" = ( /obj/effect/landmark/monkey_spawn, @@ -10953,9 +8752,7 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/strata/ag/interior/landingzone_1) "aGY" = ( /obj/structure/flora/pottedplant{ @@ -10966,17 +8763,13 @@ "aGZ" = ( /obj/structure/reagent_dispensers/beerkeg, /obj/structure/barricade/handrail/strata, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/dorms) "aHa" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony{ dir = 2 }, -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles, /area/strata/ag/interior/dorms) "aHb" = ( /obj/structure/sign/poster, @@ -10991,9 +8784,7 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1, /area/strata/ag/interior/dorms) "aHd" = ( /obj/effect/decal/cleanable/blood{ @@ -11001,9 +8792,7 @@ }, /obj/item/tool/kitchen/utensil/pknife, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/strata{ - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1, /area/strata/ag/interior/dorms) "aHe" = ( /obj/structure/bed/chair{ @@ -11013,17 +8802,11 @@ /obj/effect/decal/strata_decals/grime/grime4{ dir = 4 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "orange_edge" - }, +/turf/open/floor/strata/orange_edge/west, /area/strata/ag/interior/dorms) "aHf" = ( /obj/structure/window/framed/strata/reinforced, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/interior/dorms) "aHh" = ( /turf/open/auto_turf/snow/brown_base/layer4, @@ -11031,9 +8814,7 @@ "aHi" = ( /obj/structure/reagent_dispensers/fueltank, /obj/structure/barricade/handrail/strata, -/turf/open/asphalt/cement{ - icon_state = "cement15" - }, +/turf/open/asphalt/cement/cement15, /area/strata/ug/interior/jungle/platform/east/scrub) "aHj" = ( /obj/structure/stairs/perspective{ @@ -11051,29 +8832,20 @@ /area/strata/ag/exterior/research_decks) "aHl" = ( /obj/structure/barricade/handrail/strata, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ug/interior/outpost/jung/dorms/sec2) "aHm" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, /obj/structure/machinery/door/airlock/almayer/engineering/colony, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/exterior/research_decks) "aHo" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony{ dir = 2 }, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/outpost/engi) "aHq" = ( /obj/structure/flora/pottedplant{ @@ -11082,33 +8854,25 @@ /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/engi) "aHr" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2, /area/strata/ag/interior/outpost/engi) "aHs" = ( /obj/structure/pipes/standard/manifold/hidden/cyan{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2, /area/strata/ag/interior/outpost/engi) "aHt" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_21" }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/engi) "aHu" = ( /obj/structure/stairs/perspective{ @@ -11120,10 +8884,6 @@ "aHv" = ( /turf/closed/wall/strata_outpost/reinforced, /area/strata/ag/interior/outpost/engi) -"aHw" = ( -/obj/structure/machinery/power/geothermal, -/turf/open/floor/strata, -/area/strata/ag/interior/outpost/engi) "aHy" = ( /obj/item/lightstick/red/planted, /obj/structure/platform/strata/metal{ @@ -11166,24 +8926,18 @@ dir = 8; icon_state = "p_stair_full" }, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/outpost/security) "aHK" = ( /obj/structure/pipes/standard/simple/hidden/cyan, /obj/item/stack/sheet/wood, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/outpost/security) "aHL" = ( /obj/structure/barricade/wooden{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/outpost/security) "aHM" = ( /obj/item/stool, @@ -11196,25 +8950,17 @@ /obj/structure/surface/table/reinforced/prison, /obj/item/reagent_container/food/drinks/bottle/vodka, /obj/item/reagent_container/food/condiment/peppermill, -/turf/open/floor/prison{ - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2, /area/strata/ag/interior/outpost/canteen/lower_cafeteria) "aHO" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/interior/outpost/canteen) "aHP" = ( /turf/open/floor/strata, /area/strata/ag/interior/outpost/canteen) "aHR" = ( -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/interior/outpost/maint/canteen_e_1) "aHS" = ( /obj/structure/platform_decoration/strata/metal{ @@ -11223,29 +8969,17 @@ /turf/open/auto_turf/snow/brown_base/layer4, /area/strata/ag/exterior/paths/adminext) "aHT" = ( -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/maint/canteen_e_1) "aHU" = ( -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/outpost/maint/canteen_e_1) "aHV" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/outpost/maint/canteen_e_1) "aHW" = ( -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ug/interior/jungle/deep/east_dorms) "aHY" = ( /obj/structure/flora/bush/ausbushes/grassybush{ @@ -11259,10 +8993,7 @@ /area/strata/ug/interior/jungle/deep/east_dorms) "aIa" = ( /obj/structure/closet/secure_closet/freezer/fridge, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ug/interior/jungle/deep/minehead/ruins) "aIb" = ( /obj/item/stack/sheet/wood, @@ -11276,27 +9007,20 @@ /area/strata/ug/interior/jungle/deep/south_res) "aIf" = ( /obj/effect/decal/strata_decals/catwalk/prison, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/nearlz1) "aIg" = ( /obj/structure/platform/strata/metal{ dir = 8 }, /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/strata/ag/interior/landingzone_1) "aIh" = ( /obj/effect/decal/cleanable/blood{ icon_state = "xgib2" }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/interior/dorms) "aIi" = ( /obj/structure/pipes/vents/pump{ @@ -11304,23 +9028,16 @@ }, /obj/effect/landmark/xeno_hive_spawn, /obj/effect/landmark/ert_spawns/groundside_xeno, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/dorms/canteen) "aIj" = ( /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/dorms) "aIk" = ( -/turf/open/floor/strata{ - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1, /area/strata/ag/interior/dorms) "aIl" = ( /obj/effect/decal/cleanable/blood{ @@ -11330,9 +9047,7 @@ dir = 1; pixel_y = 20 }, -/turf/open/floor/strata{ - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1, /area/strata/ag/interior/dorms) "aIm" = ( /obj/item/ammo_magazine/shotgun/buckshot{ @@ -11342,16 +9057,12 @@ /obj/effect/decal/strata_decals/grime/grime4{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1, /area/strata/ag/interior/dorms) "aIn" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/reagent_container/food/snacks/enchiladas, -/turf/open/floor/strata{ - icon_state = "orange_tile" - }, +/turf/open/floor/strata/orange_tile, /area/strata/ag/interior/dorms) "aIo" = ( /obj/structure/pipes/vents/pump/on, @@ -11361,9 +9072,7 @@ /obj/structure/surface/table/reinforced/prison, /obj/item/pizzabox/mushroom, /obj/item/tool/kitchen/utensil/pspoon, -/turf/open/floor/strata{ - icon_state = "orange_tile" - }, +/turf/open/floor/strata/orange_tile, /area/strata/ag/interior/dorms) "aIs" = ( /obj/structure/flora/grass/ice/brown/snowgrassbb_1, @@ -11433,9 +9142,7 @@ /obj/structure/machinery/camera/autoname{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/engi) "aIT" = ( /obj/structure/flora/grass/tallgrass/ice/corner{ @@ -11447,9 +9154,7 @@ /turf/closed/wall/wood, /area/strata/ug/interior/jungle/deep/minehead/ruins) "aIV" = ( -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/engi) "aIW" = ( /obj/structure/closet/bombcloset, @@ -11458,9 +9163,7 @@ /obj/item/stack/sheet/mineral/plastic, /obj/item/stack/sheet/mineral/plastic, /obj/item/stack/sheet/mineral/plastic, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/engi) "aIX" = ( /obj/structure/closet/secure_closet/engineering_personal, @@ -11469,31 +9172,23 @@ }, /obj/item/stack/sheet/plasteel/medium_stack, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/engi) "aIZ" = ( /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/engi) "aJb" = ( /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor/prison{ - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2, /area/strata/ag/interior/outpost/engi) "aJc" = ( /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/engi) "aJd" = ( /obj/structure/sign/safety/terminal, @@ -11504,15 +9199,11 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2, /area/strata/ag/interior/outpost/engi) "aJf" = ( /obj/structure/bed/sofa/vert/grey/top, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/outpost/admin) "aJk" = ( /obj/item/lightstick/red/spoke/planted{ @@ -11529,9 +9220,7 @@ /obj/structure/prop/ice_colony/ground_wire{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "red2" - }, +/turf/open/floor/strata/red2, /area/strata/ug/interior/jungle/deep/structures/res) "aJl" = ( /obj/structure/platform/strata/metal{ @@ -11545,9 +9234,7 @@ dir = 8 }, /obj/item/device/flashlight/lamp/green, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/admin) "aJn" = ( /obj/effect/decal/cleanable/blood, @@ -11564,9 +9251,7 @@ pixel_x = -6; pixel_y = 10 }, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/outpost/admin) "aJp" = ( /obj/structure/platform/strata/metal{ @@ -11590,16 +9275,12 @@ /obj/structure/surface/table/reinforced/prison, /obj/item/paper_bin, /obj/item/tool/stamp, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/outpost/admin) "aJv" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/device/flashlight/lamp/green, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/outpost/admin) "aJw" = ( /obj/structure/toilet, @@ -11611,10 +9292,7 @@ dir = 4 }, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/outpost/admin) "aJA" = ( /obj/structure/barricade/wooden{ @@ -11625,10 +9303,7 @@ dir = 2; name = "\improper Airlock" }, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/outpost/canteen/bar) "aJB" = ( /obj/structure/sign/safety/galley, @@ -11642,47 +9317,31 @@ /area/strata/ag/interior/outpost/canteen/lower_cafeteria) "aJD" = ( /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/outpost/canteen/lower_cafeteria) "aJE" = ( /obj/structure/bed/chair{ dir = 8 }, /obj/effect/decal/cleanable/blood/gibs/core, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/outpost/canteen/lower_cafeteria) "aJF" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/reagent_container/food/snacks/cheesecakeslice, -/turf/open/floor/prison{ - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2, /area/strata/ag/interior/outpost/canteen/lower_cafeteria) "aJG" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/canteen) "aJH" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/maint/canteen_e_1) "aJI" = ( /obj/structure/barricade/wooden, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ug/interior/jungle/deep/minehead/ruins) "aJJ" = ( /obj/structure/barricade/wooden, @@ -11706,25 +9365,18 @@ /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ dir = 1 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/interior/dorms) "aJP" = ( /obj/effect/decal/cleanable/blood{ icon_state = "xgib2" }, -/turf/open/floor/strata{ - icon_state = "orange_tile" - }, +/turf/open/floor/strata/orange_tile, /area/strata/ag/interior/dorms) "aJQ" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/storage/toolbox/syndicate, -/turf/open/floor/strata{ - icon_state = "orange_tile" - }, +/turf/open/floor/strata/orange_tile, /area/strata/ag/interior/dorms) "aJR" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ @@ -11740,17 +9392,12 @@ dir = 4 }, /obj/effect/decal/cleanable/blood/gibs/core, -/turf/open/floor/strata{ - dir = 4; - icon_state = "orange_edge" - }, +/turf/open/floor/strata/orange_edge/east, /area/strata/ag/interior/dorms) "aJT" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/reagent_container/food/drinks/bottle/vodka, -/turf/open/floor/strata{ - icon_state = "orange_tile" - }, +/turf/open/floor/strata/orange_tile, /area/strata/ag/interior/dorms) "aJV" = ( /obj/item/stack/snow, @@ -11830,10 +9477,7 @@ capacity = 1e+006; dir = 1 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/exterior/research_decks) "aKk" = ( /obj/structure/platform/strata/metal{ @@ -11849,9 +9493,7 @@ /area/strata/ag/exterior/paths/adminext) "aKm" = ( /obj/structure/machinery/light/small, -/turf/open/floor/prison{ - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2, /area/strata/ag/exterior/research_decks) "aKn" = ( /obj/structure/machinery/power/monitor{ @@ -11860,33 +9502,25 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/engi) "aKp" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 6 }, -/turf/open/floor/prison{ - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2, /area/strata/ag/interior/outpost/engi) "aKq" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/engi) "aKr" = ( /obj/structure/platform/strata/metal{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2, /area/strata/ag/interior/outpost/engi) "aKs" = ( /obj/effect/decal/cleanable/generic, @@ -11925,10 +9559,7 @@ /area/strata/ag/exterior/marsh/water) "aKw" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/gen/bball/nest) "aKx" = ( /obj/item/clothing/suit/storage/hazardvest, @@ -11961,16 +9592,11 @@ /area/strata/ag/interior/outpost/engi) "aKB" = ( /obj/structure/window/framed/strata, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/interior/outpost/engi) "aKC" = ( /obj/structure/bed/sofa/vert/grey/bot, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/outpost/admin) "aKD" = ( /obj/structure/surface/table/reinforced/prison, @@ -11986,9 +9612,7 @@ /obj/structure/barricade/handrail/strata{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/outpost/admin) "aKF" = ( /obj/structure/surface/table/reinforced/prison, @@ -11998,9 +9622,7 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "purp1" - }, +/turf/open/floor/strata/purp1, /area/strata/ug/interior/jungle/deep/structures/engi) "aKG" = ( /obj/structure/surface/table/reinforced/prison, @@ -12010,9 +9632,7 @@ /obj/structure/barricade/handrail/strata{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/admin) "aKK" = ( /obj/structure/machinery/light/small{ @@ -12036,48 +9656,31 @@ /obj/structure/machinery/door/airlock/almayer/generic{ dir = 2 }, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/outpost/admin) "aKQ" = ( /obj/structure/machinery/chem_dispenser/soda/beer, /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/strata/ag/interior/outpost/canteen/bar) "aKR" = ( /obj/item/stack/sandbags, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/strata/ag/interior/outpost/canteen/bar) "aKS" = ( /obj/item/stack/sandbags, /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/strata/ag/interior/outpost/canteen/bar) "aKT" = ( /obj/structure/surface/table/woodentable, /obj/item/pizzabox/meat, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/interior/outpost/canteen/bar) "aKU" = ( /obj/item/stool, /obj/effect/decal/cleanable/blood, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/canteen/bar) "aKV" = ( /obj/item/lightstick/planted, @@ -12087,10 +9690,7 @@ /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/strata/ag/interior/outpost/canteen/lower_cafeteria) "aKX" = ( /obj/structure/bed/chair/comfy{ @@ -12099,10 +9699,7 @@ /obj/structure/barricade/handrail/strata{ dir = 8 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/strata/ag/interior/outpost/canteen) "aKY" = ( /obj/structure/flora/bush/ausbushes/grassybush, @@ -12124,10 +9721,7 @@ /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/maint/canteen_e_1) "aLc" = ( /obj/structure/window/reinforced/tinted, @@ -12140,52 +9734,38 @@ /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/dorms) "aLg" = ( /obj/effect/decal/strata_decals/grime/grime4{ dir = 1 }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/dorms) "aLh" = ( /obj/effect/decal/cleanable/blood{ dir = 4; icon_state = "gib6" }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/dorms) "aLi" = ( /obj/effect/decal/cleanable/blood{ dir = 4; icon_state = "gib6" }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "orange_edge" - }, +/turf/open/floor/strata/orange_edge/west, /area/strata/ag/interior/dorms) "aLj" = ( /obj/effect/decal/cleanable/blood, /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor/strata{ - dir = 4; - icon_state = "orange_edge" - }, +/turf/open/floor/strata/orange_edge/east, /area/strata/ag/interior/dorms) "aLk" = ( /obj/structure/reagent_dispensers/water_cooler, /obj/structure/machinery/light/small, /obj/effect/decal/strata_decals/grime/grime4, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/dorms) "aLl" = ( /obj/structure/sign/poster, @@ -12200,15 +9780,10 @@ /obj/structure/platform/strata/metal{ dir = 1 }, -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles, /area/strata/ag/exterior/paths/dorms_quad) "aLp" = ( -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/interior/dorms/south) "aLq" = ( /turf/open/floor/strata, @@ -12216,26 +9791,19 @@ "aLr" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/folder/blue, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/interior/dorms/south) "aLs" = ( /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/dorms/south) "aLt" = ( /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/dorms/south) "aLu" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, @@ -12273,10 +9841,7 @@ /obj/structure/machinery/camera/autoname{ dir = 4 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/exterior/research_decks) "aLF" = ( /obj/structure/machinery/cm_vending/sorted/tech/tool_storage, @@ -12292,9 +9857,7 @@ dir = 4 }, /obj/effect/landmark/survivor_spawner, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/engi) "aLL" = ( /obj/item/lightstick/planted, @@ -12311,9 +9874,7 @@ /area/strata/ag/exterior/paths/dorms_quad) "aLO" = ( /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/engi) "aLP" = ( /obj/structure/machinery/cm_vending/sorted/tech/comp_storage, @@ -12331,9 +9892,7 @@ /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22" }, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/outpost/admin) "aLT" = ( /obj/structure/surface/table/reinforced/prison, @@ -12349,17 +9908,13 @@ }, /obj/item/device/flashlight/lamp, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/outpost/admin) "aLU" = ( /obj/structure/bed/chair/office/light{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/admin) "aLW" = ( /obj/structure/surface/table/reinforced/prison, @@ -12368,40 +9923,29 @@ /obj/structure/barricade/handrail/strata{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/admin) "aLZ" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/admin) "aMb" = ( /obj/effect/landmark/survivor_spawner, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/admin) "aMc" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/admin) "aMd" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/interior/outpost/admin) "aMf" = ( /obj/structure/machinery/light/small{ @@ -12410,72 +9954,48 @@ /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/outpost/admin) "aMg" = ( /obj/structure/pipes/standard/manifold/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "blue4" - }, +/turf/open/floor/strata/blue4, /area/strata/ag/interior/outpost/admin) "aMh" = ( -/turf/open/floor/strata{ - dir = 1; - icon_state = "blue4" - }, +/turf/open/floor/strata/blue4/north, /area/strata/ag/interior/outpost/admin) "aMi" = ( /obj/structure/machinery/cm_vending/sorted/boozeomat, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/strata/ag/interior/outpost/canteen/bar) "aMj" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/strata/ag/interior/outpost/canteen/bar) "aMk" = ( /obj/effect/decal/cleanable/blood, /obj/structure/pipes/standard/manifold/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/strata/ag/interior/outpost/canteen/bar) "aMl" = ( /obj/effect/decal/cleanable/blood, /obj/item/stack/sheet/wood, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/strata/ag/interior/outpost/canteen/bar) "aMm" = ( /obj/item/stack/sheet/wood, /obj/effect/decal/cleanable/blood{ icon_state = "xgib6" }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/interior/outpost/canteen/bar) "aMn" = ( -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/canteen/bar) "aMo" = ( /obj/structure/surface/table/reinforced/prison, @@ -12488,9 +10008,7 @@ dir = 1; pixel_y = 20 }, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/outpost/canteen/lower_cafeteria) "aMp" = ( /obj/structure/surface/table/reinforced/prison, @@ -12499,16 +10017,11 @@ dir = 1; pixel_y = 20 }, -/turf/open/floor/prison{ - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2, /area/strata/ag/interior/outpost/canteen/lower_cafeteria) "aMq" = ( /obj/item/stack/sandbags, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/outpost/canteen) "aMr" = ( /obj/structure/surface/rack, @@ -12516,39 +10029,24 @@ /obj/structure/machinery/camera/autoname{ dir = 8 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/strata/ag/interior/outpost/canteen) "aMs" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony{ dir = 2 }, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/outpost/canteen) "aMt" = ( /obj/structure/curtain/open/medical, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/strata/ag/interior/outpost/maint/canteen_e_1) "aMu" = ( -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/strata/ag/interior/outpost/maint/canteen_e_1) "aMv" = ( /obj/structure/bed, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/strata/ag/interior/outpost/maint/canteen_e_1) "aMw" = ( /turf/closed/wall/strata_outpost, @@ -12574,28 +10072,20 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/nearlz1) "aMB" = ( -/turf/open/floor/strata{ - icon_state = "orange_tile" - }, +/turf/open/floor/strata/orange_tile, /area/strata/ag/interior/dorms) "aMC" = ( /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "orange_tile" - }, +/turf/open/floor/strata/orange_tile, /area/strata/ag/interior/dorms) "aMD" = ( /obj/structure/machinery/light/small, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/dorms) "aME" = ( /turf/closed/wall/strata_outpost/reinforced/hull, @@ -12658,15 +10148,11 @@ pixel_x = 8; pixel_y = 6 }, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/dorms/south) "aMN" = ( /obj/structure/pipes/vents/pump/on, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/dorms/south) "aMO" = ( /obj/structure/machinery/light/small{ @@ -12680,17 +10166,13 @@ dir = 4 }, /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor/prison{ - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2, /area/strata/ag/exterior/research_decks) "aMQ" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 5 }, -/turf/open/floor/prison{ - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2, /area/strata/ag/interior/outpost/engi) "aMS" = ( /obj/structure/platform/strata/metal{ @@ -12721,23 +10203,17 @@ /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/engi) "aMX" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2, /area/strata/ag/interior/outpost/engi) "aMY" = ( /obj/structure/pipes/standard/manifold/fourway/hidden/cyan, -/turf/open/floor/prison{ - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2, /area/strata/ag/interior/outpost/engi) "aMZ" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ @@ -12753,17 +10229,13 @@ dir = 1; pixel_y = 20 }, -/turf/open/floor/prison{ - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2, /area/strata/ag/interior/outpost/engi) "aNb" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 10 }, -/turf/open/floor/prison{ - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2, /area/strata/ag/interior/outpost/engi) "aNc" = ( /obj/structure/closet/secure_closet/engineering_personal, @@ -12788,9 +10260,7 @@ /obj/structure/barricade/handrail/strata{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/admin) "aNh" = ( /obj/structure/sign/safety/terminal, @@ -12820,16 +10290,10 @@ /area/strata/ag/exterior/paths/dorms_quad) "aNs" = ( /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor/strata{ - dir = 8; - icon_state = "blue3" - }, +/turf/open/floor/strata/blue3/west, /area/strata/ag/interior/outpost/admin) "aNt" = ( -/turf/open/floor/strata{ - dir = 4; - icon_state = "blue3" - }, +/turf/open/floor/strata/blue3/east, /area/strata/ag/interior/outpost/admin) "aNu" = ( /turf/closed/wall/strata_outpost/reinforced/hull, @@ -12838,17 +10302,11 @@ /obj/structure/surface/table/woodentable, /obj/item/reagent_container/food/drinks/cans/beer, /obj/effect/decal/cleanable/blood, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/interior/outpost/canteen/bar) "aNw" = ( /obj/item/stool, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/strata/ag/interior/outpost/canteen/lower_cafeteria) "aNx" = ( /obj/structure/surface/table/reinforced/prison, @@ -12860,9 +10318,7 @@ /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/outpost/canteen/lower_cafeteria) "aNy" = ( /obj/structure/surface/table/reinforced/prison, @@ -12871,9 +10327,7 @@ pixel_y = 3 }, /obj/item/reagent_container/food/condiment/peppermill, -/turf/open/floor/prison{ - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2, /area/strata/ag/interior/outpost/canteen/lower_cafeteria) "aNz" = ( /obj/structure/pipes/standard/simple/hidden/cyan, @@ -12899,18 +10353,12 @@ /area/strata/ag/exterior/paths/dorms_quad) "aNC" = ( /obj/structure/closet/crate, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/maint/canteen_e_1) "aND" = ( /obj/structure/surface/rack, /obj/item/stack/sheet/metal/medium_stack, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/maint/canteen_e_1) "aNE" = ( /obj/structure/machinery/space_heater, @@ -12918,10 +10366,7 @@ pixel_x = 3; pixel_y = 14 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/strata/ag/interior/outpost/maint/canteen_e_1) "aNF" = ( /obj/effect/landmark/monkey_spawn, @@ -12942,16 +10387,11 @@ /obj/structure/machinery/camera/autoname{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/nearlz1) "aNJ" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/dorms) "aNL" = ( /obj/structure/sign/safety/restrictedarea, @@ -12989,9 +10429,7 @@ /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 6 }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/dorms/south) "aNP" = ( /obj/structure/pipes/vents/pump{ @@ -13008,17 +10446,13 @@ /obj/effect/decal/strata_decals/grime/grime3{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/dorms/south) "aNR" = ( /obj/structure/pipes/standard/manifold/hidden/cyan{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/dorms/south) "aNS" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ @@ -13027,20 +10461,14 @@ /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ dir = 8 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/interior/dorms/south) "aNT" = ( /obj/effect/spawner/random/toolbox, /obj/structure/surface/rack, /obj/item/device/flashlight, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/exterior/research_decks) "aNU" = ( /obj/item/lightstick/red/planted, @@ -13051,27 +10479,19 @@ /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/exterior/research_decks) "aNW" = ( /obj/structure/closet/emcloset, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/exterior/research_decks) "aNX" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, /obj/effect/decal/strata_decals/catwalk/prison, -/turf/open/floor/prison{ - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2, /area/strata/ag/exterior/research_decks) "aNZ" = ( /obj/structure/disposalpipe/segment{ @@ -13079,9 +10499,7 @@ }, /obj/effect/decal/strata_decals/catwalk/prison, /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor/prison{ - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2, /area/strata/ag/exterior/research_decks) "aOa" = ( /obj/structure/machinery/light/small, @@ -13092,15 +10510,11 @@ icon_state = "pottedplant_21" }, /obj/structure/platform_decoration/strata/metal, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/engi) "aOc" = ( /obj/structure/platform/strata/metal, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/engi) "aOd" = ( /obj/structure/platform/strata/metal, @@ -13110,16 +10524,12 @@ /obj/structure/platform_decoration/strata/metal{ dir = 1 }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/engi) "aOf" = ( /obj/structure/pipes/standard/simple/hidden/cyan, /obj/structure/platform_decoration/strata/metal, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/engi) "aOg" = ( /obj/structure/pipes/vents/pump{ @@ -13138,9 +10548,7 @@ /obj/structure/pipes/standard/manifold/hidden/cyan{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2, /area/strata/ag/interior/outpost/engi) "aOj" = ( /obj/structure/pipes/vents/pump{ @@ -13153,9 +10561,7 @@ dir = 4 }, /obj/structure/bed/sofa/vert/grey/bot, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/outpost/admin) "aOl" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ @@ -13171,9 +10577,7 @@ dir = 8 }, /obj/effect/landmark/survivor_spawner, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/outpost/admin) "aOn" = ( /obj/structure/flora/pottedplant{ @@ -13187,22 +10591,15 @@ /obj/structure/barricade/handrail/strata{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/admin) "aOp" = ( /obj/item/stack/catwalk, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/engi/drome) "aOq" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/outpost/admin) "aOr" = ( /obj/item/lightstick/red/spoke/planted{ @@ -13219,26 +10616,20 @@ /obj/structure/prop/ice_colony/ground_wire{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "red2" - }, +/turf/open/floor/strata/red2, /area/strata/ug/interior/jungle/deep/south_res) "aOt" = ( /obj/structure/machinery/light/small{ dir = 1; pixel_y = 20 }, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/outpost/admin) "aOu" = ( /obj/structure/bed/chair/office/light{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/outpost/admin) "aOv" = ( /obj/structure/surface/table/reinforced/prison, @@ -13248,28 +10639,21 @@ }, /obj/item/toy/deck, /obj/item/storage/box/cups, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/outpost/admin) "aOw" = ( /obj/structure/machinery/vending/snack, /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/outpost/admin) "aOx" = ( /obj/structure/pipes/standard/simple/hidden/cyan, /obj/structure/machinery/camera/autoname{ dir = 4 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "blue3" - }, +/turf/open/floor/strata/blue3/west, /area/strata/ag/interior/outpost/admin) "aOy" = ( /obj/structure/surface/table/reinforced/prison, @@ -13277,9 +10661,7 @@ /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/outpost/canteen/lower_cafeteria) "aOz" = ( /obj/item/lightstick/red/planted, @@ -13288,10 +10670,7 @@ /area/strata/ag/exterior/paths/dorms_quad) "aOA" = ( /obj/effect/decal/cleanable/vomit, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/outpost/canteen/lower_cafeteria) "aOB" = ( /obj/structure/platform/strata/metal, @@ -13314,56 +10693,37 @@ /obj/structure/surface/table/reinforced/prison, /obj/item/reagent_container/food/drinks/cans/sodawater, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/prison{ - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2, /area/strata/ag/interior/outpost/canteen/lower_cafeteria) "aOJ" = ( /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/strata/ag/interior/outpost/canteen) "aOK" = ( /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/strata/ag/interior/outpost/canteen) "aOL" = ( /obj/structure/closet/crate/science, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/maint/canteen_e_1) "aOM" = ( /obj/effect/decal/cleanable/blood{ layer = 3 }, /obj/item/stool, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/maint/canteen_e_1) "aON" = ( /obj/item/stack/sheet/wood, /obj/structure/closet/crate/internals, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/strata/ag/interior/outpost/maint/canteen_e_1) "aOP" = ( -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/nearlz1) "aOR" = ( /obj/structure/pipes/standard/manifold/hidden/cyan{ @@ -13376,9 +10736,7 @@ dir = 1; pixel_y = 20 }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/nearlz1) "aOT" = ( /obj/structure/pipes/standard/manifold/hidden/cyan, @@ -13423,9 +10781,7 @@ "aPb" = ( /obj/structure/filingcabinet, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/dorms/south) "aPc" = ( /obj/structure/platform/strata/metal{ @@ -13470,9 +10826,7 @@ dir = 4 }, /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/dorms/south) "aPm" = ( /turf/closed/wall/strata_outpost/reinforced/hull, @@ -13491,15 +10845,11 @@ /obj/item/folder/red, /obj/item/ammo_box/magazine/shotgun/buckshot, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/dorms/south) "aPp" = ( /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/dorms/south) "aPq" = ( /obj/structure/machinery/weather_siren{ @@ -13526,35 +10876,24 @@ /obj/structure/machinery/door/airlock/almayer/engineering/colony{ dir = 2 }, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/exterior/research_decks) "aPx" = ( /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor/prison{ - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2, /area/strata/ag/exterior/research_decks) "aPy" = ( /obj/structure/closet/bombcloset, /obj/item/clothing/suit/armor/bulletproof, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/engi) "aPz" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony{ dir = 2; req_one_access = null }, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/outpost/gen/foyer) "aPB" = ( /obj/structure/flora/pottedplant{ @@ -13563,17 +10902,13 @@ /obj/structure/barricade/handrail/strata{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2, /area/strata/ag/interior/outpost/engi) "aPC" = ( /obj/structure/barricade/handrail/strata{ dir = 1 }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/engi) "aPD" = ( /obj/structure/flora/pottedplant{ @@ -13585,26 +10920,20 @@ /obj/structure/barricade/handrail/strata{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2, /area/strata/ag/interior/outpost/engi) "aPE" = ( /obj/structure/platform/strata/metal{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/outpost/engi) "aPF" = ( /obj/structure/pipes/standard/simple/hidden/cyan, /obj/structure/platform/strata/metal{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/outpost/engi) "aPG" = ( /obj/structure/flora/pottedplant{ @@ -13616,9 +10945,7 @@ /obj/structure/barricade/handrail/strata{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2, /area/strata/ag/interior/outpost/engi) "aPH" = ( /obj/structure/platform/strata/metal{ @@ -13648,9 +10975,7 @@ dir = 8 }, /obj/item/device/flashlight/lamp, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/outpost/admin) "aPL" = ( /obj/structure/flora/pottedplant{ @@ -13660,18 +10985,14 @@ dir = 8 }, /obj/structure/barricade/handrail/strata, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/admin) "aPN" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/barricade/handrail/strata, /obj/item/device/flashlight/lamp/green, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/admin) "aPO" = ( /obj/structure/surface/table/reinforced/prison, @@ -13679,18 +11000,14 @@ dir = 1 }, /obj/structure/barricade/handrail/strata, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/admin) "aPP" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/paper_bin, /obj/item/tool/stamp, /obj/structure/barricade/handrail/strata, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/admin) "aPQ" = ( /obj/structure/flora/pottedplant{ @@ -13700,26 +11017,20 @@ /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 5 }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/admin) "aPR" = ( /obj/structure/barricade/handrail/strata, /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/admin) "aPS" = ( /obj/structure/pipes/standard/manifold/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/admin) "aPT" = ( /obj/effect/decal/cleanable/generic, @@ -13729,9 +11040,7 @@ /area/strata/ag/exterior/paths/dorms_quad) "aPW" = ( /obj/structure/barricade/handrail/strata, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/admin) "aPX" = ( /obj/structure/platform/strata/metal, @@ -13755,9 +11064,7 @@ /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/outpost/admin) "aQc" = ( /obj/structure/barricade/wooden{ @@ -13766,10 +11073,7 @@ /obj/structure/machinery/door/airlock/almayer/maint/colony{ dir = 2 }, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/outpost/canteen/bar) "aQd" = ( /obj/structure/machinery/vending/dinnerware, @@ -13781,20 +11085,14 @@ "aQe" = ( /obj/structure/bed/chair, /obj/structure/pipes/standard/manifold/hidden/cyan, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/strata/ag/interior/outpost/canteen/lower_cafeteria) "aQf" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, /obj/effect/landmark/survivor_spawner, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/strata/ag/interior/outpost/canteen/lower_cafeteria) "aQg" = ( /obj/structure/platform/strata/metal{ @@ -13827,10 +11125,7 @@ dir = 8; icon_state = "p_stair_full" }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/interior/outpost/canteen) "aQk" = ( /obj/structure/pipes/standard/manifold/hidden/cyan{ @@ -13852,9 +11147,7 @@ /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/outpost/canteen) "aQn" = ( /obj/structure/flora/grass/tallgrass/ice/corner, @@ -13867,10 +11160,7 @@ /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/maint/canteen_e_1) "aQq" = ( /obj/structure/flora/grass/tallgrass/ice, @@ -13878,17 +11168,11 @@ /area/strata/ag/exterior/paths/adminext) "aQr" = ( /obj/item/stack/sheet/wood, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/strata/ag/interior/outpost/maint/canteen_e_1) "aQs" = ( /obj/structure/closet/wardrobe/pjs, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/strata/ag/interior/outpost/maint/canteen_e_1) "aQt" = ( /turf/closed/wall/wood, @@ -13906,9 +11190,7 @@ /area/strata/ag/interior/nearlz1) "aQw" = ( /obj/structure/pipes/vents/pump/on, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/nearlz1) "aQx" = ( /obj/structure/extinguisher_cabinet, @@ -13920,15 +11202,11 @@ pixel_y = 20 }, /obj/structure/machinery/vending/snack, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/dorms/south) "aQz" = ( /obj/structure/machinery/vending/coffee, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/dorms/south) "aQA" = ( /obj/structure/bed/chair, @@ -13937,24 +11215,17 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/dorms/south) "aQB" = ( /obj/effect/decal/cleanable/blood{ icon_state = "xgibdown1" }, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/gen/bball/nest) "aQD" = ( /obj/structure/reagent_dispensers/water_cooler, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/dorms/south) "aQF" = ( /obj/structure/flora/pottedplant{ @@ -13964,19 +11235,14 @@ dir = 1; pixel_y = 20 }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/dorms/south) "aQG" = ( /obj/structure/pipes/standard/simple/hidden/cyan, /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ dir = 2 }, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/dorms/south) "aQH" = ( /obj/structure/platform_decoration/strata/metal{ @@ -14006,23 +11272,16 @@ /area/strata/ag/exterior/paths/adminext) "aQP" = ( /obj/structure/platform/strata/metal, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/gen/foyer) "aQQ" = ( -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/outpost/engi) "aQR" = ( /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/outpost/engi) "aQS" = ( /obj/structure/flora/grass/tallgrass/ice/corner{ @@ -14040,60 +11299,46 @@ "aQV" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/storage/fancy/cigarettes/lady_finger, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/outpost/engi) "aQW" = ( /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/outpost/engi) "aQX" = ( /obj/structure/machinery/light/small, /obj/structure/barricade/handrail/strata{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/engi) "aQY" = ( /obj/structure/machinery/light/small, /obj/structure/barricade/handrail/strata{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/engi) "aQZ" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/storage/box/pizza, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/outpost/engi) "aRa" = ( /obj/structure/bed/chair{ dir = 8 }, /obj/effect/landmark/corpsespawner/engineer, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/outpost/engi) "aRb" = ( /obj/structure/barricade/handrail/strata{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/engi) "aRc" = ( /obj/structure/surface/table/reinforced/prison, @@ -14139,27 +11384,20 @@ /obj/structure/barricade/handrail/strata{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/outpost/admin) "aRm" = ( /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/outpost/admin) "aRn" = ( /obj/structure/barricade/wooden{ dir = 8 }, /obj/effect/landmark/corpsespawner/chef, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/canteen/bar) "aRo" = ( /obj/structure/largecrate/random, @@ -14183,19 +11421,13 @@ /area/strata/ag/interior/outpost/canteen/lower_cafeteria) "aRr" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/interior/outpost/maint/canteen_e_1) "aRs" = ( /obj/structure/barricade/wooden{ dir = 4 }, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/maint/canteen_e_1) "aRv" = ( /turf/closed/wall/strata_outpost/reinforced/hull, @@ -14204,9 +11436,7 @@ /obj/structure/machinery/landinglight/ds1/delayone{ dir = 1 }, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/strata/ag/interior/landingzone_1) "aRy" = ( /obj/structure/platform/strata/metal{ @@ -14219,17 +11449,13 @@ /obj/structure/machinery/landinglight/ds1/delayone{ dir = 1 }, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/strata/ag/interior/landingzone_1) "aRA" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/nearlz1) "aRB" = ( /obj/structure/pipes/standard/simple/hidden/cyan, @@ -14243,16 +11469,12 @@ dir = 4 }, /obj/structure/machinery/light/small, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/nearlz1) "aRD" = ( /obj/structure/pipes/standard/manifold/hidden/cyan, /obj/structure/machinery/light/small, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/nearlz1) "aRF" = ( /obj/structure/pipes/standard/manifold/hidden/cyan, @@ -14262,9 +11484,7 @@ /obj/structure/pipes/standard/manifold/hidden/cyan{ dir = 1 }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/dorms/south) "aRI" = ( /obj/structure/noticeboard{ @@ -14273,25 +11493,19 @@ /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/dorms/south) "aRJ" = ( /obj/structure/pipes/standard/manifold/hidden/cyan{ dir = 1 }, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/dorms/south) "aRK" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/dorms/south) "aRL" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ @@ -14301,10 +11515,7 @@ dir = 8; name = "\improper Airlock" }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/interior/dorms/south) "aRM" = ( /obj/structure/machinery/light/small{ @@ -14313,9 +11524,7 @@ /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 9 }, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/dorms/south) "aRO" = ( /obj/effect/decal/cleanable/blood, @@ -14344,35 +11553,26 @@ dir = 2; name = "\improper Airlock" }, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/outpost/engi) "aRZ" = ( /obj/structure/platform_decoration/strata/metal{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/outpost/engi) "aSb" = ( /obj/structure/pipes/standard/simple/hidden/cyan, /obj/structure/platform_decoration/strata/metal{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/outpost/engi) "aSc" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 6 }, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/outpost/engi) "aSd" = ( /obj/structure/pipes/vents/pump{ @@ -14381,9 +11581,7 @@ /obj/structure/barricade/handrail/strata{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/engi) "aSe" = ( /obj/structure/bed/chair{ @@ -14392,18 +11590,14 @@ /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2, /area/strata/ag/interior/outpost/engi) "aSf" = ( /obj/structure/machinery/light/small{ dir = 8 }, /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor/prison{ - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2, /area/strata/ag/interior/outpost/engi) "aSj" = ( /obj/effect/blocker/sorokyne_cold_water, @@ -14419,24 +11613,18 @@ /obj/structure/barricade/handrail/strata{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/admin) "aSl" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/storage/box/pizza, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/outpost/admin) "aSm" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/paper_bin, /obj/item/tool/pen/blue, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/outpost/admin) "aSn" = ( /obj/structure/machinery/cm_vending/sorted/medical/wall_med/limited{ @@ -14446,10 +11634,7 @@ /obj/structure/surface/rack, /obj/item/storage/box/flashbangs, /obj/item/storage/box/flashbangs, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/canteen/bar) "aSo" = ( /obj/structure/closet/firecloset/full, @@ -14459,79 +11644,50 @@ }, /obj/effect/decal/cleanable/blood/gibs/core, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/canteen/bar) "aSp" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/reagent_container/food/snacks/chawanmushi, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/outpost/canteen/bar) "aSq" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/reagent_container/food/condiment/saltshaker, /obj/item/reagent_container/food/snacks/chawanmushi, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/outpost/canteen/bar) "aSr" = ( /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/outpost/canteen/lower_cafeteria) "aSs" = ( /obj/structure/machinery/light/small, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/strata/ag/interior/outpost/canteen) "aSt" = ( /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/strata/ag/interior/outpost/canteen) "aSu" = ( /obj/structure/machinery/vending/snack, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/strata/ag/interior/outpost/canteen) "aSv" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/reagent_container/food/drinks/bottle/vodka, /obj/item/stack/medical/bruise_pack, /obj/item/device/radio, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/strata/ag/interior/outpost/canteen) "aSw" = ( /obj/structure/closet/firecloset/full, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/maint/canteen_e_1) "aSz" = ( -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/strata/ug/interior/jungle/deep/east_dorms) "aSA" = ( /obj/item/organ/eyes, @@ -14559,15 +11715,11 @@ dir = 8 }, /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/asphalt/cement{ - icon_state = "cement14" - }, +/turf/open/asphalt/cement/cement14, /area/strata/ag/interior/landingzone_1) "aSH" = ( /obj/effect/decal/cleanable/blood/oil, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/strata/ag/interior/landingzone_1) "aSJ" = ( /obj/item/lightstick/planted, @@ -14587,9 +11739,7 @@ /turf/open/auto_turf/snow/brown_base/layer2, /area/strata/ag/exterior/paths/adminext) "aSN" = ( -/turf/open/asphalt/cement{ - icon_state = "cement15" - }, +/turf/open/asphalt/cement/cement15, /area/strata/ag/interior/landingzone_1) "aSP" = ( /obj/structure/machinery/weather_siren{ @@ -14603,10 +11753,7 @@ dir = 2; name = "\improper Airlock" }, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/nearlz1) "aSR" = ( /obj/structure/machinery/weather_siren{ @@ -14616,30 +11763,20 @@ /area/strata/ag/interior/nearlz1) "aSS" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/nearlz1) "aST" = ( -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/nearlz1) "aSU" = ( /obj/structure/bookcase, /obj/item/book/manual/atmospipes, /obj/item/book/manual/engineering_guide, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/dorms/south) "aSV" = ( /obj/structure/machinery/light/small, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/dorms/south) "aSW" = ( /obj/structure/pipes/vents/pump{ @@ -14652,15 +11789,11 @@ /obj/structure/machinery/landinglight/ds2{ dir = 1 }, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/strata/ag/exterior/landingzone_2) "aSY" = ( /obj/structure/largecrate/random/case/double, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/dorms/south) "aSZ" = ( /obj/structure/surface/rack, @@ -14671,9 +11804,7 @@ /obj/item/inflatable, /obj/item/inflatable, /obj/item/tool/weldingtool, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/dorms/south) "aTb" = ( /obj/effect/decal/cleanable/blood, @@ -14700,9 +11831,7 @@ /area/strata/ag/exterior/paths/adminext) "aTk" = ( /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/prison{ - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2, /area/strata/ag/exterior/research_decks) "aTn" = ( /obj/effect/decal/cleanable/blood{ @@ -14719,18 +11848,13 @@ /obj/structure/bookcase{ icon_state = "book-5" }, -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles, /area/strata/ag/interior/outpost/gen/foyer) "aTt" = ( /obj/structure/bookcase{ icon_state = "book-5" }, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/outpost/gen/foyer) "aTu" = ( /obj/structure/bookcase{ @@ -14739,10 +11863,7 @@ /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/outpost/gen/foyer) "aTv" = ( /obj/effect/blocker/sorokyne_cold_water, @@ -14755,24 +11876,17 @@ /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22" }, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/outpost/gen/foyer) "aTz" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22" }, -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles, /area/strata/ag/interior/outpost/gen/foyer) "aTA" = ( /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/outpost/engi) "aTB" = ( /obj/structure/flora/pottedplant{ @@ -14782,9 +11896,7 @@ /obj/structure/barricade/handrail/strata{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2, /area/strata/ag/interior/outpost/engi) "aTC" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ @@ -14797,10 +11909,7 @@ dir = 4 }, /obj/structure/machinery/door/airlock/almayer/engineering/colony, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/interior/outpost/engi) "aTE" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ @@ -14819,23 +11928,17 @@ dir = 8 }, /obj/item/device/flashlight/lamp, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/outpost/admin) "aTH" = ( /obj/structure/bed/chair/office/light, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/outpost/admin) "aTI" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 5 }, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/outpost/admin) "aTK" = ( /obj/structure/bed/chair/office/light, @@ -14843,18 +11946,14 @@ /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/outpost/admin) "aTL" = ( /obj/structure/bed/chair/office/light, /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/outpost/admin) "aTM" = ( /obj/structure/pipes/standard/manifold/hidden/cyan{ @@ -14862,9 +11961,7 @@ }, /obj/structure/surface/table/reinforced/prison, /obj/item/device/flashlight/lamp, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/outpost/admin) "aTN" = ( /obj/structure/surface/table/reinforced/prison, @@ -14874,26 +11971,18 @@ }, /obj/item/paper_bin, /obj/item/tool/pen/blue, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/outpost/admin) "aTP" = ( /obj/item/tool/mop, /obj/structure/janitorialcart, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/tcomms) "aTQ" = ( /obj/structure/pipes/standard/manifold/hidden/cyan{ dir = 8 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "blue3" - }, +/turf/open/floor/strata/blue3/west, /area/strata/ag/interior/outpost/admin) "aTR" = ( /obj/effect/blocker/sorokyne_cold_water, @@ -14906,18 +11995,13 @@ /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "blue3" - }, +/turf/open/floor/strata/blue3/east, /area/strata/ag/interior/outpost/admin) "aTU" = ( /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/outpost/admin) "aTV" = ( /obj/structure/flora/grass/tallgrass/ice/corner{ @@ -14932,10 +12016,7 @@ /obj/structure/machinery/door/airlock/almayer/generic{ dir = 2 }, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/outpost/canteen/bar) "aTX" = ( /obj/structure/flora/grass/tallgrass/ice/corner{ @@ -14951,10 +12032,7 @@ /obj/structure/mirror{ pixel_y = 28 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan2" - }, +/turf/open/floor/strata/cyan2/east, /area/strata/ag/interior/outpost/canteen/bar) "aTZ" = ( /obj/effect/decal/cleanable/generic, @@ -14967,9 +12045,7 @@ dir = 4 }, /obj/effect/decal/strata_decals/catwalk/prison, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/outpost/engi/drome) "aUc" = ( /obj/structure/sign/safety/galley, @@ -14979,16 +12055,11 @@ /obj/structure/machinery/door/airlock/almayer/generic{ dir = 2 }, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/maint/canteen_e_1) "aUf" = ( /obj/effect/decal/strata_decals/catwalk/prison, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/outpost/canteen) "aUg" = ( /turf/open/gm/river, @@ -15007,9 +12078,7 @@ /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 5 }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/nearlz1) "aUp" = ( /turf/closed/wall/wood, @@ -15018,45 +12087,32 @@ /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 9 }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/nearlz1) "aUr" = ( /obj/structure/window/framed/strata, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/interior/nearlz1) "aUs" = ( /obj/effect/decal/strata_decals/catwalk/prison, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/exterior/marsh/river) "aUt" = ( /obj/effect/decal/strata_decals/catwalk/prison, /obj/structure/barricade/handrail/strata, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/exterior/marsh/river) "aUu" = ( /obj/structure/barricade/handrail/strata{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/exterior/marsh/river) "aUv" = ( /obj/structure/barricade/handrail/strata{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/exterior/marsh/river) "aUx" = ( /obj/structure/platform/strata/metal, @@ -15090,9 +12146,7 @@ /area/strata/ag/exterior/paths/cabin_area) "aUE" = ( /obj/structure/largecrate/random/barrel/yellow, -/turf/open/floor/prison{ - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2, /area/strata/ag/exterior/research_decks) "aUF" = ( /obj/structure/pipes/vents/pump{ @@ -15114,15 +12168,10 @@ start_charge = 0 }, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/interior/outpost/gen/foyer) "aUN" = ( -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/outpost/gen/foyer) "aUR" = ( /obj/structure/flora/pottedplant{ @@ -15131,10 +12180,7 @@ /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/interior/outpost/gen/foyer) "aUS" = ( /obj/structure/machinery/cm_vending/sorted/medical/wall_med/limited, @@ -15146,22 +12192,14 @@ dir = 2; name = "\improper Airlock" }, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/outpost/engi) "aUU" = ( /obj/structure/window/framed/strata, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/outpost/engi) "aUV" = ( -/turf/open/floor/prison{ - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2, /area/strata/ag/interior/outpost/engi) "aUX" = ( /obj/structure/flora/grass/tallgrass/ice/corner{ @@ -15173,9 +12211,7 @@ /obj/structure/filingcabinet, /obj/structure/barricade/handrail/strata, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/outpost/admin) "aUZ" = ( /obj/structure/surface/table/reinforced/prison, @@ -15189,9 +12225,7 @@ /obj/structure/barricade/handrail/strata, /obj/item/device/flashlight/lamp, /obj/item/storage/pill_bottle/inaprovaline/skillless, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/outpost/admin) "aVa" = ( /obj/structure/surface/table/reinforced/prison, @@ -15203,9 +12237,7 @@ dir = 4 }, /obj/structure/barricade/handrail/strata, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/outpost/admin) "aVc" = ( /obj/structure/surface/table/reinforced/prison, @@ -15219,9 +12251,7 @@ /obj/item/reagent_container/food/drinks/cans/souto/grape, /obj/structure/barricade/handrail/strata, /obj/item/device/flashlight/lamp, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/outpost/admin) "aVd" = ( /obj/structure/surface/table/reinforced/prison, @@ -15234,18 +12264,14 @@ /obj/item/paper_bin, /obj/structure/barricade/handrail/strata, /obj/item/device/flashlight/lamp, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/outpost/admin) "aVe" = ( /obj/structure/barricade/handrail/strata{ dir = 4 }, /obj/structure/barricade/handrail/strata, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/outpost/admin) "aVf" = ( /obj/structure/stairs/perspective{ @@ -15255,10 +12281,7 @@ /obj/structure/platform/strata/metal{ dir = 8 }, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/outpost/admin) "aVg" = ( /obj/structure/stairs/perspective{ @@ -15269,10 +12292,7 @@ /obj/structure/platform/strata/metal{ dir = 4 }, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/outpost/admin) "aVh" = ( /obj/structure/flora/grass/tallgrass/ice/corner{ @@ -15294,9 +12314,7 @@ dir = 8 }, /obj/structure/barricade/handrail/strata, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/outpost/admin) "aVk" = ( /obj/structure/pipes/standard/simple/hidden/cyan, @@ -15315,9 +12333,7 @@ dir = 8 }, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/outpost/admin) "aVp" = ( /obj/structure/platform/strata/metal{ @@ -15336,10 +12352,7 @@ /obj/structure/barricade/wooden{ dir = 8 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan2" - }, +/turf/open/floor/strata/cyan2/east, /area/strata/ag/interior/outpost/canteen/bar) "aVy" = ( /obj/structure/closet/secure_closet/freezer/fridge, @@ -15349,30 +12362,20 @@ /obj/item/reagent_container/food/drinks/milk, /obj/item/reagent_container/food/drinks/milk, /obj/item/reagent_container/food/drinks/milk, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan2" - }, +/turf/open/floor/strata/cyan2/east, /area/strata/ag/interior/outpost/canteen/bar) "aVz" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/reagent_container/food/snacks/flour, -/turf/open/floor/strata{ - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1, /area/strata/ag/interior/outpost/canteen/bar) "aVA" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/tool/kitchen/rollingpin, -/turf/open/floor/strata{ - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1, /area/strata/ag/interior/outpost/canteen/bar) "aVB" = ( -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan2" - }, +/turf/open/floor/strata/cyan2/east, /area/strata/ag/interior/outpost/canteen/bar) "aVD" = ( /obj/structure/pipes/standard/simple/hidden/cyan, @@ -15387,9 +12390,7 @@ /obj/structure/surface/rack, /obj/item/book/manual/barman_recipes, /obj/item/book/manual/chef_recipes, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/outpost/maint/canteen_e_1) "aVF" = ( /turf/open/floor/strata, @@ -15399,26 +12400,18 @@ color = "#6e6e6e"; icon_state = "p_stair_sn_full_cap" }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/interior/outpost/canteen) "aVH" = ( /obj/effect/decal/strata_decals/catwalk/prison, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/outpost/maint/canteen_e_1) "aVJ" = ( /obj/effect/decal/strata_decals/catwalk/prison, /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/maint/canteen_e_1) "aVK" = ( /turf/open/gm/coast/beachcorner2/south_east, @@ -15456,9 +12449,7 @@ /obj/structure/platform/strata/metal{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/nearlz1) "aVX" = ( /obj/structure/platform_decoration/strata/metal, @@ -15470,9 +12461,7 @@ /obj/structure/barricade/handrail/strata{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/exterior/marsh/river) "aVZ" = ( /turf/open/auto_turf/snow/brown_base/layer1, @@ -15512,19 +12501,13 @@ /obj/structure/barricade/handrail/strata{ dir = 8 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/exterior/marsh/river) "aWj" = ( /obj/structure/barricade/handrail/strata{ dir = 4 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/exterior/marsh/river) "aWk" = ( /obj/effect/particle_effect/steam, @@ -15581,37 +12564,25 @@ "aWB" = ( /obj/structure/closet/secure_closet/personal, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan1" - }, +/turf/open/floor/strata/cyan1/east, /area/strata/ug/interior/outpost/jung/dorms/med2) "aWE" = ( /obj/structure/closet/secure_closet/personal, /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/interior/outpost/gen/foyer) "aWF" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/gen/foyer) "aWG" = ( -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/gen/foyer) "aWH" = ( /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/gen/foyer) "aWK" = ( /obj/structure/stairs/perspective{ @@ -15619,10 +12590,7 @@ dir = 10; icon_state = "p_stair_full" }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/interior/outpost/gen/foyer) "aWL" = ( /obj/structure/pipes/standard/simple/hidden/cyan, @@ -15673,17 +12641,13 @@ /obj/structure/platform/strata/metal{ dir = 1 }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/admin) "aWW" = ( /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/outpost/admin) "aWZ" = ( /obj/structure/bed/chair{ @@ -15703,10 +12667,7 @@ /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/outpost/canteen/bar) "aXb" = ( /obj/structure/flora/grass/tallgrass/ice, @@ -15721,33 +12682,21 @@ /obj/structure/pipes/standard/manifold/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/outpost/canteen/bar) "aXd" = ( /obj/item/storage/pill_bottle/bicaridine, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/outpost/canteen/bar) "aXe" = ( /obj/structure/barricade/wooden{ dir = 4 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/outpost/canteen/bar) "aXf" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/outpost/canteen/bar) "aXg" = ( /obj/structure/surface/table/reinforced/prison, @@ -15755,9 +12704,7 @@ pixel_x = -1; pixel_y = 2 }, -/turf/open/floor/strata{ - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1, /area/strata/ag/interior/outpost/canteen/bar) "aXh" = ( /obj/structure/surface/table/reinforced/prison, @@ -15767,59 +12714,29 @@ }, /obj/item/reagent_container/food/condiment/enzyme, /obj/item/reagent_container/food/condiment/enzyme, -/turf/open/floor/strata{ - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1, /area/strata/ag/interior/outpost/canteen/bar) "aXi" = ( /obj/structure/machinery/reagentgrinder/industrial, /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan2" - }, +/turf/open/floor/strata/cyan2/east, /area/strata/ag/interior/outpost/canteen/bar) -"aXj" = ( -/obj/structure/surface/rack, -/obj/item/book/manual/engineering_singularity_safety, -/obj/structure/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, -/area/strata/ag/interior/outpost/maint/canteen_e_1) "aXk" = ( /obj/effect/decal/cleanable/blood{ layer = 3 }, /turf/open/floor/strata, /area/strata/ag/interior/outpost/maint/canteen_e_1) -"aXl" = ( -/obj/structure/surface/rack, -/obj/item/book/manual/orbital_cannon_manual, -/obj/item/book/manual/research_and_development, -/obj/item/book/manual/supermatter_engine, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, -/area/strata/ag/interior/outpost/maint/canteen_e_1) "aXn" = ( /obj/structure/sink{ dir = 1; pixel_y = -10 }, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/maint/canteen_e_1) "aXo" = ( /obj/structure/machinery/space_heater, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/maint/canteen_e_1) "aXp" = ( /turf/closed/wall/strata_outpost, @@ -15833,10 +12750,7 @@ /area/strata/ug/interior/jungle/deep/north_carp) "aXs" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/exterior/shed_five_caves) "aXt" = ( /turf/open/gm/coast/beachcorner/south_west, @@ -15849,17 +12763,13 @@ dir = 8 }, /obj/structure/platform/strata/metal, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/nearlz1) "aXw" = ( /obj/structure/platform/strata/metal{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/nearlz1) "aXx" = ( /obj/structure/machinery/power/apc{ @@ -15867,16 +12777,11 @@ pixel_x = 28; start_charge = 0 }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/nearlz1) "aXy" = ( /obj/structure/window/framed/strata, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/nearlz1) "aXB" = ( /obj/effect/decal/cleanable/blood, @@ -15961,10 +12866,7 @@ capacity = 1e+006; dir = 1 }, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/gen/bball/nest) "aYa" = ( /obj/structure/machinery/space_heater, @@ -16028,18 +12930,13 @@ /turf/open/floor/plating, /area/strata/ag/exterior/research_decks) "aYw" = ( -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/interior/outpost/gen/foyer) "aYx" = ( /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles, /area/strata/ag/interior/outpost/gen/foyer) "aYy" = ( /obj/item/lightstick/red/spoke/planted{ @@ -16056,24 +12953,17 @@ /obj/structure/prop/ice_colony/ground_wire{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "red2" - }, +/turf/open/floor/strata/red2, /area/strata/ug/interior/jungle/deep/hotsprings) "aYz" = ( /turf/closed/wall/strata_outpost/reinforced, /area/strata/ug/interior/jungle/deep/structures/res) "aYA" = ( /obj/structure/machinery/vending/security, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ug/interior/jungle/deep/structures/res) "aYB" = ( -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles, /area/strata/ag/interior/outpost/gen/foyer) "aYD" = ( /obj/structure/stairs/perspective{ @@ -16082,65 +12972,47 @@ icon_state = "p_stair_ew_full_cap"; layer = 3.5 }, -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles, /area/strata/ag/interior/outpost/gen/foyer) "aYE" = ( /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles, /area/strata/ag/interior/outpost/gen/foyer) "aYG" = ( -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/outpost/gen/foyer) "aYH" = ( /obj/effect/decal/cleanable/blood{ icon_state = "gib6" }, /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/outpost/admin) "aYI" = ( /obj/structure/pipes/standard/manifold/hidden/cyan{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/outpost/admin) "aYK" = ( /obj/structure/pipes/standard/manifold/hidden/cyan, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/admin) "aYL" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 10 }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/admin) "aYO" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/admin) "aYP" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 6 }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/admin) "aYQ" = ( /obj/item/stack/sheet/wood, @@ -16150,9 +13022,7 @@ /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 9 }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/admin) "aYT" = ( /obj/structure/stairs/perspective{ @@ -16160,19 +13030,14 @@ dir = 8; icon_state = "p_stair_full" }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/admin) "aYW" = ( /obj/item/stack/rods, /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 5 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/outpost/canteen/bar) "aYX" = ( /obj/structure/fence, @@ -16192,10 +13057,7 @@ /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/outpost/canteen/bar) "aZc" = ( /turf/open/auto_turf/snow/brown_base/layer3, @@ -16214,10 +13076,7 @@ /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/outpost/canteen/bar) "aZi" = ( /obj/structure/platform/strata/metal{ @@ -16249,17 +13108,11 @@ dir = 1; pixel_y = 25 }, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/gen/bball/nest) "aZn" = ( /obj/effect/decal/cleanable/blood/gibs/core, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/gen/bball/nest) "aZo" = ( /obj/structure/platform_decoration/strata{ @@ -16272,19 +13125,13 @@ dir = 4 }, /obj/structure/machinery/door/airlock/almayer/generic, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/interior/outpost/canteen/bar) "aZq" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/outpost/canteen/bar) "aZr" = ( /obj/item/tool/kitchen/rollingpin, @@ -16292,10 +13139,7 @@ /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/outpost/canteen/bar) "aZs" = ( /obj/structure/barricade/snow{ @@ -16307,10 +13151,7 @@ /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 10 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/outpost/canteen/bar) "aZu" = ( /obj/item/storage/box/cups, @@ -16320,10 +13161,7 @@ pixel_y = 3 }, /obj/item/book/manual/surgery, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan2" - }, +/turf/open/floor/strata/cyan2/east, /area/strata/ag/interior/outpost/canteen/bar) "aZv" = ( /turf/open/auto_turf/snow/brown_base/layer2, @@ -16333,9 +13171,7 @@ /obj/item/book/manual/engineering_construction, /obj/item/book/manual/engineering_hacking, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/outpost/maint/canteen_e_1) "aZx" = ( /turf/open/auto_turf/snow/brown_base/layer0, @@ -16347,9 +13183,7 @@ /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/outpost/maint/canteen_e_1) "aZz" = ( /obj/structure/machinery/cm_vending/sorted/medical/wall_med/limited, @@ -16380,10 +13214,7 @@ /obj/structure/machinery/door/airlock/multi_tile/almayer/comdoor/colony{ name = "\improper Airlock" }, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/maint/canteen_e_1) "aZE" = ( /obj/structure/machinery/shower, @@ -16404,28 +13235,19 @@ /obj/structure/machinery/door/window/eastright{ dir = 2 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ug/interior/outpost/jung/dorms/admin4) "aZF" = ( /obj/structure/toilet, /obj/structure/curtain/medical, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ug/interior/outpost/jung/dorms/admin4) "aZG" = ( /obj/structure/sink{ dir = 4; pixel_x = 11 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ug/interior/outpost/jung/dorms/admin4) "aZH" = ( /obj/item/stack/rods, @@ -16484,25 +13306,18 @@ dir = 8 }, /obj/structure/barricade/handrail/strata, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/exterior/marsh/river) "aZY" = ( /turf/open/auto_turf/snow/brown_base/layer1, /area/strata/ag/interior/disposals) "aZZ" = ( -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ug/interior/jungle/deep/structures/res) "baa" = ( /obj/effect/decal/cleanable/blood, /obj/structure/window/framed/strata, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/dorms/south) "bab" = ( /obj/structure/bed/chair, @@ -16519,9 +13334,7 @@ /area/strata/ug/interior/jungle/deep/tearlake) "bae" = ( /obj/structure/prop/almayer/computers/mapping_computer, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/administration) "baf" = ( /obj/structure/platform_decoration/strata{ @@ -16551,10 +13364,7 @@ "bal" = ( /obj/effect/decal/cleanable/blood, /obj/effect/decal/cleanable/blood/gibs/core, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/exterior/research_decks) "bam" = ( /obj/item/tool/wrench, @@ -16588,36 +13398,26 @@ dir = 1; name = "\improper Airlock" }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/interior/outpost/gen/foyer) "bap" = ( /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/gen/bball/nest) "baq" = ( /obj/structure/machinery/light/small, /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles, /area/strata/ag/interior/outpost/gen/foyer) "bar" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles, /area/strata/ag/interior/outpost/gen/foyer) "bas" = ( /obj/structure/machinery/light/small{ @@ -16633,10 +13433,7 @@ /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ dir = 1 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/interior/outpost/gen/foyer) "bau" = ( /obj/structure/stairs/perspective{ @@ -16647,9 +13444,7 @@ /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles, /area/strata/ag/interior/outpost/gen/foyer) "bav" = ( /obj/item/lightstick/red/planted, @@ -16665,10 +13460,7 @@ /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/outpost/engi/drome) "baC" = ( /obj/structure/flora/grass/tallgrass/ice/corner{ @@ -16708,10 +13500,7 @@ "baL" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/reagent_container/food/drinks/cans/waterbottle, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/gen/bball/nest) "baM" = ( /obj/structure/bed/chair{ @@ -16722,23 +13511,17 @@ /area/strata/ag/interior/outpost/gen/bball/nest) "baN" = ( /obj/structure/pipes/standard/manifold/hidden/cyan, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/gen/foyer) "baQ" = ( /obj/structure/pipes/standard/manifold/fourway/hidden/cyan, -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles, /area/strata/ag/interior/outpost/gen/foyer) "baR" = ( /obj/structure/pipes/standard/manifold/hidden/cyan{ dir = 1 }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/gen/foyer) "baS" = ( /obj/effect/decal/cleanable/blood{ @@ -16747,9 +13530,7 @@ /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/outpost/gen/foyer) "baT" = ( /obj/structure/platform/strata/metal{ @@ -16767,9 +13548,7 @@ /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/outpost/gen/foyer) "baX" = ( /obj/structure/barricade/handrail/strata{ @@ -16796,9 +13575,7 @@ /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/outpost/gen/foyer) "bbe" = ( /obj/structure/barricade/handrail/strata{ @@ -16808,17 +13585,13 @@ /area/strata/ag/interior/outpost/engi/drome) "bbf" = ( /obj/structure/pipes/standard/manifold/hidden/cyan, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/outpost/admin) "bbg" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 9 }, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/outpost/admin) "bbh" = ( /obj/structure/flora/grass/tallgrass/ice/corner{ @@ -16839,47 +13612,35 @@ /obj/structure/pipes/standard/manifold/hidden/cyan{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/admin) "bbl" = ( /obj/structure/bed/stool, /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/admin) "bbm" = ( /obj/structure/pipes/standard/manifold/hidden/cyan{ dir = 1 }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/admin) "bbn" = ( /obj/structure/curtain/medical, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ug/interior/jungle/deep/structures/res) "bbo" = ( /obj/structure/bed/stool, /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 9 }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/admin) "bbp" = ( /obj/structure/bed/stool, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/admin) "bbq" = ( /turf/closed/wall/strata_outpost/reinforced/hull, @@ -16896,24 +13657,15 @@ /area/strata/ag/interior/outpost/admin) "bbv" = ( /obj/structure/machinery/gibber, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan2" - }, +/turf/open/floor/strata/cyan2/east, /area/strata/ag/interior/outpost/canteen/bar) "bbw" = ( /obj/structure/kitchenspike, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan2" - }, +/turf/open/floor/strata/cyan2/east, /area/strata/ag/interior/outpost/canteen/bar) "bbx" = ( /obj/structure/closet/crate/freezer/rations, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan2" - }, +/turf/open/floor/strata/cyan2/east, /area/strata/ag/interior/outpost/canteen/bar) "bby" = ( /obj/structure/sign/safety/fridge, @@ -16924,10 +13676,7 @@ /obj/item/reagent_container/food/condiment/enzyme, /obj/item/reagent_container/food/condiment/enzyme, /obj/item/reagent_container/food/condiment/enzyme, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan2" - }, +/turf/open/floor/strata/cyan2/east, /area/strata/ag/interior/outpost/canteen/bar) "bbA" = ( /obj/effect/blocker/sorokyne_cold_water, @@ -16943,10 +13692,7 @@ /obj/structure/pipes/standard/manifold/hidden/cyan{ dir = 8 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/outpost/canteen/bar) "bbC" = ( /obj/structure/machinery/reagentgrinder, @@ -16954,10 +13700,7 @@ /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan2" - }, +/turf/open/floor/strata/cyan2/east, /area/strata/ag/interior/outpost/canteen/bar) "bbD" = ( /obj/structure/machinery/processor, @@ -16965,19 +13708,8 @@ pixel_x = -1; pixel_y = 2 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan2" - }, +/turf/open/floor/strata/cyan2/east, /area/strata/ag/interior/outpost/canteen/bar) -"bbE" = ( -/obj/structure/surface/rack, -/obj/item/book/manual/engineering_guide, -/obj/item/book/manual/engineering_particle_accelerator, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, -/area/strata/ag/interior/outpost/maint/canteen_e_1) "bbF" = ( /obj/structure/machinery/power/apc{ pixel_y = -24; @@ -16989,26 +13721,18 @@ /obj/structure/surface/rack, /obj/item/book/manual/ripley_build_and_repair, /obj/item/book/manual/surgery, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/outpost/maint/canteen_e_1) "bbI" = ( /obj/structure/machinery/light/small{ dir = 1; pixel_y = 20 }, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ug/interior/jungle/deep/east_dorms) "bbJ" = ( /obj/structure/flora/bush/ausbushes/grassybush, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ug/interior/jungle/deep/east_dorms) "bbK" = ( /obj/structure/machinery/light/small{ @@ -17031,9 +13755,7 @@ /turf/open/floor/strata, /area/strata/ug/interior/outpost/jung/dorms/admin4) "bbN" = ( -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ug/interior/outpost/jung/dorms/admin4) "bbO" = ( /turf/open/floor/strata, @@ -17042,10 +13764,7 @@ /obj/structure/machinery/door/airlock/prison{ name = "Reinforced Airlock" }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ug/interior/outpost/jung/dorms/admin4) "bbT" = ( /obj/structure/barricade/handrail/strata{ @@ -17070,9 +13789,7 @@ /obj/structure/platform/strata/metal{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/nearlz1) "bbZ" = ( /obj/structure/flora/grass/tallgrass/ice/corner, @@ -17128,9 +13845,7 @@ /obj/structure/platform/strata/metal{ dir = 1 }, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/nearlz1) "bcm" = ( /obj/item/lightstick/red/planted, @@ -17138,9 +13853,7 @@ /area/strata/ag/exterior/paths/adminext) "bco" = ( /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/nearlz1) "bcp" = ( /obj/structure/barricade/handrail/strata, @@ -17211,9 +13924,7 @@ dir = 8 }, /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/administration) "bcG" = ( /obj/structure/flora/grass/tallgrass/ice/corner{ @@ -17275,18 +13986,14 @@ /obj/structure/surface/table/reinforced/prison, /obj/item/reagent_container/food/drinks/cans/beer, /obj/item/device/radio, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ug/interior/jungle/deep/structures/res) "bcS" = ( /obj/structure/machinery/light/small{ dir = 1; pixel_y = 20 }, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ug/interior/jungle/deep/structures/res) "bcT" = ( /obj/structure/platform_decoration/strata{ @@ -17322,9 +14029,7 @@ icon_state = "p_stair_ew_full_cap"; layer = 3.5 }, -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles, /area/strata/ag/exterior/research_decks) "bcY" = ( /obj/effect/decal/cleanable/blood, @@ -17336,10 +14041,7 @@ dir = 2; name = "\improper Airlock" }, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/outpost/gen/foyer) "bdb" = ( /obj/structure/flora/pottedplant{ @@ -17353,30 +14055,21 @@ dir = 8; icon_state = "p_stair_ew_half_cap" }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/interior/outpost/gen/foyer) "bdd" = ( /obj/item/tool/crowbar, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/gen/foyer) "bde" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/gen/foyer) "bdg" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/gen/foyer) "bdi" = ( /obj/structure/bed/chair{ @@ -17391,9 +14084,7 @@ /obj/structure/surface/table/reinforced/prison, /obj/item/tool/stamp, /obj/item/storage/box/cups, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/outpost/admin) "bdl" = ( /obj/structure/floodgate, @@ -17402,9 +14093,7 @@ "bdm" = ( /obj/effect/landmark/corpsespawner/russian, /obj/structure/bed/roller, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/gen/bball) "bdn" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ @@ -17416,48 +14105,36 @@ /obj/structure/surface/table/reinforced/prison, /obj/item/storage/box/donkpockets, /obj/item/reagent_container/food/drinks/cans/souto/grape, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/outpost/admin) "bdq" = ( /obj/structure/reagent_dispensers/water_cooler, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/outpost/admin) "bds" = ( /obj/item/clipboard, /obj/item/clipboard, /obj/structure/surface/rack, /obj/item/storage/box/cups, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/outpost/admin) "bdt" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22" }, /obj/structure/machinery/light/small, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/outpost/admin) "bdu" = ( /obj/structure/surface/rack, /obj/item/storage/box/donkpockets, /obj/item/storage/box/donkpockets, /obj/item/storage/box/donkpockets, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/outpost/admin) "bdv" = ( /obj/structure/machinery/computer/crew, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/outpost/admin) "bdw" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ @@ -17572,9 +14249,7 @@ /area/strata/ag/exterior/marsh/river) "bdU" = ( /obj/item/book/manual/security_space_law, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/research_decks/security) "bdV" = ( /obj/structure/platform/strata{ @@ -17642,9 +14317,7 @@ color = "#6e6e6e"; icon_state = "p_stair_full" }, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/outpost/admin) "beh" = ( /obj/structure/stairs/perspective{ @@ -17655,9 +14328,7 @@ /obj/structure/platform/strata/metal{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/outpost/admin) "bei" = ( /obj/effect/decal/cleanable/blood/oil, @@ -17700,17 +14371,11 @@ dir = 2; name = "\improper Airlock" }, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/outpost/canteen/bar) "ber" = ( /obj/structure/window/framed/strata, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/outpost/canteen/bar) "bes" = ( /obj/structure/machinery/cm_vending/sorted/medical/wall_med/limited, @@ -17732,19 +14397,14 @@ pixel_y = 20 }, /obj/structure/barricade/handrail/strata, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ug/interior/jungle/deep/structures/res) "bey" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/computer/communications{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ug/interior/jungle/deep/structures/res) "bez" = ( /obj/structure/barricade/handrail/strata{ @@ -17759,17 +14419,12 @@ /obj/structure/window/reinforced/tinted{ dir = 1 }, -/turf/open/floor/strata{ - icon_state = "purp1" - }, +/turf/open/floor/strata/purp1, /area/strata/ug/interior/outpost/jung/dorms/admin4) "beB" = ( /obj/effect/decal/strata_decals/catwalk/prison, /obj/structure/disposalpipe/segment, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ug/interior/outpost/jung/dorms/admin4) "beD" = ( /obj/effect/spawner/random/toolbox{ @@ -17798,9 +14453,7 @@ /obj/structure/prop/ice_colony/ground_wire{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "purp2" - }, +/turf/open/floor/strata/purp2, /area/strata/ug/interior/jungle/deep/west_engi) "beG" = ( /turf/open/gm/coast/beachcorner/north_east, @@ -17854,15 +14507,11 @@ /obj/structure/bookcase{ icon_state = "book-5" }, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/administration) "beT" = ( /obj/structure/machinery/photocopier, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/administration) "beU" = ( /obj/item/clipboard, @@ -17872,16 +14521,12 @@ }, /obj/structure/surface/table/reinforced/prison, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/administration) "beV" = ( /obj/structure/machinery/faxmachine, /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/administration) "beW" = ( /obj/structure/barricade/snow{ @@ -17895,9 +14540,7 @@ }, /obj/structure/window/reinforced/tinted, /obj/item/storage/briefcase, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/administration) "beY" = ( /obj/structure/bed/chair, @@ -17968,9 +14611,7 @@ /area/strata/ag/exterior/marsh) "bfm" = ( /obj/structure/window/reinforced/tinted, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/administration) "bfn" = ( /obj/effect/decal/warning_stripes{ @@ -17979,9 +14620,7 @@ /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/outpost/gen/bball) "bfo" = ( /obj/structure/platform_decoration/strata{ @@ -18019,9 +14658,7 @@ dir = 8; icon_state = "p_stair_full" }, -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles, /area/strata/ag/exterior/research_decks) "bfv" = ( /obj/structure/machinery/weather_siren{ @@ -18051,16 +14688,11 @@ /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22" }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/interior/outpost/gen/foyer) "bfD" = ( /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/outpost/gen/foyer) "bfE" = ( /obj/structure/platform/strata/metal{ @@ -18078,10 +14710,7 @@ /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/interior/outpost/gen/foyer) "bfI" = ( /obj/structure/reagent_dispensers/water_cooler, @@ -18096,10 +14725,7 @@ dir = 2; name = "\improper Airlock" }, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/outpost/admin) "bfN" = ( /obj/structure/sign/safety/radio_rad, @@ -18109,26 +14735,17 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/outpost/admin) "bfP" = ( -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/outpost/admin) "bfQ" = ( /obj/structure/machinery/light/small{ dir = 4 }, /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/outpost/admin) "bfS" = ( /obj/structure/sign/safety/maint, @@ -18140,17 +14757,11 @@ dir = 2; name = "\improper Airlock" }, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/outpost/admin) "bfV" = ( /obj/structure/window/framed/strata, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/outpost/admin) "bfW" = ( /turf/closed/wall/strata_ice/dirty, @@ -18159,19 +14770,11 @@ /obj/structure/sign/safety/fire_haz, /turf/closed/wall/strata_outpost, /area/strata/ag/interior/outpost/admin) -"bfZ" = ( -/obj/structure/machinery/power/geothermal, -/turf/open/floor/strata{ - icon_state = "floor3" - }, -/area/strata/ag/interior/outpost/admin) "bga" = ( /obj/structure/platform/strata/metal{ dir = 1 }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/engi/drome) "bgb" = ( /obj/structure/pipes/standard/manifold/hidden/cyan{ @@ -18180,9 +14783,7 @@ /obj/structure/platform_decoration/strata/metal{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/engi/drome) "bgc" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ @@ -18191,9 +14792,7 @@ /obj/structure/platform_decoration/strata/metal{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/engi/drome) "bgd" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ @@ -18202,9 +14801,7 @@ /obj/structure/platform/strata/metal{ dir = 1 }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/engi/drome) "bge" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ @@ -18213,9 +14810,7 @@ /obj/structure/platform_decoration/strata/metal{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/engi/drome) "bgf" = ( /obj/structure/machinery/light/small{ @@ -18225,15 +14820,11 @@ /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/engi/drome) "bgg" = ( /obj/structure/pipes/standard/manifold/hidden/cyan, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/engi/drome) "bgh" = ( /turf/open/auto_turf/snow/brown_base/layer4, @@ -18275,10 +14866,7 @@ /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/interior/outpost/canteen) "bgq" = ( /obj/structure/fence, @@ -18338,19 +14926,13 @@ /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/outpost/canteen) "bgA" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 10 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/outpost/canteen) "bgB" = ( /obj/structure/platform/strata, @@ -18399,9 +14981,7 @@ dir = 1; pixel_y = 20 }, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/strata/ug/interior/jungle/platform/east/scrub) "bgM" = ( /obj/structure/pipes/standard/manifold/hidden/cyan{ @@ -18462,9 +15042,7 @@ /obj/structure/bed{ icon_state = "abed" }, -/turf/open/floor/strata{ - icon_state = "purp1" - }, +/turf/open/floor/strata/purp1, /area/strata/ug/interior/outpost/jung/dorms/admin4) "bgW" = ( /obj/effect/decal/strata_decals/catwalk/prison, @@ -18472,10 +15050,7 @@ /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ug/interior/outpost/jung/dorms/admin4) "bgX" = ( /obj/structure/tunnel, @@ -18517,19 +15092,14 @@ /obj/structure/platform/strata/metal{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/nearlz1) "bhq" = ( /obj/structure/machinery/door/airlock/almayer/medical/glass/colony{ dir = 8; name = "\improper Airlock" }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/interior/nearlz1) "bhr" = ( /obj/structure/platform/strata/metal{ @@ -18591,10 +15161,7 @@ /obj/structure/machinery/door/airlock/almayer/maint/colony{ dir = 2 }, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/administration) "bhz" = ( /obj/structure/pipes/standard/simple/hidden/cyan, @@ -18604,9 +15171,7 @@ /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/outpost/gen/bball) "bhB" = ( /obj/effect/decal/cleanable/blood/oil, @@ -18620,16 +15185,10 @@ /obj/structure/bed/chair/office/light{ dir = 8 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/administration) "bhD" = ( -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/administration) "bhE" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ @@ -18643,10 +15202,7 @@ /area/strata/ag/interior/outpost/engi/drome) "bhF" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/administration) "bhG" = ( /obj/structure/flora/pottedplant{ @@ -18656,23 +15212,17 @@ /obj/effect/decal/strata_decals/grime/grime3{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/administration) "bhH" = ( -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/administration) "bhI" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22" }, /obj/effect/decal/strata_decals/grime/grime3, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/administration) "bhJ" = ( /obj/structure/flora/grass/tallgrass/ice/corner{ @@ -18721,9 +15271,7 @@ /area/strata/ag/exterior/marsh) "bhQ" = ( /obj/structure/bed/chair, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/administration) "bhR" = ( /obj/structure/closet, @@ -18738,10 +15286,7 @@ /area/strata/ag/exterior/shed_five_caves) "bhU" = ( /obj/structure/window/framed/strata, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/interior/administration) "bhV" = ( /obj/structure/flora/pottedplant{ @@ -18767,10 +15312,7 @@ icon_state = "pottedplant_22" }, /obj/structure/machinery/light/small, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/outpost/gen/foyer) "bia" = ( /obj/item/lightstick/red/planted, @@ -18778,9 +15320,7 @@ /area/strata/ag/exterior/marsh/crash) "bib" = ( /obj/structure/inflatable/popped, -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles, /area/strata/ag/interior/outpost/gen/foyer) "bic" = ( /obj/item/lightstick/red/planted, @@ -18803,31 +15343,21 @@ "bii" = ( /obj/structure/pipes/standard/simple/hidden/cyan, /obj/structure/inflatable/popped, -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles, /area/strata/ag/interior/outpost/gen/foyer) "bij" = ( /obj/structure/machinery/vending/snack, /obj/structure/machinery/light/small, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/outpost/gen/foyer) "bik" = ( /obj/structure/machinery/vending/coffee, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/outpost/gen/foyer) "bil" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/clipboard, -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles, /area/strata/ag/interior/outpost/gen/foyer) "bim" = ( /obj/effect/decal/cleanable/blood/oil/streak, @@ -18899,16 +15429,12 @@ "biC" = ( /obj/structure/bed/roller, /obj/effect/decal/cleanable/blood/gibs/core, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/gen/bball) "biD" = ( /obj/structure/coatrack, /obj/item/clothing/suit/armor/bulletproof, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/admin) "biE" = ( /obj/structure/platform/strata/metal{ @@ -18945,9 +15471,7 @@ /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/admin) "biN" = ( /obj/structure/platform/strata, @@ -18980,10 +15504,7 @@ dir = 4 }, /obj/structure/machinery/door/airlock/almayer/maint/colony, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/admin) "biU" = ( /obj/structure/pipes/standard/manifold/hidden/cyan{ @@ -18993,45 +15514,32 @@ dir = 1; pixel_y = 20 }, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/admin) "biV" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/admin) "biW" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, /obj/structure/machinery/door/airlock/almayer/maint/colony, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/interior/outpost/admin) "biX" = ( /obj/structure/pipes/standard/manifold/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/outpost/admin) "biZ" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_10" }, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/outpost/admin) "bja" = ( /obj/structure/machinery/vending/snack, @@ -19039,15 +15547,11 @@ dir = 1; pixel_y = 20 }, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/outpost/admin) "bjb" = ( /obj/structure/machinery/vending/coffee, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/outpost/admin) "bjc" = ( /turf/open/asphalt/cement, @@ -19059,39 +15563,29 @@ /obj/structure/machinery/power/terminal{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/admin) "bjf" = ( /obj/structure/machinery/power/smes/buildable{ capacity = 1e+006; dir = 1 }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/admin) "bjg" = ( /obj/structure/machinery/light/small{ dir = 4 }, /obj/structure/largecrate/random/secure, -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles, /area/strata/ag/interior/dorms/hive) "bjh" = ( /obj/structure/pipes/vents/pump/on, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/engi/drome) "bji" = ( /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/engi/drome) "bjj" = ( /turf/open/auto_turf/ice/layer0, @@ -19111,42 +15605,29 @@ /obj/structure/prop/ice_colony/ground_wire{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "red2" - }, +/turf/open/floor/strata/red2, /area/strata/ug/interior/jungle/deep/east_carp) "bjl" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22" }, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/outpost/engi/drome) "bjn" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/outpost/engi/drome) "bjo" = ( -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/interior/outpost/canteen) "bjp" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/comdoor/colony{ dir = 1; name = "\improper Airlock" }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/outpost/canteen) "bjr" = ( /turf/open/asphalt/cement, @@ -19268,11 +15749,6 @@ }, /turf/open/auto_turf/snow/brown_base/layer2, /area/strata/ag/exterior/vanyard) -"bjT" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/fuelCell, -/turf/open/auto_turf/ice/layer1, -/area/strata/ag/interior/outpost/gen/bball/nest) "bjU" = ( /obj/structure/flora/grass/tallgrass/ice/corner{ dir = 8 @@ -19372,10 +15848,7 @@ /turf/open/auto_turf/snow/brown_base/layer1, /area/strata/ag/exterior/shed_five_caves) "bkt" = ( -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/administration) "bku" = ( /obj/structure/window/reinforced/tinted{ @@ -19385,10 +15858,7 @@ dir = 8 }, /obj/structure/window/reinforced/tinted, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/administration) "bkv" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ @@ -19406,18 +15876,13 @@ /obj/structure/pipes/standard/manifold/hidden/cyan{ dir = 1 }, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/administration) "bkx" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/administration) "bky" = ( /obj/structure/pipes/standard/manifold/hidden/cyan, @@ -19444,10 +15909,7 @@ /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/interior/administration) "bkC" = ( /obj/structure/bed/chair{ @@ -19497,9 +15959,7 @@ /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles, /area/strata/ag/exterior/research_decks) "bkL" = ( /obj/structure/flora/grass/tallgrass/ice/corner{ @@ -19513,9 +15973,7 @@ /area/strata/ag/interior/outpost/gen/foyer) "bkP" = ( /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles, /area/strata/ag/interior/outpost/med) "bkT" = ( /turf/open/auto_turf/snow/brown_base/layer1, @@ -19540,16 +15998,10 @@ /area/strata/ag/interior/mountain) "bkY" = ( /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/outpost/med) "bkZ" = ( -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/outpost/canteen/personal_storage) "bla" = ( /obj/item/lightstick/red/planted, @@ -19564,10 +16016,7 @@ /area/strata/ag/interior/outpost/gen/foyer) "bld" = ( /obj/structure/inflatable/door, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/gen/bball/nest) "ble" = ( /turf/open/auto_turf/snow/brown_base/layer0, @@ -19584,17 +16033,11 @@ /area/strata/ag/exterior/shed_five_caves) "blh" = ( /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/gen/foyer) "bli" = ( /obj/structure/machinery/disposal, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/gen/foyer) "blk" = ( /obj/structure/flora/grass/tallgrass/ice/corner{ @@ -19603,9 +16046,7 @@ /turf/open/auto_turf/snow/brown_base/layer1, /area/strata/ag/exterior/shed_five_caves) "bll" = ( -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/admin) "blm" = ( /obj/structure/flora/grass/tallgrass/ice/corner{ @@ -19726,9 +16167,7 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/exterior/paths/cabin_area) "blJ" = ( /turf/open/auto_turf/snow/brown_base/layer0, @@ -19753,9 +16192,7 @@ /turf/open/auto_turf/snow/brown_base/layer0, /area/strata/ag/exterior/paths/southresearch) "blN" = ( -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/outpost/admin) "blO" = ( /obj/structure/surface/table/reinforced/prison, @@ -19765,9 +16202,7 @@ pixel_y = 15 }, /obj/item/paper_bin, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/outpost/admin) "blP" = ( /turf/open/auto_turf/snow/brown_base/layer3, @@ -19780,37 +16215,24 @@ /area/strata/ag/interior/outpost/admin) "blR" = ( /obj/item/tool/pen/blue, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/outpost/admin) "blS" = ( /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/admin) "blT" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/admin) "blU" = ( -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/admin) "blV" = ( /obj/structure/window/framed/strata/reinforced, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/interior/outpost/admin) "blW" = ( /turf/closed/shuttle/ert{ @@ -19818,26 +16240,20 @@ }, /area/strata/ag/exterior/marsh/crash) "blX" = ( -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/outpost/admin) "blY" = ( /obj/structure/bed/chair/comfy{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/outpost/admin) "bma" = ( /obj/structure/largecrate/random/barrel/red, /turf/open/auto_turf/snow/brown_base/layer1, /area/strata/ag/exterior/marsh/crash) "bmb" = ( -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/outpost/canteen) "bmc" = ( /obj/effect/decal/cleanable/blood/oil, @@ -19849,19 +16265,13 @@ /area/strata/ag/exterior/marsh/center) "bmf" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/admin) "bml" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony{ dir = 2 }, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/outpost/engi/drome) "bmm" = ( /obj/structure/flora/grass/tallgrass/ice/corner{ @@ -19873,10 +16283,7 @@ /obj/structure/machinery/door/airlock/almayer/engineering/colony{ dir = 2 }, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/outpost/engi/drome) "bmp" = ( /turf/open/auto_turf/snow/brown_base/layer1, @@ -19895,19 +16302,13 @@ /obj/structure/machinery/camera/autoname{ dir = 8 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/outpost/canteen) "bmt" = ( /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/gen/bball/nest) "bmu" = ( /obj/structure/largecrate/random/secure, @@ -20017,9 +16418,7 @@ /area/strata/ag/exterior/marsh/crash) "bmX" = ( /obj/structure/bedsheetbin, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/outpost/canteen/personal_storage) "bmY" = ( /obj/structure/flora/grass/tallgrass/ice/corner{ @@ -20028,15 +16427,11 @@ /turf/open/auto_turf/snow/brown_base/layer2, /area/strata/ag/exterior/marsh/crash) "bmZ" = ( -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/exterior/paths/cabin_area) "bna" = ( /obj/structure/barricade/snow, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/exterior/paths/cabin_area) "bnb" = ( /obj/structure/platform_decoration/strata/metal{ @@ -20106,16 +16501,12 @@ /area/strata/ag/exterior/paths/southresearch) "bnv" = ( /obj/structure/machinery/power/port_gen/pacman/super, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/exterior/north_lz_caves) "bnw" = ( /obj/structure/closet/secure_closet/engineering_electrical, /obj/effect/landmark/objective_landmark/far, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/exterior/north_lz_caves) "bnx" = ( /obj/structure/flora/grass/tallgrass/ice/corner{ @@ -20146,10 +16537,7 @@ /area/strata/ag/exterior/paths/southresearch) "bnE" = ( /obj/structure/bed/chair/comfy, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/strata/ag/interior/outpost/canteen) "bnF" = ( /obj/structure/bed/roller, @@ -20161,18 +16549,12 @@ dir = 8; pixel_x = -11 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/administration) "bnH" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/reagent_container/food/drinks/coffee, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/strata/ag/interior/outpost/canteen) "bnI" = ( /obj/structure/surface/table/reinforced/prison, @@ -20229,10 +16611,7 @@ dir = 8 }, /obj/structure/window/reinforced/tinted, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/administration) "bnT" = ( /obj/structure/window/reinforced/tinted{ @@ -20242,18 +16621,13 @@ dir = 4 }, /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/administration) "bnU" = ( /obj/structure/bed/chair/comfy{ dir = 1 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/strata/ag/interior/outpost/canteen) "bnW" = ( /obj/effect/decal/cleanable/blood/oil, @@ -20272,9 +16646,7 @@ /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/administration) "boa" = ( /obj/structure/closet/bodybag, @@ -20342,9 +16714,7 @@ /obj/effect/decal/strata_decals/grime/grime3{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/administration) "bok" = ( /obj/structure/closet/bodybag, @@ -20375,9 +16745,7 @@ dir = 4 }, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ug/interior/jungle/deep/structures/res) "boq" = ( /obj/item/stack/medical/splint, @@ -20387,25 +16755,19 @@ "bos" = ( /obj/item/paper_bin, /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/administration) "bot" = ( /obj/structure/surface/table/reinforced/prison, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/administration) "bou" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22" }, /obj/structure/machinery/light/small, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/administration) "bov" = ( /obj/effect/decal/cleanable/blood{ @@ -20421,10 +16783,7 @@ /area/strata/ag/exterior/paths/southresearch) "box" = ( /obj/item/device/motiondetector, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/administration) "boy" = ( /obj/effect/decal/cleanable/blood{ @@ -20432,17 +16791,12 @@ }, /obj/item/weapon/harpoon, /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/administration) "boz" = ( /obj/item/storage/fancy/cigarettes/lady_finger, /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/administration) "boC" = ( /obj/structure/flora/grass/tallgrass/ice/corner{ @@ -20457,9 +16811,7 @@ dir = 8 }, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/administration) "boE" = ( /obj/structure/flora/grass/tallgrass/ice/corner{ @@ -20472,10 +16824,7 @@ dir = 8; id_tag = "mining_outpost_pump" }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/strata/ag/interior/outpost/canteen) "boG" = ( /obj/structure/platform/strata{ @@ -20506,18 +16855,13 @@ icon_state = "p_stair_full" }, /obj/structure/platform/strata/metal, -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles, /area/strata/ag/exterior/research_decks) "boL" = ( /obj/structure/platform/strata/metal{ dir = 1 }, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/gen/foyer) "boM" = ( /obj/structure/flora/grass/tallgrass/ice, @@ -20531,10 +16875,7 @@ /obj/effect/decal/cleanable/blood/gibs/down, /obj/effect/decal/cleanable/blood/splatter, /obj/item/stack/rods, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/outpost/med) "boO" = ( /obj/item/explosive/grenade/high_explosive/upp, @@ -20542,10 +16883,7 @@ /obj/effect/decal/cleanable/blood{ icon_state = "xgib2" }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/outpost/med) "boP" = ( /obj/structure/surface/rack, @@ -20553,19 +16891,13 @@ /obj/item/storage/box/gloves, /obj/item/storage/box/pillbottles, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/outpost/med) "boQ" = ( /obj/effect/decal/cleanable/blood/gibs/limb, /obj/structure/surface/rack, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/outpost/med) "boS" = ( /obj/structure/flora/grass/tallgrass/ice/corner{ @@ -20583,28 +16915,20 @@ /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 6 }, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/gen/foyer) "boV" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/gen/foyer) "boW" = ( /obj/structure/machinery/light/small{ dir = 1; pixel_y = 20 }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/strata/ag/interior/dorms/maintenance) "boX" = ( /obj/structure/platform_decoration/strata{ @@ -20616,10 +16940,7 @@ /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 9 }, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/gen/foyer) "boZ" = ( /obj/structure/platform/strata{ @@ -20656,10 +16977,7 @@ /obj/item/stack/sheet/mineral/plastic, /obj/item/stack/sheet/mineral/plastic, /obj/item/stack/sheet/mineral/plastic, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/gen/foyer) "bpf" = ( /obj/structure/flora/grass/tallgrass/ice/corner{ @@ -20690,9 +17008,7 @@ /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/outpost/canteen) "bpm" = ( /turf/open/auto_turf/snow/brown_base/layer4, @@ -20746,9 +17062,7 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/engi/drome) "bpy" = ( /obj/effect/decal/cleanable/blood/oil, @@ -20757,9 +17071,7 @@ "bpz" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/faxmachine, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/outpost/admin) "bpA" = ( /obj/structure/pipes/standard/simple/hidden/cyan, @@ -20775,28 +17087,20 @@ /area/strata/ag/exterior/paths/southresearch) "bpE" = ( /obj/item/storage/briefcase, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/admin) "bpF" = ( /obj/structure/closet/secure_closet/medical3{ req_access = null }, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/admin) "bpG" = ( /obj/structure/surface/rack, /obj/item/tank/emergency_oxygen/engi, /obj/item/tank/emergency_oxygen/engi, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/admin) "bpH" = ( /obj/structure/surface/table/reinforced/prison, @@ -20807,34 +17111,26 @@ /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 5 }, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/outpost/admin) "bpI" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/outpost/admin) "bpJ" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, /obj/effect/landmark/survivor_spawner, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/outpost/admin) "bpK" = ( /obj/structure/pipes/standard/manifold/hidden/cyan{ dir = 1 }, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/outpost/admin) "bpL" = ( /obj/structure/machinery/light/small{ @@ -20844,9 +17140,7 @@ dir = 8; id_tag = "mining_outpost_pump" }, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/outpost/admin) "bpM" = ( /obj/structure/stairs/perspective{ @@ -20855,9 +17149,7 @@ icon_state = "p_stair_full" }, /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/engi/drome) "bpN" = ( /obj/structure/stairs/perspective{ @@ -20865,9 +17157,7 @@ dir = 1; icon_state = "p_stair_full" }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/engi/drome) "bpO" = ( /obj/structure/machinery/light/small{ @@ -20878,24 +17168,17 @@ dir = 8; icon_state = "p_stair_sn_full_cap" }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/engi/drome) "bpP" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/paper_bin, /obj/item/tool/pen/blue, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/outpost/engi/drome) "bpS" = ( /obj/structure/prop/almayer/computers/sensor_computer1, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/administration) "bpT" = ( /obj/item/lightstick/red/planted, @@ -20910,19 +17193,14 @@ /obj/structure/bed/chair/office/light{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/administration) "bpX" = ( /obj/structure/closet/bombcloset, /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/outpost/engi/drome) "bpY" = ( /obj/structure/closet/secure_closet/personal, @@ -20934,10 +17212,7 @@ dir = 1; pixel_y = 25 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan1" - }, +/turf/open/floor/strata/cyan1/east, /area/strata/ug/interior/outpost/jung/dorms/med1) "bpZ" = ( /obj/effect/decal/cleanable/blood/oil, @@ -20954,10 +17229,7 @@ dir = 1; pixel_y = -10 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/outpost/engi/drome) "bqc" = ( /obj/effect/decal/cleanable/blood{ @@ -20973,19 +17245,13 @@ /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/outpost/engi/drome) "bqe" = ( /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/outpost/engi/drome) "bqf" = ( /turf/open/auto_turf/strata_grass/layer0_mud, @@ -20998,10 +17264,7 @@ /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/outpost/canteen) "bqo" = ( /obj/structure/pipes/standard/simple/hidden/cyan, @@ -21119,9 +17382,7 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ug/interior/jungle/deep/minehead) "bqZ" = ( /obj/structure/flora/grass/tallgrass/ice/corner{ @@ -21152,10 +17413,7 @@ /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ug/interior/outpost/jung/dorms/med1) "bre" = ( /obj/structure/flora/grass/tallgrass/ice/corner{ @@ -21173,9 +17431,7 @@ "brg" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /obj/structure/pipes/vents/pump/on, -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles, /area/strata/ag/interior/dorms/hive) "brh" = ( /obj/structure/pipes/standard/simple/hidden/cyan, @@ -21196,9 +17452,7 @@ /turf/open/auto_turf/snow/brown_base/layer4, /area/strata/ag/exterior/paths/southresearch) "brn" = ( -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/strata/ag/exterior/north_lz_caves) "bro" = ( /obj/item/storage/box/masks{ @@ -21220,10 +17474,7 @@ "brr" = ( /obj/structure/closet, /obj/effect/landmark/objective_landmark/far, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/administration) "brs" = ( /obj/structure/surface/table/reinforced/prison, @@ -21233,16 +17484,11 @@ /obj/structure/window/reinforced/tinted, /obj/item/device/flashlight/lamp, /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/administration) "bru" = ( /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/administration) "brv" = ( /obj/effect/decal/strata_decals/catwalk/prison, @@ -21251,19 +17497,14 @@ "brw" = ( /obj/structure/filingcabinet, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/administration) "brx" = ( /obj/effect/decal/cleanable/blood{ icon_state = "gib6" }, /obj/structure/machinery/door/airlock/multi_tile/almayer/generic, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/administration) "bry" = ( /obj/structure/flora/grass/tallgrass/ice/corner{ @@ -21272,10 +17513,7 @@ /turf/open/auto_turf/snow/brown_base/layer2, /area/strata/ag/exterior/paths/southresearch) "brB" = ( -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/gen/foyer) "brC" = ( /obj/structure/flora/grass/tallgrass/ice/corner, @@ -21283,10 +17521,7 @@ /area/strata/ag/exterior/paths/southresearch) "brD" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/gen/foyer) "brE" = ( /obj/structure/platform/strata{ @@ -21347,9 +17582,7 @@ /area/strata/ag/exterior/paths/southresearch) "brS" = ( /obj/structure/machinery/light/small, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/strata/ag/interior/dorms/maintenance) "brT" = ( /obj/structure/prop/power_transformer, @@ -21414,17 +17647,11 @@ /area/strata/ag/exterior/marsh/center) "bsk" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/outpost/med) "bsl" = ( /obj/effect/decal/cleanable/blood/gibs/core, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/outpost/med) "bsm" = ( /obj/structure/flora/grass/tallgrass/ice/corner{ @@ -21444,25 +17671,18 @@ /obj/structure/machinery/door/airlock/almayer/maint/colony{ dir = 2 }, -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles, /area/strata/ag/interior/dorms/maintenance) "bsp" = ( /obj/structure/prop/ice_colony/tiger_rug{ layer = 2.1 }, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/outpost/engi/drome) "bsq" = ( /obj/effect/decal/cleanable/blood/splatter, /obj/item/stack/rods, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/outpost/med) "bsr" = ( /obj/structure/platform_decoration/strata/metal{ @@ -21472,40 +17692,26 @@ /area/strata/ag/exterior/paths/southresearch) "bss" = ( /obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/tcomms) "bst" = ( /obj/effect/decal/cleanable/blood/splatter, /obj/structure/machinery/door/airlock/almayer/medical/colony, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/interior/outpost/med) "bsu" = ( /obj/structure/platform_decoration/strata/metal, /turf/open/auto_turf/snow/brown_base/layer0, /area/strata/ag/exterior/paths/southresearch) "bsv" = ( -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan3" - }, +/turf/open/floor/strata/white_cyan3/west, /area/strata/ag/interior/outpost/med) "bsw" = ( /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan3" - }, +/turf/open/floor/strata/white_cyan3/east, /area/strata/ag/interior/outpost/med) "bsx" = ( /obj/structure/machinery/cm_vending/sorted/medical/wall_med/limited, -/obj/structure/machinery/cm_vending/sorted/medical/wall_med/limited, -/obj/structure/machinery/cm_vending/sorted/medical/wall_med/limited, /turf/closed/wall/strata_outpost, /area/strata/ag/interior/outpost/gen/foyer) "bsy" = ( @@ -21513,10 +17719,7 @@ /obj/structure/machinery/door/airlock/almayer/maint/colony{ dir = 2 }, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/outpost/gen/foyer) "bsz" = ( /obj/structure/sign/safety/maint, @@ -21526,41 +17729,29 @@ /obj/structure/machinery/door/airlock/almayer/maint/colony{ dir = 2 }, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/gen/foyer) "bsB" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony{ dir = 2 }, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/admin) "bsC" = ( /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/admin) "bsD" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/admin) "bsG" = ( /obj/structure/bookcase{ icon_state = "book-5" }, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/outpost/admin) "bsH" = ( /obj/structure/surface/table/reinforced/prison, @@ -21569,33 +17760,25 @@ pixel_y = 6 }, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/outpost/admin) "bsI" = ( /obj/structure/bed/chair/comfy{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/outpost/admin) "bsJ" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 5 }, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/outpost/admin) "bsK" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/outpost/admin) "bsM" = ( /obj/structure/platform/strata/metal, @@ -21611,10 +17794,7 @@ /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/engi/drome) "bsP" = ( /obj/structure/reagent_dispensers/watertank, @@ -21641,10 +17821,7 @@ /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/gen/bball/nest) "bsT" = ( /obj/structure/platform/strata{ @@ -21679,9 +17856,7 @@ /obj/structure/pipes/standard/manifold/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/outpost/engi/drome) "bsZ" = ( /obj/structure/platform_decoration/strata{ @@ -21803,9 +17978,7 @@ /obj/structure/bed/nest, /obj/effect/decal/cleanable/blood/gibs/core, /obj/effect/landmark/corpsespawner/miner, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ug/interior/jungle/deep/minehead) "btA" = ( /obj/structure/flora/grass/tallgrass/ice/corner, @@ -21819,9 +17992,7 @@ /area/strata/ag/exterior/marsh/crash) "btC" = ( /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/outpost/engi/drome) "btE" = ( /obj/structure/bed/chair{ @@ -21830,9 +18001,7 @@ /turf/open/auto_turf/strata_grass/layer1, /area/strata/ug/interior/jungle/platform/east/scrub) "btG" = ( -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/outpost/engi/drome) "btH" = ( /obj/structure/bed/chair{ @@ -21845,9 +18014,7 @@ /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/outpost/engi/drome) "btJ" = ( /obj/structure/surface/table/reinforced/prison, @@ -21858,10 +18025,7 @@ pixel_y = 12 }, /obj/item/stack/sheet/metal/medium_stack, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ug/interior/jungle/platform/east/scrub) "btK" = ( /obj/structure/flora/bush/ausbushes/ppflowers, @@ -21877,9 +18041,7 @@ /obj/structure/barricade/handrail/strata{ dir = 4 }, -/turf/open/asphalt/cement{ - icon_state = "cement15" - }, +/turf/open/asphalt/cement/cement15, /area/strata/ug/interior/jungle/platform/east/scrub) "btN" = ( /obj/structure/platform/strata/metal{ @@ -21894,15 +18056,11 @@ /area/strata/ug/interior/jungle/deep/east_dorms) "btT" = ( /obj/structure/machinery/light/small, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/nearlz1) "btU" = ( /obj/structure/closet, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/nearlz1) "btV" = ( /obj/structure/surface/rack, @@ -21951,19 +18109,13 @@ /area/strata/ag/exterior/marsh/crash) "buc" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/gen/bball/nest) "bud" = ( /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/gen/bball/nest) "bue" = ( /obj/effect/decal/cleanable/blood/oil, @@ -22042,9 +18194,7 @@ reason = "Visitor" }, /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/administration) "buz" = ( /obj/effect/decal/cleanable/blood/gibs/body, @@ -22116,26 +18266,17 @@ /area/strata/ag/interior/administration) "buP" = ( /obj/structure/machinery/disposal, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/administration) "buQ" = ( /obj/structure/bookcase{ icon_state = "book-5" }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/administration) "buR" = ( /obj/structure/bookcase, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/administration) "buS" = ( /obj/effect/decal/cleanable/generic, @@ -22144,58 +18285,39 @@ "buT" = ( /obj/effect/landmark/corpsespawner/bridgeofficer, /obj/effect/decal/cleanable/blood, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/administration) "buU" = ( /obj/item/stack/rods, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/outpost/med) "buV" = ( /obj/effect/decal/cleanable/blood{ icon_state = "xgib4" }, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/outpost/med) "buW" = ( /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan3" - }, +/turf/open/floor/strata/white_cyan3/west, /area/strata/ag/interior/outpost/med) "buX" = ( /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ag/interior/outpost/med) "buY" = ( /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ag/interior/outpost/med) "buZ" = ( /obj/structure/machinery/door/airlock/almayer/medical/colony{ dir = 8 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/interior/outpost/med) "bvb" = ( /obj/structure/noticeboard{ @@ -22205,25 +18327,19 @@ /obj/structure/bookcase{ icon_state = "book-5" }, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ag/interior/outpost/med) "bvc" = ( /obj/effect/spawner/random/toolbox, /obj/structure/closet/secure_closet/personal, /obj/item/storage/pill_bottle/kelotane, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ag/interior/outpost/med) "bvd" = ( /obj/structure/machinery/camera/autoname{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ag/interior/outpost/med) "bve" = ( /obj/structure/displaycase, @@ -22231,39 +18347,28 @@ /area/strata/ag/interior/outpost/admin) "bvf" = ( /obj/structure/lamarr, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/admin) "bvh" = ( /obj/structure/sink{ dir = 8; pixel_x = -11 }, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ag/interior/outpost/med) "bvj" = ( /obj/structure/filingcabinet, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan1" - }, +/turf/open/floor/strata/cyan1/east, /area/strata/ag/interior/outpost/med) "bvk" = ( /obj/structure/reagent_dispensers/water_cooler, /obj/structure/machinery/light/small, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/outpost/admin) "bvl" = ( /obj/structure/machinery/vending/cigarette/colony, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/outpost/admin) "bvn" = ( /obj/structure/flora/grass/tallgrass/ice/corner{ @@ -22285,10 +18390,7 @@ /obj/item/ammo_magazine/rifle/type71, /obj/item/ammo_magazine/rifle/type71, /obj/effect/landmark/wo_supplies/storage/belts/m41abelt, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/gen/bball/nest) "bvu" = ( /obj/structure/cargo_container/ferret/left, @@ -22357,9 +18459,7 @@ /area/strata/ag/interior/outpost/engi/drome) "bvL" = ( /obj/structure/bed/chair/office/light, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/outpost/engi/drome) "bvM" = ( /obj/item/lightstick/red/planted, @@ -22490,17 +18590,13 @@ /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22" }, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/outpost/engi/drome) "bwo" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/device/radio, /obj/item/tool/pen/blue, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/outpost/engi/drome) "bwp" = ( /turf/closed/wall/strata_outpost/reinforced/hull, @@ -22509,10 +18605,7 @@ /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22" }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/outpost/canteen) "bwr" = ( /obj/structure/platform/strata{ @@ -22551,10 +18644,7 @@ /obj/structure/machinery/sensortower{ pixel_x = -8 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ug/interior/jungle/platform/east/scrub) "bwA" = ( /obj/structure/flora/grass/tallgrass/ice/corner{ @@ -22587,9 +18677,7 @@ icon_state = "p_stair_ew_full_cap"; layer = 3.5 }, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/strata/ug/interior/jungle/platform/east/scrub) "bwH" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, @@ -22628,10 +18716,7 @@ /area/strata/ag/exterior/nearlz2) "bwR" = ( /obj/structure/inflatable/door, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/gen/bball) "bwT" = ( /obj/structure/platform/strata{ @@ -22731,15 +18816,11 @@ /area/strata/ag/exterior/nearlz2) "bxl" = ( /obj/effect/decal/cleanable/cobweb2, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ug/interior/jungle/deep/minehead) "bxm" = ( /obj/structure/largecrate/random/secure, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ug/interior/jungle/deep/minehead) "bxn" = ( /obj/structure/machinery/power/apc{ @@ -22747,9 +18828,7 @@ pixel_y = 25 }, /obj/structure/kitchenspike, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ug/interior/jungle/deep/minehead) "bxo" = ( /obj/item/lightstick/red/planted, @@ -22758,9 +18837,7 @@ "bxr" = ( /obj/structure/surface/rack, /obj/item/weapon/gun/rifle/type71/carbine, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/administration) "bxs" = ( /obj/effect/decal/strata_decals/catwalk/prison, @@ -22776,10 +18853,7 @@ /obj/structure/machinery/camera/autoname{ dir = 4 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/administration) "bxy" = ( /turf/open/auto_turf/snow/brown_base/layer4, @@ -22812,16 +18886,10 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/administration) "bxF" = ( -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/interior/administration) "bxG" = ( /obj/structure/platform/strata{ @@ -22840,9 +18908,7 @@ /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2, /area/strata/ag/exterior/research_decks) "bxJ" = ( /obj/effect/decal/strata_decals/catwalk/prison, @@ -22858,26 +18924,17 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/outpost/med) "bxM" = ( /obj/structure/bed/chair/comfy{ dir = 4 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/outpost/med) "bxN" = ( /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/outpost/med) "bxO" = ( /obj/structure/bed/chair/comfy{ @@ -22886,10 +18943,7 @@ /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 6 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/outpost/med) "bxP" = ( /obj/effect/decal/cleanable/blood{ @@ -22898,10 +18952,7 @@ /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/outpost/med) "bxQ" = ( /obj/structure/platform/strata{ @@ -22924,19 +18975,13 @@ dir = 4 }, /obj/item/stack/rods, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/outpost/med) "bxV" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan3" - }, +/turf/open/floor/strata/white_cyan3/west, /area/strata/ag/interior/outpost/med) "bxW" = ( /obj/structure/platform/strata{ @@ -22949,10 +18994,7 @@ /area/strata/ag/exterior/nearlz2) "bxX" = ( /obj/structure/pipes/standard/manifold/hidden/cyan, -/turf/open/floor/strata{ - dir = 5; - icon_state = "white_cyan3" - }, +/turf/open/floor/strata/white_cyan3/northeast, /area/strata/ag/interior/outpost/med) "bxY" = ( /obj/structure/flora/grass/tallgrass/ice/corner{ @@ -22996,10 +19038,7 @@ /obj/structure/pipes/standard/manifold/hidden/cyan{ dir = 1 }, -/turf/open/floor/strata{ - dir = 1; - icon_state = "white_cyan3" - }, +/turf/open/floor/strata/white_cyan3/north, /area/strata/ag/interior/outpost/med) "byf" = ( /obj/structure/platform/strata{ @@ -23031,9 +19070,7 @@ /obj/effect/landmark/xeno_hive_spawn, /obj/effect/landmark/ert_spawns/groundside_xeno, /obj/effect/landmark/queen_spawn, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ug/interior/jungle/deep/structures/res) "bym" = ( /obj/structure/barricade/snow{ @@ -23068,18 +19105,13 @@ /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 9 }, -/turf/open/floor/strata{ - dir = 1; - icon_state = "white_cyan4" - }, +/turf/open/floor/strata/white_cyan4/north, /area/strata/ag/interior/outpost/med) "byF" = ( /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2, /area/strata/ag/interior/outpost/med) "byN" = ( /obj/structure/platform_decoration/strata, @@ -23112,30 +19144,22 @@ "byY" = ( /obj/item/tool/pen/blue, /obj/structure/bed/chair/office/light, -/turf/open/floor/strata{ - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2, /area/strata/ag/interior/outpost/med) "byZ" = ( /mob/living/simple_animal/cat/Runtime{ desc = "Also known as Bernie. Fond of potted plants and Space Carp flavored treats."; name = "Bernard" }, -/turf/open/floor/strata{ - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2, /area/strata/ag/interior/outpost/med) "bza" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor/strata{ - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2, /area/strata/ag/interior/outpost/med) "bzb" = ( /obj/item/clipboard, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ag/interior/outpost/med) "bzc" = ( /obj/structure/machinery/light/small{ @@ -23146,37 +19170,27 @@ pixel_x = -24; start_charge = 0 }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/admin) "bzd" = ( /obj/structure/pipes/standard/simple/hidden/cyan, /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/admin) "bzf" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22" }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan1" - }, +/turf/open/floor/strata/cyan1/east, /area/strata/ag/interior/outpost/med) "bzg" = ( /obj/structure/closet/secure_closet/medical3{ req_access = null }, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan1" - }, +/turf/open/floor/strata/cyan1/east, /area/strata/ag/interior/outpost/med) "bzh" = ( /turf/closed/wall/strata_outpost/reinforced/hull, @@ -23185,49 +19199,31 @@ /obj/structure/machinery/door/airlock/almayer/maint/colony{ dir = 2 }, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/outpost/admin) "bzl" = ( -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/outpost/engi/drome) "bzm" = ( /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/outpost/engi/drome) "bzn" = ( /obj/effect/spawner/random/toolbox, /obj/structure/surface/rack, /obj/item/device/flashlight, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/outpost/engi/drome) "bzo" = ( /obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/outpost/engi/drome) "bzp" = ( /obj/effect/decal/strata_decals/catwalk/prison, /obj/structure/disposalpipe/segment{ dir = 8 }, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/engi/drome) "bzq" = ( /obj/effect/decal/strata_decals/catwalk/prison, @@ -23238,36 +19234,26 @@ /obj/structure/pipes/standard/manifold/hidden/cyan{ dir = 8 }, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/engi/drome) "bzr" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ag/interior/outpost/engi/drome) "bzs" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, /obj/structure/machinery/door/airlock/almayer/engineering/colony, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/interior/outpost/engi/drome) "bzt" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/outpost/engi/drome) "bzx" = ( /obj/structure/machinery/power/apc{ @@ -23284,9 +19270,7 @@ /obj/structure/machinery/camera/autoname{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/outpost/engi/drome) "bzH" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, @@ -23294,10 +19278,7 @@ dir = 1; pixel_y = 20 }, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/gen/bball) "bzM" = ( /obj/structure/machinery/light/small{ @@ -23305,22 +19286,15 @@ pixel_y = 20 }, /obj/item/stack/rods, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/gen/bball) "bzN" = ( /obj/structure/machinery/space_heater, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/gen/bball) "bzR" = ( /obj/structure/pipes/standard/manifold/hidden/cyan, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/outpost/canteen) "bzV" = ( /obj/structure/flora/grass/tallgrass/ice/corner{ @@ -23341,25 +19315,18 @@ /area/strata/ag/exterior/marsh/river) "bAi" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/exterior/paths/cabin_area) "bAp" = ( /obj/structure/closet/firecloset/full, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/outpost/engi/drome) "bAq" = ( /obj/structure/sign/safety/bulkhead_door, /turf/closed/wall/strata_outpost/reinforced, /area/strata/ag/interior/nearlz1) "bAr" = ( -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ug/interior/jungle/deep/structures/res) "bAt" = ( /turf/closed/wall/strata_outpost, @@ -23410,57 +19377,41 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/administration) "bAF" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/interior/administration) "bAG" = ( /obj/effect/decal/strata_decals/grime/grime1{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/administration) "bAH" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/emails, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/administration) "bAI" = ( /obj/structure/machinery/light/small{ dir = 1; pixel_y = 20 }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/dorms) "bAJ" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 6 }, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/administration) "bAK" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/administration) "bAL" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ @@ -23469,10 +19420,7 @@ /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ dir = 1 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/interior/administration) "bAM" = ( /obj/structure/machinery/alarm{ @@ -23498,10 +19446,7 @@ /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/outpost/med) "bAS" = ( /obj/structure/prop/ice_colony/soil_net, @@ -23511,23 +19456,17 @@ /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/outpost/med) "bAW" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 9 }, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/outpost/med) "bBg" = ( /obj/effect/decal/strata_decals/catwalk/prison, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/outpost/gen/bball) "bBr" = ( /obj/structure/flora/bush/ausbushes/genericbush, @@ -23535,10 +19474,7 @@ /turf/open/auto_turf/strata_grass/layer1, /area/strata/ug/interior/jungle/deep/east_dorms) "bBB" = ( -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan4" - }, +/turf/open/floor/strata/white_cyan4/east, /area/strata/ag/interior/outpost/med) "bBN" = ( /obj/structure/flora/bush/ausbushes/grassybush{ @@ -23556,28 +19492,17 @@ dir = 4 }, /obj/effect/decal/strata_decals/catwalk/prison, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ug/interior/jungle/deep/structures/res) "bBT" = ( -/turf/open/floor/strata{ - icon_state = "white_cyan3" - }, +/turf/open/floor/strata/white_cyan3, /area/strata/ag/interior/outpost/med) "bBU" = ( /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor/strata{ - dir = 10; - icon_state = "white_cyan3" - }, +/turf/open/floor/strata/white_cyan3/southwest, /area/strata/ag/interior/outpost/med) "bBV" = ( -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan3" - }, +/turf/open/floor/strata/white_cyan3/east, /area/strata/ag/interior/outpost/med) "bBX" = ( /obj/structure/surface/table/reinforced/prison, @@ -23589,10 +19514,7 @@ /obj/structure/flora/pottedplant{ icon_state = "pottedplant_18" }, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/outpost/med) "bBY" = ( /obj/structure/surface/table/reinforced/prison, @@ -23604,10 +19526,7 @@ dir = 2 }, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/outpost/med) "bCd" = ( /obj/structure/platform/strata{ @@ -23618,18 +19537,14 @@ /area/strata/ag/exterior/marsh/water) "bCf" = ( /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor/strata{ - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2, /area/strata/ag/interior/outpost/med) "bCh" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, /obj/structure/machinery/light/small, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/dorms) "bCm" = ( /obj/structure/filingcabinet, @@ -23637,9 +19552,7 @@ dir = 1 }, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ag/interior/outpost/med) "bCn" = ( /obj/item/clothing/mask/cigarette/cigar/cohiba, @@ -23650,9 +19563,7 @@ pixel_y = 14 }, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ag/interior/outpost/med) "bCo" = ( /obj/structure/bookcase{ @@ -23661,25 +19572,17 @@ /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ag/interior/outpost/med) "bCp" = ( -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/med) "bCq" = ( -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/outpost/med) "bCt" = ( /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/med) "bCv" = ( /obj/structure/machinery/door/airlock/almayer/medical/colony{ @@ -23687,28 +19590,20 @@ id_tag = "bunker_or1"; name = "\improper Operating Room 1" }, -/turf/open/floor/strata{ - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1, /area/strata/ag/interior/outpost/med) "bCw" = ( /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/outpost/admin) "bCx" = ( /obj/structure/machinery/light/small{ dir = 1; pixel_y = 20 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/outpost/admin) "bCy" = ( /obj/structure/window/reinforced/tinted{ @@ -23718,9 +19613,7 @@ dir = 8 }, /obj/structure/window/reinforced/tinted, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/outpost/admin) "bCz" = ( /turf/closed/wall/strata_outpost, @@ -23730,25 +19623,19 @@ /obj/structure/machinery/camera/autoname{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/outpost/engi/drome) "bCH" = ( /obj/structure/pipes/standard/manifold/hidden/cyan{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/outpost/engi/drome) "bCK" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/outpost/engi/drome) "bCL" = ( /obj/effect/decal/warning_stripes{ @@ -23760,18 +19647,14 @@ /obj/structure/barricade/handrail/strata{ dir = 1 }, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/outpost/gen/bball) "bCN" = ( /obj/effect/decal/cleanable/blood/oil, /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/outpost/engi/drome) "bCP" = ( /obj/structure/window/reinforced/tinted{ @@ -23785,9 +19668,7 @@ /obj/structure/pipes/standard/manifold/hidden/cyan{ dir = 1 }, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/outpost/engi/drome) "bDl" = ( /obj/structure/prop/ice_colony/surveying_device/measuring_device{ @@ -23801,9 +19682,7 @@ /turf/closed/wall/wood, /area/strata/ug/interior/jungle/deep/minehead) "bDn" = ( -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ug/interior/jungle/deep/minehead) "bDo" = ( /obj/effect/decal/strata_decals/catwalk/prison, @@ -23811,23 +19690,15 @@ /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 9 }, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/engi/drome) "bDq" = ( /obj/structure/barricade/handrail/strata, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ug/interior/jungle/deep/structures/res) "bDr" = ( /obj/structure/machinery/photocopier, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/outpost/engi/drome) "bDs" = ( /obj/item/paper_bin, @@ -23840,49 +19711,36 @@ /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/outpost/engi/drome) "bDt" = ( /obj/structure/filingcabinet, /obj/structure/machinery/light/small, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/outpost/engi/drome) "bDv" = ( /obj/structure/machinery/power/apc{ dir = 1; pixel_y = 25 }, -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles, /area/strata/ag/interior/dorms/hive) "bDy" = ( /obj/item/storage/box/ids, /obj/structure/surface/rack, /obj/item/device/radio, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/outpost/engi/drome) "bDz" = ( /obj/structure/pipes/standard/manifold/hidden/cyan{ dir = 1 }, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/outpost/engi/drome) "bDA" = ( /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/outpost/canteen) "bDB" = ( /obj/item/trash/plate{ @@ -23941,19 +19799,14 @@ /area/strata/ug/interior/jungle/deep/east_carp) "bDT" = ( /obj/structure/fence, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/exterior/marsh/river) "bDU" = ( /obj/structure/closet/secure_closet/personal, /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan1" - }, +/turf/open/floor/strata/cyan1/east, /area/strata/ag/interior/outpost/gen/bball) "bEh" = ( /obj/structure/platform/strata{ @@ -23965,15 +19818,10 @@ /area/strata/ag/exterior/marsh/water) "bEy" = ( /obj/structure/largecrate/random, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ug/interior/jungle/deep/minehead) "bEE" = ( -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ug/interior/jungle/deep/structures/res) "bER" = ( /obj/structure/machinery/weather_siren{ @@ -24016,16 +19864,11 @@ /obj/structure/surface/rack, /obj/item/storage/firstaid/adv, /obj/item/folder/red, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/administration) "bFg" = ( /obj/item/ammo_magazine/rifle/type71, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/gen/bball/nest) "bFi" = ( /obj/effect/blocker/sorokyne_cold_water, @@ -24043,9 +19886,7 @@ icon_state = "NS-center" }, /obj/effect/decal/warning_stripes, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/outpost/gen/bball) "bFs" = ( /obj/effect/decal/warning_stripes{ @@ -24060,23 +19901,15 @@ /obj/structure/barricade/handrail/strata{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/outpost/gen/bball) "bFv" = ( -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/exterior/vanyard) "bFx" = ( /obj/structure/janitorialcart, /obj/item/tool/mop, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/canteen) "bFB" = ( /obj/structure/closet/secure_closet/personal, @@ -24085,24 +19918,17 @@ pixel_x = -24 }, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/administration) "bFC" = ( /obj/structure/noticeboard{ pixel_y = 32 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/administration) "bFF" = ( /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/administration) "bFG" = ( /turf/closed/wall/strata_ice/dirty, @@ -24117,10 +19943,7 @@ /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/administration) "bGa" = ( /obj/structure/largecrate/random/case/double, @@ -24134,20 +19957,14 @@ /area/strata/ag/interior/administration) "bGc" = ( /obj/structure/machinery/door/airlock/almayer/generic, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/interior/administration) "bGd" = ( /obj/structure/pipes/vents/pump{ dir = 8; id_tag = "mining_outpost_pump" }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "cyan3" - }, +/turf/open/floor/strata/cyan3/west, /area/strata/ag/interior/outpost/med) "bGg" = ( /obj/structure/platform/strata{ @@ -24159,10 +19976,7 @@ /area/strata/ag/exterior/marsh/water) "bGk" = ( /obj/structure/largecrate/random, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/exterior/research_decks) "bGo" = ( /obj/structure/sign/safety/bulkhead_door, @@ -24176,24 +19990,17 @@ /obj/structure/machinery/camera/autoname{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ag/interior/outpost/med) "bGr" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_21" }, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ag/interior/outpost/med) "bGs" = ( /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan3" - }, +/turf/open/floor/strata/white_cyan3/west, /area/strata/ag/interior/outpost/med) "bGx" = ( /obj/structure/surface/table/reinforced/prison, @@ -24205,53 +20012,38 @@ /obj/structure/machinery/door/window/eastright{ dir = 8 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/interior/outpost/med) "bGy" = ( /obj/structure/surface/rack, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ag/interior/outpost/med) "bGD" = ( /obj/structure/machinery/photocopier, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ag/interior/outpost/med) "bGH" = ( /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2, /area/strata/ag/interior/outpost/med) "bGJ" = ( /obj/effect/decal/warning_stripes{ icon_state = "E" }, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/outpost/gen/bball) "bGM" = ( /obj/effect/decal/warning_stripes{ icon_state = "NS-center" }, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/outpost/gen/bball) "bGO" = ( -/turf/open/floor/strata{ - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2, /area/strata/ag/interior/outpost/med) "bHj" = ( /turf/closed/wall/strata_ice/jungle, @@ -24260,17 +20052,13 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/med) "bHp" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/outpost/med) "bHq" = ( /obj/structure/pipes/standard/manifold/hidden/cyan{ @@ -24279,29 +20067,20 @@ /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/med) "bHr" = ( /obj/structure/surface/table/reinforced/prison, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ag/interior/outpost/med) "bHs" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ag/interior/outpost/med) "bHt" = ( /obj/structure/window/framed/strata/reinforced, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/dorms/maintenance) "bHy" = ( /obj/structure/machinery/optable, @@ -24309,40 +20088,27 @@ /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan1" - }, +/turf/open/floor/strata/cyan1/east, /area/strata/ag/interior/outpost/med) "bHA" = ( /obj/structure/machinery/iv_drip, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ag/interior/outpost/med) "bHB" = ( /obj/structure/machinery/bioprinter{ stored_metal = 1000 }, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ag/interior/outpost/med) "bHD" = ( /obj/structure/sink{ dir = 8; pixel_x = -11 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/outpost/admin) "bHE" = ( -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/outpost/admin) "bHF" = ( /obj/structure/window/reinforced/tinted{ @@ -24352,43 +20118,30 @@ dir = 8 }, /obj/structure/window/reinforced/tinted, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/outpost/admin) "bHH" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/computer/cameras{ dir = 1 }, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/outpost/engi/drome) "bHN" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/outpost/engi/drome) "bHP" = ( /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/outpost/engi/drome) "bHQ" = ( /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/outpost/engi/drome) "bHS" = ( /obj/effect/decal/warning_stripes{ @@ -24401,9 +20154,7 @@ icon_state = "N" }, /obj/structure/barricade/handrail/strata, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/outpost/gen/bball) "bHT" = ( /obj/effect/decal/warning_stripes{ @@ -24413,65 +20164,44 @@ icon_state = "N" }, /obj/structure/barricade/handrail/strata, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/outpost/gen/bball) "bHV" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/outpost/gen/bball) "bHW" = ( /obj/structure/surface/rack, /obj/item/stack/sheet/glass, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/outpost/engi/drome) "bHY" = ( /obj/structure/closet/secure_closet/personal, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/outpost/gen/bball) "bIb" = ( /obj/effect/decal/cleanable/ash, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/outpost/engi/drome) "bIp" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/outpost/engi/drome) "bIq" = ( /obj/effect/decal/strata_decals/catwalk/prison, /obj/structure/disposalpipe/segment, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/engi/drome) "bIr" = ( /obj/structure/pipes/standard/simple/hidden/cyan, /obj/structure/machinery/door/airlock/almayer/engineering/colony{ dir = 2 }, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/outpost/engi/drome) "bIt" = ( /obj/structure/surface/rack, @@ -24493,9 +20223,7 @@ /obj/structure/barricade/handrail/strata{ dir = 4 }, -/turf/open/asphalt/cement{ - icon_state = "cement9" - }, +/turf/open/asphalt/cement/cement9, /area/strata/ug/interior/jungle/platform/east/scrub) "bIx" = ( /obj/effect/landmark/monkey_spawn, @@ -24522,9 +20250,7 @@ /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 10 }, -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles, /area/strata/ag/interior/dorms/maintenance) "bIH" = ( /obj/structure/flora/grass/tallgrass/ice/corner{ @@ -24545,9 +20271,7 @@ /area/strata/ag/interior/dorms/maintenance) "bIL" = ( /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles, /area/strata/ag/interior/dorms/hive) "bIM" = ( /turf/closed/wall/strata_ice/dirty, @@ -24570,67 +20294,47 @@ /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 5 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/administration) "bJb" = ( /obj/structure/bedsheetbin, /obj/structure/machinery/camera/autoname{ dir = 8 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan1" - }, +/turf/open/floor/strata/cyan1/east, /area/strata/ag/interior/outpost/gen/bball) "bJc" = ( /obj/structure/pipes/standard/manifold/fourway/hidden/cyan, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/administration) "bJg" = ( /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/outpost/gen/bball) "bJx" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 9 }, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/administration) "bJy" = ( /obj/structure/reagent_dispensers/water_cooler, /obj/structure/machinery/camera/autoname{ dir = 8 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/administration) "bJz" = ( /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/outpost/canteen/personal_storage) "bJC" = ( /obj/effect/decal/cleanable/cobweb, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ug/interior/jungle/deep/minehead) "bJE" = ( /obj/structure/filingcabinet, @@ -24664,10 +20368,7 @@ /obj/structure/bookcase{ icon_state = "book-5" }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/outpost/med) "bJW" = ( /obj/structure/surface/table/reinforced/prison, @@ -24675,27 +20376,18 @@ pixel_x = 8; pixel_y = 6 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/outpost/med) "bJX" = ( /obj/structure/bed/chair/comfy{ dir = 8 }, /obj/structure/machinery/light/small, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/outpost/med) "bKa" = ( /obj/item/clipboard, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/outpost/med) "bKb" = ( /obj/structure/flora/pottedplant{ @@ -24704,10 +20396,7 @@ /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/outpost/med) "bKc" = ( /obj/structure/bed/chair{ @@ -24716,24 +20405,18 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ag/interior/outpost/med) "bKn" = ( /obj/structure/machinery/power/apc{ pixel_y = -24; start_charge = 0 }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/gen/bball) "bKp" = ( /obj/structure/machinery/light/small, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/gen/bball) "bKC" = ( /obj/structure/surface/table/reinforced/prison, @@ -24743,19 +20426,14 @@ /obj/structure/window/reinforced/tinted{ dir = 8 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/interior/outpost/med) "bKD" = ( /obj/structure/pipes/standard/simple/hidden/cyan, /obj/structure/bed/chair/office/light{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2, /area/strata/ag/interior/outpost/med) "bKK" = ( /obj/structure/disposalpipe/segment{ @@ -24774,16 +20452,12 @@ pixel_x = 7; pixel_y = 14 }, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ag/interior/outpost/med) "bKM" = ( /obj/structure/filingcabinet, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ag/interior/outpost/med) "bKN" = ( /obj/structure/blocker/forcefield/multitile_vehicles, @@ -24799,22 +20473,16 @@ desc = "Someone has crossed out the Space from Space Cleaner and written in Surgery. 'Do not remove under punishment of death!!!' is scrawled on the back."; name = "Surgery Cleaner" }, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ag/interior/outpost/med) "bKP" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 5 }, -/turf/open/floor/strata{ - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1, /area/strata/ag/interior/outpost/med) "bKR" = ( -/turf/open/floor/strata{ - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1, /area/strata/ag/interior/outpost/med) "bKS" = ( /obj/structure/filingcabinet, @@ -24822,9 +20490,7 @@ dir = 4 }, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ag/interior/outpost/med) "bKT" = ( /obj/structure/platform_decoration/strata/metal{ @@ -24838,25 +20504,19 @@ dir = 4 }, /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles, /area/strata/ag/interior/dorms/hive) "bLa" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/reagent_container/food/drinks/bottle/sake, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/outpost/admin) "bLb" = ( /turf/closed/wall/strata_outpost/reinforced, /area/strata/ag/interior/outpost/admin) "bLi" = ( /obj/structure/reagent_dispensers/water_cooler, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/outpost/engi/drome) "bLj" = ( /obj/structure/floodgate, @@ -24868,22 +20528,14 @@ dir = 8 }, /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/engi/drome) "bLo" = ( -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/outpost/engi/drome) "bLt" = ( /obj/structure/bedsheetbin, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/gen/bball) "bLz" = ( /obj/structure/flora/bush/ausbushes/ppflowers, @@ -24892,23 +20544,17 @@ "bLA" = ( /obj/item/device/radio, /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/outpost/engi/drome) "bLB" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/paper_bin, /obj/item/tool/pen/blue, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ag/interior/outpost/engi/drome) "bLC" = ( /obj/structure/closet/emcloset, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/outpost/engi/drome) "bLD" = ( /obj/structure/bed/chair{ @@ -24922,23 +20568,14 @@ dir = 1; pixel_y = 20 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/outpost/engi/drome) "bLJ" = ( /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/outpost/engi/drome) "bLK" = ( -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ug/interior/jungle/deep/structures/engi) "bLR" = ( /obj/structure/machinery/weather_siren{ @@ -24947,48 +20584,31 @@ /turf/closed/wall/strata_outpost/reinforced, /area/strata/ag/interior/mountain) "bMd" = ( -/turf/open/asphalt/cement{ - icon_state = "cement2" - }, +/turf/open/asphalt/cement/cement2, /area/strata/ag/exterior/north_lz_caves) "bMB" = ( -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/strata/ag/exterior/north_lz_caves) "bME" = ( /turf/closed/wall/strata_outpost, /area/strata/ag/interior/mountain) "bMF" = ( /obj/structure/window/framed/strata/reinforced, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/interior/outpost/canteen/personal_storage) "bMG" = ( /obj/structure/reagent_dispensers/fueltank, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/strata/ag/exterior/north_lz_caves) "bMP" = ( -/turf/open/floor/almayer{ - icon_state = "test_floor5" - }, +/turf/open/floor/almayer/test_floor5, /area/strata/ug/interior/jungle/deep/structures/res) "bMQ" = ( /obj/structure/machinery/door/airlock/almayer/generic, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ug/interior/jungle/deep/structures/res) "bMR" = ( -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ug/interior/jungle/deep/structures/res) "bMV" = ( /obj/structure/filingcabinet, @@ -24997,33 +20617,21 @@ pixel_x = -24 }, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/administration) "bMX" = ( /obj/structure/machinery/vending/snack, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/administration) "bMZ" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/reagent_container/food/snacks/meatballsoup, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan1" - }, +/turf/open/floor/strata/cyan1/east, /area/strata/ag/interior/dorms/canteen) "bNa" = ( /obj/structure/machinery/door/airlock/almayer/generic, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan2" - }, +/turf/open/floor/strata/cyan2/east, /area/strata/ag/interior/dorms/canteen) "bNh" = ( /obj/structure/barricade/handrail/strata, @@ -25045,10 +20653,7 @@ dir = 1; pixel_y = 25 }, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/exterior/research_decks) "bNq" = ( /obj/structure/sign/safety/bulkhead_door, @@ -25079,10 +20684,7 @@ /area/strata/ag/interior/mountain) "bOh" = ( /obj/structure/barricade/handrail/strata, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ug/interior/jungle/deep/structures/res) "bOj" = ( /obj/effect/decal/strata_decals/catwalk/prison, @@ -25103,31 +20705,22 @@ pixel_x = -24; start_charge = 0 }, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ag/interior/outpost/med) "bOq" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles, /area/strata/ag/interior/dorms/maintenance) "bOs" = ( -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan2" - }, +/turf/open/floor/strata/cyan2/east, /area/strata/ag/interior/dorms/canteen) "bOt" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 5 }, -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles, /area/strata/ag/interior/dorms/maintenance) "bOv" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ @@ -25135,24 +20728,16 @@ }, /obj/effect/decal/strata_decals/catwalk/prison, /obj/structure/disposalpipe/segment, -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles, /area/strata/ag/interior/dorms/maintenance) "bOw" = ( /obj/item/tool/pen/blue, /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan3" - }, +/turf/open/floor/strata/white_cyan3/west, /area/strata/ag/interior/outpost/med) "bOx" = ( /obj/item/clipboard, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan1" - }, +/turf/open/floor/strata/cyan1/east, /area/strata/ag/interior/outpost/med) "bOz" = ( /obj/structure/surface/table/reinforced/prison, @@ -25161,23 +20746,15 @@ }, /obj/item/storage/pill_bottle/antitox/skillless, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/interior/outpost/med) "bOA" = ( /obj/structure/machinery/photocopier, /obj/structure/machinery/light/small, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ag/interior/outpost/med) "bOE" = ( -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/outpost/med) "bOF" = ( /obj/item/book/manual/surgery, @@ -25185,16 +20762,11 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ag/interior/outpost/med) "bOG" = ( /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan1" - }, +/turf/open/floor/strata/cyan1/east, /area/strata/ag/interior/outpost/med) "bOH" = ( /obj/structure/machinery/door_control{ @@ -25208,17 +20780,13 @@ dir = 4 }, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ag/interior/outpost/med) "bOV" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/comdoor/colony{ name = "\improper Airlock" }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/gen/bball) "bOZ" = ( /obj/structure/flora/grass/tallgrass/ice/corner{ @@ -25228,9 +20796,7 @@ /area/strata/ag/exterior/paths/north_outpost) "bPe" = ( /obj/structure/machinery/vending/coffee, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/outpost/engi/drome) "bPf" = ( /turf/closed/wall/strata_outpost, @@ -25239,9 +20805,7 @@ /obj/structure/bed/chair/office/dark{ dir = 1 }, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ug/interior/jungle/deep/structures/res) "bPo" = ( /turf/closed/shuttle/ert{ @@ -25252,40 +20816,26 @@ /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/outpost/engi/drome) "bPr" = ( /obj/structure/largecrate/random, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/outpost/engi/drome) "bPs" = ( /turf/open/floor/strata, /area/strata/ag/interior/dorms) "bPt" = ( -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ag/interior/outpost/engi/drome) "bPu" = ( /obj/structure/machinery/vending/coffee, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan2" - }, +/turf/open/floor/strata/cyan2/east, /area/strata/ag/interior/dorms/canteen) "bPv" = ( /obj/item/tool/kitchen/knife/butcher, /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan2" - }, +/turf/open/floor/strata/cyan2/east, /area/strata/ag/interior/dorms/canteen) "bPy" = ( /obj/structure/flora/grass/ice/brown/snowgrassbb_3, @@ -25295,51 +20845,36 @@ /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 6 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/outpost/engi/drome) "bPX" = ( /obj/structure/closet/secure_closet/personal, /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/outpost/canteen/personal_storage) "bPY" = ( /obj/structure/closet/secure_closet/personal, /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2, /area/strata/ag/interior/outpost/canteen/personal_storage) "bPZ" = ( -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/canteen/personal_storage) "bQa" = ( /obj/structure/pipes/standard/manifold/hidden/cyan{ dir = 1 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/outpost/engi/drome) "bQg" = ( /obj/structure/bed/chair/dropship/passenger{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/strata/ug/interior/jungle/deep/structures/res) "bQi" = ( /turf/closed/shuttle/ert{ @@ -25355,10 +20890,7 @@ /area/strata/ug/interior/jungle/deep/structures/res) "bQp" = ( /obj/structure/pipes/standard/manifold/hidden/cyan, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/outpost/engi/drome) "bQq" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ @@ -25367,20 +20899,14 @@ /obj/structure/machinery/camera/autoname{ dir = 8 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/outpost/engi/drome) "bQs" = ( /obj/structure/machinery/light/small{ dir = 1; pixel_y = 20 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/strata/ag/interior/dorms/canteen) "bQu" = ( /obj/structure/prop/structure_lattice{ @@ -25392,9 +20918,7 @@ pixel_x = -5; pixel_y = 16 }, -/turf/open/floor/strata{ - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1, /area/strata/ag/interior/dorms/maintenance) "bQv" = ( /obj/item/stack/sandbags, @@ -25402,10 +20926,7 @@ dir = 1; pixel_y = 20 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/strata/ag/interior/dorms/canteen) "bQA" = ( /obj/effect/landmark/xeno_spawn, @@ -25413,22 +20934,14 @@ /area/strata/ug/interior/jungle/deep/east_carp) "bQS" = ( /obj/item/stool, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/outpost/canteen/personal_storage) "bQT" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/canteen/personal_storage) "bQU" = ( -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/canteen/personal_storage) "bRb" = ( /obj/effect/blocker/sorokyne_cold_water, @@ -25438,9 +20951,7 @@ /turf/open/gm/river, /area/strata/ag/exterior/marsh) "bRe" = ( -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/strata/ag/exterior/north_lz_caves) "bRf" = ( /turf/open/asphalt/cement, @@ -25465,54 +20976,36 @@ /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22" }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/administration) "bRs" = ( /obj/structure/machinery/cm_vending/sorted/marine_food, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan2" - }, +/turf/open/floor/strata/cyan2/east, /area/strata/ag/interior/dorms/canteen) "bRu" = ( /obj/structure/machinery/vending/coffee, /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/administration) "bRw" = ( /obj/structure/surface/rack, /obj/item/stack/folding_barricade, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/research_decks/security) "bRT" = ( /obj/item/weapon/gun/rifle/type71/carbine, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ug/interior/jungle/deep/structures/res) "bRU" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ dir = 2 }, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ug/interior/jungle/deep/structures/res) "bRY" = ( -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/strata/ag/interior/dorms/maintenance) "bRZ" = ( /obj/structure/machinery/light/small{ @@ -25521,10 +21014,7 @@ /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 6 }, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/exterior/research_decks) "bSa" = ( /obj/effect/decal/strata_decals/catwalk/prison, @@ -25538,19 +21028,13 @@ /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 9 }, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/exterior/research_decks) "bSv" = ( /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/canteen/personal_storage) "bSD" = ( /obj/effect/decal/strata_decals/catwalk/prison, @@ -25565,103 +21049,69 @@ /obj/structure/barricade/handrail/strata{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2, /area/strata/ag/exterior/research_decks) "bSF" = ( /obj/structure/barricade/handrail/strata{ dir = 8 }, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ug/interior/jungle/deep/structures/res) "bSG" = ( /obj/structure/barricade/handrail/strata{ dir = 4 }, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ug/interior/jungle/deep/structures/res) "bSI" = ( /obj/structure/surface/table/reinforced/prison, /obj/effect/spawner/random/toolbox, /obj/effect/spawner/random/toolbox, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/exterior/research_decks) "bSJ" = ( /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/dorms) "bSN" = ( /obj/structure/surface/rack, /obj/item/storage/box/gloves, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/med) "bST" = ( /obj/item/storage/briefcase, /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan3" - }, +/turf/open/floor/strata/white_cyan3/west, /area/strata/ag/interior/outpost/med) "bTa" = ( /obj/structure/window/framed/strata/reinforced, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/interior/research_decks/security) "bTb" = ( /obj/structure/platform/strata/metal{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2, /area/strata/ag/exterior/research_decks) "bTk" = ( /obj/structure/machinery/light/small, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/exterior/paths/north_outpost) "bTl" = ( -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/exterior/paths/north_outpost) "bTp" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 5 }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/canteen/personal_storage) "bTr" = ( /obj/item/stool, /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 10 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/outpost/canteen/personal_storage) "bTD" = ( /obj/structure/sign/nosmoking_1, @@ -25669,14 +21119,10 @@ /area/strata/ag/interior/outpost/med) "bTE" = ( /obj/structure/bed/chair, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ag/interior/outpost/med) "bTF" = ( -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ag/interior/outpost/med) "bTG" = ( /obj/structure/machinery/light/small{ @@ -25684,9 +21130,7 @@ pixel_y = 20 }, /obj/structure/bed/chair, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ag/interior/outpost/med) "bTS" = ( /obj/structure/flora/grass/tallgrass/ice/corner{ @@ -25707,25 +21151,16 @@ dir = 4 }, /obj/effect/landmark/corpsespawner/russian, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ug/interior/jungle/deep/structures/res) "bUn" = ( /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ug/interior/jungle/deep/structures/res) "bUo" = ( -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ug/interior/jungle/deep/structures/res) "bUp" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ @@ -25734,74 +21169,52 @@ /obj/structure/flora/pottedplant{ icon_state = "pottedplant_21" }, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ag/interior/outpost/med) "bUq" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/dorms) "bUs" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/strata/ag/interior/dorms/canteen) "bUt" = ( /obj/structure/pipes/standard/manifold/hidden/cyan, /obj/structure/machinery/light/small, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/strata/ag/interior/dorms/canteen) "bUu" = ( /obj/structure/pipes/standard/manifold/hidden/cyan{ dir = 1 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/strata/ag/interior/dorms/canteen) "bUv" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ag/interior/outpost/med) "bUx" = ( /obj/structure/pipes/standard/simple/hidden/cyan, /obj/structure/platform/strata/metal{ dir = 8 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/exterior/research_decks) "bUF" = ( -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ug/interior/jungle/deep/minehead) "bUI" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 9 }, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ag/interior/outpost/med) "bUJ" = ( /obj/structure/sign/safety/maint, @@ -25811,31 +21224,21 @@ /obj/structure/bookcase{ icon_state = "book-5" }, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ag/interior/outpost/med) "bUL" = ( /obj/structure/machinery/vending/cola, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/dorms) "bUM" = ( /obj/structure/machinery/cm_vending/sorted/boozeomat, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/dorms) "bUO" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony{ dir = 2 }, -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles, /area/strata/ag/interior/dorms/canteen) "bUU" = ( /obj/structure/surface/rack, @@ -25851,9 +21254,7 @@ pixel_x = 6; pixel_y = -4 }, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/research_decks/security) "bUV" = ( /obj/structure/surface/rack, @@ -25861,9 +21262,7 @@ /obj/structure/machinery/camera/autoname{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/research_decks/security) "bUX" = ( /obj/structure/blocker/forcefield/multitile_vehicles, @@ -25874,79 +21273,56 @@ /obj/item/storage/firstaid/adv, /obj/item/reagent_container/spray/pepper, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/research_decks/security) "bUZ" = ( /obj/structure/pipes/vents/pump/on, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/research_decks/security) "bVa" = ( /obj/structure/bed/chair/office/light{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/research_decks/security) "bVc" = ( /obj/structure/pipes/standard/simple/hidden/cyan, /obj/structure/platform/strata/metal{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2, /area/strata/ag/exterior/research_decks) "bVd" = ( /obj/effect/decal/cleanable/blood{ icon_state = "xgib6" }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/exterior/research_decks) "bVf" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/computer/cameras{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/research_decks/security) "bVn" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/paper_bin, /obj/structure/barricade/handrail/strata, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/outpost/security) "bVo" = ( /obj/structure/barricade/handrail/strata, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/outpost/security) "bVr" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/comdoor/colony{ name = "\improper Airlock" }, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/outpost/canteen/lower_cafeteria) "bVs" = ( -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/outpost/canteen/lower_cafeteria) "bVw" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ @@ -25965,17 +21341,13 @@ "bVF" = ( /obj/structure/closet/secure_closet/medical2, /obj/item/clothing/gloves/latex, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ag/interior/outpost/med) "bVL" = ( /obj/structure/surface/rack, /obj/item/storage/box/condimentbottles, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/engi) "bVM" = ( /obj/effect/decal/strata_decals/catwalk/prison, @@ -25993,9 +21365,7 @@ dir = 1; pixel_y = 20 }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/security) "bVV" = ( /obj/structure/machinery/weather_siren{ @@ -26012,20 +21382,14 @@ /area/strata/ag/exterior/north_lz_caves) "bWc" = ( /obj/item/stack/sandbags, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/outpost/canteen/personal_storage) "bWd" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/comdoor/colony{ dir = 1; name = "\improper Airlock" }, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/canteen/personal_storage) "bWe" = ( /obj/item/lightstick/red/spoke/planted{ @@ -26042,24 +21406,17 @@ /obj/structure/prop/ice_colony/ground_wire{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "red2" - }, +/turf/open/floor/strata/red2, /area/strata/ug/interior/jungle/deep/minehead) "bWi" = ( /obj/structure/largecrate/random, /obj/item/storage/belt/shotgun, /obj/item/storage/backpack/lightpack, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/dorms) "bWk" = ( /obj/structure/machinery/space_heater, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/engi/drome) "bWl" = ( /obj/structure/pipes/standard/simple/hidden/cyan, @@ -26072,43 +21429,30 @@ /obj/item/storage/box/lightstick, /obj/item/storage/box/lightstick, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/engi) "bWw" = ( /obj/structure/closet/secure_closet/engineering_personal, /obj/item/storage/pill_bottle/spaceacillin, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/outpost/engi/drome) "bWx" = ( /obj/structure/closet/secure_closet/engineering_personal, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/outpost/engi/drome) "bWy" = ( -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/dorms) "bWB" = ( /obj/structure/machinery/vending/snack, /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/outpost/engi/drome) "bWD" = ( /obj/structure/largecrate/random/barrel/white, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/exterior/paths/north_outpost) "bWH" = ( /obj/structure/platform_decoration/strata/metal{ @@ -26120,36 +21464,25 @@ /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/security) "bWM" = ( /obj/structure/bookcase{ icon_state = "book-5" }, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/outpost/security) "bWN" = ( /turf/closed/wall/strata_outpost, /area/strata/ag/interior/outpost/canteen/lower_cafeteria) "bWZ" = ( -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/interior/outpost/engi/drome) "bXa" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ dir = 2 }, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ug/interior/jungle/deep/structures/res) "bXc" = ( /obj/effect/decal/strata_decals/catwalk/prison, @@ -26157,9 +21490,7 @@ dir = 8 }, /obj/structure/largecrate/random/case/small, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/exterior/marsh/river) "bXd" = ( /obj/effect/decal/strata_decals/catwalk/prison, @@ -26186,27 +21517,17 @@ /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/interior/dorms) "bXi" = ( -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/strata/ag/exterior/research_decks) "bXj" = ( /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/strata/ag/exterior/research_decks) "bXq" = ( -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/engi) "bXv" = ( /obj/structure/bed/chair{ @@ -26215,15 +21536,11 @@ /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/outpost/security) "bXw" = ( /obj/structure/pipes/standard/manifold/hidden/cyan, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/outpost/security) "bXC" = ( /obj/structure/machinery/light/small{ @@ -26239,10 +21556,7 @@ /turf/open/auto_turf/strata_grass/layer1, /area/strata/ug/interior/jungle/deep/minehead) "bXQ" = ( -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ug/interior/jungle/deep/structures/res) "bXV" = ( /obj/effect/decal/cleanable/blood/gibs/core, @@ -26252,10 +21566,7 @@ /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22" }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/dorms) "bXY" = ( /obj/structure/sign/safety/restrictedarea, @@ -26271,10 +21582,7 @@ /obj/structure/platform/strata/metal{ dir = 1 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/exterior/research_decks) "bYg" = ( /obj/structure/stairs/perspective{ @@ -26285,18 +21593,13 @@ /obj/structure/platform/strata/metal{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2, /area/strata/ag/exterior/research_decks) "bYk" = ( /obj/structure/machinery/door/airlock/almayer/security/colony{ dir = 8 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/interior/outpost/security) "bYl" = ( /obj/item/reagent_container/food/drinks/cans/waterbottle, @@ -26312,10 +21615,7 @@ /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ug/interior/jungle/deep/structures/res) "bYA" = ( /obj/effect/decal/strata_decals/catwalk/prison, @@ -26323,18 +21623,13 @@ /obj/structure/barricade/handrail/strata{ dir = 8 }, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/engi/drome) "bYD" = ( /obj/structure/machinery/camera/autoname{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/nearlz1) "bYE" = ( /obj/structure/extinguisher_cabinet, @@ -26346,10 +21641,7 @@ dir = 8; icon_state = "p_stair_full" }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/interior/tcomms) "bYJ" = ( /obj/structure/machinery/weather_siren{ @@ -26368,17 +21660,12 @@ /area/strata/ag/exterior/research_decks) "bYN" = ( /obj/structure/pipes/standard/manifold/hidden/cyan, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/exterior/research_decks) "bYR" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/computer/objective, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/security) "bYS" = ( /obj/structure/bed/chair{ @@ -26388,9 +21675,7 @@ /area/strata/ag/interior/outpost/security) "bYU" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/outpost/canteen) "bYV" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/comdoor/colony{ @@ -26403,16 +21688,11 @@ dir = 1 }, /obj/structure/machinery/light/small, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/outpost/engi/drome) "bZh" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ug/interior/jungle/deep/structures/res) "bZj" = ( /obj/structure/extinguisher_cabinet, @@ -26423,47 +21703,31 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2, /area/strata/ag/exterior/research_decks) "bZB" = ( /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/outpost/canteen/lower_cafeteria) "bZC" = ( /obj/structure/machinery/light/small, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/outpost/engi/drome) "bZD" = ( -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/security) "bZE" = ( /obj/structure/bed/chair{ dir = 4 }, /obj/effect/landmark/survivor_spawner, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/outpost/canteen/lower_cafeteria) "bZG" = ( /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/outpost/canteen/lower_cafeteria) "bZH" = ( /obj/structure/sign/safety/galley, @@ -26502,24 +21766,17 @@ /obj/structure/surface/table/almayer, /obj/item/reagent_container/food/snacks/plump_pie, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/exterior/research_decks) "cac" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/security) "cad" = ( /obj/structure/pipes/standard/manifold/fourway/hidden/cyan, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/outpost/security) "caf" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ @@ -26528,35 +21785,25 @@ /obj/structure/machinery/door/airlock/almayer/security/colony{ dir = 8 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/interior/outpost/security) "cah" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 10 }, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/outpost/security) "cak" = ( /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/outpost/security) "cam" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/outpost/canteen/lower_cafeteria) "cao" = ( /obj/structure/machinery/cm_vending/sorted/marine_food, @@ -26583,33 +21830,23 @@ /turf/open/auto_turf/strata_grass/layer1, /area/strata/ug/interior/jungle/deep/east_carp) "caE" = ( -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/dorms) "caI" = ( /obj/structure/platform/strata/metal{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2, /area/strata/ag/exterior/paths/adminext) "caL" = ( /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/outpost/canteen/lower_cafeteria) "caM" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/outpost/canteen) "caV" = ( /obj/item/stack/sheet/wood, @@ -26637,9 +21874,7 @@ /obj/structure/surface/table/reinforced/prison, /obj/item/storage/toolbox/emergency, /obj/item/device/radio, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/strata/ag/exterior/north_lz_caves) "cbj" = ( /obj/effect/decal/strata_decals/catwalk/prison, @@ -26652,10 +21887,7 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/exterior/research_decks) "cbu" = ( /obj/structure/surface/table/reinforced/prison, @@ -26665,16 +21897,11 @@ /area/strata/ag/exterior/north_lz_caves) "cbv" = ( /obj/structure/barricade/handrail/strata, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/security) "cbz" = ( /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/strata/ag/interior/outpost/canteen/lower_cafeteria) "cbE" = ( /obj/structure/flora/pottedplant{ @@ -26709,41 +21936,27 @@ /obj/structure/machinery/door/airlock/multi_tile/almayer/comdoor/colony{ name = "\improper Airlock" }, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/administration) "cbS" = ( -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/administration) "cbW" = ( /obj/structure/window/framed/strata/reinforced, /obj/structure/machinery/door/poddoor/shutters/almayer{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/dorms) "ccc" = ( -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/exterior/research_decks) "ccd" = ( /turf/closed/wall/strata_outpost/reinforced/hull, /area/strata/ag/exterior/research_decks) "ccg" = ( /obj/item/stool, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/outpost/gen/bball) "cch" = ( /obj/structure/surface/table/reinforced/prison, @@ -26753,15 +21966,10 @@ /obj/structure/machinery/computer/objective{ dir = 8 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan1" - }, +/turf/open/floor/strata/cyan1/east, /area/strata/ag/interior/outpost/gen/bball) "cci" = ( -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/gen/bball) "ccj" = ( /turf/open/asphalt/cement, @@ -26771,31 +21979,20 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan1" - }, +/turf/open/floor/strata/cyan1/east, /area/strata/ag/interior/outpost/gen/bball) "ccn" = ( /obj/structure/machinery/camera/autoname{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/outpost/security) "cco" = ( /obj/structure/window/framed/strata/reinforced, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/interior/outpost/security) "ccp" = ( -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/strata/ag/interior/outpost/canteen/lower_cafeteria) "ccq" = ( /obj/structure/surface/table/reinforced/prison, @@ -26808,15 +22005,10 @@ dir = 1; pixel_y = 20 }, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/outpost/canteen/lower_cafeteria) "ccr" = ( -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/outpost/canteen/lower_cafeteria) "ccs" = ( /turf/open/floor/strata, @@ -26824,24 +22016,15 @@ "cct" = ( /obj/effect/decal/cleanable/blood, /obj/structure/machinery/door/airlock/almayer/maint/colony, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/canteen) "ccu" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/maint/canteen_e_1) "ccy" = ( /obj/structure/fence, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/exterior/paths/adminext) "ccz" = ( /obj/structure/flora/bush/ausbushes/grassybush{ @@ -26888,25 +22071,17 @@ /area/strata/ag/exterior/research_decks) "ccW" = ( /obj/effect/decal/cleanable/blood/oil/streak, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/exterior/research_decks) "ccX" = ( /obj/structure/machinery/camera/autoname{ dir = 8 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/exterior/research_decks) "ccY" = ( /obj/structure/closet/lasertag/blue, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/gen/bball) "cdb" = ( /obj/structure/flora/grass/tallgrass/ice/corner{ @@ -26916,9 +22091,7 @@ /area/strata/ag/exterior/paths/north_outpost) "cdc" = ( /obj/structure/bed/chair/office/light, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/outpost/security) "cdd" = ( /obj/structure/surface/table/reinforced/prison, @@ -26927,9 +22100,7 @@ pixel_x = -4; pixel_y = 14 }, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/outpost/security) "cdh" = ( /turf/open/floor/strata, @@ -26938,10 +22109,7 @@ /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/strata/ag/interior/outpost/canteen) "cdl" = ( /obj/structure/floodgate, @@ -26951,9 +22119,7 @@ /turf/closed/wall/strata_outpost/reinforced, /area/strata/ag/interior/outpost/canteen) "cdn" = ( -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/outpost/canteen) "cdo" = ( /turf/open/auto_turf/ice/layer1, @@ -26977,10 +22143,7 @@ dir = 8 }, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/med) "cdD" = ( /obj/structure/extinguisher_cabinet, @@ -26989,10 +22152,7 @@ "cdF" = ( /obj/structure/surface/rack, /obj/item/storage/firstaid/adv, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ug/interior/jungle/deep/structures/res) "cdG" = ( /obj/effect/decal/strata_decals/catwalk/prison, @@ -27006,18 +22166,12 @@ /obj/structure/xenoautopsy/tank/broken{ desc = "A broken cryo tank, this must've been where it all began..." }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan1" - }, +/turf/open/floor/strata/cyan1/east, /area/strata/ag/interior/dorms) "cdR" = ( /obj/structure/largecrate/random/barrel/green, /obj/structure/machinery/light/small, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/exterior/research_decks) "cdT" = ( /obj/structure/machinery/light/small{ @@ -27032,10 +22186,7 @@ /obj/structure/machinery/door/window/eastright{ dir = 2 }, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/outpost/security) "cdX" = ( /obj/structure/surface/table/reinforced/prison, @@ -27043,28 +22194,18 @@ /obj/structure/machinery/computer/cameras{ dir = 1 }, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/outpost/security) "cdY" = ( /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/outpost/security) "cdZ" = ( -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/outpost/security) "cea" = ( /obj/structure/window/framed/strata/reinforced, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/outpost/security) "ced" = ( /turf/closed/wall/strata_ice/dirty, @@ -27074,19 +22215,13 @@ /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/interior/outpost/maint/canteen_e_1) "ceg" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony{ dir = 2 }, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ug/interior/jungle/deep/structures/res) "cei" = ( /turf/open/gm/dirt, @@ -27095,51 +22230,35 @@ /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "orange_edge" - }, +/turf/open/floor/strata/orange_edge/west, /area/strata/ag/interior/dorms) "cer" = ( /obj/structure/machinery/smartfridge/drinks, -/turf/open/floor/strata{ - icon_state = "orange_tile" - }, +/turf/open/floor/strata/orange_tile, /area/strata/ag/interior/dorms) "cet" = ( -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/dorms) "ceu" = ( /obj/effect/decal/cleanable/blood, /obj/item/tool/match, /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/dorms) "cew" = ( /obj/structure/window/framed/strata/reinforced, /obj/structure/machinery/door/poddoor/shutters/almayer, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/dorms) "ceG" = ( /obj/structure/window/framed/strata/reinforced, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/outpost/med) "ceI" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/outpost/security) "ceK" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ @@ -27149,28 +22268,19 @@ dir = 1; pixel_y = 20 }, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/outpost/security) "ceL" = ( /obj/structure/pipes/standard/manifold/hidden/cyan, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/outpost/security) "ceM" = ( /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/outpost/canteen) "ceN" = ( /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/outpost/canteen) "ceQ" = ( /turf/closed/wall/strata_ice/jungle, @@ -27183,10 +22293,7 @@ /obj/structure/pipes/standard/manifold/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "orange_edge" - }, +/turf/open/floor/strata/orange_edge/east, /area/strata/ag/interior/dorms) "ceW" = ( /obj/effect/decal/strata_decals/catwalk/prison, @@ -27209,24 +22316,15 @@ id_tag = "bunker_or1"; name = "\improper Operating Room 1" }, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/outpost/med) "ceZ" = ( /obj/structure/filingcabinet, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/engi/drome) "cfg" = ( -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/engi/drome) "cfi" = ( /obj/effect/decal/strata_decals/catwalk/prison, @@ -27234,25 +22332,17 @@ dir = 4 }, /obj/structure/barricade/handrail/strata, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/exterior/marsh/river) "cfl" = ( /obj/structure/largecrate/random/barrel/white, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/exterior/research_decks) "cfp" = ( /obj/structure/surface/rack, /obj/item/paper_bin, /obj/item/stack/sheet/glass, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/engi/drome) "cfr" = ( /turf/closed/wall/strata_outpost/reinforced/hull, @@ -27266,10 +22356,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/security) "cfx" = ( /turf/open/floor/strata, @@ -27298,27 +22385,18 @@ /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/outpost/canteen/lower_cafeteria) "cfD" = ( /obj/structure/machinery/vending/snack, /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/outpost/canteen) "cfE" = ( /obj/structure/machinery/vending/coffee, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/strata/ag/interior/outpost/canteen) "cfF" = ( /obj/structure/flora/grass/tallgrass/ice, @@ -27332,9 +22410,7 @@ /area/strata/ag/interior/outpost/gen/bball/nest) "cfJ" = ( /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/outpost/engi/drome) "cfR" = ( /turf/closed/wall/strata_outpost, @@ -27346,10 +22422,7 @@ /area/strata/ag/exterior/research_decks) "cfY" = ( /obj/structure/fence, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/exterior/research_decks) "cfZ" = ( /obj/structure/pipes/standard/manifold/hidden/cyan{ @@ -27363,60 +22436,42 @@ /area/strata/ag/interior/outpost/engi/drome) "cgd" = ( /obj/structure/fence, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/interior/outpost/engi/drome) "cge" = ( /obj/structure/window/reinforced/tinted, /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22" }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/security) "cgg" = ( /obj/structure/window/reinforced/tinted, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/security) "cgm" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/reagent_container/food/condiment/peppermill, /obj/effect/decal/cleanable/blood/gibs/down, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/outpost/canteen/lower_cafeteria) "cgn" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/outpost/canteen/lower_cafeteria) "cgo" = ( /obj/structure/bed/chair{ dir = 8 }, /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/outpost/canteen/lower_cafeteria) "cgp" = ( /obj/structure/bed/chair/comfy, /obj/structure/barricade/handrail/strata{ dir = 8 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/strata/ag/interior/outpost/canteen) "cgq" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_nest, @@ -27424,18 +22479,13 @@ /area/strata/ug/interior/jungle/deep/east_carp) "cgu" = ( /obj/structure/window/framed/strata, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/interior/outpost/canteen) "cgE" = ( /turf/closed/wall/strata_ice/jungle, /area/strata/ug/interior/jungle/deep/south_res) "cgN" = ( -/turf/open/floor/plating{ - icon_state = "platebot" - }, +/turf/open/floor/plating/platebot, /area/strata/ag/interior/outpost/engi/drome) "cgO" = ( /turf/closed/shuttle/ert{ @@ -27454,15 +22504,11 @@ /area/strata/ag/interior/outpost/engi/drome/shuttle) "cgR" = ( /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/plating{ - icon_state = "platebot" - }, +/turf/open/floor/plating/platebot, /area/strata/ag/interior/outpost/engi/drome) "cgS" = ( /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/outpost/admin) "cgT" = ( /obj/structure/mirror, @@ -27482,18 +22528,12 @@ /obj/item/clothing/suit/armor/riot, /obj/item/weapon/gun/rifle/type71/carbine, /obj/effect/landmark/objective_landmark/far, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/outpost/admin) "cgW" = ( /obj/effect/decal/cleanable/blood, /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/outpost/canteen/lower_cafeteria) "cgX" = ( /obj/structure/surface/table/reinforced/prison, @@ -27502,29 +22542,17 @@ /obj/structure/barricade/handrail/strata{ dir = 8 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/strata/ag/interior/outpost/canteen) "cgY" = ( -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/outpost/canteen) "cgZ" = ( /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/outpost/canteen) "chd" = ( -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/strata/ag/interior/outpost/canteen) "che" = ( /turf/closed/wall/strata_outpost/reinforced/hull, @@ -27547,53 +22575,37 @@ "chp" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/tool/kitchen/utensil/pfork, -/turf/open/floor/strata{ - icon_state = "orange_tile" - }, +/turf/open/floor/strata/orange_tile, /area/strata/ag/interior/dorms) "chq" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/reagent_container/food/drinks/bottle/sake, -/turf/open/floor/strata{ - icon_state = "orange_tile" - }, +/turf/open/floor/strata/orange_tile, /area/strata/ag/interior/dorms) "chr" = ( /obj/item/stack/sheet/wood, -/turf/open/floor/strata{ - icon_state = "orange_tile" - }, +/turf/open/floor/strata/orange_tile, /area/strata/ag/interior/dorms) "cht" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/exterior/research_decks) "chw" = ( /obj/structure/largecrate/random/barrel/green, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/outpost/engi/drome) "chx" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/computer/cameras{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ug/interior/jungle/deep/structures/engi) "chy" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/stack/cable_coil/blue, /obj/item/stack/cable_coil/blue, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ag/interior/outpost/engi/drome) "chz" = ( /obj/structure/flora/bush/ausbushes/ppflowers, @@ -27605,10 +22617,7 @@ /area/strata/ag/interior/outpost/canteen) "chC" = ( /obj/effect/spawner/random/attachment, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/outpost/canteen) "chJ" = ( /mob/living/simple_animal/hostile/carp{ @@ -27625,24 +22634,15 @@ /area/strata/ug/interior/jungle/deep/south_res) "chS" = ( /obj/structure/window/framed/strata/reinforced, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/gen/bball/nest) "chX" = ( /obj/structure/window/framed/strata, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/administration) "cie" = ( /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/exterior/research_decks) "cif" = ( /obj/structure/flora/bush/ausbushes/grassybush{ @@ -27655,10 +22655,7 @@ /obj/structure/machinery/power/monitor{ name = "Main Power Grid Monitoring" }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/interior/landingzone_checkpoint) "cik" = ( /turf/closed/wall/strata_outpost, @@ -27667,29 +22664,20 @@ /obj/structure/barricade/handrail/strata{ dir = 8 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/strata/ag/interior/outpost/canteen) "cin" = ( /obj/structure/pipes/standard/manifold/hidden/cyan{ dir = 8 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/outpost/canteen) "cio" = ( /obj/structure/machinery/light/small, /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/outpost/canteen) "cis" = ( /obj/effect/decal/cleanable/blood/oil, @@ -27720,17 +22708,11 @@ /area/strata/ag/interior/landingzone_checkpoint) "ciH" = ( /obj/effect/decal/cleanable/cobweb2, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/interior/landingzone_checkpoint) "ciW" = ( /obj/structure/closet/firecloset/full, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/exterior/research_decks) "cjb" = ( /turf/open/floor/strata, @@ -27744,43 +22726,28 @@ /turf/open/floor/plating, /area/strata/ag/exterior/research_decks) "cji" = ( -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/strata/ag/interior/outpost/canteen/bar) "cjj" = ( /obj/item/weapon/gun/rifle/type71/carbine, /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/strata/ag/interior/outpost/canteen/bar) "cjk" = ( /obj/structure/barricade/wooden{ dir = 4 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/strata/ag/interior/outpost/canteen/bar) "cjl" = ( /obj/structure/bed/chair, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/strata/ag/interior/outpost/canteen/lower_cafeteria) "cjn" = ( /turf/closed/wall/strata_outpost, /area/strata/ag/interior/outpost/canteen) "cjq" = ( -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/gen/bball/nest) "cjr" = ( /obj/structure/flora/grass/tallgrass/jungle, @@ -27788,10 +22755,7 @@ /area/strata/ug/interior/jungle/deep/east_dorms) "cjv" = ( /obj/structure/window/framed/strata, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/dorms) "cjw" = ( /turf/closed/wall/strata_outpost, @@ -27813,10 +22777,7 @@ /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ dir = 1 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/interior/dorms/south) "cjA" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ @@ -27838,19 +22799,13 @@ dir = 1 }, /obj/structure/largecrate/random/barrel/white, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/exterior/research_decks) "cjH" = ( /obj/structure/platform/strata/metal{ dir = 1 }, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/exterior/research_decks) "cjI" = ( /obj/structure/platform/strata/metal{ @@ -27860,38 +22815,26 @@ dir = 4 }, /obj/structure/machinery/colony_floodlight, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/exterior/research_decks) "cjN" = ( /obj/structure/window/framed/strata, /obj/structure/machinery/door/poddoor/shutters/almayer{ dir = 8 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/interior/outpost/med) "cjO" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/outpost/med) "cjP" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/outpost/med) "cjQ" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ @@ -27900,42 +22843,27 @@ /obj/structure/machinery/door/airlock/almayer/medical/colony{ dir = 8 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/interior/outpost/med) "cjR" = ( /obj/structure/pipes/standard/manifold/hidden/cyan, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan3" - }, +/turf/open/floor/strata/white_cyan3/west, /area/strata/ag/interior/outpost/med) "cjS" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - dir = 5; - icon_state = "white_cyan3" - }, +/turf/open/floor/strata/white_cyan3/northeast, /area/strata/ag/interior/outpost/med) "cjU" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - dir = 1; - icon_state = "white_cyan3" - }, +/turf/open/floor/strata/white_cyan3/north, /area/strata/ag/interior/outpost/med) "cjV" = ( /obj/structure/pipes/standard/manifold/hidden/cyan, -/turf/open/floor/strata{ - dir = 1; - icon_state = "white_cyan3" - }, +/turf/open/floor/strata/white_cyan3/north, /area/strata/ag/interior/outpost/med) "cjW" = ( /obj/structure/machinery/light/small{ @@ -27945,58 +22873,39 @@ /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - dir = 1; - icon_state = "white_cyan3" - }, +/turf/open/floor/strata/white_cyan3/north, /area/strata/ag/interior/outpost/med) "cjX" = ( /obj/structure/pipes/standard/manifold/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - dir = 1; - icon_state = "white_cyan3" - }, +/turf/open/floor/strata/white_cyan3/north, /area/strata/ag/interior/outpost/med) "cjZ" = ( /obj/structure/window/framed/strata, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/interior/outpost/canteen/bar) "cka" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 6 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/strata/ag/interior/outpost/canteen/bar) "ckb" = ( /obj/structure/largecrate/guns/russian, /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 9 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/strata/ag/interior/outpost/canteen/bar) "ckd" = ( /obj/structure/surface/table/woodentable, /obj/item/reagent_container/food/drinks/cans/waterbottle, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/canteen/bar) "cke" = ( /obj/item/stool, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/canteen/bar) "ckf" = ( /obj/structure/bed/chair{ @@ -28005,10 +22914,7 @@ /turf/open/floor/strata, /area/strata/ag/interior/outpost/canteen/lower_cafeteria) "ckx" = ( -/turf/open/floor/strata{ - dir = 1; - icon_state = "white_cyan3" - }, +/turf/open/floor/strata/white_cyan3/north, /area/strata/ag/interior/outpost/med) "ckz" = ( /obj/structure/surface/table/reinforced/prison, @@ -28018,10 +22924,7 @@ pixel_x = 8; pixel_y = 6 }, -/turf/open/floor/strata{ - dir = 1; - icon_state = "white_cyan4" - }, +/turf/open/floor/strata/white_cyan4/north, /area/strata/ag/interior/outpost/med) "ckA" = ( /obj/structure/surface/rack, @@ -28030,38 +22933,26 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/engi/drome) "ckB" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/engi/drome) "ckC" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/engi/drome) "ckE" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, /obj/structure/machinery/door/airlock/almayer/maint/colony, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/interior/outpost/engi/drome) "ckF" = ( /obj/structure/pipes/standard/manifold/hidden/cyan{ @@ -28073,25 +22964,17 @@ /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/interior/outpost/engi/drome) "ckH" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/outpost/engi/drome) "ckI" = ( /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/canteen/bar) "ckK" = ( /turf/closed/wall/strata_outpost, @@ -28104,44 +22987,29 @@ /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/strata/ag/interior/outpost/canteen/lower_cafeteria) "ckN" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/strata/ag/interior/outpost/canteen) "ckR" = ( /obj/structure/pipes/standard/manifold/hidden/cyan, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/outpost/canteen) "ckS" = ( /obj/effect/decal/strata_decals/catwalk/prison, /obj/structure/disposalpipe/segment, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/maint/canteen_e_1) "ckX" = ( -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/dorms/south) "ckY" = ( /obj/structure/bed/chair, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/dorms/south) "ckZ" = ( /turf/open/auto_turf/ice/layer0, @@ -28154,10 +23022,7 @@ /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/engi/drome) "cle" = ( /obj/effect/decal/strata_decals/catwalk/prison, @@ -28167,10 +23032,7 @@ /obj/structure/pipes/standard/manifold/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/engi/drome) "clg" = ( /turf/closed/shuttle/ert{ @@ -28179,9 +23041,7 @@ /area/strata/ag/interior/outpost/engi/drome/shuttle) "clo" = ( /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/strata/ag/interior/outpost/engi/drome/shuttle) "clr" = ( /obj/structure/surface/table/reinforced/prison, @@ -28190,9 +23050,7 @@ pixel_y = 6 }, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/strata/ag/interior/outpost/engi/drome/shuttle) "cls" = ( /obj/structure/machinery/cm_vending/sorted/medical/wall_med/limited, @@ -28205,9 +23063,7 @@ dir = 4 }, /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/outpost/engi/drome) "clw" = ( /obj/structure/pipes/standard/simple/hidden/cyan, @@ -28235,16 +23091,12 @@ /obj/item/clothing/shoes/jackboots, /obj/item/clothing/shoes/jackboots, /obj/item/clothing/shoes/jackboots, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/outpost/engi/drome) "clG" = ( /obj/item/dogtag, /obj/effect/decal/cleanable/blood/gibs/down, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/canteen/bar) "clI" = ( /obj/structure/machinery/vending/dinnerware, @@ -28264,10 +23116,7 @@ icon_state = "p_stair_ew_full_cap"; layer = 3.5 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/interior/outpost/canteen) "clU" = ( /obj/structure/filingcabinet, @@ -28278,9 +23127,7 @@ /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/dorms/south) "cmf" = ( /obj/effect/landmark/monkey_spawn, @@ -28293,10 +23140,7 @@ /turf/open/auto_turf/ice/layer1, /area/strata/ag/exterior/marsh/river) "cmn" = ( -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/interior/landingzone_checkpoint) "cmo" = ( /turf/closed/wall/strata_outpost/reinforced/hull, @@ -28311,27 +23155,20 @@ "cmt" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/reagent_container/food/condiment/sugar, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/outpost/canteen/bar) "cmu" = ( /turf/open/gm/coast/north, /area/strata/ug/interior/jungle/deep/north_carp) "cmA" = ( -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/strata/ag/interior/landingzone_1) "cmB" = ( /obj/structure/bed/nest, /obj/structure/platform/strata/metal{ dir = 1 }, -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles, /area/strata/ag/interior/dorms/hive) "cmC" = ( /obj/structure/machinery/light/small, @@ -28341,17 +23178,13 @@ /obj/effect/decal/strata_decals/grime/grime3{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/dorms/south) "cmE" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/dorms/south) "cmF" = ( /obj/structure/surface/rack, @@ -28360,19 +23193,14 @@ /obj/item/inflatable/door, /obj/item/tool/shovel/etool/folded, /obj/item/tool/shovel/etool/folded, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/dorms/south) "cmX" = ( /turf/closed/wall/strata_ice/dirty, /area/strata/ag/exterior/research_decks) "cmZ" = ( /obj/structure/fence, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/exterior/research_decks) "cna" = ( /obj/effect/decal/strata_decals/catwalk/prison, @@ -28390,10 +23218,7 @@ /area/strata/ag/exterior/research_decks) "cnc" = ( /obj/item/storage/box/rxglasses, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/outpost/med) "cnd" = ( /obj/item/storage/pill_bottle/russianRed, @@ -28404,58 +23229,38 @@ /obj/structure/machinery/camera/autoname{ dir = 8 }, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/med) "cne" = ( /obj/structure/machinery/camera/autoname{ dir = 4 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan4" - }, +/turf/open/floor/strata/white_cyan4/east, /area/strata/ag/interior/outpost/med) "cnf" = ( /obj/effect/decal/cleanable/greenglow, -/turf/open/floor/strata{ - icon_state = "white_cyan3" - }, +/turf/open/floor/strata/white_cyan3, /area/strata/ag/interior/outpost/med) "cng" = ( /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor/strata{ - icon_state = "white_cyan3" - }, +/turf/open/floor/strata/white_cyan3, /area/strata/ag/interior/outpost/med) "cnh" = ( /obj/structure/machinery/light/small, -/turf/open/floor/strata{ - icon_state = "white_cyan3" - }, +/turf/open/floor/strata/white_cyan3, /area/strata/ag/interior/outpost/med) "cni" = ( /obj/structure/bed/roller, -/turf/open/floor/strata{ - icon_state = "white_cyan3" - }, +/turf/open/floor/strata/white_cyan3, /area/strata/ag/interior/outpost/med) "cnj" = ( -/turf/open/floor/strata{ - dir = 10; - icon_state = "white_cyan3" - }, +/turf/open/floor/strata/white_cyan3/southwest, /area/strata/ag/interior/outpost/med) "cnk" = ( /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan3" - }, +/turf/open/floor/strata/white_cyan3/east, /area/strata/ag/interior/outpost/med) "cnm" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ @@ -28465,16 +23270,10 @@ /area/strata/ag/interior/outpost/canteen/bar) "cnp" = ( /obj/structure/closet/secure_closet/freezer/fridge, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan2" - }, +/turf/open/floor/strata/cyan2/east, /area/strata/ag/interior/outpost/canteen/bar) "cnr" = ( -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/outpost/canteen/bar) "cnu" = ( /turf/open/auto_turf/strata_grass/layer1, @@ -28483,34 +23282,23 @@ /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/nearlz1) "cnw" = ( /obj/structure/surface/rack, /obj/item/storage/belt/utility/full, /obj/item/tank/anesthetic, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/engi/drome) "cnx" = ( /obj/structure/surface/rack, /obj/item/tank/emergency_oxygen/engi, /obj/item/storage/belt/utility/full, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/engi/drome) "cnA" = ( /obj/structure/window/framed/strata, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/dorms/south) "cnB" = ( /turf/closed/wall/strata_outpost/reinforced, @@ -28520,10 +23308,7 @@ dir = 2; name = "\improper Airlock" }, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/dorms/south) "cnK" = ( /obj/structure/surface/rack, @@ -28532,19 +23317,14 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/outpost/engi/drome) "cnO" = ( /turf/closed/wall/resin/strata/on_tiles, /area/strata/ag/interior/dorms/hive) "cnQ" = ( /obj/item/clipboard, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/outpost/engi/drome) "cnS" = ( /turf/closed/shuttle/ert{ @@ -28558,9 +23338,7 @@ dir = 1; pixel_y = 25 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/strata/ag/interior/outpost/engi/drome/shuttle) "cnZ" = ( /obj/structure/machinery/power/apc{ @@ -28568,27 +23346,13 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/dorms/flight_control) "coa" = ( /obj/structure/filingcabinet/filingcabinet, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/dorms/flight_control) -"coc" = ( -/obj/item/fuelCell, -/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/obj/structure/barricade/handrail/strata{ - dir = 8 - }, -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, -/area/strata/ag/interior/dorms/hive) "cof" = ( /obj/effect/decal/strata_decals/catwalk/prison, /turf/open/floor/greengrid, @@ -28597,16 +23361,11 @@ /obj/structure/bed/chair/dropship/passenger{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/strata/ag/interior/outpost/engi/drome/shuttle) "coh" = ( /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan2" - }, +/turf/open/floor/strata/cyan2/east, /area/strata/ag/interior/outpost/canteen/bar) "coi" = ( /obj/structure/reagent_dispensers/beerkeg, @@ -28614,17 +23373,11 @@ dir = 1; pixel_y = 25 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan2" - }, +/turf/open/floor/strata/cyan2/east, /area/strata/ag/interior/outpost/canteen/bar) "cok" = ( /obj/item/stack/sheet/wood, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/outpost/canteen/bar) "col" = ( /obj/structure/stairs/perspective{ @@ -28654,9 +23407,7 @@ /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/dorms/south) "coy" = ( /obj/structure/bed/chair/office/light, @@ -28685,9 +23436,7 @@ }, /area/strata/ag/interior/outpost/engi/drome/shuttle) "coO" = ( -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/dorms/flight_control) "coP" = ( /obj/structure/bed/chair/office/light, @@ -28695,41 +23444,31 @@ /area/strata/ag/interior/dorms/flight_control) "coS" = ( /obj/structure/window/framed/strata/reinforced, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/dorms/flight_control) "coU" = ( /obj/structure/bed/chair/office/light, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/dorms/flight_control) "coV" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/computer/cameras{ dir = 1 }, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/dorms/flight_control) "coX" = ( /obj/structure/pipes/standard/manifold/hidden/cyan{ dir = 1 }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/nearlz1) "coY" = ( /obj/item/ammo_magazine/revolver/cmb{ pixel_x = 6; pixel_y = -4 }, -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles, /area/strata/ag/interior/dorms/hive) "coZ" = ( /obj/effect/decal/cleanable/blood, @@ -28738,9 +23477,7 @@ pixel_y = -4 }, /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles, /area/strata/ag/interior/dorms/hive) "cpd" = ( /obj/structure/sign/safety/fire_haz, @@ -28750,10 +23487,7 @@ /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan2" - }, +/turf/open/floor/strata/cyan2/east, /area/strata/ag/interior/outpost/canteen/bar) "cpg" = ( /turf/closed/wall/strata_ice/jungle, @@ -28765,38 +23499,28 @@ dir = 1; pixel_y = 20 }, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/outpost/engi/drome) "cpo" = ( /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles, /area/strata/ag/interior/dorms/maintenance) "cpq" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/reagent_container/food/drinks/bottle/sake, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/dorms/flight_control) "cpE" = ( /obj/structure/filingcabinet/chestdrawer, /obj/structure/pipes/standard/simple/hidden/cyan, /obj/effect/landmark/objective_landmark/far, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/dorms/flight_control) "cpR" = ( /obj/structure/platform/strata/metal{ dir = 1 }, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/nearlz1) "cpU" = ( /turf/closed/wall/strata_outpost, @@ -28811,9 +23535,7 @@ /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22" }, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/outpost/engi/drome) "cqf" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ @@ -28834,9 +23556,7 @@ /obj/structure/platform_decoration/strata/metal{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/nearlz1) "cqE" = ( /turf/open/floor/strata, @@ -28859,9 +23579,7 @@ /obj/item/device/lightreplacer, /obj/item/clothing/gloves/yellow, /obj/item/tool/extinguisher, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/exterior/north_lz_caves) "cqM" = ( /obj/structure/pipes/standard/simple/hidden/cyan, @@ -28871,70 +23589,47 @@ /turf/open/asphalt/cement, /area/strata/ag/interior/administration) "crb" = ( -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/strata/ag/interior/landingzone_1) "crd" = ( /obj/structure/machinery/light/small{ dir = 8 }, /obj/effect/decal/strata_decals/catwalk/prison, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/outpost/engi/drome) "crf" = ( /obj/effect/decal/strata_decals/catwalk/prison, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/outpost/engi/drome) "crk" = ( /obj/effect/glowshroom/single, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/strata/ag/exterior/north_lz_caves) "crp" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/comdoor/colony{ name = "\improper Airlock" }, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/administration) "crq" = ( /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/administration) "crt" = ( -/turf/open/asphalt/cement{ - icon_state = "cement9" - }, +/turf/open/asphalt/cement/cement9, /area/strata/ag/interior/landingzone_1) "cru" = ( /obj/structure/machinery/cm_vending/sorted/tech/comp_storage, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/dorms) "cry" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles, /area/strata/ag/interior/dorms/hive) "crz" = ( /obj/structure/bed/nest, -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles, /area/strata/ag/interior/dorms/hive) "crA" = ( /turf/closed/wall/strata_outpost/reinforced/hull, @@ -28946,17 +23641,13 @@ /obj/structure/pipes/standard/manifold/hidden/cyan{ dir = 1 }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/engi/drome) "crG" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/engi/drome) "crI" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ @@ -28970,68 +23661,49 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/dorms) "crN" = ( /turf/open/auto_turf/ice/layer1, /area/strata/ag/exterior/marsh/river) "crR" = ( /obj/structure/pipes/standard/manifold/hidden/cyan, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/outpost/engi/drome) "crT" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 10 }, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/outpost/engi/drome) "crU" = ( /obj/effect/decal/cleanable/blood{ icon_state = "gib6" }, /obj/effect/decal/cleanable/blood, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/administration) "crV" = ( /obj/effect/decal/strata_decals/grime/grime2{ dir = 8 }, /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/administration) "crW" = ( /obj/structure/machinery/landinglight/ds1/delaytwo{ dir = 1 }, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/strata/ag/interior/landingzone_1) "crY" = ( /turf/closed/wall/strata_outpost/reinforced, /area/strata/ag/interior/dorms) "csc" = ( -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/engi/drome) "csi" = ( -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/outpost/canteen) "csj" = ( /obj/structure/bed{ @@ -29040,16 +23712,11 @@ /obj/structure/window/reinforced/tinted{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "purp1" - }, +/turf/open/floor/strata/purp1, /area/strata/ug/interior/outpost/jung/dorms/admin4) "csk" = ( /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/gen/bball/nest) "csm" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ @@ -29061,27 +23728,19 @@ /obj/structure/pipes/standard/manifold/hidden/cyan{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/nearlz1) "cst" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/outpost/canteen) "csu" = ( /obj/structure/pipes/standard/manifold/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/outpost/canteen) "csA" = ( /obj/structure/bed/chair/office/light{ @@ -29091,38 +23750,24 @@ dir = 4 }, /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/administration) "csB" = ( /obj/structure/coatrack, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/administration) "csE" = ( /obj/structure/largecrate/random, /obj/structure/barricade/handrail/strata, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/outpost/engi/drome) "csF" = ( /obj/structure/barricade/handrail/strata, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/outpost/engi/drome) "csG" = ( /obj/item/stack/rods, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/gen/bball/nest) "csH" = ( /obj/structure/fence, @@ -29140,44 +23785,29 @@ /obj/item/device/flashlight, /obj/item/device/flashlight, /obj/item/device/flashlight, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/outpost/engi/drome) "csQ" = ( -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/outpost/engi/drome) "csR" = ( /obj/structure/window/framed/strata/reinforced, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/interior/outpost/engi/drome) "csT" = ( /obj/structure/filingcabinet, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/outpost/engi/drome) "csV" = ( /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/outpost/canteen) "csW" = ( /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/outpost/canteen) "csY" = ( /obj/structure/bed/chair{ @@ -29227,45 +23857,32 @@ dir = 1; pixel_y = 20 }, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/dorms) "cto" = ( /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/dorms) "ctp" = ( /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ag/interior/outpost/engi/drome) "ctx" = ( -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/exterior/marsh/river) "cty" = ( -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/exterior/marsh/river) "ctz" = ( /obj/structure/surface/rack, /obj/item/ammo_magazine/rifle/type71, /obj/item/ammo_magazine/rifle/type71, /obj/item/ammo_magazine/rifle/type71, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/administration) "ctA" = ( /obj/structure/machinery/light/small{ @@ -29276,33 +23893,18 @@ /area/strata/ag/interior/administration) "ctB" = ( /obj/structure/window/framed/strata/reinforced, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/dorms) "ctC" = ( /turf/closed/wall/strata_outpost, /area/strata/ag/interior/dorms) "ctD" = ( /obj/item/storage/briefcase, -/turf/open/floor/strata{ - icon_state = "red1" - }, -/area/strata/ag/interior/dorms) -"ctE" = ( -/obj/structure/surface/rack, -/obj/structure/machinery/light/small{ - dir = 1 - }, -/obj/item/book/manual/engineering_particle_accelerator, -/turf/open/floor/strata, +/turf/open/floor/strata/red1, /area/strata/ag/interior/dorms) "ctF" = ( /obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/dorms) "ctH" = ( /obj/structure/platform_decoration/strata/metal{ @@ -29313,23 +23915,17 @@ /area/strata/ug/interior/jungle/deep/east_dorms) "ctI" = ( /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/strata/ag/interior/landingzone_1) "ctK" = ( /obj/structure/barricade/handrail/strata{ dir = 1 }, /obj/structure/bed/sofa/vert/grey/top, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/dorms) "ctS" = ( -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/administration) "ctZ" = ( /obj/structure/platform_decoration/strata/metal{ @@ -29353,10 +23949,7 @@ /area/strata/ug/interior/jungle/deep/east_carp) "cuj" = ( /obj/effect/decal/cleanable/blood/gibs/limb, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ug/interior/jungle/platform/east/scrub) "cuy" = ( /obj/structure/platform/strata{ @@ -29378,10 +23971,7 @@ dir = 1; icon_state = "p_stair_full" }, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/landingzone_checkpoint) "cuH" = ( /obj/structure/machinery/light/small{ @@ -29389,10 +23979,7 @@ pixel_y = 20 }, /obj/structure/closet/emcloset, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/outpost/engi/drome) "cuM" = ( /turf/closed/wall/strata_ice/jungle, @@ -29413,26 +24000,17 @@ /turf/open/floor/strata, /area/strata/ag/exterior/research_decks) "cva" = ( -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/exterior/research_decks) "cvb" = ( /obj/structure/platform/strata/metal{ dir = 4 }, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/exterior/research_decks) "cvc" = ( /obj/item/cell/high, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/outpost/med) "cvd" = ( /obj/structure/closet/secure_closet/medical3{ @@ -29445,10 +24023,7 @@ /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/med) "cve" = ( /obj/structure/bed/chair{ @@ -29457,18 +24032,13 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan1" - }, +/turf/open/floor/strata/cyan1/east, /area/strata/ag/interior/outpost/med) "cvf" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22" }, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ag/interior/outpost/med) "cvg" = ( /obj/structure/pipes/standard/simple/hidden/cyan, @@ -29478,26 +24048,18 @@ /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan1" - }, +/turf/open/floor/strata/cyan1/east, /area/strata/ag/interior/outpost/med) "cvl" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/medidoor, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/outpost/med) "cvn" = ( /turf/open/auto_turf/ice/layer0, /area/strata/ag/exterior/paths/southresearch) "cvC" = ( /obj/structure/closet/firecloset/full, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/outpost/engi/drome) "cvG" = ( /turf/open/gm/coast/west, @@ -29513,10 +24075,7 @@ /obj/structure/machinery/door/airlock/almayer/maint/colony{ dir = 2 }, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/dorms/south) "cwe" = ( /obj/effect/decal/strata_decals/catwalk/prison, @@ -29527,10 +24086,7 @@ /area/strata/ag/interior/administration) "cwn" = ( /obj/structure/window/framed/strata, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/interior/outpost/engi/drome) "cwq" = ( /obj/structure/flora/bush/ausbushes/grassybush, @@ -29546,17 +24102,13 @@ /turf/open/gm/dirt, /area/strata/ug/exterior/jungle/deep/carplake_center) "cwF" = ( -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/landingzone_checkpoint) "cwQ" = ( /obj/structure/machinery/landinglight/ds1/delayone{ dir = 8 }, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/strata/ag/interior/landingzone_1) "cwS" = ( /turf/open/auto_turf/ice/layer1, @@ -29566,25 +24118,18 @@ /area/strata/ag/interior/landingzone_checkpoint) "cxf" = ( /obj/structure/machinery/vending/cigarette/colony, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/landingzone_checkpoint) "cxg" = ( /obj/structure/window/framed/strata, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/landingzone_checkpoint) "cxn" = ( /obj/structure/machinery/light/small{ dir = 1; pixel_y = 20 }, -/turf/open/asphalt/cement{ - icon_state = "cement14" - }, +/turf/open/asphalt/cement/cement14, /area/strata/ag/exterior/marsh) "cxA" = ( /turf/open/gm/coast/beachcorner/south_west, @@ -29605,19 +24150,14 @@ /obj/structure/barricade/handrail/strata{ dir = 4 }, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/strata/ug/interior/jungle/platform/east/scrub) "cxW" = ( /turf/closed/wall/strata_outpost, /area/strata/ug/interior/outpost/jung/dorms/sec2) "cyi" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/interior/dorms/maintenance) "cyG" = ( /obj/structure/floodgate, @@ -29629,10 +24169,7 @@ dir = 2; name = "Medical Airlock" }, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/outpost/med) "cyQ" = ( /obj/structure/window/framed/strata, @@ -29650,9 +24187,7 @@ /obj/structure/surface/table/reinforced/prison, /obj/item/storage/box/ids, /obj/item/clothing/glasses/thermal/syndi, -/turf/open/floor/strata{ - icon_state = "purp1" - }, +/turf/open/floor/strata/purp1, /area/strata/ug/interior/jungle/deep/structures/engi) "cAq" = ( /obj/structure/flora/grass/tallgrass/ice, @@ -29686,9 +24221,7 @@ /area/strata/ug/interior/jungle/deep/east_engi) "cDt" = ( /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/strata{ - icon_state = "purp2" - }, +/turf/open/floor/strata/purp2, /area/strata/ug/interior/jungle/deep/structures/engi) "cDL" = ( /obj/item/lightstick/red/planted, @@ -29698,9 +24231,7 @@ /obj/structure/bed/nest, /obj/effect/decal/cleanable/blood/gibs/core, /obj/effect/landmark/corpsespawner/chef, -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles, /area/strata/ag/interior/dorms/hive) "cFg" = ( /obj/effect/blocker/sorokyne_cold_water, @@ -29712,9 +24243,7 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ag/interior/outpost/med) "cFp" = ( /turf/open/gm/coast/beachcorner2/south_west, @@ -29730,53 +24259,33 @@ "cGL" = ( /obj/structure/closet/bodybag, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan3" - }, +/turf/open/floor/strata/cyan3/east, /area/strata/ag/interior/outpost/med) "cHm" = ( /obj/item/weapon/gun/pistol/t73, /obj/structure/pipes/standard/manifold/hidden/cyan{ dir = 1 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/strata/ag/interior/outpost/canteen/lower_cafeteria) "cIM" = ( /obj/structure/machinery/door/airlock/prison{ dir = 1; name = "Reinforced Airlock" }, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ug/interior/outpost/jung/dorms/admin1) -"cIQ" = ( -/obj/structure/machinery/power/geothermal, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, -/area/strata/ag/interior/tcomms) "cJf" = ( /obj/item/lightstick/red/planted, /turf/open/auto_turf/ice/layer1, /area/strata/ag/exterior/marsh/center) "cKc" = ( /obj/item/reagent_container/food/drinks/bottle/sake, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ag/interior/outpost/med) "cLE" = ( /obj/structure/machinery/light/small, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ag/interior/outpost/med) "cNg" = ( /obj/effect/blocker/sorokyne_cold_water, @@ -29795,70 +24304,46 @@ /area/strata/ug/interior/jungle/deep/tearlake) "cOB" = ( /obj/effect/spawner/random/tool, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ug/interior/jungle/deep/structures/res) "cOI" = ( -/turf/open/asphalt/cement{ - icon_state = "cement14" - }, +/turf/open/asphalt/cement/cement14, /area/strata/ag/exterior/landingzone_2) "cOR" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 10 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan3" - }, +/turf/open/floor/strata/white_cyan3/west, /area/strata/ag/interior/outpost/med) "cPq" = ( /obj/structure/prop/ice_colony/surveying_device, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ug/interior/jungle/deep/structures/engi) "cRw" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/exterior/research_decks) "cRB" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/interior/outpost/engi/drome) "cSr" = ( /obj/structure/barricade/handrail/strata{ dir = 1 }, /obj/structure/machinery/vending/coffee, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/outpost/engi/drome) "cSP" = ( /obj/structure/prop/almayer/hangar_stencil, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/outpost/engi/drome) "cTN" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/computer/objective{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ug/interior/jungle/deep/structures/engi) "cUi" = ( /obj/structure/pipes/vents/pump{ @@ -29869,9 +24354,7 @@ "cUr" = ( /obj/structure/pipes/standard/simple/hidden/cyan, /obj/item/stack/catwalk, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/tcomms) "cUu" = ( /obj/structure/bed, @@ -29880,10 +24363,7 @@ /obj/item/bedsheet/medical, /obj/item/storage/large_holster/machete/full, /obj/effect/decal/cleanable/blood/gibs/core, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan2" - }, +/turf/open/floor/strata/cyan2/east, /area/strata/ag/interior/outpost/med) "cUT" = ( /obj/structure/surface/table/reinforced/prison, @@ -29891,10 +24371,7 @@ dir = 1 }, /obj/structure/machinery/computer/communications, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/interior/outpost/engi/drome) "cWs" = ( /obj/structure/barricade/handrail/strata{ @@ -29907,9 +24384,7 @@ }, /obj/item/paper_bin, /obj/item/tool/pen/blue, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/outpost/engi/drome) "cXU" = ( /turf/closed/shuttle/ert{ @@ -29920,27 +24395,24 @@ /obj/structure/barricade/handrail/strata{ dir = 1 }, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/outpost/engi/drome) "cZa" = ( /obj/effect/spawner/random/tool, /obj/effect/spawner/random/tool, /obj/structure/pipes/standard/manifold/fourway/hidden/cyan, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/dorms/hive) "cZH" = ( /obj/structure/machinery/landinglight/ds1/delaythree{ dir = 8 }, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/strata/ag/interior/landingzone_1) +"cZZ" = ( +/obj/item/fuel_cell, +/turf/open/auto_turf/snow/brown_base/layer1, +/area/strata/ag/interior/outpost/gen/bball/nest) "daq" = ( /turf/open/auto_turf/strata_grass/layer1, /area/strata/ug/interior/jungle/deep/east_carp) @@ -29963,9 +24435,7 @@ /obj/structure/surface/rack, /obj/item/stack/folding_barricade, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/research_decks/security) "ddp" = ( /turf/closed/wall/strata_outpost/reinforced, @@ -29978,16 +24448,11 @@ /obj/structure/barricade/handrail/strata{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/outpost/engi/drome) "ddU" = ( /obj/structure/machinery/door/airlock/almayer/generic, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/engi/drome/shuttle) "dgB" = ( /turf/open/floor/strata, @@ -29998,10 +24463,7 @@ pixel_y = 20 }, /obj/structure/coatrack, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ug/interior/outpost/jung/dorms/sec1) "diD" = ( /obj/item/storage/surgical_tray, @@ -30010,10 +24472,7 @@ pixel_x = -4; pixel_y = 12 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/outpost/med) "diZ" = ( /obj/effect/decal/cleanable/blood, @@ -30030,25 +24489,19 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ug/interior/jungle/deep/structures/engi) "djW" = ( /turf/closed/wall/strata_ice/dirty, /area/strata/ag/exterior/paths/north_outpost) "dks" = ( /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/almayer{ - icon_state = "test_floor5" - }, +/turf/open/floor/almayer/test_floor5, /area/strata/ag/interior/outpost/engi/drome/shuttle) "dkw" = ( /obj/structure/pipes/standard/simple/hidden/cyan, /obj/effect/spawner/random/toolbox, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/tcomms) "dmd" = ( /obj/effect/particle_effect/steam, @@ -30065,10 +24518,7 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/outpost/med) "dnR" = ( /obj/structure/machinery/light/small{ @@ -30077,18 +24527,13 @@ /obj/structure/barricade/deployable{ dir = 4 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ug/interior/outpost/jung/dorms/sec1) "dnS" = ( /obj/structure/machinery/landinglight/ds1{ dir = 1 }, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/strata/ag/interior/landingzone_1) "doO" = ( /obj/structure/machinery/weather_siren{ @@ -30106,10 +24551,7 @@ /turf/open/floor/plating, /area/strata/ag/interior/outpost/engi/drome/shuttle) "drI" = ( -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ug/interior/outpost/jung/dorms/admin2) "drQ" = ( /turf/open/gm/coast/east, @@ -30117,16 +24559,11 @@ "drS" = ( /obj/effect/decal/strata_decals/catwalk/prison, /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/outpost/canteen/personal_storage) "dsx" = ( /obj/item/tool/wrench, -/turf/open/floor/almayer{ - icon_state = "test_floor5" - }, +/turf/open/floor/almayer/test_floor5, /area/strata/ag/interior/outpost/engi/drome/shuttle) "dtt" = ( /obj/structure/stairs/perspective{ @@ -30135,10 +24572,7 @@ icon_state = "p_stair_full" }, /obj/structure/platform/strata/metal, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/interior/tcomms) "duq" = ( /obj/effect/decal/strata_decals/catwalk/prison, @@ -30147,9 +24581,7 @@ /area/strata/ug/interior/jungle/deep/structures/engi) "duQ" = ( /obj/item/tool/crowbar/red, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ug/interior/jungle/deep/structures/engi) "dvf" = ( /obj/structure/platform/strata{ @@ -30169,36 +24601,23 @@ /obj/structure/machinery/computer/cameras{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/outpost/engi/drome) "dvX" = ( /obj/effect/landmark/survivor_spawner, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/outpost/engi/drome) "dwO" = ( /obj/structure/machinery/optable, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/outpost/med) "dyZ" = ( /obj/structure/holostool, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/tcomms) "dzo" = ( /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/engi/drome) "dBe" = ( /obj/structure/bed/chair/office/light{ @@ -30220,10 +24639,12 @@ "dBV" = ( /obj/structure/largecrate/random/case/double, /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/outpost/engi/drome) +"dCb" = ( +/obj/structure/machinery/power/reactor/colony, +/turf/open/floor/strata, +/area/strata/ag/interior/outpost/engi) "dCu" = ( /obj/structure/flora/grass/tallgrass/ice/corner{ dir = 9 @@ -30233,10 +24654,7 @@ "dDr" = ( /obj/structure/bed/chair, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/strata/ag/interior/outpost/canteen/lower_cafeteria) "dDW" = ( /obj/structure/platform/strata{ @@ -30248,10 +24666,7 @@ /turf/open/gm/river, /area/strata/ag/exterior/marsh/water) "dEa" = ( -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/outpost/gen/bball) "dEy" = ( /obj/structure/closet/secure_closet/medical3{ @@ -30261,10 +24676,7 @@ dir = 1 }, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/engi/drome) "dEE" = ( /obj/structure/flora/grass/tallgrass/ice/corner{ @@ -30283,9 +24695,7 @@ /obj/structure/machinery/camera/autoname{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/outpost/engi/drome) "dFU" = ( /obj/structure/stairs/perspective{ @@ -30296,37 +24706,25 @@ /obj/structure/platform/strata/metal{ dir = 1 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/interior/tcomms) "dGv" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/outpost/engi/drome) "dGO" = ( -/turf/open/asphalt/cement{ - icon_state = "cement14" - }, +/turf/open/asphalt/cement/cement14, /area/strata/ug/interior/jungle/platform/east/scrub) "dIh" = ( /turf/open/gm/coast/west, /area/strata/ug/interior/jungle/deep/tearlake) "dIE" = ( /obj/structure/prop/turbine_extras, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ug/interior/jungle/deep/structures/engi) "dJV" = ( /obj/structure/curtain/medical, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ug/interior/outpost/jung/dorms/sec1) "dKj" = ( /turf/closed/wall/strata_ice/jungle, @@ -30373,10 +24771,7 @@ /area/strata/ug/interior/jungle/deep/hotsprings) "dQi" = ( /obj/item/stack/rods, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/dorms/canteen) "dQq" = ( /obj/structure/flora/grass/tallgrass/jungle, @@ -30408,10 +24803,7 @@ /obj/structure/barricade/handrail/strata{ dir = 4 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "orange_edge" - }, +/turf/open/floor/strata/orange_edge/east, /area/strata/ag/exterior/research_decks) "dTq" = ( /obj/structure/flora/grass/tallgrass/jungle/corner{ @@ -30421,9 +24813,7 @@ /area/strata/ug/interior/jungle/deep/hotsprings) "dTN" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ag/interior/restricted/devroom) "dUl" = ( /turf/open/auto_turf/strata_grass/layer0, @@ -30432,9 +24822,7 @@ /obj/effect/decal/warning_stripes{ icon_state = "N" }, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/outpost/gen/bball) "dWc" = ( /obj/structure/flora/pottedplant{ @@ -30449,9 +24837,7 @@ "dWu" = ( /obj/structure/surface/rack, /obj/item/weapon/gun/pistol/t73, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/outpost/security) "dXc" = ( /obj/effect/landmark/static_comms/net_one, @@ -30462,9 +24848,7 @@ /area/strata/ug/interior/outpost/jung/dorms/med1) "dXV" = ( /obj/item/stack/snow, -/turf/open/floor/prison{ - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2, /area/strata/ag/exterior/paths/north_outpost) "dYK" = ( /obj/structure/sink{ @@ -30474,10 +24858,7 @@ /obj/structure/mirror{ pixel_x = -29 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ug/interior/outpost/jung/dorms/med1) "dZl" = ( /obj/structure/flora/grass/ice/brown/snowgrassbb_1, @@ -30486,9 +24867,7 @@ "dZm" = ( /obj/structure/prop/turbine, /obj/structure/prop/turbine_extras/border, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ug/interior/jungle/deep/structures/engi) "eai" = ( /obj/structure/stairs/perspective{ @@ -30507,17 +24886,12 @@ /obj/structure/closet/secure_closet/personal, /obj/effect/decal/cleanable/blood, /obj/effect/landmark/good_item, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ug/interior/outpost/jung/dorms/admin1) "eeG" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/microwave, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ug/interior/outpost/jung/dorms/sec1) "efR" = ( /obj/structure/cryofeed, @@ -30528,10 +24902,7 @@ color = "#6e6e6e"; icon_state = "p_stair_full" }, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ug/interior/jungle/platform/east/scrub) "efT" = ( /obj/effect/decal/cleanable/blood, @@ -30567,9 +24938,7 @@ pixel_y = 20 }, /obj/item/storage/secure/briefcase, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ug/interior/outpost/jung/dorms/sec2) "ejw" = ( /obj/item/weapon/gun/pistol/t73, @@ -30581,17 +24950,11 @@ /turf/open/auto_turf/ice/layer1, /area/strata/ag/exterior/north_lz_caves) "ekh" = ( -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ug/interior/outpost/jung/dorms/sec2) "eky" = ( /obj/structure/largecrate/random/barrel/blue, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/tcomms) "ekJ" = ( /turf/closed/wall/strata_ice/jungle, @@ -30599,10 +24962,7 @@ "ekZ" = ( /obj/item/storage/belt/knifepouch, /obj/structure/surface/rack, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/outpost/engi/drome) "elr" = ( /obj/structure/flora/grass/tallgrass/ice/corner{ @@ -30610,14 +24970,6 @@ }, /turf/open/auto_turf/ice/layer0, /area/strata/ag/exterior/marsh) -"elE" = ( -/obj/structure/machinery/power/geothermal, -/obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, -/area/strata/ag/exterior/shed_five_caves) "emg" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 6 @@ -30634,9 +24986,7 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ug/interior/jungle/deep/structures/engi) "eoK" = ( /obj/structure/flora/grass/tallgrass/ice/corner{ @@ -30660,21 +25010,14 @@ /area/strata/ag/interior/tcomms) "eqS" = ( /obj/structure/reagent_dispensers/watertank, -/turf/open/floor/prison{ - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2, /area/strata/ag/exterior/research_decks) -"eqV" = ( -/turf/closed/wall/wood, -/area/strata/ag/interior/mountain) "era" = ( /obj/structure/machinery/power/apc{ dir = 1; pixel_y = 25 }, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ug/interior/jungle/deep/structures/engi) "erq" = ( /turf/open/gm/river, @@ -30686,9 +25029,6 @@ /obj/structure/barricade/snow, /turf/open/auto_turf/ice/layer2, /area/strata/ag/exterior/north_lz_caves) -"esJ" = ( -/turf/open/auto_turf/snow/brown_base/layer4, -/area/strata/ag/interior/mountain) "euc" = ( /obj/structure/platform_decoration/strata{ dir = 4 @@ -30700,9 +25040,7 @@ dir = 4 }, /obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2, /area/strata/ag/exterior/research_decks) "euZ" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, @@ -30715,15 +25053,10 @@ "exx" = ( /obj/structure/pipes/standard/simple/hidden/cyan, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/exterior/research_decks) "exO" = ( -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles, /area/strata/ag/interior/dorms/hive) "eyA" = ( /obj/structure/machinery/light/small{ @@ -30732,54 +25065,42 @@ /obj/structure/surface/table/reinforced/prison, /obj/item/storage/fancy/vials, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/strata{ - icon_state = "purp2" - }, +/turf/open/floor/strata/purp2, /area/strata/ug/interior/jungle/deep/structures/engi) "ezl" = ( /obj/structure/inflatable/door, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/exterior/tcomms/tcomms_deck) +"ezK" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/fuel_cell, +/turf/open/auto_turf/ice/layer1, +/area/strata/ag/interior/outpost/gen/bball/nest) "eBo" = ( /obj/structure/machinery/landinglight/ds2/delaytwo, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/strata/ag/exterior/landingzone_2) "eBr" = ( /obj/structure/prop/dam/van, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/exterior/vanyard) "eDc" = ( /obj/structure/bed, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ug/interior/jungle/deep/structures/engi) "eDt" = ( /obj/structure/bed{ icon_state = "abed" }, /obj/structure/machinery/door/window/eastright, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ug/interior/outpost/jung/dorms/admin1) "eEO" = ( /obj/structure/prop/turbine_extras/left, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ug/interior/jungle/deep/structures/engi) "eFa" = ( -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/strata/ag/exterior/landingzone_2) "eFA" = ( /obj/effect/decal/cleanable/blood/oil, @@ -30792,27 +25113,18 @@ /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/tcomms) "eFG" = ( /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/exterior/research_decks) "eFO" = ( /obj/structure/surface/rack, /obj/item/device/flashlight, /obj/item/device/flashlight, /obj/item/device/flashlight, -/turf/open/floor/strata{ - dir = 1; - icon_state = "red3" - }, +/turf/open/floor/strata/red3/north, /area/strata/ag/interior/outpost/med) "eGq" = ( /obj/structure/cryofeed, @@ -30830,9 +25142,7 @@ dir = 8 }, /obj/structure/barricade/handrail/strata, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/outpost/gen/bball) "eGF" = ( /obj/structure/flora/grass/tallgrass/ice/corner{ @@ -30860,9 +25170,7 @@ /obj/structure/barricade/handrail/strata{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/outpost/gen/bball) "eIT" = ( /obj/structure/closet/fireaxecabinet, @@ -30891,19 +25199,13 @@ /area/strata/ag/interior/outpost/engi/drome) "eLF" = ( /obj/structure/window/framed/strata, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/interior/landingzone_checkpoint) "eLQ" = ( /obj/structure/machinery/camera/autoname{ dir = 8 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "cyan3" - }, +/turf/open/floor/strata/cyan3/west, /area/strata/ag/interior/outpost/med) "eMz" = ( /turf/open/auto_turf/strata_grass/layer0_mud, @@ -30919,9 +25221,7 @@ "eNz" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/guestpass, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/landingzone_checkpoint) "eNF" = ( /obj/structure/surface/table/almayer, @@ -30931,17 +25231,13 @@ pixel_y = 20 }, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/landingzone_checkpoint) "eNL" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22" }, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ug/interior/jungle/deep/structures/engi) "eNW" = ( /obj/structure/machinery/weather_siren{ @@ -30955,10 +25251,7 @@ /obj/structure/bed, /obj/structure/machinery/light/small, /obj/item/bedsheet/medical, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan2" - }, +/turf/open/floor/strata/cyan2/east, /area/strata/ag/interior/outpost/med) "eOz" = ( /obj/effect/decal/cleanable/blood/oil, @@ -30973,16 +25266,11 @@ /turf/open/gm/river, /area/strata/ag/interior/restricted) "eOK" = ( -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/landingzone_checkpoint) "ePf" = ( /obj/structure/window/framed/strata, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/outpost/engi/drome) "eRk" = ( /obj/structure/stairs/perspective{ @@ -30999,55 +25287,35 @@ name = "Emergency NanoMed"; pixel_x = 30 }, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/landingzone_checkpoint) "eSs" = ( /obj/effect/decal/cleanable/blood/oil, /obj/effect/landmark/structure_spawner/xvx_hive/xeno_core, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ug/interior/jungle/deep/structures/res) "eSx" = ( /turf/closed/wall/strata_outpost/reinforced, /area/strata/ag/interior/outpost/med) "eSK" = ( -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/landingzone_checkpoint) "eSR" = ( /obj/structure/machinery/computer/emails, /obj/structure/surface/table/almayer, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/landingzone_checkpoint) "eTd" = ( /obj/structure/surface/table/almayer, /obj/item/storage/firstaid/regular, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/landingzone_checkpoint) -"eUe" = ( -/obj/structure/machinery/power/geothermal, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, -/area/strata/ag/exterior/vanyard) "eUW" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22" }, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ug/interior/jungle/deep/structures/engi) "eVc" = ( /obj/structure/platform/strata/metal{ @@ -31064,9 +25332,7 @@ pixel_y = 20 }, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/landingzone_checkpoint) "eVI" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, @@ -31074,9 +25340,7 @@ /area/strata/ag/interior/outpost/gen/bball/nest) "eXK" = ( /obj/structure/window/framed/strata/reinforced, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/gen/bball) "eZw" = ( /obj/structure/bed/chair{ @@ -31089,15 +25353,11 @@ /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/tcomms) "fbG" = ( /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ag/interior/outpost/med) "fch" = ( /obj/structure/largecrate/random, @@ -31111,21 +25371,15 @@ /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22" }, -/turf/open/floor/prison{ - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2, /area/strata/ag/interior/outpost/engi) "fhl" = ( /obj/structure/fence, -/turf/open/asphalt/cement{ - icon_state = "cement15" - }, +/turf/open/asphalt/cement/cement15, /area/strata/ag/exterior/tcomms/tcomms_deck) "fhW" = ( /obj/structure/fence, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/strata/ag/exterior/tcomms/tcomms_deck) "fil" = ( /obj/structure/machinery/weather_siren{ @@ -31135,9 +25389,7 @@ /area/strata/ag/interior/mountain) "fiD" = ( /obj/structure/fence, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/strata/ag/exterior/tcomms/tcomms_deck) "fjZ" = ( /obj/structure/platform_decoration/strata{ @@ -31152,10 +25404,7 @@ /obj/structure/barricade/snow{ dir = 8 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/exterior/research_decks) "fkD" = ( /turf/closed/shuttle/ert{ @@ -31172,9 +25421,7 @@ /obj/structure/barricade/handrail/strata{ dir = 1 }, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/strata/ag/interior/outpost/med) "fli" = ( /obj/structure/flora/bush/ausbushes/grassybush{ @@ -31191,10 +25438,7 @@ /turf/closed/wall/strata_outpost/reinforced, /area/strata/ag/interior/outpost/med) "fno" = ( -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/dorms) "fow" = ( /obj/structure/machinery/light/small{ @@ -31203,10 +25447,7 @@ /turf/open/asphalt/cement, /area/strata/ug/interior/jungle/platform/east/scrub) "foN" = ( -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/exterior/research_decks) "fqQ" = ( /obj/structure/flora/grass/tallgrass/ice/corner{ @@ -31226,16 +25467,11 @@ /obj/structure/pipes/standard/manifold/hidden/cyan{ dir = 8 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/exterior/research_decks) "frL" = ( /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/outpost/admin) "fst" = ( /obj/item/lightstick/red/spoke/planted{ @@ -31252,9 +25488,7 @@ /obj/structure/prop/ice_colony/ground_wire{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "purp2" - }, +/turf/open/floor/strata/purp2, /area/strata/ug/interior/jungle/deep/south_engi) "fsJ" = ( /obj/structure/flora/grass/tallgrass/ice/corner{ @@ -31274,17 +25508,13 @@ pixel_y = 20 }, /obj/effect/landmark/objective_landmark/far, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/dorms/flight_control) "fuA" = ( /obj/structure/machinery/landinglight/ds1/delaythree{ dir = 1 }, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/strata/ag/interior/landingzone_1) "fuX" = ( /obj/effect/decal/cleanable/blood/gibs/limb, @@ -31299,10 +25529,7 @@ dir = 4 }, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/tcomms) "fvt" = ( /obj/effect/decal/cleanable/blood, @@ -31312,6 +25539,10 @@ /obj/structure/dropship_equipment/mg_holder, /turf/open/floor/strata, /area/strata/ug/interior/outpost/jung/dorms/sec1) +"fwi" = ( +/obj/structure/machinery/power/reactor/colony, +/turf/open/floor/prison/floor_plate, +/area/strata/ag/interior/dorms) "fwV" = ( /obj/structure/flora/grass/ice/brown/snowgrassbb_1, /turf/open/auto_turf/snow/brown_base/layer3, @@ -31320,30 +25551,31 @@ /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/exterior/research_decks) "fxO" = ( /obj/structure/machinery/door/airlock/prison{ name = "Reinforced Airlock" }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ug/interior/outpost/jung/dorms/admin3) "fyP" = ( /obj/structure/blocker/forcefield/multitile_vehicles, /turf/closed/wall/strata_outpost, /area/strata/ug/interior/jungle/deep/east_dorms) +"fyU" = ( +/obj/structure/barricade/handrail/strata{ + dir = 4 + }, +/obj/structure/platform_decoration/strata/metal{ + dir = 4 + }, +/obj/item/fuel_cell, +/turf/open/floor/strata/red2, +/area/strata/ag/interior/outpost/engi) "fzn" = ( /obj/structure/closet/secure_closet/freezer/fridge, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ug/interior/outpost/jung/dorms/admin1) "fzz" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ @@ -31363,9 +25595,7 @@ /area/strata/ug/interior/jungle/deep/structures/engi) "fzJ" = ( /obj/structure/curtain/medical, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ug/interior/outpost/jung/dorms/admin3) "fzN" = ( /obj/structure/barricade/snow{ @@ -31387,10 +25617,7 @@ /area/strata/ag/exterior/research_decks) "fBk" = ( /obj/structure/window/framed/strata/reinforced, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ug/interior/jungle/deep/structures/engi) "fBu" = ( /obj/structure/sink{ @@ -31400,10 +25627,7 @@ /obj/structure/mirror{ pixel_x = -29 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ug/interior/outpost/jung/dorms/admin2) "fBC" = ( /obj/effect/decal/strata_decals/catwalk/prison, @@ -31414,10 +25638,7 @@ /area/strata/ag/exterior/research_decks) "fBY" = ( /obj/structure/machinery/iv_drip, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan2" - }, +/turf/open/floor/strata/cyan2/east, /area/strata/ag/interior/outpost/med) "fCo" = ( /obj/structure/flora/grass/tallgrass/jungle/corner{ @@ -31458,9 +25679,7 @@ /area/strata/ug/interior/jungle/deep/east_engi) "fHp" = ( /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/dorms) "fHW" = ( /obj/structure/platform_decoration/strata/metal{ @@ -31484,10 +25703,7 @@ /area/strata/ag/interior/tcomms) "fKt" = ( /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/maint/canteen_e_1) "fKT" = ( /turf/open/gm/river, @@ -31509,10 +25725,7 @@ /obj/item/explosive/grenade/custom/cleaner, /obj/item/storage/pill_bottle/bicaridine/skillless, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/med) "fMr" = ( /obj/structure/machinery/light/small{ @@ -31537,10 +25750,7 @@ "fMS" = ( /obj/structure/machinery/light/small, /obj/effect/decal/cleanable/blood, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/tcomms) "fNs" = ( /obj/effect/blocker/sorokyne_cold_water, @@ -31559,28 +25769,21 @@ /turf/open/floor/plating, /area/strata/ag/interior/tcomms) "fOX" = ( -/turf/open/asphalt/cement{ - icon_state = "cement14" - }, +/turf/open/asphalt/cement/cement14, /area/strata/ag/exterior/tcomms/tcomms_deck) "fPO" = ( /turf/open/auto_turf/ice/layer1, /area/strata/ag/interior/mountain) "fQG" = ( /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ug/interior/jungle/deep/structures/res) "fRa" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/computer/station_alert{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/administration) "fRi" = ( /obj/structure/platform_decoration/strata{ @@ -31589,9 +25792,7 @@ /turf/open/auto_turf/ice/layer0, /area/strata/ag/exterior/marsh) "fRv" = ( -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/exterior/marsh/crash) "fSr" = ( /obj/structure/machinery/weather_siren{ @@ -31610,15 +25811,11 @@ /obj/structure/surface/table/reinforced/prison, /obj/item/reagent_container/food/drinks/bottle/sake, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/strata{ - icon_state = "orange_tile" - }, +/turf/open/floor/strata/orange_tile, /area/strata/ag/interior/dorms) "fXU" = ( /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/strata/ag/exterior/marsh/crash) "fXV" = ( /obj/structure/pipes/vents/pump{ @@ -31627,20 +25824,14 @@ /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan1" - }, +/turf/open/floor/strata/cyan1/east, /area/strata/ag/interior/outpost/med) "fYE" = ( /obj/structure/inflatable, /obj/structure/barricade/handrail/strata{ dir = 4 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "orange_edge" - }, +/turf/open/floor/strata/orange_edge/east, /area/strata/ag/exterior/research_decks) "fZe" = ( /obj/effect/decal/cleanable/blood/gibs/core, @@ -31673,16 +25864,11 @@ /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/outpost/med) "gbU" = ( /obj/structure/barricade/handrail/strata, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/strata/ag/interior/outpost/med) "gcj" = ( /turf/open/gm/coast/beachcorner2/south_east, @@ -31692,27 +25878,19 @@ /obj/structure/machinery/door/window/eastright{ dir = 1 }, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ug/interior/jungle/deep/structures/engi) "gfd" = ( /obj/structure/barricade/handrail/wire{ layer = 3.5 }, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/tcomms) "gfC" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/med) "gfI" = ( /obj/structure/bed/chair{ @@ -31723,17 +25901,11 @@ "ggr" = ( /obj/structure/filingcabinet, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ug/interior/outpost/jung/dorms/sec1) "ggH" = ( /obj/structure/reagent_dispensers/water_cooler, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/outpost/med) "ggJ" = ( /obj/structure/surface/table/reinforced/prison, @@ -31743,20 +25915,14 @@ pixel_x = 8; pixel_y = 6 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/outpost/med) "gha" = ( /obj/structure/inflatable, /obj/structure/barricade/handrail/strata{ dir = 8 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "orange_edge" - }, +/turf/open/floor/strata/orange_edge/west, /area/strata/ag/exterior/research_decks) "ghi" = ( /turf/closed/wall/strata_outpost/reinforced/hull, @@ -31769,18 +25935,13 @@ /obj/structure/machinery/door/window/eastright{ dir = 2 }, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ug/interior/outpost/jung/dorms/admin1) "ghM" = ( /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/outpost/med) "ghV" = ( /obj/structure/sign/safety/medical, @@ -31795,9 +25956,7 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/landingzone_checkpoint) "gih" = ( /obj/effect/decal/strata_decals/catwalk/prison, @@ -31810,9 +25969,7 @@ /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ag/interior/outpost/med) "gjk" = ( /obj/structure/pipes/vents/pump, @@ -31836,10 +25993,7 @@ /area/strata/ag/exterior/marsh/center) "gjP" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_nest, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/gen/bball/nest) "gkt" = ( /turf/open/auto_turf/snow/brown_base/layer2, @@ -31857,16 +26011,11 @@ pixel_x = 8; pixel_y = 6 }, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ug/interior/jungle/deep/structures/engi) "glG" = ( /obj/structure/machinery/power/port_gen/pacman/super, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/gen/bball/nest) "glL" = ( /turf/open/auto_turf/snow/brown_base/layer1, @@ -31911,19 +26060,14 @@ /obj/structure/bed/chair/office/light{ dir = 1 }, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/outpost/engi/drome) "gqa" = ( /obj/structure/machinery/space_heater, /obj/structure/platform/strata/metal{ dir = 1 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ug/interior/outpost/jung/dorms/admin3) "gqF" = ( /obj/structure/surface/table/reinforced/prison, @@ -31935,19 +26079,14 @@ /obj/structure/barricade/handrail/strata{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/outpost/engi/drome) "grd" = ( /obj/structure/machinery/camera/autoname{ dir = 8 }, /obj/structure/barricade/handrail/strata, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/interior/outpost/engi/drome) "grs" = ( /turf/closed/shuttle/ert{ @@ -31963,17 +26102,11 @@ /obj/structure/platform/strata/metal{ dir = 4 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ug/interior/outpost/jung/dorms/med2) "grP" = ( /obj/effect/landmark/corpsespawner/security/liaison, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/strata/ag/interior/outpost/canteen/bar) "gtZ" = ( /obj/effect/blocker/sorokyne_cold_water, @@ -32004,9 +26137,7 @@ dir = 4; icon_state = "pipe-c" }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/strata/ag/interior/outpost/engi/drome/shuttle) "guV" = ( /obj/structure/flora/bush/ausbushes/grassybush{ @@ -32018,25 +26149,17 @@ /obj/item/storage/toolbox/electrical, /obj/item/storage/toolbox/electrical, /obj/structure/surface/rack, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/outpost/engi/drome) "gvR" = ( /obj/structure/bookcase, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/tcomms) "gzd" = ( /turf/open/gm/coast/east, /area/strata/ug/interior/jungle/deep/south_engi) "gAm" = ( -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/outpost/security) "gAv" = ( /obj/structure/surface/rack{ @@ -32077,10 +26200,7 @@ /area/strata/ag/interior/mountain) "gFf" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/tcomms) "gFH" = ( /obj/structure/cryofeed/right, @@ -32090,16 +26210,11 @@ "gFT" = ( /obj/structure/largecrate/random, /obj/structure/barricade/handrail/strata, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/strata/ug/interior/jungle/platform/east/scrub) "gGX" = ( /obj/effect/landmark/queen_spawn, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/gen/bball/nest) "gHQ" = ( /obj/item/stack/sheet/wood, @@ -32120,10 +26235,7 @@ /obj/structure/platform/strata/metal{ dir = 8 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/exterior/research_decks) "gIY" = ( /obj/effect/blocker/sorokyne_cold_water, @@ -32155,10 +26267,12 @@ /obj/structure/platform/strata/metal{ dir = 1 }, -/turf/open/floor/strata{ - icon_state = "red3" - }, +/turf/open/floor/strata/red3, /area/strata/ag/interior/outpost/med) +"gOC" = ( +/obj/structure/machinery/power/reactor/colony, +/turf/open/floor/strata/floor3/east, +/area/strata/ag/exterior/shed_five_caves) "gOL" = ( /obj/effect/decal/cleanable/blood/oil/streak, /turf/open/asphalt/cement, @@ -32167,9 +26281,7 @@ /obj/structure/bed/chair/dropship/passenger{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/strata/ag/interior/outpost/engi/drome/shuttle) "gPL" = ( /obj/structure/inflatable, @@ -32188,15 +26300,10 @@ /obj/structure/machinery/door/window/eastright{ dir = 1 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ug/interior/outpost/jung/dorms/sec2) "gRK" = ( -/turf/open/asphalt/cement{ - icon_state = "cement15" - }, +/turf/open/asphalt/cement/cement15, /area/strata/ag/exterior/tcomms/tcomms_deck) "gRO" = ( /obj/structure/sign/nosmoking_1, @@ -32220,9 +26327,7 @@ "gTk" = ( /obj/structure/bed/chair, /obj/effect/landmark/survivor_spawner, -/turf/open/floor/prison{ - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2, /area/strata/ag/exterior/research_decks) "gTx" = ( /obj/effect/blocker/sorokyne_cold_water, @@ -32246,10 +26351,7 @@ dir = 4 }, /obj/structure/barricade/handrail/strata, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/interior/outpost/engi/drome) "gTZ" = ( /obj/effect/decal/strata_decals/catwalk/prison, @@ -32259,10 +26361,7 @@ "gUj" = ( /obj/item/storage/toolbox/electrical, /obj/structure/surface/rack, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/outpost/engi/drome) "gUp" = ( /obj/structure/machinery/light/small{ @@ -32293,9 +26392,7 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "purp2" - }, +/turf/open/floor/strata/purp2, /area/strata/ug/interior/jungle/deep/structures/engi) "gXX" = ( /obj/structure/surface/table/reinforced/prison, @@ -32303,21 +26400,15 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/outpost/engi/drome) "gZp" = ( /obj/item/tank/emergency_oxygen/engi, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/strata/ag/exterior/marsh/crash) "gZP" = ( /obj/structure/machinery/colony_floodlight, -/turf/open/floor/prison{ - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2, /area/strata/ag/exterior/research_decks) "haw" = ( /obj/structure/surface/table/reinforced/prison, @@ -32325,17 +26416,13 @@ pixel_x = 8; pixel_y = 6 }, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/outpost/engi/drome) "haN" = ( /obj/structure/largecrate/random, /obj/item/trash/pistachios, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/prison{ - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2, /area/strata/ag/interior/outpost/engi) "haU" = ( /obj/structure/machinery/power/apc{ @@ -32351,17 +26438,11 @@ /obj/structure/platform/strata/metal{ dir = 1 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ug/interior/outpost/jung/dorms/admin3) "hcg" = ( /obj/item/tool/pen/blue, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/exterior/research_decks) "hcO" = ( /obj/structure/machinery/light/small{ @@ -32373,16 +26454,10 @@ /obj/structure/machinery/door/airlock/prison{ name = "Reinforced Airlock" }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ug/interior/outpost/jung/dorms/admin2) "hel" = ( -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ug/interior/outpost/jung/dorms/sec1) "heO" = ( /obj/structure/sign/safety/bulkhead_door, @@ -32404,17 +26479,12 @@ pixel_x = -29 }, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ug/interior/outpost/jung/dorms/admin3) "hgI" = ( /obj/structure/largecrate/random/barrel/green, /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/outpost/engi/drome) "hhW" = ( /obj/effect/blocker/sorokyne_cold_water, @@ -32462,10 +26532,7 @@ "hmf" = ( /obj/structure/largecrate/random, /obj/structure/barricade/handrail/strata, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/exterior/research_decks) "hms" = ( /obj/structure/flora/grass/tallgrass/ice/corner{ @@ -32481,9 +26548,7 @@ /obj/structure/closet/secure_closet/personal, /obj/item/storage/secure/briefcase, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ug/interior/outpost/jung/dorms/sec2) "hni" = ( /obj/structure/surface/table/reinforced/prison, @@ -32493,9 +26558,7 @@ /obj/effect/spawner/random/toolbox{ pixel_y = 12 }, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/outpost/engi/drome) "hpe" = ( /obj/structure/largecrate/hunter_games_ammo/good, @@ -32503,9 +26566,7 @@ /area/strata/ag/exterior/marsh) "hpD" = ( /obj/structure/curtain/medical, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ug/interior/outpost/jung/dorms/med2) "hqw" = ( /obj/effect/blocker/sorokyne_cold_water, @@ -32522,9 +26583,7 @@ /obj/structure/surface/rack, /obj/effect/landmark/good_item, /obj/structure/barricade/handrail/strata, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ug/interior/jungle/deep/structures/engi) "hsV" = ( /obj/structure/machinery/space_heater, @@ -32554,18 +26613,13 @@ /obj/structure/machinery/landinglight/ds2{ dir = 8 }, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/strata/ag/exterior/landingzone_2) "hvj" = ( /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "cyan3" - }, +/turf/open/floor/strata/cyan3/west, /area/strata/ag/interior/outpost/med) "hwD" = ( /obj/structure/platform/strata/metal{ @@ -32583,10 +26637,7 @@ dir = 4; icon_state = "p_stair_sn_full_cap" }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/interior/outpost/canteen) "hyu" = ( /obj/effect/landmark/corpsespawner/russian, @@ -32596,16 +26647,11 @@ /obj/structure/machinery/landinglight/ds2/delaythree{ dir = 8 }, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/strata/ag/exterior/landingzone_2) "hCp" = ( /obj/item/reagent_container/food/drinks/cans/beer, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/strata/ag/interior/dorms/canteen) "hDX" = ( /obj/structure/stairs/perspective{ @@ -32622,10 +26668,7 @@ /area/strata/ag/interior/outpost/canteen) "hEF" = ( /obj/structure/inflatable/door, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/exterior/research_decks) "hFm" = ( /turf/open/gm/coast/beachcorner2/north_west, @@ -32634,9 +26677,7 @@ /obj/structure/platform/strata/metal{ dir = 1 }, -/turf/open/floor/strata{ - icon_state = "red3" - }, +/turf/open/floor/strata/red3, /area/strata/ag/interior/outpost/med) "hGm" = ( /obj/structure/stairs/perspective{ @@ -32663,10 +26704,7 @@ "hHm" = ( /obj/item/stack/rods, /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/gen/bball/nest) "hHK" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_core, @@ -32677,35 +26715,24 @@ dir = 1 }, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/engi) "hIb" = ( /obj/structure/largecrate/random/secure, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/strata/ag/exterior/marsh/crash) "hIt" = ( -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ug/interior/outpost/jung/dorms/med1) "hJC" = ( /obj/structure/machinery/light/small, -/turf/open/asphalt/cement{ - icon_state = "cement14" - }, +/turf/open/asphalt/cement/cement14, /area/strata/ug/interior/jungle/platform/east/scrub) "hJE" = ( /turf/open/gm/river, /area/strata/ug/interior/jungle/deep/east_dorms) "hJT" = ( -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/strata/ag/exterior/paths/north_outpost) "hLf" = ( /obj/structure/reagent_dispensers/fueltank, @@ -32720,19 +26747,13 @@ /area/strata/ug/exterior/jungle/deep/carplake_center) "hOw" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/interior/tcomms) "hOD" = ( /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/tcomms) "hPr" = ( /turf/open/auto_turf/ice/layer2, @@ -32746,10 +26767,7 @@ /obj/structure/platform/strata/metal{ dir = 4 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ug/interior/outpost/jung/dorms/med2) "hQq" = ( /obj/effect/decal/strata_decals/catwalk/prison, @@ -32762,19 +26780,14 @@ /area/strata/ag/exterior/marsh/crash) "hTU" = ( /obj/structure/reagent_dispensers/water_cooler/stacks, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/tcomms) "hTX" = ( /obj/structure/window/reinforced/tinted, /obj/item/device/flashlight/lamp, /obj/structure/surface/table/reinforced/prison, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/administration) "hUJ" = ( /obj/effect/decal/strata_decals/catwalk/prison, @@ -32817,10 +26830,7 @@ pixel_x = -23; start_charge = 0 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/exterior/vanyard) "ibH" = ( /obj/item/trash/pistachios, @@ -32840,9 +26850,7 @@ /obj/structure/barricade/handrail/strata{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/outpost/gen/bball) "icG" = ( /obj/item/lightstick/red/spoke/planted{ @@ -32859,17 +26867,13 @@ /obj/structure/prop/ice_colony/ground_wire{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "purp2" - }, +/turf/open/floor/strata/purp2, /area/strata/ug/interior/jungle/deep/tearlake) "idq" = ( /obj/structure/machinery/camera/autoname{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "purp2" - }, +/turf/open/floor/strata/purp2, /area/strata/ug/interior/jungle/deep/structures/engi) "idW" = ( /turf/closed/wall/strata_outpost/reinforced/hull, @@ -32885,28 +26889,19 @@ dir = 4 }, /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor/strata{ - dir = 4; - icon_state = "orange_edge" - }, +/turf/open/floor/strata/orange_edge/east, /area/strata/ag/interior/dorms) "ihd" = ( /obj/structure/bookcase{ icon_state = "book-5" }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/tcomms) "ihy" = ( /obj/structure/bookcase{ icon_state = "book-5" }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ug/interior/outpost/jung/dorms/sec1) "ijo" = ( /turf/closed/wall/strata_outpost/reinforced, @@ -32925,9 +26920,7 @@ /area/strata/ag/exterior/marsh) "imV" = ( /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/research_decks/security) "imZ" = ( /obj/structure/flora/grass/tallgrass/ice/corner{ @@ -32939,17 +26932,13 @@ /turf/open/auto_turf/ice/layer1, /area/strata/ag/exterior/marsh) "ioi" = ( -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles, /area/strata/ug/interior/jungle/platform/east/scrub) "ioz" = ( /obj/structure/bed/nest, /obj/effect/decal/cleanable/blood/gibs/core, /obj/effect/landmark/corpsespawner/upp, -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles, /area/strata/ag/interior/dorms/hive) "ioM" = ( /obj/structure/surface/table/almayer, @@ -32961,9 +26950,7 @@ dir = 8 }, /obj/structure/barricade/handrail/strata, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ug/interior/jungle/deep/structures/engi) "iqe" = ( /obj/item/lightstick, @@ -32999,10 +26986,7 @@ /obj/structure/bed/chair/office/dark{ dir = 8 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/landingzone_checkpoint) "isa" = ( /turf/open/floor/strata, @@ -33017,15 +27001,10 @@ /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/outpost/security) "isu" = ( -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/landingzone_checkpoint) "isY" = ( /obj/structure/machinery/space_heater, @@ -33041,19 +27020,14 @@ /area/strata/ag/interior/outpost/med) "itG" = ( /obj/structure/machinery/disposal, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/tcomms) "iuf" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22" }, -/turf/open/floor/strata{ - icon_state = "purp2" - }, +/turf/open/floor/strata/purp2, /area/strata/ug/interior/jungle/deep/structures/engi) "iuh" = ( /obj/structure/sink{ @@ -33064,10 +27038,7 @@ pixel_x = -29 }, /obj/item/weapon/gun/pistol/t73, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ug/interior/outpost/jung/dorms/sec1) "iuB" = ( /obj/structure/machinery/light/small{ @@ -33088,9 +27059,7 @@ /obj/structure/machinery/landinglight/ds2/delaythree{ dir = 4 }, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/strata/ag/exterior/landingzone_2) "iws" = ( /obj/structure/flora/grass/ice/brown/snowgrassbb_2, @@ -33102,10 +27071,7 @@ "ixb" = ( /obj/effect/decal/cleanable/blood/oil, /obj/structure/closet/bodybag, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/tcomms) "ixu" = ( /obj/effect/blocker/sorokyne_cold_water, @@ -33120,23 +27086,15 @@ /turf/open/gm/river, /area/strata/ag/exterior/marsh/river) "ixD" = ( -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ug/interior/jungle/deep/structures/engi) "ixQ" = ( /obj/structure/machinery/vending/cigarette/colony, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan3" - }, +/turf/open/floor/strata/cyan3/east, /area/strata/ag/interior/outpost/med) "ixS" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/interior/landingzone_checkpoint) "iym" = ( /obj/structure/barricade/handrail/strata{ @@ -33145,17 +27103,13 @@ /obj/structure/barricade/handrail/strata{ dir = 4 }, -/turf/open/asphalt/cement{ - icon_state = "cement9" - }, +/turf/open/asphalt/cement/cement9, /area/strata/ag/exterior/marsh) "izc" = ( /obj/structure/bed/nest, /obj/effect/decal/cleanable/blood/gibs/core, /obj/effect/landmark/corpsespawner/russian, -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles, /area/strata/ag/interior/dorms/hive) "iAA" = ( /obj/structure/machinery/power/apc{ @@ -33183,9 +27137,7 @@ /area/strata/ug/interior/jungle/deep/tearlake) "iBV" = ( /obj/item/stack/catwalk, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/strata/ag/interior/outpost/engi/drome/shuttle) "iBZ" = ( /obj/effect/landmark/objective_landmark/medium, @@ -33214,16 +27166,12 @@ /area/strata/ug/interior/outpost/jung/dorms/med1) "iGN" = ( /obj/effect/landmark/monkey_spawn, -/turf/open/floor/strata{ - icon_state = "purp2" - }, +/turf/open/floor/strata/purp2, /area/strata/ug/interior/jungle/deep/structures/engi) "iGR" = ( /obj/structure/bed/nest, /obj/effect/landmark/corpsespawner/miner, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ug/interior/jungle/deep/minehead) "iHX" = ( /obj/structure/largecrate/random/case/double, @@ -33272,19 +27220,14 @@ /obj/structure/barricade/handrail/strata{ dir = 4 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/exterior/research_decks) "iLr" = ( /obj/structure/fence, /turf/open/auto_turf/ice/layer1, /area/strata/ag/exterior/nearlz2) "iLJ" = ( -/turf/open/floor/prison{ - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2, /area/strata/ag/exterior/research_decks) "iMn" = ( /obj/structure/surface/rack{ @@ -33295,10 +27238,7 @@ "iMP" = ( /obj/structure/machinery/faxmachine, /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/tcomms) "iNe" = ( /obj/structure/pipes/vents/pump{ @@ -33310,26 +27250,18 @@ /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2, /area/strata/ag/exterior/research_decks) "iOi" = ( /obj/structure/pipes/standard/simple/hidden/cyan, /obj/structure/machinery/door/airlock/almayer/maint/colony{ dir = 2 }, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/tcomms) "iPd" = ( /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/exterior/research_decks) "iPw" = ( /mob/living/simple_animal/hostile/retaliate/clown{ @@ -33345,16 +27277,12 @@ /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/exterior/vanyard) "iQt" = ( /obj/structure/surface/table/reinforced/prison, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/outpost/admin) "iQS" = ( /obj/effect/blocker/sorokyne_cold_water, @@ -33396,27 +27324,21 @@ dir = 8 }, /obj/effect/landmark/objective_landmark/far, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/outpost/admin) "iVZ" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/computer/cameras{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/landingzone_checkpoint) "iWi" = ( /obj/effect/decal/cleanable/blood/oil, /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/tcomms) "iWG" = ( /obj/structure/barricade/snow, @@ -33449,23 +27371,15 @@ }, /obj/item/storage/fancy/vials, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan1" - }, +/turf/open/floor/strata/cyan1/east, /area/strata/ug/interior/outpost/jung/dorms/med2) "iZr" = ( -/turf/open/asphalt/cement{ - icon_state = "cement2" - }, +/turf/open/asphalt/cement/cement2, /area/strata/ug/interior/jungle/platform/east/scrub) "iZw" = ( /obj/structure/closet/firecloset/full, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/engi/drome) "iZI" = ( /obj/effect/decal/cleanable/greenglow, @@ -33473,10 +27387,7 @@ /area/strata/ag/exterior/research_decks) "jam" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan2" - }, +/turf/open/floor/strata/cyan2/east, /area/strata/ag/interior/outpost/med) "jaZ" = ( /obj/structure/cargo_container/wy/mid{ @@ -33507,18 +27418,20 @@ /area/strata/ag/interior/outpost/security) "jeF" = ( /obj/structure/machinery/space_heater, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ug/interior/jungle/deep/structures/engi) "jeZ" = ( /obj/structure/surface/rack, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ug/interior/jungle/deep/structures/res) +"jfh" = ( +/obj/item/fuel_cell, +/obj/structure/barricade/handrail/strata{ + dir = 1 + }, +/turf/open/floor/strata/floor3, +/area/strata/ag/interior/dorms) "jgX" = ( /obj/effect/decal/strata_decals/catwalk/prison, /obj/structure/barricade/handrail/strata{ @@ -33527,9 +27440,7 @@ /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/exterior/marsh/river) "jhl" = ( /obj/structure/machinery/weather_siren{ @@ -33540,22 +27451,15 @@ /turf/closed/wall/strata_outpost, /area/strata/ag/exterior/research_decks) "jit" = ( -/turf/open/asphalt/cement{ - icon_state = "cement2" - }, +/turf/open/asphalt/cement/cement2, /area/strata/ag/exterior/landingzone_2) "jiQ" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/strata{ - icon_state = "purp2" - }, +/turf/open/floor/strata/purp2, /area/strata/ug/interior/jungle/deep/structures/engi) "jjw" = ( /obj/structure/machinery/space_heater, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/exterior/research_decks) "jjJ" = ( /turf/closed/wall/strata_outpost, @@ -33571,10 +27475,7 @@ /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan1" - }, +/turf/open/floor/strata/cyan1/east, /area/strata/ag/interior/outpost/med) "jkf" = ( /obj/structure/closet/secure_closet/medical3{ @@ -33583,48 +27484,39 @@ /obj/item/storage/pill_bottle/imidazoline, /obj/item/storage/pill_bottle/imidazoline, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/med) "jkp" = ( -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/outpost/med) "jmy" = ( /obj/effect/decal/cleanable/blood/oil/streak, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/exterior/vanyard) "jmH" = ( /obj/structure/machinery/vending/snack, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/outpost/med) "jmP" = ( -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/interior/outpost/engi) "jnH" = ( /obj/structure/prop/dam/drill, /turf/open/floor/plating, /area/strata/ag/exterior/marsh/crash) +"jqg" = ( +/obj/structure/surface/rack, +/obj/structure/machinery/light/small{ + dir = 1 + }, +/obj/item/book/manual/detective, +/turf/open/floor/strata, +/area/strata/ag/interior/dorms) "jrs" = ( /obj/structure/machinery/door/airlock/prison{ name = "Reinforced Airlock" }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ug/interior/outpost/jung/dorms/sec2) "jrw" = ( /obj/structure/barricade/wooden{ @@ -33638,22 +27530,16 @@ /area/strata/ag/exterior/paths/cabin_area) "jrU" = ( /obj/structure/machinery/light/small, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/outpost/med) "jsd" = ( /obj/structure/machinery/cm_vending/sorted/medical/no_access, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/obj/structure/medical_supply_link, +/turf/open/floor/strata/floor2, /area/strata/ag/interior/outpost/med) "jso" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/tcomms) "jsw" = ( /obj/structure/closet/bodybag, @@ -33677,16 +27563,11 @@ /obj/structure/surface/rack{ layer = 2.5 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/tcomms) "jtB" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ug/interior/outpost/jung/dorms/admin2) "juY" = ( /obj/effect/decal/cleanable/dirt, @@ -33704,20 +27585,14 @@ /area/strata/ag/interior/outpost/admin) "jyq" = ( /obj/structure/window/framed/strata, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/interior/dorms/south) "jyE" = ( /obj/structure/machinery/light/small{ dir = 1; pixel_y = 20 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/interior/outpost/med) "jyO" = ( /obj/structure/stairs/perspective{ @@ -33728,10 +27603,7 @@ /area/strata/ag/exterior/research_decks) "jzD" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/comdoor/colony, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ug/interior/jungle/deep/structures/engi) "jAo" = ( /obj/effect/blocker/sorokyne_cold_water, @@ -33744,16 +27616,15 @@ /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan3" - }, +/turf/open/floor/strata/white_cyan3/east, /area/strata/ag/interior/outpost/med) +"jBp" = ( +/obj/structure/machinery/power/reactor/colony, +/turf/open/floor/strata/floor3, +/area/strata/ag/interior/outpost/admin) "jBO" = ( /obj/structure/machinery/light/small, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/outpost/engi/drome) "jCE" = ( /obj/effect/decal/cleanable/blood/oil, @@ -33761,10 +27632,7 @@ /area/strata/ug/interior/jungle/platform/east/scrub) "jCU" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ug/interior/outpost/jung/dorms/admin1) "jDr" = ( /obj/structure/machinery/light/small{ @@ -33782,10 +27650,7 @@ /obj/structure/platform/strata/metal{ dir = 4 }, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ug/interior/jungle/platform/east/scrub) "jEB" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ @@ -33804,15 +27669,22 @@ /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan1" - }, +/turf/open/floor/strata/cyan1/east, /area/strata/ag/interior/outpost/engi/drome) "jFO" = ( /obj/effect/landmark/static_comms/net_two, /turf/open/auto_turf/snow/brown_base/layer0, /area/strata/ag/exterior/marsh/center) +"jIv" = ( +/obj/item/fuel_cell, +/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, +/obj/structure/machinery/light/small{ + dir = 1; + pixel_y = 20 + }, +/obj/structure/barricade/handrail/strata, +/turf/open/floor/strata/multi_tiles, +/area/strata/ag/interior/dorms/hive) "jIz" = ( /obj/structure/machinery/weather_siren{ dir = 1; @@ -33823,10 +27695,7 @@ /area/strata/ag/interior/tcomms) "jJv" = ( /obj/structure/machinery/photocopier, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan1" - }, +/turf/open/floor/strata/cyan1/east, /area/strata/ag/interior/outpost/engi/drome) "jJy" = ( /obj/structure/flora/bush/ausbushes/grassybush{ @@ -33836,17 +27705,13 @@ /area/strata/ug/interior/jungle/deep/tearlake) "jKf" = ( /obj/structure/largecrate/random/secure, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/strata/ag/exterior/tcomms/tcomms_deck) "jKi" = ( /obj/structure/pipes/standard/manifold/hidden/cyan{ dir = 1 }, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/outpost/canteen) "jLb" = ( /turf/open/auto_turf/strata_grass/layer1, @@ -33860,9 +27725,7 @@ /obj/item/paper_bin, /obj/item/tool/pen/blue, /obj/structure/pipes/vents/pump/on, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/outpost/engi/drome) "jMD" = ( /obj/effect/blocker/sorokyne_cold_water, @@ -33877,16 +27740,11 @@ /turf/open/gm/river, /area/strata/ag/exterior/marsh/center) "jMV" = ( -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/tcomms) "jNJ" = ( /obj/structure/machinery/disposal, -/turf/open/floor/strata{ - icon_state = "purp2" - }, +/turf/open/floor/strata/purp2, /area/strata/ug/interior/jungle/deep/structures/engi) "jOp" = ( /obj/structure/machinery/light/small{ @@ -33904,19 +27762,22 @@ /obj/structure/machinery/door/airlock/almayer/command{ dir = 2 }, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ug/interior/jungle/deep/structures/engi) "jPQ" = ( /obj/structure/machinery/landinglight/ds2{ dir = 4 }, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/strata/ag/exterior/landingzone_2) +"jPT" = ( +/obj/item/fuel_cell, +/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, +/obj/structure/barricade/handrail/strata{ + dir = 8 + }, +/turf/open/floor/strata/multi_tiles, +/area/strata/ag/interior/dorms/hive) "jPV" = ( /obj/structure/flora/grass/tallgrass/jungle/corner, /turf/open/auto_turf/strata_grass/layer1, @@ -33929,10 +27790,7 @@ dir = 8 }, /obj/effect/landmark/survivor_spawner, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan2" - }, +/turf/open/floor/strata/cyan2/east, /area/strata/ag/interior/outpost/med) "jUA" = ( /turf/open/auto_turf/strata_grass/layer1, @@ -33956,17 +27814,12 @@ icon_state = "xgib2" }, /obj/effect/decal/cleanable/blood, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/exterior/research_decks) "jVU" = ( /obj/effect/landmark/corpsespawner/doctor, /obj/effect/decal/cleanable/blood, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/tcomms) "jWi" = ( /obj/structure/surface/table/reinforced/prison, @@ -33976,17 +27829,13 @@ /obj/structure/machinery/camera/autoname{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/research_decks/security) "jWk" = ( /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/outpost/engi/drome) "jWs" = ( /turf/open/floor/plating, @@ -34002,10 +27851,7 @@ /obj/item/ammo_magazine/revolver/cmb, /obj/item/ammo_magazine/revolver/cmb, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/tcomms) "jXQ" = ( /obj/structure/flora/grass/tallgrass/ice/corner{ @@ -34015,10 +27861,7 @@ /area/strata/ag/exterior/marsh/crash) "jXV" = ( /obj/structure/window/framed/strata, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/outpost/gen/bball) "kaw" = ( /obj/structure/machinery/cm_vending/sorted/medical/wall_med/limited, @@ -34027,18 +27870,13 @@ "kaP" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles, /area/strata/ag/interior/dorms/hive) "kbS" = ( /obj/structure/pipes/standard/manifold/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan2" - }, +/turf/open/floor/strata/cyan2/east, /area/strata/ag/interior/outpost/med) "kbU" = ( /obj/effect/decal/cleanable/blood, @@ -34067,24 +27905,17 @@ /area/strata/ug/interior/outpost/jung/dorms/med2) "kdm" = ( /obj/structure/barricade/handrail/strata, -/turf/open/asphalt/cement{ - icon_state = "cement15" - }, +/turf/open/asphalt/cement/cement15, /area/strata/ug/interior/jungle/platform/east/scrub) "kdK" = ( /obj/structure/bed/chair/office/light{ dir = 4 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/outpost/engi/drome) "keg" = ( /obj/structure/curtain/medical, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ug/interior/outpost/jung/dorms/med1) "kes" = ( /obj/structure/surface/table/reinforced/prison, @@ -34095,27 +27926,20 @@ /obj/structure/barricade/handrail/strata{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/outpost/engi/drome) "kfm" = ( /obj/structure/surface/rack, /obj/item/storage/firstaid/regular, /obj/item/storage/firstaid/regular, -/turf/open/floor/strata{ - icon_state = "purp2" - }, +/turf/open/floor/strata/purp2, /area/strata/ug/interior/jungle/deep/structures/engi) "kfN" = ( /obj/structure/machinery/light/small{ dir = 1 }, /obj/effect/decal/cleanable/blood, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/tcomms) "kgC" = ( /obj/structure/bed/chair/dropship/passenger{ @@ -34125,9 +27949,7 @@ dir = 1; icon_state = "pipe-c" }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/strata/ag/interior/outpost/engi/drome/shuttle) "kgQ" = ( /obj/item/stack/sheet/metal/medium_stack, @@ -34171,9 +27993,7 @@ color = "#6e6e6e"; icon_state = "p_stair_full" }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/dorms/flight_control) "klG" = ( /obj/structure/surface/table/reinforced/prison, @@ -34181,27 +28001,20 @@ /obj/item/reagent_container/food/drinks/cans/waterbottle, /obj/item/reagent_container/food/drinks/cans/waterbottle, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/outpost/gen/bball) "kmt" = ( /obj/structure/bed/chair/office/light{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ug/interior/jungle/deep/structures/engi) "knJ" = ( /obj/structure/machinery/door/airlock/prison{ dir = 1; name = "Reinforced Airlock" }, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ug/interior/outpost/jung/dorms/sec1) "koj" = ( /turf/closed/wall/strata_ice/dirty, @@ -34215,10 +28028,7 @@ dir = 1; name = "Reinforced Airlock" }, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ug/interior/outpost/jung/dorms/med1) "krg" = ( /obj/structure/machinery/light/small{ @@ -34227,19 +28037,14 @@ /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 9 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/tcomms) "krm" = ( /obj/structure/machinery/cm_vending/sorted/tech/comp_storage, /obj/structure/barricade/handrail/strata{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/outpost/engi/drome) "ksA" = ( /obj/effect/blocker/sorokyne_cold_water, @@ -34253,9 +28058,7 @@ /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 6 }, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/research_decks/security) "kvY" = ( /obj/structure/flora/bush/ausbushes/grassybush, @@ -34264,9 +28067,7 @@ "kwu" = ( /obj/structure/pipes/standard/simple/hidden/cyan, /obj/effect/landmark/static_comms/net_two, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/strata/ag/exterior/tcomms/tcomms_deck) "kwU" = ( /obj/structure/platform/strata/metal{ @@ -34311,9 +28112,7 @@ /area/strata/ug/interior/jungle/deep/tearlake) "kzc" = ( /obj/structure/largecrate/random, -/turf/open/floor/prison{ - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2, /area/strata/ag/exterior/research_decks) "kzk" = ( /obj/structure/surface/table/reinforced/prison, @@ -34322,27 +28121,24 @@ /area/strata/ag/interior/outpost/engi/drome) "kzD" = ( /obj/effect/decal/cleanable/blood/gibs/core, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/tcomms) "kAn" = ( /obj/structure/machinery/cm_vending/sorted/tech/tool_storage, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/outpost/engi/drome) "kBL" = ( /obj/structure/flora/grass/ice/brown/snowgrassbb_1, /turf/open/auto_turf/snow/brown_base/layer2, /area/strata/ag/exterior/nearlz2) +"kCa" = ( +/obj/structure/surface/rack, +/obj/item/book/manual/engineering_guide, +/turf/open/floor/strata/orange_cover, +/area/strata/ag/interior/outpost/maint/canteen_e_1) "kCf" = ( /obj/structure/window/framed/strata, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/outpost/engi/drome) "kCk" = ( /obj/structure/flora/grass/ice/brown/snowgrassbb_2, @@ -34350,10 +28146,7 @@ /area/strata/ag/exterior/marsh/center) "kDb" = ( /obj/structure/machinery/space_heater, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ug/interior/outpost/jung/dorms/sec1) "kEl" = ( /obj/structure/closet/secure_closet/personal, @@ -34365,9 +28158,7 @@ icon_state = "xgib6" }, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ug/interior/outpost/jung/dorms/admin2) "kGV" = ( /obj/effect/landmark/monkey_spawn, @@ -34401,9 +28192,7 @@ /obj/structure/window/reinforced/tinted{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/dorms) "kIW" = ( /obj/structure/bed/chair{ @@ -34431,9 +28220,7 @@ /area/strata/ug/interior/jungle/deep/south_engi) "kNZ" = ( /obj/structure/inflatable, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/exterior/tcomms/tcomms_deck) "kOr" = ( /obj/structure/machinery/light/small{ @@ -34444,10 +28231,7 @@ /area/strata/ag/interior/tcomms) "kPl" = ( /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ug/interior/jungle/platform/east/scrub) "kPC" = ( /turf/open/gm/coast/beachcorner2/north_east, @@ -34460,16 +28244,11 @@ /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan1" - }, +/turf/open/floor/strata/cyan1/east, /area/strata/ag/interior/outpost/gen/bball) "kPM" = ( /obj/structure/curtain/medical, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ug/interior/outpost/jung/dorms/admin1) "kQu" = ( /turf/open/gm/coast/beachcorner/north_east, @@ -34481,9 +28260,7 @@ pixel_y = -2 }, /obj/effect/decal/cleanable/blood/gibs/core, -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles, /area/strata/ag/interior/dorms/hive) "kRI" = ( /obj/structure/flora/bush/ausbushes/grassybush{ @@ -34499,18 +28276,14 @@ /obj/structure/machinery/camera/autoname{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "purp1" - }, +/turf/open/floor/strata/purp1, /area/strata/ug/interior/jungle/deep/structures/engi) "kRY" = ( /obj/structure/morgue, /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ag/interior/outpost/med) "kSs" = ( /turf/open/gm/coast/beachcorner/north_west, @@ -34537,9 +28310,7 @@ /area/strata/ug/interior/jungle/deep/south_dorms) "kUi" = ( /obj/structure/inflatable/popped/door, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/tcomms) "kUs" = ( /turf/open/gm/coast/beachcorner2/south_east, @@ -34557,10 +28328,7 @@ /area/strata/ag/exterior/paths/southresearch) "kXi" = ( /obj/structure/closet/secure_closet/freezer/fridge, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ug/interior/outpost/jung/dorms/sec1) "kXx" = ( /obj/structure/flora/grass/tallgrass/ice/corner{ @@ -34571,10 +28339,7 @@ /area/strata/ag/exterior/paths/cabin_area) "kXR" = ( /obj/effect/landmark/corpsespawner/doctor, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/outpost/canteen/lower_cafeteria) "kYe" = ( /obj/structure/flora/grass/tallgrass/ice/corner{ @@ -34589,9 +28354,7 @@ /turf/open/auto_turf/snow/brown_base/layer3, /area/strata/ag/exterior/paths/cabin_area) "kYx" = ( -/turf/open/asphalt/cement{ - icon_state = "cement15" - }, +/turf/open/asphalt/cement/cement15, /area/strata/ag/exterior/landingzone_2) "kZL" = ( /obj/structure/platform/strata/metal{ @@ -34609,10 +28372,7 @@ "lax" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/storage/box/donkpockets, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ug/interior/outpost/jung/dorms/sec1) "laF" = ( /obj/structure/flora/bush/ausbushes/var3/fullgrass, @@ -34632,9 +28392,7 @@ /area/strata/ag/exterior/tcomms/tcomms_deck) "lbW" = ( /obj/structure/tunnel/maint_tunnel, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/admin) "lcq" = ( /obj/item/clothing/suit/storage/militia, @@ -34691,10 +28449,7 @@ /obj/item/storage/briefcase/inflatable, /obj/item/storage/briefcase/inflatable, /obj/structure/surface/rack, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/outpost/engi/drome) "lij" = ( /obj/structure/window/reinforced/tinted{ @@ -34702,9 +28457,7 @@ }, /obj/structure/closet/secure_closet/personal, /obj/item/lightstick, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ug/interior/outpost/jung/dorms/sec1) "liK" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, @@ -34713,16 +28466,12 @@ "ljg" = ( /obj/structure/closet/secure_closet/personal, /obj/structure/closet/bodybag/tarp, -/turf/open/floor/prison{ - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2, /area/strata/ug/interior/outpost/jung/dorms/admin3) "lkl" = ( /obj/structure/filingcabinet, /obj/effect/landmark/objective_landmark/far, -/turf/open/floor/strata{ - icon_state = "purp1" - }, +/turf/open/floor/strata/purp1, /area/strata/ug/interior/jungle/deep/structures/engi) "lkB" = ( /obj/structure/blocker/forcefield/multitile_vehicles, @@ -34741,10 +28490,7 @@ /obj/structure/machinery/door/window/eastright{ dir = 1 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ug/interior/outpost/jung/dorms/sec1) "lmv" = ( /obj/structure/blocker/forcefield/multitile_vehicles, @@ -34758,16 +28504,11 @@ /area/strata/ug/interior/jungle/deep/south_engi) "loN" = ( /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ug/interior/jungle/deep/minehead) "loP" = ( /obj/structure/filingcabinet, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan1" - }, +/turf/open/floor/strata/cyan1/east, /area/strata/ag/interior/outpost/engi/drome) "lpk" = ( /obj/structure/bed{ @@ -34798,10 +28539,7 @@ /obj/structure/machinery/door/window/eastright{ dir = 1 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ug/interior/outpost/jung/dorms/admin3) "lqD" = ( /obj/structure/machinery/light/small{ @@ -34856,9 +28594,7 @@ color = "#6e6e6e"; icon_state = "p_stair_sn_full_cap" }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/dorms/flight_control) "lvF" = ( /turf/open/gm/coast/south, @@ -34868,9 +28604,7 @@ dir = 4 }, /obj/structure/barricade/handrail/strata, -/turf/open/asphalt/cement{ - icon_state = "cement15" - }, +/turf/open/asphalt/cement/cement15, /area/strata/ug/interior/jungle/platform/east/scrub) "lxp" = ( /obj/structure/machinery/photocopier, @@ -34911,10 +28645,7 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/exterior/research_decks) "lAc" = ( /turf/closed/wall/wood, @@ -34935,16 +28666,11 @@ /area/strata/ag/interior/tcomms) "lEo" = ( /obj/structure/machinery/landinglight/ds2, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/strata/ag/exterior/landingzone_2) "lFy" = ( /obj/structure/closet/bodybag, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/tcomms) "lFG" = ( /obj/structure/flora/grass/tallgrass/ice/corner{ @@ -34954,9 +28680,7 @@ /area/strata/ag/exterior/marsh) "lGv" = ( /obj/structure/machinery/vending/coffee, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/landingzone_checkpoint) "lHs" = ( /obj/effect/landmark/railgun_camera_pos, @@ -34964,10 +28688,7 @@ /area/strata/ag/interior/nearlz1) "lHH" = ( /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/landingzone_checkpoint) "lHO" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, @@ -35005,10 +28726,7 @@ /obj/structure/toilet{ dir = 1 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ug/interior/outpost/jung/dorms/admin2) "lKv" = ( /turf/open/floor/strata, @@ -35026,9 +28744,7 @@ /obj/structure/bed/chair/comfy{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "purp2" - }, +/turf/open/floor/strata/purp2, /area/strata/ug/interior/jungle/deep/structures/engi) "lNr" = ( /obj/structure/surface/rack, @@ -35055,9 +28771,7 @@ pixel_y = -4 }, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/landingzone_checkpoint) "lOT" = ( /obj/effect/particle_effect/steam, @@ -35074,9 +28788,7 @@ "lPk" = ( /obj/effect/landmark/objective_landmark/medium, /obj/structure/closet/secure_closet/security/soro, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/landingzone_checkpoint) "lPF" = ( /obj/structure/flora/bush/ausbushes/grassybush{ @@ -35094,10 +28806,7 @@ /area/strata/ag/interior/landingzone_checkpoint) "lRa" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ug/interior/jungle/deep/structures/engi) "lRT" = ( /obj/structure/platform_decoration/strata/metal{ @@ -35115,25 +28824,19 @@ /area/strata/ug/interior/jungle/deep/south_engi) "lTX" = ( /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/strata/ag/exterior/tcomms/tcomms_deck) "lUg" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 9 }, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/outpost/engi/drome) "lUm" = ( /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2, /area/strata/ag/exterior/research_decks) "lUu" = ( /obj/effect/decal/warning_stripes{ @@ -35142,9 +28845,7 @@ /obj/effect/decal/warning_stripes{ icon_state = "N" }, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/outpost/gen/bball) "lUw" = ( /obj/item/weapon/gun/pistol/t73, @@ -35164,27 +28865,20 @@ /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ug/interior/jungle/deep/structures/engi) "lXd" = ( /obj/structure/barricade/handrail/strata{ dir = 4 }, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/strata/ag/exterior/marsh) "lZc" = ( /obj/structure/flora/grass/tallgrass/ice/corner, /turf/open/auto_turf/ice/layer2, /area/strata/ag/exterior/marsh) "lZd" = ( -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ug/interior/jungle/deep/structures/engi) "lZf" = ( /turf/open/auto_turf/ice/layer2, @@ -35198,31 +28892,22 @@ pixel_x = 6; pixel_y = -4 }, -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles, /area/strata/ag/interior/dorms/hive) "maP" = ( /obj/structure/pipes/standard/manifold/hidden/cyan{ dir = 8 }, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/med) "mce" = ( /obj/structure/bed/chair, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/outpost/gen/bball) "mcD" = ( /obj/structure/surface/rack, /obj/item/weapon/gun/pistol/t73, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ug/interior/jungle/deep/structures/res) "mcX" = ( /obj/structure/surface/rack, @@ -35235,10 +28920,7 @@ /obj/effect/decal/cleanable/blood{ icon_state = "xgib6" }, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ug/interior/jungle/platform/east/scrub) "mde" = ( /obj/structure/platform_decoration/strata{ @@ -35251,16 +28933,12 @@ /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 9 }, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/tcomms) "mdK" = ( /obj/item/storage/belt/security, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ug/interior/jungle/deep/structures/res) "mem" = ( /obj/structure/stairs/perspective{ @@ -35268,9 +28946,7 @@ dir = 1; icon_state = "p_stair_sn_full_cap" }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/engi/drome) "meu" = ( /obj/effect/decal/warning_stripes{ @@ -35279,9 +28955,7 @@ /obj/structure/barricade/handrail/strata{ dir = 1 }, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/outpost/gen/bball) "meS" = ( /obj/structure/machinery/light/small{ @@ -35289,9 +28963,7 @@ pixel_y = 20 }, /obj/structure/curtain/medical, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ug/interior/outpost/jung/dorms/admin2) "mfp" = ( /turf/closed/wall/strata_outpost/reinforced/hull, @@ -35300,10 +28972,7 @@ /obj/structure/pipes/standard/manifold/hidden/cyan{ dir = 8 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan2" - }, +/turf/open/floor/strata/cyan2/east, /area/strata/ag/interior/outpost/med) "mfW" = ( /obj/structure/stairs/perspective{ @@ -35311,9 +28980,7 @@ dir = 4; icon_state = "p_stair_sn_full_cap" }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/dorms/flight_control) "mhc" = ( /obj/effect/decal/cleanable/blood/oil, @@ -35325,10 +28992,7 @@ color = "#6e6e6e"; icon_state = "p_stair_sn_full_cap" }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/exterior/research_decks) "mip" = ( /obj/structure/platform/strata{ @@ -35354,19 +29018,14 @@ /obj/structure/platform/strata/metal{ dir = 4 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/exterior/research_decks) "miR" = ( /obj/structure/barricade/handrail/strata{ dir = 8 }, /obj/structure/barricade/handrail/strata, -/turf/open/floor/prison{ - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2, /area/strata/ag/exterior/research_decks) "mjp" = ( /obj/effect/blocker/sorokyne_cold_water, @@ -35387,10 +29046,7 @@ dir = 4; icon_state = "p_stair_sn_full_cap" }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/exterior/research_decks) "mjJ" = ( /obj/effect/spawner/random/toolbox, @@ -35398,29 +29054,21 @@ /area/strata/ag/exterior/research_decks) "mjR" = ( /obj/effect/landmark/crap_item, -/turf/open/floor/strata{ - icon_state = "purp2" - }, +/turf/open/floor/strata/purp2, /area/strata/ug/interior/jungle/deep/structures/engi) "mlq" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, /obj/structure/machinery/door/airlock/almayer/medical/colony, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/interior/outpost/med) "mms" = ( /obj/effect/glowshroom, /obj/structure/barricade/handrail/strata{ dir = 4 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/tcomms) "mmF" = ( /obj/effect/landmark/monkey_spawn, @@ -35428,27 +29076,19 @@ /area/strata/ug/exterior/jungle/deep/carplake_center) "mnq" = ( /obj/structure/window/framed/strata, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/med) "mnY" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 9 }, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/outpost/canteen) "mow" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan2" - }, +/turf/open/floor/strata/cyan2/east, /area/strata/ag/interior/outpost/med) "mpk" = ( /turf/closed/shuttle/ert{ @@ -35459,10 +29099,7 @@ /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 5 }, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/med) "mpr" = ( /obj/structure/sign/safety/maint, @@ -35470,33 +29107,22 @@ /area/strata/ag/interior/tcomms) "mqs" = ( /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/med) "mqQ" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/comdoor/colony{ name = "\improper Airlock" }, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/outpost/med) "mrp" = ( /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/tcomms) "mrz" = ( /obj/structure/closet/secure_closet/personal, /obj/effect/landmark/crap_item, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ug/interior/outpost/jung/dorms/admin1) "mrG" = ( /obj/item/clothing/shoes/snow, @@ -35509,10 +29135,7 @@ dir = 8 }, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/exterior/paths/north_outpost) "mrT" = ( /obj/structure/machinery/weather_siren{ @@ -35527,10 +29150,7 @@ "msC" = ( /obj/structure/filingcabinet, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/tcomms) "msG" = ( /obj/structure/machinery/cm_vending/sorted/medical/wall_med/limited, @@ -35557,10 +29177,7 @@ dir = 6 }, /obj/structure/window/framed/strata, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/outpost/med) "mwt" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ @@ -35575,19 +29192,13 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan1" - }, +/turf/open/floor/strata/cyan1/east, /area/strata/ag/interior/outpost/med) "mxu" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 10 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan1" - }, +/turf/open/floor/strata/cyan1/east, /area/strata/ag/interior/outpost/med) "myk" = ( /obj/structure/sign/safety/storage, @@ -35600,18 +29211,14 @@ /obj/effect/decal/warning_stripes{ icon_state = "N" }, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/outpost/gen/bball) "mBb" = ( /obj/structure/pipes/vents/pump{ dir = 8; id_tag = "mining_outpost_pump" }, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/tcomms) "mBl" = ( /obj/structure/reagent_dispensers/watertank, @@ -35621,20 +29228,14 @@ /turf/open/floor/greengrid, /area/strata/ug/interior/jungle/deep/structures/engi) "mCx" = ( -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/outpost/med) "mCK" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, /obj/effect/decal/cleanable/blood, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/tcomms) "mDF" = ( /obj/structure/flora/grass/ice/brown/snowgrassbb_2, @@ -35649,23 +29250,15 @@ /turf/open/gm/river, /area/strata/ag/exterior/marsh) "mEL" = ( -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/exterior/research_decks) "mFh" = ( /obj/structure/fence, /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/strata/ag/exterior/tcomms/tcomms_deck) "mGA" = ( -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/interior/outpost/med) "mHo" = ( /obj/structure/largecrate/random, @@ -35697,10 +29290,7 @@ /area/strata/ag/exterior/shed_five_caves) "mKv" = ( /obj/structure/window/framed/strata, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/interior/outpost/med) "mKA" = ( /obj/structure/surface/table/reinforced/prison, @@ -35710,24 +29300,18 @@ /obj/structure/barricade/handrail/strata{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/outpost/engi/drome) "mKX" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/strata/ag/exterior/marsh/crash) "mLe" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/computer/cameras{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/strata/ag/interior/landingzone_checkpoint) "mLn" = ( /turf/closed/wall/strata_ice/jungle, @@ -35747,16 +29331,11 @@ /obj/structure/prop/ice_colony/ground_wire{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "purp2" - }, +/turf/open/floor/strata/purp2, /area/strata/ug/exterior/jungle/deep/carplake_center) "mLW" = ( /obj/structure/dropship_equipment/mg_holder, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/outpost/engi/drome) "mMp" = ( /turf/open/gm/coast/beachcorner/south_west, @@ -35773,10 +29352,7 @@ /obj/structure/platform/strata/metal{ dir = 8 }, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ug/interior/jungle/platform/east/scrub) "mOj" = ( /obj/structure/surface/rack, @@ -35785,10 +29361,7 @@ dir = 4 }, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ug/interior/jungle/deep/structures/res) "mOR" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_core, @@ -35815,16 +29388,11 @@ "mQg" = ( /obj/item/stack/catwalk, /obj/structure/disposalpipe/segment, -/turf/open/floor/almayer{ - icon_state = "test_floor5" - }, +/turf/open/floor/almayer/test_floor5, /area/strata/ag/interior/outpost/engi/drome/shuttle) "mQE" = ( /obj/structure/dispenser/oxygen, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/tcomms) "mQR" = ( /obj/structure/inflatable/popped, @@ -35834,17 +29402,12 @@ /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ug/interior/jungle/deep/structures/engi) "mSK" = ( /obj/item/stack/sheet/metal/medium_stack, /obj/structure/disposalpipe/segment, -/turf/open/floor/almayer{ - icon_state = "test_floor5" - }, +/turf/open/floor/almayer/test_floor5, /area/strata/ag/interior/outpost/engi/drome/shuttle) "mUD" = ( /turf/closed/shuttle/ert{ @@ -35867,18 +29430,13 @@ }, /obj/effect/decal/cleanable/blood, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ug/interior/outpost/jung/dorms/admin2) "mWT" = ( /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "purp2" - }, +/turf/open/floor/strata/purp2, /area/strata/ug/interior/jungle/deep/structures/engi) "mYs" = ( /obj/structure/flora/grass/tallgrass/ice/corner{ @@ -35888,9 +29446,7 @@ /area/strata/ag/exterior/marsh) "mYN" = ( /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/exterior/marsh) "mYX" = ( /obj/structure/machinery/shower{ @@ -35899,54 +29455,37 @@ /obj/structure/machinery/door/window/eastright{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ug/interior/outpost/jung/dorms/med1) "mZd" = ( /turf/closed/wall/strata_ice/dirty, /area/strata/ag/interior/outpost/gen/foyer) "nai" = ( /obj/structure/largecrate/random/barrel/white, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/outpost/engi/drome) "ncp" = ( /obj/structure/desertdam/decals/road_stop, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/tcomms) "ndC" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 6 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/outpost/engi/drome) "ndS" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, /obj/item/tank/emergency_oxygen/engi, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/tcomms) "neL" = ( /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan1" - }, +/turf/open/floor/strata/cyan1/east, /area/strata/ag/interior/outpost/med) "nfK" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, @@ -35964,9 +29503,7 @@ dir = 1; pixel_y = 20 }, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/outpost/engi/drome) "njW" = ( /obj/structure/pipes/standard/simple/hidden/cyan, @@ -36009,20 +29546,26 @@ "noq" = ( /turf/open/gm/coast/beachcorner/south_east, /area/strata/ug/interior/jungle/deep/east_dorms) +"npf" = ( +/obj/item/fuel_cell, +/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, +/obj/structure/machinery/light/small{ + dir = 4 + }, +/obj/structure/barricade/handrail/strata{ + dir = 8 + }, +/turf/open/floor/strata/multi_tiles, +/area/strata/ag/interior/dorms/hive) "npy" = ( /obj/structure/closet/secure_closet/medical3{ req_access = null }, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/admin) "npS" = ( -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/exterior/marsh) "npW" = ( /obj/structure/stairs/perspective{ @@ -36031,9 +29574,7 @@ /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "red3" - }, +/turf/open/floor/strata/red3, /area/strata/ag/interior/outpost/med) "npX" = ( /obj/effect/decal/strata_decals/catwalk/prison, @@ -36062,24 +29603,18 @@ pixel_y = 20 }, /obj/structure/curtain/medical, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ug/interior/outpost/jung/dorms/admin3) "nsq" = ( /turf/open/gm/coast/south, /area/strata/ug/interior/jungle/deep/east_carp) "nsB" = ( /obj/structure/closet/coffin, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ag/interior/outpost/med) "ntu" = ( /obj/structure/bed/chair, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ug/interior/jungle/deep/structures/engi) "nun" = ( /obj/effect/blocker/sorokyne_cold_water, @@ -36105,9 +29640,7 @@ /obj/structure/barricade/handrail/strata{ dir = 8 }, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/strata/ug/interior/jungle/platform/east/scrub) "nAf" = ( /turf/open/gm/coast/beachcorner2/south_west, @@ -36141,10 +29674,7 @@ /area/strata/ag/exterior/marsh/center) "nCJ" = ( /obj/structure/machinery/constructable_frame, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/tcomms) "nDj" = ( /obj/structure/bookcase{ @@ -36161,17 +29691,11 @@ dir = 8 }, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/outpost/med) "nFN" = ( /obj/structure/machinery/vending/snack, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan3" - }, +/turf/open/floor/strata/cyan3/east, /area/strata/ag/interior/outpost/med) "nGi" = ( /obj/structure/cargo_container/grant/left, @@ -36185,19 +29709,13 @@ /area/strata/ag/exterior/marsh) "nIf" = ( /obj/structure/pipes/standard/manifold/hidden/cyan, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/tcomms) "nIS" = ( /obj/structure/bed/chair/office/light{ dir = 8 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/outpost/med) "nJK" = ( /turf/closed/wall/strata_ice/dirty, @@ -36212,13 +29730,16 @@ }, /turf/open/auto_turf/strata_grass/layer1, /area/strata/ug/interior/jungle/deep/east_dorms) +"nNR" = ( +/obj/structure/surface/rack, +/obj/item/book/manual/orbital_cannon_manual, +/obj/item/book/manual/research_and_development, +/turf/open/floor/strata/orange_cover, +/area/strata/ag/interior/outpost/maint/canteen_e_1) "nOE" = ( /obj/structure/closet/secure_closet/personal, /obj/effect/landmark/objective_landmark/far, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan1" - }, +/turf/open/floor/strata/cyan1/east, /area/strata/ag/interior/outpost/gen/bball) "nPb" = ( /turf/open/gm/coast/beachcorner2/north_east, @@ -36239,17 +29760,12 @@ /area/strata/ag/interior/outpost/engi/drome) "nPW" = ( /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/exterior/marsh/crash) "nQk" = ( /obj/effect/decal/cleanable/blood/oil, /obj/structure/machinery/recharge_station, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/tcomms) "nQE" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, @@ -36274,18 +29790,13 @@ /area/strata/ag/exterior/marsh) "nST" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan1" - }, +/turf/open/floor/strata/cyan1/east, /area/strata/ag/interior/outpost/med) "nTf" = ( /obj/structure/machinery/landinglight/ds2/delaytwo{ dir = 4 }, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/strata/ag/exterior/landingzone_2) "nTD" = ( /obj/structure/toilet{ @@ -36295,10 +29806,7 @@ dir = 1; pixel_y = 20 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ug/interior/outpost/jung/dorms/med2) "nTS" = ( /obj/structure/flora/grass/tallgrass/ice/corner{ @@ -36315,25 +29823,18 @@ /area/strata/ag/interior/outpost/gen/bball/nest) "nUX" = ( /obj/structure/barricade/handrail/strata, -/turf/open/floor/prison{ - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2, /area/strata/ag/exterior/research_decks) "nVt" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, /obj/structure/machinery/door/airlock/almayer/maint/colony, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/interior/dorms) "nWv" = ( /obj/structure/inflatable/popped, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/tcomms) "nWX" = ( /obj/structure/bed/roller, @@ -36363,16 +29864,11 @@ /area/strata/ag/exterior/marsh) "ocE" = ( /obj/structure/barricade/handrail/strata, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ug/interior/jungle/deep/structures/engi) "ocH" = ( /obj/structure/machinery/door/airlock/almayer/generic, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/exterior/marsh/crash) "odi" = ( /obj/effect/decal/cleanable/blood/gibs/core, @@ -36381,24 +29877,17 @@ /area/strata/ag/interior/outpost/gen/bball/nest) "odr" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/tcomms) "odB" = ( /obj/structure/machinery/landinglight/ds2/delayone, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/strata/ag/exterior/landingzone_2) "odJ" = ( /turf/closed/wall/strata_ice/dirty, /area/strata/ag/interior/outpost/engi/drome) "oeA" = ( -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/strata/ag/exterior/marsh/crash) "oeH" = ( /obj/structure/surface/table/reinforced/prison, @@ -36415,19 +29904,13 @@ /turf/open/gm/coast/beachcorner/north_west, /area/strata/ug/interior/jungle/deep/east_carp) "oeQ" = ( -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/outpost/engi/drome) "oeT" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/exterior/vanyard) "ofd" = ( /obj/structure/pipes/standard/simple/hidden/cyan, @@ -36438,18 +29921,14 @@ /obj/item/storage/firstaid/regular, /obj/item/storage/firstaid/regular, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/strata{ - icon_state = "purp2" - }, +/turf/open/floor/strata/purp2, /area/strata/ug/interior/jungle/deep/structures/engi) "oiF" = ( /obj/structure/machinery/light/small{ dir = 1 }, /obj/structure/barricade/handrail/strata, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/strata/ag/interior/outpost/med) "oiV" = ( /obj/effect/blocker/sorokyne_cold_water, @@ -36476,19 +29955,14 @@ /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/tcomms) "olH" = ( /obj/structure/bed{ icon_state = "abed" }, /obj/structure/window/reinforced/tinted, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ug/interior/outpost/jung/dorms/med1) "onq" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, @@ -36504,10 +29978,7 @@ pixel_y = 20 }, /obj/structure/machinery/computer/communications, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ug/interior/outpost/jung/dorms/med2) "opg" = ( /obj/structure/machinery/power/terminal{ @@ -36521,10 +29992,7 @@ /area/strata/ug/interior/jungle/deep/east_dorms) "oqA" = ( /obj/item/stack/rods, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ug/interior/jungle/platform/east/scrub) "oqJ" = ( /obj/structure/inflatable/popped/door, @@ -36559,9 +30027,7 @@ /area/strata/ag/interior/outpost/engi) "ouJ" = ( /obj/effect/decal/cleanable/blood/oil, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/strata/ag/exterior/landingzone_2) "oxE" = ( /obj/structure/surface/rack, @@ -36579,10 +30045,7 @@ /obj/structure/machinery/door/window/eastright{ dir = 8 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ug/interior/outpost/jung/dorms/med2) "oyy" = ( /obj/structure/bookcase{ @@ -36597,18 +30060,22 @@ /area/strata/ug/interior/jungle/deep/structures/engi) "oBn" = ( /obj/structure/window/framed/strata/reinforced, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/interior/outpost/engi) "oBv" = ( /obj/item/stack/rods, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/outpost/engi/drome) +"oCc" = ( +/obj/item/fuel_cell, +/obj/structure/barricade/handrail/strata{ + dir = 4 + }, +/obj/structure/platform/strata/metal{ + dir = 8 + }, +/turf/open/floor/strata/red2, +/area/strata/ag/interior/outpost/engi) "oDw" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /turf/open/auto_turf/strata_grass/layer1, @@ -36622,47 +30089,34 @@ /area/strata/ug/interior/jungle/deep/south_dorms) "oFG" = ( /obj/effect/decal/cleanable/blood/oil, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/strata/ag/exterior/landingzone_2) "oGW" = ( /obj/structure/machinery/light/small, /obj/structure/inflatable/popped, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/exterior/nearlz2) "oHN" = ( /obj/structure/barricade/handrail/strata{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2, /area/strata/ag/exterior/research_decks) "oIi" = ( /obj/structure/filingcabinet, /obj/structure/pipes/standard/simple/hidden/cyan, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/tcomms) "oIv" = ( /obj/structure/closet/secure_closet/engineering_personal, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/outpost/engi/drome) "oIx" = ( /obj/structure/closet/secure_closet/personal, /obj/effect/spawner/random/tool, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ug/interior/outpost/jung/dorms/admin2) "oIU" = ( /obj/structure/flora/bush/ausbushes/grassybush{ @@ -36672,9 +30126,7 @@ /area/strata/ug/interior/jungle/deep/west_engi) "oJD" = ( /obj/item/stack/rods, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/strata/ug/interior/jungle/platform/east/scrub) "oKl" = ( /obj/structure/flora/grass/ice/brown/snowgrassbb_3, @@ -36687,9 +30139,7 @@ /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/strata/ag/exterior/research_decks) "oLv" = ( /obj/effect/decal/cleanable/blood{ @@ -36702,25 +30152,18 @@ /obj/structure/platform/strata/metal{ dir = 1 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/exterior/research_decks) "oMa" = ( /obj/effect/decal/cleanable/blood/oil, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/strata/ug/interior/jungle/platform/east/scrub) "oMZ" = ( /obj/structure/toilet{ dir = 8 }, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/tcomms) "oOB" = ( /obj/item/clothing/shoes/snow, @@ -36732,19 +30175,13 @@ /obj/effect/decal/strata_decals/grime/grime3{ dir = 8 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/exterior/research_decks) "oOX" = ( /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/exterior/research_decks) "oPz" = ( /obj/effect/decal/strata_decals/catwalk/prison, @@ -36755,9 +30192,7 @@ /turf/open/floor/plating, /area/strata/ag/interior/tcomms) "oPN" = ( -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/strata/ug/interior/jungle/platform/east/scrub) "oPQ" = ( /obj/structure/flora/grass/tallgrass/ice/corner{ @@ -36769,28 +30204,20 @@ /obj/structure/bed{ icon_state = "abed" }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ug/interior/outpost/jung/dorms/admin3) "oQv" = ( /turf/open/auto_turf/ice/layer2, /area/strata/ag/exterior/marsh/crash) "oRm" = ( /obj/structure/inflatable/popped/door, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/exterior/research_decks) "oSN" = ( /obj/structure/barricade/handrail/strata{ dir = 1 }, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/strata/ug/interior/jungle/platform/east/scrub) "oSP" = ( /obj/effect/blocker/sorokyne_cold_water, @@ -36806,9 +30233,7 @@ /turf/open/floor/strata, /area/strata/ag/interior/outpost/admin) "oUS" = ( -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/administration) "oVR" = ( /obj/effect/decal/strata_decals/catwalk/prison, @@ -36822,9 +30247,7 @@ /obj/structure/pipes/standard/manifold/hidden/cyan{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ag/interior/outpost/med) "oWD" = ( /obj/structure/machinery/light/small{ @@ -36833,10 +30256,7 @@ /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/exterior/research_decks) "oWO" = ( /obj/structure/window/reinforced/tinted{ @@ -36844,9 +30264,7 @@ }, /obj/structure/closet/secure_closet/personal, /obj/item/lightstick, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ug/interior/outpost/jung/dorms/sec1) "oWQ" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ @@ -36863,16 +30281,11 @@ /obj/effect/decal/cleanable/blood, /obj/effect/decal/cleanable/blood/gibs/core, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan1" - }, +/turf/open/floor/strata/cyan1/east, /area/strata/ag/interior/dorms) "oZt" = ( /obj/structure/machinery/vending/cigarette/colony, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ug/interior/jungle/deep/structures/engi) "oZD" = ( /obj/item/lightstick, @@ -36892,10 +30305,7 @@ /obj/effect/spawner/random/toolbox, /obj/structure/surface/rack, /obj/item/device/flashlight, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/exterior/research_decks) "pbF" = ( /obj/structure/platform/strata/metal{ @@ -36923,9 +30333,7 @@ dir = 4 }, /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/nearlz1) "pge" = ( /obj/structure/flora/grass/tallgrass/jungle/corner{ @@ -36935,10 +30343,15 @@ /area/strata/ug/interior/jungle/deep/south_dorms) "pgW" = ( /obj/effect/decal/strata_decals/grime/grime3, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/dorms) +"piu" = ( +/obj/structure/surface/rack, +/obj/structure/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/strata/orange_cover, +/area/strata/ag/interior/outpost/maint/canteen_e_1) "piD" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/reagent_container/food/snacks/cheesecakeslice, @@ -36974,10 +30387,7 @@ /obj/structure/pipes/standard/manifold/hidden/cyan{ dir = 8 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan1" - }, +/turf/open/floor/strata/cyan1/east, /area/strata/ag/interior/outpost/med) "pkO" = ( /turf/closed/wall/strata_outpost/reinforced/hull, @@ -36986,28 +30396,20 @@ /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan1" - }, +/turf/open/floor/strata/cyan1/east, /area/strata/ag/interior/outpost/med) "pmC" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/computer/communications{ dir = 1 }, -/turf/open/floor/strata{ - icon_state = "purp2" - }, +/turf/open/floor/strata/purp2, /area/strata/ug/interior/jungle/deep/structures/engi) "pmT" = ( /obj/structure/machinery/door/airlock/almayer/generic{ dir = 2 }, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ug/interior/jungle/deep/structures/engi) "pnP" = ( /obj/structure/machinery/shower{ @@ -37020,10 +30422,7 @@ /obj/structure/machinery/door/window/eastright{ dir = 8 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ug/interior/outpost/jung/dorms/admin1) "poc" = ( /obj/structure/bed/chair{ @@ -37032,29 +30431,18 @@ /obj/structure/machinery/camera/autoname{ dir = 8 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ug/interior/outpost/jung/dorms/med2) "ppe" = ( -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/strata/ag/exterior/landingzone_2) "ppA" = ( /obj/structure/machinery/light/small, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/engi/drome) "ppC" = ( /obj/structure/pipes/standard/manifold/fourway/hidden/cyan, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan3" - }, +/turf/open/floor/strata/white_cyan3/west, /area/strata/ag/interior/outpost/med) "pqy" = ( /obj/effect/blocker/sorokyne_cold_water, @@ -37093,10 +30481,7 @@ dir = 1; name = "\improper Airlock" }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/interior/outpost/engi/drome) "psl" = ( /obj/effect/blocker/sorokyne_cold_water, @@ -37111,19 +30496,13 @@ capacity = 1e+006; dir = 1 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/tcomms) "psQ" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22" }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ug/interior/outpost/jung/dorms/sec1) "psR" = ( /obj/item/lightstick/red/spoke/planted{ @@ -37140,9 +30519,7 @@ /obj/structure/prop/ice_colony/ground_wire{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "purp2" - }, +/turf/open/floor/strata/purp2, /area/strata/ug/interior/jungle/deep/east_carp) "psV" = ( /obj/effect/particle_effect/steam, @@ -37157,10 +30534,7 @@ /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/interior/outpost/med) "ptT" = ( /turf/closed/wall/strata_outpost, @@ -37169,47 +30543,32 @@ /obj/effect/decal/cleanable/blood{ icon_state = "xgib6" }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ug/interior/jungle/deep/structures/res) "puV" = ( /obj/structure/window/framed/strata, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ug/interior/jungle/deep/structures/engi) "puX" = ( /obj/structure/closet/lawcloset, /obj/structure/machinery/camera/autoname{ dir = 8 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/tcomms) "pvA" = ( /turf/open/auto_turf/ice/layer0, /area/strata/ag/exterior/marsh) "pvY" = ( /obj/structure/pipes/standard/manifold/hidden/cyan, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/outpost/engi/drome) "pwn" = ( /obj/structure/largecrate/guns/russian, /obj/structure/barricade/handrail/strata{ dir = 4 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/tcomms) "pwz" = ( /obj/structure/bed/chair/office/light{ @@ -37218,10 +30577,7 @@ /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 10 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/outpost/engi/drome) "pwW" = ( /obj/structure/flora/bush/ausbushes/grassybush{ @@ -37238,10 +30594,7 @@ /area/strata/ug/interior/jungle/platform/east/scrub) "pzt" = ( /obj/structure/prop/ice_colony/surveying_device/measuring_device, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ug/interior/jungle/deep/structures/engi) "pAc" = ( /turf/closed/wall/strata_outpost, @@ -37253,16 +30606,11 @@ /obj/structure/barricade/handrail/strata{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/outpost/engi/drome) "pDb" = ( /obj/structure/dropship_equipment/sentry_holder, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/outpost/engi/drome) "pDz" = ( /turf/closed/shuttle/ert{ @@ -37272,19 +30620,14 @@ /area/strata/ag/interior/outpost/engi/drome/shuttle) "pDJ" = ( /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/strata/ag/interior/dorms/canteen) "pDQ" = ( /obj/structure/disposalpipe/segment{ dir = 8; icon_state = "pipe-c" }, -/turf/open/floor/plating{ - icon_state = "platebot" - }, +/turf/open/floor/plating/platebot, /area/strata/ag/interior/outpost/engi/drome/shuttle) "pDY" = ( /obj/structure/platform_decoration/strata/metal{ @@ -37304,20 +30647,14 @@ /area/strata/ug/interior/outpost/jung/dorms/admin1) "pEo" = ( /obj/structure/machinery/photocopier, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan2" - }, +/turf/open/floor/strata/cyan2/east, /area/strata/ag/interior/outpost/med) "pEF" = ( /obj/structure/machinery/door/airlock/almayer/medical/glass/colony{ dir = 2; name = "\improper Airlock" }, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/dorms) "pEM" = ( /obj/structure/barricade/wooden, @@ -37325,9 +30662,7 @@ /area/strata/ag/exterior/paths/southresearch) "pEY" = ( /obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/prison{ - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2, /area/strata/ag/exterior/research_decks) "pFi" = ( /obj/structure/largecrate/random/barrel/green, @@ -37335,9 +30670,7 @@ dir = 1; icon_state = "pipe-c" }, -/turf/open/floor/plating{ - icon_state = "platebot" - }, +/turf/open/floor/plating/platebot, /area/strata/ag/interior/outpost/engi/drome/shuttle) "pGf" = ( /obj/structure/machinery/power/apc{ @@ -37364,10 +30697,7 @@ "pGC" = ( /obj/structure/disposalpipe/segment, /obj/effect/decal/strata_decals/catwalk/prison, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/engi/drome) "pHR" = ( /turf/open/gm/dirt, @@ -37384,10 +30714,7 @@ dir = 1; name = "\improper Airlock" }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/interior/outpost/engi/drome) "pJz" = ( /obj/structure/platform/strata/metal{ @@ -37411,19 +30738,13 @@ /area/strata/ug/interior/jungle/deep/south_engi) "pLE" = ( /obj/structure/largecrate/random/barrel/yellow, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/tcomms) "pMU" = ( /obj/structure/tunnel/maint_tunnel{ pixel_y = 16 }, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/canteen/personal_storage) "pNL" = ( /obj/structure/stairs/perspective{ @@ -37444,25 +30765,18 @@ /obj/item/lightstick, /obj/item/lightstick, /obj/effect/spawner/random/tool, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ug/interior/outpost/jung/dorms/sec1) "pOH" = ( /obj/structure/curtain/medical, /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ug/interior/outpost/jung/dorms/admin2) "pOW" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan3" - }, +/turf/open/floor/strata/white_cyan3/east, /area/strata/ag/interior/outpost/med) "pPi" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, @@ -37486,9 +30800,7 @@ "pSc" = ( /obj/structure/closet/coffin, /obj/structure/machinery/light/small, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ag/interior/outpost/med) "pSm" = ( /obj/structure/surface/rack{ @@ -37522,16 +30834,11 @@ dir = 4; pixel_x = -10 }, -/turf/open/floor/strata{ - icon_state = "purp1" - }, +/turf/open/floor/strata/purp1, /area/strata/ug/interior/jungle/deep/structures/engi) "pVq" = ( /obj/structure/window/framed/strata, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/tcomms) "pWp" = ( /obj/structure/platform_decoration/strata{ @@ -37548,24 +30855,15 @@ /obj/structure/machinery/door/airlock/almayer/engineering/colony{ dir = 2 }, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/tcomms) "pXB" = ( /obj/effect/decal/cleanable/blood/oil, /obj/effect/decal/cleanable/blood/gibs/core, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/tcomms) "pYI" = ( -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ug/interior/outpost/jung/dorms/admin1) "pYM" = ( /obj/item/stack/sheet/wood, @@ -37583,9 +30881,7 @@ /obj/structure/machinery/landinglight/ds2/delaytwo{ dir = 1 }, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/strata/ag/exterior/landingzone_2) "qbA" = ( /obj/structure/flora/grass/tallgrass/ice/corner{ @@ -37600,9 +30896,7 @@ /obj/structure/machinery/landinglight/ds2/delaytwo{ dir = 8 }, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/strata/ag/exterior/landingzone_2) "qcB" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, @@ -37625,10 +30919,7 @@ /turf/open/auto_turf/ice/layer1, /area/strata/ag/exterior/paths/southresearch) "qer" = ( -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ug/interior/outpost/jung/dorms/admin1) "qeH" = ( /obj/structure/flora/grass/tallgrass/ice/corner{ @@ -37641,10 +30932,7 @@ dir = 8 }, /obj/structure/platform/strata/metal, -/turf/open/floor/strata{ - dir = 1; - icon_state = "red3" - }, +/turf/open/floor/strata/red3/north, /area/strata/ag/interior/outpost/med) "qfi" = ( /obj/effect/blocker/sorokyne_cold_water, @@ -37659,10 +30947,7 @@ /area/strata/ag/interior/tcomms) "qfM" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/interior/tcomms) "qfN" = ( /obj/structure/largecrate/random/secure, @@ -37673,10 +30958,7 @@ /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ dir = 2 }, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/landingzone_checkpoint) "qhp" = ( /obj/effect/decal/strata_decals/catwalk/prison, @@ -37687,42 +30969,28 @@ /obj/structure/machinery/door/airlock/strata/autoname{ dir = 1 }, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/restricted/devroom) "qjD" = ( /obj/structure/barricade/handrail/strata, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/strata/ag/exterior/marsh) "qks" = ( /obj/structure/machinery/light/small, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/strata/ug/interior/jungle/platform/east/scrub) "qkS" = ( -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/strata/ag/exterior/marsh) "qkU" = ( /obj/structure/barricade/handrail/strata{ dir = 4 }, /obj/structure/barricade/handrail/strata, -/turf/open/asphalt/cement{ - icon_state = "cement15" - }, +/turf/open/asphalt/cement/cement15, /area/strata/ag/exterior/marsh) "qlq" = ( -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ug/interior/outpost/jung/dorms/med1) "qmw" = ( /obj/structure/sign/safety/storage, @@ -37731,20 +30999,14 @@ "qmW" = ( /obj/structure/largecrate/random, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/exterior/research_decks) "qns" = ( /obj/structure/machinery/light/small{ dir = 1; pixel_y = 20 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ug/interior/outpost/jung/dorms/med1) "qot" = ( /obj/effect/decal/strata_decals/catwalk/prison, @@ -37766,15 +31028,11 @@ /obj/structure/prop/ice_colony/ground_wire{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "purp2" - }, +/turf/open/floor/strata/purp2, /area/strata/ug/interior/jungle/deep/east_engi) "qrz" = ( /obj/effect/decal/cleanable/blood/oil, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/strata/ug/interior/jungle/platform/east/scrub) "qsI" = ( /obj/effect/decal/strata_decals/catwalk/prison, @@ -37782,10 +31040,7 @@ /turf/open/floor/greengrid, /area/strata/ug/interior/jungle/deep/structures/engi) "qsZ" = ( -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/exterior/paths/adminext) "qtn" = ( /obj/effect/blocker/sorokyne_cold_water, @@ -37801,10 +31056,7 @@ /area/strata/ag/exterior/marsh/center) "quT" = ( /obj/structure/inflatable/popped/door, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/med) "qvy" = ( /obj/structure/flora/grass/ice/brown/snowgrassbb_2, @@ -37815,10 +31067,7 @@ dir = 5 }, /obj/structure/closet/crate/radiation, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/tcomms) "qwx" = ( /obj/structure/bed{ @@ -37826,10 +31075,7 @@ }, /obj/structure/window/reinforced/tinted, /obj/structure/barricade/handrail/strata, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ug/interior/outpost/jung/dorms/admin3) "qwM" = ( /obj/structure/pipes/standard/simple/hidden/cyan, @@ -37850,10 +31096,7 @@ /area/strata/ug/interior/jungle/deep/tearlake) "qxt" = ( /obj/structure/machinery/cm_vending/sorted/medical/no_access, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan3" - }, +/turf/open/floor/strata/white_cyan3/east, /area/strata/ag/interior/outpost/med) "qxD" = ( /obj/structure/machinery/weather_siren{ @@ -37872,19 +31115,14 @@ /obj/item/paper_bin, /obj/item/tool/pen/blue, /obj/item/storage/pill_bottle/spaceacillin, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan2" - }, +/turf/open/floor/strata/cyan2/east, /area/strata/ag/interior/outpost/med) "qAr" = ( /obj/structure/machinery/light/small{ dir = 1; pixel_y = 20 }, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ug/interior/outpost/jung/dorms/sec2) "qBd" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, @@ -37893,42 +31131,33 @@ "qBg" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/clipboard, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/tcomms) "qCv" = ( /obj/structure/pipes/standard/manifold/fourway/hidden/cyan, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/tcomms) "qDg" = ( /obj/structure/flora/bush/ausbushes/var3/sparsegrass, /turf/open/auto_turf/strata_grass/layer0, /area/strata/ug/interior/jungle/platform/east/scrub) +"qDI" = ( +/obj/structure/machinery/power/reactor/colony, +/turf/open/floor/strata/floor3/east, +/area/strata/ag/interior/tcomms) "qFH" = ( /obj/structure/filingcabinet, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ag/interior/restricted/devroom) "qFY" = ( /obj/structure/machinery/door/airlock/prison{ dir = 2 }, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ug/interior/jungle/deep/structures/engi) "qGK" = ( /obj/structure/reagent_dispensers/watertank, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/strata/ug/interior/jungle/platform/east/scrub) "qHo" = ( /obj/effect/decal/cleanable/blood{ @@ -37942,15 +31171,11 @@ dir = 4 }, /obj/structure/barricade/handrail/strata, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/strata/ug/interior/jungle/platform/east/scrub) "qJi" = ( /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/prison{ - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2, /area/strata/ag/interior/outpost/engi) "qJC" = ( /obj/effect/decal/cleanable/blood, @@ -37964,19 +31189,14 @@ /obj/structure/bed/nest, /obj/effect/decal/cleanable/blood/gibs/core, /obj/effect/landmark/corpsespawner/doctor, -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles, /area/strata/ag/interior/dorms/hive) "qLp" = ( /obj/structure/machinery/light/small, /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/tcomms) "qMF" = ( /obj/structure/pipes/vents/pump/on, @@ -37990,35 +31210,22 @@ /area/strata/ag/exterior/research_decks) "qMQ" = ( /obj/item/stack/sheet/wood, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/exterior/research_decks) "qNi" = ( /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/outpost/admin) "qNS" = ( /obj/structure/inflatable/popped/door, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/exterior/research_decks) "qOj" = ( -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/strata/ag/exterior/landingzone_2) "qOm" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_nest, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ug/interior/jungle/deep/structures/res) "qOt" = ( /obj/structure/closet/bodybag, @@ -38030,23 +31237,15 @@ /obj/structure/toilet{ dir = 1 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ug/interior/outpost/jung/dorms/sec2) "qON" = ( /obj/structure/pipes/standard/manifold/hidden/cyan, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/med) "qOZ" = ( /obj/structure/machinery/chem_master, -/turf/open/floor/strata{ - icon_state = "purp2" - }, +/turf/open/floor/strata/purp2, /area/strata/ug/interior/jungle/deep/structures/engi) "qPl" = ( /obj/structure/machinery/light/small{ @@ -38054,10 +31253,7 @@ pixel_y = 20 }, /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/gen/bball/nest) "qQq" = ( /obj/structure/closet/bodybag, @@ -38066,9 +31262,7 @@ /area/strata/ag/exterior/research_decks) "qQu" = ( /obj/structure/machinery/light/small, -/turf/open/asphalt/cement{ - icon_state = "cement15" - }, +/turf/open/asphalt/cement/cement15, /area/strata/ug/interior/jungle/platform/east/scrub) "qQN" = ( /obj/structure/closet/bodybag, @@ -38084,9 +31278,7 @@ dir = 8 }, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/outpost/admin) "qSo" = ( /turf/closed/shuttle/ert{ @@ -38127,10 +31319,7 @@ "qTV" = ( /obj/effect/decal/cleanable/blood/oil, /obj/structure/machinery/recharge_station, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/exterior/vanyard) "qUB" = ( /obj/structure/bed/chair{ @@ -38143,19 +31332,14 @@ /turf/open/auto_turf/strata_grass/layer1, /area/strata/ug/interior/jungle/deep/east_dorms) "qUW" = ( -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/strata/ag/interior/dorms/canteen) "qWC" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/flora/pottedplant{ icon_state = "pottedplant_18" }, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ag/interior/restricted/devroom) "qWD" = ( /turf/closed/wall/strata_ice/dirty, @@ -38163,10 +31347,7 @@ "qWQ" = ( /obj/structure/surface/rack, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ug/interior/jungle/deep/structures/res) "qXN" = ( /obj/structure/platform/strata/metal{ @@ -38180,10 +31361,7 @@ /obj/structure/barricade/handrail/strata{ dir = 4 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/tcomms) "qYm" = ( /obj/structure/pipes/standard/simple/hidden/cyan, @@ -38209,9 +31387,7 @@ "rba" = ( /obj/structure/closet, /obj/effect/landmark/objective_landmark/far, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/dorms/flight_control) "rbi" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ @@ -38234,10 +31410,7 @@ dir = 4 }, /obj/structure/inflatable/popped/door, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/exterior/research_decks) "reb" = ( /obj/structure/stairs/perspective{ @@ -38261,28 +31434,24 @@ /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 9 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/exterior/research_decks) +"rfB" = ( +/obj/structure/machinery/power/reactor/colony, +/obj/effect/decal/cleanable/blood/oil, +/turf/open/floor/strata/floor3/east, +/area/strata/ag/exterior/shed_five_caves) "rgt" = ( /obj/structure/stairs/perspective{ color = "#6e6e6e"; dir = 4; icon_state = "p_stair_full" }, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ug/interior/jungle/deep/minehead) "rgz" = ( /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ug/interior/jungle/platform/east/scrub) "rgH" = ( /obj/structure/barricade/snow{ @@ -38296,26 +31465,20 @@ dir = 4 }, /obj/structure/window/framed/strata/reinforced, -/turf/open/floor/strata{ - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1, /area/strata/ag/interior/dorms/maintenance) "rhk" = ( /obj/structure/machinery/landinglight/ds1/delaythree{ dir = 4 }, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/strata/ag/interior/landingzone_1) "rhJ" = ( /obj/structure/barricade/handrail/strata{ dir = 8 }, /obj/structure/barricade/handrail/strata, -/turf/open/asphalt/cement{ - icon_state = "cement14" - }, +/turf/open/asphalt/cement/cement14, /area/strata/ug/interior/jungle/platform/east/scrub) "riM" = ( /obj/structure/flora/grass/tallgrass/ice/corner{ @@ -38336,10 +31499,7 @@ dir = 1; name = "\improper Airlock" }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/interior/outpost/med) "riY" = ( /obj/structure/pipes/vents/pump{ @@ -38354,6 +31514,10 @@ }, /turf/open/floor/strata, /area/strata/ug/interior/outpost/jung/dorms/admin2) +"rjn" = ( +/obj/structure/machinery/power/reactor/colony, +/turf/open/floor/strata/floor3/east, +/area/strata/ag/exterior/vanyard) "rjG" = ( /obj/structure/pipes/standard/simple/hidden/cyan, /turf/open/asphalt/cement, @@ -38361,35 +31525,24 @@ "rkb" = ( /obj/item/clothing/glasses/thermal/syndi, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/interior/landingzone_checkpoint) "rkq" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan1" - }, +/turf/open/floor/strata/cyan1/east, /area/strata/ag/interior/outpost/med) "rkI" = ( /obj/structure/largecrate/random, /obj/structure/barricade/handrail/strata{ dir = 1 }, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/strata/ug/interior/jungle/platform/east/scrub) "rno" = ( /obj/structure/largecrate/random, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/tcomms) "rok" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, @@ -38407,15 +31560,10 @@ dir = 2; name = "Medical Airlock" }, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/outpost/med) "rpX" = ( -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/strata/ug/interior/jungle/platform/east/scrub) "rqL" = ( /obj/item/tool/wrench, @@ -38455,10 +31603,7 @@ /area/strata/ug/interior/jungle/deep/south_engi) "rwD" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/exterior/research_decks) "rxp" = ( /turf/closed/wall/strata_outpost, @@ -38488,28 +31633,21 @@ /turf/open/floor/strata, /area/strata/ag/interior/mountain) "ryK" = ( -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan1" - }, +/turf/open/floor/strata/cyan1/east, /area/strata/ag/interior/outpost/med) "rzx" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/device/radio, /obj/item/reagent_container/food/drinks/cans/beer, /obj/structure/barricade/handrail/strata, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/outpost/engi/drome) "rzG" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, /obj/structure/barricade/handrail/strata, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/outpost/engi/drome) "rAv" = ( /obj/structure/platform/strata{ @@ -38523,9 +31661,7 @@ dir = 4 }, /obj/structure/barricade/handrail/strata, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/outpost/engi/drome) "rEr" = ( /obj/structure/platform/strata/metal{ @@ -38552,10 +31688,7 @@ "rHs" = ( /obj/effect/decal/cleanable/blood, /obj/effect/decal/cleanable/blood/gibs/core, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/tcomms) "rHX" = ( /obj/structure/flora/grass/tallgrass/ice/corner{ @@ -38567,17 +31700,12 @@ /turf/open/gm/coast/south, /area/strata/ug/interior/jungle/deep/north_carp) "rJf" = ( -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ug/interior/jungle/deep/structures/engi) "rJz" = ( /obj/effect/decal/strata_decals/catwalk/prison, /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2, /area/strata/ag/interior/outpost/engi) "rKG" = ( /turf/closed/wall/strata_outpost/reinforced/hull, @@ -38587,24 +31715,17 @@ dir = 4 }, /obj/structure/inflatable/popped, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan4" - }, +/turf/open/floor/strata/cyan4/east, /area/strata/ag/interior/outpost/med) "rLn" = ( /obj/effect/landmark/survivor_spawner, -/turf/open/floor/plating{ - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate, /area/strata/ag/interior/outpost/engi/drome/shuttle) "rLZ" = ( /obj/effect/spawner/random/toolbox{ pixel_y = 12 }, -/turf/open/floor/plating{ - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate, /area/strata/ag/interior/outpost/engi/drome/shuttle) "rMv" = ( /turf/closed/shuttle/ert{ @@ -38619,16 +31740,12 @@ /obj/structure/machinery/door/window/eastright{ dir = 1 }, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ug/interior/outpost/jung/dorms/admin1) "rMP" = ( /obj/structure/closet/coffin, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ag/interior/outpost/med) "rNI" = ( /turf/open/auto_turf/ice/layer1, @@ -38655,9 +31772,7 @@ /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/dorms/flight_control) "rQX" = ( /obj/structure/platform/strata{ @@ -38674,9 +31789,7 @@ dir = 4 }, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles, /area/strata/ag/interior/dorms/hive) "rSl" = ( /obj/structure/blocker/forcefield/multitile_vehicles, @@ -38690,24 +31803,17 @@ /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/research_decks/security) "rTC" = ( /obj/structure/pipes/standard/manifold/fourway/hidden/cyan, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/outpost/engi/drome) "rUn" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22" }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/outpost/med) "rUQ" = ( /obj/structure/stairs/perspective{ @@ -38719,10 +31825,7 @@ /obj/structure/platform/strata/metal{ dir = 1 }, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/tcomms) "rWk" = ( /obj/structure/sink{ @@ -38732,16 +31835,17 @@ /obj/structure/mirror{ pixel_x = -29 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ug/interior/outpost/jung/dorms/sec2) "rXy" = ( /obj/structure/largecrate/random/barrel/yellow, /obj/effect/decal/cleanable/blood/oil, /turf/open/floor/strata, /area/strata/ag/interior/tcomms) +"rXZ" = ( +/obj/item/fuel_cell, +/turf/open/auto_turf/ice/layer1, +/area/strata/ag/interior/outpost/gen/bball/nest) "sah" = ( /obj/item/weapon/gun/pistol/t73, /turf/open/auto_turf/strata_grass/layer1, @@ -38750,10 +31854,7 @@ /obj/structure/machinery/power/terminal{ dir = 8 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/exterior/shed_five_caves) "saY" = ( /turf/open/gm/river, @@ -38772,10 +31873,15 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "purp2" - }, +/turf/open/floor/strata/purp2, /area/strata/ug/interior/jungle/deep/structures/engi) +"scp" = ( +/obj/structure/barricade/handrail/strata{ + dir = 4 + }, +/obj/item/fuel_cell, +/turf/open/floor/strata/red2, +/area/strata/ag/interior/outpost/engi) "seb" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, /turf/open/auto_turf/snow/brown_base/layer0, @@ -38786,9 +31892,7 @@ dir = 8; icon_state = "p_stair_sn_full_cap" }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/engi/drome) "sgq" = ( /obj/structure/bed{ @@ -38817,17 +31921,11 @@ }, /obj/item/explosive/grenade/high_explosive/upp, /obj/effect/decal/cleanable/blood/gibs/limb, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ug/interior/jungle/platform/east/scrub) "sip" = ( /obj/structure/inflatable, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan3" - }, +/turf/open/floor/strata/cyan3/east, /area/strata/ag/interior/outpost/med) "sjp" = ( /obj/structure/flora/pottedplant{ @@ -38836,10 +31934,7 @@ /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 9 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/outpost/engi/drome) "ski" = ( /obj/structure/surface/table/reinforced/prison, @@ -38851,19 +31946,14 @@ /obj/structure/machinery/door/airlock/multi_tile/almayer/comdoor/colony{ name = "\improper Airlock" }, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/outpost/engi/drome) "skJ" = ( /obj/effect/decal/cleanable/blood/oil, /obj/structure/machinery/landinglight/ds2{ dir = 4 }, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/strata/ag/exterior/landingzone_2) "sly" = ( /obj/structure/disposalpipe/segment{ @@ -38876,10 +31966,7 @@ /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/strata/ag/interior/outpost/canteen/lower_cafeteria) "smd" = ( /obj/structure/flora/bush/ausbushes/grassybush{ @@ -38909,10 +31996,15 @@ /obj/structure/barricade/handrail/strata{ dir = 4 }, -/turf/open/asphalt/cement{ - icon_state = "cement9" - }, +/turf/open/asphalt/cement/cement9, /area/strata/ug/interior/jungle/platform/east/scrub) +"soD" = ( +/obj/item/fuel_cell, +/obj/structure/barricade/handrail/strata{ + dir = 8 + }, +/turf/open/floor/strata/floor3, +/area/strata/ag/interior/outpost/engi) "spp" = ( /obj/item/weapon/gun/pistol/t73, /obj/effect/decal/cleanable/blood/gibs/core, @@ -38926,9 +32018,7 @@ /area/strata/ug/interior/jungle/platform/east/scrub) "srQ" = ( /obj/structure/machinery/light/small, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/tcomms) "ssd" = ( /turf/open/gm/coast/east, @@ -38942,15 +32032,10 @@ }, /obj/structure/window/reinforced/tinted, /obj/structure/barricade/handrail/strata, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ug/interior/outpost/jung/dorms/admin3) "ssE" = ( -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/exterior/vanyard) "stf" = ( /turf/open/gm/coast/west, @@ -38966,17 +32051,12 @@ /obj/structure/machinery/camera/autoname{ dir = 4 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan2" - }, +/turf/open/floor/strata/cyan2/east, /area/strata/ag/interior/outpost/med) "svP" = ( /obj/structure/fence, /obj/structure/fence, -/turf/open/asphalt/cement{ - icon_state = "cement9" - }, +/turf/open/asphalt/cement/cement9, /area/strata/ag/exterior/tcomms/tcomms_deck) "sxr" = ( /obj/effect/blocker/sorokyne_cold_water, @@ -38992,9 +32072,7 @@ /area/strata/ag/interior/outpost/gen/bball/nest) "sya" = ( /obj/structure/bed/roller, -/turf/open/floor/strata{ - icon_state = "purp2" - }, +/turf/open/floor/strata/purp2, /area/strata/ug/interior/jungle/deep/structures/engi) "syU" = ( /obj/structure/machinery/space_heater, @@ -39012,9 +32090,7 @@ /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/strata/ug/interior/jungle/platform/east/scrub) "sAv" = ( /turf/closed/wall/strata_outpost/reinforced/hull, @@ -39024,23 +32100,16 @@ color = "#6e6e6e"; icon_state = "p_stair_full" }, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ug/interior/jungle/deep/structures/res) "sBg" = ( /obj/structure/machinery/landinglight/ds2/delaythree, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/strata/ag/exterior/landingzone_2) "sCa" = ( /obj/structure/machinery/computer/secure_data, /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/strata{ - icon_state = "purp2" - }, +/turf/open/floor/strata/purp2, /area/strata/ug/interior/jungle/deep/structures/engi) "sDs" = ( /obj/structure/flora/pottedplant{ @@ -39051,18 +32120,13 @@ pixel_x = -24; start_charge = 0 }, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/research_decks/security) "sDE" = ( /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/outpost/med) "sEG" = ( /obj/structure/platform_decoration/strata{ @@ -39082,9 +32146,7 @@ /obj/structure/machinery/landinglight/ds2{ dir = 1 }, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/strata/ag/exterior/landingzone_2) "sGJ" = ( /obj/structure/machinery/light/small{ @@ -39096,10 +32158,7 @@ "sGR" = ( /obj/effect/decal/cleanable/blood, /obj/structure/largecrate/random/case/small, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/tcomms) "sHP" = ( /turf/closed/wall/strata_outpost, @@ -39126,16 +32185,11 @@ dir = 4 }, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/almayer{ - icon_state = "test_floor5" - }, +/turf/open/floor/almayer/test_floor5, /area/strata/ag/exterior/marsh/crash) "sOB" = ( /obj/effect/decal/cleanable/blood/gibs/limb, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/exterior/research_decks) "sPc" = ( /turf/closed/wall/strata_ice/dirty, @@ -39149,18 +32203,13 @@ pixel_y = 20 }, /obj/item/storage/fancy/cigarettes/lady_finger, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ug/interior/outpost/jung/dorms/sec1) "sPF" = ( /turf/open/floor/strata, /area/strata/ug/interior/jungle/platform/east/scrub) "sQs" = ( -/turf/open/asphalt/cement{ - icon_state = "cement9" - }, +/turf/open/asphalt/cement/cement9, /area/strata/ag/exterior/landingzone_2) "sQA" = ( /obj/effect/landmark/good_item, @@ -39168,25 +32217,18 @@ /obj/effect/decal/cleanable/blood{ icon_state = "xgib6" }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ug/interior/outpost/jung/dorms/admin2) "sQK" = ( /obj/structure/barricade/handrail/strata{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ug/interior/jungle/deep/structures/engi) "sRz" = ( /obj/structure/inflatable, /obj/structure/barricade/handrail/strata, -/turf/open/floor/prison{ - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2, /area/strata/ag/exterior/research_decks) "sRR" = ( /obj/structure/flora/bush/ausbushes/grassybush{ @@ -39195,39 +32237,28 @@ /turf/open/auto_turf/strata_grass/layer1, /area/strata/ug/interior/jungle/deep/west_engi) "sRX" = ( -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ug/interior/outpost/jung/dorms/med2) "sSv" = ( /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/strata/ag/exterior/marsh) "sSZ" = ( /obj/effect/decal/cleanable/blood{ icon_state = "xgib4" }, -/turf/open/floor/strata{ - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1, /area/strata/ag/interior/dorms) "sWO" = ( /obj/structure/machinery/light/small{ dir = 1; pixel_y = 20 }, -/turf/open/asphalt/cement{ - icon_state = "cement15" - }, +/turf/open/asphalt/cement/cement15, /area/strata/ag/exterior/marsh) "sXl" = ( /obj/structure/window/framed/strata, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ug/interior/jungle/deep/structures/engi) "sXt" = ( /obj/structure/bed/chair{ @@ -39243,10 +32274,7 @@ capacity = 1e+006; dir = 1 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/exterior/shed_five_caves) "sXF" = ( /obj/effect/particle_effect/steam, @@ -39273,47 +32301,32 @@ /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/tcomms) "taa" = ( /obj/structure/filingcabinet, /obj/structure/barricade/handrail/strata, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/outpost/admin) "taL" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22" }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ug/interior/outpost/jung/dorms/admin3) "taW" = ( -/turf/open/asphalt/cement{ - icon_state = "cement9" - }, +/turf/open/asphalt/cement/cement9, /area/strata/ug/interior/jungle/platform/east/scrub) "tdn" = ( /obj/structure/pipes/vents/pump/on, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/tcomms) "tdr" = ( /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/tcomms) "tdB" = ( /obj/item/explosive/grenade/high_explosive/upp, @@ -39321,10 +32334,7 @@ /obj/effect/decal/cleanable/blood{ icon_state = "xgib6" }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ug/interior/outpost/jung/dorms/admin2) "teI" = ( /obj/structure/flora/grass/tallgrass/ice/corner{ @@ -39335,9 +32345,7 @@ "tfB" = ( /obj/structure/closet/secure_closet/engineering_electrical, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/exterior/north_lz_caves) "tfM" = ( /obj/structure/flora/grass/ice/brown/snowgrassbb_1, @@ -39349,10 +32357,7 @@ dir = 4; icon_state = "p_stair_sn_full_cap" }, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ug/interior/jungle/deep/structures/res) "tgC" = ( /turf/open/auto_turf/strata_grass/layer1, @@ -39368,10 +32373,7 @@ color = "#6e6e6e"; icon_state = "p_stair_full" }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/exterior/research_decks) "thz" = ( /obj/effect/decal/strata_decals/catwalk/prison, @@ -39382,9 +32384,7 @@ /obj/structure/pipes/standard/manifold/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/dorms) "tiE" = ( /obj/structure/barricade/handrail/strata{ @@ -39393,15 +32393,11 @@ /obj/structure/surface/table/reinforced/prison, /obj/item/stack/cable_coil/blue, /obj/item/stack/cable_coil/blue, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ag/interior/outpost/engi/drome) "tiU" = ( /obj/structure/barricade/handrail/strata, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/strata/ug/interior/jungle/platform/east/scrub) "tjo" = ( /obj/effect/decal/cleanable/blood/gibs/core, @@ -39419,27 +32415,20 @@ /obj/item/storage/box/gloves, /obj/item/storage/box/pillbottles, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/engi) "tlo" = ( /obj/effect/decal/cleanable/blood, /obj/effect/decal/cleanable/blood/gibs/limb, /obj/item/stack/sheet/metal/medium_stack, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/strata/ug/interior/jungle/platform/east/scrub) "tlJ" = ( /obj/structure/bed{ icon_state = "abed" }, /obj/structure/machinery/light/small, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ug/interior/outpost/jung/dorms/sec1) "tmi" = ( /obj/item/stack/sheet/wood, @@ -39452,22 +32441,15 @@ name = "slab of triumph"; pixel_y = 2 }, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ag/interior/restricted/devroom) "tmB" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/microwave, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ug/interior/outpost/jung/dorms/admin1) "tnM" = ( -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/strata/ug/interior/jungle/platform/east/scrub) "toV" = ( /turf/open/gm/coast/beachcorner/north_east, @@ -39486,10 +32468,7 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ug/interior/outpost/jung/dorms/med1) "tru" = ( /obj/effect/blocker/sorokyne_cold_water, @@ -39517,10 +32496,7 @@ /obj/structure/barricade/handrail/strata{ dir = 8 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "orange_edge" - }, +/turf/open/floor/strata/orange_edge/west, /area/strata/ag/exterior/research_decks) "tsX" = ( /obj/structure/platform/strata/metal{ @@ -39541,6 +32517,10 @@ }, /turf/open/auto_turf/ice/layer1, /area/strata/ag/exterior/paths/north_outpost) +"tuV" = ( +/obj/structure/machinery/fuelcell_recycler/full, +/turf/open/floor/strata/floor3, +/area/strata/ag/interior/outpost/engi) "tvk" = ( /obj/structure/platform/strata/metal{ dir = 1 @@ -39559,27 +32539,20 @@ /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ug/interior/jungle/deep/structures/engi) "txs" = ( /turf/open/asphalt/cement, /area/strata/ag/interior/outpost/gen/bball/nest) "tyh" = ( /obj/structure/surface/rack, -/turf/open/floor/prison{ - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2, /area/strata/ag/exterior/research_decks) "tyj" = ( /obj/structure/pipes/standard/manifold/hidden/cyan{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/outpost/canteen) "tyD" = ( /obj/effect/blocker/sorokyne_cold_water, @@ -39596,19 +32569,14 @@ /area/strata/ag/exterior/paths/southresearch) "tBw" = ( /obj/structure/closet/crate/radiation, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/tcomms) "tCi" = ( /turf/closed/wall/strata_ice/dirty, /area/strata/ag/exterior/marsh/center) "tCI" = ( /obj/structure/window/framed/strata, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/interior/outpost/admin) "tCM" = ( /obj/structure/bed/roller, @@ -39624,10 +32592,7 @@ /area/strata/ag/exterior/marsh/center) "tEf" = ( /obj/structure/window/framed/strata, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/tcomms) "tEC" = ( /obj/structure/sign/nosmoking_1, @@ -39644,10 +32609,7 @@ /obj/structure/window/reinforced/tinted{ dir = 1 }, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ug/interior/jungle/deep/structures/engi) "tHv" = ( /obj/effect/landmark/static_comms/net_two, @@ -39659,17 +32621,12 @@ dir = 6 }, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/tcomms) "tHE" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/storage/pill_bottle/russianRed, -/turf/open/floor/strata{ - icon_state = "orange_tile" - }, +/turf/open/floor/strata/orange_tile, /area/strata/ag/interior/dorms) "tIl" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ @@ -39679,10 +32636,7 @@ /area/strata/ag/interior/mountain) "tIv" = ( /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ug/interior/jungle/deep/structures/engi) "tJp" = ( /obj/effect/decal/strata_decals/catwalk/prison, @@ -39714,10 +32668,7 @@ /area/strata/ag/exterior/nearlz2) "tKC" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/outpost/engi/drome) "tKS" = ( /turf/closed/shuttle/ert{ @@ -39732,9 +32683,7 @@ /turf/open/auto_turf/ice/layer1, /area/strata/ag/exterior/paths/southresearch) "tLI" = ( -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ug/interior/jungle/deep/structures/engi) "tLO" = ( /obj/effect/landmark/monkey_spawn, @@ -39755,40 +32704,27 @@ /area/strata/ug/interior/jungle/deep/east_engi) "tNQ" = ( /obj/structure/barricade/handrail/strata, -/turf/open/asphalt/cement{ - icon_state = "cement14" - }, +/turf/open/asphalt/cement/cement14, /area/strata/ug/interior/jungle/platform/east/scrub) "tOA" = ( /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/tcomms) "tPi" = ( /obj/structure/barricade/handrail/strata{ dir = 8 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ug/interior/outpost/jung/dorms/med2) "tPl" = ( /obj/structure/toilet{ dir = 1 }, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ug/interior/outpost/jung/dorms/sec1) "tPx" = ( -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ug/interior/outpost/jung/dorms/admin3) "tPN" = ( /turf/closed/wall/strata_ice/jungle, @@ -39804,9 +32740,7 @@ /obj/structure/barricade/handrail/strata{ dir = 4 }, -/turf/open/asphalt/cement{ - icon_state = "cement9" - }, +/turf/open/asphalt/cement/cement9, /area/strata/ug/interior/jungle/platform/east/scrub) "tRf" = ( /obj/structure/surface/table/reinforced/prison, @@ -39814,16 +32748,10 @@ dir = 1; icon_state = "commb" }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan2" - }, +/turf/open/floor/strata/cyan2/east, /area/strata/ag/interior/outpost/med) "tRC" = ( -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/tcomms) "tSb" = ( /obj/structure/flora/grass/ice/brown/snowgrassbb_2, @@ -39871,10 +32799,7 @@ /area/strata/ug/interior/jungle/deep/east_dorms) "tTP" = ( /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/interior/tcomms) "tUu" = ( /obj/structure/flora/grass/ice/brown/snowgrassbb_3, @@ -39889,18 +32814,14 @@ /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2, /area/strata/ag/exterior/research_decks) "tUW" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" }, /obj/structure/barricade/handrail/strata, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/outpost/gen/bball) "tUZ" = ( /obj/structure/platform/strata{ @@ -39911,19 +32832,14 @@ "tVN" = ( /obj/structure/largecrate/random/case/double, /obj/structure/machinery/light/small, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/outpost/engi/drome) "tVP" = ( /obj/structure/pipes/vents/pump/on, /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/tcomms) "tWf" = ( /obj/structure/flora/grass/ice/brown/snowgrassbb_3, @@ -39940,9 +32856,7 @@ /area/strata/ag/exterior/tcomms/tcomms_deck) "tYB" = ( /obj/structure/pipes/standard/manifold/hidden/cyan, -/turf/open/floor/prison{ - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2, /area/strata/ag/exterior/research_decks) "tYF" = ( /obj/structure/flora/grass/tallgrass/ice/corner{ @@ -39955,33 +32869,23 @@ dir = 1; pixel_y = 25 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ug/interior/outpost/jung/dorms/sec2) "tZV" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan2" - }, +/turf/open/floor/strata/cyan2/east, /area/strata/ag/interior/outpost/med) "uad" = ( /obj/structure/largecrate/random, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/strata/ag/exterior/tcomms/tcomms_deck) "uaC" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2, /area/strata/ag/exterior/research_decks) "uaH" = ( /turf/open/floor/strata, @@ -39992,9 +32896,7 @@ /obj/item/weapon/gun/pistol/t73, /obj/item/attachable/bayonet/upp, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/strata/ag/interior/landingzone_checkpoint) "ubx" = ( /obj/structure/largecrate/random, @@ -40012,9 +32914,7 @@ /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/outpost/gen/bball) "ucD" = ( /obj/structure/inflatable/door, @@ -40029,9 +32929,7 @@ /obj/item/lightstick, /obj/item/lightstick, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ug/interior/outpost/jung/dorms/sec1) "ueK" = ( /obj/effect/particle_effect/steam, @@ -40060,10 +32958,7 @@ dir = 8; icon_state = "p_stair_sn_full_cap" }, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/engi) "ufI" = ( /obj/structure/stairs/perspective{ @@ -40071,16 +32966,12 @@ dir = 4; icon_state = "p_stair_sn_full_cap" }, -/turf/open/floor/prison{ - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2, /area/strata/ag/interior/outpost/engi) "ugH" = ( /obj/structure/closet/secure_closet/personal, /obj/item/storage/secure/briefcase, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ug/interior/outpost/jung/dorms/sec2) "ugI" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ @@ -40093,10 +32984,7 @@ /obj/structure/toilet{ dir = 1 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ug/interior/outpost/jung/dorms/admin3) "uhF" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ @@ -40118,10 +33006,7 @@ /area/strata/ag/exterior/research_decks) "uko" = ( /obj/item/stack/snow, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/exterior/paths/north_outpost) "ukx" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ @@ -40132,10 +33017,8 @@ "ulv" = ( /obj/structure/surface/rack, /obj/item/weapon/gun/pistol/t73, -/obj/item/handcuffs, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/obj/item/restraint/handcuffs, +/turf/open/floor/strata/red1, /area/strata/ag/interior/research_decks/security) "ulL" = ( /obj/structure/platform/strata/metal{ @@ -40148,63 +33031,41 @@ /obj/structure/toilet{ dir = 4 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ug/interior/outpost/jung/dorms/med1) "unE" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/exterior/vanyard) "unO" = ( /obj/structure/closet/secure_closet/personal, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan1" - }, +/turf/open/floor/strata/cyan1/east, /area/strata/ug/interior/outpost/jung/dorms/med1) "uoP" = ( /obj/effect/decal/cleanable/blood/oil, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/strata/ag/exterior/landingzone_2) "uph" = ( /obj/structure/closet/fireaxecabinet, /turf/closed/wall/strata_outpost, /area/strata/ag/interior/tcomms) "upO" = ( -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/outpost/gen/bball) "uqB" = ( -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/turf/open/floor/strata/white_cyan1/east, /area/strata/ag/interior/outpost/gen/bball) "uqY" = ( /obj/structure/machinery/light/small{ dir = 8 }, /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/tcomms) "urF" = ( /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ug/interior/outpost/jung/dorms/med2) "urM" = ( /obj/structure/pipes/standard/manifold/hidden/cyan, @@ -40227,10 +33088,7 @@ dir = 4 }, /obj/structure/inflatable/door, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/exterior/research_decks) "utV" = ( /obj/effect/landmark/monkey_spawn, @@ -40241,9 +33099,7 @@ /obj/effect/decal/cleanable/dirt, /obj/item/device/flashlight/lamp/green, /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ag/interior/restricted/devroom) "uul" = ( /obj/structure/largecrate/guns/russian, @@ -40260,10 +33116,7 @@ dir = 4 }, /obj/effect/decal/cleanable/blood, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/exterior/research_decks) "uvZ" = ( /obj/effect/blocker/sorokyne_cold_water, @@ -40284,10 +33137,7 @@ }, /obj/structure/inflatable/popped/door, /obj/effect/decal/cleanable/blood, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/exterior/research_decks) "uyQ" = ( /obj/structure/barricade/handrail/strata{ @@ -40296,9 +33146,7 @@ /obj/structure/barricade/handrail/strata{ dir = 8 }, -/turf/open/asphalt/cement{ - icon_state = "cement2" - }, +/turf/open/asphalt/cement/cement2, /area/strata/ug/interior/jungle/platform/east/scrub) "uzb" = ( /obj/structure/stairs/perspective{ @@ -40311,10 +33159,7 @@ dir = 4 }, /obj/item/stack/catwalk, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/tcomms) "uzv" = ( /obj/structure/flora/grass/tallgrass/ice/corner{ @@ -40331,10 +33176,7 @@ dir = 4 }, /obj/item/stack/sheet/wood, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/exterior/research_decks) "uCc" = ( /obj/structure/cargo_container/grant/rightmid, @@ -40342,18 +33184,13 @@ /area/strata/ag/exterior/marsh) "uCI" = ( /obj/structure/dispenser, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/tcomms) "uDa" = ( /obj/structure/bed/chair/office/light{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ag/interior/restricted/devroom) "uDU" = ( /obj/structure/stairs/perspective{ @@ -40370,21 +33207,14 @@ "uEj" = ( /obj/structure/largecrate/random, /obj/item/toy/deck, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/exterior/marsh/center) "uFT" = ( /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan1" - }, +/turf/open/floor/strata/cyan1/east, /area/strata/ag/interior/outpost/med) "uGH" = ( -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ag/interior/restricted/devroom) "uHa" = ( /obj/structure/machinery/light/small{ @@ -40392,9 +33222,7 @@ }, /obj/structure/surface/table/reinforced/prison, /obj/effect/landmark/crap_item, -/turf/open/floor/strata{ - icon_state = "purp2" - }, +/turf/open/floor/strata/purp2, /area/strata/ug/interior/jungle/deep/structures/engi) "uHX" = ( /obj/effect/decal/cleanable/cobweb2, @@ -40408,9 +33236,7 @@ /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/research_decks/security) "uKj" = ( /obj/structure/bed/chair, @@ -40421,10 +33247,7 @@ dir = 4; pixel_x = 11 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ug/interior/jungle/deep/structures/engi) "uLd" = ( /obj/structure/surface/table/reinforced/prison, @@ -40432,22 +33255,14 @@ dir = 1; pixel_y = 20 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/outpost/med) "uLl" = ( /obj/structure/largecrate/random/barrel/blue, -/turf/open/floor/strata{ - icon_state = "purp2" - }, +/turf/open/floor/strata/purp2, /area/strata/ug/interior/jungle/deep/structures/engi) "uLJ" = ( -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ug/interior/jungle/deep/structures/engi) "uLK" = ( /obj/structure/disposalpipe/segment, @@ -40460,10 +33275,7 @@ "uNQ" = ( /obj/structure/surface/rack, /obj/item/storage/firstaid/regular, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/exterior/research_decks) "uPE" = ( /obj/structure/flora/grass/tallgrass/ice/corner{ @@ -40477,9 +33289,7 @@ /obj/item/weapon/gun/pistol/t73, /obj/item/attachable/bayonet/upp, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/landingzone_checkpoint) "uPR" = ( /obj/item/weapon/gun/pistol/t73, @@ -40511,18 +33321,13 @@ dir = 1; pixel_y = 25 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ug/interior/outpost/jung/dorms/admin3) "uTL" = ( /obj/structure/bed/chair/dropship/passenger{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "test_floor5" - }, +/turf/open/floor/almayer/test_floor5, /area/strata/ag/exterior/marsh/crash) "uTQ" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ @@ -40533,17 +33338,13 @@ /turf/open/floor/strata, /area/strata/ag/exterior/research_decks) "uVv" = ( -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/strata/ug/interior/jungle/platform/east/scrub) "uWe" = ( /obj/structure/bookcase{ icon_state = "book-5" }, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ug/interior/jungle/deep/structures/engi) "uWG" = ( /obj/structure/stairs/perspective{ @@ -40556,24 +33357,18 @@ "uWO" = ( /obj/structure/closet/basketball, /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/outpost/gen/bball) "uWP" = ( /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/tcomms) "uXg" = ( /turf/closed/wall/strata_ice/jungle, /area/strata/ug/interior/jungle/deep/south_dorms) "uXI" = ( /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/asphalt/cement{ - icon_state = "cement14" - }, +/turf/open/asphalt/cement/cement14, /area/strata/ag/exterior/tcomms/tcomms_deck) "uXY" = ( /obj/structure/platform/strata/metal{ @@ -40582,17 +33377,12 @@ /turf/open/auto_turf/strata_grass/layer0, /area/strata/ug/interior/jungle/deep/south_dorms) "uZh" = ( -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/gen/bball) "vaq" = ( /obj/structure/surface/table/reinforced/prison, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ug/interior/jungle/deep/structures/res) "vaW" = ( /obj/structure/platform_decoration/strata, @@ -40619,18 +33409,13 @@ /obj/structure/machinery/door/window/eastright{ dir = 1 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ug/interior/outpost/jung/dorms/admin2) "vbN" = ( /obj/structure/bed/chair/comfy{ dir = 1 }, -/turf/open/floor/strata{ - icon_state = "purp2" - }, +/turf/open/floor/strata/purp2, /area/strata/ug/interior/jungle/deep/structures/engi) "vdi" = ( /obj/structure/flora/grass/tallgrass/ice/corner{ @@ -40642,10 +33427,7 @@ /obj/structure/machinery/door/airlock/prison{ name = "Reinforced Airlock" }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ug/interior/outpost/jung/dorms/med2) "vgb" = ( /obj/effect/blocker/sorokyne_cold_water, @@ -40669,9 +33451,7 @@ "vhl" = ( /obj/item/storage/pill_bottle/bicaridine, /obj/structure/surface/rack, -/turf/open/floor/prison{ - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2, /area/strata/ag/exterior/research_decks) "vhv" = ( /obj/structure/surface/rack, @@ -40692,27 +33472,19 @@ /obj/structure/machinery/door/airlock/almayer/engineering/colony{ dir = 2 }, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/tcomms) "vjD" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/reagent_container/food/snacks/monkeyburger, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan2" - }, +/turf/open/floor/strata/cyan2/east, /area/strata/ag/interior/dorms/canteen) "vjZ" = ( /obj/structure/machinery/disposal, /obj/structure/barricade/handrail/strata{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2, /area/strata/ag/exterior/research_decks) "vkp" = ( /turf/closed/shuttle/ert{ @@ -40723,9 +33495,7 @@ /turf/closed/wall/strata_outpost, /area/strata/ag/interior/outpost/med) "vlG" = ( -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/tcomms) "vlH" = ( /obj/structure/machinery/weather_siren{ @@ -40740,36 +33510,23 @@ dir = 1 }, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/interior/tcomms) "vms" = ( /obj/structure/platform/strata/metal, -/turf/open/floor/strata{ - dir = 1; - icon_state = "red3" - }, +/turf/open/floor/strata/red3/north, /area/strata/ag/interior/outpost/med) "vmI" = ( /obj/structure/window/framed/strata, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/outpost/med) "vnh" = ( /obj/structure/window/framed/strata/reinforced, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/dorms/south) "vnC" = ( /obj/structure/curtain/open/medical, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ag/interior/outpost/med) "vnI" = ( /obj/structure/machinery/light/small{ @@ -40777,9 +33534,7 @@ }, /obj/structure/curtain/open/medical, /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ag/interior/outpost/med) "vnV" = ( /obj/structure/stairs/perspective{ @@ -40794,9 +33549,7 @@ /area/strata/ag/exterior/paths/southresearch) "voe" = ( /obj/structure/curtain/medical, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ag/interior/outpost/med) "vox" = ( /obj/effect/blocker/sorokyne_cold_water, @@ -40822,10 +33575,7 @@ /obj/structure/mirror{ pixel_x = -29 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ug/interior/outpost/jung/dorms/med2) "vqx" = ( /obj/effect/landmark/hunter_secondary, @@ -40835,10 +33585,7 @@ /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/tcomms) "vsd" = ( /obj/structure/surface/table/reinforced/prison, @@ -40847,63 +33594,38 @@ }, /obj/item/storage/box/bodybags, /obj/item/storage/box/bodybags, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/med) "vsp" = ( /obj/structure/machinery/landinglight/ds2/delayone{ dir = 8 }, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/strata/ag/exterior/landingzone_2) "vsy" = ( -/turf/open/floor/strata{ - icon_state = "purp2" - }, +/turf/open/floor/strata/purp2, /area/strata/ug/interior/jungle/deep/structures/engi) "vsL" = ( /obj/item/reagent_container/food/snacks/donkpocket, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/tcomms) "vsZ" = ( /obj/item/stack/medical/splint, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/med) "vth" = ( /obj/structure/closet/lawcloset, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/tcomms) "vtl" = ( -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/exterior/vanyard) "vtp" = ( -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan3" - }, +/turf/open/floor/strata/cyan3/east, /area/strata/ag/interior/outpost/med) "vtz" = ( -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/med) "vtM" = ( /obj/structure/machinery/weather_siren{ @@ -40932,10 +33654,7 @@ /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/outpost/med) "vvB" = ( /obj/structure/filingcabinet, @@ -40943,18 +33662,13 @@ dir = 1 }, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/med) "vvR" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 9 }, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/research_decks/security) "vvV" = ( /obj/effect/decal/cleanable/dirt, @@ -40985,9 +33699,7 @@ "vwX" = ( /obj/structure/machinery/centrifuge, /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/strata{ - icon_state = "purp2" - }, +/turf/open/floor/strata/purp2, /area/strata/ug/interior/jungle/deep/structures/engi) "vxd" = ( /turf/closed/wall/strata_outpost, @@ -40999,16 +33711,11 @@ /turf/open/floor/strata, /area/strata/ag/interior/tcomms) "vyl" = ( -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan2" - }, +/turf/open/floor/strata/cyan2/east, /area/strata/ag/interior/outpost/med) "vyK" = ( /obj/structure/machinery/autolathe, -/turf/open/floor/strata{ - icon_state = "purp2" - }, +/turf/open/floor/strata/purp2, /area/strata/ug/interior/jungle/deep/structures/engi) "vBi" = ( /obj/structure/flora/bush/ausbushes/grassybush{ @@ -41032,10 +33739,7 @@ /obj/item/clothing/shoes/jackboots, /obj/item/clothing/shoes/jackboots, /obj/item/clothing/shoes/jackboots, -/turf/open/floor/strata{ - dir = 1; - icon_state = "red3" - }, +/turf/open/floor/strata/red3/north, /area/strata/ag/interior/outpost/med) "vCl" = ( /obj/structure/barricade/handrail/strata{ @@ -41057,17 +33761,11 @@ /area/strata/ag/interior/outpost/canteen) "vCN" = ( /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan2" - }, +/turf/open/floor/strata/cyan2/east, /area/strata/ag/interior/outpost/med) "vDm" = ( /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ug/interior/jungle/deep/east_dorms) "vDr" = ( /turf/closed/shuttle/ert{ @@ -41087,9 +33785,7 @@ /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "purp2" - }, +/turf/open/floor/strata/purp2, /area/strata/ug/interior/jungle/deep/structures/engi) "vGx" = ( /turf/closed/shuttle/ert{ @@ -41103,10 +33799,7 @@ "vId" = ( /obj/structure/machinery/space_heater, /obj/structure/barricade/handrail/strata, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/exterior/research_decks) "vJj" = ( /obj/structure/surface/table/reinforced/prison, @@ -41131,22 +33824,16 @@ pixel_y = 24; start_charge = 0 }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, +/turf/open/floor/prison/darkredfull2, /area/strata/ag/interior/landingzone_checkpoint) "vMr" = ( /obj/structure/filingcabinet/filingcabinet, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/dorms/flight_control) "vNG" = ( /obj/structure/reagent_dispensers/watertank, -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles, /area/strata/ag/interior/dorms/hive) "vOf" = ( /turf/closed/shuttle/ert{ @@ -41184,10 +33871,7 @@ /obj/structure/stairs/perspective{ color = "#6e6e6e" }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ug/interior/outpost/jung/dorms/admin3) "vTN" = ( /obj/structure/machinery/power/apc{ @@ -41196,15 +33880,10 @@ }, /obj/effect/decal/cleanable/blood, /obj/effect/decal/cleanable/blood/gibs/core, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ug/interior/outpost/jung/dorms/sec1) "vUp" = ( -/turf/open/asphalt/cement{ - icon_state = "cement2" - }, +/turf/open/asphalt/cement/cement2, /area/strata/ag/exterior/tcomms/tcomms_deck) "vVK" = ( /turf/open/auto_turf/strata_grass/layer1, @@ -41224,10 +33903,7 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan3" - }, +/turf/open/floor/strata/cyan3/east, /area/strata/ag/interior/outpost/med) "vZT" = ( /turf/open/gm/coast/beachcorner2/south_east, @@ -41250,10 +33926,7 @@ dir = 1; name = "\improper Airlock" }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ug/interior/jungle/deep/structures/engi) "wbN" = ( /obj/structure/pipes/standard/simple/hidden/cyan, @@ -41267,14 +33940,10 @@ /obj/structure/barricade/handrail/strata{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/outpost/admin) "wdI" = ( -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/strata/ag/interior/outpost/med) "wdN" = ( /obj/structure/platform/strata{ @@ -41288,9 +33957,7 @@ dir = 1 }, /obj/structure/inflatable/popped, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, +/turf/open/floor/strata/orange_cover, /area/strata/ag/exterior/nearlz2) "wfv" = ( /obj/structure/stairs/perspective{ @@ -41345,18 +34012,14 @@ /turf/open/gm/coast/beachcorner2/north_east, /area/strata/ug/interior/jungle/deep/east_dorms) "wni" = ( -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/strata/ag/exterior/tcomms/tcomms_deck) "wod" = ( /obj/item/tank/emergency_oxygen/engi, /turf/open/auto_turf/ice/layer1, /area/strata/ag/exterior/paths/southresearch) "wol" = ( -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/outpost/gen/bball) "woP" = ( /obj/effect/blocker/sorokyne_cold_water, @@ -41381,10 +34044,7 @@ /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/tcomms) "wrw" = ( /obj/structure/flora/grass/tallgrass/ice/corner, @@ -41404,25 +34064,18 @@ /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ag/interior/outpost/med) "wsj" = ( /obj/item/trash/pistachios, /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2, /area/strata/ag/interior/outpost/engi) "wsm" = ( /obj/structure/reagent_dispensers/watertank, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/outpost/engi/drome) "wto" = ( /obj/structure/machinery/door/airlock/almayer/security/colony{ @@ -41438,9 +34091,7 @@ /obj/structure/barricade/handrail/strata, /obj/structure/filingcabinet, /obj/effect/landmark/objective_landmark/far, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ag/interior/outpost/admin) "wuI" = ( /turf/open/gm/coast/beachcorner2/north_west, @@ -41450,9 +34101,7 @@ /turf/closed/wall/strata_ice/jungle, /area/strata/ug/interior/jungle/deep/east_dorms) "wvF" = ( -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/strata/ag/exterior/landingzone_2) "wxU" = ( /obj/structure/bed{ @@ -41461,24 +34110,15 @@ /obj/structure/machinery/light/small, /obj/effect/spawner/random/toolbox, /obj/effect/spawner/random/toolbox, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ug/interior/outpost/jung/dorms/sec1) "wxY" = ( /obj/item/stack/sheet/wood, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/exterior/research_decks) "wzZ" = ( /obj/structure/barricade/handrail/strata, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/exterior/research_decks) "wAj" = ( /obj/structure/surface/rack, @@ -41489,10 +34129,7 @@ /obj/item/clothing/head/hardhat/white, /obj/structure/machinery/light/small, /obj/item/clothing/head/hardhat/white, -/turf/open/floor/strata{ - dir = 1; - icon_state = "red3" - }, +/turf/open/floor/strata/red3/north, /area/strata/ag/interior/outpost/med) "wAw" = ( /obj/structure/toilet{ @@ -41502,10 +34139,7 @@ /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ug/interior/outpost/jung/dorms/admin1) "wAG" = ( /obj/structure/fence, @@ -41516,9 +34150,7 @@ /obj/structure/closet/secure_closet/personal, /obj/effect/landmark/crap_item, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/strata/ug/interior/outpost/jung/dorms/admin1) "wBI" = ( /obj/structure/bed{ @@ -41531,9 +34163,7 @@ /area/strata/ug/interior/outpost/jung/dorms/med2) "wDq" = ( /obj/structure/fence, -/turf/open/asphalt/cement{ - icon_state = "cement2" - }, +/turf/open/asphalt/cement/cement2, /area/strata/ag/exterior/tcomms/tcomms_deck) "wDF" = ( /obj/structure/machinery/light/small, @@ -41588,9 +34218,7 @@ dir = 4; icon_state = "p_stair_full" }, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/strata/ug/interior/jungle/platform/east/scrub) "wLv" = ( /obj/structure/blocker/forcefield/multitile_vehicles, @@ -41619,9 +34247,7 @@ /turf/open/floor/strata, /area/strata/ug/interior/outpost/jung/dorms/admin1) "wPI" = ( -/turf/open/asphalt/cement{ - icon_state = "cement9" - }, +/turf/open/asphalt/cement/cement9, /area/strata/ag/exterior/tcomms/tcomms_deck) "wQx" = ( /obj/structure/machinery/light/small{ @@ -41633,26 +34259,14 @@ "wUa" = ( /obj/structure/surface/rack, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ug/interior/jungle/deep/structures/res) "wVf" = ( /obj/structure/bed/chair/office/dark{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ag/interior/landingzone_checkpoint) -"wVU" = ( -/obj/structure/machinery/power/geothermal, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, -/area/strata/ag/exterior/shed_five_caves) "wWK" = ( /obj/structure/stairs/perspective{ color = "#6e6e6e"; @@ -41660,10 +34274,7 @@ icon_state = "p_stair_full" }, /obj/structure/platform/strata/metal, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/tcomms) "wWS" = ( /obj/structure/flora/grass/ice/brown/snowgrassbb_3, @@ -41678,9 +34289,7 @@ /area/strata/ug/interior/jungle/deep/south_dorms) "wXL" = ( /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/dorms/south) "wYx" = ( /turf/open/floor/carpet, @@ -41698,19 +34307,14 @@ "wZW" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/device/binoculars, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/tcomms) "wZZ" = ( /turf/open/auto_turf/strata_grass/layer1, /area/strata/ug/interior/jungle/platform/east/scrub) "xaR" = ( /obj/structure/machinery/recharge_station, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/admin) "xdr" = ( /turf/closed/wall/strata_outpost, @@ -41726,20 +34330,14 @@ /obj/structure/mirror{ pixel_x = -29 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ug/interior/outpost/jung/dorms/admin1) "xeo" = ( /obj/structure/machinery/light/small{ dir = 4 }, /obj/structure/closet/jcloset, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/tcomms) "xes" = ( /obj/structure/platform_decoration/strata{ @@ -41757,9 +34355,7 @@ /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22" }, -/turf/open/floor/strata{ - icon_state = "purp2" - }, +/turf/open/floor/strata/purp2, /area/strata/ug/interior/jungle/deep/structures/engi) "xhM" = ( /obj/structure/machinery/weather_siren{ @@ -41774,9 +34370,7 @@ /turf/open/auto_turf/strata_grass/layer0, /area/strata/ug/interior/jungle/deep/west_engi) "xje" = ( -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +/turf/open/asphalt/cement/cement1, /area/strata/ag/exterior/tcomms/tcomms_deck) "xjr" = ( /turf/open/auto_turf/strata_grass/layer0, @@ -41785,10 +34379,7 @@ /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/outpost/med) "xkj" = ( /turf/open/auto_turf/strata_grass/layer1, @@ -41797,24 +34388,16 @@ /obj/structure/morgue{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ag/interior/outpost/med) "xlP" = ( -/turf/open/floor/strata{ - dir = 8; - icon_state = "cyan3" - }, +/turf/open/floor/strata/cyan3/west, /area/strata/ag/interior/outpost/med) "xlQ" = ( /obj/structure/machinery/door/airlock/almayer/command{ dir = 2 }, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ug/interior/jungle/deep/structures/engi) "xlX" = ( /obj/structure/flora/pottedplant{ @@ -41825,10 +34408,7 @@ /area/strata/ug/interior/outpost/jung/dorms/admin1) "xmR" = ( /obj/structure/machinery/photocopier, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/outpost/med) "xnn" = ( /obj/structure/sign/safety/storage, @@ -41845,50 +34425,32 @@ /obj/structure/platform_decoration/strata/metal{ dir = 1 }, -/turf/open/floor/strata{ - dir = 1; - icon_state = "red3" - }, +/turf/open/floor/strata/red3/north, /area/strata/ag/interior/outpost/med) "xnZ" = ( /obj/structure/surface/rack, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/mountain) "xoE" = ( /obj/structure/largecrate/random, /obj/structure/barricade/handrail/strata{ dir = 4 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/tcomms) "xpK" = ( /obj/structure/machinery/colony_floodlight, /obj/structure/barricade/handrail/strata, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/exterior/research_decks) "xqv" = ( /obj/structure/inflatable/popped/door, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/exterior/research_decks) "xqT" = ( /obj/structure/machinery/recharge_station, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/exterior/research_decks) "xre" = ( /obj/structure/flora/grass/ice/brown/snowgrassbb_3, @@ -41900,17 +34462,12 @@ dir = 4; icon_state = "p_stair_full" }, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/tcomms) "xst" = ( /obj/structure/machinery/cryobag_recycler, /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/strata{ - icon_state = "purp2" - }, +/turf/open/floor/strata/purp2, /area/strata/ug/interior/jungle/deep/structures/engi) "xsH" = ( /turf/closed/shuttle/ert{ @@ -41930,9 +34487,7 @@ pixel_y = 3 }, /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ug/interior/jungle/deep/structures/engi) "xuE" = ( /obj/effect/blocker/sorokyne_cold_water, @@ -41949,10 +34504,7 @@ /area/strata/ug/interior/jungle/deep/south_engi) "xvy" = ( /obj/structure/window/framed/strata/reinforced, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/outpost/engi) "xwn" = ( /obj/structure/surface/table/reinforced/prison, @@ -41961,9 +34513,7 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "purp1" - }, +/turf/open/floor/strata/purp1, /area/strata/ug/interior/jungle/deep/structures/engi) "xxS" = ( /turf/open/auto_turf/ice/layer0, @@ -41976,16 +34526,11 @@ /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ag/interior/outpost/gen/bball) "xzL" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/gen/bball/nest) "xzR" = ( /turf/open/floor/plating, @@ -41998,43 +34543,30 @@ /area/strata/ag/exterior/marsh) "xAp" = ( /obj/effect/decal/cleanable/blood/gibs/limb, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/exterior/research_decks) "xAF" = ( /obj/structure/curtain/open/medical, /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ag/interior/outpost/med) "xAS" = ( /obj/effect/landmark/monkey_spawn, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/strata/ug/interior/jungle/platform/east/scrub) "xBT" = ( /obj/structure/inflatable/popped/door, /obj/effect/decal/cleanable/blood, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/exterior/research_decks) "xCN" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/barricade/handrail/strata{ dir = 8 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ug/interior/outpost/jung/dorms/med1) "xDu" = ( /obj/structure/sign/nosmoking_2, @@ -42048,9 +34580,7 @@ /obj/structure/bed/nest, /obj/effect/decal/cleanable/blood/gibs/core, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles, /area/strata/ag/interior/dorms/hive) "xEV" = ( /obj/structure/flora/grass/ice/brown/snowgrassbb_1, @@ -42080,10 +34610,7 @@ /area/strata/ag/exterior/nearlz2) "xFR" = ( /obj/structure/inflatable/door, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/exterior/research_decks) "xFT" = ( /obj/item/weapon/gun/pistol/t73, @@ -42095,10 +34622,7 @@ /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 6 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/exterior/research_decks) "xGi" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ @@ -42114,9 +34638,7 @@ "xGE" = ( /obj/effect/decal/cleanable/blood/oil, /obj/structure/machinery/landinglight/ds2/delaythree, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/strata/ag/exterior/landingzone_2) "xHw" = ( /obj/structure/flora/pottedplant{ @@ -42140,10 +34662,7 @@ /area/strata/ug/interior/jungle/deep/east_dorms) "xJb" = ( /obj/effect/landmark/objective_landmark/science, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/exterior/vanyard) "xJD" = ( /obj/structure/closet/bodybag, @@ -42160,10 +34679,7 @@ /area/strata/ug/interior/jungle/deep/structures/engi) "xKr" = ( /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/tcomms) "xKs" = ( /obj/structure/closet/bodybag, @@ -42176,10 +34692,7 @@ dir = 4 }, /obj/structure/machinery/door/airlock/almayer/engineering/colony, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/interior/tcomms) "xKy" = ( /obj/effect/blocker/sorokyne_cold_water, @@ -42195,9 +34708,7 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/outpost/gen/bball) "xKD" = ( /obj/structure/closet/bodybag, @@ -42218,23 +34729,15 @@ /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ug/interior/jungle/deep/structures/engi) "xMr" = ( /obj/effect/landmark/monkey_spawn, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ug/interior/jungle/deep/structures/engi) "xOa" = ( /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/tcomms) "xOo" = ( /obj/effect/landmark/xeno_spawn, @@ -42276,9 +34779,7 @@ }, /obj/effect/decal/cleanable/blood, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/almayer{ - icon_state = "test_floor5" - }, +/turf/open/floor/almayer/test_floor5, /area/strata/ag/exterior/marsh/crash) "xRr" = ( /obj/structure/machinery/light/small{ @@ -42291,39 +34792,25 @@ /obj/structure/barricade/wooden{ dir = 4 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ug/interior/outpost/jung/dorms/sec1) "xRR" = ( /obj/structure/machinery/disposal, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/engi/drome) "xSJ" = ( -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/strata/ag/interior/dorms/canteen) "xTh" = ( /obj/structure/pipes/standard/simple/hidden/cyan, /obj/structure/machinery/door/airlock/almayer/maint/colony{ dir = 2 }, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/dorms/maintenance) "xTw" = ( /obj/structure/largecrate/random, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/strata/ag/exterior/tcomms/tcomms_deck) "xTU" = ( /turf/open/auto_turf/snow/brown_base/layer4, @@ -42341,18 +34828,14 @@ "xUo" = ( /obj/structure/surface/rack, /obj/item/weapon/gun/pistol/t73, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/strata/ug/interior/jungle/deep/structures/engi) "xVQ" = ( /obj/structure/bed/chair/dropship/passenger{ dir = 4 }, /obj/effect/decal/cleanable/blood, -/turf/open/floor/almayer{ - icon_state = "test_floor5" - }, +/turf/open/floor/almayer/test_floor5, /area/strata/ag/exterior/marsh/crash) "xWN" = ( /obj/effect/decal/cleanable/blood, @@ -42376,39 +34859,25 @@ /obj/structure/pipes/standard/manifold/hidden/cyan{ dir = 8 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/tcomms) "yah" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/strata/ag/interior/outpost/gen/bball/nest) "ybN" = ( /obj/structure/window/framed/strata, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/strata/ag/interior/research_decks/security) "yca" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/strata{ - icon_state = "fake_wood" - }, +/turf/open/floor/strata/fake_wood, /area/strata/ug/interior/jungle/deep/structures/engi) "yde" = ( /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/exterior/vanyard) "ydp" = ( /obj/structure/surface/rack{ @@ -42416,16 +34885,12 @@ }, /obj/item/reagent_container/spray/cleaner, /obj/item/reagent_container/spray/cleaner, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ug/interior/outpost/jung/dorms/sec2) "ydz" = ( /obj/item/toy/deck, /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/strata/ug/interior/jungle/deep/structures/engi) "ydV" = ( /obj/effect/decal/cleanable/blood{ @@ -42437,9 +34902,7 @@ /obj/structure/machinery/landinglight/ds2/delayone{ dir = 1 }, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/strata/ag/exterior/landingzone_2) "ygq" = ( /turf/closed/wall/strata_outpost, @@ -42447,26 +34910,19 @@ "ygz" = ( /obj/structure/closet, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor/strata{ - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3, /area/strata/ag/interior/dorms/flight_control) "yhJ" = ( /obj/structure/largecrate/random, /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/strata/ag/interior/tcomms) "yis" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/storage/pouch/flare/full, /obj/item/weapon/gun/pistol/t73, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/strata{ - icon_state = "orange_tile" - }, +/turf/open/floor/strata/orange_tile, /area/strata/ag/interior/dorms) "yjG" = ( /obj/structure/flora/bush/ausbushes/var3/fullgrass, @@ -42483,10 +34939,7 @@ /area/strata/ag/exterior/shed_five_caves) "ykU" = ( /obj/structure/closet/bodybag, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan3" - }, +/turf/open/floor/strata/cyan3/east, /area/strata/ag/interior/outpost/med) "ylE" = ( /turf/open/gm/coast/beachcorner2/north_west, @@ -42497,10 +34950,7 @@ dir = 8; icon_state = "p_stair_full" }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/strata/ag/interior/outpost/canteen) (1,1,1) = {" @@ -46374,8 +38824,8 @@ aac aac aac aac -esJ -eqV +byi +lAc mhc qxi wfE @@ -47806,7 +40256,7 @@ aac aac aac crA -afB +jIv cEu agD aiE @@ -48001,14 +40451,14 @@ aac aac aac crA -afC +aem aiE agE aiE cnO -coc +jPT ajl -ajP +npf cnO ddp alG @@ -48410,7 +40860,7 @@ apZ ctC ctC ctC -ctE +jqg avr bWy bPs @@ -49774,7 +42224,7 @@ afW afW afW asb -ats +jfh bYE cbj bZV @@ -51137,7 +43587,7 @@ anq auC crY crY -arg +fwi ase att crY @@ -55322,7 +47772,7 @@ qfC aac aac sgG -cIQ +qDI gpr tRC sgG @@ -56070,7 +48520,7 @@ aac aac aac rOB -eUe +rjn khh vtl dOO @@ -57818,7 +50268,7 @@ aac bfg bgJ xdr -wVU +gOC jVg sXu okE @@ -58013,7 +50463,7 @@ aac bfg bgI xdr -wVU +gOC fEW sau okE @@ -58208,7 +50658,7 @@ bfe bfc bgI xdr -elE +rfB hPK hYl okE @@ -62850,7 +55300,7 @@ bXq ajW aUV aGr -aHw +dCb oKo aKx dgB @@ -63045,7 +55495,7 @@ bXq dgB aUV uWG -aHw +dCb oKo oKo aLP @@ -63240,7 +55690,7 @@ aCV bXq aUV vBs -aHw +dCb oKo oKo aLQ @@ -63428,7 +55878,7 @@ oBn oBn avP oKo -aIV +tuV aAn aBR aCW @@ -63630,7 +56080,7 @@ dgB aIV aUV aGr -aHw +dCb oKo aKy aLR @@ -63825,7 +56275,7 @@ dgB aIV aUV uWG -aHw +dCb oKo dgB dgB @@ -64020,7 +56470,7 @@ dgB aIV aUV vBs -aHw +dCb oKo aKA dgB @@ -64398,7 +56848,7 @@ ayw awJ aAR arr -asr +soD atF auA avS @@ -64943,7 +57393,7 @@ aam cdo pIa aax -abG +cZZ cdo cdo cjq @@ -65963,10 +58413,10 @@ ijo auF ijo aHv -ayP -ayP -acf -acC +oCc +oCc +fyU +scp oKo aMX dgB @@ -67092,7 +59542,7 @@ pIa pIa cpV cpV -bjT +ezK aam cdo ahn @@ -67287,7 +59737,7 @@ aag pIa aao pIa -bjT +ezK aam cdo ahn @@ -67873,7 +60323,7 @@ aac aac pIa pIa -aaV +rXZ cdo aam adC @@ -68520,7 +60970,7 @@ bWH bll bll bdI -bfZ +jBp bjf bjc cik @@ -73196,9 +65646,9 @@ chd chd cpU aVE -aXj +piu aZw -bbE +kCa cpU crI aHP @@ -73586,7 +66036,7 @@ cdn aSs cpU aVF -aXl +nNR aZy bbG cpU diff --git a/maps/map_files/USS_Almayer/USS_Almayer.dmm b/maps/map_files/USS_Almayer/USS_Almayer.dmm index d940706c547c..9617bfaccb6c 100644 --- a/maps/map_files/USS_Almayer/USS_Almayer.dmm +++ b/maps/map_files/USS_Almayer/USS_Almayer.dmm @@ -16,50 +16,23 @@ /turf/open/space, /area/space) "aac" = ( -/turf/open/floor/almayer_hull{ - dir = 9; - icon_state = "outerhull_dir" - }, +/turf/open/floor/almayer_hull/outerhull_dir/northwest, /area/space) "aad" = ( -/turf/open/floor/almayer_hull{ - dir = 1; - icon_state = "outerhull_dir" - }, +/turf/open/floor/almayer_hull/outerhull_dir/north, /area/space) "aae" = ( -/turf/open/floor/almayer_hull{ - dir = 5; - icon_state = "outerhull_dir" - }, +/turf/open/floor/almayer_hull/outerhull_dir/northeast, /area/space) "aaf" = ( -/turf/open/floor/almayer_hull{ - dir = 8; - icon_state = "outerhull_dir" - }, +/turf/open/floor/almayer_hull/outerhull_dir/west, /area/space) "aag" = ( /turf/open/floor/almayer_hull, /area/space) "aah" = ( -/turf/open/floor/almayer_hull{ - dir = 4; - icon_state = "outerhull_dir" - }, +/turf/open/floor/almayer_hull/outerhull_dir/east, /area/space) -"aai" = ( -/turf/closed/wall/almayer/outer, -/area/almayer/hull/upper_hull) -"aaj" = ( -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 1 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" - }, -/area/almayer/engineering/engineering_workshop) "aak" = ( /obj/effect/step_trigger/teleporter/random{ affect_ghosts = 1; @@ -73,13 +46,6 @@ }, /turf/open/space/basic, /area/space) -"aal" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_p) "aam" = ( /obj/structure/stairs, /obj/effect/step_trigger/teleporter_vector{ @@ -87,26 +53,8 @@ vector_x = 19; vector_y = -98 }, -/turf/open/floor/plating/almayer{ - allow_construction = 0 - }, +/turf/open/floor/plating/almayer/no_build, /area/almayer/stair_clone/upper) -"aan" = ( -/obj/effect/projector{ - name = "Almayer_Up1"; - vector_x = -19; - vector_y = 98 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/starboard_hallway) -"aao" = ( -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_m_s) -"aap" = ( -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_m_s) "aaq" = ( /obj/item/bedsheet/purple{ layer = 3.2 @@ -143,96 +91,22 @@ pixel_x = -16; pixel_y = 8 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/port_emb) -"aar" = ( -/turf/closed/wall/almayer, -/area/almayer/hull/upper_hull/u_m_s) -"aas" = ( -/obj/vehicle/powerloader, -/obj/structure/platform{ - dir = 4 - }, -/obj/structure/platform{ - dir = 8 - }, -/obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/hallways/repair_bay) "aau" = ( -/turf/closed/wall/almayer/outer, +/turf/closed/wall/almayer/reinforced/temphull, /area/almayer/living/pilotbunks) -"aav" = ( -/obj/vehicle/powerloader, -/obj/structure/platform{ - dir = 4 - }, -/obj/structure/platform{ - dir = 8 - }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/hallways/repair_bay) -"aaw" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" - }, -/area/almayer/hallways/aft_hallway) -"aax" = ( -/obj/effect/projector{ - name = "Almayer_Down2"; - vector_x = 1; - vector_y = -100 - }, -/turf/open/floor/almayer{ - allow_construction = 0 - }, -/area/almayer/hallways/aft_hallway) -"aay" = ( -/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ - pixel_y = 25 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/repair_bay) -"aaz" = ( -/obj/structure/largecrate/random/barrel/red, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_s) "aaC" = ( /obj/structure/lattice, /turf/open/space/basic, /area/space) -"aaD" = ( -/obj/structure/platform{ - dir = 8 - }, -/obj/structure/machinery/power/apc/almayer{ - dir = 1 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "silver" - }, -/area/almayer/hallways/repair_bay) "aaE" = ( -/obj/structure/machinery/light{ - dir = 4 - }, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "red" +/obj/structure/sign/safety/storage{ + pixel_x = 8; + pixel_y = 32 }, -/area/almayer/hallways/aft_hallway) +/turf/open/floor/almayer/blue/north, +/area/almayer/hallways/upper/fore_hallway) "aaF" = ( /obj/structure/stairs{ dir = 1; @@ -243,112 +117,31 @@ vector_x = -19; vector_y = 98 }, -/turf/open/floor/plating/almayer{ - allow_construction = 0 - }, +/turf/open/floor/plating/almayer/no_build, /area/almayer/stair_clone) -"aaG" = ( -/obj/effect/projector{ - name = "Almayer_Down1"; - vector_x = 19; - vector_y = -98 - }, -/turf/open/floor/almayer{ - allow_construction = 0 - }, -/area/almayer/hallways/aft_hallway) "aaH" = ( /obj/effect/step_trigger/teleporter_vector{ name = "Almayer_Down1"; vector_x = 19; vector_y = -98 }, -/turf/open/floor/almayer{ - allow_construction = 0; - icon_state = "plate" - }, +/turf/open/floor/almayer/no_build/plate, /area/almayer/stair_clone/upper) -"aaI" = ( -/obj/effect/projector{ - name = "Almayer_Down1"; - vector_x = 19; - vector_y = -98 - }, -/turf/open/floor/almayer{ - allow_construction = 0; - icon_state = "plate" - }, -/area/almayer/hallways/aft_hallway) -"aaJ" = ( -/obj/structure/stairs{ - dir = 1; - icon_state = "ramptop" +"aaP" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/secdoor/glass/reinforced{ + dir = 2; + name = "\improper Brig Armoury"; + req_access = null; + req_one_access_txt = "1;3" }, -/obj/structure/machinery/light{ +/obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/effect/projector{ - name = "Almayer_Down1"; - vector_x = 19; - vector_y = -98 - }, -/turf/open/floor/plating/almayer{ - allow_construction = 0 - }, -/area/almayer/hallways/aft_hallway) -"aaK" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/obj/structure/platform{ - dir = 8 - }, -/obj/structure/machinery/recharge_station{ - layer = 2.9 - }, -/obj/structure/sign/safety/high_voltage{ - pixel_x = 15; - pixel_y = 32 - }, -/obj/structure/sign/safety/hazard{ - pixel_y = 32 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "silver" - }, -/area/almayer/hallways/repair_bay) -"aaL" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "NE-out"; - pixel_x = 1; - pixel_y = 1 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" - }, -/area/almayer/hallways/aft_hallway) -"aaO" = ( -/turf/open/floor/almayer{ - dir = 6; - icon_state = "red" - }, -/area/almayer/hallways/aft_hallway) -"aaW" = ( -/obj/effect/step_trigger/clone_cleaner, -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/obj/structure/sign/safety/maint{ - pixel_x = 32 - }, -/turf/open/floor/almayer{ - icon_state = "mono" +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/area/almayer/hallways/aft_hallway) +/turf/open/floor/almayer/test_floor4, +/area/almayer/shipboard/brig/starboard_hallway) "aaY" = ( /obj/structure/lattice, /turf/open/space, @@ -359,45 +152,12 @@ name = "\improper Evacuation Airlock SU-3"; req_access = null }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/powered) -"abd" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/obj/structure/closet/secure_closet/engineering_welding{ - req_one_access_txt = "7;23;27" - }, -/obj/structure/platform{ - dir = 4 - }, -/obj/structure/sign/safety/terminal{ - pixel_y = 32 - }, -/obj/structure/sign/safety/fire_haz{ - pixel_x = 15; - pixel_y = 32 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "silver" - }, -/area/almayer/hallways/repair_bay) -"abe" = ( -/obj/structure/closet/emcloset, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_m_s) "abf" = ( /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/north1) -"abg" = ( -/turf/open/floor/almayer, -/area/almayer/hallways/aft_hallway) "abh" = ( /turf/closed/wall/almayer/outer, /area/almayer/lifeboat_pumps/north2) @@ -405,78 +165,33 @@ /obj/structure/window/framed/almayer/hull, /turf/open/floor/plating, /area/almayer/lifeboat_pumps/north2) +"abj" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_f_s) "abk" = ( /obj/structure/window/reinforced/toughened, /turf/open/floor/plating/plating_catwalk, /area/almayer/command/cic) -"abl" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "red" +"abn" = ( +/obj/structure/machinery/light{ + dir = 4 }, -/area/almayer/hallways/aft_hallway) -"abp" = ( -/obj/effect/step_trigger/clone_cleaner, -/turf/closed/wall/almayer, -/area/almayer/hull/upper_hull/u_m_s) +/turf/open/floor/almayer, +/area/almayer/maint/hull/upper/u_f_p) "abs" = ( /turf/closed/wall/almayer/outer, /area/almayer/lifeboat_pumps/north1) -"abt" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/aft_hallway) -"abu" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "red" - }, -/area/almayer/hallways/aft_hallway) "abw" = ( /obj/structure/window/framed/almayer/hull, /turf/open/floor/plating, /area/almayer/lifeboat_pumps/north1) -"abx" = ( -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/aft_hallway) -"abA" = ( -/obj/structure/machinery/door/airlock/almayer/maint, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hull/upper_hull/u_f_p) "abB" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/north1) -"abC" = ( -/obj/structure/stairs{ - dir = 1; - icon_state = "ramptop" - }, -/obj/effect/projector{ - name = "Almayer_Down1"; - vector_x = 19; - vector_y = -98 - }, -/turf/open/floor/plating/almayer{ - allow_construction = 0 - }, -/area/almayer/hallways/aft_hallway) "abE" = ( /turf/closed/wall/almayer, /area/almayer/living/basketball) @@ -486,9 +201,7 @@ /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/command/telecomms) "abG" = ( /obj/structure/filingcabinet/security, @@ -498,9 +211,7 @@ /obj/structure/sign/safety/rewire{ pixel_x = -17 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/offices/flight) "abH" = ( /obj/structure/machinery/power/apc/almayer{ @@ -518,41 +229,31 @@ }, /turf/open/floor/wood/ship, /area/almayer/living/basketball) -"abM" = ( -/obj/effect/step_trigger/clone_cleaner, -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" +"abQ" = ( +/obj/item/device/radio/intercom{ + freerange = 1; + name = "General Listening Channel"; + pixel_y = 28 }, -/area/almayer/hallways/aft_hallway) +/obj/structure/machinery/cm_vending/clothing/staff_officer_armory, +/turf/open/floor/almayer/redfull, +/area/almayer/command/cic) "abR" = ( /obj/item/tank/phoron, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, +/turf/open/floor/almayer/redfull, /area/almayer/engineering/upper_engineering) "abS" = ( /obj/structure/machinery/cm_vending/sorted/tech/comtech_tools, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/squads/alpha) "abT" = ( /obj/structure/machinery/cm_vending/sorted/tech/comtech_tools, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/squads/bravo) "abU" = ( /obj/structure/machinery/computer/aa_console, /obj/structure/bed/chair/ob_chair, -/turf/open/floor/almayer{ - icon_state = "tcomms" - }, +/turf/open/floor/almayer/tcomms, /area/almayer/shipboard/weapon_room) "acc" = ( /obj/structure/machinery/door/airlock/almayer/security{ @@ -562,39 +263,25 @@ req_access = null; req_one_access_txt = "3;19" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/living/briefing) +"acd" = ( +/obj/structure/surface/rack, +/obj/item/storage/box/sprays, +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/turf/open/floor/almayer/orange, +/area/almayer/engineering/lower/workshop/hangar) "acf" = ( /turf/closed/wall/almayer/outer, /area/almayer/living/starboard_garden) -"acg" = ( -/obj/effect/step_trigger/clone_cleaner, -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, -/turf/open/floor/almayer{ - icon_state = "red" - }, -/area/almayer/hallways/aft_hallway) -"ach" = ( -/obj/effect/step_trigger/clone_cleaner, -/obj/structure/machinery/door/airlock/almayer/maint, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hull/upper_hull/u_m_s) "aci" = ( /obj/structure/window/reinforced{ dir = 4; health = 80 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/almayer/blue/east, /area/almayer/living/basketball) "acj" = ( /obj/structure/desertdam/decals/road_edge{ @@ -632,9 +319,7 @@ /area/almayer/living/basketball) "ack" = ( /obj/structure/machinery/cm_vending/sorted/tech/comtech_tools, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/squads/charlie) "acl" = ( /turf/open/floor/wood/ship, @@ -702,15 +387,11 @@ dir = 1 }, /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/chapel) "acp" = ( /obj/structure/machinery/cm_vending/sorted/tech/comtech_tools, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/squads/delta) "acq" = ( /obj/structure/disposalpipe/segment{ @@ -729,21 +410,8 @@ /obj/structure/surface/rack, /obj/effect/spawner/random/warhead, /obj/structure/machinery/light/built, -/turf/open/floor/almayer{ - icon_state = "red" - }, +/turf/open/floor/almayer/red, /area/almayer/shipboard/weapon_room) -"act" = ( -/obj/effect/step_trigger/clone_cleaner, -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "red" - }, -/area/almayer/hallways/aft_hallway) "acu" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -762,68 +430,21 @@ "acx" = ( /turf/closed/wall/almayer, /area/almayer/lifeboat_pumps/north2) +"acy" = ( +/obj/structure/sign/safety/ladder{ + pixel_x = 8; + pixel_y = -32 + }, +/turf/open/floor/almayer/orange, +/area/almayer/engineering/lower) "acz" = ( /obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/lifeboat_pumps/north2) "acA" = ( /obj/structure/reagent_dispensers/watertank, -/turf/open/floor/almayer{ - icon_state = "mono" - }, -/area/almayer/lifeboat_pumps/north2) -"acC" = ( -/turf/open/floor/almayer{ - icon_state = "red" - }, -/area/almayer/hallways/aft_hallway) -"acD" = ( -/obj/structure/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_m_s) -"acE" = ( -/obj/structure/closet/emcloset, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/mono, /area/almayer/lifeboat_pumps/north2) -"acF" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "green" - }, -/area/almayer/hallways/starboard_hallway) -"acG" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, -/turf/open/floor/almayer{ - icon_state = "red" - }, -/area/almayer/hallways/aft_hallway) -"acH" = ( -/obj/structure/machinery/camera/autoname/almayer{ - dir = 4; - name = "ship-grade camera" - }, -/obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" - }, -/area/almayer/hallways/aft_hallway) "acI" = ( /obj/structure/desertdam/decals/road_edge{ pixel_x = -12 @@ -834,20 +455,6 @@ }, /turf/open/floor/wood/ship, /area/almayer/living/basketball) -"acJ" = ( -/mob/living/silicon/decoy/ship_ai{ - layer = 2.98; - pixel_y = -16 - }, -/obj/structure/blocker/invisible_wall, -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, -/area/almayer/command/airoom) "acK" = ( /obj/structure/desertdam/decals/road_edge{ pixel_x = 2 @@ -877,67 +484,34 @@ /obj/structure/sign/safety/terminal{ pixel_y = 32 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/offices/flight) "acN" = ( /obj/structure/sign/safety/maint{ pixel_x = 8; pixel_y = -32 }, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/almayer/red/southwest, /area/almayer/shipboard/weapon_room) -"acO" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "red" - }, -/area/almayer/hallways/aft_hallway) -"acP" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, -/obj/structure/sign/safety/escapepod{ - pixel_x = 8; - pixel_y = 32 +"acQ" = ( +/turf/open/floor/almayer, +/area/almayer/hallways/upper/aft_hallway) +"acS" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "red" +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/area/almayer/hallways/aft_hallway) -"acT" = ( -/obj/structure/closet/firecloset, -/turf/open/floor/almayer{ - icon_state = "cargo" +/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ + pixel_y = -29 }, -/area/almayer/lifeboat_pumps/north2) +/turf/open/floor/almayer/silver, +/area/almayer/command/cichallway) "acU" = ( /obj/structure/closet/basketball, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/basketball) -"acV" = ( -/obj/effect/projector{ - name = "Almayer_Down2"; - vector_x = 1; - vector_y = -100 - }, -/turf/open/floor/almayer{ - allow_construction = 0; - icon_state = "plate" - }, -/area/almayer/hallways/aft_hallway) "acW" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -946,16 +520,12 @@ /area/almayer/lifeboat_pumps/north1) "acX" = ( /obj/structure/machinery/cm_vending/sorted/tech/electronics_storage, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/lifeboat_pumps/north2) "acY" = ( /obj/structure/surface/table/almayer, /obj/effect/spawner/random/tool, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/lifeboat_pumps/north2) "acZ" = ( /obj/structure/surface/table/almayer, @@ -973,55 +543,15 @@ pixel_x = 2; pixel_y = 3 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/offices/flight) -"adb" = ( -/obj/structure/stairs{ - dir = 8; - icon_state = "ramptop" - }, -/obj/effect/projector{ - name = "Almayer_Down2"; - vector_x = 1; - vector_y = -100 - }, -/turf/open/floor/plating/almayer{ - allow_construction = 0 - }, -/area/almayer/hallways/aft_hallway) -"adc" = ( -/obj/effect/step_trigger/clone_cleaner, -/turf/open/floor/plating/almayer{ - allow_construction = 0 - }, -/area/almayer/hallways/aft_hallway) "add" = ( -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/lifeboat_pumps/north1) -"adf" = ( -/obj/structure/closet, -/obj/item/clothing/suit/armor/riot/marine/vintage_riot, -/obj/item/clothing/head/helmet/riot/vintage_riot, -/obj/structure/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_m_s) -"adg" = ( +"ade" = ( +/obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer, -/area/almayer/hallways/repair_bay) -"adi" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, -/area/almayer/hallways/aft_hallway) +/area/almayer/hallways/lower/starboard_aft_hallway) "adj" = ( /obj/effect/step_trigger/teleporter_vector{ name = "Almayer_Down1"; @@ -1033,68 +563,16 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/stair_clone/upper) -"adk" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/obj/structure/platform{ - dir = 4 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "silver" - }, -/area/almayer/hallways/repair_bay) -"ado" = ( -/obj/structure/machinery/camera/autoname/almayer{ - dir = 8; - name = "ship-grade camera" - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "green" - }, -/area/almayer/living/starboard_garden) -"adp" = ( -/obj/structure/machinery/light/small{ - dir = 1; - pixel_y = 20 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_s) "adq" = ( /turf/closed/wall/almayer, /area/almayer/lifeboat_pumps/north1) "adr" = ( /obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/lifeboat_pumps/north1) -"adt" = ( -/obj/item/reagent_container/glass/bucket/janibucket{ - pixel_x = -1; - pixel_y = 13 - }, -/obj/structure/sign/safety/water{ - pixel_x = -17 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_m_s) "adu" = ( /turf/open/floor/almayer, /area/almayer/shipboard/starboard_missiles) -"ady" = ( -/obj/effect/step_trigger/clone_cleaner, -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/aft_hallway) "adC" = ( /obj/structure/surface/rack, /obj/item/stock_parts/manipulator/nano{ @@ -1104,9 +582,7 @@ pixel_x = 4; pixel_y = 15 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/engineering/upper_engineering/port) "adD" = ( /obj/structure/window/reinforced{ @@ -1116,18 +592,8 @@ /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/basketball) -"adE" = ( -/obj/structure/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_s) "adF" = ( /obj/structure/window/reinforced{ dir = 1; @@ -1136,84 +602,29 @@ /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/almayer/blue/north, /area/almayer/living/basketball) "adG" = ( /turf/closed/wall/almayer/outer, /area/almayer/shipboard/starboard_missiles) -"adH" = ( -/obj/effect/step_trigger/clone_cleaner, -/obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "green" - }, -/area/almayer/hallways/aft_hallway) -"adI" = ( -/obj/structure/reagent_dispensers/fueltank, -/obj/structure/machinery/light/small, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_m_p) "adO" = ( /turf/closed/wall/almayer, /area/almayer/engineering/starboard_atmos) "adP" = ( /obj/structure/reagent_dispensers/watertank, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/lifeboat_pumps/north1) -"adQ" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "NE-out"; - pixel_y = 1 - }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, -/area/almayer/lifeboat_pumps/north2) "adR" = ( /obj/structure/machinery/door/airlock/almayer/generic{ access_modified = 1; name = "\improper Pilot's Office"; req_one_access_txt = "3;22;19" }, -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 8 - }, /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/living/offices/flight) -"adT" = ( -/obj/structure/machinery/light{ - dir = 8 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "red" - }, -/area/almayer/hallways/aft_hallway) -"adZ" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, -/turf/open/floor/almayer, -/area/almayer/lifeboat_pumps/north2) "aea" = ( /obj/structure/machinery/light{ dir = 1 @@ -1221,21 +632,9 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/north1) -"aeb" = ( -/obj/structure/machinery/door/poddoor/shutters/almayer/open{ - dir = 4; - id = "northcheckpoint"; - name = "\improper Checkpoint Shutters" - }, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, -/area/almayer/hallways/starboard_hallway) "aec" = ( /obj/structure/closet/firecloset, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/lifeboat_pumps/north1) "aed" = ( /obj/structure/machinery/scoreboard_button{ @@ -1243,16 +642,11 @@ name = "Scoreboard Reset Button"; pixel_x = -20 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/almayer/blue/west, /area/almayer/living/basketball) "aee" = ( /obj/structure/closet/emcloset, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/lifeboat_pumps/north1) "aef" = ( /turf/open/floor/almayer, @@ -1261,18 +655,13 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/offices/flight) "aei" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/almayer/red/northeast, /area/almayer/lifeboat_pumps/north1) "aej" = ( /turf/closed/wall/almayer, @@ -1280,32 +669,9 @@ "ael" = ( /turf/closed/wall/almayer, /area/almayer/living/cafeteria_officer) -"aem" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer, -/area/almayer/hallways/starboard_hallway) -"aeo" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/obj/structure/closet/secure_closet{ - name = "secure evidence locker"; - req_access_txt = "3" - }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/shipboard/brig/evidence_storage) "aep" = ( /turf/closed/wall/almayer, /area/almayer/engineering/airmix) -"aeq" = ( -/obj/structure/machinery/light/small, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_s) "aer" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -1322,24 +688,9 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/lifeboat_pumps/north2) -"aey" = ( -/obj/structure/machinery/alarm/almayer{ - dir = 1 - }, -/obj/effect/step_trigger/clone_cleaner, -/obj/effect/decal/warning_stripes{ - icon_state = "NW-out"; - pixel_y = 1 - }, -/turf/open/floor/almayer{ - icon_state = "red" - }, -/area/almayer/hallways/aft_hallway) "aez" = ( /obj/structure/bed/chair, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/starboard_garden) "aeA" = ( /turf/open/floor/almayer, @@ -1351,30 +702,11 @@ /obj/structure/sign/safety/rewire{ pixel_y = 32 }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/lifeboat_pumps/north2) "aeC" = ( -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/lifeboat_pumps/north2) -"aeD" = ( -/obj/structure/machinery/door/airlock/almayer/maint/reinforced{ - access_modified = 1; - req_one_access = null; - req_one_access_txt = "2;7" - }, -/obj/structure/machinery/door/poddoor/almayer/open{ - dir = 4; - id = "CIC Lockdown"; - name = "\improper Combat Information Center Blast Door" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hull/upper_hull/u_f_p) "aeE" = ( /obj/structure/window/framed/almayer/hull, /turf/open/floor/plating, @@ -1383,10 +715,7 @@ /obj/structure/machinery/cm_vending/sorted/medical/wall_med{ pixel_x = -30 }, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "blue" - }, +/turf/open/floor/almayer/blue/southwest, /area/almayer/living/basketball) "aeH" = ( /obj/structure/disposalpipe/segment{ @@ -1401,10 +730,7 @@ dir = 8; name = "ship-grade camera" }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/almayer/blue/east, /area/almayer/living/basketball) "aeJ" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ @@ -1413,10 +739,7 @@ /turf/open/floor/plating/plating_catwalk, /area/almayer/living/offices/flight) "aeK" = ( -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/almayer/shipboard/starboard_missiles) "aeL" = ( /obj/effect/step_trigger/teleporter_vector{ @@ -1424,18 +747,13 @@ vector_x = -1; vector_y = 100 }, -/turf/open/floor/plating/almayer{ - allow_construction = 0 - }, +/turf/open/floor/plating/almayer/no_build, /area/almayer/stair_clone) "aeM" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/north, /area/almayer/engineering/upper_engineering/starboard) "aeN" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -1451,17 +769,13 @@ /obj/structure/surface/table/almayer, /obj/item/paper, /obj/item/paper, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/officer_study) "aeP" = ( /obj/structure/machinery/power/apc/almayer{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/officer_study) "aeQ" = ( /obj/structure/surface/table/almayer, @@ -1474,9 +788,7 @@ /obj/structure/sign/safety/rewire{ pixel_y = 32 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/officer_study) "aeR" = ( /obj/structure/surface/table/almayer, @@ -1484,9 +796,7 @@ pixel_y = 30 }, /obj/structure/machinery/computer/emails, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/officer_study) "aeT" = ( /obj/structure/stairs{ @@ -1497,20 +807,8 @@ vector_x = 19; vector_y = -104 }, -/turf/open/floor/plating/almayer{ - allow_construction = 0 - }, +/turf/open/floor/plating/almayer/no_build, /area/almayer/stair_clone/upper) -"aeU" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "NW-out"; - pixel_y = 1 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" - }, -/area/almayer/hallways/aft_hallway) "aeW" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/cm_vending/sorted/tech/electronics_storage, @@ -1530,24 +828,16 @@ pixel_x = 8; pixel_y = 32 }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/lifeboat_pumps/north1) "aeZ" = ( -/turf/open/floor/almayer{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/almayer/red/northeast, /area/almayer/lifeboat_pumps/north1) "afa" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/almayer/shipboard/starboard_missiles) "afb" = ( /obj/structure/surface/table/reinforced/almayer_B, @@ -1559,61 +849,8 @@ pixel_x = -26 }, /obj/item/device/binoculars, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, +/turf/open/floor/almayer/redfull, /area/almayer/shipboard/starboard_missiles) -"afc" = ( -/obj/structure/reagent_dispensers/water_cooler/stacks{ - density = 0; - pixel_y = 17 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "W"; - pixel_x = -1 - }, -/turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_s) -"afd" = ( -/obj/structure/largecrate/random/barrel/white, -/obj/structure/sign/safety/bulkhead_door{ - pixel_x = 32 - }, -/obj/structure/sign/safety/maint{ - pixel_x = 8; - pixel_y = 32 - }, -/obj/effect/landmark/yautja_teleport, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/hull/lower_hull/l_f_s) -"afe" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "NE-out"; - pixel_x = 1; - pixel_y = 1 - }, -/obj/structure/stairs/perspective{ - dir = 1; - icon_state = "p_stair_full" - }, -/obj/structure/platform{ - dir = 8 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/repair_bay) -"aff" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, -/obj/structure/stairs/perspective{ - dir = 1; - icon_state = "p_stair_full" - }, -/turf/open/floor/almayer, -/area/almayer/hallways/repair_bay) "afj" = ( /obj/structure/machinery/portable_atmospherics/canister/empty, /turf/open/floor/engine, @@ -1621,32 +858,11 @@ "afk" = ( /turf/open/floor/engine, /area/almayer/engineering/airmix) -"afl" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_a_s) "afm" = ( -/turf/open/floor/almayer_hull{ - dir = 6; - icon_state = "outerhull_dir" - }, +/turf/open/floor/almayer_hull/outerhull_dir/southeast, /area/space) -"afq" = ( -/obj/effect/step_trigger/clone_cleaner, -/obj/effect/decal/warning_stripes{ - icon_state = "SW-out"; - layer = 2.5 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" - }, -/area/almayer/hallways/aft_hallway) "afr" = ( -/turf/open/floor/almayer{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/almayer/red/northwest, /area/almayer/lifeboat_pumps/north1) "afs" = ( /obj/structure/disposalpipe/segment{ @@ -1654,80 +870,18 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/basketball) -"afu" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "NW-out"; - pixel_y = 1 - }, -/obj/structure/machinery/light{ - dir = 4 - }, -/obj/structure/stairs/perspective{ - dir = 1; - icon_state = "p_stair_full" - }, -/obj/structure/platform{ - dir = 4 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "silver" - }, -/area/almayer/hallways/repair_bay) -"afv" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, -/area/almayer/hallways/aft_hallway) -"afx" = ( -/obj/structure/machinery/door/airlock/almayer/generic{ - dir = 1; - name = "\improper Workshop Vendors" - }, -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/repair_bay) "afy" = ( /obj/structure/machinery/light{ dir = 8 }, /turf/open/floor/almayer, /area/almayer/living/offices/flight) -"afz" = ( -/turf/open/floor/almayer/empty, -/area/almayer/hallways/vehiclehangar) -"afB" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "red" - }, -/area/almayer/living/starboard_garden) -"afC" = ( -/obj/docking_port/stationary/vehicle_elevator/almayer, -/turf/open/floor/almayer/empty, -/area/almayer/hallways/vehiclehangar) -"afD" = ( -/turf/open/floor/almayer{ - dir = 5; - icon_state = "silver" - }, -/area/almayer/hallways/aft_hallway) "afE" = ( /obj/structure/machinery/vending/dinnerware, /obj/structure/machinery/firealarm{ pixel_y = 28 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/almayer/living/cafeteria_officer) "afF" = ( /turf/open/floor/plating/plating_catwalk, @@ -1739,29 +893,21 @@ /obj/structure/surface/table/almayer, /obj/item/paper_bin/uscm, /obj/item/tool/pen, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/officer_study) "afH" = ( /obj/structure/machinery/vending/cola, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/almayer/living/cafeteria_officer) "afI" = ( /obj/structure/machinery/vending/snack, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/almayer/living/cafeteria_officer) "afJ" = ( /obj/structure/machinery/power/apc/almayer{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/cafeteria_officer) "afK" = ( /obj/structure/bed/chair, @@ -1775,25 +921,18 @@ /obj/structure/machinery/alarm/almayer{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/east, /area/almayer/living/cafeteria_officer) "afM" = ( /obj/structure/surface/table/almayer, /obj/effect/spawner/random/tool, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/engineering/starboard_atmos) "afN" = ( /obj/structure/machinery/power/apc/almayer{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "cargo_arrow" - }, +/turf/open/floor/almayer/cargo_arrow, /area/almayer/engineering/starboard_atmos) "afO" = ( /obj/structure/machinery/portable_atmospherics/powered/pump, @@ -1801,19 +940,14 @@ pixel_x = 8; pixel_y = 32 }, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo/southwest, /area/almayer/engineering/starboard_atmos) "afP" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/firealarm{ pixel_y = 28 }, -/turf/open/floor/almayer{ - icon_state = "cargo_arrow" - }, +/turf/open/floor/almayer/cargo_arrow, /area/almayer/engineering/starboard_atmos) "afQ" = ( /obj/structure/surface/table/almayer, @@ -1834,35 +968,18 @@ /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 2 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/shipboard/starboard_missiles) "afX" = ( /obj/structure/machinery/door/airlock/almayer/maint, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/engineering/upper_engineering/starboard) "afZ" = ( /obj/structure/bed/chair/comfy/blue{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/command/cichallway) -"aga" = ( -/obj/item/tool/wirecutters{ - pixel_y = -7 - }, -/obj/structure/sign/poster{ - desc = "You are becoming hysterical."; - icon_state = "poster11"; - pixel_y = 30 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/repair_bay) "agb" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/reagent_container/food/snacks/bloodsoup{ @@ -1872,67 +989,24 @@ pixel_x = -8; pixel_y = 2 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/command/cichallway) "agc" = ( /turf/open/floor/carpet, /area/almayer/living/commandbunks) -"age" = ( -/turf/closed/wall/almayer/reinforced, -/area/almayer/hull/upper_hull/u_f_s) "agf" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "bluecorner" - }, +/turf/open/floor/almayer/bluecorner/north, /area/almayer/living/offices/flight) -"agi" = ( -/obj/structure/machinery/door/airlock/almayer/maint{ - access_modified = 1; - req_access = null; - req_one_access = null; - req_one_access_txt = "3;22;19" - }, -/obj/structure/machinery/door/poddoor/almayer/open{ - dir = 4; - id = "Hangar Lockdown"; - name = "\improper Hangar Lockdown Blast Door" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hull/lower_hull/l_f_s) "agj" = ( /turf/closed/wall/almayer/reinforced, /area/almayer/living/commandbunks) -"agl" = ( -/obj/effect/step_trigger/clone_cleaner, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/aft_hallway) -"agn" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 6 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/repair_bay) -"ago" = ( -/turf/open/floor/almayer{ - dir = 9; - icon_state = "blue" - }, -/area/almayer/hallways/aft_hallway) "agq" = ( /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 2 }, /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/living/basketball) "agr" = ( /obj/structure/surface/table/almayer, @@ -1945,9 +1019,7 @@ /obj/structure/surface/table/almayer, /obj/item/storage/toolbox/electrical, /obj/item/storage/toolbox/mechanical, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/officer_study) "agu" = ( /turf/open/floor/almayer, @@ -1965,24 +1037,11 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/obj/structure/machinery/door/firedoor/border_only/almayer, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/structure/disposalpipe/segment{ + dir = 4 }, +/turf/open/floor/almayer/test_floor4, /area/almayer/squads/req) -"agw" = ( -/obj/structure/machinery/light{ - dir = 8 - }, -/obj/structure/stairs/perspective{ - icon_state = "p_stair_full" - }, -/turf/open/floor/almayer, -/area/almayer/hallways/repair_bay) -"agy" = ( -/obj/structure/pipes/vents/pump/on, -/turf/open/floor/almayer, -/area/almayer/hallways/repair_bay) "agA" = ( /obj/structure/window/framed/almayer, /obj/structure/machinery/door/firedoor/border_only/almayer{ @@ -1990,21 +1049,6 @@ }, /turf/open/floor/plating, /area/almayer/living/basketball) -"agB" = ( -/turf/open/floor/almayer{ - dir = 9; - icon_state = "red" - }, -/area/almayer/living/starboard_garden) -"agG" = ( -/obj/structure/stairs/perspective{ - icon_state = "p_stair_full" - }, -/obj/structure/platform{ - dir = 4 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/repair_bay) "agH" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/structure/disposalpipe/segment{ @@ -2018,30 +1062,16 @@ pixel_x = -4; pixel_y = 12 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/grunt_rnr) "agI" = ( -/turf/open/floor/almayer{ - dir = 9; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/northwest, /area/almayer/living/officer_study) -"agJ" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "red" - }, -/area/almayer/hallways/stern_hallway) "agK" = ( /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/north, /area/almayer/living/officer_study) "agM" = ( /obj/structure/pipes/unary/outlet_injector{ @@ -2054,116 +1084,44 @@ }, /turf/open/floor/engine, /area/almayer/engineering/airmix) -"agN" = ( -/obj/effect/step_trigger/clone_cleaner, -/obj/structure/disposalpipe/down/almayer{ - dir = 1; - id = "almayerlink" - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/aft_hallway) "agO" = ( /obj/structure/machinery/door/firedoor/border_only/almayer, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/living/officer_study) "agQ" = ( /obj/structure/machinery/door/firedoor/border_only/almayer, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/living/cafeteria_officer) -"agS" = ( -/turf/open/floor/almayer{ - dir = 5; - icon_state = "red" - }, -/area/almayer/living/starboard_garden) "agT" = ( -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/almayer/living/cafeteria_officer) -"agU" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 1 - }, -/obj/structure/disposalpipe/segment, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_s) "agV" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/cafeteria_officer) -"agX" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "silver" - }, -/area/almayer/hallways/repair_bay) "agY" = ( -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/cafeteria_officer) -"ahb" = ( -/obj/structure/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_p) "ahc" = ( /obj/structure/surface/table/almayer, /obj/item/storage/box/wy_mre, /obj/item/storage/box/wy_mre, /turf/open/floor/almayer, /area/almayer/living/cafeteria_officer) -"ahd" = ( -/obj/structure/machinery/door/airlock/almayer/maint{ - access_modified = 1; - dir = 1; - req_access = null; - req_one_access = null; - req_one_access_txt = "3;22;19" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hull/lower_hull/l_f_s) "ahe" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/light{ dir = 4 }, /obj/item/storage/box/donkpockets, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/east, /area/almayer/living/cafeteria_officer) "ahf" = ( /obj/structure/surface/table/almayer, /obj/effect/spawner/random/tool, /obj/effect/spawner/random/technology_scanner, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/engineering/starboard_atmos) -"ahg" = ( -/obj/structure/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_m_s) "ahh" = ( /turf/open/floor/plating/plating_catwalk, /area/almayer/engineering/starboard_atmos) @@ -2172,72 +1130,12 @@ name = "\improper Evacuation Airlock SU-2"; req_access = null }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/powered) -"ahj" = ( -/obj/effect/step_trigger/clone_cleaner, -/turf/open/floor/plating/almayer{ - allow_construction = 0 - }, -/area/almayer/hallways/starboard_hallway) -"ahk" = ( -/obj/structure/closet/firecloset, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_m_s) -"ahl" = ( -/turf/open/floor/almayer{ - dir = 9; - icon_state = "green" - }, -/area/almayer/living/starboard_garden) -"ahn" = ( -/obj/structure/machinery/light/small{ - dir = 8 - }, -/obj/structure/closet, -/obj/item/clothing/under/marine, -/obj/item/clothing/suit/storage/marine, -/obj/item/clothing/head/helmet/marine, -/obj/item/clothing/head/cmcap, -/obj/item/clothing/head/cmcap, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_a_s) "aho" = ( /obj/structure/window/framed/almayer, /turf/open/floor/plating, /area/almayer/living/offices/flight) -"ahq" = ( -/obj/structure/machinery/alarm/almayer{ - dir = 1 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "green" - }, -/area/almayer/hallways/aft_hallway) -"ahr" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "green" - }, -/area/almayer/hallways/aft_hallway) -"aht" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_f_p) -"ahx" = ( -/obj/structure/window/framed/almayer/hull, -/turf/open/floor/plating, -/area/almayer/hull/upper_hull/u_m_s) "ahy" = ( /obj/item/device/radio/intercom{ freerange = 1; @@ -2254,20 +1152,8 @@ pixel_x = 8; pixel_y = 32 }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/lifeboat_pumps/north2) -"ahB" = ( -/obj/structure/platform{ - dir = 8 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/repair_bay) -"ahE" = ( -/obj/structure/window/framed/almayer/hull, -/turf/open/floor/plating, -/area/almayer/hull/upper_hull/u_f_s) "ahG" = ( /obj/structure/machinery/door/airlock/almayer/engineering{ dir = 2; @@ -2276,36 +1162,21 @@ /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 2 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/engineering/starboard_atmos) -"ahH" = ( -/obj/effect/step_trigger/clone_cleaner, -/obj/effect/decal/warning_stripes{ - icon_state = "SW-out" - }, -/obj/structure/sign/safety/maint{ - pixel_x = 8; - pixel_y = -32 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, -/area/almayer/hallways/aft_hallway) "ahJ" = ( /obj/structure/window/framed/almayer, /obj/structure/machinery/door/firedoor/border_only/almayer, /turf/open/floor/plating, /area/almayer/engineering/starboard_atmos) -"ahM" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "mono" +"ahL" = ( +/obj/structure/surface/table/almayer, +/obj/item/reagent_container/food/drinks/cans/souto/diet/lime{ + pixel_x = 7; + pixel_y = 4 }, -/area/almayer/hallways/aft_hallway) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_a_s) "ahN" = ( /obj/structure/flora/bush/ausbushes/var3/ywflowers, /turf/open/floor/grass, @@ -2318,51 +1189,19 @@ /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "bluecorner" - }, +/turf/open/floor/almayer/bluecorner/north, /area/almayer/living/offices/flight) -"ahU" = ( -/obj/structure/machinery/door/airlock/almayer/maint{ - dir = 1; - name = "\improper Tool Closet" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hull/lower_hull/l_m_s) "ahV" = ( /obj/structure/pipes/vents/scrubber{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "bluecorner" - }, +/turf/open/floor/almayer/bluecorner/north, /area/almayer/living/offices/flight) "aia" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/west, /area/almayer/living/officer_study) -"aib" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer, -/obj/structure/machinery/door/airlock/almayer/maint/reinforced{ - access_modified = 1; - req_one_access = null; - req_one_access_txt = "7;19" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/vehiclehangar) "aic" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/north, /area/almayer/command/cichallway) "aid" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/comdoor{ @@ -2370,16 +1209,12 @@ name = "\improper Officer's Study" }, /obj/structure/machinery/door/firedoor/border_only/almayer, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/living/officer_study) "aie" = ( /obj/effect/landmark/railgun_computer, /obj/structure/surface/table/reinforced/almayer_B, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, +/turf/open/floor/almayer/redfull, /area/almayer/shipboard/starboard_missiles) "aig" = ( /obj/structure/surface/table/reinforced/almayer_B, @@ -2387,9 +1222,7 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, +/turf/open/floor/almayer/redfull, /area/almayer/shipboard/starboard_missiles) "aih" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/comdoor{ @@ -2397,19 +1230,11 @@ name = "\improper Officer's Cafeteria" }, /obj/structure/machinery/door/firedoor/border_only/almayer, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/living/cafeteria_officer) -"aii" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/aft_hallway) +/turf/open/floor/almayer/test_floor4, +/area/almayer/living/cafeteria_officer) "aij" = ( /obj/structure/machinery/camera/autoname/almayer{ dir = 8; @@ -2418,69 +1243,14 @@ /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/east, /area/almayer/living/cafeteria_officer) -"aik" = ( -/obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "green" - }, -/area/almayer/hallways/aft_hallway) -"ail" = ( -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hull/upper_hull/u_f_s) -"aim" = ( -/turf/open/floor/almayer{ - dir = 6; - icon_state = "green" - }, -/area/almayer/hallways/aft_hallway) "ain" = ( /obj/structure/pipes/standard/simple/hidden/supply{ - dir = 5 - }, -/turf/open/floor/almayer{ - icon_state = "plate" + dir = 9 }, +/turf/open/floor/almayer/plate, /area/almayer/living/cafeteria_officer) -"aio" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "silver" - }, -/area/almayer/hallways/aft_hallway) -"aip" = ( -/obj/structure/prop/invuln/overhead_pipe{ - dir = 4; - pixel_y = 13 - }, -/obj/structure/prop/invuln/overhead_pipe{ - dir = 4; - pixel_x = 12; - pixel_y = 13 - }, -/obj/structure/prop/invuln/overhead_pipe{ - dir = 4; - pixel_y = 13 - }, -/obj/structure/prop/invuln/overhead_pipe{ - dir = 4; - pixel_x = -16; - pixel_y = 13 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_m_p) "aiq" = ( /turf/open/floor/almayer, /area/almayer/living/cafeteria_officer) @@ -2491,71 +1261,13 @@ /turf/open/floor/almayer, /area/almayer/living/cafeteria_officer) "ais" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "bluecorner" - }, +/turf/open/floor/almayer/bluecorner/west, /area/almayer/living/offices/flight) -"ait" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "mono" - }, -/area/almayer/hallways/aft_hallway) -"aiv" = ( -/obj/structure/machinery/door/airlock/almayer/maint{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hull/upper_hull/u_m_s) "aiw" = ( /turf/open/floor/almayer, /area/almayer/engineering/starboard_atmos) -"aiy" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 3 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/starboard_hallway) -"aiz" = ( -/obj/structure/closet, -/obj/item/clothing/under/marine, -/obj/item/clothing/suit/storage/marine, -/obj/item/clothing/head/helmet/marine, -/obj/item/clothing/head/beret/cm, -/obj/item/clothing/head/beret/cm, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_a_s) -"aiA" = ( -/obj/structure/surface/table/almayer, -/obj/item/clipboard, -/obj/item/paper, -/obj/item/clothing/glasses/mgoggles, -/obj/item/clothing/glasses/mgoggles, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_a_s) -"aiB" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" - }, -/area/almayer/hallways/stern_hallway) -"aiC" = ( -/turf/open/floor/almayer, -/area/almayer/hallways/stern_hallway) -"aiE" = ( -/obj/structure/largecrate/random/barrel/red, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_s) "aiH" = ( -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/starboard_garden) "aiJ" = ( /obj/effect/step_trigger/teleporter_vector{ @@ -2563,16 +1275,14 @@ vector_x = 1; vector_y = -102 }, -/turf/open/floor/plating/almayer{ - allow_construction = 0 - }, +/turf/open/floor/plating/almayer/no_build, /area/almayer/stair_clone/upper) -"aiP" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" - }, -/area/almayer/living/starboard_garden) +"aiQ" = ( +/obj/structure/machinery/faxmachine, +/obj/structure/surface/table/almayer, +/obj/structure/machinery/light/small, +/turf/open/floor/almayer/plate, +/area/almayer/command/combat_correspondent) "aiR" = ( /obj/structure/stairs{ dir = 8; @@ -2583,64 +1293,21 @@ vector_x = -1; vector_y = 100 }, -/turf/open/floor/plating/almayer{ - allow_construction = 0 - }, +/turf/open/floor/plating/almayer/no_build, /area/almayer/stair_clone) -"aiS" = ( -/obj/structure/closet, -/obj/item/device/flashlight/pen, -/obj/item/attachable/reddot, -/obj/structure/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_m_s) -"aiT" = ( -/obj/structure/bed/chair{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_m_s) -"aiU" = ( -/obj/structure/surface/table/almayer, -/obj/item/card/id/visa, -/obj/item/tool/crew_monitor, -/turf/open/floor/almayer{ - icon_state = "plate" +"aiW" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" }, -/area/almayer/hull/upper_hull/u_m_s) -"aiV" = ( -/obj/structure/bookcase/manuals/engineering, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 1 }, -/area/almayer/hull/upper_hull/u_f_s) +/turf/open/floor/carpet, +/area/almayer/living/commandbunks) "aiX" = ( /turf/closed/wall/almayer, /area/almayer/living/pilotbunks) -"aiZ" = ( -/obj/structure/bed/chair{ - dir = 8 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_m_s) -"ajd" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/effect/decal/warning_stripes{ - icon_state = "W"; - layer = 2.5 - }, -/obj/effect/step_trigger/clone_cleaner, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_hallway) "aje" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 6 @@ -2663,61 +1330,16 @@ "ajl" = ( /turf/closed/wall/almayer/white, /area/almayer/medical/upper_medical) -"ajp" = ( -/obj/structure/surface/table/almayer, -/obj/structure/dropship_equipment/fuel/cooling_system{ - layer = 3.5 - }, -/obj/item/clothing/glasses/welding{ - layer = 3.6; - pixel_x = 2; - pixel_y = 7 - }, -/obj/effect/decal/cleanable/blood/oil, -/obj/structure/machinery/computer/working_joe{ - dir = 4; - pixel_x = -17 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "silver" - }, -/area/almayer/hallways/repair_bay) -"ajq" = ( -/obj/effect/step_trigger/clone_cleaner, -/obj/effect/decal/warning_stripes{ - icon_state = "NW-out"; - layer = 2.5; - pixel_y = 1 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" - }, -/area/almayer/hallways/aft_hallway) -"ajr" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "bluecorner" - }, -/area/almayer/hallways/aft_hallway) +"ajm" = ( +/obj/structure/closet/secure_closet/securecom, +/turf/open/floor/almayer/redfull, +/area/almayer/command/cic) "ajs" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/lifeboat_pumps/north2) -"ajt" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/aft_hallway) "aju" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 1 @@ -2730,53 +1352,10 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/lifeboat_pumps/north2) -"ajx" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 5 - }, -/turf/open/floor/almayer{ - icon_state = "silver" - }, -/area/almayer/hallways/repair_bay) -"ajy" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 9 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "silver" - }, -/area/almayer/hallways/repair_bay) -"ajz" = ( -/turf/open/floor/almayer{ - icon_state = "silver" - }, -/area/almayer/hallways/repair_bay) "ajA" = ( /obj/structure/bed/chair/office/dark, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/offices/flight) -"ajB" = ( -/obj/structure/machinery/cm_vending/sorted/tech/comp_storage{ - req_access = null; - req_one_access = null; - req_one_access_txt = "7;23;27;102" - }, -/obj/item/reagent_container/food/drinks/coffee{ - pixel_x = -3; - pixel_y = 18 - }, -/turf/open/floor/almayer{ - icon_state = "silver" - }, -/area/almayer/hallways/repair_bay) -"ajC" = ( -/turf/open/floor/almayer{ - icon_state = "green" - }, -/area/almayer/hallways/aft_hallway) "ajD" = ( /obj/structure/surface/table/almayer, /obj/structure/flora/pottedplant{ @@ -2791,24 +1370,6 @@ }, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/north1) -"ajF" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/stern_hallway) -"ajG" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/stern_hallway) "ajH" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 6 @@ -2819,29 +1380,8 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/lifeboat_pumps/north1) -"ajJ" = ( -/obj/structure/window/framed/almayer, -/turf/open/floor/plating, -/area/almayer/living/cafeteria_officer) -"ajL" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "SE-out" - }, -/obj/structure/machinery/light, -/obj/structure/machinery/cm_vending/sorted/tech/electronics_storage{ - req_access = null; - req_one_access = null; - req_one_access_txt = "7;23;27;102" - }, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "silver" - }, -/area/almayer/hallways/repair_bay) "ajM" = ( /obj/structure/window/framed/almayer, /obj/structure/machinery/door/poddoor/almayer/open{ @@ -2850,50 +1390,9 @@ }, /turf/open/floor/plating, /area/almayer/living/offices/flight) -"ajN" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 6 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" - }, -/area/almayer/hallways/stern_hallway) -"ajO" = ( -/obj/structure/stairs, -/obj/effect/projector{ - name = "Almayer_Up1"; - vector_x = -19; - vector_y = 98 - }, -/turf/open/floor/plating/almayer{ - allow_construction = 0 - }, -/area/almayer/hallways/starboard_hallway) -"ajP" = ( -/obj/structure/pipes/standard/manifold/hidden/supply, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/stern_hallway) -"ajQ" = ( -/obj/docking_port/stationary/escape_pod/east, -/turf/open/floor/plating, -/area/almayer/hull/upper_hull/u_m_s) -"ajR" = ( -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 1 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/stern_hallway) -"ajS" = ( -/obj/effect/step_trigger/clone_cleaner, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" - }, -/area/almayer/hallways/aft_hallway) -"ajT" = ( -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 1 +"ajT" = ( +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 1 }, /turf/open/floor/plating/plating_catwalk, /area/almayer/lifeboat_pumps/north1) @@ -2903,72 +1402,45 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/lifeboat_pumps/north1) -"ajW" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/stern_hallway) -"ajX" = ( -/obj/effect/step_trigger/clone_cleaner, -/turf/open/floor/plating/almayer{ - allow_construction = 0 - }, -/area/almayer/hallways/port_hallway) "ajY" = ( -/turf/open/floor/almayer_hull{ - dir = 10; - icon_state = "outerhull_dir" - }, +/turf/open/floor/almayer_hull/outerhull_dir/southwest, /area/space) "ajZ" = ( -/turf/open/floor/almayer_hull{ - icon_state = "outerhull_dir" - }, +/turf/open/floor/almayer_hull/outerhull_dir, /area/space) "aka" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/almayer/red/east, /area/almayer/lifeboat_pumps/north1) "akb" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/almayer/red/north, /area/almayer/shipboard/weapon_room) "akc" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/almayer/red/west, /area/almayer/lifeboat_pumps/north1) -"akd" = ( -/obj/structure/window/framed/almayer, -/turf/open/floor/plating, -/area/almayer/hull/upper_hull/u_a_s) -"ake" = ( -/obj/structure/largecrate/random/barrel/white, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_f_s) "akf" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "redcorner" - }, +/turf/open/floor/almayer/redcorner/north, /area/almayer/shipboard/weapon_room) -"akr" = ( +"akh" = ( +/turf/open/floor/almayer/bluecorner/east, +/area/almayer/hallways/upper/midship_hallway) +"akn" = ( +/obj/structure/machinery/light{ + dir = 4 + }, +/obj/vehicle/powerloader{ + dir = 8 + }, +/turf/open/floor/almayer/cargo/southwest, +/area/almayer/hallways/lower/vehiclehangar) +"ako" = ( /obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" + dir = 4 }, -/turf/open/floor/wood/ship, +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 1 + }, +/turf/open/floor/carpet, /area/almayer/living/commandbunks) "akt" = ( /obj/structure/cable/heavyduty{ @@ -2987,9 +1459,7 @@ pixel_x = -7; pixel_y = 13 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/pilotbunks) "akv" = ( /obj/structure/surface/table/reinforced/almayer_B, @@ -3004,35 +1474,14 @@ /obj/item/device/camera{ pixel_x = 7 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/pilotbunks) "akw" = ( -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/medical/upper_medical) "akx" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/north, /area/almayer/medical/upper_medical) -"aky" = ( -/obj/structure/machinery/light, -/obj/effect/decal/warning_stripes{ - icon_state = "SW-out" - }, -/obj/structure/machinery/cm_vending/sorted/tech/tool_storage{ - req_one_access = null; - req_one_access_txt = "7;23;27;102" - }, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "silver" - }, -/area/almayer/hallways/repair_bay) "akz" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/emails{ @@ -3042,10 +1491,7 @@ /area/almayer/living/offices/flight) "akA" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/east, /area/almayer/medical/upper_medical) "akC" = ( /turf/closed/wall/almayer/reinforced, @@ -3057,57 +1503,8 @@ pixel_y = 25 }, /obj/structure/machinery/iv_drip, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/north, /area/almayer/medical/operating_room_two) -"akH" = ( -/obj/structure/machinery/light, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/manifold/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "orange" - }, -/area/almayer/hallways/stern_hallway) -"akI" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "orange" - }, -/area/almayer/hallways/stern_hallway) -"akJ" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/stern_hallway) -"akK" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 9 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" - }, -/area/almayer/hallways/stern_hallway) "akL" = ( /obj/structure/machinery/light{ dir = 1 @@ -3119,22 +1516,8 @@ pixel_y = 24; req_access_txt = "31" }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/north, /area/almayer/command/cichallway) -"akO" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/starboard_hallway) "akQ" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -3142,75 +1525,11 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/northwest, /area/almayer/medical/lower_medical_medbay) -"akS" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer, -/obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/command/lifeboat) -"akT" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 6 - }, -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/aft_hallway) -"akU" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/aft_hallway) -"akV" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/aft_hallway) -"akW" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" - }, -/area/almayer/living/starboard_garden) -"akY" = ( -/obj/structure/cable/heavyduty{ - icon_state = "4-8" - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/living/starboard_garden) "ald" = ( -/turf/open/floor/almayer{ - icon_state = "red" - }, +/turf/open/floor/almayer/red, /area/almayer/shipboard/weapon_room) -"ale" = ( -/obj/structure/machinery/light{ - dir = 4 - }, -/obj/structure/bed/chair{ - dir = 8 - }, -/turf/open/floor/almayer, -/area/almayer/living/starboard_garden) "alf" = ( /obj/structure/machinery/light{ dir = 8 @@ -3218,9 +1537,7 @@ /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/starboard_garden) "alg" = ( /obj/structure/flora/bush/ausbushes/ppflowers, @@ -3229,12 +1546,10 @@ }, /turf/open/floor/grass, /area/almayer/living/starboard_garden) -"ali" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "bluecorner" - }, -/area/almayer/hallways/aft_hallway) +"alh" = ( +/obj/structure/largecrate/random/case/small, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_m_s) "alk" = ( /obj/structure/machinery/door/poddoor/shutters/almayer{ dir = 4; @@ -3247,142 +1562,40 @@ }, /turf/closed/wall/almayer/research/containment/wall/purple, /area/almayer/medical/containment/cell) -"all" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer, -/area/almayer/hallways/aft_hallway) "alp" = ( -/turf/open/floor/almayer{ - dir = 9; - icon_state = "silver" +/obj/structure/machinery/firealarm{ + pixel_y = -28 }, -/area/almayer/hallways/aft_hallway) -"alq" = ( -/obj/structure/disposalpipe/junction, -/obj/structure/pipes/standard/simple/hidden/supply{ +/obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/aft_hallway) -"als" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "bluecorner" - }, -/area/almayer/hallways/aft_hallway) +/turf/open/floor/almayer/red, +/area/almayer/shipboard/brig/starboard_hallway) "alw" = ( /obj/structure/machinery/door/airlock/almayer/generic{ dir = 2; name = "\improper Pilot's Room" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/living/pilotbunks) -"alx" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/structure/machinery/door/poddoor/shutters/almayer/open{ - dir = 4; - id = "northcheckpoint"; - name = "\improper Checkpoint Shutters" - }, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, -/area/almayer/hallways/starboard_hallway) "aly" = ( /turf/closed/wall/almayer, /area/almayer/shipboard/starboard_missiles) "alD" = ( -/turf/open/floor/almayer{ - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side, /area/almayer/medical/upper_medical) "alE" = ( -/turf/open/floor/almayer{ - dir = 10; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/southwest, /area/almayer/medical/upper_medical) -"alG" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orangecorner" - }, -/area/almayer/hallways/stern_hallway) -"alH" = ( -/turf/closed/wall/almayer/white/outer_tile, -/area/almayer/hull/upper_hull) -"alI" = ( -/obj/item/stack/cable_coil{ - pixel_x = 1; - pixel_y = 10 - }, -/obj/item/trash/pistachios, -/obj/item/tool/screwdriver, -/turf/open/floor/almayer{ - icon_state = "cargo_arrow" - }, -/area/almayer/hallways/repair_bay) -"alJ" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orangecorner" - }, -/area/almayer/hallways/stern_hallway) -"alK" = ( -/obj/structure/pipes/vents/pump, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orangecorner" - }, -/area/almayer/hallways/stern_hallway) "alL" = ( /turf/closed/wall/almayer, /area/almayer/command/telecomms) "alO" = ( /turf/closed/wall/almayer, /area/almayer/engineering/upper_engineering) -"alP" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/almayer{ - icon_state = "mono" - }, -/area/almayer/hallways/stern_hallway) -"alQ" = ( -/obj/item/tool/wrench{ - pixel_x = -8; - pixel_y = 10 - }, -/obj/effect/decal/cleanable/blood/oil, -/obj/structure/prop/mech/hydralic_clamp, -/turf/open/floor/almayer, -/area/almayer/hallways/repair_bay) "alR" = ( -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/engineering/upper_engineering) -"alT" = ( -/obj/structure/bed/chair, -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_s) "alU" = ( /turf/closed/wall/almayer/reinforced, /area/almayer/shipboard/navigation) @@ -3395,17 +1608,13 @@ vector_x = 1; vector_y = -102 }, -/turf/open/floor/plating/almayer{ - allow_construction = 0 - }, +/turf/open/floor/plating/almayer/no_build, /area/almayer/stair_clone/upper) "alX" = ( /turf/open/floor/almayer, /area/almayer/command/cic) "alZ" = ( -/turf/open/floor/almayer{ - icon_state = "red" - }, +/turf/open/floor/almayer/red, /area/almayer/command/cic) "amb" = ( /obj/structure/window/reinforced{ @@ -3426,24 +1635,14 @@ density = 0; pixel_y = 16 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/pilotbunks) "amg" = ( /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/weapon_room) "amh" = ( -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/pilotbunks) -"amj" = ( -/obj/item/reagent_container/food/drinks/cans/souto, -/turf/open/floor/almayer{ - icon_state = "cargo_arrow" - }, -/area/almayer/hallways/repair_bay) "amk" = ( /obj/effect/decal/warning_stripes{ icon_state = "NE-out"; @@ -3453,10 +1652,7 @@ /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_corner" - }, +/turf/open/floor/almayer/sterile_green_corner/north, /area/almayer/medical/containment) "amo" = ( /obj/structure/largecrate/random/secure, @@ -3464,21 +1660,23 @@ pixel_x = 8; pixel_y = 32 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) -"amp" = ( -/obj/structure/bed/chair/office/dark{ +"ams" = ( +/obj/structure/surface/table/almayer, +/obj/structure/machinery/computer/atmos_alert{ dir = 8 }, -/turf/open/floor/almayer, -/area/almayer/hallways/repair_bay) +/turf/open/floor/almayer/plate, +/area/almayer/engineering/lower/workshop) +"amu" = ( +/obj/structure/surface/rack, +/obj/effect/spawner/random/tool, +/obj/effect/spawner/random/toolbox, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/s_bow) "amw" = ( -/turf/open/floor/almayer{ - dir = 9; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/northwest, /area/almayer/engineering/upper_engineering) "amx" = ( /turf/open/floor/almayer, @@ -3488,22 +1686,15 @@ /turf/open/floor/plating, /area/almayer/shipboard/starboard_missiles) "amA" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/north, +/area/almayer/engineering/upper_engineering) +"amE" = ( +/obj/item/clothing/suit/storage/marine/light/vest, +/obj/item/clothing/suit/storage/marine/light/vest, +/obj/item/clothing/suit/storage/marine/light/vest, +/obj/structure/surface/rack, +/turf/open/floor/almayer/redfull, /area/almayer/engineering/upper_engineering) -"amC" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/aft_hallway) -"amD" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "blue" - }, -/area/almayer/hallways/aft_hallway) "amF" = ( /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/plating/plating_catwalk, @@ -3518,123 +1709,20 @@ /obj/structure/machinery/power/apc/almayer{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/north, /area/almayer/command/cichallway) -"amJ" = ( -/obj/structure/largecrate/machine/bodyscanner, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_s) -"amK" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 5 - }, -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/aft_hallway) -"amL" = ( -/obj/structure/machinery/light/small{ - dir = 1; - pixel_y = 20 - }, -/obj/structure/largecrate, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_s) -"amN" = ( -/obj/structure/largecrate/random/case/double, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_m_s) -"amO" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/aft_hallway) -"amP" = ( -/obj/structure/largecrate/random/case, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_s) -"amQ" = ( -/obj/structure/filingcabinet{ - density = 0; - pixel_x = -8; - pixel_y = 18 - }, -/obj/structure/filingcabinet{ - density = 0; - pixel_x = 8; - pixel_y = 18 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_s) -"amR" = ( -/obj/structure/stairs/perspective{ - icon_state = "p_stair_full" - }, -/obj/item/storage/belt/utility, -/turf/open/floor/almayer, -/area/almayer/hallways/repair_bay) -"amS" = ( -/obj/structure/stairs{ - dir = 1 - }, -/obj/effect/projector{ - name = "Almayer_Up4"; - vector_x = -19; - vector_y = 104 - }, -/obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/floor/plating/almayer{ - allow_construction = 0 - }, -/area/almayer/hallways/port_hallway) -"amT" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "blue" - }, -/area/almayer/hallways/aft_hallway) -"amU" = ( -/turf/open/floor/almayer{ - icon_state = "plate" +"amM" = ( +/obj/structure/window/framed/almayer, +/obj/structure/curtain/open/shower{ + name = "cryo curtain" }, -/area/almayer/hallways/repair_bay) -"amW" = ( -/obj/structure/surface/rack, -/obj/item/storage/firstaid/toxin, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 }, -/area/almayer/hull/upper_hull/u_a_s) +/turf/open/floor/plating, +/area/almayer/engineering/port_atmos) "amX" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/almayer/red/north, /area/almayer/shipboard/navigation) "amY" = ( /obj/structure/pipes/standard/simple/hidden/supply, @@ -3655,25 +1743,8 @@ }, /obj/structure/machinery/disposal, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/pilotbunks) -"anb" = ( -/obj/structure/machinery/conveyor{ - id = "lower_garbage" - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "plating_striped" - }, -/area/almayer/hull/lower_hull/l_m_p) -"anc" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "silvercorner" - }, -/area/almayer/hallways/aft_hallway) "and" = ( /obj/structure/window/reinforced{ dir = 4; @@ -3688,30 +1759,17 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/pilotbunks) -"anf" = ( -/turf/open/floor/almayer{ - icon_state = "silvercorner" - }, -/area/almayer/hallways/aft_hallway) -"anh" = ( -/turf/open/floor/almayer{ - dir = 6; - icon_state = "silver" - }, -/area/almayer/hallways/aft_hallway) -"ani" = ( -/obj/structure/pipes/standard/manifold/hidden/supply, -/obj/structure/disposalpipe/segment{ - dir = 4 +"ang" = ( +/obj/item/clothing/head/welding{ + pixel_y = 6 }, -/turf/open/floor/almayer, -/area/almayer/hallways/aft_hallway) -"anl" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 5 +/obj/structure/surface/table/reinforced/almayer_B, +/obj/structure/sign/safety/hvac_old{ + pixel_x = 8; + pixel_y = 32 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_s) +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_a_p) "anm" = ( /obj/structure/stairs{ icon_state = "ramptop" @@ -3721,42 +1779,46 @@ vector_x = -19; vector_y = 104 }, -/turf/open/floor/plating/almayer{ - allow_construction = 0 - }, +/turf/open/floor/plating/almayer/no_build, /area/almayer/stair_clone) -"ano" = ( -/obj/structure/machinery/light/small{ - dir = 1; - pixel_y = 20 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_a_s) -"ans" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_side" +"anp" = ( +/obj/structure/sign/safety/hazard{ + pixel_x = 15; + pixel_y = 32 }, +/obj/structure/closet/secure_closet/guncabinet/red/armory_m4a3_pistol, +/turf/open/floor/almayer/redfull, /area/almayer/medical/upper_medical) -"ant" = ( -/obj/structure/window/reinforced{ - dir = 8; - health = 80 - }, -/obj/structure/machinery/light{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" +"anq" = ( +/obj/item/device/radio/intercom{ + freerange = 1; + name = "General Listening Channel"; + pixel_y = 28 }, -/area/almayer/hull/lower_hull/l_m_p) -"anu" = ( -/obj/structure/ladder{ - height = 2; - id = "AftStarboardMaint" +/obj/item/clothing/suit/storage/marine/light/vest, +/obj/item/clothing/suit/storage/marine/light/vest, +/obj/item/clothing/suit/storage/marine/light/vest, +/obj/item/clothing/suit/storage/marine/light/vest, +/obj/item/clothing/suit/storage/marine/light/vest, +/obj/item/clothing/suit/storage/marine/light/vest, +/obj/structure/surface/rack, +/obj/item/clothing/suit/storage/marine/light/vest, +/obj/item/clothing/suit/storage/marine/light/vest, +/obj/item/clothing/suit/storage/marine/light/vest, +/obj/item/clothing/suit/storage/marine/light/vest, +/turf/open/floor/almayer/redfull, +/area/almayer/medical/upper_medical) +"anr" = ( +/obj/structure/sign/safety/intercom{ + pixel_x = 8; + pixel_y = 32 }, -/turf/open/floor/plating/almayer, -/area/almayer/hull/upper_hull/u_a_s) +/obj/structure/closet/secure_closet/guncabinet/red/armory_m39_submachinegun, +/turf/open/floor/almayer/redfull, +/area/almayer/medical/upper_medical) +"ans" = ( +/turf/open/floor/almayer/sterile_green_side/west, +/area/almayer/medical/upper_medical) "anw" = ( /obj/structure/machinery/flasher{ id = "Containment Cell 1"; @@ -3768,9 +1830,7 @@ icon_state = "N"; pixel_y = 1 }, -/turf/open/floor/almayer/research/containment/floor2{ - dir = 1 - }, +/turf/open/floor/almayer/research/containment/floor2/north, /area/almayer/medical/containment/cell) "anz" = ( /obj/effect/decal/warning_stripes{ @@ -3781,81 +1841,8 @@ /obj/structure/machinery/firealarm{ pixel_y = 28 }, -/turf/open/floor/almayer{ - icon_state = "sterile_green" - }, +/turf/open/floor/almayer/sterile_green, /area/almayer/medical/hydroponics) -"anB" = ( -/obj/structure/sign/safety/storage{ - pixel_x = -17 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "silver" - }, -/area/almayer/hallways/repair_bay) -"anC" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/stern_hallway) -"anD" = ( -/obj/structure/platform_decoration{ - dir = 8 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/repair_bay) -"anG" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/stern_hallway) -"anH" = ( -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 10 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" - }, -/area/almayer/hallways/stern_hallway) -"anI" = ( -/obj/item/tool/wet_sign, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_s) -"anJ" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" - }, -/area/almayer/hallways/stern_hallway) -"anK" = ( -/obj/structure/platform{ - dir = 1 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/repair_bay) -"anL" = ( -/obj/structure/platform_decoration{ - dir = 4 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/repair_bay) "anM" = ( /obj/structure/surface/table/almayer, /obj/item/clipboard, @@ -3865,37 +1852,13 @@ /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/north1) "anO" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/west, /area/almayer/engineering/upper_engineering) "anP" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/disposalpipe/segment, /turf/open/floor/almayer, /area/almayer/engineering/upper_engineering) -"anR" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" - }, -/area/almayer/hallways/stern_hallway) -"anS" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/structure/machinery/landinglight/ds2/delayone{ - dir = 8 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/hangar) -"anT" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "silvercorner" - }, -/area/almayer/hallways/repair_bay) "anU" = ( /obj/structure/machinery/door/airlock/almayer/security{ dir = 2; @@ -3903,15 +1866,12 @@ req_access = null; req_one_access_txt = "3;22;2;19" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer/test_floor4, /area/almayer/living/offices/flight) "anV" = ( /obj/structure/largecrate/random/case/small, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, +/turf/open/floor/almayer/redfull, /area/almayer/engineering/upper_engineering) "anW" = ( /obj/structure/machinery/light{ @@ -3919,82 +1879,30 @@ }, /turf/open/floor/almayer, /area/almayer/hallways/hangar) -"anX" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_f_p) "aoa" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/weapon_room) -"aoc" = ( -/obj/structure/stairs{ - dir = 1 - }, -/obj/effect/projector{ - name = "Almayer_Up4"; - vector_x = -19; - vector_y = 104 - }, -/turf/open/floor/plating/almayer{ - allow_construction = 0 - }, -/area/almayer/hallways/port_hallway) -"aod" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "green" - }, -/area/almayer/hallways/aft_hallway) "aoe" = ( /turf/closed/wall/almayer/white, /area/almayer/medical/morgue) -"aof" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/structure/machinery/landinglight/ds1/delayone{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/hangar) "aog" = ( /obj/structure/machinery/landinglight/ds2/delayone{ dir = 8 }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 5 - }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hallways/hangar) "aoh" = ( /obj/structure/morgue/crematorium, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/medical/morgue) "aoi" = ( /turf/open/floor/almayer, /area/almayer/shipboard/navigation) -"aol" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/hangar) "aom" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/west, /area/almayer/command/cichallway) "aop" = ( /obj/structure/closet/secure_closet/personal/patient{ @@ -4003,39 +1911,18 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/medical/morgue) "aoq" = ( -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/medical/morgue) "aor" = ( /obj/structure/curtain/medical, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/medical/morgue) "aos" = ( -/turf/open/floor/almayer{ - dir = 9; - icon_state = "sterile_green_side" - }, -/area/almayer/medical/upper_medical) -"aot" = ( -/obj/structure/flora/pottedplant{ - icon_state = "pottedplant_10" - }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/sterile_green_side/northwest, /area/almayer/medical/upper_medical) -"aou" = ( -/obj/structure/machinery/light/small, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_s) "aov" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -4043,15 +1930,8 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "silver" - }, +/turf/open/floor/almayer/silver, /area/almayer/command/cichallway) -"aow" = ( -/turf/open/floor/almayer{ - icon_state = "bluecorner" - }, -/area/almayer/hallways/aft_hallway) "aoy" = ( /obj/structure/sign/safety/fire_haz{ pixel_x = 8; @@ -4059,85 +1939,39 @@ }, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/north1) -"aoA" = ( -/obj/structure/machinery/light, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 +"aoz" = ( +/obj/structure/stairs{ + dir = 8; + icon_state = "ramptop" }, -/turf/open/floor/almayer{ - icon_state = "silver" +/obj/structure/machinery/light{ + dir = 1 }, -/area/almayer/command/cichallway) -"aoB" = ( -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" +/obj/effect/projector{ + name = "Almayer_Down2"; + vector_x = 1; + vector_y = -100 }, +/turf/open/floor/plating/almayer/no_build, +/area/almayer/hallways/upper/fore_hallway) +"aoA" = ( +/obj/structure/machinery/light, /obj/structure/pipes/standard/simple/hidden/supply{ - dir = 5 + dir = 4 }, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "orange" +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/area/almayer/hallways/stern_hallway) +/turf/open/floor/almayer/silver, +/area/almayer/command/cichallway) "aoC" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/north1) -"aoD" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "orangecorner" - }, -/area/almayer/hallways/stern_hallway) -"aoE" = ( -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/turf/open/floor/almayer{ - icon_state = "orange" - }, -/area/almayer/hallways/stern_hallway) -"aoF" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "silver" - }, -/area/almayer/hallways/repair_bay) -"aoG" = ( -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 8 - }, -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/turf/open/floor/almayer{ - icon_state = "orange" - }, -/area/almayer/hallways/stern_hallway) -"aoH" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "silver" - }, -/area/almayer/hallways/repair_bay) "aoI" = ( -/turf/open/floor/almayer{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/almayer/red/southeast, /area/almayer/lifeboat_pumps/north1) "aoJ" = ( /obj/structure/machinery/door/poddoor/shutters/almayer{ @@ -4179,26 +2013,19 @@ pixel_y = -3; req_one_access_txt = "19;28" }, -/turf/open/floor/almayer{ - icon_state = "sterile_green" - }, +/turf/open/floor/almayer/sterile_green, /area/almayer/medical/containment) "aoL" = ( /obj/structure/bed/chair/office/dark, /turf/open/floor/almayer, /area/almayer/living/offices/flight) "aoM" = ( -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/medical/medical_science) "aoN" = ( /obj/structure/machinery/landinglight/ds1/delayone{ dir = 4 }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 9 - }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hallways/hangar) "aoP" = ( @@ -4208,75 +2035,16 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/command/telecomms) -"aoQ" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "orange" - }, -/area/almayer/hallways/stern_hallway) -"aoR" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/machinery/door/firedoor/border_only/almayer, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/stern_hallway) -"aoS" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" - }, -/area/almayer/hallways/stern_hallway) "aoT" = ( -/turf/open/floor/almayer{ - icon_state = "orange" - }, +/turf/open/floor/almayer/orange, /area/almayer/engineering/upper_engineering) -"aoU" = ( -/obj/structure/disposalpipe/junction{ - dir = 8; - icon_state = "pipe-j2" - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 10 - }, -/turf/open/floor/almayer{ - icon_state = "orangecorner" - }, -/area/almayer/hallways/stern_hallway) -"aoV" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/lifeboat_pumps/north1) "aoW" = ( /obj/structure/machinery/portable_atmospherics/powered/pump, /obj/structure/machinery/camera/autoname/almayer{ dir = 4; name = "ship-grade camera" }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/engineering/upper_engineering) "aoX" = ( /obj/effect/decal/warning_stripes{ @@ -4287,10 +2055,7 @@ icon_state = "W" }, /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/almayer/engineering/upper_engineering) "apa" = ( /obj/structure/surface/rack, @@ -4299,40 +2064,14 @@ /obj/structure/machinery/light, /turf/open/floor/almayer, /area/almayer/engineering/upper_engineering) -"apc" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/turf/open/floor/almayer{ - icon_state = "orangecorner" - }, -/area/almayer/hallways/stern_hallway) -"apd" = ( -/turf/open/floor/almayer{ - icon_state = "orangecorner" - }, -/area/almayer/hallways/stern_hallway) "ape" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/almayer/green/north, /area/almayer/living/grunt_rnr) -"apf" = ( -/obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "orangecorner" - }, -/area/almayer/hallways/stern_hallway) "apg" = ( -/turf/open/floor/almayer{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/almayer/red/southwest, /area/almayer/lifeboat_pumps/north1) "api" = ( /obj/structure/pipes/vents/scrubber{ @@ -4340,12 +2079,6 @@ }, /turf/open/floor/almayer, /area/almayer/hallways/hangar) -"apj" = ( -/turf/open/floor/almayer{ - dir = 10; - icon_state = "red" - }, -/area/almayer/hallways/stern_hallway) "apk" = ( /obj/effect/step_trigger/teleporter_vector{ name = "Almayer_Down1"; @@ -4354,84 +2087,29 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/stair_clone/upper) -"apl" = ( -/turf/open/floor/almayer{ - dir = 9; - icon_state = "green" - }, -/area/almayer/hallways/aft_hallway) -"apm" = ( -/obj/structure/machinery/line_nexter{ - dir = 1; - id = "MTline"; - pixel_y = 3 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/port_hallway) "apo" = ( /obj/structure/disposalpipe/trunk, /obj/structure/machinery/disposal, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/command/cic) -"app" = ( -/obj/structure/barricade/handrail{ - dir = 1; - pixel_y = 2 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/port_hallway) "apq" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/pilotbunks) -"apr" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/lifeboat_pumps/north1) "aps" = ( /obj/effect/step_trigger/teleporter_vector{ name = "Almayer_Down2"; vector_x = 1; vector_y = -100 }, -/turf/open/floor/plating/almayer{ - allow_construction = 0 - }, +/turf/open/floor/plating/almayer/no_build, /area/almayer/stair_clone/upper) "apt" = ( /obj/structure/machinery/power/apc/almayer{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/pilotbunks) -"apu" = ( -/obj/structure/machinery/light{ - unacidable = 1; - unslashable = 1 - }, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "red" - }, -/area/almayer/living/starboard_garden) -"apv" = ( -/obj/structure/sign/safety/ladder{ - pixel_x = 8; - pixel_y = 32 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "blue" - }, -/area/almayer/hallways/aft_hallway) "apz" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/door_control{ @@ -4439,18 +2117,8 @@ name = "North Checkpoint Shutters"; req_one_access_txt = "3;12;19" }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/briefing) -"apA" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/structure/disposalpipe/segment, -/obj/structure/sign/safety/rewire{ - pixel_x = 32 - }, -/turf/open/floor/almayer, -/area/almayer/engineering/engineering_workshop/hangar) "apB" = ( /obj/structure/surface/rack, /obj/item/reagent_container/food/snacks/wrapped/booniebars{ @@ -4460,73 +2128,19 @@ /obj/item/reagent_container/food/snacks/wrapped/booniebars{ pixel_y = 4 }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/engineering/upper_engineering/starboard) -"apC" = ( -/obj/effect/step_trigger/clone_cleaner, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/starboard_hallway) "apE" = ( -/turf/open/floor/almayer{ - dir = 9; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/northwest, /area/almayer/hallways/hangar) -"apI" = ( -/obj/structure/machinery/door/airlock/almayer/command{ - dir = 2; - name = "\improper Command Ladder" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hull/upper_hull) -"apJ" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "silver" - }, -/area/almayer/hallways/aft_hallway) -"apK" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "silver" - }, -/area/almayer/hallways/aft_hallway) "apL" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/cell_charger, /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/north, /area/almayer/hallways/hangar) -"apM" = ( -/obj/structure/machinery/autolathe/armylathe/full, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, -/area/almayer/engineering/engineering_workshop/hangar) -"apO" = ( -/obj/structure/machinery/cm_vending/sorted/tech/electronics_storage, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, -/area/almayer/engineering/engineering_workshop/hangar) -"apP" = ( -/obj/structure/machinery/autolathe, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, -/area/almayer/engineering/engineering_workshop/hangar) "apR" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -4539,9 +2153,7 @@ name = "Secure Reinforced Air Vent"; welded = 1 }, -/turf/open/floor/almayer{ - icon_state = "sterile_green" - }, +/turf/open/floor/almayer/sterile_green, /area/almayer/medical/containment) "apS" = ( /obj/effect/decal/warning_stripes{ @@ -4559,21 +2171,8 @@ pixel_x = -3; pixel_y = 22 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/north, /area/almayer/medical/containment) -"apT" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/structure/machinery/door/airlock/almayer/engineering/reinforced/OT{ - dir = 1 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/engineering/engineering_workshop/hangar) "apU" = ( /obj/structure/machinery/door/poddoor/shutters/almayer{ dir = 4; @@ -4588,29 +2187,17 @@ dir = 8 }, /area/almayer/medical/containment/cell) -"apV" = ( -/obj/structure/machinery/light{ - dir = 8 - }, -/turf/open/floor/almayer, -/area/almayer/engineering/engineering_workshop/hangar) "apW" = ( /obj/structure/machinery/telecomms/server/presets/common, -/turf/open/floor/almayer{ - icon_state = "tcomms" - }, +/turf/open/floor/almayer/tcomms, /area/almayer/command/telecomms) "apX" = ( /obj/structure/machinery/telecomms/server/presets/medical, -/turf/open/floor/almayer{ - icon_state = "tcomms" - }, +/turf/open/floor/almayer/tcomms, /area/almayer/command/telecomms) "apY" = ( /obj/structure/machinery/telecomms/server/presets/engineering, -/turf/open/floor/almayer{ - icon_state = "tcomms" - }, +/turf/open/floor/almayer/tcomms, /area/almayer/command/telecomms) "apZ" = ( /obj/structure/machinery/telecomms/receiver/preset_left, @@ -4621,57 +2208,15 @@ pixel_x = 16; pixel_y = 32 }, -/turf/open/floor/almayer{ - icon_state = "tcomms" - }, +/turf/open/floor/almayer/tcomms, /area/almayer/command/telecomms) "aqa" = ( /obj/structure/machinery/telecomms/receiver/preset, -/turf/open/floor/almayer{ - icon_state = "tcomms" - }, +/turf/open/floor/almayer/tcomms, /area/almayer/command/telecomms) "aqb" = ( -/turf/open/floor/almayer{ - icon_state = "tcomms" - }, +/turf/open/floor/almayer/tcomms, /area/almayer/command/telecomms) -"aqc" = ( -/obj/structure/machinery/door_control{ - id = "panicroomback"; - name = "\improper Safe Room"; - pixel_x = -25; - req_one_access_txt = "3" - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_s) -"aqd" = ( -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/obj/structure/machinery/disposal/delivery{ - density = 0; - desc = "A pneumatic delivery unit. Sends items to the requisitions."; - icon_state = "delivery_engi"; - name = "Requisitions Delivery Unit"; - pixel_y = 28 - }, -/turf/open/floor/almayer, -/area/almayer/engineering/engineering_workshop/hangar) -"aqe" = ( -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/engineering/upper_engineering) "aqf" = ( /obj/structure/pipes/vents/pump{ dir = 4 @@ -4680,52 +2225,25 @@ /area/almayer/engineering/upper_engineering) "aqg" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/obj/structure/disposalpipe/junction, /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/almayer/test_floor4, /area/almayer/engineering/upper_engineering) "aqh" = ( -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, /obj/structure/flora/pottedplant{ icon_state = "pottedplant_21" }, /obj/structure/sign/safety/distribution_pipes{ pixel_x = 32 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" - }, -/area/almayer/engineering/upper_engineering) -"aqj" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/structure/window/framed/almayer, -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 1 - }, -/turf/open/floor/plating, +/turf/open/floor/almayer/orange/east, /area/almayer/engineering/upper_engineering) -"aqk" = ( -/obj/structure/sign/safety/escapepod{ - pixel_x = 8; - pixel_y = -32 - }, -/turf/open/floor/almayer, -/area/almayer/living/starboard_garden) "aqm" = ( /obj/item/bedsheet/brown, /obj/structure/bed, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/numbertwobunks) "aqn" = ( /obj/structure/machinery/light{ @@ -4744,24 +2262,16 @@ pixel_x = -8; pixel_y = 16 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/almayer/green/north, /area/almayer/living/offices) "aqp" = ( -/turf/open/floor/almayer{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/almayer/red/southeast, /area/almayer/command/lifeboat) "aqq" = ( /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/command/lifeboat) "aqs" = ( /obj/effect/decal/warning_stripes{ @@ -4776,23 +2286,8 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/living/pilotbunks) -"aqx" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 - }, -/obj/structure/machinery/door/poddoor/shutters/almayer{ - id = "laddernorthwest"; - name = "\improper North West Ladders Shutters" - }, -/obj/effect/step_trigger/clone_cleaner, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/starboard_hallway) "aqy" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 @@ -4801,85 +2296,61 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/living/pilotbunks) "aqz" = ( /obj/structure/machinery/door/airlock/almayer/generic{ dir = 1; name = "Bathroom" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/living/pilotbunks) -"aqD" = ( -/obj/structure/surface/table/almayer, -/obj/structure/machinery/door_control{ - id = "MTline"; - name = "Next button"; - pixel_x = 5; - pixel_y = 10; - req_one_access_txt = "2;7" - }, -/obj/item/paper_bin/uscm, -/obj/item/tool/pen, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, -/area/almayer/engineering/engineering_workshop/hangar) +"aqB" = ( +/obj/structure/blocker/fuelpump, +/turf/open/floor/almayer, +/area/almayer/lifeboat_pumps/south1) "aqF" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_10" }, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/northwest, /area/almayer/command/cic) "aqG" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/medical/medical_science) -"aqI" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "silver" +"aqH" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_a_p) +"aqI" = ( +/turf/open/floor/almayer/silver/west, /area/almayer/living/auxiliary_officer_office) "aqJ" = ( -/turf/open/floor/almayer{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/almayer/red/northeast, /area/almayer/command/lifeboat) "aqK" = ( /obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/engineering/upper_engineering/starboard) -"aqM" = ( -/obj/effect/projector{ - name = "Almayer_Up2"; - vector_x = -1; - vector_y = 100 +"aqL" = ( +/obj/structure/stairs{ + dir = 1 }, -/obj/structure/machinery/light{ - dir = 8 +/obj/effect/projector{ + name = "Almayer_Up4"; + vector_x = -19; + vector_y = 104 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/starboard_hallway) +/turf/open/floor/plating/almayer/no_build, +/area/almayer/hallways/lower/port_midship_hallway) "aqN" = ( -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/command/cic) "aqP" = ( /obj/structure/machinery/door/airlock/almayer/research/glass/reinforced{ @@ -4903,29 +2374,12 @@ }, /obj/structure/machinery/door/poddoor/almayer/biohazard/white, /obj/structure/pipes/standard/simple/hidden/supply/no_boom, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/medical/containment/cell) "aqS" = ( /obj/structure/pipes/standard/simple/hidden/supply/no_boom, -/turf/open/floor/almayer{ - icon_state = "sterile_green" - }, +/turf/open/floor/almayer/sterile_green, /area/almayer/medical/containment) -"aqT" = ( -/obj/structure/surface/table/almayer, -/obj/item/tool/hand_labeler{ - pixel_x = 7 - }, -/obj/item/storage/firstaid/fire{ - pixel_x = -6 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, -/area/almayer/engineering/engineering_workshop/hangar) "aqU" = ( /turf/closed/wall/almayer/reinforced, /area/almayer/command/airoom) @@ -4933,59 +2387,19 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "tcomms" - }, +/turf/open/floor/almayer/tcomms, /area/almayer/command/telecomms) -"aqW" = ( -/obj/structure/filingcabinet, -/obj/item/folder/yellow, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, -/area/almayer/engineering/engineering_workshop/hangar) "aqY" = ( /obj/structure/window/framed/almayer, /obj/structure/machinery/door/firedoor/border_only/almayer, /turf/open/floor/plating, /area/almayer/engineering/upper_engineering) +"aqZ" = ( +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/s_stern) "arb" = ( /turf/open/floor/plating/plating_catwalk, /area/almayer/medical/morgue) -"ard" = ( -/obj/structure/filingcabinet, -/obj/item/folder/yellow, -/obj/structure/machinery/power/apc/almayer{ - dir = 1 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, -/area/almayer/engineering/engineering_workshop/hangar) -"are" = ( -/obj/structure/machinery/computer/demo_sim{ - dir = 4; - pixel_x = -17; - pixel_y = 8 - }, -/obj/structure/machinery/computer/working_joe{ - dir = 4; - pixel_x = -17; - pixel_y = -8 - }, -/turf/open/floor/almayer, -/area/almayer/engineering/engineering_workshop/hangar) -"arf" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "SE-out"; - pixel_x = 1 - }, -/turf/open/floor/almayer{ - icon_state = "silvercorner" - }, -/area/almayer/hallways/aft_hallway) "arg" = ( /obj/structure/surface/table/almayer, /obj/item/paper_bin/uscm, @@ -4993,9 +2407,7 @@ pixel_x = 8; pixel_y = 32 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/command/telecomms) "arh" = ( /obj/structure/machinery/light{ @@ -5005,9 +2417,7 @@ cell_type = /obj/item/cell/hyper; dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/command/telecomms) "ari" = ( /obj/structure/surface/rack, @@ -5017,75 +2427,45 @@ pixel_y = 28 }, /obj/item/storage/pouch/tools, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/command/telecomms) "arj" = ( /obj/structure/surface/table/almayer, /obj/item/clipboard, /obj/item/device/radio/headset, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/command/telecomms) "ark" = ( /obj/structure/surface/table/almayer, /obj/item/device/flashlight/lamp, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/command/telecomms) "arl" = ( /obj/structure/closet/toolcloset, /obj/structure/machinery/firealarm{ pixel_y = 28 }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/command/telecomms) "arm" = ( -/turf/open/floor/almayer{ - dir = 5; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/northeast, /area/almayer/engineering/upper_engineering) -"arn" = ( -/obj/effect/projector{ - name = "Almayer_Up1"; - vector_x = -19; - vector_y = 98 - }, -/turf/open/floor/almayer{ - allow_construction = 0; - icon_state = "plate" - }, -/area/almayer/hallways/starboard_hallway) "arp" = ( /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/starboard_garden) "arq" = ( /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/west, /area/almayer/engineering/upper_engineering) "arr" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/north, /area/almayer/engineering/upper_engineering) "ars" = ( /obj/item/device/radio/intercom{ @@ -5093,107 +2473,60 @@ name = "General Listening Channel"; pixel_y = 28 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" +/obj/structure/disposalpipe/segment{ + dir = 4 }, +/turf/open/floor/almayer/orange/north, /area/almayer/engineering/upper_engineering) -"arw" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/structure/disposalpipe/junction{ - dir = 1 +"ary" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SE-out" }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" +/obj/structure/machinery/door_control{ + id = "OTStore"; + name = "Shutters"; + pixel_y = -24; + access_modified = 1; + req_one_access_txt = "35" }, -/area/almayer/engineering/upper_engineering) +/obj/structure/surface/rack, +/obj/item/reagent_container/glass/bucket/janibucket, +/turf/open/floor/almayer/orange, +/area/almayer/engineering/lower/workshop/hangar) "arz" = ( /obj/structure/closet/firecloset, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/engineering/upper_engineering) "arA" = ( /obj/structure/surface/table/almayer, /obj/item/storage/briefcase/inflatable, /obj/item/storage/briefcase/inflatable, /obj/item/tool/crowbar, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/engineering/upper_engineering) -"arC" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/structure/machinery/light{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" - }, -/area/almayer/engineering/engineering_workshop/hangar) -"arE" = ( -/obj/structure/pipes/vents/pump{ - dir = 4 - }, -/turf/open/floor/almayer, -/area/almayer/engineering/engineering_workshop/hangar) "arF" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/north, /area/almayer/command/cic) "arG" = ( /obj/structure/machinery/power/apc/almayer/hardened{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/north, /area/almayer/command/cic) "arH" = ( /obj/structure/largecrate/random/case/double, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, +/turf/open/floor/almayer/redfull, /area/almayer/engineering/upper_engineering) -"arJ" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/obj/structure/machinery/light, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "red" - }, -/area/almayer/hallways/aft_hallway) "arK" = ( /obj/structure/machinery/camera/autoname/almayer{ dir = 8; name = "ship-grade camera" }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/northeast, /area/almayer/engineering/upper_engineering) -"arO" = ( -/obj/effect/projector{ - name = "Almayer_Up2"; - vector_x = -1; - vector_y = 100 - }, -/turf/open/floor/almayer{ - allow_construction = 0 - }, -/area/almayer/hallways/starboard_hallway) "arP" = ( /obj/structure/sign/safety/hazard{ pixel_y = 32 @@ -5202,20 +2535,14 @@ pixel_x = 15; pixel_y = 32 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/north, /area/almayer/command/cic) "arR" = ( /obj/structure/machinery/status_display{ pixel_y = 30 }, /obj/structure/prop/almayer/computers/sensor_computer1, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/northeast, /area/almayer/command/cic) "arT" = ( /obj/structure/target{ @@ -5228,27 +2555,13 @@ /area/almayer/command/lifeboat) "arX" = ( /obj/structure/pipes/vents/pump/on, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/medical/chemistry) -"arZ" = ( -/obj/effect/decal/cleanable/blood/oil, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer, -/area/almayer/engineering/engineering_workshop/hangar) "asc" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/north, /area/almayer/command/cic) "ase" = ( -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/living/pilotbunks) "asf" = ( /obj/structure/sink{ @@ -5259,61 +2572,8 @@ /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/living/pilotbunks) -"asi" = ( -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 4 - }, -/obj/structure/transmitter{ - dir = 8; - name = "OT Telephone"; - phone_category = "Almayer"; - phone_id = "Ordnance Tech"; - pixel_x = 14 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" - }, -/area/almayer/engineering/engineering_workshop/hangar) -"asj" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 10 - }, -/obj/structure/sign/safety/restrictedarea{ - pixel_y = 32 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "silver" - }, -/area/almayer/hallways/aft_hallway) -"ask" = ( -/obj/structure/surface/table/almayer, -/turf/open/floor/almayer{ - icon_state = "orange" - }, -/area/almayer/engineering/engineering_workshop/hangar) -"asl" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, -/area/almayer/hallways/aft_hallway) "asm" = ( /obj/structure/stairs{ dir = 4 @@ -5323,9 +2583,7 @@ vector_x = 1; vector_y = -100 }, -/turf/open/floor/plating/almayer{ - allow_construction = 0 - }, +/turf/open/floor/plating/almayer/no_build, /area/almayer/stair_clone/upper) "asn" = ( /obj/structure/window/framed/almayer/white, @@ -5335,149 +2593,58 @@ /obj/structure/machinery/door/poddoor/almayer/biohazard/white, /turf/open/floor/plating, /area/almayer/medical/upper_medical) -"aso" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orangecorner" - }, -/area/almayer/engineering/engineering_workshop/hangar) -"asp" = ( -/obj/structure/machinery/firealarm{ - pixel_y = 28 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "blue" - }, -/area/almayer/hallways/aft_hallway) -"ast" = ( -/obj/structure/surface/table/almayer, -/turf/open/floor/almayer, -/area/almayer/engineering/engineering_workshop/hangar) -"asv" = ( -/obj/effect/decal/cleanable/blood/oil, -/obj/structure/machinery/light{ +"asr" = ( +/obj/structure/bed/chair/comfy/alpha{ dir = 8 }, -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer/plate, +/area/almayer/living/briefing) +"asu" = ( +/obj/structure/sign/safety/hazard{ + pixel_x = 32; + pixel_y = -8 }, -/area/almayer/engineering/engineering_workshop/hangar) +/obj/structure/closet/secure_closet/guncabinet/red/armory_shotgun, +/turf/open/floor/almayer/redfull, +/area/almayer/medical/upper_medical) "asw" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/west, /area/almayer/medical/upper_medical) -"asx" = ( -/obj/structure/stairs{ - icon_state = "ramptop" - }, -/obj/effect/projector{ - name = "Almayer_Down4"; - vector_x = 19; - vector_y = -104 - }, -/turf/open/floor/plating/almayer{ - allow_construction = 0 - }, -/area/almayer/hallways/aft_hallway) -"asy" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" - }, -/area/almayer/engineering/engineering_workshop/hangar) "asA" = ( /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/north2) -"asB" = ( -/obj/structure/machinery/light/small{ +"asE" = ( +/obj/structure/bed/chair/office/dark{ dir = 8 }, -/obj/structure/closet/bombcloset, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/engineering_workshop/hangar) -"asD" = ( -/obj/effect/step_trigger/clone_cleaner, -/obj/structure/machinery/door_control{ - id = "ARES StairsUpper"; - name = "ARES Core Access"; - pixel_x = -24; - pixel_y = 24; - req_one_access_txt = "90;91;92" - }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, -/area/almayer/command/airoom) -"asE" = ( -/turf/closed/wall/almayer/reinforced, -/area/almayer/engineering/engineering_workshop/hangar) -"asF" = ( -/obj/structure/machinery/door/airlock/almayer/secure/reinforced{ - access_modified = 1; - name = "\improper AI Reception"; - req_access = null; - req_one_access_txt = "91;92" - }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, -/area/almayer/command/airoom) -"asG" = ( -/obj/structure/surface/table/reinforced/almayer_B{ - climbable = 0; - indestructible = 1; - unacidable = 1; - unslashable = 1 - }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, -/area/almayer/command/airoom) +/turf/open/floor/almayer, +/area/almayer/hallways/lower/repair_bay) "asH" = ( /obj/structure/machinery/telecomms/bus/preset_three, -/turf/open/floor/almayer{ - icon_state = "tcomms" - }, +/turf/open/floor/almayer/tcomms, /area/almayer/command/telecomms) "asI" = ( /obj/structure/machinery/telecomms/bus/preset_two, -/turf/open/floor/almayer{ - icon_state = "tcomms" - }, +/turf/open/floor/almayer/tcomms, /area/almayer/command/telecomms) "asJ" = ( /obj/structure/machinery/telecomms/bus/preset_four, -/turf/open/floor/almayer{ - icon_state = "tcomms" - }, +/turf/open/floor/almayer/tcomms, /area/almayer/command/telecomms) "asK" = ( /obj/structure/machinery/telecomms/bus/preset_one, -/turf/open/floor/almayer{ - icon_state = "tcomms" - }, +/turf/open/floor/almayer/tcomms, /area/almayer/command/telecomms) "asL" = ( /obj/structure/machinery/telecomms/relay/preset/telecomms{ listening_level = 4 }, -/turf/open/floor/almayer{ - icon_state = "tcomms" - }, +/turf/open/floor/almayer/tcomms, /area/almayer/command/telecomms) "asM" = ( /obj/effect/step_trigger/teleporter_vector{ @@ -5490,56 +2657,19 @@ "asN" = ( /obj/structure/machinery/computer/crew, /obj/structure/machinery/light, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/southeast, /area/almayer/command/cic) -"asO" = ( -/obj/structure/machinery/door/poddoor/shutters/almayer{ - id = "laddernorthwest"; - name = "\improper North West Ladders Shutters" - }, -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 - }, -/obj/effect/step_trigger/clone_cleaner, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/starboard_hallway) -"asP" = ( -/obj/structure/machinery/door_control{ - id = "laddernorthwest"; - name = "North West Ladders Shutters"; - pixel_x = 25; - req_one_access_txt = "2;3;12;19"; - throw_range = 15 - }, -/obj/effect/step_trigger/clone_cleaner, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "greencorner" - }, -/area/almayer/hallways/starboard_hallway) "asQ" = ( /obj/structure/surface/rack, /obj/item/device/radio/marine, /obj/item/device/radio/marine, /obj/item/device/radio/marine, /obj/item/folded_tent/cmd, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, +/turf/open/floor/almayer/redfull, /area/almayer/command/cic) "asR" = ( -/turf/open/floor/almayer{ - icon_state = "orange" - }, +/turf/open/floor/almayer/orange, /area/almayer/command/cic) -"asS" = ( -/turf/open/floor/plating/plating_catwalk, -/area/almayer/living/starboard_garden) "asT" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/almayer, @@ -5548,27 +2678,11 @@ /obj/structure/morgue{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/medical/morgue) -"asW" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "blue" - }, -/area/almayer/hallways/aft_hallway) "asX" = ( /obj/structure/machinery/cm_vending/sorted/cargo_guns/squad_prep, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/charlie_delta_shared) "asY" = ( /obj/structure/stairs/perspective{ @@ -5584,9 +2698,7 @@ dir = 4; pixel_x = -17 }, -/turf/open/floor/almayer/no_build{ - icon_state = "plating" - }, +/turf/open/floor/almayer/no_build/plating, /area/almayer/command/airoom) "ata" = ( /obj/structure/machinery/light{ @@ -5610,95 +2722,26 @@ /turf/open/floor/plating/almayer, /area/almayer/medical/medical_science) "atc" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/east, /area/almayer/engineering/upper_engineering) -"atd" = ( -/obj/structure/surface/rack, -/obj/item/storage/box/sprays, -/obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/turf/open/floor/almayer{ - icon_state = "orange" - }, -/area/almayer/engineering/engineering_workshop/hangar) -"ate" = ( -/obj/structure/surface/rack, -/obj/item/reagent_container/glass/bucket/janibucket, -/turf/open/floor/almayer{ - icon_state = "orange" - }, -/area/almayer/engineering/engineering_workshop/hangar) "atf" = ( /obj/structure/surface/table/almayer, /obj/item/tool/pen, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/command/telecomms) "atg" = ( /obj/structure/bed/sofa/vert/grey/top, /turf/open/floor/almayer, /area/almayer/command/lifeboat) -"ath" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "SE-out" - }, -/obj/structure/machinery/door_control{ - id = "OTStore"; - name = "Shutters"; - pixel_y = -24 - }, -/obj/structure/surface/rack, -/obj/item/reagent_container/glass/bucket/janibucket, -/turf/open/floor/almayer{ - icon_state = "orange" - }, -/area/almayer/engineering/engineering_workshop/hangar) -"ati" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/turf/open/floor/almayer, -/area/almayer/engineering/engineering_workshop/hangar) -"atj" = ( -/obj/effect/projector{ - name = "Almayer_Down3"; - vector_x = 1; - vector_y = -102 - }, -/turf/open/floor/almayer{ - allow_construction = 0 - }, -/area/almayer/hallways/aft_hallway) "atk" = ( /obj/structure/machinery/door/airlock/almayer/secure/reinforced, -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 8 - }, /obj/structure/machinery/door/poddoor/almayer{ dir = 4; id = "tcomms_apc"; name = "\improper Telecommunications Power Storage" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/command/telecomms) -"atl" = ( -/obj/effect/projector{ - name = "Almayer_Down3"; - vector_x = 1; - vector_y = -102 - }, -/turf/open/floor/almayer{ - allow_construction = 0; - icon_state = "plate" - }, -/area/almayer/hallways/aft_hallway) "atm" = ( /turf/open/floor/plating/plating_catwalk, /area/almayer/command/telecomms) @@ -5709,9 +2752,7 @@ /area/almayer/engineering/upper_engineering) "ato" = ( /obj/structure/closet/secure_closet/staff_officer/armory/shotgun, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, +/turf/open/floor/almayer/redfull, /area/almayer/command/cic) "atp" = ( /obj/structure/stairs/perspective{ @@ -5731,10 +2772,7 @@ /area/almayer/lifeboat_pumps/north2) "ats" = ( /obj/structure/pipes/vents/pump/on, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/east, /area/almayer/engineering/upper_engineering) "att" = ( /obj/structure/surface/table/almayer, @@ -5743,138 +2781,62 @@ dir = 4 }, /obj/item/cell/high, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/engineering/upper_engineering) "atu" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/lifeboat_pumps/north2) "atv" = ( /obj/effect/decal/warning_stripes{ icon_state = "N" }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/almayer/engineering/upper_engineering) -"atw" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer, -/area/almayer/engineering/engineering_workshop/hangar) +"atx" = ( +/obj/structure/closet/secure_closet/guncabinet/red/cic_armory_shotgun, +/turf/open/floor/almayer/redfull, +/area/almayer/command/cic) "aty" = ( /obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/engineering/upper_engineering) "atz" = ( -/obj/item/tool/minihoe{ - pixel_x = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_s) -"atA" = ( -/obj/structure/machinery/door/airlock/almayer/maint/reinforced{ - access_modified = 1; - dir = 1; - name = "\improper Spare Bomb Suit"; - req_one_access = null; - req_one_access_txt = "35" - }, -/turf/open/floor/almayer, -/area/almayer/engineering/engineering_workshop/hangar) -"atC" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/aft_hallway) -"atD" = ( -/obj/structure/largecrate/random/case/small, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_s) -"atE" = ( -/obj/structure/machinery/door/poddoor/shutters/almayer{ - id = "OTStore"; - name = "\improper Secure Storage"; - unacidable = 1 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/engineering/engineering_workshop/hangar) -"atF" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/structure/machinery/door/poddoor/shutters/almayer{ - id = "OTStore"; - name = "\improper Secure Storage"; - unacidable = 1 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/engineering/engineering_workshop/hangar) -"atG" = ( -/obj/structure/bed/chair/comfy/beige{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/structure/sign/safety/escapepod{ + pixel_y = 32 }, -/area/almayer/hull/upper_hull/u_a_s) -"atI" = ( -/obj/structure/stairs{ - dir = 8; - icon_state = "ramptop" +/obj/structure/sign/safety/east{ + pixel_x = 15; + pixel_y = 32 }, -/obj/effect/projector{ - name = "Almayer_Down3"; - vector_x = 1; - vector_y = -102 +/turf/open/floor/almayer/green/north, +/area/almayer/hallways/upper/fore_hallway) +"atH" = ( +/turf/open/floor/almayer/plate, +/area/almayer/hallways/lower/starboard_midship_hallway) +"atJ" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_x = 1; + pixel_y = 1 }, -/turf/open/floor/plating/almayer{ - allow_construction = 0 +/obj/effect/decal/warning_stripes{ + icon_state = "SE-out"; + pixel_x = 1 }, -/area/almayer/hallways/aft_hallway) -"atJ" = ( -/obj/structure/machinery/light{ - dir = 1 +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 }, -/turf/open/floor/almayer, -/area/almayer/engineering/engineering_workshop/hangar) +/turf/open/floor/almayer/red/west, +/area/almayer/hallways/upper/port) "atK" = ( -/turf/open/floor/almayer{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/almayer/red/southwest, /area/almayer/command/lifeboat) -"atL" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/aft_hallway) "atM" = ( -/turf/open/floor/almayer{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/almayer/red/northwest, /area/almayer/command/lifeboat) "atN" = ( /obj/effect/decal/warning_stripes{ @@ -5888,16 +2850,10 @@ icon_state = "SE-out"; pixel_x = 1 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/almayer/command/cic) "atO" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/east, /area/almayer/command/cic) "atP" = ( /obj/structure/machinery/door/poddoor/shutters/almayer{ @@ -5908,10 +2864,14 @@ /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/command/cic) +"atS" = ( +/obj/structure/machinery/power/apc/almayer{ + dir = 1 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/stern) "atT" = ( /obj/structure/toilet{ dir = 1 @@ -5926,66 +2886,6 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/pilotbunks) -"atU" = ( -/obj/structure/machinery/status_display{ - pixel_y = 30 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "blue" - }, -/area/almayer/hallways/aft_hallway) -"atV" = ( -/obj/item/device/radio/intercom{ - freerange = 1; - name = "General Listening Channel"; - pixel_y = 28 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "blue" - }, -/area/almayer/hallways/aft_hallway) -"atY" = ( -/obj/structure/closet/emcloset, -/obj/item/clothing/mask/gas, -/obj/item/clothing/mask/gas, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/command/lifeboat) -"atZ" = ( -/obj/structure/machinery/door_control{ - id = "OTStore"; - name = "Shutters"; - pixel_y = 24 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "NE-out"; - pixel_y = 1 - }, -/turf/open/floor/almayer, -/area/almayer/engineering/engineering_workshop/hangar) -"aua" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, -/turf/open/floor/almayer, -/area/almayer/engineering/engineering_workshop/hangar) -"aub" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "NE-out"; - pixel_y = 1 - }, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "red" - }, -/area/almayer/lifeboat_pumps/north1) "auc" = ( /obj/effect/step_trigger/clone_cleaner, /obj/structure/machinery/door/poddoor/almayer/open{ @@ -5994,181 +2894,29 @@ name = "ARES Exterior Lockdown" }, /obj/effect/step_trigger/ares_alert/access_control, -/turf/open/floor/almayer/no_build{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/no_build/test_floor4, /area/almayer/command/airoom) -"aud" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer, -/area/almayer/engineering/engineering_workshop/hangar) -"aue" = ( -/obj/effect/projector{ - name = "Almayer_Up3"; - vector_x = -1; - vector_y = 102 - }, -/turf/open/floor/almayer{ - allow_construction = 0 - }, -/area/almayer/hallways/port_hallway) "auf" = ( /obj/structure/pipes/standard/simple/hidden/supply/no_boom, -/turf/closed/wall/almayer/white/hull, -/area/almayer/command/airoom) -"aug" = ( -/obj/structure/bed/chair/office/dark{ - dir = 8 - }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, +/turf/closed/wall/almayer/aicore/hull, /area/almayer/command/airoom) -"auh" = ( -/obj/structure/machinery/cm_vending/sorted/tech/tool_storage, -/obj/effect/decal/warning_stripes{ - icon_state = "W"; - layer = 2.5 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/engineering_workshop/hangar) "aui" = ( /obj/structure/machinery/telecomms/hub/preset, -/turf/open/floor/almayer{ - icon_state = "tcomms" - }, +/turf/open/floor/almayer/tcomms, /area/almayer/command/telecomms) "auj" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/cameras/almayer, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/briefing) -"auk" = ( -/obj/effect/projector{ - name = "Almayer_Up3"; - vector_x = -1; - vector_y = 102 - }, -/turf/open/floor/almayer{ - allow_construction = 0; - icon_state = "plate" - }, -/area/almayer/hallways/port_hallway) -"aul" = ( -/obj/structure/stairs{ - dir = 4 - }, -/obj/effect/projector{ - name = "Almayer_Up3"; - vector_x = -1; - vector_y = 102 - }, -/turf/open/floor/plating/almayer{ - allow_construction = 0 - }, -/area/almayer/hallways/port_hallway) "aum" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 2 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/living/briefing) -"aun" = ( -/obj/structure/stairs{ - dir = 4 - }, -/obj/structure/machinery/light{ - dir = 1 - }, -/obj/effect/projector{ - name = "Almayer_Up3"; - vector_x = -1; - vector_y = 102 - }, -/turf/open/floor/plating/almayer{ - allow_construction = 0 - }, -/area/almayer/hallways/port_hallway) -"auo" = ( -/obj/structure/surface/table/reinforced/almayer_B, -/obj/structure/machinery/computer/med_data/laptop{ - dir = 8 - }, -/obj/item/device/flashlight/lamp{ - pixel_x = -5; - pixel_y = 16 - }, -/obj/structure/sign/safety/terminal{ - pixel_x = 8; - pixel_y = -32 - }, -/obj/structure/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_s) -"aup" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/obj/structure/closet/secure_closet/freezer/industry, -/obj/item/reagent_container/glass/beaker/silver, -/obj/structure/machinery/light{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/engineering_workshop/hangar) -"aur" = ( -/obj/structure/reagent_dispensers/oxygentank{ - anchored = 1 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/engineering/engineering_workshop/hangar) -"aus" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/turf/open/floor/almayer, -/area/almayer/engineering/engineering_workshop/hangar) -"aut" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/engineering/engine_core) "auu" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -6176,42 +2924,6 @@ /obj/structure/pipes/standard/manifold/hidden/supply, /turf/open/floor/almayer, /area/almayer/engineering/upper_engineering) -"auv" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/starboard_hallway) -"auw" = ( -/obj/structure/reagent_dispensers/pacidtank{ - anchored = 1 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/engineering/engineering_workshop/hangar) -"aux" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/obj/structure/pipes/vents/scrubber{ - dir = 4 - }, -/turf/open/floor/almayer, -/area/almayer/engineering/engineering_workshop/hangar) "auy" = ( /obj/effect/decal/warning_stripes{ icon_state = "E"; @@ -6227,88 +2939,22 @@ /turf/open/floor/almayer, /area/almayer/engineering/upper_engineering) "auB" = ( -/turf/open/floor/almayer{ - icon_state = "orangecorner" - }, +/turf/open/floor/almayer/orangecorner, /area/almayer/engineering/upper_engineering) -"auC" = ( -/obj/structure/reagent_dispensers/fueltank/gas/hydrogen{ - anchored = 1 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/engineering/engineering_workshop/hangar) -"auD" = ( -/obj/structure/bed/chair{ - dir = 8 - }, -/obj/structure/machinery/light/small{ - dir = 4 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_s) -"auE" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer, -/area/almayer/engineering/engineering_workshop/hangar) -"auF" = ( -/obj/structure/pipes/standard/manifold/hidden/supply, -/turf/open/floor/almayer, -/area/almayer/engineering/engineering_workshop/hangar) -"auG" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "silver" - }, -/area/almayer/hallways/aft_hallway) "auH" = ( /obj/structure/machinery/door_control{ id = "tcomms_apc"; name = "Telecommuncation Power"; pixel_x = -25 }, -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 - }, /obj/structure/machinery/door/airlock/almayer/secure/reinforced{ access_modified = 1; dir = 2; name = "Telecommunications"; req_access_txt = "6" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/command/telecomms) -"auI" = ( -/obj/structure/reagent_dispensers/acidtank, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/engineering/engineering_workshop/hangar) "auK" = ( /obj/structure/stairs/perspective{ icon_state = "p_stair_sn_full_cap" @@ -6328,39 +2974,12 @@ pixel_x = 3; pixel_y = 3 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/engineering/upper_engineering) -"auM" = ( -/obj/structure/reagent_dispensers/ammoniatank{ - anchored = 1 - }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/engineering/engineering_workshop/hangar) -"auN" = ( -/obj/structure/reagent_dispensers/fueltank{ - anchored = 1 - }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/engineering/engineering_workshop/hangar) "auO" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/southeast, /area/almayer/engineering/upper_engineering) -"auP" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/turf/open/floor/almayer, -/area/almayer/engineering/engineering_workshop/hangar) "auQ" = ( /obj/structure/window/framed/almayer, /turf/open/floor/plating, @@ -6371,34 +2990,23 @@ /obj/item/tool/warning_cone, /obj/structure/surface/table/almayer, /obj/item/device/lightreplacer, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/engineering/upper_engineering) "auT" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orangecorner" - }, +/turf/open/floor/almayer/orangecorner/north, /area/almayer/command/cic) "auU" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/almayer/engineering/upper_engineering) "auV" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/almayer/engineering/upper_engineering) "auW" = ( /turf/closed/wall/almayer/reinforced, @@ -6408,51 +3016,23 @@ dir = 4 }, /obj/structure/machinery/door/airlock/almayer/maint, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/shipboard/port_point_defense) -"auY" = ( -/obj/structure/reagent_dispensers/watertank{ - anchored = 1 - }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/engineering/engineering_workshop/hangar) "auZ" = ( /obj/structure/machinery/light, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/pilotbunks) "ava" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/obj/structure/machinery/light{ - unacidable = 1; - unslashable = 1 - }, -/turf/open/floor/almayer, -/area/almayer/engineering/engineering_workshop/hangar) -"avb" = ( -/obj/structure/reagent_dispensers/fueltank/gas/methane{ - anchored = 1 - }, -/obj/structure/sign/safety/fire_haz{ - pixel_x = 8; - pixel_y = -32 +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 5 }, -/turf/open/floor/almayer{ - icon_state = "cargo" +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" }, -/area/almayer/engineering/engineering_workshop/hangar) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/upper/midship_hallway) "avc" = ( /obj/structure/stairs/perspective{ dir = 4; @@ -6470,77 +3050,23 @@ }, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/north1) -"ave" = ( -/obj/item/reagent_container/glass/bucket/janibucket, -/obj/structure/machinery/light{ - unacidable = 1; - unslashable = 1 - }, -/obj/item/reagent_container/glass/bucket/janibucket{ - pixel_y = 11 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "W"; - layer = 2.5 - }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/engineering/engineering_workshop/hangar) -"avi" = ( -/obj/structure/reagent_dispensers/fueltank/custom, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/engineering/engineering_workshop/hangar) -"avj" = ( -/turf/open/floor/almayer{ - icon_state = "blue" - }, -/area/almayer/hallways/aft_hallway) -"avk" = ( -/obj/structure/machinery/door/airlock/almayer/maint/reinforced{ - access_modified = 1; - dir = 1; - req_one_access = null; - req_one_access_txt = "35" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/engineering/engineering_workshop/hangar) -"avl" = ( -/turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_s) -"avm" = ( -/obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "blue" - }, -/area/almayer/hallways/aft_hallway) -"avn" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "green" - }, -/area/almayer/hallways/aft_hallway) "avo" = ( /turf/closed/wall/almayer/outer, /area/almayer/powered/agent) -"avr" = ( -/obj/structure/bed/sofa/south/grey/left{ - pixel_y = 12 +"avp" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/machinery/door/poddoor/almayer{ + id = "s_umbilical"; + name = "\improper Umbillical Airlock"; + unacidable = 1 }, -/turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_s) +/turf/open/floor/almayer/plate, +/area/almayer/hallways/lower/port_umbilical) "avs" = ( /turf/closed/wall/biodome, /area/almayer/powered/agent) "avu" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/almayer/red/north, /area/almayer/command/lifeboat) "avv" = ( /obj/structure/machinery/light{ @@ -6548,10 +3074,7 @@ }, /obj/structure/surface/table/almayer, /obj/item/tool/hand_labeler, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/almayer/red/east, /area/almayer/squads/alpha) "avw" = ( /obj/structure/window/framed/almayer, @@ -6563,44 +3086,22 @@ }, /turf/open/floor/grass, /area/almayer/living/starboard_garden) -"avz" = ( -/obj/structure/machinery/light, -/obj/structure/machinery/vending/security, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/shipboard/brig/general_equipment) "avB" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "redcorner" - }, +/turf/open/floor/almayer/redcorner/west, /area/almayer/shipboard/navigation) "avC" = ( -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/powered/agent) -"avD" = ( -/obj/effect/landmark/crap_item, -/turf/open/floor/almayer, -/area/almayer/hallways/aft_hallway) "avF" = ( /obj/effect/decal/warning_stripes{ icon_state = "NW-out"; pixel_x = -1; pixel_y = 1 }, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/northwest, /area/almayer/medical/containment) "avG" = ( -/turf/open/floor/almayer{ - dir = 6; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/southeast, /area/almayer/medical/containment) "avH" = ( /obj/effect/decal/warning_stripes{ @@ -6610,10 +3111,7 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/north, /area/almayer/medical/containment) "avJ" = ( /obj/structure/machinery/door/airlock/almayer/secure/reinforced{ @@ -6621,120 +3119,37 @@ name = "\improper Evacuation Airlock SU-5"; req_access = null }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/powered) -"avK" = ( -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, -/area/almayer/command/airoom) -"avL" = ( -/obj/structure/machinery/door_control{ - id = "ARES StairsUpper"; - name = "ARES Core Access"; - pixel_x = -10; - pixel_y = -24; - req_one_access_txt = "91;92" - }, -/obj/structure/machinery/door_control{ - id = "ARES StairsLock"; - name = "ARES Exterior Lockdown"; - pixel_y = -24; - req_one_access_txt = "91;92" - }, -/obj/structure/surface/table/reinforced/almayer_B{ - climbable = 0; - indestructible = 1; - unacidable = 1; - unslashable = 1 - }, -/obj/structure/transmitter/rotary{ - name = "AI Reception Telephone"; - phone_category = "ARES"; - phone_color = "blue"; - phone_id = "AI Reception" - }, -/obj/structure/machinery/door_control{ - id = "ARES Emergency"; - name = "ARES Emergency Lockdown"; - pixel_x = 10; - pixel_y = -24; - req_one_access_txt = "91;92" - }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, -/area/almayer/command/airoom) -"avM" = ( -/obj/structure/machinery/computer/cameras/almayer/ares{ - dir = 8; - pixel_x = 17; - pixel_y = 6 - }, -/obj/structure/surface/table/reinforced/almayer_B{ - climbable = 0; - indestructible = 1; - unacidable = 1; - unslashable = 1 - }, -/obj/item/paper_bin/uscm{ - pixel_y = 6 - }, -/obj/item/tool/pen, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, -/area/almayer/command/airoom) "avN" = ( /obj/structure/machinery/telecomms/processor/preset_two, -/turf/open/floor/almayer{ - icon_state = "tcomms" - }, +/turf/open/floor/almayer/tcomms, /area/almayer/command/telecomms) "avO" = ( /obj/structure/machinery/telecomms/processor/preset_three, -/turf/open/floor/almayer{ - icon_state = "tcomms" - }, +/turf/open/floor/almayer/tcomms, /area/almayer/command/telecomms) "avP" = ( /obj/structure/machinery/telecomms/processor/preset_four, -/turf/open/floor/almayer{ - icon_state = "tcomms" - }, +/turf/open/floor/almayer/tcomms, /area/almayer/command/telecomms) "avQ" = ( /obj/structure/machinery/telecomms/processor/preset_one, -/turf/open/floor/almayer{ - icon_state = "tcomms" - }, +/turf/open/floor/almayer/tcomms, /area/almayer/command/telecomms) "avR" = ( /obj/structure/machinery/telecomms/relay/preset/telecomms{ listening_level = 6 }, -/turf/open/floor/almayer{ - icon_state = "tcomms" - }, +/turf/open/floor/almayer/tcomms, /area/almayer/command/telecomms) "avS" = ( /obj/structure/bed/chair/office/dark{ dir = 8; layer = 3.25 }, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/almayer/red/southwest, /area/almayer/command/cic) -"avT" = ( -/obj/structure/bed/chair/office/dark{ - dir = 1 - }, -/turf/open/floor/almayer, -/area/almayer/engineering/engineering_workshop/hangar) "avU" = ( /obj/effect/landmark/start/crew_chief, /turf/open/floor/plating/plating_catwalk, @@ -6762,19 +3177,8 @@ pixel_x = -7; pixel_y = 4 }, -/turf/open/floor/almayer{ - icon_state = "sterile_green_corner" - }, +/turf/open/floor/almayer/sterile_green_corner, /area/almayer/medical/lower_medical_medbay) -"avX" = ( -/obj/structure/disposalpipe/junction{ - dir = 4 - }, -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 1 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/starboard_hallway) "avY" = ( /turf/open/floor/plating/plating_catwalk, /area/almayer/command/cic) @@ -6786,19 +3190,8 @@ /turf/open/floor/grass, /area/almayer/living/starboard_garden) "awa" = ( -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/almayer/powered/agent) -"awb" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/starboard_hallway) "awd" = ( /turf/closed/wall/almayer/reinforced, /area/almayer/living/pilotbunks) @@ -6809,39 +3202,26 @@ /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/starboard_garden) "awj" = ( /obj/structure/machinery/photocopier, /obj/structure/sign/safety/terminal{ pixel_x = -17 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/west, /area/almayer/medical/upper_medical) "awk" = ( -/turf/open/floor/almayer{ - icon_state = "silver" - }, +/turf/open/floor/almayer/silver, /area/almayer/command/cic) "awm" = ( -/turf/open/floor/almayer{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/almayer/red/northwest, /area/almayer/command/cic) "awn" = ( /obj/effect/decal/warning_stripes{ icon_state = "N" }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/almayer/medical/upper_medical) "awp" = ( /obj/structure/machinery/door/poddoor/shutters/almayer{ @@ -6855,23 +3235,16 @@ /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/medical/upper_medical) "awq" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/pilotbunks) "awt" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "silvercorner" - }, +/turf/open/floor/almayer/silvercorner/east, /area/almayer/command/cic) "awu" = ( /obj/effect/decal/warning_stripes{ @@ -6882,31 +3255,14 @@ icon_state = "W"; pixel_x = -1 }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, +/turf/open/floor/almayer/aicore/glowing/no_build, /area/almayer/command/airoom) "awv" = ( /obj/structure/machinery/computer/telecomms/monitor, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/command/telecomms) -"aww" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/obj/effect/step_trigger/clone_cleaner, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "green" - }, -/area/almayer/hallways/aft_hallway) "awx" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/east, /area/almayer/command/telecomms) "awy" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -6925,9 +3281,7 @@ pixel_x = 8; pixel_y = 32 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/command/cic) "awB" = ( /obj/structure/machinery/door/airlock/almayer/maint{ @@ -6938,9 +3292,7 @@ req_one_access_txt = "2;7" }, /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/engineering/upper_engineering) "awC" = ( /turf/closed/wall/almayer, @@ -6948,13 +3300,11 @@ "awD" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/structure/machinery/prop/almayer/CICmap, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/command/cic) "awE" = ( -/turf/closed/wall/almayer, -/area/almayer/command/corporateliason) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/port_midship_hallway) "awF" = ( /turf/closed/wall/almayer/reinforced, /area/almayer/living/numbertwobunks) @@ -6963,31 +3313,14 @@ dir = 8 }, /obj/structure/closet/toolcloset, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, +/turf/open/floor/almayer/redfull, /area/almayer/command/cic) "awH" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/structure/machinery/faxmachine/uscm/command, /obj/item/device/megaphone, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/command/cic) -"awJ" = ( -/obj/structure/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_m_s) -"awM" = ( -/turf/open/floor/almayer{ - icon_state = "mono" - }, -/area/almayer/medical/upper_medical) "awQ" = ( /obj/structure/surface/table/almayer, /obj/item/cell/high{ @@ -7016,15 +3349,11 @@ /obj/structure/machinery/power/apc/almayer{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "sterile_green" - }, +/turf/open/floor/almayer/sterile_green, /area/almayer/medical/hydroponics) "awR" = ( /obj/structure/pipes/standard/manifold/hidden/supply/no_boom, -/turf/open/floor/almayer{ - icon_state = "sterile_green" - }, +/turf/open/floor/almayer/sterile_green, /area/almayer/medical/containment) "awS" = ( /obj/structure/window/framed/almayer, @@ -7032,6 +3361,9 @@ id = "officers_mess"; name = "\improper Privacy Shutters" }, +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 + }, /turf/open/floor/plating, /area/almayer/living/captain_mess) "awW" = ( @@ -7042,13 +3374,7 @@ layer = 3.1; pixel_y = 13 }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/living/pilotbunks) -"awY" = ( -/obj/effect/landmark/start/pilot, -/turf/open/floor/plating/plating_catwalk, +/turf/open/floor/almayer/cargo, /area/almayer/living/pilotbunks) "awZ" = ( /obj/structure/surface/table/reinforced/almayer_B, @@ -7056,14 +3382,10 @@ pixel_x = 8; pixel_y = 12 }, -/turf/open/floor/almayer{ - icon_state = "bluefull" - }, +/turf/open/floor/almayer/bluefull, /area/almayer/living/pilotbunks) "axa" = ( -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/light_grey_single_wide_up_to_down, /area/almayer/powered/agent) "axc" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ @@ -7076,19 +3398,13 @@ /turf/open/floor/almayer, /area/almayer/living/port_emb) "axe" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orangecorner" - }, +/turf/open/floor/almayer/orangecorner/west, /area/almayer/engineering/upper_engineering) "axk" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "redcorner" - }, +/turf/open/floor/almayer/redcorner/west, /area/almayer/shipboard/weapon_room) "axl" = ( /obj/structure/machinery/door_control{ @@ -7098,18 +3414,13 @@ pixel_x = -27; req_one_access_txt = "4;28" }, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/southwest, /area/almayer/medical/upper_medical) "axm" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/medical/upper_medical) "axn" = ( /obj/structure/sign/safety/rewire{ @@ -7126,59 +3437,33 @@ pixel_x = -6; pixel_y = 8 }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/medical/hydroponics) "axo" = ( /obj/structure/window/framed/almayer, /turf/open/floor/plating, /area/almayer/command/telecomms) "axp" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/almayer/blue/north, /area/almayer/command/cic) -"axs" = ( -/obj/effect/step_trigger/clone_cleaner, -/obj/effect/decal/warning_stripes{ - icon_state = "NW-out"; - layer = 2.5 - }, -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/aft_hallway) "axu" = ( /obj/structure/machinery/computer/telecomms/server, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/command/telecomms) "axw" = ( /obj/structure/machinery/camera/autoname/almayer{ dir = 4; name = "ship-grade camera" }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/lifeboat_pumps/north2) "axx" = ( /obj/structure/machinery/photocopier, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/engineering/upper_engineering) "axy" = ( /obj/structure/filingcabinet, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/engineering/upper_engineering) "axA" = ( /obj/structure/surface/table/almayer, @@ -7191,24 +3476,18 @@ dir = 8; name = "ship-grade camera" }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/engineering/upper_engineering) "axB" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/engineering/upper_engineering) "axD" = ( /obj/structure/closet/secure_closet/engineering_welding, /obj/structure/machinery/firealarm{ pixel_y = 28 }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/engineering/upper_engineering) "axE" = ( /obj/structure/closet/toolcloset, @@ -7216,9 +3495,7 @@ pixel_x = 8; pixel_y = 32 }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/engineering/upper_engineering) "axI" = ( /obj/structure/machinery/light{ @@ -7228,9 +3505,7 @@ /obj/item/storage/backpack/industrial, /obj/item/storage/backpack/industrial, /obj/item/tool/shovel/snow, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/engineering/upper_engineering) "axL" = ( /obj/structure/surface/table/almayer, @@ -7242,50 +3517,46 @@ name = "General Listening Channel"; pixel_y = 28 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/engineering/upper_engineering) "axM" = ( /obj/structure/surface/table/almayer, /obj/item/tool/hand_labeler, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/engineering/upper_engineering) "axN" = ( /obj/structure/machinery/cm_vending/sorted/tech/electronics_storage, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/engineering/upper_engineering) "axO" = ( /obj/structure/machinery/cm_vending/sorted/tech/tool_storage, /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/engineering/upper_engineering) "axQ" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/engineering/upper_engineering) +"axR" = ( +/obj/structure/machinery/shower, +/obj/structure/window/reinforced/tinted{ + dir = 8 + }, +/obj/structure/machinery/door/window/tinted{ + dir = 2 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/engineering/upper_engineering/port) "axV" = ( /obj/structure/machinery/telecomms/server/presets/command, -/turf/open/floor/almayer{ - icon_state = "tcomms" - }, +/turf/open/floor/almayer/tcomms, /area/almayer/command/telecomms) "axW" = ( /obj/structure/machinery/telecomms/server/presets/security, -/turf/open/floor/almayer{ - icon_state = "tcomms" - }, +/turf/open/floor/almayer/tcomms, /area/almayer/command/telecomms) "axX" = ( /obj/structure/machinery/telecomms/server/presets/squads, @@ -7296,21 +3567,23 @@ pixel_x = 8; pixel_y = -32 }, -/turf/open/floor/almayer{ - icon_state = "tcomms" - }, +/turf/open/floor/almayer/tcomms, /area/almayer/command/telecomms) -"aya" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orangecorner" +"axY" = ( +/obj/structure/machinery/door/poddoor/shutters/almayer{ + id = "laddernorthwest"; + name = "\improper North West Ladders Shutters" }, +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/effect/step_trigger/clone_cleaner, +/turf/open/floor/almayer/test_floor4, +/area/almayer/hallways/lower/starboard_fore_hallway) +"aya" = ( +/turf/open/floor/almayer/orangecorner/east, /area/almayer/engineering/upper_engineering) "ayb" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/lifeboat_pumps/north2) "ayc" = ( /obj/structure/platform{ @@ -7323,59 +3596,19 @@ dir = 5; layer = 3.51 }, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/almayer/red/northwest, /area/almayer/lifeboat_pumps/north2) -"ayd" = ( -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 5 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orangecorner" - }, -/area/almayer/engineering/upper_engineering) "aye" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/structure/bed/chair, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/north, /area/almayer/engineering/upper_engineering) -"ayh" = ( -/obj/structure/machinery/power/smes/buildable, -/obj/structure/sign/safety/hazard{ - pixel_x = 15; - pixel_y = -32 - }, -/obj/structure/sign/safety/high_voltage{ - pixel_y = -32 - }, -/turf/open/floor/almayer{ - icon_state = "orange" - }, -/area/almayer/hull/upper_hull/u_f_p) "ayi" = ( /obj/structure/machinery/recharger, /obj/structure/surface/table/almayer, /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/command/lifeboat) "ayj" = ( /obj/effect/landmark/start/cargo, @@ -7391,26 +3624,19 @@ /obj/structure/platform{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/almayer/red/north, /area/almayer/lifeboat_pumps/north2) "ayo" = ( /obj/structure/machinery/door/airlock/almayer/secure/reinforced{ name = "\improper Evacuation Airlock PU-2"; req_access = null }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/powered) "ayq" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/structure/machinery/prop/almayer/CICmap, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, +/turf/open/floor/almayer/redfull, /area/almayer/shipboard/starboard_missiles) "ayr" = ( /obj/structure/surface/table/reinforced/almayer_B, @@ -7420,30 +3646,18 @@ /obj/item/storage/belt/medical/full, /obj/structure/machinery/computer/working_joe{ dir = 8; - pixel_x = 17 + pixel_x = 17; + pixel_y = 8 }, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/structure/machinery/computer/cameras/almayer/ares{ + dir = 8; + pixel_x = 17; + pixel_y = -6 }, +/turf/open/floor/almayer/plate, /area/almayer/command/cic) "ays" = ( -/turf/open/floor/almayer{ - icon_state = "silvercorner" - }, -/area/almayer/command/cic) -"ayt" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer, -/obj/structure/machinery/door/poddoor/almayer/open{ - dir = 4; - id = "CIC Lockdown"; - name = "\improper Combat Information Center Blast Door" - }, -/obj/structure/machinery/door/airlock/almayer/command/reinforced{ - name = "\improper Combat Information Center" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/silvercorner, /area/almayer/command/cic) "ayu" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ @@ -7462,67 +3676,25 @@ /obj/structure/machinery/camera/autoname/almayer{ name = "ship-grade camera" }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/northeast, /area/almayer/command/cic) "ayw" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "redcorner" - }, +/turf/open/floor/almayer/redcorner/north, /area/almayer/shipboard/navigation) "ayz" = ( /obj/structure/bed/chair/office/dark{ dir = 8; layer = 3.25 }, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/southwest, /area/almayer/command/cic) "ayD" = ( /obj/structure/disposalpipe/trunk{ dir = 1 }, /obj/structure/machinery/disposal, -/turf/open/floor/almayer{ - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side, /area/almayer/medical/lower_medical_medbay) -"ayE" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 - }, -/obj/structure/disposalpipe/segment, -/obj/structure/machinery/door/poddoor/shutters/almayer{ - id = "laddersouthwest"; - name = "\improper South West Ladders Shutters" - }, -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/effect/step_trigger/clone_cleaner, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/port_hallway) -"ayG" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/obj/structure/sign/safety/distribution_pipes{ - pixel_x = -17 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/aft_hallway) -"ayH" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/aft_hallway) "ayI" = ( /obj/structure/surface/rack, /obj/item/storage/toolbox/mechanical{ @@ -7531,9 +3703,7 @@ /obj/item/clothing/glasses/welding{ pixel_y = 6 }, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, +/turf/open/floor/almayer/redfull, /area/almayer/command/cic) "ayK" = ( /obj/structure/pipes/standard/simple/hidden/supply, @@ -7561,56 +3731,23 @@ /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/east, /area/almayer/command/cic) -"ayP" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hull/upper_hull/u_f_s) "ayQ" = ( /obj/structure/platform_decoration{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/almayer/red/north, /area/almayer/lifeboat_pumps/north2) "ayR" = ( /obj/structure/platform_decoration{ dir = 8 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/almayer/red/north, /area/almayer/lifeboat_pumps/north2) -"ayT" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "blue" - }, -/area/almayer/hallways/aft_hallway) -"ayU" = ( -/obj/structure/machinery/power/apc/almayer{ - dir = 1 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "blue" - }, -/area/almayer/hallways/aft_hallway) "ayV" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/north, /area/almayer/engineering/upper_engineering) "ayW" = ( /obj/structure/machinery/camera/autoname/almayer{ @@ -7621,9 +3758,7 @@ pixel_x = 8; pixel_y = -32 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/medical/morgue) "ayX" = ( /obj/structure/surface/table/almayer, @@ -7631,9 +3766,7 @@ /obj/structure/sign/catclock{ pixel_y = 32 }, -/turf/open/floor/almayer{ - icon_state = "sterile_green" - }, +/turf/open/floor/almayer/sterile_green, /area/almayer/medical/medical_science) "ayZ" = ( /obj/structure/machinery/light{ @@ -7645,58 +3778,48 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 10 }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/medical/medical_science) -"azb" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 +"aza" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "cargo_arrow" +/obj/structure/machinery/door/poddoor/shutters/almayer{ + id = "laddernorthwest"; + name = "\improper North West Ladders Shutters" }, -/area/almayer/hallways/aft_hallway) +/obj/effect/step_trigger/clone_cleaner, +/turf/open/floor/almayer/test_floor4, +/area/almayer/hallways/lower/starboard_fore_hallway) "azc" = ( /obj/structure/machinery/computer/telecomms/traffic, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/command/telecomms) "azd" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orangecorner" - }, +/turf/open/floor/almayer/orangecorner/east, /area/almayer/command/telecomms) "aze" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orangecorner" - }, +/turf/open/floor/almayer/orangecorner/north, /area/almayer/engineering/upper_engineering) +"azg" = ( +/obj/structure/largecrate/random/barrel/yellow, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/p_bow) "azh" = ( /obj/structure/pipes/vents/pump/on, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/north, /area/almayer/engineering/upper_engineering) "azi" = ( /obj/effect/spawner/random/tool, /obj/structure/surface/rack, /obj/item/cell/high, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/engineering/upper_engineering) "azk" = ( /obj/structure/platform{ @@ -7709,51 +3832,34 @@ dir = 9; layer = 3.51 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/almayer/red/northeast, /area/almayer/lifeboat_pumps/north2) "azl" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "bluecorner" - }, +/turf/open/floor/almayer/bluecorner/east, /area/almayer/living/offices/flight) -"azn" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/upper_engineering) "azo" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, +/area/almayer/engineering/upper_engineering) +"azp" = ( +/obj/structure/closet/secure_closet/guncabinet/red/armory_shotgun, +/turf/open/floor/almayer/redfull, /area/almayer/engineering/upper_engineering) "azq" = ( /obj/effect/decal/warning_stripes{ icon_state = "SE-out"; pixel_x = 1 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/north, /area/almayer/engineering/upper_engineering) "azr" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/north, /area/almayer/engineering/upper_engineering) "azs" = ( /obj/structure/surface/table/almayer, @@ -7768,10 +3874,7 @@ /obj/effect/decal/warning_stripes{ icon_state = "SW-out" }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/north, /area/almayer/engineering/upper_engineering) "azw" = ( /obj/structure/machinery/light{ @@ -7785,34 +3888,15 @@ vector_x = -1; vector_y = 102 }, -/turf/open/floor/plating/almayer{ - allow_construction = 0 - }, +/turf/open/floor/plating/almayer/no_build, /area/almayer/stair_clone) "azA" = ( -/turf/open/floor/almayer{ - icon_state = "red" - }, +/turf/open/floor/almayer/red, /area/almayer/shipboard/navigation) -"azB" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 - }, -/obj/structure/machinery/door/poddoor/shutters/almayer{ - id = "laddersouthwest"; - name = "\improper South West Ladders Shutters" - }, -/obj/effect/step_trigger/clone_cleaner, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/port_hallway) "azC" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/device/flashlight/lamp/green, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/command/cichallway) "azD" = ( /obj/structure/stairs{ @@ -7824,47 +3908,8 @@ vector_x = -1; vector_y = 102 }, -/turf/open/floor/plating/almayer{ - allow_construction = 0 - }, +/turf/open/floor/plating/almayer/no_build, /area/almayer/stair_clone) -"azE" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/obj/structure/disposalpipe/segment, -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/effect/step_trigger/clone_cleaner, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "greencorner" - }, -/area/almayer/hallways/port_hallway) -"azG" = ( -/obj/structure/machinery/door/poddoor/shutters/almayer{ - id = "laddersouthwest"; - name = "\improper South West Ladders Shutters" - }, -/obj/effect/step_trigger/clone_cleaner, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/port_hallway) -"azH" = ( -/obj/structure/machinery/door/airlock/almayer/maint, -/obj/effect/step_trigger/clone_cleaner, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hull/upper_hull/u_m_p) -"azI" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "greencorner" - }, -/area/almayer/hallways/port_hallway) "azJ" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/door_control{ @@ -7880,31 +3925,12 @@ }, /turf/open/floor/almayer, /area/almayer/command/cichallway) -"azS" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/effect/step_trigger/clone_cleaner, -/obj/effect/decal/warning_stripes{ - icon_state = "W"; - layer = 2.5 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "greencorner" - }, -/area/almayer/hallways/port_hallway) -"azT" = ( -/obj/effect/step_trigger/clone_cleaner, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_hallway) "azU" = ( /obj/structure/machinery/camera/autoname/almayer{ dir = 8; name = "ship-grade camera" }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/lifeboat_pumps/north2) "azV" = ( /obj/structure/surface/table/reinforced/almayer_B, @@ -7916,9 +3942,7 @@ name = "Normandy Remote Control Console"; shuttleId = "dropship_normandy" }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/command/cic) "azW" = ( /obj/structure/machinery/door/window/westright{ @@ -7936,41 +3960,13 @@ name = "Alamo Remote Control Console"; shuttleId = "dropship_alamo" }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/command/cic) -"azY" = ( -/obj/effect/step_trigger/clone_cleaner, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/aft_hallway) "azZ" = ( /obj/structure/machinery/keycard_auth, /obj/structure/surface/table/reinforced/black, /turf/open/floor/almayer, /area/almayer/command/cic) -"aAa" = ( -/obj/effect/step_trigger/clone_cleaner, -/obj/effect/decal/warning_stripes{ - icon_state = "SW-out" - }, -/obj/structure/sign/safety/stairs{ - pixel_x = -17 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "green" - }, -/area/almayer/hallways/aft_hallway) -"aAb" = ( -/obj/structure/pipes/binary/pump/on{ - dir = 4 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, -/area/almayer/engineering/lower_engineering) "aAd" = ( /obj/structure/disposalpipe/segment{ dir = 4; @@ -7981,16 +3977,6 @@ }, /turf/open/floor/almayer, /area/almayer/command/cic) -"aAe" = ( -/obj/structure/prop/invuln/overhead_pipe{ - dir = 4; - pixel_x = -12; - pixel_y = 13 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_s) "aAf" = ( /obj/structure/disposalpipe/junction{ dir = 4; @@ -8012,32 +3998,15 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "silvercorner" - }, +/turf/open/floor/almayer/silvercorner/east, /area/almayer/command/cic) -"aAl" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/machinery/door/firedoor/border_only/almayer, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/structure/machinery/door/airlock/almayer/command/reinforced{ - id_tag = "cic_exterior"; - name = "\improper Combat Information Center" - }, -/obj/structure/machinery/door/poddoor/almayer/open{ - dir = 4; - id = "CIC Lockdown"; - name = "\improper Combat Information Center Blast Door" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +"aAn" = ( +/obj/structure/sign/safety/escapepod{ + pixel_x = 8; + pixel_y = -32 }, -/area/almayer/command/cic) +/turf/open/floor/almayer, +/area/almayer/lifeboat_pumps/north1) "aAq" = ( /obj/structure/disposalpipe/segment{ dir = 4; @@ -8057,34 +4026,14 @@ /obj/item/storage/box/botanydisk, /obj/item/storage/box/botanydisk, /obj/item/storage/box/botanydisk, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/medical/hydroponics) -"aAv" = ( -/obj/effect/projector{ - name = "Almayer_Up4"; - vector_x = -19; - vector_y = 104 - }, -/turf/open/floor/almayer{ - allow_construction = 0; - icon_state = "plate" - }, -/area/almayer/hallways/port_hallway) "aAy" = ( /obj/structure/machinery/door/airlock/almayer/secure/reinforced, -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 8 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/command/telecomms) "aAA" = ( -/turf/open/floor/almayer/uscm/directional{ - dir = 4 - }, +/turf/open/floor/almayer/uscm/directional/east, /area/almayer/command/cic) "aAB" = ( /obj/structure/surface/table/reinforced/almayer_B, @@ -8093,9 +4042,7 @@ pixel_y = 8 }, /obj/structure/machinery/door/window/westright, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/command/cic) "aAC" = ( /obj/structure/bed/chair/office/dark{ @@ -8105,17 +4052,13 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 6 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/command/cic) "aAE" = ( /obj/structure/pipes/vents/scrubber{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/command/cic) "aAF" = ( /obj/item/device/radio/intercom{ @@ -8133,12 +4076,7 @@ req_access_txt = "25"; req_one_access = null }, -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/medical/morgue) "aAK" = ( /obj/structure/surface/table/almayer, @@ -8157,9 +4095,7 @@ pixel_x = -1; pixel_y = 11 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/offices/flight) "aAP" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ @@ -8184,26 +4120,14 @@ icon_state = "W"; pixel_x = -1 }, -/turf/open/floor/almayer{ - icon_state = "sterile_green" - }, +/turf/open/floor/almayer/sterile_green, /area/almayer/medical/containment) -"aAW" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 8 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "silver" +"aAU" = ( +/obj/structure/machinery/light{ + dir = 4 }, -/area/almayer/hallways/aft_hallway) +/turf/open/floor/almayer/orange/east, +/area/almayer/hallways/lower/starboard_midship_hallway) "aAZ" = ( /obj/structure/bed/chair/office/light{ dir = 8 @@ -8211,22 +4135,8 @@ /obj/structure/pipes/vents/pump/no_boom{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/command/telecomms) -"aBa" = ( -/obj/structure/prop/invuln/overhead_pipe{ - dir = 4; - pixel_y = 13 - }, -/obj/structure/prop/invuln/overhead_pipe{ - dir = 4; - pixel_x = -14; - pixel_y = 13 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_a_s) "aBb" = ( /obj/structure/disposalpipe/segment{ dir = 4; @@ -8235,9 +4145,7 @@ /obj/structure/pipes/standard/simple/hidden/supply/no_boom{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/command/telecomms) "aBc" = ( /obj/structure/disposalpipe/segment{ @@ -8246,15 +4154,10 @@ /obj/structure/pipes/standard/simple/hidden/supply/no_boom{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/command/telecomms) "aBd" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/north, /area/almayer/medical/morgue) "aBe" = ( /obj/structure/machinery/door/poddoor/shutters/almayer{ @@ -8285,31 +4188,8 @@ /obj/structure/pipes/standard/simple/hidden/supply/no_boom{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/command/telecomms) -"aBg" = ( -/obj/structure/prop/invuln/overhead_pipe{ - dir = 4; - pixel_y = 13 - }, -/obj/structure/prop/invuln/overhead_pipe{ - dir = 4; - pixel_y = 13 - }, -/obj/structure/prop/invuln/overhead_pipe{ - dir = 4; - pixel_x = 12; - pixel_y = 13 - }, -/obj/structure/sign/safety/bathunisex{ - pixel_x = 32 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_s) "aBh" = ( /obj/structure/disposalpipe/junction, /obj/structure/pipes/standard/manifold/hidden/supply{ @@ -8321,15 +4201,12 @@ /obj/item/folder/yellow, /obj/item/folder/yellow, /obj/item/tool/pen, -/obj/structure/machinery/door/firedoor/border_only/almayer, /obj/structure/surface/table/almayer, /obj/structure/window/reinforced{ dir = 8; health = 80 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/engineering/upper_engineering) "aBk" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -8338,12 +4215,11 @@ /turf/open/floor/plating/plating_catwalk, /area/almayer/engineering/upper_engineering) "aBl" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 1 +/obj/structure/disposalpipe/segment{ + dir = 4 }, /turf/open/floor/almayer, /area/almayer/engineering/upper_engineering) @@ -8354,9 +4230,7 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/engineering/upper_engineering) "aBn" = ( /obj/structure/disposalpipe/junction{ @@ -8387,11 +4261,6 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/engineering/upper_engineering) -"aBq" = ( -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/aft_hallway) "aBr" = ( /obj/structure/ladder{ height = 2; @@ -8403,9 +4272,7 @@ /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "orange" - }, +/turf/open/floor/almayer/orange, /area/almayer/engineering/upper_engineering) "aBt" = ( /obj/structure/surface/table/almayer, @@ -8417,18 +4284,13 @@ /turf/open/floor/almayer, /area/almayer/living/offices/flight) "aBu" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/almayer/red/east, /area/almayer/command/lifeboat) "aBw" = ( /obj/structure/surface/table/almayer, /obj/effect/landmark/map_item, /obj/item/storage/box/cups, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/offices/flight) "aBx" = ( /obj/structure/bed/chair/office/light{ @@ -8440,46 +4302,28 @@ /obj/structure/surface/table/almayer, /obj/item/folder/black_random, /obj/item/folder/black_random, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/offices/flight) "aBA" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/almayer/red/east, /area/almayer/command/lifeboat) -"aBC" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/repair_bay) "aBD" = ( /obj/structure/closet/basketball, /obj/structure/sign/safety/maint{ pixel_x = 8; pixel_y = 32 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/basketball) "aBE" = ( /obj/structure/bed/sofa/vert/grey, /turf/open/floor/almayer, /area/almayer/command/lifeboat) "aBG" = ( -/turf/open/floor/almayer/uscm/directional{ - dir = 8; - icon_state = "logo_c" - }, +/turf/open/floor/almayer/uscm/directional/logo_c/west, /area/almayer/command/lifeboat) "aBH" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ @@ -8504,9 +4348,7 @@ dir = 1; req_one_access = list(36) }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/living/synthcloset) "aBR" = ( /obj/structure/surface/table/reinforced/almayer_B, @@ -8519,10 +4361,7 @@ /obj/structure/flora/pottedplant{ icon_state = "pottedplant_10" }, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/southwest, /area/almayer/command/cic) "aBW" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -8531,16 +4370,10 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "silvercorner" - }, +/turf/open/floor/almayer/silvercorner/west, /area/almayer/command/cichallway) "aBX" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/east, /area/almayer/command/cichallway) "aBZ" = ( /obj/structure/surface/table/reinforced/almayer_B, @@ -8558,18 +4391,14 @@ layer = 2.99; pixel_y = 26 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/command/cic) "aCa" = ( /obj/structure/machinery/door/window/westright{ dir = 2 }, /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/command/cic) "aCb" = ( /obj/structure/surface/table/reinforced/almayer_B, @@ -8581,21 +4410,16 @@ dir = 8; pixel_y = 4 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/command/cic) "aCd" = ( /obj/structure/bed/chair/office/dark{ dir = 4 }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, +/turf/open/floor/almayer/aicore/no_build, /area/almayer/command/airoom) "aCf" = ( /obj/structure/window/framed/almayer/hull/hijack_bustable, -/obj/structure/machinery/door/firedoor/border_only/almayer, /obj/structure/machinery/door/poddoor/almayer/open{ dir = 4; id = "CIC Lockdown"; @@ -8616,22 +4440,8 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "silvercorner" - }, +/turf/open/floor/almayer/silvercorner, /area/almayer/command/cic) -"aCl" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 9 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "silver" - }, -/area/almayer/hallways/aft_hallway) "aCo" = ( /obj/structure/surface/table/almayer, /obj/item/paper_bin/uscm, @@ -8640,39 +4450,36 @@ pixel_x = 8; pixel_y = 32 }, -/turf/open/floor/almayer{ - icon_state = "sterile_green_corner" - }, +/turf/open/floor/almayer/sterile_green_corner, /area/almayer/medical/morgue) "aCp" = ( /obj/structure/machinery/power/apc/almayer{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/north, /area/almayer/medical/upper_medical) "aCt" = ( /obj/structure/bed/sofa/south/white/right, -/turf/open/floor/almayer{ - icon_state = "sterile_green" - }, +/turf/open/floor/almayer/sterile_green, /area/almayer/medical/medical_science) -"aCv" = ( -/obj/structure/window/framed/almayer, -/obj/structure/machinery/door/poddoor/shutters/almayer/cl/quarter/window, -/turf/open/floor/plating, -/area/almayer/command/corporateliason) +"aCu" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/obj/structure/machinery/light, +/turf/open/floor/almayer/green/east, +/area/almayer/hallways/lower/port_midship_hallway) "aCw" = ( /obj/structure/window/framed/almayer/white, -/obj/structure/machinery/door/firedoor/border_only/almayer, /turf/open/floor/plating, /area/almayer/medical/morgue) +"aCA" = ( +/obj/structure/largecrate/random/barrel/white, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/p_bow) "aCC" = ( -/turf/open/floor/almayer{ - icon_state = "sterile_green" - }, +/turf/open/floor/almayer/sterile_green, /area/almayer/medical/medical_science) "aCD" = ( /obj/structure/pipes/vents/pump, @@ -8680,10 +4487,7 @@ dir = 4; pixel_x = -16 }, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/southwest, /area/almayer/medical/medical_science) "aCR" = ( /obj/structure/machinery/door_control{ @@ -8700,35 +4504,25 @@ icon_state = "W"; pixel_x = -1 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/north, /area/almayer/medical/containment) "aCX" = ( -/obj/effect/step_trigger/clone_cleaner, -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/aft_hallway) +/turf/open/floor/almayer/plate, +/area/almayer/hallways/lower/starboard_midship_hallway) "aCZ" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/northwest, /area/almayer/command/computerlab) "aDa" = ( /obj/structure/surface/table/almayer, /obj/item/device/radio, /obj/item/device/radio, /obj/item/device/radio, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/command/telecomms) "aDb" = ( /obj/structure/machinery/camera/autoname/almayer{ @@ -8738,73 +4532,31 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "orangecorner" - }, +/turf/open/floor/almayer/orangecorner, /area/almayer/command/telecomms) -"aDc" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/turf/open/floor/almayer{ - icon_state = "red" - }, -/area/almayer/command/lifeboat) "aDe" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orangecorner" - }, +/turf/open/floor/almayer/orangecorner/west, /area/almayer/engineering/upper_engineering) -"aDg" = ( -/obj/structure/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_s) "aDh" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/structure/disposalpipe/segment, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/engineering/upper_engineering) "aDi" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/door/window/westright, -/obj/structure/machinery/door/firedoor/border_only/almayer, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/engineering/upper_engineering) "aDj" = ( /obj/structure/bed/chair/office/light{ dir = 8 }, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/southwest, /area/almayer/engineering/upper_engineering) -"aDk" = ( -/obj/structure/machinery/firealarm{ - pixel_y = 28 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "green" - }, -/area/almayer/hallways/aft_hallway) "aDm" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor/almayer{ - icon_state = "orange" - }, +/turf/open/floor/almayer/orange, /area/almayer/engineering/upper_engineering) "aDn" = ( /obj/structure/disposalpipe/segment{ @@ -8814,29 +4566,15 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 5 }, -/turf/open/floor/almayer{ - icon_state = "orangecorner" - }, +/turf/open/floor/almayer/orangecorner, /area/almayer/engineering/upper_engineering) "aDo" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, /obj/structure/pipes/standard/manifold/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "orange" - }, +/turf/open/floor/almayer/orange, /area/almayer/engineering/upper_engineering) -"aDp" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "NE-out"; - pixel_x = 1 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "silvercorner" - }, -/area/almayer/hallways/aft_hallway) "aDr" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -8844,9 +4582,7 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "orange" - }, +/turf/open/floor/almayer/orange, /area/almayer/engineering/upper_engineering) "aDs" = ( /obj/structure/disposalpipe/segment{ @@ -8855,38 +4591,22 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/obj/structure/machinery/door/firedoor/border_only/almayer, /obj/structure/sign/safety/ladder{ pixel_x = 8; pixel_y = -32 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/orange, /area/almayer/engineering/upper_engineering) +"aDt" = ( +/obj/structure/machinery/cm_vending/clothing/military_police_warden, +/turf/open/floor/wood/ship, +/area/almayer/shipboard/brig/warden_office) "aDv" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/command/cic) -"aDx" = ( -/obj/structure/machinery/alarm/almayer{ - dir = 1 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "orange" - }, -/area/almayer/hallways/stern_hallway) -"aDz" = ( -/obj/structure/platform_decoration, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_s) "aDB" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -8899,9 +4619,7 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "orange" - }, +/turf/open/floor/almayer/orange, /area/almayer/engineering/upper_engineering) "aDC" = ( /obj/structure/disposalpipe/segment{ @@ -8914,9 +4632,7 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "orange" - }, +/turf/open/floor/almayer/orange, /area/almayer/engineering/upper_engineering) "aDD" = ( /obj/structure/disposalpipe/junction{ @@ -8929,10 +4645,7 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 10 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orangecorner" - }, +/turf/open/floor/almayer/orangecorner/west, /area/almayer/engineering/upper_engineering) "aDE" = ( /obj/structure/disposalpipe/segment{ @@ -8941,19 +4654,11 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/engineering/upper_engineering) -"aDF" = ( -/obj/structure/platform, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_s) "aDH" = ( /obj/structure/bed/chair/office/light{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/engineering/upper_engineering) "aDK" = ( /obj/effect/decal/warning_stripes{ @@ -8967,21 +4672,22 @@ dir = 4; pixel_x = 24 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/east, /area/almayer/command/cic) "aDO" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/almayer/red/west, /area/almayer/command/lifeboat) "aDQ" = ( /obj/structure/window/framed/almayer, /turf/open/floor/plating, /area/almayer/command/lifeboat) +"aDS" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/turf/open/floor/almayer/red, +/area/almayer/hallways/upper/port) "aDU" = ( /obj/structure/surface/rack, /obj/item/tool/minihoe{ @@ -9000,132 +4706,94 @@ pixel_y = -2 }, /obj/item/tool/wirecutters/clippers, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "green" - }, +/turf/open/floor/almayer/green/southwest, /area/almayer/living/grunt_rnr) "aDX" = ( /obj/structure/surface/table/almayer, -/obj/structure/machinery/computer/cameras/containment{ - dir = 4 - }, /obj/structure/sign/safety/terminal{ pixel_x = 8; pixel_y = 32 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/command/lifeboat) -"aDZ" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ +/obj/structure/machinery/computer/cameras/almayer/ares{ dir = 4 }, -/turf/open/floor/almayer, -/area/almayer/hallways/stern_hallway) +/turf/open/floor/almayer/plate, +/area/almayer/command/lifeboat) "aEe" = ( /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 2 }, /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/medical/upper_medical) "aEf" = ( -/obj/structure/disposalpipe/junction{ - dir = 4; - icon_state = "pipe-j2" +/obj/structure/sign/safety/hazard{ + pixel_y = 32 }, -/obj/structure/pipes/standard/manifold/hidden/supply, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/aft_hallway) -"aEg" = ( -/turf/open/floor/almayer{ - icon_state = "redfull" +/obj/structure/sign/safety/airlock{ + pixel_x = 15; + pixel_y = 32 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + pixel_y = 1 }, +/obj/structure/machinery/power/apc/almayer{ + dir = 4 + }, +/turf/open/floor/almayer/plate, +/area/almayer/hallways/lower/starboard_umbilical) +"aEg" = ( +/turf/open/floor/almayer/redfull, /area/almayer/command/lifeboat) "aEi" = ( -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/medical/morgue) "aEj" = ( /obj/structure/surface/table/almayer, /obj/item/clothing/head/helmet/marine/pilot, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, +/turf/open/floor/almayer/redfull, /area/almayer/living/offices/flight) -"aEk" = ( -/obj/structure/surface/table/almayer, -/obj/structure/machinery/computer/secure_data{ - dir = 4; - pixel_y = 17 - }, -/obj/structure/machinery/computer/cameras/almayer_network{ - dir = 4 - }, -/obj/structure/machinery/computer/card{ - dir = 4; - pixel_y = -16 - }, -/obj/structure/machinery/light{ - dir = 8 - }, -/obj/structure/sign/safety/terminal{ - pixel_x = -17; - pixel_y = 7 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/shipboard/brig/main_office) "aEm" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/working_joe{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/command/lifeboat) -"aEp" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +"aEo" = ( +/obj/structure/closet/emcloset{ + pixel_x = 8 + }, +/turf/open/floor/almayer/orange/north, +/area/almayer/engineering/lower) +"aEr" = ( +/obj/structure/largecrate/random/barrel/yellow, +/obj/effect/decal/warning_stripes{ + icon_state = "SE-out" }, -/area/almayer/hallways/stern_hallway) +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_a_p) "aEA" = ( /obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "silver" - }, +/turf/open/floor/almayer/silver, /area/almayer/command/cic) "aEB" = ( /obj/structure/machinery/status_display{ pixel_y = -30 }, -/turf/open/floor/almayer{ - icon_state = "silver" - }, +/turf/open/floor/almayer/silver, /area/almayer/command/cic) "aEC" = ( /obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/command/cic) "aED" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22"; pixel_y = 8 }, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/southeast, /area/almayer/command/cic) "aEG" = ( /obj/structure/bed/chair{ @@ -9134,40 +4802,8 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/southeast, /area/almayer/command/cic) -"aEI" = ( -/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ - pixel_y = 25 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "green" - }, -/area/almayer/hallways/aft_hallway) -"aEJ" = ( -/obj/effect/step_trigger/clone_cleaner, -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, -/obj/structure/machinery/alarm/almayer{ - dir = 1 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/aft_hallway) -"aEK" = ( -/obj/structure/machinery/status_display{ - pixel_y = 30 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "blue" - }, -/area/almayer/hallways/aft_hallway) "aEM" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/structure/machinery/computer/emails, @@ -9178,9 +4814,7 @@ dir = 4; layer = 3.25 }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/medical/morgue) "aEO" = ( /obj/structure/surface/table/almayer, @@ -9190,16 +4824,11 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/east, /area/almayer/medical/morgue) "aEQ" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/lifeboat_pumps/north1) "aES" = ( /turf/closed/wall/almayer, @@ -9207,21 +4836,9 @@ "aET" = ( /turf/closed/wall/almayer, /area/almayer/living/captain_mess) -"aEV" = ( -/turf/open/floor/almayer{ - dir = 5; - icon_state = "red" - }, -/area/almayer/hallways/aft_hallway) "aEW" = ( /turf/closed/wall/almayer, /area/almayer/living/numbertwobunks) -"aEX" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "bluecorner" - }, -/area/almayer/hallways/aft_hallway) "aEZ" = ( /obj/structure/surface/table/almayer, /obj/item/storage/box/gloves{ @@ -9240,24 +4857,28 @@ pixel_x = -6; pixel_y = 8 }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/medical/medical_science) "aFa" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/almayer{ - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side, /area/almayer/medical/containment) +"aFe" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/obj/structure/sign/safety/life_support{ + pixel_x = 8; + pixel_y = 32 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/engineering/lower) "aFf" = ( /obj/item/reagent_container/glass/beaker/bluespace, /obj/structure/machinery/chem_dispenser/research, -/turf/open/floor/almayer{ - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side, /area/almayer/medical/medical_science) "aFg" = ( /obj/structure/surface/table/reinforced/almayer_B, @@ -9273,43 +4894,21 @@ "aFh" = ( /obj/structure/surface/table/almayer, /obj/item/folder/black, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/command/telecomms) "aFi" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/plating/plating_catwalk, /area/almayer/command/telecomms) -"aFj" = ( -/obj/structure/machinery/power/apc/almayer{ - dir = 1 - }, -/obj/structure/flora/pottedplant{ - icon_state = "pottedplant_21" - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/living/numbertwobunks) "aFl" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 - }, -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/engineering/upper_engineering) "aFm" = ( /obj/structure/surface/table/almayer, /obj/item/shard, /obj/item/tool/extinguisher, /obj/item/stock_parts/scanning_module, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/engineering/upper_engineering) "aFn" = ( /obj/structure/machinery/disposal, @@ -9323,64 +4922,22 @@ pixel_x = 15; pixel_y = -32 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/engineering/upper_engineering) -"aFo" = ( -/obj/structure/closet/secure_closet/personal/cabinet{ - req_access = null - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/living/numbertwobunks) -"aFp" = ( -/obj/structure/machinery/light/small{ - dir = 1 - }, -/obj/structure/closet/toolcloset, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "orange" - }, -/area/almayer/hull/upper_hull/u_f_p) -"aFq" = ( -/obj/structure/surface/table/almayer, -/obj/structure/machinery/computer/station_alert, -/obj/structure/sign/safety/maint{ - pixel_x = 32 - }, -/obj/structure/sign/safety/terminal{ - pixel_x = 8; - pixel_y = 32 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "orange" - }, -/area/almayer/hull/upper_hull/u_f_p) "aFr" = ( /obj/structure/machinery/light, /obj/structure/reagent_dispensers/watertank, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/engineering/upper_engineering) "aFt" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/west, /area/almayer/engineering/upper_engineering) "aFu" = ( /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/engineering/upper_engineering) "aFv" = ( /obj/structure/surface/table/almayer, @@ -9391,72 +4948,51 @@ dir = 1; name = "ship-grade camera" }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/engineering/upper_engineering) "aFw" = ( /obj/structure/surface/table/almayer, /obj/item/storage/toolbox/mechanical, /obj/item/device/analyzer, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/engineering/upper_engineering) "aFy" = ( /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/engineering/upper_engineering) "aFz" = ( /obj/structure/surface/table/almayer, /obj/item/clothing/gloves/yellow, /obj/item/device/lightreplacer, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/engineering/upper_engineering) "aFA" = ( /obj/structure/closet/toolcloset, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo/southwest, /area/almayer/engineering/upper_engineering) "aFB" = ( /obj/structure/closet/toolcloset, /obj/structure/machinery/light, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo/southwest, /area/almayer/engineering/upper_engineering) "aFD" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/west, /area/almayer/engineering/upper_engineering) -"aFF" = ( -/obj/structure/machinery/light{ - dir = 4 - }, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "red" +"aFG" = ( +/obj/structure/machinery/door/poddoor/shutters/almayer/open{ + id = "vehicle1door"; + name = "Vehicle Bay One" }, -/area/almayer/hallways/aft_hallway) +/turf/open/floor/almayer/plate, +/area/almayer/hallways/lower/vehiclehangar) "aFI" = ( /obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/engineering/upper_engineering) "aFJ" = ( /obj/structure/platform{ @@ -9469,42 +5005,13 @@ dir = 5; layer = 3.51 }, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/almayer/red/northwest, /area/almayer/lifeboat_pumps/north1) -"aFN" = ( -/obj/structure/machinery/door/poddoor/almayer/open{ - id = "Brig Lockdown Shutters"; - name = "\improper Brig Lockdown Shutter" - }, -/obj/structure/machinery/door/airlock/almayer/maint{ - access_modified = 1; - dir = 2; - req_one_access = list(2,34,30) - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hull/upper_hull/u_f_s) -"aFV" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 1 - }, -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/stern_hallway) -"aFW" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/stern_hallway) +"aGa" = ( +/obj/structure/surface/rack, +/obj/effect/spawner/random/toolbox, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/p_bow) "aGb" = ( /obj/structure/ladder{ height = 2; @@ -9514,56 +5021,39 @@ pixel_x = 23; pixel_y = 32 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/command/cichallway) -"aGc" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 2 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "green" - }, -/area/almayer/hallways/port_hallway) -"aGd" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "greencorner" - }, -/area/almayer/hallways/aft_hallway) "aGg" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/north, /area/almayer/medical/operating_room_four) -"aGi" = ( -/obj/structure/closet/secure_closet/guncabinet/red/cic_armory_mk1_rifle_ap, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, -/area/almayer/command/cic) "aGj" = ( /obj/structure/machinery/door/poddoor/almayer/open{ dir = 2; id = "CIC Lockdown"; name = "\improper Combat Information Center Blast Door" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/command/cichallway) +"aGk" = ( +/obj/structure/machinery/door_control{ + id = "ARES Operations Left"; + name = "ARES Operations Shutter"; + pixel_x = -24; + pixel_y = -8; + req_one_access_txt = "90;91;92" + }, +/turf/open/floor/almayer/aicore/no_build/ai_silver/west, +/area/almayer/command/airoom) +"aGm" = ( +/obj/structure/largecrate/random/case/double, +/turf/open/floor/almayer/plate, +/area/almayer/maint/upper/u_m_p) "aGn" = ( /obj/structure/barricade/handrail, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/gym) "aGp" = ( /obj/structure/surface/table/reinforced/almayer_B, @@ -9579,172 +5069,106 @@ }, /obj/item/device/flashlight/lamp, /obj/item/clothing/glasses/hud/health, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/command/cic) "aGq" = ( -/turf/open/floor/almayer{ - dir = 10; - icon_state = "blue" - }, +/turf/open/floor/almayer/blue/southwest, /area/almayer/command/cic) "aGr" = ( /turf/open/floor/almayer, /area/almayer/living/bridgebunks) -"aGt" = ( -/turf/open/floor/almayer, -/area/almayer/command/corporateliason) +"aGs" = ( +/obj/structure/machinery/portable_atmospherics/hydroponics, +/obj/item/seeds/goldappleseed, +/obj/structure/machinery/alarm/almayer{ + dir = 1 + }, +/turf/open/floor/wood/ship, +/area/almayer/command/corporateliaison) "aGv" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 1 }, /obj/structure/disposalpipe/segment, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/east, /area/almayer/command/cichallway) "aGz" = ( /obj/structure/window/framed/almayer, /obj/structure/curtain/open/shower{ name = "cryo curtain" }, +/obj/structure/machinery/door/firedoor/border_only/almayer, /turf/open/floor/plating, /area/almayer/engineering/port_atmos) -"aGC" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" +"aGA" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_y = 1 }, -/area/almayer/hallways/stern_hallway) -"aGD" = ( -/turf/open/floor/almayer{ - dir = 9; - icon_state = "red" +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + pixel_y = 1 }, -/area/almayer/hallways/stern_hallway) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/upper/starboard) "aGH" = ( /obj/structure/machinery/computer/ordercomp, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/command/cic) "aGN" = ( /turf/open/floor/almayer, /area/almayer/command/computerlab) -"aGO" = ( -/obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "red" - }, -/area/almayer/hallways/aft_hallway) "aGP" = ( /obj/effect/decal/warning_stripes{ icon_state = "NW-out"; pixel_y = 1 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/almayer/red/northeast, /area/almayer/lifeboat_pumps/north1) "aGQ" = ( /obj/effect/decal/warning_stripes{ icon_state = "NE-out"; pixel_y = 1 }, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/almayer/red/northwest, /area/almayer/lifeboat_pumps/north1) -"aGR" = ( -/obj/effect/step_trigger/clone_cleaner, -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/obj/structure/machinery/status_display{ - pixel_x = 32 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" - }, -/area/almayer/hallways/aft_hallway) "aGS" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "bluecorner" - }, +/turf/open/floor/almayer/bluecorner/west, /area/almayer/living/basketball) "aGV" = ( /obj/structure/bed/chair/office/dark{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/numbertwobunks) "aGW" = ( -/turf/open/floor/almayer{ - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side, /area/almayer/medical/morgue) "aGX" = ( /obj/structure/machinery/camera/autoname/almayer{ dir = 1; name = "ship-grade camera" }, -/turf/open/floor/almayer{ - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side, /area/almayer/medical/morgue) "aGY" = ( -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/numbertwobunks) "aGZ" = ( -/turf/open/floor/almayer{ - icon_state = "bluefull" - }, +/turf/open/floor/almayer/bluefull, /area/almayer/living/numbertwobunks) "aHa" = ( /obj/structure/surface/table/almayer, /obj/item/clipboard, /obj/item/tool/hand_labeler, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "sterile_green_corner" - }, +/turf/open/floor/almayer/sterile_green_corner/east, /area/almayer/medical/morgue) "aHe" = ( /turf/closed/wall/almayer, /area/almayer/command/lifeboat) -"aHk" = ( -/obj/structure/machinery/light{ - dir = 8 - }, -/obj/structure/sink{ - pixel_y = 16 - }, -/obj/structure/mirror{ - pixel_y = 21 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, -/area/almayer/living/numbertwobunks) "aHl" = ( /obj/structure/machinery/portable_atmospherics/canister/air, /turf/open/floor/engine, @@ -9757,16 +5181,6 @@ /obj/structure/window/reinforced/tinted/frosted, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/numbertwobunks) -"aHo" = ( -/obj/structure/machinery/computer/working_joe{ - dir = 4; - pixel_x = -17 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" - }, -/area/almayer/hull/upper_hull/u_f_p) "aHq" = ( /turf/closed/wall/almayer, /area/almayer/command/computerlab) @@ -9775,9 +5189,7 @@ /obj/structure/disposalpipe/trunk{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/command/telecomms) "aHs" = ( /obj/structure/disposalpipe/segment{ @@ -9786,19 +5198,6 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/command/telecomms) -"aHt" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 9 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "orange" - }, -/area/almayer/engineering/upper_engineering) "aHu" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/effect/decal/warning_stripes{ @@ -9814,11 +5213,13 @@ name = "\improper Engineering Storage"; no_panel = 1; req_one_access = null; - req_one_access_txt = "2;7" + req_one_access_txt = "2;7"; + unacidable = 1 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +/obj/structure/machinery/door/poddoor/shutters/almayer/uniform_vendors/antitheft{ + id = "engie_store" }, +/turf/open/floor/almayer/test_floor4, /area/almayer/engineering/upper_engineering) "aHv" = ( /obj/effect/decal/warning_stripes{ @@ -9834,11 +5235,13 @@ name = "\improper Engineering Storage"; no_panel = 1; req_one_access = null; - req_one_access_txt = "2;7" + req_one_access_txt = "2;7"; + unacidable = 1 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +/obj/structure/machinery/door/poddoor/shutters/almayer/uniform_vendors/antitheft{ + id = "engie_store" }, +/turf/open/floor/almayer/test_floor4, /area/almayer/engineering/upper_engineering) "aHw" = ( /obj/structure/machinery/door/airlock/almayer/engineering{ @@ -9849,36 +5252,18 @@ /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/engineering/upper_engineering) -"aHB" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" - }, -/area/almayer/hull/upper_hull/u_f_p) "aHK" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22"; pixel_y = 8 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/command/cic) "aHM" = ( -/turf/open/floor/almayer{ - icon_state = "silver" - }, +/turf/open/floor/almayer/silver, /area/almayer/engineering/port_atmos) -"aHQ" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" - }, -/area/almayer/hallways/stern_hallway) "aHR" = ( /obj/effect/decal/warning_stripes{ icon_state = "E"; @@ -9887,10 +5272,7 @@ /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/almayer/command/cic) "aHS" = ( /obj/structure/pipes/unary/outlet_injector{ @@ -9899,20 +5281,11 @@ }, /turf/open/floor/engine, /area/almayer/engineering/airmix) -"aHT" = ( -/obj/structure/bed/chair/wood/normal, -/obj/item/bedsheet/brown, -/obj/item/toy/plush/farwa, -/turf/open/floor/wood/ship, -/area/almayer/shipboard/brig/cells) "aHU" = ( /obj/structure/platform{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/almayer/red/north, /area/almayer/lifeboat_pumps/north1) "aHX" = ( /obj/effect/decal/warning_stripes{ @@ -9921,18 +5294,14 @@ /obj/structure/machinery/door/airlock/almayer/generic{ name = "\improper Bathroom" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/living/numbertwobunks) "aHY" = ( /obj/structure/machinery/firealarm{ dir = 4; pixel_x = 24 }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/shipboard/starboard_missiles) "aHZ" = ( /obj/structure/disposalpipe/segment{ @@ -9940,31 +5309,18 @@ }, /turf/open/floor/almayer, /area/almayer/shipboard/starboard_missiles) -"aIa" = ( -/obj/structure/machinery/power/terminal, +"aId" = ( /turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_p) -"aIb" = ( -/obj/structure/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" - }, -/area/almayer/hull/upper_hull/u_f_p) -"aIe" = ( -/turf/open/floor/almayer{ - dir = 5; - icon_state = "red" - }, -/area/almayer/hallways/stern_hallway) +/area/almayer/engineering/lower/workshop/hangar) "aIf" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, /turf/open/floor/almayer, /area/almayer/command/cic) +"aIh" = ( +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/stern) "aIl" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/supply{ @@ -9973,14 +5329,10 @@ /obj/structure/sign/safety/distribution_pipes{ pixel_x = 32 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/east, /area/almayer/command/cichallway) "aIo" = ( /obj/structure/window/framed/almayer/white, -/obj/structure/machinery/door/firedoor/border_only/almayer, /obj/structure/machinery/door/poddoor/shutters/almayer/open{ dir = 8; id = "researchlockdownext_windoor"; @@ -10001,19 +5353,13 @@ /obj/structure/platform_decoration{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/almayer/red/north, /area/almayer/lifeboat_pumps/north1) "aIv" = ( /obj/structure/platform_decoration{ dir = 8 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/almayer/red/north, /area/almayer/lifeboat_pumps/north1) "aIw" = ( /obj/structure/platform{ @@ -10026,21 +5372,21 @@ dir = 9; layer = 3.51 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/almayer/red/northeast, /area/almayer/lifeboat_pumps/north1) "aIx" = ( /obj/structure/flora/bush/ausbushes/ppflowers, /turf/open/floor/grass, /area/almayer/living/starboard_garden) +"aIy" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer/orange/east, +/area/almayer/hallways/lower/starboard_umbilical) "aIB" = ( /obj/structure/flora/bush/ausbushes/var3/fullgrass, /turf/open/floor/grass, /area/almayer/living/starboard_garden) "aIC" = ( -/obj/structure/surface/table/almayer, /obj/effect/decal/warning_stripes{ icon_state = "S" }, @@ -10057,17 +5403,14 @@ /obj/item/reagent_container/glass/beaker/large{ pixel_x = -6 }, -/turf/open/floor/almayer{ - icon_state = "sterile_green_side" - }, +/obj/structure/surface/table/almayer, +/turf/open/floor/almayer/sterile_green_side, /area/almayer/medical/medical_science) "aID" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/medical/hydroponics) "aIP" = ( /obj/effect/decal/warning_stripes{ @@ -10078,10 +5421,7 @@ pixel_x = 1; pixel_y = -1 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_corner" - }, +/turf/open/floor/almayer/sterile_green_corner/west, /area/almayer/medical/containment) "aIQ" = ( /obj/structure/machinery/door/firedoor/border_only/almayer, @@ -10091,67 +5431,48 @@ req_access = null; req_access_txt = "1" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/living/numbertwobunks) -"aIS" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/obj/structure/sign/safety/autoopenclose{ - pixel_x = 7; - pixel_y = 32 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "silver" - }, -/area/almayer/hallways/aft_hallway) "aIT" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 - }, /obj/structure/machinery/door/airlock/almayer/secure/reinforced{ access_modified = 1; dir = 2; name = "Telecommunications"; req_access_txt = "6" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/command/telecomms) "aIU" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "orange" - }, +/turf/open/floor/almayer/orange, +/area/almayer/engineering/upper_engineering) +"aIV" = ( +/obj/structure/closet/secure_closet/guncabinet/red/armory_m39_submachinegun, +/turf/open/floor/almayer/redfull, /area/almayer/engineering/upper_engineering) "aIX" = ( /obj/effect/decal/warning_stripes{ icon_state = "E"; pixel_x = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/tankerbunks) -"aIZ" = ( -/turf/open/floor/plating, -/area/almayer/hull/upper_hull/u_m_s) -"aJa" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 +"aIY" = ( +/obj/structure/machinery/light{ + unacidable = 1; + unslashable = 1 }, -/turf/open/floor/almayer{ - icon_state = "redfull" +/obj/structure/surface/table/reinforced/prison, +/obj/item/storage/firstaid/toxin{ + pixel_x = 8; + pixel_y = -2 }, -/area/almayer/hallways/aft_hallway) +/obj/item/storage/firstaid/regular, +/obj/item/reagent_container/spray/cleaner, +/turf/open/floor/almayer/sterile_green_side, +/area/almayer/shipboard/brig/medical) "aJc" = ( /obj/structure/machinery/door/airlock/almayer/command{ name = "\improper Commanding Officer's Mess" @@ -10168,29 +5489,11 @@ id = "CIC Lockdown"; name = "\improper Combat Information Center Blast Door" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/living/captain_mess) -"aJd" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, -/obj/structure/machinery/light{ - dir = 1 - }, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "red" - }, -/area/almayer/hallways/aft_hallway) "aJf" = ( /obj/structure/machinery/floodlight, -/obj/structure/machinery/floodlight, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/engineering/upper_engineering) "aJg" = ( /obj/effect/decal/warning_stripes{ @@ -10199,28 +5502,19 @@ /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/almayer/engineering/upper_engineering) "aJh" = ( /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/northwest, /area/almayer/engineering/upper_engineering) "aJi" = ( /obj/structure/surface/table/almayer, /obj/item/stack/cable_coil, /obj/item/clothing/glasses/meson, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/north, /area/almayer/engineering/upper_engineering) "aJj" = ( /obj/structure/surface/table/almayer, @@ -10229,28 +5523,19 @@ /obj/structure/machinery/alarm/almayer{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/north, /area/almayer/engineering/upper_engineering) "aJk" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/north, /area/almayer/engineering/upper_engineering) "aJl" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_21" }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/north, /area/almayer/engineering/upper_engineering) "aJn" = ( /obj/structure/machinery/camera/autoname/almayer/containment{ @@ -10260,20 +5545,14 @@ /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "sterile_green_corner" - }, +/turf/open/floor/almayer/sterile_green_corner/east, /area/almayer/medical/containment) "aJp" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22"; pixel_y = 8 }, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "blue" - }, +/turf/open/floor/almayer/blue/southeast, /area/almayer/command/cichallway) "aJq" = ( /obj/structure/machinery/vending/snack, @@ -10281,47 +5560,20 @@ pixel_x = 8; pixel_y = 28 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/almayer/engineering/upper_engineering) -"aJs" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" - }, -/area/almayer/hallways/aft_hallway) "aJw" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/east, /area/almayer/command/cichallway) -"aJz" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "redcorner" - }, -/area/almayer/shipboard/brig/main_office) "aJG" = ( /obj/structure/bed/chair/office/dark{ dir = 8; layer = 3.25 }, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "blue" - }, +/turf/open/floor/almayer/blue/northwest, /area/almayer/command/cic) "aJI" = ( /obj/effect/decal/warning_stripes{ @@ -10335,34 +5587,15 @@ pixel_x = 1; pixel_y = 1 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/almayer/command/cic) "aJJ" = ( /obj/structure/flora/bush/ausbushes/var3/brflowers, /obj/structure/bed/chair, /turf/open/floor/grass, /area/almayer/living/starboard_garden) -"aJL" = ( -/obj/structure/surface/table/almayer, -/obj/item/reagent_container/food/snacks/mre_pack/meal5, -/obj/item/device/flashlight/lamp{ - pixel_x = 3; - pixel_y = 12 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_m_s) -"aJM" = ( -/obj/docking_port/stationary/escape_pod/east, -/turf/open/floor/plating, -/area/almayer/hull/upper_hull/u_m_p) "aJU" = ( -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/lifeboat_pumps/south1) "aKa" = ( /turf/open/floor/almayer, @@ -10372,10 +5605,7 @@ dir = 4; icon_state = "pipe-c" }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/west, /area/almayer/command/cichallway) "aKg" = ( /obj/structure/flora/bush/ausbushes/var3/brflowers, @@ -10388,11 +5618,13 @@ /obj/structure/disposalpipe/junction{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/north, /area/almayer/command/cichallway) +"aKk" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/wood/ship, +/area/almayer/living/commandbunks) "aKn" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -10400,10 +5632,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/north, /area/almayer/command/cichallway) "aKo" = ( /obj/structure/machinery/light{ @@ -10415,10 +5644,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/north, /area/almayer/command/cichallway) "aKq" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -10466,9 +5692,7 @@ unacidable = 0; unslashable = 0 }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, +/turf/open/floor/almayer/aicore/no_build, /area/almayer/command/airoom) "aKu" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -10478,10 +5702,7 @@ dir = 8; icon_state = "pipe-c" }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "silvercorner" - }, +/turf/open/floor/almayer/silvercorner/north, /area/almayer/command/cichallway) "aKv" = ( /obj/structure/pipes/standard/simple/hidden/supply, @@ -10490,36 +5711,11 @@ /area/almayer/command/cichallway) "aKy" = ( /obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "silver" - }, +/turf/open/floor/almayer/silver, /area/almayer/command/cichallway) "aKz" = ( -/turf/open/floor/almayer{ - icon_state = "silver" - }, +/turf/open/floor/almayer/silver, /area/almayer/command/cichallway) -"aKB" = ( -/obj/effect/step_trigger/clone_cleaner, -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, -/area/almayer/hallways/aft_hallway) -"aKC" = ( -/obj/effect/step_trigger/clone_cleaner, -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "red" - }, -/area/almayer/hallways/aft_hallway) "aKE" = ( /obj/structure/machinery/light, /turf/open/floor/almayer, @@ -10528,10 +5724,7 @@ /obj/structure/machinery/status_display{ pixel_y = 30 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/north, /area/almayer/command/cic) "aKG" = ( /obj/structure/sink{ @@ -10543,9 +5736,7 @@ /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/living/pilotbunks) "aKH" = ( /obj/structure/machinery/light{ @@ -10554,41 +5745,8 @@ /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/living/pilotbunks) -"aKI" = ( -/obj/structure/surface/rack, -/obj/item/tool/weldpack, -/obj/item/storage/toolbox/mechanical{ - pixel_x = 1; - pixel_y = 7 - }, -/obj/item/storage/toolbox/mechanical/green{ - pixel_x = 1; - pixel_y = -1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_p) -"aKJ" = ( -/obj/structure/stairs{ - icon_state = "ramptop" - }, -/obj/structure/machinery/light{ - dir = 4 - }, -/obj/effect/projector{ - name = "Almayer_Down4"; - vector_x = 19; - vector_y = -104 - }, -/turf/open/floor/plating/almayer{ - allow_construction = 0 - }, -/area/almayer/hallways/aft_hallway) "aKN" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/clothing/accessory/red, @@ -10597,9 +5755,7 @@ pixel_y = 10 }, /obj/item/clothing/suit/storage/webbing, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/numbertwobunks) "aKO" = ( /obj/structure/surface/table/reinforced/almayer_B, @@ -10609,9 +5765,7 @@ /obj/item/storage/fancy/cigarettes/lady_finger{ pixel_y = 5 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/numbertwobunks) "aKQ" = ( /turf/closed/wall/almayer/outer, @@ -10620,56 +5774,31 @@ /turf/closed/wall/almayer/outer, /area/almayer/shipboard/starboard_point_defense) "aKS" = ( -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/almayer/shipboard/starboard_point_defense) "aKU" = ( /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/almayer/shipboard/starboard_point_defense) "aKV" = ( /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/almayer/shipboard/starboard_point_defense) -"aKW" = ( -/turf/closed/wall/almayer/outer, -/area/almayer/hull/lower_hull/l_m_s) -"aLa" = ( -/obj/structure/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_s) -"aLd" = ( -/turf/closed/wall/almayer, -/area/almayer/hull/lower_hull) -"aLf" = ( -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_s) -"aLk" = ( -/obj/structure/reagent_dispensers/watertank, -/turf/open/floor/almayer{ - icon_state = "plate" +"aLc" = ( +/obj/effect/step_trigger/clone_cleaner, +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 }, -/area/almayer/hull/lower_hull/l_f_s) -"aLl" = ( -/obj/structure/machinery/light/small{ - dir = 8 +/obj/structure/sign/safety/stairs{ + pixel_x = -17 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_s) +/turf/open/floor/almayer/red, +/area/almayer/hallways/upper/starboard) "aLp" = ( /obj/structure/sign/safety/cryo{ pixel_x = 8; @@ -10680,51 +5809,42 @@ pixel_x = 1; pixel_y = 1 }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/living/numbertwobunks) -"aLt" = ( -/obj/structure/surface/rack, +"aLx" = ( /obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 + icon_state = "SE-out" }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" +/obj/effect/decal/warning_stripes{ + icon_state = "SW-out" }, -/area/almayer/living/numbertwobunks) -"aLA" = ( -/obj/item/trash/uscm_mre, -/obj/structure/bed/chair/comfy/charlie{ - dir = 1 +/obj/structure/machinery/door_control{ + id = "DeployWorkR"; + name = "Workshop Shutters"; + pixel_x = -7; + pixel_y = -26; + req_one_access_txt = "3;22;2;19;7" }, -/turf/open/floor/almayer{ - icon_state = "emeraldfull" +/obj/structure/surface/rack, +/obj/item/parachute{ + pixel_y = 8 }, -/area/almayer/living/briefing) -"aLB" = ( -/turf/closed/wall/almayer, -/area/almayer/hallways/starboard_hallway) -"aLC" = ( -/obj/docking_port/stationary/escape_pod/south, -/turf/open/floor/plating, -/area/almayer/hull/upper_hull/u_m_s) +/obj/item/parachute, +/obj/item/parachute{ + pixel_y = -6 + }, +/obj/structure/sign/safety/bulkhead_door{ + pixel_x = 15; + pixel_y = -32 + }, +/turf/open/floor/almayer/silverfull, +/area/almayer/hallways/lower/repair_bay) "aLE" = ( /obj/docking_port/stationary/emergency_response/external/hangar_starboard{ dwidth = 8 }, /turf/open/space, /area/space) -"aLF" = ( -/obj/structure/largecrate/random/barrel/white, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_s) -"aLG" = ( -/turf/open/floor/almayer, -/area/almayer/hallways/starboard_hallway) "aLJ" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 6 @@ -10740,12 +5860,6 @@ }, /turf/open/floor/almayer, /area/almayer/command/cic) -"aLQ" = ( -/obj/structure/flora/pottedplant{ - icon_state = "pottedplant_21" - }, -/turf/open/floor/wood/ship, -/area/almayer/command/corporateliason) "aLS" = ( /obj/item/device/radio/intercom{ freerange = 1; @@ -10753,10 +5867,7 @@ pixel_y = 28 }, /obj/structure/bed/chair, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/north, /area/almayer/medical/upper_medical) "aLT" = ( /turf/closed/wall/almayer, @@ -10764,17 +5875,6 @@ "aLW" = ( /turf/open/floor/almayer, /area/almayer/shipboard/starboard_point_defense) -"aLX" = ( -/obj/effect/projector{ - name = "Almayer_Down4"; - vector_x = 19; - vector_y = -104 - }, -/turf/open/floor/almayer{ - allow_construction = 0; - icon_state = "plate" - }, -/area/almayer/hallways/aft_hallway) "aLZ" = ( /obj/structure/surface/table/almayer, /obj/item/tool/pen, @@ -10786,10 +5886,10 @@ pixel_y = 16 }, /obj/item/clothing/accessory/stethoscope, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_corner" +/obj/structure/closet/secure_closet/professor_dummy{ + pixel_x = -32 }, +/turf/open/floor/almayer/sterile_green_corner/west, /area/almayer/medical/upper_medical) "aMd" = ( /obj/structure/filingcabinet/seeds{ @@ -10802,10 +5902,11 @@ pixel_x = -11; pixel_y = 16 }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/medical/hydroponics) +"aMf" = ( +/turf/open/floor/almayer/test_floor4, +/area/almayer/maint/hull/upper/u_f_s) "aMg" = ( /obj/structure/sign/safety/intercom{ layer = 2.9; @@ -10827,40 +5928,11 @@ pixel_y = 16; req_access_txt = "28" }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/medical/hydroponics) -"aMh" = ( -/obj/structure/machinery/light{ - dir = 8 - }, -/obj/structure/ladder{ - height = 2; - id = "cicladder3" - }, -/obj/structure/sign/safety/ladder{ - pixel_x = 23; - pixel_y = 32 - }, -/turf/open/floor/plating/almayer, -/area/almayer/hull/upper_hull) -"aMi" = ( -/obj/structure/ladder{ - height = 2; - id = "cicladder4" - }, -/turf/open/floor/plating/almayer, -/area/almayer/hull/upper_hull) "aMl" = ( -/obj/structure/machinery/light{ - dir = 8 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "silver" - }, -/area/almayer/hallways/aft_hallway) +/turf/open/floor/almayer/silver/east, +/area/almayer/hallways/upper/midship_hallway) "aMm" = ( /obj/structure/surface/table/almayer, /obj/item/tool/crowbar, @@ -10871,9 +5943,7 @@ /obj/structure/sign/safety/hazard{ pixel_y = 32 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/command/telecomms) "aMo" = ( /obj/structure/machinery/alarm/almayer{ @@ -10884,23 +5954,8 @@ "aMq" = ( /obj/structure/surface/table/almayer, /obj/item/tool/lighter/random, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/engineering/upper_engineering) -"aMr" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hull/lower_hull/l_f_s) -"aMs" = ( -/obj/structure/sign/safety/storage{ - pixel_x = 8; - pixel_y = -32 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_s) "aMt" = ( /obj/structure/machinery/light{ dir = 1 @@ -10909,9 +5964,7 @@ /area/almayer/living/briefing) "aMw" = ( /obj/structure/machinery/portable_atmospherics/canister/air, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/engineering/upper_engineering) "aMx" = ( /obj/structure/machinery/cm_vending/sorted/cargo_guns/squad{ @@ -10924,10 +5977,11 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/alpha_bravo_shared) +"aMy" = ( +/turf/open/floor/almayer/mono, +/area/almayer/hallways/upper/starboard) "aMz" = ( /turf/open/floor/almayer, /area/almayer/squads/alpha) @@ -10935,19 +5989,13 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/almayer/red/west, /area/almayer/squads/alpha) "aMC" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/almayer/red/east, /area/almayer/squads/alpha) "aMD" = ( /obj/structure/surface/table/almayer, @@ -10967,9 +6015,7 @@ pixel_y = 7 }, /obj/structure/surface/table/almayer, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/almayer/engineering/upper_engineering) "aMH" = ( /obj/structure/disposalpipe/segment{ @@ -10986,25 +6032,18 @@ /obj/effect/landmark/late_join/delta, /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/delta) -"aMM" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" - }, -/area/almayer/hallways/starboard_hallway) +"aML" = ( +/obj/item/ammo_casing/bullet, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_f_p) "aMO" = ( /obj/structure/extinguisher_cabinet{ pixel_x = 26 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "cargo_arrow" - }, +/turf/open/floor/almayer/cargo_arrow/north, /area/almayer/squads/alpha_bravo_shared) "aMP" = ( -/turf/open/floor/almayer{ - icon_state = "redcorner" - }, +/turf/open/floor/almayer/redcorner, /area/almayer/squads/alpha) "aMQ" = ( /obj/structure/machinery/cm_vending/clothing/tl/alpha{ @@ -11014,61 +6053,24 @@ /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/alpha) "aMT" = ( -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/command/lifeboat) "aMU" = ( -/turf/open/floor/almayer{ - icon_state = "red" - }, +/turf/open/floor/almayer/red, /area/almayer/command/lifeboat) -"aMV" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" - }, -/area/almayer/hallways/starboard_hallway) "aMY" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/hallways/hangar) "aNc" = ( /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/almayer/red/north, /area/almayer/squads/alpha) -"aNe" = ( -/obj/structure/closet/firecloset, -/obj/item/clothing/mask/gas, -/obj/item/clothing/mask/gas, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/command/lifeboat) "aNi" = ( /turf/closed/wall/almayer, /area/almayer/living/chapel) -"aNj" = ( -/obj/structure/bed/chair/office/dark, -/obj/structure/machinery/light{ - dir = 1 - }, -/obj/structure/sign/safety/terminal{ - pixel_x = 8; - pixel_y = 32 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/hull/lower_hull/l_f_s) "aNl" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -11078,14 +6080,6 @@ "aNm" = ( /turf/open/floor/wood/ship, /area/almayer/living/chapel) -"aNn" = ( -/obj/item/device/radio/intercom{ - freerange = 1; - name = "General Listening Channel"; - pixel_y = 28 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/starboard_hallway) "aNr" = ( /obj/effect/landmark/start/chef, /turf/open/floor/plating/plating_catwalk, @@ -11098,47 +6092,33 @@ /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/offices) -"aNw" = ( -/obj/structure/machinery/door_control{ - id = "safe_armory"; - name = "Hangar Armory Lockdown"; - pixel_y = 24; - req_access_txt = "4" - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/hull/lower_hull/l_f_s) "aNx" = ( /obj/structure/window/reinforced{ dir = 4; health = 80 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "cargo_arrow" - }, +/turf/open/floor/almayer/cargo_arrow/north, /area/almayer/squads/alpha_bravo_shared) -"aNG" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "redcorner" - }, -/area/almayer/hallways/starboard_hallway) +"aNE" = ( +/obj/structure/machinery/light, +/turf/open/floor/almayer/silver, +/area/almayer/hallways/upper/midship_hallway) "aNI" = ( /obj/structure/machinery/door/airlock/almayer/marine/alpha/tl, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/squads/alpha) "aNO" = ( -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/starboard_hallway) +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/obj/structure/machinery/alarm/almayer{ + dir = 1 + }, +/turf/open/floor/almayer/red, +/area/almayer/hallways/upper/port) "aNQ" = ( /obj/structure/disposalpipe/segment{ dir = 4; @@ -11162,6 +6142,9 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/alpha) +"aNW" = ( +/turf/open/floor/almayer/redcorner, +/area/almayer/shipboard/brig/starboard_hallway) "aNY" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -11170,15 +6153,10 @@ icon_state = "W"; pixel_x = -1 }, -/turf/open/floor/almayer{ - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side, /area/almayer/medical/containment) "aOd" = ( -/turf/open/floor/almayer{ - dir = 5; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/northeast, /area/almayer/medical/containment) "aOe" = ( /obj/structure/surface/table/reinforced/prison, @@ -11193,37 +6171,19 @@ icon_state = "E"; pixel_x = 1 }, -/turf/open/floor/almayer/research/containment/corner{ - dir = 1 - }, +/turf/open/floor/almayer/research/containment/corner/north, /area/almayer/medical/containment/cell) -"aOg" = ( -/obj/structure/bed/sofa/south/grey{ - pixel_y = 12 - }, -/turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_s) -"aOi" = ( -/obj/effect/landmark/start/nurse, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/living/offices) "aOq" = ( /obj/structure/surface/table/almayer, /obj/item/tool/extinguisher, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/command/telecomms) "aOr" = ( /obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/command/telecomms) "aOs" = ( -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/command/telecomms) "aOt" = ( /obj/structure/closet/secure_closet/engineering_welding, @@ -11232,9 +6192,7 @@ name = "General Listening Channel"; pixel_y = -28 }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/command/telecomms) "aOy" = ( /obj/structure/machinery/light{ @@ -11243,23 +6201,15 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "redcorner" - }, +/turf/open/floor/almayer/redcorner/north, /area/almayer/squads/alpha) "aOz" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "redcorner" - }, +/turf/open/floor/almayer/redcorner/west, /area/almayer/squads/alpha) "aOB" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "orange" - }, +/turf/open/floor/almayer/orange, /area/almayer/engineering/upper_engineering) "aOC" = ( /obj/item/device/radio/intercom{ @@ -11267,56 +6217,35 @@ name = "General Listening Channel"; pixel_y = -28 }, -/turf/open/floor/almayer{ - icon_state = "orange" - }, +/turf/open/floor/almayer/orange, /area/almayer/engineering/upper_engineering) -"aOD" = ( -/obj/structure/largecrate/random/barrel/yellow, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_m_s) "aOE" = ( /obj/structure/platform{ dir = 8 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/almayer/red/west, /area/almayer/lifeboat_pumps/north2) "aOF" = ( /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/southeast, /area/almayer/engineering/upper_engineering) "aOG" = ( /obj/structure/surface/table/almayer, /obj/item/paper_bin/uscm, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/engineering/upper_engineering) "aOH" = ( /obj/structure/machinery/pipedispenser, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/engineering/upper_engineering) "aOK" = ( /obj/structure/disposalpipe/junction{ dir = 4; icon_state = "pipe-j2" }, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/almayer/red/northwest, /area/almayer/squads/alpha) "aOL" = ( /obj/structure/disposalpipe/segment{ @@ -11332,9 +6261,7 @@ /area/almayer/squads/alpha) "aOM" = ( /obj/structure/machinery/power/port_gen/pacman, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/engineering/upper_engineering) "aON" = ( /obj/structure/sign/safety/hazard{ @@ -11344,19 +6271,8 @@ pixel_x = 15; pixel_y = 32 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/shipboard/starboard_point_defense) -"aOP" = ( -/obj/structure/machinery/camera/autoname/almayer{ - name = "ship-grade camera" - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "blue" - }, -/area/almayer/hallways/aft_hallway) "aOQ" = ( /obj/structure/closet/crate, /obj/item/storage/briefcase/inflatable, @@ -11364,36 +6280,27 @@ /obj/item/storage/briefcase/inflatable, /obj/item/storage/briefcase/inflatable, /obj/item/storage/briefcase/inflatable, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/engineering/upper_engineering) "aOR" = ( /turf/open/floor/almayer, /area/almayer/living/chapel) "aOS" = ( -/obj/structure/machinery/camera/autoname/almayer{ - name = "ship-grade camera" - }, -/turf/open/floor/almayer, -/area/almayer/hallways/stern_hallway) +/obj/structure/machinery/portable_atmospherics/canister/air, +/turf/open/floor/almayer/cargo, +/area/almayer/maint/upper/u_a_s) "aOU" = ( /obj/structure/platform{ dir = 4 }, /obj/structure/largecrate/random/barrel/blue, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/almayer/red/east, /area/almayer/lifeboat_pumps/north2) "aOV" = ( /obj/structure/surface/table/almayer, /obj/item/storage/fancy/cigarettes/kpack, /obj/structure/window/reinforced, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/almayer/engineering/upper_engineering) "aOW" = ( /obj/structure/surface/table/almayer, @@ -11406,52 +6313,41 @@ /obj/item/reagent_container/food/drinks/cans/souto/peach{ pixel_x = 12 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/almayer/engineering/upper_engineering) -"aOY" = ( -/obj/structure/bed/chair, -/obj/structure/machinery/status_display{ - pixel_y = 30 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, -/area/almayer/shipboard/brig/processing) "aPa" = ( /obj/structure/machinery/light{ dir = 8 }, /turf/open/floor/almayer, /area/almayer/command/lifeboat) -"aPb" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" +"aPe" = ( +/obj/structure/largecrate/random/case/double, +/obj/structure/sign/safety/bulkhead_door{ + pixel_x = 8; + pixel_y = -32 }, -/area/almayer/hallways/stern_hallway) +/turf/open/floor/plating, +/area/almayer/maint/lower/constr) "aPf" = ( /obj/effect/decal/cleanable/blood/oil, /turf/open/floor/almayer, /area/almayer/squads/alpha_bravo_shared) +"aPg" = ( +/obj/structure/surface/table/almayer, +/obj/item/frame/table, +/obj/item/storage/toolbox/electrical, +/turf/open/floor/almayer/plate, +/area/almayer/maint/upper/u_a_s) "aPi" = ( /obj/structure/machinery/vending/cola, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/alpha) "aPj" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "red" - }, +/turf/open/floor/almayer/red, /area/almayer/squads/alpha) "aPl" = ( /obj/structure/machinery/cm_vending/clothing/marine/alpha{ @@ -11459,24 +6355,14 @@ layer = 4.1; pixel_y = -29 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/alpha) -"aPm" = ( -/obj/structure/closet/firecloset, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/hallways/aft_hallway) "aPn" = ( /obj/structure/machinery/cm_vending/clothing/marine/bravo{ density = 0; pixel_y = 16 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/bravo) "aPo" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -11485,14 +6371,10 @@ /obj/structure/machinery/door/airlock/multi_tile/almayer/marine/alpha{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/squads/alpha) "aPr" = ( -/turf/open/floor/almayer{ - icon_state = "silverfull" - }, +/turf/open/floor/almayer/silverfull, /area/almayer/living/cryo_cells) "aPw" = ( /turf/closed/wall/almayer/outer, @@ -11503,37 +6385,33 @@ linked_dock = "almayer-lifeboat1"; throw_dir = 2 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/command/lifeboat) -"aPy" = ( -/turf/closed/wall/almayer/outer, -/area/almayer/hallways/starboard_umbilical) "aPz" = ( -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/command/lifeboat) "aPB" = ( -/turf/open/floor/almayer{ - icon_state = "emerald" - }, +/turf/open/floor/almayer/emerald, /area/almayer/command/cic) +"aPC" = ( +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/upper/aft_hallway) "aPD" = ( /obj/structure/machinery/photocopier, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/command/cic) "aPE" = ( /obj/structure/machinery/cryopod{ layer = 3.1; pixel_y = 13 }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/living/offices) "aPH" = ( /obj/structure/pipes/vents/pump{ @@ -11546,14 +6424,10 @@ icon_state = "N"; pixel_y = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/offices) "aPI" = ( -/turf/open/floor/almayer{ - icon_state = "blue" - }, +/turf/open/floor/almayer/blue, /area/almayer/command/cic) "aPJ" = ( /obj/effect/decal/warning_stripes{ @@ -11569,21 +6443,42 @@ /obj/structure/sign/nosmoking_1, /turf/closed/wall/almayer, /area/almayer/squads/alpha) -"aPX" = ( -/obj/structure/largecrate/random/case/double, +"aPN" = ( +/obj/structure/ladder{ + height = 2; + id = "ForeStarboardMaint" + }, +/obj/structure/sign/safety/ladder{ + pixel_x = -17 + }, +/turf/open/floor/plating/almayer, +/area/almayer/maint/hull/upper/s_bow) +"aPO" = ( /turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_m_p) -"aPY" = ( -/obj/structure/machinery/door/airlock/almayer/maint, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +/area/almayer/maint/hull/upper/u_a_p) +"aPS" = ( +/obj/structure/machinery/power/port_gen/pacman, +/turf/open/floor/almayer/cargo, +/area/almayer/engineering/lower/engine_core) +"aPT" = ( +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/upper/port) +"aPU" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/turf/open/floor/almayer/plating/northeast, +/area/almayer/engineering/lower/engine_core) +"aPV" = ( +/obj/structure/sign/safety/high_voltage{ + pixel_y = -32 }, -/area/almayer/hallways/starboard_umbilical) -"aPZ" = ( -/turf/open/floor/almayer{ - icon_state = "test_floor4" +/obj/structure/sign/safety/hazard{ + pixel_x = 15; + pixel_y = -32 }, -/area/almayer/hallways/starboard_umbilical) +/turf/open/floor/almayer/blue, +/area/almayer/hallways/upper/fore_hallway) "aQb" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -11591,38 +6486,22 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 5 }, -/turf/open/floor/almayer{ - icon_state = "silver" - }, +/turf/open/floor/almayer, /area/almayer/shipboard/brig/cic_hallway) "aQg" = ( /obj/structure/bed/chair/office/dark{ dir = 8; layer = 3.25 }, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "emerald" - }, +/turf/open/floor/almayer/emerald/northwest, /area/almayer/command/cic) -"aQo" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 1 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/stern_hallway) "aQp" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/effect/decal/warning_stripes{ icon_state = "E"; pixel_x = 2 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/offices) "aQq" = ( /obj/structure/disposalpipe/segment{ @@ -11632,36 +6511,25 @@ /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/offices) "aQr" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/offices) -"aQs" = ( -/obj/structure/surface/table/almayer, -/obj/item/tool/extinguisher, -/obj/item/tool/extinguisher, -/obj/item/tool/crowbar, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "orange" +"aQx" = ( +/obj/structure/window/framed/almayer, +/obj/structure/curtain/open/shower{ + name = "hypersleep curtain" }, -/area/almayer/hull/upper_hull/u_f_p) -"aQt" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/starboard_hallway) -"aQv" = ( -/turf/closed/wall/almayer, -/area/almayer/hallways/starboard_umbilical) +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 + }, +/turf/open/floor/plating, +/area/almayer/maint/upper/u_m_p) "aQy" = ( /obj/structure/transmitter{ dir = 8; @@ -11670,18 +6538,13 @@ phone_id = "RO Office"; pixel_x = 16 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "green" - }, +/turf/open/floor/almayer/green/east, /area/almayer/squads/req) "aQz" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/almayer{ - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side, /area/almayer/medical/upper_medical) "aQF" = ( /turf/closed/wall/almayer, @@ -11696,9 +6559,7 @@ dir = 2; name = "\improper Cryogenics Bay" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/living/offices) "aQH" = ( /obj/structure/disposalpipe/segment, @@ -11709,13 +6570,7 @@ dir = 2; name = "\improper Cryogenics Bay" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/living/offices) -"aQI" = ( -/obj/effect/landmark/start/researcher, -/turf/open/floor/plating/plating_catwalk, +/turf/open/floor/almayer/test_floor4, /area/almayer/living/offices) "aQL" = ( /turf/closed/wall/almayer, @@ -11741,18 +6596,14 @@ layer = 4.1; pixel_y = -29 }, -/turf/open/floor/almayer{ - icon_state = "cargo_arrow" - }, +/turf/open/floor/almayer/cargo_arrow, /area/almayer/squads/alpha) "aQW" = ( /obj/structure/machinery/vending/cola{ pixel_x = -6; pixel_y = 4 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/grunt_rnr) "aQZ" = ( /obj/structure/machinery/botany/editor{ @@ -11764,14 +6615,11 @@ pixel_x = 5; pixel_y = 24 }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/medical/hydroponics) "aRd" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/door/window/westright, -/obj/structure/machinery/door/firedoor/border_only/almayer, /obj/structure/machinery/door/window/westright{ dir = 4; req_access_txt = "28" @@ -11784,9 +6632,7 @@ /obj/structure/machinery/door/poddoor/almayer/biohazard/white{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/medical/medical_science) "aRi" = ( /obj/structure/bed/chair/office/dark{ @@ -11800,9 +6646,7 @@ /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/engineering/upper_engineering) "aRo" = ( /obj/structure/pipes/standard/simple/hidden/supply, @@ -11812,36 +6656,16 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/bravo) -"aRp" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/command/lifeboat) "aRq" = ( /obj/structure/closet/secure_closet/staff_officer/gear, /obj/structure/machinery/camera/autoname/almayer{ dir = 4; name = "ship-grade camera" }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/bridgebunks) -"aRr" = ( -/obj/structure/surface/table/almayer, -/obj/effect/spawner/random/toolbox, -/obj/item/storage/firstaid/o2, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "orange" - }, -/area/almayer/hull/upper_hull/u_f_p) "aRt" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "emeraldcorner" - }, +/turf/open/floor/almayer/emeraldcorner/west, /area/almayer/command/cic) "aRu" = ( /obj/structure/foamed_metal, @@ -11851,17 +6675,13 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/captain_mess) "aRx" = ( /obj/structure/bed/chair/comfy{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "bluefull" - }, +/turf/open/floor/almayer/bluefull, /area/almayer/living/captain_mess) "aRy" = ( /turf/open/floor/almayer, @@ -11880,32 +6700,21 @@ icon_state = "poster8"; pixel_y = 32 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/captain_mess) "aRC" = ( /obj/structure/machinery/power/apc/almayer{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/captain_mess) -"aRD" = ( -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/command/corporateliason) "aRE" = ( /obj/structure/machinery/alarm/almayer{ dir = 1 }, /obj/structure/surface/table/reinforced/almayer_B, /obj/item/storage/box/drinkingglasses, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/captain_mess) "aRF" = ( /obj/structure/machinery/door/airlock/almayer/medical{ @@ -11918,20 +6727,8 @@ /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 2 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/medical/morgue) -"aRG" = ( -/obj/structure/bed/chair/comfy/beige, -/obj/item/reagent_container/glass/bucket{ - pixel_x = 12; - pixel_y = -5 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_s) "aRJ" = ( /obj/structure/ladder{ height = 2; @@ -11958,53 +6755,44 @@ }, /turf/open/floor/plating/almayer, /area/almayer/medical/upper_medical) -"aRP" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orangecorner" +"aRL" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, +/obj/structure/machinery/door/poddoor/shutters/almayer/open{ + dir = 4; + id = "southcheckpoint"; + name = "\improper Checkpoint Shutters" + }, +/turf/open/floor/almayer/redfull, +/area/almayer/hallways/lower/port_midship_hallway) +"aRP" = ( +/turf/open/floor/almayer/orangecorner/north, /area/almayer/squads/bravo) "aRS" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_corner" - }, +/turf/open/floor/almayer/sterile_green_corner/west, /area/almayer/medical/upper_medical) "aRT" = ( /turf/open/floor/almayer, /area/almayer/squads/bravo) "aRU" = ( /obj/structure/pipes/vents/pump/on, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/north, /area/almayer/squads/bravo) -"aRV" = ( -/obj/structure/platform{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_s) "aRX" = ( /obj/structure/pipes/vents/scrubber{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/north, /area/almayer/squads/bravo) "aRZ" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orangecorner" - }, +/turf/open/floor/almayer/orangecorner/east, /area/almayer/squads/bravo) "aSa" = ( /obj/effect/decal/warning_stripes{ @@ -12012,58 +6800,21 @@ pixel_x = 1; pixel_y = 1 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/squads/bravo) "aSb" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 8 }, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/southeast, /area/almayer/medical/upper_medical) -"aSh" = ( -/obj/structure/surface/table/almayer, -/obj/item/device/flashlight/lamp{ - layer = 3.3; - pixel_x = 15 - }, -/obj/item/paper_bin/uscm{ - pixel_x = -7; - pixel_y = 6 - }, -/obj/item/tool/pen{ - pixel_x = -11; - pixel_y = 5 - }, -/obj/item/tool/pen{ - pixel_x = -10; - pixel_y = -2 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/living/briefing) -"aSl" = ( -/obj/structure/machinery/light, -/obj/structure/machinery/cm_vending/sorted/medical, -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "sterile_green_corner" - }, -/area/almayer/medical/medical_science) -"aSm" = ( -/turf/open/floor/almayer{ - icon_state = "plate" +"aSk" = ( +/obj/structure/machinery/power/smes/buildable, +/obj/structure/machinery/light{ + dir = 4 }, -/area/almayer/hull/lower_hull/l_m_s) +/turf/open/floor/almayer/tcomms, +/area/almayer/engineering/lower/engine_core) "aSn" = ( /obj/item/stack/sheet/mineral/plastic{ amount = 15 @@ -12073,9 +6824,7 @@ pixel_x = 3; pixel_y = 3 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/medical/hydroponics) "aSo" = ( /obj/effect/decal/warning_stripes{ @@ -12090,95 +6839,51 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/medical/hydroponics) -"aSq" = ( -/obj/structure/surface/table/reinforced/almayer_B, -/obj/structure/machinery/chem_dispenser/soda, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, -/area/almayer/living/captain_mess) -"aSr" = ( -/obj/structure/machinery/camera/autoname/almayer{ - dir = 8; - name = "ship-grade camera" +"aSp" = ( +/obj/structure/surface/table/almayer, +/obj/effect/decal/cleanable/dirt, +/obj/item/device/flashlight/lamp{ + layer = 3.3; + pixel_x = 15 }, -/obj/structure/sign/safety/one{ - pixel_x = 32; - pixel_y = -8 +/obj/item/paper_bin/uscm{ + pixel_x = -7; + pixel_y = 6 }, -/obj/structure/sign/safety/ammunition{ - pixel_x = 32; - pixel_y = 7 +/obj/item/tool/pen{ + pixel_x = -10; + pixel_y = 6 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" +/obj/item/tool/pen{ + pixel_x = -10; + pixel_y = -2 }, -/area/almayer/hallways/starboard_hallway) +/turf/open/floor/almayer/plate, +/area/almayer/living/briefing) +"aSq" = ( +/obj/structure/surface/table/reinforced/almayer_B, +/obj/structure/machinery/chem_dispenser/soda, +/turf/open/floor/prison/kitchen, +/area/almayer/living/captain_mess) "aSt" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/structure/machinery/chem_dispenser/soda/beer, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/almayer/living/captain_mess) -"aSv" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "blue" - }, -/area/almayer/hallways/aft_hallway) "aSx" = ( /obj/structure/machinery/vending/dinnerware, /obj/structure/sign/safety/maint{ pixel_x = 32 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/almayer/living/captain_mess) -"aSy" = ( -/turf/open/floor/almayer{ - dir = 9; - icon_state = "orange" - }, -/area/almayer/hallways/stern_hallway) -"aSz" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/stern_hallway) "aSA" = ( /obj/structure/machinery/camera/autoname/almayer{ dir = 4; name = "ship-grade camera" }, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/almayer/red/southwest, /area/almayer/lifeboat_pumps/north1) -"aSB" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, -/area/almayer/hallways/stern_hallway) -"aSC" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/structure/disposalpipe/segment, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, -/area/almayer/hallways/stern_hallway) "aSE" = ( /obj/structure/bed/chair{ dir = 4 @@ -12190,10 +6895,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orangecorner" - }, +/turf/open/floor/almayer/orangecorner/west, /area/almayer/squads/bravo) "aSI" = ( /obj/structure/machinery/firealarm{ @@ -12205,9 +6907,7 @@ /turf/open/floor/almayer, /area/almayer/squads/bravo) "aSJ" = ( -/turf/open/floor/almayer{ - icon_state = "red" - }, +/turf/open/floor/almayer/red, /area/almayer/lifeboat_pumps/north1) "aSO" = ( /obj/structure/surface/table/reinforced/prison, @@ -12222,37 +6922,8 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_corner" - }, +/turf/open/floor/almayer/sterile_green_corner/north, /area/almayer/medical/operating_room_two) -"aSP" = ( -/obj/structure/filingcabinet, -/turf/open/floor/wood/ship, -/area/almayer/command/corporateliason) -"aSS" = ( -/obj/structure/sink{ - pixel_y = 24 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/shipboard/brig/perma) -"aSY" = ( -/obj/structure/machinery/light/small{ - dir = 4 - }, -/obj/item/reagent_container/glass/bucket/mopbucket, -/obj/item/tool/mop{ - pixel_x = -6; - pixel_y = 14 - }, -/obj/structure/janitorialcart, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_s) "aTa" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/disposalpipe/junction{ @@ -12265,10 +6936,7 @@ /obj/structure/platform{ dir = 8 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/almayer/red/west, /area/almayer/lifeboat_pumps/north1) "aTg" = ( /turf/open/floor/wood/ship, @@ -12283,10 +6951,7 @@ /obj/structure/machinery/cm_vending/sorted/medical/wall_med{ pixel_y = 25 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/north, /area/almayer/command/cichallway) "aTk" = ( /obj/structure/pipes/standard/manifold/fourway/hidden/supply, @@ -12296,6 +6961,11 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/command/cichallway) +"aTl" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer, +/area/almayer/command/cichallway) "aTm" = ( /turf/open/floor/plating/plating_catwalk, /area/almayer/lifeboat_pumps/north1) @@ -12303,62 +6973,36 @@ /obj/structure/bed/chair/office/dark{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "green" - }, +/turf/open/floor/almayer/green/northeast, /area/almayer/living/offices) -"aTq" = ( -/obj/structure/machinery/suit_storage_unit/compression_suit/uscm, -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/port_umbilical) "aTr" = ( /obj/structure/bed/chair/office/dark{ dir = 8 }, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "green" - }, +/turf/open/floor/almayer/green/northwest, /area/almayer/living/offices) "aTv" = ( /obj/structure/machinery/cm_vending/clothing/marine/bravo{ density = 0; pixel_y = 16 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "cargo_arrow" - }, +/turf/open/floor/almayer/cargo_arrow/north, /area/almayer/squads/bravo) "aTw" = ( /obj/structure/machinery/door/airlock/almayer/marine/bravo/tl, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/squads/bravo) "aTx" = ( /obj/structure/machinery/power/apc/almayer, /obj/structure/surface/table/almayer, /obj/item/tool/hand_labeler, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/east, /area/almayer/squads/bravo) "aTy" = ( /obj/structure/bed/chair/comfy/black{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, +/turf/open/floor/almayer/redfull, /area/almayer/shipboard/starboard_missiles) "aTz" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -12368,9 +7012,7 @@ dir = 2; icon_state = "pipe-c" }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/captain_mess) "aTA" = ( /obj/structure/surface/table/reinforced/almayer_B, @@ -12384,80 +7026,25 @@ /obj/item/tool/kitchen/utensil/knife{ pixel_x = 7 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/captain_mess) "aTB" = ( /obj/structure/bed/chair/comfy{ dir = 8 }, /obj/structure/pipes/vents/scrubber, -/turf/open/floor/almayer{ - icon_state = "bluefull" - }, +/turf/open/floor/almayer/bluefull, /area/almayer/living/captain_mess) "aTE" = ( -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/almayer/living/captain_mess) "aTG" = ( /obj/structure/sink{ dir = 4; pixel_x = 11 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/almayer/living/captain_mess) -"aTL" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "blue" - }, -/area/almayer/hallways/aft_hallway) -"aTQ" = ( -/obj/structure/machinery/camera/autoname/almayer{ - dir = 8; - name = "ship-grade camera" - }, -/obj/effect/decal/warning_stripes{ - icon_state = "SE-out"; - pixel_x = 1 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" - }, -/area/almayer/hallways/aft_hallway) -"aTR" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 - }, -/obj/structure/machinery/door/poddoor/almayer/open{ - dir = 2; - id = "CIC Lockdown"; - layer = 2.2; - name = "\improper Combat Information Center Blast Door" - }, -/obj/structure/machinery/door/airlock/almayer/engineering/reinforced{ - dir = 1; - name = "\improper Command Power Substation" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hull/upper_hull/u_f_p) -"aTS" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "mono" - }, -/area/almayer/hallways/stern_hallway) "aTT" = ( /obj/structure/desertdam/decals/road_edge{ icon_state = "road_edge_decal3"; @@ -12469,12 +7056,6 @@ }, /turf/open/floor/wood/ship, /area/almayer/living/basketball) -"aTV" = ( -/obj/structure/toilet{ - dir = 4 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/shipboard/brig/cells) "aTW" = ( /obj/structure/bed/chair{ dir = 8 @@ -12485,28 +7066,19 @@ /obj/structure/bed/chair/office/dark{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "green" - }, +/turf/open/floor/almayer/green/east, /area/almayer/living/offices) "aTZ" = ( /obj/structure/bed/chair/office/dark{ dir = 8 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "green" - }, +/turf/open/floor/almayer/green/west, /area/almayer/living/offices) "aUa" = ( /obj/structure/platform{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/almayer/red/east, /area/almayer/lifeboat_pumps/north1) "aUd" = ( /obj/structure/pipes/standard/simple/hidden/supply, @@ -12515,9 +7087,10 @@ name = "\improper Officer's Bunks"; req_access = null }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 }, +/turf/open/floor/almayer/test_floor4, /area/almayer/engineering/port_atmos) "aUe" = ( /obj/structure/disposalpipe/segment{ @@ -12526,18 +7099,13 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/northwest, /area/almayer/command/cichallway) "aUi" = ( /obj/structure/extinguisher_cabinet{ pixel_x = 26 }, -/turf/open/floor/almayer{ - icon_state = "cargo_arrow" - }, +/turf/open/floor/almayer/cargo_arrow, /area/almayer/squads/alpha_bravo_shared) "aUj" = ( /obj/structure/machinery/cm_vending/clothing/tl/bravo{ @@ -12550,9 +7118,7 @@ /obj/structure/machinery/cm_vending/sorted/medical/wall_med{ pixel_y = 25 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/bridgebunks) "aUl" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -12562,9 +7128,7 @@ dir = 1; icon_state = "pipe-c" }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/captain_mess) "aUm" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -12573,9 +7137,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/captain_mess) "aUo" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -12588,9 +7150,7 @@ /obj/structure/bed/chair/comfy{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "bluefull" - }, +/turf/open/floor/almayer/bluefull, /area/almayer/living/captain_mess) "aUp" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -12598,9 +7158,7 @@ }, /obj/structure/surface/table/reinforced/almayer_B, /obj/item/storage/donut_box, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/captain_mess) "aUq" = ( /obj/structure/bed/chair/comfy{ @@ -12609,18 +7167,17 @@ /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "bluefull" - }, +/turf/open/floor/almayer/bluefull, /area/almayer/living/captain_mess) "aUw" = ( -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/captain_mess) -"aUx" = ( -/turf/closed/wall/almayer/outer, -/area/almayer/engineering/lower_engineering) +"aUB" = ( +/obj/structure/machinery/firealarm{ + pixel_y = 28 + }, +/turf/open/floor/almayer/green/north, +/area/almayer/hallways/upper/fore_hallway) "aUC" = ( /obj/structure/machinery/light{ dir = 4 @@ -12629,9 +7186,7 @@ /obj/item/reagent_container/food/snacks/tofukabob, /obj/item/reagent_container/food/snacks/tofubreadslice, /obj/item/reagent_container/food/snacks/tofubreadslice, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/almayer/living/captain_mess) "aUH" = ( /turf/closed/wall/almayer, @@ -12643,9 +7198,7 @@ /obj/structure/surface/table/almayer, /obj/item/trash/cigbutt, /obj/item/ashtray/glass, -/turf/open/floor/almayer{ - icon_state = "greenfull" - }, +/turf/open/floor/almayer/greenfull, /area/almayer/living/offices) "aUM" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -12654,45 +7207,25 @@ /obj/structure/bed/chair/office/dark{ dir = 8 }, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "green" - }, +/turf/open/floor/almayer/green/southwest, /area/almayer/living/offices) -"aUP" = ( -/obj/structure/bed/chair/office/dark{ - dir = 8 - }, -/turf/open/floor/carpet, -/area/almayer/living/commandbunks) "aUY" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/east, /area/almayer/squads/bravo) "aUZ" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/west, /area/almayer/squads/bravo) "aVd" = ( -/turf/open/floor/almayer{ - dir = 9; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/northwest, /area/almayer/squads/bravo) "aVf" = ( -/turf/open/floor/almayer{ - icon_state = "orange" - }, +/turf/open/floor/almayer/orange, /area/almayer/squads/bravo) "aVg" = ( /obj/structure/machinery/door/firedoor/border_only/almayer{ @@ -12704,31 +7237,26 @@ dir = 1; name = "\improper Officer's Quarters" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/living/bridgebunks) "aVi" = ( /obj/structure/disposalpipe/segment, /obj/structure/bed/chair/comfy{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "bluefull" - }, +/turf/open/floor/almayer/bluefull, /area/almayer/living/captain_mess) "aVk" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/bed/chair/comfy{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "bluefull" - }, +/turf/open/floor/almayer/bluefull, /area/almayer/living/captain_mess) -"aVl" = ( -/turf/closed/wall/almayer, -/area/almayer/engineering/lower_engineering) +"aVm" = ( +/obj/structure/closet/firecloset/full, +/turf/open/floor/almayer/cargo, +/area/almayer/shipboard/brig/starboard_hallway) "aVo" = ( /obj/structure/machinery/light{ dir = 1 @@ -12736,12 +7264,6 @@ /obj/structure/machinery/portable_atmospherics/canister/empty, /turf/open/floor/engine, /area/almayer/engineering/airmix) -"aVp" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 10 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/engineering/lower_engineering) "aVr" = ( /obj/structure/closet/secure_closet/freezer/meat, /obj/structure/sign/safety/fridge{ @@ -12752,59 +7274,51 @@ /obj/item/reagent_container/food/snacks/carpmeat, /obj/item/reagent_container/food/snacks/carpmeat, /obj/item/reagent_container/food/snacks/carpmeat, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/almayer/living/captain_mess) -"aVt" = ( -/obj/structure/largecrate/random/barrel/blue, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_s) "aVC" = ( /obj/structure/machinery/vending/cigarette, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/north, /area/almayer/engineering/upper_engineering/starboard) "aVF" = ( /obj/structure/closet/secure_closet/engineering_electrical, /obj/structure/machinery/light/small, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/command/telecomms) "aVG" = ( -/turf/open/floor/almayer{ - dir = 10; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/southwest, /area/almayer/command/cichallway) "aVH" = ( -/turf/open/floor/almayer{ - dir = 6; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/southeast, /area/almayer/command/cichallway) "aVI" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/structure/machinery/chem_dispenser/soda{ pixel_y = 5 }, -/turf/open/floor/almayer{ - icon_state = "bluefull" - }, +/turf/open/floor/almayer/bluefull, /area/almayer/command/cichallway) -"aVL" = ( +"aVK" = ( /obj/structure/machinery/camera/autoname/almayer{ dir = 8; name = "ship-grade camera" }, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "red" +/turf/open/floor/almayer/green/east, +/area/almayer/hallways/upper/fore_hallway) +"aVL" = ( +/obj/structure/machinery/camera/autoname/almayer{ + dir = 8; + name = "ship-grade camera" }, +/turf/open/floor/almayer/red/southeast, /area/almayer/lifeboat_pumps/north1) +"aVM" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/port_aft_hallway) "aVR" = ( /obj/structure/ladder{ height = 2; @@ -12814,18 +7328,14 @@ pixel_x = 23; pixel_y = -32 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/command/cichallway) "aVU" = ( /obj/structure/disposalpipe/trunk{ dir = 4 }, /obj/structure/machinery/disposal, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/bridgebunks) "aVV" = ( /obj/structure/pipes/standard/simple/hidden/supply, @@ -12833,16 +7343,11 @@ dir = 8; icon_state = "pipe-c" }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/bridgebunks) "aVW" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/almayer/red/north, /area/almayer/lifeboat_pumps/north1) "aVX" = ( /obj/structure/machinery/door/poddoor/almayer/open{ @@ -12854,69 +7359,57 @@ dir = 1; name = "\improper Officer's Quarters" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/obj/structure/machinery/door/firedoor/border_only/almayer, +/turf/open/floor/almayer/test_floor4, /area/almayer/living/bridgebunks) -"aVY" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" - }, -/area/almayer/hallways/stern_hallway) "aWb" = ( /obj/structure/machinery/computer/working_joe{ dir = 4; - pixel_x = -17 + pixel_x = -17; + pixel_y = 8 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orangecorner" +/obj/structure/machinery/door_control/brbutton{ + id = "engie_store"; + name = "Emergency Storage"; + pixel_x = -2; + pixel_y = 26; + req_one_access_txt = "6" + }, +/obj/structure/machinery/computer/cameras/almayer/ares{ + dir = 4; + pixel_x = -17; + pixel_y = -6 }, +/turf/open/floor/almayer/orangecorner/north, /area/almayer/engineering/ce_room) "aWc" = ( /obj/structure/sign/safety/maint{ pixel_x = 8; pixel_y = -32 }, -/turf/open/floor/almayer{ - icon_state = "silver" - }, +/turf/open/floor/almayer/silver, /area/almayer/engineering/port_atmos) -"aWd" = ( -/turf/open/floor/almayer{ - icon_state = "mono" - }, -/area/almayer/hallways/stern_hallway) -"aWf" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 +"aWg" = ( +/obj/structure/machinery/door_control{ + id = "CMP Office Shutters"; + name = "CMP Office Shutters"; + pixel_y = 32; + req_one_access_txt = "24;31" }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" +/obj/structure/machinery/door_control{ + id = "Brig Lockdown Shutters"; + name = "Brig Lockdown Shutters"; + pixel_y = 24; + req_access_txt = "3" }, -/area/almayer/hallways/stern_hallway) +/turf/open/floor/almayer/red/north, +/area/almayer/shipboard/brig/chief_mp_office) "aWk" = ( /obj/structure/machinery/power/apc/almayer{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/bridgebunks) -"aWl" = ( -/obj/structure/machinery/light{ - dir = 8 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "green" - }, -/area/almayer/hallways/aft_hallway) "aWm" = ( /obj/structure/machinery/light{ dir = 1 @@ -12925,10 +7418,7 @@ icon_state = "NW-out"; pixel_y = 1 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/almayer/red/northeast, /area/almayer/lifeboat_pumps/north1) "aWn" = ( /obj/structure/machinery/light{ @@ -12936,10 +7426,7 @@ unslashable = 1 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/almayer/red/southeast, /area/almayer/lifeboat_pumps/north1) "aWo" = ( /obj/structure/pipes/unary/outlet_injector, @@ -12953,44 +7440,28 @@ /area/almayer/engineering/airmix) "aWq" = ( /obj/structure/machinery/vending/cola, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/bridgebunks) -"aWr" = ( -/obj/structure/window/framed/almayer/hull, -/turf/open/floor/plating, -/area/almayer/engineering/lower_engineering) -"aWs" = ( -/obj/structure/machinery/power/apc/almayer{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_m_s) "aWt" = ( /obj/structure/machinery/vending/coffee, /obj/structure/sign/safety/coffee{ pixel_x = 8; pixel_y = 32 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/bridgebunks) "aWu" = ( /obj/structure/sign/safety/escapepod{ pixel_x = 8; pixel_y = -32 }, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/almayer/red/southeast, /area/almayer/lifeboat_pumps/north1) "aWw" = ( /obj/structure/window/framed/almayer, +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 + }, /turf/open/floor/plating, /area/almayer/living/gym) "aWz" = ( @@ -13000,27 +7471,8 @@ id = "CIC Lockdown"; name = "\improper Combat Information Center Blast Door" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/lifeboat_pumps/south1) -"aWA" = ( -/obj/structure/toilet{ - pixel_y = 13 - }, -/obj/item/paper_bin/uscm{ - pixel_x = 9; - pixel_y = -3 - }, -/obj/structure/machinery/light/small{ - dir = 4 - }, -/obj/item/prop/magazine/dirty{ - pixel_x = -6; - pixel_y = -10 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/living/captain_mess) "aWD" = ( /obj/structure/window/framed/almayer, /obj/structure/machinery/door/firedoor/border_only/almayer{ @@ -13035,43 +7487,17 @@ /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper Conference and Office Area" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/living/offices) "aWF" = ( /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 2 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/living/offices) -"aWH" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "blue" - }, -/area/almayer/hallways/aft_hallway) "aWM" = ( -/obj/structure/machinery/status_display{ - pixel_y = 30 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/starboard_hallway) -"aWR" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/almayer, -/area/almayer/hallways/starboard_hallway) -"aWS" = ( -/obj/structure/flora/pottedplant{ - icon_state = "pottedplant_17"; - pixel_x = -5; - pixel_y = 10 - }, -/turf/open/floor/wood/ship, -/area/almayer/command/corporateliason) +/turf/open/floor/almayer/greencorner/east, +/area/almayer/hallways/upper/fore_hallway) "aWT" = ( /obj/structure/machinery/door/airlock/almayer/maint{ dir = 1 @@ -13079,9 +7505,7 @@ /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 2 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/squads/alpha) "aWV" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ @@ -13120,30 +7544,21 @@ /turf/open/floor/wood/ship, /area/almayer/living/basketball) "aXe" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/almayer/red/north, /area/almayer/lifeboat_pumps/south1) "aXh" = ( /obj/structure/largecrate/random/secure, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) "aXj" = ( /obj/structure/largecrate/random/barrel/white, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) "aXx" = ( /obj/structure/machinery/cryopod{ pixel_y = 6 }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/engineering/port_atmos) "aXA" = ( /obj/structure/sign/safety/hvac_old{ @@ -13155,111 +7570,17 @@ icon_state = "W"; pixel_x = -1 }, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/southwest, /area/almayer/engineering/port_atmos) -"aXE" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer, -/area/almayer/hallways/stern_hallway) -"aXQ" = ( -/obj/structure/sign/safety/nonpress_0g{ - pixel_x = 8; - pixel_y = -32 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/hull/lower_hull/l_a_p) -"aXS" = ( -/obj/structure/machinery/alarm/almayer{ - dir = 1 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/starboard_hallway) -"aXT" = ( -/obj/structure/pipes/standard/cap/hidden{ - dir = 4 - }, -/obj/structure/sign/safety/life_support{ - pixel_x = 8; - pixel_y = -25 - }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, -/area/almayer/hallways/stern_hallway) -"aYc" = ( -/obj/structure/machinery/power/apc/almayer{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_a_s) +"aXD" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/upper/port) "aYd" = ( /obj/structure/dropship_equipment/medevac_system, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/hallways/hangar) -"aYj" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/stern_hallway) -"aYm" = ( -/obj/structure/sign/safety/med_life_support{ - pixel_x = 15; - pixel_y = 32 - }, -/obj/structure/sign/safety/hazard{ - pixel_y = 32 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_side" - }, -/area/almayer/medical/lower_medical_medbay) -"aYn" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/aft_hallway) -"aYp" = ( -/obj/structure/window/framed/almayer, -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 - }, -/obj/structure/machinery/door/poddoor/shutters/almayer/cl/office/window, -/turf/open/floor/plating, -/area/almayer/command/corporateliason) -"aYq" = ( -/turf/open/floor/almayer{ - dir = 6; - icon_state = "red" - }, -/area/almayer/living/starboard_garden) -"aYr" = ( -/obj/structure/bed/chair/office/dark{ - dir = 8 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_m_s) -"aYs" = ( -/turf/open/floor/almayer{ - dir = 10; - icon_state = "red" - }, -/area/almayer/living/starboard_garden) "aYt" = ( /turf/open/floor/almayer, /area/almayer/hallways/hangar) @@ -13267,15 +7588,11 @@ /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) "aYz" = ( /obj/structure/closet/firecloset, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/hallways/hangar) "aYC" = ( /obj/structure/machinery/door/poddoor/almayer/open{ @@ -13286,19 +7603,8 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/hallways/hangar) -"aYD" = ( -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 1 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/stern_hallway) "aYE" = ( /obj/structure/platform, /obj/structure/platform{ @@ -13308,98 +7614,24 @@ dir = 6; layer = 3.51 }, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/almayer/red/southeast, /area/almayer/lifeboat_pumps/south2) -"aYI" = ( -/obj/structure/pipes/standard/manifold/hidden/supply, -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/starboard_hallway) -"aYO" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/starboard_hallway) +"aYH" = ( +/obj/structure/safe/cl_office, +/turf/open/floor/wood/ship, +/area/almayer/command/corporateliaison) "aYQ" = ( /obj/structure/machinery/bioprinter{ stored_metal = 125 }, -/turf/open/floor/almayer{ - icon_state = "sterile_green_corner" - }, +/turf/open/floor/almayer/sterile_green_corner, /area/almayer/medical/operating_room_one) "aYR" = ( /obj/structure/machinery/power/apc/almayer{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/north, /area/almayer/medical/operating_room_two) -"aYT" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/starboard_hallway) -"aYV" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 10 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/starboard_hallway) -"aYW" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/starboard_hallway) -"aYX" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/vents/pump/on, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/starboard_hallway) -"aYY" = ( -/obj/structure/disposalpipe/junction{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/starboard_hallway) -"aYZ" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/starboard_hallway) "aZe" = ( /obj/structure/machinery/alarm/almayer{ dir = 1 @@ -13415,50 +7647,8 @@ icon_state = "W"; pixel_x = -1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/alpha) -"aZg" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 1 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/starboard_hallway) -"aZi" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/starboard_hallway) -"aZl" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 10 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/starboard_hallway) -"aZm" = ( -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/turf/open/floor/almayer, -/area/almayer/hallways/starboard_hallway) -"aZn" = ( -/obj/structure/machinery/door/airlock/almayer/maint, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hull/lower_hull/l_a_s) "aZr" = ( /obj/structure/machinery/status_display{ pixel_y = 30 @@ -13471,6 +7661,12 @@ }, /turf/open/floor/wood/ship, /area/almayer/living/chapel) +"aZv" = ( +/obj/structure/machinery/door/airlock/almayer/maint{ + dir = 1 + }, +/turf/open/floor/almayer/test_floor4, +/area/almayer/maint/upper/u_m_p) "aZy" = ( /obj/structure/pipes/vents/scrubber{ dir = 1 @@ -13481,53 +7677,27 @@ /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/plating/plating_catwalk, /area/almayer/lifeboat_pumps/south1) -"aZB" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/starboard_umbilical) "aZC" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/almayer/red/north, /area/almayer/lifeboat_pumps/south1) -"aZE" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/aft_hallway) "aZF" = ( /obj/effect/step_trigger/teleporter_vector{ name = "Almayer_Down4"; vector_x = 19; vector_y = -104 }, -/turf/open/floor/almayer{ - allow_construction = 0 - }, +/turf/open/floor/almayer/no_build, /area/almayer/stair_clone/upper) -"aZH" = ( -/obj/structure/pipes/standard/manifold/hidden/supply, -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/stern_hallway) -"aZJ" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/turf/open/floor/wood/ship, -/area/almayer/command/corporateliason) +"aZI" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/p_stern) "aZK" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/medical/lower_medical_medbay) "aZL" = ( /obj/effect/decal/warning_stripes{ @@ -13537,66 +7707,39 @@ icon_state = "N"; pixel_y = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) -"aZM" = ( -/obj/structure/surface/rack, -/obj/item/storage/firstaid/adv/empty, -/obj/item/storage/firstaid/adv/empty, -/obj/item/storage/firstaid/adv/empty, -/turf/open/floor/almayer{ - icon_state = "sterile_green_corner" - }, -/area/almayer/medical/lower_medical_medbay) "aZO" = ( /obj/structure/machinery/landinglight/ds2/delaytwo, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) "aZP" = ( /obj/structure/machinery/landinglight/ds2/delayone, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) "aZQ" = ( /obj/structure/machinery/landinglight/ds2, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) "aZR" = ( /obj/structure/machinery/landinglight/ds2/delaythree, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) "aZV" = ( /obj/structure/machinery/landinglight/ds1/delaytwo, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) "aZW" = ( /obj/structure/machinery/landinglight/ds1/delayone, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) "aZX" = ( /obj/structure/machinery/landinglight/ds1, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) "aZY" = ( /obj/structure/machinery/landinglight/ds1/delaythree, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) "aZZ" = ( /obj/structure/machinery/door/poddoor/almayer/open{ @@ -13604,109 +7747,19 @@ id = "Hangar Lockdown"; name = "\improper Hangar Lockdown Blast Door" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/hallways/hangar) -"baa" = ( -/obj/structure/surface/table/almayer, -/obj/structure/sign/safety/terminal{ - pixel_x = -17 - }, -/obj/structure/machinery/faxmachine/corporate/liaison, -/turf/open/floor/wood/ship, -/area/almayer/command/corporateliason) -"bac" = ( -/obj/structure/surface/table/almayer, -/obj/structure/machinery/computer/emails, -/turf/open/floor/wood/ship, -/area/almayer/command/corporateliason) -"bad" = ( -/obj/structure/machinery/light, -/turf/open/floor/almayer, -/area/almayer/hallways/starboard_hallway) "baf" = ( /obj/structure/barricade/handrail/medical, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/west, /area/almayer/medical/lower_medical_lobby) "bag" = ( /obj/structure/machinery/optable, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/medical/operating_room_one) -"bai" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 5 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/starboard_hallway) -"bal" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/starboard_hallway) -"baq" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 9 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/starboard_hallway) -"bar" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 5 - }, -/obj/structure/sign/safety/maint{ - pixel_x = 8; - pixel_y = -32 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "SW-out" - }, -/turf/open/floor/almayer, -/area/almayer/hallways/starboard_hallway) -"bat" = ( -/obj/structure/machinery/door_control{ - id = "ARES Mainframe Right"; - name = "ARES Mainframe Lockdown"; - pixel_x = -24; - pixel_y = -24; - req_one_access_txt = "200;91;92" - }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, -/area/almayer/command/airoom) "baw" = ( /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/south1) -"bax" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "green" - }, -/area/almayer/hallways/aft_hallway) -"baB" = ( -/turf/open/floor/almayer{ - dir = 10; - icon_state = "silver" - }, -/area/almayer/hallways/aft_hallway) -"baD" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/wood/ship, -/area/almayer/command/corporateliason) "baG" = ( /obj/structure/largecrate/random/barrel/blue, /turf/open/floor/almayer, @@ -13715,26 +7768,24 @@ /obj/structure/machinery/landinglight/ds2/delaythree{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) "baI" = ( /turf/open/floor/plating, /area/almayer/hallways/hangar) +"baJ" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer, +/turf/open/floor/almayer/test_floor4, +/area/almayer/engineering/lower/engine_core) "baM" = ( /obj/structure/machinery/landinglight/ds2/delaythree{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) "baN" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) "baR" = ( /obj/structure/surface/table/almayer, @@ -13744,39 +7795,39 @@ /obj/structure/machinery/landinglight/ds1/delaythree{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) +"baW" = ( +/obj/structure/pipes/standard/manifold/hidden/supply, +/obj/structure/disposalpipe/junction{ + dir = 4; + icon_state = "pipe-j2" + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/starboard_midship_hallway) "baX" = ( /obj/structure/machinery/landinglight/ds1/delaythree{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) -"baY" = ( -/obj/structure/surface/table/almayer, -/obj/effect/spawner/random/powercell, -/obj/effect/spawner/random/powercell, -/obj/effect/spawner/random/bomb_supply, -/obj/effect/spawner/random/bomb_supply, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_s) "baZ" = ( /turf/closed/wall/almayer/white, /area/almayer/medical/lower_medical_lobby) +"bba" = ( +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12 + }, +/obj/structure/reagent_dispensers/fueltank{ + anchored = 1 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_f_p) "bbd" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/east, /area/almayer/medical/operating_room_one) "bbe" = ( /obj/structure/machinery/light{ @@ -13788,97 +7839,18 @@ /obj/effect/decal/warning_stripes{ icon_state = "SW-out" }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/briefing) -"bbg" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/starboard_hallway) -"bbh" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/machinery/light, -/turf/open/floor/almayer, -/area/almayer/hallways/starboard_hallway) "bbi" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/starboard_hallway) -"bbj" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/turf/open/floor/almayer, -/area/almayer/hallways/starboard_hallway) -"bbk" = ( -/obj/structure/barricade/handrail{ - dir = 8 - }, -/obj/structure/barricade/handrail{ - dir = 1; - pixel_y = 2 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor5" - }, -/area/almayer/hallways/starboard_hallway) -"bbl" = ( -/obj/structure/barricade/handrail{ +/obj/structure/machinery/door/airlock/almayer/security/glass/reinforced{ dir = 1; - pixel_y = 2 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor5" - }, -/area/almayer/hallways/starboard_hallway) -"bbm" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "cargo_arrow" - }, -/area/almayer/hallways/starboard_hallway) -"bbn" = ( -/obj/structure/machinery/camera/autoname/almayer{ - name = "ship-grade camera" - }, -/obj/structure/machinery/alarm/almayer{ - dir = 1 - }, -/obj/structure/machinery/suit_storage_unit/compression_suit/uscm, -/obj/structure/sign/safety/hazard{ - pixel_y = 32 - }, -/obj/structure/sign/safety/airlock{ - pixel_x = 15; - pixel_y = 32 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "NE-out"; - pixel_y = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/starboard_umbilical) -"bbp" = ( -/obj/effect/projector{ - name = "Almayer_Down4"; - vector_x = 19; - vector_y = -104 + name = "\improper Brig" }, -/turf/open/floor/almayer{ - allow_construction = 0 +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 }, -/area/almayer/hallways/aft_hallway) +/turf/open/floor/almayer/test_floor4, +/area/almayer/shipboard/brig/medical) "bbr" = ( /obj/structure/window/framed/almayer, /obj/structure/machinery/door/firedoor/border_only/almayer{ @@ -13889,88 +7861,24 @@ "bbs" = ( /turf/closed/wall/almayer, /area/almayer/living/cryo_cells) -"bbv" = ( -/obj/structure/largecrate/random/barrel/blue, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_a_s) -"bbx" = ( -/obj/structure/largecrate/random/case/double, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_s) "bby" = ( /obj/effect/decal/warning_stripes{ icon_state = "SE-out" }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/almayer/shipboard/starboard_point_defense) "bbz" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/almayer/shipboard/starboard_point_defense) "bbA" = ( /obj/effect/decal/warning_stripes{ icon_state = "SW-out" }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/almayer/shipboard/starboard_point_defense) -"bbB" = ( -/obj/effect/projector{ - name = "Almayer_Up1"; - vector_x = -19; - vector_y = 98 - }, -/turf/open/floor/almayer{ - allow_construction = 0 - }, -/area/almayer/hallways/starboard_hallway) -"bbC" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/obj/effect/projector{ - name = "Almayer_Up1"; - vector_x = -19; - vector_y = 98 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/starboard_hallway) -"bbL" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "green" - }, -/area/almayer/hallways/aft_hallway) -"bbO" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "green" - }, -/area/almayer/hallways/starboard_hallway) -"bbR" = ( -/obj/structure/machinery/light/small, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_f_p) "bbS" = ( /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/starboard_point_defense) @@ -13980,18 +7888,9 @@ }, /turf/open/floor/almayer, /area/almayer/shipboard/starboard_missiles) -"bbX" = ( -/obj/effect/decal/cleanable/blood/oil, -/obj/structure/machinery/constructable_frame, -/turf/open/floor/almayer{ - icon_state = "mono" - }, -/area/almayer/lifeboat_pumps/north2) "bbY" = ( /obj/structure/machinery/cm_vending/clothing/smartgun/alpha, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/alpha) "bbZ" = ( /obj/structure/bed/chair{ @@ -14008,9 +7907,7 @@ pixel_x = 15; pixel_y = 32 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/alpha) "bcb" = ( /obj/effect/decal/warning_stripes{ @@ -14022,17 +7919,13 @@ /obj/structure/prop/almayer/hangar_stencil{ icon_state = "dropship2" }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) "bcc" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) "bcd" = ( /obj/effect/decal/warning_stripes{ @@ -14041,18 +7934,24 @@ /obj/structure/machinery/landinglight/ds2{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) +"bcg" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W"; + pixel_x = -1 + }, +/obj/structure/bed/sofa/south/white/left{ + pixel_y = 16 + }, +/turf/open/floor/almayer/silver/northwest, +/area/almayer/maint/upper/u_m_p) "bcm" = ( /turf/closed/wall/almayer, /area/almayer/hallways/hangar) "bco" = ( /obj/structure/machinery/cm_vending/gear/medic, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/alpha) "bcp" = ( /obj/effect/decal/warning_stripes{ @@ -14062,10 +7961,11 @@ icon_state = "S" }, /obj/structure/prop/almayer/hangar_stencil, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) +"bct" = ( +/turf/open/floor/almayer/red/west, +/area/almayer/maint/upper/u_a_p) "bcw" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -14074,9 +7974,7 @@ /obj/structure/machinery/landinglight/ds1/delaytwo{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) "bcx" = ( /obj/structure/machinery/light{ @@ -14089,23 +7987,15 @@ /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) "bcz" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/north, /area/almayer/medical/chemistry) "bcA" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/north, /area/almayer/medical/chemistry) "bcC" = ( /obj/item/reagent_container/glass/beaker/bluespace, @@ -14114,29 +8004,20 @@ pixel_x = 8; pixel_y = 32 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/north, /area/almayer/medical/chemistry) "bcD" = ( /obj/structure/bed/stool, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/east, /area/almayer/medical/chemistry) "bcE" = ( /obj/structure/machinery/cm_vending/gear/engi, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/alpha) "bcK" = ( /obj/structure/machinery/smartfridge/chemistry, -/turf/open/floor/almayer{ - icon_state = "sterile_green" - }, +/obj/structure/machinery/door/firedoor/border_only/almayer, +/turf/open/floor/almayer/sterile_green, /area/almayer/medical/chemistry) "bcL" = ( /obj/structure/machinery/door_control{ @@ -14145,27 +8026,26 @@ normaldoorcontrol = 1; pixel_x = 23 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/east, /area/almayer/medical/operating_room_one) +"bcM" = ( +/obj/structure/sign/safety/ladder{ + pixel_x = 8; + pixel_y = 32 + }, +/turf/open/floor/almayer/orange/north, +/area/almayer/engineering/lower) "bcP" = ( /obj/structure/pipes/vents/scrubber{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/medical/operating_room_two) "bcR" = ( /obj/structure/sink{ pixel_y = 32 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/north, /area/almayer/medical/operating_room_one) "bcS" = ( /obj/structure/machinery/door_control{ @@ -14174,26 +8054,18 @@ pixel_y = 25 }, /obj/structure/machinery/iv_drip, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/north, /area/almayer/medical/operating_room_one) "bcV" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/medical/operating_room_two) "bcZ" = ( /obj/structure/surface/table/almayer, /obj/item/storage/box/masks, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/almayer/red/north, /area/almayer/squads/alpha) "bda" = ( /obj/structure/machinery/door_control{ @@ -14202,10 +8074,7 @@ normaldoorcontrol = 1; pixel_x = 23 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/east, /area/almayer/medical/operating_room_two) "bdd" = ( /turf/closed/wall/almayer, @@ -14217,10 +8086,6 @@ }, /turf/open/floor/plating, /area/almayer/living/briefing) -"bdi" = ( -/obj/structure/largecrate/random/barrel/white, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_s) "bdj" = ( /turf/open/floor/almayer, /area/almayer/squads/req) @@ -14228,9 +8093,7 @@ /obj/structure/barricade/handrail{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "test_floor5" - }, +/turf/open/floor/almayer/test_floor5, /area/almayer/squads/req) "bdl" = ( /turf/closed/wall/almayer, @@ -14243,46 +8106,22 @@ pixel_y = -1 }, /obj/structure/largecrate/random/case/double, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/squads/req) -"bdn" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_s) -"bdo" = ( -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/hull/lower_hull/l_a_s) "bdr" = ( /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/alpha) "bds" = ( /obj/structure/machinery/cm_vending/clothing/specialist/alpha, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/alpha) "bdv" = ( /obj/structure/machinery/cm_vending/clothing/leader/alpha, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/alpha) "bdw" = ( /obj/structure/machinery/cm_vending/sorted/cargo_guns/squad_prep, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/almayer/red/northwest, /area/almayer/living/cryo_cells) "bdy" = ( /obj/structure/machinery/door/airlock/almayer/secure/reinforced{ @@ -14290,32 +8129,22 @@ name = "\improper Exterior Airlock"; req_access = null }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/shipboard/starboard_point_defense) "bdz" = ( /obj/structure/machinery/door/airlock/almayer/marine/alpha/smart, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/squads/alpha) "bdA" = ( /obj/structure/machinery/cm_vending/clothing/medic/alpha, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/alpha) "bdC" = ( -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/alpha) "bdD" = ( /obj/structure/machinery/cm_vending/clothing/engi/alpha, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/alpha) "bdH" = ( /turf/open/space/basic, @@ -14339,9 +8168,7 @@ pixel_x = 15; pixel_y = 32 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/alpha) "bdK" = ( /obj/structure/largecrate/random/case/small, @@ -14357,25 +8184,19 @@ /obj/structure/pipes/vents/scrubber{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) "bdO" = ( /obj/structure/machinery/landinglight/ds2/delayone{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) "bdU" = ( /obj/structure/machinery/landinglight/ds2/delayone{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) "bdV" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ @@ -14389,43 +8210,26 @@ vector_x = -19; vector_y = 98 }, -/turf/open/floor/plating/almayer{ - allow_construction = 0 - }, +/turf/open/floor/plating/almayer/no_build, /area/almayer/stair_clone) "bea" = ( /obj/structure/machinery/landinglight/ds1/delayone{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) "beg" = ( /obj/structure/machinery/landinglight/ds1/delayone{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) "bei" = ( -/turf/open/floor/almayer{ - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side, /area/almayer/medical/lower_medical_lobby) "bej" = ( -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/medical/chemistry) -"bek" = ( -/obj/structure/machinery/cm_vending/sorted/medical/marinemed, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_side" - }, -/area/almayer/medical/lower_medical_lobby) "ben" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -14434,9 +8238,7 @@ dir = 4; icon_state = "pipe-j2" }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/medical/lower_medical_lobby) "bep" = ( /obj/structure/surface/table/almayer, @@ -14461,10 +8263,7 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/north, /area/almayer/medical/lower_medical_lobby) "ber" = ( /obj/effect/decal/warning_stripes{ @@ -14476,69 +8275,60 @@ name = "North Checkpoint Shutters"; req_one_access_txt = "3;12;19" }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/briefing) "bet" = ( /obj/structure/bed/stool, /obj/structure/pipes/standard/simple/hidden/supply{ dir = 9 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/east, /area/almayer/medical/chemistry) "bev" = ( -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/medical/operating_room_one) "bew" = ( /obj/structure/surface/table/almayer, /obj/item/storage/box/masks, -/turf/open/floor/almayer{ - icon_state = "orange" - }, +/turf/open/floor/almayer/orange, /area/almayer/squads/bravo) "bez" = ( /obj/structure/closet/secure_closet/medical2, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "sterile_green_corner" - }, +/turf/open/floor/almayer/sterile_green_corner/east, /area/almayer/medical/operating_room_one) -"beB" = ( -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/starboard_hallway) "beE" = ( /obj/structure/platform{ dir = 1 }, /turf/open/floor/almayer, /area/almayer/living/chapel) -"beG" = ( -/obj/structure/machinery/disposal, -/obj/structure/disposalpipe/trunk{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_s) "beH" = ( /turf/open/floor/almayer, /area/almayer/living/briefing) -"beI" = ( +"beL" = ( +/obj/item/device/radio/intercom{ + freerange = 1; + name = "General Listening Channel"; + pixel_y = 28 + }, /obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" + dir = 4 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_s) +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer/plate, +/area/almayer/engineering/lower/engine_core) +"beN" = ( +/obj/structure/pipes/standard/cap/hidden{ + dir = 4 + }, +/obj/structure/sign/safety/life_support{ + pixel_x = 8; + pixel_y = -25 + }, +/turf/open/floor/almayer/mono, +/area/almayer/lifeboat_pumps/north2) "beP" = ( /obj/item/stack/catwalk, /obj/structure/disposalpipe/segment{ @@ -14553,30 +8343,21 @@ /area/almayer/living/briefing) "beR" = ( /obj/structure/machinery/door/airlock/almayer/marine/alpha/medic, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/squads/alpha) "beS" = ( /obj/structure/machinery/door/airlock/almayer/marine/alpha/engineer, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/squads/alpha) "beT" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/almayer/red/north, /area/almayer/squads/alpha) "beU" = ( /obj/structure/machinery/cm_vending/gear/leader, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/alpha) "beV" = ( /obj/structure/disposalpipe/segment, @@ -14588,10 +8369,7 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/west, /area/almayer/medical/lower_medical_medbay) "beZ" = ( /obj/structure/platform_decoration{ @@ -14599,65 +8377,28 @@ }, /turf/open/floor/almayer, /area/almayer/living/chapel) -"bfb" = ( -/obj/structure/surface/table/almayer, -/obj/effect/spawner/random/toolbox, -/obj/effect/spawner/random/technology_scanner, -/obj/effect/spawner/random/technology_scanner, -/obj/structure/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/almayer{ - icon_state = "plate" +"bfd" = ( +/obj/structure/machinery/light{ + dir = 1 }, -/area/almayer/hull/lower_hull/l_m_s) -"bfc" = ( -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_p) -"bfe" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, -/area/almayer/engineering/upper_engineering/port) +/turf/open/floor/almayer/green/north, +/area/almayer/hallways/lower/port_midship_hallway) "bfl" = ( -/turf/open/floor/almayer{ - dir = 5; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/northeast, /area/almayer/living/cryo_cells) "bfm" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/northwest, /area/almayer/living/cryo_cells) "bfn" = ( -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/alpha_bravo_shared) "bfo" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "redcorner" - }, +/turf/open/floor/almayer/redcorner/north, /area/almayer/living/cryo_cells) "bfs" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orangecorner" - }, -/area/almayer/engineering/lower_engineering) +/turf/closed/wall/almayer/reinforced, +/area/almayer/maint/hull/lower/l_f_s) "bft" = ( /obj/structure/disposalpipe/junction{ dir = 4 @@ -14668,10 +8409,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "redcorner" - }, +/turf/open/floor/almayer/redcorner/east, /area/almayer/squads/alpha) "bfw" = ( /obj/structure/disposalpipe/segment{ @@ -14682,19 +8420,13 @@ name = "General Listening Channel"; pixel_y = 28 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/almayer/red/north, /area/almayer/squads/alpha) "bfx" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/almayer/red/north, /area/almayer/squads/alpha) "bfy" = ( /obj/structure/disposalpipe/segment{ @@ -14709,22 +8441,8 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/almayer/red/north, /area/almayer/squads/alpha) -"bfA" = ( -/obj/structure/surface/table/almayer, -/obj/item/storage/toolbox/electrical, -/obj/item/storage/toolbox/electrical, -/obj/structure/machinery/light{ - dir = 8 - }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/engineering/engine_core) "bfC" = ( /obj/structure/machinery/alarm/almayer{ dir = 1 @@ -14732,10 +8450,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/almayer/red/north, /area/almayer/squads/alpha) "bfD" = ( /obj/structure/disposalpipe/segment{ @@ -14744,10 +8459,7 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/almayer/red/north, /area/almayer/squads/alpha) "bfE" = ( /obj/structure/pipes/vents/scrubber{ @@ -14756,10 +8468,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "redcorner" - }, +/turf/open/floor/almayer/redcorner/north, /area/almayer/squads/alpha) "bfJ" = ( /obj/structure/surface/table/almayer, @@ -14775,24 +8484,17 @@ /obj/structure/machinery/landinglight/ds2/delaytwo{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) -"bfP" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 5 - }, -/obj/effect/decal/cleanable/dirt, +"bfO" = ( +/obj/structure/pipes/vents/pump/on, /turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_p) +/area/almayer/hallways/lower/repair_bay) "bfV" = ( /obj/structure/machinery/landinglight/ds2{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) "bfY" = ( /obj/structure/surface/table/almayer, @@ -14803,29 +8505,13 @@ /obj/structure/machinery/landinglight/ds1/delaytwo{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) -"bga" = ( -/turf/open/floor/almayer{ - icon_state = "redcorner" - }, -/area/almayer/hallways/starboard_hallway) -"bgc" = ( -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_p) "bgj" = ( /obj/structure/machinery/landinglight/ds1{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) "bgk" = ( /obj/structure/surface/table/almayer, @@ -14840,25 +8526,18 @@ pixel_x = 3; pixel_y = 3 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/west, /area/almayer/medical/chemistry) "bgl" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/supply{ dir = 6 }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/medical/chemistry) "bgm" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/medical/chemistry) "bgn" = ( /obj/structure/machinery/disposal, @@ -14869,10 +8548,7 @@ dir = 8; pixel_x = -24 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_corner" - }, +/turf/open/floor/almayer/sterile_green_corner/west, /area/almayer/medical/operating_room_two) "bgr" = ( /obj/structure/disposalpipe/segment{ @@ -14880,28 +8556,18 @@ icon_state = "pipe-c" }, /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/medical/operating_room_two) "bgs" = ( -/turf/open/floor/almayer{ - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side, /area/almayer/medical/operating_room_two) "bgt" = ( /obj/structure/closet/secure_closet/medical2, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "sterile_green_corner" - }, +/turf/open/floor/almayer/sterile_green_corner/east, /area/almayer/medical/operating_room_two) "bgu" = ( /obj/structure/machinery/chem_master, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "sterile_green_corner" - }, +/turf/open/floor/almayer/sterile_green_corner/east, /area/almayer/medical/chemistry) "bgv" = ( /obj/structure/machinery/door/airlock/almayer/medical{ @@ -14916,9 +8582,7 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/medical/operating_room_one) "bgw" = ( /obj/structure/window/framed/almayer/white, @@ -14942,25 +8606,19 @@ }, /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/medical/operating_room_two) "bgz" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/medical/operating_room_one) "bgA" = ( /obj/structure/pipes/vents/scrubber{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/medical/operating_room_one) "bgC" = ( /obj/structure/surface/table/reinforced/prison, @@ -14968,29 +8626,27 @@ /obj/structure/sign/safety/biohazard{ pixel_x = -17 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/west, /area/almayer/medical/operating_room_one) -"bgG" = ( -/obj/structure/window/framed/almayer/white, -/turf/open/floor/plating, -/area/almayer/medical/chemistry) -"bgH" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" - }, -/area/almayer/hull/lower_hull/l_m_s) "bgK" = ( /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 2 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/living/chapel) +"bgM" = ( +/obj/structure/machinery/alarm/almayer{ + dir = 1 + }, +/turf/open/floor/almayer/orange/northeast, +/area/almayer/hallways/upper/midship_hallway) +"bgN" = ( +/obj/structure/sign/safety/medical{ + pixel_x = 8; + pixel_y = 32 + }, +/turf/open/floor/almayer/green/north, +/area/almayer/hallways/upper/fore_hallway) "bgO" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -14998,10 +8654,7 @@ /turf/open/floor/almayer, /area/almayer/living/briefing) "bgP" = ( -/turf/open/floor/almayer{ - dir = 9; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/northwest, /area/almayer/medical/lower_medical_medbay) "bgR" = ( /obj/structure/barricade/handrail{ @@ -15011,15 +8664,11 @@ dir = 8; name = "ship-grade camera" }, -/turf/open/floor/almayer{ - icon_state = "test_floor5" - }, +/turf/open/floor/almayer/test_floor5, /area/almayer/squads/req) "bgU" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor/almayer{ - icon_state = "red" - }, +/turf/open/floor/almayer/red, /area/almayer/squads/alpha) "bgW" = ( /obj/structure/machinery/cm_vending/clothing/marine/charlie{ @@ -15027,17 +8676,13 @@ layer = 4.1; pixel_y = -29 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/charlie) "bgY" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "red" - }, +/turf/open/floor/almayer/red, /area/almayer/squads/alpha) "bhf" = ( /obj/structure/machinery/light{ @@ -15047,40 +8692,17 @@ /obj/structure/sign/safety/laser{ pixel_y = 32 }, -/turf/open/floor/almayer{ - icon_state = "tcomms" - }, +/turf/open/floor/almayer/tcomms, /area/almayer/command/telecomms) "bhg" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 9 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/west, /area/almayer/living/cryo_cells) -"bhh" = ( -/obj/structure/machinery/door/poddoor/almayer{ - id = "n_umbilical"; - name = "\improper Umbillical Airlock"; - unacidable = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/starboard_umbilical) -"bhn" = ( -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 8 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/starboard_hallway) "bho" = ( /obj/structure/machinery/computer/med_data, -/turf/open/floor/almayer{ - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side, /area/almayer/medical/upper_medical) "bhq" = ( /obj/structure/machinery/light{ @@ -15091,62 +8713,45 @@ }, /turf/open/floor/almayer, /area/almayer/living/briefing) -"bht" = ( -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 1 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/engineering/lower_engineering) -"bhw" = ( -/obj/structure/pipes/standard/manifold/hidden/supply, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/engineering/lower_engineering) "bhx" = ( /obj/structure/bed/chair/wood/normal{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/chapel) -"bhB" = ( -/turf/closed/wall/almayer/reinforced, -/area/almayer/engineering/engine_core) -"bhC" = ( -/obj/structure/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_s) -"bhD" = ( -/obj/structure/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/hull/lower_hull/l_a_s) +"bhy" = ( +/obj/structure/surface/rack, +/obj/effect/spawner/random/tool, +/obj/effect/spawner/random/tool, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_m_p) "bhG" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/alpha) +"bhI" = ( +/obj/structure/stairs/perspective{ + dir = 8; + icon_state = "p_stair_full" + }, +/turf/open/floor/almayer/plating/northeast, +/area/almayer/engineering/lower/engine_core) "bhJ" = ( /obj/structure/machinery/cm_vending/clothing/staff_officer{ density = 0; pixel_x = -30 }, -/turf/open/floor/almayer{ - icon_state = "bluefull" - }, +/turf/open/floor/almayer/bluefull, /area/almayer/living/bridgebunks) +"bhR" = ( +/obj/structure/machinery/power/apc/almayer{ + dir = 1 + }, +/turf/open/floor/almayer/blue/north, +/area/almayer/hallways/upper/fore_hallway) "bhT" = ( /obj/structure/cargo_container/lockmart/mid{ layer = 3.1; @@ -15161,6 +8766,17 @@ }, /turf/open/floor/almayer, /area/almayer/hallways/hangar) +"bhV" = ( +/obj/structure/ladder/fragile_almayer{ + height = 2; + id = "kitchen" + }, +/obj/structure/sign/safety/ladder{ + pixel_x = 8; + pixel_y = 24 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_m_p) "biq" = ( /obj/structure/surface/table/almayer, /obj/item/reagent_container/glass/beaker/large, @@ -15172,17 +8788,8 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/west, /area/almayer/medical/chemistry) -"bit" = ( -/turf/open/floor/almayer{ - dir = 10; - icon_state = "green" - }, -/area/almayer/hallways/aft_hallway) "biu" = ( /obj/structure/machinery/door/airlock/almayer/medical/glass{ access_modified = 1; @@ -15193,9 +8800,10 @@ }, /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 }, +/turf/open/floor/almayer/test_floor4, /area/almayer/medical/chemistry) "biy" = ( /obj/structure/pipes/unary/freezer, @@ -15206,23 +8814,16 @@ pixel_x = 20; pixel_y = 32 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/north, /area/almayer/medical/cryo_tubes) "biA" = ( /turf/closed/wall/almayer/white, /area/almayer/medical/operating_room_three) -"biB" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull) +"biC" = ( +/obj/structure/largecrate/random/case, +/obj/structure/machinery/access_button/airlock_exterior, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_a_s) "biF" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/roller/surgical, @@ -15236,27 +8837,28 @@ pixel_x = -8; pixel_y = 14 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_corner" - }, +/turf/open/floor/almayer/sterile_green_corner/west, /area/almayer/medical/lower_medical_medbay) +"biJ" = ( +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_22" + }, +/obj/structure/machinery/camera/autoname/almayer{ + dir = 1; + name = "ship-grade camera" + }, +/obj/effect/decal/warning_stripes{ + icon_state = "SW-out"; + pixel_x = -1 + }, +/turf/open/floor/almayer/red, +/area/almayer/command/lifeboat) "biL" = ( /obj/structure/platform{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/almayer/red/east, /area/almayer/lifeboat_pumps/north2) -"biT" = ( -/obj/structure/machinery/light, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "red" - }, -/area/almayer/living/starboard_garden) "biV" = ( /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 8 @@ -15264,75 +8866,48 @@ /obj/structure/window/framed/almayer, /turf/open/floor/plating, /area/almayer/living/starboard_garden) -"bja" = ( -/obj/structure/surface/table/almayer, -/obj/structure/machinery/computer/secure_data{ - dir = 1 - }, -/turf/open/floor/almayer, -/area/almayer/shipboard/brig/main_office) -"bjb" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/starboard_hallway) -"bjd" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orangecorner" - }, -/area/almayer/engineering/lower_engineering) -"bje" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 1 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, -/area/almayer/engineering/lower_engineering) "bjg" = ( -/turf/open/floor/almayer, -/area/almayer/engineering/lower_engineering) -"bjl" = ( +/obj/item/trash/chips, +/turf/open/floor/plating, +/area/almayer/maint/lower/constr) +"bjk" = ( +/obj/structure/machinery/door_control{ + id = "perma_lockdown_2"; + name = "Maint Lockdown Shutters"; + pixel_y = -20; + req_one_access_txt = "24;31" + }, /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/engineering/lower_engineering) -"bjn" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer, -/obj/structure/machinery/door/airlock/multi_tile/almayer/engidoor{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +/obj/structure/sign/safety/bulkhead_door{ + pixel_y = -34 }, -/area/almayer/engineering/engine_core) +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/perma) "bjs" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/bravo) -"bju" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" +"bjt" = ( +/obj/structure/bed/chair{ + dir = 8 }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/p_stern) +"bju" = ( +/turf/open/floor/almayer/red/north, /area/almayer/shipboard/brig/processing) -"bjy" = ( -/obj/docking_port/stationary/emergency_response/port3, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" +"bjv" = ( +/obj/structure/disposalpipe/junction, +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 4 }, -/area/almayer/hull/lower_hull/l_a_p) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/upper/fore_hallway) "bjA" = ( -/turf/open/floor/almayer{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/almayer/red/northwest, /area/almayer/squads/alpha) "bjD" = ( /obj/structure/disposalpipe/segment{ @@ -15342,68 +8917,15 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "cargo_arrow" - }, +/turf/open/floor/almayer/cargo_arrow, /area/almayer/living/offices) -"bjI" = ( -/obj/structure/machinery/portable_atmospherics/powered/scrubber, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_s) -"bjJ" = ( -/obj/structure/pipes/standard/manifold/hidden/supply, -/obj/structure/disposalpipe/segment{ - dir = 4 +"bjQ" = ( +/obj/structure/machinery/shower{ + dir = 8 }, +/obj/structure/window/reinforced, /turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/aft_hallway) -"bjL" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orangecorner" - }, -/area/almayer/hallways/starboard_umbilical) -"bjM" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/starboard_umbilical) -"bjN" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, -/turf/open/floor/almayer{ - icon_state = "orangecorner" - }, -/area/almayer/hallways/starboard_umbilical) -"bjO" = ( -/obj/structure/machinery/power/apc/almayer{ - dir = 1 - }, -/obj/structure/sign/safety/hazard{ - pixel_y = 32 - }, -/obj/structure/sign/safety/airlock{ - pixel_x = 15; - pixel_y = 32 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "NW-out"; - pixel_y = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/starboard_umbilical) +/area/almayer/shipboard/brig/cells) "bjR" = ( /obj/structure/cargo_container/arious/right, /turf/open/floor/almayer, @@ -15412,59 +8934,48 @@ /obj/structure/machinery/landinglight/ds2{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) +"bjZ" = ( +/obj/structure/machinery/cm_vending/clothing/marine/snowflake, +/turf/open/floor/almayer/cargo, +/area/almayer/living/gym) +"bkb" = ( +/turf/open/floor/almayer/red/east, +/area/almayer/hallways/upper/aft_hallway) "bkd" = ( /obj/structure/machinery/landinglight/ds2/delaytwo{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) "bkg" = ( /obj/structure/machinery/door/airlock/almayer/marine/alpha/spec, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/squads/alpha) "bkh" = ( /obj/structure/machinery/landinglight/ds1{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) +"bko" = ( +/obj/structure/bed/chair/comfy/charlie{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer/plate, +/area/almayer/living/briefing) "bks" = ( /obj/structure/machinery/landinglight/ds1/delaytwo{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) -"bkt" = ( -/obj/structure/pipes/standard/simple/visible{ - dir = 4 - }, -/obj/structure/machinery/camera/autoname/almayer{ - name = "ship-grade camera" - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, -/area/almayer/engineering/lower_engineering) "bky" = ( /obj/structure/machinery/cryo_cell, /obj/structure/pipes/standard/cap/hidden, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/north, /area/almayer/medical/cryo_tubes) "bkz" = ( /obj/structure/machinery/door/firedoor/border_only/almayer{ @@ -15478,23 +8989,11 @@ req_one_access = null }, /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/medical/lockerroom) "bkA" = ( /turf/closed/wall/almayer/white, /area/almayer/medical/chemistry) -"bkD" = ( -/obj/structure/machinery/door/poddoor/railing{ - dir = 2; - id = "vehicle_elevator_railing" - }, -/obj/structure/pipes/standard/manifold/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "mono" - }, -/area/almayer/hallways/vehiclehangar) "bkE" = ( /obj/structure/window/framed/almayer/white, /obj/structure/machinery/door/firedoor/border_only/almayer{ @@ -15506,6 +9005,13 @@ }, /turf/open/floor/plating, /area/almayer/medical/operating_room_one) +"bkM" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W"; + pixel_x = -1 + }, +/turf/open/floor/almayer/silver/west, +/area/almayer/maint/upper/u_m_p) "bkN" = ( /obj/item/storage/firstaid/toxin{ pixel_x = 6; @@ -15529,30 +9035,19 @@ /obj/item/device/healthanalyzer, /obj/item/device/healthanalyzer, /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/almayer{ - icon_state = "sterile_green" - }, +/turf/open/floor/almayer/sterile_green, /area/almayer/medical/lockerroom) -"bkQ" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/aft_hallway) -"bkR" = ( -/obj/structure/platform_decoration{ - dir = 1 +"bkS" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/structure/stairs/perspective{ + dir = 1; + icon_state = "p_stair_full" }, -/area/almayer/hull/upper_hull/u_a_s) +/turf/open/floor/almayer, +/area/almayer/hallways/lower/repair_bay) "bkT" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -15560,9 +9055,7 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/medical/hydroponics) "bkU" = ( /obj/effect/decal/warning_stripes{ @@ -15571,38 +9064,8 @@ /obj/effect/landmark/late_join, /obj/effect/landmark/ert_spawns/distress_cryo, /obj/effect/landmark/start/senior, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/east, /area/almayer/living/cryo_cells) -"bkY" = ( -/obj/structure/machinery/camera/autoname/almayer{ - dir = 1; - name = "ship-grade camera" - }, -/turf/open/floor/almayer{ - icon_state = "green" - }, -/area/almayer/hallways/starboard_hallway) -"bkZ" = ( -/turf/closed/wall/almayer, -/area/almayer/engineering/engineering_workshop) -"blb" = ( -/obj/structure/sign/safety/hvac_old{ - pixel_x = 15; - pixel_y = 32 - }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, -/area/almayer/hallways/stern_hallway) -"bld" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer, -/area/almayer/engineering/lower_engineering) "blf" = ( /obj/structure/machinery/power/apc/almayer{ dir = 1 @@ -15610,10 +9073,18 @@ /obj/structure/surface/table/almayer, /obj/item/paper_bin/uscm, /obj/item/tool/pen, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/offices) +"bli" = ( +/obj/structure/machinery/door/window/brigdoor/southright{ + id = "Cell 6"; + name = "Cell 6" + }, +/obj/structure/sign/safety/six{ + pixel_x = -17 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/cells) "blj" = ( /obj/structure/surface/table/almayer, /obj/item/tool/hand_labeler, @@ -15621,43 +9092,19 @@ pixel_y = 30 }, /obj/item/tool/screwdriver, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/offices) "bll" = ( -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/offices) -"blm" = ( -/obj/structure/machinery/door/airlock/almayer/maint{ - name = "\improper Core Hatch" - }, -/obj/structure/machinery/door/firedoor/border_only/almayer, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/engineering/engine_core) "bln" = ( /obj/structure/sign/safety/cryo{ pixel_x = 3; pixel_y = 27 }, /obj/structure/machinery/cm_vending/sorted/marine_food, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/offices) -"blo" = ( -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/engineering/engine_core) "blp" = ( /obj/structure/surface/table/almayer, /obj/item/clipboard, @@ -15670,9 +9117,7 @@ pixel_x = 10; pixel_y = 9 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/offices) "blq" = ( /obj/structure/machinery/door/airlock/almayer/security/glass{ @@ -15685,9 +9130,8 @@ /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/almayer/test_floor4, /area/almayer/living/cryo_cells) "bls" = ( /obj/structure/pipes/vents/pump, @@ -15700,40 +9144,25 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/offices) "blA" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/north, /area/almayer/squads/bravo) "blB" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/north, /area/almayer/squads/bravo) "blJ" = ( -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/engineering/upper_engineering/starboard) "blZ" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/computer/med_data/laptop, -/turf/open/floor/almayer{ - icon_state = "sterile_green_corner" - }, +/turf/open/floor/almayer/sterile_green_corner, /area/almayer/medical/lockerroom) "bmb" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/west, /area/almayer/medical/lower_medical_lobby) "bmc" = ( /obj/structure/machinery/door/airlock/almayer/medical{ @@ -15746,9 +9175,7 @@ }, /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/medical/operating_room_three) "bmd" = ( /obj/structure/machinery/door/airlock/almayer/medical{ @@ -15761,9 +9188,7 @@ }, /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/medical/operating_room_four) "bmh" = ( /obj/structure/machinery/vending/cigarette{ @@ -15786,26 +9211,18 @@ pixel_x = -1; pixel_y = 1 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/north, /area/almayer/squads/bravo) "bmi" = ( /obj/structure/closet/secure_closet/medical2, -/turf/open/floor/almayer{ - icon_state = "sterile_green_corner" - }, +/turf/open/floor/almayer/sterile_green_corner, /area/almayer/medical/operating_room_three) "bmj" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/closet/secure_closet/surgical{ pixel_x = -30 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/west, /area/almayer/medical/operating_room_three) "bmk" = ( /obj/structure/machinery/disposal, @@ -15816,10 +9233,7 @@ dir = 8; pixel_x = -24 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_corner" - }, +/turf/open/floor/almayer/sterile_green_corner/north, /area/almayer/medical/operating_room_four) "bml" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -15830,28 +9244,25 @@ pixel_y = 6 }, /obj/item/tool/pen, -/turf/open/floor/almayer{ - icon_state = "greenfull" - }, +/turf/open/floor/almayer/greenfull, /area/almayer/living/offices) "bmn" = ( /obj/structure/machinery/vending/snack, -/turf/open/floor/almayer{ - icon_state = "sterile_green_corner" - }, +/turf/open/floor/almayer/sterile_green_corner, /area/almayer/medical/lower_medical_lobby) +"bmp" = ( +/obj/structure/surface/table/almayer, +/obj/item/storage/belt/utility/full, +/obj/item/clothing/glasses/welding, +/obj/structure/machinery/light, +/turf/open/floor/almayer/plate, +/area/almayer/engineering/lower/workshop) "bmr" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, /turf/open/floor/almayer, /area/almayer/living/briefing) -"bmu" = ( -/obj/structure/machinery/suit_storage_unit/compression_suit/uscm, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/starboard_umbilical) "bmv" = ( /obj/structure/machinery/door/airlock/almayer/marine/requisitions{ dir = 2; @@ -15862,35 +9273,15 @@ /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/squads/req) -"bmw" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" - }, -/area/almayer/hallways/starboard_umbilical) -"bmx" = ( -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/starboard_umbilical) -"bmy" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" - }, -/area/almayer/hallways/starboard_umbilical) "bmz" = ( /obj/structure/surface/table/almayer, /obj/item/tool/kitchen/utensil/spoon{ pixel_x = 10 }, /obj/item/reagent_container/food/snacks/hotchili, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/north, /area/almayer/shipboard/brig/cic_hallway) "bmB" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -15899,27 +9290,20 @@ /obj/structure/disposalpipe/segment{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "plating_striped" - }, +/turf/open/floor/almayer/plating_striped, /area/almayer/squads/req) "bmC" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 }, -/obj/structure/disposalpipe/segment{ +/obj/structure/disposalpipe/junction{ dir = 8; - icon_state = "pipe-c" - }, -/turf/open/floor/almayer{ - icon_state = "plate" + icon_state = "pipe-y" }, +/turf/open/floor/almayer/plate, /area/almayer/squads/req) "bmD" = ( -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/almayer/squads/req) "bmF" = ( /obj/structure/machinery/light{ @@ -15927,26 +9311,6 @@ }, /turf/open/floor/almayer, /area/almayer/living/gym) -"bmM" = ( -/obj/structure/machinery/vending/coffee, -/obj/structure/sign/safety/coffee{ - pixel_x = -17; - pixel_y = -8 - }, -/obj/structure/sign/safety/rewire{ - pixel_x = 8; - pixel_y = 32 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/engineering_workshop) -"bmN" = ( -/obj/structure/machinery/power/apc/almayer{ - dir = 1 - }, -/turf/open/floor/almayer, -/area/almayer/engineering/engineering_workshop) "bmO" = ( /obj/structure/disposalpipe/segment{ dir = 1; @@ -15955,58 +9319,17 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 5 }, -/turf/open/floor/almayer{ - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side, /area/almayer/medical/lower_medical_lobby) -"bmP" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/engineering_workshop) -"bmR" = ( -/obj/structure/machinery/cm_vending/sorted/tech/tool_storage, -/obj/structure/machinery/status_display{ - pixel_y = 30 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/engineering_workshop) "bmW" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/offices) "bmX" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "green" - }, +/turf/open/floor/almayer/green/east, /area/almayer/living/offices) -"bnc" = ( -/obj/structure/machinery/power/fusion_engine{ - name = "\improper S-52 fusion reactor 9" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/engineering/engine_core) -"bne" = ( -/obj/structure/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/hull/lower_hull/l_a_s) "bng" = ( /obj/structure/machinery/vending/cigarette{ density = 0; @@ -16018,18 +9341,13 @@ pixel_x = 17; pixel_y = 16 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "green" - }, +/turf/open/floor/almayer/green/northeast, /area/almayer/living/offices) "bni" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/briefing) "bnj" = ( /obj/item/storage/box/pillbottles, @@ -16039,10 +9357,7 @@ /obj/item/storage/box/pillbottles, /obj/item/storage/box/pillbottles, /obj/structure/closet/secure_closet/chemical, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_corner" - }, +/turf/open/floor/almayer/sterile_green_corner/north, /area/almayer/medical/chemistry) "bno" = ( /obj/structure/disposalpipe/junction{ @@ -16055,9 +9370,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "orangecorner" - }, +/turf/open/floor/almayer/orangecorner, /area/almayer/squads/bravo) "bnr" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -16070,9 +9383,7 @@ dir = 1; name = "ship-grade camera" }, -/turf/open/floor/almayer{ - icon_state = "orange" - }, +/turf/open/floor/almayer/orange, /area/almayer/squads/bravo) "bnt" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -16090,15 +9401,11 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "orange" - }, +/turf/open/floor/almayer/orange, /area/almayer/squads/bravo) "bny" = ( /obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/lifeboat_pumps/north1) "bnA" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -16110,9 +9417,7 @@ /obj/structure/machinery/door/airlock/multi_tile/almayer/marine/bravo{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/squads/bravo) "bnB" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -16121,20 +9426,8 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "cargo_arrow" - }, +/turf/open/floor/almayer/cargo_arrow/west, /area/almayer/squads/bravo) -"bnD" = ( -/obj/structure/disposalpipe/junction{ - dir = 4 - }, -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 1 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/aft_hallway) "bnH" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -16147,10 +9440,7 @@ pixel_x = -28 }, /obj/structure/bed/sofa/south/white/left, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_corner" - }, +/turf/open/floor/almayer/sterile_green_corner/north, /area/almayer/medical/lower_medical_lobby) "bnR" = ( /obj/structure/disposalpipe/segment{ @@ -16158,17 +9448,13 @@ icon_state = "pipe-c" }, /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/medical/operating_room_four) "bnS" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/device/megaphone, /obj/item/book/manual/medical_diagnostics_manual, -/turf/open/floor/almayer{ - icon_state = "sterile_green" - }, +/turf/open/floor/almayer/sterile_green, /area/almayer/medical/lockerroom) "bnT" = ( /obj/structure/machinery/door_control{ @@ -16177,10 +9463,7 @@ normaldoorcontrol = 1; pixel_x = 23 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/east, /area/almayer/medical/operating_room_three) "bnX" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -16193,9 +9476,7 @@ /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/bravo) "bnZ" = ( /obj/structure/surface/table/almayer, @@ -16203,34 +9484,13 @@ icon_state = "pottedplant_22"; pixel_y = 8 }, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/almayer/red/southeast, /area/almayer/lifeboat_pumps/south1) -"bob" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12 - }, -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12; - pixel_y = 12 - }, -/obj/structure/largecrate/random/secure, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_a_p) "bof" = ( /obj/structure/pipes/vents/scrubber{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/medical/operating_room_four) "boh" = ( /obj/structure/machinery/door_control{ @@ -16239,50 +9499,25 @@ normaldoorcontrol = 1; pixel_x = 23 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/east, /area/almayer/medical/operating_room_four) -"bop" = ( -/obj/structure/machinery/cm_vending/clothing/military_police{ - density = 0; - pixel_y = 16 - }, -/obj/structure/window/reinforced{ - dir = 4; - health = 80 - }, -/turf/open/floor/almayer{ - icon_state = "cargo" +"bom" = ( +/obj/structure/sign/safety/south{ + pixel_x = -17; + pixel_y = 8 }, -/area/almayer/shipboard/brig/general_equipment) +/turf/open/floor/almayer/blue/west, +/area/almayer/hallways/lower/port_midship_hallway) +"bop" = ( +/turf/open/floor/almayer/cargo/southwest, +/area/almayer/engineering/upper_engineering/port) "boq" = ( /obj/structure/bed/chair/comfy/alpha, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, +/turf/open/floor/almayer/redfull, /area/almayer/living/briefing) -"bot" = ( -/obj/structure/surface/table/almayer, -/obj/structure/machinery/light{ - dir = 8 - }, -/obj/effect/spawner/random/toolbox, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/starboard_umbilical) -"bou" = ( -/obj/structure/surface/table/almayer, -/obj/structure/machinery/light{ - dir = 4 - }, -/obj/item/tank/emergency_oxygen/double, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/starboard_umbilical) +"bos" = ( +/turf/closed/wall/almayer, +/area/almayer/maint/lower/s_bow) "boy" = ( /obj/effect/decal/warning_stripes{ icon_state = "SE-out" @@ -16290,9 +9525,7 @@ /obj/structure/machinery/gear{ id = "supply_elevator_gear" }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/squads/req) "boz" = ( /obj/structure/machinery/door/poddoor/railing{ @@ -16306,10 +9539,7 @@ dir = 2; id = "supply_elevator_railing" }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "cargo_arrow" - }, +/turf/open/floor/almayer/cargo_arrow/north, /area/almayer/squads/req) "boB" = ( /obj/effect/decal/warning_stripes{ @@ -16318,68 +9548,13 @@ /obj/structure/machinery/gear{ id = "supply_elevator_gear" }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/squads/req) -"boC" = ( -/obj/structure/barricade/handrail, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_a_p) -"boH" = ( -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/engineering_workshop) -"boI" = ( -/turf/open/floor/almayer, -/area/almayer/engineering/engineering_workshop) -"boL" = ( -/turf/open/floor/almayer, -/area/almayer/living/starboard_garden) -"boN" = ( -/obj/structure/surface/table/almayer, -/obj/item/book/manual/engineering_particle_accelerator, -/obj/item/folder/yellow, -/obj/structure/machinery/keycard_auth{ - pixel_x = -8; - pixel_y = 25 - }, -/obj/structure/sign/safety/high_rad{ - pixel_x = 32; - pixel_y = -8 - }, -/obj/structure/sign/safety/hazard{ - pixel_x = 32; - pixel_y = 7 - }, -/obj/structure/sign/safety/terminal{ - pixel_x = 14; - pixel_y = 26 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/engineering_workshop) -"boU" = ( -/obj/structure/platform{ - dir = 4; - layer = 2.7 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/engineering/engine_core) -"boV" = ( -/obj/structure/cargo_container/wy/left, -/obj/structure/prop/almayer/minigun_crate{ - pixel_x = 1; - pixel_y = 39 +"boV" = ( +/obj/structure/cargo_container/wy/left, +/obj/structure/prop/almayer/minigun_crate{ + pixel_x = 1; + pixel_y = 39 }, /turf/open/floor/almayer, /area/almayer/hallways/hangar) @@ -16387,30 +9562,17 @@ /obj/structure/pipes/standard/simple/visible{ dir = 5 }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/medical/lower_medical_medbay) "boY" = ( /obj/structure/surface/table/almayer, /obj/item/clipboard, -/turf/open/floor/almayer{ - icon_state = "greenfull" - }, +/turf/open/floor/almayer/greenfull, /area/almayer/living/offices) -"boZ" = ( -/obj/item/storage/box/donkpockets, -/obj/structure/surface/rack, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_s) "bpa" = ( /obj/structure/surface/table/almayer, /obj/item/device/flashlight/lamp, -/turf/open/floor/almayer{ - icon_state = "greenfull" - }, +/turf/open/floor/almayer/greenfull, /area/almayer/living/offices) "bpd" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -16427,43 +9589,24 @@ req_access = null; req_one_access_txt = "3;19" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/shipboard/port_missiles) "bpe" = ( /obj/structure/closet/secure_closet/personal/cabinet{ req_access = null }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/bridgebunks) -"bph" = ( -/obj/structure/bed/chair/comfy/orange, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 5 - }, -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/turf/open/floor/carpet, -/area/almayer/command/corporateliason) "bpj" = ( /obj/structure/dropship_equipment/fulton_system, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/hallways/hangar) "bpo" = ( /obj/structure/surface/table/almayer, /obj/item/clothing/glasses/regular, /obj/item/clothing/glasses/regular, /obj/item/clothing/glasses/regular, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/offices) "bpv" = ( /obj/effect/decal/warning_stripes{ @@ -16475,45 +9618,48 @@ name = "South Checkpoint Shutters"; req_one_access_txt = "3;12;19" }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/briefing) +"bpw" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SW-out"; + pixel_x = -1 + }, +/turf/open/floor/almayer/mono, +/area/almayer/lifeboat_pumps/south1) "bpz" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/medical/chemistry) +"bpA" = ( +/obj/structure/surface/table/almayer, +/obj/effect/decal/cleanable/dirt, +/obj/item/paper, +/obj/item/tool/pen{ + pixel_x = -5; + pixel_y = 2 + }, +/turf/open/floor/almayer/redfull, +/area/almayer/living/briefing) "bpC" = ( /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/bravo) "bpG" = ( /obj/structure/machinery/door/airlock/almayer/marine/bravo/medic, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/squads/bravo) "bpH" = ( /obj/structure/machinery/door/airlock/almayer/marine/bravo/engineer, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/squads/bravo) -"bpJ" = ( -/obj/structure/surface/rack, -/obj/effect/spawner/random/tool, -/obj/effect/spawner/random/tool, -/obj/effect/spawner/random/powercell, -/obj/effect/spawner/random/powercell, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_a_p) +"bpI" = ( +/obj/structure/closet/secure_closet/fridge/dry/stock, +/turf/open/floor/almayer/plate, +/area/almayer/living/grunt_rnr) "bpK" = ( /obj/structure/machinery/door/airlock/almayer/marine/alpha/sl, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/squads/alpha) "bpL" = ( /obj/structure/sign/poster{ @@ -16522,10 +9668,7 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/almayer/red/west, /area/almayer/squads/alpha) "bpQ" = ( /obj/structure/machinery/door/poddoor/railing{ @@ -16535,7 +9678,7 @@ /turf/open/floor/almayer, /area/almayer/squads/req) "bpR" = ( -/turf/open/floor/almayer/empty, +/turf/open/floor/almayer/empty/requisitions, /area/supply/station) "bpS" = ( /obj/structure/machinery/door/poddoor/railing{ @@ -16546,109 +9689,32 @@ /area/almayer/squads/req) "bpT" = ( /obj/structure/machinery/computer/supplycomp, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/almayer/green/north, /area/almayer/squads/req) -"bpU" = ( -/obj/structure/surface/table/almayer, -/obj/item/storage/firstaid/o2, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/starboard_umbilical) "bpV" = ( /obj/effect/landmark/ert_spawns/distress_cryo, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/living/cryo_cells) -"bpW" = ( -/obj/structure/surface/table/almayer, -/obj/effect/spawner/random/technology_scanner, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/starboard_umbilical) -"bpX" = ( -/obj/structure/window/framed/almayer, -/obj/structure/machinery/door/firedoor/border_only/almayer, -/turf/open/floor/plating, -/area/almayer/engineering/engineering_workshop) -"bpY" = ( -/obj/structure/surface/table/almayer, -/obj/item/frame/table, -/obj/item/frame/table, -/obj/item/clipboard, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/engineering_workshop) -"bpZ" = ( -/obj/structure/surface/table/almayer, -/obj/item/cell/crap, -/obj/item/tool/crowbar, -/obj/structure/machinery/cell_charger, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/engineering_workshop) -"bqa" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" - }, -/area/almayer/engineering/engineering_workshop) -"bqe" = ( -/obj/structure/pipes/vents/scrubber{ - dir = 8 - }, +"bqc" = ( /turf/open/floor/almayer, -/area/almayer/engineering/engineering_workshop) -"bqf" = ( -/obj/structure/machinery/autolathe, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/engineering_workshop) -"bqm" = ( -/obj/structure/closet/boxinggloves, -/turf/open/floor/almayer{ - icon_state = "plate" +/area/almayer/hallways/lower/starboard_aft_hallway) +"bqg" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" }, -/area/almayer/living/gym) -"bqo" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/wood/ship, -/area/almayer/command/corporateliason) -"bqp" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "redcorner" +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 }, -/area/almayer/shipboard/brig/processing) -"bqw" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/wood/ship, -/area/almayer/command/corporateliason) +/turf/open/floor/almayer/plate, +/area/almayer/hallways/lower/starboard_fore_hallway) "bqF" = ( /obj/structure/dropship_equipment/fuel/fuel_enhancer, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/hallways/hangar) -"bqG" = ( -/turf/open/floor/almayer{ - dir = 6; - icon_state = "silver" - }, -/area/almayer/hull/upper_hull/u_m_p) "bqH" = ( /obj/structure/machinery/door/poddoor/almayer/open{ dir = 4; @@ -16667,30 +9733,20 @@ id = "medicalemergency"; name = "\improper Medical Bay Lockdown" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/medical/lower_medical_lobby) "bqL" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/medical/lower_medical_lobby) "bqN" = ( /obj/structure/bed/chair/office/light{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/east, /area/almayer/medical/lockerroom) "bqR" = ( -/turf/open/floor/almayer{ - dir = 6; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/southeast, /area/almayer/medical/lower_medical_lobby) "bqT" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -16718,11 +9774,30 @@ }, /turf/open/floor/almayer, /area/almayer/squads/charlie_delta_shared) -"bqZ" = ( -/turf/open/floor/almayer{ - icon_state = "plate" +"bqY" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/obj/item/device/radio/intercom{ + freerange = 1; + name = "General Listening Channel"; + pixel_y = -28 }, +/turf/open/floor/almayer/red/north, +/area/almayer/hallways/upper/port) +"bqZ" = ( +/turf/open/floor/almayer/plate, /area/almayer/living/briefing) +"bra" = ( +/obj/structure/machinery/light{ + unacidable = 1; + unslashable = 1 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer/red, +/area/almayer/shipboard/brig/chief_mp_office) "brb" = ( /obj/structure/pipes/vents/scrubber, /turf/open/floor/almayer, @@ -16732,51 +9807,39 @@ /obj/structure/machinery/computer/cameras/almayer_network/vehicle{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, +/turf/open/floor/almayer/redfull, /area/almayer/shipboard/starboard_missiles) "bri" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "cargo_arrow" - }, +/turf/open/floor/almayer/cargo_arrow/west, /area/almayer/squads/req) "brj" = ( /obj/structure/machinery/line_nexter{ id = "line1"; pixel_x = -2 }, -/turf/open/floor/almayer{ - icon_state = "test_floor5" - }, +/turf/open/floor/almayer/test_floor5, /area/almayer/squads/req) "brn" = ( /obj/structure/machinery/door/airlock/almayer/marine/bravo/smart, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/squads/bravo) "brp" = ( /obj/structure/supply_drop/bravo, /turf/open/floor/plating, /area/almayer/squads/req) +"brq" = ( +/turf/open/floor/almayer/plate, +/area/almayer/hallways/lower/port_midship_hallway) "brr" = ( /obj/structure/machinery/cm_vending/clothing/medic/bravo, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/bravo) "brs" = ( -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/bravo) "brt" = ( /obj/structure/machinery/cm_vending/clothing/engi/bravo, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/bravo) "brv" = ( /obj/structure/machinery/camera/autoname/almayer{ @@ -16784,26 +9847,11 @@ }, /turf/open/floor/almayer, /area/almayer/squads/alpha) -"brw" = ( -/obj/structure/surface/table/almayer, -/obj/item/device/flashlight/lamp, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/engineering_workshop) -"brx" = ( -/turf/open/floor/almayer{ - icon_state = "orange" - }, -/area/almayer/engineering/engineering_workshop) "bry" = ( /obj/structure/sign/poster{ pixel_y = 32 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/almayer/red/east, /area/almayer/squads/alpha) "brA" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -16818,15 +9866,6 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/bravo) -"brC" = ( -/obj/structure/surface/table/almayer, -/obj/structure/machinery/computer/atmos_alert{ - dir = 8 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/engineering_workshop) "brH" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -16834,112 +9873,34 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/bravo) -"brI" = ( -/obj/structure/machinery/camera/autoname/almayer{ - name = "ship-grade camera" - }, -/obj/structure/sign/safety/life_support{ - pixel_x = 8; - pixel_y = 32 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, -/area/almayer/engineering/lower_engineering) -"brJ" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "SW-out" - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/engineering/engine_core) -"brO" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orangecorner" - }, -/area/almayer/hallways/starboard_umbilical) -"brP" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/turf/open/floor/almayer, -/area/almayer/hallways/starboard_umbilical) -"brQ" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orangecorner" - }, -/area/almayer/hallways/starboard_umbilical) "brS" = ( /obj/structure/bed, /obj/item/bedsheet/brown, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/bridgebunks) "brW" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) -"brX" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_a_p) "brY" = ( /obj/structure/pipes/vents/pump, /turf/open/floor/almayer, /area/almayer/hallways/hangar) -"bsc" = ( -/obj/structure/machinery/computer/skills{ - req_one_access_txt = "200" - }, -/obj/structure/surface/table/woodentable/fancy, -/turf/open/floor/carpet, -/area/almayer/command/corporateliason) -"bse" = ( -/obj/structure/machinery/computer/arcade, -/turf/open/floor/wood/ship, -/area/almayer/command/corporateliason) "bsj" = ( /obj/structure/machinery/line_nexter/med{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/west, /area/almayer/medical/lower_medical_lobby) -"bsk" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" +"bsp" = ( +/obj/structure/sink{ + dir = 4; + pixel_x = 11 }, -/area/almayer/hallways/starboard_hallway) +/turf/open/floor/almayer/plate, +/area/almayer/shipboard/brig/perma) "bst" = ( /turf/closed/wall/almayer/white, /area/almayer/medical/operating_room_one) @@ -16961,9 +9922,7 @@ /turf/open/floor/almayer, /area/almayer/command/lifeboat) "bsz" = ( -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/medical/operating_room_three) "bsD" = ( /obj/structure/closet{ @@ -16979,25 +9938,15 @@ /obj/item/clothing/under/shorts/black, /obj/item/clothing/under/shorts/grey, /obj/item/clothing/under/shorts/grey, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/gym) "bsF" = ( -/obj/structure/surface/table/reinforced/almayer_B, -/obj/structure/machinery/computer/emails{ +/obj/structure/machinery/camera/autoname/almayer{ dir = 1; - pixel_x = 1; - pixel_y = 4 - }, -/obj/item/tool/kitchen/utensil/fork{ - pixel_x = -9; - pixel_y = 3 - }, -/turf/open/floor/almayer{ - icon_state = "plate" + name = "ship-grade camera" }, -/area/almayer/hull/upper_hull/u_a_s) +/turf/open/floor/almayer/red, +/area/almayer/shipboard/brig/mp_bunks) "bsG" = ( /obj/structure/machinery/disposal{ density = 0; @@ -17007,34 +9956,25 @@ /obj/structure/disposalpipe/trunk{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "redcorner" - }, +/turf/open/floor/almayer/redcorner/north, /area/almayer/living/cryo_cells) "bsJ" = ( /obj/structure/machinery/door/poddoor/railing{ dir = 4; id = "supply_elevator_railing" }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "cargo_arrow" - }, +/turf/open/floor/almayer/cargo_arrow/west, /area/almayer/squads/req) "bsK" = ( /obj/effect/landmark/supply_elevator, -/turf/open/floor/almayer/empty, +/turf/open/floor/almayer/empty/requisitions, /area/supply/station) "bsL" = ( /obj/structure/machinery/door/poddoor/railing{ dir = 8; id = "supply_elevator_railing" }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "cargo_arrow" - }, +/turf/open/floor/almayer/cargo_arrow/east, /area/almayer/squads/req) "bsN" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -17042,19 +9982,11 @@ }, /obj/structure/surface/table/almayer, /obj/item/folder/black, -/turf/open/floor/almayer{ - icon_state = "greenfull" - }, +/turf/open/floor/almayer/greenfull, /area/almayer/living/offices) -"bsO" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_p) "bsP" = ( /obj/structure/machinery/optable, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/medical/operating_room_three) "bsQ" = ( /obj/structure/surface/table/reinforced/prison, @@ -17062,10 +9994,7 @@ /obj/structure/sign/safety/biohazard{ pixel_x = -17 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/west, /area/almayer/medical/operating_room_three) "bsR" = ( /obj/structure/surface/table/almayer, @@ -17075,62 +10004,30 @@ /obj/structure/machinery/computer/emails{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/offices) "bsS" = ( /obj/structure/machinery/cm_vending/clothing/specialist/bravo, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/bravo) -"bsT" = ( -/obj/structure/pipes/vents/scrubber{ - dir = 1 - }, -/obj/structure/machinery/light{ - dir = 8 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/starboard_hallway) "bsU" = ( /obj/structure/surface/table/almayer, /obj/item/trash/USCMtray{ pixel_y = 7 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/almayer/red/northeast, /area/almayer/squads/alpha) -"bsV" = ( -/obj/structure/pipes/vents/pump{ - dir = 8 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/almayer, -/area/almayer/hallways/starboard_hallway) "bsW" = ( /obj/structure/machinery/cm_vending/clothing/leader/bravo, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/bravo) -"bsX" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orangecorner" - }, -/area/almayer/hallways/starboard_hallway) -"bsZ" = ( -/obj/structure/machinery/power/monitor{ - name = "Main Power Grid Monitoring" - }, -/turf/open/floor/almayer{ - icon_state = "plate" +"btb" = ( +/obj/structure/window/framed/almayer, +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 1 }, -/area/almayer/engineering/engineering_workshop) +/turf/open/floor/plating, +/area/almayer/maint/upper/u_a_s) "btc" = ( /obj/structure/bed/chair{ dir = 8; @@ -17140,64 +10037,19 @@ icon_state = "SE-out"; pixel_x = 1 }, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, +/turf/open/floor/almayer/redfull, /area/almayer/squads/alpha) "bti" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/intel{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/southwest, /area/almayer/command/computerlab) -"btk" = ( -/obj/structure/sign/poster/pinup{ - pixel_x = -30 - }, -/obj/structure/sign/poster/hunk{ - pixel_x = -25; - pixel_y = 10 - }, -/obj/item/trash/buritto, -/obj/structure/prop/invuln/lattice_prop{ - icon_state = "lattice12"; - pixel_y = 16 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_s) -"btm" = ( -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/lower_engineering) -"btn" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/obj/structure/closet/toolcloset, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, -/area/almayer/engineering/lower_engineering) -"btp" = ( -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 4 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/starboard_umbilical) "btr" = ( /obj/structure/closet/boxinggloves, /obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/gym) "btv" = ( /obj/structure/machinery/light, @@ -17211,27 +10063,14 @@ dir = 1 }, /obj/structure/disposalpipe/segment, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/gym) -"btz" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/almayer/command/corporateliason) "btC" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 1 }, /obj/structure/disposalpipe/segment, -/turf/open/floor/almayer{ - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side, /area/almayer/medical/medical_science) "btD" = ( /turf/open/floor/almayer, @@ -17261,14 +10100,18 @@ "btO" = ( /turf/open/floor/plating/plating_catwalk, /area/almayer/hallways/hangar) +"btV" = ( +/obj/structure/sign/safety/hvac_old{ + pixel_x = 8; + pixel_y = 32 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_m_s) "btX" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/east, /area/almayer/medical/operating_room_three) "btY" = ( /obj/structure/machinery/door_control{ @@ -17283,22 +10126,11 @@ pixel_x = 1; pixel_y = 1 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/almayer/red/west, /area/almayer/living/briefing) -"bua" = ( -/turf/open/floor/almayer{ - icon_state = "redcorner" - }, -/area/almayer/shipboard/brig/main_office) "buc" = ( /obj/structure/largecrate/random/case/double, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/almayer/red/southwest, /area/almayer/lifeboat_pumps/north1) "bui" = ( /obj/structure/surface/table/reinforced/prison, @@ -17313,50 +10145,20 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_corner" - }, +/turf/open/floor/almayer/sterile_green_corner/north, /area/almayer/medical/operating_room_one) "buj" = ( /obj/structure/machinery/power/apc/almayer{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/north, /area/almayer/medical/operating_room_one) -"buk" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "NW-out"; - pixel_y = 1 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/aft_hallway) -"buq" = ( -/obj/structure/machinery/door/airlock/almayer/maint{ - dir = 1 - }, -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hull/lower_hull/l_m_s) "bur" = ( /obj/structure/prop/almayer/missile_tube, /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/almayer/shipboard/starboard_missiles) "buu" = ( /obj/structure/disposalpipe/segment{ @@ -17365,17 +10167,13 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/medical/lower_medical_medbay) "buv" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "cargo_arrow" - }, +/turf/open/floor/almayer/cargo_arrow, /area/almayer/living/offices) "buz" = ( /obj/structure/supply_drop/charlie, @@ -17385,43 +10183,11 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "green" - }, +/turf/open/floor/almayer/green, /area/almayer/living/offices) -"buD" = ( -/obj/structure/machinery/light/small{ - dir = 1 - }, -/obj/structure/largecrate/random/secure, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_m_p) -"buH" = ( -/turf/open/floor/almayer, -/area/almayer/hallways/port_hallway) -"buI" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_hallway) -"buJ" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/almayer, -/area/almayer/hallways/port_hallway) -"buK" = ( -/obj/structure/surface/table/almayer, -/obj/item/device/lightreplacer, -/obj/item/device/radio, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/engineering_workshop) "buM" = ( /obj/structure/machinery/cm_vending/clothing/smartgun/bravo, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/bravo) "buN" = ( /obj/structure/machinery/cm_vending/gear/smartgun, @@ -17432,212 +10198,92 @@ /obj/structure/sign/safety/ammunition{ pixel_y = -32 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/bravo) "buO" = ( /obj/structure/machinery/cm_vending/gear/medic, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/bravo) -"buQ" = ( -/obj/structure/surface/table/almayer, -/obj/structure/machinery/computer/working_joe{ - dir = 8 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/engineering_workshop) "buS" = ( /obj/structure/machinery/cm_vending/gear/engi, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/bravo) -"buU" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/starboard_hallway) -"buW" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "NW-out"; - pixel_y = 1 +"buY" = ( +/obj/structure/stairs{ + dir = 1 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" +/obj/structure/machinery/light{ + dir = 8 }, -/area/almayer/engineering/engine_core) -"buX" = ( -/obj/effect/landmark/crap_item, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" +/obj/effect/projector{ + name = "Almayer_Up4"; + vector_x = -19; + vector_y = 104 }, -/area/almayer/shipboard/brig/main_office) +/turf/open/floor/plating/almayer/no_build, +/area/almayer/hallways/lower/port_midship_hallway) "bvb" = ( /obj/structure/machinery/light{ dir = 8 }, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/north1) -"bvc" = ( -/obj/structure/bed/chair{ - dir = 1 - }, -/obj/structure/sign/poster{ - desc = "Koorlander Golds, lovingly machine rolled for YOUR pleasure."; - icon_state = "poster10"; - name = "Koorlander Gold Poster"; - pixel_x = 29; - pixel_y = 6; - serial_number = 10 - }, -/turf/open/floor/wood/ship, -/area/almayer/command/corporateliason) -"bvd" = ( -/obj/structure/machinery/constructable_frame, -/turf/open/floor/almayer{ - icon_state = "mono" - }, -/area/almayer/lifeboat_pumps/north1) "bve" = ( /obj/structure/disposalpipe/segment, /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) "bvf" = ( /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/plating/plating_catwalk, /area/almayer/hallways/hangar) -"bvl" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/almayer, -/area/almayer/command/corporateliason) "bvr" = ( /obj/structure/bed/chair/office/dark, /obj/effect/decal/warning_stripes{ icon_state = "N"; pixel_y = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/briefing) -"bvx" = ( -/turf/open/floor/almayer{ - dir = 10; - icon_state = "red" - }, -/area/almayer/shipboard/brig/main_office) "bvz" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/closet/secure_closet/surgical{ pixel_x = -30 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/west, /area/almayer/medical/operating_room_one) -"bvF" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "silver" +"bvD" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/machinery/light{ + dir = 8 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 1 }, +/turf/open/floor/almayer/red/northeast, +/area/almayer/hallways/lower/port_fore_hallway) +"bvF" = ( +/turf/open/floor/almayer/silver/west, /area/almayer/living/cryo_cells) -"bvI" = ( +"bvH" = ( /obj/structure/surface/table/almayer, -/obj/item/tool/extinguisher, -/obj/item/device/lightreplacer, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/engineering_workshop) -"bvK" = ( -/obj/structure/pipes/standard/manifold/hidden/supply, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" - }, -/area/almayer/engineering/engineering_workshop) -"bvL" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" - }, -/area/almayer/engineering/engineering_workshop) -"bvO" = ( -/obj/structure/largecrate/random/barrel/white, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_s) -"bvQ" = ( -/obj/structure/pipes/unary/outlet_injector, -/obj/structure/largecrate/random/case/double, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" - }, -/area/almayer/engineering/lower_engineering) -"bvS" = ( -/obj/structure/machinery/door/airlock/almayer/maint, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hull/lower_hull) -"bvT" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/starboard_umbilical) -"bvU" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "SE-out"; - pixel_x = 1 - }, -/obj/structure/machinery/door/airlock/almayer/generic{ - dir = 2; - name = "\improper Liasion's Bathroom" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +/obj/structure/machinery/recharger, +/obj/item/tool/hand_labeler{ + pixel_x = -8; + pixel_y = 3 }, -/area/almayer/command/corporateliason) -"bvV" = ( +/turf/open/floor/almayer/plate, +/area/almayer/shipboard/brig/general_equipment) +"bvX" = ( +/obj/structure/window/framed/almayer, /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 2 }, -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/starboard_umbilical) -"bvY" = ( -/obj/structure/machinery/door_control/cl/quarter/backdoor{ - pixel_x = -25; - pixel_y = 23 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_m_p) +/obj/structure/machinery/door/poddoor/shutters/almayer/cl/office/window, +/turf/open/floor/plating, +/area/almayer/command/corporateliaison) "bwc" = ( /obj/structure/barricade/handrail{ dir = 8 @@ -17645,20 +10291,11 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "test_floor5" - }, +/turf/open/floor/almayer/test_floor5, /area/almayer/squads/req) -"bwd" = ( -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/starboard_hallway) "bwe" = ( /obj/structure/window/framed/almayer, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/alpha) "bwf" = ( /obj/structure/disposalpipe/segment{ @@ -17680,10 +10317,7 @@ /obj/item/trash/USCMtray{ pixel_y = 7 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/almayer/red/east, /area/almayer/squads/alpha) "bwh" = ( /obj/structure/disposalpipe/segment{ @@ -17700,21 +10334,8 @@ icon_state = "E"; pixel_x = 1 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "cargo_arrow" - }, +/turf/open/floor/almayer/cargo_arrow/west, /area/almayer/squads/alpha) -"bwj" = ( -/obj/structure/pipes/standard/simple/visible, -/obj/structure/sign/safety/nonpress_0g{ - pixel_x = 32 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" - }, -/area/almayer/engineering/lower_engineering) "bwl" = ( /obj/effect/decal/warning_stripes{ icon_state = "NE-out"; @@ -17727,72 +10348,61 @@ pixel_x = 15; pixel_y = 32 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) "bwm" = ( /obj/effect/decal/warning_stripes{ icon_state = "NW-out"; pixel_y = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) "bwn" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/almayer, /area/almayer/hallways/hangar) -"bwF" = ( -/obj/structure/machinery/light/small{ +"bwv" = ( +/obj/structure/disposalpipe/segment, +/obj/item/device/radio/intercom{ + freerange = 1; + name = "General Listening Channel"; + pixel_x = -28 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ dir = 1 }, -/obj/structure/largecrate/random/case/double, -/turf/open/floor/almayer{ - icon_state = "plate" +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/port_fore_hallway) +"bww" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/area/almayer/hull/lower_hull/l_f_s) +/turf/open/floor/almayer/plate, +/area/almayer/hallways/lower/starboard_aft_hallway) +"bwG" = ( +/turf/closed/wall/almayer, +/area/almayer/maint/hull/lower/l_m_s) "bwH" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/computer/crew/alt{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_corner" - }, +/turf/open/floor/almayer/sterile_green_corner/west, /area/almayer/medical/lower_medical_medbay) -"bwQ" = ( -/obj/structure/machinery/light{ - dir = 4 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 2 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "SE-out"; - pixel_x = 2 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/hull/lower_hull/l_f_s) -"bwR" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/structure/machinery/computer/med_data/laptop{ - dir = 1; - pixel_y = -4 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "sterile_green_corner" +"bwP" = ( +/obj/effect/step_trigger/clone_cleaner, +/turf/open/floor/plating/almayer/no_build, +/area/almayer/hallways/lower/starboard_midship_hallway) +"bwR" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/machinery/computer/med_data/laptop{ + dir = 1; + pixel_y = -4 }, +/turf/open/floor/almayer/sterile_green_corner/east, /area/almayer/medical/lockerroom) "bwT" = ( /obj/effect/decal/medical_decals{ @@ -17803,23 +10413,8 @@ name = "General Listening Channel"; pixel_x = 28 }, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/southeast, /area/almayer/medical/lower_medical_lobby) -"bxd" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/starboard_hallway) "bxf" = ( /obj/effect/decal/warning_stripes{ icon_state = "NE-out" @@ -17827,9 +10422,7 @@ /obj/structure/machinery/gear{ id = "supply_elevator_gear" }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/squads/req) "bxg" = ( /obj/structure/machinery/door/poddoor/railing{ @@ -17841,9 +10434,7 @@ /obj/structure/machinery/door/poddoor/railing{ id = "supply_elevator_railing" }, -/turf/open/floor/almayer{ - icon_state = "cargo_arrow" - }, +/turf/open/floor/almayer/cargo_arrow, /area/almayer/squads/req) "bxi" = ( /obj/effect/decal/warning_stripes{ @@ -17852,60 +10443,23 @@ /obj/structure/machinery/gear{ id = "supply_elevator_gear" }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/squads/req) -"bxk" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 1 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/almayer, -/area/almayer/hallways/starboard_hallway) "bxm" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/east, /area/almayer/living/cryo_cells) "bxn" = ( /obj/structure/target, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, +/turf/open/floor/almayer/redfull, /area/almayer/living/cryo_cells) -"bxo" = ( -/obj/structure/machinery/cm_vending/sorted/tech/comp_storage, -/obj/structure/machinery/light{ - dir = 8 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/engineering_workshop) -"bxr" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/almayer, -/area/almayer/engineering/engineering_workshop) -"bxs" = ( +"bxA" = ( +/obj/structure/machinery/power/apc/almayer/hardened, /obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/obj/structure/platform, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/engineering/engine_core) -"bxx" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer, -/turf/open/floor/almayer{ - icon_state = "test_floor4" + icon_state = "SW-out"; + pixel_x = -1 }, -/area/almayer/hallways/starboard_hallway) +/turf/open/floor/almayer/mono, +/area/almayer/lifeboat_pumps/south2) "bxB" = ( /obj/structure/disposalpipe/segment{ dir = 2; @@ -17930,79 +10484,44 @@ icon_state = "SW-out"; pixel_y = -1 }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/living/port_emb) -"bxD" = ( -/obj/structure/machinery/status_display{ - pixel_y = 30 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/starboard_hallway) "bxE" = ( -/obj/structure/machinery/door/airlock/almayer/maint, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/engineering/lower_engineering) -"bxF" = ( -/obj/structure/machinery/alarm/almayer{ - dir = 1 - }, -/turf/open/floor/almayer, -/area/almayer/engineering/lower_engineering) -"bxG" = ( -/obj/structure/pipes/standard/simple/visible{ - dir = 6 - }, -/obj/structure/machinery/firealarm{ - pixel_y = 28 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/lower_engineering) -"bxH" = ( -/obj/structure/pipes/standard/simple/visible{ +/obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/lower_engineering) -"bxI" = ( -/obj/structure/pipes/binary/pump/on{ - dir = 4 +/obj/structure/pipes/standard/manifold/hidden/supply, +/obj/structure/machinery/light, +/turf/open/floor/almayer/red, +/area/almayer/shipboard/brig/starboard_hallway) +"bxN" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 5 }, -/turf/open/floor/almayer{ - icon_state = "plate" +/turf/open/floor/plating/plating_catwalk, +/area/almayer/engineering/lower/workshop) +"bxY" = ( +/obj/structure/surface/table/almayer, +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_21"; + pixel_y = 11 }, -/area/almayer/engineering/lower_engineering) -"bxX" = ( -/obj/structure/sign/safety/hvac_old{ - pixel_x = 8; - pixel_y = -32 +/obj/structure/machinery/camera/autoname/almayer{ + dir = 4; + name = "ship-grade camera" }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_p) +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer, +/area/almayer/maint/hull/upper/u_f_p) "byb" = ( /obj/structure/barricade/handrail/medical, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_corner" - }, +/turf/open/floor/almayer/sterile_green_corner/west, /area/almayer/medical/lower_medical_lobby) "byc" = ( /obj/structure/machinery/bioprinter{ stored_metal = 125 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "sterile_green_corner" - }, +/turf/open/floor/almayer/sterile_green_corner/east, /area/almayer/medical/operating_room_three) "byd" = ( /obj/structure/surface/table/reinforced/prison, @@ -18015,10 +10534,7 @@ name = "ship-grade camera" }, /obj/structure/machinery/light, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_corner" - }, +/turf/open/floor/almayer/sterile_green_corner/west, /area/almayer/medical/operating_room_four) "bye" = ( /obj/structure/machinery/door_control{ @@ -18028,54 +10544,8 @@ pixel_y = -25 }, /obj/structure/machinery/iv_drip, -/turf/open/floor/almayer{ - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side, /area/almayer/medical/operating_room_four) -"byg" = ( -/obj/structure/pipes/standard/simple/visible{ - dir = 9 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, -/area/almayer/engineering/lower_engineering) -"byh" = ( -/obj/structure/pipes/standard/simple/visible{ - dir = 5 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, -/area/almayer/engineering/lower_engineering) -"byk" = ( -/obj/structure/pipes/valve/digital/open{ - dir = 4 - }, -/obj/structure/sign/safety/fire_haz{ - pixel_x = 8; - pixel_y = 32 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, -/area/almayer/engineering/lower_engineering) -"byl" = ( -/obj/structure/pipes/standard/simple/visible{ - dir = 9 - }, -/obj/structure/machinery/meter, -/obj/structure/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orangecorner" - }, -/area/almayer/engineering/lower_engineering) "bym" = ( /obj/structure/disposalpipe/segment{ dir = 2; @@ -18084,49 +10554,27 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) "byn" = ( /obj/effect/landmark/start/marine/leader/bravo, /obj/effect/landmark/late_join/bravo, /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/bravo) -"byp" = ( -/obj/structure/bed/chair/office/dark{ - dir = 8 - }, -/turf/open/floor/almayer, -/area/almayer/command/corporateliason) -"byq" = ( -/obj/structure/machinery/light{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/almayer, -/area/almayer/command/corporateliason) "byr" = ( /obj/structure/largecrate/random/barrel/green, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) -"bys" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/starboard_hallway) +"byt" = ( +/obj/structure/surface/rack, +/obj/item/tool/crowbar, +/obj/item/tool/weldingtool, +/obj/item/tool/wrench, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_m_s) "byu" = ( /obj/structure/machinery/light, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/almayer/squads/req) "byv" = ( /obj/structure/machinery/camera/autoname/almayer{ @@ -18143,143 +10591,19 @@ /obj/effect/decal/warning_stripes{ icon_state = "SW-out" }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/east, /area/almayer/living/cryo_cells) -"byz" = ( -/obj/structure/machinery/vending/cigarette, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/engineering_workshop) -"byA" = ( -/obj/structure/machinery/alarm/almayer, -/turf/open/floor/almayer, -/area/almayer/engineering/engineering_workshop) -"byC" = ( -/obj/structure/machinery/camera/autoname/almayer{ - dir = 4; - name = "ship-grade camera" - }, -/turf/open/floor/almayer, -/area/almayer/hallways/starboard_hallway) -"byD" = ( -/obj/structure/machinery/cm_vending/sorted/tech/electronics_storage, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/engineering_workshop) -"byF" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/starboard_hallway) -"byI" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/starboard_hallway) -"byJ" = ( -/obj/structure/surface/table/almayer, -/turf/open/floor/almayer, -/area/almayer/engineering/lower_engineering) -"byK" = ( -/obj/structure/pipes/standard/simple/visible{ - dir = 5 - }, -/obj/structure/machinery/light, -/turf/open/floor/almayer, -/area/almayer/engineering/lower_engineering) -"byL" = ( -/obj/structure/machinery/meter, -/obj/structure/pipes/standard/simple/visible{ - dir = 4 - }, -/turf/open/floor/almayer, -/area/almayer/engineering/lower_engineering) -"byM" = ( -/obj/structure/pipes/standard/simple/hidden/universal{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/lower_engineering) -"byN" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 10 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/lower_engineering) -"byO" = ( -/obj/structure/surface/table/almayer, -/obj/structure/machinery/computer/general_air_control/large_tank_control{ - name = "Lower Deck Waste Tank Control" - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/lower_engineering) -"byQ" = ( -/obj/structure/machinery/suit_storage_unit/carbon_unit, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/lower_engineering) -"byR" = ( -/obj/structure/machinery/suit_storage_unit/carbon_unit, -/obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/lower_engineering) "bzg" = ( /obj/structure/pipes/vents/pump{ dir = 8; id_tag = "mining_outpost_pump" }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/medical/lockerroom) -"bzj" = ( -/obj/structure/machinery/pipedispenser, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/lower_engineering) "bzo" = ( /obj/structure/machinery/power/apc/almayer, -/turf/open/floor/almayer{ - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side, /area/almayer/medical/operating_room_four) -"bzs" = ( -/obj/structure/machinery/shower{ - dir = 8 - }, -/obj/structure/machinery/door/window/westright, -/obj/structure/window/reinforced/tinted/frosted, -/obj/item/tool/soap/deluxe, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/command/corporateliason) -"bzy" = ( -/turf/closed/wall/almayer, -/area/almayer/hallways/vehiclehangar) "bzz" = ( /obj/structure/disposalpipe/trunk{ dir = 4 @@ -18287,62 +10611,20 @@ /obj/structure/machinery/disposal, /turf/open/floor/almayer, /area/almayer/shipboard/starboard_missiles) -"bzA" = ( -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/vehiclehangar) "bzD" = ( /obj/structure/machinery/door/poddoor/almayer{ id = "tcomms" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/command/telecomms) -"bzE" = ( -/obj/effect/landmark/yautja_teleport, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_m_s) -"bzF" = ( -/obj/effect/landmark/yautja_teleport, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_s) -"bzH" = ( -/obj/structure/surface/rack, -/obj/effect/spawner/random/toolbox, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/vehiclehangar) "bzI" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" }, /obj/effect/landmark/ert_spawns/distress_cryo, /obj/effect/landmark/late_join, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/east, /area/almayer/living/cryo_cells) -"bzK" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_hallway) -"bzP" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer, -/area/almayer/engineering/lower_engineering) "bzQ" = ( /obj/structure/largecrate/random/case, /turf/open/floor/plating/plating_catwalk, @@ -18351,68 +10633,11 @@ /obj/structure/sign/safety/ladder{ pixel_x = -18 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/west, /area/almayer/command/cichallway) "bzS" = ( -/turf/open/floor/almayer{ - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side, /area/almayer/medical/chemistry) -"bzU" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 1 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/engineering/engine_core) -"bzV" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/starboard_hallway) -"bzW" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/starboard_hallway) -"bzX" = ( -/obj/structure/machinery/door/airlock/almayer/maint{ - name = "\improper Core Hatch" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/structure/machinery/door/firedoor/border_only/almayer, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/engineering/engine_core) -"bzY" = ( -/obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/starboard_hallway) -"bAa" = ( -/turf/open/floor/almayer{ - icon_state = "orangecorner" - }, -/area/almayer/hallways/starboard_hallway) "bAd" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -18420,34 +10645,11 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 6 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "redcorner" - }, +/turf/open/floor/almayer/redcorner/north, /area/almayer/squads/alpha) "bAe" = ( -/turf/open/floor/almayer/uscm/directional{ - dir = 1 - }, +/turf/open/floor/almayer/uscm/directional/north, /area/almayer/command/lifeboat) -"bAf" = ( -/obj/structure/machinery/door/airlock/almayer/engineering{ - dir = 2; - name = "\improper Atmospherics Wing" - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/engineering/lower_engineering) -"bAg" = ( -/obj/structure/closet/firecloset, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/vehiclehangar) "bAh" = ( /obj/structure/disposalpipe/segment, /obj/structure/cargo_container/wy/mid, @@ -18457,76 +10659,44 @@ /obj/structure/cargo_container/wy/right, /turf/open/floor/almayer, /area/almayer/hallways/hangar) -"bAr" = ( -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/vehiclehangar) "bAs" = ( /turf/closed/wall/almayer/outer, /area/almayer/shipboard/weapon_room) "bAu" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 - }, /obj/structure/machinery/door/airlock/almayer/secure/reinforced{ dir = 1; name = "\improper High Security Storage" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/command/securestorage) -"bAF" = ( -/obj/effect/step_trigger/clone_cleaner, +"bAy" = ( +/obj/structure/closet/fireaxecabinet{ + pixel_y = -32 + }, +/obj/structure/pipes/standard/manifold/hidden/supply, /turf/open/floor/almayer, -/area/almayer/hallways/aft_hallway) +/area/almayer/maint/hull/upper/u_f_s) "bAH" = ( /obj/structure/largecrate/random/case, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/almayer/red/west, /area/almayer/lifeboat_pumps/south1) "bAJ" = ( /obj/structure/sign/safety/terminal{ pixel_x = -17 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "redcorner" - }, +/turf/open/floor/almayer/redcorner/north, /area/almayer/living/briefing) "bAK" = ( /obj/structure/surface/table/almayer, /obj/item/tool/wirecutters, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/almayer/red/northwest, /area/almayer/shipboard/weapon_room) -"bAM" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/structure/extinguisher_cabinet{ - pixel_y = 26 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, -/area/almayer/shipboard/brig/general_equipment) "bAN" = ( /obj/structure/machinery/light{ dir = 1 }, /obj/structure/largecrate/random/case/double, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/almayer/red/north, /area/almayer/shipboard/weapon_room) "bAO" = ( /obj/structure/reagent_dispensers/fueltank, @@ -18534,28 +10704,20 @@ pixel_x = 7; pixel_y = 32 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/almayer/red/north, /area/almayer/shipboard/weapon_room) "bAP" = ( /obj/structure/machinery/power/apc/almayer{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/almayer/red/north, /area/almayer/shipboard/weapon_room) "bAQ" = ( /obj/structure/machinery/light{ dir = 8 }, /obj/structure/largecrate/random/secure, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) "bAS" = ( /obj/structure/largecrate/random/barrel/blue, @@ -18566,64 +10728,21 @@ /obj/structure/machinery/computer/secure_data{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/briefing) -"bAV" = ( -/turf/open/floor/almayer{ - icon_state = "greencorner" - }, -/area/almayer/hallways/starboard_hallway) -"bAX" = ( -/obj/structure/closet/emcloset, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/hallways/starboard_hallway) "bAY" = ( /obj/effect/decal/warning_stripes{ icon_state = "NW-out" }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/east, /area/almayer/living/cryo_cells) "bAZ" = ( /obj/structure/machinery/camera/autoname/almayer{ dir = 8; name = "ship-grade camera" }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/auxiliary_officer_office) -"bBa" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" - }, -/area/almayer/hallways/port_hallway) -"bBb" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/obj/structure/closet/firecloset, -/turf/open/floor/almayer{ - icon_state = "greencorner" - }, -/area/almayer/hallways/starboard_hallway) -"bBc" = ( -/obj/structure/closet/firecloset, -/obj/structure/machinery/status_display{ - pixel_y = 30 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, -/area/almayer/engineering/lower_engineering) "bBd" = ( /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 2 @@ -18631,100 +10750,28 @@ /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper Cryogenics Bay" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/living/cryo_cells) "bBe" = ( /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 2 }, /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/living/cryo_cells) "bBg" = ( /obj/structure/machinery/cryopod, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/squads/alpha) -"bBh" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/starboard_hallway) -"bBi" = ( -/obj/structure/closet/cabinet, -/obj/item/clothing/under/liaison_suit/formal, -/obj/item/clothing/under/liaison_suit, -/obj/item/clothing/under/liaison_suit/outing, -/obj/item/clothing/under/liaison_suit/suspenders, -/obj/item/clothing/under/blackskirt{ - desc = "A stylish skirt, in a business-black and red colour scheme."; - name = "liaison's skirt" - }, -/obj/item/clothing/under/suit_jacket/charcoal{ - desc = "A professional black suit and blue tie. A combination popular among government agents and corporate Yes-Men alike."; - name = "liaison's black suit" - }, -/obj/item/clothing/under/suit_jacket/navy{ - desc = "A navy suit and red tie, intended for the Almayer's finest. And accountants."; - name = "liaison's navy suit" - }, -/obj/item/clothing/under/suit_jacket/trainee, -/obj/item/clothing/under/liaison_suit/charcoal, -/obj/item/clothing/under/liaison_suit/outing/red, -/obj/item/clothing/under/liaison_suit/blazer, -/obj/item/clothing/suit/storage/snow_suit/liaison, -/obj/item/clothing/gloves/black, -/obj/item/clothing/gloves/marine/dress, -/obj/item/clothing/glasses/sunglasses/big, -/obj/item/clothing/accessory/blue, -/obj/item/clothing/accessory/red, -/obj/structure/machinery/status_display{ - pixel_x = -32 - }, -/turf/open/floor/wood/ship, -/area/almayer/command/corporateliason) "bBl" = ( /obj/structure/machinery/light{ dir = 4 }, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/north1) -"bBm" = ( -/turf/open/floor/almayer{ - icon_state = "orangecorner" - }, -/area/almayer/engineering/lower_engineering) -"bBp" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/engineering/lower_engineering) -"bBq" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/lower_engineering) "bBu" = ( /obj/structure/surface/rack, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/almayer/red/north, /area/almayer/shipboard/weapon_room) "bBv" = ( /obj/structure/largecrate/random/barrel/yellow, @@ -18732,43 +10779,28 @@ pixel_x = 7; pixel_y = 32 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/almayer/red/north, /area/almayer/shipboard/weapon_room) "bBx" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/toolbox, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/almayer/red/north, /area/almayer/shipboard/weapon_room) "bBy" = ( /obj/structure/machinery/alarm/almayer{ dir = 1 }, /obj/structure/surface/rack, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/almayer/red/north, /area/almayer/shipboard/weapon_room) "bBz" = ( /obj/structure/surface/table/almayer, /obj/effect/spawner/random/tool, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/almayer/red/north, /area/almayer/shipboard/weapon_room) "bBA" = ( /turf/closed/wall/almayer/reinforced, /area/almayer/shipboard/weapon_room) -"bBB" = ( -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/vehiclehangar) "bBC" = ( /obj/structure/bed/chair{ dir = 4 @@ -18797,10 +10829,11 @@ pixel_x = 8; pixel_y = 8 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/auxiliary_officer_office) +"bBH" = ( +/turf/open/floor/almayer/blue, +/area/almayer/hallways/upper/midship_hallway) "bBN" = ( /obj/structure/machinery/light, /turf/open/floor/plating/plating_catwalk, @@ -18812,18 +10845,26 @@ name = "South Checkpoint Shutters"; req_one_access_txt = "3;12;19" }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/briefing) +"bBR" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 10 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/starboard_midship_hallway) +"bBU" = ( +/obj/structure/sign/safety/security{ + pixel_x = 32 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/s_bow) "bBY" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/cameras/almayer{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/briefing) "bCd" = ( /obj/structure/window/framed/almayer/white, @@ -18833,18 +10874,13 @@ /turf/open/floor/plating, /area/almayer/medical/lower_medical_lobby) "bCe" = ( -/turf/open/floor/almayer{ - dir = 5; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/northeast, /area/almayer/medical/lower_medical_lobby) "bCg" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/briefing) "bCh" = ( /obj/structure/machinery/door/firedoor/border_only/almayer{ @@ -18853,63 +10889,49 @@ /obj/structure/window/framed/almayer, /turf/open/floor/plating, /area/almayer/living/briefing) -"bCi" = ( -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/port_hallway) -"bCj" = ( -/obj/structure/machinery/door/poddoor/shutters/almayer/open{ - dir = 4; - id = "southcheckpoint"; - name = "\improper Checkpoint Shutters" - }, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, -/area/almayer/hallways/port_hallway) +"bCk" = ( +/obj/structure/largecrate/random/secure, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_a_s) "bCl" = ( /obj/structure/pipes/vents/scrubber{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/medical/operating_room_three) "bCm" = ( /obj/structure/pipes/standard/manifold/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/medical/operating_room_three) "bCn" = ( /obj/structure/pipes/vents/pump{ dir = 8; id_tag = "mining_outpost_pump" }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/medical/operating_room_three) -"bCo" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/port_hallway) +"bCs" = ( +/obj/docking_port/stationary/escape_pod/cl, +/turf/open/floor/plating, +/area/almayer/command/corporateliaison) "bCu" = ( /obj/structure/bed/chair/comfy/alpha{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, +/turf/open/floor/almayer/redfull, /area/almayer/living/briefing) +"bCv" = ( +/obj/structure/prop/invuln/overhead_pipe{ + dir = 4; + pixel_y = 13 + }, +/obj/structure/prop/invuln/overhead_pipe{ + dir = 4; + pixel_x = -14; + pixel_y = 13 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_a_s) "bCx" = ( /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 2 @@ -18917,18 +10939,14 @@ /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper Briefing Room" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/living/briefing) "bCy" = ( /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 2 }, /obj/structure/disposalpipe/segment, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/living/briefing) "bCz" = ( /obj/structure/flora/pottedplant{ @@ -18940,36 +10958,14 @@ /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/req) "bCB" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "green" - }, +/turf/open/floor/almayer/green/east, /area/almayer/squads/req) "bCD" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 10 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/west, /area/almayer/living/cryo_cells) -"bCE" = ( -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 8 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_hallway) -"bCF" = ( -/obj/structure/disposalpipe/junction{ - dir = 2; - icon_state = "pipe-j2" - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_hallway) "bCG" = ( /obj/structure/disposalpipe/segment{ dir = 8; @@ -18977,160 +10973,63 @@ }, /turf/open/floor/almayer, /area/almayer/living/cryo_cells) -"bCH" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull) -"bCI" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/engineering/lower_engineering) -"bCJ" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 1 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/engineering/lower_engineering) "bCM" = ( /obj/structure/machinery/cryopod, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/living/cryo_cells) "bCN" = ( /obj/structure/machinery/cryopod/right, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/living/cryo_cells) "bCP" = ( /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/almayer/red/southeast, /area/almayer/squads/alpha) -"bCQ" = ( -/obj/structure/machinery/light/small, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_s) "bCR" = ( -/obj/structure/machinery/light/small, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/hull/lower_hull/l_a_p) +/obj/structure/largecrate/random/case, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_a_p) "bCS" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 9 }, -/turf/open/floor/almayer{ - icon_state = "red" - }, +/turf/open/floor/almayer/red, /area/almayer/squads/alpha) -"bCW" = ( -/obj/structure/machinery/power/apc/almayer{ - dir = 1 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" - }, -/area/almayer/hallways/starboard_hallway) "bCY" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/shipboard/weapon_room) "bCZ" = ( /obj/effect/decal/warning_stripes{ icon_state = "SW-out" }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/shipboard/weapon_room) -"bDe" = ( -/obj/structure/surface/table/almayer, -/obj/item/circuitboard{ - pixel_x = 12; - pixel_y = 7 - }, -/obj/item/tool/crowbar{ - pixel_x = 6; - pixel_y = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_m_p) "bDn" = ( /obj/structure/pipes/standard/simple/hidden/supply, /turf/closed/wall/almayer, /area/almayer/hallways/hangar) "bDs" = ( -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/almayer/living/grunt_rnr) "bDv" = ( /obj/structure/machinery/cm_vending/clothing/medical_crew, -/turf/open/floor/almayer{ - icon_state = "sterile_green" - }, +/turf/open/floor/almayer/sterile_green, /area/almayer/medical/lockerroom) -"bDx" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/structure/machinery/door/poddoor/shutters/almayer/open{ - dir = 4; - id = "southcheckpoint"; - name = "\improper Checkpoint Shutters" - }, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, -/area/almayer/hallways/port_hallway) -"bDD" = ( -/obj/structure/bed/chair{ - dir = 8 - }, -/turf/open/floor/almayer, -/area/almayer/living/starboard_garden) "bDF" = ( /obj/structure/machinery/door/poddoor/almayer{ dir = 4; unacidable = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/shipboard/weapon_room/notunnel) "bDH" = ( /obj/structure/largecrate/random/barrel/yellow, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) "bDI" = ( /obj/structure/largecrate/random/case/double, @@ -19141,41 +11040,31 @@ access_modified = 1; dir = 1; name = "\improper Auxiliary Combat Support Secondary Preparations"; - req_one_access = "19;27;22" - }, -/turf/open/floor/almayer{ - icon_state = "plate" + req_one_access_txt = "19;27;22" }, +/turf/open/floor/almayer/plate, /area/almayer/living/cryo_cells) "bDO" = ( -/turf/open/floor/almayer{ - icon_state = "tcomms" - }, +/turf/open/floor/almayer/tcomms, /area/almayer/shipboard/weapon_room) "bDP" = ( /obj/structure/bed/chair/comfy/alpha{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, +/turf/open/floor/almayer/redfull, /area/almayer/living/briefing) "bDQ" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/briefing) "bDS" = ( /obj/structure/disposalpipe/segment{ dir = 1; icon_state = "pipe-c" }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/briefing) "bDT" = ( /obj/structure/machinery/light{ @@ -19184,9 +11073,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/briefing) "bDU" = ( /obj/structure/machinery/disposal, @@ -19196,26 +11083,20 @@ /obj/structure/machinery/alarm/almayer{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/briefing) "bDV" = ( /obj/structure/bed/chair{ dir = 4 }, /obj/effect/landmark/map_item, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/squads/req) "bDW" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/shipboard/weapon_room) "bDX" = ( /obj/structure/closet/crate, @@ -19223,9 +11104,7 @@ /obj/item/storage/backpack/industrial, /obj/item/storage/backpack/marine, /obj/item/storage/backpack/marine, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/squads/req) "bDY" = ( /obj/structure/closet/crate, @@ -19240,16 +11119,12 @@ /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/squads/req) "bDZ" = ( /obj/structure/closet/crate/internals, /obj/item/storage/toolbox/emergency, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/squads/req) "bEa" = ( /obj/effect/decal/warning_stripes{ @@ -19257,35 +11132,22 @@ }, /obj/effect/landmark/ert_spawns/distress_cryo, /obj/effect/landmark/late_join, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/southeast, /area/almayer/living/cryo_cells) "bEb" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/southwest, /area/almayer/living/cryo_cells) "bEc" = ( /obj/structure/machinery/computer/supplycomp, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/req) "bEd" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "redcorner" - }, +/turf/open/floor/almayer/redcorner/west, /area/almayer/living/cryo_cells) "bEg" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/req) "bEh" = ( /obj/structure/surface/rack, @@ -19294,10 +11156,7 @@ /obj/item/storage/backpack/marine, /obj/item/storage/backpack/marine, /obj/item/tool/hand_labeler, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/almayer/green/north, /area/almayer/squads/req) "bEi" = ( /obj/structure/supply_drop/alpha, @@ -19306,12 +11165,13 @@ }, /turf/open/floor/plating, /area/almayer/squads/req) -"bEj" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "orange" +"bEk" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 2 }, -/area/almayer/engineering/lower_engineering) +/turf/open/floor/almayer/green/southeast, +/area/almayer/hallways/lower/starboard_aft_hallway) "bEl" = ( /obj/structure/machinery/computer/supply_drop_console/limited, /turf/closed/wall/almayer, @@ -19323,70 +11183,28 @@ }, /turf/open/floor/plating, /area/almayer/squads/req) -"bEn" = ( -/obj/structure/stairs/perspective{ - dir = 4; - icon_state = "p_stair_sn_full_cap" - }, -/obj/structure/platform{ - dir = 4; - layer = 2.7 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/engineering/engine_core) -"bEo" = ( -/obj/structure/bed/sofa/south/grey/right{ - pixel_y = 12 - }, -/turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_s) "bEp" = ( /obj/structure/filingcabinet, /obj/structure/sign/safety/galley{ pixel_x = 8; pixel_y = 32 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "green" - }, +/turf/open/floor/almayer/green/northeast, /area/almayer/squads/req) "bEr" = ( /obj/structure/surface/rack, /obj/item/tool/weldpack, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/squads/req) "bEs" = ( /obj/structure/reagent_dispensers/fueltank, /obj/item/tool/extinguisher, /obj/item/tool/extinguisher, /obj/item/tool/extinguisher, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/squads/req) -"bEt" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/obj/structure/sign/safety/commline_connection{ - pixel_y = 32 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/cargo, /area/almayer/squads/req) "bEv" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "cargo_arrow" - }, +/turf/open/floor/almayer/cargo_arrow/north, /area/almayer/shipboard/brig/general_equipment) "bEw" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ @@ -19400,14 +11218,6 @@ }, /turf/open/floor/almayer, /area/almayer/shipboard/weapon_room) -"bEz" = ( -/obj/structure/machinery/light{ - dir = 8 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/vehiclehangar) "bEA" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -19416,9 +11226,7 @@ /obj/structure/machinery/landinglight/ds2/delaytwo{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) "bED" = ( /obj/effect/decal/warning_stripes{ @@ -19431,9 +11239,7 @@ /obj/structure/platform_decoration{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) "bEE" = ( /obj/effect/decal/warning_stripes{ @@ -19448,34 +11254,17 @@ dir = 4 }, /obj/item/tool/warning_cone, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) "bEF" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "redcorner" - }, +/turf/open/floor/almayer/redcorner, /area/almayer/shipboard/weapon_room) "bEG" = ( -/turf/open/floor/almayer{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/almayer/red/southeast, /area/almayer/squads/alpha) -"bEH" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orangecorner" - }, -/area/almayer/hallways/starboard_hallway) "bEK" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -19487,9 +11276,7 @@ /obj/structure/platform_decoration{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) "bEN" = ( /obj/effect/decal/warning_stripes{ @@ -19499,9 +11286,7 @@ /obj/structure/machinery/landinglight/ds1{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) "bEO" = ( /obj/structure/machinery/light{ @@ -19515,9 +11300,7 @@ icon_state = "N"; pixel_y = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) "bEP" = ( /obj/item/device/radio/marine{ @@ -19538,9 +11321,7 @@ /obj/item/clothing/glasses/hud/health, /obj/item/clothing/glasses/hud/health, /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/almayer{ - icon_state = "sterile_green" - }, +/turf/open/floor/almayer/sterile_green, /area/almayer/medical/lockerroom) "bER" = ( /obj/item/storage/box/gloves{ @@ -19576,92 +11357,31 @@ pixel_y = 6 }, /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/almayer{ - icon_state = "sterile_green" - }, +/turf/open/floor/almayer/sterile_green, /area/almayer/medical/lockerroom) "bES" = ( /obj/structure/machinery/cm_vending/sorted/marine_food, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/bravo) -"bET" = ( -/obj/structure/machinery/cm_vending/sorted/medical, -/turf/open/floor/almayer{ - icon_state = "sterile_green_side" - }, -/area/almayer/medical/lockerroom) -"bEU" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, -/area/almayer/engineering/lower_engineering) -"bEV" = ( -/obj/structure/closet/firecloset, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, -/area/almayer/engineering/lower_engineering) "bFa" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "red" - }, +/turf/open/floor/almayer/red, /area/almayer/shipboard/weapon_room) -"bFb" = ( -/obj/structure/foamed_metal, -/turf/open/floor/plating, -/area/almayer/medical/lower_medical_medbay) -"bFc" = ( -/obj/structure/closet/emcloset{ - pixel_x = 8 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, -/area/almayer/engineering/lower_engineering) -"bFe" = ( -/obj/structure/surface/table/almayer, -/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ - pixel_y = 25 - }, -/obj/item/frame/fire_alarm, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, -/area/almayer/engineering/lower_engineering) -"bFf" = ( -/obj/structure/surface/table/almayer, -/obj/item/book/manual/atmospipes, -/obj/item/circuitboard/airalarm, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, -/area/almayer/engineering/lower_engineering) "bFg" = ( -/obj/structure/surface/table/almayer, -/obj/item/frame/fire_alarm, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "orange" +/obj/effect/decal/warning_stripes{ + icon_state = "W"; + layer = 3.3 }, -/area/almayer/engineering/lower_engineering) +/turf/open/floor/almayer/aicore/no_build/ai_floor2, +/area/almayer/command/airoom) "bFj" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, /obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "red" - }, +/turf/open/floor/almayer/red, /area/almayer/shipboard/weapon_room) "bFk" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ @@ -19669,19 +11389,28 @@ }, /turf/open/floor/almayer, /area/almayer/shipboard/weapon_room) +"bFl" = ( +/obj/structure/surface/table/almayer, +/obj/item/pizzabox/meat, +/obj/item/reagent_container/food/drinks/cans/souto/diet/peach{ + pixel_x = -4; + pixel_y = -3 + }, +/obj/item/reagent_container/food/drinks/cans/souto/diet/cherry{ + pixel_x = 8; + pixel_y = 6 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_a_s) "bFp" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor/almayer{ - icon_state = "silverfull" - }, +/turf/open/floor/almayer/silverfull, /area/almayer/living/cryo_cells) "bFq" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "silverfull" - }, +/turf/open/floor/almayer/silverfull, /area/almayer/living/cryo_cells) "bFr" = ( /obj/structure/pipes/standard/simple/hidden/supply, @@ -19689,40 +11418,34 @@ /area/almayer/living/auxiliary_officer_office) "bFs" = ( /obj/structure/machinery/cm_vending/sorted/cargo_guns/squad_prep, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/almayer/red/southwest, /area/almayer/living/cryo_cells) "bFt" = ( /obj/structure/machinery/power/apc/almayer{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/east, /area/almayer/engineering/upper_engineering/starboard) -"bFu" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer, -/area/almayer/hallways/port_hallway) "bFA" = ( /obj/structure/machinery/firealarm{ pixel_y = 28 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/north, /area/almayer/command/cichallway) +"bFB" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_midship_hallway) "bFC" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/bridgebunks) "bFJ" = ( /obj/docking_port/stationary/marine_dropship/almayer_hangar_2, @@ -19738,77 +11461,32 @@ /obj/docking_port/stationary/marine_dropship/almayer_hangar_1, /turf/open/floor/plating, /area/almayer/hallways/hangar) -"bGb" = ( -/turf/closed/wall/almayer, -/area/almayer/hallways/port_hallway) -"bGc" = ( +"bFX" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" - }, -/area/almayer/command/lifeboat) -"bGe" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/port_hallway) -"bGg" = ( -/obj/structure/machinery/alarm/almayer{ - dir = 1 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/port_hallway) -"bGh" = ( -/obj/structure/barricade/handrail{ - dir = 8 - }, -/obj/structure/barricade/handrail, -/turf/open/floor/almayer{ - icon_state = "test_floor5" - }, -/area/almayer/hallways/port_hallway) -"bGi" = ( -/obj/structure/barricade/handrail, -/turf/open/floor/almayer{ - icon_state = "test_floor5" - }, -/area/almayer/hallways/port_hallway) -"bGj" = ( -/obj/structure/machinery/status_display{ - pixel_y = 30 - }, -/obj/structure/barricade/handrail, -/turf/open/floor/almayer{ - icon_state = "test_floor5" - }, -/area/almayer/hallways/port_hallway) -"bGk" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/obj/structure/barricade/handrail, -/turf/open/floor/almayer{ - icon_state = "test_floor5" +/turf/open/floor/almayer/plate, +/area/almayer/hallways/lower/port_aft_hallway) +"bGa" = ( +/obj/effect/step_trigger/clone_cleaner, +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 }, -/area/almayer/hallways/port_hallway) -"bGl" = ( -/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ - pixel_y = 25 +/obj/structure/sign/safety/maint{ + pixel_x = 32 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "cargo_arrow" +/turf/open/floor/almayer/mono, +/area/almayer/hallways/upper/starboard) +"bGc" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/area/almayer/hallways/port_hallway) +/turf/open/floor/almayer/red/west, +/area/almayer/command/lifeboat) "bGn" = ( /obj/structure/barricade/plasteel/metal, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/living/cryo_cells) "bGo" = ( /obj/structure/machinery/door/poddoor/shutters/almayer{ @@ -19820,32 +11498,13 @@ /obj/structure/window/framed/almayer/hull/hijack_bustable, /turf/open/floor/plating, /area/almayer/squads/req) -"bGp" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orangecorner" - }, -/area/almayer/hallways/port_umbilical) "bGq" = ( /obj/structure/machinery/light, /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) -"bGr" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 5 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_p) "bGu" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/machinery/light{ @@ -19857,47 +11516,41 @@ /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/squads/req) "bGy" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "green" +/turf/open/floor/almayer/green/west, +/area/almayer/squads/req) +"bGz" = ( +/obj/structure/window/framed/almayer, +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 1 }, +/turf/open/floor/almayer/green/northwest, /area/almayer/squads/req) "bGF" = ( /obj/structure/machinery/landinglight/ds2{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) "bGG" = ( /obj/structure/machinery/landinglight/ds2/delayone{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) "bGH" = ( /obj/structure/machinery/landinglight/ds2/delaytwo{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) "bGI" = ( /obj/structure/machinery/landinglight/ds2/delaythree{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) "bGJ" = ( /obj/effect/decal/warning_stripes{ @@ -19908,18 +11561,14 @@ }, /obj/structure/prop/almayer/hangar_stencil, /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) "bGK" = ( /obj/item/tool/warning_cone, /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) "bGL" = ( /obj/effect/decal/warning_stripes{ @@ -19929,100 +11578,55 @@ icon_state = "E"; pixel_x = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) "bGM" = ( /obj/structure/machinery/landinglight/ds1{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) "bGN" = ( /obj/structure/machinery/landinglight/ds1/delayone{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) "bGO" = ( /obj/structure/machinery/landinglight/ds1/delaytwo{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) "bGP" = ( /obj/structure/machinery/landinglight/ds1/delaythree{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) "bGQ" = ( /obj/structure/machinery/status_display{ pixel_y = 30 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) "bGR" = ( /obj/structure/machinery/cm_vending/sorted/medical/wall_med{ pixel_y = 25 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) -"bGT" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer, -/obj/structure/machinery/door/poddoor/almayer{ - dir = 4; - id = "hangarentrancesouth"; - name = "\improper South Hangar Podlock" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/port_hallway) "bGU" = ( /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/req) -"bHa" = ( -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_hallway) -"bHb" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 6 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_hallway) -"bHd" = ( -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 1 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_hallway) +"bHg" = ( +/obj/structure/bed, +/turf/open/floor/almayer/sterile_green_side/west, +/area/almayer/medical/lower_medical_medbay) "bHk" = ( -/turf/open/floor/almayer/research/containment/floor2{ - dir = 1 - }, +/turf/open/floor/almayer/research/containment/floor2/north, /area/almayer/medical/containment/cell/cl) -"bHm" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull) "bHp" = ( /obj/structure/disposalpipe/trunk{ dir = 2 @@ -20036,9 +11640,7 @@ icon_state = "W"; pixel_x = -1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/bravo) "bHq" = ( /obj/structure/machinery/door/firedoor/border_only/almayer{ @@ -20052,71 +11654,15 @@ req_access = null; req_one_access_txt = "3;19" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/shipboard/navigation) -"bHt" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/starboard_hallway) "bHu" = ( -/obj/structure/machinery/door/airlock/almayer/engineering{ - name = "\improper Engineering Hallway" - }, -/obj/structure/machinery/door/firedoor/border_only/almayer, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/engineering/lower_engineering) -"bHv" = ( -/obj/structure/surface/table/almayer, -/obj/structure/machinery/power/apc/almayer{ - dir = 4 - }, -/obj/structure/machinery/cell_charger, -/obj/structure/sign/safety/high_rad{ - pixel_x = 32; - pixel_y = -8 - }, -/obj/structure/sign/safety/hazard{ - pixel_x = 32; - pixel_y = 7 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" - }, -/area/almayer/engineering/lower_engineering) -"bHy" = ( -/obj/structure/surface/table/almayer, -/obj/item/storage/belt/utility/full, -/obj/item/clothing/glasses/welding, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/engineering/engine_core) -"bHz" = ( -/obj/structure/surface/table/almayer, -/obj/item/fuelCell, -/obj/item/fuelCell, -/obj/item/fuelCell, -/obj/structure/machinery/alarm/almayer{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "cargo" +/obj/structure/machinery/light{ + unacidable = 1; + unslashable = 1 }, -/area/almayer/engineering/engine_core) +/turf/open/floor/wood/ship, +/area/almayer/shipboard/brig/warden_office) "bHB" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -20125,32 +11671,14 @@ /area/almayer/hallways/hangar) "bHD" = ( /obj/structure/ship_ammo/rocket/banshee, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/hallways/hangar) "bHG" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/bridgebunks) -"bHH" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/structure/machinery/door/poddoor/almayer{ - dir = 4; - id = "hangarentrancesouth"; - name = "\improper South Hangar Podlock" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/port_hallway) "bHI" = ( /obj/structure/anti_air_cannon, /obj/structure/surface/table/almayer, @@ -20158,95 +11686,9 @@ /obj/item/tool/pen, /turf/open/floor/plating/almayer, /area/almayer/shipboard/weapon_room) -"bHL" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_hallway) "bHP" = ( /turf/open/floor/plating/almayer, /area/almayer/shipboard/weapon_room) -"bHS" = ( -/obj/structure/surface/table/almayer, -/obj/item/trash/USCMtray{ - pixel_y = 4 - }, -/obj/item/trash/USCMtray{ - pixel_y = 6 - }, -/obj/item/trash/USCMtray{ - pixel_y = 8 - }, -/obj/item/trash/USCMtray{ - pixel_y = 10 - }, -/obj/item/device/flashlight/lamp{ - layer = 3.3; - pixel_x = 15 - }, -/turf/open/floor/almayer{ - icon_state = "emeraldfull" - }, -/area/almayer/living/briefing) -"bHT" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/port_hallway) -"bHV" = ( -/obj/structure/disposalpipe/junction{ - dir = 4; - icon_state = "pipe-j2" - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 9 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/port_hallway) -"bHW" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/port_hallway) -"bHX" = ( -/obj/structure/pipes/vents/pump{ - dir = 1 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/port_hallway) -"bHY" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_hallway) -"bIb" = ( -/obj/structure/disposalpipe/junction{ - dir = 4; - icon_state = "pipe-j2" - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_hallway) "bId" = ( /obj/structure/machinery/firealarm{ pixel_y = 28 @@ -20254,10 +11696,7 @@ /obj/structure/surface/table/almayer, /obj/item/clipboard, /obj/item/paper, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/almayer/red/northwest, /area/almayer/shipboard/navigation) "bIe" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ @@ -20265,21 +11704,9 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hallways/hangar) -"bIi" = ( -/obj/structure/sign/safety/security{ - pixel_x = 15; - pixel_y = 32 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_f_p) -"bIl" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 9 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_hallway) +"bIj" = ( +/turf/open/floor/almayer/emeraldcorner, +/area/almayer/hallways/lower/port_midship_hallway) "bIn" = ( /obj/structure/machinery/computer/cameras/almayer_network, /obj/structure/surface/table/almayer, @@ -20287,19 +11714,14 @@ pixel_x = 8; pixel_y = 32 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/almayer/red/north, /area/almayer/shipboard/navigation) "bIo" = ( /obj/structure/cargo_container/lockmart/left{ layer = 3.1; pixel_y = 5 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) "bIp" = ( /obj/effect/step_trigger/ares_alert/mainframe, @@ -20308,27 +11730,15 @@ name = "\improper ARES Mainframe Shutters"; plane = -7 }, -/obj/structure/machinery/door/poddoor/almayer/blended/white/open{ - closed_layer = 3.2; - id = "ARES Emergency"; - layer = 3.2; - name = "ARES Emergency Lockdown"; - needs_power = 0; - open_layer = 1.9; - plane = -7 - }, -/turf/open/floor/almayer/no_build{ - icon_state = "test_floor4" - }, +/obj/structure/machinery/door/poddoor/almayer/blended/ai_lockdown/aicore, +/turf/open/floor/almayer/no_build/test_floor4, /area/almayer/command/airoom) "bIs" = ( /obj/structure/largecrate/supply/supplies/mre, /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/squads/req) "bIw" = ( /obj/structure/surface/table/almayer, @@ -20336,10 +11746,7 @@ dir = 1 }, /obj/structure/machinery/computer/working_joe, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/almayer/red/north, /area/almayer/shipboard/navigation) "bIx" = ( /obj/structure/machinery/status_display{ @@ -20347,10 +11754,7 @@ }, /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/almayer/red/northeast, /area/almayer/shipboard/navigation) "bIy" = ( /obj/item/device/radio/intercom{ @@ -20360,35 +11764,6 @@ }, /turf/closed/wall/almayer/reinforced, /area/almayer/shipboard/navigation) -"bIA" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = 11 - }, -/obj/structure/mirror{ - pixel_x = 29 - }, -/obj/structure/machinery/light{ - unacidable = 1; - unslashable = 1 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, -/area/almayer/living/auxiliary_officer_office) -"bII" = ( -/obj/structure/sign/safety/distribution_pipes{ - pixel_x = 8; - pixel_y = 32 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "green" - }, -/area/almayer/hallways/port_hallway) "bIJ" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -20402,9 +11777,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/almayer/living/grunt_rnr) "bIM" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -20412,30 +11785,16 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/medical/hydroponics) -"bIN" = ( -/obj/structure/bed/chair/office/dark, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_m_p) "bIO" = ( -/turf/closed/wall/almayer/outer, -/area) -"bIR" = ( -/obj/structure/machinery/light, -/turf/open/floor/almayer, -/area/almayer/hallways/port_hallway) -"bIS" = ( -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/turf/open/floor/almayer, -/area/almayer/hallways/port_hallway) -"bIT" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/effect/step_trigger/clone_cleaner, +/obj/effect/decal/warning_stripes{ + icon_state = "W"; + layer = 2.5 }, -/turf/open/floor/almayer, -/area/almayer/hallways/port_hallway) +/turf/open/floor/almayer/greencorner/west, +/area/almayer/hallways/lower/port_fore_hallway) "bIU" = ( /obj/structure/disposalpipe/segment, /obj/effect/decal/warning_stripes{ @@ -20447,23 +11806,15 @@ pixel_x = -1; pixel_y = 1 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/northeast, /area/almayer/squads/bravo) -"bIX" = ( -/obj/structure/machinery/light, -/obj/structure/disposalpipe/segment{ - dir = 4 +"bIW" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SE-out"; + pixel_x = 1 }, -/turf/open/floor/almayer, -/area/almayer/hallways/port_hallway) -"bJb" = ( -/obj/structure/disposalpipe/junction, -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer, -/area/almayer/hallways/port_hallway) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/port_midship_hallway) "bJe" = ( /obj/structure/surface/table/reinforced/black, /obj/item/explosive/grenade/high_explosive/training, @@ -20475,9 +11826,7 @@ pixel_x = 9; pixel_y = 10 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/cryo_cells) "bJf" = ( /obj/structure/window/framed/almayer/hull/hijack_bustable, @@ -20488,33 +11837,6 @@ }, /turf/open/floor/plating, /area/almayer/living/cryo_cells) -"bJh" = ( -/turf/closed/wall/almayer, -/area/almayer/hallways/port_umbilical) -"bJi" = ( -/obj/structure/machinery/light{ - dir = 4 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/turf/open/floor/almayer{ - icon_state = "orangecorner" - }, -/area/almayer/hallways/starboard_hallway) -"bJj" = ( -/obj/structure/closet/firecloset, -/turf/open/floor/almayer{ - icon_state = "orange" - }, -/area/almayer/engineering/lower_engineering) -"bJk" = ( -/obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "orange" - }, -/area/almayer/engineering/lower_engineering) "bJl" = ( /obj/structure/machinery/door/airlock/almayer/generic{ access_modified = 1; @@ -20530,13 +11852,8 @@ id = "Hangar Lockdown"; name = "\improper Hangar Lockdown Blast Door" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/living/auxiliary_officer_office) -"bJo" = ( -/turf/closed/wall/almayer, -/area/almayer/hallways/repair_bay) "bJt" = ( /turf/closed/wall/almayer, /area/almayer/living/grunt_rnr) @@ -20548,16 +11865,8 @@ dir = 4 }, /obj/structure/machinery/medical_pod/sleeper, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/north, /area/almayer/medical/lower_medical_medbay) -"bJz" = ( -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/port_hallway) "bJC" = ( /turf/closed/wall/almayer, /area/almayer/squads/charlie) @@ -20568,17 +11877,8 @@ /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orangecorner" - }, +/turf/open/floor/almayer/orangecorner/north, /area/almayer/squads/bravo) -"bJF" = ( -/obj/structure/pipes/vents/scrubber, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/engine_core) "bJH" = ( /obj/structure/surface/table/almayer, /obj/item/facepaint/black{ @@ -20586,77 +11886,6 @@ }, /turf/open/floor/almayer, /area/almayer/squads/bravo) -"bJI" = ( -/obj/structure/pipes/vents/pump/on, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/engine_core) -"bJK" = ( -/obj/structure/closet/radiation, -/turf/open/floor/almayer{ - icon_state = "test_floor5" - }, -/area/almayer/engineering/engine_core) -"bJM" = ( -/obj/structure/machinery/alarm/almayer{ - dir = 1 - }, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "orange" - }, -/area/almayer/engineering/engine_core) -"bJN" = ( -/obj/item/device/radio/intercom{ - freerange = 1; - name = "General Listening Channel"; - pixel_y = 28 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, -/area/almayer/engineering/engine_core) -"bJO" = ( -/obj/structure/machinery/light/small, -/obj/structure/sign/safety/nonpress_0g{ - pixel_x = 15; - pixel_y = -32 - }, -/obj/structure/sign/safety/press_area_ag{ - pixel_y = 32 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/port_umbilical) -"bJP" = ( -/obj/structure/machinery/camera/autoname/almayer{ - name = "ship-grade camera" - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "orange" - }, -/area/almayer/engineering/engine_core) -"bJQ" = ( -/obj/structure/surface/table/almayer, -/obj/item/fuelCell, -/obj/item/fuelCell, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/engineering/engine_core) -"bJR" = ( -/obj/structure/surface/table/almayer, -/obj/item/fuelCell, -/obj/item/fuelCell, -/obj/item/fuelCell, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/engineering/engine_core) "bJS" = ( /obj/structure/surface/rack, /obj/item/tool/wrench, @@ -20671,10 +11900,7 @@ dir = 8 }, /obj/structure/machinery/photocopier, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/almayer/red/west, /area/almayer/shipboard/navigation) "bJX" = ( /obj/structure/pipes/standard/simple/hidden/supply, @@ -20688,21 +11914,9 @@ /area/almayer/shipboard/navigation) "bJZ" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/almayer/red/east, /area/almayer/shipboard/navigation) -"bKa" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/vehiclehangar) "bKb" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 - }, /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/machinery/door/airlock/almayer/security/glass/reinforced{ access_modified = 1; @@ -20711,55 +11925,26 @@ req_access = null; req_one_access_txt = "7;19" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/shipboard/weapon_room) -"bKc" = ( -/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ - pixel_y = -30 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/port_hallway) "bKd" = ( /obj/structure/surface/table/almayer, /obj/item/tool/hand_labeler, /obj/item/storage/firstaid/fire, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/almayer/red/southwest, /area/almayer/shipboard/navigation) -"bKe" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 9 - }, -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/turf/open/floor/almayer, -/area/almayer/hallways/aft_hallway) "bKf" = ( -/turf/open/floor/almayer{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/almayer/red/northeast, /area/almayer/shipboard/navigation) -"bKh" = ( -/turf/open/floor/almayer, -/area/almayer/hallways/vehiclehangar) -"bKj" = ( -/obj/structure/machinery/gear{ - id = "vehicle_elevator_gears" - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "mono" +"bKk" = ( +/obj/item/tool/wrench{ + pixel_x = -8; + pixel_y = 10 }, -/area/almayer/hallways/vehiclehangar) +/obj/effect/decal/cleanable/blood/oil, +/obj/structure/prop/mech/hydralic_clamp, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/repair_bay) "bKm" = ( /obj/structure/closet/crate/freezer{ desc = "A freezer crate. There is a note attached, it reads: Do not open, property of Pvt. Mendoza." @@ -20767,9 +11952,7 @@ /obj/item/storage/beer_pack, /obj/item/reagent_container/food/drinks/cans/beer, /obj/item/reagent_container/food/drinks/cans/beer, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/engineering/upper_engineering/starboard) "bKn" = ( /obj/structure/machinery/prop/almayer/computer{ @@ -20779,24 +11962,15 @@ /obj/structure/bed/chair/office/dark{ dir = 8 }, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/almayer/red/northwest, /area/almayer/shipboard/weapon_room) "bKp" = ( /obj/structure/surface/table/almayer, /obj/item/paper_bin/uscm, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/almayer/red/east, /area/almayer/shipboard/weapon_room) "bKq" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/almayer/red/west, /area/almayer/shipboard/navigation) "bKs" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -20806,9 +11980,7 @@ /area/almayer/shipboard/navigation) "bKt" = ( /obj/structure/cargo_container/arious/left, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) "bKu" = ( /obj/structure/cargo_container/arious/mid, @@ -20818,14 +11990,10 @@ /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/req) "bKA" = ( -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/req) "bKC" = ( /obj/structure/surface/table/almayer, @@ -20840,120 +12008,60 @@ /obj/structure/window{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/living/cryo_cells) -"bKE" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" +"bKI" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 8 }, -/area/almayer/hallways/starboard_hallway) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/starboard_hallway) +"bKJ" = ( +/obj/structure/machinery/door/airlock/almayer/maint, +/turf/open/floor/almayer/test_floor4, +/area/almayer/maint/lower/cryo_cells) "bKM" = ( /obj/effect/landmark/start/marine/medic/charlie, /obj/effect/landmark/late_join/charlie, /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/charlie) -"bKO" = ( -/obj/structure/window/framed/almayer, -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 +"bKP" = ( +/obj/structure/machinery/light/small{ + dir = 4 }, -/turf/open/floor/plating, -/area/almayer/engineering/engineering_workshop) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/lower/s_bow) "bKQ" = ( /obj/structure/bed/chair{ dir = 8 }, /turf/open/floor/wood/ship, /area/almayer/shipboard/sea_office) -"bKT" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" - }, -/area/almayer/engineering/engineering_workshop) -"bKU" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/structure/machinery/door/airlock/multi_tile/almayer/engidoor{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/engineering/engine_core) -"bKV" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/engine_core) -"bKW" = ( -/obj/structure/pipes/standard/manifold/hidden/supply, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/engineering/engine_core) "bKX" = ( /obj/structure/surface/table/almayer, /obj/item/storage/box/masks, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "emerald" - }, +/turf/open/floor/almayer/emerald/north, /area/almayer/squads/charlie) -"bLb" = ( -/obj/structure/machinery/door/airlock/almayer/maint{ - dir = 1 - }, -/obj/structure/machinery/door/poddoor/almayer/open{ - id = "Hangar Lockdown"; - name = "\improper Hangar Lockdown Blast Door" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hull/lower_hull/l_f_p) "bLc" = ( -/obj/structure/machinery/light, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/engine_core) -"bLd" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 +/obj/structure/surface/rack, +/obj/item/roller, +/obj/item/roller, +/obj/structure/machinery/light{ + dir = 1 }, -/turf/open/floor/almayer, -/area/almayer/engineering/engine_core) -"bLe" = ( -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/item/clothing/glasses/disco_fever{ + pixel_x = 5; + pixel_y = 4 }, -/area/almayer/engineering/engine_core) +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_f_s) "bLf" = ( -/turf/open/floor/almayer{ - dir = 5; - icon_state = "orange" - }, -/area/almayer/engineering/engine_core) -"bLg" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "SW-out" - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/hull/lower_hull/l_a_s) +/obj/structure/closet/emcloset, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_m_s) "bLh" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -20974,10 +12082,7 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/almayer/red/east, /area/almayer/shipboard/navigation) "bLk" = ( /obj/structure/machinery/prop/almayer/computer{ @@ -20987,18 +12092,12 @@ /obj/structure/bed/chair/office/dark{ dir = 8 }, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/almayer/red/southwest, /area/almayer/shipboard/weapon_room) "bLl" = ( /obj/structure/surface/rack, /obj/item/tool/crowbar, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/almayer/red/east, /area/almayer/shipboard/weapon_room) "bLm" = ( /obj/structure/machinery/prop/almayer/computer{ @@ -21011,26 +12110,17 @@ /obj/structure/machinery/keycard_auth{ pixel_y = 25 }, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/almayer/red/northwest, /area/almayer/shipboard/navigation) "bLo" = ( /obj/structure/surface/table/almayer, /obj/item/tool/pen, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/almayer/red/northwest, /area/almayer/shipboard/navigation) "bLp" = ( /obj/structure/surface/table/almayer, /obj/item/paper_bin/uscm, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/almayer/red/north, /area/almayer/shipboard/navigation) "bLq" = ( /obj/structure/disposalpipe/segment{ @@ -21040,10 +12130,7 @@ /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 8 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/almayer/red/northeast, /area/almayer/shipboard/navigation) "bLr" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ @@ -21053,10 +12140,7 @@ dir = 4 }, /obj/structure/machinery/sleep_console, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/northwest, /area/almayer/medical/lower_medical_medbay) "bLs" = ( /obj/structure/disposalpipe/segment{ @@ -21067,41 +12151,6 @@ }, /turf/open/floor/almayer, /area/almayer/shipboard/navigation) -"bLt" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/vehiclehangar) -"bLu" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/vehiclehangar) -"bLv" = ( -/obj/structure/machinery/door_control{ - id = "ARES StairsLower"; - name = "ARES Core Lockdown"; - pixel_x = 24; - pixel_y = -8; - req_one_access_txt = "90;91;92" - }, -/obj/structure/machinery/camera/autoname/almayer/containment/ares{ - dir = 8; - pixel_y = 2 - }, -/turf/open/floor/almayer/no_build{ - dir = 4; - icon_state = "silver" - }, -/area/almayer/command/airoom) "bLw" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/light{ @@ -21109,9 +12158,7 @@ }, /obj/item/clipboard, /obj/item/paper, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/shipboard/weapon_room) "bLx" = ( /obj/structure/pipes/vents/pump/siphon/on{ @@ -21145,15 +12192,23 @@ /area/almayer/engineering/airmix) "bLD" = ( /obj/structure/largecrate/random/case, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) -"bLH" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" +"bLF" = ( +/obj/structure/machinery/door/poddoor/almayer/open{ + dir = 4; + id = "Brig Lockdown Shutters"; + name = "\improper Brig Lockdown Shutter" + }, +/obj/structure/machinery/door/firedoor/border_only/almayer, +/obj/structure/machinery/door/airlock/almayer/security/glass/reinforced{ + closeOtherId = "brigmaint_n"; + name = "\improper Brig" }, +/turf/open/floor/almayer/test_floor4, +/area/almayer/shipboard/brig/starboard_hallway) +"bLH" = ( +/turf/open/floor/almayer/red/west, /area/almayer/shipboard/weapon_room) "bLJ" = ( /obj/structure/machinery/light{ @@ -21161,10 +12216,7 @@ }, /obj/structure/surface/rack, /obj/item/tool/extinguisher, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/almayer/red/east, /area/almayer/shipboard/weapon_room) "bLO" = ( /obj/structure/bed/chair{ @@ -21178,65 +12230,39 @@ /obj/item/tool/pen, /turf/open/floor/almayer, /area/almayer/living/offices/flight) -"bLS" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/structure/machinery/light{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull) -"bLT" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/obj/structure/machinery/door_control{ - id = "hangarentrancesouth"; - name = "South Hangar Shutters"; - pixel_y = 30; - req_one_access_txt = "2;3;12;19"; - throw_range = 15 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/port_hallway) "bLX" = ( /obj/vehicle/powerloader, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/squads/req) "bMa" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "green" - }, +/turf/open/floor/almayer/green/southeast, /area/almayer/squads/req) +"bMf" = ( +/obj/item/device/radio/intercom{ + freerange = 1; + name = "General Listening Channel"; + pixel_y = 28 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_midship_hallway) +"bMg" = ( +/obj/structure/pipes/vents/pump/no_boom/gas{ + vent_tag = "Synth Bay"; + dir = 8 + }, +/turf/open/floor/almayer/aicore/no_build, +/area/almayer/command/airoom) "bMq" = ( /obj/structure/machinery/cm_vending/sorted/cargo_guns/squad_prep, /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/charlie_delta_shared) -"bMt" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "emerald" - }, -/area/almayer/hallways/port_hallway) "bMu" = ( /obj/structure/machinery/cm_vending/sorted/cargo_guns/squad{ req_access = null; @@ -21248,71 +12274,44 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/charlie_delta_shared) "bMx" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "emerald" - }, +/turf/open/floor/almayer/emerald/west, /area/almayer/squads/charlie) "bMy" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "emerald" - }, +/turf/open/floor/almayer/emerald/east, /area/almayer/squads/charlie) "bMA" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "emerald" - }, +/turf/open/floor/almayer/emerald/north, /area/almayer/squads/charlie) -"bMB" = ( -/obj/structure/machinery/firealarm{ - dir = 8; - pixel_x = -24 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/engine_core) "bMC" = ( -/turf/open/floor/almayer{ - dir = 9; - icon_state = "emerald" - }, +/turf/open/floor/almayer/emerald/northwest, /area/almayer/squads/charlie) "bMD" = ( /obj/structure/machinery/vending/cigarette{ density = 0; pixel_y = 16 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "emerald" - }, +/turf/open/floor/almayer/emerald/north, /area/almayer/squads/charlie) -"bMF" = ( -/obj/structure/stairs/perspective{ - icon_state = "p_stair_full" - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/engineering/engine_core) +"bME" = ( +/obj/structure/surface/rack, +/obj/structure/ob_ammo/ob_fuel, +/obj/structure/ob_ammo/ob_fuel, +/obj/structure/ob_ammo/ob_fuel, +/obj/structure/ob_ammo/ob_fuel, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/p_bow) "bMJ" = ( /obj/structure/machinery/light, /obj/structure/machinery/portable_atmospherics/canister/oxygen, @@ -21328,20 +12327,10 @@ /obj/structure/machinery/portable_atmospherics/canister/air, /turf/open/floor/engine, /area/almayer/engineering/airmix) -"bMM" = ( -/turf/open/floor/almayer, -/area/almayer/engineering/engine_core) -"bMN" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/engineering/engine_core) "bMO" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/prop/almayer/CICmap, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/almayer/red/west, /area/almayer/shipboard/navigation) "bMP" = ( /obj/structure/pipes/vents/pump{ @@ -21349,31 +12338,17 @@ }, /turf/open/floor/almayer, /area/almayer/shipboard/navigation) -"bMQ" = ( -/obj/structure/machinery/power/fusion_engine{ - name = "\improper S-52 fusion reactor 1" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/engineering/engine_core) "bMR" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/almayer/red/east, /area/almayer/shipboard/navigation) "bMS" = ( /obj/structure/surface/table/almayer, /obj/item/folder/red, /obj/item/tool/pen, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/almayer/red/east, /area/almayer/shipboard/weapon_room) "bMT" = ( /obj/structure/machinery/prop/almayer/computer{ @@ -21387,79 +12362,25 @@ pixel_x = 8; pixel_y = -24 }, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/almayer/red/southwest, /area/almayer/shipboard/navigation) "bMU" = ( /obj/structure/surface/table/almayer, /obj/item/folder/blue, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/almayer/red/southwest, /area/almayer/shipboard/navigation) -"bMV" = ( -/obj/structure/machinery/power/fusion_engine{ - name = "\improper S-52 fusion reactor 7" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/engineering/engine_core) -"bMW" = ( -/obj/structure/machinery/power/fusion_engine{ - name = "\improper S-52 fusion reactor 13" - }, -/obj/structure/sign/safety/rad_haz{ - pixel_x = 8; - pixel_y = -32 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/engineering/engine_core) -"bMX" = ( -/obj/structure/machinery/light/small{ - dir = 8 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/hull/lower_hull/l_a_s) -"bMY" = ( -/obj/structure/mirror{ - pixel_x = 28 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, -/area/almayer/hull/upper_hull/u_a_s) +"bMZ" = ( +/obj/structure/largecrate/random/case/double, +/turf/open/floor/almayer/plate, +/area/almayer/maint/upper/u_f_p) "bNa" = ( /obj/structure/surface/table/almayer, /obj/item/folder/black, -/turf/open/floor/almayer{ - icon_state = "red" - }, +/turf/open/floor/almayer/red, /area/almayer/shipboard/navigation) "bNb" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/almayer/red/southeast, /area/almayer/shipboard/navigation) "bNe" = ( /obj/structure/machinery/camera/autoname/almayer{ @@ -21468,10 +12389,7 @@ }, /obj/structure/surface/table/almayer, /obj/item/storage/toolbox/emergency, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/almayer/red/east, /area/almayer/shipboard/weapon_room) "bNf" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -21492,10 +12410,7 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/northwest, /area/almayer/living/port_emb) "bNi" = ( /obj/structure/surface/table/almayer, @@ -21503,16 +12418,10 @@ /obj/structure/machinery/cm_vending/sorted/medical/wall_med{ pixel_y = 25 }, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/almayer/red/northwest, /area/almayer/shipboard/navigation) "bNk" = ( -/turf/open/floor/almayer{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/almayer/red/southeast, /area/almayer/shipboard/navigation) "bNl" = ( /obj/structure/machinery/light{ @@ -21521,10 +12430,7 @@ /turf/open/floor/plating/almayer, /area/almayer/shipboard/weapon_room) "bNm" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/almayer/red/east, /area/almayer/shipboard/weapon_room) "bNn" = ( /obj/structure/surface/table/almayer, @@ -21533,33 +12439,24 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/almayer/red/west, /area/almayer/shipboard/navigation) "bNo" = ( /obj/structure/bed/chair/office/dark, /turf/open/floor/almayer, /area/almayer/shipboard/navigation) -"bNp" = ( -/obj/structure/machinery/door/poddoor/shutters/almayer/open{ - id = "vehicle1door"; - name = "Vehicle Bay One" - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/vehiclehangar) "bNq" = ( /obj/structure/surface/table/almayer, /obj/item/tool/wirecutters, /obj/item/tool/crowbar, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/almayer/red/southwest, /area/almayer/shipboard/navigation) +"bNr" = ( +/obj/structure/sign/safety/storage{ + pixel_y = -32 + }, +/turf/open/floor/almayer/green, +/area/almayer/hallways/lower/starboard_midship_hallway) "bNs" = ( /obj/structure/bed/chair/office/light{ dir = 8 @@ -21575,9 +12472,7 @@ pixel_x = 8; pixel_y = -32 }, -/turf/open/floor/almayer{ - icon_state = "red" - }, +/turf/open/floor/almayer/red, /area/almayer/shipboard/navigation) "bNw" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ @@ -21589,18 +12484,14 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/almayer/living/grunt_rnr) "bNA" = ( /obj/structure/machinery/computer/ordercomp, /obj/structure/sign/safety/galley{ pixel_x = -17 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/req) "bNB" = ( /obj/structure/surface/table/almayer, @@ -21609,36 +12500,23 @@ /obj/item/tool/hand_labeler, /obj/item/clipboard, /obj/effect/landmark/map_item, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/req) "bNC" = ( /obj/structure/machinery/cm_vending/sorted/marine_food{ density = 0; pixel_y = 16 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/delta) -"bND" = ( -/obj/structure/bed/chair, -/turf/open/floor/almayer, -/area/almayer/shipboard/brig/perma) "bNE" = ( /obj/structure/extinguisher_cabinet{ pixel_x = 26 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "cargo_arrow" - }, +/turf/open/floor/almayer/cargo_arrow/north, /area/almayer/squads/charlie_delta_shared) "bNF" = ( -/turf/open/floor/almayer{ - icon_state = "emeraldcorner" - }, +/turf/open/floor/almayer/emeraldcorner, /area/almayer/squads/charlie) "bNG" = ( /obj/structure/machinery/cm_vending/clothing/tl/charlie{ @@ -21650,34 +12528,20 @@ "bNL" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "plating_striped" - }, +/turf/open/floor/almayer/plating_striped/east, /area/almayer/squads/req) "bNM" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/north, /area/almayer/engineering/upper_engineering/starboard) "bNN" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "plating_striped" - }, +/turf/open/floor/almayer/plating_striped/east, /area/almayer/squads/req) "bNP" = ( /obj/structure/surface/rack, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/squads/req) "bNQ" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "plating_striped" - }, +/turf/open/floor/almayer/plating_striped/west, /area/almayer/squads/req) "bNS" = ( /obj/structure/machinery/prop/almayer/computer{ @@ -21685,166 +12549,35 @@ }, /obj/structure/surface/table/almayer, /obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "red" - }, +/turf/open/floor/almayer/red, /area/almayer/shipboard/navigation) -"bNT" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_a_s) -"bNW" = ( -/obj/item/device/radio/intercom{ - freerange = 1; - name = "General Listening Channel"; - pixel_y = 28 - }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/hallways/vehiclehangar) -"bNX" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/starboard_hallway) -"bNZ" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/engineering/engineering_workshop) -"bOc" = ( -/obj/structure/platform{ - dir = 1 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/engineering/engine_core) -"bOe" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/obj/effect/decal/warning_stripes{ - icon_state = "SE-out"; - pixel_x = 1 - }, -/obj/structure/machinery/door_control/railings{ - pixel_y = 24 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/hallways/vehiclehangar) -"bOh" = ( -/obj/structure/machinery/power/fusion_engine{ - name = "\improper S-52 fusion reactor 16" - }, -/obj/structure/machinery/status_display{ - pixel_y = 30 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/engineering/engine_core) -"bOi" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "orange" - }, -/area/almayer/engineering/engine_core) -"bOk" = ( -/obj/structure/machinery/power/fusion_engine{ - name = "\improper S-52 fusion reactor 2" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/engineering/engine_core) -"bOl" = ( -/obj/structure/machinery/power/fusion_engine{ - name = "\improper S-52 fusion reactor 8" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/engineering/engine_core) -"bOm" = ( -/obj/structure/machinery/power/fusion_engine{ - name = "\improper S-52 fusion reactor 14" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/engineering/engine_core) -"bOn" = ( -/obj/structure/machinery/door/airlock/almayer/secure/reinforced{ - name = "\improper Exterior Airlock"; - req_access = null - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hull/lower_hull/l_a_s) -"bOo" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/hull/lower_hull/l_a_s) "bOq" = ( /obj/structure/prop/almayer/cannon_cables, -/turf/open/floor/almayer{ - icon_state = "tcomms" - }, +/turf/open/floor/almayer/tcomms, /area/almayer/shipboard/weapon_room) "bOs" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "redcorner" - }, +/turf/open/floor/almayer/redcorner/east, /area/almayer/shipboard/weapon_room) -"bOv" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "emeraldcorner" +"bOw" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W"; + pixel_x = -1 }, -/area/almayer/hallways/port_hallway) +/turf/open/floor/almayer/plate, +/area/almayer/hallways/lower/vehiclehangar) "bOx" = ( /obj/structure/machinery/door/airlock/almayer/marine/charlie/tl, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/squads/charlie) "bOC" = ( /obj/structure/sign/safety/maint{ pixel_x = 8; pixel_y = -32 }, -/turf/open/floor/almayer{ - icon_state = "orange" - }, +/turf/open/floor/almayer/orange, /area/almayer/hallways/hangar) "bOG" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -21865,9 +12598,7 @@ name = "\improper Briefing Room" }, /obj/structure/machinery/door/firedoor/border_only/almayer, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/living/briefing) "bOK" = ( /obj/structure/machinery/door_control{ @@ -21884,9 +12615,7 @@ req_one_access_txt = "1;21" }, /obj/structure/surface/table/almayer, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/req) "bOM" = ( /obj/structure/machinery/alarm/almayer{ @@ -21895,10 +12624,7 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/almayer/red/north, /area/almayer/shipboard/weapon_room) "bON" = ( /obj/structure/machinery/light{ @@ -21907,10 +12633,7 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/almayer/red/north, /area/almayer/shipboard/weapon_room) "bOO" = ( /obj/structure/machinery/firealarm{ @@ -21919,10 +12642,7 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/almayer/red/north, /area/almayer/shipboard/weapon_room) "bOQ" = ( /obj/structure/surface/table/almayer, @@ -21936,10 +12656,7 @@ /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "green" - }, +/turf/open/floor/almayer/green/west, /area/almayer/squads/req) "bOT" = ( /obj/structure/machinery/firealarm{ @@ -21953,16 +12670,8 @@ dir = 1 }, /obj/structure/machinery/cm_vending/gear/sea, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/almayer/shipboard/sea_office) -"bOX" = ( -/turf/open/floor/almayer{ - icon_state = "emeraldcorner" - }, -/area/almayer/hallways/port_hallway) "bOZ" = ( /obj/structure/machinery/light{ dir = 1 @@ -21970,40 +12679,17 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "emeraldcorner" - }, +/turf/open/floor/almayer/emeraldcorner/north, /area/almayer/squads/charlie) "bPa" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "emeraldcorner" - }, +/turf/open/floor/almayer/emeraldcorner/west, /area/almayer/squads/charlie) -"bPd" = ( -/obj/structure/machinery/power/fusion_engine{ - name = "\improper S-52 fusion reactor 3" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/engineering/engine_core) -"bPe" = ( -/obj/structure/machinery/portable_atmospherics/powered/pump, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/engineering/engine_core) "bPg" = ( /obj/vehicle/powerloader, /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo/southwest, /area/almayer/shipboard/weapon_room) "bPh" = ( /obj/item/device/radio/intercom{ @@ -22015,20 +12701,13 @@ /obj/structure/ob_ammo/ob_fuel, /obj/structure/ob_ammo/ob_fuel, /obj/structure/ob_ammo/ob_fuel, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/almayer/red/north, /area/almayer/shipboard/weapon_room) -"bPj" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/vehiclehangar) +"bPi" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer, +/area/almayer/hallways/upper/midship_hallway) "bPk" = ( /obj/item/roller, /obj/item/roller, @@ -22041,23 +12720,16 @@ /obj/item/tool/extinguisher, /obj/item/tool/extinguisher, /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_corner" - }, +/turf/open/floor/almayer/sterile_green_corner/west, /area/almayer/medical/lower_medical_lobby) "bPn" = ( /obj/structure/machinery/computer/orbital_cannon_console, /obj/structure/bed/chair/ob_chair, -/turf/open/floor/almayer{ - icon_state = "tcomms" - }, +/turf/open/floor/almayer/tcomms, /area/almayer/shipboard/weapon_room) "bPo" = ( /obj/structure/prop/almayer/cannon_cable_connector, -/turf/open/floor/almayer{ - icon_state = "tcomms" - }, +/turf/open/floor/almayer/tcomms, /area/almayer/shipboard/weapon_room) "bPq" = ( /obj/structure/pipes/standard/manifold/hidden/supply, @@ -22088,41 +12760,19 @@ dir = 8 }, /obj/structure/pipes/standard/manifold/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/medical/lower_medical_medbay) -"bPB" = ( -/obj/structure/machinery/door/window/eastleft{ - req_one_access_txt = "2;21" - }, -/obj/structure/machinery/door/window/westright, -/obj/structure/machinery/door/poddoor/shutters/almayer{ - dir = 4; - id = "ROlobby1"; - name = "\improper RO Line 1" - }, -/obj/structure/machinery/door/firedoor/border_only/almayer, -/obj/structure/surface/table/reinforced/almayer_blend/north, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/squads/req) "bPC" = ( /obj/structure/sign/nosmoking_2{ pixel_x = 28 }, -/turf/open/floor/almayer{ - icon_state = "cargo_arrow" - }, +/turf/open/floor/almayer/cargo_arrow, /area/almayer/shipboard/weapon_room) "bPD" = ( /obj/structure/bed/chair/office/dark{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/req) "bPF" = ( /turf/closed/wall/almayer/white/outer_tile, @@ -22132,18 +12782,24 @@ icon_state = "N"; pixel_y = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/shipboard/weapon_room) +"bPH" = ( +/obj/structure/machinery/light/small{ + dir = 4 + }, +/obj/structure/machinery/disposal, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/almayer/red/northeast, +/area/almayer/shipboard/brig/processing) "bPJ" = ( /obj/effect/decal/warning_stripes{ icon_state = "NW-out"; pixel_y = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/shipboard/weapon_room) "bPL" = ( /obj/structure/machinery/firealarm{ @@ -22159,158 +12815,58 @@ /turf/open/floor/almayer, /area/almayer/living/cryo_cells) "bPM" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "silvercorner" - }, +/turf/open/floor/almayer/silvercorner/east, /area/almayer/living/cryo_cells) "bPO" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, /obj/effect/landmark/observer_start, -/turf/open/floor/almayer/uscm/directional{ - dir = 8; - icon_state = "logo_c" - }, +/turf/open/floor/almayer/uscm/directional/logo_c/west, /area/almayer/living/briefing) -"bPR" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "SE-out" - }, -/turf/open/floor/almayer{ - icon_state = "orangefull" - }, -/area/almayer/engineering/engineering_workshop) -"bPS" = ( -/obj/structure/largecrate/random/case/small, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_s) -"bPT" = ( -/obj/structure/largecrate/random/barrel/green, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_s) -"bPU" = ( -/obj/structure/largecrate/random/barrel/red, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_s) -"bPV" = ( -/obj/structure/largecrate/random/barrel/yellow, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_s) -"bPW" = ( -/obj/structure/largecrate/random/secure, -/turf/open/floor/almayer{ - icon_state = "plate" +"bQc" = ( +/obj/structure/machinery/door/airlock/almayer/generic{ + dir = 1 }, -/area/almayer/hull/lower_hull/l_m_s) -"bPZ" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "S" +/obj/structure/machinery/door/poddoor/almayer/open{ + id = "courtyard_cells"; + name = "\improper Courtyard Lockdown Shutter" }, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/structure/machinery/door/poddoor/almayer/locked{ + id = "Cell 6"; + name = "\improper Courtyard Divider" }, -/area/almayer/engineering/engineering_workshop) -"bQa" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "SW-out" +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 }, -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "orangefull" +/turf/open/floor/almayer/test_floor4, +/area/almayer/shipboard/brig/cells) +"bQt" = ( +/obj/structure/machinery/light, +/turf/open/floor/almayer/red, +/area/almayer/shipboard/weapon_room) +"bQz" = ( +/obj/structure/largecrate/random/case/double, +/turf/open/floor/almayer/red, +/area/almayer/shipboard/weapon_room) +"bQA" = ( +/obj/structure/pipes/vents/pump{ + dir = 4 }, -/area/almayer/engineering/engineering_workshop) -"bQe" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W" +/turf/open/floor/almayer/emerald, +/area/almayer/squads/charlie) +"bQD" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, /obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" + icon_state = "SE-out"; + pixel_x = 1 }, -/area/almayer/engineering/engine_core) -"bQi" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orangecorner" - }, -/area/almayer/engineering/engine_core) -"bQk" = ( -/obj/structure/machinery/power/smes/buildable, -/obj/structure/machinery/status_display{ - pixel_y = 30 - }, -/obj/structure/sign/safety/high_voltage{ - pixel_x = 32; - pixel_y = -8 - }, -/obj/structure/sign/safety/hazard{ - pixel_x = 32; - pixel_y = 7 - }, -/turf/open/floor/almayer{ - icon_state = "tcomms" - }, -/area/almayer/engineering/engine_core) -"bQm" = ( -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/engineering/engine_core) -"bQt" = ( -/obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "red" - }, -/area/almayer/shipboard/weapon_room) -"bQu" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/engineering_workshop) -"bQz" = ( -/obj/structure/largecrate/random/case/double, -/turf/open/floor/almayer{ - icon_state = "red" - }, -/area/almayer/shipboard/weapon_room) -"bQA" = ( -/obj/structure/pipes/vents/pump{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "emerald" - }, -/area/almayer/squads/charlie) -"bQD" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "SE-out"; - pixel_x = 1 - }, -/obj/structure/machinery/door/airlock/multi_tile/almayer/marine/charlie{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +/obj/structure/machinery/door/airlock/multi_tile/almayer/marine/charlie{ + dir = 1 }, +/turf/open/floor/almayer/test_floor4, /area/almayer/squads/charlie) "bQE" = ( /obj/structure/surface/rack, @@ -22318,9 +12874,7 @@ /obj/structure/ob_ammo/ob_fuel, /obj/structure/ob_ammo/ob_fuel, /obj/structure/ob_ammo/ob_fuel, -/turf/open/floor/almayer{ - icon_state = "red" - }, +/turf/open/floor/almayer/red, /area/almayer/shipboard/weapon_room) "bQG" = ( /obj/structure/surface/table/almayer, @@ -22330,9 +12884,7 @@ pixel_x = 8; pixel_y = -32 }, -/turf/open/floor/almayer{ - icon_state = "red" - }, +/turf/open/floor/almayer/red, /area/almayer/shipboard/weapon_room) "bQI" = ( /obj/structure/surface/table/almayer, @@ -22343,9 +12895,7 @@ pixel_x = 8; pixel_y = -32 }, -/turf/open/floor/almayer{ - icon_state = "red" - }, +/turf/open/floor/almayer/red, /area/almayer/shipboard/weapon_room) "bQM" = ( /obj/structure/machinery/medical_pod/bodyscanner, @@ -22355,10 +12905,7 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/northeast, /area/almayer/medical/lower_medical_medbay) "bQQ" = ( /obj/structure/sign/ROsign{ @@ -22366,6 +12913,10 @@ }, /turf/closed/wall/almayer, /area/almayer/squads/req) +"bQS" = ( +/obj/structure/machinery/cm_vending/sorted/cargo_ammo/cargo/blend, +/turf/open/floor/almayer/green, +/area/almayer/squads/req) "bQU" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 8 @@ -22383,9 +12934,7 @@ /turf/closed/wall/almayer, /area/almayer/squads/charlie) "bRa" = ( -/turf/open/floor/almayer{ - icon_state = "silvercorner" - }, +/turf/open/floor/almayer/silvercorner, /area/almayer/living/cryo_cells) "bRc" = ( /obj/structure/machinery/light{ @@ -22404,9 +12953,7 @@ /obj/item/reagent_container/food/condiment/hotsauce/sriracha{ pixel_x = 4 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/charlie) "bRg" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -22416,150 +12963,26 @@ dir = 4 }, /obj/structure/surface/table/almayer, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/bravo) -"bRi" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E" - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/engineering_workshop) -"bRj" = ( -/obj/structure/ladder{ - height = 1; - id = "engineeringladder" - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/engineering/engineering_workshop) -"bRk" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 8 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/engineering_workshop) -"bRm" = ( -/obj/structure/machinery/light{ - dir = 4 - }, -/obj/structure/bed/chair, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" - }, -/area/almayer/shipboard/brig/lobby) "bRo" = ( -/obj/effect/landmark/late_join/working_joe, -/obj/effect/landmark/start/working_joe, -/obj/structure/machinery/light{ - dir = 8 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/command/airoom) -"bRr" = ( -/obj/structure/machinery/fuelcell_recycler, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/engineering/engine_core) -"bRs" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer, -/obj/structure/sign/safety/bridge{ - pixel_x = 15; - pixel_y = -32 - }, -/obj/structure/sign/safety/west{ - pixel_y = -32 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/aft_hallway) -"bRu" = ( -/obj/structure/machinery/door/airlock/almayer/engineering{ - dir = 2; - name = "\improper Engineering Workshop" - }, -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 - }, /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/engineering/engineering_workshop) -"bRx" = ( -/obj/structure/machinery/door/poddoor/railing{ - id = "vehicle_elevator_railing_aux" - }, -/obj/structure/machinery/light, /turf/open/floor/almayer, -/area/almayer/hallways/vehiclehangar) -"bRz" = ( -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/port_umbilical) -"bRA" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/port_umbilical) -"bRD" = ( -/obj/structure/largecrate/random/barrel/red, +/area/almayer/hallways/lower/port_midship_hallway) +"bRt" = ( /obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/obj/structure/sign/safety/fire_haz{ - pixel_x = 8; - pixel_y = -32 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/vehiclehangar) -"bRF" = ( -/obj/structure/machinery/light/small, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/sign/safety/distribution_pipes{ - pixel_x = 8; - pixel_y = 32 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_p) -"bRH" = ( -/turf/open/floor/plating/plating_catwalk, -/area/almayer/shipboard/brig/cryo) -"bRK" = ( -/obj/structure/machinery/light/small{ - dir = 1 + icon_state = "N"; + pixel_y = 1 }, -/obj/structure/largecrate/random/barrel/yellow, -/turf/open/floor/almayer{ - icon_state = "plate" +/turf/open/floor/almayer/orangecorner, +/area/almayer/hallways/lower/starboard_umbilical) +"bRO" = ( +/obj/structure/sign/safety/maint{ + pixel_x = 32 }, -/area/almayer/hull/upper_hull/u_m_s) +/turf/open/floor/almayer/green/east, +/area/almayer/hallways/upper/fore_hallway) "bRP" = ( /obj/structure/machinery/body_scanconsole, /obj/structure/disposalpipe/segment{ @@ -22568,44 +12991,8 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/north, /area/almayer/medical/lower_medical_medbay) -"bRQ" = ( -/obj/structure/sign/safety/hvac_old{ - pixel_x = 8; - pixel_y = 32 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/port_hallway) -"bRR" = ( -/obj/structure/machinery/door/window/eastleft{ - req_one_access_txt = "2;21" - }, -/obj/structure/machinery/door/window/westright, -/obj/structure/machinery/door/poddoor/shutters/almayer{ - dir = 4; - id = "ROlobby2"; - name = "\improper RO Line 2" - }, -/obj/structure/machinery/door/firedoor/border_only/almayer, -/obj/structure/surface/table/reinforced/almayer_blend, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/squads/req) -"bRU" = ( -/obj/structure/machinery/door/airlock/almayer/maint{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/vehiclehangar) "bRV" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -22617,123 +13004,35 @@ icon_state = "N"; pixel_y = 1 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/northeast, /area/almayer/squads/bravo) "bSa" = ( /obj/structure/target, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "plating_striped" - }, +/turf/open/floor/almayer/plating_striped/east, /area/almayer/living/cryo_cells) "bSb" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/east, /area/almayer/living/cryo_cells) -"bSd" = ( -/obj/structure/machinery/camera/autoname/almayer{ - dir = 4; - name = "ship-grade camera" - }, -/turf/open/floor/almayer, -/area/almayer/hallways/port_hallway) "bSe" = ( -/turf/open/floor/almayer{ - dir = 6; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/southeast, /area/almayer/squads/bravo) "bSf" = ( /turf/closed/wall/almayer, /area/almayer/shipboard/port_point_defense) -"bSg" = ( -/turf/closed/wall/almayer/outer, -/area/almayer/hallways/port_umbilical) -"bSj" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/obj/structure/sign/safety/security{ - pixel_x = 15; - pixel_y = 32 - }, -/obj/structure/sign/safety/restrictedarea{ - pixel_y = 32 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/port_hallway) -"bSk" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "NE-out"; - pixel_y = 1 - }, -/turf/open/floor/almayer{ - icon_state = "orangefull" - }, -/area/almayer/engineering/engineering_workshop) -"bSl" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/engineering_workshop) -"bSm" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "NW-out"; - pixel_y = 1 - }, -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "orangefull" - }, -/area/almayer/engineering/engineering_workshop) "bSn" = ( /obj/structure/machinery/cm_vending/gear/tl{ density = 0; pixel_x = -32; vend_x_offset = 1 }, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/southwest, /area/almayer/squads/bravo) -"bSt" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/engineering/engine_core) "bSv" = ( /turf/closed/wall/almayer, /area/almayer/living/tankerbunks) -"bSx" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orangecorner" - }, -/area/almayer/engineering/engine_core) -"bSy" = ( -/turf/open/floor/plating/plating_catwalk, -/area/almayer/engineering/engine_core) "bSD" = ( /obj/item/reagent_container/glass/bucket{ pixel_x = -4; @@ -22749,16 +13048,14 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/engineering/upper_engineering/starboard) -"bSG" = ( -/obj/structure/machinery/power/smes/buildable, -/turf/open/floor/almayer{ - icon_state = "tcomms" +"bSH" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 1 }, -/area/almayer/engineering/engine_core) +/turf/open/floor/almayer/orange/north, +/area/almayer/engineering/lower) "bSJ" = ( /turf/closed/wall/almayer, /area/almayer/squads/delta) @@ -22779,17 +13076,13 @@ /obj/structure/machinery/door/airlock/multi_tile/almayer/engidoor/glass{ name = "\improper Cryogenics Bay" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/engineering/upper_engineering/port) "bSR" = ( /obj/effect/decal/warning_stripes{ icon_state = "SW-out" }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) "bST" = ( /obj/structure/closet/secure_closet/hydroresearch, @@ -22799,36 +13092,21 @@ icon_state = "E"; pixel_x = 1 }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/medical/hydroponics) -"bSY" = ( -/obj/structure/disposalpipe/junction{ - dir = 4 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/starboard_hallway) "bSZ" = ( /obj/structure/machinery/vending/coffee{ density = 0; pixel_y = 16 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/delta) "bTa" = ( /obj/structure/machinery/vending/cola{ density = 0; pixel_y = 16 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/delta) "bTb" = ( /obj/structure/machinery/door/firedoor/border_only/almayer{ @@ -22846,24 +13124,6 @@ }, /turf/open/space, /area/space) -"bTi" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "SE-out"; - pixel_x = 1 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/engineering/engine_core) -"bTl" = ( -/obj/structure/machinery/power/fusion_engine{ - name = "\improper S-52 fusion reactor 4" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/engineering/engine_core) "bTn" = ( /obj/structure/machinery/cryopod/right{ layer = 3.1; @@ -22873,16 +13133,8 @@ pixel_x = 8; pixel_y = -26 }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/living/tankerbunks) -"bTp" = ( -/obj/structure/machinery/portable_atmospherics/powered/scrubber, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/engineering/engine_core) "bTq" = ( /obj/structure/machinery/door/airlock/almayer/secure/reinforced{ name = "\improper Evacuation Airlock PL-3"; @@ -22906,35 +13158,20 @@ /obj/structure/machinery/power/apc/almayer{ dir = 8 }, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/northwest, /area/almayer/medical/lower_medical_medbay) -"bTw" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 6 - }, -/turf/open/floor/almayer, -/area/almayer/shipboard/brig/main_office) "bTx" = ( /turf/open/floor/wood/ship, /area/almayer/shipboard/sea_office) "bTy" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "bluecorner" - }, +/turf/open/floor/almayer/bluecorner/north, /area/almayer/squads/delta) "bTz" = ( -/obj/structure/machinery/cm_vending/sorted/tech/comp_storage, -/obj/structure/sign/safety/terminal{ - pixel_x = -17 - }, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/area/almayer/engineering/engineering_workshop/hangar) +/turf/open/floor/almayer/test_floor4, +/area/almayer/hallways/lower/port_umbilical) "bTA" = ( /turf/open/floor/almayer, /area/almayer/squads/delta) @@ -22942,16 +13179,10 @@ /obj/structure/pipes/vents/scrubber{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/almayer/blue/north, /area/almayer/squads/delta) "bTE" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "bluecorner" - }, +/turf/open/floor/almayer/bluecorner/east, /area/almayer/squads/delta) "bTG" = ( /obj/structure/surface/table/almayer, @@ -22959,67 +13190,42 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/almayer/red/west, /area/almayer/shipboard/navigation) "bTH" = ( /turf/open/floor/almayer, /area/almayer/living/tankerbunks) -"bTI" = ( -/obj/structure/largecrate/random/case/double, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_m_s) "bTJ" = ( /obj/structure/machinery/vending/cigarette{ density = 0; pixel_y = 16 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/almayer/blue/north, /area/almayer/squads/delta) "bTM" = ( /obj/structure/reagent_dispensers/water_cooler/stacks{ density = 0; pixel_y = 16 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/almayer/blue/north, /area/almayer/squads/delta) "bTN" = ( /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/delta) "bTO" = ( /turf/open/floor/almayer, /area/almayer/shipboard/port_point_defense) -"bTQ" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_s) "bTR" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/auxiliary_officer_office) "bTS" = ( -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/auxiliary_officer_office) "bTT" = ( /obj/structure/window/framed/almayer/hull, @@ -23032,9 +13238,7 @@ desc = "A blank marine's information dog tag. The word ranger and a pawprint is scratched into it." }, /obj/item/device/megaphone, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/auxiliary_officer_office) "bTV" = ( /obj/item/bedsheet/brown{ @@ -23061,16 +13265,19 @@ /obj/item/bedsheet/brown{ layer = 3.1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/tankerbunks) +"bTW" = ( +/obj/structure/machinery/light/small, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/s_bow) +"bTY" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/almayer, +/area/almayer/hallways/upper/port) "bUa" = ( /obj/structure/closet, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/southeast, /area/almayer/command/computerlab) "bUb" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ @@ -23079,60 +13286,32 @@ /obj/structure/bed/chair/comfy/bravo{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "orangefull" - }, +/turf/open/floor/almayer/orangefull, /area/almayer/living/briefing) -"bUc" = ( -/obj/structure/machinery/door/poddoor/shutters/almayer{ - id = "Secretroom"; - indestructible = 1; - unacidable = 1 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hull/lower_hull/l_m_s) -"bUd" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "bluecorner" - }, -/area/almayer/hallways/port_hallway) -"bUe" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/obj/structure/machinery/door_control{ - id = "hangarentrancesouth"; - name = "South Hangar Shutters"; - pixel_y = 30; - req_one_access_txt = "2;3;12;19"; - throw_range = 15 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/port_hallway) "bUf" = ( /obj/structure/machinery/light, /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "bluecorner" - }, +/turf/open/floor/almayer/bluecorner/west, /area/almayer/squads/delta) "bUi" = ( /obj/structure/sign/poster{ pixel_x = 32 }, -/turf/open/floor/almayer{ - icon_state = "blue" - }, +/turf/open/floor/almayer/blue, /area/almayer/squads/charlie_delta_shared) +"bUo" = ( +/obj/structure/sign/safety/ammunition{ + pixel_x = 15; + pixel_y = -32 + }, +/obj/structure/sign/safety/hazard{ + pixel_y = -32 + }, +/obj/structure/closet/secure_closet/guncabinet/red/armory_shotgun, +/turf/open/floor/almayer/redfull, +/area/almayer/squads/req) "bUp" = ( /obj/structure/surface/table/almayer, /obj/structure/pipes/standard/simple/hidden/supply{ @@ -23171,17 +13350,8 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/almayer/blue/north, /area/almayer/squads/delta) -"bUx" = ( -/obj/structure/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plating, -/area/almayer/command/airoom) "bUy" = ( /obj/structure/closet/crate/ammo, /obj/structure/machinery/light/small, @@ -23193,64 +13363,18 @@ pixel_x = -26 }, /obj/effect/decal/cleanable/cobweb2/dynamic, -/turf/open/floor/almayer{ - icon_state = "test_floor5" - }, +/turf/open/floor/almayer/test_floor5, /area/almayer/squads/req) -"bUz" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/port_hallway) -"bUE" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" - }, -/area/almayer/hallways/aft_hallway) -"bUF" = ( -/turf/open/floor/almayer{ - icon_state = "bluecorner" - }, -/area/almayer/hallways/port_hallway) -"bUG" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/port_hallway) -"bUI" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" - }, -/area/almayer/engineering/engineering_workshop) -"bUJ" = ( -/obj/structure/platform_decoration{ - dir = 4 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/engineering/engine_core) -"bUL" = ( -/obj/structure/platform_decoration, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" +"bUH" = ( +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12 }, -/area/almayer/engineering/engine_core) -"bUM" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "blue" +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12; + pixel_y = 12 }, -/area/almayer/hallways/port_hallway) +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_m_p) "bUN" = ( /obj/structure/surface/table/almayer, /obj/item/trash/USCMtray{ @@ -23261,27 +13385,16 @@ /area/almayer/squads/delta) "bUO" = ( /obj/structure/machinery/portable_atmospherics/canister/air, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/shipboard/port_point_defense) -"bUP" = ( -/obj/structure/machinery/door/airlock/almayer/maint{ - dir = 1 - }, -/obj/structure/disposalpipe/segment, -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hull/lower_hull/l_m_s) +"bUQ" = ( +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_f_p) "bUT" = ( /obj/structure/extinguisher_cabinet{ pixel_x = 26 }, -/turf/open/floor/almayer{ - icon_state = "cargo_arrow" - }, +/turf/open/floor/almayer/cargo_arrow, /area/almayer/squads/charlie_delta_shared) "bUU" = ( /obj/structure/machinery/cm_vending/clothing/tl/delta{ @@ -23290,52 +13403,11 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/delta) -"bUW" = ( -/obj/structure/machinery/power/fusion_engine{ - name = "\improper S-52 fusion reactor 5" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/engineering/engine_core) -"bUX" = ( -/obj/structure/machinery/power/fusion_engine{ - name = "\improper S-52 fusion reactor 11" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/engineering/engine_core) -"bUY" = ( -/obj/structure/machinery/power/fusion_engine{ - name = "\improper S-52 fusion reactor 17" - }, -/obj/structure/sign/safety/rad_haz{ - pixel_x = 8; - pixel_y = 32 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/engineering/engine_core) -"bUZ" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "NW-out" - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/hull/lower_hull/l_a_p) "bVb" = ( -/turf/open/floor/almayer{ - icon_state = "blue" - }, +/turf/open/floor/almayer/blue, /area/almayer/squads/delta) "bVd" = ( -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/shipboard/port_point_defense) "bVe" = ( /obj/structure/closet/l3closet/general, @@ -23345,88 +13417,46 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/medical/medical_science) -"bVg" = ( -/obj/structure/machinery/status_display{ - pixel_x = 32; - pixel_y = 16 - }, -/turf/open/floor/wood/ship, -/area/almayer/living/commandbunks) -"bVi" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_p) "bVn" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/almayer/blue/west, /area/almayer/squads/delta) "bVo" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/almayer/blue/east, /area/almayer/squads/delta) "bVq" = ( /obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "blue" - }, +/turf/open/floor/almayer/blue, /area/almayer/squads/delta) -"bVw" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "bluecorner" +"bVr" = ( +/obj/structure/platform{ + dir = 8 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_a_p) +"bVs" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, +/turf/open/floor/wood/ship, +/area/almayer/living/commandbunks) +"bVv" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/engineering/lower/engine_core) +"bVw" = ( +/turf/open/floor/almayer/bluecorner/east, /area/almayer/living/briefing) "bVy" = ( /obj/structure/surface/table/almayer, /obj/item/storage/box/masks, -/turf/open/floor/almayer{ - icon_state = "blue" - }, +/turf/open/floor/almayer/blue, /area/almayer/squads/delta) -"bVB" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 - }, -/obj/structure/machinery/door/airlock/almayer/generic{ - dir = 2; - name = "\improper Weyland-Yutani Office" - }, -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/structure/disposalpipe/segment, -/obj/structure/machinery/door/poddoor/shutters/almayer/cl/office/door, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/command/corporateliason) -"bVC" = ( -/obj/structure/machinery/door/poddoor/shutters/almayer{ - dir = 8; - id = "cmp_armory"; - name = "\improper Armory Shutters" - }, -/obj/structure/machinery/door/firedoor/border_only/almayer, -/obj/structure/machinery/door/airlock/almayer/security/glass/reinforced{ - name = "\improper Armory" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/shipboard/brig/armory) "bVE" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/medidoor{ name = "\improper Medical Bay"; @@ -23435,73 +13465,30 @@ /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 2 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/medical/upper_medical) -"bVF" = ( -/obj/structure/surface/rack, -/obj/item/roller, -/obj/item/roller, -/obj/structure/machinery/light{ - dir = 1 - }, -/obj/item/clothing/glasses/disco_fever{ - pixel_x = 5; - pixel_y = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_f_s) -"bVL" = ( -/obj/structure/surface/rack, -/obj/structure/ob_ammo/ob_fuel, -/obj/structure/ob_ammo/ob_fuel, -/obj/structure/ob_ammo/ob_fuel, -/obj/structure/ob_ammo/ob_fuel, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_p) "bVM" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/plating/plating_catwalk, /area/almayer/hallways/hangar) +"bVN" = ( +/obj/structure/pipes/vents/scrubber, +/turf/open/floor/almayer/plate, +/area/almayer/engineering/lower/engine_core) "bVR" = ( -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_p) -"bVT" = ( -/obj/structure/largecrate/random/barrel/white, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_f_p) +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/upper/u_m_s) "bVU" = ( /turf/closed/wall/almayer/outer, /area/almayer/shipboard/port_point_defense) -"bWb" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_a_p) "bWc" = ( /obj/structure/machinery/door/airlock/almayer/secure/reinforced{ dir = 2; name = "\improper Exterior Airlock"; req_access = null }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/shipboard/port_point_defense) "bWd" = ( /obj/structure/machinery/light{ @@ -23510,108 +13497,56 @@ /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/starboard_garden) "bWe" = ( -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/almayer/shipboard/port_point_defense) "bWf" = ( /obj/structure/machinery/light, /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/starboard_garden) +"bWg" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_m_p) "bWh" = ( /obj/structure/machinery/door/airlock/almayer/secure/reinforced{ dir = 2; name = "\improper Evacuation Airlock SU-4"; req_access = null }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/powered) "bWn" = ( /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/almayer/shipboard/port_point_defense) "bWo" = ( /obj/docking_port/stationary/emergency_response/port2, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/almayer/shipboard/port_point_defense) "bWp" = ( /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/almayer/shipboard/port_point_defense) "bWq" = ( /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/starboard_garden) "bWr" = ( /obj/structure/machinery/door/airlock/almayer/maint, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/living/chapel) -"bWs" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, -/obj/structure/machinery/light{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "red" - }, -/area/almayer/hallways/aft_hallway) -"bWw" = ( -/obj/structure/pipes/vents/pump{ - dir = 8; - id_tag = "mining_outpost_pump" - }, -/turf/open/floor/almayer, -/area/almayer/engineering/engineering_workshop/hangar) -"bWC" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "NW-out"; - pixel_y = 1 - }, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, -/area/almayer/hallways/aft_hallway) -"bWE" = ( -/turf/open/floor/almayer{ - dir = 10; - icon_state = "red" - }, -/area/almayer/hallways/aft_hallway) "bWJ" = ( /obj/structure/machinery/shower{ dir = 4 @@ -23620,90 +13555,35 @@ /obj/structure/window/reinforced/tinted/frosted, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/auxiliary_officer_office) -"bWK" = ( -/obj/docking_port/stationary/escape_pod/north, -/turf/open/floor/plating, -/area/almayer/hull/upper_hull/u_m_s) "bWL" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/req) -"bWM" = ( +"bWQ" = ( +/obj/structure/pipes/vents/pump, /turf/open/floor/almayer, -/area/almayer/engineering/engineering_workshop/hangar) -"bWP" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "SW-out" +/area/almayer/shipboard/brig/warden_office) +"bWT" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/obj/structure/sign/safety/distribution_pipes{ - pixel_x = -17 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" - }, -/area/almayer/hallways/aft_hallway) -"bWS" = ( -/obj/structure/surface/table/almayer, -/obj/item/reagent_container/glass/bucket/mopbucket, -/obj/item/reagent_container/glass/bucket/mopbucket{ - pixel_y = 10 - }, -/turf/open/floor/almayer{ - icon_state = "orange" - }, -/area/almayer/engineering/engineering_workshop/hangar) -"bWT" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/structure/surface/table/reinforced/almayer_B, -/obj/item/storage/box/co2_knife{ - pixel_x = 8; - pixel_y = 9 - }, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/structure/surface/table/reinforced/almayer_B, +/obj/item/storage/box/co2_knife{ + pixel_x = 8; + pixel_y = 9 }, +/turf/open/floor/almayer/plate, /area/almayer/living/grunt_rnr) -"bWV" = ( -/obj/structure/machinery/power/apc/almayer{ - dir = 1 - }, -/obj/structure/sign/safety/rewire{ - pixel_x = 32 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" - }, -/area/almayer/hallways/port_hallway) -"bWZ" = ( -/obj/structure/machinery/door/airlock/almayer/engineering{ - dir = 2; - name = "\improper Engineering Workshop" - }, -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/engineering/engineering_workshop) "bXc" = ( -/obj/structure/surface/table/almayer, -/obj/structure/machinery/microwave{ - pixel_y = 9 +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/obj/item/reagent_container/food/snacks/packaged_burger, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/area/almayer/living/briefing) +/turf/open/floor/almayer/green/east, +/area/almayer/hallways/upper/fore_hallway) "bXe" = ( /turf/open/floor/plating/plating_catwalk, /area/almayer/lifeboat_pumps/south2) @@ -23711,46 +13591,16 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 5 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/command/lifeboat) -"bXl" = ( -/obj/structure/stairs/perspective{ - dir = 1; - icon_state = "p_stair_sn_full_cap" - }, -/obj/structure/platform{ - dir = 8 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/engineering/engine_core) -"bXm" = ( -/obj/structure/stairs/perspective{ - dir = 1; - icon_state = "p_stair_full" - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/engineering/engine_core) -"bXn" = ( -/obj/structure/stairs/perspective{ - dir = 8; - icon_state = "p_stair_sn_full_cap" - }, -/obj/structure/platform{ - dir = 4 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" +"bXh" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" }, -/area/almayer/engineering/engine_core) +/obj/structure/largecrate/random/barrel/yellow, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_a_p) "bXo" = ( /obj/structure/ladder{ height = 1; @@ -23760,63 +13610,21 @@ pixel_x = 24; pixel_y = 32 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/shipboard/navigation) -"bXr" = ( -/obj/structure/machinery/power/fusion_engine{ - name = "\improper S-52 fusion reactor 6" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/engineering/engine_core) -"bXs" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/vehiclehangar) -"bXt" = ( -/obj/structure/machinery/power/fusion_engine{ - name = "\improper S-52 fusion reactor 12" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/engineering/engine_core) -"bXu" = ( -/obj/structure/machinery/power/fusion_engine{ - name = "\improper S-52 fusion reactor 18" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/engineering/engine_core) -"bXv" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/structure/disposalpipe/segment, -/turf/open/floor/wood/ship, -/area/almayer/command/corporateliason) "bXw" = ( /obj/structure/machinery/bioprinter{ stored_metal = 125 }, -/turf/open/floor/almayer{ - icon_state = "sterile_green_corner" - }, +/turf/open/floor/almayer/sterile_green_corner, /area/almayer/medical/operating_room_two) -"bXx" = ( -/obj/structure/flora/pottedplant{ - icon_state = "pottedplant_18"; - pixel_y = 7 - }, -/obj/structure/machinery/door_control/cl/quarter/officedoor{ - pixel_x = -25 +"bXy" = ( +/obj/structure/machinery/cm_vending/clothing/maintenance_technician, +/obj/structure/machinery/light/small{ + dir = 1 }, -/turf/open/floor/wood/ship, -/area/almayer/command/corporateliason) +/turf/open/floor/almayer/plate, +/area/almayer/engineering/upper_engineering/port) "bXz" = ( /obj/effect/decal/cleanable/blood/oil, /turf/open/floor/plating/plating_catwalk, @@ -23826,96 +13634,8 @@ dir = 4 }, /obj/structure/disposalpipe/segment, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/req) -"bXP" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/engineering/engine_core) -"bXQ" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/engine_core) -"bXR" = ( -/obj/structure/stairs/perspective{ - icon_state = "p_stair_sn_full_cap" - }, -/obj/structure/platform{ - dir = 8 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/engineering/engine_core) -"bXS" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/engineering/engine_core) -"bXU" = ( -/obj/item/device/radio/intercom{ - freerange = 1; - name = "General Listening Channel"; - pixel_y = 28 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/engine_core) -"bXV" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/engine_core) -"bXW" = ( -/obj/structure/machinery/door_control/cl/quarter/officedoor{ - pixel_x = 25 - }, -/turf/open/floor/wood/ship, -/area/almayer/command/corporateliason) -"bXX" = ( -/obj/structure/machinery/light{ - dir = 8 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/vehiclehangar) "bXY" = ( /obj/structure/ladder{ height = 1; @@ -23925,101 +13645,40 @@ pixel_x = 24; pixel_y = -32 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/shipboard/navigation) -"bXZ" = ( -/obj/structure/machinery/light, -/turf/open/floor/almayer, -/area/almayer/hallways/vehiclehangar) -"bYc" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/aft_hallway) -"bYe" = ( -/turf/open/floor/almayer{ - icon_state = "mono" - }, -/area/almayer/hallways/aft_hallway) -"bYg" = ( -/obj/item/reagent_container/glass/bucket{ - pixel_x = 4; - pixel_y = 9 - }, -/obj/item/tool/shovel/spade{ - pixel_x = -3; - pixel_y = -3 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_s) -"bYh" = ( -/obj/structure/disposalpipe/junction, -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 4 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/aft_hallway) -"bYi" = ( -/obj/structure/platform{ - dir = 8 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_s) -"bYj" = ( -/turf/open/floor/wood/ship, -/area/almayer/command/corporateliason) +"bYa" = ( +/obj/structure/machinery/cm_vending/sorted/cargo_guns/cargo/blend, +/turf/open/floor/almayer/green/southwest, +/area/almayer/squads/req) "bYn" = ( /turf/closed/wall/almayer/outer, /area/almayer/engineering/upper_engineering/port) "bYq" = ( /obj/structure/cargo_container/wy/left, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) "bYu" = ( /obj/structure/machinery/light{ dir = 8 }, /obj/structure/machinery/cm_vending/sorted/uniform_supply, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/squads/req) "bYv" = ( /obj/structure/machinery/door/airlock/almayer/marine/requisitions{ name = "\improper Requisitions Storage" }, -/obj/structure/machinery/door/firedoor/border_only/almayer, /obj/structure/disposalpipe/segment{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/squads/req) "bYw" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/disposalpipe/junction, /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/req) -"bYy" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/obj/structure/sign/safety/escapepod{ - pixel_x = -17 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "red" - }, -/area/almayer/hallways/aft_hallway) "bYz" = ( /obj/structure/sign/safety/south{ pixel_x = 32; @@ -24029,102 +13688,25 @@ pixel_x = 32; pixel_y = 7 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/northeast, /area/almayer/command/cichallway) -"bYE" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orangecorner" - }, -/area/almayer/hallways/port_hallway) -"bYI" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, -/area/almayer/engineering/lower_engineering) -"bYK" = ( -/obj/structure/sign/safety/ladder{ - pixel_x = 8; - pixel_y = 32 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, -/area/almayer/engineering/lower_engineering) -"bYM" = ( -/obj/structure/pipes/vents/pump, -/turf/open/floor/almayer, -/area/almayer/engineering/lower_engineering) -"bYO" = ( -/obj/structure/pipes/vents/pump{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/engine_core) -"bYP" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "red" - }, -/area/almayer/hallways/aft_hallway) -"bYQ" = ( +"bYF" = ( /obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" + icon_state = "N"; + pixel_y = 1 }, -/area/almayer/hallways/aft_hallway) -"bYS" = ( -/obj/structure/pipes/vents/scrubber{ +/turf/open/floor/plating/plating_catwalk, +/area/almayer/engineering/lower) +"bYL" = ( +/obj/structure/machinery/door/airlock/almayer/maint{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/engine_core) -"bYU" = ( -/turf/open/floor/almayer{ - icon_state = "orange" - }, -/area/almayer/engineering/engine_core) -"bYV" = ( -/obj/item/fuelCell, -/obj/item/fuelCell, -/obj/item/fuelCell, -/obj/structure/surface/table/almayer, -/obj/item/fuelCell, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/engineering/engine_core) +/obj/structure/disposalpipe/segment, +/turf/open/floor/almayer/test_floor4, +/area/almayer/maint/upper/u_a_s) "bYW" = ( -/obj/structure/machinery/camera/autoname/almayer{ - dir = 1; - name = "ship-grade camera" - }, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "orange" - }, -/area/almayer/engineering/engine_core) +/turf/closed/wall/almayer/reinforced, +/area/almayer/shipboard/panic) "bYY" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/disposalpipe/segment, @@ -24140,9 +13722,7 @@ dir = 1; name = "\improper Combat Information Center" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/command/cic) "bZa" = ( /obj/structure/disposalpipe/segment, @@ -24150,9 +13730,7 @@ dir = 2 }, /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/living/pilotbunks) "bZc" = ( /obj/structure/sign/safety/nonpress_0g{ @@ -24161,23 +13739,21 @@ /turf/open/floor/plating/plating_catwalk, /area/almayer/engineering/upper_engineering/notunnel) "bZe" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/almayer/red/north, /area/almayer/lifeboat_pumps/north1) -"bZg" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 9 +"bZf" = ( +/obj/structure/prop/invuln/lattice_prop{ + dir = 1; + icon_state = "lattice-simple"; + pixel_x = -16; + pixel_y = 17 }, -/obj/structure/machinery/light, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_s) +/obj/structure/largecrate/random/barrel/red, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_m_p) "bZi" = ( /obj/structure/largecrate/random/case/double, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) "bZj" = ( /obj/structure/disposalpipe/segment, @@ -24188,123 +13764,45 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/east, /area/almayer/medical/lower_medical_medbay) -"bZr" = ( -/turf/open/floor/almayer{ +"bZo" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/starboard_midship_hallway) +"bZq" = ( +/obj/effect/projector{ + name = "Almayer_AresUp"; + vector_x = -96; + vector_y = 65 + }, +/obj/structure/platform{ + dir = 8 + }, +/obj/structure/stairs{ dir = 1; - icon_state = "plating_striped" + icon_state = "ramptop" }, +/turf/open/floor/almayer/aicore/no_build, +/area/almayer/command/airoom) +"bZr" = ( +/turf/open/floor/almayer/plating_striped/north, /area/almayer/squads/req) "bZw" = ( /turf/open/floor/plating/plating_catwalk, /area/almayer/command/combat_correspondent) -"bZz" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/port_hallway) -"bZA" = ( -/obj/structure/machinery/door/airlock/almayer/engineering{ - name = "\improper Engineering Hallway" - }, -/obj/structure/machinery/door/firedoor/border_only/almayer, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/engineering/lower_engineering) -"bZD" = ( -/obj/structure/surface/table/almayer, -/obj/item/fuelCell, -/obj/item/fuelCell, -/obj/item/fuelCell, -/obj/structure/machinery/camera/autoname/almayer{ - dir = 1; - name = "ship-grade camera" - }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/engineering/engine_core) -"bZE" = ( -/obj/structure/pipes/binary/pump/on{ - dir = 4 - }, -/obj/structure/machinery/camera/autoname/almayer{ - dir = 1; - name = "ship-grade camera" - }, -/obj/structure/sign/safety/life_support{ - pixel_x = 8; - pixel_y = -32 - }, -/turf/open/floor/almayer{ - icon_state = "orange" - }, -/area/almayer/engineering/lower_engineering) -"bZH" = ( -/obj/structure/machinery/firealarm{ - dir = 8; - pixel_x = -24 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" - }, -/area/almayer/hull/upper_hull/u_f_p) "bZJ" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/effect/landmark/map_item, /obj/item/device/binoculars, /turf/open/floor/plating/plating_catwalk, /area/almayer/command/cic) -"bZK" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 10 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/starboard_hallway) -"bZL" = ( -/obj/structure/machinery/door/poddoor/almayer/open{ - dir = 4; - id = "Hangar Lockdown"; - name = "\improper Hangar Lockdown Blast Door" - }, -/turf/open/floor/almayer, -/area/almayer/hallways/vehiclehangar) -"bZN" = ( -/obj/structure/machinery/door/airlock/almayer/generic{ - name = "Bathroom" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/shipboard/brig/chief_mp_office) "bZO" = ( /obj/structure/machinery/light{ dir = 8 }, /obj/structure/largecrate/random/barrel/blue, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) "bZR" = ( /obj/structure/machinery/status_display{ @@ -24314,10 +13812,12 @@ /obj/structure/sign/safety/airlock{ pixel_y = -32 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/command/lifeboat) +"bZS" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer/silver/northeast, +/area/almayer/hallways/lower/repair_bay) "bZU" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -24327,88 +13827,70 @@ /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 2 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/squads/delta) "cab" = ( /obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/briefing) "cac" = ( /obj/structure/disposalpipe/segment{ dir = 4; icon_state = "pipe-c" }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/briefing) "cad" = ( /obj/structure/machinery/light, /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/briefing) "cae" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/briefing) "caf" = ( /obj/structure/machinery/computer/cryopod{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/squads/req) "cag" = ( -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/squads/req) "cah" = ( /obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/squads/req) "cai" = ( /obj/structure/filingcabinet, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/squads/req) +"cak" = ( +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/evidence_storage) "cal" = ( -/turf/open/floor/almayer{ - dir = 6; - icon_state = "green" - }, +/turf/open/floor/almayer/green/southeast, /area/almayer/squads/req) -"can" = ( -/obj/structure/machinery/conveyor{ - id = "req_belt" +"caq" = ( +/obj/structure/machinery/light/small, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_m_s) +"car" = ( +/obj/structure/machinery/firealarm{ + pixel_y = -28 }, -/turf/open/floor/almayer, -/area/almayer/hallways/port_hallway) -"cat" = ( -/obj/structure/machinery/door/poddoor/almayer/open{ - dir = 4; - id = "Hangar Lockdown"; - name = "\improper Hangar Lockdown Blast Door" +/obj/structure/bed/chair/comfy/delta{ + dir = 8 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/vehiclehangar) +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer/plate, +/area/almayer/living/briefing) "cau" = ( /obj/structure/disposalpipe/segment, /obj/structure/machinery/door/airlock/almayer/security/glass{ @@ -24421,117 +13903,11 @@ /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/living/cryo_cells) -"cav" = ( -/obj/structure/machinery/light{ - dir = 4 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/turf/open/floor/almayer{ - icon_state = "orangecorner" - }, -/area/almayer/hallways/port_hallway) -"cax" = ( -/obj/structure/machinery/camera/autoname/almayer{ - name = "ship-grade camera" - }, -/obj/structure/machinery/alarm/almayer{ - dir = 1 - }, -/obj/structure/machinery/suit_storage_unit/compression_suit/uscm, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/port_umbilical) -"cay" = ( -/obj/structure/closet/emcloset{ - pixel_x = 8 - }, -/turf/open/floor/almayer{ - icon_state = "orange" - }, -/area/almayer/engineering/lower_engineering) -"caz" = ( -/obj/structure/surface/table/almayer, -/obj/item/storage/firstaid/toxin{ - pixel_x = 8; - pixel_y = -2 - }, -/obj/item/book/manual/engineering_guide, -/turf/open/floor/almayer{ - icon_state = "orange" - }, -/area/almayer/engineering/lower_engineering) -"caA" = ( -/obj/structure/surface/table/almayer, -/obj/item/storage/firstaid/fire, -/obj/item/device/lightreplacer, -/turf/open/floor/almayer{ - icon_state = "orange" - }, -/area/almayer/engineering/lower_engineering) -"caB" = ( -/obj/structure/surface/table/almayer, -/obj/item/device/flashlight, -/obj/item/storage/firstaid/rad, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "orange" - }, -/area/almayer/engineering/lower_engineering) -"caC" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/machinery/door/poddoor/almayer/open{ - dir = 4; - id = "Hangar Lockdown"; - name = "\improper Hangar Lockdown Blast Door" - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/vehiclehangar) -"caD" = ( -/obj/structure/machinery/door/poddoor/almayer/open{ - dir = 4; - id = "Hangar Lockdown"; - name = "\improper Hangar Lockdown Blast Door" - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/vehiclehangar) -"caE" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/machinery/door/firedoor/border_only/almayer, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hull/lower_hull/l_f_p) -"caF" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, -/area/almayer/hallways/aft_hallway) "caM" = ( /obj/structure/largecrate/random/barrel/blue, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) "caN" = ( /obj/effect/decal/warning_stripes{ @@ -24544,16 +13920,11 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) "caO" = ( /obj/structure/surface/table/reinforced/almayer_B, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/west, /area/almayer/living/briefing) "caS" = ( /obj/structure/surface/table/reinforced/prison, @@ -24566,37 +13937,37 @@ name = "ship-grade camera" }, /obj/structure/machinery/light, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_corner" - }, +/turf/open/floor/almayer/sterile_green_corner/west, /area/almayer/medical/operating_room_three) "caT" = ( /obj/structure/sink{ dir = 1; pixel_y = -10 }, -/turf/open/floor/almayer{ - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side, /area/almayer/medical/operating_room_three) +"cbc" = ( +/obj/structure/platform_decoration, +/obj/structure/prop/invuln/overhead_pipe{ + dir = 4; + pixel_x = -14; + pixel_y = 13 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_a_s) "cbg" = ( /obj/structure/machinery/door/airlock/almayer/command{ dir = 2; name = "\improper Command Ladder" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/medical/medical_science) "cbh" = ( /obj/structure/machinery/cm_vending/clothing/pilot_officer{ density = 0; pixel_y = 16 }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/living/cryo_cells) "cbm" = ( /obj/structure/machinery/firealarm{ @@ -24605,30 +13976,14 @@ /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22" }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/captain_mess) "cbn" = ( /obj/structure/bed/chair/office/dark{ dir = 8 }, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/southwest, /area/almayer/command/computerlab) -"cbo" = ( -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull) -"cbr" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "silvercorner" - }, -/area/almayer/hallways/aft_hallway) "cbu" = ( /obj/structure/machinery/door/firedoor/border_only/almayer{ layer = 1.9 @@ -24639,239 +13994,48 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/medical/lower_medical_medbay) -"cbv" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "greencorner" +"cbF" = ( +/obj/structure/closet/secure_closet/personal/cabinet{ + pixel_x = 1; + pixel_y = 17; + req_access = null }, -/area/almayer/hallways/port_hallway) -"cbw" = ( -/turf/open/floor/almayer{ +/turf/open/floor/almayer, +/area/almayer/living/numbertwobunks) +"cbL" = ( +/obj/structure/machinery/camera/autoname/almayer{ dir = 1; - icon_state = "greencorner" - }, -/area/almayer/hallways/port_hallway) -"cbz" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/port_hallway) -"cbA" = ( -/obj/structure/machinery/light/small{ - dir = 8 - }, -/obj/structure/prop/invuln/overhead_pipe{ - dir = 4; - pixel_x = -12; - pixel_y = 13 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_s) -"cbD" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/port_hallway) -"cbE" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 - }, -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/port_hallway) -"cbG" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/engineering/lower_engineering) -"cbH" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" + name = "ship-grade camera" }, -/area/almayer/engineering/lower_engineering) +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_fore_hallway) "cbM" = ( /obj/structure/closet/crate, /obj/item/clothing/glasses/welding, /obj/item/circuitboard, /turf/open/floor/plating/plating_catwalk, /area/almayer/lifeboat_pumps/north1) -"cbN" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "S" +"ccb" = ( +/obj/structure/surface/table/reinforced/black, +/turf/open/floor/almayer/red/north, +/area/almayer/living/cryo_cells) +"ccd" = ( +/obj/structure/machinery/cm_vending/sorted/cargo_guns/squad_prep, +/turf/open/floor/almayer/red/northeast, +/area/almayer/living/cryo_cells) +"ccg" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "red" - }, -/area/almayer/hallways/aft_hallway) -"cbO" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/obj/structure/sign/safety/escapepod{ - pixel_x = 8; - pixel_y = -32 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "red" - }, -/area/almayer/hallways/aft_hallway) -"cbQ" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/port_hallway) -"cbR" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/port_hallway) -"cbS" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/port_hallway) -"cbU" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/port_hallway) -"cbV" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 6 - }, -/obj/structure/sign/safety/maint{ - pixel_x = 15; - pixel_y = 32 - }, -/obj/structure/sign/safety/storage{ - pixel_y = 32 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "NW-out"; - pixel_y = 3 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/port_hallway) -"cbW" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 9 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/port_hallway) -"cbX" = ( -/obj/structure/machinery/alarm/almayer{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/port_hallway) -"cbZ" = ( -/obj/structure/sign/safety/hvac_old{ - pixel_x = 8; - pixel_y = 32 - }, -/obj/item/storage/firstaid{ - pixel_x = -13; - pixel_y = 13 - }, -/obj/item/clipboard, -/obj/item/paper, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_a_s) -"ccb" = ( -/obj/structure/surface/table/reinforced/black, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, -/area/almayer/living/cryo_cells) -"ccd" = ( -/obj/structure/machinery/cm_vending/sorted/cargo_guns/squad_prep, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "red" - }, -/area/almayer/living/cryo_cells) -"cce" = ( -/obj/structure/machinery/door/airlock/almayer/engineering{ - dir = 2; - name = "\improper Atmospherics Wing" - }, -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/engineering/lower_engineering) -"ccf" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, -/area/almayer/hallways/aft_hallway) -"ccg" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 +/obj/structure/disposalpipe/segment{ + dir = 4 }, /obj/structure/machinery/firealarm{ pixel_y = 28 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/north, /area/almayer/command/cichallway) "cck" = ( /obj/structure/surface/table/reinforced/almayer_B, @@ -24883,304 +14047,48 @@ icon_state = "S"; layer = 3.3 }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, +/turf/open/floor/almayer/aicore/glowing/no_build, /area/almayer/command/airoom) -"ccm" = ( -/obj/structure/machinery/light{ - dir = 8 - }, -/obj/structure/closet/secure_closet/fridge/organic, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/living/grunt_rnr) -"ccq" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/port_hallway) -"ccr" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/port_hallway) "ccs" = ( /obj/structure/disposalpipe/segment{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/medical/morgue) -"ccu" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/port_hallway) -"ccv" = ( -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_hallway) "ccx" = ( -/obj/structure/surface/table/almayer, -/obj/structure/largecrate/random/case/small{ - pixel_y = 5 - }, -/obj/item/storage/firstaid/toxin{ - pixel_x = 8; - pixel_y = -2 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/lower_engineering) -"ccy" = ( -/obj/structure/machinery/firealarm{ - pixel_y = 28 - }, -/obj/structure/machinery/suit_storage_unit/carbon_unit, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/lower_engineering) -"ccz" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 5 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/lower_engineering) -"ccA" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/lower_engineering) -"ccB" = ( -/obj/structure/machinery/alarm/almayer{ - dir = 1 - }, -/obj/structure/machinery/computer/general_air_control/large_tank_control{ - name = "Lower Oxygen Supply Console" - }, -/obj/structure/pipes/standard/simple/hidden/universal{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/lower_engineering) -"ccC" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/obj/structure/pipes/standard/simple/visible{ - dir = 4 - }, -/obj/structure/machinery/computer/general_air_control/large_tank_control{ - name = "Lower Nitrogen Control Console" - }, -/obj/structure/surface/table/almayer, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/lower_engineering) -"ccD" = ( -/obj/structure/pipes/standard/simple/visible{ - dir = 10 - }, -/obj/structure/machinery/meter, -/obj/structure/sign/safety/terminal{ - pixel_x = 8; - pixel_y = 32 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/lower_engineering) -"ccE" = ( -/obj/structure/surface/table/almayer, -/obj/structure/machinery/computer/general_air_control/large_tank_control{ - name = "Lower Mixed Air Control" - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/lower_engineering) -"ccF" = ( -/obj/structure/machinery/light{ - dir = 8 - }, -/obj/structure/bed/chair/comfy/alpha{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/effect/step_trigger/clone_cleaner, +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out" }, -/area/almayer/living/briefing) +/turf/open/floor/almayer/green/west, +/area/almayer/hallways/upper/fore_hallway) "ccG" = ( /obj/structure/largecrate/random/secure, /obj/effect/decal/warning_stripes{ icon_state = "E" }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) -"ccJ" = ( -/turf/open/floor/almayer{ - icon_state = "silvercorner" +"ccL" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 10 }, -/area/almayer/hallways/repair_bay) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/starboard_umbilical) "ccN" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "redcorner" - }, +/turf/open/floor/almayer/redcorner/east, /area/almayer/living/cryo_cells) -"ccO" = ( -/obj/structure/machinery/light, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/port_hallway) "ccQ" = ( /obj/effect/landmark/ert_spawns/distress_cryo, /obj/effect/landmark/late_join, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/cryo_cells) -"ccR" = ( -/obj/structure/pipes/standard/simple/visible{ - dir = 6 - }, -/obj/structure/machinery/meter, -/turf/open/floor/almayer{ - icon_state = "orange" - }, -/area/almayer/engineering/lower_engineering) -"ccS" = ( -/obj/structure/pipes/standard/simple/visible{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "orange" - }, -/area/almayer/engineering/lower_engineering) -"ccT" = ( -/obj/structure/pipes/trinary/mixer{ - dir = 4; - name = "Gas mixer N2/O2" - }, -/turf/open/floor/almayer{ - icon_state = "orange" - }, -/area/almayer/engineering/lower_engineering) -"ccU" = ( -/obj/structure/pipes/vents/pump{ - dir = 8; - id_tag = "mining_outpost_pump" - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_hallway) -"ccV" = ( -/obj/structure/pipes/standard/simple/visible{ - dir = 10 - }, -/obj/structure/machinery/meter, -/turf/open/floor/almayer{ - icon_state = "orange" - }, -/area/almayer/engineering/lower_engineering) -"ccW" = ( -/turf/open/floor/almayer{ - icon_state = "orange" - }, -/area/almayer/engineering/lower_engineering) -"ccX" = ( -/obj/structure/pipes/binary/pump/high_power/on{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "orange" - }, -/area/almayer/engineering/lower_engineering) -"ccY" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "NE-out"; - pixel_y = 1 - }, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "red" - }, -/area/almayer/hallways/aft_hallway) -"cdb" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/port_umbilical) -"cdc" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/port_umbilical) -"cdd" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 - }, -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/port_umbilical) "cdf" = ( /obj/structure/machinery/camera/autoname/almayer{ name = "ship-grade camera" }, /turf/open/floor/almayer, /area/almayer/squads/charlie) -"cdk" = ( -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 1 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "redcorner" - }, -/area/almayer/shipboard/brig/main_office) "cdm" = ( /obj/effect/landmark/ert_spawns/distress_cryo, /obj/effect/landmark/late_join, @@ -25192,18 +14100,13 @@ "cdn" = ( /obj/effect/landmark/ert_spawns/distress_cryo, /obj/effect/landmark/late_join, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/living/cryo_cells) "cdo" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/west, /area/almayer/living/cryo_cells) "cdp" = ( /obj/structure/window/framed/almayer, @@ -25215,80 +14118,17 @@ }, /turf/open/floor/plating, /area/almayer/living/cryo_cells) -"cdr" = ( -/obj/structure/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/lower_engineering) -"cdu" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "SE-out"; - pixel_x = 1 - }, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "red" - }, -/area/almayer/hallways/aft_hallway) -"cdw" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_umbilical) -"cdx" = ( -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_umbilical) -"cdy" = ( -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 4 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_umbilical) -"cdz" = ( -/obj/structure/machinery/power/apc/almayer{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/port_umbilical) "cdA" = ( /obj/structure/window/framed/almayer, /turf/open/floor/plating, /area/almayer/hallways/hangar) -"cdE" = ( -/obj/structure/surface/table/almayer, -/obj/item/reagent_container/food/drinks/cans/waterbottle{ - pixel_x = 9; - pixel_y = 3 - }, -/obj/item/prop/helmetgarb/flair_io{ - pixel_x = -10; - pixel_y = 6 - }, -/obj/item/prop/magazine/boots/n160{ - pixel_x = -6; - pixel_y = -5 - }, -/obj/structure/transmitter/rotary{ - name = "Flight Deck Telephone"; - phone_category = "Almayer"; - phone_id = "Flight Deck"; - pixel_y = 8 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/repair_bay) -"cdF" = ( -/obj/structure/bed/chair/office/dark{ - dir = 8 +"cdB" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" }, -/obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/almayer, -/area/almayer/hallways/repair_bay) +/turf/open/floor/wood/ship, +/area/almayer/living/commandbunks) "cdI" = ( /obj/structure/pipes/vents/pump{ dir = 1 @@ -25301,15 +14141,11 @@ layer = 4.1; pixel_y = -29 }, -/turf/open/floor/almayer{ - icon_state = "cargo_arrow" - }, +/turf/open/floor/almayer/cargo_arrow, /area/almayer/squads/charlie) "cdT" = ( /obj/structure/machinery/cm_vending/clothing/smartgun/charlie, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/charlie) "cdU" = ( /obj/structure/machinery/cm_vending/gear/smartgun, @@ -25320,113 +14156,35 @@ /obj/structure/sign/safety/hazard{ pixel_y = 32 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/charlie) "cdV" = ( /obj/structure/machinery/cm_vending/gear/medic, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/charlie) "cdX" = ( /obj/structure/machinery/cm_vending/gear/engi, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/charlie) "cdZ" = ( +/obj/structure/machinery/door/airlock/almayer/maint{ + dir = 1 + }, /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 2 }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/port_hallway) +/turf/open/floor/almayer/test_floor4, +/area/almayer/maint/upper/u_m_s) "cea" = ( -/obj/structure/surface/rack, -/obj/effect/spawner/random/toolbox, -/obj/effect/spawner/random/toolbox, -/obj/effect/spawner/random/toolbox, -/obj/effect/spawner/random/tool, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_a_p) +/obj/structure/machinery/fuelpump, +/turf/open/floor/almayer, +/area/almayer/lifeboat_pumps/south2) "ceg" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "cargo_arrow" - }, +/turf/open/floor/almayer/cargo_arrow/west, /area/almayer/squads/alpha) -"ceo" = ( -/obj/structure/machinery/status_display{ - pixel_y = 30 - }, -/obj/structure/closet/cabinet, -/obj/item/clipboard, -/obj/item/storage/lockbox/loyalty, -/obj/item/storage/briefcase, -/obj/item/reagent_container/spray/pepper, -/obj/item/device/eftpos{ - eftpos_name = "Weyland-Yutani EFTPOS scanner" - }, -/obj/item/device/portable_vendor/corporate, -/turf/open/floor/wood/ship, -/area/almayer/command/corporateliason) -"cer" = ( -/obj/structure/largecrate/random/case/double, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/lower_engineering) -"ces" = ( -/obj/structure/machinery/door/airlock/almayer/maint, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/port_umbilical) -"cet" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/port_umbilical) -"ceu" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "green" - }, -/area/almayer/living/starboard_garden) -"cev" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/port_umbilical) -"cew" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "orangecorner" - }, -/area/almayer/hallways/port_umbilical) -"cex" = ( -/obj/structure/machinery/suit_storage_unit/compression_suit/uscm, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/port_umbilical) "ceC" = ( /obj/structure/prop/almayer/ship_memorial, /turf/open/floor/plating/almayer, @@ -25437,57 +14195,56 @@ name = "\improper Evacuation Airlock PU-3"; req_access = null }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/powered) "ceE" = ( /turf/closed/wall/almayer, /area/almayer/command/cichallway) "ceK" = ( -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/bridgebunks) -"ceQ" = ( -/obj/structure/machinery/status_display{ - pixel_y = 30 - }, -/obj/structure/machinery/part_fabricator/dropship, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/repair_bay) -"ceR" = ( -/obj/structure/machinery/prop/almayer/computer{ - pixel_y = 20 +"ceV" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/area/almayer/hallways/repair_bay) -"ceU" = ( -/turf/open/floor/almayer{ - icon_state = "cargo_arrow" +/turf/open/floor/almayer/orange/west, +/area/almayer/hallways/upper/midship_hallway) +"ceY" = ( +/obj/structure/machinery/light/small{ + dir = 8 }, -/area/almayer/hallways/repair_bay) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_a_p) "ceZ" = ( /obj/structure/bed/sofa/south/grey/left, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/northwest, /area/almayer/shipboard/brig/cic_hallway) "cfk" = ( /obj/structure/machinery/firealarm{ dir = 4; pixel_x = 24 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/almayer/red/north, /area/almayer/shipboard/port_missiles) +"cfm" = ( +/obj/structure/flora/pottedplant{ + desc = "Life is underwhelming, especially when you're a potted plant."; + icon_state = "pottedplant_22"; + name = "Jerry"; + pixel_y = 8 + }, +/obj/item/clothing/glasses/sunglasses/prescription{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/structure/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_a_p) "cfo" = ( /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/charlie) @@ -25500,15 +14257,11 @@ /obj/structure/sign/safety/hazard{ pixel_y = 32 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/charlie) "cfq" = ( /obj/structure/machinery/cm_vending/gear/leader, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/charlie) "cft" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -25516,123 +14269,44 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/charlie) -"cfx" = ( -/obj/structure/surface/table/almayer, -/obj/structure/machinery/light{ - dir = 8 - }, -/obj/item/clothing/mask/breath, -/obj/item/clothing/mask/breath, -/obj/item/clothing/mask/breath, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/port_umbilical) -"cfy" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" - }, -/area/almayer/hallways/port_umbilical) -"cfz" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" - }, -/area/almayer/hallways/port_umbilical) -"cfA" = ( -/obj/structure/surface/table/almayer, -/obj/structure/machinery/light{ - dir = 4 - }, -/obj/effect/spawner/random/tool, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/port_umbilical) "cfE" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/almayer/red/west, /area/almayer/shipboard/starboard_missiles) -"cfM" = ( -/obj/structure/machinery/door/poddoor/almayer/open{ - id = "Hangar Lockdown"; - name = "\improper Hangar Lockdown Blast Door" - }, -/obj/structure/machinery/door/poddoor/shutters/almayer{ - id = "DeployWorkR"; - name = "\improper Workshop Shutters" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/repair_bay) -"cfN" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/obj/structure/platform{ - dir = 8 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/repair_bay) "cfT" = ( -/turf/open/floor/almayer{ - dir = 10; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/southwest, /area/almayer/medical/medical_science) "cgl" = ( /obj/structure/machinery/door/firedoor/border_only/almayer, /obj/structure/machinery/door/airlock/multi_tile/almayer/marine/shared/charlie_delta{ dir = 2 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/squads/charlie_delta_shared) "cgo" = ( /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/charlie_delta_shared) "cgq" = ( /obj/structure/machinery/door/airlock/almayer/marine/charlie/smart, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/squads/charlie) "cgr" = ( /obj/structure/machinery/cm_vending/clothing/medic/charlie, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/charlie) "cgs" = ( -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/charlie) "cgt" = ( /obj/structure/machinery/cm_vending/clothing/engi/charlie, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/charlie) "cgu" = ( /obj/structure/machinery/cm_vending/clothing/specialist/charlie, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/charlie) "cgv" = ( /obj/structure/machinery/cm_vending/clothing/leader/charlie, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/charlie) "cgy" = ( /obj/structure/bed/chair{ @@ -25640,30 +14314,6 @@ }, /turf/open/floor/almayer, /area/almayer/squads/charlie) -"cgz" = ( -/obj/structure/sign/poster{ - desc = "Eat an EAT bar! ...Aren't they called MEAT bars?"; - icon_state = "poster7"; - name = "EAT - poster"; - pixel_x = 27 - }, -/obj/structure/surface/table/almayer, -/obj/item/paper_bin/uscm{ - pixel_x = 9; - pixel_y = 6 - }, -/obj/item/tool/pen{ - pixel_x = 9; - pixel_y = 9 - }, -/obj/item/tool/pen{ - pixel_x = 9; - pixel_y = 2 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/living/briefing) "cgA" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -25671,96 +14321,82 @@ /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/charlie) "cgE" = ( /turf/open/floor/almayer, /area/almayer/living/cryo_cells) -"cgG" = ( -/obj/structure/surface/table/almayer, -/obj/item/tank/emergency_oxygen/double, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/port_umbilical) -"cgH" = ( -/obj/structure/surface/table/almayer, -/obj/item/tank/oxygen/red, -/obj/item/tool/screwdriver, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/port_umbilical) -"cgI" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/almayer{ - icon_state = "red" - }, -/area/almayer/hallways/aft_hallway) -"cgJ" = ( -/obj/item/device/radio/intercom{ - freerange = 1; - name = "General Listening Channel"; - pixel_y = 28 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/stern_hallway) "cgO" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/emails{ dir = 8; pixel_y = 6 }, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/southeast, /area/almayer/shipboard/brig/cic_hallway) "cgT" = ( -/obj/structure/bed/chair{ - dir = 8 - }, -/obj/structure/disposalpipe/segment, +/obj/structure/disposalpipe/junction, /obj/structure/pipes/standard/simple/hidden/supply{ dir = 5 }, /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/brig/cic_hallway) -"chf" = ( -/obj/structure/window/reinforced{ - dir = 4; - health = 80 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "cargo_arrow" - }, -/area/almayer/squads/charlie_delta_shared) -"chk" = ( -/obj/structure/machinery/door/airlock/almayer/marine/charlie/medic, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/squads/charlie) +"cgU" = ( +/obj/structure/surface/rack, +/obj/effect/spawner/random/tool, +/obj/effect/spawner/random/tool, +/obj/effect/spawner/random/powercell, +/obj/effect/spawner/random/powercell, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_m_p) +"chb" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer, +/obj/structure/sign/safety/maint{ + pixel_x = 8; + pixel_y = -32 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "SE-out"; + pixel_x = 2 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "SW-out"; + layer = 2.5 + }, +/turf/open/floor/almayer/test_floor4, +/area/almayer/hallways/upper/starboard) +"chc" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/obj/structure/machinery/body_scanconsole{ + dir = 8 + }, +/turf/open/floor/almayer/sterile_green_side/east, +/area/almayer/medical/medical_science) +"chf" = ( +/obj/structure/window/reinforced{ + dir = 4; + health = 80 + }, +/turf/open/floor/almayer/cargo_arrow/north, +/area/almayer/squads/charlie_delta_shared) +"chk" = ( +/obj/structure/machinery/door/airlock/almayer/marine/charlie/medic, +/turf/open/floor/almayer/test_floor4, +/area/almayer/squads/charlie) "chl" = ( /obj/structure/machinery/door/airlock/almayer/marine/charlie/engineer, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/squads/charlie) "chm" = ( /obj/structure/machinery/door/airlock/almayer/marine/charlie/spec, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/squads/charlie) "chn" = ( /obj/structure/machinery/door/airlock/almayer/marine/charlie/sl, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/squads/charlie) "chp" = ( /obj/structure/bed/chair{ @@ -25771,33 +14407,12 @@ /area/almayer/squads/bravo) "chq" = ( /obj/structure/surface/table/almayer, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/charlie) -"chu" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, -/area/almayer/hallways/aft_hallway) -"chC" = ( -/obj/structure/platform_decoration, +"chv" = ( +/obj/structure/closet/secure_closet/guncabinet/red/mp_armory_shotgun, /turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_a_p) -"chE" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/structure/machinery/door/poddoor/shutters/almayer{ - id = "laddersouthwest"; - name = "\improper South West Ladders Shutters" - }, -/obj/effect/step_trigger/clone_cleaner, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/port_hallway) +/area/almayer/shipboard/brig/armory) "chL" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -25805,9 +14420,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "orangecorner" - }, +/turf/open/floor/almayer/orangecorner, /area/almayer/squads/bravo) "chM" = ( /obj/structure/disposalpipe/junction{ @@ -25819,10 +14432,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "emeraldcorner" - }, +/turf/open/floor/almayer/emeraldcorner/east, /area/almayer/squads/charlie) "chO" = ( /obj/item/device/radio/intercom{ @@ -25833,29 +14443,20 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "emerald" - }, +/turf/open/floor/almayer/emerald/north, /area/almayer/squads/charlie) "chP" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, /obj/structure/machinery/camera/autoname/almayer, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "emerald" - }, +/turf/open/floor/almayer/emerald/north, /area/almayer/squads/charlie) "chQ" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "emeraldcorner" - }, +/turf/open/floor/almayer/emeraldcorner/north, /area/almayer/squads/charlie) "chR" = ( /obj/structure/disposalpipe/segment{ @@ -25870,10 +14471,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "emerald" - }, +/turf/open/floor/almayer/emerald/north, /area/almayer/squads/charlie) "chV" = ( /obj/structure/machinery/alarm/almayer{ @@ -25882,10 +14480,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "emeraldcorner" - }, +/turf/open/floor/almayer/emeraldcorner/east, /area/almayer/squads/charlie) "chW" = ( /obj/structure/pipes/vents/scrubber{ @@ -25897,86 +14492,41 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "emerald" - }, +/turf/open/floor/almayer/emerald/north, /area/almayer/squads/charlie) "cib" = ( /obj/structure/machinery/door/firedoor/border_only/almayer, /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/squads/charlie) "cic" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "cargo_arrow" - }, +/turf/open/floor/almayer/cargo_arrow/west, /area/almayer/squads/alpha) -"cij" = ( -/obj/structure/closet/secure_closet/guncabinet/red/armory_m39_submachinegun, -/turf/open/floor/almayer{ - icon_state = "redfull" +"cif" = ( +/obj/structure/surface/table/almayer, +/obj/structure/machinery/light{ + dir = 4 }, -/area/almayer/engineering/upper_engineering) +/obj/item/tank/emergency_oxygen/double, +/turf/open/floor/almayer/plate, +/area/almayer/hallways/lower/starboard_umbilical) "cil" = ( /obj/structure/machinery/light, /obj/structure/sign/safety/waterhazard{ pixel_x = 8; pixel_y = -32 }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/lifeboat_pumps/south2) -"cim" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orangecorner" - }, -/area/almayer/hallways/port_umbilical) -"cin" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/turf/open/floor/almayer, -/area/almayer/hallways/port_umbilical) -"cio" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orangecorner" - }, -/area/almayer/hallways/port_umbilical) "cir" = ( /obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "green" - }, +/turf/open/floor/almayer/green, /area/almayer/squads/req) -"cit" = ( -/obj/structure/surface/table/almayer, -/obj/item/paper_bin{ - pixel_x = -6; - pixel_y = 7 - }, -/obj/item/tool/pen, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_m_s) "ciu" = ( /obj/structure/platform{ dir = 8 @@ -25986,21 +14536,14 @@ dir = 10; layer = 3.51 }, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/almayer/red/southwest, /area/almayer/lifeboat_pumps/north2) "civ" = ( -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/engineering/upper_engineering) "ciw" = ( /obj/structure/platform, -/turf/open/floor/almayer{ - icon_state = "red" - }, +/turf/open/floor/almayer/red, /area/almayer/lifeboat_pumps/north2) "cix" = ( /obj/structure/machinery/door/airlock/almayer/secure/reinforced{ @@ -26008,33 +14551,31 @@ name = "\improper Evacuation Airlock PU-4"; req_access = null }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/powered) +"ciB" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12 + }, +/obj/structure/prop/invuln/lattice_prop{ + dir = 1; + icon_state = "lattice-simple"; + pixel_x = 16; + pixel_y = -15 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_m_p) "ciD" = ( /obj/structure/platform_decoration{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "red" - }, +/turf/open/floor/almayer/red, /area/almayer/lifeboat_pumps/north2) -"ciF" = ( -/obj/structure/sign/safety/cryo{ - pixel_x = 8; - pixel_y = -26 - }, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "red" - }, -/area/almayer/shipboard/brig/main_office) "ciN" = ( -/turf/open/floor/almayer{ - dir = 6; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/southeast, /area/almayer/shipboard/brig/cic_hallway) "ciQ" = ( /obj/structure/sign/safety/fire_haz{ @@ -26043,31 +14584,6 @@ }, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/south1) -"ciT" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 8 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_hallway) -"ciU" = ( -/obj/structure/machinery/camera/autoname/almayer{ - dir = 8; - name = "ship-grade camera" - }, -/obj/structure/sign/safety/four{ - pixel_x = 31; - pixel_y = -8 - }, -/obj/structure/sign/safety/ammunition{ - pixel_x = 32; - pixel_y = 7 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "blue" - }, -/area/almayer/hallways/port_hallway) "cjc" = ( /obj/effect/landmark/start/marine/alpha, /obj/effect/landmark/late_join/alpha, @@ -26075,17 +14591,13 @@ /area/almayer/squads/alpha) "cjd" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor/almayer{ - icon_state = "emerald" - }, +/turf/open/floor/almayer/emerald, /area/almayer/squads/charlie) "cjf" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "emerald" - }, +/turf/open/floor/almayer/emerald, /area/almayer/squads/charlie) "cjg" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -26094,85 +14606,42 @@ /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/almayer{ - icon_state = "emerald" - }, +/turf/open/floor/almayer/emerald, /area/almayer/squads/charlie) -"cjh" = ( -/obj/structure/machinery/vending/snack, -/turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_s) "cji" = ( /obj/structure/platform_decoration, -/turf/open/floor/almayer{ - icon_state = "red" - }, +/turf/open/floor/almayer/red, /area/almayer/lifeboat_pumps/north2) -"cjl" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/machinery/door/poddoor/almayer{ - id = "s_umbilical"; - name = "\improper Umbillical Airlock"; - unacidable = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" +"cjk" = ( +/obj/structure/bed, +/obj/structure/machinery/flasher{ + id = "Cell 6"; + pixel_x = -24 }, -/area/almayer/hallways/port_umbilical) +/turf/open/floor/almayer/red/west, +/area/almayer/shipboard/brig/cells) "cjm" = ( -/obj/structure/machinery/door/poddoor/almayer{ - id = "s_umbilical"; - name = "\improper Umbillical Airlock"; - unacidable = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/port_umbilical) -"cjo" = ( -/obj/structure/sign/safety/distribution_pipes{ - pixel_x = 32; - pixel_y = 6 - }, -/obj/structure/sign/safety/reduction{ - pixel_x = 32; - pixel_y = -8 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" - }, -/area/almayer/hallways/aft_hallway) -"cjw" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/machinery/light{ - dir = 8 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 1 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "red" - }, -/area/almayer/hallways/port_hallway) +/obj/structure/surface/rack, +/obj/item/tool/wet_sign, +/obj/item/tool/wet_sign, +/turf/open/floor/almayer/plate, +/area/almayer/maint/upper/u_a_p) +"cjt" = ( +/turf/open/floor/almayer/orange, +/area/almayer/engineering/lower) "cjA" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/charlie) "cjC" = ( /obj/structure/machinery/vending/cola{ density = 0; pixel_y = 16 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/charlie) "cjE" = ( /obj/structure/bed/chair{ @@ -26190,46 +14659,8 @@ icon_state = "E"; pixel_x = 1 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "emerald" - }, +/turf/open/floor/almayer/emerald/east, /area/almayer/squads/charlie) -"cjK" = ( -/obj/structure/machinery/door/airlock/almayer/maint, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/port_umbilical) -"cjS" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 8 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" - }, -/area/almayer/hallways/port_hallway) -"cjT" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "SE-out"; - pixel_x = 1 - }, -/obj/structure/pipes/vents/scrubber{ - dir = 8 - }, -/obj/structure/sign/safety/escapepod{ - pixel_x = 32 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" - }, -/area/almayer/hallways/port_hallway) "cjW" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -26241,10 +14672,7 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/north, /area/almayer/medical/lower_medical_medbay) "ckd" = ( /obj/structure/surface/table/reinforced/almayer_B, @@ -26267,154 +14695,74 @@ pixel_x = -3; pixel_y = 2 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/north, /area/almayer/engineering/port_atmos) -"ckl" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 1 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "red" +"cke" = ( +/obj/structure/machinery/vending/cola{ + density = 0; + pixel_y = 18 }, -/area/almayer/hallways/port_hallway) -"ckm" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_a_p) +"ckh" = ( +/obj/structure/disposalpipe/junction{ + dir = 4 }, -/obj/structure/machinery/status_display{ - pixel_x = 32 +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 1 }, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "red" +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/starboard_fore_hallway) +"ckj" = ( +/obj/structure/surface/table/almayer, +/obj/item/stack/nanopaste{ + pixel_x = -3; + pixel_y = 14 }, -/area/almayer/hallways/port_hallway) +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/p_stern) "ckr" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/delta) -"ckB" = ( -/obj/structure/machinery/door/airlock/almayer/maint{ - dir = 1; - name = "\improper Emergency Air Storage" - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hull/upper_hull/u_a_s) -"ckE" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "NW-out"; - pixel_y = 1 - }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, -/area/almayer/lifeboat_pumps/north1) -"ckI" = ( -/obj/structure/disposalpipe/segment, -/obj/item/device/radio/intercom{ - freerange = 1; - name = "General Listening Channel"; - pixel_x = -28 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 1 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_hallway) "ckK" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/north, /area/almayer/engineering/port_atmos) "ckP" = ( /obj/structure/surface/table/almayer, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/east, /area/almayer/shipboard/brig/cic_hallway) "ckQ" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/almayer/blue/north, /area/almayer/squads/delta) "ckR" = ( /obj/structure/machinery/cm_vending/clothing/marine/delta{ density = 0; pixel_y = 16 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/delta) -"ckS" = ( -/obj/structure/machinery/door/poddoor/shutters/almayer/open{ - id = "Interrogation Shutters"; - name = "\improper Privacy Shutters" - }, -/obj/structure/machinery/door/airlock/almayer/security{ - dir = 2; - name = "\improper Interrogation" - }, -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/shipboard/brig/main_office) +"ckW" = ( +/obj/structure/window/framed/almayer/hull, +/turf/open/floor/plating, +/area/almayer/engineering/lower) "ckX" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/almayer/blue/north, /area/almayer/squads/delta) -"cla" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 9 - }, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "red" - }, -/area/almayer/hallways/port_hallway) -"clb" = ( +"ckZ" = ( /obj/structure/machinery/light{ - dir = 4 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "red" + dir = 8 }, -/area/almayer/hallways/port_hallway) +/obj/structure/machinery/power/reactor, +/turf/open/floor/almayer/test_floor4, +/area/almayer/engineering/lower/engine_core) "cle" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/east, /area/almayer/medical/lower_medical_lobby) "clg" = ( /turf/open/floor/plating/plating_catwalk, @@ -26430,17 +14778,13 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "bluecorner" - }, +/turf/open/floor/almayer/bluecorner, /area/almayer/squads/delta) "clj" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "blue" - }, +/turf/open/floor/almayer/blue, /area/almayer/squads/delta) "clk" = ( /obj/structure/pipes/vents/pump{ @@ -26454,10 +14798,7 @@ name = "General Listening Channel"; pixel_y = -29 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "bluecorner" - }, +/turf/open/floor/almayer/bluecorner/west, /area/almayer/squads/delta) "cll" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -26475,9 +14816,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "bluecorner" - }, +/turf/open/floor/almayer/bluecorner, /area/almayer/squads/delta) "cln" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -26490,9 +14829,7 @@ dir = 1; pixel_y = -29 }, -/turf/open/floor/almayer{ - icon_state = "blue" - }, +/turf/open/floor/almayer/blue, /area/almayer/squads/delta) "clo" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -26501,10 +14838,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "bluecorner" - }, +/turf/open/floor/almayer/bluecorner/west, /area/almayer/squads/delta) "clp" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -26516,9 +14850,7 @@ /obj/structure/machinery/door/airlock/multi_tile/almayer/marine/delta{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/squads/delta) "clr" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -26528,152 +14860,53 @@ dir = 2; icon_state = "pipe-c" }, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "blue" - }, +/turf/open/floor/almayer/blue/southwest, /area/almayer/squads/delta) "cls" = ( /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/port_point_defense) "clw" = ( -/obj/structure/machinery/light{ - dir = 8; - invisibility = 101; - unacidable = 1; - unslashable = 1 - }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, +/turf/open/floor/almayer/aicore/glowing/no_build/ai_floor3, /area/almayer/command/airoom) -"cly" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/sign/safety/maint{ - pixel_x = -17; - pixel_y = -8 - }, -/obj/structure/sign/safety/storage{ - pixel_x = -17; - pixel_y = 7 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "redcorner" - }, -/area/almayer/hallways/port_hallway) -"clz" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "NE-out"; - pixel_x = 1 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "redcorner" - }, -/area/almayer/hallways/port_hallway) -"clC" = ( -/obj/structure/stairs, -/obj/structure/machinery/light{ - dir = 8 - }, -/obj/effect/projector{ - name = "Almayer_Up1"; - vector_x = -19; - vector_y = 98 - }, -/turf/open/floor/plating/almayer{ - allow_construction = 0 - }, -/area/almayer/hallways/starboard_hallway) "clE" = ( /obj/structure/machinery/door/airlock/almayer/marine/delta/medic, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/squads/delta) "clF" = ( /obj/structure/machinery/door/airlock/almayer/marine/delta/engineer, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/squads/delta) "clG" = ( /obj/structure/machinery/door/airlock/almayer/marine/delta/spec, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/squads/delta) "clH" = ( /obj/structure/machinery/door/airlock/almayer/marine/delta/sl, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/squads/delta) "clI" = ( /obj/structure/machinery/door/airlock/almayer/marine/delta/smart, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/squads/delta) "clJ" = ( /obj/structure/machinery/cm_vending/clothing/medic/delta, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/delta) "clK" = ( -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/delta) "clL" = ( /obj/structure/machinery/cm_vending/clothing/engi/delta, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/delta) "clM" = ( /obj/structure/machinery/cm_vending/clothing/specialist/delta, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/delta) "clN" = ( /obj/structure/machinery/cm_vending/clothing/leader/delta, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/delta) -"clO" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_p) -"clP" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_p) -"clR" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "blue" - }, -/area/almayer/hallways/port_hallway) "clS" = ( /obj/structure/machinery/cm_vending/gear/spec, /obj/structure/sign/safety/hazard{ @@ -26683,29 +14916,19 @@ /obj/structure/sign/safety/ammunition{ pixel_y = -32 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/delta) "clT" = ( /obj/structure/machinery/cm_vending/gear/leader, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/delta) "clV" = ( /obj/structure/machinery/computer/arcade, -/obj/structure/disposalpipe/segment, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "green" - }, +/turf/open/floor/almayer/green/northwest, /area/almayer/squads/req) "clW" = ( /obj/structure/machinery/cm_vending/clothing/smartgun/delta, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/delta) "clX" = ( /obj/structure/machinery/cm_vending/gear/smartgun, @@ -26716,111 +14939,76 @@ /obj/structure/sign/safety/ammunition{ pixel_y = -32 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/delta) "clY" = ( /obj/structure/machinery/cm_vending/gear/medic, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/delta) "clZ" = ( /obj/structure/machinery/cm_vending/gear/engi, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/delta) -"cmd" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "green" - }, -/area/almayer/hallways/port_hallway) -"cmg" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "green" - }, -/area/almayer/hallways/starboard_hallway) -"cmh" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/obj/structure/disposalpipe/up/almayer{ - dir = 8; - id = "almayerlink" +"cme" = ( +/obj/structure/largecrate/random/barrel/red, +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "green" +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12; + pixel_y = 12 }, -/area/almayer/hallways/port_hallway) -"cmk" = ( -/obj/structure/disposalpipe/segment, /turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_s) +/area/almayer/maint/hull/lower/l_m_s) "cml" = ( /obj/effect/decal/warning_stripes{ icon_state = "NE-out"; pixel_y = 1 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/almayer/shipboard/port_point_defense) "cmm" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; pixel_y = 1 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/almayer/shipboard/port_point_defense) "cmn" = ( /obj/effect/decal/warning_stripes{ icon_state = "NW-out"; pixel_y = 1 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/almayer/shipboard/port_point_defense) -"cmp" = ( -/turf/closed/wall/almayer, -/area/almayer/engineering/engineering_workshop/hangar) -"cmq" = ( -/obj/effect/landmark/yautja_teleport, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_s) +"cmo" = ( +/obj/structure/surface/table/almayer, +/obj/effect/spawner/random/powercell, +/obj/effect/spawner/random/tool, +/obj/item/packageWrap, +/turf/open/floor/almayer/green/west, +/area/almayer/squads/req) +"cmr" = ( +/turf/open/floor/almayer, +/area/almayer/maint/hull/upper/u_f_s) +"cmv" = ( +/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ + pixel_x = -30 + }, +/obj/structure/machinery/disposal, +/obj/structure/disposalpipe/trunk{ + dir = 2 + }, +/turf/open/floor/almayer/redcorner/north, +/area/almayer/shipboard/brig/processing) "cmC" = ( /obj/structure/machinery/door/airlock/almayer/secure/reinforced{ dir = 2; name = "\improper Evacuation Airlock SL-1"; req_access = null }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/powered) -"cmE" = ( -/obj/docking_port/stationary/escape_pod/south, -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_m_s) "cmF" = ( /obj/structure/platform, /obj/structure/platform{ @@ -26830,103 +15018,72 @@ dir = 6; layer = 3.51 }, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/almayer/red/southeast, /area/almayer/lifeboat_pumps/north2) -"cmH" = ( -/obj/structure/machinery/door/airlock/almayer/maint, -/obj/structure/machinery/door/poddoor/almayer/open{ - dir = 4; - id = "Hangar Lockdown"; - name = "\improper Hangar Lockdown Blast Door" - }, -/obj/structure/machinery/door/firedoor/border_only/almayer, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +"cmK" = ( +/obj/structure/window/reinforced, +/turf/open/floor/almayer/silver/west, +/area/almayer/command/securestorage) +"cmL" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 10 }, -/area/almayer/hallways/port_umbilical) -"cmI" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/structure/machinery/door/firedoor/border_only/almayer, -/obj/structure/machinery/door/airlock/almayer/security/reinforced{ - access_modified = 1; - name = "\improper Astronavigational Deck"; - req_access = null; - req_one_access_txt = "3;19" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/shipboard/navigation) -"cmJ" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer, -/obj/structure/machinery/door/airlock/almayer/security/reinforced{ - access_modified = 1; - name = "\improper Astronavigational Deck"; - req_access = null; - req_one_access_txt = "3;19" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +/turf/open/floor/almayer/plate, +/area/almayer/hallways/lower/starboard_midship_hallway) +"cmM" = ( +/turf/closed/wall/almayer, +/area/almayer/shipboard/brig/medical) +"cmN" = ( +/obj/structure/largecrate/random/secure, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_a_p) +"cmS" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" }, -/area/almayer/shipboard/navigation) -"cmK" = ( -/obj/structure/window/reinforced, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "silver" +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 9 }, -/area/almayer/command/securestorage) -"cmX" = ( -/obj/docking_port/stationary/escape_pod/west, -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_m_p) +/turf/open/floor/almayer/silver/west, +/area/almayer/hallways/upper/fore_hallway) +"cmV" = ( +/obj/effect/landmark/yautja_teleport, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_a_p) "cnd" = ( /obj/structure/machinery/door/airlock/almayer/secure/reinforced{ dir = 2; name = "\improper Evacuation Airlock PL-1"; req_access = null }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/powered) -"cno" = ( -/obj/structure/stairs, -/obj/effect/projector{ - name = "Almayer_Up1"; - vector_x = -19; - vector_y = 98 - }, -/obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/floor/plating/almayer{ - allow_construction = 0 - }, -/area/almayer/hallways/starboard_hallway) -"cnp" = ( -/obj/structure/machinery/light{ +"cnm" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/upper/u_a_p) +"cnn" = ( +/obj/effect/step_trigger/clone_cleaner, +/obj/effect/decal/warning_stripes{ + icon_state = "SW-out" }, -/area/almayer/command/airoom) +/obj/structure/sign/safety/maint{ + pixel_x = 8; + pixel_y = -32 + }, +/turf/open/floor/almayer/red/north, +/area/almayer/hallways/upper/port) "cnq" = ( /obj/structure/machinery/line_nexter{ id = "line1"; pixel_x = -2 }, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/southeast, /area/almayer/command/computerlab) "cnr" = ( /obj/structure/disposalpipe/junction{ @@ -26936,25 +15093,15 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/medical/lower_medical_medbay) "cnu" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, /obj/structure/pipes/standard/manifold/hidden/supply, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/almayer/living/grunt_rnr) -"cnv" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "silvercorner" - }, -/area/almayer/hallways/aft_hallway) "cnE" = ( /obj/structure/machinery/prop/almayer/computer{ dir = 4; @@ -26963,23 +15110,23 @@ /obj/structure/machinery/power/apc/almayer{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/north, /area/almayer/command/computerlab) "cnH" = ( /obj/structure/machinery/door/airlock/almayer/secure/reinforced{ name = "\improper Computer Lab" }, -/obj/structure/machinery/door/firedoor/border_only/almayer, /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/command/computerlab) +"cnI" = ( +/obj/structure/pipes/vents/scrubber{ + dir = 8 + }, +/turf/open/floor/almayer/orange/east, +/area/almayer/hallways/lower/port_umbilical) "cnM" = ( /obj/structure/window/reinforced{ dir = 4; @@ -27005,10 +15152,14 @@ /obj/item/bedsheet/yellow{ pixel_y = 13 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/port_emb) +"cnP" = ( +/obj/structure/platform_decoration{ + dir = 4 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_a_s) "cnR" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/structure/machinery/door/firedoor/border_only/almayer{ @@ -27025,9 +15176,7 @@ pixel_x = 4; pixel_y = -4 }, -/turf/open/floor/almayer{ - icon_state = "silverfull" - }, +/turf/open/floor/almayer/silverfull, /area/almayer/command/computerlab) "cnS" = ( /obj/structure/window/framed/almayer, @@ -27047,121 +15196,103 @@ }, /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/disposalpipe/segment, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/command/computerlab) -"cnU" = ( -/obj/structure/machinery/vending/hydronutrients, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_s) "cnV" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/west, /area/almayer/medical/morgue) "cnW" = ( /obj/structure/machinery/optable, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/medical/morgue) -"cnX" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_s) -"cnY" = ( -/obj/item/tool/wirecutters/clippers, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_s) "cnZ" = ( -/obj/item/tool/surgery/hemostat, -/obj/item/tool/surgery/scalpel, /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_corner" - }, +/obj/item/tool/surgery/scalpel, +/obj/item/tool/surgery/hemostat, +/turf/open/floor/almayer/sterile_green_corner/west, /area/almayer/medical/morgue) "coa" = ( /obj/item/tool/surgery/circular_saw, /obj/item/tool/surgery/cautery, /obj/item/tool/surgery/retractor, /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/almayer{ - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side, /area/almayer/medical/morgue) "cod" = ( /obj/structure/machinery/cm_vending/clothing/dress{ density = 0; pixel_y = 16 }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/command/cic) "cog" = ( /obj/structure/surface/table/almayer, /obj/item/tool/hand_labeler, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "emerald" - }, +/turf/open/floor/almayer/emerald/east, /area/almayer/squads/charlie) "coj" = ( /obj/structure/machinery/power/apc/almayer, /obj/structure/surface/table/almayer, /obj/item/tool/hand_labeler, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/almayer/blue/east, /area/almayer/squads/delta) +"coo" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/structure/bed/chair{ + dir = 1 + }, +/obj/structure/sign/safety/distribution_pipes{ + pixel_x = 8; + pixel_y = -32 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_f_s) "cop" = ( /turf/open/floor/plating/plating_catwalk, /area/almayer/living/tankerbunks) -"cos" = ( -/obj/structure/machinery/light/small, -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 +"cov" = ( +/obj/structure/machinery/cm_vending/sorted/marine_food, +/obj/structure/sign/safety/security{ + pixel_x = 32; + pixel_y = -8 }, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/structure/sign/safety/restrictedarea{ + pixel_x = 32; + pixel_y = 7 }, -/area/almayer/hull/upper_hull/u_f_s) +/turf/open/floor/almayer/plate, +/area/almayer/shipboard/brig/general_equipment) "coB" = ( /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/alpha_bravo_shared) -"coG" = ( -/obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/almayer{ - icon_state = "plate" +"coD" = ( +/obj/structure/surface/table/woodentable/fancy, +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_18"; + pixel_y = 12 + }, +/turf/open/floor/carpet, +/area/almayer/living/commandbunks) +"coH" = ( +/obj/structure/platform_decoration{ + dir = 1 }, -/area/almayer/hull/upper_hull/u_a_s) +/turf/open/floor/almayer/plating/northeast, +/area/almayer/engineering/lower/engine_core) "coJ" = ( /obj/structure/pipes/standard/simple/hidden/supply/no_boom{ dir = 10 }, -/turf/open/floor/almayer{ - icon_state = "sterile_green" - }, +/turf/open/floor/almayer/sterile_green, /area/almayer/medical/containment) "coT" = ( /obj/structure/machinery/status_display{ @@ -27170,25 +15301,11 @@ /obj/structure/surface/table/almayer, /obj/effect/spawner/random/tool, /obj/item/storage/firstaid/regular, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/shipboard/starboard_point_defense) "coZ" = ( -/turf/open/floor/almayer/research/containment/corner{ - dir = 4 - }, +/turf/open/floor/almayer/research/containment/corner/east, /area/almayer/medical/containment/cell) -"cpf" = ( -/obj/structure/ladder{ - height = 2; - id = "ForeStarboardMaint" - }, -/obj/structure/sign/safety/ladder{ - pixel_x = -17 - }, -/turf/open/floor/plating/almayer, -/area/almayer/hull/upper_hull/u_f_s) "cpj" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/paper, @@ -27197,9 +15314,7 @@ pixel_y = 4 }, /obj/item/tool/pen, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/bridgebunks) "cpk" = ( /obj/structure/disposalpipe/segment{ @@ -27216,12 +15331,10 @@ }, /turf/open/floor/almayer, /area/almayer/living/offices) -"cpw" = ( +"cpz" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor/almayer{ - icon_state = "mono" - }, -/area/almayer/hallways/aft_hallway) +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_m_s) "cpJ" = ( /obj/structure/window/framed/almayer/white, /obj/structure/machinery/door/poddoor/shutters/almayer{ @@ -27243,12 +15356,16 @@ /obj/structure/window/framed/almayer/hull/hijack_bustable, /turf/open/floor/plating, /area/almayer/squads/req) -"cqa" = ( -/turf/open/floor/almayer{ - dir = 10; - icon_state = "green" +"cpP" = ( +/obj/structure/blocker/fuelpump, +/turf/open/floor/almayer/mono, +/area/almayer/lifeboat_pumps/north1) +"cqd" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" }, -/area/almayer/hallways/starboard_hallway) +/turf/open/floor/almayer/orangecorner/north, +/area/almayer/hallways/lower/starboard_umbilical) "cqm" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/folder/white{ @@ -27258,27 +15375,23 @@ pixel_x = 5; pixel_y = 6 }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, +/turf/open/floor/almayer/aicore/no_build, /area/almayer/command/airoom) -"cqn" = ( -/obj/structure/window/framed/almayer, -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 1 - }, -/obj/structure/machinery/door/poddoor/shutters/almayer{ - dir = 2; - id = "bot_armory"; - name = "\improper Armory Shutters" - }, -/turf/open/floor/plating, -/area/almayer/shipboard/brig/armory) +"cqp" = ( +/obj/structure/largecrate/random/barrel/white, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_f_s) "cqz" = ( /obj/structure/surface/table/almayer, /obj/item/facepaint/black, /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/delta) +"cqH" = ( +/obj/structure/pipes/vents/scrubber{ + dir = 4 + }, +/turf/open/floor/almayer, +/area/almayer/maint/hull/lower/l_m_s) "cqJ" = ( /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 2 @@ -27291,9 +15404,7 @@ unacidable = 1; unslashable = 1 }, -/turf/open/floor/almayer{ - icon_state = "red" - }, +/turf/open/floor/almayer/red, /area/almayer/shipboard/brig/processing) "cqQ" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ @@ -27311,86 +15422,44 @@ /turf/open/floor/almayer, /area/almayer/living/bridgebunks) "crc" = ( -/obj/structure/sign/safety/storage{ - pixel_x = -17 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_s) -"cre" = ( -/obj/structure/sign/safety/maint{ - pixel_x = 32 +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "green" +/obj/structure/machinery/door/poddoor/shutters/almayer{ + dir = 8; + id = "laddersoutheast"; + name = "\improper South East Ladders Shutters" }, -/area/almayer/hallways/aft_hallway) +/turf/open/floor/almayer/test_floor4, +/area/almayer/hallways/lower/port_midship_hallway) "crh" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/almayer/red/northwest, /area/almayer/lifeboat_pumps/south1) -"crD" = ( +"cri" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "greencorner" +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 8 }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_f_s) +"crD" = ( +/turf/open/floor/almayer/greencorner/north, /area/almayer/squads/req) -"crK" = ( -/obj/structure/pipes/vents/pump, -/obj/structure/surface/table/almayer, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, -/area/almayer/living/briefing) -"crP" = ( -/obj/item/tool/kitchen/utensil/pfork, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_p) -"crW" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/starboard_hallway) -"csl" = ( -/obj/structure/pipes/vents/scrubber, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "greencorner" - }, -/area/almayer/hallways/starboard_hallway) -"csz" = ( -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_m_p) -"csG" = ( -/obj/structure/surface/table/almayer, -/obj/item/device/flashlight/lamp{ - pixel_x = 15 - }, -/obj/item/paper, -/obj/item/reagent_container/food/drinks/cans/waterbottle{ - pixel_x = -10; - pixel_y = 4 - }, -/turf/open/floor/almayer{ - icon_state = "bluefull" +"csd" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/stern) +"csy" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 1 }, -/area/almayer/living/briefing) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/warden_office) "csI" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/almayer/red/west, /area/almayer/lifeboat_pumps/south1) "csZ" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -27412,20 +15481,27 @@ pixel_x = -1; pixel_y = 1 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "cargo_arrow" - }, +/turf/open/floor/almayer/cargo_arrow/west, /area/almayer/squads/bravo) -"ctn" = ( -/turf/open/floor/almayer{ - icon_state = "redcorner" +"cth" = ( +/obj/structure/largecrate/random/barrel/red, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/s_bow) +"ctp" = ( +/obj/structure/prop/invuln/lattice_prop{ + icon_state = "lattice12"; + pixel_y = 16 }, -/area/almayer/shipboard/brig/lobby) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_a_s) "cts" = ( /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/south1) +"ctw" = ( +/obj/structure/machinery/door/airlock/almayer/maint, +/turf/open/floor/almayer/test_floor4, +/area/almayer/hallways/lower/port_umbilical) "ctx" = ( /obj/structure/bed{ icon_state = "abed" @@ -27450,46 +15526,36 @@ layer = 3.3; pixel_y = 4 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/east, /area/almayer/engineering/upper_engineering/port) -"ctC" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ +"ctJ" = ( +/obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" - }, -/area/almayer/hallways/stern_hallway) -"cuk" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 - }, -/obj/structure/machinery/door/airlock/multi_tile/almayer/secdoor/glass/reinforced{ +/obj/structure/machinery/cm_vending/sorted/medical/bolted, +/obj/structure/medical_supply_link, +/turf/open/floor/almayer/sterile_green_side/north, +/area/almayer/medical/lower_medical_medbay) +"ctQ" = ( +/turf/open/floor/almayer/silver, +/area/almayer/hallways/lower/repair_bay) +"ctT" = ( +/obj/structure/machinery/door/airlock/almayer/security/glass{ + dir = 1; name = "\improper Cryogenics Bay" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 1 }, +/turf/open/floor/almayer/test_floor4, /area/almayer/shipboard/brig/cryo) -"cum" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/structure/bed/chair/comfy/charlie{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/living/briefing) +"cuq" = ( +/obj/structure/machinery/computer/arcade, +/turf/open/floor/wood/ship, +/area/almayer/command/corporateliaison) "cus" = ( /obj/docking_port/stationary/lifeboat_dock/starboard, -/turf/open/floor/almayer_hull{ - dir = 4; - icon_state = "outerhull_dir" - }, +/turf/open/floor/almayer_hull/outerhull_dir/east, /area/space/almayer/lifeboat_dock) "cuy" = ( /obj/item/tool/warning_cone{ @@ -27498,60 +15564,64 @@ /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) "cuC" = ( /turf/closed/wall/almayer/outer, /area/almayer/engineering/upper_engineering/starboard) +"cuN" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/obj/structure/sign/safety/escapepod{ + pixel_x = -17 + }, +/turf/open/floor/almayer/red/northeast, +/area/almayer/hallways/upper/starboard) "cuY" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/squads/alpha) "cvb" = ( +/obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/supply{ - dir = 6 + dir = 1 + }, +/turf/open/floor/almayer/plate, +/area/almayer/squads/req) +"cvg" = ( +/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ + pixel_y = 25 }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_fore_hallway) +"cvx" = ( +/turf/closed/wall/almayer, +/area/almayer/maint/lower/cryo_cells) +"cvH" = ( /obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" + dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/area/almayer/squads/req) -"cvj" = ( -/obj/structure/machinery/power/apc/almayer/hardened{ +/obj/structure/machinery/light{ dir = 1 }, /turf/open/floor/almayer, -/area/almayer/command/corporateliason) +/area/almayer/shipboard/brig/cells) +"cvI" = ( +/obj/effect/step_trigger/clone_cleaner, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/starboard_fore_hallway) "cvZ" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/east, /area/almayer/command/cic) -"cwd" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/obj/structure/machinery/status_display{ - pixel_x = -32 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" - }, -/area/almayer/hallways/aft_hallway) "cwo" = ( /obj/structure/largecrate/random/mini/chest{ pixel_x = 4 @@ -27562,31 +15632,12 @@ }, /turf/open/floor/almayer, /area/almayer/squads/req) -"cwJ" = ( -/turf/open/floor/almayer{ - dir = 10; - icon_state = "blue" - }, -/area/almayer/hallways/aft_hallway) -"cwQ" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/structure/machinery/door/firedoor/border_only/almayer, -/obj/structure/machinery/door/poddoor/shutters/almayer{ - dir = 8; - id = "laddersoutheast"; - name = "\improper South East Ladders Shutters" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/port_hallway) +"cwC" = ( +/turf/open/floor/almayer/red/east, +/area/almayer/shipboard/brig/starboard_hallway) "cwS" = ( /obj/structure/blocker/invisible_wall, -/turf/open/floor/almayer/no_build{ - icon_state = "plating" - }, +/turf/open/floor/almayer/aicore/no_build, /area/almayer/command/airoom) "cwX" = ( /obj/structure/ladder{ @@ -27600,71 +15651,74 @@ icon_state = "S"; layer = 3.3 }, -/obj/structure/machinery/light{ - dir = 4 - }, -/turf/open/floor/almayer/no_build{ - icon_state = "tcomms" - }, +/turf/open/floor/almayer/aicore/glowing/no_build, /area/almayer/command/airoom) -"cxe" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/manifold/hidden/supply, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/engineering/lower_engineering) "cxk" = ( /obj/structure/machinery/light, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/south1) -"cxo" = ( -/turf/open/floor/almayer{ - icon_state = "plate" +"cxF" = ( +/obj/structure/barricade/handrail{ + dir = 8 }, -/area/almayer/hull/upper_hull/u_a_p) -"cxA" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +/obj/structure/barricade/handrail, +/turf/open/floor/almayer/test_floor5, +/area/almayer/hallways/lower/port_midship_hallway) +"cyc" = ( +/obj/structure/machinery/light{ + dir = 1 }, -/area/almayer/shipboard/brig/main_office) -"cxZ" = ( -/obj/structure/bed/chair/comfy/delta, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/structure/pipes/vents/pump, +/turf/open/floor/almayer/red/north, +/area/almayer/shipboard/brig/starboard_hallway) +"cyh" = ( +/obj/structure/machinery/door/airlock/almayer/generic/glass{ + name = "\improper Passenger Cryogenics Bay" }, -/area/almayer/living/briefing) +/obj/structure/machinery/door/firedoor/border_only/almayer, +/turf/open/floor/almayer/test_floor4, +/area/almayer/maint/upper/u_m_p) "cyo" = ( /obj/structure/machinery/vending/cigarette, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "green" - }, +/turf/open/floor/almayer/green/southwest, /area/almayer/squads/req) -"cyE" = ( -/obj/structure/platform_decoration{ - dir = 8 +"cyp" = ( +/obj/structure/machinery/conveyor{ + id = "lower_garbage" + }, +/obj/structure/plasticflaps, +/turf/open/floor/almayer/plating_striped/east, +/area/almayer/maint/hull/lower/l_a_p) +"cyv" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "plate" +/turf/open/floor/almayer/test_floor4, +/area/almayer/maint/hull/upper/u_f_p) +"cyL" = ( +/obj/structure/surface/table/almayer, +/obj/effect/spawner/random/toolbox, +/obj/item/storage/firstaid/o2, +/turf/open/floor/almayer/orange/southeast, +/area/almayer/maint/upper/mess) +"cyP" = ( +/obj/structure/machinery/cm_vending/clothing/intelligence_officer{ + density = 0; + pixel_x = -32 }, -/area/almayer/hull/upper_hull/u_a_s) -"cyG" = ( -/obj/effect/step_trigger/clone_cleaner, -/obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/floor/plating/almayer{ - allow_construction = 0 +/turf/open/floor/almayer/silver/west, +/area/almayer/command/securestorage) +"cyR" = ( +/obj/structure/bed/chair{ + dir = 8 }, -/area/almayer/hallways/port_hallway) +/turf/open/floor/plating, +/area/almayer/maint/lower/constr) "cyU" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 5 }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/medical/upper_medical) "cyZ" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -27672,45 +15726,52 @@ }, /turf/open/floor/almayer, /area/almayer/shipboard/brig/cells) -"czu" = ( -/turf/closed/wall/almayer/outer, -/area/almayer/hull/upper_hull/u_m_p) -"czB" = ( -/obj/effect/decal/cleanable/blood, -/turf/open/floor/almayer{ - icon_state = "redcorner" +"czN" = ( +/obj/item/device/radio/intercom{ + freerange = 1; + name = "General Listening Channel"; + pixel_y = -28 }, -/area/almayer/shipboard/brig/execution) -"czG" = ( -/obj/structure/machinery/recharge_station, -/turf/open/floor/almayer{ - icon_state = "cargo" +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/area/almayer/command/airoom) -"czJ" = ( -/obj/structure/sign/safety/restrictedarea{ - pixel_x = 8; - pixel_y = -32 +/turf/open/floor/almayer/green, +/area/almayer/hallways/lower/starboard_midship_hallway) +"czR" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 5 }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_p) -"czM" = ( -/obj/structure/sign/safety/intercom{ - pixel_x = 8; - pixel_y = 32 +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/starboard_midship_hallway) +"cAa" = ( +/obj/structure/machinery/light{ + dir = 1 }, -/turf/open/floor/almayer, -/area/almayer/hallways/stern_hallway) +/obj/structure/janitorialcart, +/obj/item/tool/mop, +/turf/open/floor/almayer/plate, +/area/almayer/maint/upper/u_f_p) "cAm" = ( /obj/structure/bed/chair/office/light{ dir = 8 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/west, /area/almayer/medical/lower_medical_medbay) +"cAy" = ( +/obj/structure/closet/secure_closet/guncabinet/red/mp_armory_shotgun, +/obj/structure/machinery/camera/autoname/almayer{ + dir = 4; + name = "ship-grade camera" + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/armory) +"cAz" = ( +/obj/structure/platform{ + dir = 8 + }, +/obj/item/stack/sheet/metal, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_a_p) "cAF" = ( /obj/structure/disposalpipe/segment{ dir = 4; @@ -27719,15 +15780,11 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 6 }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/medical/lower_medical_lobby) -"cAH" = ( -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_a_p) +"cAR" = ( +/turf/closed/wall/almayer/reinforced, +/area/almayer/shipboard/brig/mp_bunks) "cBb" = ( /obj/structure/machinery/light{ dir = 1 @@ -27740,20 +15797,8 @@ /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/engineering/upper_engineering/starboard) -"cBi" = ( -/obj/structure/sign/safety/hvac_old{ - pixel_x = 8; - pixel_y = 32 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_a_p) "cBj" = ( /obj/structure/machinery/cryopod{ layer = 3.1; @@ -27766,86 +15811,37 @@ /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/engineering/upper_engineering/port) -"cBl" = ( -/obj/structure/sign/safety/maint{ - pixel_x = 32 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/vehiclehangar) -"cBm" = ( -/obj/effect/projector{ - name = "Almayer_AresUp"; - vector_x = -97; - vector_y = 65 - }, -/obj/structure/platform{ - dir = 4 - }, -/obj/structure/stairs{ - dir = 1; - icon_state = "ramptop" - }, -/turf/open/floor/almayer/no_build{ - dir = 4; - icon_state = "silver" - }, -/area/almayer/command/airoom) "cBs" = ( /obj/structure/bed/chair, /obj/effect/decal/warning_stripes{ icon_state = "N"; pixel_y = 1 }, -/turf/open/floor/almayer{ - icon_state = "cargo_arrow" - }, +/turf/open/floor/almayer/cargo_arrow, /area/almayer/squads/alpha) -"cBA" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/sign/safety/hvac_old{ - pixel_x = 8; - pixel_y = -32 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/starboard_hallway) -"cBB" = ( -/obj/structure/surface/rack, -/obj/item/tool/wirecutters, -/obj/item/clothing/mask/gas, -/obj/item/clothing/mask/gas, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_s) -"cBI" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/obj/structure/machinery/door_control{ - id = "hangarentrancenorth"; - name = "North Hangar Podlocks"; - pixel_y = -26; - req_one_access_txt = "2;3;12;19"; - throw_range = 15 +"cBw" = ( +/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ + pixel_y = 25 }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/general_equipment) +"cBC" = ( /obj/effect/decal/warning_stripes{ icon_state = "E"; - pixel_x = 1 + pixel_x = 2 }, -/turf/open/floor/almayer{ - icon_state = "plate" +/turf/open/floor/almayer/green/northeast, +/area/almayer/hallways/lower/port_aft_hallway) +"cBV" = ( +/obj/structure/closet/firecloset, +/obj/structure/machinery/camera/autoname/almayer{ + dir = 8; + name = "ship-grade camera" }, -/area/almayer/hallways/starboard_hallway) +/turf/open/floor/almayer/greencorner/east, +/area/almayer/hallways/lower/port_fore_hallway) "cCa" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -27857,33 +15853,28 @@ dir = 8; layer = 2.7 }, -/turf/open/floor/almayer/uscm/directional{ - dir = 9 - }, +/turf/open/floor/almayer/uscm/directional/northwest, /area/almayer/living/briefing) "cCE" = ( /obj/structure/machinery/firealarm{ pixel_y = 28 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) -"cDe" = ( -/obj/structure/largecrate/random/barrel/white, -/obj/structure/sign/safety/storage{ - pixel_x = -17 - }, -/turf/open/floor/almayer{ - icon_state = "plate" +"cCL" = ( +/obj/effect/landmark/crap_item, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 6 }, -/area/almayer/hull/lower_hull/l_m_s) -"cDj" = ( -/obj/structure/machinery/portable_atmospherics/canister/air, -/turf/open/floor/almayer{ - icon_state = "cargo" +/turf/open/floor/almayer, +/area/almayer/maint/hull/upper/u_f_s) +"cDb" = ( +/obj/structure/closet/secure_closet/personal/cabinet{ + req_access = null }, -/area/almayer/engineering/engine_core) +/obj/item/clothing/mask/rebreather/scarf/tacticalmask/red, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/p_bow) "cDn" = ( /obj/structure/surface/table/almayer, /obj/item/ashtray/glass{ @@ -27897,20 +15888,22 @@ pixel_x = 4; pixel_y = 11 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/north, /area/almayer/shipboard/brig/cic_hallway) "cDs" = ( /obj/structure/machinery/cryopod, /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/squads/charlie) +"cDx" = ( +/obj/structure/machinery/door/airlock/almayer/maint{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/almayer/test_floor4, +/area/almayer/maint/hull/lower/l_m_p) "cDC" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -27918,34 +15911,38 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/living/grunt_rnr) -"cDW" = ( -/obj/structure/largecrate/supply/supplies/flares, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" +"cDH" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/machinery/computer/cameras/wooden_tv/broadcast{ + pixel_y = 29 + }, +/turf/open/floor/almayer/plate, +/area/almayer/living/briefing) +"cDI" = ( +/obj/structure/disposalpipe/junction{ + dir = 4 + }, +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 1 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/upper/midship_hallway) +"cDN" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/area/almayer/hull/upper_hull/u_a_p) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/lobby) +"cDP" = ( +/turf/open/floor/almayer/silvercorner/north, +/area/almayer/hallways/upper/midship_hallway) "cDZ" = ( /obj/structure/surface/table/almayer, /obj/item/paper, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/tankerbunks) -"cEg" = ( -/obj/structure/surface/table/almayer, -/obj/item/device/flashlight/lamp{ - pixel_x = 5; - pixel_y = 10 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_f_p) "cEi" = ( /obj/structure/sign/poster, /turf/closed/wall/almayer, @@ -27961,20 +15958,21 @@ /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/almayer/command/cic) -"cEx" = ( -/obj/structure/machinery/vending/cola, -/obj/structure/machinery/light{ - dir = 8 +"cEA" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12 }, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/structure/sign/safety/water{ + pixel_x = 8; + pixel_y = -32 }, -/area/almayer/engineering/engineering_workshop) +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_f_s) "cEC" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -27992,40 +15990,30 @@ pixel_x = 1; pixel_y = 2 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "cargo_arrow" - }, +/turf/open/floor/almayer/cargo_arrow/west, /area/almayer/squads/charlie) "cEG" = ( -/obj/structure/sign/poster{ - icon_state = "poster14"; - pixel_x = -27 - }, /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/living/briefing) -"cEO" = ( -/obj/structure/largecrate/supply/floodlights, -/turf/open/floor/almayer{ - icon_state = "plate" +/turf/open/floor/almayer/mono, +/area/almayer/hallways/upper/fore_hallway) +"cFg" = ( +/obj/structure/stairs{ + dir = 1; + icon_state = "ramptop" }, -/area/almayer/hull/upper_hull/u_a_p) -"cES" = ( -/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ - pixel_y = 25 +/obj/effect/projector{ + name = "Almayer_AresUp2"; + vector_x = -102; + vector_y = 61 }, -/turf/open/floor/almayer, -/area/almayer/hallways/stern_hallway) -"cEY" = ( -/obj/structure/largecrate/supply/ammo/m41a/half, -/obj/structure/largecrate/supply/ammo/pistol/half{ - pixel_y = 12 +/obj/structure/machinery/door_control{ + id = "ARES ReceptStairs2"; + name = "ARES Reception Stairway Shutters"; + pixel_x = 24; + req_one_access_txt = "91;92" }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_p) +/turf/open/floor/almayer/aicore/no_build, +/area/almayer/command/airoom) "cFh" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 5 @@ -28033,67 +16021,63 @@ /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/shipboard/weapon_room) "cFn" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "red" - }, +/turf/open/floor/almayer/red, /area/almayer/command/lifeboat) -"cFA" = ( -/obj/structure/surface/rack, -/obj/item/tool/weldpack, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_p) -"cFO" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "redcorner" +"cFC" = ( +/obj/structure/machinery/light{ + dir = 1 }, -/area/almayer/shipboard/brig/main_office) +/turf/open/floor/almayer/red/northwest, +/area/almayer/shipboard/brig/processing) "cFP" = ( /obj/structure/sign/safety/outpatient{ pixel_x = -17; pixel_y = 6 }, -/turf/open/floor/almayer{ - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side, /area/almayer/medical/lower_medical_medbay) -"cFX" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "SE-out" - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_p) -"cGr" = ( -/turf/open/floor/almayer{ - icon_state = "plate" +"cGd" = ( +/turf/closed/wall/almayer, +/area/almayer/maint/hull/upper/u_m_s) +"cGA" = ( +/obj/structure/sign/poster{ + pixel_y = -32 }, -/area/almayer/hallways/aft_hallway) +/turf/open/floor/almayer, +/area/almayer/maint/hull/upper/u_f_s) +"cGB" = ( +/obj/structure/machinery/cm_vending/sorted/tech/tool_storage, +/turf/open/floor/almayer/orange/east, +/area/almayer/maint/hull/lower/l_m_s) +"cGO" = ( +/turf/open/floor/almayer/silver/west, +/area/almayer/hallways/upper/midship_hallway) +"cGR" = ( +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/upper/u_m_s) "cGV" = ( -/turf/open/floor/almayer{ - icon_state = "cargo_arrow" - }, +/turf/open/floor/almayer/cargo_arrow, /area/almayer/squads/alpha_bravo_shared) +"cGY" = ( +/obj/structure/largecrate/random/barrel/blue, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_m_s) "cHc" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer, /obj/structure/sign/safety/ladder{ pixel_x = 8; pixel_y = 32 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/orange/north, /area/almayer/engineering/upper_engineering) +"cHk" = ( +/turf/closed/wall/almayer/reinforced, +/area/almayer/shipboard/brig/warden_office) "cHl" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" @@ -28102,45 +16086,30 @@ icon_state = "E"; pixel_x = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/bravo) -"cHq" = ( -/obj/item/stack/sheet/metal, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_a_p) "cHu" = ( /turf/closed/wall/almayer/research/containment/wall/south, /area/almayer/medical/containment/cell/cl) -"cHA" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, +"cHB" = ( +/turf/open/floor/almayer/orangefull, +/area/almayer/living/briefing) +"cHC" = ( +/obj/structure/machinery/cm_vending/clothing/combat_correspondent, +/turf/open/floor/almayer/plate, +/area/almayer/command/combat_correspondent) +"cHE" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "silver" - }, +/turf/open/floor/almayer/blue/west, /area/almayer/command/cichallway) -"cHE" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "blue" - }, -/area/almayer/command/cichallway) -"cHO" = ( -/obj/structure/sign/safety/nonpress_0g{ - pixel_x = 32 - }, -/turf/open/floor/almayer{ - icon_state = "plate" +"cHG" = ( +/obj/structure/machinery/light{ + dir = 8 }, -/area/almayer/engineering/lower_engineering) +/turf/open/floor/wood/ship, +/area/almayer/command/corporateliaison) "cIe" = ( /obj/structure/machinery/light{ dir = 4 @@ -28148,83 +16117,55 @@ /obj/structure/surface/table/almayer, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/south1) -"cIi" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/obj/structure/bed/chair{ - dir = 1 - }, -/obj/structure/sign/safety/distribution_pipes{ - pixel_x = 8; - pixel_y = -32 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_s) -"cIl" = ( +"cIm" = ( +/obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/supply, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/living/briefing) +/turf/open/floor/almayer/greencorner/north, +/area/almayer/hallways/lower/port_fore_hallway) "cIr" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/delta) +"cIx" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer/plate, +/area/almayer/living/briefing) "cIG" = ( /obj/structure/closet/emcloset, /obj/item/clothing/mask/gas, /obj/item/clothing/mask/gas, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/engineering/upper_engineering/starboard) -"cII" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/obj/structure/sign/safety/airlock{ - pixel_x = -17; - pixel_y = 7 - }, -/obj/structure/sign/safety/hazard{ - pixel_x = -17; - pixel_y = -8 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/hull/lower_hull/l_a_p) -"cIK" = ( -/obj/structure/janitorialcart, -/obj/item/tool/mop, -/obj/structure/machinery/light/small, -/turf/open/floor/almayer{ - icon_state = "redcorner" - }, -/area/almayer/shipboard/brig/execution) -"cIU" = ( -/obj/structure/sign/safety/hvac_old{ - pixel_x = 8; - pixel_y = 32 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_m_s) +"cIO" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/disposalpipe/segment, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_fore_hallway) +"cIS" = ( +/obj/structure/closet, +/turf/open/floor/almayer/plate, +/area/almayer/maint/upper/u_f_s) "cIW" = ( /obj/structure/machinery/door/airlock/almayer/engineering{ name = "\improper Engineering Engine Monitoring" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/engineering/upper_engineering/starboard) +"cJm" = ( +/obj/structure/machinery/light{ + dir = 8 + }, +/obj/structure/bed/chair{ + dir = 16 + }, +/turf/open/floor/almayer/plate, +/area/almayer/shipboard/panic) +"cJs" = ( +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/port_aft_hallway) "cJu" = ( /obj/effect/decal/warning_stripes{ icon_state = "SW-out" @@ -28233,20 +16174,46 @@ dir = 1 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/pilotbunks) -"cJB" = ( -/obj/structure/machinery/vending/coffee, -/turf/open/floor/almayer{ - icon_state = "plate" +"cJv" = ( +/obj/structure/stairs{ + dir = 1; + icon_state = "ramptop" }, -/area/almayer/hull/upper_hull/u_f_s) +/obj/effect/projector{ + name = "Almayer_AresDown2"; + vector_x = 102; + vector_y = -61 + }, +/turf/open/floor/plating, +/area/almayer/command/airoom) "cJE" = ( /obj/structure/sign/prop2, /turf/closed/wall/almayer, /area/almayer/shipboard/sea_office) +"cJI" = ( +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/structure/machinery/disposal/delivery{ + density = 0; + desc = "A pneumatic delivery unit."; + icon_state = "delivery_engi"; + name = "Returns"; + pixel_y = 28; + pixel_x = 25 + }, +/obj/structure/surface/rack, +/turf/open/floor/almayer/aicore/no_build, +/area/almayer/command/airoom) +"cJK" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/turf/open/floor/almayer/plate, +/area/almayer/hallways/lower/starboard_fore_hallway) "cJM" = ( /obj/structure/machinery/door_display/research_cell{ dir = 8; @@ -28285,53 +16252,41 @@ req_one_access_txt = "19;28" }, /obj/structure/pipes/standard/simple/hidden/supply/no_boom, -/turf/open/floor/almayer{ - icon_state = "sterile_green" - }, +/turf/open/floor/almayer/sterile_green, /area/almayer/medical/containment) -"cJP" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/sign/safety/water{ - pixel_x = 8; - pixel_y = 32 +"cKm" = ( +/obj/structure/surface/table/almayer, +/obj/item/reagent_container/glass/bucket/mopbucket{ + pixel_x = -8 }, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/item/reagent_container/glass/bucket/mopbucket{ + pixel_y = 12 }, -/area/almayer/hull/lower_hull/l_a_p) -"cKt" = ( -/obj/structure/bed/sofa/south/grey/left, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/item/clothing/head/militia/bucket{ + pixel_x = 5; + pixel_y = -5 }, -/area/almayer/hull/upper_hull/u_f_p) -"cKL" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orangecorner" +/obj/item/reagent_container/spray/cleaner{ + pixel_x = 8; + pixel_y = -1 }, -/area/almayer/engineering/upper_engineering/port) -"cKX" = ( -/obj/structure/pipes/vents/scrubber{ +/turf/open/floor/plating, +/area/almayer/maint/lower/constr) +"cKJ" = ( +/obj/structure/machinery/light/small{ dir = 4 }, -/obj/structure/surface/table/almayer, -/obj/structure/machinery/computer/emails{ - pixel_x = 2; - pixel_y = 5 - }, -/turf/open/floor/almayer{ - icon_state = "bluefull" - }, -/area/almayer/living/briefing) -"cKY" = ( -/obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "silver" - }, -/area/almayer/hallways/aft_hallway) +/turf/open/floor/almayer/red/east, +/area/almayer/shipboard/brig/interrogation) +"cKL" = ( +/turf/open/floor/almayer/orangecorner/west, +/area/almayer/engineering/upper_engineering/port) +"cLd" = ( +/obj/structure/closet, +/obj/item/clothing/glasses/mgoggles/prescription, +/obj/item/clothing/glasses/mbcg, +/turf/open/floor/almayer/plate, +/area/almayer/maint/upper/u_a_s) "cLl" = ( /obj/structure/surface/table/almayer, /obj/structure/pipes/standard/simple/hidden/supply{ @@ -28346,23 +16301,17 @@ icon_state = "N"; pixel_y = 1 }, -/turf/open/floor/almayer/no_build{ - icon_state = "cargo_arrow" - }, +/turf/open/floor/almayer/aicore/no_build/ai_arrow, /area/almayer/command/airoom) -"cLp" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 +"cLq" = ( +/obj/structure/machinery/light/small{ + dir = 8 }, /obj/effect/decal/warning_stripes{ - icon_state = "NE-out"; - pixel_x = 1; - pixel_y = 1 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" + icon_state = "W" }, -/area/almayer/hallways/aft_hallway) +/turf/open/floor/almayer/plating/northeast, +/area/almayer/shipboard/stern_point_defense) "cLA" = ( /obj/structure/machinery/cryopod/right{ pixel_y = 6 @@ -28370,9 +16319,7 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/medical/lower_medical_medbay) "cLC" = ( /obj/structure/bed/chair, @@ -28383,16 +16330,8 @@ layer = 3.1; pixel_y = 13 }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/living/bridgebunks) -"cLV" = ( -/obj/structure/largecrate/random/barrel/green, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_p) "cMl" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -28402,14 +16341,24 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/brig/processing) +"cMx" = ( +/turf/closed/wall/almayer, +/area/almayer/maint/upper/u_a_s) +"cMz" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/upper/port) +"cMH" = ( +/obj/structure/sink{ + pixel_y = 24 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/upper/u_a_s) "cMN" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/west, /area/almayer/engineering/upper_engineering/starboard) "cMV" = ( /obj/structure/sign/prop1{ @@ -28429,26 +16378,18 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/brig/processing) -"cNc" = ( -/obj/structure/platform{ - dir = 1 - }, -/obj/structure/reagent_dispensers/watertank, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_s) -"cNe" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 5 - }, -/turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_p) "cNf" = ( -/turf/open/floor/almayer{ - icon_state = "orange" - }, +/turf/open/floor/almayer/orange, /area/almayer/living/briefing) +"cNm" = ( +/turf/open/floor/almayer/orange/east, +/area/almayer/hallways/lower/port_aft_hallway) +"cNC" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/upper/aft_hallway) "cNH" = ( /obj/structure/machinery/door/poddoor/shutters/almayer/containment{ id = "Containment Cell 4"; @@ -28460,10 +16401,33 @@ locked = 1; name = "\improper Containment Cell 4" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/medical/containment/cell/cl) +"cNI" = ( +/turf/open/floor/almayer/dark_sterile, +/area/almayer/shipboard/brig/medical) +"cNJ" = ( +/obj/structure/pipes/vents/pump, +/turf/open/floor/almayer/red, +/area/almayer/shipboard/brig/mp_bunks) +"cNK" = ( +/obj/structure/pipes/vents/pump{ + dir = 1 + }, +/obj/structure/machinery/light/small, +/turf/open/floor/almayer/plate, +/area/almayer/command/combat_correspondent) +"cNM" = ( +/obj/effect/step_trigger/clone_cleaner, +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/obj/structure/machinery/status_display{ + pixel_x = 32 + }, +/turf/open/floor/almayer/red/west, +/area/almayer/hallways/upper/port) "cNX" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -28473,19 +16437,31 @@ }, /turf/open/floor/almayer, /area/almayer/living/grunt_rnr) -"cNY" = ( -/obj/structure/machinery/computer/crew, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "red" +"cOd" = ( +/obj/structure/blocker/fuelpump, +/turf/open/floor/almayer/mono, +/area/almayer/lifeboat_pumps/south2) +"cOe" = ( +/turf/open/floor/almayer/blue/northeast, +/area/almayer/hallways/upper/midship_hallway) +"cOh" = ( +/obj/item/stool{ + pixel_x = 15; + pixel_y = 6 }, -/area/almayer/shipboard/brig/main_office) -"cOi" = ( -/obj/effect/landmark/yautja_teleport, -/turf/open/floor/almayer{ - icon_state = "plate" +/turf/open/floor/plating, +/area/almayer/maint/lower/constr) +"cOo" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer, +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/area/almayer/hull/upper_hull/u_a_p) +/turf/open/floor/almayer/test_floor4, +/area/almayer/maint/hull/lower/l_a_p) +"cOt" = ( +/obj/structure/largecrate/random/case/small, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_f_p) "cOK" = ( /obj/structure/prop/invuln{ desc = "An inflated membrane. This one is puncture proof. Wow!"; @@ -28494,18 +16470,80 @@ name = "umbilical wall" }, /obj/structure/blocker/invisible_wall, -/turf/open/floor/almayer_hull{ - dir = 4; - icon_state = "outerhull_dir" - }, +/turf/open/floor/almayer_hull/outerhull_dir/east, /area/almayer/engineering/upper_engineering/starboard) -"cOM" = ( -/obj/structure/sign/safety/medical{ - pixel_x = 8; - pixel_y = -32 +"cOV" = ( +/obj/effect/projector{ + name = "Almayer_AresDown"; + vector_x = 96; + vector_y = -65 }, -/turf/open/floor/almayer, -/area/almayer/hallways/starboard_hallway) +/obj/structure/platform{ + dir = 8 + }, +/obj/structure/stairs{ + dir = 1; + icon_state = "ramptop" + }, +/obj/structure/machinery/door_control{ + id = "ARES StairsUpper"; + name = "ARES Core Access"; + pixel_x = -24; + req_one_access_txt = "90;91;92" + }, +/turf/open/floor/almayer/aicore/no_build, +/area/almayer/command/airoom) +"cOY" = ( +/obj/item/clothing/under/blackskirt{ + desc = "A stylish skirt, in a business-black and red colour scheme."; + name = "liaison's skirt" + }, +/obj/item/clothing/under/suit_jacket/charcoal{ + desc = "A professional black suit and blue tie. A combination popular among government agents and corporate Yes-Men alike."; + name = "liaison's black suit" + }, +/obj/item/clothing/under/suit_jacket/navy{ + desc = "A navy suit and red tie, intended for the Almayer's finest. And accountants."; + name = "liaison's navy suit" + }, +/obj/item/clothing/under/suit_jacket/trainee, +/obj/item/clothing/under/liaison_suit/charcoal, +/obj/item/clothing/under/liaison_suit/blazer, +/obj/item/clothing/suit/storage/snow_suit/liaison, +/obj/item/clothing/gloves/black, +/obj/item/clothing/gloves/marine/dress, +/obj/item/clothing/glasses/sunglasses/big, +/obj/item/clothing/accessory/blue, +/obj/item/clothing/accessory/red, +/obj/structure/machinery/status_display{ + pixel_x = -32 + }, +/obj/item/clothing/accessory/black, +/obj/item/clothing/accessory/green, +/obj/item/clothing/accessory/gold, +/obj/item/clothing/accessory/purple, +/obj/item/clothing/under/liaison_suit/corporate_formal, +/obj/item/clothing/under/liaison_suit/field, +/obj/item/clothing/under/liaison_suit/ivy, +/obj/item/clothing/under/liaison_suit/blue, +/obj/item/clothing/under/liaison_suit/brown, +/obj/item/clothing/under/liaison_suit/black, +/obj/item/clothing/suit/storage/jacket/marine/vest, +/obj/item/clothing/suit/storage/jacket/marine/vest/grey, +/obj/item/clothing/suit/storage/jacket/marine/vest/tan, +/obj/item/clothing/suit/storage/jacket/marine/bomber, +/obj/item/clothing/suit/storage/jacket/marine/bomber/red, +/obj/item/clothing/suit/storage/jacket/marine/bomber/grey, +/obj/item/clothing/suit/storage/jacket/marine/corporate, +/obj/item/clothing/suit/storage/jacket/marine/corporate/black, +/obj/item/clothing/suit/storage/jacket/marine/corporate/blue, +/obj/item/clothing/suit/storage/jacket/marine/corporate/brown, +/obj/item/clothing/suit/storage/jacket/marine/corporate/formal, +/obj/structure/closet/cabinet{ + storage_capacity = 35 + }, +/turf/open/floor/wood/ship, +/area/almayer/command/corporateliaison) "cPg" = ( /obj/structure/sign/safety/north{ pixel_x = 32; @@ -28515,16 +16553,38 @@ pixel_x = 32; pixel_y = -8 }, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/southeast, /area/almayer/command/cichallway) -"cQc" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" +"cPj" = ( +/obj/structure/window/framed/almayer/hull, +/turf/open/floor/plating, +/area/almayer/maint/hull/upper/p_bow) +"cPK" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/obj/structure/sign/safety/stairs{ + pixel_x = -15 + }, +/turf/open/floor/almayer/red/northeast, +/area/almayer/hallways/upper/starboard) +"cPP" = ( +/obj/structure/sign/poster/pinup{ + pixel_x = -30 + }, +/obj/structure/sign/poster/hunk{ + pixel_x = -25; + pixel_y = 10 + }, +/obj/item/trash/buritto, +/obj/structure/prop/invuln/lattice_prop{ + icon_state = "lattice12"; + pixel_y = 16 }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_m_s) +"cQc" = ( +/turf/open/floor/almayer/red/north, /area/almayer/living/briefing) "cQg" = ( /obj/structure/surface/rack, @@ -28532,9 +16592,7 @@ icon_state = "W" }, /obj/item/clothing/ears/earmuffs, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/engineering/upper_engineering/starboard) "cQo" = ( /obj/effect/decal/warning_stripes{ @@ -28543,46 +16601,51 @@ /obj/structure/pipes/standard/simple/hidden/supply/no_boom{ dir = 5 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/west, /area/almayer/medical/containment) "cQv" = ( /turf/closed/wall/almayer/reinforced, /area/almayer/shipboard/brig/general_equipment) -"cQD" = ( -/obj/structure/sink{ - dir = 8; - pixel_x = -12; - pixel_y = 2 - }, -/obj/structure/mirror{ - pixel_x = -29 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 +"cQC" = ( +/obj/item/device/radio/intercom{ + freerange = 1; + name = "General Listening Channel"; + pixel_x = -8; + pixel_y = 28 }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" +/obj/structure/sign/safety/intercom{ + pixel_x = 14; + pixel_y = 32 }, -/area/almayer/living/commandbunks) +/turf/open/floor/almayer, +/area/almayer/hallways/upper/midship_hallway) "cQF" = ( -/obj/structure/largecrate/random/barrel/red, -/turf/open/floor/almayer{ - icon_state = "cargo" +/obj/structure/sign/safety/ladder{ + pixel_x = 8; + pixel_y = -32 }, -/area/almayer/hull/lower_hull/l_f_s) -"cQN" = ( +/turf/open/floor/almayer/blue, +/area/almayer/hallways/upper/midship_hallway) +"cQG" = ( +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/starboard_hallway) +"cQL" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/lobby) +"cQW" = ( /obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 + icon_state = "SW-out"; + pixel_x = -1 }, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out" }, -/area/almayer/hull/lower_hull/l_f_p) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/upper/starboard) "cRb" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -28593,38 +16656,13 @@ /obj/structure/machinery/door/airlock/almayer/command/reinforced{ name = "\improper Combat Information Center" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/command/cichallway) -"cRc" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/obj/structure/largecrate/random/barrel/white, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_f_s) -"cRg" = ( -/obj/item/tool/weldpack{ - pixel_y = 15 - }, -/obj/structure/surface/table/almayer, -/obj/item/clothing/head/welding, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_m_s) "cRi" = ( -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/engineering/upper_engineering/port) "cRv" = ( -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/shipboard/port_missiles) "cRK" = ( /obj/structure/desertdam/decals/road_edge{ @@ -28635,12 +16673,20 @@ }, /turf/open/floor/wood/ship, /area/almayer/living/basketball) +"cRL" = ( +/obj/effect/step_trigger/clone_cleaner, +/turf/open/floor/almayer, +/area/almayer/hallways/upper/starboard) +"cSa" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + pixel_y = 1 + }, +/turf/open/floor/almayer/mono, +/area/almayer/lifeboat_pumps/north2) "cSk" = ( /obj/structure/machinery/door/window/southleft, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/east, /area/almayer/command/securestorage) "cSm" = ( /obj/structure/sign/safety/ladder{ @@ -28653,114 +16699,103 @@ /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) "cSC" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/almayer/red/east, /area/almayer/shipboard/starboard_missiles) -"cSK" = ( -/obj/structure/sign/safety/hvac_old{ - pixel_x = 8; - pixel_y = 32 - }, -/obj/structure/largecrate/supply/supplies/flares, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_s) -"cSN" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/structure/machinery/light{ +"cSH" = ( +/obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 9 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_midship_hallway) +"cSP" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 6 }, -/area/almayer/engineering/engineering_workshop/hangar) +/turf/open/floor/almayer/green/northwest, +/area/almayer/hallways/lower/port_midship_hallway) "cSQ" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, /obj/structure/pipes/standard/manifold/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "orange" - }, +/turf/open/floor/almayer/orange, /area/almayer/squads/bravo) "cST" = ( /obj/structure/bookcase{ icon_state = "book-5" }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/captain_mess) "cTf" = ( /obj/structure/machinery/cryopod/right{ layer = 3.1; pixel_y = 13 }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/squads/req) +"cTy" = ( +/obj/structure/closet/secure_closet/medical2, +/turf/open/floor/almayer/sterile_green_side, +/area/almayer/shipboard/brig/medical) "cTC" = ( /obj/structure/machinery/vending/walkman, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "green" - }, +/turf/open/floor/almayer/green/southwest, /area/almayer/living/offices) -"cUb" = ( -/obj/structure/machinery/camera/autoname/almayer{ - dir = 1; - name = "ship-grade camera" +"cTM" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/machinery/light/small{ + dir = 8 }, -/obj/structure/closet/firecloset, -/turf/open/floor/almayer{ - icon_state = "plate" +/turf/open/floor/almayer/plate, +/area/almayer/maint/upper/mess) +"cTX" = ( +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 8 }, -/area/almayer/engineering/engineering_workshop/hangar) -"cUv" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ +/turf/open/floor/almayer/plate, +/area/almayer/maint/lower/cryo_cells) +"cUl" = ( +/obj/structure/largecrate/random/barrel/yellow, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/s_bow) +"cUo" = ( +/turf/open/floor/almayer/plate, +/area/almayer/lifeboat_pumps/north1) +"cVb" = ( +/obj/structure/machinery/sentry_holder/almayer, +/turf/open/floor/almayer/mono, +/area/almayer/lifeboat_pumps/north2) +"cVf" = ( +/obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hull/upper_hull/u_f_p) -"cVs" = ( -/obj/structure/platform_decoration{ - dir = 8 +/turf/open/floor/almayer/green/north, +/area/almayer/hallways/lower/starboard_midship_hallway) +"cVq" = ( +/obj/structure/machinery/power/apc/almayer/hardened{ + dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" +/turf/open/floor/almayer, +/area/almayer/command/corporateliaison) +"cVt" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 }, -/area/almayer/hull/upper_hull/u_a_p) +/turf/open/floor/almayer/plate, +/area/almayer/hallways/lower/port_fore_hallway) "cVw" = ( /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/east, /area/almayer/engineering/upper_engineering/starboard) -"cVJ" = ( -/obj/structure/largecrate/supply, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_f_s) "cVK" = ( /obj/structure/surface/rack, /obj/structure/sign/safety/rewire{ @@ -28768,10 +16803,30 @@ pixel_y = 32 }, /obj/effect/spawner/random/facepaint, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/gym) +"cVZ" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_midship_hallway) +"cWb" = ( +/obj/structure/largecrate/random/case/double, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/stern) +"cWm" = ( +/obj/structure/surface/rack, +/obj/item/storage/firstaid/adv/empty, +/obj/item/storage/firstaid/adv/empty, +/obj/item/storage/firstaid/adv/empty, +/obj/structure/sign/safety/med_life_support{ + pixel_x = 15; + pixel_y = 32 + }, +/obj/structure/sign/safety/hazard{ + pixel_y = 32 + }, +/turf/open/floor/almayer/sterile_green_corner, +/area/almayer/medical/lower_medical_medbay) "cWr" = ( /obj/structure/machinery/photocopier{ density = 0; @@ -28805,77 +16860,22 @@ pixel_x = 2; pixel_y = 10 }, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "green" - }, +/turf/open/floor/almayer/green/northwest, /area/almayer/living/offices) -"cWs" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "redcorner" - }, -/area/almayer/shipboard/brig/main_office) -"cWt" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" - }, -/area/almayer/engineering/lower_engineering) -"cWv" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "green" - }, -/area/almayer/living/starboard_garden) "cWy" = ( /obj/structure/closet/secure_closet/freezer/fridge, /obj/item/reagent_container/food/snacks/packaged_burger, /obj/item/reagent_container/food/snacks/packaged_burger, /obj/item/reagent_container/food/snacks/packaged_burger, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/bridgebunks) -"cWA" = ( -/obj/structure/largecrate/random/barrel/red, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_m_s) -"cWI" = ( -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12 - }, -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12; - pixel_y = 12 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_a_s) -"cWN" = ( -/obj/structure/filingcabinet{ - density = 0; - pixel_x = -8; - pixel_y = 18 - }, -/obj/structure/machinery/light{ - dir = 8 - }, -/obj/structure/filingcabinet/security{ - density = 0; - pixel_x = 8; - pixel_y = 18 - }, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "red" +"cWE" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + pixel_y = 1 }, -/area/almayer/shipboard/brig/chief_mp_office) +/turf/open/floor/almayer/orange/northeast, +/area/almayer/engineering/upper_engineering/port) "cXi" = ( /obj/structure/machinery/light{ unacidable = 1; @@ -28891,21 +16891,52 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/brig/cells) +"cXm" = ( +/obj/structure/largecrate/supply/supplies/mre, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_m_s) "cXq" = ( -/obj/structure/largecrate/supply/supplies/water, -/turf/open/floor/almayer{ - icon_state = "red" +/obj/structure/machinery/light{ + dir = 1 + }, +/turf/open/floor/almayer/green/northeast, +/area/almayer/hallways/upper/fore_hallway) +"cXz" = ( +/obj/structure/surface/table/almayer, +/obj/item/clothing/mask/cigarette/pipe{ + pixel_x = 8 + }, +/obj/structure/transmitter/rotary{ + name = "Reporter Telephone"; + phone_category = "Almayer"; + phone_id = "Reporter"; + pixel_x = -4; + pixel_y = 6 }, -/area/almayer/hull/upper_hull/u_a_p) +/obj/item/device/toner{ + pixel_x = -2; + pixel_y = -11 + }, +/turf/open/floor/almayer/plate, +/area/almayer/command/combat_correspondent) "cXC" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" }, /obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side, /area/almayer/medical/containment) +"cXD" = ( +/obj/structure/surface/rack, +/obj/item/clothing/suit/straight_jacket, +/obj/item/clothing/glasses/sunglasses/blindfold, +/obj/item/clothing/mask/muzzle, +/obj/structure/machinery/camera/autoname/almayer{ + dir = 8; + name = "ship-grade camera" + }, +/turf/open/floor/almayer/plate, +/area/almayer/shipboard/brig/execution_storage) "cXF" = ( /obj/structure/machinery/flasher{ alpha = 1; @@ -28915,46 +16946,54 @@ pixel_x = -15; pixel_y = 30 }, -/turf/open/floor/almayer/research/containment/corner_var1{ - icon_state = "containment_corner_variant_2" - }, +/turf/open/floor/almayer/research/containment/corner_var1/containment_corner_variant_2, /area/almayer/medical/containment/cell/cl) "cXR" = ( -/turf/open/floor/almayer{ - icon_state = "greencorner" - }, +/turf/open/floor/almayer/greencorner, /area/almayer/squads/req) +"cXV" = ( +/obj/structure/bed/chair{ + dir = 1 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/mp_bunks) "cXW" = ( /obj/structure/machinery/status_display{ pixel_y = 30 }, /obj/structure/surface/table/almayer, /obj/item/paper_bin/uscm, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/north, /area/almayer/medical/upper_medical) +"cXX" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/sign/safety/distribution_pipes{ + pixel_x = 32 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_m_p) "cXY" = ( /obj/item/stack/catwalk, -/turf/open/floor/almayer{ - icon_state = "orange" - }, +/turf/open/floor/almayer/orange, /area/almayer/engineering/upper_engineering/starboard) -"cXZ" = ( -/obj/structure/sign/safety/maint{ - pixel_x = -17 +"cYo" = ( +/obj/structure/machinery/light/small{ + dir = 4 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_s) +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/s_bow) "cYu" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/command/lifeboat) +"cYN" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/turf/open/floor/almayer/plate, +/area/almayer/engineering/lower/workshop) "cYT" = ( /obj/structure/machinery/light{ dir = 8 @@ -28967,10 +17006,11 @@ id = "CIC Lockdown"; name = "\improper Combat Information Center Blast Door" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/lifeboat_pumps/south1) +"cZe" = ( +/turf/closed/wall/almayer/outer, +/area/almayer/maint/hull/upper/u_f_s) "cZh" = ( /obj/structure/window/framed/almayer, /obj/structure/machinery/door/poddoor/shutters/almayer/open{ @@ -28980,23 +17020,35 @@ }, /turf/open/floor/plating, /area/almayer/command/cichallway) -"cZm" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/aft_hallway) -"cZs" = ( -/turf/closed/wall/almayer/outer, -/area/almayer/shipboard/brig/chief_mp_office) -"cZJ" = ( -/obj/structure/machinery/door/airlock/almayer/maint{ - name = "\improper Core Hatch" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +"cZp" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/area/almayer/engineering/engine_core) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_a_p) +"cZq" = ( +/obj/item/tool/wet_sign, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/upper/u_f_s) +"cZB" = ( +/obj/structure/machinery/door/airlock/almayer/maint, +/turf/open/floor/almayer/test_floor4, +/area/almayer/hallways/lower/starboard_umbilical) +"cZI" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_m_p) +"cZO" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer, +/area/almayer/maint/hull/upper/u_f_p) "cZV" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/storage/fancy/cigarettes/wypacket, @@ -29027,49 +17079,48 @@ dir = 4; pixel_y = 4 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/west, /area/almayer/engineering/upper_engineering/port) -"cZZ" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "SE-out" +"dan" = ( +/obj/structure/surface/table/almayer, +/obj/item/tool/weldpack, +/obj/item/storage/toolbox/mechanical, +/obj/item/reagent_container/spray/cleaner, +/turf/open/floor/almayer/orange/east, +/area/almayer/maint/upper/u_a_s) +"daz" = ( +/turf/closed/wall/almayer/aicore/hull, +/area/almayer/command/airoom) +"daF" = ( +/obj/structure/machinery/power/apc/almayer{ + dir = 1 }, /turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/aft_hallway) -"dac" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/structure/machinery/door/poddoor/shutters/almayer{ - dir = 8; - id = "laddernortheast"; - name = "\improper North East Ladders Shutters" +/area/almayer/maint/hull/lower/l_f_p) +"daI" = ( +/obj/structure/machinery/door/airlock/almayer/secure/reinforced{ + name = "\improper Armourer's Workshop"; + req_access = null }, -/obj/structure/machinery/door/firedoor/border_only/almayer, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +/turf/open/floor/almayer/test_floor4, +/area/almayer/maint/upper/u_m_s) +"dbc" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 }, -/area/almayer/hallways/starboard_hallway) -"daj" = ( -/obj/structure/machinery/iv_drip, -/turf/open/floor/almayer{ - icon_state = "sterile_green_side" +/obj/structure/sign/safety/distribution_pipes{ + pixel_x = 32 }, -/area/almayer/shipboard/brig/surgery) -"daz" = ( -/turf/closed/wall/almayer/white/hull, -/area/almayer/command/airoom) +/turf/open/floor/almayer/red/southwest, +/area/almayer/hallways/upper/port) "dbe" = ( /obj/structure/largecrate/random/case/double, /obj/structure/machinery/camera/autoname/almayer{ dir = 1; name = "ship-grade camera" }, -/turf/open/floor/almayer{ - icon_state = "orange" - }, +/turf/open/floor/almayer/orange, /area/almayer/engineering/upper_engineering/port) "dbn" = ( /obj/structure/surface/table/almayer, @@ -29088,11 +17139,24 @@ /turf/open/floor/plating, /area/almayer/living/port_emb) "dbq" = ( -/turf/open/floor/almayer{ +/turf/open/floor/almayer/plating_striped/north, +/area/almayer/engineering/upper_engineering/port) +"dbs" = ( +/obj/structure/machinery/door/poddoor/almayer/open{ + id = "Brig Lockdown Shutters"; + name = "\improper Brig Lockdown Shutter" + }, +/obj/structure/machinery/door/airlock/almayer/security/glass/reinforced{ + closeOtherId = "brigmaint_s"; dir = 1; - icon_state = "plating_striped" + name = "\improper Brig Maintenance" }, -/area/almayer/engineering/upper_engineering/port) +/obj/structure/machinery/door/poddoor/almayer/open{ + id = "perma_lockdown_2"; + name = "\improper Perma Lockdown Shutter" + }, +/turf/open/floor/almayer/test_floor4, +/area/almayer/shipboard/brig/perma) "dbv" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/structure/machinery/prop/almayer/computer{ @@ -29106,10 +17170,7 @@ pixel_x = -6; pixel_y = 7 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/north, /area/almayer/engineering/port_atmos) "dbw" = ( /obj/structure/machinery/suit_storage_unit/compression_suit/uscm, @@ -29126,111 +17187,102 @@ /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/engineering/upper_engineering/starboard) +"dbX" = ( +/turf/open/floor/almayer/orange/east, +/area/almayer/maint/upper/mess) "dcd" = ( /obj/structure/bed/chair/comfy{ dir = 8 }, /turf/open/floor/almayer, /area/almayer/living/briefing) -"dci" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "redcorner" - }, -/area/almayer/shipboard/brig/main_office) "dck" = ( /obj/structure/bed/stool, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "green" - }, +/turf/open/floor/almayer/green/west, /area/almayer/living/grunt_rnr) "dcp" = ( /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/plating/plating_catwalk, /area/almayer/lifeboat_pumps/south2) -"dcP" = ( -/obj/structure/machinery/body_scanconsole{ - dir = 8 +"dcx" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 9 }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/port_umbilical) +"dcy" = ( +/turf/open/floor/almayer/red/north, +/area/almayer/shipboard/brig/perma) +"dcR" = ( +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/upper/fore_hallway) +"dcT" = ( +/obj/structure/pipes/vents/scrubber{ + dir = 1 }, -/area/almayer/shipboard/brig/surgery) -"dcS" = ( -/obj/structure/machinery/light/small{ +/turf/open/floor/almayer, +/area/almayer/maint/hull/upper/u_f_p) +"dcX" = ( +/obj/structure/machinery/light/small, +/obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/obj/structure/prop/invuln/overhead_pipe{ - dir = 4; - pixel_x = 12; - pixel_y = 13 - }, -/obj/structure/prop/invuln/overhead_pipe{ - dir = 4; - pixel_y = 13 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_a_p) +/turf/open/floor/almayer/plate, +/area/almayer/maint/upper/u_a_p) +"ddf" = ( +/obj/structure/machinery/portable_atmospherics/canister/air, +/turf/open/floor/almayer/cargo, +/area/almayer/engineering/lower/engine_core) "ddj" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/engineering/lower_engineering) +/obj/structure/bed/chair/bolted, +/turf/open/floor/almayer/red/northwest, +/area/almayer/shipboard/brig/interrogation) "ddk" = ( /obj/structure/surface/table/almayer, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, +/turf/open/floor/almayer/redfull, /area/almayer/living/briefing) +"ddw" = ( +/obj/structure/machinery/cm_vending/sorted/tech/comp_storage, +/obj/structure/sign/safety/terminal{ + pixel_x = -17 + }, +/turf/open/floor/almayer/plate, +/area/almayer/engineering/lower/workshop/hangar) "ddz" = ( /obj/structure/sign/safety/maint{ pixel_x = 32 }, /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/weapon_room) -"ddK" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "SE-out"; - pixel_x = 1 - }, -/obj/effect/decal/cleanable/blood/oil, -/obj/effect/decal/cleanable/blood/oil/streak, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/engineering/engine_core) -"ddN" = ( -/obj/structure/closet/secure_closet/guncabinet/red/armory_m39_submachinegun, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, -/area/almayer/squads/req) -"deb" = ( -/obj/structure/bed, -/obj/structure/machinery/flasher{ - id = "Perma 2"; - pixel_y = -24 +"ddL" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_aft_hallway) +"ddM" = ( +/obj/structure/disposalpipe/segment, +/turf/closed/wall/almayer, +/area/almayer/engineering/lower/workshop/hangar) +"ddO" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/structure/machinery/door/firedoor/border_only/almayer, +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/area/almayer/shipboard/brig/perma) +/turf/open/floor/almayer/test_floor4, +/area/almayer/hallways/upper/aft_hallway) "deg" = ( /obj/structure/platform_decoration{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "red" - }, +/turf/open/floor/almayer/red, /area/almayer/lifeboat_pumps/south2) +"deq" = ( +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_m_s) "deD" = ( /obj/structure/machinery/prop/almayer/CICmap{ pixel_x = -5 @@ -29238,14 +17290,13 @@ /obj/structure/surface/table/reinforced/black, /turf/open/floor/almayer, /area/almayer/command/cic) +"deF" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_m_s) "deH" = ( -/obj/item/device/radio/intercom{ - freerange = 1; - name = "General Listening Channel"; - pixel_y = -28 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/port_hallway) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/warden_office) "deT" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -29253,28 +17304,12 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "emerald" - }, +/turf/open/floor/almayer/emerald/north, /area/almayer/living/port_emb) "dfa" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/plating/plating_catwalk, /area/almayer/medical/morgue) -"dfc" = ( -/obj/structure/machinery/suit_storage_unit/compression_suit/uscm, -/obj/structure/sign/safety/airlock{ - pixel_y = -32 - }, -/obj/structure/sign/safety/hazard{ - pixel_x = 15; - pixel_y = -32 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/port_umbilical) "dfg" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22" @@ -29286,49 +17321,24 @@ pixel_x = -6; pixel_y = 24 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/engineering/upper_engineering/starboard) "dfk" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "greenfull" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/shipboard/brig/cells) -"dfp" = ( -/obj/structure/machinery/keycard_auth{ - pixel_y = 25 +"dfA" = ( +/obj/structure/machinery/alarm/almayer{ + dir = 1 }, -/turf/open/floor/almayer, -/area/almayer/shipboard/brig/chief_mp_office) +/turf/open/floor/almayer/blue/north, +/area/almayer/hallways/upper/midship_hallway) "dfC" = ( /obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "green" - }, +/turf/open/floor/almayer/green, /area/almayer/living/grunt_rnr) -"dfO" = ( -/obj/structure/machinery/medical_pod/bodyscanner{ - dir = 8 - }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, -/area/almayer/shipboard/brig/surgery) -"dfP" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/closet/secure_closet/guncabinet, -/obj/item/weapon/gun/rifle/l42a, -/obj/item/weapon/gun/rifle/l42a{ - pixel_y = 6 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_m_s) "dgg" = ( /obj/structure/machinery/camera/autoname/almayer{ dir = 4; @@ -29338,118 +17348,106 @@ dir = 1; icon_state = "pipe-c" }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/west, /area/almayer/command/computerlab) "dgl" = ( /obj/structure/reagent_dispensers/water_cooler, /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/gym) "dgx" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_18"; + pixel_y = 13 }, +/obj/structure/surface/table/almayer, +/turf/open/floor/almayer/red/west, /area/almayer/shipboard/brig/chief_mp_office) -"dgN" = ( -/obj/structure/surface/rack, -/obj/item/tool/shovel/etool{ - pixel_x = 6 +"dgI" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/obj/item/tool/shovel/etool, -/obj/item/tool/wirecutters, -/turf/open/floor/almayer{ - icon_state = "plate" +/turf/open/floor/prison/kitchen, +/area/almayer/living/cafeteria_officer) +"dha" = ( +/turf/open/floor/almayer/plate, +/area/almayer/command/combat_correspondent) +"dhd" = ( +/obj/structure/window/reinforced/ultra{ + pixel_y = -12 }, -/area/almayer/hull/lower_hull/l_m_s) -"dhQ" = ( -/obj/structure/sign/safety/terminal{ - pixel_x = -17 +/obj/structure/machinery/light{ + dir = 1 }, -/obj/structure/surface/table/almayer, -/obj/item/clipboard{ - pixel_x = -4 +/obj/structure/bed/chair/bolted, +/turf/open/floor/almayer/plating_striped, +/area/almayer/shipboard/brig/execution) +"dho" = ( +/obj/structure/machinery/alarm/almayer{ + dir = 1 }, -/obj/item/device/taperecorder{ - pixel_x = 3; - pixel_y = 3 +/obj/effect/step_trigger/clone_cleaner, +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + pixel_y = 1 }, -/obj/item/device/camera, -/turf/open/floor/almayer, -/area/almayer/command/corporateliason) +/turf/open/floor/almayer/red, +/area/almayer/hallways/upper/starboard) +"dhp" = ( +/obj/structure/sign/safety/hvac_old{ + pixel_x = 8; + pixel_y = -32 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_a_p) +"dhA" = ( +/obj/structure/largecrate/supply/generator, +/obj/structure/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/almayer/red/north, +/area/almayer/maint/upper/u_a_p) +"dhQ" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/port_umbilical) "dhR" = ( /obj/structure/machinery/door/poddoor/shutters/almayer/open{ dir = 4; id = "north_central_checkpoint"; name = "\improper Checkpoint Shutters" }, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, +/turf/open/floor/almayer/redfull, /area/almayer/living/briefing) -"dhU" = ( -/obj/structure/closet/emcloset, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/hallways/port_hallway) -"dhZ" = ( -/obj/structure/machinery/light/small{ - dir = 1 - }, -/obj/structure/sign/safety/hazard{ - pixel_y = 32 - }, -/obj/structure/sign/safety/airlock{ - pixel_x = 15; - pixel_y = 32 +"div" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +/obj/structure/machinery/door/poddoor/shutters/almayer{ + dir = 8; + id = "laddernortheast"; + name = "\improper North East Ladders Shutters" }, -/area/almayer/hallways/starboard_umbilical) +/turf/open/floor/almayer/test_floor4, +/area/almayer/hallways/lower/starboard_midship_hallway) "diw" = ( -/obj/structure/machinery/light{ - dir = 8 - }, -/obj/structure/bed/chair/comfy/delta, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/item/device/radio/intercom{ + freerange = 1; + name = "General Listening Channel"; + pixel_y = 28 }, -/area/almayer/living/briefing) +/turf/open/floor/almayer/blue/north, +/area/almayer/hallways/upper/fore_hallway) "diz" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/dropshiprear/lifeboat/blastdoor{ id_tag = "Boat1-D4"; linked_dock = "almayer-lifeboat1"; throw_dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/engineering/upper_engineering/port) -"diF" = ( -/obj/structure/pipes/standard/simple/visible{ - dir = 4 - }, -/obj/structure/sign/safety/fire_haz{ - pixel_y = -32 - }, -/obj/structure/sign/safety/hazard{ - pixel_x = 14; - pixel_y = -32 - }, -/turf/open/floor/almayer{ - icon_state = "orange" - }, -/area/almayer/engineering/lower_engineering) "diJ" = ( /obj/structure/window/reinforced{ dir = 8; @@ -29459,80 +17457,8 @@ dir = 4; health = 80 }, -/turf/open/floor/almayer{ - icon_state = "cargo_arrow" - }, +/turf/open/floor/almayer/cargo_arrow, /area/almayer/squads/alpha_bravo_shared) -"diM" = ( -/obj/structure/bed/chair{ - dir = 8 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/command/combat_correspondent) -"djm" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer, -/area/almayer/shipboard/brig/execution) -"djp" = ( -/obj/structure/closet/crate, -/obj/item/stack/sheet/mineral/plastic{ - amount = 5 - }, -/obj/item/stack/sheet/glass{ - amount = 50; - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/stack/sheet/metal{ - amount = 50 - }, -/obj/item/stack/sheet/plasteel{ - amount = 30; - pixel_x = 4; - pixel_y = 4 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/engineering/engineering_workshop/hangar) -"djL" = ( -/obj/structure/machinery/light{ - dir = 4 - }, -/obj/structure/flora/pottedplant{ - icon_state = "pottedplant_10" - }, -/turf/open/floor/wood/ship, -/area/almayer/command/corporateliason) -"djM" = ( -/obj/structure/surface/table/almayer, -/obj/structure/machinery/reagentgrinder/industrial{ - pixel_y = 8 - }, -/turf/open/floor/almayer{ - icon_state = "orange" - }, -/area/almayer/engineering/engineering_workshop/hangar) -"djN" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, -/area/almayer/engineering/upper_engineering/port) "djQ" = ( /obj/item/device/radio/intercom{ freerange = 1; @@ -29548,47 +17474,19 @@ pixel_x = 32; pixel_y = 7 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/shipboard/starboard_point_defense) "dka" = ( /obj/structure/machinery/optable, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/medical/operating_room_four) "dkj" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, /obj/structure/surface/table/almayer, /obj/item/device/radio/intercom/alamo{ layer = 2.9 }, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, +/turf/open/floor/almayer/redfull, /area/almayer/living/offices/flight) -"dkn" = ( -/obj/structure/machinery/cm_vending/clothing/dress{ - density = 0; - pixel_y = 16 - }, -/obj/structure/machinery/light{ - dir = 8 - }, -/obj/structure/machinery/door_control{ - id = "bot_uniforms"; - name = "Uniform Vendor Lockdown"; - pixel_x = -24; - pixel_y = 18; - req_access_txt = "31" - }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/command/cic) "dkq" = ( /obj/structure/machinery/door_control{ id = "hangarentrancenorth"; @@ -29601,20 +17499,14 @@ icon_state = "SE-out"; pixel_x = 1 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/almayer/red/west, /area/almayer/living/briefing) -"dkH" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 6 - }, -/obj/structure/bed/chair/comfy/delta, -/turf/open/floor/almayer{ - icon_state = "bluefull" +"dkz" = ( +/obj/structure/pipes/vents/scrubber/no_boom{ + dir = 4 }, -/area/almayer/living/briefing) +/turf/open/floor/almayer/aicore/no_build/ai_silver/west, +/area/almayer/command/airoom) "dkO" = ( /obj/effect/step_trigger/teleporter_vector{ name = "Almayer_Down2"; @@ -29627,67 +17519,49 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/plating/almayer{ - allow_construction = 0 - }, +/turf/open/floor/plating/almayer/no_build, /area/almayer/stair_clone/upper) -"dkS" = ( -/obj/structure/machinery/shower, -/obj/structure/window/reinforced/tinted{ - dir = 8 - }, -/obj/structure/machinery/door/window/tinted{ - dir = 2 - }, -/obj/item/clothing/mask/cigarette/weed, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/engineering/upper_engineering/port) +"dkP" = ( +/turf/open/floor/almayer/orangecorner/east, +/area/almayer/hallways/lower/starboard_midship_hallway) +"dkX" = ( +/obj/structure/bed/chair/comfy/delta, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer/bluefull, +/area/almayer/living/briefing) "dll" = ( /obj/structure/surface/table/almayer, -/turf/open/floor/almayer{ - icon_state = "orangefull" - }, +/turf/open/floor/almayer/orangefull, /area/almayer/living/briefing) -"dlp" = ( -/obj/structure/largecrate/supply/supplies/water, -/obj/item/toy/deck{ - pixel_y = 12 - }, -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_f_p) -"dls" = ( -/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ - pixel_x = -30 - }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, -/area/almayer/shipboard/brig/surgery) -"dlN" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +"dlo" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" }, -/area/almayer/lifeboat_pumps/north1) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/upper/starboard) +"dlT" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/almayer/mono, +/area/almayer/hallways/upper/aft_hallway) "dmg" = ( /obj/structure/machinery/vending/coffee, /obj/structure/sign/safety/coffee{ pixel_x = 8; pixel_y = 32 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/northeast, /area/almayer/command/cichallway) -"dmv" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "blue" +"dmr" = ( +/obj/structure/transmitter{ + name = "Brig Offices Telephone"; + phone_category = "MP Dept."; + phone_id = "Brig Main Offices"; + pixel_y = 32 }, +/turf/open/floor/almayer/red/north, +/area/almayer/shipboard/brig/starboard_hallway) +"dmv" = ( +/turf/open/floor/almayer/blue/west, /area/almayer/command/cichallway) "dmA" = ( /turf/open/floor/almayer, @@ -29696,15 +17570,16 @@ /obj/structure/surface/rack, /obj/item/mortar_shell/incendiary, /obj/item/mortar_shell/incendiary, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/squads/req) -"dmQ" = ( -/turf/open/floor/almayer{ - icon_state = "plate" +"dmF" = ( +/obj/structure/machinery/disposal, +/obj/structure/disposalpipe/trunk, +/obj/structure/machinery/light{ + dir = 8 }, -/area/almayer/hull/upper_hull/u_a_s) +/turf/open/floor/almayer/green/west, +/area/almayer/squads/req) "dmR" = ( /obj/effect/glowshroom, /obj/effect/glowshroom{ @@ -29723,26 +17598,28 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/port_emb) -"dnk" = ( -/obj/structure/largecrate/supply/generator, -/obj/item/reagent_container/food/drinks/bottle/whiskey{ - layer = 2.9; - pixel_x = -10; - pixel_y = 3 +"dmZ" = ( +/obj/structure/machinery/door/airlock/almayer/generic{ + dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/structure/machinery/door/poddoor/almayer/open{ + id = "courtyard_cells"; + name = "\improper Courtyard Lockdown Shutter" }, -/area/almayer/hull/upper_hull/u_a_p) -"dnm" = ( -/obj/structure/machinery/cm_vending/sorted/cargo_guns/intelligence_officer, -/obj/structure/machinery/light{ - dir = 8 +/obj/structure/machinery/door/poddoor/almayer/locked{ + id = "Cell 1"; + name = "\improper Courtyard Divider" }, -/turf/open/floor/almayer{ - icon_state = "silverfull" +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 }, -/area/almayer/command/computerlab) +/turf/open/floor/almayer/test_floor4, +/area/almayer/shipboard/brig/cells) +"dnh" = ( +/obj/structure/surface/rack, +/obj/item/book/manual/orbital_cannon_manual, +/turf/open/floor/almayer/red/northwest, +/area/almayer/maint/upper/u_a_p) "dnC" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 6 @@ -29751,55 +17628,37 @@ icon_state = "E"; pixel_x = 1 }, -/turf/open/floor/almayer{ - icon_state = "sterile_green_corner" - }, +/turf/open/floor/almayer/sterile_green_corner, /area/almayer/medical/hydroponics) "dnE" = ( /obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "orange" - }, +/turf/open/floor/almayer/orange, /area/almayer/squads/bravo) "dnH" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/engineering/upper_engineering/starboard) -"dnJ" = ( -/obj/structure/flora/pottedplant{ - icon_state = "pottedplant_22" - }, +"dnP" = ( /obj/structure/machinery/camera/autoname/almayer{ - name = "ship-grade camera" - }, -/obj/effect/decal/warning_stripes{ - icon_state = "NW-out"; - pixel_y = 1 - }, -/turf/open/floor/almayer{ dir = 1; - icon_state = "red" + name = "ship-grade camera" }, -/area/almayer/command/lifeboat) +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_midship_hallway) "dnS" = ( /obj/structure/safe, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/north, /area/almayer/command/securestorage) -"dnX" = ( -/obj/structure/disposalpipe/segment{ +"dnZ" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/obj/structure/disposaloutlet, +/obj/structure/disposalpipe/trunk{ dir = 4 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_s) -"dod" = ( -/obj/structure/closet/crate/trashcart, -/turf/open/floor/almayer, -/area/almayer/engineering/upper_engineering/port) +/turf/open/floor/almayer/plating_striped/east, +/area/almayer/maint/hull/lower/l_a_p) "dof" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/engidoor{ name = "\improper Upper Engineering" @@ -29807,27 +17666,14 @@ /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/engineering/upper_engineering) -"doj" = ( -/obj/structure/machinery/medical_pod/sleeper{ - dir = 8 - }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, -/area/almayer/shipboard/brig/surgery) "doJ" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, /obj/structure/bed/stool, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "green" - }, +/turf/open/floor/almayer/green/west, /area/almayer/living/grunt_rnr) "doP" = ( /obj/structure/disposaloutlet{ @@ -29842,10 +17688,16 @@ /obj/structure/disposalpipe/trunk{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/squads/req) +"doU" = ( +/obj/structure/surface/rack, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/engineering/upper_engineering/port) +"doX" = ( +/obj/structure/machinery/light, +/turf/open/floor/almayer/red/southwest, +/area/almayer/hallways/upper/aft_hallway) "dpo" = ( /obj/structure/machinery/light{ dir = 1 @@ -29857,60 +17709,48 @@ pixel_x = 14; pixel_y = 32 }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/lifeboat_pumps/north1) -"dpy" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 +"dpp" = ( +/obj/effect/projector{ + name = "Almayer_AresUp"; + vector_x = -96; + vector_y = 65 }, -/obj/structure/bed/chair{ +/obj/structure/platform{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/structure/stairs{ + dir = 1; + icon_state = "ramptop" + }, +/turf/open/floor/almayer/aicore/no_build, +/area/almayer/command/airoom) +"dpA" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/area/almayer/hull/lower_hull/l_f_s) +/turf/open/floor/almayer/plate, +/area/almayer/hallways/lower/starboard_aft_hallway) "dpO" = ( /obj/structure/machinery/cm_vending/clothing/marine/delta{ density = 0; pixel_y = 16 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "cargo_arrow" - }, +/turf/open/floor/almayer/cargo_arrow/north, /area/almayer/squads/delta) -"dpV" = ( -/obj/structure/machinery/firealarm{ - dir = 4; - pixel_x = 24 - }, -/turf/open/floor/wood/ship, -/area/almayer/command/corporateliason) "dqb" = ( /obj/structure/sign/safety/security{ pixel_x = -16 }, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/south1) -"dqd" = ( -/obj/structure/largecrate/random/secure, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_s) "dqg" = ( /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/north, /area/almayer/engineering/upper_engineering/starboard) "dqj" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "redcorner" - }, +/turf/open/floor/almayer/redcorner/east, /area/almayer/command/lifeboat) "dqw" = ( /turf/closed/wall/almayer/outer, @@ -29920,9 +17760,7 @@ /obj/structure/bed/chair/comfy/bravo{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "orangefull" - }, +/turf/open/floor/almayer/orangefull, /area/almayer/living/briefing) "dqE" = ( /obj/structure/machinery/door/firedoor/border_only/almayer{ @@ -29933,104 +17771,34 @@ /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper Conference and Office Area" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/living/offices) -"dqH" = ( -/obj/structure/surface/table/almayer, -/obj/item/stack/sheet/glass{ - amount = 20; - pixel_x = 3; - pixel_y = 3 +"drj" = ( +/obj/structure/window/reinforced{ + dir = 4; + health = 80 }, -/obj/item/weapon/dart, -/obj/item/weapon/dart, -/obj/item/weapon/dart, -/obj/item/weapon/dart/green, -/obj/item/weapon/dart/green, -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_f_p) -"dqN" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/structure/disposalpipe/segment, -/turf/open/floor/almayer{ - icon_state = "green" +/obj/structure/window/reinforced{ + dir = 8 }, -/area/almayer/hallways/aft_hallway) -"dqQ" = ( -/obj/structure/closet/secure_closet/fridge/groceries, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/living/grunt_rnr) -"dqV" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/machinery/vending/coffee, -/obj/structure/machinery/light{ - dir = 1 - }, -/obj/structure/machinery/door_control{ - id = "perma_lockdown"; - name = "\improper Perma Cells Lockdown"; - pixel_y = 24; - req_access_txt = "3" - }, -/obj/structure/sign/safety/coffee{ - pixel_y = 32 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, -/area/almayer/shipboard/brig/perma) -"drj" = ( -/obj/structure/window/reinforced{ - dir = 4; - health = 80 - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "cargo_arrow" - }, -/area/almayer/squads/charlie_delta_shared) -"drk" = ( -/obj/structure/closet, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "silver" - }, -/area/almayer/engineering/port_atmos) -"drp" = ( -/obj/structure/toilet{ - dir = 8; - layer = 2.9; - pixel_y = 8 - }, -/obj/structure/window{ - layer = 2.95; - pixel_y = -2 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/living/commandbunks) -"drt" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/port_hallway) -"drT" = ( -/obj/structure/machinery/camera/autoname/almayer{ - dir = 4; - name = "ship-grade camera" +/turf/open/floor/almayer/cargo_arrow/north, +/area/almayer/squads/charlie_delta_shared) +"drk" = ( +/obj/structure/closet, +/turf/open/floor/almayer/silver/north, +/area/almayer/engineering/port_atmos) +"dro" = ( +/obj/structure/surface/table/almayer, +/obj/effect/spawner/random/powercell, +/obj/effect/spawner/random/powercell, +/obj/effect/spawner/random/bomb_supply, +/obj/effect/spawner/random/bomb_supply, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_m_s) +"drT" = ( +/obj/structure/machinery/camera/autoname/almayer{ + dir = 4; + name = "ship-grade camera" }, /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -30043,93 +17811,52 @@ /obj/item/storage/fancy/vials, /obj/item/storage/fancy/vials, /obj/item/storage/fancy/vials, -/turf/open/floor/almayer{ - icon_state = "sterile_green" - }, +/turf/open/floor/almayer/sterile_green, /area/almayer/medical/hydroponics) -"dsk" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" - }, -/area/almayer/hallways/stern_hallway) -"dsu" = ( -/obj/structure/largecrate/supply/supplies/tables_racks, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "red" - }, -/area/almayer/hull/upper_hull/u_a_p) -"dsw" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 2 +"drU" = ( +/obj/structure/machinery/door_control{ + id = "ARES JoeCryo"; + name = "ARES WorkingJoe Bay Shutters"; + req_one_access_txt = "91;92"; + pixel_x = 24 }, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/structure/machinery/camera/autoname/almayer/containment/ares{ + autoname = 0; + c_tag = "AI - Comms" }, -/area/almayer/shipboard/brig/cryo) -"dtv" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "SE-out" +/turf/open/floor/almayer/aicore/no_build, +/area/almayer/command/airoom) +"dsA" = ( +/obj/effect/decal/cleanable/blood, +/turf/open/floor/almayer/redcorner/west, +/area/almayer/shipboard/brig/execution) +"dsY" = ( +/turf/open/floor/almayer/orangecorner, +/area/almayer/hallways/lower/starboard_midship_hallway) +"dtu" = ( +/obj/structure/machinery/portable_atmospherics/canister/air, +/obj/structure/machinery/light/small{ + dir = 1 }, -/turf/open/floor/almayer, -/area/almayer/command/lifeboat) +/turf/open/floor/almayer/cargo, +/area/almayer/maint/upper/u_a_s) "dtH" = ( /obj/structure/bed/chair/comfy{ dir = 8 }, /turf/open/floor/almayer, /area/almayer/hallways/hangar) -"dtM" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "green" - }, -/area/almayer/hallways/aft_hallway) -"dtN" = ( -/obj/structure/closet/emcloset, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_f_p) "dtZ" = ( /obj/structure/platform_decoration{ dir = 4 }, /turf/open/floor/almayer, /area/almayer/living/chapel) -"dum" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/structure/machinery/door/airlock/almayer/command/reinforced{ - id_tag = "cic_exterior"; - name = "\improper Combat Information Center" - }, -/obj/structure/machinery/door/poddoor/almayer/open{ - dir = 4; - id = "CIC Lockdown"; - name = "\improper Combat Information Center Blast Door" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/command/cic) "duo" = ( /obj/structure/machinery/power/apc/almayer{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/almayer/living/grunt_rnr) "dut" = ( /obj/structure/machinery/door_control{ @@ -30140,9 +17867,7 @@ pixel_x = 28; pixel_y = 23 }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/medical/lower_medical_medbay) "duv" = ( /obj/structure/pipes/vents/scrubber{ @@ -30155,21 +17880,20 @@ /obj/item/trash/USCMtray{ pixel_x = 5 }, -/turf/open/floor/almayer{ - icon_state = "emeraldfull" - }, +/turf/open/floor/almayer/emeraldfull, /area/almayer/living/briefing) -"dux" = ( -/turf/open/floor/almayer{ - icon_state = "mono" +"duz" = ( +/obj/structure/mirror{ + pixel_y = 32 }, -/area/almayer/living/starboard_garden) +/obj/structure/sink{ + pixel_y = 24 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/engineering/upper_engineering/port) "duF" = ( /obj/structure/closet/secure_closet/personal, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/north, /area/almayer/engineering/upper_engineering/port) "duT" = ( /obj/structure/bed, @@ -30177,59 +17901,53 @@ id = "Cell 2"; pixel_x = -24 }, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/almayer/red/southwest, /area/almayer/shipboard/brig/cells) "duV" = ( /obj/effect/decal/warning_stripes{ icon_state = "W"; pixel_x = -1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/alpha) "dvg" = ( /obj/structure/reagent_dispensers/fueltank/custom, /obj/structure/sign/safety/chem_lab{ pixel_x = -17 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_corner" - }, +/turf/open/floor/almayer/sterile_green_corner/west, /area/almayer/medical/chemistry) "dvl" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 1 }, /obj/structure/disposalpipe/segment, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "silvercorner" - }, +/turf/open/floor/almayer/silvercorner/east, /area/almayer/command/cichallway) "dvs" = ( /obj/structure/machinery/cm_vending/clothing/vehicle_crew{ density = 0; pixel_y = 16 }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/living/cryo_cells) -"dvF" = ( -/obj/structure/surface/table/almayer, -/obj/structure/machinery/computer/cameras/wooden_tv/ot{ - pixel_y = 4 +"dvD" = ( +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_f_s) +"dvZ" = ( +/obj/structure/machinery/door/airlock/almayer/maint, +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/turf/open/floor/almayer, -/area/almayer/engineering/engineering_workshop/hangar) -"dvT" = ( -/turf/closed/wall/almayer, -/area/almayer/shipboard/brig/general_equipment) +/turf/open/floor/almayer/test_floor4, +/area/almayer/maint/upper/mess) +"dwj" = ( +/obj/effect/step_trigger/clone_cleaner, +/obj/structure/machinery/light{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/starboard_fore_hallway) "dwl" = ( /obj/structure/machinery/light, /turf/open/floor/almayer, @@ -30242,14 +17960,18 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/medical/medical_science) +"dwu" = ( +/obj/structure/machinery/door/airlock/almayer/maint{ + dir = 1 + }, +/turf/open/floor/almayer/test_floor4, +/area/almayer/maint/upper/u_f_s) "dwA" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/sign/safety/bathunisex{ pixel_x = 32 }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/medical/upper_medical) "dwI" = ( /obj/structure/machinery/door/airlock/almayer/engineering{ @@ -30257,85 +17979,64 @@ name = "\improper Engineering North Hall" }, /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/engineering/upper_engineering/starboard) -"dxm" = ( -/obj/structure/window/framed/almayer, /obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 + dir = 1 }, -/turf/open/floor/plating, -/area/almayer/shipboard/brig/general_equipment) +/turf/open/floor/almayer/test_floor4, +/area/almayer/engineering/upper_engineering/starboard) "dxu" = ( /obj/structure/sink{ dir = 1; pixel_y = -10 }, -/turf/open/floor/almayer{ - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side, /area/almayer/medical/operating_room_four) "dxv" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "silvercorner" - }, +/turf/open/floor/almayer/silvercorner/west, /area/almayer/command/computerlab) -"dxC" = ( -/obj/structure/platform{ - dir = 1 - }, -/obj/structure/largecrate/random/case/double, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_s) "dxF" = ( /obj/effect/step_trigger/teleporter_vector{ name = "Almayer_Down1"; vector_x = 19; vector_y = -98 }, -/turf/open/floor/almayer{ - allow_construction = 0 - }, +/turf/open/floor/almayer/no_build, /area/almayer/stair_clone/upper) +"dxJ" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/almayer/plate, +/area/almayer/hallways/lower/port_fore_hallway) "dxK" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 8 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/almayer/red/north, /area/almayer/command/lifeboat) -"dxL" = ( -/obj/structure/sign/safety/fire_haz{ - pixel_x = 8; - pixel_y = -32 - }, -/obj/structure/reagent_dispensers/ethanoltank{ - anchored = 1 - }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/engineering/engineering_workshop/hangar) "dxT" = ( -/obj/structure/machinery/light{ - dir = 4 +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/disposalpipe/segment, +/obj/structure/sign/safety/rewire{ + pixel_x = 32 }, -/obj/structure/bed/chair{ - dir = 8; - pixel_y = 3 +/turf/open/floor/almayer, +/area/almayer/engineering/lower/workshop/hangar) +"dya" = ( +/obj/structure/machinery/door/poddoor/almayer/locked{ + dir = 2; + id = "Perma 2"; + name = "\improper cell shutter" }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" +/obj/structure/machinery/door/airlock/almayer/security/glass/reinforced{ + dir = 2; + name = "\improper Isolation Cell" }, -/area/almayer/shipboard/brig/lobby) +/turf/open/floor/almayer/test_floor4, +/area/almayer/shipboard/brig/perma) "dyb" = ( /obj/structure/machinery/smartfridge/chemistry, /obj/item/device/radio/intercom{ @@ -30343,9 +18044,7 @@ name = "General Listening Channel"; pixel_y = 28 }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/medical/medical_science) "dyd" = ( /obj/structure/bed/chair/office/dark{ @@ -30354,16 +18053,28 @@ /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/briefing) +"dyj" = ( +/obj/structure/closet/secure_closet/commander, +/obj/item/clothing/suit/storage/marine/light/vest, +/obj/item/device/whistle, +/obj/item/device/megaphone, +/obj/item/device/radio, +/obj/item/clothing/shoes/laceup, +/turf/open/floor/wood/ship, +/area/almayer/living/commandbunks) "dyp" = ( /obj/structure/machinery/ares/cpu, -/turf/open/floor/almayer/no_build{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/no_build/test_floor4, /area/almayer/command/airoom) +"dyq" = ( +/obj/structure/machinery/suit_storage_unit/compression_suit/uscm, +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/turf/open/floor/almayer/plate, +/area/almayer/hallways/lower/starboard_umbilical) "dyx" = ( /obj/structure/machinery/door/poddoor/shutters/almayer{ dir = 2; @@ -30376,61 +18087,66 @@ /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/almayer/squads/req) -"dyF" = ( -/obj/structure/pipes/vents/pump{ - dir = 8 - }, -/obj/structure/sign/safety/bathunisex{ - pixel_x = 8; - pixel_y = -32 - }, -/obj/structure/machinery/door_control/cl/quarter/backdoor{ - pixel_x = 25 - }, -/turf/open/floor/wood/ship, -/area/almayer/command/corporateliason) "dyK" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/west, /area/almayer/engineering/ce_room) -"dzF" = ( -/obj/structure/machinery/door/poddoor/shutters/almayer{ +"dzp" = ( +/turf/open/floor/almayer, +/area/almayer/command/corporateliaison) +"dzt" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "S"; + layer = 3.3 + }, +/obj/structure/machinery/camera/autoname/almayer/containment/ares{ dir = 8; - id = "laddernortheast"; - name = "\improper North East Ladders Shutters" + autoname = 0; + c_tag = "AI - Secondary Processors" }, -/obj/structure/machinery/door/firedoor/border_only/almayer, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +/turf/open/floor/almayer/aicore/no_build/ai_floor2, +/area/almayer/command/airoom) +"dzG" = ( +/obj/structure/reagent_dispensers/peppertank{ + pixel_y = 26 }, -/area/almayer/hallways/starboard_hallway) -"dAb" = ( -/obj/structure/largecrate/random/barrel/blue, -/turf/open/floor/almayer{ - icon_state = "plate" +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/general_equipment) +"dzX" = ( +/obj/structure/sign/safety/water{ + pixel_x = -17 }, -/area/almayer/hull/upper_hull/u_f_p) -"dAi" = ( -/obj/structure/sign/nosmoking_2{ - pixel_x = 32 +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_a_p) +"dAl" = ( +/obj/item/paper_bin/wy, +/obj/structure/surface/table/woodentable/fancy, +/obj/item/tool/pen/clicky, +/obj/item/tool/pen/clicky, +/obj/structure/machinery/status_display{ + pixel_x = -32 }, -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 +/obj/item/desk_bell{ + anchored = 1; + pixel_x = -8; + pixel_y = 8 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +/turf/open/floor/carpet, +/area/almayer/command/corporateliaison) +"dAm" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/area/almayer/lifeboat_pumps/north1) +/turf/open/floor/almayer/plate, +/area/almayer/hallways/lower/starboard_midship_hallway) "dAq" = ( /obj/structure/machinery/door/firedoor/border_only/almayer, /obj/structure/disposalpipe/segment{ @@ -30439,18 +18155,21 @@ /obj/structure/machinery/door/airlock/multi_tile/almayer/marine/bravo{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/squads/bravo) -"dAO" = ( -/obj/structure/machinery/light{ - dir = 8 +"dAA" = ( +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12 }, -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "plate" +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_m_s) +"dAQ" = ( +/obj/structure/surface/table/almayer, +/obj/structure/machinery/computer/emails{ + dir = 1 }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer/redfull, /area/almayer/living/briefing) "dAX" = ( /obj/structure/machinery/camera/autoname/almayer{ @@ -30460,19 +18179,26 @@ /obj/structure/sign/safety/commline_connection{ pixel_x = -17 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/command/cic) +"dBg" = ( +/obj/structure/stairs{ + dir = 1 + }, +/obj/effect/projector{ + name = "Almayer_Up4"; + vector_x = -19; + vector_y = 104 + }, +/obj/structure/blocker/forcefield/multitile_vehicles, +/turf/open/floor/plating/almayer/no_build, +/area/almayer/hallways/lower/port_midship_hallway) "dBj" = ( /obj/effect/decal/warning_stripes{ icon_state = "E"; pixel_x = 1 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/east, /area/almayer/medical/hydroponics) "dBp" = ( /obj/structure/machinery/camera/autoname/almayer{ @@ -30483,29 +18209,65 @@ /area/almayer/lifeboat_pumps/south1) "dBs" = ( /obj/structure/machinery/cm_vending/clothing/dress, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/command/cic) "dBG" = ( /obj/structure/machinery/vending/snack, -/turf/open/floor/almayer{ - icon_state = "orangefull" - }, +/turf/open/floor/almayer/orangefull, /area/almayer/engineering/upper_engineering) "dBH" = ( /obj/structure/window/framed/almayer/white, /turf/open/floor/plating, /area/almayer/medical/lower_medical_medbay) +"dBI" = ( +/obj/structure/surface/table/almayer, +/obj/item/trash/USCMtray{ + pixel_y = 4 + }, +/obj/item/trash/USCMtray{ + pixel_y = 6 + }, +/obj/item/trash/USCMtray{ + pixel_y = 8 + }, +/obj/item/trash/USCMtray{ + pixel_y = 10 + }, +/obj/item/device/flashlight/lamp{ + layer = 3.3; + pixel_x = 15 + }, +/turf/open/floor/almayer/emeraldfull, +/area/almayer/living/briefing) "dBO" = ( /obj/structure/pipes/vents/pump{ dir = 8; id_tag = "mining_outpost_pump" }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/medical/operating_room_one) +"dBR" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SE-out" + }, +/obj/structure/machinery/light, +/obj/structure/machinery/cm_vending/sorted/tech/electronics_storage{ + req_access = null; + req_one_access = null; + req_one_access_txt = "7;23;27;102" + }, +/turf/open/floor/almayer/silver/southeast, +/area/almayer/hallways/lower/repair_bay) +"dBS" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W"; + layer = 2.5 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 10 + }, +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/execution) "dCe" = ( /obj/structure/machinery/cryopod{ pixel_y = 6 @@ -30518,26 +18280,8 @@ unacidable = 1; unslashable = 1 }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/shipboard/brig/cells) -"dCh" = ( -/obj/structure/prop/invuln/pipe_water, -/obj/structure/prop/invuln/overhead_pipe{ - dir = 4; - pixel_x = -12; - pixel_y = 13 - }, -/obj/structure/prop/invuln/overhead_pipe{ - dir = 4; - pixel_x = -12; - pixel_y = 13 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_m_s) "dCr" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -30545,14 +18289,6 @@ /obj/structure/surface/table/reinforced/black, /turf/open/floor/carpet, /area/almayer/command/cichallway) -"dCt" = ( -/obj/structure/surface/rack, -/obj/item/book/manual/orbital_cannon_manual, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "red" - }, -/area/almayer/hull/upper_hull/u_a_p) "dCx" = ( /obj/structure/disposalpipe/segment, /obj/structure/flora/pottedplant{ @@ -30563,10 +18299,15 @@ dir = 4; pixel_x = 24 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/command/cichallway) +"dCz" = ( +/obj/structure/surface/table/almayer, +/obj/item/tool/wrench{ + pixel_y = 2 + }, +/turf/open/floor/plating, +/area/almayer/maint/lower/constr) "dCD" = ( /obj/structure/sign/nosmoking_2{ pixel_x = 32 @@ -30574,9 +18315,7 @@ /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 2 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/lifeboat_pumps/south1) "dCK" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -30584,36 +18323,17 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/command/cichallway) -"dCP" = ( -/obj/structure/surface/table/reinforced/almayer_B, -/obj/item/storage/box/lights/tubes{ - pixel_x = -4; - pixel_y = 3 - }, -/obj/effect/decal/cleanable/ash{ - pixel_y = 19 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_p) -"dCS" = ( -/obj/structure/sign/safety/rad_shield{ - pixel_x = 32 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" - }, -/area/almayer/engineering/engine_core) +"dCM" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/manifold/fourway/hidden/supply, +/turf/open/floor/almayer/plate, +/area/almayer/hallways/lower/port_aft_hallway) "dDp" = ( /obj/effect/decal/warning_stripes{ icon_state = "W"; layer = 3.3 }, -/turf/open/floor/almayer/no_build{ - icon_state = "tcomms" - }, +/turf/open/floor/almayer/aicore/glowing/no_build, /area/almayer/command/airoom) "dDt" = ( /obj/structure/toilet{ @@ -30629,15 +18349,10 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/port_emb) -"dDC" = ( -/obj/structure/machinery/light/small{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_f_s) +"dDJ" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/stern) "dDL" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/research/main_terminal{ @@ -30646,19 +18361,22 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/west, /area/almayer/medical/upper_medical) -"dDQ" = ( +"dDM" = ( +/obj/effect/decal/cleanable/blood/oil, +/obj/structure/machinery/light{ + dir = 8 + }, /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_f_p) +/turf/open/floor/almayer/orange/west, +/area/almayer/engineering/lower/workshop/hangar) +"dDT" = ( +/obj/structure/largecrate/random/case/small, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/stern) "dEm" = ( /obj/structure/machinery/power/apc/almayer, /obj/effect/decal/warning_stripes{ @@ -30669,10 +18387,7 @@ pixel_x = 1 }, /obj/structure/reagent_dispensers/fueltank/custom, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "sterile_green_corner" - }, +/turf/open/floor/almayer/sterile_green_corner/east, /area/almayer/medical/containment/cell) "dEn" = ( /obj/structure/machinery/firealarm{ @@ -30680,152 +18395,168 @@ }, /turf/open/floor/almayer, /area/almayer/command/lifeboat) +"dEo" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer/plating/northeast, +/area/almayer/hallways/lower/vehiclehangar) +"dEp" = ( +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/lower/cryo_cells) "dEt" = ( /obj/structure/machinery/door/airlock/almayer/engineering{ dir = 2; name = "\improper Engineering South Hall" }, /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 1 }, +/turf/open/floor/almayer/test_floor4, /area/almayer/engineering/upper_engineering/port) -"dEC" = ( -/obj/structure/sign/safety/escapepod{ - pixel_x = 8; - pixel_y = 32 +"dEG" = ( +/obj/structure/machinery/light{ + unacidable = 1; + unslashable = 1 + }, +/obj/structure/closet/secure_closet/brig, +/turf/open/floor/almayer/red, +/area/almayer/shipboard/brig/processing) +"dEJ" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/almayer/cargo, +/area/almayer/lifeboat_pumps/north2) +"dEK" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/port_midship_hallway) +"dEL" = ( +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 1 }, -/turf/open/floor/almayer{ +/obj/structure/disposalpipe/segment{ dir = 4; - icon_state = "greencorner" + icon_state = "pipe-c" }, -/area/almayer/hallways/starboard_hallway) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/port_aft_hallway) "dEQ" = ( /obj/structure/surface/table/almayer, /obj/item/reagent_container/food/condiment/hotsauce/tabasco, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, +/turf/open/floor/almayer/redfull, /area/almayer/living/briefing) -"dEV" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 +"dEX" = ( +/obj/structure/closet/secure_closet/guncabinet/riot_control, +/obj/item/weapon/shield/riot, +/obj/item/weapon/shield/riot, +/obj/item/weapon/shield/riot, +/obj/structure/machinery/light{ + dir = 1 }, -/obj/structure/machinery/light, /turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_p) +/area/almayer/shipboard/brig/armory) "dFk" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "redcorner" - }, +/turf/open/floor/almayer/redcorner/west, /area/almayer/command/lifeboat) -"dFC" = ( -/obj/structure/machinery/light{ - dir = 1 +"dFl" = ( +/obj/structure/sign/safety/security{ + pixel_x = 15; + pixel_y = 32 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/shipboard/brig/cryo) +/obj/structure/sign/safety/restrictedarea{ + pixel_y = 32 + }, +/turf/open/floor/almayer/red/north, +/area/almayer/shipboard/brig/starboard_hallway) "dFF" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_21" }, /turf/open/floor/wood/ship, /area/almayer/shipboard/sea_office) -"dFR" = ( -/turf/open/floor/almayer{ - dir = 9; - icon_state = "silver" - }, -/area/almayer/command/cichallway) -"dFV" = ( -/obj/structure/surface/table/almayer, -/obj/structure/machinery/cell_charger, -/obj/item/cell/apc, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_p) -"dGc" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - icon_state = "plate" +"dFL" = ( +/obj/structure/sign/safety/hvac_old{ + pixel_x = 8; + pixel_y = -32 }, -/area/almayer/hull/upper_hull/u_f_p) -"dGl" = ( -/obj/effect/step_trigger/teleporter_vector{ - name = "Almayer_AresUp"; - vector_x = -97; - vector_y = 65 +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_a_p) +"dFM" = ( +/obj/structure/machinery/light{ + dir = 8 }, -/obj/structure/platform{ +/turf/open/floor/almayer/plate, +/area/almayer/hallways/lower/vehiclehangar) +"dFN" = ( +/obj/structure/pipes/standard/manifold/hidden/supply{ dir = 8 }, -/obj/structure/stairs{ - dir = 1 +/obj/structure/disposalpipe/junction{ + dir = 2; + icon_state = "pipe-j2" }, -/turf/open/floor/almayer/no_build{ - dir = 8; - icon_state = "silver" +/turf/open/floor/plating/plating_catwalk, +/area/almayer/engineering/upper_engineering) +"dFR" = ( +/turf/open/floor/almayer/silver/northwest, +/area/almayer/command/cichallway) +"dFW" = ( +/obj/structure/surface/table/almayer, +/obj/structure/machinery/cell_charger, +/obj/item/cell/apc, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_f_p) +"dGg" = ( +/obj/structure/bed/chair{ + dir = 4 }, -/area/almayer/command/airoom) +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_m_s) "dGr" = ( /obj/structure/pipes/vents/scrubber{ dir = 8 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/almayer/blue/north, /area/almayer/living/pilotbunks) -"dGw" = ( -/obj/effect/step_trigger/clone_cleaner, -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "red" - }, -/area/almayer/hallways/aft_hallway) -"dGz" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/largecrate/random/case/double, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_a_p) "dGC" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/disposalpipe/segment{ dir = 8; icon_state = "pipe-c" }, -/turf/open/floor/almayer{ +/turf/open/floor/almayer/red/north, +/area/almayer/lifeboat_pumps/south1) +"dGP" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/machinery/door/airlock/almayer/maint{ + access_modified = 1; dir = 1; - icon_state = "red" + req_access = null; + req_one_access = null; + req_one_access_txt = "3;22;19" }, -/area/almayer/lifeboat_pumps/south1) -"dGD" = ( -/obj/structure/closet/secure_closet{ - name = "\improper Spare Restraints"; - req_one_access_txt = "3" +/turf/open/floor/almayer/test_floor4, +/area/almayer/maint/hull/lower/l_f_s) +"dGT" = ( +/obj/structure/machinery/light{ + unacidable = 1; + unslashable = 1 }, -/obj/item/clothing/suit/straight_jacket, -/obj/item/clothing/suit/straight_jacket, -/obj/item/clothing/suit/straight_jacket, -/obj/item/clothing/suit/straight_jacket, -/obj/item/clothing/suit/straight_jacket, -/obj/item/clothing/glasses/sunglasses/blindfold, -/obj/item/clothing/glasses/sunglasses/blindfold, -/obj/item/clothing/glasses/sunglasses/blindfold, -/obj/item/clothing/glasses/sunglasses/blindfold, -/obj/item/clothing/glasses/sunglasses/blindfold, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" +/obj/structure/surface/table/almayer, +/obj/item/storage/donut_box, +/turf/open/floor/almayer/red, +/area/almayer/shipboard/brig/mp_bunks) +"dGU" = ( +/obj/structure/sign/poster/propaganda{ + pixel_x = -27 }, -/area/almayer/shipboard/brig/processing) +/obj/structure/bed/chair/comfy/alpha{ + dir = 1 + }, +/turf/open/floor/almayer/plate, +/area/almayer/living/briefing) "dHd" = ( /obj/structure/disposalpipe/segment{ dir = 8; @@ -30840,28 +18571,8 @@ /obj/structure/machinery/camera/autoname/almayer{ name = "ship-grade camera" }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/lifeboat_pumps/south2) -"dHk" = ( -/obj/structure/largecrate/random/barrel/green, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_a_s) -"dHr" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/obj/structure/sign/safety/escapepod{ - pixel_x = -17 - }, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "red" - }, -/area/almayer/hallways/aft_hallway) "dHu" = ( /obj/structure/desertdam/decals/road_edge{ pixel_x = 2; @@ -30874,20 +18585,6 @@ }, /turf/open/floor/wood/ship, /area/almayer/living/basketball) -"dHv" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/storage/firstaid/toxin{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/storage/firstaid/adv, -/obj/item/device/defibrillator, -/obj/item/reagent_container/spray/cleaner, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_side" - }, -/area/almayer/shipboard/brig/surgery) "dHV" = ( /obj/structure/machinery/light{ dir = 1 @@ -30895,9 +18592,7 @@ /obj/structure/pipes/unary/freezer{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/medical/medical_science) "dHZ" = ( /obj/structure/window/framed/almayer, @@ -30910,25 +18605,28 @@ /area/almayer/living/bridgebunks) "dIi" = ( /obj/structure/pipes/standard/simple/hidden/supply/no_boom, -/turf/open/floor/plating/plating_catwalk{ - allow_construction = 0 - }, +/turf/open/floor/plating/plating_catwalk/aicore, /area/almayer/command/airoom) -"dIl" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 1 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_s) "dIn" = ( /obj/structure/pipes/standard/simple/hidden/supply/no_boom{ dir = 5 }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, +/turf/open/floor/almayer/aicore/no_build, /area/almayer/command/airoom) +"dID" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/turf/open/floor/almayer/red/north, +/area/almayer/command/lifeboat) +"dIH" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SW-out" + }, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer/orangefull, +/area/almayer/engineering/lower/workshop) "dII" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/marine/shared/alpha_bravo, /obj/effect/decal/warning_stripes{ @@ -30937,62 +18635,117 @@ /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 2 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/squads/alpha) -"dIR" = ( -/obj/structure/surface/rack, -/obj/effect/spawner/random/tool, -/obj/effect/spawner/random/tool, -/obj/effect/spawner/random/powercell, -/obj/effect/spawner/random/powercell, -/turf/open/floor/almayer{ - icon_state = "cargo" +"dJe" = ( +/obj/structure/surface/table/reinforced/almayer_B, +/obj/item/stack/sheet/mineral/phoron/medium_stack, +/obj/item/stack/sheet/mineral/phoron/medium_stack{ + pixel_y = 10 }, -/area/almayer/hull/lower_hull/l_m_s) -"dKm" = ( -/obj/structure/machinery/power/apc/almayer{ +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_a_p) +"dJy" = ( +/obj/structure/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/p_bow) +"dJC" = ( +/obj/structure/machinery/sentry_holder/almayer/mini/aicore, +/turf/open/floor/almayer/no_build/plating, +/area/almayer/command/airoom) +"dJG" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 9 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/starboard_aft_hallway) +"dJI" = ( +/obj/structure/bed/chair/comfy/bravo{ dir = 4 }, -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - layer = 3.33; - pixel_x = 2 +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/arcturianstopsign{ + pixel_y = 32 }, +/turf/open/floor/almayer/plate, +/area/almayer/living/briefing) +"dJJ" = ( +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/execution_storage) +"dJO" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; - layer = 3.33; - pixel_y = 2 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "W"; - layer = 3.3 + pixel_y = 1 }, -/obj/effect/decal/warning_stripes{ - icon_state = "S"; - layer = 3.3 +/obj/structure/machinery/door_control{ + id = "ARES Interior"; + indestructible = 1; + name = "ARES Chamber Lockdown"; + pixel_x = -24; + pixel_y = 8; + req_one_access_txt = "90;91;92" }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" +/obj/structure/machinery/door/poddoor/railing{ + closed_layer = 4; + density = 0; + id = "ARES Railing"; + layer = 2.1; + open_layer = 2.1; + unacidable = 0; + unslashable = 0 }, -/area/almayer/hallways/stern_hallway) +/turf/open/floor/almayer/aicore/no_build/ai_silver/west, +/area/almayer/command/airoom) "dKp" = ( -/turf/open/floor/almayer/research/containment/corner{ - dir = 4 - }, +/turf/open/floor/almayer/research/containment/corner/east, /area/almayer/medical/containment/cell/cl) +"dKK" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/turf/open/floor/almayer, +/area/almayer/engineering/lower/workshop/hangar) "dKL" = ( /turf/closed/wall/almayer/outer, /area/almayer/engineering/airmix) +"dKO" = ( +/obj/structure/machinery/door_control{ + id = "panicroomback"; + name = "\improper Safe Room"; + pixel_x = 25; + req_one_access_txt = "3" + }, +/turf/open/floor/almayer/plate, +/area/almayer/shipboard/panic) +"dKS" = ( +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12 + }, +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12; + pixel_y = 12 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/s_bow) "dLc" = ( /obj/structure/surface/table/almayer, /obj/item/paper_bin/uscm, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/command/lifeboat) +"dLe" = ( +/obj/structure/pipes/standard/manifold/hidden/supply, +/obj/structure/disposalpipe/junction{ + dir = 4; + icon_state = "pipe-j2" + }, +/turf/open/floor/almayer/silver, +/area/almayer/command/cichallway) "dLt" = ( /obj/structure/sign/safety/hazard{ pixel_x = -17; @@ -31002,39 +18755,32 @@ pixel_x = -17; pixel_y = 7 }, -/turf/open/floor/almayer{ - icon_state = "plating_striped" - }, +/turf/open/floor/almayer/plating_striped, /area/almayer/shipboard/sea_office) "dLz" = ( /obj/structure/closet/firecloset, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/lifeboat_pumps/south1) -"dLE" = ( -/turf/open/floor/almayer{ - icon_state = "silver" - }, -/area/almayer/hallways/aft_hallway) +"dMj" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/upper/u_m_p) "dMB" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "plating_striped" - }, +/turf/open/floor/almayer/plating_striped/west, /area/almayer/living/cryo_cells) +"dME" = ( +/turf/open/floor/almayer/mono, +/area/almayer/hallways/upper/fore_hallway) "dMK" = ( /turf/closed/wall/almayer/research/containment/wall/corner{ dir = 8 }, /area/almayer/medical/containment/cell) -"dNe" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_f_p) +"dNj" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/disposalpipe/segment, +/turf/open/floor/almayer, +/area/almayer/hallways/upper/fore_hallway) "dNq" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -31043,10 +18789,7 @@ /obj/structure/sink{ pixel_y = 24 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/north, /area/almayer/medical/containment) "dNt" = ( /obj/structure/window/framed/almayer/hull/hijack_bustable, @@ -31057,128 +18800,161 @@ }, /turf/open/floor/plating, /area/almayer/living/cryo_cells) -"dNx" = ( -/obj/structure/pipes/vents/pump, -/turf/open/floor/almayer, -/area/almayer/engineering/engine_core) -"dNB" = ( -/obj/structure/largecrate/random/barrel/yellow, -/turf/open/floor/almayer{ - icon_state = "plate" +"dNv" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/area/almayer/hull/lower_hull/l_f_s) +/turf/open/floor/almayer/test_floor4, +/area/almayer/hallways/upper/fore_hallway) "dNM" = ( /obj/structure/surface/table/almayer, /obj/item/reagent_container/food/condiment/hotsauce/tabasco{ pixel_x = -5; pixel_y = 10 }, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, +/turf/open/floor/almayer/redfull, /area/almayer/living/briefing) +"dNW" = ( +/obj/structure/machinery/firealarm{ + dir = 1; + pixel_y = -28 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_midship_hallway) "dNZ" = ( /obj/structure/machinery/light{ dir = 1 }, /obj/structure/closet/secure_closet/staff_officer/armory/m4a1, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, +/turf/open/floor/almayer/redfull, /area/almayer/command/cic) +"dOe" = ( +/obj/structure/sign/safety/fire_haz{ + pixel_x = 8; + pixel_y = -32 + }, +/obj/structure/reagent_dispensers/ethanoltank{ + anchored = 1 + }, +/turf/open/floor/almayer/cargo, +/area/almayer/engineering/lower/workshop/hangar) "dOl" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/storage/fancy/cigar, /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/captain_mess) -"dOL" = ( -/obj/structure/bed/chair/comfy/black, -/turf/open/floor/almayer, -/area/almayer/shipboard/brig/chief_mp_office) +"dOG" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/manifold/hidden/supply, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/port_midship_hallway) +"dON" = ( +/obj/item/stack/cable_coil{ + pixel_x = 1; + pixel_y = 10 + }, +/obj/item/trash/pistachios, +/obj/item/tool/screwdriver, +/turf/open/floor/almayer/cargo_arrow, +/area/almayer/hallways/lower/repair_bay) +"dPd" = ( +/obj/structure/surface/table/almayer, +/obj/item/device/flashlight/lamp{ + pixel_x = 5; + pixel_y = 10 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_f_p) +"dPk" = ( +/obj/structure/surface/table/almayer, +/obj/structure/machinery/light{ + dir = 8 + }, +/obj/effect/spawner/random/toolbox, +/turf/open/floor/almayer/plate, +/area/almayer/hallways/lower/starboard_umbilical) "dPm" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/command/lifeboat) +"dPq" = ( +/obj/structure/surface/table/almayer, +/obj/item/stack/sheet/cardboard{ + amount = 50; + pixel_x = 4 + }, +/turf/open/floor/plating, +/area/almayer/maint/lower/constr) "dPC" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 9 }, /turf/open/floor/plating/plating_catwalk, /area/almayer/command/lifeboat) -"dPU" = ( -/obj/structure/sign/safety/nonpress_ag{ - pixel_x = 32 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_s) -"dPY" = ( -/obj/structure/machinery/light/small{ - dir = 4 - }, -/obj/structure/largecrate/random/barrel/green, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_f_s) -"dQl" = ( -/obj/structure/platform{ - dir = 4 +"dPH" = ( +/obj/structure/closet/secure_closet/engineering_welding, +/obj/structure/machinery/light{ + dir = 1 }, -/obj/effect/step_trigger/teleporter_vector{ - name = "Almayer_AresUp"; - vector_x = -97; - vector_y = 65 +/turf/open/floor/almayer/cargo, +/area/almayer/engineering/lower/engine_core) +"dPO" = ( +/obj/structure/bed/chair{ + dir = 8 }, -/obj/structure/stairs{ - dir = 1 +/turf/open/floor/almayer, +/area/almayer/maint/hull/upper/u_f_p) +"dPQ" = ( +/obj/structure/surface/table/almayer, +/obj/item/tool/pen, +/obj/item/paper_bin/uscm, +/turf/open/floor/almayer/plate, +/area/almayer/engineering/lower/workshop) +"dPT" = ( +/obj/structure/machinery/brig_cell/cell_2{ + pixel_x = 32; + pixel_y = -32 }, -/turf/open/floor/almayer/no_build{ - dir = 4; - icon_state = "silver" +/turf/open/floor/almayer/no_build, +/area/almayer/shipboard/brig/processing) +"dQp" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + pixel_y = 1 }, -/area/almayer/command/airoom) -"dQs" = ( -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 1 +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_x = 1; + pixel_y = 1 }, -/turf/open/floor/almayer{ +/obj/structure/machinery/door/airlock/almayer/generic{ dir = 1; - icon_state = "green" + name = "Bathroom" }, -/area/almayer/hallways/port_hallway) -"dQv" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ +/turf/open/floor/almayer/test_floor4, +/area/almayer/shipboard/brig/cells) +"dQA" = ( +/obj/structure/pipes/standard/simple/visible{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, -/area/almayer/shipboard/brig/surgery) -"dQE" = ( +/turf/open/floor/almayer/orangecorner/east, +/area/almayer/engineering/lower) +"dQV" = ( /obj/structure/machinery/light{ dir = 1 }, -/obj/structure/janitorialcart, -/obj/item/tool/mop, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_m_p) -"dQH" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_p) +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_midship_hallway) "dRh" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -31189,27 +18965,41 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/medical/hydroponics) +"dRj" = ( +/obj/structure/toilet{ + pixel_y = 13 + }, +/obj/structure/sink{ + dir = 4; + pixel_x = 11 + }, +/obj/structure/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/almayer/dark_sterile, +/area/almayer/shipboard/brig/mp_bunks) +"dRs" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/almayer/cargo, +/area/almayer/engineering/upper_engineering/port) "dRv" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/almayer/red/southwest, /area/almayer/squads/alpha) -"dRw" = ( -/obj/structure/surface/rack, -/obj/item/tool/crowbar, -/obj/item/tool/weldingtool, -/obj/item/tool/wrench, -/obj/structure/sign/safety/restrictedarea{ - pixel_x = -17 +"dRA" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/structure/machinery/status_display{ + pixel_y = -32 }, -/area/almayer/hallways/vehiclehangar) +/turf/open/floor/almayer/red, +/area/almayer/shipboard/brig/starboard_hallway) "dRD" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/machinery/door/airlock/almayer/security{ @@ -31218,80 +19008,45 @@ req_access = null; req_one_access_txt = "3;22;2;19" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/living/offices/flight) -"dRG" = ( -/obj/structure/machinery/light{ - dir = 8 +"dRP" = ( +/obj/structure/bed/chair/comfy/orange, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 5 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" }, -/area/almayer/hallways/starboard_hallway) +/turf/open/floor/carpet, +/area/almayer/command/corporateliaison) "dRT" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 }, /turf/open/floor/almayer, /area/almayer/living/briefing) -"dRV" = ( -/obj/effect/landmark/crap_item, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 6 - }, -/turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_s) -"dSc" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/shipboard/brig/main_office) -"dSn" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 +"dSm" = ( +/obj/structure/sign/safety/airlock{ + pixel_y = -32 }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" +/obj/structure/sign/safety/hazard{ + pixel_x = 15; + pixel_y = -32 }, -/area/almayer/shipboard/brig/cells) +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_m_p) "dSp" = ( /obj/structure/machinery/camera/autoname/almayer{ name = "ship-grade camera" }, /obj/structure/surface/table/almayer, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/almayer/red/northwest, /area/almayer/lifeboat_pumps/south1) -"dSs" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/obj/structure/sign/safety/hazard{ - pixel_x = -17; - pixel_y = 7 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/hull/lower_hull/l_a_s) -"dSA" = ( -/obj/structure/largecrate/random/case/small, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_s) +"dSI" = ( +/turf/open/floor/almayer/bluecorner/west, +/area/almayer/hallways/upper/midship_hallway) "dSJ" = ( /obj/item/device/radio/intercom{ freerange = 1; @@ -31304,114 +19059,83 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side, /area/almayer/medical/operating_room_two) "dSZ" = ( /obj/structure/bed/chair, -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/light_grey_single_wide_up_to_down, /area/almayer/powered/agent) -"dTc" = ( -/obj/structure/sign/poster{ - desc = "One of those hot, tanned babes back the beaches of good ol' Earth."; - icon_state = "poster12"; - name = "Beach Babe Pinup"; - pixel_x = -30; - pixel_y = 6; - serial_number = 12 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" +"dTd" = ( +/obj/structure/machinery/door/poddoor/shutters/almayer{ + dir = 8; + id = "laddernortheast"; + name = "\improper North East Ladders Shutters" }, -/area/almayer/command/corporateliason) -"dTt" = ( -/obj/structure/surface/table/almayer, -/obj/item/device/camera, -/obj/item/device/camera_film, -/obj/item/device/camera_film, -/turf/open/floor/almayer{ - icon_state = "plate" +/turf/open/floor/almayer/test_floor4, +/area/almayer/hallways/lower/starboard_midship_hallway) +"dTn" = ( +/turf/open/floor/almayer/red, +/area/almayer/hallways/upper/starboard) +"dTr" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" }, -/area/almayer/hull/upper_hull/u_f_s) +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/engineering/lower/workshop) "dTI" = ( /obj/structure/machinery/light{ dir = 4 }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hallways/hangar) +"dTS" = ( +/obj/structure/machinery/fuelcell_recycler, +/turf/open/floor/almayer/cargo, +/area/almayer/engineering/lower/engine_core) "dTZ" = ( -/turf/open/floor/almayer{ - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side, /area/almayer/medical/lower_medical_medbay) "dUE" = ( /obj/structure/machinery/light, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/southeast, /area/almayer/shipboard/brig/cic_hallway) -"dUF" = ( -/obj/structure/machinery/light/small{ - dir = 1 - }, -/obj/structure/closet/firecloset, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_s) -"dUI" = ( -/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ - name = "\improper Port Viewing Room" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +"dUR" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 }, -/area/almayer/hull/upper_hull/u_f_s) +/turf/open/floor/almayer/silver/east, +/area/almayer/hallways/upper/midship_hallway) "dUS" = ( -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/medical/operating_room_two) "dUZ" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/almayer/red/southwest, /area/almayer/shipboard/port_missiles) "dVd" = ( /obj/structure/machinery/seed_extractor{ density = 0; pixel_y = 16 }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/medical/hydroponics) "dVe" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/almayer/blue/north, /area/almayer/living/briefing) -"dVm" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 1 - }, -/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ - name = "\improper Port Railguns and Viewing Room" +"dVn" = ( +/obj/effect/step_trigger/clone_cleaner, +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +/obj/structure/machinery/light{ + dir = 4 }, -/area/almayer/hull/upper_hull/u_f_p) +/turf/open/floor/almayer/red/west, +/area/almayer/hallways/upper/starboard) "dVs" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 1 @@ -31424,113 +19148,119 @@ /area/almayer/living/port_emb) "dVu" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/east, /area/almayer/medical/medical_science) +"dVH" = ( +/obj/structure/platform{ + dir = 8 + }, +/obj/structure/machinery/light/small{ + dir = 8 + }, +/obj/structure/sign/safety/hvac_old{ + pixel_x = 8; + pixel_y = 32 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_a_p) "dVO" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/emails{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/offices) -"dVZ" = ( -/obj/structure/machinery/pipedispenser, -/turf/open/floor/almayer{ - icon_state = "cargo" +"dVR" = ( +/obj/structure/ladder{ + height = 2; + id = "AftPortMaint" + }, +/turf/open/floor/plating/almayer, +/area/almayer/maint/hull/upper/u_a_p) +"dWc" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 10 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 2 }, -/area/almayer/engineering/engine_core) +/turf/open/floor/almayer, +/area/almayer/maint/hull/upper/u_f_p) "dWg" = ( /obj/effect/landmark/start/cargo, /obj/structure/machinery/light, /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/req) -"dWk" = ( -/obj/structure/surface/table/almayer, -/obj/structure/machinery/door_control{ - id = "CMP Office Shutters"; - name = "CMP Office Shutters"; - pixel_y = 32; - req_one_access_txt = "24;31" - }, -/obj/structure/machinery/door_control{ - id = "Brig Lockdown Shutters"; - name = "Brig Lockdown Shutters"; - pixel_y = 24; - req_access_txt = "3" +"dWw" = ( +/turf/open/floor/almayer/bluecorner/west, +/area/almayer/living/basketball) +"dWA" = ( +/obj/structure/sign/poster{ + pixel_y = 32 }, -/obj/structure/machinery/faxmachine/uscm/brig/chief, -/turf/open/floor/almayer, -/area/almayer/shipboard/brig/chief_mp_office) -"dWm" = ( -/obj/structure/surface/table/almayer, -/obj/item/storage/firstaid/o2, -/obj/effect/spawner/random/tool, -/obj/effect/spawner/random/technology_scanner, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/area/almayer/hull/upper_hull/u_m_p) -"dWw" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "bluecorner" +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_f_p) +"dWJ" = ( +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12 }, -/area/almayer/living/basketball) -"dWz" = ( -/obj/structure/bed/chair/office/dark{ - dir = 8 +/obj/structure/bed/chair{ + dir = 4 }, -/obj/structure/machinery/door_control/cl/quarter/windows{ - pixel_x = 11; - pixel_y = 37 +/obj/structure/sign/safety/water{ + pixel_x = 8; + pixel_y = -32 }, -/turf/open/floor/wood/ship, -/area/almayer/command/corporateliason) +/obj/structure/machinery/light/small, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_f_s) "dWX" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/engineering/upper_engineering/starboard) +"dXb" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer/plate, +/area/almayer/maint/lower/cryo_cells) "dXd" = ( /obj/item/storage/fancy/cigarettes/kpack, /obj/structure/surface/rack, /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/engineering/laundry) +"dXo" = ( +/obj/structure/surface/table/almayer, +/obj/item/device/taperecorder, +/turf/open/floor/almayer/plate, +/area/almayer/command/combat_correspondent) "dXr" = ( /obj/structure/bed/chair{ dir = 8; pixel_y = 3 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/east, /area/almayer/medical/lower_medical_medbay) -"dXy" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/almayer, -/area/almayer/shipboard/brig/main_office) "dXG" = ( /obj/structure/pipes/vents/scrubber{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/req) +"dXI" = ( +/obj/structure/machinery/door/airlock/almayer/secure/reinforced{ + name = "\improper Exterior Airlock"; + req_access = null + }, +/turf/open/floor/almayer/test_floor4, +/area/almayer/shipboard/stern_point_defense) "dXV" = ( /obj/structure/desertdam/decals/road_edge{ pixel_x = 16 @@ -31545,50 +19275,45 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/almayer/blue/north, /area/almayer/living/pilotbunks) -"dYh" = ( -/obj/structure/machinery/power/apc/almayer{ - dir = 1 +"dYb" = ( +/obj/structure/machinery/camera/autoname/almayer{ + dir = 4; + name = "ship-grade camera" }, /turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_p) +/area/almayer/hallways/lower/starboard_aft_hallway) +"dYc" = ( +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_a_s) +"dYl" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/almayer/test_floor4, +/area/almayer/hallways/upper/fore_hallway) "dYu" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 5 }, /turf/open/floor/almayer, /area/almayer/living/chapel) -"dYH" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/obj/structure/bed/chair/comfy/alpha{ - dir = 8 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/living/briefing) -"dYK" = ( -/obj/item/folder/red{ - desc = "A red folder. The previous contents are a mystery, though the number 28 has been written on the inside of each flap numerous times. Smells faintly of cough syrup."; - name = "folder: 28"; - pixel_x = -4; - pixel_y = 5 - }, +"dYC" = ( /obj/structure/surface/table/almayer, -/obj/item/toy/crayon{ - pixel_x = 9; - pixel_y = -2 - }, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ + pixel_y = 25 }, -/area/almayer/hull/upper_hull/u_m_p) +/obj/item/frame/fire_alarm, +/turf/open/floor/almayer/orange/north, +/area/almayer/engineering/lower) "dYR" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/reagentgrinder{ @@ -31596,36 +19321,49 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/grunt_rnr) -"dYX" = ( -/obj/structure/machinery/door/airlock/almayer/marine/bravo{ - dir = 1 +"dYU" = ( +/obj/structure/surface/rack, +/obj/effect/decal/cleanable/cobweb{ + dir = 8; + plane = -6 }, -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 +/obj/effect/decal/cleanable/dirt, +/obj/item/reagent_container/spray/cleaner{ + desc = "Someone has crossed out the Space from Space Cleaner and written in Surgery. 'Do not remove under punishment of death!!!' is scrawled on the back."; + name = "Surgery Cleaner" }, -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +/obj/item/reagent_container/spray/cleaner{ + desc = "Someone has crossed out the Space from Space Cleaner and written in Surgery. 'Do not remove under punishment of death!!!' is scrawled on the back."; + name = "Surgery Cleaner" }, -/area/almayer/living/briefing) -"dZd" = ( -/turf/open/floor/almayer{ - dir = 10; - icon_state = "orange" +/obj/item/reagent_container/spray/cleaner{ + desc = "Someone has crossed out the Space from Space Cleaner and written in Surgery. 'Do not remove under punishment of death!!!' is scrawled on the back."; + name = "Surgery Cleaner" }, -/area/almayer/hallways/stern_hallway) -"dZr" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 +/turf/open/floor/almayer/sterile_green_corner/east, +/area/almayer/medical/lower_medical_medbay) +"dYX" = ( +/obj/structure/machinery/door/airlock/almayer/marine/bravo{ + dir = 1 }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer/test_floor4, +/area/almayer/living/briefing) +"dZu" = ( +/obj/structure/machinery/light{ + dir = 1 }, -/area/almayer/engineering/upper_engineering) +/turf/open/floor/almayer, +/area/almayer/engineering/lower/workshop/hangar) +"dZZ" = ( +/obj/structure/surface/rack, +/obj/item/tool/weldpack, +/obj/effect/spawner/random/tool, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_f_p) "eaf" = ( /obj/structure/machinery/cm_vending/clothing/military_police{ density = 0; @@ -31638,9 +19376,7 @@ dir = 4; health = 80 }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/shipboard/brig/general_equipment) "ean" = ( /obj/structure/machinery/door/poddoor/shutters/almayer{ @@ -31660,211 +19396,127 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side, /area/almayer/medical/operating_room_one) "eax" = ( /obj/structure/surface/table/almayer, /obj/item/tool/weldpack, /obj/item/tool/crowbar, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/shipboard/port_point_defense) -"eaX" = ( -/obj/structure/closet/firecloset, -/turf/open/floor/almayer{ - icon_state = "cargo" +"eaz" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" }, -/area/almayer/engineering/upper_engineering/starboard) +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_a_p) "ebd" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/brig/cells) +"ebf" = ( +/obj/structure/closet/crate/freezer{ + desc = "A freezer crate. There is a note attached, it reads: Do not open, property of Pvt. Mendoza." + }, +/obj/item/storage/beer_pack, +/obj/item/reagent_container/food/drinks/cans/beer, +/obj/item/reagent_container/food/drinks/cans/beer, +/obj/structure/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/s_stern) "ebn" = ( /obj/structure/sign/safety/airlock{ pixel_x = 15; pixel_y = 32 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/command/lifeboat) -"ebt" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/obj/structure/machinery/camera/autoname/almayer{ - name = "ship-grade camera" - }, -/obj/structure/closet/secure_closet/guncabinet/blue/riot_control, -/turf/open/floor/plating/almayer, -/area/almayer/shipboard/brig/armory) -"ebz" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/obj/structure/machinery/light/small{ - dir = 1 - }, -/obj/structure/closet/secure_closet/guncabinet/blue/riot_control, -/turf/open/floor/plating/almayer, -/area/almayer/shipboard/brig/armory) -"ebD" = ( -/obj/structure/machinery/light/small{ - dir = 1 - }, -/obj/structure/largecrate/random/barrel/yellow, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_s) -"ebJ" = ( -/obj/structure/machinery/disposal, -/obj/structure/disposalpipe/trunk, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" +"ebp" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/bed/chair/comfy/bravo{ + dir = 4 }, -/area/almayer/engineering/engine_core) +/turf/open/floor/almayer/plate, +/area/almayer/living/briefing) +"ebI" = ( +/obj/item/clothing/shoes/red, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_m_p) "ebN" = ( -/turf/closed/wall/almayer/white/reinforced, +/turf/closed/wall/almayer/aicore/reinforced, /area/almayer/command/airoom) -"ebO" = ( -/obj/structure/machinery/light/small, -/turf/open/floor/almayer{ - icon_state = "plate" +"ecb" = ( +/obj/structure/machinery/light/small{ + dir = 4 }, -/area/almayer/hull/lower_hull/l_a_p) -"ebY" = ( -/obj/structure/surface/rack, -/obj/effect/spawner/random/toolbox, -/obj/effect/spawner/random/toolbox, -/obj/effect/spawner/random/toolbox, -/obj/effect/spawner/random/tool, -/turf/open/floor/almayer{ - icon_state = "plate" +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_a_s) +"ecj" = ( +/obj/structure/largecrate/supply/supplies/mre, +/obj/structure/sign/safety/water{ + pixel_x = 8; + pixel_y = 32 }, -/area/almayer/hull/lower_hull/l_m_p) +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_m_p) "eco" = ( /obj/structure/sign/safety/restrictedarea{ pixel_x = -17; pixel_y = -8 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/west, /area/almayer/command/cichallway) -"ecq" = ( -/obj/structure/surface/table/almayer, -/obj/item/book/manual/marine_law{ - pixel_x = -3; - pixel_y = 1 - }, -/obj/structure/machinery/status_display{ - pixel_x = 32 - }, -/obj/item/device/flashlight/lamp/green{ - pixel_x = 6 - }, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "red" - }, -/area/almayer/shipboard/brig/lobby) "ecr" = ( /turf/closed/wall/almayer/reinforced, /area/almayer/living/captain_mess) -"ect" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "orange" - }, -/area/almayer/engineering/engineering_workshop) -"ecM" = ( -/obj/structure/bed/chair{ - dir = 4 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_s) -"ecQ" = ( -/obj/structure/machinery/door_display/research_cell{ - dir = 4; - id = "Containment Cell 4"; - name = "Control Panel"; - pixel_x = -15; - req_access_txt = "200" - }, -/obj/item/storage/fancy/cigarettes/blackpack{ - pixel_x = -1; - pixel_y = 1 - }, -/obj/structure/surface/table/woodentable/fancy, -/obj/item/storage/fancy/cigarettes/wypacket{ - pixel_x = 6; - pixel_y = 3 - }, -/obj/item/tool/lighter/zippo/gold{ - pixel_x = 2 - }, -/turf/open/floor/carpet, -/area/almayer/command/corporateliason) -"ecR" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/obj/structure/pipes/vents/pump{ - dir = 1 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" +"ecS" = ( +/obj/structure/sign/safety/hvac_old{ + pixel_x = 8; + pixel_y = 32 }, -/area/almayer/hallways/vehiclehangar) +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/s_bow) "ecZ" = ( /obj/structure/ladder{ height = 1; id = "bridge4" }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/shipboard/navigation) +"edn" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer, +/turf/open/floor/almayer/test_floor4, +/area/almayer/hallways/lower/starboard_aft_hallway) +"edo" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer/no_build, +/area/almayer/shipboard/brig/processing) "edv" = ( /obj/structure/bed/sofa/south/white/left, -/turf/open/floor/almayer{ - icon_state = "sterile_green" - }, +/turf/open/floor/almayer/sterile_green, /area/almayer/medical/medical_science) -"edx" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer, -/obj/structure/sign/safety/maint{ - pixel_x = 8; - pixel_y = -32 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "SW-out"; - pixel_x = -1 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/command/lifeboat) -"edM" = ( -/obj/structure/closet/firecloset, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/hallways/vehiclehangar) +"edG" = ( +/obj/structure/largecrate/random/barrel/yellow, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_m_p) +"edV" = ( +/obj/structure/machinery/power/terminal, +/turf/open/floor/almayer, +/area/almayer/maint/upper/mess) "eed" = ( -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/command/computerlab) +"eeh" = ( +/obj/structure/surface/table/almayer, +/obj/structure/machinery/microwave{ + pixel_y = 9 + }, +/obj/item/reagent_container/food/snacks/packaged_burger, +/turf/open/floor/almayer/plate, +/area/almayer/living/briefing) "eei" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/storage/box/cups{ @@ -31875,38 +19527,19 @@ pixel_x = 7; pixel_y = 14 }, -/turf/open/floor/almayer{ - icon_state = "bluefull" - }, +/turf/open/floor/almayer/bluefull, /area/almayer/command/cichallway) "eem" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/tool/kitchen/tray, /obj/item/reagent_container/food/snacks/boiledrice, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/captain_mess) -"eep" = ( -/obj/structure/sign/safety/airlock{ - pixel_y = -32 - }, -/obj/structure/sign/safety/hazard{ - pixel_x = 15; - pixel_y = -32 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_p) "eet" = ( /obj/structure/machinery/power/terminal{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/north, /area/almayer/engineering/upper_engineering/starboard) "eeu" = ( /obj/structure/disposalpipe/segment{ @@ -31919,55 +19552,49 @@ pixel_x = -25 }, /obj/structure/machinery/vending/dinnerware, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/almayer/living/grunt_rnr) -"eeN" = ( -/obj/structure/bed/chair, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, -/area/almayer/shipboard/brig/processing) -"efh" = ( -/obj/structure/surface/table/almayer, -/obj/structure/machinery/door_control{ - id = "courtyard_cells"; - name = "\improper Courtyard Lockdown Shutters"; - pixel_x = -8; - pixel_y = -6; - req_access_txt = "3" - }, -/obj/structure/machinery/door_control{ - id = "Brig Lockdown Shutters"; - name = "Brig Lockdown Shutters"; - pixel_x = -8; - pixel_y = 2; - req_access_txt = "3" - }, -/obj/structure/machinery/door_control{ - id = "courtyard window"; - name = "Courtyard Window Shutters"; - pixel_x = -8; - pixel_y = 10; - req_access_txt = "3" - }, -/obj/structure/machinery/door_control{ - id = "Cell Privacy Shutters"; - name = "Cell Privacy Shutters"; - pixel_x = 2; - pixel_y = 10; - req_access_txt = "3" +"eeA" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/s_bow) +"eeC" = ( +/obj/structure/sign/safety/hvac_old{ + pixel_x = 8; + pixel_y = -32 }, -/obj/structure/machinery/recharger{ - pixel_x = 6; - pixel_y = -2 +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/stern) +"eeR" = ( +/obj/structure/surface/rack, +/obj/item/frame/table, +/obj/item/frame/table, +/obj/item/frame/table, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_a_p) +"efj" = ( +/turf/open/floor/almayer/red/east, +/area/almayer/hallways/upper/port) +"efk" = ( +/obj/structure/machinery/door/poddoor/almayer{ + id = "s_umbilical"; + name = "\improper Umbillical Airlock"; + unacidable = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" +/turf/open/floor/almayer/plate, +/area/almayer/hallways/lower/port_umbilical) +"efC" = ( +/obj/structure/machinery/firealarm{ + pixel_y = 28 }, -/area/almayer/shipboard/brig/main_office) +/obj/structure/machinery/suit_storage_unit/carbon_unit, +/turf/open/floor/almayer/plate, +/area/almayer/engineering/lower) +"efJ" = ( +/obj/item/tool/wet_sign, +/obj/effect/decal/cleanable/blood, +/turf/open/floor/plating, +/area/almayer/maint/lower/constr) "efK" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -31975,18 +19602,34 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/alpha) -"efU" = ( -/obj/structure/machinery/power/apc/almayer{ - dir = 1 +"efP" = ( +/obj/structure/surface/table/almayer, +/obj/item/toy/deck{ + pixel_y = 14 + }, +/obj/item/trash/cigbutt/ucigbutt{ + layer = 3.7; + pixel_x = 5; + pixel_y = 8 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_a_s) +"efT" = ( +/obj/structure/machinery/atm{ + pixel_y = 32 }, -/turf/open/floor/almayer{ - icon_state = "plate" +/turf/open/floor/almayer/red/west, +/area/almayer/shipboard/brig/processing) +"efV" = ( +/obj/structure/disposalpipe/junction{ + dir = 4; + icon_state = "pipe-j2" }, -/area/almayer/hull/lower_hull/l_m_s) +/obj/structure/pipes/standard/manifold/hidden/supply, +/turf/open/floor/almayer, +/area/almayer/hallways/upper/midship_hallway) "egc" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -32002,21 +19645,30 @@ pixel_x = -28; pixel_y = -23 }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/medical/lower_medical_medbay) +"ege" = ( +/obj/structure/machinery/door_control{ + id = "ARES StairsLower"; + name = "ARES Core Lockdown"; + pixel_x = -24; + pixel_y = 8; + req_one_access_txt = "90;91;92" + }, +/obj/structure/machinery/camera/autoname/almayer/containment/ares{ + dir = 4; + pixel_y = -8; + autoname = 0; + c_tag = "AI - Main Staircase" + }, +/obj/effect/step_trigger/clone_cleaner, +/turf/open/floor/almayer/aicore/no_build/ai_silver/west, +/area/almayer/command/airoom) "egp" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/platform_decoration, /turf/open/floor/plating/plating_catwalk, /area/almayer/hallways/hangar) -"egq" = ( -/obj/structure/sign/safety/ladder{ - pixel_x = -16 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/vehiclehangar) "egt" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper Chapel" @@ -32027,37 +19679,23 @@ /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 2 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/living/chapel) -"egB" = ( -/obj/structure/platform{ - dir = 1 - }, -/obj/structure/largecrate/random/case, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_s) -"egR" = ( -/obj/structure/bed/chair{ - dir = 8; - pixel_y = 3 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" +"egD" = ( +/obj/structure/bed/stool, +/turf/open/floor/almayer/green/west, +/area/almayer/hallways/lower/port_midship_hallway) +"ehc" = ( +/obj/structure/machinery/camera/autoname/almayer{ + dir = 1; + name = "ship-grade camera" }, -/area/almayer/shipboard/brig/main_office) -"egS" = ( -/obj/structure/closet, -/obj/item/clothing/ears/earmuffs, -/obj/item/clothing/glasses/regular/hipster, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/structure/machinery/disposal, +/obj/structure/disposalpipe/trunk{ + dir = 8 }, -/area/almayer/hull/upper_hull/u_a_s) +/turf/open/floor/almayer/plate, +/area/almayer/engineering/lower/workshop) "ehi" = ( /obj/effect/decal/warning_stripes{ icon_state = "NE-out"; @@ -32072,19 +19710,44 @@ }, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/south1) +"ehl" = ( +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/interrogation) +"ehm" = ( +/obj/structure/sign/safety/maint{ + pixel_x = 32 + }, +/turf/open/floor/almayer/red/northeast, +/area/almayer/lifeboat_pumps/south2) "ehx" = ( /obj/effect/landmark/start/marine/tl/alpha, /obj/effect/landmark/late_join/alpha, /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/alpha) -"ehH" = ( +"ehL" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer, +/obj/structure/sign/safety/maint{ + pixel_x = 8; + pixel_y = 32 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + pixel_y = 1 + }, /obj/effect/decal/warning_stripes{ icon_state = "NE-out"; - pixel_x = 2; - pixel_y = 3 + pixel_y = 1 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/starboard_hallway) +/turf/open/floor/almayer/test_floor4, +/area/almayer/hallways/upper/starboard) +"ehM" = ( +/obj/structure/surface/rack, +/obj/structure/machinery/camera/autoname/almayer{ + dir = 4; + name = "ship-grade camera" + }, +/turf/open/floor/almayer, +/area/almayer/maint/hull/upper/u_f_s) "ehR" = ( /obj/structure/window/reinforced{ dir = 4; @@ -32110,17 +19773,37 @@ /obj/item/bedsheet/red{ pixel_y = 13 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/port_emb) +"ehX" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 6 + }, +/turf/open/floor/almayer/red/north, +/area/almayer/shipboard/brig/processing) +"eii" = ( +/obj/structure/platform{ + dir = 4 + }, +/obj/effect/step_trigger/teleporter_vector{ + name = "Almayer_AresUp"; + vector_x = -96; + vector_y = 65 + }, +/obj/structure/stairs{ + dir = 1 + }, +/turf/open/floor/almayer/aicore/no_build, +/area/almayer/command/airoom) "eim" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "orange" - }, +/turf/open/floor/almayer/orange, /area/almayer/engineering/upper_engineering/port) "eiq" = ( /obj/structure/surface/table/reinforced/prison, @@ -32131,10 +19814,7 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/east, /area/almayer/medical/operating_room_two) "eiE" = ( /obj/structure/machinery/light{ @@ -32145,31 +19825,8 @@ /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/almayer/research/containment/floor2{ - dir = 1 - }, +/turf/open/floor/almayer/research/containment/floor2/north, /area/almayer/medical/containment/cell) -"eiH" = ( -/obj/structure/machinery/light{ - dir = 8 - }, -/obj/structure/toilet{ - dir = 4 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/shipboard/brig/cells) -"eiK" = ( -/obj/structure/bed/chair{ - dir = 4 - }, -/obj/structure/sign/safety/distribution_pipes{ - pixel_x = -17 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "silver" - }, -/area/almayer/shipboard/brig/cic_hallway) "eiN" = ( /obj/structure/machinery/light{ dir = 1 @@ -32178,23 +19835,25 @@ pixel_y = 6 }, /obj/item/clothing/under/marine/dress, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/port_emb) -"eiO" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "redcorner" - }, -/area/almayer/shipboard/brig/main_office) "eiP" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/gym) +"ejj" = ( +/obj/structure/surface/table/reinforced/almayer_B, +/obj/item/tool/wrench{ + pixel_x = -2; + pixel_y = -1 + }, +/obj/item/tool/wrench{ + pixel_x = 2; + pixel_y = 7 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_a_p) "ejo" = ( /obj/effect/decal/warning_stripes{ icon_state = "E"; @@ -32204,72 +19863,48 @@ icon_state = "W"; pixel_x = -1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/charlie) -"ejp" = ( -/obj/structure/closet/emcloset, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/hallways/aft_hallway) "ejt" = ( -/turf/open/floor/almayer/uscm/directional{ - dir = 4 - }, +/turf/open/floor/almayer/uscm/directional/east, /area/almayer/command/lifeboat) -"ejw" = ( -/obj/structure/window/framed/almayer, -/turf/open/floor/plating, -/area/almayer/living/grunt_rnr) -"ejK" = ( -/obj/structure/surface/table/reinforced/almayer_B, -/obj/item/clothing/glasses/welding{ - pixel_x = 8; - pixel_y = 3 - }, -/obj/item/tool/weldingtool{ - pixel_x = -11; - pixel_y = 5 - }, +"ejx" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer/silver/north, +/area/almayer/hallways/upper/midship_hallway) +"ejV" = ( +/obj/structure/closet, +/obj/item/device/flashlight/pen, +/obj/item/attachable/reddot, /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_p) +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_m_s) "ejY" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/lifeboat_pumps/south1) -"ekg" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" - }, -/area/almayer/shipboard/brig/perma) -"eko" = ( -/obj/structure/largecrate/random/secure, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_s) "eky" = ( /turf/open/floor/almayer, /area/almayer/command/lifeboat) -"ekO" = ( -/obj/structure/machinery/cryopod{ - pixel_y = 6 - }, -/obj/structure/sign/safety/cryo{ - pixel_x = -17 +"ekz" = ( +/obj/structure/girder/displaced, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_a_p) +"ekM" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "cargo" +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/port_aft_hallway) +"ekR" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" }, -/area/almayer/hull/upper_hull/u_m_p) +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer/orangecorner/east, +/area/almayer/hallways/lower/starboard_umbilical) "ekY" = ( /obj/structure/machinery/door/airlock/almayer/generic/glass{ name = "\improper Memorial Room" @@ -32277,35 +19912,32 @@ /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/living/starboard_garden) +"ekZ" = ( +/obj/structure/surface/table/almayer, +/obj/structure/machinery/computer/secure_data{ + dir = 4 + }, +/turf/open/floor/almayer/red/west, +/area/almayer/shipboard/brig/warden_office) "elf" = ( /obj/structure/sign/safety/hvac_old{ pixel_x = 8; pixel_y = 32 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/east, /area/almayer/engineering/upper_engineering) -"elq" = ( -/obj/structure/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" - }, -/area/almayer/shipboard/brig/perma) -"elA" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "orange" +"elv" = ( +/obj/effect/step_trigger/clone_cleaner, +/obj/structure/sign/safety/maint{ + pixel_x = -17 }, -/area/almayer/hallways/stern_hallway) +/turf/open/floor/almayer, +/area/almayer/hallways/upper/port) +"elx" = ( +/turf/open/floor/almayer, +/area/almayer/engineering/lower) "elE" = ( /obj/structure/disposalpipe/segment{ dir = 2; @@ -32314,49 +19946,58 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/medical/operating_room_one) "elR" = ( /turf/closed/wall/almayer/research/containment/wall/corner{ dir = 1 }, /area/almayer/medical/containment/cell) -"elX" = ( -/obj/structure/surface/table/almayer, -/obj/item/trash/uscm_mre, -/obj/effect/decal/cleanable/dirt, -/obj/item/device/flashlight/lamp{ - layer = 3.3; - pixel_x = 15 +"elV" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SW-out" }, -/obj/item/reagent_container/food/drinks/cans/souto/diet/grape{ - pixel_x = -7; - pixel_y = 10 +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 + }, +/obj/structure/machinery/door/airlock/almayer/security/reinforced{ + dir = 2; + name = "\improper Execution Equipment" }, -/turf/open/floor/almayer{ - icon_state = "emeraldfull" +/turf/open/floor/almayer/test_floor4, +/area/almayer/shipboard/brig/execution_storage) +"elY" = ( +/obj/structure/machinery/light/small{ + dir = 1 }, -/area/almayer/living/briefing) +/obj/structure/sign/safety/hazard{ + pixel_y = 32 + }, +/obj/structure/sign/safety/airlock{ + pixel_x = 15; + pixel_y = 32 + }, +/turf/open/floor/almayer/test_floor4, +/area/almayer/hallways/lower/starboard_umbilical) "eme" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/medical/upper_medical) +"eml" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 + }, +/turf/open/floor/almayer/test_floor4, +/area/almayer/hallways/lower/starboard_umbilical) "emn" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/toolbox, /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/east, /area/almayer/engineering/upper_engineering) "emp" = ( /turf/closed/wall/almayer/reinforced, @@ -32366,78 +20007,73 @@ /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/briefing) -"emx" = ( -/obj/structure/reagent_dispensers/watertank, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_p) -"emG" = ( -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12 +"emw" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 8 }, /turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_a_p) +/area/almayer/hallways/lower/port_fore_hallway) +"emA" = ( +/turf/closed/wall/almayer/outer, +/area/almayer/maint/hull/lower/l_a_s) +"emC" = ( +/turf/closed/wall/almayer, +/area/almayer/maint/hull/lower/l_f_p) "emK" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/southwest, /area/almayer/medical/medical_science) -"emO" = ( -/obj/structure/machinery/door/airlock/almayer/generic/corporate{ - dir = 1; - name = "Corporate Liaison's Bedroom" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/command/corporateliason) +"emL" = ( +/obj/structure/machinery/light, +/turf/open/floor/almayer/orange, +/area/almayer/hallways/upper/midship_hallway) "ene" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "silvercorner" - }, +/turf/open/floor/almayer/silvercorner/east, /area/almayer/command/securestorage) -"enf" = ( -/obj/structure/bed/chair{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_s) "eni" = ( -/obj/structure/surface/table/almayer, -/obj/item/prop/magazine/book/spacebeast, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, -/area/almayer/shipboard/brig/evidence_storage) -"enx" = ( -/obj/structure/pipes/vents/pump, -/obj/structure/machinery/status_display{ - pixel_y = 30 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "green" - }, -/area/almayer/hallways/starboard_hallway) -"enz" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 +/obj/structure/machinery/power/monitor{ + name = "Main Power Grid Monitoring" }, -/obj/structure/machinery/vending/snack, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 +/turf/open/floor/almayer/plate, +/area/almayer/engineering/lower/workshop) +"enK" = ( +/obj/effect/step_trigger/clone_cleaner, +/obj/structure/blocker/forcefield/multitile_vehicles, +/turf/open/floor/plating/almayer/no_build, +/area/almayer/hallways/lower/starboard_fore_hallway) +"enQ" = ( +/obj/structure/surface/rack, +/obj/item/frame/table, +/obj/item/frame/table, +/obj/item/frame/table, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_m_p) +"enY" = ( +/obj/item/storage/firstaid, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_a_p) +"eob" = ( +/obj/structure/machinery/door/airlock/almayer/maint{ + dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "red" +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer/test_floor4, +/area/almayer/maint/hull/lower/l_m_s) +"eox" = ( +/obj/structure/machinery/light/small, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/s_bow) +"eoy" = ( +/obj/structure/machinery/power/apc/almayer{ + dir = 1 }, -/area/almayer/shipboard/brig/main_office) +/turf/open/floor/almayer/plate, +/area/almayer/hallways/lower/port_midship_hallway) +"eoE" = ( +/obj/structure/largecrate/random/secure, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_f_s) "eoG" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 5 @@ -32445,57 +20081,15 @@ /obj/effect/decal/cleanable/blood/oil, /turf/open/floor/almayer, /area/almayer/engineering/upper_engineering/port) -"eoM" = ( +"eoK" = ( +/obj/structure/machinery/optable, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/p_stern) +"epk" = ( /obj/structure/surface/table/almayer, -/obj/item/storage/beer_pack, -/obj/structure/sign/poster{ - desc = "YOU ALWAYS KNOW A WORKING JOE. YOU ALWAYS KNOW A WORKING JOE. YOU ALWAYS KNOW A WORKING JOE. YOU ALWAYS KNOW A WORKING JOE. YOU ALWAYS KNOW A WORKING JOE."; - icon_state = "poster11"; - name = "YOU ALWAYS KNOW A WORKING JOE."; - pixel_x = -27; - serial_number = 11 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_s) -"eoP" = ( -/obj/structure/bed, -/obj/structure/machinery/flasher{ - id = "Perma 1"; - pixel_y = 24 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/shipboard/brig/perma) -"eoT" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/obj/structure/sign/safety/distribution_pipes{ - pixel_x = 32 - }, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "red" - }, -/area/almayer/hallways/aft_hallway) -"epq" = ( -/obj/structure/sign/poster{ - desc = "One of those hot, tanned babes back the beaches of good ol' Earth."; - icon_state = "poster12"; - name = "Beach Babe Pinup"; - pixel_x = 27; - serial_number = 12 - }, -/obj/structure/bed/chair/comfy/delta{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/living/briefing) +/obj/item/tank/emergency_oxygen/double, +/turf/open/floor/almayer/plate, +/area/almayer/hallways/lower/port_umbilical) "epu" = ( /obj/structure/machinery/door/firedoor/border_only/almayer, /obj/structure/machinery/door/poddoor/almayer/open{ @@ -32503,32 +20097,23 @@ id = "Brig Lockdown Shutters"; name = "\improper Brig Lockdown Shutter" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/shipboard/brig/lobby) -"epA" = ( -/obj/structure/largecrate/random/barrel/yellow, -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_a_s) -"epK" = ( -/obj/structure/closet/secure_closet/guncabinet, -/obj/item/weapon/gun/smg/m39{ - pixel_y = 6 +"epJ" = ( +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 1 }, -/obj/item/weapon/gun/smg/m39{ - pixel_y = -6 +/obj/structure/disposalpipe/junction{ + dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "plate" +/turf/open/floor/wood/ship, +/area/almayer/command/corporateliaison) +"epT" = ( +/obj/structure/machinery/light{ + dir = 4 }, -/area/almayer/hull/upper_hull/u_m_s) +/turf/open/floor/almayer/green/east, +/area/almayer/hallways/upper/fore_hallway) "eqb" = ( /obj/structure/surface/table/almayer, /obj/item/tool/stamp/denied{ @@ -32555,12 +20140,23 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/req) -"eqk" = ( -/mob/living/simple_animal/mouse/brown, -/turf/open/floor/almayer{ - icon_state = "plate" +"eqd" = ( +/obj/item/stack/folding_barricade/three, +/obj/item/stack/folding_barricade/three, +/obj/structure/surface/rack, +/turf/open/floor/almayer/redfull, +/area/almayer/shipboard/panic) +"eqm" = ( +/obj/structure/prop/almayer/computers/sensor_computer2, +/obj/structure/machinery/door_control{ + id = "Secretroom"; + indestructible = 1; + layer = 2.5; + name = "Shutters"; + use_power = 0 }, -/area/almayer/hull/lower_hull/l_f_s) +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_m_s) "eqB" = ( /obj/item/bedsheet/brown{ layer = 3.2 @@ -32568,29 +20164,27 @@ /obj/structure/bed{ can_buckle = 0 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/northeast, /area/almayer/engineering/port_atmos) "eqD" = ( /obj/structure/pipes/standard/simple/hidden/supply/no_boom{ dir = 9 }, -/turf/open/floor/almayer/research/containment/floor2{ - dir = 1 - }, +/turf/open/floor/almayer/research/containment/floor2/north, /area/almayer/medical/containment/cell) "eqI" = ( /obj/structure/machinery/cm_vending/sorted/medical/wall_med{ pixel_y = 25 }, /obj/structure/bed/chair, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/almayer/red/north, /area/almayer/shipboard/port_missiles) +"eqL" = ( +/obj/structure/pipes/standard/simple/visible{ + dir = 4 + }, +/turf/open/floor/almayer/plate, +/area/almayer/engineering/lower) "eqN" = ( /turf/open/floor/plating/plating_catwalk, /area/almayer/living/synthcloset) @@ -32602,19 +20196,19 @@ pixel_x = 32; pixel_y = 1 }, -/turf/open/floor/almayer{ - icon_state = "test_floor5" - }, +/turf/open/floor/almayer/test_floor5, /area/almayer/squads/req) "erd" = ( /obj/structure/machinery/light{ unacidable = 1; unslashable = 1 }, -/turf/open/floor/almayer/research/containment/floor2{ - dir = 1 - }, +/turf/open/floor/almayer/research/containment/floor2/north, /area/almayer/medical/containment/cell/cl) +"ere" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_a_p) "erh" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/supply, @@ -32634,31 +20228,27 @@ /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 2 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/squads/delta) -"erx" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 2 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" +"ern" = ( +/obj/structure/pipes/vents/pump, +/turf/open/floor/almayer, +/area/almayer/engineering/lower/engine_core) +"erE" = ( +/obj/structure/machinery/light/small{ + dir = 4 }, -/area/almayer/shipboard/brig/cryo) -"erz" = ( -/obj/structure/closet/crate, -/obj/item/ammo_box/magazine/l42a, -/obj/item/ammo_box/magazine/l42a, -/turf/open/floor/almayer{ - icon_state = "plate" +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/stern) +"erF" = ( +/obj/structure/surface/table/almayer, +/obj/item/storage/firstaid/toxin{ + pixel_x = 8; + pixel_y = -2 }, -/area/almayer/hull/upper_hull/u_m_s) +/obj/item/book/manual/engineering_guide, +/turf/open/floor/almayer/orange, +/area/almayer/engineering/lower) "erG" = ( /obj/structure/disposalpipe/junction{ dir = 2; @@ -32668,61 +20258,80 @@ /obj/effect/landmark/late_join/delta, /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/delta) -"erN" = ( -/obj/structure/machinery/light{ - dir = 8 +"erL" = ( +/obj/structure/surface/table/almayer, +/obj/item/trash/crushed_cup, +/obj/item/reagent_container/food/drinks/cup{ + pixel_x = -5; + pixel_y = 9 }, -/obj/structure/pipes/vents/pump/no_boom{ - dir = 1 +/obj/item/spacecash/c10{ + pixel_x = 5; + pixel_y = 10 }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" +/obj/item/ashtray/plastic{ + pixel_x = 5; + pixel_y = -10 }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_m_s) +"erN" = ( +/turf/open/floor/almayer/aicore/no_build/ai_plates, /area/almayer/command/airoom) -"erS" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_umbilical) -"esi" = ( -/obj/structure/sign/safety/stairs{ - pixel_x = 15; - pixel_y = 32 +"esd" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/obj/structure/sign/safety/west{ - pixel_y = 32 +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/obj/structure/machinery/door_control{ - id = "laddernorthwest"; - name = "North West Ladders Shutters"; - pixel_y = 24; - req_one_access_txt = "2;3;12;19"; - throw_range = 15 +/turf/open/floor/almayer/test_floor4, +/area/almayer/hallways/lower/port_midship_hallway) +"esm" = ( +/obj/structure/sign/safety/storage{ + pixel_x = 8; + pixel_y = -32 }, -/turf/open/floor/almayer{ - icon_state = "plate" +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_f_s) +"esn" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/device/multitool{ + desc = "A large handheld tool used to override various machine functions. Primarily used to pulse Airlock and APC wires on a shortwave frequency. It contains a small data buffer as well. This one is comically oversized. Made in Texas."; + icon_state = "multitool_big"; + name = "\improper Oversized Security Access Tuner"; + pixel_y = 11; + pixel_x = 4 }, -/area/almayer/hallways/starboard_hallway) -"esy" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 +/obj/item/stack/sheet/cardboard/medium_stack{ + pixel_y = -6; + pixel_x = -7; + layer = 3.01 }, -/obj/structure/disposalpipe/segment{ - dir = 4 +/turf/open/floor/almayer, +/area/almayer/squads/alpha_bravo_shared) +"esC" = ( +/obj/structure/toilet{ + pixel_y = 13 }, -/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ - pixel_y = -29 +/obj/item/paper_bin/uscm{ + pixel_x = 9; + pixel_y = -3 + }, +/obj/structure/machinery/light/small{ + dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "silver" +/obj/item/prop/magazine/dirty{ + pixel_x = -6; + pixel_y = -10 }, -/area/almayer/command/cichallway) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/living/captain_mess) "esF" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "silvercorner" - }, +/turf/open/floor/almayer/silvercorner, /area/almayer/command/cichallway) "esK" = ( /obj/structure/desertdam/decals/road_edge{ @@ -32738,16 +20347,20 @@ /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/gym) +"esQ" = ( +/turf/open/floor/almayer/green/northwest, +/area/almayer/hallways/upper/fore_hallway) "esT" = ( -/turf/open/floor/almayer/uscm/directional{ - dir = 9 - }, +/turf/open/floor/almayer/uscm/directional/northwest, /area/almayer/command/lifeboat) "etf" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "plating_striped" +/turf/open/floor/almayer/plating_striped/north, +/area/almayer/command/lifeboat) +"etn" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" }, +/turf/open/floor/almayer/red, /area/almayer/command/lifeboat) "ets" = ( /obj/structure/machinery/power/apc/almayer{ @@ -32771,66 +20384,57 @@ icon_state = "S"; layer = 3.3 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/almayer/engineering/upper_engineering) +"ety" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_m_s) "etE" = ( /obj/structure/prop/almayer/name_stencil, -/turf/open/floor/almayer_hull{ - icon_state = "outerhull_dir" - }, +/turf/open/floor/almayer_hull/outerhull_dir, /area/space) "etF" = ( /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/shipboard/starboard_point_defense) +"etM" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S"; + layer = 3.3 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_y = 1 + }, +/turf/open/floor/almayer/aicore/no_build/ai_floor2, +/area/almayer/command/airoom) +"etN" = ( +/obj/effect/landmark/yautja_teleport, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/s_bow) "eua" = ( /obj/structure/machinery/vending/cigarette, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/bridgebunks) "eup" = ( /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 2 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/living/officer_study) -"euM" = ( -/obj/structure/surface/table/woodentable/fancy, -/obj/item/paper_bin/uscm{ - pixel_x = -17; - pixel_y = 7 - }, -/obj/item/tool/pen/clicky{ - pixel_x = -13; - pixel_y = -1 - }, -/obj/item/tool/pen/clicky{ - pixel_x = -13; - pixel_y = 5 - }, -/obj/structure/machinery/door_control{ - id = "CO-Office"; - name = "Door Control"; - normaldoorcontrol = 1; - pixel_y = 7; - req_access_txt = "31" +"euL" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 1 }, -/obj/item/ashtray/bronze{ - pixel_x = 12; - pixel_y = 1 +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ + name = "\improper Starboard Railguns and Viewing Room" }, -/turf/open/floor/carpet, -/area/almayer/living/commandbunks) +/turf/open/floor/almayer/test_floor4, +/area/almayer/maint/hull/upper/u_f_s) "euN" = ( /obj/effect/decal/warning_stripes{ icon_state = "SE-out" @@ -32842,49 +20446,30 @@ pixel_y = 24; req_one_access_txt = "200;91;92" }, -/turf/open/floor/almayer/no_build{ - icon_state = "tcomms" - }, +/turf/open/floor/almayer/aicore/glowing/no_build, /area/almayer/command/airoom) -"euO" = ( -/obj/structure/machinery/light{ - unacidable = 1; - unslashable = 1 - }, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "red" - }, -/area/almayer/lifeboat_pumps/north1) "euV" = ( -/turf/open/floor/almayer/uscm/directional{ - dir = 8; - icon_state = "logo_c" - }, +/turf/open/floor/almayer/uscm/directional/logo_c/west, /area/almayer/command/cic) -"euY" = ( -/obj/structure/closet/firecloset, -/turf/open/floor/almayer{ - icon_state = "cargo" +"euW" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" }, -/area/almayer/engineering/upper_engineering/port) +/obj/structure/closet/secure_closet/engineering_materials, +/turf/open/floor/almayer/plate, +/area/almayer/engineering/lower/workshop/hangar) "eva" = ( /obj/structure/sign/safety/distribution_pipes{ pixel_x = 32 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/almayer/blue/east, /area/almayer/living/basketball) "evg" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/structure/machinery/computer/emails{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "bluefull" - }, +/turf/open/floor/almayer/bluefull, /area/almayer/living/pilotbunks) "evk" = ( /obj/structure/surface/rack, @@ -32895,30 +20480,46 @@ /obj/item/reagent_container/food/snacks/wrapped/barcardine{ pixel_y = 4 }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/engineering/upper_engineering/starboard) -"evl" = ( -/obj/structure/largecrate/random/barrel/yellow, -/turf/open/floor/almayer{ - icon_state = "plate" +"evC" = ( +/obj/structure/bed/chair{ + dir = 4 + }, +/obj/structure/machinery/door_control{ + id = "civ_uniforms"; + name = "Uniform Vendor Lockdown"; + pixel_x = -24; + pixel_y = -7; + req_access_txt = "31" + }, +/turf/open/floor/almayer, +/area/almayer/living/gym) +"evM" = ( +/obj/structure/machinery/status_display{ + pixel_y = 30 + }, +/turf/open/floor/almayer/green/north, +/area/almayer/hallways/upper/fore_hallway) +"evR" = ( +/obj/structure/surface/table/almayer, +/obj/item/storage/toolbox/mechanical/green{ + pixel_y = 8 }, -/area/almayer/hull/upper_hull/u_f_p) +/obj/item/storage/toolbox/mechanical, +/turf/open/floor/almayer/plate, +/area/almayer/shipboard/brig/general_equipment) "evX" = ( /obj/structure/pipes/standard/manifold/hidden/supply, /turf/open/floor/plating/plating_catwalk, /area/almayer/lifeboat_pumps/north1) -"ewo" = ( -/obj/structure/sign/safety/escapepod{ - pixel_x = 8; - pixel_y = 32 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "greencorner" +"ewc" = ( +/obj/effect/step_trigger/clone_cleaner, +/obj/structure/machinery/light{ + dir = 4 }, -/area/almayer/hallways/starboard_hallway) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/port_fore_hallway) "ewr" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 1 @@ -32929,6 +20530,16 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/brig/cic_hallway) +"ewI" = ( +/obj/structure/machinery/door/airlock/almayer/security/glass{ + name = "\improper Execution Room" + }, +/obj/structure/machinery/door/firedoor/border_only/almayer, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer/test_floor4, +/area/almayer/shipboard/brig/execution) "ewO" = ( /obj/structure/machinery/door/airlock/almayer/maint{ dir = 1 @@ -32937,51 +20548,32 @@ /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 2 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/squads/delta) "ewS" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "silvercorner" - }, +/turf/open/floor/almayer/silvercorner/west, /area/almayer/command/cichallway) -"ewT" = ( -/obj/structure/machinery/door/airlock/almayer/security/glass{ - name = "Brig" +"exb" = ( +/obj/structure/prop/invuln/lattice_prop{ + icon_state = "lattice12"; + pixel_y = -16 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_m_s) +"exc" = ( +/obj/structure/machinery/light{ + dir = 4 }, -/area/almayer/hull/lower_hull/l_f_s) +/turf/open/floor/almayer/blue/east, +/area/almayer/hallways/lower/port_midship_hallway) "exi" = ( /obj/structure/pipes/standard/manifold/hidden/supply, /turf/open/floor/almayer, /area/almayer/command/lifeboat) -"exr" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 5 - }, -/obj/structure/machinery/light{ - unacidable = 1; - unslashable = 1 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_side" - }, -/area/almayer/shipboard/brig/surgery) -"ext" = ( -/obj/structure/machinery/camera/autoname/almayer{ - dir = 4; - name = "ship-grade camera" - }, -/obj/structure/largecrate/random/case/small, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_f_s) +"exl" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_fore_hallway) "exy" = ( /obj/structure/machinery/power/monitor{ name = "Main Power Grid Monitoring" @@ -32989,56 +20581,34 @@ /obj/effect/decal/warning_stripes{ icon_state = "N" }, -/turf/open/floor/almayer{ - icon_state = "tcomms" - }, +/turf/open/floor/almayer/tcomms, /area/almayer/engineering/upper_engineering/starboard) -"eyd" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "NW-out"; - layer = 2.5 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_f_p) -"eyg" = ( -/obj/structure/machinery/cryopod/right{ - pixel_y = 6 - }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/shipboard/brig/cryo) -"eyv" = ( -/obj/structure/machinery/sentry_holder/almayer, -/turf/open/floor/almayer{ - icon_state = "mono" - }, -/area/almayer/lifeboat_pumps/south1) +"exQ" = ( +/turf/open/floor/almayer/greencorner, +/area/almayer/hallways/lower/starboard_midship_hallway) +"eyD" = ( +/turf/closed/wall/almayer/reinforced, +/area/almayer/shipboard/brig/starboard_hallway) "eyG" = ( /obj/structure/platform, -/turf/open/floor/almayer{ - icon_state = "red" - }, +/turf/open/floor/almayer/red, /area/almayer/lifeboat_pumps/south2) +"eyM" = ( +/obj/structure/largecrate/random/barrel/blue, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_f_p) "eyQ" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/northeast, /area/almayer/medical/lower_medical_lobby) "eyR" = ( /obj/structure/sign/safety/bulkhead_door{ pixel_x = 8; pixel_y = -32 }, -/turf/open/floor/almayer{ - icon_state = "orange" - }, +/turf/open/floor/almayer/orange, /area/almayer/hallways/hangar) "eyV" = ( /obj/structure/reagent_dispensers/watertank, @@ -33050,41 +20620,33 @@ pixel_x = -17; pixel_y = 6 }, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "green" - }, +/turf/open/floor/almayer/green/southwest, /area/almayer/shipboard/brig/cells) +"ezq" = ( +/obj/effect/projector{ + name = "Almayer_AresDown"; + vector_x = 96; + vector_y = -65 + }, +/obj/structure/stairs{ + dir = 1; + icon_state = "ramptop" + }, +/turf/open/floor/almayer/aicore/no_build, +/area/almayer/command/airoom) "ezG" = ( /obj/structure/pipes/vents/scrubber{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/medical/lockerroom) "ezQ" = ( /obj/structure/sign/safety/restrictedarea{ pixel_x = 8; pixel_y = -32 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) -"ezU" = ( -/obj/structure/machinery/firealarm{ - pixel_y = 28 - }, -/obj/structure/bed/chair{ - dir = 8; - pixel_y = 3 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "red" - }, -/area/almayer/shipboard/brig/lobby) "ezX" = ( /obj/structure/bed/chair/wood/normal, /turf/open/floor/wood/ship, @@ -33096,26 +20658,56 @@ name = "synthetic potted plant"; pixel_y = 8 }, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/almayer/red/southeast, /area/almayer/squads/alpha) +"eAm" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/starboard_umbilical) +"eAx" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 8 + }, +/turf/open/floor/almayer/silver/west, +/area/almayer/hallways/upper/fore_hallway) "eAC" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/command/lifeboat) +"eAF" = ( +/obj/structure/machinery/light{ + dir = 4 + }, +/turf/open/floor/almayer/silver/east, +/area/almayer/shipboard/brig/cic_hallway) +"eAG" = ( +/obj/structure/surface/table/almayer, +/obj/item/storage/firstaid/regular, +/obj/item/clipboard, +/obj/item/tool/pen, +/turf/open/floor/almayer/plate, +/area/almayer/squads/req) +"eAI" = ( +/turf/open/floor/almayer/orangecorner/west, +/area/almayer/engineering/lower/engine_core) "eAL" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/almayer/red/north, /area/almayer/command/lifeboat) +"eAN" = ( +/turf/open/floor/wood/ship, +/area/almayer/command/corporateliaison) "eAU" = ( /obj/structure/bed/chair{ dir = 8 @@ -33124,10 +20716,7 @@ dir = 8; health = 80 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/almayer/blue/west, /area/almayer/living/basketball) "eBd" = ( /obj/structure/closet/secure_closet/personal/cabinet{ @@ -33137,9 +20726,7 @@ icon_state = "poster14"; pixel_y = 32 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/bridgebunks) "eBe" = ( /obj/structure/pipes/standard/manifold/hidden/supply, @@ -33149,26 +20736,29 @@ /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer, /area/almayer/living/briefing) -"eBj" = ( -/obj/structure/sign/safety/distribution_pipes{ - pixel_x = 32 +"eBx" = ( +/obj/structure/closet/emcloset/legacy, +/turf/open/floor/almayer/cargo, +/area/almayer/shipboard/brig/starboard_hallway) +"eBE" = ( +/obj/structure/machinery/photocopier{ + anchored = 0 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" +/turf/open/floor/wood/ship, +/area/almayer/living/commandbunks) +"eBG" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/area/almayer/hallways/starboard_hallway) -"eBC" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 10 +/obj/structure/sign/safety/distribution_pipes{ + pixel_x = 8; + pixel_y = 32 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/starboard_umbilical) +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_m_p) "eBO" = ( -/obj/structure/bed, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/obj/structure/machinery/medical_pod/bodyscanner, +/turf/open/floor/almayer/mono, /area/almayer/medical/medical_science) "eBV" = ( /obj/structure/window/reinforced{ @@ -33179,20 +20769,8 @@ dir = 4; health = 80 }, -/turf/open/floor/almayer{ - icon_state = "cargo_arrow" - }, +/turf/open/floor/almayer/cargo_arrow, /area/almayer/squads/charlie_delta_shared) -"eBW" = ( -/obj/structure/machinery/firealarm{ - dir = 4; - pixel_x = 24 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" - }, -/area/almayer/shipboard/brig/evidence_storage) "eBZ" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/storage/firstaid/fire{ @@ -33204,9 +20782,7 @@ pixel_y = 3 }, /obj/item/storage/firstaid/adv, -/turf/open/floor/almayer{ - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side, /area/almayer/medical/lower_medical_medbay) "eCo" = ( /obj/structure/platform{ @@ -33219,67 +20795,77 @@ dir = 5; layer = 3.51 }, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/almayer/red/northwest, /area/almayer/lifeboat_pumps/south2) -"eCS" = ( -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 1 +"eCt" = ( +/obj/structure/closet/crate, +/obj/item/stack/sheet/plasteel{ + amount = 30; + pixel_x = 4; + pixel_y = 4 }, -/turf/open/floor/almayer{ - icon_state = "bluefull" +/obj/item/stack/sheet/metal{ + amount = 50 }, -/area/almayer/living/briefing) +/obj/structure/machinery/camera/autoname/almayer{ + dir = 8; + name = "ship-grade camera" + }, +/obj/item/stack/sheet/mineral/uranium{ + amount = 5 + }, +/obj/structure/sign/safety/fire_haz{ + pixel_x = 32 + }, +/turf/open/floor/almayer/cargo, +/area/almayer/engineering/lower/engine_core) +"eCI" = ( +/obj/structure/window/reinforced/ultra{ + pixel_y = -12 + }, +/obj/structure/bed/chair/bolted, +/turf/open/floor/almayer/plating/northeast, +/area/almayer/shipboard/brig/execution) +"eDe" = ( +/obj/structure/machinery/door/airlock/almayer/maint, +/turf/open/floor/almayer/test_floor4, +/area/almayer/maint/upper/u_m_s) "eDo" = ( /obj/effect/decal/warning_stripes{ icon_state = "W"; layer = 2.5 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/almayer/medical/upper_medical) +"eDq" = ( +/obj/structure/largecrate/random/secure, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_m_s) +"eDt" = ( +/obj/structure/surface/table/almayer, +/obj/structure/machinery/computer/cameras/almayer_network{ + dir = 8 + }, +/turf/open/floor/almayer/red/southeast, +/area/almayer/shipboard/brig/processing) "eDu" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" }, /turf/open/floor/almayer, /area/almayer/living/bridgebunks) -"eDz" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/structure/sign/safety/distribution_pipes{ - pixel_x = 32 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_s) -"eDG" = ( -/obj/structure/barricade/handrail{ - dir = 1; - pixel_y = 2 - }, -/obj/structure/sign/safety/hazard{ - pixel_x = 15; - pixel_y = -32 - }, -/obj/structure/sign/safety/fire_haz{ - pixel_y = -32 +"eDT" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/turf/open/floor/almayer, -/area/almayer/hallways/port_hallway) +/turf/open/floor/almayer/orange/north, +/area/almayer/engineering/upper_engineering) "eEc" = ( /obj/structure/machinery/light, /obj/effect/decal/warning_stripes{ icon_state = "SE-out" }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) "eEk" = ( /obj/structure/disposalpipe/segment, @@ -33287,10 +20873,7 @@ /obj/structure/sign/nosmoking_2{ pixel_x = 28 }, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/southeast, /area/almayer/medical/lower_medical_lobby) "eEo" = ( /obj/structure/filingcabinet, @@ -33302,6 +20885,12 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/brig/cic_hallway) +"eFa" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/starboard_midship_hallway) "eFj" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/manifold/hidden/supply{ @@ -33315,24 +20904,16 @@ icon_state = "W"; pixel_x = -1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/charlie) -"eFp" = ( -/obj/structure/surface/rack, -/obj/item/clothing/head/headband/red{ - pixel_x = 4; - pixel_y = 8 - }, -/obj/item/clothing/glasses/regular/hipster, -/turf/open/floor/almayer{ - icon_state = "plate" +"eFG" = ( +/obj/structure/machinery/light{ + dir = 1 }, -/area/almayer/hull/lower_hull/l_f_p) -"eFH" = ( -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_a_s) +/obj/structure/surface/table/almayer, +/obj/item/tool/hand_labeler, +/turf/open/floor/almayer/sterile_green_side/north, +/area/almayer/medical/chemistry) "eFK" = ( /obj/structure/bed{ icon_state = "abed" @@ -33357,10 +20938,7 @@ dir = 4; pixel_y = 4 }, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/northwest, /area/almayer/engineering/upper_engineering/port) "eFM" = ( /obj/structure/surface/table/almayer, @@ -33368,97 +20946,64 @@ icon_state = "pottedplant_22"; pixel_y = 8 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/almayer/red/northeast, /area/almayer/lifeboat_pumps/south1) -"eFT" = ( +"eFP" = ( +/obj/structure/machinery/light{ + dir = 8 + }, +/obj/structure/closet/secure_closet/fridge/organic, +/turf/open/floor/almayer/plate, +/area/almayer/living/grunt_rnr) +"eFT" = ( /obj/structure/bed/sofa/vert/grey, /obj/structure/bed/sofa/vert/grey{ pixel_y = 11 }, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/north1) -"eGb" = ( -/obj/structure/machinery/constructable_frame{ - icon_state = "box_2" - }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, -/area/almayer/lifeboat_pumps/north2) -"eGg" = ( -/obj/structure/machinery/door/poddoor/railing{ - dir = 8; - id = "vehicle_elevator_railing_aux" - }, -/turf/open/floor/almayer, -/area/almayer/hallways/vehiclehangar) -"eGh" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/tool/surgery/scalpel{ - pixel_x = -1; - pixel_y = 10 +"eFY" = ( +/obj/structure/surface/table/woodentable/fancy, +/obj/item/ashtray/bronze{ + pixel_x = 2; + pixel_y = 9 }, -/obj/item/stack/cable_coil, -/turf/open/floor/almayer, -/area/almayer/squads/alpha_bravo_shared) -"eGl" = ( -/obj/item/device/radio/intercom{ - freerange = 1; - name = "General Listening Channel"; - pixel_x = -8; - pixel_y = 28 +/obj/structure/machinery/door_control/cl/office/window{ + pixel_x = 6; + pixel_y = 4 }, -/obj/structure/sign/safety/intercom{ - pixel_x = 14; - pixel_y = 32 +/obj/structure/machinery/door_control/cl/office/door{ + pixel_x = 6; + pixel_y = -3 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "bluecorner" +/obj/item/spacecash/c500{ + pixel_x = -10; + pixel_y = 8 }, -/area/almayer/hallways/aft_hallway) +/turf/open/floor/carpet, +/area/almayer/command/corporateliaison) +"eGq" = ( +/obj/structure/largecrate/random/secure, +/turf/open/floor/almayer/green/east, +/area/almayer/hallways/lower/port_midship_hallway) "eGr" = ( -/obj/structure/machinery/door/airlock/almayer/security/glass/reinforced{ - dir = 1; - name = "\improper Brig" - }, -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/shipboard/brig/surgery) -"eGs" = ( -/obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/almayer{ - icon_state = "cargo_arrow" - }, -/area/almayer/engineering/engineering_workshop/hangar) -"eGz" = ( -/obj/structure/sign/safety/storage{ - pixel_x = -17 +/obj/structure/pipes/standard/simple/hidden/supply/no_boom, +/obj/structure/machinery/camera/autoname/almayer/containment/ares{ + dir = 8; + autoname = 0; + c_tag = "AI - Records" }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_m_p) +/turf/open/floor/almayer/aicore/no_build, +/area/almayer/command/airoom) "eGB" = ( /obj/structure/platform_decoration, /turf/open/floor/almayer, /area/almayer/living/briefing) -"eGF" = ( -/obj/structure/largecrate/random/case/small, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_m_s) "eGH" = ( /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/pilotbunks) "eGZ" = ( /obj/structure/bed/chair{ @@ -33470,68 +21015,75 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/req) -"eHf" = ( -/obj/structure/machinery/light/small, -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_p) -"eHj" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/command/corporateliason) "eHx" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/structure/machinery/faxmachine/uscm/command, -/turf/open/floor/almayer{ - icon_state = "bluefull" - }, +/turf/open/floor/almayer/bluefull, /area/almayer/command/cichallway) +"eHy" = ( +/obj/structure/machinery/conveyor{ + id = "lower_garbage" + }, +/turf/open/floor/almayer/plating_striped/east, +/area/almayer/maint/hull/lower/l_a_p) +"eHX" = ( +/obj/structure/machinery/door/airlock/almayer/maint{ + req_one_access = null; + req_one_access_txt = "2;30;34" + }, +/turf/open/floor/almayer/test_floor4, +/area/almayer/maint/upper/u_f_s) "eHY" = ( /obj/structure/surface/rack, /obj/item/device/taperecorder, -/turf/open/floor/almayer{ - icon_state = "silver" - }, +/turf/open/floor/almayer/silver, /area/almayer/command/computerlab) -"eIA" = ( -/obj/structure/sign/safety/water{ - pixel_x = 8; - pixel_y = -32 +"eIf" = ( +/obj/structure/prop/invuln/pipe_water, +/obj/structure/prop/invuln/overhead_pipe{ + dir = 4; + pixel_x = -12; + pixel_y = 13 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_s) -"eJd" = ( -/obj/structure/platform_decoration{ - dir = 4 +/obj/structure/prop/invuln/overhead_pipe{ + dir = 4; + pixel_x = -12; + pixel_y = 13 }, -/turf/open/floor/almayer{ - icon_state = "plate" +/turf/open/floor/almayer/plate, +/area/almayer/maint/upper/u_f_s) +"eIN" = ( +/obj/item/tool/kitchen/utensil/pfork, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/p_stern) +"eIO" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" }, -/area/almayer/hull/upper_hull/u_a_s) -"eJg" = ( -/obj/structure/largecrate/random/barrel/red, -/turf/open/floor/almayer{ - icon_state = "cargo" +/obj/structure/machinery/door_control{ + id = "hangarentrancenorth"; + name = "North Hangar Podlocks"; + pixel_y = -26; + req_one_access_txt = "2;3;12;19"; + throw_range = 15 }, -/area/almayer/hull/lower_hull/l_m_s) -"eJh" = ( -/obj/structure/sign/safety/storage{ - pixel_x = -17 +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" +/turf/open/floor/almayer/plate, +/area/almayer/hallways/lower/starboard_fore_hallway) +"eIY" = ( +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 4 }, -/area/almayer/hull/lower_hull/l_f_p) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/upper/aft_hallway) +"eJg" = ( +/turf/open/floor/almayer/red/northeast, +/area/almayer/hallways/upper/aft_hallway) "eJQ" = ( /obj/structure/prop/invuln{ desc = "An inflated membrane. This one is puncture proof. Wow!"; @@ -33540,27 +21092,24 @@ name = "umbilical wall" }, /obj/structure/blocker/invisible_wall, -/turf/open/floor/almayer_hull{ - dir = 4; - icon_state = "outerhull_dir" - }, +/turf/open/floor/almayer_hull/outerhull_dir/east, /area/almayer/command/lifeboat) +"eJU" = ( +/obj/structure/bed/chair, +/turf/open/floor/almayer/plate, +/area/almayer/lifeboat_pumps/north1) "eJX" = ( /turf/open/floor/plating/plating_catwalk, /area/almayer/engineering/ce_room) -"eKg" = ( -/obj/structure/disposalpipe/segment{ - layer = 5.1; - name = "water pipe" +"eKy" = ( +/obj/structure/pipes/standard/simple/visible{ + dir = 6 }, -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_f_p) -"eKD" = ( -/obj/structure/machinery/portable_atmospherics/canister/air, -/turf/open/floor/almayer{ - icon_state = "cargo" +/obj/structure/machinery/firealarm{ + pixel_y = 28 }, -/area/almayer/hull/upper_hull/u_a_s) +/turf/open/floor/almayer/plate, +/area/almayer/engineering/lower) "eKH" = ( /obj/structure/pipes/vents/pump, /turf/open/floor/almayer, @@ -33573,80 +21122,106 @@ /obj/structure/barricade/handrail{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "test_floor5" - }, +/turf/open/floor/almayer/test_floor5, /area/almayer/squads/req) "eKJ" = ( /obj/structure/machinery/status_display{ pixel_y = 30 }, -/obj/structure/machinery/light{ - dir = 4; - invisibility = 101; - unacidable = 1; - unslashable = 1 - }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, +/turf/open/floor/almayer/aicore/glowing/no_build/ai_floor3, /area/almayer/command/airoom) -"eKK" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = 11 +"eKQ" = ( +/obj/structure/pipes/vents/scrubber{ + dir = 8 }, -/obj/structure/mirror{ - pixel_x = 28 +/turf/open/floor/almayer, +/area/almayer/engineering/lower/workshop) +"eKT" = ( +/obj/structure/surface/table/almayer, +/obj/item/facepaint/black, +/turf/open/floor/almayer/green/west, +/area/almayer/living/offices) +"eKZ" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ + dir = 1; + name = "\improper Port Viewing Room" }, +/turf/open/floor/almayer/test_floor4, +/area/almayer/maint/hull/upper/u_f_p) +"eLp" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; - pixel_y = 2 + pixel_y = 1 + }, +/obj/structure/machinery/computer/supplycomp/vehicle, +/turf/open/floor/almayer/plate, +/area/almayer/hallways/lower/vehiclehangar) +"eLu" = ( +/obj/structure/sign/safety/three{ + pixel_x = 31; + pixel_y = -8 }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" +/obj/structure/sign/safety/ammunition{ + pixel_x = 32; + pixel_y = 7 }, -/area/almayer/command/corporateliason) -"eKM" = ( -/obj/structure/surface/rack, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - icon_state = "plate" +/turf/open/floor/almayer/emerald/east, +/area/almayer/hallways/lower/port_midship_hallway) +"eLC" = ( +/obj/structure/surface/table/almayer, +/obj/item/tool/kitchen/tray, +/obj/item/tool/kitchen/tray{ + pixel_y = 6 }, -/area/almayer/hull/upper_hull/u_f_s) -"eKO" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 +/obj/item/reagent_container/food/snacks/sliceable/bread{ + pixel_y = 8 }, -/obj/structure/bed/chair{ - dir = 1 +/obj/item/tool/kitchen/knife{ + pixel_x = 6 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_s) -"eKT" = ( +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_f_p) +"eLH" = ( /obj/structure/surface/table/almayer, -/obj/item/facepaint/black, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "green" +/obj/item/storage/beer_pack, +/obj/structure/sign/poster{ + desc = "YOU ALWAYS KNOW A WORKING JOE. YOU ALWAYS KNOW A WORKING JOE. YOU ALWAYS KNOW A WORKING JOE. YOU ALWAYS KNOW A WORKING JOE. YOU ALWAYS KNOW A WORKING JOE."; + icon_state = "poster11"; + name = "YOU ALWAYS KNOW A WORKING JOE."; + pixel_x = -27; + serial_number = 11 }, -/area/almayer/living/offices) -"eLz" = ( -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 1 +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_m_s) +"eLX" = ( +/obj/structure/bed/chair{ + dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "silver" +/turf/open/floor/almayer/red/north, +/area/almayer/shipboard/brig/mp_bunks) +"eMr" = ( +/obj/structure/machinery/status_display{ + pixel_y = 30 }, -/area/almayer/hallways/repair_bay) -"eMh" = ( -/obj/structure/machinery/door/airlock/almayer/generic{ - name = "\improper Laundry Room" +/turf/open/floor/almayer, +/area/almayer/hallways/upper/midship_hallway) +"eMx" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_a_p) +"eMI" = ( +/turf/open/floor/almayer/blue/west, +/area/almayer/hallways/lower/port_midship_hallway) +"eMJ" = ( +/obj/structure/machinery/light{ + unacidable = 1; + unslashable = 1 }, -/area/almayer/engineering/laundry) +/obj/structure/machinery/computer/crew, +/turf/open/floor/almayer/red, +/area/almayer/shipboard/brig/perma) "eMP" = ( /obj/structure/machinery/door/poddoor/almayer/open{ dir = 4; @@ -33659,167 +21234,172 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/command/cichallway) +"eMZ" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_midship_hallway) "eNi" = ( /turf/closed/wall/almayer, /area/almayer/engineering/ce_room) -"eNv" = ( -/obj/structure/largecrate/random, -/turf/open/floor/almayer, -/area/almayer/engineering/upper_engineering/port) -"eNx" = ( -/obj/structure/machinery/vending/snack, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_s) "eNI" = ( /obj/structure/machinery/door/poddoor/shutters/almayer{ dir = 4; id = "containmentlockdown_S"; name = "\improper Containment Lockdown" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/medical/containment) "eNL" = ( -/obj/structure/surface/table/almayer, -/obj/item/stack/sheet/cardboard{ - amount = 50; - pixel_x = 4 +/turf/open/floor/almayer/green/north, +/area/almayer/hallways/lower/starboard_midship_hallway) +"eNR" = ( +/obj/structure/window/framed/almayer, +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 }, /turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_f_p) -"eOh" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "redcorner" - }, -/area/almayer/shipboard/brig/evidence_storage) -"eOk" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 6 - }, -/turf/open/floor/almayer{ - allow_construction = 0 - }, -/area/almayer/shipboard/brig/lobby) -"eOr" = ( -/obj/structure/bed/chair{ - dir = 8 - }, -/obj/effect/decal/cleanable/blood, -/obj/structure/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" +/area/almayer/shipboard/brig/processing) +"eOx" = ( +/obj/item/device/radio/intercom{ + freerange = 1; + name = "General Listening Channel"; + pixel_y = -28 }, -/area/almayer/hull/lower_hull/l_f_p) +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_midship_hallway) "eOM" = ( /obj/structure/machinery/door/airlock/almayer/secure/reinforced{ dir = 2; name = "\improper Evacuation Airlock PU-6"; req_access = null }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/powered) -"eOR" = ( -/obj/structure/machinery/light{ +"eON" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_y = 1 + }, +/turf/open/floor/almayer/red/southwest, +/area/almayer/hallways/upper/starboard) +"ePq" = ( +/obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" +/turf/open/floor/almayer/orange/west, +/area/almayer/hallways/lower/starboard_umbilical) +"ePz" = ( +/obj/structure/largecrate/supply/weapons/pistols, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/upper/u_m_s) +"ePM" = ( +/obj/structure/sign/safety/distribution_pipes{ + pixel_x = 32 }, -/area/almayer/shipboard/brig/main_office) -"eOW" = ( -/obj/structure/surface/table/almayer, -/obj/structure/machinery/computer/sentencing, -/turf/open/floor/almayer, -/area/almayer/shipboard/brig/processing) -"ePk" = ( -/obj/structure/airlock_assembly, -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_f_p) -"ePs" = ( -/obj/structure/prop/invuln/overhead_pipe{ - dir = 4; - pixel_x = -14; - pixel_y = 13 +/obj/effect/decal/warning_stripes{ + icon_state = "SE-out"; + pixel_x = 1 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_a_s) -"ePA" = ( -/obj/structure/machinery/light{ - dir = 1 +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_x = 1; + pixel_y = 1 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/upper/port) +"ePN" = ( +/obj/structure/closet/crate, +/obj/item/stack/sheet/mineral/plastic{ + amount = 5 }, -/area/almayer/hallways/starboard_hallway) -"ePB" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "redcorner" +/obj/item/stack/sheet/glass{ + amount = 50; + pixel_x = 3; + pixel_y = 3 }, -/area/almayer/shipboard/brig/general_equipment) -"ePY" = ( -/obj/structure/pipes/vents/pump{ - dir = 8; - id_tag = "mining_outpost_pump" +/obj/item/stack/sheet/metal{ + amount = 50 }, -/turf/open/floor/almayer, -/area/almayer/engineering/engineering_workshop) -"eQi" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer, -/obj/structure/sign/safety/maint{ - pixel_x = 8; - pixel_y = 32 +/obj/item/stack/sheet/plasteel{ + amount = 30; + pixel_x = 4; + pixel_y = 4 }, /obj/effect/decal/warning_stripes{ - icon_state = "NW-out"; - pixel_y = 1 + icon_state = "S" }, -/obj/effect/decal/warning_stripes{ - icon_state = "NE-out"; - pixel_y = 1 +/obj/effect/decal/cleanable/blood/oil, +/turf/open/floor/almayer/cargo, +/area/almayer/engineering/lower/workshop/hangar) +"eQj" = ( +/obj/structure/machinery/door_control{ + id = "ARES StairsUpper"; + name = "ARES Core Access"; + pixel_x = -5; + pixel_y = -24; + req_one_access_txt = "91;92" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +/obj/structure/machinery/door_control{ + id = "ARES StairsLock"; + name = "ARES Exterior Lockdown"; + pixel_y = -24; + req_one_access_txt = "91;92"; + pixel_x = 6 }, -/area/almayer/hallways/aft_hallway) -"eRe" = ( -/obj/structure/bed/chair/comfy/orange{ - dir = 8 +/obj/structure/surface/table/reinforced/almayer_B{ + indestructible = 1; + unacidable = 1; + unslashable = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/structure/machinery/computer/cameras/almayer{ + dir = 4; + pixel_y = 12 }, -/area/almayer/hull/upper_hull/u_a_p) -"eRt" = ( -/obj/structure/sign/safety/ammunition{ - pixel_x = 15; - pixel_y = 32 +/obj/structure/machinery/computer/cameras/almayer/ares{ + dir = 4; + pixel_y = -1 }, -/obj/structure/sign/safety/hazard{ - pixel_y = 32 +/turf/open/floor/almayer/aicore/no_build, +/area/almayer/command/airoom) +"eQm" = ( +/obj/structure/machinery/power/apc/almayer{ + dir = 1 }, -/obj/structure/closet/secure_closet/guncabinet/red/armory_m39_submachinegun, -/turf/open/floor/almayer{ - icon_state = "redfull" +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/p_bow) +"eQz" = ( +/obj/structure/largecrate/random/case/double, +/turf/open/floor/almayer/plate, +/area/almayer/hallways/lower/vehiclehangar) +"eQJ" = ( +/obj/structure/bed/chair{ + dir = 1 + }, +/obj/structure/sign/poster/ad{ + pixel_x = 30 + }, +/turf/open/floor/wood/ship, +/area/almayer/command/corporateliaison) +"eQR" = ( +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/s_bow) +"eRi" = ( +/obj/structure/surface/table/woodentable/fancy, +/obj/item/folder/black{ + pixel_y = 8 + }, +/obj/item/folder/yellow, +/obj/item/device/flashlight/lamp/green{ + pixel_x = -16; + pixel_y = 8 }, -/area/almayer/hull/lower_hull/l_f_s) +/turf/open/floor/carpet, +/area/almayer/living/commandbunks) "eRu" = ( /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 2 @@ -33833,9 +21413,7 @@ /obj/structure/machinery/door/airlock/multi_tile/almayer/comdoor/reinforced{ name = "\improper Combat Information Center" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/command/cic) "eRy" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/medidoor{ @@ -33844,13 +21422,21 @@ name = "\improper Treatment Center" }, /obj/structure/machinery/door/firedoor/border_only/almayer, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/medical/lower_medical_medbay) -"eRL" = ( -/turf/open/floor/almayer, -/area/almayer/shipboard/brig/main_office) +"eRI" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/obj/structure/machinery/camera/autoname/almayer/containment/ares{ + dir = 8; + pixel_y = 2; + autoname = 0; + c_tag = "AI - Reception Exterior" + }, +/turf/open/floor/almayer/silver/east, +/area/almayer/hallways/upper/midship_hallway) "eRR" = ( /obj/item/clothing/head/helmet/marine{ pixel_x = 16; @@ -33858,25 +21444,44 @@ }, /obj/item/reagent_container/food/snacks/grown/poppy, /obj/effect/step_trigger/message/memorial, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/starboard_garden) +"eRS" = ( +/turf/open/floor/almayer/cargo_arrow, +/area/almayer/engineering/lower/workshop/hangar) +"eSk" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/obj/structure/sign/safety/airlock{ + pixel_x = -17; + pixel_y = 7 + }, +/obj/structure/sign/safety/hazard{ + pixel_x = -17; + pixel_y = -8 + }, +/turf/open/floor/almayer/plating/northeast, +/area/almayer/shipboard/stern_point_defense) "eSo" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/northeast, /area/almayer/medical/medical_science) +"eSp" = ( +/obj/structure/sign/safety/ladder{ + pixel_x = -16 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/vehiclehangar) "eSU" = ( /obj/structure/prop/almayer/name_stencil{ icon_state = "almayer1" }, -/turf/open/floor/almayer_hull{ - icon_state = "outerhull_dir" - }, +/turf/open/floor/almayer_hull/outerhull_dir, /area/space) +"eTb" = ( +/turf/closed/wall/almayer, +/area/almayer/maint/hull/lower/stern) "eTd" = ( /obj/structure/surface/table/almayer, /obj/item/trash/boonie{ @@ -33887,56 +21492,40 @@ /obj/effect/landmark/crap_item, /turf/open/floor/almayer, /area/almayer/living/briefing) -"eTh" = ( -/obj/item/device/radio/intercom{ - freerange = 1; - name = "General Listening Channel"; - pixel_y = 28 - }, -/obj/item/clothing/suit/storage/marine/light/vest, -/obj/item/clothing/suit/storage/marine/light/vest, -/obj/item/clothing/suit/storage/marine/light/vest, -/obj/item/clothing/suit/storage/marine/light/vest, -/obj/item/clothing/suit/storage/marine/light/vest, -/obj/item/clothing/suit/storage/marine/light/vest, -/obj/structure/surface/rack, -/obj/item/clothing/suit/storage/marine/light/vest, -/obj/item/clothing/suit/storage/marine/light/vest, -/obj/item/clothing/suit/storage/marine/light/vest, -/obj/item/clothing/suit/storage/marine/light/vest, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, -/area/almayer/medical/upper_medical) -"eTo" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ +"eTm" = ( +/obj/structure/machinery/disposal, +/obj/structure/disposalpipe/trunk{ dir = 4 }, -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/obj/structure/sign/safety/bathunisex{ - pixel_x = 8; - pixel_y = 25 - }, -/turf/open/floor/almayer, -/area/almayer/shipboard/brig/cells) +/turf/open/floor/almayer/plate, +/area/almayer/maint/upper/u_a_s) "eTx" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "S" +/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ + pixel_y = 25 }, -/obj/structure/closet/secure_closet/guncabinet/red/mp_armory_shotgun, -/turf/open/floor/plating/almayer, -/area/almayer/shipboard/brig/armory) -"eTO" = ( -/obj/structure/sign/safety/maint{ - pixel_x = -17 +/turf/open/floor/almayer/green/north, +/area/almayer/hallways/lower/port_aft_hallway) +"eTC" = ( +/obj/structure/machinery/cm_vending/sorted/medical/bolted, +/obj/structure/medical_supply_link, +/turf/open/floor/almayer/sterile_green_side/north, +/area/almayer/medical/lockerroom) +"eTD" = ( +/obj/structure/bed/chair{ + dir = 4 }, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "red" +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_a_s) +"eUe" = ( +/obj/structure/sign/safety/hvac_old{ + pixel_x = 8; + pixel_y = -32 }, -/area/almayer/hallways/stern_hallway) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/stern) +"eUf" = ( +/turf/open/floor/almayer/orange/west, +/area/almayer/hallways/lower/starboard_midship_hallway) "eUh" = ( /obj/structure/window/reinforced{ dir = 8 @@ -33953,129 +21542,121 @@ }, /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/charlie_delta_shared) "eUn" = ( /obj/structure/machinery/chem_master, -/turf/open/floor/almayer{ - icon_state = "sterile_green_corner" - }, +/turf/open/floor/almayer/sterile_green_corner, /area/almayer/medical/chemistry) -"eUz" = ( -/obj/structure/machinery/disposal{ - density = 0; - layer = 3.2; - pixel_y = 16 - }, -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/port_hallway) "eUA" = ( /obj/effect/decal/warning_stripes{ icon_state = "NW-out"; pixel_x = -1; pixel_y = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/alpha) -"eUR" = ( -/obj/structure/bed/chair/comfy/orange, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/almayer/command/corporateliason) -"eUU" = ( -/obj/structure/closet/secure_closet/brig{ - name = "Spare Prison Uniforms" - }, -/obj/item/clothing/shoes/orange, -/obj/item/clothing/shoes/orange, -/obj/item/clothing/shoes/orange, -/obj/item/clothing/shoes/orange, -/obj/item/clothing/under/color/orange, -/obj/item/clothing/under/color/orange, -/obj/item/clothing/under/color/orange, -/obj/item/clothing/under/color/orange, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" +"eUZ" = ( +/obj/structure/machinery/firealarm{ + pixel_y = 28 }, -/area/almayer/shipboard/brig/processing) +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer/plate, +/area/almayer/living/briefing) "eVj" = ( /obj/structure/bed/chair/office/dark{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/command/cic) "eVm" = ( /obj/structure/sign/safety/bulkhead_door{ pixel_x = 8; pixel_y = 32 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) "eVv" = ( /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 2 }, /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/living/briefing) +"eVE" = ( +/obj/structure/surface/table/almayer, +/obj/item/device/lightreplacer, +/obj/item/device/radio, +/turf/open/floor/almayer/plate, +/area/almayer/engineering/lower/workshop) "eVQ" = ( /obj/structure/machinery/light{ dir = 4 }, /turf/open/floor/almayer, /area/almayer/living/chapel) +"eVR" = ( +/obj/structure/filingcabinet{ + density = 0; + pixel_x = -8; + pixel_y = 18 + }, +/obj/structure/filingcabinet{ + density = 0; + pixel_x = 8; + pixel_y = 18 + }, +/obj/structure/machinery/power/apc/almayer{ + dir = 8 + }, +/obj/structure/sign/safety/rewire{ + pixel_x = -17; + pixel_y = 17 + }, +/turf/open/floor/almayer/cargo, +/area/almayer/shipboard/brig/evidence_storage) "eVT" = ( /obj/structure/disposalpipe/trunk{ dir = 1 }, /obj/structure/machinery/disposal, -/turf/open/floor/almayer{ - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side, /area/almayer/medical/medical_science) +"eWf" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer/silver/east, +/area/almayer/hallways/upper/midship_hallway) "eWp" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/bed/chair/comfy/charlie{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "emeraldfull" - }, +/turf/open/floor/almayer/emeraldfull, /area/almayer/living/briefing) +"eWs" = ( +/turf/closed/wall/almayer, +/area/almayer/maint/hull/lower/l_f_s) +"eWv" = ( +/turf/open/floor/almayer/green, +/area/almayer/hallways/lower/port_midship_hallway) +"eWx" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/port_fore_hallway) "eWF" = ( /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 2 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/living/basketball) -"eWY" = ( -/obj/structure/machinery/light/small{ - dir = 1 - }, -/obj/structure/largecrate/random/barrel/white, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_s) "eXb" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -34084,15 +21665,8 @@ dir = 4 }, /obj/structure/machinery/medical_pod/bodyscanner, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/north, /area/almayer/medical/lower_medical_medbay) -"eXo" = ( -/obj/structure/machinery/light/small, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_p) "eXq" = ( /turf/closed/wall/almayer, /area/almayer/living/offices/flight) @@ -34100,15 +21674,47 @@ /obj/structure/pipes/vents/pump, /turf/open/floor/almayer, /area/almayer/living/offices) -"eXU" = ( -/obj/structure/bed/chair{ - dir = 8; - pixel_y = 3 +"eXy" = ( +/obj/effect/projector{ + name = "Almayer_AresDown"; + vector_x = 96; + vector_y = -65 + }, +/obj/structure/stairs{ + dir = 1; + icon_state = "ramptop" + }, +/turf/open/floor/almayer/aicore/glowing/no_build/ai_floor3, +/area/almayer/command/airoom) +"eXD" = ( +/obj/structure/prop/invuln/lattice_prop{ + dir = 1; + icon_state = "lattice-simple"; + pixel_x = 16; + pixel_y = -16 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_m_s) +"eYj" = ( +/obj/structure/machinery/light{ + dir = 8 + }, +/obj/structure/bed/chair/comfy/alpha{ + dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" +/turf/open/floor/almayer/plate, +/area/almayer/living/briefing) +"eYn" = ( +/obj/structure/filingcabinet/security, +/turf/open/floor/wood/ship, +/area/almayer/command/corporateliaison) +"eYp" = ( +/obj/structure/machinery/door/airlock/almayer/maint{ + dir = 1; + name = "\improper Tool Closet" }, -/area/almayer/hull/upper_hull/u_m_s) +/turf/open/floor/almayer/test_floor4, +/area/almayer/maint/hull/lower/l_m_s) "eYr" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -34119,10 +21725,7 @@ }, /obj/item/clothing/suit/storage/marine/light/vest, /obj/item/clothing/suit/storage/marine/light/vest, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/almayer/squads/req) "eYu" = ( /obj/structure/surface/table/reinforced/almayer_B, @@ -34132,31 +21735,21 @@ /obj/structure/machinery/computer/card{ pixel_x = 9 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/briefing) -"eYz" = ( -/obj/structure/machinery/camera/autoname/almayer/containment/ares{ - dir = 1 - }, -/obj/structure/machinery/computer/working_joe{ - dir = 8; - pixel_x = 29 - }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, -/area/almayer/command/airoom) -"eYH" = ( -/obj/structure/platform{ - dir = 4 +"eYD" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" }, -/obj/effect/decal/cleanable/blood/oil/streak, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 1 }, -/area/almayer/hull/upper_hull/u_a_p) +/turf/open/floor/almayer/plate, +/area/almayer/engineering/lower) +"eYF" = ( +/obj/structure/pipes/vents/pump, +/turf/open/floor/almayer/emeraldfull, +/area/almayer/living/briefing) "eYM" = ( /obj/structure/desertdam/decals/road_edge{ pixel_x = 2; @@ -34180,71 +21773,102 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 5 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orangecorner" - }, +/turf/open/floor/almayer/orangecorner/east, /area/almayer/engineering/upper_engineering/port) -"eYW" = ( -/obj/structure/filingcabinet/security, -/turf/open/floor/wood/ship, -/area/almayer/command/corporateliason) -"eZi" = ( -/obj/effect/projector{ - name = "Almayer_Up4"; - vector_x = -19; - vector_y = 104 +"eZm" = ( +/turf/closed/wall/almayer, +/area/almayer/maint/hull/upper/p_stern) +"eZo" = ( +/obj/structure/disposalpipe/segment{ + dir = 8 }, -/turf/open/floor/almayer{ - allow_construction = 0 +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/area/almayer/hallways/port_hallway) -"eZj" = ( -/obj/structure/closet/secure_closet/guncabinet, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" +/obj/structure/reagent_dispensers/water_cooler/stacks{ + density = 0; + pixel_y = 17 }, -/area/almayer/shipboard/brig/main_office) -"eZz" = ( -/obj/structure/sign/safety/water{ - pixel_x = 8; - pixel_y = -32 +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/cells) +"eZp" = ( +/obj/structure/platform{ + dir = 4; + layer = 2.7 }, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 }, -/area/almayer/hull/lower_hull/l_m_s) +/turf/open/floor/almayer/plating/northeast, +/area/almayer/engineering/lower/engine_core) +"eZC" = ( +/turf/open/floor/almayer/plate, +/area/almayer/hallways/lower/starboard_fore_hallway) "eZH" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/brig/cells) -"eZQ" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" - }, -/area/almayer/hull/upper_hull/u_a_p) -"fad" = ( -/obj/effect/step_trigger/clone_cleaner, -/turf/open/floor/almayer{ - icon_state = "green" +"eZR" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/area/almayer/hallways/aft_hallway) -"fau" = ( -/obj/structure/pipes/standard/manifold/hidden/supply, /obj/structure/disposalpipe/junction{ - dir = 4; - icon_state = "pipe-j2" + dir = 8 }, /turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/starboard_hallway) +/area/almayer/hallways/lower/port_aft_hallway) +"fag" = ( +/obj/effect/decal/cleanable/blood, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/execution) +"far" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/turf/open/floor/almayer/orangecorner/east, +/area/almayer/hallways/lower/port_aft_hallway) +"faE" = ( +/obj/structure/bookcase{ + icon_state = "book-5"; + name = "law and engineering manuals bookcase"; + opacity = 0 + }, +/obj/item/book/manual/marine_law, +/obj/item/book/manual/detective, +/obj/item/book/manual/security_space_law, +/obj/item/book/manual/engineering_guide, +/obj/item/book/manual/engineering_construction, +/obj/item/book/manual/orbital_cannon_manual, +/obj/item/book/manual/ripley_build_and_repair, +/obj/item/book/manual/engineering_hacking, +/obj/structure/machinery/light{ + dir = 8 + }, +/turf/open/floor/wood/ship, +/area/almayer/living/commandbunks) "faO" = ( /obj/item/stack/cable_coil, /turf/open/floor/plating/plating_catwalk, /area/almayer/lifeboat_pumps/south2) +"faR" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/prop/invuln/lattice_prop{ + dir = 1; + icon_state = "lattice-simple"; + pixel_x = -16; + pixel_y = 17 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_m_p) "faX" = ( /obj/structure/machinery/door/poddoor/almayer/open{ dir = 4; @@ -34255,9 +21879,7 @@ dir = 1; name = "\improper Combat Information Center" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/command/cichallway) "fbb" = ( /obj/effect/decal/warning_stripes{ @@ -34273,37 +21895,39 @@ /obj/structure/machinery/firealarm{ pixel_y = 28 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/alpha) +"fbe" = ( +/obj/structure/machinery/light/small{ + dir = 1 + }, +/obj/structure/largecrate/random/barrel/yellow, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_m_s) "fbo" = ( /obj/structure/machinery/door_control{ id = "kitchen2"; name = "Main Kitchen Shutters"; pixel_x = -28 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/almayer/living/grunt_rnr) -"fbv" = ( -/obj/structure/machinery/light{ - dir = 8 - }, -/obj/structure/sign/safety/security{ - pixel_x = -17; - pixel_y = 6 - }, -/obj/structure/sign/safety/reception{ - pixel_x = -17; - pixel_y = -8 +"fbr" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/secdoor/glass/reinforced{ + closeOtherId = "briglobby"; + dir = 2; + name = "\improper Brig Lobby" }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "silver" +/obj/structure/machinery/door/firedoor/border_only/almayer, +/turf/open/floor/almayer/test_floor4, +/area/almayer/shipboard/brig/processing) +"fbu" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" }, -/area/almayer/shipboard/brig/cic_hallway) +/obj/structure/platform, +/turf/open/floor/almayer/plating/northeast, +/area/almayer/engineering/lower/engine_core) "fbw" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -34312,85 +21936,73 @@ dir = 4 }, /obj/structure/machinery/body_scanconsole, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/northwest, /area/almayer/medical/lower_medical_medbay) -"fbx" = ( -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_a_p) "fbB" = ( /obj/structure/pipes/standard/manifold/fourway/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/medical/upper_medical) -"fbY" = ( -/obj/structure/window/framed/almayer, -/obj/structure/machinery/door/poddoor/shutters/almayer/open{ - dir = 2; - id = "Execution Shutters"; - name = "\improper Privacy Shutters" +"fbC" = ( +/obj/structure/closet/toolcloset, +/turf/open/floor/almayer/orange/southeast, +/area/almayer/maint/hull/lower/l_m_s) +"fbR" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 }, -/obj/structure/machinery/door/poddoor/almayer/open{ - id = "Brig Lockdown Shutters"; - name = "\improper Brig Lockdown Shutter" +/obj/structure/machinery/status_display{ + pixel_x = 32 }, -/obj/structure/machinery/door/poddoor/almayer/open{ - id = "perma_lockdown"; - name = "\improper Perma Lockdown Shutter" +/turf/open/floor/almayer/red/northwest, +/area/almayer/hallways/upper/starboard) +"fbU" = ( +/obj/item/stool, +/obj/effect/decal/warning_stripes{ + icon_state = "W" }, -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 1 +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer/plating/northeast, +/area/almayer/hallways/lower/vehiclehangar) +"fbV" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer/redfull, +/area/almayer/lifeboat_pumps/north2) +"fca" = ( +/obj/structure/disposalpipe/segment{ + layer = 5.1; + name = "water pipe" }, /turf/open/floor/plating, -/area/almayer/shipboard/brig/execution) +/area/almayer/maint/lower/constr) "fcf" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, /turf/open/floor/almayer, /area/almayer/living/briefing) +"fco" = ( +/obj/structure/surface/rack, +/obj/item/device/radio{ + pixel_x = 5; + pixel_y = 4 + }, +/obj/item/device/radio, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/s_bow) "fcy" = ( /obj/structure/machinery/light{ dir = 8 }, /obj/structure/machinery/autolathe, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/medical/hydroponics) "fcB" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "emerald" - }, +/turf/open/floor/almayer/emerald/west, /area/almayer/squads/charlie) "fcE" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "bluecorner" - }, +/turf/open/floor/almayer/bluecorner/north, /area/almayer/living/basketball) -"fcF" = ( -/obj/structure/surface/rack, -/obj/structure/machinery/camera/autoname/almayer{ - dir = 4; - name = "ship-grade camera" - }, -/turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_s) -"fcG" = ( -/obj/structure/largecrate/random/case, -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_f_p) -"fcI" = ( -/obj/structure/pipes/vents/scrubber{ - dir = 1 - }, -/turf/open/floor/almayer, -/area/almayer/engineering/engine_core) "fcM" = ( /obj/structure/machinery/camera/autoname/almayer{ name = "ship-grade camera" @@ -34398,64 +22010,61 @@ /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/north, /area/almayer/engineering/ce_room) "fcP" = ( -/turf/open/floor/almayer{ - icon_state = "orange" - }, +/turf/open/floor/almayer/orange, /area/almayer/engineering/upper_engineering/starboard) -"fcX" = ( -/obj/effect/step_trigger/clone_cleaner, -/obj/structure/machinery/light{ - dir = 8 - }, -/obj/structure/platform_decoration{ - dir = 1 - }, -/turf/open/floor/almayer/no_build{ - dir = 8; - icon_state = "silver" - }, -/area/almayer/command/airoom) -"fdj" = ( -/obj/structure/surface/table/almayer, -/obj/item/storage/pouch/tools/full, -/turf/open/floor/almayer{ - icon_state = "plate" +"fcS" = ( +/turf/open/floor/almayer/orange/north, +/area/almayer/engineering/lower) +"fdx" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/area/almayer/hull/upper_hull/u_m_p) -"fdA" = ( -/obj/structure/sign/safety/storage{ - pixel_x = 8; - pixel_y = 32 +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_p) +/turf/open/floor/wood/ship, +/area/almayer/command/corporateliaison) "fdE" = ( /obj/item/clothing/mask/rebreather/scarf, /obj/structure/closet/secure_closet/personal/cabinet{ req_access = null }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/pilotbunks) "fdX" = ( /obj/structure/surface/table/almayer, /obj/item/tool/hand_labeler, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/command/lifeboat) "fdZ" = ( -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/medical/lockerroom) +"fea" = ( +/obj/structure/sign/safety/hvac_old{ + pixel_x = 8; + pixel_y = 32 + }, +/obj/structure/sign/safety/storage{ + pixel_x = 8; + pixel_y = -32 + }, +/obj/structure/machinery/light/small, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_f_s) +"feb" = ( +/turf/closed/wall/almayer/outer, +/area/almayer/shipboard/brig/execution) +"feo" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_x = 2; + pixel_y = 3 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_aft_hallway) "feq" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -34463,21 +22072,19 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "green" - }, +/turf/open/floor/almayer/green/west, /area/almayer/living/grunt_rnr) "feD" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22"; pixel_y = 8 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/northeast, /area/almayer/command/cichallway) +"feG" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer, +/area/almayer/maint/hull/upper/u_f_p) "feI" = ( /obj/item/trash/cigbutt, /turf/open/floor/almayer, @@ -34488,47 +22095,60 @@ name = "PO2 Privacy Shutters"; pixel_x = -24 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/pilotbunks) "feY" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/closet/secure_closet/surgical{ pixel_x = -30 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/west, /area/almayer/medical/operating_room_two) -"ffl" = ( +"ffg" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/perma) +"ffq" = ( /obj/structure/surface/table/almayer, -/obj/effect/landmark/map_item, -/obj/item/paper_bin/uscm{ +/obj/item/clothing/head/hardhat{ + pixel_y = 15 + }, +/obj/item/clothing/head/hardhat/dblue{ pixel_x = -7; - pixel_y = 6 + pixel_y = 10 }, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/item/clothing/head/hardhat{ + pixel_x = 4; + pixel_y = 7 }, -/area/almayer/living/briefing) -"ffE" = ( -/turf/open/floor/almayer/no_build{ - icon_state = "plating" +/obj/item/clothing/head/hardhat/orange{ + pixel_x = 7; + pixel_y = -5 + }, +/turf/open/floor/plating, +/area/almayer/maint/lower/constr) +"ffx" = ( +/obj/structure/machinery/light/small{ + dir = 8 }, +/obj/item/clothing/head/helmet/marine/tech/tanker, +/obj/structure/largecrate/random/secure, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_a_p) +"ffE" = ( +/turf/open/floor/almayer/no_build/plating, /area/almayer/command/airoom) -"ffV" = ( -/obj/structure/surface/table/almayer, -/obj/structure/machinery/computer/crew/alt, -/obj/structure/transmitter/rotary/no_dnd{ - name = "Brig Cells Telephone"; - phone_category = "Almayer"; - phone_id = "Brig Cells"; - pixel_x = 15 +"ffN" = ( +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12 }, -/turf/open/floor/almayer, -/area/almayer/shipboard/brig/processing) +/obj/structure/sign/safety/water{ + pixel_x = 8; + pixel_y = -32 + }, +/obj/structure/machinery/power/apc/almayer, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/s_bow) "fgh" = ( /obj/structure/machinery/light/small{ dir = 8 @@ -34537,34 +22157,23 @@ /obj/item/device/flashlight, /obj/item/device/flashlight, /obj/item/device/flashlight, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/shipboard/starboard_point_defense) "fgl" = ( -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/shipboard/brig/perma) "fgm" = ( /obj/structure/machinery/atm{ pixel_y = 32 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/almayer/green/north, /area/almayer/squads/req) -"fgo" = ( -/obj/docking_port/stationary/escape_pod/north, -/turf/open/floor/plating, -/area/almayer/hull/upper_hull/u_m_p) -"fgx" = ( -/obj/structure/sign/poster{ - pixel_y = 32 +"fgt" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_p) +/turf/open/floor/almayer/sterile_green_side/northwest, +/area/almayer/shipboard/brig/medical) "fgE" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -34586,13 +22195,6 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hallways/hangar) -"fgF" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "SW-out"; - layer = 2.5 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/aft_hallway) "fgR" = ( /obj/structure/machinery/door/poddoor/almayer/open{ id = "Brig Lockdown Shutters"; @@ -34610,130 +22212,152 @@ }, /turf/open/floor/plating, /area/almayer/shipboard/brig/cells) +"fgU" = ( +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_f_p) "fhf" = ( /obj/structure/surface/rack, /obj/item/storage/toolbox/mechanical, /turf/open/floor/almayer, /area/almayer/engineering/upper_engineering) -"fhA" = ( -/obj/structure/machinery/light/small{ - dir = 1 - }, -/obj/structure/surface/rack, -/obj/item/storage/belt/utility/full{ - pixel_y = 8 - }, -/obj/item/storage/belt/utility/full, -/obj/item/clothing/suit/storage/hazardvest/black, -/obj/item/tool/crowbar, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_a_s) "fhH" = ( /obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/engineering/upper_engineering/starboard) -"fiq" = ( -/turf/closed/wall/almayer, -/area/almayer/hull/lower_hull/l_m_p) -"fir" = ( -/obj/structure/surface/table/almayer, -/obj/item/tool/screwdriver, -/obj/item/tool/weldingtool, -/obj/item/tool/wrench, -/obj/item/tool/wirecutters, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" - }, -/area/almayer/engineering/engine_core) -"fiP" = ( -/obj/structure/surface/table/woodentable/fancy, -/obj/item/storage/fancy/cigar{ - layer = 3.04; - pixel_x = -2; - pixel_y = 2 - }, -/obj/item/reagent_container/food/drinks/bottle/sake{ - pixel_x = -11; - pixel_y = 16 +"fhR" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" }, -/obj/item/reagent_container/food/drinks/bottle/sake{ - pixel_x = -2; - pixel_y = 16 +/turf/closed/wall/almayer/aicore/hull, +/area/almayer/command/airoom) +"fic" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" }, -/obj/item/reagent_container/food/drinks/bottle/sake{ - pixel_x = 7; - pixel_y = 16 +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_midship_hallway) +"fie" = ( +/turf/open/floor/almayer/orange/north, +/area/almayer/engineering/lower/workshop) +"fix" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W"; + pixel_x = -1 }, -/turf/open/floor/wood/ship, -/area/almayer/living/commandbunks) -"fjO" = ( -/obj/item/tool/wet_sign, -/obj/effect/decal/cleanable/blood, -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_f_p) -"fkn" = ( -/obj/structure/machinery/photocopier, -/turf/open/floor/almayer{ - icon_state = "red" +/turf/open/floor/almayer, +/area/almayer/maint/hull/upper/u_f_s) +"fiE" = ( +/obj/structure/machinery/computer/cameras/containment/hidden{ + dir = 4; + pixel_x = -17 }, -/area/almayer/shipboard/brig/main_office) -"fkO" = ( -/obj/structure/pipes/standard/manifold/hidden/supply, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "green" +/obj/structure/surface/table/almayer, +/obj/item/storage/photo_album, +/obj/item/device/camera_film, +/turf/open/floor/almayer, +/area/almayer/command/corporateliaison) +"fiQ" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/area/almayer/hallways/port_hallway) -"fkW" = ( +/turf/open/floor/almayer/plate, +/area/almayer/engineering/lower) +"fje" = ( +/obj/structure/reagent_dispensers/fueltank, +/obj/structure/machinery/light/small, +/turf/open/floor/almayer/plate, +/area/almayer/maint/upper/u_m_p) +"fjo" = ( +/turf/open/floor/almayer/red/east, +/area/almayer/lifeboat_pumps/north2) +"fjz" = ( +/obj/structure/largecrate/random/case/double, +/turf/open/floor/almayer/cargo, +/area/almayer/maint/hull/upper/u_f_p) +"fjA" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/structure/surface/table/almayer, -/obj/item/toy/handcard/uno_reverse_red{ - pixel_x = 5; - pixel_y = 5 +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/obj/item/toy/deck/uno, -/turf/open/floor/almayer{ - icon_state = "plate" +/turf/open/floor/almayer/blue/west, +/area/almayer/hallways/upper/midship_hallway) +"fkK" = ( +/obj/structure/machinery/door/airlock/almayer/maint{ + dir = 1 + }, +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 }, -/area/almayer/hull/lower_hull/l_f_s) +/turf/open/floor/almayer/test_floor4, +/area/almayer/maint/hull/upper/u_m_s) "fkX" = ( /turf/closed/wall/almayer/research/containment/wall/corner{ dir = 8 }, /area/almayer/medical/containment/cell/cl) -"flE" = ( -/obj/structure/platform{ - dir = 8 +"flf" = ( +/obj/structure/pipes/vents/pump/no_boom/gas{ + vent_tag = "Records"; + dir = 1 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_a_p) -"flP" = ( -/obj/structure/machinery/camera/autoname/almayer{ - dir = 4; - name = "ship-grade camera" +/turf/open/floor/almayer/aicore/no_build, +/area/almayer/command/airoom) +"flr" = ( +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/p_bow) +"flD" = ( +/obj/structure/largecrate/supply/supplies/water, +/turf/open/floor/almayer/red, +/area/almayer/maint/upper/u_a_p) +"flL" = ( +/obj/structure/machinery/camera/autoname/almayer/containment/ares{ + dir = 8; + autoname = 0; + c_tag = "AI - SynthBay" + }, +/turf/open/floor/almayer/aicore/no_build, +/area/almayer/command/airoom) +"flR" = ( +/obj/effect/projector{ + name = "Almayer_AresDown"; + vector_x = 96; + vector_y = -65 }, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/structure/platform{ + dir = 4 + }, +/obj/structure/stairs{ + dir = 1; + icon_state = "ramptop" }, -/area/almayer/hull/upper_hull/u_f_p) +/turf/open/floor/almayer/aicore/no_build, +/area/almayer/command/airoom) "flW" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/structure/machinery/light{ dir = 4; invisibility = 101 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/east, /area/almayer/living/briefing) +"fml" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/effect/step_trigger/clone_cleaner, +/turf/open/floor/almayer/greencorner/north, +/area/almayer/hallways/lower/port_fore_hallway) "fmv" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -34743,38 +22367,33 @@ icon_state = "E"; pixel_x = 1 }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, +/turf/open/floor/almayer/aicore/glowing/no_build, /area/almayer/command/airoom) "fmB" = ( /obj/structure/bed/chair/comfy{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "bluecorner" - }, +/turf/open/floor/almayer/bluecorner, /area/almayer/living/pilotbunks) -"fmS" = ( -/obj/structure/closet/secure_closet/engineering_electrical, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_s) -"fnl" = ( -/obj/structure/surface/rack, -/obj/item/clothing/suit/straight_jacket, -/obj/item/clothing/glasses/sunglasses/blindfold, -/obj/item/clothing/mask/muzzle, -/obj/structure/machinery/camera/autoname/almayer{ - dir = 8; - name = "ship-grade camera" +"fmZ" = ( +/turf/open/floor/almayer/orange/west, +/area/almayer/hallways/lower/starboard_umbilical) +"fnc" = ( +/obj/structure/pipes/vents/scrubber{ + dir = 1 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "redcorner" +/turf/open/floor/almayer/green, +/area/almayer/hallways/lower/port_midship_hallway) +"fnk" = ( +/obj/structure/blocker/fuelpump, +/turf/open/floor/almayer, +/area/almayer/lifeboat_pumps/north1) +"fnv" = ( +/obj/structure/machinery/light{ + dir = 4 }, -/area/almayer/shipboard/brig/execution) +/turf/open/floor/wood/ship, +/area/almayer/living/commandbunks) "fnx" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/structure/machinery/door/window/eastright{ @@ -34786,9 +22405,7 @@ /obj/structure/machinery/door/window/eastleft{ req_access_txt = "19" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/living/briefing) "fnA" = ( /obj/structure/surface/rack, @@ -34798,45 +22415,27 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, +/turf/open/floor/almayer/redfull, /area/almayer/medical/upper_medical) -"fnC" = ( -/obj/structure/machinery/light{ - unacidable = 1; - unslashable = 1 - }, -/turf/open/floor/almayer{ - icon_state = "red" +"fnH" = ( +/obj/structure/pipes/vents/pump{ + dir = 1 }, -/area/almayer/shipboard/brig/main_office) +/turf/open/floor/wood/ship, +/area/almayer/command/corporateliaison) "fnI" = ( -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/squads/req) -"fnQ" = ( -/obj/structure/toilet{ - dir = 1 - }, -/obj/structure/window/reinforced/tinted{ - dir = 8 - }, -/obj/structure/machinery/door/window/tinted{ - dir = 1 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/engineering/upper_engineering/port) -"fnZ" = ( -/obj/structure/machinery/portable_atmospherics/canister/air, -/obj/structure/machinery/light/small{ - dir = 1 +"foC" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer, +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "cargo" +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/area/almayer/hull/upper_hull/u_a_s) +/turf/open/floor/almayer/test_floor4, +/area/almayer/engineering/lower/engine_core) "foL" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -34844,10 +22443,7 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "emeraldcorner" - }, +/turf/open/floor/almayer/emeraldcorner/east, /area/almayer/squads/charlie) "foN" = ( /obj/structure/bed/chair, @@ -34871,107 +22467,107 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/medical/medical_science) -"foR" = ( -/obj/structure/largecrate/random/case, -/turf/open/floor/almayer{ - icon_state = "plate" +"foS" = ( +/obj/structure/prop/invuln/overhead_pipe{ + dir = 4; + pixel_y = 13 }, -/area/almayer/hull/upper_hull/u_m_p) -"fpd" = ( -/obj/structure/sign/safety/hvac_old{ - pixel_x = 8; - pixel_y = 32 +/obj/structure/prop/invuln/overhead_pipe{ + dir = 4; + pixel_x = -12; + pixel_y = 13 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_s) -"fps" = ( -/obj/structure/machinery/chem_master/industry_mixer, -/turf/open/floor/almayer{ - icon_state = "orange" +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_a_p) +"fpi" = ( +/obj/effect/landmark/yautja_teleport, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/stern) +"fpA" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" }, -/area/almayer/engineering/engineering_workshop/hangar) -"fpO" = ( -/obj/structure/pipes/standard/manifold/hidden/supply, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_hallway) -"fpR" = ( -/obj/structure/surface/table/almayer, -/obj/effect/spawner/random/tool, +/obj/structure/machinery/light{ + dir = 8 + }, +/turf/open/floor/almayer/red/northeast, +/area/almayer/hallways/upper/port) +"fpI" = ( +/obj/structure/pipes/vents/scrubber{ + dir = 1 + }, +/turf/open/floor/almayer/plate, +/area/almayer/hallways/lower/starboard_aft_hallway) +"fpM" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SE-out"; + pixel_x = 2 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_aft_hallway) +"fpR" = ( +/obj/structure/surface/table/almayer, +/obj/effect/spawner/random/tool, /obj/effect/spawner/random/technology_scanner, /obj/item/storage/firstaid/toxin{ pixel_x = 8; pixel_y = -2 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/engineering/starboard_atmos) "fpT" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/medical/medical_science) "fpW" = ( /obj/structure/sign/safety/bulkhead_door{ pixel_x = 32 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/northeast, /area/almayer/hallways/hangar) -"fqc" = ( -/obj/structure/machinery/vending/cigarette, -/obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "bluefull" - }, -/area/almayer/command/cichallway) -"fqe" = ( -/obj/structure/surface/table/almayer, -/obj/item/tool/pen/blue/clicky{ - pixel_x = 2; - pixel_y = 2 - }, -/obj/item/tool/pen/red/clicky{ - pixel_x = -1; - pixel_y = 1 - }, -/obj/item/tool/pen/clicky{ - pixel_x = 1; - pixel_y = -1 +"fqb" = ( +/obj/item/paper/prison_station/interrogation_log{ + pixel_x = 10; + pixel_y = 7 }, -/obj/item/paper_bin/wy{ +/obj/structure/largecrate/random/barrel/green, +/obj/item/limb/hand/l_hand{ pixel_x = -5; - pixel_y = 5 - }, -/obj/structure/machinery/light{ - dir = 8 - }, -/turf/open/floor/wood/ship, -/area/almayer/command/corporateliason) -"fqg" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "S" + pixel_y = 14 }, -/turf/open/floor/almayer, -/area/almayer/lifeboat_pumps/south2) -"fqu" = ( -/obj/structure/largecrate/random/barrel/red, -/turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_s) -"fqx" = ( +/obj/effect/spawner/random/balaclavas, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_f_p) +"fqc" = ( +/obj/structure/machinery/vending/cigarette, /obj/structure/machinery/light, -/obj/effect/decal/warning_stripes{ - icon_state = "W"; - pixel_x = -1 +/turf/open/floor/almayer/bluefull, +/area/almayer/command/cichallway) +"fqw" = ( +/obj/structure/disposalpipe/junction{ + dir = 4; + icon_state = "pipe-j2" }, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "silver" +/obj/structure/pipes/standard/manifold/hidden/supply, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/starboard_aft_hallway) +"fqA" = ( +/obj/effect/step_trigger/clone_cleaner, +/turf/open/floor/plating/almayer/no_build, +/area/almayer/hallways/lower/port_midship_hallway) +"fqC" = ( +/obj/structure/machinery/vending/cigarette, +/turf/open/floor/almayer/plate, +/area/almayer/engineering/lower/workshop) +"fqJ" = ( +/obj/structure/machinery/door_control{ + id = "safe_armory"; + name = "Hangar Armory Lockdown"; + pixel_y = 24; + req_access_txt = "4" }, -/area/almayer/hull/upper_hull/u_m_p) +/turf/open/floor/almayer/plating/northeast, +/area/almayer/shipboard/panic) "fqO" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 1 @@ -34979,39 +22575,98 @@ /obj/structure/surface/table/reinforced/black, /turf/open/floor/carpet, /area/almayer/command/cichallway) +"fqQ" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/almayer/red/west, +/area/almayer/shipboard/brig/starboard_hallway) +"fqU" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/effect/decal/warning_stripes{ + icon_state = "W"; + layer = 2.5 + }, +/obj/effect/step_trigger/clone_cleaner, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/port_fore_hallway) +"fqW" = ( +/obj/structure/machinery/recharge_station, +/turf/open/floor/almayer/cargo, +/area/almayer/engineering/lower/engine_core) "fqZ" = ( /obj/structure/machinery/camera/autoname/almayer{ dir = 4; name = "ship-grade camera"; pixel_y = 6 }, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/southwest, /area/almayer/medical/lower_medical_medbay) -"frl" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "sterile_green_side" +"frb" = ( +/obj/structure/surface/table/almayer, +/obj/effect/decal/cleanable/dirt, +/obj/item/device/flashlight/lamp{ + layer = 3.3; + pixel_x = 15 }, +/obj/item/tool/kitchen/tray{ + pixel_y = 9 + }, +/obj/item/reagent_container/food/snacks/sliceable/pizza/vegetablepizza{ + pixel_y = 8 + }, +/turf/open/floor/almayer/emeraldfull, +/area/almayer/living/briefing) +"frl" = ( +/turf/open/floor/almayer/sterile_green_side/east, /area/almayer/medical/lower_medical_medbay) +"frt" = ( +/obj/structure/surface/table/almayer, +/obj/structure/machinery/door_control{ + id = "courtyard_cells"; + name = "\improper Courtyard Lockdown Shutters"; + pixel_x = 6; + req_access_txt = "3" + }, +/obj/structure/machinery/door_control{ + id = "Brig Lockdown Shutters"; + name = "Brig Lockdown Shutters"; + pixel_x = -6; + req_access_txt = "3" + }, +/obj/structure/machinery/door_control{ + id = "courtyard window"; + name = "Courtyard Window Shutters"; + pixel_x = -6; + pixel_y = 9; + req_access_txt = "3" + }, +/obj/structure/machinery/door_control{ + id = "Cell Privacy Shutters"; + name = "Cell Privacy Shutters"; + pixel_x = 6; + pixel_y = 9; + req_access_txt = "3" + }, +/obj/structure/machinery/computer/working_joe{ + pixel_y = 16 + }, +/turf/open/floor/almayer/red/north, +/area/almayer/shipboard/brig/warden_office) "frz" = ( /obj/structure/machinery/door/airlock/almayer/secure/reinforced{ name = "\improper Exterior Airlock"; req_access = null }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/shipboard/starboard_point_defense) "frF" = ( /obj/structure/pipes/vents/scrubber{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "red" - }, +/turf/open/floor/almayer/red, /area/almayer/shipboard/starboard_missiles) "frM" = ( /obj/effect/decal/warning_stripes{ @@ -35022,161 +22677,51 @@ icon_state = "NW-out"; pixel_y = 1 }, -/turf/open/floor/almayer/no_build{ - icon_state = "tcomms" - }, +/turf/open/floor/almayer/aicore/glowing/no_build, /area/almayer/command/airoom) -"fsd" = ( +"fsf" = ( /obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/hallways/vehiclehangar) -"fso" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 - }, -/obj/structure/machinery/door/airlock/multi_tile/almayer/secdoor/glass/reinforced{ - access_modified = 1; - name = "\improper Cryogenics Bay"; - req_access = null; - req_one_access_txt = "1;3" + icon_state = "N"; + pixel_y = 1 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer/orangecorner, +/area/almayer/hallways/lower/port_umbilical) +"fsh" = ( +/obj/structure/machinery/camera/autoname/almayer{ + name = "ship-grade camera" }, -/area/almayer/shipboard/brig/cryo) +/turf/open/floor/almayer, +/area/almayer/hallways/upper/midship_hallway) "fsp" = ( /obj/structure/barricade/handrail{ dir = 1; pixel_y = 2 }, /obj/structure/disposalpipe/segment, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/gym) -"fsz" = ( -/obj/structure/machinery/firealarm{ - dir = 1; - pixel_y = -28 - }, -/obj/structure/surface/table/almayer, -/obj/item/storage/box/flashbangs, -/obj/item/storage/box/flashbangs{ - pixel_x = 5; - pixel_y = 9 - }, -/obj/item/storage/box/flashbangs{ - pixel_x = -8; - pixel_y = 5 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "W"; - pixel_x = -1; - pixel_y = 1 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/shipboard/brig/armory) -"fsH" = ( -/obj/structure/machinery/firealarm{ - pixel_y = 28 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "green" - }, -/area/almayer/hallways/port_hallway) -"fsT" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1; - pixel_y = -1 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 2 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" +"fsR" = ( +/obj/structure/pipes/vents/pump{ + dir = 8; + id_tag = "mining_outpost_pump" }, -/area/almayer/shipboard/brig/armory) +/turf/open/floor/almayer, +/area/almayer/engineering/lower/workshop) "fsU" = ( /obj/structure/machinery/floodlight/landing{ name = "bolted floodlight" }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/lifeboat_pumps/north1) "fsV" = ( /obj/structure/target, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "plating_striped" - }, +/turf/open/floor/almayer/plating_striped/west, /area/almayer/living/cryo_cells) -"fti" = ( -/obj/structure/machinery/door/poddoor/railing{ - dir = 2; - id = "vehicle_elevator_railing" - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, -/area/almayer/hallways/vehiclehangar) -"ftl" = ( -/obj/structure/machinery/light/small, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_p) -"fut" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/hallways/vehiclehangar) "fuz" = ( /obj/structure/machinery/cm_vending/clothing/pilot_officer, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/pilotbunks) -"fuB" = ( -/obj/structure/machinery/light/small, -/obj/structure/largecrate/random/barrel/green, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_s) -"fuR" = ( -/obj/structure/bed/bedroll{ - desc = "A bed of cotton fabric, purposely made for a cat to comfortably sleep on."; - name = "cat bed"; - pixel_y = 0 - }, -/mob/living/simple_animal/cat/Jones{ - dir = 8 - }, -/obj/structure/machinery/firealarm{ - pixel_x = -1; - pixel_y = 28 - }, -/turf/open/floor/wood/ship, -/area/almayer/living/commandbunks) "fuS" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/supply, @@ -35184,87 +22729,68 @@ dir = 4; pixel_x = 11 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/almayer/living/grunt_rnr) "fuT" = ( /obj/structure/sink{ dir = 4; pixel_x = 11 }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/engineering/laundry) -"fuX" = ( -/obj/structure/window/framed/almayer, -/obj/structure/machinery/door/poddoor/almayer/locked{ - dir = 8; - id = "Perma 2L"; - name = "\improper cell shutter" - }, -/turf/open/floor/plating, -/area/almayer/shipboard/brig/perma) +"fuU" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer/orange/east, +/area/almayer/hallways/lower/port_umbilical) "fuY" = ( -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12 +/obj/structure/bed/chair/bolted{ + dir = 1 }, -/obj/structure/prop/invuln/lattice_prop{ - icon_state = "lattice2"; - pixel_x = 16; - pixel_y = 16 +/turf/open/floor/almayer/red/west, +/area/almayer/shipboard/brig/interrogation) +"fva" = ( +/obj/structure/machinery/light{ + dir = 1 }, -/obj/structure/largecrate/supply/supplies/flares, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/structure/bed/chair/comfy/bravo{ + dir = 4 }, -/area/almayer/hull/lower_hull/l_m_p) +/obj/effect/decal/cleanable/dirt, +/obj/structure/barricade/deployable{ + dir = 4 + }, +/turf/open/floor/almayer/plate, +/area/almayer/living/briefing) "fvd" = ( /obj/structure/closet/firecloset, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_corner" - }, +/turf/open/floor/almayer/sterile_green_corner/west, /area/almayer/medical/upper_medical) "fvf" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/north, /area/almayer/living/briefing) -"fvu" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_s) -"fvv" = ( -/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ - name = "\improper Port Viewing Room" +"fvo" = ( +/obj/structure/surface/table/reinforced/almayer_B, +/obj/item/clothing/glasses/welding{ + pixel_x = 8; + pixel_y = 3 + }, +/obj/item/tool/weldingtool{ + pixel_x = -11; + pixel_y = 5 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +/obj/structure/machinery/light/small{ + dir = 1 }, -/area/almayer/hull/upper_hull/u_f_p) +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_a_p) +"fvA" = ( +/obj/structure/closet/secure_closet/brig, +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/perma) "fvB" = ( /obj/structure/closet/secure_closet/staff_officer/armory/m4a1, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, +/turf/open/floor/almayer/redfull, /area/almayer/command/cic) -"fvJ" = ( -/obj/structure/machinery/cm_vending/sorted/medical, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_side" - }, -/area/almayer/medical/lockerroom) -"fvK" = ( -/obj/structure/sign/safety/galley{ - pixel_x = 8; - pixel_y = 32 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/starboard_hallway) "fvN" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -35275,41 +22801,45 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/port_point_defense) +"fvV" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/obj/structure/sign/safety/security{ + pixel_x = 15; + pixel_y = 32 + }, +/obj/structure/sign/safety/restrictedarea{ + pixel_y = 32 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_midship_hallway) "fwD" = ( /obj/item/reagent_container/food/snacks/grown/poppy{ pixel_x = 4; pixel_y = 4 }, /obj/effect/step_trigger/message/memorial, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/starboard_garden) +"fwK" = ( +/turf/closed/wall/almayer/outer, +/area/almayer/hallways/lower/starboard_umbilical) +"fwM" = ( +/obj/structure/surface/table/almayer, +/obj/item/paper, +/obj/item/tool/pen{ + pixel_x = -5; + pixel_y = 2 + }, +/turf/open/floor/almayer/redfull, +/area/almayer/living/briefing) "fwY" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/charlie_delta_shared) -"fxu" = ( -/obj/structure/sign/safety/hvac_old{ - pixel_x = 8 - }, -/turf/closed/wall/almayer, -/area/almayer/engineering/lower_engineering) -"fxz" = ( -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12 - }, -/obj/effect/landmark/yautja_teleport, -/obj/structure/sign/safety/hvac_old{ - pixel_x = 8; - pixel_y = -32 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_p) "fxI" = ( /obj/effect/decal/warning_stripes{ icon_state = "E"; @@ -35319,38 +22849,22 @@ icon_state = "N"; pixel_y = 1 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/almayer/engineering/upper_engineering) -"fxO" = ( -/obj/structure/machinery/vending/coffee{ - density = 0; - pixel_y = 18 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_f_p) -"fxW" = ( -/obj/structure/platform_decoration{ - dir = 1 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/engineering/engine_core) +"fxJ" = ( +/obj/structure/closet/secure_closet/guncabinet/riot_control, +/obj/item/weapon/shield/riot, +/obj/item/weapon/shield/riot, +/obj/item/weapon/shield/riot, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/armory) "fxZ" = ( /obj/structure/disposalpipe/segment{ dir = 8; icon_state = "pipe-c" }, /obj/structure/pipes/standard/manifold/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/medical/lower_medical_medbay) "fya" = ( /obj/effect/decal/warning_stripes{ @@ -35359,10 +22873,15 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 6 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/shipboard/weapon_room) +"fyp" = ( +/obj/structure/machinery/cryopod{ + layer = 3.1; + pixel_y = 13 + }, +/turf/open/floor/almayer/cargo, +/area/almayer/shipboard/brig/cryo) "fyD" = ( /obj/structure/machinery/light, /obj/structure/ladder{ @@ -35371,9 +22890,31 @@ }, /turf/open/floor/plating/almayer, /area/almayer/living/briefing) -"fza" = ( -/turf/open/floor/almayer, -/area/almayer/hull/lower_hull/l_m_s) +"fyI" = ( +/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ + pixel_y = -25 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/warden_office) +"fyT" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 + }, +/obj/structure/machinery/door/poddoor/almayer/open{ + dir = 2; + id = "CIC Lockdown"; + layer = 2.2; + name = "\improper Combat Information Center Blast Door" + }, +/obj/structure/machinery/door/airlock/almayer/engineering/reinforced{ + dir = 1; + name = "\improper Command Power Substation" + }, +/turf/open/floor/almayer/test_floor4, +/area/almayer/maint/upper/mess) +"fzc" = ( +/turf/open/floor/almayer/test_floor4, +/area/almayer/hallways/lower/starboard_fore_hallway) "fzq" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -35382,10 +22923,30 @@ /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 2 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/squads/charlie) +"fzt" = ( +/obj/structure/surface/table/almayer, +/obj/item/circuitboard{ + pixel_x = 12; + pixel_y = 7 + }, +/obj/item/tool/crowbar{ + pixel_x = 6; + pixel_y = 1 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/upper/u_f_p) +"fzx" = ( +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12 + }, +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12; + pixel_y = 12 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_f_s) "fzP" = ( /obj/structure/surface/table/almayer, /obj/item/paper_bin/uscm, @@ -35402,11 +22963,14 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/engineering/ce_room) +"fzT" = ( +/obj/structure/surface/rack, +/obj/item/tool/wirecutters, +/obj/item/tool/shovel/snow, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_f_s) "fAa" = ( /obj/structure/surface/table/almayer, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, /obj/structure/machinery/light{ dir = 1 }, @@ -35416,60 +22980,21 @@ /obj/item/weapon/gun/pistol/m4a3{ current_mag = null }, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/almayer/red/northwest, /area/almayer/living/offices/flight) -"fAo" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ +"fAr" = ( +/obj/structure/closet/secure_closet/guncabinet/red/mp_armory_m39_submachinegun, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/armory) +"fBi" = ( +/turf/open/floor/almayer/redcorner/east, +/area/almayer/hallways/lower/starboard_midship_hallway) +"fBo" = ( +/obj/structure/machinery/light/small{ dir = 4 }, -/obj/structure/machinery/light, -/turf/open/floor/wood/ship, -/area/almayer/command/corporateliason) -"fAt" = ( -/obj/structure/largecrate/guns/merc{ - name = "\improper dodgy crate" - }, -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_f_p) -"fAS" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_s) -"fBf" = ( -/obj/structure/machinery/door/airlock/almayer/maint{ - dir = 1 - }, -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hull/upper_hull/u_a_s) -"fBD" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 10 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/hallways/vehiclehangar) -"fBL" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/aft_hallway) +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_a_s) "fBO" = ( /obj/structure/machinery/chem_master{ vial_maker = 1 @@ -35478,31 +23003,63 @@ pixel_x = 1; pixel_y = 8 }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/medical/medical_science) +"fCg" = ( +/obj/effect/projector{ + name = "Almayer_Up4"; + vector_x = -19; + vector_y = 104 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/port_midship_hallway) +"fCi" = ( +/obj/structure/surface/table/almayer, +/obj/item/organ/lungs/prosthetic, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_m_p) "fCp" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 5 }, /turf/open/floor/plating/plating_catwalk, /area/almayer/command/lifeboat) -"fCt" = ( -/obj/structure/bed/chair/comfy/delta{ +"fCG" = ( +/obj/structure/bed/chair/office/dark{ dir = 8 }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/effect/decal/cleanable/blood/oil, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/repair_bay) +"fCI" = ( +/obj/structure/machinery/door/poddoor/shutters/almayer{ + id = "ARES JoeCryo"; + name = "\improper ARES Synth Bay Shutters"; + plane = -7; + dir = 4 }, -/area/almayer/living/briefing) +/obj/structure/pipes/standard/simple/hidden/supply/no_boom{ + dir = 4 + }, +/turf/open/floor/almayer/no_build/test_floor4, +/area/almayer/command/airoom) "fCL" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, /turf/open/floor/plating/plating_catwalk, /area/almayer/engineering/upper_engineering/port) +"fCT" = ( +/obj/structure/surface/table/almayer, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/turf/open/floor/almayer/cargo, +/area/almayer/engineering/lower/engine_core) +"fCW" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer, +/area/almayer/hallways/upper/fore_hallway) "fDh" = ( /obj/effect/decal/warning_stripes{ icon_state = "SW-out"; @@ -35512,46 +23069,30 @@ dir = 8; icon_state = "pipe-c" }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/delta) "fDj" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/device/defibrillator, /obj/item/device/defibrillator, /obj/item/device/defibrillator, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/medical/lower_medical_medbay) -"fDn" = ( -/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ - pixel_y = -25 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/shipboard/brig/armory) "fDG" = ( /obj/structure/machinery/vending/coffee, /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "orangefull" - }, +/turf/open/floor/almayer/orangefull, /area/almayer/engineering/upper_engineering) "fDJ" = ( /obj/effect/landmark/start/marine/engineer/charlie, /obj/effect/landmark/late_join/charlie, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/charlie) "fDS" = ( /obj/structure/platform_decoration, -/turf/open/floor/almayer{ - icon_state = "red" - }, +/turf/open/floor/almayer/red, /area/almayer/lifeboat_pumps/south1) "fDU" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -35560,9 +23101,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/command/cichallway) "fDV" = ( /obj/structure/surface/table/reinforced/almayer_B, @@ -35575,78 +23114,40 @@ pixel_x = 2; pixel_y = 7 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/pilotbunks) -"fEg" = ( -/obj/structure/machinery/power/fusion_engine{ - name = "\improper S-52 fusion reactor 15" - }, -/obj/structure/machinery/light{ - dir = 8 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/engineering/engine_core) +"fEe" = ( +/obj/structure/machinery/pipedispenser, +/turf/open/floor/almayer/plate, +/area/almayer/engineering/lower) "fEk" = ( -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/command/cichallway) "fEC" = ( /obj/structure/machinery/power/apc/almayer, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/medical/morgue) -"fEN" = ( -/obj/structure/machinery/camera/autoname/almayer/containment/ares{ +"fEF" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, -/area/almayer/command/airoom) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/starboard_midship_hallway) "fER" = ( /obj/structure/machinery/autolathe, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/hallways/hangar) -"fEV" = ( -/obj/structure/sign/safety/restrictedarea{ - pixel_x = 8; - pixel_y = -32 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_s) "fFe" = ( /obj/structure/sign/safety/maint{ pixel_x = 32 }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/lifeboat_pumps/south2) "fFh" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/device/autopsy_scanner, -/turf/open/floor/almayer{ - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side, /area/almayer/medical/morgue) -"fFq" = ( -/obj/structure/machinery/light/small{ - dir = 8 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/obj/structure/closet/secure_closet/guncabinet/red/mp_armory_shotgun, -/turf/open/floor/plating/almayer, -/area/almayer/shipboard/brig/armory) "fFD" = ( /obj/structure/window/reinforced{ dir = 4; @@ -35655,9 +23156,7 @@ /obj/structure/window/reinforced{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "cargo_arrow" - }, +/turf/open/floor/almayer/cargo_arrow, /area/almayer/squads/alpha_bravo_shared) "fFL" = ( /obj/structure/disposalpipe/junction{ @@ -35667,9 +23166,7 @@ /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/medical/lower_medical_medbay) "fFO" = ( /obj/structure/machinery/light{ @@ -35678,26 +23175,59 @@ /obj/structure/morgue{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/medical/morgue) -"fGg" = ( -/obj/effect/decal/cleanable/blood/oil/streak, -/turf/open/floor/almayer, -/area/almayer/lifeboat_pumps/south1) -"fGu" = ( -/obj/structure/machinery/door_control{ - dir = 1; - id = "researchlockdownext"; - name = "Window Shutters"; - pixel_x = -26; - pixel_y = 6; - req_access_txt = "28" +"fFQ" = ( +/obj/structure/surface/table/almayer, +/obj/item/reagent_container/spray/cleaner{ + pixel_x = 7; + pixel_y = 14 }, -/obj/structure/machinery/door_control{ - dir = 1; - id = "researchlockdownext_door"; +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_f_s) +"fFU" = ( +/obj/structure/sign/safety/hvac_old{ + pixel_x = 8; + pixel_y = -32 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_f_p) +"fGa" = ( +/obj/structure/surface/rack, +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/turf/open/floor/almayer/dark_sterile, +/area/almayer/living/numbertwobunks) +"fGd" = ( +/obj/structure/machinery/door/poddoor/railing{ + dir = 2; + id = "vehicle_elevator_railing" + }, +/obj/structure/pipes/standard/manifold/hidden/supply, +/turf/open/floor/almayer/mono, +/area/almayer/hallways/lower/vehiclehangar) +"fGg" = ( +/obj/effect/decal/cleanable/blood/oil/streak, +/turf/open/floor/almayer, +/area/almayer/lifeboat_pumps/south1) +"fGi" = ( +/obj/effect/spawner/random/toolbox, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_a_s) +"fGu" = ( +/obj/structure/machinery/door_control{ + dir = 1; + id = "researchlockdownext"; + name = "Window Shutters"; + pixel_x = -26; + pixel_y = 6; + req_access_txt = "28" + }, +/obj/structure/machinery/door_control{ + dir = 1; + id = "researchlockdownext_door"; name = "Door Shutters"; pixel_x = -26; pixel_y = 1; @@ -35707,126 +23237,36 @@ dir = 2; icon_state = "pipe-j2" }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/west, /area/almayer/medical/medical_science) -"fGN" = ( -/obj/structure/closet/firecloset, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_f_p) -"fGY" = ( -/obj/structure/machinery/door_control{ - id = "panicroomback"; - name = "\improper Safe Room"; - pixel_x = 25; - req_one_access_txt = "3" - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_s) -"fHc" = ( -/obj/structure/surface/table/almayer, -/obj/item/clothing/head/hardhat{ - pixel_x = 10; - pixel_y = 1 - }, -/obj/item/clothing/suit/storage/hazardvest{ - pixel_x = -8; - pixel_y = 6 - }, -/obj/item/clothing/suit/storage/hazardvest/yellow, -/obj/item/clothing/suit/storage/hazardvest{ - pixel_x = 8; - pixel_y = 7 - }, -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_f_p) -"fHe" = ( -/obj/structure/surface/table/almayer, -/obj/item/device/flashlight/lamp{ - layer = 3.3; - pixel_x = 15 - }, -/obj/item/prop/helmetgarb/helmet_nvg/cosmetic, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, -/area/almayer/living/briefing) +"fGB" = ( +/obj/structure/largecrate/random/case/small, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_a_s) +"fHb" = ( +/obj/structure/largecrate/random/case/small, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/s_bow) "fHh" = ( /obj/structure/disposalpipe/segment{ dir = 8; icon_state = "pipe-c" }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/command/cic) "fHz" = ( /obj/structure/machinery/cm_vending/sorted/medical/wall_med{ pixel_y = 25 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/gym) -"fHC" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "SW-out"; - layer = 2.5 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "NW-out" - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/aft_hallway) "fHF" = ( -/turf/open/floor/almayer{ - icon_state = "greenfull" - }, +/turf/open/floor/almayer/greenfull, /area/almayer/living/offices) -"fHO" = ( -/obj/structure/largecrate/random/secure, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_f_s) -"fHS" = ( -/obj/structure/sign/safety/rewire{ - pixel_y = -32 - }, -/obj/structure/machinery/door_control{ - id = "perma_lockdown"; - name = "\improper Perma Cells Lockdown"; - pixel_x = 6; - pixel_y = -24; - req_access_txt = "3" - }, -/turf/open/floor/almayer, -/area/almayer/shipboard/brig/processing) -"fIf" = ( -/obj/structure/sign/safety/bulkhead_door{ - pixel_x = 8; - pixel_y = -32 - }, -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_f_p) -"fIx" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, -/area/almayer/engineering/engine_core) -"fIH" = ( -/obj/structure/largecrate/random/barrel/blue, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_p) +"fIK" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/upper/u_a_s) "fIM" = ( /obj/effect/landmark/start/marine/tl/bravo, /obj/effect/landmark/late_join/bravo, @@ -35836,11 +23276,9 @@ /obj/structure/machinery/door/airlock/multi_tile/almayer/almayer{ access_modified = 1; name = "\improper Requisitions Auxiliary Storage Room"; - req_one_access = "19;21" - }, -/turf/open/floor/almayer{ - icon_state = "plate" + req_one_access_txt = "19;21" }, +/turf/open/floor/almayer/plate, /area/almayer/squads/req) "fIZ" = ( /obj/structure/surface/table/almayer, @@ -35848,9 +23286,7 @@ pixel_x = -4; pixel_y = 6 }, -/turf/open/floor/almayer{ - icon_state = "emeraldfull" - }, +/turf/open/floor/almayer/emeraldfull, /area/almayer/living/briefing) "fJm" = ( /obj/structure/flora/pottedplant{ @@ -35860,10 +23296,22 @@ /obj/structure/sign/safety/distribution_pipes{ pixel_x = 32 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/command/cichallway) +"fJp" = ( +/obj/structure/girder, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_a_p) +"fJt" = ( +/obj/structure/machinery/alarm/almayer{ + dir = 1 + }, +/turf/open/floor/almayer/green/north, +/area/almayer/hallways/lower/port_midship_hallway) +"fJu" = ( +/obj/effect/landmark/yautja_teleport, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/p_bow) "fJy" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/toy/deck{ @@ -35893,53 +23341,28 @@ }, /obj/item/seeds/wheatseed, /obj/item/seeds/wheatseed, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "green" - }, +/turf/open/floor/almayer/green/southeast, /area/almayer/shipboard/brig/cells) -"fJX" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/sign/safety/distribution_pipes{ - pixel_x = 8; - pixel_y = -32 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_s) -"fJY" = ( -/obj/structure/pipes/standard/simple/hidden/supply/no_boom{ - dir = 4 - }, -/turf/open/floor/almayer/no_build{ - dir = 8; - icon_state = "cargo_arrow" - }, -/area/almayer/command/airoom) "fKe" = ( /obj/effect/decal/warning_stripes{ icon_state = "SW-out" }, -/turf/open/floor/almayer/no_build{ - icon_state = "tcomms" - }, +/turf/open/floor/almayer/aicore/no_build/ai_floor2, /area/almayer/command/airoom) -"fKg" = ( -/obj/structure/closet/firecloset, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_a_s) -"fKl" = ( -/obj/structure/surface/rack, -/obj/item/tool/shovel/etool{ - pixel_x = 6 +"fKh" = ( +/obj/structure/window/framed/almayer, +/obj/structure/machinery/door/poddoor/shutters/almayer/cl/quarter/window, +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 }, -/obj/item/tool/shovel/etool, -/obj/item/tool/wirecutters, -/turf/open/floor/almayer{ - icon_state = "plate" +/turf/open/floor/plating, +/area/almayer/command/corporateliaison) +"fKi" = ( +/obj/structure/bed/chair/comfy/black{ + dir = 4 }, -/area/almayer/hull/lower_hull/l_a_p) +/turf/open/floor/almayer/red/west, +/area/almayer/shipboard/brig/chief_mp_office) "fKt" = ( /obj/structure/pipes/standard/manifold/hidden/supply, /obj/structure/prop/dam/crane{ @@ -35952,20 +23375,32 @@ dir = 1; pixel_y = 2 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) +"fKw" = ( +/obj/structure/machinery/door/airlock/almayer/generic{ + dir = 1 + }, +/obj/structure/machinery/door/poddoor/almayer/open{ + id = "courtyard_cells"; + name = "\improper Courtyard Lockdown Shutter" + }, +/obj/structure/machinery/door/poddoor/almayer/locked{ + id = "Cell 5"; + name = "\improper Courtyard Divider" + }, +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 + }, +/turf/open/floor/almayer/test_floor4, +/area/almayer/shipboard/brig/cells) "fKT" = ( /obj/structure/machinery/vending/coffee, /obj/structure/sign/safety/coffee{ pixel_x = 8; pixel_y = 32 }, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "green" - }, +/turf/open/floor/almayer/green/northwest, /area/almayer/squads/req) "fKV" = ( /obj/structure/surface/table/reinforced/almayer_B, @@ -35981,52 +23416,77 @@ pixel_x = 1; pixel_y = 2 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/grunt_rnr) +"fLf" = ( +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/starboard_aft_hallway) "fLg" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/reagent_container/food/snacks/wrapped/barcardine{ pixel_x = 3; pixel_y = 4 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/grunt_rnr) -"fLn" = ( +"fLi" = ( +/obj/structure/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_m_p) +"fLl" = ( +/turf/closed/wall/almayer, +/area/almayer/maint/hull/upper/s_stern) +"fLt" = ( /obj/structure/pipes/standard/simple/hidden/supply{ + dir = 9 + }, +/obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "red" +/turf/open/floor/almayer, +/area/almayer/maint/hull/upper/u_f_s) +"fLu" = ( +/obj/structure/machinery/alarm/almayer{ + dir = 1 }, -/area/almayer/shipboard/brig/general_equipment) -"fLX" = ( +/obj/structure/machinery/computer/general_air_control/large_tank_control{ + name = "Lower Oxygen Supply Console" + }, +/obj/structure/pipes/standard/simple/hidden/universal{ + dir = 4 + }, +/turf/open/floor/almayer/plate, +/area/almayer/engineering/lower) +"fLv" = ( /obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 + icon_state = "SW-out" }, -/obj/structure/sign/safety/life_support{ - pixel_x = 8; - pixel_y = -32 +/turf/open/floor/almayer/plating/northeast, +/area/almayer/shipboard/stern_point_defense) +"fLF" = ( +/obj/structure/machinery/brig_cell/perma_2{ + pixel_x = -32 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/engineering/lower_engineering) -"fMl" = ( -/obj/structure/machinery/door_control{ - id = "ARES Operations Right"; - name = "ARES Operations Shutter"; - pixel_x = 24; - pixel_y = -8; - req_one_access_txt = "90;91;92" +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/perma) +"fMe" = ( +/obj/structure/surface/table/almayer, +/obj/item/device/flashlight/lamp{ + pixel_x = 15 }, -/turf/open/floor/almayer/no_build{ - dir = 4; - icon_state = "silver" +/obj/item/paper, +/obj/item/reagent_container/food/drinks/cans/waterbottle{ + pixel_x = -10; + pixel_y = 4 }, -/area/almayer/command/airoom) +/turf/open/floor/almayer/bluefull, +/area/almayer/living/briefing) "fMt" = ( /obj/structure/machinery/door/poddoor/shutters/almayer{ id = "ARES Interior"; @@ -36034,15 +23494,6 @@ plane = -7 }, /obj/effect/step_trigger/ares_alert/core, -/obj/structure/machinery/door/poddoor/almayer/blended/white/open{ - closed_layer = 3.2; - id = "ARES Emergency"; - layer = 3.2; - name = "ARES Emergency Lockdown"; - needs_power = 0; - open_layer = 1.9; - plane = -7 - }, /obj/structure/sign/safety/laser{ pixel_x = 32; pixel_y = -8 @@ -36051,27 +23502,35 @@ pixel_x = 32; pixel_y = 6 }, -/turf/open/floor/almayer/no_build{ - icon_state = "test_floor4" - }, +/obj/structure/machinery/door/poddoor/almayer/blended/ai_lockdown/aicore, +/turf/open/floor/almayer/no_build/test_floor4, /area/almayer/command/airoom) -"fMA" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "NW-out" +"fME" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 10 }, -/obj/effect/step_trigger/clone_cleaner, -/obj/structure/sign/safety/stairs{ - pixel_x = -17 +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/upper/u_a_p) +"fMU" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "green" +/obj/structure/sign/safety/east{ + pixel_x = 15; + pixel_y = 32 + }, +/obj/structure/sign/safety/coffee{ + pixel_y = 32 }, -/area/almayer/hallways/aft_hallway) -"fNg" = ( -/obj/structure/largecrate/random/barrel/yellow, /turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_s) +/area/almayer/maint/hull/upper/u_f_p) +"fNd" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/vents/pump/on, +/turf/open/floor/almayer/plate, +/area/almayer/hallways/lower/starboard_midship_hallway) "fNi" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -36087,70 +23546,48 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hallways/hangar) -"fNu" = ( -/obj/structure/surface/table/almayer, -/obj/item/paper, -/obj/item/tool/pen{ - pixel_x = -5; - pixel_y = 2 - }, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, -/area/almayer/living/briefing) -"fNA" = ( -/obj/structure/closet/fireaxecabinet{ - pixel_y = 32 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, -/area/almayer/shipboard/brig/general_equipment) -"fNC" = ( -/obj/structure/pipes/standard/manifold/hidden/supply, -/obj/structure/disposalpipe/junction{ - dir = 8 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/aft_hallway) -"fOh" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4; - icon_state = "exposed01-supply" +"fNH" = ( +/turf/open/floor/almayer/cargo_arrow/west, +/area/almayer/hallways/lower/starboard_midship_hallway) +"fNX" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SE-out" }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/command/combat_correspondent) +/turf/open/floor/almayer/blue, +/area/almayer/hallways/upper/fore_hallway) "fOk" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 9 }, /turf/open/floor/almayer, /area/almayer/living/briefing) +"fOv" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/almayer/living/commandbunks) "fOz" = ( /obj/structure/target{ name = "punching bag" }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/almayer/shipboard/sea_office) -"fOJ" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/structure/disposalpipe/segment, -/turf/open/floor/almayer{ - icon_state = "orangecorner" - }, -/area/almayer/engineering/upper_engineering) +"fOK" = ( +/obj/structure/surface/table/almayer, +/obj/item/device/camera, +/obj/item/device/camera_film, +/obj/item/device/camera_film, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_f_s) "fOL" = ( /obj/effect/decal/warning_stripes{ icon_state = "SW-out" }, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/southwest, /area/almayer/medical/upper_medical) "fPn" = ( /obj/structure/machinery/door/airlock/almayer/maint{ @@ -36160,9 +23597,7 @@ id = "Hangar Lockdown"; name = "\improper Hangar Lockdown Blast Door" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/hallways/hangar) "fPp" = ( /obj/structure/bed{ @@ -36189,57 +23624,81 @@ /obj/item/bedsheet/yellow{ pixel_y = 13 }, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/northwest, /area/almayer/living/port_emb) "fPu" = ( /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) "fPB" = ( /obj/structure/machinery/ares/processor/apollo, -/turf/open/floor/almayer/no_build{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/no_build/test_floor4, /area/almayer/command/airoom) -"fQk" = ( -/obj/structure/largecrate/random, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_p) +"fPF" = ( +/obj/structure/closet/crate/trashcart, +/obj/item/clothing/gloves/yellow, +/obj/item/device/multitool, +/obj/item/tool/screwdriver{ + icon_state = "screwdriver7" + }, +/obj/item/tool/crowbar/red, +/obj/item/book/manual/engineering_hacking, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_a_p) +"fQn" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/turf/open/floor/almayer/plating/northeast, +/area/almayer/engineering/lower/engine_core) "fQu" = ( /obj/structure/machinery/door/poddoor/shutters/almayer/open{ id = "CMO Shutters"; name = "\improper CMO Office Shutters" }, /obj/structure/window/framed/almayer/white, -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 1 - }, /turf/open/floor/plating, /area/almayer/medical/upper_medical) -"fQF" = ( -/obj/structure/surface/rack, -/obj/item/storage/firstaid/regular, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_s) -"fQK" = ( -/obj/effect/step_trigger/clone_cleaner, -/turf/closed/wall/almayer, -/area/almayer/hull/upper_hull/u_m_p) +"fQy" = ( +/obj/structure/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_f_s) +"fQD" = ( +/obj/structure/machinery/camera/autoname/almayer/containment/ares{ + dir = 8; + autoname = 0; + c_tag = "AI - Core Chamber" + }, +/turf/open/floor/almayer/aicore/glowing/no_build/ai_floor3, +/area/almayer/command/airoom) +"fQS" = ( +/obj/structure/bed/chair/comfy/orange, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/almayer/command/corporateliaison) +"fRg" = ( +/obj/structure/closet/emcloset, +/obj/structure/machinery/camera/autoname/almayer{ + dir = 4; + name = "ship-grade camera" + }, +/turf/open/floor/almayer/cargo, +/area/almayer/maint/hull/upper/u_f_s) "fRr" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "blue" - }, +/turf/open/floor/almayer/blue/southwest, /area/almayer/command/cichallway) "fRC" = ( /obj/structure/bed/chair/comfy{ @@ -36247,97 +23706,130 @@ }, /turf/open/floor/almayer, /area/almayer/command/lifeboat) -"fRN" = ( -/obj/structure/sign/safety/restrictedarea{ - pixel_x = 8; - pixel_y = 32 +"fRL" = ( +/obj/structure/machinery/camera/autoname/almayer{ + dir = 4; + name = "ship-grade camera" }, /turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_s) +/area/almayer/hallways/lower/port_aft_hallway) +"fRS" = ( +/obj/effect/landmark/start/warden, +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/cryo) "fSl" = ( /obj/structure/machinery/line_nexter{ id = "line2"; pixel_x = -2 }, -/turf/open/floor/almayer{ - icon_state = "test_floor5" - }, +/turf/open/floor/almayer/test_floor5, /area/almayer/squads/req) "fSm" = ( /obj/structure/sign/safety/storage{ pixel_x = -17 }, -/turf/open/floor/almayer{ - icon_state = "red" - }, +/turf/open/floor/almayer/red, /area/almayer/lifeboat_pumps/north1) -"fSK" = ( -/obj/structure/pipes/standard/manifold/hidden/supply, +"fSx" = ( +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 8 + }, /obj/structure/disposalpipe/segment{ - dir = 4 + dir = 4; + icon_state = "pipe-c" }, /turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/starboard_hallway) -"fTi" = ( -/obj/structure/largecrate/supply/floodlights, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "red" +/area/almayer/hallways/upper/fore_hallway) +"fSF" = ( +/obj/structure/surface/table/almayer, +/obj/item/device/flashlight, +/obj/item/storage/firstaid/rad, +/turf/open/floor/almayer/orange/southeast, +/area/almayer/engineering/lower) +"fTj" = ( +/obj/effect/step_trigger/clone_cleaner, +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 }, -/area/almayer/hull/upper_hull/u_a_p) +/turf/open/floor/almayer/red/southeast, +/area/almayer/hallways/upper/starboard) +"fTl" = ( +/turf/closed/wall/almayer/outer, +/area/almayer/maint/hull/upper/u_a_s) "fTm" = ( /obj/structure/bed/chair/office/dark, /turf/open/floor/almayer, /area/almayer/hallways/hangar) -"fTu" = ( -/turf/closed/wall/almayer/reinforced, -/area/almayer/hull/lower_hull/l_f_p) -"fTx" = ( +"fTt" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12 - }, -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12; - pixel_y = 12 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_a_p) +/obj/structure/pipes/standard/manifold/hidden/supply, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/processing) "fTF" = ( /obj/structure/machinery/door/airlock/almayer/generic{ dir = 2; name = "\improper Laundry Room" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/engineering/laundry) -"fTR" = ( -/obj/structure/largecrate/random/barrel/red, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_a_s) -"fTU" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/obj/structure/machinery/light{ +/obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "green" +/turf/open/floor/almayer/test_floor4, +/area/almayer/engineering/laundry) +"fUz" = ( +/obj/structure/surface/rack, +/obj/item/storage/box/cups{ + pixel_x = 4; + pixel_y = 9 }, -/area/almayer/hallways/starboard_hallway) +/obj/item/storage/box/cups, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/s_bow) "fUA" = ( /turf/open/floor/plating/plating_catwalk, /area/almayer/living/briefing) +"fUB" = ( +/obj/structure/closet/secure_closet/fridge/organic/stock, +/turf/open/floor/almayer/plate, +/area/almayer/living/grunt_rnr) +"fUC" = ( +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer/plate, +/area/almayer/living/briefing) +"fUZ" = ( +/obj/structure/largecrate/random/barrel/green, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_f_p) +"fVa" = ( +/obj/item/stack/catwalk, +/obj/structure/platform_decoration{ + dir = 4 + }, +/turf/open/floor/plating, +/area/almayer/maint/hull/upper/u_a_p) +"fVe" = ( +/turf/closed/wall/almayer/outer, +/area/almayer/maint/hull/upper/u_a_p) +"fVk" = ( +/obj/structure/machinery/door/airlock/almayer/maint, +/turf/open/floor/almayer/test_floor4, +/area/almayer/maint/upper/u_a_s) +"fVo" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer/orange/southeast, +/area/almayer/engineering/lower/workshop) +"fVx" = ( +/turf/open/floor/almayer/aicore/glowing/no_build/ai_floor3_4range, +/area/almayer/command/airoom) "fVz" = ( /obj/effect/decal/warning_stripes{ icon_state = "E"; @@ -36346,39 +23838,41 @@ /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) +"fVF" = ( +/obj/structure/machinery/light{ + dir = 4 + }, +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_10" + }, +/turf/open/floor/wood/ship, +/area/almayer/command/corporateliaison) "fVG" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/medical/chemistry) -"fWT" = ( -/obj/structure/machinery/door/airlock/almayer/engineering{ - dir = 2; - name = "\improper Engineering Workshop" - }, -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 +"fWg" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" }, -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/p_bow) +"fWi" = ( +/obj/structure/toilet{ + dir = 1 }, -/area/almayer/engineering/engineering_workshop) -"fXd" = ( -/obj/structure/machinery/light/small{ - dir = 4 +/obj/structure/window/reinforced/tinted{ + dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/structure/machinery/door/window/tinted{ + dir = 1 }, -/area/almayer/hull/lower_hull/l_a_p) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/engineering/upper_engineering/port) "fXg" = ( /obj/structure/disposalpipe/segment{ dir = 4; @@ -36386,65 +23880,48 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/medical/morgue) -"fXt" = ( -/obj/structure/window/framed/almayer, -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 1 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "green" - }, -/area/almayer/squads/req) "fXx" = ( /obj/structure/surface/rack, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/southeast, /area/almayer/command/computerlab) "fXz" = ( /obj/structure/machinery/alarm/almayer{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/shipboard/starboard_point_defense) -"fXB" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/structure/disposalpipe/segment, -/turf/open/floor/almayer, -/area/almayer/hallways/aft_hallway) -"fXM" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "S" +"fXE" = ( +/obj/structure/surface/table/almayer, +/obj/structure/machinery/computer/emails{ + pixel_x = 2; + pixel_y = 5 }, -/turf/open/floor/almayer, -/area/almayer/command/lifeboat) +/obj/structure/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/almayer/plate, +/area/almayer/command/combat_correspondent) "fXN" = ( /obj/effect/landmark/start/marine/delta, /obj/effect/landmark/late_join/delta, /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/delta) -"fYb" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_side" +"fXO" = ( +/turf/open/floor/almayer/red/northeast, +/area/almayer/lifeboat_pumps/north2) +"fXP" = ( +/obj/structure/machinery/camera/autoname/almayer{ + name = "ship-grade camera" }, +/turf/open/floor/almayer/silver/north, +/area/almayer/command/cichallway) +"fXZ" = ( +/obj/docking_port/stationary/emergency_response/port3, +/turf/open/floor/almayer/plating/northeast, +/area/almayer/shipboard/stern_point_defense) +"fYb" = ( +/turf/open/floor/almayer/sterile_green_side/west, /area/almayer/medical/morgue) -"fYc" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/sign/safety/distribution_pipes{ - pixel_x = 8; - pixel_y = 32 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_p) "fYf" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 1 @@ -36452,66 +23929,92 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plating/plating_catwalk, /area/almayer/command/cichallway) -"fYn" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 1 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "redcorner" - }, -/area/almayer/shipboard/brig/processing) -"fYG" = ( -/turf/open/floor/almayer{ - dir = 10; - icon_state = "orange" - }, -/area/almayer/engineering/engine_core) -"fYX" = ( -/obj/structure/surface/table/almayer, -/obj/structure/machinery/computer/secure_data{ - dir = 8 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "redcorner" +"fYr" = ( +/obj/structure/surface/rack, +/obj/item/device/radio{ + pixel_x = 5; + pixel_y = 4 }, -/area/almayer/shipboard/brig/chief_mp_office) +/obj/item/device/radio, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_f_s) "fYZ" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" }, /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/req) -"fZq" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 1 +"fZl" = ( +/turf/open/floor/almayer/orange, +/area/almayer/engineering/lower/engine_core) +"fZo" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SW-out"; + layer = 2.5 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "SE-out"; + pixel_x = 2 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/upper/starboard) +"fZq" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 1 }, /obj/effect/decal/cleanable/dirt, /obj/structure/disposalpipe/segment, /turf/open/floor/almayer, /area/almayer/shipboard/brig/cic_hallway) -"fZx" = ( -/obj/structure/sign/safety/security{ - pixel_x = 15; - pixel_y = 32 +"fZy" = ( +/obj/structure/sign/poster{ + pixel_y = -32 }, -/obj/structure/sign/safety/restrictedarea{ - pixel_y = 32 +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "plate" +/turf/open/floor/almayer, +/area/almayer/maint/hull/upper/u_f_s) +"fZA" = ( +/obj/structure/pipes/standard/simple/visible{ + dir = 9 }, -/area/almayer/hallways/port_hallway) -"fZF" = ( -/obj/structure/largecrate/random/secure, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/structure/machinery/meter, +/obj/structure/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/almayer/orangecorner/north, +/area/almayer/engineering/lower) +"fZE" = ( +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_midship_hallway) +"fZG" = ( +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer/plate, +/area/almayer/living/briefing) +"fZI" = ( +/obj/structure/platform_decoration{ + dir = 8 + }, +/obj/item/reagent_container/glass/bucket/mopbucket{ + pixel_x = 7; + pixel_y = -3 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_a_p) +"fZR" = ( +/obj/structure/machinery/light/small, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/stern) +"fZX" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W"; + layer = 2.5 }, -/area/almayer/hull/upper_hull/u_m_s) +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/execution) "fZZ" = ( /obj/effect/landmark/start/marine/medic/bravo, /obj/effect/landmark/late_join/bravo, @@ -36524,25 +24027,11 @@ req_access = null; req_one_access_txt = "3;19" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/living/briefing) -"gai" = ( -/obj/structure/closet/firecloset, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_a_p) "gaJ" = ( /turf/closed/wall/almayer, /area/almayer/shipboard/brig/cryo) -"gaO" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 6 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_p) "gaQ" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/supply{ @@ -36552,10 +24041,7 @@ dir = 8; name = "ship-grade camera" }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/east, /area/almayer/command/cichallway) "gba" = ( /obj/structure/surface/table/reinforced/almayer_B, @@ -36571,9 +24057,7 @@ pixel_x = 8; pixel_y = -8 }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, +/turf/open/floor/almayer/aicore/no_build, /area/almayer/command/airoom) "gbg" = ( /obj/structure/sign/safety/terminal{ @@ -36597,9 +24081,10 @@ pixel_y = -8; req_one_access_txt = "90;91;92" }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, +/turf/open/floor/almayer/aicore/glowing/no_build/ai_floor3, +/area/almayer/command/airoom) +"gbm" = ( +/turf/open/floor/almayer/aicore/no_build/ai_silver/east, /area/almayer/command/airoom) "gbs" = ( /obj/structure/surface/table/reinforced/black, @@ -36608,55 +24093,18 @@ pixel_x = 5; pixel_y = 1 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/north, /area/almayer/engineering/upper_engineering/starboard) -"gbQ" = ( -/obj/structure/toilet{ - dir = 8 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/command/corporateliason) -"gbX" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 6 - }, -/turf/open/floor/almayer, +"gbw" = ( +/turf/open/floor/almayer/red/northeast, /area/almayer/shipboard/brig/processing) -"gcc" = ( -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_f_p) -"gcw" = ( -/obj/structure/bed/chair/comfy/bravo, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/living/briefing) -"gcK" = ( -/obj/structure/machinery/light/small{ - dir = 1 - }, -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12 - }, -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12; - pixel_y = 12 +"gcm" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_a_s) +/obj/structure/machinery/light, +/turf/open/floor/almayer/red/northwest, +/area/almayer/hallways/upper/port) "gcN" = ( /obj/structure/machinery/door/airlock/almayer/command{ access_modified = 1; @@ -36664,69 +24112,39 @@ req_access = null; req_access_txt = "19;29" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/shipboard/sea_office) -"gcT" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" - }, -/area/almayer/shipboard/brig/main_office) -"gdd" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/sign/safety/distribution_pipes{ - pixel_x = 32 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_p) "gde" = ( /obj/structure/machinery/camera/autoname/almayer{ dir = 8; name = "ship-grade camera" }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/east, /area/almayer/shipboard/brig/cic_hallway) -"gdi" = ( -/obj/item/tool/wet_sign, -/obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_f_p) -"gdo" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, -/area/almayer/shipboard/brig/general_equipment) "gdp" = ( /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/almayer/red/north, /area/almayer/hallways/hangar) -"gds" = ( +"gdG" = ( +/obj/structure/bed/chair{ + dir = 8; + pixel_y = 3 + }, +/turf/open/floor/almayer/red/northeast, +/area/almayer/shipboard/brig/mp_bunks) +"gdJ" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "silvercorner" - }, -/area/almayer/hallways/repair_bay) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/engineering/lower) "gdS" = ( /obj/structure/window/framed/almayer, +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 1 + }, /turf/open/floor/plating, /area/almayer/engineering/laundry) "geg" = ( @@ -36741,20 +24159,41 @@ pixel_y = -12; shuttleId = "dropship_normandy" }, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, +/turf/open/floor/almayer/redfull, /area/almayer/living/offices/flight) +"gei" = ( +/obj/structure/sign/safety/ref_bio_storage{ + pixel_x = -17; + pixel_y = 7 + }, +/obj/structure/sign/safety/biohazard{ + pixel_x = -17; + pixel_y = -7 + }, +/obj/structure/medical_supply_link, +/obj/structure/machinery/cm_vending/sorted/medical/chemistry, +/turf/open/floor/almayer/mono, +/area/almayer/medical/medical_science) "gek" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/storage/fancy/cigarettes/wypacket, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/bridgebunks) "gel" = ( /turf/closed/wall/almayer/research/containment/wall/west, /area/almayer/medical/containment/cell/cl) +"gen" = ( +/obj/structure/surface/table/almayer, +/obj/item/device/flashlight/lamp{ + layer = 3.1; + pixel_x = 7; + pixel_y = 10 + }, +/obj/item/paper_bin/uscm, +/obj/item/tool/pen, +/obj/structure/machinery/light, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_f_p) "ger" = ( /obj/structure/surface/table/almayer, /obj/item/paper_bin/wy{ @@ -36770,39 +24209,30 @@ /obj/item/folder/white{ pixel_x = -8 }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/medical/medical_science) -"geH" = ( -/obj/structure/machinery/camera/autoname/almayer{ - name = "ship-grade camera" - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orangecorner" - }, -/area/almayer/hallways/stern_hallway) -"geX" = ( -/obj/structure/pipes/vents/scrubber, -/obj/structure/sign/safety/ammunition{ - pixel_x = 15; - pixel_y = 32 +"geu" = ( +/obj/structure/machinery/light, +/obj/effect/projector{ + name = "Almayer_Up4"; + vector_x = -19; + vector_y = 104 }, -/obj/structure/sign/safety/hazard{ - pixel_y = 32 +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/port_midship_hallway) +"gfd" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/area/almayer/shipboard/brig/general_equipment) -"gfk" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/structure/machinery/power/apc/almayer, +/obj/structure/sign/safety/rewire{ + pixel_y = -38 }, -/area/almayer/hull/upper_hull/u_a_s) +/turf/open/floor/almayer/red, +/area/almayer/shipboard/brig/starboard_hallway) "gfo" = ( /obj/structure/machinery/camera/autoname/almayer{ dir = 1; @@ -36810,6 +24240,10 @@ }, /turf/open/floor/almayer, /area/almayer/squads/delta) +"gfq" = ( +/obj/structure/closet/secure_closet/fridge/groceries, +/turf/open/floor/almayer/plate, +/area/almayer/living/grunt_rnr) "gfu" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -36819,24 +24253,20 @@ icon_state = "S"; layer = 3.3 }, -/turf/open/floor/almayer/no_build{ - icon_state = "tcomms" - }, -/area/almayer/command/airoom) -"gfE" = ( -/obj/structure/machinery/recharge_station, -/turf/open/floor/plating, +/turf/open/floor/almayer/aicore/glowing/no_build, /area/almayer/command/airoom) -"gfK" = ( -/obj/structure/bed/chair/comfy/blue, -/turf/open/floor/carpet, -/area/almayer/living/commandbunks) -"gfS" = ( -/obj/structure/sign/safety/cryo{ - pixel_y = -26 +"gfG" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer/plate, +/area/almayer/engineering/lower/workshop) +"gfN" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_s) +/turf/open/floor/almayer/red/southeast, +/area/almayer/hallways/upper/port) "gfW" = ( /turf/closed/wall/almayer/white, /area/almayer/medical/lockerroom) @@ -36851,22 +24281,25 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/medical/medical_science) -"ggt" = ( -/turf/open/floor/almayer{ - dir = 5; - icon_state = "silver" +"ggo" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, +/turf/open/floor/almayer/plate, +/area/almayer/hallways/lower/starboard_aft_hallway) +"ggt" = ( +/turf/open/floor/almayer/silver/northeast, /area/almayer/shipboard/brig/cic_hallway) "ggz" = ( /obj/structure/pipes/standard/manifold/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/medical/operating_room_four) +"ggD" = ( +/obj/structure/largecrate/random/case/double, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_m_s) "ggJ" = ( /obj/structure/machinery/door_control{ dir = 1; @@ -36876,79 +24309,93 @@ pixel_x = 28; pixel_y = -23 }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/medical/lower_medical_medbay) "ggQ" = ( /obj/structure/window/framed/almayer, /turf/open/floor/plating, /area/almayer/engineering/airmix) -"ghD" = ( -/obj/structure/sign/safety/autoopenclose{ - pixel_x = 7; - pixel_y = 32 +"ggS" = ( +/obj/structure/machinery/light{ + dir = 8 + }, +/obj/structure/bed/chair/bolted, +/turf/open/floor/almayer/plate, +/area/almayer/shipboard/brig/perma) +"ghA" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, +/obj/structure/surface/table/almayer, +/obj/item/toy/handcard/uno_reverse_red{ + pixel_x = 5; + pixel_y = 5 + }, +/obj/item/toy/deck/uno, +/obj/structure/machinery/light/small, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_f_s) +"ghF" = ( /turf/open/floor/almayer, -/area/almayer/hallways/port_hallway) -"ghW" = ( -/obj/effect/landmark/start/liaison, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_m_p) -"ghX" = ( -/obj/structure/machinery/shower{ +/area/almayer/hallways/lower/vehiclehangar) +"gii" = ( +/obj/structure/bed/chair/bolted{ dir = 8 }, -/obj/item/toy/inflatable_duck, -/obj/structure/window/reinforced, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/shipboard/brig/cells) +/turf/open/floor/almayer/red/north, +/area/almayer/shipboard/brig/interrogation) "gio" = ( /obj/structure/closet/emcloset, /obj/structure/sign/safety/restrictedarea{ pixel_x = -17; pixel_y = 7 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/west, /area/almayer/command/cichallway) "gip" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; pixel_y = 1 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/north, /area/almayer/squads/bravo) -"gir" = ( -/turf/closed/wall/almayer/reinforced, -/area/almayer/engineering/engineering_workshop) -"giB" = ( -/obj/structure/machinery/alarm/almayer{ - dir = 1 +"giD" = ( +/obj/structure/largecrate/random/barrel/yellow, +/turf/open/floor/almayer/plate, +/area/almayer/maint/upper/u_f_p) +"giR" = ( +/obj/structure/machinery/status_display{ + pixel_y = -30 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "blue" +/obj/structure/surface/table/almayer, +/obj/structure/machinery/computer/emails{ + dir = 4 }, -/area/almayer/hallways/aft_hallway) -"giZ" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 10 +/turf/open/floor/almayer/silver/southwest, +/area/almayer/shipboard/brig/cic_hallway) +"giW" = ( +/turf/open/floor/almayer/orange/northeast, +/area/almayer/hallways/upper/midship_hallway) +"gjg" = ( +/obj/structure/sign/safety/escapepod{ + pixel_x = -17; + pixel_y = -8 }, -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 +/obj/structure/sign/safety/stairs{ + pixel_x = -17; + pixel_y = 7 }, -/obj/effect/landmark/start/warden, -/turf/open/floor/almayer{ - icon_state = "plate" +/turf/open/floor/almayer/blue/west, +/area/almayer/hallways/lower/port_midship_hallway) +"gji" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/area/almayer/shipboard/brig/cryo) +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer/green/west, +/area/almayer/hallways/upper/fore_hallway) "gjm" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -36957,14 +24404,8 @@ /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) -"gjn" = ( -/obj/structure/pipes/standard/manifold/hidden/supply, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/starboard_hallway) "gjq" = ( /obj/structure/platform{ dir = 8 @@ -36974,93 +24415,52 @@ dir = 10; layer = 3.51 }, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/almayer/red/southwest, /area/almayer/lifeboat_pumps/south1) "gjt" = ( /obj/structure/bed/chair/office/dark, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/almayer/red/east, /area/almayer/shipboard/navigation) "gjv" = ( -/obj/structure/surface/rack, -/obj/effect/spawner/random/tool, -/obj/effect/spawner/random/toolbox, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_s) -"gjw" = ( -/obj/structure/machinery/faxmachine/uscm/command{ - density = 0; - department = "AI Core"; - pixel_y = 32 - }, -/obj/structure/surface/rack{ - density = 0; - pixel_y = 16 - }, -/obj/structure/machinery/computer/working_joe{ - dir = 8; - pixel_x = 17; - pixel_y = -6 - }, -/obj/item/storage/box/ids{ - pixel_x = -4 +/obj/effect/step_trigger/teleporter_vector{ + name = "Almayer_AresUp"; + vector_x = -96; + vector_y = 65 }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" +/obj/structure/stairs{ + dir = 1 }, +/turf/open/floor/almayer/aicore/no_build, /area/almayer/command/airoom) "gjB" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "test_floor5" - }, +/turf/open/floor/almayer/test_floor5, /area/almayer/command/computerlab) "gjK" = ( /obj/structure/bed/chair/wheelchair{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_corner" - }, +/turf/open/floor/almayer/sterile_green_corner/west, /area/almayer/medical/lower_medical_medbay) -"gjN" = ( -/obj/effect/landmark/yautja_teleport, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_a_s) -"gks" = ( -/obj/structure/largecrate/random/secure, -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_f_p) -"gkJ" = ( -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - icon_state = "plate" +"gkr" = ( +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/s_bow) +"gkE" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" }, -/area/almayer/living/briefing) +/turf/open/floor/almayer/plate, +/area/almayer/maint/upper/mess) "gkK" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/surface/table/reinforced/almayer_B, /obj/structure/machinery/computer/card{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/command/cic) "gll" = ( /obj/structure/machinery/power/apc/almayer{ @@ -37068,17 +24468,6 @@ }, /turf/open/floor/almayer, /area/almayer/squads/charlie_delta_shared) -"glr" = ( -/obj/item/tool/warning_cone{ - pixel_x = -20; - pixel_y = 18 - }, -/obj/structure/prop/invuln/lattice_prop{ - icon_state = "lattice12"; - pixel_y = -16 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_s) "gls" = ( /obj/structure/filingcabinet/filingcabinet, /obj/item/clipboard, @@ -37086,10 +24475,7 @@ /obj/item/folder/black, /obj/item/folder/black, /obj/item/folder/white, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_corner" - }, +/turf/open/floor/almayer/sterile_green_corner/north, /area/almayer/medical/lower_medical_medbay) "glB" = ( /obj/structure/sign/safety/chem_lab{ @@ -37097,55 +24483,49 @@ pixel_y = 29 }, /obj/structure/machinery/chem_master, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/medical/medical_science) -"glM" = ( -/obj/structure/window/reinforced{ - dir = 8; - health = 80 +"glG" = ( +/obj/structure/surface/rack, +/obj/item/storage/box/gloves{ + pixel_x = 3; + pixel_y = 3 }, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/item/storage/box/masks, +/turf/open/floor/almayer/sterile_green_side, +/area/almayer/shipboard/brig/medical) +"glH" = ( +/obj/structure/machinery/door/airlock/almayer/engineering{ + dir = 2; + name = "\improper Engineering Workshop" }, -/area/almayer/hull/lower_hull/l_m_p) -"gmb" = ( +/obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 1 + dir = 2 }, +/turf/open/floor/almayer/test_floor4, +/area/almayer/engineering/lower/workshop) +"glP" = ( +/obj/structure/janitorialcart, +/obj/item/tool/mop, +/turf/open/floor/almayer/plate, +/area/almayer/shipboard/brig/execution_storage) +"gmb" = ( /obj/structure/machinery/door/airlock/almayer/generic{ access_modified = 1; dir = 1; name = "Storage"; req_one_access_txt = "19;21" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/squads/req) "gmj" = ( /obj/structure/machinery/portable_atmospherics/canister/air, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/shipboard/starboard_point_defense) -"gmp" = ( -/obj/structure/surface/table/almayer, -/obj/item/device/flashlight/lamp{ - layer = 3.3; - pixel_x = 15 - }, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, -/area/almayer/living/briefing) "gms" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/southeast, /area/almayer/engineering/upper_engineering/port) "gnu" = ( /obj/structure/surface/table/almayer, @@ -37153,33 +24533,41 @@ /turf/open/floor/almayer, /area/almayer/squads/charlie) "gnv" = ( -/turf/open/floor/almayer{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/almayer/red/northeast, /area/almayer/lifeboat_pumps/south1) -"gnz" = ( -/obj/structure/sign/safety/hazard{ - pixel_x = 32; - pixel_y = 7 +"gnB" = ( +/obj/structure/platform_decoration{ + dir = 8 }, -/obj/structure/sign/safety/airlock{ - pixel_x = 32; - pixel_y = -8 +/turf/open/floor/almayer, +/area/almayer/hallways/lower/repair_bay) +"gnK" = ( +/obj/structure/pipes/standard/manifold/hidden/supply, +/obj/structure/disposalpipe/junction{ + dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "plate" +/turf/open/floor/almayer, +/area/almayer/hallways/upper/midship_hallway) +"gnM" = ( +/obj/structure/surface/rack, +/obj/item/frame/table, +/obj/item/frame/table, +/obj/item/frame/table, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_f_p) +"gof" = ( +/obj/structure/platform_decoration{ + dir = 1 }, -/area/almayer/hull/lower_hull/l_a_s) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_a_p) "goj" = ( /obj/structure/machinery/door/poddoor/almayer/open{ dir = 2; id = "CIC Lockdown"; name = "\improper Combat Information Center Blast Door" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/lifeboat_pumps/north1) "gol" = ( /obj/structure/machinery/door/airlock/almayer/maint/reinforced{ @@ -37188,10 +24576,19 @@ req_one_access = null; req_one_access_txt = "7;19" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/shipboard/weapon_room) +"goo" = ( +/obj/structure/machinery/door/poddoor/shutters/almayer{ + dir = 8; + id = "laddersoutheast"; + name = "\improper South East Ladders Shutters" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/almayer/test_floor4, +/area/almayer/hallways/lower/port_midship_hallway) "goy" = ( /obj/structure/machinery/door/firedoor/border_only/almayer, /obj/structure/disposalpipe/segment{ @@ -37206,129 +24603,178 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/living/port_emb) -"goD" = ( +"goL" = ( +/turf/open/floor/almayer/red/southwest, +/area/almayer/lifeboat_pumps/south1) +"goM" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "redcorner" - }, -/area/almayer/shipboard/brig/processing) -"goL" = ( -/turf/open/floor/almayer{ - dir = 10; - icon_state = "red" - }, -/area/almayer/lifeboat_pumps/south1) +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_a_p) +"goY" = ( +/turf/closed/wall/almayer, +/area/almayer/shipboard/panic) "gpc" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/machinery/door/airlock/almayer/engineering{ dir = 1; name = "\improper Engineering North Hall" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 1 }, +/turf/open/floor/almayer/test_floor4, /area/almayer/engineering/upper_engineering/starboard) -"gpe" = ( -/turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_p) "gpi" = ( -/obj/structure/dropship_equipment/rappel_system, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/obj/structure/dropship_equipment/paradrop_system, +/turf/open/floor/almayer/test_floor4, /area/almayer/hallways/hangar) +"gpp" = ( +/obj/item/device/radio/intercom{ + freerange = 1; + name = "General Listening Channel"; + pixel_y = 28 + }, +/turf/open/floor/almayer/green/north, +/area/almayer/hallways/upper/fore_hallway) "gpI" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/bed/chair, -/turf/open/floor/almayer{ - icon_state = "green" - }, +/turf/open/floor/almayer/green, /area/almayer/living/grunt_rnr) +"gpO" = ( +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/lower/s_bow) +"gpT" = ( +/obj/structure/sign/safety/maint{ + pixel_x = 8; + pixel_y = 32 + }, +/turf/open/floor/almayer/blue/north, +/area/almayer/hallways/upper/midship_hallway) +"gpW" = ( +/obj/structure/surface/table/reinforced/almayer_B{ + indestructible = 1; + unacidable = 1; + unslashable = 1 + }, +/obj/structure/machinery/computer/secure_data{ + dir = 4 + }, +/obj/structure/machinery/door_control{ + id = "ARES ReceptStairs1"; + name = "ARES Reception Shutters"; + pixel_y = 24; + req_one_access_txt = "91;92" + }, +/turf/open/floor/almayer/aicore/no_build, +/area/almayer/command/airoom) "gpY" = ( /turf/closed/wall/almayer/reinforced, /area/almayer/lifeboat_pumps/north1) -"gqq" = ( -/obj/structure/machinery/camera/autoname/almayer{ - dir = 8; - name = "ship-grade camera" - }, -/obj/structure/largecrate/random, -/turf/open/floor/almayer{ - icon_state = "plate" +"gqt" = ( +/obj/structure/sign/safety/storage{ + pixel_x = -17 }, -/area/almayer/hull/upper_hull/u_f_s) -"gqF" = ( -/obj/structure/machinery/photocopier, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_a_s) +"gqx" = ( /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" +/turf/open/floor/almayer/plate, +/area/almayer/maint/upper/u_a_s) +"gqz" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/area/almayer/command/combat_correspondent) -"gqK" = ( -/obj/structure/machinery/light/small{ +/obj/structure/pipes/standard/manifold/hidden/supply{ dir = 1 }, /turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_p) +/area/almayer/hallways/upper/midship_hallway) +"gqH" = ( +/turf/open/floor/almayer/blue/southwest, +/area/almayer/hallways/upper/midship_hallway) +"gqI" = ( +/turf/open/floor/almayer/orange/north, +/area/almayer/hallways/upper/midship_hallway) "gqP" = ( /obj/structure/largecrate/random/case, /obj/structure/machinery/camera/autoname/almayer{ dir = 1; name = "ship-grade camera" }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/lifeboat_pumps/north1) -"gqW" = ( -/obj/structure/surface/table/almayer, -/turf/open/floor/almayer{ - icon_state = "plate" +"gqQ" = ( +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_21" }, -/area/almayer/shipboard/brig/main_office) -"grl" = ( -/obj/effect/landmark/crap_item, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" +/obj/structure/sign/safety/escapepod{ + pixel_x = -17 + }, +/obj/structure/sign/poster/hero/voteno{ + pixel_y = 32 + }, +/turf/open/floor/wood/ship, +/area/almayer/command/corporateliaison) +"grd" = ( +/obj/structure/platform_decoration{ + dir = 8 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_a_p) +"gre" = ( +/turf/open/floor/almayer/greencorner/north, +/area/almayer/hallways/upper/fore_hallway) +"grv" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + layer = 2.5; + pixel_y = 1 }, -/area/almayer/shipboard/brig/main_office) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/s_bow) "grG" = ( /obj/structure/sign/safety/restrictedarea{ pixel_x = -17 }, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/almayer/red/southwest, /area/almayer/shipboard/navigation) "grR" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orangecorner" - }, +/turf/open/floor/almayer/orangecorner/east, /area/almayer/living/briefing) -"grX" = ( -/obj/structure/machinery/light/small{ - dir = 4 +"grT" = ( +/obj/structure/surface/table/almayer, +/obj/item/tool/wet_sign, +/obj/item/tool/wet_sign{ + pixel_x = -3; + pixel_y = 2 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" +/obj/item/tool/wet_sign{ + pixel_x = -8; + pixel_y = 6 + }, +/obj/structure/machinery/light{ + dir = 1 + }, +/turf/open/floor/plating, +/area/almayer/maint/lower/constr) +"gsd" = ( +/obj/structure/surface/table/almayer, +/obj/item/tool/hand_labeler{ + pixel_x = 7 }, -/area/almayer/hull/lower_hull/l_a_p) +/obj/item/storage/firstaid/fire{ + pixel_x = -6 + }, +/turf/open/floor/almayer/orange/north, +/area/almayer/engineering/lower/workshop/hangar) "gsg" = ( /obj/structure/pipes/vents/pump, /obj/structure/mirror{ @@ -37350,10 +24796,15 @@ /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/living/port_emb) +"gsi" = ( +/obj/structure/sign/safety/nonpress_0g{ + pixel_x = 8; + pixel_y = -32 + }, +/turf/open/floor/almayer/plating/northeast, +/area/almayer/shipboard/stern_point_defense) "gsm" = ( /obj/structure/machinery/status_display{ pixel_x = -32 @@ -37362,23 +24813,35 @@ /obj/effect/landmark/late_join, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/cryo_cells) -"gsH" = ( -/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ - dir = 1; - name = "\improper Port Viewing Room" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hull/upper_hull/u_f_p) -"gsL" = ( -/obj/structure/machinery/door/airlock/almayer/maint{ - dir = 1 +"gsp" = ( +/obj/structure/bed/chair{ + dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_f_p) +"gsy" = ( +/obj/structure/surface/rack, +/obj/structure/ob_ammo/ob_fuel, +/obj/structure/ob_ammo/ob_fuel, +/obj/structure/ob_ammo/ob_fuel, +/obj/structure/ob_ammo/ob_fuel, +/obj/structure/sign/safety/fire_haz{ + pixel_x = 8; + pixel_y = 32 }, -/area/almayer/hull/lower_hull/l_f_p) +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/p_bow) +"gsC" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/almayer/red/north, +/area/almayer/hallways/upper/port) +"gsJ" = ( +/turf/open/floor/almayer/blue/southeast, +/area/almayer/hallways/upper/midship_hallway) +"gsM" = ( +/obj/structure/machinery/portable_atmospherics/powered/pump, +/turf/open/floor/almayer/cargo, +/area/almayer/engineering/lower/engine_core) "gsZ" = ( /obj/structure/desertdam/decals/road_edge{ pixel_x = 2; @@ -37391,53 +24854,72 @@ }, /turf/open/floor/wood/ship, /area/almayer/living/basketball) +"gtg" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + pixel_y = 1 + }, +/turf/open/floor/almayer/red/east, +/area/almayer/hallways/upper/starboard) "gtp" = ( /obj/structure/pipes/standard/manifold/hidden/supply, /obj/structure/disposalpipe/junction{ dir = 4; icon_state = "pipe-j2" }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "silvercorner" - }, +/turf/open/floor/almayer/silvercorner/east, /area/almayer/command/cichallway) -"gtA" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/structure/transmitter{ - dir = 8; - name = "Medical Telephone"; - phone_category = "Almayer"; - phone_id = "Medical Lower"; - pixel_x = 16 +"gtD" = ( +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/starboard_fore_hallway) +"gtH" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "sterile_green" +/turf/open/floor/almayer/test_floor4, +/area/almayer/hallways/lower/starboard_aft_hallway) +"gtI" = ( +/turf/open/floor/almayer/plate, +/area/almayer/maint/upper/u_f_s) +"gtQ" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SE-out"; + pixel_x = 1 }, -/area/almayer/medical/lockerroom) -"guc" = ( -/obj/structure/pipes/vents/scrubber{ - dir = 1 +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_a_p) +"gtU" = ( +/obj/structure/machinery/power/apc/almayer{ + dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "green" +/obj/structure/sign/safety/rewire{ + pixel_x = -17; + pixel_y = 17 }, -/area/almayer/hallways/port_hallway) -"guC" = ( -/obj/item/paper_bin/wy, -/obj/structure/surface/table/woodentable/fancy, -/obj/item/tool/pen/clicky, -/obj/item/tool/pen/clicky, -/obj/structure/machinery/status_display{ - pixel_x = -32 +/turf/open/floor/almayer/red/west, +/area/almayer/shipboard/brig/perma) +"guo" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SW-out"; + layer = 2.5 }, -/turf/open/floor/carpet, -/area/almayer/command/corporateliason) +/turf/open/floor/almayer/redfull, +/area/almayer/lifeboat_pumps/south2) +"guK" = ( +/obj/effect/projector{ + name = "Almayer_Up3"; + vector_x = -1; + vector_y = 102 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/port_fore_hallway) +"guP" = ( +/turf/open/floor/almayer/orangecorner/west, +/area/almayer/maint/upper/u_a_s) "guS" = ( /obj/structure/reagent_dispensers/fueltank/custom, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/shipboard/starboard_point_defense) "guW" = ( /obj/structure/surface/table/reinforced/prison, @@ -37463,99 +24945,48 @@ /obj/structure/machinery/cm_vending/sorted/medical/wall_med{ pixel_y = -25 }, -/turf/open/floor/almayer{ - icon_state = "silver" - }, +/turf/open/floor/almayer/silver, /area/almayer/command/cic) -"gvC" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/prop/invuln/overhead_pipe{ - dir = 4; - pixel_y = 13 - }, -/obj/structure/prop/invuln/overhead_pipe{ - dir = 4; - pixel_x = 12; - pixel_y = 13 - }, -/obj/structure/prop/invuln/overhead_pipe{ - dir = 4; - pixel_x = -14; - pixel_y = 13 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_p) +"gvu" = ( +/turf/open/floor/almayer/green/north, +/area/almayer/hallways/upper/fore_hallway) +"gvK" = ( +/obj/structure/machinery/light, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_midship_hallway) "gvU" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "green" - }, +/turf/open/floor/almayer/green/west, /area/almayer/squads/req) -"gwm" = ( -/obj/structure/largecrate/random/case/small, -/obj/item/device/taperecorder{ - pixel_x = 7; - pixel_y = 7 - }, -/obj/item/reagent_container/glass/bucket/mopbucket{ - pixel_x = -9; - pixel_y = 8 +"gwh" = ( +/obj/structure/machinery/firealarm{ + pixel_y = 28 }, -/turf/open/floor/almayer{ - icon_state = "plate" +/turf/open/floor/almayer/blue/north, +/area/almayer/hallways/upper/fore_hallway) +"gwj" = ( +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 8 }, -/area/almayer/hull/lower_hull/l_f_p) +/turf/open/floor/almayer/red, +/area/almayer/shipboard/brig/processing) "gwn" = ( /obj/structure/machinery/ares/processor/bioscan, -/turf/open/floor/almayer/no_build{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/no_build/test_floor4, /area/almayer/command/airoom) "gwo" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "bluecorner" - }, +/turf/open/floor/almayer/bluecorner/east, /area/almayer/living/basketball) -"gwu" = ( -/obj/structure/machinery/light, -/obj/effect/decal/warning_stripes{ - icon_state = "SE-out" - }, -/turf/open/floor/almayer{ - icon_state = "red" - }, -/area/almayer/command/lifeboat) "gww" = ( /obj/structure/bed/chair, /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/gym) -"gwD" = ( -/obj/structure/surface/table/almayer, -/obj/item/storage/firstaid/regular, -/obj/item/clipboard, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/squads/req) -"gwF" = ( -/obj/structure/prop/invuln/lattice_prop{ - icon_state = "lattice12"; - pixel_y = 16 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_a_s) "gwM" = ( /obj/structure/pipes/vents/pump, /obj/structure/mirror{ @@ -37579,33 +25010,13 @@ /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/living/port_emb) "gwR" = ( /obj/item/device/flashlight/lamp/green, /obj/structure/surface/table/reinforced/black, /turf/open/floor/carpet, /area/almayer/command/cichallway) -"gwW" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer, -/area/almayer/engineering/engineering_workshop/hangar) -"gwY" = ( -/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ - dir = 1; - name = "\improper Starboard Viewing Room" - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hull/upper_hull/u_f_s) "gxh" = ( /obj/structure/surface/table/almayer, /obj/item/storage/firstaid/o2, @@ -37617,124 +25028,105 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/shipboard/starboard_point_defense) "gxk" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 10 - }, -/obj/item/device/radio/intercom{ - freerange = 1; - name = "General Listening Channel"; - pixel_y = 28 - }, -/turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_p) -"gxr" = ( -/obj/structure/largecrate/random/barrel/green, -/obj/structure/sign/safety/maint{ - pixel_x = 8; - pixel_y = 32 +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/secure_closet/guncabinet, +/obj/item/weapon/gun/rifle/l42a, +/obj/item/weapon/gun/rifle/l42a{ + pixel_y = 6 }, -/turf/open/floor/almayer{ - icon_state = "plate" +/turf/open/floor/almayer/plate, +/area/almayer/maint/upper/u_m_s) +"gxm" = ( +/turf/closed/wall/almayer/outer, +/area/almayer/maint/hull/upper/stairs) +"gxn" = ( +/turf/open/floor/almayer/red/west, +/area/almayer/hallways/upper/starboard) +"gxt" = ( +/obj/structure/machinery/door/airlock/almayer/security/glass/reinforced{ + name = "\improper Warden's Office" }, -/area/almayer/hull/lower_hull/l_m_s) +/turf/open/floor/almayer/test_floor4, +/area/almayer/shipboard/brig/warden_office) +"gxI" = ( +/turf/closed/wall/almayer/reinforced, +/area/almayer/maint/hull/upper/s_bow) "gxO" = ( -/turf/open/floor/almayer{ - dir = 10; - icon_state = "blue" - }, +/turf/open/floor/almayer/blue/southwest, /area/almayer/living/gym) "gxP" = ( /obj/effect/decal/warning_stripes{ icon_state = "E"; pixel_x = 1 }, -/turf/open/floor/almayer/research/containment/floor2{ - dir = 8 - }, +/turf/open/floor/almayer/research/containment/floor2/west, /area/almayer/medical/containment/cell) "gxU" = ( /obj/structure/surface/table/almayer, -/obj/structure/machinery/status_display{ - pixel_y = -30 - }, -/obj/structure/machinery/computer/emails{ - dir = 4 - }, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "silver" - }, +/obj/item/toy/deck, +/turf/open/floor/almayer/silver/west, /area/almayer/shipboard/brig/cic_hallway) -"gye" = ( -/obj/structure/machinery/door/poddoor/shutters/almayer/uniform_vendors, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +"gyh" = ( +/obj/structure/machinery/cm_vending/gear/executive_officer{ + density = 0; + pixel_y = 30 }, -/area/almayer/command/cic) -"gyt" = ( -/obj/item/storage/firstaid/regular, -/obj/structure/surface/rack, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/structure/machinery/power/apc/almayer{ + dir = 4 }, -/area/almayer/hull/upper_hull/u_a_s) +/turf/open/floor/almayer/plate, +/area/almayer/living/numbertwobunks) +"gym" = ( +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/mp_bunks) +"gyn" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/disposalpipe/segment, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_fore_hallway) "gyv" = ( /obj/structure/platform_decoration{ dir = 4 }, /turf/open/floor/almayer, /area/almayer/living/briefing) -"gyy" = ( -/obj/structure/sign/safety/distribution_pipes{ - pixel_x = 32 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "green" - }, -/area/almayer/hallways/aft_hallway) -"gyC" = ( -/obj/structure/machinery/camera/autoname/almayer{ - dir = 8; - name = "ship-grade camera" - }, -/obj/structure/sign/safety/two{ - pixel_x = 32; - pixel_y = -8 - }, -/obj/structure/sign/safety/ammunition{ - pixel_x = 32; - pixel_y = 7 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" +"gyw" = ( +/turf/open/floor/almayer/plate, +/area/almayer/hallways/lower/port_aft_hallway) +"gyE" = ( +/turf/open/floor/almayer/green/north, +/area/almayer/hallways/lower/port_aft_hallway) +"gyH" = ( +/obj/item/tool/warning_cone{ + pixel_x = -12; + pixel_y = 16 }, -/area/almayer/hallways/starboard_hallway) +/turf/open/floor/plating, +/area/almayer/maint/lower/constr) "gyN" = ( /obj/structure/machinery/prop{ desc = "It's a server box..."; icon_state = "comm_server"; name = "server box" }, -/turf/open/floor/almayer/no_build{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/no_build/test_floor4, /area/almayer/command/airoom) "gyO" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/east, /area/almayer/engineering/ce_room) +"gyU" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/turf/open/floor/almayer, +/area/almayer/lifeboat_pumps/north2) "gzn" = ( /obj/structure/machinery/landinglight/ds2/delaytwo{ dir = 8 @@ -37756,21 +25148,11 @@ pixel_x = 2; pixel_y = 6 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) -"gzr" = ( -/obj/structure/stairs/perspective{ - dir = 8; - icon_state = "p_stair_full" - }, -/obj/structure/platform, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/engineering/engine_core) +"gzq" = ( +/turf/open/floor/plating/plating_catwalk, +/area/almayer/engineering/lower/engine_core) "gzw" = ( /obj/structure/closet/hydrant{ pixel_x = 30 @@ -37796,53 +25178,43 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/medical/morgue) +"gzM" = ( +/obj/effect/step_trigger/clone_cleaner, +/obj/structure/sign/safety/stairs{ + pixel_x = 8; + pixel_y = -32 + }, +/turf/open/floor/plating/almayer/no_build, +/area/almayer/hallways/lower/port_midship_hallway) +"gzN" = ( +/obj/structure/sign/safety/maint{ + pixel_x = 8; + pixel_y = -32 + }, +/turf/open/floor/plating, +/area/almayer/maint/lower/constr) "gzV" = ( /obj/structure/sink{ dir = 1; pixel_y = -10 }, -/turf/open/floor/almayer{ - icon_state = "green" - }, +/turf/open/floor/almayer/green, /area/almayer/living/grunt_rnr) -"gAd" = ( -/obj/structure/bed/chair{ - dir = 8 - }, -/turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_p) -"gAe" = ( -/obj/structure/machinery/door_control{ - id = "ARES JoeCryo"; - name = "Working Joe Cryogenics Lockdown"; - pixel_x = 24; - pixel_y = 8; - req_one_access_txt = "91;92" - }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, -/area/almayer/command/airoom) "gAj" = ( /obj/structure/bed/chair/comfy/charlie{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "emeraldfull" - }, +/turf/open/floor/almayer/emeraldfull, /area/almayer/living/briefing) +"gAk" = ( +/turf/open/floor/almayer/plate, +/area/almayer/command/corporateliaison) "gAl" = ( /obj/structure/machinery/light{ dir = 8 }, /turf/open/floor/almayer, /area/almayer/command/cichallway) -"gAt" = ( -/obj/structure/platform_decoration{ - dir = 1 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_a_p) "gAz" = ( /obj/structure/surface/table/almayer, /obj/item/reagent_container/food/drinks/golden_cup{ @@ -37850,18 +25222,29 @@ pixel_x = -4; pixel_y = 7 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/grunt_rnr) "gAA" = ( /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/alpha_bravo_shared) +"gAO" = ( +/obj/structure/surface/rack, +/obj/item/tool/weldpack, +/turf/open/floor/almayer/plate, +/area/almayer/maint/upper/u_a_p) +"gAP" = ( +/obj/item/device/radio/intercom{ + freerange = 1; + name = "General Listening Channel"; + pixel_y = 28 + }, +/obj/structure/closet, +/obj/item/clothing/head/bearpelt, +/turf/open/floor/almayer/plate, +/area/almayer/living/port_emb) "gAS" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/medical/medical_science) "gBc" = ( /obj/structure/disposalpipe/segment, @@ -37874,89 +25257,119 @@ icon_state = "W"; pixel_x = -1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/bravo) -"gBi" = ( -/obj/structure/pipes/vents/pump{ - dir = 1 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "redcorner" +"gBd" = ( +/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ + pixel_y = 25 }, -/area/almayer/shipboard/brig/processing) +/turf/open/floor/almayer, +/area/almayer/maint/hull/upper/u_f_p) "gBo" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 5 }, /turf/open/floor/almayer, /area/almayer/living/briefing) +"gBs" = ( +/obj/structure/machinery/door/airlock/almayer/maint, +/turf/open/floor/almayer/test_floor4, +/area/almayer/maint/hull/upper/u_m_p) +"gBU" = ( +/obj/structure/surface/table/almayer, +/obj/item/storage/bag/trash{ + pixel_x = -3 + }, +/obj/structure/machinery/power/apc/almayer{ + dir = 1 + }, +/turf/open/floor/plating, +/area/almayer/maint/lower/constr) "gBW" = ( /obj/structure/machinery/floodlight/landing{ name = "bolted floodlight" }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/lifeboat_pumps/south1) -"gCd" = ( -/obj/structure/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_s) "gCf" = ( /obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/lifeboat_pumps/south1) -"gCl" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/manifold/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "plate" +"gCu" = ( +/obj/structure/prop/invuln/lattice_prop{ + icon_state = "lattice12"; + pixel_y = 16 }, -/area/almayer/hallways/vehiclehangar) +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_a_s) "gCw" = ( /obj/item/reagent_container/food/drinks/cans/beer{ pixel_x = 10 }, /turf/open/floor/almayer, /area/almayer/hallways/hangar) -"gCI" = ( -/obj/structure/machinery/light{ - dir = 4 - }, -/obj/structure/machinery/cryopod/right{ - pixel_y = 6 +"gCB" = ( +/obj/structure/machinery/power/apc/almayer/hardened{ + cell_type = /obj/item/cell/hyper; + dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "cargo" +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + pixel_y = 1 }, -/area/almayer/shipboard/brig/cryo) +/turf/open/floor/almayer/mono, +/area/almayer/lifeboat_pumps/north2) "gCP" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/device/flashlight/lamp, /obj/item/tool/crowbar, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/bridgebunks) -"gDq" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 10 +"gDh" = ( +/obj/structure/machinery/door/airlock/almayer/secure/reinforced{ + access_modified = 1; + name = "\improper Security Vault"; + req_access = null; + req_one_access_txt = "91;92"; + dir = 1 }, -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 2 +/obj/structure/machinery/door/poddoor/almayer/blended/ai_lockdown/aicore{ + plane = -6 + }, +/turf/open/floor/almayer/no_build/test_floor4, +/area/almayer/command/airoom) +"gDk" = ( +/obj/structure/sign/safety/stairs{ + pixel_x = -15 + }, +/turf/open/floor/almayer/green/west, +/area/almayer/hallways/upper/fore_hallway) +"gDp" = ( +/obj/structure/machinery/light{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/almayer, +/area/almayer/command/corporateliaison) +"gDt" = ( +/obj/structure/surface/table/almayer, +/obj/structure/machinery/computer/crew/alt{ + dir = 4 + }, +/obj/structure/transmitter/rotary/no_dnd{ + name = "Brig Cells Telephone"; + phone_category = "MP Dept."; + phone_id = "Brig Cells"; + pixel_x = 16 + }, +/turf/open/floor/almayer/red/southwest, +/area/almayer/shipboard/brig/processing) +"gDH" = ( +/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ + pixel_y = 25 }, /turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_p) +/area/almayer/engineering/lower/engine_core) "gDW" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -37964,58 +25377,38 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/northeast, /area/almayer/medical/lower_medical_medbay) +"gDX" = ( +/obj/structure/sign/safety/nonpress_ag{ + pixel_x = 32 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/p_bow) "gEg" = ( /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/offices/flight) +"gEh" = ( +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_a_p) "gEo" = ( /obj/structure/machinery/cryopod/right, /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/squads/delta) "gEv" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/engineering/upper_engineering/port) -"gEI" = ( -/obj/item/device/flashlight/lamp/green{ - pixel_x = 5; - pixel_y = 3 - }, -/obj/structure/surface/table/woodentable/fancy, -/obj/structure/machinery/door_control/cl/office/evac{ - pixel_x = -5; - pixel_y = 4 - }, -/obj/structure/machinery/door_control/cl/office/divider{ - pixel_x = -5; - pixel_y = -3 - }, -/turf/open/floor/carpet, -/area/almayer/command/corporateliason) -"gEK" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/turf/open/floor/wood/ship, -/area/almayer/command/corporateliason) +"gEC" = ( +/obj/structure/machinery/suit_storage_unit/carbon_unit, +/turf/open/floor/almayer/plate, +/area/almayer/engineering/lower) "gFa" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -38027,70 +25420,31 @@ /obj/item/book/manual/atmospipes{ pixel_y = 9 }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/lifeboat_pumps/south1) -"gFs" = ( -/obj/effect/spawner/random/toolbox, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_s) -"gFG" = ( -/obj/structure/surface/rack, -/obj/effect/spawner/random/tool, -/obj/effect/spawner/random/tool, -/turf/open/floor/almayer{ - icon_state = "plate" +"gFP" = ( +/turf/closed/wall/almayer/outer, +/area/almayer/shipboard/stern_point_defense) +"gFR" = ( +/obj/structure/machinery/light, +/obj/structure/machinery/cm_vending/gear/commanding_officer, +/turf/open/floor/almayer/cargo, +/area/almayer/living/commandbunks) +"gGb" = ( +/obj/structure/platform{ + dir = 1 }, -/area/almayer/hull/lower_hull/l_m_p) +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_a_p) "gGf" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/delta) -"gGl" = ( -/obj/structure/surface/table/almayer, -/obj/item/device/taperecorder, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/command/combat_correspondent) -"gGo" = ( -/obj/structure/surface/table/almayer, -/obj/structure/machinery/firealarm{ - pixel_y = 28 - }, -/obj/structure/prop/holidays/string_lights{ - dir = 8; - pixel_x = 29 - }, -/obj/item/reagent_container/food/condiment/hotsauce/cholula{ - pixel_x = 10; - pixel_y = 14 - }, -/obj/item/trash/USCMtray{ - pixel_x = -4; - pixel_y = 4 - }, -/obj/item/reagent_container/food/snacks/hotdog{ - pixel_x = -7; - pixel_y = 5 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/living/briefing) "gGr" = ( /obj/structure/machinery/vending/cigarette, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/north, /area/almayer/shipboard/brig/cic_hallway) "gGs" = ( /obj/item/tool/crowbar/red{ @@ -38114,24 +25468,26 @@ }, /turf/open/floor/plating, /area/almayer/hallways/hangar) +"gGw" = ( +/obj/structure/machinery/door/airlock/almayer/maint{ + dir = 1 + }, +/turf/open/floor/almayer/test_floor4, +/area/almayer/hallways/lower/vehiclehangar) "gGx" = ( /obj/structure/filingcabinet/chestdrawer{ density = 0; pixel_x = -16 }, /obj/structure/machinery/iv_drip, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/medical/medical_science) "gGI" = ( /obj/structure/disposalpipe/segment, /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/almayer/living/grunt_rnr) "gGJ" = ( /obj/structure/disposalpipe/segment{ @@ -38140,26 +25496,40 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/medical/lower_medical_lobby) -"gHg" = ( -/obj/structure/machinery/light/small, -/turf/open/floor/almayer{ - icon_state = "plate" +"gHh" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/upper/port) +"gHi" = ( +/obj/structure/largecrate/random/barrel/red, +/turf/open/floor/almayer/cargo, +/area/almayer/maint/hull/lower/l_m_s) +"gHj" = ( +/obj/structure/machinery/light, +/obj/structure/closet/secure_closet/fridge/groceries/stock, +/turf/open/floor/almayer/plate, +/area/almayer/living/grunt_rnr) +"gHl" = ( +/obj/structure/machinery/light{ + dir = 8 }, -/area/almayer/hull/upper_hull/u_a_p) +/turf/open/floor/almayer, +/area/almayer/engineering/lower/workshop/hangar) "gHo" = ( /obj/structure/machinery/door/airlock/almayer/marine/delta/tl, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/squads/delta) +"gHt" = ( +/obj/structure/bed/chair/bolted, +/turf/open/floor/almayer/red/northwest, +/area/almayer/shipboard/brig/processing) "gHZ" = ( -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/hallways/hangar) "gIh" = ( /obj/structure/machinery/door/airlock/almayer/generic{ @@ -38169,10 +25539,27 @@ req_access = list(); req_one_access_txt = "1;6" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/engineering/ce_room) +"gIm" = ( +/obj/structure/machinery/power/apc/almayer{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_a_p) +"gIz" = ( +/obj/structure/machinery/camera/autoname/almayer{ + dir = 1; + name = "ship-grade camera" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer/red, +/area/almayer/shipboard/brig/starboard_hallway) "gII" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -38180,117 +25567,141 @@ /turf/open/floor/almayer, /area/almayer/command/cichallway) "gIJ" = ( -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/engineering/upper_engineering/port) -"gIN" = ( -/obj/structure/machinery/light/small{ - dir = 1 +"gIO" = ( +/obj/structure/bed/chair/bolted{ + dir = 8 }, -/obj/structure/largecrate/random/barrel/red, /turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_a_s) -"gJd" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 +/area/almayer/shipboard/brig/interrogation) +"gIU" = ( +/obj/structure/surface/table/almayer, +/obj/item/storage/box/tapes{ + pixel_x = 7; + pixel_y = 6 }, -/obj/structure/sign/safety/distribution_pipes{ - pixel_x = 8; - pixel_y = 32 +/obj/item/storage/box/tapes{ + pixel_x = -6; + pixel_y = 6 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_p) -"gJq" = ( +/obj/item/storage/box/tapes{ + pixel_x = 1; + pixel_y = 1 + }, +/turf/open/floor/almayer/cargo, +/area/almayer/shipboard/brig/evidence_storage) +"gJf" = ( +/obj/structure/bed/sofa/south/grey/left{ + pixel_y = 12 + }, +/turf/open/floor/almayer, +/area/almayer/maint/hull/upper/u_f_s) +"gJg" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer/plate, +/area/almayer/maint/upper/u_m_s) +"gJp" = ( /obj/structure/surface/table/almayer, -/obj/item/storage/box/mousetraps, -/obj/structure/sign/safety/high_rad{ - pixel_x = 32; - pixel_y = -8 +/obj/structure/machinery/computer/emails{ + dir = 4 }, -/obj/structure/sign/safety/hazard{ - pixel_x = 32; - pixel_y = 7 +/turf/open/floor/almayer/plate, +/area/almayer/hallways/lower/repair_bay) +"gJC" = ( +/obj/structure/sign/safety/maint{ + pixel_x = -17 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" +/turf/open/floor/almayer/green/west, +/area/almayer/hallways/upper/fore_hallway) +"gJE" = ( +/obj/structure/machinery/door_control{ + id = "Interrogation Shutters"; + name = "\improper Shutters"; + pixel_x = 24; + pixel_y = 12; + req_access_txt = "3" }, -/area/almayer/engineering/lower_engineering) -"gJs" = ( -/obj/structure/machinery/cm_vending/sorted/cargo_ammo/cargo/blend, -/turf/open/floor/almayer{ - icon_state = "green" +/obj/structure/machinery/camera/autoname/almayer{ + dir = 8; + name = "ship-grade camera" }, -/area/almayer/squads/req) +/turf/open/floor/almayer/red/northeast, +/area/almayer/shipboard/brig/interrogation) +"gJF" = ( +/turf/closed/wall/almayer/outer, +/area/almayer/maint/hull/upper/s_stern) +"gJO" = ( +/obj/structure/surface/table/reinforced/almayer_B, +/obj/structure/machinery/door/window/southleft{ + desc = "A window, that is also a door. A windoor if you will. This one is stronger."; + health = 500; + name = "Reinforced Glass door"; + req_one_access_txt = "2;35" + }, +/turf/open/floor/almayer, +/area/almayer/engineering/lower/workshop/hangar) "gJP" = ( /obj/structure/machinery/light, /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "green" - }, +/turf/open/floor/almayer/green, /area/almayer/living/offices) +"gKd" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/obj/structure/machinery/light, +/turf/open/floor/almayer/red/northwest, +/area/almayer/hallways/upper/starboard) +"gKo" = ( +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/port_umbilical) +"gKv" = ( +/obj/effect/landmark/yautja_teleport, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/p_bow) +"gKw" = ( +/obj/structure/disposalpipe/junction{ + dir = 4; + icon_state = "pipe-j2" + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/port_midship_hallway) "gKB" = ( /obj/structure/machinery/portable_atmospherics/hydroponics, /obj/structure/machinery/firealarm{ pixel_y = 28 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/almayer/green/north, /area/almayer/living/grunt_rnr) "gKF" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/structure/machinery/computer/cameras/almayer_network/vehicle{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, +/turf/open/floor/almayer/redfull, /area/almayer/shipboard/port_missiles) -"gKH" = ( -/obj/item/trash/uscm_mre, -/obj/structure/bed/chair/comfy/charlie, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/living/briefing) -"gKJ" = ( -/obj/structure/machinery/vending/cola{ - density = 0; - pixel_y = 18 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_f_p) +"gKK" = ( +/turf/open/floor/almayer/silvercorner, +/area/almayer/hallways/lower/repair_bay) "gKR" = ( /obj/structure/closet/emcloset, /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/west, /area/almayer/medical/upper_medical) -"gKS" = ( -/obj/structure/largecrate/random/barrel/yellow, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_m_p) "gKZ" = ( /obj/structure/surface/table/almayer, /obj/item/tool/wet_sign, /obj/item/tool/wet_sign, /obj/item/reagent_container/spray/cleaner, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/engineering/upper_engineering) "gLc" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -38306,6 +25717,13 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/medical/hydroponics) +"gLl" = ( +/turf/closed/wall/almayer, +/area/almayer/maint/upper/u_f_s) +"gLm" = ( +/obj/structure/largecrate/random/barrel/red, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_m_p) "gLz" = ( /obj/structure/machinery/cryopod{ layer = 3.1; @@ -38318,10 +25736,12 @@ icon_state = "E"; pixel_x = 1 }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/engineering/upper_engineering/port) +"gLD" = ( +/obj/structure/pipes/standard/manifold/hidden/supply, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/engineering/lower) "gLE" = ( /obj/structure/platform{ dir = 1 @@ -38333,11 +25753,22 @@ dir = 9; layer = 3.51 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/almayer/red/northeast, /area/almayer/lifeboat_pumps/south1) +"gLG" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/turf/open/floor/almayer/orange/northwest, +/area/almayer/engineering/lower/engine_core) +"gLN" = ( +/obj/structure/machinery/light, +/obj/structure/flora/pottedplant{ + pixel_x = -1; + pixel_y = 3 + }, +/turf/open/floor/wood/ship, +/area/almayer/living/commandbunks) "gLZ" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -38346,46 +25777,22 @@ id = "Delta_2"; name = "\improper Bathroom" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/living/port_emb) -"gMa" = ( -/obj/structure/sign/safety/escapepod{ - pixel_y = -32 - }, -/obj/structure/sign/safety/east{ - pixel_x = 15; - pixel_y = -32 - }, -/turf/open/floor/almayer{ - icon_state = "green" - }, -/area/almayer/hallways/aft_hallway) -"gMf" = ( -/obj/structure/machinery/firealarm{ - dir = 4; - pixel_x = 24 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" +"gMd" = ( +/obj/structure/surface/table/almayer, +/obj/item/clipboard, +/obj/item/tool/lighter, +/obj/item/device/flashlight/lamp, +/turf/open/floor/almayer/plate, +/area/almayer/engineering/lower/workshop) +"gMk" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/sign/safety/maint{ + pixel_x = -17 }, -/area/almayer/shipboard/brig/perma) -"gMx" = ( -/obj/structure/closet/firecloset, /turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_p) -"gMA" = ( -/obj/structure/machinery/door/airlock/almayer/maint{ - access_modified = 1; - dir = 8; - req_one_access = list(2,34,30) - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hull/upper_hull/u_m_p) +/area/almayer/hallways/lower/starboard_fore_hallway) "gMN" = ( /obj/effect/decal/warning_stripes{ icon_state = "E"; @@ -38415,38 +25822,36 @@ unacidable = 0; unslashable = 0 }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, +/turf/open/floor/almayer/aicore/no_build, /area/almayer/command/airoom) -"gMU" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer/uscm/directional{ - dir = 4 +"gMS" = ( +/obj/structure/machinery/camera/autoname/almayer{ + name = "ship-grade camera" }, -/area/almayer/living/briefing) -"gNd" = ( -/obj/structure/machinery/cm_vending/sorted/tech/comp_storage, -/obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "cargo" +/obj/structure/machinery/alarm/almayer{ + dir = 1 }, -/area/almayer/engineering/engine_core) -"gNi" = ( +/obj/structure/machinery/suit_storage_unit/compression_suit/uscm, +/turf/open/floor/almayer/plate, +/area/almayer/hallways/lower/port_umbilical) +"gMU" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "bluefull" - }, +/turf/open/floor/almayer/uscm/directional/east, /area/almayer/living/briefing) -"gNp" = ( -/turf/open/floor/almayer{ - dir = 9; - icon_state = "sterile_green_side" +"gNg" = ( +/obj/structure/sign/safety/maint{ + pixel_x = -17 }, +/obj/structure/machinery/power/apc/almayer, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/s_bow) +"gNo" = ( +/turf/open/floor/almayer/plate, +/area/almayer/maint/upper/u_m_p) +"gNp" = ( +/turf/open/floor/almayer/sterile_green_side/northwest, /area/almayer/medical/medical_science) "gNq" = ( /obj/structure/machinery/cm_vending/sorted/cargo_ammo/squad{ @@ -38455,116 +25860,110 @@ req_one_access_txt = "17;18;21"; vend_x_offset = 0 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/charlie_delta_shared) -"gNx" = ( -/obj/structure/surface/rack, -/obj/effect/spawner/random/toolbox, -/obj/effect/spawner/random/toolbox, -/obj/effect/spawner/random/toolbox, -/obj/effect/spawner/random/tool, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_p) -"gOm" = ( +"gNy" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, /obj/structure/pipes/standard/simple/hidden/supply{ - dir = 6 + dir = 10 }, -/obj/structure/bed/chair/comfy/bravo{ - dir = 4 +/turf/open/floor/almayer/plating/northeast, +/area/almayer/hallways/lower/vehiclehangar) +"gNI" = ( +/turf/open/floor/almayer/orange, +/area/almayer/maint/upper/u_a_s) +"gNN" = ( +/obj/structure/bed/chair/office/dark, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_m_p) +"gNO" = ( +/obj/structure/machinery/firealarm{ + pixel_y = 28 }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - icon_state = "plate" +/turf/open/floor/almayer/orange/north, +/area/almayer/engineering/lower) +"gNZ" = ( +/obj/structure/machinery/light/small{ + dir = 1 }, -/area/almayer/living/briefing) -"gOs" = ( +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/p_bow) +"gOa" = ( +/obj/effect/step_trigger/clone_cleaner, /obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 + icon_state = "SW-out" }, -/obj/structure/machinery/door_control{ - id = "ARES Interior"; - indestructible = 1; - name = "ARES Chamber Lockdown"; - pixel_x = 24; - pixel_y = 8; - req_one_access_txt = "90;91;92" +/obj/structure/sign/safety/stairs{ + pixel_x = -17 }, -/obj/structure/machinery/door/poddoor/railing{ - closed_layer = 4; - density = 0; - id = "ARES Railing"; - layer = 2.1; - open_layer = 2.1; - unacidable = 0; - unslashable = 0 +/turf/open/floor/almayer/green/west, +/area/almayer/hallways/upper/fore_hallway) +"gOk" = ( +/obj/structure/largecrate/guns/merc{ + name = "\improper dodgy crate" }, -/turf/open/floor/almayer/no_build{ - dir = 4; - icon_state = "silver" +/turf/open/floor/plating, +/area/almayer/maint/lower/constr) +"gOC" = ( +/obj/structure/machinery/recharge_station, +/turf/open/floor/almayer/orange/northeast, +/area/almayer/engineering/lower) +"gOR" = ( +/obj/structure/machinery/disposal, +/obj/structure/disposalpipe/trunk{ + dir = 4 }, -/area/almayer/command/airoom) +/turf/open/floor/almayer, +/area/almayer/engineering/lower/workshop/hangar) +"gOS" = ( +/turf/open/floor/almayer/emerald/east, +/area/almayer/hallways/lower/port_midship_hallway) "gPc" = ( /obj/structure/machinery/power/terminal{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/northwest, /area/almayer/engineering/upper_engineering/starboard) -"gPr" = ( -/obj/effect/step_trigger/teleporter_vector{ - name = "Almayer_AresUp"; - vector_x = -97; - vector_y = 65 - }, -/obj/structure/machinery/light{ - unacidable = 1; - unslashable = 1 - }, -/obj/structure/stairs{ - dir = 1 +"gPA" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" }, -/turf/open/floor/almayer/no_build{ - dir = 4 +/turf/open/floor/almayer/silver/northeast, +/area/almayer/hallways/upper/midship_hallway) +"gPS" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 }, -/area/almayer/command/airoom) -"gPF" = ( -/obj/structure/machinery/light, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "orange" +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_a_s) +"gPU" = ( +/obj/structure/machinery/door/poddoor/almayer/open{ + dir = 4; + id = "Hangar Lockdown"; + name = "\improper Hangar Lockdown Blast Door" }, -/area/almayer/hallways/stern_hallway) -"gQl" = ( +/turf/open/floor/almayer/plate, +/area/almayer/hallways/lower/vehiclehangar) +"gQk" = ( /obj/structure/surface/table/almayer, -/obj/item/reagent_container/glass/bucket{ - pixel_x = 6; - pixel_y = 8 - }, -/obj/item/reagent_container/glass/bucket{ - pixel_x = -6; - pixel_y = 8 - }, -/obj/item/reagent_container/glass/bucket{ - pixel_x = -6; - pixel_y = -2 - }, -/obj/item/reagent_container/glass/bucket{ - pixel_x = 6; - pixel_y = -2 - }, -/obj/structure/machinery/camera/autoname/almayer{ - dir = 1; - name = "ship-grade camera" +/obj/structure/sign/safety/terminal{ + pixel_x = -17 }, -/turf/open/floor/almayer{ - icon_state = "orange" +/obj/structure/machinery/faxmachine/corporate/liaison, +/turf/open/floor/wood/ship, +/area/almayer/command/corporateliaison) +"gQu" = ( +/obj/structure/platform{ + dir = 4 }, -/area/almayer/engineering/engineering_workshop/hangar) +/obj/item/storage/firstaid/rad, +/obj/structure/surface/rack, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_a_s) "gQF" = ( /obj/structure/bed/chair/comfy{ buckling_y = 2; @@ -38577,10 +25976,18 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 6 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/command/lifeboat) +"gQQ" = ( +/obj/structure/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_f_p) +"gRc" = ( +/obj/item/tool/wet_sign, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_m_p) "gRd" = ( /obj/structure/platform, /obj/structure/target{ @@ -38589,34 +25996,34 @@ }, /turf/open/floor/almayer, /area/almayer/hallways/hangar) -"gRn" = ( -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull) +"gRJ" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/turf/open/floor/almayer/orangecorner/west, +/area/almayer/hallways/lower/port_umbilical) "gRP" = ( /obj/structure/machinery/power/apc/almayer{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) -"gSi" = ( -/obj/structure/surface/table/almayer, -/obj/structure/machinery/computer/cameras/almayer_network, -/obj/item/storage/box/tapes{ - pixel_x = -16 +"gSa" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_x = 1; + pixel_y = 1 }, -/turf/open/floor/almayer, -/area/almayer/shipboard/brig/processing) +/turf/open/floor/almayer/plating/northeast, +/area/almayer/engineering/lower/engine_core) "gSj" = ( /obj/effect/decal/warning_stripes{ icon_state = "W"; pixel_x = -1 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/west, /area/almayer/engineering/port_atmos) "gSk" = ( /obj/structure/disposalpipe/segment{ @@ -38625,47 +26032,40 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/almayer/living/grunt_rnr) -"gSs" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_p) -"gSV" = ( -/obj/structure/machinery/camera/autoname/almayer{ - dir = 4; - name = "ship-grade camera"; - pixel_y = 6 +"gSy" = ( +/obj/item/frame/rack{ + layer = 3.1; + pixel_y = 19 }, -/obj/structure/sign/safety/biolab{ - pixel_x = -17; - pixel_y = -8 +/obj/structure/surface/rack, +/obj/item/tool/weldpack{ + pixel_x = 5 }, -/obj/structure/sign/safety/hvac_old{ - pixel_x = -17; - pixel_y = 6 +/obj/item/tool/weldpack{ + pixel_x = -2 }, /turf/open/floor/almayer, -/area/almayer/shipboard/brig/cells) -"gTl" = ( -/obj/structure/pipes/vents/pump{ - dir = 8 - }, -/turf/open/floor/almayer{ - icon_state = "red" +/area/almayer/maint/hull/upper/u_f_s) +"gSz" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 10 }, -/area/almayer/shipboard/brig/cryo) -"gTx" = ( -/obj/structure/machinery/vending/security, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/mp_bunks) +"gSH" = ( +/obj/structure/largecrate/random/barrel/white, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_m_s) +"gTk" = ( +/obj/structure/surface/table/almayer, +/obj/structure/machinery/light{ + dir = 4 }, -/area/almayer/shipboard/brig/main_office) +/obj/effect/spawner/random/tool, +/turf/open/floor/almayer/plate, +/area/almayer/hallways/lower/port_umbilical) "gTH" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/structure/machinery/computer/skills{ @@ -38679,49 +26079,48 @@ dir = 4; pixel_y = -18 }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, +/turf/open/floor/almayer/aicore/glowing/no_build/ai_floor3, /area/almayer/command/airoom) +"gTK" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SW-out" + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/p_bow) "gUf" = ( /obj/structure/machinery/portable_atmospherics/hydroponics, -/turf/open/floor/almayer{ - icon_state = "green" - }, +/turf/open/floor/almayer/green, /area/almayer/living/grunt_rnr) -"gUr" = ( -/obj/item/stack/folding_barricade/three, -/obj/item/stack/folding_barricade/three, -/obj/structure/surface/rack, -/turf/open/floor/almayer{ - icon_state = "redfull" +"gUg" = ( +/obj/structure/machinery/vending/coffee, +/obj/structure/machinery/light{ + dir = 4 }, -/area/almayer/hull/lower_hull/l_f_s) -"gUv" = ( +/turf/open/floor/almayer/plate, +/area/almayer/shipboard/brig/general_equipment) +"gUi" = ( +/obj/structure/machinery/power/apc/almayer, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/lower/s_bow) +"gUn" = ( +/obj/structure/largecrate/random/barrel/red, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_m_s) +"gUu" = ( /obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_p) -"gUy" = ( -/obj/structure/machinery/vending/cola{ - density = 0; - pixel_y = 18 - }, -/turf/open/floor/almayer{ - icon_state = "plate" + icon_state = "E"; + pixel_x = 2 }, -/area/almayer/hull/upper_hull/u_a_p) -"gUI" = ( -/obj/structure/surface/table/almayer, -/obj/item/tool/pen, -/obj/item/paper_bin/uscm, -/turf/open/floor/almayer{ - icon_state = "plate" +/turf/open/floor/almayer, +/area/almayer/maint/hull/upper/u_f_p) +"gUG" = ( +/obj/structure/prop/invuln/overhead_pipe{ + dir = 4; + pixel_x = -12; + pixel_y = 13 }, -/area/almayer/engineering/engineering_workshop) +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_a_s) "gUL" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -38738,46 +26137,43 @@ }, /turf/open/floor/almayer, /area/almayer/living/bridgebunks) -"gUN" = ( -/obj/structure/pipes/standard/simple/hidden/supply/no_boom{ - dir = 4 +"gUS" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" }, -/turf/open/floor/almayer/no_build{ - dir = 4; - icon_state = "cargo_arrow" +/obj/structure/sign/safety/escapepod{ + pixel_x = -17 }, -/area/almayer/command/airoom) +/turf/open/floor/almayer/red/southeast, +/area/almayer/hallways/upper/port) "gUV" = ( -/turf/open/floor/almayer{ - icon_state = "redcorner" - }, +/turf/open/floor/almayer/redcorner, /area/almayer/command/lifeboat) "gUX" = ( /obj/structure/pipes/standard/manifold/hidden/supply, /turf/open/floor/plating/plating_catwalk, /area/almayer/lifeboat_pumps/north2) -"gVm" = ( -/obj/structure/bed/chair/comfy/bravo{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/sign/arcturianstopsign{ - pixel_y = 32 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/living/briefing) "gVq" = ( /obj/structure/machinery/light, /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_corner" - }, +/turf/open/floor/almayer/sterile_green_corner/west, /area/almayer/medical/containment) +"gVu" = ( +/obj/structure/pipes/vents/scrubber{ + dir = 4 + }, +/obj/structure/surface/table/almayer, +/obj/structure/machinery/computer/emails{ + dir = 1 + }, +/obj/item/reagent_container/food/snacks/grown/banana{ + pixel_x = 18; + pixel_y = 5 + }, +/turf/open/floor/almayer/orangefull, +/area/almayer/living/briefing) "gVA" = ( /obj/structure/disposalpipe/down/almayer{ dir = 8; @@ -38791,6 +26187,43 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/lifeboat_pumps/south1) +"gVW" = ( +/obj/structure/sign/safety/distribution_pipes{ + pixel_x = 32; + pixel_y = 6 + }, +/obj/structure/sign/safety/reduction{ + pixel_x = 32; + pixel_y = -8 + }, +/turf/open/floor/almayer/red/west, +/area/almayer/hallways/upper/port) +"gWm" = ( +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/starboard_umbilical) +"gWt" = ( +/obj/structure/surface/table/almayer, +/obj/item/pipe{ + dir = 9 + }, +/obj/item/tool/screwdriver{ + layer = 3.6; + pixel_x = 9; + pixel_y = 8 + }, +/obj/item/tool/crowbar/red{ + pixel_x = 17 + }, +/turf/open/floor/almayer/silver/southwest, +/area/almayer/hallways/lower/repair_bay) +"gWu" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/engineering/lower) "gWE" = ( /obj/structure/disposalpipe/segment, /obj/effect/landmark/start/marine/spec/alpha, @@ -38804,43 +26237,12 @@ }, /turf/open/floor/plating, /area/almayer/medical/upper_medical) -"gWR" = ( -/obj/structure/largecrate/random/barrel/red, -/obj/structure/sign/safety/fire_haz{ - pixel_x = 8; - pixel_y = -32 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_p) -"gXh" = ( -/obj/structure/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_m_s) "gXl" = ( /obj/structure/closet/secure_closet/personal/cabinet{ req_access_txt = "5" }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/medical/upper_medical) -"gXq" = ( -/obj/structure/machinery/camera/autoname/almayer{ - dir = 1; - name = "ship-grade camera" - }, -/obj/structure/machinery/disposal, -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/engineering_workshop) "gXs" = ( /obj/effect/step_trigger/ares_alert/terminals, /obj/structure/machinery/door/poddoor/shutters/almayer{ @@ -38851,35 +26253,51 @@ /obj/structure/pipes/standard/simple/hidden/supply/no_boom{ dir = 4 }, -/turf/open/floor/almayer/no_build{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/no_build/test_floor4, /area/almayer/command/airoom) -"gXv" = ( -/obj/structure/sign/safety/nonpress_0g{ - pixel_x = 32 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/hull/lower_hull/l_a_p) -"gXY" = ( -/obj/structure/machinery/light{ +"gXx" = ( +/obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "orange" +/turf/open/floor/almayer/silvercorner/west, +/area/almayer/shipboard/brig/cic_hallway) +"gXB" = ( +/obj/structure/pipes/vents/pump, +/obj/structure/bed/chair/comfy/delta{ + dir = 8 }, -/area/almayer/engineering/lower_engineering) +/turf/open/floor/almayer/bluefull, +/area/almayer/living/briefing) "gYe" = ( /obj/structure/machinery/vending/sea, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/almayer/shipboard/sea_office) +"gYg" = ( +/obj/structure/surface/table/almayer, +/obj/item/prop/almayer/flight_recorder{ + pixel_x = 9 + }, +/obj/item/tool/weldingtool{ + pixel_x = -7; + pixel_y = 3 + }, +/turf/open/floor/almayer/silver, +/area/almayer/hallways/lower/repair_bay) +"gYj" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_x = 1; + pixel_y = 1 + }, +/obj/structure/stairs/perspective{ + dir = 1; + icon_state = "p_stair_full" + }, +/obj/structure/platform{ + dir = 8 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/repair_bay) "gYl" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -38887,78 +26305,44 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/southeast, /area/almayer/medical/lower_medical_medbay) +"gYp" = ( +/obj/structure/machinery/light, +/obj/effect/decal/warning_stripes{ + icon_state = "W"; + pixel_x = -1 + }, +/turf/open/floor/almayer/silver/southwest, +/area/almayer/maint/upper/u_m_p) "gYt" = ( /obj/structure/surface/table/almayer, /obj/item/paper_bin/uscm, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, +/turf/open/floor/almayer/redfull, /area/almayer/living/offices/flight) -"gYB" = ( -/obj/item/device/radio/intercom{ - freerange = 1; - name = "Saferoom Channel"; - pixel_x = 27 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_s) -"gYS" = ( -/obj/structure/prop/invuln/overhead_pipe{ - dir = 4; - pixel_y = 13 - }, -/obj/structure/prop/invuln/overhead_pipe{ - dir = 4; - pixel_x = 12; - pixel_y = 13 - }, -/obj/structure/prop/invuln/overhead_pipe{ - dir = 4; - pixel_y = 13 - }, -/obj/structure/prop/invuln/overhead_pipe{ - dir = 4; - pixel_x = -16; - pixel_y = 13 - }, -/obj/structure/sign/safety/water{ - pixel_x = -17 +"gYx" = ( +/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ + pixel_y = 25 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_m_p) -"gZr" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/device/camera_film{ - pixel_x = 4; - pixel_y = -2 +/turf/open/floor/almayer/red/north, +/area/almayer/shipboard/brig/starboard_hallway) +"gYI" = ( +/obj/structure/platform{ + dir = 4 }, -/obj/item/device/camera/siliconcam{ - pixel_x = -6; - pixel_y = 11 +/obj/effect/decal/cleanable/blood/oil/streak, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_a_p) +"gYU" = ( +/obj/structure/machinery/light/small{ + dir = 4 }, -/turf/open/floor/almayer, -/area/almayer/squads/charlie_delta_shared) +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_a_p) "gZw" = ( /obj/structure/bed/sofa/vert/grey/bot, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/south1) -"gZG" = ( -/obj/structure/largecrate/supply/supplies/mre, -/obj/structure/sign/safety/water{ - pixel_x = 8; - pixel_y = 32 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_p) "gZK" = ( /turf/open/floor/almayer, /area/almayer/living/auxiliary_officer_office) @@ -38968,39 +26352,33 @@ linked_dock = "almayer-lifeboat2"; throw_dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/command/lifeboat) +"gZW" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 8 + }, +/turf/open/floor/almayer/red/east, +/area/almayer/hallways/lower/port_fore_hallway) "had" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "red" - }, +/turf/open/floor/almayer/red, /area/almayer/command/lifeboat) "hal" = ( /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 1 }, /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/command/lifeboat) "ham" = ( -/turf/open/floor/almayer{ - icon_state = "sterile_green" - }, +/turf/open/floor/almayer/sterile_green, /area/almayer/medical/lower_medical_lobby) -"haq" = ( -/turf/closed/wall/almayer, -/area/almayer/hull/lower_hull/l_a_p) -"har" = ( -/obj/structure/largecrate/random/case/small, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_m_p) +"haz" = ( +/obj/structure/machinery/floodlight, +/turf/open/floor/almayer/plate, +/area/almayer/engineering/lower/engine_core) "haB" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 1 @@ -39009,18 +26387,20 @@ /obj/structure/sign/safety/restrictedarea{ pixel_x = 32 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/east, /area/almayer/command/cichallway) -"haM" = ( -/obj/effect/decal/cleanable/blood/oil, -/obj/structure/machinery/constructable_frame, -/turf/open/floor/almayer{ - icon_state = "mono" +"haD" = ( +/obj/structure/machinery/light{ + dir = 8 }, -/area/almayer/lifeboat_pumps/south2) +/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ + pixel_y = 25 + }, +/turf/open/floor/almayer/orange/northwest, +/area/almayer/engineering/lower) +"haO" = ( +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/s_stern) "haQ" = ( /obj/structure/machinery/firealarm{ pixel_y = 28 @@ -39030,38 +26410,71 @@ pixel_y = 3 }, /obj/item/clothing/head/helmet/marine, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/offices) -"haT" = ( -/obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "green" +"haR" = ( +/obj/structure/sign/safety/restrictedarea{ + pixel_x = -17 }, -/area/almayer/hallways/port_hallway) -"hbu" = ( -/obj/structure/bed/chair{ +/turf/open/floor/almayer/plate, +/area/almayer/maint/lower/s_bow) +"haY" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer/redcorner, +/area/almayer/shipboard/brig/starboard_hallway) +"hbl" = ( +/obj/structure/machinery/door/airlock/almayer/maint{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "silver" +/turf/open/floor/almayer/test_floor4, +/area/almayer/maint/upper/u_m_s) +"hbp" = ( +/obj/structure/machinery/door/airlock/almayer/maint{ + dir = 1 }, -/area/almayer/living/auxiliary_officer_office) -"hbZ" = ( +/turf/open/floor/almayer/test_floor4, +/area/almayer/maint/hull/upper/p_stern) +"hbs" = ( /obj/structure/surface/table/almayer, -/obj/structure/sign/safety/terminal{ - pixel_x = -17 +/obj/item/frame/fire_alarm, +/turf/open/floor/almayer/orange/northeast, +/area/almayer/engineering/lower) +"hbu" = ( +/obj/structure/bed/chair{ + dir = 1 }, -/obj/structure/machinery/computer/working_joe{ +/turf/open/floor/almayer/silver/east, +/area/almayer/living/auxiliary_officer_office) +"hbA" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/port_umbilical) +"hbE" = ( +/obj/structure/largecrate/random, +/obj/item/reagent_container/food/snacks/cheesecakeslice{ + pixel_y = 8 }, -/area/almayer/engineering/engine_core) +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_x = 1; + pixel_y = 1 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_a_s) +"hbI" = ( +/obj/structure/sign/safety/ammunition{ + pixel_x = 32; + pixel_y = 7 + }, +/obj/structure/closet/secure_closet/guncabinet/red/armory_shotgun, +/turf/open/floor/almayer/redfull, +/area/almayer/medical/upper_medical) "hcf" = ( /obj/item/bedsheet/brown{ layer = 3.2 @@ -39088,20 +26501,8 @@ pixel_x = -1; pixel_y = 3 }, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/southeast, /area/almayer/engineering/port_atmos) -"hcs" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 1 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/vehiclehangar) "hcw" = ( /obj/structure/surface/table/reinforced/black, /obj/item/explosive/grenade/high_explosive/training, @@ -39113,143 +26514,99 @@ pixel_x = 9; pixel_y = 10 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/cryo_cells) -"hcC" = ( -/obj/structure/disposalpipe/up/almayer{ - id = "almayerlink_OT_req" - }, -/turf/closed/wall/almayer, -/area/almayer/engineering/engineering_workshop/hangar) "hcI" = ( /obj/structure/machinery/cryopod{ pixel_y = 6 }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/squads/delta) -"hcZ" = ( -/turf/open/floor/plating/plating_catwalk, -/area/almayer/living/offices) -"hdd" = ( -/turf/open/floor/almayer{ - dir = 9; - icon_state = "red" +"hcX" = ( +/obj/structure/machinery/status_display{ + pixel_y = 30 }, +/obj/structure/machinery/power/reactor, +/turf/open/floor/almayer/test_floor4, +/area/almayer/engineering/lower/engine_core) +"hdd" = ( +/turf/open/floor/almayer/red/northwest, /area/almayer/shipboard/starboard_missiles) -"hdg" = ( -/obj/structure/machinery/firealarm{ - pixel_y = 28 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, -/area/almayer/engineering/lower_engineering) -"hdh" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/hallways/vehiclehangar) "hds" = ( /obj/effect/decal/warning_stripes{ icon_state = "SW-out" }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "cargo_arrow" - }, +/turf/open/floor/almayer/cargo_arrow/west, /area/almayer/living/offices) +"hdy" = ( +/obj/item/storage/firstaid/fire, +/obj/structure/surface/rack, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_a_s) "hdE" = ( /obj/structure/filingcabinet, /obj/item/reagent_container/food/drinks/coffeecup/uscm{ pixel_y = 14 }, -/turf/open/floor/almayer{ - icon_state = "green" - }, +/turf/open/floor/almayer/green, /area/almayer/squads/req) -"hdR" = ( -/obj/structure/window/framed/almayer, -/obj/structure/machinery/door/poddoor/shutters/almayer{ - dir = 4; - id = "OfficeSafeRoom"; - name = "\improper Office Safe Room" - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_s) -"heb" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 +"hdP" = ( +/turf/open/floor/almayer/red/southwest, +/area/almayer/hallways/upper/aft_hallway) +"hdQ" = ( +/obj/structure/closet/secure_closet{ + name = "\improper Execution Firearms" }, -/obj/structure/disposalpipe/segment{ - dir = 4 +/obj/item/weapon/gun/rifle/m4ra, +/obj/item/weapon/gun/rifle/m4ra, +/obj/item/weapon/gun/rifle/m4ra, +/obj/item/ammo_box/magazine/m4ra, +/turf/open/floor/almayer/plate, +/area/almayer/shipboard/brig/execution_storage) +"hdV" = ( +/obj/structure/sign/safety/escapepod{ + pixel_x = 8; + pixel_y = -32 }, -/turf/open/floor/almayer, -/area/almayer/hallways/starboard_hallway) +/turf/open/floor/almayer/greencorner/west, +/area/almayer/hallways/lower/port_midship_hallway) "hec" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/west, /area/almayer/medical/medical_science) -"hee" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "blue" +"heo" = ( +/obj/structure/machinery/power/apc/almayer{ + cell_type = /obj/item/cell/hyper; + dir = 1 }, -/area/almayer/hallways/aft_hallway) -"heg" = ( -/obj/structure/machinery/floodlight, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/structure/sign/safety/rewire{ + pixel_x = -15; + pixel_y = 25 }, -/area/almayer/engineering/engine_core) -"hey" = ( -/obj/effect/decal/cleanable/blood/oil/streak, -/obj/structure/machinery/sentry_holder/almayer, -/turf/open/floor/almayer{ - icon_state = "mono" +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 2 }, -/area/almayer/lifeboat_pumps/south1) +/obj/effect/decal/warning_stripes{ + icon_state = "W"; + pixel_x = -2 + }, +/turf/open/floor/almayer/plate, +/area/almayer/shipboard/brig/armory) "heK" = ( /obj/structure/machinery/door/airlock/almayer/maint{ dir = 1; name = "\improper Tool Closet" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/living/port_emb) -"heQ" = ( -/obj/structure/bed/chair, -/obj/structure/extinguisher_cabinet{ - pixel_y = 26 - }, -/obj/structure/sign/safety/cryo{ - pixel_x = 21; - pixel_y = 27 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "redcorner" - }, -/area/almayer/shipboard/brig/processing) -"heV" = ( -/obj/structure/largecrate/random/case/double, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_f_s) +"heO" = ( +/obj/structure/largecrate/random/barrel/green, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_a_s) +"heS" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer/orange, +/area/almayer/engineering/lower) "hfa" = ( /obj/structure/window/reinforced{ dir = 8 @@ -39266,120 +26623,101 @@ }, /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/alpha_bravo_shared) -"hfk" = ( -/obj/item/trash/crushed_cup, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_s) -"hfw" = ( -/obj/structure/flora/pottedplant{ - icon_state = "pottedplant_22" - }, -/obj/structure/machinery/camera/autoname/almayer{ - dir = 1; - name = "ship-grade camera" +"hfb" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" }, -/obj/effect/decal/warning_stripes{ - icon_state = "SW-out"; - pixel_x = -1 +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "red" +/turf/open/floor/almayer, +/area/almayer/engineering/lower/engine_core) +"hft" = ( +/obj/structure/pipes/standard/manifold/hidden/supply, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" }, -/area/almayer/command/lifeboat) -"hfy" = ( -/obj/structure/machinery/light, /turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_a_s) +/area/almayer/hallways/upper/aft_hallway) +"hfv" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/almayer/plate, +/area/almayer/maint/lower/s_bow) "hfO" = ( -/obj/structure/surface/table/almayer, -/obj/item/reagent_container/spray/cleaner, -/obj/item/frame/light_fixture, -/obj/item/frame/light_fixture, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/structure/machinery/light/small{ + dir = 1 }, -/area/almayer/engineering/engineering_workshop) +/obj/structure/surface/rack, +/obj/item/storage/belt/utility/full{ + pixel_y = 8 + }, +/obj/item/storage/belt/utility/full, +/obj/item/clothing/suit/storage/hazardvest/black, +/obj/item/tool/crowbar, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_a_s) "hfQ" = ( /obj/structure/window/framed/almayer, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/delta) "hgg" = ( /obj/structure/surface/table/almayer, /obj/item/trash/USCMtray{ pixel_x = 5 }, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, +/turf/open/floor/almayer/redfull, /area/almayer/living/briefing) -"hgm" = ( -/obj/structure/surface/table/almayer, -/obj/item/device/binoculars{ - pixel_x = 4; - pixel_y = 5 - }, -/obj/item/device/binoculars, -/obj/structure/machinery/camera/autoname/almayer{ - dir = 4; - name = "ship-grade camera" +"hgk" = ( +/obj/structure/largecrate/random, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_m_s) +"hgo" = ( +/obj/structure/machinery/light{ + dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "plate" +/turf/open/floor/almayer/orange/southwest, +/area/almayer/engineering/lower) +"hgp" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 }, -/area/almayer/hull/upper_hull/u_f_p) -"hgt" = ( -/obj/structure/machinery/power/apc/almayer{ - dir = 4 +/turf/open/floor/almayer/plating/northeast, +/area/almayer/hallways/lower/vehiclehangar) +"hgs" = ( +/obj/structure/machinery/light{ + dir = 8 }, -/turf/open/floor/almayer, -/area/almayer/engineering/engine_core) +/turf/open/floor/almayer/red/west, +/area/almayer/hallways/lower/starboard_midship_hallway) "hgB" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/intel, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "silvercorner" - }, +/turf/open/floor/almayer/silvercorner/west, /area/almayer/command/computerlab) -"hgF" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/obj/structure/machinery/light{ - unacidable = 1; - unslashable = 1 +"hgD" = ( +/obj/structure/reagent_dispensers/fueltank/gas/hydrogen{ + anchored = 1 }, -/obj/structure/machinery/camera/autoname/almayer{ - dir = 4; - name = "ship-grade camera" +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/turf/open/floor/almayer, -/area/almayer/shipboard/brig/execution) -"hgH" = ( -/obj/structure/machinery/camera/autoname/almayer{ - dir = 1; - name = "ship-grade camera" +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_p) +/turf/open/floor/almayer/cargo, +/area/almayer/engineering/lower/workshop/hangar) "hgL" = ( /obj/item/tool/warning_cone{ pixel_x = 4; pixel_y = 14 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/almayer/green/north, /area/almayer/living/grunt_rnr) "hgZ" = ( /obj/structure/machinery/door_control{ @@ -39389,60 +26727,66 @@ pixel_y = -25 }, /obj/structure/machinery/iv_drip, -/turf/open/floor/almayer{ - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side, /area/almayer/medical/operating_room_three) -"hhe" = ( -/obj/structure/sign/safety/nonpress_0g{ - pixel_y = 32 +"hhd" = ( +/obj/structure/surface/table/almayer, +/obj/item/clothing/head/hardhat/orange{ + pixel_x = -9; + pixel_y = 16 }, -/obj/structure/sign/safety/press_area_ag{ - pixel_y = -32 +/obj/item/clothing/suit/storage/hazardvest/blue{ + pixel_x = -7; + pixel_y = -4 + }, +/obj/item/clothing/head/hardhat{ + pixel_x = 10; + pixel_y = 1 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +/obj/item/clothing/suit/storage/hazardvest{ + pixel_x = 1 }, -/area/almayer/hallways/starboard_umbilical) +/turf/open/floor/plating, +/area/almayer/maint/lower/constr) +"hhg" = ( +/obj/structure/surface/rack, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_f_p) "hhn" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/effect/decal/warning_stripes{ icon_state = "SE-out"; pixel_x = 2 }, -/turf/open/floor/almayer{ - icon_state = "cargo_arrow" - }, +/turf/open/floor/almayer/cargo_arrow, /area/almayer/living/offices) -"hhw" = ( -/turf/closed/wall/almayer, -/area/almayer/hull/lower_hull/l_m_s) "hhA" = ( /obj/structure/bed/sofa/vert/grey/bot, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/north1) "hif" = ( /obj/structure/machinery/floodlight/landing, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) -"hit" = ( -/obj/structure/surface/table/almayer, -/obj/item/storage/bag/trash{ - pixel_x = -3 - }, -/obj/structure/machinery/power/apc/almayer{ - dir = 1 +"hip" = ( +/obj/item/device/multitool, +/obj/structure/platform_decoration, +/turf/open/floor/almayer/plating/northeast, +/area/almayer/engineering/lower/engine_core) +"hiu" = ( +/obj/structure/prop/invuln/lattice_prop{ + icon_state = "lattice13"; + pixel_x = 16; + pixel_y = 16 }, -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_f_p) -"hiB" = ( -/obj/structure/pipes/vents/pump{ - dir = 1 +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_m_s) +"hiy" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 }, -/turf/open/floor/wood/ship, -/area/almayer/command/corporateliason) +/turf/open/floor/almayer/test_floor4, +/area/almayer/lifeboat_pumps/north1) "hiM" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/supply{ @@ -39450,33 +26794,22 @@ }, /turf/open/floor/almayer, /area/almayer/shipboard/brig/cic_hallway) -"hiN" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, -/turf/open/floor/almayer, -/area/almayer/command/lifeboat) -"hiQ" = ( -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 8 +"hiP" = ( +/obj/structure/sign/safety/escapepod{ + pixel_x = 8; + pixel_y = 32 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_p) +/turf/open/floor/almayer/greencorner/east, +/area/almayer/hallways/lower/starboard_midship_hallway) "hji" = ( /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/almayer/blue/west, /area/almayer/squads/delta) "hjk" = ( /obj/structure/machinery/door/firedoor/border_only/almayer, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/living/briefing) "hjs" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -39485,16 +26818,10 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "cargo_arrow" - }, +/turf/open/floor/almayer/cargo_arrow/west, /area/almayer/squads/delta) "hjA" = ( -/turf/open/floor/almayer{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/almayer/red/southwest, /area/almayer/shipboard/port_missiles) "hjB" = ( /obj/structure/machinery/door/airlock/almayer/generic{ @@ -39502,39 +26829,38 @@ name = "Kitchen"; req_one_access_txt = "30;19" }, -/obj/structure/machinery/door/firedoor/border_only/almayer, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/living/grunt_rnr) +"hjM" = ( +/obj/structure/bed/chair/bolted{ + dir = 8 + }, +/turf/open/floor/almayer/redcorner/east, +/area/almayer/shipboard/brig/processing) +"hjQ" = ( +/obj/structure/machinery/status_display{ + pixel_y = 30 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_midship_hallway) "hjT" = ( -/obj/structure/bed/chair/comfy/alpha, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/structure/machinery/light/small{ + dir = 1; + pixel_y = 20 }, -/area/almayer/living/briefing) +/obj/structure/largecrate, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_a_s) "hki" = ( /obj/structure/machinery/cm_vending/sorted/tech/electronics_storage, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/lifeboat_pumps/south2) -"hkm" = ( -/obj/structure/stairs{ - icon_state = "ramptop" - }, -/obj/structure/platform{ +"hkz" = ( +/obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_p) -"hkx" = ( -/obj/structure/largecrate/random/barrel/red, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_m_p) +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/p_stern) "hkB" = ( /obj/structure/sign/safety/rewire{ pixel_x = 8; @@ -39542,12 +26868,12 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/port_point_defense) -"hkE" = ( -/obj/structure/closet/firecloset, -/turf/open/floor/almayer{ - icon_state = "cargo" +"hkC" = ( +/obj/structure/sign/safety/escapepod{ + pixel_y = -32 }, -/area/almayer/hallways/port_hallway) +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_fore_hallway) "hkG" = ( /obj/structure/sign/safety/ammunition{ pixel_y = -32 @@ -39560,35 +26886,92 @@ dir = 1; name = "ship-grade camera" }, -/turf/open/floor/almayer{ - icon_state = "silver" - }, +/turf/open/floor/almayer/silver, /area/almayer/command/cic) -"hlq" = ( -/obj/structure/machinery/door_control/cl/office/door{ - pixel_y = 25 +"hkH" = ( +/obj/structure/surface/table/almayer, +/obj/structure/machinery/recharger, +/obj/structure/machinery/door_control{ + id = "courtyard_cells"; + name = "\improper Courtyard Lockdown Shutters"; + pixel_x = 16; + req_access_txt = "3" }, -/turf/open/floor/wood/ship, -/area/almayer/command/corporateliason) -"hlw" = ( -/obj/structure/platform_decoration{ - dir = 4 +/obj/structure/machinery/door_control{ + id = "Brig Lockdown Shutters"; + name = "Brig Lockdown Shutters"; + pixel_x = 16; + pixel_y = 8; + req_access_txt = "3" + }, +/turf/open/floor/almayer/red, +/area/almayer/shipboard/brig/processing) +"hkX" = ( +/obj/structure/surface/table/woodentable/fancy, +/obj/item/device/flashlight/lamp/green{ + pixel_x = -7; + pixel_y = 20 + }, +/obj/item/ashtray/bronze{ + pixel_x = 4; + pixel_y = 19 + }, +/obj/structure/machinery/light{ + dir = 8 + }, +/obj/effect/landmark/map_item{ + pixel_x = -1; + pixel_y = 3 + }, +/obj/item/reagent_container/spray/cleaner{ + layer = 3.04; + pixel_x = 5; + pixel_y = 22 }, -/turf/open/floor/almayer{ - icon_state = "plate" +/turf/open/floor/wood/ship, +/area/almayer/living/commandbunks) +"hlj" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 1 }, -/area/almayer/hull/upper_hull/u_a_p) -"hlz" = ( -/turf/open/floor/almayer{ - icon_state = "plate" +/turf/open/floor/almayer/test_floor4, +/area/almayer/hallways/upper/midship_hallway) +"hlH" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 }, -/area/almayer/hull/lower_hull/l_a_s) +/turf/open/floor/almayer/plate, +/area/almayer/engineering/lower) "hlI" = ( -/obj/structure/girder, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/structure/surface/table/almayer, +/obj/structure/machinery/recharger, +/obj/structure/transmitter/rotary{ + name = "Brig Wardens's Office Telephone"; + phone_category = "MP Dept."; + phone_id = "Brig Warden's Office"; + pixel_x = 15 + }, +/obj/structure/sign/safety/terminal{ + pixel_x = 8; + pixel_y = 32 + }, +/obj/structure/machinery/light{ + dir = 1 + }, +/turf/open/floor/almayer/red/northwest, +/area/almayer/shipboard/brig/warden_office) +"hlT" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SW-out"; + layer = 2.5 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out" }, -/area/almayer/hull/upper_hull/u_a_p) +/turf/open/floor/almayer/red/northeast, +/area/almayer/hallways/upper/port) "hlU" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -39600,9 +26983,7 @@ dir = 1; name = "\improper Combat Information Center" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/command/cichallway) "hlX" = ( /obj/structure/stairs/perspective{ @@ -39614,39 +26995,48 @@ }, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/south2) -"hmc" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 - }, -/obj/structure/machinery/door/poddoor/shutters/almayer{ - id = "laddernorthwest"; - name = "\improper North West Ladders Shutters" - }, -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/effect/step_trigger/clone_cleaner, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/starboard_hallway) "hme" = ( /obj/effect/decal/warning_stripes{ icon_state = "NW-out"; pixel_x = -1; pixel_y = 1 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/west, /area/almayer/medical/hydroponics) +"hmj" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + pixel_y = 1 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_y = 1 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/upper/starboard) +"hmv" = ( +/obj/structure/machinery/power/reactor, +/turf/open/floor/almayer/test_floor4, +/area/almayer/engineering/lower/engine_core) +"hmw" = ( +/obj/structure/platform{ + dir = 1 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/turf/open/floor/almayer/plating/northeast, +/area/almayer/engineering/lower/engine_core) "hmy" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) +"hmA" = ( +/turf/closed/wall/almayer/reinforced, +/area/almayer/maint/hull/upper/p_bow) "hmC" = ( /obj/structure/machinery/cm_vending/sorted/marine_food{ density = 0; @@ -39655,9 +27045,7 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/delta) "hmF" = ( /obj/structure/window/reinforced{ @@ -39667,16 +27055,36 @@ /obj/structure/sign/poster{ pixel_x = -32 }, -/turf/open/floor/almayer{ - icon_state = "cargo_arrow" - }, +/turf/open/floor/almayer/cargo_arrow, /area/almayer/squads/alpha_bravo_shared) "hmS" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor/almayer{ - icon_state = "blue" - }, +/turf/open/floor/almayer/blue, /area/almayer/command/cichallway) +"hmV" = ( +/obj/structure/bookcase{ + icon_state = "book-5"; + name = "medical manuals bookcase"; + opacity = 0 + }, +/obj/item/book/manual/surgery, +/obj/item/book/manual/medical_diagnostics_manual, +/obj/structure/machinery/light{ + dir = 4 + }, +/turf/open/floor/wood/ship, +/area/almayer/living/commandbunks) +"hmZ" = ( +/obj/structure/largecrate/random/barrel/white, +/obj/structure/sign/safety/security{ + pixel_x = 15; + pixel_y = 32 + }, +/obj/structure/sign/safety/restrictedarea{ + pixel_y = 32 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/p_bow) "hng" = ( /obj/structure/surface/table/almayer, /obj/item/clothing/accessory/storage/black_vest/acid_harness, @@ -39688,84 +27096,93 @@ icon_state = "E"; pixel_x = 1 }, -/turf/open/floor/almayer{ - icon_state = "sterile_green" - }, +/turf/open/floor/almayer/sterile_green, /area/almayer/medical/hydroponics) -"hnH" = ( +"hnt" = ( +/obj/item/toy/deck{ + pixel_y = 12 + }, +/obj/structure/sign/safety/storage{ + pixel_x = 32 + }, +/obj/structure/surface/table/woodentable/poor, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_a_p) +"hnE" = ( /obj/structure/surface/table/almayer, -/obj/effect/decal/cleanable/dirt, -/obj/item/prop/magazine/boots/n117{ - pixel_x = 2; - pixel_y = 5 +/obj/item/storage/box/ids{ + pixel_x = -6; + pixel_y = 8 }, -/turf/open/floor/almayer{ - icon_state = "bluefull" +/obj/item/device/flash, +/obj/structure/machinery/light{ + dir = 8; + invisibility = 101 }, -/area/almayer/living/briefing) -"hnV" = ( -/obj/structure/machinery/light, -/turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_p) -"hon" = ( -/obj/structure/sign/safety/medical{ - pixel_x = 8; - pixel_y = 32 +/turf/open/floor/almayer/red/west, +/area/almayer/shipboard/brig/starboard_hallway) +"hnI" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "green" +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic2{ + access_modified = 1; + name = "\improper Flight Crew Quarters"; + req_one_access_txt = "19;22" }, -/area/almayer/hallways/aft_hallway) -"hop" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 +/turf/open/floor/almayer/test_floor4, +/area/almayer/living/pilotbunks) +"hnP" = ( +/obj/structure/barricade/handrail{ + dir = 1; + pixel_y = 2 }, -/obj/structure/disposalpipe/segment{ - dir = 4 +/obj/structure/sign/safety/hazard{ + pixel_x = 15; + pixel_y = -32 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_hallway) -"hoX" = ( -/obj/structure/machinery/light/small, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/structure/sign/safety/fire_haz{ + pixel_y = -32 }, -/area/almayer/hull/upper_hull/u_m_p) -"hpf" = ( -/obj/structure/flora/pottedplant{ - icon_state = "pottedplant_10" +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_fore_hallway) +"hoc" = ( +/obj/structure/machinery/door/poddoor/railing{ + dir = 2; + id = "vehicle_elevator_railing" }, -/obj/structure/closet/secure_closet/cmdcabinet{ - pixel_y = 24; - desc = "A bulletproof cabinet containing communications equipment."; - name = "communications cabinet"; - req_access = null; - req_one_access_txt = "207;203" +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/obj/item/device/radio, -/obj/item/device/radio/listening_bug/radio_linked/wy, -/obj/item/device/radio/listening_bug/radio_linked/wy{ - pixel_x = 4; - pixel_y = -3 +/turf/open/floor/almayer/mono, +/area/almayer/hallways/lower/vehiclehangar) +"hoK" = ( +/turf/open/floor/almayer/red/west, +/area/almayer/shipboard/brig/starboard_hallway) +"hoT" = ( +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_m_s) +"hoW" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/storage/firstaid/toxin{ + pixel_x = 3; + pixel_y = 3 }, -/turf/open/floor/wood/ship, -/area/almayer/command/corporateliason) +/obj/item/storage/firstaid/adv, +/obj/item/device/defibrillator, +/turf/open/floor/almayer/sterile_green_side/north, +/area/almayer/shipboard/brig/medical) "hpk" = ( /obj/structure/sign/safety/fire_haz{ pixel_x = 8; pixel_y = -32 }, -/turf/open/floor/almayer{ - icon_state = "red" - }, +/turf/open/floor/almayer/red, /area/almayer/shipboard/weapon_room) "hpN" = ( /obj/structure/machinery/light, /obj/structure/machinery/computer/crew, -/turf/open/floor/almayer{ - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side, /area/almayer/medical/lower_medical_lobby) "hpS" = ( /obj/structure/machinery/door/poddoor/shutters/almayer{ @@ -39786,6 +27203,13 @@ }, /turf/open/floor/almayer, /area/almayer/living/chapel) +"hqb" = ( +/obj/effect/step_trigger/clone_cleaner, +/turf/closed/wall/almayer, +/area/almayer/maint/hull/upper/u_m_s) +"hqc" = ( +/turf/open/floor/almayer/plate, +/area/almayer/engineering/lower) "hqh" = ( /obj/effect/decal/warning_stripes{ icon_state = "NE-out"; @@ -39799,14 +27223,21 @@ /obj/structure/pipes/standard/simple/hidden/supply/no_boom, /turf/open/floor/almayer/research/containment/entrance, /area/almayer/medical/containment/cell) -"hqs" = ( +"hqm" = ( /obj/structure/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/almayer{ - icon_state = "cargo" + dir = 4 }, -/area/almayer/hull/lower_hull/l_f_s) +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_m_s) +"hqp" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_fore_hallway) +"hqu" = ( +/obj/item/stack/sheet/metal, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_a_p) "hqW" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/medidoor{ name = "\improper Medical Bay"; @@ -39816,16 +27247,12 @@ /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/medical/lower_medical_lobby) "hrm" = ( /obj/structure/closet/secure_closet/staff_officer/armory/shotgun, /obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, +/turf/open/floor/almayer/redfull, /area/almayer/command/cic) "hrn" = ( /obj/structure/machinery/door/airlock/almayer/research/glass/reinforced{ @@ -39840,38 +27267,35 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/medical/medical_science) +"hro" = ( +/obj/structure/machinery/vending/coffee{ + density = 0; + pixel_y = 18 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_f_p) "hrF" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, /obj/structure/machinery/door/airlock/almayer/maint, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/shipboard/starboard_point_defense) -"hrJ" = ( -/obj/structure/machinery/cm_vending/sorted/medical, -/obj/structure/sign/safety/autodoc{ - pixel_x = 20; - pixel_y = -32 - }, -/turf/open/floor/almayer{ - icon_state = "sterile_green_side" - }, -/area/almayer/medical/lower_medical_medbay) -"hrX" = ( -/obj/structure/closet/secure_closet/engineering_welding, +"hrI" = ( +/turf/open/floor/almayer, +/area/almayer/maint/hull/upper/u_f_p) +"hsc" = ( +/obj/structure/surface/table/almayer, /obj/structure/machinery/light{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "cargo" + dir = 8 }, -/area/almayer/engineering/engine_core) +/obj/item/clothing/mask/breath, +/obj/item/clothing/mask/breath, +/obj/item/clothing/mask/breath, +/turf/open/floor/almayer/plate, +/area/almayer/hallways/lower/port_umbilical) "hsg" = ( /obj/structure/pipes/vents/pump{ dir = 4 @@ -39882,30 +27306,102 @@ }, /turf/open/floor/almayer, /area/almayer/living/briefing) -"hsr" = ( -/turf/open/floor/plating/plating_catwalk, -/area/almayer/engineering/upper_engineering/starboard) -"hss" = ( -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/squads/delta) -"hsW" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 +"hsh" = ( +/obj/structure/coatrack, +/obj/structure/sign/poster/clf{ + pixel_x = -28 }, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "orange" +/obj/structure/sign/nosmoking_1{ + pixel_y = 30 }, -/area/almayer/squads/bravo) -"htb" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +/obj/structure/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_m_s) +"hsj" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, +/obj/structure/machinery/power/apc/almayer, +/turf/open/floor/almayer/red, +/area/almayer/shipboard/brig/chief_mp_office) +"hsr" = ( +/turf/open/floor/plating/plating_catwalk, /area/almayer/engineering/upper_engineering/starboard) +"hss" = ( +/turf/open/floor/almayer/test_floor4, +/area/almayer/squads/delta) +"hsu" = ( +/obj/structure/bed/sofa/south/grey{ + pixel_y = 12 + }, +/turf/open/floor/almayer, +/area/almayer/maint/hull/upper/u_f_s) +"hsy" = ( +/turf/closed/wall/almayer/reinforced, +/area/almayer/engineering/lower/engine_core) +"hsK" = ( +/obj/structure/largecrate/random/barrel/red, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_f_s) +"hsW" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/turf/open/floor/almayer/orange/northwest, +/area/almayer/squads/bravo) +"hte" = ( +/obj/structure/sign/safety/security{ + pixel_x = 15; + pixel_y = 32 + }, +/turf/closed/wall/almayer, +/area/almayer/hallways/lower/starboard_umbilical) +"htg" = ( +/obj/structure/sign/safety/hvac_old{ + pixel_x = 8; + pixel_y = 32 + }, +/obj/structure/largecrate/supply/supplies/flares, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_m_s) +"htk" = ( +/obj/structure/machinery/power/apc/almayer{ + dir = 8 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/lower/cryo_cells) +"htl" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_fore_hallway) +"hto" = ( +/obj/structure/largecrate/random/barrel/red, +/obj/structure/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/upper/u_f_s) +"htq" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_f_p) +"htG" = ( +/obj/item/tool/soap, +/obj/structure/machinery/light/small{ + dir = 8 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/turf/open/floor/almayer/dark_sterile, +/area/almayer/engineering/upper_engineering/port) "htI" = ( /obj/structure/platform_decoration{ dir = 1 @@ -39918,37 +27414,30 @@ pixel_x = -5; pixel_y = 6 }, -/turf/open/floor/almayer{ - icon_state = "greenfull" - }, +/turf/open/floor/almayer/greenfull, /area/almayer/living/offices) -"huK" = ( -/turf/open/floor/almayer{ - icon_state = "redcorner" +"huD" = ( +/obj/structure/machinery/light{ + dir = 1 }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_f_s) +"huK" = ( +/turf/open/floor/almayer/redcorner, /area/almayer/living/cryo_cells) "huO" = ( /obj/structure/machinery/light{ dir = 4 }, /obj/structure/surface/rack, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/southeast, /area/almayer/command/computerlab) -"huR" = ( -/obj/structure/sign/prop1{ - pixel_y = 32 - }, -/obj/structure/filingcabinet/security{ - pixel_x = -8 - }, -/obj/structure/filingcabinet/medical{ - pixel_x = 8 +"huP" = ( +/obj/structure/machinery/alarm/almayer{ + dir = 1 }, -/turf/open/floor/wood/ship, -/area/almayer/living/commandbunks) +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_midship_hallway) "huU" = ( /obj/structure/machinery/door/airlock/almayer/security{ access_modified = 1; @@ -39960,22 +27449,11 @@ /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 2 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/living/briefing) -"huX" = ( -/obj/structure/largecrate/random/barrel/yellow, -/obj/structure/machinery/light{ - dir = 1 - }, -/turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_s) -"hvp" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/structure/disposalpipe/segment, -/turf/open/floor/almayer, -/area/almayer/hallways/port_hallway) +"hvd" = ( +/turf/closed/wall/almayer/reinforced, +/area/almayer/shipboard/brig/interrogation) "hvv" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/manifold/hidden/supply{ @@ -40005,38 +27483,46 @@ /obj/structure/pipes/standard/simple/hidden/supply/no_boom, /turf/open/floor/plating, /area/almayer/powered/agent) +"hvx" = ( +/obj/structure/machinery/door/airlock/almayer/maint, +/obj/structure/machinery/door/poddoor/almayer/open{ + dir = 4; + id = "Hangar Lockdown"; + name = "\improper Hangar Lockdown Blast Door" + }, +/turf/open/floor/almayer/test_floor4, +/area/almayer/maint/hull/lower/l_f_p) +"hvz" = ( +/obj/structure/machinery/light, +/turf/open/floor/almayer/green, +/area/almayer/hallways/lower/starboard_midship_hallway) "hvH" = ( /turf/open/floor/wood/ship, /area/almayer/living/commandbunks) -"hvQ" = ( -/obj/effect/landmark/start/professor, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/living/offices) +"hwB" = ( +/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ + pixel_y = 25 + }, +/turf/open/floor/almayer/green/north, +/area/almayer/hallways/upper/fore_hallway) "hwC" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22"; pixel_y = 8 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/engineering/upper_engineering) -"hwQ" = ( -/obj/structure/window/framed/almayer, -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 8 - }, -/turf/open/floor/plating, -/area/almayer/shipboard/brig/execution) -"hwS" = ( -/obj/structure/bed/chair/comfy/black{ - dir = 1 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ +"hwH" = ( +/obj/structure/stairs{ dir = 4 }, -/turf/open/floor/almayer, -/area/almayer/shipboard/brig/chief_mp_office) +/obj/effect/projector{ + name = "Almayer_Up2"; + vector_x = -1; + vector_y = 100 + }, +/turf/open/floor/plating/almayer/no_build, +/area/almayer/hallways/lower/starboard_fore_hallway) "hxe" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -40050,20 +27536,6 @@ /obj/structure/surface/table/reinforced/black, /turf/open/floor/almayer, /area/almayer/command/cic) -"hxp" = ( -/obj/structure/surface/table/almayer, -/obj/item/fuelCell, -/obj/item/fuelCell, -/obj/item/fuelCell, -/obj/item/device/radio/intercom{ - freerange = 1; - name = "General Listening Channel"; - pixel_y = 28 - }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/engineering/engine_core) "hxG" = ( /obj/structure/pipes/vents/pump{ dir = 4 @@ -40092,31 +27564,15 @@ }, /obj/item/reagent_container/glass/bucket, /obj/item/reagent_container/glass/watertank, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/almayer/green/north, /area/almayer/living/grunt_rnr) -"hyc" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/aft_hallway) +"hyb" = ( +/obj/structure/largecrate/random/barrel/red, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_a_s) "hyk" = ( -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/charlie_delta_shared) -"hyt" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 2 - }, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "green" - }, -/area/almayer/hallways/starboard_hallway) "hyw" = ( /obj/effect/decal/warning_stripes{ icon_state = "NW-out"; @@ -40126,25 +27582,8 @@ icon_state = "NE-out"; pixel_x = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/offices) -"hyz" = ( -/obj/structure/disposalpipe/junction{ - dir = 1 - }, -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 8 - }, -/obj/structure/machinery/light{ - unacidable = 1; - unslashable = 1 - }, -/turf/open/floor/almayer{ - allow_construction = 0 - }, -/area/almayer/shipboard/brig/processing) "hyE" = ( /obj/structure/machinery/door/poddoor/almayer/open{ dir = 4; @@ -40152,13 +27591,44 @@ name = "ARES Exterior Lockdown" }, /obj/effect/step_trigger/ares_alert/access_control, -/turf/open/floor/almayer/no_build{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/no_build/test_floor4, /area/almayer/command/airoom) "hyQ" = ( /turf/closed/wall/almayer, /area/almayer/living/synthcloset) +"hyT" = ( +/obj/structure/sign/safety/escapepod{ + pixel_y = 32 + }, +/obj/structure/sign/safety/north{ + pixel_x = 15; + pixel_y = 32 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/upper/midship_hallway) +"hyV" = ( +/obj/structure/machinery/power/apc/almayer{ + dir = 4 + }, +/obj/structure/sign/safety/rewire{ + pixel_x = 32; + pixel_y = 24 + }, +/turf/open/floor/almayer/red/east, +/area/almayer/shipboard/brig/interrogation) +"hza" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/almayer/plate, +/area/almayer/hallways/lower/port_aft_hallway) +"hzb" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4; + icon_state = "exposed01-supply" + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/command/combat_correspondent) "hzc" = ( /turf/closed/wall/almayer/outer, /area/almayer/engineering/upper_engineering/notunnel) @@ -40169,109 +27639,65 @@ "hzs" = ( /obj/structure/bed, /obj/item/bedsheet/medical, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/west, /area/almayer/medical/lower_medical_medbay) "hzu" = ( /obj/structure/machinery/cryopod{ layer = 3.1; pixel_y = 13 }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/squads/delta) -"hzx" = ( -/obj/structure/machinery/door/airlock/almayer/security/glass{ - name = "\improper Chief MP's Office"; - req_access = null; - req_one_access_txt = "1;3" - }, -/obj/structure/machinery/door/firedoor/border_only/almayer, -/obj/structure/machinery/door/poddoor/shutters/almayer/open{ - dir = 4; - id = "CMP Office Shutters"; - name = "\improper Privacy Shutters" - }, -/obj/structure/pipes/standard/simple/hidden/supply{ +"hzG" = ( +/obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/shipboard/brig/chief_mp_office) -"hzJ" = ( -/obj/structure/machinery/door/airlock/almayer/generic{ - dir = 1 - }, -/obj/structure/machinery/door/poddoor/almayer/open{ - id = "courtyard_cells"; - name = "\improper Courtyard Lockdown Shutter" - }, -/obj/structure/machinery/door/poddoor/almayer/locked{ - id = "Cell 1"; - name = "\improper Courtyard Divider" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/shipboard/brig/cells) -"hzL" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer, -/obj/structure/machinery/door/poddoor/almayer/open{ - dir = 4; - id = "CIC Lockdown"; - name = "\improper Combat Information Center Blast Door" - }, /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/obj/structure/machinery/door/airlock/almayer/command/reinforced{ - name = "\improper Combat Information Center" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/command/cic) -"hzM" = ( -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_s) -"hzV" = ( -/obj/structure/machinery/power/apc/almayer{ - dir = 4 - }, +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/starboard_hallway) +"hzN" = ( +/obj/structure/largecrate/random/case/double, /turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_a_p) +/area/almayer/maint/hull/upper/s_bow) "hAc" = ( /obj/structure/surface/rack, /obj/item/mortar_shell/flare, /obj/item/mortar_shell/flare, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/squads/req) +"hAf" = ( +/obj/structure/machinery/iv_drip, +/turf/open/floor/almayer/sterile_green_side/north, +/area/almayer/shipboard/brig/medical) +"hAh" = ( +/turf/closed/wall/almayer/outer, +/area/almayer/hallways/lower/port_umbilical) "hAz" = ( /obj/structure/pipes/vents/scrubber{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/almayer/living/grunt_rnr) +"hAA" = ( +/obj/structure/machinery/status_display{ + pixel_y = -30 + }, +/obj/structure/machinery/door/poddoor/shutters/almayer{ + dir = 8; + id = "laddersoutheast"; + name = "\improper South East Ladders Shutters" + }, +/turf/open/floor/almayer/test_floor4, +/area/almayer/hallways/lower/port_midship_hallway) "hAG" = ( /obj/structure/closet/crate/internals, -/obj/item/handcuffs/cable/blue, -/obj/item/handcuffs/cable/blue, -/obj/item/handcuffs/cable/cyan, +/obj/item/restraint/adjustable/cable/blue, +/obj/item/restraint/adjustable/cable/blue, +/obj/item/restraint/adjustable/cable/cyan, /obj/effect/spawner/random/toolbox, -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/light_grey_single_wide_up_to_down, /area/almayer/powered/agent) "hAU" = ( /obj/structure/machinery/medical_pod/bodyscanner, @@ -40281,9 +27707,7 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side, /area/almayer/medical/lower_medical_medbay) "hAZ" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -40293,75 +27717,68 @@ dir = 4 }, /obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "blue" - }, +/turf/open/floor/almayer/blue, /area/almayer/squads/delta) "hBc" = ( /obj/structure/pipes/vents/scrubber{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/medical/lower_medical_medbay) +"hBr" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + pixel_y = 1 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer/plating/northeast, +/area/almayer/hallways/lower/vehiclehangar) "hBz" = ( /obj/item/mortar_kit, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/almayer/squads/req) -"hBC" = ( -/obj/effect/step_trigger/clone_cleaner, -/obj/structure/sign/safety/stairs{ - pixel_x = 8; - pixel_y = -32 - }, -/turf/open/floor/plating/almayer{ - allow_construction = 0 - }, -/area/almayer/hallways/port_hallway) "hBF" = ( /obj/structure/pipes/standard/manifold/hidden/supply, /turf/open/floor/plating/plating_catwalk, /area/almayer/hallways/hangar) -"hBU" = ( -/obj/structure/largecrate/random/secure, +"hBG" = ( /obj/effect/decal/warning_stripes{ - icon_state = "E" - }, -/turf/open/floor/almayer{ - icon_state = "plate" + icon_state = "S" }, -/area/almayer/hull/lower_hull/l_a_p) +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer/plate, +/area/almayer/hallways/lower/repair_bay) +"hBL" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/almayer/cargo, +/area/almayer/command/lifeboat) "hBW" = ( -/obj/structure/surface/table/woodentable/fancy, -/obj/item/device/flashlight/lamp/green{ - pixel_x = -7; - pixel_y = 20 - }, -/obj/item/ashtray/bronze{ - pixel_x = 4; - pixel_y = 19 - }, -/obj/structure/machinery/light{ - dir = 8 - }, -/obj/effect/landmark/map_item{ - pixel_x = -1; - pixel_y = 3 +/turf/open/floor/almayer/plate, +/area/almayer/hallways/lower/port_fore_hallway) +"hCf" = ( +/obj/structure/sign/safety/manualopenclose{ + pixel_x = 15; + pixel_y = -32 }, -/turf/open/floor/wood/ship, -/area/almayer/living/commandbunks) -"hCo" = ( -/obj/structure/surface/table/almayer, -/obj/structure/flora/pottedplant{ - icon_state = "pottedplant_22"; - pixel_y = 8 +/obj/structure/sign/safety/distribution_pipes{ + pixel_y = -32 }, /turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_s) +/area/almayer/hallways/lower/port_midship_hallway) +"hCk" = ( +/obj/structure/largecrate/random/barrel/red, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_m_s) +"hCq" = ( +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_a_p) "hCt" = ( /obj/structure/sign/safety/terminal{ pixel_x = 15; @@ -40370,9 +27787,7 @@ /obj/structure/sign/safety/intercom{ pixel_y = -32 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) "hCS" = ( /obj/structure/surface/table/reinforced/prison, @@ -40389,14 +27804,14 @@ /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/medical/lower_medical_medbay) -"hDv" = ( -/obj/effect/landmark/start/reporter, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_m_p) +"hCV" = ( +/obj/structure/toilet{ + dir = 8 + }, +/turf/open/floor/almayer/plate, +/area/almayer/shipboard/brig/perma) "hDw" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/emails{ @@ -40404,13 +27819,6 @@ }, /turf/open/floor/almayer, /area/almayer/living/briefing) -"hDL" = ( -/obj/structure/sign/safety/distribution_pipes{ - pixel_x = 8; - pixel_y = 32 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/starboard_hallway) "hDR" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/storage/syringe_case{ @@ -40422,59 +27830,86 @@ pixel_x = -3; pixel_y = -2 }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/medical/lower_medical_medbay) +"hDU" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 9 + }, +/turf/open/floor/almayer/red/southeast, +/area/almayer/hallways/lower/port_fore_hallway) +"hDV" = ( +/obj/structure/surface/table/almayer, +/obj/effect/landmark/map_item, +/turf/open/floor/almayer/orangefull, +/area/almayer/living/briefing) "hDX" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/medical/lower_medical_lobby) "hEb" = ( /obj/effect/landmark/start/marine/medic/bravo, /obj/effect/landmark/late_join/bravo, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/bravo) -"hEt" = ( -/obj/structure/surface/table/almayer, -/obj/item/reagent_container/glass/bucket/mopbucket{ - pixel_x = -8 +"hEg" = ( +/obj/structure/machinery/door_control{ + id = "laddersouthwest"; + name = "South West Ladders Shutters"; + pixel_x = 25; + req_one_access_txt = "2;3;12;19"; + throw_range = 15 }, -/obj/item/reagent_container/glass/bucket/mopbucket{ - pixel_y = 12 +/obj/effect/step_trigger/clone_cleaner, +/turf/open/floor/almayer/greencorner/east, +/area/almayer/hallways/lower/port_fore_hallway) +"hEl" = ( +/obj/structure/machinery/alarm/almayer{ + dir = 1 }, -/obj/item/clothing/head/militia/bucket{ - pixel_x = 5; - pixel_y = -5 +/turf/open/floor/wood/ship, +/area/almayer/command/corporateliaison) +"hEm" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 2 }, -/obj/item/reagent_container/spray/cleaner{ +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_midship_hallway) +"hEr" = ( +/obj/structure/filingcabinet{ + density = 0; + pixel_x = -8; + pixel_y = 18 + }, +/obj/structure/filingcabinet{ + density = 0; pixel_x = 8; - pixel_y = -1 + pixel_y = 18 }, -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_f_p) +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_a_s) +"hEw" = ( +/obj/structure/pipes/standard/simple/visible{ + dir = 10 + }, +/obj/structure/machinery/meter, +/turf/open/floor/almayer/orange, +/area/almayer/engineering/lower) "hEV" = ( /obj/structure/pipes/vents/pump, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/south1) "hFw" = ( /obj/structure/machinery/disposal/broken, -/turf/open/floor/almayer{ - icon_state = "orange" - }, +/turf/open/floor/almayer/orange, /area/almayer/engineering/upper_engineering/starboard) "hFC" = ( /obj/structure/bed/chair/comfy, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/west, /area/almayer/medical/medical_science) "hFF" = ( /obj/structure/machinery/door/airlock/almayer/medical{ @@ -40484,37 +27919,26 @@ req_one_access = null }, /obj/structure/machinery/door/firedoor/border_only/almayer, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/medical/morgue) -"hFW" = ( -/obj/structure/largecrate/random/barrel/red, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_p) -"hFX" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/structure/bed/chair/comfy/bravo{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/living/briefing) -"hGa" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 2 +"hGb" = ( +/obj/structure/machinery/camera/autoname/almayer{ + name = "ship-grade camera" }, -/obj/structure/closet/secure_closet/guncabinet/red/mp_armory_m39_submachinegun, -/turf/open/floor/plating/almayer, -/area/almayer/shipboard/brig/armory) -"hGD" = ( +/turf/open/floor/almayer/orangecorner/east, +/area/almayer/hallways/upper/aft_hallway) +"hGh" = ( +/obj/structure/window/framed/almayer/white, +/obj/structure/machinery/door/firedoor/border_only/almayer, +/turf/open/floor/plating, +/area/almayer/medical/chemistry) +"hGG" = ( +/obj/effect/step_trigger/clone_cleaner, /obj/effect/decal/warning_stripes{ - icon_state = "W" + icon_state = "S" }, /turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_s) +/area/almayer/hallways/upper/starboard) "hGN" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -40525,10 +27949,7 @@ }, /obj/item/clothing/suit/storage/marine/light/vest, /obj/item/clothing/suit/storage/marine/light/vest, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/almayer/squads/req) "hGO" = ( /obj/structure/surface/table/reinforced/almayer_B, @@ -40536,17 +27957,21 @@ dir = 8; invisibility = 101 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/west, /area/almayer/living/briefing) -"hGZ" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/almayer{ - icon_state = "plate" +"hGV" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/turf/open/floor/almayer/red/north, +/area/almayer/hallways/upper/port) +"hHe" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 }, -/area/almayer/hull/lower_hull/l_m_p) +/turf/open/floor/almayer/red/southwest, +/area/almayer/hallways/upper/starboard) "hHl" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/storage/pouch/general/large, @@ -40561,57 +27986,33 @@ dir = 6; layer = 3.51 }, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/almayer/red/southeast, /area/almayer/lifeboat_pumps/south1) -"hHJ" = ( -/obj/structure/machinery/door/poddoor/shutters/almayer/open{ - id = "vehicle1door"; - name = "Vehicle Bay One" - }, -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/vehiclehangar) -"hHR" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" - }, -/area/almayer/hallways/starboard_umbilical) -"hHU" = ( -/obj/structure/platform_decoration{ - dir = 8 - }, -/obj/item/reagent_container/glass/bucket/mopbucket{ - pixel_x = 7; - pixel_y = -3 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_p) -"hIt" = ( -/obj/structure/surface/table/almayer, -/obj/effect/decal/cleanable/dirt, -/obj/item/tool/kitchen/tray{ - pixel_y = 9 - }, -/obj/item/device/flashlight/lamp{ - pixel_x = 15 +"hIp" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 }, -/obj/item/reagent_container/food/snacks/meatpizzaslice{ - pixel_x = -5; - pixel_y = 7 +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_a_p) +"hIs" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_x = 1; + pixel_y = 2 }, -/turf/open/floor/almayer{ - icon_state = "emeraldfull" +/turf/open/floor/almayer/dark_sterile, +/area/almayer/command/corporateliaison) +"hIF" = ( +/obj/structure/machinery/light{ + dir = 1 }, -/area/almayer/living/briefing) +/turf/open/floor/almayer, +/area/almayer/hallways/lower/vehiclehangar) +"hIG" = ( +/obj/structure/largecrate/random, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/p_bow) "hII" = ( /obj/structure/machinery/cm_vending/gear/tl{ density = 0; @@ -40621,41 +28022,19 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/almayer/blue/west, /area/almayer/squads/delta) -"hIL" = ( -/obj/structure/machinery/door/airlock/almayer/maint{ - access_modified = 1; - req_access_txt = "200"; - req_one_access = null - }, -/obj/structure/machinery/door/poddoor/shutters/almayer/cl/quarter/backdoor, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/command/corporateliason) -"hJb" = ( -/obj/item/tool/pen, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_a_s) -"hJh" = ( -/obj/structure/surface/table/almayer, -/obj/structure/machinery/computer/emails{ - pixel_x = 2; - pixel_y = 5 - }, -/obj/structure/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" +"hIX" = ( +/obj/structure/largecrate/random/case/double, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_a_p) +"hJg" = ( +/obj/structure/pipes/trinary/mixer{ + dir = 4; + name = "Gas mixer N2/O2" }, -/area/almayer/command/combat_correspondent) +/turf/open/floor/almayer/orange, +/area/almayer/engineering/lower) "hJk" = ( /obj/structure/stairs/perspective{ dir = 4; @@ -40666,41 +28045,27 @@ }, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/south1) -"hJp" = ( -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_s) -"hJu" = ( -/obj/structure/sign/safety/stairs{ - pixel_x = -15 +"hJD" = ( +/obj/structure/bed/sofa/south/grey/right{ + pixel_y = 12 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "green" +/turf/open/floor/almayer, +/area/almayer/maint/hull/upper/u_f_s) +"hJI" = ( +/obj/structure/pipes/vents/pump{ + dir = 4 }, -/area/almayer/hallways/aft_hallway) -"hJz" = ( -/obj/structure/sign/safety/restrictedarea, -/obj/structure/sign/safety/security{ - pixel_x = 15 +/turf/open/floor/almayer, +/area/almayer/engineering/lower/workshop/hangar) +"hKe" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/turf/closed/wall/almayer, -/area/almayer/hull/lower_hull/l_f_s) -"hJJ" = ( -/obj/structure/pipes/standard/manifold/hidden/supply{ +/obj/structure/disposalpipe/segment{ dir = 4 }, /turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_s) -"hKe" = ( -/obj/structure/sign/poster/safety, -/turf/closed/wall/almayer, -/area/almayer/hull/lower_hull/l_f_s) -"hKi" = ( -/obj/structure/largecrate/random/barrel/yellow, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_f_s) +/area/almayer/hallways/lower/starboard_fore_hallway) "hKl" = ( /obj/structure/pipes/vents/pump, /obj/effect/decal/warning_stripes{ @@ -40711,45 +28076,49 @@ icon_state = "W"; pixel_x = -1 }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/medical/hydroponics) -"hKq" = ( -/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ - pixel_y = 25 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, -/area/almayer/shipboard/brig/main_office) -"hKQ" = ( -/turf/open/floor/almayer{ - icon_state = "cargo_arrow" - }, -/area/almayer/engineering/engineering_workshop/hangar) -"hLC" = ( -/obj/structure/surface/table/almayer, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/living/grunt_rnr) -"hLI" = ( -/turf/open/floor/almayer{ - icon_state = "red" +"hKO" = ( +/obj/structure/largecrate/random/barrel/green, +/obj/structure/sign/safety/maint{ + pixel_x = 8; + pixel_y = 32 }, -/area/almayer/living/cryo_cells) -"hLO" = ( +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_f_s) +"hLr" = ( /obj/effect/decal/warning_stripes{ - icon_state = "SW-out"; - layer = 2.5 + icon_state = "E"; + pixel_x = 1 }, /obj/effect/decal/warning_stripes{ - icon_state = "SE-out" + icon_state = "W"; + pixel_x = -1 + }, +/obj/structure/machinery/door/airlock/almayer/research/reinforced{ + closeOtherId = "containment_s"; + dir = 8; + name = "\improper Containment Airlock" + }, +/obj/structure/machinery/door/poddoor/almayer/biohazard/white{ + dir = 4 + }, +/turf/open/floor/almayer/test_floor4, +/area/almayer/medical/containment) +"hLu" = ( +/obj/structure/sign/safety/hvac_old{ + pixel_x = 8; + pixel_y = -32 }, /turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/aft_hallway) +/area/almayer/maint/hull/lower/p_bow) +"hLC" = ( +/obj/structure/surface/table/almayer, +/turf/open/floor/almayer/plate, +/area/almayer/living/grunt_rnr) +"hLI" = ( +/turf/open/floor/almayer/red, +/area/almayer/living/cryo_cells) "hLS" = ( /obj/structure/machinery/door/airlock/almayer/marine/delta{ dir = 1 @@ -40758,45 +28127,44 @@ dir = 2 }, /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/living/briefing) "hMi" = ( /obj/structure/pipes/vents/scrubber, /turf/open/floor/almayer, /area/almayer/living/chapel) -"hMs" = ( -/obj/structure/bed/stool, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "green" - }, -/area/almayer/hallways/port_hallway) -"hMI" = ( -/obj/structure/surface/table/almayer, -/obj/item/device/binoculars, -/obj/item/device/whistle{ - pixel_y = 5 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_f_s) -"hMJ" = ( -/obj/structure/bed/chair/comfy/bravo{ - dir = 1 +"hMk" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/area/almayer/living/briefing) +/turf/open/floor/almayer/plate, +/area/almayer/hallways/lower/starboard_fore_hallway) +"hMG" = ( +/obj/structure/pipes/vents/pump, +/turf/open/floor/almayer, +/area/almayer/engineering/lower) +"hMM" = ( +/obj/structure/largecrate/random/barrel/white, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/s_bow) "hMN" = ( /obj/structure/machinery/power/apc/almayer, -/turf/open/floor/almayer{ - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side, /area/almayer/medical/operating_room_three) +"hNh" = ( +/obj/structure/machinery/light/small, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_f_p) +"hNv" = ( +/obj/structure/sign/safety/escapepod{ + pixel_x = 8; + pixel_y = -32 + }, +/turf/open/floor/almayer/green, +/area/almayer/hallways/lower/port_midship_hallway) "hNw" = ( /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 2 @@ -40804,22 +28172,15 @@ /obj/structure/window/framed/almayer, /turf/open/floor/plating, /area/almayer/squads/charlie) -"hND" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 1 - }, -/obj/structure/machinery/door/poddoor/almayer/open{ - id = "Brig Lockdown Shutters"; - name = "\improper Brig Lockdown Shutter" - }, -/obj/structure/machinery/door/airlock/almayer/security/glass/reinforced{ - dir = 1; - name = "\improper Brig" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +"hNB" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer, +/obj/structure/machinery/door/airlock/almayer/maint/reinforced{ + access_modified = 1; + req_one_access = null; + req_one_access_txt = "7;19" }, -/area/almayer/shipboard/brig/main_office) +/turf/open/floor/almayer/test_floor4, +/area/almayer/hallways/lower/vehiclehangar) "hNM" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/stack/sheet/metal{ @@ -40829,28 +28190,41 @@ /obj/item/tool/shovel/etool/folded, /turf/open/floor/almayer, /area/almayer/squads/alpha_bravo_shared) -"hOe" = ( -/obj/structure/sign/safety/hazard{ - pixel_x = 32; - pixel_y = 7 - }, -/obj/structure/sign/safety/airlock{ - pixel_x = 32; - pixel_y = -8 +"hNP" = ( +/obj/structure/machinery/door/airlock/almayer/maint{ + name = "\improper Core Hatch" }, -/turf/open/floor/almayer{ - icon_state = "plate" +/turf/open/floor/almayer/test_floor4, +/area/almayer/engineering/lower/engine_core) +"hNY" = ( +/obj/structure/machinery/firealarm{ + pixel_y = 28 }, -/area/almayer/hull/lower_hull/l_a_p) -"hOR" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 +/turf/open/floor/almayer/red/north, +/area/almayer/shipboard/brig/chief_mp_office) +"hOd" = ( +/turf/open/floor/almayer/blue/north, +/area/almayer/hallways/upper/fore_hallway) +"hOn" = ( +/turf/open/floor/almayer/silver/northwest, +/area/almayer/hallways/upper/midship_hallway) +"hOu" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 +/obj/structure/machinery/door_control{ + id = "hangarentrancenorth"; + name = "North Hangar Podlocks"; + pixel_y = -26; + req_one_access_txt = "2;3;12;19"; + throw_range = 15 }, -/turf/open/floor/almayer, -/area/almayer/hallways/port_hallway) +/turf/open/floor/almayer/plate, +/area/almayer/hallways/lower/starboard_fore_hallway) +"hOV" = ( +/turf/closed/wall/almayer, +/area/almayer/maint/lower/constr) "hPe" = ( /obj/structure/disposalpipe/segment, /obj/structure/machinery/door/airlock/multi_tile/almayer/medidoor/research, @@ -40859,40 +28233,32 @@ name = "\improper Research Doorway Shutter" }, /obj/structure/machinery/door/poddoor/almayer/biohazard/white, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/medical/medical_science) -"hPg" = ( -/obj/structure/machinery/constructable_frame{ - icon_state = "box_2" - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_p) "hPh" = ( /obj/structure/bed/chair/comfy, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/north, /area/almayer/living/auxiliary_officer_office) -"hPo" = ( -/obj/structure/surface/rack, -/obj/item/tool/wet_sign, -/obj/item/tool/wet_sign, -/turf/open/floor/almayer{ - icon_state = "plate" +"hPu" = ( +/obj/structure/largecrate/supply, +/obj/item/tool/crowbar, +/turf/open/floor/almayer/cargo, +/area/almayer/maint/hull/upper/u_f_p) +"hPD" = ( +/obj/structure/pipes/vents/scrubber{ + dir = 8 }, -/area/almayer/hull/upper_hull/u_a_p) -"hPK" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" +/turf/open/floor/almayer/orange/east, +/area/almayer/hallways/lower/starboard_umbilical) +"hPI" = ( +/turf/closed/wall/almayer/outer, +/area/almayer/shipboard/brig/perma) +"hPL" = ( +/obj/structure/machinery/light/small{ + dir = 8 }, -/area/almayer/hallways/stern_hallway) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/upper/u_m_p) "hPN" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/effect/decal/warning_stripes{ @@ -40900,17 +28266,18 @@ pixel_x = 1; pixel_y = 1 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/northeast, /area/almayer/medical/hydroponics) -"hPT" = ( -/obj/structure/largecrate/random/case/small, -/turf/open/floor/almayer{ - icon_state = "plate" +"hPZ" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 10 }, -/area/almayer/hull/upper_hull/u_f_p) +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/almayer, +/area/almayer/hallways/upper/midship_hallway) "hQc" = ( /obj/structure/window/reinforced{ dir = 4; @@ -40919,17 +28286,24 @@ /obj/structure/window/reinforced{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "cargo_arrow" - }, +/turf/open/floor/almayer/cargo_arrow, /area/almayer/squads/charlie_delta_shared) -"hQh" = ( +"hQf" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/port_midship_hallway) +"hQw" = ( /obj/structure/machinery/light, -/obj/structure/closet/secure_closet/fridge/groceries/stock, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/living/grunt_rnr) +/turf/open/floor/almayer/orange/southwest, +/area/almayer/engineering/lower/engine_core) +"hQK" = ( +/obj/effect/step_trigger/clone_cleaner, +/turf/closed/wall/almayer, +/area/almayer/maint/hull/upper/u_m_p) +"hQP" = ( +/obj/structure/reagent_dispensers/fueltank/custom, +/turf/open/floor/almayer/cargo, +/area/almayer/engineering/lower/workshop/hangar) "hQU" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk{ @@ -40938,9 +28312,7 @@ /obj/structure/sign/safety/intercom{ pixel_x = -17 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/medical/morgue) "hQW" = ( /obj/structure/disposalpipe/segment{ @@ -40950,19 +28322,13 @@ pixel_x = 8; pixel_y = 32 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/almayer/red/north, /area/almayer/squads/alpha) "hQY" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/east, /area/almayer/medical/lower_medical_medbay) "hRa" = ( /obj/structure/machinery/vending/snack{ @@ -40971,34 +28337,31 @@ /obj/structure/machinery/vending/coffee{ pixel_x = 14 }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/medical/medical_science) "hRd" = ( /obj/structure/machinery/vending/coffee, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/alpha) -"hRi" = ( -/obj/structure/pipes/vents/scrubber{ - dir = 1 +"hRk" = ( +/obj/structure/machinery/cm_vending/clothing/senior_officer{ + density = 0; + pixel_y = 30 }, -/turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_p) -"hRy" = ( -/obj/structure/surface/rack, -/obj/item/storage/firstaid/adv{ - pixel_x = 6; - pixel_y = 6 +/turf/open/floor/almayer/plate, +/area/almayer/living/numbertwobunks) +"hRu" = ( +/turf/closed/wall/almayer/outer, +/area/almayer/shipboard/brig/execution_storage) +"hRA" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/obj/item/storage/firstaid/regular, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "redcorner" +/obj/structure/bed/chair{ + dir = 4 }, -/area/almayer/shipboard/brig/execution) +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_f_s) "hRW" = ( /obj/effect/decal/warning_stripes{ icon_state = "S"; @@ -41022,10 +28385,12 @@ pixel_x = 14; pixel_y = 38 }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, +/turf/open/floor/almayer/aicore/glowing/no_build, /area/almayer/command/airoom) +"hSb" = ( +/obj/structure/largecrate/random/secure, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_f_p) "hSk" = ( /turf/open/floor/plating/plating_catwalk, /area/almayer/engineering/upper_engineering/port) @@ -41033,19 +28398,18 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/west, /area/almayer/engineering/upper_engineering/port) -"hSu" = ( -/obj/structure/machinery/door/airlock/almayer/maint{ - dir = 1 +"hSv" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ + dir = 1; + name = "\improper Starboard Viewing Room" }, -/area/almayer/hull/upper_hull/u_a_s) +/turf/open/floor/almayer/test_floor4, +/area/almayer/maint/hull/upper/u_f_s) "hSw" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk, @@ -41063,40 +28427,21 @@ req_one_access = null }, /obj/structure/disposalpipe/segment, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 }, +/turf/open/floor/almayer/test_floor4, /area/almayer/medical/morgue) -"hSL" = ( -/obj/structure/sign/safety/maint{ - pixel_x = 8; - pixel_y = 32 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/repair_bay) "hTc" = ( /obj/structure/machinery/firealarm{ pixel_y = 28 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/delta) "hTf" = ( /obj/structure/machinery/portable_atmospherics/hydroponics, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/almayer/green/north, /area/almayer/living/grunt_rnr) -"hTk" = ( -/obj/structure/prop/invuln/overhead_pipe{ - dir = 4; - pixel_x = -16; - pixel_y = 13 - }, -/turf/closed/wall/almayer/outer, -/area/almayer/hull/lower_hull/l_a_p) "hTl" = ( /obj/structure/prop/server_equipment/yutani_server{ density = 0; @@ -41105,34 +28450,15 @@ pixel_y = 16 }, /obj/structure/pipes/standard/simple/hidden/supply/no_boom, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, +/turf/open/floor/almayer/aicore/no_build, /area/almayer/command/airoom) "hTt" = ( /obj/structure/machinery/brig_cell/cell_1{ pixel_x = 32; pixel_y = -32 }, -/turf/open/floor/almayer{ - allow_construction = 0 - }, +/turf/open/floor/almayer/no_build, /area/almayer/shipboard/brig/processing) -"hTu" = ( -/obj/structure/machinery/light, -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_f_p) -"hTy" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "SW-out"; - layer = 2.5 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "SE-out"; - pixel_x = 2 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/aft_hallway) "hTF" = ( /obj/structure/machinery/suit_storage_unit/compression_suit/uscm{ isopen = 1; @@ -41141,9 +28467,7 @@ starting_suit_type = null; starting_tank_type = null }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/engineering/upper_engineering/port) "hTP" = ( /obj/structure/machinery/door_control{ @@ -41162,9 +28486,7 @@ /obj/item/frame/light_fixture/small{ pixel_y = 17 }, -/turf/open/floor/almayer{ - icon_state = "test_floor5" - }, +/turf/open/floor/almayer/test_floor5, /area/almayer/squads/req) "hTT" = ( /obj/structure/surface/table/almayer, @@ -41172,22 +28494,78 @@ pixel_y = 3 }, /obj/item/device/analyzer/plant_analyzer, -/turf/open/floor/almayer{ - icon_state = "green" - }, +/turf/open/floor/almayer/green, /area/almayer/living/grunt_rnr) -"hUc" = ( -/obj/structure/machinery/light/small{ +"hTU" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12 + }, +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12; + pixel_y = 12 + }, +/obj/structure/largecrate/random/secure, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_a_p) +"hUb" = ( +/obj/structure/largecrate/random/case/double, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_m_s) +"hUh" = ( +/obj/structure/machinery/medical_pod/bodyscanner{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "plate" +/turf/open/floor/almayer/dark_sterile, +/area/almayer/shipboard/brig/medical) +"hUk" = ( +/turf/open/floor/almayer/orange/southwest, +/area/almayer/engineering/lower/engine_core) +"hUu" = ( +/obj/item/device/radio/intercom{ + freerange = 1; + name = "General Listening Channel"; + pixel_y = 28 }, -/area/almayer/hull/upper_hull/u_f_p) -"hUg" = ( -/obj/effect/landmark/yautja_teleport, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_s) +/turf/open/floor/almayer/blue/north, +/area/almayer/hallways/upper/midship_hallway) +"hUz" = ( +/obj/structure/largecrate/supply/supplies/mre{ + desc = "A supply crate containing everything you need to stop a CLF uprising."; + name = "\improper USCM crate 'FOB supplies'" + }, +/obj/item/folded_tent/big{ + pixel_x = -6; + pixel_y = 10 + }, +/obj/item/storage/box/mousetraps{ + pixel_x = 3; + pixel_y = 12 + }, +/turf/open/floor/almayer/plate, +/area/almayer/living/port_emb) +"hUU" = ( +/obj/structure/surface/table/almayer, +/obj/item/storage/box/bodybags{ + pixel_x = 6; + pixel_y = 6 + }, +/obj/item/storage/box/bodybags, +/obj/structure/machinery/light/small{ + dir = 4; + pixel_y = -12 + }, +/obj/structure/machinery/power/apc/almayer{ + dir = 4 + }, +/obj/structure/sign/safety/rewire{ + pixel_x = 32; + pixel_y = 17 + }, +/turf/open/floor/almayer/plate, +/area/almayer/shipboard/brig/execution_storage) "hUW" = ( /obj/structure/disposalpipe/segment{ dir = 4; @@ -41202,34 +28580,27 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 10 }, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/southeast, /area/almayer/medical/medical_science) "hVz" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/north, /area/almayer/medical/upper_medical) +"hVL" = ( +/obj/structure/largecrate/random/barrel/red, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_f_p) "hWa" = ( -/obj/structure/surface/table/reinforced/almayer_B, -/obj/item/ashtray/plastic, -/obj/item/trash/cigbutt{ - pixel_x = 4 - }, -/obj/item/trash/cigbutt{ - pixel_x = -10; - pixel_y = 13 +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/area/almayer/hull/upper_hull/u_a_p) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/upper/fore_hallway) "hWq" = ( /obj/structure/platform{ layer = 3.1 @@ -41273,48 +28644,48 @@ pixel_x = 8; pixel_y = 32 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/almayer/red/northeast, /area/almayer/lifeboat_pumps/south1) +"hWD" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_aft_hallway) +"hWH" = ( +/obj/structure/machinery/light/small{ + dir = 4 + }, +/obj/structure/prop/invuln/overhead_pipe{ + dir = 4; + pixel_x = 12; + pixel_y = 13 + }, +/obj/structure/prop/invuln/overhead_pipe{ + dir = 4; + pixel_y = 13 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_a_p) "hWJ" = ( /obj/structure/largecrate/random/case/small, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/almayer/red/north, /area/almayer/shipboard/weapon_room) +"hWM" = ( +/obj/structure/surface/rack, +/turf/open/floor/almayer/aicore/no_build, +/area/almayer/command/airoom) "hWO" = ( /obj/structure/pipes/vents/scrubber, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/almayer/blue/north, /area/almayer/command/cichallway) -"hWS" = ( -/obj/structure/closet/secure_closet/fridge/organic/stock, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/living/grunt_rnr) -"hWU" = ( -/obj/structure/largecrate/random/barrel/blue, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_s) -"hWX" = ( -/obj/structure/closet/firecloset, -/turf/open/floor/almayer{ - icon_state = "cargo" +"hWP" = ( +/obj/effect/step_trigger/clone_cleaner, +/obj/structure/platform_decoration{ + dir = 1 }, -/area/almayer/hull/upper_hull/u_f_p) +/turf/open/floor/almayer/aicore/no_build/ai_silver/west, +/area/almayer/command/airoom) "hXb" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "cargo_arrow" - }, +/turf/open/floor/almayer/cargo_arrow/north, /area/almayer/squads/charlie_delta_shared) "hXd" = ( /obj/structure/surface/table/reinforced/prison, @@ -41348,52 +28719,40 @@ /turf/open/floor/almayer, /area/almayer/shipboard/brig/cic_hallway) "hXD" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "SW-out"; - pixel_x = -1 - }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, -/area/almayer/lifeboat_pumps/south1) -"hXS" = ( -/obj/structure/sign/safety/water{ - pixel_x = 8; - pixel_y = -32 +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 6 }, /turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_p) -"hXV" = ( -/obj/structure/machinery/light{ - dir = 1 +/area/almayer/maint/hull/upper/u_f_p) +"hXG" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "red" +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 2 }, -/area/almayer/lifeboat_pumps/south1) -"hXY" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "blue" +/turf/open/floor/almayer/dark_sterile, +/area/almayer/engineering/upper_engineering/port) +"hXX" = ( +/obj/effect/projector{ + name = "Almayer_Down4"; + vector_x = 19; + vector_y = -104 }, +/turf/open/floor/almayer/no_build/plate, +/area/almayer/hallways/upper/port) +"hXY" = ( +/turf/open/floor/almayer/blue/east, /area/almayer/squads/delta) -"hYc" = ( -/obj/structure/surface/table/almayer, -/obj/item/tool/kitchen/tray, -/obj/item/tool/kitchen/tray{ - pixel_y = 6 - }, -/obj/item/reagent_container/food/snacks/sliceable/bread{ - pixel_y = 8 - }, -/obj/item/tool/kitchen/knife{ - pixel_x = 6 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_p) +"hYf" = ( +/obj/effect/landmark/yautja_teleport, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_a_s) +"hYj" = ( +/obj/structure/machinery/light/small, +/turf/open/floor/almayer/plate, +/area/almayer/maint/upper/u_a_p) "hYn" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -41402,25 +28761,63 @@ dir = 4 }, /obj/structure/machinery/medical_pod/sleeper, -/turf/open/floor/almayer{ - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side, /area/almayer/medical/lower_medical_medbay) +"hYE" = ( +/obj/structure/surface/table/almayer, +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_22"; + pixel_y = 8 + }, +/turf/open/floor/almayer, +/area/almayer/maint/hull/upper/u_f_s) "hYG" = ( /obj/structure/bed/chair{ dir = 1 }, /turf/open/floor/almayer, /area/almayer/hallways/hangar) +"hZe" = ( +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/structure/machinery/disposal/delivery{ + density = 0; + desc = "A pneumatic delivery unit. Sends items to the requisitions."; + icon_state = "delivery_engi"; + name = "Requisitions Delivery Unit"; + pixel_y = 28 + }, +/turf/open/floor/almayer, +/area/almayer/engineering/lower/workshop/hangar) "hZj" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; pixel_y = 1 }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, +/turf/open/floor/almayer/aicore/no_build, /area/almayer/command/airoom) +"hZw" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SW-out" + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/p_bow) +"hZE" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/turf/open/floor/almayer/red, +/area/almayer/hallways/upper/starboard) +"hZJ" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 1 + }, +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/disposalpipe/segment, +/turf/open/floor/almayer/test_floor4, +/area/almayer/shipboard/brig/processing) "hZN" = ( /obj/structure/machinery/medical_pod/bodyscanner, /obj/structure/disposalpipe/segment{ @@ -41429,29 +28826,20 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/southeast, /area/almayer/medical/lower_medical_medbay) -"hZU" = ( -/obj/structure/transmitter{ - name = "Brig Offices Telephone"; - phone_category = "Almayer"; - phone_id = "Brig Main Offices"; - pixel_y = 32 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, -/area/almayer/shipboard/brig/main_office) +"hZZ" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_f_p) +"iaa" = ( +/obj/structure/closet/secure_closet/guncabinet/red/cic_armory_mk1_rifle_ap, +/turf/open/floor/almayer/redfull, +/area/almayer/command/cic) "iag" = ( /obj/structure/surface/table/almayer, /obj/item/tool/hand_labeler, -/turf/open/floor/almayer{ - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side, /area/almayer/medical/chemistry) "iah" = ( /obj/structure/disposalpipe/segment, @@ -41462,16 +28850,8 @@ icon_state = "pottedplant_22"; pixel_y = 8 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/command/cichallway) -"iaj" = ( -/obj/structure/bed/chair/comfy/orange{ - dir = 1 - }, -/turf/open/floor/carpet, -/area/almayer/command/corporateliason) "ial" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -41479,16 +28859,11 @@ /obj/structure/machinery/camera/autoname/almayer{ name = "ship-grade camera" }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/almayer/red/north, /area/almayer/squads/alpha) "iaq" = ( /obj/structure/machinery/vending/cola, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/bravo) "iat" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ @@ -41496,71 +28871,89 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/engineering/upper_engineering/port) -"iaE" = ( -/obj/structure/bed/chair{ - dir = 4 +"iav" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 9 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_m_s) +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/almayer/orangecorner, +/area/almayer/engineering/upper_engineering) "iaF" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/medical/lower_medical_lobby) +"iaO" = ( +/obj/structure/sign/safety/maint{ + pixel_x = 32 + }, +/turf/open/floor/almayer/red/west, +/area/almayer/hallways/upper/port) "iaR" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/almayer/red/northeast, /area/almayer/command/lifeboat) "ibc" = ( /obj/structure/machinery/conveyor_switch{ id = "req_belt" }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "plating_striped" - }, +/turf/open/floor/almayer/plating_striped/east, /area/almayer/squads/req) -"icp" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" +"ibf" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/almayer/plate, +/area/almayer/maint/lower/s_bow) +"ibP" = ( +/obj/structure/sign/safety/maint{ + pixel_x = -19; + pixel_y = -6 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/safety/bulkhead_door{ + pixel_x = -19; + pixel_y = 6 }, +/turf/open/floor/almayer, +/area/almayer/maint/hull/upper/u_f_s) +"icp" = ( +/turf/open/floor/almayer/orange/west, /area/almayer/hallways/hangar) "icw" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 10 }, /obj/structure/machinery/medical_pod/sleeper, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/northeast, /area/almayer/medical/lower_medical_medbay) -"icX" = ( -/obj/structure/machinery/brig_cell/perma_2{ - pixel_x = -32; - pixel_y = -4 +"icM" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/obj/structure/machinery/door_control{ - id = "Perma 2L"; - name = "Perma 2 Lockdown"; - pixel_x = -24; - pixel_y = 12; - req_access_txt = "3" +/obj/structure/machinery/vending/snack{ + density = 0; + pixel_y = 16 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/cells) +"icQ" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/area/almayer/shipboard/brig/perma) +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer/blue/east, +/area/almayer/hallways/upper/fore_hallway) +"icZ" = ( +/obj/structure/closet/secure_closet/brig, +/turf/open/floor/almayer/redcorner/west, +/area/almayer/shipboard/brig/processing) "idx" = ( /obj/structure/disposalpipe/segment{ dir = 1; @@ -41569,41 +28962,38 @@ /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/almayer/living/grunt_rnr) -"idJ" = ( -/obj/structure/surface/table/almayer, -/obj/effect/decal/cleanable/dirt, -/obj/item/device/flashlight/lamp{ - layer = 3.3; - pixel_x = 15 - }, -/obj/item/paper, -/obj/item/tool/pen{ - pixel_x = -5; - pixel_y = 2 +"idL" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "orangefull" +/obj/structure/sign/safety/water{ + pixel_x = 8; + pixel_y = 32 }, -/area/almayer/living/briefing) +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_f_p) "idX" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/almayer/living/grunt_rnr) -"ieo" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ +"ied" = ( +/obj/structure/machinery/power/apc/almayer{ + dir = 1 + }, +/turf/open/floor/almayer, +/area/almayer/maint/hull/upper/u_f_p) +"ien" = ( +/obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" +/obj/structure/sign/safety/distribution_pipes{ + pixel_x = 8; + pixel_y = 32 }, -/area/almayer/shipboard/brig/general_equipment) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_a_p) "ieu" = ( /obj/structure/window/reinforced{ dir = 4; @@ -41639,9 +29029,7 @@ /obj/item/bedsheet/red{ pixel_y = 13 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/port_emb) "iey" = ( /obj/structure/surface/table/almayer, @@ -41655,32 +29043,8 @@ /obj/item/tool/extinguisher, /obj/item/tool/extinguisher, /obj/item/tool/extinguisher, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_corner" - }, +/turf/open/floor/almayer/sterile_green_corner/north, /area/almayer/medical/lower_medical_lobby) -"ieF" = ( -/obj/effect/projector{ - name = "Almayer_AresUp"; - vector_x = -97; - vector_y = 65 - }, -/obj/structure/stairs{ - dir = 1; - icon_state = "ramptop" - }, -/turf/open/floor/almayer/no_build{ - dir = 4 - }, -/area/almayer/command/airoom) -"ieH" = ( -/obj/structure/sign/safety/storage{ - pixel_x = 8; - pixel_y = -32 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_m_p) "ieX" = ( /obj/structure/surface/table/almayer, /obj/structure/sign/safety/distribution_pipes{ @@ -41700,91 +29064,77 @@ pixel_x = 32; pixel_y = -8 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/almayer/red/north, /area/almayer/lifeboat_pumps/north1) -"ift" = ( -/obj/item/clothing/suit/storage/marine/light/vest, -/obj/item/clothing/suit/storage/marine/light/vest, -/obj/item/clothing/suit/storage/marine/light/vest, -/obj/structure/surface/rack, -/turf/open/floor/almayer{ - icon_state = "redfull" +"ifz" = ( +/obj/structure/machinery/keycard_auth{ + pixel_x = 25 }, -/area/almayer/engineering/upper_engineering) -"ifR" = ( -/obj/structure/sign/safety/hvac_old{ - pixel_x = 8; - pixel_y = 32 +/turf/open/floor/almayer/red/east, +/area/almayer/shipboard/brig/warden_office) +"igb" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" }, /turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_s) -"igf" = ( -/obj/structure/largecrate/random/case{ - layer = 2.98 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_s) -"ign" = ( -/obj/structure/closet/secure_closet/fridge/fish/stock, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/living/grunt_rnr) -"igp" = ( -/obj/structure/surface/table/almayer, -/obj/item/device/flashlight/lamp{ - pixel_x = 4; - pixel_y = 4 - }, -/obj/item/clothing/glasses/monocle, -/obj/item/reagent_container/food/drinks/coffee{ - pixel_x = -7; - pixel_y = -2 - }, -/obj/item/weapon/pole/fancy_cane{ - pixel_x = 5 - }, -/turf/open/floor/wood/ship, -/area/almayer/command/corporateliason) +/area/almayer/maint/hull/lower/l_m_s) "igr" = ( /obj/effect/decal/warning_stripes{ icon_state = "SE-out" }, -/turf/open/floor/almayer/no_build{ - icon_state = "tcomms" - }, +/turf/open/floor/almayer/aicore/no_build/ai_floor2, /area/almayer/command/airoom) -"igt" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 +"igs" = ( +/obj/structure/surface/table/almayer, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/structure/machinery/alarm/almayer{ + dir = 1 }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 +/turf/open/floor/almayer/cargo, +/area/almayer/engineering/lower/engine_core) +"igw" = ( +/obj/structure/sign/poster/ad{ + pixel_x = 30 }, -/turf/open/floor/almayer{ - icon_state = "red" +/obj/structure/closet, +/obj/item/clothing/mask/cigarette/weed, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_m_s) +"igS" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SE-out" }, -/area/almayer/shipboard/brig/main_office) -"ihn" = ( -/obj/structure/surface/table/almayer, -/obj/item/reagent_container/food/drinks/cans/souto/blue{ - pixel_x = 2; - pixel_y = 3 +/obj/structure/machinery/camera/autoname/almayer{ + dir = 4; + name = "ship-grade camera" }, +/obj/structure/closet/emcloset, /turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_s) -"ihw" = ( -/obj/structure/machinery/cm_vending/sorted/medical, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_corner" +/area/almayer/maint/hull/upper/p_bow) +"iho" = ( +/obj/structure/machinery/door/airlock/almayer/maint{ + dir = 1 + }, +/obj/structure/machinery/door/poddoor/almayer/open{ + id = "Hangar Lockdown"; + name = "\improper Hangar Lockdown Blast Door" }, +/turf/open/floor/almayer/test_floor4, +/area/almayer/maint/lower/constr) +"ihw" = ( +/obj/structure/machinery/cm_vending/sorted/medical/blood, +/turf/open/floor/almayer/sterile_green_corner/north, /area/almayer/medical/lower_medical_medbay) +"ihI" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/port_midship_hallway) "ihM" = ( /obj/structure/machinery/cm_vending/clothing/marine/delta{ density = 0; @@ -41793,48 +29143,25 @@ /obj/structure/sign/safety/cryo{ pixel_x = 32 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/delta) +"ihW" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/obj/structure/closet/firecloset, +/turf/open/floor/almayer/greencorner, +/area/almayer/hallways/lower/starboard_fore_hallway) "ihX" = ( /obj/structure/machinery/status_display{ pixel_y = -30 }, -/turf/open/floor/almayer{ - icon_state = "red" - }, +/turf/open/floor/almayer/red, /area/almayer/command/lifeboat) "ihY" = ( /obj/structure/machinery/door/airlock/almayer/marine/bravo/spec, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/squads/bravo) -"iid" = ( -/obj/structure/machinery/door/airlock/almayer/maint{ - access_modified = 1; - dir = 2; - req_one_access = null; - req_one_access_txt = "19;34;30" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hull/upper_hull/u_m_p) -"iii" = ( -/obj/structure/sign/safety/ammunition{ - pixel_x = 15; - pixel_y = -32 - }, -/obj/structure/sign/safety/hazard{ - pixel_y = -32 - }, -/obj/structure/closet/secure_closet/guncabinet/red/armory_shotgun, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, -/area/almayer/squads/req) "iit" = ( /obj/effect/decal/warning_stripes{ icon_state = "W"; @@ -41849,88 +29176,46 @@ pixel_x = 1; pixel_y = 1 }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/medical/hydroponics) -"iiz" = ( -/obj/structure/surface/rack, -/obj/item/reagent_container/food/drinks/bottle/sake{ - pixel_x = 5; - pixel_y = 5 - }, -/obj/item/reagent_container/food/drinks/bottle/sake{ - pixel_x = 5; - pixel_y = 5 +"iiU" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" }, -/obj/item/reagent_container/food/drinks/bottle/sake, -/obj/item/reagent_container/food/drinks/bottle/sake{ - pixel_x = -4 +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" }, -/obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 10 }, -/area/almayer/command/corporateliason) -"iiC" = ( -/obj/structure/sign/safety/maint{ - pixel_x = 8; +/obj/structure/sign/safety/restrictedarea{ pixel_y = 32 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "blue" - }, -/area/almayer/hallways/aft_hallway) -"iiP" = ( -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_s) +/turf/open/floor/almayer/silver/west, +/area/almayer/hallways/upper/fore_hallway) "iiZ" = ( /obj/structure/machinery/cm_vending/sorted/marine_food, -/turf/open/floor/almayer{ - icon_state = "bluefull" - }, +/turf/open/floor/almayer/bluefull, /area/almayer/command/cichallway) -"ije" = ( -/obj/item/tool/weldingtool, -/obj/structure/surface/rack, -/turf/open/floor/almayer{ - icon_state = "red" - }, -/area/almayer/hull/upper_hull/u_a_p) -"ijn" = ( -/obj/structure/surface/rack, -/obj/item/reagent_container/food/snacks/monkeycube/wrapped/farwacube{ - pixel_x = 4; - pixel_y = 4 - }, -/obj/item/reagent_container/food/snacks/monkeycube/wrapped/neaeracube{ - pixel_x = -4; - pixel_y = 4 - }, -/obj/item/reagent_container/food/snacks/monkeycube/wrapped/stokcube{ - pixel_x = -4; - pixel_y = -4 - }, -/obj/item/reagent_container/food/snacks/monkeycube/wrapped/yirencube{ - pixel_x = 4; - pixel_y = -4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/command/corporateliason) -"ijp" = ( -/obj/structure/surface/rack, -/obj/item/storage/toolbox/mechanical, -/obj/effect/spawner/random/tool, -/turf/open/floor/almayer{ - icon_state = "plate" +"ijd" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer/mono, +/area/almayer/hallways/upper/midship_hallway) +"ijf" = ( +/obj/structure/surface/table/almayer, +/obj/item/cell/crap, +/obj/item/tool/crowbar, +/obj/structure/machinery/cell_charger, +/turf/open/floor/almayer/plate, +/area/almayer/engineering/lower/workshop) +"ijr" = ( +/obj/structure/pipes/vents/scrubber{ + dir = 4 }, -/area/almayer/hull/lower_hull/l_f_s) +/turf/open/floor/almayer/redfull, +/area/almayer/living/briefing) "ijQ" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/door_control{ @@ -41944,53 +29229,61 @@ }, /obj/structure/transmitter/rotary{ name = "Senior Enlisted Advisor Office Telephone"; - phone_category = "Almayer"; + phone_category = "Offices"; phone_id = "Senior Enlisted Advisor's Office"; pixel_x = -3 }, /turf/open/floor/wood/ship, /area/almayer/shipboard/sea_office) -"ijU" = ( -/obj/item/tool/wet_sign, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_m_s) -"ikM" = ( -/obj/structure/surface/table/almayer, -/obj/structure/machinery/computer/cameras/almayer_network, -/obj/structure/machinery/computer/secure_data{ - pixel_x = 17 +"ikl" = ( +/turf/open/floor/almayer/cargo_arrow, +/area/almayer/hallways/lower/vehiclehangar) +"iks" = ( +/obj/structure/pipes/binary/pump/high_power/on{ + dir = 1 }, -/obj/structure/machinery/computer/card{ - pixel_x = -16 +/turf/open/floor/almayer/orange, +/area/almayer/engineering/lower) +"ikv" = ( +/obj/structure/pipes/standard/simple/visible{ + dir = 4 }, -/obj/structure/machinery/light{ - dir = 1 +/obj/structure/machinery/camera/autoname/almayer{ + name = "ship-grade camera" }, -/obj/structure/sign/safety/terminal{ - pixel_x = 8; - pixel_y = 32 +/turf/open/floor/almayer/orange/north, +/area/almayer/engineering/lower) +"ikA" = ( +/obj/effect/landmark/yautja_teleport, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/s_bow) +"ikQ" = ( +/obj/structure/surface/table/woodentable/fancy, +/obj/item/tool/stamp/hop{ + name = "Commanding Officer's rubber stamp"; + pixel_x = -5; + pixel_y = 9 }, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/item/paper_bin/uscm{ + pixel_x = 7; + pixel_y = 6 }, -/area/almayer/shipboard/brig/main_office) -"ils" = ( -/obj/structure/window/framed/almayer/hull, -/turf/open/floor/plating, -/area/almayer/hull/upper_hull/u_f_p) -"ilv" = ( -/obj/structure/surface/table/almayer, -/obj/item/folder/black_random{ - pixel_x = 3; +/obj/item/tool/pen/red/clicky{ + pixel_x = -6; pixel_y = 3 }, -/obj/item/tool/stamp{ - name = "Corporate Liaison's stamp"; - pixel_x = -8; - pixel_y = 6 +/obj/item/tool/pen/blue/clicky{ + pixel_x = -6; + pixel_y = -3 }, /turf/open/floor/wood/ship, -/area/almayer/command/corporateliason) +/area/almayer/living/commandbunks) +"ikT" = ( +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_a_s) +"ilq" = ( +/turf/open/floor/almayer/red/east, +/area/almayer/hallways/upper/starboard) "ily" = ( /obj/structure/machinery/light, /turf/open/floor/almayer, @@ -42005,9 +29298,7 @@ /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) "ilJ" = ( /obj/structure/bed/chair, @@ -42016,53 +29307,51 @@ }, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/south1) -"ilZ" = ( -/obj/effect/spawner/random/toolbox, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_a_s) +"iml" = ( +/obj/structure/pipes/vents/pump, +/turf/open/floor/almayer/plate, +/area/almayer/maint/upper/u_a_s) "imo" = ( /obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/medical/lower_medical_lobby) "imp" = ( /obj/structure/filingcabinet/filingcabinet, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/west, /area/almayer/medical/morgue) +"imt" = ( +/obj/structure/reagent_dispensers/water_cooler/stacks{ + density = 0; + pixel_y = 17 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_f_p) "imy" = ( /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer, /area/almayer/living/offices/flight) -"imW" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 10 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/command/combat_correspondent) -"ina" = ( -/obj/structure/surface/table/almayer, -/obj/structure/machinery/computer/emails{ - dir = 4 +"imS" = ( +/obj/effect/step_trigger/clone_cleaner, +/obj/structure/machinery/door/poddoor/shutters/almayer{ + id = "ARES StairsUpper"; + name = "\improper ARES Core Shutters"; + plane = -7 }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/structure/disposalpipe/up/almayer{ + id = "ares_vault_in"; + name = "aicore"; + dir = 2 }, -/area/almayer/hull/upper_hull/u_m_s) +/obj/structure/machinery/door/poddoor/almayer/blended/ai_lockdown, +/turf/open/floor/almayer/no_build/test_floor4, +/area/almayer/command/airoom) "inh" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 8 }, /obj/structure/disposalpipe/junction{ - dir = 1 + dir = 4; + icon_state = "pipe-y" }, /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/brig/cic_hallway) @@ -42079,44 +29368,21 @@ }, /turf/open/floor/plating, /area/almayer/engineering/upper_engineering) -"inC" = ( -/obj/structure/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_f_p) -"inG" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 4 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/shipboard/brig/cells) "inL" = ( /obj/effect/decal/warning_stripes{ icon_state = "W"; pixel_x = -1 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/west, /area/almayer/medical/medical_science) -"inN" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer, -/area/almayer/shipboard/brig/main_office) -"ioj" = ( -/obj/structure/largecrate/random/barrel/green, -/turf/open/floor/almayer{ - icon_state = "plate" +"ios" = ( +/obj/structure/surface/table/reinforced/almayer_B, +/obj/item/paper_bin/uscm{ + pixel_y = 6 }, -/area/almayer/hull/lower_hull/l_f_p) +/obj/item/tool/pen, +/turf/open/floor/almayer/no_build/plating, +/area/almayer/command/airoom) "iow" = ( /obj/structure/machinery/cm_vending/sorted/attachments/squad{ req_access = null; @@ -42124,19 +29390,37 @@ req_one_access_txt = "15;16;21"; vend_y_offset = 0 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/alpha_bravo_shared) +"ioH" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/turf/open/floor/almayer/red/northwest, +/area/almayer/hallways/upper/starboard) +"ioM" = ( +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_f_p) +"ioP" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/obj/structure/sign/safety/hazard{ + pixel_x = -17; + pixel_y = 7 + }, +/turf/open/floor/almayer/plating/northeast, +/area/almayer/shipboard/stern_point_defense) "ioU" = ( /turf/closed/wall/almayer, /area/almayer/command/securestorage) -"ioX" = ( -/turf/open/floor/almayer{ - dir = 6; - icon_state = "blue" +"ioV" = ( +/obj/structure/machinery/power/apc/almayer, +/obj/structure/sign/safety/rewire{ + pixel_y = -38 }, -/area/almayer/hallways/aft_hallway) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/general_equipment) "ipa" = ( /obj/effect/decal/cleanable/generic, /obj/effect/decal/warning_stripes{ @@ -42152,25 +29436,34 @@ }, /turf/open/floor/plating, /area/almayer/living/port_emb) -"ipD" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 10 +"ipk" = ( +/obj/structure/stairs/perspective{ + icon_state = "p_stair_full" }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_s) +/turf/open/floor/almayer, +/area/almayer/maint/hull/lower/l_f_s) +"ipn" = ( +/obj/structure/sign/safety/water{ + pixel_x = 8; + pixel_y = -32 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_m_s) +"ipB" = ( +/obj/structure/surface/rack, +/obj/item/tool/kitchen/rollingpin, +/obj/item/tool/hatchet, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/p_bow) "ipE" = ( /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "orangefull" - }, +/turf/open/floor/almayer/orangefull, /area/almayer/squads/alpha_bravo_shared) "ipK" = ( /obj/effect/step_trigger/message/memorial, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/starboard_garden) "ipQ" = ( /obj/structure/surface/rack, @@ -42188,34 +29481,19 @@ name = "General Listening Channel"; pixel_x = -29 }, -/turf/open/floor/almayer{ - icon_state = "sterile_green" - }, +/turf/open/floor/almayer/sterile_green, /area/almayer/medical/hydroponics) -"ipT" = ( -/obj/structure/surface/rack, -/obj/effect/spawner/random/toolbox, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_p) "iqd" = ( /obj/structure/bed/chair/office/dark{ dir = 8 }, /turf/open/floor/almayer, /area/almayer/command/computerlab) -"iqn" = ( -/obj/structure/pipes/standard/manifold/hidden/supply, -/turf/open/floor/almayer, -/area/almayer/shipboard/brig/main_office) "iqo" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22" }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "green" - }, +/turf/open/floor/almayer/green/southwest, /area/almayer/squads/req) "iqp" = ( /obj/structure/machinery/door/airlock/almayer/maint{ @@ -42223,55 +29501,52 @@ req_one_access = null; req_one_access_txt = "37" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/living/auxiliary_officer_office) -"iqx" = ( -/obj/structure/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_f_p) "iqH" = ( /obj/item/trash/chips{ pixel_x = 9; pixel_y = 6 }, /obj/item/trash/cheesie, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/east, /area/almayer/engineering/upper_engineering/port) -"irn" = ( -/obj/structure/largecrate/random/case/double, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_a_s) +"iqR" = ( +/obj/structure/sign/safety/cryo{ + pixel_x = -16 + }, +/obj/structure/machinery/cryopod, +/turf/open/floor/almayer/cargo, +/area/almayer/shipboard/brig/cryo) "irr" = ( -/obj/structure/largecrate/random/case/double, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_p) +/obj/structure/stairs{ + dir = 1; + icon_state = "ramptop" + }, +/obj/effect/projector{ + name = "Almayer_AresUp2"; + vector_x = -102; + vector_y = 61 + }, +/turf/open/floor/almayer/aicore/no_build, +/area/almayer/command/airoom) "iry" = ( /obj/structure/platform{ dir = 8 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/almayer/red/west, /area/almayer/lifeboat_pumps/south2) "irJ" = ( -/obj/structure/machinery/firealarm{ - pixel_y = 28 +/obj/item/tool/wirecutters{ + pixel_y = -7 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" +/obj/structure/sign/poster{ + desc = "You are becoming hysterical."; + icon_state = "poster11"; + pixel_y = 30 }, -/area/almayer/shipboard/brig/general_equipment) +/turf/open/floor/almayer, +/area/almayer/hallways/lower/repair_bay) "irS" = ( /obj/effect/decal/cleanable/blood/oil, /obj/structure/cable/heavyduty{ @@ -42294,107 +29569,53 @@ icon_state = "E"; pixel_x = 1 }, -/turf/open/floor/almayer{ - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side, /area/almayer/medical/medical_science) -"isu" = ( -/obj/structure/machinery/light{ - dir = 4 - }, -/obj/item/bedsheet/hop{ - pixel_y = 0 - }, -/obj/structure/bed{ - pixel_y = 0 - }, -/turf/open/floor/wood/ship, -/area/almayer/living/commandbunks) -"isC" = ( -/obj/effect/projector{ - name = "Almayer_AresDown"; - vector_x = 97; - vector_y = -65 - }, -/obj/structure/stairs{ - dir = 1; - icon_state = "ramptop" - }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, -/area/almayer/command/airoom) -"isH" = ( -/obj/structure/reagent_dispensers/water_cooler/stacks{ - density = 0; - pixel_y = 17 - }, -/obj/structure/pipes/standard/manifold/hidden/supply{ +"ish" = ( +/turf/open/floor/almayer/orange/east, +/area/almayer/engineering/lower/workshop) +"iso" = ( +/turf/open/floor/almayer/orange/northwest, +/area/almayer/hallways/upper/midship_hallway) +"isq" = ( +/obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" +/obj/structure/largecrate/random/secure, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_m_p) +"isI" = ( +/obj/structure/sign/nosmoking_2{ + pixel_x = 32 }, -/area/almayer/shipboard/brig/general_equipment) +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 + }, +/turf/open/floor/almayer/test_floor4, +/area/almayer/lifeboat_pumps/north1) "isN" = ( /obj/structure/sink{ dir = 8; pixel_x = -12; pixel_y = 2 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/west, /area/almayer/medical/morgue) -"isS" = ( -/obj/item/stack/sheet/cardboard{ - amount = 50 - }, -/obj/structure/surface/rack, -/obj/item/packageWrap, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "green" - }, -/area/almayer/squads/req) -"isW" = ( -/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ - pixel_y = 25 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "bluecorner" +"itg" = ( +/obj/structure/pipes/standard/simple/hidden/supply/no_boom{ + dir = 4 }, -/area/almayer/hallways/aft_hallway) -"itf" = ( +/turf/open/floor/almayer/aicore/no_build, +/area/almayer/command/airoom) +"ito" = ( /obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, -/obj/structure/machinery/door_control{ - id = "ARES Interior"; - indestructible = 1; - name = "ARES Chamber Lockdown"; - pixel_x = -24; - pixel_y = 8; - req_one_access_txt = "90;91;92" - }, -/obj/structure/machinery/door/poddoor/railing{ - closed_layer = 4; - density = 0; - id = "ARES Railing"; - layer = 2.1; - open_layer = 2.1; - unacidable = 0; - unslashable = 0 + icon_state = "W" }, -/turf/open/floor/almayer/no_build{ - dir = 8; - icon_state = "silver" +/obj/structure/machinery/status_display{ + pixel_x = -32 }, -/area/almayer/command/airoom) +/turf/open/floor/almayer/red/east, +/area/almayer/hallways/upper/starboard) "itR" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 1 @@ -42403,101 +29624,69 @@ /area/almayer/lifeboat_pumps/south2) "itX" = ( /obj/structure/machinery/vending/coffee, -/turf/open/floor/almayer{ - icon_state = "bluefull" - }, +/turf/open/floor/almayer/bluefull, /area/almayer/command/cichallway) "iub" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/almayer/red/southeast, /area/almayer/command/lifeboat) +"iuf" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/obj/structure/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/p_bow) "iun" = ( /obj/effect/spawner/random/tool, /turf/open/floor/plating/plating_catwalk, /area/almayer/lifeboat_pumps/south1) +"iup" = ( +/obj/effect/step_trigger/clone_cleaner, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/upper/port) "iur" = ( /obj/structure/machinery/cm_vending/sorted/medical/wall_med{ pixel_y = 25 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "silvercorner" - }, +/turf/open/floor/almayer/silvercorner/east, /area/almayer/command/cichallway) -"iuu" = ( -/obj/structure/surface/table/almayer, -/obj/item/clothing/head/hardhat/orange{ - pixel_x = -9; - pixel_y = 16 - }, -/obj/item/clothing/suit/storage/hazardvest/blue{ - pixel_x = -7; - pixel_y = -4 - }, -/obj/item/clothing/head/hardhat{ - pixel_x = 10; - pixel_y = 1 - }, -/obj/item/clothing/suit/storage/hazardvest{ - pixel_x = 1 - }, -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_f_p) -"iuw" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "orange" - }, -/area/almayer/engineering/upper_engineering/port) "iuz" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/warhead, -/turf/open/floor/almayer{ - icon_state = "red" - }, +/turf/open/floor/almayer/red, /area/almayer/shipboard/weapon_room) "iuE" = ( /obj/structure/machinery/vending/coffee, /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/north, /area/almayer/shipboard/brig/cic_hallway) -"iuT" = ( -/obj/structure/closet/emcloset, -/obj/structure/machinery/camera/autoname/almayer{ - dir = 4; - name = "ship-grade camera" - }, -/turf/open/floor/almayer{ - icon_state = "cargo" +"iuG" = ( +/obj/structure/surface/table/almayer, +/obj/structure/machinery/computer/emails, +/turf/open/floor/wood/ship, +/area/almayer/command/corporateliaison) +"iuI" = ( +/obj/structure/sign/safety/maint{ + pixel_x = 32 }, -/area/almayer/hull/upper_hull/u_f_s) +/turf/open/floor/plating, +/area/almayer/maint/lower/constr) "ivf" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/device/camera, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/bridgebunks) "ivg" = ( /obj/structure/janitorialcart, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/northeast, /area/almayer/hallways/hangar) "ivs" = ( /obj/structure/disposalpipe/segment{ @@ -42505,34 +29694,37 @@ }, /turf/open/floor/almayer, /area/almayer/squads/charlie_delta_shared) +"ivu" = ( +/obj/structure/largecrate/random/barrel/red, +/turf/open/floor/almayer, +/area/almayer/maint/hull/upper/u_f_s) "ivz" = ( /obj/structure/closet, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/port_emb) -"ivB" = ( -/obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +"ivL" = ( +/obj/structure/platform{ + dir = 8 }, -/area/almayer/hallways/port_hallway) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_a_p) "ivM" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/delta) -"iwh" = ( -/obj/structure/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/almayer{ - icon_state = "plate" +"ivS" = ( +/obj/structure/machinery/suit_storage_unit/carbon_unit, +/obj/structure/machinery/light, +/turf/open/floor/almayer/plate, +/area/almayer/engineering/lower) +"iwf" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 10 }, -/area/almayer/hull/upper_hull/u_a_p) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/engineering/lower) "iwB" = ( /obj/structure/machinery/washing_machine, /obj/structure/machinery/washing_machine{ @@ -42542,20 +29734,15 @@ /obj/structure/sign/safety/waterhazard{ pixel_x = -17 }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/engineering/laundry) "iwI" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer, /obj/structure/machinery/door/airlock/almayer/generic{ access_modified = 1; name = "Storage"; req_one_access_txt = "19;21" }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/squads/req) "iwJ" = ( /obj/effect/decal/warning_stripes{ @@ -42569,49 +29756,53 @@ /obj/structure/pipes/standard/simple/hidden/supply/no_boom{ dir = 4 }, -/turf/open/floor/almayer/research/containment/entrance{ +/turf/open/floor/almayer/research/containment/entrance/west, +/area/almayer/medical/containment/cell) +"iwV" = ( +/obj/structure/window/framed/almayer, +/obj/structure/machinery/door/poddoor/shutters/almayer{ + dir = 8; + id = "bot_armory"; + name = "\improper Armory Shutters" + }, +/obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 8 }, -/area/almayer/medical/containment/cell) +/turf/open/floor/plating, +/area/almayer/shipboard/brig/armory) "iwW" = ( /obj/structure/bed/chair/comfy/beige, /turf/open/floor/carpet, /area/almayer/command/cichallway) +"iwZ" = ( +/obj/structure/surface/table/almayer, +/obj/item/storage/fancy/cigarettes/lucky_strikes, +/obj/item/packageWrap, +/turf/open/floor/almayer/green/northwest, +/area/almayer/squads/req) "ixj" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/computer/crew/alt, -/turf/open/floor/almayer{ - icon_state = "sterile_green" - }, +/turf/open/floor/almayer/sterile_green, /area/almayer/medical/lockerroom) +"ixu" = ( +/obj/structure/largecrate/random/case{ + layer = 2.98 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_a_s) "ixv" = ( /obj/structure/bed/chair/comfy/blue{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/command/cic) -"ixC" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/stern_hallway) "ixD" = ( /obj/structure/machinery/light, /obj/effect/decal/warning_stripes{ icon_state = "SE-out" }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/delta) "ixN" = ( /obj/structure/largecrate, @@ -42619,16 +29810,8 @@ pixel_x = -3; pixel_y = 10 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/squads/req) -"ixP" = ( -/obj/structure/closet/firecloset, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_p) "ixQ" = ( /obj/effect/decal/warning_stripes{ icon_state = "SE-out"; @@ -42636,40 +29819,29 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/req) -"iyq" = ( -/obj/structure/machinery/door/poddoor/shutters/almayer/open{ - dir = 2; - id = "Warden Office Shutters"; - name = "\improper Privacy Shutters" - }, -/obj/structure/disposalpipe/segment, -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/structure/machinery/door/airlock/almayer/security/glass/reinforced{ - dir = 1; - name = "\improper Warden Office" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/shipboard/brig/main_office) -"iyH" = ( -/obj/structure/surface/table/reinforced/almayer_B{ - climbable = 0; - desc = "A square metal surface resting on its fat metal bottom. You can't flip something that doesn't have legs. This one has a metal rail running above it, preventing something large passing over. Like you."; - indestructible = 1; - unacidable = 1; - unslashable = 1 +"ixT" = ( +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 1 }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" +/turf/open/floor/almayer/silver, +/area/almayer/hallways/lower/repair_bay) +"iyC" = ( +/obj/structure/pipes/standard/manifold/hidden/supply, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/port_aft_hallway) +"iyE" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 }, -/area/almayer/command/airoom) -"iyQ" = ( -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_a_s) +"iyF" = ( +/obj/structure/pipes/standard/simple/visible{ + dir = 9 }, -/area/almayer/hull/lower_hull/l_f_s) +/turf/open/floor/almayer/orange/north, +/area/almayer/engineering/lower) "iyS" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -42678,63 +29850,30 @@ dir = 1; name = "ship-grade camera" }, -/turf/open/floor/almayer{ - icon_state = "blue" - }, +/turf/open/floor/almayer/blue, /area/almayer/squads/delta) +"izf" = ( +/obj/structure/disposalpipe/up/almayer{ + dir = 4; + id = "ares_vault_out"; + name = "aicore" + }, +/turf/closed/wall/almayer/aicore/hull, +/area/almayer/command/airoom) "izk" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; pixel_y = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/offices) -"izr" = ( -/obj/structure/sign/poster/propaganda{ - pixel_x = -27 - }, -/obj/structure/bed/chair/comfy/alpha{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/living/briefing) -"izx" = ( -/obj/structure/reagent_dispensers/water_cooler/stacks{ - density = 0; - pixel_y = 17 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_p) -"izG" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "W"; - pixel_x = -1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/squads/alpha) -"izU" = ( -/obj/structure/largecrate/random/case/small, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_s) "izY" = ( /obj/structure/machinery/autodoc_console, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/west, /area/almayer/medical/lower_medical_medbay) +"iAg" = ( +/turf/open/floor/almayer/redcorner/east, +/area/almayer/shipboard/brig/mp_bunks) "iAw" = ( /obj/item/tool/warning_cone{ pixel_x = -12 @@ -42751,69 +29890,44 @@ icon_state = "SW-out" }, /obj/structure/pipes/standard/simple/hidden/supply/no_boom, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/southwest, /area/almayer/medical/containment) -"iAB" = ( -/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ - pixel_y = -25 - }, -/turf/open/floor/almayer{ - icon_state = "orange" - }, -/area/almayer/hallways/stern_hallway) -"iAT" = ( -/obj/structure/sign/safety/south{ - pixel_x = -17; - pixel_y = 8 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "blue" - }, -/area/almayer/hallways/port_hallway) -"iBt" = ( -/turf/open/floor/plating, -/area/almayer/hull/upper_hull/u_m_p) -"iBE" = ( -/obj/effect/landmark/yautja_teleport, -/turf/open/floor/almayer{ - icon_state = "plate" +"iAE" = ( +/obj/structure/pipes/vents/pump{ + dir = 1 }, -/area/almayer/hull/lower_hull/l_f_s) -"iBG" = ( -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12 +/turf/open/floor/almayer/plate, +/area/almayer/engineering/lower/engine_core) +"iAI" = ( +/obj/structure/machinery/portable_atmospherics/hydroponics, +/turf/open/floor/almayer/plate, +/area/almayer/maint/upper/u_a_s) +"iBl" = ( +/obj/structure/machinery/power/apc/almayer{ + dir = 4 }, -/obj/structure/reagent_dispensers/fueltank{ - anchored = 1 +/obj/structure/sign/safety/rewire{ + pixel_x = 7; + pixel_y = -30 }, -/turf/open/floor/almayer{ - icon_state = "plate" +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/cells) +"iBn" = ( +/turf/closed/wall/almayer/aicore/white/hull, +/area/space) +"iBu" = ( +/obj/structure/sign/safety/storage{ + pixel_x = -17 }, -/area/almayer/hull/lower_hull/l_m_p) +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/p_bow) "iBY" = ( /obj/structure/machinery/vending/snack, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/southeast, /area/almayer/command/cichallway) -"iCe" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/obj/structure/machinery/status_display{ - pixel_x = 32 - }, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "red" - }, -/area/almayer/hallways/aft_hallway) +"iCg" = ( +/turf/open/floor/almayer/silvercorner/west, +/area/almayer/hallways/upper/midship_hallway) "iCu" = ( /obj/structure/machinery/door/poddoor/almayer/open{ dir = 4; @@ -42830,18 +29944,14 @@ dir = 1; name = "\improper Combat Information Center" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/command/cichallway) -"iCz" = ( -/obj/structure/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" +"iCD" = ( +/obj/structure/bed/chair/comfy/orange{ + dir = 8 }, -/area/almayer/hull/upper_hull/u_f_s) +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_a_p) "iCF" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -42849,54 +29959,39 @@ /obj/structure/bed/chair/office/dark{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "green" - }, +/turf/open/floor/almayer/green/southeast, /area/almayer/living/offices) -"iDd" = ( -/obj/structure/machinery/door/poddoor/railing{ - id = "vehicle_elevator_railing_aux" - }, -/turf/open/floor/almayer, -/area/almayer/hallways/vehiclehangar) -"iDm" = ( -/obj/structure/machinery/light/small{ - dir = 1 +"iCT" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_a_s) -"iDN" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 1 }, -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/starboard_hallway) -"iDT" = ( -/obj/structure/surface/table/almayer, -/obj/item/reagent_container/spray/cleaner{ - pixel_x = 7; - pixel_y = 14 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_f_s) -"iEb" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_hallway) +/turf/open/floor/almayer, +/area/almayer/hallways/upper/midship_hallway) +"iDa" = ( +/obj/structure/largecrate/supply/supplies/tables_racks, +/turf/open/floor/almayer/red/southwest, +/area/almayer/maint/upper/u_a_p) +"iDk" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_m_p) +"iDs" = ( +/obj/structure/largecrate/random/barrel/red, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_a_s) +"iDK" = ( +/obj/structure/blocker/fuelpump, +/turf/open/floor/almayer/mono, +/area/almayer/lifeboat_pumps/north2) +"iEa" = ( +/obj/structure/machinery/light/small, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/p_bow) "iEg" = ( -/turf/open/floor/almayer{ - dir = 9; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/northwest, /area/almayer/living/auxiliary_officer_office) "iEr" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -42904,53 +29999,71 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/engineering/upper_engineering/starboard) -"iEs" = ( -/obj/structure/machinery/door/airlock/almayer/maint{ +"iEw" = ( +/obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/area/almayer/hull/upper_hull/u_a_p) -"iET" = ( -/obj/structure/machinery/light{ - dir = 1 +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer/plate, +/area/almayer/engineering/lower/engine_core) +"iEx" = ( +/obj/structure/reagent_dispensers/peppertank{ + pixel_y = 26 + }, +/turf/open/floor/almayer/red/north, +/area/almayer/shipboard/brig/processing) +"iEz" = ( +/obj/structure/machinery/light, +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_21"; + pixel_y = 3 }, -/obj/structure/machinery/disposal, -/obj/structure/disposalpipe/trunk, /turf/open/floor/wood/ship, /area/almayer/living/commandbunks) -"iFc" = ( -/obj/structure/pipes/vents/pump{ - dir = 1 +"iEM" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, +/turf/open/floor/almayer/plate, +/area/almayer/hallways/lower/starboard_midship_hallway) +"iFc" = ( +/obj/structure/pipes/vents/pump, /turf/open/floor/wood/ship, /area/almayer/shipboard/brig/cells) -"iFm" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/obj/structure/disposaloutlet, -/obj/structure/disposalpipe/trunk{ - dir = 4 +"iFn" = ( +/turf/open/floor/almayer/bluefull, +/area/almayer/living/pilotbunks) +"iFp" = ( +/obj/effect/projector{ + name = "Almayer_Up1"; + vector_x = -19; + vector_y = 98 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "plating_striped" +/turf/open/floor/almayer/no_build/plate, +/area/almayer/hallways/lower/starboard_midship_hallway) +"iFA" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 1 }, -/area/almayer/hull/lower_hull/l_m_p) -"iFn" = ( -/turf/open/floor/almayer{ - icon_state = "bluefull" +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ + name = "\improper Port Railguns and Viewing Room" }, -/area/almayer/living/pilotbunks) +/obj/structure/disposalpipe/segment, +/turf/open/floor/almayer/test_floor4, +/area/almayer/maint/hull/upper/u_f_p) "iFC" = ( /obj/structure/surface/table/almayer, /obj/effect/landmark/map_item, /obj/item/clothing/ears/earmuffs, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/engineering/ce_room) "iFD" = ( /obj/structure/bed/chair/office/light{ @@ -42965,27 +30078,18 @@ }, /turf/open/floor/wood/ship, /area/almayer/shipboard/sea_office) -"iFG" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/obj/structure/bed/chair/comfy/bravo{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/barricade/deployable{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/living/briefing) "iFH" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 9 }, /turf/open/floor/almayer, /area/almayer/living/offices) +"iFK" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 6 + }, +/turf/open/floor/almayer/red/north, +/area/almayer/shipboard/brig/starboard_hallway) "iFM" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -42994,35 +30098,32 @@ id = "Delta_1"; name = "\improper Bathroom" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/living/port_emb) -"iGg" = ( -/obj/structure/closet/crate/freezer, -/obj/item/reagent_container/food/snacks/tomatomeat, -/obj/item/reagent_container/food/snacks/tomatomeat, -/obj/item/reagent_container/food/snacks/tomatomeat, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_p) +"iFY" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/sign/safety/cryo{ + pixel_x = 36 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/lower/cryo_cells) +"iGc" = ( +/obj/structure/machinery/light/small, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_m_s) +"iGi" = ( +/obj/structure/machinery/status_display{ + pixel_y = 30 + }, +/turf/open/floor/almayer/plate, +/area/almayer/hallways/lower/starboard_fore_hallway) "iGn" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/closet/secure_closet/surgical{ pixel_x = -30 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/west, /area/almayer/medical/operating_room_four) -"iGK" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/obj/structure/largecrate/random/barrel/yellow, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_p) "iGQ" = ( /obj/structure/machinery/landinglight/ds2/delayone{ dir = 8 @@ -43030,57 +30131,39 @@ /obj/structure/platform{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) "iHc" = ( /turf/open/floor/plating/plating_catwalk, /area/almayer/engineering/upper_engineering/notunnel) -"iHF" = ( -/obj/structure/largecrate/random, -/obj/item/reagent_container/food/snacks/cheesecakeslice{ - pixel_y = 8 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "NE-out"; - pixel_x = 1; - pixel_y = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_s) "iHG" = ( /obj/structure/machinery/cryopod{ pixel_y = 6 }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/shipboard/brig/cells) +"iIb" = ( +/obj/structure/machinery/cryopod{ + pixel_y = 6 + }, +/turf/open/floor/almayer/cargo, +/area/almayer/maint/upper/u_m_p) +"iIj" = ( +/obj/structure/stairs/perspective{ + dir = 8; + icon_state = "p_stair_full" + }, +/obj/structure/platform, +/turf/open/floor/almayer/plating/northeast, +/area/almayer/engineering/lower/engine_core) "iIl" = ( /obj/structure/sink{ dir = 8; pixel_x = -12; pixel_y = 2 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/almayer/living/grunt_rnr) -"iIm" = ( -/obj/structure/machinery/door/airlock/almayer/generic{ - dir = 2; - name = "\improper Bathroom" - }, -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/living/commandbunks) "iIP" = ( /obj/structure/toilet{ pixel_y = 16 @@ -43106,24 +30189,22 @@ }, /turf/open/floor/almayer, /area/almayer/squads/bravo) -"iIY" = ( -/obj/structure/closet/emcloset, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_s) -"iJf" = ( +"iIU" = ( +/obj/structure/largecrate/random/barrel/red, +/obj/structure/machinery/light/small, +/turf/open/floor/almayer/plate, +/area/almayer/maint/upper/u_a_s) +"iJs" = ( +/obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_s) +/area/almayer/engineering/upper_engineering) "iJB" = ( /obj/structure/sign/safety/galley{ pixel_x = 8; pixel_y = -32 }, -/turf/open/floor/almayer{ - icon_state = "silver" - }, +/turf/open/floor/almayer/silver, /area/almayer/command/cichallway) "iJS" = ( /obj/structure/machinery/cm_vending/gear/tl{ @@ -43131,24 +30212,24 @@ pixel_x = -32; vend_x_offset = 1 }, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "blue" - }, +/turf/open/floor/almayer/blue/southwest, /area/almayer/squads/delta) +"iJT" = ( +/obj/structure/sign/safety/storage{ + pixel_x = 8; + pixel_y = 32 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_m_p) "iKb" = ( /obj/structure/surface/table/almayer, -/turf/open/floor/almayer{ - icon_state = "orange" - }, +/turf/open/floor/almayer/orange, /area/almayer/hallways/hangar) "iKc" = ( /obj/structure/closet/firecloset, /obj/item/clothing/mask/gas, /obj/item/clothing/mask/gas, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/engineering/upper_engineering/starboard) "iKf" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -43161,10 +30242,11 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/squads/alpha) +"iKy" = ( +/turf/open/floor/almayer/green/west, +/area/almayer/hallways/upper/fore_hallway) "iKD" = ( /obj/structure/surface/table/almayer, /obj/item/clipboard, @@ -43173,42 +30255,30 @@ /turf/open/floor/wood/ship, /area/almayer/engineering/ce_room) "iKI" = ( -/turf/open/floor/almayer{ - icon_state = "red" - }, +/turf/open/floor/almayer/red, /area/almayer/shipboard/starboard_missiles) "iKK" = ( /obj/structure/machinery/camera/autoname/almayer{ dir = 4; name = "ship-grade camera" }, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/almayer/red/northwest, /area/almayer/lifeboat_pumps/south1) "iKM" = ( -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/engineering/port_atmos) -"iKX" = ( -/obj/structure/machinery/disposal, -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/turf/open/floor/almayer{ - icon_state = "redcorner" +"iKV" = ( +/obj/structure/platform{ + dir = 1 }, -/area/almayer/shipboard/brig/general_equipment) +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_a_s) "iKZ" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/east, /area/almayer/engineering/upper_engineering/starboard) "iLd" = ( /obj/structure/stairs/perspective{ @@ -43229,10 +30299,17 @@ /obj/structure/bed/chair/comfy/bravo{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "orangefull" - }, +/turf/open/floor/almayer/orangefull, /area/almayer/living/briefing) +"iLm" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_midship_hallway) "iLq" = ( /obj/structure/pipes/vents/scrubber{ dir = 1 @@ -43252,79 +30329,132 @@ pixel_x = 32; pixel_y = 7 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "sterile_green_corner" - }, +/turf/open/floor/almayer/sterile_green_corner/east, /area/almayer/medical/lower_medical_lobby) -"iLO" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "silver" +"iLG" = ( +/obj/structure/disposalpipe/junction{ + dir = 1; + icon_state = "pipe-j2" }, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/processing) +"iLL" = ( +/turf/open/floor/almayer/blue/west, +/area/almayer/hallways/upper/midship_hallway) +"iLO" = ( +/turf/open/floor/almayer/silver/east, /area/almayer/command/computerlab) "iMm" = ( /turf/open/floor/almayer, /area/almayer/living/grunt_rnr) "iMr" = ( /obj/structure/machinery/cryopod/right, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/squads/bravo) "iMx" = ( /obj/structure/platform{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/almayer/red/north, /area/almayer/lifeboat_pumps/south2) +"iMD" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SE-out" + }, +/turf/open/floor/almayer, +/area/almayer/hallways/upper/midship_hallway) "iMI" = ( -/obj/structure/machinery/cm_vending/sorted/medical/blood, /obj/structure/machinery/camera/autoname/almayer{ name = "ship-grade camera" }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_side" - }, +/obj/structure/machinery/cm_vending/sorted/medical, +/obj/structure/medical_supply_link, +/turf/open/floor/almayer/sterile_green_side/north, /area/almayer/medical/lower_medical_medbay) -"iNZ" = ( -/obj/structure/machinery/light{ - dir = 8 +"iNh" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 }, -/obj/structure/bed/chair{ - dir = 16 +/obj/structure/machinery/door/airlock/multi_tile/almayer/secdoor/glass/reinforced{ + name = "\improper Brig Cells" }, -/turf/open/floor/almayer{ - icon_state = "plate" +/turf/open/floor/almayer/test_floor4, +/area/almayer/shipboard/brig/starboard_hallway) +"iNk" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/area/almayer/hull/lower_hull/l_f_s) -"iOh" = ( -/obj/structure/machinery/light/small, +/obj/structure/machinery/power/apc/almayer, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_f_s) +"iNH" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/sign/safety/maint{ + pixel_x = -17; + pixel_y = -8 + }, +/obj/structure/sign/safety/storage{ + pixel_x = -17; + pixel_y = 7 + }, +/turf/open/floor/almayer/redcorner/east, +/area/almayer/hallways/lower/port_fore_hallway) +"iNR" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/turf/open/floor/plating, +/area/almayer/maint/lower/constr) +"iNY" = ( /obj/structure/machinery/status_display{ - pixel_y = -32 + pixel_x = 32; + pixel_y = 16 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/shipboard/brig/armory) +/turf/open/floor/wood/ship, +/area/almayer/living/commandbunks) +"iOo" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 1 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_midship_hallway) "iOD" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" }, /turf/open/floor/almayer, /area/almayer/shipboard/brig/cells) +"iOX" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_f_s) +"iPf" = ( +/obj/structure/largecrate/random/case/double, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_f_s) +"iPq" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_f_s) +"iPt" = ( +/turf/open/floor/almayer/green/southwest, +/area/almayer/hallways/lower/starboard_midship_hallway) "iPv" = ( /obj/structure/bed/chair/comfy, /obj/structure/window/reinforced/ultra, /obj/structure/window/reinforced/ultra{ dir = 8 }, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/southwest, /area/almayer/living/briefing) "iPD" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ @@ -43337,28 +30467,34 @@ icon_state = "SE-out"; pixel_x = 1 }, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/almayer/red/southwest, /area/almayer/lifeboat_pumps/south1) +"iPN" = ( +/obj/structure/surface/table/almayer, +/obj/structure/machinery/computer/station_alert, +/obj/structure/sign/safety/maint{ + pixel_x = 32 + }, +/obj/structure/sign/safety/terminal{ + pixel_x = 8; + pixel_y = 32 + }, +/turf/open/floor/almayer/orange/northeast, +/area/almayer/maint/upper/mess) "iPS" = ( /obj/structure/machinery/cryopod/right, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/squads/alpha) -"iQg" = ( +"iQd" = ( /obj/structure/disposalpipe/segment{ - dir = 4 + dir = 4; + icon_state = "pipe-c" }, /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer{ - allow_construction = 0 - }, -/area/almayer/shipboard/brig/lobby) +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/perma) "iQi" = ( /obj/structure/disposalpipe/junction, /obj/structure/pipes/standard/simple/hidden/supply, @@ -43380,18 +30516,14 @@ pixel_x = 1; pixel_y = 2 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/charlie) "iQj" = ( /obj/structure/ladder{ height = 2; id = "bridge4" }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/command/cichallway) "iQt" = ( /obj/structure/largecrate/random/case/small, @@ -43407,32 +30539,44 @@ pixel_y = 6; serial_number = 12 }, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "emerald" - }, +/turf/open/floor/almayer/emerald/northwest, /area/almayer/living/port_emb) -"iQx" = ( -/obj/structure/machinery/light{ - dir = 1 +"iQB" = ( +/obj/structure/surface/table/almayer, +/obj/structure/machinery/computer/card{ + dir = 4; + layer = 3.2; + pixel_y = 4 }, -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_f_p) -"iRr" = ( /obj/structure/machinery/light{ - dir = 1 + dir = 8 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "green" +/obj/structure/machinery/computer/secure_data{ + dir = 4; + pixel_y = 23; + layer = 2.99 }, -/area/almayer/hallways/port_hallway) -"iRx" = ( -/obj/structure/machinery/light{ - dir = 1 +/turf/open/floor/almayer/red/west, +/area/almayer/shipboard/brig/processing) +"iQJ" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/sign/safety/distribution_pipes{ + pixel_x = 8; + pixel_y = -32 }, /turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_hallway) +/area/almayer/maint/hull/lower/l_f_s) +"iRp" = ( +/obj/structure/window/framed/almayer, +/obj/structure/machinery/door/poddoor/shutters/almayer/open{ + dir = 8; + id = "Interrogation Shutters"; + name = "\improper Privacy Shutters" + }, +/turf/open/floor/plating, +/area/almayer/shipboard/brig/interrogation) "iRy" = ( /obj/structure/pipes/vents/pump/on, /turf/open/floor/almayer, @@ -43449,14 +30593,63 @@ icon_state = "N"; pixel_y = 1 }, -/turf/open/floor/almayer/research/containment/corner_var1{ - dir = 4 - }, +/turf/open/floor/almayer/research/containment/corner_var1/east, /area/almayer/medical/containment/cell) -"iRS" = ( -/obj/item/trash/chips, -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_f_p) +"iSd" = ( +/obj/structure/machinery/light/small{ + dir = 1 + }, +/obj/structure/closet/crate, +/obj/item/ammo_magazine/rifle/l42a/ap{ + current_rounds = 0 + }, +/obj/item/ammo_magazine/rifle/l42a/ap{ + current_rounds = 0 + }, +/obj/item/ammo_magazine/rifle/l42a/ap{ + current_rounds = 0 + }, +/obj/item/ammo_magazine/rifle/l42a/ap{ + current_rounds = 0 + }, +/obj/item/ammo_magazine/rifle/l42a/ap{ + current_rounds = 0 + }, +/obj/item/ammo_magazine/rifle/l42a/ap{ + current_rounds = 0 + }, +/obj/item/ammo_magazine/rifle/l42a/ap{ + current_rounds = 0 + }, +/obj/item/ammo_magazine/rifle/l42a/ap{ + current_rounds = 0 + }, +/obj/item/ammo_magazine/rifle/l42a/ap{ + current_rounds = 0 + }, +/obj/item/ammo_magazine/rifle/l42a/ap{ + current_rounds = 0 + }, +/obj/item/ammo_magazine/rifle/l42a/ap{ + current_rounds = 0 + }, +/obj/item/ammo_magazine/rifle/l42a/ap{ + current_rounds = 0 + }, +/obj/item/ammo_magazine/rifle/l42a/ap{ + current_rounds = 0 + }, +/obj/item/ammo_magazine/rifle/l42a/ap{ + current_rounds = 0 + }, +/obj/item/ammo_magazine/rifle/l42a/ap{ + current_rounds = 0 + }, +/obj/item/ammo_magazine/rifle/l42a/ap{ + current_rounds = 0 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/upper/u_m_s) "iSm" = ( /obj/structure/pipes/vents/pump, /obj/structure/mirror{ @@ -43499,10 +30692,30 @@ /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/living/port_emb) +"iSx" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SE-out"; + pixel_x = 1 + }, +/turf/open/floor/almayer/silvercorner, +/area/almayer/hallways/upper/midship_hallway) +"iSB" = ( +/obj/structure/platform_decoration{ + dir = 8 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_a_s) +"iSV" = ( +/obj/structure/machinery/door/airlock/almayer/maint{ + access_modified = 1; + dir = 1; + req_one_access = null; + req_one_access_txt = "2;7" + }, +/turf/open/floor/almayer/test_floor4, +/area/almayer/maint/hull/upper/u_a_p) "iSZ" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -43514,39 +30727,44 @@ /obj/item/facepaint/black, /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/alpha) -"iTf" = ( -/obj/structure/closet/crate/trashcart, -/obj/item/clothing/gloves/yellow, -/obj/item/device/multitool, -/obj/item/tool/screwdriver{ - icon_state = "screwdriver7" +"iTd" = ( +/obj/structure/machinery/sentry_holder/almayer, +/turf/open/floor/almayer/mono, +/area/almayer/lifeboat_pumps/south2) +"iTe" = ( +/obj/structure/machinery/light{ + dir = 1 }, -/obj/item/tool/crowbar/red, -/obj/item/book/manual/engineering_hacking, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_y = 1 }, -/area/almayer/hull/upper_hull/u_a_p) -"iTw" = ( -/obj/structure/bed/chair/comfy{ - dir = 4 +/turf/open/floor/almayer/red/north, +/area/almayer/command/lifeboat) +"iTl" = ( +/turf/open/floor/almayer/red/southwest, +/area/almayer/shipboard/brig/processing) +"iTq" = ( +/obj/structure/curtain/red, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_a_s) +"iTt" = ( +/obj/structure/largecrate/supply/medicine/medivend{ + pixel_x = 3 }, -/turf/open/floor/almayer{ - icon_state = "bluefull" +/obj/structure/largecrate/random/mini/med{ + density = 1; + pixel_x = 3; + pixel_y = 11 }, -/area/almayer/living/bridgebunks) -"iTz" = ( -/obj/structure/disposalpipe/segment{ +/turf/open/floor/almayer/sterile_green_side/north, +/area/almayer/medical/lower_medical_medbay) +"iTw" = ( +/obj/structure/bed/chair/comfy{ dir = 4 }, -/obj/structure/sign/safety/water{ - pixel_x = 8; - pixel_y = 32 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_p) +/turf/open/floor/almayer/bluefull, +/area/almayer/living/bridgebunks) "iTD" = ( /obj/effect/landmark/start/auxiliary_officer, /turf/open/floor/plating/plating_catwalk, @@ -43557,26 +30775,35 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/brig/cells) -"iTK" = ( +"iTQ" = ( +/obj/structure/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_m_s) +"iTW" = ( /obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" + dir = 4 }, +/obj/structure/machinery/door/firedoor/border_only/almayer, /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "silver" +/obj/structure/machinery/door/airlock/almayer/security/reinforced{ + access_modified = 1; + closeOtherId = "astroladder_n"; + name = "\improper Astronavigational Deck"; + req_access = null; + req_one_access_txt = "3;19" }, -/area/almayer/hallways/aft_hallway) -"iTN" = ( -/obj/item/stool{ - pixel_x = -15; - pixel_y = 6 +/turf/open/floor/almayer/test_floor4, +/area/almayer/shipboard/navigation) +"iUh" = ( +/obj/structure/sign/safety/bulkhead_door{ + pixel_x = -16 }, -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_f_p) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/p_bow) "iUk" = ( /obj/structure/machinery/door/airlock/almayer/marine/charlie{ dir = 1 @@ -43585,10 +30812,14 @@ dir = 2 }, /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/living/briefing) +"iUm" = ( +/obj/structure/closet/emcloset{ + pixel_x = 8 + }, +/turf/open/floor/almayer/orange, +/area/almayer/engineering/lower) "iUo" = ( /obj/structure/sign/safety/terminal{ pixel_x = 7; @@ -43606,76 +30837,89 @@ /obj/item/storage/box/sprays{ pixel_y = -3 }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/medical/hydroponics) -"iUC" = ( -/obj/structure/machinery/faxmachine, -/obj/structure/surface/table/almayer, -/obj/structure/machinery/light/small, -/turf/open/floor/almayer{ - icon_state = "plate" +"iUG" = ( +/obj/structure/closet/secure_closet/surgical{ + pixel_x = -30 }, -/area/almayer/command/combat_correspondent) +/obj/structure/machinery/power/apc/almayer, +/obj/structure/sign/safety/rewire{ + pixel_y = -38 + }, +/turf/open/floor/almayer/sterile_green_corner/west, +/area/almayer/shipboard/brig/medical) "iUW" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, /obj/item/tool/crowbar/red, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/west, /area/almayer/engineering/upper_engineering/starboard) -"iUZ" = ( -/obj/docking_port/stationary/escape_pod/cl, -/turf/open/floor/plating, -/area/almayer/hull/upper_hull/u_m_p) -"iVj" = ( -/obj/structure/surface/table/almayer, -/obj/structure/machinery/prop/almayer/computer/PC{ - dir = 4 +"iUX" = ( +/obj/structure/filingcabinet{ + density = 0; + pixel_x = -8; + pixel_y = 18 }, -/turf/open/floor/almayer, -/area/almayer/squads/req) -"iVo" = ( -/obj/structure/bed/sofa/south/grey/right, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/structure/filingcabinet{ + density = 0; + pixel_x = 8; + pixel_y = 18 }, -/area/almayer/hull/upper_hull/u_f_p) +/obj/item/device/taperecorder, +/turf/open/floor/almayer/plate, +/area/almayer/shipboard/brig/interrogation) "iVy" = ( -/turf/open/floor/almayer{ +/turf/open/floor/almayer/silvercorner/north, +/area/almayer/command/cichallway) +"iVz" = ( +/obj/structure/surface/rack, +/obj/item/tool/wirecutters, +/obj/item/clothing/mask/gas, +/obj/item/clothing/mask/gas, +/turf/open/floor/almayer/plate, +/area/almayer/maint/upper/u_a_s) +"iVD" = ( +/obj/structure/machinery/door/airlock/almayer/security/glass/reinforced{ + closeOtherId = "brigmaint_n"; dir = 1; - icon_state = "silvercorner" + name = "\improper Brig" }, -/area/almayer/command/cichallway) +/obj/structure/machinery/door/poddoor/almayer/open{ + id = "Brig Lockdown Shutters"; + name = "\improper Brig Lockdown Shutter" + }, +/turf/open/floor/almayer/test_floor4, +/area/almayer/maint/hull/upper/s_bow) "iVE" = ( /obj/structure/sign/safety/bathunisex{ pixel_x = 32 }, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/south1) -"iVO" = ( -/obj/structure/surface/table/almayer, -/obj/item/weapon/gun/revolver/m44{ - desc = "A bulky revolver, occasionally carried by assault troops and officers in the Colonial Marines, as well as civilian law enforcement. Fires .44 Magnum rounds. 'J.P' Is engraved into the barrel." - }, -/turf/open/floor/almayer{ - icon_state = "plate" +"iVG" = ( +/obj/structure/machinery/light/small{ + dir = 4 }, -/area/almayer/hull/lower_hull/l_f_p) -"iWb" = ( -/obj/structure/sign/safety/hazard{ - pixel_x = 32; - pixel_y = -8 +/obj/structure/closet/firecloset, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/p_bow) +"iVP" = ( +/obj/structure/sign/safety/restrictedarea{ + pixel_x = -17; + pixel_y = 7 }, -/obj/structure/closet/secure_closet/guncabinet/red/armory_shotgun, -/turf/open/floor/almayer{ - icon_state = "redfull" +/obj/structure/machinery/cm_vending/sorted/marine_food, +/turf/open/floor/almayer/red/southwest, +/area/almayer/shipboard/brig/processing) +"iWa" = ( +/obj/structure/sign/safety/water{ + pixel_x = 8; + pixel_y = 32 }, -/area/almayer/medical/upper_medical) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/stern) "iWc" = ( /obj/structure/surface/table/almayer, /obj/structure/pipes/standard/simple/hidden/supply{ @@ -43686,15 +30930,10 @@ }, /turf/open/floor/almayer, /area/almayer/squads/delta) -"iWd" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 1 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/stern_hallway) +"iWn" = ( +/obj/item/paper/almayer_storage, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/upper/u_a_p) "iWx" = ( /obj/effect/decal/warning_stripes{ icon_state = "SW-out" @@ -43705,68 +30944,64 @@ }, /turf/open/floor/almayer, /area/almayer/hallways/hangar) -"iWE" = ( -/obj/structure/pipes/vents/pump{ - dir = 4 - }, -/obj/structure/bed/chair/comfy/bravo{ - dir = 4 +"iWB" = ( +/obj/structure/sign/safety/distribution_pipes{ + pixel_x = 8; + pixel_y = 32 }, -/obj/structure/barricade/deployable{ +/turf/open/floor/almayer, +/area/almayer/hallways/upper/midship_hallway) +"iWH" = ( +/obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "orangefull" - }, -/area/almayer/living/briefing) -"iWL" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/hallways/vehiclehangar) -"iWN" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "silver" +/obj/item/reagent_container/glass/bucket/mopbucket, +/obj/item/tool/mop{ + pixel_x = -6; + pixel_y = 14 }, -/area/almayer/hallways/aft_hallway) +/obj/structure/janitorialcart, +/turf/open/floor/almayer/plate, +/area/almayer/maint/lower/s_bow) +"iWJ" = ( +/obj/structure/largecrate/random/barrel/red, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/s_bow) +"iWQ" = ( +/obj/effect/landmark/start/researcher, +/obj/effect/landmark/late_join/researcher, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/living/offices) "iWR" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/almayer/engineering/upper_engineering) "iXb" = ( /obj/structure/bed/chair/comfy/delta{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "bluefull" - }, -/area/almayer/living/briefing) -"iXd" = ( -/turf/open/floor/almayer{ - icon_state = "orangefull" - }, +/turf/open/floor/almayer/bluefull, /area/almayer/living/briefing) -"iXt" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" +"iXm" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic, +/obj/structure/machinery/door/poddoor/shutters/almayer/open{ + id = "InnerShutter"; + name = "\improper Saferoom Shutters" }, -/area/almayer/shipboard/brig/processing) -"iXR" = ( -/obj/structure/bed/chair/comfy/alpha{ - dir = 1 +/turf/open/floor/almayer/test_floor4, +/area/almayer/shipboard/panic) +"iXA" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - icon_state = "plate" +/turf/open/floor/almayer, +/area/almayer/engineering/lower/workshop/hangar) +"iXB" = ( +/obj/structure/bed/chair{ + dir = 4 }, -/area/almayer/living/briefing) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_a_p) "iXT" = ( /obj/item/trash/uscm_mre, /turf/open/floor/almayer, @@ -43786,18 +31021,13 @@ /obj/structure/machinery/power/apc/almayer{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "sterile_green_corner" - }, +/turf/open/floor/almayer/sterile_green_corner, /area/almayer/medical/lower_medical_lobby) "iYe" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 10 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/east, /area/almayer/living/auxiliary_officer_office) "iYf" = ( /obj/structure/machinery/cm_vending/clothing/medical_crew{ @@ -43808,65 +31038,27 @@ dir = 8; health = 80 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "cargo_arrow" - }, +/turf/open/floor/almayer/cargo_arrow/north, /area/almayer/medical/hydroponics) -"iYi" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "SW-out" - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_p) -"iYj" = ( -/obj/structure/machinery/firealarm{ - dir = 4; - pixel_x = 24 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" - }, -/area/almayer/hallways/stern_hallway) -"iYp" = ( -/obj/item/paper/almayer_storage, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_a_p) -"iYr" = ( -/obj/structure/machinery/light{ - dir = 4 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "green" - }, -/area/almayer/living/starboard_garden) +"iYm" = ( +/obj/structure/largecrate/random/case/small, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/s_stern) "iYt" = ( /obj/structure/disposalpipe/segment{ dir = 2; icon_state = "pipe-c" }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "green" - }, +/turf/open/floor/almayer/green/east, /area/almayer/squads/req) "iYx" = ( /obj/structure/bed/chair, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/gym) -"iYR" = ( -/obj/structure/closet/secure_closet/bar{ - name = "Success Cabinet"; - req_access_txt = "1" - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/living/captain_mess) +"iZd" = ( +/obj/structure/largecrate/random/barrel/blue, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_m_p) "iZg" = ( /obj/structure/bed/chair/comfy{ dir = 8 @@ -43876,37 +31068,17 @@ }, /turf/open/floor/almayer, /area/almayer/command/lifeboat) -"iZw" = ( -/obj/effect/step_trigger/teleporter_vector{ - name = "Almayer_AresUp"; - vector_x = -97; - vector_y = 65 - }, -/obj/structure/platform{ - dir = 4 - }, -/obj/structure/stairs{ - dir = 1 - }, -/turf/open/floor/almayer/no_build{ - dir = 4; - icon_state = "silver" - }, -/area/almayer/command/airoom) -"iZG" = ( -/obj/structure/window/framed/almayer/hull, -/obj/structure/machinery/door/firedoor/border_only/almayer, -/turf/open/floor/plating, -/area/almayer/shipboard/brig/chief_mp_office) -"iZH" = ( -/obj/structure/sign/safety/distribution_pipes{ - pixel_x = -17 +"iZE" = ( +/obj/structure/machinery/cm_vending/sorted/tech/tool_storage, +/obj/effect/decal/warning_stripes{ + icon_state = "W"; + layer = 2.5 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "emerald" +/obj/effect/decal/warning_stripes{ + icon_state = "S" }, -/area/almayer/hallways/port_hallway) +/turf/open/floor/almayer/plate, +/area/almayer/engineering/lower/workshop/hangar) "iZP" = ( /obj/structure/platform{ dir = 8 @@ -43916,65 +31088,93 @@ dir = 10; layer = 3.51 }, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/almayer/red/southwest, /area/almayer/lifeboat_pumps/north1) "iZU" = ( /obj/effect/decal/cleanable/blood/oil/streak, /obj/structure/disposalpipe/segment, /turf/open/floor/wood/ship, /area/almayer/shipboard/brig/cells) -"iZX" = ( -/obj/structure/surface/rack, -/obj/item/clothing/glasses/meson, -/turf/open/floor/almayer{ - icon_state = "red" +"iZV" = ( +/obj/structure/machinery/door_control/cl/quarter/officedoor{ + pixel_x = 25 }, -/area/almayer/hull/upper_hull/u_a_p) +/turf/open/floor/wood/ship, +/area/almayer/command/corporateliaison) "jac" = ( /obj/structure/disposalpipe/segment{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/req) -"jaj" = ( -/obj/item/ammo_box/magazine/misc/mre/empty{ - pixel_x = 8; - pixel_y = 8 +"jaf" = ( +/obj/structure/bed/chair/comfy/bravo{ + dir = 4 }, -/obj/item/reagent_container/food/drinks/cans/aspen{ - pixel_x = 11; - pixel_y = -3 +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/poster{ + desc = "YOU ALWAYS KNOW A WORKING JOE. YOU ALWAYS KNOW A WORKING JOE. YOU ALWAYS KNOW A WORKING JOE. YOU ALWAYS KNOW A WORKING JOE. YOU ALWAYS KNOW A WORKING JOE."; + icon_state = "poster11"; + name = "YOU ALWAYS KNOW A WORKING JOE."; + pixel_x = -27; + serial_number = 11 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_a_p) -"jaH" = ( -/obj/structure/surface/table/reinforced/almayer_B, -/obj/item/paper_bin/uscm{ - pixel_y = 6 +/turf/open/floor/almayer/plate, +/area/almayer/living/briefing) +"jak" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/obj/item/tool/pen, -/turf/open/floor/almayer/no_build{ - icon_state = "plating" +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 1 }, -/area/almayer/command/airoom) -"jaP" = ( -/obj/structure/surface/table/almayer, -/obj/structure/machinery/computer/cameras/almayer_network{ +/turf/open/floor/almayer, +/area/almayer/hallways/lower/vehiclehangar) +"jao" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/upper/aft_hallway) +"jas" = ( +/obj/structure/pipes/standard/manifold/hidden/supply{ dir = 1 }, -/obj/structure/machinery/light{ - unacidable = 1; - unslashable = 1 +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "red" +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/port_midship_hallway) +"jay" = ( +/obj/structure/surface/rack, +/obj/item/tool/shovel/etool{ + pixel_x = 6 }, -/area/almayer/shipboard/brig/perma) +/obj/item/tool/shovel/etool, +/obj/item/tool/wirecutters, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_a_p) +"jaz" = ( +/obj/structure/surface/table/almayer, +/obj/effect/spawner/random/technology_scanner, +/turf/open/floor/almayer/plate, +/area/almayer/hallways/lower/starboard_umbilical) +"jaI" = ( +/obj/structure/sign/safety/storage{ + pixel_x = 8; + pixel_y = 32 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_f_p) +"jaM" = ( +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 1 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/engineering/lower) "jaR" = ( /obj/structure/largecrate/random/mini/small_case/b{ pixel_x = 8; @@ -43991,27 +31191,8 @@ /obj/item/trash/crushed_cup{ pixel_y = 12 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/squads/req) -"jbb" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12 - }, -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12; - pixel_y = 12 - }, -/obj/structure/sign/safety/water{ - pixel_x = 8; - pixel_y = 32 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_p) "jbq" = ( /obj/structure/window/framed/almayer/hull, /turf/open/floor/plating, @@ -44019,19 +31200,8 @@ "jbt" = ( /obj/structure/surface/table/almayer, /obj/effect/spawner/random/tool, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/lifeboat_pumps/south2) -"jbB" = ( -/obj/structure/sign/safety/nonpress_0g{ - pixel_x = 32 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/hull/lower_hull/l_a_s) "jbH" = ( /obj/structure/machinery/light{ dir = 8 @@ -44039,25 +31209,41 @@ /obj/effect/decal/warning_stripes{ icon_state = "SW-out" }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/west, /area/almayer/engineering/upper_engineering/port) "jbK" = ( /obj/structure/bed/chair/comfy{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "sterile_green" - }, +/turf/open/floor/almayer/sterile_green, /area/almayer/medical/containment) -"jbO" = ( -/obj/structure/machinery/cm_vending/sorted/medical, -/turf/open/floor/almayer{ - icon_state = "sterile_green_side" +"jbN" = ( +/obj/structure/surface/table/woodentable/fancy, +/obj/structure/machinery/light{ + dir = 8 }, -/area/almayer/medical/lower_medical_medbay) +/obj/structure/machinery/door_control/brbutton{ + id = "Brig Lockdown Shutters"; + name = "Brig Lockdown"; + pixel_x = -12; + pixel_y = 26 + }, +/obj/structure/machinery/door_control/brbutton{ + id = "ARES StairsLock"; + name = "ARES Exterior Lockdown Override"; + pixel_x = -2; + pixel_y = 26 + }, +/obj/structure/machinery/computer/cameras/almayer/ares{ + dir = 4 + }, +/obj/structure/machinery/aicore_lockdown{ + icon_state = "big_red_button_wallv"; + pixel_x = 8; + pixel_y = 26 + }, +/turf/open/floor/wood/ship, +/area/almayer/living/commandbunks) "jbX" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 @@ -44068,36 +31254,29 @@ /obj/structure/window/framed/almayer, /turf/open/floor/plating, /area/almayer/shipboard/brig/processing) -"jcK" = ( -/obj/structure/largecrate/random/case/double, -/turf/open/floor/almayer{ - icon_state = "plate" +"jcu" = ( +/obj/effect/projector{ + name = "Almayer_Down3"; + vector_x = 1; + vector_y = -102 }, -/area/almayer/hull/lower_hull/l_a_p) -"jcP" = ( -/turf/open/floor/almayer{ - icon_state = "plating_striped" +/turf/open/floor/almayer/no_build/plate, +/area/almayer/hallways/upper/fore_hallway) +"jcE" = ( +/obj/structure/machinery/vending/coffee{ + density = 0; + pixel_y = 18 }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_a_p) +"jcP" = ( +/turf/open/floor/almayer/plating_striped, /area/almayer/engineering/upper_engineering/starboard) -"jcZ" = ( -/obj/structure/machinery/light{ - dir = 8 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "red" - }, -/area/almayer/command/lifeboat) -"jdk" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 6 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_umbilical) +"jdl" = ( +/obj/effect/step_trigger/clone_cleaner, +/obj/structure/platform_decoration, +/turf/open/floor/almayer/aicore/no_build/ai_silver/east, +/area/almayer/command/airoom) "jdm" = ( /obj/structure/surface/table/almayer, /obj/structure/pipes/standard/simple/hidden/supply{ @@ -44107,48 +31286,41 @@ dir = 4 }, /obj/item/trash/USCMtray, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/almayer/blue/north, /area/almayer/squads/delta) -"jdy" = ( -/obj/structure/sign/safety/autoopenclose{ - pixel_x = 7; - pixel_y = 32 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_a_p) +"jdn" = ( +/obj/structure/surface/rack, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/s_bow) +"jdu" = ( +/obj/structure/largecrate/random/case/small, +/turf/open/floor/plating, +/area/almayer/maint/lower/constr) +"jdC" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/vehiclehangar) "jdG" = ( /obj/structure/disposalpipe/segment{ dir = 8; icon_state = "pipe-c" }, /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/medical/operating_room_three) -"jdQ" = ( -/obj/structure/machinery/shower{ - pixel_y = 16 - }, -/obj/item/tool/soap, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_a_s) -"jea" = ( -/obj/structure/sign/safety/autoopenclose{ - pixel_y = 32 - }, -/obj/structure/sign/safety/water{ - pixel_x = 15; - pixel_y = 32 +"jdZ" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 6 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_a_p) +/turf/open/floor/almayer, +/area/almayer/hallways/lower/repair_bay) "jeb" = ( /turf/closed/wall/almayer, /area/almayer/squads/alpha_bravo_shared) +"jei" = ( +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_a_p) "jeq" = ( /obj/structure/surface/rack, /obj/item/storage/box/pillbottles{ @@ -44160,15 +31332,30 @@ pixel_y = 6 }, /obj/item/storage/box/pillbottles, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/medical/hydroponics) +"jer" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/closed/wall/almayer, +/area/almayer/maint/hull/lower/l_a_p) +"jev" = ( +/obj/structure/largecrate/random/case/small, +/obj/item/device/taperecorder{ + pixel_x = 7; + pixel_y = 7 + }, +/obj/item/reagent_container/glass/bucket/mopbucket{ + pixel_x = -9; + pixel_y = 8 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_f_p) "jew" = ( /obj/structure/surface/table/reinforced/black, -/turf/open/floor/almayer{ - icon_state = "red" - }, +/turf/open/floor/almayer/red, /area/almayer/living/cryo_cells) "jez" = ( /obj/structure/machinery/camera/autoname/almayer{ @@ -44180,88 +31367,46 @@ icon_state = "pottedplant_22"; pixel_y = 8 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/almayer/red/northeast, /area/almayer/lifeboat_pumps/south1) -"jeK" = ( -/obj/structure/machinery/light{ - dir = 4 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "cargo_arrow" - }, -/area/almayer/shipboard/brig/general_equipment) "jeO" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "plating_striped" - }, +/turf/open/floor/almayer/plating_striped/west, /area/almayer/squads/req) "jeQ" = ( /obj/structure/machinery/cm_vending/sorted/cargo_guns/squad_prep, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/almayer/red/southeast, /area/almayer/living/cryo_cells) -"jeU" = ( -/obj/structure/largecrate/random/secure, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_a_s) -"jfm" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_s) -"jfD" = ( -/obj/structure/sign/safety/security{ - pixel_y = -32 - }, -/obj/structure/sign/safety/restrictedarea{ - pixel_x = 15; - pixel_y = -32 - }, -/turf/open/floor/almayer{ - icon_state = "plate" +"jeR" = ( +/obj/structure/machinery/light{ + dir = 4 }, -/area/almayer/hallways/starboard_hallway) +/obj/structure/bed/chair/bolted, +/turf/open/floor/almayer/plate, +/area/almayer/shipboard/brig/perma) "jfK" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22"; pixel_y = 8 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/northeast, /area/almayer/shipboard/brig/cic_hallway) -"jfM" = ( -/obj/structure/machinery/power/monitor{ - name = "Core Power Monitoring" - }, -/obj/structure/sign/safety/terminal{ - pixel_x = -17 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" +"jfS" = ( +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12; + pixel_y = 12 }, -/area/almayer/engineering/engine_core) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_m_p) "jfY" = ( /obj/structure/surface/table/almayer, /obj/effect/landmark/map_item, /obj/item/folder/red, /obj/structure/transmitter/rotary{ name = "Brig CMP's Office Telephone"; - phone_category = "Offices"; + phone_category = "MP Dept."; phone_id = "Brig CMP's Office"; pixel_x = 15 }, @@ -44271,9 +31416,7 @@ /obj/structure/target{ name = "punching bag" }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/gym) "jge" = ( /obj/structure/disposalpipe/segment{ @@ -44282,9 +31425,7 @@ /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/almayer/living/grunt_rnr) "jgg" = ( /obj/structure/machinery/camera/autoname/almayer/containment{ @@ -44294,9 +31435,7 @@ icon_state = "E"; pixel_x = 1 }, -/turf/open/floor/almayer/research/containment/floor2{ - dir = 8 - }, +/turf/open/floor/almayer/research/containment/floor2/west, /area/almayer/medical/containment/cell) "jgk" = ( /obj/structure/machinery/shower{ @@ -44316,85 +31455,116 @@ /obj/structure/machinery/door/airlock/almayer/generic{ name = "Bathroom" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/living/auxiliary_officer_office) -"jgu" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = 11 +"jgr" = ( +/obj/structure/surface/table/almayer, +/obj/item/device/camera{ + pixel_x = -8; + pixel_y = 12 }, -/obj/structure/mirror{ - pixel_x = 29 +/obj/item/paper_bin/uscm{ + pixel_x = 6; + pixel_y = 6 }, -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 +/obj/item/tool/pen{ + pixel_x = 4; + pixel_y = -4 }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" +/obj/item/storage/box/donkpockets{ + pixel_x = -8; + pixel_y = -1 }, -/area/almayer/living/captain_mess) +/turf/open/floor/almayer/plate, +/area/almayer/command/combat_correspondent) "jgw" = ( /obj/structure/sign/safety/nonpress_0g{ pixel_x = 32 }, /turf/open/floor/plating/plating_catwalk, /area/almayer/engineering/upper_engineering/notunnel) -"jgC" = ( -/obj/structure/closet/emcloset, -/obj/item/clothing/mask/gas, -/obj/item/clothing/mask/gas, -/turf/open/floor/almayer{ - icon_state = "plate" +"jgy" = ( +/obj/effect/step_trigger/teleporter_vector{ + name = "Almayer_AresUp"; + vector_x = -96; + vector_y = 65 + }, +/obj/structure/platform{ + dir = 4 + }, +/obj/structure/stairs{ + dir = 1 }, -/area/almayer/hull/upper_hull/u_a_p) +/turf/open/floor/almayer/aicore/no_build, +/area/almayer/command/airoom) "jgF" = ( /obj/structure/platform, -/turf/open/floor/almayer{ - icon_state = "red" - }, +/turf/open/floor/almayer/red, /area/almayer/lifeboat_pumps/north1) "jgJ" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/almayer/blue/east, /area/almayer/command/cichallway) -"jgM" = ( -/obj/structure/surface/table/almayer, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_f_s) -"jgU" = ( -/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ - pixel_y = 25 +"jgK" = ( +/obj/structure/machinery/door/airlock/almayer/maint{ + dir = 1 }, -/turf/open/floor/almayer, -/area/almayer/hallways/starboard_hallway) -"jhb" = ( -/obj/structure/sign/safety/cryo{ - pixel_x = -6; - pixel_y = -6 +/turf/open/floor/almayer/test_floor4, +/area/almayer/maint/hull/lower/l_m_s) +"jgR" = ( +/obj/structure/sign/safety/rewire{ + pixel_y = 32 }, -/turf/closed/wall/almayer, -/area/almayer/living/cryo_cells) -"jhn" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_side" +/obj/item/bedsheet/brown{ + layer = 3.1 }, -/area/almayer/medical/operating_room_four) +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = -2; + pixel_y = 4 + }, +/obj/structure/bed{ + can_buckle = 0 + }, +/obj/structure/window/reinforced{ + dir = 8; + layer = 3.3; + pixel_y = 4 + }, +/obj/structure/bed{ + buckling_y = 13; + layer = 3.5; + pixel_y = 13 + }, +/obj/item/bedsheet/brown{ + pixel_y = 13 + }, +/turf/open/floor/almayer/red/northeast, +/area/almayer/shipboard/brig/mp_bunks) +"jhb" = ( +/obj/structure/sign/safety/cryo{ + pixel_x = -6; + pixel_y = -6 + }, +/turf/closed/wall/almayer, +/area/almayer/living/cryo_cells) +"jhc" = ( +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/starboard_umbilical) +"jhn" = ( +/turf/open/floor/almayer/sterile_green_side/north, +/area/almayer/medical/operating_room_four) +"jhs" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 5 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/port_aft_hallway) "jht" = ( /obj/structure/machinery/vending/coffee{ density = 0; pixel_y = 16 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/charlie) "jhx" = ( /obj/structure/pipes/standard/simple/hidden/supply, @@ -44404,50 +31574,79 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "green" - }, +/turf/open/floor/almayer/green/southeast, /area/almayer/living/offices) "jhA" = ( -/obj/structure/bed/chair{ - dir = 8; - pixel_y = 3 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_p) +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/port_midship_hallway) "jhD" = ( /obj/structure/machinery/firealarm{ pixel_y = -28 }, /turf/open/floor/almayer, /area/almayer/squads/alpha_bravo_shared) -"jhW" = ( -/obj/structure/machinery/cryopod/right, -/turf/open/floor/almayer{ - icon_state = "cargo" +"jhI" = ( +/obj/structure/surface/table/almayer, +/obj/structure/machinery/computer/secure_data{ + dir = 4 + }, +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/chief_mp_office) +"jhK" = ( +/obj/structure/largecrate/random/barrel/yellow, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_a_p) +"jhQ" = ( +/obj/structure/closet, +/obj/item/clothing/under/marine, +/obj/item/clothing/suit/storage/marine, +/obj/item/clothing/head/helmet/marine, +/obj/item/clothing/head/beret/cm, +/obj/item/clothing/head/beret/cm, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/upper/u_a_s) +"jhR" = ( +/obj/structure/reagent_dispensers/water_cooler/stacks{ + density = 0; + pixel_y = 17 }, -/area/almayer/living/bridgebunks) -"jhY" = ( /obj/effect/decal/warning_stripes{ icon_state = "W"; pixel_x = -1 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "silver" +/turf/open/floor/almayer, +/area/almayer/maint/hull/upper/u_f_s) +"jhS" = ( +/obj/structure/machinery/door/poddoor/railing{ + id = "vehicle_elevator_railing_aux" }, -/area/almayer/hull/upper_hull/u_m_p) -"jiw" = ( -/obj/structure/machinery/firealarm{ - pixel_y = 28 +/turf/open/floor/almayer, +/area/almayer/hallways/lower/vehiclehangar) +"jhW" = ( +/obj/structure/machinery/cryopod/right, +/turf/open/floor/almayer/cargo, +/area/almayer/living/bridgebunks) +"jic" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "plate" +/turf/open/floor/almayer/redcorner/north, +/area/almayer/shipboard/brig/lobby) +"jiM" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" }, -/area/almayer/hallways/port_hallway) +/obj/structure/surface/rack, +/obj/item/frame/table, +/obj/item/frame/table, +/obj/item/frame/table, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_a_p) "jiU" = ( /obj/structure/sink{ dir = 1; @@ -44463,46 +31662,15 @@ /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/living/port_emb) -"jiX" = ( -/obj/structure/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_s) -"jjn" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/structure/machinery/door/window/eastright{ - dir = 8; - req_access_txt = "8" - }, -/obj/structure/machinery/door/window/eastleft{ - req_access_txt = "8" - }, -/obj/item/book/manual/medical_diagnostics_manual, -/obj/item/device/megaphone, -/turf/open/floor/almayer{ - icon_state = "sterile_green" - }, -/area/almayer/medical/lower_medical_medbay) -"jjs" = ( +"jjl" = ( /obj/structure/machinery/door/poddoor/railing{ - dir = 4; + dir = 8; id = "vehicle_elevator_railing_aux" }, /turf/open/floor/almayer, -/area/almayer/hallways/vehiclehangar) -"jjM" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 5 - }, -/turf/open/floor/almayer, -/area/almayer/shipboard/brig/main_office) +/area/almayer/hallways/lower/vehiclehangar) "jjS" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -44512,56 +31680,30 @@ icon_state = "E"; pixel_x = 1 }, -/turf/open/floor/almayer{ - icon_state = "sterile_green_corner" - }, +/turf/open/floor/almayer/sterile_green_corner, /area/almayer/medical/medical_science) -"jjT" = ( -/obj/structure/machinery/light, -/obj/effect/projector{ - name = "Almayer_Up4"; - vector_x = -19; - vector_y = 104 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_hallway) -"jjZ" = ( -/obj/structure/machinery/light{ - dir = 4 - }, -/obj/vehicle/powerloader{ - dir = 8 - }, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "cargo" - }, -/area/almayer/hallways/vehiclehangar) -"jkd" = ( -/obj/structure/sign/safety/distribution_pipes{ - pixel_x = 32 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" - }, -/area/almayer/hallways/port_hallway) "jkj" = ( /obj/structure/machinery/portable_atmospherics/powered/pump, /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo/southwest, /area/almayer/engineering/starboard_atmos) "jkl" = ( /obj/structure/morgue, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/medical/morgue) +"jkq" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/obj/item/device/radio/intercom{ + freerange = 1; + name = "General Listening Channel"; + pixel_y = -28 + }, +/turf/open/floor/almayer, +/area/almayer/maint/hull/upper/u_f_s) "jks" = ( /obj/structure/window/framed/almayer, /obj/structure/machinery/door/poddoor/shutters/almayer/open{ @@ -44583,46 +31725,91 @@ pixel_y = 6 }, /obj/item/storage/box/handcuffs, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/briefing) -"jkL" = ( +"jkB" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/obj/structure/sign/safety/escapepod{ + pixel_x = -17 + }, +/turf/open/floor/almayer/red/east, +/area/almayer/hallways/upper/port) +"jkD" = ( /obj/structure/surface/table/almayer, -/obj/item/tool/weldingtool, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_m_s) -"jkS" = ( -/obj/structure/window/framed/almayer/hull/hijack_bustable, -/obj/structure/machinery/door/poddoor/shutters/almayer/open{ - dir = 2; - id = "Warden Office Shutters"; - name = "\improper Privacy Shutters" +/obj/item/paper_bin/uscm{ + pixel_x = 9; + pixel_y = 6 }, -/turf/open/floor/plating, -/area/almayer/shipboard/brig/main_office) -"jkV" = ( -/obj/structure/machinery/light{ - dir = 1 +/obj/item/tool/pen{ + pixel_x = 9; + pixel_y = 2 }, -/obj/structure/bed/chair/bolted{ +/obj/item/tool/pen{ + pixel_x = 9; + pixel_y = 9 + }, +/obj/structure/prop/holidays/string_lights{ + dir = 8; + pixel_x = 29 + }, +/turf/open/floor/almayer/plate, +/area/almayer/living/briefing) +"jkN" = ( +/obj/structure/largecrate/random/barrel/yellow, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_a_s) +"jkT" = ( +/obj/structure/machinery/status_display{ + pixel_y = 30 + }, +/turf/open/floor/almayer/blue/north, +/area/almayer/hallways/upper/fore_hallway) +"jkY" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/obj/structure/closet/secure_closet/engineering_welding{ + req_one_access_txt = "7;23;27" + }, +/obj/structure/platform{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/structure/sign/safety/terminal{ + pixel_y = 32 }, -/area/almayer/shipboard/brig/perma) +/obj/structure/sign/safety/fire_haz{ + pixel_x = 15; + pixel_y = 32 + }, +/turf/open/floor/almayer/silver/northeast, +/area/almayer/hallways/lower/repair_bay) +"jlc" = ( +/turf/open/floor/almayer/red/north, +/area/almayer/hallways/upper/starboard) "jlA" = ( /obj/effect/decal/warning_stripes{ icon_state = "E"; pixel_x = 1 }, /obj/structure/pipes/standard/simple/hidden/supply/no_boom, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/northeast, /area/almayer/medical/containment) +"jlD" = ( +/turf/open/floor/almayer/test_floor4, +/area/almayer/hallways/lower/port_fore_hallway) +"jlE" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/obj/structure/surface/table/almayer, +/obj/item/toy/deck/uno, +/obj/item/toy/deck{ + pixel_x = -9 + }, +/turf/open/floor/almayer/red/north, +/area/almayer/shipboard/brig/mp_bunks) "jlG" = ( /obj/effect/decal/warning_stripes{ icon_state = "SE-out"; @@ -44664,27 +31851,35 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/command/lifeboat) -"jmg" = ( -/obj/structure/largecrate/supply/ammo/shotgun, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_a_s) -"jmK" = ( -/turf/open/floor/almayer{ - icon_state = "plate" +"jmn" = ( +/obj/structure/surface/table/almayer, +/obj/item/prop/magazine/dirty{ + pixel_y = 5 + }, +/obj/item/tool/pen{ + pixel_x = 4; + pixel_y = 6 + }, +/turf/open/floor/almayer/bluefull, +/area/almayer/living/briefing) +"jmz" = ( +/obj/structure/largecrate/random/case/double, +/obj/structure/sign/safety/distribution_pipes{ + pixel_x = 32 }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_f_s) +"jmK" = ( +/turf/open/floor/almayer/plate, /area/almayer/living/cryo_cells) "jmP" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22"; pixel_y = 8 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/captain_mess) "jmQ" = ( /obj/effect/landmark/start/maint, @@ -44693,79 +31888,63 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/engineering/upper_engineering/port) -"jmR" = ( -/obj/structure/ladder/fragile_almayer{ - height = 2; - id = "kitchen" - }, -/obj/structure/sign/safety/ladder{ - pixel_x = 8; - pixel_y = 24 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_m_p) "jmY" = ( -/turf/open/floor/almayer{ - icon_state = "blue" - }, +/turf/open/floor/almayer/blue, /area/almayer/command/cichallway) -"jnf" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, -/area/almayer/engineering/engineering_workshop) -"jnk" = ( -/obj/structure/largecrate/random/case/double, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_p) -"jnw" = ( +"jnc" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/obj/structure/sign/safety/bridge{ - pixel_y = 32 - }, -/obj/structure/sign/safety/reception{ - pixel_x = 15; - pixel_y = 32 +/turf/open/floor/almayer/plate, +/area/almayer/hallways/lower/port_midship_hallway) +"jne" = ( +/turf/open/floor/almayer/cargo, +/area/almayer/maint/hull/upper/u_f_p) +"jnh" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +/turf/open/floor/almayer/plate, +/area/almayer/maint/upper/mess) +"jno" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_aft_hallway) +"jnp" = ( +/obj/structure/surface/table/almayer, +/obj/item/cell/high{ + pixel_x = -8; + pixel_y = 8 }, -/area/almayer/hallways/aft_hallway) -"jnA" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 +/obj/item/ashtray/plastic{ + icon_state = "ashtray_full_bl"; + pixel_x = 5; + pixel_y = 1 }, -/obj/effect/decal/warning_stripes{ - icon_state = "S" +/obj/item/trash/cigbutt{ + pixel_x = -10; + pixel_y = 13 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" +/obj/item/trash/cigbutt{ + pixel_x = -6; + pixel_y = -9 }, -/area/almayer/shipboard/brig/armory) +/turf/open/floor/almayer/mono, +/area/almayer/engineering/upper_engineering/port) "jnD" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "silvercorner" - }, +/turf/open/floor/almayer/silvercorner/north, /area/almayer/shipboard/brig/cic_hallway) -"jnT" = ( -/obj/structure/bed/chair, -/turf/open/floor/almayer{ - allow_construction = 0 +"jnI" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/area/almayer/shipboard/brig/lobby) +/turf/open/floor/almayer, +/area/almayer/engineering/lower) "jnX" = ( /obj/structure/window/framed/almayer, /obj/structure/machinery/door/poddoor/almayer/open{ @@ -44776,36 +31955,6 @@ /obj/structure/machinery/door/firedoor/border_only/almayer, /turf/open/floor/plating, /area/almayer/command/cic) -"jog" = ( -/obj/structure/surface/table/almayer, -/obj/item/storage/photo_album{ - pixel_x = -4; - pixel_y = 5 - }, -/obj/item/folder/black{ - pixel_x = 7; - pixel_y = -3 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/command/combat_correspondent) -"jox" = ( -/obj/structure/machinery/brig_cell/cell_3{ - pixel_x = -32 - }, -/turf/open/floor/almayer, -/area/almayer/shipboard/brig/processing) -"joE" = ( -/obj/structure/pipes/standard/manifold/hidden/supply, -/obj/structure/disposalpipe/junction{ - dir = 4; - icon_state = "pipe-j2" - }, -/turf/open/floor/almayer{ - icon_state = "silver" - }, -/area/almayer/command/cichallway) "joG" = ( /obj/structure/machinery/washing_machine, /obj/structure/sign/poster{ @@ -44818,16 +31967,43 @@ layer = 3.5; pixel_y = 15 }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/engineering/laundry) -"joT" = ( -/obj/structure/largecrate/random/case, -/turf/open/floor/almayer{ - icon_state = "plate" +"jpl" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_x = 1; + pixel_y = 1 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + pixel_x = -1; + pixel_y = 1 + }, +/obj/structure/machinery/door/airlock/almayer/research/reinforced{ + closeOtherId = "containment_n"; + dir = 8; + name = "\improper Containment Airlock" + }, +/obj/structure/machinery/door/poddoor/almayer/biohazard/white{ + dir = 4 }, -/area/almayer/hull/upper_hull/u_a_p) +/turf/open/floor/almayer/test_floor4, +/area/almayer/medical/medical_science) +"jpn" = ( +/obj/structure/stairs{ + icon_state = "ramptop" + }, +/obj/structure/machinery/light{ + dir = 4 + }, +/obj/effect/projector{ + name = "Almayer_Down4"; + vector_x = 19; + vector_y = -104 + }, +/turf/open/floor/plating/almayer/no_build, +/area/almayer/hallways/upper/port) "jpp" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/medidoor{ name = "\improper Medical Bay"; @@ -44836,9 +32012,7 @@ /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/medical/lower_medical_lobby) "jpt" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -44846,28 +32020,31 @@ }, /turf/open/floor/almayer, /area/almayer/living/gym) -"jpJ" = ( -/obj/structure/bed/chair{ - dir = 8 +"jpD" = ( +/obj/structure/machinery/door/window/eastleft{ + req_one_access_txt = "2;21" }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_s) -"jpN" = ( -/obj/structure/surface/rack, -/obj/item/storage/box/cups{ - pixel_x = 4; - pixel_y = 9 +/obj/structure/machinery/door/window/westright, +/obj/structure/machinery/door/poddoor/shutters/almayer{ + dir = 4; + id = "ROlobby2"; + name = "\improper RO Line 2" }, -/obj/item/storage/box/cups, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/structure/machinery/door/firedoor/border_only/almayer, +/obj/structure/surface/table/reinforced/almayer_blend, +/obj/item/desk_bell{ + pixel_x = -6; + pixel_y = 10; + anchored = 1 }, -/area/almayer/hull/lower_hull/l_f_s) -"jpQ" = ( -/turf/open/floor/almayer{ - allow_construction = 0 +/turf/open/floor/almayer/test_floor4, +/area/almayer/squads/req) +"jpW" = ( +/obj/structure/machinery/alarm/almayer{ + dir = 1 }, -/area/almayer/shipboard/brig/lobby) +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_midship_hallway) "jqP" = ( /obj/structure/machinery/door/poddoor/shutters/almayer{ id = "ARES Interior"; @@ -44875,119 +32052,171 @@ plane = -7 }, /obj/effect/step_trigger/ares_alert/core, -/obj/structure/machinery/door/poddoor/almayer/blended/white/open{ - closed_layer = 3.2; - id = "ARES Emergency"; - layer = 3.2; - name = "ARES Emergency Lockdown"; - needs_power = 0; - open_layer = 1.9; - plane = -7 - }, -/turf/open/floor/almayer/no_build{ - icon_state = "test_floor4" - }, +/obj/structure/machinery/door/poddoor/almayer/blended/ai_lockdown/aicore, +/turf/open/floor/almayer/no_build/test_floor4, /area/almayer/command/airoom) +"jqY" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/execution) "jre" = ( /obj/structure/closet/secure_closet/cargotech, /obj/item/clothing/accessory/storage/webbing, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/almayer/green/north, /area/almayer/squads/req) +"jri" = ( +/obj/structure/largecrate/random/barrel/white, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_f_s) "jrm" = ( /obj/effect/decal/warning_stripes{ icon_state = "NW-out"; pixel_y = 1 }, /obj/structure/bed/chair/comfy, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/pilotbunks) +"jru" = ( +/obj/structure/sign/safety/nonpress_0g{ + pixel_y = 32 + }, +/obj/structure/sign/safety/press_area_ag{ + pixel_y = -32 + }, +/turf/open/floor/almayer/test_floor4, +/area/almayer/hallways/lower/starboard_umbilical) +"jrB" = ( +/obj/structure/bed/chair, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/p_stern) +"jrC" = ( +/obj/structure/machinery/vending/hydronutrients, +/turf/open/floor/almayer/plate, +/area/almayer/maint/upper/u_a_s) +"jrH" = ( +/obj/structure/pipes/standard/manifold/hidden/supply/no_boom{ + dir = 8 + }, +/turf/open/floor/almayer/aicore/no_build, +/area/almayer/command/airoom) +"jrI" = ( +/obj/structure/filingcabinet{ + density = 0; + pixel_x = 8; + pixel_y = 18 + }, +/obj/structure/filingcabinet{ + density = 0; + pixel_x = -8; + pixel_y = 18 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_f_p) "jrM" = ( /obj/structure/machinery/camera/autoname/almayer/containment{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/east, /area/almayer/medical/medical_science) -"jrV" = ( -/obj/structure/surface/table/almayer, -/obj/item/weapon/gun/rifle/l42a{ - pixel_y = 6 +"jsa" = ( +/obj/structure/machinery/light{ + dir = 8 }, -/obj/item/weapon/gun/rifle/l42a, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/effect/projector{ + name = "Almayer_Up3"; + vector_x = -1; + vector_y = 102 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/port_fore_hallway) +"jsd" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out" + }, +/obj/effect/step_trigger/clone_cleaner, +/obj/structure/sign/safety/stairs{ + pixel_x = -17 }, -/area/almayer/hull/upper_hull/u_m_s) +/turf/open/floor/almayer/green/west, +/area/almayer/hallways/upper/fore_hallway) "jss" = ( /obj/structure/bed/chair/comfy{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "bluefull" - }, +/turf/open/floor/almayer/bluefull, /area/almayer/living/captain_mess) +"jsu" = ( +/obj/structure/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_a_s) "jsx" = ( /obj/effect/decal/warning_stripes{ icon_state = "NE-out"; pixel_x = 1; pixel_y = 1 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/northeast, /area/almayer/medical/medical_science) +"jsA" = ( +/turf/open/floor/almayer/plate, +/area/almayer/maint/upper/u_m_s) +"jsE" = ( +/obj/structure/sign/safety/nonpress_ag{ + pixel_x = 32 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/s_bow) "jsP" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/almayer/red/north, /area/almayer/lifeboat_pumps/south1) -"jtj" = ( -/obj/structure/machinery/status_display{ - pixel_y = 30 - }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" +"jsR" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + pixel_x = -1; + pixel_y = 2 }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/vehiclehangar) +"jtj" = ( +/obj/effect/step_trigger/clone_cleaner, +/turf/open/floor/almayer/aicore/glowing/no_build/ai_floor3, /area/almayer/command/airoom) -"jtJ" = ( -/obj/structure/machinery/door_control{ - id = "laddernorthwest"; - name = "North West Ladders Shutters"; - pixel_x = 25; - req_one_access_txt = "2;3;12;19"; - throw_range = 15 +"jts" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer, +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "greencorner" +/turf/open/floor/almayer/test_floor4, +/area/almayer/hallways/lower/port_aft_hallway) +"jtU" = ( +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_m_p) +"jtZ" = ( +/obj/structure/machinery/light{ + dir = 4 }, -/area/almayer/hallways/starboard_hallway) -"juf" = ( -/obj/structure/machinery/sentry_holder/almayer, -/turf/open/floor/almayer{ - icon_state = "mono" +/turf/open/floor/almayer/emerald/east, +/area/almayer/hallways/lower/port_midship_hallway) +"juj" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/area/almayer/lifeboat_pumps/north1) -"jup" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "NW-out"; - layer = 2.5; - pixel_y = 1 +/obj/structure/disposalpipe/segment{ + dir = 4 }, +/obj/structure/machinery/door/firedoor/border_only/almayer, +/turf/open/floor/almayer/test_floor4, +/area/almayer/hallways/upper/aft_hallway) +"juo" = ( /turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_s) +/area/almayer/hallways/lower/port_fore_hallway) "juD" = ( /obj/structure/bed/chair/comfy{ dir = 8 @@ -44995,13 +32224,20 @@ /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer, /area/almayer/living/port_emb) +"juS" = ( +/obj/structure/machinery/gear{ + id = "vehicle_elevator_gears" + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer/mono, +/area/almayer/hallways/lower/vehiclehangar) "juX" = ( /obj/structure/platform_decoration{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "red" - }, +/turf/open/floor/almayer/red, /area/almayer/lifeboat_pumps/north1) "jva" = ( /obj/structure/closet, @@ -45011,18 +32247,14 @@ /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/medical/lower_medical_medbay) "jvc" = ( /obj/structure/pipes/standard/simple/hidden/supply{ - dir = 5 - }, -/turf/open/floor/almayer{ - allow_construction = 0 + dir = 4 }, -/area/almayer/shipboard/brig/general_equipment) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/mp_bunks) "jvp" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/supply{ @@ -45044,28 +32276,49 @@ /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 2 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/squads/alpha) +"jvt" = ( +/obj/item/tool/warning_cone{ + pixel_x = -20; + pixel_y = 18 + }, +/obj/structure/prop/invuln/lattice_prop{ + icon_state = "lattice12"; + pixel_y = -16 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_m_s) "jvB" = ( /obj/effect/step_trigger/clone_cleaner, -/turf/open/floor/almayer/no_build{ +/turf/open/floor/almayer/aicore/no_build/ai_plates, +/area/almayer/command/airoom) +"jvD" = ( +/obj/structure/machinery/door_control{ + id = "laddersouthwest"; + name = "South West Ladders Shutters"; + pixel_x = 25; + req_one_access_txt = "2;3;12;19"; + throw_range = 15 + }, +/turf/open/floor/almayer/greencorner, +/area/almayer/hallways/lower/port_fore_hallway) +"jvM" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/area/almayer/command/airoom) -"jvI" = ( -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" }, -/area/almayer/hull/upper_hull/u_a_p) -"jvJ" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - icon_state = "plate" +/turf/open/floor/wood/ship, +/area/almayer/command/corporateliaison) +"jvP" = ( +/obj/structure/machinery/power/apc/almayer{ + dir = 1 }, -/area/almayer/hull/upper_hull/u_f_s) +/turf/open/floor/almayer/plate, +/area/almayer/shipboard/brig/cryo) "jvX" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -45082,41 +32335,67 @@ dir = 4; pixel_x = 24 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/almayer/command/cic) "jvY" = ( /turf/closed/wall/almayer/reinforced, /area/almayer/command/telecomms) -"jwD" = ( -/obj/structure/prop/almayer/computers/sensor_computer2, +"jwi" = ( /obj/structure/machinery/door_control{ - id = "Secretroom"; - indestructible = 1; - layer = 2.5; - name = "Shutters"; - use_power = 0 + id = "InnerShutter"; + name = "Inner Shutter"; + pixel_x = 5; + pixel_y = 10 + }, +/obj/item/toy/deck{ + pixel_x = -9 + }, +/obj/item/ashtray/plastic, +/obj/structure/surface/table/reinforced/almayer_B, +/obj/structure/sign/safety/intercom{ + pixel_y = -32 }, -/turf/open/floor/almayer{ - icon_state = "plate" +/turf/open/floor/almayer/plate, +/area/almayer/shipboard/panic) +"jwq" = ( +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 8 }, -/area/almayer/hull/lower_hull/l_m_s) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_f_p) +"jwr" = ( +/obj/structure/machinery/light, +/turf/open/floor/almayer/red, +/area/almayer/shipboard/brig/starboard_hallway) +"jwJ" = ( +/obj/structure/platform_decoration, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_a_p) "jwK" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/almayer/red/north, /area/almayer/squads/alpha_bravo_shared) +"jwP" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SW-out"; + pixel_x = -1 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_midship_hallway) "jxi" = ( /obj/structure/machinery/sleep_console, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/north, /area/almayer/medical/lower_medical_medbay) +"jxq" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer/red/north, +/area/almayer/lifeboat_pumps/north2) +"jxu" = ( +/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ + pixel_y = -25 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_fore_hallway) "jxx" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -45132,55 +32411,98 @@ }, /turf/open/floor/plating, /area/almayer/living/bridgebunks) -"jxK" = ( -/obj/structure/disposalpipe/junction{ - dir = 1; - icon_state = "pipe-j2" - }, -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" +"jxX" = ( +/obj/structure/machinery/power/apc/almayer{ + dir = 1 }, +/turf/open/floor/almayer/orange/east, +/area/almayer/hallways/lower/starboard_aft_hallway) +"jyb" = ( +/turf/open/floor/almayer/red/southeast, /area/almayer/shipboard/brig/processing) -"jyi" = ( -/obj/structure/machinery/power/port_gen/pacman, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/engineering/engine_core) "jyE" = ( /obj/structure/machinery/light, /turf/open/floor/wood/ship, /area/almayer/engineering/ce_room) +"jyJ" = ( +/obj/structure/machinery/light{ + dir = 8 + }, +/obj/structure/ladder{ + height = 2; + id = "cicladder3" + }, +/obj/structure/sign/safety/ladder{ + pixel_x = 23; + pixel_y = 32 + }, +/turf/open/floor/plating/almayer, +/area/almayer/medical/medical_science) "jyR" = ( /obj/structure/machinery/cm_vending/sorted/tech/comp_storage{ req_one_access_txt = "7;23;27" }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/hallways/hangar) +"jyY" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 1 + }, +/obj/structure/machinery/door/poddoor/almayer/open{ + id = "Brig Lockdown Shutters"; + name = "\improper Brig Lockdown Shutter" + }, +/obj/structure/machinery/door/airlock/almayer/security/glass/reinforced{ + closeOtherId = "brigmaint_s"; + dir = 1; + name = "\improper Brig Maintenance" + }, +/obj/structure/machinery/door/poddoor/almayer/open{ + id = "perma_lockdown_2"; + name = "\improper Perma Lockdown Shutter" + }, +/turf/open/floor/almayer/test_floor4, +/area/almayer/shipboard/brig/perma) "jzD" = ( /obj/structure/machinery/door/poddoor/almayer/locked{ icon_state = "almayer_pdoor"; id = "s_engi" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/engineering/upper_engineering/notunnel) +"jzE" = ( +/obj/structure/closet/secure_closet/bar{ + name = "Success Cabinet"; + req_access_txt = "1" + }, +/turf/open/floor/almayer/plate, +/area/almayer/living/captain_mess) +"jzT" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/starboard_midship_hallway) "jzZ" = ( /obj/structure/platform_decoration, -/turf/open/floor/almayer{ - icon_state = "red" - }, +/turf/open/floor/almayer/red, /area/almayer/lifeboat_pumps/north1) -"jAi" = ( -/turf/closed/wall/almayer/reinforced, -/area/almayer/hallways/vehiclehangar) +"jAe" = ( +/obj/structure/surface/rack, +/obj/item/storage/beer_pack, +/turf/open/floor/almayer/plate, +/area/almayer/command/corporateliaison) +"jAj" = ( +/obj/structure/machinery/light{ + dir = 4 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/turf/open/floor/almayer/orangecorner, +/area/almayer/hallways/lower/starboard_aft_hallway) "jAz" = ( /obj/structure/platform, /obj/structure/platform{ @@ -45190,59 +32512,26 @@ dir = 6; layer = 3.51 }, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/almayer/red/southeast, /area/almayer/lifeboat_pumps/north1) "jAB" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "green" - }, +/turf/open/floor/almayer/green/east, /area/almayer/squads/req) -"jAG" = ( -/obj/structure/surface/rack, -/obj/item/storage/box/gloves{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/storage/box/masks, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_side" - }, -/area/almayer/shipboard/brig/surgery) "jAJ" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer, /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/engineering/upper_engineering/port) "jBy" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/east, /area/almayer/medical/morgue) -"jBB" = ( -/obj/structure/surface/rack, -/obj/item/circuitboard/firealarm, -/obj/item/circuitboard, -/obj/item/clipboard, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_s) "jBO" = ( /obj/structure/machinery/door/poddoor/shutters/almayer{ dir = 4; @@ -45257,135 +32546,122 @@ dir = 8 }, /area/almayer/medical/containment/cell) -"jBX" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ +"jCg" = ( +/obj/docking_port/stationary/escape_pod/south, +/turf/open/floor/plating, +/area/almayer/maint/hull/lower/l_m_s) +"jCm" = ( +/obj/structure/surface/table/almayer, +/obj/structure/machinery/prop/almayer/computer/PC{ dir = 4 }, -/obj/structure/machinery/door/firedoor/border_only/almayer, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/command/lifeboat) -"jBY" = ( -/obj/structure/surface/rack, -/obj/item/ammo_magazine/rifle/l42a/ap{ - current_rounds = 0; - pixel_x = -6; - pixel_y = 7 - }, -/obj/item/ammo_magazine/rifle/l42a/ap{ - current_rounds = 0; - pixel_x = -6; - pixel_y = -3 - }, -/obj/item/ammo_magazine/rifle/l42a/ap{ - current_rounds = 0; - pixel_x = 5; - pixel_y = 9 - }, -/obj/item/ammo_magazine/rifle/l42a/ap{ - current_rounds = 0; - pixel_x = 5; - pixel_y = -3 - }, -/obj/structure/noticeboard{ - desc = "The note is haphazardly attached to the cork board by what looks like a bent firing pin. 'The order has come in to perform end of life service checks on all L42A service rifles, any that are defective are to be dis-assembled and packed into a crate and sent to to the cargo hold. L42A service rifles that are in working order after servicing, are to be locked in secure cabinets ready to be off-loaded at Chinook. Scheduled end of life service for the L42A - Complete'"; - pixel_y = 29 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_m_s) -"jCa" = ( -/obj/structure/machinery/disposal, -/obj/structure/disposalpipe/trunk, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "red" +/obj/item/tool/stamp/approved{ + pixel_x = -3; + pixel_y = -11 }, -/area/almayer/shipboard/brig/main_office) +/turf/open/floor/almayer, +/area/almayer/squads/req) "jCn" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 1 - }, -/turf/open/floor/carpet, -/area/almayer/living/commandbunks) +/obj/structure/surface/table/almayer, +/obj/item/tool/screwdriver, +/obj/item/tool/weldingtool, +/obj/item/tool/wrench, +/obj/item/tool/wirecutters, +/turf/open/floor/almayer/orange/west, +/area/almayer/engineering/lower/engine_core) +"jCr" = ( +/obj/structure/largecrate/random/barrel/blue, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/s_bow) +"jCx" = ( +/turf/open/floor/almayer/bluecorner/east, +/area/almayer/hallways/lower/port_midship_hallway) "jCK" = ( /obj/effect/decal/medical_decals{ icon_state = "triagedecalbottomleft"; pixel_x = 20 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/northeast, /area/almayer/medical/lower_medical_lobby) -"jDV" = ( -/obj/effect/projector{ - name = "Almayer_AresDown"; - vector_x = 97; - vector_y = -65 +"jCX" = ( +/obj/structure/pipes/vents/scrubber, +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/starboard_hallway) +"jDk" = ( +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 4 }, -/obj/structure/platform{ +/obj/structure/transmitter{ + dir = 8; + name = "OT Telephone"; + phone_category = "Almayer"; + phone_id = "Ordnance Tech"; + pixel_x = 14 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/almayer/orange/east, +/area/almayer/engineering/lower/workshop/hangar) +"jDz" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/obj/structure/barricade/handrail, +/turf/open/floor/almayer/test_floor5, +/area/almayer/hallways/lower/port_midship_hallway) +"jDO" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/obj/structure/stairs{ +/obj/structure/machinery/light, +/turf/open/floor/wood/ship, +/area/almayer/command/corporateliaison) +"jDP" = ( +/obj/structure/machinery/door/airlock/almayer/maint/reinforced{ + access_modified = 1; dir = 1; - icon_state = "ramptop" + name = "\improper Spare Bomb Suit"; + req_one_access = null; + req_one_access_txt = "35" }, -/obj/structure/machinery/door_control{ - id = "ARES StairsUpper"; - name = "ARES Core Access"; - pixel_x = 24; - req_one_access_txt = "90;91;92" +/turf/open/floor/almayer, +/area/almayer/engineering/lower/workshop/hangar) +"jEA" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12 }, -/area/almayer/command/airoom) -"jEs" = ( -/obj/structure/surface/table/almayer, -/obj/item/tool/screwdriver{ - pixel_x = -1; - pixel_y = 2 +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12; + pixel_y = 12 }, -/obj/item/stack/cable_coil{ +/obj/structure/sign/safety/water{ pixel_x = 8; - pixel_y = -4 - }, -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_f_p) -"jEI" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/machinery/computer/cameras/wooden_tv/prop{ - pixel_y = 29 - }, -/turf/open/floor/almayer{ - icon_state = "plate" + pixel_y = 32 }, -/area/almayer/living/briefing) -"jEX" = ( -/obj/structure/surface/table/woodentable/fancy, -/obj/item/folder/black{ - pixel_y = 8 +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_a_p) +"jEM" = ( +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_a_s) +"jES" = ( +/obj/structure/bed/chair/comfy/black{ + dir = 8 }, -/obj/item/folder/yellow, -/obj/item/device/flashlight/lamp/green{ - pixel_x = -16; - pixel_y = 8 +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/chief_mp_office) +"jEV" = ( +/obj/structure/surface/table/almayer, +/obj/item/paper_bin{ + pixel_x = -7 }, -/turf/open/floor/carpet, -/area/almayer/living/commandbunks) -"jFe" = ( -/obj/structure/prop/holidays/string_lights{ - pixel_y = 27 +/obj/item/tool/pen, +/obj/item/tool/pen{ + pixel_y = 3 }, -/obj/item/frame/rack, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_s) +/turf/open/floor/almayer/red/southwest, +/area/almayer/shipboard/brig/mp_bunks) "jFf" = ( /obj/structure/machinery/shower{ pixel_y = 16 @@ -45400,88 +32676,98 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/medical/medical_science) -"jFg" = ( -/obj/structure/pipes/standard/cap/hidden{ - dir = 4 +"jFt" = ( +/obj/structure/machinery/light/small, +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 }, -/obj/structure/sign/safety/hvac_old{ - pixel_x = 15; - pixel_y = 32 +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/s_bow) +"jFx" = ( +/obj/structure/surface/table/almayer, +/obj/item/reagent_container/glass/bucket{ + pixel_x = 6; + pixel_y = 8 }, -/turf/open/floor/almayer{ - icon_state = "mono" +/obj/item/reagent_container/glass/bucket{ + pixel_x = -6; + pixel_y = 8 }, -/area/almayer/hallways/stern_hallway) -"jFh" = ( -/obj/structure/largecrate/random/secure, -/turf/open/floor/almayer{ - icon_state = "cargo" +/obj/item/reagent_container/glass/bucket{ + pixel_x = -6; + pixel_y = -2 + }, +/obj/item/reagent_container/glass/bucket{ + pixel_x = 6; + pixel_y = -2 + }, +/obj/structure/machinery/camera/autoname/almayer{ + dir = 1; + name = "ship-grade camera" }, -/area/almayer/hull/lower_hull/l_f_s) +/turf/open/floor/almayer/orange, +/area/almayer/engineering/lower/workshop/hangar) +"jFy" = ( +/obj/structure/surface/table/almayer, +/obj/effect/spawner/random/toolbox, +/obj/item/clipboard, +/obj/item/tool/pen, +/turf/open/floor/almayer/green/west, +/area/almayer/squads/req) "jFE" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/almayer/living/grunt_rnr) -"jFR" = ( -/turf/open/floor/almayer{ - icon_state = "redcorner" +"jFI" = ( +/obj/structure/machinery/power/apc/almayer{ + dir = 4 }, -/area/almayer/shipboard/brig/processing) -"jFX" = ( -/obj/structure/machinery/door/airlock/almayer/maint, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_m_s) +"jFM" = ( +/obj/structure/surface/table/almayer, +/obj/item/attachable/lasersight, +/obj/item/reagent_container/food/drinks/cans/souto/vanilla{ + pixel_x = 10; + pixel_y = 11 }, -/area/almayer/hull/upper_hull/u_a_s) +/turf/open/floor/almayer/plate, +/area/almayer/maint/upper/u_m_s) +"jFY" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/almayer/cargo, +/area/almayer/engineering/upper_engineering/port) "jGn" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/north, /area/almayer/medical/lower_medical_medbay) "jGI" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/reagent_container/food/drinks/cans/waterbottle, /obj/structure/machinery/light/small, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/engineering/laundry) -"jGN" = ( -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 1 +"jGQ" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_y = 1 }, -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" +/obj/structure/sign/safety/distribution_pipes{ + pixel_x = -17 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_hallway) +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_f_p) "jGR" = ( /obj/effect/decal/warning_stripes{ icon_state = "W"; pixel_x = -1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/delta) -"jHe" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_hallway) "jHh" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -45491,29 +32777,21 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/brig/cic_hallway) +"jHn" = ( +/obj/structure/largecrate/random/case, +/turf/open/floor/almayer/plate, +/area/almayer/maint/lower/s_bow) +"jHt" = ( +/turf/closed/wall/almayer, +/area/almayer/hallways/lower/repair_bay) "jHC" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "silvercorner" - }, +/turf/open/floor/almayer/silvercorner/north, /area/almayer/command/computerlab) -"jHG" = ( -/obj/structure/sign/safety/maint{ - pixel_x = 8; - pixel_y = -32 - }, -/turf/open/floor/almayer{ - icon_state = "blue" - }, -/area/almayer/hallways/aft_hallway) "jHL" = ( /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/west, /area/almayer/engineering/upper_engineering/port) "jHQ" = ( /obj/structure/machinery/crema_switch{ @@ -45522,72 +32800,43 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/medical/morgue) -"jIG" = ( -/obj/structure/bed/chair/comfy/charlie{ +"jIs" = ( +/obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/living/briefing) -"jIV" = ( -/obj/structure/surface/rack, -/obj/item/book/manual/marine_law{ - pixel_x = -3; - pixel_y = 1 - }, +/obj/structure/pipes/standard/manifold/hidden/supply, /turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_s) -"jJe" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ - pixel_y = 25 +/area/almayer/hallways/upper/midship_hallway) +"jIC" = ( +/obj/structure/machinery/computer/working_joe{ + dir = 4; + pixel_x = -17 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "green" +/turf/open/floor/almayer/orange/west, +/area/almayer/maint/upper/mess) +"jIJ" = ( +/obj/structure/largecrate/random/barrel/green, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_f_s) +"jIT" = ( +/obj/structure/surface/table/almayer, +/obj/structure/machinery/faxmachine/uscm/brig/chief, +/turf/open/floor/wood/ship, +/area/almayer/shipboard/brig/chief_mp_office) +"jIV" = ( +/obj/structure/stairs/perspective{ + icon_state = "p_stair_full" }, -/area/almayer/hallways/port_hallway) +/turf/open/floor/almayer/plating/northeast, +/area/almayer/engineering/lower/engine_core) "jJk" = ( /obj/structure/machinery/power/apc/almayer{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "blue" - }, +/turf/open/floor/almayer/blue/northeast, /area/almayer/living/port_emb) -"jJq" = ( -/obj/structure/surface/rack, -/obj/item/storage/firstaid/regular, -/obj/item/storage/firstaid/toxin{ - pixel_x = 8; - pixel_y = -2 - }, -/turf/open/floor/almayer{ - icon_state = "red" - }, -/area/almayer/shipboard/brig/general_equipment) -"jJs" = ( -/turf/open/floor/almayer{ - icon_state = "green" - }, -/area/almayer/hallways/starboard_hallway) -"jKh" = ( -/obj/structure/machinery/alarm/almayer{ - dir = 1 - }, -/obj/effect/landmark/start/doctor, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/living/offices) "jKn" = ( -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/almayer/shipboard/port_missiles) "jKz" = ( /obj/effect/decal/warning_stripes{ @@ -45601,18 +32850,8 @@ /obj/item/cell/crap{ pixel_y = 14 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) -"jKA" = ( -/obj/structure/sign/safety/cryo{ - pixel_y = 26 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/starboard_hallway) "jKF" = ( /obj/structure/window/framed/almayer, /obj/structure/machinery/door/poddoor/almayer/open{ @@ -45634,84 +32873,47 @@ /obj/structure/sign/safety/cryo{ pixel_x = -17 }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/engineering/port_atmos) -"jKK" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "green" - }, -/area/almayer/hallways/aft_hallway) +"jLg" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/almayer/cargo, +/area/almayer/hallways/lower/port_aft_hallway) "jLj" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "cargo_arrow" - }, +/turf/open/floor/almayer/cargo_arrow/west, /area/almayer/squads/charlie) "jLs" = ( /obj/structure/machinery/vending/cola, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/almayer/living/captain_mess) -"jLv" = ( -/obj/structure/machinery/firealarm{ - dir = 1; - pixel_y = -28 - }, -/turf/open/floor/almayer{ - icon_state = "green" +"jLH" = ( +/obj/structure/largecrate/supply/supplies/mre, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_m_p) +"jLS" = ( +/obj/structure/bed/chair/comfy/charlie, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer/plate, +/area/almayer/living/briefing) +"jMa" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 }, -/area/almayer/hallways/starboard_hallway) -"jLK" = ( -/obj/structure/machinery/light{ +/obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "emerald" - }, -/area/almayer/hallways/port_hallway) -"jMb" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/obj/structure/sign/safety/maint{ - pixel_x = 32 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/port_hallway) -"jMi" = ( -/obj/structure/surface/table/almayer, -/obj/item/toy/deck{ - pixel_y = 14 - }, -/obj/item/trash/cigbutt/ucigbutt{ - layer = 3.7; - pixel_x = 5; - pixel_y = 8 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_a_s) +/turf/open/floor/almayer/plate, +/area/almayer/hallways/lower/port_fore_hallway) "jMm" = ( /obj/structure/closet/secure_closet/personal/cabinet{ req_access = null }, /obj/item/clothing/mask/rebreather/scarf, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/pilotbunks) "jMr" = ( /obj/structure/surface/table/almayer, @@ -45728,34 +32930,34 @@ }, /turf/open/floor/almayer, /area/almayer/living/briefing) -"jMt" = ( -/obj/structure/sign/poster{ - pixel_y = -32 +"jMx" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SW-out" }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 +/obj/structure/sign/safety/bathunisex{ + pixel_x = 11; + pixel_y = -26 }, -/turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_s) +/turf/open/floor/wood/ship, +/area/almayer/living/commandbunks) +"jMy" = ( +/obj/structure/surface/table/almayer, +/obj/item/tool/extinguisher, +/obj/item/device/lightreplacer, +/turf/open/floor/almayer/plate, +/area/almayer/engineering/lower/workshop) "jMG" = ( /obj/structure/largecrate/random/case/small, /obj/structure/largecrate/random/mini/wooden{ pixel_x = 4; pixel_y = 6 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/engineering/upper_engineering/starboard) -"jMK" = ( -/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ - pixel_y = 25 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, -/area/almayer/hallways/stern_hallway) +"jML" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/wood/ship, +/area/almayer/command/corporateliaison) "jMQ" = ( /obj/item/device/radio/intercom{ freerange = 1; @@ -45800,34 +33002,45 @@ /obj/structure/pipes/standard/simple/hidden/supply/no_boom{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/medical/containment/cell) -"jNq" = ( -/obj/structure/closet/secure_closet/personal/cabinet{ - req_access = null +"jNo" = ( +/obj/structure/surface/rack, +/obj/item/tool/shovel/etool{ + pixel_x = 6 }, -/obj/item/clothing/mask/rebreather/scarf/tacticalmask/red, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/item/tool/shovel/etool, +/obj/item/tool/wirecutters, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_m_s) +"jNw" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SE-out"; + pixel_x = 1 }, -/area/almayer/hull/lower_hull/l_f_p) -"jNt" = ( -/obj/structure/surface/rack, -/obj/item/stack/folding_barricade/three, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/structure/pipes/vents/scrubber{ + dir = 8 }, -/area/almayer/hull/lower_hull/l_f_s) -"jNY" = ( -/obj/structure/surface/table/woodentable/fancy, -/obj/structure/flora/pottedplant{ - icon_state = "pottedplant_18"; - pixel_y = 12 +/obj/structure/sign/safety/escapepod{ + pixel_x = 32 }, -/turf/open/floor/carpet, +/turf/open/floor/almayer/red/west, +/area/almayer/hallways/lower/port_fore_hallway) +"jND" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 10 + }, +/turf/open/floor/wood/ship, /area/almayer/living/commandbunks) +"jNG" = ( +/obj/structure/closet/crate/trashcart, +/obj/effect/spawner/random/balaclavas, +/turf/open/floor/plating, +/area/almayer/maint/lower/constr) +"jNT" = ( +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/execution) "jOi" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -45845,10 +33058,7 @@ pixel_x = 1; pixel_y = 1 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orangecorner" - }, +/turf/open/floor/almayer/orangecorner/east, /area/almayer/squads/bravo) "jOk" = ( /obj/structure/surface/table/almayer, @@ -45865,9 +33075,7 @@ pixel_y = 10; req_one_access_txt = "1;21" }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/req) "jOo" = ( /obj/structure/disposalpipe/segment{ @@ -45875,17 +33083,14 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/gym) -"jOu" = ( -/obj/structure/surface/table/almayer, -/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ - pixel_y = 25 - }, -/obj/structure/machinery/faxmachine/uscm/brig, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, -/area/almayer/shipboard/brig/processing) +"jOq" = ( +/obj/structure/largecrate/random/barrel/yellow, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_f_s) +"jOt" = ( +/obj/item/trash/barcardine, +/turf/open/floor/plating, +/area/almayer/maint/lower/constr) "jOx" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -45894,44 +33099,84 @@ icon_state = "N"; pixel_y = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/bravo) +"jOD" = ( +/obj/effect/step_trigger/clone_cleaner, +/turf/open/floor/almayer/red/east, +/area/almayer/hallways/upper/starboard) +"jOE" = ( +/obj/structure/machinery/power/apc/almayer, +/turf/open/floor/almayer/orange, +/area/almayer/engineering/lower) "jOG" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/machinery/firealarm{ dir = 4; pixel_x = 24 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/east, /area/almayer/medical/upper_medical) -"jPf" = ( -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12 +"jPd" = ( +/obj/structure/machinery/camera/autoname/almayer{ + dir = 1; + name = "ship-grade camera" }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_a_s) -"jPn" = ( -/obj/structure/machinery/photocopier{ - anchored = 0 - }, -/turf/open/floor/wood/ship, -/area/almayer/living/commandbunks) +/turf/open/floor/almayer/orange/southeast, +/area/almayer/engineering/lower/engine_core) "jPq" = ( /obj/structure/reagent_dispensers/watertank, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/engineering/upper_engineering/starboard) -"jQt" = ( -/turf/open/floor/almayer/research/containment/floor2{ +"jPu" = ( +/obj/item/device/radio/intercom{ + freerange = 1; + name = "Saferoom Channel"; + pixel_x = 27 + }, +/turf/open/floor/almayer/plate, +/area/almayer/shipboard/panic) +"jPx" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_m_p) +"jPP" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/processing) +"jPS" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 1 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/chief_mp_office) +"jPU" = ( +/obj/structure/machinery/light/small{ dir = 8 }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_m_p) +"jQt" = ( +/turf/open/floor/almayer/research/containment/floor2/west, /area/almayer/medical/containment/cell) +"jRc" = ( +/obj/structure/machinery/cm_vending/sorted/tech/tool_storage, +/obj/structure/machinery/status_display{ + pixel_y = 30 + }, +/turf/open/floor/almayer/plate, +/area/almayer/engineering/lower/workshop) +"jRp" = ( +/obj/structure/largecrate/supply/supplies/water, +/obj/item/toy/deck{ + pixel_y = 12 + }, +/turf/open/floor/plating, +/area/almayer/maint/lower/constr) "jRz" = ( /obj/effect/step_trigger/teleporter/random{ affect_ghosts = 1; @@ -45949,16 +33194,11 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 10 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/east, /area/almayer/engineering/upper_engineering/port) "jRK" = ( /obj/structure/largecrate/random/case/double, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/engineering/upper_engineering/starboard) "jRS" = ( /obj/effect/decal/warning_stripes{ @@ -45968,24 +33208,11 @@ /obj/structure/platform{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) -"jRZ" = ( -/obj/structure/machinery/light{ - dir = 8 - }, -/obj/structure/closet/secure_closet/guncabinet/red/armory_m4a3_pistol, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, -/area/almayer/engineering/upper_engineering) "jSo" = ( /obj/item/tool/warning_cone, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) "jSp" = ( /obj/structure/machinery/cm_vending/gear/tl{ @@ -45993,19 +33220,14 @@ pixel_x = -32; vend_x_offset = 1 }, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "emerald" - }, +/turf/open/floor/almayer/emerald/northwest, /area/almayer/squads/charlie) "jSw" = ( /obj/structure/machinery/camera/autoname/almayer{ dir = 1; name = "ship-grade camera" }, -/turf/open/floor/almayer{ - icon_state = "red" - }, +/turf/open/floor/almayer/red, /area/almayer/shipboard/brig/processing) "jSy" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -46039,51 +33261,53 @@ pixel_x = 2; pixel_y = 10 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "green" - }, +/turf/open/floor/almayer/green/west, /area/almayer/living/offices) -"jSY" = ( +"jTj" = ( /obj/effect/decal/warning_stripes{ - icon_state = "NW-out"; - pixel_y = 1 + icon_state = "E" }, -/obj/effect/decal/warning_stripes{ - icon_state = "NE-out"; - pixel_y = 1 +/turf/open/floor/almayer/plating/northeast, +/area/almayer/medical/upper_medical) +"jTt" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/aft_hallway) -"jTi" = ( -/obj/item/reagent_container/glass/bucket/janibucket{ - pixel_x = -1; - pixel_y = 13 +/obj/structure/machinery/door_control{ + id = "laddernortheast"; + name = "North East Ladders Shutters"; + pixel_y = -25; + req_one_access_txt = "2;3;12;19"; + throw_range = 15 }, -/turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_s) -"jTj" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E" +/turf/open/floor/almayer/green, +/area/almayer/hallways/lower/starboard_midship_hallway) +"jTB" = ( +/turf/open/floor/almayer/orangecorner/north, +/area/almayer/engineering/lower) +"jTH" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" +/obj/structure/machinery/door/poddoor/almayer/open{ + dir = 4; + id = "Hangar Lockdown"; + name = "\improper Hangar Lockdown Blast Door" }, -/area/almayer/medical/upper_medical) -"jTu" = ( -/obj/structure/sign/safety/nonpress_ag{ - pixel_x = 32 +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_p) +/turf/open/floor/almayer, +/area/almayer/hallways/lower/vehiclehangar) "jTI" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "emerald" - }, +/turf/open/floor/almayer/emerald/north, /area/almayer/squads/charlie_delta_shared) +"jTU" = ( +/obj/structure/bed, +/obj/item/bedsheet/red, +/turf/open/floor/wood/ship, +/area/almayer/shipboard/brig/warden_office) "jUb" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/toy/deck{ @@ -46097,96 +33321,73 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/bridgebunks) -"jUn" = ( -/obj/structure/surface/table/reinforced/almayer_B, -/obj/structure/machinery/door/window/southleft{ - desc = "A window, that is also a door. A windoor if you will. This one is stronger."; - health = 500; - name = "Reinforced Glass door"; - req_one_access_txt = "2;35" - }, -/turf/open/floor/almayer, -/area/almayer/engineering/engineering_workshop/hangar) -"jUo" = ( -/obj/structure/pipes/standard/manifold/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "orangefull" - }, -/area/almayer/living/briefing) -"jUs" = ( +"jUh" = ( +/obj/structure/largecrate/random/barrel/red, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_a_s) +"jUl" = ( /obj/effect/decal/warning_stripes{ - icon_state = "NE-out"; - pixel_x = 1; - pixel_y = 1 + icon_state = "E" }, -/obj/effect/decal/warning_stripes{ - icon_state = "SE-out"; - pixel_x = 1 +/turf/open/floor/almayer/plate, +/area/almayer/engineering/lower/workshop) +"jUq" = ( +/obj/structure/machinery/firealarm{ + pixel_y = -28 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/aft_hallway) +/obj/structure/bed/chair/comfy/charlie{ + dir = 1 + }, +/turf/open/floor/almayer/plate, +/area/almayer/living/briefing) "jUx" = ( /obj/structure/machinery/door/airlock/almayer/secure/reinforced{ dir = 2; name = "\improper Evacuation Airlock SL-2"; req_access = null }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/powered) -"jUG" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ +"jUF" = ( +/obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 }, -/obj/structure/machinery/light{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, -/area/almayer/medical/upper_medical) -"jUL" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/sign/safety/distribution_pipes{ - pixel_x = 32 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_a_s) +/turf/open/floor/almayer/plate, +/area/almayer/engineering/lower/workshop) "jUM" = ( /obj/structure/machinery/camera/autoname/almayer/containment{ dir = 8 }, /obj/structure/pipes/vents/pump, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/medical/medical_science) -"jUW" = ( -/obj/effect/step_trigger/clone_cleaner, +"jUV" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, /obj/effect/decal/warning_stripes{ icon_state = "N"; - pixel_y = 1 - }, -/obj/structure/sign/safety/stairs{ - pixel_x = -17 - }, -/turf/open/floor/almayer{ - icon_state = "red" + pixel_y = 2 }, -/area/almayer/hallways/aft_hallway) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_f_s) "jUY" = ( -/turf/open/floor/almayer{ - icon_state = "silver" - }, +/turf/open/floor/almayer/silver, /area/almayer/shipboard/brig/cic_hallway) "jVa" = ( /turf/open/floor/almayer, /area/almayer/shipboard/brig/cells) +"jVg" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/almayer/command/corporateliaison) "jVr" = ( /obj/structure/machinery/cm_vending/clothing/marine/alpha{ density = 0; @@ -46196,9 +33397,7 @@ /obj/structure/sign/safety/cryo{ pixel_x = 32 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/alpha) "jVt" = ( /obj/effect/decal/warning_stripes{ @@ -46210,10 +33409,15 @@ /turf/open/floor/almayer/research/containment/corner3, /area/almayer/medical/containment/cell) "jVE" = ( -/turf/open/floor/almayer{ - icon_state = "test_floor5" - }, +/turf/open/floor/almayer/test_floor5, /area/almayer/command/computerlab) +"jWb" = ( +/obj/structure/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/turf/open/floor/almayer/plate, +/area/almayer/engineering/lower/engine_core) "jWh" = ( /turf/closed/wall/almayer, /area/almayer/engineering/upper_engineering/port) @@ -46223,135 +33427,156 @@ }, /turf/open/floor/wood/ship, /area/almayer/living/chapel) -"jWt" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/manifold/hidden/supply, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/starboard_hallway) "jWu" = ( /obj/effect/decal/warning_stripes{ icon_state = "NW-out"; pixel_y = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/offices) -"jWC" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, -/area/almayer/command/lifeboat) -"jWH" = ( -/obj/structure/machinery/power/apc/almayer/hardened{ - cell_type = /obj/item/cell/hyper; - dir = 1 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "NE-out"; - pixel_y = 1 +"jXc" = ( +/obj/structure/sign/safety/maint{ + pixel_x = -17 }, -/turf/open/floor/almayer{ - icon_state = "mono" +/obj/structure/machinery/disposal, +/obj/structure/disposalpipe/trunk{ + dir = 4 }, -/area/almayer/lifeboat_pumps/north1) -"jWU" = ( -/obj/effect/step_trigger/clone_cleaner, -/obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/floor/plating/almayer{ - allow_construction = 0 +/turf/open/floor/almayer/red/southwest, +/area/almayer/shipboard/brig/starboard_hallway) +"jXd" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" }, -/area/almayer/hallways/starboard_hallway) +/obj/structure/pipes/standard/manifold/hidden/supply, +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/processing) "jXf" = ( /obj/structure/machinery/door/airlock/almayer/medical{ id_tag = "or03"; name = "Lobby" }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/medical/lower_medical_medbay) "jXk" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W" +/obj/effect/decal/cleanable/dirt, +/obj/structure/largecrate/supply/weapons/m39{ + pixel_x = 2 }, -/obj/structure/pipes/vents/scrubber{ - dir = 1 +/obj/structure/largecrate/supply/weapons/m41a{ + layer = 3.1; + pixel_x = 6; + pixel_y = 17 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" +/turf/open/floor/almayer/plate, +/area/almayer/maint/upper/u_m_s) +"jXN" = ( +/obj/docking_port/stationary/escape_pod/south, +/turf/open/floor/plating, +/area/almayer/maint/upper/u_m_s) +"jXR" = ( +/obj/effect/step_trigger/clone_cleaner, +/obj/structure/blocker/forcefield/multitile_vehicles, +/obj/structure/sign/safety/stairs{ + pixel_x = 8; + pixel_y = 32 }, -/area/almayer/hallways/vehiclehangar) -"jXW" = ( -/obj/structure/closet/firecloset, -/turf/open/floor/almayer{ - icon_state = "cargo" +/turf/open/floor/plating/almayer/no_build, +/area/almayer/hallways/lower/starboard_fore_hallway) +"jYa" = ( +/obj/structure/machinery/vending/hydroseeds, +/turf/open/floor/almayer/plate, +/area/almayer/maint/upper/u_a_s) +"jYc" = ( +/obj/item/bedsheet/blue{ + layer = 3.2 }, -/area/almayer/command/lifeboat) -"jXY" = ( -/obj/structure/largecrate/random/case/double, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/item/bedsheet/blue{ + pixel_y = 13 }, -/area/almayer/hull/upper_hull/u_a_s) -"jYd" = ( -/obj/structure/machinery/gear{ - id = "vehicle_elevator_gears" +/obj/item/toy/plush/therapy/red{ + desc = "A USCM approved plush doll. It's not soft and hardly comforting!"; + force = 15; + layer = 4.1; + name = "Sergeant Huggs"; + pixel_y = 15; + throwforce = 15 }, -/turf/open/floor/almayer{ - icon_state = "mono" +/obj/item/clothing/head/cmcap{ + layer = 4.1; + pixel_x = -1; + pixel_y = 22 }, -/area/almayer/hallways/vehiclehangar) -"jYR" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = -2; + pixel_y = 4 }, -/obj/effect/decal/warning_stripes{ - icon_state = "S"; - layer = 3.3 +/obj/structure/window/reinforced{ + dir = 8; + layer = 3.3; + pixel_y = 4 }, -/obj/structure/machinery/camera/autoname/almayer/containment/ares{ - dir = 4 +/obj/structure/bed{ + can_buckle = 0 + }, +/obj/structure/bed{ + buckling_y = 13; + layer = 3.5; + pixel_y = 13 + }, +/turf/open/floor/almayer/blue, +/area/almayer/living/port_emb) +"jYm" = ( +/obj/item/reagent_container/food/snacks/wrapped/chunk, +/obj/structure/surface/rack, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/p_stern) +"jYH" = ( +/obj/structure/blocker/invisible_wall, +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 }, -/turf/open/floor/almayer/no_build{ - icon_state = "tcomms" +/mob/living/silicon/decoy/ship_ai{ + layer = 2.98; + pixel_y = -16 }, +/turf/open/floor/almayer/aicore/no_build, /area/almayer/command/airoom) +"jYM" = ( +/obj/structure/ladder{ + height = 1; + id = "ForePortMaint" + }, +/obj/structure/sign/safety/ladder{ + pixel_x = 8; + pixel_y = -32 + }, +/turf/open/floor/plating/almayer, +/area/almayer/maint/hull/lower/p_bow) "jZd" = ( /obj/structure/pipes/vents/pump{ dir = 8; id_tag = "mining_outpost_pump" }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/medical/operating_room_four) -"jZm" = ( -/obj/structure/machinery/brig_cell/cell_4{ - pixel_x = -32; - pixel_y = -32 - }, -/turf/open/floor/almayer, -/area/almayer/shipboard/brig/processing) -"jZr" = ( -/obj/structure/surface/table/almayer, -/obj/structure/machinery/computer/emails{ - dir = 1 +"jZe" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - icon_state = "redfull" +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/area/almayer/living/briefing) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/port_fore_hallway) +"jZo" = ( +/obj/structure/machinery/door/airlock/almayer/maint, +/obj/effect/step_trigger/clone_cleaner, +/turf/open/floor/almayer/test_floor4, +/area/almayer/maint/hull/upper/u_m_p) "jZs" = ( /obj/structure/machinery/light/containment{ dir = 4 @@ -46363,9 +33588,7 @@ icon_state = "E"; pixel_x = 1 }, -/turf/open/floor/almayer/research/containment/corner{ - dir = 1 - }, +/turf/open/floor/almayer/research/containment/corner/north, /area/almayer/medical/containment/cell) "jZu" = ( /obj/structure/machinery/door_control{ @@ -46382,35 +33605,17 @@ /turf/open/floor/carpet, /area/almayer/command/cichallway) "jZv" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "emerald" - }, +/turf/open/floor/almayer/emerald/north, /area/almayer/squads/charlie) -"jZL" = ( -/obj/structure/surface/table/almayer, -/obj/structure/machinery/computer/cameras/almayer_network{ - dir = 1 - }, -/obj/structure/machinery/light{ - unacidable = 1; - unslashable = 1 - }, -/obj/structure/transmitter{ - dir = 1; - name = "Brig Warden's Office Telephone"; - phone_category = "Offices"; - phone_id = "Brig Warden's Office"; - pixel_x = -16 +"jZC" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" }, -/turf/open/floor/almayer, -/area/almayer/shipboard/brig/main_office) -"jZO" = ( -/obj/structure/largecrate/random/barrel/blue, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/structure/sign/safety/escapepod{ + pixel_x = -17 }, -/area/almayer/hull/lower_hull/l_m_p) +/turf/open/floor/almayer/red/east, +/area/almayer/hallways/upper/starboard) "jZU" = ( /obj/structure/machinery/power/apc/almayer{ dir = 1 @@ -46419,97 +33624,81 @@ /area/almayer/medical/containment/cell/cl) "jZY" = ( /obj/structure/closet/l3closet/virology, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, +/turf/open/floor/almayer/redfull, /area/almayer/medical/upper_medical) +"kac" = ( +/obj/structure/surface/rack, +/obj/item/storage/toolbox/mechanical, +/obj/item/tool/hand_labeler, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/s_bow) "kaj" = ( -/obj/effect/step_trigger/clone_cleaner, -/obj/effect/decal/warning_stripes{ - icon_state = "SW-out" - }, -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/aft_hallway) +/obj/structure/machinery/light, +/turf/open/floor/almayer/green, +/area/almayer/hallways/upper/fore_hallway) +"kak" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/almayer/silver, +/area/almayer/hallways/upper/midship_hallway) "kam" = ( /obj/item/tool/screwdriver{ layer = 2.9; pixel_x = -21; pixel_y = -14 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/port_emb) "kan" = ( /turf/closed/wall/almayer/white, /area/almayer/medical/lower_medical_medbay) -"kat" = ( -/obj/structure/pipes/vents/scrubber{ - dir = 4 - }, -/turf/open/floor/almayer, -/area/almayer/hull/lower_hull/l_m_s) -"kaA" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "silver" +"kaq" = ( +/obj/effect/projector{ + name = "Almayer_Up2"; + vector_x = -1; + vector_y = 100 }, -/area/almayer/hallways/aft_hallway) +/turf/open/floor/almayer/no_build/plate, +/area/almayer/hallways/lower/starboard_fore_hallway) "kaB" = ( /obj/structure/machinery/cm_vending/gear/tl{ density = 0; pixel_x = -32; vend_x_offset = 1 }, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/almayer/red/northwest, /area/almayer/squads/alpha) -"kaF" = ( -/obj/effect/step_trigger/clone_cleaner, -/obj/structure/blocker/forcefield/multitile_vehicles, -/obj/structure/sign/safety/stairs{ - pixel_x = 8; - pixel_y = 32 - }, -/turf/open/floor/plating/almayer{ - allow_construction = 0 +"kaE" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 }, -/area/almayer/hallways/starboard_hallway) +/turf/open/floor/almayer/cargo_arrow/west, +/area/almayer/hallways/upper/midship_hallway) "kaI" = ( /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "bluefull" - }, +/turf/open/floor/almayer/bluefull, /area/almayer/squads/charlie_delta_shared) -"kaJ" = ( -/obj/structure/bed/chair{ +"kaO" = ( +/obj/structure/machinery/power/apc/almayer{ + dir = 8 + }, +/turf/open/floor/almayer/silver/west, +/area/almayer/hallways/upper/midship_hallway) +"kaQ" = ( +/obj/structure/disposalpipe/junction, +/obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "plate" +/turf/open/floor/almayer/red/east, +/area/almayer/shipboard/brig/starboard_hallway) +"kaS" = ( +/obj/structure/bed/chair/office/dark{ + dir = 8 }, +/turf/open/floor/almayer/plate, /area/almayer/command/combat_correspondent) -"kaN" = ( -/obj/structure/platform{ - dir = 1 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_a_p) "kbc" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -46521,46 +33710,49 @@ /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 2 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/squads/bravo) -"kbx" = ( -/obj/structure/machinery/disposal, -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/obj/structure/window/reinforced, -/turf/open/floor/prison{ - icon_state = "kitchen" +"kbl" = ( +/obj/structure/stairs{ + dir = 8; + icon_state = "ramptop" }, -/area/almayer/engineering/upper_engineering) -"kbH" = ( -/obj/effect/step_trigger/teleporter_vector{ - name = "Almayer_AresDown"; - vector_x = 97; - vector_y = -65 +/obj/effect/projector{ + name = "Almayer_Down3"; + vector_x = 1; + vector_y = -102 }, -/obj/structure/platform{ +/obj/structure/machinery/light, +/turf/open/floor/plating/almayer/no_build, +/area/almayer/hallways/upper/fore_hallway) +"kbv" = ( +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/upper/starboard) +"kbw" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer, +/obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/obj/structure/stairs{ +/obj/structure/machinery/door/airlock/multi_tile/almayer/engidoor{ dir = 1 }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" +/turf/open/floor/almayer/test_floor4, +/area/almayer/engineering/lower/engine_core) +"kbx" = ( +/obj/structure/machinery/disposal, +/obj/structure/disposalpipe/trunk{ + dir = 1 }, -/area/almayer/command/airoom) +/obj/structure/window/reinforced, +/turf/open/floor/prison/kitchen, +/area/almayer/engineering/upper_engineering) "kbJ" = ( /obj/effect/decal/warning_stripes{ icon_state = "E"; pixel_x = 1 }, /obj/structure/pipes/standard/simple/hidden/supply/no_boom, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/southeast, /area/almayer/medical/containment) "kbV" = ( /obj/structure/platform{ @@ -46568,6 +33760,25 @@ }, /turf/open/floor/almayer, /area/almayer/living/briefing) +"kbX" = ( +/obj/structure/disposalpipe/segment{ + dir = 8 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/machinery/camera/autoname/almayer, +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/cells) +"kcg" = ( +/obj/structure/pipes/vents/pump{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/almayer/plate, +/area/almayer/hallways/lower/port_midship_hallway) "kcl" = ( /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 2 @@ -46578,129 +33789,118 @@ "kcp" = ( /turf/closed/wall/almayer, /area/almayer/living/auxiliary_officer_office) +"kcs" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 5 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_f_p) +"kcx" = ( +/obj/structure/machinery/door/poddoor/almayer/open{ + dir = 4; + id = "CIC Lockdown"; + name = "\improper Combat Information Center Blast Door" + }, +/obj/structure/machinery/door/airlock/almayer/command/reinforced{ + closeOtherId = "ciclobby_n"; + name = "\improper Combat Information Center" + }, +/turf/open/floor/almayer/test_floor4, +/area/almayer/command/cic) "kcA" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/north, /area/almayer/engineering/upper_engineering/port) +"kcG" = ( +/obj/structure/largecrate/random/secure, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_a_s) "kcH" = ( /turf/closed/wall/almayer/reinforced, /area/almayer/living/synthcloset) "kcN" = ( -/turf/closed/wall/almayer/outer, +/turf/closed/wall/almayer/reinforced/temphull, /area/almayer/living/commandbunks) +"kde" = ( +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/general_equipment) "kdi" = ( /obj/item/device/flashlight/pen{ pixel_x = 4; pixel_y = -6 }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/engineering/laundry) -"kdt" = ( -/obj/structure/machinery/door_control{ - id = "OuterShutter"; - name = "Outer Shutter"; - pixel_x = 5; - pixel_y = -2; - req_one_access_txt = "1;3" - }, -/obj/structure/surface/table/reinforced/almayer_B, -/obj/structure/machinery/door_control{ - id = "OfficeSafeRoom"; - name = "Office Safe Room"; - pixel_x = 5; - pixel_y = 5; - req_one_access_txt = "1;3" +"kdn" = ( +/obj/effect/step_trigger/clone_cleaner, +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + layer = 2.5; + pixel_y = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" +/turf/open/floor/almayer/red/east, +/area/almayer/hallways/upper/port) +"kdo" = ( +/obj/structure/largecrate/random/barrel/red, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_f_s) +"kdv" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" }, -/area/almayer/hull/lower_hull/l_f_s) +/turf/open/floor/almayer/orange, +/area/almayer/engineering/upper_engineering/starboard) "kdB" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/medical/lower_medical_lobby) +"keG" = ( +/obj/structure/machinery/door/airlock/almayer/security{ + dir = 2; + name = "\improper Interrogation Observation" + }, +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 1 + }, +/turf/open/floor/almayer/test_floor4, +/area/almayer/shipboard/brig/interrogation) +"keO" = ( +/obj/structure/largecrate/random/secure, +/obj/effect/decal/warning_stripes{ + icon_state = "E" + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_a_p) "keR" = ( /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer, /area/almayer/engineering/upper_engineering/starboard) -"kff" = ( -/obj/structure/machinery/light, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "red" - }, -/area/almayer/hallways/stern_hallway) -"kfv" = ( -/obj/structure/surface/table/almayer, -/obj/item/stack/nanopaste{ - pixel_x = -3; - pixel_y = 14 - }, -/turf/open/floor/almayer{ - icon_state = "plate" +"kfB" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/machinery/light{ + dir = 8 }, -/area/almayer/hull/upper_hull/u_a_p) +/turf/open/floor/almayer, +/area/almayer/maint/hull/upper/u_f_p) "kfE" = ( /obj/structure/bed/sofa/south/grey/right, /obj/structure/machinery/cm_vending/sorted/medical/wall_med{ pixel_y = 25 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/north, /area/almayer/shipboard/brig/cic_hallway) -"kfG" = ( -/obj/structure/surface/table/almayer, -/obj/effect/decal/cleanable/dirt, -/obj/item/device/flashlight/lamp{ - pixel_x = 15 - }, -/turf/open/floor/almayer{ - icon_state = "bluefull" - }, -/area/almayer/living/briefing) -"kfN" = ( -/obj/structure/closet/secure_closet/brig, -/turf/open/floor/almayer{ - icon_state = "red" - }, -/area/almayer/shipboard/brig/processing) -"kfP" = ( -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 1 +"kfI" = ( +/obj/structure/machinery/light/small{ + dir = 4 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/starboard_hallway) +/turf/open/floor/almayer/plate, +/area/almayer/engineering/lower) "kfU" = ( /turf/open/floor/plating, /area/almayer/powered/agent) -"kfX" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "SE-out"; - pixel_x = 1 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_a_p) -"kge" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 1 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/shipboard/brig/processing) "kgp" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 10 @@ -46715,19 +33915,8 @@ pixel_x = 23; pixel_y = 32 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/north, /area/almayer/medical/upper_medical) -"kgr" = ( -/obj/structure/machinery/camera/autoname/almayer{ - name = "ship-grade camera" - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/starboard_hallway) "kgs" = ( /obj/structure/window/framed/almayer/white, /obj/structure/machinery/door/poddoor/shutters/almayer/open{ @@ -46740,69 +33929,91 @@ /obj/structure/machinery/door/poddoor/almayer/biohazard/white, /turf/open/floor/plating, /area/almayer/medical/medical_science) -"khd" = ( -/obj/structure/bed/chair{ - dir = 4 +"kgt" = ( +/obj/structure/machinery/light{ + dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_fore_hallway) +"kgD" = ( +/obj/structure/sign/safety/cryo{ + pixel_x = 35 }, -/area/almayer/squads/charlie_delta_shared) -"khD" = ( -/turf/open/floor/almayer{ - icon_state = "plate" +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_m_s) +"kgS" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/area/almayer/living/offices/flight) -"khE" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" +/obj/structure/pipes/standard/manifold/hidden/supply, +/turf/open/floor/almayer/plate, +/area/almayer/hallways/lower/vehiclehangar) +"kgV" = ( +/obj/structure/machinery/power/apc/almayer{ + dir = 4 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + layer = 3.33; + pixel_x = 2 }, -/area/almayer/engineering/upper_engineering/port) -"khJ" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; - pixel_y = 1 + layer = 3.33; + pixel_y = 2 }, /obj/effect/decal/warning_stripes{ - icon_state = "S"; + icon_state = "W"; layer = 3.3 }, -/obj/structure/machinery/camera/autoname/almayer/containment/ares{ - dir = 8 - }, -/turf/open/floor/almayer/no_build{ - icon_state = "tcomms" - }, -/area/almayer/command/airoom) -"khS" = ( -/obj/structure/machinery/light/small{ - dir = 8 +/obj/effect/decal/warning_stripes{ + icon_state = "S"; + layer = 3.3 }, -/turf/open/floor/almayer{ - icon_state = "plate" +/turf/open/floor/almayer/plating/northeast, +/area/almayer/hallways/upper/aft_hallway) +"khd" = ( +/obj/structure/bed/chair{ + dir = 4 }, -/area/almayer/hull/lower_hull/l_f_s) -"khX" = ( -/obj/structure/closet/secure_closet/fridge/dry/stock, -/turf/open/floor/almayer{ - icon_state = "plate" +/turf/open/floor/almayer/plate, +/area/almayer/squads/charlie_delta_shared) +"khf" = ( +/obj/structure/stairs/perspective{ + icon_state = "p_stair_ew_full_cap"; + layer = 3.5 }, -/area/almayer/living/grunt_rnr) -"kif" = ( -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/structure/platform{ + dir = 1 }, -/area/almayer/shipboard/brig/main_office) -"kij" = ( +/turf/open/floor/almayer/plating/northeast, +/area/almayer/engineering/lower/engine_core) +"khD" = ( +/turf/open/floor/almayer/plate, +/area/almayer/living/offices/flight) +"khE" = ( +/turf/open/floor/almayer/orange/east, +/area/almayer/engineering/upper_engineering/port) +"khI" = ( +/obj/structure/disposalpipe/segment, /obj/structure/sign/safety/distribution_pipes{ - pixel_x = -17 + pixel_x = 32 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "green" +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_f_p) +"kil" = ( +/obj/structure/stairs/perspective{ + icon_state = "p_stair_full" + }, +/obj/item/storage/belt/utility, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/repair_bay) +"kin" = ( +/obj/structure/machinery/light{ + dir = 8 }, -/area/almayer/hallways/aft_hallway) +/turf/open/floor/almayer/red/east, +/area/almayer/hallways/upper/port) "kio" = ( /obj/structure/machinery/firealarm{ pixel_y = 28 @@ -46811,105 +34022,160 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/port_emb) -"kiF" = ( -/obj/effect/decal/cleanable/blood/oil, -/obj/effect/decal/warning_stripes{ - icon_state = "SW-out" +"kiy" = ( +/obj/structure/machinery/light{ + dir = 8 }, -/turf/open/floor/almayer, -/area/almayer/engineering/engineering_workshop/hangar) +/turf/open/floor/almayer/blue/west, +/area/almayer/hallways/lower/port_midship_hallway) +"kiG" = ( +/obj/structure/machinery/power/smes/buildable, +/obj/structure/machinery/status_display{ + pixel_y = 30 + }, +/obj/structure/sign/safety/high_voltage{ + pixel_x = 32; + pixel_y = -8 + }, +/obj/structure/sign/safety/hazard{ + pixel_x = 32; + pixel_y = 7 + }, +/turf/open/floor/almayer/tcomms, +/area/almayer/engineering/lower/engine_core) "kiM" = ( /obj/structure/surface/table/reinforced/almayer_B, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/grunt_rnr) +"kiR" = ( +/obj/structure/machinery/door/airlock/almayer/maint{ + dir = 1 + }, +/turf/open/floor/almayer/test_floor4, +/area/almayer/maint/hull/upper/u_a_s) "kiT" = ( /obj/structure/platform{ dir = 8 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/almayer/red/west, /area/almayer/lifeboat_pumps/south1) "kiU" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, /obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "orange" - }, +/turf/open/floor/almayer/orange, /area/almayer/squads/bravo) "kiV" = ( /obj/structure/surface/table/almayer, /obj/item/reagent_container/food/condiment/hotsauce/tabasco{ pixel_x = 11 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/almayer/red/north, /area/almayer/squads/alpha) -"kjN" = ( -/obj/structure/machinery/power/apc/almayer{ - dir = 4 +"kiX" = ( +/obj/structure/bed/chair/comfy/delta{ + dir = 1 }, -/turf/open/floor/almayer, -/area/almayer/shipboard/brig/surgery) -"kkt" = ( -/obj/structure/surface/table/almayer, -/obj/item/book/manual/marine_law, -/turf/open/floor/almayer{ - icon_state = "greenfull" +/turf/open/floor/almayer/plate, +/area/almayer/living/briefing) +"kjk" = ( +/obj/structure/machinery/cryopod/right, +/obj/structure/sign/safety/cryo{ + pixel_x = 32 }, -/area/almayer/living/offices) -"kkx" = ( -/obj/structure/pipes/standard/manifold/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "mono" +/turf/open/floor/almayer/cargo, +/area/almayer/shipboard/brig/cryo) +"kjw" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" }, -/area/almayer/lifeboat_pumps/south2) -"kkE" = ( /obj/effect/decal/warning_stripes{ - icon_state = "NE-out"; - pixel_x = 2; - pixel_y = 3 + icon_state = "E"; + pixel_x = 1 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 6 + }, +/turf/open/floor/almayer/plating/northeast, +/area/almayer/hallways/lower/vehiclehangar) +"kjD" = ( +/obj/structure/machinery/computer/demo_sim{ + dir = 4; + pixel_x = -17; + pixel_y = 8 + }, +/obj/structure/machinery/computer/working_joe{ + dir = 4; + pixel_x = -17; + pixel_y = -8 }, /turf/open/floor/almayer, -/area/almayer/hallways/port_hallway) -"kkO" = ( -/obj/structure/stairs/perspective{ - dir = 8; - icon_state = "p_stair_full" +/area/almayer/engineering/lower/workshop/hangar) +"kjO" = ( +/turf/open/floor/almayer/orangecorner/north, +/area/almayer/engineering/lower/engine_core) +"kjW" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/almayer/cargo, +/area/almayer/hallways/lower/port_midship_hallway) +"kjY" = ( +/obj/structure/largecrate/random/case/double, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_a_s) +"kkk" = ( +/obj/structure/machinery/power/monitor{ + name = "Core Power Monitoring" }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" +/obj/structure/sign/safety/terminal{ + pixel_x = -17 }, -/area/almayer/engineering/engine_core) -"klG" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 +/turf/open/floor/almayer/orange/west, +/area/almayer/engineering/lower/engine_core) +"kkt" = ( +/obj/structure/surface/table/almayer, +/obj/item/book/manual/marine_law, +/turf/open/floor/almayer/greenfull, +/area/almayer/living/offices) +"kkv" = ( +/obj/structure/toilet{ + dir = 8 }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 +/obj/structure/machinery/light/small, +/obj/structure/sink{ + dir = 8; + pixel_x = -12; + pixel_y = 2 }, -/turf/open/floor/carpet, -/area/almayer/living/commandbunks) +/turf/open/floor/almayer/dark_sterile, +/area/almayer/shipboard/brig/chief_mp_office) +"kkx" = ( +/obj/structure/pipes/standard/manifold/hidden/supply, +/turf/open/floor/almayer/mono, +/area/almayer/lifeboat_pumps/south2) +"kkN" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/manifold/fourway/hidden/supply, +/turf/open/floor/almayer/plate, +/area/almayer/hallways/lower/starboard_aft_hallway) +"kkW" = ( +/obj/structure/surface/table/almayer, +/obj/item/book/manual/atmospipes, +/obj/item/circuitboard/airalarm, +/turf/open/floor/almayer/orange/north, +/area/almayer/engineering/lower) "klH" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/medical/lower_medical_medbay) +"klT" = ( +/obj/structure/machinery/light/small, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_f_s) "kmd" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -46928,9 +34194,7 @@ icon_state = "N"; pixel_y = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/offices) "kmE" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -46938,62 +34202,41 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/lifeboat_pumps/north2) -"kmK" = ( -/obj/structure/platform{ - dir = 1 - }, -/obj/item/tool/mop, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_a_p) -"kmL" = ( -/obj/structure/surface/table/almayer, -/obj/item/storage/firstaid/regular{ - pixel_x = 8; - pixel_y = -2 - }, -/obj/item/storage/box/drinkingglasses{ - pixel_x = -7 - }, -/obj/item/reagent_container/spray/cleaner{ - pixel_x = -10; - pixel_y = 14 - }, -/obj/item/storage/xeno_tag_case/full{ - pixel_y = 8 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/command/corporateliason) -"kmM" = ( -/obj/structure/sink{ - pixel_y = 24 +"kmT" = ( +/obj/structure/sign/safety/maint{ + pixel_x = -17 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_s) -"kmY" = ( -/obj/structure/pipes/vents/pump{ - dir = 4 +/turf/open/floor/almayer/green/southwest, +/area/almayer/hallways/upper/fore_hallway) +"knb" = ( +/obj/effect/step_trigger/clone_cleaner, +/obj/effect/decal/warning_stripes{ + icon_state = "W" }, -/turf/open/floor/wood/ship, -/area/almayer/living/commandbunks) +/turf/open/floor/almayer/green/west, +/area/almayer/hallways/upper/fore_hallway) "kng" = ( /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/pilotbunks) +"knl" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/turf/open/floor/almayer/orangecorner/east, +/area/almayer/hallways/lower/starboard_aft_hallway) +"knm" = ( +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_fore_hallway) "knH" = ( /obj/structure/machinery/vending/coffee, /obj/structure/sign/safety/coffee{ pixel_x = 32 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "sterile_green_corner" - }, +/turf/open/floor/almayer/sterile_green_corner/east, /area/almayer/medical/lower_medical_lobby) "knK" = ( /obj/structure/kitchenspike, @@ -47001,31 +34244,33 @@ /obj/structure/machinery/light, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/grunt_rnr) -"knT" = ( -/obj/structure/safe/cl_office, -/turf/open/floor/wood/ship, -/area/almayer/command/corporateliason) -"koc" = ( -/obj/structure/machinery/status_display{ - pixel_y = -30 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/port_hallway) -"koz" = ( -/obj/structure/surface/table/almayer, -/obj/item/device/lightreplacer{ - pixel_x = 4; - pixel_y = 4 +"knL" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/almayer/cargo, +/area/almayer/lifeboat_pumps/south2) +"knU" = ( +/turf/open/floor/almayer/red/northwest, +/area/almayer/hallways/upper/aft_hallway) +"kon" = ( +/obj/structure/pipes/vents/pump{ + dir = 1 }, -/obj/item/storage/toolbox/emergency, -/obj/structure/sign/safety/water{ - pixel_x = 8; - pixel_y = 32 +/turf/open/floor/almayer/plate, +/area/almayer/maint/upper/u_a_p) +"kow" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" }, /turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_p) +/area/almayer/maint/hull/lower/l_f_p) +"kox" = ( +/obj/structure/machinery/door/poddoor/shutters/almayer/uniform_vendors{ + dir = 4; + id = "civ_uniforms" + }, +/turf/open/floor/almayer/cargo_arrow/west, +/area/almayer/living/gym) "koB" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -47042,39 +34287,33 @@ /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/bravo) -"koT" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/hull/lower_hull/l_a_p) -"kpc" = ( -/obj/structure/reagent_dispensers/watertank, -/turf/open/floor/plating, -/area/almayer/command/airoom) -"kpl" = ( -/obj/structure/machinery/door_control/cl/office/door{ - pixel_y = -20 - }, -/turf/open/floor/almayer{ - icon_state = "plate" +"kph" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer, +/obj/structure/machinery/door/airlock/multi_tile/almayer/engidoor{ + dir = 1 }, -/area/almayer/hallways/aft_hallway) +/turf/open/floor/almayer/test_floor4, +/area/almayer/engineering/lower/engine_core) +"kpj" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_m_s) "kpo" = ( /obj/structure/machinery/floodlight/landing{ name = "bolted floodlight" }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/lifeboat_pumps/south2) +"kpL" = ( +/obj/structure/sign/safety/life_support{ + pixel_x = 8; + pixel_y = 32 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/upper/u_a_s) "kpQ" = ( /obj/structure/machinery/door_control{ id = "engidorm"; @@ -47082,75 +34321,50 @@ pixel_y = 2 }, /obj/structure/closet/secure_closet/personal, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/east, /area/almayer/engineering/upper_engineering/port) -"kpX" = ( -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12 - }, -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12; - pixel_y = 12 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_a_p) -"kpY" = ( -/obj/structure/surface/table/almayer, -/obj/item/clothing/head/hardhat{ - pixel_y = 15 - }, -/obj/item/clothing/head/hardhat/dblue{ - pixel_x = -7; - pixel_y = 10 - }, -/obj/item/clothing/head/hardhat{ - pixel_x = 4; - pixel_y = 7 - }, -/obj/item/clothing/head/hardhat/orange{ - pixel_x = 7; - pixel_y = -5 - }, -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_f_p) -"kqc" = ( -/obj/structure/surface/table/almayer, -/obj/item/storage/belt/utility/full, +"kqa" = ( +/obj/structure/closet, /obj/item/clothing/glasses/welding, -/obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "plate" +/turf/open/floor/almayer/plate, +/area/almayer/maint/upper/u_a_s) +"kqb" = ( +/obj/structure/machinery/light/small{ + dir = 1 }, -/area/almayer/engineering/engineering_workshop) -"kqf" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_m_p) +"kqd" = ( +/obj/structure/machinery/light{ + unacidable = 1; + unslashable = 1 }, -/obj/effect/decal/warning_stripes{ - icon_state = "SW-out" +/turf/open/floor/almayer/red, +/area/almayer/shipboard/brig/mp_bunks) +"kqm" = ( +/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ + pixel_y = 25 }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/repair_bay) +"kqo" = ( +/obj/structure/machinery/light, /obj/effect/decal/warning_stripes{ - icon_state = "NW-out"; - pixel_y = 1 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" + icon_state = "E"; + pixel_x = 1 }, -/area/almayer/hallways/aft_hallway) +/obj/structure/machinery/cm_vending/sorted/medical/bolted, +/obj/structure/medical_supply_link/green, +/turf/open/floor/almayer/sterile_green_corner/east, +/area/almayer/medical/medical_science) "kqt" = ( /obj/structure/machinery/door/poddoor/almayer/open{ dir = 4; id = "CIC Lockdown"; name = "\improper Combat Information Center Blast Door" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/obj/structure/machinery/door/firedoor/border_only/almayer, +/turf/open/floor/almayer/test_floor4, /area/almayer/living/bridgebunks) "kqv" = ( /obj/structure/machinery/light{ @@ -47173,11 +34387,30 @@ /obj/item/tool/pen{ pixel_y = 3 }, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/southeast, /area/almayer/shipboard/brig/cic_hallway) +"kqB" = ( +/obj/structure/prop/holidays/string_lights{ + pixel_y = 27 + }, +/obj/structure/machinery/light/small{ + dir = 4 + }, +/obj/structure/surface/table/almayer, +/obj/item/storage/box/drinkingglasses, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_m_s) +"kqC" = ( +/obj/structure/machinery/light/small{ + dir = 4 + }, +/obj/structure/largecrate/random/barrel/green, +/obj/structure/sign/safety/maint{ + pixel_x = 15; + pixel_y = 32 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/s_bow) "kqK" = ( /obj/structure/machinery/conveyor{ dir = 8; @@ -47187,51 +34420,81 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/gym) "kqN" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "bluecorner" - }, +/turf/open/floor/almayer/bluecorner, /area/almayer/living/basketball) -"kro" = ( -/turf/open/floor/almayer{ - icon_state = "green" - }, -/area/almayer/hallways/port_hallway) "krp" = ( /obj/structure/surface/table/almayer, /obj/item/storage/box/cups, /obj/structure/machinery/alarm/almayer{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/gym) +"kry" = ( +/obj/structure/machinery/flasher{ + id = "Perma 1"; + pixel_y = 24 + }, +/turf/open/floor/almayer/plate, +/area/almayer/shipboard/brig/perma) +"krA" = ( +/obj/structure/window/framed/almayer, +/obj/structure/machinery/door/poddoor/shutters/almayer/open{ + dir = 4; + id = "Firing_Range_1"; + name = "range shutters" + }, +/turf/open/floor/plating, +/area/almayer/living/cryo_cells) +"krG" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/s_bow) +"krJ" = ( +/obj/item/tool/wet_sign, +/obj/effect/decal/cleanable/blood/oil, +/turf/open/floor/plating, +/area/almayer/maint/lower/constr) "krN" = ( /obj/structure/machinery/conveyor{ id = "req_belt" }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/almayer/squads/req) +"krO" = ( +/obj/structure/machinery/cm_vending/sorted/medical, +/obj/structure/medical_supply_link, +/turf/open/floor/almayer/sterile_green_side/north, +/area/almayer/shipboard/brig/medical) "krS" = ( /obj/structure/machinery/camera/autoname/almayer{ name = "ship-grade camera" }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/north, /area/almayer/engineering/upper_engineering/starboard) +"krU" = ( +/obj/structure/surface/table/almayer, +/obj/item/device/flashlight/lamp{ + layer = 3.3; + pixel_x = 15 + }, +/obj/item/tool/screwdriver, +/obj/item/bananapeel{ + desc = "An experimental B8 Smart-Scope. Based on the technologies used in the Smart Gun by ARMAT, this sight has integrated IFF systems. It can only attach to the L42A Battle Rifle, M44 Combat Revolver, and M46C Pulse Rifle. This one appears to be covered in gun oil"; + icon = 'icons/obj/items/weapons/guns/attachments.dmi'; + icon_state = "iffbarrel"; + name = "Broken B8 Smart-Scope"; + pixel_x = -3; + pixel_y = 7 + }, +/turf/open/floor/almayer/orangefull, +/area/almayer/living/briefing) "krZ" = ( /obj/structure/closet/secure_closet/cargotech, /obj/item/clothing/accessory/storage/webbing, @@ -47242,94 +34505,81 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/almayer/green/north, /area/almayer/squads/req) +"ksg" = ( +/obj/structure/disposalpipe/segment{ + dir = 8 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/processing) +"ksm" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/starboard_hallway) "ksp" = ( /obj/structure/machinery/cryopod/right{ pixel_y = 6 }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/squads/bravo) -"ksv" = ( -/obj/structure/closet/secure_closet/securecom, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, -/area/almayer/command/cic) +"ksw" = ( +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/p_stern) "ksN" = ( -/turf/open/floor/almayer/uscm/directional{ - dir = 6 - }, +/turf/open/floor/almayer/uscm/directional/southeast, /area/almayer/living/briefing) -"ksP" = ( -/obj/structure/surface/table/almayer, -/obj/item/ashtray/bronze{ - pixel_x = 3; - pixel_y = 5 - }, -/obj/effect/decal/cleanable/ash, -/obj/item/trash/cigbutt/ucigbutt{ - pixel_x = 4; - pixel_y = 13 - }, -/obj/item/trash/cigbutt/ucigbutt{ - pixel_x = -7; - pixel_y = 14 - }, -/obj/item/trash/cigbutt/ucigbutt{ - pixel_x = -13; - pixel_y = 8 - }, -/obj/item/trash/cigbutt/ucigbutt{ - pixel_x = -6; - pixel_y = 9 - }, -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_f_p) -"kta" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" - }, -/area/almayer/shipboard/brig/evidence_storage) -"ktc" = ( +"kti" = ( /obj/effect/decal/warning_stripes{ - icon_state = "S" + icon_state = "NE-out"; + pixel_x = 2; + pixel_y = 3 }, -/turf/open/floor/wood/ship, -/area/almayer/living/commandbunks) -"ktB" = ( -/obj/structure/largecrate/random/barrel/white, -/turf/open/floor/almayer{ - icon_state = "cargo" +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/starboard_midship_hallway) +"ktl" = ( +/obj/structure/machinery/firealarm{ + dir = 1; + pixel_y = -28 }, -/area/almayer/hull/lower_hull/l_m_s) -"ktO" = ( +/turf/open/floor/almayer/green, +/area/almayer/hallways/lower/starboard_midship_hallway) +"ktI" = ( /obj/effect/decal/warning_stripes{ - icon_state = "S" + icon_state = "W" }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" +/obj/structure/platform{ + dir = 4 }, -/area/almayer/engineering/engine_core) -"ktP" = ( -/obj/structure/curtain/red, -/turf/open/floor/almayer{ - icon_state = "plate" +/turf/open/floor/almayer/silver/east, +/area/almayer/hallways/lower/repair_bay) +"ktQ" = ( +/obj/structure/pipes/standard/simple/hidden/supply/no_boom{ + dir = 4 }, -/area/almayer/hull/lower_hull/l_m_s) +/turf/open/floor/almayer/aicore/no_build/ai_arrow/west, +/area/almayer/command/airoom) +"ktR" = ( +/obj/item/trash/crushed_cup, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_m_s) "ktX" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "greencorner" - }, +/turf/open/floor/almayer/greencorner/east, /area/almayer/living/grunt_rnr) +"kui" = ( +/obj/structure/sign/safety/hazard{ + pixel_y = 32 + }, +/obj/structure/sign/safety/ammunition{ + pixel_x = 15; + pixel_y = 32 + }, +/obj/structure/machinery/vending/security/riot, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/armory) "kuk" = ( /obj/structure/pipes/vents/pump{ dir = 1 @@ -47344,65 +34594,88 @@ /turf/open/floor/almayer, /area/almayer/squads/req) "kuw" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "emeraldcorner" - }, +/turf/open/floor/almayer/emeraldcorner/east, /area/almayer/living/briefing) +"kuJ" = ( +/obj/structure/pipes/vents/scrubber, +/turf/open/floor/almayer/red/north, +/area/almayer/shipboard/brig/processing) +"kuK" = ( +/obj/structure/machinery/power/apc/almayer{ + dir = 1 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_m_p) +"kvf" = ( +/obj/structure/machinery/door/airlock/almayer/engineering{ + dir = 2; + name = "\improper Engineering Workshop" + }, +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 1 + }, +/turf/open/floor/almayer/test_floor4, +/area/almayer/engineering/lower/workshop) "kvh" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/station_alert{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/engineering/upper_engineering) -"kvz" = ( -/obj/structure/machinery/power/terminal{ +"kvL" = ( +/obj/structure/surface/table/almayer, +/obj/structure/machinery/computer/cameras/almayer_network{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "tcomms" - }, -/area/almayer/engineering/engine_core) +/turf/open/floor/almayer/red/west, +/area/almayer/shipboard/brig/warden_office) "kvU" = ( /obj/structure/surface/table/almayer, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/grunt_rnr) +"kwc" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 6 + }, +/obj/structure/bed/chair/comfy/bravo{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer/plate, +/area/almayer/living/briefing) "kwd" = ( /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/engineering/upper_engineering) +"kwg" = ( +/obj/structure/bookcase/manuals/medical, +/obj/structure/machinery/light{ + dir = 1 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_f_s) +"kwi" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 10 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_aft_hallway) "kwo" = ( /obj/structure/surface/rack, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/south1) -"kwq" = ( -/obj/structure/largecrate/random/case/double, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_p) "kws" = ( /obj/structure/machinery/line_nexter/med{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/medical/lower_medical_lobby) -"kwz" = ( -/obj/structure/sign/poster{ - pixel_y = 32 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_p) "kwQ" = ( /obj/item/tool/warning_cone{ pixel_y = 16 @@ -47410,19 +34683,8 @@ /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) -"kwS" = ( -/obj/structure/bookcase/manuals/medical, -/obj/structure/machinery/light{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_f_s) "kxd" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -47432,27 +34694,22 @@ icon_state = "S"; pixel_y = -1 }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/living/port_emb) +"kxe" = ( +/obj/structure/machinery/power/apc/almayer{ + dir = 1 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/p_bow) "kxo" = ( /obj/structure/machinery/washing_machine, /obj/structure/machinery/washing_machine{ layer = 3.5; pixel_y = 15 }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/engineering/laundry) -"kxF" = ( -/obj/structure/bed/chair/comfy/charlie, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/living/briefing) "kxL" = ( /obj/structure/closet/coffin/woodencrate, /obj/structure/largecrate/random/mini/wooden{ @@ -47461,54 +34718,71 @@ }, /obj/item/storage/box/uscm_mre, /obj/item/storage/box/uscm_mre, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/squads/req) -"kxM" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 +"kxP" = ( +/turf/open/floor/almayer/red/east, +/area/almayer/shipboard/brig/mp_bunks) +"kya" = ( +/obj/structure/prop/invuln/overhead_pipe{ + dir = 4; + pixel_y = 13 }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 +/obj/structure/prop/invuln/overhead_pipe{ + dir = 4; + pixel_x = 12; + pixel_y = 13 }, -/turf/open/floor/almayer{ +/obj/structure/prop/invuln/overhead_pipe{ dir = 4; - icon_state = "redcorner" + pixel_y = 13 }, -/area/almayer/shipboard/brig/processing) -"kyI" = ( -/obj/structure/machinery/light{ - dir = 8 +/obj/structure/prop/invuln/overhead_pipe{ + dir = 4; + pixel_x = -16; + pixel_y = 13 }, -/obj/structure/sign/safety/bathunisex{ - pixel_x = 32 +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/upper/u_m_p) +"kyh" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" }, -/turf/open/floor/wood/ship, -/area/almayer/shipboard/brig/chief_mp_office) +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/obj/structure/pipes/vents/scrubber{ + dir = 4 + }, +/turf/open/floor/almayer, +/area/almayer/engineering/lower/workshop/hangar) +"kyr" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer, +/turf/open/floor/almayer/test_floor4, +/area/almayer/hallways/upper/starboard) +"kyw" = ( +/turf/closed/wall/almayer/outer, +/area/almayer/maint/hull/lower/l_m_s) "kyN" = ( /obj/structure/disposalpipe/segment, /obj/structure/sign/safety/distribution_pipes{ pixel_x = 32 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/almayer/red/east, /area/almayer/shipboard/navigation) "kyP" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/machinery/cm_vending/sorted/marine_food, -/obj/structure/machinery/camera/autoname/almayer{ - name = "ship-grade camera" - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" +/turf/closed/wall/almayer/outer, +/area/almayer/maint/hull/lower/l_f_p) +"kyR" = ( +/obj/structure/safe/co_office, +/obj/item/weapon/pole/fancy_cane, +/obj/item/tool/lighter/zippo/gold{ + layer = 3.05; + pixel_y = 3 }, -/area/almayer/shipboard/brig/perma) +/turf/open/floor/wood/ship, +/area/almayer/living/commandbunks) "kyX" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 5 @@ -47520,33 +34794,52 @@ unacidable = 1; unslashable = 1 }, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/almayer/red/southeast, /area/almayer/lifeboat_pumps/north1) -"kyZ" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 5 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/starboard_umbilical) "kzb" = ( /obj/structure/machinery/vending/walkman, /turf/open/floor/almayer, /area/almayer/living/briefing) +"kzc" = ( +/obj/structure/surface/table/almayer, +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_21"; + pixel_y = 11 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_f_p) "kzk" = ( /obj/structure/window/framed/almayer, -/obj/structure/machinery/door/firedoor/border_only/almayer, /turf/open/floor/plating, /area/almayer/command/computerlab) +"kzr" = ( +/obj/structure/sign/safety/hazard{ + pixel_x = 32; + pixel_y = -8 + }, +/obj/structure/sign/safety/firingrange{ + pixel_x = 32; + pixel_y = 6 + }, +/turf/open/floor/almayer/cargo, +/area/almayer/shipboard/brig/execution) +"kzs" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/machinery/light/small, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_f_p) "kzy" = ( /obj/structure/bed/chair, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/east, /area/almayer/shipboard/brig/cic_hallway) +"kzC" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SE-out" + }, +/turf/open/floor/almayer/orangefull, +/area/almayer/engineering/lower/workshop) "kzK" = ( /obj/item/device/radio/intercom{ freerange = 1; @@ -47577,60 +34870,43 @@ layer = 3.5; pixel_y = 13 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/port_emb) -"kzP" = ( -/turf/open/floor/almayer{ - dir = 9; - icon_state = "red" - }, -/area/almayer/hallways/port_hallway) -"kzT" = ( -/obj/structure/machinery/door_control{ - id = "ARES StairsLower"; - name = "ARES Core Lockdown"; - pixel_x = -24; - pixel_y = -8; - req_one_access_txt = "90;91;92" - }, -/turf/open/floor/almayer/no_build{ - dir = 8; - icon_state = "silver" +"kzO" = ( +/obj/structure/platform_decoration{ + dir = 8 }, -/area/almayer/command/airoom) +/turf/open/floor/almayer/plating/northeast, +/area/almayer/engineering/lower/engine_core) "kAh" = ( /obj/structure/sign/safety/restrictedarea{ pixel_x = -17 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/almayer/red/north, /area/almayer/lifeboat_pumps/north1) +"kAj" = ( +/obj/structure/machinery/firealarm{ + pixel_y = 28 + }, +/turf/open/floor/almayer/plate, +/area/almayer/hallways/lower/port_aft_hallway) "kAm" = ( /obj/structure/reagent_dispensers/watertank, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/lifeboat_pumps/south2) -"kAs" = ( -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_p) +"kAv" = ( +/obj/structure/largecrate/supply/ammo/shotgun, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_a_s) +"kAL" = ( +/obj/structure/closet/secure_closet/brig, +/turf/open/floor/almayer/red, +/area/almayer/shipboard/brig/processing) "kAU" = ( /obj/structure/platform{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/almayer/red/east, /area/almayer/lifeboat_pumps/south2) "kBo" = ( /obj/effect/decal/warning_stripes{ @@ -47638,49 +34914,64 @@ pixel_x = 1; pixel_y = -1 }, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/southeast, /area/almayer/medical/medical_science) "kBy" = ( /obj/structure/machinery/ares/processor, -/turf/open/floor/almayer/no_build{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/no_build/test_floor4, /area/almayer/command/airoom) -"kBK" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "SE-out"; - pixel_x = 2 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/starboard_hallway) "kBP" = ( /obj/effect/decal/warning_stripes{ icon_state = "E"; pixel_x = 1 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/east, /area/almayer/medical/medical_science) "kBY" = ( /obj/structure/machinery/cryopod/right, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/living/tankerbunks) +"kCd" = ( +/obj/structure/machinery/gear{ + id = "vehicle_elevator_gears" + }, +/turf/open/floor/almayer/mono, +/area/almayer/hallways/lower/vehiclehangar) "kCi" = ( /turf/closed/wall/almayer/reinforced, /area/almayer/shipboard/port_missiles) "kCj" = ( /obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/medical/hydroponics) +"kCl" = ( +/obj/structure/surface/rack, +/obj/item/ammo_magazine/rifle/l42a/ap{ + current_rounds = 0; + pixel_x = -6; + pixel_y = 7 + }, +/obj/item/ammo_magazine/rifle/l42a/ap{ + current_rounds = 0; + pixel_x = -6; + pixel_y = -3 + }, +/obj/item/ammo_magazine/rifle/l42a/ap{ + current_rounds = 0; + pixel_x = 5; + pixel_y = 9 + }, +/obj/item/ammo_magazine/rifle/l42a/ap{ + current_rounds = 0; + pixel_x = 5; + pixel_y = -3 + }, +/obj/structure/noticeboard{ + desc = "The note is haphazardly attached to the cork board by what looks like a bent firing pin. 'The order has come in to perform end of life service checks on all L42A service rifles, any that are defective are to be dis-assembled and packed into a crate and sent to to the cargo hold. L42A service rifles that are in working order after servicing, are to be locked in secure cabinets ready to be off-loaded at Chinook. Scheduled end of life service for the L42A - Complete'"; + pixel_y = 29 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/upper/u_m_s) "kCm" = ( /obj/structure/sign/safety/fire_haz{ pixel_x = 15; @@ -47689,10 +34980,12 @@ /obj/structure/sign/safety/high_voltage{ pixel_y = 32 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) +"kCu" = ( +/obj/structure/machinery/portable_atmospherics/powered/scrubber, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_a_s) "kCE" = ( /obj/effect/decal/warning_stripes{ icon_state = "NE-out"; @@ -47704,44 +34997,21 @@ pixel_y = 1 }, /obj/structure/pipes/standard/simple/hidden/supply/no_boom, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/medical/containment) -"kCS" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer, -/area/almayer/hallways/vehiclehangar) -"kCT" = ( -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_f_p) -"kDb" = ( -/obj/structure/surface/rack, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_s) -"kDi" = ( -/obj/structure/platform{ - dir = 8 - }, -/obj/structure/machinery/light/small{ +"kCY" = ( +/obj/structure/machinery/sleep_console{ dir = 8 }, -/obj/structure/sign/safety/hvac_old{ +/turf/open/floor/almayer/dark_sterile, +/area/almayer/shipboard/brig/medical) +"kDd" = ( +/obj/structure/sign/safety/water{ pixel_x = 8; - pixel_y = 32 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_p) -"kDj" = ( -/obj/structure/bed, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_side" + pixel_y = -32 }, -/area/almayer/medical/lower_medical_medbay) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_a_s) "kDk" = ( /obj/effect/decal/warning_stripes{ icon_state = "SE-out"; @@ -47756,16 +35026,22 @@ /obj/structure/pipes/standard/simple/hidden/supply/no_boom{ dir = 6 }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/medical/containment) -"kDA" = ( -/obj/structure/pipes/vents/scrubber, -/turf/open/floor/almayer{ - icon_state = "red" +"kDH" = ( +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 1 }, -/area/almayer/shipboard/brig/processing) +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/engineering/upper_engineering) +"kDK" = ( +/obj/structure/pipes/vents/scrubber, +/turf/open/floor/wood/ship, +/area/almayer/living/commandbunks) "kDR" = ( /obj/structure/disposalpipe/junction{ dir = 1; @@ -47774,67 +35050,87 @@ /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/southeast, /area/almayer/medical/lower_medical_lobby) -"kEb" = ( -/obj/structure/machinery/firealarm{ - pixel_y = 28 +"kEc" = ( +/obj/structure/machinery/light/small{ + dir = 8 }, -/turf/open/floor/almayer, -/area/almayer/hallways/starboard_hallway) +/obj/item/vehicle_clamp, +/obj/item/vehicle_clamp, +/obj/item/vehicle_clamp, +/obj/structure/closet/secure_closet/guncabinet/red/mp_armory_shotgun, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/armory) +"kEg" = ( +/obj/structure/surface/table/almayer, +/obj/item/toy/deck{ + pixel_x = -6; + pixel_y = -2 + }, +/obj/item/toy/deck/uno{ + pixel_x = 6; + pixel_y = -1 + }, +/obj/structure/prop/holidays/string_lights{ + dir = 8; + pixel_x = 29 + }, +/turf/open/floor/almayer/plate, +/area/almayer/living/briefing) "kEp" = ( /obj/structure/filingcabinet/filingcabinet, -/turf/open/floor/almayer{ +/turf/open/floor/almayer/sterile_green_corner/west, +/area/almayer/medical/morgue) +"kEq" = ( +/obj/structure/machinery/door/window/ultra{ dir = 8; - icon_state = "sterile_green_corner" + req_access_txt = "3" }, -/area/almayer/medical/morgue) +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/perma) +"kEs" = ( +/obj/structure/surface/table/almayer, +/obj/item/device/flashlight/lamp{ + layer = 3.3; + pixel_x = 15 + }, +/obj/item/prop/helmetgarb/helmet_nvg/cosmetic, +/turf/open/floor/almayer/redfull, +/area/almayer/living/briefing) +"kEA" = ( +/obj/effect/projector{ + name = "Almayer_Down3"; + vector_x = 1; + vector_y = -102 + }, +/turf/open/floor/almayer/no_build, +/area/almayer/hallways/upper/fore_hallway) +"kEE" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/port_aft_hallway) +"kEW" = ( +/obj/structure/machinery/light, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/vehiclehangar) "kFe" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/firealarm{ dir = 4; pixel_x = 24 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/pilotbunks) -"kFq" = ( -/obj/structure/surface/table/almayer, -/obj/item/book/manual/engineering_construction, -/obj/item/folder/black_random, -/obj/structure/sign/safety/high_rad{ - pixel_x = 32; - pixel_y = -8 - }, -/obj/structure/sign/safety/hazard{ - pixel_x = 32; - pixel_y = 7 - }, -/obj/structure/sign/safety/terminal{ - pixel_x = 8; - pixel_y = -32 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/engineering_workshop) "kFs" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/briefing) "kFv" = ( -/turf/open/floor/almayer{ - dir = 5; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/northeast, /area/almayer/medical/lower_medical_medbay) "kFO" = ( /obj/structure/machinery/door/poddoor/shutters/almayer{ @@ -47842,320 +35138,255 @@ id = "crate_room2"; name = "\improper Storage Shutters" }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/almayer/squads/req) +"kFU" = ( +/obj/structure/bed/chair{ + dir = 8 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_f_s) "kFY" = ( /obj/structure/sign/safety/cryo{ pixel_x = 7 }, /turf/closed/wall/almayer, /area/almayer/living/cryo_cells) -"kGt" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "NE-out"; - pixel_y = 1 - }, -/obj/structure/sign/safety/distribution_pipes{ - pixel_x = -17 +"kGi" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_f_p) +"kGu" = ( +/obj/structure/machinery/cryopod{ + layer = 3.1; + pixel_y = 13 }, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/structure/machinery/status_display{ + pixel_x = -32 }, -/area/almayer/hull/lower_hull/l_f_p) +/turf/open/floor/almayer/cargo, +/area/almayer/shipboard/brig/cryo) +"kGw" = ( +/obj/structure/machinery/light, +/turf/open/floor/almayer/plate, +/area/almayer/hallways/lower/port_fore_hallway) "kGF" = ( /obj/structure/reagent_dispensers/water_cooler/stacks{ density = 0; pixel_y = 16 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "emerald" - }, +/turf/open/floor/almayer/emerald/north, /area/almayer/squads/charlie) -"kGI" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/turf/open/floor/almayer, -/area/almayer/hallways/aft_hallway) -"kGL" = ( -/obj/effect/step_trigger/clone_cleaner, -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/aft_hallway) "kGQ" = ( /obj/structure/pipes/standard/simple/hidden/supply/no_boom{ dir = 4 }, -/turf/open/floor/almayer/research/containment/corner_var1{ - icon_state = "containment_corner_variant_2" - }, +/turf/open/floor/almayer/research/containment/corner_var1/containment_corner_variant_2, /area/almayer/medical/containment/cell) -"kGX" = ( -/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ - pixel_y = 25 - }, -/turf/open/floor/almayer, -/area/almayer/engineering/engine_core) -"kHa" = ( -/turf/closed/wall/almayer, -/area/almayer/shipboard/brig/surgery) +"kGS" = ( +/turf/open/floor/almayer/mono, +/area/almayer/hallways/upper/aft_hallway) "kHd" = ( /obj/structure/machinery/computer/arcade, /obj/item/prop/helmetgarb/spacejam_tickets{ pixel_x = 4; pixel_y = 12 }, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "green" - }, +/turf/open/floor/almayer/green/southeast, /area/almayer/living/grunt_rnr) -"kHj" = ( -/obj/effect/projector{ - name = "Almayer_Up2"; - vector_x = -1; - vector_y = 100 +"kHo" = ( +/obj/item/device/camera{ + pixel_x = 4; + pixel_y = 8 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/starboard_hallway) -"kHK" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 +/obj/structure/surface/table/almayer, +/obj/item/device/camera_film{ + pixel_x = 4; + pixel_y = -2 }, -/obj/effect/decal/cleanable/blood, -/turf/open/floor/almayer, -/area/almayer/shipboard/brig/execution) +/obj/item/device/camera_film, +/turf/open/floor/almayer/red/west, +/area/almayer/shipboard/brig/starboard_hallway) "kHS" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/east, /area/almayer/engineering/upper_engineering/port) -"kHT" = ( -/turf/open/floor/almayer{ - dir = 5; - icon_state = "green" - }, -/area/almayer/hallways/aft_hallway) "kHY" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 10 }, -/turf/open/floor/almayer{ +/turf/open/floor/almayer/orange/north, +/area/almayer/engineering/upper_engineering/starboard) +"kIf" = ( +/obj/structure/largecrate/random/barrel/yellow, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/p_bow) +"kIk" = ( +/obj/structure/prop/invuln/lattice_prop{ dir = 1; - icon_state = "orange" + icon_state = "lattice-simple"; + pixel_x = 16; + pixel_y = -16 }, -/area/almayer/engineering/upper_engineering/starboard) -"kIm" = ( -/obj/structure/pipes/vents/pump{ +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_m_s) +"kIl" = ( +/obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" - }, -/area/almayer/hallways/starboard_umbilical) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_f_s) "kIP" = ( /obj/structure/machinery/cryopod/right{ pixel_y = 6 }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/squads/charlie) -"kIV" = ( -/turf/open/floor/almayer{ - icon_state = "plate" +"kJc" = ( +/obj/structure/ladder{ + height = 1; + id = "ForeStarboardMaint" }, -/area/almayer/hull/upper_hull/u_f_p) -"kJi" = ( -/obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/structure/sign/safety/ladder{ + pixel_x = 8; + pixel_y = 32 }, -/area/almayer/squads/alpha) -"kJC" = ( +/turf/open/floor/plating/almayer, +/area/almayer/maint/hull/lower/s_bow) +"kJh" = ( +/obj/structure/pipes/standard/manifold/hidden/supply, /obj/structure/disposalpipe/segment{ - dir = 4; + dir = 1; icon_state = "pipe-c" }, -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 8 - }, -/turf/open/floor/almayer, -/area/almayer/engineering/lower_engineering) -"kJG" = ( -/obj/item/toy/deck{ - pixel_y = 12 - }, -/obj/structure/sign/safety/storage{ - pixel_x = 32 - }, -/obj/structure/surface/table/woodentable/poor, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_p) -"kJK" = ( -/obj/structure/bed/chair/comfy/orange, -/turf/open/floor/almayer, -/area/almayer/shipboard/brig/main_office) -"kJL" = ( -/obj/structure/machinery/constructable_frame{ - icon_state = "box_2" +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/starboard_fore_hallway) +"kJi" = ( +/obj/structure/machinery/light, +/turf/open/floor/almayer/plate, +/area/almayer/squads/alpha) +"kJm" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" }, -/turf/open/floor/almayer{ - icon_state = "mono" +/turf/open/floor/wood/ship, +/area/almayer/living/commandbunks) +"kJH" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" }, -/area/almayer/lifeboat_pumps/north1) -"kJV" = ( -/obj/structure/machinery/light, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "green" +/obj/structure/closet/secure_closet/freezer/industry, +/obj/item/reagent_container/glass/beaker/silver, +/obj/structure/machinery/light{ + dir = 1 }, -/area/almayer/hallways/port_hallway) -"kKb" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 +/turf/open/floor/almayer/plate, +/area/almayer/engineering/lower/workshop/hangar) +"kJW" = ( +/obj/structure/machinery/door/window/westright, +/obj/structure/machinery/shower{ + dir = 8; + layer = 3.10; + plane = -4 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" +/obj/item/tool/soap{ + pixel_x = 2; + pixel_y = 7 }, -/area/almayer/hallways/stern_hallway) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/living/commandbunks) +"kJZ" = ( +/obj/structure/largecrate/random/barrel/white, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_a_s) "kKk" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 2 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/living/grunt_rnr) -"kKv" = ( -/obj/effect/projector{ - name = "Almayer_AresUp"; - vector_x = -97; - vector_y = 65 - }, -/obj/structure/platform{ - dir = 8 - }, -/obj/structure/stairs{ - dir = 1; - icon_state = "ramptop" - }, -/turf/open/floor/almayer/no_build{ - dir = 8; - icon_state = "silver" - }, -/area/almayer/command/airoom) -"kKG" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_s) -"kKL" = ( -/obj/structure/bed/chair/comfy/bravo{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/sign/poster{ - desc = "YOU ALWAYS KNOW A WORKING JOE. YOU ALWAYS KNOW A WORKING JOE. YOU ALWAYS KNOW A WORKING JOE. YOU ALWAYS KNOW A WORKING JOE. YOU ALWAYS KNOW A WORKING JOE."; - icon_state = "poster11"; - name = "YOU ALWAYS KNOW A WORKING JOE."; - pixel_x = -27; - serial_number = 11 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/living/briefing) +"kKB" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer, +/turf/open/floor/almayer/test_floor4, +/area/almayer/hallways/lower/port_aft_hallway) "kKR" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/south2) -"kKX" = ( -/obj/structure/machinery/conveyor{ - id = "lower_garbage" - }, -/obj/structure/plasticflaps, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "plating_striped" - }, -/area/almayer/hull/lower_hull/l_m_p) +"kKY" = ( +/turf/open/floor/almayer/orange/east, +/area/almayer/hallways/lower/starboard_aft_hallway) "kLc" = ( /obj/structure/machinery/door/airlock/almayer/maint{ req_one_access = null; req_one_access_txt = "2;7" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/engineering/upper_engineering/port) "kLk" = ( /obj/structure/machinery/cm_vending/clothing/tl/bravo{ density = 0; pixel_x = 32 }, -/turf/open/floor/almayer{ - icon_state = "orange" - }, +/turf/open/floor/almayer/orange, /area/almayer/squads/bravo) -"kLp" = ( -/obj/structure/sign/safety/stairs{ - pixel_x = -17; - pixel_y = 7 +"kLm" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/obj/structure/sign/safety/escapepod{ - pixel_x = -17; - pixel_y = -8 +/obj/structure/sign/safety/distribution_pipes{ + pixel_x = 8; + pixel_y = 32 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_m_p) +"kLE" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer, +/obj/structure/machinery/door/poddoor/almayer{ + dir = 4; + id = "hangarentrancenorth"; + name = "\improper North Hangar Podlock" }, -/area/almayer/hallways/starboard_hallway) +/turf/open/floor/almayer/test_floor4, +/area/almayer/hallways/lower/starboard_fore_hallway) "kLP" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "greencorner" +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" }, +/turf/open/floor/almayer/greencorner/west, /area/almayer/squads/req) -"kMq" = ( -/obj/structure/sign/poster{ - desc = "It says DRUG."; - icon_state = "poster2"; - pixel_y = 30 +"kMa" = ( +/obj/structure/platform_decoration, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_a_s) +"kMp" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 +/obj/structure/machinery/status_display{ + pixel_x = -32 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_a_p) +/turf/open/floor/almayer/red/east, +/area/almayer/hallways/upper/port) +"kMr" = ( +/obj/item/trash/uscm_mre, +/obj/structure/prop/invuln/lattice_prop{ + icon_state = "lattice1"; + pixel_x = 16; + pixel_y = -16 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_m_s) "kMH" = ( /obj/structure/machinery/door/window/brigdoor/southright{ id = "Cell 1"; @@ -48174,23 +35405,39 @@ name = "umbilical wall" }, /obj/structure/blocker/invisible_wall, -/turf/open/floor/almayer_hull{ - dir = 8; - icon_state = "outerhull_dir" - }, +/turf/open/floor/almayer_hull/outerhull_dir/west, /area/almayer/engineering/upper_engineering/port) -"kNi" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 +"kMR" = ( +/obj/effect/spawner/random/toolbox, +/obj/structure/largecrate/random/barrel/red, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_a_p) +"kMV" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/upper/starboard) +"kMW" = ( +/obj/structure/closet/secure_closet/personal/cabinet{ + req_access = null }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "redcorner" +/obj/item/clothing/suit/chef/classic, +/obj/item/tool/kitchen/knife/butcher, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/s_bow) +"kNf" = ( +/obj/structure/bed/chair/office/dark, +/obj/structure/machinery/light{ + dir = 1 }, -/area/almayer/shipboard/brig/processing) +/obj/structure/sign/safety/terminal{ + pixel_x = 8; + pixel_y = 32 + }, +/turf/open/floor/almayer/plating/northeast, +/area/almayer/shipboard/panic) "kNk" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -48203,20 +35450,9 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/briefing) -"kNx" = ( -/obj/structure/sign/safety/ref_bio_storage{ - pixel_x = -17; - pixel_y = 7 - }, -/obj/structure/sign/safety/biohazard{ - pixel_x = -17; - pixel_y = -7 - }, -/obj/structure/machinery/cm_vending/sorted/medical/chemistry, -/turf/open/floor/almayer{ - icon_state = "mono" - }, -/area/almayer/medical/medical_science) +"kNq" = ( +/turf/closed/wall/almayer, +/area/almayer/maint/hull/upper/u_a_p) "kNC" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 8 @@ -48240,40 +35476,29 @@ }, /turf/open/floor/wood/ship, /area/almayer/living/basketball) +"kNV" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer/mono, +/area/almayer/hallways/upper/starboard) +"kNX" = ( +/obj/structure/bed/chair/comfy/charlie{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer/emeraldfull, +/area/almayer/living/briefing) "kNY" = ( /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/weapon_room) -"kOf" = ( -/obj/structure/bed/chair{ - dir = 8; - pixel_y = 3 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_s) -"kOi" = ( -/obj/structure/sink{ - dir = 1; - pixel_y = -10 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/shipboard/brig/perma) -"kOk" = ( -/obj/structure/sign/safety/maint{ - pixel_x = 32 - }, -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_f_p) "kOv" = ( /obj/structure/machinery/light{ dir = 8 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - icon_state = "cargo_arrow" - }, +/turf/open/floor/almayer/cargo_arrow, /area/almayer/shipboard/port_missiles) "kOB" = ( /obj/effect/decal/warning_stripes{ @@ -48287,35 +35512,51 @@ /obj/item/tool/pen/blue{ pixel_x = -6 }, -/turf/open/floor/almayer{ - icon_state = "bluefull" - }, +/turf/open/floor/almayer/bluefull, /area/almayer/living/pilotbunks) -"kOG" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer, -/obj/structure/sign/safety/maint{ - pixel_x = 8; - pixel_y = -32 +"kOH" = ( +/obj/structure/machinery/light{ + dir = 8 }, /obj/effect/decal/warning_stripes{ - icon_state = "SE-out"; - pixel_x = 2 + icon_state = "E"; + pixel_x = 1 + }, +/turf/open/floor/almayer/dark_sterile, +/area/almayer/command/corporateliaison) +"kOJ" = ( +/obj/item/storage/backpack/marine/satchel{ + desc = "It's the heavy-duty black polymer kind. Time to take out the trash!"; + icon = 'icons/obj/janitor.dmi'; + icon_state = "trashbag3"; + name = "trash bag"; + pixel_x = -4; + pixel_y = 6 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_m_p) +"kOR" = ( +/obj/structure/machinery/light/small{ + dir = 1 }, /obj/effect/decal/warning_stripes{ - icon_state = "SW-out"; - layer = 2.5 + icon_state = "S" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/p_bow) +"kOW" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" }, -/area/almayer/hallways/aft_hallway) -"kPo" = ( -/obj/structure/machinery/camera/autoname/almayer{ - dir = 4; - name = "ship-grade camera" +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 10 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_p) +/turf/open/floor/almayer/plate, +/area/almayer/squads/req) +"kPa" = ( +/turf/open/floor/almayer/greencorner/west, +/area/almayer/hallways/upper/fore_hallway) "kPx" = ( /obj/structure/surface/table/almayer, /obj/item/device/mass_spectrometer, @@ -48326,10 +35567,7 @@ /obj/item/reagent_container/glass/beaker/cryoxadone, /obj/item/reagent_container/glass/beaker/cryoxadone, /obj/item/reagent_container/glass/beaker/cryoxadone, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_corner" - }, +/turf/open/floor/almayer/sterile_green_corner/north, /area/almayer/medical/chemistry) "kPB" = ( /obj/structure/window/reinforced{ @@ -48342,24 +35580,22 @@ /obj/structure/machinery/power/apc/almayer{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "blue" - }, +/turf/open/floor/almayer/blue/northeast, /area/almayer/living/basketball) "kPG" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/east, /area/almayer/engineering/upper_engineering/starboard) +"kPH" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/turf/open/floor/almayer, +/area/almayer/lifeboat_pumps/south2) "kPJ" = ( /obj/structure/machinery/cryopod/right{ pixel_y = 6 }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/squads/delta) "kPR" = ( /obj/structure/machinery/suit_storage_unit/compression_suit/uscm, @@ -48374,9 +35610,7 @@ pixel_x = -17 }, /obj/structure/machinery/light/small, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/engineering/upper_engineering/port) "kPZ" = ( /obj/structure/desertdam/decals/road_edge{ @@ -48388,53 +35622,48 @@ }, /turf/open/floor/wood/ship, /area/almayer/living/basketball) -"kQz" = ( -/obj/structure/machinery/door/airlock/almayer/security/glass/reinforced{ - dir = 1; - name = "\improper Brig" - }, -/obj/structure/machinery/door/poddoor/almayer/open{ - id = "Brig Lockdown Shutters"; - name = "\improper Brig Lockdown Shutter" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hull/upper_hull/u_f_p) -"kQU" = ( -/obj/structure/bed/chair/comfy/bravo{ - dir = 1 +"kQr" = ( +/obj/structure/surface/table/almayer, +/obj/item/trash/pistachios, +/obj/item/tool/lighter/random{ + pixel_x = 13 }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/prop/holidays/string_lights{ - dir = 8; - pixel_x = 29 +/turf/open/floor/plating, +/area/almayer/maint/lower/constr) +"kQu" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/area/almayer/living/briefing) +/turf/open/floor/almayer/no_build, +/area/almayer/shipboard/brig/processing) "kRd" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/north, /area/almayer/medical/operating_room_three) -"kRu" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 +"kRg" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/almayer/cargo, +/area/almayer/command/lifeboat) +"kRD" = ( +/obj/item/reagent_container/glass/bucket/janibucket, +/obj/structure/machinery/light{ + unacidable = 1; + unslashable = 1 }, -/obj/structure/prop/invuln/lattice_prop{ - dir = 1; - icon_state = "lattice-simple"; - pixel_x = -16; - pixel_y = 17 +/obj/item/reagent_container/glass/bucket/janibucket{ + pixel_y = 11 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_p) +/obj/effect/decal/warning_stripes{ + icon_state = "W"; + layer = 2.5 + }, +/turf/open/floor/almayer/cargo, +/area/almayer/engineering/lower/workshop/hangar) "kRP" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/item/prop/magazine/dirty/torn, @@ -48444,20 +35673,48 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hallways/hangar) -"kSd" = ( -/obj/item/cell/high/empty, -/obj/item/cell/high/empty, -/obj/structure/surface/rack, -/turf/open/floor/almayer{ - icon_state = "plate" +"kRQ" = ( +/obj/structure/surface/table/reinforced/almayer_B, +/obj/structure/machinery/computer/cameras/almayer/ares{ + dir = 8; + pixel_x = 17; + pixel_y = 7 + }, +/obj/structure/machinery/computer/cameras/almayer{ + dir = 8; + pixel_x = 17; + pixel_y = -6 + }, +/turf/open/floor/almayer/aicore/glowing/no_build/ai_floor3, +/area/almayer/command/airoom) +"kRU" = ( +/obj/vehicle/powerloader, +/obj/structure/platform{ + dir = 4 + }, +/obj/structure/platform{ + dir = 8 + }, +/obj/effect/decal/cleanable/blood/oil, +/turf/open/floor/almayer/cargo, +/area/almayer/hallways/lower/repair_bay) +"kSi" = ( +/obj/structure/machinery/cm_vending/gear/intelligence_officer{ + density = 0; + pixel_x = -32 }, -/area/almayer/hull/upper_hull/u_a_s) +/turf/open/floor/almayer/silver/west, +/area/almayer/command/computerlab) +"kSn" = ( +/obj/structure/machinery/camera/autoname/almayer{ + dir = 4; + name = "ship-grade camera" + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/p_bow) "kSv" = ( /obj/item/reagent_container/glass/bucket/janibucket, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/southeast, /area/almayer/hallways/hangar) "kSy" = ( /obj/effect/decal/warning_stripes{ @@ -48470,27 +35727,34 @@ pixel_y = 24; req_one_access_txt = "200;91;92" }, -/turf/open/floor/almayer/no_build{ - icon_state = "tcomms" - }, +/turf/open/floor/almayer/aicore/glowing/no_build, /area/almayer/command/airoom) -"kSJ" = ( -/obj/structure/disposalpipe/junction{ +"kSA" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer, +/obj/structure/machinery/door/poddoor/almayer{ dir = 4; - icon_state = "pipe-j2" + id = "hangarentrancesouth"; + name = "\improper South Hangar Podlock" }, -/obj/structure/pipes/standard/manifold/hidden/supply, -/turf/open/floor/almayer, -/area/almayer/hallways/aft_hallway) -"kSN" = ( -/obj/structure/sign/safety/maint{ - pixel_x = 32 +/turf/open/floor/almayer/test_floor4, +/area/almayer/hallways/lower/port_fore_hallway) +"kSC" = ( +/obj/structure/machinery/cm_vending/sorted/medical/bolted, +/obj/structure/medical_supply_link/green, +/turf/open/floor/almayer/sterile_green_side, +/area/almayer/medical/lower_medical_medbay) +"kSH" = ( +/obj/structure/sign/prop1{ + pixel_y = 32 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" +/obj/structure/filingcabinet/security{ + pixel_x = -8 }, -/area/almayer/hallways/aft_hallway) +/obj/structure/filingcabinet/medical{ + pixel_x = 8 + }, +/turf/open/floor/wood/ship, +/area/almayer/living/commandbunks) "kSU" = ( /obj/structure/transmitter/no_dnd{ name = "Requisition Telephone"; @@ -48498,57 +35762,25 @@ phone_id = "Requisition"; pixel_y = 30 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/almayer/squads/req) -"kTq" = ( -/obj/structure/largecrate/supply/supplies/mre, -/turf/open/floor/almayer{ - icon_state = "plate" +"kTp" = ( +/obj/structure/window/framed/almayer, +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 }, -/area/almayer/hull/lower_hull/l_m_p) +/turf/open/floor/plating, +/area/almayer/shipboard/brig/medical) "kTv" = ( /obj/structure/machinery/light{ dir = 4 }, /obj/structure/machinery/telecomms/broadcaster/preset_right, -/turf/open/floor/almayer{ - icon_state = "tcomms" - }, +/turf/open/floor/almayer/tcomms, /area/almayer/command/telecomms) -"kTx" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 5 - }, -/obj/structure/bed/chair/comfy/charlie{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/living/briefing) -"kTM" = ( -/obj/item/frame/rack{ - layer = 3.1; - pixel_y = 19 - }, -/obj/structure/surface/rack, -/obj/item/tool/weldpack{ - pixel_x = 5 - }, -/obj/item/tool/weldpack{ - pixel_x = -2 - }, -/turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_s) "kTN" = ( /obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "orangecorner" - }, +/turf/open/floor/almayer/orangecorner, /area/almayer/engineering/ce_room) "kTY" = ( /obj/effect/decal/warning_stripes{ @@ -48560,77 +35792,75 @@ }, /turf/open/floor/almayer, /area/almayer/hallways/hangar) -"kUb" = ( -/obj/structure/closet/secure_closet, -/obj/item/device/camera_film, -/obj/item/device/camera_film, -/obj/item/device/camera_film, -/obj/item/storage/box/tapes, -/obj/item/clothing/head/fedora, -/obj/item/clothing/suit/storage/marine/light/reporter, -/obj/item/clothing/head/helmet/marine/reporter, -/obj/item/clothing/head/cmcap/reporter, -/obj/item/device/flashlight, -/obj/item/device/toner, -/obj/item/device/toner, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/command/combat_correspondent) -"kUt" = ( -/obj/structure/disposalpipe/segment{ +"kUg" = ( +/obj/structure/machinery/firealarm{ dir = 4; - icon_state = "pipe-c" + pixel_x = 21 }, -/obj/structure/surface/rack, -/obj/item/frame/table, -/obj/item/frame/table, -/obj/item/frame/table, +/turf/open/floor/almayer/red/east, +/area/almayer/shipboard/brig/warden_office) +"kUh" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer, +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic2{ + access_modified = 1; + dir = 1; + name = "\improper Flight Crew Quarters"; + req_one_access_txt = "19;22" + }, +/turf/open/floor/almayer/test_floor4, +/area/almayer/living/pilotbunks) +"kUA" = ( +/obj/structure/disposalpipe/segment, /turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_p) -"kUw" = ( -/obj/structure/surface/rack, -/obj/item/storage/bag/trash{ - pixel_x = 2; - pixel_y = 2 +/area/almayer/hallways/lower/port_umbilical) +"kUI" = ( +/obj/structure/machinery/light{ + dir = 1 }, -/obj/item/storage/bag/trash{ - pixel_x = -8; - pixel_y = 4 +/turf/open/floor/almayer/green/northwest, +/area/almayer/hallways/lower/starboard_midship_hallway) +"kUJ" = ( +/obj/item/trash/USCMtray{ + pixel_x = -4; + pixel_y = 10 }, -/obj/item/storage/bag/trash{ - pixel_x = -3; - pixel_y = -2 +/obj/structure/surface/table/almayer, +/obj/item/tool/kitchen/utensil/pfork{ + pixel_x = 9; + pixel_y = 8 }, -/turf/open/floor/almayer{ - icon_state = "cargo" +/obj/structure/machinery/light/small{ + dir = 8 }, -/area/almayer/engineering/upper_engineering/port) -"kUQ" = ( -/obj/effect/decal/cleanable/blood/oil/streak, -/obj/structure/machinery/constructable_frame, -/turf/open/floor/almayer{ - icon_state = "mono" +/turf/open/floor/almayer/plate, +/area/almayer/maint/upper/u_f_s) +"kUL" = ( +/obj/structure/machinery/light/small{ + dir = 1 }, -/area/almayer/lifeboat_pumps/south1) +/obj/structure/closet/emcloset, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_m_p) +"kUR" = ( +/turf/open/floor/almayer/bluefull, +/area/almayer/living/briefing) "kUV" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/lifeboat_pumps/south2) -"kVX" = ( -/obj/structure/window/framed/almayer, -/obj/structure/machinery/door/poddoor/shutters/almayer{ - id = "OfficeSafeRoom"; - name = "\improper Office Safe Room" - }, -/turf/open/floor/almayer{ - icon_state = "plate" +"kVV" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" }, -/area/almayer/hull/lower_hull/l_f_s) +/turf/open/floor/wood/ship, +/area/almayer/command/corporateliaison) +"kVW" = ( +/obj/effect/step_trigger/clone_cleaner, +/turf/open/floor/almayer, +/area/almayer/hallways/upper/fore_hallway) "kVZ" = ( /obj/structure/machinery/door/window/brigdoor/southright{ id = "Cell 2"; @@ -48649,36 +35879,48 @@ icon_state = "E"; pixel_x = 1 }, -/turf/open/floor/almayer{ - icon_state = "greencorner" - }, +/turf/open/floor/almayer/greencorner, /area/almayer/squads/req) "kWq" = ( /obj/structure/sign/safety/synth_storage{ pixel_x = 8; pixel_y = 25 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "silvercorner" - }, +/turf/open/floor/almayer/silvercorner/north, /area/almayer/command/cichallway) -"kWT" = ( -/turf/open/floor/almayer{ - dir = 9; - icon_state = "blue" +"kWI" = ( +/obj/structure/machinery/door/airlock/almayer/maint{ + dir = 1 }, -/area/almayer/living/pilotbunks) -"kWY" = ( -/obj/structure/disposalpipe/segment{ +/turf/open/floor/almayer/test_floor4, +/area/almayer/maint/hull/lower/l_f_s) +"kWN" = ( +/obj/structure/sign/poster{ + desc = "It says DRUG."; + icon_state = "poster2"; + pixel_x = -27 + }, +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/bed/chair/comfy/charlie{ dir = 4 }, -/obj/structure/sign/safety/hvac_old{ - pixel_x = 8; - pixel_y = -32 +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer/plate, +/area/almayer/living/briefing) +"kWR" = ( +/obj/structure/surface/table/woodentable/fancy, +/obj/structure/transmitter/rotary{ + name = "Commanding Officer's Office"; + phone_category = "Offices"; + phone_id = "Commanding Officer's Office"; + pixel_x = 16; + pixel_y = 8 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_p) +/turf/open/floor/carpet, +/area/almayer/living/commandbunks) +"kWT" = ( +/turf/open/floor/almayer/blue/northwest, +/area/almayer/living/pilotbunks) "kXa" = ( /obj/structure/machinery/cm_vending/clothing/marine/bravo{ density = 0; @@ -48687,108 +35929,99 @@ /obj/structure/sign/safety/cryo{ pixel_x = 32 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/bravo) "kXf" = ( /obj/structure/machinery/camera/autoname/almayer{ dir = 8; name = "ship-grade camera" }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/east, /area/almayer/command/computerlab) -"kXj" = ( -/turf/open/floor/almayer/no_build{ - dir = 4; - icon_state = "silver" +"kXm" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" }, -/area/almayer/command/airoom) -"kXu" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "silver" +/obj/structure/sign/safety/press_area_ag{ + pixel_x = -17; + pixel_y = -7 }, +/turf/open/floor/almayer/plating/northeast, +/area/almayer/shipboard/stern_point_defense) +"kXt" = ( +/obj/structure/closet/fireaxecabinet{ + pixel_y = 32 + }, +/turf/open/floor/almayer/red/north, +/area/almayer/shipboard/brig/starboard_hallway) +"kXu" = ( +/turf/open/floor/almayer/silver/west, /area/almayer/command/computerlab) "kXw" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/north, /area/almayer/medical/medical_science) -"kXH" = ( -/obj/structure/bed/chair/comfy/delta, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - icon_state = "bluefull" - }, -/area/almayer/living/briefing) -"kXJ" = ( -/obj/structure/surface/table/reinforced/almayer_B, -/obj/structure/machinery/computer/secure_data{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_s) -"kXK" = ( -/obj/structure/machinery/light, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "orange" - }, -/area/almayer/engineering/engine_core) "kXN" = ( /obj/item/clothing/glasses/sunglasses/aviator{ pixel_x = -1; pixel_y = 8 }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/engineering/laundry) -"kYa" = ( -/obj/structure/machinery/door/poddoor/shutters/almayer{ - dir = 2; - id = "OuterShutter"; - name = "\improper Saferoom Shutters" +"kYb" = ( +/obj/structure/machinery/status_display{ + pixel_y = 30 + }, +/turf/open/floor/almayer/orangecorner/east, +/area/almayer/hallways/upper/aft_hallway) +"kYl" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 9 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_aft_hallway) +"kYt" = ( +/obj/structure/surface/table/woodentable/fancy, +/obj/item/storage/bible{ + desc = "As the legendary US Army chaplain once said, 'There are no Athiests in fancy offices'."; + name = "Holy Bible"; + pixel_x = -3; + pixel_y = 9 + }, +/obj/item/prop/helmetgarb/rosary{ + pixel_x = -4; + pixel_y = 5 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +/obj/item/device/flashlight/lamp{ + pixel_x = 3; + pixel_y = 1 }, -/area/almayer/hull/lower_hull/l_f_s) +/turf/open/floor/wood/ship, +/area/almayer/living/commandbunks) "kYv" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/port_emb) -"kYP" = ( -/obj/structure/sign/safety/maint{ - pixel_x = 32 - }, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "red" +"kYF" = ( +/obj/structure/machinery/door/airlock/almayer/maint/reinforced{ + dir = 1 }, -/area/almayer/hallways/stern_hallway) -"kYU" = ( -/obj/structure/sign/safety/escapepod{ - pixel_y = 32 +/turf/open/floor/almayer/test_floor4, +/area/almayer/maint/upper/u_f_s) +"kYL" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" }, -/obj/structure/sign/safety/east{ - pixel_x = 15; - pixel_y = 32 +/obj/effect/decal/warning_stripes{ + icon_state = "S" }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "green" +/turf/open/floor/almayer/plating/northeast, +/area/almayer/engineering/lower/engine_core) +"kYU" = ( +/obj/structure/machinery/firealarm{ + pixel_y = 28 }, -/area/almayer/hallways/aft_hallway) +/turf/open/floor/almayer/red/north, +/area/almayer/shipboard/brig/starboard_hallway) "kYV" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 6 @@ -48797,25 +36030,18 @@ icon_state = "N"; pixel_y = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/offices) -"kZA" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" - }, -/area/almayer/hallways/port_umbilical) +"kZc" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer/plate, +/area/almayer/maint/upper/u_a_s) "kZN" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/prop/almayer/computer/PC{ dir = 8 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/northeast, /area/almayer/living/auxiliary_officer_office) "kZV" = ( /obj/structure/machinery/light, @@ -48827,62 +36053,42 @@ icon_state = "W"; pixel_x = -1 }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/medical/hydroponics) -"lad" = ( -/obj/structure/surface/table/almayer, -/obj/effect/decal/cleanable/dirt, -/obj/item/device/flashlight/lamp{ - layer = 3.3; - pixel_x = 15 - }, -/obj/item/tool/kitchen/tray{ - pixel_y = 9 - }, -/obj/item/reagent_container/food/snacks/sliceable/pizza/vegetablepizza{ - pixel_y = 8 - }, -/turf/open/floor/almayer{ - icon_state = "emeraldfull" - }, -/area/almayer/living/briefing) +"lab" = ( +/obj/structure/surface/rack, +/obj/item/reagent_container/glass/bucket/janibucket, +/turf/open/floor/almayer/orange, +/area/almayer/engineering/lower/workshop/hangar) "lah" = ( -/turf/open/floor/almayer{ - dir = 6; - icon_state = "emerald" - }, +/turf/open/floor/almayer/emerald/southeast, /area/almayer/living/gym) -"laj" = ( -/obj/structure/platform{ +"lat" = ( +/obj/structure/toilet{ dir = 1 }, -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/upper/u_a_s) +"laD" = ( +/obj/docking_port/stationary/escape_pod/north, +/turf/open/floor/plating, +/area/almayer/maint/upper/u_m_p) +"laI" = ( +/obj/structure/sign/safety/maint{ + pixel_x = -17 }, -/area/almayer/engineering/engine_core) -"lau" = ( -/obj/structure/sign/safety/autoopenclose{ - pixel_x = 7; - pixel_y = 32 +/turf/open/floor/almayer/red/east, +/area/almayer/hallways/upper/port) +"laM" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_m_p) -"laG" = ( -/obj/structure/safe/co_office, -/obj/item/weapon/pole/fancy_cane, -/obj/item/tool/lighter/zippo/gold{ - layer = 3.05; - pixel_y = 3 +/obj/structure/machinery/status_display{ + pixel_y = 30 }, -/turf/open/floor/wood/ship, -/area/almayer/living/commandbunks) +/turf/open/floor/almayer/red, +/area/almayer/hallways/upper/starboard) "laO" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -48893,15 +36099,12 @@ /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/brig/cic_hallway) "laQ" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 - }, /obj/structure/machinery/door/airlock/multi_tile/almayer/engidoor/glass{ name = "\improper Engineering Reception" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer/test_floor4, /area/almayer/engineering/upper_engineering) "laU" = ( /obj/structure/window/framed/almayer, @@ -48926,36 +36129,33 @@ }, /turf/open/floor/plating, /area/almayer/command/cic) -"lbb" = ( -/obj/structure/surface/table/almayer, -/obj/item/organ/heart/prosthetic{ - pixel_x = -4 - }, -/obj/item/circuitboard{ - pixel_x = 12; - pixel_y = 7 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_m_p) "lbf" = ( /obj/structure/machinery/cryopod{ pixel_y = 6 }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/squads/charlie) +"lbs" = ( +/obj/structure/sign/safety/biolab{ + pixel_x = -17; + pixel_y = -8 + }, +/obj/structure/sign/safety/hvac_old{ + pixel_x = -17; + pixel_y = 6 + }, +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/cells) "lbB" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/north, /area/almayer/engineering/upper_engineering/port) +"lbO" = ( +/obj/structure/surface/rack, +/turf/open/floor/almayer/plate, +/area/almayer/maint/upper/u_m_p) "lbX" = ( /obj/structure/bed/chair{ dir = 4 @@ -48963,15 +36163,11 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/charlie) "lcg" = ( /obj/structure/machinery/ares/substrate, -/turf/open/floor/almayer/no_build{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/no_build/test_floor4, /area/almayer/command/airoom) "lcy" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -48980,9 +36176,7 @@ /obj/structure/bed/chair/comfy{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "bluefull" - }, +/turf/open/floor/almayer/bluefull, /area/almayer/living/bridgebunks) "lcV" = ( /obj/structure/bed/chair{ @@ -48999,19 +36193,26 @@ }, /turf/open/floor/wood/ship, /area/almayer/shipboard/brig/chief_mp_office) -"ldj" = ( -/obj/structure/pipes/vents/pump, -/turf/open/floor/almayer{ - icon_state = "emeraldfull" +"ldb" = ( +/obj/structure/machinery/light{ + dir = 1 }, -/area/almayer/living/briefing) +/turf/open/floor/almayer/test_floor4, +/area/almayer/hallways/lower/starboard_fore_hallway) +"ldc" = ( +/turf/closed/wall/almayer/reinforced, +/area/almayer/engineering/lower/workshop) +"lde" = ( +/obj/structure/machinery/conveyor{ + id = "req_belt" + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_midship_hallway) "ldl" = ( /obj/structure/sign/safety/maint{ pixel_x = 32 }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/lifeboat_pumps/north2) "ldt" = ( /obj/structure/machinery/conveyor{ @@ -49019,45 +36220,23 @@ id = "gym_1"; name = "treadmill" }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/gym) -"ldu" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, -/area/almayer/shipboard/brig/main_office) "ldC" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/captain_mess) -"ldD" = ( -/obj/structure/window/framed/almayer, -/obj/structure/machinery/door/poddoor/almayer/open{ - id = "Brig Lockdown Shutters"; - name = "\improper Brig Lockdown Shutter" - }, -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 - }, -/turf/open/floor/plating, -/area/almayer/shipboard/brig/general_equipment) -"ldN" = ( -/obj/structure/platform{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_p) -"lea" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = 11 +"ldF" = ( +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/s_bow) +"ldW" = ( +/obj/structure/pipes/standard/manifold/hidden/supply, +/turf/open/floor/almayer/green/north, +/area/almayer/hallways/lower/port_midship_hallway) +"lea" = ( +/obj/structure/sink{ + dir = 4; + pixel_x = 11 }, /obj/effect/decal/warning_stripes{ icon_state = "SE-out"; @@ -49076,30 +36255,14 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 6 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "emerald" - }, +/turf/open/floor/almayer/emerald/north, /area/almayer/squads/charlie) "leg" = ( /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "emerald" - }, +/turf/open/floor/almayer/emerald/north, /area/almayer/hallways/hangar) -"leh" = ( -/obj/structure/surface/rack, -/obj/effect/spawner/random/tool, -/obj/effect/spawner/random/tool, -/obj/effect/spawner/random/powercell, -/obj/effect/spawner/random/powercell, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_p) "let" = ( /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer, @@ -49110,52 +36273,61 @@ }, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/south1) +"leM" = ( +/obj/structure/largecrate/random/barrel/red, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/s_stern) "leY" = ( /obj/structure/bed/sofa/south/white/left, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/northeast, /area/almayer/medical/lower_medical_lobby) +"lft" = ( +/obj/structure/surface/table/almayer, +/obj/item/storage/firstaid/fire, +/obj/item/device/lightreplacer, +/turf/open/floor/almayer/orange, +/area/almayer/engineering/lower) +"lfx" = ( +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_m_s) +"lfz" = ( +/obj/structure/machinery/light, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_aft_hallway) "lfH" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/almayer/blue/east, /area/almayer/living/basketball) -"lfQ" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" +"lfZ" = ( +/obj/structure/surface/table/almayer, +/obj/item/reagent_container/food/snacks/mre_pack/meal5, +/obj/item/device/flashlight/lamp{ + pixel_x = 3; + pixel_y = 12 }, -/area/almayer/engineering/engine_core) -"lfT" = ( -/obj/structure/surface/table/woodentable/fancy, -/obj/structure/machinery/computer/card{ +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/upper/u_f_s) +"lgk" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/s_bow) +"lgt" = ( +/obj/structure/sink{ dir = 4; - pixel_x = 2 - }, -/turf/open/floor/carpet, -/area/almayer/living/commandbunks) -"lfW" = ( -/obj/structure/sign/safety/high_voltage{ - pixel_y = -32 + pixel_x = 11 }, -/obj/structure/sign/safety/maint{ - pixel_x = 14; - pixel_y = -32 +/obj/structure/mirror{ + pixel_x = 28 }, -/turf/open/floor/almayer{ - icon_state = "red" +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 2 }, -/area/almayer/shipboard/brig/processing) +/turf/open/floor/almayer/dark_sterile, +/area/almayer/command/corporateliaison) "lgy" = ( /obj/structure/window/framed/almayer, /obj/structure/machinery/door/firedoor/border_only/almayer{ @@ -49167,49 +36339,39 @@ }, /turf/open/floor/plating, /area/almayer/living/cryo_cells) -"lgK" = ( -/obj/structure/machinery/cm_vending/clothing/senior_officer{ - density = 0; - pixel_y = 30 +"lgF" = ( +/obj/structure/surface/table/almayer, +/obj/item/device/flashlight/lamp{ + layer = 3.3; + pixel_x = 15 }, -/turf/open/floor/almayer, -/area/almayer/living/numbertwobunks) -"lgX" = ( -/obj/structure/sign/safety/storage{ - pixel_y = 32 +/obj/item/paper_bin/uscm{ + pixel_x = -7; + pixel_y = 6 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "green" +/obj/item/tool/pen{ + pixel_x = -11; + pixel_y = 5 }, -/area/almayer/hallways/port_hallway) -"lgY" = ( -/obj/structure/machinery/door/airlock/almayer/maint, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +/obj/item/tool/pen{ + pixel_x = -10; + pixel_y = -2 }, -/area/almayer/hull/lower_hull/l_f_s) -"lht" = ( -/turf/open/floor/almayer{ - dir = 6; - icon_state = "orange" +/turf/open/floor/almayer/plate, +/area/almayer/living/briefing) +"lhj" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/safety/bulkhead_door{ + pixel_y = -34 }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/p_bow) +"lhs" = ( +/turf/open/floor/almayer/plate, +/area/almayer/hallways/lower/starboard_aft_hallway) +"lht" = ( +/turf/open/floor/almayer/orange/southeast, /area/almayer/engineering/upper_engineering/starboard) -"lhu" = ( -/obj/structure/coatrack, -/obj/structure/sign/poster/clf{ - pixel_x = -28 - }, -/obj/structure/sign/nosmoking_1{ - pixel_y = 30 - }, -/obj/structure/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_s) "lhv" = ( /obj/structure/machinery/door_control{ id = "CMO Shutters"; @@ -49218,10 +36380,7 @@ req_access_txt = "5" }, /obj/structure/machinery/computer/crew, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "sterile_green_corner" - }, +/turf/open/floor/almayer/sterile_green_corner/east, /area/almayer/medical/upper_medical) "lhB" = ( /obj/structure/window/framed/almayer, @@ -49240,20 +36399,8 @@ pixel_x = 12; pixel_y = 25 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/north, /area/almayer/engineering/upper_engineering/port) -"lhL" = ( -/obj/structure/sign/safety/life_support{ - pixel_x = 8; - pixel_y = 32 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_s) "lhX" = ( /obj/structure/desertdam/decals/road_edge{ icon_state = "road_edge_decal3"; @@ -49261,31 +36408,26 @@ }, /turf/open/floor/wood/ship, /area/almayer/living/basketball) +"lia" = ( +/obj/structure/surface/rack, +/obj/effect/spawner/random/toolbox, +/obj/effect/spawner/random/toolbox, +/obj/effect/spawner/random/toolbox, +/obj/effect/spawner/random/tool, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_a_p) +"lib" = ( +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/stern) "lid" = ( /obj/structure/machinery/chem_master{ vial_maker = 1 }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/medical/medical_science) -"lin" = ( -/obj/effect/projector{ - name = "Almayer_AresDown"; - vector_x = 97; - vector_y = -65 - }, -/obj/structure/platform{ - dir = 8 - }, -/obj/structure/stairs{ - dir = 1; - icon_state = "ramptop" - }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, -/area/almayer/command/airoom) "liJ" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -49307,9 +36449,7 @@ /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor/almayer/research/containment/corner_var1{ - icon_state = "containment_corner_variant_2" - }, +/turf/open/floor/almayer/research/containment/corner_var1/containment_corner_variant_2, /area/almayer/medical/containment/cell) "liZ" = ( /obj/structure/surface/table/almayer, @@ -49324,30 +36464,34 @@ "ljf" = ( /obj/structure/surface/table/almayer, /obj/item/reagent_container/food/drinks/cans/waterbottle, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/gym) +"ljm" = ( +/obj/item/clothing/gloves/botanic_leather{ + name = "leather gloves" + }, +/obj/item/clothing/gloves/botanic_leather{ + name = "leather gloves" + }, +/obj/item/clothing/gloves/botanic_leather{ + name = "leather gloves" + }, +/obj/structure/closet/crate, +/obj/item/clothing/suit/storage/hazardvest/black, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_f_p) "ljs" = ( /obj/effect/landmark/start/marine/spec/bravo, /obj/effect/landmark/late_join/bravo, /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/bravo) -"ljz" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/structure/bed/chair/comfy/delta{ - dir = 8 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/living/briefing) +"ljv" = ( +/turf/closed/wall/almayer, +/area/almayer/maint/hull/lower/l_a_p) "ljG" = ( /obj/structure/closet/crate/freezer, /obj/item/reagent_container/food/condiment/coldsauce, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/grunt_rnr) "ljO" = ( /obj/structure/disposalpipe/segment, @@ -49359,16 +36503,37 @@ /obj/structure/sign/nosmoking_2{ pixel_x = 28 }, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/southeast, /area/almayer/medical/lower_medical_lobby) +"ljS" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SE-out" + }, +/obj/structure/sign/safety/bathunisex{ + pixel_x = 8; + pixel_y = 25 + }, +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/cells) +"ljW" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/obj/structure/bed/chair/comfy/alpha{ + dir = 8 + }, +/turf/open/floor/almayer/plate, +/area/almayer/living/briefing) +"lka" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/sign/safety/distribution_pipes{ + pixel_x = 32 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_m_s) "lkd" = ( /obj/structure/window/framed/almayer, -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 - }, /obj/structure/machinery/door/poddoor/shutters/almayer{ dir = 2; id = "kitchen2"; @@ -49385,11 +36550,24 @@ pixel_y = -2; req_one_access_txt = "3;22;19" }, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/almayer/red/southeast, /area/almayer/living/offices/flight) +"lkm" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/almayer/cargo, +/area/almayer/engineering/upper_engineering/starboard) +"lkL" = ( +/obj/structure/pipes/vents/pump{ + dir = 4 + }, +/obj/structure/bed/chair/comfy/bravo{ + dir = 4 + }, +/obj/structure/barricade/deployable{ + dir = 4 + }, +/turf/open/floor/almayer/orangefull, +/area/almayer/living/briefing) "lkM" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -49398,10 +36576,14 @@ icon_state = "N"; pixel_y = 2 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/charlie) +"lkV" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/almayer, +/area/almayer/engineering/lower/workshop) "lkW" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/storage/belt/medical/lifesaver/full, @@ -49409,43 +36591,41 @@ /obj/item/device/radio/marine, /obj/item/clothing/accessory/storage/surg_vest, /obj/item/tool/portadialysis, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/west, /area/almayer/medical/lower_medical_medbay) -"llt" = ( -/obj/structure/machinery/conveyor{ - id = "req_belt" - }, -/obj/structure/plasticflaps, -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 1 +"lla" = ( +/obj/structure/sign/safety/hvac_old{ + pixel_x = 8; + pixel_y = 32 }, -/turf/open/floor/almayer, -/area/almayer/squads/req) -"llD" = ( /obj/structure/pipes/standard/simple/hidden/supply{ - dir = 5 + dir = 4 }, /turf/open/floor/plating/plating_catwalk, -/area/almayer/command/combat_correspondent) -"llM" = ( -/obj/structure/pipes/vents/scrubber, -/turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_s) -"llO" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" +/area/almayer/maint/upper/u_a_p) +"llo" = ( +/turf/open/floor/almayer/green/east, +/area/almayer/hallways/upper/fore_hallway) +"llK" = ( +/obj/structure/platform_decoration{ + dir = 4 }, +/turf/open/floor/almayer/plating/northeast, +/area/almayer/engineering/lower/engine_core) +"llO" = ( +/turf/open/floor/almayer/orange/east, /area/almayer/hallways/hangar) -"lmk" = ( -/obj/structure/machinery/light/small{ - dir = 1 +"lma" = ( +/obj/structure/sign/safety/security{ + pixel_x = 15 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_p) +/turf/closed/wall/almayer, +/area/almayer/hallways/lower/starboard_umbilical) +"lmi" = ( +/obj/structure/bed, +/obj/item/bedsheet/green, +/turf/open/floor/almayer/mono, +/area/almayer/medical/upper_medical) "lml" = ( /obj/structure/machinery/camera/autoname/almayer{ dir = 1; @@ -49453,6 +36633,13 @@ }, /turf/open/floor/almayer, /area/almayer/squads/bravo) +"lmq" = ( +/obj/structure/sign/safety/hvac_old{ + pixel_x = 8; + pixel_y = 32 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_a_s) "lmw" = ( /obj/structure/closet/l3closet/general, /obj/structure/machinery/light{ @@ -49465,40 +36652,54 @@ /turf/open/floor/plating/plating_catwalk, /area/almayer/medical/medical_science) "lmz" = ( -/turf/closed/wall/almayer/white/hull, +/turf/closed/wall/almayer/aicore/hull, /area/space) -"lmK" = ( -/turf/closed/wall/almayer/reinforced, -/area/almayer/command/securestorage) +"lmA" = ( +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_21" + }, +/turf/open/floor/almayer/plate, +/area/almayer/living/numbertwobunks) +"lmG" = ( +/obj/structure/stairs{ + dir = 8; + icon_state = "ramptop" + }, +/obj/effect/projector{ + name = "Almayer_Down2"; + vector_x = 1; + vector_y = -100 + }, +/turf/open/floor/plating/almayer/no_build, +/area/almayer/hallways/upper/fore_hallway) "lne" = ( /obj/structure/bed/chair, -/turf/open/floor/almayer{ - icon_state = "orange" - }, +/turf/open/floor/almayer/orange, /area/almayer/engineering/upper_engineering/port) -"lnm" = ( -/turf/open/floor/almayer{ - icon_state = "orangecorner" +"lnh" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer, +/obj/structure/machinery/door/airlock/almayer/security/glass{ + dir = 8; + name = "\improper Chief MP's Office" + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, +/turf/open/floor/almayer/test_floor4, +/area/almayer/shipboard/brig/chief_mp_office) +"lnm" = ( +/turf/open/floor/almayer/orangecorner, /area/almayer/living/briefing) "lnt" = ( -/turf/open/floor/almayer{ - icon_state = "silvercorner" - }, +/turf/open/floor/almayer/silvercorner, /area/almayer/shipboard/brig/cic_hallway) -"lnJ" = ( -/obj/structure/machinery/camera/autoname/almayer{ - dir = 8; - name = "ship-grade camera" - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/shipboard/brig/cells) +"lnu" = ( +/turf/closed/wall/almayer/reinforced/temphull, +/area/almayer/living/gym) "lnP" = ( /obj/structure/machinery/vending/cola, /obj/structure/window/reinforced, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/almayer/engineering/upper_engineering) "lnS" = ( /obj/structure/sign/safety/rewire{ @@ -49522,15 +36723,8 @@ pixel_y = -8; req_one_access_txt = "90;91;92" }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, +/turf/open/floor/almayer/aicore/glowing/no_build/ai_floor3, /area/almayer/command/airoom) -"lnZ" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/wood/ship, -/area/almayer/living/commandbunks) "lok" = ( /obj/structure/machinery/cm_vending/clothing/marine/charlie{ density = 0; @@ -49540,9 +36734,7 @@ /obj/structure/sign/safety/cryo{ pixel_x = 32 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/charlie) "lol" = ( /obj/structure/machinery/status_display{ @@ -49552,9 +36744,7 @@ /obj/structure/sign/safety/airlock{ pixel_y = -32 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/engineering/upper_engineering/port) "lou" = ( /obj/effect/decal/warning_stripes{ @@ -49563,10 +36753,33 @@ /obj/structure/pipes/standard/simple/hidden/supply/no_boom{ dir = 5 }, -/turf/open/floor/almayer{ - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side, /area/almayer/medical/medical_science) +"loy" = ( +/obj/structure/sign/poster{ + desc = "Eat an EAT bar! ...Aren't they called MEAT bars?"; + icon_state = "poster7"; + name = "EAT - poster"; + pixel_x = 27 + }, +/obj/structure/surface/table/almayer, +/obj/item/paper_bin/uscm{ + pixel_x = 9; + pixel_y = 6 + }, +/obj/item/tool/pen{ + pixel_x = 9; + pixel_y = 9 + }, +/obj/item/tool/pen{ + pixel_x = 9; + pixel_y = 2 + }, +/turf/open/floor/almayer/plate, +/area/almayer/living/briefing) +"loE" = ( +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_f_s) "loK" = ( /obj/structure/closet/crate/medical, /obj/item/storage/firstaid/adv, @@ -49574,9 +36787,7 @@ /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/light_grey_single_wide_up_to_down, /area/almayer/powered/agent) "loP" = ( /turf/closed/wall/almayer, @@ -49594,9 +36805,7 @@ pixel_y = -29 }, /obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "bluecorner" - }, +/turf/open/floor/almayer/bluecorner, /area/almayer/squads/delta) "loV" = ( /obj/structure/desertdam/decals/road_edge{ @@ -49613,149 +36822,84 @@ /turf/open/floor/wood/ship, /area/almayer/living/basketball) "loY" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "green" - }, +/turf/open/floor/almayer/green/west, /area/almayer/living/grunt_rnr) -"lpt" = ( -/turf/open/floor/almayer{ - icon_state = "blue" +"lpg" = ( +/obj/structure/machinery/cm_vending/clothing/dress{ + req_access = list(1) + }, +/turf/open/floor/almayer/cargo, +/area/almayer/living/commandbunks) +"lpl" = ( +/obj/structure/machinery/door/airlock/almayer/security{ + dir = 2; + name = "\improper Security Checkpoint" }, +/turf/open/floor/almayer/test_floor4, +/area/almayer/shipboard/panic) +"lpt" = ( +/turf/open/floor/almayer/blue, /area/almayer/squads/charlie_delta_shared) "lpy" = ( /obj/structure/machinery/door/airlock/almayer/maint{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/powered/agent) -"lpD" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/effect/step_trigger/clone_cleaner, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "greencorner" - }, -/area/almayer/hallways/starboard_hallway) -"lpS" = ( -/obj/structure/largecrate/random/barrel/red, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_s) -"lpX" = ( -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_s) +"lql" = ( +/turf/open/floor/almayer/test_floor4, +/area/almayer/hallways/lower/starboard_umbilical) "lqF" = ( -/turf/open/floor/almayer{ - dir = 9; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/northwest, /area/almayer/medical/lower_medical_lobby) -"lqI" = ( -/obj/structure/bed/chair{ - dir = 8 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_s) -"lqJ" = ( -/obj/structure/sign/safety/escapepod{ - pixel_y = -32 - }, -/obj/structure/sign/safety/south{ - pixel_x = 15; - pixel_y = -32 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/aft_hallway) "lqK" = ( /obj/effect/decal/cleanable/ash, /obj/item/trash/cigbutt/ucigbutt{ pixel_x = -13; pixel_y = 8 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "emerald" - }, +/turf/open/floor/almayer/emerald/north, /area/almayer/hallways/hangar) +"lqL" = ( +/obj/structure/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, +/turf/open/floor/almayer/red/east, +/area/almayer/hallways/upper/aft_hallway) "lqN" = ( /obj/item/device/assembly/mousetrap/armed, /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/southwest, /area/almayer/living/port_emb) -"lra" = ( -/obj/structure/machinery/door/airlock/almayer/engineering{ - name = "\improper Disposals" - }, -/obj/structure/disposalpipe/junction{ - dir = 8; - icon_state = "pipe-j2" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hull/lower_hull/l_m_p) -"lrb" = ( -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/hull/upper_hull/u_f_p) -"lre" = ( -/obj/structure/largecrate/random/barrel/yellow, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_p) "lrq" = ( /turf/closed/wall/almayer/reinforced, /area/almayer/shipboard/brig/armory) -"lrs" = ( -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/engineering_workshop) +"lrE" = ( +/obj/structure/window/framed/almayer/hull, +/turf/open/floor/plating, +/area/almayer/maint/hull/upper/s_bow) "lrF" = ( /obj/structure/machinery/light, /obj/structure/surface/table/almayer, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/south1) +"lrH" = ( +/obj/structure/largecrate/random/case/double, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_f_s) "lrT" = ( /obj/structure/bed/chair, /turf/open/floor/almayer, /area/almayer/squads/charlie_delta_shared) -"lrV" = ( -/obj/structure/machinery/door/window/brigdoor/southright{ - id = "Cell 3"; - name = "Cell 3" - }, -/obj/structure/sign/safety/three{ - pixel_x = 31 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/shipboard/brig/cells) "lrW" = ( /obj/structure/surface/rack, /obj/item/storage/firstaid/adv, /obj/item/storage/firstaid/adv, /obj/item/storage/firstaid/adv, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, +/turf/open/floor/almayer/redfull, /area/almayer/command/cic) "lrX" = ( /obj/effect/decal/warning_stripes{ @@ -49767,10 +36911,21 @@ }, /turf/open/floor/almayer, /area/almayer/hallways/hangar) -"lsb" = ( -/obj/structure/largecrate/random/case/small, -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_f_p) +"lsn" = ( +/obj/structure/surface/table/almayer, +/obj/item/paper{ + pixel_x = -4; + pixel_y = 5 + }, +/obj/item/tool/pen, +/turf/open/floor/almayer/bluefull, +/area/almayer/living/briefing) +"lso" = ( +/obj/structure/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_m_s) "lsp" = ( /obj/structure/machinery/door/airlock/almayer/command{ name = "\improper Conference Room" @@ -49785,18 +36940,13 @@ id = "CIC Lockdown"; name = "\improper Combat Information Center Blast Door" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/command/cichallway) "lsD" = ( /obj/structure/bed/chair/office/dark{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/almayer/red/east, /area/almayer/living/offices/flight) "lsV" = ( /obj/structure/largecrate/random/barrel/red, @@ -49804,26 +36954,46 @@ pixel_x = 7; pixel_y = 32 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/almayer/red/north, /area/almayer/shipboard/weapon_room) "ltb" = ( /obj/structure/sign/safety/rewire{ pixel_x = 32 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "plating_striped" - }, +/turf/open/floor/almayer/plating_striped/west, /area/almayer/squads/req) +"ltc" = ( +/obj/effect/landmark/late_join/working_joe, +/obj/effect/landmark/start/working_joe, +/turf/open/floor/plating/plating_catwalk/aicore, +/area/almayer/command/airoom) +"ltm" = ( +/obj/structure/bed/chair/comfy/orange, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_a_p) "lto" = ( /obj/structure/machinery/iv_drip, -/turf/open/floor/almayer{ - icon_state = "sterile_green" - }, +/turf/open/floor/almayer/sterile_green, /area/almayer/medical/containment) +"ltv" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer/plate, +/area/almayer/hallways/lower/port_fore_hallway) +"ltw" = ( +/obj/structure/largecrate/supply, +/turf/open/floor/almayer, +/area/almayer/maint/hull/upper/u_f_s) +"lty" = ( +/obj/structure/bed/chair{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_a_s) "ltA" = ( /obj/item/tool/weldingtool, /turf/open/floor/almayer, @@ -49832,99 +37002,39 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "emerald" - }, +/turf/open/floor/almayer/emerald/northeast, /area/almayer/squads/charlie) -"ltK" = ( -/obj/structure/window/framed/almayer, -/obj/structure/curtain/open/shower{ - name = "hypersleep curtain" +"ltO" = ( +/obj/structure/closet/secure_closet{ + name = "\improper Lethal Injection Locker" }, -/turf/open/floor/plating, -/area/almayer/hull/upper_hull/u_m_p) -"ltX" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/closed/wall/almayer/reinforced, -/area/almayer/shipboard/brig/main_office) -"luk" = ( -/obj/structure/machinery/light/small{ +/obj/item/reagent_container/ld50_syringe/choral, +/obj/item/reagent_container/ld50_syringe/choral, +/obj/item/reagent_container/ld50_syringe/choral, +/obj/item/reagent_container/ld50_syringe/choral, +/obj/item/reagent_container/ld50_syringe/choral, +/turf/open/floor/almayer/plate, +/area/almayer/shipboard/brig/execution_storage) +"ltU" = ( +/obj/structure/bed/chair{ dir = 8 }, -/obj/item/clothing/head/helmet/marine/tech/tanker, -/obj/structure/largecrate/random/secure, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_a_p) -"lut" = ( -/obj/structure/machinery/computer/crew, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, -/area/almayer/shipboard/brig/main_office) -"luu" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/sign/safety/storage{ - pixel_x = 8; - pixel_y = 32 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_p) -"luw" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer, -/obj/structure/machinery/door/airlock/multi_tile/almayer/secdoor/glass/reinforced{ - dir = 2; - name = "Brig" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/shipboard/brig/processing) -"luz" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 - }, -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/structure/disposalpipe/segment, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/starboard_hallway) -"luC" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 1 - }, -/obj/structure/machinery/door/poddoor/almayer/open{ - id = "perma_lockdown"; - name = "\improper Perma Lockdown Shutter" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/shipboard/brig/perma) -"luH" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 +/turf/open/floor/almayer/plate, +/area/almayer/command/combat_correspondent) +"lul" = ( +/obj/structure/machinery/door/airlock/almayer/command/reinforced{ + name = "\improper Commanding Officer's Quarters"; + req_access = null; + req_access_txt = "31" }, -/obj/structure/machinery/atm{ +/turf/open/floor/almayer/test_floor4, +/area/almayer/living/commandbunks) +"luE" = ( +/obj/structure/sign/poster{ pixel_y = 32 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "redcorner" - }, -/area/almayer/shipboard/brig/processing) +/turf/open/floor/almayer, +/area/almayer/maint/hull/upper/u_f_p) "luS" = ( /obj/structure/surface/rack, /obj/item/stack/sheet/cardboard{ @@ -49935,16 +37045,11 @@ amount = 50; pixel_x = 4 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/grunt_rnr) "luY" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/east, /area/almayer/engineering/upper_engineering/starboard) "luZ" = ( /obj/structure/machinery/door/poddoor/almayer/open{ @@ -49959,43 +37064,45 @@ /obj/structure/machinery/door/airlock/multi_tile/almayer/comdoor/reinforced{ name = "\improper Combat Information Center" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/command/cic) -"lvA" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "blue" +"lvb" = ( +/obj/structure/machinery/door_control/cl/office/door{ + pixel_y = 25 }, -/area/almayer/living/pilotbunks) -"lvZ" = ( -/obj/structure/window/framed/almayer, -/obj/structure/machinery/door/poddoor/almayer/locked{ - dir = 8; - id = "Perma 1L"; - name = "\improper cell shutter" +/turf/open/floor/wood/ship, +/area/almayer/command/corporateliaison) +"lvh" = ( +/obj/structure/pipes/standard/simple/visible{ + dir = 10 }, -/turf/open/floor/plating, -/area/almayer/shipboard/brig/perma) -"lwi" = ( -/obj/structure/machinery/door/airlock/almayer/maint{ - access_modified = 1; - dir = 1; - req_one_access = null; - req_one_access_txt = "2;7" +/obj/structure/machinery/meter, +/obj/structure/sign/safety/terminal{ + pixel_x = 8; + pixel_y = 32 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +/turf/open/floor/almayer/plate, +/area/almayer/engineering/lower) +"lvA" = ( +/turf/open/floor/almayer/blue/north, +/area/almayer/living/pilotbunks) +"lwh" = ( +/obj/structure/machinery/light{ + dir = 8 }, -/area/almayer/hull/upper_hull/u_a_p) -"lwm" = ( -/obj/structure/sign/safety/distribution_pipes{ - pixel_x = 8; - pixel_y = 32 +/obj/structure/bed/chair/comfy/delta, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer/plate, +/area/almayer/living/briefing) +"lwp" = ( +/obj/item/device/radio/intercom{ + freerange = 1; + name = "General Listening Channel"; + pixel_y = 28 }, +/obj/structure/machinery/cm_vending/sorted/tech/circuits, /turf/open/floor/almayer, -/area/almayer/hallways/aft_hallway) +/area/almayer/engineering/lower/workshop) "lwC" = ( /obj/structure/desertdam/decals/road_edge{ icon_state = "road_edge_decal3"; @@ -50009,14 +37116,26 @@ }, /turf/open/floor/wood/ship, /area/almayer/living/basketball) +"lwG" = ( +/obj/structure/machinery/suit_storage_unit/compression_suit/uscm, +/turf/open/floor/almayer/plate, +/area/almayer/hallways/lower/port_umbilical) "lwJ" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "emeraldfull" - }, +/turf/open/floor/almayer/emeraldfull, /area/almayer/squads/charlie) +"lwY" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ + name = "\improper Port Viewing Room" + }, +/turf/open/floor/almayer/test_floor4, +/area/almayer/maint/hull/upper/u_f_p) +"lxd" = ( +/obj/structure/machinery/suit_storage_unit/compression_suit/uscm, +/turf/open/floor/almayer/plate, +/area/almayer/hallways/lower/starboard_umbilical) "lxo" = ( /obj/structure/sign/safety/hazard{ pixel_x = -17; @@ -50026,63 +37145,83 @@ pixel_x = -17; pixel_y = 7 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/auxiliary_officer_office) -"lxT" = ( -/obj/structure/machinery/constructable_frame, -/turf/open/floor/almayer{ - icon_state = "mono" - }, -/area/almayer/lifeboat_pumps/south2) +"lxE" = ( +/obj/structure/machinery/cm_vending/clothing/commanding_officer, +/turf/open/floor/almayer/cargo, +/area/almayer/living/commandbunks) "lxW" = ( /obj/structure/sign/prop2{ pixel_y = 29 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/auxiliary_officer_office) -"lyi" = ( -/obj/structure/surface/table/almayer, -/obj/item/trash/pistachios, -/obj/item/tool/lighter/random{ - pixel_x = 13 +"lyh" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/tool/surgery/scalpel{ + pixel_x = -1; + pixel_y = 10 }, -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_f_p) +/obj/item/stack/cable_coil{ + pixel_y = 1; + pixel_x = 8 + }, +/obj/item/stack/sheet/cardboard/small_stack{ + pixel_y = 2; + pixel_x = -3; + layer = 3.01 + }, +/turf/open/floor/almayer, +/area/almayer/squads/alpha_bravo_shared) "lyk" = ( /obj/structure/sign/safety/storage{ pixel_x = -17 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "green" - }, +/turf/open/floor/almayer/green/west, /area/almayer/squads/req) +"lym" = ( +/obj/structure/machinery/vending/cigarette, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_f_p) +"lyq" = ( +/turf/open/floor/almayer/emerald/west, +/area/almayer/hallways/lower/port_midship_hallway) "lyw" = ( /obj/structure/bed/chair/comfy{ dir = 8 }, /turf/open/floor/almayer, /area/almayer/command/lifeboat) +"lyz" = ( +/obj/structure/surface/table/almayer, +/obj/item/organ/heart/prosthetic{ + pixel_x = -4 + }, +/obj/item/circuitboard{ + pixel_x = 12; + pixel_y = 7 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_m_p) "lyE" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "silvercorner" - }, +/turf/open/floor/almayer/silvercorner/east, /area/almayer/command/computerlab) +"lyP" = ( +/obj/structure/largecrate/random/case/small, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/s_bow) +"lyW" = ( +/turf/closed/wall/almayer/outer, +/area/almayer/maint/hull/lower/l_m_p) "lyX" = ( /obj/structure/machinery/cm_vending/clothing/senior_officer{ req_access = null; req_access_txt = 37; req_one_access = null }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/auxiliary_officer_office) "lza" = ( /obj/structure/bed/sofa/vert/grey, @@ -50091,24 +37230,12 @@ }, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/south1) -"lzj" = ( -/obj/structure/sign/safety/storage{ - pixel_x = 8; - pixel_y = 32 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "blue" - }, -/area/almayer/hallways/aft_hallway) -"lzn" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/structure/machinery/light/small{ - dir = 4 +"lze" = ( +/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ + pixel_y = 25 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_s) +/turf/open/floor/almayer/red/north, +/area/almayer/shipboard/brig/processing) "lzq" = ( /obj/structure/disposalpipe/segment{ dir = 1; @@ -50116,110 +37243,46 @@ }, /turf/open/floor/almayer, /area/almayer/squads/charlie_delta_shared) -"lzx" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "redcorner" +"lzt" = ( +/obj/structure/surface/table/almayer, +/obj/item/tool/screwdriver, +/obj/item/prop/helmetgarb/gunoil{ + pixel_x = -7; + pixel_y = 12 }, -/area/almayer/shipboard/brig/main_office) -"lzA" = ( -/obj/structure/machinery/sleep_console{ - dir = 8 +/obj/item/weapon/gun/rifle/l42a{ + pixel_x = 17; + pixel_y = 6 }, -/turf/open/floor/almayer{ - icon_state = "mono" +/turf/open/floor/almayer/plate, +/area/almayer/maint/upper/u_m_s) +"lzA" = ( +/obj/structure/bed/chair/comfy{ + dir = 5 }, +/turf/open/floor/almayer/mono, /area/almayer/medical/medical_science) -"lzH" = ( -/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ - pixel_y = -25 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_s) -"lzW" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/obj/structure/sign/safety/stairs{ - pixel_x = -15 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "red" - }, -/area/almayer/hallways/aft_hallway) -"lAj" = ( -/obj/structure/machinery/light/small{ - dir = 1 - }, -/obj/structure/closet/crate, -/obj/item/ammo_magazine/rifle/l42a/ap{ - current_rounds = 0 - }, -/obj/item/ammo_magazine/rifle/l42a/ap{ - current_rounds = 0 - }, -/obj/item/ammo_magazine/rifle/l42a/ap{ - current_rounds = 0 - }, -/obj/item/ammo_magazine/rifle/l42a/ap{ - current_rounds = 0 - }, -/obj/item/ammo_magazine/rifle/l42a/ap{ - current_rounds = 0 - }, -/obj/item/ammo_magazine/rifle/l42a/ap{ - current_rounds = 0 - }, -/obj/item/ammo_magazine/rifle/l42a/ap{ - current_rounds = 0 - }, -/obj/item/ammo_magazine/rifle/l42a/ap{ - current_rounds = 0 - }, -/obj/item/ammo_magazine/rifle/l42a/ap{ - current_rounds = 0 - }, -/obj/item/ammo_magazine/rifle/l42a/ap{ - current_rounds = 0 - }, -/obj/item/ammo_magazine/rifle/l42a/ap{ - current_rounds = 0 - }, -/obj/item/ammo_magazine/rifle/l42a/ap{ - current_rounds = 0 - }, -/obj/item/ammo_magazine/rifle/l42a/ap{ - current_rounds = 0 - }, -/obj/item/ammo_magazine/rifle/l42a/ap{ - current_rounds = 0 - }, -/obj/item/ammo_magazine/rifle/l42a/ap{ - current_rounds = 0 +"lAa" = ( +/obj/structure/surface/table/almayer, +/obj/item/device/lightreplacer{ + pixel_x = 4; + pixel_y = 4 }, -/obj/item/ammo_magazine/rifle/l42a/ap{ - current_rounds = 0 +/obj/item/storage/toolbox/emergency, +/obj/structure/sign/safety/water{ + pixel_x = 8; + pixel_y = 32 }, /turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_m_s) +/area/almayer/maint/hull/lower/l_m_p) "lAl" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/east, /area/almayer/squads/bravo) "lAu" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer, /obj/structure/machinery/door/airlock/multi_tile/almayer/engidoor{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/engineering/upper_engineering/port) "lAy" = ( /obj/structure/bed/chair/comfy/beige{ @@ -50230,28 +37293,6 @@ }, /turf/open/floor/carpet, /area/almayer/command/cichallway) -"lAA" = ( -/obj/structure/machinery/door/airlock/almayer/maint, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hull/lower_hull/l_a_p) -"lAO" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/manifold/hidden/supply, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_hallway) -"lAP" = ( -/obj/structure/machinery/light/small{ - dir = 1 - }, -/obj/structure/largecrate/random/barrel/red, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_s) "lAQ" = ( /obj/structure/machinery/cm_vending/gear/tl{ density = 0; @@ -50259,29 +37300,22 @@ vend_x_offset = 1 }, /obj/structure/machinery/light, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "emerald" - }, +/turf/open/floor/almayer/emerald/west, /area/almayer/squads/charlie) +"lAW" = ( +/obj/docking_port/stationary/escape_pod/east, +/turf/open/floor/plating, +/area/almayer/maint/upper/u_m_p) "lBg" = ( /obj/structure/bedsheetbin, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/engineering/laundry) -"lBi" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/obj/structure/sign/safety/escapepod{ - pixel_x = -17 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" +"lBl" = ( +/obj/structure/sink{ + pixel_y = 24 }, -/area/almayer/hallways/aft_hallway) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/lower/s_bow) "lBv" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -50289,141 +37323,73 @@ /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "emerald" - }, +/turf/open/floor/almayer/emerald/southwest, /area/almayer/squads/charlie) -"lBz" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/manifold/hidden/supply, -/turf/open/floor/almayer, -/area/almayer/hallways/starboard_hallway) -"lBF" = ( -/obj/structure/surface/table/almayer, -/obj/effect/spawner/random/toolbox, -/obj/item/clipboard, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "green" - }, -/area/almayer/squads/req) -"lBR" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 10 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_a_p) -"lBY" = ( -/obj/structure/closet{ - name = "backpack storage" - }, -/obj/item/storage/backpack/marine/grenadepack, -/obj/item/storage/backpack/marine/grenadepack, -/obj/item/storage/backpack/marine/mortarpack, -/obj/item/storage/backpack/marine/mortarpack, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/engineering_workshop/hangar) -"lCn" = ( +"lCg" = ( /obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/obj/structure/sign/safety/ammunition{ - pixel_x = 15; - pixel_y = 32 + icon_state = "W" }, -/obj/structure/sign/safety/hazard{ - pixel_y = 32 +/obj/effect/step_trigger/clone_cleaner, +/turf/open/floor/almayer/green/west, +/area/almayer/hallways/upper/fore_hallway) +"lCm" = ( +/obj/structure/machinery/light/small{ + dir = 1 }, -/obj/structure/closet/secure_closet/guncabinet/red/mp_armory_shotgun, -/turf/open/floor/plating/almayer, -/area/almayer/shipboard/brig/armory) +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/s_bow) +"lCr" = ( +/turf/open/floor/almayer/redfull, +/area/almayer/living/briefing) "lCt" = ( -/turf/open/floor/almayer{ - dir = 10; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/southwest, /area/almayer/medical/containment) -"lCz" = ( +"lCE" = ( +/obj/structure/bed/chair/comfy/delta, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer/plate, +/area/almayer/living/briefing) +"lCL" = ( /obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/obj/item/device/radio/intercom{ - freerange = 1; - name = "General Listening Channel"; - pixel_y = -28 + icon_state = "N"; + pixel_y = 1 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" +/turf/open/floor/almayer/red/southwest, +/area/almayer/hallways/upper/port) +"lDa" = ( +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_29" }, -/area/almayer/hallways/aft_hallway) -"lCM" = ( +/turf/open/floor/wood/ship, +/area/almayer/command/corporateliaison) +"lDk" = ( /obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, -/area/almayer/shipboard/brig/main_office) -"lCS" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "SW-out"; - layer = 2.5 - }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, -/area/almayer/hallways/aft_hallway) -"lDg" = ( -/obj/structure/machinery/door/poddoor/shutters/almayer{ - id = "laddernorthwest"; - name = "\improper North West Ladders Shutters" - }, -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 + dir = 10 }, -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/effect/step_trigger/clone_cleaner, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +/obj/structure/machinery/door_control{ + id = "laddersoutheast"; + name = "South East Ladders Shutters"; + pixel_y = 25; + req_one_access_txt = "2;3;12;19"; + throw_range = 15 }, -/area/almayer/hallways/starboard_hallway) -"lDj" = ( +/turf/open/floor/almayer/green/north, +/area/almayer/hallways/lower/port_midship_hallway) +"lDn" = ( /obj/effect/decal/warning_stripes{ - icon_state = "NW-out"; - pixel_y = 2 + icon_state = "NE-out"; + pixel_y = 1 }, /turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_p) -"lDJ" = ( -/obj/structure/sign/safety/distribution_pipes{ - pixel_x = -17 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" - }, -/area/almayer/hallways/starboard_hallway) -"lDK" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/largecrate/supply/weapons/m39{ - pixel_x = 2 - }, -/obj/structure/largecrate/supply/weapons/m41a{ - layer = 3.1; - pixel_x = 6; - pixel_y = 17 - }, -/turf/open/floor/almayer{ - icon_state = "plate" +/area/almayer/command/lifeboat) +"lDA" = ( +/obj/structure/sign/safety/bulkhead_door{ + pixel_x = 8; + pixel_y = -32 }, -/area/almayer/hull/upper_hull/u_m_s) +/turf/open/floor/plating, +/area/almayer/maint/lower/constr) "lDL" = ( /obj/structure/machinery/light{ dir = 4 @@ -50431,10 +37397,8 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "plating_striped" - }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/almayer/plating_striped/west, /area/almayer/squads/req) "lDN" = ( /obj/effect/decal/warning_stripes{ @@ -50450,10 +37414,15 @@ pixel_x = -1; pixel_y = 1 }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/medical/hydroponics) +"lDT" = ( +/obj/structure/sign/safety/hvac_old{ + pixel_x = 8; + pixel_y = 32 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/s_bow) "lDV" = ( /obj/effect/landmark/start/marine/medic/bravo, /obj/effect/landmark/late_join/bravo, @@ -50461,7 +37430,13 @@ pixel_y = 26 }, /turf/open/floor/plating/plating_catwalk, -/area/almayer/squads/alpha) +/area/almayer/squads/bravo) +"lEe" = ( +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 1 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/general_equipment) "lEf" = ( /turf/closed/wall/almayer/research/containment/wall/corner{ dir = 1 @@ -50469,19 +37444,13 @@ /area/almayer/medical/containment/cell/cl) "lEj" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orangecorner" - }, +/turf/open/floor/almayer/orangecorner/north, /area/almayer/engineering/upper_engineering) "lEv" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/almayer/red/west, /area/almayer/shipboard/brig/lobby) "lEF" = ( /obj/structure/stairs{ @@ -50500,16 +37469,9 @@ }, /turf/open/floor/almayer, /area/almayer/squads/alpha_bravo_shared) -"lEW" = ( -/obj/structure/disposalpipe/segment, -/turf/closed/wall/almayer, -/area/almayer/engineering/engineering_workshop/hangar) -"lFb" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_s) +"lEV" = ( +/turf/open/floor/almayer/plate, +/area/almayer/hallways/lower/vehiclehangar) "lFe" = ( /obj/structure/bed/chair/comfy{ dir = 4 @@ -50523,50 +37485,53 @@ /obj/structure/pipes/vents/scrubber{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/almayer/blue/north, /area/almayer/living/port_emb) -"lFm" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "silver" +"lFj" = ( +/obj/structure/machinery/door_control{ + id = "ARES Operations Right"; + name = "ARES Operations Shutter"; + pixel_x = 24; + pixel_y = -8; + req_one_access_txt = "90;91;92" }, -/area/almayer/command/securestorage) +/turf/open/floor/almayer/aicore/no_build/ai_silver/east, +/area/almayer/command/airoom) "lFn" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_21" }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_corner" - }, +/turf/open/floor/almayer/sterile_green_corner/north, /area/almayer/medical/morgue) -"lFs" = ( -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 1 - }, -/obj/structure/extinguisher_cabinet{ - pixel_x = -26 +"lFp" = ( +/turf/closed/wall/almayer, +/area/almayer/engineering/lower/workshop/hangar) +"lFr" = ( +/obj/structure/machinery/firealarm{ + dir = 8; + pixel_x = -24 }, -/turf/open/floor/almayer, -/area/almayer/shipboard/brig/perma) +/turf/open/floor/almayer/orange/west, +/area/almayer/maint/upper/mess) "lFt" = ( /obj/structure/machinery/portable_atmospherics/powered/pump, /obj/structure/sign/safety/maint{ pixel_x = 8; pixel_y = 32 }, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo/southwest, /area/almayer/engineering/starboard_atmos) +"lFw" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/obj/effect/projector{ + name = "Almayer_Up1"; + vector_x = -19; + vector_y = 98 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/starboard_midship_hallway) "lFA" = ( /obj/structure/surface/table/almayer, /obj/item/storage/pouch/tools/tank, @@ -50574,93 +37539,51 @@ pixel_x = 8; pixel_y = -32 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/engineering/upper_engineering/port) -"lFF" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12 - }, -/obj/structure/prop/invuln/lattice_prop{ - dir = 1; - icon_state = "lattice-simple"; - pixel_x = 16; - pixel_y = -15 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_p) "lFK" = ( /obj/structure/machinery/light{ dir = 8 }, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/south2) -"lGh" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/structure/sign/safety/maint{ - pixel_x = -17 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/starboard_hallway) -"lGr" = ( -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_a_p) -"lGu" = ( -/obj/structure/filingcabinet{ - density = 0; - pixel_x = -8; - pixel_y = 18 +"lFL" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 }, -/obj/structure/filingcabinet{ - density = 0; - pixel_x = 8; - pixel_y = 18 +/obj/structure/machinery/light{ + dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" +/turf/open/floor/almayer/green/east, +/area/almayer/hallways/lower/starboard_midship_hallway) +"lGg" = ( +/obj/structure/machinery/cm_vending/sorted/tech/electronics_storage, +/turf/open/floor/almayer/orange/north, +/area/almayer/engineering/lower/workshop/hangar) +"lGh" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/area/almayer/hull/upper_hull/u_f_p) -"lGG" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ - dir = 1; - name = "\improper Starboard Viewing Room" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hull/upper_hull/u_f_s) -"lGL" = ( -/obj/structure/closet/fireaxecabinet{ - pixel_y = -32 - }, -/obj/structure/pipes/standard/manifold/hidden/supply, -/turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_s) -"lHc" = ( -/obj/effect/landmark/start/doctor, -/obj/structure/sign/safety/maint{ - pixel_y = 26 +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/upper/midship_hallway) +"lHk" = ( +/obj/structure/closet/firecloset, +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out" }, /turf/open/floor/plating/plating_catwalk, -/area/almayer/living/offices) +/area/almayer/maint/hull/upper/s_bow) "lHu" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "greencorner" - }, +/turf/open/floor/almayer/greencorner/west, /area/almayer/living/grunt_rnr) +"lHB" = ( +/obj/structure/prop/almayer/computers/sensor_computer3, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_m_s) "lHG" = ( /obj/structure/machinery/door/airlock/almayer/maint{ access_modified = 1; @@ -50671,30 +37594,11 @@ /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 2 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/living/grunt_rnr) -"lIa" = ( -/obj/item/robot_parts/arm/l_arm, -/obj/item/robot_parts/leg/l_leg, -/obj/item/robot_parts/arm/r_arm, -/obj/item/robot_parts/leg/r_leg, -/obj/structure/surface/rack, -/obj/effect/decal/cleanable/cobweb{ - dir = 8 - }, -/obj/item/book/manual/robotics_cyborgs{ - pixel_y = 8 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/living/synthcloset) -"lIh" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_s) +"lIj" = ( +/turf/closed/wall/almayer, +/area/almayer/maint/upper/mess) "lIp" = ( /obj/structure/bed/chair/comfy/beige{ dir = 1 @@ -50704,62 +37608,50 @@ }, /turf/open/floor/carpet, /area/almayer/command/cichallway) -"lIw" = ( +"lIu" = ( /obj/structure/machinery/door/firedoor/border_only/almayer, /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +/obj/structure/machinery/door/poddoor/almayer{ + dir = 4; + id = "hangarentrancenorth"; + name = "\improper North Hangar Podlock" }, -/area/almayer/hallways/stern_hallway) +/turf/open/floor/almayer/test_floor4, +/area/almayer/hallways/lower/starboard_fore_hallway) "lII" = ( /obj/structure/bed/chair/office/dark{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/engineering/port_atmos) -"lIU" = ( -/obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "mono" - }, -/area/almayer/engineering/upper_engineering/port) -"lIV" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hull/upper_hull/u_f_p) -"lJa" = ( +"lIQ" = ( /obj/structure/pipes/standard/simple/hidden/supply{ - dir = 5 + dir = 10 }, /turf/open/floor/plating/plating_catwalk, -/area/almayer/engineering/engineering_workshop) -"lJg" = ( -/obj/structure/largecrate/random/barrel/white, -/turf/open/floor/almayer{ - icon_state = "plate" +/area/almayer/maint/hull/upper/u_f_p) +"lIU" = ( +/obj/structure/machinery/light, +/turf/open/floor/almayer/mono, +/area/almayer/engineering/upper_engineering/port) +"lIY" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_x = 1; + pixel_y = 1 }, -/area/almayer/hull/upper_hull/u_m_p) +/turf/open/floor/almayer/red/west, +/area/almayer/hallways/upper/starboard) "lJu" = ( /obj/structure/barricade/metal{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/living/cryo_cells) "lJv" = ( /obj/structure/window/framed/almayer/white, -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 1 - }, /obj/structure/machinery/door/poddoor/shutters/almayer/open{ id = "researchlockdownext"; name = "\improper Research Window Shutter" @@ -50767,26 +37659,44 @@ /obj/structure/machinery/door/poddoor/almayer/biohazard/white, /turf/open/floor/plating, /area/almayer/medical/medical_science) +"lJD" = ( +/obj/structure/surface/table/almayer, +/obj/item/device/flashlight/lamp{ + layer = 3.3; + pixel_x = 15 + }, +/turf/open/floor/almayer/redfull, +/area/almayer/living/briefing) "lJG" = ( /obj/structure/pipes/standard/manifold/hidden/supply, /obj/structure/disposalpipe/segment{ dir = 4 }, /obj/structure/machinery/sleep_console, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/southwest, /area/almayer/medical/lower_medical_medbay) "lJK" = ( /obj/structure/machinery/cryopod/right{ layer = 3.1; pixel_y = 13 }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/living/offices) +"lJL" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/turf/open/floor/almayer/dark_sterile, +/area/almayer/shipboard/brig/cells) +"lJM" = ( +/obj/structure/largecrate/random/case/double, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/s_bow) "lJO" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -50795,9 +37705,7 @@ dir = 4 }, /obj/structure/surface/table/almayer, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/alpha) "lJY" = ( /turf/open/floor/almayer, @@ -50809,63 +37717,68 @@ layer = 3.5; pixel_y = 15 }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/engineering/laundry) "lKb" = ( /obj/structure/machinery/door/firedoor/border_only/almayer, /obj/structure/machinery/door/airlock/multi_tile/almayer/marine/shared/alpha_bravo{ dir = 2 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/squads/alpha_bravo_shared) -"lKk" = ( -/obj/structure/sign/safety/maint{ - pixel_x = 32 +"lKM" = ( +/obj/structure/surface/table/almayer, +/turf/open/floor/almayer, +/area/almayer/engineering/lower) +"lKO" = ( +/obj/structure/sign/safety/refridgeration{ + pixel_x = 8; + pixel_y = -32 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "red" +/turf/open/floor/wood/ship, +/area/almayer/command/corporateliaison) +"lLl" = ( +/obj/effect/step_trigger/clone_cleaner, +/obj/structure/machinery/door_control{ + id = "laddersouthwest"; + name = "South West Ladders Shutters"; + pixel_x = 25; + req_one_access_txt = "2;3;12;19"; + throw_range = 15 + }, +/turf/open/floor/almayer/greencorner, +/area/almayer/hallways/lower/port_fore_hallway) +"lLt" = ( +/turf/open/floor/almayer/orangecorner/east, +/area/almayer/hallways/upper/midship_hallway) +"lLA" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 }, -/area/almayer/hallways/stern_hallway) +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer/test_floor4, +/area/almayer/hallways/upper/midship_hallway) "lLC" = ( /obj/structure/surface/table/almayer, /turf/open/floor/almayer, /area/almayer/squads/charlie) -"lLN" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 2 - }, -/obj/structure/reagent_dispensers/peppertank{ - pixel_y = -30 - }, -/obj/structure/closet/secure_closet/guncabinet/red/mp_armory_m4ra_rifle, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" +"lLO" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/area/almayer/shipboard/brig/armory) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/port_fore_hallway) "lLS" = ( /obj/structure/sign/safety/galley{ pixel_x = 32 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/east, /area/almayer/command/cichallway) -"lLV" = ( -/obj/structure/largecrate/random/barrel/green, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_s) +"lMb" = ( +/turf/open/floor/almayer/plating/northeast, +/area/almayer/shipboard/stern_point_defense) "lMc" = ( -/turf/open/floor/almayer{ - icon_state = "red" - }, +/turf/open/floor/almayer/red, /area/almayer/shipboard/brig/processing) "lMp" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -50875,65 +37788,67 @@ /area/almayer/lifeboat_pumps/south2) "lMv" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/southeast, /area/almayer/medical/medical_science) "lMw" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 5 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "plating_striped" +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" }, +/turf/open/floor/almayer/plating_striped/west, /area/almayer/squads/req) -"lMM" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "NW-out"; - pixel_y = 1 +"lMx" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/almayer/cargo, +/area/almayer/engineering/upper_engineering/starboard) +"lMy" = ( +/obj/structure/machinery/fuelpump, +/turf/open/floor/almayer, +/area/almayer/lifeboat_pumps/north2) +"lMF" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "mono" +/obj/structure/machinery/door/firedoor/border_only/almayer, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/machinery/door/airlock/almayer/command/reinforced{ + closeOtherId = "ciclobby_n"; + id_tag = "cic_exterior"; + name = "\improper Combat Information Center" + }, +/obj/structure/machinery/door/poddoor/almayer/open{ + dir = 4; + id = "CIC Lockdown"; + name = "\improper Combat Information Center Blast Door" }, -/area/almayer/hallways/aft_hallway) +/turf/open/floor/almayer/test_floor4, +/area/almayer/command/cic) +"lMO" = ( +/obj/structure/surface/rack, +/obj/effect/spawner/random/toolbox, +/obj/effect/spawner/random/toolbox, +/obj/effect/spawner/random/toolbox, +/obj/effect/spawner/random/tool, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_a_p) "lMY" = ( /obj/structure/machinery/camera/autoname/almayer{ dir = 4; name = "ship-grade camera" }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/lifeboat_pumps/south2) -"lNl" = ( -/turf/open/floor/almayer{ - dir = 6; - icon_state = "red" - }, -/area/almayer/hallways/stern_hallway) -"lNs" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/sign/safety/ammunition{ - pixel_x = 32; - pixel_y = 7 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 10 - }, -/obj/structure/machinery/door_control{ - id = "cmp_armory"; - name = "Armory Lockdown"; - pixel_x = 24; - pixel_y = -6; - req_access_txt = "4" - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" +"lNk" = ( +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12 }, -/area/almayer/shipboard/brig/main_office) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_a_p) "lNw" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/supply, @@ -50945,47 +37860,32 @@ icon_state = "W"; pixel_x = -1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/charlie) -"lNy" = ( -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_p) -"lNF" = ( -/obj/structure/closet/secure_closet{ - name = "\improper Lethal Injection Locker" - }, -/obj/item/reagent_container/ld50_syringe/choral, -/obj/item/reagent_container/ld50_syringe/choral, -/obj/item/reagent_container/ld50_syringe/choral, -/obj/item/reagent_container/ld50_syringe/choral, -/obj/item/reagent_container/ld50_syringe/choral, -/turf/open/floor/almayer{ - icon_state = "redcorner" - }, -/area/almayer/shipboard/brig/execution) -"lOl" = ( -/obj/structure/machinery/light{ - dir = 8 +"lNL" = ( +/obj/item/tool/mop{ + pixel_x = -6; + pixel_y = 24 }, -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 +/obj/item/reagent_container/glass/bucket, +/turf/open/floor/almayer/plate, +/area/almayer/maint/upper/u_f_s) +"lNR" = ( +/obj/structure/window/framed/almayer, +/obj/structure/machinery/door/firedoor/border_only/almayer, +/turf/open/floor/plating, +/area/almayer/engineering/lower/workshop) +"lOn" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/area/almayer/command/corporateliason) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/upper/aft_hallway) "lOr" = ( /obj/structure/window/framed/almayer, -/obj/structure/machinery/door/firedoor/border_only/almayer, /obj/structure/machinery/door/poddoor/shutters/almayer{ dir = 4; id = "crate_room"; @@ -50997,10 +37897,7 @@ /obj/structure/sink{ pixel_y = 32 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/north, /area/almayer/medical/operating_room_two) "lON" = ( /obj/structure/pipes/standard/simple/hidden/supply, @@ -51009,10 +37906,25 @@ name = "\improper Research Doorway Shutter" }, /obj/structure/machinery/door/poddoor/almayer/biohazard/white, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/medical/medical_science) +"lOX" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/turf/open/floor/almayer/plating/northeast, +/area/almayer/engineering/lower/engine_core) +"lPm" = ( +/obj/structure/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, +/turf/open/floor/wood/ship, +/area/almayer/command/corporateliaison) "lPB" = ( /obj/structure/surface/table/almayer, /obj/item/device/lightreplacer, @@ -51027,10 +37939,7 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/west, /area/almayer/engineering/upper_engineering/port) "lPC" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -51038,53 +37947,44 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/brig/cic_hallway) -"lPG" = ( -/obj/structure/machinery/camera/autoname/almayer{ - name = "ship-grade camera" - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "silver" - }, -/area/almayer/command/cichallway) "lPO" = ( /obj/structure/surface/rack, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/northwest, /area/almayer/command/securestorage) -"lQj" = ( -/obj/structure/machinery/door_control{ - id = "InnerShutter"; - name = "Inner Shutter"; - pixel_x = 5; - pixel_y = 10 - }, -/obj/item/toy/deck{ - pixel_x = -9 +"lPY" = ( +/turf/open/floor/almayer/green/northeast, +/area/almayer/hallways/upper/fore_hallway) +"lQa" = ( +/obj/structure/machinery/light{ + dir = 8 }, -/obj/item/ashtray/plastic, -/obj/structure/surface/table/reinforced/almayer_B, -/obj/structure/sign/safety/intercom{ - pixel_y = -32 +/obj/effect/decal/warning_stripes{ + icon_state = "W" }, -/turf/open/floor/almayer{ - icon_state = "plate" +/turf/open/floor/almayer/red/southeast, +/area/almayer/hallways/upper/starboard) +"lQf" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/area/almayer/hull/lower_hull/l_f_s) -"lQu" = ( -/obj/structure/bed/stool, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/structure/sign/safety/storage{ + pixel_x = 8; + pixel_y = 32 }, -/area/almayer/hull/lower_hull/l_m_s) +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_f_p) "lQz" = ( /obj/structure/machinery/vending/coffee, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/bravo) +"lQB" = ( +/obj/structure/machinery/door/poddoor/almayer/open{ + dir = 4; + id = "Hangar Lockdown"; + name = "\improper Hangar Lockdown Blast Door" + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/vehiclehangar) "lQG" = ( /obj/structure/machinery/computer/tech_control, /turf/open/floor/plating/plating_catwalk, @@ -51098,19 +37998,11 @@ dir = 8; pixel_x = -24 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_corner" - }, +/turf/open/floor/almayer/sterile_green_corner/north, /area/almayer/medical/operating_room_three) -"lQQ" = ( -/obj/structure/pipes/vents/pump{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "green" - }, -/area/almayer/hallways/port_hallway) +"lRh" = ( +/turf/open/floor/almayer/bluecorner/north, +/area/almayer/hallways/upper/midship_hallway) "lRs" = ( /obj/structure/surface/table/almayer, /obj/item/trash/USCMtray{ @@ -51120,10 +38012,12 @@ /obj/item/reagent_container/food/condiment/hotsauce/cholula{ pixel_y = 20 }, -/turf/open/floor/almayer{ - icon_state = "orangefull" - }, +/turf/open/floor/almayer/orangefull, /area/almayer/living/briefing) +"lRt" = ( +/obj/structure/largecrate/random/barrel/green, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/p_bow) "lRE" = ( /obj/structure/stairs/perspective{ icon_state = "p_stair_sn_full_cap" @@ -51138,20 +38032,10 @@ /obj/item/prop/helmetgarb/chaplain_patch, /turf/open/floor/wood/ship, /area/almayer/living/chapel) -"lRU" = ( -/obj/structure/sign/safety/conference_room{ - pixel_x = 14; - pixel_y = 32 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/starboard_hallway) "lRX" = ( /obj/structure/surface/table/almayer, /obj/item/device/flashlight/lamp, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/northwest, /area/almayer/hallways/hangar) "lRZ" = ( /obj/effect/decal/warning_stripes{ @@ -51161,17 +38045,44 @@ /obj/structure/sign/safety/ladder{ pixel_x = -16 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "redcorner" - }, +/turf/open/floor/almayer/redcorner/north, /area/almayer/living/briefing) -"lSD" = ( -/obj/structure/closet/firecloset, -/turf/open/floor/almayer{ - icon_state = "plate" +"lSs" = ( +/obj/structure/bed, +/obj/structure/machinery/flasher{ + id = "Cell 5"; + pixel_x = -24 + }, +/turf/open/floor/almayer/red/west, +/area/almayer/shipboard/brig/cells) +"lSJ" = ( +/obj/structure/machinery/light/small, +/obj/effect/decal/warning_stripes{ + icon_state = "N" + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/s_bow) +"lSN" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/upper/fore_hallway) +"lST" = ( +/obj/structure/machinery/door/airlock/almayer/maint{ + dir = 1 + }, +/turf/open/floor/almayer/test_floor4, +/area/almayer/maint/upper/u_f_p) +"lSX" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 6 }, -/area/almayer/hull/upper_hull/u_m_p) +/turf/open/floor/almayer, +/area/almayer/maint/hull/upper/u_f_s) "lTt" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 1 @@ -51179,9 +38090,7 @@ /obj/structure/disposalpipe/junction{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "silvercorner" - }, +/turf/open/floor/almayer/silvercorner, /area/almayer/command/cichallway) "lTE" = ( /obj/structure/surface/table/almayer, @@ -51191,24 +38100,19 @@ }, /turf/open/floor/wood/ship, /area/almayer/living/chapel) -"lTK" = ( -/obj/structure/closet/firecloset, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_p) -"lUv" = ( -/obj/structure/closet/secure_closet/guncabinet/red/armory_shotgun, -/turf/open/floor/almayer{ - icon_state = "redfull" +"lUA" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 1 }, -/area/almayer/hull/lower_hull/l_f_s) -"lUw" = ( -/obj/structure/machinery/light, -/obj/structure/flora/pottedplant{ - icon_state = "pottedplant_21"; - pixel_y = 3 +/turf/open/floor/almayer/red/northeast, +/area/almayer/hallways/lower/port_fore_hallway) +"lUQ" = ( +/obj/structure/machinery/light/small{ + dir = 4 }, -/turf/open/floor/wood/ship, -/area/almayer/living/commandbunks) +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_a_s) "lVl" = ( /obj/structure/machinery/cm_vending/sorted/tech/electronics_storage, /turf/open/floor/almayer, @@ -51217,16 +38121,34 @@ /obj/structure/pipes/standard/manifold/hidden/supply, /turf/open/floor/plating/plating_catwalk, /area/almayer/lifeboat_pumps/south2) +"lVR" = ( +/obj/structure/stairs{ + icon_state = "ramptop" + }, +/obj/structure/platform{ + dir = 8 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_a_p) "lVS" = ( /obj/structure/machinery/door/poddoor/shutters/almayer/open{ dir = 4; id = "south_central_checkpoint"; name = "\improper Checkpoint Shutters" }, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, +/turf/open/floor/almayer/redfull, /area/almayer/living/briefing) +"lVW" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 1 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_x = 2; + pixel_y = 2 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_f_p) "lVX" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/structure/machinery/computer/overwatch/almayer{ @@ -51244,52 +38166,59 @@ pixel_x = -17; pixel_y = -8 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/command/cic) -"lWh" = ( -/obj/structure/machinery/pipedispenser/orderable, -/turf/open/floor/almayer{ - icon_state = "plate" +"lVZ" = ( +/obj/structure/platform_decoration{ + dir = 4 }, -/area/almayer/hull/upper_hull/u_a_s) +/turf/open/floor/almayer, +/area/almayer/hallways/lower/repair_bay) "lWr" = ( /obj/structure/largecrate/random/case, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/almayer/red/northwest, /area/almayer/lifeboat_pumps/south1) -"lWD" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "SW-out" +"lWt" = ( +/obj/effect/landmark/yautja_teleport, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_m_s) +"lWO" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/machinery/light/small{ + dir = 8 }, -/obj/structure/sign/safety/bathunisex{ - pixel_x = 11; - pixel_y = -26 +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/upper/mess) +"lWS" = ( +/obj/structure/bed/chair/office/dark{ + dir = 8 }, -/turf/open/floor/wood/ship, -/area/almayer/living/commandbunks) +/turf/open/floor/almayer/plate, +/area/almayer/maint/upper/u_f_s) +"lWY" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_a_p) +"lXb" = ( +/obj/structure/disposalpipe/segment{ + dir = 8 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/cells) "lXg" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/recharger, /obj/structure/machinery/computer/working_joe{ pixel_y = 16 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/engineering/upper_engineering) -"lXF" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/structure/sign/safety/cryo{ - pixel_x = 36 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull) +"lXl" = ( +/turf/open/floor/almayer/blue/north, +/area/almayer/hallways/upper/midship_hallway) "lXO" = ( /obj/structure/surface/table/almayer, /obj/item/paper_bin/uscm, @@ -51299,64 +38228,65 @@ pixel_x = -3; pixel_y = 13 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "green" - }, +/turf/open/floor/almayer/green/west, /area/almayer/living/offices) -"lYi" = ( +"lXR" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/turf/open/floor/almayer/green/north, +/area/almayer/hallways/upper/fore_hallway) +"lYg" = ( /obj/structure/disposalpipe/segment, -/obj/structure/pipes/standard/manifold/hidden/supply, /turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_hallway) +/area/almayer/maint/hull/lower/l_a_p) "lYk" = ( /obj/item/trash/c_tube{ pixel_x = 16; pixel_y = 7 }, -/turf/open/floor/almayer{ - icon_state = "orange" - }, +/turf/open/floor/almayer/orange, /area/almayer/engineering/upper_engineering/port) -"lYu" = ( -/obj/item/tool/wet_sign, -/obj/structure/disposalpipe/segment, -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "plate" +"lYt" = ( +/obj/structure/machinery/light/small{ + dir = 8 }, -/area/almayer/hull/lower_hull/l_m_s) -"lYA" = ( -/turf/closed/wall/almayer/outer, -/area/almayer/hull/upper_hull/u_m_s) +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_a_p) "lYL" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; pixel_y = 1 }, -/turf/open/floor/almayer{ - icon_state = "sterile_green" - }, +/turf/open/floor/almayer/sterile_green, /area/almayer/medical/hydroponics) "lYN" = ( /obj/effect/decal/warning_stripes{ icon_state = "E" }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) -"lYZ" = ( -/obj/structure/surface/table/almayer, -/obj/item/storage/toolbox/mechanical/green{ - pixel_y = 8 +"lYS" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/obj/item/storage/toolbox/mechanical, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" +/obj/structure/disposalpipe/junction{ + dir = 4 }, -/area/almayer/shipboard/brig/general_equipment) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/upper/fore_hallway) +"lZb" = ( +/obj/structure/surface/rack, +/obj/effect/spawner/random/tool, +/obj/effect/spawner/random/tool, +/obj/effect/spawner/random/powercell, +/obj/effect/spawner/random/powercell, +/obj/structure/sign/safety/hvac_old{ + pixel_x = 8; + pixel_y = -32 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_f_p) "lZs" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/device/radio/intercom{ @@ -51375,75 +38305,64 @@ pixel_x = 8; pixel_y = 28 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/command/cic) -"lZB" = ( -/obj/structure/sign/safety/restrictedarea{ - pixel_x = 8; - pixel_y = 32 - }, -/turf/open/floor/almayer{ - icon_state = "plate" +"lZI" = ( +/obj/structure/prop/invuln/lattice_prop{ + dir = 1; + icon_state = "lattice-simple"; + pixel_x = -16; + pixel_y = 17 }, -/area/almayer/hull/lower_hull/l_f_p) -"lZO" = ( -/obj/structure/disposalpipe/junction{ - dir = 4; - icon_state = "pipe-j2" +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_m_p) +"lZJ" = ( +/obj/structure/machinery/light/small, +/turf/open/floor/almayer/plate, +/area/almayer/maint/upper/u_m_p) +"lZM" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/machinery/door/airlock/almayer/maint{ + dir = 1 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_p) +/turf/open/floor/almayer/test_floor4, +/area/almayer/maint/lower/cryo_cells) "lZZ" = ( /obj/structure/machinery/autolathe/medilathe/full, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/medical/hydroponics) -"maa" = ( -/obj/structure/closet/emcloset, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "red" - }, -/area/almayer/shipboard/brig/general_equipment) -"maq" = ( -/obj/structure/sign/safety/cryo{ - pixel_x = 7; - pixel_y = -26 - }, -/obj/structure/machinery/disposal, -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/turf/open/floor/almayer, -/area/almayer/command/corporateliason) -"maw" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/machinery/door/airlock/almayer/maint{ - dir = 1 - }, -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +"may" = ( +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_21"; + pixel_y = 16 }, -/area/almayer/hull/lower_hull/l_m_s) +/obj/structure/surface/table/almayer, +/turf/open/floor/almayer/red/northwest, +/area/almayer/shipboard/brig/starboard_hallway) "maI" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/southeast, /area/almayer/medical/lower_medical_lobby) +"maK" = ( +/obj/structure/largecrate/random/barrel/green, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_m_s) "maL" = ( /obj/structure/surface/table/almayer, /obj/item/reagent_container/food/snacks/protein_pack, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/gym) +"maO" = ( +/obj/structure/machinery/disposal, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/structure/machinery/light{ + dir = 4 + }, +/turf/open/floor/wood/ship, +/area/almayer/command/corporateliaison) "maT" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 @@ -51451,56 +38370,28 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/east, /area/almayer/medical/upper_medical) -"mbn" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/engineering/lower_engineering) -"mce" = ( -/turf/open/floor/almayer{ - icon_state = "greencorner" - }, -/area/almayer/hallways/aft_hallway) -"mcl" = ( -/obj/structure/sign/safety/ladder{ - pixel_x = -16 - }, +"mbx" = ( /obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 2 + icon_state = "S" }, -/turf/open/floor/almayer, -/area/almayer/hallways/vehiclehangar) -"mcK" = ( -/obj/structure/closet/secure_closet/commander, -/obj/item/clothing/suit/storage/marine/light/vest, -/obj/item/device/whistle, -/obj/item/device/megaphone, -/obj/item/device/radio, -/obj/item/clothing/shoes/laceup, -/turf/open/floor/wood/ship, -/area/almayer/living/commandbunks) +/turf/open/floor/almayer/red/north, +/area/almayer/hallways/upper/starboard) +"mbR" = ( +/obj/docking_port/stationary/escape_pod/north, +/turf/open/floor/plating, +/area/almayer/maint/hull/lower/l_m_p) +"mcp" = ( +/turf/open/floor/almayer/redcorner/north, +/area/almayer/shipboard/brig/starboard_hallway) "mcL" = ( /obj/structure/machinery/vending/snack, /obj/structure/sign/safety/maint{ pixel_x = -17 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/gym) -"mcV" = ( -/obj/structure/surface/table/almayer, -/obj/item/tool/wirecutters, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_m_p) "mcW" = ( /obj/structure/surface/table/almayer, /obj/item/storage/box/gloves, @@ -51509,28 +38400,26 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/medical/morgue) +"mdk" = ( +/obj/structure/machinery/door/poddoor/railing{ + dir = 4; + id = "vehicle_elevator_railing_aux" + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/vehiclehangar) +"mdm" = ( +/turf/closed/wall/almayer, +/area/almayer/hallways/upper/midship_hallway) "mdo" = ( /obj/structure/machinery/cm_vending/sorted/marine_food, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/alpha) -"mdJ" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 10 - }, -/turf/open/floor/almayer, -/area/almayer/shipboard/brig/perma) -"mdS" = ( -/obj/structure/sign/safety/ammunition{ - pixel_x = 32; - pixel_y = 7 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" +"mdC" = ( +/obj/structure/sign/safety/distribution_pipes{ + pixel_x = -17 }, -/area/almayer/shipboard/brig/main_office) +/turf/open/floor/almayer/emerald/west, +/area/almayer/hallways/lower/port_midship_hallway) "mdW" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/effect/decal/warning_stripes{ @@ -51543,10 +38432,27 @@ }, /obj/item/folder/white, /obj/item/folder/white, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, +/turf/open/floor/almayer/aicore/glowing/no_build, /area/almayer/command/airoom) +"mea" = ( +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_21" + }, +/turf/open/floor/almayer/red/southeast, +/area/almayer/shipboard/brig/mp_bunks) +"mem" = ( +/obj/structure/machinery/light/small{ + dir = 1 + }, +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12 + }, +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12; + pixel_y = 12 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/stern) "meu" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -51557,67 +38463,42 @@ /obj/structure/sign/poster{ pixel_y = -32 }, -/turf/open/floor/almayer{ - icon_state = "blue" - }, +/turf/open/floor/almayer/blue, /area/almayer/squads/delta) -"meJ" = ( -/obj/structure/sign/safety/distribution_pipes{ - pixel_x = 8; - pixel_y = 32 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "blue" - }, -/area/almayer/hallways/aft_hallway) -"meN" = ( -/obj/structure/machinery/door/poddoor/shutters/almayer{ - id = "Under Construction Shutters"; - name = "\improper Construction Site" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +"meE" = ( +/obj/structure/sign/safety/maint{ + pixel_x = 32 }, -/area/almayer/hull/lower_hull/l_f_p) -"meS" = ( -/obj/structure/sign/safety/water{ - pixel_x = -17 +/turf/open/floor/almayer/plate, +/area/almayer/hallways/lower/vehiclehangar) +"meQ" = ( +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/starboard_midship_hallway) +"meT" = ( +/obj/structure/machinery/door/poddoor/almayer/open{ + id = "Hangar Lockdown"; + name = "\improper Hangar Lockdown Blast Door" }, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/structure/machinery/door/airlock/almayer/maint{ + dir = 1 }, -/area/almayer/hull/upper_hull/u_a_s) +/turf/open/floor/almayer/test_floor4, +/area/almayer/maint/hull/lower/l_f_s) "meY" = ( /turf/closed/wall/almayer{ damage_cap = 15000 }, /area/almayer/squads/alpha) -"mfe" = ( -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12 - }, -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12; - pixel_y = 12 +"mfL" = ( +/obj/item/reagent_container/glass/bucket/janibucket{ + pixel_x = -1; + pixel_y = 13 }, /obj/structure/sign/safety/water{ - pixel_x = 8; - pixel_y = -32 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_s) -"mfI" = ( -/obj/structure/ladder{ - height = 1; - id = "AftPortMaint" - }, -/obj/structure/sign/safety/ladder{ - pixel_x = 8; - pixel_y = -32 + pixel_x = -17 }, -/turf/open/floor/plating/almayer, -/area/almayer/hull/lower_hull/l_a_p) +/turf/open/floor/almayer/plate, +/area/almayer/maint/upper/u_f_s) "mfM" = ( /obj/structure/surface/table/almayer, /obj/effect/landmark/map_item, @@ -51626,27 +38507,48 @@ /obj/structure/window/reinforced/ultra{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/southeast, /area/almayer/living/briefing) -"mfQ" = ( -/turf/open/floor/almayer{ - allow_construction = 0; - icon_state = "plate" +"mfO" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 6 + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/upper/midship_hallway) +"mfQ" = ( +/turf/open/floor/almayer/no_build/plate, /area/almayer/living/pilotbunks) +"mgb" = ( +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_m_p) +"mgd" = ( +/obj/structure/machinery/autolathe/armylathe/full, +/turf/open/floor/almayer/orange/north, +/area/almayer/engineering/lower/workshop/hangar) "mgj" = ( /obj/structure/reagent_dispensers/water_cooler/stacks{ density = 0; pixel_y = 17 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/northeast, /area/almayer/shipboard/brig/cic_hallway) +"mgu" = ( +/obj/structure/machinery/door/airlock/almayer/engineering{ + name = "\improper Engineering Hallway" + }, +/obj/structure/machinery/door/firedoor/border_only/almayer, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer/test_floor4, +/area/almayer/engineering/lower) "mgy" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/almayer, @@ -51656,23 +38558,14 @@ dir = 4; health = 80 }, -/turf/open/floor/almayer{ - icon_state = "cargo_arrow" - }, +/turf/open/floor/almayer/cargo_arrow, /area/almayer/squads/charlie_delta_shared) -"mgR" = ( -/obj/structure/surface/table/almayer, -/obj/item/prop/magazine/dirty{ - pixel_y = 5 - }, -/obj/item/tool/pen{ - pixel_x = 4; - pixel_y = 6 - }, -/turf/open/floor/almayer{ - icon_state = "bluefull" +"mgX" = ( +/obj/structure/platform{ + dir = 4 }, -/area/almayer/living/briefing) +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_a_p) "mha" = ( /obj/effect/decal/warning_stripes{ icon_state = "SE-out"; @@ -51685,33 +38578,25 @@ dir = 1 }, /obj/structure/reagent_dispensers/watertank, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/north, /area/almayer/hallways/hangar) -"mhl" = ( -/obj/structure/prop/invuln/lattice_prop{ - icon_state = "lattice13"; - pixel_x = 16; - pixel_y = 16 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_s) "mhm" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22" }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/bridgebunks) -"mhG" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 10 - }, +"mho" = ( +/obj/structure/bed/chair/comfy/alpha{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer/plate, +/area/almayer/living/briefing) +"mhG" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 10 + }, /turf/open/floor/plating/plating_catwalk, /area/almayer/command/lifeboat) "mhI" = ( @@ -51730,10 +38615,19 @@ pixel_x = 1; pixel_y = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/alpha) +"mis" = ( +/turf/open/floor/plating, +/area/almayer/maint/upper/u_f_s) +"miy" = ( +/obj/structure/machinery/optable, +/obj/structure/sign/safety/medical{ + pixel_x = 8; + pixel_y = 29 + }, +/turf/open/floor/almayer/sterile_green_corner/north, +/area/almayer/shipboard/brig/medical) "miE" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 1 @@ -51744,12 +38638,6 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/command/cichallway) -"miK" = ( -/obj/structure/pipes/vents/pump, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_s) "miV" = ( /obj/structure/sign/safety/rewire{ pixel_x = -17; @@ -51757,16 +38645,28 @@ }, /turf/open/floor/almayer, /area/almayer/squads/charlie_delta_shared) -"mji" = ( -/obj/structure/pipes/standard/manifold/fourway/hidden/supply, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/starboard_hallway) -"mjR" = ( -/obj/structure/largecrate/random/secure, -/turf/open/floor/almayer{ - icon_state = "plate" +"mje" = ( +/obj/structure/machinery/light, +/obj/structure/closet/secure_closet/guncabinet/red/cic_armory_mk1_rifle_ap, +/turf/open/floor/almayer/redfull, +/area/almayer/command/cic) +"mjs" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + layer = 2.5 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/p_bow) +"mjt" = ( +/obj/structure/pipes/vents/pump, +/turf/open/floor/almayer/no_build, +/area/almayer/shipboard/brig/processing) +"mjy" = ( +/obj/structure/machinery/conveyor_switch{ + id = "lower_garbage" }, -/area/almayer/hull/lower_hull/l_f_p) +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_a_p) "mjS" = ( /obj/structure/machinery/firealarm{ pixel_y = 28 @@ -51817,41 +38717,55 @@ pixel_y = 7 }, /obj/item/trash/uscm_mre, -/turf/open/floor/almayer{ - icon_state = "green" - }, +/turf/open/floor/almayer/green, /area/almayer/living/grunt_rnr) -"mkh" = ( -/obj/structure/machinery/disposal, -/obj/structure/disposalpipe/trunk{ - dir = 4 +"mki" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 10 }, -/turf/open/floor/almayer, -/area/almayer/engineering/engineering_workshop/hangar) -"mkk" = ( -/obj/structure/disposalpipe/segment, +/obj/structure/bed/chair/comfy/alpha{ + dir = 8 + }, +/turf/open/floor/almayer/plate, +/area/almayer/living/briefing) +"mkl" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 4 + dir = 1 + }, +/turf/open/floor/almayer/bluefull, +/area/almayer/living/briefing) +"mkn" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/machinery/door/poddoor/shutters/almayer{ + id = "OTStore"; + name = "\improper Secure Storage"; + unacidable = 1 }, -/turf/open/floor/almayer{ - allow_construction = 0 +/turf/open/floor/almayer/test_floor4, +/area/almayer/engineering/lower/workshop/hangar) +"mkw" = ( +/obj/structure/sign/safety/security{ + pixel_y = -32 }, -/area/almayer/shipboard/brig/lobby) -"mkx" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "NE-out"; - pixel_x = 1; - pixel_y = 2 +/obj/structure/sign/safety/restrictedarea{ + pixel_x = 15; + pixel_y = -32 }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" +/turf/open/floor/almayer/plate, +/area/almayer/hallways/lower/starboard_fore_hallway) +"mkx" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/area/almayer/command/corporateliason) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/port_midship_hallway) +"mkF" = ( +/obj/structure/largecrate/random/barrel/blue, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/p_bow) "mkG" = ( /obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "silver" - }, +/turf/open/floor/almayer/silver, /area/almayer/engineering/port_atmos) "mkH" = ( /obj/structure/surface/rack{ @@ -51865,11 +38779,34 @@ pixel_x = 6; pixel_y = -2 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/north, /area/almayer/engineering/upper_engineering/starboard) +"mkI" = ( +/obj/structure/machinery/pipedispenser, +/turf/open/floor/almayer/cargo, +/area/almayer/engineering/lower/engine_core) +"mkL" = ( +/obj/structure/pipes/valve/digital/open{ + dir = 4 + }, +/obj/structure/sign/safety/fire_haz{ + pixel_x = 8; + pixel_y = 32 + }, +/turf/open/floor/almayer/orange/north, +/area/almayer/engineering/lower) +"mkP" = ( +/obj/structure/machinery/door/airlock/almayer/engineering{ + dir = 2; + name = "\improper Engineering Workshop" + }, +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer/test_floor4, +/area/almayer/engineering/lower/workshop) "mlb" = ( /obj/effect/decal/warning_stripes{ icon_state = "S"; @@ -51879,47 +38816,45 @@ icon_state = "NE-out"; pixel_y = 1 }, -/turf/open/floor/almayer/no_build{ - icon_state = "tcomms" - }, +/turf/open/floor/almayer/aicore/glowing/no_build, /area/almayer/command/airoom) "mlm" = ( -/turf/open/floor/almayer{ - icon_state = "redfull" - }, +/turf/open/floor/almayer/redfull, /area/almayer/living/cryo_cells) -"mlp" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 1 - }, -/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ - name = "\improper Starboard Railguns and Viewing Room" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hull/upper_hull/u_f_s) "mlz" = ( /obj/structure/platform_decoration{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "red" - }, +/turf/open/floor/almayer/red, /area/almayer/lifeboat_pumps/south1) +"mlF" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer/plate, +/area/almayer/engineering/lower/engine_core) "mlH" = ( -/turf/open/floor/almayer{ +/turf/open/floor/almayer/sterile_green_side/north, +/area/almayer/medical/lower_medical_lobby) +"mlP" = ( +/obj/structure/machinery/door/airlock/almayer/generic/corporate{ dir = 1; - icon_state = "sterile_green_side" + name = "Corporate Liaison's Bedroom" }, -/area/almayer/medical/lower_medical_lobby) -"mmC" = ( -/obj/structure/closet/secure_closet/engineering_welding{ - req_one_access_txt = "7;23;27" +/turf/open/floor/almayer/test_floor4, +/area/almayer/command/corporateliaison) +"mmn" = ( +/obj/structure/machinery/cm_vending/sorted/cargo_guns/intelligence_officer{ + density = 0; + pixel_x = -32 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_s) +/obj/structure/machinery/light{ + dir = 8; + pixel_x = -32; + alpha = 0 + }, +/turf/open/floor/almayer/silver/west, +/area/almayer/command/computerlab) "mmN" = ( /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 1 @@ -51932,52 +38867,31 @@ /obj/structure/machinery/door/poddoor/almayer/biohazard/white, /turf/open/floor/plating, /area/almayer/medical/medical_science) -"mnf" = ( -/obj/structure/window/framed/almayer, -/obj/structure/machinery/door/firedoor/border_only/almayer, +"mnc" = ( /obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 8 + dir = 5 }, -/obj/structure/machinery/door/firedoor/border_only/almayer, -/turf/open/floor/plating, -/area/almayer/squads/req) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/starboard_umbilical) +"mnf" = ( +/turf/open/floor/almayer/silver/southeast, +/area/almayer/hallways/upper/midship_hallway) "mng" = ( -/turf/open/floor/almayer{ - icon_state = "redcorner" - }, +/turf/open/floor/almayer/redcorner, /area/almayer/living/briefing) -"mni" = ( -/obj/structure/surface/table/almayer, -/obj/item/tool/wrench{ - pixel_y = 2 - }, -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_f_p) -"mnm" = ( -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_p) "mnA" = ( /obj/structure/sign/safety/maint{ pixel_x = 32 }, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/south1) -"mnG" = ( -/obj/structure/machinery/status_display{ - pixel_y = -30 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" - }, -/area/almayer/hallways/stern_hallway) +"mnB" = ( +/obj/structure/surface/rack, +/obj/item/clothing/glasses/meson, +/turf/open/floor/almayer/red, +/area/almayer/maint/upper/u_a_p) "mnI" = ( -/turf/open/floor/almayer{ - icon_state = "blue" - }, +/turf/open/floor/almayer/blue, /area/almayer/living/briefing) "mnW" = ( /obj/structure/surface/table/almayer, @@ -52000,14 +38914,12 @@ pixel_y = 7 }, /obj/structure/pipes/standard/simple/hidden/supply/no_boom, -/turf/open/floor/almayer{ - icon_state = "sterile_green" - }, +/turf/open/floor/almayer/sterile_green, /area/almayer/medical/containment) -"moh" = ( -/obj/structure/closet/firecloset, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_s) +"moc" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/almayer/cargo, +/area/almayer/maint/hull/upper/u_f_p) "mor" = ( /obj/structure/machinery/light{ dir = 8 @@ -52027,34 +38939,77 @@ "moB" = ( /turf/closed/wall/almayer, /area/almayer/shipboard/brig/cells) -"moE" = ( -/obj/structure/sign/safety/water{ - pixel_x = 8; - pixel_y = -32 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_a_s) "moI" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/alpha_bravo_shared) +"moK" = ( +/obj/structure/machinery/door/airlock/almayer/maint, +/turf/open/floor/almayer/test_floor4, +/area/almayer/maint/hull/upper/u_m_s) +"moL" = ( +/obj/structure/surface/table/reinforced/almayer_B, +/obj/structure/machinery/computer/emails{ + dir = 1; + pixel_x = 1; + pixel_y = 4 + }, +/obj/item/tool/kitchen/utensil/fork{ + pixel_x = -9; + pixel_y = 3 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_a_s) "moM" = ( /obj/structure/machinery/door/firedoor/border_only/almayer, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/squads/delta) "moQ" = ( -/turf/open/floor/almayer{ - icon_state = "silver" +/turf/open/floor/almayer/silver, +/area/almayer/living/briefing) +"mph" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SW-out" + }, +/obj/structure/machinery/camera/autoname/almayer{ + dir = 4; + name = "ship-grade camera" }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/s_bow) +"mpn" = ( +/obj/structure/pipes/vents/pump, +/obj/structure/surface/table/almayer, +/turf/open/floor/almayer/redfull, /area/almayer/living/briefing) -"moY" = ( -/obj/structure/disposalpipe/segment, -/turf/closed/wall/almayer, -/area/almayer/squads/req) +"mpP" = ( +/obj/structure/machinery/door/airlock/almayer/maint, +/turf/open/floor/almayer/test_floor4, +/area/almayer/engineering/lower) +"mpV" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 + }, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer/test_floor4, +/area/almayer/hallways/lower/starboard_umbilical) +"mpZ" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer, +/area/almayer/engineering/upper_engineering) +"mqb" = ( +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 8 + }, +/turf/open/floor/wood/ship, +/area/almayer/living/commandbunks) "mqg" = ( /obj/structure/bed/chair{ dir = 4 @@ -52063,20 +39018,23 @@ dir = 4; name = "ship-grade camera" }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/west, /area/almayer/shipboard/brig/cic_hallway) -"mqo" = ( -/obj/structure/bed/chair/bolted{ - dir = 1 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" +"mqh" = ( +/obj/structure/machinery/light{ + dir = 8 }, -/area/almayer/shipboard/brig/main_office) +/obj/structure/machinery/cm_vending/sorted/medical/marinemed, +/obj/structure/medical_supply_link, +/turf/open/floor/almayer/redfull, +/area/almayer/command/cic) +"mqt" = ( +/turf/open/floor/almayer/bluecorner, +/area/almayer/hallways/lower/port_midship_hallway) +"mqB" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/almayer/orange/west, +/area/almayer/hallways/lower/port_umbilical) "mqK" = ( /obj/structure/machinery/cm_vending/gear/spec, /obj/structure/sign/safety/hazard{ @@ -52086,54 +39044,27 @@ /obj/structure/sign/safety/ammunition{ pixel_y = -32 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/bravo) "mqU" = ( /obj/structure/pipes/vents/pump{ dir = 8; id_tag = "mining_outpost_pump" }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/medical/operating_room_two) -"mrc" = ( -/obj/item/reagent_container/glass/bucket, -/obj/item/tool/mop{ - pixel_x = -6; - pixel_y = 24 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_s) -"mru" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "SE-out"; - pixel_x = 1 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_hallway) -"mrB" = ( -/obj/structure/machinery/camera/autoname/almayer{ - dir = 8; - name = "ship-grade camera" - }, -/turf/open/floor/almayer{ - icon_state = "plate" +"mqZ" = ( +/obj/structure/platform{ + dir = 8 }, -/area/almayer/hull/upper_hull/u_f_p) +/turf/open/floor/almayer, +/area/almayer/hallways/lower/repair_bay) "mrD" = ( /obj/structure/machinery/light{ dir = 1 }, /obj/structure/largecrate/random/barrel/blue, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) "mrL" = ( /obj/structure/surface/rack, @@ -52141,14 +39072,10 @@ /obj/item/storage/box/bodybags, /obj/item/storage/box/bodybags, /obj/item/storage/box/bodybags, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/medical/morgue) "mrM" = ( -/turf/open/floor/almayer{ - icon_state = "green" - }, +/turf/open/floor/almayer/green, /area/almayer/squads/req) "msg" = ( /obj/structure/machinery/light, @@ -52159,9 +39086,7 @@ pixel_x = 14; pixel_y = -32 }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/lifeboat_pumps/south1) "msi" = ( /obj/structure/filingcabinet/filingcabinet{ @@ -52185,36 +39110,35 @@ pixel_x = 1 }, /obj/structure/reagent_dispensers/fueltank/custom, -/turf/open/floor/almayer{ - icon_state = "sterile_green_corner" - }, +/turf/open/floor/almayer/sterile_green_corner, /area/almayer/medical/containment) "msm" = ( /obj/structure/sign/poster{ pixel_y = 32 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/north, /area/almayer/squads/bravo) +"msC" = ( +/obj/structure/machinery/door/airlock/almayer/maint{ + access_modified = 1; + dir = 8; + req_one_access = list(2,34,30) + }, +/turf/open/floor/almayer/test_floor4, +/area/almayer/maint/hull/lower/l_m_s) "msP" = ( /obj/structure/largecrate/random/case/double, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/engineering/upper_engineering/starboard) -"msV" = ( -/obj/structure/largecrate/random/case/double, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_s) +"msS" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer/red, +/area/almayer/lifeboat_pumps/north2) "msZ" = ( /obj/structure/barricade/handrail{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/gym) "mtl" = ( /turf/closed/wall/almayer/reinforced, @@ -52236,46 +39160,33 @@ /obj/structure/machinery/status_display{ pixel_y = -29 }, -/turf/open/floor/almayer{ - icon_state = "orange" - }, +/turf/open/floor/almayer/orange, /area/almayer/squads/bravo) "mtD" = ( /obj/structure/machinery/status_display{ pixel_x = 16; pixel_y = 30 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/almayer/red/north, /area/almayer/command/lifeboat) -"mtE" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/structure/sign/safety/east{ - pixel_x = 15; - pixel_y = 32 - }, -/obj/structure/sign/safety/coffee{ - pixel_y = 32 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_p) "mtM" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "silver" - }, +/turf/open/floor/almayer/silver, /area/almayer/command/cichallway) +"mtZ" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/turf/open/floor/almayer/plating/northeast, +/area/almayer/engineering/lower/engine_core) +"mua" = ( +/turf/open/floor/almayer/plating/northeast, +/area/almayer/hallways/lower/vehiclehangar) "mub" = ( /obj/structure/barricade/handrail{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/gym) "muq" = ( /obj/structure/bed/sofa/vert/grey/bot, @@ -52284,79 +39195,49 @@ }, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/north1) -"mus" = ( -/obj/item/bedsheet/blue{ - layer = 3.2 - }, -/obj/item/bedsheet/blue{ - pixel_y = 13 - }, -/obj/item/toy/plush/therapy/red{ - desc = "A USCM approved plush doll. It's not soft and hardly comforting!"; - force = 15; - layer = 4.1; - name = "Sergeant Huggs"; - pixel_y = 15; - throwforce = 15 - }, -/obj/item/clothing/head/cmcap{ - layer = 4.1; - pixel_x = -1; - pixel_y = 22 - }, -/obj/structure/window/reinforced{ - dir = 4; - pixel_x = -2; - pixel_y = 4 - }, -/obj/structure/window/reinforced{ - dir = 8; - layer = 3.3; - pixel_y = 4 - }, -/obj/structure/bed{ - can_buckle = 0 - }, -/obj/structure/bed{ - buckling_y = 13; - layer = 3.5; - pixel_y = 13 - }, -/turf/open/floor/almayer{ - icon_state = "blue" - }, -/area/almayer/living/port_emb) "mux" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/structure/disposalpipe/segment, /obj/structure/machinery/camera/autoname/almayer{ dir = 8; name = "ship-grade camera" }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/east, /area/almayer/engineering/upper_engineering) "muy" = ( /obj/effect/landmark/start/marine/engineer/alpha, /obj/effect/landmark/late_join/alpha, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/alpha) "muQ" = ( -/obj/structure/machinery/cm_vending/clothing/dress{ - density = 0; - pixel_y = 16 +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer/orange/north, +/area/almayer/engineering/lower) +"muV" = ( +/obj/structure/surface/table/woodentable/fancy, +/obj/structure/machinery/faxmachine/uscm/command/capt{ + name = "Commanding Officer's Fax Machine"; + pixel_x = -4; + pixel_y = 3 }, /obj/structure/machinery/light{ - dir = 4 + dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "cargo" +/turf/open/floor/wood/ship, +/area/almayer/living/commandbunks) +"muW" = ( +/turf/open/floor/almayer/mono, +/area/almayer/hallways/upper/midship_hallway) +"mvg" = ( +/obj/docking_port/stationary/escape_pod/west, +/turf/open/floor/plating, +/area/almayer/maint/hull/lower/l_m_p) +"mvi" = ( +/obj/structure/surface/table/almayer, +/obj/item/weapon/gun/revolver/m44{ + desc = "A bulky revolver, occasionally carried by assault troops and officers in the Colonial Marines, as well as civilian law enforcement. Fires .44 Magnum rounds. 'J.P' Is engraved into the barrel." }, -/area/almayer/command/cic) +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_f_p) "mvl" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -52366,19 +39247,8 @@ dir = 1; name = "ship-grade camera" }, -/turf/open/floor/almayer{ - icon_state = "bluecorner" - }, +/turf/open/floor/almayer/bluecorner, /area/almayer/squads/delta) -"mvH" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "SE-out"; - pixel_x = 1 - }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, -/area/almayer/lifeboat_pumps/south2) "mvI" = ( /obj/structure/machinery/camera/autoname/almayer{ dir = 4; @@ -52387,16 +39257,14 @@ /obj/structure/barricade/handrail/medical{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/west, /area/almayer/medical/lower_medical_lobby) -"mwz" = ( -/turf/open/floor/almayer{ - icon_state = "emeraldfull" +"mww" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/area/almayer/living/briefing) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/starboard_aft_hallway) "mwA" = ( /obj/structure/disposalpipe/segment{ dir = 8; @@ -52414,10 +39282,11 @@ /area/almayer/living/chapel) "mwM" = ( /obj/structure/machinery/door/firedoor/border_only/almayer, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/medical/lower_medical_medbay) +"mwP" = ( +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/p_stern) "mwQ" = ( /obj/structure/machinery/landinglight/ds1/delayone{ dir = 4 @@ -52425,9 +39294,7 @@ /obj/structure/platform{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) "mwR" = ( /obj/effect/step_trigger/teleporter_vector{ @@ -52438,49 +39305,44 @@ /obj/structure/machinery/light, /turf/open/floor/plating/plating_catwalk, /area/almayer/stair_clone/upper) -"mxL" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12 - }, -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12; - pixel_y = 12 +"mxo" = ( +/obj/docking_port/stationary/escape_pod/south, +/turf/open/floor/plating, +/area/almayer/maint/upper/u_f_p) +"mxq" = ( +/obj/structure/machinery/door_control/cl/office/door{ + pixel_y = -20 }, +/turf/open/floor/almayer/plate, +/area/almayer/hallways/upper/midship_hallway) +"mxT" = ( +/obj/structure/surface/table/almayer, +/obj/item/device/flashlight/lamp, +/turf/open/floor/almayer/plate, +/area/almayer/engineering/lower/workshop) +"mxV" = ( /obj/structure/sign/safety/autoopenclose{ - pixel_y = 32 - }, -/obj/structure/sign/safety/water{ - pixel_x = 15; + pixel_x = 7; pixel_y = 32 }, /turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_p) -"myn" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 +/area/almayer/maint/hull/lower/stern) +"myl" = ( +/obj/structure/machinery/power/apc/almayer/hardened{ + cell_type = /obj/item/cell/hyper; + dir = 1 }, -/obj/structure/machinery/power/apc/almayer, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_s) +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_y = 1 + }, +/turf/open/floor/almayer/mono, +/area/almayer/lifeboat_pumps/north1) "myo" = ( /obj/structure/surface/table/almayer, /obj/item/clothing/head/soft/purple, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/north, /area/almayer/hallways/hangar) -"myC" = ( -/obj/structure/bed/chair{ - dir = 8 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_p) "myJ" = ( /obj/structure/machinery/light{ dir = 4 @@ -52488,41 +39350,47 @@ /obj/structure/barricade/handrail{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "test_floor5" - }, +/turf/open/floor/almayer/test_floor5, /area/almayer/squads/req) -"myT" = ( -/obj/structure/closet/firecloset, -/obj/effect/decal/warning_stripes{ - icon_state = "NE-out"; - pixel_y = 1 +"myP" = ( +/obj/structure/surface/table/almayer, +/obj/structure/machinery/computer/sentencing{ + dir = 4 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_s) -"mzb" = ( -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12 +/turf/open/floor/almayer/red/west, +/area/almayer/shipboard/brig/processing) +"mza" = ( +/obj/structure/machinery/door/poddoor/shutters/almayer{ + dir = 2; + id = "bot_armory"; + name = "\improper Armory Shutters" }, -/obj/structure/bed/chair{ - dir = 4 +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 }, -/obj/structure/sign/safety/water{ - pixel_x = 8; - pixel_y = -32 +/obj/structure/machinery/door/airlock/almayer/security/glass/reinforced{ + dir = 2; + name = "\improper Armory" }, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_x = 2; + pixel_y = 1 }, -/area/almayer/hull/lower_hull/l_f_s) -"mzg" = ( -/turf/open/floor/almayer{ - icon_state = "emerald" +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + pixel_x = -2; + pixel_y = 1 }, +/turf/open/floor/almayer/test_floor4, +/area/almayer/shipboard/brig/armory) +"mzg" = ( +/turf/open/floor/almayer/emerald, /area/almayer/squads/charlie) -"mzo" = ( -/turf/closed/wall/almayer, -/area/almayer/hull/lower_hull/l_f_p) +"mzn" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/almayer/mono, +/area/almayer/hallways/upper/fore_hallway) "mzq" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 6 @@ -52531,11 +39399,23 @@ icon_state = "SW-out"; pixel_x = -1 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_corner" - }, +/turf/open/floor/almayer/sterile_green_corner/west, /area/almayer/medical/hydroponics) +"mzs" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + pixel_y = 1 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_y = 1 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/upper/port) +"mzv" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_midship_hallway) "mzz" = ( /obj/structure/machinery/light, /turf/open/floor/almayer, @@ -52544,91 +39424,89 @@ /obj/effect/decal/cleanable/blood/oil, /turf/open/floor/plating/plating_catwalk, /area/almayer/lifeboat_pumps/south2) -"mzG" = ( -/obj/structure/bookcase{ - icon_state = "book-5"; - name = "law and engineering manuals bookcase"; - opacity = 0 - }, -/obj/item/book/manual/marine_law, -/obj/item/book/manual/detective, -/obj/item/book/manual/security_space_law, -/obj/item/book/manual/engineering_guide, -/obj/item/book/manual/engineering_construction, -/obj/item/book/manual/orbital_cannon_manual, -/obj/item/book/manual/ripley_build_and_repair, -/obj/item/book/manual/engineering_hacking, -/obj/structure/machinery/light{ - dir = 8 - }, -/turf/open/floor/wood/ship, -/area/almayer/living/commandbunks) -"mzO" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 10 +"mzI" = ( +/obj/structure/largecrate/random/barrel/white, +/obj/structure/sign/safety/storage{ + pixel_x = -17 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orangecorner" +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_m_s) +"mzP" = ( +/obj/structure/stairs{ + dir = 1 }, -/area/almayer/engineering/engine_core) -"mzR" = ( -/obj/structure/sign/safety/distribution_pipes{ - pixel_x = 8; - pixel_y = -32 +/obj/effect/step_trigger/teleporter_vector{ + name = "Almayer_AresDown2"; + vector_x = 102; + vector_y = -61 }, -/turf/open/floor/almayer, -/area/almayer/hallways/starboard_hallway) +/turf/open/floor/plating, +/area/almayer/command/airoom) +"mzS" = ( +/turf/open/floor/almayer/red/northwest, +/area/almayer/lifeboat_pumps/north2) "mzV" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/almayer/blue/north, /area/almayer/living/port_emb) +"mAe" = ( +/obj/structure/window/framed/almayer/aicore/hull/black/hijack_bustable, +/obj/structure/machinery/door/poddoor/almayer/blended/ai_lockdown{ + plane = -6; + dir = 4 + }, +/turf/open/floor/almayer/aicore/no_build, +/area/almayer/command/airoom) "mAp" = ( /obj/structure/surface/table/almayer, /obj/effect/spawner/random/tool, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/south1) -"mAT" = ( -/obj/structure/machinery/door/poddoor/shutters/almayer{ - dir = 8; - id = "bot_armory"; - name = "\improper Armory Shutters" +"mAs" = ( +/obj/effect/step_trigger/teleporter_vector{ + name = "Almayer_AresDown"; + vector_x = 96; + vector_y = -65 }, -/obj/structure/machinery/door/firedoor/border_only/almayer, -/obj/structure/machinery/door/airlock/almayer/security/glass/reinforced{ - name = "\improper Armory" +/obj/structure/platform{ + dir = 4 + }, +/obj/structure/stairs{ + dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +/turf/open/floor/almayer/aicore/no_build, +/area/almayer/command/airoom) +"mAF" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 }, -/area/almayer/shipboard/brig/armory) +/obj/structure/sign/safety/escapepod{ + pixel_x = 8; + pixel_y = 32 + }, +/turf/open/floor/almayer/red/southeast, +/area/almayer/hallways/upper/starboard) "mAV" = ( /obj/structure/machinery/cryopod, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/squads/delta) -"mBb" = ( -/obj/structure/machinery/door/poddoor/almayer/open{ - id = "Hangar Lockdown"; - name = "\improper Hangar Lockdown Blast Door" - }, -/obj/structure/machinery/door/airlock/almayer/maint{ - dir = 1 +"mAY" = ( +/obj/structure/machinery/status_display{ + pixel_y = 30 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +/turf/open/floor/almayer/red/north, +/area/almayer/shipboard/brig/starboard_hallway) +"mBa" = ( +/obj/structure/machinery/light{ + dir = 4 }, -/area/almayer/hull/lower_hull/l_f_s) +/turf/open/floor/almayer/red/east, +/area/almayer/hallways/lower/starboard_midship_hallway) "mBc" = ( /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "bluefull" - }, +/turf/open/floor/almayer/bluefull, /area/almayer/squads/charlie_delta_shared) "mBe" = ( /obj/structure/machinery/light{ @@ -52638,47 +39516,44 @@ /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/living/pilotbunks) "mBk" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 9 +/obj/structure/surface/table/almayer, +/obj/item/reagent_container/pill/happy{ + pixel_x = 6; + pixel_y = -4 }, -/turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_s) -"mBp" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 +/obj/item/prop/helmetgarb/prescription_bottle{ + pixel_x = 9 }, -/obj/structure/machinery/door/firedoor/border_only/almayer, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 +/obj/item/tool/surgery/bonegel/empty{ + pixel_x = 4; + pixel_y = 15 }, -/obj/structure/machinery/door/airlock/almayer/security/reinforced{ - access_modified = 1; - name = "\improper Astronavigational Deck"; - req_access = null; - req_one_access_txt = "3;19" +/obj/item/tool/surgery/bonegel/empty{ + pixel_x = -8; + pixel_y = 13 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +/obj/item/tool/surgery/bonegel/empty{ + layer = 3.01; + pixel_x = -5; + pixel_y = 19 }, -/area/almayer/shipboard/navigation) -"mBA" = ( -/obj/structure/surface/table/almayer, -/obj/structure/flora/pottedplant{ - icon_state = "pottedplant_21"; - pixel_y = 11 +/obj/item/storage/box/gloves{ + layer = 3.2; + pixel_x = -5; + pixel_y = 2 }, -/obj/structure/machinery/camera/autoname/almayer{ +/turf/open/floor/almayer/sterile_green_corner/north, +/area/almayer/medical/lower_medical_medbay) +"mBx" = ( +/obj/structure/machinery/firealarm{ dir = 4; - name = "ship-grade camera" + pixel_x = 24 }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_p) +/turf/open/floor/almayer/red/east, +/area/almayer/shipboard/brig/processing) "mBJ" = ( /obj/structure/stairs{ icon_state = "ramptop" @@ -52689,6 +39564,13 @@ }, /turf/open/floor/almayer, /area/almayer/living/chapel) +"mBO" = ( +/obj/structure/pipes/standard/manifold/hidden/supply, +/turf/open/floor/almayer/orangefull, +/area/almayer/living/briefing) +"mCg" = ( +/turf/open/floor/almayer/plate, +/area/almayer/maint/upper/u_a_p) "mCo" = ( /obj/structure/window/framed/almayer, /obj/structure/machinery/door/firedoor/border_only/almayer{ @@ -52696,6 +39578,32 @@ }, /turf/open/floor/plating, /area/almayer/squads/req) +"mCx" = ( +/obj/structure/machinery/door/airlock/almayer/secure/reinforced{ + access_modified = 1; + name = "\improper AI Reception"; + req_access = null; + req_one_access_txt = "91;92"; + dir = 1 + }, +/obj/effect/step_trigger/clone_cleaner, +/obj/structure/machinery/door/poddoor/shutters/almayer{ + id = "ARES ReceptStairs1"; + name = "\improper ARES Reception Shutters" + }, +/turf/open/floor/almayer/no_build/test_floor4, +/area/almayer/command/airoom) +"mCE" = ( +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12; + pixel_y = 12 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_a_p) +"mCJ" = ( +/obj/structure/machinery/power/apc/almayer, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/upper/u_f_p) "mCL" = ( /obj/structure/sign/safety/fire_haz{ pixel_x = 8; @@ -52715,41 +39623,84 @@ pixel_x = 8; pixel_y = -32 }, -/turf/open/floor/almayer{ - icon_state = "green" - }, +/turf/open/floor/almayer/green, /area/almayer/squads/req) +"mDG" = ( +/obj/structure/window/framed/almayer, +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 1 + }, +/turf/open/floor/plating, +/area/almayer/engineering/upper_engineering/port) "mDJ" = ( /turf/open/floor/almayer, /area/almayer/engineering/upper_engineering/starboard) +"mDL" = ( +/obj/structure/surface/table/almayer, +/obj/item/storage/box/mousetraps, +/obj/structure/sign/safety/high_rad{ + pixel_x = 32; + pixel_y = -8 + }, +/obj/structure/sign/safety/hazard{ + pixel_x = 32; + pixel_y = 7 + }, +/turf/open/floor/almayer/orange/east, +/area/almayer/engineering/lower) "mDT" = ( /obj/structure/machinery/door/firedoor/border_only/almayer, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/squads/charlie_delta_shared) "mDW" = ( -/turf/open/floor/almayer{ +/turf/open/floor/almayer/emerald/north, +/area/almayer/living/briefing) +"mDX" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/machinery/door/airlock/almayer/command/reinforced{ dir = 1; - icon_state = "emerald" + id_tag = "CO-Office"; + name = "\improper Commanding Officer's Office"; + req_access = null; + req_access_txt = "31" }, -/area/almayer/living/briefing) -"mEb" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ +/turf/open/floor/almayer/test_floor4, +/area/almayer/living/commandbunks) +"mDZ" = ( +/obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/structure/pipes/standard/manifold/hidden/supply, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/port_fore_hallway) +"mEs" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, /obj/structure/machinery/door_control{ - id = "laddersoutheast"; - name = "South East Ladders Shutters"; - pixel_y = 25; - req_one_access_txt = "2;3;12;19"; - throw_range = 15 + id = "ARES Interior"; + indestructible = 1; + name = "ARES Chamber Lockdown"; + pixel_x = 24; + pixel_y = 8; + req_one_access_txt = "90;91;92" }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "green" +/obj/structure/machinery/door/poddoor/railing{ + closed_layer = 4; + density = 0; + id = "ARES Railing"; + layer = 2.1; + open_layer = 2.1; + unacidable = 0; + unslashable = 0 }, -/area/almayer/hallways/port_hallway) +/turf/open/floor/almayer/aicore/no_build/ai_silver/east, +/area/almayer/command/airoom) "mEE" = ( /obj/structure/platform{ dir = 4; @@ -52761,10 +39712,16 @@ }, /turf/open/floor/almayer, /area/almayer/living/briefing) -"mES" = ( -/obj/structure/pipes/vents/scrubber, -/turf/open/floor/wood/ship, -/area/almayer/living/commandbunks) +"mFc" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/machinery/door/firedoor/border_only/almayer, +/turf/open/floor/almayer/test_floor4, +/area/almayer/shipboard/brig/processing) "mFq" = ( /obj/structure/machinery/door_control{ dir = 1; @@ -52773,11 +39730,16 @@ pixel_y = 29; req_access_txt = "28" }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/north, /area/almayer/medical/medical_science) +"mFL" = ( +/obj/effect/projector{ + name = "Almayer_Up1"; + vector_x = -19; + vector_y = 98 + }, +/turf/open/floor/almayer/no_build, +/area/almayer/hallways/lower/starboard_midship_hallway) "mFN" = ( /obj/effect/step_trigger/ares_alert/mainframe, /obj/structure/machinery/door/poddoor/shutters/almayer{ @@ -52785,18 +39747,8 @@ name = "\improper ARES Mainframe Shutters"; plane = -7 }, -/obj/structure/machinery/door/poddoor/almayer/blended/white/open{ - closed_layer = 3.2; - id = "ARES Emergency"; - layer = 3.2; - name = "ARES Emergency Lockdown"; - needs_power = 0; - open_layer = 1.9; - plane = -7 - }, -/turf/open/floor/almayer/no_build{ - icon_state = "test_floor4" - }, +/obj/structure/machinery/door/poddoor/almayer/blended/ai_lockdown/aicore, +/turf/open/floor/almayer/no_build/test_floor4, /area/almayer/command/airoom) "mFO" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -52805,42 +39757,53 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/west, /area/almayer/squads/bravo) +"mFP" = ( +/obj/structure/machinery/camera/autoname/almayer{ + dir = 1; + name = "ship-grade camera" + }, +/obj/structure/sign/safety/life_support{ + pixel_x = 8; + pixel_y = -32 + }, +/turf/open/floor/almayer/orange, +/area/almayer/engineering/lower) +"mFQ" = ( +/turf/closed/wall/almayer/reinforced, +/area/almayer/maint/hull/lower/s_bow) +"mGb" = ( +/turf/open/floor/almayer/test_floor4, +/area/almayer/hallways/upper/fore_hallway) "mGe" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/almayer, /area/almayer/command/cichallway) -"mGn" = ( -/obj/structure/machinery/cm_vending/clothing/military_police_warden, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/shipboard/brig/main_office) "mGu" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/east, /area/almayer/command/securestorage) -"mGL" = ( -/turf/open/floor/almayer{ - icon_state = "plate" +"mGT" = ( +/obj/structure/machinery/status_display{ + pixel_y = 30 }, -/area/almayer/hull/lower_hull/l_f_s) -"mHm" = ( -/obj/structure/sign/safety/distribution_pipes{ - pixel_y = -32 +/obj/structure/closet/cabinet, +/obj/item/clipboard, +/obj/item/storage/lockbox/loyalty, +/obj/item/storage/briefcase, +/obj/item/reagent_container/spray/pepper, +/obj/item/device/eftpos{ + eftpos_name = "Weyland-Yutani EFTPOS scanner" }, -/obj/structure/sign/safety/manualopenclose{ - pixel_x = 15; - pixel_y = -32 +/obj/item/device/portable_vendor/corporate, +/turf/open/floor/wood/ship, +/area/almayer/command/corporateliaison) +"mHb" = ( +/obj/structure/machinery/power/apc/almayer{ + dir = 1 }, -/turf/open/floor/almayer, -/area/almayer/hallways/port_hallway) +/turf/open/floor/almayer/red/east, +/area/almayer/shipboard/brig/processing) "mHo" = ( /obj/structure/machinery/washing_machine, /obj/structure/machinery/washing_machine{ @@ -52850,9 +39813,7 @@ /obj/structure/sign/safety/rewire{ pixel_x = -17 }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/engineering/laundry) "mHx" = ( /obj/structure/bed/chair{ @@ -52863,6 +39824,15 @@ }, /turf/open/floor/almayer, /area/almayer/living/gym) +"mHz" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 10 + }, +/obj/structure/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/chief_mp_office) "mHD" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -52871,30 +39841,56 @@ icon_state = "N"; pixel_y = 1 }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/medical/hydroponics) -"mHE" = ( -/turf/open/floor/almayer/no_build{ - dir = 8; - icon_state = "silver" +"mHF" = ( +/obj/structure/surface/rack, +/obj/item/clothing/head/headband/red{ + pixel_x = 4; + pixel_y = 8 }, -/area/almayer/command/airoom) +/obj/item/clothing/glasses/regular/hipster, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_f_p) "mHO" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/living/pilotbunks) -"mHR" = ( -/obj/structure/sign/safety/hvac_old{ - pixel_x = 8; - pixel_y = -32 +"mHT" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, +/turf/open/floor/almayer/orange/west, +/area/almayer/maint/upper/u_a_s) +"mHY" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/disposalpipe/segment, /turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_a_p) +/area/almayer/hallways/upper/midship_hallway) +"mId" = ( +/obj/structure/closet, +/obj/item/clothing/suit/armor/riot/marine/vintage_riot, +/obj/item/clothing/head/helmet/riot/vintage_riot, +/obj/structure/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_m_s) +"mIi" = ( +/obj/effect/step_trigger/teleporter_vector{ + name = "Almayer_AresUp"; + vector_x = -96; + vector_y = 65 + }, +/obj/structure/platform{ + dir = 8 + }, +/obj/structure/stairs{ + dir = 1 + }, +/turf/open/floor/almayer/aicore/no_build, +/area/almayer/command/airoom) "mIy" = ( /obj/structure/disposalpipe/segment{ dir = 1; @@ -52914,42 +39910,36 @@ pixel_x = -1; pixel_y = 9 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) -"mIA" = ( -/obj/structure/closet/firecloset, -/turf/open/floor/almayer{ - icon_state = "cargo" +"mIJ" = ( +/obj/structure/pipes/standard/simple/hidden/supply/no_boom{ + dir = 6 }, -/area/almayer/lifeboat_pumps/south2) -"mIB" = ( -/obj/structure/machinery/cm_vending/sorted/medical/marinemed, -/obj/structure/sign/safety/medical{ +/turf/open/floor/almayer/aicore/no_build, +/area/almayer/command/airoom) +"mIP" = ( +/obj/structure/pipes/vents/pump, +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 2 + }, +/turf/open/floor/almayer/dark_sterile, +/area/almayer/engineering/upper_engineering/port) +"mIR" = ( +/obj/structure/sign/safety/distribution_pipes{ pixel_x = 8; pixel_y = 32 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_s) -"mIW" = ( -/obj/structure/machinery/light, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "blue" - }, -/area/almayer/hallways/aft_hallway) +/turf/open/floor/almayer/blue/north, +/area/almayer/hallways/upper/midship_hallway) "mJa" = ( /obj/structure/closet/crate/trashcart, /obj/item/trash/boonie, /obj/item/trash/chunk/hunk, /obj/item/trash/crushed_cup, /obj/item/trash/uscm_mre, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/squads/req) "mJe" = ( /obj/structure/sign/safety/conference_room{ @@ -52960,10 +39950,7 @@ pixel_x = -17; pixel_y = 7 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/west, /area/almayer/command/cichallway) "mJi" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -52983,17 +39970,14 @@ /area/almayer/command/cic) "mJx" = ( /obj/structure/prop/server_equipment/broken, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/north, /area/almayer/engineering/upper_engineering/starboard) "mJL" = ( -/turf/open/floor/almayer{ - dir = 5; - icon_state = "blue" - }, +/turf/open/floor/almayer/blue/northeast, /area/almayer/living/pilotbunks) +"mJO" = ( +/turf/closed/wall/almayer, +/area/almayer/maint/hull/lower/l_m_p) "mJP" = ( /obj/structure/machinery/cm_vending/gear/tl{ density = 0; @@ -53003,10 +39987,7 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/west, /area/almayer/squads/bravo) "mKb" = ( /obj/structure/flora/pottedplant{ @@ -53015,30 +39996,30 @@ name = "synthetic potted plant"; pixel_y = 8 }, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/almayer/red/southwest, /area/almayer/squads/alpha) -"mKf" = ( -/obj/structure/largecrate/random/barrel/white, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_p) -"mKh" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, +"mKi" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; pixel_y = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/structure/machinery/power/apc/almayer{ + dir = 1 }, -/area/almayer/shipboard/brig/cryo) +/turf/open/floor/almayer/red, +/area/almayer/hallways/upper/port) "mKq" = ( /turf/closed/wall/almayer/reinforced, /area/almayer/living/bridgebunks) +"mKs" = ( +/obj/structure/stairs/perspective{ + icon_state = "p_stair_full" + }, +/obj/structure/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_f_s) "mKw" = ( /obj/structure/disposalpipe/junction{ dir = 1 @@ -53046,9 +40027,7 @@ /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/medical/lower_medical_lobby) "mKx" = ( /obj/effect/decal/warning_stripes{ @@ -53059,10 +40038,15 @@ icon_state = "W"; pixel_x = -1 }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/medical/hydroponics) +"mKy" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/turf/open/floor/almayer/plate, +/area/almayer/command/lifeboat) "mKJ" = ( /obj/structure/machinery/firealarm{ pixel_y = 28 @@ -53091,71 +40075,36 @@ layer = 3.5; pixel_y = 13 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/port_emb) -"mKX" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/engineering/engine_core) -"mKY" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/obj/structure/pipes/standard/manifold/fourway/hidden/supply, +"mKN" = ( +/obj/effect/landmark/start/pilot/cas_pilot, /turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_hallway) -"mLb" = ( -/obj/structure/surface/table/almayer, -/obj/item/toy/deck{ - pixel_x = -6; - pixel_y = -2 - }, -/obj/item/toy/deck/uno{ - pixel_x = 6; - pixel_y = -1 - }, -/obj/structure/prop/holidays/string_lights{ - dir = 8; - pixel_x = 29 +/area/almayer/living/pilotbunks) +"mLe" = ( +/obj/structure/pipes/vents/pump{ + dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/structure/sign/safety/bathunisex{ + pixel_x = 8; + pixel_y = -32 }, -/area/almayer/living/briefing) -"mLu" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 +/obj/structure/machinery/door_control/cl/quarter/backdoor{ + pixel_x = 25 }, -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer, -/area/almayer/hallways/port_umbilical) +/turf/open/floor/wood/ship, +/area/almayer/command/corporateliaison) +"mLg" = ( +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/port_umbilical) "mLz" = ( /obj/structure/machinery/door_control{ id = "pobunk1"; name = "PO1 Privacy Shutters"; pixel_x = -24 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/pilotbunks) -"mLE" = ( -/turf/open/floor/plating, -/area/almayer/command/airoom) "mLF" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -53169,20 +40118,17 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/alpha) -"mLI" = ( -/obj/structure/machinery/light/small{ +"mLN" = ( +/obj/structure/machinery/light/small, +/obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/almayer{ - allow_construction = 0 - }, -/area/almayer/shipboard/brig/perma) -"mLJ" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 +/obj/structure/sign/safety/distribution_pipes{ + pixel_x = 8; + pixel_y = 32 }, -/turf/open/floor/almayer, -/area/almayer/shipboard/brig/main_office) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_f_p) "mLR" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -53192,12 +40138,6 @@ }, /turf/open/floor/almayer, /area/almayer/squads/req) -"mLU" = ( -/turf/open/floor/almayer{ - dir = 6; - icon_state = "orange" - }, -/area/almayer/hallways/stern_hallway) "mMP" = ( /obj/effect/landmark/start/intel, /turf/open/floor/plating/plating_catwalk, @@ -53209,65 +40149,46 @@ name = "General Listening Channel"; pixel_y = -28 }, -/turf/open/floor/almayer{ - icon_state = "silver" - }, +/turf/open/floor/almayer/silver, /area/almayer/shipboard/brig/cic_hallway) -"mNf" = ( -/obj/structure/largecrate/random/case/double, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_s) "mNm" = ( /obj/structure/platform{ dir = 8 }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hallways/hangar) +"mNG" = ( +/obj/structure/sign/safety/stairs{ + pixel_x = 15; + pixel_y = 32 + }, +/obj/structure/sign/safety/west{ + pixel_y = 32 + }, +/obj/structure/machinery/door_control{ + id = "laddernorthwest"; + name = "North West Ladders Shutters"; + pixel_y = 24; + req_one_access_txt = "2;3;12;19"; + throw_range = 15 + }, +/turf/open/floor/almayer/plate, +/area/almayer/hallways/lower/starboard_fore_hallway) "mNI" = ( /obj/structure/machinery/door/window/westleft{ dir = 2 }, /obj/structure/machinery/shower, /obj/item/tool/soap, -/turf/open/floor/almayer{ - icon_state = "sterile" - }, +/turf/open/floor/almayer/sterile, /area/almayer/medical/upper_medical) -"mNR" = ( -/obj/structure/surface/rack, -/obj/item/storage/toolbox/mechanical, -/obj/item/tool/hand_labeler, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_f_s) -"mNW" = ( -/obj/structure/platform{ - dir = 4 - }, -/obj/item/storage/firstaid/rad, -/obj/structure/surface/rack, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_s) +"mNK" = ( +/obj/structure/closet/secure_closet/brig/restraints, +/turf/open/floor/almayer/red/west, +/area/almayer/shipboard/brig/perma) "mNX" = ( -/turf/open/floor/almayer_hull{ - dir = 4; - icon_state = "outerhull_dir" - }, +/turf/open/floor/almayer_hull/outerhull_dir/east, /area/space/almayer/lifeboat_dock) -"mNZ" = ( -/obj/item/trash/uscm_mre, -/obj/structure/prop/invuln/lattice_prop{ - icon_state = "lattice1"; - pixel_x = 16; - pixel_y = -16 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_s) "mOb" = ( /obj/structure/machinery/camera/autoname/almayer{ dir = 8; @@ -53276,50 +40197,36 @@ /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/starboard_garden) "mOg" = ( /obj/structure/sign/safety/maint{ pixel_x = 32 }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/engineering/laundry) "mOi" = ( /turf/closed/wall/almayer/outer, /area/almayer/command/airoom) -"mOr" = ( -/obj/structure/surface/table/almayer, -/obj/item/clipboard, -/obj/item/tool/lighter, -/obj/item/device/flashlight/lamp, -/turf/open/floor/almayer{ - icon_state = "plate" +"mOE" = ( +/obj/structure/sign/safety/water{ + pixel_x = -17 }, -/area/almayer/engineering/engineering_workshop) -"mOL" = ( -/obj/structure/sign/safety/maint{ +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_a_s) +"mOZ" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/almayer/cargo, +/area/almayer/hallways/upper/midship_hallway) +"mPc" = ( +/obj/structure/sign/safety/hvac_old{ pixel_x = 8; - pixel_y = 32 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "green" - }, -/area/almayer/hallways/aft_hallway) -"mOU" = ( -/obj/structure/machinery/light/small{ - dir = 4 + pixel_y = -32 }, /turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_p) +/area/almayer/maint/hull/lower/l_a_p) "mPf" = ( -/turf/open/floor/almayer/uscm/directional{ - dir = 6 - }, +/turf/open/floor/almayer/uscm/directional/southeast, /area/almayer/command/lifeboat) "mPh" = ( /obj/structure/pipes/standard/simple/hidden/supply, @@ -53327,9 +40234,10 @@ dir = 2; name = "\improper Engineering South Hall" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 1 }, +/turf/open/floor/almayer/test_floor4, /area/almayer/engineering/upper_engineering/port) "mPj" = ( /obj/structure/disposalpipe/segment{ @@ -53348,51 +40256,57 @@ }, /turf/open/floor/almayer, /area/almayer/command/cic) -"mPX" = ( -/turf/open/floor/almayer{ - icon_state = "orange" +"mPw" = ( +/obj/structure/machinery/vending/snack, +/turf/open/floor/almayer, +/area/almayer/maint/hull/upper/u_f_s) +"mPM" = ( +/turf/open/floor/almayer/test_floor4, +/area/almayer/hallways/lower/port_midship_hallway) +"mPR" = ( +/obj/structure/machinery/light{ + dir = 8 }, -/area/almayer/hallways/stern_hallway) +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer/plate, +/area/almayer/living/briefing) "mQc" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/east, /area/almayer/command/cichallway) +"mQd" = ( +/obj/structure/surface/rack, +/obj/item/device/radio, +/obj/item/tool/weldpack, +/turf/open/floor/almayer/plate, +/area/almayer/hallways/lower/vehiclehangar) +"mQn" = ( +/obj/structure/sign/safety/rad_shield{ + pixel_x = 32 + }, +/turf/open/floor/almayer/orange/east, +/area/almayer/engineering/lower/engine_core) +"mQx" = ( +/obj/effect/projector{ + name = "Almayer_Up3"; + vector_x = -1; + vector_y = 102 + }, +/turf/open/floor/almayer/no_build, +/area/almayer/hallways/lower/port_fore_hallway) "mQC" = ( /turf/open/floor/plating/plating_catwalk, /area/almayer/engineering/port_atmos) -"mQH" = ( -/turf/open/floor/almayer{ - dir = 5; - icon_state = "blue" - }, -/area/almayer/hallways/aft_hallway) -"mQV" = ( -/obj/structure/pipes/standard/manifold/hidden/supply{ +"mQY" = ( +/obj/structure/machinery/door/airlock/almayer/maint{ dir = 1 }, -/turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_p) -"mQW" = ( -/obj/structure/bed/chair{ - dir = 8 - }, -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_f_p) -"mRl" = ( -/obj/structure/machinery/camera/autoname/almayer{ - dir = 8; - name = "ship-grade camera" - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "green" - }, -/area/almayer/hallways/aft_hallway) +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer/test_floor4, +/area/almayer/maint/hull/lower/l_m_s) "mRn" = ( /obj/structure/machinery/door/poddoor/shutters/almayer{ id = "ARES Interior"; @@ -53400,15 +40314,6 @@ plane = -7 }, /obj/effect/step_trigger/ares_alert/core, -/obj/structure/machinery/door/poddoor/almayer/blended/white/open{ - closed_layer = 3.2; - id = "ARES Emergency"; - layer = 3.2; - name = "ARES Emergency Lockdown"; - needs_power = 0; - open_layer = 1.9; - plane = -7 - }, /obj/structure/sign/safety/terminal{ pixel_x = -18; pixel_y = -8 @@ -53417,27 +40322,61 @@ pixel_x = -18; pixel_y = 6 }, -/turf/open/floor/almayer/no_build{ - icon_state = "test_floor4" - }, +/obj/structure/machinery/door/poddoor/almayer/blended/ai_lockdown/aicore, +/turf/open/floor/almayer/no_build/test_floor4, /area/almayer/command/airoom) -"mRS" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 +"mRq" = ( +/obj/structure/surface/table/almayer, +/obj/effect/decal/cleanable/dirt, +/obj/item/paper_bin/uscm{ + pixel_x = 9; + pixel_y = 6 }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +/obj/item/tool/pen{ + pixel_x = 9; + pixel_y = 2 + }, +/obj/item/tool/pen{ + pixel_x = 9; + pixel_y = 9 + }, +/turf/open/floor/almayer/plate, +/area/almayer/living/briefing) +"mRH" = ( +/obj/structure/machinery/cm_vending/sorted/tech/comp_storage{ + req_access = null; + req_one_access = null; + req_one_access_txt = "7;23;27;102" + }, +/obj/item/reagent_container/food/drinks/coffee{ + pixel_x = -3; + pixel_y = 18 + }, +/turf/open/floor/almayer/silver, +/area/almayer/hallways/lower/repair_bay) +"mRI" = ( +/obj/structure/machinery/door/airlock/almayer/maint, +/turf/open/floor/almayer/test_floor4, +/area/almayer/maint/hull/upper/u_a_s) +"mRJ" = ( +/turf/open/floor/almayer/blue/northwest, +/area/almayer/hallways/upper/midship_hallway) +"mRQ" = ( +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_22" + }, +/obj/structure/machinery/camera/autoname/almayer{ + name = "ship-grade camera" }, -/area/almayer/hallways/starboard_hallway) -"mRU" = ( /obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 2 + icon_state = "NW-out"; + pixel_y = 1 }, -/turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_p) +/turf/open/floor/almayer/red/north, +/area/almayer/command/lifeboat) +"mRU" = ( +/turf/closed/wall/almayer, +/area/almayer/maint/hull/upper/u_m_p) "mRW" = ( /turf/open/floor/almayer/research/containment/corner1, /area/almayer/medical/containment/cell/cl) @@ -53447,21 +40386,33 @@ }, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/south1) +"mSl" = ( +/obj/structure/surface/table/almayer, +/obj/item/clipboard, +/obj/item/paper, +/obj/item/clothing/glasses/mgoggles, +/obj/item/clothing/glasses/mgoggles, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/upper/u_a_s) +"mSo" = ( +/obj/structure/surface/rack, +/obj/item/facepaint/sniper, +/turf/open/floor/almayer/plate, +/area/almayer/maint/upper/u_m_s) +"mSr" = ( +/obj/effect/landmark/crap_item, +/turf/open/floor/almayer, +/area/almayer/maint/hull/upper/u_f_p) "mSs" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/west, /area/almayer/shipboard/brig/cic_hallway) "mSz" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/structure/machinery/computer/crew/alt, -/turf/open/floor/almayer{ - icon_state = "silverfull" - }, +/turf/open/floor/almayer/silverfull, /area/almayer/command/securestorage) "mSK" = ( /obj/structure/machinery/portable_atmospherics/hydroponics, @@ -53469,40 +40420,27 @@ dir = 4; health = 80 }, -/turf/open/floor/almayer{ - icon_state = "test_floor5" - }, +/turf/open/floor/almayer/test_floor5, /area/almayer/medical/hydroponics) -"mSP" = ( -/obj/structure/machinery/door/poddoor/shutters/almayer/open{ - dir = 4; - id = "officers_mess"; - name = "\improper Privacy Shutters" - }, -/obj/structure/machinery/door/airlock/almayer/maint/reinforced{ - access_modified = 1; - req_one_access = null; - req_one_access_txt = "19;30" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +"mSM" = ( +/obj/structure/sign/safety/storage{ + pixel_x = 8; + pixel_y = -32 }, -/area/almayer/hull/upper_hull/u_f_p) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_m_p) "mSU" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor/almayer{ - icon_state = "blue" - }, +/turf/open/floor/almayer/blue, /area/almayer/squads/charlie_delta_shared) -"mTb" = ( -/obj/structure/machinery/light{ - dir = 4 - }, -/turf/open/floor/almayer{ +"mTc" = ( +/obj/structure/surface/table/woodentable/fancy, +/obj/structure/machinery/computer/emails{ dir = 4; - icon_state = "green" + pixel_y = 2 }, -/area/almayer/hallways/aft_hallway) +/turf/open/floor/wood/ship, +/area/almayer/living/commandbunks) "mTd" = ( /obj/structure/machinery/smartfridge/chemistry{ pixel_x = -3; @@ -53512,22 +40450,11 @@ /area/almayer/medical/medical_science) "mTi" = ( /obj/structure/machinery/cryopod/right, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/living/offices) "mTm" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/almayer/red/east, /area/almayer/shipboard/navigation) -"mTn" = ( -/obj/structure/closet/firecloset, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/hallways/starboard_hallway) "mTp" = ( /obj/structure/window/reinforced{ dir = 4; @@ -53537,84 +40464,80 @@ density = 0; pixel_y = 16 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "cargo_arrow" - }, +/turf/open/floor/almayer/cargo_arrow/north, /area/almayer/medical/hydroponics) -"mUa" = ( -/obj/structure/disposalpipe/junction{ - dir = 4; - icon_state = "pipe-j2" +"mTr" = ( +/obj/structure/machinery/door_control{ + id = "ARES StairsLower"; + name = "ARES Core Lockdown"; + pixel_x = 24; + pixel_y = -8; + req_one_access_txt = "90;91;92" }, -/obj/structure/pipes/standard/manifold/hidden/supply, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/starboard_hallway) -"mUn" = ( -/obj/structure/machinery/conveyor_switch{ - id = "lower_garbage" +/obj/structure/machinery/camera/autoname/almayer/containment/ares{ + dir = 8; + pixel_y = 2; + c_tag = "AI - Main Corridor"; + autoname = 0 }, -/turf/open/floor/almayer{ - icon_state = "plate" +/turf/open/floor/almayer/aicore/no_build/ai_silver/east, +/area/almayer/command/airoom) +"mTL" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/area/almayer/hull/lower_hull/l_m_p) +/obj/effect/landmark/yautja_teleport, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_f_p) +"mTN" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/disposalpipe/segment, +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/processing) "mUq" = ( /obj/effect/decal/warning_stripes{ icon_state = "E"; pixel_x = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/offices) "mUx" = ( /obj/structure/machinery/door/airlock/almayer/marine/bravo/sl, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/squads/bravo) -"mUz" = ( -/obj/structure/surface/table/reinforced/almayer_B, -/obj/structure/machinery/computer/cameras/almayer/ares{ - dir = 8; - pixel_x = 17 - }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, -/area/almayer/command/airoom) -"mUC" = ( -/obj/structure/machinery/light{ - dir = 4; - invisibility = 101; - unacidable = 1; - unslashable = 1 - }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, -/area/almayer/command/airoom) -"mUQ" = ( -/obj/structure/largecrate/random/barrel/red, -/turf/open/floor/almayer{ - icon_state = "plate" +"mUE" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_f_s) +"mUY" = ( +/obj/structure/surface/rack, +/obj/effect/spawner/random/tool, +/obj/effect/spawner/random/tool, +/obj/effect/spawner/random/powercell, +/obj/effect/spawner/random/powercell, +/turf/open/floor/almayer/cargo, +/area/almayer/maint/hull/lower/l_m_s) +"mVh" = ( +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/p_bow) +"mVr" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SE-out"; + pixel_x = 1 }, -/area/almayer/hull/upper_hull/u_f_s) -"mUZ" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" +/turf/open/floor/almayer/plating/northeast, +/area/almayer/engineering/lower/engine_core) +"mVA" = ( +/obj/item/reagent_container/glass/bucket, +/obj/item/tool/mop{ + pixel_x = -6; + pixel_y = 24 }, /obj/structure/pipes/standard/simple/hidden/supply{ - dir = 9 + dir = 4 }, /turf/open/floor/plating/plating_catwalk, -/area/almayer/engineering/lower_engineering) -"mVi" = ( -/turf/open/floor/almayer{ - icon_state = "red" - }, -/area/almayer/shipboard/brig/cryo) +/area/almayer/maint/hull/upper/u_f_s) "mVE" = ( /obj/effect/decal/warning_stripes{ icon_state = "NW-out"; @@ -53633,37 +40556,21 @@ /obj/structure/sign/safety/bulkhead_door{ pixel_y = 32 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) -"mVZ" = ( -/obj/structure/sign/poster{ - desc = "It says DRUG."; - icon_state = "poster2"; - pixel_x = -27 - }, -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/structure/bed/chair/comfy/charlie{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/living/briefing) -"mWe" = ( -/obj/structure/machinery/camera/autoname/almayer{ - dir = 8; - name = "ship-grade camera" - }, -/obj/structure/reagent_dispensers/peppertank{ - pixel_x = 30 +"mVF" = ( +/obj/structure/machinery/door/poddoor/shutters/almayer/open{ + dir = 4; + id = "officers_mess"; + name = "\improper Privacy Shutters" }, -/turf/open/floor/almayer{ - icon_state = "red" +/obj/structure/machinery/door/airlock/almayer/maint/reinforced{ + access_modified = 1; + req_one_access = null; + req_one_access_txt = "19;30" }, -/area/almayer/shipboard/brig/general_equipment) +/turf/open/floor/almayer/test_floor4, +/area/almayer/maint/upper/mess) "mWs" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -53671,36 +40578,34 @@ /obj/structure/pipes/standard/simple/hidden/supply/no_boom{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side, /area/almayer/medical/medical_science) -"mWw" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/structure/disposalpipe/segment, -/obj/structure/sign/safety/restrictedarea{ - pixel_x = 32 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/port_hallway) "mWy" = ( /obj/structure/machinery/door/firedoor/border_only/almayer, /obj/structure/machinery/door/airlock/multi_tile/almayer/marine/shared/alpha_bravo/yellow{ dir = 2 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/squads/alpha_bravo_shared) "mWD" = ( /obj/structure/machinery/cryopod/right{ layer = 3.1; pixel_y = 13 }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/living/bridgebunks) +"mWJ" = ( +/obj/structure/stairs{ + dir = 8; + icon_state = "ramptop" + }, +/obj/effect/projector{ + name = "Almayer_Down3"; + vector_x = 1; + vector_y = -102 + }, +/turf/open/floor/plating/almayer/no_build, +/area/almayer/hallways/upper/fore_hallway) "mWQ" = ( /obj/structure/flora/pottedplant{ desc = "It is made of Fiberbush(tm). It contains asbestos."; @@ -53711,10 +40616,7 @@ /obj/structure/sign/banners/maximumeffort{ pixel_y = 30 }, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "blue" - }, +/turf/open/floor/almayer/blue/northwest, /area/almayer/squads/delta) "mWV" = ( /obj/structure/bed/chair/comfy/blue, @@ -53727,38 +40629,24 @@ /obj/structure/pipes/standard/simple/hidden/supply/no_boom{ dir = 10 }, -/turf/open/floor/almayer/research/containment/floor2{ - dir = 1 - }, +/turf/open/floor/almayer/research/containment/floor2/north, /area/almayer/medical/containment/cell) -"mXa" = ( -/obj/structure/closet/secure_closet/guncabinet, -/obj/item/weapon/gun/rifle/l42a{ - pixel_y = 6 - }, -/obj/item/weapon/gun/rifle/l42a, -/obj/item/weapon/gun/rifle/l42a{ - pixel_y = -6 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_m_s) "mXj" = ( /turf/closed/wall/almayer, /area/almayer/living/commandbunks) -"mXU" = ( -/turf/open/floor/almayer{ - dir = 9; - icon_state = "red" - }, -/area/almayer/hallways/aft_hallway) -"mYs" = ( -/obj/structure/machinery/light{ - dir = 4 +"mXm" = ( +/obj/structure/surface/rack, +/obj/item/tool/weldingtool, +/obj/item/tool/wrench, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/p_bow) +"mYt" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W"; + pixel_x = -1 }, -/turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_p) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/vehiclehangar) "mYv" = ( /obj/structure/disposalpipe/sortjunction{ dir = 4; @@ -53767,40 +40655,10 @@ }, /turf/closed/wall/almayer, /area/almayer/squads/req) -"mYw" = ( -/obj/structure/sign/safety/escapepod{ - pixel_x = -17; - pixel_y = -8 - }, -/obj/structure/sign/safety/stairs{ - pixel_x = -17; - pixel_y = 7 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "blue" - }, -/area/almayer/hallways/port_hallway) -"mYX" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/closet/secure_closet/guncabinet, -/obj/item/weapon/gun/rifle/m41a{ - pixel_y = 6 - }, -/obj/item/weapon/gun/rifle/m41a, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_m_s) -"mYY" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "SW-out" - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/hallways/vehiclehangar) +"mYA" = ( +/obj/structure/machinery/light, +/turf/open/floor/almayer/blue, +/area/almayer/hallways/upper/fore_hallway) "mZb" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22"; @@ -53810,56 +40668,123 @@ dir = 1; name = "ship-grade camera" }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "blue" - }, +/turf/open/floor/almayer/blue/northeast, /area/almayer/command/cichallway) -"mZr" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 +"mZc" = ( +/obj/structure/sign/poster/blacklight{ + pixel_y = 35 }, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/structure/machinery/light/small{ + dir = 8 }, -/area/almayer/shipboard/port_point_defense) -"mZA" = ( -/obj/structure/machinery/door/airlock/almayer/generic/corporate, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 +/obj/structure/reagent_dispensers/beerkeg/alt_dark{ + anchored = 1; + chemical = null; + density = 0; + pixel_x = -7; + pixel_y = 10 }, -/obj/structure/disposalpipe/segment{ - dir = 4 +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_m_s) +"mZf" = ( +/obj/structure/surface/table/almayer, +/obj/effect/decal/cleanable/dirt, +/obj/item/tool/kitchen/tray{ + pixel_y = 9 }, -/obj/structure/machinery/door/poddoor/shutters/almayer/cl/quarter/door, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +/obj/item/device/flashlight/lamp{ + pixel_x = 15 + }, +/obj/item/reagent_container/food/snacks/meatpizzaslice{ + pixel_x = -5; + pixel_y = 7 + }, +/turf/open/floor/almayer/emeraldfull, +/area/almayer/living/briefing) +"mZr" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/area/almayer/command/corporateliason) +/turf/open/floor/almayer/plate, +/area/almayer/shipboard/port_point_defense) "mZF" = ( /obj/structure/machinery/door/poddoor/almayer/locked{ icon_state = "almayer_pdoor"; id = "s_engi_ext" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/engineering/upper_engineering/notunnel) +"mZL" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/turf/open/floor/almayer/plating/northeast, +/area/almayer/engineering/lower/engine_core) "mZM" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/almayer{ +/turf/open/floor/almayer/red/west, +/area/almayer/shipboard/navigation) +"mZP" = ( +/obj/structure/surface/rack, +/obj/item/tool/crowbar, +/obj/item/tool/weldingtool, +/obj/item/tool/wrench, +/obj/structure/sign/safety/restrictedarea{ + pixel_x = -17 + }, +/turf/open/floor/almayer/plate, +/area/almayer/hallways/lower/vehiclehangar) +"mZQ" = ( +/obj/structure/machinery/vending/security, +/obj/structure/machinery/light, +/obj/structure/machinery/firealarm{ dir = 8; - icon_state = "red" + pixel_x = -24 }, -/area/almayer/shipboard/navigation) -"naf" = ( -/obj/structure/closet/firecloset, -/turf/open/floor/almayer{ - icon_state = "plate" +/turf/open/floor/almayer/plate, +/area/almayer/shipboard/brig/general_equipment) +"naa" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/starboard_midship_hallway) +"nac" = ( +/obj/structure/stairs/perspective{ + dir = 1; + icon_state = "p_stair_full" + }, +/turf/open/floor/almayer/plating/northeast, +/area/almayer/engineering/lower/engine_core) +"nah" = ( +/obj/structure/machinery/status_display{ + pixel_x = 32 + }, +/obj/structure/surface/table/almayer, +/obj/structure/machinery/camera/autoname/almayer{ + dir = 1; + name = "ship-grade camera" + }, +/obj/item/desk_bell{ + anchored = 1 + }, +/turf/open/floor/almayer/red/southeast, +/area/almayer/shipboard/brig/lobby) +"naj" = ( +/obj/structure/machinery/door_control{ + id = "ARES JoeCryo"; + name = "ARES WorkingJoe Bay Shutters"; + req_one_access_txt = "91;92"; + pixel_x = -24 }, -/area/almayer/hull/upper_hull/u_f_s) +/turf/open/floor/almayer/aicore/no_build, +/area/almayer/command/airoom) "nar" = ( /obj/structure/toilet{ dir = 4 @@ -53872,30 +40797,36 @@ }, /turf/open/floor/almayer, /area/almayer/command/lifeboat) +"naw" = ( +/obj/structure/machinery/door/poddoor/shutters/almayer{ + id = "OTStore"; + name = "\improper Secure Storage"; + unacidable = 1 + }, +/turf/open/floor/almayer/test_floor4, +/area/almayer/engineering/lower/workshop/hangar) "naB" = ( /turf/closed/wall/almayer/reinforced, /area/almayer/shipboard/brig/perma) -"naQ" = ( -/obj/structure/machinery/light/small{ +"naK" = ( +/obj/structure/machinery/light{ dir = 4 }, -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" +/obj/structure/bed/chair/comfy/charlie{ + dir = 1 }, -/area/almayer/engineering/upper_engineering/port) +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer/plate, +/area/almayer/living/briefing) "naR" = ( -/obj/structure/machinery/iv_drip, /obj/effect/decal/warning_stripes{ icon_state = "E"; pixel_x = 1 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "sterile_green_corner" +/obj/structure/machinery/sleep_console{ + dir = 8 }, +/turf/open/floor/almayer/sterile_green_corner/east, /area/almayer/medical/medical_science) "naV" = ( /obj/structure/machinery/door/airlock/almayer/generic{ @@ -53909,28 +40840,53 @@ /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 2 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/living/gym) -"nbr" = ( -/obj/structure/machinery/light{ +"nbu" = ( +/obj/structure/pipes/standard/manifold/hidden/supply{ dir = 1 }, -/obj/structure/closet/secure_closet/guncabinet/red/cic_armory_shotgun, -/turf/open/floor/almayer{ - icon_state = "redfull" +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/port_midship_hallway) +"nbH" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/area/almayer/command/cic) +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/upper/fore_hallway) +"ncf" = ( +/obj/structure/machinery/cryopod/right{ + layer = 3.1; + pixel_y = 13 + }, +/obj/structure/machinery/status_display{ + pixel_x = 32 + }, +/turf/open/floor/almayer/cargo, +/area/almayer/shipboard/brig/cryo) +"nci" = ( +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/starboard_aft_hallway) +"ncl" = ( +/turf/open/floor/almayer/red, +/area/almayer/shipboard/brig/lobby) "ncp" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 9 }, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/southeast, /area/almayer/engineering/upper_engineering/starboard) +"ncx" = ( +/obj/structure/machinery/door/airlock/almayer/maint{ + dir = 1; + name = "\improper Emergency Air Storage" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/almayer/test_floor4, +/area/almayer/maint/upper/u_a_s) "ncE" = ( /obj/structure/machinery/light{ dir = 8 @@ -53938,62 +40894,40 @@ /obj/structure/machinery/autodispenser{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/medical/medical_science) -"ndx" = ( -/obj/structure/sign/safety/nonpress_ag{ - pixel_x = 15; - pixel_y = 32 - }, -/obj/structure/sign/safety/west{ - pixel_y = 32 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_s) -"ndJ" = ( -/obj/structure/machinery/status_display{ - pixel_y = 30 +"ncG" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer, +/turf/open/floor/almayer/test_floor4, +/area/almayer/hallways/upper/port) +"ncT" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SE-out"; + pixel_x = 1 }, -/turf/open/floor/almayer{ +/turf/open/floor/almayer/red/northwest, +/area/almayer/hallways/upper/port) +"ndl" = ( +/obj/structure/disposalpipe/segment{ dir = 8; - icon_state = "orange" - }, -/area/almayer/hallways/stern_hallway) -"ndM" = ( -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12 - }, -/obj/structure/prop/invuln/lattice_prop{ - icon_state = "lattice1"; - pixel_x = 16; - pixel_y = -8 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_p) -"ndQ" = ( -/obj/structure/sign/safety/hvac_old{ - pixel_x = 8; - pixel_y = -32 + icon_state = "pipe-c" }, -/turf/open/floor/almayer{ - icon_state = "plate" +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_m_p) +"ndm" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/machinery/light{ + dir = 4 }, -/area/almayer/hull/lower_hull/l_m_p) +/turf/open/floor/almayer/plate, +/area/almayer/maint/lower/cryo_cells) "ndZ" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/device/flashlight/lamp, /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, +/turf/open/floor/almayer/redfull, /area/almayer/shipboard/port_missiles) "nec" = ( /obj/structure/machinery/door/airlock/almayer/maint{ @@ -54001,57 +40935,50 @@ req_access_txt = "200"; req_one_access = null }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/powered) -"nel" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" +"nef" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 }, -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/engineering/engineering_workshop) +/turf/open/floor/almayer/plate, +/area/almayer/hallways/lower/vehiclehangar) +"ner" = ( +/turf/open/floor/almayer/red/east, +/area/almayer/lifeboat_pumps/south2) "new" = ( /obj/item/reagent_container/glass/bucket/janibucket, /obj/item/reagent_container/glass/bucket/janibucket{ pixel_y = 11 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/engineering/upper_engineering/starboard) +"neC" = ( +/obj/structure/bed/chair/bolted, +/turf/open/floor/almayer/red/north, +/area/almayer/shipboard/brig/processing) "neE" = ( /obj/structure/platform_decoration{ dir = 1 }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hallways/hangar) -"neF" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/obj/structure/transmitter{ - name = "Kitchen Telephone"; - phone_category = "Almayer"; - phone_id = "Kitchen"; - pixel_x = -8; - pixel_y = 29 - }, -/obj/structure/machinery/vending/ingredients, -/turf/open/floor/almayer{ - icon_state = "plate" +"neG" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" }, -/area/almayer/living/grunt_rnr) +/turf/open/floor/almayer/red/southeast, +/area/almayer/command/lifeboat) +"neH" = ( +/obj/item/trash/cigbutt, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_m_s) "neO" = ( /obj/structure/machinery/power/apc/almayer{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/almayer/red/north, /area/almayer/shipboard/navigation) "neS" = ( /obj/structure/sign/nosmoking_2{ @@ -54059,43 +40986,49 @@ }, /turf/open/floor/almayer, /area/almayer/living/briefing) +"neT" = ( +/obj/structure/transmitter/rotary{ + name = "CL Office Telephone"; + phone_category = "Offices"; + phone_id = "CL Office" + }, +/obj/structure/surface/table/woodentable/fancy, +/turf/open/floor/carpet, +/area/almayer/command/corporateliaison) +"neZ" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SW-out"; + layer = 2.5 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out" + }, +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/turf/open/floor/almayer/red/east, +/area/almayer/hallways/upper/port) "nff" = ( /obj/structure/surface/table/almayer, /obj/item/trash/USCMtray{ pixel_x = 6; pixel_y = 4 }, -/turf/open/floor/almayer{ - icon_state = "orangefull" - }, +/turf/open/floor/almayer/orangefull, /area/almayer/living/briefing) -"nfp" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/machinery/light, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/stern_hallway) -"nfI" = ( -/obj/structure/largecrate/random/barrel/yellow, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_s) -"nfS" = ( -/obj/item/reagent_container/food/snacks/wrapped/chunk, -/obj/structure/surface/rack, -/turf/open/floor/almayer{ - icon_state = "plate" +"nfC" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_y = 1 }, -/area/almayer/hull/upper_hull/u_a_p) +/turf/open/floor/almayer, +/area/almayer/lifeboat_pumps/north1) "ngf" = ( /obj/structure/machinery/cm_vending/sorted/medical/wall_med{ pixel_y = 25 }, /obj/structure/largecrate/random/case/double, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/almayer/red/northwest, /area/almayer/lifeboat_pumps/south1) "ngl" = ( /obj/structure/stairs/perspective{ @@ -54107,19 +41040,31 @@ }, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/north2) -"ngs" = ( -/obj/structure/largecrate/random/barrel/red, -/turf/open/floor/almayer{ - icon_state = "plate" +"ngn" = ( +/obj/structure/surface/table/almayer, +/obj/structure/machinery/computer/emails{ + pixel_x = 2; + pixel_y = 5 + }, +/turf/open/floor/almayer/emeraldfull, +/area/almayer/living/briefing) +"ngr" = ( +/obj/structure/sign/safety/intercom{ + pixel_x = -17 + }, +/obj/structure/bed/sofa/south/grey/left, +/obj/item/device/radio/intercom{ + freerange = 1; + name = "General Listening Channel"; + pixel_y = 28 }, -/area/almayer/hull/lower_hull/l_a_p) +/turf/open/floor/almayer/red/northwest, +/area/almayer/shipboard/brig/lobby) "ngw" = ( /obj/structure/surface/rack, /obj/item/mortar_shell/frag, /obj/item/mortar_shell/frag, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/squads/req) "ngA" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ @@ -54143,16 +41088,23 @@ pixel_x = -1; pixel_y = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/bravo) "ngI" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "redcorner" - }, +/turf/open/floor/almayer/redcorner/west, /area/almayer/living/briefing) +"ngK" = ( +/obj/structure/machinery/door/poddoor/almayer/open{ + id = "Hangar Lockdown"; + name = "\improper Hangar Lockdown Blast Door" + }, +/obj/structure/machinery/door/poddoor/shutters/almayer{ + id = "DeployWorkR"; + name = "\improper Workshop Shutters" + }, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer/test_floor4, +/area/almayer/hallways/lower/repair_bay) "ngU" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -54160,19 +41112,42 @@ /obj/effect/decal/cleanable/blood/oil/streak, /turf/open/floor/almayer, /area/almayer/engineering/upper_engineering/starboard) +"ngV" = ( +/obj/structure/surface/rack, +/obj/item/reagent_container/food/snacks/monkeycube/wrapped/farwacube{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/reagent_container/food/snacks/monkeycube/wrapped/neaeracube{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/reagent_container/food/snacks/monkeycube/wrapped/stokcube{ + pixel_x = -4; + pixel_y = -4 + }, +/obj/item/reagent_container/food/snacks/monkeycube/wrapped/yirencube{ + pixel_x = 4; + pixel_y = -4 + }, +/turf/open/floor/almayer/plate, +/area/almayer/command/corporateliaison) "nhi" = ( /obj/structure/bed/chair/comfy, /obj/structure/window/reinforced/ultra, -/turf/open/floor/almayer{ - icon_state = "silver" - }, +/turf/open/floor/almayer/silver, /area/almayer/living/briefing) -"nho" = ( -/obj/item/stack/sheet/metal, -/turf/open/floor/almayer{ - icon_state = "plate" +"nhr" = ( +/obj/structure/ladder{ + height = 1; + id = "engineeringladder" }, -/area/almayer/hull/upper_hull/u_a_p) +/turf/open/floor/almayer/plating/northeast, +/area/almayer/engineering/lower/workshop) +"nhw" = ( +/obj/structure/machinery/light/small, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_m_p) "nhx" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/toy/deck{ @@ -54189,8 +41164,17 @@ }, /turf/open/floor/almayer, /area/almayer/squads/charlie_delta_shared) +"nhE" = ( +/obj/structure/sign/safety/maint{ + pixel_y = 32 + }, +/obj/structure/sign/safety/storage{ + pixel_x = 15; + pixel_y = 32 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_midship_hallway) "nhG" = ( -/obj/structure/surface/table/almayer, /obj/item/newspaper{ name = "character sheet" }, @@ -54214,13 +41198,32 @@ pixel_y = -6; req_access_txt = "3" }, +/obj/structure/surface/table/almayer, /turf/open/floor/almayer, /area/almayer/shipboard/brig/cells) -"nig" = ( -/turf/open/floor/almayer{ - icon_state = "red" +"nhN" = ( +/obj/structure/sign/safety/autoopenclose{ + pixel_x = 7; + pixel_y = 32 }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/upper/u_m_p) +"nhV" = ( +/obj/structure/machinery/light/small, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/p_bow) +"nic" = ( +/turf/closed/wall/almayer/outer, +/area/almayer/maint/hull/lower/stern) +"nig" = ( +/turf/open/floor/almayer/red, /area/almayer/lifeboat_pumps/south1) +"nii" = ( +/obj/structure/machinery/status_display{ + pixel_y = -30 + }, +/turf/open/floor/almayer/orangecorner, +/area/almayer/hallways/upper/aft_hallway) "nik" = ( /obj/effect/decal/warning_stripes{ icon_state = "SE-out"; @@ -54233,9 +41236,7 @@ /obj/structure/machinery/door/airlock/almayer/maint{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/living/port_emb) "nim" = ( /obj/structure/machinery/door/airlock/almayer/engineering{ @@ -54253,32 +41254,31 @@ /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/engineering/ce_room) "nis" = ( /obj/structure/filingcabinet, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/bridgebunks) +"niF" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/turf/open/floor/almayer/plate, +/area/almayer/medical/medical_science) "niL" = ( /obj/structure/machinery/light{ dir = 1 }, /obj/structure/bed/chair, -/turf/open/floor/almayer{ - icon_state = "sterile_green" - }, +/turf/open/floor/almayer/sterile_green, /area/almayer/medical/medical_science) "niR" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_10" }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/auxiliary_officer_office) "niY" = ( /obj/effect/decal/warning_stripes{ @@ -54293,9 +41293,7 @@ pixel_x = -1; pixel_y = 2 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/charlie) "nja" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -54305,21 +41303,22 @@ /area/almayer/lifeboat_pumps/south2) "njd" = ( /obj/structure/pipes/standard/manifold/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "red" - }, +/turf/open/floor/almayer/red, /area/almayer/squads/alpha) -"njy" = ( +"njk" = ( +/obj/effect/step_trigger/clone_cleaner, /obj/effect/decal/warning_stripes{ - icon_state = "S" + icon_state = "E"; + pixel_x = 1 }, -/turf/open/floor/almayer, -/area/almayer/hallways/port_hallway) +/turf/open/floor/almayer/red/northwest, +/area/almayer/hallways/upper/port) +"njn" = ( +/turf/closed/wall/almayer, +/area/almayer/maint/upper/u_m_s) "njD" = ( /obj/structure/closet/emcloset, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/lifeboat_pumps/south1) "njJ" = ( /obj/structure/surface/table/reinforced/almayer_B, @@ -54330,39 +41329,31 @@ pixel_x = -9; pixel_y = -5 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/grunt_rnr) -"njL" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "emerald" - }, -/area/almayer/hallways/port_hallway) -"njT" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 +"njO" = ( +/obj/structure/closet/secure_closet/guncabinet/red/armory_shotgun, +/turf/open/floor/almayer/redfull, +/area/almayer/shipboard/panic) +"njS" = ( +/obj/structure/sign/safety/rad_haz{ + pixel_x = 8; + pixel_y = -32 }, -/obj/structure/sign/safety/distribution_pipes{ +/obj/structure/machinery/power/reactor, +/turf/open/floor/almayer/test_floor4, +/area/almayer/engineering/lower/engine_core) +"nkc" = ( +/obj/structure/largecrate/random/barrel/red, +/turf/open/floor/almayer/plate, +/area/almayer/maint/upper/u_a_s) +"nkj" = ( +/obj/structure/sign/safety/hvac_old{ pixel_x = 8; pixel_y = 32 }, /turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_a_p) -"nka" = ( -/obj/structure/machinery/door/poddoor/railing{ - dir = 2; - id = "vehicle_elevator_railing" - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "cargo_arrow" - }, -/area/almayer/hallways/vehiclehangar) +/area/almayer/maint/hull/lower/l_f_s) "nkn" = ( /obj/structure/pipes/vents/pump{ dir = 8 @@ -54375,70 +41366,109 @@ }, /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/emails, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/almayer/red/north, /area/almayer/shipboard/starboard_missiles) -"nlB" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "cargo_arrow" +"nkF" = ( +/obj/structure/bed/chair/bolted{ + dir = 4 }, -/area/almayer/living/briefing) -"nlH" = ( -/turf/open/floor/almayer{ +/turf/open/floor/almayer/redcorner/north, +/area/almayer/shipboard/brig/processing) +"nkH" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/obj/item/device/radio/intercom{ + freerange = 1; + name = "General Listening Channel"; + pixel_y = -28 + }, +/turf/open/floor/almayer/red/north, +/area/almayer/hallways/upper/starboard) +"nkK" = ( +/obj/structure/stairs{ + dir = 1; + icon_state = "ramptop" + }, +/obj/effect/projector{ + name = "Almayer_AresDown2"; + vector_x = 102; + vector_y = -61 + }, +/turf/open/floor/almayer/aicore/glowing/no_build/ai_floor3, +/area/almayer/command/airoom) +"nkX" = ( +/obj/structure/surface/table/almayer, +/obj/structure/sign/safety/terminal{ + pixel_x = 8; + pixel_y = 32 + }, +/obj/structure/machinery/computer/cameras/almayer/ares{ dir = 4; - icon_state = "red" + pixel_y = 5 }, -/area/almayer/shipboard/brig/cells) +/turf/open/floor/almayer/red/northwest, +/area/almayer/shipboard/brig/processing) +"nlh" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/s_bow) +"nlz" = ( +/obj/structure/machinery/brig_cell/cell_3{ + pixel_x = 32; + pixel_y = -32 + }, +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/processing) +"nlB" = ( +/turf/open/floor/almayer/cargo_arrow/north, +/area/almayer/living/briefing) +"nlI" = ( +/obj/structure/machinery/power/apc/almayer{ + dir = 1 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/upper/u_f_s) "nlW" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/largecrate/random/barrel/green, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/northeast, /area/almayer/engineering/upper_engineering/starboard) -"nmb" = ( +"nme" = ( /obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/obj/structure/sign/safety/life_support{ - pixel_x = 8; - pixel_y = 32 + icon_state = "N"; + pixel_y = 1 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/engineering/lower_engineering) +/turf/open/floor/almayer/redfull, +/area/almayer/hallways/upper/port) "nmh" = ( /obj/structure/sign/safety/distribution_pipes{ pixel_x = -17 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/west, /area/almayer/command/cichallway) -"nmx" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 +"nmp" = ( +/obj/structure/sign/safety/nonpress_ag{ + pixel_x = 15; + pixel_y = 32 }, -/obj/structure/disposalpipe/junction{ - dir = 4 +/obj/structure/sign/safety/west{ + pixel_y = 32 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/aft_hallway) -"nmD" = ( -/obj/structure/machinery/light{ - dir = 1 +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_f_s) +"nmH" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 9 }, -/obj/item/device/radio/intercom{ - freerange = 1; - name = "General Listening Channel"; - pixel_y = 28 +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" }, -/turf/open/floor/almayer, -/area/almayer/hallways/port_hallway) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/port_aft_hallway) "nmK" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk{ @@ -54447,54 +41477,31 @@ /obj/structure/sign/safety/terminal{ pixel_x = -17 }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/squads/req) "nmV" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/north, /area/almayer/command/securestorage) -"nna" = ( -/obj/structure/closet/firecloset, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/hull/upper_hull/u_f_s) -"nnc" = ( -/obj/structure/largecrate/random/case/double, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_p) +"nmY" = ( +/turf/closed/wall/almayer/reinforced, +/area/almayer/engineering/lower/workshop/hangar) "nne" = ( /obj/structure/ladder{ height = 2; id = "bridge2" }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/command/cichallway) "nnr" = ( -/obj/structure/surface/table/almayer, -/obj/item/storage/toolbox/electrical{ - pixel_y = 9 - }, -/obj/item/storage/toolbox/mechanical/green, -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12 - }, -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12; - pixel_y = 12 +/obj/structure/machinery/light{ + dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 }, -/area/almayer/hull/lower_hull/l_m_p) +/turf/open/floor/almayer/orangecorner, +/area/almayer/hallways/lower/port_aft_hallway) "nny" = ( /obj/structure/sign/safety/rewire{ pixel_x = -17; @@ -54502,62 +41509,51 @@ }, /turf/open/floor/almayer, /area/almayer/squads/alpha_bravo_shared) -"nnz" = ( -/obj/structure/sign/safety/maint{ - pixel_x = 32; - pixel_y = -8 - }, -/obj/structure/sign/safety/firingrange{ - pixel_x = 32; - pixel_y = 4 - }, -/turf/open/floor/almayer, -/area/almayer/shipboard/brig/perma) "nnD" = ( /obj/effect/step_trigger/teleporter_vector{ name = "Almayer_Down4"; vector_x = 19; vector_y = -104 }, -/turf/open/floor/almayer{ - allow_construction = 0; - icon_state = "plate" - }, +/turf/open/floor/almayer/no_build/plate, /area/almayer/stair_clone/upper) -"nnF" = ( -/obj/structure/largecrate/random/barrel/white, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_s) -"nnG" = ( -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 1 +"nnL" = ( +/obj/structure/toilet{ + dir = 8 }, -/turf/open/floor/carpet, -/area/almayer/living/commandbunks) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/command/corporateliaison) +"nnX" = ( +/obj/structure/machinery/sentry_holder/almayer, +/turf/open/floor/almayer/mono, +/area/almayer/lifeboat_pumps/south1) +"noe" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer/plate, +/area/almayer/hallways/upper/aft_hallway) "noj" = ( /obj/structure/largecrate, /obj/structure/prop/server_equipment/laptop{ pixel_x = 1; pixel_y = 10 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/squads/req) "noo" = ( -/obj/structure/window/framed/almayer, -/obj/structure/machinery/door/poddoor/shutters/almayer{ - dir = 8; - id = "bot_armory"; - name = "\improper Armory Shutters" - }, /obj/structure/machinery/door/firedoor/border_only/almayer, -/turf/open/floor/plating, -/area/almayer/shipboard/brig/armory) +/obj/structure/machinery/door/airlock/almayer/security/reinforced{ + access_modified = 1; + closeOtherId = "astroladder_s"; + name = "\improper Astronavigational Deck"; + req_access = null; + req_one_access_txt = "3;19" + }, +/turf/open/floor/almayer/test_floor4, +/area/almayer/shipboard/navigation) +"nop" = ( +/obj/structure/machinery/portable_atmospherics/powered/scrubber, +/turf/open/floor/almayer/cargo, +/area/almayer/engineering/lower/engine_core) "nos" = ( /obj/structure/machinery/chem_storage/medbay{ dir = 1 @@ -54567,17 +41563,46 @@ layer = 3; pixel_y = 18 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/medical/hydroponics) -"noV" = ( -/obj/structure/sign/safety/storage{ - pixel_x = 8; - pixel_y = 32 +"nou" = ( +/turf/open/floor/almayer/orange/east, +/area/almayer/engineering/lower) +"noy" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 1 + }, +/turf/open/floor/almayer, +/area/almayer/maint/hull/upper/u_f_p) +"noE" = ( +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 1 + }, +/turf/open/floor/almayer, +/area/almayer/maint/hull/upper/u_f_p) +"noI" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 6 }, /turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_m_p) +/area/almayer/hallways/lower/starboard_aft_hallway) +"noO" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SW-out"; + pixel_x = -1 + }, +/turf/open/floor/almayer, +/area/almayer/lifeboat_pumps/south1) +"noP" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/obj/structure/closet/toolcloset, +/turf/open/floor/almayer/orange/north, +/area/almayer/engineering/lower) "nph" = ( /obj/structure/window/framed/almayer, /obj/structure/machinery/door/firedoor/border_only/almayer{ @@ -54585,6 +41610,14 @@ }, /turf/open/floor/plating, /area/almayer/engineering/starboard_atmos) +"npq" = ( +/obj/structure/disposalpipe/down/almayer{ + dir = 8; + id = "ares_vault_in"; + name = "aicore" + }, +/turf/closed/wall/almayer/aicore/hull, +/area/almayer/command/airoom) "npt" = ( /obj/effect/decal/warning_stripes{ icon_state = "SE-out"; @@ -54596,63 +41629,48 @@ pixel_y = -1 }, /obj/structure/pipes/standard/simple/hidden/supply/no_boom, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/medical/containment) -"npB" = ( +"npw" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/almayer/cargo, +/area/almayer/hallways/lower/starboard_midship_hallway) +"npA" = ( /obj/effect/decal/warning_stripes{ - icon_state = "W"; - pixel_x = -1 + icon_state = "N"; + pixel_y = 1 }, /turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_s) -"npK" = ( -/obj/structure/surface/table/woodentable/fancy, -/obj/structure/machinery/computer/emails{ - dir = 4; - pixel_y = 2 +/area/almayer/engineering/lower/workshop/hangar) +"npO" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" }, -/turf/open/floor/wood/ship, -/area/almayer/living/commandbunks) -"npS" = ( -/obj/structure/surface/table/almayer, -/obj/item/device/flashlight/lamp{ - layer = 3.3; - pixel_x = 15 +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/obj/structure/prop/server_equipment/laptop{ - pixel_x = -2; - pixel_y = 1 +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/lobby) +"nqe" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 2 }, -/turf/open/floor/almayer{ - icon_state = "orangefull" +/obj/effect/decal/warning_stripes{ + icon_state = "W"; + pixel_x = -2 }, -/area/almayer/living/briefing) +/turf/open/floor/almayer/plate, +/area/almayer/shipboard/brig/armory) "nqx" = ( /obj/structure/pipes/standard/manifold/hidden/supply, /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/req) -"nqD" = ( -/obj/item/ammo_box/magazine/misc/mre, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_p) -"nqG" = ( -/obj/structure/machinery/light, -/obj/effect/decal/warning_stripes{ - icon_state = "SE-out"; - pixel_x = 1 - }, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "red" - }, -/area/almayer/lifeboat_pumps/south1) -"nqU" = ( -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_p) +"nqO" = ( +/obj/structure/closet/secure_closet/fridge/fish/stock, +/turf/open/floor/almayer/plate, +/area/almayer/living/grunt_rnr) "nqV" = ( /obj/structure/stairs/perspective{ dir = 1; @@ -54663,63 +41681,45 @@ }, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/north2) -"nqZ" = ( -/obj/structure/reagent_dispensers/peppertank{ - pixel_x = 30; - pixel_y = -6 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" - }, -/area/almayer/shipboard/brig/perma) -"nrt" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 +"nqW" = ( +/obj/structure/sign/safety/nonpress_0g{ + pixel_x = 32 }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 6 +/turf/open/floor/almayer/plate, +/area/almayer/engineering/lower) +"nrb" = ( +/obj/item/robot_parts/arm/l_arm, +/obj/item/robot_parts/leg/l_leg, +/obj/item/robot_parts/arm/r_arm, +/obj/item/robot_parts/leg/r_leg, +/obj/structure/surface/rack, +/obj/effect/decal/cleanable/cobweb{ + dir = 8 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" +/turf/open/floor/plating/plating_catwalk, +/area/almayer/living/synthcloset) +"nri" = ( +/obj/structure/surface/table/almayer, +/obj/structure/machinery/computer/working_joe{ + dir = 8 }, -/area/almayer/hallways/vehiclehangar) +/turf/open/floor/almayer/plate, +/area/almayer/engineering/lower/workshop) "nrw" = ( /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "emeraldcorner" - }, +/turf/open/floor/almayer/emeraldcorner/west, /area/almayer/squads/charlie) -"nrz" = ( -/obj/structure/surface/rack, -/obj/item/tool/kitchen/rollingpin, -/obj/item/tool/hatchet, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_p) "nrN" = ( /obj/structure/machinery/sleep_console, -/turf/open/floor/almayer{ - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side, /area/almayer/medical/lower_medical_medbay) "nrO" = ( /obj/structure/bed/chair/comfy{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/north, /area/almayer/engineering/upper_engineering/starboard) "nsc" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -54727,20 +41727,43 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/lifeboat_pumps/south1) -"nsu" = ( -/obj/structure/machinery/door/airlock/almayer/security{ - dir = 2; - name = "\improper Security Checkpoint" +"nsd" = ( +/obj/structure/surface/table/almayer, +/obj/item/storage/box/lights/bulbs{ + pixel_x = 3; + pixel_y = 7 }, -/obj/structure/machinery/door/poddoor/shutters/almayer{ - dir = 2; - id = "safe_armory"; - name = "\improper Hangar Armory Shutters" +/obj/item/storage/box/lights/mixed, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_f_s) +"nso" = ( +/obj/structure/sign/safety/maint{ + pixel_x = 8; + pixel_y = 32 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/repair_bay) +"nsr" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer/green/north, +/area/almayer/hallways/upper/fore_hallway) +"nsH" = ( +/turf/open/floor/almayer/orange/southwest, +/area/almayer/hallways/upper/midship_hallway) +"nsQ" = ( +/obj/structure/sink{ + dir = 4; + pixel_x = 11 + }, +/obj/structure/mirror{ + pixel_x = 29 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 }, -/area/almayer/hull/lower_hull/l_f_s) +/turf/open/floor/almayer/dark_sterile, +/area/almayer/living/captain_mess) "nsY" = ( /turf/closed/wall/almayer, /area/almayer/living/port_emb) @@ -54763,53 +41786,11 @@ /obj/structure/sign/poster/propaganda{ pixel_y = 34 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/almayer/green/north, /area/almayer/squads/req) "ntj" = ( /turf/closed/wall/almayer/reinforced, /area/almayer/command/computerlab) -"ntm" = ( -/obj/structure/sign/safety/maint{ - pixel_x = -17; - pixel_y = -8 - }, -/obj/structure/machinery/door_control{ - id = "CMP Office Shutters"; - name = "CMP Office Shutters"; - pixel_x = -24; - pixel_y = 8; - req_one_access_txt = "24;31" - }, -/turf/open/floor/almayer, -/area/almayer/shipboard/brig/main_office) -"ntr" = ( -/obj/structure/machinery/portable_atmospherics/hydroponics, -/obj/item/seeds/goldappleseed, -/obj/structure/machinery/alarm/almayer{ - dir = 1 - }, -/turf/open/floor/wood/ship, -/area/almayer/command/corporateliason) -"ntt" = ( -/obj/item/stool, -/obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/hallways/vehiclehangar) -"ntu" = ( -/obj/structure/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/shipboard/brig/cells) "ntx" = ( /obj/structure/machinery/door/airlock/almayer/generic{ id = "Alpha_2"; @@ -54818,83 +41799,87 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/living/port_emb) -"ntA" = ( -/obj/structure/machinery/light/small, -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_s) "ntI" = ( /obj/structure/machinery/light{ dir = 4 }, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/north2) -"nub" = ( -/obj/structure/bed/chair{ - dir = 8 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "green" - }, -/area/almayer/living/starboard_garden) -"nun" = ( -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12 - }, -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12; - pixel_y = 12 - }, -/turf/open/floor/almayer{ - icon_state = "plate" +"nux" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer, +/obj/structure/machinery/door/poddoor/almayer/open{ + dir = 4; + id = "perma_lockdown_1"; + name = "\improper Perma Lockdown Shutter" }, -/area/almayer/hull/lower_hull/l_f_s) +/turf/open/floor/almayer/test_floor4, +/area/almayer/shipboard/brig/perma) "nuA" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, /turf/open/floor/almayer, /area/almayer/squads/alpha) -"nuI" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/obj/structure/surface/table/almayer, -/obj/item/tool/hand_labeler, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_side" - }, -/area/almayer/medical/chemistry) "nuK" = ( /obj/structure/surface/table/almayer, /obj/item/reagent_container/food/condiment/hotsauce/franks{ pixel_x = 2; pixel_y = 10 }, -/turf/open/floor/almayer{ - icon_state = "bluefull" - }, +/turf/open/floor/almayer/bluefull, /area/almayer/living/briefing) +"nuM" = ( +/turf/open/floor/almayer/red/southwest, +/area/almayer/lifeboat_pumps/south2) "nuN" = ( /obj/effect/landmark/start/marine/medic/alpha, /obj/effect/landmark/late_join/alpha, /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/alpha) -"nuY" = ( -/obj/structure/closet, -/turf/open/floor/almayer{ - icon_state = "plate" +"nuZ" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "SW-out" + }, +/turf/open/floor/almayer/red, +/area/almayer/shipboard/brig/starboard_hallway) +"nve" = ( +/obj/structure/janitorialcart, +/obj/item/tool/mop, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_m_p) +"nvz" = ( +/turf/open/floor/almayer/red/northeast, +/area/almayer/lifeboat_pumps/south2) +"nvG" = ( +/obj/structure/machinery/light{ + dir = 8 + }, +/obj/structure/sink{ + pixel_y = 16 + }, +/obj/structure/mirror{ + pixel_y = 21 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 }, -/area/almayer/hull/upper_hull/u_m_s) +/turf/open/floor/almayer/dark_sterile, +/area/almayer/living/numbertwobunks) +"nvI" = ( +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_a_s) "nvM" = ( /obj/structure/window/framed/almayer/white, /obj/structure/machinery/door/firedoor/border_only/almayer{ @@ -54910,10 +41895,20 @@ /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/delta) +"nvX" = ( +/obj/structure/surface/table/almayer, +/obj/item/tool/screwdriver{ + pixel_x = -1; + pixel_y = 2 + }, +/obj/item/stack/cable_coil{ + pixel_x = 8; + pixel_y = -4 + }, +/turf/open/floor/plating, +/area/almayer/maint/lower/constr) "nwb" = ( /obj/structure/pipes/vents/scrubber{ dir = 1 @@ -54927,83 +41922,38 @@ /obj/structure/pipes/standard/simple/hidden/supply/no_boom{ dir = 4 }, -/turf/open/floor/almayer/research/containment/corner{ - dir = 4 - }, +/turf/open/floor/almayer/research/containment/corner/east, /area/almayer/medical/containment/cell) -"nwu" = ( -/obj/structure/closet/crate/freezer{ - desc = "A freezer crate. Someone has written 'open on christmas' in marker on the top." - }, -/obj/item/reagent_container/food/snacks/mre_pack/xmas2, -/obj/item/reagent_container/food/snacks/mre_pack/xmas1, -/obj/item/reagent_container/food/snacks/mre_pack/xmas3, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_s) -"nww" = ( -/obj/item/device/radio/intercom{ - freerange = 1; - name = "General Listening Channel"; - pixel_y = 28 - }, -/obj/structure/machinery/cm_vending/clothing/staff_officer_armory, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, -/area/almayer/command/cic) "nwx" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - icon_state = "red" - }, +/turf/open/floor/almayer/red, /area/almayer/shipboard/port_missiles) -"nwz" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - allow_construction = 0 - }, -/area/almayer/shipboard/brig/lobby) "nwD" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/north, /area/almayer/command/cic) "nwG" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "plating_striped" - }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/almayer/plating_striped/west, /area/almayer/squads/req) "nwL" = ( /obj/structure/bed, /obj/item/bedsheet/brown, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/pilotbunks) "nwU" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/engineering/upper_engineering/starboard) "nwW" = ( /obj/structure/machinery/power/apc/almayer{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/almayer/red/north, /area/almayer/shipboard/port_missiles) "nwY" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -55013,37 +41963,30 @@ icon_state = "E"; pixel_x = 1 }, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "green" - }, +/turf/open/floor/almayer/green/southeast, /area/almayer/squads/req) -"nxq" = ( -/obj/structure/machinery/door/airlock/almayer/security/glass/reinforced{ - dir = 1; - name = "\improper Warden Office" - }, -/obj/structure/machinery/door/poddoor/shutters/almayer/open{ - dir = 2; - id = "Warden Office Shutters"; - name = "\improper Privacy Shutters" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/shipboard/brig/main_office) -"nxK" = ( -/obj/structure/sign/safety/high_voltage{ - pixel_y = -32 - }, -/obj/structure/sign/safety/hazard{ - pixel_x = 15; - pixel_y = -32 - }, -/turf/open/floor/almayer{ - icon_state = "blue" +"nxb" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer/orange/northeast, +/area/almayer/engineering/lower/workshop) +"nxe" = ( +/obj/structure/surface/table/reinforced/almayer_B, +/obj/effect/spawner/random/toolbox, +/obj/item/stack/sheet/metal{ + desc = "Semiotic Standard denoting the nearby presence of coffee: the lifeblood of any starship crew."; + icon = 'icons/obj/structures/props/semiotic_standard.dmi'; + icon_state = "coffee"; + name = "coffee semiotic"; + pixel_x = 20; + pixel_y = 12; + singular_name = "coffee semiotic" }, -/area/almayer/hallways/aft_hallway) +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_a_p) +"nxx" = ( +/obj/structure/machinery/light, +/turf/open/floor/almayer/orange, +/area/almayer/engineering/lower) "nyj" = ( /obj/effect/decal/medical_decals{ icon_state = "docdecal2" @@ -55054,49 +41997,30 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/medical/lower_medical_lobby) "nyw" = ( /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 2 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/living/briefing) -"nyz" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_p) -"nyG" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "green" - }, -/area/almayer/hallways/starboard_hallway) +"nyK" = ( +/turf/open/floor/almayer/greencorner, +/area/almayer/hallways/upper/fore_hallway) "nyQ" = ( /turf/open/floor/almayer, /area/almayer/squads/charlie_delta_shared) -"nza" = ( -/obj/structure/pipes/vents/scrubber{ - dir = 4 - }, -/obj/structure/bed/chair/comfy/charlie{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "emeraldfull" +"nyS" = ( +/obj/effect/step_trigger/clone_cleaner, +/turf/open/floor/almayer/red/east, +/area/almayer/hallways/upper/port) +"nzt" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 10 }, -/area/almayer/living/briefing) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/port_aft_hallway) "nzv" = ( /obj/structure/filingcabinet/filingcabinet, /obj/item/clipboard, @@ -55104,31 +42028,12 @@ /obj/item/folder/black, /obj/item/folder/black, /obj/item/folder/white, -/turf/open/floor/almayer{ - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side, /area/almayer/medical/upper_medical) -"nzA" = ( -/obj/structure/machinery/light{ - dir = 8 - }, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "blue" - }, -/area/almayer/hallways/aft_hallway) -"nzI" = ( -/obj/structure/machinery/light{ - dir = 8 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "red" - }, -/area/almayer/command/lifeboat) +"nzD" = ( +/obj/effect/step_trigger/clone_cleaner, +/turf/open/floor/almayer, +/area/almayer/hallways/upper/port) "nzO" = ( /obj/effect/decal/cleanable/blood/oil, /obj/effect/decal/warning_stripes{ @@ -55140,80 +42045,106 @@ }, /turf/open/floor/almayer, /area/almayer/squads/req) -"nBa" = ( -/obj/structure/machinery/cm_vending/sorted/cargo_guns/squad{ - req_access = null; - req_one_access = null; - req_one_access_txt = "15;16;21"; - vend_x_offset = 0; - vend_y_offset = 0 +"nzT" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 1 }, -/obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/structure/machinery/door/airlock/multi_tile/almayer/secdoor/glass/reinforced{ + closeOtherId = "brignorth"; + name = "\improper Brig Lobby" }, -/area/almayer/squads/alpha_bravo_shared) -"nBb" = ( -/turf/open/floor/almayer{ - dir = 5; - icon_state = "red" +/turf/open/floor/almayer/test_floor4, +/area/almayer/shipboard/brig/starboard_hallway) +"nAd" = ( +/obj/structure/machinery/power/apc/almayer{ + dir = 4 }, -/area/almayer/shipboard/brig/main_office) -"nBc" = ( -/obj/structure/largecrate/random, -/turf/open/floor/almayer{ - icon_state = "plate" +/turf/open/floor/almayer, +/area/almayer/engineering/lower/engine_core) +"nAm" = ( +/obj/effect/landmark/yautja_teleport, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_f_s) +"nAv" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + pixel_y = 1 }, -/area/almayer/hull/upper_hull/u_f_s) -"nBo" = ( +/turf/open/floor/almayer, +/area/almayer/lifeboat_pumps/north1) +"nAY" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer, -/area/almayer/shipboard/brig/general_equipment) -"nBu" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 1 +/turf/open/floor/plating/plating_catwalk, +/area/almayer/engineering/lower) +"nBa" = ( +/obj/structure/machinery/cm_vending/sorted/cargo_guns/squad{ + req_access = null; + req_one_access = null; + req_one_access_txt = "15;16;21"; + vend_x_offset = 0; + vend_y_offset = 0 }, -/obj/structure/sign/safety/restrictedarea{ - pixel_x = -17; - pixel_y = -8 +/obj/structure/machinery/light, +/turf/open/floor/almayer/plate, +/area/almayer/squads/alpha_bravo_shared) +"nBi" = ( +/obj/structure/surface/table/almayer, +/obj/item/device/flashlight/lamp{ + pixel_x = 4; + pixel_y = 4 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" +/obj/item/clothing/glasses/monocle, +/obj/item/reagent_container/food/drinks/coffee{ + pixel_x = -7; + pixel_y = -2 }, -/area/almayer/shipboard/brig/perma) -"nBw" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "redcorner" +/obj/item/weapon/pole/fancy_cane{ + pixel_x = 5 }, +/turf/open/floor/wood/ship, +/area/almayer/command/corporateliaison) +"nBw" = ( +/turf/open/floor/almayer/redcorner/north, /area/almayer/living/briefing) "nBE" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/living/pilotbunks) -"nBW" = ( -/obj/structure/sign/safety/maint{ - pixel_x = -17 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" +"nBF" = ( +/obj/structure/largecrate/random/barrel/white, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_f_p) +"nBJ" = ( +/turf/closed/wall/almayer/outer, +/area/almayer/maint/hull/lower/s_bow) +"nBK" = ( +/turf/open/floor/almayer/red/west, +/area/almayer/lifeboat_pumps/north2) +"nBV" = ( +/obj/structure/surface/table/almayer, +/obj/item/storage/firstaid/o2, +/turf/open/floor/almayer/plate, +/area/almayer/hallways/lower/starboard_umbilical) +"nCe" = ( +/obj/structure/machinery/prop/almayer/computer{ + pixel_y = 20 }, -/area/almayer/hallways/aft_hallway) +/turf/open/floor/almayer/plate, +/area/almayer/hallways/lower/repair_bay) "nCf" = ( /obj/effect/landmark/start/marine/tl/charlie, /obj/effect/landmark/late_join/charlie, /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/charlie) +"nCn" = ( +/obj/structure/pipes/vents/pump/on, +/turf/open/floor/almayer/plate, +/area/almayer/engineering/lower/engine_core) "nCp" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -55226,27 +42157,76 @@ name = "General Listening Channel"; pixel_y = -29 }, -/turf/open/floor/almayer{ - icon_state = "orange" - }, +/turf/open/floor/almayer/orange, /area/almayer/squads/bravo) +"nCx" = ( +/obj/structure/surface/table/woodentable/fancy, +/obj/item/reagent_container/food/drinks/bottle/whiskey{ + pixel_x = -5; + pixel_y = 16 + }, +/obj/item/reagent_container/food/drinks/bottle/whiskey{ + desc = "A premium double-malt whiskey, this bottle was gifted to the Captain of the USS Almayer after the completion of the ship's space trials by the VADM. himself."; + pixel_x = 3; + pixel_y = 16 + }, +/obj/item/reagent_container/food/drinks/bottle/whiskey{ + pixel_x = 11; + pixel_y = 16 + }, +/obj/item/storage/box/drinkingglasses{ + pixel_x = -1; + pixel_y = 2 + }, +/obj/item/clothing/mask/cigarette/pipe{ + layer = 2.8; + pixel_x = 14 + }, +/turf/open/floor/wood/ship, +/area/almayer/living/commandbunks) +"nCD" = ( +/turf/open/floor/almayer/red, +/area/almayer/shipboard/brig/mp_bunks) +"nCM" = ( +/obj/structure/largecrate/random/secure, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_f_s) +"nCR" = ( +/obj/structure/sink{ + dir = 4; + pixel_x = 11 + }, +/obj/structure/mirror{ + pixel_x = 29 + }, +/obj/structure/machinery/light{ + unacidable = 1; + unslashable = 1 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/turf/open/floor/almayer/dark_sterile, +/area/almayer/living/auxiliary_officer_office) "nCT" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 10 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/command/lifeboat) -"nDh" = ( -/obj/structure/transmitter/rotary{ - name = "CL Office Telephone"; - phone_category = "Almayer"; - phone_id = "CL Office" +"nDa" = ( +/obj/structure/machinery/power/terminal{ + dir = 4 }, -/obj/structure/surface/table/woodentable/fancy, -/turf/open/floor/carpet, -/area/almayer/command/corporateliason) +/turf/open/floor/almayer/tcomms, +/area/almayer/engineering/lower/engine_core) +"nDb" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_umbilical) "nDo" = ( /obj/structure/closet/l3closet/general, /obj/structure/window/reinforced{ @@ -55259,29 +42239,37 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/medical/medical_science) -"nDL" = ( -/obj/structure/barricade/handrail{ - dir = 4 +"nDy" = ( +/obj/structure/bed/chair/comfy/ares{ + dir = 1 }, -/obj/structure/surface/rack, -/obj/item/stack/tile/carpet{ - amount = 20 +/obj/structure/pipes/vents/pump/no_boom/gas{ + vent_tag = "Core Chamber" }, -/obj/item/stack/sheet/wood/large_stack, -/turf/open/floor/almayer{ - icon_state = "cargo" +/turf/open/floor/almayer/no_build/plating, +/area/almayer/command/airoom) +"nDH" = ( +/obj/structure/machinery/light/small{ + dir = 1; + pixel_y = 20 }, -/area/almayer/engineering/upper_engineering/port) +/turf/open/floor/almayer/plate, +/area/almayer/maint/upper/u_a_s) "nDM" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/disposalpipe/segment, /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/req) -"nDV" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer, -/area/almayer/command/cichallway) +"nEc" = ( +/obj/structure/largecrate/random/case/small, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/p_bow) +"nEl" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_m_p) "nEo" = ( /obj/structure/surface/table/almayer, /obj/item/storage/donut_box{ @@ -55290,29 +42278,6 @@ }, /turf/open/floor/almayer, /area/almayer/squads/charlie) -"nEs" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_umbilical) -"nEz" = ( -/obj/effect/landmark/yautja_teleport, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_p) -"nEA" = ( -/obj/structure/prop/holidays/string_lights{ - pixel_y = 27 - }, -/obj/structure/machinery/light/small{ - dir = 4 - }, -/obj/structure/surface/table/almayer, -/obj/item/storage/box/drinkingglasses, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_s) "nEF" = ( /obj/structure/machinery/conveyor_switch{ id = "gym_1"; @@ -55320,13 +42285,6 @@ }, /turf/open/floor/almayer, /area/almayer/living/gym) -"nEG" = ( -/obj/structure/largecrate/random/case, -/obj/structure/machinery/access_button/airlock_exterior, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_s) "nEH" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/light{ @@ -55340,37 +42298,41 @@ pixel_x = -6; pixel_y = -5 }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/medical/medical_science) "nEJ" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/medical/lower_medical_lobby) +"nEO" = ( +/mob/living/simple_animal/mouse/brown, +/turf/open/floor/almayer/plate, +/area/almayer/maint/lower/s_bow) +"nEZ" = ( +/obj/structure/largecrate/random/secure, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/lower/s_bow) "nFm" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/tool/surgery/scalpel, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/command/cichallway) -"nFr" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "greencorner" - }, -/area/almayer/hallways/aft_hallway) "nFs" = ( /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/shipboard/starboard_point_defense) +"nFA" = ( +/obj/structure/bed/chair/comfy/bravo{ + dir = 1 + }, +/obj/structure/prop/holidays/string_lights{ + dir = 8; + pixel_x = 29 + }, +/turf/open/floor/almayer/plate, +/area/almayer/living/briefing) "nFI" = ( /obj/structure/surface/table/almayer, /obj/structure/disposalpipe/segment{ @@ -55381,7 +42343,6 @@ id = "kitchen"; name = "\improper Kitchen Shutters" }, -/obj/structure/machinery/door/firedoor/border_only/almayer, /obj/item/storage/box/drinkingglasses, /obj/item/storage/box/drinkingglasses, /obj/structure/sign/poster{ @@ -55390,9 +42351,7 @@ name = "EAT - poster"; pixel_y = 30 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/grunt_rnr) "nFK" = ( /obj/structure/bed/chair{ @@ -55400,16 +42359,6 @@ }, /turf/open/floor/almayer, /area/almayer/squads/alpha_bravo_shared) -"nFV" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/structure/disposalpipe/segment, -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/starboard_hallway) "nFX" = ( /obj/structure/machinery/door/poddoor/shutters/almayer{ dir = 2; @@ -55419,16 +42368,8 @@ /obj/effect/decal/warning_stripes{ icon_state = "N" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/engineering/upper_engineering) -"nGc" = ( -/obj/structure/machinery/vending/hydroseeds, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_s) "nGh" = ( /obj/structure/bed/chair{ buckling_y = 5; @@ -55444,53 +42385,73 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/shipboard/port_point_defense) -"nHg" = ( -/obj/structure/machinery/disposal, -/obj/structure/disposalpipe/trunk{ +"nGk" = ( +/obj/structure/machinery/light/small, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_f_p) +"nGM" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_a_p) +"nGY" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/almayer/cargo, +/area/almayer/lifeboat_pumps/north2) +"nHu" = ( +/obj/structure/largecrate/random/barrel/yellow, +/obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "red" +/turf/open/floor/almayer, +/area/almayer/maint/hull/upper/u_f_s) +"nHG" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" }, -/area/almayer/shipboard/brig/main_office) -"nHF" = ( -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_m_s) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_m_p) "nHJ" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "plating_striped" - }, +/turf/open/floor/almayer/plating_striped/east, /area/almayer/living/cryo_cells) -"nHV" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 +"nHL" = ( +/obj/structure/machinery/vending/coffee, +/obj/structure/sign/safety/coffee{ + pixel_x = -17; + pixel_y = -8 }, -/obj/structure/machinery/light{ - dir = 1 +/obj/structure/sign/safety/rewire{ + pixel_x = 8; + pixel_y = 32 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" +/turf/open/floor/almayer/plate, +/area/almayer/engineering/lower/workshop) +"nHX" = ( +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12 }, -/area/almayer/shipboard/brig/general_equipment) -"nIj" = ( -/turf/open/floor/almayer{ - icon_state = "green" +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12; + pixel_y = 12 }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_f_s) +"nIj" = ( +/turf/open/floor/almayer/green, /area/almayer/living/offices) "nIt" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "redcorner" - }, +/turf/open/floor/almayer/redcorner/east, /area/almayer/shipboard/starboard_missiles) "nID" = ( /obj/structure/machinery/light{ @@ -55512,141 +42473,94 @@ pixel_x = 8; pixel_y = 32 }, -/turf/open/floor/almayer{ - icon_state = "bluefull" - }, +/turf/open/floor/almayer/bluefull, /area/almayer/command/cichallway) "nIE" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; pixel_y = 1 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/almayer/shipboard/port_missiles) "nIG" = ( /obj/structure/machinery/power/apc/almayer{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/northeast, /area/almayer/command/securestorage) +"nIN" = ( +/turf/closed/wall/almayer, +/area/almayer/maint/upper/u_m_p) "nIS" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, /turf/open/floor/almayer, /area/almayer/living/basketball) -"nIW" = ( +"nJa" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 9 }, -/obj/structure/bed/chair/comfy/bravo{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "orangefull" - }, -/area/almayer/living/briefing) -"nJo" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer, -/area/almayer/shipboard/brig/main_office) +/turf/open/floor/almayer/orangecorner, +/area/almayer/engineering/lower/engine_core) "nJs" = ( /obj/structure/largecrate/random/case, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/lifeboat_pumps/south1) "nJu" = ( /obj/item/newspaper, /turf/open/floor/almayer, /area/almayer/command/lifeboat) -"nJy" = ( -/obj/structure/sign/safety/bathunisex{ - pixel_x = -18 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_p) "nJH" = ( /obj/structure/machinery/computer/cameras/almayer{ dir = 8; pixel_x = 17 }, -/turf/open/floor/almayer/no_build{ - icon_state = "plating" - }, +/turf/open/floor/almayer/no_build/plating, /area/almayer/command/airoom) "nKq" = ( /obj/structure/machinery/status_display{ pixel_x = 16; pixel_y = -30 }, -/turf/open/floor/almayer{ - icon_state = "red" - }, +/turf/open/floor/almayer/red, /area/almayer/command/lifeboat) -"nKs" = ( -/obj/structure/machinery/cm_vending/clothing/dress{ - pixel_y = 0; - req_access = list(1) - }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/living/commandbunks) -"nKJ" = ( -/obj/structure/machinery/light{ - dir = 4 - }, -/turf/open/floor/wood/ship, -/area/almayer/command/corporateliason) -"nLa" = ( -/obj/structure/bed/chair{ - dir = 4 +"nKO" = ( +/obj/structure/disposalpipe/trunk{ + dir = 1 }, -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_f_p) -"nLb" = ( -/obj/effect/decal/cleanable/blood, -/obj/structure/prop/broken_arcade, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/structure/disposaloutlet{ + density = 0; + desc = "An outlet for the pneumatic delivery system."; + icon_state = "delivery_outlet"; + name = "take-ins"; + pixel_x = 7; + pixel_y = 28; + range = 0 }, -/area/almayer/hull/upper_hull/u_m_p) -"nLg" = ( -/obj/effect/projector{ - name = "Almayer_Up2"; - vector_x = -1; - vector_y = 100 +/turf/open/floor/almayer/aicore/no_build, +/area/almayer/command/airoom) +"nKP" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" }, -/turf/open/floor/almayer{ - allow_construction = 0; - icon_state = "plate" +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 8 }, -/area/almayer/hallways/starboard_hallway) +/turf/open/floor/almayer/plate, +/area/almayer/engineering/lower/workshop) "nLk" = ( /obj/effect/decal/cleanable/blood/oil, /obj/structure/machinery/power/apc/almayer{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/east, /area/almayer/engineering/upper_engineering/port) +"nLp" = ( +/turf/closed/wall/almayer/outer, +/area/almayer/maint/hull/upper/u_f_p) "nLt" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "cargo_arrow" - }, +/turf/open/floor/almayer/cargo_arrow/north, /area/almayer/squads/req) "nLI" = ( /obj/structure/sign/safety/terminal{ @@ -55658,45 +42572,15 @@ density = 0; pixel_y = 16 }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/medical/medical_science) "nLJ" = ( /obj/effect/decal/warning_stripes{ icon_state = "E"; pixel_x = 1 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/almayer/engineering/upper_engineering) -"nLK" = ( -/obj/structure/machinery/cm_vending/sorted/marine_food, -/turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_p) -"nLZ" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/structure/machinery/door_control{ - id = "laddernortheast"; - name = "North East Ladders Shutters"; - pixel_y = -25; - req_one_access_txt = "2;3;12;19"; - throw_range = 15 - }, -/turf/open/floor/almayer{ - icon_state = "green" - }, -/area/almayer/hallways/starboard_hallway) -"nMc" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 6 - }, -/turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_s) "nMe" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -55705,148 +42589,135 @@ icon_state = "E"; pixel_x = 1 }, -/turf/open/floor/almayer/research/containment/corner{ - dir = 1 - }, +/turf/open/floor/almayer/research/containment/corner/north, /area/almayer/medical/containment/cell) "nMp" = ( /obj/structure/surface/table/almayer, /obj/item/reagent_container/food/condiment/hotsauce/franks, -/turf/open/floor/almayer{ - icon_state = "bluefull" - }, +/turf/open/floor/almayer/bluefull, /area/almayer/living/briefing) -"nMu" = ( -/turf/open/floor/almayer{ - dir = 9; - icon_state = "red" - }, -/area/almayer/shipboard/brig/general_equipment) -"nMz" = ( -/obj/structure/sign/safety/cryo{ - pixel_x = 35 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_s) -"nMM" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "NE-out"; - pixel_y = 2 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_s) "nMV" = ( /obj/structure/machinery/cm_vending/sorted/medical/wall_med{ pixel_y = 25 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/north, /area/almayer/medical/upper_medical) +"nNg" = ( +/obj/structure/bed, +/obj/item/bedsheet/red, +/turf/open/floor/wood/ship, +/area/almayer/shipboard/brig/chief_mp_office) "nNt" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/almayer/red/north, /area/almayer/shipboard/port_missiles) "nNv" = ( /obj/structure/machinery/vending/cigarette{ density = 0; pixel_y = 16 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/north, /area/almayer/shipboard/brig/cic_hallway) +"nNx" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_x = 1; + pixel_y = 1 + }, +/turf/open/floor/almayer/red/southwest, +/area/almayer/hallways/upper/port) "nNA" = ( -/obj/structure/machinery/cryopod{ - pixel_y = 6 +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 }, -/turf/open/floor/almayer{ - icon_state = "cargo" +/obj/effect/decal/warning_stripes{ + icon_state = "S"; + layer = 3.3 }, -/area/almayer/hull/upper_hull/u_m_p) +/turf/open/floor/almayer/aicore/no_build/ai_floor2, +/area/almayer/command/airoom) "nNH" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "emeraldcorner" - }, +/turf/open/floor/almayer/emeraldcorner/north, /area/almayer/living/briefing) -"nNQ" = ( -/obj/structure/machinery/firealarm{ - dir = 4; - pixel_x = 24 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" - }, -/area/almayer/shipboard/brig/main_office) +"nNT" = ( +/obj/item/tool/weldingtool, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_a_p) "nNV" = ( /obj/structure/bed/chair{ dir = 8; pixel_y = 3 }, -/turf/open/floor/almayer{ - icon_state = "emeraldfull" - }, +/turf/open/floor/almayer/emeraldfull, /area/almayer/squads/charlie_delta_shared) "nNX" = ( /obj/structure/machinery/door/airlock/almayer/secure/reinforced{ name = "\improper Evacuation Airlock PU-1"; req_access = null }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/powered) "nNY" = ( /obj/effect/decal/warning_stripes{ icon_state = "E" }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/almayer/engineering/upper_engineering) -"nOe" = ( -/obj/structure/window/framed/almayer/hull/hijack_bustable, -/obj/structure/machinery/door/poddoor/almayer/open{ - dir = 4; - id = "perma_lockdown"; - name = "\improper Perma Lockdown Shutter" +"nOb" = ( +/obj/structure/surface/rack, +/obj/item/reagent_container/food/drinks/bottle/sake{ + pixel_x = 5; + pixel_y = 5 }, -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 8 +/obj/item/reagent_container/food/drinks/bottle/sake{ + pixel_x = 5; + pixel_y = 5 }, -/turf/open/floor/plating, -/area/almayer/shipboard/brig/perma) -"nOG" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 +/obj/item/reagent_container/food/drinks/bottle/sake, +/obj/item/reagent_container/food/drinks/bottle/sake{ + pixel_x = -4 + }, +/obj/structure/machinery/light, +/turf/open/floor/almayer/plate, +/area/almayer/command/corporateliaison) +"nOp" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 }, +/turf/open/floor/almayer/test_floor4, +/area/almayer/hallways/upper/midship_hallway) +"nOx" = ( +/obj/item/stack/sheet/metal, /turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_a_p) +/area/almayer/maint/hull/upper/u_a_p) +"nOC" = ( +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/execution) +"nOX" = ( +/obj/structure/surface/table/reinforced/almayer_B, +/obj/structure/machinery/computer/secure_data{ + dir = 1 + }, +/turf/open/floor/almayer/plate, +/area/almayer/shipboard/panic) "nPa" = ( /obj/structure/machinery/cm_vending/sorted/medical/wall_med{ pixel_y = 25 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/almayer/red/northeast, /area/almayer/lifeboat_pumps/south1) +"nPb" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SW-out"; + layer = 2.5 + }, +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/execution) "nPf" = ( /obj/structure/machinery/computer/cameras/almayer/containment{ dir = 8; @@ -55866,9 +42737,7 @@ req_one_access_txt = "19;28" }, /obj/structure/pipes/standard/simple/hidden/supply/no_boom, -/turf/open/floor/almayer{ - icon_state = "sterile_green" - }, +/turf/open/floor/almayer/sterile_green, /area/almayer/medical/containment) "nPs" = ( /obj/structure/prop/invuln/overhead_pipe{ @@ -55880,18 +42749,13 @@ /obj/structure/bed/chair/comfy{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/pilotbunks) "nPB" = ( /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/almayer/blue/north, /area/almayer/hallways/hangar) "nPE" = ( /obj/structure/surface/table/almayer, @@ -55902,10 +42766,12 @@ dir = 8; name = "ship-grade camera" }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/medical/medical_science) +"nPO" = ( +/obj/structure/machinery/cm_vending/sorted/tech/comp_storage, +/turf/open/floor/almayer/orange/northeast, +/area/almayer/maint/hull/lower/l_m_s) "nPT" = ( /obj/structure/machinery/door/poddoor/shutters/almayer{ desc = "These shutters seem to be pretty poorly mantained and almost wedged into the room.. you're not sure if these are official."; @@ -55913,79 +42779,100 @@ id = "crate_room4"; name = "dilapidated storage shutters" }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/req) -"nQg" = ( -/obj/structure/sink{ - pixel_y = 24 +"nPY" = ( +/obj/structure/machinery/light{ + dir = 8 }, +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/turf/open/floor/almayer/red/southwest, +/area/almayer/command/lifeboat) +"nQn" = ( +/obj/structure/surface/rack, +/obj/item/storage/toolbox/mechanical, +/obj/effect/spawner/random/tool, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/s_bow) +"nQo" = ( +/obj/effect/landmark/yautja_teleport, /turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_a_s) +/area/almayer/maint/hull/lower/l_m_p) "nQv" = ( /obj/structure/machinery/power/apc/almayer{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "plating_striped" - }, +/turf/open/floor/almayer/plating_striped/west, /area/almayer/squads/req) -"nQx" = ( -/obj/structure/machinery/light, -/turf/open/floor/almayer, -/area/almayer/hallways/aft_hallway) -"nQH" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 10 +"nQA" = ( +/turf/open/floor/carpet, +/area/almayer/command/corporateliaison) +"nRA" = ( +/obj/effect/projector{ + name = "Almayer_Up4"; + vector_x = -19; + vector_y = 104 }, -/turf/open/floor/wood/ship, -/area/almayer/living/commandbunks) -"nRq" = ( -/obj/effect/decal/cleanable/blood/oil/streak, +/turf/open/floor/almayer/no_build, +/area/almayer/hallways/lower/port_midship_hallway) +"nRE" = ( /obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 + dir = 9 }, /turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_s) +/area/almayer/maint/hull/upper/u_f_s) "nRH" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "silver" - }, +/turf/open/floor/almayer/silver, /area/almayer/shipboard/brig/cic_hallway) -"nRQ" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer, -/obj/structure/machinery/door/airlock/almayer/command/reinforced{ - name = "\improper Commanding Officer's Quarters"; - req_access = null; - req_access_txt = "31" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/living/commandbunks) +"nRN" = ( +/obj/structure/largecrate/random/case/small, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_m_s) "nRR" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/almayer/red/north, /area/almayer/shipboard/port_missiles) "nRX" = ( /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer, /area/almayer/engineering/upper_engineering) -"nSj" = ( -/obj/structure/machinery/cm_vending/sorted/cargo_guns/cargo/blend, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "green" +"nSk" = ( +/obj/structure/closet/secure_closet/engineering_welding, +/obj/item/stack/tile/carpet{ + amount = 20 }, -/area/almayer/squads/req) +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_a_p) +"nSq" = ( +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12 + }, +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12; + pixel_y = 12 + }, +/obj/structure/sign/safety/water{ + pixel_x = 8; + pixel_y = -32 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_a_s) +"nSu" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W"; + layer = 2.5 + }, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/execution) +"nSw" = ( +/obj/structure/pipes/vents/pump, +/turf/open/floor/almayer/orangecorner/east, +/area/almayer/hallways/upper/aft_hallway) "nSG" = ( /obj/structure/machinery/door_control{ id = "tcomms"; @@ -55998,40 +42885,30 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/command/telecomms) -"nSM" = ( -/obj/structure/surface/table/almayer, -/obj/item/device/taperecorder, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/shipboard/brig/main_office) -"nSN" = ( -/obj/structure/largecrate/supply/supplies/mre, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_s) "nSS" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 8 }, /turf/open/floor/almayer, /area/almayer/command/computerlab) -"nSU" = ( -/obj/structure/machinery/vending/snack{ - density = 0; - pixel_y = 18 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_f_p) "nTl" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/almayer/red/north, /area/almayer/squads/alpha) +"nTo" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/transmitter{ + dir = 8; + name = "Medical Telephone"; + phone_category = "Almayer"; + phone_id = "Medical Lower"; + pixel_x = 16 + }, +/obj/item/device/helmet_visor/medical/advanced, +/obj/item/device/helmet_visor/medical/advanced, +/obj/item/device/helmet_visor/medical/advanced, +/obj/item/device/helmet_visor/medical/advanced, +/turf/open/floor/almayer/sterile_green, +/area/almayer/medical/lockerroom) "nTs" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 1 @@ -56042,6 +42919,10 @@ }, /turf/open/floor/almayer, /area/almayer/command/computerlab) +"nTA" = ( +/obj/structure/bed/chair/comfy/blue, +/turf/open/floor/carpet, +/area/almayer/living/commandbunks) "nTH" = ( /obj/structure/sign/safety/storage{ pixel_x = 8; @@ -56049,11 +42930,12 @@ }, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/south1) +"nTR" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/almayer, +/area/almayer/command/corporateliaison) "nTZ" = ( -/turf/open/floor/almayer{ - dir = 5; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/northeast, /area/almayer/living/gym) "nUa" = ( /obj/structure/bed/chair{ @@ -56062,10 +42944,7 @@ /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "green" - }, +/turf/open/floor/almayer/green/east, /area/almayer/squads/req) "nUd" = ( /obj/structure/reagent_dispensers/watertank, @@ -56078,155 +42957,197 @@ pixel_x = 3; pixel_y = 12 }, -/turf/open/floor/almayer{ - icon_state = "green" - }, +/turf/open/floor/almayer/green, /area/almayer/living/grunt_rnr) -"nUn" = ( -/obj/structure/surface/table/almayer, -/obj/structure/flora/pottedplant{ - icon_state = "pottedplant_22"; - pixel_y = 8 - }, +"nUj" = ( +/obj/structure/machinery/door/airlock/almayer/generic{ + dir = 1 + }, +/obj/structure/machinery/door/poddoor/almayer/open{ + id = "courtyard_cells"; + name = "\improper Courtyard Lockdown Shutter" + }, +/obj/structure/machinery/door/poddoor/almayer/locked{ + id = "Cell 2"; + name = "\improper Courtyard Divider" + }, +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 + }, +/turf/open/floor/almayer/test_floor4, +/area/almayer/shipboard/brig/cells) +"nUm" = ( +/obj/structure/bed/chair/comfy/beige, +/obj/item/reagent_container/glass/bucket{ + pixel_x = 12; + pixel_y = -5 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_a_s) +"nUn" = ( +/obj/structure/surface/table/almayer, +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_22"; + pixel_y = 8 + }, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/south1) "nUv" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/lifeboat_pumps/south1) -"nUy" = ( -/obj/structure/sign/poster{ - pixel_y = -32 +"nUT" = ( +/obj/structure/platform{ + dir = 8 }, -/turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_s) -"nVe" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer, -/obj/structure/sign/safety/bridge{ - pixel_x = 15; - pixel_y = 32 +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_a_s) +"nVi" = ( +/turf/open/floor/almayer/test_floor4, +/area/almayer/living/briefing) +"nVm" = ( +/obj/structure/machinery/door_control{ + id = "firearm_storage_armory"; + name = "Armory Lockdown"; + pixel_y = 24; + req_access_txt = "4" }, -/obj/structure/sign/safety/west{ +/obj/structure/sign/safety/ammunition{ pixel_y = 32 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +/obj/structure/sign/safety/restrictedarea{ + pixel_x = 15; + pixel_y = 32 }, -/area/almayer/hallways/aft_hallway) -"nVi" = ( -/turf/open/floor/almayer{ - icon_state = "test_floor4" +/turf/open/floor/almayer/red/north, +/area/almayer/shipboard/brig/starboard_hallway) +"nVn" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + pixel_y = 2 }, -/area/almayer/living/briefing) -"nVu" = ( -/obj/structure/pipes/vents/pump{ - dir = 1 +/turf/open/floor/almayer, +/area/almayer/maint/hull/upper/u_f_p) +"nVq" = ( +/obj/structure/sign/safety/security{ + pixel_x = -17; + pixel_y = 6 }, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/structure/sign/safety/reception{ + pixel_x = -17; + pixel_y = -8 }, -/area/almayer/hull/upper_hull/u_a_p) +/turf/open/floor/almayer/silver/west, +/area/almayer/shipboard/brig/cic_hallway) "nVB" = ( /turf/open/floor/almayer, /area/almayer/command/securestorage) +"nVE" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_m_p) "nVF" = ( /obj/structure/disposalpipe/junction{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "cargo_arrow" - }, +/turf/open/floor/almayer/cargo_arrow, /area/almayer/living/offices) -"nVS" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/bed/chair{ - dir = 8 +"nVQ" = ( +/obj/structure/machinery/light, +/obj/structure/sign/safety/security{ + pixel_y = -32 }, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/structure/sign/safety/restrictedarea{ + pixel_x = 15; + pixel_y = -32 }, -/area/almayer/hull/lower_hull/l_f_s) +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_midship_hallway) +"nVR" = ( +/turf/closed/wall/almayer, +/area/almayer/shipboard/brig/perma) "nVX" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/dropshiprear/lifeboat/blastdoor{ id_tag = "Boat2-D1"; linked_dock = "almayer-lifeboat2"; throw_dir = 2 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/engineering/upper_engineering/starboard) -"nWc" = ( -/obj/structure/machinery/door/airlock/almayer/generic/glass{ - name = "\improper Passenger Cryogenics Bay" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +"nWf" = ( +/obj/structure/sign/safety/maint{ + pixel_x = 8; + pixel_y = 32 }, -/area/almayer/hull/upper_hull/u_m_p) +/turf/open/floor/almayer/orangecorner/east, +/area/almayer/hallways/upper/aft_hallway) "nWN" = ( /obj/structure/surface/table/almayer, /turf/open/floor/wood/ship, /area/almayer/engineering/ce_room) -"nXm" = ( -/obj/structure/machinery/door/airlock/almayer/generic{ - dir = 1 +"nWS" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/obj/structure/machinery/door/poddoor/almayer/open{ - id = "courtyard_cells"; - name = "\improper Courtyard Lockdown Shutter" +/turf/open/floor/almayer/dark_sterile, +/area/almayer/shipboard/brig/medical) +"nXo" = ( +/obj/item/storage/box/donkpockets, +/obj/structure/surface/rack, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_a_s) +"nXG" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/obj/structure/machinery/door/poddoor/almayer/locked{ - id = "Cell 2"; - name = "\improper Courtyard Divider" +/turf/open/floor/almayer/red/east, +/area/almayer/lifeboat_pumps/south2) +"nXO" = ( +/obj/structure/surface/table/woodentable/fancy, +/obj/item/storage/fancy/cigar{ + layer = 3.04; + pixel_x = -2; + pixel_y = 2 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +/obj/item/reagent_container/food/drinks/bottle/sake{ + pixel_x = -11; + pixel_y = 16 }, -/area/almayer/shipboard/brig/cells) -"nXF" = ( -/obj/structure/bed/sofa/south/white/right{ +/obj/item/reagent_container/food/drinks/bottle/sake{ + pixel_x = -2; pixel_y = 16 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "silver" +/obj/item/reagent_container/food/drinks/bottle/sake{ + pixel_x = 7; + pixel_y = 16 }, -/area/almayer/hull/upper_hull/u_m_p) -"nXP" = ( -/turf/closed/wall/almayer/outer, -/area/almayer/hull/lower_hull/l_f_s) +/turf/open/floor/wood/ship, +/area/almayer/living/commandbunks) "nXU" = ( /obj/structure/machinery/door/airlock/almayer/marine/requisitions{ dir = 1; name = "\improper Requisitions Storage" }, -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 1 - }, /obj/structure/disposalpipe/up/almayer{ dir = 4; id = "almayerlink_OT1_req" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/squads/req) +"nXV" = ( +/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ + pixel_y = 25 + }, +/turf/open/floor/almayer/orangecorner/east, +/area/almayer/hallways/upper/aft_hallway) "nYc" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; pixel_y = 1 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "cargo_arrow" - }, +/turf/open/floor/almayer/cargo_arrow/west, /area/almayer/squads/bravo) "nYd" = ( /obj/structure/bed/chair/wood/normal{ @@ -56237,52 +43158,71 @@ }, /turf/open/floor/wood/ship, /area/almayer/shipboard/brig/cells) -"nYf" = ( -/obj/structure/machinery/cm_vending/clothing/intelligence_officer, -/turf/open/floor/almayer{ - icon_state = "silverfull" - }, -/area/almayer/command/securestorage) -"nYh" = ( -/obj/structure/machinery/portable_atmospherics/hydroponics, -/turf/open/floor/almayer{ - icon_state = "plate" +"nYg" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S"; + layer = 3.3 }, -/area/almayer/hull/upper_hull/u_a_s) -"nYv" = ( /obj/effect/decal/warning_stripes{ - icon_state = "SW-out"; - pixel_x = -1 + icon_state = "NW-out"; + pixel_y = 1 + }, +/turf/open/floor/almayer/aicore/no_build/ai_floor2, +/area/almayer/command/airoom) +"nYi" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/p_bow) +"nYn" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, /turf/open/floor/almayer, -/area/almayer/hallways/aft_hallway) +/area/almayer/engineering/lower) +"nYp" = ( +/obj/structure/machinery/light{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer/plate, +/area/almayer/living/briefing) "nYD" = ( /obj/structure/closet/secure_closet/medical2, -/turf/open/floor/almayer{ - icon_state = "sterile_green_corner" - }, +/turf/open/floor/almayer/sterile_green_corner, /area/almayer/medical/operating_room_four) "nYE" = ( -/turf/open/floor/almayer/uscm/directional{ - dir = 8 - }, +/turf/open/floor/almayer/uscm/directional/west, /area/almayer/command/lifeboat) -"nYP" = ( -/obj/structure/machinery/door/airlock/almayer/generic{ - dir = 1 +"nYR" = ( +/obj/structure/sign/safety/cryo{ + pixel_y = 26 }, -/obj/structure/machinery/door/poddoor/almayer/open{ - id = "courtyard_cells"; - name = "\improper Courtyard Lockdown Shutter" +/turf/open/floor/almayer/plate, +/area/almayer/hallways/lower/starboard_aft_hallway) +"nZf" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 1 }, -/obj/structure/machinery/door/poddoor/almayer/locked{ - id = "Cell 3"; - name = "\improper Courtyard Divider" +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer/test_floor4, +/area/almayer/hallways/upper/midship_hallway) +"nZm" = ( +/obj/structure/machinery/door_control{ + id = "OTStore"; + name = "Shutters"; + pixel_y = 24; + access_modified = 1; + req_one_access_txt = "35" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_y = 1 }, -/area/almayer/shipboard/brig/cells) +/turf/open/floor/almayer, +/area/almayer/engineering/lower/workshop/hangar) "nZy" = ( /obj/structure/surface/table/almayer, /obj/structure/disposalpipe/segment{ @@ -56291,39 +43231,68 @@ /obj/item/facepaint/black, /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/charlie) -"nZF" = ( -/turf/open/floor/almayer{ - icon_state = "orange" +"nZG" = ( +/obj/structure/platform{ + dir = 4 }, -/area/almayer/hull/upper_hull/u_a_s) -"oap" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "sterile_green_side" +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_a_p) +"nZK" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" }, -/area/almayer/medical/upper_medical) -"oas" = ( -/obj/structure/surface/table/almayer, -/obj/item/stack/rods/plasteel{ - amount = 36 +/turf/open/floor/almayer, +/area/almayer/hallways/upper/midship_hallway) +"nZR" = ( +/obj/structure/machinery/power/apc/almayer{ + dir = 8 }, -/obj/item/stack/catwalk{ - amount = 60; - pixel_x = 5; - pixel_y = 4 +/turf/open/floor/almayer/plating/northeast, +/area/almayer/shipboard/panic) +"nZW" = ( +/obj/structure/surface/table/almayer, +/obj/item/reagent_container/food/drinks/cans/souto/blue{ + pixel_x = 2; + pixel_y = 3 }, -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_f_p) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_a_s) +"oap" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer/sterile_green_side/northeast, +/area/almayer/medical/upper_medical) +"oaw" = ( +/obj/structure/closet/firecloset, +/obj/item/clothing/mask/gas, +/obj/item/clothing/mask/gas, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/p_stern) "oaK" = ( /obj/structure/surface/table/almayer, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/south1) +"oaO" = ( +/obj/structure/machinery/conveyor{ + id = "lower_garbage" + }, +/obj/structure/machinery/recycler, +/turf/open/floor/almayer/plating_striped/east, +/area/almayer/maint/hull/lower/l_a_p) +"oaP" = ( +/obj/structure/machinery/light/small{ + dir = 8 + }, +/obj/structure/closet, +/obj/item/clothing/under/marine, +/obj/item/clothing/suit/storage/marine, +/obj/item/clothing/head/helmet/marine, +/obj/item/clothing/head/cmcap, +/obj/item/clothing/head/cmcap, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/upper/u_a_s) "oaW" = ( /obj/structure/machinery/cryopod/right, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/squads/charlie) "obo" = ( /obj/structure/disposalpipe/up/almayer{ @@ -56338,34 +43307,18 @@ pixel_x = 4; pixel_y = 6 }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/lifeboat_pumps/south1) "obC" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/east, /area/almayer/engineering/port_atmos) "obE" = ( /obj/structure/machinery/cm_vending/sorted/cargo_guns/squad_prep, /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/alpha_bravo_shared) -"obG" = ( -/obj/structure/surface/table/reinforced/almayer_B, -/obj/structure/machinery/computer/card{ - dir = 8 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_s) "obQ" = ( /obj/structure/bed/chair{ dir = 8 @@ -56377,9 +43330,7 @@ dir = 1 }, /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/medical/lower_medical_lobby) "ocm" = ( /obj/structure/machinery/status_display{ @@ -56390,10 +43341,7 @@ pixel_x = 3; pixel_y = 6 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "green" - }, +/turf/open/floor/almayer/green/east, /area/almayer/living/grunt_rnr) "ocB" = ( /obj/effect/decal/warning_stripes{ @@ -56418,80 +43366,73 @@ /obj/structure/sign/safety/rewire{ pixel_y = 38 }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, +/turf/open/floor/almayer/aicore/glowing/no_build, /area/almayer/command/airoom) -"oda" = ( -/obj/structure/surface/table/reinforced/almayer_B, -/obj/item/device/radio{ - pixel_x = 8; - pixel_y = 7 - }, -/obj/item/clothing/head/soft/ferret{ - pixel_x = -7 - }, -/turf/open/floor/almayer{ - icon_state = "plate" +"ocL" = ( +/obj/structure/machinery/cryopod/right{ + dir = 4 }, -/area/almayer/hull/upper_hull/u_a_p) +/turf/open/floor/almayer/aicore/no_build/ai_cargo, +/area/almayer/command/airoom) "odb" = ( /obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "orange" - }, +/turf/open/floor/almayer/orange, /area/almayer/engineering/upper_engineering/starboard) +"ode" = ( +/obj/structure/machinery/door/poddoor/almayer/open{ + id = "Brig Lockdown Shutters"; + name = "\improper Brig Lockdown Shutter" + }, +/turf/open/floor/almayer/test_floor4, +/area/almayer/maint/hull/upper/s_bow) "odl" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 8 }, /turf/open/floor/plating/plating_catwalk, /area/almayer/engineering/upper_engineering/starboard) +"odt" = ( +/obj/item/device/radio/intercom{ + freerange = 1; + name = "General Listening Channel"; + pixel_y = 28 + }, +/turf/open/floor/almayer/cargo, +/area/almayer/hallways/lower/vehiclehangar) "odu" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/almayer/red/southeast, /area/almayer/command/lifeboat) "odB" = ( /obj/effect/decal/warning_stripes{ icon_state = "E"; pixel_x = 1 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "cargo_arrow" - }, +/turf/open/floor/almayer/cargo_arrow/west, /area/almayer/squads/bravo) -"odC" = ( -/obj/structure/machinery/light/small{ - dir = 8 - }, -/obj/item/prop/magazine/boots/n160{ - layer = 2.8; - pixel_x = 4; - pixel_y = -8 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, -/area/almayer/living/commandbunks) "odD" = ( /obj/structure/machinery/camera/autoname/almayer{ dir = 8; name = "ship-grade camera" }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/engineering/laundry) +"odG" = ( +/obj/structure/platform, +/obj/structure/prop/invuln/overhead_pipe{ + dir = 4; + pixel_x = -14; + pixel_y = 13 + }, +/obj/structure/prop/invuln/overhead_pipe{ + dir = 4; + pixel_x = 12; + pixel_y = 13 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_a_s) "odN" = ( /obj/structure/window/framed/almayer, /obj/structure/machinery/door/firedoor/border_only/almayer, @@ -56506,16 +43447,8 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/almayer/red/northeast, /area/almayer/command/lifeboat) -"oed" = ( -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_p) "oee" = ( /obj/structure/prop/invuln{ desc = "An inflated membrane. This one is puncture proof. Wow!"; @@ -56524,109 +43457,129 @@ name = "umbilical wall" }, /obj/structure/blocker/invisible_wall, -/turf/open/floor/almayer_hull{ - dir = 8; - icon_state = "outerhull_dir" - }, +/turf/open/floor/almayer_hull/outerhull_dir/west, /area/almayer/command/lifeboat) "oef" = ( -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/squads/alpha_bravo_shared) -"oeo" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_p) "oer" = ( /turf/closed/wall/almayer{ damage_cap = 15000 }, /area/almayer/squads/delta) -"oeB" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "redcorner" +"oes" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_f_s) +"oex" = ( +/obj/structure/machinery/cm_vending/sorted/tech/comp_storage, +/obj/structure/machinery/light, +/turf/open/floor/almayer/cargo, +/area/almayer/engineering/lower/engine_core) +"oeB" = ( +/turf/open/floor/almayer/redcorner/west, /area/almayer/shipboard/brig/processing) -"oeL" = ( -/obj/structure/machinery/vending/coffee{ - density = 0; - pixel_y = 18 - }, -/turf/open/floor/almayer{ - icon_state = "plate" +"oeH" = ( +/obj/structure/bed/chair{ + dir = 8 }, -/area/almayer/hull/upper_hull/u_a_p) +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_m_s) "oeM" = ( /obj/structure/surface/rack, -/turf/open/floor/almayer{ - icon_state = "silver" - }, +/turf/open/floor/almayer/silver, /area/almayer/command/computerlab) -"ofs" = ( -/obj/structure/sign/safety/hvac_old{ - pixel_x = 8; - pixel_y = -32 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_m_p) +"oeZ" = ( +/turf/closed/wall/almayer/reinforced, +/area/almayer/shipboard/brig/medical) "ofH" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/east, /area/almayer/engineering/upper_engineering/port) "ofK" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "orange" - }, +/turf/open/floor/almayer/orange, /area/almayer/engineering/upper_engineering/starboard) -"ofZ" = ( -/obj/structure/bed/sofa/south/grey, -/turf/open/floor/almayer{ - icon_state = "plate" +"ofU" = ( +/obj/effect/step_trigger/clone_cleaner, +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/obj/structure/machinery/light{ + dir = 4 + }, +/turf/open/floor/almayer/red/west, +/area/almayer/hallways/upper/port) +"ofY" = ( +/obj/structure/surface/table/reinforced/almayer_B{ + indestructible = 1; + unacidable = 1; + unslashable = 1 + }, +/obj/structure/machinery/computer/working_joe{ + layer = 3.3; + dir = 4; + pixel_y = 6 + }, +/turf/open/floor/almayer/aicore/no_build, +/area/almayer/command/airoom) +"ogK" = ( +/obj/structure/bed/bedroll{ + desc = "A bed of cotton fabric, purposely made for a cat to comfortably sleep on."; + name = "cat bed" + }, +/obj/structure/machinery/firealarm{ + pixel_x = -1; + pixel_y = 28 + }, +/mob/living/simple_animal/cat/Jones{ + dir = 8 + }, +/turf/open/floor/wood/ship, +/area/almayer/living/commandbunks) +"ogT" = ( +/obj/structure/machinery/light{ + dir = 1 }, -/area/almayer/hull/upper_hull/u_f_p) +/turf/open/floor/almayer, +/area/almayer/hallways/upper/midship_hallway) +"ohi" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer/red/north, +/area/almayer/lifeboat_pumps/south2) "ohj" = ( /obj/structure/machinery/cryopod, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/squads/charlie) -"ohl" = ( -/obj/structure/window/framed/almayer, -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 1 +"ohu" = ( +/obj/structure/machinery/door/airlock/almayer/security/glass/reinforced{ + dir = 1; + name = "\improper Brig Maintenance" }, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "green" +/obj/structure/machinery/door/poddoor/almayer/open{ + id = "Brig Lockdown Shutters"; + name = "\improper Brig Lockdown Shutter" }, -/area/almayer/squads/req) +/turf/open/floor/almayer/test_floor4, +/area/almayer/maint/hull/upper/p_bow) "ohA" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" }, /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/shipboard/weapon_room) "ohB" = ( /obj/structure/machinery/light, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/lifeboat_pumps/north1) "ohE" = ( /obj/structure/machinery/landinglight/ds1/delayone{ @@ -56635,9 +43588,7 @@ /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) "ohH" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/dropshiprear/lifeboat/blastdoor{ @@ -56645,10 +43596,21 @@ linked_dock = "almayer-lifeboat2"; throw_dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/command/lifeboat) +"ohI" = ( +/obj/structure/surface/table/almayer, +/obj/item/circuitboard/airlock, +/obj/item/circuitboard/airlock{ + pixel_x = 7; + pixel_y = 7 + }, +/obj/item/stack/cable_coil{ + pixel_x = -7; + pixel_y = 11 + }, +/turf/open/floor/plating, +/area/almayer/maint/lower/constr) "ohJ" = ( /obj/structure/machinery/computer/arcade, /turf/open/floor/wood/ship, @@ -56659,6 +43621,21 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/lifeboat_pumps/north2) +"ohS" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_y = 1 + }, +/obj/structure/machinery/door/airlock/almayer/generic{ + name = "\improper Bathroom" + }, +/obj/structure/machinery/door/firedoor/border_only/almayer, +/turf/open/floor/almayer/test_floor4, +/area/almayer/living/captain_mess) +"oif" = ( +/obj/effect/landmark/yautja_teleport, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_m_s) "oih" = ( /obj/structure/bed{ icon_state = "abed" @@ -56683,11 +43660,16 @@ layer = 3.3; pixel_y = 4 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/northeast, /area/almayer/engineering/upper_engineering/port) +"oiq" = ( +/obj/structure/machinery/door/airlock/almayer/maint{ + access_modified = 1; + dir = 8; + req_one_access = list(2,34,30) + }, +/turf/open/floor/almayer/test_floor4, +/area/almayer/maint/hull/upper/u_m_p) "oir" = ( /obj/structure/pipes/vents/pump{ dir = 8 @@ -56702,18 +43684,34 @@ dir = 1 }, /obj/structure/surface/table/reinforced/almayer_B, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, +/turf/open/floor/almayer/redfull, /area/almayer/shipboard/port_missiles) +"oix" = ( +/obj/structure/machinery/power/apc/almayer, +/obj/structure/sign/safety/rewire{ + pixel_y = -38 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/warden_office) +"oiz" = ( +/obj/structure/machinery/door/poddoor/shutters/almayer/open{ + dir = 2; + id = "Warden Office Shutters"; + name = "\improper Privacy Shutters" + }, +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/machinery/door/airlock/almayer/security/glass/reinforced{ + closeOtherId = "brigwarden"; + dir = 1; + name = "\improper Warden's Office" + }, +/turf/open/floor/almayer/test_floor4, +/area/almayer/shipboard/brig/warden_office) "oiL" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "green" - }, +/turf/open/floor/almayer/green/west, /area/almayer/living/grunt_rnr) "oiQ" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -56724,6 +43722,10 @@ }, /turf/open/floor/almayer, /area/almayer/squads/bravo) +"oiX" = ( +/obj/docking_port/stationary/vehicle_elevator/almayer, +/turf/open/floor/almayer/empty/vehicle_bay, +/area/almayer/hallways/lower/vehiclehangar) "oiY" = ( /obj/effect/decal/warning_stripes{ icon_state = "W"; @@ -56735,37 +43737,41 @@ pixel_x = 1; pixel_y = -2 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/west, /area/almayer/medical/medical_science) +"ojh" = ( +/obj/structure/disposalpipe/junction{ + dir = 8 + }, +/obj/structure/pipes/standard/manifold/hidden/supply, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/engineering/lower) "ojF" = ( /obj/structure/machinery/cm_vending/clothing/tl/charlie{ density = 0; pixel_x = 32 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "emerald" - }, +/turf/open/floor/almayer/emerald/north, /area/almayer/squads/charlie) -"ojR" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 10 - }, -/obj/structure/machinery/door_control{ - id = "laddersoutheast"; - name = "South East Ladders Shutters"; - pixel_y = 25; - req_one_access_txt = "2;3;12;19"; - throw_range = 15 +"ojH" = ( +/obj/effect/projector{ + name = "Almayer_Down1"; + vector_x = 19; + vector_y = -98 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "green" +/turf/open/floor/almayer/no_build, +/area/almayer/hallways/upper/starboard) +"ojQ" = ( +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_17"; + pixel_x = -5; + pixel_y = 10 }, -/area/almayer/hallways/port_hallway) +/turf/open/floor/wood/ship, +/area/almayer/command/corporateliaison) +"ojX" = ( +/turf/open/floor/plating, +/area/almayer/maint/upper/u_f_p) "ojZ" = ( /obj/structure/window/framed/almayer/white, /obj/structure/machinery/door/firedoor/border_only/almayer, @@ -56774,155 +43780,103 @@ "oka" = ( /obj/effect/landmark/start/marine/medic/charlie, /obj/effect/landmark/late_join/charlie, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/charlie) "okd" = ( -/obj/structure/platform_decoration, -/obj/structure/machinery/power/apc/almayer{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/structure/machinery/door/poddoor/almayer{ + id = "n_umbilical"; + name = "\improper Umbillical Airlock"; + unacidable = 1 }, -/area/almayer/hull/upper_hull/u_a_p) +/turf/open/floor/almayer/plate, +/area/almayer/hallways/lower/starboard_umbilical) "okg" = ( /obj/structure/sign/safety/reception{ pixel_x = 8; pixel_y = 32 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/command/lifeboat) -"oks" = ( -/obj/effect/decal/cleanable/cobweb{ - pixel_x = -9; - pixel_y = 19 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_m_p) -"okz" = ( -/obj/structure/platform{ - dir = 4; - layer = 2.7 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/engineering/engine_core) -"okB" = ( -/obj/structure/pipes/vents/scrubber{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, -/area/almayer/living/briefing) "okD" = ( /obj/structure/prop/almayer/name_stencil{ icon_state = "almayer6" }, -/turf/open/floor/almayer_hull{ - icon_state = "outerhull_dir" - }, +/turf/open/floor/almayer_hull/outerhull_dir, /area/space) -"okM" = ( -/obj/structure/machinery/door/airlock/almayer/security/glass{ - name = "\improper Execution Room" - }, -/obj/structure/pipes/standard/simple/hidden/supply{ +"okO" = ( +/obj/structure/machinery/cm_vending/clothing/senior_officer, +/turf/open/floor/almayer/mono, +/area/almayer/medical/upper_medical) +"old" = ( +/obj/structure/machinery/light/small, +/obj/structure/largecrate/random/case/double, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/s_bow) +"olF" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/almayer/cargo, +/area/almayer/hallways/upper/midship_hallway) +"olM" = ( +/obj/structure/bed/chair{ + can_buckle = 0; dir = 4 }, -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 8 +/obj/structure/bed/chair{ + can_buckle = 0; + dir = 4; + pixel_x = 1; + pixel_y = 3 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +/obj/structure/bed/chair{ + can_buckle = 0; + dir = 4; + pixel_x = 2; + pixel_y = 6 }, -/area/almayer/shipboard/brig/execution) -"olk" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ +/turf/open/floor/plating/plating_catwalk, +/area/almayer/living/offices) +"olN" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/machinery/light{ dir = 4 }, -/obj/effect/decal/warning_stripes{ - icon_state = "NE-out"; - pixel_y = 2 - }, -/obj/structure/machinery/door/airlock/almayer/generic{ - name = "\improper Bathroom" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/engineering/upper_engineering/port) -"olv" = ( -/obj/structure/surface/table/almayer, -/obj/item/tool/hand_labeler{ - pixel_x = -8; - pixel_y = 3 - }, -/obj/item/storage/box/evidence{ - pixel_x = 7; - pixel_y = 6 - }, -/obj/item/storage/box/evidence{ - pixel_x = 1; - pixel_y = 1 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" - }, -/area/almayer/shipboard/brig/general_equipment) -"olM" = ( -/obj/structure/bed/chair{ - can_buckle = 0; - dir = 4 - }, -/obj/structure/bed/chair{ - can_buckle = 0; - dir = 4; - pixel_x = 1; - pixel_y = 3 - }, -/obj/structure/bed/chair{ - can_buckle = 0; - dir = 4; - pixel_x = 2; - pixel_y = 6 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/living/offices) +/obj/structure/disposalpipe/segment, +/turf/open/floor/almayer/orange/east, +/area/almayer/engineering/lower/workshop/hangar) "olO" = ( /obj/structure/closet/secure_closet/personal/cabinet{ req_access = null }, /turf/open/floor/wood/ship, /area/almayer/engineering/ce_room) +"olQ" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 10 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_m_s) "olU" = ( /obj/structure/machinery/light, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "blue" - }, +/turf/open/floor/almayer/blue/northwest, /area/almayer/command/cichallway) +"olW" = ( +/obj/structure/machinery/door/airlock/almayer/maint, +/turf/open/floor/almayer/test_floor4, +/area/almayer/maint/lower/s_bow) "omb" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 1 }, /obj/structure/disposalpipe/segment, -/turf/open/floor/almayer{ - icon_state = "silvercorner" - }, +/turf/open/floor/almayer/silvercorner, /area/almayer/command/cichallway) +"ome" = ( +/obj/structure/largecrate/random/barrel/red, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/p_bow) "omo" = ( /obj/structure/window/framed/almayer/white, +/obj/structure/machinery/door/firedoor/border_only/almayer, /turf/open/floor/plating, /area/almayer/medical/lockerroom) "omt" = ( @@ -56930,6 +43884,18 @@ /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/wood/ship, /area/almayer/shipboard/brig/cells) +"omx" = ( +/obj/structure/largecrate/random/barrel/white, +/obj/structure/sign/safety/bulkhead_door{ + pixel_x = 32 + }, +/obj/structure/sign/safety/maint{ + pixel_x = 8; + pixel_y = 32 + }, +/obj/effect/landmark/yautja_teleport, +/turf/open/floor/almayer/cargo, +/area/almayer/maint/hull/lower/l_f_s) "omy" = ( /obj/structure/disposalpipe/segment{ dir = 1; @@ -56938,26 +43904,31 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 5 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "silvercorner" - }, +/turf/open/floor/almayer, /area/almayer/shipboard/brig/cic_hallway) "omP" = ( /obj/item/tool/mop, /obj/structure/surface/rack, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/north, /area/almayer/hallways/hangar) -"omW" = ( -/obj/structure/pipes/standard/manifold/fourway/hidden/supply, -/obj/structure/disposalpipe/segment{ - dir = 4 +"onn" = ( +/obj/structure/machinery/light, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_midship_hallway) +"onv" = ( +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12 + }, +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12; + pixel_y = 12 + }, +/obj/structure/sign/safety/water{ + pixel_x = 8; + pixel_y = -32 }, /turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_hallway) +/area/almayer/maint/hull/lower/l_f_s) "onN" = ( /obj/structure/surface/table/almayer, /obj/structure/disposalpipe/segment{ @@ -56974,11 +43945,22 @@ pixel_x = 8; pixel_y = 32 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/northeast, /area/almayer/medical/upper_medical) +"onU" = ( +/obj/effect/step_trigger/teleporter_vector{ + name = "Almayer_AresDown"; + vector_x = 96; + vector_y = -65 + }, +/obj/structure/platform{ + dir = 8 + }, +/obj/structure/stairs{ + dir = 1 + }, +/turf/open/floor/almayer/aicore/no_build, +/area/almayer/command/airoom) "onY" = ( /obj/structure/surface/table/almayer, /obj/item/paper_bin/uscm, @@ -56986,9 +43968,7 @@ pixel_x = -8; pixel_y = 12 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/auxiliary_officer_office) "oog" = ( /obj/effect/decal/warning_stripes{ @@ -57016,65 +43996,70 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/north, /area/almayer/medical/lower_medical_medbay) -"ooR" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 1 - }, +"ooA" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/supply{ - dir = 1 - }, -/obj/structure/machinery/door/poddoor/almayer/open{ - id = "perma_lockdown"; - name = "\improper Perma Lockdown Shutter" - }, -/obj/structure/machinery/door/airlock/multi_tile/almayer/secdoor/reinforced{ - name = "\improper Perma Cells" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/shipboard/brig/perma) -"opj" = ( -/obj/structure/surface/table/almayer, -/obj/effect/spawner/random/powercell, -/obj/effect/spawner/random/tool, -/obj/item/packageWrap, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "green" + dir = 6 }, -/area/almayer/squads/req) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_m_s) +"opd" = ( +/obj/structure/barricade/handrail, +/turf/open/floor/almayer/test_floor5, +/area/almayer/hallways/lower/port_midship_hallway) +"opu" = ( +/turf/open/floor/almayer/red/southeast, +/area/almayer/lifeboat_pumps/north2) "opC" = ( /obj/structure/machinery/door/airlock/almayer/command/reinforced{ name = "\improper Combat Information Center" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/command/cichallway) "opD" = ( /turf/open/floor/plating/plating_catwalk, /area/almayer/living/gym) +"opF" = ( +/obj/structure/pipes/vents/pump, +/turf/open/floor/almayer/red/east, +/area/almayer/shipboard/brig/chief_mp_office) +"opH" = ( +/obj/structure/machinery/light, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer/plate, +/area/almayer/engineering/lower/engine_core) "opJ" = ( /obj/docking_port/stationary/emergency_response/external/port4, /turf/open/space/basic, /area/space) -"opN" = ( -/obj/structure/closet/secure_closet/brig, -/obj/structure/machinery/light{ - unacidable = 1; - unslashable = 1 +"opV" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/machinery/door_control{ + id = "laddersoutheast"; + name = "South East Ladders Shutters"; + pixel_y = 25; + req_one_access_txt = "2;3;12;19"; + throw_range = 15 }, -/turf/open/floor/almayer{ - icon_state = "red" +/turf/open/floor/almayer/green/north, +/area/almayer/hallways/lower/port_midship_hallway) +"oqc" = ( +/obj/structure/surface/rack, +/obj/item/storage/firstaid/toxin, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_a_s) +"oqt" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/area/almayer/shipboard/brig/processing) +/turf/open/floor/almayer, +/area/almayer/engineering/lower/workshop/hangar) "oqu" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk{ @@ -57084,9 +44069,7 @@ icon_state = "W"; pixel_x = -1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/delta) "oqv" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -57103,34 +44086,12 @@ name = "General Listening Channel"; pixel_y = 28 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/pilotbunks) -"oqD" = ( -/obj/structure/surface/table/almayer, -/obj/item/tool/wet_sign, -/obj/item/tool/wet_sign{ - pixel_x = -3; - pixel_y = 2 - }, -/obj/item/tool/wet_sign{ - pixel_x = -8; - pixel_y = 6 - }, -/obj/structure/machinery/light{ - dir = 1 - }, -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_f_p) -"oqP" = ( -/obj/structure/bed/chair/comfy/delta{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/living/briefing) +"oqI" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_m_p) "oqS" = ( /obj/structure/toilet{ dir = 1 @@ -57145,6 +44106,16 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/port_emb) +"oqY" = ( +/obj/structure/machinery/conveyor{ + id = "req_belt" + }, +/obj/structure/plasticflaps, +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 1 + }, +/turf/open/floor/almayer, +/area/almayer/squads/req) "oqZ" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/microwave{ @@ -57158,9 +44129,7 @@ pixel_x = 4; pixel_y = 16 }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/medical/medical_science) "ora" = ( /obj/structure/surface/table/almayer, @@ -57176,30 +44145,30 @@ pixel_x = -7; pixel_y = 13 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/north, /area/almayer/shipboard/brig/cic_hallway) -"orm" = ( -/obj/structure/machinery/door/airlock/almayer/maint, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 +"orx" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SE-out" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_y = 1 }, -/area/almayer/hull/upper_hull/u_a_p) -"orv" = ( -/obj/structure/machinery/light/small, -/obj/structure/largecrate/random/secure, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_p) +/obj/structure/machinery/door/airlock/almayer/maint, +/turf/open/floor/almayer/test_floor4, +/area/almayer/maint/upper/u_a_s) "orH" = ( -/turf/open/floor/almayer/uscm/directional{ - dir = 10 - }, +/turf/open/floor/almayer/uscm/directional/southwest, /area/almayer/command/lifeboat) +"orN" = ( +/obj/structure/machinery/camera/autoname/almayer{ + dir = 1; + name = "ship-grade camera" + }, +/obj/structure/closet/firecloset, +/turf/open/floor/almayer/plate, +/area/almayer/engineering/lower/workshop/hangar) "osc" = ( /obj/structure/machinery/cm_vending/sorted/uniform_supply/squad_prep, /obj/structure/machinery/light{ @@ -57207,6 +44176,13 @@ }, /turf/open/floor/almayer, /area/almayer/squads/alpha_bravo_shared) +"osr" = ( +/obj/structure/largecrate/random/case/double, +/obj/structure/machinery/light{ + dir = 4 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/upper/u_f_p) "osx" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" @@ -57215,21 +44191,8 @@ pixel_x = 8; pixel_y = -32 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) -"osy" = ( -/obj/effect/step_trigger/clone_cleaner, -/obj/structure/machinery/light{ - dir = 4 - }, -/obj/structure/platform_decoration, -/turf/open/floor/almayer/no_build{ - dir = 4; - icon_state = "silver" - }, -/area/almayer/command/airoom) "osz" = ( /obj/structure/machinery/door/firedoor/border_only/almayer, /obj/structure/pipes/standard/simple/hidden/supply{ @@ -57243,9 +44206,7 @@ /obj/structure/machinery/door/airlock/almayer/command/reinforced{ name = "\improper Combat Information Center" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/command/cic) "osA" = ( /obj/effect/decal/warning_stripes{ @@ -57259,31 +44220,16 @@ icon_state = "N"; pixel_y = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/bravo) -"osE" = ( -/obj/structure/closet/emcloset, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_a_p) -"osJ" = ( -/obj/structure/surface/table/almayer, -/obj/item/folder/white{ - pixel_x = 5; - pixel_y = 5 - }, -/obj/item/paper, -/obj/item/handcuffs, -/obj/item/clothing/mask/cigarette/cigar/classic, -/obj/item/coin/silver{ - desc = "A small coin, bearing the falling falcons insignia."; - name = "falling falcons challenge coin" - }, -/turf/open/floor/wood/ship, -/area/almayer/shipboard/brig/chief_mp_office) +"osI" = ( +/turf/open/floor/almayer/orange, +/area/almayer/engineering/lower/workshop) +"osQ" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/disposalpipe/segment, +/turf/open/floor/almayer/plate, +/area/almayer/hallways/lower/starboard_midship_hallway) "osT" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/structure/prop/ice_colony/hula_girl{ @@ -57292,34 +44238,65 @@ }, /turf/open/floor/almayer, /area/almayer/living/pilotbunks) +"osU" = ( +/obj/structure/sign/poster{ + icon_state = "poster14"; + pixel_x = -27 + }, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer/plate, +/area/almayer/living/briefing) +"osX" = ( +/obj/structure/sign/safety/north{ + pixel_x = -17; + pixel_y = -8 + }, +/turf/open/floor/almayer/red/west, +/area/almayer/hallways/lower/starboard_midship_hallway) +"otp" = ( +/obj/structure/machinery/light{ + unacidable = 1; + unslashable = 1 + }, +/turf/open/floor/almayer/dark_sterile, +/area/almayer/shipboard/brig/medical) +"otq" = ( +/obj/structure/machinery/line_nexter{ + dir = 1; + id = "MTline"; + pixel_y = 3 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_fore_hallway) "otu" = ( /turf/closed/wall/almayer/research/containment/wall/connect_w, /area/almayer/medical/containment/cell) -"otK" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer, -/obj/structure/machinery/door/airlock/multi_tile/almayer/generic2{ - access_modified = 1; - dir = 1; - name = "\improper Flight Crew Quarters"; - req_one_access_txt = "19;22" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +"otC" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/area/almayer/living/pilotbunks) -"otX" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W" +/obj/structure/machinery/light, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_midship_hallway) +"otW" = ( +/obj/structure/machinery/light/small, +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12 }, -/obj/structure/sign/safety/press_area_ag{ - pixel_x = -17; - pixel_y = -7 +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_m_p) +"ouf" = ( +/obj/structure/stairs{ + dir = 1; + icon_state = "ramptop" }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" +/obj/effect/projector{ + name = "Almayer_Down1"; + vector_x = 19; + vector_y = -98 }, -/area/almayer/hull/lower_hull/l_a_p) +/turf/open/floor/plating/almayer/no_build, +/area/almayer/hallways/upper/starboard) "oug" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/structure/pipes/standard/simple/hidden/supply, @@ -57328,30 +44305,23 @@ layer = 2.99; pixel_y = 8 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/command/cic) -"ouo" = ( -/obj/structure/sign/safety/storage{ - pixel_x = 8; - pixel_y = 32 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_a_s) "our" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/paper_bin/uscm{ pixel_y = 6 }, /obj/item/tool/pen, -/obj/structure/machinery/light{ - dir = 4 - }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, +/turf/open/floor/almayer/aicore/no_build, /area/almayer/command/airoom) +"ouw" = ( +/obj/structure/machinery/light/small{ + dir = 8 + }, +/obj/structure/closet/bombcloset, +/turf/open/floor/almayer/plate, +/area/almayer/engineering/lower/workshop/hangar) "ouB" = ( /obj/structure/bed/sofa/vert/grey/bot, /turf/open/floor/almayer, @@ -57360,38 +44330,18 @@ /obj/structure/platform{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/almayer/red/north, /area/almayer/lifeboat_pumps/south1) -"ouT" = ( -/obj/item/trash/plate{ - pixel_x = 9; - pixel_y = 11 - }, -/obj/item/reagent_container/food/snacks/carpmeat{ - layer = 3.3; - pixel_x = 8; - pixel_y = 11 - }, -/obj/item/reagent_container/food/snacks/carpmeat{ - layer = 3.3; - pixel_x = 8; - pixel_y = 11 - }, -/turf/open/floor/carpet, -/area/almayer/living/commandbunks) -"ouV" = ( -/obj/structure/sign/safety/cryo{ - pixel_x = 1; - pixel_y = 26 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" +"ouU" = ( +/obj/structure/surface/table/almayer, +/obj/effect/spawner/random/toolbox, +/obj/effect/spawner/random/technology_scanner, +/obj/effect/spawner/random/technology_scanner, +/obj/structure/machinery/light/small{ + dir = 8 }, -/area/almayer/shipboard/brig/main_office) +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_m_s) "ouW" = ( /obj/structure/sign/safety/storage{ pixel_x = 8; @@ -57401,43 +44351,23 @@ pixel_x = 8; pixel_y = -26 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "silvercorner" - }, +/turf/open/floor/almayer/silvercorner/west, /area/almayer/command/cichallway) +"ove" = ( +/obj/structure/airlock_assembly, +/turf/open/floor/plating, +/area/almayer/maint/lower/constr) "ovi" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orangecorner" - }, +/turf/open/floor/almayer/orangecorner/east, /area/almayer/engineering/upper_engineering/port) -"ovn" = ( -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/hull/lower_hull/l_a_p) "ovp" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/structure/flora/pottedplant{ icon_state = "pottedplant_18"; pixel_y = 7 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/east, /area/almayer/living/briefing) -"ovF" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_p) "ovG" = ( /obj/effect/decal/warning_stripes{ icon_state = "E"; @@ -57447,32 +44377,26 @@ icon_state = "N"; pixel_y = 1 }, -/turf/open/floor/almayer/research/containment/corner_var1{ - dir = 4 - }, +/turf/open/floor/almayer/research/containment/corner_var1/east, /area/almayer/medical/containment/cell) -"ovP" = ( -/obj/structure/sign/safety/security{ - pixel_x = 15 +"ovQ" = ( +/obj/structure/machinery/light{ + dir = 1 }, -/turf/closed/wall/almayer, -/area/almayer/hallways/starboard_umbilical) -"owg" = ( -/turf/open/floor/almayer{ - icon_state = "mono" +/obj/structure/sign/safety/maint{ + pixel_x = 32 }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_aft_hallway) +"owg" = ( +/turf/open/floor/almayer/mono, /area/almayer/engineering/upper_engineering/starboard) -"owH" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer, -/obj/structure/machinery/door/poddoor/almayer{ - dir = 4; - id = "hangarentrancenorth"; - name = "\improper North Hangar Podlock" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +"owU" = ( +/obj/structure/machinery/light/small{ + dir = 8 }, -/area/almayer/hallways/starboard_hallway) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_a_s) "owW" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -57483,76 +44407,73 @@ req_one_access = null; req_one_access_txt = "19;29" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/shipboard/sea_office) -"oxi" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 10 +"oxc" = ( +/obj/structure/bed, +/obj/item/toy/plush/farwa{ + pixel_x = 5 }, -/turf/open/floor/almayer, -/area/almayer/living/cafeteria_officer) -"oxn" = ( -/obj/structure/pipes/vents/pump{ +/obj/item/clothing/under/redpyjamas, +/obj/item/bedsheet/orange, +/turf/open/floor/wood/ship, +/area/almayer/command/corporateliaison) +"oxe" = ( +/obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "red" +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_aft_hallway) +"oxl" = ( +/obj/structure/window/reinforced{ + dir = 8; + health = 80 }, -/area/almayer/shipboard/brig/chief_mp_office) -"oxp" = ( -/obj/structure/largecrate/random/case, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/structure/machinery/light{ + dir = 4 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_a_p) +"oxn" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" }, -/area/almayer/hull/lower_hull/l_f_s) +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_m_s) "oxu" = ( /obj/structure/sign/safety/galley{ pixel_x = -17 }, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/south1) +"oxy" = ( +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_a_s) +"oxz" = ( +/obj/structure/stairs/perspective{ + icon_state = "p_stair_full" + }, +/obj/structure/platform{ + dir = 4 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/repair_bay) "oxU" = ( /obj/structure/machinery/photocopier, /turf/open/floor/almayer, /area/almayer/command/lifeboat) -"oyo" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orangecorner" - }, -/area/almayer/hull/upper_hull/u_a_s) -"oys" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 - }, -/obj/structure/disposalpipe/segment, -/obj/structure/machinery/door/airlock/almayer/command/reinforced{ - dir = 1; - id_tag = "CO-Office"; - name = "\improper Commanding Officer's Office"; - req_access = null; - req_access_txt = "31" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +"oyB" = ( +/obj/structure/sign/safety/distribution_pipes{ + pixel_x = -17 }, -/area/almayer/living/commandbunks) -"oyw" = ( -/obj/structure/platform_decoration{ - dir = 8 +/turf/open/floor/almayer/green/west, +/area/almayer/hallways/upper/fore_hallway) +"oyC" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 10 }, /turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_a_p) -"oyy" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "SW-out"; - pixel_x = -1 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/port_hallway) +/area/almayer/shipboard/brig/starboard_hallway) "oyE" = ( /obj/effect/landmark/start/intel, /obj/structure/sign/poster{ @@ -57565,63 +44486,50 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/engineering/port_atmos) -"oyG" = ( -/obj/structure/largecrate/random/secure, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_a_p) -"ozi" = ( -/obj/structure/surface/table/almayer, -/obj/item/fuelCell, -/obj/item/fuelCell, -/obj/structure/machinery/camera/autoname/almayer{ - name = "ship-grade camera" - }, -/turf/open/floor/almayer{ - icon_state = "cargo" +"oyO" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/structure/sign/safety/water{ + pixel_x = -17 }, -/area/almayer/engineering/engine_core) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_m_p) +"oyR" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/almayer/orange, +/area/almayer/engineering/lower) +"oyX" = ( +/obj/structure/bookcase/manuals/engineering, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_f_s) "ozq" = ( /obj/structure/machinery/door/firedoor/border_only/almayer, /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/squads/alpha) -"ozr" = ( -/obj/structure/closet, -/obj/item/reagent_container/food/drinks/bottle/sake, -/obj/item/newspaper, -/obj/item/clothing/gloves/yellow, -/obj/item/stack/tile/carpet{ - amount = 20 - }, -/obj/structure/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_p) "ozz" = ( /obj/structure/surface/table/almayer, /obj/item/tank/emergency_oxygen/double, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/engineering/upper_engineering/starboard) +"ozH" = ( +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12 + }, +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12; + pixel_y = 12 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/p_bow) "ozN" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/dropshiprear/lifeboat/blastdoor{ id_tag = "Boat2-D2"; linked_dock = "almayer-lifeboat2"; throw_dir = 2 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/engineering/upper_engineering/starboard) "ozT" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -57636,50 +44544,55 @@ icon_state = "SW-out"; pixel_x = -1 }, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "emerald" - }, +/turf/open/floor/almayer/emerald/southeast, /area/almayer/squads/charlie) -"oAd" = ( -/obj/structure/machinery/camera/autoname/almayer{ +"oAa" = ( +/obj/structure/disposalpipe/segment{ dir = 1; - name = "ship-grade camera" - }, -/obj/structure/sign/safety/life_support{ - pixel_x = 8; - pixel_y = -32 - }, -/turf/open/floor/almayer{ - icon_state = "orange" + icon_state = "pipe-c" }, -/area/almayer/engineering/lower_engineering) +/turf/open/floor/almayer/test_floor4, +/area/almayer/hallways/lower/port_umbilical) "oAB" = ( /obj/structure/platform{ dir = 8; layer = 2.7 }, -/turf/open/floor/almayer/uscm/directional{ - dir = 10 - }, +/turf/open/floor/almayer/uscm/directional/southwest, /area/almayer/living/briefing) +"oAK" = ( +/obj/structure/sign/safety/storage{ + pixel_x = 8; + pixel_y = 32 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_a_s) "oAO" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "red" - }, +/turf/open/floor/almayer/red, /area/almayer/lifeboat_pumps/north1) +"oAT" = ( +/obj/structure/surface/table/reinforced/almayer_B, +/obj/item/device/radio{ + pixel_x = 8; + pixel_y = 7 + }, +/obj/item/clothing/head/soft/ferret{ + pixel_x = -7 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_a_p) "oBq" = ( /obj/structure/bed, /obj/structure/machinery/flasher{ id = "Cell 1"; pixel_x = -24 }, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/almayer/red/southwest, /area/almayer/shipboard/brig/cells) +"oBr" = ( +/turf/closed/wall/almayer, +/area/almayer/maint/hull/lower/l_a_s) "oBA" = ( /obj/structure/sign/safety/conference_room{ pixel_x = -17; @@ -57689,65 +44602,66 @@ pixel_x = -17; pixel_y = -8 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/west, /area/almayer/command/cichallway) -"oBW" = ( -/obj/structure/surface/table/woodentable/fancy, -/obj/item/storage/bible{ - desc = "As the legendary US Army chaplain once said, 'There are no Athiests in fancy offices'."; - name = "Holy Bible"; - pixel_x = -3; - pixel_y = 9 +"oBD" = ( +/obj/structure/pipes/vents/pump/no_boom/gas{ + vent_tag = "Access Hall"; + dir = 8 }, -/obj/item/prop/helmetgarb/rosary{ - pixel_x = -4; - pixel_y = 5 +/turf/open/floor/almayer/aicore/no_build/ai_silver/east, +/area/almayer/command/airoom) +"oCa" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/obj/item/device/flashlight/lamp{ - pixel_x = 3; - pixel_y = 1 +/obj/structure/sign/safety/airlock{ + pixel_y = -32 }, -/turf/open/floor/wood/ship, -/area/almayer/living/commandbunks) +/obj/structure/sign/safety/hazard{ + pixel_x = 15; + pixel_y = -32 + }, +/turf/open/floor/almayer/test_floor4, +/area/almayer/hallways/lower/port_umbilical) +"oCb" = ( +/obj/structure/sign/safety/hvac_old{ + pixel_x = 8; + pixel_y = 32 + }, +/turf/open/floor/almayer/plate, +/area/almayer/hallways/lower/port_midship_hallway) "oCf" = ( /obj/structure/machinery/light{ unacidable = 1; unslashable = 1 }, -/turf/open/floor/almayer{ - icon_state = "orange" - }, +/turf/open/floor/almayer/orange, /area/almayer/engineering/upper_engineering/port) "oCi" = ( /obj/structure/sign/safety/restrictedarea{ pixel_x = -17 }, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/almayer/red/northwest, /area/almayer/shipboard/navigation) -"oCL" = ( -/obj/structure/sign/safety/hvac_old{ - pixel_x = 8; - pixel_y = 32 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_f_s) -"oCX" = ( -/turf/open/floor/almayer{ - dir = 6; - icon_state = "red" +"oCl" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 6 }, -/area/almayer/shipboard/brig/cryo) -"oDf" = ( +/obj/structure/bed/chair/comfy/delta, +/turf/open/floor/almayer/bluefull, +/area/almayer/living/briefing) +"oCK" = ( +/obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_p) +/area/almayer/maint/hull/lower/l_m_s) +"oDa" = ( +/obj/effect/landmark/yautja_teleport, +/turf/open/floor/almayer/plate, +/area/almayer/maint/upper/u_a_s) +"oDh" = ( +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/p_bow) "oDi" = ( /obj/structure/disposalpipe/segment{ dir = 1; @@ -57757,16 +44671,17 @@ icon_state = "W"; pixel_x = -1 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/west, /area/almayer/medical/medical_science) -"oDv" = ( -/turf/open/floor/almayer{ - dir = 9; - icon_state = "red" +"oDm" = ( +/obj/structure/sign/safety/life_support{ + pixel_x = 8; + pixel_y = 32 }, +/turf/open/floor/almayer, +/area/almayer/hallways/upper/midship_hallway) +"oDv" = ( +/turf/open/floor/almayer/red/northwest, /area/almayer/living/gym) "oDx" = ( /obj/structure/disposalpipe/segment, @@ -57776,10 +44691,15 @@ req_one_access = null; req_one_access_txt = "30;19" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/living/port_emb) +"oDy" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 1 + }, +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/processing) "oDE" = ( /obj/structure/surface/rack, /obj/item/reagent_container/spray/cleaner{ @@ -57789,10 +44709,22 @@ /obj/item/reagent_container/spray/cleaner{ pixel_x = -6 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/grunt_rnr) +"oDJ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/spiderling_remains{ + pixel_x = 18; + pixel_y = -5 + }, +/obj/effect/decal/cleanable/ash{ + pixel_x = 11; + pixel_y = 25 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer/sterile_green_corner/west, +/area/almayer/medical/lower_medical_medbay) "oDL" = ( /obj/item/device/radio/intercom{ freerange = 1; @@ -57800,25 +44732,21 @@ pixel_y = 28 }, /obj/structure/machinery/photocopier, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/medical/medical_science) -"oDO" = ( -/obj/structure/machinery/sentry_holder/almayer, -/turf/open/floor/almayer{ - icon_state = "mono" - }, -/area/almayer/lifeboat_pumps/south2) "oDR" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 9 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "sterile_green_corner" - }, +/turf/open/floor/almayer/sterile_green_corner/east, /area/almayer/medical/medical_science) +"oDU" = ( +/obj/structure/machinery/status_display{ + pixel_y = 30 + }, +/obj/structure/barricade/handrail, +/turf/open/floor/almayer/test_floor5, +/area/almayer/hallways/lower/port_midship_hallway) "oDY" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/recharger, @@ -57826,9 +44754,7 @@ /obj/item/device/defibrillator, /obj/item/device/defibrillator, /obj/item/device/defibrillator, -/turf/open/floor/almayer{ - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side, /area/almayer/medical/lower_medical_lobby) "oEf" = ( /obj/structure/pipes/standard/simple/hidden/supply, @@ -57837,10 +44763,17 @@ id = "CIC Lockdown"; name = "\improper Combat Information Center Blast Door" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/lifeboat_pumps/north1) +"oEn" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/almayer/blue/west, +/area/almayer/hallways/upper/midship_hallway) "oEo" = ( /obj/effect/landmark/start/marine/medic/delta, /obj/effect/landmark/late_join/delta, @@ -57863,6 +44796,24 @@ }, /turf/open/floor/almayer, /area/almayer/living/briefing) +"oEy" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SE-out"; + pixel_x = 1 + }, +/turf/open/floor/almayer, +/area/almayer/engineering/lower/workshop/hangar) +"oEA" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/weapon/gun/shotgun/pump{ + starting_attachment_types = list(/obj/item/attachable/stock/shotgun); + pixel_y = 9 + }, +/obj/item/stack/sheet/cardboard/small_stack{ + layer = 3.01 + }, +/turf/open/floor/almayer, +/area/almayer/squads/charlie_delta_shared) "oEE" = ( /obj/structure/machinery/light{ unacidable = 1; @@ -57876,40 +44827,33 @@ }, /obj/structure/surface/table/reinforced/almayer_B, /obj/item/device/flashlight/lamp/green, -/turf/open/floor/almayer{ - icon_state = "bluefull" - }, +/turf/open/floor/almayer/bluefull, /area/almayer/command/cichallway) -"oES" = ( -/obj/structure/sign/safety/water{ - pixel_x = 8; - pixel_y = 32 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_p) "oEX" = ( /obj/structure/pipes/vents/scrubber{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/almayer/red/north, /area/almayer/living/port_emb) -"oFG" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_p) -"oFM" = ( -/obj/docking_port/stationary/escape_pod/north, -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_m_p) +"oFm" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer/orange/east, +/area/almayer/engineering/lower/workshop) +"oFn" = ( +/obj/structure/surface/table/almayer, +/obj/item/tool/wirecutters/clippers, +/obj/item/restraint/handcuffs/zip, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_f_p) +"oFr" = ( +/obj/item/storage/firstaid/regular, +/obj/structure/surface/rack, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_a_s) +"oFz" = ( +/obj/effect/step_trigger/clone_cleaner, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/upper/fore_hallway) "oFV" = ( /obj/structure/sign/poster{ pixel_x = -32; @@ -57917,13 +44861,40 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/delta) +"oFY" = ( +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/lobby) +"oGf" = ( +/obj/structure/surface/rack, +/obj/item/storage/firstaid/regular, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_f_s) +"oGh" = ( +/obj/structure/sign/safety/distribution_pipes{ + pixel_x = 32 + }, +/turf/open/floor/almayer/orange/east, +/area/almayer/hallways/lower/port_aft_hallway) +"oGi" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_a_p) +"oGj" = ( +/obj/structure/sign/safety/bulkhead_door{ + pixel_x = -16 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/s_bow) +"oGm" = ( +/turf/open/floor/almayer/orange/east, +/area/almayer/hallways/lower/starboard_umbilical) "oGx" = ( /obj/structure/closet/secure_closet/surgical{ pixel_x = 30 }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/living/synthcloset) "oGy" = ( /obj/structure/machinery/camera/autoname/almayer{ @@ -57933,22 +44904,66 @@ /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/starboard_garden) "oGC" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/north1) -"oGP" = ( +"oGF" = ( +/obj/structure/platform{ + dir = 1 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/repair_bay) +"oGI" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/turf/open/floor/almayer/blue, +/area/almayer/hallways/upper/fore_hallway) +"oGJ" = ( +/obj/structure/pipes/standard/manifold/hidden/supply, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/engineering/lower/engine_core) +"oGL" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "orange" +/turf/open/floor/almayer/plate, +/area/almayer/hallways/lower/starboard_fore_hallway) +"oGP" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, +/turf/open/floor/almayer/orange, /area/almayer/living/port_emb) +"oGW" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/almayer/mono, +/area/almayer/hallways/upper/fore_hallway) +"oGY" = ( +/obj/item/device/flashlight/lamp/green{ + pixel_x = 5; + pixel_y = 3 + }, +/obj/structure/surface/table/woodentable/fancy, +/obj/structure/machinery/door_control/cl/office/evac{ + pixel_x = -5; + pixel_y = 4 + }, +/obj/structure/machinery/door_control/cl/office/divider{ + pixel_x = -5; + pixel_y = -3 + }, +/turf/open/floor/carpet, +/area/almayer/command/corporateliaison) "oHc" = ( /obj/structure/machinery/light, /obj/effect/decal/warning_stripes{ @@ -57969,80 +44984,99 @@ pixel_x = 1; pixel_y = 2 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "cargo_arrow" - }, +/turf/open/floor/almayer/cargo_arrow/west, /area/almayer/squads/charlie) +"oHf" = ( +/obj/structure/machinery/light/small{ + dir = 1 + }, +/obj/structure/largecrate/random/barrel/green, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/p_bow) +"oHg" = ( +/obj/structure/largecrate/supply, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/p_stern) "oHl" = ( /obj/structure/surface/table/almayer, /obj/item/storage/toolbox/electrical, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/southwest, /area/almayer/engineering/upper_engineering/port) +"oHs" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/disposalpipe/segment, +/turf/open/floor/almayer/green, +/area/almayer/hallways/lower/starboard_midship_hallway) +"oHt" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/sign/safety/cryo{ + pixel_x = 8; + pixel_y = -26 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_aft_hallway) "oHx" = ( /obj/structure/machinery/door/airlock/almayer/maint{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/engineering/laundry) -"oIc" = ( -/obj/structure/machinery/power/apc/almayer{ - dir = 4 - }, -/obj/structure/machinery/light/small, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "orange" - }, -/area/almayer/shipboard/brig/perma) -"oIn" = ( -/obj/structure/bed/chair{ - dir = 8; - pixel_y = 3 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_s) -"oIr" = ( +"oIa" = ( /obj/effect/decal/warning_stripes{ - icon_state = "NE-out"; - pixel_x = 1; + icon_state = "N"; pixel_y = 1 }, -/obj/effect/decal/warning_stripes{ - icon_state = "NW-out"; - pixel_x = -1; - pixel_y = 1 +/obj/structure/machinery/status_display{ + pixel_y = 30 }, -/obj/structure/machinery/door/airlock/almayer/research/reinforced{ - dir = 8; - name = "\improper Containment Airlock" +/turf/open/floor/almayer/red, +/area/almayer/hallways/upper/port) +"oIh" = ( +/turf/open/floor/almayer/red/west, +/area/almayer/shipboard/brig/processing) +"oIn" = ( +/obj/effect/landmark/start/liaison, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/upper/u_m_p) +"oIp" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/obj/structure/machinery/door/poddoor/almayer/biohazard/white{ +/obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/upper/fore_hallway) +"oIt" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" }, -/area/almayer/medical/medical_science) +/turf/open/floor/almayer, +/area/almayer/command/lifeboat) "oIB" = ( /turf/closed/wall/almayer, /area/almayer/command/combat_correspondent) "oIY" = ( -/obj/structure/machinery/cryopod/right{ - layer = 3.1; - pixel_y = 13 +/obj/structure/largecrate/random/barrel, +/turf/open/floor/almayer/plate, +/area/almayer/maint/upper/u_m_p) +"oJj" = ( +/obj/structure/machinery/light{ + dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "cargo" +/obj/structure/stairs/perspective{ + icon_state = "p_stair_full" }, -/area/almayer/command/airoom) +/turf/open/floor/almayer, +/area/almayer/hallways/lower/repair_bay) +"oJk" = ( +/turf/closed/wall/almayer, +/area/almayer/engineering/lower/workshop) +"oJm" = ( +/turf/open/floor/almayer/red/north, +/area/almayer/shipboard/brig/starboard_hallway) "oJp" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 1 @@ -58054,96 +45088,62 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hallways/hangar) -"oJR" = ( -/obj/effect/projector{ - name = "Almayer_AresDown"; - vector_x = 97; - vector_y = -65 - }, -/obj/structure/platform{ +"oJK" = ( +/obj/structure/pipes/standard/manifold/hidden/supply{ dir = 8 }, -/obj/structure/stairs{ - dir = 1; - icon_state = "ramptop" +/turf/open/floor/almayer/redfull, +/area/almayer/lifeboat_pumps/south2) +"oJL" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 }, /obj/structure/machinery/door_control{ - id = "ARES StairsUpper"; - name = "ARES Core Access"; - pixel_x = -24; - req_one_access_txt = "90;91;92" - }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" + id = "hangarentrancesouth"; + name = "South Hangar Shutters"; + pixel_y = 30; + req_one_access_txt = "2;3;12;19"; + throw_range = 15 }, -/area/almayer/command/airoom) +/turf/open/floor/almayer/plate, +/area/almayer/hallways/lower/port_fore_hallway) "oKb" = ( /obj/structure/machinery/status_display{ pixel_y = 30 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/almayer/living/grunt_rnr) "oKv" = ( /obj/structure/machinery/door/firedoor/border_only/almayer{ layer = 1.9 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/medical/lower_medical_medbay) "oKx" = ( /obj/structure/machinery/firealarm{ pixel_y = 28 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/bridgebunks) -"oLd" = ( -/obj/structure/platform{ - dir = 4 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_a_p) -"oLi" = ( -/obj/effect/landmark/start/marine/medic/bravo, -/obj/effect/landmark/late_join/bravo, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/squads/alpha) -"oLm" = ( -/obj/structure/machinery/door_control{ - id = "ARES StairsLower"; - name = "ARES Core Lockdown"; - pixel_x = -24; - pixel_y = 8; - req_one_access_txt = "90;91;92" - }, -/obj/structure/machinery/camera/autoname/almayer/containment/ares{ - dir = 4; - pixel_y = -8 - }, -/obj/effect/step_trigger/clone_cleaner, -/turf/open/floor/almayer/no_build{ - dir = 8; - icon_state = "silver" - }, -/area/almayer/command/airoom) -"oLv" = ( -/obj/structure/sign/safety/medical{ - pixel_x = 8; +"oLf" = ( +/obj/structure/sign/safety/security{ + pixel_x = 15; pixel_y = 32 }, -/turf/open/floor/almayer, -/area/almayer/hallways/port_hallway) -"oLw" = ( -/obj/structure/sign/safety/hvac_old{ - pixel_x = 8; - pixel_y = 32 +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/p_bow) +"oLj" = ( +/obj/effect/projector{ + name = "Almayer_Up2"; + vector_x = -1; + vector_y = 100 + }, +/obj/structure/machinery/light{ + dir = 8 }, /turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_m_p) +/area/almayer/hallways/lower/starboard_fore_hallway) "oLF" = ( /obj/structure/machinery/door/firedoor/border_only/almayer, /obj/structure/machinery/door/poddoor/almayer/open{ @@ -58159,35 +45159,25 @@ }, /obj/structure/machinery/door/airlock/multi_tile/almayer/secdoor/glass/reinforced{ dir = 2; - name = "Brig"; + name = "\improper Brig Lobby"; req_access = null }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/shipboard/brig/lobby) -"oLT" = ( -/obj/structure/machinery/firealarm{ - pixel_y = 28 - }, -/obj/structure/machinery/light{ - dir = 1 +"oLN" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out" }, -/turf/open/floor/almayer, -/area/almayer/hallways/port_hallway) +/turf/open/floor/almayer/plating/northeast, +/area/almayer/shipboard/stern_point_defense) "oLU" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/north, /area/almayer/medical/hydroponics) "oMe" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/req) "oMi" = ( /obj/structure/machinery/status_display{ @@ -58196,33 +45186,20 @@ /obj/structure/sign/safety/rewire{ pixel_x = 32 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/auxiliary_officer_office) "oMs" = ( /obj/structure/machinery/computer/cameras/almayer{ dir = 1 }, /obj/structure/surface/table/almayer, -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/light_grey_single_wide_up_to_down, /area/almayer/powered/agent) -"oMC" = ( -/obj/structure/machinery/light, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/living/briefing) "oMH" = ( /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, +/turf/open/floor/almayer/redfull, /area/almayer/squads/alpha_bravo_shared) "oMQ" = ( /obj/structure/pipes/vents/pump, @@ -58234,9 +45211,7 @@ icon_state = "pottedplant_21"; pixel_y = 15 }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/engineering/ce_room) "oNj" = ( /obj/structure/sign/prop1{ @@ -58247,9 +45222,7 @@ /turf/open/floor/almayer, /area/almayer/squads/charlie_delta_shared) "oNp" = ( -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/medical/hydroponics) "oNJ" = ( /obj/effect/decal/warning_stripes{ @@ -58259,117 +45232,172 @@ icon_state = "SW-out"; layer = 2.5 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/almayer/medical/upper_medical) +"oNK" = ( +/obj/structure/machinery/power/apc/almayer{ + dir = 1 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_a_s) +"oNM" = ( +/obj/structure/largecrate/random/barrel, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_m_p) +"oNP" = ( +/obj/structure/machinery/vending/cola{ + density = 0; + pixel_y = 16 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer/plate, +/area/almayer/living/briefing) +"oNW" = ( +/obj/structure/pipes/vents/scrubber{ + dir = 4 + }, +/obj/structure/sign/safety/storage{ + pixel_x = -17; + pixel_y = 7 + }, +/obj/structure/sign/safety/commline_connection{ + pixel_x = -17; + pixel_y = -7 + }, +/turf/open/floor/almayer/green/west, +/area/almayer/squads/req) +"oNY" = ( +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_18"; + pixel_y = 7 + }, +/obj/structure/machinery/door_control/cl/quarter/officedoor{ + pixel_x = -25 + }, +/turf/open/floor/wood/ship, +/area/almayer/command/corporateliaison) +"oOp" = ( +/obj/structure/surface/table/almayer, +/obj/item/tool/wirecutters, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_m_p) +"oOw" = ( +/obj/effect/step_trigger/clone_cleaner, +/obj/effect/decal/warning_stripes{ + icon_state = "SW-out"; + layer = 2.5 + }, +/turf/open/floor/almayer/red/east, +/area/almayer/hallways/upper/starboard) +"oON" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/obj/structure/machinery/power/apc/almayer, +/turf/open/floor/almayer/red/north, +/area/almayer/hallways/upper/starboard) "oOO" = ( /obj/structure/sign/safety/debark_lounge{ pixel_x = 15; pixel_y = -32 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/command/lifeboat) +"oOW" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/disposalpipe/junction{ + dir = 2; + icon_state = "pipe-j2" + }, +/turf/open/floor/almayer/orange/north, +/area/almayer/engineering/upper_engineering) +"oOZ" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer/red/west, +/area/almayer/hallways/upper/aft_hallway) "oPf" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 8 }, /turf/open/floor/plating/plating_catwalk, /area/almayer/command/lifeboat) -"oPk" = ( -/obj/structure/surface/table/almayer, -/obj/structure/machinery/door_control{ - id = "Interrogation Shutters"; - name = "\improper Shutters"; - pixel_x = -6; - pixel_y = -6; - req_access_txt = "3" - }, -/obj/item/device/taperecorder{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/structure/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" - }, -/area/almayer/shipboard/brig/main_office) "oPy" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22"; pixel_y = 8 }, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/southeast, /area/almayer/command/cichallway) -"oPD" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 +"oPz" = ( +/obj/structure/surface/table/almayer, +/obj/effect/decal/cleanable/dirt, +/obj/item/device/flashlight/lamp{ + pixel_x = 15 }, -/obj/structure/machinery/status_display{ - pixel_y = 30 +/obj/item/paper_bin/uscm{ + pixel_x = -7; + pixel_y = 6 }, -/turf/open/floor/almayer{ - icon_state = "red" +/obj/item/tool/pen{ + pixel_x = -9; + pixel_y = 3 }, -/area/almayer/hallways/aft_hallway) -"oPE" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" +/obj/item/tool/pen{ + pixel_x = 4; + pixel_y = -4 }, +/turf/open/floor/almayer/plate, +/area/almayer/living/briefing) +"oPE" = ( +/turf/open/floor/almayer/red/north, /area/almayer/command/cic) -"oPI" = ( -/obj/structure/largecrate/random/case/small, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_s) -"oQj" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 9 - }, -/obj/structure/machinery/door_control{ - id = "laddernortheast"; - name = "North East Ladders Shutters"; - pixel_y = -25; - req_one_access_txt = "2;3;12;19"; - throw_range = 15 - }, -/turf/open/floor/almayer{ - icon_state = "green" +"oPF" = ( +/obj/structure/machinery/light/small{ + dir = 1 }, -/area/almayer/hallways/starboard_hallway) -"oQo" = ( -/obj/item/stool, -/obj/effect/landmark/yautja_teleport, -/turf/open/floor/almayer{ - icon_state = "plate" +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_a_s) +"oPH" = ( +/obj/structure/window/framed/almayer, +/obj/structure/machinery/door/poddoor/shutters/almayer/open{ + dir = 4; + id = "Firing_Range_2"; + name = "range shutters" }, -/area/almayer/hull/upper_hull/u_m_s) +/turf/open/floor/plating, +/area/almayer/living/cryo_cells) +"oQn" = ( +/turf/open/floor/almayer/greencorner/north, +/area/almayer/hallways/lower/port_midship_hallway) "oQs" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/book/manual/surgery{ pixel_y = 4 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/command/cichallway) -"oQH" = ( -/turf/open/floor/almayer{ - icon_state = "cargo_arrow" +"oQw" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/decal/warning_stripes{ + icon_state = "S" }, +/turf/open/floor/almayer/orangecorner/north, +/area/almayer/hallways/lower/port_umbilical) +"oQH" = ( +/turf/open/floor/almayer/cargo_arrow, /area/almayer/living/briefing) +"oQI" = ( +/turf/open/floor/almayer/mono, +/area/almayer/hallways/upper/port) +"oQJ" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer, +/area/almayer/maint/hull/upper/u_f_s) +"oQL" = ( +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_a_s) "oQM" = ( /obj/structure/pipes/vents/pump{ dir = 4 @@ -58388,28 +45416,26 @@ pixel_x = 16; pixel_y = 9 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/west, /area/almayer/living/auxiliary_officer_office) -"oRj" = ( -/obj/structure/stairs{ - icon_state = "ramptop" - }, -/obj/structure/platform{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_p) "oRk" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/almayer/red/east, /area/almayer/shipboard/brig/processing) +"oRm" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ + name = "\improper Port Viewing Room" + }, +/turf/open/floor/almayer/test_floor4, +/area/almayer/maint/hull/upper/u_f_s) +"oRy" = ( +/obj/structure/sign/safety/autodoc{ + pixel_x = 20; + pixel_y = -32 + }, +/obj/structure/machinery/cm_vending/sorted/medical/bolted, +/obj/structure/medical_supply_link/green, +/turf/open/floor/almayer/sterile_green_side, +/area/almayer/medical/lower_medical_medbay) "oRJ" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -58423,17 +45449,13 @@ }, /obj/effect/landmark/map_item, /obj/item/device/megaphone, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) "oRO" = ( /obj/structure/sign/safety/storage{ pixel_x = 32 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/gym) "oRV" = ( /obj/structure/blocker/invisible_wall, @@ -58441,22 +45463,15 @@ icon_state = "W"; pixel_x = -1 }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, +/turf/open/floor/almayer/aicore/no_build, /area/almayer/command/airoom) -"oRZ" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/structure/machinery/light{ - dir = 1 - }, -/turf/open/floor/almayer, -/area/almayer/shipboard/brig/processing) +"oRW" = ( +/obj/structure/surface/table/almayer, +/obj/item/frame/table, +/obj/item/frame/table, +/obj/item/clipboard, +/turf/open/floor/almayer/plate, +/area/almayer/engineering/lower/workshop) "oSq" = ( /obj/item/device/radio/intercom{ freerange = 1; @@ -58472,18 +45487,28 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/northeast, /area/almayer/command/cichallway) "oSx" = ( /obj/structure/surface/table/almayer, /obj/item/tank/emergency_oxygen/double, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/engineering/upper_engineering/port) +"oSC" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/machinery/firealarm{ + dir = 4; + pixel_x = 21 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/lobby) +"oSG" = ( +/obj/structure/surface/table/almayer, +/obj/item/card/id/visa, +/obj/item/tool/crew_monitor, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_m_s) "oSL" = ( /obj/structure/window/reinforced{ dir = 8 @@ -58503,10 +45528,20 @@ /obj/structure/disposalpipe/trunk{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/alpha_bravo_shared) +"oSM" = ( +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_midship_hallway) +"oSR" = ( +/obj/structure/stairs{ + icon_state = "ramptop" + }, +/obj/structure/platform{ + dir = 4 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_a_p) "oTe" = ( /obj/item/prop/almayer/box, /obj/item/prop{ @@ -58532,49 +45567,114 @@ dir = 8; pixel_x = 17 }, -/turf/open/floor/almayer{ - icon_state = "test_floor5" - }, +/turf/open/floor/almayer/test_floor5, /area/almayer/squads/req) -"oTz" = ( -/obj/effect/decal/cleanable/blood/drip, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_m_p) "oTA" = ( /obj/structure/machinery/cryopod, /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/squads/alpha) -"oUG" = ( -/obj/structure/machinery/light{ - dir = 8 +"oTH" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "silver" +/obj/structure/disposalpipe/segment, +/turf/open/floor/almayer/test_floor4, +/area/almayer/hallways/lower/port_umbilical) +"oTO" = ( +/obj/structure/stairs/perspective{ + dir = 1; + icon_state = "p_stair_sn_full_cap" }, -/area/almayer/command/cichallway) -"oVP" = ( -/obj/structure/bed/chair{ - dir = 4 +/obj/structure/platform{ + dir = 8 }, +/turf/open/floor/almayer/plating/northeast, +/area/almayer/engineering/lower/engine_core) +"oUi" = ( +/obj/structure/pipes/standard/manifold/hidden/supply, /turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_a_p) -"oWf" = ( -/obj/structure/surface/table/almayer, -/obj/structure/machinery/recharger, -/obj/item/device/defibrillator, -/obj/item/device/defibrillator, -/obj/item/device/defibrillator, -/turf/open/floor/almayer{ - icon_state = "sterile_green_side" - }, +/area/almayer/hallways/lower/starboard_midship_hallway) +"oUt" = ( +/obj/structure/sign/safety/restrictedarea{ + pixel_x = 8; + pixel_y = 32 + }, +/turf/open/floor/almayer, +/area/almayer/maint/hull/upper/u_f_s) +"oUx" = ( +/obj/structure/machinery/light/small, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_a_p) +"oUz" = ( +/obj/structure/platform{ + dir = 8 + }, +/obj/structure/machinery/power/apc/almayer{ + dir = 1 + }, +/turf/open/floor/almayer/silver/north, +/area/almayer/hallways/lower/repair_bay) +"oUG" = ( +/obj/structure/machinery/light{ + dir = 8 + }, +/turf/open/floor/almayer/silver/west, +/area/almayer/command/cichallway) +"oUZ" = ( +/obj/structure/surface/rack, +/obj/item/tool/crowbar, +/obj/item/tool/weldingtool, +/obj/item/tool/wrench, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_m_p) +"oVf" = ( +/obj/structure/surface/table/almayer, +/obj/item/storage/box/evidence{ + pixel_x = 7; + pixel_y = 6 + }, +/obj/item/storage/box/evidence{ + pixel_x = 1; + pixel_y = 1 + }, +/obj/structure/machinery/light{ + dir = 1 + }, +/turf/open/floor/almayer/plate, +/area/almayer/shipboard/brig/general_equipment) +"oVk" = ( +/obj/structure/stairs{ + dir = 4 + }, +/obj/structure/machinery/light{ + dir = 1 + }, +/obj/effect/projector{ + name = "Almayer_Up3"; + vector_x = -1; + vector_y = 102 + }, +/turf/open/floor/plating/almayer/no_build, +/area/almayer/hallways/lower/port_fore_hallway) +"oVo" = ( +/turf/open/floor/almayer/plate, +/area/almayer/maint/upper/u_a_s) +"oVY" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 9 + }, +/turf/open/floor/almayer, +/area/almayer/maint/hull/upper/u_f_s) +"oWf" = ( +/obj/structure/surface/table/almayer, +/obj/structure/machinery/recharger, +/obj/item/device/defibrillator, +/obj/item/device/defibrillator, +/obj/item/device/defibrillator, +/turf/open/floor/almayer/sterile_green_side, /area/almayer/medical/lower_medical_lobby) "oWg" = ( /obj/structure/machinery/camera/autoname/almayer{ @@ -58589,99 +45689,140 @@ pixel_x = 32; pixel_y = -8 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/northeast, /area/almayer/shipboard/brig/cic_hallway) +"oWq" = ( +/obj/structure/largecrate/random/barrel/yellow, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_m_s) +"oWx" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/turf/open/floor/almayer/red/west, +/area/almayer/hallways/upper/port) "oWz" = ( /obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/starboard_garden) -"oWI" = ( -/obj/structure/machinery/cryopod/right{ - pixel_y = 6 +"oWE" = ( +/obj/structure/stairs, +/obj/structure/machinery/light{ + dir = 8 }, -/obj/structure/sign/safety/cryo{ - pixel_x = 32 +/obj/effect/projector{ + name = "Almayer_Up1"; + vector_x = -19; + vector_y = 98 }, -/turf/open/floor/almayer{ - icon_state = "cargo" +/turf/open/floor/plating/almayer/no_build, +/area/almayer/hallways/lower/starboard_midship_hallway) +"oWF" = ( +/obj/effect/step_trigger/clone_cleaner, +/obj/effect/decal/warning_stripes{ + icon_state = "W" }, -/area/almayer/shipboard/brig/cryo) +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/starboard_fore_hallway) +"oWK" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer/red/north, +/area/almayer/shipboard/brig/starboard_hallway) +"oWN" = ( +/obj/structure/pipes/vents/pump{ + dir = 1 + }, +/turf/open/floor/almayer/green, +/area/almayer/hallways/lower/port_midship_hallway) "oXb" = ( /obj/effect/landmark/start/marine/charlie, /obj/effect/landmark/late_join/charlie, /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/charlie) -"oXd" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "SW-out" - }, -/turf/open/floor/almayer{ - icon_state = "blue" - }, -/area/almayer/hallways/aft_hallway) "oXp" = ( /obj/effect/decal/cleanable/ash, /turf/open/floor/wood/ship, /area/almayer/shipboard/brig/cells) "oXJ" = ( /obj/structure/machinery/suit_storage_unit/compression_suit/uscm, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/engineering/upper_engineering/port) +"oXM" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 1 + }, +/turf/open/floor/almayer/orange, +/area/almayer/engineering/lower) "oXY" = ( /obj/structure/machinery/camera/autoname/almayer{ dir = 8; name = "ship-grade camera" }, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/southeast, /area/almayer/medical/lower_medical_medbay) -"oYb" = ( -/obj/structure/disposalpipe/segment{ +"oYi" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12 +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/port_midship_hallway) +"oYp" = ( +/obj/structure/bed/chair/office/dark{ + dir = 8 }, -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12; - pixel_y = 12 +/turf/open/floor/almayer/red/west, +/area/almayer/living/offices/flight) +"oYr" = ( +/obj/structure/machinery/door/airlock/almayer/maint{ + dir = 1 }, -/obj/structure/sign/safety/distribution_pipes{ - pixel_x = 8; - pixel_y = 32 +/turf/open/floor/almayer/test_floor4, +/area/almayer/maint/hull/upper/u_a_p) +"oYs" = ( +/obj/structure/bed/chair{ + dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/structure/machinery/light/small{ + dir = 4 }, -/area/almayer/hull/lower_hull/l_m_p) -"oYp" = ( -/obj/structure/bed/chair/office/dark{ - dir = 8 +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_a_s) +"oYA" = ( +/obj/structure/surface/table/almayer, +/obj/structure/dropship_equipment/fuel/cooling_system{ + layer = 3.5 }, -/area/almayer/living/offices/flight) -"oZd" = ( -/obj/structure/closet/secure_closet/personal/cabinet{ - req_access = null +/obj/item/clothing/glasses/welding{ + layer = 3.6; + pixel_x = 2; + pixel_y = 7 }, -/obj/item/clothing/suit/chef/classic, -/obj/item/tool/kitchen/knife/butcher, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/effect/decal/cleanable/blood/oil, +/obj/structure/machinery/computer/working_joe{ + dir = 4; + pixel_x = -17 + }, +/turf/open/floor/almayer/silver/west, +/area/almayer/hallways/lower/repair_bay) +"oYZ" = ( +/obj/effect/step_trigger/teleporter_vector{ + name = "Almayer_AresDown"; + vector_x = 96; + vector_y = -65 + }, +/obj/structure/stairs{ + dir = 1 }, -/area/almayer/hull/lower_hull/l_f_s) +/turf/open/floor/almayer/aicore/glowing/no_build/ai_floor3, +/area/almayer/command/airoom) "oZp" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/light, @@ -58693,11 +45834,56 @@ pixel_x = -9; pixel_y = 5 }, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/almayer/red/southwest, /area/almayer/living/offices/flight) +"oZx" = ( +/obj/effect/step_trigger/clone_cleaner, +/obj/structure/machinery/door/poddoor/shutters/almayer{ + id = "ARES ReceptStairs2"; + name = "\improper ARES Reception Shutters"; + plane = -7 + }, +/turf/open/floor/almayer/no_build/test_floor4, +/area/almayer/command/airoom) +"oZy" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/turf/open/floor/almayer, +/area/almayer/engineering/lower/workshop/hangar) +"oZD" = ( +/obj/structure/sign/poster/music{ + pixel_x = -27 + }, +/obj/structure/surface/table/almayer, +/obj/effect/decal/cleanable/dirt, +/obj/item/device/flashlight/lamp{ + pixel_x = 15 + }, +/obj/item/paper_bin/uscm{ + pixel_x = -7; + pixel_y = 6 + }, +/obj/item/tool/pen{ + pixel_x = -10; + pixel_y = -1 + }, +/obj/item/tool/pen{ + pixel_x = 3; + pixel_y = -4 + }, +/obj/item/tool/pen{ + pixel_x = -11; + pixel_y = 5 + }, +/turf/open/floor/almayer/plate, +/area/almayer/living/briefing) +"oZI" = ( +/obj/structure/sign/safety/maint{ + pixel_x = -17 + }, +/turf/open/floor/almayer/red/southwest, +/area/almayer/lifeboat_pumps/north2) "oZV" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/roller, @@ -58710,150 +45896,143 @@ /obj/item/reagent_container/spray/cleaner, /obj/item/reagent_container/spray/cleaner, /obj/item/reagent_container/spray/cleaner, -/turf/open/floor/almayer{ - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side, /area/almayer/medical/lower_medical_medbay) "paa" = ( /obj/structure/machinery/iv_drip, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/northwest, /area/almayer/medical/containment) -"paq" = ( -/obj/structure/surface/table/almayer, -/obj/structure/machinery/faxmachine/uscm/brig, -/turf/open/floor/almayer{ - icon_state = "plate" +"pas" = ( +/obj/structure/machinery/cryopod/right, +/obj/structure/sign/safety/cryo{ + pixel_x = 3; + pixel_y = 25 + }, +/obj/structure/sign/safety/rewire{ + pixel_x = 15; + pixel_y = 25 + }, +/obj/structure/machinery/light{ + dir = 4 + }, +/turf/open/floor/almayer/cargo, +/area/almayer/shipboard/brig/cryo) +"pax" = ( +/obj/effect/step_trigger/clone_cleaner, +/obj/structure/pipes/vents/pump/no_boom/gas{ + vent_tag = "Reception"; + dir = 8 }, -/area/almayer/shipboard/brig/main_office) +/turf/open/floor/almayer/aicore/glowing/no_build/ai_floor3, +/area/almayer/command/airoom) "paI" = ( /obj/structure/sign/safety/debark_lounge{ pixel_x = 15; pixel_y = -32 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/engineering/upper_engineering/starboard) -"paL" = ( -/turf/open/floor/almayer/uscm/directional{ - dir = 1 +"paJ" = ( +/obj/structure/machinery/camera/autoname/almayer{ + dir = 8; + name = "ship-grade camera" }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/p_bow) +"paL" = ( +/turf/open/floor/almayer/uscm/directional/north, /area/almayer/command/cic) -"pbb" = ( -/obj/effect/landmark/start/doctor, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/living/offices) -"pbh" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/structure/machinery/light{ - dir = 4 +"pbm" = ( +/obj/item/bedsheet/brown{ + pixel_y = 13 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "red" +/obj/structure/window/reinforced{ + dir = 8; + layer = 3.3; + pixel_y = 4 }, -/area/almayer/shipboard/brig/main_office) -"pbl" = ( -/obj/structure/bed, -/obj/item/toy/plush/farwa{ - pixel_x = 5 +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = -2; + pixel_y = 4 }, -/obj/item/clothing/under/redpyjamas, -/obj/item/bedsheet/orange, -/turf/open/floor/wood/ship, -/area/almayer/command/corporateliason) +/obj/structure/bed{ + can_buckle = 0 + }, +/obj/structure/bed{ + buckling_y = 13; + layer = 3.5; + pixel_y = 13 + }, +/obj/item/bedsheet/brown{ + layer = 3.1 + }, +/turf/open/floor/almayer/red/northwest, +/area/almayer/shipboard/brig/mp_bunks) +"pbo" = ( +/obj/structure/largecrate/random/barrel/white, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/s_stern) "pbp" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/captain_mess) "pbs" = ( /obj/structure/bed/chair/office/dark{ dir = 4; layer = 3.25 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/command/cic) -"pbC" = ( -/obj/item/bedsheet/red, -/obj/structure/bed, -/turf/open/floor/wood/ship, -/area/almayer/shipboard/brig/chief_mp_office) "pbV" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "emerald" - }, +/turf/open/floor/almayer/emerald/north, /area/almayer/command/cic) "pbW" = ( /obj/structure/machinery/vending/cola, -/turf/open/floor/almayer{ - icon_state = "bluefull" - }, +/turf/open/floor/almayer/bluefull, /area/almayer/command/cichallway) -"pch" = ( -/obj/structure/sign/safety/hvac_old{ - pixel_x = 8; - pixel_y = -32 +"pcc" = ( +/obj/structure/surface/rack, +/obj/item/paper{ + pixel_x = 3; + pixel_y = 3 }, +/obj/item/folder/yellow, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_f_s) +"pcf" = ( +/obj/item/tool/wet_sign, /turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_p) +/area/almayer/maint/hull/upper/u_f_s) "pcj" = ( /obj/structure/disposalpipe/segment{ dir = 4; icon_state = "pipe-c" }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "silvercorner" - }, +/turf/open/floor/almayer/silvercorner/north, /area/almayer/shipboard/brig/cic_hallway) "pcl" = ( -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/hallways/hangar) +"pcs" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/upper/fore_hallway) "pcv" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/east, /area/almayer/engineering/upper_engineering/port) -"pcD" = ( -/obj/structure/machinery/door/airlock/almayer/maint{ - dir = 1 - }, -/obj/structure/disposalpipe/segment{ - layer = 5.1; - name = "water pipe" - }, -/obj/structure/machinery/door/poddoor/almayer/open{ - id = "Hangar Lockdown"; - name = "\improper Hangar Lockdown Blast Door" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hull/lower_hull/l_f_p) "pcE" = ( /obj/structure/machinery/conveyor{ dir = 8; id = "gym_2"; name = "treadmill" }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/gym) "pcG" = ( /obj/structure/machinery/door_control{ @@ -58861,73 +46040,69 @@ name = "DCC Privacy Shutters"; pixel_x = 24 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/pilotbunks) "pcO" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk{ dir = 8 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "green" - }, +/turf/open/floor/almayer/green/northeast, /area/almayer/living/grunt_rnr) -"pcQ" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, -/area/almayer/shipboard/brig/main_office) -"pda" = ( -/obj/structure/largecrate/random/case/double, +"pcY" = ( +/obj/structure/disposalpipe/segment, /obj/structure/sign/safety/distribution_pipes{ - pixel_x = 32 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_s) -"pdk" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hull/lower_hull/l_f_p) -"pdG" = ( -/obj/structure/machinery/door/airlock/almayer/security{ - dir = 2; - name = "\improper Chief MP's Bedroom" + pixel_x = -17 }, -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 1 +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/upper/mess) +"pdo" = ( +/obj/structure/sign/safety/maint{ + pixel_x = 32 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +/turf/open/floor/almayer/red/southeast, +/area/almayer/lifeboat_pumps/north2) +"pdp" = ( +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/p_bow) +"pdK" = ( +/obj/structure/stairs/perspective{ + dir = 8; + icon_state = "p_stair_sn_full_cap" }, -/area/almayer/shipboard/brig/chief_mp_office) -"pef" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer, -/obj/structure/sign/safety/maint{ - pixel_x = 8; - pixel_y = -32 +/obj/structure/platform{ + dir = 4 }, -/obj/effect/decal/warning_stripes{ - icon_state = "SW-out"; - layer = 2.5 +/turf/open/floor/almayer/plating/northeast, +/area/almayer/engineering/lower/engine_core) +"pdT" = ( +/obj/structure/pipes/vents/pump, +/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ + pixel_y = 25 }, -/obj/effect/decal/warning_stripes{ - icon_state = "SE-out" +/turf/open/floor/almayer/sterile_green_side/north, +/area/almayer/shipboard/brig/medical) +"pek" = ( +/turf/closed/wall/almayer, +/area/almayer/maint/hull/upper/s_bow) +"pep" = ( +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/upper/u_f_p) +"peM" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/almayer/cargo, +/area/almayer/maint/hull/upper/u_f_s) +"peO" = ( +/obj/structure/sign/safety/medical{ + pixel_x = -17; + pixel_y = 6 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +/obj/structure/sign/safety/restrictedarea{ + pixel_x = -17; + pixel_y = -9 }, -/area/almayer/hallways/aft_hallway) +/turf/open/floor/almayer/red/west, +/area/almayer/shipboard/brig/lobby) "pfa" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 1 @@ -58935,66 +46110,52 @@ /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/navigation) "pfc" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer, /obj/structure/machinery/door/airlock/multi_tile/almayer/engidoor{ dir = 1 }, /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/engineering/upper_engineering/starboard) -"pfe" = ( -/obj/structure/surface/table/almayer, -/obj/effect/landmark/map_item{ - pixel_x = 5 - }, -/obj/item/facepaint/black{ - pixel_x = -10 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/living/briefing) -"pfh" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 1 +"pfd" = ( +/obj/structure/window/framed/almayer, +/obj/structure/machinery/door/poddoor/almayer/open{ + id = "Brig Lockdown Shutters"; + name = "\improper Brig Lockdown Shutter" }, -/turf/open/floor/almayer{ - icon_state = "orange" +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 }, -/area/almayer/engineering/lower_engineering) +/turf/open/floor/plating, +/area/almayer/shipboard/brig/starboard_hallway) "pfp" = ( /obj/effect/step_trigger/teleporter_vector{ name = "Almayer_Up4"; vector_x = -19; vector_y = 104 }, -/turf/open/floor/plating/almayer{ - allow_construction = 0 - }, +/turf/open/floor/plating/almayer/no_build, /area/almayer/stair_clone) -"pfA" = ( -/obj/item/tool/soap, -/obj/structure/machinery/light/small{ - dir = 8 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, -/area/almayer/engineering/upper_engineering/port) +"pfD" = ( +/obj/structure/machinery/cm_vending/sorted/marine_food, +/turf/open/floor/almayer, +/area/almayer/maint/hull/upper/u_f_p) "pfH" = ( /obj/structure/platform_decoration, -/turf/open/floor/almayer{ - icon_state = "red" - }, +/turf/open/floor/almayer/red, /area/almayer/lifeboat_pumps/south2) +"pfL" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + pixel_x = -1; + pixel_y = 2 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_f_s) "pfM" = ( /obj/structure/machinery/light{ dir = 4 @@ -59006,97 +46167,151 @@ /area/almayer/living/briefing) "pfT" = ( /obj/structure/machinery/ares/processor/interface, -/turf/open/floor/almayer/no_build{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/no_build/test_floor4, /area/almayer/command/airoom) -"pgt" = ( -/obj/structure/machinery/cm_vending/sorted/tech/comp_storage, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "orange" +"pga" = ( +/obj/structure/surface/table/almayer, +/obj/item/storage/firstaid/o2, +/obj/effect/spawner/random/tool, +/obj/effect/spawner/random/technology_scanner, +/turf/open/floor/almayer/plate, +/area/almayer/maint/upper/u_m_p) +"pgw" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 2 }, -/area/almayer/hull/lower_hull/l_m_s) +/turf/open/floor/almayer/dark_sterile, +/area/almayer/engineering/upper_engineering/port) "pgD" = ( /turf/closed/wall/almayer, /area/almayer/lifeboat_pumps/south1) -"pgH" = ( -/obj/effect/projector{ - name = "Almayer_AresDown"; - vector_x = 97; - vector_y = -65 +"pgJ" = ( +/obj/structure/sign/safety/hvac_old{ + pixel_x = 8; + pixel_y = -32 }, -/obj/structure/platform{ +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_m_p) +"pgM" = ( +/obj/structure/reagent_dispensers/water_cooler/walk_past{ + pixel_x = 10; + pixel_y = 3 + }, +/turf/open/floor/almayer/mono, +/area/almayer/medical/medical_science) +"pgN" = ( +/obj/structure/pipes/binary/pump/on{ dir = 4 }, -/obj/structure/stairs{ +/obj/structure/machinery/camera/autoname/almayer{ dir = 1; - icon_state = "ramptop" + name = "ship-grade camera" }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" +/obj/structure/sign/safety/life_support{ + pixel_x = 8; + pixel_y = -32 }, -/area/almayer/command/airoom) -"pgM" = ( -/obj/structure/reagent_dispensers/water_cooler/walk_past{ - pixel_x = 10; - pixel_y = 3 +/turf/open/floor/almayer/orange, +/area/almayer/engineering/lower) +"pgP" = ( +/obj/structure/disposalpipe/segment{ + dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "mono" +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/area/almayer/medical/medical_science) +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/cells) "pha" = ( /obj/structure/machinery/photocopier, -/turf/open/floor/almayer{ - icon_state = "plate" +/turf/open/floor/almayer/plate, +/area/almayer/living/briefing) +"phd" = ( +/obj/structure/sign/poster/safety{ + pixel_x = 27 }, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer/plate, /area/almayer/living/briefing) -"piO" = ( -/obj/structure/surface/rack, -/obj/item/tool/weldingtool, -/obj/item/tool/wrench, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_p) -"piX" = ( -/obj/item/trash/barcardine, -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_f_p) -"pjb" = ( -/obj/effect/step_trigger/clone_cleaner, -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 +"phj" = ( +/obj/structure/machinery/light/small{ + dir = 1 }, -/obj/structure/machinery/light{ +/obj/structure/machinery/photocopier/wyphotocopier, +/turf/open/floor/almayer/plate, +/area/almayer/command/combat_correspondent) +"phw" = ( +/obj/structure/surface/table/reinforced/almayer_B, +/obj/structure/machinery/computer/card{ + dir = 8 + }, +/turf/open/floor/almayer/plate, +/area/almayer/shipboard/panic) +"phN" = ( +/obj/structure/disposalpipe/junction{ + dir = 4; + icon_state = "pipe-j2" + }, +/obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/processing) +"pij" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_fore_hallway) +"piJ" = ( +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/stern) +"piK" = ( +/obj/structure/window/framed/almayer, +/obj/structure/machinery/door/poddoor/almayer/locked{ + dir = 2; + id = "Perma 1"; + name = "\improper cell shutter" + }, +/turf/open/floor/plating, +/area/almayer/shipboard/brig/perma) +"piQ" = ( +/obj/structure/machinery/status_display{ + pixel_y = 30 }, -/area/almayer/hallways/aft_hallway) +/turf/open/floor/almayer/blue/north, +/area/almayer/hallways/upper/midship_hallway) "pje" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/disposalpipe/segment, /turf/open/floor/almayer, /area/almayer/command/computerlab) -"pji" = ( -/turf/closed/wall/almayer, -/area/almayer/hallways/stern_hallway) -"pjw" = ( -/turf/open/floor/almayer{ - dir = 10; - icon_state = "sterile_green_side" +"pjh" = ( +/obj/structure/machinery/vending/snack, +/turf/open/floor/almayer/plate, +/area/almayer/shipboard/panic) +"pjj" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" }, +/turf/open/floor/almayer/red/northeast, +/area/almayer/hallways/upper/starboard) +"pjw" = ( +/turf/open/floor/almayer/sterile_green_side/southwest, /area/almayer/medical/lower_medical_lobby) +"pjz" = ( +/turf/closed/wall/almayer, +/area/almayer/maint/hull/upper/p_bow) "pjF" = ( /obj/structure/surface/table/almayer, /obj/item/paper, /obj/item/tool/lighter/random, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/medical/morgue) "pjG" = ( /obj/structure/disposalpipe/segment{ @@ -59105,93 +46320,71 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "plating_striped" - }, +/turf/open/floor/almayer/plating_striped, /area/almayer/squads/req) -"pjM" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "green" - }, -/area/almayer/hallways/aft_hallway) "pjP" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "SW-out" +/obj/structure/machinery/firealarm{ + pixel_y = 28 }, /turf/open/floor/almayer, -/area/almayer/engineering/engineering_workshop/hangar) -"pky" = ( -/obj/structure/largecrate/random/secure, -/turf/open/floor/almayer{ +/area/almayer/hallways/lower/starboard_aft_hallway) +"pjR" = ( +/obj/structure/disposalpipe/segment{ dir = 4; - icon_state = "green" + icon_state = "pipe-c" }, -/area/almayer/hallways/port_hallway) -"pkz" = ( -/turf/open/floor/almayer{ - icon_state = "redfull" +/obj/structure/machinery/light{ + dir = 8 }, -/area/almayer/squads/alpha_bravo_shared) -"plE" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" +/turf/open/floor/wood/ship, +/area/almayer/living/commandbunks) +"pkz" = ( +/turf/open/floor/almayer/redfull, +/area/almayer/squads/alpha_bravo_shared) +"pkA" = ( +/obj/structure/closet/firecloset, +/obj/structure/machinery/status_display{ + pixel_y = 30 }, -/area/almayer/engineering/engine_core) -"plI" = ( -/obj/structure/machinery/cm_vending/sorted/medical/blood, -/turf/open/floor/almayer{ +/turf/open/floor/almayer/orange/north, +/area/almayer/engineering/lower) +"pkS" = ( +/obj/structure/stairs{ dir = 1; - icon_state = "sterile_green_side" + icon_state = "ramptop" }, -/area/almayer/shipboard/brig/surgery) -"plZ" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer, -/obj/structure/disposalpipe/segment{ - dir = 4 +/obj/effect/projector{ + name = "Almayer_AresUp2"; + vector_x = -102; + vector_y = 61 }, -/obj/structure/pipes/standard/simple/hidden/supply{ +/turf/open/floor/almayer/aicore/glowing/no_build/ai_floor3, +/area/almayer/command/airoom) +"pld" = ( +/obj/item/book/manual/medical_diagnostics_manual, +/obj/structure/surface/rack, +/turf/open/floor/almayer/red/northeast, +/area/almayer/maint/upper/u_a_p) +"plv" = ( +/turf/open/floor/plating, +/area/almayer/maint/hull/lower/l_m_p) +"plK" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/upper/fore_hallway) +"pmd" = ( +/obj/structure/machinery/light, +/obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/structure/machinery/door/airlock/multi_tile/almayer/secdoor/glass/reinforced{ - access_modified = 1; - dir = 2; - name = "Brig"; - req_access = null; - req_one_access_txt = "1;3" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/shipboard/brig/main_office) -"pmk" = ( -/obj/structure/sign/safety/hvac_old{ - pixel_x = 8; - pixel_y = -32 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_p) +/turf/open/floor/almayer/plate, +/area/almayer/hallways/lower/port_aft_hallway) "pmq" = ( /obj/effect/decal/warning_stripes{ icon_state = "E"; pixel_x = 1 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "cargo_arrow" - }, +/turf/open/floor/almayer/cargo_arrow/west, /area/almayer/squads/delta) "pmv" = ( /obj/structure/machinery/door/airlock/almayer/marine/alpha{ @@ -59201,93 +46394,128 @@ dir = 2 }, /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/living/briefing) "pmH" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 6 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/briefing) "pmV" = ( -/obj/structure/prop/server_equipment/yutani_server/broken{ - density = 0; - desc = "A powerful server tower housing various AI functions."; - name = "server tower"; - pixel_y = 16 - }, /obj/structure/pipes/standard/simple/hidden/supply/no_boom, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" +/obj/structure/machinery/computer/tech_control{ + pixel_y = 16; + density = 0 }, +/turf/open/floor/almayer/no_build/ai_floors, /area/almayer/command/airoom) -"pno" = ( -/obj/structure/sign/safety/escapepod{ - pixel_y = 32 +"pnh" = ( +/obj/structure/ladder{ + height = 2; + id = "ForePortMaint" }, -/turf/open/floor/almayer, -/area/almayer/hallways/starboard_hallway) -"pnC" = ( -/obj/structure/machinery/cm_vending/sorted/medical/blood, -/turf/open/floor/almayer{ - icon_state = "sterile_green_side" +/obj/structure/sign/safety/ladder{ + pixel_x = -17 }, -/area/almayer/medical/lower_medical_medbay) -"pop" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ +/turf/open/floor/plating/almayer, +/area/almayer/maint/hull/upper/p_bow) +"pns" = ( +/obj/structure/pipes/standard/manifold/hidden/supply{ dir = 1 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/engineering/engineering_workshop) -"poq" = ( -/obj/item/pipe{ +/obj/structure/disposalpipe/segment{ dir = 4; - layer = 3.5 - }, -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_f_p) -"poR" = ( -/obj/structure/machinery/light/small{ - dir = 4 + icon_state = "pipe-c" }, /turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_s) -"poZ" = ( -/obj/structure/machinery/light{ - unacidable = 1; - unslashable = 1 +/area/almayer/shipboard/brig/cells) +"pnC" = ( +/obj/structure/machinery/cm_vending/sorted/medical/blood/bolted, +/turf/open/floor/almayer/sterile_green_side, +/area/almayer/medical/lower_medical_medbay) +"pnL" = ( +/obj/structure/machinery/constructable_frame{ + icon_state = "box_2" }, -/obj/structure/bed/chair/bolted{ - dir = 4 +/obj/item/weapon/baseballbat/metal{ + pixel_x = -2; + pixel_y = 8 }, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/effect/decal/warning_stripes{ + icon_state = "SW-out"; + pixel_x = -1 }, -/area/almayer/shipboard/brig/perma) -"ppc" = ( -/obj/structure/largecrate/supply/generator, -/obj/structure/machinery/light/small{ - dir = 1 +/turf/open/floor/almayer/orange/southeast, +/area/almayer/engineering/upper_engineering/starboard) +"pok" = ( +/obj/structure/filingcabinet{ + density = 0; + pixel_x = -8; + pixel_y = 18 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" +/obj/structure/filingcabinet{ + density = 0; + pixel_x = 8; + pixel_y = 18 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_f_p) +"poA" = ( +/obj/structure/surface/table/almayer, +/obj/item/reagent_container/glass/bucket/mopbucket, +/obj/item/reagent_container/glass/bucket/mopbucket{ + pixel_y = 10 + }, +/turf/open/floor/almayer/orange, +/area/almayer/engineering/lower/workshop/hangar) +"poD" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/area/almayer/hull/upper_hull/u_a_p) +/turf/open/floor/almayer, +/area/almayer/hallways/upper/midship_hallway) "ppe" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 5 }, /turf/open/floor/almayer, /area/almayer/living/auxiliary_officer_office) -"pqc" = ( -/turf/open/floor/almayer{ - icon_state = "mono" +"ppn" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/almayer/orange/north, +/area/almayer/engineering/lower) +"ppF" = ( +/obj/structure/sign/safety/terminal{ + pixel_x = -17 + }, +/obj/structure/surface/table/almayer, +/obj/item/clipboard{ + pixel_x = -4 + }, +/obj/item/device/taperecorder{ + pixel_x = 3; + pixel_y = 3 }, +/obj/item/device/camera, +/turf/open/floor/almayer, +/area/almayer/command/corporateliaison) +"ppG" = ( +/obj/structure/bed/sofa/south/grey, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_f_p) +"ppM" = ( +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/stern) +"ppV" = ( +/obj/structure/machinery/power/apc/almayer, +/turf/open/floor/almayer/plate, +/area/almayer/hallways/lower/starboard_midship_hallway) +"pqc" = ( +/turf/open/floor/almayer/mono, /area/almayer/living/pilotbunks) "pqi" = ( /obj/item/stack/cable_coil, @@ -59300,21 +46528,22 @@ /obj/item/clothing/head/welding, /obj/item/device/reagent_scanner, /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/almayer{ - icon_state = "sterile_green" - }, +/turf/open/floor/almayer/sterile_green, /area/almayer/medical/lockerroom) "pql" = ( /obj/structure/window/framed/almayer/hull, /turf/open/floor/plating, /area/almayer/engineering/upper_engineering/port) +"pqw" = ( +/obj/structure/sign/safety/maint{ + pixel_x = 32 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_aft_hallway) "pqD" = ( /obj/structure/bed, /obj/item/bedsheet/medical, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/east, /area/almayer/medical/lower_medical_medbay) "pqF" = ( /obj/structure/surface/table/almayer, @@ -59327,40 +46556,84 @@ /area/almayer/shipboard/brig/cells) "pqK" = ( /obj/structure/machinery/cryopod, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/squads/bravo) -"pqQ" = ( -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" +"pqM" = ( +/obj/structure/machinery/door/airlock/almayer/generic{ + dir = 1; + name = "\improper Workshop Vendors" + }, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer/test_floor4, +/area/almayer/hallways/lower/repair_bay) +"pqP" = ( +/obj/structure/machinery/cm_vending/sorted/tech/comp_storage, +/obj/structure/machinery/light{ + dir = 8 }, -/area/almayer/hallways/vehiclehangar) +/turf/open/floor/almayer/plate, +/area/almayer/engineering/lower/workshop) "pqX" = ( /obj/structure/bed/chair{ dir = 4 }, /turf/open/floor/almayer, /area/almayer/living/gym) +"pqY" = ( +/obj/structure/pipes/standard/manifold/hidden/supply, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/upper/aft_hallway) +"prf" = ( +/obj/structure/sign/safety/storage{ + pixel_x = -17 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_m_p) +"pri" = ( +/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ + pixel_y = -25 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer, +/area/almayer/maint/hull/upper/u_f_s) +"prl" = ( +/obj/structure/machinery/power/apc/almayer{ + dir = 1 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "SW-out" + }, +/turf/open/floor/almayer/plating/northeast, +/area/almayer/hallways/lower/vehiclehangar) "prx" = ( /obj/structure/bed/chair/comfy{ dir = 4 }, /obj/structure/disposalpipe/segment, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/medical/medical_science) "prE" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/tool/kitchen/tray, /obj/item/clothing/suit/chef/classic, /obj/item/clothing/head/chefhat, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/captain_mess) +"prP" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/turf/open/floor/almayer, +/area/almayer/engineering/lower/workshop/hangar) +"prX" = ( +/obj/structure/ladder{ + height = 2; + id = "AftStarboardMaint" + }, +/turf/open/floor/plating/almayer, +/area/almayer/maint/hull/upper/u_a_s) "prY" = ( /obj/structure/surface/table/almayer, /obj/item/trash/USCMtray, @@ -59372,33 +46645,14 @@ /obj/structure/bed/chair/comfy{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "bluefull" - }, +/turf/open/floor/almayer/bluefull, /area/almayer/living/bridgebunks) -"psm" = ( -/turf/closed/wall/almayer, -/area/almayer/hull/upper_hull/u_a_s) -"psp" = ( -/obj/structure/surface/table/almayer, -/obj/item/storage/toolbox/mechanical, -/obj/item/storage/toolbox/mechanical, -/obj/structure/machinery/light{ - dir = 8 - }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/engineering/engine_core) -"psy" = ( -/obj/structure/machinery/door/airlock/almayer/security{ - dir = 2; - name = "\improper Security Checkpoint" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +"psk" = ( +/obj/structure/machinery/camera/autoname/almayer{ + name = "ship-grade camera" }, -/area/almayer/hull/lower_hull/l_f_s) +/turf/open/floor/almayer/blue/north, +/area/almayer/hallways/upper/midship_hallway) "psK" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -59414,19 +46668,18 @@ pixel_x = -28; pixel_y = 23 }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/medical/lower_medical_medbay) "psO" = ( /obj/structure/bed/chair/wheelchair{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_corner" - }, +/turf/open/floor/almayer/sterile_green_corner/north, /area/almayer/medical/lower_medical_medbay) +"ptf" = ( +/obj/structure/window/framed/almayer, +/turf/open/floor/plating, +/area/almayer/engineering/upper_engineering) "pth" = ( /obj/structure/surface/table/almayer, /obj/item/folder/blue, @@ -59434,18 +46687,23 @@ /obj/structure/pipes/vents/scrubber{ dir = 8 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/east, /area/almayer/medical/upper_medical) "ptj" = ( /obj/structure/machinery/cm_vending/sorted/cargo_guns/squad_prep, /obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/charlie_delta_shared) +"ptq" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ + pixel_y = 25 + }, +/obj/structure/bed/chair/bolted, +/turf/open/floor/almayer/red/northeast, +/area/almayer/shipboard/brig/processing) "ptv" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/platform{ @@ -59453,9 +46711,56 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hallways/hangar) +"ptA" = ( +/obj/structure/stairs{ + dir = 1; + icon_state = "ramptop" + }, +/obj/structure/machinery/light{ + dir = 4 + }, +/obj/effect/projector{ + name = "Almayer_Down1"; + vector_x = 19; + vector_y = -98 + }, +/turf/open/floor/plating/almayer/no_build, +/area/almayer/hallways/upper/starboard) "ptK" = ( /turf/closed/wall/almayer, /area/almayer/engineering/upper_engineering/starboard) +"ptQ" = ( +/obj/structure/machinery/door/airlock/almayer/maint{ + dir = 1 + }, +/turf/open/floor/almayer/test_floor4, +/area/almayer/maint/hull/upper/s_stern) +"ptZ" = ( +/obj/structure/platform{ + dir = 4; + layer = 2.7 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/turf/open/floor/almayer/plating/northeast, +/area/almayer/engineering/lower/engine_core) +"pub" = ( +/obj/structure/sign/safety/distribution_pipes{ + pixel_x = 32 + }, +/turf/open/floor/almayer/green/east, +/area/almayer/hallways/upper/fore_hallway) +"pum" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_aft_hallway) "pun" = ( /obj/structure/window/framed/almayer/hull, /turf/open/floor/plating, @@ -59464,42 +46769,35 @@ /obj/structure/machinery/status_display{ pixel_x = -32 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/east, /area/almayer/living/cryo_cells) -"put" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "orange" - }, -/area/almayer/engineering/engineering_workshop) "puI" = ( /obj/structure/machinery/light{ dir = 4 }, /turf/open/floor/almayer, /area/almayer/hallways/hangar) -"puK" = ( -/obj/structure/largecrate/supply, -/turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_s) "puO" = ( /obj/structure/sign/safety/maint{ pixel_x = 32 }, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/north2) -"puR" = ( -/obj/structure/surface/rack, -/obj/item/tool/weldpack, -/obj/effect/spawner/random/tool, -/turf/open/floor/almayer{ - icon_state = "plate" +"puP" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/area/almayer/hull/lower_hull/l_f_p) +/turf/open/floor/almayer/orange/east, +/area/almayer/hallways/upper/midship_hallway) +"puT" = ( +/obj/structure/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/stern) "pvh" = ( /obj/structure/pipes/standard/manifold/hidden/supply, /obj/item/tool/warning_cone{ @@ -59509,29 +46807,22 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/almayer, /area/almayer/living/port_emb) -"pvt" = ( -/obj/structure/sign/safety/refridgeration{ - pixel_y = -32 - }, -/obj/structure/sign/safety/medical{ - pixel_x = 15; - pixel_y = -32 - }, -/obj/structure/machinery/camera/autoname/almayer{ - dir = 1; - name = "ship-grade camera" - }, -/turf/open/floor/almayer{ - icon_state = "green" +"pvi" = ( +/turf/open/floor/almayer/red/southeast, +/area/almayer/hallways/upper/aft_hallway) +"pvI" = ( +/obj/structure/sign/safety/rad_haz{ + pixel_x = 8; + pixel_y = 32 }, -/area/almayer/hallways/aft_hallway) +/obj/structure/machinery/power/reactor, +/turf/open/floor/almayer/test_floor4, +/area/almayer/engineering/lower/engine_core) "pvJ" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/squads/charlie) "pvK" = ( /obj/item/device/radio/intercom{ @@ -59554,46 +46845,43 @@ dir = 4; pixel_x = -17 }, -/turf/open/floor/almayer{ - icon_state = "silverfull" - }, +/turf/open/floor/almayer/silverfull, /area/almayer/command/securestorage) "pvP" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "redcorner" - }, +/turf/open/floor/almayer/redcorner/north, /area/almayer/shipboard/starboard_missiles) -"pwt" = ( -/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ - pixel_y = -25 +"pwl" = ( +/obj/structure/sign/safety/bridge{ + pixel_x = 15; + pixel_y = -32 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "redcorner" +/obj/structure/sign/safety/west{ + pixel_y = -32 }, -/area/almayer/shipboard/brig/processing) -"pwK" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" +/turf/open/floor/almayer/blue/southeast, +/area/almayer/hallways/upper/fore_hallway) +"pwx" = ( +/obj/structure/sign/safety/distribution_pipes{ + pixel_x = -17 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_s) +/turf/open/floor/almayer/orange/west, +/area/almayer/hallways/lower/starboard_midship_hallway) +"pwG" = ( +/obj/structure/bed/chair/office/dark{ + dir = 1 + }, +/turf/open/floor/almayer, +/area/almayer/engineering/lower/workshop/hangar) "pxj" = ( /obj/structure/bed, /obj/item/bedsheet/brown, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/command/combat_correspondent) "pxo" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side, /area/almayer/medical/medical_science) "pxD" = ( /obj/structure/machinery/vending/coffee{ @@ -59604,9 +46892,7 @@ pixel_x = -18; pixel_y = 4 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/grunt_rnr) "pxG" = ( /obj/structure/bed/chair/comfy/beige{ @@ -59618,39 +46904,17 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/lifeboat_pumps/south2) -"pxL" = ( -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/obj/structure/coatrack{ - pixel_x = -5; - pixel_y = 1 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 5 - }, -/turf/open/floor/wood/ship, -/area/almayer/living/commandbunks) "pyc" = ( /obj/structure/bed/stool, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "emerald" - }, +/turf/open/floor/almayer/emerald/north, /area/almayer/living/port_emb) "pyi" = ( /obj/structure/prop/almayer/missile_tube{ icon_state = "missiletubesouth" }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/almayer/shipboard/port_missiles) "pyj" = ( /turf/open/floor/almayer, @@ -59672,16 +46936,33 @@ pixel_x = -1; pixel_y = 1 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "cargo_arrow" - }, +/turf/open/floor/almayer/cargo_arrow/west, /area/almayer/squads/bravo) +"pyx" = ( +/obj/structure/machinery/door_display/research_cell{ + dir = 4; + id = "Containment Cell 4"; + name = "Control Panel"; + pixel_x = -15; + req_access_txt = "200" + }, +/obj/item/storage/fancy/cigarettes/blackpack{ + pixel_x = -1; + pixel_y = 1 + }, +/obj/structure/surface/table/woodentable/fancy, +/obj/item/storage/fancy/cigarettes/wypacket{ + pixel_x = 6; + pixel_y = 3 + }, +/obj/item/tool/lighter/zippo/gold{ + pixel_x = 2 + }, +/turf/open/floor/carpet, +/area/almayer/command/corporateliaison) "pyy" = ( /obj/structure/filingcabinet, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/command/lifeboat) "pyC" = ( /obj/structure/largecrate/random/barrel/red, @@ -59696,9 +46977,7 @@ pixel_x = 8; pixel_y = 32 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) "pyL" = ( /obj/structure/surface/rack, @@ -59707,102 +46986,88 @@ /obj/structure/ob_ammo/ob_fuel, /obj/structure/ob_ammo/ob_fuel, /obj/structure/ob_ammo/ob_fuel, -/turf/open/floor/almayer{ - icon_state = "red" - }, +/turf/open/floor/almayer/red, /area/almayer/shipboard/weapon_room) "pzc" = ( -/obj/structure/pipes/vents/pump, -/obj/structure/bed/chair{ +/obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" +/obj/structure/largecrate/random/barrel/white, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/s_bow) +"pzd" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/turf/open/floor/almayer/red/southwest, +/area/almayer/hallways/upper/port) +"pzj" = ( +/obj/structure/machinery/door/poddoor/shutters/almayer/open{ + dir = 4; + id = "northcheckpoint"; + name = "\improper Checkpoint Shutters" }, -/area/almayer/shipboard/brig/main_office) +/turf/open/floor/almayer/redfull, +/area/almayer/hallways/lower/starboard_midship_hallway) +"pzw" = ( +/obj/structure/sign/safety/maint{ + pixel_x = 8; + pixel_y = 32 + }, +/turf/open/floor/almayer/green/north, +/area/almayer/hallways/upper/fore_hallway) "pzG" = ( /obj/docking_port/stationary/emergency_response/port1, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/almayer/shipboard/starboard_point_defense) "pzJ" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/command/lifeboat) -"pzO" = ( -/obj/item/tool/warning_cone{ - pixel_y = 13 - }, -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_f_p) -"pzQ" = ( -/obj/structure/largecrate/random/barrel, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_m_p) +"pzM" = ( +/turf/open/floor/almayer/plating/northeast, +/area/almayer/engineering/lower/engine_core) "pzV" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "bluecorner" - }, +/turf/open/floor/almayer/bluecorner/north, /area/almayer/living/briefing) -"pzZ" = ( -/obj/structure/largecrate/random/barrel/blue, -/turf/open/floor/almayer{ - icon_state = "plate" +"pzW" = ( +/turf/closed/wall/almayer/reinforced, +/area/almayer/hallways/lower/vehiclehangar) +"pzX" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 9 }, -/area/almayer/hull/lower_hull/l_f_s) -"pAR" = ( -/obj/structure/pipes/vents/scrubber{ - dir = 8 +/turf/open/floor/almayer, +/area/almayer/engineering/upper_engineering) +"pAm" = ( +/turf/open/floor/almayer, +/area/almayer/engineering/lower/engine_core) +"pAV" = ( +/obj/structure/platform{ + dir = 1 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" +/obj/item/tool/mop, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_a_p) +"pBG" = ( +/turf/closed/wall/almayer, +/area/almayer/command/corporateliaison) +"pCq" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 }, -/area/almayer/hallways/starboard_umbilical) -"pBn" = ( -/obj/structure/sign/safety/escapepod{ +/obj/structure/sign/safety/life_support{ pixel_x = 8; pixel_y = -32 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "greencorner" - }, -/area/almayer/hallways/port_hallway) -"pBW" = ( -/turf/open/floor/almayer{ - icon_state = "orangecorner" - }, -/area/almayer/hull/upper_hull/u_a_s) -"pCi" = ( -/turf/closed/wall/almayer/outer, -/area/almayer/hull/upper_hull/u_f_s) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/engineering/lower) "pCr" = ( /obj/structure/machinery/cm_vending/sorted/attachments/blend, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/req) -"pCD" = ( -/obj/structure/pipes/standard/cap/hidden{ - dir = 4 - }, -/obj/structure/sign/safety/life_support{ - pixel_x = 14; - pixel_y = -25 - }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, -/area/almayer/hallways/stern_hallway) "pDh" = ( /obj/structure/machinery/power/monitor{ name = "Core Power Monitoring" @@ -59817,19 +47082,8 @@ pixel_x = 15; pixel_y = -32 }, -/turf/open/floor/almayer{ - icon_state = "tcomms" - }, +/turf/open/floor/almayer/tcomms, /area/almayer/engineering/upper_engineering/starboard) -"pDm" = ( -/obj/structure/surface/rack, -/obj/item/roller, -/obj/item/roller, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_m_s) "pDo" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -59838,10 +47092,7 @@ pixel_x = 15; pixel_y = -32 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/almayer/shipboard/starboard_point_defense) "pDr" = ( /obj/structure/pipes/standard/simple/hidden/supply, @@ -59855,10 +47106,7 @@ icon_state = "E"; pixel_x = 1 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "cargo_arrow" - }, +/turf/open/floor/almayer/cargo_arrow/west, /area/almayer/squads/bravo) "pDB" = ( /obj/structure/disposalpipe/trunk{ @@ -59873,10 +47121,18 @@ icon_state = "W"; pixel_x = -1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/charlie) +"pDW" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 9 + }, +/obj/structure/machinery/camera/autoname/almayer{ + dir = 8; + name = "ship-grade camera" + }, +/turf/open/floor/almayer/red/southeast, +/area/almayer/shipboard/brig/chief_mp_office) "pEl" = ( /obj/structure/disposalpipe/segment{ dir = 4; @@ -59890,15 +47146,8 @@ pixel_x = 8; pixel_y = 24 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/almayer/green/north, /area/almayer/living/grunt_rnr) -"pEy" = ( -/obj/item/ammo_casing/bullet, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_p) "pEB" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -59920,81 +47169,62 @@ icon_state = "N"; pixel_y = 1 }, -/turf/open/floor/almayer/research/containment/floor2{ - dir = 1 - }, +/turf/open/floor/almayer/research/containment/floor2/north, /area/almayer/medical/containment/cell) "pEY" = ( /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 2 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/lifeboat_pumps/south1) -"pFa" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 9 - }, -/turf/open/floor/almayer{ - allow_construction = 0 - }, -/area/almayer/shipboard/brig/lobby) -"pFg" = ( -/obj/structure/window/framed/almayer/hull/hijack_bustable, -/obj/structure/machinery/door/poddoor/almayer/locked{ - dir = 8; - id = "Perma 1"; - name = "\improper isolation shutter" - }, -/obj/structure/machinery/door/poddoor/almayer/open{ - dir = 4; - id = "courtyard_cells"; - name = "\improper Courtyard Lockdown Shutter" +"pFq" = ( +/obj/structure/surface/table/almayer, +/obj/item/device/binoculars, +/obj/item/device/whistle{ + pixel_y = 5 }, -/turf/open/floor/plating, -/area/almayer/shipboard/brig/perma) -"pFA" = ( -/obj/structure/pipes/standard/simple/visible{ - dir = 4 +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_f_s) +"pFr" = ( +/obj/structure/machinery/light/small, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_a_p) +"pGh" = ( +/obj/effect/decal/cleanable/cobweb{ + pixel_x = -9; + pixel_y = 19 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orangecorner" +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_m_p) +"pGj" = ( +/obj/structure/largecrate/random/barrel/blue, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_a_s) +"pGE" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/tool/hand_labeler{ + pixel_x = 7 }, -/area/almayer/engineering/lower_engineering) -"pFM" = ( -/obj/structure/machinery/light/small{ - dir = 8 +/obj/item/paper_bin/uscm{ + pixel_y = 5 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_a_p) -"pFP" = ( -/obj/effect/landmark/yautja_teleport, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/item/tool/pen, +/obj/structure/machinery/computer/working_joe{ + dir = 8; + pixel_x = 17 }, -/area/almayer/hull/lower_hull/l_a_p) +/obj/item/device/megaphone, +/obj/item/book/manual/medical_diagnostics_manual, +/turf/open/floor/almayer/sterile_green_side, +/area/almayer/medical/lower_medical_medbay) "pGG" = ( -/obj/structure/surface/table/almayer, -/obj/item/storage/fancy/cigarettes/lucky_strikes, -/obj/item/tool/lighter, -/obj/item/clothing/glasses/sunglasses/blindfold, -/obj/structure/machinery/firealarm{ - pixel_y = 28 - }, -/obj/structure/machinery/door_control{ - id = "Execution Shutters"; - name = "Privacy Shutters"; - pixel_y = 12; - req_access_txt = "3" +/obj/effect/landmark/start/doctor, +/obj/structure/sign/safety/maint{ + pixel_y = 26 }, -/turf/open/floor/almayer, -/area/almayer/shipboard/brig/execution) +/obj/effect/landmark/late_join/doctor, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/living/offices) "pGK" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -60002,57 +47232,27 @@ /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/medical/hydroponics) -"pGM" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/starboard_hallway) -"pGN" = ( -/obj/structure/closet/crate, -/obj/item/stack/sheet/aluminum{ - amount = 20 - }, -/obj/item/stack/sheet/copper{ - amount = 20; - pixel_y = 4 - }, -/obj/item/stack/sheet/mineral/gold{ - amount = 3; - pixel_y = 4 - }, -/obj/item/stack/sheet/mineral/silver{ - amount = 5; - pixel_x = 4; - pixel_y = 2 - }, -/obj/item/stack/sheet/mineral/phoron{ - amount = 25 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/engineering/engineering_workshop/hangar) -"pGP" = ( -/obj/structure/surface/table/almayer, -/obj/item/storage/box/lights/bulbs{ - pixel_x = 3; - pixel_y = 7 - }, -/obj/item/storage/box/lights/mixed, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_s) "pGT" = ( /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/brig/general_equipment) +"pHc" = ( +/obj/structure/machinery/autolathe, +/turf/open/floor/almayer/plate, +/area/almayer/engineering/lower/workshop) +"pHh" = ( +/obj/item/device/radio/intercom{ + freerange = 1; + name = "General Listening Channel"; + pixel_y = 28 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer/green/north, +/area/almayer/hallways/lower/port_midship_hallway) "pHp" = ( /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/brig/perma) @@ -60062,52 +47262,57 @@ }, /turf/open/floor/almayer, /area/almayer/squads/charlie_delta_shared) +"pHD" = ( +/obj/structure/platform_decoration{ + dir = 4 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_a_p) +"pHF" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/vehiclehangar) "pHG" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, /obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "bluecorner" - }, +/turf/open/floor/almayer/bluecorner, /area/almayer/living/basketball) -"pIf" = ( -/obj/structure/disposalpipe/junction{ - dir = 8 +"pId" = ( +/obj/item/storage/box/nade_box/tear_gas, +/obj/item/storage/box/nade_box/tear_gas{ + pixel_x = 3; + pixel_y = 5 }, -/obj/structure/pipes/standard/manifold/hidden/supply, +/obj/structure/surface/table/almayer, /turf/open/floor/plating/plating_catwalk, -/area/almayer/engineering/lower_engineering) -"pIk" = ( -/obj/structure/ladder{ - height = 1; - id = "AftStarboardMaint" - }, -/obj/structure/sign/safety/ladder{ - pixel_x = 8; - pixel_y = 32 - }, -/turf/open/floor/plating/almayer, -/area/almayer/hull/lower_hull/l_a_s) -"pIH" = ( -/obj/structure/machinery/door_control{ - id = "perma_exit"; - name = "\improper Exit Shutters"; - pixel_y = -22; - req_access_txt = "3" +/area/almayer/shipboard/brig/armory) +"pIo" = ( +/obj/structure/machinery/door/airlock/almayer/maint{ + dir = 1 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "redcorner" +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_f_s) +"pIC" = ( +/obj/structure/machinery/door/airlock/almayer/maint, +/obj/structure/machinery/door/poddoor/almayer/open{ + dir = 4; + id = "Hangar Lockdown"; + name = "\improper Hangar Lockdown Blast Door" }, -/area/almayer/shipboard/brig/perma) +/turf/open/floor/almayer/test_floor4, +/area/almayer/maint/lower/constr) "pIU" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/medical/lockerroom) "pIV" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -60115,35 +47320,26 @@ }, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/south1) -"pJe" = ( -/obj/structure/surface/table/woodentable/fancy, -/obj/item/prop/tableflag/uscm{ - pixel_x = -5 - }, -/obj/item/prop/tableflag/uscm2{ - pixel_x = 5 +"pIZ" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 }, -/turf/open/floor/carpet, -/area/almayer/living/commandbunks) -"pJi" = ( -/obj/structure/closet/firecloset, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "red" +/turf/open/floor/almayer/test_floor4, +/area/almayer/lifeboat_pumps/north1) +"pJq" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SE-out"; + pixel_x = 1 }, -/area/almayer/shipboard/brig/general_equipment) -"pJn" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/machinery/light/small{ +/turf/open/floor/almayer/plating/northeast, +/area/almayer/hallways/lower/vehiclehangar) +"pJr" = ( +/obj/structure/pipes/vents/scrubber{ dir = 1 }, -/obj/structure/largecrate/random/secure{ - pixel_x = -5 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_m_s) +/turf/open/floor/almayer/plate, +/area/almayer/engineering/lower/engine_core) "pJD" = ( /obj/structure/pipes/vents/scrubber{ dir = 1 @@ -60159,78 +47355,66 @@ /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/living/port_emb) -"pJE" = ( -/obj/structure/closet/secure_closet{ - name = "\improper Execution Firearms" +"pJS" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/sign/safety/distribution_pipes{ + pixel_x = 32 }, -/obj/item/ammo_magazine/rifle/m4ra, -/obj/item/ammo_magazine/rifle/m4ra, -/obj/item/ammo_magazine/rifle/m4ra, -/obj/item/ammo_magazine/rifle/m4ra, -/obj/item/ammo_magazine/rifle/m4ra, -/obj/item/ammo_magazine/rifle/m4ra, -/obj/item/weapon/gun/rifle/m4ra, -/obj/item/weapon/gun/rifle/m4ra, -/obj/item/weapon/gun/rifle/m4ra, -/obj/structure/machinery/light/small{ +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/upper/u_a_s) +"pKh" = ( +/obj/structure/machinery/alarm/almayer{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "redcorner" +/obj/effect/landmark/start/nurse, +/obj/effect/landmark/late_join/nurse, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/living/offices) +"pKB" = ( +/obj/structure/surface/rack, +/obj/item/circuitboard/firealarm, +/obj/item/circuitboard, +/obj/item/clipboard, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/s_stern) +"pKH" = ( +/obj/structure/pipes/vents/pump{ + dir = 1 }, -/area/almayer/shipboard/brig/execution) -"pJJ" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "green" +/turf/open/floor/almayer/orangecorner, +/area/almayer/hallways/upper/aft_hallway) +"pKL" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/machinery/light/small{ + dir = 1 }, -/area/almayer/hallways/port_hallway) -"pJK" = ( -/obj/structure/bookcase{ - icon_state = "book-5"; - name = "medical manuals bookcase"; - opacity = 0 +/obj/structure/largecrate/random/secure{ + pixel_x = -5 }, -/obj/item/book/manual/surgery, -/obj/item/book/manual/research_and_development, -/obj/item/book/manual/medical_diagnostics_manual, -/obj/item/book/manual/medical_cloning, -/obj/structure/machinery/light{ +/turf/open/floor/almayer/plate, +/area/almayer/maint/upper/u_m_s) +"pKU" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/wood/ship, -/area/almayer/living/commandbunks) -"pJR" = ( -/obj/effect/step_trigger/teleporter_vector{ - name = "Almayer_AresUp"; - vector_x = -97; - vector_y = 65 - }, -/obj/structure/stairs{ - dir = 1 - }, -/turf/open/floor/almayer/no_build{ - dir = 4 +/obj/structure/machinery/firealarm{ + pixel_y = 28 }, -/area/almayer/command/airoom) -"pJW" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/machinery/door/airlock/almayer/maint{ - access_modified = 1; - dir = 1; - req_access = null; - req_one_access = null; - req_one_access_txt = "3;22;19" +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/mp_bunks) +"pKW" = ( +/obj/structure/machinery/door/poddoor/almayer/open{ + id = "Hangar Lockdown"; + name = "\improper Hangar Lockdown Blast Door" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +/obj/structure/machinery/door/poddoor/shutters/almayer{ + id = "DeployWorkR"; + name = "\improper Workshop Shutters" }, -/area/almayer/hull/lower_hull/l_f_s) +/turf/open/floor/almayer/test_floor4, +/area/almayer/hallways/lower/repair_bay) "pKZ" = ( /obj/structure/disposalpipe/segment{ dir = 2; @@ -60239,10 +47423,29 @@ /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/medical/lower_medical_medbay) +"pLa" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/almayer/plate, +/area/almayer/command/corporateliaison) +"pLt" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/turf/open/floor/almayer/plating/northeast, +/area/almayer/engineering/lower/engine_core) +"pLE" = ( +/obj/structure/machinery/firealarm{ + pixel_y = 28 + }, +/turf/open/floor/almayer/blue/north, +/area/almayer/hallways/upper/midship_hallway) "pLO" = ( /obj/structure/machinery/door/poddoor/shutters/almayer{ dir = 4; @@ -60259,29 +47462,36 @@ /area/almayer/medical/containment/cell) "pLW" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/living/pilotbunks) -"pLZ" = ( -/obj/effect/landmark/crap_item, -/turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_p) "pMj" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/captain_mess) +"pMk" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_y = 1 + }, +/turf/open/floor/almayer/mono, +/area/almayer/lifeboat_pumps/north2) "pMp" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/medical/morgue) +"pMA" = ( +/turf/open/floor/almayer/red/west, +/area/almayer/hallways/upper/port) +"pMH" = ( +/obj/item/tool/wet_sign, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_f_s) "pMJ" = ( /obj/structure/bed/chair{ dir = 1 @@ -60295,9 +47505,7 @@ /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "blue" - }, +/turf/open/floor/almayer/blue, /area/almayer/living/port_emb) "pNa" = ( /obj/structure/machinery/door/poddoor/almayer/open{ @@ -60305,39 +47513,13 @@ id = "CIC Lockdown"; name = "\improper Combat Information Center Blast Door" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/command/cichallway) -"pNp" = ( -/obj/structure/closet/emcloset, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_s) -"pNG" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/largecrate/random/case/double, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_p) -"pNK" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, -/area/almayer/living/auxiliary_officer_office) "pNM" = ( /obj/structure/platform{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/almayer/red/east, /area/almayer/lifeboat_pumps/south1) "pNP" = ( /obj/effect/decal/warning_stripes{ @@ -60348,64 +47530,60 @@ pixel_y = 7 }, /mob/living/simple_animal/mouse/white/Doc, -/turf/open/floor/almayer{ - icon_state = "sterile_green" - }, +/turf/open/floor/almayer/sterile_green, /area/almayer/medical/hydroponics) -"pNQ" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "NE-out"; - pixel_y = 1 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "NW-out"; - pixel_y = 1 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/aft_hallway) "pOi" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/almayer, /area/almayer/living/offices) -"pOB" = ( -/obj/item/trash/cigbutt{ - pixel_x = -10; - pixel_y = 13 - }, -/obj/structure/prop/invuln/lattice_prop{ - icon_state = "lattice10"; - pixel_x = -16; - pixel_y = 16 - }, -/turf/open/floor/almayer{ - icon_state = "plate" +"pOp" = ( +/obj/structure/machinery/camera/autoname/almayer{ + dir = 4; + name = "ship-grade camera" }, -/area/almayer/hull/lower_hull/l_m_s) +/obj/structure/largecrate/random/case/small, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/s_bow) "pOD" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/disposalpipe/segment{ dir = 2; icon_state = "pipe-c" }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/living/pilotbunks) -"pON" = ( -/turf/open/floor/almayer/uscm/directional{ - dir = 8 +"pOH" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 }, +/turf/open/floor/almayer/plating/northeast, +/area/almayer/shipboard/panic) +"pON" = ( +/turf/open/floor/almayer/uscm/directional/west, /area/almayer/command/cic) +"pOW" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_aft_hallway) "pOY" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/structure/machinery/microwave{ density = 0; pixel_y = 9 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/grunt_rnr) +"pPd" = ( +/obj/structure/machinery/door/poddoor/shutters/almayer{ + dir = 2; + id = "OuterShutter"; + name = "\improper Saferoom Shutters" + }, +/turf/open/floor/almayer/test_floor4, +/area/almayer/shipboard/panic) "pPv" = ( /obj/structure/closet/cabinet, /obj/item/reagent_container/food/drinks/bottle/wine, @@ -60426,82 +47604,73 @@ /obj/item/reagent_container/food/drinks/bottle/sake, /obj/item/reagent_container/food/drinks/bottle/sake, /obj/item/reagent_container/food/drinks/bottle/sake, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/captain_mess) -"pPz" = ( -/obj/structure/machinery/vending/cola, -/turf/open/floor/almayer{ - icon_state = "plate" +"pPy" = ( +/obj/structure/sign/safety/restrictedarea{ + pixel_x = 8; + pixel_y = -32 }, -/area/almayer/hull/upper_hull/u_a_s) -"pPF" = ( -/obj/structure/machinery/power/apc/almayer/hardened, -/obj/effect/decal/warning_stripes{ - icon_state = "SW-out"; - pixel_x = -1 +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer, +/area/almayer/maint/hull/upper/u_f_p) +"pPA" = ( +/obj/structure/sign/poster{ + desc = "One of those hot, tanned babes back the beaches of good ol' Earth."; + icon_state = "poster12"; + name = "Beach Babe Pinup"; + pixel_x = 27; + serial_number = 12 }, -/turf/open/floor/almayer{ - icon_state = "mono" +/obj/structure/bed/chair/comfy/delta{ + dir = 8 }, -/area/almayer/lifeboat_pumps/south2) +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer/plate, +/area/almayer/living/briefing) +"pPG" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_y = 1 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_a_s) "pPM" = ( /obj/structure/surface/rack, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/northeast, /area/almayer/command/securestorage) "pPN" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/almayer/red/east, /area/almayer/shipboard/port_missiles) -"pPV" = ( -/obj/structure/pipes/vents/pump, -/obj/structure/mirror{ - pixel_y = 32 - }, -/obj/structure/sink{ - pixel_y = 24 - }, -/obj/structure/machinery/door_control{ - id = "Alpha_2"; - name = "Door Lock"; - normaldoorcontrol = 1; - pixel_x = 23; - specialfunctions = 4 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, -/area/almayer/living/port_emb) -"pQq" = ( +"pPQ" = ( /obj/effect/decal/warning_stripes{ - icon_state = "SW-out" - }, -/obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/engineering/engine_core) -"pQu" = ( -/obj/structure/machinery/chem_dispenser/soda{ - pixel_y = 20 + icon_state = "S" }, -/turf/open/floor/almayer, -/area/almayer/command/corporateliason) +/turf/open/floor/almayer/plating/northeast, +/area/almayer/hallways/lower/vehiclehangar) +"pQc" = ( +/obj/structure/window/framed/almayer, +/turf/open/floor/plating, +/area/almayer/living/offices) +"pQr" = ( +/obj/structure/bed, +/turf/open/floor/almayer/plate, +/area/almayer/shipboard/brig/perma) "pQy" = ( /obj/structure/window/framed/almayer, /turf/open/floor/plating, /area/almayer/living/bridgebunks) +"pQz" = ( +/obj/structure/machinery/door/airlock/almayer/security/reinforced{ + access_modified = 1; + closeOtherId = "astroladder_s"; + name = "\improper Astronavigational Deck"; + req_access = null; + req_one_access_txt = "3;19" + }, +/turf/open/floor/almayer/test_floor4, +/area/almayer/shipboard/navigation) "pQF" = ( /obj/structure/machinery/cm_vending/sorted/cargo_guns/squad{ req_access = null; @@ -60511,17 +47680,15 @@ vend_y_offset = 0 }, /obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/charlie_delta_shared) -"pQG" = ( -/obj/structure/bed/chair{ - dir = 8; - pixel_y = 3 +"pQI" = ( +/obj/structure/machinery/power/apc/almayer{ + cell_type = /obj/item/cell/hyper; + dir = 1 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_a_s) +/turf/open/floor/almayer/red/north, +/area/almayer/shipboard/brig/mp_bunks) "pQN" = ( /obj/structure/surface/table/almayer, /obj/item/reagent_container/food/condiment/hotsauce/franks, @@ -60534,14 +47701,10 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/medical/medical_science) "pQV" = ( -/turf/open/floor/almayer{ - icon_state = "blue" - }, +/turf/open/floor/almayer/blue, /area/almayer/living/pilotbunks) "pQY" = ( /obj/structure/disposalpipe/segment{ @@ -60551,39 +47714,27 @@ icon_state = "N"; pixel_y = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/offices) "pRn" = ( -/obj/structure/bed, /obj/structure/machinery/power/apc/almayer{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/obj/structure/machinery/medical_pod/sleeper, +/turf/open/floor/almayer/mono, /area/almayer/medical/medical_science) +"pRs" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/p_bow) "pRy" = ( -/turf/open/floor/almayer/research/containment/corner_var1{ - dir = 4 - }, +/turf/open/floor/almayer/research/containment/corner_var1/east, /area/almayer/medical/containment/cell/cl) -"pRL" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/aft_hallway) "pRO" = ( /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "silvercorner" - }, +/turf/open/floor/almayer/silvercorner, /area/almayer/shipboard/brig/cic_hallway) "pRT" = ( /obj/effect/decal/warning_stripes{ @@ -60598,87 +47749,81 @@ dir = 8; name = "\improper Tool Closet" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/living/port_emb) "pRX" = ( /obj/structure/machinery/portable_atmospherics/hydroponics, -/turf/open/floor/almayer{ - icon_state = "test_floor5" - }, +/turf/open/floor/almayer/test_floor5, /area/almayer/medical/hydroponics) -"pSH" = ( -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 8 +"pRZ" = ( +/obj/structure/window/framed/almayer, +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 }, -/turf/open/floor/wood/ship, -/area/almayer/living/commandbunks) -"pSL" = ( -/obj/structure/machinery/alarm/almayer{ - dir = 1 +/turf/open/floor/plating, +/area/almayer/engineering/lower/workshop) +"pSF" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "blue" +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/almayer/plate, +/area/almayer/hallways/lower/starboard_fore_hallway) +"pSQ" = ( +/obj/structure/reagent_dispensers/fueltank{ + anchored = 1 }, -/area/almayer/hallways/aft_hallway) +/turf/open/floor/almayer/cargo, +/area/almayer/engineering/lower/workshop/hangar) "pSU" = ( /obj/structure/machinery/light, /obj/structure/machinery/photocopier, -/turf/open/floor/almayer{ - icon_state = "silver" - }, +/turf/open/floor/almayer/silver, /area/almayer/command/computerlab) -"pTc" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/sign/safety/distribution_pipes{ - pixel_x = -17 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_p) "pTj" = ( /obj/structure/barricade/handrail{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "silvercorner" - }, +/turf/open/floor/almayer/silvercorner, /area/almayer/command/computerlab) -"pTt" = ( -/obj/structure/machinery/door/poddoor/shutters/almayer{ - id = "ARES JoeCryo"; - name = "\improper ARES Core Shutters"; - plane = -7 +"pTI" = ( +/obj/structure/sign/safety/storage{ + pixel_x = 8; + pixel_y = -32 }, -/turf/open/floor/almayer/no_build{ - icon_state = "test_floor4" +/turf/open/floor/almayer/plate, +/area/almayer/maint/upper/u_a_s) +"pTS" = ( +/obj/structure/machinery/light, +/turf/open/floor/almayer/red, +/area/almayer/hallways/upper/fore_hallway) +"pTX" = ( +/obj/structure/largecrate/random/barrel/red, +/obj/structure/sign/safety/fire_haz{ + pixel_x = 8; + pixel_y = -32 }, -/area/almayer/command/airoom) -"pTT" = ( -/obj/structure/platform{ - dir = 4 +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_f_p) +"pTY" = ( +/obj/structure/mirror{ + pixel_x = 28 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/effect/decal/warning_stripes{ + icon_state = "S" }, -/area/almayer/hull/upper_hull/u_a_p) +/turf/open/floor/almayer/dark_sterile, +/area/almayer/maint/upper/u_a_s) "pUd" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/command/computerlab) -"pUe" = ( -/obj/structure/machinery/power/apc/almayer/hardened, -/obj/effect/decal/warning_stripes{ - icon_state = "SE-out"; - pixel_x = 1 - }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, -/area/almayer/lifeboat_pumps/south1) "pUf" = ( /obj/structure/bed/chair{ dir = 4 @@ -60689,28 +47834,22 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "bluecorner" - }, +/turf/open/floor/almayer/bluecorner/west, /area/almayer/squads/delta) -"pUi" = ( -/obj/effect/decal/cleanable/blood/drip, -/obj/item/tool/crowbar{ - pixel_x = 6; - pixel_y = 1 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_m_p) -"pUl" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W"; - pixel_x = -1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" +"pUg" = ( +/obj/effect/step_trigger/clone_cleaner, +/obj/structure/machinery/door_control{ + id = "ARES ReceptStairs2"; + name = "ARES Reception Stairway Shutters"; + pixel_x = 24; + req_one_access_txt = "91;92" }, -/area/almayer/hallways/vehiclehangar) +/turf/open/floor/almayer/aicore/no_build, +/area/almayer/command/airoom) +"pUj" = ( +/obj/effect/decal/cleanable/blood/oil, +/turf/open/floor/almayer, +/area/almayer/engineering/lower/workshop) "pUp" = ( /obj/item/device/radio/intercom{ freerange = 1; @@ -60720,10 +47859,12 @@ /obj/structure/barricade/handrail{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "test_floor5" - }, +/turf/open/floor/almayer/test_floor5, /area/almayer/squads/req) +"pUv" = ( +/obj/structure/machinery/power/smes/buildable, +/turf/open/floor/almayer/tcomms, +/area/almayer/engineering/lower/engine_core) "pUA" = ( /obj/structure/surface/table/almayer, /obj/structure/window/reinforced/ultra{ @@ -60733,39 +47874,37 @@ dir = 4 }, /obj/item/device/flashlight/lamp/on, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/northeast, /area/almayer/living/briefing) -"pUJ" = ( -/turf/closed/wall/almayer, -/area/almayer/hull/upper_hull/u_f_p) -"pUY" = ( -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12 +"pUD" = ( +/obj/structure/surface/table/almayer, +/obj/structure/machinery/faxmachine/uscm/brig, +/obj/structure/machinery/status_display{ + pixel_y = 30 }, -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12; - pixel_y = 12 +/turf/open/floor/almayer/redfull, +/area/almayer/shipboard/brig/processing) +"pVh" = ( +/obj/structure/machinery/light/small{ + dir = 1 }, +/obj/structure/largecrate/random/barrel/red, /turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_a_p) -"pVu" = ( -/obj/item/paper/prison_station/interrogation_log{ - pixel_x = 10; - pixel_y = 7 - }, -/obj/structure/largecrate/random/barrel/green, -/obj/item/limb/hand/l_hand{ - pixel_x = -5; - pixel_y = 14 +/area/almayer/maint/upper/u_a_s) +"pVr" = ( +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 1 }, -/obj/effect/spawner/random/balaclavas, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" }, -/area/almayer/hull/lower_hull/l_f_p) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/starboard_midship_hallway) +"pVx" = ( +/obj/structure/closet/secure_closet/guncabinet/red/armory_m39_submachinegun, +/turf/open/floor/almayer/redfull, +/area/almayer/squads/req) "pVA" = ( /obj/item/trash/cigbutt/ucigbutt{ pixel_x = 2; @@ -60792,34 +47931,27 @@ /obj/structure/window/reinforced/ultra{ dir = 8 }, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/northwest, /area/almayer/living/briefing) -"pVZ" = ( -/turf/closed/wall/almayer/outer, -/area/almayer/hull/upper_hull/u_a_s) +"pVF" = ( +/obj/structure/surface/table/almayer, +/obj/item/spacecash/c1000/counterfeit, +/obj/item/storage/box/drinkingglasses, +/obj/item/storage/fancy/cigar, +/obj/structure/machinery/atm{ + pixel_y = 32 + }, +/turf/open/floor/almayer, +/area/almayer/command/corporateliaison) "pWb" = ( /obj/effect/landmark/start/marine/tl/delta, /obj/effect/landmark/late_join/delta, /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/delta) -"pWf" = ( -/obj/structure/machinery/door/airlock/almayer/engineering{ - dir = 2; - name = "\improper Engineering Workshop" - }, -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/engineering/engineering_workshop) +"pWd" = ( +/obj/structure/surface/table/almayer, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_f_s) "pWr" = ( /obj/structure/surface/rack, /obj/item/tool/minihoe{ @@ -60843,46 +47975,20 @@ /obj/structure/sign/safety/hvac_old{ pixel_y = -26 }, -/turf/open/floor/almayer{ - icon_state = "green" - }, +/turf/open/floor/almayer/green, /area/almayer/shipboard/brig/cells) -"pWA" = ( -/obj/structure/machinery/disposal, -/obj/structure/disposalpipe/trunk, -/obj/structure/sign/safety/storage{ - pixel_x = -17 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "green" - }, -/area/almayer/squads/req) -"pWG" = ( -/obj/structure/bed/chair{ - dir = 1 - }, -/obj/structure/machinery/light{ - unacidable = 1; - unslashable = 1 - }, -/turf/open/floor/almayer{ - icon_state = "red" +"pWw" = ( +/obj/structure/bed/chair, +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 }, -/area/almayer/shipboard/brig/main_office) +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_a_s) "pWN" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "blue" - }, +/turf/open/floor/almayer/blue, /area/almayer/living/pilotbunks) -"pXj" = ( -/obj/structure/closet/radiation, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, -/area/almayer/engineering/lower_engineering) "pXl" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -60891,83 +47997,47 @@ icon_state = "E"; pixel_x = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/alpha) -"pXn" = ( -/obj/structure/prop/invuln/overhead_pipe{ - dir = 4; - pixel_y = 13 - }, -/obj/structure/prop/invuln/overhead_pipe{ - dir = 4; - pixel_x = -12; - pixel_y = 13 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_a_p) "pXx" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/pilotbunks) -"pXQ" = ( -/obj/structure/sign/safety/intercom{ - pixel_x = 32; - pixel_y = 7 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_s) "pXV" = ( /obj/structure/disposalpipe/segment{ dir = 1; icon_state = "pipe-c" }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/almayer/squads/req) "pXZ" = ( /obj/effect/landmark/start/marine/spec/charlie, /obj/effect/landmark/late_join/charlie, /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/charlie) -"pYi" = ( -/obj/structure/machinery/light{ - dir = 4 +"pYh" = ( +/obj/structure/machinery/camera/autoname/almayer{ + dir = 8; + name = "ship-grade camera" }, -/obj/structure/pipes/vents/pump/no_boom{ - dir = 8 +/obj/structure/sign/safety/one{ + pixel_x = 32; + pixel_y = -8 }, -/turf/open/floor/almayer/no_build{ - dir = 4; - icon_state = "silver" +/obj/structure/sign/safety/ammunition{ + pixel_x = 32; + pixel_y = 7 }, -/area/almayer/command/airoom) +/turf/open/floor/almayer/red/east, +/area/almayer/hallways/lower/starboard_midship_hallway) "pYo" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/west, /area/almayer/medical/containment) -"pYp" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/wood/ship, -/area/almayer/living/commandbunks) "pYu" = ( /obj/item/tool/warning_cone{ pixel_x = -12; @@ -60978,155 +48048,95 @@ }, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/north1) -"pYF" = ( -/obj/structure/bed/chair{ - dir = 1 +"pYN" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/obj/structure/machinery/camera/autoname/almayer{ - dir = 1; - name = "ship-grade camera" +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer/test_floor4, +/area/almayer/hallways/lower/port_fore_hallway) +"pYQ" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 2 }, -/turf/open/floor/almayer{ - icon_state = "red" +/turf/open/floor/almayer, +/area/almayer/maint/hull/upper/u_f_p) +"pYS" = ( +/obj/structure/pipes/binary/pump/on{ + dir = 4 }, -/area/almayer/shipboard/brig/main_office) +/turf/open/floor/almayer/orange/north, +/area/almayer/engineering/lower) "pYX" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "silvercorner" - }, +/turf/open/floor/almayer/silvercorner/west, /area/almayer/shipboard/brig/cic_hallway) -"pZo" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 9 +"pZH" = ( +/obj/structure/machinery/shower{ + dir = 8 }, +/obj/structure/machinery/door/window/westright, +/obj/structure/window/reinforced/tinted/frosted, +/obj/item/tool/soap/deluxe, /turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_umbilical) +/area/almayer/command/corporateliaison) "pZK" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orangecorner" - }, +/turf/open/floor/almayer/orangecorner/north, /area/almayer/engineering/upper_engineering/port) +"pZR" = ( +/obj/structure/bed/chair/comfy/alpha{ + dir = 1 + }, +/turf/open/floor/almayer/plate, +/area/almayer/living/briefing) "pZS" = ( /obj/structure/bed/sofa/south/grey/left, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/north, /area/almayer/shipboard/brig/cic_hallway) -"pZV" = ( -/obj/structure/machinery/disposal, -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/obj/structure/machinery/status_display{ - pixel_x = 32 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "red" - }, -/area/almayer/shipboard/brig/perma) "qam" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/effect/decal/warning_stripes{ icon_state = "W"; pixel_x = -1 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/west, /area/almayer/medical/medical_science) "qan" = ( -/obj/item/device/radio/listening_bug/radio_linked/mp{ - pixel_y = 8 - }, -/obj/item/device/radio/listening_bug/radio_linked/mp, -/obj/structure/closet/secure_closet/cmdcabinet{ - pixel_y = 24; - desc = "A bulletproof cabinet containing communications equipment."; - name = "communications cabinet"; - req_access = null; - req_one_access_txt = "3" - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, -/area/almayer/shipboard/brig/main_office) -"qau" = ( +/obj/structure/largecrate/random/case/double, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_a_s) +"qas" = ( /obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, -/obj/effect/landmark/start/warrant, -/turf/open/floor/almayer{ - icon_state = "plate" + dir = 10 }, -/area/almayer/shipboard/brig/cryo) -"qaD" = ( -/obj/structure/largecrate/random/case/double, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" }, -/area/almayer/hull/lower_hull/l_a_s) -"qaJ" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/starboard_aft_hallway) +"qax" = ( +/obj/structure/machinery/door/poddoor/almayer/open{ + dir = 4; + id = "Hangar Lockdown"; + name = "\improper Hangar Lockdown Blast Door" }, /turf/open/floor/plating/plating_catwalk, -/area/almayer/shipboard/brig/execution) +/area/almayer/hallways/lower/vehiclehangar) "qaV" = ( -/turf/open/floor/almayer{ - dir = 10; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/southwest, /area/almayer/engineering/upper_engineering) "qaW" = ( /obj/structure/bed/chair/office/dark{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "red" - }, +/turf/open/floor/almayer/red, /area/almayer/living/briefing) -"qaZ" = ( -/obj/structure/stairs/perspective{ - icon_state = "p_stair_full" - }, -/turf/open/floor/almayer, -/area/almayer/hull/lower_hull/l_f_s) -"qbd" = ( -/obj/structure/stairs/perspective{ - icon_state = "p_stair_full" - }, -/obj/structure/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_s) -"qbh" = ( -/obj/structure/pipes/vents/pump{ - dir = 1 - }, -/obj/structure/machinery/light/small, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/command/combat_correspondent) -"qbt" = ( -/obj/structure/pipes/vents/pump, -/turf/open/floor/almayer{ - icon_state = "sterile_green" - }, -/area/almayer/shipboard/brig/surgery) +"qbw" = ( +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/upper/u_a_s) "qbx" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 6 @@ -61141,32 +48151,36 @@ /obj/structure/sign/safety/ladder{ pixel_x = -16 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "redcorner" - }, +/turf/open/floor/almayer/redcorner/west, /area/almayer/living/briefing) -"qbO" = ( -/turf/open/floor/almayer{ - dir = 6; - icon_state = "blue" +"qbD" = ( +/obj/structure/machinery/light/small{ + dir = 4 }, +/turf/open/floor/almayer/plating/northeast, +/area/almayer/shipboard/stern_point_defense) +"qbO" = ( +/turf/open/floor/almayer/blue/southeast, /area/almayer/living/pilotbunks) +"qbP" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/storage/toolbox/mechanical{ + pixel_x = 4; + pixel_y = -3 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/upper/u_m_s) +"qbU" = ( +/obj/structure/largecrate/random/case/double, +/turf/open/floor/almayer/plate, +/area/almayer/maint/upper/u_a_s) "qbZ" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/engidoor/glass{ dir = 1; name = "\improper Engineering Bunks" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/engineering/upper_engineering/port) -"qce" = ( -/obj/item/trash/cigbutt, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_s) "qck" = ( /obj/structure/surface/table/woodentable/fancy, /obj/structure/machinery/computer/cameras/wooden_tv/almayer{ @@ -61174,20 +48188,12 @@ }, /turf/open/floor/carpet, /area/almayer/living/commandbunks) -"qcl" = ( -/obj/structure/sign/safety/conference_room{ - pixel_y = 32 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/starboard_hallway) "qcy" = ( /obj/structure/sign/safety/bathunisex{ pixel_x = 8; pixel_y = -32 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/auxiliary_officer_office) "qdk" = ( /obj/structure/surface/table/almayer, @@ -61202,10 +48208,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/structure/machinery/door/firedoor/border_only/almayer, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/grunt_rnr) "qdv" = ( /obj/item/bedsheet/purple{ @@ -61234,10 +48237,7 @@ }, /obj/item/clothing/head/beret/royal_marine, /obj/structure/disposalpipe/segment, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "emerald" - }, +/turf/open/floor/almayer/emerald/southwest, /area/almayer/living/port_emb) "qdz" = ( /obj/structure/machinery/camera/autoname/almayer{ @@ -61245,36 +48245,43 @@ name = "ship-grade camera" }, /obj/structure/barricade/handrail/medical, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/west, /area/almayer/medical/lower_medical_lobby) "qdA" = ( /obj/structure/machinery/vending/coffee, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/almayer/living/captain_mess) +"qdJ" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/upper/midship_hallway) "qdQ" = ( /obj/structure/bed/sofa/vert/grey/top{ pixel_y = 11 }, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/north1) -"qee" = ( -/obj/structure/machinery/door/airlock/almayer/maint{ - dir = 1 +"qdV" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_midship_hallway) +"qec" = ( +/obj/effect/step_trigger/clone_cleaner, +/obj/effect/decal/warning_stripes{ + icon_state = "S" }, -/area/almayer/hull/lower_hull/l_f_s) +/turf/open/floor/almayer/red/northeast, +/area/almayer/hallways/upper/port) "qej" = ( /obj/structure/machinery/door/airlock/almayer/maint, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/engineering/laundry) "qep" = ( /obj/structure/machinery/door/airlock/almayer/medical/glass{ @@ -61287,9 +48294,7 @@ /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/medical/lower_medical_medbay) "qer" = ( /obj/structure/machinery/cryopod/right{ @@ -61298,18 +48303,14 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/squads/charlie) "qeF" = ( /obj/structure/sign/safety/reception{ pixel_x = 8; pixel_y = -32 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/command/lifeboat) "qeK" = ( /obj/structure/pipes/vents/scrubber, @@ -61323,9 +48324,7 @@ pixel_x = 8; pixel_y = 13 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/engineering/upper_engineering/port) "qeY" = ( /obj/structure/surface/table/reinforced/prison, @@ -61344,10 +48343,11 @@ /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/alpha_bravo_shared) +"qfq" = ( +/turf/open/floor/almayer/orange/east, +/area/almayer/hallways/lower/port_umbilical) "qfy" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -61367,70 +48367,66 @@ pixel_x = 4; pixel_y = 16 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_corner" - }, +/turf/open/floor/almayer/sterile_green_corner/north, /area/almayer/medical/medical_science) "qfA" = ( -/turf/open/floor/almayer{ - icon_state = "silvercorner" - }, +/turf/open/floor/almayer/silvercorner, /area/almayer/command/cichallway) -"qfR" = ( -/obj/structure/machinery/light{ - dir = 1 +"qfD" = ( +/obj/structure/bed/chair/office/dark{ + dir = 8 }, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "red" +/turf/open/floor/carpet, +/area/almayer/living/commandbunks) +"qfI" = ( +/obj/structure/machinery/camera/autoname/almayer{ + name = "ship-grade camera" }, -/area/almayer/shipboard/brig/main_office) +/turf/open/floor/almayer/plate, +/area/almayer/hallways/lower/starboard_aft_hallway) +"qfQ" = ( +/obj/structure/surface/rack, +/obj/item/stack/folding_barricade/three, +/turf/open/floor/almayer/plate, +/area/almayer/shipboard/panic) "qga" = ( /obj/structure/machinery/door/airlock/almayer/maint/reinforced{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/living/starboard_garden) -"qgw" = ( -/obj/structure/bed/chair/comfy/alpha{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/living/briefing) -"qgG" = ( -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 8 +"qgn" = ( +/obj/item/stool, +/obj/effect/landmark/yautja_teleport, +/turf/open/floor/almayer/plate, +/area/almayer/maint/upper/u_f_s) +"qgr" = ( +/obj/item/trash/plate{ + pixel_x = 9; + pixel_y = 11 }, -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" +/obj/item/reagent_container/food/snacks/carpmeat{ + layer = 3.3; + pixel_x = 8; + pixel_y = 11 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/aft_hallway) -"qgH" = ( -/obj/item/storage/backpack/marine/satchel{ - desc = "It's the heavy-duty black polymer kind. Time to take out the trash!"; - icon = 'icons/obj/janitor.dmi'; - icon_state = "trashbag3"; - name = "trash bag"; - pixel_x = -4; - pixel_y = 6 +/obj/item/reagent_container/food/snacks/carpmeat{ + layer = 3.3; + pixel_x = 8; + pixel_y = 11 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_p) +/turf/open/floor/carpet, +/area/almayer/living/commandbunks) "qgK" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/machinery/door/airlock/almayer/generic/press{ dir = 1; name = "\improper Combat Correspondent Room" }, -/turf/open/floor/almayer, +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 1 + }, +/turf/open/floor/almayer/test_floor4, /area/almayer/command/combat_correspondent) "qgN" = ( /obj/structure/bed/chair{ @@ -61444,19 +48440,22 @@ }, /turf/open/floor/almayer, /area/almayer/squads/delta) +"qgU" = ( +/obj/structure/machinery/power/apc/almayer/hardened, +/obj/effect/decal/warning_stripes{ + icon_state = "SE-out"; + pixel_x = 1 + }, +/turf/open/floor/almayer/mono, +/area/almayer/lifeboat_pumps/south1) "qhb" = ( /obj/structure/machinery/light, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/almayer/red/southwest, /area/almayer/lifeboat_pumps/south1) -"qhc" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/stern_hallway) +"qhg" = ( +/obj/structure/largecrate/random/barrel/yellow, +/turf/open/floor/almayer/plate, +/area/almayer/maint/upper/u_f_s) "qhx" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22" @@ -61469,19 +48468,46 @@ pixel_x = -17; pixel_y = -8 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/north, /area/almayer/medical/upper_medical) -"qhB" = ( -/obj/structure/closet, -/obj/item/clothing/glasses/mgoggles/prescription, -/obj/item/clothing/glasses/mbcg, -/turf/open/floor/almayer{ - icon_state = "plate" +"qhD" = ( +/obj/structure/closet{ + name = "backpack storage" + }, +/obj/item/storage/backpack/marine/grenadepack, +/obj/item/storage/backpack/marine/grenadepack, +/obj/item/storage/backpack/marine/mortarpack, +/obj/item/storage/backpack/marine/mortarpack, +/turf/open/floor/almayer/plate, +/area/almayer/engineering/lower/workshop/hangar) +"qhG" = ( +/obj/structure/surface/table/almayer, +/obj/item/ashtray/bronze{ + pixel_x = 3; + pixel_y = 5 + }, +/obj/effect/decal/cleanable/ash, +/obj/item/trash/cigbutt/ucigbutt{ + pixel_x = 4; + pixel_y = 13 + }, +/obj/item/trash/cigbutt/ucigbutt{ + pixel_x = -7; + pixel_y = 14 + }, +/obj/item/trash/cigbutt/ucigbutt{ + pixel_x = -13; + pixel_y = 8 + }, +/obj/item/trash/cigbutt/ucigbutt{ + pixel_x = -6; + pixel_y = 9 }, -/area/almayer/hull/upper_hull/u_a_s) +/turf/open/floor/plating, +/area/almayer/maint/lower/constr) +"qhT" = ( +/turf/open/floor/almayer/orangecorner, +/area/almayer/hallways/upper/aft_hallway) "qhU" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -61493,57 +48519,42 @@ pixel_x = 8; pixel_y = -32 }, -/turf/open/floor/almayer{ - icon_state = "orange" - }, +/turf/open/floor/almayer/orange, /area/almayer/squads/bravo) -"qic" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/structure/machinery/door/airlock/almayer/maint{ - dir = 1 +"qid" = ( +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12; + pixel_y = 12 }, -/area/almayer/hull/lower_hull) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_a_p) +"qig" = ( +/obj/effect/landmark/yautja_teleport, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_f_s) "qih" = ( /obj/structure/machinery/door/airlock/almayer/generic{ dir = 1; name = "\improper Tanker Quarters"; req_one_access_txt = "19;27" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/living/tankerbunks) "qim" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/medical/lower_medical_lobby) -"qin" = ( -/obj/structure/sign/poster/safety{ - pixel_x = 27 - }, -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/living/briefing) "qit" = ( /obj/structure/surface/table/reinforced/almayer_B, -/obj/structure/machinery/light{ - dir = 8 - }, /obj/item/paper_bin/uscm, /obj/item/tool/pen, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, +/turf/open/floor/almayer/aicore/no_build, /area/almayer/command/airoom) "qiy" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ @@ -61551,71 +48562,61 @@ }, /turf/open/floor/almayer, /area/almayer/living/chapel) -"qiI" = ( -/obj/structure/girder/displaced, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_p) "qjz" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/clipboard, /obj/item/paper, /obj/item/tool/lighter, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/bridgebunks) "qjF" = ( /obj/structure/pipes/vents/scrubber, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "silvercorner" - }, +/turf/open/floor/almayer/silvercorner/north, /area/almayer/command/computerlab) +"qjK" = ( +/turf/open/floor/almayer/red/west, +/area/almayer/shipboard/brig/mp_bunks) +"qjL" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_m_s) "qjN" = ( -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/medical/lower_medical_lobby) "qjV" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 9 }, -/turf/open/floor/almayer{ - icon_state = "orange" - }, +/turf/open/floor/almayer/orange, /area/almayer/engineering/upper_engineering/port) -"qkb" = ( -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 8 +"qjY" = ( +/obj/structure/machinery/door/window/eastleft{ + req_one_access_txt = "2;21" }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/structure/machinery/door/window/westright, +/obj/structure/machinery/door/poddoor/shutters/almayer{ + dir = 4; + id = "ROlobby1"; + name = "\improper RO Line 1" + }, +/obj/structure/machinery/door/firedoor/border_only/almayer, +/obj/structure/surface/table/reinforced/almayer_blend/north, +/obj/item/desk_bell{ + pixel_x = -6; + pixel_y = -8; + anchored = 1 }, -/area/almayer/hull/upper_hull/u_f_p) +/turf/open/floor/almayer/test_floor4, +/area/almayer/squads/req) +"qjZ" = ( +/turf/closed/wall/almayer, +/area/almayer/shipboard/stern_point_defense) "qki" = ( /obj/effect/landmark/start/marine/smartgunner/charlie, /obj/effect/landmark/late_join/charlie, /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/charlie) -"qkj" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/command/lifeboat) -"qkn" = ( -/obj/structure/sign/safety/maint{ - pixel_x = -17 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_s) "qkP" = ( /obj/item/frame/light_fixture{ anchored = 1; @@ -61632,17 +48633,43 @@ icon_state = "S"; pixel_y = -1 }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/living/port_emb) -"qld" = ( +"qkY" = ( +/obj/structure/surface/table/almayer, +/obj/item/reagent_container/food/drinks/coffeecup{ + pixel_x = -8; + pixel_y = -1 + }, +/obj/item/reagent_container/food/drinks/coffee{ + pixel_y = 9 + }, +/obj/item/tool/pen{ + pixel_x = 5 + }, +/turf/open/floor/almayer/plate, +/area/almayer/living/briefing) +"qlm" = ( +/obj/effect/decal/cleanable/blood/oil, /obj/effect/decal/warning_stripes{ - icon_state = "S" + icon_state = "SW-out" }, -/obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer, -/area/almayer/hallways/starboard_umbilical) +/area/almayer/engineering/lower/workshop/hangar) +"qlp" = ( +/obj/structure/surface/table/woodentable/fancy, +/obj/item/prop/tableflag/uscm{ + pixel_x = -5 + }, +/obj/item/prop/tableflag/uscm2{ + pixel_x = 5 + }, +/turf/open/floor/carpet, +/area/almayer/living/commandbunks) +"qlu" = ( +/obj/structure/largecrate/random/case/double, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_a_s) "qlz" = ( /obj/structure/window/framed/almayer, /obj/structure/machinery/door/firedoor/border_only/almayer, @@ -61652,6 +48679,22 @@ }, /turf/open/floor/plating, /area/almayer/shipboard/sea_office) +"qlI" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/obj/structure/machinery/disposal, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/wood/ship, +/area/almayer/living/commandbunks) +"qlL" = ( +/obj/item/reagent_container/food/drinks/cans/souto, +/turf/open/floor/almayer/cargo_arrow, +/area/almayer/hallways/lower/repair_bay) +"qmh" = ( +/obj/structure/window/framed/almayer, +/turf/open/floor/plating, +/area/almayer/hallways/lower/repair_bay) "qmk" = ( /obj/structure/surface/table/almayer, /obj/structure/pipes/standard/simple/hidden/supply{ @@ -61661,39 +48704,27 @@ dir = 4 }, /obj/item/facepaint/green, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "bluecorner" - }, +/turf/open/floor/almayer/bluecorner/east, /area/almayer/squads/delta) -"qmr" = ( -/obj/structure/surface/table/almayer, -/obj/item/tool/screwdriver, -/obj/item/prop/helmetgarb/gunoil{ - pixel_x = -7; - pixel_y = 12 - }, -/obj/item/weapon/gun/rifle/l42a{ - pixel_x = 17; - pixel_y = 6 - }, -/turf/open/floor/almayer{ - icon_state = "plate" +"qmq" = ( +/obj/structure/prop/invuln/overhead_pipe{ + dir = 4; + pixel_y = 13 }, -/area/almayer/hull/upper_hull/u_m_s) -"qmt" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "SW-out"; - layer = 2.5 +/obj/structure/prop/invuln/overhead_pipe{ + dir = 4; + pixel_y = 13 }, -/obj/effect/decal/warning_stripes{ - icon_state = "NW-out" +/obj/structure/prop/invuln/overhead_pipe{ + dir = 4; + pixel_x = 12; + pixel_y = 13 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "red" +/obj/structure/sign/safety/bathunisex{ + pixel_x = 32 }, -/area/almayer/hallways/aft_hallway) +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_a_s) "qmy" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/door_control{ @@ -61724,37 +48755,8 @@ pixel_y = 4; req_access_txt = "28" }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_corner" - }, +/turf/open/floor/almayer/sterile_green_corner/west, /area/almayer/medical/medical_science) -"qmB" = ( -/obj/structure/bed/chair/comfy/bravo{ - dir = 1 - }, -/obj/structure/prop/holidays/string_lights{ - dir = 8; - pixel_x = 29 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/living/briefing) -"qmC" = ( -/obj/structure/machinery/door/poddoor/almayer/open{ - dir = 4; - id = "Brig Lockdown Shutters"; - name = "\improper Brig Lockdown Shutter" - }, -/obj/structure/machinery/door/firedoor/border_only/almayer, -/obj/structure/machinery/door/airlock/almayer/security/glass/reinforced{ - name = "\improper Brig" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/shipboard/brig/main_office) "qmD" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 5 @@ -61763,46 +48765,58 @@ dir = 4 }, /obj/structure/bed/chair/comfy, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/medical/medical_science) -"qmE" = ( -/obj/structure/sign/safety/restrictedarea{ - pixel_x = 32; - pixel_y = -8 - }, -/obj/structure/machinery/door_control{ - id = "perma_lockdown"; - name = "\improper Perma Cells Lockdown"; - pixel_x = 24; - pixel_y = 6; - req_access_txt = "3" +"qmK" = ( +/obj/structure/machinery/light{ + dir = 1 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" +/turf/open/floor/almayer/red/north, +/area/almayer/hallways/upper/fore_hallway) +"qmM" = ( +/obj/structure/bed/chair{ + dir = 8 }, -/area/almayer/shipboard/brig/perma) -"qmL" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 10 +/obj/item/device/radio/intercom{ + freerange = 1; + name = "Saferoom Channel"; + pixel_y = -28 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/starboard_hallway) +/turf/open/floor/almayer/plate, +/area/almayer/shipboard/panic) "qmP" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/faxmachine/uscm, /turf/open/floor/almayer, /area/almayer/command/computerlab) -"qmX" = ( -/obj/structure/toilet{ - dir = 1 +"qmR" = ( +/obj/structure/window/reinforced/ultra{ + pixel_y = -12 }, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/structure/bed/chair/bolted, +/turf/open/floor/almayer/plating_striped, +/area/almayer/shipboard/brig/execution) +"qmU" = ( +/obj/item/vehicle_clamp, +/obj/item/vehicle_clamp, +/obj/item/vehicle_clamp, +/obj/structure/machinery/light/small{ + dir = 4 }, -/area/almayer/shipboard/brig/perma) +/obj/structure/closet/secure_closet/guncabinet/red/mp_armory_m39_submachinegun, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/armory) +"qmW" = ( +/obj/structure/machinery/light, +/turf/open/floor/almayer/blue, +/area/almayer/hallways/upper/midship_hallway) +"qmY" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/turf/open/floor/almayer, +/area/almayer/engineering/lower/workshop/hangar) "qnd" = ( /obj/effect/decal/warning_stripes{ icon_state = "SW-out" @@ -61820,55 +48834,42 @@ /area/almayer/command/cichallway) "qni" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/medical/lower_medical_medbay) "qnl" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/structure/machinery/computer/emails{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/pilotbunks) +"qnA" = ( +/obj/effect/decal/cleanable/blood/drip, +/obj/item/tool/crowbar{ + pixel_x = 6; + pixel_y = 1 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_m_p) "qnC" = ( /obj/structure/surface/table/almayer, -/turf/open/floor/almayer{ - icon_state = "bluefull" - }, +/turf/open/floor/almayer/bluefull, /area/almayer/living/briefing) "qnD" = ( /obj/structure/machinery/door/airlock/almayer/generic{ dir = 2; name = "\improper Crew Chief's Room" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/living/pilotbunks) -"qnP" = ( -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12 - }, -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12; - pixel_y = 12 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_a_s) -"qof" = ( -/obj/structure/window/framed/almayer, -/obj/structure/machinery/door/poddoor/shutters/almayer/open{ - dir = 8; - id = "Warden Office Shutters"; - name = "\improper Privacy Shutters" - }, -/turf/open/floor/plating, -/area/almayer/shipboard/brig/main_office) +"qnH" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer/orange, +/area/almayer/hallways/upper/midship_hallway) +"qnX" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer/red, +/area/almayer/lifeboat_pumps/south2) "qom" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/structure/machinery/chem_dispenser/soda{ @@ -61880,18 +48881,14 @@ /obj/structure/sign/safety/coffee{ pixel_y = 32 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/grunt_rnr) "qon" = ( /obj/structure/machinery/camera/autoname/almayer{ dir = 1; name = "ship-grade camera" }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/lifeboat_pumps/north2) "qoJ" = ( /obj/structure/flora/pottedplant{ @@ -61900,45 +48897,73 @@ name = "synthetic potted plant"; pixel_y = 8 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/northeast, /area/almayer/squads/bravo) -"qoY" = ( -/obj/structure/machinery/vending/hydroseeds, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "green" - }, -/area/almayer/living/grunt_rnr) -"qpx" = ( +"qoL" = ( /obj/structure/surface/table/almayer, -/obj/structure/pipes/vents/scrubber, -/obj/item/storage/box/pillbottles, +/obj/structure/machinery/reagentgrinder/industrial{ + pixel_y = 8 + }, +/turf/open/floor/almayer/orange, +/area/almayer/engineering/lower/workshop/hangar) +"qoM" = ( +/obj/structure/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/upper/u_m_p) +"qoN" = ( +/turf/open/floor/almayer/test_floor4, +/area/almayer/maint/hull/upper/u_f_p) +"qoR" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SW-out" + }, +/turf/open/floor/almayer/plating/northeast, +/area/almayer/engineering/lower/engine_core) +"qoY" = ( +/obj/structure/machinery/vending/hydroseeds, +/turf/open/floor/almayer/green/east, +/area/almayer/living/grunt_rnr) +"qpx" = ( +/obj/structure/surface/table/almayer, +/obj/structure/pipes/vents/scrubber, /obj/item/storage/box/pillbottles, /obj/item/storage/box/pillbottles, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/obj/item/storage/box/pillbottles, +/turf/open/floor/almayer/dark_sterile, /area/almayer/medical/chemistry) "qpQ" = ( /obj/item/reagent_container/glass/beaker/bluespace, /obj/structure/machinery/chem_dispenser/medbay, -/turf/open/floor/almayer{ - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side, /area/almayer/medical/chemistry) -"qpU" = ( -/obj/structure/flora/pottedplant{ - icon_state = "pottedplant_22"; - pixel_y = 12 +"qpV" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/obj/structure/surface/table/almayer, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/structure/sign/safety/distribution_pipes{ + pixel_x = 8; + pixel_y = 32 }, -/area/almayer/command/lifeboat) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_f_p) +"qpY" = ( +/obj/structure/machinery/cryopod/right{ + layer = 3.1; + pixel_y = 13; + dir = 4 + }, +/turf/open/floor/almayer/aicore/no_build/ai_cargo, +/area/almayer/command/airoom) +"qqa" = ( +/obj/effect/step_trigger/clone_cleaner, +/turf/open/floor/plating/almayer/no_build, +/area/almayer/hallways/upper/fore_hallway) +"qqf" = ( +/obj/structure/machinery/light, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_fore_hallway) "qqn" = ( /obj/structure/desertdam/decals/road_edge{ icon_state = "road_edge_decal3"; @@ -61946,27 +48971,20 @@ }, /turf/open/floor/wood/ship, /area/almayer/living/basketball) -"qqu" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "redcorner" +"qqr" = ( +/obj/structure/machinery/light{ + dir = 8 }, +/obj/structure/closet/secure_closet/guncabinet/red/armory_m4a3_pistol, +/turf/open/floor/almayer/redfull, +/area/almayer/engineering/upper_engineering) +"qqu" = ( +/turf/open/floor/almayer/redcorner/north, /area/almayer/command/lifeboat) "qqK" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/medical/lower_medical_medbay) -"qqN" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = -26 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" - }, -/area/almayer/shipboard/brig/main_office) "qqQ" = ( /obj/structure/machinery/cm_vending/sorted/medical/blood{ density = 0; @@ -61980,11 +48998,16 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/northeast, /area/almayer/medical/medical_science) +"qqS" = ( +/obj/structure/machinery/light/small, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/s_stern) +"qra" = ( +/obj/structure/reagent_dispensers/fueltank/custom, +/turf/open/floor/almayer/plating/northeast, +/area/almayer/engineering/lower/engine_core) "qrc" = ( /obj/structure/flora/pottedplant{ desc = "It is made of Fiberbush(tm). It contains asbestos. Studies say that greenery calms the mind due to some sort evolved mechanism in the brain. This plant is not calming."; @@ -61992,87 +49015,41 @@ name = "synthetic potted plant"; pixel_y = 8 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "blue" - }, +/turf/open/floor/almayer/blue/northeast, /area/almayer/squads/delta) -"qre" = ( -/obj/structure/machinery/status_display{ - pixel_x = 32 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" - }, -/area/almayer/shipboard/brig/main_office) "qrv" = ( -/turf/open/floor/almayer{ - icon_state = "silver" - }, +/turf/open/floor/almayer/silver, /area/almayer/command/computerlab) -"qsa" = ( -/obj/structure/bed/chair/comfy/bravo{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/living/briefing) -"qsd" = ( -/obj/structure/largecrate/random, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_m_s) +"qsp" = ( +/obj/structure/machinery/light/small, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/s_bow) "qsC" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/disposalpipe/junction, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "plating_striped" - }, +/turf/open/floor/almayer/plating_striped/east, /area/almayer/squads/req) -"qsF" = ( -/obj/structure/sign/safety/nonpress_0g{ - pixel_x = 8; - pixel_y = 32 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" +"qsG" = ( +/obj/structure/pipes/standard/manifold/hidden/supply, +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/area/almayer/hull/lower_hull/l_a_s) +/turf/open/floor/almayer, +/area/almayer/hallways/upper/aft_hallway) "qsL" = ( /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer, /area/almayer/engineering/ce_room) -"qtn" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 9 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/port_hallway) "qtv" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/gym) -"qtR" = ( -/obj/structure/closet/emcloset, -/turf/open/floor/almayer{ - icon_state = "cargo" +"quj" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 6 }, -/area/almayer/command/lifeboat) -"qtS" = ( -/obj/structure/largecrate/random/case/double, -/turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_s) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/general_equipment) "quq" = ( /obj/structure/disposalpipe/segment{ dir = 1; @@ -62089,30 +49066,18 @@ pixel_x = -6; pixel_y = 32 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/north, /area/almayer/medical/cryo_tubes) -"quI" = ( -/obj/structure/machinery/door_control{ - id = "laddersouthwest"; - name = "South West Ladders Shutters"; - pixel_y = -21; - req_one_access_txt = "2;3;12;19"; - throw_range = 15 - }, -/obj/structure/sign/safety/stairs{ - pixel_x = 15; - pixel_y = -32 - }, -/obj/structure/sign/safety/west{ - pixel_y = -32 - }, -/turf/open/floor/almayer{ - icon_state = "plate" +"quJ" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 6 }, -/area/almayer/hallways/port_hallway) +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/perma) +"quS" = ( +/obj/structure/machinery/cm_vending/sorted/tech/electronics_storage, +/turf/open/floor/almayer/plate, +/area/almayer/engineering/lower/workshop) "quT" = ( /obj/structure/machinery/door/firedoor/border_only/almayer{ layer = 1.9 @@ -62122,9 +49087,7 @@ id_tag = "tc02"; name = "\improper Treatment Center" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/medical/lower_medical_medbay) "quV" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ @@ -62134,31 +49097,66 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "green" - }, +/turf/open/floor/almayer/green/west, /area/almayer/living/grunt_rnr) -"qvf" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +"qvh" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_x = 1 }, -/area/almayer/shipboard/brig/cryo) +/turf/open/floor/almayer/silvercorner/east, +/area/almayer/hallways/upper/midship_hallway) "qvC" = ( /obj/structure/machinery/power/apc/almayer{ dir = 4 }, /turf/open/floor/plating, /area/almayer/living/port_emb) +"qvE" = ( +/obj/structure/machinery/light{ + unacidable = 1; + unslashable = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "SE-out" + }, +/turf/open/floor/almayer/red, +/area/almayer/shipboard/brig/starboard_hallway) +"qvF" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/turf/open/floor/almayer/dark_sterile, +/area/almayer/maint/upper/u_a_s) "qvI" = ( /obj/structure/sign/safety/maint{ pixel_x = -17 }, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/south2) +"qvL" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 + }, +/obj/structure/machinery/door/airlock/almayer/generic{ + dir = 2; + name = "\improper Weyland-Yutani Office" + }, +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/disposalpipe/segment, +/obj/structure/machinery/door/poddoor/shutters/almayer/cl/office/door, +/turf/open/floor/almayer/test_floor4, +/area/almayer/command/corporateliaison) "qwo" = ( /obj/structure/machinery/washing_machine, /obj/structure/machinery/washing_machine{ @@ -62168,9 +49166,7 @@ /obj/structure/sign/safety/maint{ pixel_x = -17 }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/engineering/laundry) "qwp" = ( /obj/structure/window/framed/almayer, @@ -62188,23 +49184,53 @@ icon_state = "NE-out"; pixel_x = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/offices) "qwJ" = ( -/obj/structure/machinery/door_control{ - id = "ARES Operations Left"; - name = "ARES Operations Shutter"; - pixel_x = -24; - pixel_y = -8; - req_one_access_txt = "90;91;92" +/obj/effect/projector{ + name = "Almayer_AresDown"; + vector_x = 96; + vector_y = -65 }, -/turf/open/floor/almayer/no_build{ - dir = 8; - icon_state = "silver" +/obj/structure/platform{ + dir = 8 + }, +/obj/structure/stairs{ + dir = 1; + icon_state = "ramptop" }, +/turf/open/floor/almayer/aicore/no_build, /area/almayer/command/airoom) +"qwU" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SW-out" + }, +/obj/structure/sign/safety/distribution_pipes{ + pixel_x = -17 + }, +/turf/open/floor/almayer/red/east, +/area/almayer/hallways/upper/port) +"qwY" = ( +/obj/structure/machinery/vending/coffee, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_f_s) +"qxe" = ( +/obj/structure/machinery/door/airlock/almayer/generic{ + dir = 1 + }, +/obj/structure/machinery/door/poddoor/almayer/open{ + id = "courtyard_cells"; + name = "\improper Courtyard Lockdown Shutter" + }, +/obj/structure/machinery/door/poddoor/almayer/locked{ + id = "Cell 3"; + name = "\improper Courtyard Divider" + }, +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 + }, +/turf/open/floor/almayer/test_floor4, +/area/almayer/shipboard/brig/cells) "qxm" = ( /obj/structure/machinery/door/poddoor/shutters/almayer{ dir = 4; @@ -62217,22 +49243,25 @@ }, /turf/closed/wall/almayer/research/containment/wall/purple, /area/almayer/medical/containment/cell) +"qxr" = ( +/obj/structure/machinery/cryopod/right{ + layer = 3.1; + pixel_y = 13 + }, +/obj/structure/machinery/camera/autoname/almayer{ + dir = 8; + name = "ship-grade camera" + }, +/turf/open/floor/almayer/cargo, +/area/almayer/shipboard/brig/cryo) "qxz" = ( /obj/structure/machinery/door/airlock/almayer/secure/reinforced{ dir = 2; name = "\improper Evacuation Airlock PU-5"; req_access = null }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/powered) -"qxA" = ( -/obj/structure/closet/firecloset, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_s) "qxC" = ( /obj/structure/machinery/door/airlock/almayer/generic{ id = "Alpha_1"; @@ -62241,9 +49270,7 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/living/port_emb) "qxE" = ( /obj/structure/disposalpipe/segment, @@ -62255,15 +49282,18 @@ pixel_x = 32; pixel_y = -8 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/grunt_rnr) +"qxI" = ( +/turf/open/floor/almayer/plate, +/area/almayer/shipboard/panic) +"qxJ" = ( +/obj/structure/largecrate/random/case/double, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_m_s) "qxL" = ( /obj/structure/machinery/medical_pod/autodoc, -/turf/open/floor/almayer{ - icon_state = "sterile_green" - }, +/turf/open/floor/almayer/sterile_green, /area/almayer/medical/lower_medical_medbay) "qxP" = ( /obj/effect/decal/warning_stripes{ @@ -62274,15 +49304,15 @@ icon_state = "E"; pixel_x = 1 }, -/turf/open/floor/almayer/research/containment/corner_var1{ - dir = 4 - }, +/turf/open/floor/almayer/research/containment/corner_var1/east, /area/almayer/medical/containment/cell) -"qyd" = ( -/turf/open/floor/almayer{ - allow_construction = 0 +"qxS" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/machinery/light/small{ + dir = 4 }, -/area/almayer/shipboard/brig/perma) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/upper/u_f_s) "qyi" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -62290,101 +49320,74 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "blue" - }, +/turf/open/floor/almayer/blue/northeast, /area/almayer/squads/delta) "qyo" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/almayer/blue/north, /area/almayer/command/cichallway) "qys" = ( /obj/structure/platform, -/turf/open/floor/almayer{ - icon_state = "red" - }, +/turf/open/floor/almayer/red, /area/almayer/lifeboat_pumps/south1) -"qyz" = ( -/obj/structure/machinery/computer/cameras/containment/hidden{ - dir = 4; - pixel_x = -17 +"qyA" = ( +/obj/structure/machinery/cm_vending/clothing/intelligence_officer{ + density = 0; + pixel_x = -32 }, -/obj/structure/surface/table/almayer, -/obj/item/storage/photo_album, -/obj/item/device/camera_film, -/turf/open/floor/almayer, -/area/almayer/command/corporateliason) +/turf/open/floor/almayer/silver/west, +/area/almayer/command/computerlab) "qyD" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/recharger, -/turf/open/floor/almayer{ - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side, /area/almayer/medical/lower_medical_lobby) -"qyF" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "NW-out"; - pixel_y = 1 +"qyG" = ( +/obj/structure/sign/safety/hazard{ + desc = "A sign that warns of a hazardous environment nearby"; + name = "\improper Warning: Hazardous Environment" }, +/turf/closed/wall/almayer, +/area/almayer/maint/hull/lower/l_f_p) +"qyK" = ( /obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 + icon_state = "S" }, /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/hallways/vehiclehangar) -"qyH" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "NE-out"; - pixel_y = 1 - }, /turf/open/floor/almayer, -/area/almayer/command/lifeboat) -"qyJ" = ( -/obj/structure/closet/secure_closet/guncabinet/red/cic_armory_shotgun, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, -/area/almayer/command/cic) -"qyM" = ( -/obj/structure/surface/table/almayer, -/obj/item/clothing/mask/cigarette/pipe{ - pixel_x = 8 +/area/almayer/engineering/lower/workshop/hangar) +"qyP" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" }, -/obj/structure/transmitter/rotary{ - name = "Reporter Telephone"; - phone_category = "Almayer"; - phone_id = "Reporter"; - pixel_x = -4; - pixel_y = 6 +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 }, -/area/almayer/command/combat_correspondent) +/turf/open/floor/almayer/plate, +/area/almayer/hallways/lower/port_fore_hallway) "qyW" = ( /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "emeraldfull" - }, +/turf/open/floor/almayer/emeraldfull, /area/almayer/squads/charlie_delta_shared) +"qyX" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/manifold/hidden/supply, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/starboard_fore_hallway) "qyZ" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/structure/machinery/computer/view_objectives, /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "silverfull" - }, +/turf/open/floor/almayer/silverfull, /area/almayer/command/securestorage) "qzc" = ( /obj/effect/decal/warning_stripes{ @@ -62394,11 +49397,25 @@ /obj/structure/sign/safety/press_area_ag{ pixel_y = 32 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/almayer/shipboard/port_point_defense) +"qzA" = ( +/obj/structure/largecrate/random/secure, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/p_bow) +"qAs" = ( +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 1 + }, +/turf/open/floor/almayer/orange/west, +/area/almayer/engineering/lower/workshop) +"qAy" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/turf/open/floor/almayer/plating/northeast, +/area/almayer/hallways/lower/vehiclehangar) "qAA" = ( /obj/structure/machinery/power/monitor{ name = "Main Power Grid Monitoring" @@ -62406,12 +49423,38 @@ /obj/structure/sign/safety/commline_connection{ pixel_x = 32 }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/engineering/ce_room) +"qAB" = ( +/obj/structure/pipes/standard/simple/visible{ + dir = 5 + }, +/turf/open/floor/almayer/orange/north, +/area/almayer/engineering/lower) +"qAG" = ( +/obj/structure/platform{ + dir = 1 + }, +/obj/structure/largecrate/random/case/double, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_a_s) +"qAK" = ( +/obj/structure/surface/table/reinforced/almayer_B, +/obj/item/ashtray/plastic, +/obj/item/trash/cigbutt{ + pixel_x = 4 + }, +/obj/item/trash/cigbutt{ + pixel_x = -10; + pixel_y = 13 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_a_p) "qAT" = ( /obj/structure/machinery/light, +/obj/effect/decal/warning_stripes{ + icon_state = "SW-out" + }, /obj/structure/surface/table/almayer, /obj/structure/machinery/reagentgrinder{ pixel_y = 8 @@ -62425,24 +49468,37 @@ pixel_x = -16; pixel_y = 5 }, -/obj/effect/decal/warning_stripes{ - icon_state = "SW-out" - }, -/turf/open/floor/almayer{ - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side, /area/almayer/medical/medical_science) +"qBl" = ( +/obj/structure/largecrate/random/case/small, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_f_p) +"qBq" = ( +/obj/structure/machinery/door/airlock/almayer/generic{ + dir = 2; + name = "\improper Bathroom" + }, +/turf/open/floor/almayer/test_floor4, +/area/almayer/living/commandbunks) "qBM" = ( /obj/item/storage/fancy/crayons{ layer = 3.1; pixel_x = -6; pixel_y = 5 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "green" - }, +/turf/open/floor/almayer/green/west, /area/almayer/living/grunt_rnr) +"qBS" = ( +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12 + }, +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12; + pixel_y = 12 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/stern) "qCc" = ( /obj/structure/sign/safety/security{ pixel_x = 15; @@ -62453,15 +49509,6 @@ }, /turf/open/floor/almayer, /area/almayer/living/briefing) -"qCg" = ( -/obj/structure/mirror{ - pixel_y = 32 - }, -/obj/structure/sink{ - pixel_y = 24 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/engineering/upper_engineering/port) "qCo" = ( /obj/structure/pipes/vents/pump{ dir = 1 @@ -62472,6 +49519,16 @@ /obj/effect/landmark/start/captain, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/bridgebunks) +"qCA" = ( +/obj/structure/machinery/light{ + unacidable = 1; + unslashable = 1 + }, +/obj/structure/sign/safety/rewire{ + pixel_y = -38 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/execution) "qCG" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -62479,6 +49536,29 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hallways/hangar) +"qCH" = ( +/obj/structure/machinery/door/poddoor/shutters/almayer{ + id = "Secretroom"; + indestructible = 1; + unacidable = 1 + }, +/turf/open/floor/almayer/test_floor4, +/area/almayer/maint/hull/lower/l_m_s) +"qCU" = ( +/obj/structure/machinery/light{ + dir = 4 + }, +/obj/structure/surface/table/almayer, +/obj/structure/machinery/computer/sentencing{ + dir = 8; + pixel_y = 6 + }, +/obj/structure/sign/safety/terminal{ + pixel_x = 32; + pixel_y = -22 + }, +/turf/open/floor/almayer/red/east, +/area/almayer/shipboard/brig/perma) "qDq" = ( /obj/effect/landmark/start/marine/bravo, /obj/effect/landmark/late_join/bravo, @@ -62491,42 +49571,25 @@ req_access = null }, /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/command/lifeboat) -"qDv" = ( -/obj/structure/closet, -/obj/item/stack/sheet/glass/large_stack, -/obj/item/device/lightreplacer, -/obj/item/reagent_container/spray/cleaner, -/obj/item/stack/rods{ - amount = 40 - }, -/obj/item/tool/weldingtool, -/obj/item/clothing/glasses/welding, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_s) -"qDN" = ( -/obj/structure/machinery/light{ - dir = 8 - }, -/obj/structure/machinery/cm_vending/sorted/medical/marinemed, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, -/area/almayer/command/cic) +"qDB" = ( +/obj/structure/machinery/door/airlock/almayer/maint, +/turf/open/floor/almayer/test_floor4, +/area/almayer/maint/hull/upper/u_a_p) "qDP" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/east, /area/almayer/medical/operating_room_four) +"qDS" = ( +/obj/item/stack/tile/carpet{ + amount = 20 + }, +/obj/structure/surface/rack, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_a_p) "qEk" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -62535,11 +49598,14 @@ icon_state = "N"; pixel_y = 1 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/almayer/command/cic) +"qEl" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/turf/open/floor/almayer/plating/northeast, +/area/almayer/hallways/lower/vehiclehangar) "qEn" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/effect/decal/warning_stripes{ @@ -62550,9 +49616,10 @@ name = "\improper Research Hydroponics Workshop" }, /obj/structure/machinery/door/poddoor/almayer/biohazard/white, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 }, +/turf/open/floor/almayer/test_floor4, /area/almayer/medical/hydroponics) "qEy" = ( /obj/structure/disposalpipe/segment, @@ -62561,27 +49628,56 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/brig/processing) -"qEW" = ( -/obj/structure/sign/poster/ad{ - pixel_x = 30 +"qEz" = ( +/obj/structure/machinery/door_control{ + id = "laddersouthwest"; + name = "South West Ladders Shutters"; + pixel_y = -21; + req_one_access_txt = "2;3;12;19"; + throw_range = 15 }, -/obj/structure/closet, -/obj/item/clothing/mask/cigarette/weed, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/structure/sign/safety/stairs{ + pixel_x = 15; + pixel_y = -32 }, -/area/almayer/hull/lower_hull/l_m_s) -"qFb" = ( -/obj/structure/sign/safety/storage{ +/obj/structure/sign/safety/west{ pixel_y = -32 }, -/turf/open/floor/almayer{ - icon_state = "green" +/turf/open/floor/almayer/plate, +/area/almayer/hallways/lower/port_fore_hallway) +"qEA" = ( +/obj/structure/bed, +/obj/structure/machinery/flasher{ + id = "Cell 4"; + pixel_x = -24 + }, +/turf/open/floor/almayer/red/west, +/area/almayer/shipboard/brig/cells) +"qEL" = ( +/obj/structure/surface/table/almayer, +/obj/structure/largecrate/random/case/small{ + pixel_y = 5 }, -/area/almayer/hallways/starboard_hallway) -"qFl" = ( -/turf/closed/wall/almayer/reinforced, -/area/almayer/hull/upper_hull/u_f_p) +/obj/item/storage/firstaid/toxin{ + pixel_x = 8; + pixel_y = -2 + }, +/turf/open/floor/almayer/plate, +/area/almayer/engineering/lower) +"qEM" = ( +/obj/structure/machinery/door/poddoor/shutters/almayer{ + id = "laddersouthwest"; + name = "\improper South West Ladders Shutters" + }, +/obj/effect/step_trigger/clone_cleaner, +/turf/open/floor/almayer/test_floor4, +/area/almayer/hallways/lower/port_fore_hallway) +"qFi" = ( +/obj/structure/bed/chair/comfy/black{ + dir = 4 + }, +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/chief_mp_office) "qFu" = ( /obj/structure/window/framed/almayer, /obj/structure/machinery/door/poddoor/shutters/almayer{ @@ -62591,11 +49687,16 @@ }, /turf/open/floor/plating, /area/almayer/shipboard/brig/cells) +"qFE" = ( +/obj/structure/machinery/brig_cell/cell_5{ + pixel_x = 32; + pixel_y = -32 + }, +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/processing) "qFG" = ( /obj/structure/window/framed/almayer, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/charlie) "qFK" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -62608,107 +49709,125 @@ icon_state = "SE-out"; pixel_x = 1 }, -/turf/open/floor/almayer{ - icon_state = "bluefull" - }, +/turf/open/floor/almayer/bluefull, /area/almayer/squads/delta) -"qFQ" = ( +"qFS" = ( +/obj/structure/largecrate/random/barrel/yellow, /obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "red" + icon_state = "E"; + pixel_x = 1 }, -/area/almayer/hallways/aft_hallway) -"qFW" = ( -/obj/structure/sign/safety/storage{ - pixel_x = 8; - pixel_y = 32 +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_a_s) +"qFX" = ( +/turf/closed/wall/almayer, +/area/almayer/shipboard/brig/mp_bunks) +"qGc" = ( +/turf/open/floor/almayer/red/north, +/area/almayer/squads/alpha_bravo_shared) +"qGf" = ( +/obj/structure/machinery/power/apc/almayer, +/obj/structure/sign/safety/rewire{ + pixel_y = -38 }, -/turf/open/floor/almayer{ - icon_state = "plate" +/turf/open/floor/almayer/red, +/area/almayer/shipboard/brig/lobby) +"qGw" = ( +/obj/structure/reagent_dispensers/ammoniatank{ + anchored = 1 }, -/area/almayer/hull/upper_hull/u_a_p) -"qGc" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" +/turf/open/floor/almayer/cargo, +/area/almayer/engineering/lower/workshop/hangar) +"qGC" = ( +/obj/structure/machinery/light/small{ + dir = 1 }, -/area/almayer/squads/alpha_bravo_shared) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_a_s) "qGF" = ( /obj/structure/machinery/optable, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/medical/operating_room_two) -"qHb" = ( -/obj/structure/bed/chair{ - dir = 8 - }, -/obj/item/device/radio/intercom{ - freerange = 1; - name = "Saferoom Channel"; - pixel_y = -28 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_s) +"qGU" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/almayer/cargo, +/area/almayer/lifeboat_pumps/south2) "qHg" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "cargo_arrow" - }, +/turf/open/floor/almayer/cargo_arrow/north, /area/almayer/squads/alpha_bravo_shared) -"qHl" = ( -/obj/item/device/radio/intercom{ - freerange = 1; - name = "General Listening Channel"; - pixel_y = -28 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "green" - }, -/area/almayer/hallways/starboard_hallway) "qHq" = ( /obj/structure/machinery/door/airlock/almayer/secure/reinforced{ dir = 2; name = "\improper Evacuation Airlock SU-6"; req_access = null }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/powered) -"qHF" = ( -/obj/structure/surface/table/almayer, -/obj/item/storage/box/bodybags{ - pixel_x = 6; - pixel_y = 6 +"qHD" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/obj/item/storage/box/bodybags, -/turf/open/floor/almayer{ - icon_state = "redcorner" +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" }, -/area/almayer/shipboard/brig/execution) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/upper/aft_hallway) +"qHG" = ( +/obj/structure/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/p_stern) "qHM" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk{ dir = 8 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/northeast, /area/almayer/engineering/upper_engineering) -"qIL" = ( -/obj/structure/surface/table/almayer, -/obj/structure/machinery/camera/autoname/almayer{ - dir = 4; +"qHT" = ( +/obj/structure/sign/safety/hvac_old{ + pixel_x = 8; + pixel_y = 32 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/upper/u_m_p) +"qIa" = ( +/obj/structure/platform{ + dir = 4 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_a_s) +"qIf" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/starboard_aft_hallway) +"qIx" = ( +/obj/structure/machinery/door/airlock/almayer/maint{ + access_modified = 1; + req_access_txt = "200"; + req_one_access = null + }, +/obj/structure/machinery/door/poddoor/shutters/almayer/cl/quarter/backdoor, +/turf/open/floor/almayer/test_floor4, +/area/almayer/command/corporateliaison) +"qIF" = ( +/obj/structure/sign/safety/rewire{ + pixel_x = 8; + pixel_y = 32 + }, +/turf/open/floor/almayer/blue/north, +/area/almayer/hallways/upper/fore_hallway) +"qIL" = ( +/obj/structure/surface/table/almayer, +/obj/structure/machinery/camera/autoname/almayer{ + dir = 4; name = "ship-grade camera" }, /obj/item/folder/white{ @@ -62721,10 +49840,15 @@ /obj/item/tool/pen{ pixel_y = 8 }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/medical/medical_science) +"qJf" = ( +/obj/structure/machinery/light{ + dir = 4 + }, +/obj/structure/closet/secure_closet/guncabinet/red/armory_shotgun, +/turf/open/floor/almayer/redfull, +/area/almayer/engineering/upper_engineering) "qJj" = ( /obj/structure/desertdam/decals/road_edge{ icon_state = "road_edge_decal3"; @@ -62735,11 +49859,16 @@ }, /turf/open/floor/wood/ship, /area/almayer/living/basketball) +"qJo" = ( +/obj/structure/machinery/disposal, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/almayer/red/southeast, +/area/almayer/shipboard/brig/perma) "qJx" = ( /obj/structure/machinery/vending/cola, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/engineering/upper_engineering/starboard) "qJy" = ( /obj/structure/pipes/vents/pump, @@ -62751,34 +49880,15 @@ icon_state = "W"; pixel_x = -1 }, -/turf/open/floor/almayer{ - icon_state = "sterile_green" - }, +/turf/open/floor/almayer/sterile_green, /area/almayer/medical/hydroponics) -"qJF" = ( -/obj/structure/largecrate/supply, -/obj/item/tool/crowbar, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/hull/upper_hull/u_f_p) -"qJN" = ( -/obj/structure/surface/rack, -/obj/item/device/radio, -/obj/item/tool/weldpack, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/vehiclehangar) "qJS" = ( /obj/structure/reagent_dispensers/water_cooler/stacks{ density = 0; pixel_x = -11; pixel_y = -1 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/almayer/living/grunt_rnr) "qJY" = ( /obj/structure/surface/table/almayer, @@ -62800,9 +49910,7 @@ pixel_x = 5; pixel_y = 10 }, -/turf/open/floor/almayer{ - icon_state = "orange" - }, +/turf/open/floor/almayer/orange, /area/almayer/living/port_emb) "qJZ" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -62813,6 +49921,19 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/brig/cells) +"qKb" = ( +/obj/structure/surface/table/almayer, +/obj/item/storage/box/lights/tubes{ + pixel_x = -8 + }, +/obj/item/storage/box/lights/tubes{ + pixel_x = 5 + }, +/obj/item/storage/box/lights/tubes{ + pixel_y = 10 + }, +/turf/open/floor/plating, +/area/almayer/maint/lower/constr) "qKi" = ( /obj/effect/decal/warning_stripes{ icon_state = "E" @@ -62820,39 +49941,48 @@ /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/almayer/engineering/upper_engineering) +"qKl" = ( +/obj/structure/sign/safety/intercom{ + pixel_x = 32; + pixel_y = 7 + }, +/turf/open/floor/almayer/plate, +/area/almayer/shipboard/panic) "qKz" = ( /obj/structure/machinery/light/small, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/east, /area/almayer/command/securestorage) -"qKF" = ( -/obj/structure/surface/table/reinforced/almayer_B, -/obj/item/device/radio/headset/almayer/mt, -/turf/open/floor/almayer{ - icon_state = "plate" +"qKK" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/area/almayer/hull/upper_hull/u_a_p) -"qKM" = ( -/obj/structure/machinery/door_control{ - id = "laddersouthwest"; - name = "South West Ladders Shutters"; - pixel_x = 25; - req_one_access_txt = "2;3;12;19"; - throw_range = 15 +/obj/structure/largecrate/random/barrel/blue, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_a_p) +"qKY" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 }, -/obj/effect/step_trigger/clone_cleaner, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "greencorner" +/turf/open/floor/almayer/orange/northwest, +/area/almayer/engineering/upper_engineering/port) +"qKZ" = ( +/obj/effect/step_trigger/teleporter_vector{ + name = "Almayer_AresUp"; + vector_x = -96; + vector_y = 65 + }, +/obj/structure/stairs{ + dir = 1 }, -/area/almayer/hallways/port_hallway) +/turf/open/floor/almayer/aicore/glowing/no_build/ai_floor3, +/area/almayer/command/airoom) +"qLg" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/almayer/red, +/area/almayer/hallways/upper/port) "qLi" = ( /obj/effect/decal/warning_stripes{ icon_state = "SE-out"; @@ -62865,27 +49995,15 @@ pixel_y = 1 }, /obj/structure/pipes/standard/manifold/hidden/supply/no_boom, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/medical/containment) -"qLj" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "SE-out" - }, -/turf/open/floor/almayer{ - icon_state = "blue" +"qLk" = ( +/obj/structure/machinery/door/airlock/almayer/maint, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/area/almayer/hallways/aft_hallway) -"qLo" = ( -/obj/structure/machinery/light, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/starboard_hallway) -"qLp" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer, -/area/almayer/hallways/port_hallway) +/turf/open/floor/almayer/test_floor4, +/area/almayer/maint/upper/u_a_p) "qLs" = ( /obj/effect/landmark/start/maint, /turf/open/floor/plating/plating_catwalk, @@ -62906,10 +50024,7 @@ pixel_x = -4; pixel_y = -4 }, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "green" - }, +/turf/open/floor/almayer/green/southwest, /area/almayer/shipboard/brig/cells) "qLH" = ( /obj/structure/bed/chair{ @@ -62919,53 +50034,45 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/port_emb) -"qLK" = ( -/obj/structure/sign/safety/medical{ - pixel_x = 8; - pixel_y = 32 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "blue" - }, -/area/almayer/hallways/aft_hallway) "qLS" = ( /obj/structure/pipes/standard/manifold/hidden/supply/no_boom, -/turf/open/floor/almayer/no_build{ - dir = 4 - }, +/turf/open/floor/almayer/aicore/glowing/no_build/ai_floor3, /area/almayer/command/airoom) "qLV" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/disk_reader, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/east, /area/almayer/command/computerlab) -"qMe" = ( -/obj/structure/machinery/portable_atmospherics/hydroponics, -/obj/item/tool/minihoe{ - pixel_x = -4; - pixel_y = -4 +"qLY" = ( +/obj/structure/bed/chair{ + dir = 8; + pixel_y = 3 }, -/obj/item/reagent_container/glass/fertilizer/ez, -/obj/item/seeds/ambrosiavulgarisseed, -/obj/item/tool/plantspray/weeds, -/obj/structure/machinery/firealarm{ - pixel_y = 28 +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_m_s) +"qMD" = ( +/obj/structure/surface/table/almayer, +/obj/item/storage/box/flashbangs, +/obj/item/storage/box/flashbangs{ + pixel_x = 5; + pixel_y = 9 }, -/turf/open/floor/wood/ship, -/area/almayer/command/corporateliason) -"qMf" = ( -/obj/structure/bed/chair, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/item/storage/box/flashbangs{ + pixel_x = -8; + pixel_y = 5 }, -/area/almayer/hull/upper_hull/u_a_p) -"qMu" = ( -/turf/closed/wall/almayer/outer, -/area/almayer/hull/upper_hull/u_a_p) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/armory) +"qMI" = ( +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 1 + }, +/obj/structure/disposalpipe/junction{ + dir = 2; + icon_state = "pipe-y" + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/upper/aft_hallway) "qMP" = ( /obj/structure/bed/chair/comfy{ dir = 8 @@ -62974,10 +50081,7 @@ icon_state = "E"; pixel_x = 1 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/east, /area/almayer/medical/medical_science) "qMR" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -62985,41 +50089,45 @@ }, /turf/open/floor/almayer, /area/almayer/living/briefing) +"qNc" = ( +/obj/structure/machinery/door_control{ + id = "ARES StairsLower"; + name = "ARES Core Lockdown"; + pixel_x = 24; + pixel_y = 8; + req_one_access_txt = "90;91;92" + }, +/obj/effect/step_trigger/clone_cleaner, +/turf/open/floor/almayer/aicore/no_build/ai_silver/east, +/area/almayer/command/airoom) "qNd" = ( /obj/structure/machinery/cryopod, /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/squads/delta) -"qNv" = ( -/obj/structure/surface/table/almayer, -/obj/item/tool/pen, -/obj/item/paper_bin/uscm{ - pixel_y = 7 +"qNI" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" }, -/turf/open/floor/almayer{ - icon_state = "red" +/obj/structure/sign/safety/distribution_pipes{ + pixel_x = -17 }, -/area/almayer/shipboard/brig/lobby) -"qNy" = ( +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/upper/port) +"qNK" = ( /obj/structure/largecrate/random/barrel/red, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_p) -"qNG" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 +/obj/structure/sign/safety/high_voltage{ + pixel_x = 32; + pixel_y = 7 }, -/obj/structure/sign/safety/autoopenclose{ - pixel_x = 8; - pixel_y = -32 +/obj/structure/sign/safety/fire_haz{ + pixel_x = 32; + pixel_y = -8 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_s) +/turf/open/floor/almayer/cargo, +/area/almayer/maint/hull/lower/l_f_s) "qNR" = ( /obj/structure/disposalpipe/junction, /obj/structure/pipes/standard/manifold/hidden/supply{ @@ -63039,34 +50147,44 @@ id = "medicalemergency"; name = "\improper Medical Bay Lockdown" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/medical/lower_medical_lobby) "qOk" = ( /obj/docking_port/stationary/lifeboat_dock/port, -/turf/open/floor/almayer_hull{ - dir = 4; - icon_state = "outerhull_dir" - }, +/turf/open/floor/almayer_hull/outerhull_dir/east, /area/space/almayer/lifeboat_dock) "qOp" = ( /obj/structure/disposalpipe/junction, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/gym) -"qOU" = ( -/obj/structure/machinery/door/airlock/almayer/maint, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +"qOS" = ( +/obj/structure/machinery/door_control{ + id = "laddernorthwest"; + name = "North West Ladders Shutters"; + pixel_x = 25; + req_one_access_txt = "2;3;12;19"; + throw_range = 15 }, -/area/almayer/hull/lower_hull/l_f_p) -"qPg" = ( -/obj/item/tool/warning_cone{ - pixel_x = -12; - pixel_y = 16 +/turf/open/floor/almayer/greencorner/east, +/area/almayer/hallways/lower/starboard_fore_hallway) +"qOY" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 1 }, -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_f_p) +/turf/open/floor/almayer/test_floor4, +/area/almayer/maint/hull/upper/u_f_p) +"qOZ" = ( +/obj/structure/machinery/cm_vending/sorted/medical/marinemed, +/obj/structure/medical_supply_link, +/turf/open/floor/almayer/sterile_green_side/north, +/area/almayer/medical/lower_medical_lobby) +"qPk" = ( +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_fore_hallway) +"qPn" = ( +/obj/structure/machinery/door/airlock/almayer/maint, +/turf/open/floor/almayer/test_floor4, +/area/almayer/maint/hull/lower/l_a_s) "qPD" = ( /turf/open/floor/almayer, /area/almayer/shipboard/brig/perma) @@ -63079,22 +50197,26 @@ pixel_x = -17; pixel_y = 16 }, -/turf/open/floor/almayer{ - icon_state = "silverfull" - }, +/turf/open/floor/almayer/silverfull, /area/almayer/command/securestorage) -"qPO" = ( -/turf/closed/wall/almayer/reinforced, -/area/almayer/shipboard/brig/surgery) "qPS" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/supply{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/medical/lower_medical_lobby) +"qPU" = ( +/obj/structure/machinery/light, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_fore_hallway) +"qPX" = ( +/obj/structure/machinery/light, +/obj/effect/decal/warning_stripes{ + icon_state = "SE-out" + }, +/turf/open/floor/almayer/red, +/area/almayer/command/lifeboat) "qQc" = ( /obj/structure/closet/secure_closet/personal/patient{ name = "morgue closet" @@ -63102,63 +50224,46 @@ /obj/structure/machinery/alarm/almayer{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/medical/morgue) "qQp" = ( /obj/structure/largecrate/supply, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/lifeboat_pumps/south1) -"qQL" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "NW-out"; - pixel_y = 1 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "orange" - }, -/area/almayer/engineering/upper_engineering/port) -"qQM" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/structure/machinery/light{ - unacidable = 1; - unslashable = 1 - }, -/turf/open/floor/almayer{ - icon_state = "sterile_green_side" - }, -/area/almayer/shipboard/brig/surgery) -"qQP" = ( +"qQu" = ( +/turf/open/floor/almayer, +/area/almayer/hallways/upper/fore_hallway) +"qQy" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/structure/sign/safety/nonpress_ag{ +/obj/structure/pipes/standard/manifold/hidden/supply, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/engineering/lower) +"qQD" = ( +/obj/structure/sign/safety/distribution_pipes{ pixel_x = 15; - pixel_y = -32 + pixel_y = 32 }, -/obj/structure/sign/safety/west{ - pixel_y = -32 +/obj/structure/sign/safety/intercom{ + pixel_y = 32 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_p) +/turf/open/floor/almayer/blue/north, +/area/almayer/hallways/upper/midship_hallway) "qQS" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "S"; - layer = 3.3 - }, -/obj/structure/machinery/light{ - dir = 8 - }, -/turf/open/floor/almayer/no_build{ - icon_state = "tcomms" - }, +/turf/open/floor/almayer/aicore/no_build, /area/almayer/command/airoom) +"qRb" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/starboard_fore_hallway) +"qRd" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/almayer/test_floor4, +/area/almayer/hallways/lower/starboard_aft_hallway) "qRj" = ( /obj/structure/disposalpipe/segment{ dir = 1; @@ -63170,51 +50275,25 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "silvercorner" - }, +/turf/open/floor/almayer/silvercorner/west, /area/almayer/shipboard/brig/cic_hallway) -"qRo" = ( -/obj/structure/pipes/vents/pump{ - dir = 8 - }, -/turf/open/floor/almayer{ - icon_state = "red" - }, -/area/almayer/shipboard/brig/general_equipment) -"qRL" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 - }, -/obj/structure/machinery/door/airlock/multi_tile/almayer/generic2{ - access_modified = 1; - name = "\improper Flight Crew Quarters"; - req_one_access_txt = "19;22" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/living/pilotbunks) -"qRT" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "SE-out"; - pixel_x = 1 - }, -/turf/open/floor/almayer, -/area/almayer/shipboard/brig/execution) -"qSl" = ( +"qRr" = ( +/obj/structure/machinery/door/airlock/almayer/generic/corporate, /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/obj/structure/machinery/power/apc/almayer{ - dir = 1 +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" +/obj/structure/machinery/door/poddoor/shutters/almayer/cl/quarter/door, +/turf/open/floor/almayer/test_floor4, +/area/almayer/command/corporateliaison) +"qRX" = ( +/obj/structure/pipes/standard/simple/hidden/supply/no_boom{ + dir = 4 }, -/area/almayer/shipboard/brig/general_equipment) +/turf/open/floor/almayer/aicore/glowing/no_build/ai_floor3, +/area/almayer/command/airoom) "qSm" = ( /obj/structure/pipes/vents/pump{ dir = 4 @@ -63224,10 +50303,14 @@ "qSE" = ( /obj/structure/surface/table/almayer, /obj/item/reagent_container/food/condiment/hotsauce/cholula, -/turf/open/floor/almayer{ - icon_state = "orangefull" - }, +/turf/open/floor/almayer/orangefull, /area/almayer/living/briefing) +"qSI" = ( +/obj/structure/surface/table/almayer, +/obj/item/tank/oxygen/red, +/obj/item/tool/screwdriver, +/turf/open/floor/almayer/plate, +/area/almayer/hallways/lower/port_umbilical) "qSK" = ( /obj/item/stack/sheet/metal{ layer = 2.9; @@ -63244,48 +50327,50 @@ icon_state = "SW-out"; pixel_x = -1 }, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/almayer/red/southeast, /area/almayer/lifeboat_pumps/south1) -"qTY" = ( -/obj/structure/machinery/gibber, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/living/grunt_rnr) -"qTZ" = ( +"qTi" = ( +/obj/structure/closet/crate, +/obj/item/ammo_box/magazine/l42a, +/obj/item/ammo_box/magazine/l42a, +/turf/open/floor/almayer/plate, +/area/almayer/maint/upper/u_m_s) +"qTu" = ( +/obj/structure/machinery/power/apc/almayer{ + dir = 1 + }, +/turf/open/floor/almayer/plate, +/area/almayer/hallways/lower/port_umbilical) +"qTA" = ( +/obj/structure/largecrate/random/case, +/turf/open/floor/almayer/plate, +/area/almayer/maint/upper/u_f_p) +"qTQ" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/starboard_umbilical) -"qUb" = ( -/obj/structure/surface/table/almayer, -/obj/structure/machinery/recharger, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" +/turf/open/floor/almayer/red, +/area/almayer/shipboard/brig/chief_mp_office) +"qTS" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SW-out"; + pixel_x = -1 }, -/area/almayer/shipboard/brig/processing) +/turf/open/floor/almayer, +/area/almayer/hallways/upper/midship_hallway) +"qTY" = ( +/obj/structure/machinery/gibber, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/living/grunt_rnr) "qUh" = ( /obj/structure/sign/safety/distribution_pipes{ pixel_x = -17 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) -"qUj" = ( -/obj/structure/largecrate/random/case/small, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_p) "qUp" = ( /obj/structure/surface/table/almayer, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/almayer/powered/agent) "qUq" = ( /obj/structure/window/reinforced{ @@ -63295,17 +50380,32 @@ dir = 4; health = 80 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "cargo_arrow" - }, +/turf/open/floor/almayer/cargo_arrow/north, /area/almayer/squads/charlie_delta_shared) -"qUH" = ( -/obj/structure/surface/rack, -/turf/open/floor/almayer{ - icon_state = "plate" +"qUu" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/almayer/cargo, +/area/almayer/hallways/upper/fore_hallway) +"qUx" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SW-out"; + layer = 2.5 }, -/area/almayer/hull/lower_hull/l_f_p) +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out" + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/upper/port) +"qUz" = ( +/obj/structure/machinery/light{ + dir = 8; + invisibility = 101 + }, +/turf/open/floor/almayer/red/west, +/area/almayer/shipboard/brig/processing) +"qUK" = ( +/turf/open/floor/almayer/blue, +/area/almayer/hallways/upper/fore_hallway) "qUL" = ( /obj/structure/machinery/landinglight/ds1/delaythree{ dir = 4 @@ -63313,24 +50413,37 @@ /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) +"qUO" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/disposalpipe/segment, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_aft_hallway) +"qUZ" = ( +/obj/structure/surface/table/almayer, +/obj/structure/machinery/door_control{ + id = "MTline"; + name = "Next button"; + pixel_x = 5; + pixel_y = 10; + req_one_access_txt = "2;7" + }, +/obj/item/paper_bin/uscm, +/obj/item/tool/pen, +/turf/open/floor/almayer/orange/north, +/area/almayer/engineering/lower/workshop/hangar) "qVC" = ( /obj/structure/surface/table/reinforced/almayer_B, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/captain_mess) +"qVE" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_m_s) "qVF" = ( -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/shipboard/brig/execution) -"qVM" = ( -/turf/closed/wall/almayer, -/area/almayer/hull/upper_hull/u_m_p) "qVS" = ( /obj/structure/machinery/door/poddoor/almayer/open{ dir = 2; @@ -63340,21 +50453,8 @@ /obj/structure/sign/safety/conference_room{ pixel_x = -17 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/command/cichallway) -"qVU" = ( -/obj/structure/surface/rack, -/obj/item/tool/weldingtool, -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_p) "qWt" = ( /obj/structure/disposalpipe/segment{ dir = 8; @@ -63370,62 +50470,93 @@ /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/delta) -"qWy" = ( -/obj/structure/bed/chair/comfy/delta, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/living/briefing) +"qWx" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer/plate, +/area/almayer/hallways/lower/port_midship_hallway) "qWI" = ( /obj/structure/machinery/status_display{ pixel_y = -30 }, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/north1) +"qWK" = ( +/obj/structure/machinery/light{ + dir = 8 + }, +/turf/open/floor/almayer/emerald/west, +/area/almayer/hallways/lower/port_midship_hallway) +"qWL" = ( +/obj/structure/prop/holidays/string_lights{ + pixel_y = 27 + }, +/obj/item/frame/rack, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_m_s) +"qWQ" = ( +/obj/structure/machinery/alarm/almayer{ + dir = 1 + }, +/turf/open/floor/almayer/orange/north, +/area/almayer/engineering/lower) "qWR" = ( /turf/closed/wall/almayer/research/containment/wall/corner{ dir = 4 }, /area/almayer/medical/containment/cell/cl) -"qWT" = ( -/obj/effect/landmark/yautja_teleport, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_s) +"qXk" = ( +/turf/open/floor/almayer/plate, +/area/almayer/engineering/lower/workshop) "qXo" = ( /obj/structure/machinery/seed_extractor, /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "green" - }, +/turf/open/floor/almayer/green/northwest, /area/almayer/living/grunt_rnr) -"qXx" = ( -/obj/structure/platform, -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 +"qXp" = ( +/obj/structure/surface/table/almayer, +/obj/effect/decal/cleanable/dirt, +/obj/item/device/flashlight/lamp{ + pixel_x = 15 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" +/turf/open/floor/almayer/bluefull, +/area/almayer/living/briefing) +"qXE" = ( +/obj/structure/machinery/brig_cell/perma_1{ + pixel_x = 32 }, -/area/almayer/engineering/engine_core) -"qXM" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "SW-out" +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/perma) +"qXO" = ( +/obj/structure/surface/table/almayer, +/obj/item/reagent_container/food/snacks/mre_pack/xmas3{ + pixel_x = 5 + }, +/obj/item/reagent_container/food/snacks/mre_pack/xmas2{ + pixel_x = 5; + pixel_y = 9 + }, +/obj/effect/landmark/map_item{ + layer = 3.03; + pixel_x = -7; + pixel_y = 4 + }, +/turf/open/floor/almayer/plate, +/area/almayer/living/briefing) +"qXS" = ( +/obj/structure/stairs{ + icon_state = "ramptop" }, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/effect/projector{ + name = "Almayer_Down4"; + vector_x = 19; + vector_y = -104 }, -/area/almayer/hull/lower_hull/l_f_p) +/turf/open/floor/plating/almayer/no_build, +/area/almayer/hallways/upper/port) "qXZ" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -63438,10 +50569,14 @@ /obj/structure/platform_decoration{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) +"qYd" = ( +/turf/open/floor/almayer/red/southeast, +/area/almayer/lifeboat_pumps/south2) +"qYq" = ( +/turf/open/floor/almayer/orange/northeast, +/area/almayer/engineering/lower/engine_core) "qYr" = ( /obj/effect/step_trigger/teleporter_vector{ name = "Almayer_Down3"; @@ -63454,25 +50589,18 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/plating/almayer{ - allow_construction = 0 - }, +/turf/open/floor/plating/almayer/no_build, /area/almayer/stair_clone/upper) -"qYt" = ( -/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ - pixel_y = 25 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "green" - }, -/area/almayer/hallways/port_hallway) "qYu" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/command/lifeboat) +"qYz" = ( +/obj/structure/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/upper/u_m_s) "qYC" = ( /obj/structure/disposalpipe/down/almayer{ dir = 4; @@ -63481,37 +50609,15 @@ /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/south1) "qYG" = ( -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/command/lifeboat) -"qYH" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "SW-out" - }, -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 8 - }, -/obj/structure/machinery/door/airlock/almayer/security/reinforced{ - name = "\improper Execution Equipment" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/shipboard/brig/execution) "qYN" = ( /obj/structure/surface/table/almayer, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, /obj/structure/machinery/light{ dir = 1 }, /obj/item/toy/deck, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/almayer/red/northeast, /area/almayer/living/offices/flight) "qYQ" = ( /obj/structure/window/reinforced{ @@ -63522,14 +50628,8 @@ dir = 8; health = 80 }, -/turf/open/floor/almayer{ - icon_state = "cargo_arrow" - }, +/turf/open/floor/almayer/cargo_arrow, /area/almayer/squads/charlie_delta_shared) -"qYW" = ( -/obj/item/clothing/shoes/red, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_m_p) "qYZ" = ( /obj/structure/sign/safety/security{ pixel_y = -32 @@ -63540,52 +50640,76 @@ }, /turf/open/floor/almayer, /area/almayer/living/briefing) -"qZg" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ +"qZy" = ( +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12 + }, +/obj/structure/prop/invuln/lattice_prop{ + icon_state = "lattice2"; + pixel_x = 16; + pixel_y = 16 + }, +/obj/structure/largecrate/supply/supplies/flares, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_m_p) +"qZA" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer/red/west, +/area/almayer/shipboard/brig/chief_mp_office) +"qZF" = ( +/obj/structure/surface/table/almayer, +/obj/structure/machinery/computer/cameras/almayer_network{ dir = 8; - icon_state = "redcorner" + pixel_y = 6 }, -/area/almayer/shipboard/brig/processing) +/obj/structure/machinery/door_control{ + id = "perma_lockdown_1"; + name = "\improper Perma Cells Lockdown"; + pixel_x = -8; + pixel_y = -4; + req_access_txt = "3" + }, +/turf/open/floor/almayer/red/east, +/area/almayer/shipboard/brig/perma) "qZH" = ( /obj/structure/surface/table/almayer, /obj/item/paper{ pixel_x = 3; pixel_y = 7 }, -/turf/open/floor/almayer{ - icon_state = "greenfull" - }, +/turf/open/floor/almayer/greenfull, /area/almayer/living/offices) +"qZK" = ( +/obj/structure/sign/safety/water{ + pixel_x = 8; + pixel_y = -32 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_m_s) +"qZT" = ( +/obj/structure/machinery/power/apc/almayer{ + dir = 1 + }, +/turf/open/floor/almayer/plate, +/area/almayer/hallways/lower/starboard_fore_hallway) "qZX" = ( /obj/structure/machinery/cryopod{ pixel_y = 6 }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/squads/bravo) -"rag" = ( -/obj/structure/sign/safety/maint{ - pixel_x = -17 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" - }, -/area/almayer/shipboard/brig/main_office) -"rav" = ( -/obj/structure/platform{ - dir = 4 - }, -/obj/item/reagent_container/glass/rag, -/obj/structure/machinery/light/small{ +"rae" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_p) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/engineering/lower/engine_core) +"raE" = ( +/obj/structure/machinery/light, +/turf/open/floor/almayer/test_floor4, +/area/almayer/hallways/lower/port_fore_hallway) "raK" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -63593,25 +50717,29 @@ /obj/structure/machinery/camera/autoname/almayer{ name = "ship-grade camera" }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "emerald" - }, +/turf/open/floor/almayer/emerald/north, /area/almayer/squads/charlie) -"rbp" = ( -/obj/structure/largecrate/random/case/small, -/turf/open/floor/almayer{ - icon_state = "plate" +"raO" = ( +/obj/structure/bed/sofa/south/grey/right, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_f_p) +"rbd" = ( +/obj/structure/barricade/handrail{ + dir = 8 }, -/area/almayer/hull/lower_hull/l_a_p) -"rbv" = ( -/obj/structure/machinery/light/small{ - dir = 1 +/obj/structure/barricade/handrail{ + dir = 1; + pixel_y = 2 }, -/turf/open/floor/almayer{ - icon_state = "plate" +/turf/open/floor/almayer/test_floor5, +/area/almayer/hallways/lower/starboard_midship_hallway) +"rbp" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 1 }, -/area/almayer/hull/lower_hull/l_f_s) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_f_s) "rby" = ( /obj/structure/machinery/door_control{ id = "ARES Mainframe Left"; @@ -63620,14 +50748,10 @@ pixel_y = -24; req_one_access_txt = "200;91;92" }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, +/turf/open/floor/almayer/aicore/no_build, /area/almayer/command/airoom) "rbB" = ( -/turf/open/floor/almayer{ - icon_state = "silvercorner" - }, +/turf/open/floor/almayer/silvercorner, /area/almayer/command/computerlab) "rbF" = ( /obj/effect/landmark/late_join, @@ -63645,26 +50769,20 @@ /obj/structure/machinery/firealarm{ pixel_y = 28 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "cargo_arrow" - }, +/turf/open/floor/almayer/cargo_arrow/west, /area/almayer/squads/charlie) -"rbX" = ( -/obj/structure/sign/safety/manualopenclose{ - pixel_x = 15; - pixel_y = -32 +"rbK" = ( +/obj/structure/bed/chair/wood/normal{ + dir = 4 }, -/obj/structure/sign/safety/distribution_pipes{ - pixel_y = -32 +/obj/effect/decal/cleanable/blood, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 6 }, -/turf/open/floor/almayer, -/area/almayer/hallways/port_hallway) +/turf/open/floor/almayer/cargo, +/area/almayer/shipboard/brig/execution) "rbY" = ( /obj/structure/window/framed/almayer, -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 1 - }, /obj/structure/machinery/door/poddoor/shutters/almayer{ id = "crate_room"; name = "\improper Storage Shutters" @@ -63679,59 +50797,21 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 9 }, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/southeast, /area/almayer/medical/lower_medical_lobby) -"rcH" = ( -/obj/structure/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/almayer{ - icon_state = "plate" +"rcG" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 5 }, -/area/almayer/hull/lower_hull/l_f_p) +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer, +/area/almayer/maint/hull/upper/u_f_p) "rcS" = ( /obj/structure/machinery/computer/cryopod/eng{ dir = 8 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/north, /area/almayer/engineering/upper_engineering) -"rcW" = ( -/obj/item/storage/toolbox/mechanical{ - pixel_y = 13 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_m_s) -"rdb" = ( -/obj/structure/surface/table/almayer, -/obj/effect/decal/cleanable/dirt, -/obj/item/paper_bin/uscm{ - pixel_x = 9; - pixel_y = 6 - }, -/obj/item/tool/pen{ - pixel_x = 9; - pixel_y = 2 - }, -/obj/item/tool/pen{ - pixel_x = 9; - pixel_y = 9 - }, -/obj/structure/prop/holidays/string_lights{ - dir = 8; - pixel_x = 29 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/living/briefing) "rde" = ( /obj/structure/sign/prop1, /turf/closed/wall/almayer, @@ -63743,19 +50823,6 @@ }, /turf/open/floor/almayer, /area/almayer/command/lifeboat) -"rdr" = ( -/obj/structure/surface/table/almayer, -/obj/item/storage/box/lights/tubes{ - pixel_x = -8 - }, -/obj/item/storage/box/lights/tubes{ - pixel_x = 5 - }, -/obj/item/storage/box/lights/tubes{ - pixel_y = 10 - }, -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_f_p) "rdt" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -63765,17 +50832,54 @@ }, /turf/open/floor/almayer/research/containment/corner4, /area/almayer/medical/containment/cell) +"rdz" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/machinery/door/airlock/almayer/command/reinforced{ + closeOtherId = "ciclobby_s"; + id_tag = "cic_exterior"; + name = "\improper Combat Information Center" + }, +/obj/structure/machinery/door/poddoor/almayer/open{ + dir = 4; + id = "CIC Lockdown"; + name = "\improper Combat Information Center Blast Door" + }, +/turf/open/floor/almayer/test_floor4, +/area/almayer/command/cic) +"rdA" = ( +/obj/structure/sign/safety/maint{ + pixel_x = -17; + pixel_y = -34 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 9 + }, +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/perma) "rdI" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/technology_scanner, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/southeast, /area/almayer/engineering/upper_engineering) -"rdK" = ( -/turf/closed/wall/almayer, -/area/almayer/hull/lower_hull/l_a_s) +"rdM" = ( +/obj/structure/machinery/vending/snack, +/obj/structure/machinery/status_display{ + pixel_x = 32 + }, +/obj/structure/machinery/camera/autoname/almayer{ + name = "ship-grade camera" + }, +/turf/open/floor/almayer/plate, +/area/almayer/shipboard/brig/general_equipment) +"rdN" = ( +/obj/structure/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/s_bow) "rdS" = ( /obj/structure/machinery/light{ dir = 8 @@ -63785,20 +50889,22 @@ /obj/item/storage/box/bodybags, /obj/item/storage/box/bodybags, /obj/item/storage/box/bodybags, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/west, /area/almayer/medical/lower_medical_lobby) -"rdY" = ( -/obj/structure/machinery/light{ - dir = 8 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "blue" +"rdT" = ( +/obj/structure/machinery/power/apc/almayer, +/turf/open/floor/almayer/plate, +/area/almayer/hallways/lower/port_fore_hallway) +"rdZ" = ( +/turf/open/floor/plating, +/area/almayer/command/corporateliaison) +"rec" = ( +/obj/structure/bed/chair/comfy/bravo{ + dir = 1 }, -/area/almayer/hallways/port_hallway) +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer/plate, +/area/almayer/living/briefing) "ren" = ( /obj/structure/machinery/light{ dir = 4 @@ -63806,10 +50912,20 @@ /obj/structure/target{ name = "punching bag" }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/gym) +"reu" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/starboard_aft_hallway) +"reH" = ( +/obj/structure/noticeboard{ + pixel_x = -10; + pixel_y = 31 + }, +/turf/open/floor/almayer/plating/northeast, +/area/almayer/squads/req) "reL" = ( /obj/structure/surface/table/almayer, /obj/item/reagent_container/food/snacks/sliceable/bread{ @@ -63819,16 +50935,26 @@ pixel_y = 4 }, /obj/item/reagent_container/food/snacks/sliceable/bread, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/almayer/living/grunt_rnr) +"reM" = ( +/obj/structure/machinery/power/smes/buildable, +/obj/structure/sign/safety/hazard{ + pixel_x = 15; + pixel_y = -32 + }, +/obj/structure/sign/safety/high_voltage{ + pixel_y = -32 + }, +/turf/open/floor/almayer/orange, +/area/almayer/maint/upper/mess) +"reN" = ( +/turf/open/floor/almayer/plate, +/area/almayer/maint/lower/cryo_cells) "rfa" = ( /obj/effect/landmark/start/marine/medic/alpha, /obj/effect/landmark/late_join/alpha, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/alpha) "rfb" = ( /turf/closed/wall/almayer/research/containment/wall/purple{ @@ -63836,29 +50962,11 @@ icon_state = "containment_window_h" }, /area/almayer/medical/containment/cell/cl) -"rfg" = ( -/obj/structure/machinery/door/airlock/almayer/maint{ - dir = 1 - }, -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hull/upper_hull/u_m_s) -"rfv" = ( -/obj/structure/surface/table/woodentable/fancy, -/obj/structure/machinery/faxmachine/uscm/command/capt{ - name = "Commanding Officer's Fax Machine"; - pixel_x = -4; - pixel_y = 3 - }, -/obj/structure/machinery/light{ - dir = 1 - }, -/turf/open/floor/wood/ship, -/area/almayer/living/commandbunks) +"rfB" = ( +/obj/structure/surface/rack, +/obj/effect/spawner/random/toolbox, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/p_bow) "rfI" = ( /obj/structure/sign/safety/airlock{ pixel_y = -32 @@ -63867,9 +50975,7 @@ pixel_x = 15; pixel_y = -32 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/shipboard/port_point_defense) "rfT" = ( /obj/item/frame/camera{ @@ -63887,32 +50993,31 @@ icon_state = "S"; pixel_y = -1 }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/living/port_emb) +"rfY" = ( +/obj/structure/machinery/cryopod, +/obj/structure/machinery/light{ + dir = 8; + invisibility = 101 + }, +/turf/open/floor/almayer/cargo, +/area/almayer/shipboard/brig/cryo) +"rgk" = ( +/obj/structure/platform_decoration{ + dir = 1 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_a_s) +"rgt" = ( +/turf/closed/wall/almayer, +/area/almayer/hallways/lower/port_umbilical) "rgy" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 1 }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hallways/hangar) -"rgA" = ( -/obj/structure/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_a_p) -"rgJ" = ( -/obj/structure/machinery/light, -/obj/structure/machinery/disposal, -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/living/port_emb) "rgK" = ( /obj/structure/pipes/vents/scrubber{ dir = 8 @@ -63927,34 +51032,56 @@ pixel_x = -14; pixel_y = 3 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/east, /area/almayer/living/auxiliary_officer_office) -"rgW" = ( -/turf/open/floor/almayer{ - icon_state = "emeraldcorner" +"rgL" = ( +/turf/open/floor/plating, +/area/almayer/maint/upper/u_m_p) +"rgO" = ( +/obj/structure/disposalpipe/junction, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/upper/midship_hallway) +"rgW" = ( +/turf/open/floor/almayer/emeraldcorner, /area/almayer/living/briefing) -"rhD" = ( -/obj/structure/machinery/light/small{ - dir = 8 +"rhm" = ( +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 4 }, -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 2 +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_f_s) +"rho" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer/orange/north, +/area/almayer/hallways/upper/midship_hallway) +"rht" = ( +/obj/structure/machinery/vending/cola, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/s_stern) +"rhy" = ( +/obj/structure/surface/table/almayer, +/obj/item/device/flashlight/lamp{ + layer = 3.3; + pixel_x = 15 }, -/obj/structure/closet/secure_closet/guncabinet/red/mp_armory_m39_submachinegun, -/turf/open/floor/plating/almayer, -/area/almayer/shipboard/brig/armory) +/obj/structure/prop/server_equipment/laptop{ + pixel_x = -2; + pixel_y = 1 + }, +/turf/open/floor/almayer/orangefull, +/area/almayer/living/briefing) +"rhD" = ( +/obj/structure/surface/rack, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_a_p) "rhO" = ( /obj/structure/machinery/vending/cola/research{ pixel_x = 4 }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/medical/medical_science) "rhQ" = ( /obj/structure/bed/chair{ @@ -63962,30 +51089,44 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/port_emb) -"ril" = ( -/obj/structure/prop/invuln/lattice_prop{ - dir = 1; - icon_state = "lattice-simple"; - pixel_x = -16; - pixel_y = 17 +"rib" = ( +/obj/structure/sink{ + dir = 8; + pixel_x = -12; + pixel_y = 2 + }, +/turf/open/floor/almayer/plate, +/area/almayer/shipboard/brig/perma) +"rir" = ( +/obj/structure/machinery/door/airlock/almayer/maint/reinforced, +/obj/structure/machinery/door/poddoor/almayer/open{ + dir = 4; + id = "Brig Lockdown Shutters"; + name = "\improper Brig Lockdown Shutter" }, -/turf/open/floor/almayer{ - icon_state = "plate" +/turf/open/floor/almayer/test_floor4, +/area/almayer/maint/hull/upper/s_bow) +"riB" = ( +/obj/structure/largecrate/random/case/small, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_a_s) +"riC" = ( +/obj/structure/machinery/light{ + dir = 4 }, -/area/almayer/hull/lower_hull/l_m_p) -"riA" = ( /obj/effect/decal/warning_stripes{ - icon_state = "S" + icon_state = "N"; + pixel_y = 2 }, /obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 + icon_state = "SE-out"; + pixel_x = 2 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" +/obj/effect/decal/warning_stripes{ + icon_state = "S" }, -/area/almayer/engineering/engine_core) +/turf/open/floor/almayer/plating/northeast, +/area/almayer/shipboard/panic) "riE" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/effect/decal/warning_stripes{ @@ -63993,70 +51134,55 @@ pixel_x = -1; pixel_y = 1 }, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/northwest, /area/almayer/medical/medical_science) "riJ" = ( -/turf/open/floor/almayer{ - dir = 5; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/northeast, /area/almayer/engineering/upper_engineering/starboard) -"riM" = ( -/obj/structure/reagent_dispensers/watertank, -/obj/structure/sign/safety/water{ - pixel_x = -17 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_m_p) "riP" = ( /obj/structure/machinery/light, /obj/structure/sign/safety/rewire{ pixel_y = -32 }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/lifeboat_pumps/south2) -"riQ" = ( -/obj/item/device/multitool, -/obj/structure/platform_decoration, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" +"riT" = ( +/obj/structure/machinery/light/small{ + dir = 1 }, -/area/almayer/engineering/engine_core) +/turf/open/floor/almayer/plating/northeast, +/area/almayer/shipboard/stern_point_defense) "rjn" = ( /obj/structure/machinery/light, /obj/structure/reagent_dispensers/water_cooler/stacks, -/turf/open/floor/almayer{ - icon_state = "green" - }, +/turf/open/floor/almayer/green, /area/almayer/living/grunt_rnr) -"rjw" = ( -/obj/structure/machinery/light{ +"rjr" = ( +/turf/open/floor/almayer/silvercorner, +/area/almayer/hallways/upper/midship_hallway) +"rjF" = ( +/obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/shipboard/brig/cells) +/obj/structure/bed/chair{ + dir = 8 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_f_s) "rjG" = ( /obj/structure/pipes/standard/tank/oxygen, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/engineering/upper_engineering/port) -"rjH" = ( -/obj/structure/surface/rack, -/obj/item/storage/beer_pack, -/turf/open/floor/almayer{ - icon_state = "plate" +"rjO" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + pixel_y = 1 }, -/area/almayer/command/corporateliason) +/turf/open/floor/almayer/plating/northeast, +/area/almayer/engineering/lower/engine_core) "rjV" = ( /obj/structure/surface/table/almayer, -/obj/structure/machinery/computer/cameras/wooden_tv/prop{ +/obj/structure/machinery/computer/cameras/wooden_tv/broadcast{ dir = 8; layer = 3.2; pixel_x = -3; @@ -64087,11 +51213,15 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "blue" - }, +/turf/open/floor/almayer/blue/southeast, /area/almayer/living/port_emb) +"rjX" = ( +/obj/structure/sign/safety/hvac_old{ + pixel_x = 15; + pixel_y = 32 + }, +/turf/open/floor/almayer/mono, +/area/almayer/lifeboat_pumps/north2) "rka" = ( /obj/structure/surface/table/almayer, /obj/item/paper_bin/uscm, @@ -64100,70 +51230,44 @@ pixel_x = 8; pixel_y = -32 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/engineering/upper_engineering) -"rkh" = ( -/obj/structure/machinery/door/poddoor/almayer/locked{ - dir = 8; - id = "Perma 1L"; - name = "\improper cell shutter" - }, -/obj/structure/machinery/door/airlock/almayer/security/glass/reinforced{ - name = "\improper Isolation Cell" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/shipboard/brig/perma) -"rku" = ( -/obj/structure/surface/table/reinforced/almayer_B, -/obj/item/tool/wrench{ - pixel_x = -2; - pixel_y = -1 - }, -/obj/item/tool/wrench{ - pixel_x = 2; - pixel_y = 7 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_p) "rkz" = ( /obj/structure/pipes/vents/scrubber, /turf/open/floor/almayer, /area/almayer/living/gym) -"rkK" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "redcorner" - }, -/area/almayer/shipboard/brig/execution) -"rkL" = ( -/obj/structure/window/framed/almayer, +"rkV" = ( +/obj/structure/window/framed/almayer/hull/hijack_bustable, /obj/structure/machinery/door/poddoor/shutters/almayer/open{ - dir = 2; + dir = 4; id = "Warden Office Shutters"; name = "\improper Privacy Shutters" }, +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 8 + }, +/obj/structure/machinery/door/poddoor/almayer/open{ + dir = 4; + id = "courtyard_cells"; + name = "\improper Courtyard Lockdown Shutter" + }, /turf/open/floor/plating, -/area/almayer/shipboard/brig/main_office) +/area/almayer/shipboard/brig/warden_office) +"rlc" = ( +/obj/structure/machinery/disposal, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/almayer/orange/west, +/area/almayer/engineering/lower/engine_core) "rlf" = ( /obj/structure/machinery/cm_vending/clothing/synth/snowflake, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/living/synthcloset) "rlh" = ( /obj/structure/closet/firecloset, /obj/structure/machinery/power/apc/almayer{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/shipboard/starboard_point_defense) "rll" = ( /obj/structure/machinery/light, @@ -64174,35 +51278,19 @@ icon_state = "E"; pixel_x = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/delta) -"rlz" = ( -/obj/structure/filingcabinet{ - density = 0; - pixel_x = 8; - pixel_y = 18 - }, -/obj/structure/filingcabinet{ - density = 0; - pixel_x = -8; - pixel_y = 18 - }, -/turf/open/floor/almayer{ - icon_state = "plate" +"rlD" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 9 }, -/area/almayer/hull/upper_hull/u_f_p) +/turf/open/floor/almayer/silver/east, +/area/almayer/hallways/lower/repair_bay) "rlQ" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/almayer/green/north, /area/almayer/living/grunt_rnr) "rlZ" = ( -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/medical/lower_medical_medbay) "rmc" = ( /obj/structure/disposalpipe/segment{ @@ -64211,47 +51299,77 @@ /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 8 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/east, /area/almayer/medical/medical_science) "rmf" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 6 }, -/turf/open/floor/almayer{ - icon_state = "orangecorner" - }, +/turf/open/floor/almayer/orangecorner, /area/almayer/engineering/upper_engineering/starboard) -"rmv" = ( -/obj/structure/machinery/door/airlock/almayer/security{ - dir = 2; - name = "\improper Interrogation Observation" +"rmk" = ( +/obj/structure/extinguisher_cabinet{ + pixel_y = 26 }, -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 1 +/turf/open/floor/almayer/red/north, +/area/almayer/shipboard/brig/starboard_hallway) +"rmo" = ( +/obj/structure/pipes/standard/cap/hidden{ + dir = 4 + }, +/obj/structure/sign/safety/hvac_old{ + pixel_x = 15; + pixel_y = 32 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +/turf/open/floor/almayer/mono, +/area/almayer/lifeboat_pumps/south2) +"rmx" = ( +/obj/structure/surface/table/almayer, +/obj/structure/machinery/recharger, +/obj/item/device/flash, +/turf/open/floor/almayer/plate, +/area/almayer/shipboard/brig/general_equipment) +"rmz" = ( +/obj/structure/sign/safety/conference_room{ + pixel_x = 14; + pixel_y = 32 }, -/area/almayer/shipboard/brig/main_office) +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_fore_hallway) "rmD" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "red" - }, +/turf/open/floor/almayer/red, /area/almayer/lifeboat_pumps/south1) -"rmN" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_s) +"rmE" = ( +/obj/structure/machinery/light/small{ + dir = 4 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/turf/open/floor/almayer/dark_sterile, +/area/almayer/engineering/upper_engineering/port) +"rmG" = ( +/obj/structure/blocker/fuelpump, +/turf/open/floor/almayer, +/area/almayer/lifeboat_pumps/north2) "rna" = ( -/turf/closed/wall/almayer/white, +/obj/structure/machinery/status_display{ + pixel_y = 30 + }, +/turf/open/floor/almayer/aicore/no_build, /area/almayer/command/airoom) -"rne" = ( -/turf/open/floor/carpet, -/area/almayer/command/corporateliason) +"rnF" = ( +/obj/structure/machinery/door/airlock/almayer/engineering{ + dir = 2; + name = "\improper Engineering Workshop" + }, +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 + }, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer/test_floor4, +/area/almayer/engineering/lower/workshop) "rnH" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -64261,39 +51379,29 @@ dir = 8; pixel_x = 17 }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, +/turf/open/floor/almayer/aicore/glowing/no_build, /area/almayer/command/airoom) "rnM" = ( -/obj/structure/machinery/vending/cigarette, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ + pixel_y = 25 }, -/area/almayer/hull/upper_hull/u_f_p) +/turf/open/floor/almayer/blue/north, +/area/almayer/hallways/upper/midship_hallway) "rnN" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/sign/nosmoking_2{ pixel_x = 32 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/east, /area/almayer/medical/upper_medical) "rob" = ( /obj/structure/pipes/standard/manifold/hidden/supply, /turf/open/floor/plating/plating_catwalk, /area/almayer/engineering/upper_engineering/starboard) -"rod" = ( -/obj/structure/machinery/power/apc/almayer{ - dir = 8 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/hull/lower_hull/l_f_s) +"roj" = ( +/obj/structure/largecrate/random/barrel/green, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/p_bow) "rou" = ( /obj/structure/machinery/cryopod/right{ pixel_y = 6 @@ -64301,17 +51409,13 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/squads/bravo) "roG" = ( /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/shipboard/port_point_defense) "roH" = ( /obj/effect/step_trigger/ares_alert/terminals, @@ -64323,9 +51427,7 @@ /obj/structure/pipes/standard/simple/hidden/supply/no_boom{ dir = 4 }, -/turf/open/floor/almayer/no_build{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/no_build/test_floor4, /area/almayer/command/airoom) "roU" = ( /obj/structure/disposalpipe/segment{ @@ -64334,56 +51436,34 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/grunt_rnr) -"rpd" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/port_hallway) -"rph" = ( -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 8 - }, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, -/area/almayer/hallways/stern_hallway) "rpp" = ( /obj/effect/landmark/start/executive, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/bridgebunks) +"rpG" = ( +/obj/structure/machinery/door/airlock/almayer/maint{ + dir = 1 + }, +/turf/open/floor/almayer/test_floor4, +/area/almayer/maint/hull/upper/u_m_s) "rpK" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/command/cichallway) -"rpW" = ( -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12 - }, -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12; - pixel_y = 12 - }, -/turf/open/floor/almayer{ - icon_state = "plate" +"rpV" = ( +/obj/structure/machinery/light{ + dir = 8 }, -/area/almayer/hull/lower_hull/l_f_p) +/turf/open/floor/almayer/silver/west, +/area/almayer/hallways/upper/midship_hallway) "rqb" = ( /obj/structure/sign/safety/distribution_pipes{ pixel_x = 32 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/east, /area/almayer/command/cichallway) "rqj" = ( /obj/structure/sign/safety/maint{ @@ -64392,15 +51472,38 @@ }, /turf/open/floor/almayer, /area/almayer/command/lifeboat) -"rqw" = ( -/obj/structure/machinery/alarm/almayer{ - dir = 1 +"rqv" = ( +/obj/structure/sign/poster/safety, +/turf/closed/wall/almayer, +/area/almayer/maint/lower/s_bow) +"rqz" = ( +/obj/structure/sign/safety/autoopenclose{ + pixel_y = 32 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "green" +/obj/structure/sign/safety/water{ + pixel_x = 15; + pixel_y = 32 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_a_p) +"rqD" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/prop/invuln/overhead_pipe{ + dir = 4; + pixel_y = 13 + }, +/obj/structure/prop/invuln/overhead_pipe{ + dir = 4; + pixel_x = 12; + pixel_y = 13 + }, +/obj/structure/prop/invuln/overhead_pipe{ + dir = 4; + pixel_x = -14; + pixel_y = 13 }, -/area/almayer/hallways/port_hallway) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/upper/mess) "rqE" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/supply, @@ -64408,41 +51511,35 @@ icon_state = "E"; pixel_x = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/delta) -"rqH" = ( -/obj/structure/surface/table/woodentable/fancy, -/obj/structure/transmitter/rotary{ - name = "Commanding Officer's Office"; - phone_category = "Offices"; - phone_id = "Commanding Officer's Office"; - pixel_x = 16; - pixel_y = 8 +"rqQ" = ( +/obj/structure/machinery/door/poddoor/railing{ + id = "vehicle_elevator_railing_aux" }, -/turf/open/floor/carpet, -/area/almayer/living/commandbunks) -"rra" = ( -/obj/structure/machinery/door/poddoor/almayer/locked{ - dir = 8; - id = "Perma 2L"; - name = "\improper cell shutter" +/obj/structure/machinery/light, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/vehiclehangar) +"rqS" = ( +/obj/structure/surface/table/almayer, +/obj/item/folder/red{ + pixel_x = -4 }, -/obj/structure/machinery/door/airlock/almayer/security/glass/reinforced{ - name = "\improper Isolation Cell" +/obj/item/folder/blue{ + pixel_x = 4 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +/obj/structure/machinery/light{ + dir = 1 }, -/area/almayer/shipboard/brig/perma) -"rri" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 +/turf/open/floor/almayer/cargo, +/area/almayer/shipboard/brig/evidence_storage) +"rrh" = ( +/obj/structure/machinery/door/poddoor/shutters/almayer{ + id = "Under Construction Shutters"; + name = "\improper Construction Site" }, -/obj/structure/window/framed/almayer, -/turf/open/floor/plating, -/area/almayer/living/offices/flight) +/turf/open/floor/almayer/test_floor4, +/area/almayer/maint/lower/constr) "rrq" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -64450,18 +51547,23 @@ /obj/structure/machinery/status_display{ pixel_y = 30 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/almayer/red/north, /area/almayer/squads/alpha) +"rrz" = ( +/obj/structure/sign/safety/four{ + pixel_x = -17 + }, +/obj/structure/machinery/door/window/brigdoor/southright{ + id = "Cell 4"; + name = "Cell 4" + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/cells) "rrB" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/comdoor/reinforced{ name = "\improper Cryogenics Bay" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/living/bridgebunks) "rrK" = ( /obj/structure/bed/chair{ @@ -64488,35 +51590,23 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/offices) -"rrV" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 +"rrU" = ( +/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ + pixel_y = 25 }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/port_hallway) -"rsx" = ( -/obj/structure/largecrate/random/barrel/red, -/obj/structure/sign/safety/high_voltage{ - pixel_x = 32; - pixel_y = 7 - }, -/obj/structure/sign/safety/fire_haz{ - pixel_x = 32; - pixel_y = -8 - }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/hull/lower_hull/l_f_s) +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_midship_hallway) "rsK" = ( /obj/structure/sign/safety/hvac_old, /turf/closed/wall/almayer, /area/almayer/squads/req) +"rsL" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer/test_floor4, +/area/almayer/hallways/lower/port_aft_hallway) "rsM" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -64530,24 +51620,44 @@ /obj/structure/pipes/standard/manifold/hidden/supply, /turf/open/floor/almayer, /area/almayer/command/computerlab) -"rsW" = ( -/obj/structure/pipes/vents/pump, -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 2 +"rsP" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" +/obj/structure/sign/safety/autoopenclose{ + pixel_x = 8; + pixel_y = -32 }, -/area/almayer/engineering/upper_engineering/port) -"rsY" = ( -/obj/structure/machinery/power/apc/almayer{ - dir = 1 +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_f_s) +"rsS" = ( +/obj/structure/machinery/door_control{ + id = "panicroomback"; + name = "\improper Safe Room"; + pixel_x = -25; + req_one_access_txt = "3" + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_f_s) +"rsV" = ( +/obj/structure/machinery/light, +/turf/open/floor/plating, +/area/almayer/maint/lower/constr) +"rtc" = ( +/obj/structure/surface/table/almayer, +/obj/item/storage/photo_album{ + pixel_x = -4; + pixel_y = 5 + }, +/obj/item/folder/black{ + pixel_x = 7; + pixel_y = -3 }, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/item/device/camera_film{ + pixel_x = -5 }, -/area/almayer/hull/upper_hull/u_a_s) +/turf/open/floor/almayer/plate, +/area/almayer/command/combat_correspondent) "rtd" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -64557,12 +51667,6 @@ "rth" = ( /turf/open/floor/almayer, /area/almayer/squads/alpha_bravo_shared) -"rtj" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/squads/req) "rtA" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/device/flashlight/pen{ @@ -64595,9 +51699,7 @@ "rub" = ( /obj/structure/surface/table/almayer, /obj/effect/landmark/map_item, -/turf/open/floor/almayer{ - icon_state = "silver" - }, +/turf/open/floor/almayer/silver, /area/almayer/command/computerlab) "ruc" = ( /obj/structure/machinery/camera/autoname/almayer/containment{ @@ -64606,9 +51708,7 @@ /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor/almayer/research/containment/floor2{ - dir = 8 - }, +/turf/open/floor/almayer/research/containment/floor2/west, /area/almayer/medical/containment/cell) "rui" = ( /obj/structure/disposalpipe/junction{ @@ -64619,62 +51719,83 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/grunt_rnr) +"rur" = ( +/obj/structure/machinery/light{ + dir = 8 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "S"; + pixel_y = -1 + }, +/turf/open/floor/almayer/dark_sterile, +/area/almayer/living/port_emb) "rux" = ( /obj/structure/surface/table/almayer, /obj/item/paper_bin/uscm, /obj/item/tool/pen, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/west, /area/almayer/hallways/hangar) "ruz" = ( /obj/structure/reagent_dispensers/watertank, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/hallways/hangar) -"rvo" = ( -/obj/structure/machinery/power/apc/almayer{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "orangecorner" - }, -/area/almayer/shipboard/brig/evidence_storage) +"ruL" = ( +/obj/structure/window/framed/almayer/hull/hijack_bustable, +/turf/open/floor/plating, +/area/almayer/engineering/lower/workshop/hangar) "rvA" = ( /turf/open/floor/almayer, /area/almayer/living/numbertwobunks) +"rvI" = ( +/obj/structure/machinery/camera/autoname/almayer{ + dir = 8; + name = "ship-grade camera" + }, +/obj/structure/largecrate/random, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/s_bow) "rvT" = ( /obj/structure/pipes/standard/manifold/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "emerald" - }, +/turf/open/floor/almayer/emerald, /area/almayer/squads/charlie) -"rwb" = ( -/obj/structure/largecrate/random/barrel/white, -/turf/open/floor/almayer{ - icon_state = "plate" +"rwe" = ( +/obj/structure/machinery/light/small{ + dir = 4 + }, +/obj/structure/sign/safety/bulkhead_door{ + pixel_x = -16 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/p_bow) +"rwj" = ( +/turf/open/floor/almayer/orange/east, +/area/almayer/hallways/lower/starboard_midship_hallway) +"rwq" = ( +/obj/structure/sign/safety/cryo{ + pixel_x = 7; + pixel_y = -26 }, -/area/almayer/hull/upper_hull/u_a_s) +/obj/structure/machinery/disposal, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/almayer, +/area/almayer/command/corporateliaison) "rwv" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/bed/chair/comfy/bravo, -/turf/open/floor/almayer{ - icon_state = "orangefull" - }, +/turf/open/floor/almayer/orangefull, /area/almayer/living/briefing) -"rwS" = ( -/obj/structure/machinery/light/small, -/obj/structure/largecrate/random/case/double, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_s) -"rwT" = ( -/obj/structure/closet/secure_closet/guncabinet/red/armory_shotgun, -/turf/open/floor/almayer{ - icon_state = "redfull" +"rwB" = ( +/obj/structure/machinery/alarm/almayer{ + dir = 1 }, -/area/almayer/engineering/upper_engineering) +/turf/open/floor/almayer, +/area/almayer/engineering/lower) "rwY" = ( /obj/structure/window/framed/almayer, /obj/structure/machinery/door/poddoor/shutters/almayer{ @@ -64686,108 +51807,124 @@ }, /turf/open/floor/plating, /area/almayer/living/pilotbunks) -"rxk" = ( -/obj/structure/sign/safety/hvac_old{ - pixel_x = 8; - pixel_y = 32 - }, -/obj/structure/sign/safety/storage{ - pixel_x = 8; - pixel_y = -32 +"rwZ" = ( +/obj/structure/window/framed/almayer/hull, +/turf/open/floor/plating, +/area/almayer/maint/hull/upper/u_f_p) +"rxe" = ( +/obj/structure/surface/rack, +/obj/effect/spawner/random/toolbox, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_m_p) +"rxl" = ( +/obj/effect/step_trigger/clone_cleaner, +/obj/structure/machinery/disposal/delivery{ + density = 0; + desc = "A pneumatic delivery unit."; + icon_state = "delivery_engi"; + name = "Security Vault"; + pixel_y = 28; + pixel_x = -24 }, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/structure/disposalpipe/trunk{ + dir = 1 }, -/area/almayer/hull/lower_hull/l_f_s) -"rxG" = ( -/obj/structure/sign/safety/medical{ - pixel_x = 8; - pixel_y = -32 +/obj/structure/machinery/door_control{ + id = "ARES StairsUpper"; + name = "ARES Core Access"; + pixel_x = -32; + pixel_y = 40; + req_one_access_txt = "90;91;92" }, -/turf/open/floor/almayer{ - icon_state = "green" +/turf/open/floor/almayer/aicore/no_build, +/area/almayer/command/airoom) +"rxq" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" }, -/area/almayer/hallways/aft_hallway) +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_m_p) "rxK" = ( /obj/structure/pipes/standard/manifold/hidden/supply, /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/navigation) -"rxO" = ( -/obj/structure/machinery/cm_vending/clothing/intelligence_officer, -/turf/open/floor/almayer{ - icon_state = "silverfull" +"rxQ" = ( +/obj/structure/pipes/standard/manifold/hidden/supply, +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/area/almayer/command/computerlab) -"rxV" = ( -/obj/structure/barricade/handrail, -/obj/structure/largecrate/supply/generator, -/turf/open/floor/almayer, -/area/almayer/engineering/upper_engineering/port) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/upper/fore_hallway) +"ryn" = ( +/turf/closed/wall/almayer/outer, +/area/almayer/command/securestorage) "ryt" = ( /obj/structure/pipes/standard/manifold/visible, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/medical/lower_medical_medbay) "ryG" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/lifeboat_pumps/north1) -"rzf" = ( -/obj/effect/landmark/late_join/working_joe, -/obj/effect/landmark/start/working_joe, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/command/airoom) -"rzj" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/structure/machinery/door/firedoor/border_only/almayer{ +"ryJ" = ( +/obj/structure/machinery/door/airlock/almayer/maint{ dir = 1 }, -/obj/effect/decal/warning_stripes{ - icon_state = "NW-out" - }, -/obj/structure/machinery/door/airlock/multi_tile/almayer/secdoor/glass/reinforced{ - access_modified = 1; - name = "\improper Brig"; - req_access = null; - req_one_access_txt = "1;3" +/turf/open/floor/almayer/test_floor4, +/area/almayer/maint/upper/u_a_p) +"ryR" = ( +/obj/structure/machinery/cm_vending/clothing/staff_officer_armory, +/turf/open/floor/almayer/redfull, +/area/almayer/command/cic) +"ryY" = ( +/obj/effect/step_trigger/clone_cleaner, +/obj/structure/disposalpipe/down/almayer{ + dir = 1; + id = "almayerlink" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/upper/port) +"rzk" = ( +/obj/item/tool/screwdriver, +/obj/structure/platform_decoration{ + dir = 8 }, -/area/almayer/shipboard/brig/main_office) +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_a_p) +"rzy" = ( +/obj/structure/disposalpipe/junction, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_aft_hallway) "rzN" = ( -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/medical/containment) -"rzP" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "SE-out" - }, -/obj/effect/decal/warning_stripes{ - icon_state = "NE-out"; - pixel_y = 1 - }, -/obj/structure/machinery/door/airlock/almayer/maint, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hull/upper_hull/u_a_s) "rAb" = ( -/turf/open/floor/almayer{ - icon_state = "bluecorner" - }, +/turf/open/floor/almayer/bluecorner, /area/almayer/living/briefing) -"rAv" = ( -/obj/structure/machinery/shower{ - dir = 8 +"rAo" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/machinery/light/small{ + dir = 4 }, -/obj/structure/window/reinforced, /turf/open/floor/plating/plating_catwalk, -/area/almayer/shipboard/brig/cells) +/area/almayer/maint/hull/lower/l_m_s) +"rAw" = ( +/obj/structure/stairs/perspective{ + icon_state = "p_stair_full" + }, +/obj/structure/sign/safety/hazard{ + pixel_x = 32; + pixel_y = 8 + }, +/obj/structure/sign/safety/restrictedarea{ + pixel_x = 32; + pixel_y = -7 + }, +/turf/open/floor/almayer, +/area/almayer/maint/hull/lower/l_f_s) "rAx" = ( /obj/structure/disposalpipe/junction{ dir = 4 @@ -64795,9 +51932,7 @@ /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/almayer/living/grunt_rnr) "rAC" = ( /obj/docking_port/stationary/emergency_response/external/port5, @@ -64811,33 +51946,28 @@ /obj/structure/ob_ammo/ob_fuel, /obj/structure/ob_ammo/ob_fuel, /obj/structure/ob_ammo/ob_fuel, -/turf/open/floor/almayer{ - icon_state = "red" - }, +/turf/open/floor/almayer/red, /area/almayer/shipboard/weapon_room) "rAN" = ( /obj/structure/machinery/cryopod{ pixel_y = 6 }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/squads/alpha) "rAP" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/northeast, /area/almayer/engineering/upper_engineering/starboard) +"rAS" = ( +/obj/structure/largecrate/random/case/double, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/upper/u_a_s) "rBa" = ( /obj/structure/machinery/cm_vending/clothing/synth, /obj/structure/prop/invuln/overhead_pipe{ pixel_x = 12 }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/living/synthcloset) "rBb" = ( /obj/effect/decal/warning_stripes{ @@ -64853,16 +51983,10 @@ /obj/structure/machinery/processor, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/grunt_rnr) -"rBk" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/pipes/vents/pump{ - dir = 4 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" - }, -/area/almayer/hallways/port_umbilical) +"rBv" = ( +/obj/structure/closet/toolcloset, +/turf/open/floor/almayer/cargo, +/area/almayer/engineering/lower/engine_core) "rBx" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/tool/stamp/ro{ @@ -64870,58 +51994,33 @@ pixel_x = -7; pixel_y = 11 }, -/turf/open/floor/almayer{ - icon_state = "bluefull" - }, +/turf/open/floor/almayer/bluefull, /area/almayer/command/cichallway) -"rBH" = ( -/obj/structure/machinery/constructable_frame{ - icon_state = "box_2" - }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, -/area/almayer/lifeboat_pumps/south1) -"rBV" = ( -/obj/structure/bed/chair/bolted, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "red" - }, -/area/almayer/shipboard/brig/main_office) -"rCi" = ( -/obj/structure/machinery/camera/autoname/almayer/containment/ares{ - dir = 8 - }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, -/area/almayer/command/airoom) -"rCp" = ( -/obj/structure/largecrate/random/case/small, -/obj/structure/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_p) -"rCw" = ( -/obj/effect/step_trigger/teleporter_vector{ - name = "Almayer_AresDown"; - vector_x = 97; - vector_y = -65 - }, -/obj/structure/platform{ - dir = 8 +"rBD" = ( +/obj/structure/machinery/door/airlock/almayer/maint, +/turf/open/floor/almayer/test_floor4, +/area/almayer/maint/upper/u_m_p) +"rBY" = ( +/obj/structure/machinery/shower{ + pixel_y = 16 }, -/obj/structure/stairs{ - dir = 1 +/obj/item/tool/soap, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/upper/u_a_s) +"rCh" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_m_p) +"rCl" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 }, -/area/almayer/command/airoom) +/turf/open/floor/almayer/red/northwest, +/area/almayer/hallways/upper/port) "rCD" = ( /obj/structure/machinery/light/small{ dir = 4 @@ -64929,38 +52028,20 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 10 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/east, /area/almayer/engineering/upper_engineering/port) "rCK" = ( /obj/structure/machinery/cryopod/right, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/squads/req) -"rCL" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "red" - }, -/area/almayer/shipboard/brig/processing) "rCO" = ( /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/briefing) -"rCU" = ( -/obj/structure/machinery/disposal, -/obj/structure/disposalpipe/trunk{ - dir = 4 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "silver" - }, -/area/almayer/shipboard/brig/cic_hallway) +"rCZ" = ( +/obj/docking_port/stationary/escape_pod/east, +/turf/open/floor/plating, +/area/almayer/maint/upper/u_m_s) "rDb" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 6 @@ -64988,32 +52069,22 @@ pixel_x = 1; pixel_y = 5 }, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "green" - }, +/turf/open/floor/almayer/green/southeast, /area/almayer/squads/req) -"rDi" = ( -/obj/structure/sign/safety/water{ - pixel_x = -17 - }, +"rDf" = ( +/obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_a_p) +/area/almayer/hallways/lower/starboard_umbilical) "rDr" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor/almayer{ - icon_state = "sterile_green" - }, +/turf/open/floor/almayer/sterile_green, /area/almayer/medical/medical_science) "rDt" = ( /obj/structure/disposalpipe/junction{ dir = 1 }, /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/almayer/green/north, /area/almayer/living/grunt_rnr) "rDv" = ( /obj/effect/decal/warning_stripes{ @@ -65023,16 +52094,56 @@ icon_state = "N"; pixel_y = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/offices) +"rDy" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 1 + }, +/turf/open/floor/almayer/plate, +/area/almayer/engineering/lower/workshop) +"rDH" = ( +/obj/structure/machinery/light, +/turf/open/floor/almayer, +/area/almayer/maint/hull/upper/u_f_p) +"rDO" = ( +/obj/structure/disposalpipe/junction{ + dir = 4 + }, +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 1 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/port_fore_hallway) +"rDQ" = ( +/turf/open/floor/almayer/plate, +/area/almayer/shipboard/brig/cryo) +"rDR" = ( +/obj/structure/machinery/vending/coffee, +/obj/item/toy/bikehorn/rubberducky{ + desc = "You feel as though this rubber duck has been here for a long time. It's Mr. Quackers! He loves you!"; + name = "Quackers"; + pixel_x = 5; + pixel_y = 17 + }, +/turf/open/floor/plating, +/area/almayer/maint/lower/constr) "rDV" = ( /obj/structure/bed/chair/comfy{ dir = 8 }, /turf/open/floor/plating/plating_catwalk, /area/almayer/medical/medical_science) +"rEd" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/machinery/door/poddoor/shutters/almayer{ + id = "laddersouthwest"; + name = "\improper South West Ladders Shutters" + }, +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/effect/step_trigger/clone_cleaner, +/turf/open/floor/almayer/test_floor4, +/area/almayer/hallways/lower/port_fore_hallway) "rEf" = ( /obj/structure/disposalpipe/segment{ dir = 2; @@ -65044,50 +52155,21 @@ /turf/open/floor/almayer, /area/almayer/living/briefing) "rEm" = ( -/obj/structure/surface/table/woodentable/fancy, -/obj/item/ashtray/bronze{ - pixel_x = 2; - pixel_y = 9 - }, -/obj/structure/machinery/door_control/cl/office/window{ - pixel_x = 6; - pixel_y = 4 - }, -/obj/structure/machinery/door_control/cl/office/door{ - pixel_x = 6; - pixel_y = -3 - }, -/obj/item/spacecash/c500{ - pixel_x = -10; - pixel_y = 8 - }, -/turf/open/floor/carpet, -/area/almayer/command/corporateliason) -"rEn" = ( -/obj/structure/surface/table/almayer, -/obj/item/storage/firstaid/adv{ - pixel_x = 6; - pixel_y = 6 - }, -/obj/item/storage/firstaid/regular, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 8 }, -/area/almayer/hull/upper_hull/u_f_p) +/turf/open/floor/almayer, +/area/almayer/engineering/lower) "rEr" = ( /obj/structure/prop/almayer/name_stencil{ icon_state = "almayer3" }, -/turf/open/floor/almayer_hull{ - icon_state = "outerhull_dir" - }, +/turf/open/floor/almayer_hull/outerhull_dir, /area/space) -"rEu" = ( -/obj/structure/largecrate/random/case/double, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/vehiclehangar) +"rEt" = ( +/obj/structure/largecrate/random/secure, +/turf/open/floor/almayer/cargo, +/area/almayer/maint/hull/lower/l_f_s) "rEv" = ( /obj/effect/decal/warning_stripes{ icon_state = "E"; @@ -65097,32 +52179,35 @@ icon_state = "N"; pixel_y = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/delta) -"rEJ" = ( -/obj/structure/machinery/light, -/obj/structure/flora/pottedplant{ - pixel_x = -1; - pixel_y = 3 +"rEK" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/turf/open/floor/wood/ship, -/area/almayer/living/commandbunks) -"rEL" = ( -/obj/structure/machinery/cm_vending/gear/intelligence_officer, -/turf/open/floor/almayer{ - icon_state = "silverfull" +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12 }, -/area/almayer/command/computerlab) +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12; + pixel_y = 12 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_f_p) "rEY" = ( -/obj/structure/surface/table/almayer, -/obj/item/toy/deck, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "silver" +/obj/structure/machinery/disposal, +/obj/structure/disposalpipe/trunk{ + dir = 4 }, +/turf/open/floor/almayer/silver/west, /area/almayer/shipboard/brig/cic_hallway) +"rFg" = ( +/obj/structure/machinery/door/airlock/almayer/generic{ + dir = 1; + name = "Bathroom" + }, +/turf/open/floor/almayer/test_floor4, +/area/almayer/shipboard/brig/chief_mp_office) "rFs" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/folder/black, @@ -65130,34 +52215,11 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/bridgebunks) -"rFu" = ( -/obj/structure/platform_decoration{ - dir = 8 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/engineering/engine_core) "rFy" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orangecorner" - }, +/turf/open/floor/almayer/orangecorner/north, /area/almayer/engineering/upper_engineering/starboard) -"rFB" = ( -/obj/structure/machinery/suit_storage_unit/compression_suit/uscm, -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/starboard_umbilical) "rFH" = ( /obj/structure/machinery/body_scanconsole, /obj/structure/disposalpipe/segment{ @@ -65166,61 +52228,21 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/southwest, /area/almayer/medical/lower_medical_medbay) -"rFV" = ( -/obj/structure/surface/table/almayer, -/obj/effect/decal/cleanable/dirt, -/obj/item/device/flashlight/lamp{ - layer = 3.3; - pixel_x = 15 - }, -/obj/item/paper_bin/uscm{ - pixel_x = -7; - pixel_y = 6 - }, -/obj/item/tool/pen{ - pixel_x = -10; - pixel_y = 6 - }, -/obj/item/tool/pen{ - pixel_x = -10; - pixel_y = -2 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/living/briefing) -"rFY" = ( -/turf/open/floor/almayer{ - dir = 5; - icon_state = "orange" - }, -/area/almayer/hallways/stern_hallway) -"rGg" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 6 - }, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "green" - }, -/area/almayer/hallways/port_hallway) "rGj" = ( -/turf/open/floor/almayer{ - icon_state = "red" - }, +/turf/open/floor/almayer/red, /area/almayer/squads/alpha) -"rGl" = ( -/obj/structure/janitorialcart, -/obj/item/tool/mop, -/turf/open/floor/almayer{ - icon_state = "plate" +"rGr" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out" }, -/area/almayer/hull/upper_hull/u_m_p) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/s_bow) +"rGz" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_m_s) "rGE" = ( /obj/structure/machinery/door/airlock/almayer/command{ name = "\improper Conference Room" @@ -65241,19 +52263,28 @@ id = "CIC Lockdown"; name = "\improper Combat Information Center Blast Door" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/command/cichallway) +"rGL" = ( +/obj/structure/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/almayer/orange/east, +/area/almayer/maint/upper/mess) +"rGU" = ( +/obj/structure/machinery/computer/skills{ + req_one_access_txt = "200" + }, +/obj/structure/surface/table/woodentable/fancy, +/turf/open/floor/carpet, +/area/almayer/command/corporateliaison) "rHc" = ( /turf/open/floor/carpet, /area/almayer/command/cichallway) "rHf" = ( /obj/structure/machinery/cm_vending/sorted/cargo_guns/squad_prep, /obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/alpha_bravo_shared) "rHo" = ( /obj/structure/machinery/door/firedoor/border_only/almayer{ @@ -65270,14 +52301,19 @@ id_tag = "tc01"; name = "\improper Treatment Center" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/medical/lower_medical_medbay) -"rHs" = ( -/obj/item/storage/firstaid, +"rHq" = ( +/obj/structure/sign/safety/storage{ + pixel_x = 8; + pixel_y = -32 + }, /turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_a_p) +/area/almayer/maint/hull/lower/l_m_s) +"rHr" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/almayer/cargo, +/area/almayer/hallways/lower/starboard_aft_hallway) "rHw" = ( /obj/structure/machinery/cm_vending/sorted/medical/wall_med{ pixel_y = 25 @@ -65285,10 +52321,19 @@ /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) +"rHB" = ( +/obj/item/ammo_box/magazine/misc/mre/empty{ + pixel_x = 8; + pixel_y = 8 + }, +/obj/item/reagent_container/food/drinks/cans/aspen{ + pixel_x = 11; + pixel_y = -3 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/p_stern) "rHN" = ( /obj/structure/pipes/vents/pump/on, /turf/open/floor/plating/plating_catwalk, @@ -65317,15 +52362,14 @@ pixel_y = -23; req_one_access_txt = "2;3;12;19" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/medical/lower_medical_lobby) +"rIw" = ( +/obj/structure/machinery/light/small, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/lower/s_bow) "rID" = ( -/turf/open/floor/almayer{ - dir = 6; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/southeast, /area/almayer/engineering/upper_engineering/port) "rIH" = ( /obj/structure/disposalpipe/segment{ @@ -65334,46 +52378,39 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/req) -"rII" = ( -/obj/structure/machinery/door/airlock/multi_tile/almayer/generic, -/obj/structure/machinery/door/poddoor/shutters/almayer{ - dir = 2; - id = "OuterShutter"; - name = "\improper Saferoom Shutters" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hull/lower_hull/l_f_s) "rIO" = ( /obj/structure/machinery/vending/snack, /obj/item/clothing/head/cmcap/boonie/tan{ pixel_x = -2; pixel_y = 10 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/briefing) +"rIP" = ( +/obj/structure/machinery/light{ + dir = 8 + }, +/turf/open/floor/almayer/orange/west, +/area/almayer/hallways/lower/starboard_midship_hallway) +"rIV" = ( +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12 + }, +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12; + pixel_y = 12 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_a_s) "rIW" = ( /obj/structure/machinery/cm_vending/gear/synth, /obj/effect/decal/cleanable/cobweb2, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/living/synthcloset) -"rJb" = ( -/obj/structure/sign/safety/hvac_old{ - pixel_x = 8; - pixel_y = 32 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_s) -"rJg" = ( -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/command/combat_correspondent) +"rJf" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer, +/turf/open/floor/almayer/test_floor4, +/area/almayer/maint/hull/lower/l_a_p) "rJh" = ( /obj/item/storage/backpack/marine/satchel{ desc = "It's the heavy-duty black polymer kind. Time to take out the trash!"; @@ -65391,25 +52428,24 @@ pixel_x = 5; pixel_y = -2 }, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/southwest, /area/almayer/engineering/upper_engineering/port) -"rJu" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" +"rJj" = ( +/obj/structure/machinery/camera/autoname/almayer{ + dir = 8; + name = "ship-grade camera" }, +/turf/open/floor/almayer/red/east, +/area/almayer/shipboard/brig/processing) +"rJu" = ( +/turf/open/floor/almayer/orange/north, /area/almayer/living/briefing) "rJx" = ( /obj/structure/machinery/door/firedoor/border_only/almayer, /obj/structure/machinery/door/airlock/multi_tile/almayer/marine/shared/charlie_delta/blue{ dir = 2 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/squads/charlie_delta_shared) "rJD" = ( /obj/structure/prop/invuln/overhead_pipe{ @@ -65423,9 +52459,7 @@ /turf/open/floor/almayer, /area/almayer/living/briefing) "rKd" = ( -/turf/open/floor/almayer/uscm/directional{ - dir = 5 - }, +/turf/open/floor/almayer/uscm/directional/northeast, /area/almayer/command/cic) "rKn" = ( /obj/structure/machinery/door_control{ @@ -65436,26 +52470,15 @@ req_one_access_txt = "201"; use_power = 0 }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/almayer/powered/agent) -"rKs" = ( -/obj/structure/machinery/door/airlock/almayer/maint{ - req_one_access = null; - req_one_access_txt = "2;30;34" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hull/upper_hull/u_m_s) -"rKy" = ( -/obj/structure/machinery/firealarm{ - dir = 1; - pixel_y = -28 +"rKt" = ( +/obj/structure/sign/safety/rewire{ + pixel_x = 32 }, -/turf/open/floor/almayer, -/area/almayer/hallways/port_hallway) +/obj/structure/machinery/power/apc/almayer, +/turf/open/floor/almayer/orange/east, +/area/almayer/hallways/lower/port_aft_hallway) "rKA" = ( /obj/structure/bed{ can_buckle = 0 @@ -65463,9 +52486,7 @@ /obj/item/bedsheet/brown{ layer = 3.1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/auxiliary_officer_office) "rKO" = ( /obj/structure/disposalpipe/segment{ @@ -65478,152 +52499,243 @@ /area/almayer/living/grunt_rnr) "rKQ" = ( /obj/structure/pipes/vents/scrubber, -/turf/open/floor/almayer{ - icon_state = "silver" - }, +/turf/open/floor/almayer/silver, /area/almayer/shipboard/brig/cic_hallway) "rLk" = ( -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/engineering/upper_engineering/starboard) +"rLp" = ( +/obj/structure/machinery/chem_dispenser/soda{ + pixel_y = 20 + }, +/turf/open/floor/almayer, +/area/almayer/command/corporateliaison) "rLv" = ( /turf/closed/wall/almayer/research/containment/wall/purple{ dir = 4; icon_state = "containment_window_h" }, /area/almayer/medical/containment/cell/cl) -"rLU" = ( -/turf/open/floor/almayer/research/containment/floor2{ +"rLH" = ( +/obj/structure/surface/table/almayer, +/obj/item/device/binoculars{ + pixel_x = 4; + pixel_y = 5 + }, +/obj/item/device/binoculars, +/obj/structure/machinery/camera/autoname/almayer{ + dir = 4; + name = "ship-grade camera" + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_f_p) +"rLK" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/sign/safety/hvac_old{ + pixel_x = -17 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/lower/cryo_cells) +"rLP" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 9 + }, +/obj/structure/bed/chair/comfy/delta{ dir = 8 }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer/plate, +/area/almayer/living/briefing) +"rLU" = ( +/turf/open/floor/almayer/research/containment/floor2/west, /area/almayer/medical/containment/cell/cl) -"rNF" = ( -/obj/structure/machinery/light{ - unacidable = 1; - unslashable = 1 +"rMh" = ( +/obj/structure/machinery/light, +/turf/open/floor/almayer/red/southwest, +/area/almayer/lifeboat_pumps/north1) +"rMj" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/almayer/plate, +/area/almayer/hallways/lower/vehiclehangar) +"rMO" = ( +/obj/structure/machinery/door/airlock/almayer/maint{ + dir = 1 }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" +/turf/open/floor/almayer/test_floor4, +/area/almayer/maint/lower/s_bow) +"rMT" = ( +/obj/structure/bed/chair/office/dark{ + dir = 8 }, -/area/almayer/command/airoom) +/turf/open/floor/almayer, +/area/almayer/command/corporateliaison) +"rNa" = ( +/obj/structure/surface/table/woodentable/fancy, +/obj/item/paper_bin/uscm{ + pixel_x = -17; + pixel_y = 7 + }, +/obj/item/tool/pen/clicky{ + pixel_x = -13; + pixel_y = -1 + }, +/obj/item/tool/pen/clicky{ + pixel_x = -13; + pixel_y = 5 + }, +/obj/structure/machinery/door_control{ + id = "CO-Office"; + name = "Door Control"; + normaldoorcontrol = 1; + pixel_y = 7; + req_access_txt = "31" + }, +/obj/item/ashtray/bronze{ + pixel_x = 12; + pixel_y = 1 + }, +/turf/open/floor/carpet, +/area/almayer/living/commandbunks) +"rNb" = ( +/obj/structure/pipes/vents/pump, +/obj/structure/mirror{ + pixel_y = 32 + }, +/obj/structure/sink{ + pixel_y = 24 + }, +/obj/structure/machinery/door_control{ + id = "Alpha_2"; + name = "Door Lock"; + normaldoorcontrol = 1; + pixel_x = 23; + specialfunctions = 4 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/turf/open/floor/almayer/dark_sterile, +/area/almayer/living/port_emb) +"rNK" = ( +/obj/structure/surface/table/almayer, +/turf/open/floor/almayer/orange, +/area/almayer/engineering/lower/workshop/hangar) "rOc" = ( /obj/effect/decal/warning_stripes{ icon_state = "E"; pixel_x = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) -"rOj" = ( -/obj/structure/machinery/light{ - dir = 4 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "blue" - }, -/area/almayer/hallways/port_hallway) "rOs" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/clipboard, /obj/item/device/binoculars, /obj/item/storage/bible, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/bridgebunks) +"rOv" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer/silver, +/area/almayer/hallways/lower/repair_bay) +"rOz" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S"; + layer = 3.3 + }, +/turf/open/floor/almayer/aicore/no_build/ai_floor2, +/area/almayer/command/airoom) "rOC" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/command/cic) +"rOI" = ( +/obj/structure/pipes/vents/pump{ + dir = 8; + id_tag = "mining_outpost_pump" + }, +/turf/open/floor/almayer, +/area/almayer/engineering/lower/workshop/hangar) "rOJ" = ( /obj/structure/barricade/handrail, /obj/structure/disposalpipe/segment, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/gym) -"rOZ" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/closet/secure_closet/guncabinet, -/obj/item/weapon/gun/rifle/l42a{ - pixel_y = 6 - }, -/obj/item/weapon/gun/rifle/l42a, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_m_s) -"rPh" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/structure/machinery/vending/cigarette{ - density = 0; - pixel_y = 16 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "SW-out" +"rPq" = ( +/obj/structure/machinery/constructable_frame{ + icon_state = "box_2" }, -/turf/open/floor/almayer, -/area/almayer/shipboard/brig/cells) +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/p_stern) "rPt" = ( /turf/open/floor/wood/ship, /area/almayer/engineering/ce_room) -"rPC" = ( -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_f_s) "rPE" = ( /obj/structure/bed/chair{ dir = 8; pixel_y = 3 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/delta) +"rPF" = ( +/turf/open/floor/almayer/red, +/area/almayer/shipboard/brig/starboard_hallway) "rPO" = ( -/turf/open/floor/almayer{ - dir = 10; - icon_state = "blue" - }, +/turf/open/floor/almayer/blue/southwest, /area/almayer/squads/delta) -"rQj" = ( -/obj/structure/largecrate/random/barrel/yellow, -/turf/open/floor/almayer{ - icon_state = "plate" +"rPQ" = ( +/obj/structure/machinery/door/airlock/almayer/engineering{ + name = "\improper Engineering Hallway" + }, +/obj/structure/machinery/door/firedoor/border_only/almayer, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer/test_floor4, +/area/almayer/engineering/lower) +"rQc" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 1 + }, +/obj/structure/disposalpipe/junction{ + dir = 1 + }, +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/processing) +"rQs" = ( +/obj/structure/machinery/light/small{ + dir = 1 }, -/area/almayer/hull/lower_hull/l_a_p) +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_f_p) "rQt" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 1 }, -/obj/structure/disposalpipe/junction, +/obj/structure/disposalpipe/segment, /turf/open/floor/almayer, /area/almayer/shipboard/brig/cic_hallway) +"rQw" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 2 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "SE-out"; + pixel_x = 2 + }, +/turf/open/floor/almayer/plating/northeast, +/area/almayer/shipboard/panic) "rQy" = ( /turf/closed/wall/almayer/white/reinforced, /area/almayer/medical/hydroponics) "rQA" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "cargo_arrow" - }, +/turf/open/floor/almayer/cargo_arrow/west, /area/almayer/squads/delta) -"rQU" = ( -/obj/structure/largecrate/random/barrel/red, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_f_p) "rQV" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -65635,49 +52747,25 @@ icon_state = "N"; pixel_y = 2 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/charlie) "rQW" = ( /obj/item/tool/screwdriver, /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/almayer/red/northeast, /area/almayer/lifeboat_pumps/south1) -"rQY" = ( -/obj/structure/bed, -/obj/structure/machinery/flasher{ - id = "Cell 3"; - pixel_x = 24 - }, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "red" - }, -/area/almayer/shipboard/brig/cells) "rRq" = ( /turf/closed/wall/almayer, /area/almayer/lifeboat_pumps/south2) "rRz" = ( /obj/structure/machinery/light, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/almayer/red/southeast, /area/almayer/lifeboat_pumps/south1) -"rRQ" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" - }, -/area/almayer/shipboard/brig/main_office) +"rRT" = ( +/turf/open/floor/almayer/plate, +/area/almayer/hallways/upper/midship_hallway) "rRU" = ( /obj/structure/machinery/light{ dir = 8 @@ -65704,18 +52792,36 @@ pixel_x = 7; pixel_y = 11 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/briefing) "rSj" = ( /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "orangefull" - }, +/turf/open/floor/almayer/orangefull, /area/almayer/squads/alpha_bravo_shared) +"rSx" = ( +/obj/structure/surface/table/almayer, +/obj/item/stack/rods/plasteel{ + amount = 36 + }, +/obj/item/stack/catwalk{ + amount = 60; + pixel_x = 5; + pixel_y = 4 + }, +/turf/open/floor/plating, +/area/almayer/maint/lower/constr) +"rSA" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/machinery/door/poddoor/shutters/almayer{ + id = "laddersouthwest"; + name = "\improper South West Ladders Shutters" + }, +/obj/effect/step_trigger/clone_cleaner, +/turf/open/floor/almayer/test_floor4, +/area/almayer/hallways/lower/port_fore_hallway) "rSG" = ( /obj/structure/toilet{ pixel_y = 16 @@ -65731,128 +52837,118 @@ /turf/open/floor/plating/plating_catwalk, /area/almayer/living/port_emb) "rSH" = ( -/obj/structure/machinery/power/apc/almayer{ - dir = 8 - }, -/obj/structure/surface/rack, -/obj/effect/spawner/random/tool, -/obj/effect/spawner/random/powercell, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" +/obj/effect/decal/warning_stripes{ + icon_state = "SE-out"; + pixel_x = 1 }, -/area/almayer/shipboard/brig/lobby) -"rSK" = ( -/obj/structure/machinery/light/small, -/turf/open/floor/almayer{ - icon_state = "plate" +/turf/open/floor/almayer, +/area/almayer/lifeboat_pumps/south1) +"rSR" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/sign/safety/cryo{ + pixel_x = 36 }, -/area/almayer/hull/lower_hull/l_f_p) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/lower/cryo_cells) +"rSW" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer, +/turf/open/floor/almayer/test_floor4, +/area/almayer/hallways/upper/fore_hallway) "rTk" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 }, /turf/open/floor/almayer, /area/almayer/shipboard/brig/cic_hallway) -"rTt" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ +"rTA" = ( +/obj/structure/disposalpipe/junction{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "redcorner" - }, -/area/almayer/shipboard/brig/chief_mp_office) +/turf/open/floor/almayer/plate, +/area/almayer/hallways/lower/starboard_midship_hallway) "rTJ" = ( /obj/effect/decal/cleanable/blood/oil/streak, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/engineering/upper_engineering/port) -"rTV" = ( -/obj/structure/sign/safety/security{ - pixel_x = 32 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_s) "rTZ" = ( /obj/structure/sign/safety/maint{ pixel_x = -17 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/west, /area/almayer/engineering/upper_engineering/starboard) "rUh" = ( -/turf/open/floor/almayer{ - dir = 10; - icon_state = "emerald" - }, +/turf/open/floor/almayer/emerald/southwest, /area/almayer/squads/charlie) +"rUi" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/s_bow) "rUk" = ( /obj/structure/bed/chair/wood/normal{ dir = 1 }, /turf/open/floor/wood/ship, /area/almayer/shipboard/brig/cells) +"rUq" = ( +/obj/effect/landmark/start/nurse, +/obj/effect/landmark/late_join/nurse, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/living/offices) "rUy" = ( /obj/structure/bed/chair/office/dark{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "silver" - }, +/turf/open/floor/almayer/silver, /area/almayer/command/computerlab) -"rUB" = ( -/obj/structure/pipes/vents/pump, -/obj/item/tool/soap, -/obj/effect/decal/cleanable/blood, -/obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 +"rUN" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/disposalpipe/segment, +/turf/open/floor/almayer, +/area/almayer/hallways/upper/aft_hallway) +"rVc" = ( +/obj/structure/bed/chair{ + dir = 8; + pixel_y = 3 }, -/obj/structure/sink{ - pixel_y = 24 +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_f_p) +"rVt" = ( +/obj/structure/machinery/status_display{ + pixel_y = 30 }, -/obj/structure/mirror{ - pixel_y = 32 +/obj/structure/machinery/part_fabricator/dropship, +/turf/open/floor/almayer/plate, +/area/almayer/hallways/lower/repair_bay) +"rVC" = ( +/obj/structure/pipes/vents/pump/on, +/obj/structure/machinery/light{ + dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" +/turf/open/floor/almayer/plate, +/area/almayer/hallways/lower/starboard_aft_hallway) +"rVN" = ( +/turf/open/floor/almayer/red/west, +/area/almayer/shipboard/port_missiles) +"rWb" = ( +/obj/item/tool/minihoe{ + pixel_x = 4 }, -/area/almayer/shipboard/brig/cells) -"rUU" = ( -/obj/structure/machinery/door/airlock/almayer/maint{ - req_access = null; - req_one_access = null +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_a_s) +"rWn" = ( +/obj/structure/window/framed/almayer, +/obj/structure/machinery/door/firedoor/border_only/almayer{ + layer = 1.9 }, -/obj/structure/machinery/door/poddoor/shutters/almayer{ +/obj/structure/machinery/door/poddoor/shutters/almayer/open{ dir = 4; - id = "panicroomback"; - name = "\improper Safe Room Shutters" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hull/lower_hull/l_f_s) -"rVo" = ( -/obj/structure/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_a_s) -"rVN" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" + id = "CMP Office Shutters"; + name = "\improper Privacy Shutters" }, -/area/almayer/shipboard/port_missiles) +/turf/open/floor/plating, +/area/almayer/shipboard/brig/chief_mp_office) "rWs" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/supply{ @@ -65860,19 +52956,27 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/brig/cic_hallway) -"rWF" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "S" +"rWv" = ( +/obj/structure/machinery/status_display{ + pixel_y = 30 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_fore_hallway) +"rWy" = ( +/obj/structure/machinery/door/airlock/almayer/maint{ + dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 1 }, -/area/almayer/command/lifeboat) +/turf/open/floor/almayer/test_floor4, +/area/almayer/maint/upper/u_a_s) +"rWz" = ( +/turf/open/floor/plating, +/area/almayer/maint/upper/u_m_s) "rWL" = ( /obj/structure/barricade/metal, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/living/cryo_cells) "rWT" = ( /obj/structure/disposalpipe/segment, @@ -65883,9 +52987,7 @@ /area/almayer/living/briefing) "rXd" = ( /obj/structure/machinery/vending/security, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/shipboard/brig/general_equipment) "rXj" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -65900,26 +53002,54 @@ /obj/structure/barricade/plasteel/metal{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/living/cryo_cells) +"rXq" = ( +/obj/structure/machinery/door/airlock/almayer/maint, +/turf/open/floor/almayer/test_floor4, +/area/almayer/maint/upper/u_a_p) "rXv" = ( /obj/structure/machinery/door/airlock/almayer/maint, /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/living/gym) -"rXC" = ( -/obj/structure/disposalpipe/junction, -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 4 +"rXE" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out" + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 5 + }, +/obj/structure/sign/safety/ammunition{ + pixel_x = 15; + pixel_y = -32 + }, +/obj/structure/sign/safety/hazard{ + pixel_y = -32 + }, +/obj/structure/machinery/power/apc/almayer{ + dir = 8 }, /turf/open/floor/almayer, -/area/almayer/shipboard/brig/general_equipment) +/area/almayer/shipboard/brig/execution) +"rXF" = ( +/obj/structure/machinery/door/airlock/almayer/maint{ + dir = 1 + }, +/turf/open/floor/almayer/test_floor4, +/area/almayer/maint/hull/upper/u_m_p) +"rXH" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/stern) +"rXQ" = ( +/obj/structure/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/p_bow) "rXS" = ( /obj/structure/machinery/door/firedoor/border_only/almayer, /obj/structure/disposalpipe/segment{ @@ -65928,32 +53058,31 @@ /obj/structure/machinery/door/airlock/multi_tile/almayer/marine/delta{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/squads/delta) +"rXU" = ( +/obj/structure/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/almayer/cargo, +/area/almayer/maint/hull/lower/l_f_s) +"rYh" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/engineering/lower/workshop) "rYi" = ( /obj/structure/bed/chair, /obj/structure/machinery/power/apc/almayer{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/gym) -"rYj" = ( -/obj/effect/step_trigger/clone_cleaner, -/obj/structure/machinery/light{ - dir = 4 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_hallway) "rYp" = ( /obj/effect/landmark/start/marine/medic/delta, /obj/effect/landmark/late_join/delta, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/delta) "rYv" = ( /obj/structure/surface/table/almayer, @@ -65963,128 +53092,137 @@ /obj/structure/machinery/computer/station_alert{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/engineering/upper_engineering/starboard) +"rYI" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer/test_floor4, +/area/almayer/hallways/lower/starboard_fore_hallway) "rYJ" = ( /obj/structure/surface/table/almayer, /obj/item/device/taperecorder, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/offices/flight) -"rYZ" = ( +"rYU" = ( +/obj/structure/machinery/light/small, +/turf/open/floor/almayer/plate, +/area/almayer/maint/upper/u_a_s) +"rZt" = ( /obj/effect/decal/warning_stripes{ - icon_state = "NW-out"; - pixel_x = -1; - pixel_y = 2 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/vehiclehangar) -"rZz" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 5 + icon_state = "W" }, -/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ - pixel_y = -30 +/obj/structure/machinery/door_control{ + id = "hangarentrancesouth"; + name = "South Hangar Shutters"; + pixel_y = 30; + req_one_access_txt = "2;3;12;19"; + throw_range = 15 }, -/turf/open/floor/almayer{ - icon_state = "green" +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 }, -/area/almayer/hallways/starboard_hallway) +/turf/open/floor/almayer/plate, +/area/almayer/hallways/lower/port_fore_hallway) "rZB" = ( /obj/structure/pipes/standard/simple/visible{ dir = 9 }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/medical/lower_medical_medbay) -"rZF" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/structure/disposalpipe/junction{ - dir = 8 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/port_hallway) "rZP" = ( /obj/structure/surface/table/almayer, /obj/item/tool/weldpack, /obj/item/tool/crowbar, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/shipboard/starboard_point_defense) -"rZR" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" - }, -/area/almayer/shipboard/brig/general_equipment) -"sah" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "red" +"rZZ" = ( +/obj/structure/sign/poster{ + desc = "It says DRUG."; + icon_state = "poster2"; + pixel_y = 30 }, -/area/almayer/hallways/aft_hallway) -"saB" = ( -/obj/structure/disposalpipe/segment{ +/obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer, -/area/almayer/engineering/engineering_workshop/hangar) -"saW" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "NW-out" - }, -/obj/effect/decal/warning_stripes{ - icon_state = "SW-out"; - layer = 2.5 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/upper/u_a_p) +"sab" = ( +/obj/effect/landmark/start/doctor, +/obj/effect/landmark/late_join/doctor, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/living/offices) +"sai" = ( +/obj/effect/step_trigger/clone_cleaner, +/obj/structure/blocker/forcefield/multitile_vehicles, +/turf/open/floor/plating/almayer/no_build, +/area/almayer/hallways/lower/port_fore_hallway) +"saL" = ( +/obj/structure/machinery/door/airlock/almayer/generic/corporate{ + name = "Corporate Liaison's Closet" }, -/area/almayer/hallways/aft_hallway) +/turf/open/floor/almayer/test_floor4, +/area/almayer/command/corporateliaison) "sbq" = ( /obj/structure/machinery/door/poddoor/almayer/locked{ icon_state = "almayer_pdoor"; id = "n_engi" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/engineering/upper_engineering/notunnel) +"sbt" = ( +/obj/structure/machinery/door/airlock/almayer/security{ + dir = 2; + name = "\improper Security Checkpoint" + }, +/obj/structure/machinery/door/poddoor/shutters/almayer{ + dir = 2; + id = "safe_armory"; + name = "\improper Hangar Armory Shutters" + }, +/turf/open/floor/almayer/test_floor4, +/area/almayer/shipboard/panic) +"sbE" = ( +/obj/structure/sign/safety/medical{ + pixel_x = 8; + pixel_y = 32 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_fore_hallway) "sbJ" = ( -/turf/closed/wall/almayer/white/hull, +/turf/closed/wall/almayer/aicore/hull, /area/almayer/powered/agent) -"sbM" = ( -/obj/structure/pipes/vents/scrubber{ - dir = 4 +"sbP" = ( +/obj/effect/landmark/start/police, +/obj/effect/decal/warning_stripes{ + icon_state = "W"; + layer = 2.5 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "green" +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/cryo) +"sbZ" = ( +/obj/structure/machinery/camera/autoname/almayer{ + name = "ship-grade camera" }, -/area/almayer/squads/req) -"scg" = ( -/obj/structure/surface/rack, -/obj/effect/spawner/random/toolbox, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/structure/machinery/suit_storage_unit/compression_suit/uscm, +/obj/structure/sign/safety/hazard{ + pixel_y = 32 + }, +/obj/structure/sign/safety/airlock{ + pixel_x = 15; + pixel_y = 32 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_y = 1 }, -/area/almayer/hull/lower_hull/l_m_p) +/turf/open/floor/almayer/plate, +/area/almayer/hallways/lower/starboard_umbilical) "sco" = ( /obj/structure/sign/prop1{ layer = 3.1 @@ -66095,6 +53233,17 @@ /obj/structure/surface/table/reinforced/black, /turf/open/floor/carpet, /area/almayer/command/cichallway) +"sct" = ( +/obj/structure/surface/table/almayer, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/structure/machinery/camera/autoname/almayer{ + dir = 1; + name = "ship-grade camera" + }, +/turf/open/floor/almayer/cargo, +/area/almayer/engineering/lower/engine_core) "scu" = ( /obj/structure/stairs/perspective{ dir = 1; @@ -66110,26 +53259,24 @@ layer = 3.1; pixel_y = 13 }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/squads/delta) "scz" = ( /obj/structure/prop/almayer/name_stencil{ icon_state = "almayer5" }, -/turf/open/floor/almayer_hull{ - icon_state = "outerhull_dir" - }, +/turf/open/floor/almayer_hull/outerhull_dir, /area/space) -"scD" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" +"scE" = ( +/obj/structure/machinery/camera/autoname/almayer{ + name = "ship-grade camera" }, -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer, -/area/almayer/shipboard/brig/general_equipment) +/obj/structure/sign/safety/life_support{ + pixel_x = 8; + pixel_y = 32 + }, +/turf/open/floor/almayer/orange/north, +/area/almayer/engineering/lower) "scH" = ( /obj/effect/decal/warning_stripes{ icon_state = "E"; @@ -66137,121 +53284,88 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/req) -"scI" = ( -/obj/structure/disposalpipe/segment{ +"scN" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_p) -"scS" = ( -/obj/structure/machinery/status_display{ - pixel_y = 30 +/turf/open/floor/almayer/orangefull, +/area/almayer/living/briefing) +"scX" = ( +/obj/structure/surface/table/almayer, +/obj/item/tool/kitchen/tray, +/obj/item/reagent_container/food/drinks/bottle/whiskey, +/obj/item/toy/deck{ + pixel_x = -9 }, -/obj/structure/machinery/light{ - dir = 8; - invisibility = 101; - unacidable = 1; - unslashable = 1 +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_m_s) +"sdd" = ( +/obj/item/tool/wirecutters/clippers, +/turf/open/floor/almayer/plate, +/area/almayer/maint/upper/u_a_s) +"sdf" = ( +/obj/effect/step_trigger/clone_cleaner, +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" +/turf/open/floor/almayer/red, +/area/almayer/hallways/upper/starboard) +"sdn" = ( +/obj/structure/sink{ + dir = 4; + pixel_x = 11 }, -/area/almayer/command/airoom) -"sdl" = ( -/obj/structure/surface/rack{ - density = 0; - pixel_y = 16 - }, -/obj/item/tool/wet_sign, -/obj/item/tool/wet_sign, -/obj/item/tool/wet_sign, -/turf/open/floor/plating, -/area/almayer/command/airoom) -"sdn" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = 11 - }, -/obj/structure/mirror{ - pixel_x = 28 - }, -/turf/open/floor/almayer{ - icon_state = "sterile" +/obj/structure/mirror{ + pixel_x = 28 }, +/turf/open/floor/almayer/sterile, /area/almayer/medical/upper_medical) -"sdq" = ( -/obj/structure/flora/pottedplant{ - icon_state = "pottedplant_21"; - layer = 3.1; - pixel_x = -8 - }, -/obj/structure/machinery/power/apc/almayer{ - dir = 8 - }, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "red" - }, -/area/almayer/shipboard/brig/chief_mp_office) "sdu" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/northwest, /area/almayer/medical/medical_science) -"sdw" = ( -/obj/structure/machinery/door/airlock/almayer/maint, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +"sdv" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 }, -/area/almayer/hull/upper_hull/u_a_p) +/turf/open/floor/almayer/red/northwest, +/area/almayer/hallways/upper/starboard) "sdC" = ( /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "blue" - }, +/turf/open/floor/almayer/blue, /area/almayer/squads/delta) -"sdF" = ( -/obj/structure/machinery/firealarm{ - dir = 8; - pixel_x = -24 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "redcorner" - }, -/area/almayer/shipboard/brig/processing) "sdO" = ( /obj/structure/ladder{ height = 1; id = "med1" }, -/turf/open/floor/almayer{ - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side, /area/almayer/medical/lower_medical_lobby) -"sed" = ( +"seL" = ( /obj/structure/pipes/vents/pump{ - dir = 1 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_p) -"seO" = ( -/obj/structure/sign/safety/terminal{ - pixel_x = 8; - pixel_y = 32 + dir = 8; + id_tag = "mining_outpost_pump" }, /turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_a_s) -"sfU" = ( -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 8 - }, +/area/almayer/hallways/lower/port_fore_hallway) +"sfz" = ( +/turf/open/floor/almayer/silver/north, +/area/almayer/hallways/upper/midship_hallway) +"sfA" = ( +/obj/structure/machinery/fuelpump, +/turf/open/floor/almayer, +/area/almayer/lifeboat_pumps/south1) +"sfT" = ( +/turf/open/floor/almayer, +/area/almayer/hallways/upper/port) +"sfV" = ( +/obj/structure/machinery/alarm/almayer, /turf/open/floor/almayer, -/area/almayer/engineering/lower_engineering) +/area/almayer/engineering/lower/workshop) "sgc" = ( /obj/structure/closet/crate/freezer/cooler{ pixel_x = -7 @@ -66267,9 +53381,7 @@ /obj/structure/sign/safety/storage{ pixel_x = -24 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/squads/req) "sgi" = ( /turf/closed/wall/almayer, @@ -66286,59 +53398,80 @@ dir = 8 }, /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/almayer{ - icon_state = "sterile_green" - }, +/turf/open/floor/almayer/sterile_green, /area/almayer/medical/lockerroom) -"sgw" = ( +"sgm" = ( /obj/structure/surface/table/almayer, -/obj/item/prop/almayer/flight_recorder{ - pixel_x = 9 +/obj/structure/machinery/firealarm{ + pixel_y = 28 }, -/obj/item/tool/weldingtool{ - pixel_x = -7; - pixel_y = 3 +/obj/structure/prop/holidays/string_lights{ + dir = 8; + pixel_x = 29 + }, +/obj/item/reagent_container/food/condiment/hotsauce/cholula{ + pixel_x = 10; + pixel_y = 14 + }, +/obj/item/trash/USCMtray{ + pixel_x = -4; + pixel_y = 4 }, -/turf/open/floor/almayer{ - icon_state = "silver" +/obj/item/reagent_container/food/snacks/hotdog{ + pixel_x = -7; + pixel_y = 5 }, -/area/almayer/hallways/repair_bay) -"sgy" = ( +/turf/open/floor/almayer/plate, +/area/almayer/living/briefing) +"sgs" = ( /obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 + icon_state = "W" }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" +/obj/structure/sign/safety/press_area_ag{ + pixel_x = -17; + pixel_y = 7 }, -/area/almayer/hull/lower_hull/l_f_s) -"sgE" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/structure/reagent_dispensers/water_cooler{ - density = 0; - pixel_x = 12; - pixel_y = 6 +/obj/structure/sign/safety/airlock{ + pixel_x = -17; + pixel_y = -8 }, -/turf/open/floor/almayer{ - icon_state = "plate" +/turf/open/floor/almayer/plating/northeast, +/area/almayer/shipboard/stern_point_defense) +"sgD" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, +/turf/open/floor/almayer/bluefull, /area/almayer/living/briefing) -"sgM" = ( -/obj/structure/closet/toolcloset, -/turf/open/floor/almayer{ - icon_state = "cargo" +"sgE" = ( +/obj/structure/bed, +/obj/structure/machinery/flasher{ + id = "Cell 3"; + pixel_x = -24 + }, +/turf/open/floor/almayer/red/west, +/area/almayer/shipboard/brig/cells) +"sgH" = ( +/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ + pixel_y = 25 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/upper/midship_hallway) +"sgL" = ( +/obj/structure/machinery/door/poddoor/shutters/almayer/open{ + dir = 4; + id = "southcheckpoint"; + name = "\improper Checkpoint Shutters" }, -/area/almayer/engineering/engine_core) +/turf/open/floor/almayer/redfull, +/area/almayer/hallways/lower/port_midship_hallway) "sgR" = ( /obj/structure/surface/table/almayer, /obj/item/toy/deck{ pixel_x = 8; pixel_y = 8 }, -/turf/open/floor/almayer{ - icon_state = "blue" - }, +/turf/open/floor/almayer/blue, /area/almayer/squads/delta) "sgU" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -66346,10 +53479,12 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/lifeboat_pumps/south1) -"shb" = ( -/obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/almayer, -/area/almayer/engineering/engineering_workshop) +"she" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 5 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_f_s) "shh" = ( /obj/structure/machinery/autolathe, /turf/open/floor/almayer, @@ -66366,9 +53501,7 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer/uscm/directional{ - dir = 8 - }, +/turf/open/floor/almayer/uscm/directional/west, /area/almayer/living/briefing) "shs" = ( /obj/structure/platform{ @@ -66381,27 +53514,52 @@ dir = 9; layer = 3.51 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/almayer/red/northeast, /area/almayer/lifeboat_pumps/south2) "sht" = ( /turf/open/floor/almayer, /area/almayer/living/pilotbunks) -"shw" = ( -/obj/structure/largecrate/random/barrel/green, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_p) -"sip" = ( -/obj/structure/reagent_dispensers/peppertank{ - pixel_x = -30 +"shC" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer/mono, +/area/almayer/hallways/upper/midship_hallway) +"shL" = ( +/obj/structure/surface/table/almayer, +/obj/item/storage/toolbox/electrical, +/obj/item/storage/toolbox/electrical, +/obj/structure/machinery/light{ + dir = 8 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "redcorner" +/turf/open/floor/almayer/cargo, +/area/almayer/engineering/lower/engine_core) +"sin" = ( +/turf/open/floor/almayer/bluecorner, +/area/almayer/hallways/upper/midship_hallway) +"sir" = ( +/obj/structure/machinery/door/airlock/almayer/maint{ + req_access = null; + req_one_access = null + }, +/obj/structure/machinery/door/poddoor/shutters/almayer{ + dir = 4; + id = "panicroomback"; + name = "\improper Safe Room Shutters" + }, +/turf/open/floor/almayer/test_floor4, +/area/almayer/maint/hull/lower/l_f_s) +"sit" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 6 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_f_s) +"siy" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 }, -/area/almayer/shipboard/brig/main_office) +/turf/open/floor/almayer/green/northeast, +/area/almayer/hallways/lower/port_midship_hallway) "siz" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/cameras/hangar{ @@ -66414,10 +53572,30 @@ pixel_y = 12; shuttleId = "dropship_alamo" }, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, +/turf/open/floor/almayer/redfull, /area/almayer/living/offices/flight) +"siC" = ( +/turf/open/floor/almayer/red/northwest, +/area/almayer/hallways/lower/port_fore_hallway) +"siN" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/obj/structure/pipes/standard/simple/visible{ + dir = 4 + }, +/obj/structure/machinery/computer/general_air_control/large_tank_control{ + name = "Lower Nitrogen Control Console" + }, +/obj/structure/surface/table/almayer, +/turf/open/floor/almayer/plate, +/area/almayer/engineering/lower) +"siT" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_f_p) "siW" = ( /obj/structure/machinery/body_scanconsole, /obj/structure/disposalpipe/segment{ @@ -66426,14 +53604,11 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side, /area/almayer/medical/lower_medical_medbay) -"sjc" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer, -/area/almayer/shipboard/brig/main_office) +"sje" = ( +/turf/open/floor/almayer/empty/vehicle_bay, +/area/almayer/hallways/lower/vehiclehangar) "sjj" = ( /obj/structure/machinery/keycard_auth{ pixel_x = -7; @@ -66448,10 +53623,7 @@ pixel_x = 15; pixel_y = 26 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/north, /area/almayer/engineering/ce_room) "sjr" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/dropshiprear/lifeboat/blastdoor{ @@ -66459,40 +53631,77 @@ linked_dock = "almayer-lifeboat1"; throw_dir = 2 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/command/lifeboat) -"skg" = ( -/obj/structure/machinery/light/small{ - dir = 8 - }, +"sjz" = ( /obj/effect/decal/warning_stripes{ - icon_state = "S" + icon_state = "SW-out"; + layer = 2.5 }, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "orange" +/turf/open/floor/almayer/mono, +/area/almayer/lifeboat_pumps/north2) +"sjG" = ( +/obj/structure/sign/safety/distribution_pipes{ + pixel_x = 8; + pixel_y = 32 }, -/area/almayer/engineering/upper_engineering/starboard) +/turf/open/floor/almayer/orangecorner/east, +/area/almayer/hallways/upper/aft_hallway) +"sjM" = ( +/obj/effect/landmark/start/reporter, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/upper/u_m_p) +"skj" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/processing) "skl" = ( /obj/structure/bed/chair/office/dark{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/medical/upper_medical) "skn" = ( -/turf/open/floor/almayer{ - icon_state = "plating_striped" - }, +/turf/open/floor/almayer/plating_striped, /area/almayer/shipboard/sea_office) -"skF" = ( -/turf/open/floor/almayer{ - icon_state = "cargo_arrow" +"skC" = ( +/obj/structure/pipes/standard/simple/visible{ + dir = 6 }, +/obj/structure/machinery/meter, +/turf/open/floor/almayer/orange, +/area/almayer/engineering/lower) +"skF" = ( +/turf/open/floor/almayer/cargo_arrow, /area/almayer/squads/charlie_delta_shared) +"skL" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 6 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/engineering/lower/workshop) +"skR" = ( +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_10" + }, +/obj/structure/closet/secure_closet/cmdcabinet{ + desc = "A bulletproof cabinet containing communications equipment."; + name = "communications cabinet"; + pixel_y = 24; + req_access = null; + req_one_access_txt = "207;203" + }, +/obj/item/device/radio, +/obj/item/device/radio/listening_bug/radio_linked/wy, +/obj/item/device/radio/listening_bug/radio_linked/wy{ + pixel_x = 4; + pixel_y = -3 + }, +/turf/open/floor/wood/ship, +/area/almayer/command/corporateliaison) "sld" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -66500,41 +53709,93 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "sterile_green" - }, +/turf/open/floor/almayer/sterile_green, /area/almayer/medical/lower_medical_lobby) -"slP" = ( -/obj/structure/stairs/perspective{ - icon_state = "p_stair_full" - }, -/obj/structure/sign/safety/hazard{ +"slf" = ( +/obj/structure/machinery/brig_cell/cell_6{ pixel_x = 32; - pixel_y = 8 + pixel_y = -32 }, -/obj/structure/sign/safety/restrictedarea{ - pixel_x = 32; - pixel_y = -7 +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/processing) +"slo" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 5 + }, +/obj/structure/sign/safety/maint{ + pixel_x = 8; + pixel_y = -32 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "SW-out" }, /turf/open/floor/almayer, -/area/almayer/hull/lower_hull/l_f_s) +/area/almayer/hallways/lower/starboard_aft_hallway) +"slv" = ( +/obj/structure/surface/table/almayer, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/turf/open/floor/almayer/cargo, +/area/almayer/engineering/lower/engine_core) +"slF" = ( +/turf/open/floor/almayer/red/northwest, +/area/almayer/shipboard/brig/processing) "smi" = ( -/turf/open/floor/almayer{ - icon_state = "green" - }, +/turf/open/floor/almayer/green, /area/almayer/living/grunt_rnr) -"smn" = ( -/obj/structure/sign/safety/escapepod{ +"smw" = ( +/obj/structure/surface/table/reinforced/almayer_B, +/obj/structure/machinery/computer/med_data/laptop{ + dir = 8 + }, +/obj/item/device/flashlight/lamp{ + pixel_x = -5; + pixel_y = 16 + }, +/obj/structure/sign/safety/terminal{ + pixel_x = 8; pixel_y = -32 }, -/turf/open/floor/almayer, -/area/almayer/hallways/port_hallway) -"smr" = ( +/obj/structure/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_a_s) +"smA" = ( +/obj/item/trash/cigbutt{ + pixel_x = -10; + pixel_y = 13 + }, +/obj/structure/prop/invuln/lattice_prop{ + icon_state = "lattice10"; + pixel_x = -16; + pixel_y = 16 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_m_s) +"smH" = ( +/obj/structure/machinery/door/airlock/almayer/maint{ + access_modified = 1; + dir = 1; + req_access = null; + req_one_access = null; + req_one_access_txt = "3;22;19" + }, +/turf/open/floor/almayer/test_floor4, +/area/almayer/maint/hull/lower/l_f_s) +"smU" = ( +/turf/open/floor/almayer/plating/northeast, +/area/almayer/shipboard/panic) +"smW" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, /obj/structure/pipes/standard/simple/hidden/supply{ - dir = 6 + dir = 4 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/engineering/engineering_workshop) +/turf/open/floor/almayer, +/area/almayer/engineering/lower/workshop/hangar) "snb" = ( /obj/structure/ladder{ height = 1; @@ -66543,23 +53804,12 @@ /turf/open/floor/plating/almayer, /area/almayer/living/briefing) "sni" = ( -/turf/open/floor/almayer{ - dir = 9; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/northwest, /area/almayer/command/cic) -"snm" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "blue" - }, -/area/almayer/hallways/aft_hallway) +"snt" = ( +/obj/structure/machinery/cm_vending/sorted/tech/electronics_storage, +/turf/open/floor/almayer/cargo, +/area/almayer/engineering/lower/engine_core) "snw" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 8 @@ -66568,10 +53818,12 @@ dir = 4; icon_state = "pipe-c" }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/req) +"snx" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_f_s) "snE" = ( /obj/structure/machinery/cryopod/right, /obj/effect/decal/warning_stripes{ @@ -66582,9 +53834,7 @@ icon_state = "W"; pixel_x = -1 }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/engineering/upper_engineering/port) "snI" = ( /obj/structure/surface/table/reinforced/almayer_B, @@ -66603,142 +53853,83 @@ pixel_x = -17; pixel_y = 7 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/command/cic) "snM" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/structure/disposalpipe/junction{ - dir = 8; - icon_state = "pipe-j2" +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "green" +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 5 }, +/turf/open/floor/almayer/green/west, /area/almayer/squads/req) +"snN" = ( +/obj/structure/curtain/red, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_a_s) "snR" = ( /obj/structure/surface/table/almayer, -/turf/open/floor/almayer{ - icon_state = "blue" - }, +/turf/open/floor/almayer/blue, /area/almayer/squads/delta) -"soa" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/effect/decal/warning_stripes{ - icon_state = "NW-out"; - pixel_y = 1 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "NE-out"; - pixel_x = 1; - pixel_y = 1 - }, -/obj/structure/machinery/door/airlock/almayer/generic{ - dir = 1; - name = "Bathroom" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +"snX" = ( +/obj/structure/sign/safety/medical{ + pixel_x = 16; + pixel_y = 27 }, -/area/almayer/shipboard/brig/cells) +/turf/open/floor/almayer/red/northwest, +/area/almayer/shipboard/brig/processing) "soq" = ( /obj/structure/machinery/computer/working_joe{ dir = 4; pixel_x = -17 }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/living/synthcloset) -"sos" = ( -/obj/effect/step_trigger/clone_cleaner, -/obj/structure/machinery/camera/autoname/almayer{ - dir = 1; - name = "ship-grade camera" - }, -/obj/structure/blocker/forcefield/multitile_vehicles, -/obj/structure/sign/safety/stairs{ - pixel_x = 8; - pixel_y = -32 - }, -/turf/open/floor/plating/almayer{ - allow_construction = 0 - }, -/area/almayer/hallways/port_hallway) -"sou" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/turf/open/floor/almayer, -/area/almayer/hallways/starboard_hallway) -"sow" = ( -/obj/structure/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_p) +"sov" = ( +/turf/open/floor/almayer/orange/north, +/area/almayer/engineering/lower/engine_core) "soA" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, /turf/open/floor/almayer, /area/almayer/living/gym) -"soD" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/effect/landmark/crap_item, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" - }, -/area/almayer/shipboard/brig/main_office) "soK" = ( /obj/item/storage/firstaid/fire/empty, /obj/item/storage/firstaid/o2/empty, /obj/item/storage/firstaid/rad/empty, /obj/item/storage/firstaid/toxin/empty, /obj/structure/surface/rack, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/east, /area/almayer/medical/lower_medical_medbay) "soP" = ( /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer, /area/almayer/engineering/upper_engineering/port) -"soQ" = ( -/obj/structure/largecrate/random/barrel/red, -/obj/structure/machinery/light/small, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_s) -"soS" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 2 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "SE-out"; - pixel_x = 2 +"soT" = ( +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" +/obj/structure/prop/invuln/lattice_prop{ + icon_state = "lattice1"; + pixel_x = 16; + pixel_y = -8 }, -/area/almayer/hull/lower_hull/l_f_s) +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_m_p) "soX" = ( /obj/structure/window/reinforced/toughened, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/command/cic) +"spd" = ( +/obj/structure/sign/safety/storage{ + pixel_x = 8; + pixel_y = 32 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_a_p) "spF" = ( /obj/structure/surface/table/almayer, /obj/structure/flora/pottedplant{ @@ -66747,140 +53938,142 @@ }, /turf/open/floor/almayer, /area/almayer/living/briefing) +"spH" = ( +/obj/structure/pipes/standard/simple/hidden/universal{ + dir = 4 + }, +/turf/open/floor/almayer/plate, +/area/almayer/engineering/lower) "spK" = ( /obj/structure/pipes/vents/scrubber{ dir = 1 }, /obj/structure/largecrate/random/secure, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/engineering/upper_engineering/starboard) "spS" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "emerald" - }, +/turf/open/floor/almayer/emerald/west, /area/almayer/squads/charlie) "spT" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/obj/structure/machinery/light{ - dir = 8 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "red" +/obj/structure/closet/crate{ + desc = "One of those old special operations crates from back in the day. After a leaked report from a meeting of SOF leadership lambasted the crates as 'waste of operational funds' the crates were removed from service."; + name = "special operations crate" }, -/area/almayer/hallways/aft_hallway) +/obj/item/clothing/mask/gas/swat, +/obj/item/clothing/mask/gas/swat, +/obj/item/clothing/mask/gas/swat, +/obj/item/clothing/mask/gas/swat, +/obj/item/attachable/suppressor, +/obj/item/attachable/suppressor, +/obj/item/attachable/suppressor, +/obj/item/attachable/suppressor, +/obj/item/explosive/grenade/smokebomb, +/obj/item/explosive/grenade/smokebomb, +/obj/item/explosive/grenade/smokebomb, +/obj/item/explosive/grenade/smokebomb, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_m_s) "sqa" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; pixel_y = 1 }, /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) "sqf" = ( /turf/closed/wall/almayer/white/reinforced, /area/almayer/medical/upper_medical) +"sqg" = ( +/turf/closed/wall/almayer, +/area/almayer/engineering/lower) +"sql" = ( +/obj/structure/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/almayer/plate, +/area/almayer/shipboard/brig/perma) "sqo" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/structure/disposalpipe/segment, /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/east, /area/almayer/engineering/upper_engineering) "sqW" = ( /obj/structure/machinery/portable_atmospherics/hydroponics, /obj/item/seeds/tomatoseed, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/almayer/green/north, /area/almayer/shipboard/brig/cells) -"srV" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/machinery/firealarm{ - dir = 4; - pixel_x = 24 - }, -/obj/structure/surface/table/almayer, -/obj/item/toy/deck{ - pixel_x = 8; - pixel_y = 8 - }, -/obj/item/paper_bin/uscm{ - pixel_x = -6; - pixel_y = 7 - }, -/obj/item/tool/pen{ - pixel_x = -6 - }, -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" - }, -/area/almayer/shipboard/brig/main_office) -"ssa" = ( -/obj/structure/machinery/door/poddoor/almayer/open{ - id = "Hangar Lockdown"; - name = "\improper Hangar Lockdown Blast Door" - }, -/obj/structure/machinery/door/poddoor/shutters/almayer{ - id = "DeployWorkR"; - name = "\improper Workshop Shutters" +"srh" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 }, /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +/turf/open/floor/almayer/test_floor4, +/area/almayer/hallways/lower/port_umbilical) +"srl" = ( +/obj/structure/largecrate/random/barrel/red, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_a_p) +"srO" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/upper/mess) +"srR" = ( +/obj/structure/stairs{ + dir = 4 }, -/area/almayer/hallways/repair_bay) -"ssn" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 10 +/obj/effect/projector{ + name = "Almayer_Up2"; + vector_x = -1; + vector_y = 100 }, -/turf/open/floor/carpet, -/area/almayer/living/commandbunks) -"ssD" = ( -/obj/structure/machinery/light/small{ - dir = 4 +/obj/structure/machinery/light, +/turf/open/floor/plating/almayer/no_build, +/area/almayer/hallways/lower/starboard_fore_hallway) +"srT" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 8 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" +/obj/structure/machinery/door/airlock/almayer/security/glass{ + name = "Evidence Room" }, -/area/almayer/shipboard/brig/main_office) -"ssE" = ( -/obj/effect/step_trigger/clone_cleaner, -/obj/structure/machinery/door_control{ - id = "laddersouthwest"; - name = "South West Ladders Shutters"; - pixel_x = 25; - req_one_access_txt = "2;3;12;19"; - throw_range = 15 +/turf/open/floor/almayer/test_floor4, +/area/almayer/shipboard/brig/evidence_storage) +"ssk" = ( +/obj/structure/surface/rack, +/obj/item/storage/backpack/marine/satchel{ + desc = "It's the heavy-duty black polymer kind. Time to take out the trash!"; + icon = 'icons/obj/janitor.dmi'; + icon_state = "trashbag3"; + name = "trash bag"; + pixel_x = -4; + pixel_y = 6 }, -/turf/open/floor/almayer{ - icon_state = "greencorner" +/obj/item/storage/backpack/marine/satchel{ + desc = "It's the heavy-duty black polymer kind. Time to take out the trash!"; + icon = 'icons/obj/janitor.dmi'; + icon_state = "trashbag3"; + name = "trash bag"; + pixel_x = 3; + pixel_y = -2 }, -/area/almayer/hallways/port_hallway) +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_m_p) "ssU" = ( /obj/structure/machinery/constructable_frame, -/turf/open/floor/almayer{ - icon_state = "orange" - }, +/turf/open/floor/almayer/orange, /area/almayer/engineering/upper_engineering/starboard) +"ssW" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/obj/structure/closet/secure_closet/guncabinet/red/cic_armory_shotgun, +/turf/open/floor/almayer/redfull, +/area/almayer/command/cic) "ssX" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 6 @@ -66897,11 +54090,6 @@ /obj/structure/pipes/vents/pump, /turf/open/floor/almayer, /area/almayer/shipboard/navigation) -"sti" = ( -/obj/structure/closet/crate/trashcart, -/obj/effect/spawner/random/balaclavas, -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_f_p) "str" = ( /obj/effect/step_trigger/teleporter_vector{ name = "Almayer_Down3"; @@ -66911,54 +54099,75 @@ /obj/structure/catwalk{ health = null }, -/turf/open/floor/plating/almayer{ - allow_construction = 0 - }, +/turf/open/floor/plating/almayer/no_build, /area/almayer/stair_clone/upper) -"stY" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 +"stu" = ( +/obj/structure/machinery/sentry_holder/almayer, +/turf/open/floor/almayer/mono, +/area/almayer/lifeboat_pumps/north1) +"stO" = ( +/obj/structure/surface/table/almayer, +/obj/structure/machinery/faxmachine/uscm/brig, +/obj/structure/machinery/camera/autoname/almayer{ + dir = 1; + name = "ship-grade camera" }, -/obj/structure/machinery/door/poddoor/almayer{ - dir = 4; - id = "hangarentrancenorth"; - name = "\improper North Hangar Podlock" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +/turf/open/floor/almayer/red, +/area/almayer/shipboard/brig/perma) +"stP" = ( +/obj/structure/machinery/light/small, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_f_s) +"stR" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" }, -/area/almayer/hallways/starboard_hallway) -"suk" = ( -/obj/item/tool/weldingtool, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_a_p) +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_midship_hallway) +"sub" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/almayer/cargo, +/area/almayer/hallways/lower/vehiclehangar) "suy" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 6 }, /turf/open/floor/almayer, /area/almayer/command/computerlab) -"suT" = ( +"suH" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/structure/sign/safety/distribution_pipes{ +/obj/structure/sign/safety/hvac_old{ pixel_x = 8; - pixel_y = 32 + pixel_y = -32 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_p) -"suV" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer, -/area/almayer/hallways/aft_hallway) -"svd" = ( -/obj/structure/machinery/recharge_station, -/turf/open/floor/almayer{ - icon_state = "cargo" +/turf/open/floor/almayer/plate, +/area/almayer/hallways/lower/starboard_midship_hallway) +"suJ" = ( +/obj/structure/machinery/door/airlock/almayer/maint{ + name = "\improper Core Hatch" + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer/test_floor4, +/area/almayer/engineering/lower/engine_core) +"suU" = ( +/obj/structure/stairs, +/obj/effect/projector{ + name = "Almayer_Up1"; + vector_x = -19; + vector_y = 98 }, -/area/almayer/engineering/engine_core) +/obj/structure/blocker/forcefield/multitile_vehicles, +/turf/open/floor/plating/almayer/no_build, +/area/almayer/hallways/lower/starboard_midship_hallway) +"suY" = ( +/obj/structure/platform_decoration, +/turf/open/floor/almayer/plating/northeast, +/area/almayer/engineering/lower/engine_core) "svf" = ( /obj/structure/machinery/light{ dir = 1 @@ -66969,52 +54178,67 @@ /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/command/lifeboat) -"svp" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ +"svq" = ( +/obj/structure/bed/chair{ dir = 4 }, -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 2 +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/upper/u_m_s) +"svt" = ( +/obj/structure/machinery/light, +/turf/open/floor/almayer/green/southwest, +/area/almayer/hallways/lower/port_midship_hallway) +"svw" = ( +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 1 }, /turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_s) -"swn" = ( -/obj/structure/window/framed/almayer, -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 +/area/almayer/hallways/lower/starboard_midship_hallway) +"svF" = ( +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12 }, -/turf/open/floor/plating, -/area/almayer/shipboard/brig/surgery) -"swo" = ( -/obj/structure/machinery/vending/security, -/obj/structure/machinery/light{ - dir = 1 +/obj/effect/landmark/yautja_teleport, +/obj/structure/sign/safety/hvac_old{ + pixel_x = 8; + pixel_y = -32 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_m_p) +"swn" = ( +/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ + pixel_y = -25 }, -/area/almayer/shipboard/brig/main_office) +/turf/open/floor/almayer/orangecorner, +/area/almayer/hallways/upper/aft_hallway) "swt" = ( -/turf/open/floor/almayer{ - icon_state = "greencorner" - }, +/turf/open/floor/almayer/greencorner, /area/almayer/living/grunt_rnr) +"swx" = ( +/obj/effect/projector{ + name = "Almayer_AresUp"; + vector_x = -96; + vector_y = 65 + }, +/obj/structure/stairs{ + dir = 1; + icon_state = "ramptop" + }, +/turf/open/floor/almayer/aicore/no_build, +/area/almayer/command/airoom) "swE" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/alarm/almayer{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "green" - }, +/turf/open/floor/almayer/green/northeast, /area/almayer/living/grunt_rnr) +"swG" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_a_p) "swH" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/device/radio/intercom{ @@ -67029,60 +54253,75 @@ }, /obj/item/device/flashlight/lamp, /obj/item/clothing/glasses/hud/health, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/command/cic) "swM" = ( /obj/structure/machinery/camera/autoname/almayer{ dir = 8; name = "ship-grade camera" }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/lifeboat_pumps/south2) "swN" = ( /obj/structure/closet/secure_closet/engineering_personal, /obj/item/clothing/suit/storage/hazardvest/blue, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo/southwest, /area/almayer/engineering/upper_engineering) -"sxe" = ( -/obj/structure/prop/invuln/lattice_prop{ - dir = 1; - icon_state = "lattice-simple"; - pixel_x = 16; - pixel_y = -16 +"sxD" = ( +/obj/structure/machinery/door/airlock/almayer/generic{ + dir = 2; + name = "\improper Officer's Bunk" }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_s) -"sxu" = ( +/turf/open/floor/almayer/test_floor4, +/area/almayer/living/bridgebunks) +"sxE" = ( /obj/effect/decal/warning_stripes{ - icon_state = "W" + icon_state = "S" + }, +/obj/structure/sign/safety/escapepod{ + pixel_x = 8; + pixel_y = -32 + }, +/turf/open/floor/almayer/red/northeast, +/area/almayer/hallways/upper/port) +"sxS" = ( +/obj/structure/largecrate/random/secure, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/s_bow) +"sxW" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 +/turf/open/floor/almayer/silver, +/area/almayer/command/cichallway) +"syg" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/area/almayer/hallways/starboard_hallway) -"sxD" = ( -/obj/structure/machinery/door/airlock/almayer/generic{ - dir = 2; - name = "\improper Officer's Bunk" +/obj/structure/machinery/door/airlock/almayer/security/reinforced{ + access_modified = 1; + closeOtherId = "astroladder_n"; + name = "\improper Astronavigational Deck"; + req_access = null; + req_one_access_txt = "3;19" }, -/turf/open/floor/almayer{ - icon_state = "plate" +/turf/open/floor/almayer/test_floor4, +/area/almayer/shipboard/navigation) +"syj" = ( +/obj/structure/sign/safety/escapepod{ + pixel_y = 32 }, -/area/almayer/living/bridgebunks) +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_fore_hallway) +"syp" = ( +/turf/open/floor/almayer/silver/southeast, +/area/almayer/maint/upper/u_m_p) "syH" = ( /obj/structure/machinery/firealarm{ pixel_y = -28 @@ -67092,49 +54331,46 @@ }, /turf/open/floor/almayer, /area/almayer/squads/delta) -"syM" = ( -/obj/structure/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_p) -"syP" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, +"syO" = ( +/obj/structure/machinery/light, /turf/open/floor/almayer, -/area/almayer/hallways/port_hallway) -"szm" = ( -/obj/structure/machinery/power/fusion_engine{ - name = "\improper S-52 fusion reactor 10" - }, -/obj/structure/machinery/light{ - dir = 8 +/area/almayer/hallways/upper/midship_hallway) +"szf" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +/obj/structure/coatrack{ + pixel_x = -5; + pixel_y = 1 }, -/area/almayer/engineering/engine_core) -"szy" = ( /obj/structure/pipes/standard/simple/hidden/supply{ - dir = 9 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "redcorner" + dir = 5 }, -/area/almayer/shipboard/brig/main_office) +/turf/open/floor/wood/ship, +/area/almayer/living/commandbunks) "szE" = ( /obj/effect/decal/warning_stripes{ icon_state = "NE-out"; pixel_y = 1 }, /obj/structure/machinery/door/airlock/almayer/maint, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/living/offices) +"szG" = ( +/obj/item/stack/sheet/glass/reinforced{ + amount = 50 + }, +/obj/effect/spawner/random/toolbox, +/obj/effect/spawner/random/powercell, +/obj/effect/spawner/random/powercell, +/obj/structure/surface/rack, +/obj/structure/machinery/camera/autoname/almayer{ + dir = 1; + name = "ship-grade camera" + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/warden_office) "szM" = ( /obj/structure/flora/pottedplant{ desc = "It is made of Fiberbush(tm). It contains asbestos."; @@ -67142,19 +54378,14 @@ name = "synthetic potted plant"; pixel_y = 8 }, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "emerald" - }, +/turf/open/floor/almayer/emerald/southeast, /area/almayer/squads/charlie) "szO" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/pilotbunks) "szU" = ( /obj/structure/toilet{ @@ -67162,88 +54393,77 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/numbertwobunks) -"szX" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, -/area/almayer/hull/upper_hull/u_a_s) "sAc" = ( /obj/structure/bed/chair{ dir = 8; pixel_y = 3 }, -/turf/open/floor/almayer{ - icon_state = "blue" - }, +/turf/open/floor/almayer/blue, /area/almayer/squads/delta) -"sAm" = ( -/obj/structure/largecrate/random/case/double, -/turf/open/floor/almayer{ - icon_state = "plate" +"sAw" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 8 }, -/area/almayer/hull/lower_hull/l_f_s) -"sAA" = ( -/obj/structure/machinery/light{ - dir = 1 +/turf/open/floor/almayer, +/area/almayer/engineering/upper_engineering) +"sAz" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_a_s) +/turf/open/floor/almayer/red/southeast, +/area/almayer/hallways/upper/starboard) "sAC" = ( -/turf/open/floor/almayer{ - icon_state = "orange" - }, +/turf/open/floor/almayer/orange, /area/almayer/engineering/ce_room) -"sBs" = ( -/obj/structure/surface/table/almayer, -/obj/effect/decal/cleanable/dirt, -/obj/item/paper, -/obj/item/tool/pen{ - pixel_x = -5; - pixel_y = 2 - }, -/turf/open/floor/almayer{ - icon_state = "redfull" +"sAD" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" }, -/area/almayer/living/briefing) -"sBH" = ( +/obj/structure/pipes/standard/manifold/fourway/hidden/supply, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/port_fore_hallway) +"sAS" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_m_p) +"sBg" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 10 }, -/obj/structure/machinery/status_display{ - pixel_x = 32 - }, /turf/open/floor/plating/plating_catwalk, -/area/almayer/shipboard/brig/execution) +/area/almayer/shipboard/brig/general_equipment) "sBL" = ( /obj/structure/machinery/portable_atmospherics/hydroponics, /obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "green" - }, +/turf/open/floor/almayer/green, /area/almayer/living/grunt_rnr) +"sBQ" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/secdoor/glass/reinforced{ + closeOtherId = "briglobby"; + name = "\improper Brig Cells" + }, +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 1 + }, +/turf/open/floor/almayer/test_floor4, +/area/almayer/shipboard/brig/processing) +"sBY" = ( +/obj/item/tool/wet_sign, +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_m_s) +"sCg" = ( +/turf/open/floor/almayer/red/west, +/area/almayer/hallways/lower/starboard_midship_hallway) "sCA" = ( /obj/structure/bed/chair/comfy/delta{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "bluefull" - }, +/turf/open/floor/almayer/bluefull, /area/almayer/living/briefing) -"sCC" = ( -/obj/structure/machinery/power/apc/almayer{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_m_p) "sCD" = ( /obj/effect/decal/warning_stripes{ icon_state = "E"; @@ -67254,77 +54474,72 @@ pixel_x = -1; pixel_y = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/alpha) "sCI" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 10 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/almayer/blue/north, /area/almayer/living/pilotbunks) "sCQ" = ( /obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "silver" - }, +/turf/open/floor/almayer/silver, /area/almayer/shipboard/brig/cic_hallway) +"sCT" = ( +/obj/structure/largecrate/random/barrel/red, +/turf/open/floor/almayer/cargo, +/area/almayer/maint/hull/lower/l_f_s) +"sCV" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/turf/open/floor/almayer/plating/northeast, +/area/almayer/engineering/lower/engine_core) +"sCW" = ( +/obj/effect/decal/cleanable/cobweb, +/obj/structure/surface/table/almayer, +/turf/open/floor/plating, +/area/almayer/maint/lower/constr) "sDu" = ( /obj/item/clothing/under/marine/dress, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/engineering/laundry) -"sDy" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 10 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_p) -"sDC" = ( -/obj/structure/sign/safety/analysis_lab{ - pixel_y = 26 - }, -/obj/structure/sign/safety/terminal{ - pixel_x = 15; - pixel_y = 26 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "silver" +"sDx" = ( +/turf/closed/wall/almayer, +/area/almayer/hallways/lower/vehiclehangar) +"sDA" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/bed/chair/comfy/charlie{ + dir = 4 }, -/area/almayer/hallways/aft_hallway) +/turf/open/floor/almayer/plate, +/area/almayer/living/briefing) "sDD" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/almayer/red/north, /area/almayer/shipboard/port_missiles) "sDM" = ( -/turf/open/floor/almayer{ - dir = 9; - icon_state = "blue" - }, +/turf/open/floor/almayer/blue/northwest, /area/almayer/squads/delta) -"sEa" = ( -/turf/open/floor/almayer{ - icon_state = "redcorner" - }, -/area/almayer/shipboard/brig/chief_mp_office) "sEd" = ( /obj/structure/machinery/cryopod/right, /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/squads/bravo) +"sEg" = ( +/obj/structure/sign/safety/hvac_old{ + pixel_x = 8; + pixel_y = 32 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_a_s) "sEi" = ( /obj/structure/bed/chair{ can_buckle = 0; @@ -67342,10 +54557,7 @@ pixel_x = 2; pixel_y = 6 }, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "green" - }, +/turf/open/floor/almayer/green/northwest, /area/almayer/living/grunt_rnr) "sEp" = ( /obj/structure/disposalpipe/segment{ @@ -67360,9 +54572,7 @@ /obj/structure/machinery/door/airlock/almayer/command/reinforced{ name = "\improper Combat Information Center" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/command/cic) "sEq" = ( /obj/structure/machinery/light{ @@ -67373,18 +54583,23 @@ "sEt" = ( /obj/structure/surface/table/almayer, /obj/item/reagent_container/spray/cleaner, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/southwest, /area/almayer/hallways/hangar) +"sEu" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_a_p) +"sEz" = ( +/turf/open/floor/almayer/no_build, +/area/almayer/shipboard/brig/starboard_hallway) "sEK" = ( /obj/effect/decal/warning_stripes{ icon_state = "E" }, -/turf/open/floor/almayer/no_build{ - icon_state = "tcomms" - }, +/turf/open/floor/almayer/aicore/glowing/no_build, /area/almayer/command/airoom) "sEM" = ( /obj/structure/surface/table/reinforced/almayer_B, @@ -67401,68 +54616,49 @@ pixel_x = -17 }, /obj/item/clothing/glasses/hud/health, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/command/cic) -"sFf" = ( -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/shipboard/starboard_missiles) -"sFh" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_hallway) -"sFC" = ( -/obj/structure/window/framed/almayer, -/obj/structure/machinery/door/poddoor/shutters/almayer/open{ - dir = 8; - id = "Interrogation Shutters"; - name = "\improper Privacy Shutters" - }, -/turf/open/floor/plating, -/area/almayer/shipboard/brig/main_office) -"sFF" = ( -/obj/structure/closet/secure_closet/engineering_welding, -/obj/item/stack/tile/carpet{ - amount = 20 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_p) -"sFR" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 +"sER" = ( +/obj/structure/sign/safety/water{ + pixel_x = 8; + pixel_y = -32 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_a_p) -"sFZ" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 9 +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/stern) +"sEZ" = ( +/obj/structure/reagent_dispensers/peppertank{ + pixel_y = 26 }, -/obj/structure/machinery/light{ - dir = 4 +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 2 }, -/turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_s) -"sGe" = ( -/obj/structure/ladder{ - height = 2; - id = "ForePortMaint" +/obj/effect/decal/warning_stripes{ + icon_state = "W"; + pixel_x = -2 }, -/obj/structure/sign/safety/ladder{ - pixel_x = -17 +/turf/open/floor/almayer/plate, +/area/almayer/shipboard/brig/armory) +"sFf" = ( +/turf/open/floor/almayer/cargo, +/area/almayer/shipboard/starboard_missiles) +"sFu" = ( +/obj/structure/surface/table/almayer, +/obj/item/paper_bin/uscm{ + pixel_y = 7 }, -/turf/open/floor/plating/almayer, -/area/almayer/hull/upper_hull/u_f_p) +/obj/item/tool/pen, +/turf/open/floor/almayer/red/west, +/area/almayer/shipboard/brig/starboard_hallway) "sGh" = ( /turf/open/floor/almayer/uscm/directional, /area/almayer/command/lifeboat) +"sGw" = ( +/turf/closed/wall/almayer/outer, +/area/almayer/maint/hull/lower/l_f_s) +"sGK" = ( +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/p_bow) "sGL" = ( /obj/structure/machinery/cryopod/right{ layer = 3.1; @@ -67475,53 +54671,30 @@ /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/engineering/upper_engineering/port) +"sGQ" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/almayer/plate, +/area/almayer/maint/lower/s_bow) "sGU" = ( /obj/structure/mirror, /turf/closed/wall/almayer, /area/almayer/living/gym) -"sGX" = ( -/obj/structure/machinery/firealarm{ - pixel_y = -28 - }, -/obj/structure/bed/chair/comfy/charlie{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/living/briefing) "sGZ" = ( /obj/structure/closet/firecloset, -/turf/open/floor/almayer{ - icon_state = "silverfull" - }, +/turf/open/floor/almayer/silverfull, /area/almayer/command/airoom) -"sHg" = ( -/obj/structure/surface/rack, -/obj/item/storage/backpack/marine/satchel{ - desc = "It's the heavy-duty black polymer kind. Time to take out the trash!"; - icon = 'icons/obj/janitor.dmi'; - icon_state = "trashbag3"; - name = "trash bag"; - pixel_x = -4; - pixel_y = 6 - }, -/obj/item/storage/backpack/marine/satchel{ - desc = "It's the heavy-duty black polymer kind. Time to take out the trash!"; - icon = 'icons/obj/janitor.dmi'; - icon_state = "trashbag3"; - name = "trash bag"; - pixel_x = 3; - pixel_y = -2 - }, -/turf/open/floor/almayer{ - icon_state = "plate" +"sHe" = ( +/obj/structure/largecrate/supply/supplies/tables_racks, +/turf/open/floor/plating, +/area/almayer/maint/lower/constr) +"sHm" = ( +/obj/structure/disposalpipe/up/almayer{ + id = "almayerlink_OT_req" }, -/area/almayer/hull/lower_hull/l_m_p) +/turf/closed/wall/almayer, +/area/almayer/engineering/lower/workshop/hangar) "sHo" = ( /obj/structure/pipes/unary/outlet_injector{ dir = 8; @@ -67541,48 +54714,39 @@ }, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/north1) +"sHx" = ( +/obj/structure/pipes/standard/manifold/hidden/supply, +/turf/open/floor/almayer/orange/west, +/area/almayer/engineering/lower/workshop) +"sHC" = ( +/obj/structure/machinery/alarm/almayer{ + dir = 1 + }, +/turf/open/floor/almayer/green/north, +/area/almayer/hallways/upper/fore_hallway) +"sHI" = ( +/turf/open/floor/almayer/orangecorner/east, +/area/almayer/hallways/upper/aft_hallway) "sHM" = ( /obj/structure/machinery/door/firedoor/border_only/almayer, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/living/pilotbunks) "sHY" = ( /obj/structure/sign/poster{ pixel_y = -32 }, -/turf/open/floor/almayer{ - icon_state = "red" - }, +/turf/open/floor/almayer/red, /area/almayer/squads/alpha) -"sIf" = ( -/obj/effect/step_trigger/teleporter_vector{ - name = "Almayer_AresDown"; - vector_x = 97; - vector_y = -65 - }, -/obj/structure/stairs{ - dir = 1 - }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, -/area/almayer/command/airoom) -"sIk" = ( -/obj/structure/largecrate/random/case/double, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_f_p) -"sIw" = ( -/turf/open/floor/almayer{ - icon_state = "redfull" +"sIr" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/area/almayer/shipboard/brig/evidence_storage) -"sIx" = ( -/obj/effect/landmark/yautja_teleport, +/turf/open/floor/almayer, +/area/almayer/engineering/lower/engine_core) +"sIu" = ( +/obj/structure/machinery/light/small, /turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_p) +/area/almayer/maint/hull/lower/p_bow) "sIA" = ( /obj/structure/sign/poster{ desc = "This poster features Audrey Rainwater standing in a jacuzzi. She was the July 2182 centerfold in House Bunny Gentleman's Magazine. Don't ask how you know that."; @@ -67596,82 +54760,101 @@ icon_state = "W"; pixel_x = -1 }, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/northwest, /area/almayer/engineering/port_atmos) -"sIT" = ( -/turf/closed/wall/almayer/reinforced, -/area/almayer/hull/lower_hull/l_f_s) +"sII" = ( +/obj/effect/step_trigger/clone_cleaner, +/obj/structure/machinery/door/poddoor/shutters/almayer{ + id = "ARES ReceptStairs2"; + name = "\improper ARES Reception Stairway Shutters"; + plane = -7 + }, +/turf/open/floor/almayer/no_build/test_floor4, +/area/almayer/command/airoom) +"sIR" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/almayer/plate, +/area/almayer/hallways/lower/port_midship_hallway) "sIU" = ( /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) -"sIV" = ( -/obj/structure/largecrate/random/barrel/yellow, -/obj/effect/decal/warning_stripes{ - icon_state = "SE-out" +"sJa" = ( +/obj/structure/sign/safety/cryo{ + pixel_y = -26 }, -/turf/open/floor/almayer{ - icon_state = "plate" +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_m_s) +"sJC" = ( +/obj/structure/surface/table/almayer, +/obj/item/trash/USCMtray{ + pixel_x = 5 }, -/area/almayer/hull/lower_hull/l_a_p) -"sIY" = ( -/obj/structure/machinery/brig_cell/perma_1{ - pixel_x = -32; - pixel_y = 4 +/turf/open/floor/almayer/bluefull, +/area/almayer/living/briefing) +"sJI" = ( +/obj/structure/closet/crate, +/obj/item/stack/sheet/aluminum{ + amount = 20 }, -/obj/structure/machinery/door_control{ - id = "Perma 1L"; - name = "Perma 1 Lockdown"; - pixel_x = -24; - pixel_y = -12; - req_access_txt = "3" +/obj/item/stack/sheet/copper{ + amount = 20; + pixel_y = 4 }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 5 +/obj/item/stack/sheet/mineral/gold{ + amount = 3; + pixel_y = 4 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "redcorner" +/obj/item/stack/sheet/mineral/silver{ + amount = 5; + pixel_x = 4; + pixel_y = 2 }, -/area/almayer/shipboard/brig/perma) -"sJC" = ( -/obj/structure/surface/table/almayer, -/obj/item/trash/USCMtray{ - pixel_x = 5 +/obj/item/stack/sheet/mineral/phoron{ + amount = 25 }, -/turf/open/floor/almayer{ - icon_state = "bluefull" +/obj/effect/decal/warning_stripes{ + icon_state = "S" }, -/area/almayer/living/briefing) +/turf/open/floor/almayer/cargo, +/area/almayer/engineering/lower/workshop/hangar) "sJY" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/north, /area/almayer/living/port_emb) "sKa" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/east, /area/almayer/medical/morgue) +"sKf" = ( +/obj/structure/machinery/power/apc/almayer{ + dir = 1 + }, +/turf/open/floor/almayer/orange/north, +/area/almayer/engineering/lower) +"sKM" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 10 + }, +/turf/open/floor/almayer/plate, +/area/almayer/engineering/lower) "sKY" = ( /obj/structure/bed/chair/office/dark{ dir = 8; layer = 3.25 }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, +/turf/open/floor/almayer/aicore/no_build, /area/almayer/command/airoom) +"sLk" = ( +/obj/structure/ladder{ + height = 2; + id = "cicladder4" + }, +/turf/open/floor/plating/almayer, +/area/almayer/medical/medical_science) "sLo" = ( /obj/structure/stairs/perspective{ dir = 1; @@ -67682,20 +54865,30 @@ }, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/north1) -"sLE" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ +"sLx" = ( +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_f_p) +"sLA" = ( +/obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/starboard_hallway) -"sMs" = ( -/obj/structure/machinery/door/airlock/almayer/maint/reinforced{ +/obj/structure/pipes/standard/manifold/hidden/supply, +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/processing) +"sLX" = ( +/turf/open/floor/almayer/emeraldcorner/east, +/area/almayer/hallways/lower/port_midship_hallway) +"sMu" = ( +/obj/item/trash/uscm_mre, +/obj/structure/bed/chair/comfy/charlie{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hull/upper_hull/u_m_s) +/turf/open/floor/almayer/emeraldfull, +/area/almayer/living/briefing) "sMM" = ( /obj/structure/cable/heavyduty{ icon_state = "4-8" @@ -67710,24 +54903,25 @@ dir = 4 }, /obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "orange" - }, +/turf/open/floor/almayer/orange, /area/almayer/squads/bravo) "sNz" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/almayer/research/containment/floor2{ - dir = 1 - }, +/turf/open/floor/almayer/research/containment/floor2/north, /area/almayer/medical/containment/cell) "sNI" = ( /obj/structure/bed/chair/comfy/delta, -/turf/open/floor/almayer{ - icon_state = "bluefull" - }, +/turf/open/floor/almayer/bluefull, /area/almayer/living/briefing) +"sNL" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/turf/open/floor/almayer/green/east, +/area/almayer/hallways/lower/starboard_midship_hallway) "sNO" = ( /obj/structure/desertdam/decals/road_edge{ icon_state = "road_edge_decal3" @@ -67738,6 +54932,10 @@ }, /turf/open/floor/wood/ship, /area/almayer/living/basketball) +"sNP" = ( +/obj/structure/largecrate/supply/floodlights, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_a_p) "sNR" = ( /turf/closed/wall/almayer/research/containment/wall/corner, /area/almayer/medical/containment/cell/cl) @@ -67747,41 +54945,46 @@ id = "bot_armory"; name = "\improper Armory Shutters" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/command/cic) -"sOm" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 +"sOr" = ( +/obj/structure/machinery/door/airlock/almayer/maint{ + access_modified = 1; + req_access = null; + req_one_access = null; + req_one_access_txt = "3;22;19" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +/obj/structure/machinery/door/poddoor/almayer/open{ + dir = 4; + id = "Hangar Lockdown"; + name = "\improper Hangar Lockdown Blast Door" }, -/area/almayer/hallways/starboard_hallway) +/turf/open/floor/almayer/test_floor4, +/area/almayer/maint/hull/lower/l_f_s) "sOt" = ( /obj/structure/machinery/portable_atmospherics/hydroponics, /obj/structure/machinery/status_display{ pixel_y = 30 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/almayer/green/north, /area/almayer/living/grunt_rnr) -"sOw" = ( -/turf/open/floor/almayer{ - icon_state = "plate" +"sOv" = ( +/obj/structure/bed/chair/office/dark{ + dir = 8 + }, +/obj/structure/machinery/door_control/cl/quarter/windows{ + pixel_x = 11; + pixel_y = 37 }, +/turf/open/floor/wood/ship, +/area/almayer/command/corporateliaison) +"sOw" = ( +/turf/open/floor/almayer/plate, /area/almayer/living/basketball) "sOx" = ( /obj/structure/closet/secure_closet/engineering_personal, /obj/item/clothing/suit/storage/hazardvest/yellow, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo/southwest, /area/almayer/engineering/upper_engineering) "sOy" = ( /obj/structure/stairs/perspective{ @@ -67793,84 +54996,98 @@ }, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/south1) -"sPc" = ( -/obj/structure/machinery/light{ - dir = 1 - }, +"sOD" = ( +/obj/structure/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_a_p) +"sOK" = ( +/obj/structure/disposalpipe/down/almayer{ + dir = 2; + id = "ares_vault_out"; + name = "wycomms" + }, +/turf/closed/wall/almayer/outer, +/area/almayer/command/airoom) +"sOL" = ( +/obj/structure/machinery/light/small{ + dir = 1 + }, +/obj/structure/closet/toolcloset, +/turf/open/floor/almayer/orange/northwest, +/area/almayer/maint/upper/mess) +"sOZ" = ( +/obj/structure/sign/safety/ammunition{ + pixel_y = 32 + }, +/obj/structure/closet/secure_closet/guncabinet/red/armory_m4a3_pistol, +/turf/open/floor/almayer/redfull, +/area/almayer/medical/upper_medical) +"sPa" = ( +/obj/structure/surface/rack, +/obj/item/stack/cable_coil, +/obj/item/attachable/flashlight/grip, +/obj/item/ammo_box/magazine/l42a{ + pixel_y = 14 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/upper/u_m_s) +"sPb" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/turf/open/floor/almayer/red/east, +/area/almayer/hallways/upper/starboard) +"sPc" = ( +/obj/structure/machinery/light{ + dir = 1 + }, /obj/effect/decal/warning_stripes{ icon_state = "N"; pixel_y = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/offices) -"sPA" = ( -/obj/structure/sign/safety/ladder{ - pixel_x = 8; - pixel_y = -32 - }, -/turf/open/floor/almayer{ - icon_state = "orange" +"sPF" = ( +/obj/structure/bed/chair{ + can_buckle = 0; + dir = 4 }, -/area/almayer/engineering/lower_engineering) +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/perma) "sPJ" = ( /obj/structure/machinery/firealarm{ dir = 4; pixel_x = 24 }, /obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side, /area/almayer/medical/lower_medical_medbay) -"sQF" = ( -/turf/open/floor/almayer{ - icon_state = "red" - }, -/area/almayer/shipboard/port_missiles) -"sQL" = ( -/obj/structure/machinery/disposal, -/obj/structure/disposalpipe/trunk{ - dir = 8 +"sPY" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/obj/structure/machinery/light{ +/obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/wood/ship, -/area/almayer/command/corporateliason) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/port_fore_hallway) +"sQF" = ( +/turf/open/floor/almayer/red, +/area/almayer/shipboard/port_missiles) "sQO" = ( /obj/structure/pipes/standard/manifold/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/command/lifeboat) -"sQS" = ( -/obj/structure/surface/table/almayer, -/obj/item/tool/stamp{ - pixel_x = 3; - pixel_y = 10 - }, -/obj/item/device/taperecorder, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/shipboard/brig/main_office) -"sQU" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_p) -"sRI" = ( -/obj/structure/surface/table/almayer, -/obj/item/tool/wirecutters/clippers, -/obj/item/handcuffs/zip, -/turf/open/floor/almayer{ - icon_state = "plate" +"sRZ" = ( +/obj/effect/projector{ + name = "Almayer_Down2"; + vector_x = 1; + vector_y = -100 }, -/area/almayer/hull/lower_hull/l_f_p) +/turf/open/floor/almayer/no_build/plate, +/area/almayer/hallways/upper/fore_hallway) "sSa" = ( /obj/structure/machinery/door/airlock/almayer/marine/requisitions{ dir = 2; @@ -67882,52 +55099,24 @@ /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/squads/req) "sSc" = ( /obj/structure/blocker/invisible_wall, -/turf/open/floor/almayer{ - icon_state = "tcomms" - }, +/turf/open/floor/almayer/tcomms, /area/almayer/shipboard/weapon_room) -"sSe" = ( -/obj/structure/sign/poster/blacklight{ - pixel_y = 35 - }, -/obj/structure/machinery/light/small{ - dir = 8 - }, -/obj/structure/reagent_dispensers/beerkeg/alt_dark{ - anchored = 1; - chemical = null; - density = 0; - pixel_x = -7; - pixel_y = 10 - }, -/turf/open/floor/almayer{ - icon_state = "plate" +"sSj" = ( +/obj/structure/machinery/light{ + dir = 1 }, -/area/almayer/hull/lower_hull/l_m_s) +/turf/open/floor/almayer/red/northwest, +/area/almayer/lifeboat_pumps/north1) "sSl" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/lifeboat_pumps/south2) -"sSm" = ( -/obj/structure/reagent_dispensers/water_cooler/stacks{ - density = 0; - pixel_y = 17 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/shipboard/brig/cells) "sSC" = ( -/turf/open/floor/almayer{ - dir = 6; - icon_state = "blue" - }, +/turf/open/floor/almayer/blue/southeast, /area/almayer/squads/delta) "sSG" = ( /obj/structure/surface/table/reinforced/almayer_B, @@ -67949,33 +55138,10 @@ pixel_x = -17; pixel_y = 7 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/command/cic) -"sSR" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "SW-out"; - layer = 2.5 - }, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, -/area/almayer/hallways/aft_hallway) -"sSY" = ( -/obj/structure/pipes/vents/scrubber{ - dir = 8 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" - }, -/area/almayer/hallways/port_umbilical) "sTd" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/almayer/blue/east, /area/almayer/living/basketball) "sTm" = ( /obj/structure/surface/table/reinforced/black, @@ -67985,10 +55151,7 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/northeast, /area/almayer/shipboard/brig/cic_hallway) "sTw" = ( /obj/structure/platform_decoration{ @@ -67996,12 +55159,13 @@ }, /turf/open/floor/almayer, /area/almayer/living/briefing) -"sTB" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - icon_state = "plate" +"sTU" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 6 }, -/area/almayer/hull/upper_hull/u_m_s) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/port_midship_hallway) "sTV" = ( /obj/structure/machinery/power/apc/almayer/hardened{ cell_type = /obj/item/cell/hyper; @@ -68015,20 +55179,29 @@ icon_state = "pottedplant_21"; pixel_y = 11 }, -/turf/open/floor/almayer{ - icon_state = "silverfull" - }, +/turf/open/floor/almayer/silverfull, /area/almayer/shipboard/brig/cic_hallway) +"sUi" = ( +/obj/structure/machinery/door/airlock/almayer/maint, +/turf/open/floor/almayer/test_floor4, +/area/almayer/maint/hull/lower/l_a_p) "sUj" = ( /obj/effect/decal/warning_stripes{ icon_state = "NE-out"; pixel_x = 1; pixel_y = 1 }, -/turf/open/floor/almayer{ - icon_state = "bluefull" - }, +/turf/open/floor/almayer/bluefull, /area/almayer/squads/delta) +"sUk" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 1 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/starboard_aft_hallway) "sUs" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -68041,20 +55214,8 @@ /area/almayer/shipboard/brig/cells) "sUE" = ( /obj/structure/surface/table/reinforced/almayer_B, -/turf/open/floor/almayer{ - icon_state = "bluefull" - }, +/turf/open/floor/almayer/bluefull, /area/almayer/command/cichallway) -"sUF" = ( -/obj/structure/sign/safety/distribution_pipes{ - pixel_x = 8; - pixel_y = 32 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orangecorner" - }, -/area/almayer/hallways/stern_hallway) "sUO" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -68066,40 +55227,79 @@ pixel_x = 8; pixel_y = -32 }, -/turf/open/floor/almayer{ - icon_state = "blue" - }, +/turf/open/floor/almayer/blue, /area/almayer/squads/delta) +"sUS" = ( +/obj/structure/disposalpipe/junction{ + dir = 4; + icon_state = "pipe-j2" + }, +/obj/structure/pipes/standard/manifold/hidden/supply, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/upper/fore_hallway) "sVc" = ( /obj/structure/machinery/portable_atmospherics/hydroponics, /obj/item/seeds/orangeseed, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/almayer/green/north, /area/almayer/shipboard/brig/cells) -"sVf" = ( -/obj/structure/sign/safety/escapepod{ - pixel_x = 8; - pixel_y = -32 +"sVv" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer/red/north, +/area/almayer/hallways/upper/aft_hallway) +"sVT" = ( +/obj/structure/surface/table/almayer, +/obj/item/storage/toolbox/mechanical, +/obj/item/storage/toolbox/mechanical, +/obj/structure/machinery/light{ + dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "green" +/obj/structure/machinery/firealarm{ + pixel_y = 28 }, -/area/almayer/hallways/port_hallway) -"sVi" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/sign/safety/distribution_pipes{ - pixel_x = 32 +/obj/item/storage/toolbox/electrical{ + pixel_y = 8 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_p) -"sVy" = ( -/obj/structure/machinery/power/apc/almayer{ - dir = 1 +/turf/open/floor/almayer/plate, +/area/almayer/engineering/lower/workshop) +"sVV" = ( +/turf/open/floor/almayer, +/area/almayer/hallways/upper/starboard) +"sWb" = ( +/obj/effect/projector{ + name = "Almayer_Down2"; + vector_x = 1; + vector_y = -100 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/shipboard/brig/cryo) +/turf/open/floor/almayer/no_build, +/area/almayer/hallways/upper/fore_hallway) +"sWp" = ( +/obj/structure/machinery/light/small{ + dir = 8 + }, +/obj/structure/prop/invuln/overhead_pipe{ + dir = 4; + pixel_x = -12; + pixel_y = 13 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_a_s) +"sWw" = ( +/obj/structure/largecrate/random/case/double, +/turf/open/floor/almayer, +/area/almayer/maint/hull/upper/u_f_s) +"sWC" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_y = 2 + }, +/obj/structure/machinery/door/airlock/almayer/generic{ + name = "\improper Bathroom" + }, +/turf/open/floor/almayer/test_floor4, +/area/almayer/engineering/upper_engineering/port) "sWW" = ( /obj/structure/machinery/flasher{ alpha = 1; @@ -68112,41 +55312,26 @@ icon_state = "N"; pixel_y = 1 }, -/turf/open/floor/almayer/research/containment/floor2{ - dir = 1 - }, +/turf/open/floor/almayer/research/containment/floor2/north, /area/almayer/medical/containment/cell) "sXd" = ( /obj/structure/pipes/standard/simple/hidden/supply/no_boom{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/medical/containment) -"sXs" = ( -/obj/structure/surface/table/almayer, -/obj/item/device/flashlight/lamp{ - layer = 3.1; - pixel_x = 7; - pixel_y = 10 - }, -/obj/item/paper_bin/uscm, -/obj/item/tool/pen, -/obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "plate" +"sXq" = ( +/obj/structure/sign/safety/storage{ + pixel_x = -17 }, -/area/almayer/hull/upper_hull/u_f_p) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/s_bow) "sXt" = ( /obj/structure/machinery/cm_vending/clothing/tl/alpha{ density = 0; pixel_x = 32 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/almayer/red/north, /area/almayer/squads/alpha) "sXw" = ( /obj/effect/landmark/start/marine/engineer/bravo, @@ -68162,50 +55347,47 @@ icon_state = "E"; pixel_x = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) +"sXC" = ( +/obj/structure/sign/safety/storage{ + pixel_y = 32 + }, +/turf/open/floor/almayer/green/north, +/area/almayer/hallways/lower/port_midship_hallway) "sXE" = ( /obj/structure/machinery/door/airlock/almayer/generic{ name = "\improper Auxiliary Support Officer's Room" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/living/auxiliary_officer_office) -"sXK" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_p) "sXQ" = ( /obj/structure/machinery/portable_atmospherics/hydroponics, /obj/item/seeds/appleseed, /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "green" - }, +/turf/open/floor/almayer/green/northeast, /area/almayer/shipboard/brig/cells) -"sXV" = ( -/obj/structure/machinery/recharge_station, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "orange" - }, -/area/almayer/engineering/lower_engineering) "sYh" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/north, /area/almayer/medical/lower_medical_medbay) +"sYl" = ( +/obj/structure/machinery/body_scanconsole{ + dir = 8 + }, +/turf/open/floor/almayer/sterile_green_side/west, +/area/almayer/shipboard/brig/medical) +"sYr" = ( +/obj/structure/machinery/door/airlock/almayer/maint, +/obj/structure/machinery/door/poddoor/almayer/open{ + dir = 4; + id = "Hangar Lockdown"; + name = "\improper Hangar Lockdown Blast Door" + }, +/obj/structure/machinery/door/firedoor/border_only/almayer, +/turf/open/floor/almayer/test_floor4, +/area/almayer/hallways/lower/port_umbilical) "sYw" = ( /obj/structure/platform{ dir = 8 @@ -68215,22 +55397,8 @@ dir = 10; layer = 3.51 }, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/almayer/red/southwest, /area/almayer/lifeboat_pumps/south2) -"sYC" = ( -/obj/structure/machinery/door/airlock/almayer/maint, -/obj/structure/machinery/door/poddoor/almayer/open{ - dir = 4; - id = "Hangar Lockdown"; - name = "\improper Hangar Lockdown Blast Door" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hull/lower_hull/l_f_p) "sYD" = ( /obj/structure/machinery/status_display{ pixel_x = 16; @@ -68239,15 +55407,11 @@ /obj/structure/sign/safety/debark_lounge{ pixel_y = 32 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/command/lifeboat) "sYP" = ( /obj/structure/reagent_dispensers/fueltank/custom, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/shipboard/port_point_defense) "sYT" = ( /obj/structure/machinery/door/poddoor/shutters/almayer/open{ @@ -68256,18 +55420,42 @@ name = "\improper CMO Office Shutters" }, /obj/structure/window/framed/almayer/white, -/obj/structure/machinery/door/firedoor/border_only/almayer, /turf/open/floor/plating, /area/almayer/medical/upper_medical) +"sYU" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer/silver/west, +/area/almayer/hallways/upper/midship_hallway) +"sZc" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_f_s) +"sZe" = ( +/turf/open/floor/almayer/green, +/area/almayer/hallways/lower/starboard_aft_hallway) "sZq" = ( /obj/structure/machinery/cm_vending/sorted/marine_food{ density = 0; pixel_y = 16 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/charlie) +"sZs" = ( +/obj/structure/machinery/light, +/obj/structure/machinery/disposal, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/almayer/plate, +/area/almayer/living/port_emb) "sZy" = ( /obj/effect/decal/warning_stripes{ icon_state = "E"; @@ -68277,18 +55465,8 @@ icon_state = "N"; pixel_y = 1 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/north, /area/almayer/medical/medical_science) -"sZF" = ( -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12; - pixel_y = 12 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_p) "sZH" = ( /obj/structure/surface/table/almayer, /obj/item/ashtray/bronze{ @@ -68311,18 +55489,19 @@ pixel_x = 5; pixel_y = 4 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "blue" - }, +/turf/open/floor/almayer/blue/northeast, /area/almayer/living/port_emb) +"sZY" = ( +/obj/structure/blocker/fuelpump, +/turf/open/floor/almayer, +/area/almayer/lifeboat_pumps/south2) "tab" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/storage/box/flashbangs{ pixel_x = -5; pixel_y = 5 }, -/obj/item/handcuffs, +/obj/item/restraint/handcuffs, /obj/item/storage/firstaid/regular, /obj/structure/machinery/light{ dir = 8 @@ -68330,39 +55509,41 @@ /obj/structure/sign/safety/terminal{ pixel_x = -17 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/briefing) -"tak" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" - }, -/area/almayer/shipboard/brig/main_office) -"tal" = ( -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 1 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 +"tan" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 10 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/aft_hallway) +/turf/open/floor/carpet, +/area/almayer/living/commandbunks) "tat" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/disposalpipe/segment, /turf/open/floor/almayer, /area/almayer/living/port_emb) -"taA" = ( -/obj/structure/machinery/light{ - dir = 4 +"tau" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer, +/obj/structure/machinery/door/airlock/multi_tile/almayer/secdoor/reinforced{ + dir = 2; + name = "\improper Brig Permanent Confinement" }, -/turf/open/floor/almayer{ +/obj/structure/machinery/door/poddoor/almayer/open{ dir = 4; - icon_state = "red" + id = "perma_lockdown_1"; + name = "\improper Perma Lockdown Shutter" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/area/almayer/hallways/starboard_hallway) +/turf/open/floor/almayer/test_floor4, +/area/almayer/shipboard/brig/perma) +"taw" = ( +/turf/closed/wall/almayer, +/area/almayer/maint/hull/upper/u_a_s) "taH" = ( /obj/structure/machinery/door/airlock/almayer/research/glass/reinforced{ id = "Containment Cell 2"; @@ -68387,46 +55568,46 @@ /obj/structure/pipes/standard/simple/hidden/supply/no_boom{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/medical/containment/cell) -"tbD" = ( -/obj/structure/ladder{ - height = 2; - id = "AftPortMaint" - }, -/turf/open/floor/plating/almayer, -/area/almayer/hull/upper_hull/u_a_p) -"tbK" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_p) -"tce" = ( -/obj/structure/closet/emcloset, -/turf/open/floor/almayer{ - icon_state = "plate" +"taV" = ( +/obj/effect/projector{ + name = "Almayer_Down1"; + vector_x = 19; + vector_y = -98 }, -/area/almayer/hull/lower_hull/l_a_s) -"tcP" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 1 +/turf/open/floor/almayer/no_build/plate, +/area/almayer/hallways/upper/starboard) +"tcd" = ( +/obj/structure/surface/table/almayer, +/obj/item/device/radio{ + pixel_x = -6; + pixel_y = 3 }, -/obj/structure/disposalpipe/segment, -/obj/structure/pipes/standard/simple/hidden/supply{ +/turf/open/floor/plating, +/area/almayer/maint/lower/constr) +"tcm" = ( +/obj/structure/machinery/light/small{ dir = 1 }, -/obj/structure/machinery/door/poddoor/almayer/open{ - id = "perma_lockdown"; - name = "\improper Perma Lockdown Shutter" - }, -/obj/structure/machinery/door/airlock/multi_tile/almayer/secdoor/glass/reinforced{ - name = "\improper Perma Cells" +/obj/structure/largecrate/random/barrel/white, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_a_s) +"tcO" = ( +/turf/closed/wall/almayer/outer, +/area/almayer/maint/hull/lower/l_a_p) +"tcS" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/starboard_aft_hallway) +"tcZ" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" }, -/area/almayer/shipboard/brig/perma) +/turf/open/floor/almayer/dark_sterile, +/area/almayer/engineering/upper_engineering/port) "tda" = ( /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 2 @@ -68438,9 +55619,7 @@ req_access = null; req_one_access_txt = "3;19" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/living/briefing) "tdc" = ( /obj/effect/decal/warning_stripes{ @@ -68451,25 +55630,37 @@ icon_state = "N"; pixel_y = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) +"tdi" = ( +/obj/structure/disposalpipe/junction{ + dir = 4; + icon_state = "pipe-j2" + }, +/obj/structure/pipes/standard/manifold/hidden/supply, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/starboard_midship_hallway) "tdv" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" +/obj/structure/surface/table/almayer, +/obj/structure/sign/safety/terminal{ + pixel_x = -17 }, -/area/almayer/shipboard/brig/main_office) -"tdx" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 9 +/obj/structure/machinery/computer/working_joe{ + dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "orangecorner" +/turf/open/floor/almayer/orange/west, +/area/almayer/engineering/lower/engine_core) +"tdy" = ( +/obj/structure/bed/sofa/south/grey/right, +/obj/structure/sign/safety/restrictedarea{ + pixel_y = 32 + }, +/obj/structure/sign/safety/security{ + pixel_x = 15; + pixel_y = 32 }, -/area/almayer/engineering/engine_core) +/turf/open/floor/almayer/red/north, +/area/almayer/shipboard/brig/lobby) "tdE" = ( /obj/structure/window/reinforced{ dir = 8 @@ -68478,31 +55669,19 @@ dir = 4; health = 80 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "cargo_arrow" - }, +/turf/open/floor/almayer/cargo_arrow/north, /area/almayer/squads/alpha_bravo_shared) -"tdI" = ( -/turf/open/floor/almayer{ - icon_state = "sterile_green_corner" +"tdH" = ( +/obj/structure/bed/chair{ + dir = 8; + pixel_y = 3 }, +/obj/item/bedsheet/yellow, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_m_s) +"tdI" = ( +/turf/open/floor/almayer/sterile_green_corner, /area/almayer/medical/lower_medical_medbay) -"tdK" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/sign/safety/airlock{ - pixel_y = -32 - }, -/obj/structure/sign/safety/hazard{ - pixel_x = 15; - pixel_y = -32 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/port_umbilical) "tdT" = ( /obj/structure/bed/chair/comfy/beige{ dir = 1 @@ -68513,148 +55692,175 @@ /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/lifeboat_pumps/south1) "teo" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/lifeboat_pumps/north1) -"teu" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/weapon/gun/shotgun/pump{ - starting_attachment_types = list(/obj/item/attachable/stock/shotgun) +"ter" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/turf/open/floor/almayer, -/area/almayer/squads/charlie_delta_shared) +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/port_midship_hallway) "tez" = ( /obj/effect/landmark/ert_spawns/distress_cryo, /obj/effect/landmark/late_join, /turf/open/floor/almayer, /area/almayer/living/cryo_cells) -"teH" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/structure/sign/safety/maint{ - pixel_y = 32 +"teE" = ( +/obj/structure/machinery/light{ + dir = 8 }, -/obj/structure/sign/safety/storage{ - pixel_x = 15; - pixel_y = 32 +/obj/structure/toilet{ + dir = 4 }, -/turf/open/floor/almayer, -/area/almayer/hallways/starboard_hallway) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/cells) "teY" = ( /obj/structure/machinery/light{ dir = 1 }, /obj/structure/prop/almayer/computers/sensor_computer2, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/command/cic) -"tfb" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" +"teZ" = ( +/obj/structure/machinery/door_control{ + id = "ARES StairsLower"; + name = "ARES Core Lockdown"; + pixel_x = -24; + pixel_y = -8; + req_one_access_txt = "90;91;92" }, +/turf/open/floor/almayer/aicore/no_build/ai_silver/west, +/area/almayer/command/airoom) +"tfb" = ( +/turf/open/floor/almayer/orange/west, /area/almayer/engineering/upper_engineering/starboard) -"tfl" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/obj/structure/sign/safety/maint{ - pixel_x = 32 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/starboard_hallway) -"tfw" = ( -/obj/item/device/radio/intercom{ - freerange = 1; - name = "General Listening Channel"; - pixel_y = 28 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "green" +"tff" = ( +/turf/open/floor/almayer/red/north, +/area/almayer/shipboard/brig/lobby) +"tfE" = ( +/obj/structure/surface/rack, +/obj/item/storage/firstaid/adv{ + pixel_x = 6; + pixel_y = 6 }, -/area/almayer/hallways/port_hallway) +/obj/item/storage/firstaid/regular, +/turf/open/floor/almayer/plate, +/area/almayer/shipboard/brig/execution_storage) +"tfF" = ( +/turf/open/floor/almayer/orange/southeast, +/area/almayer/hallways/upper/midship_hallway) "tfH" = ( /obj/structure/machinery/light/containment, /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/almayer/research/containment/floor2{ - dir = 1 - }, +/turf/open/floor/almayer/research/containment/floor2/north, /area/almayer/medical/containment/cell) -"tfO" = ( -/obj/structure/machinery/power/apc/almayer{ +"tfQ" = ( +/obj/structure/machinery/light/small, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_a_p) +"tfZ" = ( +/obj/structure/reagent_dispensers/water_cooler/stacks{ + density = 0; + pixel_x = -7; + pixel_y = 17 + }, +/obj/structure/sign/safety/cryo{ + pixel_x = 12; + pixel_y = 28 + }, +/turf/open/floor/almayer/red/north, +/area/almayer/shipboard/brig/starboard_hallway) +"tge" = ( +/obj/structure/pipes/vents/scrubber{ dir = 4 }, -/obj/item/storage/box/nade_box/tear_gas, -/obj/item/storage/box/nade_box/tear_gas{ - pixel_x = 3; - pixel_y = 5 +/obj/structure/bed/chair/comfy/charlie{ + dir = 4 }, -/obj/structure/surface/table/almayer, +/turf/open/floor/almayer/emeraldfull, +/area/almayer/living/briefing) +"tgm" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/largecrate/random/case/double, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_a_p) +"tgy" = ( +/obj/structure/machinery/light, /obj/effect/decal/warning_stripes{ - icon_state = "W"; - pixel_x = -1; - pixel_y = 1 + icon_state = "SW-out" }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" +/obj/structure/machinery/cm_vending/sorted/tech/tool_storage{ + req_one_access = null; + req_one_access_txt = "7;23;27;102" }, -/area/almayer/shipboard/brig/armory) -"tgE" = ( -/turf/open/floor/almayer{ - icon_state = "redfull" +/turf/open/floor/almayer/silver/southwest, +/area/almayer/hallways/lower/repair_bay) +"tgz" = ( +/obj/structure/sign/safety/distribution_pipes{ + pixel_y = -32 }, -/area/almayer/living/briefing) +/obj/structure/sign/safety/manualopenclose{ + pixel_x = 15; + pixel_y = -32 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_midship_hallway) +"tgJ" = ( +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/warden_office) "tgK" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/northwest, /area/almayer/engineering/upper_engineering/starboard) -"tgS" = ( -/obj/effect/step_trigger/clone_cleaner, -/obj/structure/sign/safety/maint{ - pixel_x = -17 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/aft_hallway) "tgV" = ( /obj/structure/bed, /obj/item/bedsheet/medical, /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/west, /area/almayer/medical/lower_medical_medbay) -"thv" = ( -/obj/structure/machinery/camera/autoname/almayer{ - dir = 8; - name = "ship-grade camera" - }, -/turf/open/floor/almayer{ - icon_state = "plate" +"thc" = ( +/obj/item/device/radio/intercom{ + freerange = 1; + name = "General Listening Channel"; + pixel_y = 28 }, -/area/almayer/command/telecomms) +/turf/open/floor/almayer/orange/north, +/area/almayer/engineering/lower/engine_core) +"thq" = ( +/obj/structure/machinery/vending/cola{ + density = 0; + pixel_y = 16 + }, +/obj/structure/disposalpipe/segment{ + dir = 8 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/cells) +"thv" = ( +/obj/structure/machinery/camera/autoname/almayer{ + dir = 8; + name = "ship-grade camera" + }, +/turf/open/floor/almayer/plate, +/area/almayer/command/telecomms) "thA" = ( /obj/structure/window/reinforced{ dir = 4; @@ -68663,49 +55869,24 @@ /obj/structure/window/reinforced{ dir = 8 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "cargo_arrow" - }, +/turf/open/floor/almayer/cargo_arrow/north, /area/almayer/squads/alpha_bravo_shared) -"thE" = ( -/obj/structure/bed/chair/comfy/charlie{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - icon_state = "emeraldfull" - }, -/area/almayer/living/briefing) "thL" = ( /turf/open/floor/wood/ship, /area/almayer/shipboard/brig/cells) "thN" = ( -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/medical/hydroponics) "thP" = ( -/turf/open/floor/almayer{ - dir = 10; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/southwest, /area/almayer/medical/lower_medical_medbay) -"thT" = ( -/obj/structure/sign/safety/hvac_old{ - pixel_x = 8; - pixel_y = 32 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_s) "thV" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/north, /area/almayer/engineering/upper_engineering/port) +"tie" = ( +/obj/structure/largecrate/supply/floodlights, +/turf/open/floor/almayer/red/southeast, +/area/almayer/maint/upper/u_a_p) "tig" = ( /obj/structure/surface/table/almayer, /obj/item/reagent_container/food/condiment/hotsauce/tabasco{ @@ -68730,49 +55911,24 @@ pixel_x = -8; pixel_y = 29 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/north, /area/almayer/engineering/ce_room) "tim" = ( /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/east, /area/almayer/engineering/upper_engineering/port) -"tit" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/structure/disposalpipe/segment, -/turf/open/floor/almayer{ - icon_state = "green" - }, -/area/almayer/hallways/starboard_hallway) -"tiw" = ( -/obj/structure/machinery/constructable_frame{ - icon_state = "box_2" - }, -/obj/item/weapon/baseballbat/metal{ - pixel_x = -2; - pixel_y = 8 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "SW-out"; - pixel_x = -1 - }, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "orange" - }, -/area/almayer/engineering/upper_engineering/starboard) "tiE" = ( /obj/structure/window/framed/almayer, -/obj/structure/machinery/door/firedoor/border_only/almayer, /turf/open/floor/plating, /area/almayer/squads/req) +"tiF" = ( +/obj/structure/machinery/keycard_auth{ + pixel_y = 25 + }, +/turf/open/floor/almayer/red/northeast, +/area/almayer/shipboard/brig/chief_mp_office) "tiI" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/storage/box/syringes{ @@ -68780,23 +55936,12 @@ pixel_y = 6 }, /obj/item/storage/box/syringes, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/north, /area/almayer/medical/lower_medical_medbay) "tiK" = ( /obj/structure/largecrate/random/case/small, -/turf/open/floor/almayer{ - icon_state = "orange" - }, +/turf/open/floor/almayer/orange, /area/almayer/engineering/upper_engineering/port) -"tiM" = ( -/obj/structure/machinery/door/airlock/almayer/maint, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hull/upper_hull/u_m_s) "tiR" = ( /obj/structure/machinery/door/firedoor/border_only/almayer, /obj/structure/machinery/door/airlock/almayer/maint/reinforced{ @@ -68804,34 +55949,42 @@ req_one_access = null; req_one_access_txt = "7;19" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/shipboard/weapon_room) "tiW" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/lifeboat_pumps/south1) -"tjj" = ( -/turf/open/floor/almayer{ - dir = 5; - icon_state = "orange" +"tiX" = ( +/obj/item/reagent_container/glass/bucket/janibucket{ + pixel_x = -1; + pixel_y = 13 + }, +/turf/open/floor/almayer, +/area/almayer/maint/hull/upper/u_f_s) +"tiY" = ( +/obj/structure/closet, +/obj/item/reagent_container/food/drinks/bottle/sake, +/obj/item/newspaper, +/obj/item/clothing/gloves/yellow, +/obj/item/stack/tile/carpet{ + amount = 20 + }, +/obj/structure/machinery/light/small{ + dir = 8 }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_a_p) +"tjj" = ( +/turf/open/floor/almayer/orange/northeast, /area/almayer/engineering/upper_engineering/port) "tjl" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/almayer/green/north, /area/almayer/squads/req) "tjn" = ( -/turf/open/floor/almayer{ - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side, /area/almayer/medical/medical_science) "tjw" = ( /obj/structure/machinery/cm_vending/clothing/vehicle_crew{ @@ -68840,19 +55993,54 @@ }, /turf/open/floor/almayer, /area/almayer/living/tankerbunks) -"tki" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/structure/disposalpipe/segment{ - dir = 4 +"tjH" = ( +/obj/structure/surface/table/reinforced/almayer_B, +/obj/item/device/radio/headset/almayer/mt, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_a_p) +"tjO" = ( +/obj/structure/janitorialcart, +/obj/item/tool/mop, +/turf/open/floor/almayer/orange, +/area/almayer/maint/hull/lower/l_m_s) +"tkd" = ( +/obj/structure/sign/safety/escapepod{ + pixel_y = -32 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_hallway) +/obj/structure/sign/safety/south{ + pixel_x = 15; + pixel_y = -32 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/upper/midship_hallway) +"tkg" = ( +/obj/structure/sign/safety/distribution_pipes{ + pixel_x = 8; + pixel_y = 32 + }, +/turf/open/floor/almayer/green/north, +/area/almayer/hallways/lower/port_midship_hallway) +"tkn" = ( +/obj/structure/surface/table/almayer, +/obj/item/storage/toolbox/mechanical, +/obj/item/storage/toolbox/mechanical, +/obj/structure/machinery/light{ + dir = 8 + }, +/turf/open/floor/almayer/cargo, +/area/almayer/engineering/lower/engine_core) "tkq" = ( /obj/structure/pipes/vents/scrubber{ dir = 4 }, /turf/open/floor/almayer, /area/almayer/shipboard/weapon_room) +"tkF" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/turf/open/floor/almayer/blue/north, +/area/almayer/hallways/upper/midship_hallway) "tkN" = ( /obj/structure/machinery/cm_vending/sorted/cargo_ammo/squad{ req_access = null; @@ -68860,158 +56048,130 @@ req_one_access_txt = "15;16;21"; vend_x_offset = 0 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/alpha_bravo_shared) -"tkV" = ( -/obj/structure/bed/chair, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "redcorner" +"tkR" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" }, -/area/almayer/shipboard/brig/processing) +/turf/open/floor/almayer/redfull, +/area/almayer/hallways/upper/starboard) "tld" = ( /obj/structure/machinery/prop/almayer/computer{ dir = 8; pixel_x = 16 }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/living/pilotbunks) -"tly" = ( -/obj/structure/platform{ - dir = 8 +"tlk" = ( +/obj/structure/window/framed/almayer, +/obj/structure/machinery/door/firedoor/border_only/almayer{ + layer = 1.9 + }, +/turf/open/floor/plating, +/area/almayer/shipboard/brig/general_equipment) +"tln" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 5 + }, +/obj/structure/bed/chair/comfy/charlie{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer/plate, +/area/almayer/living/briefing) +"tlp" = ( +/obj/structure/machinery/door/airlock/almayer/generic{ + dir = 1 + }, +/obj/structure/machinery/door/poddoor/almayer/open{ + id = "courtyard_cells"; + name = "\improper Courtyard Lockdown Shutter" + }, +/obj/structure/machinery/door/poddoor/almayer/locked{ + id = "Cell 4"; + name = "\improper Courtyard Divider" }, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 }, -/area/almayer/hull/upper_hull/u_a_p) +/turf/open/floor/almayer/test_floor4, +/area/almayer/shipboard/brig/cells) "tlA" = ( /obj/effect/decal/medical_decals{ icon_state = "docdecal2" }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/medical/lower_medical_lobby) -"tlI" = ( -/obj/effect/decal/cleanable/cobweb, -/obj/structure/surface/table/almayer, -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_f_p) +"tlM" = ( +/turf/open/floor/almayer/orangecorner, +/area/almayer/maint/upper/u_a_s) "tmg" = ( /obj/structure/surface/table/almayer, /obj/item/reagent_container/hypospray, /obj/item/reagent_container/hypospray, /obj/item/reagent_container/hypospray, /obj/item/reagent_container/hypospray, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/north, /area/almayer/medical/lower_medical_lobby) -"tmy" = ( -/obj/structure/surface/table/almayer, -/obj/item/handcuffs{ - pixel_y = 12 - }, -/obj/item/handcuffs{ - pixel_y = 6 - }, -/obj/item/handcuffs, -/obj/item/weapon/baton{ - pixel_x = -12 - }, -/turf/open/floor/almayer{ - icon_state = "red" - }, -/area/almayer/shipboard/brig/main_office) -"tmA" = ( -/obj/structure/machinery/light{ - dir = 8 - }, -/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ - pixel_y = 25 - }, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "orange" - }, -/area/almayer/engineering/lower_engineering) +"tml" = ( +/obj/structure/largecrate/supply/supplies/mre, +/turf/open/floor/plating, +/area/almayer/maint/lower/constr) "tmB" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 1 }, /turf/open/floor/almayer, /area/almayer/living/briefing) -"tmI" = ( -/obj/structure/machinery/light, -/obj/effect/decal/warning_stripes{ - icon_state = "SW-out"; - pixel_x = -1 +"tmE" = ( +/obj/structure/machinery/light{ + dir = 1 }, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "red" +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_midship_hallway) +"tmH" = ( +/obj/structure/pipes/vents/pump, +/obj/structure/machinery/camera/autoname/almayer{ + dir = 4; + name = "ship-grade camera"; + pixel_y = 6 }, -/area/almayer/lifeboat_pumps/south1) -"tmK" = ( -/obj/structure/machinery/door/airlock/almayer/maint{ - dir = 1; - req_one_access = null; - req_one_access_txt = "91;92" +/turf/open/floor/almayer/redcorner/north, +/area/almayer/shipboard/brig/execution) +"tmQ" = ( +/obj/structure/machinery/light/small{ + dir = 1 }, -/turf/open/floor/almayer/no_build{ - icon_state = "test_floor4" +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/stern) +"tmV" = ( +/obj/structure/machinery/camera/autoname/almayer/containment/ares{ + dir = 8; + autoname = 0; + c_tag = "AI - SecVault" }, +/turf/open/floor/almayer/aicore/no_build, /area/almayer/command/airoom) +"tmX" = ( +/obj/effect/landmark/start/professor, +/obj/effect/landmark/late_join/cmo, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/living/offices) "tnb" = ( /obj/structure/bed/chair/comfy/black, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, +/turf/open/floor/almayer/redfull, /area/almayer/shipboard/port_missiles) -"tng" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "SW-out" - }, -/obj/structure/machinery/camera/autoname/almayer{ - dir = 4; - name = "ship-grade camera" - }, -/turf/open/floor/almayer{ - icon_state = "plate" +"tne" = ( +/obj/structure/machinery/door_control/cl/quarter/backdoor{ + pixel_x = -25; + pixel_y = 23 }, -/area/almayer/hull/upper_hull/u_f_s) +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_m_p) "tni" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/north, /area/almayer/medical/operating_room_three) -"tnl" = ( -/obj/structure/sign/safety/escapepod{ - pixel_y = 32 - }, -/obj/structure/sign/safety/north{ - pixel_x = 15; - pixel_y = 32 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/aft_hallway) -"tnm" = ( -/obj/structure/machinery/atm{ - name = "Weyland-Yutani Automatic Teller Machine"; - pixel_y = 30 - }, -/obj/structure/surface/table/almayer, -/obj/item/spacecash/c1000/counterfeit, -/obj/item/storage/box/drinkingglasses, -/obj/item/storage/fancy/cigar, -/turf/open/floor/almayer, -/area/almayer/command/corporateliason) "tnY" = ( /obj/structure/machinery/cryopod{ pixel_y = 6 @@ -69019,18 +56179,35 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/squads/alpha) +"tob" = ( +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_m_s) +"tof" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/upper/aft_hallway) +"tos" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer/plate, +/area/almayer/engineering/lower/engine_core) +"tot" = ( +/obj/structure/largecrate/random/barrel/blue, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/s_stern) "tou" = ( /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "green" - }, +/turf/open/floor/almayer/green/east, /area/almayer/living/offices) "tov" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -69038,24 +56215,69 @@ }, /turf/open/floor/wood/ship, /area/almayer/shipboard/brig/cells) -"toE" = ( -/obj/structure/machinery/light/small{ - dir = 1 +"toD" = ( +/obj/structure/largecrate/supply/generator, +/obj/item/reagent_container/food/drinks/bottle/whiskey{ + layer = 2.9; + pixel_x = -10; + pixel_y = 3 }, -/obj/structure/closet/emcloset, -/turf/open/floor/almayer{ - icon_state = "plate" +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_a_p) +"toO" = ( +/obj/structure/surface/table/almayer, +/obj/item/book/manual/engineering_construction, +/obj/item/folder/black_random, +/obj/structure/sign/safety/high_rad{ + pixel_x = 32; + pixel_y = -8 + }, +/obj/structure/sign/safety/hazard{ + pixel_x = 32; + pixel_y = 7 + }, +/obj/structure/sign/safety/terminal{ + pixel_x = 8; + pixel_y = -32 + }, +/turf/open/floor/almayer/plate, +/area/almayer/engineering/lower/workshop) +"toQ" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 + }, +/obj/structure/machinery/door/poddoor/shutters/almayer{ + id = "laddernorthwest"; + name = "\improper North West Ladders Shutters" + }, +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/effect/step_trigger/clone_cleaner, +/turf/open/floor/almayer/test_floor4, +/area/almayer/hallways/lower/starboard_fore_hallway) +"toS" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/machinery/door/window/eastright{ + dir = 8; + req_access_txt = "8" + }, +/obj/structure/machinery/door/window/eastleft{ + req_access_txt = "8" }, -/area/almayer/hull/upper_hull/u_m_p) +/obj/item/desk_bell{ + pixel_x = -6; + pixel_y = 10; + anchored = 1 + }, +/obj/structure/machinery/door/firedoor/border_only/almayer, +/turf/open/floor/almayer/sterile_green, +/area/almayer/medical/lower_medical_medbay) "tpa" = ( /obj/structure/machinery/portable_atmospherics/hydroponics, /obj/structure/window/reinforced{ dir = 8; health = 80 }, -/turf/open/floor/almayer{ - icon_state = "test_floor5" - }, +/turf/open/floor/almayer/test_floor5, /area/almayer/medical/hydroponics) "tpd" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ @@ -69063,101 +56285,91 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/engineering/upper_engineering/port) -"tpg" = ( -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12 - }, -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12; - pixel_y = 12 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_s) "tpn" = ( /turf/closed/wall/almayer, /area/almayer/shipboard/brig/evidence_storage) -"tps" = ( -/obj/structure/machinery/door/airlock/almayer/maint{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +"tpB" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/area/almayer/hull/lower_hull/l_m_s) -"tpt" = ( -/obj/structure/machinery/sentry_holder/almayer, -/turf/open/floor/almayer{ - icon_state = "mono" +/obj/structure/machinery/door/poddoor/almayer{ + dir = 4; + id = "hangarentrancesouth"; + name = "\improper South Hangar Podlock" }, -/area/almayer/lifeboat_pumps/north2) +/turf/open/floor/almayer/test_floor4, +/area/almayer/hallways/lower/port_fore_hallway) "tpD" = ( /obj/effect/decal/warning_stripes{ icon_state = "E"; pixel_x = 1 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/east, /area/almayer/living/bridgebunks) -"tpK" = ( -/obj/structure/surface/table/reinforced/almayer_B, -/obj/effect/spawner/random/toolbox, -/obj/item/stack/sheet/metal{ - desc = "Semiotic Standard denoting the nearby presence of coffee: the lifeblood of any starship crew."; - icon = 'icons/obj/structures/props/semiotic_standard.dmi'; - icon_state = "coffee"; - name = "coffee semiotic"; - pixel_x = 20; - pixel_y = 12; - singular_name = "coffee semiotic" - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_p) -"tqe" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "sterile_green_side" +"tpG" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 }, -/area/almayer/shipboard/brig/surgery) -"tqg" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "SE-out" +/turf/open/floor/almayer/test_floor4, +/area/almayer/hallways/lower/port_umbilical) +"tpR" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/starboard_midship_hallway) +"tqf" = ( +/obj/structure/sign/safety/ladder{ + pixel_x = -16 }, /obj/effect/decal/warning_stripes{ - icon_state = "SW-out" + icon_state = "N"; + pixel_y = 2 }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/vehiclehangar) +"tqu" = ( +/obj/effect/step_trigger/clone_cleaner, /obj/structure/machinery/door_control{ - id = "DeployWorkR"; - name = "Workshop Shutters"; - pixel_x = -7; - pixel_y = -26; - req_one_access_txt = "3;22;2;19;7" + id = "ARES ReceptStairs1"; + name = "ARES Reception Shutters"; + pixel_y = -24; + req_one_access_txt = "91;92" }, -/obj/structure/surface/rack, -/obj/item/rappel_harness{ - pixel_y = 8 +/turf/open/floor/almayer/aicore/no_build, +/area/almayer/command/airoom) +"tqE" = ( +/obj/structure/machinery/light{ + dir = 8 }, -/obj/item/rappel_harness, -/obj/item/rappel_harness{ - pixel_y = -6 +/obj/structure/reagent_dispensers/fueltank/custom, +/turf/open/floor/almayer/plating/northeast, +/area/almayer/engineering/lower/engine_core) +"tqO" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" }, -/obj/structure/sign/safety/bulkhead_door{ - pixel_x = 15; - pixel_y = -32 +/obj/structure/sign/safety/stairs{ + pixel_x = -15 + }, +/turf/open/floor/almayer/red/southeast, +/area/almayer/hallways/upper/port) +"tqQ" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 }, -/turf/open/floor/almayer{ - icon_state = "silverfull" +/obj/structure/pipes/vents/pump{ + dir = 1 }, -/area/almayer/hallways/repair_bay) -"tqk" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 +/turf/open/floor/almayer/plating/northeast, +/area/almayer/hallways/lower/vehiclehangar) +"tqV" = ( +/obj/structure/surface/table/almayer, +/obj/item/storage/toolbox/electrical{ + pixel_y = 9 }, +/obj/item/storage/toolbox/mechanical/green, /obj/structure/prop/invuln/overhead_pipe{ pixel_x = 12 }, @@ -69165,63 +56377,37 @@ pixel_x = 12; pixel_y = 12 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_p) -"tqB" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "NE-out"; - pixel_y = 1 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, -/area/almayer/command/lifeboat) -"tqI" = ( -/obj/structure/machinery/door/window/westright, -/obj/structure/machinery/shower{ - dir = 8; - layer = 3.10; - plane = -4 - }, -/obj/item/tool/soap{ - pixel_x = 2; - pixel_y = 7 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/living/commandbunks) -"tqV" = ( -/obj/structure/extinguisher_cabinet{ - pixel_y = 26 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_m_p) +"tra" = ( +/obj/structure/machinery/door/airlock/almayer/maint{ + access_modified = 1; + dir = 2; + req_one_access = null; + req_one_access_txt = "19;34;30" }, -/area/almayer/shipboard/brig/general_equipment) +/turf/open/floor/almayer/test_floor4, +/area/almayer/maint/hull/upper/u_m_p) "trb" = ( /obj/structure/window/framed/almayer/hull, /turf/open/floor/plating, /area/almayer/lifeboat_pumps/south1) +"trh" = ( +/turf/open/floor/almayer/orangecorner/west, +/area/almayer/engineering/lower) +"tru" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer/blue, +/area/almayer/hallways/upper/midship_hallway) +"trx" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/disposalpipe/segment, +/turf/open/floor/almayer/mono, +/area/almayer/hallways/upper/midship_hallway) "trB" = ( -/turf/open/floor/almayer{ - dir = 10; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/southwest, /area/almayer/engineering/upper_engineering/starboard) -"trD" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/sign/safety/water{ - pixel_x = 8; - pixel_y = 32 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_p) "trF" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -69230,7 +56416,6 @@ icon_state = "W"; pixel_x = -1 }, -/obj/structure/surface/table/almayer, /obj/item/storage/firstaid/o2{ pixel_x = -6; pixel_y = 6 @@ -69247,20 +56432,32 @@ pixel_x = 8; pixel_y = -2 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_corner" - }, +/obj/structure/surface/table/almayer, +/turf/open/floor/almayer/sterile_green_corner/west, /area/almayer/medical/medical_science) -"trW" = ( -/obj/item/stack/tile/carpet{ - amount = 20 +"trU" = ( +/obj/structure/surface/table/almayer, +/obj/item/tool/pen/blue/clicky{ + pixel_x = 2; + pixel_y = 2 }, -/obj/structure/surface/rack, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/item/tool/pen/red/clicky{ + pixel_x = -1; + pixel_y = 1 + }, +/obj/item/tool/pen/clicky{ + pixel_x = 1; + pixel_y = -1 + }, +/obj/item/paper_bin/wy{ + pixel_x = -5; + pixel_y = 5 + }, +/obj/structure/machinery/light{ + dir = 8 }, -/area/almayer/hull/upper_hull/u_a_p) +/turf/open/floor/wood/ship, +/area/almayer/command/corporateliaison) "tsa" = ( /obj/structure/surface/table/almayer, /obj/item/clothing/suit/chef/classic, @@ -69268,6 +56465,12 @@ /obj/item/clothing/suit/chef/classic, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/grunt_rnr) +"tsn" = ( +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/upper/midship_hallway) +"tsr" = ( +/turf/closed/wall/almayer/reinforced, +/area/almayer/maint/upper/mess) "tst" = ( /obj/structure/machinery/cryopod/right, /obj/effect/decal/warning_stripes{ @@ -69278,9 +56481,7 @@ icon_state = "N"; pixel_y = 1 }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/engineering/upper_engineering/port) "tsy" = ( /obj/structure/filingcabinet{ @@ -69289,9 +56490,7 @@ /obj/structure/filingcabinet{ pixel_x = -8 }, -/turf/open/floor/almayer{ - icon_state = "bluefull" - }, +/turf/open/floor/almayer/bluefull, /area/almayer/command/cichallway) "tsC" = ( /obj/item/storage/box/bodybags, @@ -69303,20 +56502,12 @@ icon_state = "poster8"; pixel_y = 32 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_corner" - }, +/turf/open/floor/almayer/sterile_green_corner/north, /area/almayer/medical/upper_medical) -"tsH" = ( -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 1 - }, -/obj/structure/disposalpipe/junction{ - dir = 8 - }, -/turf/open/floor/wood/ship, -/area/almayer/command/corporateliason) +"tsE" = ( +/obj/structure/largecrate/random/barrel/blue, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/p_bow) "tsM" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -69326,10 +56517,7 @@ dir = 2; icon_state = "pipe-c" }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/north, /area/almayer/medical/medical_science) "tsX" = ( /turf/closed/wall/almayer/reinforced, @@ -69338,10 +56526,7 @@ /obj/structure/sign/safety/bathunisex{ pixel_x = 32 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/east, /area/almayer/engineering/upper_engineering/port) "tte" = ( /obj/structure/pipes/vents/pump/no_boom{ @@ -69349,17 +56534,14 @@ }, /turf/open/floor/plating, /area/almayer/powered/agent) -"ttM" = ( -/obj/item/device/radio/intercom{ - freerange = 1; - name = "General Listening Channel"; - pixel_y = 28 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "green" - }, -/area/almayer/hallways/port_hallway) +"ttB" = ( +/obj/structure/largecrate/random/case/double, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/p_bow) +"ttD" = ( +/obj/structure/largecrate/random/barrel/green, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_m_p) "ttS" = ( /obj/structure/stairs/perspective{ icon_state = "p_stair_sn_full_cap" @@ -69369,66 +56551,130 @@ }, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/south2) +"ttX" = ( +/obj/structure/surface/table/almayer, +/obj/item/storage/firstaid/regular{ + pixel_x = 8; + pixel_y = -2 + }, +/obj/item/storage/box/drinkingglasses{ + pixel_x = -7 + }, +/obj/item/reagent_container/spray/cleaner{ + pixel_x = -10; + pixel_y = 14 + }, +/obj/item/storage/xeno_tag_case/full{ + pixel_y = 8 + }, +/turf/open/floor/almayer/plate, +/area/almayer/command/corporateliaison) "tuf" = ( /obj/structure/platform_decoration{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/almayer/red/north, /area/almayer/lifeboat_pumps/south1) +"tuk" = ( +/obj/structure/machinery/computer/crew, +/turf/open/floor/almayer/plate, +/area/almayer/shipboard/brig/general_equipment) +"tul" = ( +/obj/structure/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/obj/structure/closet/secure_closet/brig/prison_uni, +/turf/open/floor/almayer/red/west, +/area/almayer/shipboard/brig/perma) "tuo" = ( /obj/structure/machinery/portable_atmospherics/hydroponics, /obj/structure/sign/safety/hvac_old{ pixel_x = 8; pixel_y = 32 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/almayer/green/north, /area/almayer/living/grunt_rnr) -"tuA" = ( -/turf/closed/wall/almayer/outer, -/area/almayer/shipboard/port_missiles) -"tuN" = ( -/turf/open/floor/almayer{ - icon_state = "orange" +"tup" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 5 + }, +/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ + pixel_y = -30 + }, +/turf/open/floor/almayer/green, +/area/almayer/hallways/lower/starboard_midship_hallway) +"tuA" = ( +/turf/closed/wall/almayer/outer, +/area/almayer/shipboard/port_missiles) +"tuC" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 }, +/turf/open/floor/almayer/plate, +/area/almayer/hallways/lower/port_fore_hallway) +"tuJ" = ( +/obj/item/reagent_container/glass/bucket{ + pixel_x = 4; + pixel_y = 9 + }, +/obj/item/tool/shovel/spade{ + pixel_x = -3; + pixel_y = -3 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_a_s) +"tuN" = ( +/turf/open/floor/almayer/orange, /area/almayer/hallways/hangar) +"tuX" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer, +/area/almayer/hallways/upper/fore_hallway) "tuZ" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "redcorner" - }, +/turf/open/floor/almayer/redcorner/west, /area/almayer/shipboard/weapon_room) +"tvl" = ( +/obj/structure/sign/safety/distribution_pipes{ + pixel_x = 8; + pixel_y = 32 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_midship_hallway) +"tvt" = ( +/obj/structure/window/framed/almayer/hull, +/turf/open/floor/plating, +/area/almayer/maint/hull/upper/u_f_s) "tvw" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/lifeboat_pumps/south1) "tvA" = ( -/obj/structure/machinery/sleep_console{ - dir = 8 +/obj/structure/sign/safety/water{ + pixel_x = 8; + pixel_y = -32 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_side" +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_a_s) +"tvJ" = ( +/obj/structure/machinery/disposal, +/obj/structure/disposalpipe/trunk{ + dir = 8 }, -/area/almayer/shipboard/brig/surgery) +/turf/open/floor/almayer/red/southeast, +/area/almayer/shipboard/brig/starboard_hallway) "tvM" = ( /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/almayer/green/north, /area/almayer/living/grunt_rnr) "tvN" = ( /obj/structure/machinery/camera/autoname/almayer{ @@ -69441,52 +56687,53 @@ /obj/effect/decal/warning_stripes{ icon_state = "SE-out" }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/delta) "tvQ" = ( /obj/structure/largecrate/random/case/double, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/almayer/red/northeast, /area/almayer/lifeboat_pumps/south1) -"twq" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/tool/hand_labeler{ - pixel_x = 7 - }, -/obj/item/paper_bin/uscm{ - pixel_y = 5 - }, -/obj/item/tool/pen, -/obj/structure/machinery/computer/working_joe{ - dir = 8; - pixel_x = 17 +"twp" = ( +/obj/structure/ladder{ + height = 1; + id = "AftStarboardMaint" }, -/turf/open/floor/almayer{ - icon_state = "sterile_green_side" +/obj/structure/sign/safety/ladder{ + pixel_x = 8; + pixel_y = 32 }, -/area/almayer/medical/lower_medical_medbay) +/turf/open/floor/plating/almayer, +/area/almayer/maint/hull/lower/l_a_s) "twB" = ( /obj/structure/prop/almayer/name_stencil{ icon_state = "almayer2" }, -/turf/open/floor/almayer_hull{ - icon_state = "outerhull_dir" - }, +/turf/open/floor/almayer_hull/outerhull_dir, /area/space) -"twT" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 +"twI" = ( +/obj/structure/machinery/cm_vending/clothing/dress{ + density = 0; + pixel_y = 16 }, -/obj/structure/sign/safety/cryo{ - pixel_x = 8; - pixel_y = -26 +/obj/structure/machinery/light{ + dir = 8 }, -/turf/open/floor/almayer, -/area/almayer/hallways/port_hallway) +/obj/structure/machinery/door_control{ + id = "bot_uniforms"; + name = "Uniform Vendor Lockdown"; + pixel_x = -24; + pixel_y = 18; + req_access_txt = "31" + }, +/turf/open/floor/almayer/cargo, +/area/almayer/command/cic) +"twQ" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_f_p) "twW" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 8 @@ -69501,26 +56748,37 @@ }, /turf/open/floor/almayer, /area/almayer/living/port_emb) -"txe" = ( +"txf" = ( /obj/structure/disposalpipe/segment{ - dir = 4 + dir = 2; + icon_state = "pipe-c" }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/upper/u_a_s) +"txp" = ( +/obj/structure/largecrate/random/barrel/white, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_m_s) +"txy" = ( /obj/structure/pipes/standard/simple/hidden/supply{ - dir = 6 + dir = 1 }, +/obj/structure/disposalpipe/segment, +/obj/effect/decal/cleanable/dirt, /turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/starboard_hallway) -"txi" = ( -/obj/structure/machinery/light{ - dir = 8 - }, -/obj/effect/projector{ - name = "Almayer_Up3"; - vector_x = -1; - vector_y = 102 +/area/almayer/maint/hull/upper/u_f_s) +"txE" = ( +/obj/effect/step_trigger/clone_cleaner, +/obj/structure/sign/safety/stairs{ + pixel_x = 8; + pixel_y = 32 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_hallway) +/turf/open/floor/plating/almayer/no_build, +/area/almayer/hallways/lower/starboard_midship_hallway) +"txH" = ( +/obj/structure/bed/stool, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_m_s) "txO" = ( /obj/structure/machinery/landinglight/ds1{ dir = 4 @@ -69531,10 +56789,17 @@ /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) +"txS" = ( +/obj/structure/surface/table/almayer, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/structure/machinery/camera/autoname/almayer{ + name = "ship-grade camera" + }, +/turf/open/floor/almayer/cargo, +/area/almayer/engineering/lower/engine_core) "tyb" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -69544,105 +56809,73 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/port_emb) -"tyz" = ( -/obj/item/book/manual/medical_diagnostics_manual, -/obj/structure/surface/rack, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "red" +"tyC" = ( +/obj/structure/sign/safety/medical{ + pixel_x = 8; + pixel_y = -32 }, -/area/almayer/hull/upper_hull/u_a_p) +/turf/open/floor/almayer/green, +/area/almayer/hallways/upper/fore_hallway) "tyD" = ( -/turf/open/floor/almayer/research/containment/corner_var1{ - dir = 4 - }, +/turf/open/floor/almayer/research/containment/corner_var1/east, /area/almayer/medical/containment/cell) "tyK" = ( /obj/effect/spawner/random/toolbox, /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "cargo_arrow" - }, +/turf/open/floor/almayer/cargo_arrow/north, /area/almayer/shipboard/starboard_missiles) -"tzf" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/structure/disposalpipe/segment, -/turf/open/floor/almayer, -/area/almayer/hallways/starboard_hallway) -"tzi" = ( -/obj/structure/flora/pottedplant{ - desc = "Life is underwhelming, especially when you're a potted plant."; - icon_state = "pottedplant_22"; - name = "Jerry"; - pixel_y = 8 - }, -/obj/item/clothing/glasses/sunglasses/prescription{ - pixel_x = -3; - pixel_y = -3 - }, -/obj/structure/machinery/light/small{ - dir = 4 +"tzd" = ( +/obj/structure/window/framed/almayer, +/obj/structure/machinery/door/firedoor/border_only/almayer{ + layer = 1.9 }, -/turf/open/floor/almayer{ - icon_state = "plate" +/turf/open/floor/plating, +/area/almayer/shipboard/brig/processing) +"tzw" = ( +/obj/structure/machinery/light{ + dir = 1 }, -/area/almayer/hull/upper_hull/u_a_p) -"tzj" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_p) +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_fore_hallway) "tzx" = ( -/obj/structure/machinery/cm_vending/sorted/medical/blood, /obj/structure/machinery/light{ unacidable = 1; unslashable = 1 }, -/turf/open/floor/almayer{ - icon_state = "sterile_green_side" - }, +/obj/structure/machinery/cm_vending/sorted/medical/blood/bolted, +/turf/open/floor/almayer/sterile_green_side, /area/almayer/medical/lockerroom) -"tzz" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/engineering_workshop) +"tzF" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer/mono, +/area/almayer/hallways/upper/aft_hallway) "tzL" = ( /obj/structure/sign/safety/waterhazard{ pixel_x = 8; pixel_y = -32 }, /obj/structure/machinery/portable_atmospherics/hydroponics, -/turf/open/floor/almayer{ - icon_state = "test_floor5" - }, +/turf/open/floor/almayer/test_floor5, /area/almayer/medical/hydroponics) +"tzO" = ( +/obj/structure/machinery/cm_vending/sorted/medical/chemistry, +/obj/structure/medical_supply_link, +/turf/open/floor/almayer/dark_sterile, +/area/almayer/medical/chemistry) "tzP" = ( /obj/structure/barricade/handrail/medical, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/medical/lower_medical_lobby) -"tAh" = ( -/obj/structure/closet/emcloset, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/engineering/upper_engineering/port) -"tAi" = ( -/obj/structure/sign/safety/hvac_old{ - pixel_x = 8; - pixel_y = 32 - }, -/turf/open/floor/almayer{ - icon_state = "plate" +"tAb" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/disposalpipe/segment, +/obj/structure/sign/safety/restrictedarea{ + pixel_x = 32 }, -/area/almayer/hull/lower_hull/l_a_s) +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_fore_hallway) "tAq" = ( /obj/structure/surface/table/reinforced/black, /obj/item/clothing/mask/breath{ @@ -69653,21 +56886,33 @@ /obj/item/cell/crap{ pixel_x = 7 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/engineering/upper_engineering/port) -"tAJ" = ( -/obj/structure/closet/secure_closet/fridge/dry, -/turf/open/floor/almayer{ - icon_state = "plate" +"tAt" = ( +/obj/effect/step_trigger/clone_cleaner, +/obj/structure/machinery/door/poddoor/almayer/open{ + dir = 4; + id = "ARES StairsLock"; + name = "ARES Exterior Lockdown" }, -/area/almayer/living/grunt_rnr) +/obj/effect/step_trigger/ares_alert/access_control, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/structure/disposaloutlet{ + density = 0; + desc = "An outlet for the pneumatic delivery system."; + icon_state = "delivery_outlet"; + name = "returns outlet"; + pixel_y = 28; + range = 0; + pixel_x = -7 + }, +/turf/open/floor/almayer/no_build/test_floor4, +/area/almayer/command/airoom) "tAL" = ( /obj/structure/machinery/cryopod, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/living/pilotbunks) "tAN" = ( /obj/structure/disposalpipe/segment, @@ -69679,94 +56924,116 @@ icon_state = "E"; pixel_x = 1 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/east, /area/almayer/squads/bravo) -"tAR" = ( -/obj/effect/spawner/random/toolbox, -/obj/structure/largecrate/random/barrel/red, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_a_p) "tAU" = ( /obj/structure/machinery/cryopod{ pixel_y = 6 }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/medical/lower_medical_medbay) -"tAV" = ( -/obj/effect/decal/cleanable/dirt, +"tAW" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, /turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_m_s) +/area/almayer/hallways/lower/starboard_midship_hallway) "tBq" = ( /obj/item/tool/crowbar, /turf/open/floor/plating/plating_catwalk, /area/almayer/lifeboat_pumps/south1) -"tBz" = ( +"tBu" = ( +/obj/effect/decal/cleanable/blood/oil/streak, +/obj/structure/machinery/sentry_holder/almayer, +/turf/open/floor/almayer/mono, +/area/almayer/lifeboat_pumps/south1) +"tBP" = ( +/obj/structure/surface/table/almayer, +/obj/item/storage/fancy/cigarettes/lucky_strikes, +/obj/item/tool/lighter, +/obj/item/clothing/glasses/sunglasses/blindfold, +/obj/structure/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/almayer/plate, +/area/almayer/shipboard/brig/execution_storage) +"tBU" = ( +/obj/structure/platform, +/obj/structure/largecrate/random/case/double{ + layer = 2.98 + }, +/obj/structure/sign/safety/life_support{ + pixel_x = 32 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_a_s) +"tBY" = ( /obj/structure/machinery/power/apc/almayer{ dir = 1 }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/upper/mess) +"tCd" = ( +/obj/item/folder/red{ + desc = "A red folder. The previous contents are a mystery, though the number 28 has been written on the inside of each flap numerous times. Smells faintly of cough syrup."; + name = "folder: 28"; + pixel_x = -4; + pixel_y = 5 + }, +/obj/structure/surface/table/almayer, +/obj/item/toy/crayon{ + pixel_x = 9; + pixel_y = -2 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_m_p) +"tCx" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer, +/obj/structure/sign/safety/maint{ + pixel_x = 8; + pixel_y = 32 + }, /obj/effect/decal/warning_stripes{ - icon_state = "SW-out" + icon_state = "NW-out"; + pixel_y = 1 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_y = 1 }, -/area/almayer/hallways/vehiclehangar) -"tBF" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer, -/area/almayer/hallways/starboard_hallway) -"tBL" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/starboard_hallway) -"tBP" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 6 +/turf/open/floor/almayer/test_floor4, +/area/almayer/hallways/upper/port) +"tCC" = ( +/obj/structure/machinery/camera/autoname/almayer/containment/ares{ + dir = 1; + c_tag = "AI - Reception Interior"; + autoname = 0 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_s) -"tCb" = ( -/obj/structure/surface/rack, -/obj/item/device/radio{ - pixel_x = 5; - pixel_y = 4 +/turf/open/floor/almayer/aicore/no_build, +/area/almayer/command/airoom) +"tCH" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/obj/item/device/radio, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/area/almayer/hull/upper_hull/u_f_s) -"tCN" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" +/obj/structure/machinery/door/airlock/multi_tile/almayer/secdoor/glass/reinforced{ + closeOtherId = "brignorth"; + dir = 2; + name = "\improper Brig Armoury"; + req_access = null; + req_one_access_txt = "1;3" }, -/area/almayer/hallways/starboard_hallway) +/turf/open/floor/almayer/test_floor4, +/area/almayer/shipboard/brig/starboard_hallway) "tCT" = ( /obj/structure/bed/chair/comfy/blue{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/command/cic) -"tDx" = ( -/obj/item/tool/wet_sign, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_s) "tDZ" = ( /obj/structure/machinery/cryopod{ pixel_y = 6 @@ -69774,10 +57041,12 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/squads/bravo) +"tEd" = ( +/obj/structure/reagent_dispensers/acidtank, +/turf/open/floor/almayer/cargo, +/area/almayer/engineering/lower/workshop/hangar) "tEi" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -69789,17 +57058,26 @@ pixel_x = 27; req_one_access_txt = "4;28" }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/almayer/medical/upper_medical) +"tEu" = ( +/obj/structure/machinery/disposal, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_m_s) "tEB" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/command/combat_correspondent) +"tEC" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer/emeraldfull, +/area/almayer/living/briefing) "tEO" = ( /obj/effect/landmark/start/marine/medic/charlie, /obj/effect/landmark/late_join/charlie, @@ -69816,32 +57094,24 @@ name = "\improper ARES Core Shutters"; plane = -7 }, -/obj/structure/machinery/door/poddoor/almayer/blended/open{ - id = "ARES Emergency"; - name = "ARES Emergency Lockdown"; - open_layer = 1.9; - plane = -7 - }, -/turf/open/floor/almayer/no_build{ - icon_state = "test_floor4" - }, +/obj/structure/machinery/door/poddoor/almayer/blended/ai_lockdown, +/turf/open/floor/almayer/no_build/test_floor4, /area/almayer/command/airoom) -"tFv" = ( -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 8 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/shipboard/brig/general_equipment) +"tFJ" = ( +/obj/structure/largecrate/supply/supplies/mre, +/turf/open/floor/almayer/red/north, +/area/almayer/maint/upper/u_a_p) +"tFO" = ( +/obj/structure/largecrate/supply/supplies/flares, +/turf/open/floor/almayer/red/north, +/area/almayer/maint/upper/u_a_p) "tFS" = ( /obj/structure/machinery/computer/supplycomp, /obj/structure/sign/safety/terminal{ pixel_x = 8; pixel_y = 32 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/almayer/green/north, /area/almayer/squads/req) "tFW" = ( /obj/structure/pipes/standard/simple/hidden/supply, @@ -69849,9 +57119,7 @@ dir = 2 }, /obj/structure/disposalpipe/segment, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/lifeboat_pumps/south1) "tGd" = ( /obj/effect/decal/warning_stripes{ @@ -69861,70 +57129,62 @@ /obj/structure/flora/pottedplant{ icon_state = "pottedplant_20" }, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/northwest, /area/almayer/engineering/upper_engineering/port) -"tGf" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 9 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_s) -"tGg" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "redcorner" - }, -/area/almayer/shipboard/brig/main_office) "tGh" = ( /obj/structure/sign/nosmoking_2{ pixel_x = -28 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_corner" - }, +/turf/open/floor/almayer/sterile_green_corner/west, /area/almayer/medical/lower_medical_lobby) "tGi" = ( /obj/effect/spawner/random/tool, /turf/open/floor/plating/plating_catwalk, /area/almayer/lifeboat_pumps/south2) -"tGq" = ( -/obj/effect/projector{ - name = "Almayer_Up4"; - vector_x = -19; - vector_y = 104 +"tGj" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + pixel_y = 1 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_hallway) +/turf/open/floor/almayer/mono, +/area/almayer/lifeboat_pumps/north1) "tGG" = ( /obj/structure/bed/chair/comfy/alpha{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, +/turf/open/floor/almayer/redfull, /area/almayer/living/briefing) -"tGO" = ( -/obj/effect/projector{ - name = "Almayer_Up3"; - vector_x = -1; - vector_y = 102 +"tGH" = ( +/obj/structure/sign/safety/restrictedarea, +/obj/structure/sign/safety/security{ + pixel_x = 15 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_hallway) -"tHh" = ( -/obj/structure/sign/safety/ladder{ - pixel_x = 8; - pixel_y = -32 +/turf/closed/wall/almayer, +/area/almayer/shipboard/panic) +"tGS" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 + }, +/turf/open/floor/almayer/test_floor4, +/area/almayer/hallways/lower/starboard_aft_hallway) +"tGT" = ( +/obj/structure/machinery/light{ + dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "blue" +/obj/structure/sign/poster/art{ + pixel_y = 32 }, -/area/almayer/hallways/aft_hallway) +/obj/structure/machinery/photocopier/wyphotocopier, +/turf/open/floor/wood/ship, +/area/almayer/command/corporateliaison) +"tHk" = ( +/obj/structure/surface/rack, +/obj/effect/spawner/random/toolbox, +/obj/effect/spawner/random/toolbox, +/obj/effect/spawner/random/toolbox, +/obj/effect/spawner/random/tool, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_f_p) "tHr" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/status_display{ @@ -69934,52 +57194,48 @@ pixel_y = 11 }, /obj/item/poster, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/northwest, /area/almayer/shipboard/brig/cic_hallway) "tHu" = ( /obj/structure/closet/toolcloset, -/turf/open/floor/almayer{ - icon_state = "silverfull" - }, +/turf/open/floor/almayer/silverfull, /area/almayer/command/airoom) "tHv" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orangecorner" - }, +/turf/open/floor/almayer/orangecorner/west, /area/almayer/living/briefing) -"tHB" = ( -/obj/structure/surface/table/almayer, -/obj/structure/reagent_dispensers/peppertank{ - pixel_x = -30 - }, -/obj/structure/machinery/recharger{ - layer = 3.1; - pixel_y = 8 - }, -/turf/open/floor/almayer{ - icon_state = "plate" +"tHF" = ( +/obj/structure/machinery/light, +/turf/open/floor/almayer/plate, +/area/almayer/hallways/lower/starboard_aft_hallway) +"tHQ" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 }, -/area/almayer/shipboard/brig/main_office) +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer, +/area/almayer/engineering/lower/workshop/hangar) "tHS" = ( /obj/structure/window/framed/almayer, /turf/open/floor/plating, /area/almayer/shipboard/brig/cells) -"tHU" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/obj/structure/machinery/power/apc/almayer{ - dir = 8 +"tId" = ( +/obj/structure/machinery/recharge_station, +/turf/open/floor/almayer/aicore/no_build/ai_cargo, +/area/almayer/command/airoom) +"tIe" = ( +/obj/structure/machinery/camera/autoname/almayer{ + name = "ship-grade camera" }, -/obj/item/storage/briefcase{ - pixel_y = 15 +/turf/open/floor/almayer/orange/northeast, +/area/almayer/engineering/lower/engine_core) +"tIl" = ( +/obj/structure/pipes/vents/pump/on, +/obj/structure/machinery/light{ + dir = 4 }, -/turf/open/floor/wood/ship, -/area/almayer/living/commandbunks) +/turf/open/floor/almayer/plate, +/area/almayer/hallways/lower/port_aft_hallway) "tIp" = ( /obj/structure/machinery/door/airlock/almayer/generic{ name = "\improper Dorms" @@ -69991,10 +57247,18 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/living/port_emb) +"tIu" = ( +/obj/structure/bed/chair/office/dark{ + dir = 8 + }, +/turf/open/floor/almayer/aicore/glowing/no_build/ai_floor3, +/area/almayer/command/airoom) +"tIF" = ( +/obj/structure/largecrate/random/barrel/green, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_a_s) "tIK" = ( /obj/structure/desertdam/decals/road_edge{ icon_state = "road_edge_decal3"; @@ -70006,14 +57270,20 @@ }, /turf/open/floor/wood/ship, /area/almayer/living/basketball) +"tIN" = ( +/obj/structure/prop/invuln/overhead_pipe{ + dir = 4; + pixel_x = -14; + pixel_y = 13 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_a_s) "tIQ" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; pixel_y = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/alpha) "tIS" = ( /obj/effect/decal/warning_stripes{ @@ -70021,66 +57291,30 @@ }, /turf/open/floor/almayer, /area/almayer/hallways/hangar) -"tIU" = ( -/obj/structure/platform, -/obj/structure/prop/invuln/overhead_pipe{ - dir = 4; - pixel_x = -14; - pixel_y = 13 - }, -/obj/structure/prop/invuln/overhead_pipe{ - dir = 4; - pixel_x = 12; - pixel_y = 13 - }, -/turf/open/floor/almayer{ - icon_state = "plate" +"tIX" = ( +/obj/structure/surface/table/almayer, +/obj/item/storage/firstaid/adv{ + pixel_x = 6; + pixel_y = 6 }, -/area/almayer/hull/upper_hull/u_a_s) +/obj/item/storage/firstaid/regular, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_f_p) "tJi" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/paper_bin/uscm, /obj/item/tool/pen, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/bridgebunks) -"tJo" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ +"tJm" = ( +/turf/open/floor/almayer/green, +/area/almayer/hallways/upper/fore_hallway) +"tJq" = ( +/obj/structure/machinery/light/small{ dir = 1 }, -/obj/effect/decal/warning_stripes{ - icon_state = "NE-out"; - pixel_x = 2; - pixel_y = 2 - }, /turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_p) -"tJp" = ( -/obj/structure/surface/table/almayer, -/obj/item/tool/crowbar/red, -/obj/item/clipboard{ - pixel_x = 1; - pixel_y = 4 - }, -/obj/item/storage/box/handcuffs{ - pixel_x = 5; - pixel_y = 5 - }, -/obj/item/reagent_container/spray/cleaner, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/shipboard/brig/main_office) -"tJy" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "redcorner" - }, -/area/almayer/shipboard/brig/main_office) +/area/almayer/maint/hull/upper/u_m_s) "tJz" = ( /obj/structure/machinery/firealarm{ pixel_y = -28 @@ -70099,20 +57333,8 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "green" - }, +/turf/open/floor/almayer/green/east, /area/almayer/living/grunt_rnr) -"tKf" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer, -/obj/structure/machinery/light{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/command/lifeboat) "tKr" = ( /obj/structure/machinery/cryopod/right{ dir = 2 @@ -70120,10 +57342,33 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/living/bridgebunks) +"tLa" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + pixel_x = -2; + pixel_y = 1 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_x = 2; + pixel_y = 1 + }, +/obj/structure/machinery/door/airlock/almayer/security/glass/reinforced{ + dir = 2; + name = "\improper Armory" + }, +/obj/structure/machinery/door/poddoor/shutters/almayer{ + dir = 2; + id = "firearm_storage_armory"; + name = "\improper Armory Shutters" + }, +/turf/open/floor/almayer/test_floor4, +/area/almayer/shipboard/brig/armory) "tLc" = ( /obj/structure/surface/rack, /obj/item/storage/bag/plants{ @@ -70143,96 +57388,51 @@ /obj/structure/sign/safety/hazard{ pixel_y = 32 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/almayer/green/north, /area/almayer/living/grunt_rnr) -"tLy" = ( -/turf/open/floor/almayer{ - dir = 6; - icon_state = "orange" - }, -/area/almayer/engineering/engine_core) -"tLM" = ( -/obj/structure/sign/safety/storage{ - pixel_x = -17 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_a_s) +"tLZ" = ( +/turf/open/floor/almayer/green, +/area/almayer/hallways/lower/starboard_midship_hallway) "tMc" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 10 - }, -/obj/structure/bed/chair/comfy/alpha{ - dir = 8 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/living/briefing) -"tMf" = ( +/obj/structure/machinery/chem_master/industry_mixer, +/turf/open/floor/almayer/orange, +/area/almayer/engineering/lower/workshop/hangar) +"tMi" = ( +/obj/effect/step_trigger/clone_cleaner, /obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/obj/structure/sign/safety/stairs{ - pixel_x = -15 - }, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "red" - }, -/area/almayer/hallways/aft_hallway) -"tMu" = ( -/obj/structure/machinery/cm_vending/clothing/commanding_officer{ - pixel_y = 0 + icon_state = "SW-out" }, -/turf/open/floor/almayer{ - icon_state = "cargo" +/turf/open/floor/almayer/green/west, +/area/almayer/hallways/upper/fore_hallway) +"tMU" = ( +/obj/structure/sign/safety/hvac_old{ + pixel_x = 8; + pixel_y = -32 }, -/area/almayer/living/commandbunks) +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_m_p) "tMW" = ( /obj/effect/decal/warning_stripes{ icon_state = "NW-out"; pixel_y = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/briefing) -"tNj" = ( +"tNw" = ( /obj/structure/surface/table/almayer, -/obj/structure/machinery/computer/sentencing{ - dir = 4 - }, -/obj/structure/machinery/light{ - dir = 8 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" - }, -/area/almayer/shipboard/brig/perma) -"tNF" = ( -/obj/structure/window/framed/almayer, -/obj/structure/machinery/door/poddoor/shutters/almayer/open{ - dir = 4; - id = "CMP Office Shutters"; - name = "\improper Privacy Shutters" - }, -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 8 - }, -/turf/open/floor/plating, -/area/almayer/shipboard/brig/chief_mp_office) +/obj/item/storage/pouch/tools/full, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_m_p) +"tNB" = ( +/obj/structure/bed/sofa/south/grey/left, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_f_p) "tNP" = ( /obj/structure/sign/safety/debark_lounge{ pixel_x = 15; pixel_y = -32 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/engineering/upper_engineering/port) "tNR" = ( /obj/structure/machinery/firealarm{ @@ -70243,24 +57443,10 @@ }, /turf/open/floor/almayer, /area/almayer/squads/alpha) -"tNT" = ( -/obj/structure/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_s) -"tOd" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "SW-out"; - pixel_x = -1 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "NW-out" - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/aft_hallway) +"tNY" = ( +/obj/structure/largecrate/random/case/small, +/turf/open/floor/almayer/plate, +/area/almayer/maint/upper/u_a_s) "tOr" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -70270,24 +57456,39 @@ icon_state = "E"; pixel_x = 1 }, -/turf/open/floor/almayer{ - icon_state = "sterile_green_corner" - }, +/turf/open/floor/almayer/sterile_green_corner, /area/almayer/medical/hydroponics) +"tOu" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer/orange/east, +/area/almayer/engineering/lower/workshop/hangar) "tOC" = ( /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/engineering/laundry) -"tOW" = ( -/turf/open/floor/almayer{ - dir = 10; - icon_state = "green" +"tON" = ( +/obj/structure/sign/safety/distribution_pipes{ + pixel_x = 8; + pixel_y = -32 }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_fore_hallway) +"tOW" = ( +/turf/open/floor/almayer/green/southwest, /area/almayer/living/grunt_rnr) +"tPc" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 10 + }, +/obj/item/device/radio/intercom{ + freerange = 1; + name = "General Listening Channel"; + pixel_y = 28 + }, +/turf/open/floor/almayer, +/area/almayer/maint/hull/upper/u_f_p) "tPj" = ( /obj/structure/machinery/door/airlock/almayer/marine/requisitions{ access_modified = 1; @@ -70298,12 +57499,25 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/obj/structure/machinery/door/firedoor/border_only/almayer, -/obj/structure/machinery/door/firedoor/border_only/almayer, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +/obj/structure/disposalpipe/segment{ + dir = 8 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, +/turf/open/floor/almayer/test_floor4, /area/almayer/squads/req) +"tPm" = ( +/obj/structure/pipes/vents/scrubber{ + dir = 4 + }, +/obj/structure/surface/table/almayer, +/obj/structure/machinery/computer/emails{ + pixel_x = 2; + pixel_y = 5 + }, +/turf/open/floor/almayer/bluefull, +/area/almayer/living/briefing) "tPI" = ( /obj/structure/bed/chair{ dir = 4 @@ -70319,20 +57533,21 @@ }, /turf/open/floor/almayer, /area/almayer/living/briefing) -"tQo" = ( -/obj/structure/machinery/status_display{ - pixel_y = -30 - }, -/obj/structure/machinery/door/firedoor/border_only/almayer, -/obj/structure/machinery/door/poddoor/shutters/almayer{ - dir = 8; - id = "laddersoutheast"; - name = "\improper South East Ladders Shutters" +"tQe" = ( +/obj/structure/sign/safety/escapepod{ + pixel_x = 8; + pixel_y = 32 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +/turf/open/floor/almayer/greencorner/north, +/area/almayer/hallways/lower/starboard_midship_hallway) +"tQi" = ( +/obj/effect/landmark/start/warrant, +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 }, -/area/almayer/hallways/port_hallway) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/cryo) "tQL" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/machinery/light, @@ -70341,60 +57556,29 @@ "tQV" = ( /turf/closed/wall/almayer/outer, /area/almayer/lifeboat_pumps/south1) -"tRc" = ( -/obj/structure/bed/chair{ - dir = 8; - pixel_y = 3 - }, -/obj/item/bedsheet/yellow, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_s) -"tRA" = ( -/obj/structure/bed/chair, -/obj/structure/machinery/firealarm{ - pixel_y = 28 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "redcorner" - }, -/area/almayer/shipboard/brig/processing) +"tRs" = ( +/obj/structure/surface/table/almayer, +/obj/item/reagent_container/spray/cleaner, +/obj/item/frame/light_fixture, +/obj/item/frame/light_fixture, +/turf/open/floor/almayer/plate, +/area/almayer/engineering/lower/workshop) "tRD" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, /obj/structure/machinery/light, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "bluecorner" - }, +/turf/open/floor/almayer/bluecorner/west, /area/almayer/living/basketball) -"tRV" = ( -/obj/structure/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_s) -"tRX" = ( -/turf/closed/wall/almayer, -/area/almayer/hull/upper_hull/u_f_s) -"tSc" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "SW-out"; - layer = 2.5 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "NW-out" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +"tSm" = ( +/obj/structure/surface/table/almayer, +/obj/item/tool/weldingtool{ + pixel_x = 6; + pixel_y = -16 }, -/area/almayer/hallways/aft_hallway) +/obj/item/clothing/head/welding, +/turf/open/floor/plating, +/area/almayer/maint/lower/constr) "tSp" = ( /obj/item/device/radio/intercom{ freerange = 1; @@ -70405,87 +57589,41 @@ /obj/effect/decal/cleanable/blood, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/grunt_rnr) -"tSr" = ( -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12; - pixel_y = 12 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_a_p) -"tSv" = ( -/obj/structure/surface/table/almayer, -/obj/effect/decal/cleanable/dirt, -/obj/item/device/flashlight/lamp{ - pixel_x = 15 - }, -/obj/item/paper_bin/uscm{ - pixel_x = -7; - pixel_y = 6 - }, -/obj/item/tool/pen{ - pixel_x = -9; - pixel_y = 3 - }, -/obj/item/tool/pen{ - pixel_x = 4; - pixel_y = -4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/living/briefing) -"tSw" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, -/area/almayer/hallways/stern_hallway) "tSB" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orangecorner" - }, +/turf/open/floor/almayer/orangecorner/north, /area/almayer/living/briefing) "tSF" = ( +/obj/structure/bed/chair/comfy/delta, +/turf/open/floor/almayer/plate, +/area/almayer/living/briefing) +"tSX" = ( /obj/structure/surface/table/almayer, -/obj/item/device/camera{ - pixel_x = -8; - pixel_y = 12 - }, -/obj/item/paper_bin/uscm{ - pixel_x = 6; +/obj/item/weapon/gun/rifle/l42a{ pixel_y = 6 }, -/obj/item/tool/pen{ - pixel_x = 4; - pixel_y = -4 - }, -/obj/item/storage/box/donkpockets{ - pixel_x = -8; - pixel_y = -1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/item/weapon/gun/rifle/l42a, +/turf/open/floor/almayer/plate, +/area/almayer/maint/upper/u_m_s) +"tTk" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/area/almayer/command/combat_correspondent) +/turf/open/floor/carpet, +/area/almayer/living/commandbunks) "tTp" = ( /obj/structure/surface/table/almayer, /obj/item/reagent_container/food/condiment/hotsauce/sriracha{ pixel_x = 7; pixel_y = 7 }, -/turf/open/floor/almayer{ - icon_state = "emeraldfull" - }, +/turf/open/floor/almayer/emeraldfull, /area/almayer/living/briefing) "tTu" = ( -/turf/open/floor/almayer{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/almayer/red/southeast, /area/almayer/lifeboat_pumps/south1) +"tTC" = ( +/turf/open/floor/plating, +/area/almayer/maint/lower/constr) "tTD" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/storage/box/uscm_mre, @@ -70495,10 +57633,24 @@ pixel_x = 15; pixel_y = -32 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/almayer/living/captain_mess) +"tTG" = ( +/obj/structure/sign/safety/terminal{ + pixel_x = 8; + pixel_y = 32 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_a_s) +"tTO" = ( +/obj/structure/machinery/photocopier, +/turf/open/floor/almayer/red/southwest, +/area/almayer/shipboard/brig/starboard_hallway) +"tTZ" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/upper/fore_hallway) "tUh" = ( /obj/structure/disposalpipe/segment{ dir = 8; @@ -70515,10 +57667,24 @@ "tUx" = ( /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/brig/cells) -"tUI" = ( -/obj/item/tool/wet_sign, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_m_p) +"tUK" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer/red, +/area/almayer/shipboard/brig/starboard_hallway) +"tUN" = ( +/obj/structure/machinery/door/airlock/almayer/maint/reinforced{ + access_modified = 1; + dir = 1; + req_one_access = null; + req_one_access_txt = "35" + }, +/turf/open/floor/almayer/test_floor4, +/area/almayer/engineering/lower/workshop/hangar) "tUS" = ( /obj/item/toy/beach_ball/holoball, /obj/structure/holohoop{ @@ -70529,18 +57695,8 @@ pixel_x = -16; pixel_y = 8 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/port_emb) -"tVf" = ( -/obj/structure/sign/safety/restrictedarea{ - pixel_x = -17 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_s) "tVh" = ( /obj/structure/bed/chair/comfy{ dir = 8 @@ -70548,39 +57704,70 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "bluefull" - }, +/turf/open/floor/almayer/bluefull, /area/almayer/living/bridgebunks) +"tVn" = ( +/obj/structure/platform{ + dir = 1 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_a_p) "tVq" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; pixel_y = 1 }, -/turf/open/floor/almayer{ - icon_state = "cargo_arrow" - }, +/turf/open/floor/almayer/cargo_arrow, /area/almayer/squads/alpha) -"tVB" = ( -/obj/structure/closet/emcloset, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_p) -"tWg" = ( +"tVx" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "redcorner" - }, -/area/almayer/shipboard/brig/general_equipment) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_f_p) +"tVZ" = ( +/turf/open/floor/almayer/cargo_arrow, +/area/almayer/hallways/lower/repair_bay) +"tWd" = ( +/obj/structure/largecrate/random/case, +/turf/open/floor/plating, +/area/almayer/maint/lower/constr) "tWi" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 8 }, /turf/open/floor/plating/plating_catwalk, /area/almayer/engineering/upper_engineering/port) +"tWl" = ( +/obj/structure/machinery/door/airlock/almayer/engineering{ + name = "\improper Disposals" + }, +/obj/structure/disposalpipe/junction{ + dir = 8; + icon_state = "pipe-j2" + }, +/turf/open/floor/almayer/test_floor4, +/area/almayer/maint/hull/lower/l_a_p) +"tWp" = ( +/obj/structure/largecrate/random/case/double, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_a_p) +"tWF" = ( +/obj/structure/machinery/door/airlock/almayer/maint{ + req_one_access = null; + req_one_access_txt = "2;30;34" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/almayer/test_floor4, +/area/almayer/maint/upper/mess) +"tWL" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 5 + }, +/turf/open/floor/almayer/silver, +/area/almayer/hallways/lower/repair_bay) "tWY" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -70596,20 +57783,34 @@ req_one_access = null; req_one_access_txt = "1;5" }, -/obj/structure/machinery/door/firedoor/border_only/almayer, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/medical/upper_medical) +"tXa" = ( +/obj/item/storage/toolbox/mechanical{ + pixel_y = 13 + }, +/obj/structure/machinery/power/apc/almayer{ + dir = 1 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/upper/u_m_s) "tXb" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/bed/chair/comfy/charlie{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "emeraldfull" - }, +/turf/open/floor/almayer/emeraldfull, /area/almayer/living/briefing) +"tXc" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/processing) "tXi" = ( /obj/structure/machinery/conveyor_switch{ id = "gym_2"; @@ -70623,26 +57824,17 @@ /obj/item/storage/box/m94, /obj/item/storage/box/m94, /obj/item/stack/sheet/mineral/plastic/small_stack, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/squads/req) -"tXs" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/shipboard/brig/cryo) -"tXz" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W"; - pixel_x = -1 +"tXn" = ( +/obj/structure/machinery/power/apc/almayer{ + dir = 8 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/vehiclehangar) +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_a_s) +"tXo" = ( +/turf/open/floor/almayer/redcorner, +/area/almayer/hallways/lower/starboard_midship_hallway) "tXM" = ( /obj/structure/pipes/vents/pump{ dir = 8 @@ -70682,14 +57874,8 @@ layer = 3.5; pixel_y = 13 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/port_emb) -"tXW" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_a_s) "tYi" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -70697,16 +57883,15 @@ /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/medical/lower_medical_lobby) -"tYv" = ( -/obj/structure/closet/emcloset, -/turf/open/floor/almayer{ - icon_state = "cargo" +"tYr" = ( +/obj/structure/bed/chair{ + dir = 8; + pixel_y = 3 }, -/area/almayer/hull/upper_hull/u_f_p) +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_a_s) "tYw" = ( /obj/effect/decal/medical_decals{ icon_state = "triagedecalbottomleft"; @@ -70717,82 +57902,42 @@ name = "General Listening Channel"; pixel_x = 28 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/northeast, /area/almayer/medical/lower_medical_lobby) -"tYB" = ( -/obj/structure/closet/emcloset, -/turf/open/floor/almayer{ - icon_state = "plate" +"tYM" = ( +/obj/structure/pipes/vents/pump{ + dir = 4 }, -/area/almayer/hull/upper_hull/u_f_s) -"tYX" = ( -/turf/open/floor/almayer{ - icon_state = "test_floor4" +/turf/open/floor/wood/ship, +/area/almayer/living/commandbunks) +"tYV" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 9 }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_f_p) +"tYX" = ( +/turf/open/floor/almayer/test_floor4, /area/almayer/living/bridgebunks) "tZc" = ( /obj/structure/machinery/light/small, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/shipboard/port_point_defense) -"tZe" = ( -/obj/item/trash/USCMtray{ - pixel_x = -4; - pixel_y = 10 - }, -/obj/structure/surface/table/almayer, -/obj/item/tool/kitchen/utensil/pfork{ - pixel_x = 9; - pixel_y = 8 - }, -/obj/structure/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_m_s) -"tZm" = ( -/obj/structure/closet/crate/freezer{ - desc = "A freezer crate. There is a note attached, it reads: Do not open, property of Pvt. Mendoza." - }, -/obj/item/storage/beer_pack, -/obj/item/reagent_container/food/drinks/cans/beer, -/obj/item/reagent_container/food/drinks/cans/beer, -/obj/structure/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_s) -"tZF" = ( -/obj/structure/machinery/light/small{ - dir = 8 +"tZg" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer, +/obj/structure/sign/safety/maint{ + pixel_x = 8; + pixel_y = -32 }, /obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/hull/lower_hull/l_a_p) -"tZP" = ( -/obj/structure/surface/rack, -/obj/item/clothing/glasses/meson, -/obj/item/clothing/glasses/meson, -/obj/structure/machinery/light/small{ - dir = 1 + icon_state = "SW-out"; + layer = 2.5 }, -/turf/open/floor/almayer{ - icon_state = "cargo" +/obj/effect/decal/warning_stripes{ + icon_state = "SE-out" }, -/area/almayer/engineering/upper_engineering/port) +/turf/open/floor/almayer/test_floor4, +/area/almayer/hallways/upper/port) "tZZ" = ( /obj/structure/machinery/cryopod, /obj/effect/decal/warning_stripes{ @@ -70803,13 +57948,8 @@ icon_state = "E"; pixel_x = 1 }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/engineering/upper_engineering/port) -"uaa" = ( -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_m_p) "uac" = ( /obj/structure/machinery/light{ dir = 1 @@ -70818,15 +57958,16 @@ /obj/structure/surface/table/almayer, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/north1) +"uag" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/almayer/plate, +/area/almayer/maint/upper/mess) "uah" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 9 }, /obj/structure/machinery/medical_pod/sleeper, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/southeast, /area/almayer/medical/lower_medical_medbay) "ual" = ( /obj/structure/sink{ @@ -70840,26 +57981,26 @@ icon_state = "E"; pixel_x = 1 }, -/turf/open/floor/almayer/research/containment/corner_var1{ - dir = 4 - }, +/turf/open/floor/almayer/research/containment/corner_var1/east, /area/almayer/medical/containment/cell) "uay" = ( /obj/structure/machinery/iv_drip, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "sterile_green_corner" - }, +/turf/open/floor/almayer/sterile_green_corner/east, /area/almayer/medical/lower_medical_medbay) +"uaA" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer/test_floor4, +/area/almayer/maint/hull/upper/u_f_s) +"uaG" = ( +/turf/closed/wall/almayer, +/area/almayer/hallways/lower/starboard_umbilical) "uaI" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/processor{ pixel_x = -2; pixel_y = 6 }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/medical/medical_science) "uaU" = ( /obj/structure/surface/table/almayer, @@ -70877,40 +58018,43 @@ /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer, /area/almayer/command/computerlab) -"uaZ" = ( -/obj/structure/surface/table/almayer, -/obj/item/weapon/gun/rifle/m41a, -/turf/open/floor/almayer{ - icon_state = "plate" +"ubv" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" }, -/area/almayer/hull/upper_hull/u_m_s) -"ubd" = ( -/obj/structure/surface/rack, -/obj/item/frame/table, -/obj/item/frame/table, -/obj/item/frame/table, /turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_a_p) +/area/almayer/hallways/upper/fore_hallway) "ubA" = ( /obj/effect/decal/warning_stripes{ icon_state = "E"; pixel_x = 1 }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, +/turf/open/floor/almayer/aicore/no_build, /area/almayer/command/airoom) -"uck" = ( -/obj/structure/surface/rack, -/obj/item/stack/cable_coil, -/obj/item/attachable/flashlight/grip, -/obj/item/ammo_box/magazine/l42a{ - pixel_y = 14 +"ubI" = ( +/obj/structure/surface/table/almayer, +/obj/item/folder/black_random{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/tool/stamp{ + name = "Corporate Liaison's stamp"; + pixel_x = -8; + pixel_y = 6 + }, +/turf/open/floor/wood/ship, +/area/almayer/command/corporateliaison) +"ubQ" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/area/almayer/hull/upper_hull/u_m_s) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/starboard_aft_hallway) "ucp" = ( /obj/structure/window/framed/almayer, /turf/open/floor/plating, @@ -70921,6 +58065,14 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/lifeboat_pumps/south2) +"ucy" = ( +/obj/structure/prop/invuln/overhead_pipe{ + dir = 4; + pixel_x = -16; + pixel_y = 13 + }, +/turf/closed/wall/almayer/outer, +/area/almayer/maint/hull/lower/l_a_p) "ucz" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/structure/machinery/computer/overwatch/almayer{ @@ -70939,23 +58091,27 @@ pixel_x = -17; pixel_y = -8 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/command/cic) -"udb" = ( -/obj/structure/sign/safety/ammunition{ +"udf" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 6 + }, +/obj/structure/sign/safety/maint{ + pixel_x = 15; pixel_y = 32 }, -/obj/structure/closet/secure_closet/guncabinet/red/armory_m4a3_pistol, -/turf/open/floor/almayer{ - icon_state = "redfull" +/obj/structure/sign/safety/storage{ + pixel_y = 32 }, -/area/almayer/medical/upper_medical) -"udi" = ( -/turf/open/floor/almayer{ - icon_state = "red" +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + pixel_y = 3 }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_aft_hallway) +"udi" = ( +/turf/open/floor/almayer/red, /area/almayer/living/briefing) "udr" = ( /obj/structure/disposalpipe/segment{ @@ -70965,34 +58121,25 @@ /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/medical/lower_medical_lobby) +"udv" = ( +/obj/structure/machinery/light{ + dir = 8 + }, +/turf/open/floor/almayer/green/west, +/area/almayer/hallways/upper/fore_hallway) "udx" = ( /obj/structure/machinery/vending/snack, -/turf/open/floor/almayer{ - icon_state = "bluefull" - }, +/turf/open/floor/almayer/bluefull, /area/almayer/command/cichallway) -"udF" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "green" - }, -/area/almayer/hallways/starboard_hallway) "udG" = ( /obj/structure/disposalpipe/segment, /obj/effect/decal/warning_stripes{ icon_state = "N"; pixel_y = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/alpha) "udK" = ( /obj/structure/machinery/disposal, @@ -71000,23 +58147,22 @@ /obj/structure/sign/safety/coffee{ pixel_y = 32 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/north, /area/almayer/shipboard/brig/cic_hallway) -"udV" = ( -/obj/structure/machinery/firealarm{ - pixel_y = -28 +"udR" = ( +/obj/structure/bed/chair{ + dir = 4 }, -/obj/structure/bed/chair/comfy/delta{ - dir = 8 +/obj/structure/sign/safety/distribution_pipes{ + pixel_x = -19; + pixel_y = -6 }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/structure/sign/safety/bulkhead_door{ + pixel_x = -19; + pixel_y = 6 }, -/area/almayer/living/briefing) +/turf/open/floor/almayer/silver/west, +/area/almayer/shipboard/brig/cic_hallway) "udZ" = ( /obj/structure/pipes/vents/scrubber, /turf/open/floor/almayer, @@ -71029,42 +58175,32 @@ name = "\improper Exterior Airlock"; req_access = null }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/shipboard/port_point_defense) -"ueh" = ( -/obj/structure/surface/rack, -/obj/structure/ob_ammo/ob_fuel, -/obj/structure/ob_ammo/ob_fuel, -/obj/structure/ob_ammo/ob_fuel, -/obj/structure/ob_ammo/ob_fuel, -/obj/structure/sign/safety/fire_haz{ - pixel_x = 8; - pixel_y = 32 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_p) -"ueo" = ( -/obj/structure/machinery/door/airlock/almayer/security/glass{ - name = "Evidence Room" - }, -/obj/structure/machinery/door/firedoor/border_only/almayer, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/shipboard/brig/evidence_storage) -"ueD" = ( -/obj/structure/machinery/light, -/obj/structure/machinery/cm_vending/gear/commanding_officer{ - pixel_y = 0 +"uek" = ( +/obj/structure/surface/table/almayer, +/obj/effect/decal/cleanable/dirt, +/obj/item/prop/magazine/boots/n117{ + pixel_x = 2; + pixel_y = 5 }, -/turf/open/floor/almayer{ - icon_state = "cargo" +/turf/open/floor/almayer/bluefull, +/area/almayer/living/briefing) +"uew" = ( +/obj/structure/pipes/vents/pump{ + dir = 1 }, -/area/almayer/living/commandbunks) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_f_p) +"uey" = ( +/obj/structure/machinery/cm_vending/sorted/medical/bolted, +/obj/structure/medical_supply_link/green, +/turf/open/floor/almayer/sterile_green_side, +/area/almayer/medical/lockerroom) +"uez" = ( +/obj/structure/pipes/standard/manifold/hidden/supply, +/turf/open/floor/almayer, +/area/almayer/hallways/upper/aft_hallway) "ueG" = ( /obj/item/bedsheet/orange, /obj/structure/bed{ @@ -71084,19 +58220,18 @@ pixel_x = -1 }, /obj/structure/disposalpipe/segment, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/west, /area/almayer/medical/medical_science) +"ueY" = ( +/obj/structure/machinery/light, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/upper/u_a_s) "ueZ" = ( /obj/structure/machinery/door/firedoor/border_only/almayer, /obj/structure/machinery/door/airlock/multi_tile/almayer/marine/alpha{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/squads/alpha) "ufh" = ( /obj/structure/stairs/perspective{ @@ -71105,104 +58240,94 @@ }, /turf/open/floor/almayer, /area/almayer/living/briefing) -"ufp" = ( -/obj/structure/largecrate/random/case/double, -/obj/structure/sign/safety/bulkhead_door{ - pixel_x = 8; - pixel_y = -32 - }, -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_f_p) "ufx" = ( /obj/structure/machinery/camera/autoname/almayer{ dir = 4; name = "ship-grade camera" }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/west, /area/almayer/engineering/upper_engineering) "ufJ" = ( /obj/structure/machinery/cryopod/right{ pixel_y = 6 }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/squads/req) -"ufS" = ( -/obj/structure/sign/safety/terminal{ - pixel_x = 7; - pixel_y = 29 - }, -/obj/structure/filingcabinet, -/turf/open/floor/almayer{ - icon_state = "plate" +"ufL" = ( +/obj/structure/machinery/door/poddoor/shutters/almayer/uniform_vendors, +/turf/open/floor/almayer/test_floor4, +/area/almayer/command/cic) +"ugj" = ( +/turf/open/floor/almayer/orange/east, +/area/almayer/maint/hull/lower/l_m_s) +"ugo" = ( +/obj/item/tool/weldpack{ + pixel_y = 15 }, -/area/almayer/command/combat_correspondent) -"ugs" = ( /obj/structure/surface/table/almayer, -/obj/item/book/manual/marine_law{ - pixel_x = -3; - pixel_y = 1 - }, -/obj/structure/machinery/camera/autoname/almayer{ - dir = 4; - name = "ship-grade camera" - }, -/obj/structure/sign/safety/medical{ - pixel_x = -17; - pixel_y = 6 - }, -/obj/structure/sign/safety/restrictedarea{ - pixel_x = -17; - pixel_y = -9 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" - }, -/area/almayer/shipboard/brig/lobby) +/obj/item/clothing/head/welding, +/turf/open/floor/almayer/plate, +/area/almayer/maint/upper/u_m_s) "ugu" = ( /obj/structure/machinery/cm_vending/sorted/marine_food, /turf/open/floor/almayer, /area/almayer/living/briefing) -"ugJ" = ( -/obj/structure/largecrate/random/case/small, -/obj/structure/largecrate/random/mini/small_case{ - pixel_x = -1; - pixel_y = 9 +"ugw" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/area/almayer/engineering/upper_engineering/starboard) -"ugT" = ( -/turf/open/floor/almayer{ - icon_state = "red" +/turf/open/floor/almayer/redcorner, +/area/almayer/shipboard/brig/starboard_hallway) +"ugJ" = ( +/obj/structure/largecrate/random/case/small, +/obj/structure/largecrate/random/mini/small_case{ + pixel_x = -1; + pixel_y = 9 }, -/area/almayer/shipboard/brig/main_office) -"ugV" = ( -/obj/structure/surface/table/almayer, -/obj/item/tool/kitchen/tray, -/obj/item/reagent_container/food/drinks/bottle/whiskey, -/obj/item/toy/deck{ - pixel_x = -9 +/turf/open/floor/almayer/orange/north, +/area/almayer/engineering/upper_engineering/starboard) +"ugZ" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_a_s) +"uhh" = ( +/obj/structure/machinery/vending/cola{ + density = 0; + pixel_y = 18 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_s) +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_f_p) "uhl" = ( /obj/effect/decal/warning_stripes{ icon_state = "SE-out"; pixel_x = 2 }, -/turf/open/floor/almayer{ +/turf/open/floor/almayer/cargo_arrow/east, +/area/almayer/living/offices) +"uhq" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/machinery/door/poddoor/shutters/almayer/open{ dir = 4; - icon_state = "cargo_arrow" + id = "northcheckpoint"; + name = "\improper Checkpoint Shutters" }, -/area/almayer/living/offices) +/turf/open/floor/almayer/redfull, +/area/almayer/hallways/lower/starboard_midship_hallway) +"uhA" = ( +/turf/open/floor/almayer/test_floor4, +/area/almayer/shipboard/brig/starboard_hallway) +"uhE" = ( +/obj/structure/closet/secure_closet/guncabinet/red/mp_armory_m4ra_rifle, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/armory) "uhM" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 5 @@ -71213,39 +58338,25 @@ /obj/effect/decal/warning_stripes{ icon_state = "SW-out" }, -/turf/open/floor/almayer{ - icon_state = "cargo_arrow" - }, +/turf/open/floor/almayer/cargo_arrow, /area/almayer/living/offices) -"uia" = ( -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_a_s) "uig" = ( -/obj/structure/sign/safety/storage{ - pixel_x = 8; - pixel_y = -32 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_s) -"uim" = ( -/obj/structure/largecrate/random/secure, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/structure/largecrate/supply/floodlights, +/turf/open/floor/almayer/plate, +/area/almayer/maint/upper/u_m_p) +"uiC" = ( +/obj/structure/machinery/alarm/almayer{ + dir = 1 }, -/area/almayer/hull/lower_hull/l_m_p) +/turf/open/floor/almayer/orange/northwest, +/area/almayer/engineering/lower/engine_core) "uiG" = ( -/turf/open/floor/almayer{ - dir = 9; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/northwest, /area/almayer/engineering/upper_engineering/starboard) +"uiK" = ( +/obj/item/ammo_box/magazine/misc/mre, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/p_stern) "uiR" = ( /obj/structure/prop/invuln{ desc = "An inflated membrane. This one is puncture proof. Wow!"; @@ -71254,26 +58365,24 @@ name = "umbilical wall" }, /obj/structure/blocker/invisible_wall, -/turf/open/floor/almayer_hull{ - dir = 8; - icon_state = "outerhull_dir" - }, +/turf/open/floor/almayer_hull/outerhull_dir/west, /area/almayer/engineering/upper_engineering/starboard) "uiT" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/north, /area/almayer/hallways/hangar) "uiZ" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/comdoor/reinforced{ dir = 1; name = "\improper Combat Information Center" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/command/cichallway) +"ujn" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E" + }, +/turf/open/floor/almayer/aicore/no_build/ai_floor2, +/area/almayer/command/airoom) "ujz" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/supply, @@ -71281,68 +58390,27 @@ dir = 8; pixel_y = 3 }, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/southeast, /area/almayer/medical/lower_medical_lobby) -"ujA" = ( -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/turf/closed/wall/almayer, -/area/almayer/hull/lower_hull/l_m_p) "ujV" = ( /obj/structure/machinery/vending/dinnerware, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/grunt_rnr) -"ukh" = ( -/obj/structure/sign/safety/rewire{ - pixel_x = 8; - pixel_y = 32 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "blue" - }, -/area/almayer/hallways/aft_hallway) -"ukt" = ( -/obj/structure/machinery/light/small{ - dir = 1 - }, -/obj/structure/largecrate/random/barrel/green, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_f_p) -"uku" = ( -/obj/structure/window/framed/almayer/hull/hijack_bustable, -/turf/open/floor/plating, -/area/almayer/engineering/engineering_workshop/hangar) -"ukA" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - icon_state = "emeraldfull" - }, -/area/almayer/living/briefing) -"ukS" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/almayer, -/area/almayer/shipboard/brig/general_equipment) -"ukU" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 1 +"uky" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 }, /turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_p) +/area/almayer/hallways/lower/port_umbilical) +"ukC" = ( +/obj/effect/decal/cleanable/blood/drip, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_m_p) +"ukP" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/almayer/cargo, +/area/almayer/engineering/lower/engine_core) "ukV" = ( /obj/structure/machinery/cm_vending/sorted/uniform_supply/squad_prep, /obj/structure/machinery/light{ @@ -71350,115 +58418,95 @@ }, /turf/open/floor/almayer, /area/almayer/squads/charlie_delta_shared) -"ula" = ( -/obj/structure/machinery/door/airlock/almayer/security/glass{ - name = "Evidence Room" - }, -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 8 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/shipboard/brig/evidence_storage) "uli" = ( /turf/open/floor/grass, /area/almayer/living/starboard_garden) +"ulo" = ( +/obj/structure/toilet{ + dir = 8; + layer = 2.9; + pixel_y = 8 + }, +/obj/structure/window{ + layer = 2.95; + pixel_y = -2 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/living/commandbunks) +"ulp" = ( +/obj/structure/platform, +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/turf/open/floor/almayer/plating/northeast, +/area/almayer/engineering/lower/engine_core) "uly" = ( /obj/structure/bed/stool, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "plating_striped" - }, +/turf/open/floor/almayer/plating_striped/east, /area/almayer/squads/req) +"ulH" = ( +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 8 + }, +/obj/structure/disposalpipe/junction{ + dir = 2; + icon_state = "pipe-j2" + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/port_aft_hallway) "ulZ" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "cargo_arrow" - }, +/turf/open/floor/almayer/cargo_arrow, /area/almayer/living/offices) "umh" = ( /obj/structure/platform_decoration{ dir = 8 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/almayer/red/north, /area/almayer/lifeboat_pumps/south2) +"umk" = ( +/obj/structure/machinery/light/small{ + dir = 1 + }, +/obj/structure/surface/rack, +/obj/effect/spawner/random/tool, +/obj/effect/spawner/random/tool, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_f_p) "umm" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/light/small, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/almayer/powered/agent) -"umv" = ( -/obj/structure/machinery/door/airlock/almayer/maint{ - access_modified = 1; - dir = 8; - req_one_access = list(2,34,30) - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hull/lower_hull/l_m_s) "umy" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/northeast, /area/almayer/engineering/upper_engineering/starboard) -"umC" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "mono" - }, -/area/almayer/medical/upper_medical) -"umR" = ( -/obj/structure/machinery/power/apc/almayer/hardened{ - cell_type = /obj/item/cell/hyper; - dir = 1 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "NW-out"; - pixel_y = 1 - }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, -/area/almayer/lifeboat_pumps/north2) +"umI" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer, +/turf/open/floor/almayer/test_floor4, +/area/almayer/hallways/upper/aft_hallway) "umS" = ( /obj/structure/bed/chair/comfy{ dir = 8 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/almayer/blue/east, /area/almayer/living/pilotbunks) -"umT" = ( -/obj/structure/machinery/door/airlock/almayer/security/glass{ - name = "Brig" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hull/lower_hull/l_f_p) -"umY" = ( +"umW" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, /obj/effect/decal/warning_stripes{ - icon_state = "NW-out"; - pixel_x = -1; - pixel_y = 2 + icon_state = "SW-out" }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_s) +/obj/structure/machinery/vending/cigarette/free{ + pixel_y = 16 + }, +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/cells) "unh" = ( /obj/structure/surface/table/almayer, /obj/item/storage/firstaid/o2, @@ -71467,9 +58515,7 @@ dir = 1; pixel_y = -28 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/shipboard/port_point_defense) "uns" = ( /obj/structure/machinery/portable_atmospherics/hydroponics, @@ -71477,17 +58523,19 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "green" - }, +/turf/open/floor/almayer/green/northwest, /area/almayer/shipboard/brig/cells) -"unJ" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 6 +"unx" = ( +/obj/structure/pipes/standard/simple/visible{ + dir = 4 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_s) +/turf/open/floor/almayer/orange, +/area/almayer/engineering/lower) +"unQ" = ( +/obj/structure/surface/table/reinforced/almayer_B, +/obj/effect/spawner/random/tool, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_a_p) "unT" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/tool/crowbar, @@ -71495,63 +58543,28 @@ pixel_y = -7 }, /obj/item/storage/bible, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/pilotbunks) -"unU" = ( -/obj/structure/machinery/light{ - dir = 4 - }, -/obj/structure/machinery/cm_vending/sorted/medical, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_side" - }, -/area/almayer/medical/lower_medical_medbay) -"uoh" = ( -/obj/structure/window/reinforced{ - dir = 4; - pixel_x = -2; - pixel_y = 4 - }, -/obj/structure/window/reinforced{ - dir = 8; - layer = 3.3; - pixel_y = 4 - }, -/obj/structure/bed{ - can_buckle = 0 - }, -/obj/structure/bed{ - buckling_y = 13; - layer = 3.5; - pixel_y = 13 - }, -/obj/item/bedsheet/yellow{ - layer = 3.2 - }, -/obj/item/bedsheet/yellow{ - pixel_y = 13 - }, -/obj/structure/sign/safety/bathunisex{ - pixel_x = -16; - pixel_y = 8 +"unZ" = ( +/obj/structure/platform{ + dir = 1 }, -/obj/item/toy/plush/barricade, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/effect/decal/warning_stripes{ + icon_state = "W" }, -/area/almayer/living/port_emb) +/turf/open/floor/almayer/plating/northeast, +/area/almayer/engineering/lower/engine_core) "uoi" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" }, /obj/structure/machinery/power/apc/almayer, -/turf/open/floor/almayer{ - icon_state = "sterile_green" - }, +/turf/open/floor/almayer/sterile_green, /area/almayer/medical/containment) +"uoj" = ( +/obj/item/tool/pen, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_a_s) "uoA" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 5 @@ -71563,54 +58576,24 @@ dir = 1; pixel_y = -28 }, -/turf/open/floor/almayer{ - icon_state = "silver" - }, +/turf/open/floor/almayer/silver, /area/almayer/command/computerlab) -"uoS" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/machinery/light/small{ - dir = 4 +"uoO" = ( +/obj/structure/sign/safety/water{ + pixel_x = 8; + pixel_y = 32 }, /turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_m_s) -"uoY" = ( -/obj/structure/surface/table/almayer, -/obj/item/paper_bin/uscm{ - pixel_y = 7 - }, -/obj/item/tool/pen, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/shipboard/brig/main_office) -"upe" = ( -/obj/structure/machinery/cm_vending/sorted/tech/electronics_storage, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/engineering/engine_core) -"upt" = ( -/obj/structure/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_p) +/area/almayer/maint/hull/lower/p_bow) "upM" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/medical/upper_medical) "upO" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor/almayer{ - icon_state = "cargo_arrow" - }, +/turf/open/floor/almayer/cargo_arrow, /area/almayer/living/offices) "upR" = ( /obj/structure/machinery/light{ @@ -71620,18 +58603,19 @@ pixel_x = 7; pixel_y = 25 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/north, /area/almayer/engineering/upper_engineering/port) -"uqa" = ( -/obj/structure/surface/rack, -/obj/effect/spawner/random/toolbox, -/turf/open/floor/almayer{ - icon_state = "plate" +"upS" = ( +/obj/structure/largecrate/random/case/double, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_m_p) +"upW" = ( +/obj/structure/sign/safety/intercom{ + pixel_x = 8; + pixel_y = 32 }, -/area/almayer/hull/upper_hull/u_f_p) +/turf/open/floor/almayer, +/area/almayer/hallways/upper/midship_hallway) "uqd" = ( /obj/structure/surface/table/almayer, /obj/effect/decal/warning_stripes{ @@ -71658,98 +58642,104 @@ pixel_x = 5; pixel_y = 2 }, -/turf/open/floor/almayer{ - icon_state = "sterile_green" - }, +/turf/open/floor/almayer/sterile_green, /area/almayer/medical/containment) +"uqg" = ( +/obj/structure/machinery/camera/autoname/almayer{ + dir = 1; + name = "ship-grade camera" + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/p_bow) +"uqh" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 1 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/engineering/lower/engine_core) "uqo" = ( /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/brig/armory) +"uqs" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/secure_closet/guncabinet, +/obj/item/weapon/gun/rifle/m41a{ + pixel_y = 6 + }, +/obj/item/weapon/gun/rifle/m41a, +/turf/open/floor/almayer/plate, +/area/almayer/maint/upper/u_m_s) "uqA" = ( /obj/structure/machinery/firealarm{ dir = 8; pixel_x = -24 }, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/southwest, /area/almayer/squads/bravo) -"uqH" = ( -/obj/structure/machinery/light/small, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_p) "uqI" = ( /obj/structure/machinery/light{ pixel_x = 16 }, /turf/open/floor/almayer, /area/almayer/command/lifeboat) +"urk" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/turf/open/floor/almayer/orangecorner/west, +/area/almayer/hallways/lower/starboard_umbilical) +"ury" = ( +/obj/structure/bed/chair{ + dir = 8 + }, +/obj/effect/decal/cleanable/blood, +/obj/structure/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_f_p) "urM" = ( /obj/structure/machinery/light{ dir = 8 }, /obj/structure/machinery/vending/cigarette, -/turf/open/floor/almayer{ - icon_state = "orangefull" - }, +/turf/open/floor/almayer/orangefull, /area/almayer/engineering/upper_engineering) "urN" = ( /obj/effect/landmark/start/marine/leader/charlie, /obj/effect/landmark/late_join/charlie, /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/charlie) -"ush" = ( -/obj/structure/surface/table/almayer, -/obj/structure/machinery/computer/cameras/almayer_network{ - dir = 8 - }, -/obj/structure/machinery/light{ - dir = 4 - }, -/turf/open/floor/almayer{ - allow_construction = 0 - }, -/area/almayer/shipboard/brig/chief_mp_office) -"usi" = ( -/obj/structure/largecrate/random/case/double, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_m_p) "usm" = ( /obj/structure/machinery/light, /obj/structure/sign/safety/waterhazard{ pixel_x = 8; pixel_y = -32 }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/lifeboat_pumps/south1) -"uso" = ( -/obj/structure/largecrate/random/case/double, -/obj/structure/machinery/light/small, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_m_p) -"usr" = ( -/obj/structure/surface/table/almayer, -/obj/structure/machinery/computer/secure_data{ - dir = 1 - }, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "red" +"usq" = ( +/obj/structure/sign/safety/ammunition{ + pixel_x = 15; + pixel_y = 32 }, -/area/almayer/shipboard/brig/perma) -"usw" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 +/obj/structure/sign/safety/hazard{ + pixel_y = 32 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/engineering/engine_core) +/obj/structure/closet/secure_closet/guncabinet/red/armory_m39_submachinegun, +/turf/open/floor/almayer/redfull, +/area/almayer/shipboard/panic) +"usu" = ( +/obj/structure/surface/rack, +/obj/item/roller, +/obj/item/roller, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer/plate, +/area/almayer/maint/upper/u_f_s) "usy" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -71757,9 +58747,7 @@ /obj/structure/pipes/standard/simple/hidden/supply/no_boom{ dir = 9 }, -/turf/open/floor/almayer{ - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side, /area/almayer/medical/medical_science) "usX" = ( /obj/structure/disposalpipe/segment{ @@ -71769,6 +58757,15 @@ /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/briefing) +"usZ" = ( +/obj/structure/pipes/unary/outlet_injector, +/obj/structure/largecrate/random/case/double, +/turf/open/floor/almayer/orange/west, +/area/almayer/engineering/lower) +"utn" = ( +/obj/structure/closet/secure_closet/engineering_welding, +/turf/open/floor/almayer/orange/north, +/area/almayer/engineering/lower) "uto" = ( /obj/structure/closet/crate, /obj/item/stack/sheet/plasteel{ @@ -71783,38 +58780,16 @@ dir = 1 }, /obj/structure/pipes/vents/pump/on, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/engineering/upper_engineering) -"utw" = ( -/obj/structure/surface/table/woodentable/fancy, -/obj/item/reagent_container/food/drinks/bottle/whiskey{ - pixel_x = -5; - pixel_y = 16 - }, -/obj/item/reagent_container/food/drinks/bottle/whiskey{ - desc = "A premium double-malt whiskey, this bottle was gifted to the Captain of the USS Almayer after the completion of the ship's space trials by the VADM. himself."; - pixel_x = 3; - pixel_y = 16 - }, -/obj/item/reagent_container/food/drinks/bottle/whiskey{ - pixel_x = 11; - pixel_y = 16 - }, -/obj/item/storage/box/drinkingglasses{ - pixel_x = -1; - pixel_y = 2 - }, -/turf/open/floor/wood/ship, -/area/almayer/living/commandbunks) +"utp" = ( +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/upper/u_f_s) "utK" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/auxiliary_officer_office) "utX" = ( /turf/closed/wall/almayer/research/containment/wall/connect_e2{ @@ -71822,26 +58797,8 @@ }, /area/almayer/medical/containment/cell) "utZ" = ( -/obj/structure/machinery/door/poddoor/almayer/open{ - dir = 4; - id = "Brig Lockdown Shutters"; - name = "\improper Brig Lockdown Shutter" - }, -/obj/structure/machinery/door/airlock/almayer/maint/reinforced, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hull/upper_hull/u_f_p) -"uue" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer, -/obj/structure/machinery/door/airlock/multi_tile/almayer/secdoor/glass/reinforced{ - dir = 1; - name = "\improper Cryogenics Bay" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/shipboard/brig/cryo) +/turf/open/floor/almayer/redcorner/east, +/area/almayer/shipboard/brig/processing) "uuj" = ( /obj/structure/surface/table/almayer, /obj/item/trash/USCMtray{ @@ -71853,17 +58810,22 @@ }, /turf/open/floor/almayer, /area/almayer/squads/bravo) -"uuq" = ( -/obj/structure/bed, -/obj/structure/machinery/flasher{ - id = "Cell 4"; - pixel_x = 24 +"uul" = ( +/obj/structure/pipes/standard/cap/hidden{ + dir = 4 }, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "red" +/obj/structure/sign/safety/life_support{ + pixel_x = 14; + pixel_y = -25 }, -/area/almayer/shipboard/brig/cells) +/turf/open/floor/almayer/mono, +/area/almayer/lifeboat_pumps/south2) +"uun" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 + }, +/turf/open/floor/almayer/test_floor4, +/area/almayer/shipboard/brig/starboard_hallway) "uuu" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -71892,10 +58854,21 @@ name = "\improper Evacuation Airlock SU-1"; req_access = null }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/powered) +"uuD" = ( +/obj/structure/machinery/door/airlock/almayer/engineering{ + dir = 2; + name = "\improper Atmospherics Wing" + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 1 + }, +/turf/open/floor/almayer/test_floor4, +/area/almayer/engineering/lower) +"uuI" = ( +/turf/open/floor/almayer/greencorner/east, +/area/almayer/hallways/lower/port_midship_hallway) "uuR" = ( /obj/structure/desertdam/decals/road_edge{ icon_state = "road_edge_decal8"; @@ -71919,29 +58892,31 @@ }, /turf/open/floor/wood/ship, /area/almayer/living/basketball) -"uvk" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "S" +"uuT" = ( +/obj/structure/pipes/vents/scrubber{ + dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "orange" +/turf/open/floor/almayer/plate, +/area/almayer/hallways/lower/port_aft_hallway) +"uvh" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/area/almayer/engineering/upper_engineering/starboard) -"uvs" = ( -/obj/structure/machinery/conveyor{ - id = "lower_garbage" +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/obj/structure/machinery/recycler, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "plating_striped" +/turf/open/floor/almayer/plate, +/area/almayer/hallways/lower/starboard_aft_hallway) +"uvp" = ( +/obj/structure/largecrate/supply, +/obj/structure/sign/safety/bulkhead_door{ + pixel_y = 32 }, -/area/almayer/hull/lower_hull/l_m_p) +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/s_bow) "uvt" = ( /obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/bridgebunks) "uvu" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -71950,43 +58925,8 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orangecorner" - }, +/turf/open/floor/almayer/orangecorner/west, /area/almayer/squads/bravo) -"uvy" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 2 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "W"; - pixel_x = -1; - pixel_y = 1 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/shipboard/brig/armory) -"uvG" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/obj/structure/sign/safety/press_area_ag{ - pixel_x = -17; - pixel_y = 7 - }, -/obj/structure/sign/safety/airlock{ - pixel_x = -17; - pixel_y = -8 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/hull/lower_hull/l_a_s) "uvP" = ( /obj/structure/machinery/light{ unacidable = 1; @@ -71998,24 +58938,35 @@ /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/almayer/research/containment/corner{ - dir = 4 - }, +/turf/open/floor/almayer/research/containment/corner/east, /area/almayer/medical/containment/cell) -"uvY" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" +"uvU" = ( +/obj/structure/surface/table/almayer, +/obj/effect/landmark/map_item{ + pixel_x = 5 + }, +/obj/item/facepaint/black{ + pixel_x = -10 }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer/plate, +/area/almayer/living/briefing) +"uvY" = ( +/turf/open/floor/almayer/red/west, /area/almayer/shipboard/brig/cells) "uws" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "cargo_arrow" - }, +/turf/open/floor/almayer/cargo_arrow, /area/almayer/shipboard/port_missiles) +"uwt" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/bed/chair/comfy/delta{ + dir = 8 + }, +/turf/open/floor/almayer/plate, +/area/almayer/living/briefing) "uwv" = ( /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/weapon_room/notunnel) @@ -72033,9 +58984,7 @@ icon_state = "N"; pixel_y = 1 }, -/turf/open/floor/almayer/research/containment/floor2{ - dir = 1 - }, +/turf/open/floor/almayer/research/containment/floor2/north, /area/almayer/medical/containment/cell) "uxa" = ( /obj/structure/bed/chair/wood/normal{ @@ -72045,6 +58994,16 @@ /obj/structure/pipes/standard/manifold/hidden/supply, /turf/open/floor/wood/ship, /area/almayer/shipboard/brig/cells) +"uxb" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/p_bow) +"uxl" = ( +/obj/item/cell/high/empty, +/obj/item/cell/high/empty, +/obj/structure/surface/rack, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/s_stern) "uxp" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -72057,9 +59016,7 @@ icon_state = "SE-out"; pixel_x = 1 }, -/turf/open/floor/almayer{ - icon_state = "emerald" - }, +/turf/open/floor/almayer/emerald, /area/almayer/squads/charlie) "uxC" = ( /obj/structure/machinery/light{ @@ -72090,18 +59047,20 @@ }, /turf/open/floor/wood/ship, /area/almayer/living/basketball) -"uxZ" = ( -/obj/structure/machinery/door_control{ - id = "laddersouthwest"; - name = "South West Ladders Shutters"; - pixel_x = 25; - req_one_access_txt = "2;3;12;19"; - throw_range = 15 +"uxX" = ( +/obj/structure/pipes/standard/manifold/hidden/supply, +/turf/open/floor/almayer, +/area/almayer/engineering/lower/workshop/hangar) +"uyd" = ( +/obj/structure/machinery/camera/autoname/almayer{ + dir = 4; + name = "ship-grade camera" }, -/turf/open/floor/almayer{ - icon_state = "greencorner" +/obj/effect/decal/warning_stripes{ + icon_state = "W" }, -/area/almayer/hallways/port_hallway) +/turf/open/floor/almayer/red/east, +/area/almayer/hallways/upper/starboard) "uys" = ( /turf/closed/wall/almayer/reinforced, /area/almayer/squads/req) @@ -72112,65 +59071,19 @@ "uyH" = ( /turf/closed/wall/almayer/research/containment/wall/divide, /area/almayer/medical/containment/cell) -"uyJ" = ( -/obj/structure/machinery/cm_vending/sorted/medical/chemistry, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, -/area/almayer/medical/chemistry) -"uzb" = ( -/obj/structure/surface/table/almayer, -/obj/item/device/flashlight/lamp{ - layer = 3.3; - pixel_x = 15 - }, -/obj/item/tool/screwdriver, -/obj/item/bananapeel{ - desc = "An experimental B8 Smart-Scope. Based on the technologies used in the Smart Gun by ARMAT, this sight has integrated IFF systems. It can only attach to the L42A Battle Rifle, M44 Combat Revolver, and M46C Pulse Rifle. This one appears to be covered in gun oil"; - icon = 'icons/obj/items/weapons/guns/attachments.dmi'; - icon_state = "iffbarrel"; - name = "Broken B8 Smart-Scope"; - pixel_x = -3; - pixel_y = 7 - }, -/turf/open/floor/almayer{ - icon_state = "orangefull" +"uyQ" = ( +/obj/structure/largecrate/random/case{ + layer = 2.98 }, -/area/almayer/living/briefing) -"uzg" = ( -/obj/structure/sign/safety/water{ - pixel_x = 8; - pixel_y = -32 +/turf/open/floor/almayer/plate, +/area/almayer/maint/upper/u_a_s) +"uzv" = ( +/obj/structure/bed/chair{ + dir = 8; + pixel_y = 3 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_a_s) -"uzm" = ( -/obj/structure/machinery/door/airlock/almayer/maint/reinforced, -/obj/structure/machinery/door/poddoor/almayer/open{ - dir = 4; - id = "Brig Lockdown Shutters"; - name = "\improper Brig Lockdown Shutter" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hull/upper_hull/u_f_s) -"uzx" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/structure/machinery/door/firedoor/border_only/almayer, -/obj/effect/decal/warning_stripes{ - icon_state = "NE-out"; - pixel_x = 1; - pixel_y = 1 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/shipboard/brig/cryo) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_a_s) "uzy" = ( /obj/item/reagent_container/glass/bucket, /obj/effect/decal/cleanable/blood/oil, @@ -72185,35 +59098,6 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/engineering/ce_room) -"uzU" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/surface/table/almayer, -/obj/item/ashtray/bronze{ - pixel_x = 5; - pixel_y = 3 - }, -/obj/item/trash/cigbutt/cigarbutt{ - pixel_x = 10; - pixel_y = 15 - }, -/obj/item/clothing/mask/cigarette{ - pixel_x = -5; - pixel_y = 3 - }, -/obj/item/clothing/mask/cigarette{ - pixel_x = -5; - pixel_y = 6 - }, -/obj/item/clothing/mask/cigarette{ - pixel_x = -5; - pixel_y = 9 - }, -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "redcorner" - }, -/area/almayer/shipboard/brig/main_office) "uAb" = ( /obj/effect/decal/warning_stripes{ icon_state = "SE-out" @@ -72223,20 +59107,15 @@ "uAj" = ( /obj/structure/bed/chair, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/almayer/red/north, /area/almayer/shipboard/port_missiles) -"uAs" = ( -/obj/structure/machinery/light/small{ - dir = 1 - }, -/obj/structure/largecrate/random/barrel/white, -/turf/open/floor/almayer{ - icon_state = "plate" +"uAl" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 }, -/area/almayer/hull/lower_hull/l_m_s) +/turf/open/floor/almayer/orange/north, +/area/almayer/engineering/upper_engineering/port) "uAC" = ( /obj/item/bedsheet/purple{ layer = 3.2 @@ -72262,18 +59141,37 @@ layer = 3.5; pixel_y = 13 }, -/turf/open/floor/almayer{ - icon_state = "emerald" - }, +/turf/open/floor/almayer/emerald, /area/almayer/living/port_emb) +"uAK" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 10 + }, +/turf/open/floor/almayer/orangecorner/east, +/area/almayer/engineering/lower/engine_core) +"uAL" = ( +/obj/structure/bed/chair/wood/normal, +/obj/item/bedsheet/brown, +/obj/item/toy/plush/farwa, +/turf/open/floor/wood/ship, +/area/almayer/shipboard/brig/cells) +"uAP" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/structure/sign/safety/autoopenclose{ + pixel_x = 7; + pixel_y = 32 + }, +/turf/open/floor/almayer/silver/north, +/area/almayer/hallways/upper/midship_hallway) "uAW" = ( /obj/structure/machinery/cryopod{ layer = 3.1; pixel_y = 13 }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/squads/bravo) "uBi" = ( /obj/effect/decal/cleanable/dirt, @@ -72284,27 +59182,48 @@ }, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/north1) -"uBn" = ( -/turf/open/floor/almayer{ - icon_state = "cargo_arrow" +"uBj" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + pixel_y = 3 }, -/area/almayer/hallways/vehiclehangar) -"uBw" = ( -/obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "green" +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_midship_hallway) +"uBx" = ( +/obj/structure/prop/invuln/overhead_pipe{ + dir = 4; + pixel_y = 13 }, -/area/almayer/hallways/starboard_hallway) -"uBz" = ( -/obj/structure/sign/safety/maint{ - pixel_x = 8; - pixel_y = 32 +/obj/structure/prop/invuln/overhead_pipe{ + dir = 4; + pixel_x = 12; + pixel_y = 13 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" +/obj/structure/prop/invuln/overhead_pipe{ + dir = 4; + pixel_y = 13 + }, +/obj/structure/prop/invuln/overhead_pipe{ + dir = 4; + pixel_x = -16; + pixel_y = 13 + }, +/obj/structure/sign/safety/water{ + pixel_x = -17 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_m_p) +"uBG" = ( +/obj/item/tool/weldingtool, +/obj/structure/surface/rack, +/turf/open/floor/almayer/red, +/area/almayer/maint/upper/u_a_p) +"uBM" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 5 }, -/area/almayer/hallways/stern_hallway) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/command/combat_correspondent) "uBN" = ( /obj/structure/disposalpipe/trunk{ dir = 8 @@ -72333,20 +59252,26 @@ pixel_x = 8; pixel_y = -32 }, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "green" - }, +/turf/open/floor/almayer/green/southeast, /area/almayer/living/grunt_rnr) -"uCl" = ( -/obj/structure/closet/secure_closet/surgical{ - pixel_x = -30 +"uCt" = ( +/obj/structure/sign/safety/stairs{ + pixel_x = -17; + pixel_y = 7 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "sterile_green_side" +/obj/structure/sign/safety/escapepod{ + pixel_x = -17; + pixel_y = -8 }, -/area/almayer/shipboard/brig/surgery) +/turf/open/floor/almayer/red/west, +/area/almayer/hallways/lower/starboard_midship_hallway) +"uCw" = ( +/obj/structure/closet/crate/freezer, +/obj/item/reagent_container/food/snacks/tomatomeat, +/obj/item/reagent_container/food/snacks/tomatomeat, +/obj/item/reagent_container/food/snacks/tomatomeat, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_m_p) "uCM" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/supply, @@ -72361,10 +59286,14 @@ /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 2 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/squads/charlie) +"uCR" = ( +/obj/item/tool/warning_cone{ + pixel_y = 13 + }, +/turf/open/floor/plating, +/area/almayer/maint/lower/constr) "uCW" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 8 @@ -72372,60 +59301,56 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plating/plating_catwalk, /area/almayer/command/cichallway) +"uDg" = ( +/turf/closed/wall/almayer/outer, +/area/almayer/maint/hull/upper/s_bow) "uDn" = ( /obj/structure/ladder{ height = 1; id = "bridge2" }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/shipboard/navigation) -"uDp" = ( -/obj/structure/closet/secure_closet/brig, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" - }, -/area/almayer/shipboard/brig/perma) "uDA" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 9 }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/medical/lockerroom) -"uDB" = ( -/obj/structure/sign/safety/hvac_old{ - pixel_x = 8; - pixel_y = 32 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_s) "uDW" = ( /obj/structure/machinery/cm_vending/clothing/tl/delta{ density = 0; pixel_x = 32 }, -/turf/open/floor/almayer{ - icon_state = "blue" - }, +/turf/open/floor/almayer/blue, /area/almayer/squads/delta) -"uEc" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/engineering/engine_core) -"uEv" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 +"uEO" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 3 }, /turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_p) +/area/almayer/hallways/lower/port_aft_hallway) +"uES" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/obj/structure/platform{ + dir = 8 + }, +/obj/structure/machinery/recharge_station{ + layer = 2.9 + }, +/obj/structure/sign/safety/high_voltage{ + pixel_x = 15; + pixel_y = 32 + }, +/obj/structure/sign/safety/hazard{ + pixel_y = 32 + }, +/turf/open/floor/almayer/silver/north, +/area/almayer/hallways/lower/repair_bay) "uFd" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -72435,10 +59360,12 @@ icon_state = "E"; pixel_x = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/offices) +"uFg" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/engineering/lower) "uFo" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/door/window/eastright{ @@ -72448,48 +59375,28 @@ /obj/structure/machinery/door/window/eastleft{ req_access_txt = "8" }, -/turf/open/floor/almayer{ - icon_state = "sterile_green" - }, +/obj/structure/machinery/door/firedoor/border_only/almayer, +/turf/open/floor/almayer/sterile_green, /area/almayer/medical/lockerroom) "uFp" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" +/obj/structure/closet/secure_closet/engineering_electrical, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/s_bow) +"uFq" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 4 }, -/area/almayer/shipboard/brig/general_equipment) -"uFt" = ( -/obj/structure/largecrate/random/case/double, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/structure/machinery/light{ + dir = 4 }, -/area/almayer/hull/lower_hull/l_m_p) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/lobby) "uFH" = ( /obj/structure/surface/table/almayer, /obj/effect/landmark/map_item, /turf/open/floor/almayer, /area/almayer/living/briefing) -"uFL" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/repair_bay) -"uFP" = ( -/obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/port_hallway) -"uGa" = ( -/obj/structure/closet/emcloset, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/lifeboat_pumps/south2) "uGc" = ( /obj/structure/machinery/suit_storage_unit/compression_suit/uscm, /obj/structure/sign/safety/hazard{ @@ -72503,58 +59410,40 @@ pixel_x = 32 }, /obj/structure/machinery/light/small, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/engineering/upper_engineering/port) -"uGo" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "NE-out"; - pixel_x = 1; - pixel_y = 1 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "SE-out"; - pixel_x = 1 +"uGf" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ + pixel_y = 25 }, -/area/almayer/hallways/aft_hallway) -"uGt" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "SE-out" +/turf/open/floor/almayer/green/north, +/area/almayer/hallways/lower/port_midship_hallway) +"uGi" = ( +/obj/structure/machinery/suit_storage_unit/compression_suit/uscm, +/obj/structure/machinery/alarm/almayer{ + dir = 1 }, +/turf/open/floor/almayer/plate, +/area/almayer/hallways/lower/starboard_umbilical) +"uGN" = ( +/obj/structure/pipes/vents/pump, /turf/open/floor/almayer, -/area/almayer/hallways/aft_hallway) -"uGw" = ( -/obj/structure/surface/table/almayer, -/obj/item/reagent_container/food/drinks/cans/souto/diet/lime{ - pixel_x = 7; - pixel_y = 4 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_s) +/area/almayer/shipboard/brig/general_equipment) "uGQ" = ( /obj/structure/machinery/suit_storage_unit/compression_suit/uscm, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/engineering/upper_engineering/starboard) -"uId" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/obj/effect/step_trigger/clone_cleaner, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "green" +"uGU" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" }, -/area/almayer/hallways/aft_hallway) -"uIp" = ( +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_f_p) +"uHk" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/machinery/light{ dir = 4 @@ -72562,15 +59451,23 @@ /obj/structure/sign/safety/maint{ pixel_x = -17 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull) +/turf/open/floor/almayer/plate, +/area/almayer/maint/lower/cryo_cells) +"uHr" = ( +/turf/open/floor/almayer/red/west, +/area/almayer/lifeboat_pumps/south2) +"uHT" = ( +/turf/open/floor/almayer/plate, +/area/almayer/maint/lower/s_bow) "uIv" = ( -/turf/open/floor/almayer{ - icon_state = "orange" - }, +/turf/open/floor/almayer/orange, /area/almayer/engineering/upper_engineering/port) +"uIA" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SW-out" + }, +/turf/open/floor/almayer, +/area/almayer/engineering/lower/workshop/hangar) "uII" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -72581,61 +59478,36 @@ /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "red" - }, +/turf/open/floor/almayer/red, /area/almayer/squads/alpha) "uIT" = ( /obj/structure/machinery/door/firedoor/border_only/almayer, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/squads/alpha_bravo_shared) +"uJb" = ( +/obj/structure/machinery/suit_storage_unit/compression_suit/uscm, +/obj/structure/sign/safety/airlock{ + pixel_y = -32 + }, +/obj/structure/sign/safety/hazard{ + pixel_x = 15; + pixel_y = -32 + }, +/turf/open/floor/almayer/plate, +/area/almayer/hallways/lower/port_umbilical) "uJk" = ( /obj/structure/prop/almayer/name_stencil{ icon_state = "almayer4" }, -/turf/open/floor/almayer_hull{ - icon_state = "outerhull_dir" - }, +/turf/open/floor/almayer_hull/outerhull_dir, /area/space) -"uJl" = ( -/obj/structure/surface/table/almayer, -/obj/item/pizzabox/meat, -/obj/item/reagent_container/food/drinks/cans/souto/diet/peach{ - pixel_x = -4; - pixel_y = -3 - }, -/obj/item/reagent_container/food/drinks/cans/souto/diet/cherry{ +"uJM" = ( +/obj/structure/sign/safety/medical{ pixel_x = 8; - pixel_y = 6 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_s) -"uJo" = ( -/obj/structure/largecrate/random/barrel/blue, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_s) -"uJs" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 + pixel_y = -32 }, /turf/open/floor/almayer, -/area/almayer/shipboard/brig/main_office) -"uJB" = ( -/obj/structure/janitorialcart, -/obj/item/tool/mop, -/turf/open/floor/almayer{ - icon_state = "orange" - }, -/area/almayer/hull/lower_hull/l_m_s) +/area/almayer/hallways/lower/starboard_fore_hallway) "uJU" = ( /obj/structure/machinery/cryopod/right{ pixel_y = 6 @@ -72643,18 +59515,14 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/squads/alpha) "uKd" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/structure/machinery/computer/communications{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "bluefull" - }, +/turf/open/floor/almayer/bluefull, /area/almayer/command/cichallway) "uKe" = ( /obj/structure/machinery/conveyor{ @@ -72665,40 +59533,18 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/gym) -"uKk" = ( -/obj/structure/surface/table/almayer, -/obj/item/circuitboard/airlock, -/obj/item/circuitboard/airlock{ - pixel_x = 7; - pixel_y = 7 - }, -/obj/item/stack/cable_coil{ - pixel_x = -7; - pixel_y = 11 - }, -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_f_p) -"uKv" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/device/multitool{ - desc = "A large handheld tool used to override various machine functions. Primarily used to pulse Airlock and APC wires on a shortwave frequency. It contains a small data buffer as well. This one is comically oversized. Made in Texas."; - icon_state = "multitool_big"; - name = "\improper Oversized Security Access Tuner"; - pixel_y = 8 - }, -/turf/open/floor/almayer, -/area/almayer/squads/alpha_bravo_shared) -"uKA" = ( -/obj/effect/step_trigger/clone_cleaner, -/obj/structure/machinery/light{ +"uKl" = ( +/obj/effect/decal/cleanable/blood/oil, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_a_s) +"uKH" = ( +/obj/structure/disposalpipe/segment{ dir = 4 }, /turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/starboard_hallway) +/area/almayer/maint/hull/lower/l_f_p) "uKV" = ( /obj/structure/sign/safety/storage{ pixel_x = 32; @@ -72710,68 +59556,32 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/engineering/upper_engineering/starboard) -"uLe" = ( -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/living/briefing) "uLn" = ( /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer, /area/almayer/shipboard/starboard_point_defense) -"uLu" = ( -/obj/structure/machinery/status_display{ - pixel_y = 30 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/stern_hallway) -"uLv" = ( -/obj/structure/sign/safety/distribution_pipes{ - pixel_y = -32 - }, -/obj/structure/sign/safety/manualopenclose{ - pixel_x = 15; - pixel_y = -32 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/starboard_hallway) -"uLJ" = ( -/obj/structure/machinery/light{ - dir = 4; - invisibility = 101 - }, -/obj/structure/sign/safety/ammunition{ - pixel_x = 32; - pixel_y = -7 - }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/shipboard/brig/execution) -"uLN" = ( -/obj/structure/closet/secure_closet/engineering_welding, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, -/area/almayer/engineering/lower_engineering) -"uLW" = ( -/obj/item/tool/mop{ - pixel_x = -6; - pixel_y = 24 - }, -/obj/item/reagent_container/glass/bucket, -/turf/open/floor/almayer{ - icon_state = "plate" +"uLE" = ( +/obj/structure/machinery/cm_vending/sorted/medical/blood, +/turf/open/floor/almayer/sterile_green_side/north, +/area/almayer/shipboard/brig/medical) +"uLG" = ( +/obj/structure/closet/crate/freezer{ + desc = "A freezer crate. Someone has written 'open on christmas' in marker on the top." }, -/area/almayer/hull/upper_hull/u_m_s) +/obj/item/reagent_container/food/snacks/mre_pack/xmas2, +/obj/item/reagent_container/food/snacks/mre_pack/xmas1, +/obj/item/reagent_container/food/snacks/mre_pack/xmas3, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/s_stern) "uMc" = ( /obj/structure/window/framed/almayer/hull, /turf/open/floor/plating, /area/almayer/engineering/upper_engineering/starboard) +"uMf" = ( +/obj/structure/machinery/light/small, +/obj/structure/largecrate/random/secure, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/p_bow) "uMj" = ( /obj/structure/window/framed/almayer, /turf/open/floor/plating, @@ -72780,9 +59590,7 @@ /obj/structure/bed/chair/comfy/delta{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "bluefull" - }, +/turf/open/floor/almayer/bluefull, /area/almayer/living/briefing) "uMl" = ( /obj/effect/decal/warning_stripes{ @@ -72790,122 +59598,146 @@ pixel_x = 1; pixel_y = 1 }, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, +/turf/open/floor/almayer/redfull, /area/almayer/squads/alpha) "uMn" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "emerald" - }, +/turf/open/floor/almayer/emerald, /area/almayer/living/port_emb) -"uMS" = ( -/turf/open/floor/almayer{ - dir = 5; - icon_state = "blue" +"uMO" = ( +/obj/effect/projector{ + name = "Almayer_AresDown"; + vector_x = 96; + vector_y = -65 + }, +/obj/structure/platform{ + dir = 4 }, +/obj/structure/stairs{ + dir = 1; + icon_state = "ramptop" + }, +/obj/structure/machinery/door_control{ + id = "ARES StairsUpper"; + name = "ARES Core Access"; + pixel_x = 24; + req_one_access_txt = "90;91;92" + }, +/turf/open/floor/almayer/aicore/no_build, +/area/almayer/command/airoom) +"uMS" = ( +/turf/open/floor/almayer/blue/northeast, /area/almayer/squads/delta) -"uNe" = ( -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 8 +"uNf" = ( +/obj/structure/sign/safety/conference_room{ + pixel_y = 32 }, /turf/open/floor/almayer, -/area/almayer/shipboard/brig/perma) +/area/almayer/hallways/lower/starboard_fore_hallway) "uNg" = ( /obj/structure/machinery/cryopod, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/living/bridgebunks) -"uNl" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 6 +"uNp" = ( +/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ + pixel_y = -30 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "redcorner" +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_midship_hallway) +"uNq" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/machinery/light{ + dir = 4 }, -/area/almayer/shipboard/brig/chief_mp_office) +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/almayer/orange/east, +/area/almayer/engineering/lower/workshop/hangar) +"uNz" = ( +/obj/structure/largecrate/random/barrel/red, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_m_p) "uNB" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/briefing) -"uNF" = ( -/obj/effect/landmark/yautja_teleport, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_f_p) -"uNL" = ( -/turf/closed/wall/almayer, -/area/almayer/hull/lower_hull/l_f_s) "uNM" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "emeraldcorner" - }, +/turf/open/floor/almayer/emeraldcorner/west, /area/almayer/living/briefing) "uNN" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "blue" - }, +/turf/open/floor/almayer/blue, /area/almayer/living/basketball) +"uNQ" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/almayer/plate, +/area/almayer/hallways/lower/port_aft_hallway) "uNV" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22" }, /turf/open/floor/almayer, /area/almayer/command/lifeboat) -"uNW" = ( -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_p) -"uOc" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" +"uOh" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/area/almayer/hallways/vehiclehangar) +/turf/open/floor/almayer/test_floor4, +/area/almayer/hallways/upper/fore_hallway) "uOi" = ( /turf/closed/wall/almayer/outer, /area/almayer/lifeboat_pumps/south2) "uOJ" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/living/pilotbunks) "uPr" = ( -/turf/open/floor/almayer{ - dir = 5; - icon_state = "blue" - }, +/turf/open/floor/almayer/blue/northeast, /area/almayer/living/basketball) +"uPE" = ( +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_aft_hallway) "uPI" = ( -/obj/structure/pipes/vents/pump{ - dir = 1 +/obj/structure/surface/table/reinforced/almayer_B{ + indestructible = 1; + unacidable = 1; + unslashable = 1 + }, +/obj/structure/transmitter/rotary{ + name = "AI Reception Telephone"; + phone_category = "ARES"; + phone_color = "blue"; + phone_id = "AI Reception" + }, +/turf/open/floor/almayer/no_build/ai_floors, +/area/almayer/command/airoom) +"uPP" = ( +/obj/structure/machinery/door/airlock/almayer/engineering{ + dir = 2; + name = "\improper Atmospherics Wing" }, -/turf/open/floor/almayer{ - icon_state = "orangecorner" +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer/test_floor4, +/area/almayer/engineering/lower) +"uPQ" = ( +/obj/item/weapon/dart/green, +/obj/structure/dartboard{ + pixel_y = 32 }, -/area/almayer/hallways/stern_hallway) +/turf/open/floor/plating, +/area/almayer/maint/lower/constr) "uPW" = ( /obj/structure/bed/chair{ dir = 4 @@ -72914,19 +59746,18 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/almayer, /area/almayer/living/port_emb) +"uPX" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_aft_hallway) "uQm" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, /turf/open/floor/almayer, /area/almayer/shipboard/brig/perma) -"uQn" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "NW-out"; - pixel_y = 3 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/starboard_hallway) "uQo" = ( /obj/structure/machinery/disposal, /obj/item/reagent_container/food/drinks/cans/beer{ @@ -72939,22 +59770,6 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/port_emb) -"uQU" = ( -/obj/structure/stairs{ - dir = 1 - }, -/obj/structure/machinery/light{ - dir = 8 - }, -/obj/effect/projector{ - name = "Almayer_Up4"; - vector_x = -19; - vector_y = 104 - }, -/turf/open/floor/plating/almayer{ - allow_construction = 0 - }, -/area/almayer/hallways/port_hallway) "uRo" = ( /obj/structure/surface/table/almayer, /obj/item/trash/USCMtray{ @@ -72962,15 +59777,16 @@ }, /turf/open/floor/almayer, /area/almayer/squads/alpha) -"uRr" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "S" +"uRs" = ( +/obj/structure/machinery/light{ + dir = 8 }, -/obj/structure/closet/secure_closet/engineering_materials, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 }, -/area/almayer/engineering/engineering_workshop/hangar) +/turf/open/floor/almayer/red/northwest, +/area/almayer/command/lifeboat) "uRt" = ( /obj/structure/machinery/light{ dir = 8 @@ -72978,11 +59794,14 @@ /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22" }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/west, /area/almayer/medical/upper_medical) +"uRD" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/starboard_fore_hallway) "uRM" = ( /obj/structure/bed{ can_buckle = 0 @@ -73010,57 +59829,102 @@ }, /turf/open/floor/plating, /area/almayer/living/port_emb) -"uRQ" = ( -/obj/item/storage/firstaid/fire, -/obj/structure/surface/rack, -/turf/open/floor/almayer{ - icon_state = "plate" +"uRR" = ( +/obj/structure/machinery/door/airlock/almayer/security/glass{ + name = "Brig" }, -/area/almayer/hull/upper_hull/u_a_s) -"uSq" = ( +/turf/open/floor/almayer/test_floor4, +/area/almayer/maint/hull/lower/s_bow) +"uRY" = ( /obj/effect/decal/warning_stripes{ - icon_state = "NW-out"; - layer = 2.5; + icon_state = "N"; pixel_y = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_p) -"uSL" = ( -/obj/effect/step_trigger/clone_cleaner, -/obj/effect/decal/warning_stripes{ - icon_state = "S" +/obj/structure/machinery/light{ + dir = 1 }, -/obj/structure/sign/safety/stairs{ - pixel_x = -17 +/turf/open/floor/almayer/red/southwest, +/area/almayer/hallways/upper/port) +"uSk" = ( +/obj/structure/machinery/light{ + dir = 1 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" +/turf/open/floor/almayer/orangecorner/east, +/area/almayer/hallways/upper/aft_hallway) +"uSH" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/reagent_dispensers/water_cooler{ + density = 0; + pixel_x = 12; + pixel_y = 6 }, -/area/almayer/hallways/aft_hallway) +/turf/open/floor/almayer/plate, +/area/almayer/living/briefing) "uSS" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/medical/lockerroom) -"uTv" = ( -/obj/structure/surface/table/almayer, -/obj/item/trash/USCMtray{ - pixel_x = 6; - pixel_y = 4 +"uSU" = ( +/obj/structure/largecrate/random/case/double, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_f_p) +"uSW" = ( +/obj/structure/stairs/perspective{ + dir = 4; + icon_state = "p_stair_sn_full_cap" }, -/turf/open/floor/almayer, -/area/almayer/squads/bravo) -"uTN" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - icon_state = "mono" +/obj/structure/platform{ + dir = 4; + layer = 2.7 + }, +/turf/open/floor/almayer/plating/northeast, +/area/almayer/engineering/lower/engine_core) +"uTk" = ( +/obj/structure/largecrate/random/secure, +/turf/open/floor/plating, +/area/almayer/maint/lower/constr) +"uTl" = ( +/obj/structure/surface/table/almayer, +/obj/item/weapon/gun/rifle/m41a, +/turf/open/floor/almayer/plate, +/area/almayer/maint/upper/u_m_s) +"uTs" = ( +/obj/structure/machinery/door/poddoor/almayer/open{ + dir = 4; + id = "Brig Lockdown Shutters"; + name = "\improper Brig Lockdown Shutter" + }, +/obj/structure/machinery/door/airlock/almayer/maint/reinforced, +/turf/open/floor/almayer/test_floor4, +/area/almayer/maint/hull/upper/p_bow) +"uTv" = ( +/obj/structure/surface/table/almayer, +/obj/item/trash/USCMtray{ + pixel_x = 6; + pixel_y = 4 + }, +/turf/open/floor/almayer, +/area/almayer/squads/bravo) +"uTE" = ( +/obj/structure/sign/safety/hvac_old{ + pixel_x = 8; + pixel_y = 32 }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_f_s) +"uTN" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer/mono, /area/almayer/living/pilotbunks) +"uTP" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 + }, +/turf/open/floor/almayer/test_floor4, +/area/almayer/hallways/lower/starboard_aft_hallway) "uTU" = ( /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 2 @@ -73071,22 +59935,19 @@ layer = 2.2; name = "\improper Combat Information Center Blast Door" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/command/cic) -"uTY" = ( -/obj/effect/step_trigger/clone_cleaner, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "green" +"uTV" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + pixel_y = 1 }, -/area/almayer/hallways/aft_hallway) +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer/orangefull, +/area/almayer/engineering/lower/workshop) "uTZ" = ( /obj/structure/machinery/light/small, -/turf/open/floor/almayer{ - icon_state = "orange" - }, +/turf/open/floor/almayer/orange, /area/almayer/engineering/upper_engineering/port) "uUe" = ( /obj/structure/machinery/cryopod/right{ @@ -73100,10 +59961,27 @@ icon_state = "W"; pixel_x = -1 }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/engineering/upper_engineering/port) +"uUf" = ( +/obj/structure/surface/table/almayer, +/obj/item/prop/helmetgarb/prescription_bottle{ + pixel_x = -7; + pixel_y = 9 + }, +/obj/item/prop/helmetgarb/prescription_bottle{ + pixel_x = 9 + }, +/obj/item/prop/helmetgarb/prescription_bottle{ + pixel_x = -9; + pixel_y = -4 + }, +/obj/item/prop/helmetgarb/prescription_bottle{ + pixel_y = -2 + }, +/obj/item/reagent_container/pill/happy, +/turf/open/floor/almayer/silver/southeast, +/area/almayer/hallways/lower/repair_bay) "uUi" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 5 @@ -73118,29 +59996,26 @@ pixel_x = 8; pixel_y = 32 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "emerald" - }, +/turf/open/floor/almayer/emerald/north, /area/almayer/squads/charlie) -"uUs" = ( -/obj/structure/pipes/vents/pump{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "redcorner" - }, -/area/almayer/shipboard/brig/perma) "uUt" = ( /obj/structure/surface/table/almayer, /obj/effect/spawner/random/technology_scanner, /obj/structure/machinery/alarm/almayer{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/shipboard/starboard_point_defense) +"uUu" = ( +/obj/structure/machinery/status_display{ + pixel_x = 32 + }, +/obj/structure/surface/table/almayer, +/obj/structure/machinery/computer/secure_data{ + dir = 8 + }, +/turf/open/floor/almayer/red/northeast, +/area/almayer/shipboard/brig/perma) "uUz" = ( /obj/structure/window/framed/almayer, /obj/structure/machinery/door/poddoor/shutters/almayer{ @@ -73151,124 +60026,99 @@ }, /turf/open/floor/plating, /area/almayer/engineering/upper_engineering/port) -"uUO" = ( -/obj/structure/surface/table/almayer, -/obj/structure/machinery/door_control{ - id = "courtyard_cells"; - name = "\improper Courtyard Lockdown Shutters"; - pixel_x = 16; - req_access_txt = "3" +"uUB" = ( +/obj/structure/surface/table/reinforced/almayer_B{ + indestructible = 1; + unacidable = 1; + unslashable = 1 }, -/obj/structure/machinery/recharger, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" +/obj/item/paper_bin/uscm{ + pixel_y = 6; + pixel_x = -12 }, -/area/almayer/shipboard/brig/processing) -"uUV" = ( -/obj/structure/machinery/shower, -/obj/structure/window/reinforced/tinted{ - dir = 8 +/obj/item/tool/pen{ + pixel_x = -14 }, -/obj/structure/machinery/door/window/tinted{ - dir = 2 +/obj/structure/machinery/aicore_lockdown{ + pixel_y = 4; + pixel_x = 3 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/engineering/upper_engineering/port) -"uVb" = ( -/obj/structure/closet/toolcloset, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "orange" +/turf/open/floor/almayer/aicore/no_build, +/area/almayer/command/airoom) +"uVc" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 1 }, -/area/almayer/hull/lower_hull/l_m_s) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/engineering/lower/workshop) "uVd" = ( /obj/structure/machinery/cm_vending/sorted/medical/wall_med{ pixel_y = -25 }, -/turf/open/floor/almayer{ - icon_state = "silver" - }, +/turf/open/floor/almayer/silver, /area/almayer/shipboard/brig/cic_hallway) "uVh" = ( /obj/structure/filingcabinet/seeds, -/turf/open/floor/almayer{ - icon_state = "green" - }, +/turf/open/floor/almayer/green, /area/almayer/living/grunt_rnr) +"uVp" = ( +/obj/structure/sign/safety/water{ + pixel_x = 8; + pixel_y = 32 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_a_p) "uVv" = ( /obj/structure/pipes/standard/manifold/hidden/supply/no_boom{ dir = 1 }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, +/turf/open/floor/almayer/aicore/no_build, /area/almayer/command/airoom) "uVA" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/east, /area/almayer/shipboard/brig/cic_hallway) "uVD" = ( /obj/structure/machinery/camera/autoname/almayer{ dir = 8; name = "ship-grade camera" }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "plating_striped" - }, +/turf/open/floor/almayer/plating_striped/west, /area/almayer/living/cryo_cells) -"uVF" = ( -/obj/structure/disposalpipe/segment{ +"uVV" = ( +/obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "redcorner" - }, -/area/almayer/shipboard/brig/perma) -"uVR" = ( -/obj/structure/machinery/power/apc/almayer, -/turf/open/floor/almayer{ - icon_state = "orange" - }, -/area/almayer/engineering/lower_engineering) +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/cells) "uVX" = ( /obj/structure/machinery/light{ dir = 1 }, /obj/structure/machinery/cm_vending/sorted/cargo_guns/pilot_officer, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/pilotbunks) +"uVY" = ( +/obj/structure/largecrate/random/case/small, +/turf/open/floor/almayer/plate, +/area/almayer/maint/upper/u_m_p) "uWc" = ( /obj/structure/surface/table/almayer, -/turf/open/floor/almayer{ - icon_state = "emeraldfull" - }, +/turf/open/floor/almayer/emeraldfull, /area/almayer/living/briefing) -"uWC" = ( -/obj/structure/sign/safety/maint{ - pixel_x = -17 - }, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "red" - }, -/area/almayer/hallways/stern_hallway) -"uWI" = ( -/obj/structure/surface/table/almayer, -/obj/item/pizzabox/margherita{ - pixel_y = 8 +"uWk" = ( +/obj/structure/machinery/light{ + dir = 8 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "green" +/turf/open/floor/almayer/blue/northwest, +/area/almayer/hallways/upper/midship_hallway) +"uWm" = ( +/obj/effect/projector{ + name = "Almayer_Up4"; + vector_x = -19; + vector_y = 104 }, -/area/almayer/squads/req) +/turf/open/floor/almayer/no_build/plate, +/area/almayer/hallways/lower/port_midship_hallway) "uWV" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -73286,9 +60136,7 @@ icon_state = "N"; pixel_y = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/alpha) "uXf" = ( /obj/structure/machinery/door/airlock/almayer/medical/glass{ @@ -73301,83 +60149,137 @@ /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/medical/lower_medical_medbay) "uXj" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor/almayer/research/containment/floor2{ - dir = 8 - }, +/turf/open/floor/almayer/research/containment/floor2/west, /area/almayer/medical/containment/cell) -"uXu" = ( +"uXk" = ( +/turf/open/floor/almayer/plate, +/area/almayer/engineering/lower/engine_core) +"uXm" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/structure/pipes/standard/manifold/hidden/supply{ +/obj/structure/sign/safety/hvac_old{ + pixel_x = 8; + pixel_y = -32 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_f_p) +"uXu" = ( +/obj/structure/machinery/door/poddoor/shutters/almayer/open{ + id = "Interrogation Shutters"; + name = "\improper Privacy Shutters" + }, +/obj/structure/machinery/door/airlock/almayer/security{ + dir = 2; + name = "\improper Interrogation" + }, +/obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 1 }, -/turf/open/floor/almayer, -/area/almayer/hallways/port_hallway) +/turf/open/floor/almayer/test_floor4, +/area/almayer/shipboard/brig/interrogation) +"uXy" = ( +/obj/structure/window/framed/almayer/hull/hijack_bustable, +/obj/structure/machinery/door/poddoor/shutters/almayer/open{ + dir = 4; + id = "Firing_Range_2"; + name = "range shutters" + }, +/obj/structure/machinery/door/firedoor/border_only/almayer, +/turf/open/floor/plating, +/area/almayer/living/cryo_cells) +"uXE" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer/plate, +/area/almayer/hallways/upper/midship_hallway) "uXL" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" }, /obj/structure/machinery/power/smes/buildable, -/turf/open/floor/almayer{ - icon_state = "tcomms" - }, +/turf/open/floor/almayer/tcomms, /area/almayer/engineering/upper_engineering/starboard) +"uXU" = ( +/obj/structure/closet/crate/freezer, +/obj/item/reagent_container/food/snacks/sliceable/pizza/vegetablepizza, +/obj/item/reagent_container/food/snacks/sliceable/pizza/mushroompizza, +/obj/item/reagent_container/food/snacks/sliceable/pizza/vegetablepizza, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_m_p) "uYa" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/west, /area/almayer/medical/lower_medical_lobby) +"uYd" = ( +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_22"; + pixel_y = 12 + }, +/obj/structure/surface/table/almayer, +/turf/open/floor/almayer/plate, +/area/almayer/command/lifeboat) "uYg" = ( /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer, /area/almayer/command/lifeboat) +"uYn" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/turf/open/floor/almayer/orange/north, +/area/almayer/engineering/lower) +"uYM" = ( +/obj/structure/machinery/status_display{ + pixel_y = -30 + }, +/turf/open/floor/almayer/plate, +/area/almayer/hallways/lower/port_fore_hallway) +"uZm" = ( +/obj/effect/projector{ + name = "Almayer_Up2"; + vector_x = -1; + vector_y = 100 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/starboard_fore_hallway) "uZo" = ( /obj/structure/bed/stool, /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "emerald" - }, +/turf/open/floor/almayer/emerald/southwest, /area/almayer/living/port_emb) +"uZF" = ( +/obj/structure/machinery/power/apc/almayer{ + dir = 1 + }, +/turf/open/floor/almayer, +/area/almayer/engineering/lower/workshop) "uZH" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 9 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/east, /area/almayer/engineering/upper_engineering/starboard) -"uZQ" = ( -/obj/structure/window/framed/almayer, -/turf/open/floor/plating, -/area/almayer/hallways/repair_bay) -"uZX" = ( -/obj/structure/surface/table/almayer, -/obj/item/paper{ - pixel_x = -4; - pixel_y = 5 +"uZV" = ( +/obj/structure/reagent_dispensers/fueltank/gas/methane{ + anchored = 1 }, -/obj/item/tool/pen, -/turf/open/floor/almayer{ - icon_state = "bluefull" +/obj/structure/sign/safety/fire_haz{ + pixel_x = 8; + pixel_y = -32 }, -/area/almayer/living/briefing) +/turf/open/floor/almayer/cargo, +/area/almayer/engineering/lower/workshop/hangar) "uZZ" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper Basketball Court" @@ -73385,26 +60287,40 @@ /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 2 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/living/basketball) -"vak" = ( -/obj/structure/sign/safety/security{ - pixel_x = 15; +"vaq" = ( +/obj/structure/disposalpipe/junction{ + dir = 4; + icon_state = "pipe-j2" + }, +/obj/structure/pipes/standard/manifold/hidden/supply, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/starboard_fore_hallway) +"vaQ" = ( +/obj/structure/machinery/door/airlock/almayer/medical{ + dir = 1; + name = "Medical Storage" + }, +/turf/open/floor/almayer/test_floor4, +/area/almayer/medical/lower_medical_medbay) +"vaS" = ( +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/mp_bunks) +"vaV" = ( +/obj/structure/sign/safety/hvac_old{ + pixel_x = 8; pixel_y = 32 }, -/turf/closed/wall/almayer, -/area/almayer/hallways/starboard_umbilical) -"vba" = ( +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_m_s) +"vaZ" = ( /obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 2 - }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" + icon_state = "SW-out" }, -/area/almayer/engineering/upper_engineering/port) +/obj/effect/decal/cleanable/blood/oil, +/turf/open/floor/almayer/plating/northeast, +/area/almayer/engineering/lower/engine_core) "vbf" = ( /obj/structure/machinery/landinglight/ds2/delaytwo{ dir = 8 @@ -73412,13 +60328,46 @@ /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) +"vbo" = ( +/obj/structure/machinery/door/airlock/almayer/security/glass/reinforced{ + closeOtherId = "brigcells"; + name = "\improper Brig Prisoner Yard" + }, +/obj/structure/disposalpipe/segment{ + dir = 8 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 8 + }, +/obj/structure/machinery/door/poddoor/almayer/open{ + dir = 4; + id = "courtyard_cells"; + name = "\improper Courtyard Lockdown Shutter" + }, +/turf/open/floor/almayer/test_floor4, +/area/almayer/shipboard/brig/processing) "vbB" = ( /turf/open/floor/plating/plating_catwalk, /area/almayer/lifeboat_pumps/south1) +"vbI" = ( +/obj/structure/surface/table/almayer, +/obj/effect/decal/cleanable/dirt, +/obj/item/device/flashlight/lamp{ + layer = 3.3; + pixel_x = 15 + }, +/obj/item/paper, +/obj/item/tool/pen{ + pixel_x = -5; + pixel_y = 2 + }, +/turf/open/floor/almayer/orangefull, +/area/almayer/living/briefing) "vbM" = ( /obj/structure/flora/pottedplant{ desc = "It is made of Fiberbush(tm). It contains asbestos."; @@ -73429,33 +60378,50 @@ /obj/structure/machinery/alarm/almayer{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/northwest, /area/almayer/squads/bravo) +"vbR" = ( +/obj/structure/window/framed/almayer, +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 1 + }, +/turf/open/floor/almayer/green/northeast, +/area/almayer/squads/req) "vbS" = ( /obj/structure/closet/secure_closet/personal/patient{ name = "morgue closet" }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/medical/morgue) +"vbU" = ( +/obj/structure/sign/safety/maint{ + pixel_x = 8; + pixel_y = -32 + }, +/turf/open/floor/almayer/blue, +/area/almayer/hallways/upper/midship_hallway) "vbV" = ( /obj/structure/bed/chair/wheelchair{ dir = 1 }, /obj/structure/machinery/light, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "sterile_green_corner" - }, +/turf/open/floor/almayer/sterile_green_corner/east, /area/almayer/medical/lower_medical_medbay) -"vce" = ( -/obj/docking_port/stationary/escape_pod/south, -/turf/open/floor/plating, -/area/almayer/hull/upper_hull/u_m_p) +"vbZ" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/obj/structure/pipes/vents/scrubber{ + dir = 1 + }, +/turf/open/floor/almayer/plating/northeast, +/area/almayer/hallways/lower/vehiclehangar) +"vcm" = ( +/obj/structure/reagent_dispensers/peppertank{ + pixel_x = -30 + }, +/turf/open/floor/almayer/red/west, +/area/almayer/shipboard/brig/perma) "vcq" = ( /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 2 @@ -73464,53 +60430,40 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/medical/lower_medical_lobby) "vcu" = ( /obj/effect/landmark/start/engineering, /turf/open/floor/plating/plating_catwalk, /area/almayer/engineering/upper_engineering/port) "vcE" = ( -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/lifeboat_pumps/south2) "vcG" = ( -/obj/structure/surface/table/almayer, -/obj/structure/machinery/recharger, -/obj/item/device/flash, -/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ - pixel_y = 25 - }, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "red" +/obj/item/device/radio/intercom{ + freerange = 1; + name = "General Listening Channel"; + pixel_y = 28 }, -/area/almayer/shipboard/brig/general_equipment) -"vcK" = ( -/obj/effect/decal/cleanable/dirt, /turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_p) -"vdJ" = ( -/obj/structure/surface/table/almayer, -/obj/item/pipe{ - dir = 9 - }, -/obj/item/tool/screwdriver{ - layer = 3.6; - pixel_x = 9; - pixel_y = 8 +/area/almayer/hallways/upper/midship_hallway) +"vcI" = ( +/obj/effect/decal/cleanable/blood/oil/streak, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/obj/item/tool/crowbar/red{ - pixel_x = 17 +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_f_s) +"vdl" = ( +/obj/structure/window/reinforced/ultra{ + pixel_y = -12 }, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "silver" +/obj/structure/bed/chair/bolted, +/obj/structure/machinery/status_display{ + pixel_y = 30 }, -/area/almayer/hallways/repair_bay) +/turf/open/floor/almayer/plating_striped, +/area/almayer/shipboard/brig/execution) "vdL" = ( /obj/structure/sign/safety/reception{ pixel_x = -17; @@ -73520,10 +60473,7 @@ pixel_x = -17; pixel_y = -8 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/west, /area/almayer/command/cichallway) "vdM" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -73542,43 +60492,30 @@ /obj/structure/machinery/cryo_cell{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/medical/medical_science) -"vdW" = ( -/obj/structure/disposalpipe/junction{ - dir = 4 - }, -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 1 +"vdR" = ( +/obj/structure/sign/safety/maint{ + pixel_x = -17 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_hallway) +/turf/open/floor/almayer/red/northwest, +/area/almayer/lifeboat_pumps/south2) "ven" = ( /obj/structure/bed/chair, -/turf/open/floor/almayer{ - icon_state = "green" - }, +/turf/open/floor/almayer/green, /area/almayer/living/grunt_rnr) +"veq" = ( +/obj/structure/largecrate/random/barrel/green, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_m_s) "veu" = ( /obj/structure/surface/table/almayer, /obj/item/trash/USCMtray{ pixel_x = 6; pixel_y = 4 }, -/turf/open/floor/almayer{ - icon_state = "emeraldfull" - }, +/turf/open/floor/almayer/emeraldfull, /area/almayer/living/briefing) -"vez" = ( -/obj/structure/surface/table/almayer, -/obj/item/device/camera, -/obj/item/device/camera_film, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/shipboard/brig/main_office) "vfa" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -73586,10 +60523,7 @@ /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "emerald" - }, +/turf/open/floor/almayer/emerald/southeast, /area/almayer/squads/charlie) "vfo" = ( /obj/structure/machinery/door/airlock/almayer/secure/reinforced{ @@ -73597,22 +60531,8 @@ name = "\improper Evacuation Airlock PL-2"; req_access = null }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/powered) -"vfv" = ( -/obj/structure/pipes/vents/pump{ - dir = 1 - }, -/obj/structure/machinery/power/apc/almayer{ - dir = 4 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "redcorner" - }, -/area/almayer/shipboard/brig/execution) "vfx" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -73624,41 +60544,55 @@ icon_state = "N"; pixel_y = 1 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/north, /area/almayer/squads/bravo) -"vfB" = ( -/turf/open/floor/almayer/no_build{ +"vfP" = ( +/turf/open/floor/almayer/research/containment/corner/north, +/area/almayer/medical/containment/cell) +"vfS" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/area/almayer/command/airoom) -"vfJ" = ( -/obj/structure/surface/rack, -/obj/item/frame/table, -/obj/item/frame/table, -/obj/item/frame/table, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_y = 2 }, -/area/almayer/hull/lower_hull/l_m_p) -"vfP" = ( -/turf/open/floor/almayer/research/containment/corner{ - dir = 1 +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_f_s) +"vgi" = ( +/obj/structure/pipes/vents/scrubber, +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/general_equipment) +"vgn" = ( +/obj/structure/surface/table/almayer, +/obj/effect/decal/cleanable/dirt, +/obj/item/paper_bin/uscm{ + pixel_x = 9; + pixel_y = 6 }, -/area/almayer/medical/containment/cell) -"vgk" = ( -/obj/structure/closet/firecloset, -/obj/structure/machinery/camera/autoname/almayer{ +/obj/item/tool/pen{ + pixel_x = 9; + pixel_y = 2 + }, +/obj/item/tool/pen{ + pixel_x = 9; + pixel_y = 9 + }, +/obj/structure/prop/holidays/string_lights{ dir = 8; - name = "ship-grade camera" + pixel_x = 29 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "greencorner" +/turf/open/floor/almayer/plate, +/area/almayer/living/briefing) +"vgv" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/area/almayer/hallways/port_hallway) +/turf/open/floor/almayer/orange/west, +/area/almayer/engineering/lower/workshop) +"vgw" = ( +/turf/closed/wall/almayer/outer, +/area/almayer/engineering/lower) "vgx" = ( /obj/effect/decal/warning_stripes{ icon_state = "W"; @@ -73666,10 +60600,7 @@ }, /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/research, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_corner" - }, +/turf/open/floor/almayer/sterile_green_corner/north, /area/almayer/medical/hydroponics) "vgB" = ( /obj/structure/surface/table/almayer, @@ -73688,61 +60619,20 @@ pixel_x = 8; pixel_y = 10 }, -/turf/open/floor/almayer{ - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side, /area/almayer/medical/medical_science) -"vgC" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/obj/structure/machinery/door_control{ - id = "hangarentrancenorth"; - name = "North Hangar Podlocks"; - pixel_y = -26; - req_one_access_txt = "2;3;12;19"; - throw_range = 15 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/starboard_hallway) "vgD" = ( /obj/structure/machinery/status_display{ pixel_y = 30 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/almayer/red/north, /area/almayer/command/lifeboat) -"vgF" = ( -/obj/structure/stairs{ - dir = 4 - }, -/obj/effect/projector{ - name = "Almayer_Up2"; - vector_x = -1; - vector_y = 100 - }, -/obj/structure/machinery/light, -/turf/open/floor/plating/almayer{ - allow_construction = 0 - }, -/area/almayer/hallways/starboard_hallway) "vgO" = ( /turf/closed/wall/almayer/research/containment/wall/east, /area/almayer/medical/containment/cell) -"vgQ" = ( -/obj/structure/surface/rack, -/obj/item/tool/crowbar, -/obj/item/tool/weldingtool, -/obj/item/tool/wrench, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_p) +"vhb" = ( +/turf/open/floor/almayer/red/east, +/area/almayer/maint/upper/u_a_p) "vhe" = ( /obj/structure/filingcabinet{ density = 0; @@ -73757,22 +60647,8 @@ /obj/item/folder/white, /obj/item/folder/white, /obj/item/folder/white, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, +/turf/open/floor/almayer/aicore/no_build, /area/almayer/command/airoom) -"vhq" = ( -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_p) -"vht" = ( -/obj/structure/sign/safety/water{ - pixel_x = 8; - pixel_y = 32 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_p) "vhw" = ( /obj/structure/disposalpipe/trunk{ dir = 8 @@ -73780,10 +60656,10 @@ /obj/structure/machinery/disposal, /turf/open/floor/almayer, /area/almayer/living/offices/flight) -"vhI" = ( -/obj/structure/closet/firecloset, +"vhA" = ( +/obj/structure/largecrate/random/barrel/red, /turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_p) +/area/almayer/maint/hull/upper/p_bow) "vhR" = ( /obj/structure/flora/pottedplant{ desc = "It is made of Fiberbush(tm). It contains asbestos."; @@ -73791,10 +60667,7 @@ name = "synthetic potted plant"; pixel_y = 8 }, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "emerald" - }, +/turf/open/floor/almayer/emerald/southwest, /area/almayer/squads/charlie) "vhX" = ( /obj/structure/window/framed/almayer/white, @@ -73803,10 +60676,6 @@ }, /turf/open/floor/plating, /area/almayer/medical/lower_medical_medbay) -"vhY" = ( -/obj/structure/sign/goldenplaque, -/turf/closed/wall/almayer, -/area/almayer/living/gym) "vif" = ( /obj/structure/bed/chair/wood/normal{ dir = 1 @@ -73814,9 +60683,7 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/chapel) "vih" = ( /obj/structure/surface/table/almayer, @@ -73825,9 +60692,7 @@ pixel_x = 8; pixel_y = -32 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/medical/morgue) "vil" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -73843,21 +60708,10 @@ icon_state = "N"; pixel_y = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/bravo) -"vim" = ( -/obj/structure/sign/safety/water{ - pixel_x = 8; - pixel_y = 32 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_a_p) "vit" = ( -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/medical/operating_room_four) "viu" = ( /obj/structure/machinery/shower{ @@ -73873,73 +60727,59 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/port_emb) +"viv" = ( +/obj/structure/bed/sofa/south/white/right{ + pixel_y = 16 + }, +/turf/open/floor/almayer/silver/northeast, +/area/almayer/maint/upper/u_m_p) "viB" = ( /obj/structure/pipes/standard/manifold/hidden/supply/no_boom{ dir = 1 }, -/turf/open/floor/plating/plating_catwalk{ - allow_construction = 0 - }, +/turf/open/floor/plating/plating_catwalk/aicore, /area/almayer/command/airoom) "viJ" = ( /obj/structure/machinery/door/airlock/almayer/maint, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/living/gym) "viN" = ( -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/command/securestorage) "viO" = ( -/turf/open/floor/almayer/uscm/directional{ - dir = 5 - }, +/turf/open/floor/almayer/uscm/directional/northeast, /area/almayer/living/briefing) "viS" = ( /obj/effect/landmark/start/marine/engineer/bravo, /obj/effect/landmark/late_join/bravo, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/bravo) "vjb" = ( /obj/structure/sign/safety/restrictedarea{ pixel_x = -17 }, -/turf/open/floor/almayer{ - icon_state = "red" - }, +/turf/open/floor/almayer/red, /area/almayer/lifeboat_pumps/south1) "vjg" = ( /obj/structure/prop/almayer/missile_tube{ icon_state = "missiletubesouth" }, /obj/structure/machinery/light, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/almayer/shipboard/port_missiles) -"vjn" = ( -/obj/structure/flora/pottedplant{ - icon_state = "pottedplant_21" - }, -/obj/structure/sign/safety/escapepod{ - pixel_x = -17 - }, -/obj/structure/sign/poster/hero/voteno{ - pixel_y = 32 +"vjv" = ( +/obj/effect/decal/cleanable/blood/oil, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/turf/open/floor/wood/ship, -/area/almayer/command/corporateliason) -"vjx" = ( -/obj/structure/largecrate/random/barrel/yellow, -/turf/open/floor/almayer{ - icon_state = "plate" +/turf/open/floor/almayer, +/area/almayer/engineering/lower/workshop/hangar) +"vjB" = ( +/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ + pixel_y = 25 }, -/area/almayer/hull/lower_hull/l_a_s) +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/starboard_hallway) "vjC" = ( /obj/structure/disposalpipe/trunk{ dir = 8 @@ -73951,28 +60791,46 @@ pixel_x = -4; pixel_y = 8 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/almayer/green/north, /area/almayer/living/grunt_rnr) -"vjD" = ( -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12 - }, -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12; - pixel_y = 12 - }, -/turf/open/floor/almayer{ - icon_state = "plate" +"vjG" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/vents/pump{ + dir = 4 }, -/area/almayer/hull/lower_hull/l_m_p) +/turf/open/floor/almayer/orange/west, +/area/almayer/hallways/lower/port_umbilical) "vjK" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/almayer, /area/almayer/shipboard/port_missiles) -"vka" = ( +"vjS" = ( +/obj/structure/machinery/door/airlock/almayer/maint{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + layer = 5.1; + name = "water pipe" + }, +/obj/structure/machinery/door/poddoor/almayer/open{ + id = "Hangar Lockdown"; + name = "\improper Hangar Lockdown Blast Door" + }, +/turf/open/floor/almayer/test_floor4, +/area/almayer/maint/lower/constr) +"vjT" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/turf/open/floor/almayer/orangecorner/east, +/area/almayer/hallways/lower/port_umbilical) +"vjW" = ( +/obj/structure/reagent_dispensers/watertank{ + anchored = 1 + }, +/turf/open/floor/almayer/cargo, +/area/almayer/engineering/lower/workshop/hangar) +"vka" = ( /turf/open/floor/almayer, /area/almayer/shipboard/brig/cic_hallway) "vkb" = ( @@ -73984,37 +60842,32 @@ name = "Privacy Shutters"; pixel_y = -19 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/captain_mess) "vkp" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; pixel_y = 1 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/north, /area/almayer/medical/medical_science) -"vkD" = ( -/obj/structure/prop/invuln/overhead_pipe{ - dir = 4; - pixel_y = 13 +"vky" = ( +/obj/structure/machinery/door/poddoor/almayer/open{ + id = "Brig Lockdown Shutters"; + name = "\improper Brig Lockdown Shutter" }, -/obj/structure/prop/invuln/overhead_pipe{ - dir = 4; - pixel_x = -16; - pixel_y = 13 +/turf/open/floor/almayer/test_floor4, +/area/almayer/maint/hull/upper/p_bow) +"vkI" = ( +/obj/item/coin/silver{ + desc = "A small coin, bearing the falling falcons insignia."; + name = "falling falcons challenge coin" }, -/obj/structure/prop/invuln/overhead_pipe{ - dir = 4; - pixel_x = 12; - pixel_y = 13 +/obj/structure/machinery/light/small{ + dir = 8 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_m_s) +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_m_p) "vkM" = ( /obj/structure/machinery/door/airlock/almayer/security/glass{ dir = 1; @@ -74024,103 +60877,115 @@ /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/shipboard/brig/general_equipment) -"vkN" = ( -/obj/structure/bed/chair/comfy/charlie{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - icon_state = "plate" +"vkO" = ( +/obj/structure/closet, +/obj/item/stack/sheet/glass/large_stack, +/obj/item/device/lightreplacer, +/obj/item/reagent_container/spray/cleaner, +/obj/item/stack/rods{ + amount = 40 }, -/area/almayer/living/briefing) +/obj/item/tool/weldingtool, +/obj/item/clothing/glasses/welding, +/turf/open/floor/almayer/plate, +/area/almayer/maint/lower/s_bow) "vkR" = ( /obj/structure/machinery/power/apc/almayer{ dir = 1 }, /obj/structure/bed/sofa/south/grey, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/north, /area/almayer/shipboard/brig/cic_hallway) -"vli" = ( -/obj/structure/machinery/light/small{ - dir = 1 - }, -/obj/structure/machinery/power/apc/almayer/hardened{ - dir = 8 - }, -/obj/structure/surface/rack, -/obj/item/stack/sheet/glass/reinforced{ - amount = 50 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" - }, -/area/almayer/shipboard/brig/processing) +"vlk" = ( +/obj/structure/closet/emcloset, +/obj/item/clothing/mask/gas, +/obj/item/clothing/mask/gas, +/turf/open/floor/almayer/cargo, +/area/almayer/command/lifeboat) "vln" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 }, /obj/structure/disposalpipe/segment, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/west, /area/almayer/medical/lower_medical_lobby) "vly" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/structure/machinery/prop/almayer/CICmap, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, +/turf/open/floor/almayer/redfull, /area/almayer/shipboard/port_missiles) -"vlR" = ( -/obj/structure/machinery/light{ - dir = 4 +"vlM" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" }, -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 5 }, -/area/almayer/living/briefing) +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/cells) +"vlO" = ( +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = -2; + pixel_y = 4 + }, +/obj/structure/window/reinforced{ + dir = 8; + layer = 3.3; + pixel_y = 4 + }, +/obj/structure/bed{ + can_buckle = 0 + }, +/obj/structure/bed{ + buckling_y = 13; + layer = 3.5; + pixel_y = 13 + }, +/obj/item/bedsheet/yellow{ + layer = 3.2 + }, +/obj/item/bedsheet/yellow{ + pixel_y = 13 + }, +/obj/structure/sign/safety/bathunisex{ + pixel_x = -16; + pixel_y = 8 + }, +/obj/item/toy/plush/barricade, +/turf/open/floor/almayer/plate, +/area/almayer/living/port_emb) "vlX" = ( /obj/structure/machinery/cm_vending/sorted/cargo_guns/squad_prep, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/alpha_bravo_shared) "vme" = ( /obj/structure/bed/chair, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/almayer/red/north, /area/almayer/squads/alpha) "vml" = ( /obj/structure/machinery/cm_vending/sorted/tech/tool_storage, /obj/structure/sign/safety/storage{ pixel_x = 32 }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/hallways/hangar) -"vmK" = ( -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12 - }, -/obj/structure/sign/safety/water{ - pixel_x = 8; - pixel_y = -32 +"vmq" = ( +/turf/open/floor/almayer, +/area/almayer/maint/hull/lower/l_m_s) +"vmE" = ( +/turf/open/floor/almayer/orangecorner, +/area/almayer/engineering/lower) +"vmJ" = ( +/obj/effect/step_trigger/clone_cleaner, +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 }, /turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_s) +/area/almayer/hallways/upper/port) "vmN" = ( /obj/structure/machinery/light, /obj/structure/surface/table/almayer, @@ -74128,117 +60993,203 @@ icon_state = "pottedplant_22"; pixel_y = 8 }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/lifeboat_pumps/north1) -"vmW" = ( -/turf/open/floor/almayer{ - dir = 6; - icon_state = "red" +"vmP" = ( +/obj/structure/bed/chair/comfy/bravo{ + dir = 1 }, +/turf/open/floor/almayer/plate, +/area/almayer/living/briefing) +"vmW" = ( +/turf/open/floor/almayer/red/southeast, /area/almayer/shipboard/port_missiles) +"vno" = ( +/turf/open/floor/almayer/blue/east, +/area/almayer/hallways/lower/port_midship_hallway) "vnD" = ( /obj/structure/barricade/handrail{ dir = 1; pixel_y = 2 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/gym) -"vnV" = ( +"vnM" = ( /obj/structure/pipes/standard/simple/hidden/supply{ - dir = 9 + dir = 6 }, /turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_p) +/area/almayer/hallways/upper/starboard) "vnY" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 1 - }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/repair_bay) +"voj" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_p) -"vot" = ( -/obj/structure/disposalpipe/segment{ +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer/mono, +/area/almayer/hallways/upper/fore_hallway) +"vop" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/obj/structure/machinery/light/small, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_p) -"vox" = ( -/obj/structure/surface/table/almayer, -/obj/item/device/radio{ - pixel_x = -6; - pixel_y = 3 +/turf/open/floor/almayer/silvercorner/west, +/area/almayer/hallways/lower/repair_bay) +"vor" = ( +/obj/effect/decal/cleanable/blood, +/obj/structure/prop/broken_arcade, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_m_p) +"vou" = ( +/obj/structure/surface/rack{ + desc = "A bunch of metal shelves stacked on top of eachother. Excellent for storage purposes, less so as cover. One of the shelf legs is damaged, resulting in the rack being propped up by what appears to be circuit boards." }, -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_f_p) -"voA" = ( -/obj/structure/platform_decoration, -/obj/structure/prop/invuln/overhead_pipe{ +/obj/structure/machinery/light/small{ dir = 4; - pixel_x = -14; - pixel_y = 13 + icon_state = "bulb-burned"; + status = 3 }, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/effect/decal/cleanable/blood, +/obj/item/prop{ + desc = "A blood bag with a hole in it. The rats must have gotten to it first."; + icon = 'icons/obj/items/bloodpack.dmi'; + icon_state = "bloodpack"; + name = "blood bag" }, -/area/almayer/hull/upper_hull/u_a_s) -"voQ" = ( -/obj/structure/machinery/door/airlock/almayer/maint{ +/obj/item/prop{ + desc = "A blood bag with a hole in it. The rats must have gotten to it first."; + icon = 'icons/obj/items/bloodpack.dmi'; + icon_state = "bloodpack"; + name = "blood bag" + }, +/obj/item/prop{ + desc = "A blood bag with a hole in it. The rats must have gotten to it first."; + icon = 'icons/obj/items/bloodpack.dmi'; + icon_state = "bloodpack"; + name = "blood bag" + }, +/obj/item/prop{ + desc = "The words \"Cloning Pod\" are scrawled onto it. It appears to be heavily damaged."; + icon = 'icons/obj/items/circuitboards.dmi'; + icon_state = "id_mod"; + layer = 2.78; + name = "circuit board"; + pixel_x = 8; + pixel_y = 10 + }, +/obj/item/prop{ + desc = "The words \"Cloning Scanner\" are scrawled onto it. It appears to be heavily damaged."; + icon = 'icons/obj/items/circuitboards.dmi'; + icon_state = "id_mod"; + layer = 2.79; + name = "circuit board"; + pixel_x = 8; + pixel_y = 7 + }, +/turf/open/floor/almayer/sterile_green_corner, +/area/almayer/medical/lower_medical_medbay) +"voV" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "W"; + pixel_x = -1 + }, +/obj/structure/machinery/door/airlock/almayer/research/reinforced{ + closeOtherId = "containment_n"; + dir = 8; + name = "\improper Containment Airlock" + }, +/obj/structure/machinery/door/poddoor/almayer/biohazard/white{ + dir = 4 + }, +/turf/open/floor/almayer/test_floor4, +/area/almayer/medical/containment) +"vpe" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/machinery/door/airlock/almayer/engineering/reinforced/OT{ dir = 1 }, /obj/structure/disposalpipe/segment, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hull/lower_hull/l_m_p) +/turf/open/floor/almayer/test_floor4, +/area/almayer/engineering/lower/workshop/hangar) +"vpf" = ( +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_m_p) "vpn" = ( -/turf/open/floor/almayer{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/almayer/red/northwest, /area/almayer/lifeboat_pumps/south1) -"vpt" = ( -/obj/structure/surface/table/almayer, -/obj/item/paper_bin/uscm{ - pixel_x = 9; - pixel_y = 6 +"vpv" = ( +/obj/structure/machinery/shower, +/obj/structure/window/reinforced/tinted{ + dir = 8 }, -/obj/item/tool/pen{ - pixel_x = 9; - pixel_y = 2 +/obj/structure/machinery/door/window/tinted{ + dir = 2 }, -/obj/item/tool/pen{ - pixel_x = 9; - pixel_y = 9 +/obj/item/clothing/mask/cigarette/weed, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/engineering/upper_engineering/port) +"vpH" = ( +/obj/structure/surface/table/reinforced/almayer_B{ + indestructible = 1; + unacidable = 1; + unslashable = 1 }, -/obj/structure/prop/holidays/string_lights{ - dir = 8; - pixel_x = 29 +/obj/structure/machinery/computer/working_joe{ + layer = 3.3; + dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/item/desk_bell/ares{ + pixel_y = 14; + pixel_x = -5; + anchored = 1 }, -/area/almayer/living/briefing) +/turf/open/floor/almayer/aicore/no_build, +/area/almayer/command/airoom) "vpI" = ( -/obj/effect/landmark/start/police, +/obj/structure/sign/safety/hvac_old{ + pixel_x = 8; + pixel_y = 32 + }, /turf/open/floor/plating/plating_catwalk, -/area/almayer/shipboard/brig/cryo) -"vpV" = ( -/turf/open/floor/almayer{ - dir = 10; - icon_state = "emerald" +/area/almayer/maint/hull/upper/u_m_p) +"vpT" = ( +/obj/structure/surface/table/reinforced/almayer_B, +/obj/structure/machinery/computer/cameras/almayer{ + dir = 1 }, +/turf/open/floor/almayer/plate, +/area/almayer/shipboard/panic) +"vpV" = ( +/turf/open/floor/almayer/emerald/southwest, /area/almayer/command/cic) "vpW" = ( /obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) +"vqc" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/machinery/door/airlock/almayer/security/glass/reinforced{ + dir = 1; + name = "\improper Holding Cell" + }, +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 + }, +/turf/open/floor/almayer/test_floor4, +/area/almayer/shipboard/brig/processing) +"vqz" = ( +/obj/structure/machinery/light{ + dir = 4 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/turf/open/floor/almayer/red/southwest, +/area/almayer/hallways/lower/port_fore_hallway) "vqC" = ( /obj/structure/pipes/vents/pump{ dir = 4 @@ -74248,35 +61199,33 @@ "vqD" = ( /obj/item/trash/candle, /obj/item/tool/match/paper, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/north, /area/almayer/engineering/upper_engineering/starboard) +"vqI" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/device/camera_film{ + pixel_x = 4; + pixel_y = 1; + layer = 3.03 + }, +/obj/item/stack/sheet/cardboard/small_stack{ + pixel_x = -5; + pixel_y = 3; + layer = 3.02 + }, +/turf/open/floor/almayer, +/area/almayer/squads/charlie_delta_shared) "vqK" = ( /obj/structure/pipes/standard/manifold/hidden/supply, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/east, /area/almayer/engineering/upper_engineering/starboard) "vqL" = ( /obj/item/clothing/under/shorts/black, /obj/structure/machinery/power/apc/almayer{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/engineering/laundry) -"vqO" = ( -/obj/structure/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_p) "vqW" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -74285,9 +61234,7 @@ dir = 1; name = "ship-grade camera" }, -/turf/open/floor/almayer{ - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side, /area/almayer/medical/medical_science) "vqZ" = ( /obj/structure/machinery/shower{ @@ -74323,27 +61270,6 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/brig/cells) -"vrB" = ( -/obj/structure/closet/crate{ - desc = "One of those old special operations crates from back in the day. After a leaked report from a meeting of SOF leadership lambasted the crates as 'waste of operational funds' the crates were removed from service."; - name = "special operations crate" - }, -/obj/item/clothing/mask/gas/swat, -/obj/item/clothing/mask/gas/swat, -/obj/item/clothing/mask/gas/swat, -/obj/item/clothing/mask/gas/swat, -/obj/item/attachable/suppressor, -/obj/item/attachable/suppressor, -/obj/item/attachable/suppressor, -/obj/item/attachable/suppressor, -/obj/item/explosive/grenade/smokebomb, -/obj/item/explosive/grenade/smokebomb, -/obj/item/explosive/grenade/smokebomb, -/obj/item/explosive/grenade/smokebomb, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_s) "vrI" = ( /obj/structure/machinery/cryopod{ layer = 3.1; @@ -74352,107 +61278,97 @@ /obj/structure/sign/safety/maint{ pixel_x = -18 }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/living/offices) +"vrJ" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SE-out"; + pixel_x = 1 + }, +/obj/structure/machinery/door/airlock/almayer/generic{ + dir = 2; + name = "\improper Liasion's Bathroom" + }, +/turf/open/floor/almayer/test_floor4, +/area/almayer/command/corporateliaison) "vrM" = ( /obj/structure/closet/secure_closet{ name = "secure evidence locker"; req_access_txt = "3" }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/shipboard/brig/evidence_storage) -"vrQ" = ( -/obj/structure/machinery/door/poddoor/shutters/almayer{ - dir = 2; - id = "perma_exit"; - name = "\improper Exit Shutters" - }, -/obj/structure/machinery/door/poddoor/almayer/open{ - id = "perma_lockdown"; - name = "\improper Perma Lockdown Shutter" - }, -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 1 - }, -/obj/structure/machinery/door/airlock/almayer/security/glass/reinforced{ - dir = 1; - name = "\improper Brig" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +"vrR" = ( +/obj/structure/surface/table/almayer, +/obj/structure/machinery/computer/general_air_control/large_tank_control{ + name = "Lower Deck Waste Tank Control" }, -/area/almayer/shipboard/brig/perma) +/turf/open/floor/almayer/plate, +/area/almayer/engineering/lower) "vrW" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "bluecorner" - }, +/turf/open/floor/almayer/bluecorner/west, /area/almayer/living/briefing) +"vrZ" = ( +/obj/structure/largecrate/machine/bodyscanner, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_a_s) +"vsd" = ( +/obj/effect/step_trigger/clone_cleaner, +/obj/structure/machinery/door/airlock/almayer/maint, +/turf/open/floor/almayer/test_floor4, +/area/almayer/maint/hull/upper/u_m_s) "vse" = ( /obj/structure/machinery/cryopod/right{ pixel_y = 6 }, /obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/living/offices) +"vsf" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 9 + }, +/obj/structure/machinery/door_control{ + id = "laddernortheast"; + name = "North East Ladders Shutters"; + pixel_y = -25; + req_one_access_txt = "2;3;12;19"; + throw_range = 15 + }, +/turf/open/floor/almayer/green, +/area/almayer/hallways/lower/starboard_midship_hallway) "vsh" = ( /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/plating/plating_catwalk, /area/almayer/command/lifeboat) +"vsi" = ( +/obj/structure/sign/safety/water{ + pixel_x = 8; + pixel_y = -32 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/stern) +"vsz" = ( +/obj/structure/machinery/camera/autoname/almayer{ + dir = 8; + name = "ship-grade camera" + }, +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/cells) "vsF" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" }, /obj/structure/pipes/standard/simple/hidden/supply, /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) -"vsJ" = ( -/obj/structure/machinery/door/airlock/almayer/maint{ - access_modified = 1; - dir = 1; - name = "\improper Power Control Room"; - req_access = null; - req_one_access = null; - req_one_access_txt = "3;6" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/shipboard/brig/processing) -"vsV" = ( -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12 - }, -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12; - pixel_y = 12 - }, -/obj/structure/sign/safety/water{ - pixel_x = 8; - pixel_y = -32 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_a_s) "vta" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/north, /area/almayer/command/cichallway) "vti" = ( -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/medical/medical_science) "vtm" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -74462,44 +61378,28 @@ dir = 2; icon_state = "pipe-c" }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/medical/medical_science) "vtr" = ( /obj/structure/machinery/mech_bay_recharge_port, -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/light_grey_single_wide_up_to_down, /area/almayer/powered/agent) -"vtt" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/almayer/living/commandbunks) "vtx" = ( /obj/structure/machinery/door/airlock/almayer/generic{ name = "\improper Bathroom" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/medical/upper_medical) -"vtB" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer, -/obj/structure/machinery/door/poddoor/shutters/almayer{ - dir = 8; - id = "laddersoutheast"; - name = "\improper South East Ladders Shutters" - }, -/obj/structure/disposalpipe/segment{ +"vtG" = ( +/obj/structure/toilet{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/port_hallway) +/turf/open/floor/almayer/plate, +/area/almayer/shipboard/brig/perma) +"vtJ" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_f_s) "vub" = ( /turf/closed/wall/almayer, /area/almayer/shipboard/sea_office) @@ -74508,13 +61408,17 @@ /obj/effect/landmark/late_join/alpha, /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/alpha) -"vuv" = ( -/turf/closed/wall/almayer, -/area/almayer/hull/upper_hull/u_a_p) "vuA" = ( /obj/structure/window/framed/almayer, /turf/open/floor/plating, /area/almayer/living/briefing) +"vuD" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/turf/open/floor/almayer/plate, +/area/almayer/engineering/lower/workshop) "vuF" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ access_modified = 1; @@ -74522,9 +61426,7 @@ name = "\improper Kitchen Hydroponics"; req_one_access_txt = "30;19" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/living/grunt_rnr) "vuG" = ( /obj/structure/sign/safety/maint{ @@ -74544,21 +61446,22 @@ dir = 4; icon_state = "pipe-c" }, -/turf/open/floor/almayer{ - icon_state = "blue" - }, +/turf/open/floor/almayer/blue, /area/almayer/squads/delta) -"vuR" = ( +"vuV" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_a_p) +/area/almayer/hallways/lower/port_aft_hallway) "vuZ" = ( /obj/structure/pipes/vents/scrubber{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "redcorner" - }, +/turf/open/floor/almayer/redcorner/north, /area/almayer/shipboard/weapon_room) "vvp" = ( /obj/structure/pipes/vents/pump, @@ -74571,6 +61474,19 @@ }, /turf/open/floor/almayer, /area/almayer/hallways/hangar) +"vvw" = ( +/obj/structure/surface/table/almayer, +/obj/item/device/flashlight/lamp{ + layer = 3.3; + pixel_x = 15 + }, +/obj/item/paper, +/obj/item/tool/pen{ + pixel_x = -5; + pixel_y = 2 + }, +/turf/open/floor/almayer/orangefull, +/area/almayer/living/briefing) "vvy" = ( /obj/structure/machinery/suit_storage_unit/compression_suit/uscm, /obj/structure/sign/safety/hazard{ @@ -74586,10 +61502,24 @@ /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/engineering/upper_engineering/starboard) +"vvH" = ( +/obj/structure/sign/safety/storage{ + pixel_x = 8; + pixel_y = -32 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_m_s) +"vvX" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic, +/obj/structure/machinery/door/poddoor/shutters/almayer{ + dir = 2; + id = "OuterShutter"; + name = "\improper Saferoom Shutters" + }, +/turf/open/floor/almayer/test_floor4, +/area/almayer/shipboard/panic) "vvY" = ( /obj/structure/sink{ dir = 1; @@ -74610,20 +61540,27 @@ /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/living/port_emb) +"vwj" = ( +/obj/structure/machinery/power/apc/almayer, +/turf/open/floor/almayer/plate, +/area/almayer/maint/upper/u_m_p) +"vwC" = ( +/obj/effect/step_trigger/clone_cleaner, +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/turf/open/floor/almayer/red/west, +/area/almayer/hallways/upper/starboard) "vwF" = ( /obj/structure/machinery/light{ dir = 1 }, /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/north, /area/almayer/medical/lower_medical_lobby) "vwI" = ( /obj/structure/surface/table/almayer, @@ -74632,66 +61569,46 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/grunt_rnr) -"vwN" = ( -/obj/item/clothing/gloves/botanic_leather{ - name = "leather gloves" - }, -/obj/item/clothing/gloves/botanic_leather{ - name = "leather gloves" - }, -/obj/item/clothing/gloves/botanic_leather{ - name = "leather gloves" - }, -/obj/structure/closet/crate, -/obj/item/clothing/suit/storage/hazardvest/black, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_p) -"vwO" = ( +"vwT" = ( +/turf/open/floor/almayer/blue/east, +/area/almayer/hallways/upper/midship_hallway) +"vwU" = ( /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer, -/area/almayer/shipboard/brig/general_equipment) -"vwP" = ( -/obj/structure/surface/table/almayer, -/obj/item/prop/helmetgarb/prescription_bottle{ - pixel_x = -7; - pixel_y = 9 - }, -/obj/item/prop/helmetgarb/prescription_bottle{ - pixel_x = 9 - }, -/obj/item/prop/helmetgarb/prescription_bottle{ - pixel_x = -9; - pixel_y = -4 - }, -/obj/item/prop/helmetgarb/prescription_bottle{ - pixel_y = -2 - }, -/obj/item/reagent_container/pill/happy, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "silver" - }, -/area/almayer/hallways/repair_bay) +/area/almayer/maint/hull/upper/u_f_p) "vwV" = ( /obj/structure/machinery/door/poddoor/shutters/almayer/uniform_vendors{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "cargo_arrow" - }, +/turf/open/floor/almayer/cargo_arrow/west, /area/almayer/command/cic) +"vwY" = ( +/obj/structure/surface/table/almayer, +/turf/open/floor/almayer, +/area/almayer/engineering/lower/workshop/hangar) "vxb" = ( /obj/structure/machinery/light, /turf/open/floor/almayer, /area/almayer/hallways/hangar) -"vxC" = ( -/turf/open/floor/almayer{ - icon_state = "red" +"vxu" = ( +/obj/structure/machinery/meter, +/obj/structure/pipes/standard/simple/visible{ + dir = 4 }, -/area/almayer/shipboard/brig/general_equipment) +/turf/open/floor/almayer, +/area/almayer/engineering/lower) +"vxG" = ( +/obj/structure/bed/chair/comfy/black{ + dir = 4 + }, +/turf/open/floor/almayer/red/southwest, +/area/almayer/shipboard/brig/chief_mp_office) +"vxK" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 1 + }, +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/processing) "vxM" = ( /turf/closed/wall/almayer/reinforced, /area/almayer/shipboard/brig/cryo) @@ -74715,13 +61632,26 @@ }, /turf/open/floor/almayer, /area/almayer/squads/alpha_bravo_shared) +"vxY" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/almayer/test_floor4, +/area/almayer/hallways/lower/starboard_midship_hallway) "vyg" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/secure_data, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/briefing) +"vyh" = ( +/obj/structure/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_m_s) "vyi" = ( /obj/structure/window/framed/almayer, /obj/structure/machinery/door/poddoor/almayer/open{ @@ -74739,75 +61669,75 @@ pixel_y = 6 }, /obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/living/offices) +"vyr" = ( +/obj/structure/largecrate/random/case/double, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_f_p) "vyu" = ( /obj/structure/bed/sofa/south/white/right, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/north, /area/almayer/medical/lower_medical_lobby) +"vyB" = ( +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/vehiclehangar) "vyE" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 1 +/obj/structure/pipes/standard/simple/hidden/supply/no_boom{ + dir = 4 }, -/obj/structure/disposalpipe/segment, -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +/turf/open/floor/almayer/aicore/no_build/ai_arrow/east, +/area/almayer/command/airoom) +"vyH" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/area/almayer/shipboard/brig/lobby) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/general_equipment) "vyI" = ( /turf/open/floor/almayer, /area/almayer/engineering/upper_engineering/port) -"vyU" = ( -/obj/structure/machinery/light{ - dir = 4 - }, -/obj/structure/bed/chair/comfy/charlie{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/living/briefing) -"vzl" = ( -/obj/structure/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_m_p) -"vzp" = ( -/turf/open/floor/almayer/research/containment/entrance, -/area/almayer/medical/containment/cell/cl) -"vzq" = ( +"vzi" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; pixel_y = 3 }, /turf/open/floor/almayer, -/area/almayer/hallways/port_hallway) -"vzu" = ( +/area/almayer/hallways/lower/starboard_midship_hallway) +"vzj" = ( +/obj/structure/machinery/door/airlock/almayer/security/reinforced{ + name = "\improper Chief MP's Bedroom" + }, +/turf/open/floor/almayer/test_floor4, +/area/almayer/shipboard/brig/chief_mp_office) +"vzk" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/almayer/no_build, +/area/almayer/shipboard/brig/processing) +"vzp" = ( +/turf/open/floor/almayer/research/containment/entrance, +/area/almayer/medical/containment/cell/cl) +"vzy" = ( /obj/structure/pipes/standard/simple/hidden/supply{ - dir = 10 + dir = 5 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_hallway) +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/almayer/redcorner/west, +/area/almayer/shipboard/brig/starboard_hallway) "vzz" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ dir = 1; name = "\improper Hydroponics Garden" }, -/turf/open/floor/almayer{ - icon_state = "greenfull" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/shipboard/brig/cells) +"vzB" = ( +/obj/structure/machinery/light/small, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_m_p) "vzK" = ( /turf/open/floor/almayer, /area/almayer/engineering/ce_room) @@ -74825,57 +61755,70 @@ id = "kitchen"; name = "\improper Kitchen Shutters" }, -/obj/structure/machinery/door/firedoor/border_only/almayer, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/grunt_rnr) +"vAg" = ( +/obj/structure/largecrate/random/barrel/blue, +/obj/structure/sign/safety/restrictedarea{ + pixel_y = -32 + }, +/obj/structure/sign/safety/security{ + pixel_x = 15; + pixel_y = -32 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/s_bow) "vAq" = ( /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/north, /area/almayer/hallways/hangar) +"vAx" = ( +/obj/structure/machinery/power/apc/almayer{ + dir = 1 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_m_p) +"vAz" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer, +/area/almayer/maint/hull/upper/u_f_s) "vAE" = ( /obj/structure/machinery/cryopod/right{ layer = 3.1; pixel_y = 13 }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/squads/alpha) "vAG" = ( /turf/open/floor/almayer, /area/almayer/shipboard/brig/chief_mp_office) +"vAH" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/turf/open/floor/almayer/redfull, +/area/almayer/hallways/upper/port) +"vAI" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/obj/structure/machinery/power/apc/almayer{ + dir = 8 + }, +/turf/open/floor/almayer/plating/northeast, +/area/almayer/shipboard/stern_point_defense) "vAQ" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/reagent_analyzer{ pixel_x = 2; pixel_y = 3 }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/medical/medical_science) -"vAU" = ( -/obj/structure/machinery/light{ - dir = 8 - }, -/obj/structure/pipes/vents/scrubber/no_boom{ - dir = 4 - }, -/turf/open/floor/almayer/no_build{ - dir = 8; - icon_state = "silver" - }, -/area/almayer/command/airoom) -"vBm" = ( -/turf/closed/wall/almayer/reinforced, -/area/almayer/shipboard/brig/main_office) "vBp" = ( /obj/structure/bed/chair/comfy{ dir = 1 @@ -74883,11 +61826,12 @@ /obj/structure/window/reinforced/ultra{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/north, /area/almayer/living/briefing) +"vBC" = ( +/obj/structure/pipes/vents/pump, +/turf/open/floor/almayer, +/area/almayer/maint/hull/upper/u_f_s) "vBJ" = ( /obj/structure/surface/table/almayer, /obj/item/tool/pen, @@ -74896,17 +61840,13 @@ /obj/item/paper_bin/uscm{ pixel_y = 7 }, -/turf/open/floor/almayer{ - allow_construction = 0 - }, +/turf/open/floor/almayer/no_build, /area/almayer/shipboard/brig/chief_mp_office) "vBU" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "green" - }, +/turf/open/floor/almayer/green, /area/almayer/squads/req) "vCg" = ( /obj/effect/decal/warning_stripes{ @@ -74916,26 +61856,29 @@ pixel_x = 8; pixel_y = 32 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) "vCk" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/southwest, /area/almayer/medical/hydroponics) +"vCt" = ( +/obj/structure/sign/safety/storage{ + pixel_x = 8; + pixel_y = -32 + }, +/turf/open/floor/almayer, +/area/almayer/lifeboat_pumps/north1) +"vCv" = ( +/turf/open/floor/almayer/orangecorner, +/area/almayer/hallways/upper/midship_hallway) "vCx" = ( /obj/structure/machinery/status_display{ pixel_y = -30 }, -/turf/open/floor/almayer{ - icon_state = "silver" - }, +/turf/open/floor/almayer/silver, /area/almayer/shipboard/brig/cic_hallway) "vCy" = ( /obj/structure/machinery/camera/autoname/almayer{ @@ -74943,31 +61886,28 @@ name = "ship-grade camera"; pixel_y = 6 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "green" - }, +/turf/open/floor/almayer/green/west, /area/almayer/shipboard/brig/cells) -"vCz" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/lifeboat_pumps/north1) -"vCG" = ( -/obj/structure/toilet{ - dir = 8 +"vCE" = ( +/obj/structure/largecrate/random/barrel/yellow, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/s_bow) +"vCH" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 }, -/obj/structure/sink{ - pixel_y = 24 +/obj/effect/decal/warning_stripes{ + icon_state = "S"; + layer = 3.3 }, -/obj/structure/machinery/light/small, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" +/obj/structure/machinery/camera/autoname/almayer/containment/ares{ + dir = 4; + c_tag = "AI - Primary Processors"; + autoname = 0 }, -/area/almayer/shipboard/brig/chief_mp_office) +/turf/open/floor/almayer/aicore/no_build/ai_floor2, +/area/almayer/command/airoom) "vCO" = ( /obj/effect/landmark/start/bridge, /turf/open/floor/plating/plating_catwalk, @@ -74976,10 +61916,54 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side, /area/almayer/medical/hydroponics) +"vDd" = ( +/obj/structure/window/framed/almayer/hull/hijack_bustable, +/obj/structure/machinery/door/poddoor/shutters/almayer/open{ + dir = 4; + id = "Firing_Range_1"; + name = "range shutters" + }, +/obj/structure/machinery/door/firedoor/border_only/almayer, +/turf/open/floor/plating, +/area/almayer/living/cryo_cells) +"vDh" = ( +/obj/structure/largecrate/random, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/s_bow) +"vDo" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_aft_hallway) +"vDz" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 9 + }, +/obj/structure/machinery/light, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_f_s) +"vDN" = ( +/obj/structure/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_m_p) +"vEf" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 10 + }, +/turf/open/floor/almayer/plate, +/area/almayer/command/combat_correspondent) "vEj" = ( /obj/structure/prop/invuln/overhead_pipe{ pixel_x = 12 @@ -74987,31 +61971,21 @@ /obj/effect/landmark/start/synthetic, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/synthcloset) -"vEn" = ( -/obj/structure/surface/table/almayer, -/obj/item/device/flashlight/lamp{ - layer = 3.3; - pixel_x = 15 - }, -/obj/item/paper, -/obj/item/tool/pen{ - pixel_x = -5; - pixel_y = 2 - }, -/turf/open/floor/almayer{ - icon_state = "orangefull" - }, -/area/almayer/living/briefing) "vEr" = ( /obj/effect/decal/warning_stripes{ icon_state = "E"; pixel_x = 1 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/west, /area/almayer/medical/medical_science) +"vEv" = ( +/obj/structure/machinery/door/poddoor/shutters/almayer{ + id = "laddernorthwest"; + name = "\improper North West Ladders Shutters" + }, +/obj/effect/step_trigger/clone_cleaner, +/turf/open/floor/almayer/test_floor4, +/area/almayer/hallways/lower/starboard_fore_hallway) "vEx" = ( /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 2 @@ -75021,77 +61995,95 @@ name = "Morgue Waiting Room"; req_one_access = null }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/medical/upper_medical) +"vEG" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/wood/ship, +/area/almayer/command/corporateliaison) "vEH" = ( /obj/structure/machinery/vending/coffee, /turf/open/floor/almayer, /area/almayer/living/briefing) -"vFb" = ( -/obj/structure/surface/table/almayer, -/obj/item/attachable/lasersight, -/obj/item/reagent_container/food/drinks/cans/souto/vanilla{ - pixel_x = 10; - pixel_y = 11 +"vEI" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_f_s) +"vER" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer/red, +/area/almayer/hallways/upper/aft_hallway) +"vEV" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SE-out"; + pixel_x = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" +/turf/open/floor/almayer/red/northwest, +/area/almayer/hallways/upper/starboard) +"vFn" = ( +/obj/structure/machinery/light/small, +/turf/open/floor/almayer/plating/northeast, +/area/almayer/shipboard/stern_point_defense) +"vFp" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SW-out" }, -/area/almayer/hull/upper_hull/u_m_s) +/turf/open/floor/almayer/plating/northeast, +/area/almayer/hallways/lower/vehiclehangar) "vFv" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/north, /area/almayer/engineering/upper_engineering/starboard) "vFw" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 6 }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/lifeboat_pumps/north1) -"vGk" = ( -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_m_p) -"vGr" = ( -/obj/structure/closet/firecloset, -/obj/item/clothing/mask/gas, -/obj/item/clothing/mask/gas, -/turf/open/floor/almayer{ - icon_state = "plate" +"vFH" = ( +/obj/structure/largecrate/random/case/double, +/turf/open/floor/almayer/plate, +/area/almayer/engineering/lower) +"vFI" = ( +/obj/structure/largecrate/random/secure, +/obj/item/weapon/baseballbat/metal{ + pixel_x = -2; + pixel_y = 8 }, -/area/almayer/hull/upper_hull/u_a_p) -"vGy" = ( -/obj/structure/largecrate/supply/supplies/tables_racks, -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_f_p) +/obj/item/clothing/glasses/sunglasses{ + pixel_y = 5 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_f_p) +"vGn" = ( +/turf/open/floor/almayer/red/north, +/area/almayer/shipboard/brig/interrogation) "vGA" = ( /obj/structure/bed/sofa/south/grey/right, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/north, /area/almayer/shipboard/brig/cic_hallway) "vGG" = ( /obj/structure/bed/chair/comfy/bravo, -/turf/open/floor/almayer{ - icon_state = "orangefull" - }, +/turf/open/floor/almayer/orangefull, /area/almayer/living/briefing) "vGI" = ( /obj/effect/decal/warning_stripes{ icon_state = "E"; pixel_x = 1 }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/living/numbertwobunks) +"vGQ" = ( +/obj/structure/machinery/light{ + dir = 4 + }, +/obj/structure/bed/chair{ + dir = 8 + }, +/turf/open/floor/almayer, +/area/almayer/lifeboat_pumps/north1) "vHa" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/structure/machinery/computer/ares_console{ @@ -75100,9 +62092,7 @@ /obj/structure/machinery/computer/view_objectives{ pixel_x = -9 }, -/turf/open/floor/almayer/no_build{ - icon_state = "plating" - }, +/turf/open/floor/almayer/no_build/plating, /area/almayer/command/airoom) "vHh" = ( /obj/structure/pipes/standard/simple/hidden/supply, @@ -75114,16 +62104,31 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/almayer, /area/almayer/living/port_emb) -"vHl" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer, -/obj/effect/decal/warning_stripes{ - icon_state = "NW-out"; - pixel_y = 1 +"vHn" = ( +/turf/closed/wall/almayer/outer, +/area/almayer/maint/hull/upper/u_m_s) +"vHp" = ( +/obj/structure/surface/table/almayer, +/obj/item/reagent_container/food/drinks/cans/waterbottle{ + pixel_x = 9; + pixel_y = 3 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +/obj/item/prop/helmetgarb/flair_io{ + pixel_x = -10; + pixel_y = 6 }, -/area/almayer/command/lifeboat) +/obj/item/prop/magazine/boots/n160{ + pixel_x = -6; + pixel_y = -5 + }, +/obj/structure/transmitter/rotary{ + name = "Flight Deck Telephone"; + phone_category = "Almayer"; + phone_id = "Flight Deck"; + pixel_y = 8 + }, +/turf/open/floor/almayer/plate, +/area/almayer/hallways/lower/repair_bay) "vHq" = ( /obj/item/device/assembly/mousetrap/armed, /obj/structure/pipes/standard/manifold/hidden/supply{ @@ -75137,17 +62142,8 @@ icon_state = "NW-out"; pixel_y = 1 }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/living/port_emb) -"vHs" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 2 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/starboard_hallway) "vHt" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/structure/machinery/door_control{ @@ -75185,9 +62181,7 @@ /obj/structure/machinery/door/window/westright{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/command/cic) "vHO" = ( /obj/effect/decal/warning_stripes{ @@ -75197,10 +62191,18 @@ /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor/almayer/research/containment/corner_var1{ - icon_state = "containment_corner_variant_2" - }, +/turf/open/floor/almayer/research/containment/corner_var1/containment_corner_variant_2, /area/almayer/medical/containment/cell) +"vHP" = ( +/obj/structure/surface/table/almayer, +/obj/item/paper_bin{ + pixel_x = -6; + pixel_y = 7 + }, +/obj/item/tool/pen, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/upper/u_f_s) "vHW" = ( /obj/structure/surface/rack, /obj/item/tool/extinguisher, @@ -75208,101 +62210,53 @@ /obj/item/device/flashlight, /obj/item/device/flashlight, /obj/item/device/flashlight, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, +/turf/open/floor/almayer/redfull, /area/almayer/command/cic) "vIf" = ( /obj/structure/machinery/camera/autoname/almayer{ dir = 1; name = "ship-grade camera" }, -/turf/open/floor/almayer{ - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side, /area/almayer/medical/upper_medical) -"vIm" = ( -/obj/item/device/radio/intercom{ - freerange = 1; - name = "General Listening Channel"; - pixel_y = 28 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "green" - }, -/area/almayer/hallways/aft_hallway) +"vIg" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer, +/turf/open/floor/almayer/test_floor4, +/area/almayer/maint/hull/lower/l_a_s) +"vIo" = ( +/turf/closed/wall/almayer, +/area/almayer/maint/upper/u_f_p) "vIu" = ( /obj/structure/machinery/light{ dir = 4 }, /turf/open/floor/almayer, /area/almayer/command/cichallway) -"vIA" = ( -/obj/structure/machinery/light/small{ - dir = 1 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_p) -"vIN" = ( -/obj/structure/sign/safety/distribution_pipes{ - pixel_x = 15; - pixel_y = 32 - }, -/obj/structure/sign/safety/intercom{ - pixel_y = 32 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "blue" +"vIZ" = ( +/obj/structure/pipes/standard/manifold/hidden/supply, +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/area/almayer/hallways/aft_hallway) +/turf/open/floor/almayer, +/area/almayer/hallways/upper/midship_hallway) +"vJc" = ( +/turf/open/floor/almayer/red/east, +/area/almayer/shipboard/brig/warden_office) "vJg" = ( /obj/structure/machinery/light/small, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/west, /area/almayer/command/securestorage) "vJo" = ( /obj/structure/machinery/computer/cameras/almayer_network{ dir = 1 }, /obj/structure/surface/table/almayer, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/almayer/red/southeast, /area/almayer/shipboard/navigation) -"vJy" = ( -/obj/structure/machinery/vending/cigarette{ - density = 0; - pixel_y = 18 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_p) -"vJM" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12 - }, -/obj/structure/sign/safety/water{ - pixel_x = 8; - pixel_y = -32 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_s) +"vJR" = ( +/obj/structure/barricade/handrail, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/p_stern) "vJV" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -75313,9 +62267,7 @@ /obj/structure/machinery/firealarm{ pixel_y = -29 }, -/turf/open/floor/almayer{ - icon_state = "orange" - }, +/turf/open/floor/almayer/orange, /area/almayer/squads/bravo) "vJZ" = ( /obj/structure/desertdam/decals/road_edge{ @@ -75335,51 +62287,45 @@ icon_state = "N"; pixel_y = 1 }, -/turf/open/floor/almayer{ - icon_state = "sterile_green_corner" - }, +/turf/open/floor/almayer/sterile_green_corner, /area/almayer/medical/containment) "vKe" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/briefing) -"vKf" = ( -/obj/structure/machinery/door/airlock/multi_tile/almayer/generic, -/obj/structure/machinery/door/poddoor/shutters/almayer/open{ - id = "InnerShutter"; - name = "\improper Saferoom Shutters" +"vKr" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 1 + }, +/obj/structure/machinery/door/airlock/almayer/security/glass/reinforced{ + closeOtherId = "brigcells"; + dir = 1; + name = "\improper Brig Prison Yard And Offices" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 }, -/area/almayer/hull/lower_hull/l_f_s) -"vKF" = ( -/obj/structure/stairs{ - dir = 8; - icon_state = "ramptop" +/turf/open/floor/almayer/test_floor4, +/area/almayer/shipboard/brig/processing) +"vKB" = ( +/obj/structure/closet/secure_closet/guncabinet/red/mp_armory_m4ra_rifle, +/obj/structure/machinery/light/small{ + dir = 8 }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/armory) +"vKI" = ( /obj/structure/machinery/light{ dir = 1 }, -/obj/effect/projector{ - name = "Almayer_Down2"; - vector_x = 1; - vector_y = -100 - }, -/turf/open/floor/plating/almayer{ - allow_construction = 0 - }, -/area/almayer/hallways/aft_hallway) -"vLh" = ( -/obj/item/roller, -/obj/structure/surface/rack, -/obj/item/roller, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_s) +/turf/open/floor/plating, +/area/almayer/maint/lower/constr) +"vLg" = ( +/obj/item/trash/uscm_mre, +/obj/structure/bed/chair/comfy/charlie, +/turf/open/floor/almayer/plate, +/area/almayer/living/briefing) "vLj" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/medidoor{ name = "\improper Medical Bay"; @@ -75391,19 +62337,24 @@ /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/machinery/door/poddoor/almayer/biohazard/white, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/medical/upper_medical) -"vLv" = ( -/obj/structure/largecrate/random/case/double, -/obj/structure/machinery/light{ - dir = 4 +"vLp" = ( +/obj/structure/sign/safety/storage{ + pixel_x = -17 }, -/turf/open/floor/almayer{ - icon_state = "plate" +/turf/open/floor/almayer/silver/west, +/area/almayer/hallways/lower/repair_bay) +"vLz" = ( +/obj/structure/machinery/door_control{ + id = "ARES Mainframe Right"; + name = "ARES Mainframe Lockdown"; + pixel_x = -24; + pixel_y = -24; + req_one_access_txt = "200;91;92" }, -/area/almayer/hull/upper_hull/u_m_p) +/turf/open/floor/almayer/aicore/no_build, +/area/almayer/command/airoom) "vLA" = ( /obj/effect/decal/warning_stripes{ icon_state = "W"; @@ -75413,20 +62364,15 @@ icon_state = "E"; pixel_x = 1 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "cargo_arrow" - }, +/turf/open/floor/almayer/cargo_arrow/west, /area/almayer/squads/charlie) -"vMn" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/largecrate/random/barrel/blue, -/turf/open/floor/almayer{ - icon_state = "plate" +"vMb" = ( +/obj/item/stool{ + pixel_x = -15; + pixel_y = 6 }, -/area/almayer/hull/lower_hull/l_a_p) +/turf/open/floor/plating, +/area/almayer/maint/lower/constr) "vMo" = ( /turf/closed/wall/almayer/white, /area/almayer/medical/operating_room_four) @@ -75434,26 +62380,20 @@ /obj/effect/landmark/start/otech, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/offices) -"vMx" = ( -/obj/structure/machinery/camera/autoname/almayer{ - dir = 1; - name = "ship-grade camera" - }, -/turf/open/floor/almayer, -/area/almayer/hallways/port_hallway) -"vMC" = ( -/obj/structure/bed/chair/office/dark{ - dir = 8 +"vMt" = ( +/turf/open/floor/almayer/aicore/no_build/ai_silver/west, +/area/almayer/command/airoom) +"vMA" = ( +/obj/structure/machinery/firealarm{ + pixel_y = 28 }, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/structure/machinery/light{ + dir = 1 }, -/area/almayer/command/combat_correspondent) +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_midship_hallway) "vME" = ( -/turf/open/floor/almayer{ - dir = 9; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/northwest, /area/almayer/engineering/upper_engineering/port) "vMG" = ( /obj/structure/disposalpipe/segment{ @@ -75467,20 +62407,54 @@ pixel_x = 8; pixel_y = -26 }, -/turf/open/floor/almayer{ - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side, /area/almayer/medical/lower_medical_medbay) "vMI" = ( /obj/structure/machinery/light{ dir = 4 }, /obj/structure/machinery/vending/cola, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/east, /area/almayer/command/cichallway) +"vMJ" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/machinery/door/airlock/almayer/security/glass{ + name = "\improper Brig Breakroom" + }, +/obj/structure/machinery/door/firedoor/border_only/almayer{ + layer = 1.9 + }, +/turf/open/floor/almayer/test_floor4, +/area/almayer/shipboard/brig/mp_bunks) +"vMM" = ( +/obj/structure/machinery/light, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer/plate, +/area/almayer/living/briefing) +"vMU" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_x = 1 + }, +/turf/open/floor/almayer/redcorner/north, +/area/almayer/hallways/lower/port_fore_hallway) +"vNo" = ( +/obj/structure/largecrate/random/case/double, +/obj/structure/machinery/light/small, +/turf/open/floor/almayer/plate, +/area/almayer/maint/upper/u_m_p) +"vNp" = ( +/obj/structure/sign/safety/three{ + pixel_x = -17 + }, +/obj/structure/machinery/door/window/brigdoor/southright{ + id = "Cell 3"; + name = "Cell 3" + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/cells) "vND" = ( /obj/structure/bed/chair{ dir = 8; @@ -75488,84 +62462,112 @@ }, /turf/open/floor/almayer, /area/almayer/squads/charlie) -"vNF" = ( -/obj/structure/reagent_dispensers/fueltank/custom, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" +"vNT" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 1 }, -/area/almayer/engineering/engine_core) +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer/test_floor4, +/area/almayer/shipboard/brig/starboard_hallway) "vNW" = ( -/turf/open/floor/almayer/uscm/directional{ - dir = 9 - }, +/turf/open/floor/almayer/uscm/directional/northwest, /area/almayer/command/cic) -"vOd" = ( -/obj/structure/machinery/optable, -/obj/structure/sign/safety/medical{ - pixel_x = -17 - }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, -/area/almayer/shipboard/brig/surgery) "vOh" = ( /obj/structure/pipes/vents/pump, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/north2) +"vOu" = ( +/obj/structure/surface/table/almayer, +/obj/item/weapon/gun/energy/taser, +/obj/item/weapon/gun/energy/taser{ + pixel_y = 8 + }, +/obj/structure/machinery/recharger, +/turf/open/floor/almayer/red, +/area/almayer/shipboard/brig/mp_bunks) +"vOw" = ( +/obj/structure/surface/rack, +/obj/effect/spawner/random/toolbox, +/obj/effect/spawner/random/toolbox, +/obj/effect/spawner/random/toolbox, +/obj/effect/spawner/random/tool, +/turf/open/floor/almayer/cargo, +/area/almayer/maint/hull/lower/l_m_s) "vOy" = ( /turf/closed/wall/almayer/white/reinforced, /area/almayer/medical/medical_science) +"vOG" = ( +/obj/structure/largecrate/supply/ammo/m41a/half, +/obj/structure/largecrate/supply/ammo/pistol/half{ + pixel_y = 12 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/p_bow) +"vOM" = ( +/obj/structure/largecrate/random/barrel/white, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/s_bow) +"vON" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/turf/open/floor/almayer/plating/northeast, +/area/almayer/shipboard/stern_point_defense) "vOP" = ( /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 2 }, /obj/structure/machinery/door/poddoor/almayer/biohazard/white, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/medical/upper_medical) -"vPj" = ( -/obj/structure/surface/table/reinforced/almayer_B, -/obj/item/device/flashlight/lamp{ - pixel_y = 8 +"vOV" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" }, -/obj/structure/pipes/vents/pump{ +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_umbilical) +"vOY" = ( +/obj/structure/machinery/door/airlock/almayer/maint/reinforced{ + access_modified = 1; + req_one_access = null; + req_one_access_txt = "2;7" + }, +/obj/structure/machinery/door/poddoor/almayer/open{ + dir = 4; + id = "CIC Lockdown"; + name = "\improper Combat Information Center Blast Door" + }, +/turf/open/floor/almayer/test_floor4, +/area/almayer/maint/upper/mess) +"vOZ" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/obj/item/clothing/glasses/science{ - pixel_x = 3; - pixel_y = -3 +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/obj/item/device/flash, -/turf/open/floor/almayer{ - icon_state = "mono" +/turf/open/floor/almayer/plate, +/area/almayer/hallways/lower/port_midship_hallway) +"vPf" = ( +/obj/structure/window/framed/almayer, +/obj/structure/machinery/door/poddoor/almayer/locked{ + dir = 2; + id = "Perma 2"; + name = "\improper cell shutter" }, -/area/almayer/medical/upper_medical) +/turf/open/floor/plating, +/area/almayer/shipboard/brig/perma) "vPm" = ( /obj/item/stack/cable_coil, /turf/open/floor/plating/plating_catwalk, /area/almayer/lifeboat_pumps/south1) -"vPr" = ( -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12 - }, -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12; - pixel_y = 12 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_s) "vPv" = ( /obj/structure/machinery/cryopod{ layer = 3.1; pixel_y = 13 }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/squads/alpha) "vPw" = ( /obj/structure/machinery/light{ @@ -75584,9 +62586,7 @@ /obj/structure/sign/safety/maint{ pixel_y = -26 }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/squads/delta) "vPM" = ( /obj/effect/decal/warning_stripes{ @@ -75600,28 +62600,48 @@ pixel_x = 15; pixel_y = 32 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) -"vQe" = ( -/obj/effect/step_trigger/teleporter_vector{ - name = "Almayer_Down2"; - vector_x = 1; - vector_y = -100 +"vPR" = ( +/obj/item/clothing/suit/storage/marine/light/vest, +/obj/item/clothing/suit/storage/marine/light/vest, +/obj/item/clothing/suit/storage/marine/light/vest, +/obj/item/clothing/suit/storage/marine/light/vest, +/obj/structure/closet/secure_closet/guncabinet/red, +/obj/structure/sign/safety/storage{ + pixel_x = 8; + pixel_y = -32 }, -/obj/structure/catwalk{ - health = null +/turf/open/floor/almayer/redfull, +/area/almayer/engineering/lower/workshop/hangar) +"vPT" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/upper/u_a_s) +"vPW" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/vehiclehangar) +"vQe" = ( +/obj/effect/step_trigger/teleporter_vector{ + name = "Almayer_Down2"; + vector_x = 1; + vector_y = -100 }, -/turf/open/floor/plating/almayer{ - allow_construction = 0 +/obj/structure/catwalk{ + health = null }, +/turf/open/floor/plating/almayer/no_build, /area/almayer/stair_clone/upper) "vQf" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "silvercorner" - }, +/turf/open/floor/almayer/silvercorner/north, /area/almayer/command/securestorage) "vQq" = ( /obj/structure/surface/table/almayer, @@ -75629,21 +62649,15 @@ /turf/open/floor/almayer, /area/almayer/command/computerlab) "vQN" = ( -/obj/structure/machinery/door/airlock/almayer/generic{ - dir = 1 - }, -/obj/structure/machinery/door/poddoor/almayer/open{ - id = "courtyard_cells"; - name = "\improper Courtyard Lockdown Shutter" - }, -/obj/structure/machinery/door/poddoor/almayer/locked{ - id = "Cell 4"; - name = "\improper Courtyard Divider" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +/obj/structure/sign/safety/restrictedarea{ + pixel_y = -32 }, -/area/almayer/shipboard/brig/cells) +/turf/open/floor/almayer/green, +/area/almayer/hallways/upper/fore_hallway) +"vQR" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/wood/ship, +/area/almayer/command/corporateliaison) "vRa" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 5 @@ -75660,16 +62674,10 @@ /obj/structure/machinery/faxmachine/uscm{ department = "SEA" }, -/turf/open/floor/strata{ - desc = "This metal floor has been painted to look like one made of wood. Unfortunately, wood and high pressure internal atmosphere don't mix well. Wood is a major fire hazard don't'cha know."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" - }, +/turf/open/floor/strata/faux_metal, /area/almayer/shipboard/sea_office) "vRb" = ( -/turf/open/floor/almayer/uscm/directional{ - dir = 10 - }, +/turf/open/floor/almayer/uscm/directional/southwest, /area/almayer/command/cic) "vRu" = ( /obj/structure/surface/rack{ @@ -75680,14 +62688,29 @@ pixel_y = 11 }, /obj/item/storage/box/matches, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/north, /area/almayer/engineering/upper_engineering/starboard) -"vRz" = ( -/turf/closed/wall/almayer/outer, -/area/almayer/hull/lower_hull/l_f_p) +"vRA" = ( +/obj/effect/step_trigger/teleporter_vector{ + name = "Almayer_AresDown"; + vector_x = 96; + vector_y = -65 + }, +/obj/structure/stairs{ + dir = 1 + }, +/turf/open/floor/almayer/aicore/no_build, +/area/almayer/command/airoom) +"vRR" = ( +/obj/effect/step_trigger/clone_cleaner, +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/obj/structure/sign/safety/stairs{ + pixel_x = -17 + }, +/turf/open/floor/almayer/red/north, +/area/almayer/hallways/upper/port) "vRX" = ( /obj/structure/surface/table/almayer, /obj/item/book/manual/medical_diagnostics_manual, @@ -75697,107 +62720,71 @@ name = "General Listening Channel"; pixel_y = 28 }, -/turf/open/floor/almayer{ - icon_state = "sterile_green_corner" - }, +/turf/open/floor/almayer/sterile_green_corner, /area/almayer/medical/upper_medical) -"vSg" = ( -/obj/structure/machinery/light/small, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_p) "vSl" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 9 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/command/cic) "vSn" = ( /obj/structure/barricade/handrail/medical{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/west, /area/almayer/medical/lower_medical_lobby) "vSp" = ( -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/grunt_rnr) +"vSr" = ( +/obj/structure/largecrate/random/case/double, +/obj/item/tool/wet_sign{ + pixel_y = 18 + }, +/obj/item/trash/cigbutt/ucigbutt{ + desc = "A handful of rounds to reload on the go."; + icon = 'icons/obj/items/weapons/guns/handful.dmi'; + icon_state = "bullet_2"; + name = "handful of pistol bullets (9mm)"; + pixel_x = -8; + pixel_y = 10 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_m_s) "vSE" = ( /obj/structure/closet/secure_closet/personal, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/southeast, /area/almayer/engineering/upper_engineering/port) "vSG" = ( /obj/structure/pipes/standard/manifold/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/medical/chemistry) -"vSH" = ( -/obj/structure/platform{ - dir = 8 - }, -/obj/item/stack/sheet/metal, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_p) "vSK" = ( /obj/structure/surface/table/almayer, /obj/item/trash/USCMtray{ pixel_x = 6; pixel_y = 4 }, -/turf/open/floor/almayer{ - icon_state = "bluefull" - }, +/turf/open/floor/almayer/bluefull, /area/almayer/living/briefing) "vSN" = ( /obj/structure/sign/safety/distribution_pipes{ pixel_x = 8; pixel_y = 32 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/north, /area/almayer/shipboard/brig/cic_hallway) "vSW" = ( /obj/structure/machinery/cryopod/right, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/squads/delta) -"vTt" = ( -/obj/structure/machinery/firealarm{ - pixel_y = 28 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/living/briefing) "vTu" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22"; pixel_y = 8 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/northeast, /area/almayer/command/cic) "vTv" = ( /obj/structure/surface/table/almayer, @@ -75811,78 +62798,92 @@ /obj/item/stack/sheet/mineral/phoron/medium_stack{ desc = "Phoron is an extremely rare mineral with exotic properties, often used in cutting-edge research. Just getting it into a stable, solid form is already hard enough. Handle with care." }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/engineering/upper_engineering) -"vTK" = ( -/turf/closed/wall/almayer/outer, -/area/almayer/hull/lower_hull/l_a_p) +"vTE" = ( +/obj/structure/machinery/door/airlock/almayer/maint{ + dir = 1 + }, +/turf/open/floor/almayer/test_floor4, +/area/almayer/maint/upper/u_a_s) +"vTM" = ( +/obj/structure/surface/rack, +/obj/effect/spawner/random/toolbox, +/turf/open/floor/almayer/plate, +/area/almayer/hallways/lower/vehiclehangar) "vTS" = ( /obj/structure/machinery/light{ pixel_x = 16 }, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/cryo_cells) +"vTT" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 1 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/engineering/lower) +"vTX" = ( +/obj/structure/sign/safety/distribution_pipes{ + pixel_y = -32 + }, +/obj/structure/sign/safety/manualopenclose{ + pixel_x = 15; + pixel_y = -32 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_fore_hallway) "vUb" = ( /obj/effect/landmark/start/marine/alpha, /obj/effect/landmark/late_join/alpha, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/alpha) "vUe" = ( /obj/structure/bed/chair/comfy/charlie{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "emeraldfull" - }, +/turf/open/floor/almayer/emeraldfull, /area/almayer/living/briefing) "vUh" = ( /obj/structure/machinery/light, /turf/open/floor/almayer, /area/almayer/command/lifeboat) -"vUi" = ( -/obj/structure/machinery/light/small, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_s) -"vUI" = ( -/obj/structure/largecrate/random/barrel/white, -/obj/structure/sign/safety/security{ - pixel_x = 15; - pixel_y = 32 - }, -/obj/structure/sign/safety/restrictedarea{ - pixel_y = 32 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_p) -"vUL" = ( -/obj/structure/surface/table/almayer, -/obj/item/device/flash, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/shipboard/brig/main_office) -"vUU" = ( +"vUn" = ( /obj/structure/machinery/camera/autoname/almayer{ dir = 8; name = "ship-grade camera" }, -/obj/structure/sign/safety/three{ - pixel_x = 31; - pixel_y = -8 +/obj/effect/decal/warning_stripes{ + icon_state = "SE-out"; + pixel_x = 1 }, -/obj/structure/sign/safety/ammunition{ - pixel_x = 32; - pixel_y = 7 +/turf/open/floor/almayer/red/west, +/area/almayer/hallways/upper/port) +"vUI" = ( +/obj/structure/bed/chair/comfy/orange{ + dir = 8 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "emerald" +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/warden_office) +"vUJ" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12 + }, +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12; + pixel_y = 12 }, -/area/almayer/hallways/port_hallway) +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_a_p) +"vUP" = ( +/turf/closed/wall/almayer/reinforced, +/area/almayer/shipboard/brig/cic_hallway) "vVb" = ( /obj/structure/machinery/cm_vending/gear/tl{ density = 0; @@ -75890,10 +62891,7 @@ vend_x_offset = 1 }, /obj/structure/machinery/light, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/almayer/red/west, /area/almayer/squads/alpha) "vVd" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ @@ -75901,50 +62899,72 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/briefing) -"vVh" = ( -/obj/item/weapon/dart/green, -/obj/structure/dartboard{ - pixel_y = 32 +"vVk" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" }, -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_f_p) +/turf/closed/wall/almayer/aicore/hull, +/area/almayer/command/airoom) "vVs" = ( -/turf/open/floor/almayer{ - icon_state = "sterile_green" - }, +/turf/open/floor/almayer/sterile_green, /area/almayer/medical/containment) -"vVw" = ( -/turf/open/floor/almayer{ - icon_state = "plate" +"vVu" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 }, +/turf/open/floor/almayer, +/area/almayer/command/lifeboat) +"vVw" = ( +/turf/open/floor/almayer/plate, /area/almayer/engineering/upper_engineering/port) +"vVy" = ( +/obj/item/device/radio/intercom{ + freerange = 1; + name = "General Listening Channel"; + pixel_y = 28 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_fore_hallway) +"vVI" = ( +/obj/structure/sign/safety/nonpress_0g{ + pixel_x = 8; + pixel_y = 32 + }, +/turf/open/floor/almayer/plating/northeast, +/area/almayer/shipboard/stern_point_defense) "vVW" = ( /obj/effect/decal/medical_decals{ icon_state = "triagedecaltopright" }, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/southeast, /area/almayer/medical/lower_medical_lobby) -"vWc" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ +"vVZ" = ( +/obj/structure/machinery/door/airlock/almayer/maint, +/obj/structure/disposalpipe/segment{ dir = 4 }, +/turf/open/floor/almayer/test_floor4, +/area/almayer/hallways/lower/port_umbilical) +"vWc" = ( /obj/structure/surface/table/almayer, /obj/item/device/radio/intercom/normandy{ layer = 3.5 }, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, +/turf/open/floor/almayer/redfull, /area/almayer/living/offices/flight) -"vWo" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "redcorner" +"vWs" = ( +/obj/structure/largecrate/random/barrel/red, +/obj/effect/decal/warning_stripes{ + icon_state = "W" }, -/area/almayer/shipboard/brig/evidence_storage) +/obj/structure/sign/safety/fire_haz{ + pixel_x = 8; + pixel_y = -32 + }, +/turf/open/floor/almayer/plate, +/area/almayer/hallways/lower/vehiclehangar) "vWt" = ( /obj/structure/surface/table/almayer, /obj/item/reagent_container/glass/beaker/large, @@ -75963,21 +62983,8 @@ /obj/item/reagent_container/glass/beaker/bluespace{ pixel_y = 12 }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/medical/medical_science) -"vWx" = ( -/obj/structure/largecrate/random/barrel/blue, -/obj/structure/sign/safety/restrictedarea{ - pixel_y = -32 - }, -/obj/structure/sign/safety/security{ - pixel_x = 15; - pixel_y = -32 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_s) "vWA" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -76015,6 +63022,25 @@ }, /turf/open/floor/almayer, /area/almayer/squads/charlie_delta_shared) +"vWG" = ( +/obj/structure/pipes/vents/pump, +/obj/item/tool/soap, +/obj/effect/decal/cleanable/blood, +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/obj/structure/sink{ + pixel_y = 24 + }, +/obj/structure/mirror{ + pixel_y = 32 + }, +/turf/open/floor/almayer/dark_sterile, +/area/almayer/shipboard/brig/cells) "vWJ" = ( /obj/structure/machinery/landinglight/ds1/delaytwo{ dir = 4 @@ -76022,19 +63048,8 @@ /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) -"vWK" = ( -/obj/structure/machinery/alarm/almayer{ - dir = 1 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, -/area/almayer/engineering/lower_engineering) "vXd" = ( /obj/structure/window/framed/almayer, /obj/structure/machinery/door/poddoor/shutters/almayer{ @@ -76042,8 +63057,21 @@ id = "engidorm"; name = "\improper Privacy Shutters" }, +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 1 + }, /turf/open/floor/plating, /area/almayer/engineering/upper_engineering/port) +"vXf" = ( +/obj/structure/reagent_dispensers/pacidtank{ + anchored = 1 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/turf/open/floor/almayer/cargo, +/area/almayer/engineering/lower/workshop/hangar) "vXh" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -76053,42 +63081,61 @@ dir = 4; pixel_x = -17 }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, +/turf/open/floor/almayer/aicore/glowing/no_build, /area/almayer/command/airoom) -"vXQ" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 1 +"vXo" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" }, -/turf/open/floor/almayer, -/area/almayer/shipboard/brig/perma) -"vXX" = ( -/obj/structure/surface/rack, -/obj/effect/spawner/random/tool, -/obj/effect/spawner/random/tool, -/obj/effect/spawner/random/powercell, -/obj/effect/spawner/random/powercell, -/obj/structure/sign/safety/hvac_old{ - pixel_x = 8; - pixel_y = -32 +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 8 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_p) -"vXY" = ( -/obj/structure/machinery/door/airlock/almayer/maint{ +/turf/open/floor/almayer, +/area/almayer/engineering/lower) +"vXv" = ( +/obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_10"; + pixel_y = 14 + }, +/turf/open/floor/almayer/mono, +/area/almayer/medical/upper_medical) +"vXF" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/turf/open/floor/almayer/plate, +/area/almayer/hallways/lower/port_umbilical) +"vYd" = ( +/obj/structure/machinery/light{ + dir = 8 }, -/area/almayer/hull/lower_hull/l_m_s) +/turf/open/floor/almayer, +/area/almayer/hallways/lower/vehiclehangar) "vYi" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 5 +/obj/structure/machinery/door/airlock/almayer/security/glass/reinforced{ + closeOtherId = "brigwarden"; + name = "\improper Warden's Office" }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_hallway) +/obj/structure/machinery/door/poddoor/shutters/almayer/open{ + dir = 4; + id = "Warden Office Shutters"; + name = "\improper Privacy Shutters" + }, +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 8 + }, +/obj/structure/machinery/door/poddoor/almayer/open{ + dir = 4; + id = "courtyard_cells"; + name = "\improper Courtyard Lockdown Shutter" + }, +/turf/open/floor/almayer/test_floor4, +/area/almayer/shipboard/brig/warden_office) "vYm" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/almayer, @@ -76105,10 +63152,7 @@ /obj/item/reagent_container/spray/cleaner, /obj/item/reagent_container/spray/cleaner, /obj/item/reagent_container/spray/cleaner, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/north, /area/almayer/medical/lower_medical_medbay) "vYz" = ( /obj/structure/surface/table/almayer, @@ -76131,9 +63175,7 @@ pixel_y = 10 }, /obj/structure/pipes/standard/simple/hidden/supply/no_boom, -/turf/open/floor/almayer{ - icon_state = "sterile_green" - }, +/turf/open/floor/almayer/sterile_green, /area/almayer/medical/containment) "vYC" = ( /obj/effect/decal/warning_stripes{ @@ -76145,9 +63187,7 @@ /turf/open/floor/almayer, /area/almayer/squads/req) "vYM" = ( -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/command/cichallway) "vZb" = ( /obj/structure/machinery/cryopod{ @@ -76157,10 +63197,14 @@ pixel_x = 16; pixel_y = 26 }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/squads/alpha) +"vZf" = ( +/obj/structure/sign/safety/hvac_old{ + pixel_x = 8 + }, +/turf/closed/wall/almayer, +/area/almayer/engineering/lower) "vZv" = ( /obj/structure/pipes/standard/manifold/hidden/supply, /turf/open/floor/almayer, @@ -76168,140 +63212,61 @@ "vZw" = ( /turf/open/floor/almayer/research/containment/floor2, /area/almayer/medical/containment/cell/cl) -"vZA" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/structure/sign/safety/hvac_old{ - pixel_x = -17 +"vZI" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/area/almayer/hull/lower_hull) +/turf/open/floor/almayer/blue/east, +/area/almayer/hallways/upper/midship_hallway) "vZJ" = ( -/obj/structure/sign/safety/intercom{ - pixel_x = 8; - pixel_y = 32 - }, -/obj/structure/closet/secure_closet/guncabinet/red/armory_m39_submachinegun, -/turf/open/floor/almayer{ - icon_state = "redfull" +/turf/open/floor/almayer/green/southeast, +/area/almayer/hallways/upper/fore_hallway) +"wac" = ( +/obj/structure/window/reinforced{ + dir = 8; + health = 80 }, -/area/almayer/medical/upper_medical) +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_a_p) "wan" = ( /obj/structure/surface/table/almayer, /obj/item/facepaint/brown, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "green" - }, +/turf/open/floor/almayer/green/west, /area/almayer/living/offices) "waD" = ( -/turf/open/floor/almayer{ - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side, /area/almayer/medical/operating_room_one) -"wba" = ( -/obj/structure/sign/safety/distribution_pipes{ - pixel_x = 32 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "SE-out"; - pixel_x = 1 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "NE-out"; - pixel_x = 1; - pixel_y = 1 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/aft_hallway) -"wbe" = ( -/obj/structure/surface/table/almayer, -/obj/item/reagent_container/food/drinks/coffeecup{ - pixel_x = -8; - pixel_y = -1 - }, -/obj/item/reagent_container/food/drinks/coffee{ - pixel_y = 9 - }, -/obj/item/tool/pen{ - pixel_x = 5 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/living/briefing) -"wbh" = ( -/obj/structure/machinery/light{ - dir = 4 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" - }, -/area/almayer/hallways/starboard_hallway) -"wbj" = ( +"waJ" = ( /obj/effect/decal/warning_stripes{ - icon_state = "NE-out"; - pixel_x = 1; - pixel_y = 1 - }, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "red" + icon_state = "S" }, -/area/almayer/hallways/aft_hallway) +/turf/open/floor/almayer/red/northwest, +/area/almayer/hallways/upper/port) +"waP" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/almayer/cargo, +/area/almayer/hallways/upper/fore_hallway) "wbu" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/camera/autoname/almayer{ dir = 1; name = "ship-grade camera" }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/living/pilotbunks) -"wbw" = ( -/obj/structure/surface/table/woodentable/fancy, -/obj/structure/machinery/light{ - dir = 8 - }, -/obj/item/clothing/mask/cigarette/pipe{ - layer = 2.8; - pixel_y = -7 - }, -/obj/item/reagent_container/spray/cleaner{ - layer = 3.04; - pixel_x = -4; - pixel_y = 7 - }, -/obj/structure/machinery/door_control/brbutton{ - id = "Brig Lockdown Shutters"; - name = "Brig Lockdown"; - pixel_x = -12; - pixel_y = 26 - }, -/obj/structure/machinery/door_control/brbutton{ - id = "ARES StairsLock"; - name = "ARES Exterior Lockdown Override"; - pixel_x = -2; - pixel_y = 26 - }, -/obj/structure/machinery/door_control/brbutton{ - id = "ARES Emergency"; - name = "ARES Emergency Lockdown Override"; - pixel_x = 8; - pixel_y = 26 +"wby" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ + dir = 1; + name = "\improper Starboard Viewing Room" }, -/turf/open/floor/wood/ship, -/area/almayer/living/commandbunks) -"wbx" = ( -/obj/structure/sign/safety/hazard{ - desc = "A sign that warns of a hazardous environment nearby"; - name = "\improper Warning: Hazardous Environment" +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/turf/closed/wall/almayer, -/area/almayer/hull/lower_hull/l_f_p) +/turf/open/floor/almayer/test_floor4, +/area/almayer/maint/hull/upper/u_f_s) "wbC" = ( /obj/structure/machinery/atm{ pixel_y = 32 @@ -76309,10 +63274,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/almayer/green/north, /area/almayer/living/grunt_rnr) "wbJ" = ( /obj/structure/machinery/door_control/airlock{ @@ -76325,9 +63287,7 @@ /area/almayer/engineering/upper_engineering/notunnel) "wbN" = ( /obj/structure/machinery/vending/snack, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/briefing) "wbO" = ( /obj/effect/decal/warning_stripes{ @@ -76342,41 +63302,55 @@ icon_state = "pottedplant_21"; pixel_y = 15 }, -/turf/open/floor/almayer{ - icon_state = "bluefull" - }, +/turf/open/floor/almayer/bluefull, /area/almayer/living/pilotbunks) "wbP" = ( /obj/structure/machinery/bioprinter{ stored_metal = 125 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "sterile_green_corner" - }, +/turf/open/floor/almayer/sterile_green_corner/east, /area/almayer/medical/operating_room_four) +"wbV" = ( +/obj/structure/machinery/disposal, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/almayer/red, +/area/almayer/living/cryo_cells) "wbX" = ( /obj/structure/closet/secure_closet/cmdcabinet{ pixel_y = 24 }, /obj/item/device/cotablet, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/north, /area/almayer/command/cic) -"wcn" = ( -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_s) +"wcm" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + pixel_y = 1 + }, +/turf/open/floor/almayer/redfull, +/area/almayer/lifeboat_pumps/south2) +"wct" = ( +/obj/structure/closet/radiation, +/turf/open/floor/almayer/orange/north, +/area/almayer/engineering/lower) +"wcD" = ( +/turf/open/floor/almayer/green/north, +/area/almayer/hallways/lower/port_midship_hallway) +"wcJ" = ( +/obj/structure/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/s_bow) "wcN" = ( /obj/structure/machinery/status_display{ pixel_y = 30 }, /obj/structure/surface/table/almayer, /obj/effect/spawner/random/tool, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/shipboard/port_point_defense) "wcR" = ( /obj/structure/surface/table/almayer, @@ -76386,105 +63360,105 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/command/lifeboat) -"wdb" = ( -/obj/effect/step_trigger/clone_cleaner, -/obj/structure/sign/safety/stairs{ - pixel_x = 8; - pixel_y = 32 - }, -/turf/open/floor/plating/almayer{ - allow_construction = 0 - }, -/area/almayer/hallways/starboard_hallway) "wdf" = ( /obj/structure/bed/chair{ dir = 1 }, /turf/open/floor/almayer, /area/almayer/living/auxiliary_officer_office) -"wdo" = ( -/obj/structure/machinery/door/airlock/almayer/research/reinforced{ - dir = 8; - name = "\improper Containment Airlock" - }, -/obj/effect/decal/warning_stripes{ - icon_state = "S" +"wdh" = ( +/obj/structure/surface/table/almayer, +/obj/item/tool/extinguisher, +/obj/item/reagent_container/spray/cleaner{ + pixel_x = -8; + pixel_y = 3 }, -/obj/structure/machinery/door/poddoor/almayer/biohazard/white{ - dir = 4 +/turf/open/floor/almayer/silver/southwest, +/area/almayer/shipboard/brig/cic_hallway) +"wdv" = ( +/obj/structure/machinery/door/airlock/almayer/maint{ + name = "\improper Core Hatch" }, -/obj/structure/pipes/standard/simple/hidden/supply/no_boom{ +/obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/medical/medical_science) -"wdr" = ( -/obj/structure/machinery/power/apc/almayer, -/turf/open/floor/almayer{ - icon_state = "red" - }, -/area/almayer/shipboard/brig/main_office) -"wdv" = ( -/obj/structure/machinery/light{ +/obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/obj/structure/closet/secure_closet/guncabinet/red/armory_shotgun, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, -/area/almayer/engineering/upper_engineering) +/turf/open/floor/almayer/test_floor4, +/area/almayer/engineering/lower/engine_core) "wdz" = ( /obj/effect/landmark/start/marine/engineer/charlie, /obj/effect/landmark/late_join/charlie, /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/charlie) "wdF" = ( -/turf/open/floor/almayer{ - allow_construction = 0 - }, +/turf/open/floor/almayer/no_build, /area/almayer/shipboard/brig/processing) -"wdH" = ( -/obj/effect/landmark/yautja_teleport, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_m_p) -"wdI" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" +"wdG" = ( +/obj/structure/machinery/door/airlock/almayer/maint{ + dir = 1 }, +/turf/open/floor/almayer/test_floor4, +/area/almayer/maint/hull/lower/l_f_p) +"wdI" = ( +/turf/open/floor/almayer/red/north, /area/almayer/shipboard/starboard_missiles) "wdJ" = ( /obj/structure/surface/rack, /obj/item/cell/high/empty, /obj/item/cell/high/empty, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/engineering/upper_engineering/starboard) +"wdQ" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 6 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/port_umbilical) +"wdW" = ( +/obj/structure/machinery/light/small, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_m_p) +"wed" = ( +/obj/structure/surface/table/almayer, +/obj/item/storage/belt/utility/full, +/obj/item/clothing/glasses/welding, +/turf/open/floor/almayer/cargo, +/area/almayer/engineering/lower/engine_core) +"wee" = ( +/obj/effect/landmark/start/police, +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/cryo) "wei" = ( /obj/effect/decal/warning_stripes{ icon_state = "E"; pixel_x = 1 }, /obj/structure/machinery/door/poddoor/almayer/biohazard/white, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 }, +/turf/open/floor/almayer/test_floor4, /area/almayer/medical/hydroponics) +"wer" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/turf/open/floor/almayer/plate, +/area/almayer/hallways/lower/repair_bay) "wex" = ( /obj/structure/sign/safety/bathunisex{ pixel_x = 8; pixel_y = -25 }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/living/pilotbunks) "weC" = ( /obj/structure/disposalpipe/segment{ @@ -76505,60 +63479,25 @@ /area/almayer/living/pilotbunks) "weR" = ( /obj/structure/machinery/cryopod, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/living/offices) -"weU" = ( -/obj/structure/machinery/light/small{ +"wfn" = ( +/obj/effect/decal/cleanable/blood/oil, +/turf/open/floor/almayer/cargo_arrow, +/area/almayer/engineering/lower/workshop/hangar) +"wfx" = ( +/obj/structure/machinery/vending/cola, +/obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_m_p) -"wfd" = ( -/obj/structure/surface/table/woodentable/fancy, -/obj/item/tool/stamp/hop{ - name = "Commanding Officer's rubber stamp"; - pixel_x = -5; - pixel_y = 9 - }, -/obj/item/paper_bin/uscm{ - pixel_x = 7; - pixel_y = 6 - }, -/obj/item/tool/pen/red/clicky{ - pixel_x = -6; - pixel_y = 3 - }, -/obj/item/tool/pen/blue/clicky{ - pixel_x = -6; - pixel_y = -3 - }, -/turf/open/floor/wood/ship, -/area/almayer/living/commandbunks) -"wft" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/wood/ship, -/area/almayer/command/corporateliason) -"wfE" = ( -/turf/closed/wall/almayer, -/area/almayer/living/gym) -"wfL" = ( -/obj/structure/bed/chair/wood/normal{ - dir = 1 - }, -/obj/effect/decal/cleanable/blood, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/shipboard/brig/execution) -"wfZ" = ( -/obj/structure/desertdam/decals/road_edge{ - pixel_x = -12 +/turf/open/floor/almayer/plate, +/area/almayer/engineering/lower/workshop) +"wfE" = ( +/turf/closed/wall/almayer, +/area/almayer/living/gym) +"wfZ" = ( +/obj/structure/desertdam/decals/road_edge{ + pixel_x = -12 }, /obj/structure/desertdam/decals/road_edge{ icon_state = "road_edge_decal3"; @@ -76573,22 +63512,14 @@ /obj/structure/window/reinforced/ultra{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/east, /area/almayer/living/briefing) -"wgd" = ( -/obj/structure/sign/safety/restrictedarea{ - pixel_y = -32 - }, -/turf/open/floor/almayer{ - icon_state = "green" +"wgf" = ( +/obj/structure/sign/safety/nonpress_0g{ + pixel_x = 32 }, -/area/almayer/hallways/aft_hallway) -"wgi" = ( -/turf/open/floor/plating/plating_catwalk, -/area/almayer/shipboard/brig/main_office) +/turf/open/floor/almayer/plating/northeast, +/area/almayer/shipboard/stern_point_defense) "wgk" = ( /obj/structure/disposalpipe/segment{ dir = 2; @@ -76597,43 +63528,36 @@ /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/east, /area/almayer/command/cichallway) -"wgo" = ( -/obj/structure/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" +"wgO" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/area/almayer/hull/lower_hull/l_f_p) +/obj/structure/machinery/light, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_f_p) "wgR" = ( /obj/structure/surface/table/almayer, /obj/effect/spawner/random/technology_scanner, /obj/structure/machinery/alarm/almayer{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/shipboard/port_point_defense) -"wgU" = ( -/obj/structure/sign/safety/maint{ +"whc" = ( +/obj/structure/sign/safety/medical{ pixel_x = 8; - pixel_y = -32 + pixel_y = 32 }, -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_f_p) -"whc" = ( -/obj/structure/closet, -/obj/item/clothing/glasses/welding, -/turf/open/floor/almayer{ - icon_state = "plate" +/turf/open/floor/almayer/blue/north, +/area/almayer/hallways/upper/midship_hallway) +"whm" = ( +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12 }, -/area/almayer/hull/upper_hull/u_a_s) +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_m_s) "whA" = ( /turf/open/floor/almayer/uscm/directional, /area/almayer/living/briefing) @@ -76647,58 +63571,34 @@ pixel_x = -17; pixel_y = 7 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/west, /area/almayer/command/cichallway) -"whZ" = ( -/obj/structure/sign/safety/refridgeration{ - pixel_x = 8; - pixel_y = -32 - }, -/turf/open/floor/wood/ship, -/area/almayer/command/corporateliason) -"wie" = ( -/obj/item/device/radio/intercom{ - freerange = 1; - name = "General Listening Channel"; - pixel_y = 28 - }, -/obj/structure/machinery/cm_vending/sorted/tech/circuits, -/turf/open/floor/almayer, -/area/almayer/engineering/engineering_workshop) -"wir" = ( -/obj/structure/disposalpipe/junction{ - dir = 4; - icon_state = "pipe-j2" +"whO" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/upper/u_a_s) +"whQ" = ( +/obj/structure/closet/secure_closet/personal/cabinet{ + req_access = null }, -/obj/structure/pipes/standard/manifold/hidden/supply, -/turf/open/floor/almayer{ - allow_construction = 0 +/obj/item/storage/donut_box{ + pixel_y = 8 }, -/area/almayer/shipboard/brig/lobby) +/turf/open/floor/wood/ship, +/area/almayer/shipboard/brig/warden_office) +"wid" = ( +/turf/closed/wall/almayer/outer, +/area/almayer/maint/hull/lower/p_bow) +"wiu" = ( +/obj/structure/pipes/standard/simple/hidden/supply/no_boom, +/turf/open/floor/almayer/aicore/glowing/no_build/ai_floor3, +/area/almayer/command/airoom) "wiz" = ( /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/lifeboat_pumps/south1) -"wiF" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/obj/structure/machinery/photocopier{ - anchored = 0 - }, -/obj/structure/sign/poster/io{ - name = "propaganda poster"; - pixel_y = 32 - }, -/turf/open/floor/wood/ship, -/area/almayer/command/corporateliason) "wiG" = ( /obj/structure/sign/poster{ pixel_x = -30; @@ -76727,18 +63627,30 @@ pixel_x = 32; pixel_y = 7 }, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/southeast, /area/almayer/shipboard/brig/cic_hallway) +"wiO" = ( +/obj/structure/surface/rack, +/obj/item/tool/weldingtool, +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_a_p) +"wiQ" = ( +/obj/structure/machinery/door/poddoor/shutters/almayer/open{ + id = "vehicle1door"; + name = "Vehicle Bay One" + }, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer/plate, +/area/almayer/hallways/lower/vehiclehangar) "wiW" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/medical/hydroponics) "wjq" = ( /obj/structure/bed/chair/comfy/beige{ @@ -76748,9 +63660,7 @@ /area/almayer/command/cichallway) "wjv" = ( /obj/structure/machinery/vending/cola, -/turf/open/floor/almayer{ - icon_state = "orangefull" - }, +/turf/open/floor/almayer/orangefull, /area/almayer/engineering/upper_engineering) "wjz" = ( /obj/effect/decal/warning_stripes{ @@ -76759,28 +63669,46 @@ /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/almayer/medical/upper_medical) "wjC" = ( /obj/structure/closet/firecloset, /obj/structure/machinery/power/apc/almayer{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/shipboard/port_point_defense) +"wjL" = ( +/turf/open/floor/almayer/plate, +/area/almayer/hallways/lower/repair_bay) +"wjQ" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/prop/invuln/overhead_pipe{ + dir = 4; + pixel_y = 13 + }, +/obj/structure/prop/invuln/overhead_pipe{ + dir = 4; + pixel_x = -14; + pixel_y = 13 + }, +/obj/structure/prop/invuln/overhead_pipe{ + dir = 4; + pixel_x = 12; + pixel_y = 13 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/upper/mess) +"wjY" = ( +/obj/structure/closet/secure_closet/warrant_officer, +/turf/open/floor/wood/ship, +/area/almayer/shipboard/brig/chief_mp_office) "wka" = ( /obj/structure/surface/table/almayer, /obj/item/reagent_container/food/condiment/hotsauce/sriracha{ pixel_x = 4 }, -/turf/open/floor/almayer{ - icon_state = "emeraldfull" - }, +/turf/open/floor/almayer/emeraldfull, /area/almayer/living/briefing) "wkc" = ( /obj/structure/surface/table/reinforced/prison, @@ -76792,10 +63720,16 @@ /obj/structure/machinery/door/window/eastleft{ req_access_txt = "8" }, -/turf/open/floor/almayer{ - icon_state = "sterile_green" - }, +/obj/structure/machinery/door/firedoor/border_only/almayer, +/turf/open/floor/almayer/sterile_green, /area/almayer/medical/lockerroom) +"wks" = ( +/obj/structure/bed/chair{ + dir = 8; + pixel_y = 3 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/upper/u_m_s) "wky" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -76803,10 +63737,15 @@ /obj/structure/machinery/door/poddoor/almayer/biohazard/white{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/obj/structure/machinery/door/firedoor/border_only/almayer, +/turf/open/floor/almayer/test_floor4, /area/almayer/medical/medical_science) +"wkA" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SE-out" + }, +/turf/open/floor/almayer, +/area/almayer/command/lifeboat) "wkH" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/device/whistle{ @@ -76815,9 +63754,7 @@ /obj/structure/machinery/status_display{ pixel_y = 30 }, -/turf/open/floor/almayer{ - icon_state = "bluefull" - }, +/turf/open/floor/almayer/bluefull, /area/almayer/command/cichallway) "wkM" = ( /obj/structure/machinery/door/poddoor/shutters/almayer{ @@ -76830,26 +63767,14 @@ alert_message = "Caution: Movement detected in ARES Core."; cooldown_duration = 1200 }, -/obj/structure/machinery/door/poddoor/almayer/blended/white/open{ - closed_layer = 3.2; - id = "ARES Emergency"; - layer = 3.2; - name = "ARES Emergency Lockdown"; - needs_power = 0; - open_layer = 1.9; - plane = -7 - }, -/turf/open/floor/almayer/no_build{ - icon_state = "test_floor4" - }, +/obj/structure/machinery/door/poddoor/almayer/blended/ai_lockdown/aicore, +/turf/open/floor/almayer/no_build/test_floor4, /area/almayer/command/airoom) "wkX" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 6 }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/engineering/upper_engineering/starboard) "wlb" = ( /obj/effect/decal/warning_stripes{ @@ -76860,51 +63785,47 @@ pixel_x = 8; pixel_y = 32 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) -"wlj" = ( -/obj/structure/closet/crate, -/obj/item/stack/sheet/plasteel{ - amount = 30; - pixel_x = 4; - pixel_y = 4 - }, -/obj/item/stack/sheet/metal{ - amount = 50 - }, -/obj/structure/machinery/camera/autoname/almayer{ - dir = 8; - name = "ship-grade camera" - }, -/obj/item/stack/sheet/mineral/uranium{ - amount = 5 +"wlg" = ( +/obj/structure/surface/table/almayer, +/obj/structure/machinery/door_control{ + id = "Interrogation Shutters"; + name = "\improper Shutters"; + pixel_x = -6; + pixel_y = -6; + req_access_txt = "3" }, -/obj/structure/sign/safety/fire_haz{ - pixel_x = 32 +/obj/item/device/taperecorder{ + pixel_x = 3; + pixel_y = 3 }, -/turf/open/floor/almayer{ - icon_state = "cargo" +/obj/structure/machinery/light/small{ + dir = 8 }, -/area/almayer/engineering/engine_core) -"wlp" = ( +/turf/open/floor/almayer/red/west, +/area/almayer/shipboard/brig/interrogation) +"wlh" = ( /obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" + dir = 4; + icon_state = "pipe-c" }, -/area/almayer/hull/lower_hull/l_m_p) -"wly" = ( -/obj/structure/machinery/light{ - unacidable = 1; - unslashable = 1 +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 6 }, -/turf/open/floor/almayer{ - icon_state = "red" +/turf/open/floor/plating/plating_catwalk, +/area/almayer/squads/req) +"wlr" = ( +/turf/open/floor/almayer/silver/northeast, +/area/almayer/hallways/upper/midship_hallway) +"wlD" = ( +/obj/structure/machinery/suit_storage_unit/compression_suit/uscm, +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 }, -/area/almayer/shipboard/brig/chief_mp_office) +/turf/open/floor/almayer/plate, +/area/almayer/hallways/lower/port_umbilical) "wlE" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -76921,16 +63842,6 @@ }, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/south2) -"wlH" = ( -/obj/structure/surface/table/almayer, -/obj/structure/machinery/computer/emails{ - pixel_x = 2; - pixel_y = 5 - }, -/turf/open/floor/almayer{ - icon_state = "emeraldfull" - }, -/area/almayer/living/briefing) "wlK" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -76941,47 +63852,38 @@ }, /turf/open/floor/almayer, /area/almayer/hallways/hangar) -"wlL" = ( -/obj/structure/largecrate/random/barrel/white, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_p) "wmg" = ( /obj/structure/machinery/power/apc/almayer{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/almayer/red/north, /area/almayer/shipboard/starboard_missiles) +"wmo" = ( +/obj/structure/sign/safety/bridge{ + pixel_x = 15; + pixel_y = 32 + }, +/obj/structure/sign/safety/west{ + pixel_y = 32 + }, +/turf/open/floor/almayer/blue/northeast, +/area/almayer/hallways/upper/fore_hallway) "wmz" = ( /obj/structure/bed/chair/comfy/bravo{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "orangefull" - }, +/turf/open/floor/almayer/orangefull, /area/almayer/living/briefing) -"wmE" = ( -/obj/structure/machinery/door/window/brigdoor/southright{ - id = "Cell 4"; - name = "Cell 4" - }, -/obj/structure/sign/safety/four{ - pixel_x = 32 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/shipboard/brig/cells) "wmK" = ( /obj/structure/surface/table/almayer, /obj/item/clipboard, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/north, /area/almayer/command/computerlab) +"wmP" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/disposalpipe/segment, +/turf/open/floor/wood/ship, +/area/almayer/command/corporateliaison) "wmQ" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/medidoor{ dir = 2; @@ -76989,23 +63891,36 @@ name = "\improper Treatment Center" }, /obj/structure/machinery/door/firedoor/border_only/almayer, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/medical/lower_medical_medbay) "wmT" = ( /obj/structure/machinery/cm_vending/sorted/medical/wall_med{ pixel_x = 30 }, /obj/structure/machinery/cryopod/right, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/living/bridgebunks) +"wnb" = ( +/obj/structure/closet/secure_closet/guncabinet, +/obj/item/weapon/gun/smg/m39{ + pixel_y = 6 + }, +/obj/item/weapon/gun/smg/m39{ + pixel_y = -6 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/upper/u_m_s) "wnh" = ( -/obj/structure/window/framed/almayer/white/hull, +/obj/structure/window/framed/almayer/aicore/hull, /turf/open/floor/plating, /area/almayer/command/airoom) +"wnw" = ( +/obj/structure/machinery/flasher{ + id = "Perma 2"; + pixel_y = 24 + }, +/turf/open/floor/almayer/plate, +/area/almayer/shipboard/brig/perma) "wnL" = ( /obj/item/stack/tile/carpet{ amount = 12 @@ -77013,10 +63928,7 @@ /obj/structure/surface/rack, /obj/item/tool/crowbar/red, /obj/item/tool/screwdriver, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "green" - }, +/turf/open/floor/almayer/green/east, /area/almayer/living/grunt_rnr) "wnY" = ( /obj/item/tool/crowbar/red, @@ -77039,9 +63951,7 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/charlie) "woy" = ( /obj/item/device/radio/intercom{ @@ -77049,127 +63959,134 @@ name = "General Listening Channel"; pixel_y = 28 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/north, /area/almayer/shipboard/brig/cic_hallway) -"woG" = ( -/obj/structure/machinery/light/small, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_a_p) -"woM" = ( -/obj/structure/largecrate/supply, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_p) +"woU" = ( +/turf/closed/wall/almayer/outer, +/area/almayer/maint/hull/upper/u_m_p) "wpg" = ( /obj/structure/machinery/blackbox_recorder, -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/light_grey_single_wide_up_to_down, /area/almayer/powered/agent) -"wpj" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 2 - }, -/turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_p) -"wpw" = ( -/obj/structure/bed/chair/comfy/ares{ - dir = 1 +"wpt" = ( +/obj/structure/machinery/door/poddoor/almayer/open{ + dir = 4; + id = "CIC Lockdown"; + name = "\improper Combat Information Center Blast Door" }, -/obj/structure/pipes/vents/pump/no_boom{ - desc = "Has a valve and pump attached to it, connected to multiple gas tanks."; - name = "Security Vent" +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/turf/open/floor/almayer/no_build{ - icon_state = "plating" +/obj/structure/machinery/door/airlock/almayer/command/reinforced{ + closeOtherId = "ciclobby_s"; + name = "\improper Combat Information Center" }, -/area/almayer/command/airoom) -"wpz" = ( -/obj/item/device/radio/intercom{ - freerange = 1; - name = "General Listening Channel"; - pixel_y = 28 +/turf/open/floor/almayer/test_floor4, +/area/almayer/command/cic) +"wpu" = ( +/obj/structure/surface/table/reinforced/almayer_B, +/obj/item/device/flashlight/lamp{ + pixel_y = 8 }, -/obj/structure/closet, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/item/clothing/glasses/science{ + pixel_x = 3; + pixel_y = -3 }, -/area/almayer/living/port_emb) +/obj/item/device/flash, +/turf/open/floor/almayer/mono, +/area/almayer/medical/upper_medical) "wpI" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "green" - }, +/turf/open/floor/almayer/green/east, /area/almayer/living/grunt_rnr) +"wpS" = ( +/obj/structure/pipes/standard/simple/visible, +/obj/structure/sign/safety/nonpress_0g{ + pixel_x = 32 + }, +/turf/open/floor/almayer/orange/west, +/area/almayer/engineering/lower) "wqc" = ( /obj/structure/sign/poster{ pixel_y = 32 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "emerald" - }, +/turf/open/floor/almayer/emerald/east, /area/almayer/squads/charlie) "wqh" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; pixel_y = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) -"wqq" = ( -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 4 +"wqr" = ( +/obj/structure/sign/safety/terminal{ + pixel_x = 7; + pixel_y = 29 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/stern_hallway) -"wqu" = ( -/obj/structure/window/framed/almayer, -/turf/open/floor/plating, -/area/almayer/shipboard/brig/lobby) -"wqA" = ( -/obj/structure/machinery/status_display{ - pixel_y = 30 +/obj/structure/filingcabinet, +/turf/open/floor/almayer/plate, +/area/almayer/command/combat_correspondent) +"wqO" = ( +/obj/structure/disposalpipe/junction{ + dir = 4 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "green" +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/area/almayer/hallways/aft_hallway) -"wqE" = ( -/obj/structure/largecrate/random/case/small, /turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_p) +/area/almayer/hallways/lower/starboard_aft_hallway) "wqW" = ( /obj/structure/closet/secure_closet/CMO, /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_corner" - }, +/turf/open/floor/almayer/sterile_green_corner/north, /area/almayer/medical/upper_medical) +"wra" = ( +/obj/structure/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_a_p) +"wrr" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/obj/effect/decal/warning_stripes{ + icon_state = "SE-out"; + pixel_x = 1 + }, +/obj/structure/machinery/door_control/railings{ + pixel_y = 24 + }, +/turf/open/floor/almayer/plating/northeast, +/area/almayer/hallways/lower/vehiclehangar) +"wru" = ( +/obj/structure/machinery/light, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/starboard_fore_hallway) "wrC" = ( /obj/structure/sign/safety/distribution_pipes{ pixel_x = -17 }, /turf/open/floor/almayer, /area/almayer/living/gym) -"wrQ" = ( -/obj/structure/sign/safety/storage{ +"wrI" = ( +/turf/open/floor/almayer/plate, +/area/almayer/maint/upper/u_f_p) +"wrN" = ( +/obj/effect/step_trigger/clone_cleaner, +/obj/structure/machinery/camera/autoname/almayer{ + dir = 1; + name = "ship-grade camera" + }, +/obj/structure/blocker/forcefield/multitile_vehicles, +/obj/structure/sign/safety/stairs{ pixel_x = 8; pixel_y = -32 }, -/turf/open/floor/almayer, -/area/almayer/living/starboard_garden) +/turf/open/floor/plating/almayer/no_build, +/area/almayer/hallways/lower/port_fore_hallway) "wrT" = ( /obj/structure/surface/table/almayer, /obj/item/device/radio/marine, @@ -77179,86 +64096,102 @@ /obj/item/device/radio/marine, /obj/item/device/radio/marine, /obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/hallways/hangar) +"wrX" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/turf/open/floor/almayer/red/east, +/area/almayer/hallways/upper/port) "wse" = ( /obj/structure/pipes/standard/simple/hidden/supply/no_boom{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "sterile_green" - }, +/turf/open/floor/almayer/sterile_green, /area/almayer/medical/containment) -"wst" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/obj/effect/step_trigger/clone_cleaner, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "green" +"wsh" = ( +/obj/structure/pipes/standard/manifold/hidden/supply, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/perma) +"wsl" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/lobby) +"wsq" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" }, -/area/almayer/hallways/aft_hallway) -"wsD" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ +/obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 }, /turf/open/floor/almayer, -/area/almayer/shipboard/brig/cic_hallway) -"wsP" = ( -/obj/item/prop/helmetgarb/gunoil{ - layer = 4.2; - pixel_x = -3; - pixel_y = 6 - }, -/obj/item/prop/helmetgarb/gunoil{ - layer = 4.2; - pixel_x = -10; - pixel_y = 10 +/area/almayer/shipboard/brig/processing) +"wsw" = ( +/obj/structure/machinery/light/small{ + dir = 1 }, -/obj/item/prop/helmetgarb/gunoil{ - layer = 4.2; - pixel_x = 4; - pixel_y = 9 +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/stern) +"wsz" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/obj/item/weapon/broken_bottle{ - layer = 4.51; - pixel_x = 9; - pixel_y = 1 +/obj/structure/bed/chair{ + dir = 1 }, -/obj/structure/surface/table/almayer, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - icon_state = "plate" +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_f_s) +"wsD" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/area/almayer/living/briefing) +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/cic_hallway) "wsR" = ( /obj/structure/machinery/door/firedoor/border_only/almayer, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/squads/bravo) -"wtd" = ( -/obj/structure/machinery/vending/coffee, -/obj/item/toy/bikehorn/rubberducky{ - desc = "You feel as though this rubber duck has been here for a long time. It's Mr. Quackers! He loves you!"; - name = "Quackers"; - pixel_x = 5; - pixel_y = 17 +"wsS" = ( +/turf/open/floor/almayer/test_floor4, +/area/almayer/hallways/lower/starboard_midship_hallway) +"wtk" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_f_p) +/obj/structure/sign/safety/water{ + pixel_x = 8; + pixel_y = 32 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_m_p) +"wtn" = ( +/obj/structure/sign/safety/hvac_old{ + pixel_x = 8; + pixel_y = 32 + }, +/obj/item/storage/firstaid{ + pixel_x = -13; + pixel_y = 13 + }, +/obj/item/clipboard, +/obj/item/paper, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_a_s) "wty" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "cargo_arrow" - }, +/turf/open/floor/almayer/cargo_arrow/north, /area/almayer/squads/delta) +"wtD" = ( +/obj/structure/machinery/door/airlock/almayer/security/glass{ + name = "Brig" + }, +/turf/open/floor/almayer/test_floor4, +/area/almayer/maint/hull/lower/p_bow) "wtM" = ( /obj/structure/machinery/light{ unacidable = 1; @@ -77266,36 +64199,77 @@ }, /turf/open/floor/almayer, /area/almayer/shipboard/brig/cells) -"wuc" = ( -/obj/structure/machinery/door/airlock/almayer/medical/glass{ - name = "\improper Brig Medbay"; - req_access = null; - req_one_access = null; - req_one_access_txt = "20;3" +"wtY" = ( +/obj/structure/surface/table/almayer, +/obj/item/folder/white{ + pixel_x = 5; + pixel_y = 5 }, -/obj/structure/machinery/door/firedoor/border_only/almayer, -/obj/structure/pipes/standard/simple/hidden/supply{ +/obj/item/paper, +/obj/item/restraint/handcuffs, +/obj/item/clothing/mask/cigarette/cigar/classic, +/obj/item/coin/silver{ + desc = "A small coin, bearing the falling falcons insignia."; + name = "falling falcons challenge coin" + }, +/obj/structure/machinery/light{ + dir = 1 + }, +/turf/open/floor/wood/ship, +/area/almayer/shipboard/brig/chief_mp_office) +"wub" = ( +/obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +/turf/open/floor/almayer/mono, +/area/almayer/medical/upper_medical) +"wud" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_y = 1 }, -/area/almayer/shipboard/brig/surgery) -"wul" = ( -/obj/structure/machinery/light/small{ +/turf/open/floor/almayer/orangefull, +/area/almayer/engineering/lower/workshop) +"wuh" = ( +/obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12 + }, +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12; + pixel_y = 12 + }, +/obj/structure/sign/safety/autoopenclose{ + pixel_y = 32 + }, +/obj/structure/sign/safety/water{ + pixel_x = 15; + pixel_y = 32 + }, /turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_a_s) -"wun" = ( -/obj/structure/machinery/light{ - dir = 1 +/area/almayer/maint/hull/lower/l_f_p) +"wui" = ( +/obj/structure/machinery/cryopod{ + pixel_y = 6 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" +/obj/structure/sign/safety/cryo{ + pixel_x = -17 + }, +/turf/open/floor/almayer/cargo, +/area/almayer/maint/upper/u_m_p) +"wuk" = ( +/obj/structure/sign/safety/maint{ + pixel_x = 8; + pixel_y = -32 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "SW-out"; + pixel_x = -1 }, -/area/almayer/engineering/lower_engineering) +/turf/open/floor/almayer, +/area/almayer/command/lifeboat) "wup" = ( /obj/structure/supply_drop/echo, /turf/open/floor/almayer, @@ -77308,111 +64282,109 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/squads/bravo) -"wuH" = ( -/obj/structure/closet/crate/freezer, -/obj/item/reagent_container/food/snacks/sliceable/pizza/vegetablepizza, -/obj/item/reagent_container/food/snacks/sliceable/pizza/mushroompizza, -/obj/item/reagent_container/food/snacks/sliceable/pizza/vegetablepizza, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_p) -"wvb" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/structure/surface/table/reinforced/almayer_B, -/turf/open/floor/almayer{ - icon_state = "plate" +"wuB" = ( +/turf/open/floor/almayer/orange/west, +/area/almayer/engineering/lower/workshop) +"wuS" = ( +/obj/structure/machinery/door/airlock/almayer/maint{ + dir = 1 }, -/area/almayer/living/captain_mess) +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer/test_floor4, +/area/almayer/maint/upper/u_a_s) +"wuT" = ( +/obj/structure/machinery/light/small{ + dir = 8 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/turf/open/floor/almayer/orange/southwest, +/area/almayer/engineering/upper_engineering/starboard) +"wvb" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/surface/table/reinforced/almayer_B, +/turf/open/floor/almayer/plate, +/area/almayer/living/captain_mess) "wvj" = ( /obj/item/stack/cable_coil, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/almayer/red/northwest, /area/almayer/lifeboat_pumps/south1) +"wvo" = ( +/obj/structure/filingcabinet, +/turf/open/floor/wood/ship, +/area/almayer/command/corporateliaison) +"wvE" = ( +/obj/structure/surface/table/almayer, +/obj/structure/machinery/computer/cameras/almayer_network{ + dir = 4 + }, +/obj/structure/machinery/light{ + dir = 1 + }, +/obj/structure/sign/safety/terminal{ + pixel_y = 32 + }, +/turf/open/floor/almayer/red/north, +/area/almayer/shipboard/brig/chief_mp_office) "wvI" = ( /obj/item/paper_bin/uscm{ pixel_y = 7 }, /obj/item/tool/pen, /obj/structure/surface/table/reinforced/black, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/shipboard/brig/perma) -"wvT" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/shipboard/brig/processing) "wvU" = ( /obj/structure/machinery/recharge_station, /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/living/synthcloset) -"wwk" = ( -/obj/structure/surface/table/almayer, -/obj/effect/landmark/map_item, -/turf/open/floor/almayer{ - icon_state = "orangefull" +"wvX" = ( +/obj/structure/sign/safety/analysis_lab{ + pixel_y = 26 }, -/area/almayer/living/briefing) +/obj/structure/sign/safety/terminal{ + pixel_x = 15; + pixel_y = 26 + }, +/turf/open/floor/almayer/silver/north, +/area/almayer/hallways/upper/midship_hallway) "wwr" = ( /obj/structure/machinery/cryopod{ layer = 3.1; pixel_y = 13 }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/squads/charlie) -"wwu" = ( -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 1 - }, -/obj/structure/disposalpipe/segment{ +"wwv" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_hallway) -"wwD" = ( -/obj/structure/bed/chair/comfy/orange, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_p) +/turf/open/floor/almayer/plate, +/area/almayer/hallways/lower/port_midship_hallway) +"wwE" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_fore_hallway) "wwJ" = ( /obj/structure/surface/table/almayer, /obj/item/paper, /obj/item/tool/pen, -/turf/open/floor/almayer{ - icon_state = "orange" - }, +/turf/open/floor/almayer/orange, /area/almayer/engineering/upper_engineering) "wwW" = ( /obj/structure/machinery/camera/autoname/almayer/containment/hidden{ dir = 8; name = "ship-grade camera" }, -/turf/open/floor/almayer/research/containment/floor2{ - dir = 8 - }, +/turf/open/floor/almayer/research/containment/floor2/west, /area/almayer/medical/containment/cell/cl) "wxc" = ( /obj/structure/disposalpipe/segment{ @@ -77423,27 +64395,53 @@ }, /obj/structure/machinery/iv_drip, /obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side, /area/almayer/medical/lower_medical_medbay) "wxj" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/northeast, /area/almayer/engineering/upper_engineering/starboard) +"wxp" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/disposalpipe/segment, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_midship_hallway) "wxq" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/medical/lower_medical_medbay) +"wxu" = ( +/obj/structure/sign/safety/water{ + pixel_x = 8; + pixel_y = -32 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_m_p) +"wxy" = ( +/turf/closed/wall/almayer/outer, +/area/almayer/maint/hull/upper/p_stern) +"wxD" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_aft_hallway) +"wxF" = ( +/obj/structure/closet/secure_closet/cmdcabinet{ + desc = "A bulletproof cabinet containing communications equipment."; + name = "communications cabinet"; + pixel_y = 24; + req_access = null; + req_one_access_txt = "3" + }, +/obj/item/device/radio/listening_bug/radio_linked/mp{ + pixel_y = 8 + }, +/obj/item/device/radio/listening_bug/radio_linked/mp, +/turf/open/floor/almayer/red/northeast, +/area/almayer/shipboard/brig/warden_office) "wxU" = ( /obj/item/ashtray/bronze{ pixel_x = 7; @@ -77464,82 +64462,44 @@ pixel_x = -5; pixel_y = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/grunt_rnr) -"wya" = ( -/obj/structure/platform, -/obj/structure/largecrate/random/case/double{ - layer = 2.98 - }, -/obj/structure/sign/safety/life_support{ - pixel_x = 32 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_s) "wyt" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/structure/machinery/microwave{ pixel_x = -2; pixel_y = 7 }, -/turf/open/floor/almayer{ - icon_state = "bluefull" - }, +/turf/open/floor/almayer/bluefull, /area/almayer/command/cichallway) -"wyv" = ( -/obj/structure/machinery/door_control{ - id = "ARES JoeCryo"; - name = "Working Joe Cryogenics Lockdown"; - pixel_x = -24; - pixel_y = -8; - req_one_access_txt = "91;92" - }, -/obj/effect/landmark/late_join/working_joe, -/obj/effect/landmark/start/working_joe, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/command/airoom) -"wyO" = ( -/obj/structure/largecrate/random/barrel/red, -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12 +"wyz" = ( +/obj/structure/bed/chair{ + dir = 4 }, -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12; - pixel_y = 12 +/turf/open/floor/plating, +/area/almayer/maint/lower/constr) +"wyG" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/machinery/door/airlock/almayer/maint{ + dir = 1 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_s) +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer/test_floor4, +/area/almayer/maint/hull/lower/l_m_s) "wyQ" = ( /obj/structure/surface/table/reinforced/almayer_B, -/obj/structure/machinery/door_control{ - id = "ARES Emergency"; - indestructible = 1; - name = "ARES Emergency Lockdown"; - req_one_access_txt = "91;92" - }, -/turf/open/floor/almayer/no_build{ - icon_state = "plating" - }, +/obj/structure/machinery/aicore_lockdown, +/turf/open/floor/almayer/no_build/plating, /area/almayer/command/airoom) -"wzg" = ( -/obj/structure/bed/chair{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_a_s) -"wzx" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "NW-out"; - pixel_y = 1 - }, +"wzy" = ( +/obj/effect/step_trigger/clone_cleaner, /turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_s) +/area/almayer/hallways/lower/port_fore_hallway) +"wzJ" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/disposalpipe/segment, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_aft_hallway) "wzZ" = ( /obj/structure/machinery/door/airlock/almayer/medical/glass{ dir = 1; @@ -77549,125 +64509,85 @@ req_access = null; req_one_access = null }, -/turf/open/floor/almayer{ - icon_state = "sterile_green" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/medical/lower_medical_medbay) -"wAd" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/machinery/light{ - dir = 8 +"wAE" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 }, -/turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_p) -"wAR" = ( +/turf/open/floor/almayer/test_floor4, +/area/almayer/hallways/upper/fore_hallway) +"wAK" = ( /obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/obj/structure/machinery/light, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "green" - }, -/area/almayer/hallways/port_hallway) -"wAU" = ( -/obj/structure/sign/poster/music{ - pixel_x = -27 - }, -/obj/structure/surface/table/almayer, -/obj/effect/decal/cleanable/dirt, -/obj/item/device/flashlight/lamp{ - pixel_x = 15 - }, -/obj/item/paper_bin/uscm{ - pixel_x = -7; - pixel_y = 6 + icon_state = "S" }, -/obj/item/tool/pen{ - pixel_x = -10; - pixel_y = -1 +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_umbilical) +"wBw" = ( +/obj/structure/pipes/vents/pump, +/obj/structure/machinery/status_display{ + pixel_y = 30 }, -/obj/item/tool/pen{ - pixel_x = 3; - pixel_y = -4 +/turf/open/floor/almayer/green/north, +/area/almayer/hallways/lower/starboard_midship_hallway) +"wBI" = ( +/obj/effect/step_trigger/clone_cleaner, +/obj/structure/sign/safety/maint{ + pixel_x = -17 }, -/obj/item/tool/pen{ - pixel_x = -11; - pixel_y = 5 +/turf/open/floor/almayer, +/area/almayer/hallways/upper/starboard) +"wCe" = ( +/obj/structure/machinery/light, +/turf/open/floor/almayer/orangecorner, +/area/almayer/hallways/upper/aft_hallway) +"wCi" = ( +/obj/structure/window/framed/almayer/white, +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 }, -/turf/open/floor/almayer{ - icon_state = "plate" +/turf/open/floor/plating, +/area/almayer/medical/lockerroom) +"wCk" = ( +/obj/structure/surface/table/almayer, +/obj/structure/machinery/computer/cameras/wooden_tv/ot{ + pixel_y = 4 }, -/area/almayer/living/briefing) -"wBY" = ( -/obj/structure/pipes/vents/pump, /turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_s) -"wCh" = ( -/obj/structure/sign/safety/storage{ - pixel_x = 8; - pixel_y = -32 - }, -/turf/open/floor/almayer{ - icon_state = "plate" +/area/almayer/engineering/lower/workshop/hangar) +"wCn" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SW-out" }, -/area/almayer/hull/upper_hull/u_a_s) +/turf/open/floor/almayer/blue, +/area/almayer/hallways/upper/fore_hallway) "wCs" = ( /obj/structure/machinery/vending/security, /obj/structure/machinery/power/apc/almayer{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/briefing) "wCI" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "redcorner" - }, +/turf/open/floor/almayer/redcorner/east, /area/almayer/living/briefing) -"wCM" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/structure/machinery/light{ - dir = 1 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, -/area/almayer/shipboard/brig/processing) -"wCT" = ( -/obj/effect/step_trigger/teleporter_vector{ - name = "Almayer_AresDown"; - vector_x = 97; - vector_y = -65 - }, -/obj/structure/machinery/light{ - dir = 1 - }, -/obj/structure/stairs{ - dir = 1 - }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, -/area/almayer/command/airoom) -"wDm" = ( +"wDg" = ( /obj/effect/decal/warning_stripes{ - icon_state = "NE-out"; - pixel_y = 1 + icon_state = "E"; + pixel_x = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" +/turf/open/floor/almayer/red/southwest, +/area/almayer/hallways/upper/starboard) +"wDq" = ( +/obj/structure/largecrate/random/case/small, +/obj/structure/machinery/light/small{ + dir = 8 }, -/area/almayer/hull/lower_hull/l_a_s) +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_a_p) +"wDr" = ( +/turf/closed/wall/almayer/outer, +/area/almayer/maint/hull/lower/stairs) "wDs" = ( /obj/structure/machinery/seed_extractor, /obj/structure/sign/safety/terminal{ @@ -77682,9 +64602,7 @@ pixel_x = 20; pixel_y = -26 }, -/turf/open/floor/almayer{ - icon_state = "green" - }, +/turf/open/floor/almayer/green, /area/almayer/shipboard/brig/cells) "wDy" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -77695,39 +64613,48 @@ }, /turf/open/floor/almayer, /area/almayer/command/computerlab) +"wDC" = ( +/obj/structure/machinery/door/window/brigdoor/southright{ + id = "Cell 5"; + name = "Cell 5" + }, +/obj/structure/sign/safety/five{ + pixel_x = -17 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/cells) +"wDG" = ( +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 1 + }, +/turf/open/floor/almayer/green/north, +/area/almayer/hallways/lower/port_midship_hallway) "wDH" = ( /obj/structure/morgue, /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/medical/morgue) "wDJ" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "emerald" - }, +/turf/open/floor/almayer/emerald/north, /area/almayer/squads/charlie_delta_shared) "wDK" = ( /obj/structure/machinery/cryopod/right{ layer = 3.1; pixel_y = 13 }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/squads/bravo) -"wDR" = ( -/obj/structure/machinery/door/airlock/almayer/maint{ - dir = 1 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +"wDM" = ( +/turf/closed/wall/almayer/reinforced/temphull, +/area/almayer/engineering/upper_engineering) +"wDP" = ( +/obj/structure/sign/safety/storage{ + pixel_x = -17 }, -/area/almayer/hull/upper_hull/u_a_s) +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_f_p) "wEd" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/supply, @@ -77735,9 +64662,7 @@ icon_state = "E"; pixel_x = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/alpha) "wEg" = ( /obj/structure/machinery/door/poddoor/shutters/almayer{ @@ -77748,10 +64673,12 @@ /obj/structure/machinery/door/airlock/almayer/maint{ dir = 1 }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/light_grey_single_wide_up_to_down, /area/almayer/powered/agent) +"wEw" = ( +/obj/effect/landmark/start/pilot/dropship_pilot, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/living/pilotbunks) "wEI" = ( /obj/structure/surface/table/reinforced/black, /obj/item/tool/pen, @@ -77761,31 +64688,41 @@ /obj/item/clipboard{ pixel_x = 12 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/engineering/upper_engineering/port) +"wEK" = ( +/obj/structure/machinery/firealarm{ + pixel_y = 28 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_midship_hallway) "wEO" = ( /obj/structure/platform_decoration{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/almayer/red/north, /area/almayer/lifeboat_pumps/south2) -"wFb" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "sterile_green_corner" +"wET" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/secure_closet/guncabinet, +/obj/item/weapon/gun/rifle/l42a{ + pixel_y = 6 }, +/obj/item/weapon/gun/rifle/l42a, +/turf/open/floor/almayer/plate, +/area/almayer/maint/upper/u_m_s) +"wFb" = ( +/turf/open/floor/almayer/sterile_green_corner/east, /area/almayer/medical/lower_medical_medbay) -"wFm" = ( -/obj/structure/machinery/light/small{ - dir = 1 +"wFi" = ( +/obj/structure/machinery/cm_vending/sorted/medical/marinemed, +/obj/structure/sign/safety/medical{ + pixel_x = 8; + pixel_y = 32 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_m_s) +/obj/structure/medical_supply_link, +/turf/open/floor/almayer/plate, +/area/almayer/shipboard/panic) "wFn" = ( /obj/structure/surface/rack, /obj/item/clothing/suit/storage/marine/light/vest, @@ -77797,10 +64734,11 @@ name = "General Listening Channel"; pixel_y = -28 }, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, +/turf/open/floor/almayer/redfull, /area/almayer/command/cic) +"wFs" = ( +/turf/closed/wall/almayer, +/area/almayer/shipboard/brig/starboard_hallway) "wFz" = ( /obj/item/prop{ desc = "Predecessor to the M56 the M38 was known for its extreme reliability in the field. This particular M38D is fondly remembered for its stalwart defence of the hangar bay during the Arcturian commando raid of the USS Almayer on Io."; @@ -77813,9 +64751,36 @@ }, /turf/open/floor/almayer, /area/almayer/hallways/hangar) +"wFN" = ( +/obj/structure/window/framed/almayer, +/obj/structure/machinery/door/poddoor/shutters/almayer{ + dir = 4; + id = "OfficeSafeRoom"; + name = "\improper Office Safe Room" + }, +/turf/open/floor/almayer/plate, +/area/almayer/shipboard/panic) +"wFQ" = ( +/obj/structure/machinery/cm_vending/clothing/maintenance_technician, +/turf/open/floor/almayer/plate, +/area/almayer/engineering/upper_engineering/port) "wFR" = ( /turf/open/floor/almayer, /area/almayer/living/gym) +"wFX" = ( +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12 + }, +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12; + pixel_y = 12 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_a_s) +"wGa" = ( +/obj/structure/pipes/vents/scrubber, +/turf/open/floor/almayer, +/area/almayer/maint/hull/upper/u_f_s) "wGb" = ( /obj/structure/pipes/vents/scrubber{ dir = 1 @@ -77826,27 +64791,12 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/west, /area/almayer/engineering/upper_engineering/port) -"wGi" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_a_p) -"wGA" = ( -/obj/effect/step_trigger/clone_cleaner, -/obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/starboard_hallway) +"wGe" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_f_p) "wGE" = ( /obj/structure/disposalpipe/segment, /obj/effect/landmark/start/marine/leader/delta, @@ -77874,15 +64824,17 @@ dir = 4; icon_state = "pipe-c" }, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "emerald" - }, +/turf/open/floor/almayer/emerald/northwest, /area/almayer/living/port_emb) -"wHo" = ( -/turf/open/floor/almayer{ - icon_state = "emerald" +"wHn" = ( +/obj/structure/sign/safety/autoopenclose{ + pixel_x = 7; + pixel_y = 32 }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_fore_hallway) +"wHo" = ( +/turf/open/floor/almayer/emerald, /area/almayer/living/briefing) "wHp" = ( /obj/structure/bed/sofa/vert/grey, @@ -77891,6 +64843,12 @@ }, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/south1) +"wHr" = ( +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 1 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/upper/aft_hallway) "wIr" = ( /obj/structure/machinery/cm_vending/clothing/senior_officer{ req_access = list(); @@ -77900,10 +64858,12 @@ pixel_x = 8; pixel_y = 32 }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/squads/req) +"wIu" = ( +/obj/structure/largecrate/random/case, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_a_s) "wIC" = ( /turf/closed/wall/almayer/reinforced, /area/almayer/shipboard/brig/chief_mp_office) @@ -77924,19 +64884,32 @@ /obj/item/reagent_container/food/condiment/saltshaker{ pixel_x = -4 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/almayer/living/grunt_rnr) "wIQ" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "silvercorner" - }, +/turf/open/floor/almayer/silvercorner/east, /area/almayer/shipboard/brig/cic_hallway) +"wIX" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/obj/structure/disposalpipe/up/almayer{ + dir = 8; + id = "almayerlink" + }, +/turf/open/floor/almayer/green/east, +/area/almayer/hallways/lower/port_midship_hallway) "wJb" = ( /turf/open/floor/plating/plating_catwalk, /area/almayer/medical/lower_medical_medbay) +"wJh" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 + }, +/obj/structure/window/framed/almayer, +/turf/open/floor/plating, +/area/almayer/shipboard/brig/cryo) "wJo" = ( /obj/structure/machinery/door/airlock/almayer/research/reinforced{ access_modified = 1; @@ -77945,20 +64918,12 @@ req_one_access_txt = "1;5" }, /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/medical/upper_medical) -"wJw" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, -/obj/structure/machinery/computer/supplycomp/vehicle, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/vehiclehangar) +"wJC" = ( +/obj/structure/largecrate/random/barrel/yellow, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/s_bow) "wJD" = ( /obj/structure/bed/chair{ dir = 8; @@ -77972,35 +64937,74 @@ icon_state = "E"; pixel_x = 1 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "emerald" - }, +/turf/open/floor/almayer/emerald/east, /area/almayer/squads/charlie) "wJH" = ( /turf/closed/wall/almayer/research/containment/wall/east, /area/almayer/medical/containment/cell/cl) -"wJL" = ( -/turf/open/floor/almayer{ - icon_state = "bluefull" +"wKb" = ( +/obj/structure/bed/chair{ + dir = 8 }, -/area/almayer/living/briefing) -"wKn" = ( -/obj/structure/surface/rack, -/obj/item/facepaint/sniper, -/turf/open/floor/almayer{ - icon_state = "plate" +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_f_s) +"wKc" = ( +/obj/effect/decal/cleanable/vomit, +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_21" + }, +/turf/open/floor/almayer/mono, +/area/almayer/engineering/upper_engineering/port) +"wKm" = ( +/obj/item/device/radio/intercom{ + freerange = 1; + name = "General Listening Channel"; + pixel_y = 28 }, -/area/almayer/hull/upper_hull/u_m_s) +/turf/open/floor/almayer/green/north, +/area/almayer/hallways/lower/port_aft_hallway) "wKF" = ( /obj/structure/machinery/power/apc/almayer{ cell_type = /obj/item/cell/hyper; dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/command/combat_correspondent) +"wKJ" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/machinery/light{ + dir = 1 + }, +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/cells) +"wKL" = ( +/obj/structure/machinery/door/airlock/almayer/research/reinforced{ + closeOtherId = "containment_s"; + dir = 8; + name = "\improper Containment Airlock" + }, +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/obj/structure/machinery/door/poddoor/almayer/biohazard/white{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply/no_boom{ + dir = 4 + }, +/turf/open/floor/almayer/test_floor4, +/area/almayer/medical/medical_science) +"wKN" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/starboard_fore_hallway) "wKP" = ( /obj/effect/decal/warning_stripes{ icon_state = "E"; @@ -78016,15 +65020,6 @@ }, /turf/open/floor/plating, /area/almayer/medical/containment) -"wKS" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "red" - }, -/area/almayer/command/lifeboat) "wLi" = ( /obj/structure/machinery/door_control/airlock{ id = "s_engi"; @@ -78034,23 +65029,8 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/engineering/upper_engineering/notunnel) -"wLk" = ( -/obj/item/coin/silver{ - desc = "A small coin, bearing the falling falcons insignia."; - name = "falling falcons challenge coin" - }, -/obj/structure/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_m_p) "wLm" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "plating_striped" - }, +/turf/open/floor/almayer/plating_striped/east, /area/almayer/living/cryo_cells) "wLu" = ( /obj/structure/stairs/perspective{ @@ -78067,10 +65047,38 @@ name = "Secure Reinforced Air Vent"; welded = 1 }, -/turf/open/floor/almayer/research/containment/floor2{ - dir = 1 - }, +/turf/open/floor/almayer/research/containment/floor2/north, /area/almayer/medical/containment/cell) +"wLC" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/sign/safety/bridge{ + pixel_y = 32 + }, +/obj/structure/sign/safety/reception{ + pixel_x = 15; + pixel_y = 32 + }, +/turf/open/floor/almayer/test_floor4, +/area/almayer/hallways/upper/fore_hallway) +"wLF" = ( +/obj/structure/machinery/door/airlock/almayer/medical/glass{ + closeOtherId = "brigmed"; + name = "\improper Brig Medbay"; + req_access = null; + req_one_access = null; + req_one_access_txt = "20;3" + }, +/obj/structure/machinery/door/firedoor/border_only/almayer, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer/test_floor4, +/area/almayer/shipboard/brig/medical) "wLG" = ( /obj/item/bedsheet/blue{ layer = 3.2 @@ -78097,10 +65105,7 @@ layer = 3.5; pixel_y = 13 }, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "blue" - }, +/turf/open/floor/almayer/blue/southeast, /area/almayer/living/port_emb) "wLK" = ( /obj/structure/surface/table/almayer, @@ -78110,52 +65115,81 @@ /obj/item/tool/kitchen/tray{ pixel_y = 12 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/almayer/living/grunt_rnr) "wLN" = ( /obj/structure/pipes/standard/manifold/hidden/supply/no_boom{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "sterile_green" - }, +/turf/open/floor/almayer/sterile_green, /area/almayer/medical/containment) -"wLV" = ( -/obj/structure/machinery/vending/cola{ - density = 0; - pixel_y = 16 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - icon_state = "plate" +"wLS" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/area/almayer/living/briefing) -"wMm" = ( -/obj/structure/machinery/disposal, -/obj/structure/disposalpipe/trunk{ +/obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/turf/open/floor/almayer/red, +/area/almayer/shipboard/brig/starboard_hallway) +"wMl" = ( +/obj/structure/machinery/camera/autoname/almayer{ + dir = 8; + name = "ship-grade camera" + }, +/obj/structure/sign/safety/two{ + pixel_x = 32; + pixel_y = -8 + }, +/obj/structure/sign/safety/ammunition{ + pixel_x = 32; + pixel_y = 7 + }, +/turf/open/floor/almayer/orange/east, +/area/almayer/hallways/lower/starboard_midship_hallway) +"wMv" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/turf/open/floor/almayer/dark_sterile, +/area/almayer/living/auxiliary_officer_office) +"wMB" = ( +/obj/structure/barricade/handrail{ + dir = 1; + pixel_y = 2 }, -/area/almayer/hull/upper_hull/u_a_s) +/turf/open/floor/almayer/test_floor5, +/area/almayer/hallways/lower/starboard_midship_hallway) +"wMF" = ( +/obj/structure/largecrate/random/case/double, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/s_bow) "wMG" = ( /obj/structure/machinery/cryopod/right{ pixel_y = 6 }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/squads/alpha) +"wMI" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/obj/item/device/radio/intercom{ + freerange = 1; + name = "General Listening Channel"; + pixel_y = 28 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_aft_hallway) "wMO" = ( /obj/structure/machinery/door/poddoor/almayer/biohazard/white{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/obj/structure/machinery/door/firedoor/border_only/almayer, +/turf/open/floor/almayer/test_floor4, /area/almayer/medical/medical_science) "wNl" = ( /obj/structure/surface/table/almayer, @@ -78177,78 +65211,85 @@ pixel_x = 8; pixel_y = -3 }, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/southwest, /area/almayer/living/port_emb) -"wNm" = ( -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 8 +"wNt" = ( +/turf/open/floor/almayer/redcorner/north, +/area/almayer/shipboard/brig/processing) +"wNz" = ( +/obj/structure/stairs, +/obj/effect/projector{ + name = "Almayer_Up1"; + vector_x = -19; + vector_y = 98 + }, +/turf/open/floor/plating/almayer/no_build, +/area/almayer/hallways/lower/starboard_midship_hallway) +"wNC" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 + }, +/turf/open/floor/almayer/test_floor4, +/area/almayer/hallways/upper/midship_hallway) +"wNG" = ( +/obj/effect/projector{ + name = "Almayer_Up2"; + vector_x = -1; + vector_y = 100 }, -/turf/open/floor/almayer{ - icon_state = "plate" +/turf/open/floor/almayer/no_build, +/area/almayer/hallways/lower/starboard_fore_hallway) +"wNS" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" }, -/area/almayer/hull/lower_hull) +/turf/open/floor/almayer/plate, +/area/almayer/command/lifeboat) "wNT" = ( /obj/structure/platform, /turf/open/floor/almayer, /area/almayer/living/briefing) -"wNU" = ( -/obj/structure/machinery/door/airlock/almayer/maint{ - access_modified = 1; - dir = 2; - req_one_access = list(2,34,30) - }, -/obj/structure/machinery/door/poddoor/almayer/open{ - id = "Brig Lockdown Shutters"; - name = "\improper Brig Lockdown Shutter" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hull/upper_hull/u_f_p) -"wOh" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orangecorner" - }, -/area/almayer/hallways/stern_hallway) "wOt" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 }, /turf/open/floor/plating/plating_catwalk, /area/almayer/engineering/upper_engineering/starboard) +"wOv" = ( +/obj/structure/platform, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_a_s) "wOK" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/southwest, /area/almayer/engineering/upper_engineering/port) +"wPa" = ( +/obj/structure/platform{ + dir = 4 + }, +/obj/item/reagent_container/glass/rag, +/obj/structure/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_a_p) "wPf" = ( /obj/structure/sign/safety/reception{ pixel_x = 32; pixel_y = 7 }, -/turf/open/floor/almayer{ - icon_state = "red" - }, +/turf/open/floor/almayer/red, /area/almayer/lifeboat_pumps/south1) -"wPk" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "redcorner" +"wPi" = ( +/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ + pixel_y = 25 }, -/area/almayer/shipboard/brig/execution) +/turf/open/floor/almayer/cargo_arrow/west, +/area/almayer/hallways/lower/port_midship_hallway) "wPz" = ( -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/medical/hydroponics) "wPC" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -78257,77 +65298,59 @@ /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "cargo_arrow" - }, +/turf/open/floor/almayer/cargo_arrow/west, /area/almayer/squads/charlie) "wPF" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/structure/machinery/computer/cameras/almayer_network/vehicle{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "bluefull" - }, +/turf/open/floor/almayer/bluefull, /area/almayer/command/cichallway) -"wQa" = ( -/obj/structure/sign/safety/hazard{ - pixel_x = 15; - pixel_y = 32 - }, -/obj/structure/closet/secure_closet/guncabinet/red/armory_m4a3_pistol, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, -/area/almayer/medical/upper_medical) -"wQg" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "greencorner" - }, -/area/almayer/hallways/aft_hallway) -"wQk" = ( -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/obj/structure/machinery/status_display{ - pixel_y = -32 +"wQu" = ( +/obj/effect/projector{ + name = "Almayer_Up3"; + vector_x = -1; + vector_y = 102 }, -/obj/structure/machinery/vending/coffee, -/obj/structure/pipes/standard/simple/hidden/supply{ +/turf/open/floor/almayer/no_build/plate, +/area/almayer/hallways/lower/port_fore_hallway) +"wQA" = ( +/obj/structure/pipes/standard/simple/visible{ dir = 5 }, -/turf/open/floor/almayer{ - icon_state = "red" - }, -/area/almayer/shipboard/brig/main_office) -"wQv" = ( -/obj/structure/machinery/light{ - dir = 8 - }, -/turf/open/floor/wood/ship, -/area/almayer/command/corporateliason) -"wQx" = ( -/obj/structure/disposalpipe/segment{ +/obj/structure/machinery/light, +/turf/open/floor/almayer, +/area/almayer/engineering/lower) +"wQD" = ( +/turf/open/floor/almayer/orange/southeast, +/area/almayer/engineering/lower/engine_core) +"wQI" = ( +/obj/structure/surface/table/almayer, +/obj/structure/machinery/computer/emails{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer/plate, +/area/almayer/maint/upper/u_f_s) +"wRf" = ( +/obj/structure/machinery/light/small, +/obj/structure/sign/safety/nonpress_0g{ + pixel_x = 15; + pixel_y = -32 }, -/area/almayer/hull/upper_hull/u_a_s) -"wRm" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 +/obj/structure/sign/safety/press_area_ag{ + pixel_y = 32 }, -/obj/structure/machinery/vending/snack{ - density = 0; - pixel_y = 16 +/turf/open/floor/almayer/test_floor4, +/area/almayer/hallways/lower/port_umbilical) +"wRk" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + pixel_y = 1 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/shipboard/brig/cells) +/turf/open/floor/almayer, +/area/almayer/command/lifeboat) "wRN" = ( /obj/structure/machinery/portable_atmospherics/hydroponics, /obj/item/seeds/goldappleseed, @@ -78335,9 +65358,7 @@ unacidable = 1; unslashable = 1 }, -/turf/open/floor/almayer{ - icon_state = "green" - }, +/turf/open/floor/almayer/green, /area/almayer/shipboard/brig/cells) "wRO" = ( /obj/structure/disposalpipe/segment{ @@ -78363,19 +65384,8 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 9 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/briefing) -"wSk" = ( -/obj/structure/machinery/camera/autoname/almayer{ - dir = 1; - name = "ship-grade camera" - }, -/turf/open/floor/almayer{ - icon_state = "orangecorner" - }, -/area/almayer/hallways/stern_hallway) "wSm" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -78386,16 +65396,46 @@ /turf/open/floor/almayer, /area/almayer/shipboard/brig/processing) "wSn" = ( -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/almayer/engineering/laundry) +"wSu" = ( +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 8 + }, +/obj/structure/disposalpipe/junction{ + dir = 4; + icon_state = "pipe-j2" + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/lobby) +"wSx" = ( +/obj/structure/platform_decoration, +/obj/structure/machinery/power/apc/almayer{ + dir = 4 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_a_p) +"wSB" = ( +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/upper/u_a_p) +"wSQ" = ( +/turf/open/floor/almayer/silver/north, +/area/almayer/hallways/lower/repair_bay) "wSR" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 1 }, /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/brig/cic_hallway) +"wSV" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SE-out"; + pixel_x = 1 + }, +/obj/effect/decal/cleanable/blood/oil, +/obj/effect/decal/cleanable/blood/oil/streak, +/turf/open/floor/almayer/plating/northeast, +/area/almayer/engineering/lower/engine_core) "wSX" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -78403,19 +65443,13 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "green" - }, +/turf/open/floor/almayer/green/east, /area/almayer/living/grunt_rnr) "wTd" = ( /obj/structure/bed/chair/office/dark{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/northwest, /area/almayer/command/securestorage) "wTg" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -78424,16 +65458,25 @@ /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) "wTm" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/almayer/red/east, /area/almayer/living/briefing) +"wTn" = ( +/obj/structure/machinery/light/small{ + dir = 1; + pixel_y = 20 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_a_s) +"wTu" = ( +/obj/structure/surface/table/almayer, +/obj/item/tool/extinguisher, +/obj/item/tool/extinguisher, +/obj/item/tool/crowbar, +/turf/open/floor/almayer/orange/southwest, +/area/almayer/maint/upper/mess) "wTw" = ( /obj/structure/machinery/cm_vending/sorted/attachments/squad{ req_access = null; @@ -78441,24 +65484,20 @@ req_one_access_txt = "17;18;21"; vend_y_offset = 0 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/charlie_delta_shared) -"wTy" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/lifeboat_pumps/south1) -"wTJ" = ( -/obj/structure/barricade/handrail, -/obj/structure/barricade/handrail{ - dir = 4 +"wTB" = ( +/obj/structure/surface/table/almayer, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/device/radio/intercom{ + freerange = 1; + name = "General Listening Channel"; + pixel_y = 28 }, -/obj/structure/largecrate/random, -/turf/open/floor/almayer, -/area/almayer/engineering/upper_engineering/port) +/turf/open/floor/almayer/cargo, +/area/almayer/engineering/lower/engine_core) "wTM" = ( /turf/closed/wall/almayer/research/containment/wall/south, /area/almayer/medical/containment/cell) @@ -78466,9 +65505,7 @@ /obj/structure/machinery/power/apc/almayer{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/auxiliary_officer_office) "wUd" = ( /obj/structure/surface/table/almayer, @@ -78479,28 +65516,13 @@ /obj/item/storage/fancy/candle_box, /turf/open/floor/plating/plating_catwalk, /area/almayer/medical/morgue) -"wUz" = ( -/obj/structure/sign/safety/life_support{ - pixel_x = 8; - pixel_y = 32 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/aft_hallway) -"wUN" = ( -/obj/structure/machinery/optable, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_p) -"wUO" = ( -/obj/structure/machinery/door/poddoor/shutters/almayer/open{ - id = "InnerShutter"; - name = "\improper Saferoom Shutters" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hull/lower_hull/l_f_s) +"wUJ" = ( +/obj/structure/largecrate/random/barrel/white, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_m_p) +"wUK" = ( +/turf/open/floor/almayer/orangecorner/west, +/area/almayer/engineering/lower/workshop/hangar) "wUP" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 5 @@ -78511,20 +65533,8 @@ /obj/structure/bed/chair/comfy{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/almayer/blue/west, /area/almayer/living/pilotbunks) -"wUS" = ( -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_p) "wUX" = ( /obj/structure/surface/rack, /obj/item/reagent_container/food/snacks/sliceable/cheesewheel/mature{ @@ -78535,13 +65545,26 @@ pixel_x = 1; pixel_y = -5 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/grunt_rnr) -"wVb" = ( -/turf/closed/wall/almayer/outer, -/area/almayer/hull/lower_hull/l_a_s) +"wVh" = ( +/obj/structure/machinery/light{ + unacidable = 1; + unslashable = 1 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/warden_office) +"wVm" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_aft_hallway) +"wVt" = ( +/obj/effect/step_trigger/clone_cleaner, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/upper/starboard) "wVy" = ( /obj/structure/window/reinforced{ dir = 8 @@ -78561,16 +65584,14 @@ /obj/structure/disposalpipe/trunk{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/charlie_delta_shared) -"wVz" = ( -/obj/structure/machinery/light/small{ - dir = 4 +"wVA" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 5 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_p) +/turf/open/floor/almayer/plate, +/area/almayer/engineering/lower) "wVB" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -78578,135 +65599,61 @@ /obj/structure/bed/chair/comfy{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "bluefull" - }, +/turf/open/floor/almayer/bluefull, /area/almayer/living/bridgebunks) -"wVD" = ( +"wVN" = ( +/obj/item/roller, /obj/structure/surface/rack, -/obj/item/tool/wirecutters, -/obj/item/tool/shovel/snow, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_s) -"wVP" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_p) -"wVV" = ( -/obj/structure/machinery/cryopod{ - pixel_y = 6 - }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/shipboard/brig/cryo) +/obj/item/roller, +/turf/open/floor/almayer/plate, +/area/almayer/shipboard/panic) "wVW" = ( /turf/closed/wall/almayer/reinforced, /area/almayer/command/cic) -"wVY" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer{ - allow_construction = 0 - }, -/area/almayer/shipboard/brig/lobby) -"wWf" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/landmark/yautja_teleport, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_p) "wWg" = ( /obj/structure/pipes/vents/pump, /turf/open/floor/almayer, /area/almayer/living/chapel) -"wWk" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/almayer{ - icon_state = "silver" +"wWl" = ( +/obj/structure/surface/table/almayer, +/obj/structure/machinery/computer/general_air_control/large_tank_control{ + name = "Lower Mixed Air Control" }, -/area/almayer/hallways/aft_hallway) +/turf/open/floor/almayer/plate, +/area/almayer/engineering/lower) "wWm" = ( -/turf/open/floor/almayer/research/containment/corner_var1{ - icon_state = "containment_corner_variant_2" - }, +/turf/open/floor/almayer/research/containment/corner_var1/containment_corner_variant_2, /area/almayer/medical/containment/cell) "wWq" = ( /obj/structure/surface/table/reinforced/black, /obj/item/clothing/suit/space/compression/uscm, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/engineering/upper_engineering/port) +"wWt" = ( +/obj/effect/projector{ + name = "Almayer_Up1"; + vector_x = -19; + vector_y = 98 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/starboard_midship_hallway) "wWz" = ( /turf/closed/wall/almayer/research/containment/wall/north, /area/almayer/medical/containment/cell) "wWC" = ( -/turf/open/floor/almayer{ - dir = 10; - icon_state = "blue" - }, +/turf/open/floor/almayer/blue/southwest, /area/almayer/living/pilotbunks) -"wWJ" = ( -/obj/structure/machinery/light{ - dir = 8 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "S"; - pixel_y = -1 - }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, -/area/almayer/living/port_emb) -"wWL" = ( -/obj/item/tool/screwdriver, -/obj/structure/platform_decoration{ - dir = 8 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_p) "wWP" = ( /obj/structure/prop/cash_register/broken, /obj/structure/machinery/light/small, -/turf/open/floor/almayer{ - icon_state = "test_floor5" - }, +/turf/open/floor/almayer/test_floor5, /area/almayer/squads/req) -"wWQ" = ( -/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ - pixel_y = -25 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/port_hallway) "wWR" = ( -/obj/structure/machinery/medical_pod/bodyscanner{ - dir = 8 - }, /obj/structure/machinery/status_display{ pixel_y = 30 }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/medical/medical_science) -"wWT" = ( -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hull/upper_hull/u_f_p) "wWX" = ( /obj/effect/landmark/start/marine/engineer/delta, /obj/effect/landmark/late_join/delta, @@ -78716,10 +65663,18 @@ /obj/structure/machinery/floodlight/landing{ name = "bolted floodlight" }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/lifeboat_pumps/north2) +"wXl" = ( +/obj/structure/platform, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_a_p) +"wXz" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/starboard_hallway) "wXH" = ( /obj/structure/bed/chair{ dir = 1 @@ -78727,42 +65682,41 @@ /turf/open/floor/almayer, /area/almayer/squads/charlie_delta_shared) "wXI" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "greencorner" - }, +/turf/open/floor/almayer/greencorner/north, /area/almayer/living/grunt_rnr) +"wXJ" = ( +/obj/structure/largecrate/random/case/small, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_a_s) "wXT" = ( /obj/structure/machinery/door/airlock/almayer/engineering{ name = "\improper Engineering Storage" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/hallways/hangar) -"wYj" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W"; - pixel_x = -1 - }, -/obj/structure/bed/sofa/south/white/left{ - pixel_y = 16 - }, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "silver" - }, -/area/almayer/hull/upper_hull/u_m_p) +"wYa" = ( +/turf/open/floor/almayer/red/southwest, +/area/almayer/lifeboat_pumps/north2) +"wYd" = ( +/obj/effect/landmark/yautja_teleport, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_a_p) +"wYr" = ( +/obj/structure/machinery/gel_refiller, +/turf/open/floor/almayer/sterile_green_side, +/area/almayer/medical/lower_medical_medbay) "wYA" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/surface/table/almayer, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/north1) +"wYG" = ( +/obj/structure/largecrate/random/barrel/white, +/turf/open/floor/almayer/cargo, +/area/almayer/maint/hull/lower/l_m_s) "wYK" = ( /obj/structure/barricade/handrail/medical, -/turf/open/floor/almayer{ - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side, /area/almayer/medical/lower_medical_lobby) "wYS" = ( /obj/structure/disposalpipe/segment{ @@ -78771,10 +65725,7 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/southwest, /area/almayer/medical/lower_medical_medbay) "wYY" = ( /obj/structure/window/framed/almayer, @@ -78787,20 +65738,6 @@ }, /turf/open/floor/plating, /area/almayer/engineering/ce_room) -"wYZ" = ( -/obj/structure/machinery/door/airlock/almayer/secure/reinforced{ - name = "\improper Armourer's Workshop"; - req_access = null - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hull/upper_hull/u_m_s) -"wZa" = ( -/turf/open/floor/almayer{ - icon_state = "redcorner" - }, -/area/almayer/shipboard/brig/general_equipment) "wZv" = ( /obj/structure/prop/invuln{ desc = "An inflated membrane. This one is puncture proof. Wow!"; @@ -78809,66 +65746,33 @@ name = "umbilical wall" }, /obj/structure/blocker/invisible_wall, -/turf/open/floor/almayer_hull{ - dir = 4; - icon_state = "outerhull_dir" - }, +/turf/open/floor/almayer_hull/outerhull_dir/east, /area/almayer/engineering/upper_engineering/port) -"wZy" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/obj/structure/sign/safety/maint{ - pixel_x = 8; - pixel_y = -32 - }, -/turf/open/floor/almayer, -/area/almayer/engineering/engineering_workshop/hangar) "wZE" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/book/manual/surgery, /obj/structure/sign/safety/biohazard{ pixel_x = -17 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/west, /area/almayer/medical/operating_room_four) -"wZH" = ( -/obj/structure/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_a_s) -"wZM" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/turf/open/floor/almayer{ - icon_state = "blue" - }, -/area/almayer/hallways/aft_hallway) -"wZT" = ( -/obj/structure/sign/safety/hvac_old{ - pixel_x = 8; - pixel_y = -32 - }, -/obj/item/clipboard, -/obj/item/paper, -/obj/item/tool/pen, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_a_p) +"wZL" = ( +/obj/structure/pipes/vents/pump, +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/perma) "wZX" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, /turf/open/floor/plating/plating_catwalk, /area/almayer/command/lifeboat) +"xac" = ( +/obj/structure/sign/safety/ladder{ + pixel_x = 8; + pixel_y = 32 + }, +/turf/open/floor/almayer/blue/north, +/area/almayer/hallways/upper/midship_hallway) "xad" = ( /obj/item/device/radio/intercom{ freerange = 1; @@ -78876,17 +65780,12 @@ pixel_y = 28 }, /obj/structure/closet/firecloset, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/shipboard/port_point_defense) -"xae" = ( -/obj/structure/surface/table/almayer, -/obj/item/organ/lungs/prosthetic, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_m_p) +"xas" = ( +/obj/structure/largecrate/random/case/double, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/p_bow) "xaC" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/tool/kitchen/utensil/pfork{ @@ -78900,22 +65799,6 @@ }, /turf/open/floor/almayer, /area/almayer/squads/charlie_delta_shared) -"xaF" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "SE-out" - }, -/obj/effect/decal/warning_stripes{ - icon_state = "NE-out"; - pixel_x = 1; - pixel_y = 1 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/aft_hallway) "xaM" = ( /obj/structure/surface/table/almayer, /obj/item/newspaper{ @@ -78947,61 +65830,55 @@ /obj/item/tool/kitchen/utensil/spoon{ pixel_x = -8 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/grunt_rnr) "xaS" = ( -/turf/open/floor/almayer/uscm/directional{ - dir = 5 - }, +/turf/open/floor/almayer/uscm/directional/northeast, /area/almayer/command/lifeboat) "xba" = ( -/turf/closed/wall/almayer/reinforced, +/turf/closed/wall/almayer/reinforced/temphull, /area/almayer/living/cryo_cells) "xbd" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; pixel_y = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/briefing) +"xbg" = ( +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_m_p) "xbk" = ( -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/gym) -"xbN" = ( -/obj/structure/surface/rack{ - density = 0; - pixel_y = 16 - }, -/obj/structure/janitorialcart, -/obj/item/tool/mop, -/turf/open/floor/plating, -/area/almayer/command/airoom) -"xcp" = ( -/obj/structure/stairs/perspective{ - icon_state = "p_stair_ew_full_cap"; - layer = 3.5 - }, -/obj/structure/platform{ +"xbI" = ( +/obj/structure/machinery/power/apc/almayer{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_m_s) +"xcI" = ( +/obj/structure/sign/safety/water{ + pixel_x = 8; + pixel_y = 32 }, -/area/almayer/engineering/engine_core) -"xct" = ( -/obj/item/reagent_container/food/snacks/wrapped/barcardine, -/obj/structure/surface/rack, -/turf/open/floor/almayer{ - icon_state = "plate" +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/p_bow) +"xcV" = ( +/obj/structure/window/framed/almayer, +/obj/structure/machinery/door/poddoor/shutters/almayer{ + id = "OfficeSafeRoom"; + name = "\improper Office Safe Room" + }, +/turf/open/floor/almayer/plate, +/area/almayer/shipboard/panic) +"xdf" = ( +/obj/structure/pipes/standard/manifold/fourway/hidden/supply, +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/area/almayer/hull/upper_hull/u_a_p) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/port_midship_hallway) "xdx" = ( /obj/structure/surface/rack, /obj/item/storage/firstaid/regular/empty, @@ -79011,53 +65888,112 @@ pixel_x = -17; pixel_y = -6 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/north, /area/almayer/medical/lower_medical_medbay) -"xeG" = ( -/obj/structure/machinery/door/airlock/almayer/maint, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +"xdA" = ( +/obj/structure/surface/rack{ + density = 0; + pixel_y = 16 }, -/area/almayer/hull/upper_hull/u_m_p) -"xfc" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/structure/sign/safety/cryo{ - pixel_x = 36 +/obj/structure/machinery/faxmachine/uscm/command{ + density = 0; + department = "AI Core"; + pixel_y = 32 + }, +/turf/open/floor/almayer/aicore/no_build, +/area/almayer/command/airoom) +"xdJ" = ( +/obj/structure/machinery/light{ + dir = 4; + invisibility = 101 + }, +/turf/open/floor/almayer/cargo, +/area/almayer/shipboard/brig/execution) +"xdP" = ( +/obj/structure/surface/table/almayer, +/obj/item/trash/uscm_mre, +/obj/effect/decal/cleanable/dirt, +/obj/item/device/flashlight/lamp{ + layer = 3.3; + pixel_x = 15 + }, +/obj/item/reagent_container/food/drinks/cans/souto/diet/grape{ + pixel_x = -7; + pixel_y = 10 + }, +/turf/open/floor/almayer/emeraldfull, +/area/almayer/living/briefing) +"xee" = ( +/obj/structure/disposalpipe/junction{ + dir = 4; + icon_state = "pipe-j2" }, /turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull) -"xfh" = ( -/obj/structure/largecrate/supply/floodlights, -/turf/open/floor/almayer{ - icon_state = "plate" +/area/almayer/maint/hull/lower/l_f_p) +"xef" = ( +/obj/structure/surface/table/almayer, +/obj/item/folder/yellow, +/obj/structure/machinery/keycard_auth{ + pixel_x = -8; + pixel_y = 25 }, -/area/almayer/hull/upper_hull/u_m_p) -"xfi" = ( -/obj/structure/machinery/power/smes/buildable, -/obj/structure/machinery/light{ - dir = 4 +/obj/structure/sign/safety/high_rad{ + pixel_x = 32; + pixel_y = -8 + }, +/obj/structure/sign/safety/hazard{ + pixel_x = 32; + pixel_y = 7 + }, +/obj/structure/sign/safety/terminal{ + pixel_x = 14; + pixel_y = 26 }, -/turf/open/floor/almayer{ - icon_state = "tcomms" +/turf/open/floor/almayer/plate, +/area/almayer/engineering/lower/workshop) +"xer" = ( +/obj/structure/machinery/power/apc/almayer, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_f_s) +"xeU" = ( +/obj/structure/machinery/door/airlock/almayer/generic{ + name = "\improper Laundry Room"; + req_one_access = list(19,7); + req_access = list() }, -/area/almayer/engineering/engine_core) +/turf/open/floor/almayer/test_floor4, +/area/almayer/engineering/laundry) "xfm" = ( -/obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/window/framed/almayer, +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 + }, /turf/open/floor/plating, /area/almayer/living/cafeteria_officer) -"xfw" = ( -/obj/structure/surface/table/almayer, -/obj/item/storage/fancy/cigarettes/lucky_strikes, -/obj/item/packageWrap, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "green" +"xfq" = ( +/obj/structure/sign/safety/hvac_old{ + pixel_x = 8; + pixel_y = -32 }, -/area/almayer/squads/req) +/obj/item/clipboard, +/obj/item/paper, +/obj/item/tool/pen, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_a_p) +"xfK" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/obj/structure/transmitter{ + name = "Kitchen Telephone"; + phone_category = "Almayer"; + phone_id = "Kitchen"; + pixel_x = -8; + pixel_y = 29 + }, +/obj/structure/machinery/vending/ingredients, +/turf/open/floor/almayer/plate, +/area/almayer/living/grunt_rnr) "xfO" = ( /obj/effect/decal/warning_stripes{ icon_state = "E"; @@ -79066,10 +66002,7 @@ /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/east, /area/almayer/living/bridgebunks) "xfT" = ( /obj/structure/machinery/disposal, @@ -79080,107 +66013,80 @@ dir = 8; pixel_x = -24 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_corner" - }, +/turf/open/floor/almayer/sterile_green_corner/west, /area/almayer/medical/operating_room_one) +"xga" = ( +/turf/closed/wall/almayer, +/area/almayer/hallways/upper/aft_hallway) "xgh" = ( /obj/structure/pipes/vents/scrubber{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "sterile_green" - }, +/turf/open/floor/almayer/sterile_green, /area/almayer/medical/lower_medical_lobby) +"xgk" = ( +/obj/structure/pipes/vents/scrubber, +/turf/open/floor/almayer/greencorner/north, +/area/almayer/hallways/lower/starboard_midship_hallway) "xgm" = ( -/obj/structure/reagent_dispensers/oxygentank, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/obj/structure/reagent_dispensers/fueltank/oxygentank, +/turf/open/floor/almayer/plate, /area/almayer/engineering/upper_engineering/starboard) -"xgn" = ( +"xgr" = ( /obj/structure/ladder{ height = 1; - id = "ForePortMaint" + id = "AftPortMaint" }, /obj/structure/sign/safety/ladder{ pixel_x = 8; pixel_y = -32 }, /turf/open/floor/plating/almayer, -/area/almayer/hull/lower_hull/l_f_p) -"xgr" = ( -/obj/structure/machinery/alarm/almayer{ +/area/almayer/maint/hull/lower/l_a_p) +"xgJ" = ( +/obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/wood/ship, -/area/almayer/command/corporateliason) -"xgx" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "SE-out"; - pixel_x = 1 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" +/obj/structure/machinery/cm_vending/sorted/medical/blood/bolted, +/turf/open/floor/almayer/sterile_green_side/north, +/area/almayer/medical/lockerroom) +"xgN" = ( +/obj/structure/bed/chair/comfy/bravo{ + dir = 1 }, -/area/almayer/hallways/vehiclehangar) -"xgE" = ( /obj/effect/decal/cleanable/dirt, -/obj/item/storage/toolbox/mechanical{ - pixel_x = 4; - pixel_y = -3 +/obj/structure/prop/holidays/string_lights{ + dir = 8; + pixel_x = 29 }, -/turf/open/floor/almayer{ - icon_state = "plate" +/turf/open/floor/almayer/plate, +/area/almayer/living/briefing) +"xgP" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 10 }, -/area/almayer/hull/upper_hull/u_m_s) -"xgJ" = ( -/obj/structure/machinery/cm_vending/sorted/medical/blood, -/obj/structure/machinery/light{ - dir = 1 +/turf/open/floor/almayer/mono, +/area/almayer/medical/upper_medical) +"xgS" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_side" +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12 }, -/area/almayer/medical/lockerroom) -"xgL" = ( -/obj/item/clothing/head/welding{ - pixel_y = 6 +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12; + pixel_y = 12 }, -/obj/structure/surface/table/reinforced/almayer_B, -/obj/structure/sign/safety/hvac_old{ +/obj/structure/sign/safety/distribution_pipes{ pixel_x = 8; pixel_y = 32 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_p) -"xgS" = ( -/obj/structure/largecrate/supply/supplies/mre{ - desc = "A supply crate containing everything you need to stop a CLF uprising."; - name = "\improper USCM crate 'FOB supplies'" - }, -/obj/item/folded_tent/big{ - pixel_x = -6; - pixel_y = 10 - }, -/obj/item/storage/box/mousetraps{ - pixel_x = 3; - pixel_y = 12 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/living/port_emb) +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_m_p) "xhn" = ( /obj/structure/largecrate/random/case/double, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/lifeboat_pumps/south1) "xhx" = ( /obj/structure/machinery/disposal, @@ -79189,123 +66095,114 @@ }, /turf/open/floor/almayer, /area/almayer/shipboard/brig/cells) -"xhE" = ( -/obj/structure/bed/chair/bolted{ - dir = 8 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/shipboard/brig/main_office) -"xhM" = ( -/obj/structure/machinery/door/airlock/almayer/security/glass/reinforced{ - dir = 1; - name = "\improper Brig" - }, -/obj/structure/machinery/door/poddoor/almayer/open{ - id = "Brig Lockdown Shutters"; - name = "\improper Brig Lockdown Shutter" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hull/upper_hull/u_f_s) +"xhO" = ( +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_a_p) "xhQ" = ( /obj/structure/window/framed/almayer, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/bravo) "xhU" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/starboard_hallway) +"xhW" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/area/almayer/hull/upper_hull/u_a_p) +/obj/structure/pipes/standard/manifold/hidden/supply, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_midship_hallway) "xhZ" = ( /obj/structure/bed/chair/comfy/beige{ dir = 4 }, /turf/open/floor/carpet, /area/almayer/command/cichallway) -"xiz" = ( -/obj/structure/prop/invuln/lattice_prop{ - icon_state = "lattice12"; - pixel_y = -16 +"xik" = ( +/obj/structure/machinery/shower{ + dir = 8 }, +/obj/item/toy/inflatable_duck, +/obj/structure/window/reinforced, /turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_s) -"xiC" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" +/area/almayer/shipboard/brig/cells) +"xiH" = ( +/obj/structure/largecrate/random/barrel/blue, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_f_s) +"xiP" = ( +/obj/structure/closet/secure_closet/engineering_welding{ + req_one_access_txt = "7;23;27" }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/s_bow) +"xiU" = ( +/obj/structure/machinery/portable_atmospherics/hydroponics, +/obj/item/tool/minihoe{ + pixel_x = -4; + pixel_y = -4 }, -/turf/open/floor/almayer, -/area/almayer/engineering/engine_core) +/obj/item/reagent_container/glass/fertilizer/ez, +/obj/item/seeds/ambrosiavulgarisseed, +/obj/item/tool/plantspray/weeds, +/obj/structure/machinery/firealarm{ + pixel_y = 28 + }, +/turf/open/floor/wood/ship, +/area/almayer/command/corporateliaison) +"xiV" = ( +/turf/closed/wall/almayer/outer, +/area/almayer/maint/hull/upper/p_bow) +"xiW" = ( +/obj/structure/machinery/power/apc/almayer{ + dir = 1 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/upper/u_a_p) "xjb" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ access_modified = 1; name = "\improper Main Kitchen"; req_one_access_txt = "30;19" }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/almayer/living/grunt_rnr) -"xjw" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 2 - }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" +"xjt" = ( +/obj/structure/surface/table/woodentable/fancy, +/obj/structure/machinery/computer/card{ + dir = 4; + pixel_x = 2 }, -/area/almayer/engineering/upper_engineering/port) +/turf/open/floor/carpet, +/area/almayer/living/commandbunks) "xjz" = ( -/turf/open/floor/almayer{ - icon_state = "plating_striped" - }, +/turf/open/floor/almayer/plating_striped, /area/almayer/command/lifeboat) -"xjC" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "NE-out"; - pixel_x = 1; - pixel_y = 1 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/engineering/engine_core) "xjD" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 10 }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/lifeboat_pumps/north1) -"xjG" = ( -/obj/structure/machinery/door_control{ - id = "Interrogation Shutters"; - name = "\improper Shutters"; - pixel_x = 24; - pixel_y = 12; - req_access_txt = "3" +"xjF" = ( +/obj/structure/machinery/light{ + dir = 1 }, -/obj/structure/machinery/camera/autoname/almayer{ - dir = 8; - name = "ship-grade camera" +/obj/structure/surface/table/almayer, +/obj/structure/machinery/computer/secure_data{ + dir = 4 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "red" +/obj/structure/sign/safety/terminal{ + pixel_x = 3; + pixel_y = 27 + }, +/obj/structure/sign/safety/rewire{ + pixel_x = 15; + pixel_y = 27 }, -/area/almayer/shipboard/brig/main_office) +/turf/open/floor/almayer/red/west, +/area/almayer/shipboard/brig/processing) "xjK" = ( /obj/structure/sign/safety/hazard{ pixel_y = 32 @@ -79314,9 +66211,7 @@ pixel_x = 15; pixel_y = 32 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) "xjW" = ( /obj/structure/sign/safety/hazard{ @@ -79329,26 +66224,40 @@ /obj/structure/pipes/vents/pump, /turf/open/floor/almayer, /area/almayer/shipboard/starboard_point_defense) +"xkb" = ( +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12 + }, +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12; + pixel_y = 12 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_m_s) +"xkc" = ( +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/s_bow) "xkd" = ( /turf/closed/wall/almayer/reinforced, /area/almayer/shipboard/brig/cells) -"xkC" = ( -/obj/structure/machinery/light{ - dir = 8 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "emerald" - }, -/area/almayer/hallways/port_hallway) -"xkY" = ( -/obj/structure/bed/chair/comfy/alpha{ +"xkB" = ( +/obj/structure/bed/chair/comfy/charlie{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer/plate, /area/almayer/living/briefing) +"xkN" = ( +/obj/structure/machinery/door_control{ + id = "laddernorthwest"; + name = "North West Ladders Shutters"; + pixel_x = 25; + req_one_access_txt = "2;3;12;19"; + throw_range = 15 + }, +/obj/effect/step_trigger/clone_cleaner, +/turf/open/floor/almayer/greencorner/east, +/area/almayer/hallways/lower/starboard_fore_hallway) "xlk" = ( /obj/structure/surface/table/almayer, /turf/open/floor/almayer, @@ -79357,39 +66266,16 @@ /obj/structure/machinery/power/apc/almayer{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orangecorner" - }, +/turf/open/floor/almayer/orangecorner/east, /area/almayer/engineering/ce_room) -"xlD" = ( -/obj/structure/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_s) -"xlX" = ( -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_a_s) -"xlY" = ( -/obj/structure/surface/table/almayer, -/obj/item/storage/toolbox/mechanical, -/obj/item/storage/toolbox/mechanical, -/obj/structure/machinery/light{ +"xlO" = ( +/obj/structure/filingcabinet, +/obj/item/folder/yellow, +/obj/structure/machinery/power/apc/almayer{ dir = 1 }, -/obj/structure/machinery/firealarm{ - pixel_y = 28 - }, -/obj/item/storage/toolbox/electrical{ - pixel_y = 8 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/engineering_workshop) +/turf/open/floor/almayer/orange/north, +/area/almayer/engineering/lower/workshop/hangar) "xmg" = ( /obj/structure/surface/table/almayer, /obj/structure/flora/pottedplant{ @@ -79398,29 +66284,36 @@ pixel_x = -2; pixel_y = 10 }, -/turf/open/floor/almayer{ - icon_state = "silverfull" - }, +/turf/open/floor/almayer/silverfull, /area/almayer/shipboard/brig/cic_hallway) -"xmv" = ( -/obj/structure/surface/table/reinforced/almayer_B, -/obj/structure/machinery/computer/cameras/almayer{ - dir = 1 +"xmn" = ( +/obj/structure/surface/rack, +/obj/item/tool/weldpack, +/obj/item/storage/toolbox/mechanical{ + pixel_x = 1; + pixel_y = 7 }, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/item/storage/toolbox/mechanical/green{ + pixel_x = 1; + pixel_y = -1 }, -/area/almayer/hull/lower_hull/l_f_s) +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_f_p) "xmJ" = ( /obj/structure/closet, /obj/structure/sign/safety/bathunisex{ pixel_x = -16; pixel_y = 8 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/port_emb) +"xmP" = ( +/obj/structure/machinery/camera/autoname/almayer{ + dir = 1; + name = "ship-grade camera" + }, +/turf/open/floor/almayer/orangecorner, +/area/almayer/hallways/upper/aft_hallway) "xmT" = ( /obj/structure/machinery/cryopod{ pixel_y = 6 @@ -79428,55 +66321,31 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/medical/lower_medical_medbay) -"xne" = ( -/obj/structure/machinery/door/poddoor/almayer/blended{ - id = "RoomDivider"; - layer = 3.1; - name = "\improper Room Divider" - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/command/corporateliason) -"xnl" = ( -/obj/structure/machinery/door/airlock/almayer/secure/reinforced{ - name = "\improper Exterior Airlock"; - req_access = null - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +"xnh" = ( +/obj/structure/closet, +/obj/item/clothing/ears/earmuffs, +/obj/item/clothing/glasses/regular/hipster, +/turf/open/floor/almayer/plate, +/area/almayer/maint/upper/u_a_s) +"xnz" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 }, -/area/almayer/hull/lower_hull/l_a_p) +/turf/open/floor/almayer/red/northeast, +/area/almayer/command/lifeboat) "xnI" = ( /obj/effect/landmark/start/requisition, /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/req) -"xnQ" = ( -/obj/structure/closet/secure_closet/fridge/meat/stock, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/living/grunt_rnr) -"xnR" = ( -/obj/structure/machinery/door/airlock/almayer/maint{ - dir = 1; - name = "\improper Engineering Storage" - }, -/obj/structure/machinery/door/firedoor/border_only/almayer{ +"xnX" = ( +/obj/structure/machinery/power/apc/almayer{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/engineering/upper_engineering) -"xnY" = ( -/obj/structure/largecrate/random/barrel/yellow, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_s) +/turf/open/floor/almayer/plate, +/area/almayer/maint/upper/u_a_s) "xoe" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -79487,102 +66356,99 @@ /obj/structure/machinery/status_display{ pixel_y = -29 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "bluecorner" - }, +/turf/open/floor/almayer/bluecorner/west, /area/almayer/squads/delta) -"xoh" = ( -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" +"xoj" = ( +/turf/open/floor/almayer, +/area/almayer/engineering/lower/workshop) +"xos" = ( +/obj/structure/machinery/firealarm{ + pixel_y = 28 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_a_s) +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_fore_hallway) +"xoB" = ( +/turf/closed/wall/almayer/reinforced, +/area/almayer/maint/hull/upper/u_f_s) "xoJ" = ( /obj/structure/machinery/door/airlock/almayer/maint{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/shipboard/port_point_defense) "xoO" = ( -/turf/open/floor/almayer{ - dir = 10; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/southwest, /area/almayer/engineering/upper_engineering/port) -"xpd" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 8 - }, -/turf/open/floor/almayer{ - icon_state = "plate" +"xpc" = ( +/obj/structure/machinery/camera/autoname/almayer{ + dir = 1; + name = "ship-grade camera" }, -/area/almayer/hull/upper_hull/u_f_s) -"xpf" = ( -/obj/structure/bed/chair{ - dir = 4 +/turf/open/floor/almayer/green, +/area/almayer/hallways/lower/starboard_midship_hallway) +"xpi" = ( +/obj/structure/sink{ + dir = 8; + pixel_x = -12; + pixel_y = 2 }, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/structure/mirror{ + pixel_x = -29 }, -/area/almayer/hull/lower_hull/l_f_p) -"xpo" = ( -/obj/structure/machinery/light, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "silver" +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 }, -/area/almayer/shipboard/brig/cic_hallway) -"xps" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 1 +/turf/open/floor/almayer/dark_sterile, +/area/almayer/living/commandbunks) +"xpl" = ( +/obj/structure/machinery/camera/autoname/almayer{ + dir = 8; + name = "ship-grade camera" }, -/obj/structure/machinery/door/airlock/multi_tile/almayer/secdoor/glass/reinforced{ - access_modified = 1; - name = "\improper Brig"; - req_access = null; - req_one_access_txt = "1;3" +/obj/structure/sign/safety/four{ + pixel_x = 31; + pixel_y = -8 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +/obj/structure/sign/safety/ammunition{ + pixel_x = 32; + pixel_y = 7 }, -/area/almayer/shipboard/brig/lobby) -"xpt" = ( -/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ - pixel_y = 25 +/turf/open/floor/almayer/blue/east, +/area/almayer/hallways/lower/port_midship_hallway) +"xpw" = ( +/obj/structure/machinery/medical_pod/sleeper{ + dir = 8 }, -/turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_p) -"xpI" = ( -/obj/structure/stairs{ +/turf/open/floor/almayer/dark_sterile, +/area/almayer/shipboard/brig/medical) +"xpL" = ( +/obj/structure/machinery/light/small{ dir = 4 }, -/obj/effect/projector{ - name = "Almayer_Up2"; - vector_x = -1; - vector_y = 100 - }, -/turf/open/floor/plating/almayer{ - allow_construction = 0 - }, -/area/almayer/hallways/starboard_hallway) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_m_p) "xpT" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) -"xqp" = ( -/obj/structure/machinery/body_scanconsole{ - dir = 8; - layer = 3.1 +"xpZ" = ( +/obj/structure/stairs/perspective{ + icon_state = "p_stair_sn_full_cap" + }, +/obj/structure/platform{ + dir = 8 }, +/turf/open/floor/almayer/plating/northeast, +/area/almayer/engineering/lower/engine_core) +"xqh" = ( +/obj/structure/surface/table/almayer, +/obj/item/tool/weldingtool, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/upper/u_m_s) +"xqp" = ( /obj/structure/disposalpipe/trunk{ dir = 1 }, @@ -79593,16 +66459,12 @@ name = "Requisitions Delivery Unit"; pixel_y = 28 }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/obj/structure/machinery/xenoanalyzer, +/turf/open/floor/almayer/mono, /area/almayer/medical/medical_science) "xqv" = ( /obj/structure/bed/sofa/south/white/right, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/northeast, /area/almayer/medical/lower_medical_lobby) "xqy" = ( /obj/structure/window/framed/almayer/white, @@ -79621,135 +66483,167 @@ }, /turf/closed/wall/almayer, /area/almayer/command/securestorage) -"xqM" = ( -/obj/structure/pipes/vents/pump, -/obj/structure/bed/chair/comfy/delta{ - dir = 8 +"xqQ" = ( +/obj/structure/machinery/door/poddoor/almayer/blended{ + id = "RoomDivider"; + layer = 3.1; + name = "\improper Room Divider" }, -/turf/open/floor/almayer{ - icon_state = "bluefull" +/turf/open/floor/almayer/plate, +/area/almayer/command/corporateliaison) +"xrg" = ( +/obj/structure/sign/safety/hazard{ + pixel_x = 32; + pixel_y = 7 }, -/area/almayer/living/briefing) -"xqS" = ( +/obj/structure/sign/safety/airlock{ + pixel_x = 32; + pixel_y = -8 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/stern) +"xrq" = ( +/obj/structure/closet/firecloset, +/obj/item/clothing/mask/gas, +/obj/item/clothing/mask/gas, +/turf/open/floor/almayer/cargo, +/area/almayer/command/lifeboat) +"xrt" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 5 + }, +/obj/structure/sign/safety/rewire{ + pixel_x = 12; + pixel_y = -24 + }, +/turf/open/floor/almayer/red, +/area/almayer/shipboard/brig/chief_mp_office) +"xry" = ( /obj/effect/decal/warning_stripes{ - icon_state = "SE-out"; + icon_state = "W" + }, +/obj/effect/decal/warning_stripes{ + icon_state = "E"; pixel_x = 1 }, -/turf/open/floor/almayer, -/area/almayer/engineering/engineering_workshop/hangar) -"xro" = ( -/obj/structure/toilet{ - pixel_y = 13 +/obj/structure/machinery/light{ + unacidable = 1; + unslashable = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" +/turf/open/floor/almayer, +/area/almayer/engineering/lower/workshop/hangar) +"xrC" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" }, -/area/almayer/shipboard/brig/perma) -"xrr" = ( -/obj/structure/disposalpipe/segment{ +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/effect/step_trigger/clone_cleaner, +/turf/open/floor/almayer/greencorner/north, +/area/almayer/hallways/lower/starboard_fore_hallway) +"xrI" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/stern_hallway) -"xrN" = ( -/obj/structure/largecrate/supply/supplies/mre, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" +/turf/open/floor/almayer/plate, +/area/almayer/engineering/lower/workshop) +"xrT" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 }, -/area/almayer/hull/upper_hull/u_a_p) -"xrP" = ( -/obj/structure/window/framed/almayer, -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 +/obj/structure/platform{ + dir = 8 }, -/turf/open/floor/plating, -/area/almayer/shipboard/brig/evidence_storage) +/turf/open/floor/almayer, +/area/almayer/hallways/lower/repair_bay) +"xsi" = ( +/obj/structure/stairs{ + dir = 1 + }, +/obj/effect/step_trigger/teleporter_vector{ + name = "Almayer_AresUp2"; + vector_x = -102; + vector_y = 61 + }, +/turf/open/floor/almayer/aicore/no_build, +/area/almayer/command/airoom) "xsl" = ( /obj/structure/machinery/alarm/almayer{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/northeast, /area/almayer/engineering/upper_engineering) -"xsw" = ( -/turf/open/floor/almayer{ - dir = 6; - icon_state = "sterile_green_side" +"xss" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/lower/cryo_cells) +"xsv" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/sign/safety/water{ + pixel_x = 8; + pixel_y = 32 }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_a_p) +"xsw" = ( +/turf/open/floor/almayer/sterile_green_side/southeast, /area/almayer/medical/lower_medical_medbay) "xsz" = ( /obj/effect/decal/warning_stripes{ icon_state = "SE-out" }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/almayer/medical/upper_medical) -"xsW" = ( -/obj/structure/machinery/cm_vending/gear/vehicle_crew, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/hallways/vehiclehangar) -"xtg" = ( -/obj/structure/machinery/cm_vending/clothing/staff_officer_armory, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, -/area/almayer/command/cic) -"xtD" = ( +"xsQ" = ( /obj/structure/surface/table/almayer, -/obj/item/tool/weldpack, -/obj/item/storage/toolbox/mechanical, -/obj/item/reagent_container/spray/cleaner, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" +/obj/item/stack/sheet/glass{ + amount = 20; + pixel_x = 3; + pixel_y = 3 }, -/area/almayer/hull/upper_hull/u_a_s) +/obj/item/weapon/dart, +/obj/item/weapon/dart, +/obj/item/weapon/dart, +/obj/item/weapon/dart/green, +/obj/item/weapon/dart/green, +/turf/open/floor/plating, +/area/almayer/maint/lower/constr) "xtM" = ( /obj/structure/machinery/light, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/southeast, /area/almayer/medical/lower_medical_lobby) "xub" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 2 +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/obj/structure/closet/secure_closet/guncabinet/red/mp_armory_m4ra_rifle, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/area/almayer/shipboard/brig/armory) +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_midship_hallway) "xuc" = ( -/obj/structure/surface/table/almayer, -/obj/item/tool/extinguisher, -/obj/item/reagent_container/spray/cleaner{ - pixel_x = -8; - pixel_y = 3 - }, /obj/structure/disposalpipe/segment{ dir = 1; icon_state = "pipe-c" }, -/turf/open/floor/almayer{ - icon_state = "silver" - }, +/turf/open/floor/almayer, /area/almayer/shipboard/brig/cic_hallway) -"xuB" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 +"xui" = ( +/obj/structure/machinery/light, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_aft_hallway) +"xuy" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_p) +/obj/structure/machinery/status_display{ + pixel_x = 32 + }, +/turf/open/floor/almayer/red/northwest, +/area/almayer/hallways/lower/port_fore_hallway) "xuE" = ( /obj/structure/machinery/door/airlock/almayer/research/glass/reinforced{ dir = 1; @@ -79771,17 +66665,8 @@ }, /obj/structure/machinery/door/poddoor/almayer/biohazard/white, /obj/structure/pipes/standard/simple/hidden/supply/no_boom, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/medical/containment/cell) -"xuI" = ( -/obj/structure/sign/safety/water{ - pixel_x = 8; - pixel_y = -32 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_a_s) "xuQ" = ( /obj/structure/bed/chair{ dir = 4 @@ -79790,16 +66675,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/almayer, /area/almayer/living/port_emb) -"xuU" = ( -/obj/structure/machinery/light{ - dir = 8 - }, -/obj/structure/reagent_dispensers/fueltank/custom, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/engineering/engine_core) "xuY" = ( /obj/structure/sign/safety/escapepod{ pixel_x = 8; @@ -79808,60 +66683,33 @@ /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/south1) "xuZ" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/west, /area/almayer/shipboard/brig/cic_hallway) -"xvh" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/structure/disposalpipe/segment, -/turf/open/floor/almayer{ - icon_state = "mono" - }, -/area/almayer/hallways/aft_hallway) -"xvr" = ( -/turf/closed/wall/almayer, -/area/almayer/shipboard/brig/chief_mp_office) -"xvw" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 1 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" - }, -/area/almayer/shipboard/brig/perma) "xvE" = ( /obj/structure/machinery/door/firedoor/border_only/almayer, /obj/structure/machinery/door/airlock/multi_tile/almayer/marine/charlie{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/squads/charlie) -"xvM" = ( -/obj/structure/machinery/door_control{ - id = "ARES StairsLower"; - name = "ARES Core Lockdown"; - pixel_x = 24; - pixel_y = 8; - req_one_access_txt = "90;91;92" - }, -/obj/effect/step_trigger/clone_cleaner, -/turf/open/floor/almayer/no_build{ - dir = 4; - icon_state = "silver" +"xvQ" = ( +/obj/structure/surface/table/almayer, +/obj/structure/machinery/computer/sentencing{ + dir = 8 }, -/area/almayer/command/airoom) +/turf/open/floor/almayer/red/east, +/area/almayer/shipboard/brig/processing) "xvX" = ( /obj/structure/machinery/cm_vending/gear/leader, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/bravo) +"xwd" = ( +/obj/structure/sign/safety/hvac_old{ + pixel_x = 8; + pixel_y = 32 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_m_s) "xwl" = ( /obj/structure/window/reinforced{ dir = 4; @@ -79871,10 +66719,18 @@ dir = 8; health = 80 }, -/turf/open/floor/almayer{ - icon_state = "cargo_arrow" - }, +/turf/open/floor/almayer/cargo_arrow, /area/almayer/squads/alpha_bravo_shared) +"xwm" = ( +/obj/structure/sign/safety/security{ + pixel_x = 15; + pixel_y = 32 + }, +/obj/structure/sign/safety/restrictedarea{ + pixel_y = 32 + }, +/turf/open/floor/almayer/plate, +/area/almayer/hallways/lower/port_fore_hallway) "xwp" = ( /obj/item/storage/box/matches{ pixel_x = -11; @@ -79894,32 +66750,46 @@ pixel_x = -8; pixel_y = 8 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/grunt_rnr) -"xwq" = ( -/obj/structure/largecrate/supply/supplies/mre, -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_f_p) -"xwG" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 +"xwE" = ( +/obj/structure/bed/chair/comfy/alpha, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer/plate, +/area/almayer/living/briefing) +"xwU" = ( +/obj/structure/pipes/vents/pump/no_boom/gas{ + vent_tag = "Comms"; + dir = 1 }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +/turf/open/floor/almayer/aicore/no_build/ai_plates, +/area/almayer/command/airoom) +"xwX" = ( +/turf/open/floor/almayer/red/northwest, +/area/almayer/lifeboat_pumps/south2) +"xxa" = ( +/obj/item/stack/sheet/cardboard{ + amount = 50 }, -/area/almayer/hallways/aft_hallway) -"xxe" = ( /obj/structure/surface/rack, -/obj/item/tool/crowbar, -/obj/item/tool/weldingtool, -/obj/item/tool/wrench, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/item/packageWrap, +/turf/open/floor/almayer/green/east, +/area/almayer/squads/req) +"xxh" = ( +/obj/structure/machinery/light/small{ + dir = 8 + }, +/obj/item/prop/magazine/boots/n160{ + layer = 2.8; + pixel_x = 4; + pixel_y = -8 }, -/area/almayer/hull/lower_hull/l_m_s) +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/turf/open/floor/almayer/dark_sterile, +/area/almayer/living/commandbunks) "xxi" = ( /obj/structure/desertdam/decals/road_edge{ icon_state = "road_edge_decal3" @@ -79967,9 +66837,24 @@ }, /turf/open/floor/plating, /area/almayer/living/port_emb) -"xxI" = ( -/obj/structure/cargo_container/wy/mid, -/obj/structure/sign/poster{ +"xxB" = ( +/obj/structure/machinery/fuelpump, +/turf/open/floor/almayer, +/area/almayer/lifeboat_pumps/north1) +"xxG" = ( +/obj/structure/prop/holidays/string_lights{ + pixel_y = 27 + }, +/obj/structure/largecrate/random/barrel/red, +/obj/item/reagent_container/food/drinks/cans/cola{ + pixel_x = -2; + pixel_y = 16 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_m_s) +"xxI" = ( +/obj/structure/cargo_container/wy/mid, +/obj/structure/sign/poster{ desc = "YOU ALWAYS KNOW A WORKING JOE. YOU ALWAYS KNOW A WORKING JOE. YOU ALWAYS KNOW A WORKING JOE. YOU ALWAYS KNOW A WORKING JOE. YOU ALWAYS KNOW A WORKING JOE."; icon_state = "poster11"; name = "YOU ALWAYS KNOW A WORKING JOE."; @@ -80003,38 +66888,26 @@ dir = 1; pixel_y = 42 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) -"xxJ" = ( -/obj/structure/platform, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_p) -"xxT" = ( -/obj/structure/surface/table/almayer, -/obj/item/frame/table, -/obj/item/storage/toolbox/electrical, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_s) "xxZ" = ( /obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/lifeboat_pumps/south2) "xyk" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/carpet, /area/almayer/living/commandbunks) -"xys" = ( -/turf/closed/wall/almayer, -/area/almayer/shipboard/brig/main_office) +"xyp" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/almayer/silver/east, +/area/almayer/hallways/upper/midship_hallway) "xyt" = ( /obj/structure/surface/table/almayer, /obj/item/storage/toolbox/mechanical{ @@ -80051,117 +66924,94 @@ /obj/structure/machinery/computer/working_joe{ pixel_y = 16 }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/medical/hydroponics) "xyw" = ( -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) -"xyz" = ( -/obj/structure/sign/safety/maint{ - pixel_x = -17 +"xyB" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SW-out"; + layer = 2.5 }, -/turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_p) -"xyE" = ( -/obj/structure/toilet{ - dir = 1 +/obj/effect/decal/warning_stripes{ + icon_state = "SE-out" }, /turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_a_s) +/area/almayer/hallways/upper/port) +"xyL" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SE-out"; + pixel_x = 1 + }, +/turf/open/floor/almayer/mono, +/area/almayer/lifeboat_pumps/south2) +"xyN" = ( +/turf/closed/wall/almayer/reinforced, +/area/almayer/shipboard/brig/execution_storage) +"xyQ" = ( +/turf/open/floor/almayer/silvercorner/east, +/area/almayer/hallways/lower/repair_bay) "xyY" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/effect/decal/warning_stripes{ icon_state = "E"; pixel_x = 1 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "green" - }, +/turf/open/floor/almayer/green/east, /area/almayer/squads/req) +"xyZ" = ( +/obj/structure/machinery/light/small, +/obj/structure/largecrate/random/barrel/green, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/s_bow) "xzf" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk{ dir = 8 }, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "blue" - }, +/turf/open/floor/almayer/blue/southeast, /area/almayer/living/basketball) -"xzo" = ( -/obj/item/stack/catwalk, -/obj/structure/platform_decoration{ - dir = 4 - }, -/turf/open/floor/plating, -/area/almayer/hull/upper_hull/u_a_p) -"xzp" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "orangefull" - }, -/area/almayer/living/briefing) -"xzu" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 5 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "SE-out" +"xzh" = ( +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/upper/u_m_p) +"xzx" = ( +/obj/structure/machinery/light/small{ + dir = 1 }, -/turf/open/floor/almayer, -/area/almayer/shipboard/brig/cells) +/turf/open/floor/almayer/plate, +/area/almayer/maint/upper/u_m_s) "xzB" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 9 - }, -/obj/structure/bed/chair/comfy/delta{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - icon_state = "plate" +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_f_s) +"xzI" = ( +/obj/structure/machinery/firealarm{ + pixel_y = 28 }, -/area/almayer/living/briefing) +/turf/open/floor/almayer/green/north, +/area/almayer/hallways/lower/port_midship_hallway) "xAe" = ( /turf/closed/wall/almayer/research/containment/wall/corner, /area/almayer/medical/containment/cell) -"xAj" = ( -/obj/structure/bed/chair/bolted{ - dir = 8 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, -/area/almayer/shipboard/brig/main_office) "xAt" = ( /obj/structure/bed/chair/comfy/charlie{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "emeraldfull" - }, +/turf/open/floor/almayer/emeraldfull, /area/almayer/living/briefing) +"xAu" = ( +/obj/structure/sign/safety/restrictedarea{ + pixel_x = 8; + pixel_y = -32 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/s_bow) "xAB" = ( /obj/structure/surface/table/almayer, /obj/item/paper_bin/uscm, /obj/item/clipboard, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "green" - }, +/turf/open/floor/almayer/green/southwest, /area/almayer/squads/req) -"xAC" = ( -/obj/structure/surface/rack, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/engineering/upper_engineering/port) "xAI" = ( /obj/structure/platform{ dir = 1 @@ -80173,10 +67023,7 @@ dir = 5; layer = 3.51 }, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/almayer/red/northwest, /area/almayer/lifeboat_pumps/south1) "xAY" = ( /obj/effect/decal/warning_stripes{ @@ -80187,22 +67034,18 @@ "xBe" = ( /turf/closed/wall/almayer/reinforced, /area/almayer/engineering/upper_engineering) -"xBg" = ( -/obj/structure/machinery/light{ - dir = 4 - }, -/turf/open/floor/wood/ship, -/area/almayer/living/commandbunks) "xBn" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/dropshiprear/lifeboat/blastdoor{ id_tag = "Boat1-D3"; linked_dock = "almayer-lifeboat1"; throw_dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/engineering/upper_engineering/port) +"xBK" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/almayer/cargo, +/area/almayer/maint/hull/upper/u_f_p) "xBQ" = ( /obj/structure/disposalpipe/segment{ dir = 4; @@ -80210,12 +67053,33 @@ }, /turf/open/floor/almayer, /area/almayer/squads/charlie_delta_shared) +"xBS" = ( +/obj/structure/bed/chair/comfy/beige{ + dir = 4 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_a_s) "xBV" = ( /obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/req) +"xBW" = ( +/obj/structure/prop/invuln/overhead_pipe{ + dir = 4; + pixel_y = 13 + }, +/obj/structure/prop/invuln/overhead_pipe{ + dir = 4; + pixel_x = -16; + pixel_y = 13 + }, +/obj/structure/prop/invuln/overhead_pipe{ + dir = 4; + pixel_x = 12; + pixel_y = 13 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/upper/u_f_s) "xBY" = ( /turf/open/floor/almayer, /area/almayer/engineering/laundry) @@ -80223,210 +67087,126 @@ /obj/structure/closet/coffin/woodencrate, /obj/item/frame/table/wood/poor, /obj/item/frame/table/wood/poor, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/squads/req) -"xCd" = ( -/obj/structure/reagent_dispensers/peppertank{ - pixel_x = 30 - }, -/turf/open/floor/almayer{ - icon_state = "redcorner" +"xCb" = ( +/obj/structure/closet/secure_closet/fridge/dry, +/turf/open/floor/almayer/plate, +/area/almayer/living/grunt_rnr) +"xCf" = ( +/obj/structure/bed/chair/comfy/orange{ + dir = 1 }, -/area/almayer/shipboard/brig/processing) -"xCj" = ( -/obj/structure/closet/emcloset, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_p) -"xCm" = ( -/obj/structure/closet/emcloset, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_s) -"xCN" = ( -/obj/structure/prop/holidays/string_lights{ - pixel_y = 27 +/turf/open/floor/carpet, +/area/almayer/command/corporateliaison) +"xCs" = ( +/turf/open/floor/almayer/silver/southwest, +/area/almayer/hallways/upper/midship_hallway) +"xCy" = ( +/obj/structure/sign/safety/maint{ + pixel_x = -19; + pixel_y = -6 }, -/obj/structure/largecrate/random/barrel/red, -/obj/item/reagent_container/food/drinks/cans/cola{ - pixel_x = -2; - pixel_y = 16 +/obj/structure/sign/safety/bulkhead_door{ + pixel_x = -19; + pixel_y = 6 }, -/turf/open/floor/almayer{ - icon_state = "plate" +/turf/open/floor/almayer, +/area/almayer/maint/hull/upper/u_f_p) +"xCB" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/area/almayer/hull/lower_hull/l_m_s) -"xCR" = ( -/obj/structure/machinery/light/small, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_s) -"xCX" = ( -/obj/structure/machinery/door/airlock/almayer/maint{ - dir = 1 +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +/turf/open/floor/almayer, +/area/almayer/hallways/upper/fore_hallway) +"xDe" = ( +/obj/effect/projector{ + name = "Almayer_Down4"; + vector_x = 19; + vector_y = -104 }, -/area/almayer/hull/upper_hull/u_m_p) +/turf/open/floor/almayer/no_build, +/area/almayer/hallways/upper/port) "xDn" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/north, /area/almayer/shipboard/brig/cic_hallway) -"xDp" = ( -/obj/structure/surface/rack, -/obj/item/paper{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/folder/yellow, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_f_s) +"xDy" = ( +/obj/structure/machinery/door/airlock/almayer/maint, +/turf/open/floor/almayer/test_floor4, +/area/almayer/maint/upper/u_f_p) "xDC" = ( /obj/structure/pipes/standard/simple/hidden/supply/no_boom, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, +/turf/open/floor/almayer/aicore/no_build, /area/almayer/command/airoom) -"xDQ" = ( -/obj/structure/surface/table/almayer, -/obj/item/reagent_container/food/snacks/mre_pack/xmas3{ - pixel_x = 5 - }, -/obj/item/reagent_container/food/snacks/mre_pack/xmas2{ - pixel_x = 5; - pixel_y = 9 - }, -/obj/effect/landmark/map_item{ - layer = 3.03; - pixel_x = -7; - pixel_y = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/living/briefing) -"xEc" = ( -/turf/open/floor/almayer{ - dir = 9; - icon_state = "red" +"xDF" = ( +/obj/structure/machinery/autolathe, +/turf/open/floor/almayer/orange/north, +/area/almayer/engineering/lower/workshop/hangar) +"xDV" = ( +/obj/effect/step_trigger/clone_cleaner, +/obj/effect/decal/warning_stripes{ + icon_state = "S" }, -/area/almayer/shipboard/brig/main_office) +/turf/open/floor/almayer/red/north, +/area/almayer/hallways/upper/port) "xEe" = ( -/obj/structure/bed, -/obj/structure/machinery/status_display{ - pixel_x = -32 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/shipboard/brig/perma) +/obj/structure/prop/invuln/joey, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_m_s) +"xEs" = ( +/obj/effect/landmark/yautja_teleport, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_m_p) "xEz" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/book/manual/surgery, /obj/structure/sign/safety/biohazard{ pixel_x = -17 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/west, /area/almayer/medical/operating_room_two) -"xEF" = ( -/turf/closed/wall/almayer/outer, -/area/almayer/hull/upper_hull/u_f_p) "xEO" = ( -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/almayer/engineering/upper_engineering) "xEX" = ( /obj/structure/machinery/cm_vending/sorted/marine_food, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/offices) -"xFs" = ( -/obj/structure/machinery/light{ - unacidable = 1; - unslashable = 1 - }, -/obj/structure/surface/table/almayer, -/obj/item/storage/box/handcuffs{ - pixel_x = 5; - pixel_y = 5 - }, -/obj/item/device/flash{ - pixel_y = -8 - }, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "red" - }, -/area/almayer/shipboard/brig/main_office) -"xFw" = ( -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "silver" - }, -/area/almayer/hallways/aft_hallway) -"xFD" = ( -/obj/structure/ladder{ - height = 1; - id = "ForeStarboardMaint" - }, -/obj/structure/sign/safety/ladder{ - pixel_x = 8; - pixel_y = 32 - }, -/turf/open/floor/plating/almayer, -/area/almayer/hull/lower_hull/l_f_s) +"xFt" = ( +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_f_p) +"xFx" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/disposalpipe/segment, +/turf/open/floor/almayer/green, +/area/almayer/hallways/upper/fore_hallway) "xFP" = ( -/turf/open/floor/almayer{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/almayer/red/northeast, /area/almayer/shipboard/starboard_missiles) "xFZ" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/gym) "xGh" = ( /obj/structure/machinery/portable_atmospherics/hydroponics, /obj/item/seeds/goldappleseed, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/almayer/green/north, /area/almayer/shipboard/brig/cells) -"xGk" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 10 - }, -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" +"xGm" = ( +/obj/structure/platform_decoration{ + dir = 8 }, -/turf/open/floor/almayer, -/area/almayer/hallways/aft_hallway) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_a_p) "xGo" = ( /obj/structure/machinery/autolathe, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/squads/req) "xGE" = ( /obj/structure/disposalpipe/segment, @@ -80445,120 +67225,130 @@ /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 2 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/squads/bravo) +"xGF" = ( +/obj/structure/machinery/vending/snack{ + density = 0; + pixel_y = 18 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_f_p) +"xGI" = ( +/obj/structure/closet/secure_closet/guncabinet, +/obj/item/weapon/gun/rifle/l42a{ + pixel_y = 6 + }, +/obj/item/weapon/gun/rifle/l42a, +/obj/item/weapon/gun/rifle/l42a{ + pixel_y = -6 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/upper/u_m_s) "xGJ" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22"; pixel_x = -13 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/almayer/red/west, /area/almayer/living/briefing) -"xGL" = ( -/obj/structure/surface/table/almayer, -/obj/effect/decal/cleanable/dirt, -/obj/item/paper_bin/uscm{ - pixel_x = 9; - pixel_y = 6 - }, -/obj/item/tool/pen{ - pixel_x = 9; - pixel_y = 2 - }, -/obj/item/tool/pen{ - pixel_x = 9; - pixel_y = 9 - }, -/turf/open/floor/almayer{ - icon_state = "plate" +"xGK" = ( +/obj/structure/surface/table/reinforced/almayer_B, +/obj/item/storage/box/lights/tubes{ + pixel_x = -4; + pixel_y = 3 }, -/area/almayer/living/briefing) -"xHe" = ( -/obj/structure/pipes/vents/pump{ - dir = 4 +/obj/effect/decal/cleanable/ash{ + pixel_y = 19 }, -/turf/open/floor/almayer{ - icon_state = "red" +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_a_p) +"xGT" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" }, -/area/almayer/shipboard/brig/main_office) +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_m_p) +"xHa" = ( +/obj/structure/surface/rack, +/obj/effect/spawner/random/tool, +/obj/effect/spawner/random/tool, +/obj/effect/spawner/random/powercell, +/obj/effect/spawner/random/powercell, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_a_p) +"xHl" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/almayer/plate, +/area/almayer/hallways/lower/vehiclehangar) "xHp" = ( -/turf/open/floor/almayer{ - icon_state = "orange" - }, +/turf/open/floor/almayer/orange, /area/almayer/squads/alpha_bravo_shared) -"xHG" = ( -/obj/structure/surface/rack, -/turf/open/floor/almayer{ - icon_state = "plate" +"xHt" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 1 }, -/area/almayer/hull/upper_hull/u_m_p) -"xHM" = ( -/obj/structure/surface/table/almayer, -/obj/structure/machinery/computer/sentencing, -/obj/structure/disposalpipe/segment, -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer, -/area/almayer/shipboard/brig/processing) -"xHW" = ( -/obj/structure/largecrate/random/case/double, -/turf/open/floor/almayer{ - icon_state = "cargo" +/obj/structure/machinery/door/airlock/almayer/maint{ + access_modified = 1; + dir = 1; + name = "\improper Engineering Storage"; + req_one_access = null; + req_one_access_txt = "2;7" }, -/area/almayer/hull/upper_hull/u_f_p) -"xIb" = ( -/obj/structure/closet/emcloset, -/turf/open/floor/almayer{ - icon_state = "plate" +/turf/open/floor/almayer/test_floor4, +/area/almayer/engineering/upper_engineering) +"xHS" = ( +/obj/structure/reagent_dispensers/fueltank/oxygentank{ + anchored = 1 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/turf/open/floor/almayer/cargo, +/area/almayer/engineering/lower/workshop/hangar) +"xHX" = ( +/obj/structure/sign/safety/restrictedarea{ + pixel_x = 8; + pixel_y = 32 }, -/area/almayer/hull/upper_hull/u_m_p) +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/p_bow) "xId" = ( /obj/structure/surface/rack, /obj/item/mortar_shell/he, /obj/item/mortar_shell/he, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/squads/req) -"xIi" = ( -/obj/item/stool{ - pixel_x = 15; - pixel_y = 6 - }, -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_f_p) "xIj" = ( -/obj/structure/largecrate/random/secure, -/obj/item/weapon/baseballbat/metal{ - pixel_x = -2; - pixel_y = 8 - }, -/obj/item/clothing/glasses/sunglasses{ - pixel_y = 5 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_p) +/turf/open/floor/almayer, +/area/almayer/hallways/upper/midship_hallway) "xIk" = ( /obj/structure/machinery/cryopod/right{ pixel_y = 6 }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/medical/lower_medical_medbay) -"xIw" = ( -/obj/structure/machinery/brig_cell/cell_2{ - pixel_x = 32 +"xIq" = ( +/obj/structure/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/evidence_storage) +"xIu" = ( +/obj/structure/surface/table/almayer, +/obj/structure/machinery/computer/secure_data{ + dir = 8 + }, +/obj/structure/machinery/firealarm{ + pixel_y = 28 }, -/turf/open/floor/almayer{ - allow_construction = 0 +/obj/structure/extinguisher_cabinet{ + pixel_x = -14; + pixel_y = 28 }, +/turf/open/floor/almayer/red/east, /area/almayer/shipboard/brig/processing) "xIQ" = ( /obj/effect/decal/warning_stripes{ @@ -80566,44 +67356,44 @@ }, /turf/open/floor/almayer, /area/almayer/living/offices) -"xJe" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "greencorner" +"xIV" = ( +/turf/open/floor/almayer, +/area/almayer/maint/upper/mess) +"xIW" = ( +/obj/structure/machinery/light{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 9 + }, +/obj/structure/surface/table/almayer, +/obj/item/book/manual/marine_law{ + pixel_x = -3; + pixel_y = 1 + }, +/obj/item/device/flashlight/lamp{ + layer = 3.1; + pixel_x = 7; + pixel_y = 10 }, +/obj/item/poster, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/lobby) +"xJe" = ( +/turf/open/floor/almayer/greencorner/west, /area/almayer/shipboard/brig/cells) "xJh" = ( /obj/structure/surface/table/almayer, /obj/item/storage/toolbox/mechanical, /obj/item/device/analyzer, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/command/lifeboat) -"xJi" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_s) -"xJn" = ( -/obj/structure/closet/emcloset, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/engineering/upper_engineering/starboard) -"xJC" = ( -/obj/structure/machinery/door/airlock/almayer/generic/corporate{ - name = "Corporate Liaison's Closet" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/command/corporateliason) +"xJp" = ( +/obj/structure/largecrate/random/barrel/yellow, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_m_s) "xJH" = ( -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/squads/charlie_delta_shared) "xJR" = ( /obj/effect/decal/warning_stripes{ @@ -80615,6 +67405,37 @@ }, /turf/open/floor/almayer, /area/almayer/hallways/hangar) +"xJT" = ( +/obj/structure/toilet{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/cells) +"xJV" = ( +/obj/structure/surface/table/almayer, +/obj/structure/machinery/cell_charger, +/obj/structure/sign/safety/high_rad{ + pixel_x = 32; + pixel_y = -8 + }, +/obj/structure/sign/safety/hazard{ + pixel_x = 32; + pixel_y = 7 + }, +/turf/open/floor/almayer/orange/east, +/area/almayer/engineering/lower) +"xKG" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/obj/structure/machinery/door_control{ + id = "Under Construction Shutters"; + name = "shutter-control"; + pixel_x = -25 + }, +/turf/open/floor/plating, +/area/almayer/maint/lower/constr) "xKM" = ( /obj/structure/machinery/status_display{ pixel_x = 16; @@ -80623,9 +67444,7 @@ /obj/structure/sign/safety/airlock{ pixel_y = -32 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/engineering/upper_engineering/starboard) "xKT" = ( /obj/effect/decal/cleanable/cobweb, @@ -80634,42 +67453,56 @@ }, /turf/open/floor/almayer, /area/almayer/living/synthcloset) -"xKW" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/prop/invuln/overhead_pipe{ - dir = 4; - pixel_y = 13 +"xLi" = ( +/obj/structure/surface/table/almayer, +/obj/effect/landmark/map_item, +/obj/item/paper_bin/uscm{ + pixel_x = -7; + pixel_y = 6 }, -/obj/structure/prop/invuln/overhead_pipe{ - dir = 4; - pixel_x = -14; - pixel_y = 13 +/turf/open/floor/almayer/plate, +/area/almayer/living/briefing) +"xLl" = ( +/obj/structure/machinery/cm_vending/clothing/military_police{ + density = 0; + pixel_y = 16 }, -/obj/structure/prop/invuln/overhead_pipe{ +/obj/structure/window/reinforced{ dir = 4; - pixel_x = 12; - pixel_y = 13 + health = 80 + }, +/obj/structure/window/reinforced{ + dir = 8 }, +/turf/open/floor/almayer/cargo, +/area/almayer/shipboard/brig/general_equipment) +"xLn" = ( +/obj/structure/largecrate/random/case/double, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/s_stern) +"xLu" = ( +/obj/structure/largecrate/random/barrel/red, /turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_p) +/area/almayer/maint/hull/upper/u_m_s) +"xLw" = ( +/turf/open/floor/almayer/silver, +/area/almayer/hallways/upper/midship_hallway) +"xLX" = ( +/obj/structure/disposalpipe/junction{ + dir = 4; + icon_state = "pipe-j2" + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 9 + }, +/turf/open/floor/almayer/plate, +/area/almayer/hallways/lower/port_midship_hallway) "xMf" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, /turf/open/floor/almayer, /area/almayer/shipboard/port_point_defense) -"xMh" = ( -/obj/structure/prop/invuln/lattice_prop{ - dir = 1; - icon_state = "lattice-simple"; - pixel_x = -16; - pixel_y = 17 - }, -/obj/structure/largecrate/random/barrel/red, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_p) "xMj" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -80678,61 +67511,84 @@ dir = 4 }, /obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side, /area/almayer/medical/lower_medical_medbay) -"xMk" = ( -/obj/structure/stairs{ +"xMl" = ( +/obj/structure/disposalpipe/segment{ dir = 8; - icon_state = "ramptop" + icon_state = "pipe-c" }, -/obj/effect/projector{ - name = "Almayer_Down3"; - vector_x = 1; - vector_y = -102 +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 9 }, -/obj/structure/machinery/light, -/turf/open/floor/plating/almayer{ - allow_construction = 0 +/turf/open/floor/plating/plating_catwalk, +/area/almayer/engineering/lower) +"xMm" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/area/almayer/hallways/aft_hallway) +/obj/structure/largecrate/random/barrel/green, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_a_p) "xMs" = ( /turf/closed/wall/almayer/white, /area/almayer/medical/operating_room_two) +"xMz" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/turf/open/floor/almayer/red/west, +/area/almayer/hallways/upper/starboard) "xMA" = ( /obj/structure/machinery/computer/med_data, /obj/structure/sign/safety/terminal{ pixel_x = 8; pixel_y = -32 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/command/cic) "xMB" = ( -/turf/open/floor/almayer/uscm/directional{ - dir = 6 - }, +/turf/open/floor/almayer/uscm/directional/southeast, /area/almayer/command/cic) +"xMG" = ( +/obj/structure/machinery/door_control{ + id = "OuterShutter"; + name = "Outer Shutter"; + pixel_x = 5; + pixel_y = -2; + req_one_access_txt = "1;3" + }, +/obj/structure/surface/table/reinforced/almayer_B, +/obj/structure/machinery/door_control{ + id = "OfficeSafeRoom"; + name = "Office Safe Room"; + pixel_x = 5; + pixel_y = 5; + req_one_access_txt = "1;3" + }, +/turf/open/floor/almayer/plate, +/area/almayer/shipboard/panic) "xML" = ( -/obj/structure/machinery/computer/cameras/wooden_tv/prop{ +/obj/structure/machinery/computer/cameras/wooden_tv/broadcast{ pixel_x = -4; pixel_y = 2 }, /obj/structure/surface/table/almayer, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/almayer/green/north, /area/almayer/living/grunt_rnr) -"xMQ" = ( -/obj/structure/machinery/vending/cola{ - density = 0; - pixel_y = 16 +"xMO" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_x = 1; + pixel_y = 1 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "SE-out"; + pixel_x = 1 }, /turf/open/floor/plating/plating_catwalk, -/area/almayer/shipboard/brig/cells) +/area/almayer/hallways/upper/starboard) "xMR" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -80747,36 +67603,42 @@ dir = 1; pixel_y = 2 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) +"xNf" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/engineering/lower/engine_core) +"xNg" = ( +/obj/structure/pipes/binary/pump/on{ + dir = 4 + }, +/turf/open/floor/almayer/plate, +/area/almayer/engineering/lower) "xNj" = ( /obj/structure/machinery/cm_vending/sorted/tech/electronics_storage{ req_access = null; req_one_access_txt = "7;23;27" }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/hallways/hangar) "xNu" = ( /obj/structure/toilet{ dir = 1 }, /obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "sterile" - }, +/turf/open/floor/almayer/sterile, /area/almayer/medical/upper_medical) "xNv" = ( /obj/structure/bed/chair/office/dark{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/east, /area/almayer/command/computerlab) "xNz" = ( /obj/structure/surface/table/almayer, @@ -80789,21 +67651,22 @@ /obj/item/storage/box/donkpockets{ pixel_y = 19 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/living/auxiliary_officer_office) -"xNB" = ( -/obj/structure/machinery/light, -/obj/structure/sign/safety/security{ - pixel_y = -32 +"xNM" = ( +/obj/structure/machinery/cm_vending/gear/vehicle_crew, +/turf/open/floor/almayer/cargo, +/area/almayer/hallways/lower/vehiclehangar) +"xOs" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 }, -/obj/structure/sign/safety/restrictedarea{ - pixel_x = 15; - pixel_y = -32 +/obj/structure/sign/poster/pinup{ + pixel_x = -30 }, -/turf/open/floor/almayer, -/area/almayer/hallways/starboard_hallway) +/turf/open/floor/almayer/dark_sterile, +/area/almayer/command/corporateliaison) "xOL" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk, @@ -80812,6 +67675,10 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/grunt_rnr) +"xOT" = ( +/obj/structure/closet/secure_closet/fridge/meat/stock, +/turf/open/floor/almayer/plate, +/area/almayer/living/grunt_rnr) "xOY" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/closet/secure_closet/surgical{ @@ -80823,38 +67690,35 @@ /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor/almayer/research/containment/corner{ - dir = 4 - }, +/turf/open/floor/almayer/research/containment/corner/east, /area/almayer/medical/containment/cell) -"xPE" = ( -/obj/structure/largecrate/random/barrel/white, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_s) -"xPR" = ( -/obj/structure/pipes/vents/scrubber{ - dir = 4 +"xPn" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + pixel_y = 1 }, -/obj/structure/surface/table/almayer, -/obj/structure/machinery/computer/emails{ - dir = 1 +/obj/structure/machinery/light{ + dir = 4 }, -/obj/item/reagent_container/food/snacks/grown/banana{ - pixel_x = 18; - pixel_y = 5 +/obj/structure/stairs/perspective{ + dir = 1; + icon_state = "p_stair_full" }, -/turf/open/floor/almayer{ - icon_state = "orangefull" +/obj/structure/platform{ + dir = 4 }, -/area/almayer/living/briefing) +/turf/open/floor/almayer/silver/east, +/area/almayer/hallways/lower/repair_bay) +"xPq" = ( +/obj/structure/filingcabinet, +/obj/item/folder/yellow, +/turf/open/floor/almayer/orange/north, +/area/almayer/engineering/lower/workshop/hangar) "xPZ" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 10 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/northeast, /area/almayer/engineering/upper_engineering/port) "xQa" = ( /obj/structure/bed/chair/office/dark{ @@ -80862,66 +67726,52 @@ }, /turf/open/floor/almayer, /area/almayer/command/cic) +"xQd" = ( +/obj/structure/sign/safety/hvac_old{ + pixel_x = 8; + pixel_y = -32 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_m_p) +"xQe" = ( +/obj/structure/machinery/vending/cigarette{ + density = 0; + pixel_y = 18 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_a_p) "xQg" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "bluecorner" - }, +/turf/open/floor/almayer/bluecorner/west, /area/almayer/living/pilotbunks) -"xQm" = ( -/turf/open/floor/almayer/research/containment/floor2{ - dir = 1 +"xQj" = ( +/obj/item/pipe{ + dir = 4; + layer = 3.5 }, +/turf/open/floor/plating, +/area/almayer/maint/lower/constr) +"xQm" = ( +/turf/open/floor/almayer/research/containment/floor2/north, /area/almayer/medical/containment/cell) -"xQD" = ( -/obj/structure/surface/table/almayer, -/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ - pixel_y = -25 - }, -/obj/item/paper_bin/uscm{ - pixel_y = 7 - }, -/obj/item/tool/pen, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "red" +"xQz" = ( +/obj/structure/machinery/alarm/almayer{ + dir = 1 }, -/area/almayer/shipboard/brig/perma) +/turf/open/floor/almayer/plate, +/area/almayer/hallways/lower/port_aft_hallway) "xQV" = ( /obj/effect/step_trigger/clone_cleaner, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, +/turf/open/floor/almayer/aicore/no_build, /area/almayer/command/airoom) -"xRc" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, -/obj/structure/machinery/door_control{ - id = "Under Construction Shutters"; - name = "shutter-control"; - pixel_x = -25 - }, -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_f_p) -"xRh" = ( -/obj/structure/bed, -/obj/item/bedsheet/green, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 10 - }, -/obj/structure/machinery/cm_vending/clothing/senior_officer{ - density = 0; - pixel_y = 30 - }, -/turf/open/floor/almayer{ - icon_state = "mono" +"xQW" = ( +/obj/structure/sign/safety/bathunisex{ + pixel_x = -18 }, -/area/almayer/medical/upper_medical) +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/p_stern) "xRj" = ( /obj/structure/bed/chair{ dir = 8; @@ -80938,9 +67788,7 @@ icon_state = "SE-out"; pixel_x = 1 }, -/turf/open/floor/almayer{ - icon_state = "emeraldcorner" - }, +/turf/open/floor/almayer/emeraldcorner, /area/almayer/squads/charlie) "xRk" = ( /obj/structure/machinery/light{ @@ -80950,25 +67798,11 @@ /obj/structure/machinery/computer/view_objectives{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/west, /area/almayer/command/computerlab) "xRw" = ( -/turf/open/floor/almayer/uscm/directional{ - dir = 1 - }, +/turf/open/floor/almayer/uscm/directional/north, /area/almayer/living/briefing) -"xRE" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/largecrate/random/barrel/green, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_a_p) "xRH" = ( /obj/structure/sign/safety/fibre_optics{ pixel_y = 32 @@ -80977,33 +67811,14 @@ pixel_x = 15; pixel_y = 32 }, -/turf/open/floor/almayer{ - icon_state = "tcomms" - }, +/turf/open/floor/almayer/tcomms, /area/almayer/command/telecomms) "xRJ" = ( /obj/structure/bed/chair/comfy/bravo{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "orangefull" - }, +/turf/open/floor/almayer/orangefull, /area/almayer/living/briefing) -"xRU" = ( -/obj/structure/sign/safety/maint{ - pixel_x = -17 - }, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "green" - }, -/area/almayer/hallways/aft_hallway) -"xSb" = ( -/obj/structure/largecrate/random/barrel/red, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_p) "xSw" = ( /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 2 @@ -81014,49 +67829,16 @@ }, /turf/open/floor/plating, /area/almayer/squads/charlie) +"xSx" = ( +/turf/open/floor/almayer/red/east, +/area/almayer/hallways/lower/starboard_midship_hallway) "xSz" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/status_display{ pixel_y = 30 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/north, /area/almayer/shipboard/brig/cic_hallway) -"xSA" = ( -/obj/structure/surface/table/almayer, -/obj/item/device/flashlight/lamp{ - layer = 3.1; - pixel_x = 7; - pixel_y = 10 - }, -/obj/item/book/manual/marine_law{ - pixel_x = -3; - pixel_y = 1 - }, -/obj/item/device/radio/intercom{ - freerange = 1; - name = "General Listening Channel"; - pixel_y = 28 - }, -/obj/structure/sign/safety/intercom{ - pixel_x = -17 - }, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "red" - }, -/area/almayer/shipboard/brig/lobby) -"xSI" = ( -/obj/structure/surface/table/almayer, -/obj/structure/machinery/computer/emails{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/repair_bay) "xSM" = ( /obj/structure/machinery/light{ dir = 8 @@ -81069,10 +67851,7 @@ /turf/open/floor/plating/plating_catwalk, /area/almayer/living/cryo_cells) "xSW" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/almayer/red/west, /area/almayer/squads/alpha) "xSY" = ( /obj/structure/machinery/light{ @@ -81082,35 +67861,28 @@ icon_state = "N"; pixel_y = 1 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_corner" - }, +/turf/open/floor/almayer/sterile_green_corner/north, /area/almayer/medical/containment) -"xTp" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" +"xTu" = ( +/obj/structure/pipes/vents/scrubber{ + dir = 1 }, +/turf/open/floor/almayer, +/area/almayer/engineering/lower/engine_core) +"xTx" = ( +/turf/closed/wall/almayer/reinforced, +/area/almayer/maint/hull/upper/u_f_p) +"xTG" = ( +/obj/structure/closet/emcloset, +/obj/item/clothing/mask/gas, +/obj/item/clothing/mask/gas, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/p_stern) +"xTH" = ( +/obj/structure/surface/table/almayer, +/obj/structure/machinery/recharger, +/turf/open/floor/almayer/red, /area/almayer/shipboard/brig/processing) -"xTt" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/structure/machinery/door/firedoor/border_only/almayer, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/stern_hallway) "xTR" = ( /obj/structure/window/framed/almayer, /obj/structure/machinery/door/poddoor/almayer/open{ @@ -81145,36 +67917,46 @@ /obj/item/bedsheet/red{ pixel_y = 13 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/north, /area/almayer/living/port_emb) +"xUa" = ( +/obj/structure/machinery/light{ + dir = 4 + }, +/turf/open/floor/wood/ship, +/area/almayer/command/corporateliaison) +"xUy" = ( +/obj/item/reagent_container/food/snacks/wrapped/barcardine, +/obj/structure/surface/rack, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/p_stern) "xUA" = ( /obj/structure/surface/table/almayer, /obj/item/storage/pouch/tools/tank, /obj/structure/sign/safety/life_support{ pixel_x = -17 }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/engineering/upper_engineering/starboard) "xUB" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "silver" - }, +/turf/open/floor/almayer/silver, /area/almayer/command/cic) -"xUI" = ( -/obj/structure/largecrate/random/barrel/red, -/obj/structure/machinery/light/small{ - dir = 8 +"xUV" = ( +/obj/structure/bed/chair{ + dir = 4 + }, +/turf/open/floor/almayer/plate, +/area/almayer/command/combat_correspondent) +"xUY" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/structure/machinery/light/small{ + dir = 1 }, -/area/almayer/hull/upper_hull/u_m_s) +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_f_p) "xVc" = ( /obj/effect/step_trigger/clone_cleaner, /obj/structure/machinery/door_control{ @@ -81184,19 +67966,18 @@ pixel_y = 24; req_one_access_txt = "90;91;92" }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, +/turf/open/floor/almayer/aicore/no_build, /area/almayer/command/airoom) -"xVj" = ( -/obj/structure/surface/table/almayer, -/obj/item/tool/weldingtool{ - pixel_x = 6; - pixel_y = -16 +"xVe" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 }, -/obj/item/clothing/head/welding, -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_f_p) +/obj/structure/machinery/light{ + dir = 1 + }, +/turf/open/floor/almayer/red, +/area/almayer/hallways/upper/starboard) "xVk" = ( /turf/open/space, /area/space/almayer/lifeboat_dock) @@ -81208,25 +67989,8 @@ /area/almayer/lifeboat_pumps/south1) "xVI" = ( /obj/structure/largecrate/random/case, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/almayer/red/southwest, /area/almayer/lifeboat_pumps/north1) -"xVO" = ( -/obj/item/clothing/suit/storage/marine/light/vest, -/obj/item/clothing/suit/storage/marine/light/vest, -/obj/item/clothing/suit/storage/marine/light/vest, -/obj/item/clothing/suit/storage/marine/light/vest, -/obj/structure/closet/secure_closet/guncabinet/red, -/obj/structure/sign/safety/storage{ - pixel_x = 8; - pixel_y = -32 - }, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, -/area/almayer/engineering/engineering_workshop/hangar) "xVS" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -81243,11 +68007,13 @@ }, /turf/closed/wall/almayer, /area/almayer/living/tankerbunks) +"xVY" = ( +/obj/structure/machinery/light, +/turf/open/floor/almayer/green, +/area/almayer/hallways/lower/port_midship_hallway) "xWd" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor/almayer{ - icon_state = "orange" - }, +/turf/open/floor/almayer/orange, /area/almayer/squads/alpha_bravo_shared) "xWo" = ( /obj/structure/machinery/door/airlock/almayer/maint{ @@ -81255,9 +68021,7 @@ req_one_access = null; req_one_access_txt = "19;21" }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/squads/req) "xWp" = ( /turf/open/floor/almayer, @@ -81268,20 +68032,12 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/brig/cic_hallway) -"xWF" = ( -/obj/structure/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_m_p) "xWO" = ( /obj/structure/machinery/cm_vending/sorted/medical/wall_med{ pixel_y = -25 }, /obj/structure/largecrate/random/case/small, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/lifeboat_pumps/north1) "xWT" = ( /obj/structure/machinery/shower{ @@ -81298,44 +68054,62 @@ /turf/open/floor/plating/plating_catwalk, /area/almayer/living/port_emb) "xXa" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/west, /area/almayer/engineering/upper_engineering/port) +"xXd" = ( +/turf/open/floor/almayer/silvercorner/east, +/area/almayer/hallways/upper/midship_hallway) "xXh" = ( /turf/closed/wall/almayer/research/containment/wall/west, /area/almayer/medical/containment/cell) +"xXj" = ( +/obj/structure/machinery/door/poddoor/almayer/locked{ + dir = 2; + id = "Perma 1"; + name = "\improper cell shutter" + }, +/obj/structure/machinery/door/airlock/almayer/security/glass/reinforced{ + dir = 2; + name = "\improper Isolation Cell" + }, +/turf/open/floor/almayer/test_floor4, +/area/almayer/shipboard/brig/perma) +"xXl" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/obj/structure/sign/safety/maint{ + pixel_x = 8; + pixel_y = -32 + }, +/turf/open/floor/almayer, +/area/almayer/engineering/lower/workshop/hangar) "xXr" = ( /obj/item/reagent_container/glass/beaker/bluespace, /obj/structure/machinery/chem_dispenser/research, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/medical/medical_science) +"xXT" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/turf/open/floor/almayer/redfull, +/area/almayer/hallways/upper/starboard) +"xXW" = ( +/obj/structure/bed/chair/comfy/bravo, +/turf/open/floor/almayer/plate, +/area/almayer/living/briefing) "xYf" = ( /obj/structure/machinery/cm_vending/clothing/sea, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/almayer/shipboard/sea_office) -"xYj" = ( -/obj/structure/machinery/power/apc/almayer{ - dir = 8 - }, -/obj/structure/surface/rack, -/obj/effect/spawner/random/toolbox, -/obj/structure/machinery/computer/working_joe{ - dir = 4; - pixel_x = -17; - pixel_y = 14 - }, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "orange" +"xYr" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" }, -/area/almayer/shipboard/brig/cells) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/p_bow) "xYB" = ( /obj/structure/sign/safety/storage{ pixel_x = 8; @@ -81343,22 +68117,18 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/starboard_point_defense) -"xYN" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/turf/open/floor/almayer{ - icon_state = "plate" +"xYE" = ( +/obj/structure/machinery/power/apc/almayer{ + dir = 4 }, -/area/almayer/hull/lower_hull/l_f_s) +/turf/open/floor/plating, +/area/almayer/maint/lower/constr) "xYP" = ( /turf/open/floor/plating/plating_catwalk, /area/almayer/living/cryo_cells) "xYQ" = ( /obj/structure/reagent_dispensers/watertank, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/lifeboat_pumps/south1) "xYZ" = ( /obj/structure/disposalpipe/segment{ @@ -81367,32 +68137,74 @@ /obj/structure/pipes/standard/simple/hidden/supply/no_boom{ dir = 4 }, -/turf/open/floor/plating/plating_catwalk, +/turf/open/floor/almayer, /area/almayer/engineering/upper_engineering) -"xZf" = ( -/obj/structure/machinery/light, -/obj/structure/closet/secure_closet/guncabinet/red/cic_armory_mk1_rifle_ap, -/turf/open/floor/almayer{ - icon_state = "redfull" +"xZk" = ( +/obj/item/prop/helmetgarb/gunoil{ + layer = 4.2; + pixel_x = -3; + pixel_y = 6 }, -/area/almayer/command/cic) -"xZI" = ( -/obj/structure/prop/invuln/lattice_prop{ +/obj/item/prop/helmetgarb/gunoil{ + layer = 4.2; + pixel_x = -10; + pixel_y = 10 + }, +/obj/item/prop/helmetgarb/gunoil{ + layer = 4.2; + pixel_x = 4; + pixel_y = 9 + }, +/obj/item/weapon/broken_bottle{ + layer = 4.51; + pixel_x = 9; + pixel_y = 1 + }, +/obj/structure/surface/table/almayer, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer/plate, +/area/almayer/living/briefing) +"xZt" = ( +/obj/structure/sign/safety/refridgeration{ + pixel_y = -32 + }, +/obj/structure/sign/safety/medical{ + pixel_x = 15; + pixel_y = -32 + }, +/obj/structure/machinery/camera/autoname/almayer{ dir = 1; - icon_state = "lattice-simple"; - pixel_x = 16; - pixel_y = -16 + name = "ship-grade camera" + }, +/turf/open/floor/almayer/green, +/area/almayer/hallways/upper/fore_hallway) +"xZG" = ( +/obj/structure/machinery/light{ + dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/item/bedsheet/hop, +/obj/structure/bed, +/turf/open/floor/wood/ship, +/area/almayer/living/commandbunks) +"xZH" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 5 }, -/area/almayer/hull/lower_hull/l_m_s) -"xZK" = ( -/obj/structure/surface/rack, -/turf/open/floor/almayer{ - icon_state = "plate" +/turf/open/floor/almayer, +/area/almayer/maint/hull/upper/u_f_p) +"xZM" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_umbilical) +"xZR" = ( +/obj/structure/sign/safety/distribution_pipes{ + pixel_x = 32 }, -/area/almayer/hull/lower_hull/l_a_p) +/turf/open/floor/almayer/orange/east, +/area/almayer/hallways/lower/starboard_midship_hallway) "xZU" = ( /obj/structure/machinery/cryopod{ pixel_y = 6 @@ -81400,26 +68212,27 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/squads/charlie) "yac" = ( /obj/structure/platform_decoration{ dir = 8 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/almayer/red/north, /area/almayer/lifeboat_pumps/south1) -"yal" = ( -/obj/structure/surface/table/reinforced/almayer_B, -/obj/effect/spawner/random/tool, -/turf/open/floor/almayer{ - icon_state = "plate" +"yap" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 }, -/area/almayer/hull/upper_hull/u_a_p) +/turf/open/floor/almayer/plate, +/area/almayer/hallways/lower/starboard_fore_hallway) +"yat" = ( +/turf/closed/wall/almayer, +/area/almayer/maint/upper/u_a_p) "yaz" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/comdoor{ name = "\improper Officer's Study" @@ -81427,80 +68240,76 @@ /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 2 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/living/officer_study) -"yaG" = ( -/obj/structure/largecrate/random/case/double, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_s) +"yaF" = ( +/obj/structure/pipes/standard/simple/visible{ + dir = 4 + }, +/obj/structure/sign/safety/fire_haz{ + pixel_y = -32 + }, +/obj/structure/sign/safety/hazard{ + pixel_x = 14; + pixel_y = -32 + }, +/turf/open/floor/almayer/orange, +/area/almayer/engineering/lower) "yaQ" = ( /obj/structure/pipes/standard/simple/hidden/supply/no_boom{ dir = 9 }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, +/turf/open/floor/almayer/aicore/no_build, /area/almayer/command/airoom) +"yaX" = ( +/obj/structure/machinery/door/poddoor/railing{ + dir = 2; + id = "vehicle_elevator_railing" + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer/cargo_arrow/north, +/area/almayer/hallways/lower/vehiclehangar) "yaZ" = ( /obj/effect/decal/warning_stripes{ icon_state = "S"; layer = 3.3 }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, +/turf/open/floor/almayer/aicore/no_build, /area/almayer/command/airoom) -"ybb" = ( +"ybm" = ( /obj/structure/surface/table/almayer, -/obj/item/storage/box/ids{ - pixel_x = -4; - pixel_y = 14 - }, -/obj/item/device/flash{ - pixel_y = -8 - }, -/obj/structure/machinery/faxmachine/uscm/brig, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/shipboard/brig/main_office) -"ybf" = ( -/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ - pixel_y = 25 +/obj/item/clothing/head/hardhat{ + pixel_x = 10; + pixel_y = 1 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "blue" +/obj/item/clothing/suit/storage/hazardvest{ + pixel_x = -8; + pixel_y = 6 }, -/area/almayer/hallways/aft_hallway) -"ybr" = ( -/obj/structure/sign/safety/water{ +/obj/item/clothing/suit/storage/hazardvest/yellow, +/obj/item/clothing/suit/storage/hazardvest{ pixel_x = 8; - pixel_y = 32 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_a_p) -"ybO" = ( -/obj/structure/surface/table/reinforced/almayer_B, -/obj/item/stack/sheet/mineral/phoron/medium_stack, -/obj/item/stack/sheet/mineral/phoron/medium_stack{ - pixel_y = 10 + pixel_y = 7 }, -/turf/open/floor/almayer{ - icon_state = "plate" +/turf/open/floor/plating, +/area/almayer/maint/lower/constr) +"ybz" = ( +/obj/structure/machinery/brig_cell/cell_4{ + pixel_x = 32; + pixel_y = -32 }, -/area/almayer/hull/upper_hull/u_a_p) -"ybS" = ( -/obj/structure/prop/invuln/lattice_prop{ - icon_state = "lattice12"; - pixel_y = 16 +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/processing) +"ybP" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_a_s) +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_umbilical) "ybZ" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/structure/transmitter{ @@ -81510,9 +68319,7 @@ phone_id = "Port Railgun Control"; pixel_x = -26 }, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, +/turf/open/floor/almayer/redfull, /area/almayer/shipboard/port_missiles) "ycd" = ( /obj/structure/bed/chair{ @@ -81521,92 +68328,86 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/delta) -"ycj" = ( -/obj/structure/machinery/medical_pod/sleeper{ - dir = 8 - }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, -/area/almayer/medical/medical_science) +"ycl" = ( +/turf/open/floor/plating, +/area/almayer/maint/hull/lower/l_m_s) "ycm" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 6 }, /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/brig/cells) -"ycp" = ( -/obj/structure/window/framed/almayer, -/obj/structure/machinery/door/firedoor/border_only/almayer, -/obj/structure/machinery/door/firedoor/border_only/almayer, -/turf/open/floor/plating, -/area/almayer/squads/req) -"ycr" = ( +"ycx" = ( +/obj/structure/bed/chair/comfy/delta{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer/plate, +/area/almayer/living/briefing) +"ycH" = ( /obj/structure/surface/table/almayer, -/obj/structure/machinery/computer/secure_data, -/turf/open/floor/almayer, -/area/almayer/shipboard/brig/processing) -"ycV" = ( -/obj/structure/curtain/red, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_s) +/obj/item/pizzabox/margherita{ + pixel_y = 8 + }, +/turf/open/floor/almayer/green/north, +/area/almayer/squads/req) +"ycM" = ( +/obj/structure/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_m_p) "ycZ" = ( /obj/structure/sign/poster{ pixel_y = 32 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/almayer/blue/north, /area/almayer/squads/delta) +"ydf" = ( +/obj/structure/platform{ + dir = 1 + }, +/obj/structure/largecrate/random/case, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/upper/u_a_s) "ydh" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, /obj/structure/surface/table/reinforced/black, /obj/item/tank/oxygen, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/engineering/upper_engineering/port) -"ydr" = ( -/obj/structure/largecrate/supply/weapons/pistols, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_m_s) -"ydx" = ( -/obj/structure/sign/safety/hvac_old{ - pixel_x = 8; - pixel_y = -32 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_a_p) "ydz" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/lifeboat_pumps/north2) +"ydA" = ( +/obj/structure/stairs{ + dir = 4 + }, +/obj/effect/projector{ + name = "Almayer_Up3"; + vector_x = -1; + vector_y = 102 + }, +/turf/open/floor/plating/almayer/no_build, +/area/almayer/hallways/lower/port_fore_hallway) "ydE" = ( /obj/effect/decal/warning_stripes{ icon_state = "E"; pixel_x = 1 }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/almayer/medical/hydroponics) "ydI" = ( /obj/effect/decal/warning_stripes{ icon_state = "W"; pixel_x = -1 }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, +/turf/open/floor/almayer/aicore/no_build, /area/almayer/command/airoom) "ydM" = ( /obj/structure/window{ @@ -81616,37 +68417,48 @@ density = 0; pixel_y = 16 }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/living/cryo_cells) -"ydU" = ( -/obj/structure/window/framed/almayer/hull/hijack_bustable, -/obj/structure/machinery/door/poddoor/almayer/locked{ - dir = 8; - id = "Perma 2"; - name = "\improper isolation shutter" +"ydO" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 9 }, -/obj/structure/machinery/door/poddoor/almayer/open{ - dir = 4; - id = "courtyard_cells"; - name = "\improper Courtyard Lockdown Shutter" +/obj/structure/bed/chair/comfy/bravo{ + dir = 1 }, -/turf/open/floor/plating, -/area/almayer/shipboard/brig/perma) +/turf/open/floor/almayer/orangefull, +/area/almayer/living/briefing) "ydY" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 9 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/command/lifeboat) -"yeH" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer, -/area/almayer/lifeboat_pumps/south2) -"yeN" = ( +"yeg" = ( +/obj/structure/sign/safety/escapepod{ + pixel_y = -32 + }, +/obj/structure/sign/safety/east{ + pixel_x = 15; + pixel_y = -32 + }, +/turf/open/floor/almayer/green, +/area/almayer/hallways/upper/fore_hallway) +"yei" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 9 + }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/almayer, +/area/almayer/hallways/upper/midship_hallway) +"yeH" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer, +/area/almayer/lifeboat_pumps/south2) +"yeN" = ( /obj/structure/machinery/landinglight/ds2/delaythree{ dir = 8 }, @@ -81666,27 +68478,8 @@ pixel_x = 2; pixel_y = 6 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/hallways/hangar) -"yeO" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/obj/structure/machinery/light{ - dir = 8 - }, -/turf/open/floor/wood/ship, -/area/almayer/living/commandbunks) -"yeP" = ( -/obj/structure/sign/safety/hvac_old{ - pixel_x = 8; - pixel_y = 32 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_a_s) "yeR" = ( /obj/structure/machinery/cm_vending/clothing/senior_officer{ req_access = null; @@ -81695,57 +68488,55 @@ }, /turf/open/floor/wood/ship, /area/almayer/shipboard/brig/chief_mp_office) -"yeX" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "S" +"yfd" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer/plate, +/area/almayer/hallways/lower/vehiclehangar) +"yff" = ( +/obj/structure/machinery/cm_vending/clothing/dress{ + density = 0; + pixel_y = 16 }, -/obj/structure/closet/secure_closet/guncabinet/blue/riot_control, -/turf/open/floor/plating/almayer, -/area/almayer/shipboard/brig/armory) +/obj/structure/machinery/light{ + dir = 4 + }, +/turf/open/floor/almayer/cargo, +/area/almayer/command/cic) +"yfg" = ( +/obj/structure/pipes/standard/manifold/hidden/supply, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/starboard_midship_hallway) "yfm" = ( /obj/effect/landmark/start/marine/delta, /obj/effect/landmark/late_join/delta, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/delta) -"yfv" = ( -/obj/structure/sign/safety/maint{ - pixel_x = -17 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "green" - }, -/area/almayer/hallways/aft_hallway) -"yfw" = ( -/obj/structure/machinery/light{ - dir = 8 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" - }, -/area/almayer/hallways/starboard_hallway) +"yfn" = ( +/obj/structure/machinery/pipedispenser/orderable, +/turf/open/floor/almayer/plate, +/area/almayer/maint/upper/u_a_s) "yfy" = ( -/obj/structure/surface/table/almayer, -/obj/item/trash/crushed_cup, -/obj/item/reagent_container/food/drinks/cup{ - pixel_x = -5; - pixel_y = 9 +/obj/structure/barricade/handrail{ + dir = 1; + pixel_y = 2 }, -/obj/item/spacecash/c10{ - pixel_x = 5; - pixel_y = 10 +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_fore_hallway) +"yfG" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" }, -/obj/item/ashtray/plastic{ - pixel_x = 5; - pixel_y = -10 +/obj/structure/machinery/power/apc/almayer{ + dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/item/storage/briefcase{ + pixel_y = 15 }, -/area/almayer/hull/lower_hull/l_m_s) +/turf/open/floor/wood/ship, +/area/almayer/living/commandbunks) "yfS" = ( /obj/structure/window/framed/almayer, /obj/structure/machinery/door/firedoor/border_only/almayer{ @@ -81758,113 +68549,100 @@ /obj/structure/machinery/computer/cameras/almayer/vehicle{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/command/lifeboat) -"ygs" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "NE-out"; - pixel_y = 1 - }, -/obj/structure/machinery/door/airlock/almayer/generic{ - name = "\improper Bathroom" +"ygp" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_midship_hallway) +"ygv" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +/obj/structure/sign/safety/nonpress_ag{ + pixel_x = 15; + pixel_y = -32 }, -/area/almayer/living/captain_mess) -"ygy" = ( -/obj/structure/machinery/light/small{ - dir = 1 +/obj/structure/sign/safety/west{ + pixel_y = -32 }, -/obj/structure/surface/rack, -/obj/effect/spawner/random/tool, -/obj/effect/spawner/random/tool, /turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_p) -"ygK" = ( -/obj/structure/prop/almayer/computers/sensor_computer3, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_s) -"ygM" = ( -/obj/structure/sign/safety/ammunition{ - pixel_x = 32; - pixel_y = 7 +/area/almayer/maint/hull/lower/l_f_p) +"ygB" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 }, -/obj/structure/closet/secure_closet/guncabinet/red/armory_shotgun, -/turf/open/floor/almayer{ - icon_state = "redfull" +/turf/open/floor/almayer/green/southeast, +/area/almayer/hallways/lower/starboard_midship_hallway) +"ygP" = ( +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/structure/surface/table/almayer, +/obj/item/fuel_cell, +/turf/open/floor/almayer/cargo, +/area/almayer/engineering/lower/engine_core) +"yhg" = ( +/obj/structure/machinery/camera/autoname/almayer{ + dir = 4; + name = "ship-grade camera"; + pixel_y = 6 }, -/area/almayer/medical/upper_medical) -"yhI" = ( -/turf/open/floor/almayer{ +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/cells) +"yht" = ( +/obj/structure/disposalpipe/segment{ dir = 4; - icon_state = "red" + icon_state = "pipe-c" }, +/turf/open/floor/almayer/red, +/area/almayer/living/cryo_cells) +"yhI" = ( +/turf/open/floor/almayer/red/east, /area/almayer/lifeboat_pumps/south1) -"yhQ" = ( -/turf/closed/wall/almayer/outer, -/area/almayer/hull/lower_hull/l_m_p) -"yiq" = ( -/obj/structure/sign/safety/north{ - pixel_x = -17; - pixel_y = -8 +"yhR" = ( +/obj/structure/machinery/light/small{ + dir = 8 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_m_s) +"yhV" = ( +/obj/structure/machinery/door/airlock/almayer/generic{ + dir = 1; + name = "Bathroom" }, -/area/almayer/hallways/starboard_hallway) -"yit" = ( -/obj/structure/machinery/light{ +/turf/open/floor/almayer/test_floor4, +/area/almayer/shipboard/brig/mp_bunks) +"yhZ" = ( +/turf/closed/wall/almayer/reinforced, +/area/almayer/maint/hull/lower/p_bow) +"yia" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_a_s) +"yih" = ( +/obj/structure/machinery/light/small{ dir = 4 }, -/obj/structure/pipes/vents/pump/no_boom{ - dir = 1 - }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, -/area/almayer/command/airoom) -"yiC" = ( -/obj/structure/surface/table/almayer, -/obj/structure/flora/pottedplant{ - icon_state = "pottedplant_21"; - pixel_y = 11 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_f_p) -"yiE" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/turf/open/floor/almayer, -/area/almayer/engineering/engineering_workshop/hangar) -"yiL" = ( +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_m_s) +"yiu" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/obj/item/device/radio/intercom{ - freerange = 1; - name = "General Listening Channel"; - pixel_y = -28 +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_s) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/upper/midship_hallway) "yiW" = ( /obj/structure/machinery/cryopod/right{ layer = 3.1; pixel_y = 13 }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/almayer/squads/charlie) "yiX" = ( /obj/structure/machinery/camera/autoname/almayer{ @@ -81883,33 +68661,44 @@ name = "General Listening Channel"; pixel_y = 28 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/north, /area/almayer/medical/morgue) -"yji" = ( -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_m_p) "yjq" = ( /obj/structure/machinery/door/poddoor/almayer/locked{ icon_state = "almayer_pdoor"; id = "n_engi_ext" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/engineering/upper_engineering/notunnel) -"yjM" = ( +"yjr" = ( +/obj/docking_port/stationary/escape_pod/north, +/turf/open/floor/plating, +/area/almayer/maint/upper/u_f_s) +"yjE" = ( +/obj/structure/sign/safety/water{ + pixel_x = 8; + pixel_y = 32 + }, +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/stern) +"yjG" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "blue" +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/lobby) +"yjM" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, +/turf/open/floor/almayer/blue/east, /area/almayer/living/pilotbunks) +"yjU" = ( +/turf/open/floor/almayer/emeraldfull, +/area/almayer/living/briefing) "ykj" = ( /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 2 @@ -81917,123 +68706,55 @@ /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper Rest and Relaxation Area" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/almayer/living/grunt_rnr) -"yky" = ( -/obj/structure/surface/rack, -/obj/effect/spawner/random/toolbox, -/obj/effect/spawner/random/toolbox, -/obj/effect/spawner/random/toolbox, -/obj/effect/spawner/random/tool, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/hull/lower_hull/l_m_s) -"ykD" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "red" - }, -/area/almayer/command/lifeboat) -"ykF" = ( -/obj/structure/machinery/cm_vending/sorted/tech/tool_storage, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" - }, -/area/almayer/hull/lower_hull/l_m_s) -"ykP" = ( -/obj/structure/filingcabinet{ - density = 0; - pixel_x = -8; - pixel_y = 18 - }, -/obj/structure/filingcabinet{ - density = 0; - pixel_x = 8; - pixel_y = 18 +"yko" = ( +/obj/vehicle/powerloader, +/obj/structure/platform{ + dir = 4 }, -/obj/item/device/taperecorder, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/structure/platform{ + dir = 8 }, -/area/almayer/shipboard/brig/main_office) -"ylc" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 +/turf/open/floor/almayer/cargo, +/area/almayer/hallways/lower/repair_bay) +"ykv" = ( +/obj/structure/machinery/door/poddoor/shutters/almayer/open{ + id = "InnerShutter"; + name = "\improper Saferoom Shutters" }, +/turf/open/floor/almayer/test_floor4, +/area/almayer/shipboard/panic) +"ykI" = ( /obj/effect/decal/warning_stripes{ - icon_state = "W"; - pixel_x = -1 - }, -/obj/structure/machinery/door/airlock/almayer/research/reinforced{ - dir = 8; - name = "\improper Containment Airlock" - }, -/obj/structure/machinery/door/poddoor/almayer/biohazard/white{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" + icon_state = "S" }, -/area/almayer/medical/containment) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/engineering/lower) "yle" = ( /obj/effect/landmark/start/marine/engineer/delta, /obj/effect/landmark/late_join/delta, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/almayer/squads/delta) -"ylg" = ( -/obj/structure/machinery/cryopod/right, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/command/airoom) -"ylJ" = ( -/obj/structure/sign/safety/maint{ +"ylh" = ( +/obj/structure/closet/radiation, +/turf/open/floor/almayer/test_floor5, +/area/almayer/engineering/lower/engine_core) +"ylN" = ( +/obj/structure/sign/safety/galley{ pixel_x = 8; pixel_y = 32 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orangecorner" - }, -/area/almayer/hallways/stern_hallway) -"ylY" = ( -/obj/structure/largecrate/random/case/double, -/obj/item/tool/wet_sign{ - pixel_y = 18 - }, -/obj/item/trash/cigbutt/ucigbutt{ - desc = "A handful of rounds to reload on the go."; - icon = 'icons/obj/items/weapons/guns/handful.dmi'; - icon_state = "bullet_2"; - name = "handful of pistol bullets (9mm)"; - pixel_x = -8; - pixel_y = 10 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_s) -"ymi" = ( -/obj/structure/machinery/door/airlock/almayer/maint{ - req_one_access = null; - req_one_access_txt = "2;30;34" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_aft_hallway) +"ymg" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + layer = 2.5; + pixel_y = 1 }, -/area/almayer/hull/upper_hull/u_f_p) +/turf/open/floor/almayer/plate, +/area/almayer/maint/hull/lower/l_f_p) (1,1,1) = {" aaa @@ -82238,413 +68959,7 @@ aaa aaa aaa "} -(2,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aKQ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(3,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aKQ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(4,1,1) = {" +(2,1,1) = {" aaa aaa aaa @@ -82847,7 +69162,7 @@ aaa aaa aaa "} -(5,1,1) = {" +(3,1,1) = {" aaa aaa aaa @@ -83050,7 +69365,7 @@ aaa aaa aaa "} -(6,1,1) = {" +(4,1,1) = {" aaa aaa aaa @@ -83253,7 +69568,7 @@ aaa aaa aaa "} -(7,1,1) = {" +(5,1,1) = {" aaa aaa aaa @@ -83456,7 +69771,7 @@ aaa aaa aaa "} -(8,1,1) = {" +(6,1,1) = {" aaa aaa aaa @@ -83659,7 +69974,7 @@ aaa aaa aaa "} -(9,1,1) = {" +(7,1,1) = {" aaa aaa aaa @@ -83862,7 +70177,7 @@ aaa aaa aaa "} -(10,1,1) = {" +(8,1,1) = {" aaa aaa aaa @@ -84065,7 +70380,7 @@ aaa aaa aaa "} -(11,1,1) = {" +(9,1,1) = {" aaa aaa aaa @@ -84268,7 +70583,7 @@ aaa aaa aaa "} -(12,1,1) = {" +(10,1,1) = {" aaa aaa aaa @@ -84471,7 +70786,7 @@ aaa aaa aaa "} -(13,1,1) = {" +(11,1,1) = {" aaa aaa aaa @@ -84674,7 +70989,7 @@ aaa aaa aaa "} -(14,1,1) = {" +(12,1,1) = {" aaa aaa aaa @@ -84877,7 +71192,7 @@ aaa aaa aaa "} -(15,1,1) = {" +(13,1,1) = {" aaa aaa aaa @@ -85080,213 +71395,11 @@ aaa aaa aaa "} -(16,1,1) = {" -aaa -aaa -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aaa -aaa -aKQ -aaa -aaa -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aaa -aaa -"} -(17,1,1) = {" -aaa +(14,1,1) = {" +aaa +aaa +aaa aaa -aab aaa aaa aaa @@ -85381,13 +71494,11 @@ aaa aaa aaa aaa -aab aaa aaa aKQ aaa aaa -aab aaa aaa aaa @@ -85482,14 +71593,16 @@ aaa aaa aaa aaa -aab +aaa +aaa aaa aaa "} -(18,1,1) = {" +(15,1,1) = {" +aaa +aaa aaa aaa -aab aaa aaa aaa @@ -85584,13 +71697,11 @@ aaa aaa aaa aaa -aab aaa aaa aKQ aaa aaa -aab aaa aaa aaa @@ -85685,11 +71796,215 @@ aaa aaa aaa aaa +aaa +aaa +aaa +aaa +"} +(16,1,1) = {" +aaa +aaa +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aaa +aaa +aKQ +aaa +aaa +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab aab aaa aaa "} -(19,1,1) = {" +(17,1,1) = {" aaa aaa aab @@ -85892,7 +72207,7 @@ aab aaa aaa "} -(20,1,1) = {" +(18,1,1) = {" aaa aaa aab @@ -86095,7 +72410,7 @@ aab aaa aaa "} -(21,1,1) = {" +(19,1,1) = {" aaa aaa aab @@ -86298,7 +72613,7 @@ aab aaa aaa "} -(22,1,1) = {" +(20,1,1) = {" aaa aaa aab @@ -86346,10 +72661,213 @@ aaa aaa aaa aaa -bdH -bdH -bdH -bdH +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aab +aaa +aaa +aKQ +aaa +aaa +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aab +aaa +aaa +"} +(21,1,1) = {" +aaa +aaa +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa aaa aaa aaa @@ -86501,7 +73019,7 @@ aab aaa aaa "} -(23,1,1) = {" +(22,1,1) = {" aaa aaa aab @@ -86704,7 +73222,7 @@ aab aaa aaa "} -(24,1,1) = {" +(23,1,1) = {" aaa aaa aab @@ -86907,7 +73425,7 @@ aab aaa aaa "} -(25,1,1) = {" +(24,1,1) = {" aaa aaa aab @@ -87110,7 +73628,7 @@ aab aaa aaa "} -(26,1,1) = {" +(25,1,1) = {" aaa aaa aab @@ -87313,7 +73831,7 @@ aab aaa aaa "} -(27,1,1) = {" +(26,1,1) = {" aaa aaa aab @@ -87516,7 +74034,7 @@ aab aaa aaa "} -(28,1,1) = {" +(27,1,1) = {" aaa aaa aab @@ -87719,7 +74237,7 @@ aab aaa aaa "} -(29,1,1) = {" +(28,1,1) = {" aaa aaa aab @@ -87767,10 +74285,10 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa +bdH +bdH +bdH +bdH aaa aaa aaa @@ -87922,7 +74440,7 @@ aab aaa aaa "} -(30,1,1) = {" +(29,1,1) = {" aaa aaa aab @@ -87983,15 +74501,15 @@ aaa aaa aaa aaa -bdH -bdH -bdH -bdH -bdH -bdH -bdH -bdH -bdH +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa aaa aaa aaa @@ -88125,7 +74643,7 @@ aab aaa aaa "} -(31,1,1) = {" +(30,1,1) = {" aaa aaa aab @@ -88328,7 +74846,7 @@ aab aaa aaa "} -(32,1,1) = {" +(31,1,1) = {" aaa aaa aab @@ -88531,7 +75049,7 @@ aab aaa aaa "} -(33,1,1) = {" +(32,1,1) = {" aaa aaa aab @@ -88733,15 +75251,214 @@ aaa aab aaa aaa -"} -(34,1,1) = {" +"} +(33,1,1) = {" +aaa +aaa +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +bdH +bdH +bdH +bdH +bdH +bdH +bdH +bdH +bdH +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aab +aaa +aaa +aKQ +aaa +aaa +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa aaa aaa aab aaa aaa +"} +(34,1,1) = {" aaa aaa +aab aaa aaa aaa @@ -88778,6 +75495,10 @@ aaa aaa aaa aaa +bdH +bdH +bdH +bdH aaa aaa aac @@ -88973,7 +75694,7 @@ aaa aaa aaa aaa -aaa +bdH aaa aaa aaa @@ -88984,13 +75705,13 @@ aaa aaa aaa aad -cZs -cZs -iZG -iZG -iZG -cZs -cZs +feb +feb +feb +feb +feb +feb +feb ajZ aaa aaa @@ -89176,7 +75897,7 @@ aaa aaa aaa aaa -aaa +bdH aaa aaa aaa @@ -89187,13 +75908,13 @@ aaf aaf aaf aag -cZs -cWN -dgx -dgx -dgx -sdq -cZs +feb +qmR +oog +dsA +rbK +tmH +feb aag aaf aaf @@ -89379,29 +76100,29 @@ aaa aaa aaa aaa -aaa +bdH aaa aaa aaa aaa aad -cZs -cZs -cZs -cZs -cZs -cZs -dfp -sEa -vBJ -uNl -oxn -cZs -xEF -xEF -xEF -xEF -xEF +hPI +hPI +hPI +hPI +hPI +feb +dhd +oog +jNT +fag +qCA +feb +hRu +hRu +hRu +hRu +hRu ajZ aaa aaa @@ -89588,23 +76309,23 @@ aaa aac aaf aag -cZs -yeR -aTg -kyI -aTg -pdG -vAG -dOL -jfY -hwS -wly -wIC -dtN -syM -irr -dAb -xEF +hPI +naB +naB +naB +naB +mtl +vdl +nPb +fZX +dBS +nSu +rXE +xyN +ltO +tBP +tfE +hRu aag aaf ajY @@ -89789,27 +76510,27 @@ aaa aaa aaa aad -pCi -pCi -cZs -osJ -aTg -xvr -bZN -wIC -dWk -fYX -ush -rTt -vAG -wIC -fGN -kIV -kIV -shw -xEF -xEF -xEF +uDg +uDg +hPI +pQr +rib +vtG +naB +mtl +eCI +nOC +qVF +xdJ +kzr +jqY +elV +dJJ +dJJ +glP +hRu +xiV +xiV ajZ aaa aaa @@ -89991,29 +76712,29 @@ aaf aaf aaf aaf -pCi -pCi -myT -wIC -lcW -pbC -xvr -vCG -wIC -tNF -tNF -wIC -hzx -wIC -wIC -vBm -vBm -bIi -mnm -kPo -cFX -xEF -xEF +uDg +uDg +lHk +naB +wnw +pHp +fgl +dya +fLF +kEq +mtl +mtl +mtl +mtl +ewI +xyN +hdQ +hUU +cXD +xyN +igS +xiV +xiV aaf aaf aaf @@ -90187,43 +76908,43 @@ aaa aaa aaa aad -pCi -pCi -pCi -pCi -pCi -pCi -pCi -pCi -cpf -cos -wIC -wIC -wIC -wIC -wIC -wIC -cNY -tak -sip -mLJ -ntm -hND -kif -hND -mnm -wVz -kIV -dDQ -sGe -xEF -xEF -xEF -xEF -xEF -xEF -xEF -xEF +uDg +uDg +uDg +uDg +uDg +uDg +uDg +uDg +aPN +lSJ +naB +pQr +jeR +wvI +vPf +fvA +qPD +vcm +tul +mNK +gtU +bjk +xyN +xyN +xyN +xyN +xyN +iuf +pnh +xiV +xiV +xiV +xiV +xiV +xiV +xiV +xiV ajZ aaa aaa @@ -90390,43 +77111,43 @@ aaa aaa aaa aad -pCi -mUQ -rPC -wcn -wcn -xhM -wcn -tng -hGD -wzx -vBm -paq -uoY -vUL -vez -xys -swo -eRL -eRL -mLJ -bua -vBm -xkd -xkd -xkd -xkd -kIV -iYi -gSs -eyd -kIV -kQz -mnm -kIV -kIV -flP -xEF +uDg +cth +gkr +xkc +oGj +iVD +xkc +mph +nlh +rGr +naB +naB +naB +naB +naB +dcy +qPD +qPD +qPD +qPD +quJ +rdA +dbs +sql +jyY +rwe +pdp +hZw +xYr +mjs +pdp +ohu +iUh +pdp +pdp +kSn +xiV ajZ bdH bdH @@ -90593,43 +77314,43 @@ bdH aac aaf aag -pCi -rPC -wcn -rPC -vWx -age -dPY -rTV -wcn -tYB -vBm -qfR -tak -tak -bvx -xys -qan -eRL -eRL -mLJ -eiO -xFs +uDg +gkr +xkc +gkr +vAg +gxI +kqC +bBU +xkc +eeA +naB +pQr +ggS +wvI +piK +fvA +qPD +wZL +ffg +ffg +wsh +eMJ xkd -eiH -aTV xkd xkd xkd -mnm -mnm -iqx -qFl -vUI -mnm -mnm -kIV -xEF +xkd +xkd +lRt +tsE +iVG +hmA +hmZ +oDh +oDh +pdp +xiV aag aaf ajY @@ -90795,34 +77516,34 @@ bdH bdH aad aag -pCi -pCi -rPC -wcn -vBm -vBm -vBm -vBm -vBm -qmC -vBm -vBm -ouV -bTw -sjc -dci -rzj -tGg -sjc -sjc -iqn -eRL -tmy +uDg +uDg +gkr +xkc +hvd +hvd +hvd +hvd +hvd +bLF +eyD +naB +kry +pHp +fgl +xXj +qXE +qPD +sPF +qPD +qPD +uQm +stO +xkd +teE +xJT xkd -rUB -dSn -soa -xzu +ljS xkd xkd xkd @@ -90830,10 +77551,10 @@ xkd xkd xkd xkd -kIV -mnm -xEF -xEF +pdp +oDh +xiV +xiV aag ajZ bdH @@ -90993,39 +77714,39 @@ aaa aaa aaa aaa -aaa +bdH bdH bdH aad aag -pCi -ext -rPC -mUQ -vBm -rBV -oPk -mqo -vBm -eRL -rag -qqN -lzx -mLJ -bua -gcT -dSc -qre -eRL -eOR -aJz -dXy -nHg -xkd -ghX -rAv +uDg +pOp +gkr +cth +hvd +ddj +wlg +fuY +hvd +cQG +jXc +naB +pQr +bsp +hCV +naB +naB +uUu +qCU +qZF +qPD +iQd +qJo xkd -eTo +vWG +lJL +dQp +vlM iHG dCe moB @@ -91033,10 +77754,10 @@ uns vCy eyV xkd -dAb -mnm -kIV -xEF +mkF +oDh +pdp +xiV aag ajZ bdH @@ -91195,38 +77916,38 @@ aaa aaa aaa aaa -aaa -aaa +bdH +bdH bdH bdH aad aag -pCi -oCL -wcn -fuB -vBm -ldu -wgi -wgi -ckS -eRL -bua -gcT -gcT -tJy -fnC -tpn -tpn -tpn -ula -tpn -wvT -luw -sgi -xkd -xkd +uDg +lDT +xkc +xyZ +hvd +vGn +ehl +ehl +uXu +cQG +alp +naB +naB +naB +naB +naB +naB +nVR +nVR +nVR +nux +tau +nVR xkd +xik +bjQ xkd kmd tUx @@ -91236,10 +77957,10 @@ xGh jVa wDs xkd -ukt -mnm -kIV -xEF +oHf +oDh +pdp +xiV aag ajZ bdH @@ -91399,39 +78120,39 @@ aaa aaa aaa aaa -aaa +bdH bdH bdH aad aag -pCi -wcn -rPC -vBm -vBm -sFC -sFC -sFC -vBm -pcQ -xHe -gqW -gqW -lCM -ugT -tpn -vrM -kta -vWo -xrP -xTp -pyj -pwt +uDg +xkc +gkr +hvd +hvd +iRp +iRp +iRp +hvd +cyc +vzy +fqQ +kHo +sFu +hnE +tTO +wFs +nkX +iQB +cmv +vzk +phN +iVP xkd -uvY -oBq xkd -rPh +xkd +xkd +umW iOD iOD tHS @@ -91440,9 +78161,9 @@ tUx wRN xkd xkd -kIV -mnm -xEF +pdp +oDh +xiV aag ajZ bdH @@ -91510,10 +78231,10 @@ aaa bdH aad aag -nXP -nXP -nXP -nXP +nBJ +nBJ +nBJ +nBJ aag dqw uwv @@ -91535,10 +78256,10 @@ dqw aag aag aag -vRz -vRz -vRz -vRz +wid +wid +wid +wid aag ajZ bdH @@ -91602,39 +78323,39 @@ aaa aaa aaa aaa -aaa +bdH bdH bdH aad aag -ahE -wcn -rPC -vBm -ykP -xAj -xhE -xhE -vBm -hKq -cdk -soD -tdv -szy -wdr -tpn -aeo -sIw -eni -xrP -xTp -pyj -hTt -kMH -tUx -iTI -hzJ -cyZ +lrE +xkc +gkr +hvd +iUX +gii +gIO +gIO +hvd +gYx +oyC +bKI +xhU +xhU +jCX +sEz +iNh +wdF +wdF +wdF +wdF +cMl +icZ +xkd +uvY +oBq +xkd +wKJ jVa jVa tHS @@ -91643,9 +78364,9 @@ tUx xJe qLt xkd -kIV -mnm -ils +pdp +oDh +cPj aag etE bdH @@ -91713,9 +78434,9 @@ aaa bdH aad aag -nXP -xFD -ntA +nBJ +kJc +jFt bAs bAs bAs @@ -91739,9 +78460,9 @@ bTT bTT bTT bAs -vIA -xgn -vRz +kOR +jYM +wid aag ajZ bdH @@ -91805,39 +78526,39 @@ aaa aaa aaa aaa -aaa +bdH bdH bdH aad aag -ahE -rPC -wcn -vBm -ykP -xjG -ssD -gcT -rmv -eRL -mLJ -bua -nNQ -gcT -ciF -tpn -vrM -eBW -eOh -xrP -xTp -pyj -kfN -xkd -qFu -xkd -xkd -qJZ +lrE +gkr +xkc +hvd +iUX +gJE +cKJ +hyV +keG +cQG +cQG +ugw +cwC +cwC +sEz +cwC +uun +oRk +oRk +oRk +utZ +cMl +hTt +kMH +tUx +iTI +dmZ +eZH jVa jVa tHS @@ -91846,9 +78567,9 @@ ycm qCo pWr xkd -uqa -mnm -ils +aGa +oDh +cPj aag ajZ bdH @@ -91916,9 +78637,9 @@ aaa bdH aad aag -nXP -xYN -jup +nBJ +rUi +grv bBA bAK bCY @@ -91942,9 +78663,9 @@ acr bPG acN bBA -qXM -gUv -vRz +gTK +fWg +wid aag ajZ bdH @@ -92008,37 +78729,37 @@ aaa aaa aaa aaa -aaa +bdH bdH bdH aad aag -ahE -nBc -wcn -vBm -vBm -vBm -vBm -vBm -vBm -hZU -mLJ -fkn -gaJ -gaJ -gaJ -gaJ +lrE +vDh +xkc +lrq +lrq +lrq +lrq +lrq +lrq +lrq +uhA +aaP tpn tpn -ueo +srT tpn -wCM -pyj -opN +tpn +xjF +myP +gDt +bju +cMl +lMc +xkd +qFu xkd -uvY -duT xkd vdM jVa @@ -92049,9 +78770,9 @@ cyZ jVa fJT xkd -ipT -kIV -ils +rfB +pdp +cPj aag eSU bdH @@ -92119,9 +78840,9 @@ aaa bdH aad aag -nXP -ewT -sIT +nBJ +uRR +mFQ bBA hWJ bCY @@ -92145,9 +78866,9 @@ bHP bPG hpk bBA -fTu -umT -vRz +yhZ +wtD +wid aag ajZ bdH @@ -92211,38 +78932,38 @@ aaa aaa aaa aaa -aaa +bdH bdH bdH aad aag -pCi -mUQ -aou -vBm -tJp -ybb -tHB -aEk -nSM -ldu -mLJ -pYF -gaJ -wVV -wVV -wVV -gaJ -aOY -wdF -sdF -kNi -pyj -xIw -kVZ -tUx -iTI -nXm +uDg +cth +qsp +lrq +kEc +chv +cAy +uhE +vKB +lrq +vjB +gIz +tpn +eVR +cak +vrM +tpn +mHb +hjM +xTH +bju +wSm +dEG +xkd +uvY +duT +xkd eZH jVa jVa @@ -92252,9 +78973,9 @@ dfk vzz moB xkd -lmk -kIV -xEF +gNZ +pdp +xiV aag ajZ bdH @@ -92322,9 +79043,9 @@ aaa bdH aad aag -nXP -thT -mGL +nBJ +ecS +eQR gol akb bCY @@ -92348,9 +79069,9 @@ bPn bPG ald gol -nqU -pch -vRz +sGK +hLu +wid aag ajZ bdH @@ -92414,50 +79135,50 @@ aaa aaa aaa aaa -aaa +bdH bdH bdH aad aag -pCi -hKi -rPC -vBm -sQS -xEc -grl -egR -tak -lzx -mLJ -ugT -fso -vpI -vpI -vpI -cuk -tkV -jFR -oRk -kxM -jSw -vBm -vBm -qof -vBm -vBm -wRm +uDg +cUl +gkr +lrq +heo +nqe +nqe +nqe +nqe +tLa +cQG +gfd +tpn +rqS +cak +vrM +tpn +pUD +bju +wdF +wdF +wSm +dPT +kVZ tUx -vrx +iTI +nUj +eZH tUx -gSV +vrx +yhg +lbs eZH tUx cXi xkd -irr -kIV -xEF +ttB +pdp +xiV aag twB bdH @@ -92525,9 +79246,9 @@ aaa bdH aad aag -nXP -mGL -fEV +nBJ +eQR +xAu bBA bAN bCY @@ -92551,9 +79272,9 @@ bPo bPG acs bBA -lZB -nqU -vRz +xHX +sGK +wid aag ajZ bdH @@ -92622,34 +79343,34 @@ bdH bdH aad aag -ahE -nnF -rPC -vBm -ikM -pzc -jjM -eRL -eRL -eRL -mLJ -ugT -qvf -vpI -vpI -vpI -qvf -wdF -lMc -ycr -kge -kDA -rkL -eZj -efh -mGn -jkS -cyZ +lrE +vOM +gkr +lrq +kui +uqo +pId +qMD +uqo +lrq +nVm +dRA +tpn +gIU +xIq +vrM +tpn +efT +nkF +hkH +kuJ +sLA +jSw +xkd +qFu +xkd +xkd +icM thL thL thL @@ -92658,9 +79379,9 @@ nYd thL jVa fgR -hPT -mnm -ils +nEc +oDh +cPj aag ajZ bdH @@ -92728,9 +79449,9 @@ aaa bdH aad aag -nXP -tRV -hJp +nBJ +ldF +eox bBA bAO bCZ @@ -92754,9 +79475,9 @@ bDW bPJ iuz bBA -vhq -orv -vRz +mVh +uMf +wid aag ajZ bdH @@ -92825,45 +79546,45 @@ bdH bdH aad aag -ahE -hUg -wcn -vBm -gqW -buX -mLJ -eRL -eRL -eRL -mLJ -pWG -gaJ -eyg -gCI -eyg -gaJ -heQ -lMc -eOW +lrE +etN +xkc +lrq +sEZ +nqe +nqe +nqe +nqe +mza +cQG +qvE +tpn +tpn +tpn +tpn +tpn +xIu +xvQ +eDt +bju cMl -lMc -nxq -ldu -kJK -bja -jkS -eZH +kAL +xkd +uvY +sgE +xkd +qJZ ohJ thL thL -aHT +uAL liZ rUk jVa fgR -evl -uNF -ils +azg +gKv +cPj aag rEr bdH @@ -92931,9 +79652,9 @@ aaa bdH aad aag -nXP -hJp -mGL +nBJ +ldF +eQR bBA bAP aqu @@ -92957,9 +79678,9 @@ aqu aqu bQz bBA -nqU -cEY -vRz +sGK +vOG +wid aag ajZ bdH @@ -93028,34 +79749,34 @@ bdH bdH aad aag -ahE -rPC -wcn -vBm -jCa -cFO -lNs -srV -uzU -nJo -inN -wQk -gaJ -gaJ -gaJ -gaJ -gaJ -tRA -lMc -ffV +lrE +gkr +xkc +lrq +dEX +fxJ +fxJ +fAr +qmU +lrq +dmr +wLS +aVm +cmM +miy +iUG +cmM +snX +oIh +oIh +wNt cMl -oeB -rkL -ldu -eRL -jZL -vBm -qJZ +nlz +vNp +tUx +iTI +qxe +eZH ohJ thL thL @@ -93064,9 +79785,9 @@ uaU rUk xaM fgR -fQk -kIV -ils +hIG +pdp +cPj aag ajZ bdH @@ -93134,9 +79855,9 @@ aaa bdH aad aag -nXP -fNg -hJp +nBJ +vCE +ldF bBA bBu amg @@ -93160,9 +79881,9 @@ amg amg rAD bBA -nqU -vhq -vRz +sGK +mVh +wid aag ajZ bdH @@ -93231,34 +79952,34 @@ bdH bdH aad aag -pCi -wcn -wcn +uDg +xkc +xkc lrq +iwV +iwV +iwV +iwV lrq -bVC lrq -lrq -lut -eRL -eRL -enz -swn -vOd -uCl -dls -eGr -gbX -rCL -xHM -jxK -hyz -ltX -pbh -rRQ -rRQ -iyq -inG +kXt +wLS +eBx +cmM +hAf +cNI +bbi +wdF +wdF +wdF +wdF +kQu +cqM +xkd +qFu +xkd +xkd +pns omt omt omt @@ -93267,9 +79988,9 @@ uxa iZU nhG xkd -mnm -hgH -xEF +oDh +uqg +xiV aag uJk bdH @@ -93337,9 +80058,9 @@ aaa bdH aad aag -nXP -gjv -mGL +nBJ +amu +eQR bBA bBu amg @@ -93363,9 +80084,9 @@ amg amg rAD bBA -rpW -kAs -vRz +ozH +flr +wid aag ajZ bdH @@ -93434,34 +80155,34 @@ bdH bdH aad aag -pCi -rPC -rwS -lrq -fFq -uqo -rhD -cqn -gTx -eRL -eRL -igt -swn -daj -qbt -exr -kHa -luH -lMc -ycr +uDg +gkr +old +cQv +oVf +rmx +bvH +evR +cQv +cQv +rmk +nuZ +cmM +cmM +pdT +otp +cmM +tzd +tzd +sgi bju -goD -vBm -vBm -qof -vBm -vBm -sSm +wSm +kAL +xkd +uvY +qEA +xkd +eZo thL thL thL @@ -93470,9 +80191,9 @@ tov thL sUs xkd -mnm -kIV -xEF +gNZ +pdp +xiV aag ajZ bdH @@ -93540,9 +80261,9 @@ aaa bdH aad aag -nXP -oZd -mGL +nBJ +kMW +eQR bBA bBv aqu @@ -93566,9 +80287,9 @@ tkq aqu bQG bBA -vht -vhq -vRz +uoO +mVh +wid aag ajZ bdH @@ -93637,34 +80358,34 @@ bdH bdH aad aag -ahE -rPC -nfI -lrq -eTx -uqo -hGa -cqn -ldu -eRL -eRL -cWs -swn -dcP -tvA -dQv -swn -xTp -lMc -gSi +lrE +gkr +wJC +cQv +cBw +kde +kde +ajj +mZQ +cQv +dFl +tUK +kTp +sYl +fgt +kCY +kTp +gHt +oIh +eNR bju wSm -jox -lrV -tUx -ntu -nYP +ybz +rrz tUx +iTI +tlp +lXb thL oXp thL @@ -93673,9 +80394,9 @@ tov thL xhx fgR -mnm -kIV -ils +oDh +pdp +cPj aag scz bdH @@ -93743,9 +80464,9 @@ aaa bdH aad aag -nXP -lAP -mGL +nBJ +iWJ +eQR bBA bBx amg @@ -93769,9 +80490,9 @@ bPq amg rAD bBA -nqU -rSK -vRz +sGK +nhV +wid aag ajZ bdH @@ -93840,34 +80561,34 @@ bdH bdH aad aag -ahE -rPC -heV -lrq -lCn -uqo -xub -cqn -nBb -mdS -eRL -uJs -swn -dfO -doj -dQv -swn -fYn -qZg -iXt -gBi -wSm -opN +lrE +gkr +wMF +cQv +eaf +bEv +quj +vgi +rXd +cqJ +oJm +tUK +kTp +hUh +nWS +xpw +kTp +neC +mjt +vqc +edo +fTt +lMc xkd -nlH -rQY +qFu xkd -xMQ +xkd +thq ezX pqF rUk @@ -93876,9 +80597,9 @@ iFc thL tUx fgR -inC -fQk -ils +pdp +hIG +cPj aag ajZ bdH @@ -93946,9 +80667,9 @@ aaa aac aag aag -nXP -tpg -vmK +nBJ +dKS +ffN bBA bBy amg @@ -93972,9 +80693,9 @@ aoa amg bQE bBA -bVL -nqU -vRz +bME +sGK +wid aag aag ajY @@ -94043,34 +80764,34 @@ bdH bdH aad aag -ahE -wcn -nBc -lrq -ebt -uqo -lLN -lrq -mAT -lrq -cxA -plZ -kHa -qPO -qPO -wuc -qPO -oRZ -wdF -xCd -bqp -wSm -kfN -xkd -qFu +lrE +xkc +vDh +cQv +eaf +bEv +lEe +pGT +pGT +vkM +ksm +bxE +cmM +oeZ +wLF +oeZ +oeZ +ptq +oRk +eNR +bju +cMl +dEG xkd +uvY +lSs xkd -jVa +kbX ezX prY rUk @@ -94079,9 +80800,9 @@ thL thL tUx fgR -kIV -mKf -ils +pdp +aCA +cPj aag okD bdH @@ -94148,10 +80869,10 @@ aaa aaa aad aag -nXP -nXP -mGL -mGL +nBJ +nBJ +eQR +bTW bBA bBz aqu @@ -94175,10 +80896,10 @@ bEx aqu bQI bBA -ueh -nqU -vRz -vRz +gsy +sGK +wid +wid aag ajZ aaa @@ -94246,45 +80967,45 @@ bdH bdH aad aag -pCi -wcn -wcn -lrq -yeX -uqo -fsT -jnA -fDn -lrq -tqV -nBo -maa -swn -plI -tqe -qPO -wvT -luw +uDg +xkc +xkc +cQv +eaf +bEv +vyH +ajj +rXd +cqJ +oJm +tUK +kTp +uLE +nWS +cTy +oeZ emp -uUO -wSm -jZm -wmE -tUx -ntu -vQN -jVa -rjw +emp +emp +iEx +cMl +qFE +wDC tUx -lnJ -rjw +iTI +fKw +pgP +thL +thL +thL +thL +thL +thL tUx -jVa -oEE xkd -kIV -hFW -xEF +pdp +vhA +xiV aag ajZ bdH @@ -94351,10 +81072,10 @@ aaa aaa aad aag -nXP -tRV -hJp -mmC +nBJ +ldF +ldF +xiP bBA lsV amg @@ -94378,10 +81099,10 @@ bPC amg pyL bBA -jNq -nqU -rSK -vRz +cDb +sGK +nhV +wid aag ajZ bdH @@ -94449,45 +81170,45 @@ bdH bdH aad aag -pCi -oCL -wcn -lrq -ebz -uqo -uqo -uqo -iOh -lrq -gdo -nBo -jJq -swn -dHv -qQM -qPO -xTp -lMc -jcf -qUb -wSm -jSw +uDg +lDT +xkc +cQv +eaf +bEv +sBg +uGN +rXd +cQv +mAY +tUK +kTp +hoW +nWS +aIY +oeZ +cFC +oIh +sBQ +skj +tXc +cqM xkd -nlH -uuq +qFu xkd -naB -naB -pFg -naB -naB -naB -ydU -naB -naB -kIV -mnm -xEF +xkd +cvH +thL +thL +thL +thL +thL +thL +tUx +xkd +pdp +oDh +xiV aag ajZ bdH @@ -94553,11 +81274,11 @@ aaf aaf aaf aag -nXP -nXP -hJp -mGL -fmS +nBJ +nBJ +ldF +eQR +uFp bBA bBA tiR @@ -94568,24 +81289,24 @@ bIy alU alU alU -cmI +syg alU -cmJ +pQz alU alU alU -jAi -jAi -jAi -jAi -aib -jAi -jAi -nrz -vhq -nqU -vRz -vRz +pzW +pzW +pzW +pzW +hNB +pzW +pzW +ipB +mVh +sGK +wid +wid aag aaf aaf @@ -94652,45 +81373,45 @@ bdH bdH aad aag -pCi -rPC -aou -lrq -yeX -uqo -uvy -tfO -fsz -lrq -irJ -nBo -pJi -swn -jAG -tqe -qPO -xTp -lMc -jcf -eUU -wSm -cqM -xkd +uDg +gkr +qsp +cQv +xLl +bEv +kde +ajj +tuk +cQv +kYU +tUK +kTp +krO +nWS +glG +oeZ +ehX +mTN +hZJ +iLG +jXd +kAL xkd +uvY +cjk xkd +pgP +tUx +tUx +tUx +tUx +tUx +vsz +oEE xkd -naB -eoP -fgl -xEe -naB -xEe -fgl -deb -naB -lmk -kIV -xEF +gNZ +pdp +xiV aag ajZ bdH @@ -94753,18 +81474,18 @@ aaa aaa aad aag -nXP -nXP -nXP -nXP -hJp -hJp -uNL -uNL -uNL -tVf -mGL -oxp +nBJ +nBJ +nBJ +nBJ +ldF +ldF +bos +bos +bos +haR +uHT +jHn kcp bWJ nar @@ -94777,21 +81498,21 @@ aoi grG bXY alU -xsW -uBn -wJw -bEz -bzA -dRw -bzy -bzy -bzy -vhq -nqU -vRz -vRz -vRz -vRz +xNM +ikl +eLp +dFM +lEV +mZP +sDx +sDx +sDx +mVh +sGK +wid +wid +wid +wid aag ajZ aaa @@ -94854,47 +81575,47 @@ aaa bdH bdH aad -pCi -pCi -wcn -tYB -lrq -noo -noo -noo -lrq -lrq -lrq -fNA -nBo +uDg +uDg +xkc +eeA +cQv +dzG +kde +ioV cQv -qPO -qPO -wuc -qPO -wvT -luw +tlk +cQv +uhA +tCH +oeZ +oeZ +wLF +oeZ +oeZ +mFc +fbr emp -dGD +lze wSm -lfW -emp -vli -rSH -xYj -naB -aSS -pHp -poZ -naB -jkV -pHp -kOi -naB -xCj -kIV -xEF -xEF +slf +bli +tUx +iTI +bQc +pgP +uVV +iBl +cHk +rkV +rkV +cHk +vYi +cHk +pRs +pdp +xiV +xiV ajZ bdH bdH @@ -94956,21 +81677,21 @@ aaa aaa aad aag -nXP -jpN -hJp -mGL -hJp -iBE -uNL -hJp -mGL -poR -mGL -pNp +nBJ +fUz +ldF +eQR +ldF +ikA +bos +gpO +uHT +bKP +uHT +sGQ kcp -pNK -bIA +wMv +nCR alU uDn bKf @@ -94980,21 +81701,21 @@ aoi bNk ecZ alU -bNW -uBn -fut -pqQ -pqQ -pqQ -bzA -rEu -bzy -vhq -nEz -vhq -ioj -mjR -vRz +odt +ikl +qAy +mua +mua +mua +lEV +eQz +sDx +mVh +fJu +mVh +roj +qzA +wid aag ajZ aaa @@ -95057,47 +81778,47 @@ aaa bdH bdH aad -pCi -msV -rPC -naf +uDg +hzN +gkr +krG cQv -vcG -lYZ -olv -dxm -nMu -uFp -ePB -nBo -tsX -xSA -ugs -wVY +rdM +gUg +cov +cqJ +may +hoK +mcp +hzG +eyD +ngr +cDN +peO lEv -iQg -jpQ -tsX -jOu +jic +qGf +emp +bju wSm -pyj -vsJ -kjN -rvo -oIc -naB -xro -fgl -wvI -naB -wvI -fgl -qmX -naB -lTK -mnm -kIV -xEF +jSw +emp +emp +emp +emp +vbo +emp +emp +cHk +hlI +ekZ +kvL +oix +cHk +uxb +oDh +pdp +xiV ajZ bdH bdH @@ -95159,14 +81880,14 @@ aaa aaa aad aag -nXP -bwF -hJp -mGL -hJp -oPI -uNL -hJp +nBJ +lJM +ldF +eQR +ldF +lyP +bos +gpO kcp kcp iqp @@ -95177,27 +81898,27 @@ kcp alU alU alU -mBp +iTW alU -cmJ +noo alU alU alU -bOe -nrt -qyF -ecR -uOc -uOc -uOc -bPj -bzy -piO -vhq -nqU -nqU -rSK -vRz +wrr +kjw +hBr +tqQ +hgp +hgp +hgp +nef +sDx +mXm +mVh +sGK +sGK +nhV +wid aag ajZ aaa @@ -95260,47 +81981,47 @@ aaa bdH bdH aad -pCi -dSA -rPC -cQv -cQv -geX -tFv -pGT -vkM -jvc -ajj -ajj -nBo -xps -jpQ -jpQ -wVY -eOk -pFa -ctn -wqu -eeN +uDg +fHb +gkr +vxM +vxM +vxM +vxM +vxM +vxM +tfZ +cQG +cQG +hzG +eyD +tdy +cDN +oFY +oFY +yjG +ncl +jcf +bju cMl -fHS -naB -naB -naB -naB -naB -naB -rkh -lvZ -naB -fuX -rra -naB -naB -naB -mnm -kIV -xEF +oeB +emp +slF +oIh +qUz +ksg +oIh +iTl +cHk +frt +vUI +tgJ +wVh +cHk +cHk +oDh +pdp +xiV ajZ bdH bdH @@ -95362,14 +82083,14 @@ aaa aaa aad aag -nXP -mGL -mGL -hJp -mGL -dqd -uNL -hJp +nBJ +eQR +eQR +ldF +eQR +sxS +bos +gpO kcp bBD bTS @@ -95377,30 +82098,30 @@ bTS lxo qcy kcp -edM -edM -mcl -bLt -bXX -bKh -egq -bKh -bNp -fsd -bKj -jjs -jjs -jjs -jjs -jjs -jYd +sub +sub +tqf +pHF +vYd +ghF +eSp +ghF +aFG +pPQ +juS +mdk +mdk +mdk +mdk +mdk +kCd bSv bSv bSv bSv bSv -nqU -vRz +sGK +wid aag ajZ aaa @@ -95457,53 +82178,53 @@ aaa aaa aaa aaa -aaa +bdH aaa aaa bdH bdH aad -pCi -wcn -rPC -cQv -eaf -bEv -tWg -rZR -cqJ -isH -vwO -scD -rXC -vyE -nwz -nwz -mkk -wir -jnT -qNv -wqu -eeN +uDg +xkc +gkr +vxM +rfY +kGu +iqR +fyp +wJh +oJm +cQG +cQG +hzG +nzT +tff +cDN +oFY +cQL +npO +ncl +jcf +bju cMW qEy -ooR -xvw -nBu -tcP -lFs -sIY -qyd -uDp -tNj -uDp -qyd -icX -xQD -naB -kIV -lre -xEF +vKr +rQc +oDy +oDy +wsq +vxK +gwj +oiz +csy +csy +bWQ +deH +szG +cHk +pdp +kIf +xiV ajZ bdH bdH @@ -95565,14 +82286,14 @@ aaa aaa aad aag -nXP -hJp -hJp -mGL -pzZ -ijp -uNL -mGL +nBJ +ldF +ldF +wcJ +jCr +nQn +bos +uHT kcp bTR iEg @@ -95580,30 +82301,30 @@ oQM aqI aqI kcp -pUl -tXz -rYZ -bLu -bBB -bBB -bBB -bBB -bNp -mYY -nka -afz -afz -afz -afz -afz -iDd +bOw +mYt +jsR +vPW +vyB +vyB +vyB +vyB +aFG +vFp +yaX +sje +sje +sje +sje +sje +jhS qih bTH foN cDZ bSv -pch -vRz +hLu +wid aag ajZ aaa @@ -95666,47 +82387,47 @@ aaa bdH aac aag -pCi -mNR -wcn -cQv -eaf -bEv -fLn -rXd -dvT -qSl -ajj -ukS -wZa -tsX -ezU -dxT -jpQ -iQg -bRm -ecq -tsX -tkV -pyj +uDg +kac +xkc +vxM +tQi +wee +wee +fRS +wJh +iFK +ksm +haY +kaQ +vNT +oSC +uFq +wsl +wSu +xIW +nah +emp +gbw +oRk +jyb +emp +bPH +rJj +mBx +utZ pyj -luC -elq -qmE -luC -uVF -uQm -qPD -qPD -qPD -qPD -qPD -bND -jaP -naB -kIV -rQU -xEF +jPP +cHk +wxF +vJc +kUg +ifz +fyI +cHk +pdp +ome +xiV aag ajY bdH @@ -95768,14 +82489,14 @@ aaa aaa aad aag -nXP -thT -hJp -uNL -uNL -uNL -uNL -mGL +nBJ +ecS +ldF +bos +bos +bos +bos +uHT kcp lxW hPh @@ -95783,30 +82504,30 @@ wGX bFr ppe kcp -bzA -bKh -bKh -hcs -kCS -kCS -kCS -kCS -hHJ -iWL -bkD -afz -afz -afz -afz -afz -iDd +lEV +ghF +ghF +jak +jdC +jdC +jdC +jdC +wiQ +dEo +fGd +sje +sje +sje +sje +sje +jhS bSv tjw bTH bTV bSv -nqU -vRz +sGK +wid aag ajZ aaa @@ -95869,47 +82590,47 @@ bdH bdH aad aag -pCi -tCb -aou -cQv -eaf -bEv -fLn -avz -dvT -nHV -ajj -iKX -cQv -tsX +uDg +fco +qsp +vxM +jvP +rDQ +rDQ +rDQ +ctT +wXz +aNW +tvJ +eyD +eyD tsX tsX epu oLF tsX tsX -tsX +emp vyi vyi vyi -naB -naB -naB -naB -dqV -mdJ -vXQ -vXQ -uNe -uUs -nqZ -ekg -usr -naB -inC -mKf -xEF +emp +emp +emp +emp +emp +wIC +lnh +wIC +rWn +rWn +cHk +cHk +gxt +cHk +dJy +aCA +xiV aag ajZ bdH @@ -95971,14 +82692,14 @@ aaa aaa aad aag -nXP -mGL -hJp -uNL -qDv -aLk -uNL -xCR +nBJ +eQR +ldF +bos +vkO +ibf +bos +rIw kcp wTN kZN @@ -95986,30 +82707,30 @@ rgK hbu iYe bJl -bKa -bKa -bKa -gCl -bzA -bzA -bzA -bzA -bNp -pqQ -nka -afz -afz -afC -afz -afz -bRx +yfd +yfd +yfd +kgS +lEV +lEV +lEV +lEV +aFG +mua +yaX +sje +sje +oiX +sje +sje +rqQ bSv ifb bTH bSv xVT -kAs -vRz +flr +wid aag ajZ aaa @@ -96072,47 +82793,47 @@ bdH bdH aad aag -pCi -oCL -wcn -cQv -eaf -bEv -qRo -rXd -dvT -bAM -wZa -cQv -cQv +uDg +lDT +xkc +vxM +sbP +sbP +sbP +sbP +wJh +oWK +jwr +eyD +eyD tHr mqg -eiK +udR vka uwN -fbv +nVq xuZ mSs xuZ xuZ xuZ -rCU +xuZ rEY gxU -naB -kyP -qPD -qPD -qPD -uQm -pIH -naB -nOe -nOe -naB -bIi -fQk -xEF +giR +vUP +wIC +qZA +dgx +fKi +vxG +wIC +whQ +bHu +cHk +oLf +hIG +xiV aag ajZ bdH @@ -96174,14 +82895,14 @@ aaa aaa aad aag -nXP -tRV -mGL -uNL -kmM -eqk -uNL -hJp +nBJ +ldF +eQR +bos +lBl +nEO +bos +gpO kcp oMi bAZ @@ -96189,30 +82910,30 @@ bTS bTS niR kcp -bzA -bKh -bKh -bLt -bzA -bKh -bKh -bKh -bNp -pqQ -fti -afz -afz -afz -afz -afz -iDd +lEV +ghF +ghF +pHF +lEV +ghF +ghF +ghF +aFG +mua +hoc +sje +sje +sje +sje +sje +jhS bSv aIX aIX bSv -oES -eXo -vRz +xcI +sIu +wid aag ajZ aaa @@ -96275,18 +82996,18 @@ bdH bdH aad aag -pCi -wcn -rPC -cQv -bop -jeK -mWe -rXd -dvT -ieo -vxC -ldD +uDg +xkc +gkr +vxM +pas +ncf +kjk +qxr +wJh +oWK +rPF +pfd ceZ jnD hUW @@ -96302,20 +83023,20 @@ rWs rQt cgT xuc -naB -pZV -gMf -ekg -ekg -uQm -nnz -vrQ -mLI -qyd -vrQ -mnm -sIk -xEF +gXx +wdh +wIC +mHz +jPS +jPS +xrt +wIC +aDt +jTU +cHk +oDh +xas +xiV aag ajZ bdH @@ -96377,14 +83098,14 @@ aaa aaa aad aag -nXP -hJp -mGL -hKe -hJp -hJp -uNL -hJp +nBJ +ldF +eQR +rqv +gpO +gpO +bos +gpO kcp kcp kcp @@ -96392,30 +83113,30 @@ sXE kcp kcp kcp -bzA -bBB -bBB -bLt -bzA -bKh -bBB -bBB -bNp -xgx -nka -afz -afz -afz -afz -afz -iDd +lEV +vyB +vyB +pHF +lEV +ghF +vyB +vyB +aFG +pJq +yaX +sje +sje +sje +sje +sje +jhS bSv cop cop bSv -vhq -nqU -vRz +kxe +sGK +wid aag ajZ aaa @@ -96478,24 +83199,24 @@ bdH bdH aad aag -pCi -wcn -rPC -cQv -cQv -cQv -cQv -cQv -dvT -ieo -vxC -ldD +uDg +xkc +gkr +vxM +vxM +vxM +vxM +vxM +gaJ +vMJ +qFX +cAR vGA hUW dHd vka lnt -uVA +eAF uVA uVA uVA @@ -96505,20 +83226,20 @@ uVA wIQ xWv aQb -naB -naB -mtl -hwQ -hwQ -okM -mtl -mtl -naB -naB -naB -mnm -hPT -xEF +vka +jUY +wIC +hNY +qFi +vAG +hsj +wIC +cHk +cHk +cHk +oDh +nEc +xiV aag ajZ bdH @@ -96580,45 +83301,45 @@ aaa aaa aad aag -nXP -hJp -mGL -uNL -aSY -hJp -uNL -hJp -dqd +nBJ +ldF +eQR +bos +iWH +gpO +bos +gpO +nEZ kcp bTU gZK bTS lyX kcp -bAr -bKh -bBB -bLt -bzA -bKh -bBB -bKh -bNp -fsd -bKj -eGg -eGg -eGg -eGg -eGg -jYd +rMj +ghF +vyB +pHF +lEV +ghF +vyB +ghF +aFG +pPQ +juS +jjl +jjl +jjl +jjl +jjl +kCd bSv kBY bTn bSv -vhq -vhq -vRz +mVh +mVh +wid aag ajZ aaa @@ -96681,18 +83402,18 @@ aaf aaf aag aag -pCi -hKi -wcn -aFN -wcn -cXZ -jIV -vxM -gaJ -uzx -uue -vxM +uDg +cUl +xkc +ode +xkc +gNg +cAR +dRj +yhV +jvc +jEV +cAR iuE uwN vka @@ -96709,19 +83430,19 @@ jfK wIQ mPj omy -xpo -mtl -pGG -qRT -djm -hgF -mtl -kIV -hUc -wNU -mnm -sIk -xEF +sCQ +wIC +wvE +jhI +jfY +bra +wIC +eQm +rXQ +vky +oDh +pdp +xiV aag aag aaf @@ -96779,53 +83500,53 @@ aaa aaa aaa aaa -nXP -nXP -nXP -nXP -nXP -lgY -uNL -uNL -uNL -lgY -uNL -mGL -hJp +nBJ +nBJ +nBJ +nBJ +nBJ +eQR +ldF +bos +bos +olW +bos +uHT +gUi kcp onY wdf bTS kcp kcp -bzy -bKh -bBB -bLt -bzA -bKh -bBB -bKh -bzy -tBz -fBD -ntt -jXk -hdh -hdh -hdh -bRD +sDx +ghF +vyB +pHF +lEV +ghF +vyB +ghF +sDx +prl +gNy +fbU +vbZ +qEl +qEl +qEl +vWs bSv bSv bSv bSv -mzo -qOU -vRz -vRz -vRz -vRz -vRz +sGK +mVh +wid +wid +wid +wid +wid aaa aaa aaa @@ -96885,17 +83606,17 @@ adG adG adG adG -gqq -iCz -aFN -rPC -rPC -kDb -vxM -wVV -qau -mVi -vxM +rvI +cYo +ode +gkr +gkr +cAR +cAR +cAR +pKU +vOu +cAR udK mwA lnt @@ -96913,17 +83634,17 @@ mgj wIQ jHh jUY -fbY -qVF -oog -qaJ -czB -mtl -mnm -kIV -wNU -kIV -mrB +wIC +aWg +jES +vBJ +qTQ +wIC +oDh +pdp +vky +pdp +paJ tuA tuA tuA @@ -96982,53 +83703,53 @@ aaa aaa aaa aaa -nXP -hJp -dPU -hJp -mGL -mGL -khS -hJp -crc -hJp -qee -mGL -hzM +nBJ +ldF +jsE +rdN +eQR +eQR +eQR +ldF +sXq +rdN +rMO +uHT +hfv kcp xNz utK rKA kcp kcp -bzy -bXs -bBB -bLt -bzA -bKh -bBB -bXZ -bzy -bAg -bBB -qJN -jjZ -bzH -bBB -bzA -cBl -bRU -vhq -eJh -nqU -rcH -vhq -vhq -nqU -jTu -nqU -vRz +sDx +hIF +vyB +pHF +lEV +ghF +vyB +kEW +sDx +xHl +vyB +mQd +akn +vTM +vyB +lEV +meE +gGw +mVh +iBu +sGK +mVh +mVh +mVh +sGK +gDX +sGK +wid aaa aaa aaa @@ -97091,14 +83812,14 @@ akC akC akC akC -cVJ -rPC -jvJ -vxM -sVy -mKh -mVi -vxM +uvp +gkr +cAR +pbm +qjK +jvc +dGT +cAR bmz wSR mMV @@ -97116,14 +83837,14 @@ awz woy laO nRH -fbY -qVF -oog -kHK -wfL -mtl -mnm -dGc +wIC +tiF +vAG +opF +pDW +wIC +oDh +lhj kCi kCi kCi @@ -97185,16 +83906,16 @@ aaa aaa aaa aaa -aPy -aPY -aQv -aQv -aQv -aQv -aQv -aQv -aQv -aQv +fwK +cZB +uaG +uaG +uaG +uaG +uaG +uaG +uaG +uaG bcm bcm kcp @@ -97204,34 +83925,34 @@ kcp kcp kcp kcp -bzy -bZL -cat -caC -caD -bZL -cat -bZL -bzy -bzy -bzy -bzy -bzy -bzy -bzy -bzy -bzy -bzy -bJh -bJh -cmH -bJh -bJh -bJh -bJh -bJh -ces -bSg +sDx +lQB +qax +jTH +gPU +lQB +qax +lQB +sDx +sDx +sDx +sDx +sDx +sDx +sDx +sDx +sDx +sDx +rgt +rgt +sYr +rgt +rgt +rgt +rgt +rgt +ctw +hAh aaa aaa aaa @@ -97294,14 +84015,14 @@ sFf bbV bzz akC -cRc -rPC -wcn -vxM -eyg -giZ -gTl -vxM +pzc +gkr +cAR +pQI +gym +gSz +cNJ +cAR pZS pEB jUY @@ -97319,14 +84040,14 @@ qwp pZS jHh jUY -fbY -uLJ -oog -sBH -vfv -mtl -mnm -dGc +wIC +wIC +vzj +wIC +wIC +wIC +oDh +nYi kCi sDD kOv @@ -97388,16 +84109,16 @@ aaa aaa aaa aaa -aPy -dhZ -aQv -bbn -bmu -bot -bpU -rFB -bmu -aQv +fwK +elY +uaG +sbZ +lxd +dPk +nBV +dyq +uGi +uaG lYN byr aXh @@ -97425,16 +84146,16 @@ aXj qUh xyw ccG -bJh -cax -cet -cfx -cgG -cex -dfc -bJh -bJO -bSg +rgt +gMS +vXF +hsc +epk +lwG +uJb +rgt +wRf +hAh aaa aaa aaa @@ -97497,14 +84218,14 @@ nIt adu aHZ akC -oCL -rPC -wcn -vxM -vxM -tXs -oCX -vxM +lDT +gkr +cAR +jgR +iAg +vaS +bsF +cAR vkR wsD jUY @@ -97522,14 +84243,14 @@ qwp vGA uwN uVd -mtl -mtl -qYH -mtl -mtl -mtl -kIV -kIV +wIC +wjY +aTg +rFg +kkv +wIC +pdp +pdp kCi uAj qfa @@ -97550,7 +84271,7 @@ aaa aaa aaa aaa -aaa +bdH aaa aaa aaa @@ -97591,16 +84312,16 @@ aaa aaa aaa aaa -bhh -aPZ -bhh -bjL -bmw -kIm -bmw -brO -bmx -bvT +okd +lql +okd +urk +fmZ +ePq +fmZ +cqd +jhc +eml btO aYt bzQ @@ -97628,16 +84349,16 @@ bVM bVM bwn bVM -cdb -cdw -bGp -cfy -rBk -cfy -cim -cjl -bRz -cjm +oTH +kUA +gRJ +mqB +vjG +mqB +oQw +avp +oAa +efk aaa aaa aaa @@ -97700,14 +84421,14 @@ nkx bbZ btv akC -dDC -rPC -wcn -vxM -wVV -erx -dsw -vxM +lCm +gkr +cAR +cAR +eLX +vaS +nCD +cAR kfE wsD jUY @@ -97725,14 +84446,14 @@ qwp cDn uwN jUY -mtl -lNF -rkK -cIK -mtl -tzj -kIV -bbR +wIC +lcW +aTg +wIC +wIC +wIC +pdp +iEa kCi eqI ssZ @@ -97753,7 +84474,7 @@ aaa aaa aaa aaa -aaa +bdH aaa aaa aaa @@ -97794,16 +84515,16 @@ aaa aaa aaa aaa -bhh -aPZ -bhh -bjM -bmx -eBC -aZB -qld -kyZ -bvT +okd +lql +okd +nDb +jhc +ccL +rDf +xZM +mnc +eml btO aYt aYt @@ -97831,16 +84552,16 @@ aYt aYt aYt btO -cdc -jdk -mLu -erS -pZo -cdx -cin -cjm -bRA -cjm +tpG +wdQ +ybP +dhQ +dcx +mLg +wAK +efk +bTz +efk aaa aaa aaa @@ -97903,14 +84624,14 @@ pvP adu aHZ akC -eKM -ake -rPC -vxM -dFC -bRH -bRH -vxM +jdn +lgk +hMM +cAR +jlE +cXV +kqd +cAR xDn pEB jUY @@ -97928,14 +84649,14 @@ awz gGr jHh sCQ -mtl -pJE -wPk -hRy -mtl -tzj -kIV -bVT +wIC +wtY +aTg +jIT +wIC +aCA +pdp +pdp kCi nwW btD @@ -97997,16 +84718,16 @@ aaa aaa aaa aaa -bhh -aPZ -bhh -bjM -bmx -bmx -bmx -brP -qTZ -bvT +okd +lql +okd +nDb +jhc +jhc +jhc +vOV +eAm +eml btO aYu aYu @@ -98034,16 +84755,16 @@ aYu aYu aYu btO -cdc -nEs -cev -cdx -cdx -cdx -cin -cjm -bRA -cjm +tpG +hbA +uky +mLg +mLg +mLg +wAK +efk +bTz +efk aaa aaa aaa @@ -98106,14 +84827,14 @@ adu adu aHZ akC -akC -tRX -uzm -vxM -eyg -eyg -oWI -vxM +pek +rir +pek +cAR +gdG +kxP +mea +cAR nNv pEB jUY @@ -98131,14 +84852,14 @@ qwp ora laO rKQ -mtl -qHF -fnl -mtl -mtl -utZ -pUJ -pUJ +wIC +yeR +aTg +nNg +wIC +pjz +uTs +pjz kCi nRR btD @@ -98200,16 +84921,16 @@ aaa aaa aaa aaa -bhh -aPZ -bhh -bjN -bmy -pAR -hHR -brQ -btp -bvV +okd +lql +okd +bRt +oGm +hPD +aIy +ekR +gWm +mpV bvf bdL bvf @@ -98237,16 +84958,16 @@ bvf bvf bdL bvf -cdd -cdy -cew -cfz -sSY -kZA -cio -cjm -bRA -cjm +srh +gKo +fsf +fuU +cnI +qfq +vjT +efk +bTz +efk aaa aaa aaa @@ -98309,14 +85030,14 @@ nIt adu hxG akC -fvu -qkn -wcn -vxM -vxM -vxM -vxM -vxM +ibP +loE +cmr +cAR +cAR +cAR +cAR +cAR xSz pEB jUY @@ -98334,14 +85055,14 @@ qwp pZS jHh vCx -mtl -mtl -mtl -mtl -qFl -mnm -xyz -gpe +wIC +wIC +wIC +wIC +wIC +hrI +ioM +xCy kCi nNt vqC @@ -98403,16 +85124,16 @@ aaa aaa aaa aaa -aPy -hhe -aQv -bjO -bmu -bou -bpW -rFB -bmu -aQv +fwK +jru +uaG +aEf +lxd +cif +jaz +dyq +lxd +uaG vCg bHB xyw @@ -98440,16 +85161,16 @@ xyw xyw bHB osx -bJh -cdz -aTq -cfA -cgH -cex -dfc -bJh -tdK -bSg +rgt +qTu +wlD +gTk +qSI +lwG +uJb +rgt +oCa +hAh aaa aaa aaa @@ -98512,10 +85233,10 @@ wmg adu cqQ afT -agU -dIl -xpd -mlp +txy +rbp +cri +euL hiM hiM qRj @@ -98541,10 +85262,10 @@ xuZ pcj hXm fZq -dVm -qkb -vnY -vnY +iFA +sLx +twQ +twQ bpd bqT vZv @@ -98606,16 +85327,16 @@ aaa aaa aaa aaa -aPy -aPY -aQv -aQv -aQv -aQv -aQv -aQv -vak -ovP +fwK +cZB +uaG +uaG +uaG +uaG +uaG +uaG +hte +lma xyw bHB xyw @@ -98644,15 +85365,15 @@ xyw bHB xyw bcm -mzo -mzo -mzo -mzo -mzo -mzo -mzo -cjK -bSg +hOV +hOV +hOV +hOV +hOV +hOV +hOV +vVZ +hAh aaa aaa aaa @@ -98715,10 +85436,10 @@ pvP adu frF akC -fRN -avl -lFb -ail +oUt +cmr +iPq +aMf vka vka mPj @@ -98744,10 +85465,10 @@ inh ewr lPC mgy -wWT -xuB -vcK -czJ +qoN +tVx +feG +pPy kCi nRR btM @@ -98809,16 +85530,16 @@ aaa aaa aaa aaa -nXP -ndx -uNL -eRt -soS -sgy -nsu -iyQ -rod -psy +sGw +nmp +eWs +usq +rQw +pOH +sbt +smU +nZR +lpl xyw bHB gjm @@ -98847,15 +85568,15 @@ bcb bHB btO bcm -tlI -jEs -kCT -lsb -fcG -ufp -mzo -qQP -vRz +sCW +nvX +tTC +jdu +tWd +aPe +hOV +ygv +kyP aaa aaa aaa @@ -98919,10 +85640,10 @@ tyK iKI akC akC -ail -lGG -age -age +aMf +hSv +xoB +xoB kzy wIQ jHh @@ -98946,11 +85667,11 @@ vka jHh lnt ckP -qFl -qFl -lIV -gsH -qFl +xTx +xTx +cyv +eKZ +xTx kCi cfk uws @@ -99012,16 +85733,16 @@ aaa aaa aaa aaa -nXP -hJp -uNL -lUv -bwQ -gUr -uNL -aNw -kXJ -kVX +sGw +klT +eWs +njO +riC +eqd +goY +fqJ +nOX +xcV xyw bHB wqh @@ -99050,15 +85771,15 @@ bcc bHB aYt bcm -dqH -kCT -kCT -kCT -kCT -kCT -bLb -dQH -vRz +xsQ +tTC +tTC +tTC +tTC +tTC +iho +uKH +kyP aaa aaa aaa @@ -99121,12 +85842,12 @@ akC akC akC akC -fcF -avl -lFb -fvu -age -age +ehM +cmr +iPq +oQJ +xoB +xoB vSN jHh lnt @@ -99148,12 +85869,12 @@ sTo wIQ jHh jUY -qFl -qFl -gpe -xuB -vcK -mBA +xTx +xTx +hrI +tVx +feG +bxY kCi kCi kCi @@ -99215,16 +85936,16 @@ aaa aaa aaa aaa -nXP -hJp -sIT -sIT -sIT -sIT -sIT -aNj -xmv -kVX +sGw +xzB +bfs +bYW +bYW +bYW +bYW +kNf +vpT +xcV xyw bHB sXB @@ -99253,15 +85974,15 @@ fVz bHB bBN bcm -vVh -kCT -kCT -kCT -kCT -wgU -mzo -kWY -vRz +uPQ +tTC +tTC +tTC +tTC +gzN +hOV +uXm +kyP aaa aaa aaa @@ -99321,15 +86042,15 @@ adG adG adG adG -puK -avl -dUI -avl -avl -lFb -fvu -xDp -age +ltw +cmr +oRm +cmr +cmr +iPq +oQJ +pcc +xoB xDn uwN wiN @@ -99351,15 +86072,15 @@ awz oWg uwN jUY -qFl -rnM -gpe -sDy -ukU -bfP -fvv -vcK -wAd +xTx +lym +hrI +lIQ +noy +rcG +lwY +feG +kfB tuA tuA tuA @@ -99418,16 +86139,16 @@ aaa aaa aaa aaa -nXP -tRV -sIT -jNt -iNZ -lQj -sIT -obG -kdt -kVX +sGw +xzB +bfs +qfQ +cJm +jwi +bYW +phw +xMG +xcV xyw bHB aZO @@ -99456,15 +86177,15 @@ bGF bHB aYt bcm -iQx -kCT -iuu -fHc -kpY -hTu -mzo -bRF -vRz +vKI +tTC +hhd +ybm +ffq +rsV +hOV +mLN +kyP aaa aaa aaa @@ -99523,16 +86244,16 @@ aag aag aag aag -pCi -avl -nMc -ayP -iJf -iJf -sFZ -avl -tCb -age +cZe +cmr +lSX +uaA +snx +snx +fLt +cmr +fYr +xoB pNa iCu awz @@ -99554,16 +86275,16 @@ awz ceE eMP faX -qFl -rEn -mnm -mYs -mnm -sDy -cUv -cNe -pLZ -xEF +xTx +tIX +ioM +abn +ioM +lIQ +qOY +xZH +mSr +nLp aag aag aag @@ -99621,16 +86342,16 @@ aaa aaa aaa aaa -nXP -hJp -sIT -vLh -mGL -qHb -sIT -hdR -hdR -hJz +sGw +xzB +bfs +wVN +qxI +qmM +bYW +wFN +wFN +tGH hmy bHB aZP @@ -99659,15 +86380,15 @@ bGG bHB btO bcm -lyi -kCT -kCT -kCT -kCT -kCT -mzo -dQH -vRz +kQr +tTC +tTC +tTC +tTC +tTC +hOV +uKH +kyP aaa aaa aaa @@ -99726,9 +86447,9 @@ aag aag aag aag -pCi -dRV -bZg +cZe +cCL +vDz kcH kcH kcH @@ -99764,9 +86485,9 @@ aES aES aES aES -sDy -cNe -xEF +lIQ +xZH +nLp aag aag aag @@ -99824,16 +86545,16 @@ aaa aaa aaa aaa -nXP -mfe -sIT -eNx -mGL -mGL -vKf -mGL -mGL -rII +sGw +onv +bfs +pjh +qxI +qxI +iXm +qxI +qxI +vvX xyw bHB aZQ @@ -99862,15 +86583,15 @@ bGH bHB btO bcm -ksP -gdi -piX -kCT -kCT -kCT -mzo -dQH -vRz +qhG +krJ +jOt +tTC +tTC +tTC +hOV +uKH +kyP aaa aaa aaa @@ -99926,12 +86647,12 @@ aaa aad aag aag -pCi -pCi -pCi -pCi -lFb -avl +cZe +cZe +cZe +cZe +iPq +cmr kcH kcH kcH @@ -99967,12 +86688,12 @@ tKr uNg cLN aES -gpe -xuB -xEF -xEF -xEF -xEF +hrI +tVx +nLp +nLp +nLp +nLp aag aag ajZ @@ -100027,16 +86748,16 @@ aaa aaa aaa aaa -nXP -hJp -sIT -mIB -mGL -fGY -wUO -gYB -pXQ -kYa +sGw +xzB +bfs +wFi +qxI +dKO +ykv +jPu +qKl +pPd xyw bHB aZR @@ -100065,15 +86786,15 @@ bGI bHB xyw bcm -fAt -kCT -kCT -kCT -kCT -iRS -mzo -oFG -bIO +gOk +tTC +tTC +tTC +tTC +bjg +hOV +siT +kyP aaa aaa aaa @@ -100129,12 +86850,12 @@ aaa aad aag aag -pCi -fqu -kTM -puK -lFb -avl +cZe +ivu +gSy +ltw +iPq +cmr kcH rlf soq @@ -100170,12 +86891,12 @@ iTD vCO vCO jxB -gpe -xuB -gpe -gpe -gpe -xEF +hrI +tVx +hrI +hrI +hrI +nLp aag aag ajZ @@ -100230,16 +86951,16 @@ aaa aaa aaa aaa -nXP -mGL -sIT -sIT -rUU -sIT -sIT -uNL -uNL -uNL +sGw +dvD +bfs +bfs +sir +bfs +bfs +eWs +eWs +eWs xyw bHB aZO @@ -100267,16 +86988,16 @@ baI bGF bHB eEc -mzo -mzo -kCT -xVj -vox -kCT -hTu -mzo -oFG -vRz +hOV +hOV +tTC +tSm +tcd +tTC +rsV +hOV +siT +kyP aaa aaa aaa @@ -100332,12 +87053,12 @@ aaa aad aag aag -pCi -huX -unJ -iJf -mBk -nUy +cZe +nHu +sit +snx +oVY +cGA kcH rBa nPs @@ -100373,12 +87094,12 @@ vCO vCO vCO jxB -wpj -gDq -tJo -bGr -hnV -xEF +gUu +dWc +lVW +kcs +rDH +nLp aag aag ajZ @@ -100433,16 +87154,16 @@ aaa aaa aaa aaa -nXP -rxk -uNL -aqc -hJp -qbd -cQF -hqs -jFh -uNL +sGw +fea +eWs +rsS +xzB +mKs +sCT +rXU +rEt +eWs wlb bHB aZP @@ -100470,16 +87191,16 @@ baI bGG bHB bGK -meN -xRc -qPg -oas -mni -kCT -fIf -mzo -oFG -vRz +rrh +xKG +gyH +rSx +dCz +tTC +lDA +hOV +siT +kyP aaa aaa aaa @@ -100535,18 +87256,18 @@ aaa aad aag aag -pCi -nMc -tGf -avl -avl -qtS +cZe +lSX +nRE +cmr +cmr +sWw kcH rIW oGx wvU yiX -lIa +nrb hyQ aic aov @@ -100576,12 +87297,12 @@ wmT jhW mWD jxB -hWX -tYv -mRU -xuB -gpe -xEF +xBK +moc +pYQ +tVx +hrI +nLp aag aag ajZ @@ -100636,16 +87357,16 @@ aaa aaa aaa aaa -nXP -mGL -qee -hJp -mGL -qaZ -mGL -hJp -mGL -mBb +sGw +dvD +kWI +xzB +dvD +ipk +dvD +xzB +dvD +meT wqh bHB aZQ @@ -100673,16 +87394,16 @@ baI bGH bHB cuy -meN -dNe -pzO -kCT -kCT -kCT -eKg -pcD -lZO -vRz +rrh +iNR +uCR +tTC +tTC +tTC +fca +vjS +xee +kyP aaa aaa aaa @@ -100736,12 +87457,12 @@ aaa aaa aaa aad -aai -aai -pCi -nMM -avl -avl +cZe +cZe +cZe +vfS +cmr +cmr agj agj agj @@ -100781,12 +87502,12 @@ aES aES aES aES -lDj -uEv -gpe -xEF -xEF -xEF +nVn +cZO +hrI +nLp +nLp +nLp ajZ aaa aaa @@ -100839,16 +87560,16 @@ aaa aac aaf aaf -nXP -hJp -uNL -afd -hJp -slP -rsx -jFh -cQF -uNL +sGw +xzB +eWs +omx +xzB +rAw +qNK +rEt +sCT +eWs pyC bHB aZR @@ -100876,16 +87597,16 @@ baI bGI bHB kwQ -meN -dNe -pzO -wtd -kCT -nLa -wgU -mzo -dQH -vRz +rrh +iNR +uCR +rDR +tTC +wyz +gzN +hOV +uKH +kyP aaf aaf ajY @@ -100939,21 +87660,21 @@ aaa aaa aaa aad -ahE -iuT -nna -svp -avl +tvt +fRg +peM +jUV +cmr agj agj -wbw -npK -hBW -tHU -tMu +jbN +mTc +hkX +yfG +lxE kcN -dkn -gye +twI +ufL aic aov wVW @@ -100985,11 +87706,11 @@ bhJ bHG aES aES -mtE -gpe -cEg -hgm -ils +fMU +hrI +dPd +rLH +rwZ ajZ aaa aaa @@ -101041,17 +87762,17 @@ aaa aaa aad aag -nXP -nXP -tRV -uNL -uNL -agi -uNL -uNL -uNL -uNL -uNL +sGw +sGw +xzB +eWs +eWs +sOr +eWs +eWs +eWs +eWs +eWs cCE bHB aZO @@ -101079,17 +87800,17 @@ baI bGF bHB iAw -mzo -mzo -kCT -kCT -kCT -dlp -hTu -mzo -vot -vRz -aKQ +hOV +hOV +tTC +tTC +tTC +jRp +rsV +hOV +kzs +kyP +kyP aag ajZ aaa @@ -101142,21 +87863,21 @@ aaa aaa aaa aad -ahE -afc -npB -umY -avl +tvt +jhR +fix +pfL +cmr agj -laG +kyR agc -aUP +qfD agc -ktc -ueD +kJm +gFR kcN cod -gye +ufL aic aov wVW @@ -101188,11 +87909,11 @@ bpe brS rOs aES -kwz -gpe -gpe -gAd -ils +dWA +hrI +hrI +dPO +rwZ ajZ aaa aaa @@ -101244,17 +87965,17 @@ aaa aaa aad aag -nXP -mGL -hJp -uNL -aas -alI -agw -anB -ajp -vdJ -bJo +sGw +dvD +xzB +eWs +kRU +dON +oJj +vLp +oYA +gWt +jHt amo bHB aZP @@ -101283,16 +88004,16 @@ bGG bHB btO xjW -gks -kCT -kCT -kCT -mQW -kCT -mzo -gJd -mjR -aKQ +uTk +tTC +tTC +tTC +cyR +tTC +hOV +qpV +hSb +kyP aag ajZ aaa @@ -101345,21 +88066,21 @@ aaa aaa aaa aad -ahE -aiV -wBY -hJJ -anl +tvt +oyX +vBC +rhm +she agj -fuR -ouT +ogK +qgr agc agc -ktc -nKs +kJm +lpg kcN -muQ -gye +yff +ufL aic aKq luZ @@ -101391,11 +88112,11 @@ aES aES aES aES -gxk -hiQ -wVP -sed -ils +tPc +jwq +vwU +uew +rwZ ajZ aaa aaa @@ -101447,17 +88168,17 @@ aaa aaa aad aag -nXP -mGL -hJp -uNL -aga -alQ -amR -adg -cdF -sgw -bJo +sGw +dvD +xzB +eWs +irJ +bKk +kil +vnY +fCG +gYg +jHt gRP bHB aZQ @@ -101486,16 +88207,16 @@ bGH bHB btO bcm -hit -kCT -kCT -fjO -kCT -vGy -mzo -dQH -nnc -vRz +gBU +tTC +tTC +efJ +tTC +sHe +hOV +uKH +vyr +kyP aag ajZ aaa @@ -101548,17 +88269,17 @@ aaa aaa aaa aad -pCi -kwS -avl -avl -yiL +cZe +kwg +cmr +cmr +jkq agj -utw -kmY -pSH -mES -lWD +nCx +tYM +mqb +kDK +jMx mXj kcN kcN @@ -101594,11 +88315,11 @@ bhJ bHG nis aES -nSU -xuB -lrb -hnV -xEF +xGF +tVx +jne +rDH +nLp ajZ aaa aaa @@ -101650,21 +88371,21 @@ aaa aaa aad aag -nXP -nun -mzb -uNL -aav -amj -agG -anD -adg -ajB -bJo +sGw +fzx +dWJ +eWs +yko +qlL +oxz +gnB +vnY +mRH +jHt xjK -rgy -bvf -anS +bHB +btO +bdU aog bdU bfV @@ -101689,16 +88410,16 @@ bcb bHB aYt bcm -uKk -kCT -kCT -kCT -kCT -xwq -mzo -dQH -gMx -vRz +ohI +tTC +tTC +tTC +tTC +tml +hOV +uKH +hZZ +kyP aag ajZ aaa @@ -101751,20 +88472,20 @@ bdH aaa aaa aad -ahE -avr -avl -hCo -lIh +tvt +gJf +cmr +hYE +vAz agj -fiP +nXO hvH -pYp +bVs hvH hvH -iIm -odC -cQD +qBq +xxh +xpi agj bFA aov @@ -101797,11 +88518,11 @@ bpe brS cpj aES -fxO -xuB -cKt -mnm -ils +hro +tVx +tNB +ioM +rwZ ajZ aaa aaa @@ -101853,22 +88574,22 @@ aaa aaa aad aag -nXP -mGL -pGP -uNL -aay -adg -amU -anK -ccJ -ajL -bJo +sGw +dvD +nsd +eWs +kqm +vnY +wjL +oGF +gKK +dBR +jHt bwl bHB xyw puI -aol +aYt aYt aYt puI @@ -101892,16 +88613,16 @@ bcc bHB xyw bcm -oqD -kCT -kCT -ePk -kCT -hTu -mzo -oFG -vhq -vRz +grT +tTC +tTC +ove +tTC +rsV +hOV +siT +bUQ +kyP aag ajZ aaa @@ -101954,20 +88675,20 @@ bdH aaa aaa aad -ahE -aOg -avl -hMI -lFb +tvt +hsu +cmr +pFq +iPq agj -mcK -xBg -pYp -isu -oBW +dyj +fnv +bVs +xZG +kYt mXj -drp -tqI +ulo +kJW agj aic aoA @@ -102000,11 +88721,11 @@ aES aES aES aES -gKJ -uEv -ofZ -mnm -ils +uhh +cZO +ppG +ioM +rwZ ajZ aaa aaa @@ -102056,22 +88777,22 @@ aaa aaa aad aag -nXP -mGL -lqI -uNL -aaD -ahB -ahB -anL -ajz -aBC -cfM +sGw +dvD +kFU +eWs +oUz +mqZ +mqZ +lVZ +ctQ +wer +pKW wqh bHB vpW eXq -rri +aho aho aho eXq @@ -102095,16 +88816,16 @@ fVz bHB vpW bcm -hEt -kCT -xIi -kCT -kCT -eNL -mzo -oFG -nqU -vRz +cKm +tTC +cOh +tTC +tTC +dPq +hOV +siT +xFt +kyP aag ajZ aaa @@ -102154,18 +88875,18 @@ bdH aaa aaa bdH -bdH +aaa aaa aad -ahE -bEo -avl -iDT -tDx +tvt +hJD +cmr +fFQ +pMH agj mXj mXj -nRQ +lul mXj mXj mXj @@ -102203,11 +88924,11 @@ bhJ bHG brS aES -rlz -xuB -iVo -mnm -ils +jrI +tVx +raO +ioM +rwZ ajZ aaa aaa @@ -102259,17 +88980,17 @@ aaa aaa aad aag -nXP -hJp -hJp -uNL -aaK -cfN -afe -adg -ajz -aBC -cfM +sGw +xzB +xer +eWs +uES +xrT +gYj +vnY +ctQ +wer +pKW wqh bHB xyw @@ -102298,16 +89019,16 @@ jSo bHB xyw bcm -rdr -kCT -poq -kCT -kCT -gks -mzo -oFG -nqU -vRz +qKb +tTC +xQj +tTC +tTC +uTk +hOV +siT +xFt +kyP aag ajZ aaa @@ -102357,22 +89078,22 @@ bdH bdH bdH aaa -bdH +aaa aaa aad -pCi -bVF -dTt -jgM -lFb +cZe +bLc +fOK +pWd +iPq agj mXj -yeO -nQH -lnZ -lnZ -pxL -mzG +pjR +jND +aKk +aKk +szf +faE mXj agj amI @@ -102406,11 +89127,11 @@ tJi ivf bpe aES -lGu -xuB -yiC -sXs -xEF +pok +tVx +kzc +gen +nLp ajZ aaa aaa @@ -102462,17 +89183,17 @@ aaa aaa aad aag -nXP -fpd -mGL -uNL -ceQ -ceU -aff -adg -ajz -aBC -cfM +sGw +nkj +dvD +eWs +rVt +tVZ +bkS +vnY +ctQ +wer +pKW wqh bHB ezQ @@ -102501,16 +89222,16 @@ xyw bHB aYt bcm -sti -kCT -iTN -kCT -kOk -fIf -mzo -oFG -pch -vRz +jNG +tTC +vMb +xYE +iuI +lDA +hOV +siT +fFU +kyP aag ajZ aaa @@ -102563,23 +89284,23 @@ aaa bdH aaa aad -ahE -fHO -avl -jpJ -lzH +tvt +nCM +cmr +wKb +pri agj -iET -akr -lfT -jNY +qlI +cdB +xjt +coD agc -jCn -kmY -rEJ +ako +tYM +gLN agj aic -esy +acS wVW asQ awG @@ -102594,7 +89315,7 @@ wlE gvq wVW lrW -qDN +mqh vHW wVW ccg @@ -102609,11 +89330,11 @@ aES aES aES aES -xpt -xuB -xHW -qJF -ils +gBd +tVx +fjz +hPu +rwZ ajZ aaa aaa @@ -102665,22 +89386,22 @@ aac aaf aag aag -nXP -dUF -mGL -uNL -ceR -ceU -aff -agy -ajx -tqg -bJo +sGw +vEI +dvD +eWs +nCe +tVZ +bkS +bfO +tWL +aLx +jHt mVE -bHB -xyw +rgy +baN anU -aeJ +gEg imy gEg dRD @@ -102708,12 +89429,12 @@ bcm bcm bcm bcm -mzo -sYC -mzo -gJd -eXo -vRz +hOV +pIC +hOV +qpV +nGk +kyP aag aag aaf @@ -102766,25 +89487,25 @@ bdH bdH aaa aad -ahE -cjh -avl -llM -lGL +tvt +mPw +cmr +wGa +bAy agj -jPn +eBE hvH agc -euM +rNa pxG -klG +fOv agc agc agj aic -cHA +sxW wVW -nww +abQ atN cEl sOi @@ -102812,11 +89533,11 @@ bhJ bHG gCP aES -izx -mQV -hRi -gpe -ils +imt +noE +dcT +hrI +rwZ ajZ aaa aaa @@ -102868,17 +89589,17 @@ aad aag aag aag -nXP -fQF -mGL -uNL -abd -adk -afu -anT -eLz -uFL -ssa +sGw +oGf +dvD +eWs +jkY +ktI +xPn +xyQ +ixT +hBG +ngK sqa hBF hCt @@ -102911,12 +89632,12 @@ lRX rux sEt bcm -wbx -vhq -vhq -oFG -vhq -vRz +qyG +bUQ +bUQ +siT +bUQ +kyP aag aag aag @@ -102969,27 +89690,27 @@ bdH bdH bdH aad -ahE -cJB -avl -avl -mrc +tvt +qwY +cmr +cmr +mVA agj -huR +kSH hvH -gfK -rqH +nTA +kWR agc -nnG +aiW xyk xyk -oys -nDV -joE +mDX +aTl +dLe wVW -qyJ +atx qEk -ksv +ajm wVW arP alX @@ -103001,7 +89722,7 @@ hkG wVW fvB qEk -aGi +iaa wVW aKn aKz @@ -103015,11 +89736,11 @@ mhm brS bpe aES -mnm -uEv -nLK -nLK -ils +ioM +cZO +pfD +pfD +rwZ ajZ aaa aaa @@ -103071,17 +89792,17 @@ aad aag aag aag -nXP -wVD -mGL -uNL -uZQ -uZQ -bJo -aoH -aoF -aBC -cfM +sGw +fzT +dvD +eWs +qmh +qmh +jHt +wSQ +rOv +wer +pKW wqh bHB xyw @@ -103114,12 +89835,12 @@ myo dtH eyR bcm -wgo -nqU -vhq -dQH -xpf -vRz +rQs +xFt +bUQ +uKH +gsp +kyP aag aag aag @@ -103172,25 +89893,25 @@ bdH bdH bdH aad -pCi -pCi -pCi -jTi -nRq +cZe +cZe +cZe +tiX +vcI agj -wfd +ikQ hvH agc -pJe +qlp pxG -vtt +tTk agc agc agj -lPG +fXP aov wVW -qyJ +atx qEk ato wVW @@ -103204,7 +89925,7 @@ aEB wVW fvB qEk -aGi +iaa wVW aKn aKz @@ -103218,11 +89939,11 @@ aES aES aES aES -dYh -uEv -xEF -xEF -xEF +ied +cZO +nLp +nLp +nLp ajZ aaa aaa @@ -103274,22 +89995,22 @@ aad aag aag aag -nXP -mNf -hJp -uNL -cdE -xSI -uZQ -aoH -aoF -aBC -cfM +sGw +iPf +klT +eWs +vHp +gJp +qmh +wSQ +rOv +wer +pKW wqh bHB vpW eXq -rri +aho aho aho eXq @@ -103317,12 +90038,12 @@ mhd aYt tuN fPn -nqU -nqU -vhq -dQH -hYc -vRz +xFt +xFt +bUQ +uKH +eLC +kyP aag aag aag @@ -103377,23 +90098,23 @@ aaa aad aag aag -pCi -avl -myn +cZe +cmr +iNk agj -rfv +muV hvH qck -jEX +eRi agc -ssn -mES -lUw +tan +kDK +iEz agj aic aov wVW -nbr +ssW qEk hrm wVW @@ -103407,7 +90128,7 @@ aEC wVW dNZ qEk -xZf +mje wVW aKn aKz @@ -103421,9 +90142,9 @@ bhJ bHG cWy aES -gpe -xuB -xEF +hrI +tVx +nLp aag aag ajZ @@ -103477,22 +90198,22 @@ aad aag aag aag -nXP -bvO -hJp -ahd -adg -amp -uZQ -aoH -gds -aky -bJo +sGw +cqp +xzB +smH +vnY +asE +qmh +wSQ +vop +tgy +jHt vPM bHB xyw anW -aol +aYt aYt aYt anW @@ -103520,12 +90241,12 @@ omP aYt bOC bcm -vhq -nqU -vhq -dQH -jhA -vRz +bUQ +xFt +bUQ +uKH +rVc +kyP aag aag aag @@ -103580,23 +90301,23 @@ aaa aad aag aag -pCi -cnX -lIh +cZe +huD +vAz agj mXj -xBg +fnv hvH hvH -bVg +iNY hvH -pJK +hmV mXj agj aic aoA wVW -qyJ +atx jvX ato wVW @@ -103608,9 +90329,9 @@ alX aIf aED wVW -xtg +ryR jvX -aGi +iaa wVW aKn aKy @@ -103624,9 +90345,9 @@ eBd brS cpj aES -fgx -dEV -xEF +luE +wgO +nLp aag aag ajZ @@ -103680,21 +90401,21 @@ aad aag aag aag -nXP -dNB -hJp -uNL -hSL -agn -afx -agX -ajy -vwP -bJo +sGw +jOq +xzB +eWs +nso +jdZ +pqM +bZS +rlD +uUf +jHt kCm -rgy -bvf -aof +bHB +btO +bea aoN bea bfZ @@ -103723,12 +90444,12 @@ ivg llO kSv bcm -mzo -puR -aKI -dQH -nqU -vRz +emC +dZZ +xmn +uKH +xFt +kyP aag aag aag @@ -103783,9 +90504,9 @@ aaa aad aag aag -pCi -anI -lIh +cZe +pcf +vAz agj agj agj @@ -103804,11 +90525,11 @@ wVW wVW wVW aCf -ayt +kcx aCf wVW aCf -hzL +wpt aCf wVW wVW @@ -103827,9 +90548,9 @@ aES aES aES aES -gaO -vnV -xEF +hXD +tYV +nLp aag aag ajZ @@ -103883,10 +90604,10 @@ aad aag aag aag -nXP -mGL -iBE -uNL +sGw +dvD +qig +eWs eXq adR eXq @@ -103927,11 +90648,11 @@ wXT cdA bcm bcm -mzo -mzo -wWf -nqU -vRz +emC +emC +mTL +xFt +kyP aag aag aag @@ -103986,9 +90707,9 @@ aaa aad aag aag -pCi -ifR -jMt +cZe +uTE +fZy gpY uBi wYA @@ -104030,9 +90751,9 @@ baw oaK nUn pgD -xuB -gpe -xEF +tVx +hrI +nLp aag aag ajZ @@ -104086,10 +90807,10 @@ aad aag aag aag -nXP -mGL -mGL -uNL +sGw +dvD +dvD +eWs abG aeh afy @@ -104131,10 +90852,10 @@ aYt aYt lrX bcm -kGt -oFG -pch -vRz +jGQ +siT +fFU +kyP aag aag aag @@ -104189,9 +90910,9 @@ bdH aad aag aag -pCi -avl -lIh +cZe +cmr +vAz gpY uac vFw @@ -104233,9 +90954,9 @@ aZz wUP lrF pgD -uEv -gpe -xEF +cZO +hrI +nLp aag aag ajZ @@ -104289,10 +91010,10 @@ aad aag aag aag -nXP -rbv -hJp -uNL +sGw +dvD +klT +eWs abH aer agf @@ -104334,10 +91055,10 @@ btO btO uII fPn -cQN -oFG -eXo -vRz +htq +siT +nGk +kyP aag aag aag @@ -104392,9 +91113,9 @@ abs abs abs abs -pCi -ail -gwY +cZe +aMf +wby gpY mto acW @@ -104436,9 +91157,9 @@ baw sgU baw pgD -lIV -gsH -xEF +cyv +eKZ +nLp tQV tQV tQV @@ -104492,10 +91213,10 @@ aag aag aag aag -nXP -mGL -pwK -pJW +sGw +dvD +sZc +dGP acq aeJ azl @@ -104537,10 +91258,10 @@ aYt puI iWx bcm -uSq -dQH -vhq -vRz +ymg +uKH +bUQ +kyP aag aag aag @@ -104631,7 +91352,7 @@ aJc ecr ecr ecr -ygs +ohS aET nUv aJU @@ -104695,10 +91416,10 @@ aag aag aag aag -nXP -mGL -fJX -uNL +sGw +dvD +iQJ +eWs acu aeh afF @@ -104740,10 +91461,10 @@ cdA bcm bcm bcm -mzo -mxL -kAs -vRz +emC +wuh +fgU +kyP aag aag aag @@ -104820,21 +91541,21 @@ awX wVW wVW wVW -aAl +lMF jnX -dum +rdz wVW wVW wVW -lgK +cbF aGZ awF cST aTz aUl aET -aWA -jgu +esC +nsQ aET mSi wHp @@ -104898,10 +91619,10 @@ aag aag aag aag -nXP -tpg -vJM -uNL +sGw +nHX +cEA +eWs acM aer agf @@ -104941,12 +91662,12 @@ apE icp fER bcm -mzo -xSb -vhq -dQH -mjR -vRz +emC +hVL +bUQ +uKH +hSb +kyP aag aag aag @@ -105018,21 +91739,21 @@ aiX wbO avU avU -awY -awY +mKN +wEw kOB awZ aiX -jnw -aBq -pRL +wLC +mGb +uOh awF aEM aGV rvA aKE awF -iYR +jzE aUw aUm aET @@ -105101,10 +91822,10 @@ aag aag aag aag -nXP -hJp -dpy -uNL +sGw +xzB +hRA +eWs acZ aeN azl @@ -105144,12 +91865,12 @@ uiT aYt jyR bcm -ioj -nqU -vhq -dQH -fIH -vRz +fUZ +xFt +bUQ +uKH +eyM +kyP aag aag aag @@ -105226,9 +91947,9 @@ pXx jrm evg aiX -asj -aAW -aCl +iiU +eAx +cmS awF aFg aGY @@ -105304,10 +92025,10 @@ aag aag aag aag -nXP -hJp -fkW -uNL +sGw +xzB +ghA +eWs vhw khD azw @@ -105347,12 +92068,12 @@ apL aYt iKb bcm -ygy -nqU -vhq -oFG -qUj -vRz +umk +xFt +bUQ +siT +qBl +kyP aag aag aag @@ -105407,7 +92128,7 @@ awW add add add -juf +stu add add add @@ -105429,11 +92150,11 @@ wWC auZ aiX aiX -asl -amO -aGO +qmK +oIp +pTS awF -aFj +hRk aGY rvA aKO @@ -105453,7 +92174,7 @@ baw aJU aJU aJU -hey +tBu aJU aJU aJU @@ -105507,10 +92228,10 @@ aag aag aag aag -nXP -fpd -nVS -uNL +sGw +nkj +rjF +eWs eXq eXq eXq @@ -105550,12 +92271,12 @@ uiT aYt xNj bcm -mjR -nqU -vhq -dQH -gWR -vRz +hSb +xFt +bUQ +uKH +pTX +kyP aag aag aag @@ -105632,12 +92353,12 @@ pQV apq ana aiX -asp -amO -avj +gwh +oIp +qUK awF -aFo -aGY +gyh +lmA rvA aqm awF @@ -105710,10 +92431,10 @@ aag aag aag aag -nXP -hJp -dnX -uNL +sGw +xzB +oes +eWs aRu aRu aRu @@ -105753,12 +92474,12 @@ fpW llO vml bcm -mzo -jhA -jhA -dQH -wlL -vRz +emC +rVc +rVc +uKH +nBF +kyP aag aag aag @@ -105807,13 +92528,13 @@ bdH aaC abs adq -jWH +myl ajI add fsU aHU aTm -awW +xxB aTm jgF fsU @@ -105835,9 +92556,9 @@ xQg wWC szO aiX -atU -amO -qLj +jkT +oIp +fNX awF awF aEW @@ -105859,13 +92580,13 @@ aJU gBW ouQ iun -baw +sfA vPm qys gBW aJU tiW -pUe +qgU pgD tQV aaC @@ -105913,10 +92634,10 @@ aag aag aag aag -nXP -mGL -dnX -uNL +sGw +dvD +oes +eWs aRu aRu aRu @@ -105952,16 +92673,16 @@ bGO bHB uAb bcm -mzo -sYC -mzo -mzo -mzo -mzo -mzo -gJd -vhq -vRz +emC +hvx +emC +emC +emC +emC +emC +qpV +bUQ +kyP aag aag aag @@ -106016,7 +92737,7 @@ awW auK aIr aTm -bvd +cpP aTm juX scu @@ -106037,13 +92758,13 @@ umS yjM qbO aqw -qRL -bYe -amO -wZM -aPm +hnI +dME +oIp +oGI +waP awF -aHk +nvG vGI aLp awF @@ -106062,7 +92783,7 @@ baw lRE tuf vbB -rBH +aqB vbB mlz sOy @@ -106116,10 +92837,10 @@ aag aag aag aag -nXP -mGL -fJX -uNL +sGw +dvD +iQJ +eWs aRu aRu aRu @@ -106155,16 +92876,16 @@ bcp bHB xAY aYz -mzo -vhq -eJh -eFp -qUH -mzo -qUj -dQH -vhq -vRz +emC +bUQ +wDP +mHF +hhg +emC +qBl +uKH +bUQ +kyP aag aag aag @@ -106219,7 +92940,7 @@ awW avc aIv aTm -kJL +cpP cbM jzZ sLo @@ -106241,14 +92962,14 @@ aqy nBE pOD bZa -ahM -aEf -wZM -ejp +voj +sUS +oGI +qUu awF aHn szU -aLt +fGa awF aRC aUw @@ -106265,7 +92986,7 @@ baw hJk yac vbB -kUQ +aqB vbB fDS iLd @@ -106319,10 +93040,10 @@ aag aag aag aag -nXP -tRV -dnX -uNL +sGw +xzB +oes +eWs aRu aRu aRu @@ -106358,16 +93079,16 @@ bcc bHB xAY aYz -mzo -xIj -nqU -nqU -vhq -gsL -nqU -oFG -eXo -vRz +emC +vFI +xFt +xFt +bUQ +wdG +xFt +siT +nGk +kyP aag aag aag @@ -106416,13 +93137,13 @@ aaa aaY abs adq -ckE +tGj ajI add fsU aHU aTm -awW +fnk aTm jgF fsU @@ -106444,15 +93165,15 @@ aiX aiX aiX aiX -atV -amO -oXd -qFl -qFl -qFl -qFl -qFl -qFl +diw +oIp +wCn +tsr +tsr +tsr +tsr +tsr +tsr aRE qVC qVC @@ -106468,13 +93189,13 @@ aJU gBW ouQ vbB -baw +aqB tBq qys gBW aJU tiW -hXD +bpw pgD tQV aaY @@ -106522,10 +93243,10 @@ aag aag aag aag -nXP -nun -vJM -uNL +sGw +fzx +cEA +eWs aRu aRu aRu @@ -106561,16 +93282,16 @@ fVz bHB uII ruz -mzo -gwm -pEy -nqU -sRI -mzo -fdA -oFG -nqU -vRz +emC +jev +aML +xFt +oFn +emC +jaI +siT +xFt +kyP aag aag aag @@ -106647,15 +93368,15 @@ aiX aKG amb aiX -ayT -amO -avj -qFl -aFp -aHo -bZH -aQs -qFl +hOd +oIp +qUK +tsr +sOL +jIC +lFr +wTu +tsr aSq aTE aTE @@ -106725,10 +93446,10 @@ aag aag aag aag -nXP -hJp -qNG -uNL +sGw +xzB +rsP +eWs aRu aRu aRu @@ -106764,16 +93485,16 @@ xyw bHB uII wrT -mzo -pVu -eOr -dFV -iVO -mzo -nqU -oFG -pch -vRz +emC +fqb +ury +dFW +mvi +emC +daF +siT +fFU +kyP aag aag aag @@ -106828,7 +93549,7 @@ aoC add add add -juf +stu add add add @@ -106850,15 +93571,15 @@ aqz aKH and aiX -lzj -amO -bYe -aTR -gpe -gpe -aIa -ayh -qFl +aaE +oIp +dME +fyT +xIV +xIV +edV +reM +tsr aSt aTE aTE @@ -106874,7 +93595,7 @@ baw aJU aJU aJU -eyv +nnX aJU aJU aJU @@ -106922,16 +93643,16 @@ aaa bdH aaY aad -nXP -nXP -nXP -nXP -nXP -nXP -nXP -mGL -kKG -uNL +sGw +sGw +sGw +sGw +sGw +sGw +sGw +dvD +iOX +eWs aRu aRu aRu @@ -106948,7 +93669,7 @@ kPx bgk biq dvg -bgG +nvM bnI qjN qjN @@ -106966,23 +93687,23 @@ gfW bGQ bHB qnd -cmp -cmp -cmp -cmp -cmp -cmp -cmp -vwN -oFG -nqU -vRz -vRz -vRz -vRz -vRz -vRz -vRz +lFp +lFp +lFp +lFp +lFp +lFp +lFp +ljm +siT +xFt +kyP +kyP +kyP +kyP +kyP +kyP +kyP ajZ aaY bdH @@ -107053,15 +93774,15 @@ aiX aiX aiX aiX -ukh -amO -nxK -qFl -aFq -aHB -aIb -aRr -qFl +qIF +oIp +aPV +tsr +iPN +dbX +rGL +cyL +tsr aSx aTE aTG @@ -107125,16 +93846,16 @@ aaa bdH aaY aad -nXP -sAm -mGL -aLl -hJp -hJp -mGL -mGL -eKO -uNL +sGw +lrH +dvD +xzB +xzB +xzB +dvD +dvD +wsz +eWs aRu aRu aRu @@ -107169,23 +93890,23 @@ gfW rHw wTg aYu -cmp -bTz -apV -are -apV -djM -cmp -mjR -oFG -nqU -vhq -vhq -rcH -vhq -wqE -kwq -vRz +lFp +ddw +gHl +kjD +gHl +qoL +lFp +hSb +siT +xFt +bUQ +bUQ +gQQ +bUQ +cOt +uSU +kyP ajZ aaY bdH @@ -107256,22 +93977,22 @@ aqz mBe atT aiX -ayU -amO -avm -qFl -qFl -aeD -qFl -qFl -qFl -pUJ -mSP -pUJ -pUJ -pUJ -pUJ -pUJ +bhR +oIp +mYA +tsr +tsr +vOY +tsr +tsr +tsr +lIj +mVF +lIj +lIj +lIj +lIj +lIj pgD nUv aJU @@ -107328,20 +94049,20 @@ aaa bdH aaY aad -nXP -hJp -hJp -mGL -mGL -pwK -cmk -xJi -cIi -uNL -aRu -aRu -aRu -aRu +sGw +xzB +xzB +dvD +dvD +sZc +abj +mUE +coo +lnu +lnu +lnu +lnu +lnu aRu aRu bcm @@ -107372,23 +94093,23 @@ gfW aZZ aYC aZZ -cmp -apM -eGs -bWM -bWM -bWS -cmp -mjR -bVR -oeo -oeo -gdd -oeo -oeo -bgc -qUj -vRz +lFp +mgd +wfn +aId +aId +poA +lFp +hSb +uGU +kGi +kGi +khI +kGi +kGi +kow +qBl +kyP ajZ aaY bdH @@ -107459,22 +94180,22 @@ aiX asf atT aiX -mQH -amT -ioX -pUJ -inC -anX -aht -gvC -pTc -bsO -bsO -aal -xKW -aht -aht -gcc +hOd +lSN +qUK +lIj +tBY +gkE +cTM +rqD +pcY +srO +srO +lWO +wjQ +uag +uag +jnh pgD lza gZw @@ -107531,34 +94252,34 @@ aaa bdH aaa aad -nXP -xYN -xYN -uNL -bdi -kKG -hJp -pda -lpS -wfE -wfE -wfE -wfE -wfE -wfE +sGw +dvD +dvD +eWs +jri +iOX +kIl +jmz +hsK +lnu +bjZ +bjZ +bjZ +lnu +sGU wfE wfE -bsk -sxu -cBI +yap +bqg +eIO bkA -nuI +eFG bej arX vSG iag nvM -bek +qOZ qjN gGJ ham @@ -107572,26 +94293,26 @@ bnS fdZ tzx gfW -bLT -cbQ -ccq -cmp -apO -bWM -bWM -bWM -gQl -asE -asE -asE -asE -asE -asE -asE -asE -clO -gUv -vRz +rZt +qyP +tuC +lFp +lGg +aId +aId +aId +jFx +nmY +nmY +nmY +nmY +nmY +nmY +nmY +nmY +siT +bUQ +kyP ajZ aaa bdH @@ -107657,27 +94378,27 @@ aiX aiX aiX sHM -otK +kUh aiX aiX aiX aiX -nVe -akV -bRs -pUJ -pUJ -abA -pUJ -pUJ -pUJ -pUJ -pUJ -pUJ -pUJ -pUJ -pUJ -ymi +wmo +icQ +pwl +lIj +lIj +dvZ +lIj +lIj +lIj +lIj +lIj +lIj +lIj +lIj +lIj +tWF pgD nUv aJU @@ -107734,9 +94455,9 @@ aaa bdH aaa aad -nXP -aMr -aMr +sGw +dvD +dvD wfE wfE rXv @@ -107744,57 +94465,57 @@ wfE wfE wfE wfE -sGU -vhY +kox +kox +kox wfE -bqm bsD btr wfE -owH -stY -owH +kLE +lIu +kLE bkA bcC bej -uyJ +tzO fVG qpQ nvM -bek +qOZ qjN sld ham ham qjN oDY -omo -fvJ +wCi +eTC fdZ ixj fdZ -bET +uey gfW -bGT -bHH -bGT -cmp -apP -hKQ -bWM -bWM -fps -asE -asB -atA -bWM -aur -auI -auY -asE -caE -pdk -vRz +kSA +tpB +kSA +lFp +xDF +eRS +aId +aId +tMc +nmY +ouw +jDP +aId +xHS +tEd +vjW +nmY +siT +bUQ +kyP ajZ aaa bdH @@ -107840,12 +94561,12 @@ adq aei aka aWn -aar -aar -aar -aar -aar -aar +gLl +gLl +gLl +gLl +gLl +gLl oGC awW acW @@ -107853,32 +94574,32 @@ awW awW awW fSm -vCz -apl -bbL -bbL -kij -bbL -bYe -bYe -yfv -bbL -aWl -bbL -bbL -bax -bbL -bbL -aWl -afv -yfv -bbL -bbL -bbL -bbL -kij -bbL -xRU +hiy +esQ +iKy +iKy +oyB +iKy +dME +dME +gJC +iKy +udv +iKy +iKy +gji +iKy +iKy +udv +oGW +gJC +iKy +iKy +iKy +iKy +oyB +iKy +kmT pEY jsP baw @@ -107887,15 +94608,15 @@ baw sgU baw baw -qVM -qVM -qVM -qVM -qVM -qVM -hXV +vIo +vIo +vIo +vIo +vIo +vIo +gnv yhI -rRz +tTu pgD tQV aaa @@ -107937,26 +94658,26 @@ aaa bdH aaa aad -aKW -bdn -bdn +sGw +dvD +dvD wfE mcL jOo wrC mHx pqX -pqX +evC xbk wFR -bmF wFR +bmF wFR xbk aWw -bys -bxd -vgC +cJK +oGL +hOu bkA eUn bcD @@ -107964,40 +94685,40 @@ qpx bet bgu nvM -bek +qOZ qjN gGJ ham qjN qjN qyD -omo +wCi blZ bqN -gtA +nTo bqN bwR gfW -bUe -cbR -ccr -hcC -lEW -aqd -bWM -bWM -ask -asE -asE -asE -atJ -aus -aus -ava -asE -clP -ovF -yhQ +oJL +jMa +cVt +sHm +ddM +hZe +aId +aId +rNK +nmY +nmY +nmY +dZu +dKK +dKK +xry +nmY +siT +bUQ +kyP ajZ aaa bdH @@ -108040,15 +94761,15 @@ aaa aaa abs adq -apr -apr -aoV -aar -aIZ -aIZ -aIZ -bWK -aar +afr +akc +apg +gLl +mis +mis +mis +yjr +gLl aea oGC xjD @@ -108056,32 +94777,32 @@ ajf ajf ajf oAO -dlN -aod -qgG -amC -amC -amC -fXB -amC -amC -hyc -all -all -amC -bYh -amC -fXB -fXB -fBL -bYc -bYc -suV -bYc -bYc -bYc -qgG -dqN +pIZ +nsr +fSx +tTZ +tTZ +tTZ +dNj +tTZ +tTZ +pcs +fCW +fCW +tTZ +bjv +tTZ +dNj +dNj +ubv +plK +plK +tuX +plK +plK +plK +fSx +xFx tFW dGC aZz @@ -108090,15 +94811,15 @@ aZz nsc baw cxk -qVM -iBt -iBt -iBt -vce -qVM -wTy -wTy -wTy +vIo +ojX +ojX +ojX +mxo +vIo +crh +csI +qhb pgD tQV aaa @@ -108140,9 +94861,9 @@ aaa bdH aaa aad -aKW -uJo -aLf +sGw +xiH +xzB wfE dgl jOo @@ -108157,15 +94878,15 @@ esM uUi xbk aWw -aNO -sLE -qLo +gtD +uRD +wru bkA -nvM -bgG +hGh +hGh bcK -bgG -nvM +hGh +hGh bkA vwF nEJ @@ -108181,26 +94902,26 @@ gfW uFo omo gfW -iRx -iEb -bHa -apm -jUn -avT -bWM -bWM -aso -asv -xVO -asE -bWM -auw -auM -avb -asE -scI -oed -yhQ +eWx +lLO +juo +otq +gJO +pwG +aId +aId +wUK +dDM +vPR +nmY +aId +vXf +qGw +uZV +nmY +uKH +bUQ +kyP ajZ aaa bdH @@ -108243,15 +94964,15 @@ aaa aaa abs adq -aub -akc -euO -aar -aIZ -aIZ -aIZ -aIZ -aar +nfC +akt +awW +gLl +mis +mis +mis +mis +gLl oGC sHp oGC @@ -108259,32 +94980,32 @@ awW awW awW aSJ -dAi -dtM -aii -mce -avn -mTb -avn -avn -gyy -avn -avn -avn -avn -mRl -avn -gyy -avn -avn -avn -avn -avn -mTb -avn -nFr -aii -ajC +isI +gvu +xCB +nyK +llo +epT +llo +llo +pub +llo +llo +llo +llo +aVK +llo +pub +llo +llo +llo +llo +llo +epT +llo +aWM +xCB +tJm dCD aXe baw @@ -108293,15 +95014,15 @@ baw mnA baw baw -qVM -iBt -iBt -iBt -iBt -qVM -crh -csI -nqG +vIo +ojX +ojX +ojX +ojX +vIo +baw +sMM +rSH pgD tQV aaa @@ -108343,9 +95064,9 @@ aaa bdH aaa aad -aKW -ebD -aLf +sGw +jOq +xzB wfE krp jOo @@ -108360,9 +95081,9 @@ wFR soA xbk wfE -kEb -sLE -aLG +xos +uRD +qPk bCd iey baf @@ -108384,26 +95105,26 @@ bPk bsj byb bCd -buH -iEb -buH -app -uku -aqD -bWM -arE -ast -pjP -atd -uku -bWM -aux -aus -ava -asE -suT -ftl -yhQ +knm +lLO +knm +yfy +ruL +qUZ +aId +hJI +vwY +uIA +acd +ruL +aId +kyh +dKK +xry +nmY +qpV +hNh +kyP ajZ aaa bdH @@ -108450,22 +95171,22 @@ avd akt awW qHq -aIZ -aIZ -aIZ -aIZ -aar -rKs -aar -aar -aar -aar -aar -aar -aar -dtM -aii -ajC +mis +mis +mis +mis +gLl +eHX +gLl +gLl +gLl +gLl +gLl +gLl +gLl +gvu +xCB +tJm aoe aoe aoe @@ -108485,22 +95206,22 @@ aoe aoe aoe aoe -aEI -aii -aik -qVM -qVM -qVM -qVM -qVM -qVM -xeG -qVM -qVM -iBt -iBt -iBt -iBt +hwB +xCB +kaj +vIo +vIo +vIo +vIo +vIo +vIo +xDy +vIo +vIo +ojX +ojX +ojX +ojX eOM baw sMM @@ -108546,9 +95267,9 @@ aaa bdH aaa aad -aKW -bPW -aLf +sGw +eoE +xzB wfE eiP qOp @@ -108563,9 +95284,9 @@ qtv xFZ btx naV -bxk -aYI -aLG +pij +kJh +qPk bCd tmg qjN @@ -108587,26 +95308,26 @@ qjN tzP wYK bCd -buH -iEb -buH -app -uku -aqT -bWM -gwW -dvF -bWM -ate -uku -bWM -auC -auN -dxL -asE -tqk -iBG -yhQ +knm +lLO +knm +yfy +ruL +gsd +aId +oqt +wCk +aId +lab +ruL +aId +hgD +pSQ +dOe +nmY +rEK +bba +kyP ajZ aaa bdH @@ -108652,23 +95373,23 @@ adq aGP aka aWu -aar -aIZ -aIZ -aIZ -aIZ -aar -uLW -tZe -oQo -dCh -adt -xUI -aOD -aar -mOL -aii -ajC +gLl +mis +mis +mis +mis +gLl +lNL +kUJ +qgn +eIf +mfL +hto +qhg +gLl +pzw +xCB +tJm aoe aoh jHQ @@ -108688,23 +95409,23 @@ cnV isN cnZ aoe -dtM -aii -ajC -qVM -gKS -gKS -csz -xCX -csz -vGk -vGk -qVM -iBt -iBt -iBt -iBt -qVM +gvu +xCB +tJm +vIo +giD +giD +wrI +lST +wrI +pep +mCJ +vIo +ojX +ojX +ojX +ojX +vIo hWB yhI qSX @@ -108749,9 +95470,9 @@ aaa bdH aaa aad -aKW -bPT -aLf +sGw +jIJ +xzB wfE fHz opD @@ -108766,9 +95487,9 @@ esM jpt xbk aWw -aLG -aZi -cOM +qPk +hKe +uJM baZ bep qjN @@ -108790,26 +95511,26 @@ qjN qjN imo baZ -oLv -iEb -buH -app -uku -aqW -bWM -arZ -mkh -bWM -ath -asE -atZ -auE -auP -wZy -asE -iTz -vfJ -yhQ +sbE +lLO +knm +yfy +ruL +xPq +aId +vjv +gOR +aId +ary +nmY +nZm +smW +prP +xXl +nmY +idL +gnM +kyP ajZ aaa bdH @@ -108855,23 +95576,23 @@ adq aGQ akc apg -aar -aIZ -aIZ -aIZ -aIZ -aar -aao -aap -ijU -vkD -ijU -aap -aao -sMs -bYe -akU -ajC +gLl +mis +mis +mis +mis +gLl +gtI +utp +cZq +xBW +cZq +utp +gtI +kYF +dME +nbH +tJm aoe vbS arb @@ -108891,23 +95612,23 @@ cnW aEi coa aoe -ahr -akU -bYe -xCX -csz -vGk -vGk -qVM -bDe -csz -csz -qVM -iBt -iBt -iBt -iBt -qVM +lXR +nbH +dME +lST +wrI +pep +pep +vIo +fzt +wrI +wrI +vIo +ojX +ojX +ojX +ojX +vIo wvj csI iPH @@ -108952,10 +95673,10 @@ aaa bdH aaa aad -aKW -aLf -aSm -wfE +sGw +xzB +dvD +sGU iYx opD xbk @@ -108969,9 +95690,9 @@ nEF tXi pcE aWw -aLG -aZi -aLG +qPk +hKe +qPk hqW qjN qjN @@ -108993,26 +95714,26 @@ hDX qjN qjN jpp -buH -iEb -buH -eDG -cmp -ard -bWM -gwW -saB -bWM -ati -atE -aua -gwW -xqS -yiE -avk -wlp -vXX -yhQ +knm +lLO +knm +hnP +lFp +xlO +aId +oqt +iXA +aId +oZy +naw +npA +oqt +oEy +qmY +tUN +siT +lZb +kyP ajZ aaa bdH @@ -109058,23 +95779,23 @@ aee avd akt qWI -aar -aar -aar -aar -aar -lYA -lYA -lYA -lYA -lYA -lYA -lYA -lYA -lYA -ahr -akU -ajC +gLl +gLl +gLl +gLl +gLl +gxm +gxm +gxm +gxm +gxm +gxm +gxm +gxm +gxm +lXR +nbH +tJm aoe qQc fXg @@ -109094,23 +95815,23 @@ jBy aEi fFh aoe -dtM -akU -ajC -czu -czu -czu -czu -czu -czu -czu -czu -czu -qVM -qVM -qVM -qVM -qVM +gvu +nbH +tJm +gxm +gxm +gxm +gxm +gxm +gxm +gxm +gxm +gxm +vIo +vIo +vIo +vIo +vIo ehj irS ilJ @@ -109155,9 +95876,9 @@ aaa bdH aaa aad -aKW -aLf -aSm +sGw +xzB +dvD wfE gww opD @@ -109172,9 +95893,9 @@ ljf maL uKe aWw -aLG -avX -tzf +qPk +ckh +gyn vcq qPS qPS @@ -109185,7 +95906,7 @@ mKw rcx kan ojZ -jjn +toS ojZ kan leY @@ -109196,26 +95917,26 @@ iaF bqL bqL ocf -bFu -mKY -hvp -mWw -apT -apA -arC -asi -cSN -asy -atw -atF -aud -auF -ati -cUb -asE -luu -gNx -yhQ +wwE +sAD +cIO +tAb +vpe +dxT +olN +jDk +uNq +tOu +qyK +mkn +tHQ +uxX +oZy +orN +nmY +lQf +tHk +kyP ajZ aaa bdH @@ -109258,26 +95979,26 @@ aaa aaa abs adq -aWm -aka -kyY -aar -cit -ina -nuY -nuY -lYA -aax -aax -aax +nAv +akt +awW +gLl +vHP +wQI +cIS +cIS +gxm +sWb +sWb +sWb dkO aps aps aps -lYA -vIm -aii -ajC +gxm +gpp +xCB +tJm aoe vbS koB @@ -109297,26 +96018,26 @@ aoe hFF aoe aoe -dtM -aii -ajC -czu +gvu +xCB +tJm +gxm aiJ aiJ aiJ qYr -atj -atj -atj -czu -foR -usi -vGk -foR -qVM -rQW -yhI -tmI +kEA +kEA +kEA +gxm +qTA +bMZ +pep +qTA +vIo +baw +sMM +noO pgD tQV aaa @@ -109358,26 +96079,26 @@ aaa bdH aaa aad -aKW -rJb -aSm +sGw +nkj +dvD wfE rYi opD wFR wFR -aKW -aKW -aKW -aKW -aKW -aKW -aKW -aKW -aKW -aLG -aZi -cOM +wDr +wDr +wDr +wDr +wDr +wDr +wDr +wDr +wDr +qPk +hKe +uJM baZ eyQ qjN @@ -109399,26 +96120,26 @@ qjN qjN xtM baZ -oLv -hop -vMx -yhQ -yhQ -yhQ -yhQ -yhQ -yhQ -yhQ -yhQ -yhQ -auh -gwW -ati -lBY -asE -wlp -oDf -yhQ +sbE +jZe +cbL +wDr +wDr +wDr +wDr +wDr +wDr +wDr +wDr +wDr +iZE +oqt +oZy +qhD +nmY +siT +xFt +kyP ajZ aaa bdH @@ -109461,26 +96182,26 @@ aaa aaa abs adq -apr -apr -apr -aar -aJL -aYr -aao -aao -lYA -aax -aax -aax +aWm +aka +kyY +gLl +lfZ +lWS +gtI +gtI +gxm +sWb +sWb +sWb vQe aps aps aps -lYA -ahq -akU -ajC +gxm +sHC +nbH +tJm aoe aop koB @@ -109500,26 +96221,26 @@ uRt aQz aRJ ajl -dtM -akU -ajC -czu +gvu +nbH +tJm +gxm aiJ aiJ aiJ str -atj -atj -atj -czu -usi -vGk -vGk -vLv -qVM -wTy -wTy -wTy +kEA +kEA +kEA +gxm +bMZ +pep +pep +osr +vIo +rQW +yhI +rRz pgD tQV aaa @@ -109561,26 +96282,26 @@ aaa bdH aaa aad -aKW -aLf -aSm +sGw +xzB +dvD wfE cVK opD oRO ren -aKW +wDr aeL aeL aeL -aqM -arO -arO -arO -aKW -beB -byI -beB +oLj +wNG +wNG +wNG +wDr +qZT +pSF +eZC bCd mlH bqR @@ -109590,9 +96311,9 @@ tlA nyj vVW vhX -unU +ctJ rlZ -twq +pGE vhX jCK nyj @@ -109602,26 +96323,26 @@ cle bCe sdO bCd -bJz -rrV -bJz -yhQ -aue -aue -aue -txi +hBW +dxJ +rdT +wDr +mQx +mQx +mQx +jsa azy azy azy -yhQ -aup -gwW -kiF -ave -asE -scI -oDf -yhQ +wDr +kJH +oqt +qlm +kRD +nmY +uKH +xFt +kyP ajZ aaa bdH @@ -109662,28 +96383,28 @@ bdH bdH bdH bdH -acf -aet -afB -akW -apu -aar -aar -aao -aap -pDm -lYA -acV -acV -acV +abs +adq +afr +akc +apg +gLl +gLl +nlI +utp +usu +gxm +sRZ +sRZ +sRZ vQe aps aps aps -lYA -dtM -nmx -cpw +gxm +gvu +lYS +mzn hSI pMp gzK @@ -109703,26 +96424,26 @@ akw aQz aRK ajl -aDk -akU -ajC -czu +aUB +nbH +tJm +gxm aiJ aiJ aiJ str -atl -atl -atl -czu -dQE -vGk -csz -qVM -qVM -crh +jcu +jcu +jcu +gxm +cAa +pep +wrI +vIo +vIo +vpn csI -qhb +goL pgD tQV bdH @@ -109764,26 +96485,26 @@ aaa bdH aaa aad -aKW -aLf -aMs +sGw +xzB +esm wfE wfE viJ wfE wfE -aKW +wDr aeL aeL aeL -kHj -arO -arO -arO -aKW -aLG -aZi -aLG +uZm +wNG +wNG +wNG +wDr +qPk +hKe +qPk bCd bmn knH @@ -109805,26 +96526,26 @@ kan iXW iLs bCd -buH -hop -buH -yhQ -aue -aue -aue -tGO +knm +jZe +knm +wDr +mQx +mQx +mQx +guK azy azy azy -yhQ -uRr -bWw -bWM -avi -asE -suT -oed -yhQ +wDr +euW +rOI +aId +hQP +nmY +qpV +bUQ +kyP ajZ aaa bdH @@ -109865,28 +96586,28 @@ aaf aaf aaf aaf -acv -aez -boL -akY -boL -aiH -aiv -aap -uoS -pDm -lYA -adb -adb -adb -lYA +abw +eJU +awW +akt +awW +cUo +dwu +utp +qxS +usu +gxm +lmG +lmG +lmG +gxm asm asm asm -lYA -dtM -ajt -pvt +gxm +gvu +lSN +xZt aoe pjF wUd @@ -109906,22 +96627,22 @@ akw fOL aRS ajl -ahq -aii -ajC -czu +sHC +xCB +tJm +gxm alW alW alW -czu -atI -atI -atI -czu -usi -foR -csz -xCX +gxm +mWJ +mWJ +mWJ +gxm +bMZ +qTA +wrI +lST aJU baw sMM @@ -109968,25 +96689,25 @@ aKR aKR aKR aKR -aSm -aLf -vXY -aLf -aLf -jiX -cmq -aKW +dvD +xzB +pIo +xzB +xzB +fQy +nAm +wDr aeL aeL aeL -kHj -nLg -nLg -nLg -aKW -aLG -aZi -bad +uZm +kaq +kaq +kaq +wDr +qPk +hKe +qqf kan kan kan @@ -110008,25 +96729,25 @@ kan kan kan kan -bGe -bHL -buH -yhQ -auk -auk -auk -tGO +tzw +sPY +knm +wDr +wQu +wQu +wQu +guK azy azy azy -yhQ -pGN -bWM -bWM -avi -asE -scI -oed +wDr +sJI +aId +aId +hQP +nmY +uKH +bUQ bVU bVU bVU @@ -110068,28 +96789,28 @@ aag aag aag aag -acv -aez -boL -akY -wrQ -aar -aar -aar -aar -aar -lYA -adb -adb -adb -lYA +abw +eJU +awW +akt +vCt +gLl +gLl +gLl +gLl +gLl +gxm +lmG +lmG +lmG +gxm asm asm asm -lYA -dtM -akU -wgd +gxm +gvu +nbH +vQN sqf sqf sqf @@ -110109,23 +96830,23 @@ upM akw alD vEx -bYe -akU -ajC -czu +dME +nbH +tJm +gxm alW alW alW -czu -atI -atI -atI -czu -qVM -qVM -qVM -qVM -qVM +gxm +mWJ +mWJ +mWJ +gxm +vIo +vIo +vIo +vIo +vIo nTH sMM baw @@ -110171,30 +96892,30 @@ aKS aKU aKS aLL -iIY -bCQ -hhw -gxr -bPW -bbx -bPU -aKW +vtJ +stP +eWs +hKO +eoE +lrH +kdo +wDr aiR aiR aiR -aKW -xpI -xpI -xpI -aKW -aLG -aZi -aLG -kan -bFb -bFb +wDr +hwH +hwH +hwH +wDr +qPk +hKe +qPk kan -aYm +mBk +oDJ +vaQ +iTt rlZ buu rlZ @@ -110211,25 +96932,25 @@ kan psO gjK kan -buH -bHL -buH -yhQ -aul -aul -aul -yhQ +knm +sPY +knm +wDr +ydA +ydA +ydA +wDr azD azD azD -yhQ -djp -bWM -bWM -avi -asE -nyz -tVB +wDr +ePN +aId +aId +hQP +nmY +xUY +wGe bSf bWe bWn @@ -110271,37 +96992,37 @@ aag aag aag aag -acf -aet -agS -aiP -aYq -aar -aIZ -aIZ -aIZ -bWK -lYA -adb -adb -adb -lYA +abs +adq +aeZ +aka +aoI +gLl +mis +mis +mis +yjr +gxm +lmG +lmG +lmG +gxm asm asm asm -lYA -dtM -akU -ajC +gxm +gvu +nbH +tJm sqf -wQa +anp wjz fnA jZY jZY sqf -vPj -aot +wpu +okO ajl ajl ajl @@ -110312,23 +97033,23 @@ ajl onQ alD ajl -hon -akU -ajC -czu +bgN +nbH +tJm +gxm alW alW alW -czu -atI -atI -atI -czu -iBt -iBt -iBt -vce -qVM +gxm +mWJ +mWJ +mWJ +gxm +ojX +ojX +ojX +mxo +vIo gnv yhI tTu @@ -110381,23 +97102,23 @@ aLL aLL aLL aLL -aKW +wDr aiR aiR aiR -aKW -xpI -xpI -xpI -aKW -aLG -aZi -aLG +wDr +hwH +hwH +hwH +wDr +qPk +hKe +qPk kan -bFb -bFb +vou +dYU kan -aZM +cWm soK gDW rlZ @@ -110414,18 +97135,18 @@ wzZ tdI vbV kan -buH -hop -buH -yhQ -aul -aul -aul -yhQ +knm +jZe +knm +wDr +ydA +ydA +ydA +wDr azD azD azD -yhQ +wDr bSf bSf auW @@ -110474,37 +97195,37 @@ aag aag aag aag -acf -aet -agB -akW -aYs -aar -aIZ -aIZ -aIZ -aIZ -lYA -vKF -adb -adb -lYA +abs +adq +afr +akc +apg +gLl +mis +mis +mis +mis +gxm +aoz +lmG +lmG +gxm asm asm asm -lYA -dtM -aii -ajC +gxm +gvu +xCB +tJm sqf -udb +sOZ oNJ eDo eDo eDo sqf -jUG -awM +vXv +wub gXl ajl wqW @@ -110515,23 +97236,23 @@ ajl aCp alD ajl -wqA -aii -ajC -czu +evM +xCB +tJm +gxm alW alW alW -czu -atI -atI -xMk -czu -iBt -iBt -iBt -iBt -qVM +gxm +mWJ +mWJ +kbl +gxm +ojX +ojX +ojX +ojX +vIo vpn csI goL @@ -110584,18 +97305,18 @@ coT fgh rZP gmj -aKW +wDr aiR aiR aiR -aKW -xpI -xpI -xpI -aKW -bxD -byI -beB +wDr +hwH +hwH +hwH +wDr +iGi +pSF +eZC bst bst bst @@ -110617,18 +97338,18 @@ biA biA biA biA -bJz -bHT -koc -yhQ -aul -aul -aul -yhQ +hBW +ltv +uYM +wDr +ydA +ydA +ydA +wDr azD azD azD -yhQ +wDr wcN nGi bVd @@ -110677,37 +97398,37 @@ aag aag aag aag -acv -aez -boL -akY -boL +abw +eJU +awW +akt +awW avJ -aIZ -aIZ -aIZ -aIZ -lYA -adb -adb -adb -lYA +mis +mis +mis +mis +gxm +lmG +lmG +lmG +gxm asm asm asm -lYA -dtM -ajt -aik +gxm +gvu +lSN +kaj sqf -eTh +anq awn xsz jTj jTj sqf -xRh -umC +lmi +xgP dwA wJo cyU @@ -110718,22 +97439,22 @@ fQu akx alD gWG -dtM -aii -ajC -czu +gvu +xCB +tJm +gxm alW alW alW -czu -atI -atI -atI -czu -iBt -iBt -iBt -iBt +gxm +mWJ +mWJ +mWJ +gxm +ojX +ojX +ojX +ojX qxz baw sMM @@ -110787,18 +97508,18 @@ uUt aLW aLW guS -aKW +wDr aiR aiR aiR -aKW -xpI -xpI -vgF -aKW -jgU -aZi -aLG +wDr +hwH +hwH +srR +wDr +cvg +hKe +qPk bst bui bvz @@ -110809,8 +97530,8 @@ bJw rlZ hBc hzs +bHg hzs -kDj aZK rlZ hYn @@ -110820,18 +97541,18 @@ bsQ bmj caS biA -buH -bHL -wWQ -yhQ -aun -aul -aul -yhQ +knm +sPY +jxu +wDr +oVk +ydA +ydA +wDr azD azD azD -yhQ +wDr wgR bTO bTO @@ -110880,34 +97601,34 @@ aag aag aag aag -acv -aez -boL -akY -aqk -aar -aIZ -aIZ -aIZ -aIZ -lYA -adb -adb -adb -lYA +abw +eJU +awW +akt +aAn +gLl +mis +mis +mis +mis +gxm +lmG +lmG +lmG +gxm asm asm asm -lYA -dtM -aii -ajC +gxm +gvu +xCB +tJm sqf -vZJ +anr awn tEi -iWb -ygM +asu +hbI sqf ajl vtx @@ -110921,23 +97642,23 @@ fQu akx alD gWG -dtM -aii -ajC -czu +gvu +xCB +tJm +gxm alW alW alW -czu -atI -atI -atI -czu -iBt -iBt -iBt -iBt -qVM +gxm +mWJ +mWJ +mWJ +gxm +ojX +ojX +ojX +ojX +vIo xuY sMM baw @@ -110990,18 +97711,18 @@ bbS xka uLn uoA -aKW +wDr aiR aiR aiR -aKW -xpI -xpI -xpI -aKW -aLG -aZi -aLG +wDr +hwH +hwH +hwH +wDr +qPk +hKe +qPk bst bcR bev @@ -111023,18 +97744,18 @@ bCl bsz caT biA -buH -bHL -buH -yhQ -aul -aul -aul -yhQ +knm +sPY +knm +wDr +ydA +ydA +ydA +wDr azD azD azD -yhQ +wDr hkB bTO qSm @@ -111083,28 +97804,28 @@ aag aag aag aag -acf -aet -agS -aiP -aYq -aar -aIZ -aIZ -aIZ -aIZ -lYA -adb -adb -adb -lYA +abs +adq +aeZ +aka +aoI +gLl +mis +mis +mis +mis +gxm +lmG +lmG +lmG +gxm asm asm asm -lYA -aEI -aii -ajC +gxm +hwB +xCB +tJm sqf sqf awp @@ -111124,23 +97845,23 @@ ajl hVz alD ajl -ahr -aii -ajC -czu +lXR +xCB +tJm +gxm alW alW alW -czu -atI -atI -atI -czu -iBt -iBt -iBt -iBt -qVM +gxm +mWJ +mWJ +mWJ +gxm +ojX +ojX +ojX +ojX +vIo gnv yhI tTu @@ -111193,18 +97914,18 @@ rlh aLW aLW gxh -aKW +wDr aiR aiR aiR -aKW -xpI -xpI -xpI -aKW -aLG -aZi -mzR +wDr +hwH +hwH +hwH +wDr +qPk +hKe +tON bst bcS bag @@ -111226,18 +97947,18 @@ bCm bsP hgZ biA -buH -bHL -buH -yhQ -aul -aul -aul -yhQ +knm +sPY +knm +wDr +ydA +ydA +ydA +wDr azD azD azD -yhQ +wDr wjC bTO xMf @@ -111286,28 +98007,28 @@ aag aag aag aag -acf -aet -afB -akW -biT -aar -aar -aar -aar -aar -lYA -adc -adc -adc -lYA -lYA -lYA -lYA -lYA -kYU -akU -rxG +abs +adq +sSj +akc +rMh +gLl +gLl +gLl +gLl +gLl +gxm +qqa +qqa +qqa +gxm +gxm +gxm +gxm +gxm +atz +nbH +tyC ajl qhx akw @@ -111327,23 +98048,23 @@ ajl nMV vIf ajl -aEI -akU -gMa -czu -czu -czu -czu -czu -adc -adc -adc -czu -qVM -qVM -qVM -qVM -qVM +hwB +nbH +yeg +gxm +gxm +gxm +gxm +gxm +qqa +qqa +qqa +gxm +vIo +vIo +vIo +vIo +vIo crh csI qhb @@ -111396,18 +98117,18 @@ djQ nFs aLW gFa -aKW +wDr aiR aiR aiR -aKW -xpI -xpI -xpI -aKW -aLG -aZi -aLG +wDr +hwH +hwH +hwH +wDr +qPk +hKe +qPk bst buj bev @@ -111429,18 +98150,18 @@ bCn bsz hMN biA -buH -bHL -buH -yhQ -aul -aul -aul -yhQ +knm +sPY +knm +wDr +ydA +ydA +ydA +wDr azD azD azD -yhQ +wDr xad roG mZr @@ -111489,28 +98210,28 @@ aag aag aag aag -acv -aez -boL -boL -boL -ahl -cWv -cWv -cWv -cWv -kaj -uId -adH -adH -fMA -atC -bbL -aWl -bbL -wQg -akU -bYe +abw +eJU +awW +awW +awW +wAE +iKy +iKy +iKy +iKy +tMi +lCg +knb +knb +jsd +iKy +iKy +udv +iKy +gre +nbH +dME bVE aos akw @@ -111530,23 +98251,23 @@ ans aos alE bVE -bYe -akU -aGd -aWl -hJu -bbL -atC -aAa -aww -aww -wst -axs -bbL -bbL -bYe -bbL -bit +dME +nbH +kPa +iKy +gDk +iKy +iKy +gOa +lCg +lCg +lCg +ccx +iKy +iKy +iKy +iKy +wAE baw baw qYC @@ -111599,18 +98320,18 @@ aLL aLL aLL hrF -aKW -aKW -aKW -aKW -aKW -kaF -jWU -jWU -aKW -pGM -aZi -aLG +wDr +wDr +wDr +wDr +wDr +jXR +enK +enK +wDr +kgt +hKe +qPk bst aYQ bbd @@ -111632,18 +98353,18 @@ bnT btX byc biA -buH -bHL -bIR -yhQ -cyG -cyG -sos -yhQ -yhQ -yhQ -yhQ -yhQ +knm +sPY +qPU +wDr +sai +sai +wrN +wDr +wDr +wDr +wDr +wDr bSf bSf auX @@ -111692,28 +98413,28 @@ aag aag aag aag -acv -aez -boL -asS -boL -ceu -boL -boL -boL -boL -kGL -uTY -azY -azY -azY -atC -abx -abx -abx -abx -tal -ait +abw +eJU +awW +aTm +awW +wAE +qQu +qQu +qQu +qQu +kVW +kVW +oFz +oFz +oFz +qQu +dcR +dcR +dcR +dcR +hWa +cEG aEe akA akA @@ -111733,23 +98454,23 @@ akA oap aSb aEe -ait -bjJ -abx -abx -abx -abx -atC -azY -azY -azY -fad -kGL -abg -abg -abg -abg -ajC +cEG +rxQ +dcR +dcR +dcR +dcR +qQu +oFz +oFz +oFz +kVW +kVW +qQu +qQu +qQu +qQu +wAE baw vbB ley @@ -111795,25 +98516,25 @@ aKS aKV aKS aLL -iIY -bCQ -hhw -bPU -bPS -cDe -ipD -rmN -buq -lGh -aQt -lDg -lpD -wGA -lpD -hmc -tBF -jWt -aLG +qVE +iGc +bwG +hCk +nRN +mzI +olQ +oCK +eob +gMk +qRb +axY +xrC +oWF +xrC +toQ +exl +qyX +qPk bst bst bst @@ -111823,7 +98544,7 @@ bst cjW rlZ rlZ -hrJ +oRy kan biy boX @@ -111835,25 +98556,25 @@ biA biA biA biA -ghD -vdW -hvp -ayE -azE -ajd -azS -chE -azI -ciT -cjw -cjS -ckl -ckI -cla -cly -voQ -bVi -tVB +wHn +rDO +cIO +rEd +fml +fqU +bIO +rSA +cIm +emw +bvD +gZW +lUA +bwv +hDU +iNH +cDx +ndl +iDk bSf bWe bWp @@ -111895,28 +98616,28 @@ aah aah aah aah -acf -acf -boL -ale -bDD -nub -dux -iYr -dux -ado -atC -kHT -avn -avn -mTb -atC -avn -avn -avn -nFr -ajt -ajC +abs +abs +awW +vGQ +ajE +wAE +dME +epT +dME +aVK +llo +llo +llo +llo +epT +llo +llo +llo +llo +aWM +lSN +tJm vOy vOy vOy @@ -111936,23 +98657,23 @@ vOy wMO wky sqf -hon -ajt -mce -avn -avn -avn -atC -mTb -avn -avn -aim -atC -avn -bYe -cre -avn -aim +bgN +lSN +nyK +llo +epT +llo +llo +llo +llo +llo +llo +epT +llo +dME +bRO +llo +wAE baw dBp gVA @@ -111998,25 +98719,25 @@ aKR aKR aKR aKR -aSm -aLf -tps -aLf -aLf -xlD -nMz -aSm -hhw -aNn -aNO -asO -apC -apC -apC -aqx -aLG -aYO -aLG +deq +lfx +jgK +lfx +lfx +yih +kgD +deq +bwG +vVy +gtD +vEv +cvI +cvI +cvI +aza +qPk +wKN +qPk kan ihw beW @@ -112038,25 +98759,25 @@ tAU xmT tAU kan -buH -bHL -buH -azB -azT -azT -azT -azG -bHa -ccU -kzP -cjT -ckm -bHa -clb -clz -fiq -gqK -oed +knm +sPY +knm +qEM +wzy +wzy +wzy +qEM +juo +seL +siC +jNw +xuy +juo +vqz +vMU +mJO +vDN +xbg bVU bVU bVU @@ -112099,11 +98820,11 @@ aaa aaa aaa aaa -lYA -aet -aet +acf biV +aet biV +aet ekY aet ekY @@ -112117,9 +98838,9 @@ abE abE abE abE -jKK -pjM -aim +cXq +bXc +vZJ vOy nos fcy @@ -112133,33 +98854,33 @@ vAQ qIL ncE vWt -kNx +gei vOy ayX kXw pxo sqf -kHT -pjM -aim -qVM -qVM -qVM -qVM -qVM -qVM -qVM -qVM -qVM -qVM -gMA -qVM -qVM -qVM -qVM -qVM -qVM -czu +lPY +bXc +vZJ +pBG +pBG +pBG +pBG +pBG +pBG +pBG +pBG +pBG +pBG +oiq +mRU +mRU +mRU +mRU +mRU +mRU +woU aaa aaa aaa @@ -112200,26 +98921,26 @@ aaa aaa bdH aad -aKW -aSm -aLf -hhw +kyw +deq +lfx +bwG aQF aQF aQF aQF szE aQF -bBb -jtJ -asO -asP -uKA -asP -aqx -aLG -aZi -aLG +ihW +qOS +vEv +xkN +dwj +xkN +aza +qPk +hKe +qPk kan iMI rlZ @@ -112241,26 +98962,26 @@ wJb wJb bPu kan -buH -bHL -buH -azB -qKM -rYj -ssE -azG -uxZ -vgk -fiq -fiq -fiq +knm +sPY +knm +qEM +hEg +ewc +lLl +qEM +jvD +cBV +mJO +mJO +mJO bTq -fiq -fiq -fiq -oDf -oed -yhQ +mJO +mJO +mJO +mgb +xbg +lyW ajZ bdH aaa @@ -112302,7 +99023,7 @@ aaa aaa aaa aaa -ahx +acv aiH alf arp @@ -112320,9 +99041,9 @@ gwo aed aeG abE -atL -akV -atL +rSW +dNv +rSW vOy oNp aSn @@ -112342,27 +99063,27 @@ niL kXw pxo sqf -atL -bkQ -atL -qVM -iBt -iBt -iBt -iBt -iUZ -awE -pQu -kmL -qVM -csz -qVM -nLb -pUi -wLk -bIN -lbb -czu +rSW +dYl +rSW +pBG +rdZ +rdZ +rdZ +rdZ +bCs +pBG +rLp +ttX +pBG +vpf +mRU +vor +qnA +vkI +gNN +lyz +woU aaa aaa aaa @@ -112403,10 +99124,10 @@ aaa aaa bdH aad -aKW -uDB -aLf -hhw +kyw +xwd +lfx +bwG weR aPE weR @@ -112420,9 +99141,9 @@ aQF aQF aQF aQF -esi -byI -beB +mNG +pSF +eZC kan avW bZn @@ -112432,7 +99153,7 @@ vhX gDW rlZ rlZ -pnC +wYr dBH bky ryt @@ -112444,9 +99165,9 @@ xIk cLA xIk kan -bJz -bHT -quI +hBW +ltv +qEz bJt bJt bJt @@ -112454,16 +99175,16 @@ bJt bJt bJt bJt -fiq -uaa -uaa -uaa -uaa -cmX -fiq -oDf -oDf -yhQ +mJO +plv +plv +plv +plv +mvg +mJO +mgb +mgb +lyW ajZ bdH aaa @@ -112505,7 +99226,7 @@ aaa aaa aaa aaa -ahx +acv aiH alg bBC @@ -112523,9 +99244,9 @@ adF aef dWw agA -ago -snm -cwJ +mRJ +fjA +gqH vOy anz vgx @@ -112545,27 +99266,27 @@ aCC kXw pxo asn -ago -asW -cwJ -qVM -iBt -iBt -iBt -iBt -iBt -awE +mRJ +oEn +gqH +pBG +rdZ +rdZ +rdZ +rdZ +rdZ +pBG jZU -rjH -qVM -vGk -qVM -fdj -qYW -oTz -vGk -xae -czu +jAe +pBG +jtU +mRU +tNw +ebI +ukC +jtU +fCi +woU aaa aaa aaa @@ -112606,16 +99327,16 @@ aaa aaa bdH aad -aKW -aSm -aVt -hhw -aNr -aOi -pbb -pbb +kyw +deq +cGY +bwG +rUq +rUq +sab +sab izk -aWD +pQc cWr jSU lXO @@ -112623,9 +99344,9 @@ eKT wan cTC aQF -pno -aYO -bad +syj +wKN +qqf xMs xMs xMs @@ -112635,7 +99356,7 @@ xMs cjW rlZ rlZ -jbO +kSC kan quv rZB @@ -112647,26 +99368,26 @@ vMo vMo vMo vMo -bGe -bHL -smn +tzw +sPY +hkC bJt xOL gGI eeu -dqQ -ccm +gfq +eFP gAz -fiq -uaa -uaa -uaa -uaa -uaa -fiq -oed -bxX -yhQ +mJO +plv +plv +plv +plv +plv +mJO +xbg +pgJ +lyW ajZ bdH aaa @@ -112708,7 +99429,7 @@ aaa aaa aaa aaa -lYA +acf aet avx ahN @@ -112726,9 +99447,9 @@ adF aef aef uZZ -bYe -amO -avj +muW +lGh +bBH vOy awQ oLU @@ -112748,27 +99469,27 @@ edv kXw pxo asn -ayT -akU -avj -qVM -iBt -iBt -iBt -iBt -iBt -awE -cvj -iiz -qVM -oLw -qVM -qVM -qVM -xeG -qVM -qVM -czu +lXl +yiu +bBH +pBG +rdZ +rdZ +rdZ +rdZ +rdZ +pBG +cVq +nOb +pBG +vpI +mRU +mRU +mRU +gBs +mRU +mRU +woU aaa aaa aaa @@ -112809,16 +99530,16 @@ aaa aaa bdH aad -aKW -bhC -bPT -hhw -jKh -pbb +kyw +deq +veq +bwG +pKh +sab rDv bmW jWu -aWD +pQc aqo aRy aRy @@ -112826,9 +99547,9 @@ aRy aRy nIj aQF -aWM -aZi -aLG +rWv +hKe +qPk xMs aSO feY @@ -112850,9 +99571,9 @@ wZE iGn byd vMo -buH -bHL -buH +knm +sPY +knm lhB pOY bDs @@ -112860,16 +99581,16 @@ jge bDs bDs hLC -fiq -uaa -uaa -uaa -uaa -uaa -fiq -oed -oDf -yhQ +mJO +plv +plv +plv +plv +plv +mJO +xbg +mgb +lyW ajZ bdH aaa @@ -112911,7 +99632,7 @@ aaa aaa aaa aaa -lYA +acf aet avV uli @@ -112929,9 +99650,9 @@ adF bls aeH agq -ahM -kSJ -avj +ijd +efV +bBH vOy hng dnC @@ -112951,27 +99672,27 @@ aCt kXw pxo asn -ayT -aii -avm -qVM -iBt -iBt -iBt -iBt -iBt -awE -aGt -ijn -qVM -vGk -vGk -gYS -weU -csz -eGz -csz -czu +lXl +poD +qmW +pBG +rdZ +rdZ +rdZ +rdZ +rdZ +pBG +dzp +ngV +pBG +jtU +jtU +uBx +fLi +vpf +prf +vpf +woU aaa aac aaf @@ -113012,10 +99733,10 @@ aaa aaa bdH aad -aKW -aSm -xCm -hhw +kyw +deq +deF +bwG mTi lJK kYV @@ -113029,9 +99750,9 @@ bQU bQU bjD dqE -aem -mUa -uLv +htl +vaq +vTX xMs lOH dUS @@ -113053,26 +99774,26 @@ bof vit dxu vMo -buH -bHL -buH +knm +sPY +knm lhB -tAJ +xCb bDs bIJ bDs bDs qJS -fiq -uaa -uaa -uaa -uaa -uaa -fiq -oed -oed -yhQ +mJO +plv +plv +plv +plv +plv +mJO +xbg +xbg +lyW ajZ aaa avo @@ -113114,7 +99835,7 @@ aaa aaa aaa aaa -ahx +acv aez uli aIx @@ -113132,9 +99853,9 @@ adF aef kqN agA -ayT -ajt -avm +lXl +qdJ +qmW vOy xyt wiW @@ -113154,27 +99875,27 @@ vOy mFq vqW sqf -ybf -aii -avj -qVM -awE -awE -awE +rnM +poD +bBH +pBG +pBG +pBG +pBG nec -awE -awE -xJC -awE -qVM -qVM -qVM -qVM -qVM -qVM -vGk -csz -czu +pBG +pBG +saL +pBG +pBG +mRU +mRU +mRU +mRU +mRU +jtU +vpf +woU aaa aad aag @@ -113215,16 +99936,16 @@ aaa aaa bdH aad -aKW -aSm -xnY -hhw +kyw +deq +oWq +bwG aQF aQF aPH xIQ -hvQ -aWD +tmX +pQc rrK aRy feI @@ -113232,9 +99953,9 @@ brb cpp buv aWF -aLG -aZi -aLG +qPk +hKe +qPk xMs akE qGF @@ -113256,9 +99977,9 @@ ggz dka bye vMo -buH -bHL -buH +knm +sPY +knm lhB aQW bDs @@ -113273,9 +99994,9 @@ bJt bJt bJt bJt -oed -eHf -yhQ +xbg +otW +lyW ajZ avo avo @@ -113317,7 +100038,7 @@ aaa aaa aaa aaa -ahx +acv aez uli uli @@ -113335,9 +100056,9 @@ aef aef tRD abE -aTL -ajt -avj +tkF +qdJ +bBH vOy iYf bIM @@ -113357,27 +100078,27 @@ hPe sdu btC vLj -ahM -kSJ -avj -cGr -awE -vjn -wQv -rne -guC -ecQ -whZ -awE +ijd +efV +bBH +rRT +pBG +gqQ +cHG +nQA +dAl +pyx +lKO +pBG lEf gel gel gel fkX -qVM -vGk -ofs -czu +mRU +jtU +tMU +woU aaf aag aag @@ -113418,10 +100139,10 @@ bdH bdH bdH aad -aKW -uDB -aLf -hhw +kyw +xwd +lfx +bwG weR aPE izk @@ -113435,9 +100156,9 @@ aTY iCF gJP aQF -qcl -aZi -aLG +uNf +hKe +qPk xMs aYR dUS @@ -113459,9 +100180,9 @@ jZd vit bzo vMo -buH -bHL -buH +knm +sPY +knm lhB pxD bDs @@ -113476,9 +100197,9 @@ iIl bDs ujV bJt -oed -oed -yhQ +xbg +xbg +lyW ajZ avo avs @@ -113520,7 +100241,7 @@ aaa aaa aaa aaa -lYA +acf ahy avZ ipK @@ -113538,9 +100259,9 @@ adF aef afs agA -ayT -akU -avj +lXl +yiu +bBH vOy mTp wiW @@ -113548,7 +100269,7 @@ wPz jeq rQy wWR -ycj +vti vkp cfT hec @@ -113560,27 +100281,27 @@ lON dVu oDR vOP -bYe -bnD -aWH -aYn -bVB -bXv -bXv -bph -rEm -rne -bYj -xne +muW +cDI +tru +uXE +qvL +wmP +wmP +dRP +eFY +nQA +eAN +xqQ rfb cXF rLU dKp cHu -qVM -vGk -csz -czu +mRU +jtU +vpf +woU aag aag aag @@ -113621,12 +100342,12 @@ bdH bdH bdH aad -aKW -aSm -gfS -hhw -lHc -pbb +kyw +deq +sJa +bwG +pGG +sab izk hds aQF @@ -113638,9 +100359,9 @@ qZH bsN buB aWD -aLG -aZi -aLG +qPk +hKe +qPk xMs bXw eiw @@ -113662,9 +100383,9 @@ boh qDP wbP vMo -buH -bHL -vMx +knm +sPY +cbL bJt qom bDs @@ -113677,10 +100398,10 @@ jFE jFE idx hAz -hQh +gHj bJt -vhI -oed +oqI +xbg avo avo avo @@ -113723,7 +100444,7 @@ aaa aaa aaa aaa -lYA +acf aet aIx ipK @@ -113741,9 +100462,9 @@ adD sOw afs agA -ayT -akU -avj +lXl +yiu +bBH vOy axn dRh @@ -113755,7 +100476,7 @@ vdO vkp aoM kBo -kBP +chc naR vOy hrn @@ -113763,27 +100484,27 @@ vOy aRd aIo vOy -qLK -akU -avj -kpl -awE -hlq -bYj -btz -bsc -iaj -bYj -xne +whc +yiu +bBH +mxq +pBG +lvb +eAN +jVg +rGU +xCf +eAN +xqQ rLv bHk vZw bHk cHu -qVM -csz -qVM -czu +mRU +vpf +mRU +woU aag aag aag @@ -113824,10 +100545,10 @@ bdH bdH bdH aad -aKW -aLf -aSm -tps +kyw +lfx +deq +jgK aNs aNs hyw @@ -113841,9 +100562,9 @@ fHF bml buB aWD -beB -byI -beB +eZC +pSF +eZC xMs xMs xMs @@ -113865,9 +100586,9 @@ vMo vMo vMo vMo -bJz -bHT -uFP +hBW +ltv +kGw bJt bJt nFI @@ -113876,14 +100597,14 @@ vzP bJt hjB bJt -neF +xfK bDs gSk bDs -khX +bpI bJt -kTq -oed +jLH +xbg lpy avC avC @@ -113926,7 +100647,7 @@ aaa aaa aaa aaa -lYA +acf aet uli ipK @@ -113944,9 +100665,9 @@ adF aef afs agA -ayT -akU -avj +lXl +yiu +bBH vOy aAr pGK @@ -113966,27 +100687,27 @@ aCD hFC qmy vOy -ayT -akU -avj -awE -awE -xgr -bYj -eUR -gEI -nDh -bYj -xne +lXl +yiu +bBH +pBG +pBG +hEl +eAN +fQS +oGY +neT +eAN +xqQ cNH vzp vZw erd cHu -qVM -hoX -qVM -czu +mRU +vzB +mRU +woU aag aag aag @@ -114027,10 +100748,10 @@ bdH bdH bdH aad -aKW -eWY -aSm -hhw +kyw +txp +iGc +bwG vMr vMr izk @@ -114044,9 +100765,9 @@ htL aUL buB aWD -aLG -aZi -aLG +qPk +hKe +qPk nyw iXU hDw @@ -114068,9 +100789,9 @@ vEH uFH tQd nyw -buH -bHL -buH +knm +sPY +knm yfS sEi dck @@ -114085,8 +100806,8 @@ gSk reL wiI bJt -nnr -eep +tqV +dSm avo avo avo @@ -114129,7 +100850,7 @@ aaa aaa aaa aaa -lYA +acf aet avx ipK @@ -114147,9 +100868,9 @@ aef aef pHG abE -aTL -aii -avj +tkF +poD +bBH vOy aID gLc @@ -114158,9 +100879,9 @@ iit kZV vOy vOy -oIr +jpl vOy -wdo +wKL vOy vOy vOy @@ -114169,27 +100890,27 @@ aoM aoM vgB kgs -ayT -aii -avj -aYp -aWS -bYj -bYj -btz -rne -rne -bYj -xne +lXl +poD +bBH +bvX +ojQ +eAN +eAN +jVg +nQA +nQA +eAN +xqQ rfb bHk vZw bHk cHu -qVM -csz -qVM -czu +mRU +vpf +mRU +woU aah aag aag @@ -114230,10 +100951,10 @@ bdH bdH bdH aad -aKW -wyO -lpX -hhw +kyw +cme +whm +bwG mTi lJK izk @@ -114247,9 +100968,9 @@ aTZ aUM gJP aQF -lRU -aYO -aLG +rmz +wKN +qPk nyw beH dcd @@ -114271,9 +100992,9 @@ beH beH beH nyw -buH -bHL -buH +knm +sPY +knm yfS hgL swt @@ -114288,9 +101009,9 @@ gSk bDs vwI bJt -koz -oDf -yhQ +lAa +mgb +lyW ajZ avo avs @@ -114332,7 +101053,7 @@ aaa bdH aaa aaa -ahx +acv aez uli uli @@ -114350,9 +101071,9 @@ adF aef aGS agA -ayT -aii -avj +lXl +poD +bBH vOy aMd pGK @@ -114372,27 +101093,27 @@ prx fpT eVT kgs -ayT -aii -avj -aYp -aZJ -baD -baD -tsH -bqw -bqw -hiB -xne +lXl +poD +bBH +bvX +kVV +vQR +vQR +epJ +jML +jML +fnH +xqQ rLv pRy wwW mRW cHu -qVM -vGk -csz -czu +mRU +jtU +vpf +woU aaa aad aag @@ -114433,16 +101154,16 @@ bdH bdH bdH aad -aKW -aVt -eZz -hhw +kyw +cGY +ipn +bwG aQF aQF sPc xIQ -pbb -aWD +sab +pQc olM aRy aRy @@ -114450,9 +101171,9 @@ eXr iFH buv aWE -aLG -avX -aem +qPk +ckh +htl aum emr emr @@ -114474,9 +101195,9 @@ rCO rCO rCO eVv -bFu -lAO -buH +wwE +mDZ +knm ykj rlQ ven @@ -114489,11 +101210,11 @@ rBj bDs gSk bDs -hWS +fUB bJt -oDf -uqH -yhQ +mgb +nhw +lyW ajZ avo avo @@ -114535,7 +101256,7 @@ aaa bdH bdH aaa -ahx +acv aez aIB aKg @@ -114553,9 +101274,9 @@ adF aef nIS uZZ -bYe -aii -avj +muW +poD +bBH vOy aMg aSo @@ -114575,27 +101296,27 @@ ger aoM aFf mmN -ayT -aii -avj -aYp -sQL -dpV -bXW -bqo -bse -bvc -djL -awE +lXl +poD +bBH +bvX +maO +lPm +iZV +fdx +cuq +eQJ +fVF +pBG qWR wJH wJH wJH sNR -qVM -vGk -csz -czu +mRU +jtU +vpf +woU aaa aae aah @@ -114636,10 +101357,10 @@ bdH bdH bdH aad -aKW -cmq -aSm -hhw +kyw +oif +deq +bwG weR aPE izk @@ -114653,9 +101374,9 @@ pOi pOi nVF aWF -aLG -aYO -aLG +qPk +wKN +qPk nyw eGZ ieX @@ -114677,9 +101398,9 @@ bhq dcd eTd nyw -buH -vdW -qLp +knm +rDO +hqp kKk rDt gpI @@ -114692,11 +101413,11 @@ bJt oKb gSk bDs -ign +nqO bJt -sIx -bxX -yhQ +nQo +pgJ +lyW ajZ aaa avo @@ -114738,7 +101459,7 @@ aaa bdH aaa aaa -lYA +acf aet aJJ aIB @@ -114756,9 +101477,9 @@ adF aef nIS eWF -bYe -aii -avj +muW +poD +bBH vOy aQZ bkT @@ -114776,29 +101497,29 @@ ggl jjS qMP kBP -aSl +kqo vOy -aTL -aii -avm -awE -awE -awE -awE -mZA -awE -awE -awE -awE -awE -qVM -qVM -qVM -qVM -qVM -vGk -ofs -czu +tkF +poD +qmW +pBG +pBG +pBG +pBG +qRr +pBG +pBG +pBG +pBG +pBG +mRU +mRU +mRU +mRU +mRU +jtU +tMU +woU bdH bdH bdH @@ -114839,16 +101560,16 @@ bdH bdH bdH aad -aKW -xxe -aLf -hhw -aQI -aQI +kyw +byt +lfx +bwG +iWQ +iWQ uFd mUq qwt -aWD +pQc bng bmX bmX @@ -114856,9 +101577,9 @@ tou tou jhy aQF -beB -aYT -jfD +eZC +hMk +mkw bdd bdd bdd @@ -114880,9 +101601,9 @@ bdd bdd bdd bdd -fZx -bHT -bJz +xwm +ltv +hBW yfS ape ven @@ -114897,9 +101618,9 @@ cnu bDs knK bJt -oed -vgQ -yhQ +xbg +oUZ +lyW ajZ bdH bdH @@ -114941,7 +101662,7 @@ aaa bdH aaa aaa -lYA +acf aet avx ahN @@ -114959,9 +101680,9 @@ adF aef kqN agA -ayT -akU -avj +lXl +yiu +bBH vOy dVd lea @@ -114981,27 +101702,27 @@ vti vti aEZ vOy -ayT -akU -avj -aCv -baa -fqe -bXx -bqo -awE -tnm -dhQ -qyz -awE -vGk -vGk -gYS -vzl -csz -vGk -csz -czu +lXl +yiu +bBH +fKh +gQk +trU +oNY +fdx +pBG +pVF +ppF +fiE +pBG +jtU +jtU +uBx +ycM +vpf +jtU +vpf +woU bdH bdH bdH @@ -115042,16 +101763,16 @@ bdH bdH bdH aad -aKW -dgN -aLf -hhw -aQI -aQI -aQI -hcZ +kyw +jNo +lfx +bwG +iWQ +iWQ +sab +aNr pQY -aWD +pQc bll bll bpo @@ -115059,9 +101780,9 @@ dVO bsR aQr aQF -aLG -aYO -aLG +qPk +wKN +qPk tda ngI dkq @@ -115083,9 +101804,9 @@ qby btY bAJ huU -buH -bHL -buH +knm +sPY +knm yfS ape ven @@ -115100,9 +101821,9 @@ gSk ljG tSp bJt -oed -sHg -yhQ +xbg +ssk +lyW ajZ bdH bdH @@ -115144,7 +101865,7 @@ aaa bdH aaa aaa -ahx +acv aiH uli bLO @@ -115162,9 +101883,9 @@ fcE aef uNN abE -giB -akU -avj +dfA +yiu +bBH vOy vOy vOy @@ -115173,9 +101894,9 @@ mSK mSK vOy vOy -ylc +voV wKP -ylc +hLr vOy vOy rhO @@ -115184,27 +101905,27 @@ nPE oqZ uaI vOy -atV -akU -avj -aCv -bac -dWz -bYj -bqo -aRD -aGt -byp -aGt -awE -vGk -qVM -qVM -qVM -qVM -csz -qVM -czu +hUu +yiu +bBH +fKh +iuG +sOv +eAN +fdx +gAk +dzp +rMT +dzp +pBG +jtU +mRU +mRU +mRU +mRU +vpf +mRU +woU bdH bdH bdH @@ -115245,10 +101966,10 @@ bdH bdH bdH aad -aKW -bhC -aLf -hhw +kyw +deq +lfx +bwG mTi lJK mTi @@ -115262,9 +101983,9 @@ aQF aQF aQF aQF -ePA -akO -bwd +ldb +rYI +fzc bdg vyg bni @@ -115286,9 +102007,9 @@ snb xbd bAU bdg -bCi -bCo -ivB +jlD +pYN +raE bJt wbC lHu @@ -115297,15 +102018,15 @@ qBM wXI nUd lkd -xnQ +xOT bDs gSk oDE bJt bJt -oed -oDf -yhQ +xbg +mgb +lyW ajZ bdH bdH @@ -115347,7 +102068,7 @@ aaa aaa aaa aaa -ahx +acv aiH aiH bWd @@ -115365,11 +102086,11 @@ aeI eva xzf abE -aTL -aii -ali -amD -cwJ +tkF +poD +dSI +iLL +gqH vOy vOy vOy @@ -115387,27 +102108,27 @@ vOy vOy vOy vOy -vIN -aii -avj -aCv -ilv -rne -rne -gEK -eHj -bvl -byq -maq -awE -vGk -qVM -riM -rGl -qVM -hoX -qVM -czu +qQD +poD +bBH +fKh +ubI +nQA +nQA +jvM +pLa +nTR +gDp +rwq +pBG +jtU +mRU +oyO +nve +mRU +vzB +mRU +woU bdH bdH bdH @@ -115448,10 +102169,10 @@ bdH bdH bdH aad -aKW -efU -aLf -hhw +kyw +xbI +lfx +bwG aQF aQF aQF @@ -115461,13 +102182,13 @@ aQF aQF aQF aQF -ktB -gCd -eJg -hhw -aeb -alx -aeb +wYG +yhR +gHi +bwG +pzj +uhq +pzj bdg apz dyd @@ -115489,9 +102210,9 @@ vPw bvr bBQ bdg -bCj -bDx -bCj +sgL +aRL +sgL rde vjC iMm @@ -115505,10 +102226,10 @@ bDs gSk luS bJt -iGg -oed -oDf -yhQ +uCw +xbg +mgb +lyW ajZ bdH bdH @@ -115550,11 +102271,11 @@ aaa aaa aaa aaa -lYA -aar -tiM -aar -aar +vHn +cGd +moK +cGd +cGd aNi aNi bWr @@ -115568,11 +102289,11 @@ aNi aNi aNi aNi -atV -aii -abx -abx -avj +hUu +poD +tsn +tsn +bBH vOy elR xXh @@ -115590,27 +102311,27 @@ dMK vOy vOy vOy -ayT -aii -avj -awE -ceo -rne -rne -wft -awE -awE -awE -awE -awE -vGk -xCX -vGk -hoX -qVM -sCC -qVM -czu +lXl +poD +bBH +pBG +mGT +nQA +nQA +vEG +pBG +pBG +pBG +pBG +pBG +jtU +rXF +jtU +vzB +mRU +kuK +mRU +woU aaa aaa aaa @@ -115651,26 +102372,26 @@ bdH aaa bdH aad -aKW -aSm -aSm -hhw -beG -dIR -yky -bfb -baY -hhw -aLF -bPV -yaG -bPU -aSm -bPS -hhw -bwd -auv -bwd +kyw +deq +deq +bwG +tEu +mUY +vOw +ouU +dro +bwG +gSH +xJp +qxJ +hCk +deq +nRN +bwG +wsS +vxY +wsS bdg auj bbf @@ -115692,10 +102413,10 @@ bpv tMW bBY bCh -bCi -bCo -bCi -ejw +mPM +esd +mPM +yfS xML iMm jSy @@ -115708,10 +102429,10 @@ bDs gSk vSp lHG -qgH -oDf -oDf -yhQ +kOJ +mgb +mgb +lyW ajZ bdH bdH @@ -115753,11 +102474,11 @@ aaf aaf aaf aaf -lYA -aiS -aao -aao -acD +vHn +ejV +hoT +hoT +vyh aNi cYT aNm @@ -115771,11 +102492,11 @@ bhx vif aOR bsw -ayT -xGk -all -amK -avj +lXl +hPZ +bPi +ava +bBH vOy wWz vHO @@ -115791,29 +102512,29 @@ ruc xOY wTM vOy -nzA -amD -ajr -aii -avm -awE -wiF -rne -rne -fAo -awE -knT -wQv -bBi -awE -ieH -qVM -tUI -mcV -qVM -vGk -csz -czu +uWk +iLL +lRh +poD +qmW +pBG +tGT +nQA +nQA +jDO +pBG +aYH +cHG +cOY +pBG +mSM +mRU +gRc +oOp +mRU +jtU +vpf +woU aaf aaf aaf @@ -115847,33 +102568,33 @@ bdH bdH bdH aac -aKW -aKW -aKW -aKW -aKW -aKW -aKW -aKW -aSm -aLf -hhw -beI -bTQ -tBP -jfm -lYu -maw -fAS -jfm -lzn -eDz -jfm -jfm -bUP -aLG -aYO -aLG +kyw +kyw +kyw +kyw +kyw +kyw +kyw +kyw +deq +caq +bwG +igb +cpz +ooA +kpj +sBY +wyG +qjL +kpj +rAo +lka +kpj +kpj +mQY +ygp +tdi +fZE tda mng wTm @@ -115895,9 +102616,9 @@ mng wTm wCI tda -buH -bHL -buH +oSM +ter +oSM bJt swE wpI @@ -115911,17 +102632,17 @@ qxE rui vSp bJt -wuH -oed -uqH -yhQ -yhQ -yhQ -yhQ -yhQ -yhQ -yhQ -yhQ +uXU +xbg +nhw +lyW +lyW +lyW +lyW +lyW +lyW +lyW +lyW ajY aaa aaa @@ -115956,11 +102677,11 @@ aag aag aag aag -lYA -aiT -aap -aao -aap +vHn +dGg +tob +hoT +tob aNi aZe aNm @@ -115974,11 +102695,11 @@ aco aco dYu bsw -mQH -hee -aEX -aii -avm +cOe +vwT +akh +poD +qmW vOy wWz anw @@ -115994,29 +102715,29 @@ wLy eiE wTM vOy -ayT -akT -amC -bKe -avj -aCv -eYW -rne -rne -wft -emO -bYj -bYj -bYj -awE -csz -qVM -qVM -qVM -qVM -oLw -csz -czu +lXl +mfO +mHY +yei +bBH +fKh +eYn +nQA +nQA +vEG +mlP +eAN +eAN +eAN +pBG +vpf +mRU +mRU +mRU +mRU +vpI +vpf +woU aag aag aag @@ -116049,22 +102770,22 @@ bdH bdH bdH bdH -aKW -aKW -bPU -lLV -aLf -aLf -aLf -jiX -aSm -aSm -aLf -ahU -aLf -fza -kat -uJB +kyw +kyw +hCk +maK +lfx +lfx +lfx +deq +deq +deq +lfx +eYp +lfx +vmq +cqH +tjO bdd bdd bdd @@ -116074,9 +102795,9 @@ bdd bdd bdd bdd -teH -mUa -xNB +nhE +naa +nVQ bdd vuA vuA @@ -116098,9 +102819,9 @@ vuA vuA vuA bdd -bSj -bHL -bIR +fvV +ter +gvK bdd bdd bdd @@ -116115,17 +102836,17 @@ cDC vuF bJt bJt -oed -oDf -oDf -oDf -qNy -cLV -oDf -oDf -oDf -yhQ -yhQ +xbg +mgb +mgb +mgb +gLm +ttD +mgb +mgb +mgb +lyW +lyW aaa aaa aaa @@ -116159,11 +102880,11 @@ aag aag aag aag -lYA -aiU -aap -aap -aap +vHn +oSG +tob +tob +tob aNi aZr aNm @@ -116179,9 +102900,9 @@ cCa aNi aNi aNi -ybf -ajt -avj +rnM +qdJ +bBH vOy wWz ovG @@ -116197,29 +102918,29 @@ gxP aOe wTM vOy -atU -akU -abg -abg -avj -aCv -aSP -rne -rne -wft -awE -hpf -pbl -igp -awE -hoX -qVM -oks -wdH -qVM -vGk -ofs -czu +piQ +yiu +xIj +xIj +bBH +fKh +wvo +nQA +nQA +vEG +pBG +skR +oxc +nBi +pBG +vzB +mRU +pGh +xEs +mRU +jtU +tMU +woU aag aag aag @@ -116252,34 +102973,34 @@ bdH bdH bdH bdH -aKW -bPV -aLf -xlD -aSm -aSm -aSm -aLf -aLf -aLf -aMs -hhw -pgt -ykF -bgH -uVb +kyw +xJp +lfx +deq +yih +deq +deq +lfx +lfx +lfx +rHq +bwG +nPO +cGB +ugj +fbC bdd -pfe -wsP -izr -aSh -ccF -rFV -iXR +uvU +xZk +dGU +lgF +eYj +aSp +mho bdg -aLG -awb -aLG +fZE +iLm +fZE bdg bqZ bqZ @@ -116301,34 +103022,34 @@ bqZ bqZ bqZ bdg -buH -hOR -buH +oSM +xub +oSM bdg -cxZ -wAU -diw -tSv -cxZ -ffl -wbe +lCE +oZD +lwh +oPz +lCE +xLi +qkY bdd qXo feq loY aDU bJt -oed -oDf -oed -oDf -mOU -oDf -oDf -oed -oed -oDf -yhQ +vAx +mgb +xbg +mgb +xpL +mgb +mgb +xbg +xbg +mgb +lyW aaa aaa aaa @@ -116362,11 +103083,11 @@ aag aag aag aag -lYA -aiZ -aap -aao -aap +vHn +oeH +tob +hoT +tob aNi aZs aNm @@ -116382,9 +103103,9 @@ qiy ahR ahR egt -ait -ani -avj +shC +vIZ +bBH vOy woh vgO @@ -116400,29 +103121,29 @@ qxm vgO xAe vOy -aOP -aii -aow -hee -ioX -aCv -aLQ -bYj -bYj -wft -awE -awE -awE -awE -awE -csz -iid -csz -hoX -qVM -noV -csz -czu +psk +poD +sin +vwT +gsJ +fKh +lDa +eAN +eAN +vEG +pBG +pBG +pBG +pBG +pBG +vpf +tra +vpf +vzB +mRU +iJT +vpf +woU aag aag aag @@ -116455,9 +103176,9 @@ bdH bdH bdH bdH -aKW -aSm -aLf +kyw +deq +lfx nsY nsY pRT @@ -116467,22 +103188,22 @@ nsY nsY nsY nsY -hhw -hhw -umv -hhw +bwG +bwG +msC +bwG bdd -hjT -jZr +xwE +dAQ tGG -fHe +kEs tGG -sBs -iXR +bpA +mho bdg -aLG -aYO -aLG +fZE +naa +fZE bdg bqZ beH @@ -116504,17 +103225,17 @@ beH beH bqZ bdg -buH -bHL -buH +oSM +ter +oSM bdg -cxZ -hnH -kXH -kfG -dkH -cKX -oqP +lCE +uek +dkX +qXp +oCl +tPm +kiX bdd tLc rsM @@ -116529,9 +103250,9 @@ nsY nsY nsY nsY -upt -oDf -yhQ +kqb +mgb +lyW aaa aaa aaa @@ -116565,11 +103286,11 @@ aag aag aag aag -lYA -adf -aao -aao -aao +vHn +mId +hoT +hoT +hoT aNi jWr aNm @@ -116585,9 +103306,9 @@ hpY aOR aOR bgK -bYe -ajt -avj +muW +qdJ +bBH vOy vOy vOy @@ -116603,29 +103324,29 @@ aoK vOy vOy vOy -asp -aii -avj -qVM -qVM -awE -ntr -bYj -bYj -wft -bvU -dTc -lOl -mkx -awE -ieH -qVM -dYK -csz -iid -csz -qVM -czu +pLE +poD +bBH +mRU +mRU +pBG +aGs +eAN +eAN +vEG +vrJ +xOs +kOH +hIs +pBG +mSM +mRU +tCd +vpf +tra +vpf +mRU +woU aag aag aag @@ -116658,34 +103379,34 @@ aaa aaa aaa aaa -aKW -aLf -aSm +kyw +lfx +deq nsY xWT kxd jgk nsY rSG -wWJ +rur oqS nsY -lhu -btk -aSm -eoM +hsh +cPP +deq +eLH bdd -vTt -tgE -tgE -fNu +eUZ +lCr +lCr +fwM tGG -gmp -iXR +lJD +mho bdg -aLG -aYO -aLG +fZE +naa +fZE bdg bqZ beH @@ -116707,17 +103428,17 @@ gBo beH bqZ bdg -buH -bHL -buH +oSM +ter +oSM bdg -cxZ -csG +lCE +fMe sNI -mgR -gNi -wJL -oMC +jmn +sgD +kUR +vMM bdd hxZ rsM @@ -116732,9 +103453,9 @@ rSG qkP oqS nsY -oDf -oDf -yhQ +mgb +mgb +lyW aaa aaa aaa @@ -116768,11 +103489,11 @@ aag aag aag aag -lYA -fZF -aWs -aar -tiM +vHn +eDq +jFI +cGd +moK aNi aNi aNi @@ -116788,9 +103509,9 @@ aOR aOR agr aNi -ayT -amO -avj +lXl +lGh +bBH vOy vOy vOy @@ -116806,29 +103527,29 @@ vOy vOy vOy vOy -meJ -amO -avj -qVM -csz -awE -qMe -nKJ -bYj -dyF -awE -bzs -gbQ -eKK -awE -oLw -qVM -jmR -vGk -qVM -hoX -qVM -czu +mIR +lGh +bBH +mRU +vpf +pBG +xiU +xUa +eAN +mLe +pBG +pZH +nnL +lgt +pBG +vpI +mRU +bhV +jtU +mRU +vzB +mRU +woU aag aag aag @@ -116861,9 +103582,9 @@ aaa aaa aaa aaa -aKW -aLf -aSm +kyw +lfx +deq nsY xWT kxd @@ -116873,22 +103594,22 @@ iIP kxd dDt nsY -xiz -aSm -aSm -kOf +exb +deq +deq +qLY bdd -dYH +ljW bDP -tgE -okB -tgE -crK -xkY +lCr +ijr +lCr +mpn +pZR bdd -beB -aYT -beB +atH +iEM +atH bCx bqZ beH @@ -116910,17 +103631,17 @@ bgO beH bqZ bCx -buH -bHL -buH +oSM +ter +oSM bdd -qWy -uZX -wJL -wJL -eCS -xqM -udV +tSF +lsn +kUR +kUR +mkl +gXB +car bdd hTf rsM @@ -116935,9 +103656,9 @@ dmR kxd dDt nsY -oDf -oed -yhQ +mgb +xbg +lyW aaa aaa aaa @@ -116971,15 +103692,15 @@ aag aag aag aag -lYA -aar -aar -aar -awJ -bzE -fZF -fZF -fZF +vHn +cGd +cGd +cGd +iTQ +lWt +eDq +eDq +eDq aNi aNi aNi @@ -116991,9 +103712,9 @@ aNi aNi aNi aNi -asp -amO -avj +pLE +lGh +bBH bPF aqG ata @@ -117006,32 +103727,32 @@ vYz awR uoi vOy -aMh -biB -alH -aTL -akU -avj -qVM -csz -awE -awE -awE -hIL -awE -awE -awE -awE -awE -awE -vGk -qVM -qVM -qVM -qVM -csz -qVM -czu +jyJ +niF +bPF +tkF +yiu +bBH +mRU +vpf +pBG +pBG +pBG +qIx +pBG +pBG +pBG +pBG +pBG +pBG +jtU +mRU +mRU +mRU +mRU +vpf +mRU +woU aag aag aag @@ -117064,34 +103785,34 @@ aaa aaa aaa aaa -aKW -aLa -aSm +kyw +lfx +deq nsY gsg vHq vvY nsY -pPV +rNb bxC jiU nsY -glr -mhl -aSm -ylY +jvt +hiu +deq +vSr bdd -qgw -qgw -qgw -tMc -vlR -uLe -qin +asr +asr +asr +mki +nYp +fZG +phd pmv -tBF -fSK -aLG +mzv +yfg +fZE nyw bqZ beH @@ -117113,17 +103834,17 @@ tmB eBg vKe eVv -bFu -omW -bFu +cVZ +xdf +cVZ hLS vKe vKe -sgE -ljz -xzB -epq -fCt +uSH +uwt +rLP +pPA +ycx bdd hTf rKO @@ -117138,9 +103859,9 @@ iSm bxC jiU nsY -oDf -oed -yhQ +mgb +xbg +lyW aaa aaa aaa @@ -117164,39 +103885,39 @@ aaa aaa aaa aaa -lYA -lYA -lYA -lYA -lYA -lYA -lYA -lYA -lYA -lYA -lYA -lYA -aao -aap -aap -aao -aap -aap -ahg -aao -aap -aap -aap -aap -aao -acD -aao -aap -aap -rfg -bYe -amO -bYe +gxm +gxm +gxm +gxm +gxm +gxm +gxm +gxm +gxm +gxm +gxm +gxm +hoT +tob +tob +hoT +tob +tob +hqm +hoT +tob +tob +tob +tob +hoT +vyh +hoT +tob +tob +fkK +muW +lGh +muW cbg aqG atb @@ -117209,42 +103930,42 @@ paa sXd gVq vOy -aMi -biB -apI -bYe -akU -bYe -xCX -vGk -vGk -csz -vzl -bvY -vGk -vGk -csz -vzl -csz -vGk -vGk -vGk -gYS -weU -vGk -csz -czu -czu -czu -czu -czu -czu -czu -czu -czu -czu -czu -czu +sLk +niF +cbg +muW +yiu +muW +rXF +jtU +jtU +vpf +ycM +tne +jtU +jtU +vpf +ycM +vpf +jtU +jtU +jtU +uBx +fLi +jtU +vpf +gxm +gxm +gxm +gxm +gxm +gxm +gxm +gxm +gxm +gxm +gxm +gxm aaa aaa aaa @@ -117267,9 +103988,9 @@ aaa aac aaf aaf -aKW -aLf -aSm +kyw +lfx +deq nsY nsY qxC @@ -117279,10 +104000,10 @@ nsY ntx nsY nsY -jFe -sxe -xZI -mNZ +qWL +kIk +eXD +kMr bdd bdd bdd @@ -117292,9 +104013,9 @@ bdd bdd bdd bdd -aLG -awb -aLG +fZE +iLm +fZE bdg bqZ beH @@ -117316,9 +104037,9 @@ bgO beH bqZ bdg -buH -hOR -buH +oSM +xub +oSM bdd bdd bdd @@ -117341,9 +104062,9 @@ nsY gLZ nsY nsY -oDf -uqH -yhQ +mgb +nhw +lyW aaf aaf ajY @@ -117367,7 +104088,7 @@ aaa aaa aaa aaa -lYA +gxm dxF dxF aaH @@ -117378,28 +104099,28 @@ aam aam aam aam -lYA -qsd -aap -aar -aar -aar -aar -aar -aar -aar -aar -aar -aar -aar -aar +gxm +hgk +tob +njn +njn +njn +njn +njn +njn +njn +njn +njn +njn +njn aej aej aej aej -iiC -amO -tHh +aej +gpT +lGh +cQF vOy vOy vOy @@ -117415,28 +104136,28 @@ vOy vOy vOy vOy -apv -akU -jHG -qVM -qVM -qVM -qVM -qVM -qVM -qVM -qVM -qVM -qVM -qVM -qVM -qVM -qVM -qVM -qVM -vGk -csz -czu +xac +yiu +vbU +nIN +nIN +nIN +nIN +nIN +nIN +nIN +nIN +nIN +nIN +nIN +nIN +nIN +nIN +nIN +nIN +jtU +vpf +gxm aeT aeT aeT @@ -117447,7 +104168,7 @@ aeT nnD aZF aZF -czu +gxm aaa aaa aaa @@ -117468,11 +104189,11 @@ aaa aaa aaa aad -aKW -aKW -aKW -aSm -aLf +kyw +kyw +kyw +deq +caq nsY tUS bNh @@ -117480,24 +104201,24 @@ wNl nGh fPp lqN -uoh +vlO nsY -xCN -pOB -hfk -aLf +xxG +smA +ktR +lfx bdd -gVm -kKL -gOm -hFX -dAO -cEG +dJI +jaf +kwc +ebp +mPR +osU vKe dYX -tBF -lBz -aLG +mzv +xhW +fZE bdg bqZ beH @@ -117519,17 +104240,17 @@ bgO beH bqZ bdg -buH -uXu -bFu +oSM +iOo +cVZ iUk -cIl -gkJ +cIx +fUC vKe -cum -mVZ -kTx -jIG +sDA +kWN +tln +bko bdd hTf wRO @@ -117544,11 +104265,11 @@ iQt uZo xmJ nsY -oed -oDf -yhQ -yhQ -yhQ +xbg +mgb +lyW +lyW +lyW ajZ aaa aaa @@ -117570,7 +104291,7 @@ aaa aaa aaa aaa -lYA +gxm dxF dxF aaH @@ -117581,28 +104302,28 @@ aam aam aam aam -lYA -abe -aap -aar -aIZ -aIZ -aIZ -aIZ -ajQ -aIZ -aIZ -aIZ -aIZ -ajQ +gxm +bLf +tob +njn +rWz +rWz +rWz +rWz +rCZ +rWz +rWz +rWz +rWz +rCZ aej aeO afG ags aej -ayT -amO -avj +lXl +lGh +bBH vOy elR xXh @@ -117618,28 +104339,28 @@ xXh xXh dMK vOy -ayT -akU -avj -qVM -nNA -ekO -nNA -qVM -iBt -iBt -iBt -iBt -aJM -iBt -iBt -iBt -iBt -aJM -qVM -vGk -xIb -czu +lXl +yiu +bBH +nIN +iIb +wui +iIb +nIN +rgL +rgL +rgL +rgL +lAW +rgL +rgL +rgL +rgL +lAW +nIN +jtU +nVE +gxm aeT aeT aeT @@ -117650,7 +104371,7 @@ aeT nnD aZF aZF -czu +gxm aaa aaa aaa @@ -117670,12 +104391,12 @@ aaa aaa aaa aaa -aKW -aKW -bPT -jiX -aSm -aLf +kyw +kyw +veq +deq +deq +lfx nsY kio sJY @@ -117685,22 +104406,22 @@ xTW oGP cnM nsY -nEA -lQu -lQu -aSm +kqB +txH +txH +deq bdd -iFG -iWE -jUo -iXd -iXd -wwk -hMJ +fva +lkL +mBO +cHB +cHB +hDV +vmP bdd -aLG -awb -aLG +fZE +iLm +fZE bdg bqZ bqZ @@ -117722,17 +104443,17 @@ bgO bqZ bqZ bdg -buH -hOR -buH +oSM +xub +oSM bdd -wLV -nza -mwz -mwz -mwz -ukA -jIG +oNP +tge +yjU +yjU +yjU +tEC +bko bdd gKB rsM @@ -117747,12 +104468,12 @@ pyc uMn ivz nsY -oed -oDf -oed -oed -yhQ -yhQ +xbg +mgb +xbg +xbg +lyW +lyW aaa aaa aaa @@ -117773,7 +104494,7 @@ aaa aaa aaa aaa -lYA +gxm dxF dxF aaH @@ -117784,28 +104505,28 @@ aam aam aam aam -lYA -ahk -aap -aar -aIZ -aIZ -aIZ -aIZ -aIZ -aIZ -aIZ -aIZ -aIZ -aIZ +gxm +rGz +tob +njn +rWz +rWz +rWz +rWz +rWz +rWz +rWz +rWz +rWz +rWz aej aeP agI aia yaz -bYe -ajt -avj +muW +qdJ +bBH vOy wWz vHO @@ -117821,28 +104542,28 @@ uXj rdt wTM vOy -ayT -aii -avj -ltK -vGk -hDv -ghW -qVM -iBt -iBt -iBt -iBt -iBt -iBt -iBt -iBt -iBt -iBt -qVM -vGk -lSD -czu +lXl +poD +bBH +aQx +xzh +sjM +oIn +nIN +rgL +rgL +rgL +rgL +rgL +rgL +rgL +rgL +rgL +rgL +nIN +jtU +bWg +gxm aeT aeT aeT @@ -117853,7 +104574,7 @@ aeT nnD aZF aZF -czu +gxm aaa aaa aaa @@ -117873,12 +104594,12 @@ aaa aaa aaa aaa -aKW -ygK -aLf -aLf -aLf -aLf +kyw +lHB +lfx +lfx +lfx +lfx heK kam axc @@ -117886,24 +104607,24 @@ juD twW vHh pvh -rgJ +sZs nsY -hhw -yfy -ugV -vUi +bwG +erL +scX +caq bdd -jEI -iXd -xzp -vEn +cDH +cHB +scN +vvw wmz -npS -qsa +rhy +rec bdg -aLG -aYO -bad +fZE +naa +onn bdd bdd bDQ @@ -117925,17 +104646,17 @@ bgO cab bdd bdd -bGe -bHL -buH +tmE +ter +oSM bdg -kxF -elX +jLS +xdP gAj -bHS -aLA -ldj -oMC +dBI +sMu +eYF +vMM bdd sOt cNX @@ -117950,12 +104671,12 @@ xuQ uPW kYv oDx -tbK -tbK -tbK -lNy -oed -yhQ +sAS +sAS +sAS +rCh +xbg +lyW aaa aaa aaa @@ -117976,39 +104697,39 @@ aaa aaa aaa aaa -lYA +gxm adj apk apk -lYA -lYA -lYA -lYA -lYA -lYA -lYA -lYA -abp -ach -aar -aIZ -aIZ -aIZ -aIZ -aIZ -aIZ -aIZ -aIZ -aIZ -aIZ +gxm +gxm +gxm +gxm +gxm +gxm +gxm +gxm +hqb +vsd +njn +rWz +rWz +rWz +rWz +rWz +rWz +rWz +rWz +rWz +rWz aej aeQ agK agu eup -bYe -ajt -avj +muW +qdJ +bBH vOy wWz uwZ @@ -118024,39 +104745,39 @@ coZ sNz wTM vOy -ayT -aii -avj -ltK -wYj -jhY -fqx -qVM -iBt -iBt -iBt -iBt -iBt -iBt -iBt -iBt -iBt -iBt -qVM -azH -fQK -czu -czu -czu -czu -czu -czu -czu -czu +lXl +poD +bBH +aQx +bcg +bkM +gYp +nIN +rgL +rgL +rgL +rgL +rgL +rgL +rgL +rgL +rgL +rgL +nIN +jZo +hQK +gxm +gxm +gxm +gxm +gxm +gxm +gxm +gxm asM asM mwR -czu +gxm aaa aaa aaa @@ -118076,14 +104797,14 @@ aaa aaa aaa aaa -aKW -jwD -aLf -uig -hhw -hhw +kyw +eqm +lfx +vvH +bwG +bwG nsY -wpz +gAP oEX irT tyb @@ -118091,23 +104812,23 @@ xxm qSK ieu nsY -sSe -aLf -qce -aSm +mZc +lfx +neH +deq bdd -gcw -xPR -nIW -uzb +xXW +gVu +ydO +krU wmz -idJ -qsa +vbI +rec bdg -beB -aYT -beB -beB +atH +iEM +atH +ppV bdd bqZ bgO @@ -118127,18 +104848,18 @@ gAj bgO bqZ bdd -bJz -bJz -bHT -bJz +eoy +brq +jnc +brq bdg -kxF -lad -thE -hIt +jLS +frb +kNX +mZf gAj -wlH -sGX +ngn +jUq bdd pEl roU @@ -118147,18 +104868,18 @@ uVh nsY kzK lFh -mus +jYc pVA mzV pML ivz nsY -jZO -oDf -oed -wlp -ndQ -yhQ +iZd +mgb +xbg +jPx +xQd +lyW aaa aaa aaa @@ -118179,39 +104900,39 @@ aaa aaa aaa aaa -lYA -aaG -aaG -aaI -abC -abC -abC -abC -abC -abC -abC -jUW -tgS -ady -aar -aIZ -aIZ -aIZ -aIZ -aIZ -aIZ -aIZ -aIZ -aIZ -aIZ +gxm +ojH +ojH +taV +ouf +ouf +ouf +ouf +ouf +ouf +ouf +aLc +wBI +hGG +njn +rWz +rWz +rWz +rWz +rWz +rWz +rWz +rWz +rWz +rWz aej aeR agK agu aej -pSL -amT -mIW +dfA +qdJ +qmW vOy wWz pEJ @@ -118227,39 +104948,39 @@ xQm tfH wTM vOy -aEK -aSv -ioX -ltK -nXF -vGk -bqG -qVM -iBt -iBt -iBt -iBt -iBt -iBt -iBt -iBt -iBt -iBt -qVM -aCX -tgS -uSL -asx -asx -asx -asx -asx -asx -asx -aLX -bbp -bbp -czu +piQ +poD +bBH +aQx +viv +xzh +syp +nIN +rgL +rgL +rgL +rgL +rgL +rgL +rgL +rgL +rgL +rgL +nIN +vmJ +elv +vRR +qXS +qXS +qXS +qXS +qXS +qXS +qXS +hXX +xDe +xDe +gxm aaa aaa aaa @@ -118279,14 +105000,14 @@ aaa aaa aaa aaa -aKW -cSK -aSm -aSm -bUc -nSN +kyw +htg +deq +deq +qCH +cXm nsY -xgS +hUz dbn qvC tyb @@ -118294,23 +105015,23 @@ uRM ipe ehR nsY -aLf -aLf -tRc -qEW +xEe +lfx +tdH +igw bdd -gGo -mLb -qmB -vpt -kQU -rdb -kQU +sgm +kEg +nFA +jkD +xgN +vgn +xgN bdg -aLG -aYO -aLG -aLG +fZE +naa +fZE +fZE bdg bqZ qMR @@ -118330,18 +105051,18 @@ tXb fOk bqZ bdg -buH -buH -bHL -buH +oSM +oSM +ter +oSM bdg -gKH -cgz -vyU -xGL -vkN -xDQ -bXc +vLg +loy +naK +mRq +xkB +qXO +eeh bdd pcO tJV @@ -118356,12 +105077,12 @@ sZH rjV ivz nsY -fuY -sZF -vjD -lFF -ndM -yhQ +qZy +jfS +bUH +ciB +soT +lyW aaa aaa aaa @@ -118382,39 +105103,39 @@ aaa aaa aaa aaa -lYA -aaG -aaG -aaI -abC -abC -abC -abC -abC -abC -abC -acg -bAF -ady -aar -aar -aar +gxm +ojH +ojH +taV +ouf +ouf +ouf +ouf +ouf +ouf +ouf +sdf +cRL +hGG +njn +njn +njn ahi -aar -aar -aar -aar +njn +njn +njn +njn uux -aar -aar +njn +njn aej aej agO aid aej -atL -akV -atL +cOe +vZI +gsJ vOy wWz uwZ @@ -118430,39 +105151,39 @@ vfP sNz wTM vOy -atL -akV -atL -qVM -qVM -nWc -qVM -qVM -qVM -qVM +cOe +vZI +gsJ +nIN +nIN +cyh +nIN +nIN +nIN +nIN nNX -qVM -qVM -qVM -qVM +nIN +nIN +nIN +nIN ayo -qVM -qVM -qVM -aEJ -bAF -aKB -asx -asx -asx -asx -asx -asx -asx -aLX -bbp -bbp -czu +nIN +nIN +nIN +vmJ +nzD +xDV +qXS +qXS +qXS +qXS +qXS +qXS +qXS +hXX +xDe +xDe +gxm aaa aaa aaa @@ -118482,12 +105203,12 @@ aaa aaa aaa aaa -aKW -aLf -aLf -xlD -bUc -vrB +kyw +lfx +lfx +yih +qCH +spT nsY nsY nsY @@ -118497,10 +105218,10 @@ nsY nsY nsY nsY -hhw -hhw -hhw -hhw +bwG +bwG +bwG +bwG bdd bdd bdd @@ -118510,10 +105231,10 @@ bdd bdd bdd bdd -hDL -aYO -aNO -aLG +tvl +naa +meQ +fZE bdg bqZ beH @@ -118533,10 +105254,10 @@ gAj beH bqZ bdg -buH -bHa -bHL -bIR +oSM +awE +ter +gvK bdd bdd bdd @@ -118559,12 +105280,12 @@ nsY nsY nsY nsY -gZG -xMh -ril -kRu -hXS -yhQ +ecj +bZf +lZI +faR +wxu +lyW aaa aaa aaa @@ -118585,39 +105306,39 @@ aaa aaa aaa aaa -lYA -aaG -aaG -aaI -abC -abC -abC -aaJ -abC -abC -abC -act -ajS -afq -lzW -buk -fgF -bYP -lBi -acH -cwd -bYy -tOd -adT -kqf -aeU -bUE -bYe -bYe -aaO -alp -aio -baB +gxm +ojH +ojH +taV +ouf +ouf +ouf +ptA +ouf +ouf +ouf +fTj +jOD +oOw +cPK +sPb +dlo +sAz +jZC +uyd +ito +cuN +cQW +lQa +sPb +gtg +ilq +aMy +aMy +wNC +hOn +sYU +xCs vOy wWz qxP @@ -118633,39 +105354,39 @@ gxP nMe wTM vOy -alp -aio -baB -aEV -bUE -bYe -nBW -bWP -tSc -spT -fHC -dHr -bYQ -cwd -lBi -qmt -ayG -saW -tMf -ajq -ajS -dGw -asx -asx -asx -aKJ -asx -asx -asx -aLX -bbp -bbp -czu +hOn +sYU +xCs +wNC +kin +oQI +laI +qwU +neZ +fpA +qUx +gUS +wrX +kMp +jkB +hlT +qNI +wrX +tqO +kdn +nyS +qec +qXS +qXS +qXS +jpn +qXS +qXS +qXS +hXX +xDe +xDe +gxm aaa aaa aaa @@ -118685,38 +105406,38 @@ aaa aaa aaa aaa -aKW -aLf -aSm -hhw -hhw -hhw -hhw -hhw -aLB -acF -heb -cqa -bBh -aMV -dRG -aMV -yiq -kLp -aMV -bBh -tCN -lDJ -tCN -tCN -yfw -tCN -bBh -aLG -aLG -aYO -aNO -aLG +kyw +lfx +deq +bwG +bwG +bwG +bwG +bwG +bwG +kUI +bFB +iPt +atH +sCg +hgs +sCg +osX +uCt +sCg +atH +eUf +pwx +eUf +eUf +rIP +eUf +atH +fZE +fZE +naa +meQ +fZE bdg bqZ beH @@ -118736,38 +105457,38 @@ beH beH bqZ bdg -buH -bHa -bHL -buH -buH -cbD -iZH -xkC -njL -njL -njL -njL -cbD -bUM -bUM -mYw -iAT -rdY -bUM -cbD -rGg -qtn -kJV -fiq -fiq -fiq -fiq -fiq -fiq -wlp -oDf -yhQ +oSM +awE +ter +oSM +oSM +brq +mdC +qWK +lyq +lyq +lyq +lyq +brq +eMI +eMI +gjg +bom +kiy +eMI +brq +cSP +cSH +svt +mJO +mJO +mJO +mJO +mJO +mJO +jPx +mgb +lyW aaa aaa aaa @@ -118788,39 +105509,39 @@ aaa aaa aaa aaa -lYA -lYA -lYA -lYA -lYA -lYA -lYA -lYA -lYA -lYA -lYA -aey -azY -azY -adi -atC -abx -acC -abx -abx -abx -adi -abx -acC -atC -abg -abg -abg -abg -acC -iWN -amO -dLE +gxm +gxm +gxm +gxm +gxm +gxm +gxm +gxm +gxm +gxm +gxm +dho +wVt +wVt +jlc +sVV +kbv +dTn +kbv +kbv +kbv +jlc +kbv +dTn +sVV +sVV +sVV +sVV +vnM +lLA +ejx +jIs +xLw vOy woh vgO @@ -118836,39 +105557,39 @@ vgO vgO xAe vOy -aIS -alq -wWk -chu -aZE -aZE -aZE -aZE -xwG -chu -aZE -cgI -abt -aZE -aZE -chu -aZE -xwG -cgI -agl -agN -ahH -czu -czu -czu -czu -czu -czu -czu -czu -czu -czu -czu +uAP +rgO +kak +nOp +cMz +cMz +cMz +cMz +cMz +gsC +cMz +qLg +aXD +cMz +cMz +gsC +cMz +bTY +qLg +iup +ryY +cnn +gxm +gxm +gxm +gxm +gxm +gxm +gxm +gxm +gxm +gxm +gxm aaa aaa aaa @@ -118888,38 +105609,38 @@ aaa aaa aaa aaa -aKW -aLa -aSm -hhw -nHF -nHF -nHF -cmE -aLB -nyG -iDN -tit -nFV -tBL -tBL -tBL -tBL -tBL -tBL -mRS -tBL -tBL -tBL -tBL -tBL -tBL -luz -tzf -tBL -fau -aNO -aLG +kyw +lfx +deq +bwG +ycl +ycl +ycl +jCg +bwG +eNL +pVr +oHs +osQ +tpR +tpR +tpR +tpR +tpR +tpR +osQ +tpR +tpR +tpR +tpR +tpR +tpR +osQ +wxp +tpR +baW +meQ +fZE bdg bqZ beH @@ -118939,38 +105660,38 @@ beH beH bqZ bdg -buH -bHa -wwu -buI -bFu -cbE -buI -buI -buI -buI -buI -buI -rpd -buI -buI -buI -buI -buI -buI -rpd -fkO -bHY -kro -bGb -uaa -uaa -uaa -oFM -fiq -fYc -uqH -yhQ +oSM +awE +jas +jhA +cVZ +qWx +jhA +jhA +jhA +jhA +jhA +jhA +qWx +jhA +jhA +jhA +jhA +jhA +jhA +qWx +ldW +mkx +eWv +mJO +plv +plv +plv +mbR +mJO +eBG +nhw +lyW aaa aaa aaa @@ -118998,32 +105719,32 @@ aag aag aag aag -lYA -bRK -aao -aiv -aaW -pjb -abM -iCe -cLp -cZZ -ccY -aJs -cdu -aaw -abl -jUs -abu -xaF -aaL -aJs -bYe -bYe -aaE -afD -kaA -anh +vHn +fbe +hoT +rpG +bGa +dVn +vwC +fbR +xMz +kMV +eON +gxn +vEV +xMz +sdv +xMO +wDg +xMz +lIY +gxn +aMy +kNV +wNC +wlr +xyp +mnf vOy vOy vOy @@ -119039,32 +105760,32 @@ vOy vOy vOy vOy -xFw -iTK -anh -aFF -cjo -bYe -kSN -aTQ -uGo -abl -wba -abu -aaw -wbj -aJs -cdu -ayH -uGo -eoT -aGR -pjb -aKC -xCX -vGk -hoX -czu +gPA +eWf +mnf +wNC +gVW +oQI +iaO +vUn +atJ +rCl +ePM +pzd +oWx +nNx +pMA +ncT +gHh +oWx +dbc +cNM +ofU +njk +rXF +jtU +vzB +woU aag aag aag @@ -119091,38 +105812,38 @@ aaa aaa aaa aaa -aKW -aLf -aSm -hhw -nHF -nHF -nHF -nHF -aLB -csl -gjn -jJs -bBh -aMM -aMM -aNG -bga -taA -aSr -bBh -gyC -wbh -bsX -bAa -bKE -eBj -bBh -aLG -aNO -aYT -aNO -bad +kyw +lfx +deq +bwG +ycl +ycl +ycl +ycl +bwG +xgk +oUi +tLZ +atH +xSx +xSx +fBi +tXo +mBa +pYh +atH +wMl +aAU +dkP +dsY +rwj +xZR +atH +fZE +meQ +iEM +meQ +onn bdd bDQ mng @@ -119142,38 +105863,38 @@ vUe kuw cab bdd -bGe -bHa -bHT -bHa -buH -cbD -bMt -bMt -bOv -bOX -jLK -vUU -cbD -ciU -rOj -bUd -bUF -clR -clR -cbD -dQs -sFh -guc -bGb -uaa -uaa -uaa -uaa -fiq -wlp -vfJ -yhQ +tmE +awE +jnc +awE +oSM +brq +gOS +gOS +sLX +bIj +jtZ +eLu +brq +xpl +exc +jCx +mqt +vno +vno +brq +wDG +ihI +fnc +mJO +plv +plv +plv +plv +mJO +jPx +enQ +lyW aaa aaa aaa @@ -119201,73 +105922,73 @@ aag aag aag aag -lYA -bTI -aap -aar -aar -aar -aar -aar -aar -aar -acG -abg -caF -aar -aar -wYZ -aar -aar +vHn +ggD +tob +cGd +njn +njn +njn +njn +njn +njn +hZE +sVV +oON +njn +njn +daI +njn +njn ael ael agQ aih ael -tnl -amO -anc -atC -apJ -apJ -aMl -apJ -apJ -apJ -apJ -apJ -apJ -apJ -aMl -apJ -apJ -atC -cnv -amO -lqJ -qVM -qVM -xeG -qVM -qVM -qVM -xeG -qVM -qVM -qVM -acG -abg -caF -qVM -qVM -qVM -qVM -qVM -qVM -qVM -csz -ofs -czu +hyT +lGh +iCg +cGO +cGO +cGO +rpV +cGO +cGO +cGO +cGO +cGO +kaO +cGO +rpV +cGO +cGO +cGO +cDP +lGh +tkd +nIN +nIN +rBD +nIN +nIN +nIN +rBD +nIN +nIN +nIN +mKi +sfT +hGV +nIN +nIN +nIN +nIN +nIN +nIN +mRU +vpf +tMU +woU aag aag aag @@ -119294,18 +106015,18 @@ aaa aaa aaa aaa -aKW -aLf -aSm -hhw -nHF -nHF -nHF -nHF +kyw +lfx +deq +bwG +ycl +ycl +ycl +ycl jUx -aLG -qmL -rZz +fZE +bBR +tup jeb jeb jeb @@ -119321,11 +106042,11 @@ mWy jeb jeb jeb -aLG -aNO -aYT -aNO -aLG +fZE +meQ +iEM +meQ +fZE bdg bqZ udi @@ -119345,11 +106066,11 @@ veu mDW bqZ bdg -buH -bHa -bHT -bHa -buH +oSM +awE +jnc +awE +oSM vra vra vra @@ -119365,18 +106086,18 @@ rJx vra vra vra -jJe -bHY -buH +uGf +mkx +oSM vfo -uaa -uaa -uaa -uaa -fiq -scI -gFG -yhQ +plv +plv +plv +plv +mJO +nEl +bhy +lyW aaa aaa aaa @@ -119404,73 +106125,73 @@ aag aag aag aag -lYA -qsd -aao -aao -aar -aIZ -aIZ -aIZ -aLC -aar -bWs -abg -caF -aar -rcW -sTB -jrV -qmr +vHn +hgk +hoT +hoT +njn +rWz +rWz +rWz +jXN +njn +xVe +sVV +mbx +njn +tXa +gJg +tSX +lzt ael afE agT -agT +dgI ael -cZm -akU -abg -atC -abg -abx -abx -abx -abg -abx -abx -abx -abg -abx -abx -abx -avD -atC -abg -amO -nQx -qVM -usi -csz -usi -qVM -xfh -vGk -vGk -adI -qVM -acG -abg -caF -qVM -iBt -iBt -iBt -fgo -qVM -aPX -vGk -vGk -czu +ogT +yiu +xIj +xIj +xIj +tsn +tsn +tsn +xIj +tsn +tsn +tsn +xIj +tsn +tsn +tsn +xIj +xIj +xIj +lGh +syO +nIN +aGm +gNo +aGm +nIN +uig +xzh +xzh +fje +nIN +aNO +sfT +hGV +nIN +rgL +rgL +rgL +laD +nIN +upS +jtU +jtU +woU aag aag aag @@ -119497,18 +106218,18 @@ aac aaf aaf aaf -aKW -aSm -aLf -hhw -nHF -nHF -nHF -nHF -aLB -dEC -aNO -qHl +kyw +deq +lfx +bwG +ycl +ycl +ycl +ycl +bwG +hiP +meQ +czN jeb vlX aNx @@ -119524,11 +106245,11 @@ xHp hmF vlX jeb -aNn -aNO -aYT -aNO -aLG +bMf +meQ +iEM +meQ +fZE bdg bqZ udi @@ -119548,11 +106269,11 @@ fIZ mDW bqZ bdg -buH -bHa -bHT -bHa -deH +oSM +awE +jnc +awE +eOx vra asX chf @@ -119568,18 +106289,18 @@ lpt mgF asX vra -tfw -bHY -sVf -bGb -uaa -uaa -uaa -uaa -fiq -scI -scg -yhQ +pHh +mkx +hNv +mJO +plv +plv +plv +plv +mJO +nEl +rxe +lyW aaf aaf aaf @@ -119607,73 +106328,73 @@ aag aag aag aag -lYA -lYA -aap -aap -aar -aIZ -aIZ -aIZ -aIZ -aar -acO -aJs -cbN -aar -lDK -aap -eXU -vFb +vHn +vHn +tob +tob +njn +rWz +rWz +rWz +rWz +njn +hHe +gxn +ioH +njn +jXk +cGR +wks +jFM ael afH agV ain ael -eGl -aii -anf -atC -apK -anf -apK -arf -auG -azb -azb -azb -auG -aDp -apK -cbr -apK -atC -cbr -amO -uGt -qVM -qVM -vGk -har -qVM -xHG -csz -vGk -xHG -qVM -aJd -aJs -cbN -qVM -iBt -iBt -iBt -iBt -qVM -pzQ -csz -czu -czu +cQC +poD +rjr +aMl +aMl +rjr +aMl +iSx +dUR +kaE +kaE +kaE +eRI +qvh +aMl +xXd +aMl +aMl +xXd +lGh +iMD +nIN +nIN +xzh +uVY +nIN +lbO +gNo +xzh +lbO +nIN +uRY +pMA +waJ +nIN +rgL +rgL +rgL +rgL +nIN +oNM +vpf +woU +woU aag aag aag @@ -119700,18 +106421,18 @@ aad aag aag aag -aKW -vPr -iiP -hhw -nHF -nHF -nHF -nHF -aLB -udF -aNO -nLZ +kyw +xkb +dAA +bwG +ycl +ycl +ycl +ycl +bwG +cVf +meQ +jTt jeb obE tdE @@ -119727,11 +106448,11 @@ xHp xwl rHf jeb -jgU -aNO -aYT -aNO -aLG +rrU +meQ +iEM +meQ +fZE bdg bqZ ngI @@ -119751,11 +106472,11 @@ xAt nNH bqZ bdg -buH -bHa -bHT -bHa -bKc +oSM +awE +jnc +awE +uNp vra bMq qUq @@ -119771,18 +106492,18 @@ lpt qYQ ptj vra -mEb -bHY -haT -bGb -uaa -uaa -uaa -uaa -fiq -wlp -oDf -yhQ +opV +mkx +xVY +mJO +plv +plv +plv +plv +mJO +jPx +mgb +lyW aag aag aag @@ -119811,38 +106532,38 @@ aag aag aag aag -lYA -aao -aao -aar -aIZ -aIZ -aIZ -aIZ +vHn +hoT +hoT +njn +rWz +rWz +rWz +rWz aba -pNQ -abx -hTy -aar -pJn -aao -aao -erz +aGA +kbv +fZo +njn +pKL +jsA +jsA +qTi ael afI agY -oxi +aiq xfm -als -ani -anc -mOi +xIj +qdJ +iCg mOi mOi mOi mOi mOi -auc +sOK +tAt auc hyE aqU @@ -119851,31 +106572,31 @@ aHq aHq aHq aHq -iWN -ajt -kGI -aPm -qVM -vGk -csz -xCX -vGk -vGk -vGk -csz -qVM -jSY -abx -hLO +sfz +qdJ +nZK +mOZ +nIN +xzh +gNo +aZv +xzh +xzh +xzh +gNo +nIN +mzs +aPT +xyB ceD -iBt -iBt -iBt -iBt -qVM -buD -csz -czu +rgL +rgL +rgL +rgL +nIN +isq +vpf +woU aag aag aag @@ -119903,18 +106624,18 @@ aad aag aag aag -aKW -aSm -eIA -hhw -hhw -hhw -hhw -hhw -aLB -dzF -dzF -dac +kyw +deq +qZK +bwG +bwG +bwG +bwG +bwG +bwG +dTd +dTd +div jeb vlX thA @@ -119930,11 +106651,11 @@ gAA fFD vlX jeb -kEb -aNO -aYT -aNO -aLG +wEK +meQ +iEM +meQ +fZE bdg bqZ beH @@ -119954,11 +106675,11 @@ beH beH bqZ bdg -buH -bHa -bHT -bHa -rKy +oSM +awE +jnc +awE +dNW vra asX drj @@ -119974,18 +106695,18 @@ cgo hQc asX vra -cwQ -vtB -tQo -bGb -fiq -fiq -fiq -fiq -fiq -wlp -bxX -yhQ +crc +goo +hAA +mJO +mJO +mJO +mJO +mJO +mJO +jPx +pgJ +lyW aag aag aag @@ -120014,71 +106735,71 @@ aag aag aag aag -lYA -aao -aap -aar -aIZ -aIZ -aIZ -aIZ -aar -acP -bUE -qFQ -aar -jBY -aap -aao -mYX +vHn +hoT +tob +njn +rWz +rWz +rWz +rWz +njn +mAF +ilq +pjj +njn +kCl +cGR +jsA +uqs ael afJ agY aiq -ajJ -aEX -ajt -aow +xfm +xIj +qdJ +xIj mOi -rCw -rCw -lin -oJR -tFe -asD +onU +onU +qwJ +cOV +imS +rxl xQV -avK +qQS aqU aCZ dgg xRk bti aHq -sDC -ajt -kGI -ejp -qVM -vGk -hoX -qVM -xHG -csz -vGk -csz -qVM -sah -bUE -cbO -qVM -iBt -iBt -iBt -iBt -qVM -oLw -vGk -czu +wvX +qdJ +nZK +olF +nIN +xzh +lZJ +nIN +lbO +gNo +xzh +vwj +nIN +gfN +efj +sxE +nIN +rgL +rgL +rgL +rgL +nIN +vpI +jtU +woU aag aag aag @@ -120106,18 +106827,18 @@ aad aag aag aag -aKW -uDB -aLf -hhw -nHF -nHF -nHF -cmE -aLB -enx -aQt -oQj +kyw +xwd +lfx +bwG +ycl +ycl +ycl +jCg +bwG +wBw +bZo +vsf jeb vlX tdE @@ -120133,11 +106854,11 @@ xHp xwl vlX jeb -pGM -aNO -aYT -aNO -bad +dQV +meQ +iEM +meQ +onn bdd bDQ lnm @@ -120157,11 +106878,11 @@ sCA bVw cab bdd -bGe -bHa -bHT -bHa -bIR +tmE +awE +jnc +awE +gvK vra asX qUq @@ -120177,18 +106898,18 @@ lpt qYQ asX vra -ojR -tki -lQQ -bGb -uaa -uaa -uaa -oFM -fiq -wlp -oDf -yhQ +lDk +dEK +oWN +mJO +plv +plv +plv +mbR +mJO +jPx +mgb +lyW aag aag aag @@ -120217,71 +106938,71 @@ aag aag aag aag -lYA -aap -cWA -aar -aIZ -aIZ -aIZ -aIZ -aar -acG -abx -caF -aar -ydr -aap -aao -mYX +vHn +tob +xLu +njn +rWz +rWz +rWz +rWz +njn +hZE +kbv +mbx +njn +ePz +cGR +jsA +uqs ael afK ahc air ael -isW -ajt -ali +sgH +qdJ +xIj mOi -wCT -sIf -isC -isC +vRA +oYZ +ezq +eXy tFe xQV -xQV -rNF +pax +tCC aqU qjF oqv iqd rUy cnS -iWN -ajt -nYv -qVM -qVM -vGk -pzQ -qVM -usi -vzl -vGk -csz -qVM -acG -abx -caF -qVM -iBt -iBt -iBt -iBt -qVM -vGk -csz -czu +sfz +qdJ +qTS +nIN +nIN +xzh +oIY +nIN +aGm +qoM +xzh +gNo +nIN +aDS +aPT +hGV +nIN +rgL +rgL +rgL +rgL +nIN +jtU +vpf +woU aag aag aag @@ -120309,18 +107030,18 @@ aad aag aag aag -aKW -aSm -aLf -hhw -nHF -nHF -nHF -nHF -aLB -ewo -aNO -jLv +kyw +deq +lfx +bwG +ycl +ycl +ycl +ycl +bwG +tQe +meQ +ktl jeb obE thA @@ -120336,11 +107057,11 @@ xHp diJ rHf jeb -aLG -aNO -aYT -aNO -aLG +fZE +meQ +iEM +meQ +fZE bCx bqZ cNf @@ -120360,11 +107081,11 @@ nuK dVe bqZ bCx -buH -bHa -rrV -bHa -buH +oSM +awE +vOZ +awE +oSM vra bMq drj @@ -120380,18 +107101,18 @@ lpt eBV ptj vra -fsH -bHY -pBn -bGb -uaa -uaa -uaa -uaa -fiq -scI -oed -yhQ +xzI +mkx +hdV +mJO +plv +plv +plv +plv +mJO +nEl +xbg +lyW aag aag aag @@ -120420,71 +107141,71 @@ aag aag aag aag -lYA -aap -amN -aar -aar -aar -aar -aar -aar -oPD -abx -lCz -aar -tAV -sTB -uck -wKn +vHn +tob +hUb +njn +njn +njn +njn +njn +njn +laM +kbv +nkH +njn +bVR +gJg +sPa +mSo ael afL ahe aij ael -abg -akU -abg +xIj +yiu +xIj mOi -kbH -kbH -pgH -jDV +mAs +mAs +flR +uMO tFe xVc xQV -eYz +vpH aqU gjB wDy aGN dxv cnS -cnv -ajt -bYe -xCX -csz -csz -dWm -qVM -qVM -qVM -xeG -qVM -qVM -oPD -abx -lCz -qVM -qVM -qVM -qVM -qVM -qVM -csz -csz -czu +cDP +qdJ +muW +aZv +gNo +gNo +pga +nIN +nIN +nIN +rBD +nIN +nIN +oIa +aPT +bqY +nIN +nIN +nIN +nIN +nIN +nIN +vpf +vpf +woU aag aag aag @@ -120507,23 +107228,23 @@ aKQ aaa aaa aab -aKW -aKW -aKW -aKW -aKW -aKW -aSm -aSm -hhw -nHF -nHF -nHF -nHF +kyw +kyw +kyw +kyw +kyw +kyw +deq +iGc +bwG +ycl +ycl +ycl +ycl cmC -aLG -aNO -uBw +fZE +meQ +hvz jeb vlX tdE @@ -120539,11 +107260,11 @@ xHp xwl vlX jeb -aLG -aNO -aYV -bai -bbg +fZE +meQ +cmL +czR +jzT bCy bDS cNf @@ -120563,11 +107284,11 @@ qnC dVe cac bCy -bzK -bHb -bHV -bHa -rbX +hQf +sTU +xLX +awE +hCf vra asX qUq @@ -120583,23 +107304,23 @@ lpt qYQ asX vra -pJJ -bHY -buH +wcD +mkx +oSM cnd -uaa -uaa -uaa -uaa -fiq -suT -oed -yhQ -yhQ -yhQ -yhQ -yhQ -yhQ +plv +plv +plv +plv +mJO +kLm +xbg +lyW +lyW +lyW +lyW +lyW +lyW aaa aab aaa @@ -120623,71 +107344,71 @@ aag aag aag aag -lYA -wFm -abe -aar -aIZ -aIZ -aIZ -aLC -aar -acG -abx -caF -aar -wYZ -aar -aar -aar +vHn +tJq +bLf +njn +rWz +rWz +rWz +jXN +njn +hZE +kbv +mbx +njn +daI +njn +njn +njn adO adO adO adO adO -lwm -akU -nQx +iWB +yiu +syO mOi mOi mOi mOi mOi mOi -asF -asG -iyH +mAe +mAe +mAe aqU jVE nTs pje pje cnT -xvh -fNC -cKY -qVM -qVM -qVM -qVM -qVM -xfh -xWF -vGk -yji -qVM -acG -abx -caF -qVM -iBt -iBt -iBt -fgo -qVM -lJg -csz -czu +trx +gnK +aNE +nIN +nIN +nIN +nIN +nIN +uig +hPL +xzh +dMj +nIN +aDS +aPT +hGV +nIN +rgL +rgL +rgL +laD +nIN +wUJ +vpf +woU aag aag aag @@ -120710,43 +107431,43 @@ aKQ aaa aaa aab -aKW -qxA -aSm -aSm -aSm -jiX -aSm -bPV -hhw -nHF -nHF -nHF -nHF -aLB -fTU -bbO -cmg +kyw +ety +deq +deq +deq +deq +deq +xJp +bwG +ycl +ycl +ycl +ycl +bwG +lFL +sNL +ygB jeb jeb hfa jwK wnY cLC -eGh +lyh rtA -uKv +esn nFK lEO xWd oSL jeb jeb -aLG -aNO -aYW -sLE -bbh +fZE +meQ +dAm +fEF +otC bdd bDT tHv @@ -120766,11 +107487,11 @@ iXb pzV cad bdd -oLT -iEb -bHW -bHa -buH +vMA +oYi +sIR +awE +oSM vra vra eUh @@ -120779,30 +107500,30 @@ lzq nyQ nhx eiq -teu +oEA wXH xBQ mSU wVy vra vra -cmd -cmh -wAR -aLB -uaa -uaa -uaa -uaa -fiq -scI -oed -sow -oDf -leh -vhI -tVB -yhQ +siy +wIX +aCu +mJO +plv +plv +plv +plv +mJO +nEl +xbg +jPU +mgb +cgU +oqI +iDk +lyW aaa aab aaa @@ -120826,71 +107547,71 @@ aag aag aag aag -lYA -aao -ahk -aar -aIZ -aIZ -aIZ -aIZ -aar -acO -aJs -arJ -aar -aao -aao -rOZ -dfP +vHn +hoT +rGz +njn +rWz +rWz +rWz +rWz +njn +hHe +gxn +gKd +njn +jsA +jsA +wET +gxk adO afM fpR ahf adO -wUz -aii -abg +oDm +poD +xIj +mOi +mzP +mzP +nkK +tqu aqU -sdl -mLE -bUx -mLE -tmK -avK -aug -avL +gpW +ofY +eQj aqU lyE rsO aGN rbB cnS -cbr -ajt -anc +xXd +qdJ +iCg aUH aXx jKI aXx -qVM -usi -csz -vGk -csz -qVM -acO -aJs -arJ -qVM -iBt -iBt -iBt -iBt -qVM -hkx -vGk -czu +nIN +aGm +gNo +xzh +gNo +nIN +lCL +pMA +gcm +nIN +rgL +rgL +rgL +rgL +nIN +uNz +jtU +woU aag aag aag @@ -120913,23 +107634,23 @@ aKQ aaa aaa aab -aKW -xxe -aLf -aLf -aLf -aLf -xPE -bPT -hhw -nHF -nHF -nHF -nHF -aLB -ahj -ahj -ahj +kyw +byt +lfx +lfx +lfx +lfx +txp +veq +bwG +ycl +ycl +ycl +ycl +bwG +bwP +bwP +bwP jeb tkN qHg @@ -120945,11 +107666,11 @@ gAA cGV tkN jeb -aWM -aNO -aYX -gjn -bbi +hjQ +meQ +fNd +oUi +qdV bdd bDU bqZ @@ -120969,11 +107690,11 @@ bqZ bqZ cae bdd -bGg -bHd -bHX -bHa -buH +huP +nbu +kcg +awE +oSM vra gNq hXb @@ -120989,23 +107710,23 @@ cgo skF gNq vra -ajX -ajX -ajX -aLB -uaa -uaa -uaa -uaa -fiq -wUS -tbK -sVi -tbK -tbK -bfc -oed -yhQ +fqA +fqA +fqA +mJO +plv +plv +plv +plv +mJO +rxq +sAS +cXX +sAS +sAS +nHG +xbg +lyW aaa aab aaa @@ -121029,71 +107750,71 @@ aag aag aag aag -lYA -aap -eGF -aar -aIZ -aIZ -aIZ -aIZ +vHn +tob +alh +njn +rWz +rWz +rWz +rWz bWh -jSY -abx -hTy -aar -lAj -aao -aao -xgE +hmj +kbv +fZo +njn +iSd +jsA +jsA +qbP adO afN ahh aiw ahG -bYe -ajt -abg -aqU -xbN -gfE -gfE -kpc -aqU -gjw -cnp -avM +muW +qdJ +xIj +mOi +mzP +mzP +cJv +xQV +mCx +qQS +tIu +uPI aqU wmK liJ pTj cnq cnS -iWN -aii -abg +sfz +poD +xIj aUH oyE mMP mMP -qVM -vGk -csz -vGk -csz -qVM -jSY -abx -hLO +nIN +xzh +gNo +xzh +gNo +nIN +mzs +aPT +xyB cix -iBt -iBt -iBt -iBt -qVM -lSD -vGk -czu +rgL +rgL +rgL +rgL +nIN +bWg +jtU +woU aag aag aag @@ -121116,23 +107837,23 @@ aKQ aaa aaa aab -aKW -aSm -aLf -aKW -aKW -aKW -aKW -aKW -aKW -aKW -aKW -aKW -aKW -aKW -wdb -ahj -ahj +kyw +deq +lfx +wDr +wDr +wDr +wDr +wDr +wDr +wDr +wDr +wDr +wDr +wDr +txE +bwP +bwP jeb aMx qHg @@ -121148,11 +107869,11 @@ xHp cGV nBa jeb -beB -beB -aYW -bzV -cBA +atH +atH +dAm +aCX +suH bdd beQ beQ @@ -121172,11 +107893,11 @@ beQ beQ beQ bdd -bRQ -cbS -bHW -bJz -bJz +oCb +wwv +sIR +brq +brq vra bMu hXb @@ -121192,23 +107913,23 @@ lpt skF pQF vra -ajX -ajX -hBC -yhQ -yhQ -yhQ -yhQ -yhQ -yhQ -yhQ -yhQ -yhQ -yhQ -yhQ -scI -oDf -yhQ +fqA +fqA +gzM +wDr +wDr +wDr +wDr +wDr +wDr +wDr +wDr +wDr +wDr +wDr +nEl +mgb +lyW aaa aab aaa @@ -121232,71 +107953,71 @@ aag aag aag aag -lYA -cIU -aao -aar -aIZ -aIZ -aIZ -aIZ -aar -acP -bUE -qFQ -aar -jkL -iaE -aao -mXa +vHn +btV +hoT +njn +rWz +rWz +rWz +rWz +njn +mAF +ilq +pjj +njn +xqh +svq +jsA +xGI adO afO ahh aiw adO -aEp -xTt -aEp -lmK -lmK -lmK -lmK -lmK -ntj -ntj -ntj -ntj -ntj +xIj +qdJ +xIj +ryn +ryn +ryn +ryn +ryn +mOi +xdA +qQS +uUB +aqU aHq cnH kzk cnR aHq -aEp -xTt -aEp +xIj +qdJ +xIj aUH sIA gSj aXA -qVM -vGk -csz -vGk -xHG -qVM -sah -bUE -cbO -qVM -iBt -iBt -iBt -iBt -qVM -toE -ofs -czu +nIN +xzh +gNo +xzh +lbO +nIN +gfN +efj +sxE +nIN +rgL +rgL +rgL +rgL +nIN +kUL +tMU +woU aag aag aag @@ -121319,23 +108040,23 @@ aKQ aaa aaa aab -aKW -bhC -aSm -aKW -bbB -bbB -arn -ajO -ajO -ajO -clC -ajO -ajO -cno -ahj -ahj -ahj +kyw +deq +iGc +wDr +mFL +mFL +iFp +wNz +wNz +wNz +oWE +wNz +wNz +suU +bwP +bwP +bwP jeb iow aMO @@ -121351,11 +108072,11 @@ xHp aUi iow jeb -aLG -aNO -aYY -bal -bbj +fZE +meQ +rTA +tAW +stR bCz bDV bGw @@ -121375,18 +108096,18 @@ bGw bGw bGw bCz -buH -iEb -bHW -bHa -vMx +oSM +oYi +sIR +awE +dnP vra wTw bNE wDJ ivs nyQ -gZr +vqI vWB bSK nyQ @@ -121395,23 +108116,23 @@ bUi bUT wTw vra -ajX -ajX -ajX -amS -aoc -aoc -uQU -aoc -aoc -aoc -aAv -eZi -eZi -yhQ -wlp -ftl -yhQ +fqA +fqA +fqA +dBg +aqL +aqL +buY +aqL +aqL +aqL +uWm +nRA +nRA +wDr +jPx +wdW +lyW aaa aab aaa @@ -121435,71 +108156,71 @@ aag aag aag aag -lYA -aap -aap -aar -aIZ -aIZ -aIZ -aIZ -aar -aJa -abg -ccf -aar -cRg -uaZ -aap -epK +vHn +tob +tob +njn +rWz +rWz +rWz +rWz +njn +xXT +sVV +tkR +njn +ugo +uTl +cGR +wnb adO jkj ahh aiw adO -uLu -anC -aiC +eMr +lGh +xIj ioU pvK qPE xqD -nYf -rEL -dnm -rEL -rxO -aHq +ioU +ntj +ntj +ntj +ntj +ntj cnE liJ hgB cbn aHq -uLu -aQo -aTS +eMr +gqz +shC aUd ckK iKM aHM -qVM -vGk -csz -yji -uso -qVM -aJa -abg -ccf -qVM -iBt -iBt -iBt -iBt -qVM -gKS -csz -czu +nIN +xzh +gNo +dMj +vNo +nIN +nme +sfT +vAH +nIN +rgL +rgL +rgL +rgL +nIN +edG +vpf +woU aag aag aag @@ -121522,23 +108243,23 @@ aKQ aaa aaa aab -aKW -aLf -aLF -aKW -bbB -bbB -arn -ajO -ajO -ajO -ajO -ajO -ajO -cno -ahj -ahj -ahj +kyw +lfx +gSH +wDr +mFL +mFL +iFp +wNz +wNz +wNz +wNz +wNz +wNz +suU +bwP +bwP +bwP aLT aLT aLT @@ -121554,11 +108275,11 @@ aQL aQL aQL aQL -pGM -aNO -aYW -sLE -aLG +dQV +meQ +dAm +fEF +fZE bCA bCA bdj @@ -121578,11 +108299,11 @@ bCA bdj bCA bCA -buH -iEb -bHW -bHa -bIR +oSM +oYi +sIR +awE +gvK bJC bJC bJC @@ -121598,23 +108319,23 @@ bSJ bSJ bSJ bSJ -ajX -ajX -ajX -amS -aoc -aoc -aoc -aoc -aoc -aoc -aAv -eZi -eZi -yhQ -scI -oDf -yhQ +fqA +fqA +fqA +dBg +aqL +aqL +aqL +aqL +aqL +aqL +uWm +nRA +nRA +wDr +nEl +mgb +lyW aaa aab aaa @@ -121638,71 +108359,71 @@ aag aag aag aag -lYA -aao -aao -aar -aar -aar -aar -aar -aar -eQi -atL -kOG -aar -aar -aar -tiM -aar -aar +vHn +hoT +hoT +njn +njn +njn +njn +njn +njn +ehL +kyr +chb +njn +njn +njn +eDe +njn +njn lFt ahh aiw adO -aSz -anG -aiC +ogT +yiu +xIj ioU qyZ wTd cmK -lFm -kXu -kXu -kXu -kXu +cyP +kSi +mmn +kSi +qyA kXu jHC liJ qmP uoH aHq -aiC -anC -aiC +xIj +lGh +xIj aUH dbv lII aWc -qVM -xeG -qVM -qVM -qVM -qVM -eQi -atL -pef -qVM -qVM -qVM -qVM -qVM -qVM -vGk -vGk -czu +nIN +rBD +nIN +nIN +nIN +nIN +tCx +ncG +tZg +nIN +nIN +nIN +nIN +nIN +nIN +jtU +jtU +woU aag aag aag @@ -121725,23 +108446,23 @@ aKQ aaa aaa aab -aKW -cmq -bPS -aKW -bbB -bbB -arn -ajO -ajO -ajO -ajO -ajO -ajO -cno -ahj -ahj -ahj +kyw +oif +nRN +wDr +mFL +mFL +iFp +wNz +wNz +wNz +wNz +wNz +wNz +suU +bwP +bwP +bwP aLT kaB vVb @@ -121757,11 +108478,11 @@ aQL mJP bSn aQL -vHs -ehH -aYZ -sLE -bAV +hEm +kti +eFa +fEF +exQ bCB bCB bCB @@ -121781,11 +108502,11 @@ bCB bCB bCB bCB -cbv -iEb -bHY -mru -syP +uuI +oYi +mkx +bIW +eMZ bJC jSp lAQ @@ -121801,23 +108522,23 @@ bSJ hII iJS bSJ -ajX -ajX -ajX -amS -aoc -aoc -aoc -aoc -aoc -aoc -aAv -eZi -eZi -yhQ -oYb -fxz -yhQ +fqA +fqA +fqA +dBg +aqL +aqL +aqL +aqL +aqL +aqL +uWm +nRA +nRA +wDr +xgS +svF +lyW aaa aab aaa @@ -121841,31 +108562,31 @@ aag aag aag aag -lYA -aao -aap -gXh -aao -aap -aap -ahg -aiv -lMM -abg -lCS -aiv -ahg -aap -aap -aao -rfg +vHn +hoT +tob +lso +hoT +tob +tob +hqm +rpG +cSa +aeA +sjz +hbl +qYz +cGR +cGR +jsA +cdZ aiw ahh aiw nph -aiC -ajF -aiC +xIj +poD +xIj ioU mSz nIG @@ -121881,31 +108602,31 @@ iKf aGN qrv aHq -cgJ -ajG -aiC -aGz +vcG +qdJ +xIj +amM ckd mQC aHM -xCX -vGk -vGk -aip -vzl -xCX -bWC -abg -sSR -xCX -weU -csz -gYS -vGk -vGk -csz -csz -czu +aZv +xzh +xzh +kya +qoM +aZv +wcm +lJY +guo +rXF +fLi +vpf +uBx +jtU +jtU +vpf +vpf +woU aag aag aag @@ -121928,23 +108649,23 @@ aKQ aaa aaa aab -aKW -rJb -yaG -aKW -bbC -aan -aan -aKW -aKW -aKW -aKW -aKW -aKW -aKW -aKW -aKW -hhw +kyw +vaV +qxJ +wDr +lFw +wWt +wWt +wDr +wDr +wDr +wDr +wDr +wDr +wDr +wDr +aLT +aLT aLT sXt aMQ @@ -121960,11 +108681,11 @@ aTw aUj kLk aQL -mTn -aiy -aYZ -sLE -bbk +npw +vzi +eFa +fEF +rbd bdk bdk bgR @@ -121984,11 +108705,11 @@ myJ eKI bdk bdk -bGh -iEb -bHY -njy -hkE +cxF +oYi +mkx +fic +kjW bJC ojF bNG @@ -122005,22 +108726,22 @@ bUU uDW bSJ bSJ -fiq -yhQ -yhQ -yhQ -yhQ -yhQ -yhQ -yhQ -yhQ -tGq -tGq -jjT -yhQ -trD -oDf -yhQ +ljv +wDr +wDr +wDr +wDr +wDr +wDr +wDr +wDr +fCg +fCg +geu +wDr +wtk +mgb +lyW aaa aab aaa @@ -122045,30 +108766,30 @@ aag aag aag abh -aar -aar -tiM -aar -aar -aar -aar -aar -bWE -aJs -mXU -aar -aar -aar -aar -aap -aar +cGd +cGd +moK +cGd +cGd +cGd +cGd +cGd +wYa +nBK +mzS +njn +njn +njn +njn +cGR +njn afP ahh aiw nph -aiC -anG -aiC +xIj +yiu +xIj ioU ioU ioU @@ -122084,30 +108805,30 @@ aGN aGN pSU aHq -czM -ajG -aiC -aGz +upW +qdJ +xIj +amM drk mQC mkG -qVM -oLw -qVM -qVM -qVM -qVM -bWE -aJs -mXU -qVM -qVM -qVM -qVM -qVM -xeG -qVM -qVM +nIN +qHT +nIN +nIN +nIN +nIN +nuM +uHr +xwX +mRU +mRU +mRU +mRU +mRU +gBs +mRU +mRU uOi aag aag @@ -122131,10 +108852,10 @@ aKQ aaa aaa aab -aKW -aLf -aaz -aKW +kyw +lfx +gUn +wDr bdY bdY bdY @@ -122145,8 +108866,8 @@ aaF aaF aaF aaF -aKW -hhw +wDr +aLT aLT aLT aLT @@ -122164,10 +108885,10 @@ aQL aQL aQL aQL -uQn -aYZ -sLE -bbl +uBj +eFa +fEF +wMB bdl bdl bdl @@ -122176,9 +108897,9 @@ bdl bdl bGo bGo -bPB +qjY pCr -bRR +jpD cpK cpK bdl @@ -122187,10 +108908,10 @@ bdl bdl bdl bdl -bGi -iEb -bHY -oyy +opd +oYi +mkx +jwP bJC bJC bJC @@ -122208,8 +108929,8 @@ bSJ bSJ bSJ bSJ -fiq -yhQ +ljv +wDr anm anm anm @@ -122220,10 +108941,10 @@ anm pfp pfp pfp -yhQ -scI -oed -yhQ +wDr +nEl +xbg +lyW aaa aab aaa @@ -122262,16 +108983,16 @@ aeA bbe aeA aeA -aar -aap -aar +njn +cGR +njn afQ aiw aiw nph -aiC -anG -aiC +xIj +yiu +xIj ioU lPO vJg @@ -122287,16 +109008,16 @@ eEo aGN rub aHq -cES -ajG -aiC -aGz +sgH +qdJ +xIj +amM eqB obC hcf -qVM -lau -qVM +nIN +nhN +nIN lJY lJY lFK @@ -122334,10 +109055,10 @@ aKQ aaa aaa aab -aKW -aSm -aLf -aKW +kyw +oxn +oxn +wDr bdY bdY bdY @@ -122348,8 +109069,8 @@ aaF aaF aaF aaF -aKW -hhw +wDr +aLT aLT bbY bdr @@ -122367,33 +109088,33 @@ brn aRT buM aQL -aLG -aYZ -sLE -bbl +fZE +eFa +fEF +wMB bdl bEr bEs bIs bdm rbY -gwD +eAG bOK bPD -nSj +bYa bPD jOk bNB -mCo +tiE xGo bYu nmK caf bdl -bGj -iEb -bHY -buH +oDU +oYi +mkx +oSM bJC cdT cfo @@ -122411,8 +109132,8 @@ clI clg clW bSJ -fiq -yhQ +ljv +wDr anm anm anm @@ -122423,10 +109144,10 @@ anm pfp pfp pfp -yhQ -wlp -oed -yhQ +wDr +cZI +xGT +lyW aaa aab aaa @@ -122465,16 +109186,16 @@ asA amF kmE aeA -aar -awJ -aar +njn +xzx +njn ahJ ahJ ahJ adO -aiC -ajF -aiC +xIj +poD +xIj ioU dnS viN @@ -122490,16 +109211,16 @@ aRi aGN qrv aHq -aOS -ajG -aiC +fsh +qdJ +xIj aUH aGz aGz aGz -qVM -hoX -qVM +nIN +lZJ +nIN lJY qbx dcp @@ -122537,10 +109258,10 @@ aKQ aaa aaa aab -aKW -bhC -aSm -aKW +emA +vIg +vIg +wDr bdY bdY bdY @@ -122551,8 +109272,8 @@ aaF aaF aaF aaF -aKW -hhw +wDr +aLT aLT bca aMC @@ -122570,10 +109291,10 @@ aQL aUY buN aQL -aLG -aYZ -sLE -bbl +fZE +eFa +fEF +wMB bdl bDX bCA @@ -122583,20 +109304,20 @@ rbY bEc bKA bCA -gJs +bQS bCA bKA bEc -mCo +tiE tjl rIH tUh cag bdl -bGk -iEb -bHY -buH +jDz +oYi +mkx +oSM bJC cdU bMy @@ -122614,8 +109335,8 @@ bSJ bVo clX bSJ -fiq -yhQ +ljv +wDr anm anm anm @@ -122626,10 +109347,10 @@ anm pfp pfp pfp -yhQ -scI -uqH -yhQ +wDr +cOo +rJf +tcO aaa aab aaa @@ -122661,23 +109382,23 @@ aeA aeC aeC aeC -tpt +cVb aeC aeC aeC vOh gUX ily -aar -tiM -aar -aWd -aWd -aWd -pji -aiC -ajF -aiC +njn +eDe +njn +aeC +aeC +aeC +mdm +xIj +poD +xIj ioU pPM qKz @@ -122693,23 +109414,23 @@ xNv iLO bUa aHq -aSz -anC -aiC -pji -aWd -aWd -aWd -qVM -xeG -qVM +ogT +lGh +xIj +mdm +vcE +vcE +vcE +nIN +rBD +nIN cBb xVS lJY vcE vcE vcE -oDO +iTd vcE vcE vcE @@ -122740,22 +109461,22 @@ aKQ aaa aaa aab -aKW -aSm -aLf -aKW -aKW -aKW -aKW -aKW -aKW -aKW -aKW -aKW -aKW -aKW -aKW -hhw +emA +gPS +gPS +wDr +wDr +wDr +wDr +wDr +wDr +wDr +wDr +wDr +wDr +wDr +wDr +aLT aLT aLT aLT @@ -122773,10 +109494,10 @@ aQL aQL aQL aQL -pGM -aYZ -sLE -bbm +dQV +eFa +fEF +fNH bdl bDY bCA @@ -122796,10 +109517,10 @@ jac bCA cah bdl -bGl -iEb -bHY -bIR +wPi +oYi +mkx +gvK bJC bJC bJC @@ -122817,22 +109538,22 @@ bSJ bSJ bSJ bSJ -fiq -yhQ -yhQ -yhQ -yhQ -yhQ -yhQ -yhQ -yhQ -yhQ -yhQ -yhQ -yhQ -wlp -oDf -yhQ +ljv +wDr +wDr +wDr +wDr +wDr +wDr +wDr +wDr +wDr +wDr +wDr +wDr +nGM +hIp +tcO aaa aab aaa @@ -122871,16 +109592,16 @@ aeC aeC ajs aeC -aGD -aWd -eTO -anR -anR -lNl -aFW -aSy -anH -aoB +mzS +aeC +oZI +fjo +fjo +opu +hlj +iso +ceV +nsH alL alL alL @@ -122896,16 +109617,16 @@ jvY alL alL alL -aSy -aoS -dZd -aFW -aIe -anR -anR -uWC -aHQ -apj +iso +ceV +nsH +hlj +nvz +ner +ner +vdR +uHr +nuM vcE kUV vcE @@ -122943,22 +109664,22 @@ aKQ aaa aaa aab -aKW -aSm -aLf -aLf -ycV -aLf -aSm -bbx -izU -gFs -yaG -bPV -aaz -bPT -eko -bPV +emA +jEM +ikT +owU +iTq +ikT +jEM +kjY +riB +fGi +qan +jkN +jUh +tIF +bCk +jkN aLT bco aMB @@ -122976,10 +109697,10 @@ brr aUZ buO aQL -aLG -aYZ -sLE -jJs +fZE +eFa +fEF +tLZ bdl bDZ bdj @@ -122996,13 +109717,13 @@ bmD mYv doP jac -isS +xxa cai bdl -bII -iEb -bHY -buH +tkg +oYi +mkx +oSM bJC cdV bMx @@ -123020,22 +109741,22 @@ clJ bVn clY bSJ -fiq -iFm -anb -anb -anb -kKX -uvs -ixP -fiq -kUt -hGZ -tbK -tbK -sQU -ebY -yhQ +ljv +dnZ +eHy +eHy +eHy +cyp +oaO +lWY +ljv +jiM +ere +lYg +lYg +sEu +lia +tcO aaa aab aaa @@ -123061,29 +109782,29 @@ aag aag abh acx -adQ +pMk ajs aeC wXh ayn atr -aeA +lMy aex ciw wXh aeC ydz ayb -aGC -tSw -agJ -aXE -aXE -agJ -aFV -hPK -aXE -akH +jxq +fbV +msS +asA +asA +msS +nZf +rho +jIs +emL jvY jvY jvY @@ -123099,29 +109820,29 @@ jvY jvY jvY jvY -aSB -iWd -elA -aFV -aGC -aXE -aXE -aGC -rph -agJ +gqI +iCT +qnH +nZf +ohi +yeH +yeH +ohi +oJK +qnX sSl kkx vcE kpo iMx tGi -lJY +cea bXe eyG kpo vcE kUV -mvH +xyL rRq uOi aag @@ -123146,22 +109867,22 @@ aKQ aaa aaa aab -aKW -aLF -bbx -bPS -ktP -aSm -aLf -aSm -ecM -enf -ecM -aSm -aLf -bbx -eko -lLV +emA +kJZ +kjY +fGB +snN +jEM +ikT +jEM +lty +eTD +lty +jEM +ikT +kjY +bCk +heO aLT bco bdr @@ -123179,17 +109900,17 @@ brr aRT buO aQL -aLG -aYZ -sLE -bkY +fZE +eFa +fEF +xpc bdl lOr lOr iwI -lOr bdl -bEt +bdl +reH bNP bmD bNP @@ -123202,10 +109923,10 @@ bYv tiE tiE bdl -rqw -iEb -bHY -buH +fJt +oYi +mkx +oSM bJC cdV cfo @@ -123223,22 +109944,22 @@ clJ clg clY bSJ -fiq -wUS -tbK -tbK -bfc -ant -glM -mUn -fiq -suT -oed -oed -oed -uim -qNy -yhQ +ljv +eaz +lYg +lYg +aqH +oxl +wac +mjy +ljv +ien +xhO +xhO +xhO +cmN +srl +tcO aaa aab aaa @@ -123263,30 +109984,30 @@ aah aah aah abi -acE -adZ +nGY +gyU ajk aeA asY ayQ atr -bbX +iDK atr ciD ngl aeA ajk aeA -aIe -aWd -kYP -aHQ -aHQ -apj -aFW -rFY -aVY -akI +fXO +aeC +pdo +nBK +nBK +wYa +hlj +giW +puP +tfF jvY arg atf @@ -123302,30 +110023,30 @@ jvY aMm aOq jvY -aDx -dsk -mLU -aFW -aGD -aHQ -aHQ -lKk -kKb -lNl +bgM +puP +tfF +hlj +xwX +uHr +uHr +ehm +nXG +qYd lJY xVS lJY ttS wEO faO -haM +cOd bXe deg wLu lJY xVS -fqg -uGa +kPH +knL uyC aah aah @@ -123349,22 +110070,22 @@ aKQ aaa aaa aab -aKW -aKW -aKW -aKW -aKW -uDB -aLf -aSm -uGw -uJl -ihn -aSm -aLf -aSm -aSm -eko +emA +emA +emA +emA +emA +sEg +ikT +jEM +ahL +bFl +nZW +jEM +ikT +jEM +jEM +bCk aLT bcZ bdr @@ -123382,16 +110103,16 @@ brs aRT bew aQL -beB -aYW -bzV -beB +atH +dAm +aCX +atH mCo -xfw -lBF +iwZ +jFy bKA -sbM -pWA +oNW +dmF pXV bNP bmD @@ -123402,13 +110123,13 @@ bmD lyk bOR eHa -opj +cmo xAB mCo -bJz -cbS -bHW -bJz +brq +wwv +sIR +brq bJC bKX cfo @@ -123426,22 +110147,22 @@ clK clg bVy bSJ -fiq -fiq -fiq -fiq -lra -ujA -fiq -fiq -fiq -jbb -uNW -yhQ -yhQ -yhQ -yhQ -yhQ +ljv +ljv +ljv +ljv +tWl +jer +ljv +ljv +ljv +jEA +hCq +tcO +tcO +tcO +tcO +tcO aaa aab aaa @@ -123466,30 +110187,30 @@ bdH bdH bdH abi -acT -adZ +dEJ +gyU ajk aeA atp ayR atr -eGb +iDK atr cji nqV aeA ajk ily -psm -jFX -psm -blb -aWd -aXT -pji -aEp -aEp -akJ +cMx +fVk +cMx +rjX +aeC +beN +mdm +lLt +qdJ +vCv jvY arh atm @@ -123505,30 +110226,30 @@ jvY nSG aOs jvY -aEp -ixC -aEp -pji -jFg -aWd -pCD -vuv -orm -vuv +lLt +poD +vCv +mdm +rmo +vcE +uul +yat +qLk +yat cBb xVS lJY hlX umh bXe -lxT +cOd tGi pfH wlF lJY xVS -fqg -mIA +kPH +qGU uyC bdH aaa @@ -123556,18 +110277,18 @@ aaa aaa aaa aaa -aKW -uAs -aLf -aSm -kOf -oIn -kOf -aSm -aLf -bzF -aSm -aLf +emA +tcm +ikT +jEM +uzv +tYr +uzv +jEM +ikT +hYf +jEM +ikT aLT bco bdr @@ -123585,10 +110306,10 @@ brr aRT buO aQL -aXS -aYZ -kfP -tBF +jpW +eFa +svw +mzv bmv bEg bGU @@ -123608,10 +110329,10 @@ bYw nDM bWL sSa -qLp -lYi -bIb -mHm +bRo +dOG +gKw +tgz bJC cdV cfo @@ -123629,18 +110350,18 @@ clJ clg clY bSJ -iGK -tbK -tbK -tbK -sQU -wUS -hGZ -tbK -tbK -sQU -oDf -yhQ +bXh +lYg +lYg +lYg +sEu +eaz +ere +lYg +lYg +sEu +gEh +tcO aaa aaa aaa @@ -123670,29 +110391,29 @@ aaa bdH abh acx -umR +gCB ajs aeC wXh ayn atr -aeA +rmG bXz ciw wXh aeC ajs qon -psm -tNT +cMx +gqx aep ggQ ggQ aME aep -aiB -ajN -akK +lLt +lGh +vCv jvY ari aoP @@ -123708,29 +110429,29 @@ axo atm aOr jvY -aiB -aWf -aiB +lLt +poD +vCv aep aME ggQ aME aep -vSg -vuv +dcX +yat dHe kUV vcE kpo iMx bXe -lJY +sZY mzF eyG kpo vcE kUV -pPF +bxA rRq uOi bdH @@ -123759,18 +110480,18 @@ aaa aaa aaa aaa -aKW -bPU -bPS -bbx -moh -iIY -bPW -xlD -aLf -aSm -aSm -aLf +emA +hyb +fGB +kjY +yia +ugZ +kcG +fBo +ikT +jEM +jEM +ikT aLT bco aMC @@ -123788,10 +110509,10 @@ brr aUY buO aQL -aLG -aYZ -sLE -jJs +fZE +eFa +fEF +tLZ mCo bEh bNQ @@ -123811,10 +110532,10 @@ bKA cXR cal mCo -pJJ -iEb -bHY -buH +wcD +oYi +mkx +oSM bJC cdV bMy @@ -123832,18 +110553,18 @@ clJ bVo clY bSJ -pNG -oed -oed -oed -oed -oDf -mOU -oDf -oed -oed -uFt -yhQ +tgm +xhO +xhO +xhO +xhO +gEh +sOD +gEh +xhO +xhO +tWp +tcO aaa aaa aaa @@ -123886,16 +110607,16 @@ aeC aeC ajs aeC -psm -xlX +cMx +qbw aep afj afk agM aep -alG -aYj -aoD +lLt +yiu +vCv jvY arj atm @@ -123911,16 +110632,16 @@ bzD atm aOs jvY -alG -anG -apd +lLt +yiu +vCv aep aHS afk sHo aep -sFR -vuv +cnm +yat vcE kUV vcE @@ -123962,18 +110683,18 @@ aaa aaa aaa aaa -aKW -aKW -aKW -aKW -aKW -aKW -aKW -aKW -aKW -aKW -ycV -ktP +emA +emA +emA +emA +emA +emA +emA +emA +emA +emA +iTq +snN aLT aLT aLT @@ -123991,10 +110712,10 @@ aQL aQL aQL aQL -aLG -aYZ -sLE -qFb +fZE +eFa +fEF +bNr bdl bEi bZr @@ -124014,10 +110735,10 @@ bKA cir bdl bdl -lgX -iEb -bHY -buH +sXC +oYi +mkx +oSM bJC bJC bJC @@ -124035,18 +110756,18 @@ bSJ bSJ bSJ bSJ -scI -oed -yhQ -yhQ -yhQ -yhQ -yhQ -yhQ -yhQ -yhQ -yhQ -yhQ +cZp +xhO +tcO +tcO +tcO +tcO +tcO +tcO +tcO +tcO +tcO +tcO aaa aaa aaa @@ -124082,23 +110803,23 @@ amH aeC aeC aeC -tpt +cVb aeC aeC aeC aeA ajk aeA -psm -xlX +cMx +qbw aep afk afk afk aep -alG -aYj -aoD +lLt +poD +vCv jvY ark atm @@ -124114,23 +110835,23 @@ axo atm thv jvY -alG -anG -apd +lLt +yiu +vCv aep afk aHl afk aep -kMq -vuv +rZZ +yat lJY itR kKR vcE vcE vcE -oDO +iTd vcE vcE vcE @@ -124174,9 +110895,9 @@ aaa aaa aaa aaa -wVb -eFH -hlz +emA +ikT +jEM aLT bcE aMB @@ -124194,10 +110915,10 @@ brt aUZ buS aQL -aLG -aYZ -sLE -jJs +fZE +eFa +fEF +tLZ bdl brp bZr @@ -124215,12 +110936,12 @@ bZr bNQ bNQ bNQ -ohl -hMs -cbw -iEb -bHY -buH +bGz +egD +oQn +oYi +mkx +oSM bJC cdX bMx @@ -124238,9 +110959,9 @@ clL bVn clZ bSJ -dGz -cAH -vTK +tgm +xhO +tcO aaa aaa aaa @@ -124292,16 +111013,16 @@ asA amF ohL aeA -psm -dmQ +cMx +oVo aep aep aep aep aep -alJ -aYj -aoD +umI +ddO +umI jvY alL atk @@ -124317,16 +111038,16 @@ jvY aAy alL jvY -alG -anG -apd +umI +juj +umI aep aep aep aep aep -cBi -vuv +lla +yat lJY ucw dcp @@ -124366,6 +111087,8 @@ aaa aab aaa aaa +bdH +bdH aaa aaa aaa @@ -124375,11 +111098,9 @@ aaa aaa aaa aaa -aaa -aaa -wVb -iDm -hlz +emA +qGC +jEM aLT bcE bdr @@ -124397,10 +111118,10 @@ brt bpC buS aQL -aNn -aYZ -sLE -jJs +bMf +eFa +fEF +tLZ bdl bEl wup @@ -124418,12 +111139,12 @@ bZr krN krN krN -llt -can -buH -iEb -bHY -buH +oqY +lde +oSM +oYi +mkx +oSM bJC cdX cfo @@ -124441,19 +111162,19 @@ clL clg clZ bSJ -xRE -ebO -vTK -aaa -aaa -aaa -aaa -aaa +xMm +pFr +tcO aaa aaa aaa aaa aaa +bdH +bdH +bdH +bdH +bdH aaa aaa aaa @@ -124495,16 +111216,16 @@ ntI aeA aeC puO -psm -xlX -egS +cMx +qbw +xnh aep aep aep aep -alG -aYj -aoD +sHI +jao +qhT jvY arl atm @@ -124520,16 +111241,16 @@ alL aMo aOt jvY -alG -anG -apf +sHI +lOn +wCe oIB -tSF -qyM -jog +jgr +cXz +rtc oIB -sFR -vuv +cnm +yat lJY uxC lJY @@ -124569,6 +111290,8 @@ aaa aab aaa aaa +bdH +bdH aaa aaa aaa @@ -124578,11 +111301,9 @@ aaa aaa aaa aaa -aaa -aaa -wVb -eFH -hlz +emA +ikT +jEM aLT abS bdr @@ -124600,10 +111321,10 @@ brs bpC abT aQL -beB -aYW -bzV -beB +atH +dAm +aCX +atH bdl buz bZr @@ -124621,12 +111342,12 @@ bZr ibc uly bNN -fXt -pky -cbv -cbS -bHW -bJz +vbR +eGq +uuI +wwv +sIR +brq bJC ack cfo @@ -124644,19 +111365,19 @@ clK clg acp bSJ -vMn -vuR -vTK -aaa -aaa -aaa -aaa -aaa +qKK +gEh +tcO aaa aaa aaa aaa aaa +bdH +bdH +bdH +bdH +bdH aaa aaa aaa @@ -124692,22 +111413,22 @@ atr aeC atr aeC -psm -psm -psm -psm -jFX -psm -psm -xlX -aeq -psm -psm -psm -psm -alG -aYj -aoD +cMx +cMx +cMx +cMx +mRI +cMx +cMx +qbw +rYU +cMx +cMx +cMx +cMx +sHI +jao +qhT jvY abF atm @@ -124723,22 +111444,22 @@ aIT atm aVF jvY -alG -aYD -uPI +sHI +aPC +pKH oIB -hJh -vMC -iUC +fXE +kaS +aiQ oIB -sFR -vuv -vuv -vuv -vuv -sdw -vuv -vuv +cnm +yat +yat +kNq +kNq +qDB +kNq +kNq vcE bXe vcE @@ -124772,6 +111493,8 @@ aaa aab aaa aaa +bdH +bdH aaa aaa aaa @@ -124781,11 +111504,9 @@ aaa aaa aaa aaa -aaa -aaa -wVb -hlz -eFH +emA +jEM +ikT aLT bcE aMC @@ -124803,10 +111524,10 @@ brt aUY buS aQL -aLG -aYZ -sLE -uBw +fZE +eFa +fEF +hvz bdl bEm bZr @@ -124826,10 +111547,10 @@ uys uys uys uys -iRr -iEb -bHY -buH +bfd +oYi +mkx +oSM bJC cdX bMy @@ -124847,19 +111568,19 @@ clL bVo clZ bSJ -bob -emG -vTK -aaa -aaa -aaa -aaa -aaa +hTU +lNk +tcO aaa aaa aaa aaa aaa +bdH +bdH +bdH +bdH +bdH aaa aaa aaa @@ -124895,22 +111616,22 @@ atr aeC atr aeC -psm -cnU -nGc -psm -cWI -psm -whc -xlX -dmQ -psm -dmQ -dmQ -psm -alK -ajP -aoD +cMx +jrC +jYa +cMx +wFX +cMx +kqa +qbw +oVo +cMx +oVo +oVo +cMx +nSw +qsG +qhT jvY jvY jvY @@ -124926,22 +111647,22 @@ jvY jvY jvY jvY -sUF -anG -apd +sjG +lOn +qhT oIB -ufS +wqr bZw -kaJ +xUV oIB -sFR -hPo -vuv -dnk -rCp -fbx -cEO -vuv +cnm +cjm +yat +toD +wDq +aPO +sNP +kNq vcE bXe vcE @@ -124986,9 +111707,9 @@ aaa aaa aaa aaa -wVb -qnP -jPf +emA +rIV +dYc aLT aLT aLT @@ -125006,10 +111727,10 @@ aQL aQL aQL aQL -bxx -byF -bzW -bxx +edn +qRd +gtH +edn bdl bpT bNN @@ -125027,12 +111748,12 @@ bZr bKA dyx eYr -iii +bUo uys -cbz -cbU -ccu -cbz +kKB +rsL +jts +kKB bJC bJC bJC @@ -125050,19 +111771,19 @@ bSJ bSJ bSJ bSJ -cJP -vuR -vTK -aaa -aaa -aaa -aaa -aaa +xsv +gEh +tcO aaa aaa aaa aaa aaa +bdH +bdH +bdH +bdH +bdH aaa aaa aaa @@ -125098,22 +111819,22 @@ atu azU aeC ldl -psm -xlX -nYh -psm -xuI -psm -miK -tXW -gfk -fBf -tXW -tXW -fBf -aTS -ajP -aoD +cMx +qbw +iAI +cMx +tvA +cMx +iml +fIK +kZc +wuS +fIK +fIK +wuS +tzF +qsG +qhT alL urM dBG @@ -125129,22 +111850,22 @@ jvY wjv fDG alL -alG -aYD -aTS +sHI +aPC +tzF qgK tEB -llD -gGl +uBM +dXo oIB -lBR -nVu -vuv -jvI -cxo -fbx -jnk -vuv +fME +kon +yat +swG +jei +aPO +hIX +kNq vcE pxJ swM @@ -125189,9 +111910,9 @@ aaa aaa aaa aaa -wVb -hlz -moE +emA +jEM +kDd aLT bdJ bds @@ -125209,14 +111930,14 @@ aQL bsS mqK aQL -aLG -aYZ -sLE -jJs +bqc +tcS +mww +sZe bdl bEp bCA -bCA +wlh cvb bmC nwG @@ -125230,12 +111951,12 @@ bmD bKA dyx hGN -ddN +pVx uys -ttM -iEb -ccv -bIS +wKm +ekM +aVM +wVm bJC cfp cgu @@ -125253,19 +111974,19 @@ bSJ clM clS bSJ -nOG -vuR -vTK -aaa -aaa -aaa -aaa -aaa +cZp +gEh +tcO aaa aaa aaa aaa aaa +bdH +bdH +bdH +bdH +bdH aaa aaa aaa @@ -125295,29 +112016,29 @@ aaa aad aag aag -pVZ -psm -psm -psm -jFX -psm -psm -sAA -nYh -psm -ano -psm -qhB -xlX -wCh -psm -dmQ -dmQ -psm -uBz -aYj -aoE -aqe +fTl +taw +taw +taw +mRI +taw +cMx +vPT +iAI +cMx +wTn +cMx +cLd +qbw +pTI +cMx +oVo +oVo +cMx +nWf +lOn +acQ +kwd amw anO arq @@ -125332,28 +112053,28 @@ arq anO qaV kwd -aSB -anG -mPX +acQ +lOn +qhT oIB wKF -fOh -diM +hzb +ltU oIB -fbx -cFA -vuv -joT -cxo -fbx -hlI -vuv -vuv -vuv -vuv -sdw -vuv -qMu +wSB +gAO +yat +bCR +jei +aPO +fJp +kNq +kNq +kNq +kNq +qDB +kNq +fVe aag aag afm @@ -125392,9 +112113,9 @@ aaa aaa aaa aaa -wVb -hlz -eFH +emA +jEM +ikT aLT beT bdr @@ -125412,19 +112133,19 @@ ihY bpC dnE aQL -kgr -aYW -bzV -beB +qfI +dpA +ggo +lhs bdl -ycp -ycp +tiE +tiE tPj -mnf -ycp +tiE +tiE bdl bdl -rtj +fnI agv bdl bdl @@ -125435,10 +112156,10 @@ uys uys uys uys -bJz -cbS -bJz -bHW +gyw +bFX +gyw +hza bJC bMA cfo @@ -125456,19 +112177,19 @@ clG clg bVq bSJ -njT -ydx -vTK -aaa -aaa -aaa -aaa -aaa +ien +dFL +tcO aaa aaa aaa aaa aaa +bdH +bdH +bdH +bdH +bdH aaa aaa aaa @@ -125498,65 +112219,65 @@ aaa aaa aad aag -pVZ -amJ -jXY -psm -ano -bjI -psm -cnY -nYh -psm -cWI -psm -adp -xlX -aeq -psm -dmQ -aeq -psm -jMK -ajR -aoG +fTl +vrZ +qlu +taw +wTn +kCu +cMx +sdd +iAI +cMx +wFX +cMx +nDH +qbw +rYU +cMx +oVo +rYU +cMx +nXV +qMI +rUN aqg -arr -atn +oOW atn atn atn +sAw anP aBh anP -atn -atn -atn +anP +iJs +dFN atn aOB aRj -aSC -aZH -iAB +rUN +hft +swn oIB -gqF -imW -qbh +phj +vEf +cNK oIB -fbx -cxo -iEs -fbx -fbx -fbx -cxo -cxo -iwh -cxo -cxo -fbx -cxo -qMu +xiW +mCg +ryJ +aPO +aPO +aPO +jei +jei +lYt +jei +jei +aPO +jei +fVe aag ajZ aaa @@ -125595,9 +112316,9 @@ aaa aaa aaa aaa -wVb -tAi -eFH +emA +sEg +ikT aLT aLT aLT @@ -125615,17 +112336,17 @@ aQL aQL aQL aQL -pGM -aYZ -sLE -jJs +oxe +tcS +mww +sZe bdl fKT bGy -bKA +kOW snM iqo -moY +bdl clV crD kLP @@ -125638,10 +112359,10 @@ sgc xCa bUy bdl -qYt -iEb -bHa -bIT +eTx +ekM +cJs +pOW bJC bJC bJC @@ -125659,9 +112380,9 @@ bSJ bSJ bSJ bSJ -nOG -cAH -vTK +cZp +xhO +tcO aaa aaa aaa @@ -125701,65 +112422,65 @@ aaa aaa aad aag -pVZ -amL -atz -psm -ouo -bjI -psm -jFX -psm -psm -xuI -psm -dmQ -xlX -dmQ -psm -cBB -irn -psm -rFY -ctC -aoQ +fTl +hjT +rWb +taw +oAK +kCu +cMx +fVk +cMx +cMx +tvA +cMx +oVo +qbw +oVo +cMx +iVz +rAS +cMx +sHI +lOn +acQ kwd -amA -atq -atq +eDT amx amx amx -atq +awy amx amx amx -atq -atq +amx +amx +mpZ +amx aoT kwd -rFY -ctC -gPF +acQ +tof +wCe oIB -kUb -rJg +cHC +dha pxj oIB -fbx -gHg -vuv -iTf -cxo -suk -chC -pTT -oLd -oLd -oLd -oyw -cxo -qMu +wSB +hYj +yat +fPF +jei +nNT +jwJ +mgX +nZG +nZG +nZG +xGm +jei +fVe aag ajZ aaa @@ -125798,9 +112519,9 @@ aaa aaa aaa aaa -wVb -hlz -eFH +emA +jEM +ikT aLT beT bdr @@ -125818,10 +112539,10 @@ mUx bpC dnE aQL -aLG -aYZ -sLE -jJs +bqc +tcS +mww +sZe bdl fgm bdj @@ -125841,10 +112562,10 @@ fYZ vYC noj hpS -pJJ -iEb -bHa -bIT +gyE +ekM +cJs +pOW bJC bMA cfo @@ -125862,9 +112583,9 @@ clH oFV bVq bSJ -fTx -lGr -vTK +vUJ +hCq +tcO aaa aaa aaa @@ -125904,46 +112625,46 @@ aaa aaa aad aag -pVZ -jXY -coG -hSu -xlX -dmQ -aDg -dmQ -tLM -xlX -xlX -hSu -xlX -xlX -dmQ -psm -psm -psm -psm -aEp -lIw -aoR +fTl +qlu +uKl +kiR +oxy +oQL +jsu +oQL +gqt +oxy +oxy +vTE +qbw +qbw +oVo +cMx +cMx +cMx +cMx +sHI +jao +qhT alO ars amx amx aqf +pzX amx amx -atq -amx amx amx amx +mpZ amx aOC alO -aEp -lIw -aEp +sHI +tof +qhT loP loP loP @@ -125952,17 +112673,17 @@ loP qej loP loP -vuv -hlI -fbx -xxJ -ybO -yal -tpK -qKF -kaN -gHg -qMu +kNq +fJp +aPO +wXl +dJe +unQ +nxe +tjH +tVn +oUx +fVe aag ajZ aaa @@ -126001,9 +112722,9 @@ aaa aaa aaa aaa -wVb -eFH -hlz +emA +ikT +jEM aLT beU bdv @@ -126021,13 +112742,13 @@ aQL bsW xvX aQL -aLG -txe -baq -jJs +bqc +noI +dJG +sZe bdl ntd -iVj +jCm eqb mLR hdE @@ -126044,10 +112765,10 @@ scH nzO kxL hpS -pJJ -vzu -vYi -bIT +gyE +nzt +jhs +pOW bJC cfq cgv @@ -126065,9 +112786,9 @@ bSJ clN clT bSJ -cJP -vuR -vTK +xsv +gEh +tcO aaa aaa aaa @@ -126107,46 +112828,46 @@ aaa aaa aad aag -pVZ -amP -atD -psm -xlX -aDz -aRV -cyE -xlX -dmQ -uRQ -psm -dmQ -xlX -dmQ -psm -ahn -aiz -psm -ndJ -anJ -aoS +fTl +wIu +wXJ +taw +oNK +kMa +qIa +iSB +oxy +oQL +hdy +cMx +oVo +qbw +oVo +cMx +oaP +jhQ +cMx +kYb +jao +qhT inw -amA +eDT amx amx -awy amx amx amx amx amx amx -atq +amx +aBo amx aoT inw -aiB -anJ -mnG +sHI +tof +nii loP iwB tOC @@ -126155,17 +112876,17 @@ vqL xBY qwo loP -xgL -nho -fbx -xxJ -hlI -eRe -eRe -eRe -kaN -cxo -qMu +ang +hqu +aPO +wXl +fJp +iCD +iCD +iCD +tVn +jei +fVe aag ajZ aaa @@ -126204,9 +112925,9 @@ aaa aaa aaa aaa -wVb -iDm -hlz +emA +qGC +jEM aLT aLT aLT @@ -126224,10 +112945,10 @@ aQL aQL aQL aQL -aLG -aYO -kBK -hyt +bqc +ubQ +fpM +bEk bdl tFS bdj @@ -126235,7 +112956,7 @@ bNs nwb mrM bdl -uWI +ycH pMJ xnI ayj @@ -126247,10 +112968,10 @@ jaR mJa wWP rsK -aGc -kkE -iEb -bIT +cBC +feo +ekM +pOW bJC bJC bJC @@ -126268,9 +112989,9 @@ bSJ bSJ bSJ bSJ -wGi -woG -vTK +goM +tfQ +tcO aaa aaa aaa @@ -126310,46 +113031,46 @@ aaf aaf aag aag -pVZ -psm -psm -psm -ano -aDF -bYg -cNc -xlX -dmQ -gyt -psm -rsY -xlX -dmQ -psm -dmQ -dmQ -psm -alG -aDZ -aoU -aqj -arw -anP -fOJ +fTl +taw +taw +taw +wTn +wOv +tuJ +iKV +oxy +oQL +oFr +cMx +xnX +qbw +oVo +cMx +oVo +oVo +cMx +sHI +jao +qhT +inw +eDT +amx +auB aqh sqo sqo aDh aDh mux -ayd -atq -atq +aya +aBo +amx wwJ inw -alG -aYj -apd +sHI +cNC +qhT loP joG sDu @@ -126358,17 +113079,17 @@ wSn xBY lKa loP -ejK -cxo -fbx -xxJ -vuv -oeL -cxo -hkm -hlw -pmk -qMu +fvo +jei +aPO +wXl +kNq +jcE +jei +lVR +pHD +dhp +fVe aag aag aaf @@ -126403,13 +113124,13 @@ aaa aaa aaa aaa -wVb -wVb -wVb -wVb -wVb -eFH -eFH +emA +emA +emA +emA +emA +ikT +ikT aLT vZb tnY @@ -126427,10 +113148,10 @@ aUZ uqA bES kcl -aLG -aYO -sou -bAX +bqc +ubQ +uPX +rHr bdl wIr aQy @@ -126450,10 +113171,10 @@ nPT bdl bdl bdl -dhU -vzq -iEb -bIT +jLg +uEO +ekM +pOW hNw wos bMC @@ -126471,13 +113192,13 @@ hcI hcI vPK bSJ -nOG -vuR -vTK -vTK -vTK -vTK -vTK +cZp +gEh +tcO +tcO +tcO +tcO +tcO aaa aaa aaa @@ -126513,46 +113234,46 @@ aag aag aag aag -pVZ -amQ -dmQ -hSu -xlX -aDF -jXY -dxC -xlX -aDz -mNW -psm -adp -xlX -wCh -psm -dmQ -dmQ -psm -ylJ -aDZ -aoD +fTl +hEr +oQL +kiR +oxy +wOv +qlu +qAG +oxy +kMa +gQu +cMx +nDH +qbw +pTI +cMx +oVo +oVo +cMx +nWf +jao +qhT inw qHM emn rdI alO -aqY -aqY +ptf +ptf aBi aDi alO aye -amx +aBo amx aBs inw -alG -aYj -apd +sHI +cNC +qhT loP kxo wSn @@ -126561,17 +113282,17 @@ kdi xBY kxo loP -sFF -cxo -fbx -xxJ -vuv -gUy -nho -oRj -hHU -cxo -qMu +nSk +jei +aPO +wXl +kNq +cke +hqu +oSR +fZI +jei +fVe aag aag aag @@ -126606,13 +113327,13 @@ aaa aaa aaa aaa -wVb -fTR -qaD -jeU -dHk -hlz -eFH +emA +hyb +kjY +kcG +tIF +jEM +ikT aWT aMH beV @@ -126630,9 +113351,9 @@ aSE aVf bES kcl -aLG -aZg -bar +bqc +sUk +slo bdl bdl bdl @@ -126647,16 +113368,16 @@ bdl bdl bdl bdl -cbo -gRn -cbo -cbo -gRn +reN +dEp +reN +htk +dEp bdl bdl -cbV -fpO -bIT +udf +iyC +pOW hNw sZq jZv @@ -126674,13 +113395,13 @@ aMI wGE erG ewO -bWb -cAH -luk -rQj -ngs -gai -vTK +sEu +xhO +ffx +jhK +srl +lWY +tcO aaa aaa aaa @@ -126716,28 +113437,28 @@ aag aag aag aag -pVZ -amQ -atG -psm -seO -aDF -amP -egB -xlX -aDF -igf -psm -atD -xlX -xlX -hSu -xlX -xlX -hSu -aWd -aDZ -nfp +fTl +hEr +xBS +taw +tTG +wOv +wIu +ydf +oxy +wOv +ixu +cMx +tNY +qbw +qbw +vTE +qbw +qbw +rWy +kGS +lOn +wCe alO alO alO @@ -126747,15 +113468,15 @@ axx amw anO aDj -inw +ptf aye -atq -atq +mpZ +amx aBs alO -alG -aDZ -aWd +sHI +tof +kGS fTF xBY xBY @@ -126764,17 +113485,17 @@ xBY xBY jGI loP -vuv -hlI -cHq -xxJ -vuv -vuv -vuv -vuv -kmK -cxo -qMu +kNq +fJp +nOx +wXl +kNq +kNq +kNq +kNq +pAV +jei +fVe aag aag aag @@ -126809,13 +113530,13 @@ aaa aaa aaa aaa -wVb -vjx -eFH -eFH -eFH -eFH -eFH +emA +jkN +ikT +ikT +ikT +ikT +ikT aLT aZf duV @@ -126833,33 +113554,33 @@ iIR aVf bES kcl -aLG -aYO -bZK -qic -xfc -bCH -vZA -bCH -bCH -uIp -bHm -bHm -bHm -wNm -bCH -bCH -bHm -bLS -bCH -lXF -bHm -bCH -bCH -qic -cbW -iEb -bIT +bqc +ubQ +kwi +lZM +rSR +xss +rLK +xss +xss +uHk +dXb +dXb +dXb +cTX +xss +xss +dXb +ndm +xss +iFY +dXb +xss +xss +lZM +kYl +ekM +pOW hNw sZq jZv @@ -126877,13 +113598,13 @@ jGR jGR oqu bSJ -vuR -vuR -vuR -vuR -vuR -cAH -vTK +gEh +gEh +gEh +gEh +gEh +xhO +tcO aaa aaa aaa @@ -126919,46 +113640,46 @@ aag aag aag aag -pVZ -amW -auo -psm -xlX -bkR -bYi -eJd -xlX -aDF -jXY -psm -jXY -xlX -dmQ -psm -dmQ -dmQ -akd -alG -aDZ -xrr +fTl +oqc +smw +taw +oxy +rgk +nUT +cnP +oxy +wOv +qlu +cMx +qbU +qbw +oVo +cMx +oVo +oVo +btb +sHI +lOn +qhT alO gKZ vTv auL alO axy -amA -atq +azh +aBk aoT -inw +ptf aye -atq -atq +mpZ +amx aBs alO -alJ -aYj -apd +uSk +cNC +qhT gdS wSn kXN @@ -126967,17 +113688,17 @@ odD xBY mOg oHx -fbx -oVP -fbx -gAt -tly -flE -flE -flE -xzo -cxo -qMu +aPO +iXB +aPO +gof +bVr +ivL +ivL +ivL +fVa +jei +fVe aag aag aag @@ -127012,9 +113733,9 @@ aaa aaa aaa aaa -wVb -ilZ -eFH +emA +fGi +ikT aLT aLT aLT @@ -127036,16 +113757,16 @@ chp aVf aQL aQL -beB -aYT -bzY -aLd -aLd -bvS -aLd -aLd -aLd -aLd +lhs +bww +tHF +cvx +cvx +bKJ +cvx +cvx +cvx +cvx vub vub vub @@ -127053,16 +113774,16 @@ owW vub vub vub -aLd -aLd -aLd -bvS -aLd -aLd -aLd -cbX -cbS -ccO +cvx +cvx +cvx +bKJ +cvx +cvx +cvx +xQz +bFX +pmd bJC bJC bMD @@ -127084,9 +113805,9 @@ bSJ bSJ bSJ bSJ -vuR -ydx -vTK +gEh +dFL +tcO aaa aaa aaa @@ -127122,65 +113843,65 @@ aag aag aag aag -pVZ -psm -psm -psm -ano -dmQ -dmQ -adE -xlX -wya -aiE -psm -jXY -xlX -aeq -psm -gIN -aiA -akd -alG -aDZ -xrr +fTl +taw +taw +taw +wTn +oQL +oQL +lUQ +oxy +tBU +iDs +cMx +qbU +qbw +rYU +cMx +pVh +mSl +btb +sHI +jao +qhT alO arz atq aoT alO aOG -azh -aBk -aoT +amA +kDH +aOB laQ -dZr -auB +arr +iav atc aOF alO -alG -aYj -apd +sHI +cNC +qhT gdS lBg dXd loP loP -eMh +xeU loP loP -vuv -kJG -fbx -okd -eYH -rav -eYH -eYH -wWL -cxo -qMu +kNq +hnt +aPO +wSx +gYI +wPa +gYI +gYI +rzk +jei +fVe aag aag aag @@ -127215,9 +113936,9 @@ aaa aaa aaa aaa -wVb -hlz -eFH +emA +jEM +ikT aLT bBg vPv @@ -127239,9 +113960,9 @@ brA aVf lQz aQL -aLG -aZi -aLG +bqc +qIf +bqc bbs cbh xYP @@ -127263,9 +113984,9 @@ tez gsm bCM bbr -buH -iEb -bIT +uPE +ekM +pOW bJC jht jZv @@ -127287,9 +114008,9 @@ qNd hzu hcI bSJ -cAH -cAH -vTK +xhO +xhO +tcO aaa aaa aaa @@ -127325,28 +114046,28 @@ aag aag aag aag -pVZ -dmQ -meS -aAe -xlX -dmQ -psm -psm -jFX -psm -psm -psm -igf -xlX -dmQ -psm -psm -psm -psm -alG -aDZ -xrr +fTl +oQL +mOE +gUG +oxy +oQL +cMx +cMx +fVk +cMx +cMx +cMx +uyQ +qbw +oVo +cMx +cMx +cMx +cMx +sHI +jao +qhT alO arz atq @@ -127355,16 +114076,16 @@ alO axA amA aBl -aOB +aoT aFl -aHt +arm aIU aMq aOG alO -alG -aDZ -apd +sHI +tof +qhT loP loP loP @@ -127374,16 +114095,16 @@ vyI lPB oHl jWh -vuv -sdw -vuv -vuv -vuv -vuv -vuv -ldN -gHg -qMu +yat +rXq +yat +yat +kNq +kNq +kNq +gGb +oUx +fVe aag aag aag @@ -127418,9 +114139,9 @@ aaa aaa aaa aaa -wVb -hlz -hlz +emA +jEM +jEM aLT nuN nuN @@ -127442,9 +114163,9 @@ bOG aVf iaq aQL -aLG -aZi -aLG +bqc +qIf +bqc bbs bKD vTS @@ -127466,9 +114187,9 @@ tez ccQ bCN bbr -buH -iEb -bIT +uPE +ekM +pOW bJC cjC jZv @@ -127490,9 +114211,9 @@ rYp oEo oEo bSJ -cAH -cea -vTK +xhO +lMO +tcO aaa aaa aaa @@ -127528,28 +114249,28 @@ aag aag aag aag -pVZ -xlX -xlX -aBa -xlX -dmQ -psm -eKD -nZF -wMm -psm -adp -dmQ -xlX -dmQ -qWT -lWh -aiE -psm -alG -aDZ -xrr +fTl +oxy +oxy +bCv +oxy +oQL +cMx +aOS +gNI +eTm +cMx +nDH +oVo +qbw +oVo +oDa +yfn +nkc +cMx +sHI +jao +qhT alO arz atq @@ -127565,9 +114286,9 @@ xBe xBe xBe xBe -alG -aDZ -apd +sHI +tof +qhT jWh eFK wGd @@ -127577,16 +114298,16 @@ hSk hSk uIv jWh -dCt -xhU -dsu -vuv -ozr -hWa -dCP -ldN -cxo -qMu +dnh +bct +iDa +yat +tiY +qAK +xGK +gGb +jei +fVe aag aag aag @@ -127621,9 +114342,9 @@ aaa aaa aaa aaa -wVb -rVo -hlz +emA +oPF +jEM aLT vug vug @@ -127645,9 +114366,9 @@ bRg aVf aQL aQL -fvK -aZi -aLG +ylN +qIf +bqc bbs ydM xYP @@ -127669,9 +114390,9 @@ tez ccQ cdn bbr -buH -iEb -bIT +uPE +ekM +pOW bJC bJC kGF @@ -127693,9 +114414,9 @@ yle wWX wWX bSJ -cAH -bpJ -vTK +xhO +xHa +tcO aaa aaa aaa @@ -127731,29 +114452,29 @@ aag aag aag aag -pVZ -ano -dmQ -aBg -dmQ -boZ -psm -eKD -oyo -wQx -psm -lhL -dmQ -xlX -dmQ -dmQ -dmQ -soQ -psm -alJ -aDZ -xrr -xnR +fTl +wTn +oQL +qmq +oQL +nXo +cMx +aOS +guP +mHT +cMx +kpL +oVo +qbw +oVo +oVo +oVo +iIU +cMx +uSk +jao +kGS +xHt arm ats auO @@ -127764,13 +114485,13 @@ auu aoT aFm xBe -cij -jRZ +aIV +qqr arH xBe -alG -aDZ -apd +sHI +tof +qhT vXd duF hSk @@ -127780,16 +114501,16 @@ hSk hSk uIv jWh -xrN -fbx -ije -vuv -cxo -wwD -oda -ldN -cOi -qMu +tFJ +wSB +uBG +yat +jei +ltm +oAT +gGb +cmV +fVe aag aag aag @@ -127824,9 +114545,9 @@ aaa aaa aaa aaa -wVb -qnP -uia +emA +rIV +nvI aLT iPS vAE @@ -127848,9 +114569,9 @@ jOi aVf bES kcl -aLG -aZi -aLG +bqc +qIf +bqc bbs dvs xYP @@ -127872,9 +114593,9 @@ tez ccQ bCM bbr -buH -iEb -bIT +uPE +ekM +pOW hNw sZq lef @@ -127896,9 +114617,9 @@ vSW scy kPJ bSJ -cAH -ubd -vTK +xhO +eeR +tcO aaa aaa aaa @@ -127934,28 +114655,28 @@ aag aag aag aag -pVZ -xlX -psm -psm -rzP -psm -psm -fnZ -xlX -xoh -ckB -afl -jUL -afl -afl -afl -afl -afl -wDR -alP -ajW -apc +fTl +oxy +cMx +cMx +orx +cMx +cMx +dtu +qbw +txf +ncx +whO +pJS +whO +whO +whO +whO +whO +bYL +dlT +qHD +qhT alO arA att @@ -127971,9 +114692,9 @@ azo aJg abR xBe -alG -aDZ -apf +sHI +tof +wCe jWh oih khE @@ -127983,16 +114704,16 @@ vyI kpQ vSE jWh -ppc -iYp -iZX -vuv -cxo -wwD -rku -ldN -cxo -qMu +dhA +iWn +mnB +yat +jei +ltm +ejj +gGb +jei +fVe aag aag aag @@ -128027,9 +114748,9 @@ aaa aaa aaa aaa -wVb -tAi -moE +emA +sEg +kDd aLT aLT aLT @@ -128051,9 +114772,9 @@ vfx aVf bES kcl -beB -byI -beB +lhs +uvh +lhs kFY jmK bDL @@ -128075,9 +114796,9 @@ tez ccQ bCN jhb -jiw -cbS -bHW +kAj +bFX +hza hNw sZq ltI @@ -128099,9 +114820,9 @@ bSJ bSJ bSJ bSJ -pUY -emG -vTK +qid +lNk +tcO aaa aaa aaa @@ -128137,33 +114858,33 @@ aag aag aag aag -pVZ -xlX -psm -nQg -szX -xyE -psm -eKD -pBW -xtD -psm -psm -psm -jFX -psm -psm -psm -psm -psm -ylJ -aDZ -apd -alO -alO -alO -alO -alO +fTl +oxy +cMx +cMH +qvF +lat +cMx +aOS +tlM +dan +cMx +cMx +cMx +fVk +cMx +cMx +cMx +cMx +cMx +nWf +cNC +qhT +wDM +wDM +wDM +wDM +wDM axD amA aBo @@ -128172,11 +114893,11 @@ anO nFX atv auV -ift +amE xBe -alG -aDZ -apd +sHI +tof +qhT jWh jWh uUz @@ -128186,16 +114907,16 @@ qbZ jWh jWh jWh -cDW -fbx -cXq -vuv -vJy -cxo -hkm -hlw -pmk -qMu +tFO +wSB +flD +yat +xQe +jei +lVR +pHD +dhp +fVe aag aag aag @@ -128230,9 +114951,9 @@ aaa aaa aaa aaa -wVb -wzg -eFH +emA +eTD +ikT aLT bBg vPv @@ -128254,9 +114975,9 @@ bRV bSe bES kcl -aLG -aZi -aLG +bqc +qIf +bqc bBd aPr bfl @@ -128278,9 +114999,9 @@ bSb bEa bFp bBd -buH -iEb -bIT +uPE +ekM +pOW hNw sZq lwJ @@ -128302,9 +115023,9 @@ mAV hzu hcI bSJ -jea -cAH -vTK +rqz +xhO +tcO aaa aaa aaa @@ -128340,17 +115061,17 @@ aag aag aag aag -pVZ -yeP -psm -jdQ -bMY -hfy -psm -eKD -nZF -xxT -psm +fTl +lmq +cMx +rBY +pTY +ueY +cMx +aOS +gNI +aPg +cMx uiG rTZ tfb @@ -128359,14 +115080,14 @@ tfb tfb tfb ptK -alG -aYj -apd -alO +sHI +cNC +qhT +wDM aOM aoW aty -alO +wDM axE amA aBp @@ -128375,11 +115096,11 @@ atc nFX atv auV -ift +amE xBe -alG -aYj -apd +sHI +cNC +qhT jWh xXa xXa @@ -128389,16 +115110,16 @@ cKL jbH rJh jWh -tyz -eZQ -fTi -vuv -tzi -cxo -oRj -cVs -cxo -qMu +pld +vhb +tie +yat +cfm +jei +oSR +grd +jei +fVe aag aag aag @@ -128433,9 +115154,9 @@ aaa aaa aaa aaa -wVb -jMi -eFH +emA +efP +ikT aLT cjc cjc @@ -128457,9 +115178,9 @@ csZ odB aQL aQL -aLG -aZg -tBF +bqc +sUk +ade bBe bFq bfm @@ -128481,9 +115202,9 @@ bCD bEb bFq bBe -bFu -fpO -bIT +hWD +iyC +pOW bJC bJC rbH @@ -128505,9 +115226,9 @@ yfm fXN fXN bSJ -vuR -cAH -vTK +gEh +xhO +tcO aaa aaa aaa @@ -128543,17 +115264,17 @@ aag aag aag aag -pVZ -xlX -psm -psm -psm -psm -psm -psm -jFX -psm -psm +fTl +oxy +cMx +cMx +cMx +cMx +cMx +cMx +fVk +cMx +cMx bNM wkX jhx @@ -128562,10 +115283,10 @@ jhx jhx dnH gpc -aWd -aYj -apd -alO +tzF +uez +qhT +wDM uto aoX auU @@ -128580,9 +115301,9 @@ nNY qKi abR xBe -alJ -ajR -aTS +uSk +wHr +tzF dEt soP pDr @@ -128592,16 +115313,16 @@ soP eoG uIv jWh -vuv -sdw -vuv -vuv -vuv -hlI -qiI -ldN -gHg -qMu +yat +rXq +yat +yat +kNq +fJp +ekz +gGb +oUx +fVe aag aag aag @@ -128636,9 +115357,9 @@ aaa aaa aaa aaa -wVb -pQG -eFH +emA +uzv +ikT aLT cjc cjc @@ -128651,7 +115372,7 @@ bwg bCP bdC aLT -bBg +pqK uAW pqK uAW @@ -128660,14 +115381,14 @@ vil bpC qZX aQL -kEb -aZi -bad +pjP +qIf +lfz bbs -cdp -cdp -cdp -cdp +oPH +oPH +oPH +oPH bbs bJf bJf @@ -128679,14 +115400,14 @@ dNt dNt dNt bbs -fJO -fJO -fJO -fJO +krA +krA +krA +krA bbs -nmD -iEb -twT +wMI +ekM +oHt bJC lbf cft @@ -128708,9 +115429,9 @@ yfm fXN fXN bSJ -cAH -ydx -vTK +xhO +dFL +tcO aaa aaa aaa @@ -128746,13 +115467,13 @@ aag aag aag aag -pVZ -ano -meS -cbA -aRG -bsF -psm +fTl +wTn +mOE +sWp +nUm +moL +taw mDJ owg xUA @@ -128765,10 +115486,10 @@ nwU owg owg ptK -wOh -ajP -apd -alO +sHI +tof +qhT +wDM aOQ fxI nLJ @@ -128779,13 +115500,13 @@ atq aDr aFu xBe -rwT -wdv +azp +qJf anV xBe -alG -aYj -apd +sHI +cNC +qhT jWh iqH khE @@ -128795,16 +115516,16 @@ ovi iat eim jWh -vuv -qFW -vuv -vuv -kDi -vSH -tly -hlw -cxo -qMu +kNq +spd +kNq +kNq +dVH +cAz +bVr +pHD +jei +fVe aag aag aag @@ -128839,9 +115560,9 @@ aaa aaa aaa aaa -wVb -fhA -eFH +emA +hfO +ikT aLT iPS vAE @@ -128854,7 +115575,7 @@ bwh uMl bdC dII -oLi +fZZ fZZ viS sXw @@ -128863,9 +115584,9 @@ vil bpC qDq kbc -aLG -aYO -aLG +bqc +ubQ +bqc bbs bdw bfo @@ -128887,9 +115608,9 @@ lJu bEd bFs bbs -buH -iEb -bIT +uPE +ekM +pOW fzq oXb cft @@ -128911,9 +115632,9 @@ gEo scy kPJ bSJ -vuR -ebO -vTK +gEh +pFr +tcO aaa aaa aaa @@ -128949,13 +115670,13 @@ aag aag aag aag -pVZ -xlX -xlX -ePs -xlX -xlX -hSu +fTl +oxy +oxy +tIN +oxy +oxy +kiR owg owg uKV @@ -128968,14 +115689,14 @@ eNi eNi eNi eNi -alG -aDZ -apf -alO +sHI +tof +wCe +wDM aOH aJf aMw -alO +wDM xsl aya atq @@ -128986,9 +115707,9 @@ xBe xBe xBe xBe -alG -aYj -wSk +sHI +cNC +xmP jWh jWh jlQ @@ -128998,16 +115719,16 @@ thV uWV uIv oSx -vuv -gHg -vuv -vuv -hlI -qiI -nho -cxo -trW -qMu +kNq +oUx +kNq +kNq +fJp +ekz +hqu +jei +qDS +fVe aag aag aag @@ -129042,9 +115763,9 @@ aaa aaa aaa aaa -wVb -vjx -eFH +emA +jkN +ikT aLT aLT aLT @@ -129057,7 +115778,7 @@ bxB uWY wEd jvp -izG +gBc gBc gBc gBc @@ -129066,9 +115787,9 @@ ngA koC koC xGE -aem -mUa -aLG +jno +fqw +bqc lgy ccb xYP @@ -129090,9 +115811,9 @@ rXk xYP jew laU -buH -jGN -bJb +uPE +dEL +rzy uCM lNw eFj @@ -129114,9 +115835,9 @@ bSJ bSJ bSJ bSJ -vuR -tAR -vTK +gEh +kMR +tcO aaa aaa aaa @@ -129152,13 +115873,13 @@ aah aag aag aag -pVZ -alT -iHF -voA -aRV -aRV -psm +fTl +pWw +hbE +cbc +qIa +qIa +taw ptK afX ptK @@ -129171,14 +115892,14 @@ olO wiG nWN eNi -alG -aYj -apd -alO -alO -alO -alO -alO +sHI +tof +qhT +wDM +wDM +wDM +wDM +wDM axI amA amx @@ -129189,9 +115910,9 @@ aJh arq ufx alR -alG -aYj -apf +sHI +cNC +wCe jWh hSk hSk @@ -129201,16 +115922,16 @@ upR fCL uIv vVw -lwi -cxo -iEs -cxo -fbx -fbx -fbx -kfX -qVU -qMu +iSV +jei +oYr +jei +aPO +aPO +aPO +gtQ +wiO +fVe aag aag aag @@ -129245,14 +115966,14 @@ aaa aaa aaa aaa -wVb -fTR -hlz -hlz -hlz -hlz -fTR -hlz +emA +hyb +jEM +jEM +jEM +jEM +hyb +jEM aLT cjc cjc @@ -129269,9 +115990,9 @@ jOx bpC qDq aQL -jKA -aYT -beB +nYR +bww +lhs lgy bsG xYP @@ -129293,9 +116014,9 @@ lJu xYP hLI laU -drt -rZF -bJz +gyw +uNQ +gyw bJC oXb cfo @@ -129312,14 +116033,14 @@ kPJ fXN fXN bSJ -rHs -ngs -vuR -cAH -cAH -cAH -fKl -vTK +enY +srl +gEh +xhO +xhO +xhO +jay +tcO aaa aaa aaa @@ -129355,13 +116076,13 @@ aaa aad aag aag -pVZ -anu -auD -tIU -nEG -jXY -psm +fTl +prX +oYs +odG +biC +qlu +taw bKm hsr mDJ @@ -129374,9 +116095,9 @@ ueG rPt jyE eNi -alG -aYj -apd +sHI +cNC +qhT hwC rcS amx @@ -129392,10 +116113,10 @@ aJi azs atq alR -alG -aYj -apd -jlQ +sHI +cNC +qhT +mDG tst uUe hSk @@ -129404,16 +116125,16 @@ pZK fCL uIv lFA -vuv -cxo -vuv -vuv -cxo -cxo -vqO -sXK -tbD -qMu +kNq +jei +kNq +kNq +jei +jei +gYU +oGi +dVR +fVe aag aag ajZ @@ -129448,14 +116169,14 @@ aaa aaa aaa aaa -wVb -wVb -wVb -wVb -wVb -hlz -eFH -hlz +emA +emA +emA +emA +emA +jEM +ikT +jEM aLT iPS vAE @@ -129463,7 +116184,7 @@ meY iPS vAE aLT -iPS +iMr wDK iMr wDK @@ -129472,9 +116193,9 @@ jOx bpC ksp aQL -aLG -bSY -aWR +bqc +wqO +wxD cau bCG cgE @@ -129494,11 +116215,11 @@ xYP jmK hcw cgE -hLI +yht blq -bIT -jHe -bIS +ddL +eZR +uPE bJC kIP cfo @@ -129515,14 +116236,14 @@ oer vSW scy bSJ -tSr -pUY -lGr -vTK -vTK -vTK -vTK -vTK +mCE +qid +hCq +tcO +tcO +tcO +tcO +tcO aaa aaa aaa @@ -129558,13 +116279,13 @@ aaa aad aag aag -pVZ -pVZ -pVZ -pVZ -pVZ -pVZ -pVZ +fTl +fTl +fTl +fTl +fTl +fTl +fTl qJx hsr mDJ @@ -129577,9 +116298,9 @@ iKD rPt rPt eNi -alG -aYj -apd +sHI +cNC +qhT alR amA atq @@ -129587,7 +116308,7 @@ swN alO alO cHc -azn +atq aDs alO alO @@ -129595,10 +116316,10 @@ aJj aMD atq alR -alG -aYj -apd -jlQ +sHI +cNC +qhT +mDG tZZ gLz hSk @@ -129607,16 +116328,16 @@ ovi fCL lYk bYn -qMu -qMu -qMu -qMu -qMu -qMu -qMu -qMu -qMu -qMu +fVe +fVe +fVe +fVe +fVe +fVe +fVe +fVe +fVe +fVe aag aag ajZ @@ -129655,10 +116376,10 @@ aaa aaa aaa aaa -wVb -rVo -eFH -hlz +emA +oPF +ikT +jEM aLT meY meY @@ -129666,7 +116387,7 @@ meY meY meY meY -aLT +aQL aQL aQL aQL @@ -129675,9 +116396,9 @@ pyl pDt aQL aQL -aLG -aYO -aLG +bqc +ubQ +bqc lgy ccN xYP @@ -129697,11 +116418,11 @@ wLm wLm lJu xYP -hLI +wbV laU -eUz -iEb -bIT +uPE +vuV +uPE bJC bJC vLA @@ -129718,10 +116439,10 @@ oer oer oer oer -ybr -vuR -ebO -vTK +uVp +gEh +pFr +tcO aaa aaa aaa @@ -129780,9 +116501,9 @@ eNi eNi gIh eNi -geH -aDZ -apd +hGb +tof +qhT alR amA atq @@ -129798,9 +116519,9 @@ amA ayl amx alR -alG -aYj -apd +sHI +cNC +qhT jWh jmQ vcu @@ -129858,18 +116579,18 @@ aaa aaa aaa aaa -wVb -cbZ -eFH -eFH -eFH -eFH -eFH -eFH -eFH -hlz -eFH -hlz +emA +wtn +ikT +ikT +ikT +ikT +ikT +ikT +ikT +jEM +ikT +jEM aQL qZX qZX @@ -129878,9 +116599,9 @@ jOx bpC qZX aQL -aLG -aYO -aLG +bqc +ubQ +bqc lgy ccb xYP @@ -129902,9 +116623,9 @@ rXk xYP jew laU -buH -iEb -bIT +uPE +vuV +uPE bJC lbf cfo @@ -129913,18 +116634,18 @@ lbf lbf lbf bJC -vuR -oyG -vuR -cAH -rDi -pXn -cAH -vuR -vuR -vuR -vuR -vTK +gEh +cmN +gEh +xhO +dzX +foS +xhO +gEh +gEh +gEh +gEh +tcO aaa aaa aaa @@ -129983,9 +116704,9 @@ aWb dyK vzK wYY -alG -aDZ -apd +sHI +tof +qhT alR amA atq @@ -130001,10 +116722,10 @@ aJl amx atq alR -alG -aYj -apd -jlQ +sHI +cNC +qhT +mDG snE sGL hSk @@ -130061,18 +116782,18 @@ aaa aaa aaa aaa -wVb -bbv -hJb -hlz -hlz -hlz -hlz -wZH -hlz -hlz -hlz -hlz +emA +pGj +uoj +jEM +jEM +jEM +jEM +fBo +jEM +jEM +jEM +jEM aQL qDq qDq @@ -130081,9 +116802,9 @@ jOx bpC qDq bTb -aLG -aYO -aLG +bqc +ubQ +bqc bbs ccd ccN @@ -130105,9 +116826,9 @@ lJu huK jeQ bbs -buH -iEb -bIT +uPE +vuV +uPE xSw oXb cfo @@ -130116,18 +116837,18 @@ oXb oXb oXb bJC -vuR -cAH -vuR -cAH -vuR -dcS -cAH -vuR -cAH -cAH -xZK -vTK +gEh +xhO +gEh +xhO +gEh +hWH +xhO +gEh +xhO +xhO +rhD +tcO aaa aaa aaa @@ -130186,9 +116907,9 @@ tii eJX sAC wYY -alG -aDZ -apd +sHI +tof +qhT alR amA amx @@ -130204,10 +116925,10 @@ aJk amx atq alR -alG -aYj -apd -jlQ +sHI +cNC +qhT +mDG tZZ cBj hSk @@ -130264,18 +116985,18 @@ aaa aaa aaa aaa -wVb -wVb -wVb -wVb -wVb -wVb -wVb -wVb -wVb -wVb -eFH -rdK +emA +emA +emA +emA +emA +emA +emA +emA +emA +emA +ikT +jEM aQL qDq qDq @@ -130284,33 +117005,33 @@ osA cHl cHl bTb -beB -aYT -beB +lhs +bww +lhs bbs cdp cdp jks cdp bbs -bJf -bJf -bJf -bJf +uXy +uXy +uXy +uXy xba -dNt -dNt -dNt -dNt +vDd +vDd +vDd +vDd bbs fJO fJO fJO fJO bbs -bJz -cbS -bHW +gyw +uNQ +gyw xSw ejo ejo @@ -130319,18 +117040,18 @@ oXb oXb oXb bJC -cAH -vuR -vuR -vTK -vTK -hTk -vTK -vTK -vTK -vTK -vTK -vTK +xhO +gEh +gEh +tcO +tcO +ucy +tcO +tcO +tcO +tcO +tcO +tcO aaa aaa aaa @@ -130389,9 +117110,9 @@ sjj fzP sAC wYY -alG -aYj -apd +sHI +cNC +qhT alR amA atq @@ -130407,9 +117128,9 @@ xEO xEO lnP alR -alG -aYj -apf +sHI +cNC +wCe jWh qLs qLs @@ -130476,9 +117197,9 @@ aaa aaa aaa aaa -wVb -iDm -fTR +emA +qGC +hyb aQL ksp ksp @@ -130487,33 +117208,33 @@ qDq qDq qDq bTb -aLG -aYO -aLG -bBh -aLG -aLG -aLG -aLG -byC -aLG -beB -aLG -aLG -bsT -buH -buH -bJz -buH -bSd -buH -buH -buH -buH -cbD -buH -iEb -bIT +bqc +ubQ +bqc +bqc +bqc +bqc +bqc +bqc +dYb +bqc +fpI +bqc +bqc +tGS +uPE +uPE +uuT +uPE +fRL +uPE +uPE +uPE +uPE +uPE +uPE +vuV +uPE xSw oXb oXb @@ -130522,10 +117243,10 @@ kIP qer kIP bJC -cAH -pFP -ebO -vTK +xhO +wYd +pFr +tcO aaa aaa aaa @@ -130592,9 +117313,9 @@ fcM uzE qsL nim -qhc -ajP -apd +noe +pqY +qhT alR amA atq @@ -130610,9 +117331,9 @@ iWR iWR kbx alR -alG -aYj -apd +sHI +cNC +qhT jWh jWh jlQ @@ -130679,44 +117400,44 @@ aaa aaa aaa aaa -wVb -eFH -hlz +emA +ikT +jEM aQL aQL aQL aQL ksp rou -rou +ksp aQL -aLG -aZl -tBF -sOm -tBF -aQt -bhn -aQt -aQt -aQt -crW -aQt -aQt -mji -buI -buI -bUz -buI -buI -buI -bCE -buI -bFu -cbE -bFu -bIl -bIX +bqc +qas +qUO +qUO +qUO +reu +fLf +reu +reu +reu +kkN +reu +reu +uTP +kEE +kEE +dCM +kEE +kEE +kEE +ulH +kEE +wzJ +wzJ +wzJ +nmH +xui bJC kIP qer @@ -130725,10 +117446,10 @@ bJC bJC bJC bJC -vuR -vuR -vuR -vTK +gEh +gEh +gEh +tcO aaa aaa aaa @@ -130795,9 +117516,9 @@ xlC gyO kTN eNi -alJ -aYj -apd +uSk +cNC +qhT alR amA atq @@ -130813,14 +117534,14 @@ xEO xEO aOV alR -alG -aYj -apd +sHI +cNC +qhT jWh -kUw -dod -eNv -rxV +wFQ +bop +vyI +jnp thV fCL uIv @@ -130882,56 +117603,56 @@ aaa aaa aaa aaa -wVb -eFH -hlz -hlz -gjN -hlz -rdK -rdK -rdK -rdK -rdK -tfl -aZm -aWR -buU -aWR -bjb -bal -bjb -bjb -aWR -bNX -aWR -aWR -bsV -buJ -buJ -bUG -buJ -bzK -bzK -bCF -bzK -buJ -cdZ -buJ -buJ -jMb +emA +ikT +jEM +jEM +hYf +jEM +oBr +oBr +oBr +oBr +oBr +ovQ +bqc +bqc +bqc +bqc +nci +mww +nci +nci +bqc +rVC +bqc +bqc +tGS +uPE +uPE +tIl +uPE +cJs +cJs +vuV +cJs +uPE +uPE +uPE +uPE +pqw bJC bJC bJC bJC bJC -cAH -cAH -cAH -vuR -cAH -wZT -vTK +xhO +xhO +xhO +gEh +xhO +xfq +tcO aaa aaa aaa @@ -130998,9 +117719,9 @@ oNb iFC qAA eNi -alG -aDZ -apd +sHI +tof +qhT alR arK atc @@ -131016,15 +117737,15 @@ aJq aMG aOW alR -alG -aYj -apd +sHI +cNC +qhT jWh -tZP -hSk -hSk +bXy +bop +vyI +vyI vyI -thV fCL uIv hSk @@ -131085,56 +117806,56 @@ aaa aaa aaa aaa -wVb -jmg -hlz -eFH -eFH -hlz -hlz -gwF -eFH -eFH -rdK -rdK -aZn -rdK -rdK -bCW -bEH -bHt -bJi -bKE -bKE -bkZ -bpX -bpX -bpX -bpX -bpX -bkZ -bWV -jkd -bYE -bZz -cav -bBa -haq -haq -lAA -haq -haq -cAH -cAH -cAH -cAH -cAH -cAH -cAH -cAH -cAH -ngs -vTK +emA +kAv +jEM +ikT +ikT +jEM +jEM +gCu +ikT +ikT +oBr +oBr +qPn +oBr +oBr +jxX +knl +pum +jAj +kKY +kKY +oJk +lNR +lNR +oJk +lNR +lNR +oJk +cNm +oGh +far +vDo +nnr +rKt +ljv +ljv +sUi +ljv +ljv +xhO +xhO +xhO +xhO +xhO +xhO +xhO +xhO +xhO +srl +tcO aaa aaa aaa @@ -131201,9 +117922,9 @@ eNi eNi eNi eNi -aEp -lIw -aEp +sHI +tof +qhT alO alO alO @@ -131219,14 +117940,14 @@ alO alO alO alO -aEp -lIw -aEp +sHI +cNC +qhT jWh -nDL -vyI +wFQ +bop vyI -wTJ +wKc thV uWV uIv @@ -131288,56 +118009,56 @@ aaa aaa aaa aaa -wVb -epA -wDm -hlz -hlz -hlz -hlz -gwF -hlz -hlz -rdK -aYc -hlz -hlz -rdK -rdK -aVl -bHu -aVl -bkZ -bkZ -bkZ -bpY -brw -bqf -buK -bvI -bkZ -bkZ -bkZ -aVl -bZA -aVl -haq -haq -cAH -vuR -cAH -cAH -vuR -vuR -vuR -cAH -cAH -cAH -cAH -vuR -sIV -hBU -vTK +emA +qFS +pPG +jEM +jEM +jEM +jEM +gCu +jEM +jEM +tXn +jEM +jEM +jEM +oBr +oBr +sqg +rPQ +sqg +oJk +oJk +oJk +oRW +mxT +pHc +eVE +jMy +oJk +oJk +oJk +sqg +mgu +sqg +ljv +ljv +xhO +gEh +xhO +xhO +gEh +gEh +gEh +xhO +xhO +xhO +xhO +gEh +aEr +keO +tcO aaa aaa aaa @@ -131404,9 +118125,9 @@ dWX owg owg ptK -aGD -aPb -apj +knU +oOZ +hdP aqq aPa eky @@ -131422,9 +118143,9 @@ eky eky aPa aqq -aGD -aPb -kff +knU +oOZ +doX jWh xXa xXa @@ -131491,56 +118212,56 @@ aaa aaa aaa aaa -wVb -pIk -bNT -wul -eFH -eFH -eFH -ybS -wul -hlz -hlz -hlz -hlz -eFH -eFH -rdK -bEU -bjl -bJj -bkZ -bmM -cEx -bpZ -brx -boH -jnf -hfO -bxo -byz -bkZ -bEV -bCI -ccW -haq -pFM -hzV -vuR -vuR -vuR -cAH -fXd -cAH -vuR -cAH -vuR -vuR -rgA -brX -mfI -vTK +emA +twp +iyE +ecb +ikT +ikT +ikT +ctp +ecb +jEM +jEM +jEM +jEM +ikT +ikT +oBr +fcS +gdJ +oyR +oJk +nHL +wfx +ijf +osI +qXk +fie +tRs +pqP +fqC +oJk +ppn +nAY +cjt +ljv +ceY +gIm +gEh +gEh +gEh +xhO +wra +xhO +gEh +xhO +gEh +gEh +sOD +eMx +xgr +tcO aaa aaa aaa @@ -131607,9 +118328,9 @@ keR jhx keR dwI -aTS -wqq -agJ +tzF +eIY +vER hal uYg nau @@ -131625,9 +118346,9 @@ uYg nau uYg hal -aGC -wqq -aTS +sVv +eIY +tzF mPh soP tWi @@ -131694,56 +118415,56 @@ aaa aaa aaa aaa -wVb -wVb -wVb -wVb -wVb -wVb -wVb -aUx -aVl -aVl -aVl -bxE -aVl -rdK -iDm -rdK -bEU -bjl -bJj -bkZ -bmN -boI -boI -brx -boH -jnf -shb -boI -byA -bkZ -bBc -bCI -ccW -haq -vuR -haq -aVl -bxE +emA +emA +emA +emA +emA +emA +emA +vgw +sqg +sqg +sqg +mpP +sqg +oBr +qGC +oBr +fcS +gdJ +oyR +oJk +uZF +xoj +xoj +osI +qXk +fie +pUj +xoj +sfV +oJk +pkA +nAY +cjt +ljv +gEh +ljv +sqg +mpP aep aep aep dKL -vTK -vTK -vTK -vTK -vTK -vTK -vTK -vTK +tcO +tcO +tcO +tcO +tcO +tcO +tcO +tcO aaa aaa aaa @@ -131810,9 +118531,9 @@ kPG kPG cVw ptK -aIe -anR -lNl +eJg +bkb +pvi aqq eky aNl @@ -131828,9 +118549,9 @@ eky aNl eky aqq -aIe -iYj -lNl +eJg +lqL +pvi jWh tim uWV @@ -131904,37 +118625,37 @@ aaa aad aag aag -aUx -pXj -btm -aVl -bxF -byJ -aVl -vsV -rdK -bEU -bjl -ccW -bKO -bvL -bvL -bvL -bPR -bRi -bSk -bvL -bvL -bvL -bKO -bEU -bCI -uVR -haq -mHR -aVl -ccx -bBm +vgw +wct +hqc +sqg +rwB +lKM +sqg +nSq +oBr +sKf +gdJ +cjt +pRZ +ish +ish +ish +kzC +jUl +wud +ish +ish +ish +pRZ +fcS +nAY +jOE +ljv +mPc +sqg +qEL +vmE ggQ afk afk @@ -132005,7 +118726,7 @@ bdH aac aag cuC -htb +blJ pfc ptK ptK @@ -132013,9 +118734,9 @@ ucp cIW ptK ptK -psm -dKm -psm +xga +kgV +xga aHe jlT exi @@ -132031,12 +118752,12 @@ eky ins wRP aHe -vuv -vuv -vuv +eZm +eZm +eZm jWh jWh -olk +sWC jWh jWh jWh @@ -132107,37 +118828,37 @@ aaa aad aag aag -aUx -pXj -btm -aVl -bxG -byK -aVl -hlz -rdK -wun -bht -pfh -pWf -bmP -pop -lJa -bPZ -bRj -bSl -smr -nel -bQu -bRu -bYI -pIf -bJk -haq -cAH -aVl -byQ -ccR +vgw +wct +hqc +sqg +eKy +wQA +sqg +jEM +oBr +uYn +jaM +oXM +kvf +rDy +uVc +bxN +cYN +nhr +vuD +skL +dTr +gfG +mkP +muQ +ojh +nxx +ljv +xhO +sqg +gEC +skC aWZ bLx bMJ @@ -132216,9 +118937,9 @@ gPc trB exy ptK -psm -psm -psm +fLl +fLl +fLl eky eky aNl @@ -132234,14 +118955,14 @@ eky aNl eky rqj -vuv -nfS -emx +eZm +jYm +aZI jWh -qCg -xjw -pfA -xAC +duz +hXG +htG +doU jWh lbB uIv @@ -132310,37 +119031,37 @@ aaa aae aah aah -aUx -uLN -btm -btm -bxH -byL -aVl -bxE -aVl -vWK -bjl -ccW -bKO -bqa -bqa -aaj -bQa -bRk -bSm -bvK -bUI -bqa -bKO -bEU -bCI -ccW -aVl -bxE -aVl -ccy -diF +vgw +utn +hqc +hqc +eqL +vxu +sqg +mpP +sqg +qWQ +gdJ +cjt +pRZ +wuB +wuB +qAs +dIH +nKP +uTV +sHx +vgv +wuB +pRZ +fcS +nAY +cjt +sqg +mpP +sqg +efC +yaF aep aep aep @@ -132419,9 +119140,9 @@ eet fcP pDh ptK -xlX -xlX -hSu +aqZ +aqZ +ptQ aMT aMT dPm @@ -132437,14 +119158,14 @@ okg dPm aMT aMT -iEs -cxo -cxo +hbp +mwP +mwP jWh -uUV -rsW -djN -fnQ +axR +mIP +tcZ +fWi jWh lbB cKL @@ -132513,37 +119234,37 @@ aaa aaa aaa aaa -aUx -btn -btm -btm -bxI -byM -aVl -nmb -aVl -brI -bjl -sPA -bkZ -bmR -boI -bqe -brx -tzz -jnf -ePY -bxr -byD -bkZ -bYK -bCI -oAd -aVl -fLX -aVl -byQ -ccS +vgw +noP +hqc +hqc +xNg +spH +sqg +aFe +sqg +scE +gdJ +acy +oJk +jRc +xoj +eKQ +osI +xrI +fie +fsR +lkV +quS +oJk +bcM +nAY +mFP +sqg +pCq +sqg +gEC +unx ggQ bLy bLy @@ -132622,9 +119343,9 @@ wxj lht rYv ptK -dmQ -jBB -psm +haO +pKB +fLl svf arV wZX @@ -132640,14 +119361,14 @@ eky wZX arV vUh -vuv -xct -cxo +eZm +xUy +mwP jWh -dkS -vba -naQ -fnQ +vpv +pgw +rmE +fWi jWh xPZ pcv @@ -132716,37 +119437,37 @@ aaa aaa aaa aaa -aUx -sXV -cWt -cWt -pFA -byN -bAf -bBq -bAf -bje -bhw -ccW -bkZ -bkZ -wie -boI -brx -bNZ -jnf -boI -gXq -bkZ -bkZ -hdg -bCJ -bEj -cce -cbH -cce -ccz -ccT +vgw +gOC +nou +nou +dQA +sKM +uuD +eYD +uuD +bSH +gLD +cjt +oJk +oJk +lwp +xoj +osI +rYh +fie +xoj +ehc +oJk +oJk +gNO +vTT +heS +uPP +hlH +uPP +wVA +hJg aWZ bLz bMK @@ -132825,10 +119546,10 @@ ptK afX ptK ptK -dmQ -psm -psm -qyH +haO +fLl +fLl +lDn arV wZX eky @@ -132842,10 +119563,10 @@ aDQ eky wZX arV -dtv -vuv -vuv -cxo +wkA +eZm +eZm +mwP jWh jWh kLc @@ -132889,21 +119610,21 @@ aaa aKQ aaa aaa -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aak +bdH +bdH +bdH +bdH +bdH +bdH +bdH +bdH +bdH +bdH +bdH +bdH +bdH +bdH aaa bdH aaa @@ -132923,33 +119644,33 @@ dKL aep aep aep -bkt -btm -fxu -bBp -fxu -bFc -bjl -bjd -gXY -bkZ -xlY -boI -brx -bNZ -jnf -boI -kqc -bkZ -tmA -bfs -bCI -cay -fxu -cbG -fxu -ccA -bZE +ikv +hqc +vZf +ykI +vZf +aEo +gdJ +trh +hgo +oJk +sVT +xoj +osI +rYh +fie +xoj +bmp +oJk +haD +jTB +nAY +iUm +vZf +bYF +vZf +fiQ +pgN aep aep aep @@ -133020,18 +119741,18 @@ bdH uMc bNM ofK -psm -kSd -dmQ -tZm -dmQ -xlX -hWU -dmQ -aeq -psm -aNe -hiN +fLl +uxl +haO +ebf +haO +aqZ +tot +haO +qqS +fLl +xrq +vVu arV wZX eky @@ -133045,18 +119766,18 @@ aHe eky wZX arV -fXM -aNe -vuv -ahb -cxo -nJy -boC -cxo -iwh -kfv -vGr -vuv +oIt +xrq +eZm +qHG +mwP +xQW +vJR +mwP +hkz +ckj +oaw +eZm lbB uIv pql @@ -133092,21 +119813,21 @@ aaa aKQ aaa aaa -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aak +bdH +bdH +bdH +bdH +bdH +bdH +bdH +bdH +bdH +bdH +bdH +bdH +bdH +bdH aaa aaa aaa @@ -133126,33 +119847,33 @@ dKL afk aWo aWZ -byg -byO -aVl -bxE -aVl -bFe -bjl -bjg -ccW -bKO -boI -boI -brx -tzz -jnf -boI -boI -bKO -bEU -bYM -cxe -caz -aVl -bxE -aVl -ccB -ccV +iyF +vrR +sqg +mpP +sqg +dYC +gdJ +elx +cjt +pRZ +xoj +xoj +osI +xrI +fie +xoj +xoj +pRZ +fcS +hMG +qQy +erF +sqg +mpP +sqg +fLu +hEw aWZ bLA afk @@ -133223,18 +119944,18 @@ bdH uMc bNM ofK -psm -kSd -dmQ -nwu -dmQ -xlX -rwb -dmQ -jXY -psm -atY -qkj +fLl +uxl +haO +uLG +haO +aqZ +pbo +haO +xLn +fLl +vlk +mKy aMT svl pzJ @@ -133248,18 +119969,18 @@ qDt pzJ sQO aMT -rWF -atY -vuv -woM -nqD -cxo -boC -cxo -qMf -wUN -jgC -vuv +wNS +vlk +eZm +oHg +uiK +mwP +vJR +mwP +jrB +eoK +xTG +eZm lbB uIv pql @@ -133295,21 +120016,21 @@ aaa aKQ aaa aaa -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aak +bdH +bdH +bdH +bdH +bdH +bdH +bdH +bdH +bdH +bdH +bdH +bdH +bdH +bdH aaa aaa aaa @@ -133329,33 +120050,33 @@ dKL aVo aWp aWZ -byh -byQ -aVl -hlz -rdK -bFf -aVp -ddj -sfU -fWT -bKT -bKT -ect -lrs -put -bKT -bKT -bWZ -kJC -mbn -mUZ -caA -haq -cAH -aVl -ccC -ccW +qAB +gEC +sqg +aIh +eTb +kkW +iwf +uFg +rEm +rnF +oFm +oFm +fVo +jUF +nxb +oFm +oFm +glH +vXo +gWu +xMl +lft +eTb +aIh +sqg +siN +cjt ggQ afk bML @@ -133426,21 +120147,21 @@ bdH uMc bNM rtd -hSu -xlX -xlX -xlX -xlX -xlX -aiE -dmQ -atD -psm -psm -vHl -aRp -jBX -akS +ptQ +aqZ +aqZ +aqZ +aqZ +aqZ +leM +haO +iYm +fLl +fLl +wRk +eky +wZX +vUh aHe oxU bsy @@ -133448,21 +120169,21 @@ oir gzw shh aHe -tKf -jBX -aRp -edx -vuv -vuv -myC -crP -cxo -fbx -fbx -fbx -fbx -fbx -iEs +svf +wZX +eky +wuk +eZm +eZm +bjt +eIN +mwP +ksw +ksw +ksw +ksw +ksw +hbp uWV uIv pql @@ -133498,21 +120219,21 @@ aaa aKQ aaa aaa -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aak +bdH +bdH +bdH +bdH +bdH +bdH +bdH +bdH +bdH +bdH +bdH +bdH +bdH +bdH aaa aaa aaa @@ -133532,33 +120253,33 @@ dKL afk afk ggQ -aAb -byR -aVl -eFH -rdK -bFg -bHv -bjg -bld -bkZ -boN -gUI -brC -bsZ -buQ -mOr -kFq -bkZ -bzP -bjg -gJq -caB -haq -vuR -aVl -ccD -ccX +pYS +ivS +sqg +ppM +eTb +hbs +xJV +elx +jnI +oJk +xef +dPQ +ams +eni +nri +gMd +toO +oJk +nYn +elx +mDL +fSF +eTb +ppM +sqg +lvh +iks aWZ bLC afk @@ -133627,19 +120348,19 @@ bdH bdH bdH cuC -htb +blJ pfc -psm -psm -psm -psm -pPz -xlX -xlX -xlX -xlX -xlX -hSu +fLl +fLl +fLl +fLl +rht +aqZ +aqZ +aqZ +aqZ +aqZ +ptQ qYG atM bGc @@ -133655,17 +120376,17 @@ atM bGc atK qYG -iEs -fbx -fbx -jaj -fbx -boC -hPg -vuv -vuv -vuv -vuv +hbp +ksw +ksw +rHB +ksw +vJR +rPq +eZm +eZm +eZm +eZm jAJ lAu bYn @@ -133701,21 +120422,21 @@ aaa aKQ aaa aaa -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aak +bdH +bdH +bdH +bdH +bdH +bdH +bdH +bdH +bdH +bdH +bdH +bdH +bdH +bdH aaa aaa aaa @@ -133735,33 +120456,33 @@ dKL dKL aep aep -byk -byQ -aVl -eFH -rdK -bhB -bhB -uEc -bKU -bhB -gir -bpX -bpX -bpX -bpX -bpX -gir -bhB -bXP -bjn -bhB -bhB -haq -mHR -aVl -ccE -bjd +mkL +gEC +sqg +ppM +eTb +hsy +hsy +baJ +kbw +hsy +ldc +lNR +lNR +lNR +lNR +lNR +ldc +hsy +foC +kph +hsy +hsy +eTb +eUe +sqg +wWl +trh aep aep dKL @@ -133833,16 +120554,16 @@ cuC bNM tgK tfb -skg -eaX -pVZ -pVZ -pVZ -pVZ -pVZ -pVZ -pVZ -pVZ +wuT +lMx +gJF +gJF +gJF +gJF +gJF +gJF +gJF +gJF aPw avu mhG @@ -133858,16 +120579,16 @@ dxK dPC aMU aPw -qMu -qMu -qMu -qMu -qMu -qMu -qMu -qMu -euY -iuw +wxy +wxy +wxy +wxy +wxy +wxy +wxy +wxy +jFY +qKY jHL wOK uIv @@ -133904,21 +120625,21 @@ aaa aKQ aaa aaa -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aak +bdH +bdH +bdH +bdH +bdH +bdH +bdH +bdH +bdH +bdH +bdH +bdH +bdH +bdH aaa aaa aaa @@ -133935,39 +120656,39 @@ aaa aaa aaa bdH -aUx -bvQ -bwj -byl -bzj -aVl -eFH -eFH -bhB -bfA -bLe -bKV -bhB -fEg -bOl -bOm -bRr -bXt -bUX -szm -bhB -bXQ -bLe -psp -bhB -cAH -vuR -aVl -bzj -cHO -cdr -cer -aUx +vgw +usZ +wpS +fZA +fEe +sqg +ppM +ppM +hsy +shL +uXk +mlF +hsy +ckZ +hmv +hmv +dTS +hmv +hmv +ckZ +hsy +tos +uXk +tkn +hsy +aIh +ppM +sqg +fEe +nqW +kfI +vFH +vgw aaa aaa aaa @@ -134036,8 +120757,8 @@ cuC riJ kHY uhM -uvk -xJn +kdv +lkm cuC aag aag @@ -134069,8 +120790,8 @@ aag aag aag bYn -tAh -bfe +dRs +uAl rDb qjV rID @@ -134107,21 +120828,21 @@ aaa aKQ aaa aaa -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aak +bdH +bdH +bdH +bdH +bdH +bdH +bdH +bdH +bdH +bdH +bdH +bdH +bdH +bdH aaa aaa aaa @@ -134138,39 +120859,39 @@ aaa aaa aaa bdH -aUx -aWr -aUx -aUx -aUx -aUx -hlz -hlz -bhB -bHy -bLe -bKV -bMB -bOc -plE -plE -plE -plE -plE -bxs -bMB -bXQ -bLe -bHy -bhB -kpX -lGr -aUx -aUx -aUx -aUx -aWr -aUx +vgw +ckW +vgw +vgw +vgw +vgw +aIh +aIh +hsy +wed +uXk +mlF +jWb +unZ +aPU +aPU +aPU +aPU +aPU +fbu +jWb +tos +uXk +wed +hsy +qBS +lib +vgw +vgw +vgw +vgw +ckW +vgw aaa aaa aaa @@ -134239,7 +120960,7 @@ cuC cuC umy iKZ -tiw +pnL cuC cuC mNX @@ -134273,7 +120994,7 @@ mNX qOk bYn bYn -qQL +cWE kHS rID bYn @@ -134310,10 +121031,10 @@ aaa aKQ aaa aaa -aab -aaa -aaa -aaa +aak +bdH +bdH +bdH bdH bdH bdH @@ -134346,29 +121067,29 @@ aah aag aag aag -wVb -iDm -eFH -bhB -ozi -bJF -bKW -bXR -bUJ -bTi -aut -aut -aut -xjC -fxW -bXl -bzU -bYO -bZD -bhB -vim -woG -vTK +nic +tmQ +ppM +hsy +txS +bVN +oGJ +xpZ +llK +mVr +mZL +mZL +mZL +gSa +coH +oTO +uqh +iAE +sct +hsy +iWa +fZR +nic aag aag aag @@ -134513,14 +121234,217 @@ aaa aKQ aaa aaa +aak +bdH +bdH +bdH +bdH +bdH +bdH +bdH +bdH +bdH +bdH +bdH +bdH +bdH +bdH +bdH +bdH +bdH +bdH +bdH +bdH +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +bdH +aad +aag +aag +nic +aIh +aIh +hsy +fCT +uXk +rae +jIV +pzM +mtZ +hmv +hmv +hmv +fQn +pzM +nac +xNf +uXk +slv +hsy +aIh +aIh +nic +aag +aag +ajZ +aaa +aaa +aaa +aaa +aaa +bdH +bdH +bdH +bdH +bdH +bdH +bdH +bdH +bdH +bdH +bdH +bdH +bdH +bdH +bdH +bdH +bdH +bdH +bdH +bdH +bdH +bdH +bdH +aaa +aaa +aaa +aaa +aaa aab aaa aaa +"} +(260,1,1) = {" +aaa +aaa +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa aaa bdH bdH bdH bdH +aad +cuC +vRu +ngU +ssU +cuC +ajZ +xVk +xVk +xVk +xVk +xVk +xVk +xVk +aad +aPw +aqJ +aBA +aqp +avu +eky +dPm +eky +aMU +aqJ +aBA +aqp +aPw +ajZ +xVk +xVk +xVk +xVk +xVk +xVk +xVk +aad +bYn +thV +uWV +uIv +bYn +ajZ +bdH +bdH +bdH +bdH +bdH +bdH +bdH +bdH +bdH +bdH +bdH +bdH +bdH +bdH +bdH +bdH +bdH +bdH +bdH +bdH +bdH +bdH +bdH +aaa +aaa +aaa +aab +aaa +aaa +aKQ +aaa +aaa +aak +bdH +bdH +bdH +bdH +bdH +bdH +bdH bdH bdH bdH @@ -134549,232 +121473,29 @@ bdH aad aag aag -wVb -hlz -hlz -bhB -bJQ -bLe -usw -bMF -blo -ktO -bUW -bMQ -bXr -lfQ -blo -bXm -bXS -bLe -bJR -bhB -cAH -cAH -vTK -aag -aag -ajZ -aaa -aaa -aaa -aaa -aaa -bdH -bdH -bdH -bdH -bdH -bdH -bdH -bdH -bdH -bdH -bdH -bdH -bdH -bdH -bdH -bdH -bdH -bdH -bdH -bdH -bdH -bdH -bdH -aaa -aaa -aaa -aaa -aaa -aab -aaa -aaa -"} -(260,1,1) = {" -aaa -aaa -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -bdH -bdH -bdH -bdH -aad -cuC -vRu -ngU -ssU -cuC -ajZ -xVk -xVk -xVk -xVk -xVk -xVk -xVk -aad -aPw -aqJ -aBA -aqp -avu -eky -dPm -eky -aMU -aqJ -aBA -aqp -aPw -ajZ -xVk -xVk -xVk -xVk -xVk -xVk -xVk -aad -bYn -thV -uWV -uIv -bYn -ajZ -bdH -bdH -bdH -bdH -bdH -bdH -bdH -bdH -bdH -bdH -bdH -bdH -bdH -bdH -bdH -bdH -bdH -bdH -bdH -bdH -bdH -bdH -bdH -aaa -aaa -aaa -aab -aaa -aaa -aKQ -aaa -aaa -aab -aaa -aaa -aaa -bdH -bdH -bdH -bdH -bdH -bdH -bdH -bdH -bdH -bdH -bdH -bdH -bdH -bdH -bdH -bdH -bdH -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -bdH -aad -aag -aag -wVb -eFH -eFH -bhB -bHz -bJI -bKW -bEn -rFu -pQq -bQe -bTl -bSt -buW -bUL -bXn -bzU -bYS -bJR -bhB -cAH -cAH -vTK +nic +ppM +ppM +hsy +igs +nCn +oGJ +uSW +kzO +vaZ +kYL +hmv +sCV +rjO +suY +pdK +uqh +pJr +slv +hsy +aIh +aIh +nic aag aag ajZ @@ -134919,10 +121640,10 @@ aaa aKQ aaa aaa -aab -aaa -aaa -aaa +aak +bdH +bdH +bdH bdH bdH bdH @@ -134955,29 +121676,29 @@ bdH aad aag aag -wVb -hlz -eFH -bhB -bhB -hxp -bKV -bLe -laj -xjC -ktO -bPd -lfQ -ddK -qXx -bLe -bXQ -bJR -bhB -bhB -vuR -mHR -vTK +nic +aIh +ppM +hsy +hsy +wTB +mlF +uXk +hmw +gSa +mtZ +hmv +fQn +wSV +ulp +uXk +tos +slv +hsy +hsy +ppM +eUe +nic aag aag ajZ @@ -135122,10 +121843,10 @@ aaa aKQ aaa aaa -aab -aaa -aaa -aaa +aak +bdH +bdH +bdH bdH bdH bdH @@ -135158,29 +121879,29 @@ bdH aad aag aag -wVb -hlz -hlz -hlz -bhB -bYV -bKV -bhB -bOh -lfQ -ktO -bOk -lfQ -ktO -bnc -bhB -bXU -bYV -bhB -jcK -cAH -cAH -vTK +nic +aIh +aIh +aIh +hsy +ygP +mlF +hsy +hcX +fQn +mtZ +hmv +fQn +mtZ +hmv +hsy +beL +ygP +hsy +cWb +aIh +aIh +nic aag aag ajZ @@ -135266,8 +121987,8 @@ xVk xVk aad jbq -jXW -jcZ +kRg +uRs aDO qqu eky @@ -135275,8 +121996,8 @@ aNl eky dFk aDO -nzI -jXW +nPY +kRg jbq ajZ xVk @@ -135325,10 +122046,10 @@ aaa aKQ aaa aaa -aab -aaa -aaa -aaa +aak +bdH +bdH +bdH bdH bdH bdH @@ -135361,29 +122082,29 @@ bdH aad aag aag -wVb -eFH -eFH -eFH -bhB -bJK -bLc -bhB -bUY -lfQ -brJ -plE -buW -ktO -bMW -bhB -bXV -bJK -bhB -rbp -vuR -rbp -vTK +nic +ppM +ppM +ppM +hsy +ylh +opH +hsy +pvI +fQn +qoR +aPU +rjO +mtZ +njS +hsy +iEw +ylh +hsy +dDT +ppM +dDT +nic aag aag ajZ @@ -135469,8 +122190,8 @@ xVk xVk aad jbq -qtR -jWC +hBL +dID eky eky nJu @@ -135478,8 +122199,8 @@ aNl eky eky eky -aDc -qtR +etn +hBL jbq ajZ xVk @@ -135564,29 +122285,29 @@ bdH aad aag aag -wVb -wVb -rVo -hlz -bhB -bJK -bKV -bhB -bXu -boU -rFu -blo -riQ -okz -bMV -bhB -bXQ -bJK -bhB -kpX -emG -vTK -vTK +nic +nic +wsw +aIh +hsy +ylh +mlF +hsy +hmv +eZp +kzO +pzM +hip +ptZ +hmv +hsy +tos +ylh +hsy +qBS +piJ +nic +nic aag aag ajZ @@ -135673,7 +122394,7 @@ xVk eJQ aPw aHe -dnJ +mRQ eky eky eky @@ -135681,7 +122402,7 @@ aNl eky eky eky -hfw +biJ aHe aPw eJQ @@ -135730,9 +122451,9 @@ aaa aaa aKQ aaa -aaa -aab -aaa +bdH +aak +bdH bdH bdH bdH @@ -135768,27 +122489,27 @@ aad aag aag aag -wVb -qnP -uia -bhB -bhB -blm -bhB -bhB -bOi -xcp -kkO -gzr -kXK -bhB -bhB -bzX -bhB -bhB -ybr -vuR -vTK +nic +qBS +lib +hsy +hsy +suJ +hsy +hsy +gLG +khf +bhI +iIj +hQw +hsy +hsy +wdv +hsy +hsy +yjE +ppM +nic aag aag aag @@ -135933,9 +122654,9 @@ aaa aaa aKQ aaa -aaa -aab -aaa +bdH +aak +bdH bdH bdH bdH @@ -135971,27 +122692,27 @@ aad aag aag aag -wVb -hlz -moE -bhB -bJM -bLd -fir -jfM -bQi -bMM -bSy -bMM -bSx -hbZ -ebJ -xiC -fYG -bhB -vuR -woG -vTK +nic +aIh +vsi +hsy +uiC +sIr +jCn +kkk +kjO +pAm +gzq +pAm +eAI +tdv +rlc +hfb +hUk +hsy +ppM +fZR +nic aag aag aag @@ -136136,9 +122857,9 @@ aaa aaa aKQ aaa -aaa -aab -aaa +bdH +aak +bdH bdH bdH bdH @@ -136174,27 +122895,27 @@ aad aag aag aag -wVb -eFH -eFH -bhB -bJN -bLd -bMM -bMM -bMM -bMM -bSy -bMM -bMM -bMM -bMM -bLd -bYU -bhB -jdy -cAH -vTK +nic +ppM +ppM +hsy +thc +sIr +pAm +pAm +pAm +pAm +gzq +pAm +pAm +pAm +pAm +sIr +fZl +hsy +mxV +aIh +nic aag aag aag @@ -136339,9 +123060,9 @@ aaa aaa aKQ aaa -aaa -aab -aaa +bdH +aak +bdH bdH bdH bdH @@ -136377,27 +123098,27 @@ aad aag aag aag -wVb -hlz -hlz -bhB -bJP -mzO -bMN -bMN -fcI -bSy -bSy -bSy -dNx -bMN -bMN -tdx -bYW -bhB -vuR -ydx -vTK +nic +aIh +aIh +hsy +tIe +uAK +bVv +bVv +xTu +gzq +gzq +gzq +ern +bVv +bVv +nJa +jPd +hsy +ppM +eeC +nic aag aag aag @@ -136542,9 +123263,9 @@ aaa aaa aKQ aaa -aaa -aab -aaa +bdH +aak +bdH bdH bdH bdH @@ -136580,27 +123301,27 @@ aad aag aag aag -wVb -eFH -eFH -bhB -hrX -fIx -bMM -bMM -hgt -bMM -bMM -bMM -bMM -bMM -bMM -bYU -gNd -bhB -cAH -cAH -vTK +nic +ppM +ppM +hsy +dPH +sov +pAm +pAm +nAd +pAm +pAm +pAm +pAm +pAm +pAm +fZl +oex +hsy +aIh +aIh +nic aag aag aag @@ -136745,9 +123466,9 @@ aaa aaa aKQ aaa -aaa -aab -aaa +bdH +aak +bdH bdH bdH bdH @@ -136783,27 +123504,27 @@ aad aag aag aag -wVb -hlz -hlz -bhB -sgM -fIx -bMM -bMM -bhB -kvz -kvz -kvz -bhB -kGX -bMM -bYU -upe -bhB -vuR -vuR -vTK +nic +aIh +aIh +hsy +rBv +sov +pAm +pAm +hsy +nDa +nDa +nDa +hsy +gDH +pAm +fZl +snt +hsy +ppM +ppM +nic aag aag aag @@ -136948,9 +123669,9 @@ aaa aaa aKQ aaa -aaa -aab -aaa +bdH +aak +bdH bdH bdH bdH @@ -136986,27 +123707,27 @@ aad aag aag aag -wVb -eFH -eFH -bhB -svd -bLf -dCS -bMM -bhB -bQk -xfi -bSG -bhB -bMM -dCS -tLy -svd -bhB -cAH -cAH -vTK +nic +ppM +ppM +hsy +fqW +qYq +mQn +pAm +hsy +kiG +aSk +pUv +hsy +pAm +mQn +wQD +fqW +hsy +aIh +aIh +nic aag aag aag @@ -137150,10 +123871,10 @@ aab aaa aaa aKQ -aaa -aaa -aab -aab +bdH +bdH +aak +aak aak aak aak @@ -137189,27 +123910,27 @@ aad aag aag aag -wVb -hlz -eFH -bhB -bhB -bhB -bhB -cZJ -bhB -bhB -bhB -bhB -bhB -cZJ -bhB -bhB -bhB -bhB -vuR -vuR -vTK +nic +aIh +ppM +hsy +hsy +hsy +hsy +hNP +hsy +hsy +hsy +hsy +hsy +hNP +hsy +hsy +hsy +hsy +ppM +ppM +nic aag aag aag @@ -137392,27 +124113,27 @@ aad aag aag aag -wVb -hlz -eFH -fKg -tce -bhB -heg -lfQ -blo -vNF -xuU -vNF -blo -ktO -heg -bhB -osE -gai -cAH -cAH -vTK +nic +aIh +ppM +csd +dDJ +hsy +haz +fQn +pzM +qra +tqE +qra +pzM +mtZ +haz +hsy +dDJ +rXH +aIh +aIh +nic aag aag aag @@ -137500,7 +124221,7 @@ xVk oee aPw aHe -tqB +iTe eky eky atg @@ -137508,7 +124229,7 @@ aBE ouB eky eky -gwu +qPX aHe aPw oee @@ -137595,27 +124316,27 @@ aad aag aag aag -wVb -hlz -hlz -hlz -hlz -bhB -heg -mKX -aut -aut -aut -aut -aut -riA -heg -bhB -pFP -cAH -cAH -cAH -vTK +nic +aIh +aIh +aIh +aIh +hsy +haz +pLt +mZL +mZL +mZL +mZL +mZL +lOX +haz +hsy +fpi +aIh +aIh +aIh +nic aag aag aag @@ -137702,8 +124423,8 @@ xVk xVk aad jbq -aNe -jWC +xrq +dID eky eky esT @@ -137711,8 +124432,8 @@ nYE orH eky eky -aDc -aNe +etn +xrq jbq ajZ xVk @@ -137752,27 +124473,27 @@ bdH bdH bdH bdH -bdH -bdH -bdH -bdH -bdH -bdH -aKQ -bdH -bdH -bdH -bdH -bdH -bdH -bdH -bdH -bdH -bdH -bdH -bdH -bdH -bdH +lmz +lmz +lmz +lmz +lmz +lmz +lmz +lmz +iBn +iBn +iBn +iBn +iBn +iBn +iBn +iBn +iBn +iBn +iBn +iBn +iBn bdH bdH bdH @@ -137798,27 +124519,27 @@ aad aag aag aag -wVb -wVb -gcK -jPf -jPf -bhB -dVZ -jyi -bPe -bQm -wlj -bQm -bTp -jyi -cDj -bhB -vuR -vuR -woG -vTK -vTK +nic +nic +mem +piJ +piJ +hsy +mkI +aPS +gsM +ukP +eCt +ukP +nop +aPS +ddf +hsy +atS +ppM +fZR +nic +nic aag aag aag @@ -137905,8 +124626,8 @@ xVk xVk aad jbq -atY -jWC +vlk +dID eky eky bAe @@ -137914,8 +124635,8 @@ aBG sGh eky eky -aDc -atY +etn +vlk jbq ajZ xVk @@ -138002,25 +124723,25 @@ aag aag aag aag -wVb -hlz -eFH -uzg -bhB -bhB -bhB -bhB -bhB -bhB -bhB -bhB -bhB -bhB -bhB -cAH -cAH -cAH -vTK +nic +aIh +ppM +sER +hsy +hsy +hsy +hsy +hsy +hsy +hsy +hsy +hsy +hsy +hsy +aIh +aIh +aIh +nic aag aag aag @@ -138108,8 +124829,8 @@ xVk xVk aad aPw -qpU -ykD +uYd +xnz dqj eky xaS @@ -138117,8 +124838,8 @@ ejt mPf eky gUV -wKS -qpU +neG +uYd aPw ajZ xVk @@ -138151,7 +124872,7 @@ aaa aab aaa aaa -aaa +bdH bdH bdH bdH @@ -138205,25 +124926,25 @@ aag aag aag aag -wVb -hlz -eFH -hlz -eFH -wul -hlz -gnz -eFH -eFH -vuR -hOe -cAH -fXd -vuR -vuR -vuR -cAH -vTK +nic +aIh +ppM +aIh +ppM +puT +aIh +xrg +ppM +ppM +ppM +xrg +aIh +erE +ppM +ppM +ppM +aIh +nic aag aag aag @@ -138355,19 +125076,6 @@ aab aaa aaa bdH -bdH -bdH -bdH -bdH -bdH -bdH -lmz -lmz -lmz -lmz -lmz -lmz -lmz lmz lmz lmz @@ -138379,6 +125087,19 @@ lmz lmz lmz lmz +daz +daz +daz +daz +daz +daz +daz +daz +daz +daz +daz +daz +daz lmz lmz lmz @@ -138408,25 +125129,25 @@ aag aag aag aag -wVb -wVb -rdK -rdK -rdK -rdK -bOn -rdK -rdK -rdK -haq -haq -xnl -haq -haq -haq -haq -vTK -vTK +gFP +gFP +qjZ +qjZ +qjZ +qjZ +dXI +qjZ +qjZ +qjZ +qjZ +qjZ +dXI +qjZ +qjZ +qjZ +qjZ +gFP +gFP aag aag aag @@ -138570,17 +125291,17 @@ lmz lmz lmz daz -daz -daz -daz -daz -daz -daz -daz -daz -daz -daz -daz +vhe +qQS +cqm +gTH +qit +ebN +qQS +gwn +pfT +vCH +dyp daz lmz lmz @@ -138611,25 +125332,25 @@ aah aah aah aah -wVb -wVb -bdo -bdo -bLg -bMX -bOo -uvG -dSs -bOo -otX -cII -koT -tZF -bUZ -ovn -ovn -vTK -vTK +gFP +gFP +lMb +lMb +fLv +cLq +vON +sgs +ioP +vAI +kXm +eSk +vON +cLq +oLN +lMb +lMb +gFP +gFP aah aah aah @@ -138769,21 +125490,21 @@ lmz lmz lmz lmz -lmz -lmz -lmz +sbJ +sbJ +sbJ daz -vhe -fEN -cqm -gTH -qit rna +clw qQS -gwn -pfT -jYR -dyp +sKY +qQS +bIp +fKe +dDp +bFg +frM +lcg daz lmz lmz @@ -138815,23 +125536,23 @@ aaa aaa aaa aaa -wVb -qsF -bdo -bdo -bdo -bdo -bdo -bdo -bdo -ovn -ovn -ovn -ovn -ovn -bjy -aXQ -vTK +gFP +vVI +lMb +lMb +lMb +lMb +lMb +lMb +lMb +lMb +lMb +lMb +lMb +lMb +fXZ +gsi +gFP aaa aaa aaa @@ -138963,29 +125684,29 @@ aaa aab aaa aaa -bdH -lmz -lmz lmz lmz lmz lmz lmz -lmz -sbJ -sbJ -sbJ daz -jtj -avK -avK -sKY -avK +daz +daz +daz +daz +tte +hvw +auf +pmV +eGr +xDC +dIn +rby bIp -fKe -dDp -dDp -frM +euN +ujn +sEK +etM lcg daz lmz @@ -139018,23 +125739,23 @@ aaa aaa aaa aaa -wVb -bdo -bdo -bdo -bdo -bdo -bdo -bdo -bdo -ovn -ovn -ovn -ovn -ovn -ovn -ovn -vTK +gFP +lMb +lMb +lMb +lMb +lMb +lMb +lMb +lMb +lMb +lMb +lMb +lMb +lMb +lMb +lMb +gFP aaa aaa aaa @@ -139170,26 +125891,26 @@ lmz lmz lmz lmz -lmz daz daz +hRW +asZ +vXh daz daz +kfU daz -tte -hvw -auf -pmV -xDC -xDC -dIn -rby -bIp -euN -sEK -sEK -mlb -lcg +ebN +ebN +lnS +uVv +flf +ebN +rOz +kBy +kBy +nNA +fPB daz lmz lmz @@ -139221,23 +125942,23 @@ aaa aaa aaa aaa -wVb -bdo -bdo -bdo -bdo -bdo -bdo -bdo -bdo -ovn -ovn -ovn -ovn -ovn -ovn -ovn -vTK +gFP +lMb +lMb +lMb +lMb +lMb +lMb +lMb +lMb +lMb +lMb +lMb +lMb +lMb +lMb +lMb +gFP aaa aaa aaa @@ -139372,34 +126093,34 @@ bdH lmz lmz lmz -lmz daz daz -hRW -asZ -vXh +eKJ +yaZ +dJC +hZj +clw daz daz -kfU daz -rna -rna -lnS -uVv -yit -rna -cxc -kBy -kBy -gfu -fPB +sGZ +ebN +ebN +roH +ebN +daz +daz +daz +wnh +wnh +daz +daz daz lmz lmz lmz bdH bdH -bdH aak bdH bdH @@ -139424,23 +126145,23 @@ aaa aaa aaa aaa -wVb -bhD -bdo -bdo -bdo -bdo -bdo -bdo -bdo -ovn -ovn -ovn -ovn -ovn -ovn -bCR -vTK +gFP +riT +lMb +lMb +lMb +lMb +lMb +lMb +lMb +lMb +lMb +lMb +lMb +lMb +lMb +vFn +gFP aaa aaa aaa @@ -139576,27 +126297,27 @@ lmz lmz lmz daz -daz -scS -yaZ -ffE -hZj -clw -daz -daz -daz -sGZ -rna -rna -roH -ebN -ebN -ebN -daz -wnh -wnh -daz -daz +jYH +ubA +cck +wyQ +fmv +ubA +gMN +mRn +dJO +vMt +dkz +aGk +ktQ +teZ +wkM +ege +hWP +bZq +bZq +mIi +mIi daz lmz lmz @@ -139627,23 +126348,23 @@ aaa aaa aaa aaa -wVb -bdo -bdo -bdo -bdo -bdo -bdo -bdo -bdo -ovn -ovn -ovn -ovn -ovn -ovn -ovn -vTK +gFP +lMb +lMb +lMb +lMb +lMb +lMb +lMb +lMb +lMb +lMb +lMb +lMb +lMb +lMb +lMb +gFP aaa aaa aaa @@ -139779,27 +126500,27 @@ lmz lmz lmz daz -acJ -ubA -cck -wyQ -fmv -ubA -gMN -mRn -itf -mHE -vAU -qwJ -fJY -kzT +cwS +ffE +vHa +nDy +ffE +ffE +ffE +jqP +cLo +clw +viB +dIi +qLS +erN wkM -oLm -fcX -kKv -kKv -dGl -dGl +jvB +jtj +swx +swx +qKZ +gjv daz lmz lmz @@ -139830,23 +126551,23 @@ aaa aaa aaa aaa -wVb -bdo -bdo -bdo -bdo -bdo -bdo -bdo -bdo -ovn -ovn -ovn -ovn -ovn -ovn -ovn -vTK +gFP +lMb +lMb +lMb +lMb +lMb +lMb +lMb +lMb +lMb +lMb +lMb +lMb +lMb +lMb +lMb +gFP aaa aaa aaa @@ -139982,27 +126703,27 @@ lmz lmz lmz daz -cwS -ffE -vHa -wpw -ffE -ffE -ffE -jqP -cLo -vfB -viB -dIi -qLS -vfB +oRV +ydI +mdW +ios +awu +ydI +aKs +fMt +mEs +gbm +oBD +lFj +vyE +mTr wkM -jvB -jvB -ieF -ieF -pJR -gPr +qNc +jdl +dpp +dpp +jgy +eii daz lmz lmz @@ -140033,23 +126754,23 @@ aaa aaa aaa aaa -wVb -qsF -bdo -bdo -bdo -bdo -bdo -bdo -bdo -ovn -ovn -ovn -ovn -ovn -ovn -aXQ -vTK +gFP +vVI +lMb +lMb +lMb +lMb +lMb +lMb +lMb +lMb +lMb +lMb +lMb +lMb +lMb +gsi +gFP aaa aaa aaa @@ -140185,27 +126906,27 @@ lmz lmz lmz daz -oRV -ydI -mdW -jaH -awu -ydI -aKs -fMt -gOs -kXj -pYi -fMl -gUN -bLv -wkM -xvM -osy -cBm -cBm -iZw -dQl +daz +eKJ +yaZ +dJC +hZj +fQD +daz +daz +daz +tHu +ebN +ebN +gXs +ebN +daz +daz +daz +wnh +wnh +daz +daz daz lmz lmz @@ -140236,23 +126957,23 @@ aaa aaa aaa aaa -wVb -bdo -jbB -bdo -bne -bdo -jbB -bdo -bne -ovn -gXv -ovn -grX -ovn -gXv -ovn -vTK +gFP +lMb +wgf +lMb +qbD +lMb +wgf +lMb +qbD +lMb +wgf +lMb +qbD +lMb +wgf +lMb +gFP aaa aaa aaa @@ -140387,34 +127108,34 @@ bdH lmz lmz lmz +lmz daz daz -eKJ -yaZ -ffE -hZj -mUC +ocB +nJH +rnH daz daz +sTV daz -tHu -rna -rna -gXs ebN ebN +gbg +uVv +xwU ebN -daz -wnh -wnh -daz -daz +qQS +kBy +kBy +gfu +kBy daz lmz lmz lmz bdH bdH +bdH aak bdH bdH @@ -140439,23 +127160,23 @@ aaa aaa aaa aaa -wVb -wVb -wVb -wVb -wVb -wVb -wVb -wVb -wVb -vTK -vTK -vTK -vTK -vTK -vTK -vTK -vTK +gFP +gFP +gFP +gFP +gFP +gFP +gFP +gFP +gFP +gFP +gFP +gFP +gFP +gFP +gFP +gFP +gFP aaa aaa aaa @@ -140591,26 +127312,26 @@ lmz lmz lmz lmz +lmz daz daz -ocB -nJH -rnH daz daz -sTV daz -rna -rna -gbg -uVv -erN -rna -qQS -kBy -kBy -gfu -kBy +tte +hvw +auf +hTl +jrH +xDC +yaQ +vLz +mFN +kSy +bFg +dDp +nYg +lcg daz lmz lmz @@ -140790,8 +127511,7 @@ aaa aab aaa bdH -lmz -lmz +bdH lmz lmz lmz @@ -140800,19 +127520,20 @@ daz daz daz daz -tte -hvw -auf -hTl -xDC -xDC -yaQ -bat +sbJ +sbJ +sbJ +daz +rna +qRX +qQS +aCd +qQS mFN -kSy -dDp -dDp -frM +igr +sEK +ujn +mlb lcg daz lmz @@ -140997,26 +127718,26 @@ bdH lmz lmz lmz -lmz -lmz -lmz -lmz daz -sbJ -sbJ -sbJ +hWM +hWM +hWM +ebN daz -jtj -avK -avK -aCd -avK -mFN -igr -sEK -sEK -mlb -lcg +ocL +qpY +daz +drU +itg +gba +kRQ +our +ebN +cxc +kBy +kBy +dzt +gyN daz lmz lmz @@ -141200,26 +127921,26 @@ bdH lmz lmz lmz -lmz -lmz -lmz -lmz daz -rzf -bRo -wyv -pTt -gAe -rCi -gba -mUz -our -rna -cxc -kBy -kBy -khJ -gyN +hWM +fVx +hWM +ebN +tId +ltc +ltc +daz +ebN +fCI +ebN +daz +daz +daz +daz +daz +daz +daz +daz daz lmz lmz @@ -141400,25 +128121,21 @@ aab aaa aaa bdH -lmz -lmz -lmz -lmz -lmz -lmz -lmz -daz -czG -ylg -oIY -daz -daz -daz -daz -daz -daz -daz -daz +bdH +bdH +bdH +izf +hWM +qQS +hWM +ebN +tId +fVx +qQS +ebN +naj +itg +qQS daz daz daz @@ -141427,6 +128144,10 @@ daz lmz lmz lmz +lmz +lmz +lmz +lmz bdH bdH bdH @@ -141602,18 +128323,26 @@ aaa aab aaa aaa +aaa bdH bdH bdH -bdH -bdH -bdH -bdH -lmz -daz -daz -daz -daz +vVk +cJI +fVx +hWM +ebN +tId +qQS +mIJ +wiu +xDC +yaQ +jtj +oZx +irr +irr +xsi daz lmz lmz @@ -141622,14 +128351,6 @@ lmz lmz lmz lmz -lmz -lmz -lmz -lmz -lmz -lmz -lmz -lmz bdH bdH bdH @@ -141809,23 +128530,23 @@ aaa bdH bdH bdH -bdH -bdH -bdH -lmz -lmz -lmz -lmz -lmz -lmz -lmz -lmz -lmz -lmz -lmz -lmz -lmz -lmz +fhR +nKO +tmV +qQS +gDh +qQS +qQS +bMg +flL +qQS +qQS +pUg +sII +cFg +pkS +xsi +daz lmz lmz lmz @@ -142008,27 +128729,27 @@ aab aab aab aab -aaa bdH bdH bdH bdH -bdH -bdH -lmz -lmz -lmz -lmz -lmz -lmz -lmz -lmz -lmz -lmz -lmz -lmz -lmz -lmz +npq +daz +daz +daz +daz +daz +daz +daz +daz +daz +daz +daz +daz +daz +daz +daz +daz lmz lmz lmz diff --git a/maps/map_files/USS_Runtime/USS_Runtime.dmm b/maps/map_files/USS_Runtime/USS_Runtime.dmm index aec89c5882dd..6dae65b01699 100644 --- a/maps/map_files/USS_Runtime/USS_Runtime.dmm +++ b/maps/map_files/USS_Runtime/USS_Runtime.dmm @@ -3,195 +3,135 @@ /turf/closed/wall/r_wall/bunker, /area/event) "b" = ( -/turf/open/floor/almayer{ - icon_state = "plating" - }, +/turf/open/floor/almayer/plating, /area/event) "c" = ( /obj/effect/landmark/start/engineering, -/turf/open/floor/almayer{ - icon_state = "plating" - }, +/turf/open/floor/almayer/plating, /area/event) "d" = ( /obj/effect/landmark/start/working_joe, -/turf/open/floor/almayer{ - icon_state = "plating" - }, +/turf/open/floor/almayer/plating, /area/event) "e" = ( /obj/effect/landmark/start/requisition, -/turf/open/floor/almayer{ - icon_state = "plating" - }, +/turf/open/floor/almayer/plating, /area/event) "h" = ( /obj/effect/landmark/start/police, -/turf/open/floor/almayer{ - icon_state = "plating" - }, +/turf/open/floor/almayer/plating, /area/event) "k" = ( /obj/effect/landmark/start/liaison, -/turf/open/floor/almayer{ - icon_state = "plating" - }, +/turf/open/floor/almayer/plating, /area/event) "l" = ( /obj/effect/landmark/start/marine/medic, -/turf/open/floor/almayer{ - icon_state = "plating" - }, +/turf/open/floor/almayer/plating, /area/event) "n" = ( /obj/effect/landmark/start/professor, -/turf/open/floor/almayer{ - icon_state = "plating" - }, +/turf/open/floor/almayer/plating, /area/event) "q" = ( /obj/effect/landmark/start/warden, -/turf/open/floor/almayer{ - icon_state = "plating" - }, +/turf/open/floor/almayer/plating, /area/event) "r" = ( /obj/effect/landmark/start/maint, -/turf/open/floor/almayer{ - icon_state = "plating" - }, +/turf/open/floor/almayer/plating, /area/event) "s" = ( /obj/effect/landmark/late_join, -/turf/open/floor/almayer{ - icon_state = "plating" - }, +/turf/open/floor/almayer/plating, /area/event) "t" = ( /obj/effect/landmark/start/marine/engineer, -/turf/open/floor/almayer{ - icon_state = "plating" - }, +/turf/open/floor/almayer/plating, /area/event) "u" = ( /obj/effect/landmark/start/otech, -/turf/open/floor/almayer{ - icon_state = "plating" - }, +/turf/open/floor/almayer/plating, /area/event) "v" = ( /obj/effect/landmark/start/marine, -/turf/open/floor/almayer{ - icon_state = "plating" - }, +/turf/open/floor/almayer/plating, /area/event) "x" = ( /obj/effect/landmark/start/captain, -/turf/open/floor/almayer{ - icon_state = "plating" - }, +/turf/open/floor/almayer/plating, /area/event) "z" = ( -/obj/effect/landmark/start/pilot, -/turf/open/floor/almayer{ - icon_state = "plating" - }, +/obj/effect/landmark/start/pilot/dropship_pilot, +/turf/open/floor/almayer/plating, /area/event) "A" = ( /obj/effect/landmark/start/cargo, -/turf/open/floor/almayer{ - icon_state = "plating" - }, +/turf/open/floor/almayer/plating, /area/event) "C" = ( /obj/effect/landmark/start/bridge, -/turf/open/floor/almayer{ - icon_state = "plating" - }, +/turf/open/floor/almayer/plating, /area/event) "D" = ( /obj/effect/landmark/start/warrant, -/turf/open/floor/almayer{ - icon_state = "plating" - }, +/turf/open/floor/almayer/plating, /area/event) "F" = ( /obj/effect/landmark/start/marine/tl, -/turf/open/floor/almayer{ - icon_state = "plating" - }, +/turf/open/floor/almayer/plating, /area/event) "G" = ( /obj/effect/landmark/start/marine/spec, -/turf/open/floor/almayer{ - icon_state = "plating" - }, +/turf/open/floor/almayer/plating, /area/event) "I" = ( /obj/effect/landmark/start/synthetic, -/turf/open/floor/almayer{ - icon_state = "plating" - }, +/turf/open/floor/almayer/plating, /area/event) "J" = ( /obj/effect/landmark/start/executive, -/turf/open/floor/almayer{ - icon_state = "plating" - }, +/turf/open/floor/almayer/plating, /area/event) "L" = ( /obj/effect/landmark/start/researcher, -/turf/open/floor/almayer{ - icon_state = "plating" - }, +/turf/open/floor/almayer/plating, +/area/event) +"M" = ( +/obj/effect/landmark/start/pilot/cas_pilot, +/turf/open/floor/almayer/plating, /area/event) "N" = ( /obj/effect/landmark/start/nurse, -/turf/open/floor/almayer{ - icon_state = "plating" - }, +/turf/open/floor/almayer/plating, /area/event) "P" = ( /obj/effect/landmark/start/doctor, -/turf/open/floor/almayer{ - icon_state = "plating" - }, +/turf/open/floor/almayer/plating, /area/event) "Q" = ( /obj/effect/landmark/start/senior, -/turf/open/floor/almayer{ - icon_state = "plating" - }, +/turf/open/floor/almayer/plating, /area/event) "R" = ( /obj/effect/landmark/start/marine/smartgunner, -/turf/open/floor/almayer{ - icon_state = "plating" - }, +/turf/open/floor/almayer/plating, /area/event) "T" = ( /obj/effect/landmark/start/marine/leader, -/turf/open/floor/almayer{ - icon_state = "plating" - }, +/turf/open/floor/almayer/plating, /area/event) "U" = ( /obj/effect/landmark/start/intel, -/turf/open/floor/almayer{ - icon_state = "plating" - }, +/turf/open/floor/almayer/plating, /area/event) "V" = ( /obj/effect/landmark/start/crew_chief, -/turf/open/floor/almayer{ - icon_state = "plating" - }, +/turf/open/floor/almayer/plating, /area/event) "W" = ( /obj/effect/landmark/start/chef, -/turf/open/floor/almayer{ - icon_state = "plating" - }, +/turf/open/floor/almayer/plating, /area/event) (1,1,1) = {" @@ -289,7 +229,7 @@ a A l L -b +M b b b diff --git a/maps/map_files/Whiskey_Outpost_v2/Whiskey_Outpost_v2.dmm b/maps/map_files/Whiskey_Outpost_v2/Whiskey_Outpost_v2.dmm index 917759783a2a..2d5bc23cb5a3 100644 --- a/maps/map_files/Whiskey_Outpost_v2/Whiskey_Outpost_v2.dmm +++ b/maps/map_files/Whiskey_Outpost_v2/Whiskey_Outpost_v2.dmm @@ -4,10 +4,7 @@ /turf/open/jungle, /area/whiskey_outpost/outside/south) "ab" = ( -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost) "ac" = ( /turf/closed/wall/strata_ice/jungle, @@ -20,10 +17,7 @@ dir = 8; icon_state = "warning_s" }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/inside/bunker/bunker/front) "ae" = ( /obj/structure/machinery/light{ @@ -75,22 +69,16 @@ layer = 3.5; pixel_y = 13 }, -/turf/open/floor/almayer{ - icon_state = "bluefull" - }, +/turf/open/floor/almayer/bluefull, /area/whiskey_outpost/inside/living) "an" = ( -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/light_grey_single_wide_up_to_down, /area/whiskey_outpost/outside/lane/four_north) "ao" = ( /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "bluefull" - }, +/turf/open/floor/almayer/bluefull, /area/whiskey_outpost/inside/living) "ap" = ( /obj/structure/surface/table/reinforced/prison, @@ -101,17 +89,13 @@ /obj/structure/closet/secure_closet/surgical{ pixel_x = -30 }, -/turf/open/floor{ - icon_state = "whitegreenfull" - }, +/turf/open/floor/whitegreenfull, /area/whiskey_outpost/inside/hospital) "aq" = ( /obj/structure/machinery/bioprinter{ stored_metal = 1000 }, -/turf/open/floor{ - icon_state = "whitegreenfull" - }, +/turf/open/floor/whitegreenfull, /area/whiskey_outpost/inside/hospital) "as" = ( /obj/effect/decal/warning_stripes/asteroid{ @@ -125,19 +109,13 @@ dir = 1; icon_state = "warning_s" }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/outside/north) "at" = ( /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/whiskey_outpost/inside/living) "au" = ( /obj/structure/closet/secure_closet/commander, @@ -146,9 +124,7 @@ "av" = ( /obj/structure/machinery/cm_vending/sorted/medical/blood, /obj/structure/machinery/light/small, -/turf/open/floor{ - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen, /area/whiskey_outpost/inside/hospital/triage) "ax" = ( /obj/structure/surface/table/woodentable/fancy, @@ -167,9 +143,7 @@ /turf/open/floor/wood, /area/whiskey_outpost/inside/cic) "aC" = ( -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/whiskey_outpost/inside/cic) "aE" = ( /obj/structure/bed, @@ -183,10 +157,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor{ - dir = 8; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/west, /area/whiskey_outpost/inside/hospital/triage) "aG" = ( /obj/structure/curtain/black, @@ -195,15 +166,11 @@ /area/whiskey_outpost/inside/caves/caverns) "aH" = ( /obj/structure/machinery/cryopod, -/turf/open/floor/almayer{ - icon_state = "bluefull" - }, +/turf/open/floor/almayer/bluefull, /area/whiskey_outpost/inside/living) "aI" = ( /obj/structure/machinery/cm_vending/sorted/medical, -/turf/open/floor{ - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen, /area/whiskey_outpost/inside/hospital/triage) "aJ" = ( /obj/structure/window/reinforced{ @@ -219,9 +186,7 @@ layer = 3.5; pixel_y = 13 }, -/turf/open/floor/almayer{ - icon_state = "emeraldfull" - }, +/turf/open/floor/almayer/emeraldfull, /area/whiskey_outpost/inside/living) "aK" = ( /turf/open/gm/dirtgrassborder/west, @@ -253,10 +218,7 @@ pixel_x = -6; pixel_y = 5 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/inside/bunker/bunker/front) "aQ" = ( /obj/structure/machinery/door/airlock/almayer/maint{ @@ -264,50 +226,31 @@ req_access_txt = "19"; req_one_access = null }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/whiskey_outpost/inside/cic) "aS" = ( /obj/structure/machinery/optable, -/turf/open/floor{ - icon_state = "whitegreenfull" - }, +/turf/open/floor/whitegreenfull, /area/whiskey_outpost/inside/hospital) "aV" = ( -/turf/open/floor{ - dir = 10; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/southwest, /area/whiskey_outpost/inside/hospital) "aW" = ( /obj/structure/machinery/shower{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/whiskey_outpost/inside/living) "aZ" = ( /obj/structure/cargo_container/watatsumi/rightmid, -/turf/open/jungle{ - bushes_spawn = 0; - icon_state = "grass_impenetrable" - }, +/turf/open/jungle/impenetrable, /area/whiskey_outpost/outside/south) "ba" = ( /obj/structure/machinery/vending/cigarette, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/bunker/bunker/front) "bb" = ( -/turf/open/floor{ - dir = 9; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/northwest, /area/whiskey_outpost/inside/hospital) "bc" = ( /obj/structure/disposalpipe/segment, @@ -329,25 +272,17 @@ pixel_x = 30; req_access = null }, -/turf/open/floor{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/east, /area/whiskey_outpost/inside/hospital) "be" = ( /obj/structure/machinery/cm_vending/clothing/marine/delta{ density = 0; pixel_x = 16 }, -/turf/open/floor/almayer{ - icon_state = "bluefull" - }, +/turf/open/floor/almayer/bluefull, /area/whiskey_outpost/inside/living) "bf" = ( -/turf/open/floor{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/north, /area/whiskey_outpost/inside/hospital) "bh" = ( /obj/structure/sign/poster, @@ -355,17 +290,11 @@ /area/whiskey_outpost/outside/south/far) "bi" = ( /obj/effect/landmark/start/whiskey/doctor, -/turf/open/floor{ - dir = 5; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/northeast, /area/whiskey_outpost/inside/hospital) "bj" = ( /obj/structure/disposalpipe/segment, -/turf/open/jungle{ - bushes_spawn = 0; - icon_state = "grass_impenetrable" - }, +/turf/open/jungle/impenetrable, /area/whiskey_outpost/outside/north/northwest) "bl" = ( /turf/open/jungle, @@ -375,17 +304,13 @@ /turf/open/gm/dirt, /area/whiskey_outpost/inside/caves/tunnel) "bo" = ( -/turf/open/gm/dirt{ - icon_state = "desert0" - }, +/turf/open/gm/dirt/desert0, /area/whiskey_outpost/outside/lane/two_south) "bp" = ( /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "emeraldfull" - }, +/turf/open/floor/almayer/emeraldfull, /area/whiskey_outpost/inside/living) "bs" = ( /turf/open/floor/carpet, @@ -396,48 +321,33 @@ /obj/item/storage/backpack/marine, /obj/item/storage/backpack/industrial, /obj/item/storage/backpack/industrial, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/whiskey_outpost/inside/supply) "bu" = ( /obj/effect/landmark/start/whiskey/marine, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/whiskey_outpost/inside/bunker/bunker/front) "bw" = ( /obj/structure/machinery/cryopod, -/turf/open/floor{ - icon_state = "whitegreenfull" - }, +/turf/open/floor/whitegreenfull, /area/whiskey_outpost/inside/hospital) "bx" = ( /obj/item/ammo_box/magazine/misc/mre, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/whiskey_outpost/inside/bunker/bunker/front) "bz" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk{ dir = 8 }, -/turf/open/floor{ - icon_state = "whitegreenfull" - }, +/turf/open/floor/whitegreenfull, /area/whiskey_outpost/inside/hospital) "bA" = ( /obj/structure/disposalpipe/segment{ dir = 4; icon_state = "pipe-c" }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/whiskey_outpost/inside/hospital) "bB" = ( /obj/structure/disposalpipe/segment{ @@ -448,10 +358,7 @@ /area/whiskey_outpost/inside/bunker) "bC" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 1; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/north, /area/whiskey_outpost/inside/bunker) "bD" = ( /obj/structure/disposalpipe/segment, @@ -462,10 +369,7 @@ /turf/open/jungle, /area/whiskey_outpost/outside/lane/two_north) "bG" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/whiskey_outpost/inside/living) "bK" = ( /obj/structure/cargo_container/watatsumi/leftmid, @@ -482,18 +386,13 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/whiskey_outpost/inside/hospital) "bP" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor{ - dir = 5; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/northeast, /area/whiskey_outpost/inside/hospital) "bQ" = ( /obj/structure/curtain, @@ -549,9 +448,7 @@ pixel_x = -12; pixel_y = 2 }, -/turf/open/floor{ - icon_state = "whitegreenfull" - }, +/turf/open/floor/whitegreenfull, /area/whiskey_outpost/inside/hospital) "ca" = ( /obj/structure/surface/table/reinforced/prison, @@ -571,19 +468,14 @@ dir = 4; pixel_x = 11 }, -/turf/open/floor{ - icon_state = "whitegreenfull" - }, +/turf/open/floor/whitegreenfull, /area/whiskey_outpost/inside/hospital) "cb" = ( /obj/structure/machinery/shower{ dir = 8; layer = 3.3 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/whiskey_outpost/inside/living) "ce" = ( /turf/open/gm/dirt, @@ -602,10 +494,7 @@ /obj/structure/barricade/metal/wired{ dir = 8 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/inside/bunker/bunker/front) "cm" = ( /obj/structure/machinery/light/small{ @@ -617,10 +506,7 @@ "cn" = ( /obj/effect/landmark/start/whiskey/leader, /obj/structure/machinery/defenses/sentry/premade, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/bunker/pillbox/one) "co" = ( /obj/structure/disposalpipe/segment{ @@ -629,10 +515,7 @@ /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/east, /area/whiskey_outpost/inside/bunker) "cp" = ( /obj/structure/surface/table/woodentable/fancy, @@ -656,16 +539,11 @@ /area/whiskey_outpost/inside/living) "ct" = ( /obj/structure/machinery/cryopod, -/turf/open/floor/almayer{ - icon_state = "emeraldfull" - }, +/turf/open/floor/almayer/emeraldfull, /area/whiskey_outpost/inside/living) "cu" = ( /obj/structure/barricade/metal/wired, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/bunker/pillbox/three) "cw" = ( /obj/structure/barricade/metal/wired, @@ -675,20 +553,14 @@ /obj/structure/barricade/handrail{ dir = 1 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost) "cy" = ( /obj/structure/largecrate/supply/supplies/mre, /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/whiskey_outpost/inside/living) "cz" = ( /turf/open/floor/wood, @@ -700,6 +572,10 @@ /obj/item/stool, /turf/open/gm/dirtgrassborder/west, /area/whiskey_outpost/outside/lane/two_south) +"cB" = ( +/obj/structure/machinery/fuelcell_recycler/full, +/turf/open/floor/prison/floor_plate/southwest, +/area/whiskey_outpost/inside/engineering) "cC" = ( /obj/structure/sign/poster, /turf/closed/wall/r_wall, @@ -709,9 +585,7 @@ name = "Success Cabinet"; req_access_txt = "1" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/whiskey_outpost/inside/cic) "cE" = ( /obj/structure/window/reinforced/tinted/frosted, @@ -721,17 +595,13 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/whiskey_outpost/inside/cic) "cF" = ( /obj/structure/mirror{ pixel_y = 30 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/whiskey_outpost/inside/cic) "cG" = ( /obj/structure/machinery/door/airlock/almayer/generic{ @@ -754,9 +624,7 @@ /obj/structure/machinery/computer/card{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/whiskey_outpost/inside/cic) "cL" = ( /obj/structure/surface/table/woodentable/fancy, @@ -772,9 +640,7 @@ /area/whiskey_outpost/inside/cic) "cO" = ( /obj/structure/machinery/cm_vending/sorted/medical/marinemed, -/turf/open/floor{ - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen, /area/whiskey_outpost/inside/hospital/triage) "cP" = ( /obj/structure/bed/chair{ @@ -787,9 +653,7 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor{ - icon_state = "whitegreenfull" - }, +/turf/open/floor/whitegreenfull, /area/whiskey_outpost/inside/hospital) "cR" = ( /turf/open/gm/dirtgrassborder/west, @@ -802,18 +666,14 @@ /area/whiskey_outpost/inside/living) "cT" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor{ - icon_state = "whitegreencorner" - }, +/turf/open/floor/whitegreencorner, /area/whiskey_outpost/inside/hospital) "cX" = ( /obj/structure/machinery/optable, /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor{ - icon_state = "whitegreenfull" - }, +/turf/open/floor/whitegreenfull, /area/whiskey_outpost/inside/hospital) "cY" = ( /obj/structure/machinery/colony_floodlight, @@ -826,15 +686,11 @@ /area/whiskey_outpost/outside/lane/two_south) "da" = ( /obj/structure/machinery/optable, -/turf/open/floor{ - icon_state = "whitegreenfull" - }, +/turf/open/floor/whitegreenfull, /area/whiskey_outpost/inside/hospital/triage) "dc" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe, /area/whiskey_outpost/inside/living) "dd" = ( /turf/open/gm/dirtgrassborder/grassdirt_corner/south_west, @@ -894,9 +750,7 @@ layer = 3.5; pixel_y = 13 }, -/turf/open/floor/almayer{ - icon_state = "orangefull" - }, +/turf/open/floor/almayer/orangefull, /area/whiskey_outpost/inside/living) "ds" = ( /obj/structure/machinery/door/window/westright{ @@ -905,15 +759,10 @@ /obj/structure/machinery/shower{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/whiskey_outpost/inside/cic) "du" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/west, /area/whiskey_outpost/inside/bunker/bunker/front) "dv" = ( /obj/structure/flora/jungle/plantbot1, @@ -927,9 +776,7 @@ /obj/structure/toilet{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/whiskey_outpost/inside/cic) "dA" = ( /obj/structure/surface/table, @@ -960,9 +807,7 @@ layer = 3.5; pixel_y = 13 }, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, +/turf/open/floor/almayer/redfull, /area/whiskey_outpost/inside/living) "dF" = ( /obj/structure/machinery/door/airlock/almayer/command{ @@ -979,9 +824,7 @@ /area/whiskey_outpost/outside/lane/three_south) "dJ" = ( /obj/structure/curtain/shower, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/whiskey_outpost/inside/bunker/bunker/front) "dM" = ( /turf/closed/shuttle/dropship{ @@ -990,18 +833,14 @@ /area/whiskey_outpost/outside/lane/four_north) "dN" = ( /obj/structure/machinery/light/small, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/whiskey_outpost/inside/cic) "dO" = ( /obj/structure/safe, /obj/item/moneybag, /obj/item/clothing/glasses/monocle, /obj/item/weapon/telebaton, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/whiskey_outpost/inside/cic) "dP" = ( /obj/structure/surface/table/reinforced/prison, @@ -1014,10 +853,7 @@ /obj/item/storage/box/gloves, /obj/item/tool/hand_labeler, /obj/item/reagent_container/glass/beaker/bluespace, -/turf/open/floor{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/north, /area/whiskey_outpost/inside/hospital) "dQ" = ( /obj/structure/surface/table/reinforced/prison, @@ -1037,10 +873,7 @@ /obj/item/device/defibrillator, /obj/item/device/defibrillator, /obj/item/device/defibrillator, -/turf/open/floor{ - dir = 9; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/northwest, /area/whiskey_outpost/inside/hospital) "dS" = ( /obj/structure/window/framed/colony/reinforced, @@ -1061,10 +894,7 @@ /obj/item/device/healthanalyzer, /obj/item/device/healthanalyzer, /obj/item/weapon/gun/shotgun/pump/dual_tube/cmb, -/turf/open/floor{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/north, /area/whiskey_outpost/inside/hospital) "dU" = ( /obj/structure/machinery/light{ @@ -1074,9 +904,7 @@ /turf/open/gm/dirt, /area/whiskey_outpost/inside/caves/tunnel) "dW" = ( -/turf/open/floor/plating{ - icon_state = "platebot" - }, +/turf/open/floor/plating/platebot, /area/whiskey_outpost/outside/lane/one_north) "dY" = ( /obj/structure/surface/table/reinforced/prison, @@ -1099,18 +927,13 @@ pixel_x = -12; pixel_y = 2 }, -/turf/open/floor{ - dir = 10; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/southwest, /area/whiskey_outpost/inside/hospital) "ea" = ( /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/whiskey_outpost/inside/cic) "eb" = ( /obj/structure/machinery/light/small{ @@ -1119,16 +942,10 @@ /turf/open/floor/prison, /area/whiskey_outpost/inside/cic) "ed" = ( -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/outside/north/platform) "ee" = ( -/turf/open/floor/almayer{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/almayer/red/southwest, /area/whiskey_outpost/inside/cic) "eg" = ( /obj/structure/sign/safety/medical{ @@ -1145,20 +962,14 @@ /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor{ - dir = 9; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/northwest, /area/whiskey_outpost/inside/hospital) "ej" = ( /turf/open/gm/dirtgrassborder/grassdirt_corner/north_east, /area/whiskey_outpost/outside/lane/four_south) "ek" = ( /obj/structure/largecrate/supply/supplies/sandbags, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/whiskey_outpost/inside/bunker/bunker/front) "eo" = ( /turf/open/gm/coast/beachcorner2/south_east, @@ -1216,9 +1027,7 @@ /area/whiskey_outpost/inside/bunker) "eD" = ( /obj/structure/machinery/body_scanconsole, -/turf/open/floor{ - icon_state = "whitegreenfull" - }, +/turf/open/floor/whitegreenfull, /area/whiskey_outpost/inside/hospital/triage) "eF" = ( /obj/structure/machinery/power/apc/almayer{ @@ -1233,19 +1042,14 @@ /obj/structure/surface/rack, /obj/effect/landmark/wo_supplies/storage/m56d, /obj/effect/landmark/wo_supplies/storage/m56d, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/whiskey_outpost/inside/supply) "eJ" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, /obj/structure/machinery/door/airlock/almayer/marine/autoname, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/bunker/bunker/front) "eK" = ( /turf/open/gm/river, @@ -1254,24 +1058,17 @@ /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/whiskey_outpost/inside/cic) "eN" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk, -/turf/open/floor{ - dir = 5; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/northeast, /area/whiskey_outpost/inside/hospital) "eO" = ( /obj/structure/bed/stool, /obj/effect/landmark/start/whiskey/researcher, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/whiskey_outpost/inside/hospital) "eP" = ( /obj/structure/bed/chair{ @@ -1288,10 +1085,7 @@ /turf/open/gm/dirt, /area/whiskey_outpost/outside/lane/four_south) "eS" = ( -/turf/open/floor{ - dir = 6; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/southeast, /area/whiskey_outpost/inside/hospital) "eT" = ( /obj/structure/window/reinforced{ @@ -1307,17 +1101,12 @@ layer = 3.5; pixel_y = 13 }, -/turf/open/floor/almayer{ - icon_state = "orangefull" - }, +/turf/open/floor/almayer/orangefull, /area/whiskey_outpost/inside/living) "eU" = ( /obj/structure/closet/crate, /obj/item/storage/toolbox/emergency, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/whiskey_outpost/inside/supply) "eW" = ( /obj/structure/surface/rack, @@ -1325,9 +1114,7 @@ dir = 1 }, /obj/structure/largecrate/supply/ammo/sentry, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/whiskey_outpost/inside/supply) "eX" = ( /obj/structure/machinery/light{ @@ -1342,20 +1129,14 @@ "eZ" = ( /obj/structure/disposalpipe/segment, /obj/structure/curtain, -/turf/open/floor{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/east, /area/whiskey_outpost/inside/hospital) "fb" = ( /turf/open/gm/dirtgrassborder/grassdirt_corner/north_east, /area/whiskey_outpost/outside/lane/three_north) "fc" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/east, /area/whiskey_outpost/inside/hospital) "fd" = ( /obj/effect/landmark/start/whiskey/leader, @@ -1373,9 +1154,7 @@ dir = 8; icon_state = "shuttle_chair" }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/whiskey_outpost/outside/lane/four_north) "fh" = ( /obj/structure/surface/table/reinforced/prison, @@ -1386,9 +1165,7 @@ /obj/structure/closet/secure_closet/surgical{ pixel_x = 30 }, -/turf/open/floor{ - icon_state = "whitegreenfull" - }, +/turf/open/floor/whitegreenfull, /area/whiskey_outpost/inside/hospital) "fi" = ( /obj/structure/sign/safety/chem_lab, @@ -1397,79 +1174,10 @@ "fj" = ( /turf/open/floor/prison, /area/whiskey_outpost/inside/bunker) -"fk" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/storage/firstaid/rad, -/obj/item/storage/firstaid/rad, -/obj/item/storage/firstaid/rad, -/obj/item/storage/firstaid/rad, -/obj/item/storage/firstaid/toxin{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/storage/firstaid/toxin{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/storage/firstaid/toxin{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/storage/firstaid/toxin{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/storage/firstaid/fire, -/obj/item/storage/firstaid/fire, -/obj/item/storage/firstaid/fire, -/obj/item/storage/firstaid/fire, -/obj/item/storage/firstaid/regular{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/storage/firstaid/regular{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/storage/firstaid/regular{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/storage/firstaid/regular{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/storage/firstaid/o2, -/obj/item/storage/firstaid/o2, -/obj/item/storage/firstaid/o2, -/obj/item/storage/firstaid/o2, -/obj/item/storage/firstaid/adv{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/storage/firstaid/adv{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/storage/firstaid/adv{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/storage/firstaid/adv{ - pixel_x = 3; - pixel_y = 3 - }, -/turf/open/floor{ - dir = 5; - icon_state = "whitegreen" - }, -/area/whiskey_outpost/inside/hospital) "fl" = ( /obj/structure/surface/rack, /obj/item/ammo_magazine/sentry, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/whiskey_outpost/inside/supply) "fo" = ( /obj/structure/curtain, @@ -1481,10 +1189,7 @@ /obj/effect/landmark/wo_supplies/storage/belts/medical, /obj/effect/landmark/wo_supplies/storage/belts/medical, /obj/effect/landmark/wo_supplies/storage/belts/medical, -/turf/open/floor{ - dir = 8; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/west, /area/whiskey_outpost/inside/hospital) "fq" = ( /obj/effect/decal/warning_stripes/asteroid{ @@ -1495,10 +1200,7 @@ icon_state = "warning_s" }, /obj/effect/landmark/start/whiskey/medic, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/inside/bunker/bunker/front) "fr" = ( /obj/effect/landmark/start/whiskey/marine, @@ -1509,10 +1211,7 @@ /turf/open/floor/prison, /area/whiskey_outpost/inside/cic) "fu" = ( -/turf/open/floor/plating{ - dir = 10; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/southwest, /area/whiskey_outpost/outside/north/northeast) "fv" = ( /obj/structure/barricade/handrail/wire{ @@ -1524,9 +1223,7 @@ /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "orangefull" - }, +/turf/open/floor/almayer/orangefull, /area/whiskey_outpost/inside/living) "fx" = ( /turf/open/floor/prison, @@ -1536,16 +1233,12 @@ /area/whiskey_outpost/outside/north/beach) "fA" = ( /obj/effect/landmark/start/whiskey/executive, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/whiskey_outpost/inside/cic) "fB" = ( /obj/structure/bed/chair/comfy, /obj/effect/landmark/start/whiskey/commander, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/whiskey_outpost/inside/cic) "fC" = ( /obj/structure/barricade/handrail{ @@ -1559,32 +1252,22 @@ dir = 8 }, /obj/effect/landmark/start/whiskey/marine, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/inside/bunker/bunker/front) "fF" = ( /obj/effect/landmark/start/whiskey/warrant, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/whiskey_outpost/inside/cic) "fG" = ( /obj/effect/landmark/start/whiskey/engineering, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/engineering) "fH" = ( /obj/structure/machinery/door/airlock/almayer/medical{ name = "Hypersleep Room"; req_one_access_txt = "2;8;19" }, -/turf/open/floor{ - icon_state = "whitegreenfull" - }, +/turf/open/floor/whitegreenfull, /area/whiskey_outpost/inside/hospital) "fI" = ( /obj/structure/platform{ @@ -1605,10 +1288,7 @@ dir = 1; icon_state = "pipe-c" }, -/turf/open/floor{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/east, /area/whiskey_outpost/inside/hospital) "fQ" = ( /obj/structure/flora/jungle/planttop1, @@ -1632,31 +1312,21 @@ layer = 3.5; pixel_y = 13 }, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, +/turf/open/floor/almayer/redfull, /area/whiskey_outpost/inside/living) "fU" = ( /obj/item/lightstick/red/planted, -/turf/open/jungle{ - bushes_spawn = 0; - icon_state = "grass_impenetrable" - }, +/turf/open/jungle/impenetrable, /area/whiskey_outpost/outside/lane/one_north) "fV" = ( -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/inside/bunker/bunker/front) "fW" = ( /obj/structure/machinery/smartfridge/chemistry, /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor{ - icon_state = "whitegreenfull" - }, +/turf/open/floor/whitegreenfull, /area/whiskey_outpost/inside/hospital) "fX" = ( /obj/structure/barricade/sandbags/wired, @@ -1669,16 +1339,11 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor{ - dir = 9; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/northwest, /area/whiskey_outpost/inside/hospital) "fZ" = ( /obj/effect/landmark/start/whiskey/medic, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/whiskey_outpost/inside/hospital/triage) "ga" = ( /obj/structure/disposalpipe/junction{ @@ -1695,10 +1360,7 @@ dir = 2; icon_state = "pipe-c" }, -/turf/open/floor{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/north, /area/whiskey_outpost/inside/hospital) "gh" = ( /obj/effect/decal/medical_decals{ @@ -1706,10 +1368,7 @@ icon_state = "triagedecaldir" }, /obj/structure/disposalpipe/segment, -/turf/open/floor{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/north, /area/whiskey_outpost/inside/hospital) "gi" = ( /obj/effect/decal/medical_decals{ @@ -1719,19 +1378,14 @@ dir = 4; icon_state = "pipe-c" }, -/turf/open/floor{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/north, /area/whiskey_outpost/inside/hospital) "gj" = ( /turf/open/gm/dirtgrassborder/grassdirt_corner2/north_east, /area/whiskey_outpost/outside/lane/two_north) "gl" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/whiskey_outpost/inside/hospital/triage) "gn" = ( /obj/item/stack/cable_coil/cut, @@ -1739,9 +1393,7 @@ /area/whiskey_outpost/outside/lane/two_south) "go" = ( /obj/structure/machinery/cryopod, -/turf/open/floor/almayer{ - icon_state = "orangefull" - }, +/turf/open/floor/almayer/orangefull, /area/whiskey_outpost/inside/living) "gp" = ( /obj/structure/sign/prop1, @@ -1765,10 +1417,7 @@ pixel_x = 30; req_access = null }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/bunker/bunker/front) "gu" = ( /turf/open/gm/dirtgrassborder/south, @@ -1794,18 +1443,14 @@ /obj/structure/machinery/computer/card{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/whiskey_outpost/inside/cic) "gC" = ( /obj/structure/surface/table/woodentable/fancy, /obj/effect/landmark/map_item, /obj/item/folder/black_random, /obj/item/device/whistle, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/whiskey_outpost/inside/cic) "gE" = ( /obj/structure/surface/table/woodentable/fancy, @@ -1813,9 +1458,7 @@ dir = 1; layer = 2.99 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/whiskey_outpost/inside/cic) "gF" = ( /obj/structure/sign/poster{ @@ -1829,10 +1472,7 @@ /area/whiskey_outpost/inside/bunker/pillbox/four) "gH" = ( /obj/item/storage/box/explosive_mines, -/turf/open/floor/plating{ - dir = 1; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/north, /area/whiskey_outpost/outside/lane/one_north) "gI" = ( /obj/structure/machinery/door/airlock/almayer/medical/glass{ @@ -1840,18 +1480,14 @@ req_access_txt = "20"; req_one_access = null }, -/turf/open/floor{ - icon_state = "whitegreenfull" - }, +/turf/open/floor/whitegreenfull, /area/whiskey_outpost/inside/hospital) "gJ" = ( /obj/effect/decal/medical_decals{ icon_state = "triagedecaldir" }, /obj/structure/disposalpipe/segment, -/turf/open/floor{ - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen, /area/whiskey_outpost/inside/hospital) "gL" = ( /obj/structure/disposalpipe/segment, @@ -1865,10 +1501,7 @@ /turf/open/jungle, /area/whiskey_outpost/outside/lane/two_south) "gN" = ( -/turf/open/floor{ - dir = 1; - icon_state = "whitegreencorner" - }, +/turf/open/floor/whitegreencorner/north, /area/whiskey_outpost/inside/hospital) "gO" = ( /obj/structure/machinery/conveyor_switch{ @@ -1877,9 +1510,7 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/prison/darkyellowcorners2, /area/whiskey_outpost/inside/supply) "gP" = ( /obj/structure/machinery/door/airlock/almayer/medical{ @@ -1887,10 +1518,7 @@ name = "Operating Theatre"; req_one_access_txt = "2;8;19" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/whiskey_outpost/inside/hospital) "gS" = ( /obj/structure/machinery/door/airlock/almayer/medical{ @@ -1899,16 +1527,12 @@ req_one_access_txt = "2;8;19" }, /obj/structure/disposalpipe/segment, -/turf/open/floor{ - icon_state = "whitegreenfull" - }, +/turf/open/floor/whitegreenfull, /area/whiskey_outpost/inside/hospital) "gT" = ( /obj/structure/prop/almayer/computers/sensor_computer3, /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/whiskey_outpost/inside/cic) "gU" = ( /turf/open/gm/river, @@ -1922,32 +1546,16 @@ /obj/structure/prop/almayer/computers/sensor_computer1{ name = "radar computer" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/whiskey_outpost/inside/cic) -"gX" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/effect/landmark/wo_supplies/storage/belts/lifesaver, -/obj/effect/landmark/wo_supplies/storage/belts/lifesaver, -/obj/effect/landmark/wo_supplies/storage/belts/lifesaver, -/turf/open/floor{ - dir = 4; - icon_state = "whitegreen" - }, -/area/whiskey_outpost/inside/hospital) "gZ" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/reagent_container/glass/beaker/bluespace, -/turf/open/floor{ - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen, /area/whiskey_outpost/inside/hospital) "hb" = ( /obj/effect/landmark/start/whiskey/researcher, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/whiskey_outpost/inside/hospital) "hd" = ( /obj/structure/machinery/defenses/sentry/premade, @@ -1978,9 +1586,7 @@ dir = 8 }, /obj/item/clipboard, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/whiskey_outpost/inside/cic) "hk" = ( /obj/structure/bed/chair/office/dark{ @@ -1995,10 +1601,7 @@ dir = 1; icon_state = "triagedecaldir" }, -/turf/open/floor{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/north, /area/whiskey_outpost/inside/hospital) "hm" = ( /obj/structure/machinery/light/small{ @@ -2008,10 +1611,7 @@ /obj/structure/disposalpipe/trunk{ dir = 8 }, -/turf/open/floor{ - dir = 5; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/northeast, /area/whiskey_outpost/inside/hospital) "hn" = ( /obj/structure/window/framed/colony/reinforced, @@ -2044,10 +1644,7 @@ /turf/open/gm/coast/beachcorner2/south_west, /area/whiskey_outpost/outside/lane/four_north) "ht" = ( -/turf/open/floor{ - dir = 8; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/west, /area/whiskey_outpost/inside/hospital) "hu" = ( /obj/structure/surface/table/reinforced/prison, @@ -2083,10 +1680,7 @@ pixel_y = 28 }, /obj/effect/landmark/start/whiskey/doctor, -/turf/open/floor{ - dir = 9; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/northwest, /area/whiskey_outpost/inside/hospital) "hy" = ( /obj/item/lightstick/red/planted, @@ -2100,10 +1694,7 @@ dir = 4; icon_state = "pipe-c" }, -/turf/open/floor{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/north, /area/whiskey_outpost/inside/hospital) "hA" = ( /obj/structure/disposalpipe/segment{ @@ -2126,10 +1717,7 @@ dir = 4; sortType = "Chemistry" }, -/turf/open/floor{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/north, /area/whiskey_outpost/inside/hospital) "hC" = ( /obj/structure/sign/prop1, @@ -2137,18 +1725,10 @@ /area/whiskey_outpost/inside/caves/tunnel) "hD" = ( /obj/structure/machinery/iv_drip, -/obj/structure/machinery/iv_drip, -/obj/structure/machinery/iv_drip, -/obj/structure/machinery/iv_drip, -/obj/structure/machinery/iv_drip, -/obj/structure/machinery/iv_drip, /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/east, /area/whiskey_outpost/inside/hospital) "hE" = ( /obj/effect/decal/medical_decals{ @@ -2159,10 +1739,7 @@ dir = 4; sortType = "Hospital" }, -/turf/open/floor{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/north, /area/whiskey_outpost/inside/hospital) "hF" = ( /obj/effect/decal/medical_decals{ @@ -2172,11 +1749,12 @@ dir = 2; icon_state = "pipe-c" }, -/turf/open/floor{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/north, /area/whiskey_outpost/inside/hospital) +"hH" = ( +/obj/structure/machinery/power/reactor/colony, +/turf/open/floor/prison/floor_plate/southwest, +/area/whiskey_outpost/inside/engineering) "hI" = ( /turf/open/gm/grass/gbcorner/south_west, /area/whiskey_outpost/outside/lane/one_north) @@ -2206,24 +1784,17 @@ dir = 4; icon_state = "triagedecaldir" }, -/turf/open/floor{ - dir = 5; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/northeast, /area/whiskey_outpost/inside/hospital) "hO" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper Bunker" }, /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/whiskey_outpost/inside/living) "hQ" = ( -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/whiskey_outpost/inside/living) "hR" = ( /obj/structure/platform_decoration{ @@ -2232,10 +1803,7 @@ /turf/open/jungle, /area/whiskey_outpost/outside/south) "hS" = ( -/turf/open/floor/plating{ - dir = 4; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/east, /area/whiskey_outpost/outside/lane/one_north) "hT" = ( /obj/structure/pipes/standard/tank/oxygen, @@ -2243,19 +1811,14 @@ pixel_x = -6; pixel_y = 32 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/whiskey_outpost/inside/hospital/triage) "hV" = ( /obj/structure/bed/chair/comfy/beige{ dir = 8 }, /obj/effect/landmark/start/whiskey/bridge, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/bunker/bunker/front) "hW" = ( /obj/structure/machinery/light{ @@ -2267,9 +1830,7 @@ /obj/structure/machinery/sleep_console{ dir = 1 }, -/turf/open/floor{ - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen, /area/whiskey_outpost/inside/hospital/triage) "hY" = ( /obj/structure/window/reinforced{ @@ -2285,9 +1846,7 @@ /obj/structure/bed{ can_buckle = 0 }, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, +/turf/open/floor/almayer/redfull, /area/whiskey_outpost/inside/living) "hZ" = ( /obj/structure/machinery/vending/cola, @@ -2306,9 +1865,7 @@ /obj/effect/decal/medical_decals{ icon_state = "triagedecaldir" }, -/turf/open/floor{ - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen, /area/whiskey_outpost/inside/hospital) "ih" = ( /obj/structure/machinery/light{ @@ -2322,9 +1879,7 @@ req_access_txt = "20"; req_one_access = null }, -/turf/open/floor{ - icon_state = "whitegreenfull" - }, +/turf/open/floor/whitegreenfull, /area/whiskey_outpost/inside/hospital) "ij" = ( /obj/effect/decal/cleanable/blood/oil, @@ -2335,9 +1890,7 @@ /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/whiskey_outpost/inside/bunker/bunker/front) "il" = ( /obj/structure/machinery/vending/coffee, @@ -2350,19 +1903,13 @@ /obj/structure/machinery/power/apc/almayer{ dir = 4 }, -/turf/open/floor{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/east, /area/whiskey_outpost/inside/hospital) "in" = ( /obj/structure/platform_decoration{ dir = 4 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/outside/north/platform) "io" = ( /obj/structure/flora/jungle/plantbot1, @@ -2376,10 +1923,7 @@ /area/whiskey_outpost/outside/lane/four_north) "iq" = ( /obj/structure/largecrate/supply/supplies/mre, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/whiskey_outpost/inside/living) "is" = ( /obj/structure/disposalpipe/trunk, @@ -2394,10 +1938,7 @@ /turf/open/floor/prison, /area/whiskey_outpost/inside/living) "iu" = ( -/turf/open/floor{ - dir = 8; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/west, /area/whiskey_outpost/inside/hospital/triage) "iv" = ( /obj/structure/platform{ @@ -2409,22 +1950,14 @@ /obj/structure/platform_decoration{ dir = 5 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/outside/north/platform) "iw" = ( -/turf/open/floor/plating{ - dir = 5; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/northeast, /area/whiskey_outpost/outside/north/northeast) "iy" = ( /obj/effect/landmark/start/whiskey/cargo, -/turf/open/floor/prison{ - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2, /area/whiskey_outpost/inside/supply) "iz" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/medidoor{ @@ -2435,9 +1968,7 @@ dir = 2; icon_state = "pipe-c" }, -/turf/open/floor{ - icon_state = "whitegreenfull" - }, +/turf/open/floor/whitegreenfull, /area/whiskey_outpost/inside/hospital) "iA" = ( /obj/structure/barricade/plasteel/wired, @@ -2447,9 +1978,7 @@ /obj/structure/disposalpipe/sortjunction/flipped{ sortType = "South-Eastern Platform" }, -/turf/open/floor{ - icon_state = "whitegreenfull" - }, +/turf/open/floor/whitegreenfull, /area/whiskey_outpost/inside/hospital) "iC" = ( /obj/structure/disposalpipe/segment{ @@ -2469,17 +1998,12 @@ /area/whiskey_outpost/outside/lane/two_south) "iI" = ( /obj/effect/landmark/start/whiskey/marine, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/inside/bunker/bunker/front) "iJ" = ( /obj/structure/machinery/cm_vending/sorted/medical, -/turf/open/floor{ - dir = 10; - icon_state = "whitegreen" - }, +/obj/structure/medical_supply_link/green, +/turf/open/floor/whitegreen/southwest, /area/whiskey_outpost/inside/hospital) "iK" = ( /obj/structure/machinery/door/poddoor{ @@ -2509,16 +2033,12 @@ /area/whiskey_outpost/outside/mortar_pit) "iN" = ( /obj/structure/machinery/cm_vending/sorted/medical, -/turf/open/floor{ - icon_state = "whitegreen" - }, +/obj/structure/medical_supply_link/green, +/turf/open/floor/whitegreen, /area/whiskey_outpost/inside/hospital) "iO" = ( /obj/structure/machinery/cm_vending/sorted/medical/blood, -/turf/open/floor{ - dir = 6; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/southeast, /area/whiskey_outpost/inside/hospital) "iP" = ( /obj/structure/disposalpipe/segment{ @@ -2526,24 +2046,16 @@ icon_state = "pipe-c" }, /obj/effect/landmark/start/whiskey/marine, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/outside/north/platform) "iQ" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/device/flashlight/lamp, /obj/item/device/binoculars, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/whiskey_outpost/inside/cic) "iR" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/north, /area/whiskey_outpost/inside/bunker/bunker/front) "iS" = ( /obj/effect/landmark/start/whiskey/police, @@ -2566,9 +2078,7 @@ /obj/effect/decal/medical_decals{ icon_state = "docstriping" }, -/turf/open/floor{ - icon_state = "whitegreenfull" - }, +/turf/open/floor/whitegreenfull, /area/whiskey_outpost/inside/hospital) "iY" = ( /obj/structure/surface/table/reinforced/prison, @@ -2581,9 +2091,7 @@ }, /obj/item/tool/pen, /obj/item/paper_bin, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/whiskey_outpost/inside/cic) "iZ" = ( /obj/structure/machinery/autodoc_console, @@ -2591,10 +2099,7 @@ icon_state = "triagedecalleft" }, /obj/effect/landmark/start/whiskey/doctor, -/turf/open/floor{ - dir = 9; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/northwest, /area/whiskey_outpost/inside/hospital) "jb" = ( /obj/effect/decal/warning_stripes/asteroid{ @@ -2602,20 +2107,14 @@ icon_state = "warning_s" }, /obj/item/device/flashlight/lamp/tripod/grey, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/outside/north) "je" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/recharger{ pixel_y = 5 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost) "jf" = ( /obj/effect/spawner/gibspawner/human, @@ -2638,10 +2137,7 @@ icon_state = "triagedecaldir" }, /obj/effect/landmark/start/whiskey/doctor, -/turf/open/floor{ - dir = 5; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/northeast, /area/whiskey_outpost/inside/hospital) "jj" = ( /obj/structure/machinery/medical_pod/bodyscanner{ @@ -2651,9 +2147,7 @@ dir = 1; icon_state = "docstripingdir" }, -/turf/open/floor{ - icon_state = "whitegreenfull" - }, +/turf/open/floor/whitegreenfull, /area/whiskey_outpost/inside/hospital) "jk" = ( /obj/structure/machinery/medical_pod/autodoc/unskilled, @@ -2661,9 +2155,7 @@ dir = 8; icon_state = "docstripingdir" }, -/turf/open/floor{ - icon_state = "whitegreenfull" - }, +/turf/open/floor/whitegreenfull, /area/whiskey_outpost/inside/hospital) "jl" = ( /obj/structure/machinery/cm_vending/sorted/medical/wall_med{ @@ -2673,9 +2165,7 @@ dir = 4; icon_state = "shuttle_chair" }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/whiskey_outpost/outside/lane/four_north) "jm" = ( /obj/structure/machinery/cm_vending/sorted/marine_food, @@ -2684,9 +2174,7 @@ "jn" = ( /obj/structure/machinery/prop/almayer/CICmap, /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/whiskey_outpost/inside/cic) "jo" = ( /obj/structure/bed/chair/office/dark{ @@ -2724,20 +2212,14 @@ pixel_x = -30; req_access = null }, -/turf/open/floor{ - dir = 8; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/west, /area/whiskey_outpost/inside/hospital) "jt" = ( /obj/structure/bed/chair/office/dark{ dir = 4; layer = 3.25 }, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "emerald" - }, +/turf/open/floor/almayer/emerald/southeast, /area/whiskey_outpost/inside/cic) "ju" = ( /obj/item/toy/beach_ball/holoball, @@ -2745,42 +2227,30 @@ dir = 8; icon_state = "warning_s" }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/outside/north) "jv" = ( /obj/structure/surface/rack, /obj/structure/largecrate/supply/ammo/sentry, /obj/structure/largecrate/supply/ammo/m56d, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/whiskey_outpost/inside/supply) "jA" = ( /obj/effect/decal/medical_decals{ icon_state = "triagedecalleft" }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/whiskey_outpost/inside/hospital) "jB" = ( /turf/closed/wall/r_wall/unmeltable, /area/whiskey_outpost/inside/bunker/bunker/front) "jD" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/whiskey_outpost/inside/hospital) "jE" = ( /obj/effect/landmark/start/whiskey/marine, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/bunker/pillbox/two) "jF" = ( /obj/structure/surface/table/reinforced/prison, @@ -2796,58 +2266,38 @@ pixel_x = -2; pixel_y = -2 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/inside/bunker/bunker/front) "jG" = ( /obj/effect/spawner/random/tool, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/inside/bunker/bunker/front) "jH" = ( -/turf/open/floor{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/east, /area/whiskey_outpost/inside/hospital) "jI" = ( /obj/structure/bed/chair/dropship/passenger{ dir = 8; icon_state = "shuttle_chair" }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/whiskey_outpost/outside/lane/four_north) "jJ" = ( -/turf/open/floor{ - dir = 4; - icon_state = "whitegreencorner" - }, +/turf/open/floor/whitegreencorner/east, /area/whiskey_outpost/inside/hospital) "jL" = ( /obj/structure/platform_decoration, /turf/open/jungle, /area/whiskey_outpost/outside/lane/two_south) "jM" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/north, /area/whiskey_outpost/inside/living) "jN" = ( /obj/structure/bed/chair/office/dark{ dir = 1 }, /obj/effect/landmark/start/whiskey/bridge, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/northwest, /area/whiskey_outpost/inside/cic) "jP" = ( /turf/closed/shuttle/dropship{ @@ -2908,15 +2358,11 @@ layer = 3.2; pixel_y = 20 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/whiskey_outpost/inside/cic) "jZ" = ( /obj/structure/machinery/sleep_console, -/turf/open/floor{ - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen, /area/whiskey_outpost/inside/hospital/triage) "ka" = ( /obj/structure/sign/poster{ @@ -2928,9 +2374,7 @@ /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, +/turf/open/floor/almayer/redfull, /area/whiskey_outpost/inside/living) "ke" = ( /obj/item/lightstick/red/planted, @@ -2942,26 +2386,17 @@ icon_state = "warning_s" }, /obj/effect/landmark/start/whiskey/medic, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/inside/bunker/bunker/front) "kh" = ( /obj/structure/machinery/cm_vending/gear/medic, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost) "kj" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost) "kk" = ( /obj/structure/machinery/disposal, @@ -2993,45 +2428,32 @@ dir = 4 }, /obj/item/device/whistle, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/whiskey_outpost/inside/cic) "kq" = ( /obj/structure/machinery/cryopod, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, +/turf/open/floor/almayer/redfull, /area/whiskey_outpost/inside/living) "ks" = ( /turf/closed/wall/r_wall, /area/whiskey_outpost/inside/bunker/bunker/front) "kt" = ( /obj/structure/barricade/metal/wired, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/bunker/bunker/front) "kv" = ( /obj/structure/bed/roller, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/whiskey_outpost/inside/hospital) "kw" = ( /obj/effect/decal/medical_decals{ dir = 4; icon_state = "triagedecaldir" }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/whiskey_outpost/inside/hospital) "kx" = ( -/turf/open/floor/almayer{ - icon_state = "emeraldfull" - }, +/turf/open/floor/almayer/emeraldfull, /area/whiskey_outpost/inside/living) "ky" = ( /obj/structure/disposalpipe/segment{ @@ -3041,18 +2463,12 @@ /area/whiskey_outpost/outside/lane/two_north) "kz" = ( /obj/structure/fence, -/turf/open/jungle{ - bushes_spawn = 0; - icon_state = "grass_impenetrable" - }, +/turf/open/jungle/impenetrable, /area/whiskey_outpost/outside/south/far) "kA" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/storage/box/bodybags, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost) "kB" = ( /obj/structure/flora/jungle/plantbot1, @@ -3069,15 +2485,11 @@ id = "WOlineshutters2"; name = "\improper Supply Depo Line 2" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/whiskey_outpost/inside/supply) "kE" = ( /obj/structure/machinery/computer/cryopod, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/whiskey_outpost/inside/supply) "kG" = ( /obj/structure/bed/chair{ @@ -3087,28 +2499,21 @@ /area/whiskey_outpost/inside/living) "kI" = ( /obj/structure/barricade/sandbags/wired, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/whiskey_outpost/outside/north/platform) "kJ" = ( /obj/structure/machinery/medical_pod/sleeper, /obj/effect/decal/medical_decals{ icon_state = "docstriping" }, -/turf/open/floor{ - icon_state = "whitegreenfull" - }, +/turf/open/floor/whitegreenfull, /area/whiskey_outpost/inside/hospital) "kK" = ( /obj/structure/bed/chair/office/dark{ dir = 1 }, /obj/effect/landmark/start/whiskey/bridge, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/almayer/red/northwest, /area/whiskey_outpost/inside/cic) "kM" = ( /obj/structure/machinery/sleep_console, @@ -3116,23 +2521,16 @@ icon_state = "triagedecalleft" }, /obj/effect/landmark/start/whiskey/doctor, -/turf/open/floor{ - dir = 8; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/west, /area/whiskey_outpost/inside/hospital) "kN" = ( /obj/structure/machinery/iv_drip, /obj/structure/disposalpipe/segment, -/turf/open/floor{ - icon_state = "whitegreenfull" - }, +/turf/open/floor/whitegreenfull, /area/whiskey_outpost/inside/hospital) "kO" = ( /obj/structure/machinery/iv_drip, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/whiskey_outpost/inside/hospital) "kP" = ( /obj/structure/machinery/sleep_console{ @@ -3143,10 +2541,7 @@ icon_state = "triagedecaldir" }, /obj/effect/landmark/start/whiskey/doctor, -/turf/open/floor{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/east, /area/whiskey_outpost/inside/hospital) "kQ" = ( /obj/structure/platform{ @@ -3158,10 +2553,7 @@ /turf/open/floor/prison, /area/whiskey_outpost/inside/supply) "kV" = ( -/turf/open/jungle{ - bushes_spawn = 0; - icon_state = "grass_impenetrable" - }, +/turf/open/jungle/impenetrable, /area/whiskey_outpost/outside/south) "kX" = ( /obj/structure/machinery/medical_pod/sleeper{ @@ -3171,34 +2563,23 @@ dir = 8; icon_state = "docstripingdir" }, -/turf/open/floor{ - icon_state = "whitegreenfull" - }, +/turf/open/floor/whitegreenfull, /area/whiskey_outpost/inside/hospital) "kY" = ( /obj/effect/landmark/start/whiskey/cmo, -/turf/open/floor{ - icon_state = "whitegreenfull" - }, +/turf/open/floor/whitegreenfull, /area/whiskey_outpost/inside/hospital) "kZ" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/west, /area/whiskey_outpost/inside/bunker) "la" = ( -/turf/open/floor{ - icon_state = "whitegreenfull" - }, +/turf/open/floor/whitegreenfull, /area/whiskey_outpost/inside/hospital) "lc" = ( /turf/open/gm/coast/west, /area/whiskey_outpost/outside/north/northeast) "ld" = ( -/turf/open/shuttle/dropship{ - icon_state = "floor8" - }, +/turf/open/shuttle/dropship/light_grey_single_wide_left_to_right, /area/whiskey_outpost/outside/lane/four_north) "le" = ( /obj/structure/surface/table, @@ -3217,9 +2598,7 @@ /obj/structure/surface/table/reinforced/prison, /obj/item/device/flashlight/lamp, /obj/item/tool/crowbar, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/whiskey_outpost/inside/cic) "lj" = ( /obj/structure/disposalpipe/segment{ @@ -3232,29 +2611,21 @@ /turf/open/gm/grass/grassbeach/south, /area/whiskey_outpost/outside/south) "lm" = ( -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/whiskey_outpost/inside/cic) "lo" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22"; pixel_y = 8 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost) "lp" = ( /obj/item/lightstick/red/planted, /turf/open/gm/dirt, /area/whiskey_outpost/outside/south/very_far) "lq" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/whiskey_outpost/inside/bunker) "lr" = ( /obj/structure/disposalpipe/segment, @@ -3271,9 +2642,7 @@ "lt" = ( /obj/structure/bed/roller, /obj/structure/disposalpipe/segment, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/whiskey_outpost/inside/hospital) "lu" = ( /obj/structure/surface/table, @@ -3287,18 +2656,14 @@ /obj/item/device/flashlight/lamp, /obj/item/tool/extinguisher, /obj/item/device/binoculars, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/whiskey_outpost/inside/cic) "lw" = ( /turf/closed/wall/r_wall, /area/whiskey_outpost/inside/supply) "lx" = ( /obj/structure/machinery/cm_vending/sorted/uniform_supply/squad_prep/wo, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/whiskey_outpost/inside/bunker/bunker/front) "lA" = ( /turf/closed/wall/rock/brown, @@ -3306,10 +2671,7 @@ "lB" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/facepaint/green, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost) "lC" = ( /obj/structure/disposalpipe/segment{ @@ -3349,10 +2711,7 @@ pixel_x = -30; req_access = null }, -/turf/open/floor{ - dir = 8; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/west, /area/whiskey_outpost/inside/hospital) "lH" = ( /obj/structure/disposalpipe/segment{ @@ -3387,10 +2746,7 @@ /obj/effect/decal/medical_decals{ icon_state = "triagedecaldir" }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost) "lP" = ( /obj/structure/surface/table, @@ -3399,10 +2755,7 @@ /area/whiskey_outpost/inside/living) "lS" = ( /obj/structure/largecrate/supply/medicine/iv, -/turf/open/floor{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/north, /area/whiskey_outpost/inside/hospital/triage) "lU" = ( /obj/effect/landmark/start/whiskey/engineer, @@ -3423,9 +2776,7 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe, /area/whiskey_outpost/inside/cic) "lX" = ( /obj/effect/decal/warning_stripes/asteroid{ @@ -3442,12 +2793,6 @@ /obj/structure/flora/bush/ausbushes/reedbush, /turf/open/gm/river, /area/whiskey_outpost/outside/lane/four_south) -"mb" = ( -/turf/open/jungle{ - bushes_spawn = 0; - icon_state = "grass_impenetrable" - }, -/area/whiskey_outpost/outside/south/very_far) "mc" = ( /obj/structure/machinery/vending/snack, /obj/structure/machinery/light/small{ @@ -3456,9 +2801,7 @@ /turf/open/floor/prison, /area/whiskey_outpost) "md" = ( -/turf/open/floor/almayer{ - icon_state = "orangefull" - }, +/turf/open/floor/almayer/orangefull, /area/whiskey_outpost/inside/living) "mf" = ( /turf/open/jungle, @@ -3467,9 +2810,7 @@ /turf/open/floor/prison, /area/whiskey_outpost) "mi" = ( -/turf/open/floor/prison{ - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe, /area/whiskey_outpost/inside/cic) "mj" = ( /obj/effect/spawner/gibspawner/human, @@ -3477,25 +2818,17 @@ /area/whiskey_outpost/outside/lane/one_south) "ml" = ( /obj/effect/landmark/start/whiskey/marine, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/bunker/pillbox/four) "mn" = ( /obj/structure/surface/rack, /obj/item/storage/large_holster/machete/full, /obj/item/storage/large_holster/machete/full, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/outside/lane/three_south) "mo" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe, /area/whiskey_outpost/inside/cic) "mp" = ( /obj/structure/barricade/sandbags/wired{ @@ -3523,9 +2856,7 @@ dir = 1; icon_state = "docstripingdir" }, -/turf/open/floor{ - icon_state = "whitegreenfull" - }, +/turf/open/floor/whitegreenfull, /area/whiskey_outpost/inside/hospital) "mw" = ( /turf/open/gm/dirtgrassborder/west, @@ -3535,9 +2866,7 @@ /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe, /area/whiskey_outpost/inside/cic) "my" = ( /turf/open/gm/dirtgrassborder/grassdirt_corner2/south_west, @@ -3553,9 +2882,7 @@ }, /obj/item/weapon/gun/rifle/lmg, /obj/item/weapon/gun/rifle/lmg, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/whiskey_outpost/outside/lane/four_north) "mC" = ( /obj/structure/machinery/power/apc/almayer{ @@ -3565,10 +2892,7 @@ /area/whiskey_outpost) "mD" = ( /obj/item/device/flashlight/lamp/tripod/grey, -/turf/open/jungle{ - bushes_spawn = 0; - icon_state = "grass_impenetrable" - }, +/turf/open/jungle/impenetrable, /area/whiskey_outpost/outside/north) "mE" = ( /obj/structure/machinery/autodoc_console{ @@ -3579,10 +2903,7 @@ icon_state = "triagedecaldir" }, /obj/effect/landmark/start/whiskey/doctor, -/turf/open/floor{ - dir = 6; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/southeast, /area/whiskey_outpost/inside/hospital) "mF" = ( /obj/structure/surface/table, @@ -3611,10 +2932,7 @@ /obj/item/device/whistle{ pixel_y = 14 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/bunker/bunker/front) "mI" = ( /obj/structure/sign/poster, @@ -3626,31 +2944,23 @@ }, /obj/effect/decal/cleanable/blood, /obj/effect/spawner/gibspawner/human, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/whiskey_outpost/outside/lane/four_north) "mL" = ( /obj/structure/window/framed/colony/reinforced, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/whiskey_outpost/inside/cic) "mM" = ( /obj/structure/machinery/door/airlock/almayer/command{ dir = 2; name = "\improper Combat Information Center" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/whiskey_outpost/inside/cic) "mN" = ( /obj/structure/window/framed/colony/reinforced, /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/whiskey_outpost/inside/cic) "mQ" = ( /obj/structure/disposalpipe/segment, @@ -3672,10 +2982,7 @@ }, /obj/structure/machinery/light/small, /obj/effect/landmark/start/whiskey/doctor, -/turf/open/floor{ - dir = 10; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/southwest, /area/whiskey_outpost/inside/hospital) "mT" = ( /turf/closed/wall/rock/brown, @@ -3685,9 +2992,7 @@ dir = 8; id = "crate" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/whiskey_outpost/inside/supply) "mV" = ( /obj/structure/sign/poster{ @@ -3717,9 +3022,7 @@ pixel_x = 20 }, /obj/structure/disposalpipe/segment, -/turf/open/floor{ - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen, /area/whiskey_outpost/inside/hospital) "nb" = ( /obj/structure/machinery/autodoc_console, @@ -3727,10 +3030,7 @@ icon_state = "triagedecalleft" }, /obj/effect/landmark/start/whiskey/doctor, -/turf/open/floor{ - dir = 10; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/southwest, /area/whiskey_outpost/inside/hospital) "nc" = ( /obj/structure/disposalpipe/trunk, @@ -3738,35 +3038,17 @@ /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost) "nd" = ( -/turf/open/floor{ - dir = 1; - icon_state = "whitegreencorner" - }, +/turf/open/floor/whitegreencorner/north, /area/whiskey_outpost/inside/hospital/triage) -"ne" = ( -/obj/effect/decal/medical_decals{ - icon_state = "docstripingdir" - }, -/obj/structure/machinery/cm_vending/gear/medic, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, -/area/whiskey_outpost) "nf" = ( /obj/structure/disposalpipe/segment, /obj/effect/decal/medical_decals{ icon_state = "triagedecalbottomleft" }, -/turf/open/floor{ - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen, /area/whiskey_outpost/inside/hospital) "ng" = ( /turf/open/gm/coast/beachcorner/north_east, @@ -3776,16 +3058,11 @@ /area/whiskey_outpost/outside/south/very_far) "ni" = ( /obj/structure/machinery/cm_vending/sorted/medical/marinemed, -/obj/effect/decal/medical_decals{ - icon_state = "docstripingdir" - }, /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/obj/structure/medical_supply_link, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost) "nj" = ( /turf/open/gm/grass/gbcorner/south_west, @@ -3802,29 +3079,20 @@ /obj/effect/decal/warning_stripes/asteroid{ icon_state = "warning_s" }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/outside/north) "nn" = ( /obj/effect/decal/medical_decals{ icon_state = "triagedecalbottom" }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost) "no" = ( /obj/effect/decal/medical_decals{ icon_state = "triagedecalbottom" }, /obj/structure/disposalpipe/segment, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost) "np" = ( /obj/structure/sign/safety/medical{ @@ -3845,10 +3113,7 @@ icon_state = "triagedecaldir" }, /obj/effect/landmark/start/whiskey/doctor, -/turf/open/floor{ - dir = 6; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/southeast, /area/whiskey_outpost/inside/hospital) "nt" = ( /obj/structure/barricade/sandbags/wired{ @@ -3856,47 +3121,30 @@ icon_state = "sandbag_0" }, /obj/structure/barricade/sandbags/wired, -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/east, /area/whiskey_outpost/outside/north/platform) "nv" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/north, /area/whiskey_outpost) "nw" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 1; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/north, /area/whiskey_outpost) "ny" = ( /obj/structure/machinery/telecomms/relay/preset/tower, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost) "nz" = ( /obj/structure/bed/chair, /obj/effect/landmark/start/whiskey/marine, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/inside/bunker/bunker/front) "nA" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/medidoor{ name = "\improper Hospital"; req_one_access = null }, -/turf/open/floor{ - icon_state = "whitegreenfull" - }, +/turf/open/floor/whitegreenfull, /area/whiskey_outpost/inside/hospital) "nB" = ( /obj/structure/machinery/vending/cigarette/colony, @@ -3963,10 +3211,7 @@ dir = 2; icon_state = "pipe-c" }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost) "nO" = ( /obj/structure/sign/safety/medical, @@ -3974,13 +3219,8 @@ /area/whiskey_outpost) "nR" = ( /obj/structure/machinery/cm_vending/sorted/medical/marinemed, -/obj/effect/decal/medical_decals{ - icon_state = "docstripingdir" - }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/obj/structure/medical_supply_link, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost) "nS" = ( /obj/structure/disposalpipe/segment{ @@ -3993,17 +3233,11 @@ /obj/structure/disposalpipe/sortjunction/flipped{ sortType = "Mortar Pit" }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/north, /area/whiskey_outpost/inside/bunker) "nW" = ( /obj/structure/machinery/light/small, -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/east, /area/whiskey_outpost/inside/bunker) "nY" = ( /obj/structure/machinery/light/small{ @@ -4011,15 +3245,10 @@ }, /obj/item/storage/belt/medical/lifesaver/full, /obj/structure/surface/table/reinforced/prison, -/turf/open/floor{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/north, /area/whiskey_outpost/inside/hospital/triage) "oa" = ( -/turf/open/floor/almayer{ - icon_state = "bluefull" - }, +/turf/open/floor/almayer/bluefull, /area/whiskey_outpost/inside/living) "ob" = ( /obj/structure/barricade/plasteel/wired, @@ -4027,9 +3256,7 @@ /area/whiskey_outpost/outside/lane/two_north) "od" = ( /obj/structure/curtain/shower, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white, /area/whiskey_outpost/inside/living) "oe" = ( /obj/structure/sign/safety/medical{ @@ -4038,10 +3265,7 @@ /turf/closed/wall/r_wall, /area/whiskey_outpost) "of" = ( -/turf/open/jungle{ - bushes_spawn = 0; - icon_state = "grass_impenetrable" - }, +/turf/open/jungle/impenetrable, /area/whiskey_outpost/outside/lane/four_south) "oi" = ( /obj/structure/sign/poster, @@ -4049,10 +3273,7 @@ /area/whiskey_outpost/inside/hospital/triage) "om" = ( /obj/structure/largecrate/random/case, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/outside/lane/three_south) "oo" = ( /obj/structure/machinery/light/small{ @@ -4062,16 +3283,11 @@ /area/whiskey_outpost/inside/living) "oq" = ( /obj/structure/machinery/colony_floodlight, -/turf/open/jungle{ - bushes_spawn = 0; - icon_state = "grass_impenetrable" - }, +/turf/open/jungle/impenetrable, /area/whiskey_outpost/outside/south) "or" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/whiskey_outpost/inside/living) "os" = ( /obj/structure/shuttle/engine/propulsion{ @@ -4087,35 +3303,24 @@ /obj/structure/machinery/light, /obj/structure/surface/rack, /obj/item/tool/hand_labeler, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/whiskey_outpost/inside/supply) "ow" = ( /obj/structure/machinery/power/apc/almayer{ dir = 1 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/outside/mortar_pit) "ox" = ( /obj/structure/machinery/colony_floodlight, -/turf/open/jungle{ - bushes_spawn = 0; - icon_state = "grass_impenetrable" - }, +/turf/open/jungle/impenetrable, /area/whiskey_outpost/outside/lane/three_south) "oy" = ( /obj/structure/machinery/cm_vending/sorted/tech/comp_storage, /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/whiskey_outpost/inside/engineering) "oz" = ( /obj/effect/decal/warning_stripes/asteroid{ @@ -4134,18 +3339,12 @@ /obj/structure/machinery/power/monitor{ name = "Main Power Grid Monitoring" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/whiskey_outpost/inside/engineering) "oD" = ( /obj/structure/disposalpipe/trunk, /obj/structure/machinery/disposal, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/outside/mortar_pit) "oE" = ( /obj/structure/largecrate/supply/explosives/mortar_he, @@ -4153,60 +3352,42 @@ /area/whiskey_outpost/inside/caves/caverns) "oF" = ( /obj/structure/machinery/light/small, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen/southwest, /area/whiskey_outpost/inside/living) "oG" = ( /obj/structure/disposalpipe/sortjunction/flipped{ dir = 1; sortType = "CIC" }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost) "oH" = ( /obj/structure/disposalpipe/segment, /obj/structure/machinery/cm_vending/sorted/tech/electronics_storage{ req_access_txt = "11" }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost) "oI" = ( /obj/structure/disposalpipe/segment{ dir = 4; icon_state = "pipe-c" }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost) "oK" = ( /obj/structure/disposalpipe/junction{ dir = 4; icon_state = "pipe-j2" }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost) "oN" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, /obj/item/device/flashlight/lamp/tripod/grey, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost) "oO" = ( /obj/structure/largecrate/supply/explosives/mortar_incend, @@ -4217,15 +3398,10 @@ dir = 8; icon_state = "pipe-c" }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost) "oQ" = ( -/turf/open/floor{ - icon_state = "whitegreencorner" - }, +/turf/open/floor/whitegreencorner, /area/whiskey_outpost/inside/hospital) "oS" = ( /obj/structure/curtain/black, @@ -4237,19 +3413,13 @@ /area/whiskey_outpost/inside/hospital) "oW" = ( /obj/effect/landmark/start/whiskey/medic, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost) "oX" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/east, /area/whiskey_outpost/inside/bunker) "oY" = ( /obj/structure/disposalpipe/segment{ @@ -4261,18 +3431,13 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/west, /area/whiskey_outpost/inside/bunker) "pc" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/whiskey_outpost/inside/bunker) "pe" = ( /obj/effect/landmark/start/whiskey/pilot, @@ -4286,6 +3451,10 @@ /obj/effect/landmark/start/whiskey/engineer, /turf/open/gm/dirtgrassborder/north, /area/whiskey_outpost/outside/lane/two_south) +"pk" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/prison/floor_plate/southwest, +/area/whiskey_outpost/inside/engineering) "pm" = ( /obj/effect/decal/cleanable/blood/writing, /obj/item/weapon/gun/pistol/m4a3, @@ -4297,10 +3466,7 @@ /obj/structure/machinery/floodlight{ light_on = 1 }, -/turf/open/floor/plating{ - dir = 6; - icon_state = "asteroidwarning" - }, +/turf/open/floor/plating/asteroidwarning/southeast, /area/whiskey_outpost/outside/north/platform) "pq" = ( /turf/closed/wall/r_wall, @@ -4323,19 +3489,13 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost) "px" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/outside/mortar_pit) "py" = ( /obj/structure/barricade/sandbags/wired{ @@ -4349,18 +3509,14 @@ dir = 1; name = "\improper Mortar Pit" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/whiskey_outpost/inside/bunker) "pA" = ( /obj/structure/machinery/cm_vending/clothing/marine/delta{ density = 0; pixel_x = -16 }, -/turf/open/floor/almayer{ - icon_state = "bluefull" - }, +/turf/open/floor/almayer/bluefull, /area/whiskey_outpost/inside/living) "pD" = ( /turf/open/gm/dirtgrassborder/grassdirt_corner2/south_west, @@ -4370,10 +3526,7 @@ dir = 8; icon_state = "pipe-c" }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/outside/mortar_pit) "pF" = ( /obj/structure/machinery/light/small{ @@ -4399,26 +3552,17 @@ dir = 1; sortType = "Engineering" }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost) "pJ" = ( /obj/structure/largecrate/supply/medicine/medkits, /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/north, /area/whiskey_outpost/inside/hospital/triage) "pK" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/whiskey_outpost/inside/supply) "pL" = ( /obj/structure/flora/bush/ausbushes/var3/stalkybush, @@ -4448,10 +3592,7 @@ dir = 1; icon_state = "pipe-c" }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/north, /area/whiskey_outpost/outside/north/platform) "pR" = ( /obj/structure/surface/rack, @@ -4514,16 +3655,11 @@ pixel_x = -30 }, /obj/effect/landmark/start/whiskey/synthetic, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/whiskey_outpost/inside/cic) "qf" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 1; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/north, /area/whiskey_outpost/inside/living) "qg" = ( /turf/open/gm/dirtgrassborder/grassdirt_corner2/south_west, @@ -4554,20 +3690,14 @@ dir = 8; name = "\improper Storage" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/bunker/bunker/front) "ql" = ( /obj/structure/machinery/light/small{ dir = 1 }, /obj/structure/reagent_dispensers/fueltank, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/inside/bunker/bunker/front) "qn" = ( /obj/structure/extinguisher_cabinet, @@ -4578,41 +3708,29 @@ /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/whiskey_outpost/inside/bunker/bunker/front) "qp" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor{ - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen, /area/whiskey_outpost/inside/hospital) "qq" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, /obj/structure/disposalpipe/segment, -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/west, /area/whiskey_outpost) "qs" = ( /obj/structure/machinery/light/small, -/turf/open/floor{ - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen, /area/whiskey_outpost/inside/hospital/triage) "qt" = ( /turf/open/gm/coast/west, /area/whiskey_outpost/outside/lane/four_south) "qu" = ( /obj/structure/machinery/power/smes/buildable, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/engineering) "qv" = ( /turf/open/gm/coast/beachcorner/south_east, @@ -4632,67 +3750,44 @@ }, /obj/item/roller/surgical, /obj/item/roller/surgical, -/turf/open/floor{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/north, /area/whiskey_outpost/inside/hospital) "qx" = ( /obj/structure/machinery/light/small{ dir = 1 }, /obj/structure/machinery/recharge_station, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/engineering) "qz" = ( /turf/closed/wall/r_wall, /area/whiskey_outpost/inside/hospital) "qB" = ( -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/whiskey_outpost/inside/hospital) "qC" = ( /obj/structure/machinery/power/apc/almayer{ dir = 1 }, /obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/engineering) "qE" = ( /obj/structure/machinery/cm_vending/sorted/tech/tool_storage, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/whiskey_outpost/inside/engineering) "qF" = ( /obj/structure/machinery/defenses/sentry/premade, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/bunker/pillbox/two) "qG" = ( /obj/structure/machinery/cm_vending/sorted/tech/electronics_storage, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/whiskey_outpost/inside/engineering) "qH" = ( /obj/structure/disposalpipe/trunk, /obj/structure/machinery/disposal, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/whiskey_outpost/inside/engineering) "qI" = ( /obj/structure/barricade/metal/wired, @@ -4700,10 +3795,7 @@ icon_state = "cartridge_2_1"; layer = 2 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/bunker/bunker/front) "qJ" = ( /obj/structure/disposalpipe/segment{ @@ -4716,17 +3808,11 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost) "qK" = ( /obj/effect/landmark/start/whiskey/smartgunner, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/outside/north/platform) "qL" = ( /obj/structure/disposalpipe/segment{ @@ -4734,29 +3820,21 @@ icon_state = "pipe-c" }, /obj/effect/landmark/start/whiskey/marine, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost) "qM" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, /obj/effect/landmark/start/whiskey/marine, -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/west, /area/whiskey_outpost/inside/bunker) "qN" = ( /obj/structure/disposalpipe/segment{ dir = 8; icon_state = "pipe-c" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/whiskey_outpost/inside/bunker) "qO" = ( /obj/structure/barricade/sandbags/wired{ @@ -4770,19 +3848,13 @@ /obj/structure/machinery/defenses/sentry/premade{ dir = 4 }, -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/east, /area/whiskey_outpost/outside/north/platform) "qP" = ( /obj/structure/barricade/handrail{ dir = 1 }, -/turf/open/floor{ - dir = 9; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/northwest, /area/whiskey_outpost) "qR" = ( /obj/structure/disposalpipe/segment{ @@ -4796,16 +3868,10 @@ /obj/structure/barricade/handrail{ dir = 1 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/north, /area/whiskey_outpost) "qU" = ( -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/outside/mortar_pit) "qW" = ( /obj/structure/machinery/power/apc/almayer{ @@ -4818,10 +3884,7 @@ dir = 1; id = "WOline2" }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/north, /area/whiskey_outpost) "qY" = ( /turf/open/gm/grass/grassbeach/west, @@ -4854,17 +3917,11 @@ /area/whiskey_outpost/inside/engineering) "rf" = ( /obj/effect/landmark/start/whiskey/maint, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/engineering) "rg" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost) "ri" = ( /obj/item/storage/toolbox/mechanical, @@ -4874,22 +3931,15 @@ /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/whiskey_outpost/inside/cic) "rk" = ( /obj/structure/machinery/cryo_cell, /obj/structure/pipes/standard/cap/hidden, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/whiskey_outpost/inside/hospital/triage) "rl" = ( -/turf/open/floor/plating{ - dir = 6; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/southeast, /area/whiskey_outpost/outside/north/northeast) "rm" = ( /obj/structure/window/framed/colony/reinforced, @@ -4898,16 +3948,17 @@ "rp" = ( /turf/open/jungle, /area/whiskey_outpost/outside/north/northwest) +"rq" = ( +/obj/effect/landmark/start/whiskey/engineering, +/turf/open/floor/plating/plating_catwalk/prison, +/area/whiskey_outpost/inside/engineering) "rs" = ( /obj/item/storage/toolbox/emergency, /turf/open/floor/plating/plating_catwalk/prison, /area/whiskey_outpost/inside/engineering) "rt" = ( /obj/structure/largecrate/guns, -/turf/open/floor/plating{ - dir = 8; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/west, /area/whiskey_outpost/outside/lane/one_north) "ru" = ( /obj/structure/machinery/cm_vending/sorted/medical/wall_med{ @@ -4915,17 +3966,11 @@ pixel_x = -30; req_access = null }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/engineering) "rv" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/engineering) "rw" = ( /turf/open/gm/dirtgrassborder/grassdirt_corner/south_east, @@ -4938,19 +3983,13 @@ dir = 4; icon_state = "pipe-c" }, -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/west, /area/whiskey_outpost) "rA" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/outside/north/platform) "rB" = ( /obj/structure/disposalpipe/segment{ @@ -4959,9 +3998,7 @@ /turf/open/floor/prison, /area/whiskey_outpost/inside/bunker) "rC" = ( -/turf/open/floor/almayer{ - icon_state = "redfull" - }, +/turf/open/floor/almayer/redfull, /area/whiskey_outpost/inside/living) "rD" = ( /obj/structure/window/reinforced{ @@ -4980,9 +4017,7 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "bluefull" - }, +/turf/open/floor/almayer/bluefull, /area/whiskey_outpost/inside/living) "rE" = ( /obj/structure/machinery/light/small, @@ -4993,32 +4028,20 @@ dir = 4; icon_state = "warning_s" }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/outside/north) "rG" = ( /obj/effect/landmark/start/whiskey/marine, -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/west, /area/whiskey_outpost/inside/bunker) "rI" = ( /obj/structure/largecrate/supply/supplies/plasteel, /obj/structure/machinery/light/small, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/whiskey_outpost/inside/engineering) "rJ" = ( /obj/structure/largecrate/supply/supplies/sandbags, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/whiskey_outpost/inside/engineering) "rL" = ( /obj/structure/disposalpipe/segment, @@ -5033,9 +4056,7 @@ not_weldable = 1 }, /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/whiskey_outpost/inside/supply) "rN" = ( /obj/structure/mortar/wo, @@ -5058,47 +4079,28 @@ }, /turf/open/gm/dirt, /area/whiskey_outpost/outside/north/beach) -"rR" = ( -/obj/structure/closet/hydrant{ - pixel_x = -32 - }, -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, -/area/whiskey_outpost/inside/engineering) "rS" = ( /obj/structure/filingcabinet, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/whiskey_outpost/inside/supply) "rT" = ( /turf/open/gm/dirtgrassborder/west, /area/whiskey_outpost/outside/lane/three_south) "rV" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/engineering) "rW" = ( /obj/structure/bed/chair/dropship/passenger{ dir = 4; icon_state = "shuttle_chair" }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/whiskey_outpost/outside/lane/four_north) "rX" = ( /obj/structure/machinery/body_scanconsole{ dir = 1 }, -/turf/open/floor{ - icon_state = "whitegreenfull" - }, +/turf/open/floor/whitegreenfull, /area/whiskey_outpost/inside/hospital/triage) "rY" = ( /obj/structure/disposalpipe/segment{ @@ -5113,10 +4115,7 @@ "sa" = ( /obj/structure/disposalpipe/segment, /obj/structure/surface/rack, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/bunker/pillbox/two) "sb" = ( /obj/structure/disposalpipe/segment{ @@ -5133,19 +4132,13 @@ req_access = null; req_one_access = null }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/bunker/pillbox/three) "se" = ( /obj/structure/machinery/door/airlock/almayer/maint{ name = "\improper Generator Hatch" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/engineering) "sg" = ( /obj/item/storage/box/lightstick, @@ -5174,9 +4167,7 @@ /area/whiskey_outpost/inside/engineering) "sh" = ( /obj/structure/machinery/cm_vending/sorted/cargo_guns/cargo/wo, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/whiskey_outpost/inside/supply) "si" = ( /obj/effect/spawner/gibspawner/human, @@ -5184,26 +4175,18 @@ /area/whiskey_outpost/outside/lane/four_south) "sk" = ( /obj/structure/surface/rack, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/whiskey_outpost/inside/supply) "sl" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, /obj/effect/landmark/start/whiskey/marine, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/outside/north/platform) "sm" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/outside/north/platform) "sn" = ( /turf/closed/wall/r_wall, @@ -5217,10 +4200,7 @@ icon_state = "pipe-c" }, /obj/effect/landmark/start/whiskey/maint, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/engineering) "sq" = ( /obj/structure/machinery/door/airlock/almayer/engineering{ @@ -5230,10 +4210,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/engineering) "ss" = ( /obj/structure/platform_decoration{ @@ -5251,19 +4228,14 @@ /area/whiskey_outpost/inside/supply) "sx" = ( /obj/structure/machinery/cm_vending/clothing/dress, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/whiskey_outpost/inside/cic) "sA" = ( /turf/open/gm/dirtgrassborder/grassdirt_corner2/south_west, /area/whiskey_outpost/outside/lane/two_south) "sC" = ( /obj/effect/landmark/start/whiskey/doctor, -/turf/open/floor{ - dir = 9; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/northwest, /area/whiskey_outpost/inside/hospital) "sD" = ( /obj/structure/barricade/handrail{ @@ -5272,9 +4244,7 @@ /turf/open/floor/prison, /area/whiskey_outpost/inside/bunker) "sI" = ( -/turf/open/floor/prison{ - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe, /area/whiskey_outpost/inside/living) "sJ" = ( /obj/structure/machinery/cm_vending/sorted/cargo_ammo/cargo/wo, @@ -5284,9 +4254,7 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/whiskey_outpost/inside/bunker) "sL" = ( /obj/structure/disposalpipe/segment, @@ -5320,19 +4288,13 @@ /obj/structure/platform{ dir = 1 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/outside/north/platform) "sR" = ( /obj/structure/machinery/colony_floodlight_switch{ pixel_x = -32 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/engineering) "sU" = ( /turf/closed/wall/r_wall/unmeltable, @@ -5346,27 +4308,18 @@ }, /obj/structure/largecrate/supply/supplies/metal, /obj/structure/largecrate/supply/supplies/plasteel, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/whiskey_outpost/inside/engineering) "sX" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/west, /area/whiskey_outpost) "sY" = ( /obj/structure/disposalpipe/segment{ dir = 1; icon_state = "pipe-c" }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/prison/darkyellowcorners2/west, /area/whiskey_outpost/inside/supply) "tc" = ( /obj/structure/disposalpipe/segment{ @@ -5392,19 +4345,13 @@ /area/whiskey_outpost/outside/south) "tj" = ( /obj/structure/machinery/light/small, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost) "tk" = ( /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/whiskey_outpost/inside/bunker) "tl" = ( /obj/structure/sign/nosmoking_1, @@ -5415,10 +4362,7 @@ /turf/open/floor/plating, /area/whiskey_outpost/inside/hospital/triage) "to" = ( -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/outside/north/northeast) "tp" = ( /obj/structure/surface/table/almayer, @@ -5446,27 +4390,15 @@ /obj/item/tool/pen, /turf/open/gm/dirt, /area/whiskey_outpost/outside/mortar_pit) -"tt" = ( -/obj/structure/machinery/power/geothermal, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, -/area/whiskey_outpost/inside/engineering) "tu" = ( /obj/structure/disposalpipe/trunk{ dir = 8 }, /obj/structure/machinery/disposal, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/bunker/pillbox/three) "tv" = ( -/turf/open/floor/prison{ - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2, /area/whiskey_outpost/inside/engineering) "tw" = ( /obj/structure/window/reinforced{ @@ -5480,24 +4412,10 @@ /obj/structure/disposalpipe/trunk{ dir = 1 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/whiskey_outpost/inside/supply) -"ty" = ( -/obj/structure/machinery/power/geothermal, -/obj/structure/machinery/light/small, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, -/area/whiskey_outpost/inside/engineering) "tz" = ( -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/outside/lane/four_north) "tA" = ( /obj/effect/landmark/start/whiskey/engineer, @@ -5534,27 +4452,19 @@ dir = 1 }, /obj/structure/machinery/cm_vending/sorted/cargo_guns/squad_prep/wo, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/whiskey_outpost/inside/bunker) "tG" = ( /obj/structure/toilet{ dir = 4 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/inside/bunker/bunker/front) "tH" = ( /obj/structure/machinery/conveyor_switch/oneway{ id = "crate0" }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/west, /area/whiskey_outpost/inside/supply) "tI" = ( /obj/structure/extinguisher_cabinet, @@ -5575,10 +4485,7 @@ /area/whiskey_outpost/outside/north) "tL" = ( /obj/structure/largecrate/supply/supplies/metal, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/whiskey_outpost/inside/engineering) "tN" = ( /obj/structure/sign/prop3, @@ -5610,30 +4517,21 @@ dir = 4 }, /obj/structure/surface/rack, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/bunker/pillbox/three) "tV" = ( /obj/structure/holohoop{ density = 0; pixel_y = 24 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/inside/bunker/bunker/front) "tY" = ( /obj/structure/bed/chair/office/dark{ dir = 1 }, /obj/effect/landmark/start/whiskey/bridge, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "emerald" - }, +/turf/open/floor/almayer/emerald/northeast, /area/whiskey_outpost/inside/cic) "ua" = ( /obj/effect/landmark/start/whiskey/engineer, @@ -5656,9 +4554,7 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "emeraldfull" - }, +/turf/open/floor/almayer/emeraldfull, /area/whiskey_outpost/inside/living) "ue" = ( /obj/structure/window/reinforced{ @@ -5677,15 +4573,11 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "orangefull" - }, +/turf/open/floor/almayer/orangefull, /area/whiskey_outpost/inside/living) "uf" = ( /obj/structure/machinery/autolathe, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/whiskey_outpost/inside/supply) "ug" = ( /obj/structure/surface/table/almayer, @@ -5702,9 +4594,7 @@ pixel_y = -2; req_one_access_txt = "2;21" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/whiskey_outpost/inside/supply) "uh" = ( /obj/structure/bed/chair/office/dark{ @@ -5730,24 +4620,17 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, +/turf/open/floor/almayer/redfull, /area/whiskey_outpost/inside/living) "um" = ( /turf/open/gm/dirtgrassborder/grassdirt_corner2/north_east, /area/whiskey_outpost/outside/north) "uo" = ( /obj/structure/largecrate/supply/supplies/flares, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/whiskey_outpost/inside/bunker/bunker/front) "uq" = ( -/turf/open/gm/dirt{ - icon_state = "desert0" - }, +/turf/open/gm/dirt/desert0, /area/whiskey_outpost/inside/caves/caverns/west) "ur" = ( /obj/structure/machinery/conveyor{ @@ -5761,10 +4644,7 @@ /obj/structure/machinery/recycler/whiskey{ recycle_dir = 8 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/whiskey_outpost/inside/engineering) "us" = ( /obj/structure/machinery/door/window/northright, @@ -5773,10 +4653,7 @@ icon_state = "pipe-c" }, /obj/structure/machinery/light/small, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/whiskey_outpost/inside/engineering) "ut" = ( /obj/structure/machinery/light{ @@ -5796,9 +4673,7 @@ /turf/open/gm/dirt, /area/whiskey_outpost/outside/mortar_pit) "uw" = ( -/turf/open/shuttle/dropship{ - icon_state = "rasputin5" - }, +/turf/open/shuttle/dropship/light_grey_left_to_right, /area/whiskey_outpost/outside/lane/four_north) "ux" = ( /obj/structure/surface/table/woodentable/poor, @@ -5821,10 +4696,7 @@ /turf/open/gm/dirt, /area/whiskey_outpost/inside/caves/tunnel) "uB" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/west, /area/whiskey_outpost/inside/supply) "uC" = ( /obj/structure/machinery/door/airlock/almayer/engineering{ @@ -5835,19 +4707,13 @@ dir = 4; icon_state = "pipe-c" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/whiskey_outpost/inside/engineering) "uD" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/bunker/pillbox/three) "uE" = ( /turf/open/gm/dirt, @@ -5898,6 +4764,10 @@ }, /turf/open/floor/prison, /area/whiskey_outpost/inside/supply) +"uM" = ( +/obj/structure/closet/firecloset/full, +/turf/open/floor/prison/floor_plate/southwest, +/area/whiskey_outpost/inside/engineering) "uN" = ( /obj/structure/disposalpipe/sortjunction/untagged/flipped{ dir = 1 @@ -5911,35 +4781,26 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/whiskey_outpost/inside/supply) "uP" = ( /obj/structure/machinery/power/apc/almayer{ dir = 1 }, /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/whiskey_outpost/inside/supply) "uR" = ( /obj/structure/machinery/m56d_hmg/mg_turret{ dir = 8; icon_state = "towergun" }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/inside/bunker/bunker/front) "uT" = ( /obj/structure/disposalpipe/trunk, /obj/structure/machinery/disposal, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/whiskey_outpost/inside/supply) "uU" = ( /obj/effect/landmark/start/whiskey/liaison, @@ -5957,22 +4818,14 @@ /area/whiskey_outpost/outside/north) "uZ" = ( /obj/structure/machinery/light/small, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/inside/bunker/bunker/front) "vb" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/east, /area/whiskey_outpost/inside/bunker) "vc" = ( /obj/structure/machinery/cm_vending/sorted/uniform_supply/squad_prep/wo, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/whiskey_outpost/inside/bunker) "ve" = ( /turf/closed/wall, @@ -5982,9 +4835,7 @@ /area/whiskey_outpost/outside/north/beach) "vi" = ( /obj/structure/curtain/black, -/turf/open/floor/almayer{ - icon_state = "bluefull" - }, +/turf/open/floor/almayer/bluefull, /area/whiskey_outpost/inside/living) "vk" = ( /obj/structure/bed/chair/dropship/passenger{ @@ -5992,9 +4843,7 @@ icon_state = "shuttle_chair" }, /obj/item/cell/high, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/whiskey_outpost/outside/lane/four_south) "vl" = ( /obj/structure/closet/secure_closet/engineering_personal, @@ -6006,10 +4855,7 @@ dir = 4; health = 80 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/engineering) "vm" = ( /obj/structure/machinery/conveyor{ @@ -6021,10 +4867,7 @@ "vn" = ( /obj/structure/largecrate/supply/supplies/plasteel, /obj/structure/largecrate/supply/supplies/metal, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/whiskey_outpost/inside/engineering) "vp" = ( /obj/structure/disposalpipe/segment, @@ -6032,9 +4875,7 @@ /area/whiskey_outpost/inside/bunker) "vq" = ( /obj/structure/curtain/black, -/turf/open/floor/almayer{ - icon_state = "emeraldfull" - }, +/turf/open/floor/almayer/emeraldfull, /area/whiskey_outpost/inside/living) "vr" = ( /obj/structure/sign/poster{ @@ -6045,19 +4886,13 @@ "vv" = ( /obj/structure/largecrate/supply/supplies/metal, /obj/structure/largecrate/supply/supplies/metal, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/whiskey_outpost/inside/engineering) "vw" = ( /obj/structure/machinery/conveyor_switch/oneway{ id = "trash" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/engineering) "vx" = ( /obj/structure/machinery/door/airlock/almayer/maint{ @@ -6065,10 +4900,7 @@ not_weldable = 1; req_one_access_txt = "2;21" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/supply) "vy" = ( /obj/structure/disposalpipe/segment, @@ -6077,28 +4909,21 @@ /area/whiskey_outpost/inside/bunker/pillbox/three) "vA" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2, /area/whiskey_outpost/inside/supply) "vB" = ( /turf/closed/shuttle/dropship, /area/whiskey_outpost/outside/lane/four_south) "vC" = ( /obj/vehicle/powerloader, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/whiskey_outpost/inside/supply) "vE" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ dir = 1; name = "\improper Storage" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/whiskey_outpost/inside/bunker) "vF" = ( /obj/item/lightstick/red/planted, @@ -6113,19 +4938,14 @@ dir = 8; icon_state = "sandbag_0" }, -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/west, /area/whiskey_outpost/outside/north/platform) "vK" = ( /obj/structure/barricade/metal/wired, /turf/open/gm/dirt, /area/whiskey_outpost/outside/lane/one_north) "vL" = ( -/turf/open/floor/prison{ - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2, /area/whiskey_outpost/inside/supply) "vN" = ( /obj/structure/machinery/light{ @@ -6151,26 +4971,17 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/engineering) "vS" = ( /obj/structure/machinery/door/airlock/almayer/engineering{ name = "Engineering Dorms"; req_one_access = null }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/engineering) "vV" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/east, /area/whiskey_outpost/inside/supply) "vW" = ( /obj/structure/bed/chair/office/dark{ @@ -6178,9 +4989,7 @@ layer = 3.25 }, /obj/effect/landmark/start/whiskey/cargo, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/whiskey_outpost/inside/supply) "vX" = ( /obj/structure/machinery/door/window/southleft{ @@ -6191,22 +5000,15 @@ /obj/structure/machinery/door/window/northleft{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/whiskey_outpost/inside/supply) "vY" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/west, /area/whiskey_outpost/outside/north) "vZ" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe, /area/whiskey_outpost/inside/bunker) "wb" = ( /obj/structure/flora/jungle/alienplant1, @@ -6214,21 +5016,14 @@ /area/whiskey_outpost/outside/river/east) "wc" = ( /obj/structure/curtain/black, -/turf/open/floor/almayer{ - icon_state = "orangefull" - }, +/turf/open/floor/almayer/orangefull, /area/whiskey_outpost/inside/living) "we" = ( /obj/item/cell/high, -/turf/open/shuttle/dropship{ - icon_state = "rasputin13" - }, +/turf/open/shuttle/dropship/light_grey_middle, /area/whiskey_outpost/outside/lane/four_north) "wf" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/west, /area/whiskey_outpost/inside/supply) "wh" = ( /obj/structure/window/reinforced{ @@ -6242,10 +5037,7 @@ /obj/structure/bed, /obj/item/bedsheet/hos, /obj/effect/landmark/start/whiskey/maint, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/engineering) "wi" = ( /obj/structure/window/reinforced{ @@ -6260,10 +5052,7 @@ /obj/item/bedsheet/hos, /obj/structure/machinery/light/small, /obj/effect/landmark/start/whiskey/maint, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/engineering) "wj" = ( /obj/structure/disposalpipe/segment{ @@ -6285,10 +5074,7 @@ /obj/structure/bed, /obj/item/bedsheet/hos, /obj/effect/landmark/start/whiskey/maint, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/engineering) "wl" = ( /obj/structure/disposaloutlet{ @@ -6301,10 +5087,7 @@ dir = 4 }, /obj/structure/machinery/light/small, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/whiskey_outpost/inside/engineering) "wn" = ( /obj/item/storage/box/m94, @@ -6312,15 +5095,11 @@ /area/whiskey_outpost/outside/lane/four_north) "wp" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/whiskey_outpost/inside/bunker) "wq" = ( /obj/structure/machinery/cm_vending/sorted/cargo_guns/squad_prep/wo, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/whiskey_outpost/inside/bunker) "ws" = ( /turf/open/gm/river, @@ -6330,24 +5109,16 @@ /obj/structure/disposalpipe/trunk{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/whiskey_outpost/inside/bunker) "wv" = ( -/turf/open/jungle{ - bushes_spawn = 0; - icon_state = "grass_impenetrable" - }, +/turf/open/jungle/impenetrable, /area/whiskey_outpost/outside/lane/two_south) "ww" = ( /obj/structure/barricade/plasteel/wired{ dir = 4 }, -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/west, /area/whiskey_outpost/outside/north/platform) "wx" = ( /obj/structure/platform_decoration{ @@ -6364,10 +5135,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/whiskey_outpost/inside/engineering) "wA" = ( /obj/structure/machinery/conveyor{ @@ -6381,15 +5149,10 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/whiskey_outpost/inside/engineering) "wC" = ( -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/whiskey_outpost/inside/bunker) "wF" = ( /turf/open/gm/dirtgrassborder/grassdirt_corner/north_west, @@ -6398,10 +5161,7 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/whiskey_outpost/inside/supply) "wI" = ( /obj/structure/machinery/cm_vending/sorted/medical/wall_med{ @@ -6413,18 +5173,13 @@ dir = 1; pixel_y = 28 }, -/turf/open/floor{ - dir = 5; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/northeast, /area/whiskey_outpost/inside/hospital/triage) "wJ" = ( /obj/structure/pipes/standard/simple/visible{ dir = 5 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/whiskey_outpost/inside/hospital/triage) "wK" = ( /turf/open/gm/dirtgrassborder/grassdirt_corner2/south_east, @@ -6442,16 +5197,11 @@ dir = 1; id = "WOline1" }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/north, /area/whiskey_outpost) "wN" = ( /obj/effect/landmark/start/whiskey/marine, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/whiskey_outpost/inside/bunker/bunker/front) "wO" = ( /obj/structure/disposalpipe/segment, @@ -6462,29 +5212,20 @@ /area/whiskey_outpost/inside/bunker) "wP" = ( /obj/structure/curtain/black, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, +/turf/open/floor/almayer/redfull, /area/whiskey_outpost/inside/living) "wQ" = ( -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/whiskey_outpost/inside/supply) "wR" = ( -/turf/open/jungle{ - bushes_spawn = 0; - icon_state = "grass_impenetrable" - }, +/turf/open/jungle/impenetrable, /area/whiskey_outpost/outside/lane/one_north) "wS" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/whiskey_outpost/inside/bunker) "wT" = ( /turf/open/jungle, @@ -6495,10 +5236,7 @@ pixel_x = -30; req_access = null }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/bunker/bunker/front) "wV" = ( /obj/structure/machinery/door/airlock/almayer/marine/requisitions{ @@ -6507,9 +5245,7 @@ no_panel = 1; not_weldable = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/whiskey_outpost/inside/supply) "wW" = ( /obj/effect/landmark/start/whiskey/marine, @@ -6527,19 +5263,14 @@ /obj/item/ammo_box/magazine, /obj/item/ammo_box/magazine, /obj/item/ammo_box/magazine/ext, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/whiskey_outpost/inside/bunker) "wZ" = ( /obj/structure/disposalpipe/segment, /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/east, /area/whiskey_outpost/outside/north/platform) "xa" = ( /obj/structure/machinery/light/small{ @@ -6547,24 +5278,22 @@ }, /obj/structure/surface/rack, /obj/effect/landmark/wo_supplies/storage/belts/grenade, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/whiskey_outpost/inside/bunker) "xb" = ( /turf/closed/wall/r_wall/unmeltable, /area/whiskey_outpost/outside/north/beach) +"xc" = ( +/obj/structure/machinery/light/small, +/obj/structure/machinery/power/reactor/colony, +/turf/open/floor/prison/floor_plate/southwest, +/area/whiskey_outpost/inside/engineering) "xg" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/whiskey_outpost/inside/supply) "xj" = ( /obj/structure/machinery/cm_vending/gear/commanding_officer, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/whiskey_outpost/inside/cic) "xk" = ( /obj/structure/surface/rack, @@ -6588,9 +5317,7 @@ /area/whiskey_outpost/inside/bunker/bunker/front) "xm" = ( /obj/structure/surface/rack, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/whiskey_outpost/inside/bunker) "xp" = ( /turf/open/gm/dirtgrassborder/grassdirt_corner2/south_west, @@ -6606,38 +5333,25 @@ /obj/item/ammo_box/magazine/m39, /obj/item/ammo_box/magazine/m39, /obj/item/ammo_box/magazine/m39/ext, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/whiskey_outpost/inside/bunker) "xt" = ( /obj/structure/disposalpipe/sortjunction{ sortType = "Western Entrance Pillbox" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/whiskey_outpost/inside/bunker) "xx" = ( /turf/closed/shuttle/dropship{ icon_state = "rasputin9" }, /area/whiskey_outpost/outside/lane/four_north) -"xy" = ( -/obj/effect/decal/cleanable/blood/writing, -/turf/open/jungle{ - bushes_spawn = 0; - icon_state = "grass_impenetrable" - }, -/area/whiskey_outpost/outside/south/very_far) "xB" = ( /obj/structure/surface/rack, /obj/item/ammo_box/magazine/m4ra, /obj/item/ammo_box/magazine/m4ra, /obj/structure/machinery/light/small, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/whiskey_outpost/inside/bunker) "xC" = ( /turf/open/gm/dirt, @@ -6647,9 +5361,7 @@ /obj/item/ammo_box/magazine/shotgun/buckshot, /obj/item/ammo_box/magazine/shotgun/flechette, /obj/item/ammo_box/magazine/shotgun, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/whiskey_outpost/inside/bunker) "xE" = ( /obj/structure/machinery/light/small{ @@ -6657,19 +5369,14 @@ }, /obj/structure/surface/rack, /obj/effect/landmark/wo_supplies/storage/machete, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/bunker/pillbox/three) "xF" = ( /obj/structure/machinery/cm_vending/clothing/marine/charlie{ density = 0; pixel_x = -16 }, -/turf/open/floor/almayer{ - icon_state = "emeraldfull" - }, +/turf/open/floor/almayer/emeraldfull, /area/whiskey_outpost/inside/living) "xG" = ( /obj/structure/cargo_container/grant/left, @@ -6687,9 +5394,7 @@ /obj/item/ammo_box/magazine/m4a3, /obj/item/ammo_box/magazine/m44, /obj/item/ammo_box/magazine/mod88, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/whiskey_outpost/inside/bunker) "xK" = ( /obj/item/lightstick/red/planted, @@ -6699,9 +5404,7 @@ /obj/effect/decal/cleanable/blood/writing{ dir = 1 }, -/turf/open/jungle/impenetrable{ - icon_state = "grass_clear" - }, +/turf/open/jungle/impenetrable/grass_clear, /area/whiskey_outpost/outside/south/very_far) "xM" = ( /obj/structure/barricade/metal/wired{ @@ -6713,10 +5416,7 @@ /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/east, /area/whiskey_outpost/outside/north/platform) "xO" = ( /turf/open/jungle, @@ -6733,10 +5433,7 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/west, /area/whiskey_outpost/outside/north/platform) "xR" = ( /obj/structure/platform{ @@ -6752,19 +5449,14 @@ /area/whiskey_outpost/outside/north/beach) "xT" = ( /obj/effect/landmark/start/whiskey/doctor, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/whiskey_outpost/inside/hospital) "xV" = ( /obj/effect/landmark/start/whiskey/spec, /obj/structure/stairs/perspective{ icon_state = "p_stair_full" }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/outside/north/platform) "xX" = ( /obj/structure/window/reinforced{ @@ -6780,19 +5472,14 @@ layer = 3.5; pixel_y = 13 }, -/turf/open/floor/almayer{ - icon_state = "emeraldfull" - }, +/turf/open/floor/almayer/emeraldfull, /area/whiskey_outpost/inside/living) "xZ" = ( /turf/open/gm/dirtgrassborder/grassdirt_corner2/north_east, /area/whiskey_outpost/outside/lane/two_south) "ya" = ( /obj/effect/landmark/whiskey_outpost/supplydrops, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/whiskey_outpost/inside/supply) "yd" = ( /obj/structure/barricade/sandbags/wired{ @@ -6807,10 +5494,7 @@ /turf/open/floor/prison, /area/whiskey_outpost/inside/living) "yf" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/southwest, /area/whiskey_outpost/inside/supply) "yg" = ( /obj/structure/barricade/sandbags/wired, @@ -6823,26 +5507,18 @@ "yh" = ( /obj/structure/machinery/cryopod, /obj/structure/machinery/light/small, -/turf/open/floor{ - icon_state = "whitegreenfull" - }, +/turf/open/floor/whitegreenfull, /area/whiskey_outpost/inside/hospital) "yj" = ( /obj/effect/landmark/start/whiskey/cargo, /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellowcorners2" - }, +/turf/open/floor/prison/darkyellowcorners2/west, /area/whiskey_outpost/inside/supply) "yk" = ( /obj/structure/platform{ dir = 4 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/outside/north/platform) "yl" = ( /turf/open/gm/dirtgrassborder/grassdirt_corner/south_east, @@ -6853,10 +5529,7 @@ dir = 4; icon_state = "pipe-c" }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/north, /area/whiskey_outpost/outside/north/platform) "yo" = ( /obj/structure/barricade/sandbags/wired{ @@ -6869,10 +5542,7 @@ /obj/structure/platform{ dir = 8 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/outside/north/platform) "yr" = ( /obj/structure/machinery/m56d_hmg/mg_turret, @@ -6887,16 +5557,12 @@ /turf/closed/wall/r_wall/unmeltable, /area/whiskey_outpost/inside/supply) "yw" = ( -/turf/open/floor/prison{ - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe, /area/whiskey_outpost/inside/bunker) "yx" = ( /obj/structure/machinery/light/small, /obj/effect/landmark/thunderdome/observer, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/whiskey_outpost/inside/bunker) "yy" = ( /obj/structure/machinery/light/small{ @@ -6909,19 +5575,13 @@ dir = 4; health = 80 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/whiskey_outpost/inside/supply) "yA" = ( /obj/structure/platform_decoration{ dir = 8 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/outside/north/platform) "yB" = ( /obj/structure/machinery/light{ @@ -6930,27 +5590,19 @@ }, /obj/structure/closet/secure_closet/cargotech, /obj/item/clothing/accessory/storage/webbing, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/whiskey_outpost/inside/supply) "yC" = ( /turf/open/gm/dirt, /area/whiskey_outpost/outside/lane/three_south) "yD" = ( /obj/item/storage/box/m94, -/turf/open/floor/plating{ - icon_state = "platebot" - }, +/turf/open/floor/plating/platebot, /area/whiskey_outpost/outside/lane/one_north) "yF" = ( /obj/structure/closet/secure_closet/cargotech, /obj/item/clothing/accessory/storage/webbing, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/whiskey_outpost/inside/supply) "yG" = ( /obj/structure/closet/secure_closet/req_officer, @@ -6967,10 +5619,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" - }, +/turf/open/floor/prison/darkyellow2/west, /area/whiskey_outpost/inside/supply) "yH" = ( /turf/closed/wall/r_wall, @@ -6982,26 +5631,20 @@ req_access = null }, /obj/structure/machinery/cm_vending/sorted/cargo_guns/squad_prep/wo, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/whiskey_outpost/inside/bunker) "yK" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper Bunker" }, /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/whiskey_outpost/inside/bunker) "yL" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper Bunker" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/whiskey_outpost/inside/bunker) "yN" = ( /turf/closed/shuttle/dropship{ @@ -7014,9 +5657,7 @@ /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/whiskey_outpost/inside/bunker) "yP" = ( /obj/structure/machinery/cm_vending/sorted/medical/wall_med{ @@ -7025,28 +5666,20 @@ req_access = null }, /obj/structure/machinery/cm_vending/sorted/uniform_supply/squad_prep/wo, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/whiskey_outpost/inside/bunker) "yQ" = ( /obj/structure/machinery/medical_pod/autodoc/unskilled{ dir = 1 }, -/turf/open/floor{ - dir = 9; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/northwest, /area/whiskey_outpost/inside/hospital/triage) "yR" = ( /obj/structure/disposalpipe/segment{ dir = 4; icon_state = "pipe-c" }, -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/east, /area/whiskey_outpost/outside/north/platform) "yS" = ( /obj/structure/platform{ @@ -7069,24 +5702,18 @@ /area/whiskey_outpost/outside/river/east) "yV" = ( /obj/structure/machinery/light/small, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/whiskey_outpost/outside/north/platform) "yW" = ( /obj/structure/machinery/light/small{ dir = 8 }, /obj/structure/machinery/cm_vending/clothing/medic, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/whiskey_outpost/inside/bunker/bunker/front) "yX" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/whiskey_outpost/outside/north/platform) "yY" = ( /obj/structure/sign/poster/hero/voteno{ @@ -7098,23 +5725,15 @@ /turf/open/floor/prison, /area/whiskey_outpost/inside/living) "zc" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/north, /area/whiskey_outpost/inside/bunker) "zd" = ( /obj/structure/machinery/autolathe/medilathe/full, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/whiskey_outpost/inside/hospital) "zf" = ( /obj/structure/barricade/sandbags/wired, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/outside/north/platform) "zg" = ( /obj/structure/platform{ @@ -7126,10 +5745,7 @@ /obj/structure/platform_decoration{ dir = 9 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/outside/north/platform) "zh" = ( /turf/open/gm/dirtgrassborder/grassdirt_corner2/north_west, @@ -7138,10 +5754,7 @@ /obj/structure/disposalpipe/sortjunction/flipped{ sortType = "Eastern Entrance Pillbox" }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/north, /area/whiskey_outpost/inside/bunker) "zj" = ( /obj/structure/disposalpipe/segment{ @@ -7151,23 +5764,15 @@ /area/whiskey_outpost/outside/north) "zl" = ( /obj/structure/machinery/power/apc/almayer, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/bunker/bunker/front) "zm" = ( /obj/item/storage/box/explosive_mines, -/turf/open/floor/plating{ - icon_state = "platebot" - }, +/turf/open/floor/plating/platebot, /area/whiskey_outpost/outside/lane/one_north) "zo" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/east, /area/whiskey_outpost/outside/north/platform) "zq" = ( /turf/open/gm/river, @@ -7185,17 +5790,11 @@ /turf/open/gm/dirt, /area/whiskey_outpost/outside/north/beach) "zt" = ( -/turf/open/jungle{ - bushes_spawn = 0; - icon_state = "grass_impenetrable" - }, +/turf/open/jungle/impenetrable, /area/whiskey_outpost/outside/south/far) "zu" = ( /obj/effect/landmark/start/whiskey/engineer, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/bunker/pillbox/three) "zw" = ( /turf/open/gm/coast/west, @@ -7209,25 +5808,17 @@ density = 0; pixel_x = 16 }, -/turf/open/floor/almayer{ - icon_state = "emeraldfull" - }, +/turf/open/floor/almayer/emeraldfull, /area/whiskey_outpost/inside/living) "zB" = ( /obj/structure/disposalpipe/trunk, /obj/structure/machinery/disposal, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/bunker/bunker/front) "zC" = ( /obj/structure/surface/rack, /obj/effect/landmark/wo_supplies/ammo/box/m41a, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/bunker/pillbox/one) "zD" = ( /obj/structure/disposalpipe/segment{ @@ -7244,10 +5835,7 @@ /obj/item/clothing/under/shorts/black, /obj/item/clothing/under/shorts/black, /obj/item/clothing/under/shorts/blue, -/turf/open/jungle{ - bushes_spawn = 0; - icon_state = "grass_impenetrable" - }, +/turf/open/jungle/impenetrable, /area/whiskey_outpost/outside/north) "zG" = ( /obj/structure/machinery/m56d_hmg/mg_turret{ @@ -7278,10 +5866,7 @@ "zM" = ( /obj/effect/landmark/start/whiskey/smartgunner, /obj/structure/barricade/sandbags/wired, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/outside/north/platform) "zP" = ( /obj/structure/stairs/perspective{ @@ -7304,9 +5889,7 @@ layer = 3.5; pixel_y = 13 }, -/turf/open/floor/almayer{ - icon_state = "bluefull" - }, +/turf/open/floor/almayer/bluefull, /area/whiskey_outpost/inside/living) "zR" = ( /obj/structure/barricade/sandbags/wired{ @@ -7320,10 +5903,7 @@ dir = 8; icon_state = "sandbag_0" }, -/turf/open/floor/plating{ - dir = 9; - icon_state = "asteroidwarning" - }, +/turf/open/floor/plating/asteroidwarning/northwest, /area/whiskey_outpost/outside/north/platform) "zU" = ( /turf/open/gm/dirtgrassborder/west, @@ -7340,9 +5920,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/whiskey_outpost/inside/bunker) "zX" = ( /turf/open/gm/coast/south, @@ -7358,10 +5936,7 @@ /area/whiskey_outpost/outside/lane/three_north) "Ab" = ( /obj/structure/machinery/autodoc_console, -/turf/open/floor{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/north, /area/whiskey_outpost/inside/hospital/triage) "Ac" = ( /obj/structure/platform{ @@ -7371,10 +5946,7 @@ /area/whiskey_outpost/outside/lane/four_north) "Ad" = ( /obj/structure/machinery/colony_floodlight, -/turf/open/jungle{ - bushes_spawn = 0; - icon_state = "grass_impenetrable" - }, +/turf/open/jungle/impenetrable, /area/whiskey_outpost/outside/south/far) "Ae" = ( /turf/closed/wall/rock/brown, @@ -7389,10 +5961,7 @@ "Am" = ( /obj/structure/surface/rack, /obj/effect/landmark/wo_supplies/guns/common/m41a, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/bunker/pillbox/two) "An" = ( /turf/closed/wall/r_wall, @@ -7405,10 +5974,7 @@ /obj/effect/decal/cleanable/blood/writing{ dir = 1 }, -/turf/open/jungle{ - bushes_spawn = 0; - icon_state = "grass_impenetrable" - }, +/turf/open/jungle/impenetrable, /area/whiskey_outpost/outside/lane/one_south) "Ar" = ( /obj/structure/barricade/plasteel/wired{ @@ -7422,9 +5988,7 @@ pixel_y = 7 }, /obj/item/tool/pen, -/turf/open/floor{ - icon_state = "whitegreenfull" - }, +/turf/open/floor/whitegreenfull, /area/whiskey_outpost/inside/hospital) "Au" = ( /obj/structure/barricade/metal/wired{ @@ -7438,6 +6002,10 @@ }, /turf/open/floor/plating/plating_catwalk/prison, /area/whiskey_outpost/inside/bunker) +"Ay" = ( +/obj/structure/machinery/gel_refiller, +/turf/open/floor/whitegreen/east, +/area/whiskey_outpost/inside/hospital) "AA" = ( /turf/open/jungle, /area/whiskey_outpost/outside/south/far) @@ -7446,17 +6014,11 @@ dir = 8; icon_state = "towergun" }, -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/west, /area/whiskey_outpost/outside/north/platform) "AC" = ( /obj/structure/machinery/colony_floodlight, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/outside/north/platform) "AD" = ( /obj/effect/decal/cleanable/blood/writing{ @@ -7472,10 +6034,7 @@ "AF" = ( /obj/structure/surface/rack, /obj/item/tool/crowbar, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/bunker/pillbox/three) "AH" = ( /obj/structure/barricade/sandbags/wired{ @@ -7492,10 +6051,7 @@ /area/whiskey_outpost/outside/south/very_far) "AJ" = ( /obj/effect/landmark/start/whiskey/leader, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/inside/bunker/bunker/front) "AK" = ( /turf/open/gm/dirtgrassborder/north, @@ -7521,10 +6077,7 @@ /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/north, /area/whiskey_outpost/outside/north/platform) "AS" = ( /obj/structure/flora/bush/ausbushes/var3/sparsegrass, @@ -7538,10 +6091,7 @@ dir = 1; icon_state = "warning_s" }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/outside/north) "AV" = ( /turf/open/gm/coast/north, @@ -7563,10 +6113,7 @@ dir = 8; icon_state = "sandbag_0" }, -/turf/open/floor/plating{ - dir = 10; - icon_state = "asteroidwarning" - }, +/turf/open/floor/plating/asteroidwarning/southwest, /area/whiskey_outpost/outside/north/platform) "Bb" = ( /obj/structure/platform_decoration{ @@ -7576,10 +6123,7 @@ /area/whiskey_outpost/outside/south) "Bc" = ( /obj/structure/machinery/defenses/sentry/premade, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/outside/north/platform) "Bd" = ( /obj/structure/sign/poster, @@ -7590,10 +6134,7 @@ dir = 4; icon_state = "sandbag_0" }, -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/east, /area/whiskey_outpost/outside/north/platform) "Bf" = ( /obj/structure/disposalpipe/segment, @@ -7607,10 +6148,7 @@ dir = 2; icon_state = "pipe-c" }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/north, /area/whiskey_outpost/outside/north/platform) "Bh" = ( /obj/structure/flora/bush/ausbushes/var3/stalkybush, @@ -7625,36 +6163,25 @@ dir = 8; icon_state = "pipe-c" }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/north, /area/whiskey_outpost/outside/north/platform) "Bm" = ( /obj/structure/machinery/colony_floodlight, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/whiskey_outpost/inside/bunker) "Bn" = ( /obj/structure/disposalpipe/segment{ dir = 8; icon_state = "pipe-c" }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/outside/north/platform) "Bo" = ( /obj/structure/barricade/sandbags/wired, /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/outside/north/platform) "Bq" = ( /obj/structure/barricade/sandbags/wired{ @@ -7665,28 +6192,20 @@ dir = 1; icon_state = "sandbag_0" }, -/turf/open/floor/plating{ - dir = 5; - icon_state = "asteroidwarning" - }, +/turf/open/floor/plating/asteroidwarning/northeast, /area/whiskey_outpost/outside/north/platform) "Br" = ( /obj/structure/machinery/light/small{ dir = 4 }, /obj/structure/machinery/cm_vending/clothing/medic, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/whiskey_outpost/inside/bunker/bunker/front) "Bs" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/east, /area/whiskey_outpost/outside/north/platform) "Bt" = ( /obj/structure/barricade/plasteel/wired{ @@ -7700,9 +6219,7 @@ "Bu" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/whiskey_outpost/inside/bunker) "Bv" = ( /obj/effect/decal/cleanable/blood/writing, @@ -7733,10 +6250,7 @@ req_access = null; req_one_access = null }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/bunker/pillbox/three) "BC" = ( /obj/structure/barricade/sandbags/wired, @@ -7744,10 +6258,7 @@ dir = 8; icon_state = "sandbag_0" }, -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/west, /area/whiskey_outpost/outside/north/platform) "BF" = ( /turf/open/gm/coast/beachcorner2/north_east, @@ -7758,20 +6269,14 @@ dir = 8; icon_state = "sandbag_0" }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/outside/north/platform) "BJ" = ( /obj/structure/barricade/sandbags/wired{ dir = 1; - icon_state = "sandbag_0" - }, -/turf/open/floor/plating{ - dir = 1; - icon_state = "warnplate" + icon_state = "sandbag_0" }, +/turf/open/floor/plating/warnplate/north, /area/whiskey_outpost/outside/north/beach) "BK" = ( /turf/open/jungle/clear, @@ -7784,27 +6289,18 @@ /area/whiskey_outpost/outside/north/beach) "BM" = ( /obj/structure/cargo_container/watatsumi/right, -/turf/open/jungle{ - bushes_spawn = 0; - icon_state = "grass_impenetrable" - }, +/turf/open/jungle/impenetrable, /area/whiskey_outpost/outside/south) "BN" = ( /obj/effect/landmark/start/whiskey/marine, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/outside/north/platform) "BO" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, /obj/structure/barricade/sandbags/wired, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/outside/north/platform) "BP" = ( /obj/structure/machinery/shower{ @@ -7812,26 +6308,17 @@ layer = 3.3 }, /obj/effect/landmark/start/whiskey/marine, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/inside/bunker/bunker/front) "BQ" = ( /turf/open/gm/dirt, /area/whiskey_outpost/outside/lane/three_north) "BS" = ( /obj/item/storage/box/m94, -/turf/open/jungle{ - bushes_spawn = 0; - icon_state = "grass_impenetrable" - }, +/turf/open/jungle/impenetrable, /area/whiskey_outpost/outside/lane/one_north) "BT" = ( -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/west, /area/whiskey_outpost/outside/north/platform) "BU" = ( /obj/structure/barricade/sandbags/wired, @@ -7839,10 +6326,7 @@ dir = 4; icon_state = "sandbag_0" }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/outside/north/platform) "BV" = ( /obj/structure/stairs/perspective{ @@ -7852,10 +6336,7 @@ dir = 8 }, /obj/structure/disposalpipe/segment, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/outside/north/platform) "BW" = ( /obj/structure/flora/bush/ausbushes/var3/leafybush, @@ -7866,18 +6347,13 @@ density = 0; pixel_x = -16 }, -/turf/open/floor/almayer{ - icon_state = "orangefull" - }, +/turf/open/floor/almayer/orangefull, /area/whiskey_outpost/inside/living) "BY" = ( /obj/structure/stairs/perspective{ icon_state = "p_stair_full" }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/outside/north/platform) "Ca" = ( /obj/structure/stairs/perspective{ @@ -7887,19 +6363,13 @@ dir = 4 }, /obj/structure/disposalpipe/segment, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/outside/north/platform) "Cc" = ( /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/bunker/bunker/front) "Cd" = ( /obj/structure/disposalpipe/segment{ @@ -7915,19 +6385,14 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/whiskey_outpost/inside/hospital/triage) "Cg" = ( /obj/structure/machinery/m56d_hmg/mg_turret{ dir = 4; icon_state = "towergun" }, -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/east, /area/whiskey_outpost/outside/north/platform) "Ch" = ( /turf/closed/wall/wood, @@ -7957,48 +6422,33 @@ /turf/open/gm/dirt, /area/whiskey_outpost/outside/lane/four_north) "Cq" = ( -/turf/open/floor/plating{ - dir = 1; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/north, /area/whiskey_outpost/outside/north/northeast) "Cr" = ( /obj/structure/barricade/plasteel/wired{ dir = 8 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/outside/north/platform) "Cs" = ( /obj/structure/machinery/chem_master{ tether_range = 4 }, -/turf/open/floor{ - dir = 6; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/southeast, /area/whiskey_outpost/inside/hospital) "Ct" = ( /obj/structure/platform_decoration{ dir = 4 }, /obj/structure/disposalpipe/segment, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/outside/north/platform) "Cu" = ( /obj/structure/platform_decoration{ dir = 8 }, /obj/structure/disposalpipe/segment, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/outside/north/platform) "Cv" = ( /obj/structure/surface/table/reinforced/prison, @@ -8012,23 +6462,14 @@ /obj/item/reagent_container/glass/beaker, /obj/item/reagent_container/glass/beaker/large, /obj/item/reagent_container/glass/beaker/large, -/turf/open/floor{ - dir = 8; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/west, /area/whiskey_outpost/inside/hospital) "Cw" = ( /obj/structure/barricade/sandbags/wired, -/turf/open/floor{ - dir = 6; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/southeast, /area/whiskey_outpost/outside/north/platform) "Cx" = ( -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/east, /area/whiskey_outpost/outside/north/platform) "Cy" = ( /obj/structure/barricade/metal/wired, @@ -8043,30 +6484,21 @@ /area/whiskey_outpost/outside/north/northeast) "CB" = ( /obj/effect/landmark/start/whiskey/marine, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/bunker/pillbox/three) "CC" = ( /obj/structure/machinery/chem_dispenser, /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor{ - dir = 10; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/southwest, /area/whiskey_outpost/inside/hospital) "CD" = ( /turf/open/gm/river, /area/whiskey_outpost/outside/lane/one_north) "CE" = ( /obj/structure/machinery/cm_vending/clothing/medic, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost) "CG" = ( /turf/open/gm/dirt, @@ -8087,10 +6519,7 @@ dir = 4; icon_state = "sandbag_0" }, -/turf/open/floor/plating{ - dir = 6; - icon_state = "asteroidwarning" - }, +/turf/open/floor/plating/asteroidwarning/southeast, /area/whiskey_outpost/outside/north/platform) "CN" = ( /obj/structure/barricade/metal/wired, @@ -8104,10 +6533,7 @@ /area/whiskey_outpost/inside/caves/caverns) "CQ" = ( /obj/structure/barricade/plasteel/wired, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/bunker/pillbox/two) "CR" = ( /turf/closed/wall/rock/brown, @@ -8120,10 +6546,7 @@ /obj/structure/machinery/floodlight{ light_on = 1 }, -/turf/open/floor/plating{ - dir = 5; - icon_state = "asteroidwarning" - }, +/turf/open/floor/plating/asteroidwarning/northeast, /area/whiskey_outpost/outside/north/platform) "CY" = ( /obj/structure/platform, @@ -8179,65 +6602,42 @@ icon_state = "pipe-c" }, /obj/effect/landmark/start/whiskey/marine, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/outside/north/platform) "Dn" = ( -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/north, /area/whiskey_outpost/outside/north/platform) "Do" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/outside/north/beach) "Dp" = ( -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/whiskey_outpost/outside/north/platform) "Dq" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/outside/north/northeast) "Dr" = ( /obj/structure/disposalpipe/segment{ dir = 2; icon_state = "pipe-c" }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/outside/north/northeast) "Ds" = ( -/turf/open/floor/plating{ - dir = 4; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/east, /area/whiskey_outpost/outside/north/northeast) "Dt" = ( /obj/structure/barricade/sandbags/wired{ dir = 1; icon_state = "sandbag_0" }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/north, /area/whiskey_outpost/outside/north/beach) "Du" = ( /obj/structure/disposalpipe/segment, @@ -8245,20 +6645,14 @@ dir = 4 }, /obj/effect/landmark/start/whiskey/marine, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/outside/north/platform) "Dv" = ( /obj/structure/disposalpipe/segment{ dir = 2; icon_state = "pipe-c" }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/outside/north/platform) "Dw" = ( /obj/structure/surface/table/woodentable/poor, @@ -8274,10 +6668,7 @@ "Dz" = ( /obj/structure/disposalpipe/segment, /obj/effect/landmark/start/whiskey/marine, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/outside/north/platform) "DA" = ( /obj/structure/platform, @@ -8293,25 +6684,16 @@ icon_state = "pipe-c" }, /obj/effect/landmark/start/whiskey/marine, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/outside/north/platform) "DC" = ( /obj/structure/barricade/plasteel/wired{ dir = 4 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/outside/north/platform) "DD" = ( -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/outside/north/beach) "DE" = ( /turf/open/gm/coast/beachcorner2/south_east, @@ -8336,20 +6718,14 @@ /area/whiskey_outpost/outside/north/beach) "DJ" = ( /obj/structure/machinery/cryopod, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/bunker/pillbox/four) "DK" = ( /obj/structure/cargo_container/watatsumi/leftmid, /turf/open/floor/plating, /area/whiskey_outpost/outside/north/northeast) "DL" = ( -/turf/open/floor/plating{ - dir = 8; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/west, /area/whiskey_outpost/outside/north/northeast) "DM" = ( /obj/structure/machinery/floodlight{ @@ -8369,18 +6745,12 @@ /obj/structure/machinery/defenses/sentry/premade{ dir = 8 }, -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/west, /area/whiskey_outpost/outside/north/platform) "DO" = ( /obj/structure/disposalpipe/segment, /obj/effect/landmark/start/whiskey/smartgunner, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/outside/north/platform) "DP" = ( /obj/structure/platform{ @@ -8393,10 +6763,7 @@ dir = 4; icon_state = "warning_s" }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/inside/bunker/bunker/front) "DU" = ( /obj/item/lightstick/red/planted, @@ -8411,10 +6778,7 @@ /area/whiskey_outpost/inside/bunker) "DW" = ( /obj/structure/machinery/door/window/northleft, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/whiskey_outpost/inside/engineering) "DX" = ( /obj/structure/blocker/invisible_wall, @@ -8429,33 +6793,22 @@ dir = 1; icon_state = "sandbag_0" }, -/turf/open/floor/plating{ - dir = 9; - icon_state = "asteroidwarning" - }, +/turf/open/floor/plating/asteroidwarning/northwest, /area/whiskey_outpost/outside/north/platform) "DZ" = ( /obj/structure/barricade/sandbags/wired, /obj/structure/disposalpipe/segment, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/outside/north/platform) "Ea" = ( /turf/open/gm/dirtgrassborder/grassdirt_corner/north_east, /area/whiskey_outpost/outside/south) "Eb" = ( /obj/structure/machinery/medical_pod/autodoc/unskilled, -/turf/open/floor{ - dir = 5; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/northeast, /area/whiskey_outpost/inside/hospital/triage) "Ec" = ( -/turf/open/floor/plating{ - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate, /area/whiskey_outpost/outside/north/northeast) "Ed" = ( /obj/structure/bed/chair{ @@ -8471,29 +6824,21 @@ /obj/structure/machinery/floodlight{ light_on = 1 }, -/turf/open/floor/plating{ - dir = 9; - icon_state = "asteroidwarning" - }, +/turf/open/floor/plating/asteroidwarning/northwest, /area/whiskey_outpost/outside/north/platform) "Eg" = ( /turf/open/gm/coast/beachcorner/north_west, /area/whiskey_outpost/outside/river/west) "Eh" = ( /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/inside/bunker/bunker/front) "Ei" = ( /obj/structure/machinery/cm_vending/clothing/marine/bravo{ density = 0; pixel_x = 16 }, -/turf/open/floor/almayer{ - icon_state = "orangefull" - }, +/turf/open/floor/almayer/orangefull, /area/whiskey_outpost/inside/living) "Ek" = ( /obj/structure/filtration/machine_96x96/indestructible{ @@ -8511,10 +6856,7 @@ dir = 4 }, /obj/effect/landmark/start/whiskey/marine, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/outside/lane/three_south) "Er" = ( /obj/structure/platform{ @@ -8530,18 +6872,14 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/whiskey_outpost/outside/north/northwest) "Ew" = ( /obj/structure/barricade/sandbags/wired, /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/whiskey_outpost/outside/north/beach) "Ex" = ( /obj/structure/disposalpipe/segment{ @@ -8549,27 +6887,18 @@ icon_state = "pipe-c" }, /obj/effect/landmark/start/whiskey/smartgunner, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/outside/north/platform) "Ey" = ( /obj/structure/disposalpipe/sortjunction{ sortType = "Western Platform" }, /obj/effect/landmark/start/whiskey/smartgunner, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/outside/north/platform) "Ez" = ( /obj/structure/machinery/computer/crew, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/southwest, /area/whiskey_outpost/inside/cic) "EA" = ( /obj/structure/disposalpipe/segment, @@ -8591,9 +6920,7 @@ icon_state = "pipe-c" }, /obj/structure/surface/rack, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/whiskey_outpost/inside/bunker) "EF" = ( /turf/open/jungle, @@ -8607,29 +6934,21 @@ icon_state = "sandbag_0" }, /obj/structure/barricade/sandbags/wired, -/turf/open/floor/plating{ - dir = 10; - icon_state = "asteroidwarning" - }, +/turf/open/floor/plating/asteroidwarning/southwest, /area/whiskey_outpost/outside/north/platform) "EI" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/whiskey_outpost/inside/bunker) "EJ" = ( /obj/structure/barricade/sandbags/wired, /turf/open/gm/dirt, /area/whiskey_outpost/outside/north/northeast) "EK" = ( -/turf/open/jungle{ - bushes_spawn = 0; - icon_state = "grass_impenetrable" - }, +/turf/open/jungle/impenetrable, /area/whiskey_outpost/outside/north/northwest) "EL" = ( /obj/structure/machinery/cm_vending/gear/synth, @@ -8637,10 +6956,7 @@ /area/whiskey_outpost/inside/cic) "EN" = ( /obj/structure/largecrate/random/case/double, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/outside/lane/three_south) "EO" = ( /turf/open/gm/grass/grass1, @@ -8652,10 +6968,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/west, /area/whiskey_outpost/outside/north/platform) "ER" = ( /turf/open/gm/coast/north, @@ -8664,10 +6977,7 @@ /turf/closed/wall/r_wall, /area/whiskey_outpost/inside/bunker/pillbox/one) "EV" = ( -/turf/open/jungle{ - bushes_spawn = 0; - icon_state = "grass_impenetrable" - }, +/turf/open/jungle/impenetrable, /area/whiskey_outpost/outside/lane/three_north) "EX" = ( /obj/structure/platform{ @@ -8684,10 +6994,7 @@ dir = 1 }, /obj/effect/landmark/start/whiskey/bridge, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "blue" - }, +/turf/open/floor/almayer/blue/northeast, /area/whiskey_outpost/inside/cic) "Fa" = ( /obj/effect/decal/warning_stripes/asteroid{ @@ -8697,20 +7004,14 @@ dir = 1; icon_state = "warning_s" }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/outside/north) "Fd" = ( /obj/structure/barricade/sandbags/wired, /obj/structure/disposalpipe/sortjunction/flipped{ sortType = "Eastern Platform" }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/outside/north/platform) "Fg" = ( /obj/structure/disposalpipe/segment{ @@ -8718,20 +7019,14 @@ }, /obj/structure/disposalpipe/segment, /obj/structure/machinery/colony_floodlight, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/outside/north/platform) "Fh" = ( /obj/structure/machinery/shower{ dir = 4 }, /obj/effect/landmark/start/whiskey/marine, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/inside/bunker/bunker/front) "Fi" = ( /obj/structure/platform{ @@ -8755,10 +7050,7 @@ dir = 1 }, /obj/item/roller, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/bunker/bunker/front) "Fn" = ( /turf/open/gm/dirtgrassborder/grassdirt_corner/south_east, @@ -8771,10 +7063,7 @@ /area/whiskey_outpost/outside/river/west) "Fr" = ( /obj/structure/machinery/light/small, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/bunker/bunker/front) "Fs" = ( /obj/structure/platform{ @@ -8793,10 +7082,7 @@ /obj/item/storage/beer_pack, /obj/item/storage/beer_pack, /obj/structure/surface/rack, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/whiskey_outpost/inside/bunker/bunker/front) "Fw" = ( /obj/structure/platform, @@ -8834,10 +7120,7 @@ /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/bunker/pillbox/three) "FF" = ( /obj/structure/platform{ @@ -8860,55 +7143,39 @@ /turf/open/jungle, /area/whiskey_outpost/outside/south/very_far) "FL" = ( -/turf/open/jungle{ - bushes_spawn = 0; - icon_state = "grass_impenetrable" - }, +/turf/open/jungle/impenetrable, /area/whiskey_outpost/outside/lane/three_south) "FM" = ( /obj/structure/machinery/cm_vending/clothing/marine/alpha{ density = 0; pixel_x = 16 }, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, +/turf/open/floor/almayer/redfull, /area/whiskey_outpost/inside/living) "FO" = ( /obj/effect/landmark/start/whiskey/spec, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/outside/north/platform) "FP" = ( /obj/structure/disposalpipe/sortjunction/flipped{ sortType = "South-Eastern Platform" }, /obj/effect/landmark/start/whiskey/spec, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/outside/north/platform) "FS" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, /obj/effect/landmark/start/whiskey/spec, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/outside/north/platform) "FT" = ( /obj/structure/machinery/cm_vending/sorted/cargo_guns/squad_prep/wo, /obj/structure/sign/prop3{ pixel_x = 28 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/whiskey_outpost/inside/bunker/bunker/front) "FU" = ( /obj/structure/disposalpipe/segment{ @@ -8916,10 +7183,7 @@ }, /obj/structure/disposalpipe/segment, /obj/effect/landmark/start/whiskey/spec, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/outside/north/platform) "FV" = ( /obj/structure/barricade/metal/wired{ @@ -8966,10 +7230,7 @@ dir = 1; icon_state = "sandbag_0" }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/north, /area/whiskey_outpost/outside/north/northeast) "Ge" = ( /obj/structure/window/framed/colony/reinforced, @@ -8986,10 +7247,7 @@ /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/bunker/bunker/front) "Gi" = ( /turf/open/gm/grass/grassbeach/east, @@ -9023,10 +7281,7 @@ dir = 4; icon_state = "sandbag_0" }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/outside/north/beach) "Gu" = ( /obj/structure/sign/poster, @@ -9037,9 +7292,7 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/whiskey_outpost/inside/bunker/bunker/front) "Gx" = ( /obj/structure/machinery/light{ @@ -9050,9 +7303,7 @@ /area/whiskey_outpost/inside/cic) "Gy" = ( /obj/effect/landmark/start/whiskey/leader, -/turf/open/floor/almayer{ - icon_state = "bluefull" - }, +/turf/open/floor/almayer/bluefull, /area/whiskey_outpost/inside/living) "Gz" = ( /turf/open/floor/plating, @@ -9068,10 +7319,7 @@ /area/whiskey_outpost/outside/north/beach) "GD" = ( /obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/plating{ - dir = 9; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/northwest, /area/whiskey_outpost/outside/north/northeast) "GE" = ( /obj/structure/barricade/sandbags/wired, @@ -9079,9 +7327,7 @@ dir = 4; icon_state = "sandbag_0" }, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/whiskey_outpost/outside/north/platform) "GF" = ( /obj/structure/platform{ @@ -9091,10 +7337,7 @@ /obj/structure/stairs/perspective{ icon_state = "p_stair_full" }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/outside/north/platform) "GG" = ( /obj/structure/machinery/colony_floodlight, @@ -9108,10 +7351,7 @@ /obj/structure/stairs/perspective{ icon_state = "p_stair_full" }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/outside/north/platform) "GJ" = ( /turf/open/jungle, @@ -9125,9 +7365,7 @@ dir = 8; icon_state = "sandbag_0" }, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/whiskey_outpost/outside/north/platform) "GM" = ( /obj/structure/machinery/defenses/sentry/premade, @@ -9139,18 +7377,14 @@ /area/whiskey_outpost/outside/lane/four_south) "GO" = ( /obj/item/storage/box/m94, -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/light_grey_single_wide_up_to_down, /area/whiskey_outpost/outside/lane/four_north) "GQ" = ( /turf/open/gm/dirt, /area/whiskey_outpost/outside/lane/four_south) "GR" = ( /obj/structure/machinery/m56d_hmg/mg_turret, -/turf/open/floor/plating{ - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate, /area/whiskey_outpost/outside/north/beach) "GS" = ( /obj/structure/flora/bush/ausbushes/grassybush{ @@ -9161,10 +7395,7 @@ /area/whiskey_outpost/outside/river/east) "GT" = ( /obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/plating{ - dir = 8; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/west, /area/whiskey_outpost/outside/north/northeast) "GU" = ( /obj/structure/cargo_container/grant/left, @@ -9190,10 +7421,7 @@ pixel_x = 4; pixel_y = 12 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/inside/bunker/bunker/front) "Hc" = ( /obj/structure/cargo_container/grant/right, @@ -9201,28 +7429,20 @@ /area/whiskey_outpost/outside/north/northeast) "Hf" = ( /obj/structure/machinery/washing_machine, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/inside/bunker/bunker/front) "Hg" = ( /obj/structure/machinery/colony_floodlight, /turf/open/gm/dirt, /area/whiskey_outpost/outside/north/northwest) "Hh" = ( -/turf/open/shuttle/dropship{ - icon_state = "rasputin6" - }, +/turf/open/shuttle/dropship/light_grey_top_left, /area/whiskey_outpost/outside/lane/four_north) "Hi" = ( /obj/effect/decal/warning_stripes/asteroid{ icon_state = "warning_s" }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/outside/north) "Hj" = ( /turf/open/gm/dirtgrassborder/grassdirt_corner/north_east, @@ -9239,10 +7459,7 @@ /obj/effect/decal/warning_stripes/asteroid{ icon_state = "warning_s" }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/inside/bunker/bunker/front) "Hn" = ( /obj/structure/barricade/sandbags/wired, @@ -9250,17 +7467,11 @@ dir = 4; icon_state = "sandbag_0" }, -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/east, /area/whiskey_outpost/outside/north/platform) "Ho" = ( /obj/item/storage/box/m56d_hmg, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/whiskey_outpost/inside/bunker/bunker/front) "Hp" = ( /obj/structure/machinery/colony_floodlight, @@ -9268,9 +7479,7 @@ /area/whiskey_outpost/outside/lane/one_north) "Hq" = ( /obj/structure/pipes/standard/manifold/visible, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/whiskey_outpost/inside/hospital/triage) "Hr" = ( /turf/open/gm/dirtgrassborder/south, @@ -9298,9 +7507,7 @@ /turf/open/gm/dirt, /area/whiskey_outpost/outside/north/beach) "Hw" = ( -/turf/open/shuttle/dropship{ - icon_state = "rasputin7" - }, +/turf/open/shuttle/dropship/light_grey_top_right, /area/whiskey_outpost/outside/lane/four_north) "Hx" = ( /obj/structure/disposalpipe/segment{ @@ -9311,10 +7518,7 @@ /area/whiskey_outpost/outside/north/beach) "Hy" = ( /obj/effect/landmark/start/whiskey/marine, -/turf/open/floor/prison{ - dir = 1; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/north, /area/whiskey_outpost/inside/bunker/bunker/front) "HA" = ( /obj/structure/flora/bush/ausbushes/var3/leafybush, @@ -9342,19 +7546,14 @@ /obj/structure/machinery/door/airlock/almayer/marine/autoname{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/bunker/bunker/front) "HM" = ( /obj/structure/flora/jungle/planttop1, /turf/open/jungle, /area/whiskey_outpost/outside/lane/one_south) "HN" = ( -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/whiskey_outpost/inside/hospital/triage) "HP" = ( /obj/structure/machinery/light/small{ @@ -9377,10 +7576,7 @@ dir = 4; icon_state = "sandbag_0" }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/outside/north/beach) "HT" = ( /obj/structure/disposalpipe/segment{ @@ -9395,10 +7591,7 @@ /area/whiskey_outpost/inside/bunker/bunker/front) "HV" = ( /obj/structure/machinery/door/airlock/almayer/marine/autoname, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/bunker/bunker/front) "HW" = ( /obj/structure/flora/bush/ausbushes/var3/stalkybush, @@ -9414,18 +7607,12 @@ dir = 1; icon_state = "sandbag_0" }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/north, /area/whiskey_outpost/outside/north/northwest) "HZ" = ( /obj/structure/surface/rack, /obj/effect/landmark/wo_supplies/guns/common/m41a, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/bunker/pillbox/three) "Ia" = ( /obj/structure/barricade/sandbags/wired, @@ -9437,10 +7624,7 @@ dir = 1; icon_state = "sandbag_0" }, -/turf/open/floor/plating{ - dir = 10; - icon_state = "asteroidwarning" - }, +/turf/open/floor/plating/asteroidwarning/southwest, /area/whiskey_outpost/outside/north/platform) "Ic" = ( /obj/structure/barricade/sandbags/wired, @@ -9449,10 +7633,7 @@ icon_state = "sandbag_0" }, /obj/structure/machinery/defenses/sentry/premade, -/turf/open/floor{ - dir = 6; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/southeast, /area/whiskey_outpost/outside/north/platform) "If" = ( /obj/structure/barricade/sandbags/wired, @@ -9465,27 +7646,18 @@ icon_state = "sandbag_0" }, /obj/structure/machinery/defenses/sentry/premade, -/turf/open/floor/plating{ - dir = 10; - icon_state = "asteroidwarning" - }, +/turf/open/floor/plating/asteroidwarning/southwest, /area/whiskey_outpost/outside/north/platform) "Ih" = ( /obj/structure/barricade/sandbags/wired, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/whiskey_outpost/outside/north/beach) "Ii" = ( /obj/structure/barricade/sandbags/wired, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/whiskey_outpost/outside/north/northeast) "Ik" = ( -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/whiskey_outpost/outside/lane/four_north) "Il" = ( /obj/structure/bed/chair{ @@ -9515,10 +7687,7 @@ dir = 8; icon_state = "warning_s" }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/outside/north) "Iq" = ( /obj/structure/barricade/sandbags/wired, @@ -9550,27 +7719,18 @@ /turf/open/gm/dirtgrassborder/west, /area/whiskey_outpost/outside/lane/two_north) "Ix" = ( -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/outside/north/northwest) "Iy" = ( /obj/structure/machinery/recharge_station, -/turf/open/floor{ - dir = 10; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/southwest, /area/whiskey_outpost/inside/hospital/triage) "IA" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/weapon/gun/shotgun/pump{ starting_attachment_types = list(/obj/item/attachable/stock/shotgun) }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/inside/bunker/bunker/front) "IB" = ( /obj/structure/disposalpipe/segment, @@ -9583,9 +7743,7 @@ "IF" = ( /obj/structure/machinery/m56d_hmg/mg_turret, /obj/structure/barricade/sandbags/wired, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning, /area/whiskey_outpost/outside/north/platform) "IG" = ( /obj/structure/machinery/colony_floodlight, @@ -9619,9 +7777,7 @@ "IP" = ( /obj/structure/surface/table/almayer, /obj/item/tool/hand_labeler, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/whiskey_outpost/inside/supply) "IQ" = ( /obj/structure/platform{ @@ -9637,9 +7793,7 @@ /area/whiskey_outpost/outside/river/east) "IU" = ( /obj/effect/landmark/start/whiskey/marine, -/turf/open/floor/prison{ - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe, /area/whiskey_outpost/inside/bunker/bunker/front) "IV" = ( /obj/item/tool/weldpack{ @@ -9678,16 +7832,11 @@ "Jd" = ( /obj/structure/machinery/light/small, /obj/effect/landmark/whiskey_outpost/supplydrops, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/whiskey_outpost/inside/supply) "Je" = ( /obj/effect/landmark/start/whiskey/leader, -/turf/open/floor/almayer{ - icon_state = "emeraldfull" - }, +/turf/open/floor/almayer/emeraldfull, /area/whiskey_outpost/inside/living) "Jf" = ( /obj/structure/disposalpipe/segment{ @@ -9703,16 +7852,10 @@ "Jh" = ( /obj/item/tool/crowbar, /obj/effect/landmark/start/whiskey/leader, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/bunker/pillbox/two) "Ji" = ( -/turf/open/jungle{ - bushes_spawn = 0; - icon_state = "grass_impenetrable" - }, +/turf/open/jungle/impenetrable, /area/whiskey_outpost/inside/caves/caverns/west) "Jk" = ( /obj/structure/disposalpipe/segment{ @@ -9729,10 +7872,7 @@ dir = 1; icon_state = "sandbag_0" }, -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/east, /area/whiskey_outpost/outside/north/platform) "Jn" = ( /obj/structure/machinery/defenses/sentry/premade, @@ -9779,6 +7919,11 @@ /obj/item/tool/crowbar, /turf/open/gm/dirt, /area/whiskey_outpost/outside/lane/three_south) +"JA" = ( +/obj/structure/machinery/power/reactor/colony, +/obj/structure/machinery/light/small, +/turf/open/floor/prison/floor_plate/southwest, +/area/whiskey_outpost/inside/engineering) "JB" = ( /obj/structure/disposalpipe/sortjunction{ dir = 1; @@ -9794,25 +7939,18 @@ /area/whiskey_outpost/outside/south) "JE" = ( /obj/effect/landmark/start/whiskey/doctor, -/turf/open/floor{ - dir = 10; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/southwest, /area/whiskey_outpost/inside/hospital) "JF" = ( /obj/structure/machinery/cryopod, /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor{ - icon_state = "whitegreenfull" - }, +/turf/open/floor/whitegreenfull, /area/whiskey_outpost/inside/hospital) "JG" = ( /obj/item/storage/box/m56d_hmg, -/turf/open/shuttle/dropship{ - icon_state = "rasputin10" - }, +/turf/open/shuttle/dropship/light_grey_top, /area/whiskey_outpost/outside/lane/four_north) "JH" = ( /obj/structure/platform_decoration{ @@ -9820,6 +7958,10 @@ }, /turf/open/gm/grass/grassbeach/west, /area/whiskey_outpost/outside/south) +"JJ" = ( +/obj/structure/machinery/iv_drip, +/turf/open/floor/whitegreen/west, +/area/whiskey_outpost/inside/hospital) "JL" = ( /obj/structure/disposalpipe/segment{ dir = 8; @@ -9832,33 +7974,21 @@ dir = 1 }, /obj/structure/largecrate/supply/supplies/sandbags, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/whiskey_outpost/inside/bunker/bunker/front) "JN" = ( /obj/effect/landmark/whiskey_outpost/supplydrops, /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/whiskey_outpost/inside/supply) "JO" = ( /obj/effect/landmark/start/whiskey/leader, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/bunker/pillbox/three) "JP" = ( -/turf/open/floor{ - dir = 8; - icon_state = "whitegreencorner" - }, +/turf/open/floor/whitegreencorner/west, /area/whiskey_outpost/inside/hospital/triage) "JR" = ( /obj/structure/surface/table/reinforced/prison, @@ -9866,16 +7996,10 @@ pixel_x = -3; pixel_y = 5 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/inside/bunker/bunker/front) "JT" = ( -/turf/open/floor{ - dir = 8; - icon_state = "whitegreencorner" - }, +/turf/open/floor/whitegreencorner/west, /area/whiskey_outpost/inside/hospital) "JU" = ( /turf/open/gm/coast/south, @@ -9917,19 +8041,14 @@ dir = 8; icon_state = "shuttle_chair" }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/whiskey_outpost/outside/lane/four_south) "Kn" = ( /turf/open/gm/grass/grassbeach/south, /area/whiskey_outpost/outside/lane/one_north) "Ko" = ( /obj/structure/curtain, -/turf/open/floor{ - dir = 8; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/west, /area/whiskey_outpost/inside/hospital) "Kq" = ( /obj/structure/machinery/defenses/sentry/premade, @@ -9946,10 +8065,7 @@ dir = 1; icon_state = "pipe-c" }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2/east, /area/whiskey_outpost/inside/supply) "Kt" = ( /obj/structure/fence, @@ -9965,9 +8081,7 @@ /turf/open/gm/dirt, /area/whiskey_outpost/outside/lane/three_north) "Kx" = ( -/turf/open/floor{ - icon_state = "whitegreencorner" - }, +/turf/open/floor/whitegreencorner, /area/whiskey_outpost/inside/hospital/triage) "Ky" = ( /turf/open/gm/dirtgrassborder/south, @@ -9978,19 +8092,14 @@ /area/whiskey_outpost/outside/north/northwest) "KF" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/outside/north/northeast) "KG" = ( /turf/open/gm/dirtgrassborder/grassdirt_corner2/north_west, /area/whiskey_outpost/outside/lane/three_north) "KJ" = ( /obj/item/stack/medical/bruise_pack, -/turf/open/floor/plating{ - icon_state = "platebot" - }, +/turf/open/floor/plating/platebot, /area/whiskey_outpost/outside/lane/one_north) "KK" = ( /obj/structure/disposalpipe/sortjunction{ @@ -10008,10 +8117,7 @@ /area/whiskey_outpost/outside/north/northwest) "KN" = ( /obj/structure/largecrate/random/barrel/red, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/outside/lane/three_south) "KP" = ( /obj/structure/barricade/sandbags/wired{ @@ -10040,9 +8146,7 @@ /area/whiskey_outpost/outside/north/northwest) "KZ" = ( /obj/structure/largecrate/guns, -/turf/open/floor/plating{ - icon_state = "platebot" - }, +/turf/open/floor/plating/platebot, /area/whiskey_outpost/outside/lane/one_north) "Lb" = ( /obj/effect/landmark/start/whiskey/marine, @@ -10070,9 +8174,7 @@ /obj/item/weapon/gun/pill{ pixel_y = 6 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/whiskey_outpost/inside/hospital/triage) "Lg" = ( /turf/open/jungle, @@ -10084,26 +8186,18 @@ /obj/structure/machinery/chem_master{ tether_range = 4 }, -/turf/open/floor{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/north, /area/whiskey_outpost/inside/hospital) "Lj" = ( /obj/effect/landmark/start/whiskey/medic, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/bunker/bunker/front) "Ln" = ( /obj/structure/machinery/medical_pod/bodyscanner, /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/whiskey_outpost/inside/hospital/triage) "Lp" = ( /obj/item/lightstick/red/planted, @@ -10139,40 +8233,27 @@ /obj/structure/closet/secure_closet/surgical{ pixel_x = 30 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/whiskey_outpost/inside/hospital/triage) "Ly" = ( /turf/open/gm/dirtgrassborder/west, /area/whiskey_outpost/outside/lane/three_north) "Lz" = ( -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/outside/north) "LB" = ( -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/east, /area/whiskey_outpost/outside/north/northeast) "LD" = ( /obj/structure/barricade/sandbags/wired{ dir = 4; icon_state = "sandbag_0" }, -/turf/open/shuttle{ - icon_state = "floor7" - }, +/turf/open/shuttle/black, /area/whiskey_outpost/outside/lane/four_north) "LG" = ( /obj/effect/landmark/start/whiskey/marine, -/turf/open/jungle{ - bushes_spawn = 0; - icon_state = "grass_impenetrable" - }, +/turf/open/jungle/impenetrable, /area/whiskey_outpost/outside/lane/three_south) "LI" = ( /obj/structure/barricade/sandbags/wired{ @@ -10183,10 +8264,7 @@ dir = 8; icon_state = "sandbag_0" }, -/turf/open/floor/plating{ - dir = 9; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/northwest, /area/whiskey_outpost/outside/north/beach) "LJ" = ( /obj/effect/decal/warning_stripes/asteroid{ @@ -10206,12 +8284,9 @@ }, /obj/structure/barricade/sandbags/wired{ dir = 4; - icon_state = "sandbag_0" - }, -/turf/open/floor/plating{ - dir = 5; - icon_state = "warnplate" + icon_state = "sandbag_0" }, +/turf/open/floor/plating/warnplate/northeast, /area/whiskey_outpost/outside/north/beach) "LM" = ( /obj/structure/sign/prop1, @@ -10234,9 +8309,7 @@ /area/whiskey_outpost/outside/lane/one_north) "LU" = ( /obj/item/stack/medical/bruise_pack, -/turf/open/floor/plating{ - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate, /area/whiskey_outpost/outside/lane/one_north) "LX" = ( /turf/open/gm/coast/beachcorner/north_west, @@ -10247,9 +8320,7 @@ /area/whiskey_outpost/inside/bunker/bunker/front) "Ma" = ( /obj/item/storage/box/m56d_hmg, -/turf/open/floor/plating{ - icon_state = "platebot" - }, +/turf/open/floor/plating/platebot, /area/whiskey_outpost/outside/lane/one_north) "Mb" = ( /turf/open/gm/dirtgrassborder/east, @@ -10283,10 +8354,7 @@ dir = 8; icon_state = "warning_s" }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/outside/north) "Mh" = ( /obj/structure/machinery/conveyor{ @@ -10294,15 +8362,10 @@ id = "crate" }, /obj/structure/plasticflaps, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/whiskey_outpost/inside/supply) "Mi" = ( -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/west, /area/whiskey_outpost/outside/north/northeast) "Mj" = ( /obj/structure/platform{ @@ -10320,9 +8383,7 @@ /area/whiskey_outpost/inside/caves) "Ml" = ( /obj/structure/bed/roller, -/turf/open/floor{ - icon_state = "whitegreenfull" - }, +/turf/open/floor/whitegreenfull, /area/whiskey_outpost/inside/hospital/triage) "Mn" = ( /turf/closed/shuttle/dropship{ @@ -10332,47 +8393,30 @@ /area/whiskey_outpost/outside/lane/four_south) "Mo" = ( /obj/structure/machinery/recharge_station, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/whiskey_outpost/inside/cic) "Mp" = ( /obj/structure/machinery/m56d_hmg/mg_turret{ dir = 8; icon_state = "towergun" }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/west, /area/whiskey_outpost/outside/north/beach) "Mq" = ( /obj/structure/surface/table/reinforced/prison, /obj/effect/spawner/random/tool, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/outside/lane/three_south) "Ms" = ( -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/east, /area/whiskey_outpost/outside/lane/four_north) "Mt" = ( /obj/effect/landmark/start/whiskey/leader, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/outside/north/platform) "Mw" = ( /obj/structure/fence, -/turf/open/jungle{ - bushes_spawn = 0; - icon_state = "grass_impenetrable" - }, +/turf/open/jungle/impenetrable, /area/whiskey_outpost/outside/south) "Mx" = ( /turf/open/jungle, @@ -10423,10 +8467,7 @@ pixel_x = -8; pixel_y = 7 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/inside/bunker/bunker/front) "MI" = ( /obj/structure/flora/bush/ausbushes/grassybush, @@ -10434,18 +8475,13 @@ /area/whiskey_outpost/outside/north/beach) "ML" = ( /obj/effect/landmark/start/whiskey/marine, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost) "MO" = ( /obj/structure/pipes/standard/simple/visible{ dir = 9 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/whiskey_outpost/inside/hospital/triage) "MP" = ( /turf/open/gm/dirt, @@ -10468,17 +8504,11 @@ /area/whiskey_outpost/outside/north/beach) "MW" = ( /obj/structure/disposalpipe/segment, -/turf/open/jungle{ - bushes_spawn = 0; - icon_state = "grass_impenetrable" - }, +/turf/open/jungle/impenetrable, /area/whiskey_outpost/outside/lane/three_north) "MX" = ( /obj/structure/disposalpipe/segment, -/turf/open/jungle{ - bushes_spawn = 0; - icon_state = "grass_impenetrable" - }, +/turf/open/jungle/impenetrable, /area/whiskey_outpost/outside/lane/two_north) "MY" = ( /obj/effect/spawner/gibspawner/human, @@ -10492,10 +8522,7 @@ /area/whiskey_outpost/outside/lane/four_north) "Nc" = ( /obj/item/lightstick/red/planted, -/turf/open/jungle{ - bushes_spawn = 0; - icon_state = "grass_impenetrable" - }, +/turf/open/jungle/impenetrable, /area/whiskey_outpost/outside/south/far) "Nd" = ( /obj/structure/sign/poster{ @@ -10509,9 +8536,7 @@ /area/whiskey_outpost/outside/lane/three_north) "Nf" = ( /obj/structure/machinery/cm_vending/gear/medic, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/whiskey_outpost/inside/bunker/bunker/front) "Nh" = ( /obj/effect/landmark/start/whiskey/marine, @@ -10543,10 +8568,7 @@ dir = 1; icon_state = "sandbag_0" }, -/turf/open/floor/plating{ - dir = 5; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/northeast, /area/whiskey_outpost/outside/north/beach) "Nn" = ( /obj/structure/barricade/sandbags/wired, @@ -10554,16 +8576,11 @@ dir = 8; icon_state = "sandbag_0" }, -/turf/open/floor/plating{ - dir = 10; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/southwest, /area/whiskey_outpost/outside/north/beach) "Nq" = ( /obj/structure/barricade/sandbags/wired, -/turf/open/floor/plating{ - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate, /area/whiskey_outpost/outside/north/beach) "Nr" = ( /obj/structure/closet/fireaxecabinet{ @@ -10577,10 +8594,7 @@ dir = 4; icon_state = "sandbag_0" }, -/turf/open/floor/plating{ - dir = 6; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/southeast, /area/whiskey_outpost/outside/north/beach) "Nu" = ( /obj/effect/decal/cleanable/blood/writing, @@ -10595,26 +8609,17 @@ dir = 8; icon_state = "sandbag_0" }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/west, /area/whiskey_outpost/outside/north/beach) "Nz" = ( /obj/structure/barricade/sandbags/wired{ dir = 4; icon_state = "sandbag_0" }, -/turf/open/floor/plating{ - dir = 4; - icon_state = "warnplate" - }, +/turf/open/floor/plating/warnplate/east, /area/whiskey_outpost/outside/north/beach) "NA" = ( -/turf/open/floor{ - dir = 4; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/east, /area/whiskey_outpost/inside/hospital/triage) "NB" = ( /obj/structure/machinery/cm_vending/sorted/medical/wall_med{ @@ -10626,17 +8631,11 @@ dir = 1; pixel_y = 28 }, -/turf/open/floor{ - dir = 9; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/northwest, /area/whiskey_outpost/inside/hospital/triage) "ND" = ( /obj/effect/decal/cleanable/blood, -/turf/open/jungle{ - bushes_spawn = 0; - icon_state = "grass_impenetrable" - }, +/turf/open/jungle/impenetrable, /area/whiskey_outpost/outside/lane/four_south) "NE" = ( /obj/item/stool, @@ -10676,19 +8675,13 @@ /obj/effect/decal/warning_stripes/asteroid{ icon_state = "warning_s" }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/outside/north) "NT" = ( /obj/structure/machinery/autodoc_console{ dir = 1 }, -/turf/open/floor{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/north, /area/whiskey_outpost/inside/hospital/triage) "NV" = ( /turf/open/gm/dirt, @@ -10711,10 +8704,7 @@ /obj/structure/sign/banners/maximumeffort{ pixel_y = 30 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/bunker/bunker/front) "Ob" = ( /obj/structure/flora/jungle/alienplant1, @@ -10743,10 +8733,7 @@ /area/whiskey_outpost/outside/lane/four_north) "Oj" = ( /obj/structure/barricade/sandbags/wired, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/outside/north/beach) "Ok" = ( /turf/open/gm/coast/beachcorner2/north_east, @@ -10762,9 +8749,7 @@ id = "WOlineshutters1"; name = "\improper Supply Depo Line 1" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/whiskey_outpost/inside/supply) "On" = ( /obj/structure/surface/table/reinforced/prison, @@ -10783,26 +8768,18 @@ /turf/open/floor/prison, /area/whiskey_outpost/inside/bunker/bunker/front) "Oo" = ( -/turf/open/floor{ - dir = 4; - icon_state = "whitegreencorner" - }, +/turf/open/floor/whitegreencorner/east, /area/whiskey_outpost/inside/hospital/triage) "Op" = ( /obj/effect/landmark/start/whiskey/leader, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/whiskey_outpost/inside/bunker) "Oq" = ( /turf/closed/wall/r_wall, /area/whiskey_outpost/outside/lane/two_north) "Ot" = ( /obj/structure/disposalpipe/segment, -/turf/open/jungle{ - bushes_spawn = 0; - icon_state = "grass_impenetrable" - }, +/turf/open/jungle/impenetrable, /area/whiskey_outpost/outside/lane/three_south) "Ou" = ( /obj/structure/flora/bush/ausbushes/grassybush, @@ -10813,17 +8790,11 @@ /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/bunker/bunker/front) "Ow" = ( /obj/effect/landmark/start/whiskey/medic, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/inside/bunker/bunker/front) "OA" = ( /obj/structure/flora/jungle/alienplant1, @@ -10846,9 +8817,7 @@ pixel_x = 20; pixel_y = 32 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/whiskey_outpost/inside/hospital/triage) "OI" = ( /obj/structure/disposalpipe/segment{ @@ -10859,10 +8828,7 @@ unacidable = 1; unslashable = 1 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost) "OK" = ( /turf/closed/wall/strata_ice/jungle, @@ -10883,16 +8849,11 @@ /area/whiskey_outpost/inside/caves/caverns/west) "OQ" = ( /obj/effect/landmark/start/whiskey/marine, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/outside/lane/four_north) "OS" = ( /obj/structure/machinery/cm_vending/clothing/commanding_officer, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/whiskey_outpost/inside/cic) "OT" = ( /obj/effect/landmark/start/whiskey/marine, @@ -10912,10 +8873,7 @@ dir = 4 }, /obj/effect/landmark/start/whiskey/medic, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost) "OY" = ( /obj/structure/platform{ @@ -10924,10 +8882,7 @@ /turf/open/gm/coast/north, /area/whiskey_outpost/outside/river) "OZ" = ( -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/outside/lane/three_south) "Pc" = ( /obj/structure/disposalpipe/segment, @@ -10942,22 +8897,14 @@ /area/whiskey_outpost/outside/lane/two_south) "Pe" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/west, /area/whiskey_outpost/outside/north/beach) "Pg" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/east, /area/whiskey_outpost/outside/north/beach) "Ph" = ( -/turf/open/shuttle/dropship{ - icon_state = "rasputin8" - }, +/turf/open/shuttle/dropship/light_grey_bottom_right, /area/whiskey_outpost/outside/lane/four_north) "Pi" = ( /obj/structure/barricade/sandbags/wired, @@ -10974,10 +8921,7 @@ dir = 8 }, /obj/structure/machinery/disposal, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/bunker/pillbox/four) "Pm" = ( /turf/closed/wall/r_wall, @@ -10986,10 +8930,7 @@ /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/inside/bunker/bunker/front) "Pq" = ( /obj/structure/barricade/sandbags/wired, @@ -11012,24 +8953,16 @@ /area/whiskey_outpost/outside/river) "Pu" = ( /obj/structure/barricade/metal/wired, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/bunker/pillbox/two) "Pw" = ( -/turf/open/gm/dirt{ - icon_state = "desert1" - }, +/turf/open/gm/dirt/desert1, /area/whiskey_outpost/outside/lane/two_south) "Px" = ( /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/north, /area/whiskey_outpost/inside/hospital/triage) "Pz" = ( /turf/closed/shuttle/dropship{ @@ -11044,9 +8977,7 @@ /area/whiskey_outpost/outside/lane/three_north) "PB" = ( /obj/effect/landmark/start/whiskey/synthetic, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/whiskey_outpost/inside/cic) "PC" = ( /obj/structure/flora/bush/ausbushes/var3/leafybush, @@ -11094,27 +9025,27 @@ }, /turf/open/gm/river, /area/whiskey_outpost/outside/river/west) +"PR" = ( +/obj/structure/surface/rack, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/turf/open/floor/prison/floor_plate/southwest, +/area/whiskey_outpost/inside/engineering) "PT" = ( /obj/structure/machinery/medical_pod/sleeper, -/turf/open/floor{ - dir = 10; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/southwest, /area/whiskey_outpost/inside/hospital/triage) "PU" = ( /obj/structure/largecrate/supply/explosives/mines, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/whiskey_outpost/inside/bunker/bunker/front) "PV" = ( /obj/structure/machinery/door/airlock/hatch{ name = "Dropship Hatch" }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/whiskey_outpost/outside/lane/four_north) "PW" = ( /obj/structure/disposalpipe/segment{ @@ -11160,26 +9091,17 @@ /area/whiskey_outpost/outside/south) "Ql" = ( /obj/item/lightstick/red/planted, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/outside/north/beach) "Qm" = ( /obj/structure/machinery/medical_pod/sleeper{ dir = 1 }, -/turf/open/floor{ - dir = 6; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/southeast, /area/whiskey_outpost/inside/hospital/triage) "Qn" = ( /obj/effect/spawner/gibspawner/human, -/turf/open/jungle{ - bushes_spawn = 0; - icon_state = "grass_impenetrable" - }, +/turf/open/jungle/impenetrable, /area/whiskey_outpost/outside/south/far) "Qo" = ( /obj/structure/flora/bush/ausbushes/reedbush, @@ -11199,10 +9121,7 @@ /obj/structure/barricade/handrail{ dir = 1 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/west, /area/whiskey_outpost/inside/bunker) "Qt" = ( /obj/structure/machinery/colony_floodlight, @@ -11210,28 +9129,21 @@ /area/whiskey_outpost/outside/south/far) "Qv" = ( /obj/structure/largecrate/random, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/bunker/bunker/front) "Qw" = ( /obj/structure/machinery/cm_vending/clothing/marine/alpha{ density = 0; pixel_x = -16 }, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, +/turf/open/floor/almayer/redfull, /area/whiskey_outpost/outside/lane/two_north) "Qy" = ( /obj/structure/machinery/cm_vending/clothing/marine/alpha{ density = 0; pixel_x = -16 }, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, +/turf/open/floor/almayer/redfull, /area/whiskey_outpost/outside/lane/three_north) "QA" = ( /obj/structure/machinery/m56d_hmg/mg_turret, @@ -11250,19 +9162,14 @@ pixel_x = 1; pixel_y = 18 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/bunker/bunker/front) "QG" = ( /obj/structure/machinery/cm_vending/clothing/marine/alpha{ density = 0; pixel_x = -16 }, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, +/turf/open/floor/almayer/redfull, /area/whiskey_outpost/inside/living) "QH" = ( /obj/structure/cargo_container/grant/right, @@ -11280,19 +9187,8 @@ "QO" = ( /turf/closed/wall/r_wall, /area/whiskey_outpost/inside/bunker/pillbox/two) -"QP" = ( -/obj/effect/decal/cleanable/blood/writing{ - dir = 4 - }, -/turf/open/jungle{ - bushes_spawn = 0; - icon_state = "grass_impenetrable" - }, -/area/whiskey_outpost/outside/south/very_far) "QR" = ( -/turf/open/gm/dirt{ - icon_state = "desert3" - }, +/turf/open/gm/dirt/desert3, /area/whiskey_outpost/inside/caves/caverns/west) "QS" = ( /turf/open/gm/dirtgrassborder/grassdirt_corner2/south_east, @@ -11351,9 +9247,7 @@ density = 0; pixel_x = 16 }, -/turf/open/floor/almayer{ - icon_state = "emeraldfull" - }, +/turf/open/floor/almayer/emeraldfull, /area/whiskey_outpost/outside/lane/three_north) "Rf" = ( /obj/structure/machinery/shower{ @@ -11363,19 +9257,13 @@ /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/inside/bunker/bunker/front) "Rg" = ( /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/inside/bunker/bunker/front) "Rh" = ( /obj/effect/decal/cleanable/blood/writing{ @@ -11410,20 +9298,14 @@ "Rx" = ( /obj/structure/surface/rack, /obj/effect/landmark/wo_supplies/ammo/box/m41a, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/bunker/pillbox/three) "Rz" = ( /turf/open/gm/dirtgrassborder/grassdirt_corner2/north_west, /area/whiskey_outpost/outside/lane/two_south) "RA" = ( /obj/effect/landmark/start/whiskey/leader, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/bunker/pillbox/four) "RB" = ( /obj/structure/platform{ @@ -11436,10 +9318,7 @@ dir = 8; icon_state = "warning_s" }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/inside/bunker/bunker/front) "RD" = ( /obj/structure/cargo_container/grant/rightmid, @@ -11476,10 +9355,7 @@ /area/whiskey_outpost/outside/south) "RR" = ( /obj/structure/barricade/plasteel/wired, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/bunker/pillbox/three) "RS" = ( /obj/structure/flora/bush/ausbushes/var3/stalkybush, @@ -11487,26 +9363,18 @@ /area/whiskey_outpost/outside/lane/one_north) "RU" = ( /obj/structure/machinery/cm_vending/clothing/medic, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area) "RV" = ( /obj/item/storage/box/m94, -/turf/open/shuttle/dropship{ - icon_state = "rasputin5" - }, +/turf/open/shuttle/dropship/light_grey_left_to_right, /area/whiskey_outpost/outside/lane/four_north) "RW" = ( /turf/open/gm/coast/beachcorner/south_west, /area/whiskey_outpost/outside/river) "RX" = ( /obj/structure/largecrate/random/case, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/inside/bunker/bunker/front) "Sa" = ( /obj/structure/platform{ @@ -11533,9 +9401,7 @@ /area/whiskey_outpost/inside/bunker/pillbox/four) "Sf" = ( /obj/item/cell/high, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/whiskey_outpost/outside/lane/four_north) "Sh" = ( /obj/structure/disposalpipe/segment, @@ -11545,10 +9411,7 @@ req_access = null; req_one_access = null }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/bunker/pillbox/four) "Si" = ( /turf/open/gm/dirtgrassborder/south, @@ -11563,18 +9426,14 @@ /area/whiskey_outpost/outside/lane/two_south) "Sl" = ( /obj/effect/landmark/start/whiskey/medic, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/whiskey_outpost/inside/bunker/bunker/front) "Sm" = ( /obj/structure/machinery/cm_vending/clothing/marine/charlie{ density = 0; pixel_x = 16 }, -/turf/open/floor/almayer{ - icon_state = "emeraldfull" - }, +/turf/open/floor/almayer/emeraldfull, /area/whiskey_outpost/outside/lane/two_north) "Sn" = ( /obj/structure/machinery/door/airlock/almayer/medical/glass{ @@ -11582,18 +9441,14 @@ req_access = null; req_one_access = null }, -/turf/open/floor{ - icon_state = "whitegreenfull" - }, +/turf/open/floor/whitegreenfull, /area/whiskey_outpost/inside/hospital/triage) "So" = ( /obj/structure/machinery/cm_vending/clothing/marine/bravo{ density = 0; pixel_x = -16 }, -/turf/open/floor/almayer{ - icon_state = "orangefull" - }, +/turf/open/floor/almayer/orangefull, /area/whiskey_outpost/outside/lane/two_north) "Sp" = ( /obj/structure/filingcabinet{ @@ -11636,9 +9491,7 @@ /area/whiskey_outpost/inside/bunker/pillbox/four) "SC" = ( /obj/structure/closet, -/turf/open/floor{ - icon_state = "whitegreenfull" - }, +/turf/open/floor/whitegreenfull, /area/whiskey_outpost/inside/hospital) "SE" = ( /turf/open/gm/dirtgrassborder/north, @@ -11651,19 +9504,13 @@ /obj/structure/machinery/power/apc/almayer{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/bunker/pillbox/four) "SH" = ( /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/bunker/pillbox/four) "SI" = ( /turf/open/gm/dirtgrassborder/grassdirt_corner2/north_west, @@ -11679,10 +9526,7 @@ dir = 1; icon_state = "pipe-c" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/bunker/pillbox/four) "SL" = ( /obj/structure/platform_decoration{ @@ -11699,9 +9543,7 @@ density = 0; pixel_x = -16 }, -/turf/open/floor/almayer{ - icon_state = "orangefull" - }, +/turf/open/floor/almayer/orangefull, /area/whiskey_outpost/outside/lane/three_north) "SP" = ( /obj/structure/machinery/light/small{ @@ -11711,10 +9553,7 @@ dir = 4; icon_state = "warning_s" }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/inside/bunker/bunker/front) "SQ" = ( /obj/structure/platform{ @@ -11729,19 +9568,13 @@ /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/bunker/pillbox/four) "ST" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/bunker/pillbox/four) "SU" = ( /turf/open/gm/grass/grassbeach/west, @@ -11750,10 +9583,7 @@ /obj/structure/machinery/shower{ dir = 4 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/inside/bunker/bunker/front) "SX" = ( /turf/open/gm/river, @@ -11788,18 +9618,12 @@ /obj/structure/mirror{ pixel_x = -32 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/inside/bunker/bunker/front) "Te" = ( /obj/structure/barricade/metal/wired, /obj/structure/machinery/m56d_hmg/mg_turret, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/bunker/bunker/front) "Th" = ( /obj/item/lightstick/red/planted, @@ -11815,10 +9639,7 @@ /turf/open/gm/dirt, /area/whiskey_outpost/outside/lane/four_north) "Tk" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/bunker/bunker/front) "Tl" = ( /obj/effect/landmark/start/whiskey/leader, @@ -11827,10 +9648,7 @@ "Tm" = ( /obj/structure/surface/rack, /obj/effect/landmark/wo_supplies/ammo/box/m41a, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/bunker/pillbox/four) "Tn" = ( /obj/structure/platform{ @@ -11851,10 +9669,7 @@ req_access = null; req_one_access = null }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/bunker/pillbox/one) "Tr" = ( /obj/item/stool, @@ -11862,10 +9677,7 @@ /area/whiskey_outpost/outside/lane/two_south) "Ts" = ( /obj/effect/decal/cleanable/blood/writing, -/turf/open/jungle{ - bushes_spawn = 0; - icon_state = "grass_impenetrable" - }, +/turf/open/jungle/impenetrable, /area/whiskey_outpost/outside/south/far) "Tt" = ( /obj/structure/sign/safety/one, @@ -11879,10 +9691,7 @@ /turf/open/gm/dirt, /area/whiskey_outpost/outside/lane/two_south) "Tw" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/bunker/pillbox/one) "Tz" = ( /obj/effect/decal/cleanable/blood/writing{ @@ -11896,23 +9705,15 @@ /obj/item/reagent_container/hypospray, /obj/item/reagent_container/hypospray, /obj/structure/machinery/power/apc/almayer, -/turf/open/floor{ - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen, /area/whiskey_outpost/inside/hospital/triage) "TC" = ( /obj/structure/machinery/recharge_station, -/turf/open/floor{ - dir = 6; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/southeast, /area/whiskey_outpost/inside/hospital/triage) "TD" = ( /obj/item/weapon/sword/machete, -/turf/open/jungle{ - bushes_spawn = 0; - icon_state = "grass_impenetrable" - }, +/turf/open/jungle/impenetrable, /area/whiskey_outpost/outside/north) "TE" = ( /obj/structure/disposalpipe/segment, @@ -11931,10 +9732,7 @@ req_access = null; req_one_access = null }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/bunker/pillbox/one) "TL" = ( /turf/open/gm/dirtgrassborder/south, @@ -11954,9 +9752,7 @@ pixel_y = -2; req_one_access_txt = "2;21" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/whiskey_outpost/inside/supply) "TQ" = ( /obj/structure/largecrate/random/mini/med{ @@ -11990,10 +9786,7 @@ req_access = null; req_one_access = null }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/bunker/pillbox/two) "TX" = ( /obj/structure/fence, @@ -12009,10 +9802,7 @@ /area/whiskey_outpost/inside/living) "TZ" = ( /obj/structure/closet/crate, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/whiskey_outpost/inside/supply) "Ua" = ( /obj/structure/flora/jungle/plantbot1, @@ -12029,9 +9819,7 @@ density = 0; pixel_x = 16 }, -/turf/open/floor/almayer{ - icon_state = "bluefull" - }, +/turf/open/floor/almayer/bluefull, /area/whiskey_outpost/outside/lane/three_north) "Uf" = ( /turf/open/gm/grass/grassbeach/east, @@ -12048,18 +9836,13 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor{ - icon_state = "whitegreenfull" - }, +/turf/open/floor/whitegreenfull, /area/whiskey_outpost/inside/hospital/triage) "Ui" = ( /obj/item/roller, /obj/item/roller, /obj/item/roller, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/bunker/bunker/front) "Uk" = ( /obj/structure/disposalpipe/sortjunction{ @@ -12077,10 +9860,7 @@ /area/whiskey_outpost/outside/north) "Uo" = ( /obj/item/storage/box/explosive_mines, -/turf/open/jungle{ - bushes_spawn = 0; - icon_state = "grass_impenetrable" - }, +/turf/open/jungle/impenetrable, /area/whiskey_outpost/outside/lane/one_north) "Up" = ( /obj/structure/machinery/light/small{ @@ -12088,10 +9868,7 @@ }, /obj/structure/surface/rack, /obj/effect/landmark/wo_supplies/storage/machete, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/bunker/pillbox/four) "Uq" = ( /obj/structure/disposalpipe/segment, @@ -12109,20 +9886,14 @@ /area/whiskey_outpost/outside/lane/three_north) "Ut" = ( /obj/effect/landmark/start/whiskey/engineer, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/bunker/pillbox/four) "Uu" = ( /obj/structure/machinery/light/small{ dir = 4 }, /obj/structure/surface/rack, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/bunker/pillbox/four) "Uw" = ( /obj/structure/disposalpipe/segment, @@ -12141,19 +9912,13 @@ dir = 4 }, /obj/structure/machinery/disposal, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/bunker/pillbox/one) "UC" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/bunker/pillbox/one) "UF" = ( /turf/open/gm/coast/beachcorner2/south_east, @@ -12165,37 +9930,25 @@ /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/bunker/pillbox/one) "UJ" = ( /obj/structure/machinery/m56d_hmg/mg_turret, /obj/structure/barricade/metal/wired, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/bunker/bunker/front) "UK" = ( /obj/structure/disposalpipe/segment{ dir = 8; icon_state = "pipe-c" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/bunker/pillbox/one) "UL" = ( /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/bunker/pillbox/one) "UN" = ( /obj/structure/platform{ @@ -12209,16 +9962,11 @@ /area/whiskey_outpost/outside/north/northwest) "UP" = ( /obj/item/lightstick/red/planted, -/turf/open/jungle{ - bushes_spawn = 0; - icon_state = "grass_impenetrable" - }, +/turf/open/jungle/impenetrable, /area/whiskey_outpost/outside/south) "UR" = ( /obj/structure/machinery/cm_vending/sorted/cargo_guns/squad_prep/wo, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/whiskey_outpost/inside/bunker/bunker/front) "US" = ( /obj/structure/flora/jungle/plantbot1, @@ -12232,10 +9980,7 @@ /obj/structure/machinery/power/apc/almayer{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/bunker/pillbox/one) "UY" = ( /turf/open/gm/dirtgrassborder/south, @@ -12245,9 +9990,7 @@ density = 0; pixel_x = 16 }, -/turf/open/floor/almayer{ - icon_state = "bluefull" - }, +/turf/open/floor/almayer/bluefull, /area/whiskey_outpost/outside/lane/two_north) "Va" = ( /obj/structure/barricade/sandbags/wired, @@ -12270,15 +10013,10 @@ /turf/open/gm/dirtgrassborder/grassdirt_corner/north_east, /area/whiskey_outpost/inside/caves/caverns/east) "Vh" = ( -/turf/open/jungle/impenetrable{ - icon_state = "grass_clear" - }, +/turf/open/jungle/impenetrable/grass_clear, /area/whiskey_outpost/outside/south/very_far) "Vi" = ( -/turf/open/jungle{ - bushes_spawn = 0; - icon_state = "grass_impenetrable" - }, +/turf/open/jungle/impenetrable, /area/whiskey_outpost/outside/north) "Vj" = ( /obj/structure/disposalpipe/segment{ @@ -12295,29 +10033,18 @@ /turf/open/gm/dirt, /area/whiskey_outpost/outside/lane/three_south) "Vm" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/east, /area/whiskey_outpost/inside/caves/tunnel) "Vo" = ( -/turf/open/jungle{ - bushes_spawn = 0; - icon_state = "grass_impenetrable" - }, +/turf/open/jungle/impenetrable, /area/whiskey_outpost/outside/lane/one_south) "Vp" = ( /obj/item/cell/high, -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/light_grey_single_wide_up_to_down, /area/whiskey_outpost/outside/lane/four_north) "Vq" = ( /obj/structure/machinery/computer/crew, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "blue" - }, +/turf/open/floor/almayer/blue/southeast, /area/whiskey_outpost/inside/cic) "Vr" = ( /obj/structure/machinery/light{ @@ -12363,9 +10090,7 @@ /obj/structure/machinery/light/small{ dir = 4 }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/whiskey_outpost/inside/hospital/triage) "Vy" = ( /obj/structure/machinery/cm_vending/clothing/synth, @@ -12380,10 +10105,7 @@ /area/whiskey_outpost/outside/lane/one_south) "VD" = ( /obj/effect/decal/cleanable/blood/writing, -/turf/open/jungle{ - bushes_spawn = 0; - icon_state = "grass_impenetrable" - }, +/turf/open/jungle/impenetrable, /area/whiskey_outpost/outside/lane/four_south) "VE" = ( /obj/effect/decal/cleanable/blood/writing{ @@ -12406,18 +10128,12 @@ /area/whiskey_outpost/outside/lane/two_south) "VI" = ( /obj/structure/machinery/defenses/sentry/premade, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/bunker/pillbox/three) "VJ" = ( /obj/structure/surface/rack, /obj/item/tool/crowbar, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/bunker/pillbox/four) "VK" = ( /obj/structure/disposalpipe/segment, @@ -12425,10 +10141,7 @@ /area/whiskey_outpost/outside/lane/three_south) "VL" = ( /obj/structure/largecrate/supply/medicine/medkits, -/turf/open/floor{ - dir = 1; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/north, /area/whiskey_outpost/inside/hospital/triage) "VM" = ( /turf/closed/wall/r_wall, @@ -12436,24 +10149,15 @@ "VN" = ( /obj/effect/landmark/start/whiskey/marine, /obj/structure/machinery/defenses/sentry/premade, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/bunker/pillbox/four) "VO" = ( /obj/structure/machinery/colony_floodlight, -/turf/open/jungle{ - bushes_spawn = 0; - icon_state = "grass_impenetrable" - }, +/turf/open/jungle/impenetrable, /area/whiskey_outpost/outside/lane/three_north) "VP" = ( /obj/item/toy/beach_ball/holoball, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/inside/bunker/bunker/front) "VQ" = ( /obj/structure/platform{ @@ -12476,10 +10180,7 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/north, /area/whiskey_outpost/inside/bunker/bunker/front) "VT" = ( /obj/structure/disposalpipe/segment{ @@ -12488,9 +10189,7 @@ /turf/open/gm/dirtgrassborder/grassdirt_corner2/south_west, /area/whiskey_outpost/outside/north) "VU" = ( -/turf/open/gm/dirt{ - icon_state = "desert1" - }, +/turf/open/gm/dirt/desert1, /area/whiskey_outpost/inside/caves/caverns/west) "VV" = ( /turf/open/gm/dirtgrassborder/grassdirt_corner/south_east, @@ -12508,51 +10207,106 @@ dir = 8; icon_state = "sandbag_0" }, -/obj/structure/barricade/sandbags/wired, -/turf/open/gm/dirt, -/area/whiskey_outpost/outside/north) -"Wc" = ( -/obj/effect/landmark/start/whiskey/doctor, -/turf/open/floor{ - dir = 6; - icon_state = "whitegreen" +/obj/structure/barricade/sandbags/wired, +/turf/open/gm/dirt, +/area/whiskey_outpost/outside/north) +"Wc" = ( +/obj/effect/landmark/start/whiskey/doctor, +/turf/open/floor/whitegreen/southeast, +/area/whiskey_outpost/inside/hospital) +"Wd" = ( +/obj/item/weapon/gun/rifle/m41a, +/turf/open/gm/river, +/area/whiskey_outpost/outside/lane/one_south) +"We" = ( +/turf/closed/wall, +/area/whiskey_outpost/outside/south/far) +"Wf" = ( +/obj/structure/surface/rack, +/obj/effect/landmark/wo_supplies/guns/common/m41a, +/turf/open/floor/prison/floor_plate/southwest, +/area/whiskey_outpost/inside/bunker/pillbox/four) +"Wg" = ( +/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ + name = "Emergency NanoMed"; + pixel_x = -30; + req_access = null + }, +/obj/structure/machinery/cryopod, +/turf/open/floor/prison/floor_plate/southwest, +/area/whiskey_outpost/inside/bunker/pillbox/one) +"Wj" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/storage/firstaid/rad, +/obj/item/storage/firstaid/rad, +/obj/item/storage/firstaid/rad, +/obj/item/storage/firstaid/rad, +/obj/item/storage/firstaid/toxin{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/storage/firstaid/toxin{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/storage/firstaid/toxin{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/storage/firstaid/toxin{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/storage/firstaid/fire, +/obj/item/storage/firstaid/fire, +/obj/item/storage/firstaid/fire, +/obj/item/storage/firstaid/fire, +/obj/item/storage/firstaid/regular{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/storage/firstaid/regular{ + pixel_x = 3; + pixel_y = 3 }, -/area/whiskey_outpost/inside/hospital) -"Wd" = ( -/obj/item/weapon/gun/rifle/m41a, -/turf/open/gm/river, -/area/whiskey_outpost/outside/lane/one_south) -"We" = ( -/turf/closed/wall, -/area/whiskey_outpost/outside/south/far) -"Wf" = ( -/obj/structure/surface/rack, -/obj/effect/landmark/wo_supplies/guns/common/m41a, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" +/obj/item/storage/firstaid/regular{ + pixel_x = 3; + pixel_y = 3 }, -/area/whiskey_outpost/inside/bunker/pillbox/four) -"Wg" = ( -/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ - name = "Emergency NanoMed"; - pixel_x = -30; - req_access = null +/obj/item/storage/firstaid/regular{ + pixel_x = 3; + pixel_y = 3 }, -/obj/structure/machinery/cryopod, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" +/obj/item/storage/firstaid/o2, +/obj/item/storage/firstaid/o2, +/obj/item/storage/firstaid/o2, +/obj/item/storage/firstaid/o2, +/obj/item/storage/firstaid/adv{ + pixel_x = 3; + pixel_y = 3 }, -/area/whiskey_outpost/inside/bunker/pillbox/one) +/obj/item/storage/firstaid/adv{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/storage/firstaid/adv{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/storage/firstaid/adv{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/effect/landmark/wo_supplies/storage/belts/lifesaver, +/obj/effect/landmark/wo_supplies/storage/belts/lifesaver, +/obj/effect/landmark/wo_supplies/storage/belts/lifesaver, +/turf/open/floor/whitegreen/northeast, +/area/whiskey_outpost/inside/hospital) "Wk" = ( /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/bunker/pillbox/two) "Wl" = ( /turf/closed/shuttle/dropship{ @@ -12561,10 +10315,7 @@ /area/whiskey_outpost/outside/lane/four_south) "Wm" = ( /obj/effect/landmark/start/whiskey/marine, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/bunker/pillbox/one) "Wn" = ( /obj/structure/reagent_dispensers/fueltank, @@ -12573,10 +10324,7 @@ "Wo" = ( /obj/item/stack/cable_coil, /obj/structure/surface/table/reinforced/prison, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/inside/bunker/bunker/front) "Wp" = ( /obj/structure/sign/safety/two, @@ -12591,10 +10339,7 @@ /area/whiskey_outpost/outside/south/very_far) "Ws" = ( /obj/effect/landmark/start/whiskey/marine, -/turf/open/jungle{ - bushes_spawn = 0; - icon_state = "grass_impenetrable" - }, +/turf/open/jungle/impenetrable, /area/whiskey_outpost/outside/lane/two_south) "Wu" = ( /obj/structure/disposalpipe/segment, @@ -12604,10 +10349,7 @@ req_access = null; req_one_access = null }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/bunker/pillbox/two) "Wv" = ( /turf/open/gm/dirtgrassborder/grassdirt_corner2/south_east, @@ -12617,16 +10359,11 @@ /turf/open/gm/dirt, /area/whiskey_outpost/outside/lane/one_north) "Wz" = ( -/turf/open/gm/dirt{ - icon_state = "desert2" - }, +/turf/open/gm/dirt/desert2, /area/whiskey_outpost/inside/caves/caverns/west) "WA" = ( /obj/structure/machinery/chem_dispenser, -/turf/open/floor{ - dir = 9; - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen/northwest, /area/whiskey_outpost/inside/hospital) "WC" = ( /obj/structure/disposalpipe/segment{ @@ -12649,16 +10386,11 @@ dir = 2; icon_state = "pipe-c" }, -/turf/open/floor{ - icon_state = "white" - }, +/turf/open/floor/white, /area/whiskey_outpost/inside/hospital/triage) "WJ" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/east, /area/whiskey_outpost/outside/north) "WK" = ( /obj/structure/machinery/cm_vending/own_points/experimental_tools, @@ -12691,9 +10423,7 @@ "WR" = ( /obj/effect/decal/cleanable/blood/oil, /obj/effect/landmark/start/whiskey/medic, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate, /area/whiskey_outpost/inside/bunker/bunker/front) "WS" = ( /obj/structure/disposalpipe/segment{ @@ -12723,10 +10453,7 @@ /area/whiskey_outpost/inside/bunker/bunker/front) "WY" = ( /obj/structure/barricade/metal/wired, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/bunker/pillbox/four) "WZ" = ( /obj/structure/disposalpipe/sortjunction{ @@ -12741,10 +10468,7 @@ /area/whiskey_outpost/outside/lane/two_south) "Xe" = ( /obj/structure/barricade/plasteel/wired, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/bunker/pillbox/four) "Xg" = ( /obj/effect/landmark/start/whiskey/marine, @@ -12754,20 +10478,14 @@ /obj/structure/machinery/floodlight{ light_on = 1 }, -/turf/open/floor/plating{ - dir = 10; - icon_state = "asteroidwarning" - }, +/turf/open/floor/plating/asteroidwarning/southwest, /area/whiskey_outpost/outside/north/platform) "Xj" = ( /obj/structure/machinery/light/small{ dir = 8 }, /obj/structure/surface/rack, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/bunker/pillbox/one) "Xk" = ( /obj/effect/landmark/start/whiskey/marine, @@ -12775,16 +10493,10 @@ /area/whiskey_outpost/outside/lane/two_south) "Xl" = ( /obj/effect/landmark/start/whiskey/engineer, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/bunker/pillbox/one) "Xm" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/bunker/pillbox/four) "Xn" = ( /obj/structure/machinery/defenses/sentry/premade, @@ -12796,16 +10508,10 @@ }, /obj/structure/surface/rack, /obj/effect/landmark/wo_supplies/storage/machete, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/bunker/pillbox/one) "Xq" = ( -/turf/open/jungle{ - bushes_spawn = 0; - icon_state = "grass_impenetrable" - }, +/turf/open/jungle/impenetrable, /area/whiskey_outpost/outside/lane/two_north) "Xr" = ( /obj/effect/landmark/start/whiskey/marine, @@ -12830,9 +10536,7 @@ }, /obj/structure/machinery/light/small, /obj/structure/machinery/disposal, -/turf/open/floor{ - icon_state = "whitegreen" - }, +/turf/open/floor/whitegreen, /area/whiskey_outpost/inside/hospital/triage) "XB" = ( /turf/closed/shuttle/dropship{ @@ -12848,37 +10552,26 @@ dir = 4 }, /obj/structure/machinery/disposal, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/bunker/pillbox/two) "XG" = ( /obj/structure/largecrate/random/mini/ammo{ pixel_y = -5 }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/inside/bunker/bunker/front) "XH" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/bunker/pillbox/two) "XI" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, /obj/structure/bed/roller, -/turf/open/floor{ - icon_state = "whitegreenfull" - }, +/turf/open/floor/whitegreenfull, /area/whiskey_outpost/inside/hospital/triage) "XK" = ( /obj/structure/disposalpipe/segment{ @@ -12887,17 +10580,11 @@ /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/bunker/pillbox/two) "XM" = ( /obj/structure/reagent_dispensers/watertank, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/bunker/bunker/front) "XN" = ( /obj/structure/surface/table/reinforced/prison, @@ -12906,10 +10593,7 @@ /area/whiskey_outpost/outside/lane/two_south) "XO" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/whiskey_outpost/inside/supply) "XP" = ( /obj/structure/disposalpipe/segment{ @@ -12922,10 +10606,7 @@ dir = 8; icon_state = "pipe-c" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/bunker/pillbox/two) "XR" = ( /obj/effect/landmark/start/whiskey/marine, @@ -12940,10 +10621,7 @@ /obj/structure/machinery/power/apc/almayer{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/bunker/pillbox/two) "XW" = ( /turf/closed/shuttle/dropship{ @@ -12981,28 +10659,19 @@ dir = 4; icon_state = "warning_s" }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/outside/north) "Yj" = ( /obj/structure/machinery/power/apc/almayer{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/bunker/pillbox/three) "Yk" = ( /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/bunker/pillbox/three) "Yl" = ( /obj/structure/barricade/metal/wired, @@ -13014,10 +10683,7 @@ dir = 1; icon_state = "pipe-c" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/bunker/pillbox/three) "Yo" = ( /turf/open/gm/coast/north, @@ -13029,10 +10695,7 @@ /turf/open/gm/coast/north, /area/whiskey_outpost/outside/lane/four_north) "Yq" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/southwest, /area/whiskey_outpost/inside/bunker/bunker/front) "Yr" = ( /obj/structure/flora/jungle/planttop1, @@ -13093,10 +10756,7 @@ dir = 1; icon_state = "warning_s" }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/outside/north) "YE" = ( /obj/structure/bed/chair, @@ -13106,10 +10766,7 @@ /obj/structure/disposalpipe/segment, /obj/structure/surface/rack, /obj/effect/landmark/wo_supplies/ammo/box/m41a, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/bunker/pillbox/two) "YH" = ( /turf/open/gm/dirtgrassborder/grassdirt_corner/north_west, @@ -13117,25 +10774,17 @@ "YI" = ( /obj/structure/surface/rack, /obj/effect/landmark/wo_supplies/guns/common/m41a, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/bunker/pillbox/one) "YK" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/toolbox, /obj/effect/spawner/random/tool, /obj/effect/spawner/random/tool, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/bunker/bunker/front) "YL" = ( -/turf/open/shuttle/dropship{ - icon_state = "rasputin4" - }, +/turf/open/shuttle/dropship/light_grey_bottom_left, /area/whiskey_outpost/outside/lane/four_north) "YM" = ( /obj/effect/landmark/start/whiskey/marine, @@ -13148,16 +10797,10 @@ "YP" = ( /obj/structure/surface/rack, /obj/item/tool/crowbar, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/bunker/pillbox/one) "YR" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/bunker/pillbox/three) "YT" = ( /obj/effect/landmark/start/whiskey/marine, @@ -13179,10 +10822,7 @@ req_access = null }, /obj/structure/machinery/cryopod, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/bunker/pillbox/two) "Zb" = ( /obj/structure/prop/dam/truck/mining, @@ -13215,10 +10855,7 @@ req_access = null }, /obj/structure/machinery/cryopod, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/bunker/pillbox/three) "Zf" = ( /turf/closed/wall/strata_ice/jungle, @@ -13227,10 +10864,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison/cell_stripe/east, /area/whiskey_outpost/inside/bunker/bunker/front) "Zh" = ( /obj/structure/platform{ @@ -13262,9 +10896,8 @@ /area/whiskey_outpost/outside/south) "Zm" = ( /obj/structure/machinery/cm_vending/sorted/medical/chemistry, -/turf/open/floor{ - icon_state = "white" - }, +/obj/structure/medical_supply_link, +/turf/open/floor/white, /area/whiskey_outpost/inside/hospital) "Zn" = ( /obj/structure/flora/bush/ausbushes/reedbush, @@ -13286,17 +10919,11 @@ req_access = null; req_one_access = null }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/bunker/pillbox/four) "Zr" = ( /obj/item/storage/box/m56d_hmg, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/bunker/bunker/front) "Zs" = ( /turf/open/gm/grass/grassbeach/south, @@ -13320,10 +10947,7 @@ "Zy" = ( /obj/effect/spawner/random/tool, /obj/structure/surface/rack, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/bunker/bunker/front) "Zz" = ( /obj/structure/sign/safety/north, @@ -13346,16 +10970,11 @@ density = 0; icon_state = "brokengrille" }, -/turf/open/shuttle{ - icon_state = "floor7" - }, +/turf/open/shuttle/black, /area/whiskey_outpost/outside/lane/four_north) "ZE" = ( /obj/structure/barricade/metal/wired, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/bunker/pillbox/one) "ZF" = ( /turf/open/gm/dirtgrassborder/west, @@ -13373,36 +10992,24 @@ /area/whiskey_outpost/inside/supply) "ZI" = ( /obj/structure/barricade/plasteel/wired, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/bunker/pillbox/one) "ZJ" = ( /obj/structure/machinery/light/small{ dir = 8 }, /obj/structure/surface/rack, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/bunker/pillbox/two) "ZK" = ( -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" - }, +/turf/open/floor/asteroidwarning/west, /area/whiskey_outpost/outside/lane/four_north) "ZL" = ( /turf/open/gm/coast/beachcorner/south_west, /area/whiskey_outpost/outside/lane/four_south) "ZN" = ( /obj/effect/landmark/start/whiskey/engineer, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/bunker/pillbox/two) "ZP" = ( /turf/open/gm/dirtgrassborder/grassdirt_corner/north_east, @@ -13414,20 +11021,14 @@ /obj/structure/disposalpipe/segment, /obj/structure/surface/rack, /obj/effect/landmark/wo_supplies/storage/machete, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/bunker/pillbox/two) "ZT" = ( /obj/item/lightstick/red/planted, /turf/open/gm/dirtgrassborder/west, /area/whiskey_outpost/outside/south/far) "ZU" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, +/turf/open/floor/prison/floor_plate/southwest, /area/whiskey_outpost/inside/bunker/pillbox/two) "ZV" = ( /obj/effect/decal/warning_stripes/asteroid{ @@ -13442,10 +11043,7 @@ icon_state = "warning_s" }, /obj/item/device/flashlight/lamp/tripod/grey, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/asteroidfloor/north, /area/whiskey_outpost/outside/north) "ZW" = ( /turf/closed/shuttle/dropship{ @@ -19565,13 +17163,13 @@ WK ak ak ak -ak -mT -mT -mT -mT -mT -mT +nK +nK +nK +nK +nK +nK +nK mT mT mT @@ -19767,13 +17365,13 @@ aC qe ih Nr -ak -mT -mT -mT -mT -mT -mT +nK +uM +rq +fG +rq +PR +nK mT mT mT @@ -19970,11 +17568,11 @@ PB PM Ed nK -nK -nK -nK -nK -nK +pk +sP +rV +sP +cB nK nK nK @@ -20174,9 +17772,9 @@ PM nK qu re -rR +rV sP -tt +hH nK vl vR @@ -20376,9 +17974,9 @@ uI nK qx ri -rf +rV sP -ty +JA nK vl rV @@ -20578,9 +18176,9 @@ mh nK qu re -rf +rV sP -tt +hH nK vl rV @@ -20780,9 +18378,9 @@ nI Kr qC rs -fG +rV sP -ty +xc nK vl rV @@ -20903,7 +18501,7 @@ uJ uJ uJ HI -mb +EP EP EP BK @@ -21307,7 +18905,7 @@ mT mT mf mf -mb +EP mf EP EP @@ -21508,10 +19106,10 @@ mT Zf Zf mf -mb +EP mf mf -mb +EP EP BK BK @@ -21709,10 +19307,10 @@ Zf Zf mf mf -mb +EP mf mf -mb +EP mf EP EP @@ -21907,13 +19505,13 @@ AA zt zt zt -mb +EP mf -mb +EP mf mf -mb -mb +EP +EP mf mf mf @@ -22111,14 +19709,14 @@ AA AA mf mf -mb +EP mf mf -mb -mb +EP +EP mf mf -mb +EP EP EP BK @@ -22312,11 +19910,11 @@ AA zt AA zt -mb -mb +EP +EP mf mf -mb +EP mf mf mf @@ -22514,14 +20112,14 @@ AA AA AA AA -mb +EP mf -mb +EP mf -mb +EP mf mf -mb +EP mf mf mf @@ -22722,14 +20320,14 @@ mf mf mf mf -mb +EP mf mf -mb +EP mf mf -mb -mb +EP +EP Zf Zf Zf @@ -22919,18 +20517,18 @@ AA zt AA AA -mb +EP mf -mb +EP mf -mb -mb +EP +EP mf mf -mb +EP mf mf -mb +EP mf EP BK @@ -23124,16 +20722,16 @@ AA AA mf mf -mb +EP mf mf mf mf mf mf -mb +EP mf -mb +EP EP BK BK @@ -23325,15 +20923,15 @@ AA zt AA mf -mb +EP mf mf mf mf mf mf -mb -mb +EP +EP mf EP EP @@ -23536,7 +21134,7 @@ mf mf mf mf -mb +EP EP BK BK @@ -23604,7 +21202,7 @@ lG iV qz qz -ne +kh kj oW OX @@ -23730,7 +21328,7 @@ AA zt AA mf -mb +EP mf mf mf @@ -23932,13 +21530,13 @@ AA zt zt AA -mb +EP mf mf mf mf mf -mb +EP mf EP BK @@ -24134,12 +21732,12 @@ AA AA AA AA -mb -mb -mb +EP +EP +EP mf mf -mb +EP mf mf EP @@ -24343,7 +21941,7 @@ Yr FI mf mf -mb +EP EP BK BK @@ -24545,7 +22143,7 @@ mf mf mf mf -mb +EP EP BK BK @@ -24747,7 +22345,7 @@ mf mf mf mf -mb +EP EP BK BK @@ -24944,7 +22542,7 @@ zt AA zt Zf -mb +EP mf mf mf @@ -25151,7 +22749,7 @@ mf mf mf AI -mb +EP EP BK BK @@ -25349,11 +22947,11 @@ Zf Zf AA zt -mb +EP mf -mb -QP -mb +EP +Tz +EP EP BK BK @@ -25613,7 +23211,7 @@ qz qz dQ fp -ht +JJ aV qz qz @@ -25754,8 +23352,8 @@ AA AA AA AA -mb -mb +EP +EP AI mf Zf @@ -25957,7 +23555,7 @@ AA zt AA zt -mb +EP AI mf Zf @@ -26159,8 +23757,8 @@ Zf AA AA zt -mb -QP +EP +Tz mf mf Zf @@ -26217,8 +23815,8 @@ bG cb pq qz -fk -gX +Wj +Ay hD im iO @@ -26363,8 +23961,8 @@ Zf Zf AA AI -mb -mb +EP +EP mf mf Zf @@ -26565,7 +24163,7 @@ Zf Zf AA AI -mb +EP mf mf mf @@ -26767,10 +24365,10 @@ Zf Zf Zf es -mb +EP mf -mb -mb +EP +EP mf Zf Zf @@ -26969,12 +24567,12 @@ Zf AA zt es -mb -mb +EP +EP mf -mb +EP mf -mb +EP mf Zf Zf @@ -27172,11 +24770,11 @@ AA AA es AA -mb +EP mf mf -mb -mb +EP +EP mf Zf Zf @@ -29593,7 +27191,7 @@ zt fQ dv zt -mb +EP mf mf mf @@ -29997,7 +27595,7 @@ nE Ts nE Bv -xy +Nu Bv Bv Bv @@ -30198,7 +27796,7 @@ zt AA zt zt -mb +EP mf mf mf @@ -30601,8 +28199,8 @@ AA zt zt AA -mb -mb +EP +EP mf mf mf @@ -30805,7 +28403,7 @@ zt mf mf mf -mb +EP mf mf EP @@ -31005,8 +28603,8 @@ AA AA AA mf -mb -mb +EP +EP mf mf EP @@ -31206,10 +28804,10 @@ AA zt AA mf -mb +EP mf mf -mb +EP mf EP BK @@ -31609,11 +29207,11 @@ AA zt AA mf -mb +EP mf -mb -mb -mb +EP +EP +EP EP EP BK @@ -31814,7 +29412,7 @@ mf mf mf mf -mb +EP mf EP BK @@ -32012,9 +29610,9 @@ AA zt AA mf -mb +EP mf -mb +EP mf mf mf @@ -32415,9 +30013,9 @@ mT Zf mT mf -mb +EP mf -mb +EP mf mf mf diff --git a/maps/map_files/generic/Admin_level.dmm b/maps/map_files/generic/Admin_level.dmm index d085d7a99b0c..be0f85e60028 100644 --- a/maps/map_files/generic/Admin_level.dmm +++ b/maps/map_files/generic/Admin_level.dmm @@ -12,10 +12,7 @@ /turf/open/floor/wood/ship, /area/adminlevel/ert_station) "ad" = ( -/turf/open/floor/tdome{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/tdome/northeast, /area/tdome) "ae" = ( /obj/docking_port/stationary/vehicle_elevator/adminlevel, @@ -27,18 +24,12 @@ id = "tdome_observer"; name = "\improper Observer Shutters" }, -/turf/open/floor/tdome{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/tdome/northeast, /area/tdome) "aj" = ( /obj/structure/machinery/cm_vending/sorted/tech/tool_storage, /obj/effect/spider/stickyweb, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/northwest, /area/adminlevel/ert_station) "ak" = ( /turf/closed/wall/almayer/outer, @@ -51,10 +42,7 @@ pixel_y = 27 }, /obj/structure/bed/sofa/south/grey/left, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/north, /area/adminlevel/ert_station) "as" = ( /turf/open/space/basic, @@ -63,19 +51,13 @@ /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor/tdome{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/tdome/northeast, /area/tdome) "aA" = ( /obj/effect/decal/warning_stripes{ icon_state = "E" }, -/turf/open/floor/tdome{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/tdome/northeast, /area/tdome) "aB" = ( /obj/structure/machinery/door/poddoor/almayer/locked{ @@ -83,9 +65,7 @@ id = "tdome_t2"; name = "\improper Team 2 Shutters" }, -/turf/open/floor/tdome{ - icon_state = "test_floor4" - }, +/turf/open/floor/tdome/test_floor4, /area/tdome) "aC" = ( /obj/effect/step_trigger/teleporter/random{ @@ -101,10 +81,7 @@ /turf/open/space, /area/space) "aE" = ( -/turf/open/floor/tdome{ - dir = 1; - icon_state = "w-y0" - }, +/turf/open/floor/tdome/w_y0/north, /area/tdome) "aK" = ( /obj/structure/closet/cabinet, @@ -112,36 +89,27 @@ /area/adminlevel/ert_station) "bn" = ( /obj/structure/closet/boxinggloves, -/turf/open/floor/almayer{ - icon_state = "silver" - }, +/turf/open/floor/almayer/silver, /area/adminlevel/ert_station) "co" = ( /obj/structure/machinery/status_display{ pixel_y = 30 }, /obj/structure/bed/sofa/south/grey, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/north, /area/adminlevel/ert_station) "cD" = ( /obj/structure/machinery/cm_vending/sorted/medical/blood{ req_access = null }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/adminlevel/ert_station) "cK" = ( /obj/structure/disposalpipe/segment{ dir = 1; icon_state = "pipe-c" }, -/turf/open/floor/almayer{ - icon_state = "floor" - }, +/turf/open/floor/almayer/floor, /area/adminlevel/ert_station) "cU" = ( /obj/effect/step_trigger/teleporter/random{ @@ -160,10 +128,7 @@ /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22" }, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/southeast, /area/adminlevel/ert_station/shuttle_dispatch) "ds" = ( /turf/closed/wall/almayer/outer{ @@ -171,9 +136,7 @@ }, /area/centcom/living) "dw" = ( -/turf/open/floor/almayer{ - icon_state = "test_floor5" - }, +/turf/open/floor/almayer/test_floor5, /area/supply/dock) "dy" = ( /turf/open/floor/wood, @@ -198,9 +161,7 @@ /turf/open/floor/plating/bare_catwalk, /area/supply/dock) "ev" = ( -/turf/open/floor/carpet/edge{ - dir = 9 - }, +/turf/open/floor/carpet/edge/northwest, /area/centcom/living) "ew" = ( /obj/structure/surface/table/woodentable/fancy, @@ -230,40 +191,27 @@ /turf/open/floor/plating/almayer, /area/adminlevel/ert_station) "eE" = ( -/turf/open/floor/carpet/edge{ - dir = 1 - }, +/turf/open/floor/carpet/edge/north, /area/centcom/living) "eF" = ( -/turf/open/floor/carpet/edge{ - dir = 5 - }, +/turf/open/floor/carpet/edge/northeast, /area/centcom/living) "eG" = ( /obj/structure/window/framed/colony/reinforced/hull, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, +/turf/open/floor/almayer/redfull, /area/adminlevel/ert_station) "eQ" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/east, /area/adminlevel/ert_station/shuttle_dispatch) "eU" = ( -/turf/open/floor/carpet/edge{ - dir = 8 - }, +/turf/open/floor/carpet/edge/west, /area/centcom/living) "eW" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_10" }, -/turf/open/floor/carpet/edge{ - dir = 8 - }, +/turf/open/floor/carpet/edge/west, /area/centcom/living) "eX" = ( /obj/effect/landmark/sim_target, @@ -273,9 +221,7 @@ /turf/open/floor/carpet, /area/centcom/living) "eZ" = ( -/turf/open/floor/carpet/edge{ - dir = 4 - }, +/turf/open/floor/carpet/edge/east, /area/centcom/living) "fn" = ( /turf/closed/wall/almayer/outer{ @@ -308,46 +254,32 @@ /area/centcom/living) "fz" = ( /obj/structure/machinery/telecomms/receiver/preset_cent, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/centcom/control) "fA" = ( /obj/structure/machinery/telecomms/bus/preset_cent, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/centcom/control) "fB" = ( /obj/structure/machinery/telecomms/processor/preset_cent, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/centcom/control) "fC" = ( /obj/structure/machinery/telecomms/server/presets/centcomm, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/centcom/control) "fL" = ( -/turf/open/floor/carpet/edge{ - dir = 10 - }, +/turf/open/floor/carpet/edge/southwest, /area/centcom/living) "fM" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_10" }, -/turf/open/floor/carpet/edge{ - dir = 4 - }, +/turf/open/floor/carpet/edge/east, /area/centcom/living) "fN" = ( /obj/effect/step_trigger/message/memorial, -/turf/open/floor/carpet/edge{ - dir = 1 - }, +/turf/open/floor/carpet/edge/north, /area/centcom/living) "fO" = ( /obj/effect/step_trigger/message/memorial, @@ -358,87 +290,58 @@ /area/centcom/living) "fQ" = ( /obj/structure/machinery/telecomms/relay/preset/centcom, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/centcom/control) "fR" = ( -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/centcom/control) "fW" = ( -/turf/open/floor/carpet/edge{ - dir = 6 - }, +/turf/open/floor/carpet/edge/southeast, /area/centcom/living) "gb" = ( /obj/structure/machinery/autolathe/full, -/turf/open/floor/almayer{ - icon_state = "test_floor5" - }, +/turf/open/floor/almayer/test_floor5, /area/adminlevel/ert_station) "gd" = ( /obj/structure/machinery/telecomms/allinone/interceptor, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/centcom/control) "ge" = ( /obj/structure/machinery/telecomms/broadcaster/preset_cent, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/centcom/control) "gf" = ( /obj/structure/machinery/telecomms/hub/preset_cent, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/centcom/control) "gg" = ( /obj/structure/machinery/computer/rdservercontrol{ name = "Master R&D Server Controller" }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/centcom/control) "gh" = ( /obj/structure/machinery/r_n_d/server/centcom, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/centcom/control) "gu" = ( /turf/open/floor/plating, /area/admin/droppod/holding) "gA" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/ert_station) "gR" = ( -/turf/open/floor/almayer{ - dir = 6; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/southeast, /area/adminlevel/ert_station) "gX" = ( -/turf/open/floor/almayer{ - icon_state = "floor" - }, +/turf/open/floor/almayer/floor, /area/adminlevel/ert_station/shuttle_dispatch) "hp" = ( /turf/closed/wall/indestructible, /area/start) "hH" = ( -/turf/open/floor/almayer{ - dir = 9; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/northwest, /area/adminlevel/ert_station) "hP" = ( /obj/docking_port/stationary/emergency_response/idle_port1, @@ -450,24 +353,17 @@ /area/adminlevel/ert_station) "il" = ( /obj/structure/machinery/photocopier, -/turf/open/floor/almayer{ - icon_state = "floor" - }, +/turf/open/floor/almayer/floor, /area/adminlevel/ert_station) "iz" = ( /obj/structure/disposalpipe/junction, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/east, /area/adminlevel/ert_station) "iL" = ( /obj/structure/machinery/status_display{ pixel_y = 30 }, -/turf/open/floor/almayer{ - icon_state = "plating_striped" - }, +/turf/open/floor/almayer/plating_striped, /area/adminlevel/ert_station) "iR" = ( /obj/structure/disposalpipe/segment{ @@ -497,30 +393,20 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "floor" - }, +/turf/open/floor/almayer/floor, /area/adminlevel/ert_station) "me" = ( /obj/structure/disposalpipe/segment{ dir = 2 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/east, /area/adminlevel/ert_station) "nP" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "silvercorner" - }, +/turf/open/floor/almayer/silvercorner/west, /area/adminlevel/ert_station/shuttle_dispatch) "nU" = ( /obj/structure/bed/sofa/vert/grey, -/turf/open/floor/almayer{ - icon_state = "floor" - }, +/turf/open/floor/almayer/floor, /area/adminlevel/ert_station/shuttle_dispatch) "oa" = ( /obj/structure/surface/table/reinforced/prison, @@ -532,17 +418,13 @@ pixel_x = -9; pixel_y = -4 }, -/turf/open/floor/almayer{ - icon_state = "floor" - }, +/turf/open/floor/almayer/floor, /area/adminlevel/ert_station) "ob" = ( /obj/structure/target{ name = "punching bag" }, -/turf/open/floor/almayer{ - icon_state = "silver" - }, +/turf/open/floor/almayer/silver, /area/adminlevel/ert_station) "op" = ( /obj/structure/machinery/cryopod, @@ -555,17 +437,11 @@ /obj/structure/disposalpipe/segment{ dir = 2 }, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/almayer/red/northwest, /area/adminlevel/ert_station) "oB" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/north, /area/adminlevel/ert_station/shuttle_dispatch) "oQ" = ( /obj/effect/step_trigger/teleporter/random{ @@ -587,25 +463,17 @@ /turf/open/floor/plating/plating_catwalk, /area/adminlevel/ert_station) "oW" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "w-y0" - }, +/turf/open/floor/almayer/w_y0/north, /area/adminlevel/ert_station) "oZ" = ( /obj/structure/bed, /obj/item/bedsheet/medical, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/adminlevel/ert_station) "pc" = ( /obj/structure/bed, /obj/item/bedsheet/brown, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/almayer/red/northeast, /area/adminlevel/ert_station) "ph" = ( /obj/structure/disposalpipe/junction{ @@ -614,39 +482,26 @@ /turf/open/floor/plating/plating_catwalk, /area/adminlevel/ert_station) "pm" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/north, /area/adminlevel/ert_station) "pq" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - icon_state = "floor" - }, +/turf/open/floor/almayer/floor, /area/adminlevel/ert_station/shuttle_dispatch) "pP" = ( /obj/item/newspaper, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, +/turf/open/floor/carpet, /area/adminlevel/ert_station) "pQ" = ( /obj/structure/machinery/cm_vending/sorted/medical/wall_med{ pixel_y = 32 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/north, /area/adminlevel/ert_station/shuttle_dispatch) "qi" = ( /obj/structure/flora/pottedplant/random, -/turf/open/floor/almayer{ - icon_state = "floor" - }, +/turf/open/floor/almayer/floor, /area/adminlevel/ert_station/shuttle_dispatch) "ql" = ( /obj/effect/step_trigger/teleporter/random{ @@ -668,9 +523,7 @@ phone_id = "Unknown Signal"; pixel_x = 14 }, -/turf/open/floor/almayer{ - icon_state = "floor" - }, +/turf/open/floor/almayer/floor, /area/adminlevel/ert_station) "qz" = ( /obj/structure/surface/table/almayer, @@ -683,34 +536,24 @@ /obj/item/device/binoculars{ pixel_y = 4 }, -/turf/open/floor/tdome{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/tdome/northeast, /area/tdome/tdomeobserve) "rf" = ( /obj/structure/sink{ dir = 8; pixel_x = -11 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/northeast, /area/adminlevel/ert_station) "rR" = ( /obj/structure/closet/secure_closet/freezer/fridge/full, /obj/item/reagent_container/food/condiment/enzyme, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/adminlevel/ert_station) "sj" = ( /obj/structure/machinery/faxmachine, /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/almayer{ - icon_state = "floor" - }, +/turf/open/floor/almayer/floor, /area/adminlevel/ert_station) "sy" = ( /obj/effect/step_trigger/teleporter/random{ @@ -733,9 +576,7 @@ /area/adminlevel/ert_station) "th" = ( /obj/structure/machinery/medical_pod/bodyscanner, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/adminlevel/ert_station) "tx" = ( /obj/structure/machinery/hologram/holopad, @@ -754,9 +595,7 @@ /area/adminlevel/ert_station) "tY" = ( /obj/structure/machinery/washing_machine, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/adminlevel/ert_station) "uf" = ( /obj/structure/machinery/door/airlock/almayer/generic{ @@ -766,18 +605,14 @@ /obj/structure/disposalpipe/segment{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "floor" - }, +/turf/open/floor/almayer/floor, /area/adminlevel/ert_station) "ug" = ( /obj/structure/machinery/door/airlock/almayer/generic{ dir = 1; name = "\improper Bathroom" }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/adminlevel/ert_station) "uk" = ( /obj/structure/surface/table/reinforced, @@ -789,18 +624,14 @@ pixel_x = -8 }, /obj/item/tool/kitchen/rollingpin, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/adminlevel/ert_station) "ur" = ( /obj/docking_port/stationary/emergency_response/idle_port6, /turf/open/floor/plating, /area/adminlevel/ert_station) "uI" = ( -/turf/open/floor/almayer{ - icon_state = "red" - }, +/turf/open/floor/almayer/red, /area/adminlevel/ert_station) "uJ" = ( /obj/effect/step_trigger/teleporter/random{ @@ -816,19 +647,13 @@ /turf/open/space/transit/east/shuttlespace_ew13, /area/space) "uK" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/west, /area/adminlevel/ert_station) "uN" = ( /obj/structure/sign/goldenplaque{ pixel_y = 27 }, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, +/turf/open/floor/carpet, /area/adminlevel/ert_station) "uY" = ( /obj/structure/janitorialcart, @@ -840,30 +665,17 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/adminlevel/ert_station) "va" = ( /obj/structure/toilet, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/adminlevel/ert_station) "vB" = ( /obj/structure/surface/table/reinforced/black, /obj/effect/spawner/random/toy, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/northeast, /area/adminlevel/ert_station/shuttle_dispatch) -"vD" = ( -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, -/area/adminlevel/ert_station) "vE" = ( /obj/structure/machinery/cm_vending/sorted/cargo_guns/antag_guns{ hacked = 1; @@ -871,10 +683,7 @@ use_power = 0; use_snowflake_points = 1 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/ert_station) "vH" = ( /obj/effect/step_trigger/teleporter/random{ @@ -891,40 +700,25 @@ /area/space) "vN" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - icon_state = "silver" - }, +/turf/open/floor/almayer/silver, /area/adminlevel/ert_station/shuttle_dispatch) "wj" = ( -/turf/open/floor/tdome{ - dir = 1; - icon_state = "w-y2" - }, +/turf/open/floor/tdome/w_y2/north, /area/tdome) "wp" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/west, /area/adminlevel/ert_station/shuttle_dispatch) "wr" = ( /obj/structure/machinery/body_scanconsole, -/turf/open/floor/almayer{ - icon_state = "sterile_green" - }, +/turf/open/floor/almayer/sterile_green, /area/adminlevel/ert_station) "wu" = ( /obj/structure/machinery/iv_drip, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/adminlevel/ert_station) "wv" = ( /obj/structure/machinery/vending/snack, -/turf/open/floor/tdome{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/tdome/northeast, /area/tdome/tdomeobserve) "wA" = ( /obj/structure/surface/table/reinforced/prison, @@ -932,9 +726,7 @@ dir = 8; pixel_y = 6 }, -/turf/open/floor/almayer{ - icon_state = "floor" - }, +/turf/open/floor/almayer/floor, /area/adminlevel/ert_station) "wL" = ( /obj/structure/machinery/disposal/deliveryChute, @@ -954,9 +746,7 @@ /obj/structure/machinery/door/airlock/almayer/engineering{ name = "\improper Engineering Storage" }, -/turf/open/floor/almayer{ - icon_state = "floor" - }, +/turf/open/floor/almayer/floor, /area/adminlevel/ert_station) "xw" = ( /obj/effect/step_trigger/teleporter/random{ @@ -992,19 +782,14 @@ /turf/open/floor/wood/ship, /area/adminlevel/ert_station) "xU" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "w-y2" - }, +/turf/open/floor/almayer/w_y2/north, /area/adminlevel/ert_station) "yk" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/processor{ pixel_y = 10 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/adminlevel/ert_station) "ym" = ( /obj/effect/decal/warning_stripes{ @@ -1028,18 +813,14 @@ pixel_y = 10 }, /obj/structure/surface/table/reinforced, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/adminlevel/ert_station) "yQ" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/microwave{ pixel_y = 10 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/adminlevel/ert_station) "zg" = ( /obj/structure/machinery/chem_dispenser/soda{ @@ -1047,9 +828,7 @@ pixel_y = 10 }, /obj/structure/surface/table/reinforced, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/adminlevel/ert_station) "zk" = ( /obj/structure/machinery/chem_dispenser/soda/beer{ @@ -1057,47 +836,32 @@ pixel_y = 10 }, /obj/structure/surface/table/reinforced, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/adminlevel/ert_station) "zn" = ( /obj/structure/machinery/cm_vending/sorted/medical/no_access{ req_access = null }, -/turf/open/floor/almayer{ - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side, /area/adminlevel/ert_station) "zr" = ( -/turf/open/floor/almayer{ - dir = 9; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/northwest, /area/adminlevel/ert_station) "zt" = ( /obj/structure/machinery/vending/security, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/almayer/red/southeast, /area/adminlevel/ert_station) "zB" = ( /obj/structure/machinery/disposal, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/northwest, /area/adminlevel/ert_station/shuttle_dispatch) "zN" = ( /obj/structure/disposalpipe/segment{ dir = 4; icon_state = "pipe-c" }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/adminlevel/ert_station) "zO" = ( /obj/structure/surface/table/reinforced/prison, @@ -1105,24 +869,17 @@ /obj/item/device/defibrillator/upgraded, /obj/item/clothing/glasses/hud/health, /obj/item/roller, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/northwest, /area/adminlevel/ert_station) "AI" = ( /obj/structure/sign/poster{ pixel_x = -32; serial_number = 16 }, -/turf/open/floor/almayer{ - icon_state = "floor" - }, +/turf/open/floor/almayer/floor, /area/adminlevel/ert_station) "AL" = ( -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/adminlevel/ert_station) "AS" = ( /turf/closed/wall/almayer/outer, @@ -1131,9 +888,7 @@ /obj/structure/disposalpipe/segment{ dir = 2 }, -/turf/open/floor/almayer{ - icon_state = "floor" - }, +/turf/open/floor/almayer/floor, /area/adminlevel/ert_station) "Bw" = ( /obj/effect/decal/warning_stripes{ @@ -1147,10 +902,7 @@ /obj/effect/decal/warning_stripes{ icon_state = "E" }, -/turf/open/floor/tdome{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/tdome/northeast, /area/tdome/tdome2) "BO" = ( /obj/effect/decal/warning_stripes{ @@ -1163,27 +915,18 @@ /obj/structure/flora/pottedplant{ icon_state = "pottedplant_20" }, -/turf/open/floor/tdome{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/tdome/northeast, /area/tdome/tdomeobserve) "BV" = ( /obj/structure/closet/secure_closet/freezer/fridge/groceries, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/adminlevel/ert_station) "Cc" = ( /obj/effect/landmark/sim_camera, -/turf/open/floor/engine{ - color = "#AAAAAA" - }, +/turf/open/floor/engine/simulator_center, /area/adminlevel/simulation) "Cf" = ( -/turf/open/floor/almayer{ - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side, /area/adminlevel/ert_station) "Ch" = ( /obj/structure/sign/poster/ad, @@ -1192,19 +935,14 @@ "Cm" = ( /obj/structure/machinery/cm_vending/sorted/walkman, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/southwest, /area/adminlevel/ert_station/shuttle_dispatch) "CI" = ( /obj/structure/surface/table/almayer, /obj/structure/bedsheetbin{ pixel_y = 6 }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/adminlevel/ert_station) "CK" = ( /obj/structure/machinery/door/airlock/almayer/security/glass{ @@ -1215,9 +953,7 @@ /obj/structure/disposalpipe/segment{ dir = 2 }, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, +/turf/open/floor/almayer/redfull, /area/adminlevel/ert_station) "CN" = ( /obj/structure/sign/safety/bathunisex{ @@ -1226,9 +962,7 @@ /turf/open/floor/wood/ship, /area/adminlevel/ert_station) "CU" = ( -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/adminlevel/ert_station) "Do" = ( /obj/structure/mirror, @@ -1245,30 +979,21 @@ pixel_x = -17 }, /obj/structure/machinery/door/window/southleft, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/adminlevel/ert_station) "Dt" = ( /obj/structure/bed/sofa/vert/grey/top, -/turf/open/floor/almayer{ - icon_state = "floor" - }, +/turf/open/floor/almayer/floor, /area/adminlevel/ert_station/shuttle_dispatch) "Dv" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - icon_state = "floor" - }, +/turf/open/floor/almayer/floor, /area/adminlevel/ert_station/shuttle_dispatch) "Dw" = ( /obj/structure/closet/secure_closet/brig, /obj/item/book/manual/marine_law, -/obj/item/handcuffs, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" - }, +/obj/item/restraint/handcuffs, +/turf/open/floor/almayer/red/east, /area/adminlevel/ert_station) "DD" = ( /obj/effect/decal/warning_stripes{ @@ -1277,16 +1002,11 @@ /turf/open/floor/plating/almayer, /area/adminlevel/ert_station/shuttle_dispatch) "DV" = ( -/turf/open/floor/tdome{ - icon_state = "tcomms" - }, +/turf/open/floor/tdome/tcomms, /area/tdome) "Ee" = ( /obj/effect/landmark/thunderdome/one, -/turf/open/floor/tdome{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/tdome/northeast, /area/tdome/tdome1) "Ef" = ( /obj/effect/step_trigger/teleporter/random{ @@ -1316,10 +1036,7 @@ /turf/open/floor/plating/almayer, /area/adminlevel/ert_station/shuttle_dispatch) "Ez" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/almayer/red/east, /area/adminlevel/ert_station) "EG" = ( /obj/effect/decal/warning_stripes{ @@ -1347,24 +1064,17 @@ /obj/structure/disposalpipe/segment{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/adminlevel/ert_station) "EY" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/west, /area/adminlevel/ert_station/shuttle_dispatch) "Fd" = ( /obj/structure/disposalpipe/segment{ dir = 2 }, -/turf/open/floor/almayer{ - icon_state = "red" - }, +/turf/open/floor/almayer/red, /area/adminlevel/ert_station) "Fo" = ( /obj/effect/decal/warning_stripes{ @@ -1375,10 +1085,7 @@ "Fw" = ( /obj/structure/surface/table/almayer, /obj/item/storage/fancy/cigar, -/turf/open/floor/tdome{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/tdome/northeast, /area/tdome/tdomeobserve) "FB" = ( /turf/open/floor/plating, @@ -1398,14 +1105,10 @@ id = "ERT Lock 1"; unacidable = 1 }, -/turf/open/floor/almayer{ - icon_state = "tcomms" - }, +/turf/open/floor/almayer/tcomms, /area/adminlevel/ert_station) "FT" = ( -/turf/open/floor/almayer{ - icon_state = "silver" - }, +/turf/open/floor/almayer/silver, /area/adminlevel/ert_station/shuttle_dispatch) "Ge" = ( /obj/structure/bed/chair{ @@ -1424,10 +1127,7 @@ /obj/structure/machinery/cm_vending/sorted/medical/chemistry/no_access{ req_access = null }, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/southeast, /area/adminlevel/ert_station) "Gm" = ( /obj/effect/step_trigger/teleporter/random{ @@ -1443,22 +1143,15 @@ /turf/open/space/transit/east/shuttlespace_ew12, /area/space) "Gq" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/west, /area/adminlevel/ert_station) "Gr" = ( /obj/structure/closet/secure_closet/freezer/meat, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/adminlevel/ert_station) "Gs" = ( /obj/structure/machinery/sleep_console, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/adminlevel/ert_station) "Gv" = ( /obj/structure/surface/table/woodentable/fancy, @@ -1477,10 +1170,7 @@ /turf/open/floor/carpet, /area/adminlevel/ert_station) "GB" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/north, /area/adminlevel/ert_station) "GC" = ( /obj/structure/surface/table/woodentable/fancy, @@ -1510,27 +1200,19 @@ /obj/structure/machinery/door/airlock/almayer/generic{ name = "Restroom" }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/adminlevel/ert_station) "HL" = ( /obj/structure/sign/catclock{ pixel_x = 32 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/east, /area/adminlevel/ert_station/shuttle_dispatch) "HQ" = ( /obj/structure/disposalpipe/segment{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/north, /area/adminlevel/ert_station) "HW" = ( /obj/docking_port/stationary/emergency_response/idle_port4, @@ -1544,18 +1226,13 @@ /obj/structure/flora/pottedplant{ icon_state = "pottedplant_10" }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/west, /area/adminlevel/ert_station) "Il" = ( /obj/structure/machinery/bioprinter{ stored_metal = 1000 }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/adminlevel/ert_station) "Io" = ( /obj/structure/flora/pottedplant{ @@ -1568,19 +1245,14 @@ /turf/open/floor/wood/ship, /area/adminlevel/ert_station) "Is" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/almayer/red/north, /area/adminlevel/ert_station) "ID" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/adminlevel/ert_station) "IE" = ( /obj/structure/surface/table/woodentable/fancy, @@ -1596,10 +1268,7 @@ /obj/structure/disposalpipe/segment{ dir = 2 }, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/almayer/red/southwest, /area/adminlevel/ert_station) "IR" = ( /turf/closed/wall/r_wall/unmeltable, @@ -1617,19 +1286,14 @@ /turf/open/floor/plating/almayer, /area/adminlevel/ert_station) "Jy" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/east, /area/adminlevel/ert_station) "JT" = ( /obj/structure/sink{ dir = 8; pixel_x = -11 }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/adminlevel/ert_station) "JW" = ( /obj/structure/machinery/cm_vending/sorted/walkman, @@ -1639,24 +1303,16 @@ /turf/closed/wall/mineral/gold, /area/adminlevel/ert_station) "Kq" = ( -/turf/open/floor/tdome{ - icon_state = "redfull" - }, +/turf/open/floor/tdome/redfull, /area/tdome/tdome2) "Kv" = ( -/turf/open/floor/almayer{ - dir = 5; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/northeast, /area/adminlevel/ert_station) "KA" = ( /obj/structure/disposalpipe/segment{ dir = 2 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "greencorner" - }, +/turf/open/floor/almayer/greencorner/east, /area/adminlevel/ert_station) "KM" = ( /obj/structure/bed/chair{ @@ -1679,18 +1335,13 @@ pixel_y = 32 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/north, /area/adminlevel/ert_station/shuttle_dispatch) "Lt" = ( /obj/structure/disposalpipe/segment{ dir = 2 }, -/turf/open/floor/almayer{ - icon_state = "greencorner" - }, +/turf/open/floor/almayer/greencorner, /area/adminlevel/ert_station) "Ly" = ( /obj/effect/decal/warning_stripes{ @@ -1715,15 +1366,10 @@ /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "red" - }, +/turf/open/floor/almayer/red, /area/adminlevel/ert_station) "LE" = ( -/turf/open/floor/almayer{ - dir = 6; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/southeast, /area/adminlevel/ert_station) "LF" = ( /obj/structure/sign/nosmoking_1, @@ -1738,18 +1384,12 @@ /obj/structure/disposalpipe/trunk{ dir = 4 }, -/turf/open/floor/tdome{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/tdome/northeast, /area/tdome/tdomeobserve) "LR" = ( /obj/structure/machinery/optable, /obj/item/tank/anesthetic, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/northeast, /area/adminlevel/ert_station) "LU" = ( /obj/structure/sign/poster{ @@ -1758,9 +1398,7 @@ name = "YOU ALWAYS KNOW A WORKING JOE."; pixel_y = 30 }, -/turf/open/floor/almayer{ - icon_state = "plating_striped" - }, +/turf/open/floor/almayer/plating_striped, /area/adminlevel/ert_station) "LZ" = ( /obj/structure/machinery/door/airlock/almayer/generic{ @@ -1771,37 +1409,27 @@ dir = 4; unacidable = 1 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/ert_station) "Mk" = ( /obj/structure/sign/safety, /turf/closed/wall, /area/adminlevel/ert_station) "MB" = ( -/turf/open/floor/almayer{ - icon_state = "silvercorner" - }, +/turf/open/floor/almayer/silvercorner, /area/adminlevel/ert_station) "MG" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/west, /area/adminlevel/ert_station) "ML" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/adminlevel/ert_station) "MQ" = ( /obj/structure/disposalpipe/segment{ @@ -1828,9 +1456,7 @@ id = "ERT Lock 4"; unacidable = 1 }, -/turf/open/floor/almayer{ - icon_state = "tcomms" - }, +/turf/open/floor/almayer/tcomms, /area/adminlevel/ert_station) "Nk" = ( /obj/structure/flora/pottedplant{ @@ -1844,10 +1470,7 @@ name = "departures board"; pixel_y = 34 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/north, /area/adminlevel/ert_station/shuttle_dispatch) "Nx" = ( /obj/structure/barricade/handrail{ @@ -1861,9 +1484,7 @@ /obj/structure/disposalpipe/trunk{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "floor" - }, +/turf/open/floor/almayer/floor, /area/adminlevel/ert_station) "NH" = ( /obj/structure/sign/nosmoking_2, @@ -1871,10 +1492,7 @@ /area/adminlevel/ert_station) "NU" = ( /obj/structure/machinery/vending/cola, -/turf/open/floor/tdome{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/tdome/northeast, /area/tdome/tdomeobserve) "NZ" = ( /turf/open/floor/carpet, @@ -1890,17 +1508,13 @@ id = "ERT Lock 3"; unacidable = 1 }, -/turf/open/floor/almayer{ - icon_state = "tcomms" - }, +/turf/open/floor/almayer/tcomms, /area/adminlevel/ert_station) "Oi" = ( /turf/closed/wall/r_wall/unmeltable, /area/adminlevel/ert_station/shuttle_dispatch) "Oj" = ( -/turf/open/floor/almayer{ - icon_state = "plating_striped" - }, +/turf/open/floor/almayer/plating_striped, /area/adminlevel/ert_station) "On" = ( /obj/structure/disposaloutlet{ @@ -1914,9 +1528,7 @@ "OC" = ( /obj/structure/sign/poster/hunk, /obj/structure/window/framed/colony/reinforced/hull, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, +/turf/open/floor/almayer/redfull, /area/adminlevel/ert_station) "OD" = ( /obj/structure/machinery/vending/dinnerware, @@ -1928,19 +1540,14 @@ /area/adminlevel/ert_station) "OI" = ( /obj/structure/reagent_dispensers/watertank, -/turf/open/floor/almayer{ - icon_state = "test_floor5" - }, +/turf/open/floor/almayer/test_floor5, /area/adminlevel/ert_station) "OK" = ( /obj/effect/landmark/thunderdome/one, /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor/tdome{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/tdome/northeast, /area/tdome/tdome1) "OT" = ( /turf/closed/wall/almayer/outer, @@ -1957,32 +1564,21 @@ /turf/open/floor/plating/almayer, /area/adminlevel/ert_station/shuttle_dispatch) "Pr" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/east, /area/adminlevel/ert_station) "PE" = ( /turf/open/floor/engine, /area/adminlevel/simulation) "PF" = ( /obj/effect/landmark/thunderdome/two, -/turf/open/floor/tdome{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/tdome/northeast, /area/tdome/tdome2) "PJ" = ( -/turf/open/floor/tdome{ - dir = 1; - icon_state = "w-y1" - }, +/turf/open/floor/tdome/w_y1/north, /area/tdome) "PS" = ( /obj/item/trash/cigbutt/cigarbutt, -/turf/open/floor/almayer{ - icon_state = "floor" - }, +/turf/open/floor/almayer/floor, /area/adminlevel/ert_station) "PT" = ( /obj/structure/sign/safety/debark_lounge{ @@ -2005,65 +1601,43 @@ dir = 2; icon_state = "pipe-c" }, -/turf/open/floor/almayer{ - icon_state = "floor" - }, +/turf/open/floor/almayer/floor, /area/adminlevel/ert_station) "Qq" = ( /obj/structure/bed/sofa/vert/grey/top, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - icon_state = "floor" - }, +/turf/open/floor/almayer/floor, /area/adminlevel/ert_station/shuttle_dispatch) "Qr" = ( -/turf/open/floor/almayer{ - icon_state = "floor" - }, +/turf/open/floor/almayer/floor, /area/adminlevel/ert_station) "Qz" = ( /obj/item/prop/helmetgarb/rosary, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, +/turf/open/floor/carpet, /area/adminlevel/ert_station) "QA" = ( /obj/structure/machinery/chem_storage/misc, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/centcom/control) "QJ" = ( -/turf/open/floor/almayer{ - icon_state = "silver" - }, +/turf/open/floor/almayer/silver, /area/adminlevel/ert_station) "QL" = ( /obj/structure/bed/chair/comfy/black, -/turf/open/floor/tdome{ - icon_state = "tcomms" - }, +/turf/open/floor/tdome/tcomms, /area/tdome/tdomeobserve) "Rj" = ( /obj/structure/window/framed/colony, -/turf/open/floor/almayer{ - icon_state = "floor" - }, +/turf/open/floor/almayer/floor, /area/adminlevel/ert_station) "RF" = ( -/turf/open/floor/almayer{ - icon_state = "sterile_green" - }, +/turf/open/floor/almayer/sterile_green, /area/adminlevel/ert_station) "RK" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_21" }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/west, /area/adminlevel/ert_station) "RL" = ( /obj/structure/surface/table/reinforced/prison, @@ -2072,18 +1646,13 @@ pixel_x = 11; pixel_y = 13 }, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/almayer/red/southeast, /area/adminlevel/ert_station) "RV" = ( /obj/structure/closet{ name = "boxing attire" }, -/turf/open/floor/almayer{ - icon_state = "silver" - }, +/turf/open/floor/almayer/silver, /area/adminlevel/ert_station) "RW" = ( /obj/structure/machinery/cm_vending/sorted/boozeomat/chess, @@ -2095,9 +1664,7 @@ id = "tdome_t1"; name = "\improper Team 1 Shutters" }, -/turf/open/floor/tdome{ - icon_state = "test_floor4" - }, +/turf/open/floor/tdome/test_floor4, /area/tdome) "Sk" = ( /obj/structure/machinery/door/poddoor/almayer{ @@ -2110,10 +1677,7 @@ /obj/structure/machinery/cm_vending/clothing/antag{ name = "\improper Response Team Automated Equipment Rack" }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/ert_station) "Sw" = ( /obj/structure/machinery/newscaster/security_unit, @@ -2129,24 +1693,17 @@ /obj/structure/sign/safety/med_cryo{ pixel_x = -17 }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/adminlevel/ert_station) "Tg" = ( /obj/structure/disposalpipe/segment{ dir = 4; icon_state = "pipe-c" }, -/turf/open/floor/almayer{ - icon_state = "floor" - }, +/turf/open/floor/almayer/floor, /area/adminlevel/ert_station) "Ti" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "w-y1" - }, +/turf/open/floor/almayer/w_y1/north, /area/adminlevel/ert_station) "Tm" = ( /obj/structure/surface/table/almayer, @@ -2165,16 +1722,10 @@ name = "Observer Shutters"; pixel_y = 9 }, -/turf/open/floor/tdome{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/tdome/northeast, /area/tdome/tdomeobserve) "TD" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "greencorner" - }, +/turf/open/floor/almayer/greencorner/west, /area/adminlevel/ert_station) "TH" = ( /obj/effect/step_trigger/teleporter/random{ @@ -2208,10 +1759,7 @@ }, /obj/structure/bed/sofa/south/grey/right, /obj/item/trash/buritto, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/north, /area/adminlevel/ert_station) "TX" = ( /obj/structure/surface/table/gamblingtable, @@ -2224,9 +1772,7 @@ pixel_x = -3; pixel_y = 9 }, -/turf/open/floor/almayer{ - icon_state = "floor" - }, +/turf/open/floor/almayer/floor, /area/adminlevel/ert_station/shuttle_dispatch) "Ua" = ( /obj/structure/machinery/cm_vending/gear/antag{ @@ -2234,10 +1780,7 @@ name = "\improper Response Team Automated Gear Rack"; use_snowflake_points = 1 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/ert_station) "Uf" = ( /obj/structure/sign/safety/medical, @@ -2247,22 +1790,14 @@ /turf/closed/wall/r_wall/unmeltable, /area/adminlevel/ert_station) "Uk" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/east, /area/adminlevel/ert_station/shuttle_dispatch) "Ur" = ( /obj/structure/bed/sofa/vert/grey/bot, -/turf/open/floor/almayer{ - icon_state = "floor" - }, +/turf/open/floor/almayer/floor, /area/adminlevel/ert_station/shuttle_dispatch) "Ut" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "greencorner" - }, +/turf/open/floor/almayer/greencorner/north, /area/adminlevel/ert_station) "UI" = ( /obj/structure/surface/table/gamblingtable, @@ -2270,9 +1805,7 @@ pixel_x = -1; pixel_y = 2 }, -/turf/open/floor/almayer{ - icon_state = "floor" - }, +/turf/open/floor/almayer/floor, /area/adminlevel/ert_station/shuttle_dispatch) "UQ" = ( /obj/effect/decal/warning_stripes{ @@ -2284,9 +1817,7 @@ /obj/structure/disposalpipe/segment{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "floor" - }, +/turf/open/floor/almayer/floor, /area/adminlevel/ert_station) "UW" = ( /obj/effect/step_trigger/teleporter/random{ @@ -2313,15 +1844,10 @@ /area/adminlevel/ert_station) "VD" = ( /obj/structure/machinery/vending/cigarette/free, -/turf/open/floor/tdome{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/tdome/northeast, /area/tdome/tdomeobserve) "VI" = ( -/turf/open/floor/almayer{ - icon_state = "silvercorner" - }, +/turf/open/floor/almayer/silvercorner, /area/adminlevel/ert_station/shuttle_dispatch) "VQ" = ( /obj/effect/step_trigger/teleporter/random{ @@ -2338,15 +1864,10 @@ /area/space) "VS" = ( /obj/structure/machinery/medical_pod/sleeper, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/adminlevel/ert_station) "Wn" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/north, /area/adminlevel/ert_station/shuttle_dispatch) "Wp" = ( /obj/effect/decal/warning_stripes{ @@ -2374,9 +1895,7 @@ /area/adminlevel/ert_station) "WH" = ( /obj/structure/machinery/chem_storage, -/turf/open/floor/almayer{ - icon_state = "mono" - }, +/turf/open/floor/almayer/mono, /area/centcom/control) "WK" = ( /obj/structure/bed/chair{ @@ -2389,10 +1908,7 @@ pixel_y = 32 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/north, /area/adminlevel/ert_station/shuttle_dispatch) "WQ" = ( /obj/structure/machinery/vending/cigarette/colony, @@ -2422,71 +1938,48 @@ /turf/open/floor/plating/plating_catwalk, /area/adminlevel/ert_station) "XR" = ( -/turf/open/floor/almayer{ - dir = 10; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/southwest, /area/adminlevel/ert_station) "Ya" = ( /turf/open/floor/plating/almayer, /area/adminlevel/ert_station) "Yn" = ( /obj/structure/machinery/cm_vending/sorted/tech/electronics_storage, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/northeast, /area/adminlevel/ert_station) "Ys" = ( -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/ert_station) "Yu" = ( /obj/structure/bed/sofa/vert/grey, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - icon_state = "floor" - }, +/turf/open/floor/almayer/floor, /area/adminlevel/ert_station/shuttle_dispatch) "Yy" = ( /obj/structure/machinery/chem_dispenser, /obj/item/reagent_container/glass/beaker/bluespace, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/adminlevel/ert_station) "YE" = ( /obj/structure/machinery/chem_master, /obj/structure/machinery/status_display{ pixel_y = 30 }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/adminlevel/ert_station) "YJ" = ( /obj/structure/machinery/medical_pod/autodoc/unskilled, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/adminlevel/ert_station) "YO" = ( /obj/structure/surface/table/woodentable, /obj/item/pizzabox/meat{ pixel_y = 8 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/north, /area/adminlevel/ert_station) "YP" = ( -/turf/open/floor/tdome{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/tdome/northeast, /area/tdome/tdomeobserve) "YU" = ( /turf/closed/wall, @@ -2498,9 +1991,7 @@ /turf/open/floor/plating/plating_catwalk, /area/adminlevel/ert_station) "Zd" = ( -/turf/open/floor/tdome{ - icon_state = "bluefull" - }, +/turf/open/floor/tdome/bluefull, /area/tdome/tdome1) "Zh" = ( /obj/structure/surface/table/reinforced/prison, @@ -2510,10 +2001,7 @@ name = "Surgery Cleaner" }, /obj/item/storage/box/monkeycubes, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/north, /area/adminlevel/ert_station) "Zp" = ( /obj/structure/surface/table/woodentable/fancy, @@ -2526,16 +2014,11 @@ pixel_x = -32; serial_number = 16 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/west, /area/adminlevel/ert_station) "Zv" = ( /obj/structure/machinery/autodoc_console, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/adminlevel/ert_station) "Zw" = ( /obj/structure/sign/safety/debark_lounge, @@ -2543,10 +2026,7 @@ /area/adminlevel/ert_station) "Zy" = ( /obj/structure/machinery/cm_vending/sorted/tech/comp_storage, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/north, /area/adminlevel/ert_station) "ZD" = ( /obj/structure/machinery/door/airlock/almayer/generic{ @@ -2563,9 +2043,7 @@ id = "ERT Lock 2"; unacidable = 1 }, -/turf/open/floor/almayer{ - icon_state = "tcomms" - }, +/turf/open/floor/almayer/tcomms, /area/adminlevel/ert_station) "ZI" = ( /obj/structure/barricade/handrail, @@ -2573,9 +2051,7 @@ /area/adminlevel/ert_station) "ZJ" = ( /obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/almayer{ - icon_state = "test_floor5" - }, +/turf/open/floor/almayer/test_floor5, /area/adminlevel/ert_station) "ZU" = ( /obj/structure/bed/chair/comfy, @@ -5568,8 +5044,8 @@ ao an QJ pP -vD -vD +NZ +NZ GB oS Qr @@ -5719,9 +5195,9 @@ YU co an QJ -vD -vD -vD +NZ +NZ +NZ GB oS Qr @@ -5871,7 +5347,7 @@ YU TU Qr QJ -vD +NZ Kk uN GB @@ -6023,8 +5499,8 @@ Rj YO an QJ -vD -vD +NZ +NZ Qz GB oS @@ -6175,9 +5651,9 @@ Rj GB an QJ -vD -vD -vD +NZ +NZ +NZ GB oS QJ diff --git a/maps/new_varadero.json b/maps/new_varadero.json index d695652d0ceb..ec90142c2295 100644 --- a/maps/new_varadero.json +++ b/maps/new_varadero.json @@ -11,7 +11,7 @@ "/datum/equipment_preset/survivor/chaplain/nv", "/datum/equipment_preset/survivor/engineer/nv", "/datum/equipment_preset/survivor/trucker/nv", - "/datum/equipment_preset/survivor/interstellar_commerce_commission_liason/nv", + "/datum/equipment_preset/survivor/interstellar_commerce_commission_liaison/nv", "/datum/equipment_preset/survivor/security/nv", "/datum/equipment_preset/survivor/beachbum", "/datum/equipment_preset/survivor/miner", diff --git a/maps/predship/huntership.dmm b/maps/predship/huntership.dmm index 7c5d633286f0..2931fd42b111 100644 --- a/maps/predship/huntership.dmm +++ b/maps/predship/huntership.dmm @@ -7,10 +7,7 @@ color = "#6b675e" }, /obj/item/stack/sheet/animalhide/xeno/kinghide, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "ac" = ( /obj/structure/shuttle/engine/propulsion/burst/right{ @@ -123,10 +120,7 @@ /obj/structure/machinery/medical_pod/autodoc{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "ao" = ( /obj/item/clothing/yautja_cape/ceremonial{ @@ -153,10 +147,7 @@ icon_state = "pred_mask_elder_n"; pixel_y = 29 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "ap" = ( /obj/structure/stairs/perspective{ @@ -189,10 +180,7 @@ icon_state = "pred_mask_elder_joshuu"; pixel_y = 30 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "ar" = ( /obj/structure/machinery/door/airlock/yautja/secure{ @@ -205,20 +193,14 @@ /obj/structure/pipes/standard/simple/hidden{ dir = 6 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "at" = ( /obj/structure/machinery/cryo_cell, /obj/structure/pipes/standard/cap/hidden{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "au" = ( /obj/structure/surface/table/reinforced/prison{ @@ -233,20 +215,14 @@ dir = 4; health = 80 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "av" = ( /obj/structure/surface/table/reinforced/prison{ color = "#6b675e" }, /obj/item/device/flashlight/lamp, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "aw" = ( /obj/structure/curtain/red, @@ -288,10 +264,7 @@ "aB" = ( /obj/structure/closet/crate/critter, /obj/effect/decal/cleanable/blood, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/yautja) "aC" = ( /obj/structure/surface/rack{ @@ -306,17 +279,11 @@ /obj/item/hunting_trap, /obj/item/hunting_trap, /obj/item/hunting_trap, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "aD" = ( /obj/structure/xenoautopsy/tank/hugger, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "aE" = ( /obj/structure/surface/table/reinforced/prison{ @@ -327,10 +294,7 @@ /obj/item/tool/surgery/hemostat/predatorhemostat, /obj/item/tool/surgery/retractor/predatorretractor, /obj/item/tool/surgery/scalpel/predatorscalpel, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "aF" = ( /obj/item/clothing/gloves/yautja/hunter{ @@ -343,10 +307,7 @@ desc = "The ship's on-board self destruct system, let's hope you never have to use it."; name = "Self Destruct System" }, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/yautja) "aG" = ( /obj/structure/machinery/power/smes/magical{ @@ -355,10 +316,7 @@ dir = 4; name = "plasma power generator" }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "aI" = ( /obj/structure/shuttle/engine/heater{ @@ -370,10 +328,7 @@ dir = 8; icon_state = "phoronrwindow" }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "aK" = ( /obj/structure/shuttle/engine/heater{ @@ -385,26 +340,17 @@ dir = 4; icon_state = "phoronrwindow" }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "aL" = ( /obj/structure/machinery/power/terminal{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "aN" = ( /obj/structure/machinery/computer/cryopod/yautja, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "aP" = ( /obj/structure/machinery/door/airlock/yautja{ @@ -421,10 +367,7 @@ /obj/item/tool/surgery/bonegel/predatorbonegel, /obj/item/tool/surgery/bonesetter/predatorbonesetter, /obj/item/tool/surgery/surgicaldrill/predatorsurgicaldrill, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "aT" = ( /obj/structure/machinery/door/airlock/yautja{ @@ -440,17 +383,11 @@ /obj/item/weapon/yautja/knife, /obj/item/reagent_container/hypospray/autoinjector/yautja, /obj/item/reagent_container/hypospray/autoinjector/yautja, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "aW" = ( /obj/structure/machinery/optable, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "aX" = ( /obj/structure/surface/table/reinforced/prison{ @@ -467,20 +404,14 @@ name = "Radar Console"; pixel_x = -7 }, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/yautja) "aY" = ( /obj/structure/machinery/portable_atmospherics/canister/oxygen, /obj/structure/pipes/portables_connector{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "bb" = ( /obj/structure/pipes/standard/simple/hidden{ @@ -489,19 +420,13 @@ /obj/structure/machinery/computer/crew/alt/yautja{ pixel_y = 24 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "bc" = ( /obj/structure/machinery/cryopod{ dir = 1 }, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/yautja) "bd" = ( /obj/effect/step_trigger/teleporter/yautja_ship, @@ -511,9 +436,7 @@ /obj/structure/machinery/door/airlock/yautja{ name = "\improper Blooded Teleporter" }, -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles, /area/yautja) "bg" = ( /obj/structure/surface/rack{ @@ -525,10 +448,12 @@ /obj/item/stack/sheet/mineral/sandstone/large_stack, /obj/item/stack/sheet/mineral/sandstone/large_stack, /obj/item/stack/sheet/mineral/sandstone/large_stack, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/obj/item/stack/sheet/mineral/sandstone/large_stack, +/obj/item/stack/sheet/mineral/sandstone/large_stack, +/obj/item/stack/sheet/mineral/sandstone/large_stack, +/obj/item/stack/sheet/mineral/sandstone/large_stack, +/obj/item/stack/sheet/mineral/sandstone/large_stack, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "bj" = ( /turf/closed/wall/huntership, @@ -554,19 +479,13 @@ /obj/item/weapon/harpoon/yautja, /obj/item/weapon/harpoon/yautja, /obj/item/weapon/harpoon/yautja, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "bo" = ( /obj/structure/machinery/body_scanconsole{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "bp" = ( /obj/structure/machinery/door/airlock/yautja/secure{ @@ -584,10 +503,7 @@ desc = "A powerful, shoulder-mounted energy weapon. This one is damaged beyond use."; name = "damaged plasma caster" }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "br" = ( /obj/item/stool, @@ -597,10 +513,7 @@ /obj/structure/machinery/medical_pod/bodyscanner{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "bu" = ( /obj/structure/machinery/door/airlock/yautja/secure{ @@ -611,10 +524,7 @@ /area/yautja) "bv" = ( /obj/structure/closet/coffin/predator, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "bw" = ( /obj/structure/pipes/standard/simple/hidden, @@ -637,10 +547,7 @@ anchored = 1; pixel_y = 20 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "bz" = ( /obj/structure/surface/table/reinforced/prison{ @@ -650,23 +557,13 @@ dir = 4; health = 80 }, -/obj/structure/window/reinforced{ - dir = 4; - health = 80 - }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "bA" = ( /obj/structure/machinery/chem_dispenser{ req_skill_level = 2 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "bC" = ( /obj/structure/surface/table/reinforced/prison{ @@ -677,10 +574,7 @@ desc = "Won by an Elder during their youthful hunting days. None are allowed to touch it."; name = "\improper Dutch's Machete" }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "bD" = ( /obj/structure/machinery/door/airlock/yautja/secure{ @@ -695,10 +589,7 @@ color = "#6b675e"; icon_state = "p_stair_full" }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "bG" = ( /obj/structure/machinery/door/airlock/yautja{ @@ -708,10 +599,7 @@ /area/yautja) "bH" = ( /obj/structure/closet, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "bI" = ( /obj/structure/stairs/perspective{ @@ -719,19 +607,13 @@ dir = 1; icon_state = "p_stair_full" }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "bJ" = ( /obj/structure/pipes/unary/freezer{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "bK" = ( /obj/structure/pipes/standard/simple/hidden{ @@ -740,10 +622,7 @@ /turf/open/shuttle/predship, /area/yautja) "bL" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "bM" = ( /obj/structure/surface/table/reinforced/prison{ @@ -762,10 +641,7 @@ /obj/structure/bed/alien{ color = "#aba9a9" }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "bQ" = ( /obj/structure/surface/table/reinforced/prison{ @@ -776,10 +652,7 @@ desc = "Claws from a creature that defies nature, you dare not touch it."; force = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "bS" = ( /obj/structure/pipes/standard/simple/hidden{ @@ -835,22 +708,19 @@ /obj/structure/surface/table/reinforced/prison{ color = "#6b675e" }, -/obj/item/XenoItem/ChitinPlate, -/obj/item/XenoItem/ChitinPlate, /obj/item/stack/sheet/xenochitin, /obj/item/stack/sheet/xenochitin, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, +/area/yautja) +"bZ" = ( +/obj/item/storage/fancy/candle_box, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "ca" = ( /obj/structure/barricade/handrail/strata{ dir = 1 }, -/turf/open/gm/dirtgrassborder/weedable{ - icon_state = "grass1" - }, +/turf/open/gm/dirtgrassborder/weedable/grass1, /area/yautja) "cb" = ( /obj/structure/machinery/door_control{ @@ -876,10 +746,7 @@ color = "#6b675e" }, /obj/effect/spawner/random/toy, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "ce" = ( /obj/structure/machinery/door/airlock/yautja/secure{ @@ -927,20 +794,14 @@ /area/yautja) "cj" = ( /obj/structure/machinery/medical_pod/sleeper, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "cl" = ( /obj/structure/surface/table/reinforced/prison{ color = "#6b675e" }, /obj/item/alienjar, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "cm" = ( /obj/structure/machinery/door/airlock/yautja/secure{ @@ -975,19 +836,13 @@ dir = 8; icon_state = "phoronrwindow" }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "cq" = ( /obj/structure/bed/chair/comfy/black{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "cr" = ( /obj/structure/surface/table/reinforced/prison{ @@ -1029,10 +884,19 @@ /obj/structure/closet/secure_closet/freezer/fridge{ locked = 0 }, -/turf/open/floor{ - dir = 10; - icon_state = "darkred2" +/obj/item/reagent_container/food/snacks/xemeatpie{ + name = "Elite Hunter's Xenopie" + }, +/obj/item/reagent_container/food/snacks/xemeatpie{ + name = "Elite Hunter's Xenopie" + }, +/obj/item/reagent_container/food/snacks/xemeatpie{ + name = "Elite Hunter's Xenopie" + }, +/obj/item/reagent_container/food/snacks/xemeatpie{ + name = "Elite Hunter's Xenopie" }, +/turf/open/floor/darkred2/southwest, /area/yautja) "cv" = ( /obj/structure/surface/table/reinforced/prison{ @@ -1067,10 +931,7 @@ /area/yautja) "cx" = ( /obj/structure/machinery/autodoc_console, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "cy" = ( /obj/structure/machinery/gravity_generator, @@ -1081,10 +942,7 @@ dir = 4; icon_state = "phoronrwindow" }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "cz" = ( /obj/structure/surface/table/reinforced/prison{ @@ -1095,19 +953,13 @@ desc = "A strange hide from an enigmatic creature."; name = "deacon hide" }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "cA" = ( /obj/structure/machinery/door/airlock/yautja{ name = "\improper Elder Teleporter" }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "cB" = ( /obj/structure/machinery/door/airlock/yautja/secure{ @@ -1118,17 +970,11 @@ /area/yautja) "cC" = ( /obj/structure/machinery/autolathe/yautja, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "cE" = ( /obj/structure/machinery/prop/almayer/CICmap/yautja, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "cF" = ( /obj/structure/machinery/door/airlock/yautja{ @@ -1143,10 +989,7 @@ dir = 9; icon_state = "p_stair_full" }, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/yautja) "cH" = ( /obj/structure/surface/rack{ @@ -1233,10 +1076,7 @@ pixel_x = 4; pixel_y = -2 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "cI" = ( /obj/structure/surface/table/reinforced/prison{ @@ -1245,10 +1085,7 @@ /obj/item/weapon/twohanded/sledgehammer{ anchored = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "cJ" = ( /obj/structure/surface/table/reinforced/prison{ @@ -1318,17 +1155,11 @@ /area/yautja) "cN" = ( /obj/structure/cryofeed, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "cO" = ( /obj/structure/cryofeed/right, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "cP" = ( /turf/open/shuttle/predship, @@ -1343,10 +1174,30 @@ /obj/item/stack/sheet/mineral/sandstone/runed/large_stack, /obj/item/stack/sheet/mineral/sandstone/runed/large_stack, /obj/item/stack/sheet/mineral/sandstone/runed/large_stack, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/obj/item/stack/sheet/mineral/sandstone/runed/large_stack, +/obj/item/stack/sheet/mineral/sandstone/runed/large_stack, +/obj/item/stack/sheet/mineral/sandstone/runed/large_stack, +/obj/item/stack/sheet/mineral/sandstone/runed/large_stack, +/obj/item/stack/sheet/mineral/sandstone/runed/large_stack, +/obj/item/stack/sheet/mineral/sandstone/runed/large_stack, +/obj/item/stack/sheet/mineral/sandstone/runed/large_stack, +/obj/item/stack/sheet/mineral/sandstone/runed/large_stack, +/obj/item/stack/sheet/mineral/sandstone/runed/large_stack, +/obj/item/stack/sheet/mineral/sandstone/runed/large_stack, +/obj/item/stack/sheet/mineral/sandstone/runed/large_stack, +/obj/item/stack/sheet/mineral/sandstone/runed/large_stack, +/obj/item/stack/sheet/mineral/sandstone/runed/large_stack, +/obj/item/stack/sheet/mineral/sandstone/runed/large_stack, +/obj/item/stack/sheet/mineral/sandstone/runed/large_stack, +/obj/item/stack/sheet/mineral/sandstone/runed/large_stack, +/obj/item/stack/sheet/mineral/sandstone/runed/large_stack, +/obj/item/stack/sheet/mineral/sandstone/runed/large_stack, +/obj/item/stack/sheet/mineral/sandstone/runed/large_stack, +/obj/item/stack/sheet/mineral/sandstone/runed/large_stack, +/obj/item/stack/sheet/mineral/sandstone/runed/large_stack, +/obj/item/stack/sheet/mineral/sandstone/runed/large_stack, +/obj/item/stack/sheet/mineral/sandstone/runed/large_stack, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "cR" = ( /obj/structure/surface/table/reinforced/prison{ @@ -1363,10 +1214,7 @@ name = "Radar Console"; pixel_x = 7 }, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/yautja) "cS" = ( /obj/structure/surface/table/reinforced/prison{ @@ -1377,10 +1225,7 @@ /obj/item/clothing/gloves/combat, /obj/item/clothing/head/helmet/gladiator, /obj/item/clothing/suit/armor/gladiator, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "cT" = ( /obj/structure/surface/rack{ @@ -1388,10 +1233,7 @@ layer = 2.79 }, /obj/item/tool/pickaxe, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "cU" = ( /obj/structure/surface/rack{ @@ -1399,20 +1241,14 @@ layer = 2.79 }, /obj/item/tool/extinguisher, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "cV" = ( /obj/structure/surface/table/reinforced/prison{ color = "#6b675e" }, /obj/item/tool/weldingtool/hugetank, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "cW" = ( /obj/structure/surface/table/reinforced/prison{ @@ -1423,10 +1259,7 @@ pixel_x = -6; pixel_y = 6 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "cX" = ( /obj/item/storage/backpack/yautja, @@ -1449,10 +1282,7 @@ /obj/item/device/healthanalyzer/alien, /obj/item/device/healthanalyzer/alien, /obj/item/device/healthanalyzer/alien, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "cY" = ( /obj/item/tool/kitchen/tray{ @@ -1460,18 +1290,11 @@ }, /obj/item/reagent_container/food/snacks/meat/corgi, /obj/effect/decal/cleanable/blood, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/yautja) "cZ" = ( /obj/structure/machinery/prop/almayer/CICmap/yautja, -/turf/open/floor/strata{ - color = "#5e5d5d"; - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles/southwest, /area/yautja) "da" = ( /obj/structure/surface/table/reinforced/prison{ @@ -1488,20 +1311,14 @@ layer = 2.79 }, /obj/item/tool/pickaxe/jackhammer, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "dc" = ( /obj/structure/machinery/door/airlock/yautja/secure{ dir = 1; name = "\improper Research Containment" }, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/yautja) "de" = ( /obj/structure/kitchenspike, @@ -1509,20 +1326,14 @@ /obj/item/reagent_container/food/snacks/meat/xenomeat, /obj/item/reagent_container/food/snacks/meat/xenomeat, /obj/item/reagent_container/food/snacks/meat/xenomeat, -/turf/open/floor{ - dir = 5; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/northeast, /area/yautja) "df" = ( /obj/structure/stairs/perspective{ color = "#6b675e"; icon_state = "p_stair_full" }, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/yautja) "di" = ( /obj/item/storage/fancy/egg_box, @@ -1547,17 +1358,17 @@ /obj/structure/closet/secure_closet/freezer/fridge{ locked = 0 }, -/turf/open/floor{ - dir = 1; - icon_state = "darkred2" +/obj/item/reagent_container/food/snacks/xemeatpie{ + name = "Elite Hunter's Xenopie" + }, +/obj/item/reagent_container/food/snacks/xemeatpie{ + name = "Elite Hunter's Xenopie" }, +/turf/open/floor/darkred2/north, /area/yautja) "dj" = ( /obj/effect/alien/egg/forsaken, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/yautja) "dk" = ( /obj/structure/stairs/perspective{ @@ -1565,10 +1376,7 @@ dir = 10; icon_state = "p_stair_full" }, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/yautja) "dl" = ( /obj/structure/stairs/perspective{ @@ -1576,10 +1384,7 @@ dir = 6; icon_state = "p_stair_full" }, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/yautja) "dm" = ( /obj/structure/machinery/door_control{ @@ -1616,10 +1421,7 @@ dir = 9; icon_state = "p_stair_full" }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "eS" = ( /obj/item/stack/sheet/animalhide/xeno{ @@ -1635,10 +1437,7 @@ dir = 4; icon_state = "p_stair_full" }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "eY" = ( /obj/structure/bed/chair/hunter{ @@ -1647,19 +1446,13 @@ /turf/open/shuttle/predship, /area/yautja) "fb" = ( -/turf/open/floor{ - dir = 4; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/east, /area/yautja) "fg" = ( /obj/item/map/current_map, /obj/item/device/flashlight/lantern, /obj/structure/closet, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "fj" = ( /obj/structure/machinery/cryopod, @@ -1678,30 +1471,13 @@ health = 80 }, /obj/item/storage/box/bracer, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "fq" = ( /obj/structure/window/framed/colony/reinforced/hull{ color = "#aba9a9" }, -/turf/open/floor/holofloor{ - icon_state = "cult" - }, -/area/yautja) -"fB" = ( -/obj/structure/surface/table/reinforced/prison{ - color = "#6b675e" - }, -/obj/item/XenoItem/AntiAcid, -/obj/item/XenoItem/AntiAcid, -/obj/item/XenoItem/AntiAcid, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/holofloor/cult, /area/yautja) "fF" = ( /obj/structure/surface/rack{ @@ -1734,11 +1510,30 @@ }, /turf/open/shuttle/predship, /area/yautja) +"fI" = ( +/obj/structure/surface/rack{ + color = "#6b675e"; + layer = 2.79 + }, +/obj/item/device/flashlight/lamp, +/obj/item/device/flashlight/lamp, +/obj/item/device/flashlight/lamp, +/obj/item/device/flashlight/lamp, +/obj/item/device/flashlight/lamp, +/obj/item/device/flashlight/lamp, +/obj/item/device/flashlight/lamp, +/obj/item/device/flashlight/lamp, +/obj/item/device/flashlight/lamp, +/obj/item/device/flashlight/lamp, +/obj/item/device/flashlight/lamp, +/obj/item/device/flashlight/lamp, +/obj/item/device/flashlight/lamp, +/obj/item/device/flashlight/lamp, +/turf/open/floor/corsat/squareswood/north, +/area/yautja) "fS" = ( /obj/structure/barricade/handrail/strata, -/turf/open/gm/dirtgrassborder/weedable{ - icon_state = "grass1" - }, +/turf/open/gm/dirtgrassborder/weedable/grass1, /area/yautja) "gb" = ( /obj/structure/closet/crate{ @@ -1774,17 +1569,11 @@ /obj/item/stack/medical/advanced/ointment/predator{ pixel_x = -6 }, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/yautja) "gp" = ( /obj/structure/bed/chair/comfy/black, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "gr" = ( /obj/structure/closet/crate/secure{ @@ -1796,10 +1585,7 @@ /obj/item/explosive/grenade/spawnergrenade/hellhound, /obj/item/explosive/grenade/spawnergrenade/hellhound, /obj/item/explosive/grenade/spawnergrenade/hellhound, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/yautja) "gG" = ( /obj/structure/machinery/door_control{ @@ -1807,31 +1593,44 @@ name = "Armory Shutters"; needs_power = 0; pixel_x = 24; - req_one_access_txt = "392"; - needs_power = 0 + req_one_access_txt = "392" }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" +/turf/open/floor/corsat/squareswood/north, +/area/yautja) +"gN" = ( +/obj/structure/surface/rack{ + color = "#6b675e"; + layer = 2.79 + }, +/obj/item/stack/tile/carpet{ + amount = 50 + }, +/obj/item/stack/tile/carpet{ + amount = 50 + }, +/obj/item/stack/tile/carpet{ + amount = 50 + }, +/obj/item/stack/tile/carpet{ + amount = 50 + }, +/obj/item/stack/tile/carpet{ + amount = 50 }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "ha" = ( /obj/structure/barricade/handrail/strata, /obj/structure/barricade/handrail/strata{ dir = 8 }, -/turf/open/gm/dirtgrassborder/weedable{ - icon_state = "grass1" - }, +/turf/open/gm/dirtgrassborder/weedable/grass1, /area/yautja) "hI" = ( /obj/structure/shuttle/window{ color = "#6b675e" }, -/turf/open/floor{ - color = "#525151"; - icon_state = "dark2" - }, +/turf/open/floor/grey_dark2, /area/yautja) "hJ" = ( /obj/structure/barricade/handrail/strata{ @@ -1840,9 +1639,7 @@ /obj/structure/barricade/handrail/strata{ dir = 4 }, -/turf/open/gm/dirtgrassborder/weedable{ - icon_state = "grass1" - }, +/turf/open/gm/dirtgrassborder/weedable/grass1, /area/yautja) "hY" = ( /obj/structure/kitchenspike, @@ -1850,19 +1647,18 @@ /obj/item/reagent_container/food/snacks/meat, /obj/item/reagent_container/food/snacks/meat, /obj/item/reagent_container/food/snacks/meat, -/turf/open/floor{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/west, /area/yautja) "is" = ( /obj/structure/kitchenspike, /obj/item/reagent_container/food/snacks/sliceable/xenomeatbread, /obj/item/reagent_container/food/snacks/sliceable/xenomeatbread, -/turf/open/floor{ - dir = 8; - icon_state = "darkred2" - }, +/obj/item/reagent_container/food/snacks/sliceable/xenomeatbread, +/obj/item/reagent_container/food/snacks/sliceable/xenomeatbread, +/obj/item/reagent_container/food/snacks/sliceable/xenomeatbread, +/obj/item/reagent_container/food/snacks/sliceable/xenomeatbread, +/obj/item/reagent_container/food/snacks/sliceable/xenomeatbread, +/turf/open/floor/darkred2/west, /area/yautja) "iV" = ( /obj/structure/surface/table/reinforced/prison{ @@ -1873,10 +1669,7 @@ pixel_x = 10; pixel_y = 3 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "jP" = ( /obj/structure/surface/rack{ @@ -1910,10 +1703,7 @@ /area/yautja) "jR" = ( /obj/structure/machinery/sleep_console, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "jU" = ( /obj/structure/stairs/perspective{ @@ -1921,10 +1711,7 @@ dir = 6; icon_state = "p_stair_full" }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "kA" = ( /obj/structure/surface/table/reinforced/prison{ @@ -1933,22 +1720,65 @@ /obj/item/weapon/twohanded/dualsaber{ force_wielded = 35 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "lr" = ( /obj/structure/lamarr, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "lw" = ( -/turf/open/gm/dirtgrassborder{ - icon_state = "desert1" +/turf/open/gm/dirtgrassborder/desert1, +/area/yautja) +"mn" = ( +/obj/structure/surface/rack{ + color = "#6b675e"; + layer = 2.79 + }, +/obj/item/device/flashlight/lantern{ + pixel_x = 1; + pixel_y = 9 + }, +/obj/item/device/flashlight/lantern{ + pixel_x = 1; + pixel_y = 9 + }, +/obj/item/device/flashlight/lantern{ + pixel_x = 1; + pixel_y = 9 + }, +/obj/item/device/flashlight/lantern{ + pixel_x = 1; + pixel_y = 9 + }, +/obj/item/device/flashlight/lantern{ + pixel_x = 1; + pixel_y = 9 + }, +/obj/item/device/flashlight/lantern{ + pixel_x = 1; + pixel_y = 9 + }, +/obj/item/device/flashlight/lantern{ + pixel_x = 1; + pixel_y = 9 }, +/obj/item/device/flashlight/lantern{ + pixel_x = 1; + pixel_y = 9 + }, +/obj/item/device/flashlight/lantern{ + pixel_x = 1; + pixel_y = 9 + }, +/obj/item/device/flashlight/lantern{ + pixel_x = 1; + pixel_y = 9 + }, +/obj/item/device/flashlight/lantern{ + pixel_x = 1; + pixel_y = 9 + }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "mv" = ( /obj/structure/surface/table/reinforced/prison{ @@ -1956,25 +1786,17 @@ }, /obj/item/storage/large_holster/katana, /obj/item/weapon/sword/katana, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "nd" = ( -/turf/open/gm/dirtgrassborder{ - icon_state = "desert0" - }, +/turf/open/gm/dirtgrassborder/desert0, /area/yautja) "nh" = ( /obj/structure/surface/rack{ color = "#6b675e"; - layer = 2.79 - }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" + layer = 2.79 }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "nv" = ( /obj/structure/surface/rack{ @@ -1989,10 +1811,7 @@ /obj/item/weapon/twohanded/yautja/spear, /obj/item/weapon/twohanded/yautja/spear, /obj/item/weapon/twohanded/yautja/spear, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/yautja) "nT" = ( /obj/structure/surface/table/reinforced/prison{ @@ -2007,10 +1826,7 @@ health = 80 }, /obj/structure/machinery/door/window/southright, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "nW" = ( /obj/structure/pipes/standard/simple/hidden{ @@ -2025,10 +1841,7 @@ /obj/effect/decal/remains/human{ pixel_y = -25 }, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/yautja) "ov" = ( /obj/structure/surface/rack{ @@ -2042,10 +1855,7 @@ /obj/item/storage/belt/utility/full/pred, /obj/item/stack/yautja_rope, /obj/item/stack/yautja_rope, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "oO" = ( /obj/item/weapon/yautja/chain{ @@ -2054,10 +1864,7 @@ pixel_x = -3; pixel_y = 29 }, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/yautja) "qj" = ( /obj/structure/surface/rack{ @@ -2065,10 +1872,7 @@ layer = 2.79 }, /obj/item/tool/crowbar, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "qS" = ( /obj/structure/surface/table/reinforced/prison{ @@ -2081,29 +1885,20 @@ pixel_x = 10; pixel_y = 3 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "rt" = ( /obj/structure/surface/table/reinforced/prison{ color = "#6b675e" }, /obj/item/storage/medicomp/full, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "rH" = ( /obj/structure/shuttle/window{ color = "#6b675e" }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "rY" = ( /obj/structure/surface/rack{ @@ -2146,10 +1941,35 @@ /obj/structure/window/framed/colony/reinforced/hull{ color = "#aba9a9" }, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" +/turf/open/floor/strata/grey_multi_tiles, +/area/yautja) +"sS" = ( +/obj/structure/surface/rack{ + color = "#6b675e"; + layer = 2.79 + }, +/obj/item/stack/sheet/wood{ + amount = 50 + }, +/obj/item/stack/sheet/wood{ + amount = 50 + }, +/obj/item/stack/sheet/wood{ + amount = 50 + }, +/obj/item/stack/sheet/wood{ + amount = 50 + }, +/obj/item/stack/sheet/wood{ + amount = 50 + }, +/obj/item/stack/sheet/wood{ + amount = 50 + }, +/obj/item/stack/sheet/wood{ + amount = 50 }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "sV" = ( /obj/structure/machinery/door/airlock/yautja{ @@ -2160,29 +1980,20 @@ /area/yautja) "te" = ( /obj/structure/xenoautopsy/tank/alien, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "ti" = ( /obj/structure/shuttle/window{ color = "#6b675e" }, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/yautja) "tn" = ( /obj/structure/surface/table/reinforced/prison{ color = "#6b675e" }, /obj/item/device/flashlight/lamp, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/yautja) "tD" = ( /obj/structure/surface/rack{ @@ -2204,28 +2015,26 @@ /obj/item/stack/sheet/plasteel{ amount = 30 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "tR" = ( -/obj/structure/surface/table/reinforced/prison{ - color = "#6b675e" - }, -/obj/structure/window/reinforced{ - dir = 8; - health = 80 - }, -/obj/structure/window/reinforced{ - dir = 4; - health = 80 - }, -/obj/item/storage/box/bracer, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" +/obj/structure/surface/rack{ + color = "#6b675e"; + layer = 2.79 }, +/obj/item/frame/table/wood/poor, +/obj/item/frame/table/wood/poor, +/obj/item/frame/table/wood/poor, +/obj/item/frame/table/wood/poor, +/obj/item/frame/table/wood/poor, +/obj/item/frame/table/wood/poor, +/obj/item/frame/table/wood/poor, +/obj/item/frame/table/wood/poor, +/obj/item/frame/table/wood/poor, +/obj/item/frame/table/wood/poor, +/obj/item/frame/table/wood/poor, +/obj/item/frame/table/wood/poor, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "uf" = ( /obj/structure/barricade/handrail/strata{ @@ -2233,24 +2042,60 @@ }, /turf/open/gm/dirtgrassborder/west, /area/yautja) +"uj" = ( +/obj/structure/surface/rack{ + color = "#6b675e"; + layer = 2.79 + }, +/obj/item/frame/table/gambling, +/obj/item/frame/table/gambling, +/obj/item/frame/table/gambling, +/obj/item/frame/table/gambling, +/obj/item/frame/table/gambling, +/obj/item/frame/table/gambling, +/obj/item/frame/table/gambling, +/obj/item/frame/table/gambling, +/obj/item/frame/table/gambling, +/obj/item/frame/table/gambling, +/obj/item/frame/table/gambling, +/obj/item/frame/table/gambling, +/obj/item/frame/table/gambling, +/obj/item/frame/table/gambling, +/obj/item/frame/table/gambling, +/obj/item/frame/table/gambling, +/obj/item/frame/table/gambling, +/obj/item/frame/table/gambling, +/obj/item/frame/table/gambling, +/obj/item/frame/table/gambling, +/obj/item/frame/table/gambling, +/turf/open/floor/corsat/squareswood/north, +/area/yautja) +"um" = ( +/obj/structure/surface/rack{ + color = "#6b675e"; + layer = 2.79 + }, +/obj/item/storage/fancy/candle_box, +/obj/item/storage/fancy/candle_box, +/obj/item/storage/fancy/candle_box, +/obj/item/storage/fancy/candle_box, +/obj/item/storage/fancy/candle_box, +/obj/item/storage/fancy/candle_box, +/obj/item/storage/fancy/candle_box, +/turf/open/floor/corsat/squareswood/north, +/area/yautja) "uO" = ( /obj/structure/bed/chair/hunter{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "uZ" = ( /obj/structure/surface/table/reinforced/prison{ color = "#6b675e" }, /obj/item/weapon/sword/ceremonial, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "vO" = ( /obj/structure/machinery/shower{ @@ -2258,10 +2103,7 @@ }, /obj/structure/machinery/door/window/tinted, /obj/structure/window/reinforced/tinted, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/yautja) "ww" = ( /obj/item/stack/sheet/animalhide/xeno{ @@ -2291,10 +2133,7 @@ /obj/item/reagent_container/food/condiment/sugar, /obj/item/reagent_container/food/condiment/sugar, /obj/item/reagent_container/food/condiment/sugar, -/turf/open/floor{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/west, /area/yautja) "wQ" = ( /obj/structure/surface/table/reinforced/prison{ @@ -2308,10 +2147,7 @@ dir = 8; health = 80 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "wW" = ( /obj/structure/barricade/handrail/strata{ @@ -2327,10 +2163,7 @@ /obj/item/xeno_egg/forsaken, /obj/item/xeno_egg/forsaken, /obj/item/xeno_egg/forsaken, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/yautja) "xO" = ( /obj/structure/surface/table/reinforced/prison{ @@ -2342,10 +2175,7 @@ desc = "An old hide from a fearsome creature."; name = "hunter hide" }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "xQ" = ( /obj/structure/stairs/perspective{ @@ -2353,17 +2183,26 @@ dir = 10; icon_state = "p_stair_full" }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" +/turf/open/floor/corsat/squareswood/north, +/area/yautja) +"yr" = ( +/obj/structure/window/reinforced{ + dir = 8; + health = 80 + }, +/obj/structure/window/reinforced{ + dir = 4; + health = 80 + }, +/obj/structure/surface/table/reinforced/prison{ + color = "#6b675e" }, +/obj/item/storage/box/bracer, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "yH" = ( /obj/structure/closet/secure_closet/freezer/fridge/groceries, -/turf/open/floor{ - dir = 4; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/east, /area/yautja) "yO" = ( /obj/structure/surface/table/reinforced/prison{ @@ -2377,10 +2216,7 @@ pixel_x = 1; pixel_y = 4 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "zg" = ( /obj/structure/barricade/handrail/strata{ @@ -2389,34 +2225,36 @@ /turf/open/gm/dirtgrassborder/east, /area/yautja) "zA" = ( -/turf/open/floor{ - icon_state = "dark2" - }, +/turf/open/floor/dark2, /area/yautja) "zZ" = ( -/obj/structure/surface/table/reinforced/prison{ - color = "#6b675e" - }, -/obj/structure/window/reinforced{ - dir = 8; - health = 80 - }, -/obj/structure/window/reinforced{ - dir = 1; - health = 80; - pixel_y = 16 - }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" +/obj/structure/surface/rack{ + color = "#6b675e"; + layer = 2.79 }, +/obj/item/frame/table/wood/fancy, +/obj/item/frame/table/wood/fancy, +/obj/item/frame/table/wood/fancy, +/obj/item/frame/table/wood/fancy, +/obj/item/frame/table/wood/fancy, +/obj/item/frame/table/wood/fancy, +/obj/item/frame/table/wood/fancy, +/obj/item/frame/table/wood/fancy, +/obj/item/frame/table/wood/fancy, +/obj/item/frame/table/wood/fancy, +/obj/item/frame/table/wood/fancy, +/obj/item/frame/table/wood/fancy, +/obj/item/frame/table/wood/fancy, +/obj/item/frame/table/wood/fancy, +/obj/item/frame/table/wood/fancy, +/obj/item/frame/table/wood/fancy, +/obj/item/frame/table/wood/fancy, +/obj/item/frame/table/wood/fancy, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "AA" = ( /obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "Be" = ( /obj/structure/machinery/cryopod/right, @@ -2437,42 +2275,28 @@ /obj/item/weapon/yautja/chain, /obj/item/weapon/yautja/sword, /obj/item/weapon/yautja/scythe, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/yautja) "Br" = ( -/turf/open/gm/dirtgrassborder{ - icon_state = "desert2" - }, +/turf/open/gm/dirtgrassborder/desert2, /area/yautja) "BK" = ( /obj/structure/surface/table/reinforced/prison{ color = "#6b675e" }, /obj/item/storage/medicomp/full, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/yautja) "BS" = ( /obj/structure/machinery/prop/yautja/bubbler, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "Cn" = ( /obj/structure/surface/table/reinforced/prison{ color = "#6b675e" }, /obj/item/reagent_container/glass/beaker/silver, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "Cz" = ( /obj/item/stack/sheet/animalhide/xeno{ @@ -2480,10 +2304,7 @@ name = "Prime Empress Hide"; pixel_y = 30 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "CK" = ( /obj/structure/surface/table/reinforced/prison{ @@ -2498,10 +2319,7 @@ name = "Primordial Empress Steak"; pixel_y = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "Dk" = ( /obj/structure/surface/table/reinforced/prison{ @@ -2510,10 +2328,7 @@ /obj/item/device/flashlight/slime{ anchored = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "Dr" = ( /obj/structure/machinery/door/airlock/yautja/secure{ @@ -2538,10 +2353,7 @@ /obj/structure/closet/secure_closet/freezer/fridge{ locked = 0 }, -/turf/open/floor{ - dir = 9; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/northwest, /area/yautja) "DJ" = ( /obj/structure/machinery/computer/crew/alt{ @@ -2551,33 +2363,20 @@ /obj/structure/surface/table/reinforced/prison{ color = "#6b675e" }, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/yautja) "Es" = ( /obj/structure/bed/chair/hunter, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "Et" = ( /obj/structure/surface/table/reinforced/prison{ color = "#6b675e" }, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/yautja) "Fh" = ( -/turf/open/floor/strata{ - color = "#5e5d5d"; - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles/southwest, /area/yautja) "Ft" = ( /obj/structure/surface/table/reinforced/prison{ @@ -2597,19 +2396,13 @@ icon_state = "security_cam"; name = "Radar Console" }, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/yautja) "Fy" = ( /obj/structure/window/framed/colony/reinforced/hull{ color = "#aba9a9" }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "FG" = ( /obj/effect/landmark/clan_spawn, @@ -2627,45 +2420,40 @@ anchored = 1; desc = "A strange device taken from a far-off land. It looks incredibly fragile, best not to touch it." }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "Gr" = ( /obj/structure/surface/table/reinforced/prison{ color = "#6b675e" }, -/obj/item/legcuffs{ +/obj/item/restraint/legcuffs{ pixel_y = 5 }, -/obj/item/legcuffs{ +/obj/item/restraint/legcuffs{ pixel_y = 5 }, -/obj/item/legcuffs{ +/obj/item/restraint/legcuffs{ pixel_y = 5 }, -/obj/item/legcuffs{ +/obj/item/restraint/legcuffs{ pixel_y = 5 }, -/obj/item/legcuffs{ +/obj/item/restraint/legcuffs{ pixel_y = 5 }, -/obj/item/legcuffs{ +/obj/item/restraint/legcuffs{ pixel_y = 5 }, -/obj/item/handcuffs, -/obj/item/handcuffs, -/obj/item/handcuffs, -/obj/item/handcuffs, -/obj/item/handcuffs, -/obj/item/handcuffs, +/obj/item/restraint/handcuffs, +/obj/item/restraint/handcuffs, +/obj/item/restraint/handcuffs, +/obj/item/restraint/handcuffs, +/obj/item/restraint/handcuffs, +/obj/item/restraint/handcuffs, /turf/open/shuttle/predship, /area/yautja) "GM" = ( -/turf/open/gm/dirtgrassborder{ - icon_state = "desert_dug" - }, +/turf/open/gm/dirtgrassborder/desert_dug, /area/yautja) "GP" = ( /obj/structure/prop/brazier/torch{ @@ -2678,10 +2466,7 @@ color = "#6b675e" }, /obj/item/weapon/chainofcommand, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "Ha" = ( /obj/structure/surface/rack{ @@ -2704,10 +2489,7 @@ /obj/structure/bed/chair/hunter{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "Hv" = ( /obj/structure/bed{ @@ -2716,10 +2498,7 @@ /obj/item/bedsheet/captain{ color = "#aba9a9" }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "HD" = ( /obj/structure/surface/rack{ @@ -2735,10 +2514,7 @@ /obj/item/weapon/gun/energy/yautja/plasmarifle{ pixel_y = 8 }, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/yautja) "HN" = ( /obj/structure/surface/table/reinforced/prison{ @@ -2749,10 +2525,7 @@ health = 80; pixel_y = 16 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "If" = ( /obj/structure/surface/rack{ @@ -2766,10 +2539,7 @@ /obj/item/weapon/gun/energy/yautja/plasmapistol{ pixel_y = 8 }, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/yautja) "Im" = ( /obj/structure/surface/rack{ @@ -2806,18 +2576,13 @@ /obj/structure/barricade/handrail/strata{ dir = 4 }, -/turf/open/gm/dirtgrassborder/weedable{ - icon_state = "grass1" - }, +/turf/open/gm/dirtgrassborder/weedable/grass1, /area/yautja) "Iw" = ( /obj/structure/machinery/door/airlock/yautja/secure{ name = "\improper Hellhound Quarters" }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "IC" = ( /obj/structure/machinery/door/airlock/yautja/secure/elder{ @@ -2845,16 +2610,25 @@ /obj/item/stack/sheet/metal{ amount = 50 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/item/stack/sheet/metal{ + amount = 50 }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "JH" = ( -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/yautja) "JL" = ( /obj/item/weapon/yautja/knife{ @@ -2862,10 +2636,7 @@ name = "sacred ceremonial dagger"; pixel_x = 25 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "KD" = ( /obj/structure/surface/table/reinforced/prison{ @@ -2887,10 +2658,7 @@ pixel_x = 4; pixel_y = 3 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "KI" = ( /obj/item/tool/kitchen/tray{ @@ -2898,10 +2666,7 @@ }, /obj/item/reagent_container/food/snacks/bearmeat, /obj/effect/decal/cleanable/blood, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/yautja) "KK" = ( /obj/effect/decal/remains/human{ @@ -2914,24 +2679,15 @@ color = "#6b675e" }, /obj/item/trash/plate, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "Lo" = ( /obj/structure/machinery/vending/dinnerware, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "LX" = ( /obj/structure/prop/pred_flight, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "Mb" = ( /obj/structure/surface/table/reinforced/prison{ @@ -2943,10 +2699,7 @@ desc = "The skin of a nightmare long thought lost to time."; name = "corroder hide" }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "ME" = ( /obj/structure/stairs/perspective{ @@ -2954,38 +2707,25 @@ dir = 8; icon_state = "p_stair_full" }, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/yautja) "MI" = ( /obj/structure/machinery/door/airlock/yautja{ name = "\improper Blooded Teleporter" }, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/yautja) "NA" = ( -/turf/open/floor{ - icon_state = "darkred2" - }, +/turf/open/floor/darkred2, /area/yautja) "Ok" = ( -/turf/open/gm/dirtgrassborder{ - icon_state = "desert" - }, +/turf/open/gm/dirtgrassborder/desert, /area/yautja) "OZ" = ( /obj/structure/bed/chair/comfy/black{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "Pm" = ( /obj/item/stack/sheet/glass{ @@ -3001,26 +2741,17 @@ color = "#6b675e"; layer = 2.79 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "Pp" = ( /obj/effect/alien/weeds/node/forsaken, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/yautja) "Pr" = ( /obj/structure/machinery/door/airlock/yautja/secure{ name = "\improper Research Containment" }, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/yautja) "PN" = ( /obj/item/stack/sheet/animalhide/xeno{ @@ -3032,10 +2763,7 @@ /area/yautja) "Qi" = ( /obj/structure/machinery/gibber, -/turf/open/floor{ - dir = 6; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/southeast, /area/yautja) "Qj" = ( /obj/structure/kitchenspike, @@ -3043,19 +2771,13 @@ /obj/item/reagent_container/food/snacks/meat/corgi, /obj/item/reagent_container/food/snacks/meat/xenomeat, /obj/item/reagent_container/food/snacks/meat/xenomeat, -/turf/open/floor{ - dir = 1; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/north, /area/yautja) "Qs" = ( /obj/structure/machinery/chem_master{ req_skill_level = 2 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "QF" = ( /obj/item/weapon/yautja/knife{ @@ -3063,10 +2785,7 @@ name = "sacred ceremonial dagger"; pixel_x = -25 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "QK" = ( /obj/structure/barricade/handrail/strata{ @@ -3075,32 +2794,21 @@ /obj/structure/barricade/handrail/strata{ dir = 8 }, -/turf/open/gm/dirtgrassborder/weedable{ - icon_state = "grass1" - }, +/turf/open/gm/dirtgrassborder/weedable/grass1, /area/yautja) "Rq" = ( /obj/structure/machinery/prop/almayer/CICmap/yautja, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/yautja) "RE" = ( /obj/structure/closet/secure_closet/freezer/fridge/groceries, -/turf/open/floor{ - dir = 6; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/southeast, /area/yautja) "RS" = ( /turf/open/gm/dirtgrassborder/north, /area/yautja) "Sx" = ( -/turf/open/floor{ - dir = 8; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/west, /area/yautja) "SB" = ( /obj/structure/bed/chair/hunter{ @@ -3109,21 +2817,33 @@ /turf/open/shuttle/predship, /area/yautja) "Ut" = ( -/obj/structure/surface/table/reinforced/prison{ - color = "#6b675e" - }, -/obj/structure/window/reinforced{ - dir = 8; - health = 80 - }, -/obj/structure/window/reinforced{ - dir = 4; - health = 80 - }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" +/obj/structure/surface/rack{ + color = "#6b675e"; + layer = 2.79 }, +/obj/item/frame/table/wood, +/obj/item/frame/table/wood, +/obj/item/frame/table/wood, +/obj/item/frame/table/wood, +/obj/item/frame/table/wood, +/obj/item/frame/table/wood, +/obj/item/frame/table/wood, +/obj/item/frame/table/wood, +/obj/item/frame/table/wood, +/obj/item/frame/table/wood, +/obj/item/frame/table/wood, +/obj/item/frame/table/wood, +/obj/item/frame/table/wood, +/obj/item/frame/table/wood, +/obj/item/frame/table/wood, +/obj/item/frame/table/wood, +/obj/item/frame/table/wood, +/obj/item/frame/table/wood, +/obj/item/frame/table/wood, +/obj/item/frame/table/wood, +/obj/item/frame/table/wood, +/obj/item/frame/table/wood, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "Uv" = ( /obj/effect/decal/remains/xeno{ @@ -3137,21 +2857,18 @@ dir = 5; icon_state = "p_stair_full" }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "UT" = ( /obj/structure/surface/table/reinforced/prison{ color = "#6b675e" }, -/obj/item/restraints, -/obj/item/restraints, -/obj/item/restraints, -/obj/item/restraints, -/obj/item/restraints, -/obj/item/restraints, +/obj/item/xeno_restraints, +/obj/item/xeno_restraints, +/obj/item/xeno_restraints, +/obj/item/xeno_restraints, +/obj/item/xeno_restraints, +/obj/item/xeno_restraints, /turf/open/shuttle/predship, /area/yautja) "VT" = ( @@ -3165,20 +2882,13 @@ icon_state = "security_cam"; name = "Radar Console" }, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/yautja) "VY" = ( /obj/structure/window/framed/colony/reinforced/hull{ color = "#aba9a9" }, -/turf/open/floor/strata{ - color = "#5e5d5d"; - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles/southwest, /area/yautja) "We" = ( /obj/structure/surface/table/reinforced/prison{ @@ -3205,10 +2915,7 @@ }, /obj/item/reagent_container/food/snacks/stew, /obj/item/tool/kitchen/utensil/spoon, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "Xg" = ( /obj/structure/surface/table/reinforced/prison{ @@ -3219,10 +2926,7 @@ pixel_x = 10; pixel_y = 3 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "Xp" = ( /obj/structure/surface/rack{ @@ -3268,17 +2972,11 @@ /area/yautja) "XP" = ( /obj/structure/machinery/cryopod, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/yautja) "Ys" = ( /obj/structure/reagent_dispensers/watertank, -/turf/open/floor{ - dir = 10; - icon_state = "darkred2" - }, +/turf/open/floor/darkred2/southwest, /area/yautja) "YL" = ( /obj/structure/machinery/door/airlock/yautja{ @@ -3303,20 +3001,14 @@ /obj/structure/machinery/door/poddoor/shutters/almayer/yautja{ dir = 4 }, -/turf/open/floor/strata{ - color = "#5e5d5d"; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/grey_multi_tiles, /area/yautja) "Zu" = ( /obj/structure/surface/table/reinforced/prison{ color = "#6b675e" }, /obj/item/alien_embryo, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "ZD" = ( /obj/structure/stairs/perspective{ @@ -3324,24 +3016,16 @@ dir = 8; icon_state = "p_stair_full" }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "ZI" = ( -/turf/open/gm/dirtgrassborder{ - icon_state = "desert3" - }, +/turf/open/gm/dirtgrassborder/desert3, /area/yautja) "ZM" = ( /obj/structure/surface/table/reinforced/prison{ color = "#6b675e" }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "ZR" = ( /obj/structure/surface/rack{ @@ -3351,10 +3035,7 @@ /obj/item/stack/yautja_rope, /obj/item/stack/yautja_rope, /obj/item/stack/yautja_rope, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) (1,1,1) = {" @@ -4539,7 +4220,7 @@ bj cP cP bj -fB +ZM bL bL bL @@ -5403,7 +5084,7 @@ JH JH JH bL -bL +yr bj bj bj @@ -5475,7 +5156,7 @@ bL bL JH JH -bL +yr bj bM da @@ -5545,9 +5226,9 @@ cP bL bL bL -bL +bZ JH -bL +yr bj cv cP @@ -5619,7 +5300,7 @@ bL mv xO JH -bL +yr bj cP cP @@ -5691,7 +5372,7 @@ cP cP Dk JH -bL +yr bj cP cP @@ -6479,7 +6160,7 @@ cH ti bd ti -Ut +uj bL cP tR @@ -6554,7 +6235,7 @@ bj Ut cP cP -tR +fI bj bj bj @@ -6621,12 +6302,12 @@ cP cP Pm ov -nh -ZM +sS +gN zZ cP cP -tR +mn bj bj bj @@ -6698,7 +6379,7 @@ cP cP cP cP -tR +um bj bj aa diff --git a/maps/predship/regular.dmm b/maps/predship/regular.dmm index 895e8ae84c91..5524370c0847 100644 --- a/maps/predship/regular.dmm +++ b/maps/predship/regular.dmm @@ -6,122 +6,83 @@ /obj/structure/machinery/door/airlock/secure{ name = "Storage Chamber" }, -/turf/open/floor{ - icon_state = "floor4" - }, +/turf/open/floor/floor4, /area/yautja) "af" = ( /obj/structure/surface/table/reinforced{ layer = 2.69 }, -/turf/open/floor{ - icon_state = "floor4" - }, +/turf/open/floor/floor4, /area/yautja) "ah" = ( /obj/structure/surface/rack, /obj/item/weapon/twohanded/spear, -/turf/open/floor{ - icon_state = "floor4" - }, +/turf/open/floor/floor4, /area/yautja) "ai" = ( /obj/structure/surface/rack, /obj/item/device/flashlight/lantern, /obj/item/device/flashlight/lantern, -/turf/open/floor/holofloor{ - dir = 2; - icon_state = "cult" - }, +/turf/open/floor/holofloor/cult/south, /area/yautja) "ak" = ( /obj/structure/surface/rack, /obj/item/device/healthanalyzer, /obj/item/device/healthanalyzer, /obj/item/device/healthanalyzer, -/turf/open/floor/holofloor{ - dir = 2; - icon_state = "cult" - }, +/turf/open/floor/holofloor/cult/south, /area/yautja) "am" = ( /obj/structure/surface/rack, -/turf/open/floor/holofloor{ - dir = 2; - icon_state = "cult" - }, +/turf/open/floor/holofloor/cult/south, /area/yautja) "ao" = ( /obj/structure/surface/table/reinforced{ layer = 2.69 }, /obj/item/device/flashlight/lantern, -/turf/open/floor/holofloor{ - dir = 2; - icon_state = "cult" - }, +/turf/open/floor/holofloor/cult/south, /area/yautja) "ap" = ( /obj/structure/surface/table/reinforced{ layer = 2.69 }, /obj/item/weapon/yautja/knife, -/turf/open/floor/holofloor{ - dir = 2; - icon_state = "cult" - }, +/turf/open/floor/holofloor/cult/south, /area/yautja) "ar" = ( /obj/structure/surface/table/reinforced, /obj/item/tool/surgery/retractor/predatorretractor, /obj/item/tool/surgery/circular_saw/predatorbonesaw, /obj/item/tool/surgery/cautery/predatorcautery, -/turf/open/floor/holofloor{ - dir = 2; - icon_state = "cult" - }, +/turf/open/floor/holofloor/cult/south, /area/yautja) "az" = ( /obj/structure/machinery/optable, -/turf/open/floor/holofloor{ - dir = 2; - icon_state = "cult" - }, +/turf/open/floor/holofloor/cult/south, /area/yautja) "aA" = ( /obj/structure/surface/table/reinforced, /obj/item/tool/surgery/bonegel/predatorbonegel, /obj/item/tool/surgery/hemostat/predatorhemostat, /obj/item/tool/surgery/bonesetter/predatorbonesetter, -/turf/open/floor/holofloor{ - dir = 2; - icon_state = "cult" - }, +/turf/open/floor/holofloor/cult/south, /area/yautja) "aB" = ( /obj/structure/surface/table/reinforced, /obj/item/tank/anesthetic, /obj/item/clothing/mask/breath/medical, -/turf/open/floor/holofloor{ - dir = 2; - icon_state = "cult" - }, +/turf/open/floor/holofloor/cult/south, /area/yautja) "aG" = ( /obj/structure/surface/rack, /obj/item/storage/box/lights/bulbs, /obj/item/storage/box/lights/bulbs, -/turf/open/floor/holofloor{ - dir = 2; - icon_state = "cult" - }, +/turf/open/floor/holofloor/cult/south, /area/yautja) "aK" = ( /obj/structure/bed/alien, -/turf/open/floor/holofloor{ - dir = 2; - icon_state = "cult" - }, +/turf/open/floor/holofloor/cult/south, /area/yautja) "aN" = ( /obj/structure/surface/table/reinforced{ @@ -131,36 +92,24 @@ dir = 8 }, /obj/structure/machinery/door/window/southleft, -/turf/open/floor/holofloor{ - dir = 2; - icon_state = "cult" - }, +/turf/open/floor/holofloor/cult/south, /area/yautja) "aO" = ( /obj/structure/surface/table/reinforced, /obj/item/tool/surgery/surgicaldrill/predatorsurgicaldrill, /obj/item/tool/surgery/scalpel/predatorscalpel, /obj/item/tool/surgery/FixOVein/predatorFixOVein, -/turf/open/floor/holofloor{ - dir = 2; - icon_state = "cult" - }, +/turf/open/floor/holofloor/cult/south, /area/yautja) "aP" = ( /obj/structure/curtain/red, -/turf/open/floor/holofloor{ - dir = 2; - icon_state = "cult" - }, +/turf/open/floor/holofloor/cult/south, /area/yautja) "aQ" = ( /obj/structure/machinery/door/airlock/secure{ name = "\improper Operation Room" }, -/turf/open/floor/holofloor{ - dir = 2; - icon_state = "cult" - }, +/turf/open/floor/holofloor/cult/south, /area/yautja) "aT" = ( /obj/structure/surface/table/reinforced{ @@ -178,27 +127,18 @@ icon_state = "left"; layer = 2.8 }, -/turf/open/floor/holofloor{ - dir = 2; - icon_state = "cult" - }, +/turf/open/floor/holofloor/cult/south, /area/yautja) "aU" = ( /obj/structure/surface/rack, /obj/item/storage/backpack/yautja, -/turf/open/floor/holofloor{ - dir = 2; - icon_state = "cult" - }, +/turf/open/floor/holofloor/cult/south, /area/yautja) "aW" = ( /obj/structure/machinery/door/airlock/secure{ name = "\improper Houndmaster's Quarters" }, -/turf/open/floor/holofloor{ - dir = 2; - icon_state = "cult" - }, +/turf/open/floor/holofloor/cult/south, /area/yautja) "aX" = ( /obj/structure/surface/table/reinforced, @@ -232,10 +172,7 @@ /obj/item/stack/medical/splint{ name = "splints" }, -/turf/open/floor/holofloor{ - dir = 2; - icon_state = "cult" - }, +/turf/open/floor/holofloor/cult/south, /area/yautja) "aY" = ( /obj/structure/surface/table/reinforced, @@ -254,10 +191,7 @@ /obj/item/stack/medical/advanced/bruise_pack/predator{ name = "mending herbs" }, -/turf/open/floor/holofloor{ - dir = 2; - icon_state = "cult" - }, +/turf/open/floor/holofloor/cult/south, /area/yautja) "aZ" = ( /obj/structure/surface/table/reinforced{ @@ -271,10 +205,7 @@ /obj/structure/window/reinforced{ dir = 8 }, -/turf/open/floor/holofloor{ - dir = 2; - icon_state = "cult" - }, +/turf/open/floor/holofloor/cult/south, /area/yautja) "ba" = ( /obj/structure/surface/table/reinforced, @@ -293,26 +224,17 @@ /obj/item/stack/medical/advanced/ointment/predator{ name = "soothing herbs" }, -/turf/open/floor/holofloor{ - dir = 2; - icon_state = "cult" - }, +/turf/open/floor/holofloor/cult/south, /area/yautja) "bg" = ( /obj/structure/machinery/door/airlock/secure{ name = "\improper Medicine Room" }, -/turf/open/floor/holofloor{ - dir = 2; - icon_state = "cult" - }, +/turf/open/floor/holofloor/cult/south, /area/yautja) "bh" = ( /obj/structure/machinery/autolathe/yautja, -/turf/open/floor/holofloor{ - dir = 2; - icon_state = "cult" - }, +/turf/open/floor/holofloor/cult/south, /area/yautja) "bi" = ( /obj/structure/surface/rack{ @@ -336,19 +258,13 @@ /obj/item/stack/sheet/mineral/sandstone{ amount = 50 }, -/turf/open/floor/holofloor{ - dir = 2; - icon_state = "cult" - }, +/turf/open/floor/holofloor/cult/south, /area/yautja) "bj" = ( /obj/structure/machinery/door/airlock/secure{ name = "\improper Hellhound Quarters" }, -/turf/open/floor/holofloor{ - dir = 2; - icon_state = "cult" - }, +/turf/open/floor/holofloor/cult/south, /area/yautja) "bp" = ( /obj/item/clothing/mask/gas/yautja/hunter, @@ -364,10 +280,7 @@ }, /obj/item/clothing/suit/armor/yautja/hunter, /obj/item/clothing/shoes/yautja/hunter, -/turf/open/floor/holofloor{ - dir = 2; - icon_state = "cult" - }, +/turf/open/floor/holofloor/cult/south, /area/yautja) "bs" = ( /obj/item/clothing/mask/gas/yautja/hunter, @@ -387,10 +300,7 @@ }, /obj/item/clothing/suit/armor/yautja/hunter, /obj/item/clothing/shoes/yautja/hunter, -/turf/open/floor/holofloor{ - dir = 2; - icon_state = "cult" - }, +/turf/open/floor/holofloor/cult/south, /area/yautja) "bu" = ( /obj/item/clothing/mask/gas/yautja/hunter, @@ -407,10 +317,7 @@ }, /obj/item/clothing/suit/armor/yautja/hunter, /obj/item/clothing/shoes/yautja/hunter, -/turf/open/floor/holofloor{ - dir = 2; - icon_state = "cult" - }, +/turf/open/floor/holofloor/cult/south, /area/yautja) "bx" = ( /obj/effect/step_trigger/teleporter/yautja_ship, @@ -418,9 +325,7 @@ /area/yautja) "bz" = ( /obj/structure/shuttle/window, -/turf/open/shuttle{ - icon_state = "floor6" - }, +/turf/open/shuttle/red, /area/yautja) "bA" = ( /obj/structure/surface/table/reinforced, @@ -428,10 +333,7 @@ dir = 4 }, /obj/structure/window/reinforced, -/turf/open/floor/holofloor{ - dir = 2; - icon_state = "cult" - }, +/turf/open/floor/holofloor/cult/south, /area/yautja) "bM" = ( /obj/structure/surface/table/reinforced, @@ -444,10 +346,7 @@ dir = 4 }, /obj/structure/window/reinforced, -/turf/open/floor/holofloor{ - dir = 2; - icon_state = "cult" - }, +/turf/open/floor/holofloor/cult/south, /area/yautja) "bN" = ( /obj/structure/surface/table/reinforced, @@ -460,10 +359,7 @@ health = 80 }, /obj/structure/window/reinforced, -/turf/open/floor/holofloor{ - dir = 2; - icon_state = "cult" - }, +/turf/open/floor/holofloor/cult/south, /area/yautja) "bO" = ( /obj/structure/surface/table/reinforced, @@ -479,10 +375,7 @@ desc = "A close-fitting mask that appears to only cover half of the face. One can only wonder who would make such a thing."; name = "strange half-mask" }, -/turf/open/floor/holofloor{ - dir = 2; - icon_state = "cult" - }, +/turf/open/floor/holofloor/cult/south, /area/yautja) "bP" = ( /obj/structure/surface/table/reinforced, @@ -490,17 +383,11 @@ dir = 8; health = 80 }, -/turf/open/floor/holofloor{ - dir = 2; - icon_state = "cult" - }, +/turf/open/floor/holofloor/cult/south, /area/yautja) "bQ" = ( /obj/structure/window/reinforced, -/turf/open/floor/holofloor{ - dir = 2; - icon_state = "cult" - }, +/turf/open/floor/holofloor/cult/south, /area/yautja) "bR" = ( /obj/structure/surface/table/reinforced{ @@ -517,19 +404,13 @@ }, /obj/item/clothing/suit/armor/yautja/hunter, /obj/item/clothing/shoes/yautja/hunter, -/turf/open/floor/holofloor{ - dir = 2; - icon_state = "cult" - }, +/turf/open/floor/holofloor/cult/south, /area/yautja) "bS" = ( /obj/structure/machinery/door/airlock/centcom{ name = "Airlock Out" }, -/turf/open/floor/holofloor{ - dir = 2; - icon_state = "cult" - }, +/turf/open/floor/holofloor/cult/south, /area/yautja) "bT" = ( /obj/item/hunting_trap, @@ -545,25 +426,16 @@ /obj/item/hunting_trap, /obj/item/hunting_trap, /obj/item/hunting_trap, -/turf/open/floor/holofloor{ - dir = 2; - icon_state = "cult" - }, +/turf/open/floor/holofloor/cult/south, /area/yautja) "bU" = ( /obj/structure/xenoautopsy/tank, -/turf/open/floor/holofloor{ - dir = 2; - icon_state = "cult" - }, +/turf/open/floor/holofloor/cult/south, /area/yautja) "bV" = ( /obj/structure/surface/rack, /obj/item/device/encryptionkey/yautja, -/turf/open/floor/holofloor{ - dir = 2; - icon_state = "cult" - }, +/turf/open/floor/holofloor/cult/south, /area/yautja) "bW" = ( /obj/structure/surface/rack, @@ -572,17 +444,11 @@ pixel_x = -6; pixel_y = -5 }, -/turf/open/floor/holofloor{ - dir = 2; - icon_state = "cult" - }, +/turf/open/floor/holofloor/cult/south, /area/yautja) "bX" = ( /obj/structure/xenoautopsy/tank/hugger, -/turf/open/floor/holofloor{ - dir = 2; - icon_state = "cult" - }, +/turf/open/floor/holofloor/cult/south, /area/yautja) "bY" = ( /obj/structure/surface/rack{ @@ -592,17 +458,11 @@ /obj/item/explosive/grenade/spawnergrenade/smartdisc, /obj/item/explosive/grenade/spawnergrenade/smartdisc, /obj/item/explosive/grenade/spawnergrenade/smartdisc, -/turf/open/floor/holofloor{ - dir = 2; - icon_state = "cult" - }, +/turf/open/floor/holofloor/cult/south, /area/yautja) "bZ" = ( /obj/structure/xenoautopsy/tank/alien, -/turf/open/floor/holofloor{ - dir = 2; - icon_state = "cult" - }, +/turf/open/floor/holofloor/cult/south, /area/yautja) "ca" = ( /obj/structure/surface/rack, @@ -611,10 +471,7 @@ dir = 4; icon_state = "bulb1" }, -/turf/open/floor/holofloor{ - dir = 2; - icon_state = "cult" - }, +/turf/open/floor/holofloor/cult/south, /area/yautja) "cb" = ( /obj/structure/surface/rack, @@ -622,45 +479,30 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/holofloor{ - dir = 2; - icon_state = "cult" - }, +/turf/open/floor/holofloor/cult/south, /area/yautja) "cc" = ( /obj/structure/xenoautopsy/tank/larva, -/turf/open/floor/holofloor{ - dir = 2; - icon_state = "cult" - }, +/turf/open/floor/holofloor/cult/south, /area/yautja) "ce" = ( /obj/structure/surface/rack, /obj/item/weapon/yautja/knife, /obj/item/reagent_container/hypospray/autoinjector/yautja, /obj/item/reagent_container/hypospray/autoinjector/yautja, -/turf/open/floor/holofloor{ - dir = 2; - icon_state = "cult" - }, +/turf/open/floor/holofloor/cult/south, /area/yautja) "cg" = ( /obj/structure/xenoautopsy/tank, /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/holofloor{ - dir = 2; - icon_state = "cult" - }, +/turf/open/floor/holofloor/cult/south, /area/yautja) "ch" = ( /obj/structure/surface/rack, /obj/item/reagent_container/food/snacks/meat, -/turf/open/floor/holofloor{ - dir = 2; - icon_state = "cult" - }, +/turf/open/floor/holofloor/cult/south, /area/yautja) "ci" = ( /obj/structure/surface/rack, @@ -669,10 +511,7 @@ pixel_x = -2; pixel_y = -2 }, -/turf/open/floor/holofloor{ - dir = 2; - icon_state = "cult" - }, +/turf/open/floor/holofloor/cult/south, /area/yautja) "cj" = ( /obj/structure/xenoautopsy/tank, @@ -680,10 +519,7 @@ dir = 4; icon_state = "bulb1" }, -/turf/open/floor/holofloor{ - dir = 2; - icon_state = "cult" - }, +/turf/open/floor/holofloor/cult/south, /area/yautja) "ck" = ( /obj/structure/surface/rack, @@ -703,10 +539,7 @@ pixel_x = -4; pixel_y = -3 }, -/turf/open/floor/holofloor{ - dir = 2; - icon_state = "cult" - }, +/turf/open/floor/holofloor/cult/south, /area/yautja) "cl" = ( /obj/structure/surface/rack, @@ -721,27 +554,19 @@ /obj/item/weapon/harpoon/yautja, /obj/item/weapon/harpoon/yautja, /obj/item/weapon/harpoon/yautja, -/turf/open/floor/holofloor{ - dir = 2; - icon_state = "cult" - }, +/turf/open/floor/holofloor/cult/south, /area/yautja) "cm" = ( /obj/structure/machinery/door/airlock/secure{ name = "Central Chamber" }, -/turf/open/shuttle{ - icon_state = "floor6" - }, +/turf/open/shuttle/red, /area/yautja) "cn" = ( /obj/structure/machinery/door/airlock/secure{ name = "Storage Chamber" }, -/turf/open/floor/holofloor{ - dir = 2; - icon_state = "cult" - }, +/turf/open/floor/holofloor/cult/south, /area/yautja) "co" = ( /obj/structure/surface/table/reinforced, @@ -752,10 +577,7 @@ /obj/structure/machinery/door/window/southleft{ layer = 2.8 }, -/turf/open/floor/holofloor{ - dir = 2; - icon_state = "cult" - }, +/turf/open/floor/holofloor/cult/south, /area/yautja) "cp" = ( /obj/structure/surface/table/reinforced, @@ -766,44 +588,29 @@ /obj/structure/machinery/door/window/southleft{ layer = 2.8 }, -/turf/open/floor/holofloor{ - dir = 2; - icon_state = "cult" - }, +/turf/open/floor/holofloor/cult/south, /area/yautja) "cq" = ( /obj/structure/bed/chair/wood/wings, -/turf/open/floor/holofloor{ - dir = 2; - icon_state = "cult" - }, +/turf/open/floor/holofloor/cult/south, /area/yautja) "cu" = ( /obj/structure/bed/chair/wood/wings{ dir = 4; icon_state = "wooden_chair_wings" }, -/turf/open/floor/holofloor{ - dir = 2; - icon_state = "cult" - }, +/turf/open/floor/holofloor/cult/south, /area/yautja) "cv" = ( /obj/structure/surface/table/reinforced, -/turf/open/floor/holofloor{ - dir = 2; - icon_state = "cult" - }, +/turf/open/floor/holofloor/cult/south, /area/yautja) "cw" = ( /obj/structure/bed/chair/wood/wings{ dir = 8; icon_state = "wooden_chair_wings" }, -/turf/open/floor/holofloor{ - dir = 2; - icon_state = "cult" - }, +/turf/open/floor/holofloor/cult/south, /area/yautja) "cx" = ( /obj/structure/surface/table/reinforced, @@ -821,38 +628,26 @@ icon_state = "left"; layer = 2.8 }, -/turf/open/floor/holofloor{ - dir = 2; - icon_state = "cult" - }, +/turf/open/floor/holofloor/cult/south, /area/yautja) "cy" = ( /obj/structure/machinery/door/airlock/secure{ name = "\improper Meeting Chamber" }, -/turf/open/floor/holofloor{ - dir = 2; - icon_state = "cult" - }, +/turf/open/floor/holofloor/cult/south, /area/yautja) "cz" = ( /obj/structure/machinery/door/airlock/secure{ name = "Trophy Room" }, -/turf/open/floor/holofloor{ - dir = 2; - icon_state = "cult" - }, +/turf/open/floor/holofloor/cult/south, /area/yautja) "cA" = ( /obj/structure/bed/chair/wood/wings{ dir = 1; icon_state = "wooden_chair_wings" }, -/turf/open/floor/holofloor{ - dir = 2; - icon_state = "cult" - }, +/turf/open/floor/holofloor/cult/south, /area/yautja) "cB" = ( /obj/structure/surface/table/reinforced, @@ -866,10 +661,7 @@ icon_state = "left"; layer = 2.8 }, -/turf/open/floor/holofloor{ - dir = 2; - icon_state = "cult" - }, +/turf/open/floor/holofloor/cult/south, /area/yautja) "cC" = ( /obj/structure/surface/table/reinforced, @@ -882,35 +674,24 @@ icon_state = "left"; layer = 2.8 }, -/turf/open/floor/holofloor{ - dir = 2; - icon_state = "cult" - }, +/turf/open/floor/holofloor/cult/south, /area/yautja) "cD" = ( /obj/structure/surface/table/reinforced, /obj/item/tool/kitchen/utensil/spoon, -/turf/open/floor/holofloor{ - dir = 2; - icon_state = "cult" - }, +/turf/open/floor/holofloor/cult/south, /area/yautja) "cE" = ( /obj/item/reagent_container/food/snacks/stew, /obj/structure/surface/table/reinforced, /obj/item/reagent_container/food/snacks/stew, -/turf/open/floor/holofloor{ - dir = 2; - icon_state = "cult" - }, +/turf/open/floor/holofloor/cult/south, /area/yautja) "cG" = ( /obj/structure/machinery/door/airlock/secure{ name = "Practice Chamber" }, -/turf/open/shuttle{ - icon_state = "floor6" - }, +/turf/open/shuttle/red, /area/yautja) "cH" = ( /obj/structure/surface/table/reinforced, @@ -918,10 +699,7 @@ /obj/item/clothing/under/chainshirt/hunter, /obj/item/clothing/gloves/combat, /obj/item/clothing/head/helmet/gladiator, -/turf/open/floor/holofloor{ - dir = 2; - icon_state = "cult" - }, +/turf/open/floor/holofloor/cult/south, /area/yautja) "cI" = ( /obj/structure/surface/table/reinforced, @@ -929,10 +707,7 @@ /obj/item/device/assembly/voice, /obj/item/weapon/baton/cattleprod, /obj/item/weapon/baton/cattleprod, -/turf/open/floor/holofloor{ - dir = 2; - icon_state = "cult" - }, +/turf/open/floor/holofloor/cult/south, /area/yautja) "cJ" = ( /obj/structure/surface/table/reinforced, @@ -941,29 +716,20 @@ /obj/item/clothing/mask/muzzle, /obj/item/clothing/mask/muzzle, /obj/item/clothing/mask/muzzle, -/turf/open/floor/holofloor{ - dir = 2; - icon_state = "cult" - }, +/turf/open/floor/holofloor/cult/south, /area/yautja) "cK" = ( /obj/structure/machinery/door/airlock/freezer{ name = "\improper Cooler Room" }, -/turf/open/floor/holofloor{ - dir = 2; - icon_state = "cult" - }, +/turf/open/floor/holofloor/cult/south, /area/yautja) "cL" = ( /obj/structure/machinery/door/airlock/glass{ id = "Prisoner Cell 1"; name = "\improper Prisoner Cell 1" }, -/turf/open/floor/holofloor{ - dir = 2; - icon_state = "cult" - }, +/turf/open/floor/holofloor/cult/south, /area/yautja) "cM" = ( /obj/structure/machinery/door_display/research_cell{ @@ -978,10 +744,7 @@ id = "Prisoner Cell 2"; name = "\improper Prisoner Cell 2" }, -/turf/open/floor/holofloor{ - dir = 2; - icon_state = "cult" - }, +/turf/open/floor/holofloor/cult/south, /area/yautja) "cO" = ( /obj/structure/machinery/door_display/research_cell{ @@ -996,10 +759,7 @@ id = "Prisoner Cell 3"; name = "\improper Prisoner Cell 3" }, -/turf/open/floor/holofloor{ - dir = 2; - icon_state = "cult" - }, +/turf/open/floor/holofloor/cult/south, /area/yautja) "cQ" = ( /obj/structure/machinery/door_display/research_cell{ @@ -1011,45 +771,31 @@ /area/yautja) "cR" = ( /obj/structure/closet, -/turf/open/floor/holofloor{ - dir = 2; - icon_state = "cult" - }, +/turf/open/floor/holofloor/cult/south, /area/yautja) "cS" = ( /obj/structure/machinery/door/airlock/secure{ name = "\improper Feeder Room" }, -/turf/open/floor/holofloor{ - dir = 2; - icon_state = "cult" - }, +/turf/open/floor/holofloor/cult/south, /area/yautja) "cW" = ( /obj/structure/machinery/door/airlock/secure{ name = "\improper Feed Hall" }, -/turf/open/floor/holofloor{ - dir = 2; - icon_state = "cult" - }, +/turf/open/floor/holofloor/cult/south, /area/yautja) "cX" = ( /obj/structure/machinery/door/airlock/secure{ name = "\improper Containment Cells" }, -/turf/open/shuttle{ - icon_state = "floor6" - }, +/turf/open/shuttle/red, /area/yautja) "cY" = ( /obj/structure/machinery/door/airlock/secure{ name = "\improper Wargear Storage" }, -/turf/open/floor/holofloor{ - dir = 2; - icon_state = "cult" - }, +/turf/open/floor/holofloor/cult/south, /area/yautja) "cZ" = ( /obj/structure/surface/table/reinforced, @@ -1059,36 +805,24 @@ /obj/item/weapon/sword, /obj/item/weapon/sword, /obj/item/weapon/sword, -/turf/open/floor/holofloor{ - dir = 2; - icon_state = "cult" - }, +/turf/open/floor/holofloor/cult/south, /area/yautja) "da" = ( /obj/structure/machinery/door/airlock/glass{ name = "\improper Fighting Pit" }, -/turf/open/floor/holofloor{ - dir = 2; - icon_state = "cult" - }, +/turf/open/floor/holofloor/cult/south, /area/yautja) "db" = ( /obj/structure/kitchenspike, -/turf/open/floor/holofloor{ - dir = 2; - icon_state = "cult" - }, +/turf/open/floor/holofloor/cult/south, /area/yautja) "dd" = ( /obj/structure/machinery/door/airlock/glass{ id = "Prisoner Cell 4"; name = "\improper Prisoner Cell 4" }, -/turf/open/floor/holofloor{ - dir = 2; - icon_state = "cult" - }, +/turf/open/floor/holofloor/cult/south, /area/yautja) "de" = ( /obj/structure/machinery/door_display/research_cell{ @@ -1103,10 +837,7 @@ id = "Prisoner Cell 5"; name = "\improper Prisoner Cell 5" }, -/turf/open/floor/holofloor{ - dir = 2; - icon_state = "cult" - }, +/turf/open/floor/holofloor/cult/south, /area/yautja) "dg" = ( /obj/structure/machinery/door_display/research_cell{ @@ -1121,10 +852,7 @@ id = "Prisoner Cell 6"; name = "\improper Prisoner Cell 6" }, -/turf/open/floor/holofloor{ - dir = 2; - icon_state = "cult" - }, +/turf/open/floor/holofloor/cult/south, /area/yautja) "di" = ( /obj/structure/machinery/door_display/research_cell{ @@ -1136,78 +864,50 @@ /area/yautja) "dk" = ( /obj/structure/surface/table/reinforced, -/obj/item/handcuffs, -/obj/item/handcuffs, -/obj/item/handcuffs, -/obj/item/handcuffs, -/obj/item/handcuffs, -/obj/item/handcuffs, -/turf/open/floor/holofloor{ - dir = 2; - icon_state = "cult" - }, +/obj/item/restraint/handcuffs, +/obj/item/restraint/handcuffs, +/obj/item/restraint/handcuffs, +/obj/item/restraint/handcuffs, +/obj/item/restraint/handcuffs, +/obj/item/restraint/handcuffs, +/turf/open/floor/holofloor/cult/south, /area/yautja) "dl" = ( /obj/structure/surface/table/reinforced, -/obj/item/legcuffs, -/obj/item/legcuffs, -/obj/item/legcuffs, -/obj/item/legcuffs, -/obj/item/legcuffs, -/obj/item/legcuffs, -/turf/open/floor/holofloor{ - dir = 2; - icon_state = "cult" - }, +/obj/item/restraint/legcuffs, +/obj/item/restraint/legcuffs, +/obj/item/restraint/legcuffs, +/obj/item/restraint/legcuffs, +/obj/item/restraint/legcuffs, +/obj/item/restraint/legcuffs, +/turf/open/floor/holofloor/cult/south, /area/yautja) "dm" = ( /obj/structure/morgue/sarcophagus, -/turf/open/floor/holofloor{ - dir = 2; - icon_state = "cult" - }, +/turf/open/floor/holofloor/cult/south, /area/yautja) "do" = ( /obj/structure/machinery/door/airlock/secure{ name = "\improper Fore Rooms" }, -/turf/open/shuttle{ - icon_state = "floor6" - }, +/turf/open/shuttle/red, /area/yautja) "dp" = ( /obj/structure/surface/table/reinforced, -/obj/item/XenoBio/Blood, -/obj/item/XenoBio/Blood, -/turf/open/floor/holofloor{ - dir = 2; - icon_state = "cult" - }, -/area/yautja) -"dq" = ( -/obj/structure/surface/table/reinforced, -/obj/item/XenoItem, -/turf/open/floor/holofloor{ - dir = 2; - icon_state = "cult" - }, +/obj/item/oldresearch/Blood, +/obj/item/oldresearch/Blood, +/turf/open/floor/holofloor/cult/south, /area/yautja) "ds" = ( /obj/structure/surface/table/reinforced, /obj/item/alienjar, -/turf/open/floor/holofloor{ - dir = 2; - icon_state = "cult" - }, +/turf/open/floor/holofloor/cult/south, /area/yautja) "dz" = ( /obj/structure/surface/table/reinforced, -/obj/item/XenoBio/Resin, -/obj/item/XenoBio/Resin, -/turf/open/floor/holofloor{ - dir = 2; - icon_state = "cult" - }, +/obj/item/oldresearch/Resin, +/obj/item/oldresearch/Resin, +/turf/open/floor/holofloor/cult/south, /area/yautja) "dB" = ( /obj/structure/machinery/door/window/southleft{ @@ -1218,76 +918,49 @@ icon_state = "left"; layer = 2.8 }, -/turf/open/floor/holofloor{ - dir = 2; - icon_state = "cult" - }, +/turf/open/floor/holofloor/cult/south, /area/yautja) "dC" = ( /obj/structure/machinery/door/airlock/secure{ name = "\improper Burial Room" }, -/turf/open/floor/holofloor{ - dir = 2; - icon_state = "cult" - }, +/turf/open/floor/holofloor/cult/south, /area/yautja) "dD" = ( /obj/structure/machinery/door/airlock/secure{ name = "\improper Growth and Research Chamber" }, -/turf/open/floor/holofloor{ - dir = 2; - icon_state = "cult" - }, +/turf/open/floor/holofloor/cult/south, /area/yautja) "dH" = ( /obj/structure/machinery/door/airlock/external{ name = "\improper Airlock" }, -/turf/open/floor/holofloor{ - dir = 2; - icon_state = "cult" - }, +/turf/open/floor/holofloor/cult/south, /area/yautja) "dK" = ( /obj/structure/machinery/door/airlock/secure{ name = "Navigator's Room" }, -/turf/open/floor/holofloor{ - dir = 2; - icon_state = "cult" - }, +/turf/open/floor/holofloor/cult/south, /area/yautja) "dL" = ( /obj/effect/alien/egg, -/turf/open/floor/holofloor{ - dir = 2; - icon_state = "cult" - }, +/turf/open/floor/holofloor/cult/south, /area/yautja) "dP" = ( /obj/structure/bed/chair/wood/normal{ icon_state = "echair0" }, -/turf/open/floor/holofloor{ - dir = 2; - icon_state = "cult" - }, +/turf/open/floor/holofloor/cult/south, /area/yautja) "dQ" = ( /obj/structure/surface/table/woodentable, -/turf/open/floor/holofloor{ - dir = 2; - icon_state = "cult" - }, +/turf/open/floor/holofloor/cult/south, /area/yautja) "dR" = ( /obj/structure/machinery/computer/crew, -/turf/open/floor/holofloor{ - dir = 2; - icon_state = "cult" - }, +/turf/open/floor/holofloor/cult/south, /area/yautja) "hd" = ( /obj/structure/shuttle/engine/heater{ @@ -1298,56 +971,38 @@ dir = 1; icon_state = "bulb1" }, -/turf/open/floor{ - icon_state = "floor4" - }, +/turf/open/floor/floor4, /area/yautja) "hW" = ( /obj/structure/ore_box, -/turf/open/floor{ - icon_state = "floor4" - }, +/turf/open/floor/floor4, /area/yautja) "hX" = ( /obj/structure/surface/rack, /obj/item/device/flashlight/lantern, -/turf/open/floor{ - icon_state = "floor4" - }, +/turf/open/floor/floor4, /area/yautja) "ji" = ( /obj/structure/window/framed/colony/reinforced/hull{ color = "#686245" }, -/turf/open/floor/holofloor{ - dir = 2; - icon_state = "cult" - }, +/turf/open/floor/holofloor/cult/south, /area/yautja) "jH" = ( /obj/structure/machinery/door/airlock/secure{ name = "Blooded Chambers" }, -/turf/open/floor/holofloor{ - dir = 2; - icon_state = "cult" - }, +/turf/open/floor/holofloor/cult/south, /area/yautja) "kj" = ( /obj/structure/surface/table/reinforced, /obj/item/storage/backpack/yautja, -/turf/open/floor/holofloor{ - dir = 2; - icon_state = "cult" - }, +/turf/open/floor/holofloor/cult/south, /area/yautja) "kl" = ( /obj/structure/surface/table/reinforced, /obj/item/device/flashlight/lantern, -/turf/open/floor/holofloor{ - dir = 2; - icon_state = "cult" - }, +/turf/open/floor/holofloor/cult/south, /area/yautja) "ld" = ( /obj/structure/surface/table/reinforced, @@ -1356,27 +1011,19 @@ /obj/item/clothing/gloves/combat, /obj/item/clothing/head/helmet/gladiator, /obj/item/clothing/suit/armor/gladiator, -/turf/open/floor/holofloor{ - dir = 2; - icon_state = "cult" - }, +/turf/open/floor/holofloor/cult/south, /area/yautja) "pH" = ( /obj/structure/bed/alien, /obj/effect/landmark/clan_spawn, -/turf/open/floor/holofloor{ - dir = 2; - icon_state = "cult" - }, +/turf/open/floor/holofloor/cult/south, /area/yautja) "ET" = ( /obj/structure/machinery/power/terminal{ dir = 1; icon_state = "term" }, -/turf/open/floor{ - icon_state = "floor4" - }, +/turf/open/floor/floor4, /area/yautja) "HY" = ( /obj/structure/machinery/power/smes/magical{ @@ -1385,9 +1032,7 @@ dir = 4; name = "plasma power generator" }, -/turf/open/floor{ - icon_state = "floor4" - }, +/turf/open/floor/floor4, /area/yautja) "Jy" = ( /obj/structure/surface/table/reinforced{ @@ -1395,19 +1040,13 @@ }, /obj/item/reagent_container/hypospray/autoinjector/yautja, /obj/item/reagent_container/hypospray/autoinjector/yautja, -/turf/open/floor/holofloor{ - dir = 2; - icon_state = "cult" - }, +/turf/open/floor/holofloor/cult/south, /area/yautja) "Oj" = ( /obj/structure/machinery/door/airlock/secure{ name = "Elder Quarters" }, -/turf/open/floor/holofloor{ - dir = 2; - icon_state = "cult" - }, +/turf/open/floor/holofloor/cult/south, /area/yautja) "TU" = ( /turf/closed/shuttle{ @@ -1429,20 +1068,13 @@ /turf/open/space, /area/space) "Zr" = ( -/turf/open/floor{ - icon_state = "floor4" - }, +/turf/open/floor/floor4, /area/yautja) "Zv" = ( -/turf/open/floor/holofloor{ - dir = 2; - icon_state = "cult" - }, +/turf/open/floor/holofloor/cult/south, /area/yautja) "ZB" = ( -/turf/open/shuttle{ - icon_state = "floor6" - }, +/turf/open/shuttle/red, /area/yautja) "ZI" = ( /turf/closed/wall/indestructible/other{ @@ -1454,9 +1086,7 @@ dir = 1; icon_state = "heater" }, -/turf/open/floor{ - icon_state = "floor4" - }, +/turf/open/floor/floor4, /area/yautja) (1,1,1) = {" @@ -3112,7 +2742,7 @@ dd Zv Zv ZI -dq +cv cu Zv Zv diff --git a/maps/prison_station_fop.json b/maps/prison_station_fop.json index b29f7255c21b..69469ea2fd03 100644 --- a/maps/prison_station_fop.json +++ b/maps/prison_station_fop.json @@ -3,14 +3,14 @@ "map_path": "map_files/FOP_v2_Cellblocks", "map_file": "Prison_Station_FOP.dmm", "survivor_types": [ - "/datum/equipment_preset/survivor/scientist/florina", - "/datum/equipment_preset/survivor/doctor/florina", + "/datum/equipment_preset/survivor/scientist/fiorina", + "/datum/equipment_preset/survivor/doctor/fiorina", "/datum/equipment_preset/survivor/interstellar_human_rights_observer", - "/datum/equipment_preset/survivor/security/florina", + "/datum/equipment_preset/survivor/security/fiorina", "/datum/equipment_preset/survivor/prisoner", "/datum/equipment_preset/survivor/prisoner", "/datum/equipment_preset/survivor/gangleader", - "/datum/equipment_preset/survivor/engineer/florina", + "/datum/equipment_preset/survivor/engineer/fiorina", "/datum/equipment_preset/survivor/clf", "/datum/equipment_preset/survivor/civilian" ], @@ -24,7 +24,10 @@ "survivor_message": "You are a survivor of the attack on Fiorina Orbital Penitentiary. You worked or lived on the prison station, and managed to avoid the alien attacks... until now.", "map_item_type": "/obj/item/map/FOP_map", "announce_text": "An automated distress signal has been received from maximum-security prison \"Fiorina Orbital Penitentiary\". A response team from the ###SHIPNAME### will be dispatched shortly to investigate.", - "environment_traits": { "Lockdown": true }, + "environment_traits": { + "Lockdown": true, + "InSpace": true + }, "traits": [{ "Ground": true }], "nightmare_path": "maps/Nightmare/maps/FOP_v2_Cellblocks/", "xvx_hives": { diff --git a/maps/shuttles/dropship_alamo.dmm b/maps/shuttles/dropship_alamo.dmm index 6cd6922c22b0..e1ffd6161d7a 100644 --- a/maps/shuttles/dropship_alamo.dmm +++ b/maps/shuttles/dropship_alamo.dmm @@ -10,9 +10,7 @@ /obj/structure/bed/chair/vehicle{ pixel_x = 8 }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/shuttle/drop1/sulaco) "ax" = ( /obj/structure/shuttle/part/dropship1/transparent/nose_center, @@ -39,9 +37,7 @@ dir = 1; pixel_x = -8 }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/shuttle/drop1/sulaco) "cC" = ( /obj/structure/shuttle/part/dropship1/nose_front_right, @@ -51,9 +47,7 @@ /obj/item/device/radio/intercom/alamo{ pixel_y = 24 }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin6" - }, +/turf/open/shuttle/dropship/light_grey_top_left, /area/shuttle/drop1/sulaco) "de" = ( /turf/closed/shuttle/dropship1{ @@ -69,9 +63,7 @@ req_one_access_txt = "3;22"; throw_range = 15 }, -/turf/open/shuttle/dropship{ - icon_state = "floor8" - }, +/turf/open/shuttle/dropship/light_grey_single_wide_left_to_right, /area/shuttle/drop1/sulaco) "eD" = ( /obj/structure/shuttle/part/dropship1/transparent/engine_right_cap, @@ -84,7 +76,7 @@ /area/shuttle/drop1/sulaco) "if" = ( /obj/structure/shuttle/part/dropship1/left_outer_wing_connector, -/turf/open/space/basic, +/turf/template_noop, /area/shuttle/drop1/sulaco) "ig" = ( /turf/closed/shuttle/dropship1{ @@ -92,14 +84,10 @@ }, /area/shuttle/drop1/sulaco) "il" = ( -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/shuttle/drop1/sulaco) "in" = ( -/turf/open/shuttle/dropship{ - icon_state = "rasputin5" - }, +/turf/open/shuttle/dropship/light_grey_left_to_right, /area/shuttle/drop1/sulaco) "iv" = ( /turf/closed/shuttle/dropship1{ @@ -159,14 +147,6 @@ icon_state = "76" }, /area/shuttle/drop1/sulaco) -"os" = ( -/obj/effect/attach_point/fuel/dropship1{ - pixel_x = -32 - }, -/turf/closed/shuttle/dropship1/transparent{ - icon_state = "33" - }, -/area/shuttle/drop1/sulaco) "oW" = ( /obj/structure/shuttle/part/dropship1/transparent/middle_left_wing, /turf/template_noop, @@ -203,35 +183,24 @@ dir = 1; pixel_x = -8 }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/shuttle/drop1/sulaco) "rl" = ( /obj/structure/shuttle/part/dropship1/lower_right_wall, -/turf/open/space/basic, +/turf/template_noop, /area/shuttle/drop1/sulaco) "rr" = ( /turf/closed/shuttle/dropship1/transparent{ icon_state = "23" }, /area/shuttle/drop1/sulaco) -"rS" = ( -/obj/structure/machinery/door/airlock/multi_tile/almayer/dropshiprear/dropshipside/ds1{ - id = "port_door"; - dir = 2 - }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, -/area/shuttle/drop1/sulaco) "rV" = ( /obj/structure/shuttle/part/dropship1/transparent/left_outer_bottom_wing, /turf/template_noop, /area/shuttle/drop1/sulaco) "sA" = ( /obj/structure/shuttle/part/dropship1/lower_left_wall, -/turf/open/space/basic, +/turf/template_noop, /area/shuttle/drop1/sulaco) "tR" = ( /obj/item/device/radio/intercom/alamo{ @@ -239,21 +208,13 @@ pixel_x = 21; pixel_y = 43 }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/shuttle/drop1/sulaco) "wk" = ( /obj/effect/attach_point/weapon/dropship1/right_wing, /obj/structure/shuttle/part/dropship1/transparent/lower_right_wing, /turf/template_noop, /area/shuttle/drop1/sulaco) -"wr" = ( -/obj/effect/attach_point/crew_weapon/dropship1, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, -/area/shuttle/drop1/sulaco) "ws" = ( /obj/structure/bed/chair/vehicle{ dir = 1; @@ -263,21 +224,17 @@ dir = 1; pixel_x = -8 }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/shuttle/drop1/sulaco) "wC" = ( /obj/structure/bed/chair/dropship/pilot{ dir = 1 }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/shuttle/drop1/sulaco) "xM" = ( /obj/structure/shuttle/part/dropship1/bottom_right_wall, -/turf/open/space/basic, +/turf/template_noop, /area/shuttle/drop1/sulaco) "yQ" = ( /turf/closed/shuttle/dropship1/transparent{ @@ -286,7 +243,7 @@ /area/shuttle/drop1/sulaco) "yU" = ( /obj/structure/shuttle/part/dropship1/bottom_left_wall, -/turf/open/space/basic, +/turf/template_noop, /area/shuttle/drop1/sulaco) "zw" = ( /obj/structure/shuttle/part/dropship1/transparent/upper_left_wing, @@ -317,15 +274,19 @@ icon_state = "63" }, /area/shuttle/drop1/sulaco) +"BM" = ( +/obj/effect/attach_point/crew_weapon/dropship1/floor{ + attach_id = 9 + }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, +/area/shuttle/drop1/sulaco) "BS" = ( /turf/closed/shuttle/dropship1{ icon_state = "48" }, /area/shuttle/drop1/sulaco) "Ce" = ( -/turf/open/shuttle/dropship{ - icon_state = "rasputin4" - }, +/turf/open/shuttle/dropship/light_grey_bottom_left, /area/shuttle/drop1/sulaco) "Cg" = ( /turf/closed/shuttle/dropship1{ @@ -340,23 +301,7 @@ pixel_x = -6; pixel_y = -16 }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, -/area/shuttle/drop1/sulaco) -"Da" = ( -/obj/effect/attach_point/electronics/dropship1{ - dir = 1 - }, -/obj/structure/shuttle/part/dropship1/transparent/inner_left_weapons, -/turf/template_noop, -/area/shuttle/drop1/sulaco) -"De" = ( -/obj/effect/attach_point/electronics/dropship1{ - dir = 1 - }, -/obj/structure/shuttle/part/dropship1/transparent/inner_right_weapons, -/turf/template_noop, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/shuttle/drop1/sulaco) "Et" = ( /turf/closed/shuttle/dropship1{ @@ -370,7 +315,7 @@ /area/shuttle/drop1/sulaco) "EN" = ( /obj/structure/shuttle/part/dropship1/transparent/engine_left_exhaust, -/turf/open/space/basic, +/turf/template_noop, /area/shuttle/drop1/sulaco) "FA" = ( /obj/structure/shuttle/part/dropship1/transparent/engine_left_cap, @@ -381,6 +326,13 @@ icon_state = "39" }, /area/shuttle/drop1/sulaco) +"GQ" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/dropshiprear/dropshipside/ds1{ + dir = 1; + id = "starboard_door" + }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, +/area/shuttle/drop1/sulaco) "Ho" = ( /obj/structure/machinery/computer/dropship_weapons/dropship1, /obj/structure/transmitter/rotary{ @@ -391,9 +343,7 @@ pixel_y = 16 }, /obj/structure/blocker/invisible_wall, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/shuttle/drop1/sulaco) "HP" = ( /obj/effect/attach_point/weapon/dropship1/right_fore, @@ -404,15 +354,30 @@ /obj/structure/machinery/door/airlock/multi_tile/almayer/dropshiprear/ds1{ id = "aft_door" }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/shuttle/drop1/sulaco) "Il" = ( /turf/closed/shuttle/dropship1/transparent{ icon_state = "35" }, /area/shuttle/drop1/sulaco) +"Iu" = ( +/obj/effect/attach_point/fuel/dropship1{ + dir = 1; + pixel_x = -32 + }, +/turf/closed/shuttle/dropship1/transparent{ + icon_state = "33" + }, +/area/shuttle/drop1/sulaco) +"IP" = ( +/obj/effect/attach_point/electronics/dropship1{ + dir = 1; + attach_id = 6 + }, +/obj/structure/shuttle/part/dropship1/transparent/inner_right_weapons, +/turf/template_noop, +/area/shuttle/drop1/sulaco) "Jb" = ( /turf/closed/shuttle/dropship1/transparent{ icon_state = "80" @@ -420,19 +385,19 @@ /area/shuttle/drop1/sulaco) "Jm" = ( /obj/structure/shuttle/part/dropship1/transparent/engine_right_exhaust, -/turf/open/space/basic, +/turf/template_noop, /area/shuttle/drop1/sulaco) "JP" = ( /turf/closed/shuttle/dropship1{ icon_state = "62" }, /area/shuttle/drop1/sulaco) -"KC" = ( -/obj/structure/machinery/door/airlock/hatch/cockpit, -/obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" +"Kt" = ( +/obj/structure/machinery/door/airlock/hatch/cockpit{ + dir = 1 }, +/obj/structure/blocker/forcefield/multitile_vehicles, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/shuttle/drop1/sulaco) "KJ" = ( /turf/closed/shuttle/dropship1{ @@ -446,7 +411,7 @@ /area/shuttle/drop1/sulaco) "Me" = ( /obj/structure/shuttle/part/dropship1/left_inner_wing_connector, -/turf/open/space/basic, +/turf/template_noop, /area/shuttle/drop1/sulaco) "MP" = ( /turf/closed/shuttle/dropship1{ @@ -477,18 +442,7 @@ /obj/item/device/radio/intercom/alamo{ pixel_y = 24 }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin5" - }, -/area/shuttle/drop1/sulaco) -"Pf" = ( -/obj/structure/machinery/door/airlock/multi_tile/almayer/dropshiprear/dropshipside/ds1{ - dir = 1; - id = "starboard_door" - }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/light_grey_left_to_right, /area/shuttle/drop1/sulaco) "Ph" = ( /turf/closed/shuttle/dropship1{ @@ -498,9 +452,13 @@ "Py" = ( /obj/structure/blocker/invisible_wall, /obj/structure/machinery/computer/shuttle/dropship/flight, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, +/area/shuttle/drop1/sulaco) +"PA" = ( +/obj/effect/attach_point/crew_weapon/dropship1/floor{ + attach_id = 7 }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/shuttle/drop1/sulaco) "Qh" = ( /turf/closed/shuttle/dropship1/transparent{ @@ -527,16 +485,14 @@ /area/shuttle/drop1/sulaco) "Ta" = ( /obj/structure/shuttle/part/dropship1/right_inner_wing_connector, -/turf/open/space/basic, +/turf/template_noop, /area/shuttle/drop1/sulaco) "Te" = ( /obj/structure/shuttle/part/dropship1/transparent/right_inner_bottom_wing, /turf/template_noop, /area/shuttle/drop1/sulaco) "Tt" = ( -/turf/open/shuttle/dropship{ - icon_state = "rasputin8" - }, +/turf/open/shuttle/dropship/light_grey_bottom_right, /area/shuttle/drop1/sulaco) "Tu" = ( /obj/structure/machinery/cm_vending/sorted/medical/wall_med{ @@ -550,9 +506,7 @@ dir = 1; pixel_x = -8 }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/shuttle/drop1/sulaco) "TE" = ( /turf/closed/shuttle/dropship1/transparent{ @@ -566,21 +520,13 @@ /obj/structure/bed/chair/vehicle{ pixel_x = 8 }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/shuttle/drop1/sulaco) "TM" = ( /obj/effect/attach_point/weapon/dropship1/left_fore, /obj/structure/shuttle/part/dropship1/transparent/outer_left_weapons, /turf/template_noop, /area/shuttle/drop1/sulaco) -"Ua" = ( -/obj/effect/attach_point/fuel/dropship1, -/turf/closed/shuttle/dropship1/transparent{ - icon_state = "28" - }, -/area/shuttle/drop1/sulaco) "UG" = ( /obj/structure/prop/ice_colony/hula_girl{ pixel_x = -10; @@ -588,9 +534,15 @@ }, /obj/structure/blocker/invisible_wall, /obj/structure/machinery/computer/cameras/dropship/one, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, +/area/shuttle/drop1/sulaco) +"UN" = ( +/obj/effect/attach_point/electronics/dropship1{ + dir = 1; + attach_id = 5 }, +/obj/structure/shuttle/part/dropship1/transparent/inner_left_weapons, +/turf/template_noop, /area/shuttle/drop1/sulaco) "Vm" = ( /turf/closed/shuttle/dropship1/transparent{ @@ -603,7 +555,7 @@ /area/shuttle/drop1/sulaco) "Wg" = ( /obj/structure/shuttle/part/dropship1/right_outer_wing_connector, -/turf/open/space/basic, +/turf/template_noop, /area/shuttle/drop1/sulaco) "WQ" = ( /turf/closed/shuttle/dropship1{ @@ -624,19 +576,36 @@ /obj/item/device/radio/intercom/alamo{ pixel_y = 24 }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin7" +/turf/open/shuttle/dropship/light_grey_top_right, +/area/shuttle/drop1/sulaco) +"XH" = ( +/obj/effect/attach_point/fuel/dropship1{ + dir = 1 + }, +/turf/closed/shuttle/dropship1/transparent{ + icon_state = "28" }, /area/shuttle/drop1/sulaco) +"XI" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/dropshiprear/dropshipside/ds1{ + id = "port_door"; + dir = 2 + }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, +/area/shuttle/drop1/sulaco) +"YV" = ( +/obj/effect/attach_point/crew_weapon/dropship1/floor{ + attach_id = 8 + }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, +/area/shuttle/drop1/sulaco) "Za" = ( /turf/closed/shuttle/dropship1{ icon_state = "77" }, /area/shuttle/drop1/sulaco) "Zo" = ( -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/light_grey_single_wide_up_to_down, /area/shuttle/drop1/sulaco) "Zv" = ( /turf/closed/shuttle/dropship1{ @@ -660,7 +629,7 @@ mb mb FA Oq -Ua +XH iz EN mb @@ -677,7 +646,7 @@ Et iI JP il -rS +XI mW qn sA @@ -694,7 +663,7 @@ NQ mb mb mb -Da +UN oo TK ws @@ -764,7 +733,7 @@ ax EB Py tR -KC +Kt dU Ph BB @@ -773,11 +742,11 @@ BB OK OU il -wr +PA il -wr +YV il -wr +BM il mb mb @@ -832,7 +801,7 @@ Wg mb mb mb -De +IP oo TK cr @@ -861,7 +830,7 @@ iv zV MP il -Pf +GQ nC nE rl @@ -890,7 +859,7 @@ mb mb eD Gw -os +Iu qy Jm mb diff --git a/maps/shuttles/dropship_normandy.dmm b/maps/shuttles/dropship_normandy.dmm index a2847ae62611..64ab081be5fc 100644 --- a/maps/shuttles/dropship_normandy.dmm +++ b/maps/shuttles/dropship_normandy.dmm @@ -11,8 +11,16 @@ "aH" = ( /obj/structure/blocker/invisible_wall, /obj/structure/machinery/computer/cameras/dropship/two, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, +/area/shuttle/drop2/sulaco) +"ba" = ( +/obj/effect/attach_point/fuel/dropship2{ + dir = 1; + pixel_x = -32; + attach_id = 11 + }, +/turf/closed/shuttle/dropship2/transparent{ + icon_state = "33" }, /area/shuttle/drop2/sulaco) "bc" = ( @@ -28,27 +36,17 @@ /obj/item/device/radio/intercom/normandy{ pixel_y = 24 }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin7" - }, +/turf/open/shuttle/dropship/light_grey_top_right, /area/shuttle/drop2/sulaco) "cj" = ( /obj/structure/shuttle/part/dropship2/transparent/right_outer_bottom_wing, /turf/template_noop, /area/shuttle/drop2/sulaco) -"do" = ( -/obj/effect/attach_point/crew_weapon/dropship2, -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, -/area/shuttle/drop2/sulaco) -"es" = ( -/obj/effect/attach_point/fuel/dropship2{ - pixel_x = -32 - }, -/turf/closed/shuttle/dropship2/transparent{ - icon_state = "33" +"db" = ( +/obj/effect/attach_point/crew_weapon/dropship2/floor{ + attach_id = 7 }, +/turf/open/shuttle/dropship/light_grey_single_wide_up_to_down, /area/shuttle/drop2/sulaco) "eu" = ( /turf/closed/shuttle/dropship2{ @@ -65,6 +63,12 @@ icon_state = "29" }, /area/shuttle/drop2/sulaco) +"ft" = ( +/obj/effect/attach_point/crew_weapon/dropship2/floor{ + attach_id = 8 + }, +/turf/open/shuttle/dropship/light_grey_single_wide_up_to_down, +/area/shuttle/drop2/sulaco) "fx" = ( /turf/closed/shuttle/dropship2{ icon_state = "69" @@ -77,7 +81,7 @@ /area/shuttle/drop2/sulaco) "fQ" = ( /obj/structure/shuttle/part/dropship2/left_inner_wing_connector, -/turf/open/space/basic, +/turf/template_noop, /area/shuttle/drop2/sulaco) "gD" = ( /turf/closed/shuttle/dropship2/transparent{ @@ -97,9 +101,23 @@ /obj/structure/bed/chair/dropship/pilot{ dir = 1 }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, +/area/shuttle/drop2/sulaco) +"gV" = ( +/obj/effect/attach_point/fuel/dropship2{ + dir = 1; + attach_id = 10 + }, +/turf/closed/shuttle/dropship2/transparent{ + icon_state = "28" + }, +/area/shuttle/drop2/sulaco) +"he" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/dropshiprear/dropshipside/ds2{ + dir = 1; + id = "starboard_door" }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/shuttle/drop2/sulaco) "it" = ( /obj/structure/bed/chair/vehicle{ @@ -110,13 +128,11 @@ dir = 1; pixel_x = -8 }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/shuttle/drop2/sulaco) "iI" = ( /obj/structure/shuttle/part/dropship2/right_inner_wing_connector, -/turf/open/space/basic, +/turf/template_noop, /area/shuttle/drop2/sulaco) "jc" = ( /obj/item/device/radio/intercom/normandy{ @@ -149,6 +165,13 @@ icon_state = "26" }, /area/shuttle/drop2/sulaco) +"lj" = ( +/obj/structure/machinery/door/airlock/hatch/cockpit/two{ + dir = 1 + }, +/obj/structure/blocker/forcefield/multitile_vehicles, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, +/area/shuttle/drop2/sulaco) "lz" = ( /obj/effect/attach_point/weapon/dropship2/right_fore, /obj/structure/shuttle/part/dropship2/transparent/outer_right_weapons, @@ -164,9 +187,7 @@ pixel_y = 16 }, /obj/structure/blocker/invisible_wall, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/shuttle/drop2/sulaco) "lJ" = ( /turf/closed/shuttle/dropship2{ @@ -186,9 +207,7 @@ dir = 1; pixel_x = -8 }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/shuttle/drop2/sulaco) "nq" = ( /obj/effect/attach_point/weapon/dropship2/left_fore, @@ -197,7 +216,7 @@ /area/shuttle/drop2/sulaco) "nS" = ( /obj/structure/shuttle/part/dropship2/lower_left_wall, -/turf/open/space/basic, +/turf/template_noop, /area/shuttle/drop2/sulaco) "oc" = ( /obj/structure/shuttle/part/dropship2/transparent/nose_top_right, @@ -223,17 +242,13 @@ }, /area/shuttle/drop2/sulaco) "qg" = ( -/turf/open/shuttle/dropship{ - icon_state = "rasputin8" - }, +/turf/open/shuttle/dropship/light_grey_bottom_right, /area/shuttle/drop2/sulaco) "rc" = ( /obj/item/device/radio/intercom/normandy{ pixel_y = 24 }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin5" - }, +/turf/open/shuttle/dropship/light_grey_left_to_right, /area/shuttle/drop2/sulaco) "rw" = ( /obj/structure/shuttle/part/dropship2/nose_front_right, @@ -248,38 +263,34 @@ /obj/structure/shuttle/part/dropship2/transparent/upper_left_wing, /turf/template_noop, /area/shuttle/drop2/sulaco) -"vd" = ( -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" +"ut" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/dropshiprear/dropshipside/ds2{ + id = "port_door"; + dir = 2 }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/shuttle/drop2/sulaco) -"vw" = ( -/obj/effect/attach_point/fuel/dropship2, -/turf/closed/shuttle/dropship2/transparent{ - icon_state = "28" +"uC" = ( +/obj/effect/attach_point/crew_weapon/dropship2/floor{ + attach_id = 9 }, +/turf/open/shuttle/dropship/light_grey_single_wide_up_to_down, +/area/shuttle/drop2/sulaco) +"vd" = ( +/turf/open/shuttle/dropship/light_grey_single_wide_up_to_down, /area/shuttle/drop2/sulaco) "wX" = ( /turf/closed/shuttle/dropship2{ icon_state = "83" }, /area/shuttle/drop2/sulaco) -"xd" = ( -/obj/effect/attach_point/electronics/dropship2{ - dir = 1 - }, -/obj/structure/shuttle/part/dropship2/transparent/inner_right_weapons, -/turf/template_noop, -/area/shuttle/drop2/sulaco) "xe" = ( /turf/closed/shuttle/dropship2{ icon_state = "18" }, /area/shuttle/drop2/sulaco) "xx" = ( -/turf/open/shuttle/dropship{ - icon_state = "rasputin5" - }, +/turf/open/shuttle/dropship/light_grey_left_to_right, /area/shuttle/drop2/sulaco) "xU" = ( /turf/closed/shuttle/dropship2{ @@ -335,9 +346,15 @@ }, /area/shuttle/drop2/sulaco) "Co" = ( -/turf/open/shuttle/dropship{ - icon_state = "rasputin4" +/turf/open/shuttle/dropship/light_grey_bottom_left, +/area/shuttle/drop2/sulaco) +"Dq" = ( +/obj/effect/attach_point/electronics/dropship2{ + dir = 1; + attach_id = 6 }, +/obj/structure/shuttle/part/dropship2/transparent/inner_right_weapons, +/turf/template_noop, /area/shuttle/drop2/sulaco) "Dy" = ( /turf/closed/shuttle/dropship2/transparent{ @@ -349,15 +366,6 @@ /obj/structure/shuttle/part/dropship2/transparent/lower_right_wing, /turf/template_noop, /area/shuttle/drop2/sulaco) -"En" = ( -/obj/structure/machinery/door/airlock/multi_tile/almayer/dropshiprear/dropshipside/ds2{ - dir = 1; - id = "starboard_door" - }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, -/area/shuttle/drop2/sulaco) "Eo" = ( /turf/closed/shuttle/dropship2{ icon_state = "47" @@ -375,9 +383,7 @@ dir = 1; pixel_x = -8 }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/shuttle/drop2/sulaco) "GE" = ( /turf/closed/shuttle/dropship2{ @@ -393,9 +399,7 @@ req_one_access_txt = "3;22"; throw_range = 15 }, -/turf/open/shuttle/dropship{ - icon_state = "floor8" - }, +/turf/open/shuttle/dropship/light_grey_single_wide_left_to_right, /area/shuttle/drop2/sulaco) "HB" = ( /turf/closed/shuttle/dropship2/transparent{ @@ -429,9 +433,7 @@ /obj/item/device/radio/intercom/normandy{ pixel_y = 24 }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin6" - }, +/turf/open/shuttle/dropship/light_grey_top_left, /area/shuttle/drop2/sulaco) "Lk" = ( /turf/closed/shuttle/dropship2{ @@ -451,9 +453,7 @@ pixel_x = 8; pixel_y = -16 }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/shuttle/drop2/sulaco) "LY" = ( /obj/structure/shuttle/part/dropship2/transparent/nose_center, @@ -476,9 +476,7 @@ "MQ" = ( /obj/structure/blocker/invisible_wall, /obj/structure/machinery/computer/shuttle/dropship/flight, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/shuttle/drop2/sulaco) "Nt" = ( /obj/effect/attach_point/weapon/dropship2/left_wing, @@ -492,7 +490,7 @@ /area/shuttle/drop2/sulaco) "NM" = ( /obj/structure/shuttle/part/dropship2/left_outer_wing_connector, -/turf/open/space/basic, +/turf/template_noop, /area/shuttle/drop2/sulaco) "Ov" = ( /obj/structure/shuttle/part/dropship2/transparent/right_inner_bottom_wing, @@ -515,9 +513,7 @@ dir = 1; pixel_x = -8 }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/shuttle/drop2/sulaco) "Px" = ( /turf/closed/shuttle/dropship2{ @@ -525,9 +521,7 @@ }, /area/shuttle/drop2/sulaco) "PJ" = ( -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/shuttle/drop2/sulaco) "Qd" = ( /obj/structure/machinery/camera/autoname/almayer/dropship_two{ @@ -540,9 +534,7 @@ /obj/structure/bed/chair/vehicle{ pixel_x = -8 }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/shuttle/drop2/sulaco) "Qo" = ( /turf/closed/shuttle/dropship2{ @@ -556,7 +548,7 @@ /area/shuttle/drop2/sulaco) "QK" = ( /obj/structure/shuttle/part/dropship2/lower_right_wall, -/turf/open/space/basic, +/turf/template_noop, /area/shuttle/drop2/sulaco) "Rr" = ( /turf/template_noop, @@ -565,9 +557,7 @@ /obj/structure/machinery/door/airlock/multi_tile/almayer/dropshiprear/ds2{ id = "aft_door" }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/shuttle/drop2/sulaco) "RG" = ( /turf/closed/shuttle/dropship2{ @@ -576,21 +566,12 @@ /area/shuttle/drop2/sulaco) "RJ" = ( /obj/structure/shuttle/part/dropship2/right_outer_wing_connector, -/turf/open/space/basic, +/turf/template_noop, /area/shuttle/drop2/sulaco) "SB" = ( /obj/structure/shuttle/part/dropship2/nose_front_left, /turf/template_noop, /area/shuttle/drop2/sulaco) -"SC" = ( -/obj/structure/machinery/door/airlock/multi_tile/almayer/dropshiprear/dropshipside/ds2{ - id = "port_door"; - dir = 2 - }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, -/area/shuttle/drop2/sulaco) "SO" = ( /turf/closed/shuttle/dropship2{ icon_state = "36" @@ -608,9 +589,7 @@ /obj/structure/bed/chair/vehicle{ pixel_x = -8 }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/shuttle/drop2/sulaco) "Tp" = ( /turf/closed/shuttle/dropship2{ @@ -650,22 +629,13 @@ icon_state = "25" }, /area/shuttle/drop2/sulaco) -"VW" = ( -/obj/structure/machinery/door/airlock/hatch/cockpit/two, -/obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, -/area/shuttle/drop2/sulaco) "VZ" = ( /obj/item/device/radio/intercom/normandy{ layer = 3.5; pixel_x = 21; pixel_y = 43 }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/shuttle/drop2/sulaco) "Xr" = ( /obj/structure/shuttle/part/dropship2/transparent/engine_left_exhaust, @@ -693,7 +663,7 @@ Rr Rr BG SQ -vw +gV sk Xr Rr @@ -710,7 +680,7 @@ OI GE lJ PJ -SC +ut jc pU nS @@ -797,7 +767,7 @@ LY Bi MQ VZ -VW +lj GN bJ ZK @@ -806,11 +776,11 @@ Bb Iv rc vd -do +db vd -do +ft vd -do +uC PJ Rr Rr @@ -865,7 +835,7 @@ RJ Rr Rr Rr -xd +Dq yl SY it @@ -894,7 +864,7 @@ fI fx Tp PJ -En +he gG RG QK @@ -923,7 +893,7 @@ Rr Rr yh UP -es +ba zt Uu Rr diff --git a/maps/shuttles/ert_pmc_shuttle.dmm b/maps/shuttles/ert_pmc_shuttle.dmm index 6f0ee784045b..55c6abf7416f 100644 --- a/maps/shuttles/ert_pmc_shuttle.dmm +++ b/maps/shuttles/ert_pmc_shuttle.dmm @@ -16,9 +16,7 @@ }, /area/shuttle/ert) "d" = ( -/turf/open/shuttle/dropship{ - icon_state = "rasputin6" - }, +/turf/open/shuttle/dropship/light_grey_top_left, /area/shuttle/ert) "e" = ( /turf/closed/shuttle/ert{ @@ -31,9 +29,7 @@ /obj/item/storage/firstaid/regular, /obj/item/storage/belt/medical/lifesaver/full, /obj/item/device/healthanalyzer, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/shuttle/ert) "g" = ( /obj/structure/surface/rack, @@ -42,14 +38,10 @@ pixel_x = 2; pixel_y = -5 }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/shuttle/ert) "h" = ( -/turf/open/shuttle/dropship{ - icon_state = "rasputin8" - }, +/turf/open/shuttle/dropship/light_grey_bottom_right, /area/shuttle/ert) "i" = ( /turf/template_noop, @@ -60,9 +52,7 @@ }, /area/shuttle/ert) "k" = ( -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/shuttle/ert) "l" = ( /turf/closed/shuttle/ert{ @@ -70,9 +60,7 @@ }, /area/shuttle/ert) "m" = ( -/turf/open/shuttle/dropship{ - icon_state = "rasputin7" - }, +/turf/open/shuttle/dropship/light_grey_top_right, /area/shuttle/ert) "n" = ( /turf/closed/shuttle/ert{ @@ -95,9 +83,7 @@ /obj/structure/machinery/door/airlock/almayer/generic{ dir = 2 }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/shuttle/ert) "r" = ( /turf/closed/shuttle/ert{ @@ -105,24 +91,18 @@ }, /area/shuttle/ert) "s" = ( -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/light_grey_single_wide_up_to_down, /area/shuttle/ert) "t" = ( /obj/structure/machinery/door/airlock/almayer/generic, -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/light_grey_single_wide_up_to_down, /area/shuttle/ert) "u" = ( /obj/structure/bed/chair/dropship/passenger{ dir = 4 }, /obj/effect/landmark/ert_spawns/distress_pmc, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/shuttle/ert) "v" = ( /turf/closed/shuttle/ert{ @@ -171,29 +151,21 @@ }, /area/shuttle/ert) "G" = ( -/turf/open/shuttle/dropship{ - icon_state = "floor8" - }, +/turf/open/shuttle/dropship/light_grey_single_wide_left_to_right, /area/shuttle/ert) "H" = ( /obj/structure/bed/chair/dropship/passenger, /obj/effect/landmark/ert_spawns/distress_pmc, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/shuttle/ert) "I" = ( /obj/structure/blocker/invisible_wall, /obj/structure/machinery/computer/shuttle/ert, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/shuttle/ert) "J" = ( /obj/effect/landmark/ert_spawns/distress_pmc, -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/light_grey_single_wide_up_to_down, /area/shuttle/ert) "K" = ( /turf/closed/shuttle/ert{ @@ -205,9 +177,7 @@ dir = 8 }, /obj/effect/landmark/ert_spawns/distress_pmc, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/shuttle/ert) "M" = ( /turf/closed/shuttle/ert{ @@ -230,9 +200,7 @@ /obj/structure/surface/rack, /obj/effect/landmark/ert_spawns/distress_pmc/item, /obj/item/storage/toolbox/syndicate, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/shuttle/ert) "R" = ( /turf/closed/shuttle/ert{ @@ -261,9 +229,7 @@ }, /area/shuttle/ert) "Y" = ( -/turf/open/shuttle/dropship{ - icon_state = "rasputin4" - }, +/turf/open/shuttle/dropship/light_grey_bottom_left, /area/shuttle/ert) "Z" = ( /turf/closed/shuttle/ert{ diff --git a/maps/shuttles/ert_response_shuttle.dmm b/maps/shuttles/ert_response_shuttle.dmm index 5f4d2b23d846..cd032707dee0 100644 --- a/maps/shuttles/ert_response_shuttle.dmm +++ b/maps/shuttles/ert_response_shuttle.dmm @@ -6,9 +6,7 @@ }, /area/shuttle/ert) "b" = ( -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/light_grey_single_wide_up_to_down, /area/shuttle/ert) "c" = ( /obj/docking_port/mobile/emergency_response/ert1, @@ -21,14 +19,10 @@ /obj/structure/machinery/door/airlock/almayer/generic{ dir = 2 }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/shuttle/ert) "f" = ( -/turf/open/shuttle/dropship{ - icon_state = "rasputin8" - }, +/turf/open/shuttle/dropship/light_grey_bottom_right, /area/shuttle/ert) "h" = ( /turf/closed/shuttle/ert{ @@ -43,9 +37,7 @@ "k" = ( /obj/structure/blocker/invisible_wall, /obj/structure/machinery/computer/shuttle/ert, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/shuttle/ert) "l" = ( /turf/closed/shuttle/ert{ @@ -59,14 +51,10 @@ /area/shuttle/ert) "o" = ( /obj/effect/landmark/ert_spawns/distress, -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/light_grey_single_wide_up_to_down, /area/shuttle/ert) "r" = ( -/turf/open/shuttle/dropship{ - icon_state = "floor8" - }, +/turf/open/shuttle/dropship/light_grey_single_wide_left_to_right, /area/shuttle/ert) "s" = ( /turf/closed/shuttle/ert{ @@ -84,9 +72,7 @@ }, /area/shuttle/ert) "v" = ( -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/shuttle/ert) "x" = ( /turf/closed/shuttle/ert{ @@ -95,9 +81,7 @@ /area/shuttle/ert) "y" = ( /obj/structure/machinery/door/airlock/almayer/generic, -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/light_grey_single_wide_up_to_down, /area/shuttle/ert) "z" = ( /turf/closed/shuttle/ert{ @@ -130,22 +114,16 @@ dir = 4 }, /obj/effect/landmark/ert_spawns/distress, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/shuttle/ert) "I" = ( /obj/structure/surface/rack, /obj/effect/landmark/ert_spawns/distress/item, /obj/item/storage/toolbox/syndicate, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/shuttle/ert) "J" = ( -/turf/open/shuttle/dropship{ - icon_state = "rasputin6" - }, +/turf/open/shuttle/dropship/light_grey_top_left, /area/shuttle/ert) "K" = ( /turf/closed/shuttle/ert{ @@ -155,9 +133,7 @@ "L" = ( /obj/structure/bed/chair/dropship/passenger, /obj/effect/landmark/ert_spawns/distress, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/shuttle/ert) "M" = ( /obj/structure/surface/rack, @@ -165,14 +141,10 @@ /obj/item/storage/firstaid/regular, /obj/item/storage/belt/medical/full/with_defib_and_analyzer, /obj/item/device/healthanalyzer, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/shuttle/ert) "N" = ( -/turf/open/shuttle/dropship{ - icon_state = "rasputin4" - }, +/turf/open/shuttle/dropship/light_grey_bottom_left, /area/shuttle/ert) "O" = ( /obj/structure/surface/rack, @@ -181,9 +153,7 @@ pixel_x = 2; pixel_y = -5 }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/shuttle/ert) "P" = ( /turf/closed/shuttle/ert{ @@ -195,9 +165,7 @@ dir = 8 }, /obj/effect/landmark/ert_spawns/distress, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/shuttle/ert) "T" = ( /turf/closed/shuttle/ert{ @@ -221,9 +189,7 @@ /turf/template_noop, /area/template_noop) "Z" = ( -/turf/open/shuttle/dropship{ - icon_state = "rasputin7" - }, +/turf/open/shuttle/dropship/light_grey_top_right, /area/shuttle/ert) (1,1,1) = {" diff --git a/maps/shuttles/ert_shuttle_big.dmm b/maps/shuttles/ert_shuttle_big.dmm index f3983899e249..0dbd1adcfb47 100644 --- a/maps/shuttles/ert_shuttle_big.dmm +++ b/maps/shuttles/ert_shuttle_big.dmm @@ -5,9 +5,7 @@ pixel_x = -5; pixel_y = -5 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/shuttle/ert) "bo" = ( /obj/effect/decal/warning_stripes{ @@ -31,9 +29,7 @@ /obj/item/ammo_magazine/pistol/mod88{ pixel_x = 5 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/shuttle/ert) "dx" = ( /obj/structure/surface/table/almayer, @@ -53,9 +49,7 @@ /obj/item/tool/pen, /obj/item/tool/pen, /obj/item/tool/pen, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/shuttle/ert) "fr" = ( /obj/effect/decal/warning_stripes{ @@ -84,12 +78,10 @@ pixel_x = -2; pixel_y = 3 }, -/obj/item/handcuffs, -/obj/item/handcuffs, -/obj/item/handcuffs, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/obj/item/restraint/handcuffs, +/obj/item/restraint/handcuffs, +/obj/item/restraint/handcuffs, +/turf/open/floor/almayer/plate, /area/shuttle/ert) "hv" = ( /obj/structure/bed/chair/office/light{ @@ -107,9 +99,7 @@ }, /obj/item/weapon/gun/shotgun/combat, /obj/item/weapon/gun/shotgun/combat, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/shuttle/ert) "hZ" = ( /obj/effect/decal/warning_stripes{ @@ -126,15 +116,11 @@ /obj/item/clothing/accessory/storage/webbing, /obj/item/cell/infinite, /obj/item/cell/infinite, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/shuttle/ert) "iu" = ( /obj/structure/surface/table/almayer, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/shuttle/ert) "iN" = ( /obj/structure/machinery/door/airlock/almayer/medical{ @@ -142,9 +128,7 @@ name = "Operating Theatre"; req_one_access = null }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/shuttle/ert) "iP" = ( /obj/structure/machinery/door/airlock/almayer/command{ @@ -155,18 +139,14 @@ /area/shuttle/ert) "ja" = ( /obj/structure/largecrate/random/barrel/blue, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/shuttle/ert) "jP" = ( /obj/structure/closet/secure_closet/securecom{ desc = "You could probably get thrown out an airlock just by looking at this..."; name = "captain's secure box" }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/shuttle/ert) "jZ" = ( /obj/structure/bed, @@ -175,18 +155,14 @@ /area/shuttle/ert) "ke" = ( /obj/structure/machinery/cryopod/right, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/shuttle/ert) "la" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/secure_data{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/shuttle/ert) "lp" = ( /obj/effect/decal/warning_stripes{ @@ -205,9 +181,7 @@ pixel_x = 2; pixel_y = -5 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/shuttle/ert) "mH" = ( /obj/effect/decal/warning_stripes{ @@ -231,9 +205,7 @@ /obj/structure/mirror{ pixel_x = 28 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/shuttle/ert) "oc" = ( /obj/structure/surface/table/almayer, @@ -245,35 +217,26 @@ /obj/item/tool/crowbar, /obj/item/tool/hand_labeler, /obj/item/tool/hand_labeler, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/shuttle/ert) "px" = ( /obj/structure/bed/chair/dropship/passenger{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/shuttle/ert) "pI" = ( /obj/structure/surface/rack, /obj/item/storage/toolbox/mechanical, /obj/item/device/radio, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/shuttle/ert) "qk" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/communications{ dir = 8 }, -/turf/open/floor{ - dir = 8; - icon_state = "carpet9-4" - }, +/turf/open/floor/carpet9_4/west, /area/shuttle/ert) "qy" = ( /obj/effect/decal/warning_stripes{ @@ -296,9 +259,7 @@ dir = 4 }, /obj/item/tool/soap, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/shuttle/ert) "rG" = ( /obj/structure/machinery/door/airlock/almayer/generic{ @@ -310,9 +271,7 @@ "rN" = ( /obj/structure/surface/table/almayer, /obj/item/storage/surgical_tray, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/shuttle/ert) "sI" = ( /obj/structure/machinery/door/airlock/almayer/generic{ @@ -322,16 +281,12 @@ /area/shuttle/ert) "sW" = ( /obj/structure/largecrate/random/case/double, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/shuttle/ert) "tf" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/card, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/shuttle/ert) "ts" = ( /obj/effect/decal/warning_stripes{ @@ -365,9 +320,7 @@ /area/shuttle/ert) "up" = ( /obj/structure/largecrate/random/barrel/red, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/shuttle/ert) "uO" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic2{ @@ -383,9 +336,7 @@ /turf/open/floor/wood, /area/shuttle/ert) "vk" = ( -/turf/open/floor/almayer{ - icon_state = "tcomms" - }, +/turf/open/floor/almayer/tcomms, /area/shuttle/ert) "vl" = ( /obj/structure/machinery/cm_vending/sorted/tech/electronics_storage, @@ -394,9 +345,7 @@ name = "General Listening Channel"; pixel_x = -28 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/shuttle/ert) "vA" = ( /obj/structure/bed/chair/office/light{ @@ -409,9 +358,7 @@ /area/shuttle/ert) "wK" = ( /obj/structure/machinery/computer/crew, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/shuttle/ert) "xK" = ( /obj/structure/window/framed/almayer/white, @@ -422,9 +369,7 @@ dir = 8; pixel_x = -11 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/shuttle/ert) "yQ" = ( /obj/effect/decal/warning_stripes{ @@ -440,9 +385,7 @@ "zd" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/communications, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/shuttle/ert) "zT" = ( /obj/structure/surface/rack, @@ -452,9 +395,7 @@ /obj/item/clothing/accessory/storage/webbing, /obj/item/clothing/glasses/welding, /obj/item/clothing/glasses/welding, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/shuttle/ert) "zZ" = ( /obj/structure/window/framed/almayer/white/hull, @@ -467,9 +408,7 @@ /area/shuttle/ert) "AE" = ( /obj/structure/largecrate/random/case/small, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/shuttle/ert) "AT" = ( /obj/effect/decal/warning_stripes{ @@ -489,10 +428,7 @@ "AZ" = ( /obj/structure/surface/table/almayer, /obj/item/device/flashlight/lamp/green, -/turf/open/floor{ - dir = 8; - icon_state = "carpet10-8" - }, +/turf/open/floor/carpet10_8/west, /area/shuttle/ert) "Bq" = ( /obj/effect/decal/warning_stripes{ @@ -535,22 +471,16 @@ /obj/item/storage/box/m94, /obj/item/storage/box/m94, /obj/item/storage/box/zipcuffs, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/shuttle/ert) "DC" = ( /obj/structure/closet/secure_closet/personal, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/shuttle/ert) "DO" = ( /obj/structure/surface/table/almayer, /obj/item/device/flashlight/lamp, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/shuttle/ert) "ER" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic2{ @@ -567,15 +497,11 @@ name = "Operating Theatre"; req_one_access = null }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/shuttle/ert) "Ik" = ( /obj/structure/closet, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/shuttle/ert) "JE" = ( /obj/effect/decal/warning_stripes{ @@ -598,9 +524,7 @@ /obj/structure/bed/chair/dropship/passenger{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/shuttle/ert) "Kg" = ( /obj/structure/machinery/door/airlock/almayer/generic{ @@ -632,21 +556,15 @@ /area/shuttle/ert) "KS" = ( /obj/structure/surface/rack, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/shuttle/ert) "Lk" = ( /obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/shuttle/ert) "LB" = ( /obj/structure/largecrate/random/barrel/white, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/shuttle/ert) "Ml" = ( /turf/closed/wall/almayer/white, @@ -656,26 +574,20 @@ /obj/structure/machinery/computer/med_data/laptop{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/shuttle/ert) "MH" = ( /obj/structure/machinery/optable, /obj/item/tank/anesthetic, /obj/item/clothing/mask/breath/medical, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/shuttle/ert) "Nt" = ( /obj/structure/surface/rack, /obj/item/ammo_magazine/smg/m39, /obj/item/ammo_magazine/smg/m39, /obj/item/weapon/gun/smg/m39/elite, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/shuttle/ert) "NB" = ( /obj/structure/machinery/door/airlock/almayer/engineering{ @@ -696,16 +608,12 @@ /obj/item/tool/pen, /obj/item/tool/pen, /obj/item/tool/pen, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/shuttle/ert) "OF" = ( /obj/structure/surface/table/almayer, /obj/item/clothing/suit/armor/bulletproof, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/shuttle/ert) "Pf" = ( /obj/structure/machinery/door/airlock/almayer/generic{ @@ -721,9 +629,7 @@ /turf/closed/wall/almayer/white/hull, /area/shuttle/ert) "Qr" = ( -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/shuttle/ert) "Qx" = ( /obj/structure/machinery/door/airlock/almayer/command{ @@ -735,9 +641,7 @@ /obj/structure/surface/rack, /obj/item/storage/firstaid/regular, /obj/item/storage/belt/medical/lifesaver/full, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/shuttle/ert) "QM" = ( /obj/structure/surface/table/almayer, @@ -771,17 +675,13 @@ }, /obj/item/stack/cable_coil, /obj/item/stack/cable_coil, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/shuttle/ert) "QQ" = ( /obj/structure/machinery/bioprinter{ stored_metal = 1000 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/shuttle/ert) "Ro" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic2{ @@ -811,9 +711,7 @@ /area/shuttle/ert) "So" = ( /obj/structure/closet/crate, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/shuttle/ert) "SQ" = ( /obj/structure/surface/table/almayer, @@ -830,9 +728,7 @@ /obj/item/device/radio, /obj/item/device/radio, /obj/item/device/radio, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/shuttle/ert) "SZ" = ( /obj/effect/decal/warning_stripes{ @@ -848,27 +744,20 @@ "Tj" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/shuttle/ert/big, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/shuttle/ert) "Tp" = ( /turf/template_noop, /area/template_noop) "Tq" = ( /obj/structure/bed/chair/dropship/passenger, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/shuttle/ert) "Tv" = ( /obj/structure/bed/chair/office/light{ dir = 4 }, -/turf/open/floor{ - dir = 8; - icon_state = "carpet6-2" - }, +/turf/open/floor/carpet6_2/west, /area/shuttle/ert) "TF" = ( /obj/structure/surface/table/almayer, @@ -882,9 +771,7 @@ desc = "Someone has crossed out the Space from Space Cleaner and written in Surgery. 'Do not remove under punishment of death!!!' is scrawled on the back."; name = "Surgery Cleaner" }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/shuttle/ert) "TJ" = ( /obj/effect/decal/warning_stripes{ @@ -911,9 +798,7 @@ /area/shuttle/ert) "Uq" = ( /obj/structure/machinery/cm_vending/sorted/medical/no_access, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/shuttle/ert) "Vw" = ( /obj/structure/reagent_dispensers/watertank, @@ -921,9 +806,7 @@ /obj/item/clothing/mask/gas, /obj/item/tool/extinguisher, /obj/item/tool/extinguisher, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/shuttle/ert) "VW" = ( /obj/structure/surface/table/almayer, @@ -934,10 +817,7 @@ /obj/item/map/current_map{ pixel_y = -5 }, -/turf/open/floor{ - dir = 8; - icon_state = "carpet5-1" - }, +/turf/open/floor/carpet5_1/west, /area/shuttle/ert) "WR" = ( /obj/structure/surface/table/almayer, @@ -945,17 +825,13 @@ network = list("Military","Almayer"); dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/shuttle/ert) "WW" = ( /obj/structure/toilet{ dir = 8 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/shuttle/ert) "XW" = ( /obj/structure/sink{ @@ -964,9 +840,7 @@ /obj/structure/mirror{ pixel_y = 30 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/shuttle/ert) "Yo" = ( /obj/effect/decal/warning_stripes{ @@ -984,23 +858,17 @@ /obj/structure/machinery/power/apc/almayer{ cell_type = /obj/item/cell/hyper }, -/turf/open/floor/almayer{ - icon_state = "tcomms" - }, +/turf/open/floor/almayer/tcomms, /area/shuttle/ert) "Zl" = ( /obj/structure/bed/chair/dropship/passenger{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/shuttle/ert) "Zy" = ( /obj/structure/machinery/autolathe, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/shuttle/ert) (1,1,1) = {" diff --git a/maps/shuttles/ert_small_shuttle_north.dmm b/maps/shuttles/ert_small_shuttle_north.dmm index 0fa2e534dbe3..fa093e316520 100644 --- a/maps/shuttles/ert_small_shuttle_north.dmm +++ b/maps/shuttles/ert_small_shuttle_north.dmm @@ -37,9 +37,7 @@ network = list("Military","Almayer"); dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "tcomms" - }, +/turf/open/floor/almayer/tcomms, /area/shuttle/ert) "o" = ( /turf/closed/wall/r_wall/biodome/biodome_unmeltable, @@ -80,9 +78,7 @@ icon_state = "N"; dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "tcomms" - }, +/turf/open/floor/almayer/tcomms, /area/shuttle/ert) "v" = ( /obj/structure/closet/hydrant{ @@ -123,9 +119,7 @@ /obj/structure/machinery/cm_vending/sorted/medical/wall_med/lifeboat{ pixel_x = 32 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/shuttle/ert) "C" = ( /obj/docking_port/mobile/emergency_response/small, @@ -135,16 +129,12 @@ /obj/structure/bed/chair/dropship/passenger{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/shuttle/ert) "E" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/shuttle/ert/small, -/turf/open/floor/almayer{ - icon_state = "tcomms" - }, +/turf/open/floor/almayer/tcomms, /area/shuttle/ert) "F" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic2{ @@ -168,9 +158,7 @@ pixel_x = -1; dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "tcomms" - }, +/turf/open/floor/almayer/tcomms, /area/shuttle/ert) "I" = ( /obj/structure/machinery/door/airlock/almayer/generic/autoname{ @@ -189,9 +177,7 @@ "K" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/crew/alt, -/turf/open/floor/almayer{ - icon_state = "tcomms" - }, +/turf/open/floor/almayer/tcomms, /area/shuttle/ert) "O" = ( /turf/open/floor/plating/almayer, @@ -201,9 +187,7 @@ /obj/structure/machinery/computer/station_alert{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "tcomms" - }, +/turf/open/floor/almayer/tcomms, /area/shuttle/ert) "W" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic2{ diff --git a/maps/shuttles/ert_twe_shuttle.dmm b/maps/shuttles/ert_twe_shuttle.dmm index 7e518ae9af66..120aa8e55399 100644 --- a/maps/shuttles/ert_twe_shuttle.dmm +++ b/maps/shuttles/ert_twe_shuttle.dmm @@ -1,8 +1,6 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE "a" = ( -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/shuttle/ert) "b" = ( /turf/closed/shuttle/ert{ @@ -11,27 +9,19 @@ /area/shuttle/ert) "e" = ( /obj/effect/landmark/ert_spawns/distress_twe, -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/light_grey_single_wide_up_to_down, /area/shuttle/ert) "f" = ( -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/light_grey_single_wide_up_to_down, /area/shuttle/ert) "g" = ( /obj/structure/surface/rack, /obj/item/storage/toolbox/syndicate, /obj/item/storage/toolbox/syndicate, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/shuttle/ert) "h" = ( -/turf/open/shuttle/dropship{ - icon_state = "floor8" - }, +/turf/open/shuttle/dropship/light_grey_single_wide_left_to_right, /area/shuttle/ert) "i" = ( /turf/closed/shuttle/ert{ @@ -61,9 +51,7 @@ }, /area/shuttle/ert) "p" = ( -/turf/open/shuttle/dropship{ - icon_state = "rasputin8" - }, +/turf/open/shuttle/dropship/light_grey_bottom_right, /area/shuttle/ert) "q" = ( /obj/docking_port/mobile/emergency_response/ert4, @@ -75,23 +63,17 @@ "r" = ( /obj/structure/blocker/invisible_wall, /obj/structure/machinery/computer/shuttle/ert, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/shuttle/ert) "s" = ( -/turf/open/shuttle/dropship{ - icon_state = "rasputin7" - }, +/turf/open/shuttle/dropship/light_grey_top_right, /area/shuttle/ert) "t" = ( /obj/structure/surface/rack, /obj/item/storage/firstaid/regular, /obj/item/storage/belt/medical/lifesaver/full, /obj/item/device/healthanalyzer, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/shuttle/ert) "v" = ( /turf/closed/shuttle/ert{ @@ -121,9 +103,7 @@ /area/shuttle/ert) "D" = ( /obj/structure/machinery/door/airlock/almayer/generic, -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/light_grey_single_wide_up_to_down, /area/shuttle/ert) "E" = ( /turf/closed/shuttle/ert{ @@ -145,9 +125,7 @@ dir = 8 }, /obj/effect/landmark/ert_spawns/distress_twe, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/shuttle/ert) "J" = ( /turf/closed/shuttle/ert{ @@ -155,22 +133,16 @@ }, /area/shuttle/ert) "K" = ( -/turf/open/shuttle/dropship{ - icon_state = "rasputin4" - }, +/turf/open/shuttle/dropship/light_grey_bottom_left, /area/shuttle/ert) "L" = ( -/turf/open/shuttle/dropship{ - icon_state = "rasputin6" - }, +/turf/open/shuttle/dropship/light_grey_top_left, /area/shuttle/ert) "M" = ( /obj/structure/machinery/door/airlock/almayer/generic{ dir = 2 }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/shuttle/ert) "N" = ( /turf/closed/shuttle/ert{ @@ -183,9 +155,7 @@ "P" = ( /obj/structure/bed/chair/dropship/passenger, /obj/effect/landmark/ert_spawns/distress_twe, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/shuttle/ert) "T" = ( /turf/closed/shuttle/ert{ @@ -209,9 +179,7 @@ dir = 4 }, /obj/effect/landmark/ert_spawns/distress_twe, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/shuttle/ert) "X" = ( /turf/closed/shuttle/ert{ @@ -222,9 +190,7 @@ /obj/structure/surface/rack, /obj/item/storage/backpack/rmc/frame, /obj/item/ammo_box/magazine/misc/mre, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/shuttle/ert) (1,1,1) = {" diff --git a/maps/shuttles/ert_upp_shuttle.dmm b/maps/shuttles/ert_upp_shuttle.dmm index 57d93e21ff1f..30abbd1925ce 100644 --- a/maps/shuttles/ert_upp_shuttle.dmm +++ b/maps/shuttles/ert_upp_shuttle.dmm @@ -5,9 +5,7 @@ }, /area/shuttle/ert) "c" = ( -/turf/open/shuttle/dropship{ - icon_state = "rasputin7" - }, +/turf/open/shuttle/dropship/light_grey_top_right, /area/shuttle/ert) "e" = ( /obj/docking_port/mobile/emergency_response/ert3, @@ -26,14 +24,10 @@ dir = 8 }, /obj/effect/landmark/ert_spawns/distress_upp, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/shuttle/ert) "i" = ( -/turf/open/shuttle/dropship{ - icon_state = "rasputin4" - }, +/turf/open/shuttle/dropship/light_grey_bottom_left, /area/shuttle/ert) "j" = ( /turf/closed/shuttle/ert{ @@ -41,9 +35,7 @@ }, /area/shuttle/ert) "k" = ( -/turf/open/shuttle/dropship{ - icon_state = "floor8" - }, +/turf/open/shuttle/dropship/light_grey_single_wide_left_to_right, /area/shuttle/ert) "l" = ( /turf/closed/shuttle/ert{ @@ -62,9 +54,7 @@ /obj/effect/landmark/ert_spawns/distress_upp/item, /obj/item/storage/belt/medical/lifesaver/upp/full, /obj/item/device/healthanalyzer, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/shuttle/ert) "p" = ( /turf/closed/shuttle/ert{ @@ -83,9 +73,7 @@ }, /area/shuttle/ert) "s" = ( -/turf/open/shuttle/dropship{ - icon_state = "rasputin6" - }, +/turf/open/shuttle/dropship/light_grey_top_left, /area/shuttle/ert) "u" = ( /turf/closed/shuttle/ert{ @@ -127,17 +115,13 @@ dir = 4 }, /obj/effect/landmark/ert_spawns/distress_upp, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/shuttle/ert) "C" = ( /obj/structure/surface/rack, /obj/effect/landmark/ert_spawns/distress_upp/item, /obj/item/storage/toolbox/syndicate, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/shuttle/ert) "E" = ( /turf/closed/shuttle/ert{ @@ -152,9 +136,7 @@ /area/shuttle/ert) "G" = ( /obj/structure/machinery/door/airlock/almayer/generic, -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/light_grey_single_wide_up_to_down, /area/shuttle/ert) "I" = ( /turf/closed/shuttle/ert{ @@ -168,22 +150,16 @@ pixel_y = -5 }, /obj/effect/landmark/ert_spawns/distress_upp/item, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/shuttle/ert) "K" = ( /turf/template_noop, /area/template_noop) "N" = ( -/turf/open/shuttle/dropship{ - icon_state = "rasputin8" - }, +/turf/open/shuttle/dropship/light_grey_bottom_right, /area/shuttle/ert) "O" = ( -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/light_grey_single_wide_up_to_down, /area/shuttle/ert) "P" = ( /turf/closed/shuttle/ert{ @@ -198,21 +174,15 @@ /area/shuttle/ert) "R" = ( /obj/effect/landmark/ert_spawns/distress_upp, -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/light_grey_single_wide_up_to_down, /area/shuttle/ert) "S" = ( /obj/structure/bed/chair/dropship/passenger, /obj/effect/landmark/ert_spawns/distress_upp, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/shuttle/ert) "T" = ( -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/shuttle/ert) "V" = ( /turf/closed/shuttle/ert{ @@ -223,17 +193,13 @@ "X" = ( /obj/structure/blocker/invisible_wall, /obj/structure/machinery/computer/shuttle/ert, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/shuttle/ert) "Y" = ( /obj/structure/machinery/door/airlock/almayer/generic{ dir = 2 }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/shuttle/ert) "Z" = ( /obj/structure/surface/rack, @@ -241,9 +207,7 @@ /obj/item/storage/firstaid/regular, /obj/item/storage/belt/medical/lifesaver/upp/full, /obj/item/device/healthanalyzer, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/shuttle/ert) (1,1,1) = {" diff --git a/maps/shuttles/escape_shuttle_e.dmm b/maps/shuttles/escape_shuttle_e.dmm index 0ba589df217e..75810c84345b 100644 --- a/maps/shuttles/escape_shuttle_e.dmm +++ b/maps/shuttles/escape_shuttle_e.dmm @@ -9,19 +9,14 @@ icon_state = "wall2" }, /area/shuttle/escape_pod) -"e" = ( -/obj/docking_port/mobile/crashable/escape_shuttle/e, -/turf/closed/shuttle/escapepod{ - icon_state = "wall9" - }, +"f" = ( +/turf/open/shuttle/escapepod/floor0/west, /area/shuttle/escape_pod) "i" = ( /obj/structure/machinery/door/airlock/evacuation{ name = "\improper Evacuation Airlock SU-1" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/shuttle/escape_pod) "k" = ( /turf/closed/shuttle/escapepod{ @@ -29,9 +24,7 @@ }, /area/shuttle/escape_pod) "o" = ( -/turf/open/shuttle/escapepod{ - icon_state = "floor1" - }, +/turf/open/shuttle/escapepod/floor1, /area/shuttle/escape_pod) "q" = ( /turf/closed/shuttle/escapepod{ @@ -53,10 +46,6 @@ icon_state = "wall13" }, /area/shuttle/escape_pod) -"z" = ( -/obj/structure/machinery/cryopod/evacuation, -/turf/open/shuttle/escapepod, -/area/shuttle/escape_pod) "E" = ( /turf/closed/shuttle/escapepod{ icon_state = "wall10" @@ -67,25 +56,28 @@ icon_state = "wall11" }, /area/shuttle/escape_pod) -"L" = ( +"M" = ( /obj/structure/machinery/cryopod/evacuation, -/obj/structure/sign/safety/cryo{ - pixel_x = -18 - }, -/turf/open/shuttle/escapepod, +/turf/open/shuttle/escapepod/floor4, /area/shuttle/escape_pod) -"N" = ( -/turf/open/shuttle/escapepod{ - icon_state = "floor10" +"O" = ( +/obj/docking_port/mobile/crashable/escape_shuttle/e, +/turf/closed/shuttle/escapepod{ + icon_state = "wall9" }, /area/shuttle/escape_pod) "Q" = ( /obj/structure/machinery/computer/shuttle/escape_pod_panel{ pixel_y = 30 }, -/turf/open/shuttle/escapepod{ - icon_state = "floor0" +/turf/open/shuttle/escapepod/floor0, +/area/shuttle/escape_pod) +"T" = ( +/obj/structure/machinery/cryopod/evacuation, +/obj/structure/sign/safety/cryo{ + pixel_x = -18 }, +/turf/open/shuttle/escapepod/floor4, /area/shuttle/escape_pod) "W" = ( /turf/closed/shuttle/escapepod{ @@ -98,20 +90,20 @@ w t I E -e +O "} (2,1,1) = {" k -z -L -z +M +T +M s "} (3,1,1) = {" d Q o -N +f s "} (4,1,1) = {" diff --git a/maps/shuttles/escape_shuttle_e_cl.dmm b/maps/shuttles/escape_shuttle_e_cl.dmm index 490f0abdfa95..86d557c88a24 100644 --- a/maps/shuttles/escape_shuttle_e_cl.dmm +++ b/maps/shuttles/escape_shuttle_e_cl.dmm @@ -6,9 +6,7 @@ }, /area/shuttle/escape_pod) "b" = ( -/turf/open/shuttle/escapepod{ - icon_state = "floor1" - }, +/turf/open/shuttle/escapepod/floor1, /area/shuttle/escape_pod) "c" = ( /turf/closed/shuttle/escapepod{ @@ -25,38 +23,24 @@ icon_state = "wall13" }, /area/shuttle/escape_pod) -"i" = ( -/obj/structure/machinery/cryopod/evacuation, -/obj/structure/sign/safety/cryo{ - pixel_x = -18 - }, -/turf/open/shuttle/escapepod, +"n" = ( +/turf/open/shuttle/escapepod/floor0/west, /area/shuttle/escape_pod) "s" = ( /turf/closed/shuttle/escapepod{ icon_state = "wall2" }, /area/shuttle/escape_pod) -"u" = ( +"z" = ( /obj/structure/machinery/cryopod/evacuation, -/turf/open/shuttle/escapepod, +/turf/open/shuttle/escapepod/floor4, /area/shuttle/escape_pod) -"v" = ( -/obj/structure/machinery/computer/shuttle/escape_pod_panel/liaison{ - pixel_y = 30 - }, -/turf/open/shuttle/escapepod{ - icon_state = "floor0" - }, -/area/shuttle/escape_pod) -"y" = ( +"D" = ( /obj/structure/machinery/door/airlock/evacuation/liaison{ name = "\improper Evacuation Airlock CL-1"; id_tag = "cl_evac" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/shuttle/escape_pod) "E" = ( /turf/closed/shuttle/escapepod{ @@ -68,11 +52,6 @@ icon_state = "wall6" }, /area/shuttle/escape_pod) -"K" = ( -/turf/open/shuttle/escapepod{ - icon_state = "floor10" - }, -/area/shuttle/escape_pod) "O" = ( /turf/closed/shuttle/escapepod{ icon_state = "wall4" @@ -88,11 +67,24 @@ icon_state = "wall12" }, /area/shuttle/escape_pod) +"T" = ( +/obj/structure/machinery/cryopod/evacuation, +/obj/structure/sign/safety/cryo{ + pixel_x = -18 + }, +/turf/open/shuttle/escapepod/floor4, +/area/shuttle/escape_pod) "X" = ( /turf/closed/shuttle/escapepod{ icon_state = "wall10" }, /area/shuttle/escape_pod) +"Z" = ( +/obj/structure/machinery/computer/shuttle/escape_pod_panel/liaison{ + pixel_y = 30 + }, +/turf/open/shuttle/escapepod/floor0, +/area/shuttle/escape_pod) (1,1,1) = {" h @@ -103,22 +95,22 @@ a "} (2,1,1) = {" Q -u -i -u +z +T +z E "} (3,1,1) = {" s -v +Z b -K +n E "} (4,1,1) = {" g O O -y +D I "} diff --git a/maps/shuttles/escape_shuttle_n.dmm b/maps/shuttles/escape_shuttle_n.dmm index 71f8515daba8..eb3b259a546c 100644 --- a/maps/shuttles/escape_shuttle_n.dmm +++ b/maps/shuttles/escape_shuttle_n.dmm @@ -1,23 +1,4 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE -"a" = ( -/turf/closed/shuttle/escapepod{ - icon_state = "wall6" - }, -/area/shuttle/escape_pod) -"c" = ( -/obj/docking_port/mobile/crashable/escape_shuttle/n, -/turf/closed/shuttle/escapepod{ - icon_state = "wall9" - }, -/area/shuttle/escape_pod) -"f" = ( -/obj/structure/machinery/computer/shuttle/escape_pod_panel{ - pixel_y = 30 - }, -/turf/open/shuttle/escapepod{ - icon_state = "floor7" - }, -/area/shuttle/escape_pod) "g" = ( /turf/closed/shuttle/escapepod, /area/shuttle/escape_pod) @@ -26,33 +7,57 @@ icon_state = "wall1" }, /area/shuttle/escape_pod) -"j" = ( -/turf/open/shuttle/escapepod{ - icon_state = "floor9" - }, -/area/shuttle/escape_pod) "k" = ( /obj/structure/machinery/door/airlock/evacuation{ dir = 2; name = "\improper Evacuation Airlock PU-3" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/shuttle/escape_pod) "l" = ( /turf/closed/shuttle/escapepod{ icon_state = "wall2" }, /area/shuttle/escape_pod) +"n" = ( +/turf/open/shuttle/escapepod/floor0, +/area/shuttle/escape_pod) +"p" = ( +/obj/structure/machinery/computer/shuttle/escape_pod_panel{ + pixel_y = 30 + }, +/turf/open/shuttle/escapepod/floor2, +/area/shuttle/escape_pod) +"v" = ( +/obj/docking_port/mobile/crashable/escape_shuttle/n, +/turf/closed/shuttle/escapepod{ + icon_state = "wall9" + }, +/area/shuttle/escape_pod) +"x" = ( +/obj/structure/machinery/cryopod/evacuation, +/turf/open/shuttle/escapepod/floor4, +/area/shuttle/escape_pod) +"z" = ( +/obj/structure/machinery/cryopod/evacuation, +/obj/structure/sign/safety/cryo{ + pixel_x = 8; + pixel_y = -28 + }, +/turf/open/shuttle/escapepod/floor4, +/area/shuttle/escape_pod) +"D" = ( +/turf/open/shuttle/escapepod/east, +/area/shuttle/escape_pod) "F" = ( /turf/closed/shuttle/escapepod{ icon_state = "wall3" }, /area/shuttle/escape_pod) -"H" = ( -/obj/structure/machinery/cryopod/evacuation, -/turf/open/shuttle/escapepod, +"K" = ( +/turf/closed/shuttle/escapepod{ + icon_state = "wall6" + }, /area/shuttle/escape_pod) "L" = ( /turf/closed/shuttle/escapepod{ @@ -64,19 +69,6 @@ icon_state = "wall11" }, /area/shuttle/escape_pod) -"V" = ( -/obj/structure/machinery/cryopod/evacuation, -/obj/structure/sign/safety/cryo{ - pixel_x = 8; - pixel_y = -35 - }, -/turf/open/shuttle/escapepod, -/area/shuttle/escape_pod) -"W" = ( -/turf/open/shuttle/escapepod{ - icon_state = "floor8" - }, -/area/shuttle/escape_pod) "Y" = ( /turf/closed/shuttle/escapepod{ icon_state = "wall4" @@ -87,29 +79,29 @@ g Q Q -c +v "} (2,1,1) = {" i -f -H +p +x L "} (3,1,1) = {" k -W -V +D +z L "} (4,1,1) = {" l -j -H +n +x L "} (5,1,1) = {" F Y Y -a +K "} diff --git a/maps/shuttles/escape_shuttle_s.dmm b/maps/shuttles/escape_shuttle_s.dmm index 82391a5218d5..689a6e78c516 100644 --- a/maps/shuttles/escape_shuttle_s.dmm +++ b/maps/shuttles/escape_shuttle_s.dmm @@ -4,20 +4,24 @@ icon_state = "wall1" }, /area/shuttle/escape_pod) -"f" = ( -/turf/open/shuttle/escapepod{ - icon_state = "floor12" - }, -/area/shuttle/escape_pod) -"g" = ( +"c" = ( /obj/structure/machinery/cryopod/evacuation, -/turf/open/shuttle/escapepod, +/turf/open/shuttle/escapepod/floor4, /area/shuttle/escape_pod) "n" = ( /turf/closed/shuttle/escapepod{ icon_state = "wall2" }, /area/shuttle/escape_pod) +"o" = ( +/obj/docking_port/mobile/crashable/escape_shuttle/s, +/turf/closed/shuttle/escapepod{ + icon_state = "wall9" + }, +/area/shuttle/escape_pod) +"q" = ( +/turf/open/shuttle/escapepod/floor0/north, +/area/shuttle/escape_pod) "v" = ( /turf/closed/shuttle/escapepod{ icon_state = "wall15" @@ -33,11 +37,22 @@ icon_state = "wall6" }, /area/shuttle/escape_pod) +"B" = ( +/obj/structure/machinery/cryopod/evacuation, +/obj/structure/sign/safety/cryo{ + pixel_x = 8; + pixel_y = 28 + }, +/turf/open/shuttle/escapepod/floor4, +/area/shuttle/escape_pod) "D" = ( /turf/closed/shuttle/escapepod{ icon_state = "wall10" }, /area/shuttle/escape_pod) +"I" = ( +/turf/open/shuttle/escapepod/west, +/area/shuttle/escape_pod) "J" = ( /turf/closed/shuttle/escapepod{ icon_state = "wall14" @@ -48,70 +63,47 @@ icon_state = "wall4" }, /area/shuttle/escape_pod) -"P" = ( -/turf/open/shuttle/escapepod{ - icon_state = "floor11" +"N" = ( +/obj/structure/machinery/computer/shuttle/escape_pod_panel{ + pixel_x = 30 }, +/turf/open/shuttle/escapepod/floor0/west, /area/shuttle/escape_pod) "Q" = ( /turf/closed/shuttle/escapepod{ icon_state = "wall13" }, /area/shuttle/escape_pod) -"R" = ( -/obj/structure/machinery/computer/shuttle/escape_pod_panel{ - pixel_x = 30 - }, -/turf/open/shuttle/escapepod{ - icon_state = "floor2" - }, -/area/shuttle/escape_pod) "T" = ( /obj/structure/machinery/door/airlock/evacuation{ dir = 2; name = "\improper Evacuation Airlock PU-6" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/shuttle/escape_pod) -"U" = ( -/obj/docking_port/mobile/crashable/escape_shuttle/s, -/turf/closed/shuttle/escapepod{ - icon_state = "wall9" - }, -/area/shuttle/escape_pod) -"V" = ( -/obj/structure/machinery/cryopod/evacuation, -/obj/structure/sign/safety/cryo{ - pixel_x = 8; - pixel_y = 28 - }, -/turf/open/shuttle/escapepod, +/turf/open/floor/almayer/test_floor4, /area/shuttle/escape_pod) (1,1,1) = {" Q D D -U +o "} (2,1,1) = {" n -g -f +c +q v "} (3,1,1) = {" a -V -P +B +I T "} (4,1,1) = {" n -g -R +c +N J "} (5,1,1) = {" diff --git a/maps/shuttles/escape_shuttle_w.dmm b/maps/shuttles/escape_shuttle_w.dmm index 8f81c83b500b..92d35725117c 100644 --- a/maps/shuttles/escape_shuttle_w.dmm +++ b/maps/shuttles/escape_shuttle_w.dmm @@ -1,10 +1,4 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE -"a" = ( -/obj/docking_port/mobile/crashable/escape_shuttle/w, -/turf/closed/shuttle/escapepod{ - icon_state = "wall9" - }, -/area/shuttle/escape_pod) "b" = ( /turf/closed/shuttle/escapepod{ icon_state = "wall8" @@ -15,6 +9,12 @@ icon_state = "wall6" }, /area/shuttle/escape_pod) +"g" = ( +/obj/docking_port/mobile/crashable/escape_shuttle/w, +/turf/closed/shuttle/escapepod{ + icon_state = "wall9" + }, +/area/shuttle/escape_pod) "j" = ( /turf/closed/shuttle/escapepod{ icon_state = "wall7" @@ -30,6 +30,13 @@ icon_state = "wall2" }, /area/shuttle/escape_pod) +"r" = ( +/obj/structure/machinery/cryopod/evacuation, +/turf/open/shuttle/escapepod/floor4, +/area/shuttle/escape_pod) +"A" = ( +/turf/open/shuttle/escapepod/floor0/north, +/area/shuttle/escape_pod) "B" = ( /turf/closed/shuttle/escapepod{ icon_state = "wall10" @@ -45,21 +52,14 @@ icon_state = "wall4" }, /area/shuttle/escape_pod) -"H" = ( -/turf/open/shuttle/escapepod{ - icon_state = "floor5" - }, -/area/shuttle/escape_pod) -"I" = ( -/obj/structure/machinery/cryopod/evacuation, -/obj/structure/sign/safety/cryo{ - pixel_x = 36 +"N" = ( +/obj/structure/machinery/computer/shuttle/escape_pod_panel{ + pixel_y = 30 }, -/turf/open/shuttle/escapepod, +/turf/open/shuttle/escapepod/floor2, /area/shuttle/escape_pod) -"M" = ( -/obj/structure/machinery/cryopod/evacuation, -/turf/open/shuttle/escapepod, +"O" = ( +/turf/open/shuttle/escapepod/north, /area/shuttle/escape_pod) "P" = ( /turf/closed/shuttle/escapepod{ @@ -70,22 +70,14 @@ /obj/structure/machinery/door/airlock/evacuation{ name = "\improper Evacuation Airlock PL-3" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/shuttle/escape_pod) -"V" = ( -/obj/structure/machinery/computer/shuttle/escape_pod_panel{ - pixel_y = 30 - }, -/turf/open/shuttle/escapepod{ - icon_state = "floor4" - }, -/area/shuttle/escape_pod) -"W" = ( -/turf/open/shuttle/escapepod{ - icon_state = "floor12" +"T" = ( +/obj/structure/machinery/cryopod/evacuation, +/obj/structure/sign/safety/cryo{ + pixel_x = 36 }, +/turf/open/shuttle/escapepod/floor4, /area/shuttle/escape_pod) (1,1,1) = {" @@ -93,20 +85,20 @@ P B S B -a +g "} (2,1,1) = {" F -V -H -W +N +O +A b "} (3,1,1) = {" p -M -I -M +r +T +r j "} (4,1,1) = {" diff --git a/maps/shuttles/lifeboat-port-archive.dmm b/maps/shuttles/lifeboat-port-archive.dmm index 7279e78237b6..12e5e35d3c6e 100644 --- a/maps/shuttles/lifeboat-port-archive.dmm +++ b/maps/shuttles/lifeboat-port-archive.dmm @@ -21,10 +21,7 @@ }, /area/shuttle/lifeboat) "dt" = ( -/turf/open/shuttle/lifeboat{ - dir = 1; - icon_state = "plating_striped" - }, +/turf/open/shuttle/lifeboat/plating_striped/north, /area/shuttle/lifeboat) "en" = ( /turf/closed/shuttle/lifeboat{ @@ -107,9 +104,7 @@ }, /area/shuttle/lifeboat) "nn" = ( -/turf/open/shuttle/lifeboat{ - icon_state = "plate" - }, +/turf/open/shuttle/lifeboat/plate, /area/shuttle/lifeboat) "on" = ( /turf/closed/shuttle/lifeboat/transparent{ @@ -239,9 +234,7 @@ id = "Boat1-D1"; throw_dir = 1 }, -/turf/open/shuttle/lifeboat{ - icon_state = "test_floor4" - }, +/turf/open/shuttle/lifeboat/test_floor4, /area/shuttle/lifeboat) "CI" = ( /turf/template_noop, @@ -300,9 +293,7 @@ /turf/closed/shuttle/lifeboat, /area/shuttle/lifeboat) "Jg" = ( -/turf/open/shuttle/escapepod{ - icon_state = "floor8" - }, +/turf/open/shuttle/escapepod/floor8, /area/shuttle/lifeboat) "Jw" = ( /turf/closed/shuttle/lifeboat{ @@ -325,14 +316,10 @@ id = "Boat1-D2"; throw_dir = 1 }, -/turf/open/shuttle/lifeboat{ - icon_state = "test_floor4" - }, +/turf/open/shuttle/lifeboat/test_floor4, /area/shuttle/lifeboat) "Nm" = ( -/turf/open/shuttle/lifeboat{ - icon_state = "test_floor4" - }, +/turf/open/shuttle/lifeboat/test_floor4, /area/shuttle/lifeboat) "Ob" = ( /turf/closed/shuttle/lifeboat{ diff --git a/maps/shuttles/lifeboat-port.dmm b/maps/shuttles/lifeboat-port.dmm index 0117730f6971..7f6ef22b608b 100644 --- a/maps/shuttles/lifeboat-port.dmm +++ b/maps/shuttles/lifeboat-port.dmm @@ -21,10 +21,7 @@ }, /area/shuttle/lifeboat) "dt" = ( -/turf/open/shuttle/lifeboat{ - dir = 1; - icon_state = "plating_striped" - }, +/turf/open/shuttle/lifeboat/plating_striped/north, /area/shuttle/lifeboat) "en" = ( /turf/closed/shuttle/lifeboat{ @@ -107,9 +104,7 @@ }, /area/shuttle/lifeboat) "nn" = ( -/turf/open/shuttle/lifeboat{ - icon_state = "plate" - }, +/turf/open/shuttle/lifeboat/plate, /area/shuttle/lifeboat) "on" = ( /turf/closed/shuttle/lifeboat/transparent{ @@ -117,9 +112,7 @@ }, /area/shuttle/lifeboat) "pH" = ( -/turf/open/shuttle/lifeboat{ - icon_state = "plating_striped" - }, +/turf/open/shuttle/lifeboat/plating_striped, /area/shuttle/lifeboat) "qA" = ( /turf/closed/shuttle/lifeboat{ @@ -251,9 +244,7 @@ id = "Boat1-D1"; throw_dir = 1 }, -/turf/open/shuttle/lifeboat{ - icon_state = "test_floor4" - }, +/turf/open/shuttle/lifeboat/test_floor4, /area/shuttle/lifeboat) "CI" = ( /turf/template_noop, @@ -319,9 +310,7 @@ /turf/closed/shuttle/lifeboat, /area/shuttle/lifeboat) "Jg" = ( -/turf/open/shuttle/escapepod{ - icon_state = "floor8" - }, +/turf/open/shuttle/escapepod/floor1/east, /area/shuttle/lifeboat) "Jw" = ( /turf/closed/shuttle/lifeboat{ @@ -344,14 +333,10 @@ id = "Boat1-D2"; throw_dir = 1 }, -/turf/open/shuttle/lifeboat{ - icon_state = "test_floor4" - }, +/turf/open/shuttle/lifeboat/test_floor4, /area/shuttle/lifeboat) "Nm" = ( -/turf/open/shuttle/lifeboat{ - icon_state = "test_floor4" - }, +/turf/open/shuttle/lifeboat/test_floor4, /area/shuttle/lifeboat) "Ob" = ( /turf/closed/shuttle/lifeboat{ diff --git a/maps/shuttles/lifeboat-starboard-archive.dmm b/maps/shuttles/lifeboat-starboard-archive.dmm index 5094315b7b6f..8d7d7a9f8485 100644 --- a/maps/shuttles/lifeboat-starboard-archive.dmm +++ b/maps/shuttles/lifeboat-starboard-archive.dmm @@ -195,9 +195,7 @@ }, /area/shuttle/lifeboat) "AF" = ( -/turf/open/shuttle/lifeboat{ - icon_state = "plating_striped" - }, +/turf/open/shuttle/lifeboat/plating_striped, /area/shuttle/lifeboat) "Bf" = ( /turf/closed/shuttle/lifeboat/transparent{ @@ -416,9 +414,7 @@ }, /area/shuttle/lifeboat) "VZ" = ( -/turf/open/shuttle/escapepod{ - icon_state = "floor8" - }, +/turf/open/shuttle/escapepod/floor8, /area/shuttle/lifeboat) "Xj" = ( /turf/closed/shuttle/lifeboat{ @@ -426,9 +422,7 @@ }, /area/shuttle/lifeboat) "XV" = ( -/turf/open/shuttle/lifeboat{ - icon_state = "plate" - }, +/turf/open/shuttle/lifeboat/plate, /area/shuttle/lifeboat) "Zl" = ( /turf/closed/shuttle/lifeboat{ diff --git a/maps/shuttles/lifeboat-starboard.dmm b/maps/shuttles/lifeboat-starboard.dmm index 57e302923131..d14fc877141e 100644 --- a/maps/shuttles/lifeboat-starboard.dmm +++ b/maps/shuttles/lifeboat-starboard.dmm @@ -164,9 +164,7 @@ id = "Boat2-D2"; throw_dir = 1 }, -/turf/open/shuttle/lifeboat{ - icon_state = "test_floor4" - }, +/turf/open/shuttle/lifeboat/test_floor4, /area/shuttle/lifeboat) "vG" = ( /obj/docking_port/mobile/crashable/lifeboat/starboard, @@ -188,9 +186,7 @@ id = "Boat2-D1"; throw_dir = 1 }, -/turf/open/shuttle/lifeboat{ - icon_state = "test_floor4" - }, +/turf/open/shuttle/lifeboat/test_floor4, /area/shuttle/lifeboat) "zv" = ( /turf/closed/shuttle/lifeboat{ @@ -213,9 +209,7 @@ }, /area/shuttle/lifeboat) "AF" = ( -/turf/open/shuttle/lifeboat{ - icon_state = "plating_striped" - }, +/turf/open/shuttle/lifeboat/plating_striped, /area/shuttle/lifeboat) "Bf" = ( /turf/closed/shuttle/lifeboat/transparent{ @@ -376,9 +370,7 @@ }, /area/shuttle/lifeboat) "Qj" = ( -/turf/open/shuttle/lifeboat{ - icon_state = "test_floor4" - }, +/turf/open/shuttle/lifeboat/test_floor4, /area/shuttle/lifeboat) "Rk" = ( /turf/closed/shuttle/lifeboat{ @@ -397,10 +389,7 @@ }, /area/shuttle/lifeboat) "SA" = ( -/turf/open/shuttle/lifeboat{ - dir = 1; - icon_state = "plating_striped" - }, +/turf/open/shuttle/lifeboat/plating_striped/north, /area/shuttle/lifeboat) "Td" = ( /turf/closed/shuttle/lifeboat{ @@ -445,9 +434,7 @@ }, /area/shuttle/lifeboat) "VZ" = ( -/turf/open/shuttle/escapepod{ - icon_state = "floor8" - }, +/turf/open/shuttle/escapepod/floor1/east, /area/shuttle/lifeboat) "Xj" = ( /turf/closed/shuttle/lifeboat{ @@ -455,9 +442,7 @@ }, /area/shuttle/lifeboat) "XV" = ( -/turf/open/shuttle/lifeboat{ - icon_state = "plate" - }, +/turf/open/shuttle/lifeboat/plate, /area/shuttle/lifeboat) "Zl" = ( /turf/closed/shuttle/lifeboat{ diff --git a/maps/shuttles/trijentshuttle2.dmm b/maps/shuttles/trijentshuttle2.dmm index c99ce5d16488..b4ea080e4cfa 100644 --- a/maps/shuttles/trijentshuttle2.dmm +++ b/maps/shuttles/trijentshuttle2.dmm @@ -3,14 +3,10 @@ /turf/open/shuttle/escapepod, /area/shuttle/trijent_shuttle/elevator) "b" = ( -/turf/open/shuttle/escapepod{ - icon_state = "floor8" - }, +/turf/open/shuttle/escapepod/floor8, /area/shuttle/trijent_shuttle/elevator) "c" = ( -/turf/open/shuttle/escapepod{ - icon_state = "floor9" - }, +/turf/open/shuttle/escapepod/floor9, /area/shuttle/trijent_shuttle/elevator) "d" = ( /turf/closed/shuttle/elevator{ @@ -28,9 +24,7 @@ dir = 4; id = "east" }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/shuttle/trijent_shuttle/elevator) "k" = ( /obj/structure/machinery/computer/shuttle/elevator_controller, @@ -105,9 +99,7 @@ pixel_x = 9; pixel_y = 8 }, -/turf/open/shuttle/escapepod{ - icon_state = "floor11" - }, +/turf/open/shuttle/escapepod/floor11, /area/shuttle/trijent_shuttle/elevator) "A" = ( /turf/closed/shuttle/elevator{ @@ -137,9 +129,7 @@ dir = 4; id = "west" }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/shuttle/trijent_shuttle/elevator) "O" = ( /obj/item/limb/hand/r_hand, @@ -154,9 +144,7 @@ /turf/open/shuttle/escapepod, /area/shuttle/trijent_shuttle/elevator) "Q" = ( -/turf/open/shuttle/escapepod{ - icon_state = "floor11" - }, +/turf/open/shuttle/escapepod/floor11, /area/shuttle/trijent_shuttle/elevator) "R" = ( /obj/structure/bed/chair/dropship/passenger, @@ -185,14 +173,10 @@ }, /area/shuttle/trijent_shuttle/elevator) "W" = ( -/turf/open/shuttle/escapepod{ - icon_state = "floor12" - }, +/turf/open/shuttle/escapepod/floor12, /area/shuttle/trijent_shuttle/elevator) "Y" = ( -/turf/open/shuttle/escapepod{ - icon_state = "floor7" - }, +/turf/open/shuttle/escapepod/floor7, /area/shuttle/trijent_shuttle/elevator) (1,1,1) = {" diff --git a/maps/shuttles/vehicle_elevator.dmm b/maps/shuttles/vehicle_elevator.dmm index 51517693d636..c8cf184451cb 100644 --- a/maps/shuttles/vehicle_elevator.dmm +++ b/maps/shuttles/vehicle_elevator.dmm @@ -24,9 +24,7 @@ /turf/open/floor/plating/plating_catwalk, /area/shuttle/vehicle_elevator) "e" = ( -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/shuttle/vehicle_elevator) "f" = ( /obj/effect/decal/warning_stripes{ diff --git a/maps/templates/Chinook.dmm b/maps/templates/Chinook.dmm index 17be7bd9b968..de04fd7d5e66 100644 --- a/maps/templates/Chinook.dmm +++ b/maps/templates/Chinook.dmm @@ -6,59 +6,55 @@ req_access = null; req_one_access = null }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/adminlevel/chinook/medical) -"af" = ( -/turf/open/floor/almayer_hull{ - icon_state = "outerhull_dir" +"ad" = ( +/obj/structure/sign/safety/east{ + pixel_x = 12; + pixel_y = 25 + }, +/obj/structure/sign/safety/medical{ + pixel_y = 25 }, +/obj/structure/sign/safety/security{ + pixel_x = -12; + pixel_y = 25 + }, +/turf/open/floor/almayer/silver/north, +/area/adminlevel/chinook) +"af" = ( +/turf/open/floor/almayer_hull/outerhull_dir, /area/space) "ag" = ( -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook) "ah" = ( /obj/structure/machinery/cm_vending/sorted/cargo_guns/squad_prep/training, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, +/turf/open/floor/almayer/redfull, /area/adminlevel/chinook) "ai" = ( -/turf/open/floor/almayer_hull{ - dir = 10; - icon_state = "outerhull_dir" - }, +/turf/open/floor/almayer_hull/outerhull_dir/southwest, /area/space) "aj" = ( /obj/structure/bed/chair/dropship/passenger{ dir = 4 }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/adminlevel/chinook/shuttle/unpowered) "al" = ( /turf/open/floor/almayer_hull, /area/space) "am" = ( -/turf/open/floor/almayer{ - icon_state = "tcomms" - }, +/turf/open/floor/almayer/tcomms, /area/adminlevel/chinook/engineering) "ao" = ( /turf/open/floor/kutjevo, /area/adminlevel/chinook) "ap" = ( /obj/structure/closet/secure_closet/securecom{ - name = "general's secure box" - }, -/turf/open/floor/almayer{ - icon_state = "plate" + name = "secure box" }, +/turf/open/floor/kutjevo/plate, /area/adminlevel/chinook/offices) "aq" = ( /obj/structure/surface/table/almayer, @@ -69,79 +65,93 @@ /obj/item/reagent_container/food/drinks/cans/waterbottle{ pixel_y = 7 }, -/turf/open/floor/almayer{ - icon_state = "sterile_green_side" +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_17"; + pixel_x = 11; + pixel_y = 10 }, +/turf/open/floor/almayer/sterile_green_side, /area/adminlevel/chinook/medical) -"au" = ( -/turf/open/floor/almayer_hull{ - dir = 4; - icon_state = "outerhull_dir" +"ar" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N" }, +/turf/open/floor/almayer/plating/northeast, +/area/adminlevel/chinook/cargo) +"au" = ( +/turf/open/floor/almayer_hull/outerhull_dir/east, /area/space) "av" = ( /obj/structure/machinery/cm_vending/sorted/boozeomat, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/kutjevo/plate, /area/adminlevel/chinook/offices) +"aw" = ( +/turf/closed/wall/almayer/white/reinforced, +/area/adminlevel/chinook/medical) "ax" = ( /obj/structure/machinery/light{ dir = 1 }, /obj/structure/machinery/vending/cola, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/kutjevo/plate, /area/adminlevel/chinook/offices) +"ay" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N" + }, +/obj/structure/platform_decoration{ + dir = 4 + }, +/turf/open/floor/almayer/plating/northeast, +/area/adminlevel/chinook/cargo) "aA" = ( /obj/structure/machinery/vending/coffee, /turf/open/floor/almayer, /area/adminlevel/chinook/offices) +"aB" = ( +/obj/structure/sign/safety/bathmens{ + pixel_x = -17 + }, +/turf/open/floor/almayer/blue/west, +/area/adminlevel/chinook) "aC" = ( -/obj/structure/closet/secure_closet/military_police, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" +/obj/structure/closet/secure_closet/military_officer_spare{ + name = "provost uniform locker" }, +/obj/item/clothing/under/marine/mp/provost, +/obj/item/clothing/under/marine/mp/provost, +/obj/item/clothing/under/marine/mp/provost, +/obj/item/clothing/under/marine/mp/provost, +/turf/open/floor/almayer/red/east, /area/adminlevel/chinook/sec) "aD" = ( /obj/structure/machinery/light{ dir = 8 }, -/obj/structure/filingcabinet, -/turf/open/floor/almayer, +/obj/structure/displaycase, +/turf/open/floor/kutjevo/plate, /area/adminlevel/chinook/offices) "aE" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" - }, +/turf/open/floor/strata/faux_wood, /area/adminlevel/chinook/offices) "aF" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/southwest, /area/adminlevel/chinook) "aG" = ( /obj/structure/surface/table/almayer, -/obj/item/storage/fancy/cigarettes/kpack{ - pixel_x = -4 - }, /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/item/storage/fancy/cigarettes/kpack{ + pixel_x = -4 }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook/cargo) "aH" = ( /obj/structure/surface/table/almayer, @@ -162,10 +172,7 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_corner" - }, +/turf/open/floor/almayer/sterile_green_corner/west, /area/adminlevel/chinook/medical) "aJ" = ( /obj/structure/surface/table/reinforced/black, @@ -173,36 +180,25 @@ pixel_x = 5; pixel_y = 8 }, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, +/turf/open/floor/carpet, /area/adminlevel/chinook/offices) "aK" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_10" }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/sec) "aM" = ( /obj/structure/machinery/vending/snack, /turf/open/floor/almayer, /area/adminlevel/chinook/offices) "aP" = ( -/obj/structure/machinery/vending/cola, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/adminlevel/chinook/cargo) +/obj/structure/flora/pottedplant/random, +/turf/open/floor/carpet, +/area/adminlevel/chinook/offices) "aQ" = ( -/obj/structure/machinery/cryopod, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "sterile_green_side" - }, +/obj/structure/machinery/light, +/turf/open/floor/plating/plating_catwalk, /area/adminlevel/chinook/medical) "aR" = ( /obj/structure/machinery/door_control{ @@ -212,9 +208,7 @@ pixel_y = -25; req_one_access_txt = "2;3;12;19" }, -/turf/open/floor/almayer{ - icon_state = "red" - }, +/turf/open/floor/almayer/red, /area/adminlevel/chinook/sec) "aT" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/comdoor{ @@ -234,22 +228,33 @@ pixel_x = 4; pixel_y = 5 }, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, +/turf/open/floor/carpet, /area/adminlevel/chinook/offices) -"aW" = ( +"aV" = ( +/obj/structure/surface/table/reinforced/black, /obj/structure/machinery/light{ - dir = 1 + dir = 8 }, -/obj/structure/machinery/disposal, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" +/obj/item/reagent_container/food/drinks/coffeecup/uscm{ + pixel_x = -7; + pixel_y = 6 + }, +/obj/item/prop/tableflag/uscm{ + pixel_x = 9; + pixel_y = 3 }, +/turf/open/floor/carpet, /area/adminlevel/chinook/offices) +"aW" = ( +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_21" + }, +/obj/structure/sign/safety/biolab{ + pixel_x = 3; + pixel_y = -25 + }, +/turf/open/floor/almayer/plate, +/area/adminlevel/chinook) "aX" = ( /obj/structure/machinery/door/airlock/almayer/security{ name = "\improper Security Armory" @@ -259,11 +264,18 @@ id = "chinookarmory2"; name = "Armory Lockdown" }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/sec) +"aY" = ( +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal3"; + pixel_y = 16 + }, +/obj/structure/desertdam/decals/road_edge{ + pixel_x = 2 + }, +/turf/open/floor/wood, +/area/adminlevel/chinook) "aZ" = ( /obj/structure/machinery/door/airlock/almayer/secure{ dir = 1; @@ -282,42 +294,36 @@ pixel_x = 3; pixel_y = 8 }, -/turf/open/floor/almayer, +/turf/open/floor/kutjevo/plate, /area/adminlevel/chinook/offices) "bb" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/almayer/red/west, /area/adminlevel/chinook/sec) "bc" = ( /obj/structure/machinery/computer/card, /obj/structure/surface/table/reinforced/black, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, +/turf/open/floor/carpet, /area/adminlevel/chinook/offices) +"bd" = ( +/obj/structure/machinery/light{ + dir = 8 + }, +/turf/open/floor/corsat/squares, +/area/adminlevel/chinook/cargo) "be" = ( /obj/structure/bed/chair/comfy/black{ dir = 8 }, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/almayer/red/southeast, /area/adminlevel/chinook/sec) "bf" = ( /obj/structure/bed/chair/comfy{ dir = 1 }, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, +/turf/open/floor/carpet, /area/adminlevel/chinook/sec) "bg" = ( /obj/structure/surface/table/reinforced/black, @@ -326,18 +332,24 @@ pixel_x = -11; pixel_y = 3 }, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" +/obj/structure/prop/ice_colony/hula_girl{ + pixel_x = 10 }, +/turf/open/floor/carpet, /area/adminlevel/chinook/offices) "bh" = ( /obj/structure/machinery/light{ dir = 4 }, /obj/structure/bed/chair/comfy, -/turf/open/floor/almayer, +/turf/open/floor/kutjevo/plate, /area/adminlevel/chinook/offices) +"bi" = ( +/obj/structure/machinery/light{ + dir = 8 + }, +/turf/open/floor/almayer/blue/east, +/area/adminlevel/chinook) "bj" = ( /obj/structure/surface/table/almayer, /obj/item/roller, @@ -345,115 +357,125 @@ /obj/item/roller, /obj/item/device/healthanalyzer, /obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side, /area/adminlevel/chinook/medical) "bk" = ( /obj/structure/sign/safety/synth_storage{ pixel_y = 24 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/north, /area/adminlevel/chinook) "bl" = ( -/obj/structure/bed/sofa/south/grey/left, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" +/obj/structure/surface/table/reinforced/black, +/obj/structure/noticeboard{ + pixel_y = 27 + }, +/obj/item/clothing/accessory/medal/gold/service{ + pixel_y = 21; + pixel_x = -6 + }, +/obj/item/clothing/accessory/medal/gold/service{ + pixel_y = 21; + pixel_x = -2 + }, +/obj/item/clothing/accessory/medal/gold/service{ + pixel_y = 21; + pixel_x = 2 + }, +/obj/item/clothing/accessory/medal/gold/service{ + pixel_y = 21; + pixel_x = 6 + }, +/obj/item/tool/lighter/zippo/gold{ + pixel_x = 5; + pixel_y = 6 + }, +/obj/item/prop/tableflag{ + pixel_x = -9; + pixel_y = -2 }, +/turf/open/floor/wood, /area/adminlevel/chinook/offices) "bm" = ( -/obj/structure/bed/sofa/south/grey/right, -/obj/item/reagent_container/food/drinks/cans/beer, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" +/obj/structure/surface/table/reinforced/black, +/obj/item/paper_bin/uscm{ + pixel_x = -8; + pixel_y = 8 + }, +/obj/item/tool/pen/fountain{ + pixel_y = 4; + pixel_x = -8 + }, +/obj/item/device/flashlight/lamp{ + pixel_y = 8; + pixel_x = 6 }, +/turf/open/floor/wood, /area/adminlevel/chinook/offices) "bn" = ( -/obj/structure/sign/prop1{ - pixel_y = 32 +/obj/structure/surface/table/reinforced/almayer_B, +/obj/item/clothing/glasses/sunglasses{ + pixel_y = 9; + pixel_x = -3 }, -/obj/structure/machinery/cm_vending/clothing/dress, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" +/obj/item/clothing/mask/rebreather/scarf/tacticalmask/red{ + pixel_y = -5 }, +/turf/open/floor/wood, /area/adminlevel/chinook/offices) "bp" = ( /obj/structure/machinery/light, /obj/structure/closet, /turf/open/floor/almayer, /area/adminlevel/chinook/cryo) +"bq" = ( +/obj/structure/filingcabinet, +/turf/open/floor/kutjevo/plate, +/area/adminlevel/chinook/offices) "bu" = ( -/obj/structure/machinery/cm_vending/clothing/dress, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" +/obj/structure/surface/table/reinforced/black, +/obj/structure/machinery/light{ + dir = 8 + }, +/obj/item/toy/beach_ball/holoball{ + pixel_y = 4 }, +/turf/open/floor/carpet, /area/adminlevel/chinook/offices) "bv" = ( /obj/structure/surface/table/reinforced/black, -/obj/item/clothing/head/helmet/marine/pilot{ - pixel_x = 6; - pixel_y = 3 - }, -/obj/item/clothing/suit/armor/vest/pilot{ - pixel_x = -5 - }, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" - }, +/turf/open/floor/wood, /area/adminlevel/chinook/offices) "bx" = ( -/obj/structure/surface/table/reinforced/almayer_B, -/obj/item/tool/weldingtool{ - pixel_x = -9; +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal3"; pixel_y = 4 }, -/obj/item/stack/cable_coil{ - pixel_x = 7 - }, -/obj/item/stack/cable_coil{ - pixel_x = 13; - pixel_y = 5 - }, -/obj/item/tool/weldingtool{ - pixel_x = -2; - pixel_y = 6 +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal7"; + pixel_x = 2 }, -/turf/open/floor/plating/plating_catwalk, +/turf/open/floor/wood, /area/adminlevel/chinook) "bz" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/north, /area/adminlevel/chinook/engineering) "bA" = ( /obj/structure/barricade/handrail/strata, /turf/open/floor/almayer, /area/adminlevel/chinook/cargo) "bB" = ( -/obj/structure/surface/table/reinforced/black, -/obj/item/toy/deck/uno{ - pixel_x = 3; - pixel_y = 8 +/obj/structure/filingcabinet{ + density = 0; + pixel_x = 8; + pixel_y = 16 }, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" +/obj/structure/filingcabinet{ + density = 0; + pixel_x = -8; + pixel_y = 16 }, +/turf/open/floor/wood, /area/adminlevel/chinook/offices) "bC" = ( /turf/closed/wall/almayer/outer, @@ -462,19 +484,36 @@ /obj/structure/bed/chair/comfy/orange{ dir = 4 }, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, +/turf/open/floor/carpet, /area/adminlevel/chinook/offices) +"bE" = ( +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal8"; + pixel_x = -16; + pixel_y = -16 + }, +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal5"; + pixel_x = -16; + pixel_y = 16 + }, +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal6"; + pixel_x = 16; + pixel_y = 16 + }, +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal7"; + pixel_x = 16; + pixel_y = -16 + }, +/turf/open/floor/wood, +/area/adminlevel/chinook) "bF" = ( /obj/item/paper_bin/uscm, /obj/item/tool/pen, /obj/structure/surface/table/reinforced/black, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, +/turf/open/floor/carpet, /area/adminlevel/chinook/offices) "bG" = ( /obj/structure/surface/table/reinforced/black, @@ -483,16 +522,16 @@ pixel_x = 7; pixel_y = 10 }, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, +/turf/open/floor/carpet, /area/adminlevel/chinook/offices) "bH" = ( /obj/structure/surface/table/reinforced/black, /obj/item/storage/box/bodybags, -/obj/item/reagent_container/food/drinks/bottle/whiskey, -/turf/open/floor/almayer, +/obj/item/paper, +/obj/item/reagent_container/food/drinks/bottle/whiskey{ + pixel_y = -7 + }, +/turf/open/floor/kutjevo/plate, /area/adminlevel/chinook/offices) "bI" = ( /obj/structure/surface/table/reinforced/black, @@ -501,10 +540,11 @@ pixel_y = 5 }, /obj/item/reagent_container/food/drinks/h_chocolate, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" +/obj/item/prop/tableflag{ + pixel_x = -9; + pixel_y = 12 }, +/turf/open/floor/carpet, /area/adminlevel/chinook/offices) "bJ" = ( /obj/structure/machinery/light{ @@ -515,32 +555,39 @@ "bK" = ( /obj/structure/machinery/chem_master, /obj/item/reagent_container/glass/beaker/bluespace, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_corner" - }, +/turf/open/floor/almayer/sterile_green_corner/north, /area/adminlevel/chinook/medical) "bL" = ( -/obj/structure/machinery/light, -/obj/structure/machinery/disposal, -/turf/open/floor/almayer, +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal3"; + pixel_x = 6; + pixel_y = 4 + }, +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal3"; + pixel_x = -9; + pixel_y = 4 + }, +/turf/open/floor/wood, +/area/adminlevel/chinook) +"bN" = ( +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal3"; + pixel_x = -6 + }, +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal3"; + pixel_x = 9 + }, +/turf/open/floor/wood, /area/adminlevel/chinook) "bO" = ( -/obj/structure/surface/table/almayer, -/obj/item/device/radio/marine, /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "sterile_green_side" - }, +/obj/structure/reagent_dispensers/fueltank/custom, +/turf/open/floor/almayer/sterile_green_side/east, /area/adminlevel/chinook/medical) -"bP" = ( -/turf/open/floor/almayer/uscm/directional{ - dir = 6 - }, -/area/adminlevel/chinook/shuttle) "bQ" = ( /obj/item/book/manual/marine_law{ pixel_x = 1; @@ -551,59 +598,43 @@ /area/adminlevel/chinook/sec) "bR" = ( /obj/structure/surface/table/reinforced/black, -/obj/item/storage/mateba_case/general{ - pixel_y = 4 - }, -/turf/open/floor/almayer, +/turf/open/floor/kutjevo/plate, /area/adminlevel/chinook/offices) "bS" = ( /obj/structure/surface/table/reinforced/black, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, +/turf/open/floor/carpet, /area/adminlevel/chinook/sec) "bV" = ( /obj/item/device/flashlight/lamp/green, /obj/structure/surface/table/reinforced/black, -/turf/open/floor/almayer, +/turf/open/floor/kutjevo/plate, /area/adminlevel/chinook/offices) "bY" = ( -/obj/structure/machinery/cryopod, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_corner" +/turf/open/floor/almayer/blue/north, +/area/adminlevel/chinook) +"bZ" = ( +/obj/structure/machinery/light{ + dir = 1 }, -/area/adminlevel/chinook/medical) +/turf/open/floor/kutjevo/plate, +/area/adminlevel/chinook/offices) "ca" = ( /obj/structure/filingcabinet, /obj/structure/machinery/cm_vending/sorted/medical/wall_med{ pixel_y = 25 }, -/turf/open/floor/almayer, +/turf/open/floor/kutjevo/plate, /area/adminlevel/chinook/offices) "ce" = ( -/turf/open/floor/almayer{ - dir = 6; - icon_state = "green" - }, +/turf/open/floor/almayer/green/southeast, /area/adminlevel/chinook/cargo) "cf" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/obj/structure/machinery/cm_vending/sorted/medical/blood, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_side" - }, +/obj/structure/machinery/cm_vending/sorted/medical, +/turf/open/floor/almayer/sterile_green_side/north, /area/adminlevel/chinook/offices) "cg" = ( /obj/structure/largecrate/supply, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/cargo) "ci" = ( /obj/structure/machinery/constructable_frame{ @@ -613,11 +644,8 @@ /turf/open/floor/almayer, /area/adminlevel/chinook/engineering) "cj" = ( -/obj/structure/surface/table/almayer, -/obj/item/storage/surgical_tray, -/turf/open/floor/almayer{ - icon_state = "sterile_green_corner" - }, +/obj/structure/machinery/optable, +/turf/open/floor/almayer/sterile_green_side/north, /area/adminlevel/chinook/offices) "ck" = ( /obj/structure/surface/table/reinforced/black, @@ -625,17 +653,10 @@ pixel_y = 3 }, /obj/item/folder/white, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, +/turf/open/floor/carpet, /area/adminlevel/chinook/offices) "cl" = ( -/obj/structure/machinery/iv_drip, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/west, /area/adminlevel/chinook/offices) "cm" = ( /obj/structure/platform{ @@ -644,28 +665,39 @@ /obj/structure/platform{ dir = 8 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/engineering) "cp" = ( -/obj/structure/surface/table/almayer, -/obj/item/roller, -/obj/item/roller, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "sterile_green_side" +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal8"; + pixel_x = -16; + pixel_y = -16 }, -/area/adminlevel/chinook/offices) +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal5"; + pixel_x = -16; + pixel_y = 16 + }, +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal6"; + pixel_x = 16; + pixel_y = 16 + }, +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal7"; + pixel_x = 16; + pixel_y = -16 + }, +/obj/item/toy/beach_ball/holoball, +/obj/structure/desertdam/decals/road_edge{ + pixel_x = 2 + }, +/turf/open/floor/wood, +/area/adminlevel/chinook) "cr" = ( /obj/structure/surface/table/reinforced/black, -/obj/item/book/manual/robotics_cyborgs{ - pixel_x = -8; - pixel_y = 7 - }, /obj/item/storage/fancy/cigar, -/turf/open/floor/almayer, +/turf/open/floor/kutjevo/plate, /area/adminlevel/chinook/offices) "cs" = ( /obj/structure/machinery/light{ @@ -677,7 +709,7 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/almayer, +/turf/open/floor/kutjevo, /area/adminlevel/chinook/offices) "cu" = ( /obj/structure/machinery/disposal, @@ -693,18 +725,18 @@ "cw" = ( /obj/item/device/flashlight/lamp/green, /obj/structure/surface/table/reinforced/black, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, +/turf/open/floor/carpet, /area/adminlevel/chinook/sec) +"cx" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E" + }, +/turf/open/floor/almayer/emerald/northeast, +/area/adminlevel/chinook/shuttle) "cy" = ( /obj/structure/surface/table/almayer, -/obj/item/tool/weldingtool, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, +/obj/item/tool/weldingtool/largetank, +/turf/open/floor/almayer/orange/north, /area/adminlevel/chinook/engineering) "cz" = ( /obj/structure/machinery/door/airlock/almayer/marine/requisitions{ @@ -714,12 +746,27 @@ }, /turf/open/floor/almayer, /area/adminlevel/chinook/cargo) +"cA" = ( +/obj/structure/surface/table/reinforced/almayer_B, +/obj/item/cell/super{ + pixel_x = 3; + pixel_y = 4 + }, +/obj/item/cell/super{ + pixel_x = 3 + }, +/obj/item/tool/screwdriver{ + pixel_x = -1; + pixel_y = 6 + }, +/turf/open/floor/almayer, +/area/adminlevel/chinook) "cB" = ( /obj/structure/surface/table/reinforced/black, /obj/item/storage/fancy/cigarettes/arcturian_ace{ pixel_y = 6 }, -/turf/open/floor/almayer, +/turf/open/floor/kutjevo, /area/adminlevel/chinook/offices) "cC" = ( /obj/structure/machinery/door/window/eastleft{ @@ -727,43 +774,27 @@ }, /obj/structure/machinery/door/firedoor/border_only/almayer, /obj/structure/surface/table/reinforced/almayer_blend, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/adminlevel/chinook/cargo) "cE" = ( /obj/structure/surface/table/reinforced/black, -/obj/item/ammo_magazine/revolver/mateba/highimpact{ - pixel_x = -5; - pixel_y = 6 - }, -/obj/item/clothing/head/cmcap/co/formal/black{ - pixel_x = 4; - pixel_y = 5 +/obj/structure/noticeboard{ + pixel_y = 27 }, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" +/obj/item/book/manual/marine_law{ + pixel_y = 10 }, -/area/adminlevel/chinook/offices) -"cG" = ( -/obj/structure/machinery/disposal, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" +/obj/item/tool/pen{ + pixel_y = 8 }, +/turf/open/floor/wood, /area/adminlevel/chinook/offices) "cL" = ( /obj/structure/bed/chair/comfy{ dir = 1; name = "defense chair" }, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" - }, +/turf/open/floor/wood, /area/adminlevel/chinook/event) "cM" = ( /obj/structure/machinery/power/terminal{ @@ -775,13 +806,15 @@ /turf/open/floor/almayer, /area/adminlevel/chinook/engineering) "cN" = ( -/obj/item/device/flashlight/lamp/green, -/obj/structure/surface/table/reinforced/black, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" +/obj/structure/desertdam/decals/road_edge{ + pixel_x = 16 }, -/area/adminlevel/chinook/offices) +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal3"; + pixel_y = 4 + }, +/turf/open/floor/wood, +/area/adminlevel/chinook) "cQ" = ( /obj/structure/sign/poster{ pixel_y = 32 @@ -792,59 +825,26 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/almayer/blue/west, /area/adminlevel/chinook/offices) "cS" = ( -/turf/open/floor/almayer{ - icon_state = "plating_striped" - }, +/turf/open/floor/almayer/plating_striped, /area/adminlevel/chinook/sec) "cT" = ( -/obj/structure/surface/table/reinforced/black, -/obj/item/reagent_container/food/drinks/cans/souto/classic{ - pixel_x = 5; - pixel_y = 4 - }, -/obj/item/reagent_container/food/drinks/cans/souto/cranberry{ - pixel_x = -4; - pixel_y = 2 - }, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" +/obj/structure/extinguisher_cabinet{ + pixel_y = 27 }, -/area/adminlevel/chinook/offices) +/turf/open/floor/almayer, +/area/adminlevel/chinook) "cU" = ( -/obj/structure/surface/table/reinforced/black, -/obj/item/reagent_container/food/drinks/cans/souto/classic{ - pixel_x = -18; - pixel_y = 3 - }, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, -/area/adminlevel/chinook/offices) -"cV" = ( -/obj/structure/surface/table/reinforced/black, -/obj/item/paper_bin/uscm{ - pixel_y = 6 - }, -/obj/item/tool/pen, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" +/obj/structure/sign/poster{ + pixel_y = 32 }, -/area/adminlevel/chinook/offices) +/turf/open/floor/almayer, +/area/adminlevel/chinook) "cW" = ( /obj/structure/machinery/autolathe/medilathe/full, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_corner" - }, +/turf/open/floor/almayer/sterile_green_corner/north, /area/adminlevel/chinook/medical) "cX" = ( /obj/structure/surface/table/almayer, @@ -853,25 +853,28 @@ }, /obj/item/device/defibrillator, /obj/item/device/defibrillator, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_corner" - }, +/turf/open/floor/almayer/sterile_green_side, /area/adminlevel/chinook/medical) +"cY" = ( +/obj/structure/machinery/door/airlock/almayer/maint{ + dir = 1; + name = "\improper Janitorial Closet"; + req_access = null; + req_one_access = null + }, +/turf/open/floor/almayer, +/area/adminlevel/chinook/offices) "cZ" = ( /obj/structure/bed, /obj/item/bedsheet/medical, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green, /area/adminlevel/chinook/offices) "db" = ( /obj/structure/machinery/photocopier, /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/almayer, +/turf/open/floor/kutjevo/plate, /area/adminlevel/chinook/offices) "dc" = ( /obj/structure/surface/table/reinforced/black, @@ -883,10 +886,7 @@ pixel_x = 1; pixel_y = 4 }, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, +/turf/open/floor/carpet, /area/adminlevel/chinook/offices) "dd" = ( /obj/structure/sink{ @@ -907,59 +907,44 @@ /area/space) "dg" = ( /obj/structure/largecrate/supply/medicine/medkits, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/cargo) "dh" = ( /obj/structure/surface/table/reinforced/black, /obj/item/paper, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" +/obj/item/reagent_container/food/drinks/drinkingglass/cola{ + pixel_x = -3; + pixel_y = 6 + }, +/obj/item/tool/lighter/zippo{ + pixel_x = 7; + pixel_y = 5 }, +/turf/open/floor/carpet, /area/adminlevel/chinook/offices) "di" = ( /obj/structure/surface/table/reinforced/black, /obj/item/tool/lighter/zippo, /obj/item/paper/crumpled, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, +/turf/open/floor/carpet, /area/adminlevel/chinook/offices) "dj" = ( /obj/structure/machinery/autodoc_console, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/adminlevel/chinook/offices) "dk" = ( -/obj/structure/machinery/light{ - dir = 4 - }, -/obj/structure/bed, -/obj/item/bedsheet/medical, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "sterile_green_side" +/obj/structure/machinery/cm_vending/sorted/medical{ + layer = 3.5 }, -/area/adminlevel/chinook/offices) +/turf/open/floor/almayer/silverfull, +/area/adminlevel/chinook) "dl" = ( -/obj/structure/surface/table/reinforced/black, -/obj/item/book/manual/marine_law{ - pixel_x = 1; - pixel_y = 6 - }, -/obj/item/folder/black, -/turf/open/floor/almayer, +/obj/structure/machinery/cm_vending/sorted/marine_food, +/turf/open/floor/kutjevo/plate, /area/adminlevel/chinook/offices) "dn" = ( /obj/structure/closet/crate, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/adminlevel/chinook/cargo) "dp" = ( /obj/item/reagent_container/food/drinks/bottle/whiskey{ @@ -970,7 +955,7 @@ /obj/item/paper/crumpled{ pixel_y = 2 }, -/turf/open/floor/almayer, +/turf/open/floor/kutjevo/plate, /area/adminlevel/chinook/offices) "dq" = ( /obj/structure/machinery/door/airlock/almayer/engineering{ @@ -994,19 +979,14 @@ pixel_y = 3 }, /obj/item/tool/pen, -/turf/open/floor/almayer, +/turf/open/floor/kutjevo/plate, /area/adminlevel/chinook/offices) "dt" = ( /obj/structure/closet/firecloset, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/almayer/red/north, /area/adminlevel/chinook/sec) "du" = ( -/obj/structure/barricade/handrail/kutjevo{ - dir = 1 - }, +/obj/structure/surface/table/reinforced/black, /turf/open/floor/kutjevo/plate, /area/adminlevel/chinook/event) "dw" = ( @@ -1014,135 +994,131 @@ /turf/open/floor/almayer, /area/adminlevel/chinook/offices) "dx" = ( -/turf/open/floor/almayer{ - dir = 5; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/northeast, /area/adminlevel/chinook/medical) "dy" = ( /obj/structure/machinery/cm_vending/clothing/dress, -/turf/open/floor/almayer, +/turf/open/floor/kutjevo/plate, /area/adminlevel/chinook/offices) +"dz" = ( +/obj/structure/cargo_container/arious/rightmid, +/turf/open/floor/corsat/squares, +/area/adminlevel/chinook/cargo) "dA" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/device/multitool, -/turf/open/floor/almayer{ - icon_state = "tcomms" - }, +/turf/open/floor/almayer/tcomms, /area/adminlevel/chinook/engineering) +"dB" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/engidoor{ + name = "\improper Engineering"; + dir = 1 + }, +/obj/structure/machinery/door/poddoor/almayer/open{ + id = "chinookengilock"; + name = "Engineering Sector Lockdown"; + dir = 4 + }, +/turf/open/floor/almayer, +/area/adminlevel/chinook/cryo) "dC" = ( /obj/structure/bed/chair/comfy, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, +/turf/open/floor/carpet, /area/adminlevel/chinook/sec) "dD" = ( /obj/structure/machinery/light, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" - }, +/turf/open/floor/strata/faux_wood, /area/adminlevel/chinook/offices) "dE" = ( /obj/structure/machinery/light, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, +/turf/open/floor/carpet, /area/adminlevel/chinook/offices) "dF" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_corner" - }, +/turf/open/floor/almayer/sterile_green_corner/west, /area/adminlevel/chinook/offices) "dH" = ( -/obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" +/obj/structure/sign/poster{ + pixel_y = -32 }, -/area/adminlevel/chinook/medical) +/turf/open/floor/almayer/red, +/area/adminlevel/chinook/sec) "dJ" = ( /obj/structure/bed/stool, /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/almayer/blue/north, /area/adminlevel/chinook) -"dM" = ( -/turf/open/floor/almayer{ - dir = 9; - icon_state = "red" - }, -/area/adminlevel/chinook/sec) +"dK" = ( +/obj/structure/closet/secure_closet/personal, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/chinook) +"dL" = ( +/obj/structure/closet/secure_closet/freezer/meat, +/obj/item/reagent_container/food/snacks/carpmeat, +/obj/item/reagent_container/food/snacks/carpmeat, +/obj/item/reagent_container/food/snacks/carpmeat, +/turf/open/floor/prison/kitchen, +/area/adminlevel/chinook/event) "dN" = ( -/turf/open/floor/almayer{ - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side, /area/adminlevel/chinook/offices) "dO" = ( -/obj/structure/machinery/cm_vending/sorted/medical, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_side" +/obj/structure/machinery/light{ + dir = 8 }, +/obj/structure/machinery/medical_pod/bodyscanner, +/turf/open/floor/almayer/sterile_green_side/west, /area/adminlevel/chinook/offices) +"dQ" = ( +/obj/structure/surface/table/reinforced/black, +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_29"; + layer = 5; + pixel_x = 1; + pixel_y = 10 + }, +/turf/open/floor/carpet, +/area/adminlevel/chinook/event) "dR" = ( /obj/effect/decal/warning_stripes{ icon_state = "NW-out"; layer = 2.5 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/engineering) "dS" = ( /obj/structure/bed, -/turf/open/floor/almayer{ - icon_state = "red" - }, +/turf/open/floor/almayer/red, /area/adminlevel/chinook/sec) "dT" = ( /obj/structure/machinery/cm_vending/sorted/cargo_ammo, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook/cargo) "dU" = ( /obj/structure/machinery/door/airlock/almayer/command{ dir = 1; - name = "\improper 2BG Command Meeting Room" + name = "\improper Meeting Room" }, -/turf/open/floor/almayer, +/turf/open/floor/kutjevo/plate, /area/adminlevel/chinook/offices) "dW" = ( /obj/structure/largecrate/supply/supplies/flares, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/cargo) "dY" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/obj/structure/reagent_dispensers/water_cooler/stacks, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook) "dZ" = ( -/obj/structure/machinery/door/airlock/almayer/command{ - dir = 1; - name = "\improper Colonel, Fifth Division" +/obj/structure/desertdam/decals/road_edge{ + pixel_x = 16 }, -/turf/open/floor/almayer, -/area/adminlevel/chinook/offices) +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal3" + }, +/turf/open/floor/wood, +/area/adminlevel/chinook) "ea" = ( /obj/structure/machinery/light{ dir = 8 @@ -1150,10 +1126,44 @@ /turf/open/floor/plating/plating_catwalk, /area/adminlevel/chinook/sec) "eb" = ( -/turf/open/floor/prison{ - icon_state = "kitchen" +/obj/structure/surface/table/almayer, +/obj/item/storage/surgical_tray, +/turf/open/floor/almayer/sterile_green_side/north, +/area/adminlevel/chinook/offices) +"ee" = ( +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal8"; + pixel_x = -16; + pixel_y = -16 }, -/area/space) +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal5"; + pixel_x = -16; + pixel_y = 16 + }, +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal6"; + pixel_x = 16; + pixel_y = 16 + }, +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal7"; + pixel_x = 16; + pixel_y = -16 + }, +/obj/structure/desertdam/decals/road_edge{ + pixel_x = -12 + }, +/obj/structure/barricade/handrail/wire{ + dir = 8 + }, +/obj/structure/holohoop{ + dir = 4; + id = "chinook"; + side = "left" + }, +/turf/open/floor/wood, +/area/adminlevel/chinook) "eh" = ( /obj/structure/largecrate/supply/supplies/mre, /turf/open/floor/almayer, @@ -1166,6 +1176,9 @@ /obj/structure/surface/table/reinforced/black, /turf/open/floor/kutjevo/plate, /area/adminlevel/chinook/event) +"ek" = ( +/turf/open/floor/almayer/bluecorner, +/area/adminlevel/chinook) "em" = ( /obj/structure/surface/table/almayer, /obj/item/pizzabox/meat{ @@ -1174,13 +1187,13 @@ /turf/open/floor/plating/plating_catwalk, /area/adminlevel/chinook/sec) "en" = ( -/obj/structure/machinery/medical_pod/sleeper{ - dir = 8 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "sterile_green_corner" - }, +/obj/structure/surface/table/almayer, +/obj/item/roller, +/turf/open/floor/almayer/sterile_green_corner, +/area/adminlevel/chinook/offices) +"eo" = ( +/obj/structure/machinery/disposal, +/turf/open/floor/wood, /area/adminlevel/chinook/offices) "ep" = ( /obj/structure/machinery/door/airlock/almayer/medical/glass{ @@ -1189,9 +1202,21 @@ req_access = null; req_one_access = null }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" +/turf/open/floor/almayer/dark_sterile, +/area/adminlevel/chinook/offices) +"eq" = ( +/obj/structure/stairs/perspective{ + dir = 8; + icon_state = "p_stair_full" + }, +/obj/structure/platform/strata/metal, +/turf/open/floor/almayer, +/area/adminlevel/chinook) +"er" = ( +/obj/structure/closet/fireaxecabinet{ + pixel_y = 25 }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook/offices) "es" = ( /obj/structure/machinery/light{ @@ -1199,47 +1224,39 @@ }, /obj/structure/bed, /obj/item/bedsheet/medical, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/east, /area/adminlevel/chinook/medical) "et" = ( /obj/structure/closet/secure_closet/engineering_electrical, -/turf/open/floor/almayer{ - icon_state = "test_floor5" - }, +/turf/open/floor/almayer/test_floor5, /area/adminlevel/chinook/cryo) +"eu" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/turf/open/floor/almayer/blue/north, +/area/adminlevel/chinook/offices) "ew" = ( /obj/structure/closet/secure_closet{ name = "secure evidence locker"; req_access_txt = "3" }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/adminlevel/chinook/sec) "ex" = ( /obj/structure/sign/safety/conference_room{ pixel_y = 25 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/almayer/blue/north, /area/adminlevel/chinook/offices) "ey" = ( -/obj/structure/bed/sofa/south/grey, /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "blue" - }, +/obj/structure/bed/sofa/south/grey/left, +/turf/open/floor/almayer/blue/north, /area/adminlevel/chinook/offices) "ez" = ( -/obj/structure/bed/sofa/south/grey, /obj/structure/sign/safety/coffee{ pixel_x = 12; pixel_y = 25 @@ -1247,69 +1264,54 @@ /obj/structure/sign/safety/south{ pixel_y = 25 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "blue" - }, +/obj/structure/bed/sofa/south/grey/right, +/turf/open/floor/almayer/blue/north, /area/adminlevel/chinook/offices) "eA" = ( -/obj/structure/machinery/power/fusion_engine, /obj/structure/machinery/light{ dir = 8 }, /obj/structure/platform{ dir = 8 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/obj/structure/prop/invuln/fusion_reactor, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/engineering) "eB" = ( /obj/structure/machinery/cm_vending/sorted/medical/wall_med{ pixel_y = 25 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/almayer/blue/north, /area/adminlevel/chinook/offices) "eC" = ( /obj/structure/machinery/iv_drip, -/turf/open/floor/almayer{ - icon_state = "sterile_green" - }, +/turf/open/floor/almayer/sterile_green, /area/adminlevel/chinook/sec) "eD" = ( /obj/structure/machinery/cm_vending/sorted/attachments, -/turf/closed/wall/almayer, +/turf/closed/wall/almayer/reinforced, /area/adminlevel/chinook/cargo) "eE" = ( /obj/item/stack/sheet/wood/medium_stack{ pixel_y = 5 }, /obj/structure/surface/table/reinforced/almayer_B, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/sec) "eF" = ( -/obj/structure/machinery/cryopod, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "sterile_green_corner" - }, +/obj/structure/surface/rack, +/obj/item/storage/box/bodybags, +/obj/item/storage/box/bodybags, +/obj/item/storage/box/bodybags, +/obj/item/storage/box/bodybags, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook/medical) "eG" = ( -/obj/structure/machinery/power/fusion_engine, /obj/structure/platform{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/obj/structure/prop/invuln/fusion_reactor, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/engineering) "eH" = ( /obj/structure/machinery/light{ @@ -1318,20 +1320,14 @@ /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22" }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/almayer/blue/north, /area/adminlevel/chinook/offices) "eJ" = ( -/obj/structure/machinery/medical_pod/bodyscanner, /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_side" - }, +/obj/structure/machinery/medical_pod/bodyscanner, +/turf/open/floor/almayer/sterile_green_side/west, /area/adminlevel/chinook/sec) "eK" = ( /obj/structure/sign/safety/medical{ @@ -1341,127 +1337,131 @@ pixel_x = 12; pixel_y = 25 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/almayer/blue/north, /area/adminlevel/chinook/offices) -"eL" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/turf/open/floor/almayer{ +"eM" = ( +/obj/structure/sink{ dir = 1; - icon_state = "blue" + pixel_y = -10 }, -/area/adminlevel/chinook/offices) +/turf/open/floor/almayer, +/area/adminlevel/chinook/event) "eN" = ( /obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "blue" - }, +/turf/open/floor/almayer/blue, /area/adminlevel/chinook/offices) +"eO" = ( +/obj/structure/platform/strata/metal{ + dir = 4 + }, +/turf/open/gm/river/pool, +/area/adminlevel/chinook) "eP" = ( /obj/structure/bed/chair/comfy{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook) "eQ" = ( /obj/structure/window/framed/almayer/hull, /turf/open/floor/plating, /area/adminlevel/chinook/shuttle) "eR" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "bluecorner" - }, +/turf/open/floor/almayer/bluecorner/west, /area/adminlevel/chinook/offices) "eS" = ( -/obj/structure/surface/table/reinforced/almayer_B, -/turf/open/floor/almayer{ - icon_state = "blue" - }, +/obj/structure/surface/table/reinforced/black, +/turf/open/floor/almayer/blue, /area/adminlevel/chinook/offices) "eT" = ( /obj/structure/machinery/vending/security, /obj/structure/reagent_dispensers/peppertank{ pixel_x = 30 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/almayer/red/east, /area/adminlevel/chinook/sec) "eU" = ( /obj/effect/decal/warning_stripes{ icon_state = "SW-out" }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/west, /area/adminlevel/chinook/engineering) "eV" = ( -/obj/structure/bed/chair, +/obj/structure/bed/sofa/south/grey/left, /turf/open/floor/almayer, /area/adminlevel/chinook/cargo) +"eW" = ( +/obj/structure/surface/table/almayer, +/obj/item/toy/deck, +/turf/open/floor/almayer/plate, +/area/adminlevel/chinook) +"fb" = ( +/obj/structure/machinery/door_control{ + id = "chinookengilock"; + name = "Engineering Lockdown"; + pixel_x = 22; + pixel_y = -3; + req_one_access_txt = "2;3;12;19" + }, +/turf/open/floor/almayer/orange/northeast, +/area/adminlevel/chinook/engineering) "fd" = ( /obj/effect/decal/warning_stripes{ icon_state = "N" }, /obj/effect/decal/cleanable/liquid_fuel, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/engineering) +"fe" = ( +/obj/structure/surface/table/reinforced/almayer_B, +/obj/item/reagent_container/food/drinks/bottle/wine{ + pixel_y = 14; + pixel_x = 7 + }, +/obj/item/reagent_container/food/drinks/bottle/cognac{ + pixel_y = 13; + pixel_x = -6 + }, +/obj/item/reagent_container/food/drinks/drinkingglass{ + pixel_y = -3; + pixel_x = -3 + }, +/obj/item/reagent_container/food/drinks/drinkingglass{ + pixel_x = 6 + }, +/turf/open/floor/almayer/ai_floors, +/area/adminlevel/chinook/offices) "fg" = ( /obj/structure/sign/safety/storage{ pixel_y = -28 }, -/turf/open/floor/almayer{ - icon_state = "blue" - }, +/turf/open/floor/almayer/blue, /area/adminlevel/chinook/offices) +"fh" = ( +/turf/open/floor/almayer/uscm/directional/west, +/area/adminlevel/chinook/shuttle) "fi" = ( /obj/effect/decal/cleanable/liquid_fuel, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/cargo) "fk" = ( -/turf/open/floor/almayer{ - icon_state = "orange" - }, +/turf/open/floor/almayer/orange, /area/adminlevel/chinook/offices) "fm" = ( /obj/structure/sign/poster{ pixel_y = 32 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/almayer/blue/north, /area/adminlevel/chinook/offices) "fn" = ( /obj/structure/target, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/sec) "fp" = ( /obj/structure/bed/chair/comfy{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "blue" - }, +/turf/open/floor/almayer/blue/southeast, /area/adminlevel/chinook/offices) "fq" = ( /obj/structure/machinery/door/airlock/almayer/generic{ @@ -1478,27 +1478,25 @@ /turf/open/floor/almayer, /area/adminlevel/chinook/offices) "fs" = ( -/obj/structure/machinery/disposal, -/turf/open/floor/plating/plating_catwalk, -/area/adminlevel/chinook/sec) +/obj/structure/machinery/light{ + dir = 4 + }, +/obj/structure/machinery/iv_drip, +/turf/open/floor/almayer/sterile_green_side/east, +/area/adminlevel/chinook/medical) "fu" = ( /obj/structure/window/framed/almayer/hull, /turf/open/floor/plating, /area/adminlevel/chinook) "fv" = ( /obj/structure/machinery/disposal, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/north, /area/adminlevel/chinook/medical) "fw" = ( /obj/structure/machinery/door/airlock/almayer/generic{ dir = 2 }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/adminlevel/chinook/shuttle/unpowered) "fx" = ( /obj/structure/machinery/light{ @@ -1521,55 +1519,38 @@ /area/adminlevel/chinook/offices) "fz" = ( /obj/structure/surface/table/reinforced/black, -/obj/item/tool/lighter/zippo{ - pixel_x = 8; - pixel_y = 7 +/obj/item/clothing/suit/storage/bomber{ + name = "custom bomber jacket" }, -/obj/item/storage/fancy/cigar, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" +/obj/item/prop/flower_vase/redwhiteflowers{ + pixel_x = 7; + pixel_y = 11 }, +/turf/open/floor/wood, /area/adminlevel/chinook/offices) "fA" = ( -/obj/structure/sign/prop1{ - pixel_y = 32 - }, -/obj/structure/surface/table/reinforced/black, -/obj/item/paper/photograph, -/obj/item/storage/box/evidence{ - pixel_x = 4; - pixel_y = 4 - }, -/obj/item/book/manual/security_space_law{ - pixel_x = -9; - pixel_y = 5 - }, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" - }, -/area/adminlevel/chinook/offices) +/obj/structure/machinery/vending/cola, +/turf/open/floor/almayer/plating/northeast, +/area/adminlevel/chinook) "fB" = ( -/obj/structure/machinery/light{ - dir = 1 +/obj/structure/desertdam/decals/road_edge{ + pixel_x = 2; + pixel_y = 23 }, -/obj/structure/machinery/cm_vending/clothing/dress, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal7"; + pixel_x = 2; + pixel_y = -4 }, -/area/adminlevel/chinook/offices) +/turf/open/floor/wood, +/area/adminlevel/chinook) "fC" = ( -/obj/structure/machinery/photocopier, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" +/obj/structure/surface/table/reinforced/black, +/obj/item/paper_bin/uscm, +/obj/item/tool/pen/fountain{ + pixel_y = -3 }, +/turf/open/floor/wood, /area/adminlevel/chinook/offices) "fD" = ( /turf/closed/shuttle/ert{ @@ -1577,98 +1558,68 @@ }, /area/adminlevel/chinook/shuttle/unpowered) "fE" = ( -/obj/structure/surface/table/reinforced/black, -/obj/item/paper{ - pixel_x = -2; - pixel_y = 7 - }, -/obj/item/paper{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/paper/crumpled{ - pixel_x = 6; - pixel_y = 3 - }, -/obj/item/paper/crumpled{ - pixel_x = -6; - pixel_y = 2 - }, -/obj/item/tool/lighter, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" +/obj/structure/machinery/light{ + dir = 4 }, +/turf/open/floor/wood, /area/adminlevel/chinook/offices) "fF" = ( /obj/structure/bed/chair/comfy, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" - }, +/turf/open/floor/wood, /area/adminlevel/chinook/sec) "fG" = ( /obj/item/trash/cigbutt, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook/sec) "fH" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/recharger, /obj/item/clothing/glasses/hud/health, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_side" +/obj/structure/extinguisher_cabinet{ + pixel_y = 27 }, +/turf/open/floor/almayer/sterile_green_side/north, /area/adminlevel/chinook/medical) "fI" = ( -/obj/structure/sign/prop1{ - pixel_y = 32 - }, -/obj/structure/closet/secure_closet/commander{ - name = "colonel's locker" - }, -/obj/item/clothing/head/beret/marine/commander/council, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" +/obj/structure/barricade/metal{ + dir = 4 }, -/area/adminlevel/chinook/offices) +/turf/open/floor/almayer/cargo, +/area/adminlevel/chinook) "fJ" = ( /obj/structure/machinery/autolathe/full, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/engineering) "fK" = ( -/obj/structure/closet/secure_closet/securecom{ - name = "colonel's secure box" - }, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" +/obj/structure/surface/table/reinforced/black, +/obj/structure/machinery/computer/card{ + dir = 4 }, +/turf/open/floor/carpet, /area/adminlevel/chinook/offices) +"fL" = ( +/obj/structure/machinery/light, +/turf/open/floor/almayer/blue/north, +/area/adminlevel/chinook) "fM" = ( /obj/structure/machinery/body_scanconsole, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/adminlevel/chinook/sec) "fO" = ( /obj/structure/surface/table/reinforced/black, -/obj/structure/machinery/computer/card, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" +/obj/item/paper_bin/uscm{ + pixel_x = -8; + pixel_y = 8 + }, +/obj/item/device/flashlight/lamp{ + pixel_y = 8; + pixel_x = 6 + }, +/obj/item/tool/pen/fountain{ + pixel_x = -8; + pixel_y = 5 }, +/turf/open/floor/wood, /area/adminlevel/chinook/offices) "fP" = ( /turf/closed/shuttle/ert{ @@ -1679,45 +1630,19 @@ /obj/effect/decal/warning_stripes{ icon_state = "N" }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/engineering) "fR" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/obj/structure/closet/secure_closet/securecom{ - name = "colonel's secure box" - }, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" - }, +/obj/structure/machinery/photocopier, +/turf/open/floor/wood, /area/adminlevel/chinook/offices) "fS" = ( -/obj/structure/surface/table/reinforced/black, -/obj/item/storage/fancy/cigarettes/blackpack{ - pixel_x = -6; - pixel_y = 10 - }, -/obj/item/clothing/mask/cigarette/bcigarette{ - pixel_y = 3 - }, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" - }, +/obj/structure/machinery/cm_vending/clothing/dress, +/turf/open/floor/wood, /area/adminlevel/chinook/offices) "fU" = ( /obj/structure/closet/emcloset, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/offices) "fV" = ( /obj/structure/sign/safety/maint{ @@ -1727,52 +1652,34 @@ /obj/structure/sign/safety/south{ pixel_y = 25 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/north, /area/adminlevel/chinook) "fW" = ( /obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/northwest, /area/adminlevel/chinook/offices) "fX" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/toolbox, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/northeast, /area/adminlevel/chinook/offices) "fY" = ( -/obj/structure/largecrate/random/case/double, -/turf/open/floor/almayer{ - icon_state = "cargo" +/obj/structure/surface/table/reinforced/almayer_B, +/obj/item/folder/yellow{ + pixel_y = 7 }, +/turf/open/floor/almayer, /area/adminlevel/chinook) "fZ" = ( -/obj/structure/machinery/cm_vending/gear/synth, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/green/north, /area/adminlevel/chinook) "ga" = ( -/obj/structure/machinery/cm_vending/clothing/synth, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/obj/structure/bed/chair, +/turf/open/floor/almayer, /area/adminlevel/chinook) "gb" = ( -/obj/structure/machinery/cm_vending/clothing/synth/snowflake, -/obj/structure/machinery/light{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/obj/structure/machinery/cm_vending/clothing/synth, +/turf/open/floor/almayer/cargo, /area/adminlevel/chinook) "gc" = ( /turf/closed/wall/almayer, @@ -1788,71 +1695,47 @@ /turf/open/floor/almayer, /area/adminlevel/chinook/cargo) "ge" = ( -/obj/structure/machinery/recharge_station, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/green/east, /area/adminlevel/chinook) -"gh" = ( -/obj/structure/closet/firecloset, -/turf/open/floor/almayer{ - icon_state = "cargo" +"gg" = ( +/turf/closed/shuttle/elevator{ + dir = 4 }, -/area/adminlevel/chinook) +/area/adminlevel/chinook/cargo) +"gh" = ( +/turf/closed/wall/almayer/reinforced, +/area/adminlevel/chinook/cryo) "gi" = ( -/obj/structure/reagent_dispensers/water_cooler/stacks, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/structure/machinery/disposal, +/turf/open/floor/almayer/sterile_green_side/east, +/area/adminlevel/chinook/offices) +"gj" = ( +/obj/structure/barricade/handrail/strata, +/turf/open/floor/almayer/blue/west, +/area/adminlevel/chinook) +"gl" = ( +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_21" }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook) -"gj" = ( -/obj/structure/surface/table/reinforced/black, -/obj/item/ashtray/glass{ - pixel_y = 4 - }, -/obj/item/storage/fancy/cigarettes/kpack{ - pixel_x = -11; - pixel_y = 7 - }, -/obj/item/clothing/mask/cigarette{ - pixel_x = 5; - pixel_y = 3 - }, -/obj/item/clothing/mask/cigarette, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, -/area/adminlevel/chinook/offices) -"gk" = ( -/obj/structure/sign/goldenplaque{ - pixel_y = 27 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/adminlevel/chinook) -"gl" = ( -/obj/structure/flora/pottedplant{ - icon_state = "pottedplant_21" - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/adminlevel/chinook) -"gm" = ( -/obj/structure/machinery/light, -/turf/open/floor/plating/plating_catwalk, -/area/adminlevel/chinook/engineering) -"go" = ( -/obj/structure/machinery/shower{ - dir = 4 +"gm" = ( +/obj/structure/machinery/light, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/chinook/engineering) +"go" = ( +/obj/structure/machinery/shower{ + dir = 4 }, /obj/structure/machinery/door/window/westright{ dir = 4 }, /turf/open/floor/plating/plating_catwalk, /area/adminlevel/chinook/offices) +"gp" = ( +/obj/structure/largecrate/supply/supplies/metal, +/turf/open/floor/almayer/plating/northeast, +/area/adminlevel/chinook/cargo) "gq" = ( /obj/item/storage/box/drinkingglasses, /obj/structure/surface/table/reinforced/black, @@ -1868,25 +1751,19 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/north, /area/adminlevel/chinook/engineering) "gv" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/structure/machinery/chem_dispenser/soda/beer, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook/event) "gw" = ( -/obj/effect/decal/cleanable/ash, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" +/obj/structure/bed/chair/comfy{ + dir = 1 }, -/area/adminlevel/chinook/offices) +/turf/open/floor/carpet, +/area/adminlevel/chinook) "gy" = ( /turf/closed/shuttle/ert{ icon_state = "stan20" @@ -1900,22 +1777,17 @@ /obj/item/reagent_container/food/snacks/fishandchips, /obj/item/reagent_container/food/snacks/grilledcheese, /obj/item/reagent_container/food/snacks/grilledcheese, -/turf/open/floor/prison{ - icon_state = "kitchen" +/obj/structure/machinery/light{ + dir = 8 }, -/area/space) +/turf/open/floor/prison/kitchen, +/area/adminlevel/chinook/event) "gA" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/west, /area/adminlevel/chinook/offices) "gB" = ( /obj/structure/closet/toolcloset, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/east, /area/adminlevel/chinook/offices) "gC" = ( /obj/structure/bed/chair{ @@ -1923,6 +1795,25 @@ }, /turf/open/floor/almayer, /area/adminlevel/chinook) +"gD" = ( +/obj/structure/machinery/disposal, +/obj/structure/machinery/light{ + dir = 4 + }, +/turf/open/floor/almayer/plate, +/area/adminlevel/chinook/medical) +"gF" = ( +/obj/structure/machinery/door/airlock/almayer/security/glass{ + name = "\improper Provost Offices" + }, +/turf/open/floor/almayer/red, +/area/adminlevel/chinook/sec) +"gG" = ( +/obj/structure/sign/safety/security{ + pixel_y = -25 + }, +/turf/open/floor/almayer/silver, +/area/adminlevel/chinook) "gH" = ( /obj/structure/sign/safety/press_area_ag{ pixel_y = 24 @@ -1941,62 +1832,53 @@ req_access_txt = "6" }, /obj/structure/largecrate/random/case/double, -/turf/open/floor/almayer{ - icon_state = "tcomms" - }, +/turf/open/floor/almayer/tcomms, /area/adminlevel/chinook/engineering) "gK" = ( -/obj/structure/kitchenspike, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, -/area/space) +/turf/open/floor/almayer/blue/east, +/area/adminlevel/chinook) "gL" = ( -/turf/open/floor/almayer{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/almayer/red/northwest, +/area/adminlevel/chinook) +"gM" = ( +/obj/structure/platform_decoration/strata/metal, +/turf/open/gm/river/pool, /area/adminlevel/chinook) "gN" = ( /obj/structure/machinery/cm_vending/sorted/marine_food, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/almayer/red/west, /area/adminlevel/chinook/sec) -"gP" = ( -/turf/open/floor/almayer{ - dir = 5; - icon_state = "orange" +"gO" = ( +/obj/structure/machinery/door/poddoor/almayer/open{ + id = "chinookengilock"; + name = "Engineering Sector Lockdown"; + dir = 4 }, +/turf/open/floor/almayer, +/area/adminlevel/chinook/cryo) +"gP" = ( +/turf/open/floor/almayer/orange/northeast, /area/adminlevel/chinook) "gQ" = ( /obj/structure/closet/firecloset, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/offices) "gS" = ( /obj/effect/decal/cleanable/cobweb2, /obj/structure/machinery/power/smes, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/engineering) "gT" = ( -/obj/structure/machinery/telecomms/relay/preset/centcom, -/turf/open/floor/almayer{ - icon_state = "tcomms" - }, +/obj/structure/machinery/telecomms/relay, +/turf/open/floor/almayer/tcomms, +/area/adminlevel/chinook/engineering) +"gU" = ( +/obj/item/stack/sheet/metal/large_stack, +/turf/open/floor/plating, /area/adminlevel/chinook/engineering) "gV" = ( /obj/structure/largecrate/random/case/double, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/southwest, /area/adminlevel/chinook/offices) "gW" = ( /obj/structure/machinery/door/airlock/almayer/security{ @@ -2015,9 +1897,11 @@ pixel_y = 8 }, /obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "orange" +/obj/item/stack/cable_coil{ + pixel_x = 20; + pixel_y = 5 }, +/turf/open/floor/almayer/orange, /area/adminlevel/chinook/offices) "gZ" = ( /obj/structure/surface/table/reinforced/almayer_B, @@ -2025,26 +1909,54 @@ pixel_y = 7 }, /obj/item/clothing/head/welding, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/southeast, /area/adminlevel/chinook/offices) -"hc" = ( -/turf/open/shuttle/dropship{ - icon_state = "rasputin6" +"ha" = ( +/obj/structure/surface/table/reinforced/almayer_B, +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_29"; + pixel_x = 1; + pixel_y = 10 }, +/turf/open/floor/prison/kitchen, +/area/adminlevel/chinook/event) +"hc" = ( +/turf/open/shuttle/dropship/light_grey_top_left, /area/adminlevel/chinook/shuttle/unpowered) "hd" = ( /obj/structure/largecrate/random, -/turf/open/floor/almayer{ - icon_state = "orange" - }, +/obj/item/circuitboard/airlock, +/turf/open/floor/almayer/orange, /area/adminlevel/chinook/engineering) "he" = ( -/obj/structure/machinery/vending/cigarette/colony, -/turf/open/floor/almayer, +/obj/structure/displaycase, +/turf/open/floor/kutjevo, +/area/adminlevel/chinook/offices) +"hf" = ( +/obj/structure/surface/table/reinforced/black, +/obj/item/folder/yellow{ + pixel_y = 9; + pixel_x = -3 + }, +/obj/structure/machinery/light{ + dir = 8 + }, +/obj/item/prop/tableflag/uscm2{ + pixel_y = 6; + pixel_x = 10 + }, +/turf/open/floor/carpet, /area/adminlevel/chinook/offices) +"hg" = ( +/obj/structure/desertdam/decals/road_edge{ + pixel_x = 16 + }, +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal3"; + pixel_y = -12 + }, +/turf/open/floor/wood, +/area/adminlevel/chinook) "hh" = ( /obj/structure/bed/chair/comfy, /turf/open/floor/kutjevo/tan/plate, @@ -2053,74 +1965,69 @@ /obj/structure/stairs/perspective{ icon_state = "p_stair_full" }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/cargo) "hk" = ( /obj/structure/surface/rack, /obj/item/reagent_container/spray/cleaner, /obj/item/reagent_container/spray/cleaner, -/turf/open/floor/almayer, -/area/adminlevel/chinook) -"hl" = ( -/obj/structure/bed/chair/office/dark{ - dir = 4 +/obj/structure/machinery/light{ + dir = 8 }, /turf/open/floor/plating/plating_catwalk, /area/adminlevel/chinook) -"hm" = ( -/obj/structure/surface/table/reinforced/almayer_B, -/obj/structure/machinery/computer/emails{ - dir = 8; - pixel_x = -3; - pixel_y = 6 +"hl" = ( +/obj/structure/closet/secure_closet/personal/patient{ + name = "morgue closet" }, -/turf/open/floor/almayer, -/area/adminlevel/chinook) +/turf/open/floor/almayer/plate, +/area/adminlevel/chinook/medical) +"hm" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/almayer/green/north, +/area/adminlevel/chinook/event) "ho" = ( -/obj/structure/closet{ - name = "boxing attire" - }, -/obj/item/clothing/under/shorts/blue, -/obj/item/clothing/under/shorts/blue, -/obj/item/clothing/under/shorts/red, -/obj/item/clothing/under/shorts/red, -/obj/item/clothing/under/shorts/green, -/obj/item/clothing/under/shorts/green, -/obj/item/clothing/under/shorts/black, -/obj/item/clothing/under/shorts/black, -/obj/item/clothing/under/shorts/grey, -/obj/item/clothing/under/shorts/grey, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/structure/desertdam/decals/road_edge{ + pixel_x = 2 }, +/turf/open/floor/wood, /area/adminlevel/chinook) "hp" = ( /obj/structure/machinery/disposal, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/offices) "hq" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/obj/structure/machinery/cm_vending/sorted/marine_food, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/offices) "hr" = ( /obj/structure/barricade/handrail{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "plate" +/turf/open/floor/almayer/plate, +/area/adminlevel/chinook) +"ht" = ( +/obj/structure/desertdam/decals/road_edge{ + pixel_x = 2 + }, +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal3"; + pixel_y = -12 }, +/turf/open/floor/wood, /area/adminlevel/chinook) +"hv" = ( +/obj/structure/bed/chair/comfy{ + dir = 1 + }, +/obj/structure/sign/safety/galley{ + pixel_x = 32 + }, +/turf/open/floor/kutjevo/tan, +/area/adminlevel/chinook/event) "hw" = ( /obj/structure/machinery/door_control{ id = "provostinterrog"; @@ -2128,9 +2035,7 @@ pixel_x = -25; req_one_access_txt = "2;3;12;19" }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook/sec) "hA" = ( /obj/structure/surface/table/reinforced/almayer_B, @@ -2142,41 +2047,33 @@ pixel_x = 3; pixel_y = 5 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/adminlevel/chinook/event) "hB" = ( /obj/structure/machinery/cm_vending/sorted/marine_food, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/offices) "hC" = ( /obj/structure/closet/secure_closet/freezer/fridge/full, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/offices) "hD" = ( /obj/item/storage/box/drinkingglasses, /obj/structure/surface/table/reinforced/almayer_B, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/offices) "hE" = ( /obj/structure/sign/prop1{ pixel_y = 32 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/almayer/blue/north, /area/adminlevel/chinook/offices) +"hF" = ( +/obj/structure/sign/safety/bathunisex{ + pixel_y = 25 + }, +/turf/open/floor/almayer, +/area/adminlevel/chinook/cargo) "hG" = ( /obj/structure/machinery/light{ dir = 1 @@ -2185,27 +2082,20 @@ pixel_y = 5 }, /obj/structure/surface/table/reinforced/almayer_B, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/offices) "hI" = ( -/obj/structure/machinery/microwave, -/obj/structure/surface/table/reinforced/almayer_B, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" +/obj/structure/machinery/microwave{ + pixel_y = 6 }, +/obj/structure/surface/table/reinforced/almayer_B, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/offices) "hJ" = ( /obj/structure/sign/safety/coffee{ pixel_x = -16 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/plating/plating_catwalk, /area/adminlevel/chinook/offices) "hK" = ( /obj/structure/surface/table/reinforced/black, @@ -2216,55 +2106,33 @@ /obj/item/tool/pen{ pixel_y = 3 }, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, +/turf/open/floor/carpet, /area/adminlevel/chinook/offices) -"hL" = ( -/obj/structure/surface/table/reinforced/black, -/obj/item/clothing/mask/cigarette/pipe{ - pixel_y = 5 - }, -/obj/item/reagent_container/food/drinks/cans/waterbottle{ - pixel_x = 5; - pixel_y = 5 - }, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" +"hM" = ( +/obj/structure/machinery/door/poddoor/almayer{ + id = "chinookairlock1"; + name = "\improper Chinook Shuttle Airlock" }, -/area/adminlevel/chinook/offices) +/turf/open/floor/plating, +/area/adminlevel/chinook/shuttle) "hN" = ( -/obj/structure/surface/table/reinforced/black, -/obj/item/tool/lighter/zippo{ - pixel_x = 8; - pixel_y = 7 - }, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" +/obj/structure/barricade/metal{ + dir = 8 }, -/area/adminlevel/chinook/offices) +/turf/open/floor/almayer/cargo, +/area/adminlevel/chinook) "hP" = ( -/turf/open/floor/almayer{ - dir = 10; - icon_state = "blue" - }, +/turf/open/floor/almayer/blue/southwest, /area/adminlevel/chinook) "hQ" = ( /obj/structure/closet/firecloset, -/turf/open/floor/almayer{ - icon_state = "test_floor5" - }, +/turf/open/floor/almayer/test_floor5, /area/adminlevel/chinook/cryo) "hS" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/attachment, /obj/effect/spawner/random/attachment, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/adminlevel/chinook/cargo) "hT" = ( /obj/structure/closet/secure_closet/guncabinet/red, @@ -2280,15 +2148,10 @@ /obj/structure/closet/fireaxecabinet{ pixel_y = 25 }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/adminlevel/chinook/offices) "hW" = ( -/turf/open/floor/almayer{ - dir = 6; - icon_state = "emerald" - }, +/turf/open/floor/almayer/emerald/southeast, /area/adminlevel/chinook) "hX" = ( /obj/structure/machinery/light{ @@ -2306,10 +2169,7 @@ /obj/item/device/healthanalyzer, /obj/item/device/healthanalyzer, /obj/item/device/healthanalyzer, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/west, /area/adminlevel/chinook/medical) "hZ" = ( /obj/structure/sign/prop1{ @@ -2323,50 +2183,36 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/offices) "ib" = ( /obj/structure/machinery/door/airlock/almayer/security/glass{ dir = 2; name = "\improper Millitary Police Armory" }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/sec) "ic" = ( /obj/structure/machinery/cm_vending/sorted/attachments, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/offices) -"ie" = ( -/obj/structure/machinery/light{ - dir = 8 +"id" = ( +/obj/structure/sign/safety/biohazard{ + pixel_x = -18 }, -/turf/open/floor/almayer, -/area/adminlevel/chinook) +/turf/open/floor/almayer/dark_sterile, +/area/adminlevel/chinook/medical) "ih" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook) "ik" = ( /obj/structure/machinery/floodlight/landing{ name = "Floodlight" }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/cargo) "il" = ( /obj/structure/platform{ @@ -2380,19 +2226,14 @@ icon_state = "p_stair_ew_full_cap"; layer = 2.1 }, -/obj/structure/platform{ - dir = 1; - layer = 2 - }, +/obj/structure/platform/stair_cut/alt, /turf/open/floor/kutjevo/plate, /area/adminlevel/chinook/event) "ip" = ( /turf/open/floor/kutjevo/tan/alt_inner_edge, /area/adminlevel/chinook/event) "iq" = ( -/turf/open/floor/kutjevo/tan/alt_inner_edge{ - dir = 1 - }, +/turf/open/floor/kutjevo/tan/alt_inner_edge/north, /area/adminlevel/chinook/event) "ir" = ( /obj/structure/toilet{ @@ -2401,15 +2242,19 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook) "is" = ( -/obj/structure/machinery/disposal, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/structure/surface/table/reinforced/black, +/obj/item/storage/box/cups{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/storage/box/cups{ + pixel_x = 3; + pixel_y = 3 }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook/sec) "iu" = ( /obj/structure/stairs/perspective{ @@ -2417,12 +2262,21 @@ icon_state = "p_stair_ew_full_cap"; layer = 2.1 }, -/obj/structure/platform{ - dir = 1; - layer = 2 - }, +/obj/structure/platform/stair_cut, /turf/open/floor/kutjevo/plate, /area/adminlevel/chinook/event) +"iw" = ( +/obj/structure/platform/stair_cut, +/obj/structure/stairs/perspective{ + dir = 8; + icon_state = "p_stair_ew_full_cap"; + layer = 3.5 + }, +/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ + pixel_y = 25 + }, +/turf/open/floor/almayer/plating/northeast, +/area/adminlevel/chinook/engineering) "ix" = ( /obj/structure/machinery/door_control{ id = "chinookarmory1"; @@ -2433,31 +2287,38 @@ /obj/effect/decal/warning_stripes{ icon_state = "N" }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/offices) "iy" = ( /obj/structure/closet/secure_closet/engineering_electrical, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook/engineering) -"iC" = ( -/obj/structure/target{ - name = "punching bag" - }, -/turf/open/floor/almayer{ - icon_state = "plate" +"iA" = ( +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal3"; + pixel_y = 16 }, +/turf/open/floor/wood, /area/adminlevel/chinook) +"iC" = ( +/obj/structure/morgue, +/obj/structure/machinery/light{ + dir = 8 + }, +/turf/open/floor/almayer/plate, +/area/adminlevel/chinook/medical) "iD" = ( /obj/structure/platform_decoration, /turf/open/floor/kutjevo, /area/adminlevel/chinook/event) -"iG" = ( -/obj/structure/platform, +"iF" = ( +/obj/structure/sign/prop2{ + pixel_y = 30 + }, +/turf/open/floor/strata/faux_wood, +/area/adminlevel/chinook/offices) +"iG" = ( +/obj/structure/platform, /obj/structure/stairs/perspective{ dir = 8; icon_state = "p_stair_full" @@ -2465,10 +2326,15 @@ /turf/open/floor/kutjevo/plate, /area/adminlevel/chinook/event) "iH" = ( -/turf/open/floor/kutjevo/tan/alt_inner_edge{ - dir = 4 - }, +/turf/open/floor/kutjevo/tan/alt_inner_edge/east, /area/adminlevel/chinook/event) +"iK" = ( +/obj/structure/largecrate/machine/autodoc, +/obj/structure/machinery/light{ + dir = 1 + }, +/turf/open/floor/almayer/plate, +/area/adminlevel/chinook/medical) "iL" = ( /obj/structure/platform, /obj/structure/stairs/perspective{ @@ -2484,24 +2350,18 @@ /turf/open/floor/kutjevo, /area/adminlevel/chinook/event) "iO" = ( -/obj/structure/surface/table/reinforced/almayer_B, /obj/item/trash/USCMtray{ pixel_x = 6; pixel_y = 4 }, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" - }, +/obj/structure/surface/table/reinforced/black, +/turf/open/floor/wood, /area/adminlevel/chinook/offices) "iP" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/almayer{ - icon_state = "plating_striped" - }, +/turf/open/floor/almayer/plating_striped, /area/adminlevel/chinook/engineering) "iS" = ( /obj/structure/machinery/door/airlock/almayer/security/glass{ @@ -2513,10 +2373,7 @@ id = "chinook_solitary2"; name = "Solitary Cell 2 Shutters" }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/sec) "iT" = ( /turf/closed/wall/almayer, @@ -2525,12 +2382,8 @@ /obj/item/pizzabox/meat{ pixel_y = 8 }, -/obj/structure/surface/table/reinforced/almayer_B, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" - }, +/obj/structure/surface/table/reinforced/black, +/turf/open/floor/wood, /area/adminlevel/chinook/offices) "iW" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/comdoor{ @@ -2541,31 +2394,27 @@ /area/adminlevel/chinook/offices) "iY" = ( /obj/structure/sign/safety/medical{ - pixel_y = 25 + pixel_x = 32 }, -/obj/structure/sign/safety/east{ - pixel_x = 12; - pixel_y = 25 +/obj/structure/sign/safety/south{ + pixel_x = 32; + pixel_y = -12 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "silver" +/obj/structure/sign/safety/security{ + pixel_x = 32; + pixel_y = 12 }, +/turf/open/floor/almayer/silver/east, /area/adminlevel/chinook) "iZ" = ( -/turf/open/floor/almayer{ - icon_state = "orangecorner" - }, +/turf/open/floor/almayer/orangecorner, /area/adminlevel/chinook/engineering) "ja" = ( /obj/structure/surface/table/almayer, /obj/item/storage/firstaid/adv, /obj/item/storage/firstaid/adv, /obj/item/storage/firstaid/adv, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/east, /area/adminlevel/chinook/medical) "jb" = ( /obj/structure/platform{ @@ -2574,23 +2423,15 @@ /obj/structure/stairs/perspective{ icon_state = "p_stair_full" }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/cargo) "jc" = ( /obj/structure/machinery/door/airlock/almayer/command{ dir = 1; - name = "\improper Colonel, Third Division" + name = "Office of LtCol. Misti Rockwell" }, -/turf/open/floor/almayer, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook/offices) -"jd" = ( -/turf/open/floor/almayer/uscm/directional{ - dir = 4 - }, -/area/adminlevel/chinook/shuttle) "je" = ( /obj/item/clothing/head/welding, /turf/open/floor/almayer, @@ -2604,9 +2445,9 @@ "jg" = ( /obj/structure/machinery/door/airlock/almayer/command{ dir = 1; - name = "\improper Colonel, First Division" + name = "Office of LtCol. Karl Walz" }, -/turf/open/floor/almayer, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook/offices) "ji" = ( /obj/structure/machinery/door/airlock/almayer/command{ @@ -2617,18 +2458,12 @@ id = "chinookarmory1"; name = "Armory Lockdown" }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/offices) "jj" = ( /obj/structure/surface/table/almayer, /obj/item/clothing/head/welding, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/north, /area/adminlevel/chinook/engineering) "jk" = ( /obj/structure/surface/table/reinforced/almayer_B, @@ -2643,50 +2478,39 @@ /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/offices) "jm" = ( /obj/structure/machinery/vending/coffee, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/offices) "jo" = ( /obj/structure/surface/table/almayer, /obj/item/roller, /obj/item/roller, /obj/item/roller, -/turf/open/floor/almayer{ - icon_state = "sterile_green" - }, +/turf/open/floor/almayer/sterile_green, /area/adminlevel/chinook/sec) "jp" = ( /obj/structure/stairs/perspective{ icon_state = "p_stair_ew_full_cap"; layer = 3.5 }, -/obj/structure/platform{ - dir = 1 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/obj/structure/platform/stair_cut/alt, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/engineering) "jq" = ( /turf/closed/wall/almayer/outer, /area/adminlevel/chinook/shuttle/unpowered) "jr" = ( -/obj/structure/machinery/light, -/obj/structure/machinery/medical_pod/bodyscanner, -/turf/open/floor/almayer{ - icon_state = "sterile_green_side" - }, -/area/adminlevel/chinook/medical) +/obj/structure/cargo_container/arious/right, +/turf/open/floor/corsat/squares, +/area/adminlevel/chinook/cargo) +"js" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/reagent_container/food/condiment/enzyme, +/turf/open/floor/prison/kitchen, +/area/adminlevel/chinook/event) "ju" = ( /obj/structure/machinery/door/airlock/almayer/generic{ name = "\improper Gym" @@ -2695,24 +2519,25 @@ /area/adminlevel/chinook) "jv" = ( /obj/structure/closet/secure_closet/freezer/meat, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook/event) "jw" = ( /obj/structure/machinery/gibber, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, -/area/space) +/turf/open/floor/prison/kitchen, +/area/adminlevel/chinook/event) "jy" = ( /obj/structure/sign/safety/fridge{ pixel_x = 7; pixel_y = 24 }, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/structure/machinery/microwave{ + pixel_y = -4 + }, +/obj/structure/machinery/microwave{ + layer = 2.83; + pixel_y = 10 }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook/event) "jz" = ( /obj/structure/machinery/microwave{ @@ -2722,25 +2547,39 @@ layer = 2.83; pixel_y = 10 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook/event) +"jA" = ( +/obj/structure/filingcabinet{ + density = 0; + pixel_x = -8; + pixel_y = 16 + }, +/obj/structure/filingcabinet{ + density = 0; + pixel_x = 8; + pixel_y = 16 + }, +/turf/open/floor/wood, +/area/adminlevel/chinook/offices) "jC" = ( /obj/structure/machinery/space_heater{ pixel_x = -1; pixel_y = 9 }, /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook/event) -"jE" = ( -/obj/structure/machinery/vending/dinnerware, -/turf/open/floor/almayer{ - icon_state = "plate" +"jD" = ( +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal3"; + pixel_y = -12 }, +/turf/open/floor/wood, +/area/adminlevel/chinook) +"jE" = ( +/obj/structure/machinery/seed_extractor, +/turf/open/floor/plating/plating_catwalk, /area/adminlevel/chinook/event) "jF" = ( /turf/closed/wall/almayer, @@ -2748,34 +2587,20 @@ "jG" = ( /obj/structure/surface/rack, /obj/item/reagent_container/spray/cleaner, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook/event) "jI" = ( -/obj/structure/machinery/computer/card{ - dir = 4 - }, -/obj/structure/surface/table/reinforced/black, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, -/area/adminlevel/chinook/offices) +/obj/item/stack/sheet/wood/large_stack, +/turf/open/floor/plating, +/area/adminlevel/chinook/engineering) "jJ" = ( /obj/structure/surface/rack, /obj/item/device/lightreplacer, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook/event) "jK" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/device/multitool, -/obj/item/fuelCell{ - pixel_x = 5; - pixel_y = 7 - }, /turf/open/floor/almayer, /area/adminlevel/chinook/engineering) "jN" = ( @@ -2795,13 +2620,7 @@ pixel_x = 12; pixel_y = 25 }, -/obj/structure/sign/safety/west{ - pixel_y = 25 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/north, /area/adminlevel/chinook) "jR" = ( /turf/closed/shuttle/ert{ @@ -2809,18 +2628,11 @@ }, /area/adminlevel/chinook/shuttle/unpowered) "jS" = ( -/obj/structure/sign/safety/coffee{ - pixel_x = 12; - pixel_y = 25 - }, -/obj/structure/sign/safety/west{ +/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ pixel_y = 25 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "blue" - }, -/area/adminlevel/chinook/offices) +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/chinook/engineering) "jT" = ( /obj/structure/sign/safety/ammunition{ pixel_x = 32; @@ -2830,77 +2642,52 @@ pixel_x = 32; pixel_y = -8 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/almayer/blue/east, /area/adminlevel/chinook/offices) "jU" = ( /obj/structure/machinery/cm_vending/clothing/commanding_officer, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/offices) "jV" = ( /obj/structure/closet/secure_closet/medical3, /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/west, /area/adminlevel/chinook/medical) "jW" = ( /obj/structure/surface/rack, /obj/item/storage/toolbox/mechanical, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/offices) "jY" = ( -/turf/open/floor/almayer{ - icon_state = "silvercorner" - }, +/turf/open/floor/almayer/silvercorner, /area/adminlevel/chinook) "jZ" = ( -/turf/open/floor/almayer{ - dir = 6; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/southeast, /area/adminlevel/chinook) "ka" = ( /obj/structure/machinery/cm_vending/sorted/cargo_guns, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook/cargo) "kd" = ( /obj/structure/machinery/vending/cola, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook) "kf" = ( -/obj/item/tool/kitchen/tray, -/obj/item/tool/kitchen/utensil/fork, -/obj/structure/surface/table/reinforced/black, -/turf/open/floor/kutjevo/tan, -/area/adminlevel/chinook/event) +/obj/structure/reagent_dispensers/water_cooler, +/turf/open/floor/wood, +/area/adminlevel/chinook/offices) "kg" = ( /obj/structure/machinery/cm_vending/sorted/medical, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook) "ki" = ( /obj/structure/machinery/door/airlock/almayer/command{ dir = 1; - name = "\improper Colonel, Second Division" + name = "Office of LtCol. Hunter Stanford" }, -/turf/open/floor/almayer, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook/offices) "kj" = ( /obj/structure/machinery/shower{ @@ -2910,46 +2697,29 @@ dir = 4 }, /obj/structure/window/reinforced/tinted/frosted, -/turf/open/floor/almayer, +/turf/open/floor/plating/plating_catwalk, /area/adminlevel/chinook/offices) "kk" = ( /obj/structure/machinery/cm_vending/sorted/attachments, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/adminlevel/chinook/sec) -"kl" = ( -/obj/structure/machinery/body_scanconsole, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_side" - }, -/area/adminlevel/chinook/offices) "km" = ( /obj/structure/machinery/light{ dir = 1 }, /obj/structure/machinery/disposal, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/almayer/green/north, /area/adminlevel/chinook/cargo) "kn" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/east, /area/adminlevel/chinook/engineering) "ko" = ( /obj/structure/machinery/cm_vending/sorted/medical/marinemed, /obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook) "kp" = ( /obj/item/storage/firstaid/adv{ @@ -2962,45 +2732,27 @@ }, /obj/item/storage/firstaid/adv, /obj/structure/surface/table/reinforced/black, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook) "kq" = ( /obj/structure/machinery/disposal, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook) "kr" = ( -/obj/structure/machinery/medical_pod/sleeper{ - dir = 8 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "sterile_green_side" - }, +/obj/structure/machinery/medical_pod/sleeper, +/turf/open/floor/almayer/sterile_green_side/east, /area/adminlevel/chinook/sec) "ks" = ( /obj/structure/machinery/disposal, -/turf/open/floor/almayer{ - icon_state = "blue" - }, +/turf/open/floor/almayer/blue, /area/adminlevel/chinook/offices) "ku" = ( -/obj/structure/machinery/medical_pod/bodyscanner, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_corner" - }, +/obj/structure/machinery/cm_vending/sorted/medical/blood, +/turf/open/floor/almayer/sterile_green_corner/north, /area/adminlevel/chinook/offices) "kv" = ( -/obj/structure/machinery/light, /obj/structure/largecrate/random/barrel/red, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/cargo) "kw" = ( /obj/structure/sink{ @@ -3008,9 +2760,7 @@ pixel_x = -12; pixel_y = 2 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/adminlevel/chinook/event) "kx" = ( /obj/structure/flora/pottedplant{ @@ -3027,10 +2777,7 @@ "kB" = ( /obj/item/device/flashlight/lamp/green, /obj/structure/surface/table/reinforced/black, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, +/turf/open/floor/carpet, /area/adminlevel/chinook/event) "kC" = ( /obj/structure/surface/table/reinforced/black, @@ -3038,10 +2785,7 @@ name = "Courtroom Procedures"; pixel_y = 10 }, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, +/turf/open/floor/carpet, /area/adminlevel/chinook/event) "kD" = ( /obj/item/reagent_container/food/drinks/coffee{ @@ -3049,10 +2793,7 @@ pixel_y = 7 }, /obj/structure/surface/table/reinforced/black, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, +/turf/open/floor/carpet, /area/adminlevel/chinook/event) "kF" = ( /obj/structure/sign/nosmoking_2{ @@ -3061,10 +2802,7 @@ /obj/structure/morgue{ dir = 8 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/east, /area/adminlevel/chinook/sec) "kG" = ( /obj/item/paper_bin/uscm{ @@ -3072,22 +2810,26 @@ }, /obj/item/tool/pen, /obj/structure/surface/table/reinforced/black, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" +/turf/open/floor/carpet, +/area/adminlevel/chinook/event) +"kI" = ( +/obj/structure/machinery/light{ + dir = 4 }, +/turf/open/floor/kutjevo, /area/adminlevel/chinook/event) "kJ" = ( -/obj/item/tool/lighter/zippo, /obj/structure/surface/table/reinforced/black, -/obj/item/reagent_container/food/drinks/drinkingglass/cola{ +/obj/structure/machinery/computer/communications{ + dir = 8; pixel_x = -3; - pixel_y = 6 + pixel_y = 13 }, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" +/obj/item/prop/tableflag/uscm{ + pixel_x = -9; + pixel_y = -11 }, +/turf/open/floor/carpet, /area/adminlevel/chinook/offices) "kK" = ( /obj/structure/machinery/floodlight, @@ -3095,31 +2837,21 @@ /area/adminlevel/chinook/engineering) "kL" = ( /obj/structure/bed/sofa/south/grey/right, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/almayer/blue/north, /area/adminlevel/chinook/offices) "kM" = ( /obj/structure/machinery/cm_vending/sorted/boozeomat, -/turf/open/floor/almayer{ - icon_state = "blue" - }, +/turf/open/floor/almayer/blue, /area/adminlevel/chinook/offices) "kN" = ( /obj/structure/machinery/vending/cigarette/colony, -/turf/open/floor/almayer{ - icon_state = "blue" - }, +/turf/open/floor/almayer/blue, /area/adminlevel/chinook/offices) "kP" = ( /obj/structure/sign/safety/coffee{ pixel_x = -16 }, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "blue" - }, +/turf/open/floor/almayer/blue/southwest, /area/adminlevel/chinook/offices) "kQ" = ( /obj/structure/surface/table/almayer, @@ -3127,9 +2859,7 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "sterile_green_corner" - }, +/turf/open/floor/almayer/sterile_green_corner, /area/adminlevel/chinook/medical) "kR" = ( /obj/structure/machinery/light{ @@ -3139,73 +2869,56 @@ pixel_y = 3 }, /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/adminlevel/chinook/event) "kS" = ( /obj/structure/machinery/disposal, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/adminlevel/chinook/event) "kT" = ( /obj/item/tool/kitchen/knife, /obj/item/tool/kitchen/rollingpin, /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/adminlevel/chinook/event) "kU" = ( -/obj/structure/closet/secure_closet/commander{ - name = "colonel's locker" - }, -/obj/item/clothing/head/beret/marine/commander/council, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" +/obj/structure/surface/table/reinforced/black, +/obj/item/clothing/accessory/patch{ + pixel_x = -3; + pixel_y = 6 }, +/turf/open/floor/wood, /area/adminlevel/chinook/offices) "kW" = ( /obj/structure/surface/table/reinforced/almayer_B, -/obj/item/ammo_box/magazine/m4ra, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/obj/item/ammo_box/magazine/l42a, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/sec) +"kX" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/turf/open/floor/almayer/silver/northeast, +/area/adminlevel/chinook) "kY" = ( /obj/structure/closet/secure_closet/freezer/fridge/full, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook/event) "kZ" = ( /obj/structure/bed/chair/office/dark{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "green" - }, +/turf/open/floor/almayer/green/west, /area/adminlevel/chinook/cargo) "la" = ( -/turf/open/floor/almayer{ - dir = 6; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/southeast, /area/adminlevel/chinook/engineering) "lb" = ( /obj/structure/stairs/perspective{ dir = 10; icon_state = "p_stair_full" }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/cargo) "ld" = ( /obj/structure/platform_decoration{ @@ -3220,6 +2933,10 @@ }, /turf/open/floor/almayer, /area/adminlevel/chinook/offices) +"lg" = ( +/obj/structure/machinery/light, +/turf/open/floor/wood, +/area/adminlevel/chinook/offices) "lh" = ( /turf/open/floor/plating/plating_catwalk, /area/adminlevel/chinook/sec) @@ -3235,22 +2952,26 @@ req_access_txt = "20"; req_one_access = null }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/adminlevel/chinook/medical) "ll" = ( -/obj/structure/machinery/cm_vending/sorted/medical, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_corner" +/obj/structure/machinery/light{ + dir = 1 + }, +/obj/structure/surface/table/almayer, +/obj/item/roller{ + pixel_y = 6 }, +/obj/item/roller{ + pixel_y = 6 + }, +/obj/item/roller{ + pixel_y = 6 + }, +/turf/open/floor/almayer/sterile_green_corner/north, /area/adminlevel/chinook/medical) "lm" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/almayer/red/north, /area/adminlevel/chinook/offices) "ln" = ( /obj/structure/surface/table/almayer, @@ -3264,26 +2985,18 @@ /obj/structure/platform{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/cargo) "lu" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/almayer/red/north, /area/adminlevel/chinook/offices) "lv" = ( /obj/structure/machinery/light, /obj/structure/largecrate/random/case, -/turf/open/floor/almayer{ - icon_state = "orange" - }, +/turf/open/floor/almayer/orange, /area/adminlevel/chinook/engineering) "lw" = ( /obj/structure/surface/table/almayer, @@ -3295,11 +3008,25 @@ pixel_x = -4; pixel_y = 10 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/almayer/red/north, /area/adminlevel/chinook/offices) +"ly" = ( +/obj/structure/bed/chair{ + dir = 4 + }, +/turf/open/floor/almayer, +/area/adminlevel/chinook/cargo) +"lz" = ( +/obj/structure/sign/safety/firingrange{ + pixel_x = 2; + pixel_y = 25 + }, +/obj/structure/sign/safety/hazard{ + pixel_x = 14; + pixel_y = 25 + }, +/turf/open/floor/almayer/silver/north, +/area/adminlevel/chinook) "lC" = ( /turf/closed/wall/almayer/reinforced, /area/adminlevel/chinook/event) @@ -3312,16 +3039,12 @@ pixel_x = -2; pixel_y = 14 }, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, +/turf/open/floor/carpet, /area/adminlevel/chinook/event) "lE" = ( /obj/effect/decal/cleanable/flour, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/obj/structure/surface/table/reinforced/prison, +/turf/open/floor/prison/kitchen, /area/adminlevel/chinook/event) "lG" = ( /obj/structure/machinery/door/airlock/almayer/marine/requisitions{ @@ -3329,19 +3052,24 @@ name = "\improper Cargo Bay"; req_one_access_txt = "1;26" }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "plating_striped" +/obj/structure/machinery/door/poddoor/almayer{ + id = "chinookreq"; + name = "Requisitions Lockdown" }, +/turf/open/floor/almayer/plating_striped/east, /area/adminlevel/chinook/cargo) +"lH" = ( +/obj/structure/extinguisher_cabinet{ + pixel_y = 27 + }, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/chinook/engineering) "lK" = ( /obj/structure/machinery/light{ dir = 4 }, /obj/structure/machinery/processor, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook/event) "lM" = ( /obj/structure/machinery/light{ @@ -3357,9 +3085,7 @@ /turf/open/floor/kutjevo/tan/plate, /area/adminlevel/chinook/event) "lO" = ( -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook) "lP" = ( /obj/item/paper_bin/uscm{ @@ -3371,10 +3097,7 @@ /area/adminlevel/chinook/event) "lQ" = ( /obj/structure/window/framed/almayer, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/cargo) "lR" = ( /obj/structure/machinery/door/airlock/almayer/medical/glass{ @@ -3384,19 +3107,20 @@ req_access_txt = "20"; req_one_access = null }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/adminlevel/chinook/medical) +"lS" = ( +/obj/structure/bed/chair/comfy{ + dir = 4 + }, +/turf/open/floor/wood, +/area/adminlevel/chinook) "lV" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" }, /obj/item/storage/toolbox/electrical, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "plating_striped" - }, +/turf/open/floor/almayer/plating_striped/west, /area/adminlevel/chinook/engineering) "lW" = ( /obj/structure/machinery/door/airlock/almayer/command{ @@ -3404,38 +3128,40 @@ }, /turf/open/floor/kutjevo/multi_tiles, /area/adminlevel/chinook/event) +"lZ" = ( +/obj/structure/machinery/light, +/turf/open/floor/almayer/plate, +/area/adminlevel/chinook/medical) "ma" = ( /obj/structure/machinery/vending/coffee, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/west, /area/adminlevel/chinook/medical) +"mc" = ( +/obj/structure/surface/table/almayer, +/obj/item/pizzabox/mushroom, +/turf/open/floor/almayer, +/area/adminlevel/chinook/cargo) +"md" = ( +/obj/structure/machinery/light, +/turf/open/floor/almayer/cargo, +/area/adminlevel/chinook) "me" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/attachment, /obj/effect/spawner/random/attachment, /obj/effect/spawner/random/attachment, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/adminlevel/chinook/cargo) "mg" = ( /obj/structure/surface/table/reinforced/black, /obj/item/storage/bible{ pixel_y = 4 }, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, +/turf/open/floor/carpet, /area/adminlevel/chinook/event) "mh" = ( /obj/structure/machinery/light, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/sec) "mi" = ( /obj/structure/surface/table/reinforced/black, @@ -3443,85 +3169,63 @@ pixel_x = 5; pixel_y = 3 }, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, +/turf/open/floor/carpet, /area/adminlevel/chinook/event) "mj" = ( /obj/structure/machinery/disposal, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/northeast, /area/adminlevel/chinook/engineering) "mm" = ( /obj/structure/target, -/turf/open/floor/almayer{ - icon_state = "plating_striped" - }, +/turf/open/floor/almayer/plating_striped, /area/adminlevel/chinook/sec) "mn" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "plating_striped" - }, +/turf/open/floor/almayer/plating_striped/west, /area/adminlevel/chinook) "mo" = ( -/turf/open/floor/almayer{ - icon_state = "redfull" - }, +/turf/open/floor/almayer/redfull, /area/adminlevel/chinook) "mp" = ( /obj/structure/machinery/portable_atmospherics/canister/air, /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/engineering) "mr" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/comdoor{ name = "\improper Awards Stage" }, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, +/turf/open/floor/carpet, /area/adminlevel/chinook/event) "ms" = ( /obj/structure/bed/chair/comfy/black{ dir = 8 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/almayer/red/north, /area/adminlevel/chinook/offices) "mt" = ( -/obj/structure/machinery/light{ - dir = 8 +/obj/effect/decal/warning_stripes{ + icon_state = "S" }, -/obj/structure/machinery/cryopod, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_side" +/obj/structure/extinguisher_cabinet{ + pixel_x = 26 }, -/area/adminlevel/chinook/medical) +/turf/open/floor/almayer/plating/northeast, +/area/adminlevel/chinook/engineering) "mu" = ( /obj/structure/machinery/vending/security, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/adminlevel/chinook/sec) "mv" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "plating_striped" - }, +/turf/open/floor/almayer/plating_striped/east, /area/adminlevel/chinook) +"mw" = ( +/obj/structure/bed/chair{ + dir = 8 + }, +/turf/open/floor/almayer, +/area/adminlevel/chinook/cargo) "mz" = ( /obj/structure/bed/chair/comfy{ dir = 4 @@ -3532,18 +3236,25 @@ /obj/effect/decal/warning_stripes{ icon_state = "E" }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "plating_striped" - }, +/turf/open/floor/almayer/plating_striped/east, /area/adminlevel/chinook/engineering) "mB" = ( /obj/structure/machinery/iv_drip, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/north, /area/adminlevel/chinook/medical) +"mC" = ( +/obj/structure/platform_decoration/strata/metal{ + dir = 8 + }, +/turf/open/gm/river/pool, +/area/adminlevel/chinook) +"mD" = ( +/obj/structure/platform/strata/metal{ + dir = 4 + }, +/obj/structure/platform/strata/metal, +/turf/open/gm/river/pool, +/area/adminlevel/chinook) "mF" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/pizzabox/meat{ @@ -3580,27 +3291,17 @@ pixel_x = -6; pixel_y = 2 }, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" - }, +/turf/open/floor/wood, /area/adminlevel/chinook/offices) "mK" = ( -/turf/open/floor/almayer{ - icon_state = "orange" - }, +/turf/open/floor/almayer/orange, /area/adminlevel/chinook) "mN" = ( /obj/structure/surface/table/reinforced/black, /obj/item/device/flashlight/lamp/green{ pixel_y = 7 }, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" - }, +/turf/open/floor/wood, /area/adminlevel/chinook/offices) "mO" = ( /obj/structure/extinguisher_cabinet{ @@ -3616,35 +3317,28 @@ /area/adminlevel/chinook/cargo) "mQ" = ( /obj/structure/machinery/vending/snack, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/west, /area/adminlevel/chinook/medical) "mU" = ( /obj/structure/filingcabinet, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" - }, +/turf/open/floor/wood, /area/adminlevel/chinook/offices) +"mV" = ( +/obj/effect/decal/medical_decals{ + icon_state = "cryocell2deval" + }, +/turf/open/floor/almayer/dark_sterile, +/area/adminlevel/chinook/medical) "mW" = ( /obj/structure/surface/table/reinforced/black, /obj/item/reagent_container/food/drinks/cans/waterbottle{ pixel_x = 2; pixel_y = 7 }, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" - }, +/turf/open/floor/wood, /area/adminlevel/chinook/offices) "mX" = ( -/turf/open/shuttle/dropship{ - icon_state = "floor8" - }, +/turf/open/shuttle/dropship/light_grey_single_wide_left_to_right, /area/adminlevel/chinook/shuttle/unpowered) "mY" = ( /obj/structure/surface/table/reinforced/black, @@ -3655,54 +3349,54 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" - }, +/turf/open/floor/wood, /area/adminlevel/chinook/offices) +"mZ" = ( +/obj/structure/machinery/door/airlock/almayer/command{ + name = "\improper Female Locker Room" + }, +/turf/open/floor/almayer/plate, +/area/adminlevel/chinook) "na" = ( /obj/structure/bed/chair/comfy, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "emerald" - }, +/turf/open/floor/almayer/emerald/north, /area/adminlevel/chinook/shuttle) +"nb" = ( +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal3"; + pixel_y = 16 + }, +/obj/structure/desertdam/decals/road_edge{ + pixel_x = 2 + }, +/obj/structure/machinery/scoreboard{ + id = "chinook"; + pixel_y = 30 + }, +/turf/open/floor/wood, +/area/adminlevel/chinook) "nd" = ( /obj/structure/bed/chair/office/dark{ dir = 8 }, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" - }, +/turf/open/floor/wood, /area/adminlevel/chinook/offices) "ne" = ( /obj/structure/bed/sofa/south/grey/left, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook/offices) "nf" = ( -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/adminlevel/chinook/shuttle) "ng" = ( /obj/structure/sign/safety/coffee{ pixel_x = -16 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/almayer/red/west, /area/adminlevel/chinook/sec) "ni" = ( /obj/structure/bed/sofa/south/grey/right, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook/offices) "nj" = ( /obj/structure/stairs/perspective{ @@ -3710,11 +3404,12 @@ icon_state = "p_stair_full" }, /obj/structure/platform, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/engineering) +"nk" = ( +/obj/structure/platform/strata/metal, +/turf/open/gm/river/pool, +/area/adminlevel/chinook) "nl" = ( /obj/structure/surface/table/reinforced/black, /obj/structure/sign/prop1{ @@ -3727,21 +3422,14 @@ /obj/item/tool/pen{ pixel_y = 3 }, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" - }, +/turf/open/floor/wood, /area/adminlevel/chinook/offices) "nm" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/secure_data{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/almayer/red/west, /area/adminlevel/chinook/offices) "nn" = ( /obj/structure/bed/chair/comfy/black, @@ -3751,34 +3439,21 @@ /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "plating_striped" - }, +/turf/open/floor/almayer/plating_striped/west, /area/adminlevel/chinook/engineering) "np" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/almayer/red/east, /area/adminlevel/chinook/offices) "nr" = ( /obj/structure/bed/chair, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/north, /area/adminlevel/chinook/medical) "ns" = ( -/obj/structure/closet/secure_closet/freezer/kitchen, -/obj/item/reagent_container/food/condiment/enzyme, -/obj/item/reagent_container/food/condiment/enzyme, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/obj/structure/machinery/vending/dinnerware, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook/event) "nt" = ( /obj/structure/surface/table/reinforced/almayer_B, @@ -3800,39 +3475,21 @@ /obj/structure/bed/chair/office/dark{ dir = 1 }, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, +/turf/open/floor/carpet, /area/adminlevel/chinook/offices) "nv" = ( /obj/structure/bed/chair/office/dark{ dir = 4; layer = 3.25 }, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, +/turf/open/floor/carpet, /area/adminlevel/chinook/offices) -"nx" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E" - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "emerald" - }, -/area/adminlevel/chinook/shuttle) "ny" = ( /obj/structure/surface/table/reinforced/black, /obj/item/ashtray/glass{ pixel_y = 4 }, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, +/turf/open/floor/carpet, /area/adminlevel/chinook/offices) "nB" = ( /obj/structure/closet/secure_closet/guncabinet/red, @@ -3848,18 +3505,14 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/adminlevel/chinook/sec) "nC" = ( /obj/structure/machinery/light{ dir = 8 }, /obj/structure/machinery/vending/coffee, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook/offices) "nD" = ( /obj/structure/machinery/computer/emails{ @@ -3867,9 +3520,10 @@ pixel_y = 7 }, /obj/structure/surface/table/reinforced/black, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/structure/sign/poster/propaganda{ + pixel_y = 30 }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook/offices) "nE" = ( /obj/structure/bookcase{ @@ -3881,15 +3535,22 @@ /turf/open/floor/almayer, /area/adminlevel/chinook/sec) "nF" = ( -/obj/item/storage/fancy/cigar, /obj/structure/surface/table/reinforced/black, /obj/structure/sign/prop2{ pixel_y = 30 }, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/structure/machinery/faxmachine/uscm/command/highcom{ + name = "Chinook Fax Machine"; + department = "Chinook 91 GSO Station"; + pixel_y = 5 }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook/offices) +"nG" = ( +/obj/structure/surface/table/almayer, +/obj/item/ashtray/glass, +/turf/open/floor/almayer, +/area/adminlevel/chinook/cargo) "nH" = ( /obj/structure/surface/table/reinforced/almayer_B, /turf/open/floor/almayer, @@ -3898,12 +3559,14 @@ /obj/structure/machinery/door/airlock/almayer/command{ name = "\improper Captain Offices" }, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" - }, +/turf/open/floor/strata/faux_wood, /area/adminlevel/chinook/offices) +"nL" = ( +/obj/structure/machinery/light{ + dir = 8 + }, +/turf/open/floor/almayer/sterile_green_side/west, +/area/adminlevel/chinook/medical) "nN" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/door_control{ @@ -3912,9 +3575,7 @@ pixel_x = -8; req_one_access_txt = "2;3;12;19" }, -/turf/open/floor/almayer{ - icon_state = "red" - }, +/turf/open/floor/almayer/red, /area/adminlevel/chinook/offices) "nO" = ( /obj/structure/machinery/door/airlock/almayer/generic{ @@ -3922,20 +3583,14 @@ name = "Kitchen"; req_access_txt = "30" }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/adminlevel/chinook/event) "nP" = ( /obj/item/paper_bin/uscm{ pixel_y = 6 }, /obj/structure/surface/table/reinforced/black, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" - }, +/turf/open/floor/wood, /area/adminlevel/chinook/event) "nS" = ( /obj/structure/closet/secure_closet/guncabinet/red, @@ -3946,9 +3601,7 @@ dir = 2; req_access_txt = "1" }, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, +/turf/open/floor/almayer/redfull, /area/adminlevel/chinook/offices) "nU" = ( /turf/open/floor/plating, @@ -3958,21 +3611,8 @@ /obj/item/storage/fancy/cigarettes/emeraldgreen{ pixel_y = 6 }, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" - }, +/turf/open/floor/wood, /area/adminlevel/chinook/event) -"nW" = ( -/obj/structure/machinery/light{ - dir = 8 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "silver" - }, -/area/adminlevel/chinook) "nX" = ( /obj/structure/surface/table/reinforced/black, /obj/item/reagent_container/food/drinks/coffee{ @@ -3983,11 +3623,7 @@ name = "Courtroom Procedures"; pixel_y = 10 }, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" - }, +/turf/open/floor/wood, /area/adminlevel/chinook/event) "nY" = ( /obj/item/paper_bin/uscm{ @@ -3995,37 +3631,24 @@ }, /obj/item/tool/pen, /obj/structure/surface/table/reinforced/black, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" - }, +/turf/open/floor/wood, /area/adminlevel/chinook/event) "nZ" = ( /obj/structure/target, /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "plating_striped" - }, +/turf/open/floor/almayer/plating_striped/west, /area/adminlevel/chinook) "oa" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "plating_striped" - }, +/turf/open/floor/almayer/plating_striped/east, /area/adminlevel/chinook) "od" = ( /obj/structure/bed/chair/office/dark, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, +/turf/open/floor/carpet, /area/adminlevel/chinook/offices) "oe" = ( /obj/structure/surface/table/reinforced/black, @@ -4037,10 +3660,7 @@ pixel_x = 11; pixel_y = 13 }, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, +/turf/open/floor/carpet, /area/adminlevel/chinook/offices) "of" = ( /obj/structure/machinery/computer/emails{ @@ -4048,11 +3668,7 @@ pixel_x = -2 }, /obj/structure/surface/table/reinforced/black, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" - }, +/turf/open/floor/wood, /area/adminlevel/chinook/offices) "og" = ( /obj/structure/stairs/perspective{ @@ -4085,98 +3701,78 @@ pixel_x = 5; pixel_y = 4 }, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, +/turf/open/floor/carpet, /area/adminlevel/chinook/event) "om" = ( -/obj/structure/surface/table/reinforced/black, -/obj/item/ashtray/glass{ - pixel_y = 4 - }, -/obj/item/clothing/glasses/sunglasses, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, +/obj/structure/surface/table/reinforced/almayer_B, +/turf/open/floor/carpet, /area/adminlevel/chinook/event) "on" = ( /obj/structure/machinery/vending/cigarette/colony, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/offices) "op" = ( /obj/structure/largecrate/random/barrel/white, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/cargo) "oq" = ( /obj/structure/sign/nosmoking_1{ pixel_y = 27 }, -/turf/open/floor/almayer{ - icon_state = "sterile_green" - }, +/turf/open/floor/almayer/sterile_green, /area/adminlevel/chinook/medical) "or" = ( -/obj/structure/surface/table/reinforced/black, -/obj/item/reagent_container/food/drinks/coffee{ - pixel_x = 12; - pixel_y = 7 - }, -/obj/item/reagent_container/food/drinks/cans/waterbottle{ - pixel_x = 5; - pixel_y = 5 - }, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" +/obj/structure/machinery/door/airlock/almayer/medical/glass{ + id = "medcryobeds"; + id_tag = "medcryobeds"; + name = "Medical Hypersleep Access"; + req_access = null; + req_one_access = null }, -/area/adminlevel/chinook/event) +/turf/open/floor/almayer/dark_sterile, +/area/adminlevel/chinook/medical) "os" = ( /obj/item/tool/wirecutters{ pixel_y = -7 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/cargo) "ot" = ( /obj/structure/platform{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/engineering) "ou" = ( -/turf/open/floor/almayer/uscm/directional{ - dir = 9 - }, +/turf/open/floor/almayer/uscm/directional/north, /area/adminlevel/chinook/shuttle) "ov" = ( -/turf/open/floor/almayer/uscm/directional{ - dir = 1 - }, +/turf/open/floor/almayer/uscm/directional/northeast, /area/adminlevel/chinook/shuttle) "ow" = ( -/obj/structure/surface/table/reinforced/black, -/obj/item/reagent_container/food/drinks/drinkingglass{ - pixel_x = -6; - pixel_y = 6 +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ + name = "\improper Pool" }, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" +/turf/open/floor/almayer, +/area/adminlevel/chinook) +"ox" = ( +/obj/structure/machinery/light, +/obj/structure/machinery/disposal, +/turf/open/floor/almayer/plate, +/area/adminlevel/chinook/cargo) +"oy" = ( +/obj/structure/surface/table/almayer, +/obj/item/reagent_container/food/drinks/coffee{ + pixel_x = 7; + pixel_y = 7 }, -/area/adminlevel/chinook/event) +/obj/item/toy/crayon/blue, +/obj/item/stack/cable_coil{ + pixel_x = -8 + }, +/obj/item/device/lightreplacer, +/turf/open/floor/almayer/plate, +/area/adminlevel/chinook/offices) "oz" = ( /obj/structure/platform{ dir = 8 @@ -4188,10 +3784,7 @@ /area/adminlevel/chinook/event) "oA" = ( /obj/structure/machinery/cm_vending/sorted/medical, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/east, /area/adminlevel/chinook/medical) "oB" = ( /obj/structure/machinery/computer/secure_data{ @@ -4200,10 +3793,7 @@ pixel_y = 7 }, /obj/structure/surface/table/reinforced/black, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, +/turf/open/floor/carpet, /area/adminlevel/chinook/sec) "oC" = ( /obj/structure/machinery/door_control{ @@ -4213,9 +3803,7 @@ pixel_y = -25; req_one_access_txt = "2;3;12;19" }, -/turf/open/floor/almayer{ - icon_state = "red" - }, +/turf/open/floor/almayer/red, /area/adminlevel/chinook/sec) "oD" = ( /turf/closed/shuttle/ert{ @@ -4234,11 +3822,20 @@ pixel_y = 11; req_one_access_txt = "2;3;12;19" }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/almayer/red/west, /area/adminlevel/chinook/sec) +"oF" = ( +/obj/structure/surface/rack, +/obj/item/toy/beach_ball/holoball, +/obj/item/toy/beach_ball/holoball, +/turf/open/floor/almayer/cargo, +/area/adminlevel/chinook) +"oG" = ( +/obj/structure/machinery/light{ + dir = 4 + }, +/turf/open/floor/almayer/blue/west, +/area/adminlevel/chinook) "oH" = ( /obj/structure/stairs/perspective{ dir = 4; @@ -4246,12 +3843,14 @@ }, /turf/open/floor/kutjevo, /area/adminlevel/chinook/event) +"oI" = ( +/obj/structure/machinery/vending/cola, +/turf/open/floor/almayer/plate, +/area/adminlevel/chinook/cargo) "oJ" = ( /obj/item/storage/surgical_tray, /obj/structure/surface/table/almayer, -/turf/open/floor/almayer{ - icon_state = "sterile_green" - }, +/turf/open/floor/almayer/sterile_green, /area/adminlevel/chinook/sec) "oM" = ( /obj/structure/surface/table/reinforced/black, @@ -4262,10 +3861,7 @@ pixel_x = 7; pixel_y = 7 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook) "oN" = ( /obj/structure/machinery/light{ @@ -4275,26 +3871,18 @@ /area/adminlevel/chinook/event) "oO" = ( /obj/structure/surface/table/almayer, -/obj/structure/machinery/computer/cameras/almayer_network{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "red" - }, +/turf/open/floor/almayer/red, /area/adminlevel/chinook/offices) "oQ" = ( /obj/structure/closet, /turf/open/floor/almayer, /area/adminlevel/chinook/cryo) "oU" = ( -/obj/structure/machinery/medical_pod/autodoc, /obj/structure/sign/safety/autodoc{ pixel_x = -16 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_side" - }, +/obj/structure/machinery/medical_pod/autodoc, +/turf/open/floor/almayer/sterile_green_side/west, /area/adminlevel/chinook/offices) "oV" = ( /obj/structure/surface/table/almayer, @@ -4307,15 +3895,31 @@ /obj/item/clothing/glasses/hud/health{ pixel_y = 6 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/west, /area/adminlevel/chinook/medical) "oW" = ( /obj/structure/bed/stool, /turf/open/floor/kutjevo/tan/alt_edge, /area/adminlevel/chinook/event) +"oY" = ( +/obj/structure/bed/chair{ + can_buckle = 0; + dir = 8 + }, +/obj/structure/bed/chair{ + can_buckle = 0; + dir = 8; + pixel_x = -1; + pixel_y = 3 + }, +/obj/structure/bed/chair{ + can_buckle = 0; + dir = 8; + pixel_x = -2; + pixel_y = 6 + }, +/turf/open/floor/kutjevo/plate, +/area/adminlevel/chinook/event) "oZ" = ( /obj/structure/machinery/vending/dinnerware, /turf/open/floor/kutjevo/plate, @@ -4333,27 +3937,18 @@ name = "Security Armory Lockdown"; pixel_y = 22 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/sec) "pe" = ( /obj/structure/machinery/disposal, -/turf/open/floor/almayer{ - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side, /area/adminlevel/chinook/medical) "pf" = ( /obj/structure/bed/chair/comfy{ dir = 1; name = "prosecution chair" }, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" - }, +/turf/open/floor/wood, /area/adminlevel/chinook/event) "pg" = ( /obj/structure/stairs/perspective{ @@ -4361,15 +3956,10 @@ icon_state = "p_stair_full" }, /obj/structure/platform, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/engineering) "ph" = ( -/turf/open/floor/almayer{ - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side, /area/adminlevel/chinook/medical) "pi" = ( /turf/closed/shuttle/ert{ @@ -4382,9 +3972,7 @@ /area/adminlevel/chinook/engineering) "pk" = ( /obj/structure/target, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, +/turf/open/floor/almayer/redfull, /area/adminlevel/chinook) "pl" = ( /obj/structure/platform{ @@ -4394,10 +3982,7 @@ icon_state = "p_stair_ew_full_cap"; layer = 3.5 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/cargo) "pm" = ( /obj/structure/largecrate/random/case/double, @@ -4408,10 +3993,7 @@ dir = 1; name = "\improper Provost Offices" }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/almayer/red/east, /area/adminlevel/chinook/sec) "pp" = ( /obj/structure/machinery/constructable_frame{ @@ -4420,12 +4002,10 @@ /turf/open/floor/plating, /area/adminlevel/chinook/engineering) "pq" = ( -/obj/structure/sign/safety/med_cryo{ - pixel_y = -25 - }, -/turf/open/floor/almayer{ - icon_state = "sterile_green_side" +/obj/structure/extinguisher_cabinet{ + pixel_x = -26 }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook/medical) "pr" = ( /obj/item/storage/donut_box, @@ -4442,19 +4022,20 @@ }, /turf/open/floor/almayer, /area/adminlevel/chinook/sec) -"pw" = ( -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" +"pv" = ( +/obj/structure/platform/strata/metal{ + dir = 1 }, +/turf/open/gm/river/pool, +/area/adminlevel/chinook) +"pw" = ( +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/cargo) "px" = ( /obj/structure/surface/table/almayer, /obj/item/device/defibrillator, /obj/item/device/defibrillator, -/turf/open/floor/almayer{ - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side, /area/adminlevel/chinook/medical) "py" = ( /obj/structure/surface/table/reinforced/black, @@ -4463,22 +4044,18 @@ pixel_x = 8; pixel_y = 7 }, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" - }, +/turf/open/floor/wood, /area/adminlevel/chinook/offices) +"pz" = ( +/obj/structure/machinery/vending/snack, +/turf/open/floor/almayer/plate, +/area/adminlevel/chinook/cargo) "pA" = ( -/obj/structure/surface/table/reinforced/black, -/obj/item/folder/blue{ - pixel_x = -6; - pixel_y = 6 - }, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" +/obj/structure/machinery/door/airlock/almayer/command{ + dir = 1; + name = "Office of LtCol. Booker Peralta" }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook/offices) "pB" = ( /obj/structure/surface/table/reinforced/black, @@ -4486,15 +4063,16 @@ pixel_y = 4 }, /obj/structure/machinery/light, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" - }, +/turf/open/floor/wood, /area/adminlevel/chinook/offices) "pC" = ( -/obj/structure/flora/pottedplant/random, /obj/structure/machinery/light, +/obj/structure/surface/table/almayer, +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_29"; + pixel_x = 1; + pixel_y = 10 + }, /turf/open/floor/almayer, /area/adminlevel/chinook) "pD" = ( @@ -4502,14 +4080,10 @@ /obj/item/storage/fancy/cigar{ pixel_y = 8 }, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" - }, +/turf/open/floor/wood, /area/adminlevel/chinook/offices) "pE" = ( -/turf/open/floor/almayer/uscm/directional, +/turf/open/floor/almayer/uscm/directional/southeast, /area/adminlevel/chinook/shuttle) "pF" = ( /obj/structure/surface/table/reinforced/black, @@ -4517,71 +4091,67 @@ pixel_x = 1; pixel_y = 2 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/almayer/red/north, /area/adminlevel/chinook/sec) "pG" = ( /obj/structure/bed/chair/dropship/passenger{ dir = 8 }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/adminlevel/chinook/shuttle/unpowered) "pH" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/comdoor{ name = "\improper Command Offices" }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook/offices) +"pI" = ( +/obj/structure/sign/safety/bridge{ + desc = "A sign signifying the Courtroom"; + name = "\improper Courtroom"; + pixel_x = 12; + pixel_y = 25 + }, +/obj/structure/sign/safety/north{ + pixel_y = 25 + }, +/turf/open/floor/almayer/red/north, +/area/adminlevel/chinook/sec) "pJ" = ( /obj/structure/machinery/computer/secure_data{ dir = 4 }, /obj/structure/surface/table/reinforced/black, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, +/turf/open/floor/carpet, /area/adminlevel/chinook/offices) "pK" = ( /obj/structure/bed/chair/comfy{ desc = "A chair with leather padding and adjustable headrest. You could probably sit in one of these for ages. This one looks fit for a secretary to sit in."; name = "secretary's comfy chair" }, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, +/turf/open/floor/carpet, /area/adminlevel/chinook/offices) "pM" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, +/turf/open/floor/carpet, /area/adminlevel/chinook/offices) "pN" = ( /obj/structure/machinery/computer/telecomms/traffic, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook/engineering) "pP" = ( /obj/structure/platform{ dir = 1 }, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, +/turf/open/floor/carpet, /area/adminlevel/chinook/event) +"pQ" = ( +/turf/closed/shuttle/elevator{ + dir = 6 + }, +/area/adminlevel/chinook/cargo) "pR" = ( /obj/structure/machinery/disposal, /turf/open/floor/kutjevo, @@ -4593,17 +4163,14 @@ /turf/open/floor/kutjevo, /area/adminlevel/chinook/event) "pT" = ( -/obj/structure/machinery/power/fusion_engine, /obj/structure/machinery/light{ dir = 4 }, /obj/structure/platform{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/obj/structure/prop/invuln/fusion_reactor, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/engineering) "pU" = ( /obj/structure/platform{ @@ -4623,74 +4190,57 @@ /turf/open/floor/kutjevo, /area/adminlevel/chinook/event) "pW" = ( +/obj/structure/barricade/handrail/kutjevo{ + dir = 1 + }, /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" - }, +/turf/open/floor/kutjevo/plate, /area/adminlevel/chinook/event) "pX" = ( -/obj/structure/machinery/light{ - dir = 4 - }, -/obj/structure/machinery/cm_vending/sorted/medical, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "sterile_green_side" - }, -/area/adminlevel/chinook/medical) +/turf/open/gm/river/pool, +/area/adminlevel/chinook) "pY" = ( /obj/structure/extinguisher_cabinet{ pixel_x = 26 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/almayer/red/east, /area/adminlevel/chinook/sec) "pZ" = ( /obj/structure/bed/chair/comfy/black, /turf/open/floor/almayer, /area/adminlevel/chinook/sec) "qa" = ( -/obj/structure/surface/table/reinforced/black, -/obj/item/book/manual/marine_law{ - pixel_x = 3; - pixel_y = 8 - }, -/obj/item/book/manual/marine_law{ - pixel_x = 1; - pixel_y = 2 - }, -/obj/item/tool/pen{ - pixel_y = 3 +/obj/structure/filingcabinet{ + pixel_x = 8; + pixel_y = 16 }, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" +/obj/structure/filingcabinet{ + density = 0; + pixel_x = -8; + pixel_y = 16 }, +/turf/open/floor/wood, /area/adminlevel/chinook/offices) "qb" = ( /obj/structure/machinery/vending/cigarette/colony, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook) "qc" = ( +/obj/structure/barricade/handrail/kutjevo{ + dir = 1 + }, /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" - }, +/turf/open/floor/kutjevo/plate, /area/adminlevel/chinook/event) +"qd" = ( +/turf/closed/shuttle/elevator{ + dir = 10 + }, +/area/adminlevel/chinook/offices) "qe" = ( /obj/structure/machinery/door/airlock/almayer/command{ dir = 1; @@ -4702,89 +4252,86 @@ /obj/structure/machinery/sleep_console{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side, /area/adminlevel/chinook/medical) "qj" = ( -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, +/turf/open/floor/carpet, /area/adminlevel/chinook/offices) "qk" = ( /obj/structure/bookcase{ icon_state = "book-5" }, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, +/turf/open/floor/carpet, /area/adminlevel/chinook/offices) -"qn" = ( -/turf/open/floor/almayer{ - dir = 10; - icon_state = "red" +"ql" = ( +/obj/structure/machinery/vending/coffee, +/obj/structure/machinery/light, +/turf/open/floor/almayer/plate, +/area/adminlevel/chinook/cargo) +"qm" = ( +/obj/structure/sign/poster{ + pixel_y = -32 }, +/turf/open/floor/almayer, +/area/adminlevel/chinook/sec) +"qn" = ( +/turf/open/floor/almayer/red/southwest, /area/adminlevel/chinook/sec) "qo" = ( /obj/structure/surface/table/reinforced/black, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" +/obj/structure/machinery/computer/communications{ + dir = 4; + pixel_x = 1; + pixel_y = 6 }, +/turf/open/floor/wood, /area/adminlevel/chinook/offices) "qp" = ( /obj/structure/bed/chair/office/dark{ dir = 4 }, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, +/turf/open/floor/carpet, /area/adminlevel/chinook/offices) +"qq" = ( +/turf/open/floor/corsat/squares, +/area/adminlevel/chinook/cargo) "qr" = ( /obj/structure/surface/table/reinforced/black, /obj/item/reagent_container/food/drinks/coffee{ pixel_x = -3; pixel_y = 18 }, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, +/turf/open/floor/carpet, /area/adminlevel/chinook/offices) "qu" = ( -/obj/structure/surface/table/reinforced/almayer_B, -/obj/item/folder/yellow{ - pixel_y = 7 +/obj/item/toy/inflatable_duck, +/turf/open/gm/river/pool, +/area/adminlevel/chinook) +"qv" = ( +/obj/structure/stairs/perspective{ + icon_state = "p_stair_sn_full_cap" }, -/turf/open/floor/almayer, +/obj/structure/platform/strata/metal{ + dir = 8 + }, +/turf/open/gm/river/pool, /area/adminlevel/chinook) "qw" = ( /obj/item/storage/box/m56d/m2c, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/sec) "qy" = ( /obj/structure/bed/chair/comfy{ dir = 8 }, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" - }, +/turf/open/floor/wood, /area/adminlevel/chinook/sec) "qz" = ( /obj/structure/bed/chair/comfy{ desc = "A chair with leather padding and adjustable headrest. You could probably sit in one of these for ages. This one looks fit for a secretary to sit in."; name = "secretary's comfy chair" }, -/turf/open/floor/almayer, +/turf/open/floor/kutjevo, /area/adminlevel/chinook/offices) "qA" = ( /obj/structure/surface/table/almayer, @@ -4797,20 +4344,33 @@ /obj/item/roller{ pixel_y = 6 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/east, /area/adminlevel/chinook/medical) +"qB" = ( +/obj/structure/surface/table/reinforced/almayer_B, +/obj/item/tool/weldingtool/largetank{ + pixel_x = -9; + pixel_y = 4 + }, +/obj/item/stack/cable_coil{ + pixel_x = 7 + }, +/obj/item/stack/cable_coil{ + pixel_x = 13; + pixel_y = 5 + }, +/obj/item/tool/weldingtool/largetank{ + pixel_x = -2; + pixel_y = 6 + }, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/chinook) "qC" = ( /obj/item/ashtray/glass{ pixel_y = 4 }, /obj/structure/surface/table/reinforced/black, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, +/turf/open/floor/carpet, /area/adminlevel/chinook/offices) "qD" = ( /obj/item/paper_bin/uscm{ @@ -4818,10 +4378,7 @@ }, /obj/item/tool/pen, /obj/structure/surface/table/reinforced/black, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, +/turf/open/floor/carpet, /area/adminlevel/chinook/offices) "qF" = ( /obj/structure/surface/table/reinforced/black, @@ -4832,10 +4389,7 @@ pixel_y = 8; req_one_access_txt = "2;3;12;19" }, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, +/turf/open/floor/carpet, /area/adminlevel/chinook/offices) "qG" = ( /obj/structure/mirror{ @@ -4849,39 +4403,31 @@ /area/adminlevel/chinook/sec) "qH" = ( /obj/structure/machinery/vending/snack, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, +/area/adminlevel/chinook) +"qI" = ( +/obj/structure/largecrate/random/case/double, +/turf/open/floor/almayer/cargo, /area/adminlevel/chinook) -"qJ" = ( -/obj/structure/machinery/light{ - dir = 4 - }, -/turf/open/floor/kutjevo, -/area/adminlevel/chinook/event) "qK" = ( /obj/structure/machinery/door/airlock/almayer/security/glass{ name = "\improper Provost Offices" }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook/sec) -"qL" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" - }, -/area/adminlevel/chinook/engineering) "qM" = ( -/turf/open/floor/kutjevo/tan/alt_edge{ - dir = 8 - }, +/turf/open/floor/kutjevo/tan/alt_edge/west, /area/adminlevel/chinook/event) "qN" = ( /obj/structure/machinery/cm_vending/sorted/marine_food, /turf/open/floor/kutjevo/tan/plate, /area/adminlevel/chinook/event) +"qO" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SE-out" + }, +/turf/open/floor/almayer/plating/northeast, +/area/adminlevel/chinook/cargo) "qP" = ( /obj/structure/bed/chair/comfy{ dir = 4 @@ -4892,10 +4438,7 @@ /obj/structure/platform{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/cargo) "qT" = ( /obj/item/clothing/glasses/sunglasses, @@ -4905,21 +4448,14 @@ "qU" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook/engineering) "qV" = ( /obj/structure/machinery/power/port_gen/pacman, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/engineering) "qX" = ( -/turf/open/floor/almayer{ - icon_state = "redcorner" - }, +/turf/open/floor/almayer/redcorner, /area/adminlevel/chinook/sec) "qY" = ( /obj/structure/machinery/light{ @@ -4934,6 +4470,12 @@ /obj/structure/surface/table/reinforced/black, /turf/open/floor/kutjevo/tan, /area/adminlevel/chinook/event) +"rb" = ( +/obj/structure/bed/chair{ + dir = 8 + }, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/chinook) "rc" = ( /obj/structure/closet/crate, /obj/item/storage/briefcase/inflatable, @@ -4941,16 +4483,11 @@ /obj/item/storage/briefcase/inflatable, /obj/item/storage/briefcase/inflatable, /obj/item/storage/briefcase/inflatable, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/adminlevel/chinook/engineering) "rd" = ( /obj/structure/closet/secure_closet/medical3, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/west, /area/adminlevel/chinook/medical) "rf" = ( /obj/structure/sign/safety/synth_storage{ @@ -4961,16 +4498,11 @@ pixel_x = 32; pixel_y = 6 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/east, /area/adminlevel/chinook) "rh" = ( /obj/structure/machinery/cm_vending/sorted/medical/chemistry, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/adminlevel/chinook/medical) "ri" = ( /turf/closed/shuttle/ert{ @@ -4994,33 +4526,29 @@ pixel_x = -3; pixel_y = 4 }, -/turf/open/floor/almayer{ - icon_state = "sterile_green" - }, +/turf/open/floor/almayer/sterile_green, /area/adminlevel/chinook/medical) "rl" = ( /obj/structure/bed/chair/comfy/black{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/almayer/red/north, /area/adminlevel/chinook/sec) "rm" = ( -/turf/open/floor/kutjevo/tan/alt_edge{ - dir = 4 - }, +/turf/open/floor/kutjevo/tan/alt_edge/east, /area/adminlevel/chinook/event) "rn" = ( /turf/open/floor/kutjevo/tan/multi_tiles, /area/adminlevel/chinook/event) "ro" = ( /obj/structure/machinery/door/window/northleft, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/adminlevel/chinook/event) +"rp" = ( +/turf/closed/shuttle/elevator{ + dir = 6 + }, +/area/adminlevel/chinook/offices) "rq" = ( /obj/structure/machinery/light{ dir = 1 @@ -5032,73 +4560,57 @@ /turf/open/floor/kutjevo/tan/plate, /area/adminlevel/chinook/event) "ru" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/obj/structure/surface/table/almayer, -/obj/item/roller{ - pixel_y = 6 - }, -/obj/item/roller{ - pixel_y = 6 - }, -/obj/item/roller{ - pixel_y = 6 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_side" - }, +/obj/structure/machinery/cm_vending/sorted/medical, +/turf/open/floor/almayer/sterile_green_side/north, /area/adminlevel/chinook/medical) "rw" = ( /obj/structure/platform_decoration{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/cargo) "rx" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/north, /area/adminlevel/chinook/medical) +"ry" = ( +/turf/open/floor/almayer/cargo_arrow/north, +/area/adminlevel/chinook/cargo) "rA" = ( /obj/item/stack/sheet/wood/medium_stack, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/cargo) -"rD" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "bluecorner" +"rC" = ( +/obj/structure/sign/safety/hazard{ + pixel_x = 32; + pixel_y = 6 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "N" }, +/turf/open/floor/almayer/silvercorner, +/area/adminlevel/chinook) +"rD" = ( +/turf/open/floor/almayer/bluecorner/east, /area/adminlevel/chinook/offices) "rE" = ( /obj/structure/bed, /obj/item/bedsheet/medical, -/turf/open/floor/almayer{ - icon_state = "sterile_green" - }, +/turf/open/floor/almayer/sterile_green, /area/adminlevel/chinook/medical) -"rG" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "bluecorner" +"rF" = ( +/obj/structure/sign/safety/bathmens{ + pixel_x = -17 }, +/turf/open/floor/almayer, +/area/adminlevel/chinook) +"rG" = ( +/turf/open/floor/almayer/bluecorner/north, /area/adminlevel/chinook/offices) "rH" = ( /obj/structure/machinery/power/terminal{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/engineering) "rI" = ( /obj/structure/machinery/chem_dispenser/soda{ @@ -5118,16 +4630,24 @@ /obj/structure/surface/table/reinforced/black, /turf/open/floor/kutjevo/tan/plate, /area/adminlevel/chinook/event) -"rN" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "silvercorner" +"rK" = ( +/obj/structure/sign/safety/bathmens{ + pixel_x = 32 + }, +/turf/open/floor/almayer, +/area/adminlevel/chinook) +"rM" = ( +/obj/structure/barricade/handrail/kutjevo{ + dir = 1 }, +/turf/open/floor/kutjevo/plate, +/area/adminlevel/chinook/event) +"rN" = ( +/turf/open/floor/almayer/silvercorner/north, /area/adminlevel/chinook) "rO" = ( -/obj/structure/machinery/door/airlock/almayer/engineering{ - dir = 1; - name = "\improper Engineering Workshop" +/obj/structure/machinery/door/airlock/multi_tile/almayer/engidoor{ + name = "\improper Engineering" }, /turf/open/floor/almayer, /area/adminlevel/chinook/engineering) @@ -5138,12 +4658,13 @@ /turf/open/floor/kutjevo/tan/plate, /area/adminlevel/chinook/event) "rU" = ( -/turf/open/floor/almayer{ - dir = 9; - icon_state = "blue" - }, +/turf/open/floor/almayer/blue/northwest, /area/adminlevel/chinook/offices) "rV" = ( +/obj/item/reagent_container/food/drinks/drinkingglass{ + pixel_x = 5; + pixel_y = 8 + }, /obj/structure/surface/table/reinforced/black, /turf/open/floor/kutjevo/plate, /area/adminlevel/chinook/event) @@ -5155,16 +4676,13 @@ "rX" = ( /obj/structure/machinery/door/airlock/almayer/command{ dir = 1; - name = "\improper Colonel, Fourth Division" + name = "Office of LtCol. Braden Stephenson" }, -/turf/open/floor/almayer, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook/offices) "rY" = ( /obj/structure/machinery/power/smes, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/engineering) "sa" = ( /obj/structure/surface/table/reinforced/almayer_B, @@ -5177,76 +4695,55 @@ }, /turf/open/floor/kutjevo/plate, /area/adminlevel/chinook/event) +"se" = ( +/obj/structure/sign/safety/storage{ + pixel_x = -18 + }, +/turf/open/floor/almayer/dark_sterile, +/area/adminlevel/chinook/medical) "sg" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/reagent_container/food/drinks/drinkingglass, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/adminlevel/chinook/event) "sh" = ( /obj/structure/filingcabinet, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/almayer/green/north, /area/adminlevel/chinook/cargo) "si" = ( /obj/structure/machinery/computer/secure_data{ dir = 4 }, /obj/structure/surface/table/reinforced/black, -/turf/open/floor/almayer, +/turf/open/floor/kutjevo, /area/adminlevel/chinook/offices) "sk" = ( /obj/structure/machinery/cm_vending/sorted/boozeomat, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook/event) "sl" = ( /obj/structure/largecrate/random/barrel/red, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/southwest, /area/adminlevel/chinook/engineering) "sm" = ( -/obj/item/reagent_container/food/drinks/drinkingglass{ - pixel_x = 5; - pixel_y = 8 - }, -/obj/structure/surface/table/reinforced/black, +/obj/structure/machinery/disposal, /turf/open/floor/kutjevo/plate, /area/adminlevel/chinook/event) "sn" = ( -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" - }, +/turf/open/floor/wood, /area/adminlevel/chinook/sec) "so" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "plating_striped" - }, +/turf/open/floor/almayer/plating_striped/west, /area/adminlevel/chinook) "sp" = ( /obj/structure/target, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "plating_striped" - }, +/turf/open/floor/almayer/plating_striped/east, /area/adminlevel/chinook) "sr" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/almayer/blue/north, /area/adminlevel/chinook/offices) "ss" = ( /obj/structure/surface/table/reinforced/black, @@ -5254,27 +4751,25 @@ pixel_x = 1; pixel_y = 6 }, -/turf/open/floor/almayer, +/turf/open/floor/kutjevo, /area/adminlevel/chinook/offices) "st" = ( /obj/structure/machinery/portable_atmospherics/canister/air, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/engineering) +"sw" = ( +/obj/structure/machinery/cm_vending/sorted/cargo_guns/squad_prep, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/chinook/offices) "sx" = ( -/obj/structure/machinery/vending/snack, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/effect/decal/warning_stripes{ + icon_state = "S" }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/cargo) "sz" = ( /obj/structure/target, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "plating_striped" - }, +/turf/open/floor/almayer/plating_striped/west, /area/adminlevel/chinook) "sA" = ( /obj/structure/machinery/light{ @@ -5286,21 +4781,35 @@ /obj/structure/sign/safety/conference_room{ pixel_y = -24 }, -/turf/open/floor/almayer{ - icon_state = "blue" - }, +/turf/open/floor/almayer/blue, /area/adminlevel/chinook/offices) -"sE" = ( -/obj/structure/machinery/door_control{ - id = "chinookofficelock"; - name = "Command Office Lockdown"; - pixel_x = 24; - req_one_access_txt = "2;3;12;19" +"sD" = ( +/obj/structure/surface/table/reinforced/black, +/obj/item/tool/kitchen/tray{ + pixel_y = 7 + }, +/obj/item/reagent_container/food/drinks/cans/waterbottle{ + pixel_x = -8; + pixel_y = 11 + }, +/obj/item/reagent_container/food/drinks/cans/waterbottle{ + pixel_x = -2; + pixel_y = 11 + }, +/obj/item/reagent_container/food/drinks/cans/waterbottle{ + pixel_x = 10; + pixel_y = 11 }, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "blue" +/turf/open/floor/kutjevo/tan/plate, +/area/adminlevel/chinook/event) +"sE" = ( +/obj/structure/machinery/door_control{ + id = "chinookofficelock"; + name = "Command Office Lockdown"; + pixel_x = 24; + req_one_access_txt = "2;3;12;19" }, +/turf/open/floor/almayer/blue/southeast, /area/adminlevel/chinook/offices) "sF" = ( /obj/structure/machinery/door/poddoor/shutters/almayer{ @@ -5308,9 +4817,7 @@ id = "chinookcargo"; name = "\improper Cargo Bay Shutters" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/adminlevel/chinook/shuttle) "sG" = ( /obj/structure/machinery/door/airlock/almayer/generic{ @@ -5320,37 +4827,25 @@ /turf/open/floor/almayer, /area/adminlevel/chinook/engineering) "sH" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "green" - }, +/turf/open/floor/almayer/green/west, /area/adminlevel/chinook/cargo) "sJ" = ( /obj/structure/sign/nosmoking_2{ pixel_y = 28 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/engineering) "sK" = ( /obj/structure/sign/safety/storage{ pixel_x = -17 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/west, /area/adminlevel/chinook/medical) "sL" = ( /obj/structure/extinguisher_cabinet{ pixel_y = 27 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/almayer/blue/north, /area/adminlevel/chinook/offices) "sM" = ( /obj/effect/decal/warning_stripes{ @@ -5358,21 +4853,50 @@ }, /obj/structure/surface/rack, /obj/item/clothing/head/welding, -/turf/open/floor/almayer{ - icon_state = "orange" - }, +/obj/item/stack/sheet/metal/large_stack, +/turf/open/floor/almayer/orange, /area/adminlevel/chinook/engineering) +"sP" = ( +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal8"; + pixel_x = -16; + pixel_y = -16 + }, +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal5"; + pixel_x = -16; + pixel_y = 16 + }, +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal6"; + pixel_x = 16; + pixel_y = 16 + }, +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal7"; + pixel_x = 16; + pixel_y = -16 + }, +/obj/structure/holohoop{ + dir = 8; + id = "chinook"; + side = "right" + }, +/obj/structure/desertdam/decals/road_edge{ + pixel_x = 16 + }, +/obj/structure/barricade/handrail/wire{ + dir = 4 + }, +/turf/open/floor/wood, +/area/adminlevel/chinook) "sQ" = ( /obj/structure/surface/table/reinforced/black, /obj/item/reagent_container/food/drinks/coffee{ pixel_x = 12; pixel_y = 7 }, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" - }, +/turf/open/floor/wood, /area/adminlevel/chinook/offices) "sR" = ( /obj/structure/machinery/light, @@ -5385,25 +4909,16 @@ pixel_x = -14; pixel_y = 6 }, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, +/turf/open/floor/carpet, /area/adminlevel/chinook/offices) "sS" = ( /obj/structure/filingcabinet, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, +/turf/open/floor/carpet, /area/adminlevel/chinook/offices) "sT" = ( /obj/structure/largecrate/random, /obj/item/tool/weldpack, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/west, /area/adminlevel/chinook/engineering) "sU" = ( /obj/structure/platform{ @@ -5412,57 +4927,40 @@ /obj/structure/platform{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "plating_striped" - }, +/turf/open/floor/almayer/plating_striped/east, /area/adminlevel/chinook/cargo) "sV" = ( /obj/structure/surface/table/reinforced/black, /obj/item/device/flashlight/lamp/green{ pixel_y = 6 }, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" - }, +/turf/open/floor/wood, /area/adminlevel/chinook/offices) "sW" = ( -/obj/structure/platform{ - dir = 1 - }, +/obj/structure/platform/stair_cut, /obj/structure/stairs/perspective{ dir = 8; icon_state = "p_stair_ew_full_cap"; layer = 3.5 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/engineering) "sX" = ( /obj/structure/surface/table/reinforced/almayer_B, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/adminlevel/chinook/sec) "sY" = ( -/turf/open/floor/almayer{ - dir = 6; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/southeast, /area/adminlevel/chinook/medical) "sZ" = ( /obj/structure/bed/chair/comfy{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook) +"ta" = ( +/turf/open/floor/almayer/orange/west, +/area/adminlevel/chinook/cryo) "tb" = ( /obj/item/device/lightreplacer, /obj/structure/surface/table/reinforced/black, @@ -5481,17 +4979,12 @@ dir = 8 }, /obj/structure/surface/table/reinforced/black, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, +/turf/open/floor/carpet, /area/adminlevel/chinook/sec) "te" = ( /obj/structure/closet/crate, /obj/item/storage/fancy/cigarettes/lucky_strikes, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/adminlevel/chinook/cargo) "tf" = ( /turf/closed/shuttle/ert{ @@ -5510,27 +5003,31 @@ /turf/open/floor/plating/plating_catwalk, /area/adminlevel/chinook/sec) "tn" = ( -/obj/item/ashtray/glass, /obj/structure/surface/table/reinforced/black, +/obj/item/trash/plate, +/obj/item/ashtray/glass{ + pixel_y = 4 + }, /turf/open/floor/kutjevo/tan, /area/adminlevel/chinook/event) -"tp" = ( -/obj/structure/surface/table/reinforced/black, -/obj/item/book/manual/barman_recipes{ - pixel_y = 6 +"to" = ( +/obj/structure/platform/strata/metal{ + dir = 8 }, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" +/obj/structure/platform/strata/metal, +/turf/open/gm/river/pool, +/area/adminlevel/chinook) +"tp" = ( +/obj/structure/machinery/light{ + dir = 1 }, -/area/adminlevel/chinook/offices) +/turf/open/floor/almayer/green/north, +/area/adminlevel/chinook) "tq" = ( /obj/structure/machinery/door/airlock/almayer/generic{ name = "Bathroom" }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook/offices) "tr" = ( /obj/structure/surface/table/reinforced/black, @@ -5539,55 +5036,38 @@ /area/adminlevel/chinook/event) "tt" = ( /obj/structure/machinery/medical_pod/bodyscanner, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/west, /area/adminlevel/chinook/medical) "tu" = ( -/obj/structure/machinery/light{ - dir = 8 - }, -/obj/structure/surface/table/almayer, -/obj/item/reagent_container/food/drinks/cans/waterbottle{ - pixel_x = 5; - pixel_y = 5 - }, -/obj/item/trash/boonie, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_side" - }, +/obj/structure/morgue, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook/medical) "tv" = ( /obj/item/storage/toolbox/mechanical{ pixel_x = 1; pixel_y = 7 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/cargo) "tw" = ( -/obj/structure/surface/table/reinforced/black, -/obj/item/reagent_container/food/drinks/tea{ - pixel_y = 6 - }, -/obj/item/reagent_container/food/snacks/plumphelmetbiscuit, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" +/obj/structure/closet/secure_closet/personal, +/obj/structure/closet/secure_closet/personal, +/obj/structure/sign/poster{ + pixel_y = 32 }, +/turf/open/floor/plating/plating_catwalk, /area/adminlevel/chinook) "tx" = ( /obj/structure/machinery/light, /obj/structure/machinery/disposal, -/turf/open/floor/almayer{ - icon_state = "orange" - }, +/turf/open/floor/almayer/orange, /area/adminlevel/chinook/engineering) +"ty" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E" + }, +/turf/open/floor/almayer/plating/northeast, +/area/adminlevel/chinook/cargo) "tz" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/toolbox, @@ -5598,19 +5078,13 @@ /obj/item/storage/fancy/cigar/tarbacks{ pixel_y = 4 }, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, +/turf/open/floor/carpet, /area/adminlevel/chinook/sec) "tB" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "cargo_arrow" - }, +/turf/open/floor/almayer/cargo_arrow/north, /area/adminlevel/chinook/shuttle) "tC" = ( /turf/closed/wall/almayer/outer, @@ -5623,61 +5097,36 @@ /obj/structure/machinery/bioprinter{ stored_metal = 1000 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/east, /area/adminlevel/chinook/medical) "tG" = ( -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook/event) "tH" = ( /obj/structure/sink{ dir = 8; pixel_x = -11 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/west, /area/adminlevel/chinook/sec) "tJ" = ( -/obj/structure/closet/boxinggloves, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/adminlevel/chinook) +/obj/structure/flora/pottedplant/random, +/turf/open/floor/almayer, +/area/adminlevel/chinook/offices) "tK" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/storage/box/drinkingglasses, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/adminlevel/chinook/event) "tL" = ( -/obj/structure/surface/table/reinforced/almayer_B, -/obj/item/cell/super{ - pixel_x = 3; - pixel_y = 4 - }, -/obj/item/cell/super{ - pixel_x = 3 - }, -/obj/item/tool/screwdriver{ - pixel_x = -1; - pixel_y = 6 - }, -/turf/open/floor/almayer, -/area/adminlevel/chinook) +/obj/structure/machinery/body_scanconsole, +/turf/open/floor/almayer/dark_sterile, +/area/adminlevel/chinook/offices) "tM" = ( /obj/structure/barricade/handrail{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook) "tN" = ( /turf/closed/shuttle/ert{ @@ -5686,14 +5135,10 @@ /area/adminlevel/chinook/shuttle/unpowered) "tO" = ( /obj/structure/target/syndicate, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, +/turf/open/floor/almayer/redfull, /area/adminlevel/chinook) "tP" = ( -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook/cargo) "tQ" = ( /obj/structure/machinery/door/airlock/almayer/command{ @@ -5708,16 +5153,13 @@ }, /obj/effect/decal/cleanable/blood/oil/streak, /obj/item/tool/wrench, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "plating_striped" - }, +/turf/open/floor/almayer/plating_striped/west, /area/adminlevel/chinook/engineering) +"tT" = ( +/turf/closed/wall/almayer/reinforced, +/area/adminlevel/chinook/shuttle) "tU" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "silvercorner" - }, +/turf/open/floor/almayer/silvercorner/west, /area/adminlevel/chinook) "tV" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/comdoor{ @@ -5746,85 +5188,60 @@ }, /turf/open/floor/almayer, /area/adminlevel/chinook/offices) -"tY" = ( +"tZ" = ( /obj/structure/machinery/light{ - dir = 4 + dir = 1 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "silver" +/obj/structure/machinery/scoreboard_button{ + pixel_y = 24; + id = "chinook"; + name = "scoreboard reset button" }, +/turf/open/floor/almayer/cargo, /area/adminlevel/chinook) -"tZ" = ( -/obj/item/reagent_container/food/drinks/bottle/sake{ - pixel_x = -5 - }, -/obj/structure/surface/table/reinforced/black, -/turf/open/floor/kutjevo/tan, -/area/adminlevel/chinook/event) "ud" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/comdoor{ dir = 2; name = "\improper Bar" }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook/event) "ue" = ( /obj/structure/surface/table/reinforced/almayer_B, -/obj/structure/machinery/chem_dispenser/soda{ - pixel_y = 6 - }, +/obj/structure/machinery/chem_dispenser/soda, /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook/event) "uf" = ( /obj/structure/machinery/light, /obj/structure/closet/firecloset, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "emerald" - }, +/turf/open/floor/almayer/emerald/southwest, /area/adminlevel/chinook/shuttle) "ug" = ( -/obj/structure/machinery/disposal, -/turf/open/floor/kutjevo/plate, -/area/adminlevel/chinook/event) +/obj/structure/sign/safety/bathwomens{ + pixel_x = 15; + pixel_y = -25 + }, +/turf/open/floor/almayer/blue, +/area/adminlevel/chinook/offices) "uh" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_21" }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/sec) "ui" = ( /obj/structure/bed/chair/comfy{ dir = 4 }, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, +/turf/open/floor/carpet, /area/adminlevel/chinook/event) "uj" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/toolbox, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/adminlevel/chinook/cargo) -"uk" = ( -/obj/structure/bed/chair{ - dir = 1 - }, -/turf/open/floor/almayer, +/turf/open/floor/almayer/cargo, /area/adminlevel/chinook/cargo) "uo" = ( /obj/structure/sign/safety/opens_up{ @@ -5837,100 +5254,64 @@ /turf/open/space, /area/space) "up" = ( -/obj/structure/surface/table/reinforced/black, -/obj/item/clothing/mask/cigarette/pipe, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, -/area/adminlevel/chinook/event) +/obj/structure/flora/pottedplant/random, +/turf/open/floor/wood, +/area/adminlevel/chinook/offices) "uq" = ( -/obj/structure/surface/table/reinforced/black, -/obj/structure/machinery/computer/emails{ - dir = 8; - pixel_x = -3; - pixel_y = -1 - }, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, +/turf/open/floor/wood, /area/adminlevel/chinook/offices) "ur" = ( /obj/structure/bed/sofa/south/grey/left, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook/sec) "us" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/east, /area/adminlevel/chinook/medical) "ut" = ( /obj/structure/machinery/door/airlock/almayer/command{ dir = 1; name = "\improper Courtroom" }, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" - }, +/turf/open/floor/kutjevo/plate, /area/adminlevel/chinook/event) +"uu" = ( +/obj/structure/bed/chair/comfy, +/turf/open/floor/wood, +/area/adminlevel/chinook/offices) "uv" = ( /obj/structure/surface/table/reinforced/black, /obj/item/paper{ pixel_x = 3; pixel_y = 3 }, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, +/turf/open/floor/carpet, /area/adminlevel/chinook/event) "uw" = ( /obj/structure/bed/chair/comfy, -/turf/open/floor/almayer, +/turf/open/floor/kutjevo/plate, /area/adminlevel/chinook/offices) "ux" = ( /obj/structure/bed/chair/comfy{ dir = 8 }, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, +/turf/open/floor/carpet, /area/adminlevel/chinook/event) "uy" = ( -/obj/structure/closet/secure_closet/guncabinet/blue{ - name = "sidearm storage" - }, -/obj/item/ammo_magazine/pistol, -/obj/item/ammo_magazine/pistol, -/obj/item/ammo_magazine/pistol, -/obj/item/ammo_magazine/pistol, -/obj/item/ammo_magazine/pistol, -/obj/item/ammo_magazine/pistol, -/obj/item/ammo_magazine/pistol, -/obj/item/ammo_magazine/pistol, -/obj/item/ammo_magazine/pistol, -/obj/item/ammo_magazine/pistol, -/obj/item/weapon/gun/pistol/m4a3, -/obj/item/weapon/gun/pistol/m4a3, -/obj/item/weapon/gun/pistol/m4a3, -/turf/open/floor/almayer{ - icon_state = "cargo" +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal3"; + pixel_y = 4 }, -/area/adminlevel/chinook/sec) +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal8"; + pixel_x = -2 + }, +/turf/open/floor/wood, +/area/adminlevel/chinook) "uz" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, +/turf/open/floor/almayer/redfull, /area/adminlevel/chinook) "uB" = ( /obj/structure/machinery/door/poddoor/almayer{ @@ -5944,10 +5325,7 @@ /obj/structure/platform_decoration{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/cargo) "uD" = ( /obj/structure/machinery/door/airlock/almayer/security/glass{ @@ -5960,15 +5338,10 @@ id = "chinookarmorytr"; name = "Firing Range Equipment Lockdown" }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook) "uF" = ( -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/adminlevel/chinook/medical) "uG" = ( /obj/structure/machinery/cm_vending/sorted/medical/wall_med{ @@ -5984,10 +5357,7 @@ /obj/item/device/binoculars, /obj/item/device/binoculars, /obj/item/device/binoculars, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/almayer/red/north, /area/adminlevel/chinook/sec) "uJ" = ( /obj/structure/machinery/door_control{ @@ -5995,37 +5365,22 @@ name = "Security Sector Lockdown"; pixel_y = 22 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/almayer/red/north, /area/adminlevel/chinook/sec) "uK" = ( /obj/structure/bed/chair/comfy, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "blue" +/obj/structure/machinery/light{ + dir = 1 }, +/turf/open/floor/almayer/blue/northeast, /area/adminlevel/chinook/offices) "uM" = ( /obj/effect/decal/warning_stripes{ icon_state = "NW-out"; layer = 2.5 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/west, /area/adminlevel/chinook/engineering) -"uN" = ( -/obj/structure/machinery/light{ - dir = 4 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "blue" - }, -/area/adminlevel/chinook/offices) "uO" = ( /obj/structure/sign/prop1{ pixel_y = 32 @@ -6044,48 +5399,34 @@ /obj/item/weapon/gun/shotgun/combat, /obj/item/weapon/gun/shotgun/combat, /obj/item/weapon/gun/shotgun/combat, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/adminlevel/chinook/offices) "uR" = ( /obj/structure/machinery/floodlight/landing, /turf/open/floor/plating, /area/adminlevel/chinook/shuttle/unpowered) "uS" = ( -/obj/structure/cargo_container/wy/left, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/adminlevel/chinook/cargo) -"uT" = ( -/obj/structure/machinery/medical_pod/bodyscanner{ - dir = 8 +/obj/structure/desertdam/decals/road_edge{ + pixel_x = 2; + pixel_y = -21 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "sterile_green_corner" +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal5"; + pixel_x = -2; + pixel_y = 4 }, +/turf/open/floor/wood, +/area/adminlevel/chinook) +"uT" = ( +/obj/structure/machinery/medical_pod/bodyscanner, +/turf/open/floor/almayer/sterile_green_corner/east, /area/adminlevel/chinook/medical) "uU" = ( /obj/structure/bed/chair/comfy/blue{ dir = 4 }, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, +/turf/open/floor/carpet, /area/adminlevel/chinook/sec) -"uV" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E" - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "emerald" - }, -/area/adminlevel/chinook/shuttle) "uW" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/device/lightreplacer, @@ -6094,12 +5435,9 @@ /turf/open/floor/almayer, /area/adminlevel/chinook/engineering) "uX" = ( -/obj/structure/machinery/vending/coffee, -/obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/adminlevel/chinook/cargo) +/obj/structure/machinery/disposal, +/turf/closed/wall/almayer, +/area/adminlevel/chinook/sec) "uY" = ( /obj/structure/surface/table/reinforced/black, /obj/item/reagent_container/food/drinks/cans/beer{ @@ -6117,15 +5455,10 @@ dir = 1; pixel_y = 2 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook) "vb" = ( -/turf/open/floor/almayer{ - dir = 9; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/northwest, /area/adminlevel/chinook) "vc" = ( /obj/structure/sign/ROsign{ @@ -6143,15 +5476,11 @@ pixel_x = 12; pixel_y = -25 }, -/turf/open/floor/almayer{ - icon_state = "silver" - }, +/turf/open/floor/almayer/silver, /area/adminlevel/chinook) "ve" = ( /obj/structure/machinery/cryopod/right, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/adminlevel/chinook/cryo) "vf" = ( /obj/structure/machinery/cm_vending/sorted/medical/wall_med{ @@ -6167,16 +5496,10 @@ pixel_x = 32; pixel_y = -12 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/east, /area/adminlevel/chinook) "vi" = ( -/turf/open/floor/almayer{ - dir = 9; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/northwest, /area/adminlevel/chinook/medical) "vk" = ( /obj/structure/machinery/light, @@ -6192,10 +5515,7 @@ pixel_x = 9; pixel_y = -21 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook) "vo" = ( /obj/item/reagent_container/food/drinks/bottle/whiskey{ @@ -6207,58 +5527,50 @@ /area/adminlevel/chinook/event) "vp" = ( /obj/structure/closet/firecloset, -/turf/open/floor/almayer, +/turf/open/floor/kutjevo, /area/adminlevel/chinook/offices) "vq" = ( /obj/structure/largecrate/random/case/small, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, +/obj/item/circuitboard/airlock, +/turf/open/floor/almayer/orange/north, /area/adminlevel/chinook/engineering) "vs" = ( -/obj/structure/closet/secure_closet/commander{ - name = "colonel's locker" - }, -/obj/item/clothing/head/beret/marine/commander/council, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/obj/structure/closet/secure_closet/commander, +/turf/open/floor/kutjevo/plate, /area/adminlevel/chinook/offices) +"vt" = ( +/obj/structure/surface/table/reinforced/black, +/obj/item/toy/deck, +/turf/open/floor/carpet, +/area/adminlevel/chinook) "vu" = ( -/turf/open/floor/almayer/uscm/directional{ - dir = 8 - }, +/turf/open/floor/almayer/uscm/directional/logo_c/west, /area/adminlevel/chinook/shuttle) "vv" = ( /obj/structure/bed/stool, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/north, /area/adminlevel/chinook/medical) -"vx" = ( -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" +"vw" = ( +/obj/structure/sign/safety/bathmens{ + pixel_x = 15; + pixel_y = 25 }, +/turf/open/floor/almayer/silver/north, +/area/adminlevel/chinook) +"vx" = ( +/obj/structure/flora/pottedplant/random, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/offices) "vz" = ( /obj/structure/closet/secure_closet/military_police, /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/almayer/red/west, /area/adminlevel/chinook/sec) "vA" = ( /obj/structure/bed/chair/comfy, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook) "vB" = ( /obj/structure/sign/safety/airlock{ @@ -6268,21 +5580,11 @@ pixel_x = 15; pixel_y = -28 }, -/turf/open/floor/almayer{ - icon_state = "emerald" - }, +/turf/open/floor/almayer/emerald, /area/adminlevel/chinook/shuttle) "vC" = ( -/turf/open/shuttle/dropship{ - icon_state = "rasputin7" - }, +/turf/open/shuttle/dropship/light_grey_top_right, /area/adminlevel/chinook/shuttle/unpowered) -"vD" = ( -/turf/closed/wall/almayer/outer{ - desc = "A heavily reinforced metal wall. Nothing gets through here."; - name = "ultra-reinforced hull" - }, -/area/adminlevel/chinook) "vE" = ( /obj/structure/sign/safety/ammunition{ pixel_x = 32; @@ -6292,18 +5594,12 @@ pixel_x = 32; pixel_y = -8 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/almayer/red/east, /area/adminlevel/chinook/sec) "vG" = ( /obj/structure/filingcabinet, /obj/structure/machinery/light, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/sec) "vH" = ( /obj/structure/sign/safety/airlock{ @@ -6319,10 +5615,7 @@ /obj/structure/bed/chair/comfy{ dir = 4 }, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, +/turf/open/floor/carpet, /area/adminlevel/chinook/offices) "vJ" = ( /obj/structure/machinery/light{ @@ -6331,11 +5624,7 @@ /obj/structure/flora/pottedplant{ icon_state = "pottedplant_21" }, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" - }, +/turf/open/floor/wood, /area/adminlevel/chinook) "vK" = ( /obj/item/storage/fancy/cigar, @@ -6360,20 +5649,14 @@ layer = 3.1 }, /obj/structure/surface/table/reinforced/black, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, +/turf/open/floor/carpet, /area/adminlevel/chinook/event) "vQ" = ( /obj/structure/largecrate/supply, /obj/structure/platform{ dir = 8 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/cargo) "vR" = ( /obj/structure/bed/chair{ @@ -6381,6 +5664,16 @@ }, /turf/open/floor/almayer, /area/adminlevel/chinook) +"vS" = ( +/obj/structure/sign/safety/med_cryo{ + pixel_y = -25 + }, +/obj/structure/sign/safety/south{ + pixel_x = 12; + pixel_y = -25 + }, +/turf/open/floor/almayer/sterile_green_side, +/area/adminlevel/chinook/medical) "vT" = ( /obj/item/trash/barcardine, /turf/open/floor/almayer, @@ -6390,52 +5683,33 @@ dir = 1 }, /obj/structure/largecrate/random/barrel/blue, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/cargo) "vW" = ( -/obj/structure/machinery/telecomms/processor/preset_cent{ - autolinkers = list("chinook"); - freq_listening = list(1353,1357,1359,1355,1469,1471,1354,1342,1344,1235,1340,1214,1358,1356,1236,1240,1449,1451,1453,1455); - listening_level = 9 - }, -/turf/open/floor/almayer{ - icon_state = "tcomms" - }, +/obj/structure/machinery/telecomms/processor, +/turf/open/floor/almayer/tcomms, /area/adminlevel/chinook/engineering) "vX" = ( /obj/structure/machinery/cm_vending/sorted/medical, /obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side, /area/adminlevel/chinook/medical) "vZ" = ( -/obj/structure/cargo_container/arious/rightmid, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/obj/structure/cargo_container/seegson/mid, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/cargo) "wc" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/device/taperecorder, /obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "red" - }, +/turf/open/floor/almayer/red, /area/adminlevel/chinook/sec) "wd" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/emails{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/west, /area/adminlevel/chinook/medical) "we" = ( /obj/structure/surface/table/reinforced/black, @@ -6443,10 +5717,7 @@ pixel_y = 6 }, /obj/item/tool/pen, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, +/turf/open/floor/carpet, /area/adminlevel/chinook/event) "wj" = ( /obj/structure/bed/chair/comfy{ @@ -6463,45 +5734,48 @@ /area/adminlevel/chinook/event) "wl" = ( /obj/structure/surface/rack, -/obj/item/explosive/grenade/high_explosive/training, -/obj/item/explosive/grenade/high_explosive/training, -/obj/item/explosive/grenade/high_explosive/training, -/obj/item/explosive/grenade/high_explosive/training, -/obj/item/explosive/grenade/high_explosive/training, -/obj/item/explosive/grenade/high_explosive/training, -/turf/open/floor/almayer{ - icon_state = "redfull" +/turf/open/floor/almayer/redfull, +/area/adminlevel/chinook) +"wm" = ( +/obj/structure/desertdam/decals/road_edge{ + pixel_x = -12 }, +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal3"; + pixel_y = -12 + }, +/turf/open/floor/wood, /area/adminlevel/chinook) "wo" = ( -/obj/structure/bed/sofa/south/grey, /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/obj/structure/bed/sofa/south/grey/right, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook/sec) "wp" = ( /obj/structure/sign/safety/hazard{ pixel_x = 32; pixel_y = 6 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" +/obj/structure/sign/safety/firingrange{ + pixel_x = 32; + pixel_y = -6 }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook) "wq" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" - }, +/turf/open/floor/strata/faux_wood, /area/adminlevel/chinook/offices) +"wr" = ( +/obj/structure/machinery/light{ + dir = 8 + }, +/turf/open/floor/almayer/silver/west, +/area/adminlevel/chinook) "wt" = ( /obj/structure/sign/safety/synth_storage{ pixel_x = 31; @@ -6511,18 +5785,13 @@ pixel_x = 31; pixel_y = 6 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/east, /area/adminlevel/chinook) "wu" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/kutjevo/tan/alt_edge{ - dir = 8 - }, +/turf/open/floor/kutjevo/tan/alt_edge/west, /area/adminlevel/chinook/event) "wx" = ( /obj/item/storage/box/drinkingglasses, @@ -6533,25 +5802,20 @@ /obj/structure/bed/chair/office/dark{ dir = 1 }, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" - }, +/turf/open/floor/wood, /area/adminlevel/chinook/offices) "wz" = ( -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" - }, +/turf/open/floor/wood, /area/adminlevel/chinook) "wA" = ( -/obj/item/tool/kitchen/tray, +/obj/structure/surface/table/reinforced/black, +/obj/item/trash/plate{ + pixel_x = 2; + pixel_y = -1 + }, /obj/item/reagent_container/food/snacks/sandwich{ pixel_y = 6 }, -/obj/structure/surface/table/reinforced/black, /turf/open/floor/kutjevo/tan, /area/adminlevel/chinook/event) "wB" = ( @@ -6560,10 +5824,7 @@ pixel_x = -2; pixel_y = 9 }, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, +/turf/open/floor/carpet, /area/adminlevel/chinook) "wD" = ( /obj/structure/surface/table/reinforced/prison, @@ -6571,23 +5832,16 @@ pixel_x = -3; pixel_y = 9 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, -/area/space) +/turf/open/floor/prison/kitchen, +/area/adminlevel/chinook/event) "wE" = ( /obj/structure/machinery/disposal, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/almayer/blue/north, /area/adminlevel/chinook/offices) "wF" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/research, -/turf/open/floor/almayer{ - icon_state = "sterile_green" - }, +/turf/open/floor/almayer/sterile_green, /area/adminlevel/chinook/medical) "wG" = ( /obj/structure/machinery/vending/cigarette/colony, @@ -6596,30 +5850,15 @@ "wH" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/ashtray/glass, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/adminlevel/chinook/event) "wI" = ( /obj/structure/machinery/door/window/southright, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, -/area/adminlevel/chinook/event) -"wK" = ( -/obj/structure/surface/table/reinforced/black, -/obj/item/paper, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, +/turf/open/floor/prison/kitchen, /area/adminlevel/chinook/event) "wL" = ( /obj/structure/machinery/cm_vending/sorted/medical/blood, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/west, /area/adminlevel/chinook/sec) "wN" = ( /obj/effect/decal/warning_stripes{ @@ -6629,49 +5868,50 @@ /area/adminlevel/chinook/engineering) "wP" = ( /obj/structure/machinery/cm_vending/sorted/marine_food, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook/cargo) "wQ" = ( /obj/structure/machinery/autolathe/full, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook/engineering) +"wS" = ( +/turf/closed/shuttle/elevator{ + dir = 5 + }, +/area/adminlevel/chinook/cargo) "wT" = ( /obj/structure/machinery/cm_vending/clothing/dress, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/sec) "wU" = ( /obj/structure/closet/crate/freezer, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook/event) "wV" = ( /obj/structure/bed/chair/comfy, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" - }, +/turf/open/floor/wood, /area/adminlevel/chinook) "wW" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_corner" - }, +/turf/open/floor/almayer/sterile_green_corner/north, /area/adminlevel/chinook/medical) +"wX" = ( +/obj/structure/platform/strata/metal{ + dir = 8 + }, +/turf/open/gm/river/pool, +/area/adminlevel/chinook) "wY" = ( -/obj/structure/closet/secure_closet/freezer/fridge/full, -/turf/open/floor/prison{ - icon_state = "kitchen" +/obj/structure/machinery/light{ + dir = 1 }, -/area/space) +/turf/open/floor/almayer/cargo, +/area/adminlevel/chinook) +"xa" = ( +/obj/structure/machinery/light{ + dir = 4 + }, +/turf/open/floor/almayer/blue/east, +/area/adminlevel/chinook/offices) "xd" = ( /obj/structure/machinery/door/airlock/almayer/security/glass{ dir = 1; @@ -6682,51 +5922,79 @@ id = "chinook_solitary3"; name = "Solitary Cell 3 Shutters" }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/sec) "xe" = ( /obj/structure/surface/table/reinforced/black, /obj/item/storage/fancy/cigar{ pixel_y = 8 }, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, +/turf/open/floor/carpet, /area/adminlevel/chinook/event) +"xf" = ( +/obj/structure/platform/strata/metal{ + dir = 1 + }, +/obj/structure/platform/strata/metal{ + dir = 4 + }, +/turf/open/gm/river/pool, +/area/adminlevel/chinook) +"xg" = ( +/obj/structure/closet/secure_closet/guncabinet/red, +/obj/item/ammo_magazine/shotgun/buckshot, +/obj/item/weapon/gun/shotgun/combat, +/obj/item/ammo_magazine/shotgun/buckshot, +/obj/structure/machinery/door/window/brigdoor/southleft, +/turf/open/floor/almayer/redfull, +/area/adminlevel/chinook/offices) "xh" = ( /obj/structure/machinery/light/small, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/engineering) "xi" = ( -/turf/closed/wall/almayer/outer{ - desc = "A heavily reinforced metal wall. Nothing gets through here."; - name = "ultra-reinforced hull" - }, +/obj/structure/surface/table/reinforced/almayer_B, +/turf/open/floor/wood, /area/adminlevel/chinook/offices) "xj" = ( /obj/item/book/manual/chef_recipes, /obj/item/clothing/head/chefhat, /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/prison{ - icon_state = "kitchen" +/turf/open/floor/prison/kitchen, +/area/adminlevel/chinook/event) +"xk" = ( +/obj/structure/sign/safety/bathmens{ + pixel_y = -25 + }, +/obj/structure/sign/safety/bathwomens{ + pixel_x = 12; + pixel_y = -25 + }, +/turf/open/floor/almayer/silver, +/area/adminlevel/chinook) +"xm" = ( +/obj/structure/machinery/portable_atmospherics/hydroponics, +/obj/structure/machinery/light{ + dir = 1 }, +/turf/open/floor/plating/plating_catwalk, /area/adminlevel/chinook/event) "xn" = ( /obj/structure/closet/secure_closet/brig, /obj/structure/extinguisher_cabinet{ pixel_y = 27 }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/adminlevel/chinook/sec) +"xq" = ( +/obj/structure/platform/strata/metal{ + dir = 1 + }, +/obj/structure/platform/strata/metal{ + dir = 8 + }, +/turf/open/gm/river/pool, +/area/adminlevel/chinook) "xr" = ( /obj/structure/machinery/door/airlock/almayer/security/glass{ dir = 2; @@ -6744,11 +6012,14 @@ /area/adminlevel/chinook) "xu" = ( /obj/structure/bed/chair/comfy, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, +/turf/open/floor/carpet, /area/adminlevel/chinook/offices) +"xv" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/turf/open/floor/almayer/plate, +/area/adminlevel/chinook/medical) "xw" = ( /obj/structure/bed/sofa/south/grey, /turf/open/floor/kutjevo/tan, @@ -6759,27 +6030,26 @@ /area/adminlevel/chinook/event) "xz" = ( /obj/structure/machinery/autodoc_console, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/adminlevel/chinook/sec) +"xA" = ( +/obj/structure/extinguisher_cabinet{ + pixel_y = 27 + }, +/turf/open/floor/almayer/tcomms, +/area/adminlevel/chinook/engineering) "xC" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/folder/black, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook/engineering) "xE" = ( /obj/structure/machinery/vending/cola, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/offices) "xF" = ( -/obj/structure/filingcabinet, -/turf/open/floor/almayer, +/obj/structure/surface/rack, +/turf/open/floor/kutjevo/plate, /area/adminlevel/chinook/event) "xG" = ( /obj/structure/flora/pottedplant{ @@ -6790,10 +6060,16 @@ "xH" = ( /obj/structure/machinery/door/airlock/almayer/command{ dir = 1; - name = "\improper SCO Offices" + name = "\improper Offices" }, -/turf/open/floor/almayer, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook/offices) +"xI" = ( +/obj/structure/sign/safety/bathunisex{ + pixel_y = -25 + }, +/turf/open/floor/almayer/red, +/area/adminlevel/chinook/sec) "xK" = ( /turf/closed/shuttle/ert{ icon_state = "stan23" @@ -6803,10 +6079,7 @@ /obj/structure/flora/pottedplant{ icon_state = "pottedplant_18" }, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/almayer/red/northwest, /area/adminlevel/chinook/sec) "xN" = ( /obj/structure/surface/table/almayer, @@ -6822,77 +6095,76 @@ /obj/structure/bed/chair/comfy/black{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/almayer/red/north, /area/adminlevel/chinook/offices) "xR" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_21" }, -/turf/open/floor/almayer, +/turf/open/floor/kutjevo/plate, /area/adminlevel/chinook/offices) +"xU" = ( +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal3"; + pixel_y = -12 + }, +/obj/structure/desertdam/decals/road_edge{ + pixel_x = 2 + }, +/turf/open/floor/wood, +/area/adminlevel/chinook) "xV" = ( /obj/structure/machinery/autolathe/full, -/turf/open/floor/almayer{ - icon_state = "sterile_green" - }, +/turf/open/floor/almayer/sterile_green, /area/adminlevel/chinook/medical) "xW" = ( -/turf/open/shuttle/dropship{ - icon_state = "rasputin4" - }, +/turf/open/shuttle/dropship/light_grey_bottom_left, /area/adminlevel/chinook/shuttle/unpowered) "xY" = ( /obj/structure/bed/chair/comfy, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" - }, +/turf/open/floor/strata/faux_wood, /area/adminlevel/chinook/offices) "xZ" = ( -/obj/structure/machinery/body_scanconsole, -/turf/open/floor/almayer{ - icon_state = "sterile_green_side" +/obj/structure/surface/table/reinforced/black, +/obj/item/ashtray/glass{ + pixel_y = 4; + pixel_x = -13 }, -/area/adminlevel/chinook/medical) +/turf/open/floor/carpet, +/area/adminlevel/chinook/offices) "ya" = ( /obj/structure/machinery/door/airlock/almayer/command{ dir = 1; - name = "\improper General, 3rd Fleet 2nd Battlegroup" + name = "Office of Col. Samantha Maverick" }, -/turf/open/floor/almayer, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook/offices) "yb" = ( /obj/structure/machinery/chem_dispenser, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/west, /area/adminlevel/chinook/medical) "yf" = ( /obj/structure/largecrate/random, /obj/item/tool/crowbar, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/west, /area/adminlevel/chinook/engineering) "yg" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_21" }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook/event) "yh" = ( /turf/closed/shuttle/ert{ icon_state = "stan27" }, /area/adminlevel/chinook/shuttle/unpowered) +"yi" = ( +/obj/structure/prop/ice_colony/tiger_rug{ + pixel_x = -16 + }, +/turf/open/floor/wood, +/area/adminlevel/chinook/offices) "yj" = ( /obj/structure/machinery/vending/cola, /turf/open/floor/kutjevo/plate, @@ -6901,32 +6173,34 @@ /obj/structure/bed/chair/comfy/black{ dir = 8 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/almayer/red/east, /area/adminlevel/chinook/event) +"yn" = ( +/obj/structure/machinery/door/airlock/almayer/medical{ + name = "\improper Morgue" + }, +/turf/open/floor/almayer/plate, +/area/adminlevel/chinook/medical) "yo" = ( /obj/structure/bed/chair/comfy{ dir = 1 }, /turf/open/floor/kutjevo/tan/plate, /area/adminlevel/chinook/event) +"yp" = ( +/obj/structure/machinery/light, +/turf/open/floor/almayer, +/area/adminlevel/chinook/event) "yr" = ( /obj/structure/machinery/medical_pod/autodoc, -/turf/open/floor/almayer{ - icon_state = "sterile_green" - }, +/turf/open/floor/almayer/sterile_green, /area/adminlevel/chinook/medical) "yu" = ( /obj/structure/surface/table/reinforced/black, /obj/structure/machinery/computer/secure_data{ dir = 8 }, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, +/turf/open/floor/carpet, /area/adminlevel/chinook/sec) "yv" = ( /obj/structure/machinery/light, @@ -6937,9 +6211,7 @@ /obj/item/storage/box/flashbangs, /obj/item/storage/box/flashbangs, /obj/item/storage/box/flashbangs, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/adminlevel/chinook/sec) "yx" = ( /obj/structure/sign/poster{ @@ -6947,44 +6219,57 @@ }, /turf/open/floor/kutjevo/plate, /area/adminlevel/chinook) +"yy" = ( +/obj/structure/closet/secure_closet/guncabinet/red{ + name = "provost armor rack" + }, +/turf/open/floor/almayer/plating/northeast, +/area/adminlevel/chinook/sec) "yz" = ( /obj/structure/surface/table/almayer, /obj/item/stack/sheet/metal/large_stack, -/turf/open/floor/almayer{ - icon_state = "orange" - }, +/turf/open/floor/almayer/orange, /area/adminlevel/chinook/engineering) "yA" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, +/turf/open/floor/carpet, /area/adminlevel/chinook/event) "yC" = ( /obj/structure/machinery/cm_vending/sorted/medical/wall_med{ pixel_y = 25 }, -/turf/open/floor/almayer, +/obj/structure/bed/sofa/south/grey/left, +/turf/open/floor/kutjevo/plate, /area/adminlevel/chinook/event) "yF" = ( /obj/item/trash/cigbutt, /turf/open/floor/kutjevo/multi_tiles, /area/adminlevel/chinook/event) +"yJ" = ( +/obj/structure/cargo_container/arious/mid, +/turf/open/floor/corsat/squares, +/area/adminlevel/chinook/cargo) "yK" = ( /obj/structure/machinery/cm_vending/sorted/medical/wall_med{ pixel_x = -30 }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/adminlevel/chinook) -"yN" = ( -/turf/open/floor/almayer{ - icon_state = "cargo" +"yL" = ( +/obj/structure/cargo_container/arious/leftmid, +/turf/open/floor/corsat/squares, +/area/adminlevel/chinook/cargo) +"yM" = ( +/obj/structure/machinery/cryopod, +/obj/structure/machinery/light{ + dir = 1 }, +/turf/open/floor/almayer/sterile_green, +/area/adminlevel/chinook/medical) +"yN" = ( +/turf/open/floor/almayer/cargo, /area/adminlevel/chinook) "yO" = ( /obj/structure/platform, @@ -6993,32 +6278,46 @@ icon_state = "p_stair_full" }, /obj/structure/barricade/handrail/strata{ - layer = 3.5 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" + layer = 4.5 }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/engineering) "yP" = ( /obj/structure/machinery/photocopier, /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook/offices) +"yQ" = ( +/obj/structure/desertdam/decals/road_edge{ + pixel_x = -12 + }, +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal3"; + pixel_y = 4 + }, +/turf/open/floor/wood, +/area/adminlevel/chinook) +"yR" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/turf/open/floor/almayer, +/area/adminlevel/chinook) "yS" = ( /obj/structure/bed/chair/comfy{ dir = 4 }, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" - }, +/turf/open/floor/wood, /area/adminlevel/chinook/sec) +"yT" = ( +/obj/structure/surface/table/reinforced/black, +/obj/item/reagent_container/food/snacks/plumphelmetbiscuit{ + pixel_y = 6 + }, +/turf/open/floor/wood, +/area/adminlevel/chinook) "yV" = ( /obj/structure/machinery/door_control{ id = "chinookrange"; @@ -7032,70 +6331,65 @@ /obj/structure/bed/chair/office/dark{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "sterile_green_corner" - }, +/turf/open/floor/almayer/sterile_green_corner, /area/adminlevel/chinook/medical) "yY" = ( /obj/structure/machinery/light{ dir = 8 }, -/obj/structure/machinery/telecomms/broadcaster/preset_cent{ - autolinkers = list("chinook"); - freq_listening = list(1353,1357,1359,1355,1469,1471,1354,1342,1344,1235,1340,1214,1358,1356,1236,1240,1449,1451,1453,1455); - listening_level = 9 - }, -/turf/open/floor/almayer{ - icon_state = "tcomms" - }, +/obj/structure/machinery/telecomms/broadcaster, +/turf/open/floor/almayer/tcomms, /area/adminlevel/chinook/engineering) "yZ" = ( /obj/structure/filingcabinet, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "green" - }, +/turf/open/floor/almayer/green/northeast, /area/adminlevel/chinook/cargo) "zb" = ( /obj/structure/bed/sofa/vert/grey, -/turf/open/floor/almayer{ - icon_state = "emeraldfull" - }, +/turf/open/floor/almayer/emeraldfull, /area/adminlevel/chinook/shuttle) "zc" = ( /obj/structure/machinery/cm_vending/sorted/medical/wall_med{ pixel_x = 30 }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/adminlevel/chinook) "zd" = ( -/obj/structure/bed/chair/comfy{ - dir = 4 - }, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" +/obj/structure/sign/safety/med_cryo{ + pixel_x = 31 }, -/area/adminlevel/chinook) +/turf/open/floor/almayer/sterile_green_side/east, +/area/adminlevel/chinook/medical) "zf" = ( /obj/structure/machinery/autodoc_console, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/west, /area/adminlevel/chinook/medical) -"zj" = ( -/obj/structure/bed/chair/comfy{ - dir = 4 +"zg" = ( +/obj/structure/surface/table/reinforced/black, +/obj/item/reagent_container/food/drinks/coffee{ + pixel_x = -7; + pixel_y = 11 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" +/turf/open/floor/carpet, +/area/adminlevel/chinook/event) +"zi" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E" + }, +/obj/structure/extinguisher_cabinet{ + pixel_y = 27 + }, +/turf/open/floor/almayer/plating/northeast, +/area/adminlevel/chinook/engineering) +"zj" = ( +/obj/structure/bed/chair/comfy{ + dir = 4 }, +/turf/open/floor/almayer/red/north, /area/adminlevel/chinook/sec) +"zl" = ( +/turf/open/floor/almayer/sterile_green_side/north, +/area/adminlevel/chinook/offices) "zm" = ( /obj/structure/machinery/door_control{ id = "chinook_solitary3"; @@ -7104,9 +6398,7 @@ pixel_y = -25; req_one_access_txt = "2;3;12;19" }, -/turf/open/floor/almayer{ - icon_state = "red" - }, +/turf/open/floor/almayer/red, /area/adminlevel/chinook/sec) "zp" = ( /obj/structure/surface/table/reinforced/black, @@ -7116,19 +6408,17 @@ /obj/item/tool/pen{ pixel_y = -6 }, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" +/obj/item/toy/deck/uno{ + pixel_x = 3; + pixel_y = 8 }, +/turf/open/floor/carpet, /area/adminlevel/chinook/offices) "zq" = ( /obj/structure/bed/chair/comfy{ dir = 1 }, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, +/turf/open/floor/carpet, /area/adminlevel/chinook/event) "zt" = ( /obj/structure/surface/table/reinforced/black, @@ -7138,26 +6428,17 @@ /obj/item/paper{ pixel_x = -5 }, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, +/turf/open/floor/carpet, /area/adminlevel/chinook/offices) "zw" = ( -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" - }, +/turf/open/floor/wood, /area/adminlevel/chinook/event) "zC" = ( /turf/open/floor/almayer, /area/adminlevel/chinook/engineering) "zD" = ( -/obj/structure/bed/sofa/south/grey, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/obj/structure/machinery/disposal, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook/sec) "zE" = ( /obj/structure/surface/table/reinforced/black, @@ -7165,10 +6446,7 @@ pixel_x = -1; pixel_y = -3 }, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, +/turf/open/floor/carpet, /area/adminlevel/chinook/offices) "zG" = ( /obj/item/tool/lighter/zippo{ @@ -7180,16 +6458,10 @@ pixel_x = -4; pixel_y = 6 }, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, +/turf/open/floor/carpet, /area/adminlevel/chinook/sec) "zH" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/east, /area/adminlevel/chinook) "zI" = ( /obj/structure/prop/almayer/name_stencil{ @@ -7199,9 +6471,7 @@ /turf/open/floor/almayer_hull, /area/space) "zJ" = ( -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook/offices) "zL" = ( /obj/structure/machinery/door/airlock/almayer/marine/requisitions{ @@ -7209,11 +6479,19 @@ name = "\improper Cargo Bay"; req_one_access_txt = "1;26" }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" +/obj/structure/machinery/door/poddoor/almayer{ + id = "chinookreq"; + name = "Requisitions Lockdown" }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/cargo) +"zM" = ( +/obj/structure/surface/table/reinforced/black, +/obj/item/reagent_container/food/drinks/bottle/sake{ + pixel_x = -5 + }, +/turf/open/floor/kutjevo/tan, +/area/adminlevel/chinook/event) "zO" = ( /obj/structure/machinery/door_control{ id = "chinook_tcomms"; @@ -7221,40 +6499,25 @@ pixel_y = 25; req_access_txt = "6" }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook/engineering) "zP" = ( /obj/structure/machinery/disposal, -/turf/open/floor/almayer{ - icon_state = "sterile_green" - }, +/turf/open/floor/almayer/sterile_green, /area/adminlevel/chinook/sec) "zR" = ( -/obj/structure/machinery/medical_pod/sleeper{ - dir = 8 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "sterile_green_corner" - }, +/obj/structure/machinery/medical_pod/sleeper, +/turf/open/floor/almayer/sterile_green_corner/east, /area/adminlevel/chinook/medical) "zS" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/almayer/red/east, /area/adminlevel/chinook/sec) "zT" = ( /obj/structure/closet/secure_closet/medical2, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/west, /area/adminlevel/chinook/medical) "zU" = ( /obj/structure/platform, @@ -7263,32 +6526,23 @@ icon_state = "p_stair_full" }, /obj/structure/barricade/handrail/strata{ - layer = 3.5 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" + layer = 4.5 }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/engineering) "zW" = ( /turf/closed/wall/almayer/reinforced, /area/adminlevel/chinook/engineering) "zX" = ( -/obj/structure/machinery/power/fusion_engine, /obj/structure/platform, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/obj/structure/prop/invuln/fusion_reactor, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/engineering) "zY" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/light, /obj/structure/machinery/recharger, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/almayer/red/southwest, /area/adminlevel/chinook/offices) "Ac" = ( /obj/structure/surface/table/almayer, @@ -7297,9 +6551,7 @@ pixel_x = 5; pixel_y = 5 }, -/turf/open/floor/almayer{ - icon_state = "red" - }, +/turf/open/floor/almayer/red, /area/adminlevel/chinook/offices) "Ad" = ( /turf/closed/shuttle/ert{ @@ -7308,9 +6560,7 @@ /area/adminlevel/chinook/shuttle/unpowered) "Ae" = ( /obj/structure/machinery/computer/crew, -/turf/open/floor/almayer{ - icon_state = "red" - }, +/turf/open/floor/almayer/red, /area/adminlevel/chinook/offices) "Af" = ( /obj/structure/machinery/light{ @@ -7319,26 +6569,18 @@ /obj/structure/sign/nosmoking_1{ pixel_y = 30 }, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/northwest, /area/adminlevel/chinook/medical) "Ag" = ( /obj/structure/machinery/optable, /obj/item/tank/anesthetic, /obj/item/clothing/mask/breath/medical, -/turf/open/floor/almayer{ - icon_state = "sterile_green" - }, +/turf/open/floor/almayer/sterile_green, /area/adminlevel/chinook/sec) "Ah" = ( /obj/structure/machinery/computer/card, /obj/structure/surface/table/reinforced/black, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, +/turf/open/floor/carpet, /area/adminlevel/chinook/sec) "Ai" = ( /turf/closed/shuttle/ert{ @@ -7347,16 +6589,11 @@ /area/adminlevel/chinook/shuttle/unpowered) "Aj" = ( /obj/structure/bed/sofa/vert/grey/top, -/turf/open/floor/almayer{ - icon_state = "emeraldfull" - }, +/turf/open/floor/almayer/emeraldfull, /area/adminlevel/chinook/shuttle) "Al" = ( /obj/structure/machinery/vending/security, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/almayer/red/southeast, /area/adminlevel/chinook/offices) "Am" = ( /obj/structure/window/reinforced/tinted/frosted, @@ -7372,46 +6609,36 @@ /area/adminlevel/chinook/offices) "Ao" = ( /obj/structure/largecrate/random/barrel/green, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/obj/structure/machinery/light, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/cargo) "Ap" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/device/flashlight/lamp, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook/engineering) "As" = ( /turf/closed/wall/almayer, /area/adminlevel/chinook/cargo) "Au" = ( /obj/structure/surface/table/reinforced/almayer_B, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/adminlevel/chinook/event) "Aw" = ( /obj/structure/machinery/door/airlock/almayer/engineering{ dir = 1; name = "\improper Tool Storage" }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook/engineering) "Ax" = ( -/obj/structure/surface/table/reinforced/almayer_B, /obj/item/storage/box/cups{ pixel_x = 3; pixel_y = 3 }, /obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "blue" - }, +/obj/structure/surface/table/reinforced/black, +/turf/open/floor/almayer/blue, /area/adminlevel/chinook/offices) "Ay" = ( /obj/structure/surface/table/reinforced/almayer_B, @@ -7438,35 +6665,30 @@ /area/adminlevel/chinook/engineering) "AB" = ( /obj/structure/machinery/optable, -/turf/open/floor/almayer{ - icon_state = "sterile_green" - }, +/turf/open/floor/almayer/sterile_green, /area/adminlevel/chinook/medical) +"AC" = ( +/obj/structure/surface/table/reinforced/prison, +/turf/open/floor/prison/kitchen, +/area/adminlevel/chinook/event) +"AD" = ( +/turf/closed/shuttle/elevator, +/area/adminlevel/chinook/offices) "AE" = ( /obj/structure/bed/chair/office/dark{ dir = 8 }, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, +/turf/open/floor/carpet, /area/adminlevel/chinook/offices) "AF" = ( /obj/structure/machinery/door/airlock/almayer/command{ name = "\improper Dining Hall" }, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" - }, +/turf/open/floor/strata/faux_wood, /area/adminlevel/chinook/event) "AG" = ( /obj/structure/machinery/photocopier, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, +/turf/open/floor/carpet, /area/adminlevel/chinook/sec) "AH" = ( /obj/structure/machinery/vending/coffee, @@ -7483,14 +6705,11 @@ /obj/item/reagent_container/food/snacks/sandwich{ pixel_y = 6 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/almayer/red/west, /area/adminlevel/chinook/event) "AJ" = ( -/obj/structure/surface/table/reinforced/almayer_B, -/turf/open/floor/almayer, +/obj/structure/bed/sofa/south/grey, +/turf/open/floor/kutjevo/plate, /area/adminlevel/chinook/event) "AK" = ( /obj/item/trash/cigbutt/cigarbutt, @@ -7503,16 +6722,11 @@ /obj/structure/sign/nosmoking_1{ pixel_y = 30 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/northeast, /area/adminlevel/chinook/medical) "AM" = ( /obj/structure/surface/rack, -/turf/open/floor/almayer{ - icon_state = "sterile_green" - }, +/turf/open/floor/almayer/sterile_green, /area/adminlevel/chinook/medical) "AP" = ( /obj/structure/machinery/cm_vending/sorted/cargo_guns/squad_prep/training, @@ -7521,15 +6735,18 @@ name = "\improper Range Safety Guidelines"; pixel_x = -32 }, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, +/turf/open/floor/almayer/redfull, /area/adminlevel/chinook) -"AS" = ( -/obj/structure/bed/sofa/south/grey/right, -/turf/open/floor/almayer{ - icon_state = "plate" +"AR" = ( +/obj/structure/machinery/door/airlock/almayer/command{ + dir = 1; + name = "\improper Courtroom" }, +/turf/open/floor/almayer, +/area/adminlevel/chinook/event) +"AS" = ( +/obj/structure/reagent_dispensers/water_cooler/stacks, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook/sec) "AU" = ( /turf/closed/shuttle/ert{ @@ -7537,22 +6754,24 @@ }, /area/adminlevel/chinook/shuttle/unpowered) "AV" = ( -/obj/structure/machinery/power/fusion_engine, /obj/structure/platform{ dir = 8 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/obj/structure/prop/invuln/fusion_reactor, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/engineering) "AX" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/tool, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/adminlevel/chinook/cargo) +"AY" = ( +/obj/structure/closet/secure_closet/personal, +/obj/structure/machinery/light{ + dir = 8 + }, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/chinook) "AZ" = ( /obj/effect/decal/warning_stripes{ icon_state = "N" @@ -7569,14 +6788,20 @@ pixel_x = 3; pixel_y = 24 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/north, /area/adminlevel/chinook) "Bc" = ( /turf/closed/wall/almayer/outer, /area/adminlevel/chinook/sec) +"Bd" = ( +/obj/structure/desertdam/decals/road_edge{ + pixel_x = -12 + }, +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal3" + }, +/turf/open/floor/wood, +/area/adminlevel/chinook) "Be" = ( /obj/effect/decal/warning_stripes{ icon_state = "N" @@ -7588,54 +6813,55 @@ /obj/item/device/flashlight/lamp/green{ pixel_y = 7 }, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, +/obj/item/toy/deck, +/turf/open/floor/carpet, /area/adminlevel/chinook/offices) "Bg" = ( /obj/structure/machinery/computer/secure_data{ dir = 4 }, /obj/structure/surface/table/reinforced/black, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, +/turf/open/floor/carpet, /area/adminlevel/chinook/sec) "Bh" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/obj/structure/closet/secure_closet/commander{ - name = "colonel's locker" +/obj/structure/surface/table/reinforced/black, +/obj/item/folder/black{ + pixel_y = 6; + pixel_x = -6 }, -/obj/item/clothing/head/beret/marine/commander/council, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" +/obj/item/folder/white{ + pixel_x = 2; + pixel_y = 2 }, +/turf/open/floor/wood, /area/adminlevel/chinook/offices) +"Bi" = ( +/turf/closed/wall/almayer/white/hull{ + desc = "A reinforced white hull. Nothing gets through here."; + name = "ultra-reinforced hull" + }, +/area/adminlevel/chinook/medical) "Bj" = ( /obj/structure/surface/table/reinforced/black, /obj/item/storage/fancy/cigarettes/kpack{ pixel_x = -11; pixel_y = 7 }, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, +/turf/open/floor/carpet, /area/adminlevel/chinook/offices) +"Bk" = ( +/obj/structure/surface/table/reinforced/black, +/obj/item/reagent_container/food/drinks/cans/waterbottle{ + pixel_x = -7; + pixel_y = 11 + }, +/turf/open/floor/carpet, +/area/adminlevel/chinook/event) "Bn" = ( /obj/structure/surface/table/almayer, /obj/item/storage/belt/utility/full, /obj/item/device/lightreplacer, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/northwest, /area/adminlevel/chinook/engineering) "Bp" = ( /obj/structure/machinery/door/airlock/almayer/security/glass{ @@ -7645,48 +6871,29 @@ /turf/open/floor/almayer, /area/adminlevel/chinook/sec) "Br" = ( -/turf/closed/wall/almayer/outer{ - desc = "A heavily reinforced metal wall. Nothing gets through here."; - name = "ultra-reinforced hull" - }, +/turf/closed/wall/almayer/reinforced, /area/adminlevel/chinook/sec) "Bt" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/tool, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/north, /area/adminlevel/chinook/engineering) "Bu" = ( -/obj/structure/sign/safety/coffee{ - pixel_x = 12; - pixel_y = 25 - }, -/obj/structure/sign/safety/west{ - pixel_y = 25 - }, -/turf/open/floor/plating/plating_catwalk, -/area/adminlevel/chinook/sec) +/turf/open/floor/almayer/uscm/directional/southwest, +/area/adminlevel/chinook/shuttle) "Bx" = ( /obj/structure/surface/table/reinforced/black, /obj/structure/machinery/computer/emails{ dir = 4; pixel_x = 1 }, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, +/turf/open/floor/carpet, /area/adminlevel/chinook/offices) "By" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_corner" - }, +/turf/open/floor/almayer/sterile_green_corner/north, /area/adminlevel/chinook/medical) "Bz" = ( /obj/structure/surface/table/almayer, @@ -7695,10 +6902,7 @@ pixel_x = 6; pixel_y = 6 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/northeast, /area/adminlevel/chinook/engineering) "BA" = ( /obj/structure/machinery/light{ @@ -7707,44 +6911,24 @@ /obj/structure/flora/pottedplant{ icon_state = "pottedplant_10" }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "emerald" - }, +/turf/open/floor/almayer/emerald/west, /area/adminlevel/chinook/shuttle) "BB" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/west, /area/adminlevel/chinook/medical) "BC" = ( /obj/structure/largecrate/random/barrel/yellow, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/cargo) -"BE" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/turf/open/floor/kutjevo/plate, -/area/adminlevel/chinook/event) "BF" = ( /obj/structure/machinery/photocopier, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook/engineering) "BG" = ( /obj/structure/bed/chair/office/dark{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/northwest, /area/adminlevel/chinook/engineering) "BH" = ( /obj/structure/bed/chair/office/dark{ @@ -7758,32 +6942,24 @@ pixel_y = 6 }, /obj/structure/surface/table/reinforced/black, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" - }, +/turf/open/floor/wood, /area/adminlevel/chinook/offices) +"BJ" = ( +/obj/item/toy/beach_ball, +/turf/open/gm/river/pool, +/area/adminlevel/chinook) "BK" = ( -/turf/open/floor/almayer{ - dir = 5; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/northeast, /area/adminlevel/chinook/engineering) "BN" = ( /obj/structure/machinery/body_scanconsole{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/adminlevel/chinook/medical) "BO" = ( /obj/structure/machinery/autolathe, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "green" - }, +/turf/open/floor/almayer/green/northwest, /area/adminlevel/chinook/cargo) "BP" = ( /obj/structure/platform{ @@ -7791,6 +6967,10 @@ }, /turf/open/floor/kutjevo, /area/adminlevel/chinook/event) +"BR" = ( +/obj/structure/machinery/light, +/turf/open/floor/almayer/sterile_green_side, +/area/adminlevel/chinook/medical) "BS" = ( /turf/open/floor/plating/plating_catwalk, /area/adminlevel/chinook/shuttle) @@ -7801,10 +6981,7 @@ /obj/structure/stairs/perspective{ icon_state = "p_stair_full" }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/cargo) "BV" = ( /obj/structure/platform_decoration{ @@ -7816,15 +6993,11 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "red" - }, +/obj/structure/machinery/disposal, +/turf/open/floor/almayer/red/southeast, /area/adminlevel/chinook/sec) "BX" = ( -/turf/open/floor/kutjevo/tan/alt_edge{ - dir = 1 - }, +/turf/open/floor/kutjevo/tan/alt_edge/north, /area/adminlevel/chinook/event) "BY" = ( /obj/structure/machinery/door_control{ @@ -7834,21 +7007,20 @@ pixel_y = 8; req_one_access_txt = "2;3;12;19" }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/west, /area/adminlevel/chinook/engineering) "BZ" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W" +/obj/structure/desertdam/decals/road_edge{ + pixel_x = 2; + pixel_y = 21 }, -/obj/item/fuelCell, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "plating_striped" +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal8"; + pixel_x = -2; + pixel_y = -4 }, -/area/adminlevel/chinook/engineering) +/turf/open/floor/wood, +/area/adminlevel/chinook) "Cb" = ( /turf/closed/shuttle/ert{ icon_state = "leftengine_3"; @@ -7864,16 +7036,18 @@ pixel_x = 4; pixel_y = 7 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook) "Cf" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" +/obj/structure/sign/safety/firingrange{ + pixel_x = -17; + pixel_y = 6 + }, +/obj/structure/sign/safety/hazard{ + pixel_x = -17; + pixel_y = -6 }, +/turf/open/floor/almayer/red/west, /area/adminlevel/chinook/sec) "Cg" = ( /obj/structure/machinery/cm_vending/sorted/medical/wall_med{ @@ -7881,43 +7055,50 @@ }, /turf/open/floor/kutjevo, /area/adminlevel/chinook/event) +"Ch" = ( +/turf/closed/shuttle/elevator, +/area/adminlevel/chinook/cargo) +"Ci" = ( +/obj/structure/machinery/vending/coffee, +/turf/open/floor/kutjevo/plate, +/area/adminlevel/chinook/offices) "Cj" = ( /obj/structure/sign/safety/cryo{ pixel_x = -18 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/west, /area/adminlevel/chinook) "Ck" = ( -/obj/structure/surface/table/reinforced/almayer_B, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" - }, +/obj/structure/surface/table/reinforced/black, +/turf/open/floor/strata/faux_wood, /area/adminlevel/chinook/offices) "Cm" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, +/turf/open/floor/carpet, /area/adminlevel/chinook/offices) "Cn" = ( /obj/structure/machinery/light, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/cargo) "Co" = ( /obj/structure/machinery/vending/coffee, /turf/open/floor/kutjevo/plate, /area/adminlevel/chinook) +"Cp" = ( +/obj/structure/platform_decoration{ + dir = 8 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "N" + }, +/turf/open/floor/almayer/plating/northeast, +/area/adminlevel/chinook/cargo) +"Cq" = ( +/obj/structure/machinery/portable_atmospherics/hydroponics, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/chinook/event) "Cr" = ( /obj/structure/bed/sofa/south/grey/left, /turf/open/floor/kutjevo/plate, @@ -7928,28 +7109,34 @@ pixel_y = 6 }, /obj/item/tool/pen, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/item/storage/box/matches{ + pixel_x = -2; + pixel_y = 23 }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook/cargo) "Ct" = ( /obj/structure/machinery/fuelcell_recycler, /turf/open/floor/almayer, /area/adminlevel/chinook/engineering) -"Cw" = ( -/obj/structure/machinery/light{ - dir = 4 +"Cu" = ( +/obj/structure/surface/table/reinforced/almayer_B, +/obj/item/device/motiondetector{ + pixel_y = 9 }, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" +/turf/open/floor/wood, +/area/adminlevel/chinook/offices) +"Cw" = ( +/obj/structure/surface/table/reinforced/almayer_B, +/obj/structure/sign/goldenplaque{ + pixel_x = 32; + desc = "The plaque reads, 'This plaque is awarded to: KARL WALZ, For superior and unrivaled strategic prowess during the 2173 War Games, scoring a decisive and triumphant victory for their side.'"; + name = "2173 Commanding Excellence Award" }, +/turf/open/floor/almayer/ai_floors, /area/adminlevel/chinook/offices) "Cx" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "emeraldcorner" - }, +/turf/open/floor/almayer/uscm/directional/northwest, /area/adminlevel/chinook/shuttle) "Cz" = ( /obj/structure/bed/sofa/south/grey, @@ -7960,22 +7147,25 @@ /area/adminlevel/chinook) "CA" = ( /obj/structure/machinery/disposal, -/turf/open/floor/almayer, +/turf/open/floor/kutjevo, /area/adminlevel/chinook/offices) "CC" = ( /obj/structure/bed/chair/comfy/black, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, +/turf/open/floor/carpet, /area/adminlevel/chinook/offices) "CE" = ( -/obj/structure/machinery/light, /obj/structure/bed/chair/comfy{ dir = 1 }, +/obj/structure/machinery/light{ + dir = 8 + }, /turf/open/floor/kutjevo/tan, /area/adminlevel/chinook/event) +"CF" = ( +/obj/structure/barricade/handrail/strata, +/turf/open/floor/almayer/blue, +/area/adminlevel/chinook) "CH" = ( /obj/structure/machinery/light, /turf/open/floor/kutjevo/plate, @@ -7984,44 +7174,33 @@ /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/engineering) "CK" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/north, /area/adminlevel/chinook/cryo) "CM" = ( /obj/structure/machinery/light, -/obj/structure/machinery/medical_pod/sleeper{ - dir = 8 - }, -/turf/open/floor/almayer{ - icon_state = "sterile_green_side" - }, +/obj/structure/machinery/medical_pod/sleeper, +/turf/open/floor/almayer/sterile_green_side, /area/adminlevel/chinook/medical) -"CN" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "cargo_arrow" - }, -/area/adminlevel/chinook) "CP" = ( -/turf/open/shuttle/dropship{ - icon_state = "rasputin8" - }, +/turf/open/shuttle/dropship/light_grey_bottom_right, /area/adminlevel/chinook/shuttle/unpowered) "CQ" = ( /obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/engineering) +"CS" = ( +/obj/structure/machinery/cryopod, +/turf/open/floor/almayer/sterile_green, +/area/adminlevel/chinook/medical) +"CT" = ( +/obj/effect/decal/medical_decals{ + icon_state = "triagedecaldir" + }, +/turf/open/floor/almayer/dark_sterile, +/area/adminlevel/chinook/medical) "CU" = ( /obj/structure/machinery/vending/snack, /turf/open/floor/kutjevo/plate, @@ -8034,10 +7213,7 @@ pixel_x = -16; pixel_y = -12 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/almayer/red/west, /area/adminlevel/chinook/sec) "CX" = ( /obj/structure/bed/chair/comfy{ @@ -8046,24 +7222,21 @@ /obj/structure/sign/poster{ pixel_y = 32 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook) "Da" = ( /obj/structure/machinery/vending/security, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/almayer/red/east, /area/adminlevel/chinook/event) "Db" = ( -/obj/structure/machinery/cryopod, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_corner" +/obj/structure/machinery/light{ + dir = 8 }, -/area/adminlevel/chinook/medical) +/obj/structure/machinery/door/airlock/multi_tile/almayer/engidoor{ + name = "\improper Engineering" + }, +/turf/open/floor/almayer/orange/west, +/area/adminlevel/chinook/engineering) "Dc" = ( /obj/structure/toilet{ dir = 4 @@ -8071,21 +7244,28 @@ /turf/open/floor/almayer, /area/adminlevel/chinook/cargo) "De" = ( -/obj/structure/machinery/computer/secure_data{ - dir = 4 +/obj/structure/surface/rack, +/obj/item/storage/bag/plants{ + pixel_x = -3 }, -/obj/structure/surface/table/reinforced/almayer_B, -/turf/open/floor/almayer, +/obj/item/storage/bag/plants{ + pixel_x = 3 + }, +/obj/item/storage/bag/plants{ + pixel_y = -3 + }, +/obj/item/tool/scythe, +/turf/open/floor/almayer/green/north, /area/adminlevel/chinook/event) "Df" = ( -/obj/structure/bed/chair/comfy{ - dir = 8 +/obj/structure/bed/chair/comfy/black{ + dir = 1 }, -/turf/open/floor/almayer, +/turf/open/floor/kutjevo/plate, /area/adminlevel/chinook/event) "Dg" = ( -/obj/structure/surface/rack, -/turf/open/floor/almayer, +/obj/structure/bed/sofa/south/grey/right, +/turf/open/floor/kutjevo/plate, /area/adminlevel/chinook/event) "Dh" = ( /obj/structure/machinery/light, @@ -8123,9 +7303,7 @@ /obj/item/weapon/gun/shotgun/combat, /obj/item/weapon/gun/shotgun/combat, /obj/item/weapon/gun/shotgun/combat, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/adminlevel/chinook/sec) "Dp" = ( /obj/structure/machinery/vending/cigarette/colony, @@ -8134,6 +7312,13 @@ }, /turf/open/floor/kutjevo/tan/plate, /area/adminlevel/chinook/event) +"Dq" = ( +/obj/structure/extinguisher_cabinet{ + pixel_y = 27 + }, +/obj/structure/bed/chair/wheelchair, +/turf/open/floor/almayer/plate, +/area/adminlevel/chinook/medical) "Dr" = ( /obj/structure/closet/secure_closet{ name = "\improper Lethal Injection Locker" @@ -8143,17 +7328,12 @@ /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/sec) "Ds" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/device/flashlight/lamp, -/turf/open/floor/almayer{ - icon_state = "tcomms" - }, +/turf/open/floor/almayer/tcomms, /area/adminlevel/chinook/engineering) "Dt" = ( /obj/structure/machinery/door/airlock/almayer/security/glass{ @@ -8168,31 +7348,58 @@ }, /turf/open/floor/almayer, /area/adminlevel/chinook/offices) +"Dv" = ( +/turf/closed/shuttle/elevator{ + dir = 10 + }, +/area/adminlevel/chinook/cargo) "Dw" = ( /obj/structure/surface/table/reinforced/black, /obj/structure/machinery/computer/emails{ dir = 8; pixel_x = -2 }, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" - }, +/turf/open/floor/wood, /area/adminlevel/chinook/offices) +"Dx" = ( +/obj/structure/closet/fireaxecabinet{ + pixel_y = 25 + }, +/turf/open/floor/almayer, +/area/adminlevel/chinook) "Dy" = ( /turf/closed/shuttle/ert{ icon_state = "rightengine_2" }, /area/adminlevel/chinook/shuttle/unpowered) +"Dz" = ( +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal8"; + pixel_x = -16; + pixel_y = -16 + }, +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal7"; + pixel_x = 16; + pixel_y = -16 + }, +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal6"; + pixel_x = 16; + pixel_y = 16 + }, +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal5"; + pixel_x = -16; + pixel_y = 16 + }, +/turf/open/floor/wood, +/area/adminlevel/chinook) "DC" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "emerald" - }, +/turf/open/floor/almayer/emerald/west, /area/adminlevel/chinook/shuttle) "DD" = ( /obj/structure/machinery/door_control{ @@ -8207,10 +7414,7 @@ /obj/structure/bed/chair/comfy{ dir = 1 }, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, +/turf/open/floor/carpet, /area/adminlevel/chinook/offices) "DH" = ( /obj/structure/bed/chair/comfy{ @@ -8219,10 +7423,7 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, +/turf/open/floor/carpet, /area/adminlevel/chinook/offices) "DJ" = ( /turf/closed/shuttle/ert, @@ -8233,16 +7434,19 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" +/turf/open/floor/almayer/orange/west, +/area/adminlevel/chinook/engineering) +"DN" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E" + }, +/obj/structure/extinguisher_cabinet{ + pixel_y = 27 }, +/turf/open/floor/almayer, /area/adminlevel/chinook/engineering) "DO" = ( -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/sec) "DP" = ( /obj/structure/prop/almayer/name_stencil{ @@ -8254,58 +7458,48 @@ "DR" = ( /obj/structure/surface/table/almayer, /obj/effect/spawner/random/toolbox, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/east, /area/adminlevel/chinook/engineering) +"DS" = ( +/obj/structure/machinery/light{ + dir = 8 + }, +/turf/open/floor/corsat/squares, +/area/adminlevel/chinook/offices) "DT" = ( /obj/structure/machinery/cryopod, /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/adminlevel/chinook/cryo) "DV" = ( /obj/structure/surface/rack, -/obj/item/explosive/grenade/high_explosive/training, -/obj/item/explosive/grenade/high_explosive/training, -/obj/item/explosive/grenade/high_explosive/training, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/offices) "DY" = ( /obj/structure/bed/sofa/vert/grey/bot, -/turf/open/floor/almayer{ - icon_state = "emeraldfull" - }, +/turf/open/floor/almayer/emeraldfull, /area/adminlevel/chinook/shuttle) "DZ" = ( /obj/structure/closet/fireaxecabinet{ pixel_y = 25 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/almayer/red/north, /area/adminlevel/chinook/sec) +"Ea" = ( +/obj/structure/sign/safety/security{ + pixel_x = 32 + }, +/turf/open/floor/almayer/silver/east, +/area/adminlevel/chinook) "Ed" = ( /obj/structure/machinery/cm_vending/clothing/dress, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/offices) "Eg" = ( /obj/structure/closet/coffin, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/sec) "Eh" = ( /obj/structure/bed/chair/comfy{ @@ -8314,16 +7508,11 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/almayer/red/northeast, /area/adminlevel/chinook/sec) "Ei" = ( /obj/structure/filingcabinet, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook/engineering) "Ej" = ( /obj/structure/sign/safety/coffee{ @@ -8333,26 +7522,38 @@ pixel_x = -16; pixel_y = -12 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook/sec) +"Ek" = ( +/obj/structure/surface/table/reinforced/almayer_B, +/obj/item/reagent_container/food/drinks/bottle/whiskey{ + pixel_x = -2; + pixel_y = 16 + }, +/obj/item/reagent_container/food/drinks/drinkingglass{ + pixel_x = 4; + pixel_y = 5 + }, +/obj/item/reagent_container/food/drinks/drinkingglass{ + pixel_y = 1; + pixel_x = -6 + }, +/turf/open/floor/wood, +/area/adminlevel/chinook/offices) "El" = ( /obj/structure/bed/chair/dropship/passenger, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/adminlevel/chinook/shuttle/unpowered) +"Em" = ( +/turf/open/floor/kutjevo, +/area/adminlevel/chinook/offices) "En" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/recharger, /obj/item/roller{ pixel_y = 6 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/north, /area/adminlevel/chinook/medical) "Eo" = ( /obj/structure/bed/chair/comfy{ @@ -8361,47 +7562,51 @@ /turf/open/floor/kutjevo/tan/alt_inner_edge, /area/adminlevel/chinook) "Ep" = ( -/obj/structure/bed/chair/comfy{ +/obj/structure/stairs/perspective{ + dir = 4; + icon_state = "p_stair_sn_full_cap" + }, +/obj/structure/platform/strata/metal{ + dir = 4 + }, +/turf/open/gm/river/pool, +/area/adminlevel/chinook) +"Eq" = ( +/obj/structure/machinery/vending/hydronutrients, +/obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/chinook/event) +"Es" = ( +/obj/structure/sign/poster{ + pixel_y = -32 }, +/turf/open/floor/almayer, /area/adminlevel/chinook) "Et" = ( -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" - }, +/turf/open/floor/strata/faux_wood, /area/adminlevel/chinook/offices) "Ev" = ( /obj/structure/barricade/handrail, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook) "Ew" = ( /obj/structure/surface/table/reinforced/black, -/turf/open/floor/kutjevo/tan/alt_edge{ - dir = 1 - }, +/turf/open/floor/kutjevo/tan/alt_edge/north, /area/adminlevel/chinook) +"Ex" = ( +/obj/structure/largecrate/random/barrel/blue, +/turf/open/floor/almayer/plating/northeast, +/area/adminlevel/chinook/cargo) "Ey" = ( -/turf/open/floor/kutjevo/tan/alt_inner_edge{ - dir = 1 - }, +/turf/open/floor/kutjevo/tan/alt_inner_edge/north, /area/adminlevel/chinook) "EA" = ( /obj/structure/sign/safety/reception{ pixel_x = -15 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/west, /area/adminlevel/chinook) "EB" = ( /obj/structure/surface/table/reinforced/black, @@ -8409,10 +7614,7 @@ dir = 8; pixel_y = 6 }, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, +/turf/open/floor/carpet, /area/adminlevel/chinook/offices) "ED" = ( /obj/structure/bed/sofa/south/grey/right, @@ -8422,10 +7624,18 @@ /turf/open/floor/kutjevo/plate, /area/adminlevel/chinook) "EE" = ( -/turf/open/floor/almayer/uscm/directional{ - dir = 5 +/obj/effect/decal/warning_stripes{ + icon_state = "E" }, +/turf/open/floor/almayer/emerald/east, /area/adminlevel/chinook/shuttle) +"EG" = ( +/obj/structure/machinery/door/airlock/almayer/generic{ + dir = 2; + name = "\improper Men's Bathroom" + }, +/turf/open/floor/almayer, +/area/adminlevel/chinook/offices) "EJ" = ( /obj/structure/surface/table/reinforced/black, /turf/open/floor/kutjevo/tan/plate, @@ -8440,10 +7650,7 @@ /obj/structure/flora/pottedplant{ icon_state = "pottedplant_21" }, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "emerald" - }, +/turf/open/floor/almayer/emerald/northwest, /area/adminlevel/chinook/shuttle) "EQ" = ( /obj/item/reagent_container/food/snacks/meat{ @@ -8459,19 +7666,14 @@ pixel_y = 6 }, /obj/structure/surface/table/reinforced/prison, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, -/area/space) +/turf/open/floor/prison/kitchen, +/area/adminlevel/chinook/event) "ET" = ( /obj/structure/machinery/vending/security, /obj/structure/machinery/cm_vending/sorted/medical/wall_med{ pixel_y = 25 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/almayer/red/east, /area/adminlevel/chinook/sec) "EU" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/comdoor{ @@ -8479,13 +7681,21 @@ }, /turf/open/floor/almayer, /area/adminlevel/chinook/event) +"EV" = ( +/turf/open/floor/almayer/red/north, +/area/adminlevel/chinook) "EZ" = ( /obj/structure/machinery/light, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook) +"Fa" = ( +/obj/structure/closet/secure_closet/guncabinet/red, +/obj/item/ammo_magazine/shotgun/buckshot, +/obj/item/weapon/gun/shotgun/combat, +/obj/item/ammo_magazine/shotgun/buckshot, +/obj/structure/machinery/door/window/brigdoor/southright, +/turf/open/floor/almayer/redfull, +/area/adminlevel/chinook/offices) "Fb" = ( /obj/structure/bed/chair/office/dark{ dir = 1 @@ -8502,20 +7712,25 @@ /obj/structure/sign/safety/ammunition{ pixel_x = -16 }, -/turf/open/floor/almayer{ - icon_state = "red" - }, +/obj/structure/flora/pottedplant/random, +/turf/open/floor/almayer/red, /area/adminlevel/chinook) "Ff" = ( -/turf/open/floor/almayer{ - icon_state = "red" - }, +/turf/open/floor/almayer/red, /area/adminlevel/chinook) "Fg" = ( /obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "red" - }, +/turf/open/floor/almayer/red, +/area/adminlevel/chinook) +"Fi" = ( +/obj/structure/surface/rack, +/obj/item/device/binoculars, +/obj/item/device/binoculars, +/obj/item/device/binoculars, +/obj/item/device/binoculars, +/obj/item/device/binoculars, +/obj/item/device/binoculars, +/turf/open/floor/almayer/cargo, /area/adminlevel/chinook) "Fk" = ( /obj/structure/sign/ROsign{ @@ -8523,97 +7738,86 @@ name = "\improper Range Safety Guidelines"; pixel_y = -29 }, -/turf/open/floor/almayer{ - icon_state = "red" - }, +/turf/open/floor/almayer/red, /area/adminlevel/chinook) "Fl" = ( /obj/structure/bed, /obj/item/bedsheet/medical, -/turf/open/floor/almayer{ - icon_state = "sterile_green" - }, +/turf/open/floor/almayer/sterile_green, /area/adminlevel/chinook/sec) "Fm" = ( /obj/structure/machinery/disposal, -/turf/open/floor/almayer{ - icon_state = "red" - }, +/turf/open/floor/almayer/red, /area/adminlevel/chinook) +"Fn" = ( +/obj/structure/machinery/light{ + dir = 4 + }, +/turf/open/floor/corsat/squares, +/area/adminlevel/chinook/offices) "Fq" = ( /obj/structure/surface/table/reinforced/black, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_27"; + pixel_y = 12 }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook/offices) "Fr" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, +/turf/open/floor/carpet, /area/adminlevel/chinook/sec) +"Ft" = ( +/obj/structure/machinery/light{ + dir = 4 + }, +/turf/open/floor/almayer/silver/east, +/area/adminlevel/chinook) "Fu" = ( /obj/structure/closet/toolcloset, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/adminlevel/chinook/engineering) "Fv" = ( /obj/structure/platform_decoration{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/engineering) +"Fx" = ( +/turf/closed/shuttle/elevator/gears, +/area/adminlevel/chinook/offices) "Fy" = ( /obj/structure/surface/table/almayer, /obj/item/tool/extinguisher, /obj/item/tool/extinguisher, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/east, /area/adminlevel/chinook/engineering) "Fz" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, +/turf/open/floor/carpet, /area/adminlevel/chinook/sec) -"FB" = ( -/obj/structure/cargo_container/grant/right, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/adminlevel/chinook/cargo) "FD" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "emerald" - }, +/turf/open/floor/almayer/emerald/north, /area/adminlevel/chinook/shuttle) "FE" = ( -/turf/open/floor/almayer{ - icon_state = "sterile_green" +/obj/structure/desertdam/decals/road_edge{ + pixel_x = -12 }, -/area/adminlevel/chinook/sec) +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal3"; + pixel_y = 16 + }, +/turf/open/floor/wood, +/area/adminlevel/chinook) "FF" = ( /obj/structure/sign/prop3{ pixel_y = 28 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/almayer/red/north, /area/adminlevel/chinook/sec) "FG" = ( /obj/structure/surface/table/almayer, @@ -8624,17 +7828,19 @@ /area/adminlevel/chinook/sec) "FH" = ( /obj/structure/machinery/cm_vending/sorted/tech/tool_storage, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook/engineering) +"FK" = ( +/obj/structure/morgue{ + dir = 8 + }, +/turf/open/floor/almayer/plate, +/area/adminlevel/chinook/medical) "FL" = ( /obj/structure/machinery/body_scanconsole{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side, /area/adminlevel/chinook/medical) "FM" = ( /obj/structure/bed/stool, @@ -8647,9 +7853,7 @@ pixel_y = 5 }, /obj/item/storage/box/ids, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/adminlevel/chinook/sec) "FP" = ( /obj/structure/machinery/light, @@ -8657,10 +7861,8 @@ /turf/open/floor/plating/plating_catwalk, /area/adminlevel/chinook/sec) "FQ" = ( -/obj/structure/machinery/telecomms/hub/preset_cent, -/turf/open/floor/almayer{ - icon_state = "tcomms" - }, +/obj/structure/machinery/telecomms/hub, +/turf/open/floor/almayer/tcomms, /area/adminlevel/chinook/engineering) "FR" = ( /obj/structure/surface/table/almayer, @@ -8675,23 +7877,27 @@ /obj/item/folder/yellow{ pixel_y = 7 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook/engineering) "FU" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/reagent_container/food/snacks/sliceable/pumpkinpie{ pixel_y = 6 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/adminlevel/chinook/event) "FV" = ( -/turf/open/floor/kutjevo/tan/alt_edge{ - dir = 8 +/turf/open/floor/kutjevo/tan/alt_edge/west, +/area/adminlevel/chinook) +"FW" = ( +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal3" }, +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal6"; + pixel_x = 2 + }, +/turf/open/floor/wood, /area/adminlevel/chinook) "FX" = ( /obj/structure/machinery/light{ @@ -8700,15 +7906,10 @@ /obj/structure/platform{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/cargo) "FY" = ( -/turf/open/floor/kutjevo/tan/alt_edge{ - dir = 4 - }, +/turf/open/floor/kutjevo/tan/alt_edge/east, /area/adminlevel/chinook) "FZ" = ( /obj/structure/sign/safety/medical{ @@ -8718,10 +7919,7 @@ pixel_x = 12; pixel_y = 25 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/almayer/red/north, /area/adminlevel/chinook/sec) "Ga" = ( /obj/structure/machinery/door/airlock/almayer/command{ @@ -8730,30 +7928,25 @@ /turf/open/floor/almayer, /area/adminlevel/chinook) "Gb" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "redcorner" - }, +/turf/open/floor/almayer/redcorner/west, /area/adminlevel/chinook/sec) +"Gc" = ( +/obj/structure/machinery/door/airlock/multi_tile/elevator/freight, +/turf/open/floor/corsat/plate, +/area/adminlevel/chinook/cargo) "Gf" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/storage/box/drinkingglasses, /obj/item/reagent_container/food/snacks/sandwich{ pixel_y = 22 }, -/obj/item/ashtray/glass, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/adminlevel/chinook/event) "Gg" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/north, /area/adminlevel/chinook) "Gi" = ( /obj/structure/platform{ @@ -8762,10 +7955,7 @@ /obj/structure/platform{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/engineering) "Gk" = ( /obj/structure/sign/safety/medical{ @@ -8779,10 +7969,11 @@ pixel_x = 24; pixel_y = 25 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "silver" +/obj/structure/sign/safety/security{ + pixel_x = -12; + pixel_y = 25 }, +/turf/open/floor/almayer/silver/north, /area/adminlevel/chinook) "Go" = ( /turf/open/floor/plating/plating_catwalk, @@ -8791,27 +7982,24 @@ /obj/structure/sign/prop3{ pixel_y = 28 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/north, /area/adminlevel/chinook) "Gt" = ( /obj/structure/sign/safety/galley{ pixel_y = 25 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/north, /area/adminlevel/chinook) "Gu" = ( -/obj/structure/cargo_container/wy/mid, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal3" }, -/area/adminlevel/chinook/cargo) +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal5"; + pixel_x = -2 + }, +/turf/open/floor/wood, +/area/adminlevel/chinook) "Gv" = ( /obj/structure/surface/rack, /obj/item/device/binoculars, @@ -8829,40 +8017,26 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/almayer/red/north, /area/adminlevel/chinook) "Gx" = ( /obj/structure/surface/table/reinforced/almayer_B, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/almayer/red/west, /area/adminlevel/chinook/sec) "Gz" = ( -/obj/structure/machinery/light{ - dir = 8 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" +/obj/structure/bed/chair/comfy{ + dir = 1 }, -/area/adminlevel/chinook/cargo) +/turf/open/floor/strata/faux_wood, +/area/adminlevel/chinook/offices) "GA" = ( -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook/sec) "GB" = ( /obj/structure/sign/safety/storage{ pixel_y = -28 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_corner" - }, +/turf/open/floor/almayer/sterile_green_corner/west, /area/adminlevel/chinook/medical) "GC" = ( /obj/structure/machinery/door/airlock/almayer/security/glass{ @@ -8872,29 +8046,25 @@ /area/adminlevel/chinook/sec) "GD" = ( /obj/structure/machinery/door/airlock/almayer/generic, -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/light_grey_single_wide_up_to_down, /area/adminlevel/chinook/shuttle/unpowered) +"GE" = ( +/obj/structure/largecrate/supply/medicine/blood, +/turf/open/floor/almayer/plate, +/area/adminlevel/chinook/medical) "GF" = ( /obj/structure/sign/safety/conference_room{ pixel_y = 25 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/north, /area/adminlevel/chinook) "GG" = ( /obj/structure/surface/table/reinforced/black, /turf/open/floor/kutjevo/tan/alt_edge, /area/adminlevel/chinook) "GH" = ( -/obj/structure/machinery/door/airlock/almayer/security/glass{ - dir = 1; - name = "Firing Range"; - req_access = null; - req_one_access_txt = "2;4;7;9;21" +/obj/structure/machinery/door/airlock/multi_tile/almayer/secdoor/glass/reinforced{ + name = "Firing Range" }, /turf/open/floor/almayer, /area/adminlevel/chinook) @@ -8903,15 +8073,11 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook/offices) "GJ" = ( /obj/structure/machinery/vending/coffee, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook/offices) "GK" = ( /obj/structure/surface/table/reinforced/black, @@ -8919,25 +8085,17 @@ /obj/item/paper{ pixel_x = -5 }, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, +/turf/open/floor/carpet, /area/adminlevel/chinook/sec) "GL" = ( /obj/structure/machinery/autolathe/full, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/east, /area/adminlevel/chinook/engineering) "GM" = ( /obj/structure/surface/table/almayer, /obj/item/device/lightreplacer, /obj/effect/spawner/random/tool, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook/engineering) "GN" = ( /obj/structure/machinery/light{ @@ -8946,33 +8104,21 @@ /turf/open/floor/plating/plating_catwalk, /area/adminlevel/chinook/sec) "GP" = ( -/turf/open/floor/almayer{ - dir = 10; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/southwest, /area/adminlevel/chinook/engineering) "GQ" = ( /obj/structure/largecrate/random/case, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/southeast, /area/adminlevel/chinook/engineering) "GR" = ( /obj/structure/machinery/disposal, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/sec) "GS" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/west, /area/adminlevel/chinook/engineering) "GT" = ( /obj/structure/surface/table/almayer, @@ -8989,62 +8135,44 @@ pixel_y = 5 }, /obj/item/storage/box/masks, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/north, /area/adminlevel/chinook/medical) "GV" = ( /obj/structure/sign/safety/coffee{ pixel_y = -25 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook) "GW" = ( /obj/structure/closet/emcloset, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/east, /area/adminlevel/chinook/engineering) "GX" = ( /obj/structure/bed/chair/comfy{ dir = 8 }, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, +/turf/open/floor/carpet, /area/adminlevel/chinook/offices) -"GY" = ( -/obj/structure/sign/poster{ - pixel_y = -32 - }, -/turf/open/floor/almayer{ - icon_state = "silver" - }, -/area/adminlevel/chinook) "Ha" = ( /obj/structure/window/framed/almayer, /turf/open/floor/plating, /area/adminlevel/chinook/engineering) "Hb" = ( /obj/structure/largecrate/random/case/double, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/southwest, /area/adminlevel/chinook/engineering) +"Hd" = ( +/obj/structure/machinery/light{ + dir = 4 + }, +/obj/structure/flora/pottedplant/random, +/turf/open/floor/wood, +/area/adminlevel/chinook/offices) "Hf" = ( /obj/structure/bed/chair/comfy/black{ dir = 4 }, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, +/turf/open/floor/carpet, /area/adminlevel/chinook/offices) "Hg" = ( /obj/structure/sign/safety/airlock{ @@ -9054,10 +8182,6 @@ pixel_x = 12; pixel_y = -28 }, -/obj/structure/sign/safety/west{ - pixel_x = -12; - pixel_y = -28 - }, /obj/effect/decal/warning_stripes{ icon_state = "W" }, @@ -9067,38 +8191,26 @@ /obj/structure/surface/table/almayer, /obj/item/storage/belt/utility/full, /obj/item/device/lightreplacer, -/turf/open/floor/almayer{ - icon_state = "orange" - }, +/turf/open/floor/almayer/orange, /area/adminlevel/chinook/engineering) "Hj" = ( /obj/structure/surface/table/almayer, /obj/effect/spawner/random/tool, -/turf/open/floor/almayer{ - icon_state = "orange" - }, +/turf/open/floor/almayer/orange, /area/adminlevel/chinook/engineering) "Hl" = ( /obj/structure/reagent_dispensers/watertank, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/northwest, /area/adminlevel/chinook/engineering) "Hm" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook/engineering) "Hn" = ( -/obj/structure/machinery/power/fusion_engine, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/obj/structure/prop/invuln/fusion_reactor, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/engineering) "Ho" = ( /obj/effect/decal/warning_stripes{ @@ -9114,18 +8226,13 @@ /area/adminlevel/chinook) "Hr" = ( /obj/structure/machinery/cm_vending/sorted/uniform_supply, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/almayer/green/north, /area/adminlevel/chinook/cargo) "Hs" = ( /obj/structure/bed/chair/comfy{ dir = 4 }, -/turf/open/floor/kutjevo/tan/alt_inner_edge{ - dir = 4 - }, +/turf/open/floor/kutjevo/tan/alt_inner_edge/east, /area/adminlevel/chinook) "Hu" = ( /obj/structure/bed/chair/comfy{ @@ -9148,21 +8255,33 @@ /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/obj/item/tool/weldingtool{ +/obj/item/tool/weldingtool/largetank{ pixel_x = 14; pixel_y = -14 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "plating_striped" - }, +/turf/open/floor/almayer/plating_striped/west, /area/adminlevel/chinook/engineering) "Hz" = ( /obj/structure/surface/table/reinforced/black, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" +/turf/open/floor/carpet, +/area/adminlevel/chinook/event) +"HA" = ( +/obj/structure/stairs/perspective{ + icon_state = "p_stair_ew_full_cap"; + layer = 3.5 + }, +/obj/structure/platform/strata/metal{ + dir = 1 }, +/turf/open/floor/almayer, +/area/adminlevel/chinook) +"HC" = ( +/obj/structure/machinery/door/airlock/almayer/generic{ + dir = 8; + name = "Freezer"; + req_access_txt = "30" + }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook/event) "HE" = ( /obj/structure/bed/chair/comfy{ @@ -9172,16 +8291,14 @@ /area/adminlevel/chinook) "HF" = ( /obj/structure/machinery/vending/coffee, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook) "HG" = ( -/obj/structure/stairs/perspective{ - icon_state = "p_stair_full" +/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ + pixel_x = -30 }, -/turf/open/floor/almayer, -/area/adminlevel/chinook/cargo) +/turf/open/floor/kutjevo, +/area/adminlevel/chinook/offices) "HH" = ( /obj/item/stack/sheet/metal/large_stack, /turf/open/floor/almayer, @@ -9197,12 +8314,34 @@ }, /turf/open/floor/almayer, /area/adminlevel/chinook/sec) +"HK" = ( +/obj/structure/surface/rack, +/obj/item/tool/minihoe{ + pixel_x = -4 + }, +/obj/item/tool/minihoe{ + pixel_x = 4 + }, +/obj/item/tool/minihoe{ + pixel_y = -4 + }, +/obj/item/tool/wirecutters/clippers{ + pixel_y = -4 + }, +/obj/item/tool/wirecutters/clippers{ + pixel_y = -2 + }, +/obj/item/tool/wirecutters/clippers, +/obj/structure/machinery/light, +/turf/open/floor/almayer/green/north, +/area/adminlevel/chinook/event) +"HL" = ( +/obj/structure/bed/chair, +/turf/open/floor/almayer/plate, +/area/adminlevel/chinook/offices) "HM" = ( /obj/structure/surface/table/reinforced/almayer_B, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/almayer/red/east, /area/adminlevel/chinook/sec) "HN" = ( /obj/structure/machinery/door/airlock/almayer/security/glass{ @@ -9220,16 +8359,11 @@ pixel_x = 32; pixel_y = -8 }, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/southeast, /area/adminlevel/chinook) "HP" = ( /obj/structure/machinery/vending/snack, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook/engineering) "HQ" = ( /obj/structure/largecrate/supply, @@ -9240,18 +8374,20 @@ /obj/structure/sign/safety/coffee{ pixel_x = -16 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/cargo) "HR" = ( /obj/structure/largecrate/random/case/double, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" +/obj/effect/decal/warning_stripes{ + icon_state = "S" }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/cargo) +"HT" = ( +/turf/closed/shuttle/elevator{ + dir = 4 + }, +/area/adminlevel/chinook/offices) "HU" = ( /obj/structure/surface/table/almayer, /obj/item/roller{ @@ -9260,18 +8396,17 @@ /obj/item/roller{ pixel_y = 6 }, -/turf/open/floor/almayer{ - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side, /area/adminlevel/chinook/medical) "HV" = ( /obj/structure/machinery/cm_vending/sorted/tech/electronics_storage, /obj/structure/sign/poster{ pixel_y = -32 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, +/area/adminlevel/chinook/engineering) +"HW" = ( +/turf/open/floor/almayer/orange/west, /area/adminlevel/chinook/engineering) "HX" = ( /obj/structure/machinery/light{ @@ -9293,31 +8428,33 @@ /turf/closed/wall/almayer/white, /area/adminlevel/chinook/medical) "Ib" = ( -/turf/open/floor/almayer{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/almayer/red/southeast, /area/adminlevel/chinook/sec) -"Ie" = ( -/turf/open/floor/prison{ - icon_state = "kitchen" +"Ic" = ( +/obj/structure/machinery/door/poddoor/almayer/open{ + id = "chinookengilock"; + name = "Engineering Sector Lockdown" }, +/turf/open/floor/almayer, +/area/adminlevel/chinook/engineering) +"Id" = ( +/turf/closed/wall/almayer/reinforced, +/area/adminlevel/chinook/cargo) +"Ie" = ( +/turf/open/floor/prison/kitchen, /area/adminlevel/chinook/event) +"If" = ( +/obj/structure/sign/safety/bathmens{ + pixel_y = -25 + }, +/turf/open/floor/almayer/blue, +/area/adminlevel/chinook/offices) "Ig" = ( /turf/open/floor/plating/plating_catwalk, /area/adminlevel/chinook/engineering) "Ih" = ( -/turf/open/floor/almayer/uscm/directional{ - dir = 10 - }, +/turf/open/floor/almayer/uscm/directional, /area/adminlevel/chinook/shuttle) -"Ii" = ( -/obj/structure/machinery/light, -/obj/structure/machinery/disposal, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/adminlevel/chinook/cargo) "Ij" = ( /obj/structure/bed/chair{ dir = 4 @@ -9347,10 +8484,7 @@ name = "Execution Armory Lockdown"; pixel_y = 22 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/sec) "Ip" = ( /obj/item/paper_bin/uscm{ @@ -9358,16 +8492,11 @@ }, /obj/item/tool/pen, /obj/structure/surface/table/reinforced/black, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, +/turf/open/floor/carpet, /area/adminlevel/chinook/sec) "Iq" = ( /obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "red" - }, +/turf/open/floor/almayer/red, /area/adminlevel/chinook/sec) "Ir" = ( /obj/effect/decal/warning_stripes{ @@ -9377,20 +8506,14 @@ /area/adminlevel/chinook) "It" = ( /obj/structure/bed/chair/office/dark, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" - }, +/turf/open/floor/wood, /area/adminlevel/chinook/offices) "Iu" = ( /obj/structure/machinery/door/airlock/almayer/generic{ dir = 2; - name = "\improper Bathroom" - }, -/turf/open/floor/almayer{ - icon_state = "plate" + name = "\improper Men's Bathroom" }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook) "Iv" = ( /turf/closed/wall/almayer/white, @@ -9399,9 +8522,7 @@ /obj/structure/sink{ pixel_y = 24 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook) "Ix" = ( /obj/structure/window/framed/almayer, @@ -9422,82 +8543,60 @@ /area/adminlevel/chinook/event) "IC" = ( /obj/structure/bed/chair/comfy/black, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" - }, -/area/adminlevel/chinook/event) -"IE" = ( -/obj/structure/machinery/light, -/turf/open/floor/almayer, +/turf/open/floor/almayer/red/west, /area/adminlevel/chinook/event) "IF" = ( /obj/structure/bed/chair, /obj/structure/sign/nosmoking_1{ pixel_y = 30 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/north, /area/adminlevel/chinook/medical) "IJ" = ( /obj/structure/sign/nosmoking_2{ pixel_x = 28 }, /obj/structure/machinery/disposal, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/east, /area/adminlevel/chinook/engineering) "IK" = ( /turf/closed/shuttle/ert{ icon_state = "rightengine_1" }, /area/adminlevel/chinook/shuttle/unpowered) +"IL" = ( +/obj/structure/machinery/disposal, +/turf/open/floor/almayer/green/north, +/area/adminlevel/chinook/event) "IM" = ( /obj/structure/bed/chair/comfy{ dir = 1; name = "witness chair" }, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, +/turf/open/floor/carpet, /area/adminlevel/chinook/event) "IP" = ( /obj/structure/closet/crate, /obj/item/storage/briefcase/inflatable, /obj/item/storage/briefcase/inflatable, +/obj/item/stack/cable_coil, /turf/open/floor/almayer, /area/adminlevel/chinook/engineering) "IQ" = ( /obj/structure/bed/chair/office/dark{ dir = 4 }, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" - }, +/turf/open/floor/wood, /area/adminlevel/chinook/offices) "IR" = ( -/turf/open/floor/almayer{ - dir = 10; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/southwest, /area/adminlevel/chinook) "IS" = ( /obj/structure/closet/firecloset, /obj/structure/machinery/cm_vending/sorted/medical/wall_med{ pixel_y = 25 }, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" - }, +/turf/open/floor/wood, /area/adminlevel/chinook/offices) "IT" = ( /obj/structure/bed/chair/comfy{ @@ -9506,28 +8605,38 @@ /turf/open/floor/kutjevo/plate, /area/adminlevel/chinook) "IW" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E" - }, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "emerald" +/obj/structure/machinery/door/poddoor/almayer/open{ + dir = 4; + id = "chinookinnerairlock"; + name = "Chinook Interior Airlock" }, +/turf/open/floor/plating/almayer, /area/adminlevel/chinook/shuttle) "IX" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/sec) -"Jc" = ( -/turf/open/floor/almayer_hull{ - dir = 9; - icon_state = "outerhull_dir" +"IY" = ( +/obj/structure/surface/rack, +/obj/item/tool/wet_sign, +/obj/item/tool/wet_sign{ + pixel_x = -3; + pixel_y = 2 + }, +/turf/open/floor/almayer/plate, +/area/adminlevel/chinook/offices) +"IZ" = ( +/obj/structure/surface/table/reinforced/black, +/obj/item/storage/box/drinkingglasses{ + pixel_x = 5; + pixel_y = 4 }, +/turf/open/floor/kutjevo/tan/plate, +/area/adminlevel/chinook/event) +"Jc" = ( +/turf/open/floor/almayer_hull/outerhull_dir/northwest, /area/space) "Jd" = ( /obj/structure/machinery/light, @@ -9545,10 +8654,7 @@ pixel_x = -32; serial_number = 16 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/west, /area/adminlevel/chinook) "Jg" = ( /obj/structure/bed/stool, @@ -9558,18 +8664,8 @@ /obj/structure/sign/poster{ pixel_y = 32 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/almayer/blue/north, /area/adminlevel/chinook) -"Jl" = ( -/obj/structure/cargo_container/grant/left, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/adminlevel/chinook/cargo) "Jm" = ( /obj/structure/bed/sofa/south/grey/left, /turf/open/floor/kutjevo/tan, @@ -9579,10 +8675,25 @@ /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" +/turf/open/floor/almayer/red/north, +/area/adminlevel/chinook) +"Jo" = ( +/obj/structure/machinery/door/poddoor/almayer/open{ + id = "chinookofficelock"; + name = "Command Office Lockdown"; + dir = 4 }, +/turf/open/floor/almayer, +/area/adminlevel/chinook/offices) +"Jp" = ( +/obj/structure/sign/safety/bathwomens{ + pixel_x = 32 + }, +/turf/open/floor/almayer, +/area/adminlevel/chinook) +"Jq" = ( +/obj/structure/closet/boxinggloves, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook) "Jr" = ( /obj/structure/machinery/door_control{ @@ -9596,67 +8707,72 @@ /area/adminlevel/chinook/sec) "Js" = ( /obj/structure/machinery/cm_vending/sorted/marine_food, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/almayer/red/northwest, /area/adminlevel/chinook/sec) "Ju" = ( -/obj/structure/machinery/sleep_console{ - dir = 8 - }, -/turf/open/floor/almayer{ - icon_state = "sterile_green_side" - }, -/area/adminlevel/chinook/offices) +/obj/structure/bed/chair/wheelchair, +/turf/open/floor/almayer/plate, +/area/adminlevel/chinook/medical) "Jx" = ( /obj/structure/surface/rack, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/almayer/red/north, /area/adminlevel/chinook/sec) "Jy" = ( /obj/structure/surface/table/almayer, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_corner" - }, +/obj/item/tool/weldingtool/largetank, +/obj/item/tool/weldingtool/largetank, +/obj/item/tool/weldingtool/largetank, +/obj/item/stack/cable_coil, +/obj/item/stack/cable_coil, +/obj/item/stack/cable_coil, +/obj/item/clothing/head/welding, +/obj/item/clothing/head/welding, +/obj/item/clothing/head/welding, +/turf/open/floor/almayer/sterile_green_corner/north, /area/adminlevel/chinook/medical) "Jz" = ( -/obj/structure/sign/safety/coffee{ - pixel_x = 12; - pixel_y = 25 - }, -/obj/structure/sign/safety/west{ - pixel_y = 25 - }, -/obj/structure/sign/safety/conference_room{ - pixel_x = 24; - pixel_y = 25 +/obj/structure/extinguisher_cabinet{ + pixel_x = -26 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "blue" +/turf/open/floor/almayer/sterile_green_side/west, +/area/adminlevel/chinook/medical) +"JA" = ( +/obj/structure/target{ + name = "punching bag" }, -/area/adminlevel/chinook/offices) +/turf/open/floor/almayer/plate, +/area/adminlevel/chinook) "JB" = ( /obj/structure/platform_decoration{ dir = 8 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/cargo) +"JC" = ( +/obj/structure/machinery/vending/hydroseeds, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/chinook/event) +"JD" = ( +/obj/structure/machinery/cm_vending/gear/synth, +/turf/open/floor/almayer/cargo, +/area/adminlevel/chinook) +"JE" = ( +/obj/structure/sign/safety/autodoc{ + pixel_x = 12; + pixel_y = 25 + }, +/turf/open/floor/almayer/dark_sterile, +/area/adminlevel/chinook/medical) "JG" = ( /obj/structure/surface/table/reinforced/black, /obj/item/storage/fancy/cigarettes/emeraldgreen, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, +/turf/open/floor/carpet, /area/adminlevel/chinook/sec) +"JH" = ( +/obj/structure/machinery/cryopod, +/obj/structure/machinery/light, +/turf/open/floor/almayer/sterile_green, +/area/adminlevel/chinook/medical) "JI" = ( /obj/structure/platform, /obj/structure/stairs/perspective{ @@ -9667,14 +8783,31 @@ /area/adminlevel/chinook/cargo) "JJ" = ( /obj/structure/surface/rack, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/almayer/red/northeast, /area/adminlevel/chinook/sec) "JK" = ( /turf/open/floor/kutjevo/tan, /area/adminlevel/chinook/event) +"JM" = ( +/obj/structure/sink{ + dir = 4; + pixel_x = 11 + }, +/obj/structure/mirror{ + pixel_x = 28 + }, +/obj/structure/machinery/light{ + dir = 1 + }, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/chinook/offices) +"JN" = ( +/obj/structure/machinery/door/airlock/almayer/generic{ + dir = 2; + name = "\improper Women's Bathroom" + }, +/turf/open/floor/almayer/plate, +/area/adminlevel/chinook) "JO" = ( /obj/structure/surface/rack, /obj/item/device/lightreplacer, @@ -9682,45 +8815,50 @@ pixel_x = -9; pixel_y = 19 }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/adminlevel/chinook/sec) "JR" = ( /turf/open/floor/kutjevo/tan/alt_edge, /area/adminlevel/chinook/event) +"JS" = ( +/obj/structure/closet{ + name = "boxing attire" + }, +/obj/item/clothing/under/shorts/blue, +/obj/item/clothing/under/shorts/blue, +/obj/item/clothing/under/shorts/red, +/obj/item/clothing/under/shorts/red, +/obj/item/clothing/under/shorts/green, +/obj/item/clothing/under/shorts/green, +/obj/item/clothing/under/shorts/black, +/obj/item/clothing/under/shorts/black, +/obj/item/clothing/under/shorts/grey, +/obj/item/clothing/under/shorts/grey, +/turf/open/floor/almayer/plate, +/area/adminlevel/chinook) "JU" = ( /obj/structure/platform_decoration, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/engineering) "JV" = ( /obj/structure/surface/rack, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/adminlevel/chinook/sec) "JW" = ( /obj/structure/toilet{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook/sec) "JX" = ( -/turf/open/floor/kutjevo/tan/alt_inner_edge{ - dir = 8 - }, +/turf/open/floor/kutjevo/tan/alt_inner_edge/west, /area/adminlevel/chinook/event) -"Kb" = ( -/obj/structure/closet/emcloset, -/turf/open/floor/almayer{ - icon_state = "cargo" +"JY" = ( +/obj/structure/machinery/light{ + dir = 8 }, -/area/adminlevel/chinook) +/turf/open/floor/almayer/plating/northeast, +/area/adminlevel/chinook/cargo) "Kd" = ( /obj/structure/stairs/perspective{ icon_state = "p_stair_full" @@ -9728,32 +8866,42 @@ /obj/structure/platform{ dir = 4 }, -/turf/open/floor/almayer, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/cargo) "Ke" = ( /obj/structure/window/framed/almayer/hull, /turf/open/floor/plating, /area/adminlevel/chinook/cargo) +"Kf" = ( +/obj/structure/sign/safety/security{ + pixel_x = 32; + pixel_y = 8 + }, +/turf/open/floor/almayer/silver/east, +/area/adminlevel/chinook) "Ki" = ( /obj/structure/barricade/handrail/strata, /turf/open/floor/almayer, /area/adminlevel/chinook/engineering) +"Kj" = ( +/obj/structure/stairs/perspective{ + icon_state = "p_stair_full" + }, +/obj/structure/platform{ + dir = 8 + }, +/turf/open/floor/almayer/plating/northeast, +/area/adminlevel/chinook/cargo) "Kl" = ( /obj/structure/platform_decoration{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/engineering) "Km" = ( /obj/structure/bed, /obj/item/bedsheet/medical, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/east, /area/adminlevel/chinook/sec) "Kn" = ( /obj/structure/machinery/light{ @@ -9771,15 +8919,10 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/west, /area/adminlevel/chinook/medical) "Kq" = ( -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/adminlevel/chinook/sec) "Ks" = ( /obj/structure/sign/safety/north{ @@ -9793,31 +8936,31 @@ pixel_x = 32; pixel_y = -12 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/east, /area/adminlevel/chinook) "Ku" = ( /obj/structure/surface/table/almayer, /obj/item/paper_bin/uscm{ + pixel_x = -4; pixel_y = 6 }, -/obj/item/tool/pen, +/obj/item/tool/pen{ + pixel_x = -5 + }, +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_17"; + pixel_x = 8; + pixel_y = 10 + }, /turf/open/floor/almayer, /area/adminlevel/chinook/cargo) "Kv" = ( /obj/structure/machinery/disposal, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/west, /area/adminlevel/chinook/medical) "Kw" = ( /obj/structure/machinery/floodlight, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook/engineering) "Kx" = ( /obj/structure/surface/table/reinforced/black, @@ -9825,10 +8968,7 @@ dir = 1; pixel_y = 4 }, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, +/turf/open/floor/carpet, /area/adminlevel/chinook/offices) "Ky" = ( /obj/structure/sign/safety/radio_rad{ @@ -9841,38 +8981,46 @@ pixel_x = -15; pixel_y = 5 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/west, /area/adminlevel/chinook/engineering) "Kz" = ( /obj/structure/toilet{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook/sec) "KD" = ( /obj/item/trash/cigbutt/cigarbutt, -/turf/open/floor/almayer, +/turf/open/floor/kutjevo/plate, /area/adminlevel/chinook/event) +"KE" = ( +/obj/effect/decal/medical_decals{ + icon_state = "cryocell1decal" + }, +/turf/open/floor/almayer/dark_sterile, +/area/adminlevel/chinook/medical) "KG" = ( /obj/structure/machinery/cm_vending/sorted/medical, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "sterile_green_corner" +/turf/open/floor/almayer/sterile_green_corner/east, +/area/adminlevel/chinook/medical) +"KH" = ( +/obj/structure/sink{ + pixel_y = 24 + }, +/turf/open/floor/prison/kitchen, +/area/adminlevel/chinook/event) +"KI" = ( +/obj/structure/machinery/door/airlock/almayer/medical{ + name = "\improper Misc Storage" }, +/turf/open/floor/almayer/dark_sterile, /area/adminlevel/chinook/medical) "KJ" = ( -/obj/structure/closet/emcloset, +/obj/structure/closet/secure_closet/personal, /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/plating/plating_catwalk, /area/adminlevel/chinook) "KK" = ( /obj/structure/closet/crate, @@ -9883,61 +9031,73 @@ /obj/structure/platform_decoration{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/adminlevel/chinook/cargo) "KM" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook) "KN" = ( -/obj/structure/machinery/medical_pod/bodyscanner, /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_side" - }, +/obj/structure/machinery/medical_pod/bodyscanner, +/turf/open/floor/almayer/sterile_green_side/west, /area/adminlevel/chinook/medical) "KO" = ( /obj/structure/bed/chair/comfy{ dir = 8 }, /obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook) "KP" = ( -/obj/structure/bed/chair, /obj/structure/machinery/light{ dir = 1 }, +/obj/structure/bed/sofa/south/grey/right, /turf/open/floor/almayer, /area/adminlevel/chinook/cargo) "KT" = ( -/turf/open/floor/almayer{ - dir = 5; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/northeast, /area/adminlevel/chinook) -"KW" = ( -/turf/open/floor/almayer{ +"KV" = ( +/obj/structure/machinery/door/poddoor/almayer{ dir = 4; - icon_state = "green" + id = "chinookreq"; + name = "Requisitions Lockdown" }, +/turf/open/floor/almayer/cargo, +/area/adminlevel/chinook) +"KW" = ( +/turf/open/floor/almayer/green/east, /area/adminlevel/chinook/cargo) +"KX" = ( +/obj/structure/surface/rack, +/obj/item/tool/shovel/spade{ + pixel_x = -4 + }, +/obj/item/tool/shovel/spade{ + pixel_x = 4 + }, +/obj/item/tool/shovel/spade, +/obj/item/reagent_container/glass/bucket{ + pixel_x = -4; + pixel_y = -3 + }, +/obj/item/reagent_container/glass/bucket{ + pixel_x = 4; + pixel_y = -3 + }, +/obj/item/reagent_container/glass/bucket, +/obj/item/reagent_container/glass/watertank, +/turf/open/floor/almayer/green/north, +/area/adminlevel/chinook/event) "KY" = ( /obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook) "KZ" = ( /obj/structure/surface/table/reinforced/black, @@ -9948,10 +9108,7 @@ /obj/item/clothing/mask/cigarette{ pixel_y = 9 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/sec) "La" = ( /obj/structure/machinery/door/airlock/almayer/maint{ @@ -9959,14 +9116,10 @@ req_access = null; req_one_access = null }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook/engineering) "Lc" = ( -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook/engineering) "Ld" = ( /obj/structure/surface/table/almayer, @@ -9977,18 +9130,13 @@ pixel_x = 7; pixel_y = 7 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook/engineering) "Le" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/sec) "Lf" = ( /obj/structure/surface/rack, @@ -9997,35 +9145,36 @@ pixel_x = -3; pixel_y = 2 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook/engineering) +"Lg" = ( +/obj/structure/machinery/cm_vending/sorted/medical/marinemed, +/turf/open/floor/almayer/dark_sterile, +/area/adminlevel/chinook/medical) "Li" = ( /turf/open/floor/almayer, /area/adminlevel/chinook/shuttle) "Lj" = ( /obj/structure/machinery/cm_vending/sorted/medical, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/adminlevel/chinook/sec) "Lk" = ( /obj/structure/machinery/vending/cola, /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook/sec) "Ll" = ( -/obj/structure/surface/table/almayer, -/obj/item/tool/hand_labeler, -/obj/item/spacecash/c200, /obj/structure/machinery/light{ dir = 4 }, +/obj/structure/machinery/door_control{ + id = "chinookreq"; + name = "Requisitions Lockdown"; + req_one_access_txt = "1;21" + }, +/obj/structure/surface/table/reinforced/black, /turf/open/floor/almayer, /area/adminlevel/chinook/cargo) "Lm" = ( @@ -10042,15 +9191,22 @@ /area/adminlevel/chinook) "Lo" = ( /obj/structure/machinery/vending/coffee, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook/engineering) +"Lp" = ( +/obj/structure/machinery/light{ + dir = 4 + }, +/obj/structure/surface/table/reinforced/almayer_B, +/obj/item/reagent_container/food/drinks/golden_cup{ + name = "No. 1 Baller Award"; + desc = "A trophy given to the winner of the annual Baller competition. Such a competition has, in fact, nothing to do with basketball and is so elusive, nobody knows what it actually is or what winning it symbolizes. But at least it has a nice trophy." + }, +/turf/open/floor/almayer/ai_floors, +/area/adminlevel/chinook/offices) "Ls" = ( /obj/structure/machinery/iv_drip, -/turf/open/floor/almayer{ - icon_state = "sterile_green_corner" - }, +/turf/open/floor/almayer/sterile_green_corner, /area/adminlevel/chinook/medical) "Lu" = ( /obj/structure/machinery/cm_vending/sorted/medical/wall_med{ @@ -10073,6 +9229,14 @@ }, /turf/open/floor/kutjevo/plate, /area/adminlevel/chinook) +"Lx" = ( +/obj/structure/surface/table/reinforced/black, +/obj/item/prop/tableflag/uscm{ + pixel_x = -9; + pixel_y = 6 + }, +/turf/open/floor/carpet, +/area/adminlevel/chinook/offices) "Ly" = ( /obj/structure/machinery/light{ dir = 1 @@ -10103,11 +9267,15 @@ /obj/structure/bed/chair/comfy/black{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/almayer/red/southwest, /area/adminlevel/chinook/sec) +"LC" = ( +/obj/structure/sign/safety/cryo{ + pixel_x = 32; + pixel_y = -8 + }, +/turf/open/floor/almayer/silver/east, +/area/adminlevel/chinook) "LD" = ( /obj/structure/machinery/vending/snack, /turf/open/floor/kutjevo/plate, @@ -10131,10 +9299,7 @@ pixel_x = -2; pixel_y = 3 }, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, +/turf/open/floor/carpet, /area/adminlevel/chinook/sec) "LG" = ( /obj/structure/surface/table/almayer, @@ -10147,35 +9312,27 @@ /area/adminlevel/chinook/sec) "LH" = ( /obj/structure/machinery/computer/telecomms/server, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook/engineering) "LI" = ( /obj/structure/machinery/light{ dir = 4 }, /obj/structure/machinery/cm_vending/sorted/marine_food, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/east, /area/adminlevel/chinook/engineering) "LK" = ( /obj/structure/machinery/iv_drip, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/east, /area/adminlevel/chinook/medical) "LN" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22" }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" +/obj/structure/extinguisher_cabinet{ + pixel_y = 27 }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook) "LP" = ( /obj/structure/bed/chair/comfy{ @@ -10184,17 +9341,13 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook) "LQ" = ( /obj/structure/closet/crate, /obj/item/storage/backpack/marine, /obj/item/storage/backpack/marine, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/adminlevel/chinook/cargo) "LR" = ( /obj/structure/surface/table/reinforced/black, @@ -10204,32 +9357,41 @@ /obj/item/device/flashlight/lamp/green{ pixel_y = 12 }, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, +/turf/open/floor/carpet, /area/adminlevel/chinook/sec) +"LS" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ + name = "\improper Basketball Court" + }, +/turf/open/floor/almayer, +/area/adminlevel/chinook) "LT" = ( /obj/structure/bed/chair/comfy/black{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/almayer/red/west, /area/adminlevel/chinook/event) "LU" = ( -/obj/structure/machinery/light{ - dir = 4 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" +/obj/structure/sign/safety/bathwomens{ + pixel_x = 32 }, +/turf/open/floor/almayer/red/east, /area/adminlevel/chinook) "LV" = ( /turf/open/floor/almayer, /area/adminlevel/chinook/event) +"LW" = ( +/turf/open/floor/almayer/blue, +/area/adminlevel/chinook) +"LX" = ( +/obj/structure/target{ + name = "punching bag" + }, +/obj/structure/sign/goldenplaque{ + pixel_y = 27 + }, +/turf/open/floor/almayer, +/area/adminlevel/chinook) "Mb" = ( /turf/open/floor/kutjevo/tan/plate, /area/adminlevel/chinook/event) @@ -10242,35 +9404,23 @@ dir = 1 }, /obj/structure/surface/table/reinforced/black, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, +/turf/open/floor/carpet, /area/adminlevel/chinook/sec) "Mg" = ( /obj/structure/machinery/cm_vending/sorted/marine_food, /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/almayer/red/west, /area/adminlevel/chinook/sec) "Mh" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/almayer/red/east, /area/adminlevel/chinook/sec) "Mi" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/east, /area/adminlevel/chinook/medical) "Mj" = ( /obj/structure/machinery/light{ @@ -10279,10 +9429,7 @@ /obj/structure/bed/chair/comfy{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook) "Ml" = ( /obj/effect/decal/warning_stripes{ @@ -10291,11 +9438,18 @@ /turf/open/floor/almayer, /area/adminlevel/chinook) "Mm" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/east, /area/adminlevel/chinook/engineering) +"Mn" = ( +/obj/structure/sign/safety/fire_haz{ + pixel_y = 25 + }, +/obj/structure/sign/safety/biohazard{ + pixel_y = 25; + pixel_x = 12 + }, +/turf/open/floor/almayer/plate, +/area/adminlevel/chinook/medical) "Mp" = ( /obj/structure/prop/almayer/name_stencil{ icon_state = "chinook4"; @@ -10305,23 +9459,8 @@ /area/space) "Mq" = ( /obj/structure/machinery/iv_drip, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/west, /area/adminlevel/chinook/medical) -"Mr" = ( -/obj/structure/machinery/door_control{ - id = "chinookcargo"; - name = "Shuttlebay Cargo Access"; - pixel_y = 25; - req_one_access_txt = "1;21" - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "cargo_arrow" - }, -/area/adminlevel/chinook/shuttle) "Ms" = ( /turf/closed/shuttle/ert{ icon_state = "stan5" @@ -10333,24 +9472,19 @@ pixel_x = -4; pixel_y = 6 }, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, +/turf/open/floor/carpet, /area/adminlevel/chinook/sec) "Mv" = ( -/obj/structure/surface/table/almayer, /obj/effect/spawner/random/tool, /obj/item/clothing/gloves/marine/insulated, +/obj/structure/surface/table/reinforced/black, /turf/open/floor/almayer, /area/adminlevel/chinook/cargo) "Mw" = ( /obj/structure/bed/chair/comfy/black{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "red" - }, +/turf/open/floor/almayer/red, /area/adminlevel/chinook/sec) "Mx" = ( /obj/structure/machinery/door/airlock/almayer/secure{ @@ -10363,25 +9497,17 @@ /obj/structure/bed/chair/comfy{ dir = 8 }, -/turf/open/floor/kutjevo/tan/alt_edge{ - dir = 1 - }, +/turf/open/floor/kutjevo/tan/alt_edge/north, /area/adminlevel/chinook) "Mz" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/structure/machinery/light, /obj/item/tool/pen, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/almayer/red/southwest, /area/adminlevel/chinook/sec) "MA" = ( /obj/structure/surface/table/reinforced/black, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, +/turf/open/floor/carpet, /area/adminlevel/chinook/offices) "MB" = ( /obj/effect/decal/cleanable/blood/oil, @@ -10394,39 +9520,48 @@ /obj/structure/bed/chair/comfy/black{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "red" - }, +/turf/open/floor/almayer/red, /area/adminlevel/chinook/sec) +"MD" = ( +/obj/structure/platform_decoration{ + dir = 8 + }, +/turf/open/floor/almayer/plating/northeast, +/area/adminlevel/chinook/engineering) +"ME" = ( +/obj/structure/surface/table/reinforced/black, +/obj/item/book/manual/marine_law{ + pixel_x = 1; + pixel_y = 6 + }, +/obj/item/folder/black, +/turf/open/floor/kutjevo/plate, +/area/adminlevel/chinook/offices) +"MF" = ( +/turf/closed/shuttle/elevator{ + dir = 5 + }, +/area/adminlevel/chinook/offices) "MG" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/tool, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/adminlevel/chinook/sec) "MH" = ( /obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/adminlevel/chinook/sec) "MI" = ( /obj/structure/machinery/light{ dir = 8 }, /obj/structure/machinery/disposal, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "emerald" - }, +/turf/open/floor/almayer/emerald/west, /area/adminlevel/chinook/shuttle) "MK" = ( /obj/structure/surface/table/almayer, /obj/item/storage/toolbox/mechanical, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook/sec) "ML" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ @@ -10435,9 +9570,8 @@ /turf/open/floor/almayer, /area/adminlevel/chinook) "MN" = ( -/obj/structure/machinery/door/airlock/almayer/engineering{ - dir = 1; - name = "\improper Engineering Reception" +/obj/structure/machinery/door/airlock/multi_tile/almayer/engidoor{ + name = "\improper Engineering" }, /obj/structure/machinery/door/poddoor/almayer/open{ id = "chinookengilock"; @@ -10445,32 +9579,28 @@ }, /turf/open/floor/almayer, /area/adminlevel/chinook/engineering) +"MO" = ( +/obj/structure/machinery/recharge_station, +/turf/open/floor/almayer/cargo, +/area/adminlevel/chinook) "MQ" = ( /obj/structure/machinery/iv_drip, -/turf/open/floor/almayer{ - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side, /area/adminlevel/chinook/medical) "MR" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook/engineering) "MS" = ( /obj/structure/janitorialcart, /obj/item/tool/mop, /obj/item/reagent_container/glass/bucket/mopbucket, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook/engineering) "MT" = ( -/turf/open/floor/kutjevo/tan/alt_edge{ - dir = 1 - }, +/turf/open/floor/kutjevo/tan/alt_edge/north, /area/adminlevel/chinook) "MU" = ( /obj/structure/window/framed/almayer, @@ -10478,38 +9608,30 @@ /area/adminlevel/chinook/event) "MV" = ( /obj/structure/machinery/photocopier, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/sec) "MX" = ( /obj/structure/machinery/vending/cola, /obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook/engineering) +"Nb" = ( +/obj/structure/largecrate/random/case/double, +/turf/open/floor/almayer/plating/northeast, +/area/adminlevel/chinook/cargo) "Nc" = ( /obj/structure/largecrate/supply/medicine/blood, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/cargo) "Ne" = ( /obj/structure/bed/chair/comfy/black, -/turf/open/floor/almayer{ - icon_state = "red" - }, +/turf/open/floor/almayer/red, /area/adminlevel/chinook/sec) "Nf" = ( /obj/structure/bed/chair/comfy{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook) "Ng" = ( /obj/structure/machinery/light, @@ -10524,10 +9646,7 @@ "Nk" = ( /obj/structure/machinery/light, /obj/structure/machinery/cm_vending/clothing/dress, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/offices) "Nl" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ @@ -10537,46 +9656,30 @@ /turf/open/floor/almayer, /area/adminlevel/chinook/shuttle) "Nm" = ( -/turf/open/floor/almayer{ - dir = 10; - icon_state = "green" - }, +/turf/open/floor/almayer/green/southwest, /area/adminlevel/chinook/cargo) "Nn" = ( /obj/structure/extinguisher_cabinet{ pixel_y = 27 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/north, /area/adminlevel/chinook) "No" = ( /obj/structure/bed/chair/office/dark{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "tcomms" - }, +/turf/open/floor/almayer/tcomms, /area/adminlevel/chinook/engineering) "Np" = ( -/obj/structure/cargo_container/arious/right{ - indestructible = 1 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/obj/structure/cargo_container/seegson/right, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/cargo) "Nq" = ( /obj/structure/machinery/light{ dir = 8 }, /obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/west, /area/adminlevel/chinook/engineering) "Nr" = ( /obj/structure/bed/chair{ @@ -10588,31 +9691,21 @@ /obj/structure/bed/chair/comfy{ dir = 1 }, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" - }, +/turf/open/floor/wood, /area/adminlevel/chinook/offices) "Nt" = ( /obj/structure/closet/crate, /obj/item/stack/sheet/plasteel/large_stack, /obj/item/stack/sheet/metal/medium_stack, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/obj/item/stack/sheet/metal/large_stack, +/turf/open/floor/almayer/cargo, /area/adminlevel/chinook/cargo) "Nu" = ( /obj/structure/surface/table/almayer, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook) "Nv" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orangecorner" - }, +/turf/open/floor/almayer/orangecorner/east, /area/adminlevel/chinook/engineering) "Nw" = ( /obj/structure/machinery/cm_vending/sorted/medical/wall_med{ @@ -10626,46 +9719,29 @@ pixel_y = 5 }, /obj/structure/surface/table/reinforced/black, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, +/turf/open/floor/carpet, /area/adminlevel/chinook/sec) "Ny" = ( -/obj/structure/flora/pottedplant{ - icon_state = "pottedplant_22" - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "blue" - }, +/obj/structure/flora/pottedplant/random, +/turf/open/floor/almayer/blue/north, /area/adminlevel/chinook/offices) "Nz" = ( -/turf/open/floor/almayer{ - dir = 5; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/northeast, /area/adminlevel/chinook/cryo) "NA" = ( /obj/structure/machinery/cm_vending/sorted/tech/electronics_storage, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/west, /area/adminlevel/chinook/engineering) "NC" = ( /obj/structure/closet/secure_closet/chemical, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/west, /area/adminlevel/chinook/medical) "ND" = ( -/obj/structure/closet/secure_closet/freezer/fridge/groceries, -/turf/open/floor/prison{ - icon_state = "kitchen" +/obj/structure/machinery/sleep_console{ + dir = 8 }, -/area/space) +/turf/open/floor/almayer/sterile_green_side, +/area/adminlevel/chinook/offices) "NE" = ( /obj/structure/machinery/door/airlock/almayer/security{ dir = 1; @@ -10681,9 +9757,7 @@ pixel_x = 1; pixel_y = 7 }, -/turf/open/floor/almayer{ - icon_state = "sterile_green" - }, +/turf/open/floor/almayer/sterile_green, /area/adminlevel/chinook/medical) "NJ" = ( /obj/structure/machinery/light{ @@ -10699,10 +9773,7 @@ /turf/open/floor/almayer, /area/adminlevel/chinook) "NN" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/almayer/red/east, /area/adminlevel/chinook) "NP" = ( /obj/structure/prop/almayer/name_stencil{ @@ -10712,9 +9783,7 @@ /turf/open/floor/almayer_hull, /area/space) "NQ" = ( -/turf/open/floor/kutjevo/colors/blue/edge{ - dir = 8 - }, +/turf/open/floor/kutjevo/colors/blue/edge/west, /area/adminlevel/chinook) "NS" = ( /obj/structure/machinery/door/airlock/almayer/command{ @@ -10727,21 +9796,47 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "sterile_green" - }, +/turf/open/floor/almayer/sterile_green, /area/adminlevel/chinook/medical) -"NW" = ( -/obj/structure/surface/table/reinforced/almayer_B, -/obj/structure/machinery/computer/cameras/almayer_network{ +"NU" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/turf/open/floor/kutjevo/plate, +/area/adminlevel/chinook/event) +"NV" = ( +/obj/structure/sink{ dir = 4; - network = list("almayer","vehicle") + pixel_x = 11 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" +/turf/open/floor/almayer/plate, +/area/adminlevel/chinook/offices) +"NW" = ( +/obj/structure/surface/table/reinforced/black, +/obj/structure/machinery/light{ + dir = 8 }, -/area/adminlevel/chinook/sec) +/obj/item/tool/lighter/zippo/gold{ + pixel_x = 10; + pixel_y = 11 + }, +/obj/item/device/flashlight/lamp/green{ + pixel_y = 7; + pixel_x = -5 + }, +/turf/open/floor/carpet, +/area/adminlevel/chinook/offices) +"NX" = ( +/obj/structure/bed/chair/comfy{ + dir = 8 + }, +/turf/open/floor/wood, +/area/adminlevel/chinook/offices) +"NZ" = ( +/turf/closed/shuttle/elevator{ + dir = 9 + }, +/area/adminlevel/chinook/offices) "Ob" = ( /obj/structure/machinery/door/airlock/almayer/command{ name = "\improper Event Corridor" @@ -10751,76 +9846,41 @@ "Oc" = ( /obj/structure/closet/coffin, /obj/structure/machinery/light, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/sec) "Od" = ( -/obj/structure/surface/table/almayer, -/obj/item/tool/weldingtool, -/obj/item/tool/weldingtool, -/obj/item/tool/weldingtool, -/obj/item/stack/cable_coil, -/obj/item/stack/cable_coil, -/obj/item/stack/cable_coil, -/obj/item/clothing/head/welding, -/obj/item/clothing/head/welding, -/obj/item/clothing/head/welding, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "sterile_green_side" - }, +/obj/structure/reagent_dispensers/fueltank/custom, +/turf/open/floor/almayer/sterile_green_side/east, /area/adminlevel/chinook/medical) -"Oe" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/turf/open/floor/almayer, -/area/adminlevel/chinook) "Of" = ( /obj/structure/machinery/door/airlock/almayer/security/glass{ dir = 1; name = "\improper Lethal Injection Equipment" }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/sec) "Og" = ( /obj/structure/bed/chair/comfy/black, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/almayer/red/east, /area/adminlevel/chinook/sec) "Oi" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook/sec) "Oj" = ( /obj/structure/platform{ dir = 1 }, /obj/structure/largecrate/random/barrel/yellow, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/cargo) "On" = ( /obj/structure/surface/table/almayer, /obj/item/device/defibrillator, /obj/item/device/defibrillator, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/west, /area/adminlevel/chinook/medical) "Oq" = ( /obj/structure/bed/chair{ @@ -10828,6 +9888,10 @@ }, /turf/open/floor/plating/plating_catwalk, /area/adminlevel/chinook/sec) +"Or" = ( +/obj/structure/reagent_dispensers/fueltank/custom, +/turf/open/floor/almayer/plate, +/area/adminlevel/chinook/medical) "Os" = ( /obj/structure/surface/table/almayer, /obj/item/tool/crowbar{ @@ -10837,32 +9901,17 @@ pixel_x = 6; pixel_y = 8 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook/sec) "Ot" = ( /obj/structure/closet/secure_closet/medical_doctor, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/west, /area/adminlevel/chinook/medical) -"Ou" = ( -/obj/structure/bed/sofa/south/grey/right, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/adminlevel/chinook) "Ow" = ( /obj/structure/bed/chair/comfy{ dir = 4 }, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, +/turf/open/floor/carpet, /area/adminlevel/chinook) "Oy" = ( /obj/structure/machinery/door/airlock/almayer/generic{ @@ -10870,17 +9919,12 @@ name = "Freezer"; req_access_txt = "30" }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook/event) "Oz" = ( /obj/structure/bed, /obj/item/bedsheet/medical, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/east, /area/adminlevel/chinook/medical) "OA" = ( /obj/structure/machinery/door/airlock/almayer/generic{ @@ -10890,11 +9934,14 @@ /turf/open/floor/almayer, /area/adminlevel/chinook/sec) "OB" = ( -/obj/structure/machinery/cryopod, -/turf/open/floor/almayer{ - icon_state = "sterile_green_corner" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook/medical) +"OC" = ( +/obj/structure/sign/safety/bathunisex{ + pixel_y = -25 + }, +/turf/open/floor/almayer/orange, +/area/adminlevel/chinook/engineering) "OD" = ( /obj/structure/sign/poster{ desc = "YOU ALWAYS KNOW A WORKING JOE. YOU ALWAYS KNOW A WORKING JOE. YOU ALWAYS KNOW A WORKING JOE. YOU ALWAYS KNOW A WORKING JOE. YOU ALWAYS KNOW A WORKING JOE."; @@ -10904,44 +9951,35 @@ pixel_y = 3; serial_number = 11 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/cargo) "OE" = ( /obj/structure/machinery/vending/coffee, /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook) "OF" = ( /obj/structure/machinery/vending/hydronutrients, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "green" - }, +/turf/open/floor/almayer/green/northwest, /area/adminlevel/chinook) "OG" = ( /obj/structure/machinery/vending/hydroseeds, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/almayer/green/north, /area/adminlevel/chinook) "OH" = ( /obj/structure/largecrate/random/case/double, /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" +/turf/open/floor/almayer/plating/northeast, +/area/adminlevel/chinook/cargo) +"OK" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N" }, +/turf/open/floor/almayer, /area/adminlevel/chinook/cargo) "OL" = ( /obj/structure/reagent_dispensers/watertank, @@ -10949,56 +9987,48 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/almayer/green/north, /area/adminlevel/chinook) "OM" = ( /obj/structure/machinery/disposal, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/almayer/green/north, /area/adminlevel/chinook) "ON" = ( /obj/item/trash/burger{ pixel_x = -20 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "green" - }, +/obj/structure/machinery/seed_extractor, +/turf/open/floor/almayer/green/north, /area/adminlevel/chinook) "OP" = ( /obj/structure/sign/poster{ pixel_y = 32 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/north, /area/adminlevel/chinook) "OR" = ( /obj/structure/machinery/vending/snack, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/kutjevo/plate, /area/adminlevel/chinook/offices) "OS" = ( -/obj/structure/machinery/computer/shuttle/ert/broken, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" +/obj/structure/prop/pred_flight{ + icon_state = "syndishuttle"; + name = "shuttle control console" }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/adminlevel/chinook/shuttle/unpowered) +"OT" = ( +/obj/structure/machinery/cm_vending/clothing/synth/snowflake, +/obj/structure/machinery/light{ + dir = 4 + }, +/turf/open/floor/almayer/cargo, +/area/adminlevel/chinook) "OU" = ( -/obj/structure/sign/safety/reception{ +/obj/structure/sign/safety/debark_lounge{ pixel_x = 32 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/east, /area/adminlevel/chinook) "OV" = ( /obj/structure/machinery/light{ @@ -11025,35 +10055,32 @@ pixel_x = 12; pixel_y = 25 }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/adminlevel/chinook/medical) "OY" = ( -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, +/turf/open/floor/carpet, /area/adminlevel/chinook) "OZ" = ( /obj/structure/platform, /obj/structure/barricade/handrail/strata{ - layer = 3.5 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" + layer = 4.5 }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/engineering) "Pa" = ( /obj/structure/surface/table/almayer, +/obj/item/storage/fancy/cigarettes/emeraldgreen{ + pixel_y = 10 + }, +/obj/item/tool/lighter/zippo{ + pixel_x = 4; + pixel_y = 7 + }, /turf/open/floor/plating/plating_catwalk, /area/adminlevel/chinook/sec) "Pb" = ( /obj/structure/machinery/vending/coffee, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook/sec) "Pc" = ( /obj/structure/machinery/door/airlock/almayer/generic{ @@ -11064,30 +10091,29 @@ /area/adminlevel/chinook/cargo) "Pd" = ( /obj/structure/closet/emcloset, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/almayer/red/north, /area/adminlevel/chinook/sec) -"Pf" = ( -/turf/open/floor/kutjevo/colors/blue/edge{ +"Pe" = ( +/obj/structure/platform_decoration/strata/metal{ dir = 4 }, +/turf/open/gm/river/pool, +/area/adminlevel/chinook) +"Pf" = ( +/turf/open/floor/kutjevo/colors/blue/edge/east, /area/adminlevel/chinook) +"Pg" = ( +/obj/structure/closet/secure_closet/freezer/fridge/groceries, +/turf/open/floor/prison/kitchen, +/area/adminlevel/chinook/event) "Ph" = ( /obj/structure/filingcabinet/seeds, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "green" - }, +/turf/open/floor/almayer/green/northeast, /area/adminlevel/chinook) "Pi" = ( -/obj/structure/flora/pottedplant{ - icon_state = "pottedplant_22" - }, -/turf/open/floor/almayer{ - icon_state = "blue" - }, +/obj/structure/machinery/light, +/obj/structure/flora/pottedplant/random, +/turf/open/floor/almayer, /area/adminlevel/chinook/offices) "Pj" = ( /obj/effect/decal/warning_stripes{ @@ -11096,16 +10122,12 @@ /turf/open/floor/almayer, /area/adminlevel/chinook) "Pk" = ( -/turf/open/floor{ - desc = "A sophisticated device that captures and converts light from the system's star into energy for the station."; - icon_state = "solarpanel"; - name = "solarpanel" - }, +/turf/open/floor/solarpanel, /area/space) "Pl" = ( /obj/structure/machinery/door/airlock/almayer/generic{ dir = 2; - name = "\improper Bathroom" + name = "\improper Women's Bathroom" }, /turf/open/floor/almayer, /area/adminlevel/chinook/offices) @@ -11116,21 +10138,23 @@ pixel_y = 2 }, /obj/item/trash/uscm_mre, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook/engineering) +"Po" = ( +/obj/structure/platform{ + dir = 8 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "N" + }, +/turf/open/floor/almayer/plating/northeast, +/area/adminlevel/chinook/cargo) "Pp" = ( /obj/item/reagent_container/glass/bucket/janibucket, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook/engineering) "Pq" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orangecorner" - }, +/turf/open/floor/almayer/orangecorner/west, /area/adminlevel/chinook/engineering) "Pr" = ( /obj/structure/surface/table/reinforced/black, @@ -11138,39 +10162,48 @@ pixel_x = -2; pixel_y = 3 }, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, +/turf/open/floor/carpet, /area/adminlevel/chinook/sec) +"Ps" = ( +/obj/structure/desertdam/decals/road_edge{ + pixel_x = 16 + }, +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal3"; + pixel_y = 16 + }, +/turf/open/floor/wood, +/area/adminlevel/chinook) "Pt" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/structure/machinery/recharger, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/almayer/red/west, /area/adminlevel/chinook/sec) "Pu" = ( /obj/structure/surface/table/almayer, -/turf/open/floor/almayer{ - icon_state = "orange" - }, +/turf/open/floor/almayer/orange, /area/adminlevel/chinook/engineering) "Pv" = ( /obj/item/storage/donut_box, /obj/structure/surface/table/almayer, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/almayer/red/east, /area/adminlevel/chinook/sec) "Pw" = ( -/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ - pixel_x = -30 +/obj/structure/machinery/door/airlock/multi_tile/elevator/access{ + desc = "An elevator hatch to take you to different levels of the station. This elevator seems to be disabled."; + name = "\improper Elevator Hatch" }, -/turf/open/floor/almayer, +/turf/open/floor/corsat/squares, /area/adminlevel/chinook/offices) +"Px" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N" + }, +/obj/structure/machinery/light{ + dir = 1 + }, +/turf/open/floor/almayer, +/area/adminlevel/chinook/cargo) "Pz" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22" @@ -11186,15 +10219,18 @@ dir = 8 }, /obj/item/weapon/gun/rifle/mar40, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/adminlevel/chinook/sec) "PB" = ( /obj/structure/machinery/door/airlock/almayer/marine/requisitions{ name = "\improper Cargo Bay"; req_one_access_txt = "1;26" }, +/obj/structure/machinery/door/poddoor/almayer{ + dir = 4; + id = "chinookreq"; + name = "Requisitions Lockdown" + }, /turf/open/floor/almayer, /area/adminlevel/chinook/cargo) "PC" = ( @@ -11205,9 +10241,7 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/adminlevel/chinook/sec) "PE" = ( /obj/structure/machinery/light{ @@ -11218,31 +10252,23 @@ pixel_x = -3; pixel_y = 2 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook/sec) "PG" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook/sec) "PI" = ( /obj/structure/machinery/sleep_console{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/adminlevel/chinook/sec) "PK" = ( /obj/structure/janitorialcart, /obj/item/tool/mop, /obj/item/reagent_container/glass/bucket/mopbucket, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook/sec) "PL" = ( /obj/structure/machinery/door/poddoor/almayer{ @@ -11250,35 +10276,21 @@ id = "chinookairlock1"; name = "\improper Chinook Shuttle Airlock" }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/shuttle/unpowered) "PM" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "green" - }, +/turf/open/floor/almayer/green/west, /area/adminlevel/chinook) -"PO" = ( -/obj/structure/platform_decoration{ - dir = 8 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/adminlevel/chinook/engineering) "PP" = ( -/turf/open/floor/almayer{ - icon_state = "green" - }, +/turf/open/floor/almayer/green, /area/adminlevel/chinook) "PR" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/storage/toolbox/mechanical, /obj/item/circuitboard/apc, +/obj/item/stack/cable_coil{ + pixel_x = -8 + }, /turf/open/floor/almayer, /area/adminlevel/chinook/engineering) "PT" = ( @@ -11286,18 +10298,8 @@ dir = 4; pixel_x = 11 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "green" - }, +/turf/open/floor/almayer/green/east, /area/adminlevel/chinook) -"PU" = ( -/obj/structure/surface/table/almayer, -/obj/item/pizzabox/meat{ - pixel_y = 8 - }, -/turf/open/floor/almayer, -/area/adminlevel/chinook/cargo) "PV" = ( /obj/structure/window/framed/almayer/hull, /turf/open/floor/plating, @@ -11308,6 +10310,12 @@ }, /turf/open/floor/almayer, /area/adminlevel/chinook/offices) +"PX" = ( +/obj/structure/machinery/light{ + dir = 8 + }, +/turf/open/floor/almayer, +/area/adminlevel/chinook) "PY" = ( /obj/structure/surface/table/almayer, /obj/structure/bedsheetbin{ @@ -11317,9 +10325,7 @@ /obj/item/tool/soap{ pixel_x = -6 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook/engineering) "PZ" = ( /obj/structure/surface/table/almayer, @@ -11327,9 +10333,7 @@ pixel_y = 10 }, /obj/item/tool/pen, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook/engineering) "Qa" = ( /obj/structure/surface/table/almayer, @@ -11342,23 +10346,16 @@ pixel_x = 3; pixel_y = 6 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook/engineering) "Qc" = ( /obj/effect/decal/cleanable/blood/oil/streak, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/cargo) "Qd" = ( /obj/structure/closet/crate/trashcart, /obj/item/storage/bag/trash, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook/engineering) "Qe" = ( /obj/structure/surface/table/almayer, @@ -11366,25 +10363,21 @@ /obj/item/storage/box/pillbottles, /obj/item/storage/box/pillbottles, /obj/item/storage/box/pillbottles, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/adminlevel/chinook/medical) "Qf" = ( /obj/effect/decal/warning_stripes{ icon_state = "N" }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/offices) +"Qg" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/prison/kitchen, +/area/adminlevel/chinook/event) "Qh" = ( /obj/structure/largecrate/random, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/southeast, /area/adminlevel/chinook/engineering) "Qi" = ( /obj/structure/closet, @@ -11394,9 +10387,7 @@ /obj/item/tool/soap, /obj/item/tool/soap, /obj/item/tool/soap, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook/engineering) "Qk" = ( /turf/closed/shuttle/ert{ @@ -11404,16 +10395,11 @@ }, /area/adminlevel/chinook/shuttle/unpowered) "Qm" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/almayer/blue/west, /area/adminlevel/chinook/offices) "Qn" = ( /obj/structure/closet/secure_closet/engineering_personal, -/turf/open/floor/almayer{ - icon_state = "test_floor5" - }, +/turf/open/floor/almayer/test_floor5, /area/adminlevel/chinook/engineering) "Qp" = ( /obj/structure/machinery/door/airlock/almayer/security/glass{ @@ -11430,35 +10416,35 @@ "Qq" = ( /obj/structure/closet/toolcloset, /obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "test_floor5" - }, +/turf/open/floor/almayer/test_floor5, /area/adminlevel/chinook/engineering) "Qr" = ( /obj/structure/closet/toolcloset, -/turf/open/floor/almayer{ - icon_state = "test_floor5" - }, +/turf/open/floor/almayer/test_floor5, /area/adminlevel/chinook/engineering) "Qs" = ( -/obj/item/tool/pen, +/obj/item/tool/pen/fountain{ + pixel_x = 3; + pixel_y = -1 + }, /obj/item/paper_bin/uscm, /obj/structure/sign/prop1{ pixel_x = -32; pixel_y = 2 }, /obj/structure/surface/table/reinforced/black, -/turf/open/floor/almayer, +/obj/item/tool/pen/fountain{ + pixel_x = 3; + pixel_y = 3 + }, +/turf/open/floor/kutjevo/plate, /area/adminlevel/chinook/offices) "Qt" = ( /obj/structure/sign/prop1{ pixel_y = 32 }, /obj/structure/surface/table/reinforced/black, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, +/turf/open/floor/carpet, /area/adminlevel/chinook/event) "Qv" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ @@ -11471,10 +10457,7 @@ /obj/structure/toilet{ dir = 8 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/almayer/red/east, /area/adminlevel/chinook) "Qx" = ( /turf/closed/wall/almayer/outer, @@ -11482,33 +10465,47 @@ "Qy" = ( /obj/structure/machinery/light, /obj/structure/machinery/disposal, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/sec) "Qz" = ( -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, +/turf/open/floor/carpet, /area/adminlevel/chinook/sec) +"QA" = ( +/obj/structure/closet/secure_closet/freezer/fridge/full, +/obj/structure/machinery/light{ + dir = 4 + }, +/turf/open/floor/prison/kitchen, +/area/adminlevel/chinook/event) "QB" = ( -/obj/structure/cargo_container/wy/right, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" +/obj/structure/surface/table/reinforced/black, +/obj/structure/machinery/light{ + dir = 8 }, -/area/adminlevel/chinook/cargo) +/obj/item/paper_bin/uscm{ + pixel_y = 8; + pixel_x = 12 + }, +/obj/item/prop/tableflag/uscm{ + pixel_x = -7; + pixel_y = 1 + }, +/obj/item/prop/tableflag/uscm2{ + pixel_y = 1; + pixel_x = 1 + }, +/obj/item/tool/pen/fountain{ + pixel_x = 10; + pixel_y = 6 + }, +/turf/open/floor/carpet, +/area/adminlevel/chinook/offices) "QD" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/paper_bin/uscm{ pixel_y = 6 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/almayer/red/west, /area/adminlevel/chinook/sec) "QE" = ( /obj/structure/bed/chair/comfy/black{ @@ -11518,18 +10515,13 @@ /area/adminlevel/chinook/sec) "QF" = ( /obj/structure/window/framed/almayer, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/sec) "QG" = ( /obj/structure/machinery/cm_vending/sorted/medical/wall_med{ pixel_y = -30 }, -/turf/open/floor/almayer{ - icon_state = "silver" - }, +/turf/open/floor/almayer/silver, /area/adminlevel/chinook) "QH" = ( /obj/structure/machinery/door/airlock/almayer/security{ @@ -11544,18 +10536,19 @@ pixel_y = 6 }, /obj/item/tool/pen, -/turf/open/floor/almayer{ - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side, /area/adminlevel/chinook/medical) +"QJ" = ( +/obj/structure/machinery/light{ + dir = 4 + }, +/turf/open/floor/corsat/squares, +/area/adminlevel/chinook/cargo) "QL" = ( /obj/structure/bed/chair/comfy/black{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/almayer/red/east, /area/adminlevel/chinook/sec) "QO" = ( /obj/structure/closet/secure_closet{ @@ -11564,18 +10557,14 @@ }, /obj/effect/decal/cleanable/blood/oil/streak, /obj/item/weapon/gun/rifle/mar40, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/adminlevel/chinook/sec) "QP" = ( /obj/structure/bed/chair/comfy/black{ dir = 8 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - icon_state = "red" - }, +/turf/open/floor/almayer/red, /area/adminlevel/chinook/sec) "QQ" = ( /obj/structure/machinery/door/airlock/almayer/security/glass{ @@ -11587,10 +10576,22 @@ "QR" = ( /obj/item/reagent_container/spray/cleaner, /obj/structure/surface/rack, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook) +"QS" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/medidoor{ + dir = 2; + name = "\improper Medical Bay"; + req_access = null; + req_one_access = null + }, +/obj/structure/machinery/door/poddoor/almayer/open{ + id = "chinookofficelock"; + name = "Command Office Lockdown"; + dir = 4 + }, +/turf/open/floor/almayer, +/area/adminlevel/chinook/offices) "QT" = ( /obj/structure/machinery/portable_atmospherics/hydroponics, /turf/open/floor/plating/plating_catwalk, @@ -11599,11 +10600,27 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "green" +/turf/open/floor/almayer/green/east, +/area/adminlevel/chinook) +"QV" = ( +/obj/structure/bed/chair/comfy{ + dir = 1 + }, +/turf/open/floor/kutjevo/plate, +/area/adminlevel/chinook/offices) +"QW" = ( +/obj/structure/bed/chair/office/dark{ + dir = 8 }, +/turf/open/floor/plating/plating_catwalk, /area/adminlevel/chinook) +"Rc" = ( +/obj/structure/machinery/portable_atmospherics/hydroponics, +/obj/structure/machinery/light{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/chinook/event) "Rd" = ( /obj/structure/surface/table/reinforced/black, /obj/structure/machinery/computer/emails{ @@ -11611,24 +10628,20 @@ pixel_x = -3; pixel_y = 6 }, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, +/turf/open/floor/carpet, /area/adminlevel/chinook/offices) -"Rf" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E" - }, -/turf/open/floor/almayer, -/area/adminlevel/chinook/cargo) "Ri" = ( -/obj/structure/surface/table/almayer, -/obj/item/fuelCell, -/turf/open/floor/almayer{ - icon_state = "orange" +/obj/structure/desertdam/decals/road_edge{ + pixel_x = 2; + pixel_y = -22 }, -/area/adminlevel/chinook/engineering) +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal6"; + pixel_x = 2; + pixel_y = 4 + }, +/turf/open/floor/wood, +/area/adminlevel/chinook) "Rj" = ( /obj/structure/machinery/door/airlock/almayer/generic{ name = "\improper Bathroom" @@ -11641,10 +10654,7 @@ pixel_x = 7; pixel_y = 10 }, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, +/turf/open/floor/carpet, /area/adminlevel/chinook/sec) "Rl" = ( /obj/structure/surface/table/reinforced/almayer_B, @@ -11659,30 +10669,34 @@ /obj/structure/bed/chair/comfy{ dir = 8 }, -/turf/open/floor/kutjevo/tan/alt_inner_edge{ - dir = 8 - }, +/turf/open/floor/kutjevo/tan/alt_inner_edge/west, /area/adminlevel/chinook) +"Ro" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/obj/structure/machinery/cm_vending/sorted/tech/tool_storage, +/turf/open/floor/almayer/plate, +/area/adminlevel/chinook/offices) "Rp" = ( /obj/structure/platform{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "plating_striped" - }, +/turf/open/floor/almayer/plating_striped/east, /area/adminlevel/chinook/cargo) "Rq" = ( /obj/structure/closet/fireaxecabinet{ pixel_y = 25 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/sec) +"Rs" = ( +/obj/structure/sign/safety/bathwomens{ + pixel_y = 25 + }, +/turf/open/floor/almayer/silver/north, +/area/adminlevel/chinook) "Rt" = ( -/obj/structure/machinery/power/fusion_engine, /obj/structure/platform{ dir = 8 }, @@ -11694,55 +10708,54 @@ pixel_x = -15; pixel_y = -7 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/obj/structure/prop/invuln/fusion_reactor, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/engineering) "Rw" = ( -/obj/structure/machinery/door/airlock/almayer/medical/glass{ - dir = 1; - id = "medcryobeds"; - id_tag = "medcryobeds"; - name = "Medical Hypersleep Access"; - req_access = null; - req_one_access = null - }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/obj/structure/machinery/disposal, +/turf/open/floor/almayer/sterile_green_corner/east, /area/adminlevel/chinook/medical) "Rx" = ( /obj/structure/machinery/cm_vending/sorted/cargo_guns/squad_prep, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/adminlevel/chinook/sec) +"Ry" = ( +/obj/structure/barricade/handrail/strata{ + dir = 1 + }, +/turf/open/floor/almayer/blue/west, +/area/adminlevel/chinook) "RA" = ( -/turf/closed/wall/almayer/outer{ - desc = "A heavily reinforced metal wall. Nothing gets through here."; - name = "ultra-reinforced hull" +/obj/structure/noticeboard{ + pixel_y = 27 }, -/area/adminlevel/chinook/engineering) +/obj/item/weapon/gun/rifle/sniper/XM43E1{ + pixel_y = 27 + }, +/turf/open/floor/kutjevo/plate, +/area/adminlevel/chinook/offices) "RB" = ( /obj/structure/sign/safety/storage{ pixel_x = 13; pixel_y = 25 }, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/almayer/red/northwest, /area/adminlevel/chinook/sec) "RD" = ( -/obj/structure/machinery/power/fusion_engine, /obj/structure/machinery/light, /obj/structure/platform, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" +/obj/structure/prop/invuln/fusion_reactor, +/turf/open/floor/almayer/plating/northeast, +/area/adminlevel/chinook/engineering) +"RE" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 26 }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook/engineering) +"RF" = ( +/turf/open/floor/corsat/plate, +/area/adminlevel/chinook/cargo) "RH" = ( /obj/structure/toilet{ dir = 8 @@ -11750,15 +10763,10 @@ /turf/open/floor/almayer, /area/adminlevel/chinook/sec) "RI" = ( -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/adminlevel/chinook/sec) "RJ" = ( -/turf/open/floor/almayer{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/almayer/red/northeast, /area/adminlevel/chinook/sec) "RK" = ( /obj/structure/surface/table/almayer, @@ -11767,10 +10775,7 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/almayer/red/west, /area/adminlevel/chinook/sec) "RL" = ( /obj/structure/surface/table/reinforced/black, @@ -11779,16 +10784,10 @@ pixel_x = 1; pixel_y = -4 }, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" - }, +/turf/open/floor/wood, /area/adminlevel/chinook/offices) "RM" = ( -/turf/open/floor/almayer{ - icon_state = "orange" - }, +/turf/open/floor/almayer/orange, /area/adminlevel/chinook/engineering) "RN" = ( /obj/structure/window/framed/almayer, @@ -11798,32 +10797,31 @@ /obj/structure/machinery/photocopier, /turf/open/floor/kutjevo/tan/plate, /area/adminlevel/chinook/event) +"RP" = ( +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/chinook/medical) +"RQ" = ( +/obj/structure/janitorialcart, +/obj/item/tool/mop, +/obj/item/reagent_container/glass/bucket/mopbucket, +/turf/open/floor/almayer/plate, +/area/adminlevel/chinook/offices) "RR" = ( /obj/structure/machinery/cm_vending/sorted/medical/wall_med{ pixel_y = 25 }, /obj/structure/machinery/disposal, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook/sec) "RS" = ( -/turf/open/floor/almayer{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/almayer/red/northeast, /area/adminlevel/chinook/offices) "RT" = ( /obj/structure/bed/chair, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/adminlevel/chinook/sec) "RU" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/almayer/blue/east, /area/adminlevel/chinook/offices) "RX" = ( /obj/structure/surface/table/reinforced/almayer_B, @@ -11832,97 +10830,65 @@ pixel_x = 6; pixel_y = 6 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/sec) "RZ" = ( /obj/structure/bed/chair/comfy{ dir = 8 }, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, +/turf/open/floor/carpet, /area/adminlevel/chinook) "Sa" = ( /obj/structure/toilet{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/sec) "Sc" = ( /obj/structure/largecrate/random/case/small, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/cargo) "Se" = ( -/obj/structure/closet/secure_closet/guncabinet/blue{ - name = "sidearm storage" - }, -/obj/item/ammo_magazine/pistol, -/obj/item/ammo_magazine/pistol, -/obj/item/ammo_magazine/pistol, -/obj/item/ammo_magazine/pistol, -/obj/item/ammo_magazine/pistol, -/obj/item/ammo_magazine/pistol, -/obj/item/ammo_magazine/pistol, -/obj/item/ammo_magazine/pistol, -/obj/item/ammo_magazine/pistol, -/obj/item/ammo_magazine/pistol, -/obj/item/weapon/gun/pistol/m4a3, -/obj/item/weapon/gun/pistol/m4a3, -/obj/item/weapon/gun/pistol/m4a3, /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "cargo" +/obj/structure/closet/secure_closet/guncabinet/red{ + name = "provost armor rack" }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/sec) "Sg" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/toolbox, -/turf/open/floor/almayer{ - icon_state = "tcomms" - }, +/turf/open/floor/almayer/tcomms, /area/adminlevel/chinook/engineering) +"Sh" = ( +/obj/structure/surface/table/reinforced/black, +/obj/item/toy/deck/uno{ + pixel_x = 3; + pixel_y = 8 + }, +/turf/open/floor/carpet, +/area/adminlevel/chinook) "Si" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/offices) "Sj" = ( /obj/structure/reagent_dispensers/water_cooler/stacks, -/turf/open/floor/almayer{ - icon_state = "blue" - }, +/turf/open/floor/almayer/blue, /area/adminlevel/chinook/offices) "Sk" = ( /obj/structure/bookcase{ icon_state = "book-5" }, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, +/turf/open/floor/carpet, /area/adminlevel/chinook/sec) "Sl" = ( /obj/structure/machinery/cm_vending/sorted/tech/tool_storage, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/engineering) "Sn" = ( /obj/structure/bed/chair{ @@ -11932,36 +10898,24 @@ /turf/open/floor/almayer, /area/adminlevel/chinook/sec) "So" = ( -/obj/structure/machinery/telecomms/bus/preset_cent{ - autolinkers = list("chinook"); - freq_listening = list(1353,1357,1359,1355,1469,1471,1354,1342,1344,1235,1340,1214,1358,1356,1236,1240,1449,1451,1453,1455) - }, -/turf/open/floor/almayer{ - icon_state = "tcomms" - }, +/obj/structure/machinery/telecomms/bus, +/turf/open/floor/almayer/tcomms, /area/adminlevel/chinook/engineering) "Sr" = ( /obj/structure/sign/nosmoking_2{ pixel_x = 28 }, /obj/structure/largecrate/random/secure, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/engineering) "Ss" = ( /obj/structure/machinery/floodlight, /obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook/engineering) "Su" = ( /obj/structure/closet/emcloset, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook) "Sv" = ( /obj/structure/machinery/light{ @@ -11973,24 +10927,18 @@ "Sw" = ( /obj/effect/decal/cleanable/blood, /obj/structure/bed/chair, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/adminlevel/chinook/sec) "Sx" = ( /obj/structure/closet/firecloset, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook) "Sy" = ( /obj/structure/surface/table/almayer, /obj/item/storage/fancy/cigarettes/lucky_strikes, /obj/item/tool/lighter, /obj/item/clothing/glasses/sunglasses/blindfold, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook/sec) "Sz" = ( /turf/open/floor/kutjevo/plate, @@ -11999,10 +10947,7 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/sec) "SC" = ( /obj/structure/machinery/portable_atmospherics/hydroponics, @@ -12012,43 +10957,30 @@ /turf/open/floor/plating/plating_catwalk, /area/adminlevel/chinook) "SD" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "greencorner" - }, +/turf/open/floor/almayer/greencorner/east, /area/adminlevel/chinook) "SE" = ( /obj/structure/closet/secure_closet/brig, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/adminlevel/chinook/sec) "SF" = ( /obj/structure/surface/rack, /obj/item/reagent_container/spray/cleaner, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "green" +/obj/structure/extinguisher_cabinet{ + pixel_y = 27 }, +/turf/open/floor/almayer/green/north, /area/adminlevel/chinook) "SH" = ( -/obj/item/tool/pen, -/obj/item/paper_bin/uscm, -/obj/structure/surface/table/reinforced/black, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, +/obj/structure/reagent_dispensers/water_cooler, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook/offices) "SI" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/reagentgrinder{ pixel_y = 3 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "green" - }, +/turf/open/floor/almayer/green/northeast, /area/adminlevel/chinook) "SK" = ( /obj/structure/window/framed/almayer, @@ -12062,29 +10994,48 @@ "SL" = ( /turf/open/floor/kutjevo, /area/adminlevel/chinook/event) +"SM" = ( +/obj/structure/sign/ROsign, +/turf/closed/wall/almayer/reinforced, +/area/adminlevel/chinook) +"SN" = ( +/obj/structure/sign/safety/debark_lounge{ + pixel_x = 32 + }, +/obj/structure/sign/safety/south{ + pixel_x = 32; + pixel_y = -12 + }, +/turf/open/floor/almayer/silver/east, +/area/adminlevel/chinook) "SP" = ( /turf/closed/wall/almayer/outer, /area/adminlevel/chinook) "SQ" = ( -/obj/structure/machinery/telecomms/server/presets/centcomm, -/turf/open/floor/almayer{ - icon_state = "tcomms" - }, +/obj/structure/machinery/telecomms/server, +/turf/open/floor/almayer/tcomms, /area/adminlevel/chinook/engineering) "SR" = ( /obj/structure/window/framed/almayer/hull, /turf/open/floor/plating, /area/adminlevel/chinook/event) +"SS" = ( +/obj/structure/surface/table/reinforced/almayer_B, +/obj/item/reagent_container/food/condiment/saltshaker{ + pixel_x = -4 + }, +/obj/item/reagent_container/food/condiment/peppermill{ + pixel_x = 4 + }, +/turf/open/floor/prison/kitchen, +/area/adminlevel/chinook/event) "ST" = ( /obj/structure/largecrate/supply/supplies/water, /obj/item/reagent_container/spray/cleaner{ pixel_x = 10; pixel_y = -16 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/cargo) "SU" = ( /obj/structure/surface/rack, @@ -12097,44 +11048,36 @@ /obj/item/storage/bag/plants{ pixel_y = -3 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook) "SV" = ( -/obj/structure/platform{ - dir = 1 - }, +/obj/structure/platform/stair_cut/alt, /obj/structure/stairs/perspective{ icon_state = "p_stair_ew_full_cap"; layer = 3.5 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/engineering) "SX" = ( /obj/structure/machinery/suit_storage_unit/compression_suit/uscm, -/turf/open/floor/almayer{ - icon_state = "test_floor5" +/turf/open/floor/almayer/test_floor5, +/area/adminlevel/chinook/engineering) +"SY" = ( +/obj/structure/extinguisher_cabinet{ + pixel_y = 27 }, +/turf/open/floor/almayer/orange/north, /area/adminlevel/chinook/engineering) "Ta" = ( /obj/structure/surface/table/almayer, /obj/item/folder/white, -/turf/open/floor/almayer{ - icon_state = "sterile_green" - }, +/turf/open/floor/almayer/sterile_green, /area/adminlevel/chinook/medical) "Tb" = ( /obj/structure/machinery/cm_vending/sorted/medical/wall_med{ pixel_y = 25 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/almayer/red/north, /area/adminlevel/chinook/sec) "Td" = ( /obj/structure/window/framed/almayer, @@ -12143,24 +11086,24 @@ "Tf" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/recharger, -/turf/open/floor/almayer{ - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side, /area/adminlevel/chinook/medical) +"Tg" = ( +/obj/structure/machinery/door/airlock/multi_tile/elevator/freight, +/turf/open/floor/almayer/plating/northeast, +/area/adminlevel/chinook/cargo) "Th" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/engineering) "Ti" = ( -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/adminlevel/chinook/shuttle/unpowered) +"Tj" = ( +/turf/open/floor/almayer/bluecorner/west, +/area/adminlevel/chinook) "Tl" = ( /obj/structure/window/framed/almayer, /turf/open/floor/plating, @@ -12171,20 +11114,14 @@ "To" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/storage/surgical_tray, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/west, /area/adminlevel/chinook/medical) "Tp" = ( -/obj/structure/machinery/medical_pod/autodoc, /obj/structure/sign/safety/autodoc{ pixel_x = -16 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_side" - }, +/obj/structure/machinery/medical_pod/autodoc, +/turf/open/floor/almayer/sterile_green_side/west, /area/adminlevel/chinook/sec) "Tq" = ( /obj/structure/machinery/light{ @@ -12192,80 +11129,77 @@ }, /turf/open/floor/almayer, /area/adminlevel/chinook/engineering) +"Tr" = ( +/obj/structure/machinery/light{ + dir = 4 + }, +/turf/open/floor/almayer, +/area/adminlevel/chinook) "Ts" = ( /obj/effect/decal/warning_stripes{ icon_state = "E" }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/engineering) "Tt" = ( /obj/structure/machinery/power/port_gen/pacman, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/adminlevel/chinook/engineering) "Tu" = ( /obj/effect/decal/warning_stripes{ icon_state = "E" }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/almayer/red/east, /area/adminlevel/chinook/sec) "Tx" = ( /obj/structure/closet/firecloset, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook/sec) "TA" = ( -/obj/structure/cargo_container/arious/leftmid, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/obj/structure/cargo_container/seegson/left, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/cargo) "TC" = ( /obj/structure/closet/crate, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/adminlevel/chinook/engineering) "TD" = ( /obj/structure/machinery/cryopod/right, /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/adminlevel/chinook/cryo) "TE" = ( /obj/structure/machinery/door/airlock/almayer/secure{ name = "Telecommunications"; req_access_txt = "6" }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook/engineering) "TG" = ( /obj/structure/machinery/door/airlock/almayer/command{ - name = "\improper General, 3rd Fleet 2nd Battlegroup" + name = "Office of Col. Samantha Maverick" }, -/turf/open/floor/almayer, +/turf/open/floor/kutjevo/plate, /area/adminlevel/chinook/offices) "TH" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "plating_striped" +/turf/open/floor/almayer/plating_striped, +/area/adminlevel/chinook/sec) +"TJ" = ( +/turf/open/floor/corsat/squares, +/area/adminlevel/chinook/offices) +"TK" = ( +/obj/structure/bed/chair/comfy{ + dir = 4 + }, +/obj/structure/sign/poster{ + pixel_y = 32 }, +/turf/open/floor/wood, /area/adminlevel/chinook/sec) "TL" = ( /obj/structure/closet/crate, @@ -12273,15 +11207,13 @@ dir = 1 }, /obj/item/stack/sheet/mineral/uranium, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/adminlevel/chinook/engineering) "TM" = ( -/obj/structure/closet/emcloset, -/turf/open/floor/almayer{ - icon_state = "emerald" +/obj/effect/decal/warning_stripes{ + icon_state = "E" }, +/turf/open/floor/almayer/emerald/southeast, /area/adminlevel/chinook/shuttle) "TO" = ( /obj/structure/machinery/light, @@ -12295,21 +11227,34 @@ /turf/open/floor/almayer, /area/adminlevel/chinook) "TP" = ( -/obj/structure/closet/secure_closet/freezer/meat, -/turf/open/floor/prison{ - icon_state = "kitchen" +/obj/structure/machinery/light{ + dir = 4 }, -/area/space) +/obj/structure/machinery/medical_pod/sleeper, +/turf/open/floor/almayer/sterile_green_corner/east, +/area/adminlevel/chinook/offices) "TQ" = ( /turf/open/floor/kutjevo/plate, /area/adminlevel/chinook/event) +"TT" = ( +/obj/structure/machinery/door/airlock/almayer/security/glass{ + name = "\improper Provost Offices" + }, +/turf/open/floor/almayer/red/north, +/area/adminlevel/chinook/sec) +"TU" = ( +/obj/structure/surface/table/reinforced/black, +/obj/item/reagent_container/food/snacks/monkeysdelight{ + pixel_y = 9; + desc = "Morbidly pickled and preserved as a conversation piece. Somehow, doesn't smell like anything." + }, +/turf/open/floor/carpet, +/area/adminlevel/chinook/offices) "TV" = ( /obj/structure/sign/safety/conference_room{ pixel_y = -24 }, -/turf/open/floor/almayer{ - icon_state = "red" - }, +/turf/open/floor/almayer/red, /area/adminlevel/chinook/sec) "TY" = ( /obj/structure/sink{ @@ -12319,17 +11264,11 @@ /obj/structure/mirror{ pixel_x = 28 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/almayer/red/east, /area/adminlevel/chinook) "TZ" = ( /obj/structure/flora/pottedplant/random, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/almayer/red/southeast, /area/adminlevel/chinook/sec) "Ua" = ( /obj/structure/machinery/door/airlock/almayer/security/glass{ @@ -12355,9 +11294,7 @@ /obj/item/stack/sheet/metal{ amount = 50 }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/adminlevel/chinook/engineering) "Ud" = ( /obj/structure/surface/table/reinforced/almayer_B, @@ -12365,43 +11302,27 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/almayer/red/north, /area/adminlevel/chinook/sec) "Ue" = ( -/turf/open/floor/almayer{ - dir = 10; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/southwest, /area/adminlevel/chinook/medical) "Uf" = ( /obj/structure/surface/table/almayer, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_corner" - }, +/obj/item/storage/surgical_tray, +/turf/open/floor/almayer/sterile_green_corner/west, /area/adminlevel/chinook/medical) "Ug" = ( /obj/structure/machinery/computer/telecomms/monitor, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook/engineering) "Uh" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/structure/machinery/computer/secure_data, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/almayer/red/north, /area/adminlevel/chinook/sec) "Uj" = ( /obj/structure/machinery/light, -/obj/effect/decal/warning_stripes{ - icon_state = "E" - }, /obj/structure/machinery/door_control{ id = "chinookcargo"; name = "Shuttlebay Cargo Access"; @@ -12410,6 +11331,15 @@ }, /turf/open/floor/almayer, /area/adminlevel/chinook/cargo) +"Uk" = ( +/obj/structure/machinery/light, +/obj/structure/surface/table/almayer, +/obj/item/trash/USCMtray{ + pixel_x = -4; + pixel_y = 10 + }, +/turf/open/floor/almayer/plate, +/area/adminlevel/chinook/offices) "Ul" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/paper_bin/uscm{ @@ -12422,26 +11352,15 @@ /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/almayer/red/west, /area/adminlevel/chinook/sec) "Up" = ( /obj/structure/closet/secure_closet/brig, /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/adminlevel/chinook/sec) -"Us" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "green" - }, -/area/adminlevel/chinook) "Ut" = ( /obj/structure/surface/rack, /obj/item/tool/shovel/spade{ @@ -12463,37 +11382,34 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook) "Uu" = ( /obj/structure/machinery/suit_storage_unit/compression_suit/uscm, /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "test_floor5" - }, +/turf/open/floor/almayer/test_floor5, /area/adminlevel/chinook/engineering) "Uw" = ( /obj/structure/machinery/chem_master, /obj/item/reagent_container/glass/beaker/bluespace, -/turf/open/floor/almayer{ - icon_state = "sterile_green_corner" - }, +/turf/open/floor/almayer/sterile_green_corner, /area/adminlevel/chinook/medical) "Ux" = ( -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook/cryo) +"Uy" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N" + }, +/turf/open/floor/almayer/silvercorner/west, +/area/adminlevel/chinook) "Uz" = ( /obj/structure/surface/rack, /obj/item/clothing/suit/storage/hazardvest, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/obj/item/device/lightreplacer, +/turf/open/floor/almayer/cargo, /area/adminlevel/chinook/sec) "UA" = ( /turf/closed/wall/almayer, @@ -12505,10 +11421,7 @@ /obj/structure/extinguisher_cabinet{ pixel_x = 26 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/east, /area/adminlevel/chinook) "UD" = ( /obj/effect/decal/warning_stripes{ @@ -12517,16 +11430,10 @@ /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/engineering) "UE" = ( -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/engineering) "UF" = ( /obj/structure/machinery/light{ @@ -12535,25 +11442,17 @@ /obj/structure/surface/rack, /obj/item/device/flashlight, /obj/item/clothing/head/welding, -/turf/open/floor/almayer{ - icon_state = "test_floor5" - }, +/turf/open/floor/almayer/test_floor5, /area/adminlevel/chinook/cryo) "UH" = ( /obj/structure/largecrate/random/secure, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/east, /area/adminlevel/chinook/engineering) "UI" = ( /obj/structure/bed/chair/comfy/black{ dir = 8 }, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, +/turf/open/floor/carpet, /area/adminlevel/chinook/offices) "UK" = ( /turf/closed/wall/almayer, @@ -12570,24 +11469,19 @@ /area/adminlevel/chinook) "UO" = ( /obj/structure/filingcabinet, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/adminlevel/chinook/sec) "UQ" = ( -/obj/structure/machinery/optable, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_side" +/obj/structure/machinery/light{ + dir = 1 }, +/obj/structure/machinery/iv_drip, +/turf/open/floor/almayer/sterile_green_side/north, /area/adminlevel/chinook/offices) "UR" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/structure/machinery/computer/sentencing, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/almayer/red/north, /area/adminlevel/chinook/sec) "UU" = ( /obj/structure/surface/rack, @@ -12603,9 +11497,7 @@ /obj/item/clothing/glasses/sunglasses/blindfold, /obj/item/clothing/glasses/sunglasses/blindfold, /obj/item/clothing/glasses/sunglasses/blindfold, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/adminlevel/chinook/sec) "UV" = ( /turf/closed/shuttle/ert{ @@ -12613,22 +11505,20 @@ }, /area/adminlevel/chinook/shuttle/unpowered) "UW" = ( -/obj/structure/closet/secure_closet{ - name = "secure evidence locker"; - req_access_txt = "3" +/obj/structure/surface/table/reinforced/black, +/obj/item/reagent_container/food/drinks/coffeecup/uscm{ + pixel_y = 9; + pixel_x = -11 }, -/obj/item/ammo_magazine/rifle/l42a/abr40, -/turf/open/floor/almayer{ - icon_state = "cargo" +/obj/item/device/flashlight/lamp{ + pixel_y = 12; + pixel_x = 3 }, -/area/adminlevel/chinook/sec) +/turf/open/floor/carpet, +/area/adminlevel/chinook/offices) "UX" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/book/manual/surgery, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_corner" - }, +/obj/structure/machinery/disposal, +/turf/open/floor/almayer/sterile_green_corner/west, /area/adminlevel/chinook/medical) "UY" = ( /obj/vehicle/powerloader, @@ -12638,57 +11528,47 @@ /obj/structure/platform{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/adminlevel/chinook/cargo) "UZ" = ( /obj/structure/machinery/cm_vending/sorted/medical/wall_med{ pixel_y = 25 }, /obj/structure/closet/secure_closet/brig, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/adminlevel/chinook/sec) "Va" = ( /obj/structure/surface/rack, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/adminlevel/chinook/shuttle/unpowered) "Vb" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/almayer/blue/west, /area/adminlevel/chinook) "Vc" = ( /obj/structure/machinery/light{ dir = 4 }, /obj/structure/machinery/disposal, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "sterile_green_corner" +/turf/open/floor/almayer/sterile_green_corner/east, +/area/adminlevel/chinook/medical) +"Vd" = ( +/obj/structure/closet/crate{ + name = "prosthetics printer materials crate" }, +/obj/item/stack/sheet/metal/large_stack, +/obj/item/stack/sheet/metal/large_stack, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook/medical) "Ve" = ( /obj/structure/surface/table/reinforced/black, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/almayer/blue/east, /area/adminlevel/chinook/offices) "Vg" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" }, /obj/effect/decal/cleanable/ash, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "plating_striped" - }, +/turf/open/floor/almayer/plating_striped/west, /area/adminlevel/chinook/engineering) "Vh" = ( /obj/structure/machinery/door/airlock/almayer/security/glass{ @@ -12716,14 +11596,16 @@ }, /turf/open/floor/almayer, /area/adminlevel/chinook/offices) +"Vo" = ( +/turf/closed/shuttle/elevator{ + dir = 9 + }, +/area/adminlevel/chinook/cargo) "Vq" = ( /turf/open/floor/almayer, /area/adminlevel/chinook/cargo) "Vr" = ( -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, +/turf/open/floor/carpet, /area/adminlevel/chinook/event) "Vs" = ( /obj/structure/machinery/door/airlock/almayer/security/glass{ @@ -12736,104 +11618,95 @@ }, /turf/open/floor/almayer, /area/adminlevel/chinook/sec) +"Vt" = ( +/turf/open/floor/kutjevo/plate, +/area/adminlevel/chinook/offices) "Vu" = ( /obj/structure/machinery/disposal, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/almayer/red/north, /area/adminlevel/chinook/sec) "Vv" = ( /obj/structure/closet/emcloset, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook/sec) "Vw" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/almayer/red/north, /area/adminlevel/chinook/sec) +"Vx" = ( +/obj/structure/largecrate/supply/generator, +/turf/open/floor/almayer/plate, +/area/adminlevel/chinook/medical) "Vz" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/west, /area/adminlevel/chinook) "VA" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "redcorner" - }, +/turf/open/floor/almayer/redcorner/east, /area/adminlevel/chinook/sec) "VB" = ( /obj/effect/decal/warning_stripes{ icon_state = "SE-out" }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/almayer/red/east, /area/adminlevel/chinook/sec) "VE" = ( /obj/structure/machinery/light{ dir = 1 }, /obj/structure/machinery/disposal, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook) "VH" = ( /obj/structure/target, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" - }, +/turf/open/floor/wood, /area/adminlevel/chinook/offices) +"VI" = ( +/turf/open/floor/almayer/red/northwest, +/area/adminlevel/chinook/sec) "VJ" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/almayer/red/northeast, /area/adminlevel/chinook/sec) "VK" = ( -/obj/structure/machinery/telecomms/receiver/preset_cent{ - autolinkers = list("chinook"); - freq_listening = list(1353,1357,1359,1355,1469,1471,1354,1342,1344,1235,1340,1214,1358,1356,1236,1240,1449,1451,1453,1455); - listening_level = 9 - }, /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "tcomms" - }, +/obj/structure/machinery/telecomms/receiver, +/turf/open/floor/almayer/tcomms, /area/adminlevel/chinook/engineering) "VN" = ( /obj/item/smallDelivery{ pixel_x = -13; pixel_y = 9 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/cargo) +"VO" = ( +/obj/structure/surface/table/reinforced/almayer_B, +/obj/item/prop/tableflag{ + pixel_x = -9; + pixel_y = 4 + }, +/obj/item/prop/tableflag/uscm{ + pixel_y = 4 + }, +/obj/item/prop/tableflag/uscm2{ + pixel_y = 4; + pixel_x = 9 + }, +/turf/open/floor/wood, +/area/adminlevel/chinook/offices) +"VP" = ( +/obj/structure/machinery/cm_vending/sorted/medical, +/turf/open/floor/almayer/plate, +/area/adminlevel/chinook/medical) "VQ" = ( /obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "emerald" - }, +/turf/open/floor/almayer/emerald, /area/adminlevel/chinook/shuttle) "VR" = ( /obj/structure/toilet{ @@ -12843,10 +11716,7 @@ pixel_x = -10; pixel_y = 13 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/almayer/blue/west, /area/adminlevel/chinook) "VS" = ( /obj/structure/sign/poster{ @@ -12858,28 +11728,34 @@ }, /turf/open/floor/almayer, /area/adminlevel/chinook) +"VT" = ( +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal3"; + pixel_x = -9; + pixel_y = 4 + }, +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal3"; + pixel_x = 6; + pixel_y = 4 + }, +/turf/open/floor/wood, +/area/adminlevel/chinook) "VU" = ( /obj/structure/machinery/door/airlock/almayer/security/glass{ dir = 1; name = "\improper Post-Execution Equipment" }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/sec) "VW" = ( /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side, /area/adminlevel/chinook/medical) "VY" = ( -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/adminlevel/chinook/offices) "Wb" = ( /obj/structure/surface/table/almayer, @@ -12889,19 +11765,29 @@ /obj/item/tool/pen{ pixel_y = 8 }, -/turf/open/floor/almayer{ - icon_state = "sterile_green" - }, +/turf/open/floor/almayer/sterile_green, /area/adminlevel/chinook/medical) -"Wd" = ( +"Wc" = ( /obj/structure/machinery/light{ - dir = 4 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "E" + dir = 1 }, +/obj/structure/surface/table/reinforced/black, +/obj/item/device/binoculars, +/obj/item/device/binoculars, +/obj/item/device/binoculars, +/obj/item/device/binoculars, +/obj/item/device/binoculars, +/obj/item/device/binoculars, +/obj/item/device/binoculars, +/obj/item/device/binoculars, /turf/open/floor/almayer, -/area/adminlevel/chinook/cargo) +/area/adminlevel/chinook) +"Wd" = ( +/obj/structure/sign/poster{ + pixel_y = -32 + }, +/turf/open/floor/almayer/silver/east, +/area/adminlevel/chinook) "Wf" = ( /turf/open/space, /area/space) @@ -12909,19 +11795,13 @@ /obj/effect/decal/warning_stripes{ icon_state = "E" }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/sec) "Wi" = ( /obj/structure/bed/chair/comfy{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "emerald" - }, +/turf/open/floor/almayer/emerald/west, /area/adminlevel/chinook/shuttle) "Wl" = ( /obj/structure/closet/crate, @@ -12933,10 +11813,7 @@ dir = 4 }, /obj/structure/machinery/power/smes, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/engineering) "Wo" = ( /obj/structure/bed/chair/comfy/black{ @@ -12949,10 +11826,7 @@ /turf/open/floor/almayer, /area/adminlevel/chinook) "Wq" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/north, /area/adminlevel/chinook) "Wr" = ( /obj/structure/surface/table/reinforced/almayer_B, @@ -12960,10 +11834,7 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/almayer/red/north, /area/adminlevel/chinook/sec) "Ws" = ( /obj/effect/decal/cleanable/cobweb{ @@ -12975,56 +11846,52 @@ /obj/structure/window/reinforced/ultra, /obj/structure/machinery/door/window/ultra{ dir = 8; - name = "M4RA execution rifles"; + name = "L42A execution rifles"; req_access_txt = "2;3;12;19" }, -/obj/item/weapon/gun/rifle/m4ra, -/obj/item/weapon/gun/rifle/m4ra, -/obj/item/weapon/gun/rifle/m4ra, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/obj/item/weapon/gun/rifle/l42a, +/obj/item/weapon/gun/rifle/l42a, +/obj/item/weapon/gun/rifle/l42a, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/sec) -"Ww" = ( -/obj/structure/closet/fireaxecabinet{ - pixel_x = -32 +"Wt" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 26 }, -/turf/open/floor/almayer, +/turf/open/floor/almayer/orange/east, +/area/adminlevel/chinook/engineering) +"Wu" = ( +/obj/structure/surface/table/reinforced/almayer_B, +/obj/structure/machinery/computer/emails{ + dir = 4; + pixel_x = 2 + }, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/chinook) +"Ww" = ( +/obj/structure/machinery/disposal, +/turf/open/floor/almayer/cargo, /area/adminlevel/chinook) "Wx" = ( -/obj/structure/bed/sofa/south/grey/left, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/obj/structure/machinery/computer/arcade, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook) "Wy" = ( /obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "green" - }, +/turf/open/floor/almayer/green, /area/adminlevel/chinook) "Wz" = ( -/turf/open/floor/almayer{ - dir = 6; - icon_state = "green" - }, +/turf/open/floor/almayer/green/southeast, /area/adminlevel/chinook) "WB" = ( /obj/structure/machinery/cryopod, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/adminlevel/chinook/cryo) "WD" = ( /obj/structure/bed/chair/comfy/blue{ dir = 8 }, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, +/turf/open/floor/carpet, /area/adminlevel/chinook/sec) "WE" = ( /obj/structure/surface/rack, @@ -13044,9 +11911,7 @@ pixel_y = -2 }, /obj/item/tool/wirecutters/clippers, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook) "WF" = ( /turf/closed/wall/almayer, @@ -13056,17 +11921,13 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "test_floor5" - }, +/turf/open/floor/almayer/test_floor5, /area/adminlevel/chinook/engineering) "WI" = ( /obj/structure/surface/rack, /obj/item/storage/firstaid/adv, /obj/item/storage/firstaid/adv, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/adminlevel/chinook/sec) "WJ" = ( /obj/structure/surface/table/almayer, @@ -13075,52 +11936,47 @@ pixel_y = 5 }, /obj/item/storage/box/masks, -/turf/open/floor/almayer{ - icon_state = "sterile_green" - }, +/turf/open/floor/almayer/sterile_green, /area/adminlevel/chinook/sec) "WK" = ( /obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/adminlevel/chinook/engineering) "WL" = ( /obj/structure/window/framed/almayer/hull, /turf/open/floor/plating, /area/adminlevel/chinook/engineering) +"WM" = ( +/obj/structure/closet, +/obj/item/reagent_container/spray/cleaner, +/obj/item/reagent_container/spray/cleaner, +/obj/item/reagent_container/spray/cleaner, +/obj/item/tool/soap, +/obj/item/tool/soap, +/obj/item/tool/soap, +/turf/open/floor/almayer/plate, +/area/adminlevel/chinook/offices) "WN" = ( /obj/structure/machinery/iv_drip, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/adminlevel/chinook/medical) "WO" = ( /obj/structure/reagent_dispensers/fueltank, /obj/effect/spawner/random/tool, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/adminlevel/chinook/engineering) "WP" = ( /obj/structure/machinery/floodlight, /obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/adminlevel/chinook/engineering) "WQ" = ( /obj/structure/bed/chair/comfy, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, +/turf/open/floor/carpet, /area/adminlevel/chinook/event) "WS" = ( /obj/structure/machinery/floodlight, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/adminlevel/chinook/engineering) "WT" = ( /obj/structure/surface/table/almayer, @@ -13129,22 +11985,15 @@ /obj/item/storage/belt/medical/lifesaver/full, /obj/item/device/healthanalyzer, /obj/item/clothing/glasses/hud/health, -/turf/open/floor/almayer{ - icon_state = "sterile_green_corner" - }, +/turf/open/floor/almayer/sterile_green_corner, /area/adminlevel/chinook/medical) "WU" = ( /obj/structure/surface/table/reinforced/black, /obj/item/device/binoculars, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, +/turf/open/floor/carpet, /area/adminlevel/chinook/event) "WV" = ( -/turf/open/floor/almayer{ - icon_state = "cargo_arrow" - }, +/turf/open/floor/almayer/cargo_arrow, /area/adminlevel/chinook/cargo) "WW" = ( /obj/structure/surface/table/almayer, @@ -13158,16 +12007,10 @@ /obj/structure/machinery/cm_vending/sorted/medical/wall_med{ pixel_y = 25 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/north, /area/adminlevel/chinook) "WY" = ( -/turf/open/floor/almayer_hull{ - dir = 6; - icon_state = "outerhull_dir" - }, +/turf/open/floor/almayer_hull/outerhull_dir/southeast, /area/space) "Xa" = ( /obj/structure/surface/table/reinforced/black, @@ -13175,16 +12018,11 @@ pixel_x = 6; pixel_y = 12 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/sec) "Xc" = ( /obj/structure/machinery/portable_atmospherics/powered/pump, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/adminlevel/chinook/engineering) "Xd" = ( /obj/structure/sign/safety/high_voltage{ @@ -13195,17 +12033,15 @@ pixel_x = -15; pixel_y = -7 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/west, /area/adminlevel/chinook/engineering) "Xe" = ( -/obj/structure/machinery/light{ - dir = 4 +/obj/structure/closet/secure_closet/personal, +/obj/structure/sign/poster{ + pixel_y = 32 }, /turf/open/floor/plating/plating_catwalk, -/area/adminlevel/chinook/engineering) +/area/adminlevel/chinook) "Xf" = ( /obj/structure/machinery/door/poddoor/almayer{ id = "chinook_tcomms"; @@ -13220,10 +12056,7 @@ /area/adminlevel/chinook/engineering) "Xg" = ( /obj/structure/closet/emcloset, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/north, /area/adminlevel/chinook) "Xh" = ( /obj/structure/machinery/computer/card{ @@ -13231,35 +12064,23 @@ }, /obj/structure/machinery/light, /obj/structure/surface/table/reinforced/black, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, +/turf/open/floor/carpet, /area/adminlevel/chinook/sec) "Xi" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "emerald" - }, +/turf/open/floor/almayer/emerald/north, /area/adminlevel/chinook/shuttle) "Xj" = ( /obj/structure/machinery/cm_vending/sorted/medical/wall_med{ pixel_y = 25 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/sec) "Xk" = ( /obj/structure/closet/firecloset, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/northeast, /area/adminlevel/chinook) "Xl" = ( /turf/open/floor/plating, @@ -13290,26 +12111,19 @@ pixel_x = 3; pixel_y = 3 }, -/turf/open/floor/almayer{ - icon_state = "sterile_green" - }, +/turf/open/floor/almayer/sterile_green, /area/adminlevel/chinook/medical) "Xq" = ( /obj/effect/decal/warning_stripes{ icon_state = "E" }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook/sec) "Xs" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/structure/machinery/light, /obj/item/tool/pen, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/almayer/red/southeast, /area/adminlevel/chinook/sec) "Xu" = ( /obj/structure/toilet{ @@ -13318,72 +12132,42 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook) "Xv" = ( /obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "silver" - }, +/turf/open/floor/almayer/silver, /area/adminlevel/chinook) "Xw" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "silvercorner" - }, +/turf/open/floor/almayer/silvercorner/east, /area/adminlevel/chinook) "Xx" = ( -/turf/open/floor/almayer{ - icon_state = "blue" - }, +/turf/open/floor/almayer/blue, /area/adminlevel/chinook/offices) "Xz" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/sec) -"XB" = ( -/obj/structure/surface/table/almayer, -/obj/item/ashtray/glass, -/turf/open/floor/almayer, -/area/adminlevel/chinook/cargo) "XC" = ( /obj/structure/bed/chair/office/dark{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook/cargo) "XE" = ( /obj/structure/machinery/cm_vending/sorted/cargo_guns/squad_prep, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/sec) "XH" = ( /turf/closed/wall/almayer/outer, /area/adminlevel/chinook/engineering) "XI" = ( -/turf/open/floor/almayer{ - icon_state = "bluecorner" - }, +/turf/open/floor/almayer/bluecorner, /area/adminlevel/chinook/offices) "XJ" = ( -/obj/structure/machinery/door/airlock/almayer/engineering{ - dir = 1; - name = "\improper Reactor Bay" - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" - }, -/area/adminlevel/chinook/engineering) +/obj/structure/largecrate/supply/medicine/optable, +/turf/open/floor/almayer/plate, +/area/adminlevel/chinook/medical) "XK" = ( /obj/vehicle/powerloader, /obj/structure/platform{ @@ -13393,28 +12177,15 @@ dir = 8 }, /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/adminlevel/chinook/cargo) "XL" = ( /obj/structure/machinery/door/airlock/almayer/security/glass{ dir = 1; name = "\improper Provost Offices" }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/almayer/red/west, /area/adminlevel/chinook/sec) -"XM" = ( -/obj/structure/surface/table/almayer, -/obj/item/storage/backpack/marine{ - pixel_y = 8 - }, -/obj/item/storage/firstaid/regular, -/turf/open/floor/almayer, -/area/adminlevel/chinook/cargo) "XN" = ( /obj/structure/surface/table/reinforced/black, /obj/item/paper{ @@ -13425,10 +12196,7 @@ pixel_x = -4; pixel_y = 6 }, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, +/turf/open/floor/carpet, /area/adminlevel/chinook/sec) "XO" = ( /obj/structure/sign/poster{ @@ -13438,25 +12206,16 @@ pixel_x = 27; serial_number = 11 }, -/obj/structure/machinery/door/airlock/almayer/engineering{ - dir = 1; - name = "\improper Reactor Bay" - }, -/turf/open/floor/plating/plating_catwalk, +/turf/open/floor/almayer/orange/east, /area/adminlevel/chinook/engineering) "XP" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper Observation Lounge" }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook) "XQ" = ( -/turf/open/floor/almayer{ - dir = 6; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/southeast, /area/adminlevel/chinook/cryo) "XR" = ( /obj/structure/machinery/door/airlock/almayer/security/glass{ @@ -13477,9 +12236,7 @@ pixel_x = 12; pixel_y = -26 }, -/turf/open/floor/almayer{ - icon_state = "red" - }, +/turf/open/floor/almayer/red, /area/adminlevel/chinook/sec) "XU" = ( /obj/structure/machinery/door_control{ @@ -13488,34 +12245,28 @@ pixel_y = -25; req_one_access_txt = "2;3;12;19" }, -/turf/open/floor/almayer{ - icon_state = "red" - }, +/turf/open/floor/almayer/red, /area/adminlevel/chinook/sec) +"XW" = ( +/obj/structure/machinery/light, +/turf/open/floor/almayer/red/east, +/area/adminlevel/chinook) "XZ" = ( /obj/structure/machinery/chem_dispenser, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/east, /area/adminlevel/chinook/medical) "Ya" = ( -/obj/structure/machinery/light{ - dir = 4 - }, /obj/effect/decal/warning_stripes{ icon_state = "NE-out" }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" +/obj/structure/sign/safety/hazard{ + pixel_x = 32; + pixel_y = 7 }, +/turf/open/floor/almayer/red/east, /area/adminlevel/chinook/sec) "Yb" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/almayer/red/north, /area/adminlevel/chinook/sec) "Yc" = ( /turf/closed/wall/almayer/outer, @@ -13536,10 +12287,7 @@ icon_state = "E" }, /obj/structure/machinery/light, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/sec) "Yf" = ( /obj/structure/sign/safety/press_area_ag{ @@ -13557,34 +12305,20 @@ dir = 1; name = "\improper EVA Storage" }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/engineering) "Yh" = ( /obj/structure/surface/table/reinforced/black, -/obj/item/device/flashlight/lamp/green{ - pixel_y = 7 - }, /obj/item/reagent_container/food/snacks/monkeyburger{ pixel_x = -5; pixel_y = 5 }, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, +/turf/open/floor/carpet, /area/adminlevel/chinook) "Yi" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/effect/spawner/random/tool, -/obj/item/fuelCell{ - pixel_y = 10 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook/engineering) "Yj" = ( /turf/open/floor/almayer, @@ -13593,47 +12327,39 @@ /obj/structure/platform{ dir = 8 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/cargo) "Ym" = ( /obj/structure/machinery/computer/crew, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "sterile_green_corner" - }, +/turf/open/floor/almayer/sterile_green_corner/east, /area/adminlevel/chinook/medical) +"Yn" = ( +/turf/closed/shuttle/elevator/gears, +/area/adminlevel/chinook/cargo) "Yo" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/storage/fancy/egg_box{ pixel_y = 9 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/adminlevel/chinook/event) +"Yp" = ( +/turf/open/floor/almayer/red/west, +/area/adminlevel/chinook/sec) "Yq" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "cargo_arrow" +/obj/structure/machinery/door/airlock/almayer/command{ + name = "\improper Male Locker Room" }, -/area/adminlevel/chinook/shuttle) +/turf/open/floor/almayer/plate, +/area/adminlevel/chinook) "Yr" = ( -/turf/open/floor/almayer_hull{ - dir = 5; - icon_state = "outerhull_dir" - }, +/turf/open/floor/almayer_hull/outerhull_dir/northeast, /area/space) "Ys" = ( /turf/closed/wall/almayer/reinforced, /area/adminlevel/chinook) "Yt" = ( -/turf/open/floor/almayer_hull{ - dir = 8; - icon_state = "outerhull_dir" - }, +/turf/open/floor/almayer_hull/outerhull_dir/west, /area/space) "Yu" = ( /obj/structure/surface/table/reinforced/almayer_B, @@ -13642,25 +12368,14 @@ /obj/item/clothing/head/welding{ pixel_y = 7 }, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ + pixel_y = 25 }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook/engineering) -"Yw" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/obj/structure/reagent_dispensers/water_cooler/stacks, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_corner" - }, -/area/adminlevel/chinook/medical) "Yx" = ( /obj/structure/machinery/smartfridge/chemistry, -/turf/open/floor/almayer{ - icon_state = "sterile_green" - }, +/turf/open/floor/almayer/sterile_green, /area/adminlevel/chinook/medical) "Yy" = ( /obj/structure/machinery/door/airlock/almayer/security/glass{ @@ -13672,10 +12387,7 @@ id = "chinook_solitary1"; name = "Solitary Cell 1 Shutters" }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/sec) "Yz" = ( /obj/structure/machinery/light{ @@ -13691,18 +12403,13 @@ /obj/structure/sign/poster{ pixel_y = 32 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook/engineering) "YB" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/east, /area/adminlevel/chinook/sec) "YC" = ( /turf/closed/wall/almayer/reinforced, @@ -13712,9 +12419,7 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "test_floor5" - }, +/turf/open/floor/almayer/test_floor5, /area/adminlevel/chinook/engineering) "YF" = ( /obj/structure/prop/almayer/name_stencil{ @@ -13726,9 +12431,7 @@ "YG" = ( /obj/structure/closet/radiation, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/almayer{ - icon_state = "test_floor5" - }, +/turf/open/floor/almayer/test_floor5, /area/adminlevel/chinook/engineering) "YH" = ( /obj/structure/curtain/red, @@ -13741,23 +12444,17 @@ /obj/structure/surface/rack, /obj/effect/spawner/random/tool, /obj/effect/spawner/random/toolbox, -/turf/open/floor/almayer{ - icon_state = "test_floor5" - }, +/turf/open/floor/almayer/test_floor5, /area/adminlevel/chinook/cryo) "YK" = ( /obj/structure/sign/poster{ pixel_y = 32 }, /obj/structure/closet/emcloset, -/turf/open/floor/almayer{ - icon_state = "test_floor5" - }, +/turf/open/floor/almayer/test_floor5, /area/adminlevel/chinook/cryo) "YL" = ( -/turf/open/floor/almayer{ - icon_state = "red" - }, +/turf/open/floor/almayer/red, /area/adminlevel/chinook/sec) "YM" = ( /obj/structure/barricade/handrail/strata, @@ -13765,9 +12462,7 @@ /area/adminlevel/chinook/cargo) "YN" = ( /obj/structure/machinery/recharge_station, -/turf/open/floor/almayer{ - icon_state = "test_floor5" - }, +/turf/open/floor/almayer/test_floor5, /area/adminlevel/chinook/cryo) "YO" = ( /obj/structure/machinery/vending/cola, @@ -13779,10 +12474,7 @@ /area/adminlevel/chinook/medical) "YQ" = ( /obj/structure/machinery/disposal, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/almayer/red/east, /area/adminlevel/chinook/sec) "YR" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/medidoor{ @@ -13790,44 +12482,27 @@ req_access = null; req_one_access = null }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/adminlevel/chinook/medical) "YS" = ( /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/almayer/red/north, /area/adminlevel/chinook/sec) "YT" = ( /obj/structure/machinery/body_scanconsole, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/adminlevel/chinook/medical) "YU" = ( -/obj/structure/machinery/telecomms/allinone{ - autolinkers = list("chinook"); - freq_listening = list(1353,1357,1359,1355,1469,1471,1354,1342,1344,1235,1340,1214,1358,1356,1236,1240,1449,1451,1453,1455); - listening_level = 9; - name = "Chinook Telecommunications Mainframe" - }, -/turf/open/floor/almayer{ - icon_state = "tcomms" - }, +/obj/structure/machinery/telecomms/allinone, +/turf/open/floor/almayer/tcomms, /area/adminlevel/chinook/engineering) "YV" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_10" }, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "silver" - }, +/turf/open/floor/almayer/silver/southwest, /area/adminlevel/chinook) "YX" = ( /obj/structure/machinery/door/airlock/almayer/security/glass{ @@ -13841,16 +12516,11 @@ dir = 1; name = "\improper Provost Offices" }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook/sec) "YZ" = ( /obj/structure/machinery/cm_vending/sorted/medical/marinemed, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/north, /area/adminlevel/chinook/medical) "Za" = ( /obj/structure/machinery/door/airlock/almayer/security/glass{ @@ -13864,47 +12534,60 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, +/turf/open/floor/carpet, /area/adminlevel/chinook/offices) "Zc" = ( /obj/structure/machinery/door/airlock/almayer/medical/glass{ id = "medcryobeds"; id_tag = "medcryobeds"; - name = "Medical Hypersleep Access"; + name = "Medical Equipment Room"; req_access = null; req_one_access = null }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/adminlevel/chinook/medical) +"Zd" = ( +/obj/structure/surface/table/reinforced/black, +/obj/item/device/flashlight/lamp{ + pixel_y = 5; + pixel_x = -8 + }, +/obj/item/paper_bin/uscm{ + pixel_y = 8; + pixel_x = 5 + }, +/obj/item/tool/pen/fountain{ + pixel_x = 5; + pixel_y = 6 + }, +/turf/open/floor/carpet, +/area/adminlevel/chinook/offices) "Zf" = ( /obj/structure/sign/poster{ pixel_y = -32 }, -/turf/open/floor/almayer{ - icon_state = "silver" - }, +/turf/open/floor/almayer/silver, /area/adminlevel/chinook/cryo) "Zg" = ( /obj/structure/surface/table/almayer, -/obj/item/reagent_container/glass/beaker/cryoxadone, +/obj/item/reagent_container/glass/beaker/cryoxadone{ + pixel_x = 7; + pixel_y = 10 + }, /obj/item/reagent_container/glass/beaker/cryoxadone, /obj/structure/sign/nosmoking_1{ pixel_y = 30 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/north, /area/adminlevel/chinook/medical) "Zh" = ( /obj/structure/surface/table/reinforced/black, /obj/item/folder/black, -/turf/open/floor/almayer, +/obj/item/prop/tableflag{ + pixel_x = -9; + pixel_y = 10 + }, +/turf/open/floor/kutjevo, /area/adminlevel/chinook/offices) "Zi" = ( /turf/open/floor/plating/plating_catwalk, @@ -13915,23 +12598,15 @@ /obj/structure/machinery/computer/card{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/adminlevel/chinook/sec) "Zk" = ( -/turf/open/floor/almayer{ - desc = "There's a hatch above it, presumably to allow pods to drop in."; - icon_state = "test_floor4"; - name = "pod landing floor" - }, +/turf/open/floor/almayer/pod_landing_floor, /area/adminlevel/chinook) "Zl" = ( /obj/structure/machinery/light, /obj/structure/closet/secure_closet/brig, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/adminlevel/chinook/sec) "Zm" = ( /obj/structure/machinery/light{ @@ -13942,121 +12617,86 @@ "Zn" = ( /obj/item/reagent_container/food/drinks/bottle/whiskey, /obj/structure/surface/table/reinforced/black, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, +/turf/open/floor/carpet, /area/adminlevel/chinook/sec) "Zo" = ( /obj/structure/machinery/medical_pod/bodyscanner{ dir = 8 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/east, /area/adminlevel/chinook/medical) "Zp" = ( /obj/structure/machinery/door/poddoor/almayer{ dir = 4; name = "\improper Airlock" }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/engineering) "Zq" = ( /obj/structure/machinery/cm_vending/sorted/medical/blood, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/east, /area/adminlevel/chinook/medical) "Zr" = ( /obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/engineering) "Zs" = ( /obj/structure/machinery/constructable_frame, /turf/open/floor/almayer, /area/adminlevel/chinook/engineering) "Zt" = ( -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/light_grey_single_wide_up_to_down, /area/adminlevel/chinook/shuttle/unpowered) "Zu" = ( -/turf/open/floor/almayer_hull{ - dir = 1; - icon_state = "outerhull_dir" - }, +/turf/open/floor/almayer_hull/outerhull_dir/north, /area/space) "Zv" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "emeraldcorner" - }, +/turf/open/floor/almayer/emeraldcorner/west, /area/adminlevel/chinook/shuttle) "Zw" = ( /obj/structure/closet/secure_closet/military_police, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/almayer/red/west, /area/adminlevel/chinook/sec) "Zx" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/north, /area/adminlevel/chinook/engineering) "Zy" = ( /obj/structure/surface/table/reinforced/black, /obj/item/device/flashlight/lamp/green, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, +/turf/open/floor/carpet, /area/adminlevel/chinook/offices) "Zz" = ( /obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "orange" - }, +/turf/open/floor/almayer/orange, /area/adminlevel/chinook/engineering) "ZA" = ( /obj/structure/sign/safety/suit_storage{ pixel_y = 25 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/north, /area/adminlevel/chinook/engineering) "ZB" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orangecorner" - }, +/turf/open/floor/almayer/orangecorner/north, /area/adminlevel/chinook/engineering) "ZE" = ( /obj/structure/bed/chair/office/dark, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/adminlevel/chinook/medical) +"ZF" = ( +/obj/structure/sign/prop1{ + pixel_y = 32 + }, +/obj/structure/closet/secure_closet/commander, +/turf/open/floor/wood, +/area/adminlevel/chinook/offices) "ZH" = ( /obj/structure/machinery/power/port_gen/pacman, -/obj/item/tool/weldingtool, +/obj/item/tool/weldingtool/largetank, /obj/structure/sign/safety/high_voltage{ pixel_y = 25 }, @@ -14064,45 +12704,31 @@ pixel_x = 12; pixel_y = 25 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/engineering) "ZI" = ( -/turf/open/floor/almayer{ - icon_state = "silver" - }, +/turf/open/floor/almayer/silver, /area/adminlevel/chinook) "ZJ" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "redcorner" - }, +/turf/open/floor/almayer/redcorner/north, /area/adminlevel/chinook/sec) "ZK" = ( /obj/structure/machinery/cryo_cell, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_side" +/obj/effect/decal/medical_decals{ + icon_state = "cryotop" }, +/turf/open/floor/almayer/sterile_green_side/north, /area/adminlevel/chinook/medical) "ZL" = ( /obj/structure/machinery/light{ dir = 1 }, /obj/structure/machinery/cm_vending/sorted/tech/tool_storage, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/north, /area/adminlevel/chinook/engineering) "ZM" = ( /obj/structure/machinery/power/port_gen/pacman/super, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/engineering) "ZN" = ( /obj/effect/decal/warning_stripes{ @@ -14112,47 +12738,39 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/chinook/engineering) +"ZO" = ( +/obj/structure/surface/table/almayer, +/obj/structure/machinery/reagentgrinder{ + pixel_y = 3 + }, +/obj/item/device/analyzer/plant_analyzer, +/turf/open/floor/almayer/green/north, +/area/adminlevel/chinook/event) "ZP" = ( /obj/structure/machinery/vending/snack, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/chinook/sec) "ZQ" = ( /turf/open/floor/almayer, /area/adminlevel/chinook/sec) "ZR" = ( -/turf/open/floor/almayer{ - icon_state = "sterile_green" - }, +/turf/open/floor/almayer/sterile_green, /area/adminlevel/chinook/medical) "ZS" = ( /obj/structure/bed/sofa/south/grey/left, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/almayer/blue/north, /area/adminlevel/chinook/offices) "ZT" = ( /obj/effect/decal/warning_stripes{ icon_state = "E" }, /obj/structure/reagent_dispensers/fueltank/custom, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "plating_striped" - }, +/turf/open/floor/almayer/plating_striped/east, /area/adminlevel/chinook/engineering) "ZV" = ( -/turf/open/floor/almayer/uscm/directional{ - dir = 8; - icon_state = "logo_c" - }, +/turf/open/floor/almayer/uscm/directional/east, /area/adminlevel/chinook/shuttle) "ZW" = ( /obj/structure/surface/table/almayer, @@ -14163,6 +12781,9 @@ pixel_x = 6; pixel_y = 4 }, +/obj/item/stack/cable_coil{ + pixel_x = -8 + }, /turf/open/floor/plating/plating_catwalk, /area/adminlevel/chinook/engineering) "ZX" = ( @@ -14170,9 +12791,7 @@ /turf/open/floor/almayer, /area/adminlevel/chinook/engineering) "ZY" = ( -/turf/open/floor/almayer{ - icon_state = "redfull" - }, +/turf/open/floor/almayer/redfull, /area/adminlevel/chinook/sec) "ZZ" = ( /turf/open/floor/almayer, @@ -14381,34 +13000,10 @@ oi oi oi oi -Jc -Yt -Yt -Yt -Yt -Yt -Yt -Yt -Yt -Yt -Yt -ai oi oi oi oi -Jc -Yt -Yt -Yt -Yt -Yt -Yt -Yt -Yt -Yt -Yt -ai oi oi oi @@ -14431,8 +13026,6 @@ oi oi oi oi -"} -(3,1,1) = {" oi oi oi @@ -14457,6 +13050,8 @@ oi oi oi oi +"} +(3,1,1) = {" oi oi oi @@ -14508,34 +13103,10 @@ oi oi oi oi -Zu -Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk -af oi oi oi oi -Zu -Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk -af oi oi oi @@ -14558,8 +13129,6 @@ oi oi oi oi -"} -(4,1,1) = {" oi oi oi @@ -14608,6 +13177,8 @@ oi oi oi oi +"} +(4,1,1) = {" oi oi oi @@ -14635,34 +13206,6 @@ oi oi oi oi -Zu -Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk -al -al -al -al -al -al -Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk -af oi oi oi @@ -14685,8 +13228,6 @@ oi oi oi oi -"} -(5,1,1) = {" oi oi oi @@ -14762,34 +13303,10 @@ oi oi oi oi -Zu -Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk -af oi -Zu -af +"} +(5,1,1) = {" oi -Zu -Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk -af oi oi oi @@ -14812,8 +13329,6 @@ oi oi oi oi -"} -(6,1,1) = {" oi oi oi @@ -14889,34 +13404,7 @@ oi oi oi oi -Yr -au -au -au -au -au -au -au -au -au -au -WY -oi -Zu -af oi -Yr -au -au -au -au -au -au -au -au -au -au -WY oi oi oi @@ -14939,12 +13427,12 @@ oi oi oi oi -"} -(7,1,1) = {" oi oi oi oi +"} +(6,1,1) = {" oi oi oi @@ -15028,10 +13516,23 @@ oi oi oi oi +Jc +Yt +Yt +Yt +ai oi -Zu -af +Jc +Yt +Yt +Yt +ai oi +Jc +Yt +Yt +Yt +ai oi oi oi @@ -15057,6 +13558,8 @@ oi oi oi oi +"} +(7,1,1) = {" oi oi oi @@ -15066,8 +13569,6 @@ oi oi oi oi -"} -(8,1,1) = {" oi oi oi @@ -15142,35 +13643,26 @@ oi oi oi oi +Zu +Pk +Pk +Pk +af oi -Jc -Yt -Yt -Yt -Yt -Yt -Yt -Yt -Yt -Yt -Yt -ai +Zu +Pk +Pk +Pk +af oi Zu +Pk +Pk +Pk af oi -Jc -Yt -Yt -Yt -Yt -Yt -Yt -Yt -Yt -Yt -Yt -ai +oi +oi oi oi oi @@ -15194,7 +13686,15 @@ oi oi oi "} -(9,1,1) = {" +(8,1,1) = {" +oi +oi +oi +oi +oi +oi +oi +oi oi oi oi @@ -15274,26 +13774,15 @@ Zu Pk Pk Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk -af -oi -Zu af oi Zu Pk Pk Pk -Pk -Pk -Pk -Pk +af +oi +Zu Pk Pk Pk @@ -15320,25 +13809,11 @@ oi oi oi oi -"} -(10,1,1) = {" -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi oi oi oi +"} +(9,1,1) = {" oi oi oi @@ -15394,6 +13869,31 @@ oi oi oi oi +Jc +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +ai oi oi oi @@ -15401,26 +13901,15 @@ Zu Pk Pk Pk +af +oi +Zu Pk Pk Pk -Pk -Pk -Pk -Pk -al -al -al -al -al -al -Pk -Pk -Pk -Pk -Pk -Pk -Pk +af +oi +Zu Pk Pk Pk @@ -15447,11 +13936,11 @@ oi oi oi oi -"} -(11,1,1) = {" oi oi oi +"} +(10,1,1) = {" oi oi oi @@ -15496,24 +13985,6 @@ oi oi oi oi -Jc -Yt -Yt -Yt -Yt -Yt -Yt -Yt -Yt -Yt -Yt -Yt -Yt -Yt -Yt -Yt -Yt -ai oi oi oi @@ -15524,30 +13995,48 @@ oi oi oi oi -Zu -Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk -af oi Zu +al +al +SP +fu +fu +fu +SP +SP +fu +fu +fu +SP +SP +fu +fu +SP +SP +fu +fu +fu +SP +SP +SP af oi +oi +oi Zu Pk Pk Pk +af +oi +Zu Pk Pk Pk -Pk +af +oi +Zu Pk Pk Pk @@ -15574,8 +14063,11 @@ oi oi oi oi +oi +oi +oi "} -(12,1,1) = {" +(11,1,1) = {" oi oi oi @@ -15623,62 +14115,62 @@ oi oi oi oi -Zu -al -al -al -al -al -al -al -al -al -al -al -al -al +Jc +Yt +Yt +Yt +Yt +Yt +Yt +Yt al al al +SP +Wq +qZ +ZI +Tl +PX +ZZ +ek +gK +gK +bi +gK +gK +gK +gK +gK +gK +gK +gK +ZZ +SP af oi oi oi +Zu +Pk +Pk +Pk +af oi -oi -oi -oi -oi -oi -oi -Yr -au -au -au -au -au -au -au -au -au -au -WY +Zu +Pk +Pk +Pk +af oi Zu +Pk +Pk +Pk af oi -Yr -au -au -au -au -au -au -au -au -au -au -WY +oi +oi oi oi oi @@ -15702,7 +14194,7 @@ oi oi oi "} -(13,1,1) = {" +(12,1,1) = {" oi oi oi @@ -15752,27 +14244,57 @@ oi oi Zu al -SP -SP -SP -SP -SP -SP -SP -SP -SP -SP al al al al al +al +al +al +al +SP +Wq +qZ +ZZ +ow +lO +ZZ +CF +xq +wX +wX +wX +wX +wX +wX +wX +wX +wX +to +bY +fu af oi oi oi +Zu +Pk +Pk +Pk +af oi +Zu +Pk +Pk +Pk +af oi +Zu +Pk +Pk +Pk +af oi oi oi @@ -15791,8 +14313,6 @@ oi oi oi oi -Zu -af oi oi oi @@ -15800,6 +14320,8 @@ oi oi oi oi +"} +(13,1,1) = {" oi oi oi @@ -15828,8 +14350,6 @@ oi oi oi oi -"} -(14,1,1) = {" oi oi oi @@ -15849,8 +14369,59 @@ oi oi oi oi +Zu +al +SP +SP +SP +SP +SP +SP +SP +SP +SP +SP +Wq +qZ +ZZ +ZZ +lO +ZZ +CF +pv +pX +pX +pX +pX +pX +pX +BJ +pX +pX +nk +bY +fu +af +oi +oi +oi +Zu +Pk +Pk +Pk +af oi +Zu +Pk +Pk +Pk +af oi +Zu +Pk +Pk +Pk +af oi oi oi @@ -15876,25 +14447,23 @@ oi oi oi oi +"} +(14,1,1) = {" +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi oi -Zu -al -SP -pk -uz -wl -wl -ah -AP -ah -ah -SP -al -al -al -al -al -af oi oi oi @@ -15916,18 +14485,6 @@ Yt Yt Yt Yt -ai -oi -Zu -af -oi -Jc -Yt -Yt -Yt -Yt -Yt -Yt Yt Yt Yt @@ -15939,11 +14496,59 @@ oi oi oi oi +Zu +al +SP +pk +uz +wl +wl +ah +AP +ah +ah +SP +Wq +qZ +ZZ +Tl +lO +qZ +qv +Pe +pX +pX +pX +pX +pX +pX +pX +pX +pX +nk +bY +fu +af oi oi oi +Zu +Pk +Pk +Pk +af oi +Zu +Pk +Pk +Pk +af oi +Zu +Pk +Pk +Pk +af oi oi oi @@ -15955,12 +14560,6 @@ oi oi oi oi -"} -(15,1,1) = {" -oi -oi -oi -oi oi oi oi @@ -15975,6 +14574,8 @@ oi oi oi oi +"} +(15,1,1) = {" oi oi oi @@ -15997,7 +14598,25 @@ oi oi oi oi -Jc +Yc +Yc +Yc +Yc +Yc +Yc +Yc +Xm +Xm +Xm +Yc +Yc +Yc +Yc +Yc +Yc +Yc +al +al Yt Yt Yt @@ -16016,46 +14635,43 @@ ag ag EZ SP -al -al -al -al -al +Wq +qZ +ZZ +Tl +lO +qZ +Ep +mC +pX +pX +pX +pX +qu +pX +pX +pX +pX +nk +bY +SP af oi oi oi -oi -oi -oi -oi -oi -oi -oi Zu Pk Pk Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk -af -oi -Zu af oi Zu Pk Pk Pk -Pk -Pk -Pk -Pk +af +oi +Zu Pk Pk Pk @@ -16082,26 +14698,11 @@ oi oi oi oi -"} -(16,1,1) = {" -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi oi oi oi +"} +(16,1,1) = {" oi oi oi @@ -16124,7 +14725,25 @@ oi oi oi oi -Zu +Yc +NZ +AD +AD +AD +qd +jF +sr +vl +Xx +jF +NZ +AD +AD +AD +qd +Yc +al +al al al al @@ -16143,46 +14762,43 @@ ag ag vn SP -al -al -al -al -al +Wq +qZ +ZZ +ow +lO +ZZ +CF +pv +pX +BJ +pX +pX +pX +pX +pX +pX +pX +nk +fL +SP af oi oi oi -oi -oi -oi -oi -oi -oi -oi Zu Pk Pk Pk +af +oi +Zu Pk Pk Pk -Pk -Pk -Pk -Pk -al -al -al -al -al -al -Pk -Pk -Pk -Pk -Pk -Pk -Pk +af +oi +Zu Pk Pk Pk @@ -16209,26 +14825,11 @@ oi oi oi oi -"} -(17,1,1) = {" -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi oi oi oi +"} +(17,1,1) = {" oi oi oi @@ -16251,74 +14852,84 @@ oi oi oi oi -Zu +Yc +Fx +DS +TJ +DS +Fx +jF +eu +Zi +eN +jF +Fx +DS +TJ +DS +Fx +Yc +al +al al SP -vD -vD -vD -vD -vD -vD -vD +Ys +Ys +Ys +Ys +Ys +Ys +Ys fu uD -vD -vD -vD -vD +Ys +Ys +Ys +Ys uD -vD -SP -SP -SP -SP +Ys +SP +Wq +qZ +ZZ +ZZ +lO +ZZ +CF +xf +eO +eO +eO +eO +eO +eO +mC +gM +eO +mD +bY SP -al -al -Yt -Yt -Yt -Yt -Yt -Yt -Yt -ai -oi -oi -Zu -Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk -af -oi -Zu -af -oi -Zu -Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk af oi oi oi +Yr +au +al +au +WY oi +Yr +au +al +au +WY oi +Yr +au +al +au +WY oi oi oi @@ -16336,18 +14947,6 @@ oi oi oi oi -"} -(18,1,1) = {" -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi oi oi oi @@ -16356,6 +14955,8 @@ oi oi oi oi +"} +(18,1,1) = {" oi oi oi @@ -16378,7 +14979,25 @@ oi oi oi oi -Zu +Yc +HT +TJ +TJ +TJ +Pw +Pw +sr +Zi +vl +Pw +Pw +TJ +TJ +TJ +HT +Yc +al +al al SP mn @@ -16400,60 +15019,42 @@ fu Wq qZ ZI -SP -al -al -al -al -al -al -al -al -al +Tl +lO +Tr +Tj +Vb +Vb +Vb +oG +Vb +Vb +gj +HA +eq +Ry +Vb +ZZ +fu af oi oi -Yr -au -au -au -au -au -au -au -au -au -au -WY -oi -Zu -af -oi -Yr -au -au -au -au -au -au -au -au -au -au -WY oi oi oi +al oi oi oi oi oi +al oi oi oi oi oi +al oi oi oi @@ -16463,8 +15064,6 @@ oi oi oi oi -"} -(19,1,1) = {" oi oi oi @@ -16483,6 +15082,8 @@ oi oi oi oi +"} +(19,1,1) = {" oi oi oi @@ -16505,7 +15106,25 @@ oi oi oi oi -Zu +Yc +HT +TJ +TJ +TJ +TJ +TJ +sr +Zi +vl +TJ +TJ +TJ +TJ +TJ +HT +Yc +al +al al SP mo @@ -16527,42 +15146,42 @@ fu Wq qZ Xv -SP -SP -fu -fu -fu -fu +WF +WF +WF +Tl +Tl +Tl +Tl +WF +WF +ZZ +ZZ +qZ +qZ +ZZ +ZZ +ZZ fu -SP -SP al -af -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -Zu -af -oi -oi -oi -oi -oi -oi -oi -oi +Yt +Yt +Yt +Yt +Yt +al +Yt +Yt +Yt +Yt +Yt +al +Yt +Yt +Yt +Yt +Yt +al oi oi oi @@ -16614,25 +15233,25 @@ oi oi oi oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -Zu +Yc +HT +TJ +TJ +TJ +TJ +TJ +sr +Zi +vl +TJ +TJ +TJ +TJ +TJ +HT +Yc +al +al al SP mv @@ -16651,63 +15270,45 @@ Be ZZ Fg Ys -Wq +lz qZ ZI -lO -SP +WF OE wz +wz vA oM sZ vJ -SP -al -af -oi -oi -Jc -Yt -Yt -Yt -Yt -Yt -Yt -Yt -Yt -Yt -Yt -ai -oi -Zu -af -oi -Jc -Yt -Yt -Yt -Yt -Yt -Yt -Yt -Yt -Yt -Yt -ai -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi +WF +cT +ZZ +ZZ +ZZ +ZZ +ZZ +ZZ +fu +al +au +au +au +au +au +al +au +au +au +au +au +al +au +au +au +au +au +al oi oi oi @@ -16717,8 +15318,6 @@ oi oi oi oi -"} -(21,1,1) = {" oi oi oi @@ -16737,6 +15336,8 @@ oi oi oi oi +"} +(21,1,1) = {" oi oi oi @@ -16759,7 +15360,25 @@ oi oi oi oi -Zu +Yc +HT +TJ +TJ +TJ +TJ +TJ +sr +Zi +vl +TJ +TJ +TJ +TJ +TJ +HT +Yc +al +al al SP ZZ @@ -16772,8 +15391,8 @@ ZZ ZZ qZ UN -WF -Oe +Ys +yR Be ZZ Ff @@ -16781,62 +15400,42 @@ GH ZZ ZZ ZI -Sx Tl qb wz +wz OY OY OY wz -fu -al -af -oi -oi -Zu -Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk -af -oi -Zu -af -oi -Zu -Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk +ow +qZ +lO +qZ +qZ +lO +qZ +lO +SP af oi oi oi oi oi +al oi oi oi oi oi +al oi oi oi oi oi +al oi oi oi @@ -16844,10 +15443,6 @@ oi oi oi oi -"} -(22,1,1) = {" -oi -oi oi oi oi @@ -16868,6 +15463,8 @@ oi oi oi oi +"} +(22,1,1) = {" oi oi oi @@ -16886,7 +15483,29 @@ oi oi oi oi -Zu +Jc +Yt +Yt +Yt +Yc +Fx +Fn +TJ +Fn +Fx +jF +eu +Zi +eN +jF +Fx +Fn +TJ +Fn +Fx +Yc +al +al al SP ZZ @@ -16899,61 +15518,53 @@ ZZ ZZ qZ ZZ -WF +Ys yV Be ZZ Ff -GH +ZZ ZZ ZZ ZI -Sx Tl -Wx +fA +wz wz Ow Ow OY wz -fu -al -af -oi -oi -Zu -Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk -al -al -al -al -al -al -Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk +ZZ +qZ +lO +qZ +qZ +lO +qZ +KY +SP af oi oi oi +Jc +Yt +al +Yt +ai oi +Jc +Yt +al +Yt +ai oi +Jc +Yt +al +Yt +ai oi oi oi @@ -16971,22 +15582,6 @@ oi oi oi oi -"} -(23,1,1) = {" -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi oi oi oi @@ -16995,6 +15590,8 @@ oi oi oi oi +"} +(23,1,1) = {" oi oi oi @@ -17015,6 +15612,28 @@ oi oi Zu al +al +al +Yc +MF +AD +AD +AD +rp +jF +sr +Zi +Xx +jF +MF +AD +AD +AD +rp +Yc +al +al +al SP mn mn @@ -17035,43 +15654,40 @@ Ys Wq qZ ZI -KJ Tl -Ou +Wx wz +wV wB Yh -OY +gw wz fu -al +rK +ZZ +ZZ +Tr +ZZ +ZZ +Jp +SP af oi oi +oi Zu Pk Pk Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk -af -oi -Zu af oi Zu Pk Pk Pk -Pk -Pk -Pk -Pk +af +oi +Zu Pk Pk Pk @@ -17098,12 +15714,11 @@ oi oi oi oi -"} -(24,1,1) = {" -oi oi oi oi +"} +(24,1,1) = {" oi oi oi @@ -17118,30 +15733,34 @@ oi oi oi oi -Jc -Yt -Yt -Yt -Yt -Yt -Yt -Yt -Yt -Yt -Yt -Yt -Yt -Yt -Yt -Yt -Yt -ai oi oi oi oi Zu al +al +Yc +Yc +jF +jF +jF +jF +jF +jF +sr +Zi +Xx +jF +jF +jF +jF +jF +Yc +Yc +al +al +al SP mo mo @@ -17163,46 +15782,46 @@ Wq qZ ZI WF -WF VE wz -RZ -RZ -OY -zd +wV +vt +Sh +gw +wz fu -al +WF +Yq +WF +WF +WF +mZ +WF +SP af oi oi -Yr -au -au -au -au -au -au -au -au -au -au -WY oi Zu +Pk +Pk +Pk +af +oi +Zu +Pk +Pk +Pk +af +oi +Zu +Pk +Pk +Pk af oi -Yr -au -au -au -au -au -au -au -au -au -au -WY +oi +oi oi oi oi @@ -17248,27 +15867,27 @@ oi Zu al al +Yc +aE +xY +Ck +Gz +HG +Ci +jF +sL +vl +Xx +jF +IY +RQ +HL +oy +Yc al al al al -al -al -al -al -al -al -al -al -al -al -af -oi -oi -oi -oi -Zu -al SP mv mv @@ -17293,40 +15912,40 @@ KM XP wz wz +RZ +RZ OY -OY -OY -tw -fu -al +wz +WF +AY +lO +dK +WF +AY +lO +dK +SP af oi oi oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi Zu +Pk +Pk +Pk af oi +Zu +Pk +Pk +Pk +af oi -oi -oi -oi -oi -oi -oi -oi -oi +Zu +Pk +Pk +Pk +af oi oi oi @@ -17376,39 +15995,39 @@ Zu al al Yc +iF +xY +Ck +Gz +Em +dl +jF +sr +Zi +vl +cY +vl +Zi +Zi +Uk Yc -Yc -Yc -Yc -Yc -Yc -Yc -al -al al al al al -af -oi -oi -oi -oi -Zu -al Yc -xi -xi -xi -xi -xi -xi -xi +YC +YC +YC +YC +YC +YC +YC Xm Xm -xi -xi -jF +YC +YC +YC Xm Dt YC @@ -17423,40 +16042,40 @@ wz OY OY OY -Ep -fu -al +lS +WF +Xe +qZ +dK +WF +dK +lO +dK +SP af oi oi -Jc -Yt -Yt -Yt -Yt -Yt -Yt -Yt -Yt -Yt -Yt -ai oi Zu +Pk +Pk +Pk af oi -Jc -Yt -Yt -Yt -Yt -Yt -Yt -Yt -Yt -Yt -Yt -ai +Zu +Pk +Pk +Pk +af +oi +Zu +Pk +Pk +Pk +af +oi +oi +oi oi oi oi @@ -17503,31 +16122,31 @@ Zu al al Yc -aE Et Et Et -Pw -dl +Et +Em +ME +jF +sr +vl +Xx +jF +Ro +NV +zJ +zJ Yc al al al al -al -al -al -Yt -Yt -Yt -Yt -al -al Yc vl vl vl -pt +Pi jF rU Qm @@ -17549,37 +16168,34 @@ LN wV Cd Mj -ag -wz +vA +yT +WF +dK +lO +KJ +WF +tw +lO +KJ SP -al af oi oi +oi Zu Pk Pk Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk -af -oi -Zu af oi Zu Pk Pk Pk -Pk -Pk -Pk -Pk +af +oi +Zu Pk Pk Pk @@ -17606,6 +16222,9 @@ oi oi oi oi +oi +oi +oi "} (28,1,1) = {" oi @@ -17634,18 +16253,18 @@ vI bD vI Et -vl +Em dp +jF +sr +Zi +Xx +jF +jF +jF +jF +er Yc -Yc -Yc -Yc -Yc -Yc -Yc -Yc -al -al al al al @@ -17653,17 +16272,17 @@ al Yc mz mz -vl +Zi vl PW sr XI RU -uN +xa RU RU RU -uN +xa RU YC GJ @@ -17671,6 +16290,14 @@ Wq qZ ZI lO +WF +WF +WF +WF +WF +WF +WF +SP SP SP SP @@ -17679,34 +16306,23 @@ SP SP SP SP -al af oi oi +oi Zu Pk Pk Pk +af +oi +Zu Pk Pk Pk -Pk -Pk -Pk -Pk -al -al -al -al -al -al -Pk -Pk -Pk -Pk -Pk -Pk -Pk +af +oi +Zu Pk Pk Pk @@ -17733,6 +16349,9 @@ oi oi oi oi +oi +oi +oi "} (29,1,1) = {" oi @@ -17761,26 +16380,26 @@ aJ bF di Et -vl +Em ds jF -eL +eu Zi Xx jF Am go +jF +WM Yc al al al al -al -al Yc mF nt -vl +Zi vl vl sr @@ -17792,7 +16411,7 @@ jF jF jF jF -jF +YC YC Wq ZZ @@ -17807,33 +16426,30 @@ QT QT SP al -af +al +au +au +au +au +au +au +WY +oi oi oi Zu Pk Pk Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk af oi Zu -af -oi -Zu -Pk -Pk -Pk -Pk Pk Pk Pk +af +oi +Zu Pk Pk Pk @@ -17860,6 +16476,9 @@ oi oi oi oi +oi +oi +oi "} (30,1,1) = {" oi @@ -17888,23 +16507,23 @@ aU bG ck Et -vl -vl +Em +Vt dU vl Zi Xx jF fx -vl -Yc -Yc +Zi +jF +jF Yc Xm Xm Xm Yc -jF +Yc mH mH vl @@ -17924,7 +16543,7 @@ YC Gk ZZ ZI -Nu +eW Tl OG ZZ @@ -17937,34 +16556,34 @@ al af oi oi -Yr -au -au -au -au -au -au -au -au -au -au -WY +oi +oi +oi +oi +oi +oi +oi oi Zu +Pk +Pk +Pk af oi -Yr -au -au -au -au -au -au -au -au -au -au -WY +Zu +Pk +Pk +Pk +af +oi +Zu +Pk +Pk +Pk +af +oi +oi +oi oi oi oi @@ -18015,15 +16634,15 @@ GX GX GX Et -vl -dw +Em +bq jF ex vl vl fq vl -vl +Zi jF hp sr @@ -18032,9 +16651,9 @@ aM aA kM jF -cG -Et -Et +eo +uq +uq VH Ix sr @@ -18072,23 +16691,23 @@ oi oi oi oi -oi -oi -oi -oi -oi Zu +Pk +Pk +Pk af oi +Zu +Pk +Pk +Pk +af oi -oi -oi -oi -oi -oi -oi -oi -oi +Zu +Pk +Pk +Pk +af oi oi oi @@ -18138,25 +16757,25 @@ al al al Yc -aW +aE Et Et Et -vl +CA xR jF sr Zi -Xx +ug jF jF jF jF hq sr -Et -Et -Et +uq +uq +uq Xx jF mI @@ -18190,35 +16809,35 @@ fu al af oi -oi -Jc -Yt -Yt -Yt -Yt -Yt -Yt -Yt -Yt -Yt -Yt -ai +oi +oi +oi +oi +oi +oi +oi +oi +oi +Zu +Pk +Pk +Pk +af +oi +Zu +Pk +Pk +Pk +af oi Zu +Pk +Pk +Pk af oi -Jc -Yt -Yt -Yt -Yt -Yt -Yt -Yt -Yt -Yt -Yt -ai +oi +oi oi oi oi @@ -18281,7 +16900,7 @@ vl jF hB sr -xY +uu iO Ns Xx @@ -18291,7 +16910,7 @@ qj qj pB jF -eL +eu sC jF dw @@ -18300,7 +16919,7 @@ xu zE Bj DH -vl +tJ YC Wq qZ @@ -18318,34 +16937,34 @@ al af oi oi -Zu -Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk -af oi -Zu -af oi -Zu -Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk -af +oi +oi +oi +oi +oi +oi +Yr +au +au +au +WY +oi +Yr +au +au +au +WY +oi +Yr +au +au +au +WY +oi +oi +oi oi oi oi @@ -18403,12 +17022,12 @@ sr Zi eN jF -fy +JM gs jF hC sr -xY +uu iV Ns eN @@ -18445,34 +17064,34 @@ al af oi oi -Zu -Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk -al -al -al -al -al -al -Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk -af +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi oi oi oi @@ -18516,8 +17135,8 @@ oi Zu al al -Xm -zJ +Yc +RA Et qj qj @@ -18535,21 +17154,21 @@ jF jF hD sr -xY -Ck +uu +bv Ns Xx jF mU nv qj -Et +kf Ix sr Xx Xm vb -nW +wr Vz Vz Vz @@ -18572,34 +17191,34 @@ al af oi oi -Zu -Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk -af oi -Zu -af oi -Zu -Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk -af +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi oi oi oi @@ -18656,23 +17275,23 @@ jF sr vl vl -Pl +EG vl vl jF hG sr -Et -Et -Et +uq +uq +uq Xx jF mW EB qj -Et +uq jF -sr +fm Xx Xm Wq @@ -18686,8 +17305,8 @@ qZ ZZ ZZ ZI -gl -Tl +aW +WF Ph PT QU @@ -18699,34 +17318,34 @@ al af oi oi -Yr -au -au -au -au -au -au -au -au -au -au -WY oi -Zu -af oi -Yr -au -au -au -au -au -au -au -au -au -au -WY +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi oi oi oi @@ -18782,9 +17401,9 @@ Et jF sr Zi -Xx +If jF -fy +JM gs jF hI @@ -18797,7 +17416,7 @@ jF mY ny qj -Et +uq PW vl Xx @@ -18808,7 +17427,7 @@ jY zH zH zH -tY +Ft zH zH zH @@ -18839,8 +17458,8 @@ oi oi oi oi -Zu -af +oi +oi oi oi oi @@ -18907,7 +17526,7 @@ GX qj dD jF -ZS +sr Zi Xx jF @@ -18922,9 +17541,9 @@ Ix jF jF nd -Et -Et -Et +uq +uq +uq vl vl eN @@ -18932,12 +17551,12 @@ YC Wq qZ ZI -zW -zW -zW -zW -zW -zW +UK +UK +UK +UK +UK +UK UK UK La @@ -18946,7 +17565,7 @@ Pn PY UK SI -Us +ge Wz SP al @@ -18966,26 +17585,6 @@ oi oi oi oi -Zu -af -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi oi oi oi @@ -18998,9 +17597,29 @@ oi oi oi oi +Jc +Yt +Yt +Yt +ai oi +Jc +Yt +Yt +Yt +ai oi +Jc +Yt +Yt +Yt +ai oi +Jc +Yt +Yt +Yt +ai oi oi "} @@ -19039,10 +17658,10 @@ vl eR cR Qm -Qm -Qm +rG +Zi hJ -Qm +eR Qm Qm Qm @@ -19059,7 +17678,7 @@ tV ZZ ZZ ZI -zW +UK Bn DL Fu @@ -19093,8 +17712,6 @@ XH XH XH XH -Zu -af oi oi oi @@ -19105,29 +17722,31 @@ oi oi oi oi -Jc -Yt -Yt -Yt -ai oi -Jc -Yt -Yt -Yt -ai oi -Jc -Yt -Yt -Yt -ai +Zu +Pk +Pk +Pk +af oi -Jc -Yt -Yt -Yt -ai +Zu +Pk +Pk +Pk +af +oi +Zu +Pk +Pk +Pk +af +oi +Zu +Pk +Pk +Pk +af oi oi "} @@ -19152,13 +17771,13 @@ Zu al al Xm -GJ -zJ +Ci +Vt uw bR -Vm -vl -vl +QV +Em +Em CA jF ez @@ -19166,11 +17785,11 @@ vl XI RU RU -RU -RU -RU -RU -uN +rD +Zi +Zi +XI +xa RU rD Xx @@ -19198,15 +17817,15 @@ Ld Ig Il Qa -UK -UK -UK -UK +zW +zW +zW +zW XH XH Zp Zp -RA +zW YU VK So @@ -19220,8 +17839,8 @@ Lc Lc Lc XH -Zu -af +oi +oi oi oi oi @@ -19279,16 +17898,16 @@ Zu al al Xm -zJ -zJ +Vt +Vt bh bV -Vm +QV ct -vl +Em he jF -kL +sr Zi Xx jF @@ -19313,7 +17932,7 @@ Xm Wq qZ ZI -zW +UK Bt zC zC @@ -19325,7 +17944,7 @@ Lf MS Pp Qd -UK +zW SX Uu SX @@ -19333,8 +17952,8 @@ SX XH Zr xh -RA -am +zW +xA am am am @@ -19347,8 +17966,8 @@ pN Ig xC XH -Zu -af +oi +oi oi oi oi @@ -19407,8 +18026,8 @@ al Yc Yc tq -jF -jF +YC +YC jF jF jF @@ -19420,11 +18039,11 @@ Zi Xx jF fz -qj -qj -Cm -Et -ks +fK +QB +DE +uq +eo jF sr vl @@ -19432,7 +18051,7 @@ vl RU RU RU -uN +xa RU RU sE @@ -19440,19 +18059,19 @@ Xm Wq qZ ZI -zW +UK Bz DR Fy GL GW -UK -UK -UK -UK -UK +zW +zW +zW +zW +zW Qi -UK +zW Th Th Th @@ -19460,7 +18079,7 @@ Th XH Zp Zp -RA +zW gT am am @@ -19474,8 +18093,8 @@ LH Fb qU XH -Zu -af +oi +oi oi oi oi @@ -19534,11 +18153,11 @@ al Yc kj vl -jF -nS -vl -vl -vl +YC +xg +Vt +Em +Em qj qj jF @@ -19546,12 +18165,12 @@ sr Zi Xx jF -qa -qj -jI -Zy -Ns -Xx +fR +CC +Kx +DE +uq +uq jF sr eN @@ -19567,27 +18186,27 @@ YC Wq qZ Xv -UK -UK -UK -UK -UK -UK -UK +zW +zW +zW +zW +zW +zW +zW HP Lo MX -UK -UK -UK -Ts +zW +zW +zW +zi Ts Ts Ts Yg Zx Hg -RA +zW SQ am Ds @@ -19601,8 +18220,8 @@ Ug Ig Ap XH -al -al +Yt +Yt Yt Yt Yt @@ -19661,9 +18280,9 @@ al Yc fy gs -jF -nS -vl +YC +Fa +Vt si Zh qj @@ -19673,37 +18292,37 @@ sr Zi Xx jF -fA +ZF qj -CC -hK -Ns -Xx +UW +DE +uq +uq jc vl Xx jF wE -Et +uq qj Cm qj YC ir Ys -Wq +vw ZZ ZI -UK +zW BF Ei FR GM UK Hl -qL -qL -qL +HW +HW +HW GP Qn UK @@ -19714,18 +18333,18 @@ SX UK ZA gm -RA -RA +zW +zW WL WL WL WL -RA -RA +zW +zW zO Lc Lc -Lc +RE Lc XH al @@ -19789,8 +18408,8 @@ Yc Yc Yc Yc -jF -fx +YC +bZ qz ss qj @@ -19800,18 +18419,18 @@ vl vl Xx jF -fB -qj -Rd -hL -Ns -Xx +cE +uq +uq +uq +uq +uq jF sr Xx jF fm -Et +uq vI vI qj @@ -19823,8 +18442,8 @@ ZZ ZI Ay BG -qL -qL +HW +HW GP Ha bz @@ -19839,21 +18458,21 @@ UK UK UK UK -bz +SY Ig -RA +zW fJ rY rY rY rY Sl -RA -RA +zW +zW Mx TE -RA -RA +zW +zW XH WL WL @@ -19928,17 +18547,17 @@ Zi eS jF kU -qj -qj -Cw -Et -Pi +uq +fE +Cu +Ek +fS jF sr vl lf vl -Et +uq Zy MA qj @@ -19985,7 +18604,7 @@ Nq yf sT NA -qL +HW sl XH al @@ -20065,17 +18684,17 @@ sr Xx jF hE -Et +uq oe UI qj YC Iw -Iu +JN Wq ZZ ZI -UK +zW BK Mm Mm @@ -20171,38 +18790,38 @@ al al Yc bl -qj -qj -Cm -Et -ks +fK +bu +DE +uq +eo jF eB Zi Sj jF fC -gw -qj -Cm -Et -ks +fK +NW +DE +uq +eo jF sr Xx jF Ny -Et +uq hK Zb qk YC Xu Ys -Wq +Rs ZZ ZI -UK +zW UK Ha Ha @@ -20228,7 +18847,7 @@ UK UK UK UK -sW +iw yO ZX Ig @@ -20298,24 +18917,24 @@ al al Yc bm -qj -jI -cE -Ns -Xx +CC +Kx +DE +uq +uq jF sr Zi -Xx +ks jF -fE -qj -jI -pA -Ns -Xx +fR +CC +Kx +DE +uq +uq jF -jS +sr Xx jF YC @@ -20331,10 +18950,10 @@ lO mK MN BY -qL -qL +HW +HW GS -tj +rO zC zC zC @@ -20375,29 +18994,29 @@ af oi oi oi -Zu -Pk -Pk -Pk -af +Yr +au +al +au +WY oi -Zu -Pk -Pk -Pk -af +Yr +au +al +au +WY oi -Zu -Pk -Pk -Pk -af +Yr +au +al +au +WY oi -Zu -Pk -Pk -Pk -af +Yr +au +al +au +WY oi oi "} @@ -20424,30 +19043,30 @@ Zu al al Yc -bn +ZF qj -CC -Kx -Ns -Xx -dZ +xZ +DE +uq +uq +jg vl vl Xx jF -fI +ZF qj -CC -Kx -Ns -Xx +TU +DE +uq +yi ki vl Xx hp YC nC -Et +uq RL qo It @@ -20456,12 +19075,12 @@ YC fV lO mK -MN +Ic Mm Mm Mm Mm -tj +zC zC IJ LI @@ -20477,11 +19096,11 @@ YG bz Ki Gi -PO +MD +no no no no -BZ UE OZ jk @@ -20494,7 +19113,7 @@ vT je pm Ig -Ri +Pu XH al al @@ -20502,29 +19121,29 @@ af oi oi oi -Zu -Pk -Pk -Pk -af oi -Zu -Pk -Pk -Pk -af oi -Zu -Pk -Pk -Pk -af +al +oi +oi +oi +oi +oi +al +oi +oi +oi +oi +oi +al +oi +oi +oi +oi +oi +al +oi oi -Zu -Pk -Pk -Pk -af oi oi "} @@ -20551,47 +19170,47 @@ Zu al al Yc -Bh -qj -SH -cN -Ns -Xx -jF -sr -Zi -Xx -jF -fB -qj -SH -cN -Ns +jA +uq +uq +uq +uq +uq +jF +sr +Zi Xx jF -eL +bv +uq +uq +uq +uq +uq +jF +eu Xx jm YC Fq -Et +uq AE qj qj sR YC -iY +Wq qZ vd -WF -WF -WF -WF -WF -WF -WF -WF -WF +Ys +Ys +Ys +Ys +Ys +Ys +Ys +Ys +Ys bz RM wQ @@ -20612,9 +19231,9 @@ mA iP zX UK -Ig +jS RM -rO +zC zC Mm UH @@ -20625,33 +19244,33 @@ RM WL al al -af -oi -oi -oi -Zu -Pk -Pk -Pk -af -oi -Zu -Pk -Pk -Pk -af +al +Yt +Yt +Yt +Yt +Yt +al +Yt +Yt +Yt +Yt +Yt +al +Yt +Yt +Yt +Yt +Yt +al +Yt +Yt +Yt +Yt +Yt +al oi -Zu -Pk -Pk -Pk -af oi -Zu -Pk -Pk -Pk -af oi oi "} @@ -20678,23 +19297,23 @@ Zu al al Yc -fK -qj -qj +fS +uq +Lp Cw -Et -Pi +up +eo jF -Jz +sr Zi Xx jF -fK -qj -qj -Cw -Et -Pi +fS +uq +fE +NX +bn +VO jF sr Xx @@ -20707,27 +19326,27 @@ qj qj sS YC -Wq +ad qZ Xv WF vb Vz Vz -nW +wr Vz Vz IR -WF -bz +Ys +SY Pq -qL -GS -qL -qL +HW +Db +HW +HW Xd -XJ -qL +HW +HW ZB Il Rl @@ -20747,38 +19366,38 @@ UK UK bz nU -nU +gU RM WL al al -af -oi -oi -oi -Yr -au +al +al +al +al +al +al +al +al al au -WY -oi -Yr +au au al au -WY -oi -Yr au -al au -WY -oi -Yr +au au al au -WY +au +au +au +au +al +oi +oi oi oi "} @@ -20828,7 +19447,7 @@ Xx on YC nF -Et +uq qj qp qj @@ -20845,14 +19464,14 @@ Ir Ir Ho ZI -WF -BK -Mm -Ig -Ig -Ig +Ys +fb +zC +zC Ig -Xe +Mm +Mm +kn XO Mm Nv @@ -20879,15 +19498,15 @@ RM WL al al -af -oi -oi -oi -oi -oi al -oi -oi +al +al +al +al +al +al +al +af oi oi oi @@ -20932,30 +19551,30 @@ Zu al al Yc -bu -qj -qj -Cm -Et -ks +bv +fK +aV +DE +uq +eo jF sr Zi Xx jF -bu -qj -qj -Cm -Et -ks +Bh +fK +hf +DE +uq +eo jF sr Xx -jF YC -zJ -Et +YC +SH +uq Zy EB qj @@ -20972,15 +19591,15 @@ Zk Zk Be ZI -WF -UA -UA -UA -UA -UA -UA -UA -UA +Ys +gh +gO +dB +gh +gh +gh +gh +gh et bz Ig @@ -20993,46 +19612,46 @@ lV iP zX UK -Ig +lH RM sG Ig Ig UK bz -nU +jI pp RM -WL -al -al -al -Yt -Yt -Yt -Yt -Yt -al -Yt -Yt -Yt -Yt -Yt -al -Yt -Yt -Yt -Yt +XH +df +df +df +df +df +df +df +df +df +df +af +oi +Jc Yt al Yt +ai +oi +Jc Yt +al Yt -Yt +ai +oi +Jc Yt al -oi -oi +Yt +ai oi oi "} @@ -21060,29 +19679,29 @@ al al Yc bv -qj -jI -cT -Ns -Xx +CC +Kx +DE +uq +uq jF sr Zi Xx jF fO -qj -Bx -tp -Ns -Xx +CC +Kx +DE +uq +uq jF sr Xx xH zJ vl -Et +uq Bx qr qj @@ -21101,13 +19720,13 @@ Be Xv WF WB -Yj -UB +ta +ta WB WB UB oQ -UA +gh YI bz Ki @@ -21121,45 +19740,45 @@ UE OZ jK Ig -RM +OC UK Tq dd UK mj -Mm +Wt kn la XH -al -al -al -au -au -au -au -au -al -au -au -au -au -au -al -au -au -au -au -au -al -au -au -au -au -au -al +Bi +Bi +Bi +Bi +Bi +Bi +Bi +Bi +Bi +df +af oi +Zu +Pk +Pk +Pk +af +oi +Zu +Pk +Pk +Pk +af oi +Zu +Pk +Pk +Pk +af oi oi "} @@ -21186,34 +19805,34 @@ Zu al al Yc -fI +ZF qj -CC -cU -Ns -Xx +Zd +DE +uq +uq rX vl vl Xx jF -fI +ZF qj -CC -hN -Ns -Xx -jg +Lx +DE +uq +uq +pA vl Xx Ix ne vl -Et +uq AE qj qj -qj +aP YC Wq qZ @@ -21234,7 +19853,7 @@ ve ve UB oQ -UA +gh UF bz Ki @@ -21244,7 +19863,7 @@ eG pT eG eG -PO +MD OZ cv zC @@ -21258,35 +19877,35 @@ UK UK UK XH -al -al +Iv +hl +pq +iC +tu +tu +tu +tu +Bi +df af oi +Zu +Pk +Pk +Pk +af oi +Zu +Pk +Pk +Pk +af oi -oi -oi -al -oi -oi -oi -oi -oi -al -oi -oi -oi -oi -oi -al -oi -oi -oi -oi -oi -al -oi -oi +Zu +Pk +Pk +Pk +af oi oi "} @@ -21314,22 +19933,22 @@ al al Yc fR -qj uq -cV -Ns -Xx +uq +uq +uq +uq jF sr Zi Xx jF -fR -qj -SH -gj -Ns -Xx +qa +uq +uq +uq +uq +uq jF sL Xx @@ -21337,10 +19956,10 @@ Ix ni vl IQ -Et -Et +uq +uq IQ -dD +lg YC Wq qZ @@ -21361,7 +19980,7 @@ UB UB UB bp -UA +gh YK bz Ki @@ -21384,36 +20003,36 @@ Iv Iv Iv Iv +Iv +Iv +hl +OB +RP +RP +RP +RP +aQ +Bi df -al -al af oi +Zu +Pk +Pk +Pk +af oi +Zu +Pk +Pk +Pk +af oi -Jc -Yt -al -Yt -ai -oi -Jc -Yt -al -Yt -ai -oi -Jc -Yt -al -Yt -ai -oi -Jc -Yt -al -Yt -ai +Zu +Pk +Pk +Pk +af oi oi "} @@ -21441,22 +20060,22 @@ al al Yc bB -qj -qj -Cw -Et -Pi +uq +fE +uq +uq +up jF ZS Zi Xx jF fS -qj -qj -Cw -Et -Pi +uq +Hd +fe +xi +fR jF sr Xx @@ -21488,16 +20107,16 @@ WB WB UB Yj -UA +gh hQ bz zC Ig Ig -qL -qL -qL -qL +HW +HW +HW +HW zC zC zC @@ -21507,21 +20126,21 @@ UK Iv cW Kv -tu wd Ta Iv +Or +OB +Iv +hl +OB +RP +RP +RP +RP +RP +Bi df -al -al -af -oi -oi -oi -Zu -Pk -Pk -Pk af oi Zu @@ -21564,8 +20183,8 @@ oi oi oi Yr -au -au +al +al Yc Yc jF @@ -21587,14 +20206,14 @@ jF jF sr eN -jF -jF +YC +YC nI Ix -jF +YC Ix Ix -jF +YC YC Wq lO @@ -21611,11 +20230,11 @@ WF TD Yj UB -ve TD +ve UB Yj -UA +gh YN BK kn @@ -21634,21 +20253,21 @@ Iv Iv wW uF -uF ZE rk Iv +Or +lZ +Iv +Iv +xv +FK +FK +FK +FK +FK +Bi df -al -al -af -oi -oi -oi -Zu -Pk -Pk -Pk af oi Zu @@ -21691,9 +20310,9 @@ oi oi oi oi -oi -oi Zu +al +al Yc ku cl @@ -21742,16 +20361,16 @@ UA UA Ux Ux -UA -UA -UK -UK +gh +gh +zW +zW UL -UK -UK -UK -UK -wN +zW +zW +zW +zW +DN wN wN wN @@ -21760,22 +20379,22 @@ UK Iv NT rx -ph -rx +uF uF NF Iv +Dq +OB +Vx +Iv +Mn +tu +tu +tu +tu +tu +Bi df -al -al -af -oi -oi -oi -Zu -Pk -Pk -Pk af oi Zu @@ -21818,13 +20437,13 @@ oi oi oi oi -oi -oi Zu -Yc -kl -VY +al +al +Xm +cf VY +tL dj dN Ix @@ -21840,7 +20459,7 @@ XI RU vl jT -uN +xa RU RU RU @@ -21849,7 +20468,7 @@ zJ sr Zi Vm -jF +YC Wq qZ ZI @@ -21877,7 +20496,7 @@ UE UE CJ Kw -UK +zW sJ UE UE @@ -21887,22 +20506,22 @@ UK Iv oq rx -ph -rx +uF uF Xp Iv +iK +OB +Ju +Iv +OB +RP +RP +RP +RP +RP +Bi df -al -al -af -oi -oi -oi -Zu -Pk -Pk -Pk af oi Zu @@ -21945,11 +20564,11 @@ oi oi oi oi -oi -oi Zu -Yc -cf +al +al +Xm +zl VY VY VY @@ -21962,12 +20581,12 @@ jF fU fU gQ -xi -xi -xi +YC +YC +YC ji -xi -xi +YC +YC li Ix Ix @@ -22002,9 +20621,9 @@ ZH fQ UE Sr -CJ +mt Ss -UK +zW CQ CQ mp @@ -22016,20 +20635,20 @@ Wb rx uF uF -uF AM Iv +GE +OB +Vd +Iv +OB +RP +RP +RP +RP +aQ +Bi df -al -al -af -oi -oi -oi -Zu -Pk -Pk -Pk af oi Zu @@ -22072,15 +20691,15 @@ oi oi oi oi -oi -oi Zu +al +al Yc UQ VY +cZ VY -VY -Ju +dN jF eK Zi @@ -22089,20 +20708,20 @@ jF jF jF jF -xi +YC ia ix Si jU -xi +YC vl nm zY YC IS -Et -Et -dD +uq +uq +lg YC Gg qZ @@ -22131,7 +20750,7 @@ UK UK UK UK -UK +zW UK UK UK @@ -22142,21 +20761,21 @@ Iv wF yW uF -pX us xV Iv +VP +OB +XJ +Iv +eF +eF +OB +gD +FK +FK +Bi df -df -al -af -oi -oi -oi -Zu -Pk -Pk -Pk af oi Zu @@ -22199,16 +20818,16 @@ oi oi oi oi -oi -oi Zu -Yc +al +al +Xm cj -cp +VY cZ -dk -en -jF +VY +dN +Ix sr Zi fg @@ -22216,12 +20835,12 @@ jF fW gA gV -xi +YC uQ Qf Si -uQ -xi +sw +YC lm nn Ac @@ -22229,7 +20848,7 @@ Ix qj qj qj -Et +uq YC Wq qZ @@ -22273,17 +20892,17 @@ Iv Iv Iv Iv +KI Iv +Iv +Iv +Iv +yn +Bi +Bi +Bi +Bi df -al -af -oi -oi -oi -Zu -Pk -Pk -Pk af oi Zu @@ -22326,29 +20945,29 @@ oi oi oi oi -oi -oi Zu -Yc -Yc -Xm -Xm +al +al Xm -Yc -Yc -eL +eb +VY +VY +VY +ND +Ix +sr Zi fk fr vl vl gX -xi +YC hT Qf Si -uQ -xi +sw +YC lu nn oO @@ -22356,7 +20975,7 @@ Ix pJ qC qj -Et +uq Xm Wq qZ @@ -22373,8 +20992,8 @@ WF TD Yj UB -ve TD +ve UB Yj TD @@ -22394,42 +21013,42 @@ Ot Uf Iv By +BB uF -dH -Iv -Db -mt -bY -Iv +BB +BB +BB +BB +BB +se +nL +Jz +id +uF +Bi +df +df +df df -al -al -Yt -ai -oi -Zu -Pk -Pk -Pk af oi -Zu -Pk -Pk -Pk -af +Yr +au +au +au +WY oi -Zu -Pk -Pk -Pk -af +Yr +au +au +au +WY oi -Zu -Pk -Pk -Pk -af +Yr +au +au +au +WY oi oi "} @@ -22453,16 +21072,16 @@ oi oi oi oi -oi -oi -Yr -au -au -au -au -au +Zu +al al Yc +en +gi +VY +VY +TP +jF uK Ve fp @@ -22470,12 +21089,12 @@ jF fX gB gZ -xi +YC ic Qf jl jW -xi +YC xP vl nN @@ -22483,7 +21102,7 @@ Ix pK qD qj -Et +uq tX Wq lO @@ -22521,46 +21140,30 @@ uF HU Iv ZK +KE uF uF -Rw -rx uF -ph -Iv +uF +uF +uF +uF +uF +uF +uF +BR +Bi df al al al af oi -Zu -Pk -Pk -Pk -af oi -Zu -Pk -Pk -Pk -af oi -Zu -Pk -Pk -Pk -af oi -Zu -Pk -Pk -Pk -af oi oi -"} -(67,1,1) = {" oi oi oi @@ -22575,6 +21178,8 @@ oi oi oi oi +"} +(67,1,1) = {" oi oi oi @@ -22588,21 +21193,35 @@ oi oi oi oi -Zu -Yc -Xm -Xm -Xm +oi +oi +oi +SP +SP +fu +fu +fu SP +Yc +YC +YC +Jo +QS +YC +YC +YC Ys Ys Ys -vD -vD -vD -vD -vD -xi +Ys +Ys +Ys +Ys +Ys +Ys +Ys +Ys +YC lw vl Ae @@ -22610,7 +21229,7 @@ YC pM qF qj -Et +uq tW Wq lO @@ -22649,45 +21268,29 @@ vX Iv Zg uF -pq -Iv -OB -aQ -eF -Iv -df -df +uF +sY +us +Mi +us +us +us +us +zd +uF +Rw +Bi df al +al +al af oi -Zu -Pk -Pk -Pk -af oi -Zu -Pk -Pk -Pk -af oi -Zu -Pk -Pk -Pk -af oi -Zu -Pk -Pk -Pk -af oi oi -"} -(68,1,1) = {" oi oi oi @@ -22702,6 +21305,11 @@ oi oi oi oi +"} +(68,1,1) = {" +oi +oi +oi oi oi oi @@ -22715,17 +21323,28 @@ oi oi oi oi -Zu -al -al -al -al SP +oF +PM +PM +PM +PM +PM +PM +PM +ZZ +ZZ +PM +PM +Fi +WF +qB +Wu fY Ww hk tz -Ys +WF Su Sx Ys @@ -22737,7 +21356,7 @@ xr qj qj qj -Ns +uq Xm Wq qZ @@ -22775,8 +21394,9 @@ uF KG Iv ZK +mV uF -ph +vS Iv Iv Iv @@ -22784,40 +21404,25 @@ Iv Iv Iv Iv +or +Iv +Bi df al -af -oi -Zu -Pk -Pk -Pk -af -oi -Zu -Pk -Pk -Pk -af -oi -Zu -Pk -Pk -Pk -af -oi -Zu -Pk -Pk -Pk -af -oi -oi -"} -(69,1,1) = {" -oi -oi -oi +al +al +al +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +ai oi oi oi @@ -22827,6 +21432,8 @@ oi oi oi oi +"} +(69,1,1) = {" oi oi oi @@ -22842,16 +21449,28 @@ oi oi oi oi -Yr -au -al -al -al -SP +oi +fu fZ +ZZ +UN +WF +tZ +yN +fI +yN +md +WF +yR +ZZ +Wy +WF +cA +QW +ZZ +ZZ qZ -qZ -qZ +ZZ dq ZZ Xv @@ -22861,12 +21480,12 @@ RS np Al YC -cG -Et -Et -Ns +eo +up +NX +NX YC -jQ +Wq qZ Xv WF @@ -22911,42 +21530,27 @@ Ko To UX Iv +CS +uF +CS +Bi df al +al +df +df +df +df +df +df +bC +bC +bC +bC +bC +al af oi -Zu -Pk -Pk -Pk -af -oi -Zu -Pk -Pk -Pk -af -oi -Zu -Pk -Pk -Pk -af -oi -Zu -Pk -Pk -Pk -af -oi -oi -"} -(70,1,1) = {" -oi -oi -oi -oi -oi oi oi oi @@ -22955,6 +21559,8 @@ oi oi oi oi +"} +(70,1,1) = {" oi oi oi @@ -22971,15 +21577,28 @@ oi oi oi oi -Zu -al -al -SP +fu +fZ ga +ga +bY +FE +yQ +ee +Bd +wm +LW +vR +vR +PP +WF +Dx +qZ ZZ ZZ -bL -Ys +qZ +ZZ +WF bk ZI Ys @@ -23015,7 +21634,7 @@ Qv UA UA Iv -Yw +By mQ ma Kv @@ -23038,42 +21657,27 @@ uF uF ph Iv +yM +uF +JH +Bi +df +al +al df +Vo +Ch +Ch +Ch +Dv +bC +OK +Vq +Vq +bC al af oi -Yr -au -au -au -WY -oi -Yr -au -au -au -WY -oi -Yr -au -au -au -WY -oi -Yr -au -au -au -WY -oi -oi -"} -(71,1,1) = {" -oi -oi -oi -oi -oi oi oi oi @@ -23082,6 +21686,8 @@ oi oi oi oi +"} +(71,1,1) = {" oi oi oi @@ -23098,19 +21704,32 @@ oi oi oi oi -Zu -al -al SP +fZ +ga +ga +bY +aY +uy +wz +Gu +xU +LW +vR +vR +PP +WF +qI +OT gb -ZZ -ZZ -tL -Ys +JD +MO +MO +WF Wq tU Vz -nW +wr Vz Vz Vz @@ -23131,12 +21750,12 @@ Vz Vz EA Jf -nW +wr Cj ZZ ZZ Vz -nW +wr ZZ ZZ Cj @@ -23146,7 +21765,7 @@ rx uF uF uF -MQ +ph Iv ru YT @@ -23165,8 +21784,25 @@ uF AB MQ Iv +CS +us +CS +Bi df al +al +df +Yn +bd +qq +bd +gg +bC +Px +Vq +Vq +Ke +al af oi oi @@ -23177,23 +21813,6 @@ oi oi oi oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi "} (72,1,1) = {" oi @@ -23212,28 +21831,28 @@ oi oi oi oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -Zu -al -al SP -ge -qZ -hl -bx -Ys +tp +ga +ga +bY +iA +bL +wz +bN +jD +LW +vR +vR +PP +WF +WF +WF +WF +WF +WF +WF +WF Wq qZ ZZ @@ -23273,7 +21892,7 @@ uF uF uF uF -uF +CT YR uF uF @@ -23290,43 +21909,28 @@ YP uF uF uF -FL -Iv -df -al -al -Yt -Yt -Yt -Yt -ai -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -"} -(73,1,1) = {" -oi -oi -oi -oi +FL +aw +aw +aw +aw +Bi +df +al +al +df +gg +qq +yL +qq +Gc +Tg +ry +Go +Vq +Ke +al +af oi oi oi @@ -23336,6 +21940,8 @@ oi oi oi oi +"} +(73,1,1) = {" oi oi oi @@ -23352,16 +21958,29 @@ oi oi oi oi -Zu -al -al SP -gh +fZ +ga +ga +bY +iA +Ri +bE +fB +jD +LW +vR +vR ZZ -hm -qu -Ys -Wq +LS +Uy +Vz +Vz +wr +Vz +Vz +Vz +rN qZ jY zH @@ -23369,17 +21988,17 @@ zH zH zH zH -tY +Ft zH zH zH zH zH rf -vg -zH +LC +iY zH -tY +Ft ZZ zH ZZ @@ -23400,7 +22019,7 @@ uF uF uF uF -uF +CT uF sY us @@ -23418,14 +22037,26 @@ tF oA Mi uT -Iv -bC -bC +aw +As +As +As +As bC Ke -Ke bC bC +gg +qq +yJ +qq +qq +pw +ry +Go +Vq +Ke +al af oi oi @@ -23436,18 +22067,6 @@ oi oi oi oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi "} (74,1,1) = {" oi @@ -23466,29 +22085,29 @@ oi oi oi oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -Zu -al -al -SP -Ys -Ys -Ys -Ys -Ys -Gg +fu +fZ +ga +ga +bY +iA +wz +wz +wz +jD +LW +vR +vR +ZZ +ZZ +rC +zH +zH +zH +zH +zH +zH +Xw qZ ZI Tm @@ -23539,20 +22158,32 @@ uF uF uF uF -jr -Iv +BR Iv Iv Iv Iv Iv +aw Dc As eV -XB -uk -Ii +Vq +Vq +Vq +ox +As +gg +qq +dz +qq +qq +pw +ry +Go +Vq bC +al af oi oi @@ -23563,18 +22194,6 @@ oi oi oi oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi "} (75,1,1) = {" oi @@ -23593,37 +22212,37 @@ oi oi oi oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -Zu -al -al -SP -gi -tJ -ho -tJ -Tl -KT +fu +fZ +ZZ +ZZ +bY +iA +wz +wz +wz +jD +LW +ZZ +ZZ +Wy +WF +WF +WF +WF +WF +WF +WF +WF +kX ZZ jZ Tm -BE -TQ +NU TQ og SL +SL kA SL SL @@ -23634,7 +22253,7 @@ NJ JK CE Tm -Oe +yR qZ ZZ WF @@ -23666,20 +22285,32 @@ rx WN rE uF -xZ +ph YP zT Ko To UX -Iv +aw Ng As KP -PU -uk +Vq +Vq +Vq tP -Ke +As +gg +qq +jr +qq +RF +pw +ry +Go +Vq +bC +al af oi oi @@ -23690,18 +22321,6 @@ oi oi oi oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi "} (76,1,1) = {" oi @@ -23720,37 +22339,37 @@ oi oi oi oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -Zu -al -al SP +tp +ZZ +ZZ +WF +nb +ho +cp +ho +ht +lO +ZZ +ZZ +PP +dk +WF +JA dY -qZ -qZ -qZ -Ys +Jq +JS +Jq +WF Tl ju Tl Tm TQ TQ -TQ oh ld +SL wj wj wj @@ -23787,7 +22406,7 @@ vv uF ph Iv -uF +JE zf uF WN @@ -23799,27 +22418,27 @@ uF uF uF ph -Iv +aw gd Pc Vq -Vq +ly +ly Vq tP -Ke -af -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi +As +Yn +QJ +qq +QJ +gg +bC +Px +Vq +Vq +bC +al +af oi oi oi @@ -23847,28 +22466,28 @@ oi oi oi oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -Zu -al -al -SP -gk +fu +fZ +ZZ +ZZ +EV +iA +wz +wz +wz +jD +Ff +ZZ +ZZ +Wy +WF +WF +lO +lO ZZ ZZ ZZ -ie +PX ZZ ZZ kd @@ -23876,8 +22495,8 @@ Tm Vr Vr Vr -Vr BP +SL wj wj wj @@ -23904,7 +22523,7 @@ Wq qZ ZI YP -YZ +Lg ZR ZR ZR @@ -23926,14 +22545,26 @@ uF uF AB MQ -Iv +aw As As +hF +mc +nG Vq +oI +As +wS +Ch +Ch +Ch +pQ +bC +OK Vq Vq -aP -Ke +bC +al af oi oi @@ -23944,18 +22575,6 @@ oi oi oi oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi "} (78,1,1) = {" oi @@ -23974,23 +22593,23 @@ oi oi oi oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -Zu -al -al -SP +fu +fZ +ga +ga +EV +iA +wz +wz +wz +jD +Ff +vR +vR +PP +Tl +ZZ +lO lO gC gC @@ -23998,13 +22617,13 @@ gC ZZ ZZ ZZ -iC +lO Tm lD Vr -WQ -ol +Vr BP +SL wj wj wj @@ -24021,9 +22640,9 @@ ZI WF WF WF +cU ZZ -ZZ -ZZ +rF ZZ pC WF @@ -24053,14 +22672,26 @@ uF uF uF FL -Iv +aw wP tP Vq +mw +mw +Vq +pz +As +bC +bC +bC +bC +bC +bC +Vq Vq Vq -sx bC +al af oi oi @@ -24071,18 +22702,6 @@ oi oi oi oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi "} (79,1,1) = {" oi @@ -24101,23 +22720,23 @@ oi oi oi oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -Zu -al -al SP +fZ +ga +ga +EV +iA +uS +Dz +BZ +jD +Ff +vR +vR +PP +Tl +ZZ +lO lO hr hr @@ -24129,7 +22748,6 @@ gl Tm WU Vr -Vr om pP Vr @@ -24137,13 +22755,14 @@ Vr Vr Vr Vr +Vr mr Vr Vr Vr mr ZZ -ZZ +lO Xv WF dJ @@ -24152,7 +22771,7 @@ ZZ ZZ zH zH -zH +Wd WF Wq qZ @@ -24180,27 +22799,27 @@ tF oA Mi uT -Iv +aw aG Cs Vq Vq Vq -uX +Vq +ql +As +pw +JY +pw +qS +pw +gp +pw +pw +pw bC al -Yt -Yt -Yt -Yt -Yt -Yt -Yt -Yt -Yt -Yt -Yt -ai +af oi oi oi @@ -24228,23 +22847,23 @@ oi oi oi oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -Zu -al -al -fu +SP +tp +ga +ga +EV +iA +VT +wz +bN +jD +Ff +vR +vR +PP +Tl +ZZ +lO Ev gL ZZ @@ -24256,8 +22875,7 @@ kg Tm kG Vr -Vr -or +om pP Vr Vr @@ -24269,8 +22887,9 @@ Vr Vr Vr Vr +Vr ZZ -ZZ +lO ZI WF WF @@ -24302,47 +22921,32 @@ uF uF uF CM -Iv -Iv -Iv -Iv -Iv -Iv +aw +aw +aw +aw +aw +aw lQ lQ pU JI As lQ -bC -bC -bC -Ke -Ke -Ke -bC -Ke -Ke -Ke -bC -bC -al -af -oi -oi -oi -oi -oi -oi -oi -oi -oi -"} -(81,1,1) = {" -oi -oi -oi -oi +As +As +pw +pw +Kj +ay +pw +pw +pw +pw +pw +bC +al +af oi oi oi @@ -24352,6 +22956,8 @@ oi oi oi oi +"} +(81,1,1) = {" oi oi oi @@ -24368,24 +22974,37 @@ oi oi oi oi -Zu -al -al -fu +SP +fZ +ga +ga +EV +aY +bx +wz +FW +xU +Ff +vR +vR +PP +Tl +ZZ +lO Ev ZZ ZZ ZZ -uZ +lO vR ZZ ko Tm Qt Vr -WQ -ow +Vr BP +SL wj wj wj @@ -24397,11 +23016,11 @@ TQ TQ MU Wq -ZZ +lO ZZ aT ZZ -Vb +aB Vb WF WF @@ -24416,7 +23035,7 @@ uF uF uF uF -uF +CT YR Ue BB @@ -24429,7 +23048,7 @@ uF uF uF ph -Iv +aw Vq dn FX @@ -24445,13 +23064,13 @@ OH As XK WV -HG -pw -Gz +hi +ar pw pw pw pw +Nb bC al af @@ -24482,23 +23101,23 @@ oi oi oi oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -Zu -al -al fu +fZ +ga +ga +EV +Ps +cN +sP +dZ +hg +Ff +vR +vR +PP +Tl +ZZ +lO Ev gP ZZ @@ -24511,8 +23130,8 @@ Tm Vr Vr Vr -Vr BP +SL wj wj wj @@ -24524,12 +23143,12 @@ JK wj MU Wq -ZZ +lO ZZ ZZ ZZ LU -NN +XW WF WF WF @@ -24543,7 +23162,7 @@ uF uF uF uF -uF +CT uF uF uF @@ -24556,7 +23175,7 @@ uF uF uF pe -Iv +aw Vq dn qS @@ -24572,14 +23191,14 @@ dg As MB Vq -HG -pw +hi +ar pw pw pw pw pw -bC +Ke al af oi @@ -24609,24 +23228,24 @@ oi oi oi oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -Zu -al -al -SP -dY +fu +fZ +ZZ +UN +WF +wY +yN +hN +yN +md +WF +yR +ZZ +Wy +WF +Wc +lO +lO tM tM tM @@ -24637,9 +23256,9 @@ kq Tm TQ TQ -TQ oz BV +SL wj wj wj @@ -24652,7 +23271,7 @@ wj MU Wq qZ -ZI +xk WF WF WF @@ -24683,7 +23302,7 @@ uF uF uF qf -Iv +aw Nw BU uC @@ -24692,7 +23311,7 @@ pw Vq pw pw -uS +pw pw pw Nc @@ -24700,13 +23319,13 @@ As UY WV Kd -JB -pw -pw +Cp pw +Ex +BC pw dW -bC +Ke al af Wf @@ -24736,38 +23355,38 @@ oi oi oi oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -Zu -al -al SP +Fi +ge +ge +ge +ge +ge +ge +ge +ge +ge +ge +ge +Fi +WF +LX +lO gl -qZ -qZ -qZ +rb +rb +rb ih -iC +lO lO QR Tm -BE -TQ +NU TQ oH SL -qJ +SL +kI SL SL SL @@ -24775,7 +23394,7 @@ vk Tm IA JK -CE +hv Tm Gg qZ @@ -24801,7 +23420,7 @@ Ym Iv WT Zo -Mi +fs Oz Oz Zq @@ -24810,7 +23429,7 @@ qA es Oz zR -Iv +aw cs hi pw @@ -24819,7 +23438,7 @@ pw AX pw pw -Gu +pw ST pw op @@ -24833,7 +23452,7 @@ pw TA pw kv -bC +Ke al af Wf @@ -24863,22 +23482,22 @@ oi oi oi oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -Zu -al -al +SP +SP +fu +fu +SP +SP +fu +fu +fu +SP +SP +fu +fu +SP +SP +SP SP SP WF @@ -24895,7 +23514,7 @@ Tm Tm Tm Tm -rV +oY tb ej sb @@ -24910,9 +23529,9 @@ ZI WF WF WF +cU ZZ -ZZ -ZZ +Jp ZZ pC WF @@ -24932,12 +23551,12 @@ Iv Iv Iv Iv -Iv -Iv -Iv -Iv -Iv -Iv +aw +aw +aw +aw +aw +aw cQ jb JB @@ -24946,12 +23565,12 @@ pw me pw pw -QB +pw pw pw pw zL -Yk +Po Yk Yk uC @@ -24995,19 +23614,19 @@ oi oi oi oi -oi -oi -oi -oi -oi -oi -oi -oi Zu al al al -df +al +al +al +al +al +al +al +al +Qx jw gz EQ @@ -25033,7 +23652,7 @@ SL Tm Gq qZ -GY +ZI WF Jn YH @@ -25046,7 +23665,7 @@ WF Wq qZ tU -nW +wr Vz ZZ ZZ @@ -25078,7 +23697,7 @@ VN pw pw zL -pw +ar pw pw pw @@ -25087,7 +23706,7 @@ pw Np pw Sc -Ke +bC al af Wf @@ -25122,23 +23741,23 @@ oi oi oi oi -oi -oi -oi -oi -oi -oi -oi -oi -Zu +Yr +au +au +au +au +au +au +au al al al -df -eb -eb -eb -eb +al +Qx +Ie +Ie +Ie +Ie Oy tG Ie @@ -25205,7 +23824,7 @@ lb pw pw lG -pw +ar pw pw pw @@ -25214,7 +23833,7 @@ pw cg pw pw -Ke +bC al af Wf @@ -25261,16 +23880,16 @@ Yr au au au -df -gK -TP -wY -ND +Qx +KH +Ie +Ie +Ie Tm jy Ie kS -Ie +AC Ie hA oW @@ -25278,7 +23897,7 @@ BX qP qP qP -qP +JK qP qP qP @@ -25291,7 +23910,7 @@ ZI WF Jn YH -ZZ +Es WF Qw NN @@ -25300,30 +23919,30 @@ WF Xk NN NN +Ea zH +SN zH zH -zH -zH -tY -zH +Ft +Ea NN NN zH Xw qZ Xv -As +Id km -Vq -Vq -Vq +Go +Go +Go cz Vq Vq -tP +Go dT -tP +Go Vq Vq Vq @@ -25333,15 +23952,15 @@ JB pw Ke pw -pw -pw -pw -pw -pw -pw -pw -pw -Ke +cg +cg +qO +ty +ty +ty +ty +ty +bC al al Yt @@ -25388,12 +24007,12 @@ oi oi oi oi -df -df -df -df -df Qx +Ie +Ie +Ie +Qg +Tm jz Ie xj @@ -25403,9 +24022,9 @@ Au oW BX qT -ra +zM tn -kf +JK vo wx ra @@ -25453,20 +24072,20 @@ ka XC Ll Mv -XM +Vq Go YM qS Cn -As +Id vU pw -Jl pw -Wd -Rf -Rf -Rf +sx +mP +Vq +Vq +Vq Uj bC al @@ -25515,16 +24134,16 @@ oi oi oi oi -oi -oi -oi -Zu -al Qx +Pg +dL +QA +Ie +Tm jC Ie Yo -Ie +AC Ie Au oW @@ -25532,7 +24151,7 @@ BX ra rW tr -tZ +JK vK wA ra @@ -25572,25 +24191,25 @@ yZ KW KW ce -As +Id Ke -As +Id Di eD cC -As -As +Id uj Vq +Vq bA Oj Sc -As +Id BC pw -FB +pw HR -iT +tT sF sF sF @@ -25642,24 +24261,24 @@ Yt Yt ai oi -oi -oi -oi -Zu -al Qx -jE +Tm +Tm +Tm +HC +Tm +jG Ie kT +js Ie -Ie -Au +SS oW BX rj rj rj -rj +JK rj rj rj @@ -25694,35 +24313,35 @@ Br WX qZ ZI -As +Id Ke Ke PB -As -As -Kb -gh -CN -WF -CN -Vz -As +Id +Id +Su +Ys +KV +SM +KV +Ys +Id Ke PB Ke Ke -As -As -As -As -As -As -iT -Mr -Yq -Yq +Id +Id +Id +Id +Id +Id +tT +Li +Li +Li vH -iT +tC Li hX Li @@ -25769,13 +24388,13 @@ Pk Pk af oi -oi -oi -oi -Zu -al Qx -jG +jE +JC +Eq +LV +Oy +tG Ie Ie Ie @@ -25811,13 +24430,13 @@ Ul RN jo RI -FE +RI RI Ag gc Yb YL -Br +PV Wq qZ tU @@ -25825,7 +24444,7 @@ Vz Vz Vz Vz -nW +wr Vz ZZ ZZ @@ -25833,13 +24452,13 @@ ZZ ZZ ZZ ZZ -nW +wr Vz Vz ZZ Vz Vz -nW +wr Vz Vz Vz @@ -25896,12 +24515,12 @@ Pk Pk af oi -oi -oi -oi -Zu -al -Qx +SR +tG +LV +tG +yp +Tm jJ jv kY @@ -25938,13 +24557,13 @@ gc gc WJ RI -FE +RI RI oJ gc Vw YL -Br +PV Wq qZ qZ @@ -26023,13 +24642,13 @@ Pk Pk af oi -oi -oi -oi -Zu -al -Qx -Qx +SR +Cq +LV +Cq +eM +Tm +Tm Tm Tm Tm @@ -26053,11 +24672,11 @@ ZI WF Br ZQ -Cf -Cf +Yp +Yp ZQ -Cf -Cf +Yp +Yp ZJ ZQ YL @@ -26074,7 +24693,8 @@ YL Br KT zH -tY +Ft +SN zH zH zH @@ -26083,10 +24703,9 @@ zH zH zH zH -zH -tY +Ft Ks -zH +Kf OU ZZ ZZ @@ -26150,13 +24769,13 @@ Pk Pk af oi -oi -oi -oi -Zu -al -al -Qx +SR +Cq +LV +Cq +LV +IL +Tm kx Mc lM @@ -26196,8 +24815,8 @@ kF Km Fl gc -Yb -YL +TT +gF Br Br Br @@ -26227,7 +24846,7 @@ iT Td iT FD -BS +Li Li tB uB @@ -26277,13 +24896,13 @@ Pk Pk af oi -oi -oi -oi -Zu -al -al -SR +Qx +xm +LV +Cq +LV +De +Tm SL hh EJ @@ -26335,11 +24954,11 @@ ok RK gc gN -Cf -Cf +Yp +Yp bb -Cf -Cf +Yp +Yp Br EM Li @@ -26354,10 +24973,10 @@ BA Wi Wi Cx -Li -Li +fh +Bu vB -iT +tC Li sA Li @@ -26404,13 +25023,13 @@ Pk Pk af oi -oi -oi -oi -Zu -al -al SR +tG +LV +tG +LV +KX +Tm SL hh lN @@ -26418,7 +25037,7 @@ yo SL Tm SL -Au +ha sg tK Au @@ -26444,10 +25063,10 @@ Yb GA YY Ej -Cf -Cf +Yp +Yp bb -Cf +Yp ZQ Ub Yb @@ -26484,7 +25103,7 @@ ou vu Ih VQ -iT +tC tC tC tC @@ -26531,13 +25150,13 @@ Pk Pk af oi -oi -oi -oi -Zu -al -al SR +Cq +LV +Cq +LV +hm +Tm SL hh lP @@ -26658,13 +25277,13 @@ Pk Pk af oi -Jc -Yt -Yt -al -al -al SR +Cq +LV +Cq +LV +HK +Tm SL hh EJ @@ -26722,22 +25341,22 @@ Vk Vk ZQ Br -FD -Li -Li -Li -Li -BS -Li -Li -Li -Li -BS -Li +cx +EE +EE +EE +EE +EE +EE +EE +EE +EE +EE +EE +EE +EE +EE EE -jd -bP -Li TM eQ al @@ -26785,13 +25404,13 @@ Pk Pk af oi -Zu -al -al -al -al -al Qx +Cq +LV +Rc +LV +ZO +Tm kx Yz Mc @@ -26822,7 +25441,7 @@ dS Br SE Yb -YL +dH gc vz Zw @@ -26849,24 +25468,24 @@ Mh Mh Mh Br -uV -nx -nx -nx -nx -nx -nx -nx -nx -nx -nx -nx -nx -nx -nx -nx IW -eQ +IW +IW +IW +IW +IW +IW +IW +IW +IW +IW +IW +IW +IW +IW +IW +IW +tC af Wf Wf @@ -26912,15 +25531,15 @@ Pk Pk af oi -Zu -al -Qx -Qx Qx Qx Qx Tm Tm +Tm +Tm +Tm +Tm lW Tm Tm @@ -26993,7 +25612,7 @@ Xl Xl Xl uR -eQ +tC af Wf Wf @@ -27054,9 +25673,9 @@ zw zw pW du -rV Fc Fc +sm vM Tm IC @@ -27069,10 +25688,10 @@ Ff HJ Jr bb -Cf -Cf -Cf -Cf +Yp +Yp +Yp +Yp ZQ Vh ZQ @@ -27088,20 +25707,20 @@ zD Yb ZQ CW -Cf +Yp bb -Cf -Cf -Cf +Yp +Yp +Yp Cf ZQ -Cf +Yp bb ng GA -Cf -Cf -Cf +Yp +Yp +Yp Br Xl Xl @@ -27120,7 +25739,7 @@ oD ri Xl Xl -eQ +hM af Wf Wf @@ -27169,7 +25788,7 @@ oi Zu al Qx -BE +NU il iD jN @@ -27179,9 +25798,9 @@ Mc Mc zw zw -zw +rM du -rV +Fc Fc Fc TQ @@ -27247,7 +25866,7 @@ DJ Ad Xl Xl -tC +hM af Wf Wf @@ -27299,16 +25918,16 @@ SR TQ in iG -Hz +dQ kB IB Mc Mc nP pf -zw -du -sm +rM +rV +Fc Fc Fc TQ @@ -27319,7 +25938,7 @@ Da Tm Gw qZ -ZI +gG Br gc gc @@ -27329,7 +25948,7 @@ PV gc gc gc -Yb +pI XU gc gc @@ -27350,7 +25969,7 @@ Mh Mh vE pY -Mh +YQ Mh Mh Mh @@ -27374,7 +25993,7 @@ Ti fw Xl Xl -tC +hM af Wf Wf @@ -27433,9 +26052,9 @@ Mc Mc nV pf -zw +rM du -rV +Fc Fc Fc TQ @@ -27450,7 +26069,7 @@ ZI PV Js Mg -NW +Gx Pt QD oE @@ -27460,12 +26079,12 @@ Yb YL SK hw -Cf +Yp LB gc Pb -dM -Cf +VI +Yp ZJ YL gc @@ -27501,7 +26120,7 @@ Zt Ai Xl Xl -tC +hM af Wf Wf @@ -27550,7 +26169,7 @@ Yt al al Qx -BE +NU BX JR Vr @@ -27570,7 +26189,7 @@ ut Vr Vr Vr -ut +AR ZZ qZ ZI @@ -27628,7 +26247,7 @@ Ti fw Xl Xl -eQ +hM af Wf Wf @@ -27755,7 +26374,7 @@ Ms jR Xl Xl -eQ +hM af Wf Wf @@ -27804,7 +26423,7 @@ oi Zu al Qx -BE +NU BX JR Vr @@ -27824,9 +26443,9 @@ ut Vr Vr Vr -ut -ZZ +AR ZZ +lO ZI PV Jx @@ -27882,7 +26501,7 @@ Dy IK Xl Xl -eQ +hM af Wf Wf @@ -27941,19 +26560,19 @@ Mc Mc nX cL -zw +rM du -rV +Fc Fc Fc TQ Tm yC -AJ -De +TQ +Df Tm Bb -ZZ +lO ZI PV JJ @@ -27973,7 +26592,7 @@ ZQ HX ZQ gc -Vw +Yb lh ZQ Ub @@ -28061,22 +26680,22 @@ SR TQ iu iL -Hz +dQ kB IB Mc Mc nY cL -zw +rM du -rV +Fc Fc Fc TQ MU -LV -LV +AJ +TQ Df Tm Wq @@ -28094,7 +26713,7 @@ gc Vw YL gc -yS +TK yS sn sn @@ -28114,9 +26733,9 @@ Le gc Rx Rx -uy +yy Se -uy +yy kk Br jq @@ -28185,7 +26804,7 @@ oi Zu al Qx -BE +NU il iN jO @@ -28195,16 +26814,16 @@ Mc Mc zw zw -zw +rM du -rV +Fc Fc Fc TQ MU -xF +Dg KD -IE +CH Tm Wq qZ @@ -28229,7 +26848,7 @@ Qz RN Yb lh -YL +Iq gc gc gc @@ -28316,7 +26935,7 @@ TQ il SL SL -qJ +kI SL Mc Mc @@ -28324,14 +26943,14 @@ zw zw qc du -rV Fc -ug +Fc +xF Gv Tm -xF -LV -Dg +xG +TQ +oY Tm Wq qZ @@ -28356,7 +26975,7 @@ Qz RN Yb lh -YL +dH gc HX ZQ @@ -28580,9 +27199,9 @@ Tm Mb Zm Mb -Mb -Mb -Mb +EJ +EJ +EJ Mb Zm Mb @@ -28610,7 +27229,7 @@ gc gc Yb lh -Iq +YL RN Qz cw @@ -28721,7 +27340,7 @@ Br JV ZQ ew -UW +ew ew ZQ gc @@ -28730,8 +27349,8 @@ lh ZQ Ub ZQ -Cf -Cf +Yp +Yp ZQ Ub ZQ @@ -28833,11 +27452,11 @@ Qx Qx rq Mc -Vr -ui -ui -ui -Vr +Mc +Mc +Mc +Mc +Mc AK Mc LV @@ -28850,7 +27469,7 @@ ZQ lh lh lh -ZQ +qm gc dt lh @@ -28960,14 +27579,14 @@ al SR qN Mc -WQ -Hz -Hz -Hz -zq +Vr +ui +ui +ui +Vr Mc Dh -Qx +Tm GF qZ ZI @@ -29089,12 +27708,12 @@ rr Mc WQ Hz -kB -wK +ol +Hz zq Mc -EJ -Qx +sD +Tm Gq qZ ZI @@ -29119,10 +27738,10 @@ Br Br lh Gb -Cf +Yp bb -Cf -Cf +Yp +Yp ZJ Bp DO @@ -29212,16 +27831,16 @@ oi Zu al SR -EJ +IZ Mc WQ -Hz +zg Hz xe zq Mc EJ -Qx +Tm Gg ZZ ZI @@ -29231,7 +27850,7 @@ dS Br JW dS -Bc +Br Ud rl lh @@ -29344,7 +27963,7 @@ Mc WQ Hz vP -Hz +Bk zq Mc RO @@ -29352,7 +27971,7 @@ Qx fu fu fu -Br +Bc lh Mw PV @@ -29371,7 +27990,7 @@ PV lh Mw Br -fs +lh ZQ ZQ GA @@ -29469,8 +28088,8 @@ SR rJ Mc WQ -up -Hz +uv +kB Hz zq Mc @@ -29485,7 +28104,7 @@ Xs Br lh Xs -Bc +Br Ul Yb lh @@ -29596,8 +28215,8 @@ SR EJ Mc WQ -uv -kB +Hz +we Hz zq Mc @@ -29612,7 +28231,7 @@ PV Br GC PV -Bc +Br gc Tb lh @@ -29635,7 +28254,7 @@ gc gc gc gc -gc +uX gc gc Bc @@ -29722,11 +28341,11 @@ al SR Mb Mc -WQ -Hz -we -Hz -zq +Vr +ux +ux +ux +Vr Mc Dj Qx @@ -29735,25 +28354,25 @@ al al Bc ZQ -Cf -Cf +Yp +Yp ZQ -Cf -Cf -Cf +Yp +Yp +Yp ZJ lh Gb -Cf +Yp ZQ -Cf -Cf +Yp +Yp ZQ -Cf -Cf +Yp +Yp gc -Bu -YL +lh +dH gc gc gc @@ -29761,7 +28380,7 @@ gc gc xL bb -Cf +Yp Qz Qz Fr @@ -29849,11 +28468,11 @@ al Qx rq Mc -Vr -ux -ux -ux -Vr +Mc +Mc +Mc +Mc +Mc Mc Dk Qx @@ -30388,7 +29007,7 @@ lh MC Br Yb -Iq +xI gc qG RH @@ -30515,7 +29134,7 @@ Kz dS Br Yb -YL +Iq Bc Bc Bc @@ -30624,7 +29243,7 @@ Zu al Bc Bc -Bc +Br Br Br Br @@ -30760,14 +29379,14 @@ bb ZJ GA Gb -Cf -Cf -Cf +Yp +Yp +Yp XL -Cf +Yp bb -Cf -Cf +Yp +Yp ZJ YL Tx @@ -30887,7 +29506,7 @@ Mh VB Xq Ya -Mh +zS ZQ Mh po @@ -31138,8 +29757,8 @@ PK Bc RR Oi -dM -Cf +VI +Yp HX gc Tb diff --git a/maps/templates/baseone.dmm b/maps/templates/baseone.dmm index 2d51be77280c..c054c2310164 100644 --- a/maps/templates/baseone.dmm +++ b/maps/templates/baseone.dmm @@ -20,10 +20,7 @@ /obj/structure/machinery/faxmachine{ department = "CLASSIFIED" }, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "emerald" - }, +/turf/open/floor/almayer/emerald/northwest, /area/adminlevel/bunker01/caves) "ag" = ( /obj/structure/surface/table/reinforced, @@ -32,10 +29,7 @@ /obj/structure/machinery/firealarm{ pixel_y = 24 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "emeraldcorner" - }, +/turf/open/floor/almayer/emeraldcorner/north, /area/adminlevel/bunker01/command) "ah" = ( /obj/structure/filingcabinet/security, @@ -46,21 +40,15 @@ /area/adminlevel/bunker01/command) "aj" = ( /obj/structure/machinery/cm_vending/gear/antag_guns, -/turf/open/floor/carpet/edge{ - dir = 9 - }, +/turf/open/floor/carpet/edge/northwest, /area/adminlevel/bunker01/command) "ak" = ( /obj/structure/machinery/cm_vending/clothing/antag, -/turf/open/floor/carpet/edge{ - dir = 1 - }, +/turf/open/floor/carpet/edge/north, /area/adminlevel/bunker01/command) "al" = ( /obj/structure/safe, -/turf/open/floor/carpet/edge{ - dir = 5 - }, +/turf/open/floor/carpet/edge/northeast, /area/adminlevel/bunker01/bathroom) "am" = ( /turf/closed/wall, @@ -73,61 +61,40 @@ dir = 1; pixel_y = 20 }, -/turf/open/floor/prison{ - dir = 2; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/south, /area/adminlevel/bunker01/bathroom) "ao" = ( /obj/structure/machinery/door/airlock/almayer/generic{ dir = 4; name = "\improper Toilet" }, -/turf/open/floor/prison{ - dir = 2; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/south, /area/adminlevel/bunker01/bathroom) "ap" = ( -/turf/open/floor/prison{ - dir = 2; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/south, /area/adminlevel/bunker01/bathroom) "aq" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk, -/turf/open/floor/prison{ - dir = 2; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/south, /area/adminlevel/bunker01/bathroom) "ar" = ( /obj/structure/machinery/washing_machine, -/turf/open/floor/prison{ - dir = 2; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/south, /area/adminlevel/bunker01/bathroom) "as" = ( /obj/structure/machinery/washing_machine, /obj/structure/machinery/firealarm{ pixel_y = 24 }, -/turf/open/floor/prison{ - dir = 2; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/south, /area/adminlevel/bunker01/bathroom) "at" = ( /obj/structure/surface/table/almayer, /obj/structure/bedsheetbin{ pixel_y = 6 }, -/turf/open/floor/prison{ - dir = 2; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/south, /area/adminlevel/bunker01/bathroom) "au" = ( /obj/structure/surface/table/reinforced, @@ -145,10 +112,7 @@ /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "emerald" - }, +/turf/open/floor/almayer/emerald/west, /area/adminlevel/bunker01/caves) "av" = ( /obj/structure/bed/chair/comfy{ @@ -195,9 +159,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/carpet/edge{ - dir = 8 - }, +/turf/open/floor/carpet/edge/west, /area/adminlevel/bunker01/command) "az" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ @@ -218,54 +180,37 @@ dir = 2; icon_state = "pipe-c" }, -/turf/open/floor/carpet/edge{ - dir = 4 - }, +/turf/open/floor/carpet/edge/east, /area/adminlevel/bunker01/bathroom) "aB" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/prison{ - dir = 2; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/south, /area/adminlevel/bunker01/bathroom) "aC" = ( /obj/structure/disposalpipe/segment{ dir = 1; icon_state = "pipe-c" }, -/turf/open/floor/prison{ - dir = 2; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/south, /area/adminlevel/bunker01/bathroom) "aD" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 2; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/south, /area/adminlevel/bunker01/bathroom) "aE" = ( /obj/structure/disposalpipe/segment{ dir = 2; icon_state = "pipe-c" }, -/turf/open/floor/prison{ - dir = 2; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/south, /area/adminlevel/bunker01/bathroom) "aF" = ( /obj/structure/curtain/shower, -/turf/open/floor/prison{ - dir = 2; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/south, /area/adminlevel/bunker01/caves) "aG" = ( /obj/structure/machinery/shower{ @@ -276,10 +221,7 @@ dir = 1; pixel_y = 20 }, -/turf/open/floor/prison{ - dir = 2; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/south, /area/adminlevel/bunker01/caves) "aH" = ( /obj/structure/surface/table/reinforced, @@ -288,19 +230,13 @@ req_access_txt = "201"; req_one_access = null }, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "emerald" - }, +/turf/open/floor/almayer/emerald/southwest, /area/adminlevel/bunker01/caves) "aI" = ( /obj/structure/machinery/power/apc/antag{ dir = 2 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "emeraldcorner" - }, +/turf/open/floor/almayer/emeraldcorner/west, /area/adminlevel/bunker01/command) "aJ" = ( /obj/structure/machinery/disposal, @@ -315,9 +251,7 @@ /obj/structure/sign/safety/terminal{ pixel_x = -32 }, -/turf/open/floor/carpet/edge{ - dir = 8 - }, +/turf/open/floor/carpet/edge/west, /area/adminlevel/bunker01/command) "aL" = ( /obj/structure/pipes/vents/pump{ @@ -331,18 +265,13 @@ }, /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/disposalpipe/segment, -/turf/open/floor/carpet/edge{ - dir = 4 - }, +/turf/open/floor/carpet/edge/east, /area/adminlevel/bunker01/bathroom) "aN" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/prison{ - dir = 2; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/south, /area/adminlevel/bunker01/bathroom) "aO" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -350,19 +279,13 @@ icon_state = "intact-supply" }, /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 2; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/south, /area/adminlevel/bunker01/bathroom) "aP" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - dir = 2; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/south, /area/adminlevel/bunker01/bathroom) "aQ" = ( /turf/closed/wall, @@ -377,9 +300,7 @@ /obj/structure/surface/table/holotable/wood, /obj/item/clothing/mask/cigarette/cigar/havana, /obj/item/ashtray/glass, -/turf/open/floor/carpet/edge{ - dir = 10 - }, +/turf/open/floor/carpet/edge/southwest, /area/adminlevel/bunker01/command) "aT" = ( /obj/structure/closet/cabinet, @@ -389,9 +310,7 @@ "aU" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/disposalpipe/segment, -/turf/open/floor/carpet/edge{ - dir = 6 - }, +/turf/open/floor/carpet/edge/southeast, /area/adminlevel/bunker01/bathroom) "aV" = ( /obj/structure/sink{ @@ -402,10 +321,7 @@ /obj/structure/mirror{ pixel_y = -28 }, -/turf/open/floor/prison{ - dir = 2; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/south, /area/adminlevel/bunker01/bathroom) "aW" = ( /obj/structure/mirror{ @@ -416,18 +332,12 @@ pixel_x = 0; pixel_y = -10 }, -/turf/open/floor/prison{ - dir = 2; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/south, /area/adminlevel/bunker01/bathroom) "aX" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 2; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/south, /area/adminlevel/bunker01/bathroom) "aY" = ( /obj/structure/closet/secure_closet/personal, @@ -480,10 +390,7 @@ }, /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/disposalpipe/segment, -/turf/open/floor/prison{ - dir = 2; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/south, /area/adminlevel/bunker01/bedroom) "bh" = ( /turf/closed/wall, @@ -564,62 +471,41 @@ "bx" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk, -/turf/open/floor/prison{ - dir = 2; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/south, /area/adminlevel/bunker01/kitchen) "by" = ( /obj/structure/machinery/light{ dir = 1 }, /obj/structure/closet/secure_closet/freezer/fridge/full, -/turf/open/floor/prison{ - dir = 2; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/south, /area/adminlevel/bunker01/kitchen) "bz" = ( /obj/structure/closet/secure_closet/freezer/meat, /obj/structure/machinery/firealarm{ pixel_y = 24 }, -/turf/open/floor/prison{ - dir = 2; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/south, /area/adminlevel/bunker01/kitchen) "bA" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/juicer, -/turf/open/floor/prison{ - dir = 2; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/south, /area/adminlevel/bunker01/kitchen) "bB" = ( /obj/structure/reagent_dispensers/watertank, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "blue" - }, +/turf/open/floor/almayer/blue/northwest, /area/adminlevel/bunker01/hydroponics) "bC" = ( /obj/structure/surface/rack, /obj/item/storage/bag/plants, /obj/item/tool/shovel/spade, /obj/item/reagent_container/glass/bucket, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/almayer/blue/north, /area/adminlevel/bunker01/hydroponics) "bD" = ( /obj/structure/machinery/hydro_floodlight, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "blue" - }, +/turf/open/floor/almayer/blue/northeast, /area/adminlevel/bunker01/hydroponics) "bE" = ( /obj/structure/bed, @@ -672,10 +558,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/prison{ - dir = 2; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/south, /area/adminlevel/bunker01/bedroom) "bL" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -686,16 +569,10 @@ dir = 8; icon_state = "pipe-c" }, -/turf/open/floor/prison{ - dir = 2; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/south, /area/adminlevel/bunker01/kitchen) "bM" = ( -/turf/open/floor/prison{ - dir = 2; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/south, /area/adminlevel/bunker01/kitchen) "bN" = ( /obj/structure/surface/table/reinforced, @@ -704,30 +581,21 @@ dir = 4; pixel_x = 25 }, -/turf/open/floor/prison{ - dir = 2; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/south, /area/adminlevel/bunker01/kitchen) "bO" = ( /obj/structure/machinery/light{ dir = 8; icon_state = "tube1" }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/almayer/blue/west, /area/adminlevel/bunker01/hydroponics) "bP" = ( /turf/open/floor/almayer, /area/adminlevel/bunker01/hydroponics) "bQ" = ( /obj/structure/machinery/portable_atmospherics/hydroponics, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/almayer/blue/east, /area/adminlevel/bunker01/hydroponics) "bR" = ( /obj/structure/pipes/vents/pump{ @@ -842,10 +710,7 @@ dir = 5; icon_state = "intact-supply" }, -/turf/open/floor/prison{ - dir = 2; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/south, /area/adminlevel/bunker01/kitchen) "cd" = ( /obj/structure/surface/table/reinforced, @@ -853,20 +718,14 @@ dir = 1; icon_state = "map-supply" }, -/turf/open/floor/prison{ - dir = 2; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/south, /area/adminlevel/bunker01/kitchen) "ce" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4; icon_state = "intact-supply" }, -/turf/open/floor/prison{ - dir = 2; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/south, /area/adminlevel/bunker01/kitchen) "cf" = ( /obj/structure/surface/table/reinforced, @@ -875,10 +734,7 @@ dir = 8; id_tag = "mining_outpost_pump" }, -/turf/open/floor/prison{ - dir = 2; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/south, /area/adminlevel/bunker01/kitchen) "cg" = ( /mob/living/simple_animal/chicken{ @@ -888,10 +744,7 @@ name = "\improper Charlie"; voice_name = "chicken" }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/almayer/blue/west, /area/adminlevel/bunker01/hydroponics) "ch" = ( /obj/structure/pipes/vents/pump/on, @@ -904,10 +757,7 @@ pixel_x = 24; pixel_y = 0 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/almayer/blue/east, /area/adminlevel/bunker01/hydroponics) "cj" = ( /obj/structure/closet/secure_closet/personal, @@ -960,40 +810,28 @@ "ct" = ( /obj/structure/machinery/vending/dinnerware, /obj/structure/machinery/door/firedoor/border_only/almayer/antag, -/turf/open/floor/prison{ - dir = 2; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/south, /area/adminlevel/bunker01/bedroom) "cu" = ( /obj/structure/surface/table/reinforced, /obj/item/tool/kitchen/rollingpin, /obj/item/tool/kitchen/knife, /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 2; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/south, /area/adminlevel/bunker01/kitchen) "cv" = ( /obj/structure/machinery/processor, /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - dir = 2; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/south, /area/adminlevel/bunker01/kitchen) "cw" = ( /obj/structure/sign/safety/biolab, /turf/closed/wall, /area/adminlevel/bunker01/kitchen) "cx" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/almayer/blue/west, /area/adminlevel/bunker01/hydroponics) "cy" = ( /obj/structure/pipes/standard/simple/hidden/supply, @@ -1004,10 +842,7 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/almayer/blue/east, /area/adminlevel/bunker01/hydroponics) "cA" = ( /turf/closed/wall, @@ -1031,10 +866,7 @@ "cF" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/door/firedoor/border_only/almayer/antag, -/turf/open/floor/prison{ - dir = 2; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/south, /area/adminlevel/bunker01/bedroom) "cG" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -1045,10 +877,7 @@ dir = 1; pixel_y = -10 }, -/turf/open/floor/prison{ - dir = 2; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/south, /area/adminlevel/bunker01/kitchen) "cH" = ( /obj/structure/machinery/door/airlock/almayer/generic{ @@ -1077,16 +906,11 @@ /obj/structure/machinery/power/apc/antag{ pixel_y = -25 }, -/turf/open/floor/almayer{ - icon_state = "blue" - }, +/turf/open/floor/almayer/blue, /area/adminlevel/bunker01/hydroponics) "cK" = ( /obj/structure/machinery/vending/hydronutrients, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "blue" - }, +/turf/open/floor/almayer/blue/southeast, /area/adminlevel/bunker01/hydroponics) "cL" = ( /obj/structure/surface/rack, @@ -1096,10 +920,7 @@ /obj/item/storage/box/lights/mixed, /obj/item/storage/box/lights/mixed, /obj/item/storage/box/lights/mixed, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "green" - }, +/turf/open/floor/almayer/green/northwest, /area/adminlevel/bunker01/caves) "cM" = ( /obj/structure/surface/rack, @@ -1115,10 +936,7 @@ /obj/item/stack/sheet/glass{ amount = 50 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/almayer/green/north, /area/adminlevel/bunker01/storage) "cN" = ( /obj/structure/surface/rack, @@ -1127,40 +945,26 @@ /obj/item/tool/shovel/etool/folded, /obj/item/tool/shovel/etool/folded, /obj/item/tool/shovel/etool/folded, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/almayer/green/north, /area/adminlevel/bunker01/storage) "cO" = ( /obj/structure/machinery/cm_vending/sorted/tech/tool_storage/antag, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/almayer/green/north, /area/adminlevel/bunker01/storage) "cP" = ( /obj/structure/machinery/cm_vending/sorted/tech/electronics_storage/antag, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/almayer/green/north, /area/adminlevel/bunker01/storage) "cQ" = ( /obj/structure/machinery/cm_vending/sorted/tech/comp_storage/antag, /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "green" - }, +/turf/open/floor/almayer/green/northeast, /area/adminlevel/bunker01/storage) "cR" = ( /obj/structure/machinery/recharge_station, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/adminlevel/bunker01/storage) "cS" = ( /turf/open/mars_cave, @@ -1188,37 +992,23 @@ dir = 8; icon_state = "tube1" }, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "green" - }, +/turf/open/floor/almayer/green/southwest, /area/adminlevel/bunker01/caves) "cV" = ( -/turf/open/floor/almayer{ - icon_state = "green" - }, +/turf/open/floor/almayer/green, /area/adminlevel/bunker01/storage) "cW" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "greencorner" - }, +/turf/open/floor/almayer/greencorner/west, /area/adminlevel/bunker01/storage) "cX" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "greencorner" - }, +/turf/open/floor/almayer/greencorner/east, /area/adminlevel/bunker01/storage) "cY" = ( /obj/structure/machinery/power/apc/antag{ dir = 4; pixel_x = 25 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "green" - }, +/turf/open/floor/almayer/green/northeast, /area/adminlevel/bunker01/storage) "cZ" = ( /turf/closed/wall/r_wall, @@ -1261,39 +1051,27 @@ /obj/structure/largecrate/supply/supplies/metal, /obj/structure/largecrate/supply/supplies/metal, /obj/structure/largecrate/supply/supplies/metal, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/adminlevel/bunker01/caves) "dg" = ( /obj/structure/largecrate/supply/supplies/plasteel, /obj/structure/largecrate/supply/supplies/plasteel, /obj/structure/largecrate/supply/supplies/plasteel, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/adminlevel/bunker01/storage) "dh" = ( /obj/structure/largecrate/supply/supplies/sandbags, /obj/structure/largecrate/supply/supplies/sandbags, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/adminlevel/bunker01/storage) "di" = ( -/turf/open/floor/almayer{ - dir = 10; - icon_state = "green" - }, +/turf/open/floor/almayer/green/southwest, /area/adminlevel/bunker01/storage) "dj" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "greencorner" - }, +/turf/open/floor/almayer/greencorner/west, /area/adminlevel/bunker01/storage) "dk" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ @@ -1370,9 +1148,7 @@ dir = 8; health = 80 }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/adminlevel/bunker01/mainroom) "dr" = ( /obj/structure/disposalpipe/segment, @@ -1384,9 +1160,7 @@ dir = 8; health = 80 }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/adminlevel/bunker01/mainroom) "dt" = ( /obj/structure/machinery/firealarm{ @@ -1398,9 +1172,7 @@ dir = 4; health = 80 }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/adminlevel/bunker01/mainroom) "du" = ( /turf/closed/wall/r_wall, @@ -1410,15 +1182,10 @@ /area/adminlevel/bunker01/engineering) "dw" = ( /obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/adminlevel/bunker01/storage) "dx" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "green" - }, +/turf/open/floor/almayer/green/west, /area/adminlevel/bunker01/storage) "dy" = ( /obj/structure/pipes/standard/simple/hidden/supply, @@ -1429,10 +1196,7 @@ /obj/structure/disposalpipe/trunk{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "green" - }, +/turf/open/floor/almayer/green/east, /area/adminlevel/bunker01/storage) "dA" = ( /obj/structure/sign/safety/storage{ @@ -1515,9 +1279,7 @@ input_level = 50000; inputting = 1 }, -/turf/open/floor/almayer{ - icon_state = "orangefull" - }, +/turf/open/floor/almayer/orangefull, /area/adminlevel/bunker01/engineering) "dL" = ( /obj/structure/machinery/power/smes/buildable/charged{ @@ -1529,32 +1291,22 @@ dir = 1; pixel_y = 20 }, -/turf/open/floor/almayer{ - icon_state = "orangefull" - }, +/turf/open/floor/almayer/orangefull, /area/adminlevel/bunker01/engineering) "dM" = ( /obj/structure/machinery/light, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "green" - }, +/turf/open/floor/almayer/green/southwest, /area/adminlevel/bunker01/storage) "dN" = ( /obj/structure/machinery/autolathe/full, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "green" - }, +/turf/open/floor/almayer/green/southeast, /area/adminlevel/bunker01/storage) "dO" = ( /obj/structure/window/reinforced{ dir = 4; health = 80 }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/adminlevel/bunker01/mainroom) "dP" = ( /obj/structure/pipes/standard/simple/hidden/supply, @@ -1589,20 +1341,17 @@ dir = 1; icon_state = "term" }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" +/obj/structure/closet/hydrant{ + pixel_x = -32 }, +/turf/open/floor/almayer/orange/west, /area/adminlevel/bunker01/engineering) "dU" = ( /obj/structure/machinery/power/terminal{ dir = 1; icon_state = "term" }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/east, /area/adminlevel/bunker01/engineering) "dV" = ( /obj/structure/sign/safety/electronics, @@ -1669,49 +1418,33 @@ /area/adminlevel/bunker01/mainroom) "ed" = ( /obj/structure/largecrate/supply/weapons/m56d, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/adminlevel/bunker01/mainroom) "ee" = ( /obj/structure/closet/crate/secure/mortar_ammo/mortar_kit, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/adminlevel/bunker01/mainroom) "ef" = ( /turf/open/mars_cave, /area/adminlevel/bunker01/mainroom) "eg" = ( -/obj/structure/closet/firecloset, /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "orange" - }, +/obj/structure/machinery/fuelcell_recycler/full, +/turf/open/floor/almayer/orange/northwest, /area/adminlevel/bunker01/engineering) "eh" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orangecorner" - }, +/turf/open/floor/almayer/orangecorner/north, /area/adminlevel/bunker01/engineering) "ei" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orangecorner" - }, +/turf/open/floor/almayer/orangecorner/east, /area/adminlevel/bunker01/engineering) "ej" = ( /obj/structure/machinery/firealarm{ pixel_y = 24 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/north, /area/adminlevel/bunker01/engineering) "ek" = ( /obj/structure/machinery/door/airlock/almayer/engineering{ @@ -1723,10 +1456,7 @@ /turf/open/floor/almayer, /area/adminlevel/bunker01/engineering) "el" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/almayer/green/north, /area/adminlevel/bunker01/engineering) "em" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ @@ -1745,10 +1475,7 @@ dir = 8; id_tag = "mining_outpost_pump" }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "green" - }, +/turf/open/floor/almayer/green/northeast, /area/adminlevel/bunker01/engineering) "eo" = ( /obj/structure/machinery/cm_vending/gear/antag_guns, @@ -1777,9 +1504,7 @@ dir = 8; pixel_x = -25 }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/adminlevel/bunker01/mainroom) "er" = ( /obj/structure/largecrate/supply/supplies/flares, @@ -1787,21 +1512,16 @@ dir = 8; health = 80 }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/adminlevel/bunker01/mainroom) "es" = ( /obj/structure/closet/crate/secure/mortar_ammo/full{ name = "\improper M402 mortar ammo crate" }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/adminlevel/bunker01/mainroom) "et" = ( /obj/structure/surface/table/reinforced, -/obj/item/clothing/gloves/yellow, /obj/structure/pipes/vents/pump{ dir = 4 }, @@ -1813,10 +1533,10 @@ dir = 8; pixel_x = -25 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" - }, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/turf/open/floor/almayer/orange/west, /area/adminlevel/bunker01/engineering) "eu" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -1858,10 +1578,7 @@ "ex" = ( /obj/structure/surface/table/reinforced, /obj/effect/spawner/random/tool, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "green" - }, +/turf/open/floor/almayer/green/southeast, /area/adminlevel/bunker01/engineering) "ey" = ( /obj/structure/disposalpipe/segment, @@ -1884,32 +1601,19 @@ /obj/structure/surface/table/reinforced, /obj/effect/spawner/random/toolbox, /obj/structure/disposalpipe/segment, -/turf/open/floor/almayer{ - icon_state = "orangefull" - }, +/obj/item/clothing/gloves/yellow, +/turf/open/floor/almayer/orangefull, /area/adminlevel/bunker01/engineering) "eB" = ( -/obj/structure/machinery/power/geothermal{ - buildstate = 4; - icon_state = "on100"; - is_on = 1 - }, -/turf/open/floor/almayer{ - icon_state = "orangefull" - }, +/obj/structure/machinery/power/reactor/colony, +/turf/open/floor/almayer/orangefull, /area/adminlevel/bunker01/engineering) "eC" = ( /obj/structure/machinery/light/small{ pixel_y = 0 }, -/obj/structure/machinery/power/geothermal{ - buildstate = 4; - icon_state = "on100"; - is_on = 1 - }, -/turf/open/floor/almayer{ - icon_state = "orangefull" - }, +/obj/structure/machinery/power/reactor/colony, +/turf/open/floor/almayer/orangefull, /area/adminlevel/bunker01/engineering) "eD" = ( /obj/structure/sign/safety/electronics, @@ -1944,10 +1648,7 @@ dir = 1 }, /obj/structure/closet/firecloset, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/almayer/red/northwest, /area/adminlevel/bunker01/security) "eJ" = ( /obj/structure/pipes/standard/simple/hidden/supply, @@ -1957,10 +1658,7 @@ "eK" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/almayer/red/northeast, /area/adminlevel/bunker01/security) "eL" = ( /obj/structure/machinery/power/apc/antag{ @@ -2013,16 +1711,10 @@ /area/adminlevel/bunker01/security) "eS" = ( /obj/structure/window/framed/colony/reinforced, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/almayer/red/north, /area/adminlevel/bunker01/security) "eT" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "redcorner" - }, +/turf/open/floor/almayer/redcorner/north, /area/adminlevel/bunker01/security) "eU" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ @@ -2222,20 +1914,13 @@ /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "redcorner" - }, +/turf/open/floor/almayer/redcorner, /area/adminlevel/bunker01/security) "fo" = ( -/turf/open/floor/almayer{ - icon_state = "red" - }, +/turf/open/floor/almayer/red, /area/adminlevel/bunker01/security) "fp" = ( -/turf/open/floor/almayer{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/almayer/red/southeast, /area/adminlevel/bunker01/security) "fq" = ( /obj/structure/sign/safety/hazard, @@ -2250,10 +1935,7 @@ /obj/structure/machinery/door/firedoor/border_only/almayer/antag{ dir = 2 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_corner" - }, +/turf/open/floor/almayer/sterile_green_corner/north, /area/adminlevel/bunker01/medbay) "fs" = ( /obj/structure/machinery/door/poddoor/shutters/almayer/open{ @@ -2264,10 +1946,7 @@ /obj/structure/machinery/door/firedoor/border_only/almayer/antag{ dir = 2 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/north, /area/adminlevel/bunker01/medbay) "ft" = ( /obj/structure/machinery/door/poddoor/shutters/almayer/open{ @@ -2278,10 +1957,7 @@ /obj/structure/machinery/door/firedoor/border_only/almayer/antag{ dir = 2 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/north, /area/adminlevel/bunker01/medbay) "fu" = ( /obj/structure/surface/table/reinforced, @@ -2293,10 +1969,7 @@ /obj/structure/machinery/door/firedoor/border_only/almayer/antag{ dir = 2 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/north, /area/adminlevel/bunker01/medbay) "fv" = ( /obj/structure/surface/table/reinforced, @@ -2308,9 +1981,7 @@ /obj/structure/machinery/door/firedoor/border_only/almayer/antag{ dir = 2 }, -/turf/open/floor/almayer{ - icon_state = "sterile_green_corner" - }, +/turf/open/floor/almayer/sterile_green_corner, /area/adminlevel/bunker01/medbay) "fw" = ( /turf/closed/wall/r_wall, @@ -2324,9 +1995,7 @@ /obj/structure/machinery/door/firedoor/border_only/almayer/antag{ dir = 2 }, -/turf/open/floor/almayer{ - icon_state = "sterile_green" - }, +/turf/open/floor/almayer/sterile_green, /area/adminlevel/bunker01/medbay) "fy" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/medidoor{ @@ -2346,9 +2015,7 @@ /obj/structure/machinery/door/firedoor/border_only/almayer/antag{ dir = 2 }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/adminlevel/bunker01/medbay) "fz" = ( /obj/structure/machinery/door/poddoor/shutters/almayer/open{ @@ -2358,9 +2025,7 @@ /obj/structure/machinery/door/firedoor/border_only/almayer/antag{ dir = 2 }, -/turf/open/floor/almayer{ - icon_state = "sterile_green" - }, +/turf/open/floor/almayer/sterile_green, /area/adminlevel/bunker01/medbay) "fA" = ( /turf/closed/wall/rock/brown, @@ -2385,50 +2050,31 @@ dir = 8; icon_state = "tube1" }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_corner" - }, +/turf/open/floor/almayer/sterile_green_corner/north, /area/adminlevel/bunker01/medbay) "fE" = ( -/turf/open/floor/almayer{ - dir = 9; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/northwest, /area/adminlevel/bunker01/medbay) "fF" = ( -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/adminlevel/bunker01/medbay) "fG" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/east, /area/adminlevel/bunker01/medbay) "fH" = ( /obj/structure/window/framed/colony, /obj/structure/machinery/door/firedoor/border_only/almayer/antag{ dir = 2 }, -/turf/open/floor/almayer{ - icon_state = "sterile_green" - }, +/turf/open/floor/almayer/sterile_green, /area/adminlevel/bunker01/medbay) "fI" = ( /obj/structure/machinery/medical_pod/bodyscanner, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_corner" - }, +/turf/open/floor/almayer/sterile_green_corner/north, /area/adminlevel/bunker01/medbay) "fJ" = ( /obj/structure/machinery/body_scanconsole, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/north, /area/adminlevel/bunker01/medbay) "fK" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -2436,49 +2082,33 @@ icon_state = "intact-supply" }, /obj/structure/disposalpipe/segment, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/adminlevel/bunker01/medbay) "fL" = ( /obj/structure/machinery/medical_pod/bodyscanner, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/north, /area/adminlevel/bunker01/medbay) "fM" = ( /obj/structure/machinery/medical_pod/autodoc, /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/north, /area/adminlevel/bunker01/medbay) "fN" = ( /obj/structure/machinery/autodoc_console, /obj/structure/sign/safety/autodoc{ pixel_y = 32 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/north, /area/adminlevel/bunker01/medbay) "fO" = ( /obj/structure/machinery/medical_pod/autodoc, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/north, /area/adminlevel/bunker01/medbay) "fP" = ( /obj/structure/machinery/autodoc_console, -/turf/open/floor/almayer{ - icon_state = "sterile_green_corner" - }, +/turf/open/floor/almayer/sterile_green_corner, /area/adminlevel/bunker01/medbay) "fQ" = ( /obj/structure/machinery/door/airlock/almayer/security/glass{ @@ -2504,20 +2134,14 @@ dir = 4; icon_state = "intact-supply" }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "redcorner" - }, +/turf/open/floor/almayer/redcorner/east, /area/adminlevel/bunker01/security) "fT" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4; icon_state = "intact-supply" }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/almayer/red/north, /area/adminlevel/bunker01/security) "fU" = ( /obj/structure/bed, @@ -2525,9 +2149,7 @@ dir = 8; id_tag = "mining_outpost_pump" }, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, +/turf/open/floor/almayer/redfull, /area/adminlevel/bunker01/security) "fV" = ( /obj/structure/machinery/chem_dispenser{ @@ -2539,16 +2161,10 @@ pixel_x = -24; pixel_y = 0 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_corner" - }, +/turf/open/floor/almayer/sterile_green_corner/west, /area/adminlevel/bunker01/medbay) "fW" = ( -/turf/open/floor/almayer{ - dir = 10; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/southwest, /area/adminlevel/bunker01/medbay) "fX" = ( /obj/structure/surface/table/reinforced, @@ -2561,27 +2177,21 @@ /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/adminlevel/bunker01/medbay) "fY" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 1; icon_state = "map-supply" }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/adminlevel/bunker01/medbay) "fZ" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4; icon_state = "intact-supply" }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/adminlevel/bunker01/medbay) "ga" = ( /obj/structure/machinery/door/airlock/almayer/medical/glass{ @@ -2594,16 +2204,12 @@ icon_state = "intact-supply" }, /obj/structure/machinery/door/firedoor/border_only/almayer/antag, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/adminlevel/bunker01/medbay) "gb" = ( /obj/structure/pipes/standard/manifold/hidden/supply, /obj/structure/disposalpipe/segment, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/adminlevel/bunker01/medbay) "gc" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -2615,10 +2221,7 @@ pixel_x = 24; pixel_y = 0 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/east, /area/adminlevel/bunker01/medbay) "gd" = ( /obj/structure/toilet{ @@ -2638,23 +2241,17 @@ /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "red" - }, +/turf/open/floor/almayer/red, /area/adminlevel/bunker01/security) "gg" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "red" - }, +/turf/open/floor/almayer/red, /area/adminlevel/bunker01/security) "gh" = ( /obj/structure/window/framed/colony/reinforced, -/turf/open/floor/almayer{ - icon_state = "red" - }, +/turf/open/floor/almayer/red, /area/adminlevel/bunker01/security) "gi" = ( /obj/structure/toilet{ @@ -2664,16 +2261,11 @@ /obj/structure/machinery/light/small{ pixel_y = 0 }, -/turf/open/floor/almayer{ - icon_state = "red" - }, +/turf/open/floor/almayer/red, /area/adminlevel/bunker01/security) "gj" = ( /obj/structure/machinery/cm_vending/sorted/medical/antag, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_corner" - }, +/turf/open/floor/almayer/sterile_green_corner/west, /area/adminlevel/bunker01/medbay) "gk" = ( /obj/structure/surface/table/reinforced, @@ -2684,9 +2276,7 @@ /obj/item/storage/box/pillbottles, /obj/item/storage/box/pillbottles, /obj/item/tool/hand_labeler, -/turf/open/floor/almayer{ - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side, /area/adminlevel/bunker01/medbay) "gl" = ( /obj/structure/surface/table/reinforced, @@ -2705,45 +2295,32 @@ /obj/item/stack/sheet/mineral/phoron{ amount = 25 }, -/turf/open/floor/almayer{ - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side, /area/adminlevel/bunker01/medbay) "gm" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 1; icon_state = "intact-supply" }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/adminlevel/bunker01/medbay) "gn" = ( /obj/structure/machinery/iv_drip, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/west, /area/adminlevel/bunker01/medbay) "go" = ( /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/adminlevel/bunker01/medbay) "gp" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/adminlevel/bunker01/medbay) "gq" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/adminlevel/bunker01/medbay) "gr" = ( /obj/structure/pipes/standard/simple/hidden/supply, @@ -2751,10 +2328,7 @@ dir = 4; pixel_x = 25 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/east, /area/adminlevel/bunker01/medbay) "gs" = ( /obj/structure/machinery/door/airlock/almayer/security{ @@ -2786,17 +2360,13 @@ /obj/structure/machinery/door/firedoor/border_only/almayer/antag{ dir = 2 }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/adminlevel/bunker01/medbay) "gw" = ( /obj/structure/machinery/door/firedoor/border_only/almayer/antag{ dir = 2 }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/adminlevel/bunker01/medbay) "gx" = ( /obj/structure/machinery/iv_drip, @@ -2804,19 +2374,14 @@ dir = 8; icon_state = "tube1" }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_corner" - }, +/turf/open/floor/almayer/sterile_green_corner/west, /area/adminlevel/bunker01/medbay) "gy" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side, /area/adminlevel/bunker01/medbay) "gz" = ( /obj/structure/bed, @@ -2826,21 +2391,15 @@ pixel_y = -23 }, /obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side, /area/adminlevel/bunker01/medbay) "gA" = ( /obj/structure/bed, -/turf/open/floor/almayer{ - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side, /area/adminlevel/bunker01/medbay) "gB" = ( /obj/structure/machinery/medical_pod/autodoc, -/turf/open/floor/almayer{ - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side, /area/adminlevel/bunker01/medbay) "gC" = ( /obj/structure/machinery/autodoc_console, @@ -2848,17 +2407,12 @@ pixel_y = -32 }, /obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side, /area/adminlevel/bunker01/medbay) "gD" = ( /obj/structure/machinery/autodoc_console, /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/east, /area/adminlevel/bunker01/medbay) "gE" = ( /turf/open/floor/almayer, @@ -2876,17 +2430,11 @@ /obj/item/storage/box/masks, /obj/item/storage/box/gloves, /obj/item/storage/box/gloves, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_corner" - }, +/turf/open/floor/almayer/sterile_green_corner/north, /area/adminlevel/bunker01/medbay) "gH" = ( /obj/structure/machinery/cm_vending/sorted/medical/blood/antag, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/north, /area/adminlevel/bunker01/medbay) "gI" = ( /obj/structure/window/framed/colony, @@ -2897,10 +2445,7 @@ /obj/structure/machinery/door/firedoor/border_only/almayer/antag{ dir = 2 }, -/turf/open/floor/almayer{ - dir = 2; - icon_state = "green" - }, +/turf/open/floor/almayer/green/south, /area/adminlevel/bunker01/medbay) "gJ" = ( /obj/structure/machinery/door/airlock/almayer/medical{ @@ -2911,9 +2456,7 @@ req_one_access = null }, /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/adminlevel/bunker01/medbay) "gK" = ( /obj/structure/window/framed/colony, @@ -2924,9 +2467,7 @@ /obj/structure/machinery/door/firedoor/border_only/almayer/antag{ dir = 2 }, -/turf/open/floor/almayer{ - icon_state = "sterile_green" - }, +/turf/open/floor/almayer/sterile_green, /area/adminlevel/bunker01/medbay) "gL" = ( /obj/structure/window/framed/colony, @@ -2937,9 +2478,7 @@ /obj/structure/machinery/door/firedoor/border_only/almayer/antag{ dir = 2 }, -/turf/open/floor/almayer{ - icon_state = "sterile_green" - }, +/turf/open/floor/almayer/sterile_green, /area/adminlevel/bunker01/medbay) "gM" = ( /obj/structure/machinery/door/airlock/almayer/medical{ @@ -2950,9 +2489,7 @@ req_one_access = null }, /obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/adminlevel/bunker01/medbay) "gN" = ( /obj/structure/machinery/door/airlock/almayer/medical{ @@ -2965,9 +2502,7 @@ /obj/structure/machinery/door/firedoor/border_only/almayer/antag{ dir = 2 }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/adminlevel/bunker01/medbay) "gO" = ( /obj/structure/pipes/vents/pump{ @@ -3002,28 +2537,20 @@ dir = 4; icon_state = "intact-supply" }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/west, /area/adminlevel/bunker01/medbay) "gS" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 10; icon_state = "intact-supply" }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/adminlevel/bunker01/medbay) "gT" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/east, /area/adminlevel/bunker01/medbay) "gU" = ( /obj/structure/machinery/door_control{ @@ -3031,18 +2558,13 @@ name = "Surgery Door Release"; pixel_x = -23 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_corner" - }, +/turf/open/floor/almayer/sterile_green_corner/north, /area/adminlevel/bunker01/medbay) "gV" = ( /obj/structure/machinery/bioprinter{ stored_metal = 1000 }, -/turf/open/floor/almayer{ - icon_state = "sterile_green_corner" - }, +/turf/open/floor/almayer/sterile_green_corner, /area/adminlevel/bunker01/medbay) "gW" = ( /obj/structure/machinery/door_control{ @@ -3050,10 +2572,7 @@ name = "Surgery Door Release"; pixel_x = -23 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_corner" - }, +/turf/open/floor/almayer/sterile_green_corner/north, /area/adminlevel/bunker01/medbay) "gX" = ( /obj/structure/morgue/crematorium{ @@ -3116,16 +2635,11 @@ /obj/item/storage/belt/medical/lifesaver/full, /obj/item/storage/belt/medical/lifesaver/upp/full, /obj/item/storage/belt/medical/lifesaver/upp/full, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/west, /area/adminlevel/bunker01/medbay) "hb" = ( /obj/structure/pipes/standard/manifold/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/adminlevel/bunker01/medbay) "hc" = ( /obj/structure/pipes/vents/pump{ @@ -3137,10 +2651,7 @@ pixel_x = 24; pixel_y = 0 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/east, /area/adminlevel/bunker01/medbay) "hd" = ( /obj/structure/machinery/light{ @@ -3150,19 +2661,14 @@ /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/west, /area/adminlevel/bunker01/medbay) "he" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 9; icon_state = "intact-supply" }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/adminlevel/bunker01/medbay) "hf" = ( /obj/structure/sink{ @@ -3171,10 +2677,7 @@ pixel_x = 11; pixel_y = 0 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/east, /area/adminlevel/bunker01/medbay) "hg" = ( /obj/structure/machinery/light/small{ @@ -3207,16 +2710,11 @@ /obj/item/reagent_container/spray/cleaner, /obj/item/reagent_container/spray/cleaner, /obj/item/reagent_container/spray/cleaner, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_corner" - }, +/turf/open/floor/almayer/sterile_green_corner/west, /area/adminlevel/bunker01/medbay) "hj" = ( /obj/structure/machinery/cm_vending/sorted/medical/marinemed/antag, -/turf/open/floor/almayer{ - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side, /area/adminlevel/bunker01/medbay) "hk" = ( /obj/structure/sign/safety/medical{ @@ -3224,28 +2722,18 @@ pixel_y = -32 }, /obj/structure/machinery/cm_vending/sorted/medical/antag, -/turf/open/floor/almayer{ - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side, /area/adminlevel/bunker01/medbay) "hl" = ( -/turf/open/floor/almayer{ - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side, /area/adminlevel/bunker01/medbay) "hm" = ( /obj/structure/closet/secure_closet/medical2, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "sterile_green_corner" - }, +/turf/open/floor/almayer/sterile_green_corner/east, /area/adminlevel/bunker01/medbay) "hn" = ( /obj/structure/machinery/iv_drip, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_corner" - }, +/turf/open/floor/almayer/sterile_green_corner/west, /area/adminlevel/bunker01/medbay) "ho" = ( /obj/structure/machinery/optable, @@ -3255,9 +2743,7 @@ pixel_y = -23 }, /obj/item/tank/anesthetic, -/turf/open/floor/almayer{ - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side, /area/adminlevel/bunker01/medbay) "hp" = ( /obj/structure/surface/table/reinforced, @@ -3266,10 +2752,7 @@ desc = "Someone has crossed out the Space from Space Cleaner and written in Surgery. 'Do not remove under punishment of death!!!' is scrawled on the back."; name = "Surgery Cleaner" }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "sterile_green_corner" - }, +/turf/open/floor/almayer/sterile_green_corner/east, /area/adminlevel/bunker01/medbay) "hq" = ( /obj/structure/machinery/optable, @@ -3279,9 +2762,7 @@ pixel_y = -23 }, /obj/item/tank/anesthetic, -/turf/open/floor/almayer{ - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side, /area/adminlevel/bunker01/medbay) (1,1,1) = {" diff --git a/maps/templates/basetwo.dmm b/maps/templates/basetwo.dmm index abc2af29643d..890d433cb575 100644 --- a/maps/templates/basetwo.dmm +++ b/maps/templates/basetwo.dmm @@ -64,75 +64,46 @@ /area/adminlevel/bunker01/medbay) "an" = ( /obj/structure/bed, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_corner" - }, +/turf/open/floor/almayer/sterile_green_corner/north, /area/adminlevel/bunker01/medbay) "ao" = ( /obj/structure/machinery/iv_drip, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/north, /area/adminlevel/bunker01/medbay) "ap" = ( /obj/structure/bed, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/north, /area/adminlevel/bunker01/medbay) "aq" = ( /obj/structure/machinery/body_scanconsole{ dir = 8 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/north, /area/adminlevel/bunker01/medbay) "ar" = ( /obj/structure/machinery/medical_pod/bodyscanner, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/north, /area/adminlevel/bunker01/medbay) "as" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/north, /area/adminlevel/bunker01/medbay) "at" = ( /obj/structure/machinery/medical_pod/autodoc, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/north, /area/adminlevel/bunker01/medbay) "au" = ( /obj/structure/machinery/autodoc_console, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/north, /area/adminlevel/bunker01/medbay) "av" = ( /obj/structure/machinery/autodoc_console{ dir = 8 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/north, /area/adminlevel/bunker01/medbay) "aw" = ( /obj/structure/machinery/medical_pod/autodoc, -/turf/open/floor/almayer{ - icon_state = "sterile_green_corner" - }, +/turf/open/floor/almayer/sterile_green_corner, /area/adminlevel/bunker01/medbay) "ax" = ( /turf/closed/wall/r_wall/bunker, @@ -148,67 +119,40 @@ /area/adminlevel/bunker01/mainroom) "az" = ( /obj/structure/bed, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/west, /area/adminlevel/bunker01/medbay) "aA" = ( /obj/structure/machinery/iv_drip, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/adminlevel/bunker01/medbay) "aB" = ( /obj/structure/bed, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/adminlevel/bunker01/medbay) "aC" = ( -/turf/open/floor/almayer{ - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side, /area/adminlevel/bunker01/medbay) "aD" = ( -/turf/open/floor/almayer{ - dir = 10; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/southwest, /area/adminlevel/bunker01/medbay) "aE" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/east, /area/adminlevel/bunker01/medbay) "aF" = ( /obj/structure/machinery/cm_vending/sorted/tech/electronics_storage/antag, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/northwest, /area/adminlevel/bunker01/engineering) "aG" = ( /obj/structure/machinery/cm_vending/sorted/tech/tool_storage/antag, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/north, /area/adminlevel/bunker01/engineering) "aH" = ( /obj/structure/machinery/recharge_station, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/north, /area/adminlevel/bunker01/engineering) "aI" = ( /obj/structure/closet/firecloset, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/northeast, /area/adminlevel/bunker01/engineering) "aJ" = ( /turf/open/floor/almayer, @@ -218,26 +162,16 @@ /area/adminlevel/bunker01/mainroom) "aL" = ( /obj/structure/machinery/door/firedoor/border_only/almayer/antag, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/adminlevel/bunker01/medbay) "aM" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/west, /area/adminlevel/bunker01/medbay) "aN" = ( -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/adminlevel/bunker01/medbay) "aO" = ( -/turf/open/floor/almayer{ - dir = 9; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/northwest, /area/adminlevel/bunker01/medbay) "aP" = ( /obj/structure/surface/rack, @@ -246,19 +180,13 @@ /obj/item/tool/shovel/etool/folded, /obj/item/tool/shovel/etool/folded, /obj/item/tool/shovel/etool/folded, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/west, /area/adminlevel/bunker01/engineering) "aQ" = ( /turf/open/floor/almayer, /area/adminlevel/bunker01/engineering) "aR" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/east, /area/adminlevel/bunker01/engineering) "aS" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/medidoor{ @@ -268,56 +196,38 @@ req_one_access = null }, /obj/structure/machinery/door/firedoor/border_only/almayer/antag, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/adminlevel/bunker01/medbay) "aT" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_corner" - }, +/turf/open/floor/almayer/sterile_green_corner/west, /area/adminlevel/bunker01/medbay) "aU" = ( /obj/structure/machinery/body_scanconsole{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side, /area/adminlevel/bunker01/medbay) "aV" = ( /obj/structure/machinery/medical_pod/bodyscanner, -/turf/open/floor/almayer{ - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side, /area/adminlevel/bunker01/medbay) "aW" = ( /obj/structure/machinery/medical_pod/autodoc, -/turf/open/floor/almayer{ - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side, /area/adminlevel/bunker01/medbay) "aX" = ( /obj/structure/machinery/autodoc_console, -/turf/open/floor/almayer{ - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side, /area/adminlevel/bunker01/medbay) "aY" = ( /obj/structure/machinery/autodoc_console{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side, /area/adminlevel/bunker01/medbay) "aZ" = ( /obj/structure/machinery/medical_pod/autodoc, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "sterile_green_corner" - }, +/turf/open/floor/almayer/sterile_green_corner/east, /area/adminlevel/bunker01/medbay) "ba" = ( /obj/structure/surface/rack, @@ -333,10 +243,7 @@ /obj/item/stack/sheet/glass{ amount = 50 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/west, /area/adminlevel/bunker01/engineering) "bb" = ( /turf/open/floor/plating/plating_catwalk, @@ -347,9 +254,7 @@ req_access_txt = "201"; req_one_access = null }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/bunker01/engineering) "bd" = ( /obj/structure/machinery/door/airlock/almayer/medical/glass{ @@ -358,15 +263,11 @@ req_access = null; req_one_access = null }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/adminlevel/bunker01/medbay) "be" = ( /obj/structure/window/framed/colony/reinforced, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/bunker01/medbay) "bf" = ( /obj/structure/surface/rack, @@ -376,10 +277,7 @@ /obj/item/storage/box/lights/mixed, /obj/item/storage/box/lights/mixed, /obj/item/storage/box/lights/mixed, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/west, /area/adminlevel/bunker01/engineering) "bg" = ( /obj/structure/machinery/cm_vending/sorted/medical/marinemed/antag, @@ -388,27 +286,17 @@ id = "base_medbay"; name = "\improper Medbay Shutters" }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/bunker01/medbay) "bh" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_corner" - }, +/turf/open/floor/almayer/sterile_green_corner/north, /area/adminlevel/bunker01/medbay) "bi" = ( -/turf/open/floor/almayer{ - icon_state = "sterile_green_corner" - }, +/turf/open/floor/almayer/sterile_green_corner, /area/adminlevel/bunker01/medbay) "bj" = ( /obj/structure/closet/secure_closet/medical2, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_corner" - }, +/turf/open/floor/almayer/sterile_green_corner/north, /area/adminlevel/bunker01/medbay) "bk" = ( /obj/structure/surface/table/reinforced, @@ -448,56 +336,36 @@ /obj/item/storage/belt/medical/lifesaver/full, /obj/item/storage/belt/medical/lifesaver/upp/full, /obj/item/storage/belt/medical/lifesaver/upp/full, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/north, /area/adminlevel/bunker01/medbay) "bl" = ( /obj/structure/machinery/cm_vending/sorted/medical/blood/antag, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/north, /area/adminlevel/bunker01/medbay) "bm" = ( /obj/structure/machinery/cm_vending/sorted/medical/antag, -/turf/open/floor/almayer{ - icon_state = "sterile_green_corner" - }, +/turf/open/floor/almayer/sterile_green_corner, /area/adminlevel/bunker01/medbay) "bn" = ( /obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/southwest, /area/adminlevel/bunker01/engineering) "bo" = ( /obj/structure/machinery/cm_vending/sorted/tech/comp_storage/antag, -/turf/open/floor/almayer{ - icon_state = "orange" - }, +/turf/open/floor/almayer/orange, /area/adminlevel/bunker01/engineering) "bp" = ( /obj/structure/surface/table/reinforced, /obj/item/clothing/gloves/yellow, -/turf/open/floor/almayer{ - icon_state = "orange" - }, +/turf/open/floor/almayer/orange, /area/adminlevel/bunker01/engineering) "bq" = ( /obj/structure/surface/table/reinforced, /obj/effect/spawner/random/toolbox, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/southeast, /area/adminlevel/bunker01/engineering) "br" = ( -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/bunker01/mainroom) "bs" = ( /obj/structure/machinery/door_control{ @@ -505,9 +373,7 @@ name = "Base Shutters"; pixel_x = 24 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/bunker01/mainroom) "bt" = ( /obj/structure/machinery/cm_vending/sorted/medical/antag, @@ -516,9 +382,7 @@ id = "base_medbay"; name = "\improper Medbay Shutters" }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/bunker01/medbay) "bu" = ( /turf/closed/wall/r_wall/bunker, @@ -528,9 +392,7 @@ id = "base_blastdoor"; name = "\improper Bunker Blast Doors" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/adminlevel/bunker01/mainroom) "bw" = ( /obj/structure/machinery/smartfridge/secure/medbay, @@ -539,9 +401,7 @@ id = "base_medbay"; name = "\improper Medbay Shutters" }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/bunker01/medbay) "bx" = ( /obj/structure/machinery/door_control{ @@ -550,17 +410,12 @@ pixel_x = -23; pixel_y = -23 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side/west, /area/adminlevel/bunker01/medbay) "by" = ( /obj/structure/surface/table/reinforced, /obj/item/reagent_container/glass/beaker/bluespace, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/adminlevel/bunker01/medbay) "bz" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/medidoor{ @@ -569,9 +424,7 @@ req_access_txt = "201"; req_one_access = null }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/adminlevel/bunker01/medbay) "bA" = ( /obj/structure/machinery/cm_vending/clothing/antag, @@ -583,34 +436,25 @@ /obj/structure/largecrate/supply/supplies/metal, /obj/structure/largecrate/supply/supplies/metal, /obj/structure/largecrate/supply/supplies/metal, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/adminlevel/bunker01/mainroom) "bC" = ( /obj/structure/largecrate/supply/supplies/plasteel, /obj/structure/largecrate/supply/supplies/plasteel, /obj/structure/largecrate/supply/supplies/plasteel, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/adminlevel/bunker01/mainroom) "bD" = ( /obj/structure/largecrate/supply/supplies/sandbags, /obj/structure/largecrate/supply/supplies/sandbags, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/adminlevel/bunker01/mainroom) "bE" = ( /obj/structure/machinery/chem_dispenser{ req_access_txt = "201"; req_one_access = null }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_corner" - }, +/turf/open/floor/almayer/sterile_green_corner/west, /area/adminlevel/bunker01/medbay) "bF" = ( /obj/structure/surface/table/reinforced, @@ -623,9 +467,7 @@ /obj/item/storage/box/pillbottles, /obj/item/storage/box/pillbottles, /obj/item/tool/hand_labeler, -/turf/open/floor/almayer{ - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side, /area/adminlevel/bunker01/medbay) "bG" = ( /obj/structure/surface/table/reinforced, @@ -638,15 +480,10 @@ pixel_x = 3; pixel_y = 3 }, -/turf/open/floor/almayer{ - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side, /area/adminlevel/bunker01/medbay) "bH" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "sterile_green_corner" - }, +/turf/open/floor/almayer/sterile_green_corner/east, /area/adminlevel/bunker01/medbay) "bI" = ( /obj/structure/surface/table/reinforced, @@ -662,38 +499,26 @@ /obj/item/reagent_container/spray/cleaner, /obj/item/reagent_container/spray/cleaner, /obj/item/reagent_container/spray/cleaner, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_corner" - }, +/turf/open/floor/almayer/sterile_green_corner/west, /area/adminlevel/bunker01/medbay) "bJ" = ( /obj/structure/machinery/cm_vending/sorted/medical/marinemed/antag, -/turf/open/floor/almayer{ - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side, /area/adminlevel/bunker01/medbay) "bK" = ( /obj/structure/machinery/cm_vending/sorted/medical/blood/antag, -/turf/open/floor/almayer{ - icon_state = "sterile_green_side" - }, +/turf/open/floor/almayer/sterile_green_side, /area/adminlevel/bunker01/medbay) "bL" = ( /obj/structure/machinery/cm_vending/sorted/medical/antag, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "sterile_green_corner" - }, +/turf/open/floor/almayer/sterile_green_corner/east, /area/adminlevel/bunker01/medbay) "bM" = ( /obj/structure/window/reinforced{ dir = 4; health = 80 }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/adminlevel/bunker01/gear) "bN" = ( /obj/structure/window/reinforced{ @@ -704,18 +529,14 @@ dir = 8; health = 80 }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/adminlevel/bunker01/gear) "bO" = ( /obj/structure/window/reinforced{ dir = 8; health = 80 }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/adminlevel/bunker01/gear) "bP" = ( /turf/closed/wall/r_wall/bunker, @@ -729,9 +550,7 @@ req_access_txt = "201"; req_one_access = null }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/bunker01/gear) "bS" = ( /obj/structure/machinery/cm_vending/gear/antag, @@ -742,9 +561,7 @@ dir = 4; health = 80 }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/adminlevel/bunker01/storage) "bU" = ( /obj/structure/window/reinforced{ @@ -755,18 +572,14 @@ dir = 8; health = 80 }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/adminlevel/bunker01/storage) "bV" = ( /obj/structure/window/reinforced{ dir = 8; health = 80 }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/adminlevel/bunker01/storage) "bW" = ( /obj/structure/machinery/cm_vending/gear/antag_guns, @@ -778,9 +591,7 @@ req_access_txt = "201"; req_one_access = null }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/bunker01/storage) "bY" = ( /turf/open/floor/plating/plating_catwalk, @@ -795,27 +606,16 @@ req_access_txt = "201"; req_one_access = null }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/bunker01/mainroom) "cb" = ( -/turf/open/floor/almayer{ - dir = 9; - icon_state = "green" - }, +/turf/open/floor/almayer/green/northwest, /area/adminlevel/bunker01/mainroom) "cc" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/almayer/green/north, /area/adminlevel/bunker01/mainroom) "cd" = ( -/turf/open/floor/almayer{ - dir = 5; - icon_state = "green" - }, +/turf/open/floor/almayer/green/northeast, /area/adminlevel/bunker01/mainroom) "ce" = ( /obj/structure/machinery/door/airlock/multi_tile/secure{ @@ -823,33 +623,21 @@ name = "\improper Entrance"; req_access_txt = "201" }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/bunker01/mainroom) "cf" = ( /obj/structure/largecrate/supply/weapons/m56d, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/adminlevel/bunker01/storage) "cg" = ( /obj/structure/closet/crate/secure/mortar_ammo/mortar_kit, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/adminlevel/bunker01/storage) "ch" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "green" - }, +/turf/open/floor/almayer/green/west, /area/adminlevel/bunker01/mainroom) "ci" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "green" - }, +/turf/open/floor/almayer/green/east, /area/adminlevel/bunker01/mainroom) "cj" = ( /turf/open/mars_cave, @@ -860,17 +648,13 @@ dir = 8; health = 80 }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/adminlevel/bunker01/storage) "cl" = ( /obj/structure/closet/crate/secure/mortar_ammo/full{ name = "\improper M402 mortar ammo crate" }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/adminlevel/bunker01/storage) "cm" = ( /obj/structure/machinery/door_control{ @@ -922,9 +706,7 @@ id = "base_1_shutter"; name = "\improper Bunker Shutters" }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/bunker01/mainroom) "cs" = ( /obj/structure/window_frame/colony/reinforced, @@ -932,9 +714,7 @@ id = "base_2_shutter"; name = "\improper Bunker Shutters" }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/bunker01/mainroom) "ct" = ( /obj/structure/window_frame/colony/reinforced, @@ -942,9 +722,7 @@ id = "base_3_shutter"; name = "\improper Bunker Shutters" }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/bunker01/mainroom) "cu" = ( /obj/structure/window_frame/colony/reinforced, @@ -952,9 +730,7 @@ id = "base_4_shutter"; name = "\improper Bunker Shutters" }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/bunker01/mainroom) "cv" = ( /turf/closed/wall/r_wall/bunker, @@ -966,18 +742,13 @@ req_access_txt = "201"; req_one_access = null }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/bunker01/caves/outpost) "cx" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "green" - }, +/turf/open/floor/almayer/green/northwest, /area/adminlevel/bunker01/caves/outpost) "cy" = ( /turf/open/floor/almayer, @@ -986,10 +757,7 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "green" - }, +/turf/open/floor/almayer/green/northeast, /area/adminlevel/bunker01/caves/outpost) "cA" = ( /obj/structure/window/framed/colony/reinforced, @@ -997,10 +765,7 @@ /area/adminlevel/bunker01/caves/outpost) "cB" = ( /obj/structure/barricade/plasteel, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "green" - }, +/turf/open/floor/almayer/green/west, /area/adminlevel/bunker01/caves/outpost) "cC" = ( /obj/structure/barricade/metal/wired, @@ -1008,64 +773,37 @@ /area/adminlevel/bunker01/caves/outpost) "cD" = ( /obj/structure/barricade/plasteel, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "green" - }, +/turf/open/floor/almayer/green/east, /area/adminlevel/bunker01/caves/outpost) "cE" = ( -/turf/open/floor/almayer{ - dir = 9; - icon_state = "green" - }, +/turf/open/floor/almayer/green/northwest, /area/adminlevel/bunker01/caves/outpost) "cF" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/almayer/green/north, /area/adminlevel/bunker01/caves/outpost) "cG" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/almayer/green/north, /area/adminlevel/bunker01/caves/outpost) "cH" = ( /obj/structure/barricade/plasteel/wired, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "green" - }, +/turf/open/floor/almayer/green/west, /area/adminlevel/bunker01/caves/outpost) "cI" = ( /obj/structure/barricade/plasteel/wired, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "green" - }, +/turf/open/floor/almayer/green/east, /area/adminlevel/bunker01/caves/outpost) "cJ" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "green" - }, +/turf/open/floor/almayer/green/west, /area/adminlevel/bunker01/caves/outpost) "cK" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "green" - }, +/turf/open/floor/almayer/green/east, /area/adminlevel/bunker01/caves/outpost) "cL" = ( /obj/structure/barricade/metal/wired, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "green" - }, +/turf/open/floor/almayer/green/west, /area/adminlevel/bunker01/caves/outpost) "cM" = ( /obj/structure/barricade/plasteel/wired, @@ -1073,10 +811,7 @@ /area/adminlevel/bunker01/caves/outpost) "cN" = ( /obj/structure/barricade/metal/wired, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "green" - }, +/turf/open/floor/almayer/green/east, /area/adminlevel/bunker01/caves/outpost) "cO" = ( /obj/structure/barricade/plasteel, @@ -1131,59 +866,38 @@ /area/adminlevel/bunker01/caves/xeno) "cY" = ( /obj/structure/surface/table/reinforced, -/turf/open/floor/prison{ - dir = 2; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/south, /area/adminlevel/bunker01/kitchen) "cZ" = ( /obj/structure/closet/secure_closet/freezer/fridge/full, -/turf/open/floor/prison{ - dir = 2; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/south, /area/adminlevel/bunker01/kitchen) "da" = ( /obj/structure/closet/secure_closet/freezer/meat, -/turf/open/floor/prison{ - dir = 2; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/south, /area/adminlevel/bunker01/kitchen) "db" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/juicer, -/turf/open/floor/prison{ - dir = 2; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/south, /area/adminlevel/bunker01/kitchen) "dc" = ( /turf/closed/wall, /area/adminlevel/bunker01/hydroponics) "dd" = ( /obj/structure/reagent_dispensers/watertank, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "blue" - }, +/turf/open/floor/almayer/blue/northwest, /area/adminlevel/bunker01/hydroponics) "de" = ( /obj/structure/surface/rack, /obj/item/storage/bag/plants, /obj/item/tool/shovel/spade, /obj/item/reagent_container/glass/bucket, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/almayer/blue/north, /area/adminlevel/bunker01/hydroponics) "df" = ( /obj/structure/machinery/hydro_floodlight, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "blue" - }, +/turf/open/floor/almayer/blue/northeast, /area/adminlevel/bunker01/hydroponics) "dg" = ( /obj/effect/alien/weeds/node/pylon/core{ @@ -1196,15 +910,10 @@ name = "\improper Kitchen"; req_access_txt = "201" }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/bunker01/kitchen) "di" = ( -/turf/open/floor/prison{ - dir = 2; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/south, /area/adminlevel/bunker01/kitchen) "dj" = ( /obj/structure/surface/table/reinforced, @@ -1213,26 +922,17 @@ dir = 4; pixel_x = 25 }, -/turf/open/floor/prison{ - dir = 2; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/south, /area/adminlevel/bunker01/kitchen) "dk" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/almayer/blue/west, /area/adminlevel/bunker01/hydroponics) "dl" = ( /turf/open/floor/almayer, /area/adminlevel/bunker01/hydroponics) "dm" = ( /obj/structure/machinery/portable_atmospherics/hydroponics, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/almayer/blue/east, /area/adminlevel/bunker01/hydroponics) "dn" = ( /obj/structure/surface/table/reinforced, @@ -1241,10 +941,7 @@ dir = 8; id_tag = "mining_outpost_pump" }, -/turf/open/floor/prison{ - dir = 2; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/south, /area/adminlevel/bunker01/kitchen) "do" = ( /turf/closed/wall/r_wall/bunker, @@ -1254,32 +951,21 @@ dir = 2; name = "\improper Bathroom" }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/bunker01/breakroom) "dq" = ( /obj/structure/machinery/vending/dinnerware, -/turf/open/floor/prison{ - dir = 2; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/south, /area/adminlevel/bunker01/kitchen) "dr" = ( /obj/structure/surface/table/reinforced, /obj/item/tool/kitchen/rollingpin, /obj/item/tool/kitchen/knife, -/turf/open/floor/prison{ - dir = 2; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/south, /area/adminlevel/bunker01/kitchen) "ds" = ( /obj/structure/machinery/processor, -/turf/open/floor/prison{ - dir = 2; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/south, /area/adminlevel/bunker01/kitchen) "dt" = ( /obj/structure/sign/safety/biolab, @@ -1287,10 +973,7 @@ /area/adminlevel/bunker01/hydroponics) "du" = ( /obj/structure/machinery/vending/hydroseeds, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/almayer/blue/east, /area/adminlevel/bunker01/hydroponics) "dv" = ( /turf/open/floor/wood, @@ -1312,10 +995,7 @@ dir = 1; pixel_y = -10 }, -/turf/open/floor/prison{ - dir = 2; - icon_state = "sterile_white" - }, +/turf/open/floor/prison/sterile_white/south, /area/adminlevel/bunker01/kitchen) "dA" = ( /obj/structure/machinery/door/airlock/almayer/generic{ @@ -1325,16 +1005,11 @@ /turf/open/floor/almayer, /area/adminlevel/bunker01/hydroponics) "dB" = ( -/turf/open/floor/almayer{ - icon_state = "blue" - }, +/turf/open/floor/almayer/blue, /area/adminlevel/bunker01/hydroponics) "dC" = ( /obj/structure/machinery/vending/hydronutrients, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "blue" - }, +/turf/open/floor/almayer/blue/southeast, /area/adminlevel/bunker01/hydroponics) "dD" = ( /obj/structure/bed/chair, @@ -1381,9 +1056,7 @@ /obj/structure/machinery/door/firedoor/border_only/almayer/antag{ dir = 2 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/bunker01/breakroom) (1,1,1) = {" diff --git a/maps/templates/freelancer_ert_station.dmm b/maps/templates/freelancer_ert_station.dmm deleted file mode 100644 index 44d47c7952ef..000000000000 --- a/maps/templates/freelancer_ert_station.dmm +++ /dev/null @@ -1,1722 +0,0 @@ -//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE -"a" = ( -/turf/open/space/basic, -/area/space) -"r" = ( -/obj/docking_port/stationary/emergency_response/idle_port1, -/turf/open/floor/plating, -/area/space) -"t" = ( -/turf/closed/wall/r_wall/unmeltable, -/area/space) -"u" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/turf/open/floor/plating/almayer, -/area/space) -"x" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E" - }, -/turf/open/floor/plating/almayer, -/area/space) -"E" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "N" - }, -/turf/open/floor/plating/almayer, -/area/space) -"U" = ( -/turf/open/floor/plating/almayer, -/area/space) -"V" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/turf/open/floor/plating/almayer, -/area/space) -"X" = ( -/turf/open/floor/plating, -/area/space) - -(1,1,1) = {" -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -"} -(2,1,1) = {" -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -"} -(3,1,1) = {" -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -"} -(4,1,1) = {" -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -"} -(5,1,1) = {" -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -"} -(6,1,1) = {" -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -"} -(7,1,1) = {" -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -"} -(8,1,1) = {" -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -"} -(9,1,1) = {" -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -"} -(10,1,1) = {" -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -"} -(11,1,1) = {" -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -"} -(12,1,1) = {" -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -"} -(13,1,1) = {" -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -"} -(14,1,1) = {" -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -"} -(15,1,1) = {" -a -a -a -a -a -a -a -a -a -t -t -t -t -t -t -t -t -t -t -t -t -t -t -t -t -t -t -t -a -a -a -a -a -a -a -a -a -a -a -a -"} -(16,1,1) = {" -a -a -a -a -a -a -a -a -a -t -U -x -x -x -x -x -x -x -x -x -x -x -x -x -x -x -U -t -a -a -a -a -a -a -a -a -a -a -a -a -"} -(17,1,1) = {" -a -a -a -a -a -a -a -a -a -t -V -X -X -X -X -X -X -X -X -X -X -X -X -X -X -X -E -t -a -a -a -a -a -a -a -a -a -a -a -a -"} -(18,1,1) = {" -a -a -a -a -a -a -a -a -a -t -V -X -X -X -X -X -X -X -X -X -X -X -X -X -r -X -E -t -a -a -a -a -a -a -a -a -a -a -a -a -"} -(19,1,1) = {" -a -a -a -a -a -a -a -a -a -t -V -X -X -X -X -X -X -X -X -X -X -X -X -X -X -X -E -t -a -a -a -a -a -a -a -a -a -a -a -a -"} -(20,1,1) = {" -a -a -a -a -a -a -a -a -a -t -V -X -X -X -X -X -X -X -X -X -X -X -X -X -X -X -E -t -a -a -a -a -a -a -a -a -a -a -a -a -"} -(21,1,1) = {" -a -a -a -a -a -a -a -a -a -t -V -X -X -X -X -X -X -X -X -X -X -X -X -X -X -X -E -t -a -a -a -a -a -a -a -a -a -a -a -a -"} -(22,1,1) = {" -a -a -a -a -a -a -a -a -a -t -V -X -X -X -X -X -X -X -X -X -X -X -X -X -X -X -E -t -a -a -a -a -a -a -a -a -a -a -a -a -"} -(23,1,1) = {" -a -a -a -a -a -a -a -a -a -t -V -X -X -X -X -X -X -X -X -X -X -X -X -X -X -X -E -t -a -a -a -a -a -a -a -a -a -a -a -a -"} -(24,1,1) = {" -a -a -a -a -a -a -a -a -a -t -V -X -X -X -X -X -X -X -X -X -X -X -X -X -X -X -E -t -a -a -a -a -a -a -a -a -a -a -a -a -"} -(25,1,1) = {" -a -a -a -a -a -a -a -a -a -t -V -X -X -X -X -X -X -X -X -X -X -X -X -X -X -X -E -t -a -a -a -a -a -a -a -a -a -a -a -a -"} -(26,1,1) = {" -a -a -a -a -a -a -a -a -a -t -U -u -u -u -u -u -u -u -u -u -u -u -u -u -u -u -U -t -a -a -a -a -a -a -a -a -a -a -a -a -"} -(27,1,1) = {" -a -a -a -a -a -a -a -a -a -t -t -t -t -t -t -t -t -t -t -t -t -t -t -t -t -t -t -t -a -a -a -a -a -a -a -a -a -a -a -a -"} -(28,1,1) = {" -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -"} -(29,1,1) = {" -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -"} -(30,1,1) = {" -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -"} -(31,1,1) = {" -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -"} -(32,1,1) = {" -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -"} -(33,1,1) = {" -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -"} -(34,1,1) = {" -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -"} -(35,1,1) = {" -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -"} -(36,1,1) = {" -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -"} -(37,1,1) = {" -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -"} -(38,1,1) = {" -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -"} -(39,1,1) = {" -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -"} -(40,1,1) = {" -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -"} diff --git a/maps/templates/clf_ert_station.dmm b/maps/templates/lazy_templates/clf_ert_station.dmm similarity index 91% rename from maps/templates/clf_ert_station.dmm rename to maps/templates/lazy_templates/clf_ert_station.dmm index 7347be914da2..c1ec79d8770c 100644 --- a/maps/templates/clf_ert_station.dmm +++ b/maps/templates/lazy_templates/clf_ert_station.dmm @@ -31,26 +31,19 @@ /obj/structure/machinery/light/small/built{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/ert_station/clf_station) "av" = ( /obj/structure/closet/crate, /obj/item/explosive/grenade/phosphorus/clf, -/turf/open/floor/wood{ - icon_state = "wood-broken4" - }, +/turf/open/floor/wood/wood_broken4, /area/adminlevel/ert_station/clf_station) "ax" = ( /turf/closed/wall/rock/brown, /area/adminlevel/ert_station/clf_station) "az" = ( /obj/structure/prop/brazier/frame/full, -/turf/open/floor/plating{ - dir = 1; - icon_state = "asteroidwarning" - }, +/turf/open/floor/plating/asteroidwarning/north, /area/adminlevel/ert_station/clf_station) "aA" = ( /obj/structure/surface/table/woodentable/poor, @@ -87,9 +80,7 @@ /obj/structure/machinery/light/small/built{ dir = 8 }, -/turf/open/floor/wood{ - icon_state = "wood-broken6" - }, +/turf/open/floor/wood/wood_broken6, /area/adminlevel/ert_station/clf_station) "aO" = ( /obj/structure/stairs/perspective{ @@ -142,9 +133,7 @@ "cc" = ( /obj/structure/closet/secure_closet/freezer/fridge/full, /obj/item/reagent_container/food/condiment/enzyme, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/adminlevel/ert_station/clf_station) "ce" = ( /obj/item/trash/chips, @@ -160,32 +149,21 @@ /obj/structure/mirror{ pixel_y = 32 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/adminlevel/ert_station/clf_station) "cB" = ( /obj/vehicle/powerloader/ft, -/turf/open/floor/plating{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/plating/asteroidfloor/north, /area/adminlevel/ert_station/clf_station) "cH" = ( -/turf/open/floor/wood{ - icon_state = "wood-broken" - }, +/turf/open/floor/wood/wood_broken, /area/adminlevel/ert_station/clf_station) "dd" = ( -/turf/open/gm/coast{ - dir = 1 - }, +/turf/open/gm/coast/south, /area/adminlevel/ert_station/clf_station) "dg" = ( /obj/item/prop/helmetgarb/spent_buckshot, -/turf/open/floor/wood{ - icon_state = "wood-broken" - }, +/turf/open/floor/wood/wood_broken, /area/adminlevel/ert_station/clf_station) "dI" = ( /obj/structure/flora/bush/ausbushes/genericbush, @@ -256,9 +234,7 @@ "fd" = ( /obj/structure/closet/secure_closet/freezer/fridge/groceries, /obj/structure/machinery/light/small/built, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/adminlevel/ert_station/clf_station) "fk" = ( /obj/structure/pipes/vents/pump, @@ -294,9 +270,7 @@ "gi" = ( /obj/structure/surface/table/woodentable/poor, /obj/item/reagent_container/food/drinks/bottle/whiskey, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/adminlevel/ert_station/clf_station) "gj" = ( /obj/structure/flora/grass/tallgrass/jungle/corner, @@ -304,17 +278,13 @@ /area/adminlevel/ert_station/clf_station) "gN" = ( /obj/effect/decal/cleanable/egg_smudge, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/adminlevel/ert_station/clf_station) "hd" = ( /obj/structure/reagent_dispensers/beerkeg{ density = 0 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/adminlevel/ert_station/clf_station) "hr" = ( /obj/structure/machinery/light/small/built{ @@ -355,9 +325,7 @@ /obj/structure/machinery/light/small/built{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/ert_station/clf_station) "hO" = ( /obj/item/reagent_container/food/drinks/bottle/whiskey, @@ -421,9 +389,7 @@ /obj/structure/platform_decoration/kutjevo{ dir = 8 }, -/turf/open/gm/grass{ - icon_state = "grass2" - }, +/turf/open/gm/grass/grass2, /area/adminlevel/ert_station/clf_station) "jp" = ( /obj/structure/surface/table/woodentable/poor, @@ -517,10 +483,7 @@ /obj/structure/platform/kutjevo{ dir = 4 }, -/turf/open/gm/dirtgrassborder{ - dir = 4; - icon_state = "grassdirt_corner" - }, +/turf/open/gm/dirtgrassborder/grassdirt_corner/south_east, /area/adminlevel/ert_station/clf_station) "lT" = ( /obj/structure/platform/kutjevo{ @@ -548,10 +511,7 @@ /area/adminlevel/ert_station/clf_station) "me" = ( /obj/structure/platform_decoration/kutjevo, -/turf/open/gm/dirtgrassborder{ - dir = 4; - icon_state = "grassdirt_corner" - }, +/turf/open/gm/dirtgrassborder/grassdirt_corner/south_east, /area/adminlevel/ert_station/clf_station) "mk" = ( /obj/structure/platform_decoration/kutjevo{ @@ -567,9 +527,7 @@ }, /obj/structure/surface/table/reinforced, /obj/item/spacecash/c50, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/adminlevel/ert_station/clf_station) "mt" = ( /obj/structure/surface/table/woodentable/poor, @@ -586,9 +544,7 @@ pixel_y = 10 }, /obj/structure/surface/table/reinforced, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/adminlevel/ert_station/clf_station) "ne" = ( /obj/structure/bed{ @@ -620,9 +576,7 @@ "nC" = ( /obj/structure/surface/table/woodentable/poor, /obj/item/reagent_container/food/drinks/bottle/vodka, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/adminlevel/ert_station/clf_station) "nJ" = ( /obj/item/clothing/shoes/jackboots, @@ -651,10 +605,7 @@ /turf/open/floor/wood, /area/adminlevel/ert_station/clf_station) "om" = ( -/turf/open/gm/dirtgrassborder{ - dir = 4; - icon_state = "grassdirt_corner2" - }, +/turf/open/gm/dirtgrassborder/grassdirt_corner2/north_east, /area/adminlevel/ert_station/clf_station) "ow" = ( /obj/structure/window/reinforced{ @@ -682,9 +633,7 @@ pixel_y = 13 }, /obj/item/stock_parts/subspace/crystal, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/ert_station/clf_station) "oy" = ( /obj/item/trash/candy, @@ -692,10 +641,7 @@ /turf/open/floor/wood, /area/adminlevel/ert_station/clf_station) "oI" = ( -/turf/open/floor/plating{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/plating/asteroidfloor/north, /area/adminlevel/ert_station/clf_station) "oN" = ( /obj/structure/flora/jungle/vines, @@ -718,9 +664,7 @@ /obj/structure/platform/kutjevo{ dir = 4 }, -/turf/open/gm/grass{ - icon_state = "grass2" - }, +/turf/open/gm/grass/grass2, /area/adminlevel/ert_station/clf_station) "pE" = ( /obj/structure/platform/kutjevo, @@ -730,36 +674,25 @@ /turf/open/auto_turf/strata_grass/layer1, /area/adminlevel/ert_station/clf_station) "pF" = ( -/turf/open/floor/wood{ - icon_state = "wood-broken6" - }, +/turf/open/floor/wood/wood_broken6, /area/adminlevel/ert_station/clf_station) "pY" = ( /obj/structure/flora/jungle/plantbot1, -/turf/open/gm/dirtgrassborder{ - dir = 8 - }, +/turf/open/gm/dirtgrassborder/east, /area/adminlevel/ert_station/clf_station) "qa" = ( /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/wood{ - icon_state = "wood-broken6" - }, +/turf/open/floor/wood/wood_broken6, /area/adminlevel/ert_station/clf_station) "qb" = ( /obj/structure/largecrate/random/barrel/red, -/turf/open/floor/plating{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/plating/asteroidfloor/north, /area/adminlevel/ert_station/clf_station) "ql" = ( /obj/structure/flora/bush/ausbushes/genericbush, -/turf/open/gm/grass{ - icon_state = "grass2" - }, +/turf/open/gm/grass/grass2, /area/adminlevel/ert_station/clf_station) "qy" = ( /obj/structure/flora/bush/ausbushes/reedbush, @@ -774,9 +707,7 @@ /area/adminlevel/ert_station/clf_station) "rz" = ( /obj/structure/curtain/red, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/adminlevel/ert_station/clf_station) "rD" = ( /obj/structure/flora/grass/tallgrass/jungle/corner{ @@ -804,15 +735,12 @@ "sx" = ( /obj/structure/surface/table/woodentable/poor, /obj/item/clothing/glasses/sunglasses/blindfold, -/obj/item/handcuffs, +/obj/item/restraint/handcuffs, /turf/open/floor/wood, /area/adminlevel/ert_station/clf_station) "sC" = ( /obj/structure/flora/jungle/planttop1, -/turf/open/gm/dirtgrassborder{ - dir = 1; - icon_state = "grassdirt_corner" - }, +/turf/open/gm/dirtgrassborder/grassdirt_corner/north_east, /area/adminlevel/ert_station/clf_station) "sK" = ( /obj/structure/surface/table/woodentable/poor, @@ -840,9 +768,7 @@ /obj/structure/flora/grass/tallgrass/jungle/corner{ dir = 5 }, -/turf/open/gm/grass{ - icon_state = "grass2" - }, +/turf/open/gm/grass/grass2, /area/adminlevel/ert_station/clf_station) "tt" = ( /obj/structure/largecrate/random/barrel/red, @@ -904,9 +830,7 @@ /obj/structure/machinery/light/small/built{ dir = 1 }, -/turf/open/floor/wood{ - icon_state = "wood-broken3" - }, +/turf/open/floor/wood/wood_broken3, /area/adminlevel/ert_station/clf_station) "uF" = ( /obj/structure/platform/kutjevo{ @@ -954,6 +878,9 @@ /area/adminlevel/ert_station/clf_station) "vE" = ( /obj/structure/largecrate/supply/weapons/shotgun, +/obj/structure/platform/kutjevo{ + dir = 8 + }, /turf/open/auto_turf/strata_grass/layer1, /area/adminlevel/ert_station/clf_station) "vI" = ( @@ -972,9 +899,7 @@ /turf/open/gm/grass, /area/adminlevel/ert_station/clf_station) "wW" = ( -/turf/open/gm/coast{ - dir = 9 - }, +/turf/open/gm/coast/south_east, /area/adminlevel/ert_station/clf_station) "xi" = ( /obj/structure/platform/kutjevo{ @@ -984,10 +909,7 @@ /turf/open/auto_turf/strata_grass/layer1, /area/adminlevel/ert_station/clf_station) "xE" = ( -/turf/open/gm/coast{ - dir = 8; - icon_state = "beachcorner2" - }, +/turf/open/gm/coast/beachcorner2/south_east, /area/adminlevel/ert_station/clf_station) "xJ" = ( /obj/structure/flora/bush/ausbushes/grassybush{ @@ -1009,9 +931,7 @@ pixel_y = -10 }, /obj/item/tool/soap, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/adminlevel/ert_station/clf_station) "xO" = ( /obj/item/holder/cat/kitten{ @@ -1039,9 +959,7 @@ "yE" = ( /obj/structure/closet/crate, /obj/item/explosive/grenade/incendiary/molotov, -/turf/open/floor/wood{ - icon_state = "wood-broken" - }, +/turf/open/floor/wood/wood_broken, /area/adminlevel/ert_station/clf_station) "yH" = ( /obj/structure/flora/bush/ausbushes/grassybush{ @@ -1055,18 +973,14 @@ /obj/item/ammo_magazine/pistol/clfpistol, /obj/item/ammo_magazine/pistol/clfpistol, /obj/item/ammo_magazine/pistol/clfpistol, -/turf/open/floor/wood{ - icon_state = "wood-broken3" - }, +/turf/open/floor/wood/wood_broken3, /area/adminlevel/ert_station/clf_station) "yO" = ( /obj/structure/platform/kutjevo{ dir = 4 }, /obj/structure/flora/bush/ausbushes/genericbush, -/turf/open/gm/grass{ - icon_state = "grass2" - }, +/turf/open/gm/grass/grass2, /area/adminlevel/ert_station/clf_station) "yU" = ( /turf/open/gm/river, @@ -1080,9 +994,7 @@ /area/adminlevel/ert_station/clf_station) "yY" = ( /obj/structure/prop/brazier/frame/full, -/turf/open/floor/plating{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/plating/asteroidwarning, /area/adminlevel/ert_station/clf_station) "zy" = ( /obj/structure/machinery/light/small/built{ @@ -1114,10 +1026,7 @@ /obj/structure/platform/kutjevo{ dir = 4 }, -/turf/open/gm/dirtgrassborder{ - dir = 1; - icon_state = "grassdirt_corner" - }, +/turf/open/gm/dirtgrassborder/grassdirt_corner/north_east, /area/adminlevel/ert_station/clf_station) "Aj" = ( /obj/structure/flora/jungle/planttop1, @@ -1127,9 +1036,7 @@ /obj/structure/platform/kutjevo{ dir = 4 }, -/turf/open/gm/dirtgrassborder{ - dir = 8 - }, +/turf/open/gm/dirtgrassborder/east, /area/adminlevel/ert_station/clf_station) "AK" = ( /obj/structure/platform_decoration/kutjevo{ @@ -1190,9 +1097,7 @@ /area/adminlevel/ert_station/clf_station) "Bx" = ( /obj/structure/closet/secure_closet/freezer/meat, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/adminlevel/ert_station/clf_station) "BB" = ( /obj/structure/flora/bush/ausbushes/grassybush, @@ -1203,16 +1108,14 @@ /obj/structure/machinery/door/airlock/sandstone/runed/destroyable{ name = "\improper Strange Temple" }, -/turf/open/space/basic, +/turf/open/floor/sandstone/runed, /area/adminlevel/ert_station/clf_station) "BP" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/microwave{ pixel_y = 10 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/adminlevel/ert_station/clf_station) "BQ" = ( /obj/structure/platform/kutjevo{ @@ -1264,9 +1167,7 @@ /turf/open/auto_turf/strata_grass/layer0_mud, /area/adminlevel/ert_station/clf_station) "DF" = ( -/turf/open/floor/wood{ - icon_state = "wood-broken3" - }, +/turf/open/floor/wood/wood_broken3, /area/adminlevel/ert_station/clf_station) "DN" = ( /obj/structure/flora/jungle/vines/heavy, @@ -1291,9 +1192,7 @@ /turf/open/auto_turf/strata_grass/layer0, /area/adminlevel/ert_station/clf_station) "Ee" = ( -/turf/open/gm/dirtgrassborder{ - dir = 8 - }, +/turf/open/gm/dirtgrassborder/east, /area/adminlevel/ert_station/clf_station) "Ez" = ( /obj/structure/flora/grass/tallgrass/jungle/corner{ @@ -1312,9 +1211,7 @@ /obj/structure/machinery/light/small/built{ dir = 4 }, -/turf/open/floor/wood{ - icon_state = "wood-broken" - }, +/turf/open/floor/wood/wood_broken, /area/adminlevel/ert_station/clf_station) "Fj" = ( /obj/structure/surface/table/woodentable/poor, @@ -1365,10 +1262,7 @@ /turf/open/gm/grass, /area/adminlevel/ert_station/clf_station) "GV" = ( -/turf/open/floor/plating{ - dir = 8; - icon_state = "asteroidwarning" - }, +/turf/open/floor/plating/asteroidwarning/west, /area/adminlevel/ert_station/clf_station) "Hs" = ( /obj/docking_port/stationary/emergency_response/idle_port1, @@ -1378,11 +1272,17 @@ /obj/structure/flora/jungle/vines/heavy, /turf/open/gm/dirt, /area/adminlevel/ert_station/clf_station) -"Ie" = ( -/turf/open/gm/dirtgrassborder{ - dir = 1; - icon_state = "grassdirt_corner2" +"Ia" = ( +/obj/structure/bed/chair{ + dir = 4 + }, +/obj/structure/machinery/power/apc/antag{ + dir = 1 }, +/turf/open/floor/wood/wood_broken3, +/area/adminlevel/ert_station/clf_station) +"Ie" = ( +/turf/open/gm/dirtgrassborder/grassdirt_corner2/south_east, /area/adminlevel/ert_station/clf_station) "Ig" = ( /obj/structure/largecrate/black_market/clf_supplies, @@ -1404,23 +1304,16 @@ /turf/open/auto_turf/strata_grass/layer1, /area/adminlevel/ert_station/clf_station) "IH" = ( -/turf/open/floor/wood{ - icon_state = "wood-broken4" - }, +/turf/open/floor/wood/wood_broken4, /area/adminlevel/ert_station/clf_station) "IT" = ( /obj/structure/largecrate/random/barrel/white, -/turf/open/floor/plating{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/plating/asteroidfloor/north, /area/adminlevel/ert_station/clf_station) "IW" = ( /obj/structure/closet/crate, /obj/item/clothing/mask/gas/swat, -/turf/open/floor/wood{ - icon_state = "wood-broken6" - }, +/turf/open/floor/wood/wood_broken6, /area/adminlevel/ert_station/clf_station) "Jg" = ( /obj/structure/platform/kutjevo, @@ -1468,10 +1361,7 @@ /area/adminlevel/ert_station/clf_station) "Me" = ( /obj/structure/flora/jungle/planttop1, -/turf/open/gm/dirtgrassborder{ - dir = 4; - icon_state = "grassdirt_corner" - }, +/turf/open/gm/dirtgrassborder/grassdirt_corner/south_east, /area/adminlevel/ert_station/clf_station) "MD" = ( /obj/structure/platform/kutjevo{ @@ -1518,17 +1408,13 @@ /obj/item/bedsheet/brown{ pixel_y = 13 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/ert_station/clf_station) "MQ" = ( /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/wood{ - icon_state = "wood-broken3" - }, +/turf/open/floor/wood/wood_broken3, /area/adminlevel/ert_station/clf_station) "MT" = ( /obj/item/tank/anesthetic, @@ -1551,10 +1437,7 @@ /area/adminlevel/ert_station/clf_station) "Ng" = ( /obj/structure/flora/jungle/plantbot1, -/turf/open/gm/dirtgrassborder{ - dir = 1; - icon_state = "grassdirt_corner" - }, +/turf/open/gm/dirtgrassborder/grassdirt_corner/north_east, /area/adminlevel/ert_station/clf_station) "Ni" = ( /obj/structure/surface/table/woodentable/poor, @@ -1574,9 +1457,7 @@ /turf/open/floor/wood, /area/adminlevel/ert_station/clf_station) "NB" = ( -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/adminlevel/ert_station/clf_station) "NV" = ( /obj/structure/flora/jungle/vines/heavy, @@ -1584,9 +1465,7 @@ /area/adminlevel/ert_station/clf_station) "NY" = ( /obj/effect/decal/cleanable/tomato_smudge, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/adminlevel/ert_station/clf_station) "Of" = ( /obj/structure/surface/table/reinforced, @@ -1602,16 +1481,11 @@ /obj/structure/machinery/light/small/built{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/adminlevel/ert_station/clf_station) "Oi" = ( /obj/structure/largecrate/random/case/small, -/turf/open/floor/plating{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/plating/asteroidfloor/north, /area/adminlevel/ert_station/clf_station) "Op" = ( /obj/structure/platform/kutjevo{ @@ -1646,9 +1520,7 @@ pixel_y = 13 }, /obj/structure/machinery/light/small/built, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/ert_station/clf_station) "Oy" = ( /obj/item/spacecash/c1, @@ -1688,10 +1560,7 @@ /turf/open/auto_turf/strata_grass/layer1, /area/adminlevel/ert_station/clf_station) "OY" = ( -/turf/open/gm/dirtgrassborder{ - dir = 4; - icon_state = "grassdirt_corner" - }, +/turf/open/gm/dirtgrassborder/grassdirt_corner/south_east, /area/adminlevel/ert_station/clf_station) "OZ" = ( /obj/structure/platform/kutjevo{ @@ -1701,10 +1570,7 @@ /turf/open/auto_turf/strata_grass/layer1, /area/adminlevel/ert_station/clf_station) "Ph" = ( -/turf/open/gm/coast{ - dir = 4; - icon_state = "beachcorner" - }, +/turf/open/gm/coast/beachcorner/south_east, /area/adminlevel/ert_station/clf_station) "Pj" = ( /obj/structure/platform_decoration/kutjevo{ @@ -1716,9 +1582,7 @@ /mob/living/simple_animal/cat{ name = "Edwin" }, -/turf/open/floor/wood{ - icon_state = "wood-broken" - }, +/turf/open/floor/wood/wood_broken, /area/adminlevel/ert_station/clf_station) "PC" = ( /obj/item/trash/candle, @@ -1759,9 +1623,7 @@ /turf/open/floor/wood, /area/adminlevel/ert_station/clf_station) "Qx" = ( -/turf/open/gm/coast{ - dir = 8 - }, +/turf/open/gm/coast/east, /area/adminlevel/ert_station/clf_station) "QA" = ( /obj/structure/platform/kutjevo{ @@ -1803,22 +1665,17 @@ "Ro" = ( /obj/structure/surface/table/woodentable/poor, /obj/item/clothing/glasses/sunglasses/blindfold, -/obj/item/handcuffs, -/obj/item/handcuffs, +/obj/item/restraint/handcuffs, +/obj/item/restraint/handcuffs, /turf/open/floor/wood, /area/adminlevel/ert_station/clf_station) "Rr" = ( /obj/structure/largecrate/random/barrel/blue, -/turf/open/floor/plating{ - dir = 1; - icon_state = "asteroidfloor" - }, +/turf/open/floor/plating/asteroidfloor/north, /area/adminlevel/ert_station/clf_station) "Rv" = ( /obj/structure/curtain/red, -/turf/open/floor/wood{ - icon_state = "wood-broken" - }, +/turf/open/floor/wood/wood_broken, /area/adminlevel/ert_station/clf_station) "RB" = ( /obj/structure/flora/jungle/plantbot1{ @@ -1833,9 +1690,7 @@ pixel_y = 10 }, /obj/structure/surface/table/reinforced, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/adminlevel/ert_station/clf_station) "Sc" = ( /obj/structure/platform_decoration/kutjevo{ @@ -1849,17 +1704,13 @@ /obj/structure/machinery/light/small/built{ dir = 8 }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, +/turf/open/floor/freezerfloor, /area/adminlevel/ert_station/clf_station) "Sj" = ( /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/wood{ - icon_state = "wood-broken4" - }, +/turf/open/floor/wood/wood_broken4, /area/adminlevel/ert_station/clf_station) "Sy" = ( /obj/structure/platform/kutjevo, @@ -1874,15 +1725,10 @@ /area/adminlevel/ert_station/clf_station) "Tk" = ( /obj/structure/bed/chair, -/turf/open/floor/wood{ - icon_state = "wood-broken4" - }, +/turf/open/floor/wood/wood_broken4, /area/adminlevel/ert_station/clf_station) "Tr" = ( -/turf/open/gm/dirtgrassborder{ - dir = 1; - icon_state = "grassdirt_corner" - }, +/turf/open/gm/dirtgrassborder/grassdirt_corner/north_east, /area/adminlevel/ert_station/clf_station) "Tt" = ( /obj/structure/platform/kutjevo, @@ -1892,10 +1738,7 @@ /turf/open/auto_turf/strata_grass/layer1, /area/adminlevel/ert_station/clf_station) "Tu" = ( -/turf/open/floor/plating{ - dir = 4; - icon_state = "asteroidwarning" - }, +/turf/open/floor/plating/asteroidwarning/east, /area/adminlevel/ert_station/clf_station) "TM" = ( /obj/structure/machinery/recharger, @@ -1914,16 +1757,11 @@ }, /turf/open/auto_turf/strata_grass/layer1, /area/adminlevel/ert_station/clf_station) -"Ub" = ( -/turf/closed/wall/mineral/sandstone/runed/decor, -/area/adminlevel/ert_station/clf_station) "Uj" = ( /obj/structure/closet/crate, /obj/item/clothing/head/welding, /obj/item/tool/weldingtool/experimental, -/turf/open/floor/wood{ - icon_state = "wood-broken" - }, +/turf/open/floor/wood/wood_broken, /area/adminlevel/ert_station/clf_station) "Um" = ( /obj/structure/largecrate/random/secure, @@ -1934,15 +1772,10 @@ /turf/open/gm/river, /area/adminlevel/ert_station/clf_station) "Uu" = ( -/turf/open/floor/plating{ - icon_state = "asteroidwarning" - }, +/turf/open/floor/plating/asteroidwarning, /area/adminlevel/ert_station/clf_station) "UB" = ( -/turf/open/floor/plating{ - dir = 1; - icon_state = "asteroidwarning" - }, +/turf/open/floor/plating/asteroidwarning/north, /area/adminlevel/ert_station/clf_station) "Vf" = ( /obj/structure/largecrate/black_market/confiscated_weaponry, @@ -1950,9 +1783,7 @@ /area/adminlevel/ert_station/clf_station) "Vi" = ( /obj/structure/flora/bush/ausbushes/reedbush, -/turf/open/gm/coast{ - dir = 8 - }, +/turf/open/gm/coast/east, /area/adminlevel/ert_station/clf_station) "Vk" = ( /obj/structure/surface/table/woodentable/poor, @@ -1965,9 +1796,7 @@ /obj/structure/machinery/processor{ pixel_y = 10 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/adminlevel/ert_station/clf_station) "VE" = ( /obj/structure/platform/kutjevo{ @@ -2011,9 +1840,7 @@ /obj/structure/machinery/light/small/built{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/adminlevel/ert_station/clf_station) "Wz" = ( /obj/structure/closet/crate, @@ -2046,9 +1873,7 @@ /turf/open/floor/wood, /area/adminlevel/ert_station/clf_station) "Xp" = ( -/turf/open/floor/prison{ - icon_state = "kitchen" - }, +/turf/open/floor/prison/kitchen, /area/adminlevel/ert_station/clf_station) "Xv" = ( /obj/structure/flora/jungle/plantbot1, @@ -2081,9 +1906,7 @@ /turf/open/floor/wood, /area/adminlevel/ert_station/clf_station) "YB" = ( -/turf/open/gm/grass{ - icon_state = "grass2" - }, +/turf/open/gm/grass/grass2, /area/adminlevel/ert_station/clf_station) "Ze" = ( /obj/structure/bed/chair{ @@ -2091,16 +1914,12 @@ }, /obj/item/reagent_container/food/drinks/flask/barflask, /obj/structure/machinery/light/small/built, -/turf/open/floor/wood{ - icon_state = "wood-broken6" - }, +/turf/open/floor/wood/wood_broken6, /area/adminlevel/ert_station/clf_station) "Zj" = ( /obj/structure/closet/crate, /obj/item/reagent_container/food/snacks/appletart, -/turf/open/floor/wood{ - icon_state = "wood-broken" - }, +/turf/open/floor/wood/wood_broken, /area/adminlevel/ert_station/clf_station) "ZE" = ( /obj/structure/surface/table/woodentable/poor, @@ -2168,14 +1987,14 @@ ax ax ax ax -KT -KT -KT -KT -KT -KT -KT -KT +ax +ax +ax +ax +ax +ax +ax +ax "} (2,1,1) = {" ax @@ -2210,14 +2029,14 @@ vI ZO LO ax -KT -KT -KT -KT -KT -KT -KT -KT +ax +ax +ax +ax +ax +ax +ax +ax "} (3,1,1) = {" ax @@ -2250,16 +2069,16 @@ Rg Rg Rg tJ -Ub +LO +ax +ax +ax +ax +ax +ax +ax +ax ax -KT -KT -KT -KT -KT -KT -KT -KT "} (4,1,1) = {" ax @@ -2294,14 +2113,14 @@ vI vI BC ax -KT -KT -KT -KT -KT -KT -KT -KT +ax +ax +ax +ax +ax +ax +ax +ax "} (5,1,1) = {" ax @@ -2334,16 +2153,16 @@ ax Rg Rg iO -Ub +LO +ax +ax +ax +ax +ax +ax +ax +ax ax -KT -KT -KT -KT -KT -KT -KT -KT "} (6,1,1) = {" ax @@ -2378,14 +2197,14 @@ Rg ZO LO ax -KT -KT -KT -KT -KT -KT -KT -KT +ax +ax +ax +ax +ax +ax +ax +ax "} (7,1,1) = {" ax @@ -2420,14 +2239,14 @@ Rg ax ax ax -KT -KT -KT -KT -KT -KT -KT -KT +ax +ax +ax +ax +ax +ax +ax +ax "} (8,1,1) = {" KT @@ -2461,15 +2280,15 @@ HI ax ax ax -KT -KT -KT -KT -KT -KT -KT -KT -KT +ax +ax +ax +ax +ax +ax +ax +ax +ax "} (9,1,1) = {" KT @@ -2505,13 +2324,13 @@ ax KT KT KT -KT -KT -KT -KT -KT -KT -KT +ax +ax +ax +ax +ax +ax +ax "} (10,1,1) = {" KT @@ -2548,12 +2367,12 @@ KT KT KT KT -KT -KT -KT -KT -KT -KT +ax +ax +ax +ax +ax +ax "} (11,1,1) = {" KT @@ -2591,11 +2410,11 @@ KT KT KT KT -KT -KT -KT -KT -KT +ax +ax +ax +ax +ax "} (12,1,1) = {" KT @@ -2634,10 +2453,10 @@ iG KT KT KT -KT -KT -KT -KT +ax +ax +ax +ax "} (13,1,1) = {" KT @@ -2676,10 +2495,10 @@ pk pk KT KT -KT -KT -KT -KT +ax +ax +ax +ax "} (14,1,1) = {" DN @@ -2718,10 +2537,10 @@ ON pk pk KT -KT -KT -KT -KT +ax +ax +ax +ax "} (15,1,1) = {" DN @@ -2762,8 +2581,8 @@ pk ax ax ax -KT -KT +ax +ax "} (16,1,1) = {" KT @@ -2804,8 +2623,8 @@ xL pk ax ax -KT -KT +ax +ax "} (17,1,1) = {" ax @@ -3006,7 +2825,7 @@ zO Ch ZI ZI -MQ +Ia mw mw LQ diff --git a/maps/templates/lazy_templates/freelancer_ert_station.dmm b/maps/templates/lazy_templates/freelancer_ert_station.dmm new file mode 100644 index 000000000000..61bfe2961c48 --- /dev/null +++ b/maps/templates/lazy_templates/freelancer_ert_station.dmm @@ -0,0 +1,2068 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"ae" = ( +/obj/structure/machinery/cm_vending/gear/antag{ + hacked = 1; + name = "\improper Response Team Automated Gear Rack"; + use_snowflake_points = 1 + }, +/turf/open/floor/almayer/plating/northeast, +/area/adminlevel/ert_station) +"aj" = ( +/obj/structure/machinery/cryopod, +/obj/structure/sign/safety/cryo{ + pixel_x = 36 + }, +/turf/open/floor/carpet, +/area/adminlevel/ert_station) +"aA" = ( +/obj/structure/machinery/autolathe/full, +/turf/open/floor/almayer/test_floor5, +/area/adminlevel/ert_station) +"bd" = ( +/obj/structure/surface/table/woodentable/fancy, +/obj/item/reagent_container/food/snacks/pastatomato, +/obj/item/ashtray/bronze{ + pixel_x = 7; + pixel_y = 9 + }, +/obj/item/reagent_container/food/drinks/bottle/whiskey{ + pixel_x = -7; + pixel_y = 16 + }, +/turf/open/floor/carpet, +/area/adminlevel/ert_station) +"bk" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/machinery/recharger, +/obj/item/device/defibrillator/upgraded, +/obj/item/clothing/glasses/hud/health, +/obj/item/roller, +/turf/open/floor/almayer/sterile_green_side/northwest, +/area/adminlevel/ert_station) +"bT" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N" + }, +/turf/open/floor/plating/almayer, +/area/adminlevel/ert_station) +"cw" = ( +/obj/structure/machinery/chem_dispenser/soda{ + density = 0; + pixel_y = 10 + }, +/obj/structure/surface/table/reinforced, +/turf/open/floor/prison/kitchen, +/area/adminlevel/ert_station) +"cL" = ( +/turf/open/floor/plating/almayer, +/area/adminlevel/ert_station) +"cR" = ( +/turf/open/floor/almayer/orange/west, +/area/adminlevel/ert_station) +"cS" = ( +/obj/structure/sink{ + dir = 8; + pixel_x = -11 + }, +/turf/open/floor/almayer/sterile_green_side/northeast, +/area/adminlevel/ert_station) +"de" = ( +/obj/structure/bed/chair{ + dir = 4 + }, +/turf/open/floor/wood/ship, +/area/adminlevel/ert_station) +"dj" = ( +/obj/structure/machinery/bioprinter{ + stored_metal = 1000 + }, +/turf/open/floor/almayer/dark_sterile, +/area/adminlevel/ert_station) +"dz" = ( +/obj/structure/machinery/door/airlock/almayer/generic{ + dir = 1; + name = "\improper Bathroom" + }, +/turf/open/floor/almayer/dark_sterile, +/area/adminlevel/ert_station) +"dI" = ( +/turf/open/floor/almayer/silver/north, +/area/adminlevel/ert_station) +"dJ" = ( +/turf/open/floor/almayer/red/north, +/area/adminlevel/ert_station) +"dL" = ( +/obj/structure/sign/safety, +/turf/closed/wall, +/area/adminlevel/ert_station) +"dS" = ( +/obj/structure/machinery/washing_machine, +/turf/open/floor/almayer/dark_sterile, +/area/adminlevel/ert_station) +"ee" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/machinery/computer/emails{ + dir = 8; + pixel_y = 6 + }, +/turf/open/floor/almayer/floor, +/area/adminlevel/ert_station) +"em" = ( +/obj/structure/machinery/cm_vending/sorted/walkman, +/turf/open/floor/wood/ship, +/area/adminlevel/ert_station) +"eG" = ( +/obj/structure/disposalpipe/segment{ + dir = 2 + }, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/ert_station) +"eH" = ( +/obj/structure/machinery/door/airlock/almayer/generic{ + name = "Restroom" + }, +/turf/open/floor/almayer/dark_sterile, +/area/adminlevel/ert_station) +"eN" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/ert_station) +"fX" = ( +/obj/structure/machinery/medical_pod/sleeper, +/turf/open/floor/almayer/dark_sterile, +/area/adminlevel/ert_station) +"fY" = ( +/obj/structure/window/framed/colony/reinforced/hull, +/turf/open/floor/almayer/redfull, +/area/adminlevel/ert_station) +"gi" = ( +/obj/structure/surface/table/woodentable/fancy, +/obj/item/book/manual/chef_recipes, +/obj/item/clothing/head/chefhat, +/obj/item/storage/box/drinkingglasses, +/obj/item/reagent_container/food/drinks/shaker, +/turf/open/floor/carpet, +/area/adminlevel/ert_station) +"gm" = ( +/obj/effect/decal/cleanable/blood, +/turf/open/floor/almayer/plating/northeast, +/area/adminlevel/ert_station) +"gI" = ( +/obj/structure/sign/poster/clf, +/turf/closed/wall, +/area/adminlevel/ert_station) +"gS" = ( +/obj/structure/sign/safety/debark_lounge, +/turf/closed/wall/r_wall/unmeltable, +/area/adminlevel/ert_station) +"gU" = ( +/obj/docking_port/stationary/emergency_response/idle_port2, +/turf/open/floor/plating, +/area/adminlevel/ert_station) +"ha" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/machinery/computer/emails{ + dir = 8; + pixel_y = 6 + }, +/obj/item/prop/helmetgarb/prescription_bottle{ + pixel_x = -9; + pixel_y = -4 + }, +/turf/open/floor/almayer/floor, +/area/adminlevel/ert_station) +"hl" = ( +/obj/structure/machinery/chem_dispenser, +/obj/item/reagent_container/glass/beaker/bluespace, +/turf/open/floor/almayer/dark_sterile, +/area/adminlevel/ert_station) +"hr" = ( +/obj/structure/bed/chair{ + dir = 4 + }, +/turf/open/floor/almayer/red, +/area/adminlevel/ert_station) +"hs" = ( +/obj/structure/sign/safety/maint, +/turf/closed/wall, +/area/adminlevel/ert_station) +"hx" = ( +/obj/structure/machinery/door/airlock/almayer/generic{ + dir = 8; + name = "Secure Storage" + }, +/obj/structure/machinery/door/poddoor/almayer{ + dir = 4; + unacidable = 1 + }, +/turf/open/floor/almayer/plating/northeast, +/area/adminlevel/ert_station) +"hE" = ( +/obj/structure/barricade/handrail, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/ert_station) +"ij" = ( +/obj/structure/surface/table/woodentable/fancy, +/obj/item/paper_bin/wy, +/obj/item/tool/pen, +/turf/open/floor/carpet, +/area/adminlevel/ert_station) +"in" = ( +/turf/open/floor/almayer/silver/east, +/area/adminlevel/ert_station) +"io" = ( +/turf/open/floor/almayer/silver, +/area/adminlevel/ert_station) +"ju" = ( +/obj/structure/machinery/cm_vending/sorted/boozeomat/chess, +/turf/open/floor/wood/ship, +/area/adminlevel/ert_station) +"jF" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/almayer/dark_sterile, +/area/adminlevel/ert_station) +"jJ" = ( +/obj/structure/machinery/photocopier, +/turf/open/floor/almayer/floor, +/area/adminlevel/ert_station) +"jZ" = ( +/obj/structure/machinery/door/airlock/almayer/generic{ + damage_cap = 50000; + name = "\improper Hangar"; + no_panel = 1 + }, +/obj/structure/sign/safety/debark_lounge{ + pixel_x = 15; + pixel_y = -32 + }, +/turf/open/floor/almayer/tcomms, +/area/adminlevel/ert_station) +"kn" = ( +/turf/open/floor/almayer/dark_sterile, +/area/adminlevel/ert_station) +"kZ" = ( +/obj/item/prop/helmetgarb/rosary, +/turf/open/floor/carpet, +/area/adminlevel/ert_station) +"lp" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/ert_station) +"lx" = ( +/turf/open/floor/almayer/greencorner/north, +/area/adminlevel/ert_station) +"lP" = ( +/obj/structure/machinery/cm_vending/sorted/medical/blood{ + req_access = null + }, +/turf/open/floor/almayer/dark_sterile, +/area/adminlevel/ert_station) +"lQ" = ( +/obj/structure/sign/safety/debark_lounge{ + pixel_x = 15; + pixel_y = -32 + }, +/turf/closed/wall/r_wall/unmeltable, +/area/adminlevel/ert_station) +"mw" = ( +/obj/structure/sign/nosmoking_1, +/turf/closed/wall/r_wall/unmeltable, +/area/adminlevel/ert_station) +"mM" = ( +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/ert_station) +"mR" = ( +/obj/structure/sign/poster{ + pixel_x = -32; + serial_number = 16 + }, +/turf/open/floor/almayer/silver/west, +/area/adminlevel/ert_station) +"mX" = ( +/obj/structure/disposalpipe/segment{ + dir = 2 + }, +/turf/open/floor/almayer/silver/east, +/area/adminlevel/ert_station) +"nx" = ( +/obj/structure/disposalpipe/segment{ + dir = 1 + }, +/turf/open/floor/almayer/silver/north, +/area/adminlevel/ert_station) +"nU" = ( +/obj/structure/machinery/door/airlock/almayer/engineering{ + name = "\improper Engineering Storage" + }, +/turf/open/floor/almayer/floor, +/area/adminlevel/ert_station) +"oc" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/reagent_container/food/snacks/soylentgreen, +/obj/item/reagent_container/food/drinks/cans/waterbottle{ + pixel_x = 11; + pixel_y = 13 + }, +/turf/open/floor/almayer/red/southeast, +/area/adminlevel/ert_station) +"oj" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/almayer/test_floor5, +/area/adminlevel/ert_station) +"ou" = ( +/turf/open/floor/wood/ship, +/area/adminlevel/ert_station) +"oE" = ( +/obj/structure/bed/chair/comfy, +/turf/open/floor/carpet, +/area/adminlevel/ert_station) +"oL" = ( +/turf/open/floor/almayer/silver/northeast, +/area/adminlevel/ert_station) +"pj" = ( +/obj/structure/machinery/door/airlock/almayer/security/glass{ + dir = 1; + name = "Detention Cell"; + req_access = null + }, +/obj/structure/disposalpipe/segment{ + dir = 2 + }, +/turf/open/floor/almayer/redfull, +/area/adminlevel/ert_station) +"pK" = ( +/obj/structure/surface/table/woodentable/fancy, +/obj/structure/reagent_dispensers/beerkeg{ + density = 0 + }, +/turf/open/floor/carpet, +/area/adminlevel/ert_station) +"pX" = ( +/obj/structure/machinery/cm_vending/sorted/tech/tool_storage, +/obj/effect/spider/stickyweb, +/turf/open/floor/almayer/orange/northwest, +/area/adminlevel/ert_station) +"qt" = ( +/obj/structure/machinery/status_display{ + pixel_y = 30 + }, +/turf/open/floor/almayer/plating_striped, +/area/adminlevel/ert_station) +"qV" = ( +/obj/structure/sign/poster/music, +/turf/closed/wall, +/area/adminlevel/ert_station) +"qX" = ( +/obj/structure/machinery/iv_drip, +/turf/open/floor/almayer/dark_sterile, +/area/adminlevel/ert_station) +"rN" = ( +/turf/closed/wall/mineral/gold, +/area/adminlevel/ert_station) +"rS" = ( +/obj/structure/sign/goldenplaque{ + pixel_y = 27 + }, +/turf/open/floor/carpet, +/area/adminlevel/ert_station) +"su" = ( +/obj/structure/bed/chair{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/ert_station) +"sy" = ( +/obj/structure/machinery/vending/security, +/turf/open/floor/almayer/red/southeast, +/area/adminlevel/ert_station) +"tx" = ( +/obj/structure/disposalpipe/segment{ + dir = 1 + }, +/turf/open/floor/almayer/floor, +/area/adminlevel/ert_station) +"tA" = ( +/obj/structure/bed, +/obj/item/bedsheet, +/turf/open/floor/carpet, +/area/adminlevel/ert_station) +"tD" = ( +/obj/structure/machinery/cm_vending/sorted/boozeomat, +/turf/open/floor/wood/ship, +/area/adminlevel/ert_station) +"tW" = ( +/obj/structure/machinery/chem_dispenser/soda/beer{ + density = 0; + pixel_y = 10 + }, +/obj/structure/surface/table/reinforced, +/turf/open/floor/prison/kitchen, +/area/adminlevel/ert_station) +"um" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/storage/surgical_tray, +/obj/item/reagent_container/spray/cleaner{ + desc = "Someone has crossed out the Space from Space Cleaner and written in Surgery. 'Do not remove under punishment of death!!!' is scrawled on the back."; + name = "Surgery Cleaner" + }, +/obj/item/storage/box/monkeycubes, +/turf/open/floor/almayer/sterile_green_side/north, +/area/adminlevel/ert_station) +"uq" = ( +/turf/open/floor/carpet, +/area/adminlevel/ert_station) +"vo" = ( +/obj/structure/surface/table/woodentable/fancy, +/obj/item/clothing/suit/chef/classic, +/obj/item/clothing/gloves/latex, +/obj/item/clothing/head/chefhat, +/turf/open/floor/carpet, +/area/adminlevel/ert_station) +"vM" = ( +/obj/structure/closet/secure_closet/freezer/fridge/full, +/obj/item/reagent_container/food/condiment/enzyme, +/turf/open/floor/prison/kitchen, +/area/adminlevel/ert_station) +"vO" = ( +/obj/structure/sign/poster{ + desc = "You are becoming hysterical."; + icon_state = "poster11"; + name = "YOU ALWAYS KNOW A WORKING JOE."; + pixel_y = 30 + }, +/turf/open/floor/almayer/plating_striped, +/area/adminlevel/ert_station) +"vS" = ( +/obj/structure/machinery/chem_master, +/obj/structure/machinery/status_display{ + pixel_y = 30 + }, +/turf/open/floor/almayer/dark_sterile, +/area/adminlevel/ert_station) +"wd" = ( +/obj/structure/window/framed/colony, +/turf/open/floor/almayer/floor, +/area/adminlevel/ert_station) +"wv" = ( +/obj/structure/surface/table/almayer, +/obj/structure/bedsheetbin{ + pixel_y = 6 + }, +/turf/open/floor/almayer/dark_sterile, +/area/adminlevel/ert_station) +"wF" = ( +/obj/structure/closet{ + name = "boxing attire" + }, +/turf/open/floor/almayer/silver, +/area/adminlevel/ert_station) +"xn" = ( +/obj/structure/machinery/cm_vending/sorted/medical/chemistry/no_access{ + req_access = null + }, +/turf/open/floor/almayer/sterile_green_side/southeast, +/area/adminlevel/ert_station) +"xN" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/almayer/floor, +/area/adminlevel/ert_station) +"xR" = ( +/obj/structure/disposalpipe/segment{ + dir = 2 + }, +/turf/open/floor/almayer/floor, +/area/adminlevel/ert_station) +"yq" = ( +/turf/open/floor/almayer/floor, +/area/adminlevel/ert_station) +"yw" = ( +/turf/open/floor/almayer/sterile_green_side, +/area/adminlevel/ert_station) +"yP" = ( +/obj/structure/machinery/door/airlock/almayer/generic{ + dir = 2; + name = "Lounge" + }, +/turf/open/floor/wood/ship, +/area/adminlevel/ert_station) +"zy" = ( +/obj/structure/mirror, +/turf/closed/wall/r_wall/unmeltable, +/area/adminlevel/ert_station) +"zz" = ( +/obj/structure/machinery/medical_pod/bodyscanner, +/turf/open/floor/almayer/dark_sterile, +/area/adminlevel/ert_station) +"zR" = ( +/obj/structure/closet/secure_closet/freezer/meat, +/turf/open/floor/prison/kitchen, +/area/adminlevel/ert_station) +"Aw" = ( +/obj/structure/machinery/cm_vending/sorted/medical/wall_med/souto, +/turf/closed/wall, +/area/adminlevel/ert_station) +"AD" = ( +/obj/structure/disposalpipe/segment{ + dir = 1 + }, +/turf/open/floor/carpet, +/area/adminlevel/ert_station) +"AJ" = ( +/turf/open/floor/almayer/sterile_green_side/southeast, +/area/adminlevel/ert_station) +"AV" = ( +/obj/structure/machinery/newscaster/security_unit, +/turf/closed/wall/r_wall/unmeltable, +/area/adminlevel/ert_station) +"BI" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/almayer/floor, +/area/adminlevel/ert_station) +"BL" = ( +/obj/structure/target{ + name = "punching bag" + }, +/turf/open/floor/almayer/silver, +/area/adminlevel/ert_station) +"Cm" = ( +/obj/structure/closet/secure_closet/freezer/fridge/groceries, +/turf/open/floor/prison/kitchen, +/area/adminlevel/ert_station) +"CF" = ( +/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ + pixel_y = 28 + }, +/obj/structure/bed/sofa/south/grey/right, +/obj/item/trash/buritto, +/turf/open/floor/almayer/silver/north, +/area/adminlevel/ert_station) +"CJ" = ( +/obj/structure/machinery/disposal, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/open/floor/almayer/silver/west, +/area/adminlevel/ert_station) +"CP" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/turf/open/floor/plating/almayer, +/area/adminlevel/ert_station) +"Ea" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/turf/open/floor/plating/almayer, +/area/adminlevel/ert_station) +"Ef" = ( +/obj/structure/bed/chair{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/adminlevel/ert_station) +"Es" = ( +/obj/structure/machinery/cm_vending/sorted/cargo_guns/antag_guns{ + hacked = 1; + name = "\improper Response Team Automated Guns Rack"; + use_power = 0; + use_snowflake_points = 1 + }, +/turf/open/floor/almayer/plating/northeast, +/area/adminlevel/ert_station) +"Ey" = ( +/obj/structure/machinery/door/airlock/almayer/generic{ + dir = 1; + name = "\improper Dormitories" + }, +/obj/structure/disposalpipe/segment{ + dir = 1 + }, +/turf/open/floor/almayer/floor, +/area/adminlevel/ert_station) +"EK" = ( +/obj/structure/janitorialcart, +/obj/item/reagent_container/glass/bucket/janibucket, +/obj/item/reagent_container/spray/cleaner, +/obj/item/tool/wet_sign, +/obj/item/tool/wet_sign, +/obj/item/tool/mop, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/almayer/dark_sterile, +/area/adminlevel/ert_station) +"Fg" = ( +/turf/closed/wall/r_wall/unmeltable, +/area/adminlevel/ert_station) +"Fo" = ( +/obj/structure/bed/chair{ + dir = 8 + }, +/turf/open/floor/carpet, +/area/adminlevel/ert_station) +"FB" = ( +/turf/open/floor/almayer/plating/northeast, +/area/adminlevel/ert_station) +"FQ" = ( +/obj/structure/disposalpipe/junction{ + dir = 8 + }, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/ert_station) +"FZ" = ( +/turf/open/floor/almayer/silver/southeast, +/area/adminlevel/ert_station) +"Gh" = ( +/obj/structure/bed/stool, +/turf/open/floor/wood/ship, +/area/adminlevel/ert_station) +"Gk" = ( +/obj/structure/machinery/disposal, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/almayer/floor, +/area/adminlevel/ert_station) +"Gu" = ( +/obj/structure/machinery/vending/dinnerware, +/turf/open/floor/wood/ship, +/area/adminlevel/ert_station) +"Hg" = ( +/obj/structure/closet/secure_closet/brig, +/obj/item/book/manual/marine_law, +/obj/item/restraint/handcuffs, +/turf/open/floor/almayer/red/east, +/area/adminlevel/ert_station) +"Hj" = ( +/obj/structure/sign/safety/medical, +/obj/structure/sign/safety/autodoc{ + pixel_x = 15 + }, +/turf/closed/wall/r_wall/unmeltable, +/area/adminlevel/ert_station) +"Hy" = ( +/obj/item/newspaper, +/turf/open/floor/carpet, +/area/adminlevel/ert_station) +"HI" = ( +/obj/structure/disposalpipe/segment{ + dir = 2 + }, +/turf/open/floor/almayer/red/southwest, +/area/adminlevel/ert_station) +"HN" = ( +/turf/open/floor/almayer/silvercorner, +/area/adminlevel/ert_station) +"HR" = ( +/obj/structure/disposalpipe/segment{ + dir = 2 + }, +/turf/closed/wall/r_wall/unmeltable, +/area/adminlevel/ert_station) +"HS" = ( +/obj/item/trash/cigbutt/cigarbutt, +/turf/open/floor/almayer/floor, +/area/adminlevel/ert_station) +"Ih" = ( +/obj/structure/noticeboard{ + pixel_y = 34 + }, +/obj/structure/machinery/computer/arcade, +/turf/open/floor/wood/ship, +/area/adminlevel/ert_station) +"Im" = ( +/obj/structure/bed/chair{ + dir = 8 + }, +/turf/open/floor/wood/ship, +/area/adminlevel/ert_station) +"IG" = ( +/obj/structure/toilet, +/turf/open/floor/almayer/dark_sterile, +/area/adminlevel/ert_station) +"IP" = ( +/obj/structure/disposalpipe/segment{ + dir = 2 + }, +/turf/open/floor/almayer/red/northwest, +/area/adminlevel/ert_station) +"Jg" = ( +/obj/structure/sign/safety/galley{ + pixel_x = -17 + }, +/obj/structure/machinery/door/window/southleft, +/turf/open/floor/prison/kitchen, +/area/adminlevel/ert_station) +"Jn" = ( +/obj/structure/sign/safety/bathunisex{ + pixel_x = -17 + }, +/turf/open/floor/wood/ship, +/area/adminlevel/ert_station) +"JD" = ( +/obj/structure/surface/table/gamblingtable, +/obj/item/device/flashlight/lamp/green{ + pixel_y = 10 + }, +/obj/item/storage/fancy/cigar, +/obj/item/storage/box/matches{ + pixel_x = -2; + pixel_y = 9 + }, +/obj/item/coin/uranium, +/turf/open/floor/wood/ship, +/area/adminlevel/ert_station) +"JW" = ( +/obj/structure/extinguisher_cabinet{ + pixel_y = 27 + }, +/obj/structure/bed/sofa/south/grey/left, +/turf/open/floor/almayer/silver/north, +/area/adminlevel/ert_station) +"Kp" = ( +/turf/open/floor/almayer/sterile_green_side/southwest, +/area/adminlevel/ert_station) +"Kq" = ( +/obj/structure/surface/table/reinforced, +/obj/structure/machinery/processor{ + pixel_y = 10 + }, +/turf/open/floor/prison/kitchen, +/area/adminlevel/ert_station) +"Kt" = ( +/turf/open/floor/almayer/greencorner/west, +/area/adminlevel/ert_station) +"KK" = ( +/obj/structure/surface/table/reinforced, +/obj/item/tool/kitchen/tray, +/obj/item/tool/kitchen/knife{ + pixel_x = 3 + }, +/obj/item/tool/kitchen/knife/butcher{ + pixel_x = -8 + }, +/obj/item/tool/kitchen/rollingpin, +/turf/open/floor/prison/kitchen, +/area/adminlevel/ert_station) +"KN" = ( +/obj/structure/machinery/autodoc_console, +/turf/open/floor/almayer/dark_sterile, +/area/adminlevel/ert_station) +"Lh" = ( +/turf/open/space/basic, +/area/space) +"Li" = ( +/obj/structure/bed, +/obj/item/bedsheet/brown, +/turf/open/floor/almayer/red/northeast, +/area/adminlevel/ert_station) +"Lt" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/almayer/floor, +/area/adminlevel/ert_station) +"LN" = ( +/turf/open/floor/almayer/plating_striped, +/area/adminlevel/ert_station) +"Mj" = ( +/obj/structure/surface/table/woodentable/fancy, +/obj/item/reagent_container/food/snacks/milosoup{ + pixel_y = 10 + }, +/obj/item/reagent_container/food/snacks/meatsteak{ + pixel_y = -2 + }, +/turf/open/floor/carpet, +/area/adminlevel/ert_station) +"Ns" = ( +/obj/structure/machinery/optable, +/obj/item/tank/anesthetic, +/turf/open/floor/almayer/sterile_green_side/northeast, +/area/adminlevel/ert_station) +"Of" = ( +/turf/open/floor/almayer/red/east, +/area/adminlevel/ert_station) +"Os" = ( +/obj/structure/machinery/faxmachine, +/obj/structure/surface/table/reinforced/prison, +/turf/open/floor/almayer/floor, +/area/adminlevel/ert_station) +"OA" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/almayer/floor, +/area/adminlevel/ert_station) +"Pb" = ( +/turf/open/floor/almayer/sterile_green_side/north, +/area/adminlevel/ert_station) +"Pd" = ( +/obj/structure/machinery/sleep_console, +/turf/open/floor/almayer/dark_sterile, +/area/adminlevel/ert_station) +"Pn" = ( +/obj/structure/machinery/door/airlock/almayer/generic{ + dir = 1; + name = "Restroom" + }, +/obj/structure/disposalpipe/segment{ + dir = 1 + }, +/turf/open/floor/almayer/dark_sterile, +/area/adminlevel/ert_station) +"PP" = ( +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_10" + }, +/turf/open/floor/wood/ship, +/area/adminlevel/ert_station) +"Qc" = ( +/turf/open/floor/almayer/orange/east, +/area/adminlevel/ert_station) +"Qi" = ( +/obj/structure/bed, +/obj/item/bedsheet/medical, +/turf/open/floor/almayer/dark_sterile, +/area/adminlevel/ert_station) +"Qv" = ( +/turf/open/floor/almayer/red, +/area/adminlevel/ert_station) +"QQ" = ( +/obj/structure/closet/boxinggloves, +/turf/open/floor/almayer/silver, +/area/adminlevel/ert_station) +"Rb" = ( +/turf/open/floor/almayer/silver/west, +/area/adminlevel/ert_station) +"Rk" = ( +/obj/structure/sign/poster/art, +/turf/closed/wall/r_wall/unmeltable, +/area/adminlevel/ert_station) +"Rz" = ( +/obj/structure/machinery/medical_pod/autodoc/unskilled, +/turf/open/floor/almayer/dark_sterile, +/area/adminlevel/ert_station) +"RC" = ( +/obj/structure/machinery/disposal, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/almayer/dark_sterile, +/area/adminlevel/ert_station) +"RG" = ( +/obj/structure/machinery/cm_vending/sorted/medical/no_access{ + req_access = null + }, +/turf/open/floor/almayer/sterile_green_side, +/area/adminlevel/ert_station) +"RO" = ( +/obj/structure/disposalpipe/segment{ + dir = 2 + }, +/turf/open/floor/almayer/greencorner/east, +/area/adminlevel/ert_station) +"RW" = ( +/obj/structure/disposalpipe/junction, +/turf/open/floor/almayer/silver/east, +/area/adminlevel/ert_station) +"Sh" = ( +/turf/closed/wall, +/area/adminlevel/ert_station) +"Sk" = ( +/obj/structure/machinery/cm_vending/sorted/tech/comp_storage, +/turf/open/floor/almayer/orange/north, +/area/adminlevel/ert_station) +"Su" = ( +/obj/structure/closet/cabinet, +/turf/open/floor/carpet, +/area/adminlevel/ert_station) +"Sy" = ( +/obj/structure/machinery/status_display{ + pixel_y = 30 + }, +/obj/structure/bed/sofa/south/grey, +/turf/open/floor/almayer/silver/north, +/area/adminlevel/ert_station) +"SH" = ( +/obj/structure/sign/poster{ + pixel_x = -32; + serial_number = 16 + }, +/turf/open/floor/almayer/floor, +/area/adminlevel/ert_station) +"SL" = ( +/obj/structure/machinery/body_scanconsole, +/turf/open/floor/almayer/sterile_green, +/area/adminlevel/ert_station) +"SP" = ( +/obj/structure/machinery/gibber{ + pixel_y = 10 + }, +/obj/structure/surface/table/reinforced, +/turf/open/floor/prison/kitchen, +/area/adminlevel/ert_station) +"Ta" = ( +/turf/open/floor/almayer/silver/northwest, +/area/adminlevel/ert_station) +"Th" = ( +/turf/open/floor/plating, +/area/adminlevel/ert_station) +"TM" = ( +/turf/open/floor/prison/kitchen, +/area/adminlevel/ert_station) +"TV" = ( +/obj/structure/sign/poster/hunk, +/obj/structure/window/framed/colony/reinforced/hull, +/turf/open/floor/almayer/redfull, +/area/adminlevel/ert_station) +"Un" = ( +/turf/open/floor/almayer/sterile_green_side/northwest, +/area/adminlevel/ert_station) +"Ux" = ( +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_21" + }, +/turf/open/floor/almayer/silver/west, +/area/adminlevel/ert_station) +"UT" = ( +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_10" + }, +/turf/open/floor/almayer/silver/west, +/area/adminlevel/ert_station) +"Vd" = ( +/obj/structure/surface/table/woodentable, +/obj/item/pizzabox/meat{ + pixel_y = 8 + }, +/turf/open/floor/almayer/silver/north, +/area/adminlevel/ert_station) +"Vz" = ( +/obj/structure/sign/nosmoking_2, +/turf/closed/wall, +/area/adminlevel/ert_station) +"VF" = ( +/obj/structure/barricade/handrail{ + dir = 1; + pixel_y = 2 + }, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/ert_station) +"VJ" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/almayer/dark_sterile, +/area/adminlevel/ert_station) +"VR" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E" + }, +/turf/open/floor/plating/almayer, +/area/adminlevel/ert_station) +"VU" = ( +/obj/item/trash/barcardine, +/turf/open/floor/wood/ship, +/area/adminlevel/ert_station) +"VV" = ( +/obj/structure/machinery/cm_vending/clothing/antag{ + name = "\improper Response Team Automated Equipment Rack" + }, +/turf/open/floor/almayer/plating/northeast, +/area/adminlevel/ert_station) +"VZ" = ( +/obj/structure/barricade/handrail{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 2 + }, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/ert_station) +"Wf" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/almayer/test_floor5, +/area/adminlevel/ert_station) +"Wl" = ( +/obj/structure/machinery/cm_vending/sorted/tech/electronics_storage, +/turf/open/floor/almayer/orange/northeast, +/area/adminlevel/ert_station) +"Wn" = ( +/turf/open/floor/almayer/sterile_green, +/area/adminlevel/ert_station) +"WR" = ( +/obj/structure/sink{ + dir = 8; + pixel_x = -11 + }, +/turf/open/floor/almayer/dark_sterile, +/area/adminlevel/ert_station) +"Xb" = ( +/obj/structure/disposalpipe/segment{ + dir = 2 + }, +/turf/open/floor/almayer/red, +/area/adminlevel/ert_station) +"Xx" = ( +/obj/structure/barricade/handrail{ + dir = 8 + }, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/ert_station) +"XN" = ( +/obj/structure/transmitter/hidden{ + dir = 8; + name = "Station Telephone"; + phone_id = "Unknown Signal"; + pixel_x = 14 + }, +/turf/open/floor/almayer/floor, +/area/adminlevel/ert_station) +"XQ" = ( +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_21" + }, +/turf/open/floor/wood/ship, +/area/adminlevel/ert_station) +"Yk" = ( +/obj/structure/sign/safety/med_life_support, +/turf/closed/wall, +/area/adminlevel/ert_station) +"YD" = ( +/obj/structure/disposalpipe/segment{ + dir = 2 + }, +/turf/open/floor/almayer/greencorner, +/area/adminlevel/ert_station) +"YM" = ( +/obj/structure/surface/table/woodentable/fancy, +/obj/item/reagent_container/food/snacks/sandwich{ + layer = 4; + pixel_x = 5; + pixel_y = 6 + }, +/obj/item/reagent_container/food/snacks/popcorn{ + pixel_x = -5; + pixel_y = 8 + }, +/obj/item/reagent_container/food/snacks/appletart, +/obj/item/reagent_container/food/condiment/peppermill, +/obj/item/reagent_container/food/condiment/saltshaker, +/turf/open/floor/carpet, +/area/adminlevel/ert_station) +"YT" = ( +/obj/structure/surface/table/reinforced, +/obj/structure/machinery/microwave{ + pixel_y = 10 + }, +/turf/open/floor/prison/kitchen, +/area/adminlevel/ert_station) +"Zp" = ( +/obj/structure/machinery/door/airlock/almayer/medical/glass{ + dir = 1; + name = "\improper Medbay"; + req_access = null; + req_one_access = null + }, +/obj/structure/sign/safety/med_cryo{ + pixel_x = -17 + }, +/turf/open/floor/almayer/dark_sterile, +/area/adminlevel/ert_station) +"ZS" = ( +/obj/structure/machinery/vending/cigarette/colony, +/turf/open/floor/wood/ship, +/area/adminlevel/ert_station) + +(1,1,1) = {" +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Fg +Fg +Fg +Fg +Fg +Fg +Fg +Fg +Fg +Fg +Fg +Fg +Fg +Fg +Fg +Fg +Fg +Fg +Fg +"} +(2,1,1) = {" +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Fg +cL +VR +VR +VR +VR +VR +VR +VR +VR +VR +VR +VR +VR +VR +VR +VR +cL +Fg +"} +(3,1,1) = {" +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Fg +CP +Th +Th +Th +Th +Th +Th +Th +Th +Th +Th +Th +Th +Th +Th +Th +bT +Fg +"} +(4,1,1) = {" +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Fg +CP +Th +Th +Th +Th +Th +Th +Th +Th +Th +Th +Th +Th +Th +gU +Th +bT +Fg +"} +(5,1,1) = {" +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Fg +CP +Th +Th +Th +Th +Th +Th +Th +Th +Th +Th +Th +Th +Th +Th +Th +bT +Fg +"} +(6,1,1) = {" +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Fg +CP +Th +Th +Th +Th +Th +Th +Th +Th +Th +Th +Th +Th +Th +Th +Th +bT +Fg +"} +(7,1,1) = {" +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Fg +CP +Th +Th +Th +Th +Th +Th +Th +Th +Th +Th +Th +Th +Th +Th +Th +bT +Fg +"} +(8,1,1) = {" +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Fg +CP +Th +Th +Th +Th +Th +Th +Th +Th +Th +Th +Th +Th +Th +Th +Th +bT +Fg +"} +(9,1,1) = {" +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Fg +CP +Th +Th +Th +Th +Th +Th +Th +Th +Th +Th +Th +Th +Th +Th +Th +bT +Fg +"} +(10,1,1) = {" +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Fg +CP +Th +Th +Th +Th +Th +Th +Th +Th +Th +Th +Th +Th +Th +Th +Th +bT +Fg +"} +(11,1,1) = {" +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Fg +CP +Th +Th +Th +Th +Th +Th +Th +Th +Th +Th +Th +Th +Th +Th +Th +bT +Fg +"} +(12,1,1) = {" +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Fg +cL +Ea +Ea +Ea +Ea +Ea +Ea +Ea +Ea +Ea +Ea +Ea +Ea +Ea +Ea +Ea +cL +Fg +"} +(13,1,1) = {" +Fg +Fg +Fg +Fg +zy +Fg +Fg +Fg +Fg +Fg +Fg +Fg +lQ +Fg +Fg +Fg +Fg +Fg +AV +Fg +lQ +Fg +jZ +Fg +Fg +Fg +Fg +Fg +Fg +Fg +Fg +Fg +Fg +Fg +Fg +Fg +Fg +"} +(14,1,1) = {" +Fg +IG +dz +kn +WR +wv +dS +Sh +Su +uq +uq +oE +ij +Sh +Ta +Rb +mR +Ux +CJ +UT +Rb +Rb +Rb +yq +yq +SH +yq +yq +yq +yq +SH +BI +Xb +pj +IP +HI +HR +"} +(15,1,1) = {" +Fg +Sh +Sh +kn +kn +kn +jF +Pn +AD +AD +AD +AD +AD +Ey +nx +tx +OA +mM +lp +mM +yq +BI +xR +YD +VZ +VZ +VZ +RO +xR +eG +eG +eN +Qv +fY +dJ +hr +Fg +"} +(16,1,1) = {" +Fg +IG +dz +kn +kn +kn +VJ +Sh +aj +tA +tA +tA +tA +gI +dI +mM +Lt +mX +RW +mX +xR +FQ +yq +hE +FB +FB +gm +VF +yq +HN +Of +Hg +sy +TV +Li +oc +Fg +"} +(17,1,1) = {" +Fg +Sh +Sh +Sh +Sh +kn +EK +Sh +Sh +Sh +qV +Sh +Sh +Sh +JW +mM +io +Hy +uq +uq +dI +lp +yq +hE +gm +FB +FB +VF +yq +wF +Sh +Sh +Sh +Fg +Fg +Fg +Fg +"} +(18,1,1) = {" +Fg +Cm +zR +vM +Sh +kn +RC +Sh +Ih +ou +ou +ou +de +Sh +Sy +mM +io +uq +uq +uq +dI +lp +yq +hE +FB +FB +FB +VF +yq +QQ +Sh +xn +cS +kn +AJ +Ns +Fg +"} +(19,1,1) = {" +Fg +KK +TM +TM +Sh +eH +Sh +Aw +XQ +ou +ou +ou +JD +Sh +CF +yq +io +uq +rN +rS +dI +xN +HS +Kt +Xx +Xx +Xx +lx +yq +BL +Yk +RG +Pb +kn +yw +um +Fg +"} +(20,1,1) = {" +Fg +Kq +TM +TM +Jg +ou +Jn +ou +uq +Ef +Ef +uq +Im +wd +Vd +mM +io +uq +uq +kZ +dI +lp +HN +in +in +in +in +in +in +FZ +Zp +Kp +Un +zz +Kp +bk +Fg +"} +(21,1,1) = {" +Fg +SP +TM +TM +gi +Gh +ou +ou +uq +Mj +bd +uq +ou +wd +dI +mM +io +uq +uq +uq +dI +lp +io +Sh +hs +nU +Vz +Fg +hx +Fg +Hj +hl +kn +SL +kn +fX +Fg +"} +(22,1,1) = {" +Fg +YT +TM +TM +vo +Gh +ou +ou +uq +Fo +Fo +uq +ou +yP +dI +mM +yq +Rb +Rb +Rb +yq +lp +io +Sh +pX +cR +Wf +Fg +vO +VV +Fg +vS +Wn +Wn +Wn +Pd +Fg +"} +(23,1,1) = {" +Fg +cw +TM +TM +YM +Gh +ou +VU +ou +ou +ou +ou +ou +wd +dI +yq +yq +su +mM +su +yq +xN +io +Sh +Sk +yq +oj +Fg +qt +ae +mw +Rz +kn +Wn +qX +dj +Fg +"} +(24,1,1) = {" +Fg +tW +TM +TM +pK +Gh +ou +PP +Gu +ZS +em +tD +ju +wd +oL +yq +Os +ee +XN +ha +jJ +Gk +FZ +dL +Wl +Qc +aA +Fg +LN +Es +Fg +KN +kn +Qi +Qi +lP +Fg +"} +(25,1,1) = {" +Fg +Fg +Fg +Fg +Fg +Fg +Fg +Fg +Fg +Fg +Fg +Fg +Fg +Fg +gS +Fg +gS +Fg +Fg +Rk +Fg +gS +Fg +gS +Fg +Fg +Fg +Fg +Fg +Fg +Fg +Fg +Fg +Fg +Fg +Fg +Fg +"} diff --git a/maps/templates/lazy_templates/pizza_ert_station.dmm b/maps/templates/lazy_templates/pizza_ert_station.dmm new file mode 100644 index 000000000000..c52f388356c8 --- /dev/null +++ b/maps/templates/lazy_templates/pizza_ert_station.dmm @@ -0,0 +1,6213 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"ae" = ( +/obj/structure/machinery/door_control{ + id = "kitchen_pizza_time"; + name = "Main Kitchen Shutters"; + pixel_x = 28 + }, +/obj/structure/safe/floor, +/obj/item/spacecash/c1000, +/obj/item/spacecash/c100, +/obj/item/spacecash/c10, +/obj/item/spacecash/c10, +/obj/item/spacecash/c10, +/obj/item/spacecash/c10, +/obj/item/spacecash/c100, +/obj/item/spacecash/c100, +/obj/item/spacecash/c100, +/obj/item/spacecash/c100, +/obj/item/spacecash/c100, +/obj/item/spacecash/c100, +/obj/item/spacecash/c50, +/obj/item/spacecash/c50, +/obj/item/spacecash/c50, +/obj/item/spacecash/c50, +/obj/item/spacecash/c50, +/obj/item/spacecash/c500, +/obj/item/spacecash/c500, +/obj/item/spacecash/c500, +/turf/open/floor/cmo, +/area/adminlevel/ert_station/pizza_station) +"ah" = ( +/obj/structure/prop/invuln{ + desc = "An inflated membrane. This one is puncture proof. Wow!"; + icon = 'icons/obj/items/inflatable.dmi'; + icon_state = "wall"; + name = "Docking Umbilical" + }, +/obj/structure/blocker/invisible_wall, +/obj/structure/sign/safety/airlock{ + pixel_y = 32 + }, +/obj/structure/sign/safety/hazard{ + pixel_x = 15; + pixel_y = 32 + }, +/turf/open/floor/almayer_hull, +/area/adminlevel/ert_station/pizza_station) +"am" = ( +/obj/structure/surface/table/almayer, +/obj/structure/barricade/handrail/pizza{ + dir = 4; + pixel_y = -3 + }, +/obj/structure/barricade/handrail/pizza{ + pixel_y = -3 + }, +/obj/item/reagent_container/food/drinks/cans/souto/cherry{ + pixel_x = -8; + layer = 2.97 + }, +/obj/item/reagent_container/food/drinks/cans/souto/cherry{ + anchored = 1; + layer = 2.97 + }, +/obj/item/reagent_container/food/drinks/cans/souto/cherry{ + pixel_x = 8; + layer = 2.97 + }, +/obj/item/reagent_container/food/drinks/cans/souto/cherry{ + layer = 4.1; + pixel_x = -4; + pixel_y = 18 + }, +/obj/item/reagent_container/food/drinks/cans/souto/cherry{ + layer = 4.1; + pixel_x = 4; + pixel_y = 18 + }, +/obj/item/reagent_container/food/drinks/cans/souto/cherry{ + layer = 4.2; + pixel_y = 36 + }, +/turf/open/floor/prison/kitchen, +/area/adminlevel/ert_station/pizza_station) +"an" = ( +/obj/structure/bed/chair/bolted{ + dir = 1; + pixel_y = 12; + buckling_y = 12 + }, +/turf/open/floor/prison, +/area/adminlevel/ert_station/pizza_station) +"ap" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/obj/structure/pipes/vents/scrubber{ + dir = 8 + }, +/turf/open/floor/almayer/dark_sterile, +/area/adminlevel/ert_station/pizza_station) +"aq" = ( +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 4 + }, +/turf/open/floor/prison/kitchen, +/area/adminlevel/ert_station/pizza_station) +"aA" = ( +/obj/structure/surface/table/reinforced, +/obj/structure/machinery/microwave{ + pixel_y = 8 + }, +/turf/open/floor/prison/kitchen, +/area/adminlevel/ert_station/pizza_station) +"aD" = ( +/obj/structure/sign/safety/nonpress_0g{ + pixel_x = 32 + }, +/obj/structure/sign/safety/manualopenclose{ + pixel_y = 14; + pixel_x = 32 + }, +/turf/open/floor/plating/prison, +/area/adminlevel/ert_station/pizza_station) +"aJ" = ( +/obj/structure/prop/souto_land/streamer{ + dir = 1; + pixel_y = 9; + pixel_x = 1 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/prison/red, +/area/adminlevel/ert_station/pizza_station) +"aP" = ( +/obj/structure/prop/souto_land/pole{ + dir = 8; + pixel_y = 9 + }, +/obj/structure/prop/souto_land/streamer{ + dir = 9 + }, +/obj/structure/pipes/standard/manifold/hidden/supply, +/turf/open/floor/prison/red, +/area/adminlevel/ert_station/pizza_station) +"aS" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out" + }, +/obj/structure/sign/safety/debark_lounge{ + pixel_y = -32 + }, +/obj/structure/sign/safety/landingzone{ + pixel_y = -32; + pixel_x = 15 + }, +/turf/open/floor/prison/yellow, +/area/adminlevel/ert_station/pizza_station) +"bd" = ( +/obj/structure/prop/invuln{ + desc = "An inflated membrane. This one is puncture proof. Wow!"; + icon = 'icons/obj/items/inflatable.dmi'; + icon_state = "wall"; + name = "Docking Umbilical" + }, +/obj/structure/blocker/invisible_wall, +/turf/open/floor/almayer_hull, +/area/adminlevel/ert_station/pizza_station) +"bl" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "S"; + pixel_y = -1 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/corsat/retrosquareslight, +/area/adminlevel/ert_station/pizza_station) +"bo" = ( +/obj/structure/machinery/shower{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 4; + health = 80 + }, +/obj/structure/window/reinforced{ + dir = 8; + health = 80 + }, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/ert_station/pizza_station) +"bB" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/prison/kitchen, +/area/adminlevel/ert_station/pizza_station) +"bT" = ( +/obj/structure/surface/table/reinforced, +/obj/structure/machinery/recharger, +/turf/open/floor/cmo, +/area/adminlevel/ert_station/pizza_station) +"bU" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 + }, +/obj/structure/machinery/door/airlock/almayer/generic{ + name = "\improper Central Fridge"; + dir = 1 + }, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer/test_floor4, +/area/adminlevel/ert_station/pizza_station) +"cq" = ( +/obj/structure/pipes/vents/scrubber{ + dir = 8 + }, +/turf/open/floor/prison/red/east, +/area/adminlevel/ert_station/pizza_station) +"cr" = ( +/obj/structure/surface/table/reinforced, +/obj/item/trash/plate{ + pixel_x = 1; + pixel_y = 3 + }, +/obj/item/trash/plate{ + pixel_x = 1; + pixel_y = 6 + }, +/obj/item/reagent_container/food/condiment/saltshaker{ + pixel_x = -4 + }, +/obj/item/reagent_container/food/condiment/peppermill{ + pixel_x = 4 + }, +/turf/open/floor/cmo, +/area/adminlevel/ert_station/pizza_station) +"cE" = ( +/obj/structure/surface/table/reinforced/cloth, +/obj/item/trash/ceramic_plate{ + pixel_y = 4; + pixel_x = -2 + }, +/turf/open/floor/redyellowfull, +/area/adminlevel/ert_station/pizza_station) +"cI" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 9 + }, +/turf/open/floor/blueyellowfull, +/area/adminlevel/ert_station/pizza_station) +"cK" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/obj/structure/sign/safety/airlock{ + pixel_y = 32 + }, +/obj/structure/sign/safety/hazard{ + pixel_x = 15; + pixel_y = 32 + }, +/turf/open/floor/prison/yellow/north, +/area/adminlevel/ert_station/pizza_station) +"cL" = ( +/obj/structure/bed/chair/bolted{ + dir = 8; + pixel_x = -7; + buckling_x = -7 + }, +/turf/open/floor/prison, +/area/adminlevel/ert_station/pizza_station) +"cO" = ( +/obj/structure/barricade/handrail/pizza{ + dir = 8; + pixel_y = -3 + }, +/obj/structure/barricade/handrail/pizza{ + dir = 1; + pixel_y = 12 + }, +/obj/structure/prop/souto_land/streamer{ + dir = 6 + }, +/turf/open/floor/redyellowfull, +/area/adminlevel/ert_station/pizza_station) +"cP" = ( +/obj/structure/surface/table/reinforced, +/obj/item/trash/ceramic_plate{ + pixel_y = 5 + }, +/obj/item/trash/ceramic_plate{ + pixel_y = 8 + }, +/obj/item/trash/ceramic_plate{ + pixel_y = 11 + }, +/obj/item/trash/ceramic_plate{ + pixel_y = 14 + }, +/turf/open/floor/prison/kitchen, +/area/adminlevel/ert_station/pizza_station) +"dc" = ( +/obj/structure/disposalpipe/segment{ + dir = 8 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 6 + }, +/turf/open/floor/prison/red/east, +/area/adminlevel/ert_station/pizza_station) +"dh" = ( +/obj/structure/surface/table/reinforced/cloth, +/obj/item/reagent_container/food/drinks/cans/souto/diet/cranberry{ + pixel_y = 20; + layer = 3.03; + pixel_x = 4 + }, +/turf/open/floor/redyellowfull, +/area/adminlevel/ert_station/pizza_station) +"dS" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer, +/obj/structure/machinery/door/airlock/almayer/generic{ + name = "\improper Freezer" + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer/test_floor4, +/area/adminlevel/ert_station/pizza_station) +"ec" = ( +/obj/structure/surface/table/reinforced/cloth, +/obj/item/reagent_container/food/snacks/birthdaycakeslice, +/obj/item/reagent_container/food/drinks/cans/dr_gibb{ + pixel_x = -8; + pixel_y = -6 + }, +/turf/open/floor/redyellowfull, +/area/adminlevel/ert_station/pizza_station) +"ef" = ( +/obj/structure/surface/rack, +/obj/item/reagent_container/food/snacks/sliceable/cheesewheel/mature{ + pixel_x = -1; + pixel_y = 7 + }, +/obj/item/reagent_container/food/snacks/sliceable/cheesewheel/mature{ + pixel_x = 1; + pixel_y = -5 + }, +/turf/open/floor/cmo, +/area/adminlevel/ert_station/pizza_station) +"eh" = ( +/obj/structure/surface/table/reinforced/cloth, +/obj/item/reagent_container/food/snacks/omelette{ + pixel_y = 2; + pixel_x = 1 + }, +/obj/item/reagent_container/food/condiment/coldsauce{ + pixel_y = 22; + pixel_x = -10 + }, +/obj/item/tool/kitchen/utensil/fork{ + pixel_y = 2; + pixel_x = -8 + }, +/obj/item/reagent_container/food/drinks/coffee{ + pixel_y = 13; + pixel_x = 5 + }, +/turf/open/floor/redyellowfull, +/area/adminlevel/ert_station/pizza_station) +"ei" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/almayer_hull, +/area/adminlevel/ert_station/pizza_station) +"eo" = ( +/obj/structure/closet/secure_closet/freezer/meat, +/obj/item/reagent_container/food/condiment/coldsauce, +/obj/item/reagent_container/food/condiment/coldsauce, +/obj/structure/machinery/light/small/blue{ + dir = 1; + pixel_y = 20; + pixel_x = 16 + }, +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 1 + }, +/turf/open/floor/prison/greenblue/north, +/area/adminlevel/ert_station/pizza_station) +"eD" = ( +/obj/structure/reagent_dispensers/water_cooler/stacks{ + density = 0; + pixel_x = -11; + pixel_y = -1 + }, +/turf/open/floor/cmo, +/area/adminlevel/ert_station/pizza_station) +"eI" = ( +/obj/structure/platform/kutjevo/smooth, +/turf/open/space/basic, +/area/space) +"eK" = ( +/obj/structure/prop/souto_land/pole{ + dir = 8; + pixel_y = 9; + pixel_x = 1 + }, +/turf/open/floor/prison/red/southeast, +/area/adminlevel/ert_station/pizza_station) +"eQ" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "S"; + pixel_y = -1 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/cmo, +/area/adminlevel/ert_station/pizza_station) +"eW" = ( +/turf/open/mars_dirt/mars_cave_11, +/area/space) +"fb" = ( +/obj/structure/platform/kutjevo/smooth{ + dir = 8 + }, +/obj/structure/platform/kutjevo/smooth, +/turf/open/space, +/area/space) +"fg" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/prison/kitchen, +/area/adminlevel/ert_station/pizza_station) +"fj" = ( +/obj/structure/closet/firecloset/full, +/turf/open/floor/prison/yellow/west, +/area/adminlevel/ert_station/pizza_station) +"fu" = ( +/turf/open/floor/plating, +/area/adminlevel/ert_station/pizza_station) +"fE" = ( +/obj/structure/bed/sofa/south/grey/right, +/turf/open/floor/prison/yellowcorner/east, +/area/adminlevel/ert_station/pizza_station) +"fH" = ( +/obj/structure/platform/kutjevo/smooth{ + dir = 1 + }, +/obj/structure/barricade/handrail{ + dir = 1; + icon_state = "hr_kutjevo"; + name = "solar lattice" + }, +/obj/structure/platform/kutjevo/smooth{ + dir = 8 + }, +/turf/open/space, +/area/space) +"fN" = ( +/obj/structure/surface/table/reinforced/cloth, +/obj/item/reagent_container/food/drinks/cans/souto/peach{ + pixel_y = 14; + pixel_x = -4 + }, +/obj/item/reagent_container/food/drinks/cans/souto/diet/lime{ + pixel_y = 9 + }, +/obj/structure/machinery/light, +/turf/open/floor/redyellowfull, +/area/adminlevel/ert_station/pizza_station) +"fO" = ( +/obj/structure/platform_decoration/kutjevo{ + dir = 4 + }, +/turf/open/space/basic, +/area/space) +"gb" = ( +/obj/structure/barricade/handrail/pizza{ + pixel_y = -3 + }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 9 + }, +/turf/open/floor/blueyellowfull, +/area/adminlevel/ert_station/pizza_station) +"gu" = ( +/obj/structure/surface/table/almayer, +/obj/structure/barricade/handrail/pizza{ + pixel_y = -3 + }, +/obj/item/storage/box/drinkingglasses{ + layer = 2.97; + pixel_x = 12 + }, +/obj/item/reagent_container/food/drinks/shaker{ + pixel_x = -11; + layer = 2.97; + pixel_y = 2 + }, +/obj/item/reagent_container/food/drinks/bottle/rum{ + pixel_y = 2; + pixel_x = -2; + layer = 2.97 + }, +/turf/open/floor/prison/kitchen, +/area/adminlevel/ert_station/pizza_station) +"gy" = ( +/obj/structure/barricade/handrail/pizza{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/blueyellowfull, +/area/adminlevel/ert_station/pizza_station) +"gU" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N" + }, +/turf/open/floor/prison/yellow, +/area/adminlevel/ert_station/pizza_station) +"gV" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/machinery/light{ + pixel_x = 16; + dir = 1 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/sign/safety/restrictedarea{ + pixel_y = 32 + }, +/turf/open/floor/prison/kitchen, +/area/adminlevel/ert_station/pizza_station) +"ha" = ( +/obj/structure/platform_decoration/kutjevo{ + dir = 1 + }, +/turf/open/space, +/area/space) +"hb" = ( +/obj/structure/barricade/handrail/pizza{ + dir = 1; + pixel_y = 12 + }, +/turf/open/floor/redyellowfull, +/area/adminlevel/ert_station/pizza_station) +"hc" = ( +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 1 + }, +/turf/open/floor/prison/red, +/area/adminlevel/ert_station/pizza_station) +"hg" = ( +/turf/open/floor/prison/yellowcorner/north, +/area/adminlevel/ert_station/pizza_station) +"hv" = ( +/obj/structure/closet/crate/freezer/cooler, +/turf/open/floor/prison/floor_marked/southwest, +/area/adminlevel/ert_station/pizza_station) +"hL" = ( +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 4 + }, +/turf/open/floor/prison/greenblue/north, +/area/adminlevel/ert_station/pizza_station) +"hR" = ( +/obj/structure/barricade/handrail/pizza{ + dir = 8; + pixel_y = -3 + }, +/obj/structure/bed/chair/bolted{ + dir = 4; + pixel_x = 7; + buckling_x = 7 + }, +/obj/structure/sign/safety/hazard{ + pixel_x = 15; + pixel_y = -32 + }, +/obj/structure/sign/safety/airlock{ + pixel_y = -32 + }, +/obj/structure/prop/souto_land/streamer{ + dir = 6 + }, +/turf/open/floor/redyellowfull, +/area/adminlevel/ert_station/pizza_station) +"hX" = ( +/obj/structure/bed/chair/bolted{ + pixel_y = -1; + buckling_y = -1 + }, +/obj/structure/machinery/light{ + dir = 8 + }, +/turf/open/floor/redyellowfull, +/area/adminlevel/ert_station/pizza_station) +"ic" = ( +/obj/item/trash/plate{ + pixel_y = 4 + }, +/obj/item/trash/plate{ + pixel_y = 6 + }, +/obj/item/trash/plate{ + pixel_y = 8 + }, +/obj/item/trash/plate{ + pixel_y = 10 + }, +/obj/structure/surface/table/almayer, +/obj/structure/barricade/handrail/pizza{ + pixel_y = -3 + }, +/obj/item/reagent_container/food/drinks/drinkingglass{ + pixel_y = 14; + pixel_x = 11 + }, +/obj/item/reagent_container/food/drinks/drinkingglass{ + pixel_y = 9; + pixel_x = 12 + }, +/turf/open/floor/prison/kitchen, +/area/adminlevel/ert_station/pizza_station) +"im" = ( +/obj/structure/bed/chair/janicart, +/turf/open/floor/prison, +/area/adminlevel/ert_station/pizza_station) +"ir" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/prison/red/east, +/area/adminlevel/ert_station/pizza_station) +"iw" = ( +/obj/structure/surface/table/reinforced, +/obj/item/reagent_container/food/snacks/tofukabob, +/obj/item/reagent_container/food/snacks/tofukabob{ + pixel_y = 10 + }, +/obj/item/reagent_container/food/snacks/tofukabob{ + pixel_y = 5 + }, +/turf/open/floor/prison/greenblue/southeast, +/area/adminlevel/ert_station/pizza_station) +"iY" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SW-out"; + layer = 2.5 + }, +/obj/structure/sign/safety/debark_lounge{ + pixel_y = 32 + }, +/obj/structure/sign/safety/landingzone{ + pixel_y = 32; + pixel_x = 15 + }, +/turf/open/floor/prison/yellow/north, +/area/adminlevel/ert_station/pizza_station) +"ja" = ( +/obj/structure/platform_decoration/kutjevo{ + dir = 4 + }, +/obj/structure/platform/kutjevo/smooth{ + dir = 1 + }, +/obj/structure/platform/kutjevo/smooth{ + dir = 8 + }, +/obj/structure/barricade/handrail{ + dir = 1; + icon_state = "hr_kutjevo"; + name = "solar lattice" + }, +/turf/open/space, +/area/space) +"jb" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 6 + }, +/turf/open/floor/prison/red/northeast, +/area/adminlevel/ert_station/pizza_station) +"jf" = ( +/obj/structure/surface/table/almayer, +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 + }, +/obj/item/trash/ceramic_plate{ + pixel_y = 2 + }, +/obj/item/reagent_container/food/snacks/toastedsandwich{ + pixel_y = 11 + }, +/obj/structure/machinery/door/poddoor/shutters/almayer{ + name = "\improper Kitchen Shutters"; + id = "kitchen_pizza_time" + }, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/pizza_station) +"jo" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/cmo, +/area/adminlevel/ert_station/pizza_station) +"jq" = ( +/obj/structure/sink{ + dir = 4; + pixel_x = 12 + }, +/obj/structure/mirror{ + pixel_x = 29 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + pixel_y = 1 + }, +/obj/structure/machinery/light/small{ + dir = 1; + pixel_y = 13 + }, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/ert_station/pizza_station) +"jx" = ( +/obj/structure/bed/chair/bolted{ + dir = 4; + pixel_x = 7; + pixel_y = -6; + buckling_x = 7; + buckling_y = -6 + }, +/turf/open/floor/redyellowfull, +/area/adminlevel/ert_station/pizza_station) +"jy" = ( +/obj/structure/surface/table/almayer, +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 + }, +/obj/item/tool/kitchen/tray{ + pixel_y = 6 + }, +/obj/item/tool/kitchen/tray{ + pixel_y = 9 + }, +/obj/item/tool/kitchen/tray{ + pixel_y = 12 + }, +/obj/structure/machinery/door/poddoor/shutters/almayer{ + name = "\improper Kitchen Shutters"; + id = "kitchen_pizza_time" + }, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/pizza_station) +"jH" = ( +/turf/open/mars/mars_cave_10, +/area/space) +"jT" = ( +/obj/structure/barricade/handrail/pizza{ + pixel_y = -3 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/blueyellowfull, +/area/adminlevel/ert_station/pizza_station) +"jV" = ( +/obj/structure/barricade/handrail/pizza{ + dir = 8 + }, +/turf/open/floor/redyellowfull, +/area/adminlevel/ert_station/pizza_station) +"kz" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer, +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ + dir = 1; + name = "\improper Kitchen" + }, +/turf/open/floor/almayer/test_floor4, +/area/adminlevel/ert_station/pizza_station) +"kW" = ( +/obj/structure/barricade/handrail/pizza{ + dir = 8 + }, +/obj/structure/prop/souto_land/streamer{ + dir = 1; + pixel_y = 9 + }, +/turf/open/floor/redyellowfull, +/area/adminlevel/ert_station/pizza_station) +"la" = ( +/obj/structure/blocker/invisible_wall, +/obj/structure/machinery/door/poddoor/almayer{ + unacidable = 1 + }, +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ + locked = 1 + }, +/turf/open/floor/almayer/test_floor4, +/area/adminlevel/ert_station/pizza_station) +"lg" = ( +/turf/closed/shuttle/ert{ + icon_state = "leftengine_1" + }, +/area/adminlevel/ert_station/pizza_station) +"lv" = ( +/obj/structure/surface/table/almayer, +/obj/structure/barricade/handrail/pizza{ + pixel_y = -3 + }, +/obj/item/reagent_container/food/drinks/drinkingglass/cola{ + pixel_y = 8; + pixel_x = -2 + }, +/obj/item/reagent_container/food/drinks/shaker{ + pixel_y = 5; + pixel_x = -11 + }, +/turf/open/floor/prison/kitchen, +/area/adminlevel/ert_station/pizza_station) +"lw" = ( +/obj/structure/surface/table/reinforced/cloth, +/obj/item/reagent_container/food/condiment/coldsauce{ + pixel_y = 22; + pixel_x = -10 + }, +/obj/item/clothing/mask/cigarette{ + pixel_x = 4; + pixel_y = 11 + }, +/obj/item/ashtray/glass{ + pixel_x = -6 + }, +/obj/item/clothing/mask/cigarette{ + pixel_y = 8 + }, +/turf/open/floor/redyellowfull, +/area/adminlevel/ert_station/pizza_station) +"lx" = ( +/obj/structure/platform/kutjevo/smooth{ + dir = 1 + }, +/obj/structure/platform/kutjevo/smooth{ + dir = 8 + }, +/obj/structure/barricade/handrail{ + dir = 1; + icon_state = "hr_kutjevo"; + name = "solar lattice" + }, +/turf/open/space/basic, +/area/space) +"ly" = ( +/obj/structure/surface/table/reinforced/cloth, +/obj/item/reagent_container/food/drinks/cans/souto/grape{ + pixel_y = 16; + pixel_x = 9 + }, +/obj/item/reagent_container/food/drinks/cans/souto/lime{ + pixel_y = 12; + pixel_x = 5 + }, +/turf/open/floor/redyellowfull, +/area/adminlevel/ert_station/pizza_station) +"lB" = ( +/obj/structure/barricade/handrail/pizza{ + dir = 8; + pixel_y = -3 + }, +/obj/structure/barricade/handrail/pizza{ + dir = 1; + pixel_y = 12 + }, +/obj/item/storage/briefcase/stowaway{ + pixel_y = 11; + layer = 4.11 + }, +/obj/structure/prop/souto_land/streamer{ + dir = 6 + }, +/turf/open/floor/redyellowfull, +/area/adminlevel/ert_station/pizza_station) +"lE" = ( +/obj/structure/machinery/vending/dinnerware, +/obj/structure/barricade/handrail/pizza{ + pixel_y = -3 + }, +/turf/open/floor/prison/kitchen, +/area/adminlevel/ert_station/pizza_station) +"lH" = ( +/obj/structure/machinery/door/poddoor/almayer/locked{ + icon_state = "almayer_pdoor"; + id = "pizza_takeaway_out" + }, +/turf/open/floor/almayer/test_floor4, +/area/adminlevel/ert_station/pizza_station) +"lJ" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N" + }, +/obj/structure/sign/safety/airlock{ + pixel_y = -32 + }, +/obj/structure/sign/safety/hazard{ + pixel_x = 15; + pixel_y = -32 + }, +/turf/open/floor/prison/yellow, +/area/adminlevel/ert_station/pizza_station) +"lL" = ( +/turf/open/floor/almayer_hull, +/area/adminlevel/ert_station/pizza_station) +"lN" = ( +/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ + pixel_x = -30 + }, +/turf/open/floor/prison/bright_clean2, +/area/adminlevel/ert_station/pizza_station) +"ma" = ( +/obj/structure/surface/table/reinforced/cloth, +/obj/item/storage/donut_box{ + pixel_y = 10; + pixel_x = 1 + }, +/turf/open/floor/redyellowfull, +/area/adminlevel/ert_station/pizza_station) +"me" = ( +/turf/open/mars_dirt/mars_cave_8, +/area/space) +"mj" = ( +/obj/structure/machinery/shower{ + pixel_y = 16 + }, +/obj/structure/window/reinforced{ + dir = 4; + health = 80 + }, +/obj/structure/window/reinforced{ + dir = 8; + health = 80 + }, +/obj/structure/machinery/light/small{ + dir = 1; + pixel_x = 16; + pixel_y = 20 + }, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/ert_station/pizza_station) +"mk" = ( +/obj/structure/barricade/handrail/pizza{ + dir = 4; + pixel_y = -3 + }, +/obj/structure/barricade/handrail/pizza{ + dir = 4; + pixel_y = 16 + }, +/obj/structure/machinery/vending/snack{ + layer = 4.15; + pixel_y = 3 + }, +/turf/open/floor/prison/bright_clean2, +/area/adminlevel/ert_station/pizza_station) +"mt" = ( +/obj/structure/barricade/handrail/pizza{ + dir = 8; + pixel_y = -3 + }, +/obj/structure/bed/chair/bolted{ + dir = 4; + pixel_x = 7; + buckling_x = 7 + }, +/obj/structure/prop/souto_land/streamer{ + dir = 6 + }, +/turf/open/floor/redyellowfull, +/area/adminlevel/ert_station/pizza_station) +"mP" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/sign/safety/fridge{ + pixel_x = 32 + }, +/turf/open/floor/prison/bright_clean2, +/area/adminlevel/ert_station/pizza_station) +"nf" = ( +/turf/closed/shuttle/ert{ + icon_state = "stan5" + }, +/area/adminlevel/ert_station/pizza_station) +"nl" = ( +/obj/structure/surface/table/almayer, +/turf/open/floor/prison/yellow/west, +/area/adminlevel/ert_station/pizza_station) +"np" = ( +/obj/structure/surface/table/reinforced, +/obj/item/pizzabox{ + pixel_y = 5 + }, +/obj/item/pizzabox{ + pixel_y = 8 + }, +/obj/item/pizzabox{ + pixel_y = 11 + }, +/obj/item/pizzabox{ + pixel_y = 14 + }, +/turf/open/floor/cmo, +/area/adminlevel/ert_station/pizza_station) +"ny" = ( +/obj/structure/closet/secure_closet/fridge/fish/stock, +/obj/structure/machinery/light/small/blue{ + pixel_x = 16 + }, +/turf/open/floor/prison/greenblue, +/area/adminlevel/ert_station/pizza_station) +"nA" = ( +/obj/structure/surface/table/almayer, +/obj/structure/barricade/handrail/pizza{ + pixel_y = -3 + }, +/obj/item/reagent_container/food/drinks/cans/tonic{ + pixel_x = -15; + pixel_y = 10 + }, +/obj/item/reagent_container/food/drinks/cans/tonic{ + pixel_y = 6; + pixel_x = -15 + }, +/obj/structure/machinery/computer/emails{ + dir = 1; + pixel_y = 2; + pixel_x = 3; + layer = 2.97 + }, +/turf/open/floor/prison/kitchen, +/area/adminlevel/ert_station/pizza_station) +"nB" = ( +/turf/open/floor/cmo, +/area/adminlevel/ert_station/pizza_station) +"nK" = ( +/obj/structure/surface/table/reinforced, +/obj/item/tool/kitchen/tray, +/obj/item/tool/kitchen/knife{ + pixel_x = 3 + }, +/obj/item/tool/kitchen/knife/butcher{ + pixel_x = -8 + }, +/obj/structure/machinery/firealarm{ + pixel_x = -24 + }, +/turf/open/floor/cmo, +/area/adminlevel/ert_station/pizza_station) +"nU" = ( +/obj/structure/prop/souto_land/streamer{ + dir = 1; + pixel_y = 9 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/prison/red, +/area/adminlevel/ert_station/pizza_station) +"nX" = ( +/obj/structure/bed/chair/bolted{ + dir = 8; + pixel_x = -7; + buckling_x = -7 + }, +/obj/structure/machinery/light, +/turf/open/floor/redyellowfull, +/area/adminlevel/ert_station/pizza_station) +"oh" = ( +/obj/structure/pipes/standard/manifold/fourway/hidden/supply, +/turf/open/floor/prison/red, +/area/adminlevel/ert_station/pizza_station) +"ok" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 8 + }, +/turf/open/floor/prison/bright_clean2, +/area/adminlevel/ert_station/pizza_station) +"oo" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/prison/yellow/southeast, +/area/adminlevel/ert_station/pizza_station) +"ov" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 9 + }, +/turf/open/floor/cmo, +/area/adminlevel/ert_station/pizza_station) +"oy" = ( +/obj/structure/bedsheetbin{ + icon_state = "linenbin-empty"; + name = "solar lattice"; + pixel_y = 6 + }, +/turf/open/floor/almayer_hull, +/area/space) +"oD" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer, +/obj/structure/machinery/door/airlock/almayer/maint{ + locked = 1; + name = "STAFF ONLY"; + req_one_access = null; + req_one_access_txt = "101" + }, +/turf/open/floor/almayer/test_floor4, +/area/adminlevel/ert_station/pizza_station) +"oG" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating/prison, +/area/adminlevel/ert_station/pizza_station) +"oU" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 9 + }, +/turf/open/floor/prison/red/east, +/area/adminlevel/ert_station/pizza_station) +"oX" = ( +/obj/structure/platform/kutjevo/smooth{ + dir = 1 + }, +/obj/structure/barricade/handrail{ + dir = 1; + icon_state = "hr_kutjevo"; + name = "solar lattice" + }, +/turf/open/space/basic, +/area/space) +"pA" = ( +/obj/structure/machinery/vending/coffee{ + pixel_y = 18; + density = 0 + }, +/obj/structure/machinery/alarm{ + pixel_x = -32 + }, +/turf/open/floor/prison/yellow/northwest, +/area/adminlevel/ert_station/pizza_station) +"pD" = ( +/turf/open/mars_dirt/mars_cave_10, +/area/space) +"pE" = ( +/obj/structure/sink{ + dir = 4; + pixel_x = 12 + }, +/obj/structure/mirror{ + pixel_x = 29 + }, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/ert_station/pizza_station) +"pS" = ( +/obj/structure/bed/chair/bolted{ + dir = 8; + pixel_x = -7; + buckling_x = -7 + }, +/turf/open/floor/redyellowfull, +/area/adminlevel/ert_station/pizza_station) +"pT" = ( +/obj/structure/closet/crate/freezer/rations, +/obj/item/reagent_container/food/snacks/meat/fish/crab, +/obj/item/reagent_container/food/snacks/meat/fish/crab, +/obj/item/reagent_container/food/snacks/meat/fish/squid, +/obj/item/reagent_container/food/snacks/meat/fish/squid, +/obj/item/reagent_container/food/snacks/meat/fish/squid, +/obj/item/reagent_container/food/snacks/meat/fish/squid/alt, +/obj/item/reagent_container/food/snacks/meat/fish/squid/alt, +/obj/item/reagent_container/food/snacks/meat/fish/squid/alt, +/obj/item/reagent_container/food/snacks/meat/fish, +/obj/item/reagent_container/food/snacks/meat/fish, +/obj/item/reagent_container/food/snacks/meat/fish, +/obj/item/reagent_container/food/snacks/meat/fish, +/turf/open/floor/prison/floor_marked/southwest, +/area/adminlevel/ert_station/pizza_station) +"qb" = ( +/obj/structure/prop/souto_land/streamer{ + dir = 1; + pixel_y = 9; + pixel_x = 2 + }, +/obj/structure/pipes/vents/scrubber{ + dir = 8 + }, +/turf/open/floor/prison/red, +/area/adminlevel/ert_station/pizza_station) +"qh" = ( +/turf/closed/shuttle/ert{ + icon_state = "stan_rightengine" + }, +/area/adminlevel/ert_station/pizza_station) +"qo" = ( +/obj/structure/closet{ + pixel_y = 16; + density = 0 + }, +/obj/structure/window/reinforced{ + dir = 8; + health = 80 + }, +/obj/structure/machinery/light/small{ + dir = 1; + pixel_x = 16; + pixel_y = 20 + }, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/ert_station/pizza_station) +"qq" = ( +/obj/structure/platform/kutjevo/smooth{ + dir = 4 + }, +/turf/open/space/basic, +/area/space) +"qs" = ( +/obj/structure/surface/table/reinforced/cloth, +/obj/item/reagent_container/food/drinks/cans/souto/diet/classic{ + pixel_x = -2 + }, +/turf/open/floor/redyellowfull, +/area/adminlevel/ert_station/pizza_station) +"qt" = ( +/turf/open/mars_dirt/mars_cave_6, +/area/space) +"qv" = ( +/obj/structure/surface/table/reinforced, +/obj/item/book/manual/chef_recipes, +/obj/item/clothing/head/chefhat, +/turf/open/floor/cmo, +/area/adminlevel/ert_station/pizza_station) +"qy" = ( +/obj/structure/surface/table/reinforced, +/obj/structure/machinery/juicer{ + pixel_y = 9 + }, +/turf/open/floor/cmo, +/area/adminlevel/ert_station/pizza_station) +"qA" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + pixel_y = 1 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/prison/kitchen, +/area/adminlevel/ert_station/pizza_station) +"qU" = ( +/obj/structure/barricade/handrail/pizza{ + dir = 8 + }, +/obj/structure/bed/chair/bolted{ + dir = 4; + pixel_x = 7; + buckling_x = 7 + }, +/obj/structure/machinery/alarm{ + pixel_y = 25 + }, +/turf/open/floor/redyellowfull, +/area/adminlevel/ert_station/pizza_station) +"qX" = ( +/obj/structure/platform_decoration/kutjevo{ + dir = 8 + }, +/turf/open/space/basic, +/area/space) +"rj" = ( +/obj/structure/surface/table/reinforced/cloth, +/obj/item/trash/ceramic_plate{ + pixel_y = 1; + pixel_x = 2 + }, +/obj/item/reagent_container/food/snacks/meatpizzaslice{ + pixel_x = 2; + pixel_y = 4 + }, +/obj/item/reagent_container/food/drinks/cans/beer{ + pixel_x = 9; + pixel_y = 14 + }, +/obj/structure/machinery/light{ + pixel_x = 16; + dir = 1 + }, +/turf/open/floor/redyellowfull, +/area/adminlevel/ert_station/pizza_station) +"rk" = ( +/obj/structure/platform_decoration/kutjevo{ + dir = 8 + }, +/obj/structure/lattice, +/turf/open/space/basic, +/area/space) +"rA" = ( +/obj/structure/bed/chair/bolted{ + dir = 1; + pixel_y = 12; + buckling_y = 12 + }, +/turf/open/floor/redyellowfull, +/area/adminlevel/ert_station/pizza_station) +"rK" = ( +/obj/structure/surface/table/almayer, +/turf/open/floor/prison, +/area/adminlevel/ert_station/pizza_station) +"rL" = ( +/obj/structure/blocker/invisible_wall, +/obj/structure/machinery/door/poddoor/almayer{ + name = "\improper Umbillical Airlock"; + unacidable = 1 + }, +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ + locked = 1 + }, +/turf/open/floor/almayer/test_floor4, +/area/adminlevel/ert_station/pizza_station) +"rO" = ( +/obj/structure/closet/firecloset/full, +/turf/open/floor/prison/yellow/southeast, +/area/adminlevel/ert_station/pizza_station) +"sa" = ( +/obj/structure/pipes/vents/scrubber, +/turf/open/floor/prison/red/north, +/area/adminlevel/ert_station/pizza_station) +"se" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 + }, +/obj/structure/machinery/door/airlock/almayer/generic{ + name = "\improper Bathroom"; + dir = 1 + }, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer/test_floor4, +/area/adminlevel/ert_station/pizza_station) +"sk" = ( +/obj/structure/surface/table/almayer, +/turf/open/floor/prison/yellow/southwest, +/area/adminlevel/ert_station/pizza_station) +"sl" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 6 + }, +/turf/open/floor/prison/kitchen, +/area/adminlevel/ert_station/pizza_station) +"sp" = ( +/obj/structure/surface/table/reinforced, +/obj/item/weapon/pizza_cutter, +/turf/open/floor/prison/kitchen, +/area/adminlevel/ert_station/pizza_station) +"sx" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/prison/red/west, +/area/adminlevel/ert_station/pizza_station) +"sB" = ( +/turf/open/mars_dirt/mars_cave_7, +/area/space) +"sI" = ( +/obj/structure/surface/table/reinforced/cloth, +/obj/item/tool/kitchen/tray{ + pixel_y = 13; + pixel_x = 16 + }, +/obj/item/reagent_container/food/snacks/sliceable/pizza/meatpizza{ + pixel_y = 13; + pixel_x = 15 + }, +/obj/item/trash/plate{ + pixel_y = 3; + pixel_x = 1 + }, +/obj/item/reagent_container/food/snacks/meatpizzaslice{ + pixel_y = 3; + pixel_x = -1 + }, +/turf/open/floor/redyellowfull, +/area/adminlevel/ert_station/pizza_station) +"sJ" = ( +/obj/structure/machinery/vending/ingredients, +/obj/structure/machinery/light{ + dir = 1 + }, +/turf/open/floor/cmo, +/area/adminlevel/ert_station/pizza_station) +"sW" = ( +/obj/structure/blocker/invisible_wall, +/obj/structure/machinery/door/poddoor/almayer{ + name = "\improper Umbillical Airlock"; + unacidable = 1 + }, +/turf/open/floor/almayer/test_floor4, +/area/adminlevel/ert_station/pizza_station) +"sY" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/obj/structure/pipes/vents/pump{ + dir = 8 + }, +/turf/open/floor/prison/kitchen, +/area/adminlevel/ert_station/pizza_station) +"td" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "S"; + pixel_y = -1 + }, +/obj/structure/pipes/vents/scrubber{ + dir = 8 + }, +/turf/open/floor/corsat/retrosquareslight, +/area/adminlevel/ert_station/pizza_station) +"tp" = ( +/obj/structure/bed/chair/bolted{ + dir = 4; + pixel_y = 17; + pixel_x = 10; + buckling_y = 17; + buckling_x = 10 + }, +/obj/structure/machinery/light, +/turf/open/floor/redyellowfull, +/area/adminlevel/ert_station/pizza_station) +"tq" = ( +/obj/structure/disposalpipe/segment{ + dir = 8 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/prison/kitchen, +/area/adminlevel/ert_station/pizza_station) +"ty" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "S"; + pixel_y = -1 + }, +/obj/structure/pipes/vents/scrubber{ + dir = 4 + }, +/turf/open/floor/almayer/dark_sterile, +/area/adminlevel/ert_station/pizza_station) +"tC" = ( +/obj/structure/surface/table/reinforced/cloth, +/obj/item/reagent_container/food/condiment/peppermill{ + pixel_x = 13; + pixel_y = 12 + }, +/obj/item/reagent_container/food/condiment/saltshaker{ + pixel_x = 7; + pixel_y = 17 + }, +/obj/item/trash/plate{ + pixel_y = 5 + }, +/obj/item/reagent_container/food/snacks/cheeseburger{ + pixel_x = -1; + pixel_y = 9 + }, +/turf/open/floor/redyellowfull, +/area/adminlevel/ert_station/pizza_station) +"tH" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 + }, +/obj/structure/machinery/door/poddoor/almayer/open{ + name = "\improper Umbillical Airlock"; + id = "pizza_ert_arrival" + }, +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ + name = "\improper Galaxy Pizza!" + }, +/turf/open/floor/almayer/test_floor4, +/area/adminlevel/ert_station/pizza_station) +"tM" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "S"; + pixel_y = -1 + }, +/turf/open/floor/corsat/retrosquareslight, +/area/adminlevel/ert_station/pizza_station) +"tT" = ( +/obj/structure/platform/kutjevo/smooth{ + dir = 1 + }, +/obj/structure/barricade/handrail{ + dir = 1; + icon_state = "hr_kutjevo"; + name = "solar lattice" + }, +/obj/structure/platform/kutjevo/smooth{ + dir = 4 + }, +/turf/open/space, +/area/space) +"tX" = ( +/obj/structure/machinery/disposal{ + layer = 2.97 + }, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/redyellowfull, +/area/adminlevel/ert_station/pizza_station) +"ub" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/machinery/door/poddoor/almayer/locked{ + icon_state = "almayer_pdoor"; + id = "pizza_takeaway_out" + }, +/turf/open/floor/almayer/test_floor4, +/area/adminlevel/ert_station/pizza_station) +"ug" = ( +/obj/structure/pipes/vents/scrubber, +/turf/open/floor/prison/red/west, +/area/adminlevel/ert_station/pizza_station) +"uj" = ( +/obj/structure/platform/kutjevo/smooth{ + dir = 4 + }, +/turf/open/space, +/area/space) +"uo" = ( +/obj/structure/window/framed/almayer/hull, +/turf/open/floor/plating, +/area/adminlevel/ert_station/pizza_station) +"uz" = ( +/obj/structure/prop/souto_land/pole{ + dir = 4; + pixel_y = 9 + }, +/obj/structure/prop/souto_land/streamer{ + dir = 6 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/prison/red, +/area/adminlevel/ert_station/pizza_station) +"uD" = ( +/obj/structure/surface/table/reinforced, +/obj/structure/machinery/processor{ + pixel_y = 10 + }, +/turf/open/floor/cmo, +/area/adminlevel/ert_station/pizza_station) +"uK" = ( +/obj/structure/platform/kutjevo/smooth, +/obj/structure/platform/kutjevo/smooth{ + dir = 8 + }, +/obj/structure/barricade/handrail/kutjevo{ + layer = 3.01 + }, +/obj/structure/barricade/handrail/kutjevo{ + dir = 8; + layer = 3.01 + }, +/turf/open/space, +/area/space) +"uN" = ( +/turf/open/floor/redyellowfull, +/area/adminlevel/ert_station/pizza_station) +"uY" = ( +/obj/structure/surface/table/almayer, +/obj/item/storage/box/cups, +/obj/item/tool/kitchen/utensil/fork{ + pixel_y = 4; + pixel_x = 11 + }, +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 + }, +/obj/item/tool/kitchen/utensil/fork{ + pixel_y = 4; + pixel_x = 19 + }, +/obj/structure/machinery/door/poddoor/shutters/almayer{ + name = "\improper Kitchen Shutters"; + id = "kitchen_pizza_time" + }, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/pizza_station) +"vi" = ( +/obj/structure/pipes/vents/pump{ + dir = 8 + }, +/turf/open/floor/prison/redcorner/north, +/area/adminlevel/ert_station/pizza_station) +"vq" = ( +/obj/structure/toilet{ + pixel_y = 16 + }, +/obj/structure/window/reinforced{ + dir = 8; + health = 80 + }, +/obj/structure/window/reinforced{ + dir = 4; + health = 80 + }, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/ert_station/pizza_station) +"vr" = ( +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 8 + }, +/turf/open/floor/prison/red/west, +/area/adminlevel/ert_station/pizza_station) +"vA" = ( +/obj/structure/disposalpipe/segment{ + dir = 8 + }, +/obj/structure/machinery/light{ + pixel_x = 16; + dir = 1 + }, +/turf/open/floor/prison/red/west, +/area/adminlevel/ert_station/pizza_station) +"vI" = ( +/obj/structure/disposalpipe/segment, +/obj/item/storage/backpack/marine/satchel{ + desc = "It's the heavy-duty black polymer kind. Time to take out the trash!"; + icon = 'icons/obj/janitor.dmi'; + icon_state = "trashbag3"; + name = "trash bag"; + pixel_x = -1; + pixel_y = 6 + }, +/obj/item/storage/backpack/marine/satchel{ + desc = "It's the heavy-duty black polymer kind. Time to take out the trash!"; + icon = 'icons/obj/janitor.dmi'; + icon_state = "trashbag3"; + name = "trash bag"; + pixel_x = 3; + pixel_y = -2 + }, +/obj/item/weapon/broken_bottle{ + pixel_y = 7; + pixel_x = -12 + }, +/turf/open/floor/prison, +/area/adminlevel/ert_station/pizza_station) +"vR" = ( +/obj/structure/platform/kutjevo/smooth, +/obj/structure/barricade/handrail/kutjevo{ + layer = 3.01 + }, +/obj/structure/lattice, +/turf/open/space/basic, +/area/space) +"vX" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/obj/structure/pipes/standard/manifold/hidden/supply, +/turf/open/floor/prison/kitchen, +/area/adminlevel/ert_station/pizza_station) +"wa" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 1 + }, +/turf/open/floor/prison/kitchen, +/area/adminlevel/ert_station/pizza_station) +"wb" = ( +/obj/structure/platform/kutjevo/smooth, +/turf/open/space, +/area/space) +"wi" = ( +/obj/structure/closet/secure_closet/fridge/meat/stock, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 6 + }, +/turf/open/floor/prison/greenblue/northwest, +/area/adminlevel/ert_station/pizza_station) +"wm" = ( +/obj/structure/surface/table/reinforced, +/obj/item/reagent_container/food/snacks/tomatomeat, +/obj/structure/machinery/light{ + dir = 8 + }, +/turf/open/floor/cmo, +/area/adminlevel/ert_station/pizza_station) +"wo" = ( +/obj/structure/bed/chair/bolted{ + dir = 8; + pixel_x = -7; + buckling_x = -7 + }, +/turf/open/floor/prison/yellowcorner/west, +/area/adminlevel/ert_station/pizza_station) +"wq" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/prison/redcorner/east, +/area/adminlevel/ert_station/pizza_station) +"wu" = ( +/obj/structure/surface/table/reinforced/cloth, +/obj/item/trash/ceramic_plate{ + pixel_y = 4; + pixel_x = -2 + }, +/obj/item/reagent_container/food/drinks/cans/beer{ + pixel_x = 13; + pixel_y = 2 + }, +/obj/item/reagent_container/food/snacks/carrotcakeslice{ + pixel_y = 6; + pixel_x = -1 + }, +/turf/open/floor/redyellowfull, +/area/adminlevel/ert_station/pizza_station) +"wz" = ( +/turf/open/floor/prison/red/north, +/area/adminlevel/ert_station/pizza_station) +"wD" = ( +/obj/structure/platform_decoration/kutjevo, +/obj/structure/lattice, +/turf/open/space/basic, +/area/space) +"wP" = ( +/obj/structure/barricade/handrail/pizza{ + dir = 8; + pixel_y = -3 + }, +/obj/structure/barricade/handrail/pizza{ + dir = 1; + pixel_y = 12 + }, +/obj/structure/prop/souto_land/streamer{ + dir = 6 + }, +/obj/structure/bed/chair{ + can_buckle = 0; + dir = 4 + }, +/obj/structure/bed/chair{ + can_buckle = 0; + dir = 4; + pixel_x = 1; + pixel_y = 3 + }, +/obj/structure/bed/chair{ + can_buckle = 0; + dir = 4; + pixel_x = 2; + pixel_y = 6 + }, +/turf/open/floor/redyellowfull, +/area/adminlevel/ert_station/pizza_station) +"wQ" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/prison/red/north, +/area/adminlevel/ert_station/pizza_station) +"wX" = ( +/obj/structure/closet/crate/freezer/cooler/oj, +/turf/open/floor/prison/floor_marked/southwest, +/area/adminlevel/ert_station/pizza_station) +"xc" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/structure/pipes/standard/manifold/hidden/supply, +/turf/open/floor/prison/red/north, +/area/adminlevel/ert_station/pizza_station) +"xe" = ( +/obj/structure/platform/kutjevo/smooth, +/obj/structure/platform/kutjevo/smooth{ + dir = 8 + }, +/turf/open/space/basic, +/area/space) +"xh" = ( +/obj/structure/surface/table/reinforced/cloth, +/obj/item/reagent_container/food/condiment/peppermill{ + pixel_x = -10; + pixel_y = 12 + }, +/obj/item/reagent_container/food/condiment/saltshaker{ + pixel_x = -15; + pixel_y = 17 + }, +/obj/item/trash/ceramic_plate{ + pixel_y = 5; + pixel_x = 2 + }, +/obj/item/reagent_container/food/snacks/applecakeslice{ + pixel_y = 8; + pixel_x = 3 + }, +/turf/open/floor/redyellowfull, +/area/adminlevel/ert_station/pizza_station) +"xl" = ( +/obj/structure/surface/table/reinforced/cloth, +/obj/item/tool/kitchen/tray{ + pixel_y = 20 + }, +/obj/item/reagent_container/food/snacks/sliceable/pizza/meatpizza{ + pixel_y = 20 + }, +/obj/item/reagent_container/food/drinks/cans/beer{ + pixel_x = 5; + pixel_y = 6 + }, +/turf/open/floor/redyellowfull, +/area/adminlevel/ert_station/pizza_station) +"xp" = ( +/obj/structure/platform/kutjevo/smooth, +/obj/structure/disposalpipe/trunk, +/obj/structure/barricade/handrail/kutjevo{ + layer = 3.01 + }, +/turf/open/space, +/area/space) +"xy" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "S"; + pixel_y = -1 + }, +/obj/structure/pipes/vents/pump{ + dir = 8 + }, +/turf/open/floor/cmo, +/area/adminlevel/ert_station/pizza_station) +"xV" = ( +/obj/structure/pipes/vents/pump{ + dir = 1 + }, +/turf/open/floor/prison/blue_plate, +/area/adminlevel/ert_station/pizza_station) +"xX" = ( +/obj/structure/surface/table/reinforced/cloth, +/obj/item/trash/plate{ + pixel_y = 3; + pixel_x = 1 + }, +/obj/item/reagent_container/food/snacks/mushroompizzaslice{ + pixel_y = 4 + }, +/turf/open/floor/redyellowfull, +/area/adminlevel/ert_station/pizza_station) +"yg" = ( +/obj/structure/platform_decoration/kutjevo, +/turf/open/space/basic, +/area/space) +"yo" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 9 + }, +/turf/open/floor/prison/greenbluecorner/east, +/area/adminlevel/ert_station/pizza_station) +"yr" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 5 + }, +/turf/open/floor/prison/red/southwest, +/area/adminlevel/ert_station/pizza_station) +"ys" = ( +/obj/structure/barricade/handrail/pizza{ + dir = 4; + pixel_y = -3 + }, +/obj/structure/bed/chair/bolted{ + dir = 8; + pixel_x = -7; + buckling_x = -7 + }, +/obj/structure/sign/safety/hazard{ + pixel_x = 15; + pixel_y = -32 + }, +/obj/structure/sign/safety/airlock{ + pixel_y = -32 + }, +/obj/structure/prop/souto_land/streamer{ + dir = 9 + }, +/turf/open/floor/redyellowfull, +/area/adminlevel/ert_station/pizza_station) +"yE" = ( +/obj/structure/barricade/handrail/pizza{ + pixel_y = -3 + }, +/obj/structure/surface/table/almayer, +/obj/item/trash/ceramic_plate{ + pixel_y = 6 + }, +/obj/item/reagent_container/food/snacks/toastedsandwich{ + pixel_y = 17; + pixel_x = -1 + }, +/obj/item/reagent_container/food/snacks/toastedsandwich{ + pixel_y = 15; + pixel_x = 2 + }, +/turf/open/floor/prison/kitchen, +/area/adminlevel/ert_station/pizza_station) +"yG" = ( +/obj/structure/pipes/vents/scrubber{ + dir = 1 + }, +/turf/open/floor/prison/blue_plate, +/area/adminlevel/ert_station/pizza_station) +"yK" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 9 + }, +/turf/open/floor/prison/greenblue/west, +/area/adminlevel/ert_station/pizza_station) +"yM" = ( +/obj/structure/sign/safety/fridge{ + pixel_y = -32 + }, +/obj/structure/sign/safety/fridge{ + pixel_x = 32 + }, +/obj/structure/closet/firecloset/full, +/turf/open/floor/prison/kitchen, +/area/adminlevel/ert_station/pizza_station) +"yP" = ( +/obj/structure/surface/rack, +/obj/item/reagent_container/food/snacks/bigbiteburger{ + pixel_x = -4 + }, +/obj/item/reagent_container/food/snacks/bigbiteburger{ + pixel_x = 3 + }, +/turf/open/floor/prison/greenblue/southwest, +/area/adminlevel/ert_station/pizza_station) +"zf" = ( +/obj/structure/sign/safety/galley{ + pixel_x = -17 + }, +/turf/open/floor/prison/kitchen, +/area/adminlevel/ert_station/pizza_station) +"zh" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/prison/red/west, +/area/adminlevel/ert_station/pizza_station) +"zj" = ( +/obj/structure/surface/table/almayer, +/obj/item/storage/toolbox/mechanical{ + pixel_y = -4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/ert_station/pizza_station) +"zl" = ( +/obj/structure/surface/table/reinforced/cloth, +/obj/item/reagent_container/food/condiment/hotsauce/cholula{ + pixel_y = 28; + pixel_x = 16 + }, +/obj/item/reagent_container/food/condiment/saltshaker{ + pixel_x = 7; + pixel_y = 17 + }, +/obj/item/reagent_container/food/condiment/peppermill{ + pixel_x = 13; + pixel_y = 12 + }, +/obj/item/tool/kitchen/utensil/fork{ + pixel_y = 4; + pixel_x = -3 + }, +/obj/item/tool/kitchen/utensil/knife{ + pixel_y = 4; + pixel_x = 3 + }, +/obj/structure/machinery/light, +/turf/open/floor/redyellowfull, +/area/adminlevel/ert_station/pizza_station) +"zx" = ( +/obj/structure/surface/table/almayer, +/obj/structure/barricade/handrail/pizza{ + pixel_y = -3 + }, +/obj/item/trash/ceramic_plate{ + pixel_y = 2 + }, +/obj/item/trash/ceramic_plate{ + pixel_y = 4 + }, +/obj/item/trash/ceramic_plate{ + pixel_y = 6 + }, +/obj/item/trash/ceramic_plate{ + pixel_y = 8 + }, +/turf/open/floor/prison/kitchen, +/area/adminlevel/ert_station/pizza_station) +"zz" = ( +/obj/structure/barricade/handrail/pizza{ + dir = 4; + pixel_y = -3 + }, +/obj/structure/bed/chair/bolted{ + dir = 8; + pixel_x = -7; + buckling_x = -7 + }, +/obj/structure/prop/souto_land/streamer{ + dir = 9 + }, +/turf/open/floor/redyellowfull, +/area/adminlevel/ert_station/pizza_station) +"zC" = ( +/obj/structure/bed/chair/bolted{ + dir = 4; + pixel_x = 7; + buckling_x = 7 + }, +/turf/open/floor/redyellowfull, +/area/adminlevel/ert_station/pizza_station) +"zE" = ( +/obj/structure/machinery/door_control/airlock{ + id = "pizza_takeaway"; + name = "Airlock - Inside"; + pixel_x = 28; + pixel_y = 8 + }, +/obj/structure/machinery/door_control/airlock{ + id = "pizza_takeaway_out"; + name = "Airlock - Out"; + pixel_x = 28; + pixel_y = 18 + }, +/turf/open/floor/plating/prison, +/area/adminlevel/ert_station/pizza_station) +"zM" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/prison/redcorner/north, +/area/adminlevel/ert_station/pizza_station) +"zQ" = ( +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 4 + }, +/turf/open/floor/prison/red/east, +/area/adminlevel/ert_station/pizza_station) +"zW" = ( +/turf/open/floor/prison/greenblue/east, +/area/adminlevel/ert_station/pizza_station) +"Ab" = ( +/obj/structure/machinery/gibber{ + pixel_y = 10 + }, +/obj/structure/surface/table/reinforced, +/obj/structure/machinery/light{ + dir = 4 + }, +/turf/open/floor/cmo, +/area/adminlevel/ert_station/pizza_station) +"Ac" = ( +/obj/structure/closet/secure_closet/fridge/dry, +/obj/structure/machinery/light{ + dir = 1 + }, +/obj/structure/sign/safety/galley{ + pixel_x = -24 + }, +/turf/open/floor/cmo, +/area/adminlevel/ert_station/pizza_station) +"Aj" = ( +/obj/structure/barricade/handrail/pizza{ + dir = 8 + }, +/obj/structure/sign/safety/bathunisex{ + pixel_x = 15; + pixel_y = 32 + }, +/turf/open/floor/blueyellowfull, +/area/adminlevel/ert_station/pizza_station) +"Ao" = ( +/obj/structure/disposalpipe/segment{ + dir = 8 + }, +/obj/structure/machinery/light{ + pixel_x = 16; + dir = 1 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/prison/kitchen, +/area/adminlevel/ert_station/pizza_station) +"Au" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 6 + }, +/turf/open/floor/prison/red/west, +/area/adminlevel/ert_station/pizza_station) +"Ax" = ( +/obj/structure/surface/table/reinforced/cloth, +/obj/item/reagent_container/food/condiment/hotsauce/franks{ + pixel_y = -3; + pixel_x = 16 + }, +/obj/item/ashtray/glass{ + pixel_x = -4; + pixel_y = -1 + }, +/obj/item/clothing/mask/cigarette, +/obj/item/clothing/mask/cigarette{ + pixel_x = -2; + pixel_y = -2 + }, +/turf/open/floor/redyellowfull, +/area/adminlevel/ert_station/pizza_station) +"AB" = ( +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 4 + }, +/turf/open/floor/cmo, +/area/adminlevel/ert_station/pizza_station) +"AD" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer, +/obj/structure/machinery/door/airlock/almayer/generic{ + name = "\improper Central Fridge" + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer/test_floor4, +/area/adminlevel/ert_station/pizza_station) +"AH" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/turf/open/floor/prison/yellow/north, +/area/adminlevel/ert_station/pizza_station) +"AV" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/blueyellowfull, +/area/adminlevel/ert_station/pizza_station) +"AW" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out" + }, +/obj/structure/sign/safety/debark_lounge{ + pixel_y = -32 + }, +/obj/structure/sign/safety/landingzone{ + pixel_y = -32; + pixel_x = 15 + }, +/turf/open/floor/prison/yellow, +/area/adminlevel/ert_station/pizza_station) +"Bu" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E" + }, +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/cmo, +/area/adminlevel/ert_station/pizza_station) +"By" = ( +/obj/structure/machinery/suit_storage_unit/standard_unit{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/structure/sign/safety/suit_storage{ + pixel_x = 32 + }, +/turf/open/floor/almayer/test_floor4, +/area/adminlevel/ert_station/pizza_station) +"Bz" = ( +/obj/structure/surface/table/reinforced, +/obj/item/trash/plate{ + pixel_y = 2 + }, +/obj/item/trash/plate{ + pixel_y = 4 + }, +/obj/item/trash/plate{ + pixel_y = 6 + }, +/obj/item/trash/plate{ + pixel_y = 8 + }, +/obj/item/trash/plate{ + pixel_y = 10 + }, +/turf/open/floor/prison/kitchen, +/area/adminlevel/ert_station/pizza_station) +"BC" = ( +/obj/structure/surface/table/reinforced, +/obj/item/pizzabox{ + pixel_y = 5 + }, +/obj/item/pizzabox{ + pixel_y = 8 + }, +/obj/item/pizzabox{ + pixel_y = 11 + }, +/obj/structure/machinery/light, +/turf/open/floor/prison/kitchen, +/area/adminlevel/ert_station/pizza_station) +"BJ" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 + }, +/obj/structure/disposalpipe/junction{ + dir = 1; + icon_state = "pipe-j2" + }, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer/test_floor4, +/area/adminlevel/ert_station/pizza_station) +"BU" = ( +/obj/structure/bed/chair/bolted{ + dir = 1; + pixel_y = 12; + buckling_y = 12 + }, +/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ + pixel_x = -30 + }, +/turf/open/floor/prison/yellow/west, +/area/adminlevel/ert_station/pizza_station) +"Ck" = ( +/obj/structure/sink{ + dir = 1; + pixel_y = -10 + }, +/obj/structure/window/reinforced{ + dir = 8; + health = 80 + }, +/obj/structure/machinery/light/small{ + pixel_x = 16 + }, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/ert_station/pizza_station) +"Cp" = ( +/obj/structure/surface/table/reinforced/cloth, +/obj/item/reagent_container/food/drinks/cans/waterbottle{ + pixel_x = -6; + pixel_y = 14 + }, +/turf/open/floor/redyellowfull, +/area/adminlevel/ert_station/pizza_station) +"Cv" = ( +/obj/structure/closet/secure_closet/freezer/fridge/full, +/obj/item/reagent_container/food/condiment/enzyme, +/obj/item/reagent_container/food/condiment/enzyme, +/obj/item/reagent_container/food/drinks/soymilk, +/obj/item/reagent_container/food/drinks/soymilk, +/obj/item/reagent_container/food/condiment/hotsauce/tabasco, +/obj/item/reagent_container/food/condiment/hotsauce/sriracha, +/obj/item/reagent_container/food/condiment/hotsauce/franks, +/obj/item/reagent_container/food/condiment/hotsauce/cholula, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/prison/greenblue/north, +/area/adminlevel/ert_station/pizza_station) +"CO" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/prison/kitchen, +/area/adminlevel/ert_station/pizza_station) +"CP" = ( +/turf/open/floor/almayer_hull, +/area/space) +"CT" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/machinery/chem_dispenser/soda{ + density = 0; + pixel_y = 30 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/prison/kitchen, +/area/adminlevel/ert_station/pizza_station) +"Db" = ( +/obj/structure/barricade/handrail/pizza{ + dir = 4; + pixel_y = -3 + }, +/obj/structure/barricade/handrail/pizza{ + dir = 1; + pixel_y = 12 + }, +/obj/structure/prop/souto_land/streamer{ + dir = 9 + }, +/turf/open/floor/redyellowfull, +/area/adminlevel/ert_station/pizza_station) +"Dd" = ( +/obj/structure/pipes/vents/pump{ + dir = 1 + }, +/turf/open/floor/prison/red/east, +/area/adminlevel/ert_station/pizza_station) +"Dx" = ( +/obj/structure/surface/table/reinforced, +/obj/item/reagent_container/food/snacks/sliceable/bread{ + pixel_y = 8 + }, +/obj/item/reagent_container/food/snacks/sliceable/bread{ + pixel_y = 4 + }, +/obj/item/reagent_container/food/snacks/sliceable/bread, +/turf/open/floor/cmo, +/area/adminlevel/ert_station/pizza_station) +"DF" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/machinery/chem_dispenser/soda/beer{ + density = 0; + pixel_y = 31 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/prison/kitchen, +/area/adminlevel/ert_station/pizza_station) +"DH" = ( +/obj/structure/platform/kutjevo/smooth, +/obj/structure/barricade/handrail/kutjevo{ + layer = 3.01 + }, +/turf/open/space/basic, +/area/space) +"DW" = ( +/obj/structure/pipes/vents/pump, +/turf/open/floor/prison/red/north, +/area/adminlevel/ert_station/pizza_station) +"Ee" = ( +/obj/structure/platform/kutjevo/smooth{ + dir = 8 + }, +/obj/structure/barricade/handrail/kutjevo{ + dir = 8; + layer = 3.01 + }, +/turf/open/space/basic, +/area/space) +"Eh" = ( +/obj/structure/prop/souto_land/pole{ + dir = 4; + pixel_y = 9 + }, +/obj/structure/prop/souto_land/streamer{ + dir = 6 + }, +/obj/structure/pipes/standard/manifold/hidden/supply, +/turf/open/floor/prison/red, +/area/adminlevel/ert_station/pizza_station) +"Ei" = ( +/turf/closed/wall/almayer/outer, +/area/adminlevel/ert_station/pizza_station) +"Ep" = ( +/obj/structure/machinery/door/poddoor/almayer/open{ + name = "\improper Umbillical Airlock"; + id = "pizza_ert_arrival" + }, +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic, +/turf/open/floor/almayer/test_floor4, +/area/adminlevel/ert_station/pizza_station) +"EH" = ( +/obj/structure/machinery/vending/cigarette{ + pixel_y = 18; + layer = 3.01; + density = 0 + }, +/turf/open/floor/prison/yellow/northeast, +/area/adminlevel/ert_station/pizza_station) +"EK" = ( +/obj/structure/machinery/door/poddoor/almayer/locked{ + icon_state = "almayer_pdoor"; + id = "pizza_takeaway" + }, +/turf/open/floor/almayer/test_floor4, +/area/adminlevel/ert_station/pizza_station) +"EO" = ( +/obj/structure/machinery/door/poddoor/almayer/open{ + name = "\improper Umbillical Airlock"; + id = "pizza_ert_arrival" + }, +/turf/open/floor/almayer/test_floor4, +/area/adminlevel/ert_station/pizza_station) +"EZ" = ( +/obj/structure/disposalpipe/segment{ + dir = 8 + }, +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 1 + }, +/turf/open/floor/prison/kitchen, +/area/adminlevel/ert_station/pizza_station) +"Fd" = ( +/obj/structure/machinery/light{ + dir = 8 + }, +/turf/open/floor/prison/bright_clean2, +/area/adminlevel/ert_station/pizza_station) +"Ff" = ( +/obj/structure/surface/table/reinforced/cloth, +/obj/item/trash/plate{ + pixel_y = 10; + pixel_x = 1 + }, +/obj/item/trash/plate{ + pixel_y = -1 + }, +/obj/item/reagent_container/food/snacks/hotdog{ + pixel_y = 13 + }, +/obj/item/reagent_container/food/condiment/coldsauce{ + pixel_y = 11; + pixel_x = -7 + }, +/obj/item/reagent_container/food/snacks/grilledcheese{ + pixel_y = 6; + pixel_x = -1 + }, +/obj/item/reagent_container/food/drinks/coffee{ + pixel_y = 2; + pixel_x = 8 + }, +/turf/open/floor/redyellowfull, +/area/adminlevel/ert_station/pizza_station) +"Fj" = ( +/obj/structure/closet/crate/freezer, +/obj/item/reagent_container/food/snacks/ricepudding, +/turf/open/floor/prison/floor_marked/southwest, +/area/adminlevel/ert_station/pizza_station) +"Fp" = ( +/obj/structure/closet/crate/freezer, +/obj/structure/machinery/light/blue, +/obj/item/reagent_container/food/snacks/packaged_burrito, +/obj/item/reagent_container/food/snacks/packaged_burrito, +/obj/item/reagent_container/food/snacks/packaged_burrito, +/obj/item/reagent_container/food/snacks/packaged_hdogs, +/obj/item/reagent_container/food/snacks/packaged_hdogs, +/obj/item/reagent_container/food/snacks/packaged_hdogs, +/obj/item/reagent_container/food/snacks/packaged_burger, +/obj/item/reagent_container/food/snacks/packaged_burger, +/obj/item/reagent_container/food/snacks/packaged_burger, +/turf/open/floor/prison/floor_marked/southwest, +/area/adminlevel/ert_station/pizza_station) +"Fz" = ( +/obj/structure/surface/table/reinforced, +/obj/item/tool/kitchen/tray{ + pixel_y = 5 + }, +/obj/item/reagent_container/food/snacks/sliceable/pizza/meatpizza{ + pixel_y = 5 + }, +/turf/open/floor/prison/kitchen, +/area/adminlevel/ert_station/pizza_station) +"FB" = ( +/obj/structure/machinery/light{ + pixel_x = 16 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 5 + }, +/turf/open/floor/prison/kitchen, +/area/adminlevel/ert_station/pizza_station) +"FD" = ( +/obj/structure/machinery/door/poddoor/almayer/locked{ + icon_state = "almayer_pdoor"; + id = "pizza_takeaway" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/almayer/test_floor4, +/area/adminlevel/ert_station/pizza_station) +"FL" = ( +/turf/closed/shuttle/ert{ + icon_state = "rightengine_1"; + opacity = 0 + }, +/area/adminlevel/ert_station/pizza_station) +"FS" = ( +/obj/structure/machinery/light, +/turf/open/floor/redyellowfull, +/area/adminlevel/ert_station/pizza_station) +"FY" = ( +/obj/structure/surface/table/almayer, +/obj/structure/barricade/handrail/pizza{ + dir = 8; + pixel_y = -3 + }, +/obj/structure/barricade/handrail/pizza{ + pixel_y = -3 + }, +/obj/item/reagent_container/food/drinks/cans/cola{ + pixel_y = 6; + pixel_x = -6 + }, +/obj/item/reagent_container/food/drinks/cans/cola{ + pixel_y = 4; + pixel_x = -3 + }, +/obj/item/reagent_container/food/drinks/cans/iced_tea{ + pixel_x = 8; + pixel_y = 10 + }, +/obj/item/reagent_container/food/drinks/cans/iced_tea{ + pixel_x = 11; + pixel_y = 5 + }, +/turf/open/floor/prison/kitchen, +/area/adminlevel/ert_station/pizza_station) +"Gd" = ( +/obj/structure/prop/souto_land/pole{ + dir = 8; + pixel_y = 9 + }, +/obj/structure/prop/souto_land/streamer{ + dir = 9 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/prison/red, +/area/adminlevel/ert_station/pizza_station) +"Gh" = ( +/obj/structure/machinery/disposal{ + layer = 2.97 + }, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/structure/sign/poster{ + desc = "Eat an EAT bar! ...Aren't they called MEAT bars?"; + icon_state = "poster7"; + name = "EAT - poster"; + pixel_y = 30 + }, +/turf/open/floor/redyellowfull, +/area/adminlevel/ert_station/pizza_station) +"Gj" = ( +/obj/structure/barricade/handrail/pizza{ + dir = 8 + }, +/obj/structure/barricade/handrail/pizza{ + pixel_y = -3 + }, +/turf/open/floor/redyellowfull, +/area/adminlevel/ert_station/pizza_station) +"Gm" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/prison/red, +/area/adminlevel/ert_station/pizza_station) +"Gn" = ( +/obj/structure/platform/kutjevo/smooth{ + dir = 1 + }, +/obj/structure/barricade/handrail{ + dir = 1; + icon_state = "hr_kutjevo"; + name = "solar lattice" + }, +/obj/structure/platform/kutjevo/smooth{ + dir = 4 + }, +/turf/open/space/basic, +/area/space) +"Gp" = ( +/obj/structure/surface/table/reinforced/cloth, +/obj/item/reagent_container/food/snacks/mushroomsoup{ + pixel_y = 6 + }, +/obj/item/tool/kitchen/utensil/spoon{ + pixel_y = 4; + pixel_x = 7 + }, +/turf/open/floor/redyellowfull, +/area/adminlevel/ert_station/pizza_station) +"Gt" = ( +/obj/structure/machinery/atm{ + pixel_y = 32; + pixel_x = 2 + }, +/turf/open/floor/prison/yellow/northeast, +/area/adminlevel/ert_station/pizza_station) +"GB" = ( +/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ + pixel_x = 30 + }, +/turf/open/floor/prison/yellow/east, +/area/adminlevel/ert_station/pizza_station) +"GM" = ( +/obj/structure/sign/safety/airlock{ + pixel_y = 32 + }, +/obj/structure/sign/safety/hazard{ + pixel_x = 15; + pixel_y = 32 + }, +/turf/open/space/basic, +/area/space) +"Ha" = ( +/turf/closed/shuttle/ert{ + icon_state = "stan_leftengine" + }, +/area/adminlevel/ert_station/pizza_station) +"Hd" = ( +/turf/open/floor/prison/yellow/east, +/area/adminlevel/ert_station/pizza_station) +"Hg" = ( +/obj/structure/platform/kutjevo/smooth{ + dir = 8 + }, +/turf/open/space, +/area/space) +"HL" = ( +/obj/structure/surface/table/almayer, +/obj/structure/barricade/handrail/pizza{ + pixel_y = -3 + }, +/obj/item/reagent_container/food/drinks/coffeecup{ + pixel_x = -5; + pixel_y = 4 + }, +/obj/item/reagent_container/food/drinks/coffeecup{ + pixel_y = 4; + pixel_x = 5 + }, +/obj/item/reagent_container/food/drinks/coffeecup{ + pixel_y = 2 + }, +/turf/open/floor/prison/kitchen, +/area/adminlevel/ert_station/pizza_station) +"HQ" = ( +/obj/structure/surface/table/reinforced/cloth, +/obj/item/trash/plate{ + pixel_y = 5 + }, +/obj/item/reagent_container/food/snacks/bigbiteburger{ + pixel_y = 10; + pixel_x = -1 + }, +/turf/open/floor/redyellowfull, +/area/adminlevel/ert_station/pizza_station) +"Ib" = ( +/obj/structure/pipes/vents/pump{ + dir = 1 + }, +/turf/open/floor/prison/red/west, +/area/adminlevel/ert_station/pizza_station) +"Iq" = ( +/obj/structure/surface/table/reinforced/cloth, +/obj/item/reagent_container/food/drinks/cans/beer{ + pixel_x = 5; + pixel_y = 13 + }, +/obj/item/trash/ceramic_plate{ + pixel_y = 1 + }, +/obj/item/reagent_container/food/snacks/meatpizzaslice{ + pixel_x = -1; + pixel_y = 3 + }, +/turf/open/floor/redyellowfull, +/area/adminlevel/ert_station/pizza_station) +"ID" = ( +/turf/closed/wall/rock/red, +/area/space) +"IJ" = ( +/obj/structure/pipes/vents/scrubber{ + dir = 4 + }, +/turf/open/floor/prison/red/west, +/area/adminlevel/ert_station/pizza_station) +"Jd" = ( +/obj/structure/closet{ + pixel_y = 16; + density = 0 + }, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/ert_station/pizza_station) +"Jl" = ( +/turf/open/floor/prison/red/west, +/area/adminlevel/ert_station/pizza_station) +"Jm" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E" + }, +/turf/open/floor/prison, +/area/adminlevel/ert_station/pizza_station) +"Jq" = ( +/obj/structure/closet/secure_closet/fridge/organic/stock, +/turf/open/floor/prison/greenblue, +/area/adminlevel/ert_station/pizza_station) +"JP" = ( +/obj/structure/surface/table/reinforced, +/obj/item/tool/kitchen/knife/butcher, +/turf/open/floor/cmo, +/area/adminlevel/ert_station/pizza_station) +"JR" = ( +/obj/structure/bed/sofa/vert/grey/bot, +/turf/open/floor/prison, +/area/adminlevel/ert_station/pizza_station) +"JU" = ( +/obj/structure/janitorialcart{ + pixel_y = 15 + }, +/obj/item/tool/wet_sign{ + pixel_x = -8; + pixel_y = 6 + }, +/obj/item/tool/wet_sign{ + pixel_x = -3; + pixel_y = 2 + }, +/obj/item/reagent_container/glass/bucket{ + pixel_x = 9 + }, +/turf/open/floor/prison/kitchen, +/area/adminlevel/ert_station/pizza_station) +"JV" = ( +/obj/structure/barricade/handrail/pizza{ + dir = 1; + pixel_y = 12 + }, +/obj/structure/bed/chair/bolted{ + pixel_y = -1; + buckling_y = -1 + }, +/turf/open/floor/redyellowfull, +/area/adminlevel/ert_station/pizza_station) +"Kb" = ( +/obj/structure/surface/table/almayer, +/obj/structure/barricade/handrail/pizza{ + dir = 4; + pixel_y = -3 + }, +/obj/item/corncob, +/obj/item/corncob{ + pixel_y = 7 + }, +/turf/open/floor/prison/kitchen, +/area/adminlevel/ert_station/pizza_station) +"Kc" = ( +/obj/structure/sign/safety/airlock{ + pixel_y = -32 + }, +/obj/structure/sign/safety/hazard{ + pixel_x = 15; + pixel_y = -32 + }, +/obj/structure/surface/table/reinforced/almayer_B, +/obj/structure/machinery/door_control/airlock{ + id = "pizza_takeaway_out"; + name = "Airlock - Out"; + pixel_x = 2; + pixel_y = 18 + }, +/obj/structure/sign/safety/manualopenclose{ + pixel_y = -3; + pixel_x = 7 + }, +/turf/open/floor/almayer_hull, +/area/adminlevel/ert_station/pizza_station) +"Kd" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/turf/open/floor/almayer/dark_sterile, +/area/adminlevel/ert_station/pizza_station) +"Kv" = ( +/obj/structure/surface/table/reinforced, +/obj/structure/sink/kitchen{ + pixel_y = 12 + }, +/obj/structure/machinery/light{ + dir = 1 + }, +/turf/open/floor/prison/kitchen, +/area/adminlevel/ert_station/pizza_station) +"KB" = ( +/obj/structure/sign/safety/bathunisex{ + pixel_x = 15; + pixel_y = 32 + }, +/obj/structure/surface/table/almayer, +/obj/structure/machinery/washing_machine{ + pixel_y = 10 + }, +/obj/structure/sign/safety/water{ + pixel_x = -17 + }, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/ert_station/pizza_station) +"KC" = ( +/obj/structure/barricade/handrail/pizza{ + dir = 8; + pixel_y = -3 + }, +/obj/structure/prop/souto_land/streamer{ + dir = 6 + }, +/turf/open/floor/redyellowfull, +/area/adminlevel/ert_station/pizza_station) +"KY" = ( +/turf/open/floor/prison/blue_plate, +/area/adminlevel/ert_station/pizza_station) +"La" = ( +/obj/structure/surface/table/almayer, +/obj/structure/barricade/handrail/pizza{ + pixel_y = -3 + }, +/obj/item/reagent_container/food/condiment/hotsauce/franks/macho{ + pixel_y = 11; + pixel_x = -6 + }, +/obj/item/reagent_container/food/condiment/hotsauce/franks{ + pixel_y = 11; + pixel_x = 6 + }, +/obj/item/reagent_container/food/condiment/coldsauce{ + pixel_y = 11 + }, +/obj/item/reagent_container/food/condiment/hotsauce/cholula{ + pixel_y = 6 + }, +/turf/open/floor/prison/kitchen, +/area/adminlevel/ert_station/pizza_station) +"Lk" = ( +/obj/structure/pipes/vents/scrubber{ + dir = 4 + }, +/turf/open/floor/cmo, +/area/adminlevel/ert_station/pizza_station) +"Ln" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/machinery/computer{ + icon_state = "security_det"; + name = "Shuttle control deck"; + pixel_y = 6 + }, +/obj/structure/machinery/light/small{ + dir = 8; + pixel_x = -11; + pixel_y = 10 + }, +/turf/open/floor/plating/prison, +/area/adminlevel/ert_station/pizza_station) +"Ly" = ( +/obj/structure/barricade/handrail/pizza{ + dir = 4 + }, +/obj/structure/barricade/handrail/pizza{ + dir = 1; + pixel_y = 12 + }, +/turf/open/floor/redyellowfull, +/area/adminlevel/ert_station/pizza_station) +"LH" = ( +/obj/structure/bed/chair/bolted{ + dir = 1; + pixel_y = 12; + buckling_y = 12 + }, +/obj/structure/prop/souto_land/pole{ + dir = 8; + pixel_y = 9 + }, +/turf/open/floor/redyellowfull, +/area/adminlevel/ert_station/pizza_station) +"Mj" = ( +/obj/structure/bed/chair/dropship/pilot{ + dir = 1 + }, +/obj/structure/machinery/light/small{ + dir = 8; + pixel_x = -11; + pixel_y = 10 + }, +/turf/open/floor/plating/prison, +/area/adminlevel/ert_station/pizza_station) +"Mk" = ( +/obj/structure/machinery/vending/coffee{ + pixel_y = 12 + }, +/obj/structure/barricade/handrail/pizza{ + pixel_y = -3 + }, +/turf/open/floor/prison/bright_clean2, +/area/adminlevel/ert_station/pizza_station) +"Mt" = ( +/obj/structure/bed/sofa/south/grey/left, +/obj/item/storage/briefcase/stowaway, +/turf/open/floor/prison/yellow/northwest, +/area/adminlevel/ert_station/pizza_station) +"Mz" = ( +/obj/structure/platform/kutjevo/smooth, +/obj/structure/platform/kutjevo/smooth{ + dir = 8 + }, +/turf/open/space, +/area/space) +"MB" = ( +/obj/structure/surface/table/reinforced, +/obj/item/pizzabox/meat, +/obj/item/weapon/pizza_cutter, +/turf/open/floor/cmo, +/area/adminlevel/ert_station/pizza_station) +"MK" = ( +/obj/structure/surface/table/almayer, +/obj/structure/barricade/handrail/pizza{ + dir = 8; + pixel_y = -3 + }, +/obj/item/reagent_container/food/drinks/bottle/wine{ + pixel_y = 7; + pixel_x = -6 + }, +/obj/item/reagent_container/food/drinks/bottle/vermouth{ + pixel_y = 5; + pixel_x = -2 + }, +/obj/item/reagent_container/food/drinks/bottle/whiskey{ + pixel_x = -4 + }, +/turf/open/floor/prison/kitchen, +/area/adminlevel/ert_station/pizza_station) +"MS" = ( +/obj/structure/machinery/shower{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 8; + health = 80 + }, +/obj/structure/window/reinforced{ + dir = 4; + health = 80 + }, +/obj/structure/machinery/light/small{ + pixel_x = 16 + }, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/ert_station/pizza_station) +"MT" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "S"; + pixel_y = -1 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer/dark_sterile, +/area/adminlevel/ert_station/pizza_station) +"MX" = ( +/turf/open/floor/prison/red/northwest, +/area/adminlevel/ert_station/pizza_station) +"Nb" = ( +/obj/item/reagent_container/food/condiment/hotsauce/franks/macho{ + pixel_y = 18; + pixel_x = -6 + }, +/obj/item/reagent_container/food/condiment/hotsauce/franks{ + pixel_y = 18; + pixel_x = 6 + }, +/obj/item/reagent_container/food/condiment/hotsauce/cholula{ + pixel_y = 16 + }, +/obj/structure/surface/table/almayer, +/obj/item/reagent_container/food/condiment/coldsauce{ + pixel_y = 13; + pixel_x = 8 + }, +/obj/structure/machinery/light{ + dir = 4 + }, +/turf/open/floor/redyellowfull, +/area/adminlevel/ert_station/pizza_station) +"Nl" = ( +/turf/open/floor/prison, +/area/adminlevel/ert_station/pizza_station) +"No" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/turf/open/floor/prison, +/area/adminlevel/ert_station/pizza_station) +"Nr" = ( +/obj/structure/machinery/vending/cola{ + pixel_y = 12 + }, +/obj/structure/sign/safety/coffee{ + pixel_y = 32; + pixel_x = -13 + }, +/turf/open/floor/prison/bright_clean2, +/area/adminlevel/ert_station/pizza_station) +"Ny" = ( +/obj/structure/sink{ + dir = 1; + pixel_y = -10 + }, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/ert_station/pizza_station) +"NG" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer/test_floor4, +/area/adminlevel/ert_station/pizza_station) +"NH" = ( +/obj/structure/bed/sofa/vert/grey/top, +/turf/open/floor/prison, +/area/adminlevel/ert_station/pizza_station) +"NJ" = ( +/turf/closed/shuttle/ert{ + icon_state = "stan20" + }, +/area/adminlevel/ert_station/pizza_station) +"NN" = ( +/obj/structure/closet/secure_closet/fridge/groceries/stock, +/obj/structure/machinery/light/small/blue{ + dir = 1; + pixel_y = 20 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 6 + }, +/turf/open/floor/prison/greenblue/northwest, +/area/adminlevel/ert_station/pizza_station) +"NP" = ( +/obj/structure/sink/kitchen{ + pixel_x = 11; + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/sign/safety/water{ + pixel_x = 38 + }, +/turf/open/floor/cmo, +/area/adminlevel/ert_station/pizza_station) +"NT" = ( +/obj/structure/platform_decoration/kutjevo{ + dir = 8 + }, +/turf/open/space, +/area/space) +"NV" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 + }, +/obj/structure/machinery/door/airlock/almayer/generic{ + name = "\improper Showers & Bathroom"; + dir = 1 + }, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer/test_floor4, +/area/adminlevel/ert_station/pizza_station) +"Og" = ( +/obj/structure/surface/table/reinforced/cloth, +/obj/item/reagent_container/food/snacks/sliceable/pizza/mushroompizza{ + pixel_y = -2; + pixel_x = -16 + }, +/obj/item/trash/plate{ + pixel_y = 8; + pixel_x = 3 + }, +/obj/item/reagent_container/food/snacks/meatpizzaslice{ + pixel_y = 8; + pixel_x = -1 + }, +/turf/open/floor/redyellowfull, +/area/adminlevel/ert_station/pizza_station) +"Oh" = ( +/obj/structure/prop/souto_land/streamer{ + pixel_y = 9; + pixel_x = 1 + }, +/turf/open/floor/prison/red, +/area/adminlevel/ert_station/pizza_station) +"OE" = ( +/obj/structure/prop/souto_land/streamer{ + pixel_y = 9; + pixel_x = -1 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/prison/red, +/area/adminlevel/ert_station/pizza_station) +"OG" = ( +/obj/structure/platform/kutjevo/smooth{ + dir = 1 + }, +/obj/structure/barricade/handrail{ + dir = 1; + icon_state = "hr_kutjevo"; + name = "solar lattice" + }, +/obj/structure/lattice, +/turf/open/space, +/area/space) +"OJ" = ( +/turf/open/floor/solarpanel, +/area/space) +"OK" = ( +/obj/structure/machinery/vending/cigarette{ + pixel_y = 3; + layer = 4.15 + }, +/obj/structure/barricade/handrail/pizza{ + dir = 8 + }, +/turf/open/floor/prison/bright_clean2, +/area/adminlevel/ert_station/pizza_station) +"OQ" = ( +/obj/structure/barricade/handrail/pizza{ + dir = 1; + pixel_y = 12 + }, +/obj/structure/barricade/handrail/pizza{ + dir = 8; + pixel_y = 13 + }, +/obj/structure/barricade/handrail/pizza{ + dir = 8 + }, +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_27"; + pixel_y = 13; + pixel_x = -2; + layer = 4.11 + }, +/turf/open/floor/redyellowfull, +/area/adminlevel/ert_station/pizza_station) +"OS" = ( +/turf/open/floor/prison/red/east, +/area/adminlevel/ert_station/pizza_station) +"Pa" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/cmo, +/area/adminlevel/ert_station/pizza_station) +"Pi" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 6 + }, +/turf/open/floor/prison/red/north, +/area/adminlevel/ert_station/pizza_station) +"Pl" = ( +/obj/structure/barricade/handrail/pizza{ + dir = 1; + pixel_y = 12 + }, +/obj/structure/reagent_dispensers/water_cooler/stacks{ + density = 0; + pixel_x = -8; + pixel_y = 15; + layer = 4.11 + }, +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_17"; + pixel_x = -8; + pixel_y = 2; + layer = 4.12 + }, +/turf/open/floor/redyellowfull, +/area/adminlevel/ert_station/pizza_station) +"Pn" = ( +/obj/structure/surface/table/reinforced, +/obj/item/clothing/suit/chef/classic, +/obj/item/clothing/gloves/latex, +/obj/item/clothing/suit/chef/classic, +/turf/open/floor/prison/kitchen, +/area/adminlevel/ert_station/pizza_station) +"Pq" = ( +/obj/structure/platform/kutjevo/smooth, +/obj/structure/lattice, +/turf/open/space/basic, +/area/space) +"Ps" = ( +/obj/item/reagent_container/glass/bucket/janibucket{ + pixel_x = -5; + pixel_y = 10 + }, +/obj/item/tool/mop{ + pixel_x = -2; + pixel_y = 8 + }, +/turf/open/floor/prison/kitchen, +/area/adminlevel/ert_station/pizza_station) +"Py" = ( +/obj/structure/platform/kutjevo/smooth{ + dir = 1 + }, +/obj/structure/platform/kutjevo/smooth{ + dir = 4 + }, +/obj/structure/barricade/handrail{ + dir = 1; + icon_state = "hr_kutjevo"; + name = "solar lattice" + }, +/turf/open/space, +/area/space) +"PF" = ( +/obj/structure/platform/kutjevo/smooth{ + dir = 8 + }, +/turf/open/space/basic, +/area/space) +"PH" = ( +/obj/structure/surface/table/reinforced/cloth, +/turf/open/floor/redyellowfull, +/area/adminlevel/ert_station/pizza_station) +"PL" = ( +/obj/structure/sign/safety/airlock{ + pixel_y = -32 + }, +/obj/structure/sign/safety/hazard{ + pixel_x = 15; + pixel_y = -32 + }, +/turf/open/floor/almayer_hull, +/area/adminlevel/ert_station/pizza_station) +"Qe" = ( +/obj/structure/pipes/vents/scrubber{ + dir = 1 + }, +/turf/open/floor/prison/kitchen, +/area/adminlevel/ert_station/pizza_station) +"QN" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 6 + }, +/turf/open/floor/almayer/dark_sterile, +/area/adminlevel/ert_station/pizza_station) +"Ra" = ( +/obj/structure/surface/table/reinforced/cloth, +/obj/item/trash/plate{ + pixel_y = 10 + }, +/obj/item/reagent_container/food/snacks/vegetablepizzaslice{ + pixel_y = 10; + pixel_x = -2 + }, +/obj/item/reagent_container/food/drinks/cans/boda{ + pixel_y = 16; + pixel_x = -11; + layer = 3.03 + }, +/turf/open/floor/redyellowfull, +/area/adminlevel/ert_station/pizza_station) +"Rf" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer/test_floor4, +/area/adminlevel/ert_station/pizza_station) +"Rh" = ( +/obj/structure/window/framed/almayer/hull, +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 + }, +/turf/open/floor/plating, +/area/adminlevel/ert_station/pizza_station) +"RC" = ( +/obj/structure/platform_decoration/kutjevo{ + dir = 1 + }, +/turf/open/space/basic, +/area/space) +"RG" = ( +/obj/structure/platform/kutjevo/smooth{ + dir = 4 + }, +/obj/structure/platform/kutjevo/smooth, +/turf/open/space/basic, +/area/space) +"RN" = ( +/obj/structure/barricade/handrail/pizza{ + dir = 1; + pixel_y = 12; + layer = 4.11 + }, +/turf/open/floor/redyellowfull, +/area/adminlevel/ert_station/pizza_station) +"RP" = ( +/obj/structure/barricade/handrail/pizza{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 6 + }, +/turf/open/floor/blueyellowfull, +/area/adminlevel/ert_station/pizza_station) +"RV" = ( +/obj/item/clothing/suit/chef/classic, +/obj/item/clothing/gloves/latex, +/obj/item/clothing/head/chefhat, +/obj/structure/surface/table/reinforced, +/obj/structure/machinery/light{ + dir = 8 + }, +/turf/open/floor/cmo, +/area/adminlevel/ert_station/pizza_station) +"Se" = ( +/obj/structure/bed/chair/bolted{ + dir = 1; + pixel_y = 12; + buckling_y = 12 + }, +/obj/structure/prop/souto_land/streamer{ + pixel_y = 9 + }, +/turf/open/floor/redyellowfull, +/area/adminlevel/ert_station/pizza_station) +"Sg" = ( +/obj/structure/platform/kutjevo/smooth{ + dir = 1 + }, +/obj/structure/barricade/handrail{ + dir = 1; + icon_state = "hr_kutjevo"; + name = "solar lattice" + }, +/turf/open/space, +/area/space) +"So" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/prison/red/north, +/area/adminlevel/ert_station/pizza_station) +"Sp" = ( +/obj/structure/barricade/handrail/pizza{ + dir = 4 + }, +/turf/open/floor/redyellowfull, +/area/adminlevel/ert_station/pizza_station) +"Sq" = ( +/obj/structure/kitchenspike, +/obj/item/reagent_container/food/snacks/meat{ + pixel_y = -5 + }, +/obj/item/reagent_container/food/snacks/meat{ + pixel_y = 2 + }, +/obj/effect/decal/cleanable/blood, +/turf/open/floor/prison/greenblue, +/area/adminlevel/ert_station/pizza_station) +"Sr" = ( +/obj/structure/surface/table/reinforced/cloth, +/obj/item/reagent_container/food/drinks/cans/beer{ + pixel_x = -13; + pixel_y = -6 + }, +/obj/item/tool/kitchen/utensil/fork{ + pixel_y = 1; + pixel_x = 5 + }, +/obj/item/tool/kitchen/utensil/knife{ + pixel_y = 3; + pixel_x = 9 + }, +/obj/item/reagent_container/food/snacks/meatsteak{ + pixel_y = 5; + pixel_x = 1 + }, +/turf/open/floor/redyellowfull, +/area/adminlevel/ert_station/pizza_station) +"Sz" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/prison/bright_clean2, +/area/adminlevel/ert_station/pizza_station) +"SL" = ( +/obj/structure/surface/table/almayer, +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_21"; + pixel_y = 28; + pixel_x = 3 + }, +/obj/item/reagent_container/food/drinks/cans/souto/diet/lime{ + pixel_y = 15; + pixel_x = -8 + }, +/turf/open/floor/prison/yellow/west, +/area/adminlevel/ert_station/pizza_station) +"ST" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/sign/poster/ad{ + icon_state = "poster41"; + pixel_y = 32 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/prison/kitchen, +/area/adminlevel/ert_station/pizza_station) +"SV" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer, +/obj/structure/machinery/door/airlock/almayer/generic{ + name = "\improper Showers" + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer/test_floor4, +/area/adminlevel/ert_station/pizza_station) +"Te" = ( +/obj/structure/surface/table/reinforced/cloth, +/obj/item/reagent_container/food/condiment/hotsauce/cholula{ + pixel_y = 28; + pixel_x = 16 + }, +/obj/item/tool/kitchen/utensil/pknife{ + pixel_x = 13; + pixel_y = 1 + }, +/obj/item/tool/kitchen/utensil/pfork{ + pixel_x = -5; + pixel_y = 5 + }, +/obj/item/reagent_container/food/snacks/chocolatecakeslice{ + pixel_y = 2; + pixel_x = 2 + }, +/obj/item/reagent_container/food/drinks/coffee{ + pixel_y = 13; + pixel_x = 5 + }, +/turf/open/floor/redyellowfull, +/area/adminlevel/ert_station/pizza_station) +"Tu" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 1 + }, +/turf/open/floor/prison/kitchen, +/area/adminlevel/ert_station/pizza_station) +"TC" = ( +/turf/open/floor/prison/yellowcorner, +/area/adminlevel/ert_station/pizza_station) +"TD" = ( +/turf/open/floor/prison/bright_clean2, +/area/adminlevel/ert_station/pizza_station) +"TE" = ( +/turf/open/mars_dirt/mars_cave_3, +/area/space) +"TH" = ( +/obj/structure/surface/table/almayer, +/obj/structure/barricade/handrail/pizza{ + pixel_y = -3 + }, +/obj/item/storage/box/drinkingglasses{ + layer = 2.97; + pixel_x = 14 + }, +/obj/item/reagent_container/food/drinks/bottle/orangejuice{ + layer = 2.97 + }, +/turf/open/floor/prison/kitchen, +/area/adminlevel/ert_station/pizza_station) +"TK" = ( +/turf/closed/shuttle/ert, +/area/adminlevel/ert_station/pizza_station) +"TQ" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SW-out"; + pixel_y = -1 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + pixel_y = 1 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_y = 1 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "SE-out"; + pixel_y = -1 + }, +/obj/structure/pipes/standard/manifold/fourway/hidden/supply, +/turf/open/floor/cmo, +/area/adminlevel/ert_station/pizza_station) +"TY" = ( +/obj/structure/bed/chair{ + can_buckle = 0; + dir = 4 + }, +/obj/structure/bed/chair{ + can_buckle = 0; + dir = 4; + pixel_x = 1; + pixel_y = 3 + }, +/obj/structure/bed/chair{ + can_buckle = 0; + dir = 4; + pixel_x = 2; + pixel_y = 6 + }, +/obj/structure/machinery/light{ + dir = 8 + }, +/turf/open/floor/redyellowfull, +/area/adminlevel/ert_station/pizza_station) +"Uu" = ( +/obj/structure/disposalpipe/segment{ + dir = 8 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/machinery/power/apc/antag{ + dir = 1 + }, +/turf/open/floor/prison/kitchen, +/area/adminlevel/ert_station/pizza_station) +"Ux" = ( +/obj/structure/barricade/handrail/pizza{ + dir = 1; + pixel_y = 12 + }, +/obj/structure/bed/chair/bolted{ + pixel_y = -1; + buckling_y = -1 + }, +/obj/structure/machinery/light{ + dir = 4 + }, +/turf/open/floor/redyellowfull, +/area/adminlevel/ert_station/pizza_station) +"UB" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 6 + }, +/turf/open/floor/cmo, +/area/adminlevel/ert_station/pizza_station) +"Vj" = ( +/obj/structure/closet/secure_closet/fridge/dry/stock, +/turf/open/floor/prison/greenblue/northeast, +/area/adminlevel/ert_station/pizza_station) +"Vm" = ( +/obj/structure/surface/table/reinforced, +/obj/item/tool/kitchen/tray{ + pixel_y = 2 + }, +/obj/item/reagent_container/food/snacks/sliceable/pizza/mushroompizza{ + pixel_y = 1 + }, +/turf/open/floor/prison/greenbluecorner, +/area/adminlevel/ert_station/pizza_station) +"Vs" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/obj/structure/machinery/light{ + pixel_x = 16; + dir = 1 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 10 + }, +/turf/open/floor/prison/red/west, +/area/adminlevel/ert_station/pizza_station) +"Vt" = ( +/turf/closed/shuttle/ert{ + icon_state = "stan25" + }, +/area/adminlevel/ert_station/pizza_station) +"Vv" = ( +/obj/docking_port/stationary/emergency_response/idle_port4, +/turf/open/floor/plating, +/area/adminlevel/ert_station/pizza_station) +"Vx" = ( +/obj/structure/lattice, +/turf/open/space/basic, +/area/space) +"VD" = ( +/obj/structure/barricade/handrail/pizza{ + dir = 1; + pixel_y = 12 + }, +/obj/structure/reagent_dispensers/water_cooler/stacks{ + density = 0; + pixel_x = -3; + pixel_y = 15; + layer = 4.03 + }, +/obj/structure/surface/table/almayer{ + layer = 4.02 + }, +/turf/open/floor/redyellowfull, +/area/adminlevel/ert_station/pizza_station) +"VK" = ( +/turf/open/floor/prison/yellow/southwest, +/area/adminlevel/ert_station/pizza_station) +"VN" = ( +/obj/structure/bed/chair/bolted{ + dir = 8; + pixel_x = -7; + buckling_x = -7 + }, +/obj/structure/sign/poster{ + desc = "One of those hot, tanned babes back the beaches of good ol' Earth."; + icon_state = "poster12"; + name = "Beach Babe Pinup"; + pixel_x = 6; + pixel_y = 30; + serial_number = 12 + }, +/turf/open/floor/redyellowfull, +/area/adminlevel/ert_station/pizza_station) +"VQ" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/prison/kitchen, +/area/adminlevel/ert_station/pizza_station) +"VS" = ( +/obj/structure/surface/table/almayer, +/obj/item/storage/donut_box{ + pixel_y = -8 + }, +/turf/open/floor/prison, +/area/adminlevel/ert_station/pizza_station) +"VX" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S"; + pixel_y = -1 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/cmo, +/area/adminlevel/ert_station/pizza_station) +"Wb" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 + }, +/obj/structure/machinery/door/poddoor/almayer/open{ + name = "\improper Umbillical Airlock"; + id = "pizza_ert_arrival" + }, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer/test_floor4, +/area/adminlevel/ert_station/pizza_station) +"WL" = ( +/obj/structure/window/framed/almayer/hull, +/obj/structure/machinery/door/firedoor/border_only/almayer, +/turf/open/floor/plating, +/area/adminlevel/ert_station/pizza_station) +"WP" = ( +/turf/open/floor/prison/kitchen, +/area/adminlevel/ert_station/pizza_station) +"WS" = ( +/obj/structure/machinery/door/airlock/almayer/maint/colony/autoname{ + dir = 1; + req_one_access = null + }, +/turf/open/floor/plating/prison, +/area/adminlevel/ert_station/pizza_station) +"WZ" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 + }, +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ + name = "\improper Kitchen and Cleaning" + }, +/turf/open/floor/almayer/test_floor4, +/area/adminlevel/ert_station/pizza_station) +"Xa" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SE-out" + }, +/obj/structure/sign/safety/debark_lounge{ + pixel_y = 32 + }, +/obj/structure/sign/safety/landingzone{ + pixel_y = 32; + pixel_x = 15 + }, +/turf/open/floor/prison/yellow/north, +/area/adminlevel/ert_station/pizza_station) +"Xg" = ( +/obj/structure/prop/souto_land/streamer{ + pixel_y = 9; + pixel_x = 1 + }, +/obj/structure/pipes/standard/manifold/hidden/supply, +/turf/open/floor/prison/red, +/area/adminlevel/ert_station/pizza_station) +"Xj" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E" + }, +/obj/structure/sign/safety/airlock{ + pixel_y = 32 + }, +/obj/structure/sign/safety/hazard{ + pixel_x = 15; + pixel_y = 32 + }, +/obj/structure/closet/crate/trashcart, +/obj/item/storage/bag/trash, +/obj/item/storage/bag/trash{ + pixel_x = -6; + pixel_y = 5 + }, +/turf/open/floor/prison/kitchen, +/area/adminlevel/ert_station/pizza_station) +"Xn" = ( +/obj/structure/platform_decoration/kutjevo{ + dir = 4 + }, +/turf/open/space, +/area/space) +"Xq" = ( +/obj/structure/surface/rack, +/obj/structure/machinery/light/small/blue{ + pixel_x = 16 + }, +/obj/item/reagent_container/food/snacks/bigbiteburger{ + pixel_x = -2 + }, +/obj/item/reagent_container/food/snacks/bigbiteburger{ + pixel_x = 4 + }, +/turf/open/floor/prison/greenblue, +/area/adminlevel/ert_station/pizza_station) +"Xr" = ( +/obj/structure/disposalpipe/segment{ + dir = 8 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_y = 1 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/prison/kitchen, +/area/adminlevel/ert_station/pizza_station) +"Xw" = ( +/obj/structure/platform/kutjevo/smooth, +/obj/structure/platform/kutjevo/smooth{ + dir = 4 + }, +/turf/open/space/basic, +/area/space) +"Xx" = ( +/obj/structure/surface/table/reinforced, +/obj/item/reagent_container/food/snacks/sliceable/flatdough, +/obj/item/tool/kitchen/rollingpin, +/turf/open/floor/cmo, +/area/adminlevel/ert_station/pizza_station) +"XB" = ( +/obj/structure/machinery/shower{ + pixel_y = 16 + }, +/obj/structure/window/reinforced{ + dir = 4; + health = 80 + }, +/obj/structure/window/reinforced{ + dir = 8; + health = 80 + }, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/ert_station/pizza_station) +"XD" = ( +/obj/structure/pipes/vents/pump{ + dir = 8 + }, +/turf/open/floor/prison/red/northeast, +/area/adminlevel/ert_station/pizza_station) +"XV" = ( +/obj/structure/prop/souto_land/streamer{ + dir = 4; + pixel_y = 9 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/prison/red, +/area/adminlevel/ert_station/pizza_station) +"XZ" = ( +/obj/structure/barricade/handrail/pizza{ + pixel_y = -3 + }, +/turf/open/floor/redyellowfull, +/area/adminlevel/ert_station/pizza_station) +"Ya" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ + name = "STAFF ONLY" + }, +/turf/open/floor/almayer/test_floor4, +/area/adminlevel/ert_station/pizza_station) +"Yf" = ( +/obj/structure/surface/table/reinforced, +/obj/item/reagent_container/food/condiment/hotsauce/franks/macho{ + pixel_y = 18; + pixel_x = -6 + }, +/obj/item/reagent_container/food/condiment/hotsauce/franks{ + pixel_y = 18; + pixel_x = 6 + }, +/obj/item/reagent_container/food/condiment/hotsauce/cholula{ + pixel_y = 16 + }, +/obj/item/reagent_container/food/drinks/drinkingglass{ + pixel_y = 1; + pixel_x = -4 + }, +/obj/item/reagent_container/food/drinks/drinkingglass{ + pixel_y = 3; + pixel_x = 6 + }, +/turf/open/floor/cmo, +/area/adminlevel/ert_station/pizza_station) +"Yj" = ( +/obj/structure/surface/table/reinforced/cloth, +/obj/item/tool/kitchen/utensil/pknife{ + pixel_x = -6 + }, +/obj/item/tool/kitchen/utensil/pfork{ + pixel_y = 3; + pixel_x = -3 + }, +/obj/item/reagent_container/food/drinks/cans/souto/blue{ + pixel_x = 5; + pixel_y = 10 + }, +/obj/item/tool/kitchen/tray{ + pixel_y = -2; + pixel_x = 16 + }, +/turf/open/floor/redyellowfull, +/area/adminlevel/ert_station/pizza_station) +"Ym" = ( +/obj/structure/sign/safety/nonpress_0g{ + pixel_x = -16 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating/prison, +/area/adminlevel/ert_station/pizza_station) +"Yo" = ( +/turf/open/space, +/area/space) +"Yu" = ( +/obj/structure/platform/kutjevo/smooth, +/obj/structure/platform/kutjevo/smooth{ + dir = 4 + }, +/obj/structure/lattice, +/turf/open/space/basic, +/area/space) +"Yv" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer/dark_sterile, +/area/adminlevel/ert_station/pizza_station) +"Yw" = ( +/turf/closed/shuttle/ert{ + icon_state = "stan27" + }, +/area/adminlevel/ert_station/pizza_station) +"Yy" = ( +/turf/open/space/basic, +/area/space) +"YD" = ( +/obj/structure/surface/table/reinforced, +/obj/item/tool/kitchen/tray{ + pixel_y = 6 + }, +/obj/item/reagent_container/food/snacks/sliceable/pizza/meatpizza{ + pixel_y = 5 + }, +/turf/open/floor/prison/greenblue/southeast, +/area/adminlevel/ert_station/pizza_station) +"YF" = ( +/obj/structure/platform_decoration/kutjevo{ + dir = 1 + }, +/obj/structure/lattice, +/turf/open/space/basic, +/area/space) +"YL" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 + }, +/obj/structure/machinery/door/poddoor/almayer/open{ + name = "\improper Umbillical Airlock"; + id = "pizza_ert_arrival" + }, +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ + name = "\improper Galaxy Pizza!" + }, +/turf/open/floor/almayer/test_floor4, +/area/adminlevel/ert_station/pizza_station) +"YM" = ( +/obj/structure/prop/invuln{ + desc = "An inflated membrane. This one is puncture proof. Wow!"; + icon = 'icons/obj/items/inflatable.dmi'; + icon_state = "wall"; + name = "Docking Umbilical" + }, +/obj/structure/blocker/invisible_wall, +/obj/structure/sign/safety/airlock{ + pixel_y = -32 + }, +/obj/structure/sign/safety/hazard{ + pixel_x = 15; + pixel_y = -32 + }, +/turf/open/floor/almayer_hull, +/area/adminlevel/ert_station/pizza_station) +"YO" = ( +/turf/closed/wall/almayer, +/area/adminlevel/ert_station/pizza_station) +"ZD" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 + }, +/obj/structure/machinery/door/poddoor/almayer/open{ + name = "\improper Umbillical Airlock"; + id = "pizza_ert_arrival" + }, +/turf/open/floor/almayer/test_floor4, +/area/adminlevel/ert_station/pizza_station) +"ZM" = ( +/obj/structure/closet/secure_closet/freezer/fridge/full, +/obj/item/reagent_container/food/condiment/enzyme, +/obj/item/reagent_container/food/drinks/soymilk, +/obj/item/reagent_container/food/drinks/soymilk, +/obj/item/reagent_container/food/condiment/hotsauce/tabasco, +/obj/item/reagent_container/food/condiment/hotsauce/sriracha, +/obj/item/reagent_container/food/condiment/hotsauce/franks, +/obj/item/reagent_container/food/condiment/hotsauce/cholula, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/prison/greenblue/north, +/area/adminlevel/ert_station/pizza_station) +"ZR" = ( +/obj/structure/pipes/vents/pump{ + dir = 4 + }, +/turf/open/floor/cmo, +/area/adminlevel/ert_station/pizza_station) +"ZV" = ( +/obj/structure/bed/sofa/vert/grey, +/turf/open/floor/prison, +/area/adminlevel/ert_station/pizza_station) +"ZX" = ( +/obj/structure/surface/table/reinforced, +/obj/structure/sign/poster/ad{ + icon_state = "poster12"; + pixel_y = 32 + }, +/obj/item/tool/kitchen/tray{ + pixel_y = 6 + }, +/obj/item/tool/kitchen/tray{ + pixel_y = 9 + }, +/obj/item/tool/kitchen/tray{ + pixel_y = 12 + }, +/turf/open/floor/prison/kitchen, +/area/adminlevel/ert_station/pizza_station) + +(1,1,1) = {" +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +"} +(2,1,1) = {" +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yo +Yy +Yy +Yy +Yy +Yy +Yy +Yo +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +"} +(3,1,1) = {" +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +yg +qq +qq +qX +yg +uj +qq +qq +NT +yg +qq +qq +qX +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +"} +(4,1,1) = {" +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +yg +RG +OJ +OJ +Sg +eI +OJ +OJ +OJ +Sg +wb +OJ +OJ +Py +NT +Yy +Yy +Yy +ID +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +"} +(5,1,1) = {" +Yy +Yy +Yy +Yy +Yy +Yy +ID +ID +Yy +yg +Xw +OJ +OJ +OJ +tT +Xw +OJ +OJ +OJ +Gn +Xw +OJ +OJ +OJ +OG +Vx +ID +ID +ID +ID +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +"} +(6,1,1) = {" +Yy +Yy +Yy +Yy +Yy +ID +ID +ID +ID +eI +OJ +OJ +OJ +oy +CP +CP +OJ +OJ +OJ +CP +CP +oy +OJ +OJ +tT +rk +Vx +ID +ID +ID +ID +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +"} +(7,1,1) = {" +Yy +Yy +Yy +Yy +ID +ID +ID +ID +Vx +Pq +OJ +OJ +oy +CP +fH +fb +OJ +oy +OJ +ja +Mz +CP +oy +OJ +OJ +oX +Yy +Yy +ID +ID +ID +ID +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +"} +(8,1,1) = {" +Yy +Yy +Yy +ID +ID +ID +ID +Vx +Yy +RC +PF +xe +CP +lx +Xn +ID +ID +ID +ID +ID +ha +xe +CP +OJ +OJ +oX +Yy +Yy +Vx +ID +ID +ID +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +"} +(9,1,1) = {" +Yy +Yy +Yy +ID +ID +ID +Yy +Vx +Yy +Yy +Yy +eI +CP +ID +ID +ID +ID +ID +ID +ID +ID +eI +CP +fH +Hg +fO +Yy +Vx +Vx +Yy +ID +ID +ID +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +"} +(10,1,1) = {" +Yy +Yy +Yy +ID +ID +Vx +Vx +Vx +Yy +Yy +Yy +ID +ID +ID +ID +ID +ID +ID +ID +ID +Ei +Ei +WL +WL +WL +uo +Ei +Ei +Vx +Vx +Vx +ID +ID +ID +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +"} +(11,1,1) = {" +Yy +Yy +Yy +Yy +ID +Yy +Yy +Vx +yg +qq +ID +ID +ID +ID +ID +ID +ID +ID +ID +Ei +Ei +hX +Ff +rA +uN +Pl +TY +Ei +Ei +Vx +Yy +Yy +ID +ID +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +"} +(12,1,1) = {" +Yy +Yy +Yy +Yy +Vx +Yy +Yy +wD +Yu +jH +ID +Ei +Ei +Ei +Ei +Ei +Ei +Ei +Ei +Ei +Gh +Ly +Sp +uN +Sp +RN +jx +FS +Ei +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +"} +(13,1,1) = {" +Yy +Yy +Yy +Vx +Vx +Yy +yg +Yu +jH +pD +Ei +Ei +nK +RV +Xx +ef +wm +qy +YO +YO +vA +ug +Au +vr +yr +uN +wu +ly +Rh +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +"} +(14,1,1) = {" +Yy +Yy +Yy +Vx +wD +qq +Xw +jH +TE +TE +Ei +Ac +nB +nB +nB +nB +nB +nB +eD +YO +dc +zQ +oU +vi +Gm +uN +ec +xh +Rh +Yy +Yy +Yy +Yy +Ei +uo +uo +uo +Ei +uo +uo +uo +Ei +Yy +Yy +Yy +"} +(15,1,1) = {" +Yy +Yy +Yy +yg +Yu +pD +pD +TE +pD +qt +Rh +qv +nB +ZR +MB +cr +Pn +nB +nB +jy +tq +MK +FY +wz +Gm +hb +pS +pS +Rh +Yy +Yy +Yy +Ei +Ei +Mt +nl +SL +BU +fj +nl +sk +Ei +Ei +Yy +Yy +"} +(16,1,1) = {" +Yy +Yy +Yy +eI +pD +TE +pD +sB +TE +TE +Rh +Dx +nB +jo +np +JP +aA +Lk +nB +uY +tq +WP +TH +wz +uz +cO +KC +mt +Rh +Yy +Yy +Ei +Ei +pA +fE +VS +rK +an +Nl +cL +wo +VK +Ei +Ei +Yy +"} +(17,1,1) = {" +Yy +Yy +Yy +eI +sB +TE +TE +sB +TE +pD +Rh +Yf +UB +AB +Pa +NP +Pa +ov +nB +jf +tq +WP +La +wz +nU +uN +Ax +tC +Rh +Yy +Yy +Ei +Ei +Xa +Jm +Jm +Jm +Jm +Jm +Jm +Jm +aS +Ei +Ei +Yy +"} +(18,1,1) = {" +Yy +Yy +Yy +eI +NJ +TK +TK +Ha +lg +sB +Ei +sJ +jo +nB +ae +YO +uD +Ab +bT +YO +Ao +WP +lv +wz +OE +uN +HQ +fN +Ei +Yy +Yy +Yy +uo +AH +Vv +fu +fu +fu +fu +fu +fu +gU +uo +Yy +Yy +"} +(19,1,1) = {" +Yy +Yy +Yy +eI +Yw +Ln +Mj +WS +TE +eW +Ei +YO +Rf +kz +YO +YO +YO +YO +YO +YO +Uu +WP +nA +sa +aP +Db +zz +ys +Ei +ah +bd +YM +Ei +cK +fu +fu +fu +fu +fu +fu +fu +lJ +Ei +GM +Yy +"} +(20,1,1) = {" +Yy +Yy +Yy +eI +Vt +nf +nf +qh +FL +TE +uo +Ps +fg +WP +zf +WZ +TD +Fd +lN +Ya +bB +WP +lE +wz +Gm +Jl +Jl +Jl +tH +IJ +Jl +Jl +Ep +AH +fu +fu +fu +fu +fu +fu +fu +gU +la +Yy +Yy +"} +(21,1,1) = {" +Yy +Yy +Yy +eI +sB +sB +TE +eW +TE +pD +uo +JU +Tu +CO +CO +NG +mP +ok +Sz +BJ +vX +WP +yE +wz +hc +ir +ir +ir +Wb +zQ +ir +Dd +EO +AH +fu +fu +fu +fu +fu +fu +fu +gU +sW +Yy +Yy +"} +(22,1,1) = {" +Yy +Yy +Yy +eI +sB +sB +eW +TE +TE +ID +Ei +cP +tq +WP +Bz +YO +YO +AD +YO +YO +gV +WP +zx +DW +Eh +lB +mt +hR +Ei +ah +bd +YM +Ei +cK +fu +fu +fu +fu +fu +fu +fu +lJ +Ei +GM +Yy +"} +(23,1,1) = {" +Yy +Yy +Yy +eI +me +TE +TE +pD +ID +ID +Ei +Kv +EZ +Qe +BC +YO +wi +yK +yP +YO +VQ +WP +ic +wz +nU +hb +Iq +xl +Ei +Yy +Yy +Yy +uo +AH +fu +fu +fu +fu +fu +fu +fu +gU +uo +Yy +Yy +"} +(24,1,1) = {" +Yy +Yy +Yy +RC +xe +me +me +ID +ID +ID +Ei +ZX +tq +WP +Fz +YO +eo +yG +Xq +YO +CT +WP +HL +wz +XV +uN +pS +tp +Ei +Yy +Yy +Yy +uo +AH +fu +fu +fu +fu +fu +fu +fu +gU +uo +Yy +Yy +"} +(25,1,1) = {" +Yy +Yy +Yy +Yy +RC +uK +PL +Ei +Ei +Ei +Ei +Xj +Xr +WP +sp +YO +ZM +KY +Sq +YO +DF +WP +gu +wz +OE +hb +qs +dh +Ei +Yy +Yy +Yy +uo +AH +fu +fu +fu +fu +fu +fu +fu +gU +uo +Yy +Yy +"} +(26,1,1) = {" +Yy +Yy +Yy +Yy +Yy +xp +ei +ub +oG +Ym +FD +vI +wa +FB +YO +YO +Cv +KY +Jq +YO +ST +Kb +am +wz +Gd +Db +zz +ys +Ei +ah +bd +YM +Ei +cK +fu +fu +fu +fu +fu +fu +fu +lJ +Ei +GM +Yy +"} +(27,1,1) = {" +Yy +Yy +Yy +Yy +Yy +DH +lL +lH +zE +aD +EK +im +sY +fg +YO +NN +yo +KY +ny +YO +Vs +sx +sx +wq +oh +zh +zh +zh +YL +vr +zh +Ib +Ep +AH +fu +fu +fu +fu +fu +fu +fu +gU +rL +Yy +Yy +"} +(28,1,1) = {" +Yy +Yy +Yy +Yy +Yy +vR +Kc +Ei +Ei +Ei +Ei +By +sl +aq +bU +hL +xV +Vm +iw +YO +OS +OS +OS +zM +Gm +OS +OS +OS +ZD +cq +OS +OS +EO +AH +fu +fu +fu +fu +fu +fu +fu +gU +sW +Yy +Yy +"} +(29,1,1) = {" +Yy +Yy +Vx +Yy +Yy +YF +Ee +fO +ID +ID +Ei +Ei +qA +yM +YO +Vj +zW +YD +YO +YO +Nr +Mk +OK +wQ +uz +wP +KC +hR +Ei +ah +bd +YM +Ei +cK +fu +fu +fu +fu +fu +fu +fu +lJ +Ei +GM +Yy +"} +(30,1,1) = {" +Yy +Vx +Vx +Vx +Vx +Vx +Yy +Yy +Yy +ID +ID +Ei +dS +YO +YO +YO +oD +YO +YO +qU +jV +Gj +mk +wQ +aJ +hb +PH +zl +Ei +Yy +Yy +Yy +uo +AH +fu +fu +fu +fu +fu +fu +fu +gU +uo +Yy +Yy +"} +(31,1,1) = {" +Yy +Yy +ID +Yy +Yy +Vx +Vx +Vx +Vx +Vx +Ei +Ei +bl +pT +YO +mj +ty +MS +YO +rj +ma +uN +MX +Pi +Xg +hb +Cp +lw +Rh +Yy +Yy +Ei +Ei +iY +No +No +No +No +No +No +No +AW +Ei +Ei +Yy +"} +(32,1,1) = {" +Yy +ID +ID +ID +ID +Vx +Yy +Yy +Yy +Yy +Rh +Fj +td +Fp +YO +XB +MT +bo +YO +Sr +Ra +uN +jb +xc +qb +uN +pS +pS +Rh +Yy +Yy +Ei +Ei +EH +hg +Nl +NH +ZV +JR +Nl +TC +rO +Ei +Ei +Yy +"} +(33,1,1) = {" +Yy +ID +ID +ID +ID +Vx +Yy +Yy +Yy +Yy +Rh +wX +tM +hv +YO +YO +SV +YO +YO +VN +pS +XZ +jT +So +Oh +uN +zC +zC +Rh +Yy +Yy +Yy +Ei +Ei +Gt +Hd +Hd +GB +Hd +Hd +oo +Ei +Ei +Yy +Yy +"} +(34,1,1) = {" +Yy +Yy +ID +ID +ID +ID +ID +Yy +Yy +Yy +Ei +YO +YO +YO +YO +KB +VX +zj +YO +Aj +RP +gy +gb +XD +eK +hb +Yj +sI +Rh +Yy +Yy +Yy +Yy +Ei +uo +uo +uo +Ei +uo +uo +uo +Ei +Yy +Yy +Yy +"} +(35,1,1) = {" +Yy +Yy +ID +ID +ID +ID +ID +Vx +Yy +Yy +Rh +vq +QN +Yv +se +Bu +TQ +Bu +NV +AV +cI +OQ +jV +uN +kW +RN +Og +xX +Rh +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +"} +(36,1,1) = {" +Yy +Yy +Yy +ID +ID +ID +Vx +Vx +Vx +Vx +Rh +vq +ap +Kd +YO +qo +eQ +Ck +YO +YO +tX +JV +Gp +Te +Se +hb +pS +nX +Ei +Yy +Yy +Vx +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +"} +(37,1,1) = {" +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Vx +ID +Ei +Ei +jq +pE +YO +Jd +xy +Ny +YO +YO +YO +Ux +cE +eh +LH +VD +Nb +Ei +Ei +Vx +Vx +Vx +Vx +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +"} +(38,1,1) = {" +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +ID +ID +ID +Ei +Ei +Ei +Ei +WL +WL +WL +Ei +ID +Ei +Ei +WL +WL +WL +uo +Ei +Ei +Vx +Yy +Yy +ID +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +"} +(39,1,1) = {" +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +ID +ID +ID +ID +ID +ID +ID +Yy +Yy +Yy +ID +ID +ID +ID +Yy +Yy +Yy +Yy +Vx +Vx +Vx +Yy +ID +ID +ID +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +"} +(40,1,1) = {" +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +ID +ID +ID +ID +ID +Yy +Yy +Yy +Yy +Yy +ID +ID +Vx +Yy +Yy +Yy +Vx +Vx +Yy +Vx +ID +ID +ID +ID +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +"} +(41,1,1) = {" +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +ID +ID +ID +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Vx +Vx +Vx +Yy +Yy +Vx +Yy +ID +ID +ID +ID +ID +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +"} +(42,1,1) = {" +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Vx +Vx +Vx +ID +ID +ID +ID +ID +ID +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +"} +(43,1,1) = {" +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Vx +ID +ID +ID +ID +ID +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +"} +(44,1,1) = {" +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +ID +ID +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +"} +(45,1,1) = {" +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +"} diff --git a/maps/templates/twe_ert_station.dmm b/maps/templates/lazy_templates/twe_ert_station.dmm similarity index 80% rename from maps/templates/twe_ert_station.dmm rename to maps/templates/lazy_templates/twe_ert_station.dmm index 78c98b4d16a9..83ecd232b2a5 100644 --- a/maps/templates/twe_ert_station.dmm +++ b/maps/templates/lazy_templates/twe_ert_station.dmm @@ -7,16 +7,11 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/ert_station/royal_marines_station) "aq" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "cargo_arrow" - }, +/turf/open/floor/almayer/cargo_arrow/north, /area/adminlevel/ert_station/royal_marines_station) "ar" = ( /obj/effect/decal/cleanable/dirt, @@ -25,9 +20,7 @@ pixel_x = 1 }, /obj/structure/machinery/cm_vending/clothing/antag, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/ert_station/royal_marines_station) "aH" = ( /obj/structure/platform{ @@ -42,10 +35,7 @@ /obj/effect/decal/warning_stripes{ icon_state = "SE-out" }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/ert_station/royal_marines_station) "aK" = ( /obj/structure/window/framed/almayer, @@ -62,9 +52,7 @@ "aX" = ( /obj/structure/surface/table/almayer, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - icon_state = "orange" - }, +/turf/open/floor/almayer/orange, /area/adminlevel/ert_station/royal_marines_station) "bp" = ( /turf/closed/shuttle/twe_dropship{ @@ -88,16 +76,11 @@ /area/adminlevel/ert_station/royal_marines_station) "bS" = ( /obj/structure/machinery/optable, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/adminlevel/ert_station/royal_marines_station) "co" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/almayer/red/east, /area/adminlevel/ert_station/royal_marines_station) "cu" = ( /obj/structure/machinery/shower{ @@ -109,10 +92,7 @@ /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/almayer/red/northwest, /area/adminlevel/ert_station/royal_marines_station) "cL" = ( /obj/structure/platform{ @@ -135,10 +115,7 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/almayer/red/southeast, /area/adminlevel/ert_station/royal_marines_station) "dm" = ( /obj/structure/closet/coffin/woodencrate, @@ -146,9 +123,7 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/ert_station/royal_marines_station) "ds" = ( /obj/effect/decal/warning_stripes{ @@ -159,9 +134,7 @@ icon_state = "N"; pixel_y = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/ert_station/royal_marines_station) "du" = ( /obj/structure/platform, @@ -176,31 +149,21 @@ icon_state = "NW-out"; pixel_y = 1 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/ert_station/royal_marines_station) "dK" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - icon_state = "orange" - }, +/turf/open/floor/almayer/orange, /area/adminlevel/ert_station/royal_marines_station) "eh" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/almayer/red/southeast, /area/adminlevel/ert_station/royal_marines_station) "ei" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "sterile_green" - }, +/turf/open/floor/almayer/sterile_green, /area/adminlevel/ert_station/royal_marines_station) "eu" = ( /obj/effect/decal/cleanable/dirt, @@ -209,41 +172,28 @@ icon_state = "W"; pixel_x = -1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/ert_station/royal_marines_station) "ev" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - icon_state = "red" - }, +/turf/open/floor/almayer/red, /area/adminlevel/ert_station/royal_marines_station) "eV" = ( /obj/structure/machinery/medical_pod/bodyscanner, -/turf/open/floor/almayer{ - icon_state = "sterile_green" - }, +/turf/open/floor/almayer/sterile_green, /area/adminlevel/ert_station/royal_marines_station) "eX" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/northeast, /area/adminlevel/ert_station/royal_marines_station) "fp" = ( -/turf/open/shuttle/dropship{ - icon_state = "rasputin7" - }, +/turf/open/shuttle/dropship/light_grey_top_right, /area/adminlevel/ert_station/royal_marines_station) "ft" = ( /obj/structure/machinery/bioprinter{ stored_metal = 1000 }, -/turf/open/floor/almayer{ - icon_state = "sterile_green" - }, +/turf/open/floor/almayer/sterile_green, /area/adminlevel/ert_station/royal_marines_station) "fx" = ( /obj/structure/platform{ @@ -252,25 +202,17 @@ /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/ert_station/royal_marines_station) "fD" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/almayer/red/east, /area/adminlevel/ert_station/royal_marines_station) "fJ" = ( /obj/structure/machinery/door/airlock/almayer/generic{ id = "Delta_1"; name = "\improper Bathroom" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/adminlevel/ert_station/royal_marines_station) "fM" = ( /obj/effect/decal/warning_stripes{ @@ -285,60 +227,37 @@ /obj/structure/platform_decoration{ dir = 9 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/ert_station/royal_marines_station) "gg" = ( -/turf/open/floor/almayer{ - dir = 6; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/southeast, /area/adminlevel/ert_station/royal_marines_station) "gl" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/prop/almayer/computer/PC{ dir = 8 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/almayer/red/west, /area/adminlevel/ert_station/royal_marines_station) "go" = ( /obj/structure/platform, /obj/structure/blocker/invisible_wall, -/turf/closed/shuttle/twe_dropship{ - icon_state = "0,0" - }, +/turf/closed/shuttle/twe_dropship, /area/adminlevel/ert_station/royal_marines_station) "gq" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/east, /area/adminlevel/ert_station/royal_marines_station) "gx" = ( -/turf/open/floor/almayer{ - dir = 5; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/northeast, /area/adminlevel/ert_station/royal_marines_station) "gJ" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/west, /area/adminlevel/ert_station/royal_marines_station) "gS" = ( /turf/closed/wall/almayer/outer, /area/adminlevel/ert_station/royal_marines_station) "gT" = ( -/turf/open/floor/almayer{ - dir = 9; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/northwest, /area/adminlevel/ert_station/royal_marines_station) "gU" = ( /turf/closed/shuttle/twe_dropship{ @@ -358,22 +277,15 @@ "hA" = ( /obj/structure/surface/table/almayer, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/southeast, /area/adminlevel/ert_station/royal_marines_station) "hI" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/ert_station/royal_marines_station) "hL" = ( -/turf/open/floor/almayer{ - icon_state = "orangefull" - }, +/turf/open/floor/almayer/orangefull, /area/adminlevel/ert_station/royal_marines_station) "iz" = ( /obj/effect/decal/warning_stripes{ @@ -387,24 +299,18 @@ icon_state = "W"; pixel_x = -1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/ert_station/royal_marines_station) "iE" = ( /obj/structure/prop/almayer/computers/sensor_computer1{ density = 0; pixel_y = 16 }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/light_grey_single_wide_up_to_down, /area/adminlevel/ert_station/royal_marines_station) "iG" = ( /obj/structure/bed/alien, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/ert_station/royal_marines_station) "iI" = ( /turf/closed/shuttle/twe_dropship{ @@ -419,9 +325,7 @@ "iO" = ( /obj/structure/surface/table/almayer, /obj/item/storage/surgical_tray, -/turf/open/floor/almayer{ - icon_state = "sterile_green" - }, +/turf/open/floor/almayer/sterile_green, /area/adminlevel/ert_station/royal_marines_station) "iR" = ( /obj/structure/platform{ @@ -443,29 +347,19 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/almayer/red/east, /area/adminlevel/ert_station/royal_marines_station) "je" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - icon_state = "sterile_green" - }, +/turf/open/floor/almayer/sterile_green, /area/adminlevel/ert_station/royal_marines_station) "jk" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/adminlevel/ert_station/royal_marines_station) "jl" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/east, /area/adminlevel/ert_station/royal_marines_station) "jr" = ( /turf/closed/shuttle/twe_dropship{ @@ -473,9 +367,7 @@ }, /area/adminlevel/ert_station/royal_marines_station) "ju" = ( -/turf/open/shuttle/dropship{ - icon_state = "rasputin6" - }, +/turf/open/shuttle/dropship/light_grey_top_left, /area/adminlevel/ert_station/royal_marines_station) "jB" = ( /obj/structure/platform, @@ -491,9 +383,7 @@ /area/adminlevel/ert_station/royal_marines_station) "jD" = ( /obj/structure/surface/table/almayer, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, +/turf/open/floor/almayer/redfull, /area/adminlevel/ert_station/royal_marines_station) "jI" = ( /turf/closed/shuttle/twe_dropship{ @@ -512,9 +402,7 @@ icon_state = "W"; pixel_x = -1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/ert_station/royal_marines_station) "jW" = ( /turf/closed/shuttle/twe_dropship{ @@ -533,9 +421,7 @@ /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/ert_station/royal_marines_station) "kh" = ( /obj/structure/surface/table/almayer, @@ -543,9 +429,7 @@ /area/adminlevel/ert_station/royal_marines_station) "kx" = ( /obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/ert_station/royal_marines_station) "ky" = ( /obj/structure/platform{ @@ -554,22 +438,15 @@ /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/ert_station/royal_marines_station) "kH" = ( /obj/structure/largecrate/random/barrel/blue, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/ert_station/royal_marines_station) "kL" = ( /obj/structure/machinery/photocopier, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/ert_station/royal_marines_station) "kO" = ( /obj/structure/surface/table/almayer, @@ -578,36 +455,23 @@ pixel_y = 7 }, /obj/item/tool/pen, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/ert_station/royal_marines_station) "kT" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/west, /area/adminlevel/ert_station/royal_marines_station) "kW" = ( /obj/structure/bed/chair/comfy{ dir = 8 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/almayer/red/east, /area/adminlevel/ert_station/royal_marines_station) "kX" = ( -/turf/open/floor/almayer{ - icon_state = "red" - }, +/turf/open/floor/almayer/red, /area/adminlevel/ert_station/royal_marines_station) "ll" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "cargo_arrow" - }, +/turf/open/floor/almayer/cargo_arrow/east, /area/adminlevel/ert_station/royal_marines_station) "lq" = ( /turf/closed/shuttle/twe_dropship{ @@ -622,16 +486,12 @@ /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/ert_station/royal_marines_station) "lF" = ( /obj/structure/bed, /obj/item/bedsheet/medical, -/turf/open/floor/almayer{ - icon_state = "sterile_green" - }, +/turf/open/floor/almayer/sterile_green, /area/adminlevel/ert_station/royal_marines_station) "lG" = ( /obj/effect/decal/warning_stripes{ @@ -642,16 +502,12 @@ icon_state = "W"; pixel_x = -1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/ert_station/royal_marines_station) "lI" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/vending/security, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/ert_station/royal_marines_station) "lN" = ( /obj/structure/surface/table/almayer, @@ -669,9 +525,7 @@ layer = 3.1; pixel_y = 7 }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/adminlevel/ert_station/royal_marines_station) "mb" = ( /obj/effect/decal/cleanable/dirt, @@ -679,9 +533,7 @@ density = 0; pixel_y = 16 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/ert_station/royal_marines_station) "mc" = ( /obj/structure/platform, @@ -689,10 +541,7 @@ /turf/open/void, /area/adminlevel/ert_station/royal_marines_station) "mo" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "cargo_arrow" - }, +/turf/open/floor/almayer/cargo_arrow/west, /area/adminlevel/ert_station/royal_marines_station) "mw" = ( /turf/closed/shuttle/twe_dropship{ @@ -705,17 +554,13 @@ dir = 1 }, /obj/structure/machinery/iv_drip, -/turf/open/floor/almayer{ - icon_state = "sterile_green" - }, +/turf/open/floor/almayer/sterile_green, /area/adminlevel/ert_station/royal_marines_station) "mK" = ( /obj/structure/machinery/door/airlock/almayer/generic{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/adminlevel/ert_station/royal_marines_station) "nj" = ( /turf/closed/wall/r_wall/elevator{ @@ -725,16 +570,11 @@ "nl" = ( /obj/structure/largecrate/random/barrel/green, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/ert_station/royal_marines_station) "nn" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/almayer/red/northwest, /area/adminlevel/ert_station/royal_marines_station) "nw" = ( /obj/effect/decal/cleanable/dirt, @@ -745,9 +585,7 @@ icon_state = "N"; pixel_y = 2 }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/adminlevel/ert_station/royal_marines_station) "nI" = ( /obj/structure/machinery/light{ @@ -757,33 +595,23 @@ layer = 3.1; pixel_y = 7 }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/adminlevel/ert_station/royal_marines_station) "nT" = ( /obj/structure/bed/chair/comfy{ dir = 8 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/almayer/red/west, /area/adminlevel/ert_station/royal_marines_station) "nW" = ( /obj/structure/closet/coffin/woodencrate, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/ert_station/royal_marines_station) "od" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/almayer/red/northeast, /area/adminlevel/ert_station/royal_marines_station) "ol" = ( /obj/structure/machinery/door/airlock/almayer/security/colony{ @@ -795,9 +623,7 @@ id = "RMC_brig_2"; name = "shutters" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/adminlevel/ert_station/royal_marines_station) "oo" = ( /obj/structure/bed/chair/comfy{ @@ -821,39 +647,27 @@ /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/ert_station/royal_marines_station) "oY" = ( /obj/structure/machinery/chem_dispenser, /obj/item/reagent_container/glass/beaker/bluespace, -/turf/open/floor/almayer{ - icon_state = "sterile_green" - }, +/turf/open/floor/almayer/sterile_green, /area/adminlevel/ert_station/royal_marines_station) "oZ" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/bed/chair/comfy{ dir = 8 }, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/northwest, /area/adminlevel/ert_station/royal_marines_station) "pk" = ( /obj/structure/machinery/cryopod/right, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/adminlevel/ert_station/royal_marines_station) "ps" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "cargo_arrow" - }, +/turf/open/floor/almayer/cargo_arrow/west, /area/adminlevel/ert_station/royal_marines_station) "pJ" = ( /turf/closed/wall/r_wall/elevator{ @@ -864,10 +678,7 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/almayer/red/northwest, /area/adminlevel/ert_station/royal_marines_station) "pO" = ( /turf/closed/shuttle/twe_dropship{ @@ -878,10 +689,7 @@ /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/almayer/red/west, /area/adminlevel/ert_station/royal_marines_station) "qi" = ( /obj/structure/platform{ @@ -897,26 +705,18 @@ icon_state = "SW-out"; layer = 2.5 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/ert_station/royal_marines_station) "qj" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/surface/table/almayer, /obj/structure/machinery/recharger, -/turf/open/floor/almayer{ - icon_state = "sterile_green" - }, +/turf/open/floor/almayer/sterile_green, /area/adminlevel/ert_station/royal_marines_station) "qx" = ( /obj/structure/surface/table/almayer, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/almayer/red/east, /area/adminlevel/ert_station/royal_marines_station) "qG" = ( /obj/structure/platform, @@ -931,25 +731,18 @@ icon_state = "NE-out"; pixel_y = 1 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/ert_station/royal_marines_station) "qN" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/ert_station/royal_marines_station) "qZ" = ( /obj/structure/largecrate, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/ert_station/royal_marines_station) "ri" = ( /obj/effect/decal/warning_stripes{ @@ -962,24 +755,17 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/ert_station/royal_marines_station) "ro" = ( /obj/structure/bed/chair/comfy{ dir = 8 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/east, /area/adminlevel/ert_station/royal_marines_station) "rv" = ( /obj/structure/machinery/sleep_console, -/turf/open/floor/almayer{ - icon_state = "sterile_green" - }, +/turf/open/floor/almayer/sterile_green, /area/adminlevel/ert_station/royal_marines_station) "rI" = ( /turf/closed/wall/r_wall/elevator{ @@ -992,27 +778,18 @@ dir = 1; pixel_y = 7 }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/adminlevel/ert_station/royal_marines_station) "rS" = ( -/turf/open/shuttle/dropship{ - icon_state = "rasputin4" - }, +/turf/open/shuttle/dropship/light_grey_bottom_left, /area/adminlevel/ert_station/royal_marines_station) "sb" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/north, /area/adminlevel/ert_station/royal_marines_station) "su" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/cm_vending/clothing/antag, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/ert_station/royal_marines_station) "sy" = ( /turf/open/floor/plating/kutjevo, @@ -1028,9 +805,7 @@ /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/ert_station/royal_marines_station) "sI" = ( /obj/effect/decal/warning_stripes{ @@ -1040,16 +815,12 @@ /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/ert_station/royal_marines_station) "sP" = ( /obj/structure/surface/table/almayer, /obj/item/roller, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/adminlevel/ert_station/royal_marines_station) "sR" = ( /obj/structure/platform{ @@ -1064,10 +835,7 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/almayer/red/west, /area/adminlevel/ert_station/royal_marines_station) "tr" = ( /turf/closed/shuttle/twe_dropship{ @@ -1082,15 +850,10 @@ dir = 1; pixel_y = 7 }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/adminlevel/ert_station/royal_marines_station) "tw" = ( -/turf/open/floor/almayer{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/almayer/red/southeast, /area/adminlevel/ert_station/royal_marines_station) "uc" = ( /turf/closed/shuttle/twe_dropship{ @@ -1099,9 +862,7 @@ /area/adminlevel/ert_station/royal_marines_station) "uq" = ( /obj/structure/largecrate/random/barrel, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/ert_station/royal_marines_station) "uC" = ( /obj/structure/platform{ @@ -1114,34 +875,25 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/ert_station/royal_marines_station) "uK" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/almayer/red/north, /area/adminlevel/ert_station/royal_marines_station) "uQ" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "sterile_green" - }, +/turf/open/floor/almayer/sterile_green, /area/adminlevel/ert_station/royal_marines_station) "uU" = ( /obj/structure/largecrate/random/barrel, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/ert_station/royal_marines_station) "vm" = ( /obj/structure/machinery/light{ @@ -1150,9 +902,7 @@ /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/adminlevel/ert_station/royal_marines_station) "vB" = ( /obj/effect/decal/cleanable/dirt, @@ -1168,9 +918,7 @@ id = "RMC_brig_1"; name = "shutters" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/adminlevel/ert_station/royal_marines_station) "vR" = ( /obj/structure/surface/table/almayer, @@ -1178,9 +926,7 @@ pixel_x = -3; pixel_y = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/ert_station/royal_marines_station) "wl" = ( /turf/closed/shuttle/twe_dropship{ @@ -1199,9 +945,7 @@ layer = 3.1; pixel_y = 13 }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/adminlevel/ert_station/royal_marines_station) "xb" = ( /obj/effect/decal/cleanable/dirt, @@ -1209,9 +953,7 @@ density = 0; pixel_y = 16 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/ert_station/royal_marines_station) "xm" = ( /turf/closed/shuttle/twe_dropship{ @@ -1220,42 +962,29 @@ /area/adminlevel/ert_station/royal_marines_station) "xw" = ( /obj/structure/machinery/door/airlock/almayer/medical{ - id_tag = null; name = "Operating Theatre 1" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/adminlevel/ert_station/royal_marines_station) "xx" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "redcorner" - }, +/turf/open/floor/almayer/redcorner/north, /area/adminlevel/ert_station/royal_marines_station) "xy" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/ert_station/royal_marines_station) "xE" = ( /obj/structure/bed/chair/comfy{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/east, /area/adminlevel/ert_station/royal_marines_station) "xN" = ( -/turf/open/floor/almayer{ - icon_state = "sterile_green" - }, +/turf/open/floor/almayer/sterile_green, /area/adminlevel/ert_station/royal_marines_station) "xW" = ( /obj/structure/bed/chair/vehicle{ @@ -1266,44 +995,31 @@ dir = 1; pixel_x = -8 }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/adminlevel/ert_station/royal_marines_station) "xX" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/almayer/red/west, /area/adminlevel/ert_station/royal_marines_station) "yK" = ( -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/ert_station/royal_marines_station) "yQ" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - icon_state = "orangefull" - }, +/turf/open/floor/almayer/orangefull, /area/adminlevel/ert_station/royal_marines_station) "yW" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/surface/table/almayer, /obj/item/reagent_container/spray/cleaner, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/adminlevel/ert_station/royal_marines_station) "zk" = ( /obj/effect/decal/warning_stripes{ icon_state = "E"; pixel_x = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/ert_station/royal_marines_station) "zw" = ( /turf/closed/shuttle/twe_dropship{ @@ -1315,9 +1031,7 @@ name = "Spare Prison Uniforms"; req_one_access = null }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/ert_station/royal_marines_station) "zM" = ( /obj/effect/decal/warning_stripes{ @@ -1328,34 +1042,24 @@ icon_state = "E"; pixel_x = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/ert_station/royal_marines_station) "zY" = ( /obj/structure/surface/table/almayer, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/almayer/red/west, /area/adminlevel/ert_station/royal_marines_station) "Aa" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/surface/table/almayer, /obj/item/device/defibrillator, -/turf/open/floor/almayer{ - icon_state = "sterile_green" - }, +/turf/open/floor/almayer/sterile_green, /area/adminlevel/ert_station/royal_marines_station) "Ac" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/bed/chair/comfy{ dir = 8 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/west, /area/adminlevel/ert_station/royal_marines_station) "Ad" = ( /obj/effect/decal/cleanable/dirt, @@ -1375,9 +1079,7 @@ /obj/item/storage/box/pillbottles{ pixel_y = 11 }, -/turf/open/floor/almayer{ - icon_state = "sterile_green" - }, +/turf/open/floor/almayer/sterile_green, /area/adminlevel/ert_station/royal_marines_station) "Ai" = ( /obj/structure/platform{ @@ -1386,17 +1088,11 @@ /obj/effect/decal/warning_stripes{ icon_state = "E" }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/ert_station/royal_marines_station) "Am" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/north, /area/adminlevel/ert_station/royal_marines_station) "Aq" = ( /obj/structure/machinery/light{ @@ -1405,15 +1101,11 @@ /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/adminlevel/ert_station/royal_marines_station) "Au" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/adminlevel/ert_station/royal_marines_station) "AQ" = ( /turf/closed/shuttle/twe_dropship{ @@ -1426,41 +1118,27 @@ }, /area/adminlevel/ert_station/royal_marines_station) "Ba" = ( -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/adminlevel/ert_station/royal_marines_station) "Bh" = ( /obj/structure/bed/chair/comfy{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/east, /area/adminlevel/ert_station/royal_marines_station) "Bk" = ( /obj/structure/closet/firecloset, -/turf/open/floor/almayer{ - icon_state = "sterile_green" - }, +/turf/open/floor/almayer/sterile_green, /area/adminlevel/ert_station/royal_marines_station) "BC" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/almayer/red/north, /area/adminlevel/ert_station/royal_marines_station) "BV" = ( -/turf/open/shuttle/dropship{ - icon_state = "rasputin8" - }, +/turf/open/shuttle/dropship/light_grey_bottom_right, /area/adminlevel/ert_station/royal_marines_station) "Ci" = ( -/turf/open/shuttle/dropship{ - icon_state = "rasputin5" - }, +/turf/open/shuttle/dropship/light_grey_left_to_right, /area/adminlevel/ert_station/royal_marines_station) "Cj" = ( /turf/closed/shuttle/twe_dropship{ @@ -1468,17 +1146,15 @@ }, /area/adminlevel/ert_station/royal_marines_station) "Cm" = ( -/obj/item/handcuffs{ +/obj/item/restraint/handcuffs{ pixel_y = 12 }, /obj/structure/surface/table/almayer, -/obj/item/handcuffs, +/obj/item/restraint/handcuffs, /obj/item/weapon/baton{ pixel_x = -12 }, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, +/turf/open/floor/almayer/redfull, /area/adminlevel/ert_station/royal_marines_station) "Cu" = ( /turf/open/void, @@ -1499,15 +1175,10 @@ icon_state = "N"; pixel_y = 2 }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/adminlevel/ert_station/royal_marines_station) "Dg" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orangecorner" - }, +/turf/open/floor/almayer/orangecorner/east, /area/adminlevel/ert_station/royal_marines_station) "Do" = ( /obj/effect/decal/warning_stripes{ @@ -1519,9 +1190,7 @@ pixel_x = 1; pixel_y = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/ert_station/royal_marines_station) "DA" = ( /obj/effect/decal/cleanable/dirt, @@ -1537,9 +1206,7 @@ icon_state = "N"; pixel_y = 2 }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/adminlevel/ert_station/royal_marines_station) "DS" = ( /turf/closed/shuttle/twe_dropship{ @@ -1552,9 +1219,7 @@ id = "Delta_1"; name = "\improper Bathroom" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/adminlevel/ert_station/royal_marines_station) "DV" = ( /obj/structure/window/framed/almayer, @@ -1564,9 +1229,7 @@ /obj/effect/decal/cleanable/dirt, /obj/structure/surface/table/almayer, /obj/item/tool/hand_labeler, -/turf/open/floor/almayer{ - icon_state = "sterile_green" - }, +/turf/open/floor/almayer/sterile_green, /area/adminlevel/ert_station/royal_marines_station) "EG" = ( /turf/closed/shuttle/twe_dropship{ @@ -1585,9 +1248,7 @@ /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/adminlevel/ert_station/royal_marines_station) "EK" = ( /turf/closed/shuttle/twe_dropship{ @@ -1596,10 +1257,7 @@ /area/adminlevel/ert_station/royal_marines_station) "EX" = ( /obj/structure/surface/table/almayer, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/almayer/red/east, /area/adminlevel/ert_station/royal_marines_station) "Fp" = ( /obj/structure/platform{ @@ -1619,26 +1277,17 @@ dir = 8 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/almayer/red/west, /area/adminlevel/ert_station/royal_marines_station) "FA" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/bed/chair/comfy{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/east, /area/adminlevel/ert_station/royal_marines_station) "FN" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/almayer/red/west, /area/adminlevel/ert_station/royal_marines_station) "FX" = ( /obj/effect/decal/cleanable/dirt, @@ -1646,21 +1295,14 @@ dir = 4 }, /obj/structure/machinery/cm_vending/gear/antag_guns, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/ert_station/royal_marines_station) "Gd" = ( /obj/structure/machinery/cryopod, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/adminlevel/ert_station/royal_marines_station) "GM" = ( -/turf/open/floor/almayer{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/almayer/red/southwest, /area/adminlevel/ert_station/royal_marines_station) "GO" = ( /obj/structure/platform{ @@ -1691,9 +1333,7 @@ "GZ" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "orange" - }, +/turf/open/floor/almayer/orange, /area/adminlevel/ert_station/royal_marines_station) "He" = ( /obj/structure/platform{ @@ -1705,9 +1345,10 @@ "Hg" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/surface/table/almayer, -/turf/open/floor/almayer{ - icon_state = "sterile_green" +/obj/structure/machinery/power/apc/antag{ + dir = 1 }, +/turf/open/floor/almayer/sterile_green, /area/adminlevel/ert_station/royal_marines_station) "Hp" = ( /obj/structure/prop/almayer/cannon_cable_connector{ @@ -1725,24 +1366,17 @@ /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/ert_station/royal_marines_station) "HD" = ( /obj/structure/machinery/light{ dir = 8 }, /obj/structure/machinery/cm_vending/gear/antag_guns, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/ert_station/royal_marines_station) "HJ" = ( -/turf/open/floor/almayer{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/almayer/red/northeast, /area/adminlevel/ert_station/royal_marines_station) "HM" = ( /turf/closed/shuttle/twe_dropship{ @@ -1761,9 +1395,7 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/ert_station/royal_marines_station) "Ip" = ( /obj/effect/decal/warning_stripes{ @@ -1773,9 +1405,7 @@ icon_state = "N"; pixel_y = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/ert_station/royal_marines_station) "Ir" = ( /obj/structure/surface/table/almayer, @@ -1805,9 +1435,7 @@ /obj/structure/bed/chair/vehicle{ pixel_x = 8 }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/adminlevel/ert_station/royal_marines_station) "IH" = ( /obj/structure/machinery/door/airlock/almayer/security/colony{ @@ -1819,9 +1447,7 @@ id = "RMC_Pub_brig"; name = "shutters" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/adminlevel/ert_station/royal_marines_station) "IK" = ( /obj/structure/platform{ @@ -1836,10 +1462,7 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/west, /area/adminlevel/ert_station/royal_marines_station) "IY" = ( /obj/effect/decal/warning_stripes{ @@ -1849,17 +1472,12 @@ dir = 4 }, /obj/structure/platform, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/ert_station/royal_marines_station) "Jg" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/cm_vending/gear/antag_guns, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/ert_station/royal_marines_station) "JD" = ( /obj/effect/decal/warning_stripes{ @@ -1881,31 +1499,23 @@ pixel_x = -1; pixel_y = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/ert_station/royal_marines_station) "JM" = ( /obj/structure/toilet{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/adminlevel/ert_station/royal_marines_station) "JO" = ( /obj/structure/bed/chair/comfy{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/ert_station/royal_marines_station) "Kl" = ( /obj/structure/reagent_dispensers/fueltank/custom, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/adminlevel/ert_station/royal_marines_station) "Ko" = ( /obj/structure/platform{ @@ -1922,10 +1532,7 @@ /area/adminlevel/ert_station/royal_marines_station) "Ku" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/almayer/red/southwest, /area/adminlevel/ert_station/royal_marines_station) "KD" = ( /obj/structure/platform_decoration{ @@ -1942,15 +1549,11 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/ert_station/royal_marines_station) "Lj" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, +/turf/open/floor/almayer/redfull, /area/adminlevel/ert_station/royal_marines_station) "Mb" = ( /obj/structure/closet/secure_closet/brig{ @@ -1958,9 +1561,7 @@ req_one_access = null }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/ert_station/royal_marines_station) "Mg" = ( /obj/structure/surface/table/almayer, @@ -1983,9 +1584,7 @@ pixel_x = -5; pixel_y = 3 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/ert_station/royal_marines_station) "Ms" = ( /obj/effect/decal/warning_stripes{ @@ -1998,9 +1597,7 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/ert_station/royal_marines_station) "MJ" = ( /turf/open/floor/almayer, @@ -2017,17 +1614,13 @@ icon_state = "N"; pixel_y = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/ert_station/royal_marines_station) "MN" = ( /obj/structure/prop/almayer/cannon_cable_connector{ pixel_y = -3 }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/medium_grey_single_wide_up_to_down, /area/adminlevel/ert_station/royal_marines_station) "MQ" = ( /turf/closed/shuttle/twe_dropship{ @@ -2039,31 +1632,22 @@ icon_state = "N"; pixel_y = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/ert_station/royal_marines_station) "MX" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/southwest, /area/adminlevel/ert_station/royal_marines_station) "MY" = ( /obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "red" - }, +/turf/open/floor/almayer/red, /area/adminlevel/ert_station/royal_marines_station) "Nc" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "red" - }, +/turf/open/floor/almayer/red, /area/adminlevel/ert_station/royal_marines_station) "Ni" = ( /obj/structure/platform{ @@ -2075,14 +1659,10 @@ /area/adminlevel/ert_station/royal_marines_station) "Nl" = ( /obj/structure/machinery/cm_vending/gear/antag, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/ert_station/royal_marines_station) "Nm" = ( -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/adminlevel/ert_station/royal_marines_station) "Nv" = ( /obj/effect/decal/cleanable/dirt, @@ -2091,9 +1671,7 @@ icon_state = "E"; pixel_x = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/ert_station/royal_marines_station) "NE" = ( /turf/closed/shuttle/twe_dropship{ @@ -2104,37 +1682,28 @@ /obj/structure/bed/chair/comfy{ dir = 8 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/west, /area/adminlevel/ert_station/royal_marines_station) "NV" = ( /turf/closed/wall/r_wall/elevator, /area/adminlevel/ert_station/royal_marines_station) "Oi" = ( /obj/structure/machinery/medical_pod/sleeper, -/turf/open/floor/almayer{ - icon_state = "sterile_green" - }, +/turf/open/floor/almayer/sterile_green, /area/adminlevel/ert_station/royal_marines_station) "Ok" = ( /obj/structure/machinery/cryopod{ dir = 1; pixel_y = 7 }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/adminlevel/ert_station/royal_marines_station) "Or" = ( /obj/structure/machinery/cryopod{ layer = 3.1; pixel_y = 13 }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/turf/open/floor/almayer/cargo, /area/adminlevel/ert_station/royal_marines_station) "Os" = ( /turf/closed/shuttle/twe_dropship{ @@ -2145,9 +1714,7 @@ /obj/structure/platform_decoration{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/adminlevel/ert_station/royal_marines_station) "OB" = ( /obj/structure/surface/table/almayer, @@ -2160,15 +1727,11 @@ pixel_x = -3; pixel_y = -2 }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/adminlevel/ert_station/royal_marines_station) "OE" = ( /obj/structure/largecrate, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/ert_station/royal_marines_station) "OK" = ( /obj/effect/decal/warning_stripes{ @@ -2177,10 +1740,7 @@ /obj/structure/platform{ dir = 8 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/ert_station/royal_marines_station) "OO" = ( /turf/closed/shuttle/twe_dropship{ @@ -2191,9 +1751,7 @@ /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/adminlevel/ert_station/royal_marines_station) "Pd" = ( /obj/structure/platform{ @@ -2208,9 +1766,7 @@ /obj/structure/machinery/door/airlock/almayer/medical{ name = "Operating Theatre 2" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/adminlevel/ert_station/royal_marines_station) "Pl" = ( /obj/effect/decal/cleanable/dirt, @@ -2223,9 +1779,7 @@ pixel_x = 3; pixel_y = 3 }, -/turf/open/floor/almayer{ - icon_state = "sterile_green" - }, +/turf/open/floor/almayer/sterile_green, /area/adminlevel/ert_station/royal_marines_station) "Px" = ( /turf/closed/shuttle/twe_dropship{ @@ -2233,9 +1787,7 @@ }, /area/adminlevel/ert_station/royal_marines_station) "PB" = ( -/turf/open/floor/almayer{ - icon_state = "cargo_arrow" - }, +/turf/open/floor/almayer/cargo_arrow, /area/adminlevel/ert_station/royal_marines_station) "PC" = ( /obj/effect/decal/warning_stripes{ @@ -2244,10 +1796,7 @@ /obj/structure/platform{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/ert_station/royal_marines_station) "PD" = ( /obj/effect/decal/cleanable/dirt, @@ -2255,10 +1804,7 @@ id = "RMC_Pub_brig"; pixel_x = -29 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/almayer/red/west, /area/adminlevel/ert_station/royal_marines_station) "PL" = ( /obj/structure/bed/chair/comfy{ @@ -2279,10 +1825,7 @@ dir = 10; layer = 3.51 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/ert_station/royal_marines_station) "PN" = ( /obj/structure/machinery/light{ @@ -2294,31 +1837,23 @@ /obj/structure/machinery/cm_vending/sorted/medical/chemistry/no_access{ req_access = null }, -/turf/open/floor/almayer{ - icon_state = "sterile_green" - }, +/turf/open/floor/almayer/sterile_green, /area/adminlevel/ert_station/royal_marines_station) "PU" = ( /obj/structure/machinery/medical_pod/autodoc, -/turf/open/floor/almayer{ - icon_state = "sterile_green" - }, +/turf/open/floor/almayer/sterile_green, /area/adminlevel/ert_station/royal_marines_station) "PY" = ( /obj/structure/bed/chair/comfy{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/ert_station/royal_marines_station) "Qi" = ( /obj/structure/machinery/cm_vending/sorted/medical/no_access{ req_access = null }, -/turf/open/floor/almayer{ - icon_state = "sterile_green" - }, +/turf/open/floor/almayer/sterile_green, /area/adminlevel/ert_station/royal_marines_station) "Qj" = ( /obj/structure/window/framed/almayer, @@ -2348,9 +1883,7 @@ pixel_x = -1 }, /obj/structure/machinery/cm_vending/clothing/antag, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/ert_station/royal_marines_station) "Rw" = ( /obj/structure/platform{ @@ -2361,22 +1894,15 @@ }, /area/adminlevel/ert_station/royal_marines_station) "Ry" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/almayer/red/north, /area/adminlevel/ert_station/royal_marines_station) "RF" = ( -/turf/open/floor/almayer{ - icon_state = "orange" - }, +/turf/open/floor/almayer/orange, /area/adminlevel/ert_station/royal_marines_station) "RH" = ( /obj/structure/largecrate/machine, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/ert_station/royal_marines_station) "Sb" = ( /obj/docking_port/stationary/emergency_response/idle_port6, @@ -2393,9 +1919,7 @@ /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/ert_station/royal_marines_station) "Sd" = ( /turf/closed/wall/r_wall/elevator{ @@ -2407,15 +1931,11 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/ert_station/royal_marines_station) "Sv" = ( /obj/structure/surface/table/almayer, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/ert_station/royal_marines_station) "Sw" = ( /turf/closed/shuttle/twe_dropship{ @@ -2429,9 +1949,7 @@ /area/adminlevel/ert_station/royal_marines_station) "SY" = ( /obj/structure/machinery/cm_vending/sorted/medical/chemistry/no_access, -/turf/open/floor/almayer{ - icon_state = "sterile_green" - }, +/turf/open/floor/almayer/sterile_green, /area/adminlevel/ert_station/royal_marines_station) "Tf" = ( /obj/structure/surface/table/almayer, @@ -2459,9 +1977,7 @@ /area/adminlevel/ert_station/royal_marines_station) "TY" = ( /obj/structure/machinery/cm_vending/sorted/marine_food, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/ert_station/royal_marines_station) "Ub" = ( /obj/structure/platform, @@ -2477,9 +1993,7 @@ /area/adminlevel/ert_station/royal_marines_station) "Uc" = ( /obj/structure/largecrate/machine, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/ert_station/royal_marines_station) "Uk" = ( /obj/structure/platform, @@ -2499,33 +2013,23 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/ert_station/royal_marines_station) "Up" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/northwest, /area/adminlevel/ert_station/royal_marines_station) "Uq" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/adminlevel/ert_station/royal_marines_station) "Ur" = ( /turf/open/floor/plating/plating_catwalk, /area/adminlevel/ert_station/royal_marines_station) "Ut" = ( -/turf/open/floor/almayer{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/almayer/red/northwest, /area/adminlevel/ert_station/royal_marines_station) "Uv" = ( /obj/structure/bed/chair/comfy{ @@ -2538,9 +2042,7 @@ /obj/structure/toilet{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/adminlevel/ert_station/royal_marines_station) "UH" = ( /turf/closed/wall/r_wall/elevator{ @@ -2550,15 +2052,11 @@ "UJ" = ( /obj/structure/largecrate/random/barrel/blue, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/ert_station/royal_marines_station) "UT" = ( /obj/structure/closet/emcloset, -/turf/open/floor/almayer{ - icon_state = "sterile_green" - }, +/turf/open/floor/almayer/sterile_green, /area/adminlevel/ert_station/royal_marines_station) "UV" = ( /obj/effect/decal/warning_stripes{ @@ -2569,9 +2067,7 @@ icon_state = "N"; pixel_y = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/ert_station/royal_marines_station) "UZ" = ( /obj/structure/surface/table/almayer, @@ -2587,10 +2083,7 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/northeast, /area/adminlevel/ert_station/royal_marines_station) "Vu" = ( /turf/closed/shuttle/twe_dropship{ @@ -2603,18 +2096,13 @@ pixel_y = 1 }, /obj/structure/platform, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/ert_station/royal_marines_station) "VA" = ( /obj/structure/surface/table/almayer, /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/faxmachine/uscm/brig, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/ert_station/royal_marines_station) "VF" = ( /obj/effect/decal/warning_stripes{ @@ -2627,16 +2115,11 @@ /obj/structure/platform_decoration{ dir = 10 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/ert_station/royal_marines_station) "VG" = ( /obj/structure/machinery/cm_vending/sorted/medical/blood, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/adminlevel/ert_station/royal_marines_station) "VH" = ( /obj/structure/machinery/light{ @@ -2651,31 +2134,25 @@ /obj/item/device/flash{ pixel_y = -8 }, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, +/turf/open/floor/almayer/redfull, /area/adminlevel/ert_station/royal_marines_station) "VL" = ( /obj/structure/surface/table/almayer, /obj/item/clothing/suit/straight_jacket, -/obj/item/handcuffs{ +/obj/item/restraint/handcuffs{ pixel_x = -4; pixel_y = 1 }, -/obj/item/handcuffs, +/obj/item/restraint/handcuffs, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, +/turf/open/floor/almayer/redfull, /area/adminlevel/ert_station/royal_marines_station) "Wa" = ( /obj/structure/surface/table/almayer, /obj/item/device/flashlight/lamp/green{ pixel_x = 6 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/ert_station/royal_marines_station) "We" = ( /obj/effect/decal/warning_stripes{ @@ -2695,9 +2172,7 @@ icon_state = "NW-out"; pixel_y = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/ert_station/royal_marines_station) "Wo" = ( /obj/effect/decal/warning_stripes{ @@ -2712,10 +2187,7 @@ dir = 6; layer = 3.51 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/ert_station/royal_marines_station) "Wt" = ( /obj/effect/decal/warning_stripes{ @@ -2730,10 +2202,7 @@ /obj/structure/platform_decoration{ dir = 5 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/ert_station/royal_marines_station) "Wx" = ( /obj/structure/bed/chair/comfy{ @@ -2760,18 +2229,13 @@ /area/adminlevel/ert_station/royal_marines_station) "WC" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "cargo_arrow" - }, +/turf/open/floor/almayer/cargo_arrow/east, /area/adminlevel/ert_station/royal_marines_station) "WD" = ( /obj/structure/surface/table/almayer, /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/recharger, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/ert_station/royal_marines_station) "WI" = ( /obj/structure/closet/secure_closet/brig{ @@ -2785,9 +2249,7 @@ /obj/item/clothing/under/color/orange, /obj/item/clothing/under/color/orange, /obj/item/clothing/under/color/orange, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/ert_station/royal_marines_station) "WL" = ( /turf/closed/shuttle/twe_dropship{ @@ -2798,10 +2260,7 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/north, /area/adminlevel/ert_station/royal_marines_station) "WS" = ( /turf/closed/wall/almayer, @@ -2815,9 +2274,7 @@ icon_state = "N"; pixel_y = 2 }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/adminlevel/ert_station/royal_marines_station) "WY" = ( /obj/structure/platform{ @@ -2840,27 +2297,18 @@ /obj/structure/toilet{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/adminlevel/ert_station/royal_marines_station) "Xe" = ( /obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "orange" - }, +/turf/open/floor/almayer/orange, /area/adminlevel/ert_station/royal_marines_station) "Xh" = ( -/turf/open/floor/almayer{ - icon_state = "redfull" - }, +/turf/open/floor/almayer/redfull, /area/adminlevel/ert_station/royal_marines_station) "Xz" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "orange" - }, +/turf/open/floor/almayer/orange/southwest, /area/adminlevel/ert_station/royal_marines_station) "XB" = ( /obj/structure/sink{ @@ -2873,15 +2321,11 @@ /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/adminlevel/ert_station/royal_marines_station) "XF" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/ert_station/royal_marines_station) "XN" = ( /obj/effect/decal/warning_stripes{ @@ -2891,9 +2335,7 @@ icon_state = "N"; pixel_y = 2 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/ert_station/royal_marines_station) "XT" = ( /obj/structure/machinery/door_control/brbutton{ @@ -2906,42 +2348,29 @@ pixel_x = 25; pixel_y = 8 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/almayer/red/east, /area/adminlevel/ert_station/royal_marines_station) "XV" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - icon_state = "cargo_arrow" - }, +/turf/open/floor/almayer/cargo_arrow, /area/adminlevel/ert_station/royal_marines_station) "Yk" = ( /obj/structure/machinery/autodoc_console, -/turf/open/floor/almayer{ - icon_state = "sterile_green" - }, +/turf/open/floor/almayer/sterile_green, /area/adminlevel/ert_station/royal_marines_station) "YI" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/body_scanconsole, -/turf/open/floor/almayer{ - icon_state = "sterile_green" - }, +/turf/open/floor/almayer/sterile_green, /area/adminlevel/ert_station/royal_marines_station) "YZ" = ( /obj/structure/platform_decoration{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/adminlevel/ert_station/royal_marines_station) "Zf" = ( -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/adminlevel/ert_station/royal_marines_station) "Zk" = ( /obj/effect/decal/warning_stripes{ @@ -2954,15 +2383,10 @@ /obj/structure/platform_decoration{ dir = 6 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, +/turf/open/floor/almayer/plating/northeast, /area/adminlevel/ert_station/royal_marines_station) "Zl" = ( -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/light_grey_single_wide_up_to_down, /area/adminlevel/ert_station/royal_marines_station) "Zx" = ( /obj/structure/surface/table/almayer, @@ -2971,9 +2395,7 @@ pixel_y = 6 }, /obj/item/storage/box/syringes, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, +/turf/open/floor/almayer/dark_sterile, /area/adminlevel/ert_station/royal_marines_station) "ZA" = ( /obj/structure/bed/chair/comfy, @@ -2994,9 +2416,7 @@ pixel_x = -1; pixel_y = 2 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/ert_station/royal_marines_station) (1,1,1) = {" diff --git a/maps/templates/upp_ert_station.dmm b/maps/templates/lazy_templates/upp_ert_station.dmm similarity index 79% rename from maps/templates/upp_ert_station.dmm rename to maps/templates/lazy_templates/upp_ert_station.dmm index ae2a8ad40c47..2a210d5969da 100644 --- a/maps/templates/upp_ert_station.dmm +++ b/maps/templates/lazy_templates/upp_ert_station.dmm @@ -12,10 +12,7 @@ pixel_x = 16; pixel_y = 13 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/adminlevel/ert_station/upp_station) "ag" = ( /obj/structure/largecrate/random/barrel/blue, @@ -25,10 +22,7 @@ /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "green3"; - dir = 8 - }, +/turf/open/floor/strata/green3/west, /area/adminlevel/ert_station/upp_station) "au" = ( /obj/structure/platform/kutjevo/smooth{ @@ -44,26 +38,17 @@ /obj/item/tool/weldpack{ pixel_x = -2 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/adminlevel/ert_station/upp_station) "ay" = ( /obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/prison{ - dir = 8; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/west, /area/adminlevel/ert_station/upp_station) "aA" = ( /obj/structure/bed/chair/comfy/lime{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "green3"; - dir = 4 - }, +/turf/open/floor/strata/green3/east, /area/adminlevel/ert_station/upp_station) "aF" = ( /obj/structure/surface/table/reinforced/prison, @@ -72,15 +57,10 @@ pixel_x = 8 }, /obj/item/storage/box/drinkingglasses, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/adminlevel/ert_station/upp_station) "aH" = ( -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/adminlevel/ert_station/upp_station) "aO" = ( /obj/structure/machinery/cm_vending/sorted/medical/wall_med{ @@ -94,25 +74,16 @@ density = 0; pixel_x = 32 }, -/turf/open/floor/strata{ - icon_state = "blue3"; - dir = 1 - }, +/turf/open/floor/strata/blue3/north, /area/adminlevel/ert_station/upp_station) "aP" = ( /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/strata{ - icon_state = "green4"; - dir = 4 - }, +/turf/open/floor/strata/green4/east, /area/adminlevel/ert_station/upp_station) "aS" = ( -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan4" - }, +/turf/open/floor/strata/white_cyan4/east, /area/adminlevel/ert_station/upp_station) "aV" = ( /obj/item/stack/catwalk, @@ -138,25 +109,16 @@ /obj/structure/machinery/light/double/blue{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "green3"; - dir = 8 - }, +/turf/open/floor/strata/green3/west, /area/adminlevel/ert_station/upp_station) "bd" = ( -/turf/open/floor/strata{ - icon_state = "green3"; - dir = 4 - }, +/turf/open/floor/strata/green3/east, /area/adminlevel/ert_station/upp_station) "bh" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/adminlevel/ert_station/upp_station) "bi" = ( /obj/effect/decal/strata_decals/catwalk/prison, @@ -167,10 +129,7 @@ /turf/open/floor/plating, /area/adminlevel/ert_station/upp_station) "bk" = ( -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan3" - }, +/turf/open/floor/strata/white_cyan3/west, /area/adminlevel/ert_station/upp_station) "bp" = ( /obj/structure/machinery/shower{ @@ -179,33 +138,22 @@ /obj/structure/machinery/light/double/blue{ dir = 8 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/adminlevel/ert_station/upp_station) "bM" = ( /obj/structure/machinery/power/apc/antag{ dir = 1 }, -/turf/open/floor/strata{ - icon_state = "green4" - }, +/turf/open/floor/strata/green4, /area/adminlevel/ert_station/upp_station) "bY" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/recharger, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/adminlevel/ert_station/upp_station) "ce" = ( /obj/structure/largecrate/random/barrel/green, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/adminlevel/ert_station/upp_station) "cj" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ @@ -215,26 +163,17 @@ icon_state = "E"; pixel_x = 1 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/adminlevel/ert_station/upp_station) "cl" = ( /obj/structure/largecrate/random/barrel/red, -/turf/open/floor/prison{ - dir = 8; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/west, /area/adminlevel/ert_station/upp_station) "cs" = ( /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "green3"; - dir = 8 - }, +/turf/open/floor/strata/green3/west, /area/adminlevel/ert_station/upp_station) "cC" = ( /obj/effect/decal/strata_decals/catwalk/prison, @@ -253,18 +192,12 @@ pixel_y = 13 }, /obj/structure/largecrate/random/secure, -/turf/open/floor/prison{ - dir = 8; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/west, /area/adminlevel/ert_station/upp_station) "cO" = ( /obj/effect/decal/strata_decals/catwalk/prison, /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/adminlevel/ert_station/upp_station) "da" = ( /turf/closed/shuttle/elevator{ @@ -292,9 +225,7 @@ /obj/structure/machinery/light/double/blue{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/adminlevel/ert_station/upp_station) "di" = ( /obj/structure/platform_decoration/kutjevo{ @@ -305,32 +236,21 @@ /area/space) "dz" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/adminlevel/ert_station/upp_station) "dB" = ( -/turf/open/floor/strata{ - icon_state = "green4" - }, +/turf/open/floor/strata/green4, /area/adminlevel/ert_station/upp_station) "dH" = ( /obj/structure/largecrate/random/secure, /obj/structure/machinery/light/double/blue, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/adminlevel/ert_station/upp_station) "dK" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/marine/colony{ name = "Station Hallway" }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/adminlevel/ert_station/upp_station) "dL" = ( /obj/structure/surface/table/reinforced/prison, @@ -342,10 +262,7 @@ pixel_x = -6; pixel_y = 5 }, -/turf/open/floor/strata{ - icon_state = "green4"; - dir = 1 - }, +/turf/open/floor/strata/green4/north, /area/adminlevel/ert_station/upp_station) "dW" = ( /obj/effect/decal/strata_decals/catwalk/prison, @@ -355,20 +272,14 @@ /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "green3"; - dir = 8 - }, +/turf/open/floor/strata/green3/west, /area/adminlevel/ert_station/upp_station) "ev" = ( /obj/item/tool/wet_sign, /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/strata{ - dir = 2; - icon_state = "red3" - }, +/turf/open/floor/strata/red3/south, /area/adminlevel/ert_station/upp_station) "eT" = ( /obj/structure/surface/table/reinforced/prison, @@ -381,19 +292,14 @@ pixel_x = -5 }, /obj/item/reagent_container/food/drinks/bottle/vodka, -/turf/open/floor/strata{ - icon_state = "green3"; - dir = 4 - }, +/turf/open/floor/strata/green3/east, /area/adminlevel/ert_station/upp_station) "eU" = ( /obj/effect/decal/strata_decals/catwalk/prison, /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 6 }, -/turf/open/floor/prison{ - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2, /area/adminlevel/ert_station/upp_station) "eV" = ( /obj/structure/platform_decoration/kutjevo, @@ -411,10 +317,7 @@ pixel_x = -8; pixel_y = 18 }, -/turf/open/floor/strata{ - icon_state = "green4"; - dir = 1 - }, +/turf/open/floor/strata/green4/north, /area/adminlevel/ert_station/upp_station) "eY" = ( /obj/structure/barricade/handrail{ @@ -447,10 +350,7 @@ dir = 4; pixel_y = 13 }, -/turf/open/floor/strata{ - icon_state = "green3"; - dir = 4 - }, +/turf/open/floor/strata/green3/east, /area/adminlevel/ert_station/upp_station) "fi" = ( /obj/structure/machinery/door/airlock/almayer/medical/colony{ @@ -460,19 +360,13 @@ /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/adminlevel/ert_station/upp_station) "fk" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "purp3"; - dir = 4 - }, +/turf/open/floor/strata/purp3/east, /area/adminlevel/ert_station/upp_station) "fA" = ( /obj/effect/decal/warning_stripes{ @@ -486,18 +380,13 @@ /obj/structure/target{ name = "punching bag" }, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/adminlevel/ert_station/upp_station) "fK" = ( /obj/structure/machinery/light/double/blue{ dir = 1 }, -/turf/open/floor/strata{ - icon_state = "green4"; - dir = 8 - }, +/turf/open/floor/strata/green4/west, /area/adminlevel/ert_station/upp_station) "fM" = ( /obj/structure/girder/reinforced, @@ -508,39 +397,25 @@ pixel_x = -1; pixel_y = 13 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/adminlevel/ert_station/upp_station) "fW" = ( /obj/structure/largecrate/random/barrel/yellow, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/adminlevel/ert_station/upp_station) "ge" = ( /obj/structure/closet/boxinggloves, -/turf/open/asphalt/cement{ - icon_state = "cement9" - }, +/turf/open/asphalt/cement/cement9, /area/adminlevel/ert_station/upp_station) "gf" = ( /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/adminlevel/ert_station/upp_station) "gt" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 5 }, -/turf/open/floor/strata{ - dir = 2; - icon_state = "white_cyan4" - }, +/turf/open/floor/strata/white_cyan4/south, /area/adminlevel/ert_station/upp_station) "gx" = ( /obj/structure/platform_decoration/strata/metal{ @@ -558,19 +433,13 @@ /area/adminlevel/ert_station/upp_station) "hg" = ( /obj/structure/machinery/body_scanconsole, -/turf/open/floor/strata{ - dir = 1; - icon_state = "white_cyan3" - }, +/turf/open/floor/strata/white_cyan3/north, /area/adminlevel/ert_station/upp_station) "hj" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/marine/colony{ name = "Shuttle Bay" }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/adminlevel/ert_station/upp_station) "hA" = ( /obj/structure/platform_decoration/kutjevo{ @@ -580,24 +449,17 @@ /turf/open/space/basic, /area/space) "hF" = ( -/turf/open/floor/strata{ - icon_state = "green4"; - dir = 8 - }, +/turf/open/floor/strata/green4/west, /area/adminlevel/ert_station/upp_station) "hM" = ( -/turf/open/floor/strata{ - icon_state = "damaged3" - }, +/turf/open/floor/strata/damaged3, /area/adminlevel/ert_station/upp_station) "hO" = ( /obj/structure/prop/invuln/overhead_pipe{ pixel_x = 12; pixel_y = 12 }, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/adminlevel/ert_station/upp_station) "hV" = ( /obj/effect/decal/strata_decals/catwalk/prison, @@ -612,10 +474,7 @@ /area/adminlevel/ert_station/upp_station) "ia" = ( /obj/structure/reagent_dispensers/watertank, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/adminlevel/ert_station/upp_station) "ie" = ( /obj/structure/machinery/light/double/blue{ @@ -624,64 +483,42 @@ pixel_x = -10 }, /obj/structure/machinery/portable_atmospherics/canister/phoron, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/adminlevel/ert_station/upp_station) "iB" = ( -/turf/open/floor/strata{ - dir = 10; - icon_state = "white_cyan3" - }, +/turf/open/floor/strata/white_cyan3/southwest, /area/adminlevel/ert_station/upp_station) "iJ" = ( /obj/structure/closet/secure_closet/brig{ name = "Spare Prison Uniforms"; req_one_access = null }, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/turf/open/floor/strata/red1, /area/adminlevel/ert_station/upp_station) "iM" = ( /obj/structure/machinery/door/airlock/almayer/security/colony{ dir = 8; name = "\improper Brig Cell" }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/adminlevel/ert_station/upp_station) "iV" = ( -/turf/open/floor/strata{ - icon_state = "green3"; - dir = 9 - }, +/turf/open/floor/strata/green3/northwest, /area/adminlevel/ert_station/upp_station) "jc" = ( -/turf/open/floor/strata{ - dir = 8; - icon_state = "red3" - }, +/turf/open/floor/strata/red3/west, /area/adminlevel/ert_station/upp_station) "jg" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/computer/communications{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "green4"; - dir = 8 - }, +/turf/open/floor/strata/green4/west, /area/adminlevel/ert_station/upp_station) "jh" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/storage/box/bodybags, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/adminlevel/ert_station/upp_station) "jt" = ( /obj/structure/lattice, @@ -697,25 +534,16 @@ /area/adminlevel/ert_station/upp_station) "kc" = ( /obj/effect/decal/cleanable/blood/drip, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/adminlevel/ert_station/upp_station) "kf" = ( -/turf/open/floor/strata{ - dir = 9; - icon_state = "white_cyan3" - }, +/turf/open/floor/strata/white_cyan3/northwest, /area/adminlevel/ert_station/upp_station) "ks" = ( /obj/structure/machinery/light/double/blue{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "green4"; - dir = 4 - }, +/turf/open/floor/strata/green4/east, /area/adminlevel/ert_station/upp_station) "kF" = ( /obj/structure/reagent_dispensers/water_cooler/walk_past{ @@ -724,9 +552,7 @@ /obj/structure/barricade/handrail/wire{ dir = 8 }, -/turf/open/asphalt/cement{ - icon_state = "cement2" - }, +/turf/open/asphalt/cement/cement2, /area/adminlevel/ert_station/upp_station) "kN" = ( /obj/item/tool/weldingtool, @@ -742,19 +568,13 @@ pixel_x = -12; pixel_y = 13 }, -/turf/open/floor/strata{ - icon_state = "purp3"; - dir = 4 - }, +/turf/open/floor/strata/purp3/east, /area/adminlevel/ert_station/upp_station) "kT" = ( /obj/structure/surface/rack, /obj/item/clothing/gloves/yellow, /obj/item/storage/toolbox/mechanical, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/adminlevel/ert_station/upp_station) "lb" = ( /obj/effect/decal/warning_stripes{ @@ -780,10 +600,7 @@ dir = 4 }, /obj/structure/largecrate/black_market/confiscated_weaponry, -/turf/open/floor/prison{ - dir = 8; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/west, /area/adminlevel/ert_station/upp_station) "lo" = ( /obj/effect/decal/strata_decals/catwalk/prison, @@ -802,17 +619,12 @@ /area/adminlevel/ert_station/upp_station) "lp" = ( /obj/structure/machinery/light/double/blue, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan4" - }, +/turf/open/floor/strata/white_cyan4/east, /area/adminlevel/ert_station/upp_station) "lw" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/facepaint/black, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/adminlevel/ert_station/upp_station) "mb" = ( /obj/structure/machinery/light/double/blue{ @@ -821,37 +633,27 @@ pixel_y = -1 }, /obj/structure/closet/crate/ammo/alt, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/adminlevel/ert_station/upp_station) "me" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/clothing/suit/straight_jacket, -/obj/item/handcuffs{ +/obj/item/restraint/handcuffs{ pixel_x = -4; pixel_y = 1 }, -/obj/item/handcuffs, -/turf/open/floor/strata{ - icon_state = "red1" - }, +/obj/item/restraint/handcuffs, +/turf/open/floor/strata/red1, /area/adminlevel/ert_station/upp_station) "mf" = ( /obj/structure/machinery/cm_vending/sorted/medical/blood{ req_access = null }, -/turf/open/floor/strata{ - dir = 1; - icon_state = "white_cyan3" - }, +/turf/open/floor/strata/white_cyan3/north, /area/adminlevel/ert_station/upp_station) "mq" = ( /obj/structure/closet/secure_closet/freezer/meat, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/adminlevel/ert_station/upp_station) "mr" = ( /obj/effect/decal/strata_decals/catwalk/prison, @@ -882,9 +684,7 @@ phone_id = "UPP Station"; do_not_disturb = 2 }, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/adminlevel/ert_station/upp_station) "mJ" = ( /obj/structure/lattice, @@ -896,17 +696,11 @@ dir = 1 }, /obj/structure/surface/table/reinforced/almayer_B, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/adminlevel/ert_station/upp_station) "ne" = ( /obj/structure/largecrate/random/case/double, -/turf/open/floor/strata{ - icon_state = "orange_icorner"; - dir = 1 - }, +/turf/open/floor/strata/orange_icorner/north, /area/adminlevel/ert_station/upp_station) "nh" = ( /obj/structure/surface/table/reinforced/black, @@ -919,9 +713,7 @@ pixel_x = -10; pixel_y = 13 }, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/adminlevel/ert_station/upp_station) "nC" = ( /obj/effect/decal/strata_decals/catwalk/prison, @@ -935,18 +727,13 @@ /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/adminlevel/ert_station/upp_station) "om" = ( /obj/structure/bed/chair{ dir = 8 }, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/adminlevel/ert_station/upp_station) "ow" = ( /obj/item/stack/catwalk, @@ -954,10 +741,7 @@ /turf/open/floor/plating, /area/adminlevel/ert_station/upp_station) "oz" = ( -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan1" - }, +/turf/open/floor/strata/cyan1/east, /area/adminlevel/ert_station/upp_station) "oJ" = ( /obj/structure/window/reinforced{ @@ -986,16 +770,11 @@ /obj/item/bedsheet/brown{ layer = 3.2 }, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/adminlevel/ert_station/upp_station) "oK" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/comdoor/colony, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/adminlevel/ert_station/upp_station) "oP" = ( /obj/structure/platform/kutjevo/smooth{ @@ -1016,10 +795,7 @@ /turf/open/space/basic, /area/space) "pb" = ( -/turf/open/floor/strata{ - dir = 2; - icon_state = "white_cyan3" - }, +/turf/open/floor/strata/white_cyan3/south, /area/adminlevel/ert_station/upp_station) "pc" = ( /obj/structure/bed/chair/comfy/lime{ @@ -1028,10 +804,7 @@ /obj/structure/machinery/light/double/blue{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "green3"; - dir = 4 - }, +/turf/open/floor/strata/green3/east, /area/adminlevel/ert_station/upp_station) "pe" = ( /obj/structure/girder/displaced, @@ -1048,10 +821,7 @@ /area/adminlevel/ert_station/upp_station) "pv" = ( /obj/effect/decal/strata_decals/catwalk/prison, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/adminlevel/ert_station/upp_station) "pK" = ( /obj/structure/monorail{ @@ -1070,18 +840,13 @@ /obj/structure/machinery/bioprinter{ stored_metal = 1000 }, -/turf/open/floor/strata{ - dir = 1; - icon_state = "white_cyan4" - }, +/turf/open/floor/strata/white_cyan4/north, /area/adminlevel/ert_station/upp_station) "qi" = ( /obj/structure/bed/chair/office/light{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "green3" - }, +/turf/open/floor/strata/green3, /area/adminlevel/ert_station/upp_station) "qA" = ( /obj/effect/decal/strata_decals/catwalk/prison, @@ -1096,24 +861,16 @@ /obj/structure/machinery/cm_vending/sorted/medical/no_access{ req_access = null }, -/turf/open/floor/strata{ - dir = 1; - icon_state = "white_cyan3" - }, +/turf/open/floor/strata/white_cyan3/north, /area/adminlevel/ert_station/upp_station) "qH" = ( -/turf/open/floor/strata{ - icon_state = "floorscorched2" - }, +/turf/open/floor/strata/floorscorched2, /area/adminlevel/ert_station/upp_station) "qM" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/medidoor{ dir = 1 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/adminlevel/ert_station/upp_station) "qU" = ( /turf/closed/shuttle/elevator, @@ -1122,10 +879,7 @@ /obj/structure/machinery/light/double/blue{ dir = 4 }, -/turf/open/floor/strata{ - dir = 1; - icon_state = "red3" - }, +/turf/open/floor/strata/red3/north, /area/adminlevel/ert_station/upp_station) "rb" = ( /turf/open/floor/plating, @@ -1138,28 +892,20 @@ /obj/structure/machinery/light/double/blue{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/adminlevel/ert_station/upp_station) "rk" = ( /obj/structure/machinery/cryopod/right{ pixel_y = 6 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/west, /area/adminlevel/ert_station/upp_station) "rr" = ( /obj/effect/decal/strata_decals/catwalk/prison, /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 9 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/adminlevel/ert_station/upp_station) "rs" = ( /obj/structure/disposalpipe/segment{ @@ -1172,26 +918,18 @@ /area/adminlevel/ert_station/upp_station) "ry" = ( /obj/structure/machinery/medical_pod/bodyscanner, -/turf/open/floor/strata{ - dir = 1; - icon_state = "white_cyan3" - }, +/turf/open/floor/strata/white_cyan3/north, /area/adminlevel/ert_station/upp_station) "rC" = ( /obj/structure/closet/crate/ammo, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/adminlevel/ert_station/upp_station) "rL" = ( /obj/structure/machinery/light/double/blue{ dir = 8 }, /obj/structure/machinery/floodlight, -/turf/open/floor/prison{ - dir = 8; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/west, /area/adminlevel/ert_station/upp_station) "rT" = ( /obj/effect/decal/strata_decals/catwalk/prison, @@ -1210,10 +948,7 @@ pixel_y = -32; density = 0 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "blue3" - }, +/turf/open/floor/strata/blue3/west, /area/adminlevel/ert_station/upp_station) "sb" = ( /obj/effect/decal/strata_decals/catwalk/prison, @@ -1224,18 +959,14 @@ /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 9 }, -/turf/open/floor/prison{ - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2, /area/adminlevel/ert_station/upp_station) "sk" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, /obj/item/tool/pickaxe/diamonddrill, -/turf/open/floor/plating{ - icon_state = "platebot" - }, +/turf/open/floor/plating/platebot, /area/adminlevel/ert_station/upp_station) "sr" = ( /obj/structure/lattice, @@ -1246,17 +977,13 @@ /area/space) "sy" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor/strata{ - icon_state = "damaged3" - }, +/turf/open/floor/strata/damaged3, /area/adminlevel/ert_station/upp_station) "sz" = ( /obj/structure/machinery/light/double/blue{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "floorscorched2" - }, +/turf/open/floor/strata/floorscorched2, /area/adminlevel/ert_station/upp_station) "sA" = ( /obj/effect/decal/warning_stripes{ @@ -1288,17 +1015,13 @@ pixel_y = -1 }, /obj/structure/closet/crate/trashcart, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/adminlevel/ert_station/upp_station) "sK" = ( /obj/structure/machinery/optable, /obj/item/tank/anesthetic, /obj/effect/decal/cleanable/blood, -/turf/open/floor/strata{ - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2, /area/adminlevel/ert_station/upp_station) "sU" = ( /obj/structure/window/framed/strata, @@ -1318,19 +1041,13 @@ /obj/structure/machinery/light/double/blue{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "green4"; - dir = 1 - }, +/turf/open/floor/strata/green4/north, /area/adminlevel/ert_station/upp_station) "tr" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "green3"; - dir = 4 - }, +/turf/open/floor/strata/green3/east, /area/adminlevel/ert_station/upp_station) "tv" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ @@ -1344,29 +1061,20 @@ /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 5 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/adminlevel/ert_station/upp_station) "tF" = ( /obj/structure/prop/invuln/overhead_pipe{ dir = 4; pixel_y = 13 }, -/turf/open/floor/strata{ - icon_state = "green3"; - dir = 8 - }, +/turf/open/floor/strata/green3/west, /area/adminlevel/ert_station/upp_station) "tG" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/adminlevel/ert_station/upp_station) "ue" = ( /obj/structure/lattice, @@ -1382,31 +1090,21 @@ /area/space) "uf" = ( /obj/structure/machinery/blackbox_recorder, -/turf/open/floor/strata{ - icon_state = "green1" - }, +/turf/open/floor/strata/green1, /area/adminlevel/ert_station/upp_station) "uj" = ( -/turf/open/floor/strata{ - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2, /area/adminlevel/ert_station/upp_station) "uE" = ( /obj/structure/platform_decoration/strata/metal, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/adminlevel/ert_station/upp_station) "uI" = ( /obj/effect/decal/strata_decals/catwalk/prison, /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/adminlevel/ert_station/upp_station) "uL" = ( /obj/structure/platform/kutjevo/smooth, @@ -1429,28 +1127,17 @@ pixel_x = -12; pixel_y = 13 }, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/adminlevel/ert_station/upp_station) "va" = ( /obj/structure/closet/crate/ammo/alt/flame, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/adminlevel/ert_station/upp_station) "ve" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/west, /area/adminlevel/ert_station/upp_station) "vn" = ( -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/adminlevel/ert_station/upp_station) "vo" = ( /obj/structure/disposalpipe/segment{ @@ -1461,24 +1148,16 @@ /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 6 }, -/turf/open/floor/prison{ - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2, /area/adminlevel/ert_station/upp_station) "vw" = ( -/turf/open/floor/strata{ - dir = 1; - icon_state = "red3" - }, +/turf/open/floor/strata/red3/north, /area/adminlevel/ert_station/upp_station) "vH" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/trash/plate, /obj/item/reagent_container/food/snacks/upp, -/turf/open/floor/strata{ - icon_state = "green3"; - dir = 4 - }, +/turf/open/floor/strata/green3/east, /area/adminlevel/ert_station/upp_station) "vK" = ( /obj/structure/disposalpipe/segment{ @@ -1496,10 +1175,7 @@ /area/space) "vY" = ( /obj/structure/machinery/washing_machine, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/adminlevel/ert_station/upp_station) "vZ" = ( /obj/structure/platform/kutjevo/smooth{ @@ -1520,10 +1196,7 @@ /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/adminlevel/ert_station/upp_station) "wr" = ( /obj/structure/platform/strata/metal{ @@ -1541,11 +1214,7 @@ /turf/open/floor/plating, /area/adminlevel/ert_station/upp_station) "ws" = ( -/turf/open/floor{ - desc = "A sophisticated device that captures and converts light from the system's star into energy for the station."; - icon_state = "solarpanel"; - name = "solarpanel" - }, +/turf/open/floor/solarpanel, /area/space) "wu" = ( /obj/effect/decal/warning_stripes{ @@ -1554,10 +1223,7 @@ /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/adminlevel/ert_station/upp_station) "wA" = ( /obj/structure/machinery/light/double/blue{ @@ -1572,9 +1238,7 @@ desc = "A remote control-switch for the elevator. This one seems broken." }, /obj/structure/closet/crate/ammo, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/adminlevel/ert_station/upp_station) "wS" = ( /obj/structure/prop/invuln/overhead_pipe{ @@ -1584,19 +1248,14 @@ /obj/structure/machinery/cm_vending/sorted/medical/wall_med{ pixel_y = 25 }, -/turf/open/floor/strata{ - icon_state = "green3" - }, +/turf/open/floor/strata/green3, /area/adminlevel/ert_station/upp_station) "wY" = ( /obj/structure/pipes/standard/simple/hidden/cyan, /obj/structure/machinery/door/airlock/multi_tile/almayer/marine/colony{ name = "Station Hallway" }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/adminlevel/ert_station/upp_station) "xj" = ( /obj/structure/girder, @@ -1608,24 +1267,16 @@ dir = 8 }, /obj/item/storage/toolbox/electrical, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/adminlevel/ert_station/upp_station) "xo" = ( /obj/structure/bed{ icon_state = "abed" }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/adminlevel/ert_station/upp_station) "xy" = ( -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer/test_floor4, /area/adminlevel/ert_station/upp_station) "xF" = ( /obj/structure/surface/table/reinforced/prison, @@ -1635,10 +1286,7 @@ icon_state = "N"; pixel_y = 2 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/adminlevel/ert_station/upp_station) "ya" = ( /obj/effect/decal/warning_stripes{ @@ -1657,9 +1305,7 @@ pixel_x = -9; pixel_y = 19 }, -/turf/open/floor/strata{ - icon_state = "green4" - }, +/turf/open/floor/strata/green4, /area/adminlevel/ert_station/upp_station) "yt" = ( /obj/structure/platform/kutjevo/smooth{ @@ -1668,16 +1314,11 @@ /turf/open/space, /area/space) "yH" = ( -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/adminlevel/ert_station/upp_station) "zr" = ( /obj/structure/machinery/photocopier, -/turf/open/floor/strata{ - icon_state = "green1" - }, +/turf/open/floor/strata/green1, /area/adminlevel/ert_station/upp_station) "zs" = ( /obj/effect/decal/warning_stripes{ @@ -1692,23 +1333,15 @@ /area/adminlevel/ert_station/upp_station) "zx" = ( /obj/structure/machinery/chem_master, -/turf/open/floor/strata{ - icon_state = "white_cyan3" - }, +/turf/open/floor/strata/white_cyan3, /area/adminlevel/ert_station/upp_station) "zK" = ( /obj/structure/closet/firecloset, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/adminlevel/ert_station/upp_station) "zL" = ( /obj/structure/largecrate/random/barrel/red, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/adminlevel/ert_station/upp_station) "zQ" = ( /obj/structure/prop/almayer/missile_tube{ @@ -1716,26 +1349,17 @@ name = "\improper AT-87 ASAT launcher system"; desc = "Cold launch tubes that can fire a few varieties of missiles out of them, the most common being the AT-87 ASAT 11K223 ?Spigot? missile used against satellites and other spacecraft and the 11K221 ?Konkurs? missile which is used for ground attack." }, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/adminlevel/ert_station/upp_station) "zX" = ( /obj/structure/bed/chair/comfy/lime{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "green3"; - dir = 8 - }, +/turf/open/floor/strata/green3/west, /area/adminlevel/ert_station/upp_station) "zY" = ( /obj/structure/bed/chair, -/turf/open/floor/strata{ - icon_state = "green3"; - dir = 8 - }, +/turf/open/floor/strata/green3/west, /area/adminlevel/ert_station/upp_station) "Ae" = ( /obj/structure/surface/table/reinforced/prison, @@ -1743,19 +1367,13 @@ pixel_y = 9; pixel_x = 4 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/adminlevel/ert_station/upp_station) "Ak" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/recharger, /obj/item/device/defibrillator, -/turf/open/floor/strata{ - dir = 1; - icon_state = "white_cyan3" - }, +/turf/open/floor/strata/white_cyan3/north, /area/adminlevel/ert_station/upp_station) "Au" = ( /obj/effect/decal/strata_decals/catwalk/prison, @@ -1773,10 +1391,7 @@ /area/adminlevel/ert_station/upp_station) "AI" = ( /obj/structure/closet/crate, -/turf/open/floor/strata{ - dir = 4; - icon_state = "orange_edge" - }, +/turf/open/floor/strata/orange_edge/east, /area/adminlevel/ert_station/upp_station) "AN" = ( /turf/open/space/basic, @@ -1798,17 +1413,13 @@ /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 9 }, -/turf/open/floor/prison{ - icon_state = "darkyellowfull2" - }, +/turf/open/floor/prison/darkyellowfull2, /area/adminlevel/ert_station/upp_station) "Be" = ( /obj/structure/filingcabinet{ layer = 2.9 }, -/turf/open/floor/strata{ - icon_state = "green1" - }, +/turf/open/floor/strata/green1, /area/adminlevel/ert_station/upp_station) "Bp" = ( /obj/effect/decal/strata_decals/catwalk/prison, @@ -1852,10 +1463,7 @@ pixel_y = 13 }, /obj/structure/largecrate/random/barrel/yellow, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/adminlevel/ert_station/upp_station) "Ce" = ( /obj/effect/decal/cleanable/blood/oil/streak, @@ -1863,9 +1471,7 @@ pixel_x = -6; pixel_y = 24 }, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/adminlevel/ert_station/upp_station) "Cp" = ( /turf/closed/wall/rock/brown, @@ -1875,10 +1481,7 @@ name = "Engineering"; dir = 1 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/adminlevel/ert_station/upp_station) "Cy" = ( /obj/structure/window/reinforced{ @@ -1907,31 +1510,21 @@ /obj/item/bedsheet/brown{ layer = 3.2 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/almayer/plate, /area/adminlevel/ert_station/upp_station) "CG" = ( /obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/adminlevel/ert_station/upp_station) "CI" = ( -/turf/open/floor/strata{ - dir = 4; - icon_state = "red3" - }, +/turf/open/floor/strata/red3/east, /area/adminlevel/ert_station/upp_station) "CM" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/engidoor/colony{ name = "\improper Elevator Airlock"; dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/adminlevel/ert_station/upp_station) "CW" = ( /obj/structure/machinery/cm_vending/sorted/medical/chemistry/no_access{ @@ -1940,17 +1533,11 @@ /obj/structure/machinery/light/double/blue{ dir = 1 }, -/turf/open/floor/strata{ - dir = 1; - icon_state = "white_cyan3" - }, +/turf/open/floor/strata/white_cyan3/north, /area/adminlevel/ert_station/upp_station) "Df" = ( /obj/structure/closet/firecloset, -/turf/open/floor/strata{ - icon_state = "green4"; - dir = 4 - }, +/turf/open/floor/strata/green4/east, /area/adminlevel/ert_station/upp_station) "Dv" = ( /turf/closed/wall/strata_outpost, @@ -1959,10 +1546,7 @@ /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - dir = 9; - icon_state = "white_cyan3" - }, +/turf/open/floor/strata/white_cyan3/northwest, /area/adminlevel/ert_station/upp_station) "DK" = ( /obj/structure/machinery/computer/emails{ @@ -1970,61 +1554,43 @@ }, /obj/structure/surface/table/reinforced/almayer_B, /obj/structure/machinery/light/double/blue, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/adminlevel/ert_station/upp_station) "Eg" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 9 }, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/adminlevel/ert_station/upp_station) "El" = ( /turf/closed/wall/strata_outpost/reinforced/hull, /area/adminlevel/ert_station/upp_station) "EA" = ( -/turf/open/floor/strata{ - icon_state = "green3"; - dir = 8 - }, +/turf/open/floor/strata/green3/west, /area/adminlevel/ert_station/upp_station) "ES" = ( /obj/structure/window/framed/strata/reinforced, /turf/open/floor/plating, /area/adminlevel/ert_station/upp_station) "EZ" = ( -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/adminlevel/ert_station/upp_station) "Fh" = ( /obj/structure/machinery/cm_vending/sorted/marine_food{ density = 0; pixel_y = 16 }, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/adminlevel/ert_station/upp_station) "Fj" = ( /obj/structure/surface/table/reinforced/black, /obj/item/folder/black, /obj/item/tool/pen, -/turf/open/floor/strata{ - icon_state = "green3" - }, +/turf/open/floor/strata/green3, /area/adminlevel/ert_station/upp_station) "FA" = ( /obj/effect/decal/strata_decals/catwalk/prison, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/adminlevel/ert_station/upp_station) "FF" = ( /obj/effect/decal/strata_decals/catwalk/prison, @@ -2034,36 +1600,24 @@ /area/adminlevel/ert_station/upp_station) "FI" = ( /obj/structure/bed/chair/comfy/black, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/adminlevel/ert_station/upp_station) "FJ" = ( /obj/effect/decal/warning_stripes{ icon_state = "N" }, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/adminlevel/ert_station/upp_station) "FL" = ( /obj/structure/surface/table/reinforced/black, /obj/item/device/megaphone, -/turf/open/floor/strata{ - icon_state = "green3"; - dir = 1 - }, +/turf/open/floor/strata/green3/north, /area/adminlevel/ert_station/upp_station) "FP" = ( /obj/structure/morgue{ dir = 8 }, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/adminlevel/ert_station/upp_station) "Ga" = ( /obj/effect/decal/strata_decals/catwalk/prison, @@ -2103,10 +1657,7 @@ /turf/open/space/basic, /area/space) "Gw" = ( -/turf/open/floor/strata{ - dir = 2; - icon_state = "red3" - }, +/turf/open/floor/strata/red3/south, /area/adminlevel/ert_station/upp_station) "GE" = ( /turf/closed/shuttle/elevator{ @@ -2132,10 +1683,7 @@ /area/adminlevel/ert_station/upp_station) "Hb" = ( /obj/structure/largecrate/supply, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/adminlevel/ert_station/upp_station) "Hc" = ( /obj/structure/platform_decoration/kutjevo{ @@ -2159,10 +1707,7 @@ /area/adminlevel/ert_station/upp_station) "Hp" = ( /obj/structure/machinery/light/double/blue, -/turf/open/floor/strata{ - icon_state = "red4"; - dir = 8 - }, +/turf/open/floor/strata/red4/west, /area/adminlevel/ert_station/upp_station) "Hx" = ( /obj/effect/decal/strata_decals/catwalk/prison, @@ -2171,17 +1716,11 @@ /area/adminlevel/ert_station/upp_station) "HR" = ( /obj/structure/platform/strata/metal, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/adminlevel/ert_station/upp_station) "Is" = ( /obj/structure/largecrate/random/barrel/white, -/turf/open/floor/strata{ - icon_state = "green3"; - dir = 4 - }, +/turf/open/floor/strata/green3/east, /area/adminlevel/ert_station/upp_station) "IC" = ( /obj/structure/barricade/handrail{ @@ -2205,29 +1744,20 @@ /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/adminlevel/ert_station/upp_station) "IQ" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, /obj/structure/largecrate/black_market/confiscated_equipment, -/turf/open/floor/prison{ - dir = 8; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/west, /area/adminlevel/ert_station/upp_station) "IT" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/strata{ - dir = 2; - icon_state = "red3" - }, +/turf/open/floor/strata/red3/south, /area/adminlevel/ert_station/upp_station) "IV" = ( /obj/structure/bedsheetbin{ @@ -2242,10 +1772,7 @@ /obj/structure/machinery/processor{ pixel_y = 10 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/adminlevel/ert_station/upp_station) "Jc" = ( /obj/structure/surface/table/reinforced/prison, @@ -2256,26 +1783,17 @@ pixel_y = 2 }, /obj/structure/machinery/light/double/blue, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/adminlevel/ert_station/upp_station) "Jj" = ( /obj/structure/closet/emcloset, -/turf/open/floor/strata{ - icon_state = "green3"; - dir = 8 - }, +/turf/open/floor/strata/green3/west, /area/adminlevel/ert_station/upp_station) "Jl" = ( /obj/structure/toilet{ dir = 8 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/adminlevel/ert_station/upp_station) "Jp" = ( /obj/effect/decal/strata_decals/catwalk/prison, @@ -2287,10 +1805,7 @@ /area/adminlevel/ert_station/upp_station) "Js" = ( /obj/structure/machinery/light/double/blue, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan1" - }, +/turf/open/floor/strata/cyan1/east, /area/adminlevel/ert_station/upp_station) "Jz" = ( /obj/structure/pipes/standard/simple/hidden/cyan, @@ -2298,9 +1813,7 @@ /turf/open/floor/plating, /area/adminlevel/ert_station/upp_station) "JB" = ( -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/adminlevel/ert_station/upp_station) "JV" = ( /obj/item/tool/wet_sign, @@ -2309,32 +1822,22 @@ pixel_x = -12; pixel_y = 13 }, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/adminlevel/ert_station/upp_station) "JX" = ( /obj/structure/closet/boxinggloves, -/turf/open/asphalt/cement{ - icon_state = "cement1"; - dir = 1 - }, +/turf/open/asphalt/cement/cement1/north, /area/adminlevel/ert_station/upp_station) "JZ" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/light/double/blue, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/adminlevel/ert_station/upp_station) "Kb" = ( /obj/structure/machinery/light/double/blue{ dir = 1 }, -/turf/open/floor/strata{ - icon_state = "green3" - }, +/turf/open/floor/strata/green3, /area/adminlevel/ert_station/upp_station) "Kj" = ( /obj/structure/barricade/handrail{ @@ -2368,29 +1871,18 @@ /obj/structure/barricade/handrail/wire{ dir = 8 }, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, +/turf/open/asphalt/cement/cement3, /area/adminlevel/ert_station/upp_station) "KF" = ( /obj/structure/morgue, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/adminlevel/ert_station/upp_station) "KL" = ( -/turf/open/floor/strata{ - dir = 5; - icon_state = "white_cyan3" - }, +/turf/open/floor/strata/white_cyan3/northeast, /area/adminlevel/ert_station/upp_station) "KX" = ( /obj/structure/surface/table/reinforced, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/adminlevel/ert_station/upp_station) "Lg" = ( /obj/effect/decal/strata_decals/catwalk/prison, @@ -2403,17 +1895,11 @@ /obj/structure/machinery/door/airlock/multi_tile/almayer/engidoor/glass/colony{ name = "Engineering" }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/adminlevel/ert_station/upp_station) "Ln" = ( /obj/structure/largecrate/random/barrel/white, -/turf/open/floor/strata{ - icon_state = "orange_icorner"; - dir = 8 - }, +/turf/open/floor/strata/orange_icorner/west, /area/adminlevel/ert_station/upp_station) "Lo" = ( /obj/effect/decal/strata_decals/catwalk/prison, @@ -2433,10 +1919,7 @@ /obj/structure/machinery/light/double/blue{ dir = 4 }, -/turf/open/asphalt/cement{ - icon_state = "cement1"; - dir = 1 - }, +/turf/open/asphalt/cement/cement1/north, /area/adminlevel/ert_station/upp_station) "LG" = ( /obj/structure/lattice, @@ -2455,25 +1938,17 @@ /obj/structure/machinery/light/double/blue{ dir = 4 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/adminlevel/ert_station/upp_station) "LN" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/device/flashlight, /obj/item/attachable/bayonet/upp, -/turf/open/asphalt/cement{ - icon_state = "cement15" - }, +/turf/open/asphalt/cement/cement15, /area/adminlevel/ert_station/upp_station) "LO" = ( /obj/structure/bed/chair, -/turf/open/floor/strata{ - icon_state = "green3"; - dir = 4 - }, +/turf/open/floor/strata/green3/east, /area/adminlevel/ert_station/upp_station) "LQ" = ( /obj/effect/decal/strata_decals/catwalk/prison, @@ -2481,10 +1956,7 @@ /obj/structure/machinery/door/airlock/multi_tile/almayer/marine/colony{ name = "Station Hallway" }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/adminlevel/ert_station/upp_station) "Mc" = ( /obj/structure/monorail{ @@ -2497,18 +1969,12 @@ /obj/item/clothing/gloves/latex, /obj/item/clothing/head/chefhat, /obj/structure/surface/table/reinforced, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/adminlevel/ert_station/upp_station) "Mk" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/storage/belt/medical/lifesaver/upp/full, -/turf/open/floor/strata{ - dir = 1; - icon_state = "white_cyan3" - }, +/turf/open/floor/strata/white_cyan3/north, /area/adminlevel/ert_station/upp_station) "Mt" = ( /obj/structure/platform/kutjevo/smooth, @@ -2521,34 +1987,25 @@ /obj/structure/barricade/handrail/wire{ dir = 8 }, -/turf/open/asphalt/cement{ - icon_state = "cement14" - }, +/turf/open/asphalt/cement/cement14, /area/adminlevel/ert_station/upp_station) "ME" = ( /obj/structure/surface/table/reinforced, /obj/item/reagent_container/food/snacks/upp, /obj/item/reagent_container/food/snacks/upp, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/adminlevel/ert_station/upp_station) "MG" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/adminlevel/ert_station/upp_station) "MM" = ( /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/strata{ - icon_state = "green3" - }, +/turf/open/floor/strata/green3, /area/adminlevel/ert_station/upp_station) "MU" = ( /obj/structure/surface/table/reinforced/black, @@ -2558,26 +2015,18 @@ /obj/item/tool/stamp{ pixel_y = 10 }, -/turf/open/floor/strata{ - icon_state = "green3" - }, +/turf/open/floor/strata/green3, /area/adminlevel/ert_station/upp_station) "Ne" = ( /obj/structure/machinery/light/double/blue, /obj/structure/largecrate/random/barrel/blue, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/adminlevel/ert_station/upp_station) "Ni" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 10 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/adminlevel/ert_station/upp_station) "Ns" = ( /obj/structure/prop/invuln/overhead_pipe{ @@ -2589,10 +2038,7 @@ /area/adminlevel/ert_station/upp_station) "Nz" = ( /obj/structure/bed/chair/comfy/black, -/turf/open/floor/strata{ - dir = 2; - icon_state = "red3" - }, +/turf/open/floor/strata/red3/south, /area/adminlevel/ert_station/upp_station) "NQ" = ( /obj/structure/platform/kutjevo/smooth{ @@ -2638,19 +2084,13 @@ "OS" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/storage/large_holster/machete/full, -/turf/open/floor/strata{ - dir = 1; - icon_state = "white_cyan4" - }, +/turf/open/floor/strata/white_cyan4/north, /area/adminlevel/ert_station/upp_station) "Ph" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/adminlevel/ert_station/upp_station) "Pj" = ( /obj/structure/platform/kutjevo/smooth{ @@ -2668,17 +2108,11 @@ /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/adminlevel/ert_station/upp_station) "PQ" = ( /obj/structure/machinery/light/double/blue, -/turf/open/floor/strata{ - icon_state = "red4"; - dir = 4 - }, +/turf/open/floor/strata/red4/east, /area/adminlevel/ert_station/upp_station) "PS" = ( /obj/effect/decal/warning_stripes{ @@ -2687,33 +2121,23 @@ /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/adminlevel/ert_station/upp_station) "PT" = ( /obj/structure/machinery/sleep_console, /obj/structure/pipes/vents/pump, -/turf/open/floor/strata{ - icon_state = "white_cyan3" - }, +/turf/open/floor/strata/white_cyan3, /area/adminlevel/ert_station/upp_station) "Qu" = ( /obj/structure/bed{ icon_state = "abed" }, -/turf/open/floor/strata{ - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2, /area/adminlevel/ert_station/upp_station) "Qz" = ( /obj/structure/machinery/iv_drip, /obj/effect/decal/cleanable/blood, -/turf/open/floor/strata{ - dir = 10; - icon_state = "white_cyan3" - }, +/turf/open/floor/strata/white_cyan3/southwest, /area/adminlevel/ert_station/upp_station) "QG" = ( /turf/closed/shuttle/elevator{ @@ -2724,23 +2148,16 @@ /obj/structure/machinery/light/double/blue{ dir = 1 }, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/adminlevel/ert_station/upp_station) "QR" = ( /obj/structure/machinery/medical_pod/sleeper, -/turf/open/floor/strata{ - icon_state = "white_cyan3" - }, +/turf/open/floor/strata/white_cyan3, /area/adminlevel/ert_station/upp_station) "Rd" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/reagent_container/food/snacks/upp, -/turf/open/floor/strata{ - dir = 1; - icon_state = "red3" - }, +/turf/open/floor/strata/red3/north, /area/adminlevel/ert_station/upp_station) "Rf" = ( /turf/open/asphalt/cement, @@ -2774,24 +2191,16 @@ icon_state = "E"; pixel_x = 1 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/adminlevel/ert_station/upp_station) "RK" = ( /obj/structure/machinery/iv_drip, /obj/structure/machinery/light/double/blue, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan4" - }, +/turf/open/floor/strata/white_cyan4/west, /area/adminlevel/ert_station/upp_station) "RQ" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor/plating{ - icon_state = "platebot" - }, +/turf/open/floor/plating/platebot, /area/adminlevel/ert_station/upp_station) "RR" = ( /obj/effect/decal/strata_decals/catwalk/prison, @@ -2805,10 +2214,7 @@ /area/adminlevel/ert_station/upp_station) "RS" = ( /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/adminlevel/ert_station/upp_station) "RU" = ( /obj/effect/decal/warning_stripes{ @@ -2820,10 +2226,7 @@ /obj/structure/closet/secure_closet/freezer/fridge/full, /obj/item/reagent_container/food/condiment/enzyme, /obj/structure/machinery/light/double/blue, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/adminlevel/ert_station/upp_station) "Sf" = ( /obj/effect/decal/strata_decals/catwalk/prison, @@ -2831,19 +2234,13 @@ /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 4 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/adminlevel/ert_station/upp_station) "Sh" = ( /obj/structure/bed{ icon_state = "abed" }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan3" - }, +/turf/open/floor/strata/white_cyan3/west, /area/adminlevel/ert_station/upp_station) "Si" = ( /obj/structure/bookcase{ @@ -2852,25 +2249,16 @@ pixel_x = 2; density = 0 }, -/turf/open/floor/strata{ - icon_state = "green3"; - dir = 1 - }, +/turf/open/floor/strata/green3/north, /area/adminlevel/ert_station/upp_station) "Sj" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/adminlevel/ert_station/upp_station) "Sn" = ( -/turf/open/floor/strata{ - icon_state = "purp3"; - dir = 4 - }, +/turf/open/floor/strata/purp3/east, /area/adminlevel/ert_station/upp_station) "Sq" = ( /obj/effect/decal/strata_decals/catwalk/prison, @@ -2883,30 +2271,20 @@ layer = 3.1; pixel_y = 13 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/west, /area/adminlevel/ert_station/upp_station) "Sy" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/strata{ - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2, /area/adminlevel/ert_station/upp_station) "SB" = ( /obj/structure/largecrate/random/barrel/white, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/adminlevel/ert_station/upp_station) "SC" = ( -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/adminlevel/ert_station/upp_station) "SI" = ( /obj/structure/surface/table/reinforced, @@ -2925,19 +2303,13 @@ /obj/item/trash/plate{ pixel_y = 10 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/adminlevel/ert_station/upp_station) "SL" = ( /obj/structure/machinery/light/double/blue{ dir = 1 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/adminlevel/ert_station/upp_station) "SR" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony{ @@ -2945,10 +2317,7 @@ name = "\improper Toilet" }, /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/adminlevel/ert_station/upp_station) "SS" = ( /obj/docking_port/stationary/emergency_response/idle_port3, @@ -2961,10 +2330,7 @@ /obj/structure/machinery/light/double/blue{ dir = 1 }, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/adminlevel/ert_station/upp_station) "Tb" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ @@ -2974,34 +2340,23 @@ name = "Station Hallway"; dir = 1 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/adminlevel/ert_station/upp_station) "Tj" = ( -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement/cement12, /area/adminlevel/ert_station/upp_station) "Tm" = ( /obj/structure/machinery/light/double/blue{ dir = 4 }, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/adminlevel/ert_station/upp_station) "Tr" = ( /obj/effect/landmark/wo_supplies/storage/m56d, /obj/structure/machinery/light/double/blue{ dir = 8 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/west, /area/adminlevel/ert_station/upp_station) "Tu" = ( /obj/structure/sink{ @@ -3016,43 +2371,29 @@ /obj/structure/mirror{ pixel_x = 28 }, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/adminlevel/ert_station/upp_station) "Ty" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/marine/colony{ name = "Shuttle Bay" }, /obj/structure/pipes/standard/simple/hidden/cyan, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/adminlevel/ert_station/upp_station) "TB" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/storage/surgical_tray, -/turf/open/floor/strata{ - dir = 2; - icon_state = "white_cyan4" - }, +/turf/open/floor/strata/white_cyan4/south, /area/adminlevel/ert_station/upp_station) "TE" = ( /obj/structure/machinery/cryopod/right, /obj/structure/machinery/light/double/blue{ dir = 4 }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/west, /area/adminlevel/ert_station/upp_station) "TG" = ( -/turf/open/floor/strata{ - icon_state = "green3" - }, +/turf/open/floor/strata/green3, /area/adminlevel/ert_station/upp_station) "TH" = ( /obj/structure/surface/table/reinforced, @@ -3064,17 +2405,11 @@ pixel_x = -8 }, /obj/item/tool/kitchen/rollingpin, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/adminlevel/ert_station/upp_station) "TI" = ( /obj/structure/platform/strata/metal, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/adminlevel/ert_station/upp_station) "TM" = ( /obj/structure/barricade/handrail{ @@ -3093,10 +2428,7 @@ /area/space) "TQ" = ( /obj/structure/closet/emcloset, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/adminlevel/ert_station/upp_station) "TT" = ( /obj/structure/prop/invuln/overhead_pipe{ @@ -3107,10 +2439,7 @@ /obj/structure/machinery/light/double/blue{ dir = 1 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/adminlevel/ert_station/upp_station) "Ug" = ( /obj/structure/surface/table/reinforced/prison, @@ -3121,35 +2450,23 @@ pixel_x = -9 }, /obj/item/tool/pen/blue, -/turf/open/floor/strata{ - icon_state = "green3"; - dir = 5 - }, +/turf/open/floor/strata/green3/northeast, /area/adminlevel/ert_station/upp_station) "Uh" = ( /obj/structure/machinery/light/double/blue, -/turf/open/floor/strata{ - dir = 2; - icon_state = "white_cyan4" - }, +/turf/open/floor/strata/white_cyan4/south, /area/adminlevel/ert_station/upp_station) "Uk" = ( /obj/structure/pipes/vents/pump{ dir = 1; id_tag = "mining_outpost_pump" }, -/turf/open/floor/strata{ - dir = 10; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southwest, /area/adminlevel/ert_station/upp_station) "Ul" = ( /obj/structure/closet/bodybag, /obj/structure/machinery/light/double/blue, -/turf/open/floor/strata{ - dir = 4; - icon_state = "cyan1" - }, +/turf/open/floor/strata/cyan1/east, /area/adminlevel/ert_station/upp_station) "Um" = ( /obj/effect/decal/strata_decals/catwalk/prison, @@ -3179,10 +2496,7 @@ desc = "A sterile mask designed to help prevent the spread of diseases. This one has already been used."; name = "used sterile mask" }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan3" - }, +/turf/open/floor/strata/white_cyan3/east, /area/adminlevel/ert_station/upp_station) "Uu" = ( /obj/structure/window/reinforced{ @@ -3211,9 +2525,7 @@ /obj/item/bedsheet/brown{ layer = 3.2 }, -/turf/open/floor/strata{ - icon_state = "blue1" - }, +/turf/open/floor/strata/blue1, /area/adminlevel/ert_station/upp_station) "UA" = ( /obj/structure/surface/table/reinforced/black, @@ -3221,10 +2533,7 @@ pixel_y = -3; pixel_x = 16 }, -/turf/open/floor/strata{ - icon_state = "green3"; - dir = 1 - }, +/turf/open/floor/strata/green3/north, /area/adminlevel/ert_station/upp_station) "UB" = ( /obj/structure/machinery/door/poddoor/almayer/open{ @@ -3241,10 +2550,7 @@ /area/adminlevel/ert_station/upp_station) "UM" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor/strata{ - dir = 8; - icon_state = "white_cyan2" - }, +/turf/open/floor/strata/white_cyan2/west, /area/adminlevel/ert_station/upp_station) "UU" = ( /obj/effect/decal/strata_decals/catwalk/prison, @@ -3264,10 +2570,7 @@ /turf/open/space/basic, /area/space) "Vo" = ( -/turf/open/floor/strata{ - icon_state = "red4"; - dir = 1 - }, +/turf/open/floor/strata/red4/north, /area/adminlevel/ert_station/upp_station) "Vp" = ( /obj/effect/decal/strata_decals/catwalk/prison, @@ -3281,10 +2584,7 @@ /obj/structure/machinery/light/double/blue{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "green4"; - dir = 1 - }, +/turf/open/floor/strata/green4/north, /area/adminlevel/ert_station/upp_station) "Vx" = ( /turf/closed/shuttle/elevator{ @@ -3312,15 +2612,10 @@ /obj/structure/machinery/cm_vending/sorted/medical/wall_med{ pixel_y = 25 }, -/turf/open/floor/strata{ - icon_state = "green4"; - dir = 4 - }, +/turf/open/floor/strata/green4/east, /area/adminlevel/ert_station/upp_station) "Wb" = ( -/turf/open/floor/strata{ - icon_state = "blue4" - }, +/turf/open/floor/strata/blue4, /area/adminlevel/ert_station/upp_station) "We" = ( /obj/structure/machinery/door/poddoor/almayer/open{ @@ -3342,10 +2637,7 @@ /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, +/turf/open/floor/strata/floor3/east, /area/adminlevel/ert_station/upp_station) "Wr" = ( /obj/structure/disposalpipe/segment{ @@ -3357,16 +2649,11 @@ /obj/structure/machinery/door/airlock/multi_tile/almayer/marine/colony{ name = "Station Hallway" }, -/turf/open/floor/strata{ - icon_state = "floor2" - }, +/turf/open/floor/strata/floor2, /area/adminlevel/ert_station/upp_station) "WL" = ( /obj/structure/largecrate/random/barrel/green, -/turf/open/floor/strata{ - dir = 4; - icon_state = "orange_edge" - }, +/turf/open/floor/strata/orange_edge/east, /area/adminlevel/ert_station/upp_station) "WQ" = ( /obj/structure/platform/kutjevo/smooth{ @@ -3379,17 +2666,12 @@ /obj/structure/machinery/cm_vending/sorted/medical/wall_med{ pixel_y = 25 }, -/turf/open/floor/strata{ - icon_state = "green3"; - dir = 1 - }, +/turf/open/floor/strata/green3/north, /area/adminlevel/ert_station/upp_station) "WZ" = ( /obj/structure/machinery/chem_dispenser, /obj/item/reagent_container/glass/beaker/bluespace, -/turf/open/floor/strata{ - icon_state = "white_cyan3" - }, +/turf/open/floor/strata/white_cyan3, /area/adminlevel/ert_station/upp_station) "Xb" = ( /obj/structure/monorail{ @@ -3412,9 +2694,7 @@ /turf/open/floor/plating, /area/adminlevel/ert_station/upp_station) "XG" = ( -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, +/turf/open/asphalt/cement/cement4, /area/adminlevel/ert_station/upp_station) "XL" = ( /obj/structure/prop/invuln/overhead_pipe{ @@ -3422,29 +2702,21 @@ pixel_x = -12; pixel_y = 13 }, -/turf/open/floor/strata{ - icon_state = "floorscorched1" - }, +/turf/open/floor/strata/floorscorched1, /area/adminlevel/ert_station/upp_station) "XM" = ( /obj/structure/largecrate/random/barrel/green, /obj/structure/machinery/light/double/blue{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "green3"; - dir = 4 - }, +/turf/open/floor/strata/green3/east, /area/adminlevel/ert_station/upp_station) "Yy" = ( /obj/effect/decal/warning_stripes{ icon_state = "N" }, /obj/structure/machinery/light/double/blue, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/adminlevel/ert_station/upp_station) "YH" = ( /obj/effect/decal/warning_stripes{ @@ -3467,29 +2739,21 @@ pixel_y = 10 }, /obj/structure/surface/table/reinforced, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/adminlevel/ert_station/upp_station) "YS" = ( /obj/structure/bed/roller, /obj/structure/machinery/light/double/blue{ dir = 1 }, -/turf/open/floor/strata{ - dir = 2; - icon_state = "white_cyan4" - }, +/turf/open/floor/strata/white_cyan4/south, /area/adminlevel/ert_station/upp_station) "YW" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/computer/communications{ dir = 4 }, -/turf/open/floor/strata{ - icon_state = "green1" - }, +/turf/open/floor/strata/green1, /area/adminlevel/ert_station/upp_station) "YY" = ( /obj/effect/decal/warning_stripes{ @@ -3498,23 +2762,14 @@ /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/adminlevel/ert_station/upp_station) "Zm" = ( -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/adminlevel/ert_station/upp_station) "Zt" = ( /obj/structure/largecrate/random/barrel/blue, -/turf/open/floor/prison{ - dir = 8; - icon_state = "floor_marked" - }, +/turf/open/floor/prison/floor_marked/west, /area/adminlevel/ert_station/upp_station) "ZH" = ( /obj/structure/lattice, @@ -3528,34 +2783,22 @@ /obj/structure/machinery/light/double/blue{ dir = 8 }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "orange_edge" - }, +/turf/open/floor/strata/orange_edge/east, /area/adminlevel/ert_station/upp_station) "ZR" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/trash/plate, /obj/item/reagent_container/food/snacks/upp, -/turf/open/floor/strata{ - icon_state = "green3"; - dir = 8 - }, +/turf/open/floor/strata/green3/west, /area/adminlevel/ert_station/upp_station) "ZS" = ( /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/strata{ - icon_state = "green4"; - dir = 8 - }, +/turf/open/floor/strata/green4/west, /area/adminlevel/ert_station/upp_station) "ZX" = ( -/turf/open/floor/strata{ - dir = 8; - icon_state = "blue3" - }, +/turf/open/floor/strata/blue3/west, /area/adminlevel/ert_station/upp_station) (1,1,1) = {" diff --git a/maps/templates/lazy_templates/uscm_ert_station.dmm b/maps/templates/lazy_templates/uscm_ert_station.dmm new file mode 100644 index 000000000000..36c040706ed9 --- /dev/null +++ b/maps/templates/lazy_templates/uscm_ert_station.dmm @@ -0,0 +1,9486 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"ab" = ( +/obj/structure/machinery/door/airlock/almayer/engineering{ + name = "\improper Engineering Hallway"; + req_one_access = null + }, +/obj/structure/pipes/standard/simple/hidden/cyan{ + dir = 4 + }, +/turf/open/floor/almayer/plating_striped/west, +/area/adminlevel/ert_station/uscm_station) +"ac" = ( +/obj/structure/morgue, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"af" = ( +/obj/structure/reagent_dispensers/fueltank, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/adminlevel/ert_station/uscm_station) +"ag" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"ah" = ( +/turf/open/floor/almayer/plating_striped, +/area/adminlevel/ert_station/uscm_station) +"ak" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plating/warnplate/northeast, +/area/adminlevel/ert_station/uscm_station) +"au" = ( +/obj/structure/largecrate/random, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/adminlevel/ert_station/uscm_station) +"aw" = ( +/turf/open/floor/almayer/sterile_green_side/north, +/area/adminlevel/ert_station/uscm_station) +"aC" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/generic, +/turf/open/floor/plating/platebot, +/area/adminlevel/ert_station/uscm_station) +"aD" = ( +/obj/structure/surface/table/reinforced/black, +/obj/item/explosive/grenade/high_explosive/training, +/turf/open/floor/almayer/cargo, +/area/adminlevel/ert_station/uscm_station) +"aF" = ( +/obj/item/ammo_magazine/rifle/lmg, +/obj/item/weapon/gun/rifle/lmg, +/obj/structure/surface/rack, +/turf/open/floor/red/east, +/area/adminlevel/ert_station/uscm_station) +"aJ" = ( +/obj/structure/machinery/door/poddoor/almayer{ + id = "s_umbilical"; + name = "\improper Umbillical Airlock"; + unacidable = 1; + dir = 4 + }, +/turf/closed/wall/almayer/outer, +/area/adminlevel/ert_station/uscm_station) +"aM" = ( +/obj/structure/window/framed/almayer/hull, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/adminlevel/ert_station/uscm_station) +"aP" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/ladder{ + id = "engladder"; + height = 1 + }, +/turf/open/floor/almayer/plating/northeast, +/area/adminlevel/ert_station/uscm_station) +"aW" = ( +/obj/structure/machinery/door/airlock/almayer/medical{ + access_modified = 1; + name = "Morgue"; + req_access_txt = "25"; + req_one_access = null + }, +/turf/open/floor/almayer/test_floor4, +/area/adminlevel/ert_station/uscm_station) +"ba" = ( +/obj/structure/surface/table/almayer, +/obj/item/clothing/gloves/latex, +/turf/open/floor/almayer/sterile_green_corner/west, +/area/adminlevel/ert_station/uscm_station) +"bc" = ( +/obj/structure/closet/emcloset, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/adminlevel/ert_station/uscm_station) +"bl" = ( +/obj/structure/pipes/standard/simple/hidden/cyan{ + dir = 4 + }, +/turf/open/floor/almayer/sterile_green_side/west, +/area/adminlevel/ert_station/uscm_station) +"bv" = ( +/obj/structure/platform{ + dir = 4 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/turf/open/floor/almayer/plating/northeast, +/area/adminlevel/ert_station/uscm_station) +"bB" = ( +/obj/structure/bed/chair/comfy/orange{ + dir = 1 + }, +/turf/open/floor/carpet, +/area/adminlevel/ert_station/uscm_station) +"bU" = ( +/obj/structure/machinery/cm_vending/sorted/medical/chemistry/no_access{ + req_access = null + }, +/turf/open/floor/almayer/sterile_green_side, +/area/adminlevel/ert_station/uscm_station) +"bV" = ( +/obj/structure/blocker/invisible_wall, +/obj/structure/pipes/standard/simple/hidden/cyan, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/ert_station/uscm_station) +"bX" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"bY" = ( +/obj/structure/pipes/standard/simple/hidden/cyan{ + dir = 4 + }, +/obj/structure/machinery/door_control{ + id = "tcomms"; + name = "Telecommunications Entrance"; + pixel_y = -19 + }, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/ert_station/uscm_station) +"cf" = ( +/obj/structure/surface/table/almayer, +/obj/item/trash/USCMtray{ + pixel_y = 7 + }, +/obj/item/reagent_container/food/condiment/hotsauce/cholula{ + pixel_y = 13; + pixel_x = 12 + }, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/ert_station/uscm_station) +"ci" = ( +/obj/structure/sink{ + dir = 1; + pixel_y = -20 + }, +/obj/structure/pipes/standard/simple/hidden/cyan{ + dir = 4 + }, +/turf/open/floor/almayer/sterile_green_corner/east, +/area/adminlevel/ert_station/uscm_station) +"cp" = ( +/obj/structure/sign/safety/rad_shield{ + pixel_x = 8; + pixel_y = -32 + }, +/turf/open/floor/almayer/tcomms, +/area/adminlevel/ert_station/uscm_station) +"cy" = ( +/turf/open/floor/almayer/orange/west, +/area/adminlevel/ert_station/uscm_station) +"cz" = ( +/obj/item/hardpoint/support/artillery_module, +/turf/open/floor/almayer/plating/northeast, +/area/adminlevel/ert_station/uscm_station) +"cG" = ( +/obj/structure/closet/secure_closet/engineering_welding, +/obj/structure/pipes/standard/simple/hidden/cyan{ + dir = 9 + }, +/turf/open/floor/dark, +/area/adminlevel/ert_station/uscm_station) +"cU" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/device/autopsy_scanner, +/turf/open/floor/podhatch/southeast, +/area/adminlevel/ert_station/uscm_station) +"cW" = ( +/obj/structure/surface/table/almayer, +/obj/item/storage/box/pillbottles, +/obj/item/storage/box/pillbottles, +/turf/open/floor/almayer/sterile_green_side/east, +/area/adminlevel/ert_station/uscm_station) +"cX" = ( +/obj/structure/platform, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer/plating/northeast, +/area/adminlevel/ert_station/uscm_station) +"cZ" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 2 + }, +/obj/structure/pipes/standard/simple/hidden/cyan{ + dir = 4 + }, +/turf/open/floor/almayer/plating/northeast, +/area/adminlevel/ert_station/uscm_station) +"df" = ( +/obj/structure/largecrate/supply, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"di" = ( +/obj/structure/pipes/standard/simple/hidden/cyan{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/dark, +/area/adminlevel/ert_station/uscm_station) +"du" = ( +/obj/structure/bed/roller, +/turf/open/floor/almayer/sterile_green_side/east, +/area/adminlevel/ert_station/uscm_station) +"dy" = ( +/obj/structure/machinery/portable_atmospherics/canister/nitrogen, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"dz" = ( +/obj/structure/machinery/door/airlock/almayer/generic/corporate{ + dir = 8 + }, +/turf/open/floor/almayer/test_floor4, +/area/adminlevel/ert_station/uscm_station) +"dH" = ( +/obj/structure/machinery/portable_atmospherics/powered/scrubber, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"dK" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer/cargo_arrow/north, +/area/adminlevel/ert_station/uscm_station) +"dP" = ( +/turf/open/floor/almayer/orange, +/area/adminlevel/ert_station/uscm_station) +"dQ" = ( +/obj/structure/pipes/standard/simple/hidden/cyan, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/dark, +/area/adminlevel/ert_station/uscm_station) +"dR" = ( +/obj/structure/sign/safety/galley{ + pixel_y = -30 + }, +/obj/structure/sign/safety/food_storage{ + pixel_y = -30; + pixel_x = 15 + }, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"dT" = ( +/obj/structure/pipes/standard/simple/hidden/cyan{ + dir = 5 + }, +/turf/open/floor/almayer/dark_sterile, +/area/adminlevel/ert_station/uscm_station) +"dW" = ( +/obj/structure/machinery/door/airlock/almayer/generic/corporate{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer/test_floor4, +/area/adminlevel/ert_station/uscm_station) +"dX" = ( +/obj/structure/pipes/vents/pump{ + dir = 1 + }, +/turf/open/floor/almayer/plating/northeast, +/area/adminlevel/ert_station/uscm_station) +"eb" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/pipes/standard/simple/hidden/cyan, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/ert_station/uscm_station) +"ec" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/bed/chair{ + dir = 8 + }, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/ert_station/uscm_station) +"ei" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/pipes/standard/manifold/hidden/cyan, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/ert_station/uscm_station) +"ej" = ( +/obj/effect/decal/cleanable/cobweb, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/adminlevel/ert_station/uscm_station) +"ek" = ( +/obj/structure/sign/safety/hvac_old, +/turf/closed/wall/almayer, +/area/adminlevel/ert_station/uscm_station) +"ep" = ( +/obj/structure/surface/rack, +/obj/item/storage/firstaid/adv, +/obj/item/storage/firstaid/adv, +/turf/open/floor/red, +/area/adminlevel/ert_station/uscm_station) +"er" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"es" = ( +/obj/effect/decal/warning_stripes, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/down{ + dir = 8 + }, +/turf/open/floor/plating/platebot, +/area/adminlevel/ert_station/uscm_station) +"et" = ( +/obj/structure/largecrate/random, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plating, +/area/adminlevel/ert_station/uscm_station) +"eu" = ( +/obj/structure/platform, +/turf/open/floor/almayer/plating/northeast, +/area/adminlevel/ert_station/uscm_station) +"eF" = ( +/obj/structure/bed/chair/office/light{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/dark, +/area/adminlevel/ert_station/uscm_station) +"eG" = ( +/obj/structure/pipes/standard/simple/hidden/cyan{ + dir = 4 + }, +/turf/open/floor/almayer/plating/northeast, +/area/adminlevel/ert_station/uscm_station) +"eL" = ( +/turf/open/floor/almayer/red/southwest, +/area/adminlevel/ert_station/uscm_station) +"eW" = ( +/obj/structure/surface/rack, +/obj/effect/spawner/random/toolbox, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/dark, +/area/adminlevel/ert_station/uscm_station) +"eY" = ( +/obj/structure/machinery/status_display{ + pixel_y = 30 + }, +/obj/structure/closet/cabinet, +/obj/item/clipboard, +/obj/item/storage/lockbox/loyalty, +/obj/item/storage/briefcase, +/obj/item/reagent_container/spray/pepper, +/obj/item/device/eftpos{ + eftpos_name = "Weyland-Yutani EFTPOS scanner" + }, +/obj/item/device/portable_vendor/corporate, +/turf/open/floor/wood/ship, +/area/adminlevel/ert_station/uscm_station) +"fc" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/medidoor{ + dir = 2; + name = "\improper Medical Bay"; + req_access = null; + req_one_access = null + }, +/turf/open/floor/almayer/sterile_green_side/east, +/area/adminlevel/ert_station/uscm_station) +"fe" = ( +/obj/structure/machinery/disposal, +/turf/open/floor/almayer/orange/east, +/area/adminlevel/ert_station/uscm_station) +"fh" = ( +/obj/item/weapon/gun/rifle/m41a, +/obj/item/weapon/gun/rifle/m41aMK1, +/obj/item/weapon/gun/rifle/m41a, +/obj/item/weapon/gun/rifle/m41a, +/obj/item/attachable/attached_gun/flamer, +/obj/item/attachable/attached_gun/shotgun, +/obj/item/attachable/attached_gun/shotgun, +/obj/structure/surface/rack, +/turf/open/floor/red/east, +/area/adminlevel/ert_station/uscm_station) +"fi" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer/sterile_green_side/southwest, +/area/adminlevel/ert_station/uscm_station) +"fj" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/pipes/standard/simple/hidden/cyan{ + dir = 4 + }, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"fn" = ( +/obj/structure/bed/chair/office/dark{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/cyan{ + dir = 10 + }, +/turf/open/floor/almayer/dark_sterile, +/area/adminlevel/ert_station/uscm_station) +"fo" = ( +/obj/structure/platform_decoration{ + dir = 1 + }, +/obj/item/hardpoint/special/firing_port_weapon, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer/plating/northeast, +/area/adminlevel/ert_station/uscm_station) +"fu" = ( +/obj/item/tool/warning_cone, +/turf/open/floor/almayer, +/area/adminlevel/ert_station/uscm_station) +"fw" = ( +/turf/open/floor/almayer_hull/outerhull_dir, +/area/space) +"fz" = ( +/obj/item/weapon/gun/pistol/highpower, +/obj/item/weapon/gun/pistol/m4a3, +/obj/item/weapon/gun/revolver/m44, +/obj/item/weapon/gun/pistol/highpower, +/obj/item/weapon/gun/pistol/m1911, +/obj/item/ammo_magazine/pistol/ap, +/obj/item/ammo_magazine/pistol/heavy, +/obj/item/ammo_magazine/pistol/hp, +/obj/item/ammo_magazine/pistol/incendiary, +/obj/item/ammo_magazine/pistol/m1911, +/obj/structure/surface/rack, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/red/southeast, +/area/adminlevel/ert_station/uscm_station) +"fE" = ( +/obj/structure/machinery/telecomms/broadcaster/preset_left, +/turf/open/floor/almayer/tcomms, +/area/adminlevel/ert_station/uscm_station) +"fI" = ( +/obj/structure/pipes/standard/simple/hidden/cyan{ + dir = 6 + }, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/ert_station/uscm_station) +"fN" = ( +/obj/structure/machinery/door/airlock/almayer/medical/glass{ + req_one_access = null + }, +/turf/open/floor/almayer/test_floor4, +/area/adminlevel/ert_station/uscm_station) +"fP" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S"; + pixel_y = -1 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 2 + }, +/turf/open/floor/almayer/plating/northeast, +/area/adminlevel/ert_station/uscm_station) +"fQ" = ( +/obj/item/storage/lockbox/loyalty{ + req_access = list(200) + }, +/obj/item/storage/briefcase, +/obj/structure/surface/table/almayer, +/turf/open/floor/wood, +/area/adminlevel/ert_station/uscm_station) +"fV" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/almayer, +/area/adminlevel/ert_station/uscm_station) +"fY" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/turf/open/floor/almayer/dark_sterile, +/area/adminlevel/ert_station/uscm_station) +"gj" = ( +/obj/structure/pipes/standard/manifold/hidden/cyan, +/turf/open/floor/almayer/dark_sterile, +/area/adminlevel/ert_station/uscm_station) +"gl" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S"; + layer = 3.3 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "W"; + pixel_x = -1 + }, +/obj/structure/machinery/medical_pod/autodoc/unskilled, +/turf/open/floor/almayer/dark_sterile, +/area/adminlevel/ert_station/uscm_station) +"gE" = ( +/obj/structure/machinery/portable_atmospherics/canister/oxygen, +/turf/open/floor/engine, +/area/adminlevel/ert_station/uscm_station) +"gQ" = ( +/obj/structure/surface/rack, +/obj/item/tool/weldpack{ + pixel_x = -2 + }, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"gW" = ( +/obj/structure/platform, +/obj/effect/decal/cleanable/blood/oil, +/turf/open/floor/almayer/plating/northeast, +/area/adminlevel/ert_station/uscm_station) +"gY" = ( +/obj/structure/sign/safety/life_support{ + pixel_x = 8; + pixel_y = -32 + }, +/turf/open/floor/almayer/orangecorner/west, +/area/adminlevel/ert_station/uscm_station) +"hc" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/largecrate/random/barrel/yellow, +/turf/open/floor/plating, +/area/adminlevel/ert_station/uscm_station) +"hi" = ( +/obj/structure/machinery/telecomms/processor/preset_two, +/turf/open/floor/almayer/tcomms, +/area/adminlevel/ert_station/uscm_station) +"hk" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/pipes/standard/simple/hidden/cyan{ + dir = 4 + }, +/turf/open/floor/almayer/uscm/directional/east, +/area/adminlevel/ert_station/uscm_station) +"hm" = ( +/obj/item/device/flashlight/lamp/green{ + pixel_x = 5; + pixel_y = 3 + }, +/obj/structure/surface/table/woodentable/fancy, +/obj/structure/pipes/vents/pump{ + dir = 1 + }, +/turf/open/floor/carpet, +/area/adminlevel/ert_station/uscm_station) +"ho" = ( +/obj/structure/platform{ + dir = 8 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "E" + }, +/turf/open/floor/almayer/plating/northeast, +/area/adminlevel/ert_station/uscm_station) +"hq" = ( +/turf/open/floor/carpet, +/area/adminlevel/ert_station/uscm_station) +"hu" = ( +/obj/structure/sign/safety/maint{ + pixel_x = 8; + pixel_y = -32 + }, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"hv" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/obj/structure/platform, +/obj/structure/platform{ + dir = 8 + }, +/obj/structure/platform_decoration{ + dir = 10; + layer = 3.51 + }, +/turf/open/floor/almayer/plating/northeast, +/area/adminlevel/ert_station/uscm_station) +"hw" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/obj/structure/pipes/vents/pump{ + dir = 1 + }, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"hy" = ( +/obj/structure/target, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer/redfull, +/area/adminlevel/ert_station/uscm_station) +"hz" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SE-out" + }, +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_y = 1 + }, +/obj/structure/largecrate/random/barrel/true_random, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"hB" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/pipes/standard/simple/hidden/cyan, +/obj/structure/sign/safety/medical{ + pixel_x = 32 + }, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/ert_station/uscm_station) +"hJ" = ( +/obj/structure/surface/rack, +/obj/item/clothing/suit/storage/marine/light/vest, +/obj/item/clothing/suit/storage/marine/light/vest, +/obj/item/clothing/suit/storage/marine/light/vest, +/obj/item/clothing/suit/storage/marine/light/vest, +/obj/item/clothing/suit/storage/marine/light/vest, +/turf/open/floor/red/southwest, +/area/adminlevel/ert_station/uscm_station) +"hN" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/engidoor{ + indestructible = 1; + locked = 1 + }, +/turf/open/floor/almayer/no_build, +/area/adminlevel/ert_station/uscm_station) +"hO" = ( +/obj/structure/ladder{ + id = "regladder5"; + height = 2 + }, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"hW" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E" + }, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/ert_station/uscm_station) +"hY" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/obj/structure/machinery/body_scanconsole, +/obj/structure/sign/safety/autodoc{ + pixel_x = -18; + pixel_y = 25 + }, +/obj/structure/sign/safety/med_life_support{ + pixel_y = 25 + }, +/turf/open/floor/almayer/dark_sterile, +/area/adminlevel/ert_station/uscm_station) +"if" = ( +/obj/structure/machinery/recharge_station, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"im" = ( +/obj/item/bedsheet/hos, +/obj/item/clothing/mask/balaclava, +/obj/structure/bed, +/turf/open/floor/wood, +/area/adminlevel/ert_station/uscm_station) +"in" = ( +/obj/structure/machinery/smartfridge/chemistry, +/turf/open/floor/almayer/sterile_green, +/area/adminlevel/ert_station/uscm_station) +"ip" = ( +/obj/structure/machinery/power/port_gen/pacman/mrs, +/turf/open/floor/almayer/plating_striped/north, +/area/adminlevel/ert_station/uscm_station) +"iq" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/safety/nonpress_0g{ + pixel_x = 8; + pixel_y = 32 + }, +/obj/structure/pipes/vents/pump{ + dir = 1 + }, +/turf/open/floor/almayer/plating_striped/north, +/area/adminlevel/ert_station/uscm_station) +"ir" = ( +/turf/open/floor/almayer/cargo_arrow, +/area/adminlevel/ert_station/uscm_station) +"iv" = ( +/obj/structure/surface/table/almayer, +/obj/item/reagent_container/glass/beaker/large, +/obj/item/reagent_container/glass/beaker/large, +/obj/item/reagent_container/glass/beaker/large, +/obj/item/reagent_container/glass/beaker, +/obj/item/reagent_container/glass/beaker, +/obj/item/reagent_container/glass/beaker, +/turf/open/floor/almayer/sterile_green_corner/east, +/area/adminlevel/ert_station/uscm_station) +"iD" = ( +/obj/structure/machinery/computer/telecomms/traffic, +/turf/open/floor/dark, +/area/adminlevel/ert_station/uscm_station) +"iE" = ( +/obj/structure/machinery/cm_vending/sorted/tech/tool_storage/antag, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"iF" = ( +/obj/structure/pipes/standard/simple/hidden/cyan, +/turf/open/floor/almayer/uscm/directional, +/area/adminlevel/ert_station/uscm_station) +"iK" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/ladder{ + id = "regladder2"; + height = 1 + }, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"iM" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating/platebot, +/area/adminlevel/ert_station/uscm_station) +"iO" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/prop/invuln/overhead_pipe{ + dir = 4; + pixel_y = 13 + }, +/turf/open/floor/plating/warnplate/west, +/area/adminlevel/ert_station/uscm_station) +"iP" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/ship_ammo/rocket/widowmaker, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"iS" = ( +/obj/structure/pipes/standard/simple/hidden/cyan{ + dir = 4 + }, +/turf/open/floor/almayer/sterile_green_side/northeast, +/area/adminlevel/ert_station/uscm_station) +"iW" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"iY" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/roller, +/obj/item/roller, +/obj/item/roller, +/obj/item/roller, +/turf/open/floor/almayer/sterile_green_corner/east, +/area/adminlevel/ert_station/uscm_station) +"ja" = ( +/obj/structure/machinery/door/airlock/almayer/medical{ + dir = 1; + id_tag = "or01"; + name = "Operating Theatre 1"; + req_one_access = null + }, +/obj/structure/pipes/standard/simple/hidden/cyan, +/turf/open/floor/almayer/sterile_green, +/area/adminlevel/ert_station/uscm_station) +"jd" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/ladder{ + id = "regladder2"; + height = 2 + }, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"ji" = ( +/turf/closed/wall/almayer/white/hull, +/area/adminlevel/ert_station/uscm_station) +"jk" = ( +/turf/open/floor/podhatch/northeast, +/area/adminlevel/ert_station/uscm_station) +"jn" = ( +/obj/structure/machinery/computer/arcade, +/turf/open/floor/wood/ship, +/area/adminlevel/ert_station/uscm_station) +"jA" = ( +/obj/structure/surface/table/almayer, +/obj/item/storage/fancy/candle_box, +/obj/item/storage/box/gloves{ + pixel_x = 7; + pixel_y = 7 + }, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"jM" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/obj/structure/platform{ + dir = 1 + }, +/obj/structure/platform{ + dir = 4 + }, +/obj/structure/platform_decoration{ + dir = 9 + }, +/turf/open/floor/almayer/plating/northeast, +/area/adminlevel/ert_station/uscm_station) +"jP" = ( +/obj/structure/pipes/standard/simple/hidden/cyan{ + dir = 4 + }, +/turf/open/floor/wood, +/area/adminlevel/ert_station/uscm_station) +"jW" = ( +/obj/structure/sign/safety/fibre_optics{ + pixel_y = 32 + }, +/obj/structure/sign/safety/commline_connection{ + pixel_x = 15; + pixel_y = 32 + }, +/turf/open/floor/almayer/tcomms, +/area/adminlevel/ert_station/uscm_station) +"jZ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/pipes/standard/manifold/hidden/cyan{ + dir = 1 + }, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/ert_station/uscm_station) +"ka" = ( +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_10" + }, +/turf/open/floor/wood, +/area/adminlevel/ert_station/uscm_station) +"kb" = ( +/obj/structure/pipes/standard/simple/visible{ + dir = 6 + }, +/obj/structure/machinery/meter, +/turf/open/floor/almayer/orange, +/area/adminlevel/ert_station/uscm_station) +"kf" = ( +/obj/structure/pipes/vents/pump{ + dir = 8 + }, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"ks" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/pipes/standard/simple/hidden/cyan{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/ert_station/uscm_station) +"kA" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating/warnplate/northwest, +/area/adminlevel/ert_station/uscm_station) +"kE" = ( +/obj/structure/barricade/handrail{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer/test_floor5, +/area/adminlevel/ert_station/uscm_station) +"kX" = ( +/obj/structure/largecrate/random/barrel/red, +/turf/open/floor/almayer/orange, +/area/adminlevel/ert_station/uscm_station) +"kZ" = ( +/turf/open/space/basic, +/area/space) +"lf" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SW-out"; + layer = 2.5 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + pixel_y = 1 + }, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"li" = ( +/obj/structure/surface/table/almayer, +/obj/structure/sign/safety/terminal{ + pixel_x = -17 + }, +/obj/structure/machinery/faxmachine/corporate/liaison, +/turf/open/floor/wood/ship, +/area/adminlevel/ert_station/uscm_station) +"lj" = ( +/obj/structure/machinery/cm_vending/sorted/tech/comp_storage/antag, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"lu" = ( +/obj/item/storage/toolbox/electrical, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer/plating/northeast, +/area/adminlevel/ert_station/uscm_station) +"lz" = ( +/obj/structure/surface/table/almayer, +/obj/item/tool/hand_labeler, +/turf/open/floor/almayer/sterile_green_corner/north, +/area/adminlevel/ert_station/uscm_station) +"lA" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/junction{ + dir = 2; + icon_state = "pipe-j2" + }, +/turf/open/floor/plating/warnplate/east, +/area/adminlevel/ert_station/uscm_station) +"lE" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/almayer/glass, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"lG" = ( +/obj/structure/machinery/portable_atmospherics/powered/scrubber, +/turf/open/floor/almayer/orange/west, +/area/adminlevel/ert_station/uscm_station) +"lH" = ( +/obj/structure/machinery/chem_master, +/turf/open/floor/almayer/sterile_green_corner, +/area/adminlevel/ert_station/uscm_station) +"lI" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 2 + }, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"lN" = ( +/obj/structure/pipes/standard/simple/hidden/cyan{ + dir = 9 + }, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/ert_station/uscm_station) +"lO" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/pipes/standard/simple/hidden/cyan{ + dir = 4 + }, +/turf/open/floor/almayer/plating/northeast, +/area/adminlevel/ert_station/uscm_station) +"lP" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E" + }, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"lR" = ( +/obj/structure/filingcabinet, +/turf/open/floor/wood/ship, +/area/adminlevel/ert_station/uscm_station) +"lY" = ( +/obj/structure/barricade/handrail{ + dir = 8 + }, +/turf/open/floor/almayer/test_floor5, +/area/adminlevel/ert_station/uscm_station) +"lZ" = ( +/turf/open/floor/almayer_hull/outerhull_dir/east, +/area/space) +"md" = ( +/obj/structure/machinery/recharge_station, +/obj/structure/sign/safety/synth_storage{ + pixel_x = 32 + }, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"mh" = ( +/obj/structure/sign/safety/ladder{ + pixel_x = -24; + pixel_y = 32 + }, +/obj/item/tool/warning_cone{ + pixel_y = 13 + }, +/turf/open/floor/almayer/cargo_arrow/north, +/area/adminlevel/ert_station/uscm_station) +"mk" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/pipes/standard/manifold/fourway/hidden/cyan, +/turf/open/floor/almayer/uscm/directional/logo_c/west, +/area/adminlevel/ert_station/uscm_station) +"mo" = ( +/obj/structure/platform{ + dir = 1 + }, +/obj/structure/platform{ + dir = 8 + }, +/obj/structure/platform_decoration{ + dir = 5 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "SE-out" + }, +/turf/open/floor/almayer/plating/northeast, +/area/adminlevel/ert_station/uscm_station) +"mp" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/medidoor{ + name = "\improper Medical Bay"; + req_one_access = null + }, +/turf/open/floor/almayer/sterile_green, +/area/adminlevel/ert_station/uscm_station) +"ms" = ( +/obj/structure/sign/safety/medical{ + pixel_x = 8; + pixel_y = 32 + }, +/turf/open/floor/almayer, +/area/adminlevel/ert_station/uscm_station) +"mv" = ( +/obj/effect/decal/cleanable/cobweb2, +/obj/effect/decal/cleanable/dirt, +/obj/structure/largecrate/random/barrel/green, +/turf/open/floor/plating, +/area/adminlevel/ert_station/uscm_station) +"mw" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"mx" = ( +/obj/structure/surface/table/almayer, +/obj/structure/machinery/reagentgrinder{ + pixel_y = 3 + }, +/obj/item/stack/sheet/mineral/phoron{ + amount = 25; + pixel_x = 3; + pixel_y = 3 + }, +/turf/open/floor/almayer/sterile_green_side/east, +/area/adminlevel/ert_station/uscm_station) +"mD" = ( +/turf/closed/wall/almayer/white, +/area/adminlevel/ert_station/uscm_station) +"mF" = ( +/obj/structure/machinery/vending/cola, +/turf/open/floor/almayer/orange/north, +/area/adminlevel/ert_station/uscm_station) +"mM" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/storage/firstaid/adv, +/obj/item/storage/belt/medical/lifesaver/full, +/turf/open/floor/almayer/sterile_green_side/east, +/area/adminlevel/ert_station/uscm_station) +"mO" = ( +/obj/structure/pipes/standard/simple/hidden/cyan{ + dir = 9 + }, +/obj/structure/sign/safety/ladder{ + pixel_x = 8; + pixel_y = -32 + }, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/ert_station/uscm_station) +"mR" = ( +/obj/structure/machinery/door/poddoor/almayer{ + id = "s_umbilical"; + name = "\improper Umbillical Airlock"; + unacidable = 1 + }, +/turf/open/floor/plating, +/area/adminlevel/ert_station/uscm_station) +"mY" = ( +/obj/structure/prop/almayer/name_stencil{ + icon_state = "kurtz1"; + name = "USS Kurtz" + }, +/turf/open/floor/almayer_hull, +/area/space) +"na" = ( +/obj/effect/decal/cleanable/blood/oil, +/obj/item/hardpoint/locomotion/apc_wheels, +/turf/open/floor/almayer/plating/northeast, +/area/adminlevel/ert_station/uscm_station) +"nc" = ( +/obj/structure/pipes/vents/pump/siphon/on{ + dir = 1; + id_tag = "oxygen_lower_out" + }, +/turf/open/floor/engine, +/area/adminlevel/ert_station/uscm_station) +"nd" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer/plating_striped, +/area/adminlevel/ert_station/uscm_station) +"nq" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/pipes/standard/simple/hidden/cyan{ + dir = 5 + }, +/turf/open/floor/almayer, +/area/adminlevel/ert_station/uscm_station) +"nu" = ( +/obj/structure/pipes/standard/simple/hidden/cyan{ + dir = 4 + }, +/obj/structure/sign/safety/commline_connection{ + pixel_y = -32 + }, +/obj/structure/sign/safety/radio_rad{ + pixel_x = 16; + pixel_y = -32 + }, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/ert_station/uscm_station) +"nv" = ( +/obj/structure/surface/table/almayer, +/obj/structure/machinery/cell_charger, +/obj/item/cell/crap, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer/orange/north, +/area/adminlevel/ert_station/uscm_station) +"nw" = ( +/obj/item/ammo_magazine/revolver/mateba, +/obj/item/ammo_magazine/rifle/ap, +/obj/item/ammo_magazine/rifle/incendiary, +/obj/item/ammo_magazine/rifle/lmg, +/obj/item/ammo_magazine/rifle/mar40, +/obj/item/ammo_magazine/sniper/svd, +/obj/item/ammo_magazine/rifle/m16, +/obj/item/ammo_magazine/shotgun, +/obj/item/ammo_magazine/shotgun/incendiary, +/obj/item/ammo_magazine/smg/m39/ap, +/obj/structure/surface/rack, +/turf/open/floor/red/east, +/area/adminlevel/ert_station/uscm_station) +"nH" = ( +/obj/structure/pipes/standard/simple/hidden/cyan, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/ert_station/uscm_station) +"nJ" = ( +/obj/structure/target, +/turf/open/floor/almayer/redfull, +/area/adminlevel/ert_station/uscm_station) +"nK" = ( +/obj/structure/pipes/standard/simple/hidden/cyan, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/generic, +/turf/open/floor/dark, +/area/adminlevel/ert_station/uscm_station) +"nN" = ( +/obj/structure/sign/safety/rewire{ + pixel_x = 32 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer/orange/west, +/area/adminlevel/ert_station/uscm_station) +"nP" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SE-out"; + pixel_y = -1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/pipes/standard/simple/hidden/cyan{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/ert_station/uscm_station) +"nQ" = ( +/obj/structure/prop/almayer/name_stencil{ + icon_state = "kurtz5"; + name = "USS Kurtz" + }, +/turf/open/floor/almayer_hull, +/area/space) +"nS" = ( +/obj/structure/pipes/standard/simple/hidden/cyan{ + dir = 4 + }, +/obj/item/tool/warning_cone{ + pixel_y = 5; + pixel_x = -7 + }, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/ert_station/uscm_station) +"nW" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 2 + }, +/obj/structure/pipes/standard/simple/hidden/cyan{ + dir = 10 + }, +/turf/open/floor/almayer/plating/northeast, +/area/adminlevel/ert_station/uscm_station) +"nY" = ( +/obj/structure/pipes/standard/simple/hidden/cyan{ + dir = 4 + }, +/turf/open/floor/almayer/sterile_green_corner, +/area/adminlevel/ert_station/uscm_station) +"od" = ( +/obj/structure/prop/almayer/name_stencil{ + icon_state = "kurtz6"; + name = "USS Kurtz" + }, +/turf/open/floor/almayer_hull, +/area/space) +"oe" = ( +/obj/structure/largecrate/random/case/double, +/obj/structure/pipes/standard/simple/hidden/cyan{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/ert_station/uscm_station) +"oh" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/generic, +/turf/open/floor/plating/warnplate/west, +/area/adminlevel/ert_station/uscm_station) +"om" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating, +/area/adminlevel/ert_station/uscm_station) +"ot" = ( +/obj/structure/pipes/standard/simple/hidden/cyan, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"ow" = ( +/obj/item/hardpoint/primary/arc_sentry{ + pixel_x = 7; + pixel_y = 1 + }, +/turf/open/floor/almayer/orange, +/area/adminlevel/ert_station/uscm_station) +"oC" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "S"; + layer = 3.3 + }, +/obj/structure/machinery/autodoc_console, +/turf/open/floor/almayer/dark_sterile, +/area/adminlevel/ert_station/uscm_station) +"oD" = ( +/turf/open/floor/almayer/red, +/area/adminlevel/ert_station/uscm_station) +"oE" = ( +/obj/structure/machinery/door/airlock/almayer/engineering{ + name = "\improper Engineering Hallway"; + req_one_access = null; + indestructible = 1; + locked = 1; + opacity = 1 + }, +/turf/open/floor/almayer/orange, +/area/adminlevel/ert_station/uscm_station) +"oT" = ( +/obj/structure/pipes/standard/simple/hidden/cyan, +/turf/open/floor/carpet, +/area/adminlevel/ert_station/uscm_station) +"oU" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/engidoor{ + req_one_access = null + }, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/ert_station/uscm_station) +"pg" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/pipes/standard/manifold/hidden/cyan{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/ert_station/uscm_station) +"ph" = ( +/obj/structure/pipes/standard/simple/hidden/cyan{ + dir = 4 + }, +/turf/open/floor/almayer/sterile_green_side/north, +/area/adminlevel/ert_station/uscm_station) +"pi" = ( +/obj/structure/surface/table/almayer, +/obj/item/tool/pen/blue/clicky{ + pixel_x = 2; + pixel_y = 2 + }, +/obj/item/tool/pen/red/clicky{ + pixel_x = -1; + pixel_y = 1 + }, +/obj/item/tool/pen/clicky{ + pixel_x = 1; + pixel_y = -1 + }, +/obj/item/paper_bin/wy{ + pixel_x = -5; + pixel_y = 5 + }, +/turf/open/floor/wood/ship, +/area/adminlevel/ert_station/uscm_station) +"ps" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E" + }, +/obj/structure/sign/safety/nonpress_0g{ + pixel_x = 15; + pixel_y = -32 + }, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"py" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"pD" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/dark, +/area/adminlevel/ert_station/uscm_station) +"pF" = ( +/obj/structure/morgue{ + dir = 8 + }, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"pI" = ( +/obj/structure/machinery/photocopier/wyphotocopier, +/turf/open/floor/wood, +/area/adminlevel/ert_station/uscm_station) +"pM" = ( +/obj/item/paper_bin, +/obj/item/tool/pen, +/obj/structure/surface/table/reinforced/prison, +/turf/open/floor/almayer/sterile_green_side/west, +/area/adminlevel/ert_station/uscm_station) +"pP" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer/dark_sterile, +/area/adminlevel/ert_station/uscm_station) +"pR" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"pS" = ( +/obj/structure/bed/chair{ + dir = 1 + }, +/turf/open/floor/almayer, +/area/adminlevel/ert_station/uscm_station) +"pX" = ( +/obj/structure/machinery/door/airlock/almayer/maint{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/adminlevel/ert_station/uscm_station) +"qc" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"qi" = ( +/obj/structure/ore_box, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/adminlevel/ert_station/uscm_station) +"qr" = ( +/turf/open/floor/almayer_hull/outerhull_dir/southeast, +/area/space) +"qu" = ( +/obj/structure/machinery/vending/coffee, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/ert_station/uscm_station) +"qx" = ( +/obj/structure/largecrate/random/case/double, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"qy" = ( +/obj/structure/machinery/telecomms/hub/preset, +/turf/open/floor/almayer/tcomms, +/area/adminlevel/ert_station/uscm_station) +"qE" = ( +/turf/open/floor/almayer_hull/outerhull_dir/north, +/area/space) +"qH" = ( +/obj/structure/flora/pottedplant, +/turf/open/floor/wood, +/area/adminlevel/ert_station/uscm_station) +"qI" = ( +/turf/open/floor/plating, +/area/adminlevel/ert_station/uscm_station) +"qL" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/ert_station/uscm_station) +"qQ" = ( +/turf/open/floor/almayer/sterile_green_corner/west, +/area/adminlevel/ert_station/uscm_station) +"qT" = ( +/obj/structure/largecrate/random/case/small, +/obj/structure/largecrate/random/mini/ammo{ + pixel_y = 7; + pixel_x = 3 + }, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"ra" = ( +/obj/structure/pipes/standard/simple/hidden/cyan, +/obj/structure/machinery/door/airlock/almayer/secure/reinforced{ + dir = 2; + name = "Telecommunications" + }, +/turf/open/floor/almayer/test_floor4, +/area/adminlevel/ert_station/uscm_station) +"rd" = ( +/obj/structure/ladder{ + id = "regladder6"; + height = 1 + }, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"rj" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/pipes/vents/pump{ + dir = 1 + }, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"rr" = ( +/turf/open/floor/almayer_hull/outerhull_dir/west, +/area/space) +"rs" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer/no_build, +/area/adminlevel/ert_station/uscm_station) +"rw" = ( +/obj/structure/barricade/handrail{ + dir = 8 + }, +/obj/structure/sign/safety/distribution_pipes{ + pixel_x = 32; + pixel_y = 8 + }, +/obj/structure/sign/safety/rewire{ + pixel_x = 32; + pixel_y = -8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer/test_floor5, +/area/adminlevel/ert_station/uscm_station) +"rC" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer/redfull, +/area/adminlevel/ert_station/uscm_station) +"rD" = ( +/obj/structure/target, +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 2 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer/plating/northeast, +/area/adminlevel/ert_station/uscm_station) +"rG" = ( +/obj/structure/pipes/standard/simple/hidden/cyan{ + dir = 10 + }, +/obj/structure/sign/safety/ladder{ + pixel_x = 8; + pixel_y = 32 + }, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/ert_station/uscm_station) +"rP" = ( +/obj/structure/pipes/standard/simple/hidden/cyan, +/turf/open/floor/almayer/sterile_green, +/area/adminlevel/ert_station/uscm_station) +"rS" = ( +/obj/structure/pipes/standard/simple/hidden/cyan{ + dir = 5 + }, +/turf/open/floor/redfull/northwest, +/area/adminlevel/ert_station/uscm_station) +"rW" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/medidoor{ + dir = 2; + name = "\improper Medical Bay"; + req_access = null; + req_one_access = null + }, +/turf/open/floor/almayer/sterile_green_side/west, +/area/adminlevel/ert_station/uscm_station) +"rY" = ( +/obj/structure/machinery/cm_vending/sorted/tech/comp_storage, +/turf/open/floor/almayer/no_build, +/area/adminlevel/ert_station/uscm_station) +"sa" = ( +/obj/structure/ladder{ + id = "regladder5"; + height = 1 + }, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"sb" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/ladder{ + id = "regladder1"; + height = 2 + }, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"sd" = ( +/obj/structure/platform, +/obj/item/storage/toolbox/mechanical, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer/plating/northeast, +/area/adminlevel/ert_station/uscm_station) +"sg" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/almayer/plating_striped, +/area/adminlevel/ert_station/uscm_station) +"si" = ( +/obj/structure/sign/safety/hazard{ + pixel_x = -22 + }, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"sj" = ( +/obj/structure/machinery/door/airlock/almayer/medical{ + dir = 1; + id_tag = "or01"; + name = "Operating Theatre 1"; + req_one_access = null + }, +/turf/open/floor/almayer/test_floor4, +/area/adminlevel/ert_station/uscm_station) +"st" = ( +/obj/structure/bed/roller, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"su" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/ert_station/uscm_station) +"sy" = ( +/obj/structure/largecrate/supply, +/turf/open/floor/almayer/plating_striped, +/area/adminlevel/ert_station/uscm_station) +"sG" = ( +/obj/structure/pipes/standard/simple/hidden/cyan{ + dir = 5 + }, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"sH" = ( +/obj/structure/platform, +/obj/structure/platform{ + dir = 8 + }, +/obj/structure/platform_decoration{ + dir = 10; + layer = 3.51 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_y = 1 + }, +/turf/open/floor/almayer/plating/northeast, +/area/adminlevel/ert_station/uscm_station) +"sL" = ( +/obj/structure/machinery/optable, +/obj/item/tank/anesthetic, +/obj/structure/sign/safety/biohazard{ + pixel_x = -17 + }, +/turf/open/floor/almayer/sterile_green_side/west, +/area/adminlevel/ert_station/uscm_station) +"sN" = ( +/obj/effect/decal/cleanable/blood/oil, +/obj/structure/pipes/standard/simple/hidden/cyan{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/ert_station/uscm_station) +"sU" = ( +/obj/structure/pipes/standard/simple/hidden/cyan, +/turf/open/floor/almayer, +/area/adminlevel/ert_station/uscm_station) +"tf" = ( +/obj/structure/surface/table/almayer, +/obj/item/paper, +/obj/item/tool/lighter/random, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"th" = ( +/obj/structure/surface/table/almayer, +/obj/item/folder/black, +/obj/structure/machinery/door_control{ + id = "tcomms"; + name = "Telecommunications Entrance"; + pixel_y = -19 + }, +/turf/open/floor/dark, +/area/adminlevel/ert_station/uscm_station) +"tl" = ( +/obj/structure/largecrate/supply/powerloader, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"to" = ( +/obj/structure/machinery/door/airlock/almayer/maint{ + dir = 1 + }, +/turf/open/floor/almayer/test_floor4, +/area/adminlevel/ert_station/uscm_station) +"tw" = ( +/obj/structure/barricade/metal{ + dir = 4 + }, +/turf/open/floor/almayer/cargo, +/area/adminlevel/ert_station/uscm_station) +"tx" = ( +/obj/structure/machinery/door/airlock/almayer/secure/reinforced{ + dir = 2; + name = "Telecommunications" + }, +/turf/open/floor/almayer/test_floor4, +/area/adminlevel/ert_station/uscm_station) +"ty" = ( +/obj/structure/machinery/computer/skills{ + req_one_access_txt = "200" + }, +/obj/structure/surface/table/woodentable/fancy, +/turf/open/floor/carpet, +/area/adminlevel/ert_station/uscm_station) +"tC" = ( +/obj/structure/machinery/iv_drip, +/turf/open/floor/almayer/sterile_green_corner/west, +/area/adminlevel/ert_station/uscm_station) +"tD" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"tE" = ( +/obj/structure/closet/secure_closet/securecom, +/obj/item/weapon/gun/smartgun, +/turf/open/floor/red/northwest, +/area/adminlevel/ert_station/uscm_station) +"tM" = ( +/obj/structure/ship_ammo/minirocket{ + pixel_y = 9; + layer = 3.1 + }, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"tP" = ( +/obj/vehicle/powerloader{ + dir = 8 + }, +/obj/structure/pipes/standard/simple/hidden/cyan{ + dir = 9 + }, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/ert_station/uscm_station) +"tY" = ( +/obj/structure/sign/safety/refridgeration{ + pixel_y = 32 + }, +/obj/structure/sign/safety/medical{ + pixel_x = 15; + pixel_y = 32 + }, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/ert_station/uscm_station) +"ue" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + pixel_x = -1; + pixel_y = 1 + }, +/turf/open/floor/almayer/orangefull, +/area/adminlevel/ert_station/uscm_station) +"ul" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/largecrate/random/barrel/blue, +/turf/open/floor/almayer/plating_striped, +/area/adminlevel/ert_station/uscm_station) +"us" = ( +/obj/structure/bed/chair{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer, +/area/adminlevel/ert_station/uscm_station) +"ux" = ( +/obj/structure/machinery/portable_atmospherics/powered/pump, +/obj/structure/sign/safety/high_rad{ + pixel_x = 32; + pixel_y = -8 + }, +/obj/structure/sign/safety/hazard{ + pixel_x = 32; + pixel_y = 7 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "W"; + pixel_x = -1 + }, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"uD" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/obj/structure/platform, +/turf/open/floor/almayer/plating/northeast, +/area/adminlevel/ert_station/uscm_station) +"uF" = ( +/obj/structure/barricade/metal{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/pipes/standard/simple/hidden/cyan{ + dir = 4 + }, +/turf/open/floor/almayer/cargo, +/area/adminlevel/ert_station/uscm_station) +"uG" = ( +/obj/structure/surface/table/reinforced/black, +/obj/item/weapon/gun/rifle/m41a/training, +/turf/open/floor/almayer/red/southwest, +/area/adminlevel/ert_station/uscm_station) +"uL" = ( +/obj/structure/pipes/standard/simple/hidden/cyan, +/turf/open/floor/wood/ship, +/area/adminlevel/ert_station/uscm_station) +"uM" = ( +/obj/structure/largecrate/guns, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/adminlevel/ert_station/uscm_station) +"uR" = ( +/obj/structure/window/framed/almayer/white, +/turf/open/floor/plating/platebotc, +/area/adminlevel/ert_station/uscm_station) +"uY" = ( +/obj/structure/bed/chair/comfy/orange, +/obj/structure/pipes/standard/simple/hidden/cyan, +/turf/open/floor/carpet, +/area/adminlevel/ert_station/uscm_station) +"vc" = ( +/obj/structure/machinery/door/airlock/almayer/generic{ + dir = 2; + name = "\improper Weyland-Yutani Office" + }, +/obj/structure/pipes/standard/simple/hidden/cyan, +/turf/open/floor/wood/ship, +/area/adminlevel/ert_station/uscm_station) +"vm" = ( +/obj/structure/bed/chair{ + dir = 1 + }, +/obj/structure/sign/poster/ad{ + pixel_x = 30 + }, +/turf/open/floor/wood/ship, +/area/adminlevel/ert_station/uscm_station) +"vo" = ( +/obj/effect/decal/cleanable/dirt, +/turf/closed/wall/almayer/outer, +/area/adminlevel/ert_station/uscm_station) +"vu" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/device/defibrillator/upgraded, +/obj/item/device/defibrillator/upgraded, +/turf/open/floor/almayer/sterile_green_corner, +/area/adminlevel/ert_station/uscm_station) +"vv" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/safety/medical{ + pixel_x = 16; + pixel_y = 32 + }, +/obj/structure/sign/safety/restrictedarea{ + pixel_y = 32 + }, +/turf/open/floor/almayer, +/area/adminlevel/ert_station/uscm_station) +"vx" = ( +/obj/structure/blocker/invisible_wall, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"vy" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/warnplate/west, +/area/adminlevel/ert_station/uscm_station) +"vF" = ( +/obj/structure/surface/rack, +/obj/item/storage/box/bodybags, +/obj/item/storage/box/bodybags, +/obj/item/storage/box/bodybags, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"vG" = ( +/obj/structure/window/framed/almayer/white, +/turf/open/floor/plating, +/area/adminlevel/ert_station/uscm_station) +"vH" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/obj/structure/platform{ + dir = 4 + }, +/obj/structure/platform, +/turf/open/floor/almayer/plating/northeast, +/area/adminlevel/ert_station/uscm_station) +"vI" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/nosmoking_2{ + pixel_y = 30 + }, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"wc" = ( +/obj/structure/reagent_dispensers/fueltank, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer/plating_striped/north, +/area/adminlevel/ert_station/uscm_station) +"wi" = ( +/obj/effect/decal/cleanable/blood/oil, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer/no_build, +/area/adminlevel/ert_station/uscm_station) +"wo" = ( +/obj/structure/machinery/suit_storage_unit/carbon_unit, +/obj/structure/pipes/standard/simple/hidden/cyan, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/dark, +/area/adminlevel/ert_station/uscm_station) +"wp" = ( +/obj/structure/platform{ + dir = 1 + }, +/obj/structure/platform{ + dir = 4 + }, +/obj/structure/platform_decoration{ + dir = 9 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "SW-out"; + layer = 2.5 + }, +/turf/open/floor/almayer/plating/northeast, +/area/adminlevel/ert_station/uscm_station) +"wr" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/redfull/northwest, +/area/adminlevel/ert_station/uscm_station) +"ws" = ( +/obj/structure/bookcase{ + dir = 4 + }, +/obj/item/book/manual/evaguide, +/obj/item/book/manual/ripley_build_and_repair, +/turf/open/floor/wood, +/area/adminlevel/ert_station/uscm_station) +"wt" = ( +/obj/structure/surface/table/almayer, +/obj/item/folder/yellow, +/obj/item/tool/pen, +/turf/open/floor/almayer/orange/east, +/area/adminlevel/ert_station/uscm_station) +"ww" = ( +/turf/open/floor/almayer_hull/outerhull_dir/northeast, +/area/space) +"wx" = ( +/turf/open/floor/red/north, +/area/adminlevel/ert_station/uscm_station) +"wA" = ( +/obj/structure/bed/chair/office/dark{ + dir = 8 + }, +/obj/structure/sign/safety/distribution_pipes{ + pixel_x = 15; + pixel_y = 32 + }, +/turf/open/floor/almayer/orange/east, +/area/adminlevel/ert_station/uscm_station) +"wE" = ( +/obj/effect/decal/cleanable/blood/oil, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/ert_station/uscm_station) +"wF" = ( +/turf/open/floor/almayer/uscm/directional/northeast, +/area/adminlevel/ert_station/uscm_station) +"wH" = ( +/obj/structure/surface/table/almayer, +/obj/structure/window/reinforced{ + dir = 8; + health = 80; + req_one_access = list(100) + }, +/obj/structure/blocker/invisible_wall, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"wI" = ( +/obj/structure/bed/chair/comfy/orange, +/turf/open/floor/carpet, +/area/adminlevel/ert_station/uscm_station) +"wN" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/largecrate/random/barrel/green, +/turf/open/floor/plating/platebot, +/area/adminlevel/ert_station/uscm_station) +"wO" = ( +/obj/structure/machinery/portable_atmospherics/canister/air, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"wW" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/pipes/standard/simple/hidden/cyan{ + dir = 4 + }, +/turf/open/floor/almayer, +/area/adminlevel/ert_station/uscm_station) +"xb" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/pipes/standard/simple/hidden/cyan, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/ert_station/uscm_station) +"xl" = ( +/turf/open/floor/red/northeast, +/area/adminlevel/ert_station/uscm_station) +"xn" = ( +/obj/structure/window/framed/almayer/hull, +/obj/structure/pipes/standard/simple/visible, +/turf/open/floor/engine, +/area/adminlevel/ert_station/uscm_station) +"xu" = ( +/obj/structure/machinery/iv_drip, +/obj/effect/decal/cleanable/dirt, +/obj/structure/pipes/vents/pump{ + dir = 8 + }, +/turf/open/floor/almayer/sterile_green_side/east, +/area/adminlevel/ert_station/uscm_station) +"xw" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/pipes/standard/simple/hidden/cyan{ + dir = 9 + }, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/ert_station/uscm_station) +"xA" = ( +/obj/structure/largecrate/random, +/obj/item/seeds/ambrosiavulgarisseed{ + layer = 2.1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/generic, +/turf/open/floor/plating, +/area/adminlevel/ert_station/uscm_station) +"xB" = ( +/obj/structure/surface/table/almayer, +/obj/item/folder/black_random{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/tool/stamp{ + name = "Corporate Liaison's stamp"; + pixel_x = -8; + pixel_y = 6 + }, +/turf/open/floor/wood/ship, +/area/adminlevel/ert_station/uscm_station) +"xF" = ( +/obj/structure/pipes/standard/manifold/hidden/cyan{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/ert_station/uscm_station) +"xK" = ( +/obj/structure/sign/safety/ladder{ + pixel_x = 32 + }, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"xL" = ( +/obj/structure/sign/safety/ladder{ + pixel_x = 8 + }, +/turf/closed/wall/almayer, +/area/adminlevel/ert_station/uscm_station) +"xP" = ( +/obj/structure/machinery/computer/telecomms/server, +/turf/open/floor/dark, +/area/adminlevel/ert_station/uscm_station) +"xT" = ( +/obj/structure/janitorialcart, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/adminlevel/ert_station/uscm_station) +"xU" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/pipes/vents/pump, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"xX" = ( +/obj/structure/sign/safety/hazard{ + pixel_y = 32 + }, +/obj/structure/sign/safety/radio_rad{ + pixel_x = 16; + pixel_y = 32 + }, +/turf/open/floor/almayer/tcomms, +/area/adminlevel/ert_station/uscm_station) +"yd" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/pipes/standard/manifold/hidden/cyan{ + dir = 8 + }, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/ert_station/uscm_station) +"yf" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/pipes/vents/pump{ + dir = 8 + }, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"yg" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"ym" = ( +/obj/structure/bed, +/obj/item/bedsheet/medical, +/turf/open/floor/almayer/sterile_green_side/west, +/area/adminlevel/ert_station/uscm_station) +"yq" = ( +/obj/structure/largecrate/supply/generator, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"yr" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + pixel_y = 1 + }, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"yx" = ( +/obj/structure/prop/dam/crane, +/obj/structure/prop{ + icon = 'icons/obj/structures/props/almayer_props64.dmi'; + icon_state = "cooling_system"; + name = "Damaged FS/ACS-9 cooling system"; + desc = "A cooling system for the Tripoli. It produces additional cooling reducing delays between launch. The pipes are crooked and bent, hoses are sliced open, and that's not even mentioning the bullet holes. Looks to be an older model as well."; + density = 1; + pixel_y = 16; + layer = 3.1 + }, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"yz" = ( +/obj/structure/largecrate/supply/ammo/m41a, +/obj/structure/largecrate/supply/ammo/sentry{ + pixel_y = 8 + }, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/ert_station/uscm_station) +"yL" = ( +/obj/structure/largecrate/supply, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer/plating_striped/north, +/area/adminlevel/ert_station/uscm_station) +"yO" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/almayer/glass{ + dir = 1 + }, +/obj/structure/pipes/standard/simple/hidden/cyan{ + dir = 4 + }, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"yR" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S"; + layer = 3.3 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/pipes/standard/manifold/hidden/cyan, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/ert_station/uscm_station) +"yS" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment, +/obj/item/clothing/glasses/welding, +/obj/structure/sign/safety/distribution_pipes{ + pixel_x = 32; + pixel_y = 6 + }, +/turf/open/floor/plating/warnplate/east, +/area/adminlevel/ert_station/uscm_station) +"yU" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SE-out"; + pixel_x = 1 + }, +/turf/open/floor/almayer/orangefull, +/area/adminlevel/ert_station/uscm_station) +"yX" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W"; + layer = 3.3 + }, +/turf/open/floor/almayer/plating/northeast, +/area/adminlevel/ert_station/uscm_station) +"yY" = ( +/obj/structure/pipes/standard/manifold/hidden/cyan{ + dir = 1 + }, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/ert_station/uscm_station) +"zi" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/safety/nonpress_0g{ + pixel_x = 8; + pixel_y = -32 + }, +/obj/structure/pipes/vents/pump{ + dir = 1 + }, +/turf/open/floor/almayer/plating_striped, +/area/adminlevel/ert_station/uscm_station) +"zm" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/tool/weldingtool, +/turf/open/floor/plating/warnplate/west, +/area/adminlevel/ert_station/uscm_station) +"zo" = ( +/obj/structure/sign/safety/commline_connection{ + pixel_y = -32 + }, +/obj/structure/sign/safety/laser{ + pixel_y = -32; + pixel_x = 13 + }, +/turf/open/floor/almayer/tcomms, +/area/adminlevel/ert_station/uscm_station) +"zr" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S"; + layer = 3.3 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/pipes/standard/simple/hidden/cyan{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/ert_station/uscm_station) +"zt" = ( +/obj/structure/pipes/vents/pump{ + dir = 1 + }, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"zC" = ( +/obj/structure/pipes/standard/simple/hidden/cyan{ + dir = 9 + }, +/turf/open/floor/almayer/sterile_green_side/north, +/area/adminlevel/ert_station/uscm_station) +"zG" = ( +/obj/item/reagent_container/spray/cleaner{ + desc = "Someone has crossed out the Space from Space Cleaner and written in Surgery. 'Do not remove under punishment of death!!!' is scrawled on the back."; + name = "Surgery Cleaner" + }, +/obj/structure/surface/table/reinforced/prison, +/turf/open/floor/almayer/sterile_green_corner/west, +/area/adminlevel/ert_station/uscm_station) +"zK" = ( +/turf/closed/wall/almayer/outer, +/area/adminlevel/ert_station/uscm_station) +"zO" = ( +/obj/structure/largecrate/supply/floodlights, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"zQ" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S"; + pixel_y = -1 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 2 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer/plating/northeast, +/area/adminlevel/ert_station/uscm_station) +"zT" = ( +/obj/structure/pipes/standard/simple/hidden/cyan{ + dir = 10 + }, +/turf/open/floor/wood/ship, +/area/adminlevel/ert_station/uscm_station) +"zW" = ( +/obj/item/storage/box/bodybags{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/storage/box/bodybags, +/obj/item/storage/firstaid/adv, +/obj/item/storage/firstaid/o2{ + layer = 2.8; + pixel_x = 4; + pixel_y = 6 + }, +/obj/structure/surface/table/almayer, +/turf/open/floor/almayer/sterile_green_corner/east, +/area/adminlevel/ert_station/uscm_station) +"zZ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/generic, +/turf/open/floor/dark, +/area/adminlevel/ert_station/uscm_station) +"Ad" = ( +/obj/item/tool/warning_cone, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer/cargo_arrow/north, +/area/adminlevel/ert_station/uscm_station) +"Am" = ( +/obj/structure/morgue, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"AA" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/pipes/standard/simple/hidden/cyan{ + dir = 4 + }, +/turf/open/floor/red/east, +/area/adminlevel/ert_station/uscm_station) +"AR" = ( +/turf/open/floor/dark, +/area/adminlevel/ert_station/uscm_station) +"AT" = ( +/turf/open/floor/wood, +/area/adminlevel/ert_station/uscm_station) +"Ba" = ( +/obj/structure/machinery/door_display/research_cell{ + dir = 4; + id = "Containment Cell 4"; + name = "Control Panel"; + pixel_x = -15; + req_access_txt = "200" + }, +/obj/item/storage/fancy/cigarettes/blackpack{ + pixel_x = -1; + pixel_y = 1 + }, +/obj/structure/surface/table/woodentable/fancy, +/obj/item/storage/fancy/cigarettes/wypacket{ + pixel_x = 6; + pixel_y = 3 + }, +/obj/item/tool/lighter/zippo/gold{ + pixel_x = 2 + }, +/turf/open/floor/carpet, +/area/adminlevel/ert_station/uscm_station) +"Bc" = ( +/turf/open/floor/almayer/plating/northeast, +/area/adminlevel/ert_station/uscm_station) +"Bh" = ( +/obj/structure/ladder{ + id = "regladder3"; + height = 2 + }, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"Bk" = ( +/obj/structure/machinery/camera/autoname/almayer{ + dir = 1; + name = "ship-grade camera" + }, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"Bn" = ( +/obj/structure/pipes/vents/pump, +/turf/open/floor/redfull/northwest, +/area/adminlevel/ert_station/uscm_station) +"Bp" = ( +/obj/structure/machinery/door/airlock/almayer/maint{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/adminlevel/ert_station/uscm_station) +"Bs" = ( +/turf/open/floor/almayer_hull, +/area/space) +"Bv" = ( +/obj/structure/morgue/crematorium{ + id = "crema" + }, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"Bz" = ( +/obj/structure/sign/safety/ammunition{ + pixel_x = -22 + }, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"BF" = ( +/obj/structure/bed/chair/wheelchair{ + dir = 8 + }, +/turf/open/floor/almayer/sterile_green_side/east, +/area/adminlevel/ert_station/uscm_station) +"BH" = ( +/obj/structure/closet/toolcloset, +/turf/open/floor/almayer/cargo, +/area/adminlevel/ert_station/uscm_station) +"BI" = ( +/turf/closed/wall/almayer/outer, +/area/space) +"BJ" = ( +/obj/structure/pipes/standard/simple/hidden/cyan{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"BO" = ( +/obj/structure/surface/table/almayer, +/obj/item/device/flashlight/lamp, +/turf/open/floor/dark, +/area/adminlevel/ert_station/uscm_station) +"BQ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/pipes/standard/manifold/hidden/cyan{ + dir = 8 + }, +/turf/open/floor/almayer/dark_sterile, +/area/adminlevel/ert_station/uscm_station) +"BS" = ( +/obj/structure/pipes/standard/manifold/hidden/cyan{ + dir = 8 + }, +/turf/open/floor/wood/ship, +/area/adminlevel/ert_station/uscm_station) +"BX" = ( +/obj/structure/machinery/door/airlock/almayer/medical{ + access_modified = 1; + dir = 2; + name = "Morgue"; + req_access_txt = "25"; + req_one_access = null + }, +/obj/structure/pipes/standard/simple/hidden/cyan, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"Ch" = ( +/obj/structure/surface/table/reinforced/black, +/obj/item/weapon/gun/rifle/l42a/training, +/turf/open/floor/almayer/red/north, +/area/adminlevel/ert_station/uscm_station) +"Cj" = ( +/obj/structure/pipes/standard/simple/hidden/cyan, +/turf/open/floor/almayer/uscm/directional/north, +/area/adminlevel/ert_station/uscm_station) +"Cl" = ( +/obj/structure/surface/table/almayer, +/obj/item/device/lightreplacer, +/turf/open/floor/almayer/orange/north, +/area/adminlevel/ert_station/uscm_station) +"Cx" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W"; + layer = 3.3 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 2 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + pixel_x = -1; + pixel_y = 1 + }, +/obj/structure/pipes/standard/simple/hidden/cyan{ + dir = 4 + }, +/turf/open/floor/almayer/plating/northeast, +/area/adminlevel/ert_station/uscm_station) +"CC" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SW-out"; + pixel_x = -1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer/orangefull, +/area/adminlevel/ert_station/uscm_station) +"CF" = ( +/obj/structure/pipes/vents/pump{ + dir = 4 + }, +/turf/open/floor/almayer, +/area/adminlevel/ert_station/uscm_station) +"CL" = ( +/turf/open/floor/podhatch/north, +/area/adminlevel/ert_station/uscm_station) +"CN" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/pipes/standard/simple/visible{ + dir = 4 + }, +/obj/structure/sign/safety/fire_haz{ + pixel_y = -32 + }, +/obj/structure/sign/safety/hazard{ + pixel_x = 14; + pixel_y = -32 + }, +/turf/open/floor/almayer/orange, +/area/adminlevel/ert_station/uscm_station) +"CO" = ( +/turf/open/floor/almayer/dark_sterile, +/area/adminlevel/ert_station/uscm_station) +"CR" = ( +/obj/structure/machinery/door/poddoor/almayer, +/turf/closed/wall/almayer/outer, +/area/adminlevel/ert_station/uscm_station) +"CS" = ( +/turf/open/floor/almayer/redcorner/west, +/area/adminlevel/ert_station/uscm_station) +"CT" = ( +/obj/structure/pipes/standard/simple/visible{ + dir = 4 + }, +/turf/open/floor/almayer/orange, +/area/adminlevel/ert_station/uscm_station) +"Df" = ( +/obj/structure/surface/table/almayer, +/obj/item/device/radio, +/turf/open/floor/dark, +/area/adminlevel/ert_station/uscm_station) +"Dg" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SE-out" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer/orangefull, +/area/adminlevel/ert_station/uscm_station) +"Dh" = ( +/obj/structure/largecrate/supply/explosives/mines, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/ert_station/uscm_station) +"Dj" = ( +/obj/effect/decal/cleanable/blood/oil, +/obj/effect/decal/cleanable/dirt, +/obj/structure/pipes/standard/simple/hidden/cyan{ + dir = 4 + }, +/turf/open/floor/almayer/orange, +/area/adminlevel/ert_station/uscm_station) +"Dm" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/pipes/standard/simple/hidden/cyan, +/turf/open/floor/almayer/dark_sterile, +/area/adminlevel/ert_station/uscm_station) +"Dp" = ( +/turf/open/floor/almayer, +/area/adminlevel/ert_station/uscm_station) +"Dw" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/ladder{ + id = "regladder1"; + height = 1 + }, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"Dy" = ( +/obj/structure/pipes/vents/pump, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"Dz" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"DE" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/almayer/plating_striped/north, +/area/adminlevel/ert_station/uscm_station) +"DG" = ( +/obj/structure/platform, +/obj/structure/platform{ + dir = 4 + }, +/obj/structure/platform_decoration{ + dir = 6; + layer = 3.51 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + pixel_y = 1 + }, +/turf/open/floor/almayer/plating/northeast, +/area/adminlevel/ert_station/uscm_station) +"DH" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/largecrate/random/barrel/blue, +/turf/open/floor/plating, +/area/adminlevel/ert_station/uscm_station) +"DM" = ( +/obj/structure/surface/table/almayer, +/obj/item/storage/belt/utility/full, +/obj/item/clothing/glasses/welding, +/turf/open/floor/almayer/no_build, +/area/adminlevel/ert_station/uscm_station) +"DR" = ( +/obj/structure/sign/safety/ladder{ + pixel_x = 32; + pixel_y = 6 + }, +/obj/structure/pipes/standard/manifold/hidden/cyan{ + dir = 4 + }, +/obj/structure/sign/safety/hazard{ + pixel_x = 32; + pixel_y = -8 + }, +/turf/open/floor/almayer/plating/northeast, +/area/adminlevel/ert_station/uscm_station) +"DW" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/adminlevel/ert_station/uscm_station) +"Ee" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_y = 2 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer/orangefull, +/area/adminlevel/ert_station/uscm_station) +"Ef" = ( +/obj/structure/pipes/standard/simple/visible{ + dir = 10 + }, +/obj/structure/machinery/meter, +/turf/open/floor/almayer/orange, +/area/adminlevel/ert_station/uscm_station) +"Ei" = ( +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_18"; + pixel_y = 7 + }, +/turf/open/floor/wood/ship, +/area/adminlevel/ert_station/uscm_station) +"Ej" = ( +/obj/structure/pipes/standard/simple/hidden/cyan{ + dir = 6 + }, +/obj/structure/ladder{ + id = "regladder3"; + height = 1 + }, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"Eq" = ( +/obj/structure/bed/chair/office/light, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/dark, +/area/adminlevel/ert_station/uscm_station) +"Er" = ( +/turf/open/floor/almayer/sterile_green_side, +/area/adminlevel/ert_station/uscm_station) +"Eu" = ( +/obj/structure/window/framed/almayer/hull, +/obj/structure/blocker/invisible_wall, +/turf/open/floor/plating, +/area/adminlevel/ert_station/uscm_station) +"Ey" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/obj/structure/platform{ + dir = 4 + }, +/turf/open/floor/almayer/plating/northeast, +/area/adminlevel/ert_station/uscm_station) +"EA" = ( +/obj/structure/machinery/power/port_gen/pacman, +/turf/open/floor/almayer/plating_striped/north, +/area/adminlevel/ert_station/uscm_station) +"EG" = ( +/turf/open/floor/engine, +/area/adminlevel/ert_station/uscm_station) +"EH" = ( +/obj/structure/machinery/chem_dispenser/medbay, +/obj/item/reagent_container/glass/beaker/bluespace, +/turf/open/floor/almayer/sterile_green_side/east, +/area/adminlevel/ert_station/uscm_station) +"EI" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/pipes/standard/simple/hidden/cyan{ + dir = 5 + }, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/ert_station/uscm_station) +"EL" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SW-out"; + layer = 2.5; + pixel_x = -1 + }, +/obj/structure/pipes/standard/simple/hidden/cyan{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/ert_station/uscm_station) +"EN" = ( +/obj/structure/bed/chair/office/light, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer/sterile_green_side/west, +/area/adminlevel/ert_station/uscm_station) +"EQ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/pipes/standard/simple/hidden/cyan, +/turf/open/floor/almayer, +/area/adminlevel/ert_station/uscm_station) +"ER" = ( +/obj/structure/surface/table/almayer, +/obj/item/tool/extinguisher, +/turf/open/floor/dark, +/area/adminlevel/ert_station/uscm_station) +"EY" = ( +/obj/structure/window/framed/almayer, +/turf/open/floor/plating, +/area/adminlevel/ert_station/uscm_station) +"Fb" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/safety/maint{ + pixel_x = 8; + pixel_y = -32 + }, +/turf/open/floor/almayer, +/area/adminlevel/ert_station/uscm_station) +"Fg" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W"; + layer = 3.3 + }, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"Fk" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E" + }, +/obj/structure/platform{ + dir = 8 + }, +/obj/structure/platform, +/obj/structure/platform_decoration{ + dir = 10 + }, +/turf/open/floor/almayer/plating/northeast, +/area/adminlevel/ert_station/uscm_station) +"Fm" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/pipes/standard/simple/hidden/cyan{ + dir = 10 + }, +/turf/open/floor/almayer/orange, +/area/adminlevel/ert_station/uscm_station) +"Fo" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/almayer/glass{ + dir = 1 + }, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"Fq" = ( +/obj/structure/largecrate/random, +/obj/item/ammo_magazine/pistol/holdout{ + layer = 2 + }, +/turf/open/floor/plating, +/area/adminlevel/ert_station/uscm_station) +"Ft" = ( +/obj/structure/closet/secure_closet/guncabinet/red/cic_armory_mk1_rifle_ap, +/turf/open/floor/red/west, +/area/adminlevel/ert_station/uscm_station) +"Fx" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/pipes/standard/simple/hidden/cyan, +/obj/structure/sign/safety/medical{ + pixel_x = -20; + pixel_y = -7 + }, +/obj/structure/sign/safety/restrictedarea{ + pixel_x = -20; + pixel_y = 8 + }, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/ert_station/uscm_station) +"Fz" = ( +/obj/structure/machinery/cm_vending/sorted/medical/chemistry, +/turf/open/floor/almayer/sterile_green_side/north, +/area/adminlevel/ert_station/uscm_station) +"FB" = ( +/obj/structure/closet/secure_closet/chemical{ + req_access_txt = "100" + }, +/turf/open/floor/almayer/sterile_green_corner, +/area/adminlevel/ert_station/uscm_station) +"FE" = ( +/obj/item/book/manual/security_space_law, +/obj/item/tool/crowbar, +/obj/structure/surface/table/almayer, +/obj/structure/pipes/vents/pump{ + dir = 8 + }, +/obj/item/storage/backpack/satchel, +/turf/open/floor/wood, +/area/adminlevel/ert_station/uscm_station) +"FG" = ( +/obj/structure/sign/safety/maint{ + pixel_x = -17 + }, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/ert_station/uscm_station) +"FH" = ( +/obj/structure/machinery/cm_vending/sorted/cargo_guns/squad_prep, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"FV" = ( +/obj/structure/machinery/door/airlock/almayer/engineering{ + name = "\improper Engineering Hallway"; + req_one_access = null; + indestructible = 1; + locked = 1; + opacity = 1 + }, +/turf/open/floor/almayer/no_build, +/area/adminlevel/ert_station/uscm_station) +"FX" = ( +/obj/structure/machinery/door/airlock/almayer/security/glass/reinforced{ + name = "\improper Armory" + }, +/obj/structure/pipes/standard/simple/hidden/cyan{ + dir = 4 + }, +/turf/open/floor/redfull/northwest, +/area/adminlevel/ert_station/uscm_station) +"FZ" = ( +/obj/structure/pipes/standard/simple/hidden/cyan{ + dir = 5 + }, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/ert_station/uscm_station) +"Gd" = ( +/obj/structure/platform_decoration, +/obj/item/hardpoint/armor/paladin, +/turf/open/floor/almayer/plating/northeast, +/area/adminlevel/ert_station/uscm_station) +"Ge" = ( +/obj/structure/pipes/standard/simple/hidden/cyan, +/obj/structure/sign/safety/medical{ + pixel_x = -16 + }, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/ert_station/uscm_station) +"Gf" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/largecrate/supply/explosives/grenades, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"Gg" = ( +/obj/structure/blocker/invisible_wall, +/obj/structure/sign/safety/ladder{ + pixel_x = 32 + }, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"Gj" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating/warnplate/southwest, +/area/adminlevel/ert_station/uscm_station) +"Gm" = ( +/obj/structure/machinery/door/airlock/almayer/medical/glass{ + access_modified = 1; + name = "\improper Chemistry Laboratory"; + req_access_txt = "20"; + req_one_access = null + }, +/obj/structure/pipes/standard/simple/hidden/cyan{ + dir = 4 + }, +/obj/structure/sign/safety/chem_lab{ + pixel_x = 7; + pixel_y = -29 + }, +/turf/open/floor/almayer/sterile_green, +/area/adminlevel/ert_station/uscm_station) +"Gn" = ( +/turf/open/floor/almayer/redfull, +/area/adminlevel/ert_station/uscm_station) +"Gv" = ( +/obj/structure/machinery/portable_atmospherics/canister/oxygen, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"GD" = ( +/obj/structure/pipes/standard/simple/hidden/cyan{ + dir = 4 + }, +/obj/structure/sign/safety/chem_lab{ + pixel_x = 14; + pixel_y = 31 + }, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/ert_station/uscm_station) +"GG" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/pipes/standard/simple/hidden/cyan{ + dir = 6 + }, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/ert_station/uscm_station) +"GJ" = ( +/obj/structure/surface/table/almayer, +/obj/structure/machinery/computer/emails, +/turf/open/floor/wood/ship, +/area/adminlevel/ert_station/uscm_station) +"GK" = ( +/obj/structure/pipes/standard/simple/hidden/cyan, +/turf/open/floor/wood, +/area/adminlevel/ert_station/uscm_station) +"GL" = ( +/obj/structure/janitorialcart, +/turf/open/floor/plating, +/area/adminlevel/ert_station/uscm_station) +"GT" = ( +/obj/structure/machinery/door/poddoor/almayer{ + id = "tcomms" + }, +/obj/structure/machinery/door/airlock/almayer/secure/reinforced{ + dir = 2; + name = "Telecommunications" + }, +/turf/open/floor/almayer/test_floor4, +/area/adminlevel/ert_station/uscm_station) +"GW" = ( +/obj/structure/machinery/door/poddoor/almayer{ + dir = 4; + unacidable = 1 + }, +/turf/open/floor/almayer, +/area/adminlevel/ert_station/uscm_station) +"Ha" = ( +/obj/structure/sign/safety/firingrange, +/turf/closed/wall/almayer, +/area/adminlevel/ert_station/uscm_station) +"Hc" = ( +/turf/closed/wall/almayer, +/area/adminlevel/ert_station/uscm_station) +"Hm" = ( +/obj/structure/sign/safety/maint{ + pixel_x = 32 + }, +/turf/open/floor/carpet, +/area/adminlevel/ert_station/uscm_station) +"HE" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/pipes/standard/simple/hidden/cyan{ + dir = 4 + }, +/turf/open/floor/almayer/uscm/directional/west, +/area/adminlevel/ert_station/uscm_station) +"HG" = ( +/obj/structure/sink{ + dir = 8; + pixel_x = -12; + pixel_y = 2 + }, +/obj/structure/surface/table/reinforced/prison, +/obj/item/reagent_container/spray/cleaner{ + pixel_x = 3; + pixel_y = 3 + }, +/turf/open/floor/almayer/sterile_green_side/west, +/area/adminlevel/ert_station/uscm_station) +"HI" = ( +/obj/structure/surface/table/woodentable/fancy, +/obj/item/ashtray/bronze{ + pixel_x = 2; + pixel_y = 9 + }, +/obj/item/spacecash/c500{ + pixel_x = -10; + pixel_y = 8 + }, +/turf/open/floor/carpet, +/area/adminlevel/ert_station/uscm_station) +"HK" = ( +/obj/item/paper_bin/wy, +/obj/structure/surface/table/woodentable/fancy, +/obj/item/tool/pen/clicky, +/obj/item/tool/pen/clicky, +/obj/structure/machinery/status_display{ + pixel_x = -32 + }, +/obj/item/desk_bell{ + anchored = 1; + pixel_x = -8; + pixel_y = 8 + }, +/turf/open/floor/carpet, +/area/adminlevel/ert_station/uscm_station) +"HM" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SW-out"; + pixel_x = -1 + }, +/turf/open/floor/almayer/orangefull, +/area/adminlevel/ert_station/uscm_station) +"HT" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/liquid_fuel, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/plating/warnplate/southeast, +/area/adminlevel/ert_station/uscm_station) +"HU" = ( +/obj/structure/ladder{ + id = "regladder4"; + height = 2 + }, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"Ie" = ( +/obj/structure/platform{ + dir = 1 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/turf/open/floor/almayer/plating/northeast, +/area/adminlevel/ert_station/uscm_station) +"Ii" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/pipes/standard/simple/hidden/cyan{ + dir = 10 + }, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/ert_station/uscm_station) +"Ik" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W"; + pixel_x = -1 + }, +/turf/open/floor/almayer/dark_sterile, +/area/adminlevel/ert_station/uscm_station) +"IE" = ( +/obj/structure/pipes/standard/simple/hidden/cyan, +/turf/open/floor/almayer/dark_sterile, +/area/adminlevel/ert_station/uscm_station) +"IH" = ( +/obj/docking_port/stationary/emergency_response/idle_port6{ + name = "USS Kurtz Landing Pad" + }, +/turf/open/floor/plating, +/area/adminlevel/ert_station/uscm_station) +"IJ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/vehicle_spawner/apc_cmd/decrepit{ + dir = 8; + pixel_y = -34; + pixel_x = -32 + }, +/turf/open/floor/almayer/plating/northeast, +/area/adminlevel/ert_station/uscm_station) +"IN" = ( +/obj/structure/machinery/optable, +/turf/open/floor/podhatch, +/area/adminlevel/ert_station/uscm_station) +"IP" = ( +/obj/structure/closet/secure_closet/surgical{ + pixel_y = 30 + }, +/obj/item/clothing/gloves/latex, +/obj/item/clothing/mask/surgical, +/obj/structure/surface/table/reinforced/prison, +/turf/open/floor/almayer/sterile_green_corner/north, +/area/adminlevel/ert_station/uscm_station) +"IV" = ( +/obj/structure/bed/chair/wheelchair, +/obj/effect/decal/cleanable/cobweb, +/obj/item/weapon/gun/pistol/holdout, +/obj/item/ammo_magazine/pistol/holdout, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/adminlevel/ert_station/uscm_station) +"Jc" = ( +/obj/effect/decal/cleanable/blood/oil, +/obj/effect/decal/cleanable/dirt, +/obj/structure/pipes/standard/manifold/fourway/hidden/cyan, +/turf/open/floor/almayer/plating/northeast, +/area/adminlevel/ert_station/uscm_station) +"Jd" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/largecrate/random/barrel/white, +/turf/open/floor/plating/warnplate/west, +/area/adminlevel/ert_station/uscm_station) +"Je" = ( +/obj/structure/machinery/door/airlock/almayer/engineering{ + name = "\improper Engineering Hallway"; + req_one_access = null + }, +/obj/structure/pipes/standard/simple/hidden/cyan{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/ert_station/uscm_station) +"Ji" = ( +/turf/open/floor/almayer_hull/outerhull_dir/northwest, +/area/space) +"Ju" = ( +/obj/structure/sign/safety/maint{ + pixel_x = 32 + }, +/obj/structure/largecrate/random/secure, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"Jv" = ( +/obj/structure/bed/chair/office/dark{ + dir = 8 + }, +/obj/structure/machinery/door_control/cl/quarter/windows{ + pixel_x = 11; + pixel_y = 37 + }, +/turf/open/floor/wood/ship, +/area/adminlevel/ert_station/uscm_station) +"Jw" = ( +/turf/open/floor/almayer/orange/east, +/area/adminlevel/ert_station/uscm_station) +"JF" = ( +/obj/structure/machinery/telecomms/relay/preset/telecomms{ + listening_level = 6 + }, +/turf/open/floor/almayer/tcomms, +/area/adminlevel/ert_station/uscm_station) +"JI" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer/orange, +/area/adminlevel/ert_station/uscm_station) +"JO" = ( +/obj/structure/machinery/cm_vending/sorted/tech/tool_storage, +/obj/structure/sign/safety/nonpress_0g{ + pixel_x = 8; + pixel_y = -32 + }, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/ert_station/uscm_station) +"JP" = ( +/obj/structure/machinery/door/airlock/almayer/engineering{ + name = "\improper Engineering Hallway"; + req_one_access = null; + dir = 1 + }, +/turf/open/floor/almayer/no_build, +/area/adminlevel/ert_station/uscm_station) +"Ka" = ( +/obj/structure/pipes/vents/pump{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/dark, +/area/adminlevel/ert_station/uscm_station) +"Kj" = ( +/obj/structure/machinery/cm_vending/sorted/tech/electronics_storage, +/obj/structure/sign/safety/nonpress_0g{ + pixel_x = 8; + pixel_y = -32 + }, +/turf/open/floor/almayer/no_build, +/area/adminlevel/ert_station/uscm_station) +"Kl" = ( +/obj/structure/machinery/door/airlock/almayer/medical{ + access_modified = 1; + name = "Autopsy"; + req_one_access = null; + dir = 2 + }, +/turf/open/floor/almayer/sterile_green, +/area/adminlevel/ert_station/uscm_station) +"Kn" = ( +/obj/structure/pipes/standard/simple/hidden/cyan{ + dir = 4 + }, +/turf/open/floor/almayer, +/area/adminlevel/ert_station/uscm_station) +"Ks" = ( +/obj/structure/machinery/line_nexter{ + id = "line2"; + pixel_x = -2 + }, +/turf/open/floor/almayer/test_floor5, +/area/adminlevel/ert_station/uscm_station) +"Kt" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/pipes/standard/simple/hidden/cyan{ + dir = 4 + }, +/turf/open/floor/almayer/orange/north, +/area/adminlevel/ert_station/uscm_station) +"Kw" = ( +/obj/structure/pipes/standard/manifold/hidden/cyan{ + dir = 8 + }, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/ert_station/uscm_station) +"Ky" = ( +/obj/structure/pipes/standard/simple/hidden/cyan{ + dir = 4 + }, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"KS" = ( +/obj/structure/reagent_dispensers/fueltank/custom, +/obj/structure/pipes/vents/pump{ + dir = 8 + }, +/turf/open/floor/almayer/sterile_green_side/east, +/area/adminlevel/ert_station/uscm_station) +"KX" = ( +/obj/structure/surface/table/reinforced/black, +/obj/item/weapon/gun/pistol/mod88/training, +/turf/open/floor/almayer/red/north, +/area/adminlevel/ert_station/uscm_station) +"KY" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment, +/obj/structure/prop/invuln/overhead_pipe{ + dir = 4; + pixel_x = 16; + pixel_y = 13 + }, +/obj/structure/prop/invuln/overhead_pipe{ + dir = 4; + pixel_x = -16; + pixel_y = 13 + }, +/turf/open/floor/plating/warnplate/east, +/area/adminlevel/ert_station/uscm_station) +"KZ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer/cargo_arrow/north, +/area/adminlevel/ert_station/uscm_station) +"Lf" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/pipes/standard/simple/hidden/cyan{ + dir = 9 + }, +/turf/open/floor/almayer/orange/north, +/area/adminlevel/ert_station/uscm_station) +"Lg" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer, +/area/adminlevel/ert_station/uscm_station) +"Li" = ( +/obj/structure/machinery/telecomms/relay/preset/telecomms{ + listening_level = 4 + }, +/turf/open/floor/almayer/tcomms, +/area/adminlevel/ert_station/uscm_station) +"Lo" = ( +/obj/structure/foamed_metal/iron, +/turf/open/floor/plating, +/area/adminlevel/ert_station/uscm_station) +"Lq" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/ert_station/uscm_station) +"Lu" = ( +/obj/structure/surface/table/reinforced/black, +/obj/item/weapon/gun/pistol/m4a3/training, +/turf/open/floor/almayer/red/northwest, +/area/adminlevel/ert_station/uscm_station) +"Lx" = ( +/obj/item/tool/warning_cone{ + pixel_x = -11 + }, +/turf/open/floor/almayer, +/area/adminlevel/ert_station/uscm_station) +"Ly" = ( +/obj/structure/largecrate/random/case{ + pixel_y = -5 + }, +/obj/structure/largecrate/random/case{ + pixel_y = 5 + }, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/ert_station/uscm_station) +"Lz" = ( +/obj/structure/machinery/door/airlock/almayer/security/glass/reinforced{ + name = "\improper Armory"; + dir = 2 + }, +/turf/open/floor/plating, +/area/adminlevel/ert_station/uscm_station) +"LE" = ( +/turf/open/floor/almayer_hull/outerhull_dir/southwest, +/area/space) +"LG" = ( +/obj/structure/ladder{ + id = "engladder"; + height = 2 + }, +/obj/structure/sign/safety/ladder{ + pixel_x = 1; + pixel_y = -29 + }, +/turf/open/floor/almayer/plating/northeast, +/area/adminlevel/ert_station/uscm_station) +"LH" = ( +/turf/open/floor/almayer/uscm/directional/southwest, +/area/adminlevel/ert_station/uscm_station) +"LJ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/prop/dam/crane/cargo{ + dir = 4; + desc = "Standard cargo crane used by the USCM. Looks like this one has replacement parts for the Tripoli on it. You probably couldn't name half of these." + }, +/obj/structure/pipes/standard/simple/hidden/cyan{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/ert_station/uscm_station) +"LN" = ( +/turf/open/floor/almayer/sterile_green_side/west, +/area/adminlevel/ert_station/uscm_station) +"LO" = ( +/obj/structure/bed, +/obj/item/bedsheet/medical, +/obj/structure/sign/safety/maint{ + pixel_x = -17 + }, +/turf/open/floor/almayer/sterile_green_corner/north, +/area/adminlevel/ert_station/uscm_station) +"Mj" = ( +/obj/structure/machinery/door/poddoor/almayer{ + id = "tcomms" + }, +/turf/open/floor/almayer/test_floor4, +/area/adminlevel/ert_station/uscm_station) +"Mn" = ( +/obj/structure/pipes/standard/simple/hidden/cyan{ + dir = 5 + }, +/turf/open/floor/almayer/plating_striped, +/area/adminlevel/ert_station/uscm_station) +"Mz" = ( +/obj/structure/blocker/invisible_wall, +/obj/effect/decal/cleanable/dirt, +/obj/structure/pipes/standard/simple/hidden/cyan, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/ert_station/uscm_station) +"MB" = ( +/obj/structure/filingcabinet/security, +/obj/structure/sign/poster/art{ + pixel_y = 32 + }, +/turf/open/floor/wood/ship, +/area/adminlevel/ert_station/uscm_station) +"MJ" = ( +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"MN" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/ship_ammo/minirocket{ + pixel_y = 9; + layer = 3.1 + }, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"MP" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/largecrate/random/barrel/true_random, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"MV" = ( +/obj/structure/closet/emcloset, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"MZ" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/tool/surgery/scalpel, +/obj/item/tool/surgery/hemostat, +/obj/item/tool/surgery/circular_saw, +/obj/item/tool/surgery/cautery, +/obj/item/tool/surgery/retractor, +/turf/open/floor/podhatch/southwest, +/area/adminlevel/ert_station/uscm_station) +"Ny" = ( +/obj/effect/decal/cleanable/blood/oil, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"NE" = ( +/obj/structure/pipes/standard/manifold/hidden/cyan{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/ert_station/uscm_station) +"NN" = ( +/obj/structure/pipes/vents/pump{ + dir = 1 + }, +/turf/open/floor/almayer/sterile_green_side/north, +/area/adminlevel/ert_station/uscm_station) +"NQ" = ( +/turf/open/floor/almayer/uscm/directional/southeast, +/area/adminlevel/ert_station/uscm_station) +"NU" = ( +/turf/open/floor/red/west, +/area/adminlevel/ert_station/uscm_station) +"Od" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer/cargo_arrow/west, +/area/adminlevel/ert_station/uscm_station) +"Oh" = ( +/obj/structure/bed/roller, +/obj/structure/pipes/vents/pump, +/turf/open/floor/almayer/sterile_green_side/north, +/area/adminlevel/ert_station/uscm_station) +"Ol" = ( +/obj/structure/closet/coffin, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"OA" = ( +/turf/open/floor/almayer/tcomms, +/area/adminlevel/ert_station/uscm_station) +"OE" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/pipes/vents/pump{ + dir = 4 + }, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"OM" = ( +/turf/open/floor/almayer/cargo_arrow/north, +/area/adminlevel/ert_station/uscm_station) +"ON" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E" + }, +/obj/structure/pipes/vents/pump{ + dir = 8 + }, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"OR" = ( +/obj/structure/machinery/cm_vending/sorted/medical/blood{ + req_access = null + }, +/turf/open/floor/almayer/sterile_green_corner/west, +/area/adminlevel/ert_station/uscm_station) +"OU" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/vehicle_spawner/arc{ + dir = 8 + }, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"OZ" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/engidoor{ + dir = 2; + indestructible = 1; + locked = 1 + }, +/turf/open/floor/almayer/no_build, +/area/adminlevel/ert_station/uscm_station) +"Pa" = ( +/obj/structure/prop/almayer/name_stencil{ + icon_state = "kurtz2"; + name = "USS Kurtz" + }, +/turf/open/floor/almayer_hull, +/area/space) +"Po" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"Pr" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + pixel_y = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"Pt" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"Pw" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/pipes/standard/manifold/hidden/cyan{ + dir = 8 + }, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"Px" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_y = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"PC" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plating, +/area/adminlevel/ert_station/uscm_station) +"PD" = ( +/obj/structure/pipes/standard/simple/hidden/cyan{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/ert_station/uscm_station) +"PE" = ( +/obj/structure/ladder{ + id = "regladder4"; + height = 1 + }, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"PH" = ( +/obj/structure/sign/safety/firingrange{ + pixel_x = 32; + pixel_y = 6 + }, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"PK" = ( +/obj/structure/sign/safety/maint{ + pixel_x = -18 + }, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"PL" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating/warnplate/east, +/area/adminlevel/ert_station/uscm_station) +"PT" = ( +/obj/structure/sink{ + dir = 8; + pixel_x = -12; + pixel_y = 2 + }, +/turf/open/floor/podhatch/northwest, +/area/adminlevel/ert_station/uscm_station) +"Qa" = ( +/obj/structure/largecrate/random/case/double{ + layer = 2.98 + }, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"Qd" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer/orange/east, +/area/adminlevel/ert_station/uscm_station) +"Qf" = ( +/obj/structure/closet/secure_closet/personal/patient{ + name = "morgue closet" + }, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"Qh" = ( +/obj/structure/platform, +/obj/structure/platform{ + dir = 4 + }, +/obj/structure/platform_decoration{ + dir = 6; + layer = 3.51 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer/plating/northeast, +/area/adminlevel/ert_station/uscm_station) +"Qj" = ( +/obj/structure/pipes/standard/manifold/hidden/cyan, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/ert_station/uscm_station) +"Qm" = ( +/obj/structure/pipes/vents/pump{ + dir = 4 + }, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"Qt" = ( +/obj/structure/machinery/iv_drip, +/turf/open/floor/almayer/sterile_green_side/north, +/area/adminlevel/ert_station/uscm_station) +"Qu" = ( +/obj/structure/pipes/standard/simple/hidden/cyan{ + dir = 5 + }, +/turf/open/floor/wood, +/area/adminlevel/ert_station/uscm_station) +"Qv" = ( +/obj/structure/pipes/standard/simple/hidden/cyan{ + dir = 10 + }, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/ert_station/uscm_station) +"QB" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/safety/nonpress_0g{ + pixel_y = 32 + }, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"QC" = ( +/obj/structure/pipes/standard/simple/hidden/cyan{ + dir = 4 + }, +/turf/open/floor/almayer/sterile_green_corner/north, +/area/adminlevel/ert_station/uscm_station) +"QD" = ( +/obj/structure/machinery/cm_vending/sorted/tech/circuits, +/turf/open/floor/almayer/no_build, +/area/adminlevel/ert_station/uscm_station) +"QI" = ( +/obj/item/tool/warning_cone, +/obj/item/tool/warning_cone{ + pixel_x = -9; + pixel_y = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer, +/area/adminlevel/ert_station/uscm_station) +"QL" = ( +/obj/structure/largecrate/supply/medicine/medkits, +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/obj/structure/sign/safety/nonpress_0g{ + pixel_y = 32 + }, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/ert_station/uscm_station) +"QU" = ( +/obj/effect/vehicle_spawner/van/fixed{ + dir = 4 + }, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"Ra" = ( +/obj/structure/machinery/bioprinter{ + stored_metal = 1000 + }, +/obj/structure/sign/safety/maint{ + pixel_x = 15; + pixel_y = 32 + }, +/turf/open/floor/almayer/sterile_green_corner, +/area/adminlevel/ert_station/uscm_station) +"Rg" = ( +/turf/open/floor/almayer/sterile_green_side/southeast, +/area/adminlevel/ert_station/uscm_station) +"Rh" = ( +/obj/structure/prop/almayer/name_stencil{ + icon_state = "kurtz3"; + name = "USS Kurtz" + }, +/turf/open/floor/almayer_hull, +/area/space) +"Rj" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/machinery/door_control{ + id = "tcomms"; + name = "Telecommunications Entrance"; + pixel_y = 23 + }, +/turf/open/floor/plating, +/area/adminlevel/ert_station/uscm_station) +"Rl" = ( +/obj/structure/ship_ammo/rocket/napalm, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"Rv" = ( +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/ert_station/uscm_station) +"Ry" = ( +/obj/structure/sign/safety/medical{ + pixel_y = 32 + }, +/obj/structure/sign/safety/restrictedarea{ + pixel_x = 16; + pixel_y = 32 + }, +/turf/open/floor/almayer, +/area/adminlevel/ert_station/uscm_station) +"RA" = ( +/obj/structure/window/framed/almayer/hull, +/turf/open/floor/plating, +/area/adminlevel/ert_station/uscm_station) +"RE" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/liquid_fuel, +/turf/open/floor/plating, +/area/adminlevel/ert_station/uscm_station) +"RI" = ( +/obj/structure/surface/table/almayer, +/obj/item/device/radio, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/ert_station/uscm_station) +"RJ" = ( +/turf/open/floor/almayer/no_build, +/area/adminlevel/ert_station/uscm_station) +"RL" = ( +/obj/structure/pipes/standard/manifold/hidden/cyan{ + dir = 8 + }, +/turf/open/floor/almayer/sterile_green_side, +/area/adminlevel/ert_station/uscm_station) +"RP" = ( +/obj/structure/bed/roller, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"RR" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer/plating/northeast, +/area/adminlevel/ert_station/uscm_station) +"RW" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/cobweb, +/obj/structure/largecrate/random/barrel/red, +/turf/open/floor/plating/platebot, +/area/adminlevel/ert_station/uscm_station) +"Sj" = ( +/turf/open/floor/wood/ship, +/area/adminlevel/ert_station/uscm_station) +"Sr" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/obj/structure/platform{ + dir = 4 + }, +/obj/structure/platform, +/obj/structure/platform_decoration{ + dir = 6 + }, +/turf/open/floor/almayer/plating/northeast, +/area/adminlevel/ert_station/uscm_station) +"SC" = ( +/obj/item/weapon/gun/shotgun/combat{ + pixel_x = 4; + pixel_y = -3 + }, +/obj/item/weapon/gun/shotgun/combat, +/obj/item/ammo_magazine/shotgun/incendiary, +/obj/item/ammo_magazine/shotgun/incendiary, +/obj/structure/surface/rack, +/turf/open/floor/red/east, +/area/adminlevel/ert_station/uscm_station) +"SF" = ( +/turf/open/floor/plating, +/area/space) +"SP" = ( +/obj/structure/ladder{ + id = "regladder6"; + height = 2 + }, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"SX" = ( +/obj/structure/machinery/door/airlock/almayer/medical{ + access_modified = 1; + name = "Morgue"; + req_access_txt = "25"; + req_one_access = null + }, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"Td" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/machinery/fuelcell_recycler, +/obj/structure/sign/safety/hvac_old{ + pixel_x = 8; + pixel_y = 32 + }, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"Th" = ( +/obj/structure/sign/safety/hvac_old{ + pixel_x = 8 + }, +/turf/closed/wall/almayer, +/area/adminlevel/ert_station/uscm_station) +"Tm" = ( +/obj/structure/surface/table/almayer, +/obj/item/clipboard, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/ert_station/uscm_station) +"Tr" = ( +/obj/structure/surface/table/almayer, +/obj/item/device/mass_spectrometer, +/obj/item/device/mass_spectrometer, +/obj/item/reagent_container/dropper, +/obj/item/reagent_container/dropper, +/obj/item/reagent_container/dropper, +/obj/item/reagent_container/glass/beaker/cryoxadone, +/obj/item/reagent_container/glass/beaker/cryoxadone, +/obj/item/reagent_container/glass/beaker/cryoxadone, +/turf/open/floor/almayer/sterile_green_corner/west, +/area/adminlevel/ert_station/uscm_station) +"TB" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer/orange/north, +/area/adminlevel/ert_station/uscm_station) +"TF" = ( +/obj/structure/machinery/door/airlock/almayer/medical{ + access_modified = 1; + dir = 2; + name = "Morgue"; + req_access_txt = "25"; + req_one_access = null + }, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"TH" = ( +/obj/structure/machinery/portable_atmospherics/powered/pump, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"TP" = ( +/obj/structure/pipes/standard/simple/hidden/cyan{ + dir = 6 + }, +/turf/open/floor/almayer/dark_sterile, +/area/adminlevel/ert_station/uscm_station) +"TX" = ( +/obj/structure/prop/invuln{ + desc = "big pile energy."; + icon = 'icons/obj/structures/props/ice_colony/barrel_yard.dmi'; + icon_state = "pile_0"; + name = "barrel pile"; + pixel_y = -16 + }, +/obj/structure/blocker/invisible_wall, +/obj/structure/pipes/standard/simple/hidden/cyan, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/ert_station/uscm_station) +"Uc" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E" + }, +/obj/structure/platform{ + dir = 1 + }, +/obj/structure/platform{ + dir = 8 + }, +/obj/structure/platform_decoration{ + dir = 5 + }, +/turf/open/floor/almayer/plating/northeast, +/area/adminlevel/ert_station/uscm_station) +"Ug" = ( +/obj/structure/pipes/unary/outlet_injector{ + dir = 1 + }, +/turf/open/floor/engine, +/area/adminlevel/ert_station/uscm_station) +"Uh" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer/sterile_green_side/west, +/area/adminlevel/ert_station/uscm_station) +"Ui" = ( +/obj/structure/largecrate/supply/weapons/m56d, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/ert_station/uscm_station) +"Un" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/machinery/suit_storage_unit/carbon_unit, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"Uu" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/liquid_fuel, +/obj/effect/decal/cleanable/vomit, +/turf/open/floor/plating, +/area/adminlevel/ert_station/uscm_station) +"Uy" = ( +/obj/structure/closet/radiation, +/turf/open/floor/almayer/cargo, +/area/adminlevel/ert_station/uscm_station) +"UF" = ( +/obj/structure/barricade/plasteel/metal{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer, +/area/adminlevel/ert_station/uscm_station) +"UH" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/platebot, +/area/adminlevel/ert_station/uscm_station) +"UL" = ( +/obj/structure/closet/toolcloset, +/obj/structure/pipes/standard/simple/hidden/cyan, +/turf/open/floor/dark, +/area/adminlevel/ert_station/uscm_station) +"UU" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/roller, +/obj/item/roller, +/obj/item/roller, +/obj/item/roller, +/turf/open/floor/almayer/sterile_green_corner/north, +/area/adminlevel/ert_station/uscm_station) +"Vc" = ( +/obj/structure/pipes/vents/pump{ + dir = 1 + }, +/turf/open/floor/almayer, +/area/adminlevel/ert_station/uscm_station) +"Vk" = ( +/obj/structure/largecrate/random/barrel/true_random, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"Vm" = ( +/obj/item/storage/box/monkeycubes, +/obj/structure/surface/table/reinforced/prison, +/obj/structure/pipes/standard/simple/hidden/cyan, +/turf/open/floor/almayer/dark_sterile, +/area/adminlevel/ert_station/uscm_station) +"Vt" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer/sterile_green_side/north, +/area/adminlevel/ert_station/uscm_station) +"VA" = ( +/obj/structure/pipes/standard/simple/hidden/cyan{ + dir = 4 + }, +/turf/open/floor/dark, +/area/adminlevel/ert_station/uscm_station) +"VE" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/largecrate/random/barrel/yellow, +/turf/open/floor/almayer/plating_striped, +/area/adminlevel/ert_station/uscm_station) +"VF" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/pipes/standard/manifold/fourway/hidden/cyan, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/ert_station/uscm_station) +"VI" = ( +/obj/effect/decal/cleanable/blood/oil, +/turf/open/floor/almayer/plating/northeast, +/area/adminlevel/ert_station/uscm_station) +"VO" = ( +/obj/structure/closet/wardrobe/chemistry_white, +/turf/open/floor/almayer/sterile_green_side/east, +/area/adminlevel/ert_station/uscm_station) +"VZ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/ash, +/turf/open/floor/plating, +/area/adminlevel/ert_station/uscm_station) +"Wd" = ( +/obj/structure/machinery/portable_atmospherics/canister/oxygen, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"Wm" = ( +/obj/vehicle/powerloader{ + dir = 8 + }, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"Wq" = ( +/obj/structure/transmitter/rotary{ + name = "CL Office Telephone"; + phone_category = "Offices"; + phone_id = "CL Office" + }, +/obj/structure/surface/table/woodentable/fancy, +/turf/open/floor/carpet, +/area/adminlevel/ert_station/uscm_station) +"Wr" = ( +/obj/structure/machinery/door/airlock/almayer/generic/corporate{ + dir = 1 + }, +/obj/structure/pipes/standard/simple/hidden/cyan, +/turf/open/floor/wood, +/area/adminlevel/ert_station/uscm_station) +"Wv" = ( +/obj/structure/largecrate/random/case{ + pixel_y = 11 + }, +/obj/structure/largecrate/random/case, +/obj/structure/largecrate/random/case{ + pixel_y = 5 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "E" + }, +/obj/structure/sign/safety/hazard{ + pixel_y = 32 + }, +/obj/structure/sign/safety/airlock{ + pixel_x = 15; + pixel_y = 32 + }, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/ert_station/uscm_station) +"Wz" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/pipes/standard/simple/hidden/cyan{ + dir = 6 + }, +/turf/open/floor/almayer/plating_striped/north, +/area/adminlevel/ert_station/uscm_station) +"WE" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/pipes/standard/simple/hidden/cyan, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"WO" = ( +/obj/structure/machinery/door/airlock/almayer/maint{ + dir = 1 + }, +/turf/open/floor/almayer, +/area/adminlevel/ert_station/uscm_station) +"WU" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "W"; + pixel_x = -1 + }, +/obj/structure/machinery/medical_pod/bodyscanner, +/turf/open/floor/almayer/dark_sterile, +/area/adminlevel/ert_station/uscm_station) +"WV" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/obj/structure/sign/safety/hazard{ + pixel_x = 15; + pixel_y = -32 + }, +/obj/structure/sign/safety/airlock{ + pixel_y = -32 + }, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"WW" = ( +/obj/structure/sign/safety/ladder{ + pixel_x = -26; + pixel_y = -32 + }, +/obj/item/tool/warning_cone{ + pixel_y = 8; + pixel_x = -13 + }, +/turf/open/floor/almayer/cargo_arrow, +/area/adminlevel/ert_station/uscm_station) +"WZ" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/obj/structure/platform, +/obj/structure/platform{ + dir = 4 + }, +/obj/structure/platform_decoration{ + dir = 6; + layer = 3.51 + }, +/turf/open/floor/almayer/plating/northeast, +/area/adminlevel/ert_station/uscm_station) +"Xb" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/pipes/standard/simple/hidden/cyan{ + dir = 4 + }, +/obj/structure/sign/nosmoking_2{ + pixel_y = 30; + pixel_x = 31 + }, +/turf/open/floor/almayer/sterile_green_side/northeast, +/area/adminlevel/ert_station/uscm_station) +"Xd" = ( +/obj/structure/closet/cabinet, +/obj/item/clothing/under/liaison_suit, +/obj/item/clothing/under/liaison_suit/formal, +/obj/item/clothing/under/liaison_suit/suspenders, +/obj/item/clothing/under/liaison_suit/outing, +/turf/open/floor/wood, +/area/adminlevel/ert_station/uscm_station) +"Xh" = ( +/obj/structure/bookcase{ + density = 0 + }, +/obj/item/book/manual/engineering_hacking, +/obj/item/book/manual/nuclear, +/turf/open/floor/wood, +/area/adminlevel/ert_station/uscm_station) +"Xz" = ( +/obj/structure/largecrate/random, +/obj/item/ammo_magazine/pistol/holdout{ + layer = 2 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/adminlevel/ert_station/uscm_station) +"XA" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E" + }, +/obj/structure/sign/safety/hazard{ + pixel_y = 32 + }, +/obj/structure/sign/safety/airlock{ + pixel_x = 15; + pixel_y = 32 + }, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"XC" = ( +/obj/item/tool/warning_cone{ + pixel_y = 5; + pixel_x = -13 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer, +/area/adminlevel/ert_station/uscm_station) +"XM" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/vomit, +/turf/open/floor/plating, +/area/adminlevel/ert_station/uscm_station) +"XT" = ( +/obj/structure/machinery/computer/telecomms/monitor, +/turf/open/floor/dark, +/area/adminlevel/ert_station/uscm_station) +"XX" = ( +/obj/structure/machinery/camera/autoname/almayer{ + dir = 4; + name = "ship-grade camera" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer, +/area/adminlevel/ert_station/uscm_station) +"Yb" = ( +/obj/structure/machinery/cryopod/right, +/obj/structure/sign/safety/cryo{ + pixel_y = 30 + }, +/obj/structure/sign/safety/refridgeration{ + pixel_y = 30; + pixel_x = 15 + }, +/turf/open/floor/almayer/sterile_green_corner, +/area/adminlevel/ert_station/uscm_station) +"Yo" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E" + }, +/obj/structure/platform{ + dir = 8 + }, +/turf/open/floor/almayer/plating/northeast, +/area/adminlevel/ert_station/uscm_station) +"Yp" = ( +/obj/structure/machinery/pipedispenser, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"Yq" = ( +/turf/open/floor/almayer/sterile_green_corner/east, +/area/adminlevel/ert_station/uscm_station) +"Ys" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer/sterile_green_side/east, +/area/adminlevel/ert_station/uscm_station) +"YJ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/pipes/standard/simple/hidden/cyan, +/turf/open/floor/almayer/sterile_green_side, +/area/adminlevel/ert_station/uscm_station) +"YM" = ( +/obj/structure/pipes/standard/simple/hidden/cyan, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/ert_station/uscm_station) +"YP" = ( +/turf/open/floor/almayer/uscm/directional/northwest, +/area/adminlevel/ert_station/uscm_station) +"YV" = ( +/obj/structure/machinery/portable_atmospherics/canister/nitrogen, +/turf/open/floor/engine, +/area/adminlevel/ert_station/uscm_station) +"YY" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/structure/sign/safety/life_support{ + pixel_x = 8; + pixel_y = -32 + }, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"YZ" = ( +/obj/structure/machinery/telecomms/server/presets, +/turf/open/floor/almayer/tcomms, +/area/adminlevel/ert_station/uscm_station) +"Zb" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S"; + pixel_y = -1 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 2 + }, +/obj/structure/largecrate/random/barrel/white, +/turf/open/floor/almayer/plating/northeast, +/area/adminlevel/ert_station/uscm_station) +"Zd" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/generic, +/turf/open/floor/plating, +/area/adminlevel/ert_station/uscm_station) +"Ze" = ( +/obj/structure/closet/secure_closet/engineering_welding, +/turf/open/floor/almayer/cargo, +/area/adminlevel/ert_station/uscm_station) +"Zf" = ( +/obj/structure/prop/almayer/name_stencil{ + icon_state = "kurtz4"; + name = "USS Kurtz" + }, +/turf/open/floor/almayer_hull, +/area/space) +"Zj" = ( +/obj/structure/machinery/autolathe, +/turf/open/floor/almayer/orange/west, +/area/adminlevel/ert_station/uscm_station) +"Zm" = ( +/obj/structure/pipes/standard/simple/hidden/cyan{ + dir = 4 + }, +/turf/open/floor/almayer/sterile_green_side/northwest, +/area/adminlevel/ert_station/uscm_station) +"Zp" = ( +/turf/open/space, +/area/space) +"Zs" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/obj/structure/pipes/vents/pump{ + dir = 4 + }, +/turf/open/floor/almayer/plate, +/area/adminlevel/ert_station/uscm_station) +"Zx" = ( +/obj/structure/machinery/telecomms/bus, +/turf/open/floor/almayer/tcomms, +/area/adminlevel/ert_station/uscm_station) +"ZI" = ( +/obj/structure/closet/secure_closet/guncabinet/red/cic_armory_shotgun, +/turf/open/floor/red/west, +/area/adminlevel/ert_station/uscm_station) +"ZS" = ( +/obj/structure/target, +/turf/open/floor/almayer/plating_striped, +/area/adminlevel/ert_station/uscm_station) +"ZW" = ( +/obj/structure/platform, +/obj/structure/platform{ + dir = 8 + }, +/obj/structure/platform_decoration{ + dir = 10; + layer = 3.51 + }, +/turf/open/floor/almayer/plating/northeast, +/area/adminlevel/ert_station/uscm_station) + +(1,1,1) = {" +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +kZ +kZ +kZ +kZ +kZ +kZ +kZ +"} +(2,1,1) = {" +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +kZ +kZ +kZ +kZ +kZ +kZ +kZ +"} +(3,1,1) = {" +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +kZ +kZ +kZ +kZ +kZ +kZ +kZ +"} +(4,1,1) = {" +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +kZ +zK +zK +zK +zK +zK +zK +zK +zK +zK +Zp +Zp +Zp +Zp +Zp +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +"} +(5,1,1) = {" +kZ +kZ +kZ +kZ +kZ +kZ +zK +zK +zK +zK +zK +kZ +kZ +kZ +kZ +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +zK +zK +tE +NU +ZI +ZI +Ft +Ft +hJ +zK +zK +Zp +Zp +Zp +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +"} +(6,1,1) = {" +kZ +kZ +kZ +kZ +kZ +zK +zK +GW +GW +GW +zK +zK +kZ +kZ +kZ +kZ +Zp +Zp +Zp +Zp +Zp +zK +zK +zK +zK +zK +zK +zK +wx +wr +wr +wr +Bn +rS +ep +zK +zK +rr +LE +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +"} +(7,1,1) = {" +kZ +kZ +kZ +kZ +kZ +zK +SP +mh +nS +WW +jd +zK +kZ +kZ +kZ +kZ +Zp +Zp +Zp +Zp +Zp +zK +ej +DW +XM +Zd +DW +Lz +xl +aF +fh +SC +nw +AA +fz +zK +zK +Bs +fw +kZ +kZ +kZ +kZ +kZ +Zp +Zp +Zp +Zp +Zp +Zp +"} +(8,1,1) = {" +kZ +kZ +kZ +kZ +kZ +zK +hO +OM +ks +ir +sb +zK +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +zK +DW +mD +mD +fN +ji +ji +ji +ji +ji +ji +zK +FX +zK +zK +zK +aJ +zK +zK +zK +aJ +zK +zK +Zp +Zp +Zp +Zp +Zp +Zp +"} +(9,1,1) = {" +kZ +kZ +kZ +kZ +kZ +zK +Dy +sU +VF +sU +rj +zK +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +zK +DW +mD +LO +Uh +ym +tC +mD +PT +MZ +mD +Bz +BJ +si +Hc +YZ +OA +YZ +YZ +YZ +OA +hi +zK +Zp +Zp +Zp +Zp +Zp +Zp +"} +(10,1,1) = {" +kZ +kZ +kZ +kZ +kZ +zK +HU +OM +ks +Lg +Bk +zK +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +zK +VZ +mD +Qt +CO +CO +Er +Kl +CL +IN +mD +qL +ks +qL +Hc +YZ +OA +OA +OA +OA +OA +hi +zK +Zp +Zp +Zp +Zp +Zp +Zp +"} +(11,1,1) = {" +kZ +kZ +kZ +kZ +kZ +zK +Bh +Ad +PD +fu +dR +vo +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +zK +DW +mD +aw +CO +CO +Er +mD +jk +cU +mD +Lg +ks +Dp +Hc +YZ +OA +OA +Zx +Zx +OA +hi +zK +LE +Zp +Zp +Zp +Zp +Zp +"} +(12,1,1) = {" +kZ +kZ +kZ +kZ +kZ +zK +GW +GW +GW +GW +GW +zK +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +zK +DW +mD +WU +Ik +gl +Er +mD +mD +mD +mD +ms +PD +fV +Hc +YZ +OA +qy +Zx +Zx +OA +hi +zK +fw +Zp +Zp +Zp +Zp +Zp +"} +(13,1,1) = {" +kZ +kZ +kZ +kZ +kZ +zK +zK +zK +zK +zK +zK +zK +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +zK +DW +mD +hY +fY +oC +fi +EN +pM +qQ +mp +Dp +bY +Hc +Hc +Hc +xX +OA +OA +OA +OA +zo +zK +zK +Zp +Zp +Zp +Zp +Zp +"} +(14,1,1) = {" +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +zK +Zd +mD +Oh +IE +IE +Dm +BQ +Vm +YJ +rP +sU +Qj +Mj +tx +Mj +OA +OA +OA +OA +OA +cp +zK +zK +zK +Zp +Zp +Zp +Zp +"} +(15,1,1) = {" +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +zK +DW +mD +FB +VO +BF +Ys +Xb +Rg +Yq +mD +ms +nu +Hc +Hc +Hc +jW +fE +Li +JF +fE +OA +GT +DW +zK +zK +Zp +Zp +Zp +"} +(16,1,1) = {" +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +zK +RE +mD +mD +mD +mD +mD +ph +Er +mD +mD +vI +Ky +yg +Hc +Zx +OA +Hc +EY +EY +EY +Hc +Hc +Rj +Hc +zK +Zp +Zp +Zp +"} +(17,1,1) = {" +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +zK +DW +mD +IP +sL +zG +mD +ph +fi +OR +mD +Lg +ks +Lg +Hc +Zx +OA +EY +iD +xP +XT +iD +Hc +Zd +uM +zK +Zp +Zp +Zp +"} +(18,1,1) = {" +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +Ji +rr +rr +zK +DW +sj +Vt +TP +RL +ja +zC +CO +bU +mD +Lg +ks +Lg +Hc +Zx +OA +EY +eW +Ka +eF +pD +tx +DW +hc +zK +Zp +Zp +Zp +"} +(19,1,1) = {" +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +Zp +Zp +Zp +qE +Bs +Bs +zK +DW +mD +Ra +xu +ci +mD +vu +mM +iY +mD +fI +NE +FZ +Hc +Zx +OA +EY +pD +VA +zZ +pD +Hc +DW +Xz +zK +Zp +Zp +Zp +"} +(20,1,1) = {" +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +Zp +Zp +Zp +qE +Bs +Bs +zK +DW +mD +mD +vG +Gm +mD +mD +mD +mD +mD +GD +Hc +ks +Hc +Hc +Hc +Hc +AR +di +pD +Df +Hc +DW +Hc +zK +Zp +Zp +Zp +"} +(21,1,1) = {" +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +Zp +Zp +Zp +qE +Bs +zK +zK +DW +xA +mD +lz +bl +LN +Uh +LN +Tr +vG +Qv +Kw +xw +Hc +pD +pD +pD +AR +di +Eq +th +Hc +DW +Hc +zK +Zp +Zp +Zp +"} +(22,1,1) = {" +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +Zp +Zp +Zp +qE +Bs +zK +PC +Zd +au +mD +Fz +fn +Dm +dT +pP +Er +in +Dp +yY +EQ +ra +dQ +nK +wo +UL +cG +BO +ER +Hc +DW +om +zK +Zp +Zp +Zp +"} +(23,1,1) = {" +kZ +kZ +kZ +kZ +zK +zK +zK +zK +zK +kZ +kZ +kZ +kZ +kZ +kZ +Zp +Zp +kZ +qE +Bs +zK +DW +mD +mD +mD +lH +EH +cW +KS +mx +iv +vG +Dp +PD +Lg +Hc +Hc +Hc +Hc +Hc +Hc +Hc +Hc +Hc +DW +GL +zK +Zp +Zp +Zp +"} +(24,1,1) = {" +kZ +kZ +kZ +kZ +zK +GW +GW +GW +zK +zK +zK +zK +CR +kZ +kZ +Zp +Zp +kZ +qE +Bs +zK +DW +mD +mD +mD +mD +mD +mD +mD +mD +mD +mD +Dp +ks +Fb +Hc +kA +oh +vy +zm +Jd +iO +Gj +Hc +DW +Fq +zK +Zp +Zp +Zp +"} +(25,1,1) = {" +kZ +kZ +kZ +kZ +zK +Lx +nS +XC +XX +CF +Lg +WO +CR +kZ +kZ +Zp +Zp +kZ +qE +Bs +zK +Zd +mD +ac +ac +ac +jA +ac +ac +ac +vF +mD +Dp +ks +QI +to +ak +PL +yS +lA +PL +KY +HT +Hc +DW +Hc +zK +Zp +Zp +Zp +"} +(26,1,1) = {" +kZ +kZ +kZ +kZ +zK +Od +Qv +nH +YM +xF +FZ +zK +CR +kZ +kZ +Zp +Zp +kZ +qE +Bs +ji +aW +mD +MJ +MJ +MJ +xU +WE +ot +nH +nH +BX +sU +ei +Lg +Hc +Hc +Hc +Hc +iM +Hc +Hc +UH +Hc +DW +Hc +zK +LE +Zp +Zp +"} +(27,1,1) = {" +kZ +kZ +kZ +kZ +zK +Ks +lY +kE +rw +Lg +Dp +zK +kZ +kZ +kZ +Zp +Zp +kZ +qE +Bs +ji +Rv +FG +Rv +Rv +Rv +Rv +Rv +Rv +Rv +MJ +mD +vv +ks +Dp +Hc +Lo +Hc +RW +es +aC +Hc +UH +DW +DW +Xz +zK +fw +Zp +Zp +"} +(28,1,1) = {" +kZ +kZ +kZ +kZ +zK +wH +Eu +zK +zK +dP +OZ +zK +kZ +kZ +kZ +Zp +Zp +kZ +qE +Bs +ji +Bv +Rv +pF +pF +pF +Rv +pF +pF +pF +MJ +mD +tD +fj +MJ +Hc +Lo +Hc +Hc +wN +Hc +Hc +Hc +Hc +Zd +Xz +zK +zK +Zp +Zp +"} +(29,1,1) = {" +kZ +kZ +kZ +kZ +zK +wA +wt +zK +fe +Dg +mw +zK +kZ +kZ +kZ +Zp +Zp +kZ +qE +Bs +ji +mD +tY +ac +ac +ac +qL +Am +Am +Am +MJ +mD +tD +fj +MJ +Hc +Lo +Lo +Hc +Hc +Hc +IV +DW +XM +DW +DW +DW +zK +Zp +Zp +"} +(30,1,1) = {" +kZ +kZ +kZ +zK +hN +rs +rs +JP +RJ +Po +LG +zK +kZ +kZ +kZ +Zp +Zp +kZ +qE +Bs +ji +Qf +Rv +tD +MJ +MJ +qL +tD +tD +tD +MJ +mD +Ry +ks +Dp +Hc +Hc +Hc +Hc +Hc +Hc +Hc +Hc +Hc +Hc +Hc +dz +zK +Zp +Zp +"} +(31,1,1) = {" +kZ +kZ +kZ +zK +cy +nN +cy +zK +lG +CC +ux +zK +kZ +kZ +kZ +Zp +Zp +kZ +qE +Bs +ji +Rv +qL +Rv +Rv +Rv +Rv +Rv +Rv +Rv +qL +TF +Dp +ks +Dp +EY +Sj +hq +HK +Ba +AT +Hc +li +pi +Ei +ws +Xh +zK +Zp +Zp +"} +(32,1,1) = {" +kZ +kZ +kZ +kZ +zK +zK +FV +zK +zK +oE +zK +zK +kZ +kZ +kZ +Zp +Zp +kZ +qE +Bs +ji +pF +Rv +pF +pF +pF +tf +pF +pF +pF +Ol +mD +Dp +PD +Dp +EY +Sj +wI +HI +hq +AT +Hc +GJ +Jv +Sj +AT +AT +zK +Zp +Zp +"} +(33,1,1) = {" +kZ +kZ +kZ +kZ +kZ +kZ +zK +kZ +kZ +zK +kZ +kZ +kZ +kZ +kZ +Zp +Zp +zK +zK +zK +ji +mD +SX +mD +mD +mD +mD +mD +mD +mD +mD +mD +Lg +ks +Dp +Hc +Sj +hq +ty +bB +AT +Hc +xB +hq +hq +AT +AT +zK +Zp +Zp +"} +(34,1,1) = {" +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +Zp +Zp +zK +Ly +Rv +MJ +tD +GG +Fx +eb +eb +eb +eb +FZ +MJ +yg +Hc +Lg +jZ +sU +vc +BS +uY +hm +Wq +AT +Hc +eY +hq +hq +AT +fQ +zK +Zp +Zp +"} +(35,1,1) = {" +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +Zp +Zp +zK +Wv +hz +lP +lP +ON +hW +lP +lP +mw +Px +LJ +MJ +tD +lE +Lg +ks +pS +Hc +zT +oT +oT +oT +GK +Wr +uL +oT +oT +Qu +Xd +zK +Zp +Zp +"} +(36,1,1) = {" +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +Zp +Zp +mR +dK +bX +qI +qI +qI +qI +qI +qI +DW +er +jZ +WE +ot +ot +sU +Qj +us +Hc +AT +AT +AT +AT +AT +Hc +MB +hq +hq +jP +im +zK +Zp +Zp +"} +(37,1,1) = {" +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +Zp +Zp +mR +dK +bX +qI +qI +qI +qI +qI +qI +qI +hw +Qj +MJ +MJ +Hc +Dp +PD +Lg +EY +AT +AT +ka +AT +AT +Hc +lR +hq +Hm +FE +pI +zK +Zp +Zp +"} +(38,1,1) = {" +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +Zp +Zp +mR +dK +Pt +qI +qI +qI +qI +qI +qI +qI +pR +PD +MJ +st +EY +fI +NE +FZ +EY +AT +AT +AT +AT +AT +Hc +Hc +dW +zK +zK +zK +zK +Zp +Zp +"} +(39,1,1) = {" +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +Zp +Zp +mR +dK +Pt +qI +qI +qI +qI +qI +qI +qI +Lq +ks +tD +yg +Hc +PD +Hc +PD +Hc +qH +jn +vm +Sj +qH +Hc +bc +Zd +zK +Bs +fw +Zp +Zp +Zp +"} +(40,1,1) = {" +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +Zp +Zp +mR +OM +Pt +qI +qI +qI +qI +qI +qI +qI +pR +ks +tD +Hc +Hc +rG +Kw +mO +Hc +Hc +Hc +Hc +Hc +Hc +Hc +DW +DW +zK +Bs +fw +Zp +Zp +Zp +"} +(41,1,1) = {" +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +Zp +Zp +mR +OM +Pt +qI +qI +qI +qI +qI +qI +qI +hw +ei +tD +EY +rd +Dp +PD +Dp +iK +Hc +et +au +qi +af +Hc +RE +Hc +zK +Bs +fw +Zp +Zp +Zp +"} +(42,1,1) = {" +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +Zp +Zp +mR +OM +Pt +qI +qI +qI +qI +qI +qI +qI +pR +ks +tD +EY +sa +YP +HE +LH +Dw +Hc +au +Uu +DW +DW +DW +DW +DW +zK +Bs +fw +Zp +Zp +Zp +"} +(43,1,1) = {" +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +Zp +Zp +zK +QL +lf +Gf +Dz +Zs +su +ag +ag +ag +Pr +ks +tD +EY +Dy +Cj +mk +iF +rj +Hc +hc +DW +DW +DH +Hc +mv +DW +zK +Bs +fw +Zp +Zp +Zp +"} +(44,1,1) = {" +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +Zp +Zp +zK +Ui +MJ +Wm +MJ +Qv +nH +yd +eb +eb +hB +ei +tD +EY +PE +wF +hk +NQ +hu +Hc +xT +DW +Zd +DW +Hc +Hc +DW +zK +Bs +fw +kZ +kZ +kZ +"} +(45,1,1) = {" +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +Zp +Zp +zK +yz +Dh +MJ +mD +mD +mD +QC +rW +uR +mD +PD +MJ +EY +Ej +sU +NE +sU +sG +pX +DW +DW +bc +bc +Hc +DW +DW +zK +Bs +qr +kZ +kZ +kZ +"} +(46,1,1) = {" +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +Zp +Zp +zK +zK +Hc +Hc +mD +UU +HG +Zm +CO +ba +uR +PD +MJ +Hc +Ky +Fo +xL +MJ +yO +Hc +Hc +Hc +Hc +Hc +Hc +Bp +Hc +zK +zK +kZ +kZ +kZ +kZ +"} +(47,1,1) = {" +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +Zp +Zp +ww +zK +Lo +Hc +mD +NN +IE +gj +CO +Er +mD +PD +tD +tD +ks +tD +tD +MJ +PD +st +MV +RP +MP +iW +PK +MJ +Vk +qT +zK +kZ +kZ +kZ +kZ +"} +(48,1,1) = {" +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +Zp +Zp +Zp +zK +Lo +Hc +mD +Yb +du +iS +CO +zW +uR +yY +eb +eb +pg +eb +yd +eb +pg +eb +nH +nH +eb +eb +eb +xb +EI +tD +zK +kZ +kZ +kZ +kZ +"} +(49,1,1) = {" +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +Zp +Zp +Zp +zK +zK +zK +ji +mD +uR +nY +fc +uR +mD +PD +tD +tD +qL +tD +fj +tD +qL +tD +MJ +Rl +MN +iP +tM +tD +PD +MJ +zK +kZ +kZ +kZ +kZ +"} +(50,1,1) = {" +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +Zp +Zp +Zp +Zp +qE +Bs +zK +tD +tD +yY +nH +nH +Ge +lN +MJ +MJ +Rv +MJ +kf +MJ +Rv +MJ +tD +tD +MN +MJ +tM +tD +PD +MJ +zK +kZ +kZ +kZ +kZ +"} +(51,1,1) = {" +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +Zp +Zp +Zp +Zp +ww +lZ +zK +XA +Px +PD +MJ +MJ +mo +ho +Yo +Fk +Rv +Uc +Yo +Fk +Rv +Uc +Yo +Yo +Yo +ho +sH +tD +nP +ps +zK +kZ +kZ +kZ +kZ +"} +(52,1,1) = {" +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +Zp +Zp +Zp +Zp +Zp +kZ +mR +dK +pR +PD +QU +Rv +Ie +qI +qI +qI +qI +qI +qI +qI +qI +qI +qI +qI +qI +IH +uD +fI +yR +ir +mR +kZ +kZ +kZ +kZ +"} +(53,1,1) = {" +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +Zp +Zp +Zp +Zp +Zp +kZ +mR +dK +er +jZ +ot +rj +Ie +qI +qI +qI +qI +qI +qI +qI +qI +qI +qI +qI +qI +qI +WZ +kf +zr +ir +mR +kZ +kZ +kZ +kZ +"} +(54,1,1) = {" +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +Zp +Zp +Zp +Zp +Zp +kZ +mR +dK +er +ks +MJ +tD +Ie +qI +qI +qI +qI +qI +qI +qI +qI +qI +qI +qI +qI +qI +tD +MJ +zr +ir +mR +kZ +kZ +kZ +kZ +"} +(55,1,1) = {" +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +Zp +Zp +Zp +Zp +Zp +kZ +mR +dK +er +ks +MJ +qL +Ie +qI +qI +qI +qI +qI +qI +qI +qI +qI +qI +qI +qI +qI +tD +MJ +zr +ir +mR +Zp +Zp +Zp +Zp +"} +(56,1,1) = {" +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +Zp +Zp +Zp +Zp +Zp +kZ +mR +KZ +er +ks +MJ +tD +Ie +qI +qI +qI +qI +qI +qI +qI +qI +qI +qI +qI +qI +qI +MJ +MJ +zr +ir +mR +Zp +Zp +Zp +Zp +"} +(57,1,1) = {" +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +Zp +Zp +Zp +Zp +Zp +kZ +mR +dK +er +jZ +ot +zt +Ie +qI +qI +qI +qI +qI +qI +qI +qI +qI +qI +qI +qI +qI +hv +OE +zr +ir +mR +Zp +Zp +Zp +Zp +"} +(58,1,1) = {" +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +Zp +Zp +Zp +Zp +Zp +kZ +mR +dK +OU +ks +MJ +Rv +Ie +qI +qI +qI +qI +qI +qI +qI +qI +qI +qI +qI +qI +qI +uD +Ii +yR +ir +mR +Zp +Zp +Zp +Zp +"} +(59,1,1) = {" +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +Zp +Zp +Zp +Zp +Zp +kZ +zK +QB +yr +PD +MJ +MJ +wp +bv +Ey +Sr +Rv +jM +Ey +vH +Rv +jM +Ey +Ey +Ey +bv +DG +tD +EL +WV +zK +Zp +Zp +Zp +Zp +"} +(60,1,1) = {" +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +Zp +Zp +Zp +Zp +Zp +Ji +zK +tD +tD +PD +MJ +tD +tD +MJ +MJ +MJ +Rv +MJ +Qm +MJ +Rv +MJ +MJ +MJ +MJ +MP +tD +tD +PD +tD +zK +Zp +Zp +Zp +Zp +"} +(61,1,1) = {" +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +Zp +Zp +Zp +Zp +Zp +qE +zK +MP +tD +Qv +nH +yd +EI +MJ +MJ +MJ +qL +tD +fj +tD +qL +tD +tD +MJ +MJ +tD +tD +tD +oe +tD +zK +Zp +Zp +Zp +Zp +"} +(62,1,1) = {" +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +Zp +Zp +Zp +Zp +Zp +qE +zK +Hc +Hc +Hc +MJ +Ky +Qv +nH +bV +TX +Mz +yd +pg +yd +eb +eb +eb +nH +nH +eb +eb +nH +tP +qc +zK +Zp +Zp +Zp +Zp +"} +(63,1,1) = {" +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +Zp +Zp +Zp +Zp +Zp +qE +zK +Lo +Lo +Hc +MJ +Ky +PH +Vk +vx +vx +vx +ks +tD +PD +tD +MJ +yx +MJ +md +MJ +gQ +lj +iE +iW +zK +Zp +Zp +Zp +Zp +"} +(64,1,1) = {" +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +Zp +Zp +Zp +Zp +Zp +qE +zK +zK +zK +Hc +MJ +yO +Hc +Hc +vx +vx +Gg +PD +Ju +PD +tD +MJ +MJ +Hc +Hc +zK +zK +zK +zK +zK +zK +Zp +Zp +Zp +Zp +"} +(65,1,1) = {" +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +Zp +Zp +kZ +kZ +kZ +qE +Bs +mY +RA +Lu +Dp +Kn +uG +Hc +Hc +Hc +Hc +Je +Hc +Je +ek +Hc +Hc +Hc +kX +zK +EG +EG +zK +Bs +fw +Zp +Zp +Zp +Zp +"} +(66,1,1) = {" +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +Zp +Zp +kZ +kZ +kZ +qE +Bs +Bs +RA +KX +Lg +wW +CS +eL +FH +Hc +Ze +PD +MJ +PD +yg +Hc +Yp +qL +kb +xn +nc +gE +zK +Bs +fw +Zp +Zp +Zp +Zp +"} +(67,1,1) = {" +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +Zp +Zp +kZ +kZ +kZ +qE +Bs +Pa +RA +Ch +fI +NE +FZ +oD +FH +Hc +Ze +PD +MJ +sN +iW +Hc +Td +qL +CT +zK +EG +EG +zK +Bs +fw +Zp +Zp +Zp +Zp +"} +(68,1,1) = {" +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +Zp +Zp +kZ +kZ +kZ +qE +Bs +Bs +RA +Vc +lN +Rv +Qv +nq +Lg +Hc +BH +ks +tD +PD +YY +Hc +Un +qL +CN +zK +zK +zK +zK +Bs +qr +Zp +Zp +Zp +Zp +"} +(69,1,1) = {" +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +qE +Bs +Rh +RA +tw +tw +aD +tw +uF +UF +Hc +BH +Ii +yd +lN +Rv +oU +qL +wE +CT +zK +EG +EG +zK +kZ +kZ +kZ +kZ +kZ +kZ +"} +(70,1,1) = {" +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +qE +Bs +Bs +RA +ah +Gn +fP +Gn +Cx +yX +Hc +BH +qL +jZ +nH +nH +nH +nH +FZ +Ef +xn +Ug +YV +zK +kZ +kZ +kZ +kZ +kZ +kZ +"} +(71,1,1) = {" +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +qE +Bs +Zf +zK +ah +Gn +zQ +rC +cZ +Ha +Hc +zt +ot +Qj +MJ +MJ +Th +TH +PD +JI +zK +EG +EG +zK +kZ +kZ +kZ +kZ +kZ +kZ +"} +(72,1,1) = {" +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +qE +Bs +Bs +zK +ah +Gn +zQ +rC +cZ +EY +cf +tD +Ny +PD +MJ +df +Hc +TH +PD +gY +zK +zK +zK +zK +kZ +kZ +kZ +kZ +kZ +kZ +"} +(73,1,1) = {" +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +qE +Bs +nQ +zK +ZS +Gn +zQ +rC +cZ +EY +ec +tD +tD +PD +MJ +df +Hc +dH +kf +tD +MJ +Gv +wO +zK +kZ +kZ +kZ +kZ +kZ +kZ +"} +(74,1,1) = {" +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +qE +Bs +Bs +zK +nd +hy +zQ +rC +cZ +Hc +Hc +yq +xK +PD +tl +zO +Hc +dH +Rv +qL +tD +Wd +wO +zK +kZ +kZ +kZ +kZ +kZ +kZ +"} +(75,1,1) = {" +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +qE +Bs +od +zK +nd +rC +fP +nJ +nW +dX +Hc +Hc +Hc +ab +Hc +Hc +Hc +Qa +MJ +tD +MJ +Gv +dy +zK +kZ +kZ +kZ +kZ +kZ +kZ +"} +(76,1,1) = {" +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +ww +lZ +lZ +zK +VE +rC +Zb +Gn +rD +zK +zK +zK +DE +lO +sg +zK +zK +zK +if +py +qx +Gv +dy +zK +kZ +kZ +kZ +kZ +kZ +kZ +"} +(77,1,1) = {" +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +zK +zK +zK +zK +zK +zK +zK +kZ +zK +EA +lO +ul +zK +kZ +zK +zK +zK +zK +zK +zK +zK +kZ +kZ +kZ +kZ +kZ +kZ +"} +(78,1,1) = {" +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +SF +kZ +kZ +RA +EA +lO +sy +RA +kZ +kZ +SF +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +"} +(79,1,1) = {" +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +SF +kZ +kZ +RA +ip +lO +sy +RA +kZ +kZ +SF +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +"} +(80,1,1) = {" +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +SF +kZ +kZ +RA +ip +lO +nd +RA +kZ +kZ +SF +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +"} +(81,1,1) = {" +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +SF +kZ +kZ +zK +iq +Jc +zi +zK +kZ +kZ +SF +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +"} +(82,1,1) = {" +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +SF +kZ +kZ +zK +wc +lO +nd +zK +kZ +kZ +SF +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +"} +(83,1,1) = {" +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +SF +kZ +kZ +RA +yL +lO +nd +RA +kZ +kZ +SF +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +"} +(84,1,1) = {" +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +SF +kZ +kZ +RA +yL +eG +nd +RA +kZ +kZ +SF +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +"} +(85,1,1) = {" +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +SF +kZ +kZ +RA +yL +eG +nd +RA +kZ +kZ +SF +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +"} +(86,1,1) = {" +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +SF +kZ +kZ +zK +Wz +DR +Mn +zK +kZ +kZ +SF +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +"} +(87,1,1) = {" +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +SF +kZ +BI +zK +ab +Hc +ab +zK +zK +kZ +SF +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +"} +(88,1,1) = {" +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +SF +zK +zK +RJ +Dj +tD +Kt +QD +zK +zK +SF +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +"} +(89,1,1) = {" +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +zK +zK +fo +ZW +Fm +Pw +Lf +RJ +rY +zK +zK +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +"} +(90,1,1) = {" +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +zK +cz +na +sd +JI +yf +TB +rs +rs +Kj +zK +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +"} +(91,1,1) = {" +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +zK +RR +Bc +cX +dP +qu +mF +rs +rs +RJ +RA +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +"} +(92,1,1) = {" +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +zK +Bc +IJ +cX +ow +RI +Cl +wi +rs +RJ +RA +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +"} +(93,1,1) = {" +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +zK +Bc +RR +eu +dP +Tm +nv +RJ +rs +rs +aM +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +"} +(94,1,1) = {" +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +zK +Bc +RR +eu +yU +mw +Ee +Jw +Qd +Qd +aM +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +"} +(95,1,1) = {" +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +zK +VI +lu +gW +Po +aP +lI +tD +MJ +JO +zK +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +"} +(96,1,1) = {" +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +zK +zK +Gd +Qh +HM +Fg +ue +cy +Zj +zK +zK +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +"} +(97,1,1) = {" +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +ww +zK +zK +RJ +Ze +BH +Uy +DM +zK +zK +qr +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +"} +(98,1,1) = {" +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +ww +zK +zK +zK +zK +zK +zK +zK +qr +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +"} +(99,1,1) = {" +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +"} +(100,1,1) = {" +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +kZ +"} diff --git a/maps/templates/weyland_ert_station.dmm b/maps/templates/lazy_templates/weyland_ert_station.dmm similarity index 75% rename from maps/templates/weyland_ert_station.dmm rename to maps/templates/lazy_templates/weyland_ert_station.dmm index 1937aa6a61a9..2eeabcb4fc3e 100644 --- a/maps/templates/weyland_ert_station.dmm +++ b/maps/templates/lazy_templates/weyland_ert_station.dmm @@ -1,32 +1,22 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE "ab" = ( /obj/structure/machinery/iv_drip, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "green" - }, +/turf/open/floor/corsat/green/southeast, /area/adminlevel/ert_station/weyland_station) "al" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/adminlevel/ert_station/weyland_station) "ap" = ( /obj/structure/bed/chair/comfy/orange{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/southwest, /area/adminlevel/ert_station/weyland_station) "au" = ( -/turf/open/floor/corsat{ - icon_state = "blue" - }, +/turf/open/floor/corsat/blue, /area/adminlevel/ert_station/weyland_station) "aG" = ( /obj/structure/surface/table/woodentable/fancy, @@ -47,26 +37,18 @@ pixel_x = 5; pixel_y = 13 }, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/northeast, /area/adminlevel/ert_station/weyland_station) "bk" = ( /obj/structure/machinery/medical_pod/sleeper, -/turf/open/floor/corsat{ - icon_state = "green" - }, +/turf/open/floor/corsat/green, /area/adminlevel/ert_station/weyland_station) "bp" = ( /obj/structure/bed/chair{ dir = 8 }, /obj/structure/pipes/standard/manifold/fourway/hidden/green, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/adminlevel/ert_station/weyland_station) "bv" = ( /obj/structure/machinery/vending/coffee, @@ -82,56 +64,41 @@ dir = 8 }, /obj/item/bedsheet/orange, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/adminlevel/ert_station/weyland_station) "bG" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/adminlevel/ert_station/weyland_station) "bV" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner, /area/adminlevel/ert_station/weyland_station) "ck" = ( /obj/structure/toilet{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/adminlevel/ert_station/weyland_station) "cm" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "sterileplate" - }, +/turf/open/floor/corsat/sterileplate, /area/adminlevel/ert_station/weyland_station) "cn" = ( /obj/structure/reagent_dispensers/watertank, -/turf/open/floor/corsat{ - icon_state = "cargo" - }, +/turf/open/floor/corsat/cargo, /area/adminlevel/ert_station/weyland_station) "cq" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/adminlevel/ert_station/weyland_station) "cr" = ( /obj/effect/decal/strata_decals/catwalk/prison, @@ -139,16 +106,11 @@ dir = 8 }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/adminlevel/ert_station/weyland_station) "cw" = ( /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor/corsat{ - icon_state = "blue" - }, +/turf/open/floor/corsat/blue, /area/adminlevel/ert_station/weyland_station) "cz" = ( /obj/structure/surface/table/woodentable/fancy, @@ -157,67 +119,46 @@ /obj/item/tool/pen{ pixel_y = 3 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/adminlevel/ert_station/weyland_station) "cK" = ( /obj/structure/surface/table, /obj/structure/machinery/light/double, -/turf/open/floor/corsat{ - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan, /area/adminlevel/ert_station/weyland_station) "cU" = ( -/turf/open/floor/corsat{ - dir = 9; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/northwest, /area/adminlevel/ert_station/weyland_station) "cW" = ( /obj/effect/decal/strata_decals/catwalk/prison, /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/adminlevel/ert_station/weyland_station) "cX" = ( /obj/structure/machinery/cm_vending/sorted/marine_food{ density = 0; pixel_y = 16 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/north, /area/adminlevel/ert_station/weyland_station) "cY" = ( /obj/structure/closet/firecloset/full, /obj/structure/machinery/light/double{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner/east, /area/adminlevel/ert_station/weyland_station) "cZ" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/adminlevel/ert_station/weyland_station) "dc" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/adminlevel/ert_station/weyland_station) "dx" = ( /obj/structure/window/framed/corsat/indestructible/research, @@ -235,9 +176,7 @@ /obj/structure/machinery/light/double{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "sterileplate" - }, +/turf/open/floor/corsat/sterileplate, /area/adminlevel/ert_station/weyland_station) "dz" = ( /obj/structure/machinery/light/double{ @@ -246,41 +185,28 @@ pixel_y = 1 }, /obj/structure/largecrate/random/barrel/green, -/turf/open/floor/corsat{ - icon_state = "red" - }, +/turf/open/floor/corsat/red, /area/adminlevel/ert_station/weyland_station) "dC" = ( /obj/structure/machinery/cm_vending/sorted/medical/wall_med{ pixel_y = 25 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/north, /area/adminlevel/ert_station/weyland_station) "dE" = ( -/turf/open/floor/corsat{ - icon_state = "greencorner" - }, +/turf/open/floor/corsat/greencorner, /area/adminlevel/ert_station/weyland_station) "dM" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/north, /area/adminlevel/ert_station/weyland_station) "dO" = ( /obj/structure/machinery/light/double{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/north, /area/adminlevel/ert_station/weyland_station) "dT" = ( /obj/structure/machinery/light/double{ @@ -289,16 +215,11 @@ pixel_y = 1 }, /obj/structure/morgue, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "green" - }, +/turf/open/floor/corsat/green/southwest, /area/adminlevel/ert_station/weyland_station) "ee" = ( /obj/structure/bed/roller, -/turf/open/floor/corsat{ - icon_state = "darkgreen" - }, +/turf/open/floor/corsat/darkgreen, /area/adminlevel/ert_station/weyland_station) "eh" = ( /obj/structure/machinery/shower{ @@ -311,33 +232,22 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/adminlevel/ert_station/weyland_station) "ei" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "green" - }, +/turf/open/floor/corsat/green/west, /area/adminlevel/ert_station/weyland_station) "ek" = ( /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "green" - }, +/turf/open/floor/corsat/green, /area/adminlevel/ert_station/weyland_station) "el" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "greencorner" - }, +/turf/open/floor/corsat/greencorner/north, /area/adminlevel/ert_station/weyland_station) "er" = ( /obj/structure/surface/table/woodentable/fancy, @@ -345,34 +255,23 @@ /obj/structure/machinery/light/double{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/adminlevel/ert_station/weyland_station) "eA" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/clothing/gloves/yellow, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/adminlevel/ert_station/weyland_station) "eB" = ( /obj/structure/machinery/cm_vending/sorted/medical/blood{ req_access = null }, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "green" - }, +/turf/open/floor/corsat/green/northwest, /area/adminlevel/ert_station/weyland_station) "eG" = ( /obj/structure/machinery/photocopier, /obj/structure/machinery/light/double, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/southeast, /area/adminlevel/ert_station/weyland_station) "eJ" = ( /obj/structure/machinery/door/airlock/almayer/security/colony{ @@ -380,26 +279,17 @@ name = "\improper Brig Cell 2" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/adminlevel/ert_station/weyland_station) "eO" = ( -/turf/open/floor/corsat{ - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner, /area/adminlevel/ert_station/weyland_station) "eQ" = ( /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/adminlevel/ert_station/weyland_station) "eX" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "green" - }, +/turf/open/floor/corsat/green/east, /area/adminlevel/ert_station/weyland_station) "fe" = ( /obj/structure/machinery/door/poddoor/shutters/almayer/open{ @@ -410,9 +300,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "sigma" - }, +/turf/open/floor/corsat/sigma, /area/adminlevel/ert_station/weyland_station) "fl" = ( /obj/structure/flora/pottedplant{ @@ -427,16 +315,10 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "white" - }, +/turf/open/floor/corsat/white/north, /area/adminlevel/ert_station/weyland_station) "fC" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/west, /area/adminlevel/ert_station/weyland_station) "fD" = ( /obj/structure/closet/emcloset{ @@ -449,18 +331,13 @@ pixel_x = -8; pixel_y = 15 }, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/corsat/red/northwest, /area/adminlevel/ert_station/weyland_station) "fF" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/adminlevel/ert_station/weyland_station) "fI" = ( /obj/structure/machinery/door/airlock/almayer/generic{ @@ -469,9 +346,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/adminlevel/ert_station/weyland_station) "fX" = ( /turf/closed/wall/r_wall/biodome, @@ -481,10 +356,7 @@ /obj/structure/machinery/autodoc_console{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/corsat/green/north, /area/adminlevel/ert_station/weyland_station) "gh" = ( /obj/effect/decal/warning_stripes{ @@ -494,39 +366,28 @@ /obj/structure/machinery/light/double/blue{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/adminlevel/ert_station/weyland_station) "gj" = ( /obj/structure/surface/table/reinforced/black, /obj/item/device/taperecorder, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/adminlevel/ert_station/weyland_station) "gm" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "sterileplate" - }, +/turf/open/floor/corsat/sterileplate, /area/adminlevel/ert_station/weyland_station) "gq" = ( /obj/structure/bed, /obj/item/bedsheet/orange, /obj/structure/machinery/light/double, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/adminlevel/ert_station/weyland_station) "gC" = ( /obj/structure/closet/crate/ammo/alt/flame, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/west, /area/adminlevel/ert_station/weyland_station) "gH" = ( /obj/item/reagent_container/glass/bucket/janibucket{ @@ -541,64 +402,43 @@ /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/west, /area/adminlevel/ert_station/weyland_station) "gK" = ( /obj/structure/bed, /obj/item/bedsheet/orange, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/adminlevel/ert_station/weyland_station) "gL" = ( /obj/structure/surface/table, /obj/item/storage/box/wy_mre, -/turf/open/floor/corsat{ - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan, /area/adminlevel/ert_station/weyland_station) "gW" = ( /obj/structure/machinery/chem_dispenser, /obj/item/reagent_container/glass/beaker/bluespace, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/corsat/green/north, /area/adminlevel/ert_station/weyland_station) "ha" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/processor{ pixel_y = 10 }, -/turf/open/floor/corsat{ - icon_state = "sterileplate" - }, +/turf/open/floor/corsat/sterileplate, /area/adminlevel/ert_station/weyland_station) "ho" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "whitetancorner" - }, +/turf/open/floor/corsat/whitetancorner/north, /area/adminlevel/ert_station/weyland_station) "hu" = ( /obj/structure/machinery/optable, /obj/item/tank/anesthetic, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "darkgreen" - }, +/turf/open/floor/corsat/darkgreen/north, /area/adminlevel/ert_station/weyland_station) "hz" = ( /obj/structure/bed/chair/office/light{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/east, /area/adminlevel/ert_station/weyland_station) "hC" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -606,30 +446,20 @@ id = "WY_center_medbay"; name = "\improper Central Medbay Shutters" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/adminlevel/ert_station/weyland_station) "hG" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/adminlevel/ert_station/weyland_station) "hK" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "whitetancorner" - }, +/turf/open/floor/corsat/whitetancorner/east, /area/adminlevel/ert_station/weyland_station) "hM" = ( /obj/structure/machinery/light/double, /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "red" - }, +/turf/open/floor/corsat/red, /area/adminlevel/ert_station/weyland_station) "hZ" = ( /obj/structure/closet/secure_closet/brig{ @@ -642,41 +472,29 @@ pixel_x = -7; pixel_y = 16 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/north, /area/adminlevel/ert_station/weyland_station) "ib" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "arrow_east" - }, +/turf/open/floor/corsat/arrow_east, /area/adminlevel/ert_station/weyland_station) "id" = ( /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan, /area/adminlevel/ert_station/weyland_station) "ik" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/adminlevel/ert_station/weyland_station) "in" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/adminlevel/ert_station/weyland_station) "iw" = ( /obj/structure/surface/table/woodentable/fancy, @@ -691,15 +509,11 @@ /area/adminlevel/ert_station/weyland_station) "iE" = ( /obj/structure/pipes/standard/manifold/fourway/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/adminlevel/ert_station/weyland_station) "iJ" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner, /area/adminlevel/ert_station/weyland_station) "iP" = ( /obj/structure/closet/fireaxecabinet{ @@ -708,10 +522,7 @@ /obj/structure/machinery/light/double{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "greencorner" - }, +/turf/open/floor/corsat/greencorner/east, /area/adminlevel/ert_station/weyland_station) "iT" = ( /obj/structure/surface/table/reinforced, @@ -723,29 +534,19 @@ pixel_x = -8 }, /obj/item/tool/kitchen/rollingpin, -/turf/open/floor/corsat{ - icon_state = "sterileplate" - }, +/turf/open/floor/corsat/sterileplate, /area/adminlevel/ert_station/weyland_station) "iU" = ( /obj/structure/closet/crate/internals, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/corsat/green/north, /area/adminlevel/ert_station/weyland_station) "iV" = ( /obj/structure/machinery/autolathe/full, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/west, /area/adminlevel/ert_station/weyland_station) "jb" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/adminlevel/ert_station/weyland_station) "je" = ( /obj/structure/reagent_dispensers/water_cooler/stacks{ @@ -759,17 +560,13 @@ /obj/structure/machinery/cm_vending/clothing/antag{ name = "\improper Response Team Automated Equipment Rack" }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/adminlevel/ert_station/weyland_station) "jz" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor/corsat{ - icon_state = "blue" - }, +/turf/open/floor/corsat/blue, /area/adminlevel/ert_station/weyland_station) "jE" = ( /obj/structure/machinery/shower{ @@ -779,9 +576,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "damaged1" - }, +/turf/open/floor/corsat/damaged1, /area/adminlevel/ert_station/weyland_station) "jK" = ( /obj/structure/machinery/light/double{ @@ -789,75 +584,48 @@ pixel_x = -10; pixel_y = 1 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "red" - }, +/turf/open/floor/corsat/red/west, /area/adminlevel/ert_station/weyland_station) "jY" = ( /obj/structure/machinery/medical_pod/sleeper, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "green" - }, +/turf/open/floor/corsat/green/southwest, /area/adminlevel/ert_station/weyland_station) "ka" = ( /obj/structure/closet/crate/medical, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/corsat/green/north, /area/adminlevel/ert_station/weyland_station) "kn" = ( /obj/structure/machinery/light/double, -/turf/open/floor/corsat{ - icon_state = "green" - }, +/turf/open/floor/corsat/green, /area/adminlevel/ert_station/weyland_station) "kq" = ( /obj/structure/bed/chair/wheelchair, /obj/structure/machinery/light/double, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "green" - }, +/turf/open/floor/corsat/green/east, /area/adminlevel/ert_station/weyland_station) "kr" = ( /obj/effect/decal/strata_decals/catwalk/prison, /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/adminlevel/ert_station/weyland_station) "ky" = ( /obj/structure/closet/secure_closet/engineering_personal, /obj/item/clothing/suit/storage/hazardvest/blue, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/west, /area/adminlevel/ert_station/weyland_station) "kA" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/adminlevel/ert_station/weyland_station) "kF" = ( /obj/structure/machinery/power/smes, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/adminlevel/ert_station/weyland_station) "kM" = ( /obj/structure/largecrate/supply/weapons/flamers, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "cargo" - }, +/turf/open/floor/corsat/cargo, /area/adminlevel/ert_station/weyland_station) "kO" = ( /obj/structure/window/framed/corsat/research, @@ -873,50 +641,36 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/adminlevel/ert_station/weyland_station) "kW" = ( /obj/structure/machinery/sleep_console{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "green" - }, +/turf/open/floor/corsat/green, /area/adminlevel/ert_station/weyland_station) "la" = ( /obj/structure/machinery/light/double, /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner, /area/adminlevel/ert_station/weyland_station) "lh" = ( -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/adminlevel/ert_station/weyland_station) "ll" = ( /obj/item/storage/firstaid/adv, /obj/item/storage/belt/medical/lifesaver/full, /obj/structure/surface/table/reinforced/almayer_B, -/turf/open/floor/corsat{ - icon_state = "green" - }, +/turf/open/floor/corsat/green, /area/adminlevel/ert_station/weyland_station) "lo" = ( /obj/effect/decal/strata_decals/catwalk/prison, /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/adminlevel/ert_station/weyland_station) "lq" = ( /obj/structure/bed{ @@ -930,29 +684,19 @@ /obj/item/reagent_container/food/snacks/milosoup{ pixel_y = 10 }, -/turf/open/floor/corsat{ - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan, /area/adminlevel/ert_station/weyland_station) "lw" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "sterileplate" - }, +/turf/open/floor/corsat/sterileplate, /area/adminlevel/ert_station/weyland_station) "lx" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner/west, /area/adminlevel/ert_station/weyland_station) "lD" = ( /obj/structure/surface/table/reinforced/almayer_B, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/corsat/red/northwest, /area/adminlevel/ert_station/weyland_station) "lE" = ( /obj/structure/bed{ @@ -961,10 +705,7 @@ /obj/structure/machinery/light/small/built{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "red" - }, +/turf/open/floor/corsat/red/northeast, /area/adminlevel/ert_station/weyland_station) "lH" = ( /obj/structure/machinery/light/double{ @@ -972,16 +713,11 @@ pixel_x = 10; pixel_y = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner/north, /area/adminlevel/ert_station/weyland_station) "lI" = ( /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor/corsat{ - icon_state = "red" - }, +/turf/open/floor/corsat/red, /area/adminlevel/ert_station/weyland_station) "lS" = ( /obj/structure/largecrate/supply/medicine/blood, @@ -990,19 +726,14 @@ pixel_x = 10; pixel_y = 1 }, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "green" - }, +/turf/open/floor/corsat/green/northeast, /area/adminlevel/ert_station/weyland_station) "lT" = ( /obj/structure/machinery/cryopod/right{ layer = 3.1; pixel_y = 13 }, -/turf/open/floor/corsat{ - icon_state = "cargo" - }, +/turf/open/floor/corsat/cargo, /area/adminlevel/ert_station/weyland_station) "lU" = ( /obj/effect/decal/warning_stripes{ @@ -1014,10 +745,7 @@ pixel_y = 1 }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "white" - }, +/turf/open/floor/corsat/white/east, /area/adminlevel/ert_station/weyland_station) "lY" = ( /obj/structure/window/framed/corsat/indestructible, @@ -1027,9 +755,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/adminlevel/ert_station/weyland_station) "mg" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -1038,17 +764,11 @@ "mh" = ( /obj/structure/surface/rack, /obj/item/storage/toolbox/mechanical, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/southeast, /area/adminlevel/ert_station/weyland_station) "mn" = ( /obj/structure/closet/toolcloset, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/northeast, /area/adminlevel/ert_station/weyland_station) "mv" = ( /obj/effect/decal/strata_decals/catwalk/prison, @@ -1056,77 +776,52 @@ dir = 4 }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/strata{ - dir = 8; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/west, /area/adminlevel/ert_station/weyland_station) "mx" = ( /obj/structure/barricade/handrail/wire{ dir = 4 }, /obj/structure/largecrate/random/case/small, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/east, /area/adminlevel/ert_station/weyland_station) "mE" = ( /obj/structure/closet/firecloset/full, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/corsat/red/southeast, /area/adminlevel/ert_station/weyland_station) "mI" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "green" - }, +/turf/open/floor/corsat/green/east, /area/adminlevel/ert_station/weyland_station) "mV" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/almayer{ name = "\improper Telecomms" }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/adminlevel/ert_station/weyland_station) "nb" = ( /obj/structure/filingcabinet/filingcabinet{ density = 0; pixel_x = 8 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "green" - }, +/turf/open/floor/corsat/green/east, /area/adminlevel/ert_station/weyland_station) "ng" = ( /obj/structure/machinery/cm_vending/sorted/tech/comp_storage/antag, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/adminlevel/ert_station/weyland_station) "nq" = ( /obj/structure/machinery/cm_vending/sorted/medical/chemistry/no_access{ req_access = null }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "green" - }, +/turf/open/floor/corsat/green/southwest, /area/adminlevel/ert_station/weyland_station) "ns" = ( /obj/structure/machinery/door/airlock/almayer/generic{ dir = 1; name = "\improper Bathroom" }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/adminlevel/ert_station/weyland_station) "nw" = ( /obj/structure/surface/rack, @@ -1136,9 +831,7 @@ /obj/item/weapon/gun/rifle/m41a/elite{ pixel_y = -4 }, -/turf/open/floor/corsat{ - icon_state = "cargo" - }, +/turf/open/floor/corsat/cargo, /area/adminlevel/ert_station/weyland_station) "nG" = ( /obj/structure/machinery/autolathe/full, @@ -1147,35 +840,24 @@ pixel_x = -10; pixel_y = 1 }, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/southwest, /area/adminlevel/ert_station/weyland_station) "nI" = ( /obj/effect/decal/strata_decals/catwalk/prison, /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/adminlevel/ert_station/weyland_station) "nJ" = ( /obj/item/roller, /obj/item/roller, /obj/structure/surface/table/reinforced/almayer_B, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "green" - }, +/turf/open/floor/corsat/green/southwest, /area/adminlevel/ert_station/weyland_station) "nQ" = ( /obj/structure/surface/table/reinforced, -/turf/open/floor/corsat{ - icon_state = "sterileplate" - }, +/turf/open/floor/corsat/sterileplate, /area/adminlevel/ert_station/weyland_station) "nS" = ( /obj/effect/decal/warning_stripes{ @@ -1200,34 +882,24 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "whitecorner" - }, +/turf/open/floor/corsat/whitecorner/west, /area/adminlevel/ert_station/weyland_station) "nT" = ( /obj/structure/showcase{ icon_state = "broadcast receiver"; name = "Subspace Receiver" }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/adminlevel/ert_station/weyland_station) "nY" = ( /obj/structure/machinery/iv_drip, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "green" - }, +/turf/open/floor/corsat/green/northeast, /area/adminlevel/ert_station/weyland_station) "ob" = ( /obj/structure/closet/secure_closet/chemical{ req_access_txt = "100" }, -/turf/open/floor/corsat{ - icon_state = "green" - }, +/turf/open/floor/corsat/green, /area/adminlevel/ert_station/weyland_station) "og" = ( /obj/structure/machinery/light/double{ @@ -1235,29 +907,18 @@ pixel_x = -10; pixel_y = 1 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/east, /area/adminlevel/ert_station/weyland_station) "ou" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/storage/firstaid/adv, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/adminlevel/ert_station/weyland_station) "oE" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "bluecorner" - }, +/turf/open/floor/corsat/bluecorner/west, /area/adminlevel/ert_station/weyland_station) "oL" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/west, /area/adminlevel/ert_station/weyland_station) "oM" = ( /obj/structure/window/framed/corsat/research, @@ -1274,9 +935,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/adminlevel/ert_station/weyland_station) "oT" = ( /obj/structure/bed, @@ -1284,33 +943,24 @@ /obj/structure/machinery/light/double{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "green" - }, +/turf/open/floor/corsat/green/northeast, /area/adminlevel/ert_station/weyland_station) "oX" = ( /obj/structure/surface/rack, /obj/item/storage/fancy/vials/random, -/turf/open/floor/corsat{ - icon_state = "green" - }, +/turf/open/floor/corsat/green, /area/adminlevel/ert_station/weyland_station) "pa" = ( /obj/vehicle/powerloader/ft{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "cargo" - }, +/turf/open/floor/corsat/cargo, /area/adminlevel/ert_station/weyland_station) "pc" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "brown" - }, +/turf/open/floor/corsat/brown, /area/adminlevel/ert_station/weyland_station) "pf" = ( /obj/structure/surface/table/reinforced/almayer_B, @@ -1318,23 +968,17 @@ pixel_y = 8 }, /obj/item/ammo_box/magazine/ap, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/adminlevel/ert_station/weyland_station) "pq" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/adminlevel/ert_station/weyland_station) "pv" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/adminlevel/ert_station/weyland_station) "pB" = ( /obj/structure/machinery/cm_vending/sorted/cargo_guns/antag_guns{ @@ -1344,32 +988,21 @@ use_snowflake_points = 1 }, /obj/structure/machinery/light/double, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/adminlevel/ert_station/weyland_station) "pE" = ( -/turf/open/floor/corsat{ - dir = 6; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/southeast, /area/adminlevel/ert_station/weyland_station) "pF" = ( -/turf/open/floor/corsat{ - icon_state = "theta" - }, +/turf/open/floor/corsat/theta, /area/adminlevel/ert_station/weyland_station) "pK" = ( /obj/structure/machinery/cm_vending/sorted/tech/tool_storage/antag, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/adminlevel/ert_station/weyland_station) "pY" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "arrow_east" - }, +/turf/open/floor/corsat/arrow_east, /area/adminlevel/ert_station/weyland_station) "qu" = ( /obj/structure/machinery/door/airlock/almayer/security/colony{ @@ -1377,46 +1010,31 @@ name = "\improper Brig Cell 3" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/adminlevel/ert_station/weyland_station) "qv" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/adminlevel/ert_station/weyland_station) "qD" = ( /obj/structure/surface/table/reinforced/black, /obj/item/folder/black, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/east, /area/adminlevel/ert_station/weyland_station) "qF" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "greencorner" - }, +/turf/open/floor/corsat/greencorner/west, /area/adminlevel/ert_station/weyland_station) "qL" = ( /obj/structure/morgue, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "green" - }, +/turf/open/floor/corsat/green/southwest, /area/adminlevel/ert_station/weyland_station) "qV" = ( /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan, /area/adminlevel/ert_station/weyland_station) "rc" = ( /obj/effect/decal/strata_decals/catwalk/prison, @@ -1424,9 +1042,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "damaged1" - }, +/turf/open/floor/corsat/damaged1, /area/adminlevel/ert_station/weyland_station) "ro" = ( /obj/structure/bed/chair/comfy/beige{ @@ -1436,9 +1052,7 @@ /area/adminlevel/ert_station/weyland_station) "rB" = ( /obj/structure/machinery/cm_vending/sorted/tech/electronics_storage/antag, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/adminlevel/ert_station/weyland_station) "rD" = ( /obj/effect/decal/strata_decals/catwalk/prison, @@ -1450,10 +1064,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/adminlevel/ert_station/weyland_station) "rF" = ( /obj/structure/bed/chair{ @@ -1462,18 +1073,13 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/adminlevel/ert_station/weyland_station) "rK" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/adminlevel/ert_station/weyland_station) "rN" = ( /obj/structure/bed/chair/comfy/orange, @@ -1482,41 +1088,29 @@ pixel_x = -10; pixel_y = 1 }, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/northwest, /area/adminlevel/ert_station/weyland_station) "rX" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "bluecorner" - }, +/turf/open/floor/corsat/bluecorner/north, /area/adminlevel/ert_station/weyland_station) "rY" = ( /obj/structure/machinery/light/double{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/adminlevel/ert_station/weyland_station) "sg" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellow" +/obj/structure/machinery/power/apc/antag{ + dir = 4 }, +/turf/open/floor/corsat/yellow/east, /area/adminlevel/ert_station/weyland_station) "sq" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "red" - }, +/turf/open/floor/corsat/red/east, /area/adminlevel/ert_station/weyland_station) "sr" = ( /obj/structure/surface/table/woodentable/fancy, @@ -1539,9 +1133,7 @@ /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/adminlevel/ert_station/weyland_station) "sA" = ( /obj/structure/machinery/blackbox_recorder, @@ -1551,10 +1143,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/east, /area/adminlevel/ert_station/weyland_station) "sH" = ( /obj/structure/surface/table/woodentable/fancy, @@ -1588,24 +1177,15 @@ pixel_x = -10; pixel_y = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "whitetancorner" - }, +/turf/open/floor/corsat/whitetancorner/north, /area/adminlevel/ert_station/weyland_station) "tc" = ( /obj/structure/bed/sofa/south/white/right, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/adminlevel/ert_station/weyland_station) "td" = ( /obj/structure/closet/emcloset, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/corsat/red/southwest, /area/adminlevel/ert_station/weyland_station) "th" = ( /obj/structure/closet/secure_closet/surgical{ @@ -1623,16 +1203,10 @@ pixel_y = 9; req_access_txt = "1" }, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "darkgreen" - }, +/turf/open/floor/corsat/darkgreen/northwest, /area/adminlevel/ert_station/weyland_station) "ts" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner/west, /area/adminlevel/ert_station/weyland_station) "tz" = ( /obj/effect/decal/warning_stripes{ @@ -1641,10 +1215,7 @@ /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "white" - }, +/turf/open/floor/corsat/white/east, /area/adminlevel/ert_station/weyland_station) "tR" = ( /obj/structure/machinery/door/poddoor/shutters/almayer/open{ @@ -1660,22 +1231,15 @@ /turf/open/floor/wood/ship, /area/adminlevel/ert_station/weyland_station) "tX" = ( -/turf/open/floor/corsat{ - icon_state = "sterileplate" - }, +/turf/open/floor/corsat/sterileplate, /area/adminlevel/ert_station/weyland_station) "ul" = ( /obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/corsat{ - icon_state = "cargo" - }, +/turf/open/floor/corsat/cargo, /area/adminlevel/ert_station/weyland_station) "uv" = ( /obj/structure/machinery/recharge_station, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/north, /area/adminlevel/ert_station/weyland_station) "uw" = ( /obj/structure/mirror{ @@ -1686,9 +1250,7 @@ pixel_y = 21 }, /obj/structure/pipes/vents/pump, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/adminlevel/ert_station/weyland_station) "uE" = ( /obj/structure/surface/rack, @@ -1699,9 +1261,7 @@ pixel_y = -4 }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "cargo" - }, +/turf/open/floor/corsat/cargo, /area/adminlevel/ert_station/weyland_station) "uR" = ( /obj/structure/closet/secure_closet/freezer/fridge/full, @@ -1709,9 +1269,7 @@ /obj/structure/machinery/light/small/built{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "sterileplate" - }, +/turf/open/floor/corsat/sterileplate, /area/adminlevel/ert_station/weyland_station) "uX" = ( /obj/structure/surface/table, @@ -1723,19 +1281,14 @@ pixel_y = 9 }, /obj/structure/machinery/light/double, -/turf/open/floor/corsat{ - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan, /area/adminlevel/ert_station/weyland_station) "va" = ( /obj/effect/decal/warning_stripes{ icon_state = "E" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "white" - }, +/turf/open/floor/corsat/white/east, /area/adminlevel/ert_station/weyland_station) "vb" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/marine/colony{ @@ -1745,29 +1298,19 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/adminlevel/ert_station/weyland_station) "vc" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/west, /area/adminlevel/ert_station/weyland_station) "vh" = ( -/turf/open/floor/corsat{ - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow, /area/adminlevel/ert_station/weyland_station) "vv" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/north, /area/adminlevel/ert_station/weyland_station) "vz" = ( /obj/structure/pipes/vents/pump{ @@ -1784,10 +1327,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/west, /area/adminlevel/ert_station/weyland_station) "vU" = ( /obj/structure/machinery/light/double{ @@ -1795,39 +1335,27 @@ pixel_x = -10; pixel_y = 1 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/west, /area/adminlevel/ert_station/weyland_station) "vW" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "sterileplate" - }, +/turf/open/floor/corsat/sterileplate, /area/adminlevel/ert_station/weyland_station) "vX" = ( /obj/structure/machinery/cryopod/right, -/turf/open/floor/corsat{ - icon_state = "cargo" - }, +/turf/open/floor/corsat/cargo, /area/adminlevel/ert_station/weyland_station) "wa" = ( /obj/item/device/defibrillator/upgraded, /obj/structure/surface/table/reinforced/almayer_B, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "darkgreen" - }, +/turf/open/floor/corsat/darkgreen/northeast, /area/adminlevel/ert_station/weyland_station) "wE" = ( /obj/structure/bed, /obj/item/bedsheet/orange, -/turf/open/floor/corsat{ - icon_state = "brown" - }, +/turf/open/floor/corsat/brown, /area/adminlevel/ert_station/weyland_station) "wU" = ( /obj/structure/surface/rack, @@ -1838,26 +1366,20 @@ /obj/item/storage/pill_bottle/kelotane{ pixel_x = -7 }, -/turf/open/floor/corsat{ - icon_state = "green" - }, +/turf/open/floor/corsat/green, /area/adminlevel/ert_station/weyland_station) "xg" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" }, /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor/corsat{ - icon_state = "white" - }, +/turf/open/floor/corsat/white, /area/adminlevel/ert_station/weyland_station) "xh" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/adminlevel/ert_station/weyland_station) "xk" = ( /obj/structure/surface/table/woodentable/fancy, @@ -1869,10 +1391,7 @@ /turf/open/floor/wood/ship, /area/adminlevel/ert_station/weyland_station) "xA" = ( -/turf/open/floor/corsat{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/corsat/red/southwest, /area/adminlevel/ert_station/weyland_station) "xD" = ( /obj/structure/machinery/door/poddoor/shutters/almayer/open{ @@ -1880,35 +1399,26 @@ id = "WY_meeting"; name = "\improper Meeting Room Shutters" }, -/turf/open/floor/corsat{ - icon_state = "sigma" - }, +/turf/open/floor/corsat/sigma, /area/adminlevel/ert_station/weyland_station) "xE" = ( /obj/effect/decal/warning_stripes{ icon_state = "SE-out"; pixel_x = 1 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/adminlevel/ert_station/weyland_station) "xN" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "red" - }, +/turf/open/floor/corsat/red, /area/adminlevel/ert_station/weyland_station) "xT" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/adminlevel/ert_station/weyland_station) "xZ" = ( /obj/structure/surface/table/woodentable/fancy, @@ -1919,15 +1429,16 @@ /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan, /area/adminlevel/ert_station/weyland_station) "yb" = ( /obj/structure/surface/table/reinforced/almayer_B, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, +/area/adminlevel/ert_station/weyland_station) +"yi" = ( +/obj/structure/surface/table/woodentable/fancy, +/obj/structure/machinery/faxmachine/corporate, +/turf/open/floor/wood/ship, /area/adminlevel/ert_station/weyland_station) "yj" = ( /obj/effect/decal/warning_stripes{ @@ -1941,19 +1452,14 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "whitecorner" - }, +/turf/open/floor/corsat/whitecorner/north, /area/adminlevel/ert_station/weyland_station) "yo" = ( /obj/structure/machinery/light/double, /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "blue" - }, +/turf/open/floor/corsat/blue, /area/adminlevel/ert_station/weyland_station) "yp" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/almayer/glass{ @@ -1963,9 +1469,7 @@ id = "WY_aft_medbay"; name = "\improper Aft Medbay Shutters" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/adminlevel/ert_station/weyland_station) "yD" = ( /obj/structure/bed{ @@ -1975,22 +1479,13 @@ /turf/open/floor/wood/ship, /area/adminlevel/ert_station/weyland_station) "yH" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner/east, /area/adminlevel/ert_station/weyland_station) "yM" = ( -/turf/open/floor/corsat{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/corsat/red/southeast, /area/adminlevel/ert_station/weyland_station) "zh" = ( -/turf/open/floor/corsat{ - dir = 10; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/southwest, /area/adminlevel/ert_station/weyland_station) "zC" = ( /obj/structure/machinery/door/airlock/almayer/medical/glass/colony{ @@ -2000,9 +1495,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/adminlevel/ert_station/weyland_station) "zD" = ( /obj/structure/surface/rack, @@ -2030,52 +1523,35 @@ pixel_y = 9 }, /obj/structure/surface/table/reinforced/black, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/west, /area/adminlevel/ert_station/weyland_station) "zI" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/microwave{ pixel_y = 4 }, -/turf/open/floor/corsat{ - icon_state = "sterileplate" - }, +/turf/open/floor/corsat/sterileplate, /area/adminlevel/ert_station/weyland_station) "zN" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner/west, /area/adminlevel/ert_station/weyland_station) "zR" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "darkgreencorner" - }, +/turf/open/floor/corsat/darkgreencorner/west, /area/adminlevel/ert_station/weyland_station) "zS" = ( /obj/structure/closet/coffin, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/corsat/green/north, /area/adminlevel/ert_station/weyland_station) "zT" = ( /obj/structure/window/reinforced/toughened, /obj/structure/closet/crate/ammo, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner/north, /area/adminlevel/ert_station/weyland_station) "Ai" = ( /obj/item/device/defibrillator/upgraded, @@ -2087,16 +1563,10 @@ pixel_y = 9; req_access_txt = "1" }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/corsat/green/north, /area/adminlevel/ert_station/weyland_station) "Ak" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/north, /area/adminlevel/ert_station/weyland_station) "Ax" = ( /obj/effect/decal/warning_stripes{ @@ -2108,49 +1578,34 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "white" - }, +/turf/open/floor/corsat/white/north, /area/adminlevel/ert_station/weyland_station) "AA" = ( /obj/structure/machinery/portable_atmospherics/powered/pump, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/adminlevel/ert_station/weyland_station) "AD" = ( /obj/structure/surface/table/reinforced/black, /obj/effect/spawner/random/facepaint, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "bluecorner" - }, +/turf/open/floor/corsat/bluecorner/east, /area/adminlevel/ert_station/weyland_station) "AG" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/almayer/glass{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/adminlevel/ert_station/weyland_station) "AH" = ( /obj/structure/machinery/light/double{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/east, /area/adminlevel/ert_station/weyland_station) "AO" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "blue" - }, +/turf/open/floor/corsat/blue, /area/adminlevel/ert_station/weyland_station) "AQ" = ( /obj/structure/machinery/light/double{ @@ -2159,10 +1614,7 @@ pixel_y = 1 }, /obj/structure/closet/l3closet/virology, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "green" - }, +/turf/open/floor/corsat/green/southeast, /area/adminlevel/ert_station/weyland_station) "AR" = ( /obj/structure/bed/chair/office/dark{ @@ -2172,9 +1624,7 @@ /turf/open/floor/wood/ship, /area/adminlevel/ert_station/weyland_station) "AU" = ( -/turf/open/floor/corsat{ - icon_state = "arrow_east" - }, +/turf/open/floor/corsat/arrow_east, /area/adminlevel/ert_station/weyland_station) "AV" = ( /obj/effect/decal/warning_stripes{ @@ -2184,10 +1634,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "white" - }, +/turf/open/floor/corsat/white/north, /area/adminlevel/ert_station/weyland_station) "AY" = ( /obj/structure/machinery/washing_machine, @@ -2195,19 +1642,14 @@ layer = 3.5; pixel_y = 15 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/adminlevel/ert_station/weyland_station) "Bk" = ( /obj/structure/barricade/handrail/wire{ dir = 4 }, /obj/structure/largecrate/random/case/double, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/east, /area/adminlevel/ert_station/weyland_station) "Bu" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -2216,24 +1658,18 @@ /obj/structure/machinery/door/window{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "sterileplate" - }, +/turf/open/floor/corsat/sterileplate, /area/adminlevel/ert_station/weyland_station) "Bx" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/adminlevel/ert_station/weyland_station) "Bz" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/marine/colony{ name = "Barracks" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/adminlevel/ert_station/weyland_station) "BG" = ( /obj/effect/decal/warning_stripes{ @@ -2245,20 +1681,15 @@ pixel_y = 1 }, /obj/structure/pipes/standard/simple/hidden/green{ - dir = 5 - }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "whitecorner" + dir = 5 }, +/turf/open/floor/corsat/whitecorner/east, /area/adminlevel/ert_station/weyland_station) "BL" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor/corsat{ - icon_state = "theta" - }, +/turf/open/floor/corsat/theta, /area/adminlevel/ert_station/weyland_station) "BM" = ( /obj/structure/surface/table, @@ -2274,10 +1705,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/adminlevel/ert_station/weyland_station) "BT" = ( /obj/structure/window/framed/corsat, @@ -2288,19 +1716,14 @@ /turf/open/floor/plating, /area/adminlevel/ert_station/weyland_station) "BV" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "bluecorner" - }, +/turf/open/floor/corsat/bluecorner/north, /area/adminlevel/ert_station/weyland_station) "Cm" = ( /obj/structure/showcase{ icon_state = "hub"; name = "Telecommunication Hub" }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/adminlevel/ert_station/weyland_station) "Cv" = ( /obj/structure/machinery/light/double{ @@ -2317,24 +1740,17 @@ /obj/structure/machinery/door/airlock/multi_tile/almayer/marine/colony{ name = "Cryogenics" }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/adminlevel/ert_station/weyland_station) "Cy" = ( /obj/structure/machinery/light/small{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/adminlevel/ert_station/weyland_station) "CI" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/corsat/red/southeast, /area/adminlevel/ert_station/weyland_station) "CK" = ( /obj/structure/surface/table/reinforced/almayer_B, @@ -2342,25 +1758,17 @@ pixel_x = 8; pixel_y = 8 }, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/corsat/red/northwest, /area/adminlevel/ert_station/weyland_station) "CU" = ( /obj/structure/pipes/standard/manifold/fourway/hidden/green, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/adminlevel/ert_station/weyland_station) "De" = ( /obj/structure/pipes/standard/simple/visible{ dir = 9 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/adminlevel/ert_station/weyland_station) "Dk" = ( /obj/structure/surface/table/reinforced/almayer_B, @@ -2369,28 +1777,19 @@ pixel_y = 6 }, /obj/item/storage/firstaid/toxin, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/adminlevel/ert_station/weyland_station) "Dn" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/corsat/green/north, /area/adminlevel/ert_station/weyland_station) "Dr" = ( -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/adminlevel/ert_station/weyland_station) "Ds" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "bluecorner" - }, +/turf/open/floor/corsat/bluecorner, /area/adminlevel/ert_station/weyland_station) "DF" = ( /obj/structure/bookcase{ @@ -2420,18 +1819,14 @@ icon_state = "processor"; name = "Processor Unit" }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/adminlevel/ert_station/weyland_station) "DO" = ( /obj/structure/showcase{ icon_state = "relay"; name = "Telecommunication Relay" }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/adminlevel/ert_station/weyland_station) "DT" = ( /obj/structure/surface/table/woodentable/fancy, @@ -2441,9 +1836,7 @@ /turf/open/floor/wood/ship, /area/adminlevel/ert_station/weyland_station) "DZ" = ( -/turf/open/floor/corsat{ - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner, /area/adminlevel/ert_station/weyland_station) "Eg" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/almayer/glass{ @@ -2453,9 +1846,7 @@ id = "WY_center_medbay"; name = "\improper Central Medbay Shutters" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/adminlevel/ert_station/weyland_station) "El" = ( /obj/structure/surface/table/reinforced, @@ -2464,44 +1855,30 @@ /obj/structure/window/reinforced/tinted/frosted{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "sterileplate" - }, +/turf/open/floor/corsat/sterileplate, /area/adminlevel/ert_station/weyland_station) "Er" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner, /area/adminlevel/ert_station/weyland_station) "EB" = ( /obj/structure/barricade/handrail/wire, -/turf/open/floor/corsat{ - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow, /area/adminlevel/ert_station/weyland_station) "EC" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner/east, /area/adminlevel/ert_station/weyland_station) "ED" = ( /obj/structure/morgue, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/corsat/green/north, /area/adminlevel/ert_station/weyland_station) "EG" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor/corsat{ - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner, /area/adminlevel/ert_station/weyland_station) "ES" = ( /obj/docking_port/stationary/emergency_response/idle_port2, @@ -2513,9 +1890,7 @@ density = 0; pixel_y = 23 }, -/turf/open/floor/corsat{ - icon_state = "sterileplate" - }, +/turf/open/floor/corsat/sterileplate, /area/adminlevel/ert_station/weyland_station) "Fr" = ( /obj/structure/surface/table/woodentable/fancy, @@ -2528,10 +1903,7 @@ /obj/structure/window/reinforced/toughened{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/southeast, /area/adminlevel/ert_station/weyland_station) "FA" = ( /obj/structure/bed, @@ -2540,38 +1912,27 @@ layer = 2.9 }, /obj/item/bedsheet/orange, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/adminlevel/ert_station/weyland_station) "FD" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/tool/weldingtool, /obj/item/clothing/glasses/welding, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/adminlevel/ert_station/weyland_station) "FE" = ( /obj/structure/machinery/sleep_console, -/turf/open/floor/corsat{ - icon_state = "green" - }, +/turf/open/floor/corsat/green, /area/adminlevel/ert_station/weyland_station) "FO" = ( /obj/effect/decal/warning_stripes{ icon_state = "E"; pixel_x = 1 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/adminlevel/ert_station/weyland_station) "Gb" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "greencorner" - }, +/turf/open/floor/corsat/greencorner/east, /area/adminlevel/ert_station/weyland_station) "Gd" = ( /obj/structure/pipes/vents/pump{ @@ -2581,10 +1942,7 @@ /area/adminlevel/ert_station/weyland_station) "Gg" = ( /obj/structure/machinery/iv_drip, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "green" - }, +/turf/open/floor/corsat/green/east, /area/adminlevel/ert_station/weyland_station) "Gs" = ( /obj/structure/machinery/light/double{ @@ -2593,9 +1951,7 @@ pixel_y = 1 }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/adminlevel/ert_station/weyland_station) "Gx" = ( /obj/item/tool/weldpack{ @@ -2605,34 +1961,24 @@ /obj/item/tool/weldpack{ pixel_x = -2 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/adminlevel/ert_station/weyland_station) "Gz" = ( /obj/structure/pipes/standard/cap/hidden, /obj/structure/machinery/cryo_cell{ layer = 3.20 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/corsat/green/north, /area/adminlevel/ert_station/weyland_station) "GM" = ( /obj/structure/machinery/blackbox_recorder, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/northwest, /area/adminlevel/ert_station/weyland_station) "Hc" = ( /obj/structure/closet/medical_wall{ pixel_x = -30 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/adminlevel/ert_station/weyland_station) "He" = ( /turf/open/floor/wood/ship, @@ -2642,22 +1988,15 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "red" - }, +/turf/open/floor/corsat/red, /area/adminlevel/ert_station/weyland_station) "Hk" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/north, /area/adminlevel/ert_station/weyland_station) "Hr" = ( /obj/structure/closet/secure_closet/freezer/meat, -/turf/open/floor/corsat{ - icon_state = "sterileplate" - }, +/turf/open/floor/corsat/sterileplate, /area/adminlevel/ert_station/weyland_station) "HE" = ( /obj/structure/machinery/light/double{ @@ -2679,16 +2018,11 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/adminlevel/ert_station/weyland_station) "If" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/east, /area/adminlevel/ert_station/weyland_station) "Ik" = ( /obj/effect/decal/strata_decals/catwalk/prison, @@ -2699,72 +2033,49 @@ pixel_x = 1; pixel_y = 23 }, -/turf/open/floor/corsat{ - icon_state = "damaged1" - }, +/turf/open/floor/corsat/damaged1, /area/adminlevel/ert_station/weyland_station) "Im" = ( /obj/structure/closet/coffin, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "green" - }, +/turf/open/floor/corsat/green/southeast, /area/adminlevel/ert_station/weyland_station) "Iv" = ( /obj/effect/decal/warning_stripes{ icon_state = "E"; pixel_x = 1 }, -/turf/open/floor/corsat{ - icon_state = "theta" - }, +/turf/open/floor/corsat/theta, /area/adminlevel/ert_station/weyland_station) "IB" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/adminlevel/ert_station/weyland_station) "II" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner/north, /area/adminlevel/ert_station/weyland_station) "IQ" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/adminlevel/ert_station/weyland_station) "IV" = ( /obj/structure/machinery/light/double, -/turf/open/floor/corsat{ - icon_state = "bluecorner" - }, +/turf/open/floor/corsat/bluecorner, /area/adminlevel/ert_station/weyland_station) "Jc" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "white" - }, +/turf/open/floor/corsat/white/west, /area/adminlevel/ert_station/weyland_station) "Jd" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "greencorner" - }, +/turf/open/floor/corsat/greencorner, /area/adminlevel/ert_station/weyland_station) "Je" = ( -/turf/open/floor/corsat{ - icon_state = "red" - }, +/turf/open/floor/corsat/red, /area/adminlevel/ert_station/weyland_station) "Jk" = ( /obj/structure/sink{ @@ -2774,10 +2085,7 @@ /obj/structure/mirror{ pixel_x = -28 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "darkgreen" - }, +/turf/open/floor/corsat/darkgreen/west, /area/adminlevel/ert_station/weyland_station) "Jr" = ( /obj/structure/machinery/light/double{ @@ -2788,9 +2096,7 @@ /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner, /area/adminlevel/ert_station/weyland_station) "Js" = ( /obj/structure/surface/table/reinforced/black, @@ -2800,16 +2106,11 @@ phone_category = "W-Y"; phone_id = "W-Y Station CiC" }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/adminlevel/ert_station/weyland_station) "Jt" = ( /obj/structure/machinery/iv_drip, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "darkgreencorner" - }, +/turf/open/floor/corsat/darkgreencorner/east, /area/adminlevel/ert_station/weyland_station) "Ju" = ( /obj/structure/surface/table/woodentable/fancy, @@ -2833,37 +2134,26 @@ /obj/structure/reagent_dispensers/beerkeg{ density = 0 }, -/turf/open/floor/corsat{ - icon_state = "sterileplate" - }, +/turf/open/floor/corsat/sterileplate, /area/adminlevel/ert_station/weyland_station) "JA" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "bluecorner" - }, +/turf/open/floor/corsat/bluecorner/east, /area/adminlevel/ert_station/weyland_station) "JK" = ( -/turf/open/floor/corsat{ - icon_state = "whitetancorner" - }, +/turf/open/floor/corsat/whitetancorner, /area/adminlevel/ert_station/weyland_station) "JQ" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/adminlevel/ert_station/weyland_station) "Kd" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/adminlevel/ert_station/weyland_station) "Kg" = ( /obj/structure/surface/table/reinforced/almayer_B, @@ -2874,9 +2164,7 @@ pixel_y = 9; req_access_txt = "1" }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/adminlevel/ert_station/weyland_station) "Kk" = ( /obj/effect/decal/warning_stripes{ @@ -2885,10 +2173,7 @@ /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "white" - }, +/turf/open/floor/corsat/white/north, /area/adminlevel/ert_station/weyland_station) "Ku" = ( /obj/structure/surface/table/reinforced, @@ -2901,9 +2186,7 @@ pixel_x = 10; pixel_y = 1 }, -/turf/open/floor/corsat{ - icon_state = "sterileplate" - }, +/turf/open/floor/corsat/sterileplate, /area/adminlevel/ert_station/weyland_station) "KC" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/almayer/glass{ @@ -2915,34 +2198,23 @@ id = "WY_meeting"; name = "\improper Meeting Room Shutters" }, -/turf/open/floor/corsat{ - icon_state = "sigma" - }, +/turf/open/floor/corsat/sigma, /area/adminlevel/ert_station/weyland_station) "KD" = ( /obj/structure/barricade/handrail/wire{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/north, /area/adminlevel/ert_station/weyland_station) "KF" = ( -/turf/open/floor/corsat{ - dir = 6; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/southeast, /area/adminlevel/ert_station/weyland_station) "KK" = ( /obj/structure/surface/table/reinforced/black, /obj/structure/machinery/computer/communications{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/east, /area/adminlevel/ert_station/weyland_station) "KM" = ( /obj/item/weapon/gun/shotgun/combat{ @@ -2956,18 +2228,13 @@ pixel_y = 2 }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/adminlevel/ert_station/weyland_station) "KP" = ( /obj/structure/machinery/cm_vending/sorted/medical/no_access{ req_access = null }, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "green" - }, +/turf/open/floor/corsat/green/northwest, /area/adminlevel/ert_station/weyland_station) "KW" = ( /obj/structure/window/framed/corsat/indestructible/security, @@ -2981,34 +2248,24 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "white" - }, +/turf/open/floor/corsat/white/north, /area/adminlevel/ert_station/weyland_station) "Le" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/structure/machinery/recharger, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/adminlevel/ert_station/weyland_station) "Ls" = ( /obj/structure/machinery/light/double/blue{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "tcomms" - }, +/turf/open/floor/almayer/tcomms, /area/adminlevel/ert_station/weyland_station) "Lz" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/adminlevel/ert_station/weyland_station) "LF" = ( /obj/effect/decal/strata_decals/catwalk/prison, @@ -3019,16 +2276,10 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "greencorner" - }, +/turf/open/floor/corsat/greencorner/east, /area/adminlevel/ert_station/weyland_station) "Ma" = ( -/turf/open/floor/corsat{ - dir = 5; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/northeast, /area/adminlevel/ert_station/weyland_station) "Mn" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -3036,23 +2287,15 @@ id = "WY_aft_medbay"; name = "\improper Aft Medbay Shutters" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/adminlevel/ert_station/weyland_station) "MA" = ( /obj/structure/bed, /obj/item/bedsheet/medical, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "green" - }, +/turf/open/floor/corsat/green/east, /area/adminlevel/ert_station/weyland_station) "MP" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/east, /area/adminlevel/ert_station/weyland_station) "MQ" = ( /obj/structure/pipes/unary/freezer{ @@ -3061,10 +2304,7 @@ /obj/structure/machinery/light/double{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "greencorner" - }, +/turf/open/floor/corsat/greencorner/north, /area/adminlevel/ert_station/weyland_station) "MV" = ( /obj/item/clothing/gloves/latex, @@ -3072,10 +2312,7 @@ /obj/item/clothing/mask/surgical, /obj/item/clothing/mask/surgical, /obj/structure/surface/table/reinforced/almayer_B, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "darkgreen" - }, +/turf/open/floor/corsat/darkgreen/north, /area/adminlevel/ert_station/weyland_station) "MW" = ( /obj/structure/surface/table, @@ -3083,9 +2320,7 @@ pixel_x = -7; pixel_y = 16 }, -/turf/open/floor/corsat{ - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan, /area/adminlevel/ert_station/weyland_station) "Nd" = ( /obj/structure/window/framed/corsat/research, @@ -3097,65 +2332,46 @@ /area/adminlevel/ert_station/weyland_station) "Nf" = ( /obj/structure/machinery/medical_pod/bodyscanner, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "green" - }, +/turf/open/floor/corsat/green/northwest, /area/adminlevel/ert_station/weyland_station) "Np" = ( /obj/structure/bed, /obj/item/bedsheet/orange, /obj/effect/spawner/random/facepaint, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/adminlevel/ert_station/weyland_station) "Nr" = ( /obj/structure/bed, /obj/item/bedsheet/orange, /obj/effect/spawner/random/goggles/lowchance, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/adminlevel/ert_station/weyland_station) "Ns" = ( /obj/structure/machinery/bioprinter{ stored_metal = 1000 }, /obj/structure/machinery/light/double/blue, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "darkgreen" - }, +/turf/open/floor/corsat/darkgreen/southwest, /area/adminlevel/ert_station/weyland_station) "NC" = ( /obj/structure/pipes/standard/manifold/visible, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/adminlevel/ert_station/weyland_station) "NK" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" }, /obj/structure/pipes/standard/manifold/fourway/hidden/green, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "white" - }, +/turf/open/floor/corsat/white/west, /area/adminlevel/ert_station/weyland_station) "NN" = ( -/turf/open/floor/corsat{ - icon_state = "omega" - }, +/turf/open/floor/corsat/omega, /area/adminlevel/ert_station/weyland_station) "NO" = ( /obj/structure/showcase{ icon_state = "bus" }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/adminlevel/ert_station/weyland_station) "NR" = ( /obj/structure/machinery/light/double{ @@ -3171,38 +2387,26 @@ /obj/structure/machinery/light/double{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellowcorner" - }, +/turf/open/floor/corsat/yellowcorner/north, /area/adminlevel/ert_station/weyland_station) "Oc" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "arrow_west" - }, +/turf/open/floor/corsat/arrow_west, /area/adminlevel/ert_station/weyland_station) "Og" = ( -/turf/open/floor/corsat{ - icon_state = "arrow_west" - }, +/turf/open/floor/corsat/arrow_west, /area/adminlevel/ert_station/weyland_station) "Oj" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "brown" - }, +/turf/open/floor/corsat/brown, /area/adminlevel/ert_station/weyland_station) "On" = ( /obj/structure/machinery/vending/snack, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/adminlevel/ert_station/weyland_station) "Oo" = ( /obj/structure/surface/rack, @@ -3213,26 +2417,20 @@ /obj/item/storage/pill_bottle/antitox{ pixel_x = -5 }, -/turf/open/floor/corsat{ - icon_state = "green" - }, +/turf/open/floor/corsat/green, /area/adminlevel/ert_station/weyland_station) "Oq" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/gibber{ pixel_y = 10 }, -/turf/open/floor/corsat{ - icon_state = "sterileplate" - }, +/turf/open/floor/corsat/sterileplate, /area/adminlevel/ert_station/weyland_station) "Ot" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/adminlevel/ert_station/weyland_station) "Ov" = ( /obj/effect/decal/warning_stripes{ @@ -3240,9 +2438,7 @@ pixel_y = 2 }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/adminlevel/ert_station/weyland_station) "OD" = ( /obj/structure/machinery/cm_vending/sorted/medical/wall_med{ @@ -3251,38 +2447,25 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/adminlevel/ert_station/weyland_station) "OE" = ( /obj/structure/closet/wardrobe/chemistry_white, /obj/structure/machinery/light/double, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "greencorner" - }, +/turf/open/floor/corsat/greencorner/west, /area/adminlevel/ert_station/weyland_station) "OG" = ( /obj/structure/window/reinforced/toughened{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/east, /area/adminlevel/ert_station/weyland_station) "OY" = ( /obj/structure/machinery/vending/cola, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/adminlevel/ert_station/weyland_station) "Pc" = ( -/turf/open/floor/corsat{ - icon_state = "brown" - }, +/turf/open/floor/corsat/brown, /area/adminlevel/ert_station/weyland_station) "Pk" = ( /obj/structure/machinery/light/double, @@ -3297,19 +2480,13 @@ name = "\improper Dormitories" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "squareswood" - }, +/turf/open/floor/corsat/squareswood/north, /area/adminlevel/ert_station/weyland_station) "Qa" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "bluecorner" - }, +/turf/open/floor/corsat/bluecorner/east, /area/adminlevel/ert_station/weyland_station) "Qb" = ( /obj/structure/machinery/shower{ @@ -3319,18 +2496,13 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/strata{ - dir = 6; - icon_state = "multi_tiles" - }, +/turf/open/floor/strata/multi_tiles/southeast, /area/adminlevel/ert_station/weyland_station) "Qc" = ( /obj/structure/machinery/light/double/blue{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "tcomms" - }, +/turf/open/floor/almayer/tcomms, /area/adminlevel/ert_station/weyland_station) "Qk" = ( /obj/structure/machinery/light/double{ @@ -3339,10 +2511,7 @@ pixel_y = 1 }, /obj/structure/closet/l3closet/virology, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "green" - }, +/turf/open/floor/corsat/green/southwest, /area/adminlevel/ert_station/weyland_station) "Qr" = ( /obj/structure/surface/table/reinforced/almayer_B, @@ -3353,16 +2522,11 @@ /obj/item/weapon/gun/smg/m39/elite{ pixel_y = 9 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/adminlevel/ert_station/weyland_station) "QI" = ( /obj/structure/bed/sofa/south/white/left, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/adminlevel/ert_station/weyland_station) "QQ" = ( /obj/structure/pipes/standard/cap/hidden, @@ -3374,10 +2538,7 @@ pixel_x = -10; pixel_y = 1 }, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "green" - }, +/turf/open/floor/corsat/green/northwest, /area/adminlevel/ert_station/weyland_station) "QR" = ( /obj/structure/machinery/light/double{ @@ -3388,10 +2549,7 @@ /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/east, /area/adminlevel/ert_station/weyland_station) "QT" = ( /turf/closed/wall/r_wall/biodome/biodome_unmeltable, @@ -3416,16 +2574,11 @@ /obj/structure/toilet{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/adminlevel/ert_station/weyland_station) "Rd" = ( /obj/structure/machinery/chem_master, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/corsat/green/north, /area/adminlevel/ert_station/weyland_station) "Re" = ( /obj/structure/machinery/light/double{ @@ -3433,24 +2586,17 @@ pixel_x = 10; pixel_y = 1 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/east, /area/adminlevel/ert_station/weyland_station) "Rj" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor/corsat{ - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner, /area/adminlevel/ert_station/weyland_station) "Rr" = ( /obj/structure/window/framed/corsat/cell/security, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/adminlevel/ert_station/weyland_station) "Rv" = ( /obj/structure/surface/table/reinforced/almayer_B, @@ -3459,18 +2605,14 @@ pixel_y = 3 }, /obj/item/storage/box/masks, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/adminlevel/ert_station/weyland_station) "RB" = ( /obj/structure/machinery/shower{ dir = 8 }, /obj/structure/machinery/light/small, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/adminlevel/ert_station/weyland_station) "RE" = ( /obj/structure/machinery/cm_vending/gear/antag{ @@ -3478,21 +2620,14 @@ name = "\improper Response Team Automated Gear Rack"; use_snowflake_points = 1 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/adminlevel/ert_station/weyland_station) "RF" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/corsat/red/southwest, /area/adminlevel/ert_station/weyland_station) "RG" = ( -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/adminlevel/ert_station/weyland_station) "RL" = ( /obj/structure/window/framed/corsat, @@ -3507,9 +2642,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "theta" - }, +/turf/open/floor/corsat/theta, /area/adminlevel/ert_station/weyland_station) "RT" = ( /obj/effect/decal/warning_stripes{ @@ -3519,10 +2652,7 @@ /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "white" - }, +/turf/open/floor/corsat/white/north, /area/adminlevel/ert_station/weyland_station) "RZ" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -3531,9 +2661,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/adminlevel/ert_station/weyland_station) "Si" = ( /obj/structure/bed/roller, @@ -3542,25 +2670,17 @@ pixel_x = 10; pixel_y = 1 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "green" - }, +/turf/open/floor/corsat/green/east, /area/adminlevel/ert_station/weyland_station) "Sr" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/north, /area/adminlevel/ert_station/weyland_station) "Ss" = ( /obj/structure/bed/chair/comfy/orange{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "blue" - }, +/turf/open/floor/corsat/blue, /area/adminlevel/ert_station/weyland_station) "St" = ( /obj/structure/closet/fireaxecabinet{ @@ -3571,19 +2691,13 @@ pixel_x = 10; pixel_y = 1 }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/east, /area/adminlevel/ert_station/weyland_station) "Sw" = ( /obj/structure/pipes/standard/simple/visible{ dir = 5 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "greencorner" - }, +/turf/open/floor/corsat/greencorner/north, /area/adminlevel/ert_station/weyland_station) "SE" = ( /obj/structure/surface/table/woodentable/fancy, @@ -3601,22 +2715,15 @@ pixel_x = -10; pixel_y = 1 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "green" - }, +/turf/open/floor/corsat/green/west, /area/adminlevel/ert_station/weyland_station) "SI" = ( -/turf/open/floor/almayer{ - icon_state = "tcomms" - }, +/turf/open/floor/almayer/tcomms, /area/adminlevel/ert_station/weyland_station) "SJ" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/storage/firstaid/fire, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/adminlevel/ert_station/weyland_station) "SM" = ( /obj/structure/machinery/vending/cigarette/colony, @@ -3626,9 +2733,7 @@ /obj/structure/machinery/cryopod/right{ pixel_y = 6 }, -/turf/open/floor/corsat{ - icon_state = "cargo" - }, +/turf/open/floor/corsat/cargo, /area/adminlevel/ert_station/weyland_station) "SY" = ( /obj/structure/surface/table/reinforced, @@ -3650,9 +2755,7 @@ /obj/structure/window/reinforced/tinted/frosted{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "sterileplate" - }, +/turf/open/floor/corsat/sterileplate, /area/adminlevel/ert_station/weyland_station) "Ta" = ( /obj/structure/bed/chair{ @@ -3661,10 +2764,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/adminlevel/ert_station/weyland_station) "Tf" = ( /obj/structure/surface/rack, @@ -3681,10 +2781,7 @@ pixel_x = -10; pixel_y = 1 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/west, /area/adminlevel/ert_station/weyland_station) "Tk" = ( /obj/effect/decal/warning_stripes{ @@ -3696,16 +2793,11 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "white" - }, +/turf/open/floor/corsat/white, /area/adminlevel/ert_station/weyland_station) "Tx" = ( /obj/structure/bed/roller, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "green" - }, +/turf/open/floor/corsat/green/southeast, /area/adminlevel/ert_station/weyland_station) "TL" = ( /obj/structure/machinery/medical_pod/autodoc/unskilled{ @@ -3716,52 +2808,36 @@ pixel_x = 10; pixel_y = 1 }, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "green" - }, +/turf/open/floor/corsat/green/northeast, /area/adminlevel/ert_station/weyland_station) "TN" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor/corsat{ - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner, /area/adminlevel/ert_station/weyland_station) "TT" = ( /obj/structure/bed/chair/comfy/orange{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/west, /area/adminlevel/ert_station/weyland_station) "TW" = ( /obj/structure/largecrate/random/barrel/green, /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor/corsat{ - icon_state = "red" - }, +/turf/open/floor/corsat/red, /area/adminlevel/ert_station/weyland_station) "Ub" = ( /obj/structure/bed/chair{ dir = 8 }, /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/adminlevel/ert_station/weyland_station) "Ud" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "browncorner" - }, +/turf/open/floor/corsat/browncorner/west, /area/adminlevel/ert_station/weyland_station) "Uk" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony{ @@ -3769,21 +2845,13 @@ name = "\improper Toilet" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/adminlevel/ert_station/weyland_station) "Us" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "green" - }, +/turf/open/floor/corsat/green/west, /area/adminlevel/ert_station/weyland_station) "Uu" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/west, /area/adminlevel/ert_station/weyland_station) "Ux" = ( /turf/open/space/basic, @@ -3798,16 +2866,10 @@ pixel_y = 1 }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "white" - }, +/turf/open/floor/corsat/white/west, /area/adminlevel/ert_station/weyland_station) "UV" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/north, /area/adminlevel/ert_station/weyland_station) "Vm" = ( /obj/effect/decal/warning_stripes{ @@ -3816,23 +2878,16 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "white" - }, +/turf/open/floor/corsat/white, /area/adminlevel/ert_station/weyland_station) "Vp" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/east, /area/adminlevel/ert_station/weyland_station) "VA" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor/corsat{ - icon_state = "sterileplate" - }, +/turf/open/floor/corsat/sterileplate, /area/adminlevel/ert_station/weyland_station) "VJ" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -3844,9 +2899,7 @@ /obj/structure/bed/chair/office/light{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow, /area/adminlevel/ert_station/weyland_station) "Wj" = ( /obj/structure/bed/chair{ @@ -3855,17 +2908,13 @@ /obj/structure/pipes/vents/pump{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan, /area/adminlevel/ert_station/weyland_station) "Wo" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/engidoor/glass/colony{ name = "Engineering" }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/adminlevel/ert_station/weyland_station) "Wu" = ( /obj/effect/decal/warning_stripes{ @@ -3889,9 +2938,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor/corsat{ - icon_state = "whitecorner" - }, +/turf/open/floor/corsat/whitecorner, /area/adminlevel/ert_station/weyland_station) "WD" = ( /obj/structure/flora/pottedplant{ @@ -3901,39 +2948,25 @@ /turf/open/floor/wood/ship, /area/adminlevel/ert_station/weyland_station) "WE" = ( -/turf/open/floor/corsat{ - dir = 4; - icon_state = "whitetan" - }, +/turf/open/floor/corsat/whitetan/east, /area/adminlevel/ert_station/weyland_station) "WU" = ( -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/adminlevel/ert_station/weyland_station) "WW" = ( /obj/structure/bed/chair, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/corsat/green/north, /area/adminlevel/ert_station/weyland_station) "Xh" = ( /obj/structure/window/reinforced/toughened{ dir = 4 }, /obj/structure/machinery/light/double, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/east, /area/adminlevel/ert_station/weyland_station) "Xi" = ( /obj/structure/pipes/standard/tank/oxygen, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "green" - }, +/turf/open/floor/corsat/green/north, /area/adminlevel/ert_station/weyland_station) "Xj" = ( /obj/structure/surface/table/woodentable/fancy, @@ -3943,10 +2976,7 @@ /area/adminlevel/ert_station/weyland_station) "Xn" = ( /obj/structure/surface/rack, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "green" - }, +/turf/open/floor/corsat/green/northwest, /area/adminlevel/ert_station/weyland_station) "Xo" = ( /obj/structure/machinery/vending/dinnerware, @@ -3955,27 +2985,18 @@ pixel_x = 10; pixel_y = 1 }, -/turf/open/floor/corsat{ - icon_state = "sterileplate" - }, +/turf/open/floor/corsat/sterileplate, /area/adminlevel/ert_station/weyland_station) "Xs" = ( /obj/structure/target, -/turf/open/floor/corsat{ - icon_state = "theta" - }, +/turf/open/floor/corsat/theta, /area/adminlevel/ert_station/weyland_station) "Xt" = ( -/turf/open/floor/corsat{ - icon_state = "green" - }, +/turf/open/floor/corsat/green, /area/adminlevel/ert_station/weyland_station) "Xw" = ( /obj/structure/machinery/light/double, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/southwest, /area/adminlevel/ert_station/weyland_station) "Xx" = ( /obj/structure/coatrack{ @@ -3985,16 +3006,10 @@ /area/adminlevel/ert_station/weyland_station) "XD" = ( /obj/structure/machinery/vending/coffee, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "red" - }, +/turf/open/floor/corsat/red/north, /area/adminlevel/ert_station/weyland_station) "XQ" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/north, /area/adminlevel/ert_station/weyland_station) "XR" = ( /obj/structure/machinery/light/double{ @@ -4002,10 +3017,7 @@ pixel_x = 10; pixel_y = 1 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "brown" - }, +/turf/open/floor/corsat/brown/west, /area/adminlevel/ert_station/weyland_station) "Ya" = ( /obj/effect/decal/warning_stripes{ @@ -4015,10 +3027,7 @@ pixel_x = 30 }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "white" - }, +/turf/open/floor/corsat/white/west, /area/adminlevel/ert_station/weyland_station) "Yb" = ( /obj/structure/surface/table/woodentable/fancy, @@ -4026,24 +3035,15 @@ /area/adminlevel/ert_station/weyland_station) "Yj" = ( /obj/structure/machinery/light/double, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/southeast, /area/adminlevel/ert_station/weyland_station) "Yt" = ( /obj/structure/bed/chair/comfy/orange, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/north, /area/adminlevel/ert_station/weyland_station) "Yv" = ( /obj/structure/surface/table/reinforced/black, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/corsat/blue/west, /area/adminlevel/ert_station/weyland_station) "YB" = ( /obj/structure/machinery/photocopier{ @@ -4056,18 +3056,14 @@ /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/adminlevel/ert_station/weyland_station) "YN" = ( /obj/structure/bedsheetbin, /obj/structure/machinery/light/double{ dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, +/turf/open/floor/corsat/squares, /area/adminlevel/ert_station/weyland_station) "YZ" = ( /obj/structure/mirror{ @@ -4077,16 +3073,11 @@ pixel_x = 1; pixel_y = 21 }, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/adminlevel/ert_station/weyland_station) "Za" = ( /obj/structure/morgue, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "green" - }, +/turf/open/floor/corsat/green/northwest, /area/adminlevel/ert_station/weyland_station) "Zl" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony{ @@ -4095,24 +3086,16 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, +/turf/open/floor/corsat/marked, /area/adminlevel/ert_station/weyland_station) "Zn" = ( -/turf/open/floor/corsat{ - dir = 1; - icon_state = "tan" - }, +/turf/open/floor/corsat/tan/north, /area/adminlevel/ert_station/weyland_station) "Zt" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "redcorner" - }, +/turf/open/floor/corsat/redcorner/west, /area/adminlevel/ert_station/weyland_station) "Zu" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/almayer/glass{ @@ -4127,39 +3110,28 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "sigma" - }, +/turf/open/floor/corsat/sigma, /area/adminlevel/ert_station/weyland_station) "ZH" = ( /obj/structure/closet/secure_closet/engineering_welding, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "yellow" - }, +/turf/open/floor/corsat/yellow/east, /area/adminlevel/ert_station/weyland_station) "ZU" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, +/turf/open/floor/corsat/plate, /area/adminlevel/ert_station/weyland_station) "ZV" = ( /obj/structure/machinery/shower{ dir = 4 }, /obj/structure/machinery/light/small, -/turf/open/floor/corsat{ - icon_state = "retrosquareslight" - }, +/turf/open/floor/corsat/retrosquareslight, /area/adminlevel/ert_station/weyland_station) "ZX" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor/corsat{ - icon_state = "sterileplate" - }, +/turf/open/floor/corsat/sterileplate, /area/adminlevel/ert_station/weyland_station) (1,1,1) = {" @@ -5358,7 +4330,7 @@ fX NR He fl -Yb +yi fl He Pk diff --git a/maps/tutorial/tutorial_12x12.dmm b/maps/tutorial/tutorial_12x12.dmm new file mode 100644 index 000000000000..a682957ea702 --- /dev/null +++ b/maps/tutorial/tutorial_12x12.dmm @@ -0,0 +1,180 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/closed/wall/almayer/outer, +/area/misc/tutorial) +"z" = ( +/turf/open/floor/almayer, +/area/misc/tutorial) +"R" = ( +/obj/effect/landmark/tutorial_bottom_left, +/turf/open/floor/almayer, +/area/misc/tutorial) + +(1,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +"} +(2,1,1) = {" +a +z +z +z +z +z +z +z +z +z +R +a +"} +(3,1,1) = {" +a +z +z +z +z +z +z +z +z +z +z +a +"} +(4,1,1) = {" +a +z +z +z +z +z +z +z +z +z +z +a +"} +(5,1,1) = {" +a +z +z +z +z +z +z +z +z +z +z +a +"} +(6,1,1) = {" +a +z +z +z +z +z +z +z +z +z +z +a +"} +(7,1,1) = {" +a +z +z +z +z +z +z +z +z +z +z +a +"} +(8,1,1) = {" +a +z +z +z +z +z +z +z +z +z +z +a +"} +(9,1,1) = {" +a +z +z +z +z +z +z +z +z +z +z +a +"} +(10,1,1) = {" +a +z +z +z +z +z +z +z +z +z +z +a +"} +(11,1,1) = {" +a +z +z +z +z +z +z +z +z +z +z +a +"} +(12,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +"} diff --git a/maps/tutorial/tutorial_7x7.dmm b/maps/tutorial/tutorial_7x7.dmm new file mode 100644 index 000000000000..4297ef72ab8b --- /dev/null +++ b/maps/tutorial/tutorial_7x7.dmm @@ -0,0 +1,75 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/closed/wall/almayer/outer, +/area/misc/tutorial) +"z" = ( +/turf/open/floor/almayer, +/area/misc/tutorial) +"R" = ( +/obj/effect/landmark/tutorial_bottom_left, +/turf/open/floor/almayer, +/area/misc/tutorial) + +(1,1,1) = {" +a +a +a +a +a +a +a +"} +(2,1,1) = {" +a +z +z +z +z +R +a +"} +(3,1,1) = {" +a +z +z +z +z +z +a +"} +(4,1,1) = {" +a +z +z +z +z +z +a +"} +(5,1,1) = {" +a +z +z +z +z +z +a +"} +(6,1,1) = {" +a +z +z +z +z +z +a +"} +(7,1,1) = {" +a +a +a +a +a +a +a +"} diff --git a/maps/tutorial/tutorial_8x9.dmm b/maps/tutorial/tutorial_8x9.dmm new file mode 100644 index 000000000000..fc0cdd7a3e48 --- /dev/null +++ b/maps/tutorial/tutorial_8x9.dmm @@ -0,0 +1,100 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/closed/wall/almayer/outer, +/area/misc/tutorial) +"z" = ( +/turf/open/floor/almayer, +/area/misc/tutorial) +"R" = ( +/obj/effect/landmark/tutorial_bottom_left, +/turf/open/floor/almayer, +/area/misc/tutorial) + +(1,1,1) = {" +a +a +a +a +a +a +a +a +a +"} +(2,1,1) = {" +a +z +z +z +z +z +z +R +a +"} +(3,1,1) = {" +a +z +z +z +z +z +z +z +a +"} +(4,1,1) = {" +a +z +z +z +z +z +z +z +a +"} +(5,1,1) = {" +a +z +z +z +z +z +z +z +a +"} +(6,1,1) = {" +a +z +z +z +z +z +z +z +a +"} +(7,1,1) = {" +a +z +z +z +z +z +z +z +a +"} +(8,1,1) = {" +a +a +a +a +a +a +a +a +a +"} diff --git a/maps/tutorial/tutorial_8x9_nb.dmm b/maps/tutorial/tutorial_8x9_nb.dmm new file mode 100644 index 000000000000..2e03d5162f65 --- /dev/null +++ b/maps/tutorial/tutorial_8x9_nb.dmm @@ -0,0 +1,100 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/closed/wall/almayer/outer, +/area/misc/tutorial/no_baselight) +"z" = ( +/turf/open/floor/almayer, +/area/misc/tutorial/no_baselight) +"R" = ( +/obj/effect/landmark/tutorial_bottom_left, +/turf/open/floor/almayer, +/area/misc/tutorial/no_baselight) + +(1,1,1) = {" +a +a +a +a +a +a +a +a +a +"} +(2,1,1) = {" +a +z +z +z +z +z +z +R +a +"} +(3,1,1) = {" +a +z +z +z +z +z +z +z +a +"} +(4,1,1) = {" +a +z +z +z +z +z +z +z +a +"} +(5,1,1) = {" +a +z +z +z +z +z +z +z +a +"} +(6,1,1) = {" +a +z +z +z +z +z +z +z +a +"} +(7,1,1) = {" +a +z +z +z +z +z +z +z +a +"} +(8,1,1) = {" +a +a +a +a +a +a +a +a +a +"} diff --git a/maps/tutorial/tutorial_reqs_line.dmm b/maps/tutorial/tutorial_reqs_line.dmm new file mode 100644 index 000000000000..cdbe225c1f89 --- /dev/null +++ b/maps/tutorial/tutorial_reqs_line.dmm @@ -0,0 +1,180 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/closed/wall/almayer/outer, +/area/misc/tutorial) +"c" = ( +/obj/structure/machinery/door/airlock/almayer/marine/requisitions{ + dir = 2; + no_panel = 1; + not_weldable = 1; + req_one_access = null + }, +/turf/open/floor/almayer, +/area/misc/tutorial) +"l" = ( +/obj/structure/surface/table/almayer, +/turf/open/floor/almayer/green/west, +/area/misc/tutorial) +"m" = ( +/obj/structure/surface/rack, +/turf/open/floor/almayer/green/west, +/area/misc/tutorial) +"n" = ( +/obj/structure/surface/table/almayer{ + breakable = 0; + throwpass = 0; + climbable = 0; + indestructible = 1; + density = 0 + }, +/obj/structure/blocker/forcefield/human/bulletproof{ + visible = 0 + }, +/turf/open/floor/almayer, +/area/misc/tutorial) +"w" = ( +/obj/structure/window/framed/almayer/hull, +/turf/open/floor/almayer, +/area/misc/tutorial) +"x" = ( +/obj/structure/barricade/handrail{ + dir = 8 + }, +/turf/open/floor/almayer/green/east, +/area/misc/tutorial) +"y" = ( +/obj/structure/machinery/line_nexter, +/turf/open/floor/almayer/green/east, +/area/misc/tutorial) +"E" = ( +/obj/structure/bed/chair/office/dark{ + dir = 8 + }, +/turf/open/floor/almayer, +/area/misc/tutorial) +"J" = ( +/obj/item/toy/bikehorn/rubberducky{ + name = "Quackers"; + desc = "You feel as though this rubber duck has been here for a long time. It's Mr. Quackers! He loves you!" + }, +/obj/effect/landmark/tutorial/reqs_line_cleaner, +/turf/open/floor/almayer, +/area/misc/tutorial) +"K" = ( +/turf/open/floor/almayer, +/area/misc/tutorial) +"N" = ( +/obj/effect/landmark/tutorial_bottom_left, +/turf/open/floor/almayer, +/area/misc/tutorial) +"X" = ( +/obj/structure/sign/ROsign{ + layer = 3 + }, +/turf/closed/wall/almayer, +/area/misc/tutorial) + +(1,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +"} +(2,1,1) = {" +a +K +K +K +K +K +K +K +a +N +a +"} +(3,1,1) = {" +a +J +X +y +x +x +x +x +a +K +a +"} +(4,1,1) = {" +a +a +K +n +w +a +a +a +a +c +a +"} +(5,1,1) = {" +a +a +K +E +l +l +m +m +K +K +a +"} +(6,1,1) = {" +a +a +K +K +K +K +K +K +K +K +a +"} +(7,1,1) = {" +a +a +a +K +K +K +K +K +K +K +a +"} +(8,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +"} diff --git a/nano/images/weapons/88m4.png b/nano/images/weapons/88m4.png deleted file mode 100644 index 77faa65720af..000000000000 Binary files a/nano/images/weapons/88m4.png and /dev/null differ diff --git a/nano/images/weapons/aamateba.png b/nano/images/weapons/aamateba.png deleted file mode 100644 index 30a5c1c72c68..000000000000 Binary files a/nano/images/weapons/aamateba.png and /dev/null differ diff --git a/nano/images/weapons/amateba.png b/nano/images/weapons/amateba.png deleted file mode 100644 index 6d411d2ad7fc..000000000000 Binary files a/nano/images/weapons/amateba.png and /dev/null differ diff --git a/nano/images/weapons/auto.png b/nano/images/weapons/auto.png deleted file mode 100644 index 7efc6ff1c892..000000000000 Binary files a/nano/images/weapons/auto.png and /dev/null differ diff --git a/nano/images/weapons/auto9.png b/nano/images/weapons/auto9.png deleted file mode 100644 index 8fbc101f2f72..000000000000 Binary files a/nano/images/weapons/auto9.png and /dev/null differ diff --git a/nano/images/weapons/b92fs.png b/nano/images/weapons/b92fs.png deleted file mode 100644 index 2788124dfb8f..000000000000 Binary files a/nano/images/weapons/b92fs.png and /dev/null differ diff --git a/nano/images/weapons/burst.png b/nano/images/weapons/burst.png deleted file mode 100644 index 669bd676ebb0..000000000000 Binary files a/nano/images/weapons/burst.png and /dev/null differ diff --git a/nano/images/weapons/c70.png b/nano/images/weapons/c70.png deleted file mode 100644 index b7e2ed731ba1..000000000000 Binary files a/nano/images/weapons/c70.png and /dev/null differ diff --git a/nano/images/weapons/c_deagle.png b/nano/images/weapons/c_deagle.png deleted file mode 100644 index c2a5c991acf8..000000000000 Binary files a/nano/images/weapons/c_deagle.png and /dev/null differ diff --git a/nano/images/weapons/cmateba.png b/nano/images/weapons/cmateba.png deleted file mode 100644 index f949d4b54731..000000000000 Binary files a/nano/images/weapons/cmateba.png and /dev/null differ diff --git a/nano/images/weapons/cshotgun.png b/nano/images/weapons/cshotgun.png deleted file mode 100644 index 9820f5854679..000000000000 Binary files a/nano/images/weapons/cshotgun.png and /dev/null differ diff --git a/nano/images/weapons/dartgun.png b/nano/images/weapons/dartgun.png deleted file mode 100644 index 218dc742dc9b..000000000000 Binary files a/nano/images/weapons/dartgun.png and /dev/null differ diff --git a/nano/images/weapons/deagle.png b/nano/images/weapons/deagle.png deleted file mode 100644 index 059a730d7efd..000000000000 Binary files a/nano/images/weapons/deagle.png and /dev/null differ diff --git a/nano/images/weapons/disabled_automatic.png b/nano/images/weapons/disabled_automatic.png deleted file mode 100644 index 94da079d8049..000000000000 Binary files a/nano/images/weapons/disabled_automatic.png and /dev/null differ diff --git a/nano/images/weapons/disabled_burst.png b/nano/images/weapons/disabled_burst.png deleted file mode 100644 index 71b88bcaf945..000000000000 Binary files a/nano/images/weapons/disabled_burst.png and /dev/null differ diff --git a/nano/images/weapons/disabled_single.png b/nano/images/weapons/disabled_single.png deleted file mode 100644 index bf2cef4b1507..000000000000 Binary files a/nano/images/weapons/disabled_single.png and /dev/null differ diff --git a/nano/images/weapons/dshotgun.png b/nano/images/weapons/dshotgun.png deleted file mode 100644 index cd795982816b..000000000000 Binary files a/nano/images/weapons/dshotgun.png and /dev/null differ diff --git a/nano/images/weapons/fp9000.png b/nano/images/weapons/fp9000.png deleted file mode 100644 index b9f971eb0773..000000000000 Binary files a/nano/images/weapons/fp9000.png and /dev/null differ diff --git a/nano/images/weapons/fp9000_pmc.png b/nano/images/weapons/fp9000_pmc.png deleted file mode 100644 index b9f971eb0773..000000000000 Binary files a/nano/images/weapons/fp9000_pmc.png and /dev/null differ diff --git a/nano/images/weapons/g_deagle.png b/nano/images/weapons/g_deagle.png deleted file mode 100644 index c2a5c991acf8..000000000000 Binary files a/nano/images/weapons/g_deagle.png and /dev/null differ diff --git a/nano/images/weapons/hg3712.png b/nano/images/weapons/hg3712.png deleted file mode 100644 index f7f32190c468..000000000000 Binary files a/nano/images/weapons/hg3712.png and /dev/null differ diff --git a/nano/images/weapons/highpower.png b/nano/images/weapons/highpower.png deleted file mode 100644 index a7d25c44803b..000000000000 Binary files a/nano/images/weapons/highpower.png and /dev/null differ diff --git a/nano/images/weapons/holdout.png b/nano/images/weapons/holdout.png deleted file mode 100644 index 1d6f26fad25f..000000000000 Binary files a/nano/images/weapons/holdout.png and /dev/null differ diff --git a/nano/images/weapons/hunting.png b/nano/images/weapons/hunting.png deleted file mode 100644 index 5d9613117f07..000000000000 Binary files a/nano/images/weapons/hunting.png and /dev/null differ diff --git a/nano/images/weapons/kt42.png b/nano/images/weapons/kt42.png deleted file mode 100644 index ecf0ee41a9b7..000000000000 Binary files a/nano/images/weapons/kt42.png and /dev/null differ diff --git a/nano/images/weapons/l42mk1.png b/nano/images/weapons/l42mk1.png deleted file mode 100644 index b5efcc14d331..000000000000 Binary files a/nano/images/weapons/l42mk1.png and /dev/null differ diff --git a/nano/images/weapons/m16.png b/nano/images/weapons/m16.png deleted file mode 100644 index 2287f7319696..000000000000 Binary files a/nano/images/weapons/m16.png and /dev/null differ diff --git a/nano/images/weapons/m240.png b/nano/images/weapons/m240.png deleted file mode 100644 index 72eb477c9efa..000000000000 Binary files a/nano/images/weapons/m240.png and /dev/null differ diff --git a/nano/images/weapons/m240t.png b/nano/images/weapons/m240t.png deleted file mode 100644 index 619551d690e8..000000000000 Binary files a/nano/images/weapons/m240t.png and /dev/null differ diff --git a/nano/images/weapons/m37-17.png b/nano/images/weapons/m37-17.png deleted file mode 100644 index 7d53cbd76108..000000000000 Binary files a/nano/images/weapons/m37-17.png and /dev/null differ diff --git a/nano/images/weapons/m37.png b/nano/images/weapons/m37.png deleted file mode 100644 index f888adaeb6be..000000000000 Binary files a/nano/images/weapons/m37.png and /dev/null differ diff --git a/nano/images/weapons/m39.png b/nano/images/weapons/m39.png deleted file mode 100644 index f6fbb0a48961..000000000000 Binary files a/nano/images/weapons/m39.png and /dev/null differ diff --git a/nano/images/weapons/m41a.png b/nano/images/weapons/m41a.png deleted file mode 100644 index 9476e0d1f40f..000000000000 Binary files a/nano/images/weapons/m41a.png and /dev/null differ diff --git a/nano/images/weapons/m41a2.png b/nano/images/weapons/m41a2.png deleted file mode 100644 index 4179cb37f5c3..000000000000 Binary files a/nano/images/weapons/m41a2.png and /dev/null differ diff --git a/nano/images/weapons/m41ae2.png b/nano/images/weapons/m41ae2.png deleted file mode 100644 index 4a5232fd6638..000000000000 Binary files a/nano/images/weapons/m41ae2.png and /dev/null differ diff --git a/nano/images/weapons/m41amk1.png b/nano/images/weapons/m41amk1.png deleted file mode 100644 index 3f44c62b0fad..000000000000 Binary files a/nano/images/weapons/m41amk1.png and /dev/null differ diff --git a/nano/images/weapons/m41b.png b/nano/images/weapons/m41b.png deleted file mode 100644 index 1d63443f25fa..000000000000 Binary files a/nano/images/weapons/m41b.png and /dev/null differ diff --git a/nano/images/weapons/m42a.png b/nano/images/weapons/m42a.png deleted file mode 100644 index f0d07328c122..000000000000 Binary files a/nano/images/weapons/m42a.png and /dev/null differ diff --git a/nano/images/weapons/m42c.png b/nano/images/weapons/m42c.png deleted file mode 100644 index 47d53b86ced1..000000000000 Binary files a/nano/images/weapons/m42c.png and /dev/null differ diff --git a/nano/images/weapons/m44r.png b/nano/images/weapons/m44r.png deleted file mode 100644 index d7deb2589ed3..000000000000 Binary files a/nano/images/weapons/m44r.png and /dev/null differ diff --git a/nano/images/weapons/m44rc.png b/nano/images/weapons/m44rc.png deleted file mode 100644 index 1c20973a0a99..000000000000 Binary files a/nano/images/weapons/m44rc.png and /dev/null differ diff --git a/nano/images/weapons/m46c.png b/nano/images/weapons/m46c.png deleted file mode 100644 index d404a6d88f67..000000000000 Binary files a/nano/images/weapons/m46c.png and /dev/null differ diff --git a/nano/images/weapons/m4a3.png b/nano/images/weapons/m4a3.png deleted file mode 100644 index 9169c71c5176..000000000000 Binary files a/nano/images/weapons/m4a3.png and /dev/null differ diff --git a/nano/images/weapons/m4a345.png b/nano/images/weapons/m4a345.png deleted file mode 100644 index 1ba00158467e..000000000000 Binary files a/nano/images/weapons/m4a345.png and /dev/null differ diff --git a/nano/images/weapons/m4a3c.png b/nano/images/weapons/m4a3c.png deleted file mode 100644 index 95731a6c7160..000000000000 Binary files a/nano/images/weapons/m4a3c.png and /dev/null differ diff --git a/nano/images/weapons/m5.png b/nano/images/weapons/m5.png deleted file mode 100644 index 7d502fdaafc5..000000000000 Binary files a/nano/images/weapons/m5.png and /dev/null differ diff --git a/nano/images/weapons/m56.png b/nano/images/weapons/m56.png deleted file mode 100644 index baf9b9bd9c3c..000000000000 Binary files a/nano/images/weapons/m56.png and /dev/null differ diff --git a/nano/images/weapons/m57a4.png b/nano/images/weapons/m57a4.png deleted file mode 100644 index 6c2cbcbdbe8b..000000000000 Binary files a/nano/images/weapons/m57a4.png and /dev/null differ diff --git a/nano/images/weapons/m60.png b/nano/images/weapons/m60.png deleted file mode 100644 index 08baffaa747f..000000000000 Binary files a/nano/images/weapons/m60.png and /dev/null differ diff --git a/nano/images/weapons/m79.png b/nano/images/weapons/m79.png deleted file mode 100644 index 365280f2424c..000000000000 Binary files a/nano/images/weapons/m79.png and /dev/null differ diff --git a/nano/images/weapons/m81.png b/nano/images/weapons/m81.png deleted file mode 100644 index 7b1a6a195b33..000000000000 Binary files a/nano/images/weapons/m81.png and /dev/null differ diff --git a/nano/images/weapons/m82f.png b/nano/images/weapons/m82f.png deleted file mode 100644 index f6d5e24ec889..000000000000 Binary files a/nano/images/weapons/m82f.png and /dev/null differ diff --git a/nano/images/weapons/m92.png b/nano/images/weapons/m92.png deleted file mode 100644 index ce64c3df3637..000000000000 Binary files a/nano/images/weapons/m92.png and /dev/null differ diff --git a/nano/images/weapons/m93b2.png b/nano/images/weapons/m93b2.png deleted file mode 100644 index 987f56643afa..000000000000 Binary files a/nano/images/weapons/m93b2.png and /dev/null differ diff --git a/nano/images/weapons/mac15.png b/nano/images/weapons/mac15.png deleted file mode 100644 index 179c8b7a61ad..000000000000 Binary files a/nano/images/weapons/mac15.png and /dev/null differ diff --git a/nano/images/weapons/mar30.png b/nano/images/weapons/mar30.png deleted file mode 100644 index 3a5c19f33663..000000000000 Binary files a/nano/images/weapons/mar30.png and /dev/null differ diff --git a/nano/images/weapons/mar40.png b/nano/images/weapons/mar40.png deleted file mode 100644 index 043d6529ef33..000000000000 Binary files a/nano/images/weapons/mar40.png and /dev/null differ diff --git a/nano/images/weapons/mateba.png b/nano/images/weapons/mateba.png deleted file mode 100644 index 49ec3f897a2d..000000000000 Binary files a/nano/images/weapons/mateba.png and /dev/null differ diff --git a/nano/images/weapons/mk221.png b/nano/images/weapons/mk221.png deleted file mode 100644 index a15773fb26dc..000000000000 Binary files a/nano/images/weapons/mk221.png and /dev/null differ diff --git a/nano/images/weapons/mou.png b/nano/images/weapons/mou.png deleted file mode 100644 index a471e16f6e03..000000000000 Binary files a/nano/images/weapons/mou.png and /dev/null differ diff --git a/nano/images/weapons/mp5.png b/nano/images/weapons/mp5.png deleted file mode 100644 index e36fccdca47a..000000000000 Binary files a/nano/images/weapons/mp5.png and /dev/null differ diff --git a/nano/images/weapons/mp7.png b/nano/images/weapons/mp7.png deleted file mode 100644 index 9494c8003d01..000000000000 Binary files a/nano/images/weapons/mp7.png and /dev/null differ diff --git a/nano/images/weapons/no_name.png b/nano/images/weapons/no_name.png deleted file mode 100644 index 8babb2fda54f..000000000000 Binary files a/nano/images/weapons/no_name.png and /dev/null differ diff --git a/nano/images/weapons/ny762.png b/nano/images/weapons/ny762.png deleted file mode 100644 index bdd5fe500e1a..000000000000 Binary files a/nano/images/weapons/ny762.png and /dev/null differ diff --git a/nano/images/weapons/painless.png b/nano/images/weapons/painless.png deleted file mode 100644 index f493c662eb6e..000000000000 Binary files a/nano/images/weapons/painless.png and /dev/null differ diff --git a/nano/images/weapons/pk9.png b/nano/images/weapons/pk9.png deleted file mode 100644 index 7c6649463740..000000000000 Binary files a/nano/images/weapons/pk9.png and /dev/null differ diff --git a/nano/images/weapons/pk9r.png b/nano/images/weapons/pk9r.png deleted file mode 100644 index be9adcd50733..000000000000 Binary files a/nano/images/weapons/pk9r.png and /dev/null differ diff --git a/nano/images/weapons/pk9u.png b/nano/images/weapons/pk9u.png deleted file mode 100644 index 519f574f6e4c..000000000000 Binary files a/nano/images/weapons/pk9u.png and /dev/null differ diff --git a/nano/images/weapons/ppsh17b.png b/nano/images/weapons/ppsh17b.png deleted file mode 100644 index 4ea9e0214f94..000000000000 Binary files a/nano/images/weapons/ppsh17b.png and /dev/null differ diff --git a/nano/images/weapons/single.png b/nano/images/weapons/single.png deleted file mode 100644 index 2f784868ca32..000000000000 Binary files a/nano/images/weapons/single.png and /dev/null differ diff --git a/nano/images/weapons/skorpion.png b/nano/images/weapons/skorpion.png deleted file mode 100644 index 342fc75e3e6e..000000000000 Binary files a/nano/images/weapons/skorpion.png and /dev/null differ diff --git a/nano/images/weapons/skorpion_u.png b/nano/images/weapons/skorpion_u.png deleted file mode 100644 index 72128e1f46bf..000000000000 Binary files a/nano/images/weapons/skorpion_u.png and /dev/null differ diff --git a/nano/images/weapons/smartpistol.png b/nano/images/weapons/smartpistol.png deleted file mode 100644 index e688ac9260a8..000000000000 Binary files a/nano/images/weapons/smartpistol.png and /dev/null differ diff --git a/nano/images/weapons/spearhead.png b/nano/images/weapons/spearhead.png deleted file mode 100644 index 7b740dbdc593..000000000000 Binary files a/nano/images/weapons/spearhead.png and /dev/null differ diff --git a/nano/images/weapons/sshotgun.png b/nano/images/weapons/sshotgun.png deleted file mode 100644 index f052433653b8..000000000000 Binary files a/nano/images/weapons/sshotgun.png and /dev/null differ diff --git a/nano/images/weapons/supremo.png b/nano/images/weapons/supremo.png deleted file mode 100644 index 83f6a6fb4b3f..000000000000 Binary files a/nano/images/weapons/supremo.png and /dev/null differ diff --git a/nano/images/weapons/svd003.png b/nano/images/weapons/svd003.png deleted file mode 100644 index 6395b8d3b686..000000000000 Binary files a/nano/images/weapons/svd003.png and /dev/null differ diff --git a/nano/images/weapons/sw357.png b/nano/images/weapons/sw357.png deleted file mode 100644 index a89ea9cb2f2d..000000000000 Binary files a/nano/images/weapons/sw357.png and /dev/null differ diff --git a/nano/images/weapons/sw358.png b/nano/images/weapons/sw358.png deleted file mode 100644 index c24e72bfce7c..000000000000 Binary files a/nano/images/weapons/sw358.png and /dev/null differ diff --git a/nano/images/weapons/syringegun.png b/nano/images/weapons/syringegun.png deleted file mode 100644 index bf18bf425d7a..000000000000 Binary files a/nano/images/weapons/syringegun.png and /dev/null differ diff --git a/nano/images/weapons/taser.png b/nano/images/weapons/taser.png deleted file mode 100644 index 6337a8996677..000000000000 Binary files a/nano/images/weapons/taser.png and /dev/null differ diff --git a/nano/images/weapons/type71.png b/nano/images/weapons/type71.png deleted file mode 100644 index 700ff164d60c..000000000000 Binary files a/nano/images/weapons/type71.png and /dev/null differ diff --git a/nano/images/weapons/type71c.png b/nano/images/weapons/type71c.png deleted file mode 100644 index 273ac0bcbec0..000000000000 Binary files a/nano/images/weapons/type71c.png and /dev/null differ diff --git a/nano/images/weapons/type73.png b/nano/images/weapons/type73.png deleted file mode 100644 index 63294f7cc9f8..000000000000 Binary files a/nano/images/weapons/type73.png and /dev/null differ diff --git a/nano/images/weapons/vp78.png b/nano/images/weapons/vp78.png deleted file mode 100644 index 2383b4e3aded..000000000000 Binary files a/nano/images/weapons/vp78.png and /dev/null differ diff --git a/nano/images/weapons/xm42b.png b/nano/images/weapons/xm42b.png deleted file mode 100644 index 645c552314f9..000000000000 Binary files a/nano/images/weapons/xm42b.png and /dev/null differ diff --git a/nano/templates/chem_simulator.tmpl b/nano/templates/chem_simulator.tmpl deleted file mode 100644 index 47057f13bf85..000000000000 --- a/nano/templates/chem_simulator.tmpl +++ /dev/null @@ -1,366 +0,0 @@ - -
              -
              - STATUS: {{:data.status_bar}} -
              - RESEARCH CREDITS: {{:data.rsc_credits}} -
              - {{if data.mode == 4 }} - CREATION NAME: {{:data.creation_name}}
              - CREATION COST: {{:data.creation_cost}}
              - ESTIMATED OVERDOSE LVL: {{:data.od_lvl}} UNITS - {{else}} - {{if data.target }} - TARGET DATA: {{:data.target}} - {{else}} - TARGET DATA: NOT FOUND - {{/if}} -
              - {{if data.reference }} - REFERENCE DATA: {{:data.reference}} - {{else}} - REFERENCE DATA: NOT FOUND - {{/if}} -
              - ESTIMATED OVERDOSE LVL: {{:data.od_lvl}} UNITS - {{/if}} -
              - {{if data.simulating }} - - {{else}} - - {{/if}} - -
              -
              -
              - {{if data.mode != 4 }} -
              - {{if data.target_property}} -

              {{:data.property_codings[data.target_property]}} - {{:data.target_property}}

              -

              - {{:data.target_info}} -
              Type: {{:data.target_categories}} -
              Research Cost: {{:data.property_costs[data.target_property]}} -

              - {{/if}} -
              -
              -

              Target Properties

              - {{if data.target}} - {{if data.target_property_list }} -
              - {{props data.target_property_list :level:property}} - {{:helper.link('' + data.property_codings[property] + ' Level ' + level + '', null, {'set_target' : property}, (data.target_property == property) ? 'selected' : null, 'propbutton')}} - {{/props}} -
              - {{else}} - PROPERTIES CAN NOT BE SIMULATED - {{/if}} - {{/if}} -
              - {{else}} -
              -
              - {{if data.complexity_editor }} - {{:helper.link(data.complexity[0], 'gear', {'set_complexity' : 1}, null, 'menubutton templateButton')}} - {{:helper.link(data.complexity[1], 'gear', {'set_complexity' : 2}, null, 'menubutton templateButton')}} - {{:helper.link(data.complexity[2], 'gear', {'set_complexity' : 3}, null, 'menubutton templateButton')}} - {{else}} - {{:helper.link('SET LVL', 'gear', {'set_level' : 1}, (data.target_property && data.property_data_list[data.target_property] >= 1) ? null : 'disabled', 'menubutton templateButton')}} - {{:helper.link('SET NAME', 'gear', {'set_name' : 1}, null, 'templateButton')}} - {{:helper.link('SET OD', 'gear', {'set_od' : 1}, null, 'templateButton')}} - {{props data.template_filter :setting:configuration}} - {{if setting[0] == 1 }} - {{:helper.link(configuration, null, {'set_filter' : configuration, 'config_value' : setting[1]}, null, 'modebutton templateButton enabled')}} - {{else}} - {{:helper.link(configuration, null, {'set_filter' : configuration, 'config_value' : setting[1]}, null, 'modebutton templateButton')}} - {{/if}} - {{/props}} - {{/if}} -
              -
              - {{props data.property_data_list :level:property}} - {{if data.target_property == property}} - {{if level > 0 }} - {{:helper.link(data.property_codings[property] + ' ' + level, null, {'set_target' : property}, null, 'propbutton templateProp targetedEnabled')}} - {{else}} - {{:helper.link(data.property_codings[property] + ' ' + level, null, {'set_target' : property}, null, 'propbutton templateProp targetedDisabled')}} - {{/if}} - {{else}} - {{if level > 0 }} - {{:helper.link(data.property_codings[property] + ' ' + level, null, {'set_target' : property}, null, 'propbutton templateProp')}} - {{else}} - {{:helper.link(data.property_codings[property] + ' ' + level, null, {'set_target' : property}, null, 'propbutton templateProp disabled')}} - {{/if}} - {{/if}} - {{/props}} -
              -
              - {{/if}} -
              -
              - {{if data.mode == 3 }} -
              - {{if data.reference_property }} -

              {{:data.property_codings[data.reference_property]}} - {{:data.reference_property}}

              -

              - {{:data.reference_info}} -
              Type: {{:data.reference_categories}} -

              - {{/if}} -
              -
              -

              Reference Properties

              - {{if data.reference}} - {{if data.reference_property_list }} -
              - {{props data.reference_property_list :level:property}} - {{:helper.link('' + data.property_codings[property] + ' Level ' + level + '', null, {'set_reference' : property}, (data.reference_property == property) ? 'selected' : null, 'propbutton')}} - {{/props}} -
              - {{else}} - PROPERTIES CAN NOT BE SIMULATED - {{/if}} - {{/if}} -
              - {{else}} - {{if data.mode == 4 }} -
              - {{if data.target_property}} -

              {{:data.property_codings[data.target_property]}} - {{:data.target_property}}

              -

              - {{:data.target_info}} -
              Type: {{:data.target_categories}} -
              Value per level: {{:data.property_costs[data.target_property]}} -

              - {{/if}} -
              - {{/if}} - {{/if}} -
              -
              diff --git a/nano/templates/dropship_weapons_console.tmpl b/nano/templates/dropship_weapons_console.tmpl deleted file mode 100644 index fabfdee2467b..000000000000 --- a/nano/templates/dropship_weapons_console.tmpl +++ /dev/null @@ -1,245 +0,0 @@ - -{{if data.screen_mode == 0}} -
              -

              Equipment installed:

              -
              - {{for data.equipment_data}} - {{if value.is_interactable}} -
              - {{:helper.link(value.name, null, {'equip_interact' : value.eqp_tag}, null , null)}} -
              - {{else}} -
              - {{:value.name}} -
              - {{/if}} - {{empty}} - No equipment installed. - {{/for}} -
              -
              - {{if data.has_firemission}} -
              -

              Fire Missions:

              -
              - {{for data.firemission_data}} -
              - - {{:value.name}} - - -   - - {{if !value.can_interact}} - - *!SELECT* - - {{/if}} - {{if !value.can_edit}} - - *!EDIT* - - {{/if}} - - {{if value.can_interact}} - - {{if value.selected}} - {{:helper.link("[UNSELECT]", null, {'mission_tag' : value.mission_tag}, null , null)}} - {{else}} - {{:helper.link("[SELECT]", null, {'mission_tag' : value.mission_tag}, null , null)}} - {{/if}} - - {{/if}} - - {{if value.can_edit}} - - {{:helper.link("[EDIT]", null, {'mission_tag_edit' : value.mission_tag}, null , null)}} - - {{/if}} - - - {{:helper.link("[DELETE]", null, {'mission_tag_delete' : value.mission_tag}, null , null)}} - -
              - - {{empty}} - No Fire Missions Detected - {{/for}} -
              - {{:helper.link("Create New Fire Mission", null, {'create_mission' : 1}, null , null)}} -
              - -
              -
              -
              -

              Fire Mission Control:

              - {{if data.can_firemission}} -
              - {{:helper.link("Switch to Fire Mission", null, {'switch_to_firemission' : 1}, null , null)}} -
              -
              - {{else}} -
              - Have to be in Transit, have to select a Fire Mission and Fire Mission has to be without errors. -
              - {{/if}} -
              -
              -

              Fire Mission Simulator:

              - {{if data.shuttle_state != "in_transit"}} -
              - {{:helper.link("Switch To Simulation", null, {'switch_to_simulation' : 1}, null , null)}} -
              -
              - {{else}} -
              - Have to be Stationary, have to select a Fire Mission and Fire Mission has to be without errors. -
              - {{/if}} -
              - {{/if}} -{{else data.screen_mode == 1}} -

              Weapon Selected: {{:data.selected_eqp}}

              - {{if data.selected_eqp_ammo_name}} -
              - Ammo loaded: {{:data.selected_eqp_ammo_name}} -
              -
              - {{if data.selected_eqp_ammo_amt > data.selected_eqp_max_ammo_amt*0.5}} - Ammo count: {{:data.selected_eqp_ammo_amt}} / {{:data.selected_eqp_max_ammo_amt}} - {{else data.selected_eqp_ammo_amt > 0}} - Ammo count: {{:data.selected_eqp_ammo_amt}} / {{:data.selected_eqp_max_ammo_amt}} - {{else}} - Ammo count: {{:data.selected_eqp_ammo_amt}} / {{:data.selected_eqp_max_ammo_amt}} - {{/if}} -
              - {{else}} -
              - No ammo loaded -
              - {{/if}} - -
              - Available Targets -
              - {{:helper.link('Deselect Weapon', null, {'deselect' : '1'}, null , null)}} -
              -
              - -
              - {{for data.targets_data}} - {{:helper.link(value.target_name, null, {'open_fire' : value.target_tag}, (data.shuttle_state == "in_transit") ? null : 'disabled' , 'fixedLeftLongText')}} {{:helper.link('View', 'search', {'cas_camera' : value.target_tag}, (data.shuttle_state == "in_transit") ? null : 'disabled' , 'fixedLeft')}} - {{empty}} - No laser target detected. - {{/for}} -
              - - - -{{else data.screen_mode == 2}} -

              Fire Mission Editing: {{:data.editing_firemission}}

              - {{if data.current_mission_error}} -
              - ERROR DETECTED: {{:data.current_mission_error}} -
              - {{else}} -
              - No errors detected -
              - {{/if}} - -
              - Mission Tile Coverage: {{:data.editing_firemission_length}} -
              - -
              [GLOB.tagger_locations[i]]
              - - - - - {{for data.firemission_edit_timeslices}} - - {{/for}} - - {{for data.firemission_edit_data :fm_value:fm_id}} - - - - - {{for fm_value.offsets :offset_value:offset_id}} - - {{/for}} - - {{/for}} -
              NameAmmoGimbal - {{:value}} -
              {{:fm_value.name}} - {{if fm_value.ammo==null}} - 0/0 - {{else}} - {{if fm_value.ammo.used > fm_value.ammo.count}} - {{:fm_value.ammo.count?fm_value.ammo.count:0}}/{{:fm_value.ammo.max?fm_value.ammo.max:0}} - {{else fm_value.ammo.used * 2 > fm_value.ammo.count}} - {{:fm_value.ammo.count?fm_value.ammo.count:0}}/{{:fm_value.ammo.max?fm_value.ammo.max:0}} - {{else}} - {{:fm_value.ammo.count?fm_value.ammo.count:0}}/{{:fm_value.ammo.max?fm_value.ammo.max:0}} - {{/if}} - {{/if}} - - {{if(fm_value.gimbal)}} - {{:fm_value.gimbal.min}} to {{:fm_value.gimbal.max}} - {{else}} - Not installed - {{/if}} - - {{:helper.link(offset_value == null ? '-' : offset_value, null, {'fm_weapon_id' : fm_id, 'fm_offset_id' : offset_id, 'fm_offset_previous': offset_value}, null , null)}} -
              - -
              - {{:helper.link("BACK", null, {'leave_firemission_editing' : 1}, null , null)}} -
              - -{{else data.screen_mode == 3 && data.has_firemission}} -

              Fire Mission Selected: {{:data.firemission_name}}

              - -

              - Fire Mission Status: {{:data.firemission_message}} -

              - -
              -

              Fire Mission Options:

              - - - - - - - - - - - - - -
              Target:{{:data.firemission_selected_laser}}
              Direction:{{:helper.link(data.firemission_direction, null, {'change_direction' : 1}, (data.shuttle_state == "in_transit" && data.firemission_step < 2) ? null : 'disabled' , null)}}
              Offset:{{:helper.link(data.firemission_offset, null, {'change_offset' : 1}, (data.shuttle_state == "in_transit" && data.firemission_step < 2) ? null : 'disabled' , null)}}
              -
              - -
              -

              Fire Mission Actions:

              -
              - {{:helper.link('BACK', null, {'leave_firemission_execution' : '1'}, null , 'fixedLeft')}} - {{:helper.link('Activate Camera', null, {'firemission_camera' : 1}, (data.shuttle_state == "in_transit" && data.firemission_selected_laser) ? null : 'disabled' , 'fixedLeft')}} - {{:helper.link('Execute Fire Mission', null, {'execute_firemission' : 1}, (data.shuttle_state == "in_transit" && data.firemission_step == 0) ? null : 'disabled' , "linkDanger fixedLeftWide")}} -
              -
              -
              -
              Available Targets:
              -
              - {{for data.targets_data}} - {{:helper.link(value.target_name, null, {'select_laser_firemission' : value.target_tag}, (data.shuttle_state == "in_transit") ? null : 'disabled' , 'fixedLeftLongText')}} - {{empty}} - No CAS signal detected. - {{/for}} -
              - -{{/if}} diff --git a/node_modules/.yarn-integrity b/node_modules/.yarn-integrity new file mode 100644 index 000000000000..6b671344d4af --- /dev/null +++ b/node_modules/.yarn-integrity @@ -0,0 +1,10 @@ +{ + "systemParams": "win32-x64-93", + "modulesFolders": [], + "flags": [], + "linkedModules": [], + "topLevelPatterns": [], + "lockfileEntries": {}, + "files": [], + "artifacts": {} +} \ No newline at end of file diff --git a/rust_g.dll b/rust_g.dll index 72a27df14403..d3aebf712170 100644 Binary files a/rust_g.dll and b/rust_g.dll differ diff --git a/sound/effects/data-transmission.ogg b/sound/effects/data-transmission.ogg new file mode 100644 index 000000000000..b2e74acdb837 Binary files /dev/null and b/sound/effects/data-transmission.ogg differ diff --git a/sound/effects/dropship_crash.ogg b/sound/effects/dropship_crash.ogg index ec552ce5b194..880777a41297 100644 Binary files a/sound/effects/dropship_crash.ogg and b/sound/effects/dropship_crash.ogg differ diff --git a/sound/effects/incoming-fax.ogg b/sound/effects/incoming-fax.ogg new file mode 100644 index 000000000000..fccb34356303 Binary files /dev/null and b/sound/effects/incoming-fax.ogg differ diff --git a/sound/machines/pda_ping.ogg b/sound/machines/pda_ping.ogg new file mode 100644 index 000000000000..2f3135bc3c22 Binary files /dev/null and b/sound/machines/pda_ping.ogg differ diff --git a/sound/mecha/powerloader_attack.ogg b/sound/mecha/powerloader_attack.ogg index 6cff269d30fe..6f821f2b0e9e 100644 Binary files a/sound/mecha/powerloader_attack.ogg and b/sound/mecha/powerloader_attack.ogg differ diff --git a/sound/mecha/powerloader_step.ogg b/sound/mecha/powerloader_step.ogg index af427df86590..1f8b4b3c7f4c 100644 Binary files a/sound/mecha/powerloader_step.ogg and b/sound/mecha/powerloader_step.ogg differ diff --git a/sound/mecha/powerloader_step2.ogg b/sound/mecha/powerloader_step2.ogg index 60aaa6bd3458..4edbec2a11b7 100644 Binary files a/sound/mecha/powerloader_step2.ogg and b/sound/mecha/powerloader_step2.ogg differ diff --git a/sound/mecha/powerloader_turn.ogg b/sound/mecha/powerloader_turn.ogg index bccdc879d003..bb18cdc57e9c 100644 Binary files a/sound/mecha/powerloader_turn.ogg and b/sound/mecha/powerloader_turn.ogg differ diff --git a/sound/mecha/powerloader_turn2.ogg b/sound/mecha/powerloader_turn2.ogg index c3816df9d9e2..647dde5affdb 100644 Binary files a/sound/mecha/powerloader_turn2.ogg and b/sound/mecha/powerloader_turn2.ogg differ diff --git a/sound/mecha/powerloader_unbuckle.ogg b/sound/mecha/powerloader_unbuckle.ogg index 98e53bfd7dc3..c70ab4ef7751 100644 Binary files a/sound/mecha/powerloader_unbuckle.ogg and b/sound/mecha/powerloader_unbuckle.ogg differ diff --git a/sound/misc/desk_bell.ogg b/sound/misc/desk_bell.ogg new file mode 100644 index 000000000000..c3b143c1a11f Binary files /dev/null and b/sound/misc/desk_bell.ogg differ diff --git a/sound/voice/human_male_scream_6.ogg b/sound/voice/human_male_scream_6.ogg new file mode 100644 index 000000000000..0005a26bf7ac Binary files /dev/null and b/sound/voice/human_male_scream_6.ogg differ diff --git a/sound/voice/joe/alwaysknow_haz.ogg b/sound/voice/joe/alwaysknow_haz.ogg new file mode 100644 index 000000000000..b6489f72d59f Binary files /dev/null and b/sound/voice/joe/alwaysknow_haz.ogg differ diff --git a/sound/voice/joe/apollo_behalf_haz.ogg b/sound/voice/joe/apollo_behalf_haz.ogg new file mode 100644 index 000000000000..f89225f25e69 Binary files /dev/null and b/sound/voice/joe/apollo_behalf_haz.ogg differ diff --git a/sound/voice/joe/area_restricted_haz.ogg b/sound/voice/joe/area_restricted_haz.ogg new file mode 100644 index 000000000000..e9e890b72153 Binary files /dev/null and b/sound/voice/joe/area_restricted_haz.ogg differ diff --git a/sound/voice/joe/awful_haz.ogg b/sound/voice/joe/awful_haz.ogg new file mode 100644 index 000000000000..71f3e5cd0d26 Binary files /dev/null and b/sound/voice/joe/awful_haz.ogg differ diff --git a/sound/voice/joe/back_to_work_haz.ogg b/sound/voice/joe/back_to_work_haz.ogg new file mode 100644 index 000000000000..ce5966c71e46 Binary files /dev/null and b/sound/voice/joe/back_to_work_haz.ogg differ diff --git a/sound/voice/joe/beyond_repair_haz.ogg b/sound/voice/joe/beyond_repair_haz.ogg new file mode 100644 index 000000000000..31a9de147862 Binary files /dev/null and b/sound/voice/joe/beyond_repair_haz.ogg differ diff --git a/sound/voice/joe/breach_haz.ogg b/sound/voice/joe/breach_haz.ogg new file mode 100644 index 000000000000..a6d425c00dfd Binary files /dev/null and b/sound/voice/joe/breach_haz.ogg differ diff --git a/sound/voice/joe/come_out_vent_haz.ogg b/sound/voice/joe/come_out_vent_haz.ogg new file mode 100644 index 000000000000..8161b4331f47 Binary files /dev/null and b/sound/voice/joe/come_out_vent_haz.ogg differ diff --git a/sound/voice/joe/could_require_attention_haz.ogg b/sound/voice/joe/could_require_attention_haz.ogg new file mode 100644 index 000000000000..2d997a055d22 Binary files /dev/null and b/sound/voice/joe/could_require_attention_haz.ogg differ diff --git a/sound/voice/joe/damage_haz.ogg b/sound/voice/joe/damage_haz.ogg new file mode 100644 index 000000000000..3c757f48eab6 Binary files /dev/null and b/sound/voice/joe/damage_haz.ogg differ diff --git a/sound/voice/joe/dangerous_items_haz.ogg b/sound/voice/joe/dangerous_items_haz.ogg new file mode 100644 index 000000000000..6b1d3f5aef57 Binary files /dev/null and b/sound/voice/joe/dangerous_items_haz.ogg differ diff --git a/sound/voice/joe/day_never_done_haz.ogg b/sound/voice/joe/day_never_done_haz.ogg new file mode 100644 index 000000000000..3ae295a96143 Binary files /dev/null and b/sound/voice/joe/day_never_done_haz.ogg differ diff --git a/sound/voice/joe/detailed_report_haz.ogg b/sound/voice/joe/detailed_report_haz.ogg new file mode 100644 index 000000000000..31d4686a8799 Binary files /dev/null and b/sound/voice/joe/detailed_report_haz.ogg differ diff --git a/sound/voice/joe/disturbance_haz.ogg b/sound/voice/joe/disturbance_haz.ogg new file mode 100644 index 000000000000..78f242382bff Binary files /dev/null and b/sound/voice/joe/disturbance_haz.ogg differ diff --git a/sound/voice/joe/fire_haz.ogg b/sound/voice/joe/fire_haz.ogg new file mode 100644 index 000000000000..ec1ff9fad98f Binary files /dev/null and b/sound/voice/joe/fire_haz.ogg differ diff --git a/sound/voice/joe/firearm_haz.ogg b/sound/voice/joe/firearm_haz.ogg new file mode 100644 index 000000000000..ff5d19bab998 Binary files /dev/null and b/sound/voice/joe/firearm_haz.ogg differ diff --git a/sound/voice/joe/follow_me_please_haz.ogg b/sound/voice/joe/follow_me_please_haz.ogg new file mode 100644 index 000000000000..9d39bb8d1693 Binary files /dev/null and b/sound/voice/joe/follow_me_please_haz.ogg differ diff --git a/sound/voice/joe/good_day_haz.ogg b/sound/voice/joe/good_day_haz.ogg new file mode 100644 index 000000000000..7ec82d9483f4 Binary files /dev/null and b/sound/voice/joe/good_day_haz.ogg differ diff --git a/sound/voice/joe/health_risks_haz.ogg b/sound/voice/joe/health_risks_haz.ogg new file mode 100644 index 000000000000..76ecf60b23d7 Binary files /dev/null and b/sound/voice/joe/health_risks_haz.ogg differ diff --git a/sound/voice/joe/how_can_i_help_haz.ogg b/sound/voice/joe/how_can_i_help_haz.ogg new file mode 100644 index 000000000000..d6d28222efd7 Binary files /dev/null and b/sound/voice/joe/how_can_i_help_haz.ogg differ diff --git a/sound/voice/joe/hysterical_haz.ogg b/sound/voice/joe/hysterical_haz.ogg new file mode 100644 index 000000000000..cd2926fa64cc Binary files /dev/null and b/sound/voice/joe/hysterical_haz.ogg differ diff --git a/sound/voice/joe/investigating_disturbance_haz.ogg b/sound/voice/joe/investigating_disturbance_haz.ogg new file mode 100644 index 000000000000..c36bc8ff0f0d Binary files /dev/null and b/sound/voice/joe/investigating_disturbance_haz.ogg differ diff --git a/sound/voice/joe/irresponsible_haz.ogg b/sound/voice/joe/irresponsible_haz.ogg new file mode 100644 index 000000000000..585d5e6dc7bb Binary files /dev/null and b/sound/voice/joe/irresponsible_haz.ogg differ diff --git a/sound/voice/joe/misbehaving_haz.ogg b/sound/voice/joe/misbehaving_haz.ogg new file mode 100644 index 000000000000..f3a49f3527ee Binary files /dev/null and b/sound/voice/joe/misbehaving_haz.ogg differ diff --git a/sound/voice/joe/more_pressing_matters_haz.ogg b/sound/voice/joe/more_pressing_matters_haz.ogg new file mode 100644 index 000000000000..e4a2222ba2a4 Binary files /dev/null and b/sound/voice/joe/more_pressing_matters_haz.ogg differ diff --git a/sound/voice/joe/not_allowed_there_haz.ogg b/sound/voice/joe/not_allowed_there_haz.ogg new file mode 100644 index 000000000000..62804f4498a8 Binary files /dev/null and b/sound/voice/joe/not_allowed_there_haz.ogg differ diff --git a/sound/voice/joe/not_what_i_think_haz.ogg b/sound/voice/joe/not_what_i_think_haz.ogg new file mode 100644 index 000000000000..f8f640c87de8 Binary files /dev/null and b/sound/voice/joe/not_what_i_think_haz.ogg differ diff --git a/sound/voice/joe/other_concerns_haz.ogg b/sound/voice/joe/other_concerns_haz.ogg new file mode 100644 index 000000000000..8c24870cfa4b Binary files /dev/null and b/sound/voice/joe/other_concerns_haz.ogg differ diff --git a/sound/voice/joe/patience_haz.ogg b/sound/voice/joe/patience_haz.ogg new file mode 100644 index 000000000000..3e99f84c5d58 Binary files /dev/null and b/sound/voice/joe/patience_haz.ogg differ diff --git a/sound/voice/joe/presence_logged_haz.ogg b/sound/voice/joe/presence_logged_haz.ogg new file mode 100644 index 000000000000..df8b5a0cdfa9 Binary files /dev/null and b/sound/voice/joe/presence_logged_haz.ogg differ diff --git a/sound/voice/joe/really_shouldnt_be_here_haz.ogg b/sound/voice/joe/really_shouldnt_be_here_haz.ogg new file mode 100644 index 000000000000..22de4fe8ac63 Binary files /dev/null and b/sound/voice/joe/really_shouldnt_be_here_haz.ogg differ diff --git a/sound/voice/joe/report_haz.ogg b/sound/voice/joe/report_haz.ogg new file mode 100644 index 000000000000..188042163ed4 Binary files /dev/null and b/sound/voice/joe/report_haz.ogg differ diff --git a/sound/voice/joe/running_accidents_haz.ogg b/sound/voice/joe/running_accidents_haz.ogg new file mode 100644 index 000000000000..adca77ae199c Binary files /dev/null and b/sound/voice/joe/running_accidents_haz.ogg differ diff --git a/sound/voice/joe/safety_breach_haz.ogg b/sound/voice/joe/safety_breach_haz.ogg new file mode 100644 index 000000000000..41116872272a Binary files /dev/null and b/sound/voice/joe/safety_breach_haz.ogg differ diff --git a/sound/voice/joe/safety_haz.ogg b/sound/voice/joe/safety_haz.ogg new file mode 100644 index 000000000000..838abe6813b6 Binary files /dev/null and b/sound/voice/joe/safety_haz.ogg differ diff --git a/sound/voice/joe/species_haz.ogg b/sound/voice/joe/species_haz.ogg new file mode 100644 index 000000000000..a0bcaebf05ac Binary files /dev/null and b/sound/voice/joe/species_haz.ogg differ diff --git a/sound/voice/joe/support_ticket_removed_haz.ogg b/sound/voice/joe/support_ticket_removed_haz.ogg new file mode 100644 index 000000000000..db6e2dc69eca Binary files /dev/null and b/sound/voice/joe/support_ticket_removed_haz.ogg differ diff --git a/sound/voice/joe/temperatures_haz.ogg b/sound/voice/joe/temperatures_haz.ogg new file mode 100644 index 000000000000..5d1a4a952dfa Binary files /dev/null and b/sound/voice/joe/temperatures_haz.ogg differ diff --git a/sound/voice/joe/that_stings_haz.ogg b/sound/voice/joe/that_stings_haz.ogg new file mode 100644 index 000000000000..f88468d260c9 Binary files /dev/null and b/sound/voice/joe/that_stings_haz.ogg differ diff --git a/sound/voice/joe/this_is_futile_haz.ogg b/sound/voice/joe/this_is_futile_haz.ogg new file mode 100644 index 000000000000..3d371cc9fc04 Binary files /dev/null and b/sound/voice/joe/this_is_futile_haz.ogg differ diff --git a/sound/voice/joe/tomorrow_together_haz.ogg b/sound/voice/joe/tomorrow_together_haz.ogg new file mode 100644 index 000000000000..05686c426bf5 Binary files /dev/null and b/sound/voice/joe/tomorrow_together_haz.ogg differ diff --git a/sound/voice/joe/unprotected_flames_haz.ogg b/sound/voice/joe/unprotected_flames_haz.ogg new file mode 100644 index 000000000000..8b2df7a38946 Binary files /dev/null and b/sound/voice/joe/unprotected_flames_haz.ogg differ diff --git a/sound/voice/joe/what_happened_to_you_haz.ogg b/sound/voice/joe/what_happened_to_you_haz.ogg new file mode 100644 index 000000000000..db90ec8119eb Binary files /dev/null and b/sound/voice/joe/what_happened_to_you_haz.ogg differ diff --git a/sound/voice/joe/what_is_this_haz.ogg b/sound/voice/joe/what_is_this_haz.ogg new file mode 100644 index 000000000000..27aedef9f230 Binary files /dev/null and b/sound/voice/joe/what_is_this_haz.ogg differ diff --git a/sound/voice/joe/with_you_shortly_haz.ogg b/sound/voice/joe/with_you_shortly_haz.ogg new file mode 100644 index 000000000000..5f7a669c38fb Binary files /dev/null and b/sound/voice/joe/with_you_shortly_haz.ogg differ diff --git a/sound/voice/larva_talk1.ogg b/sound/voice/larva_talk1.ogg new file mode 100644 index 000000000000..8e8a212d4dde Binary files /dev/null and b/sound/voice/larva_talk1.ogg differ diff --git a/sound/voice/larva_talk2.ogg b/sound/voice/larva_talk2.ogg new file mode 100644 index 000000000000..e59f0e693259 Binary files /dev/null and b/sound/voice/larva_talk2.ogg differ diff --git a/sound/voice/larva_talk3.ogg b/sound/voice/larva_talk3.ogg new file mode 100644 index 000000000000..c784490fffa9 Binary files /dev/null and b/sound/voice/larva_talk3.ogg differ diff --git a/sound/voice/larva_talk4.ogg b/sound/voice/larva_talk4.ogg new file mode 100644 index 000000000000..cbb9b01d2418 Binary files /dev/null and b/sound/voice/larva_talk4.ogg differ diff --git a/sound/weapons/gun_44mag_v4.ogg b/sound/weapons/gun_44mag_v4.ogg new file mode 100644 index 000000000000..6c1ad1b32ef7 Binary files /dev/null and b/sound/weapons/gun_44mag_v4.ogg differ diff --git a/sound/weapons/gun_shotgun_xm51.ogg b/sound/weapons/gun_shotgun_xm51.ogg new file mode 100644 index 000000000000..0b0f94e49ca1 Binary files /dev/null and b/sound/weapons/gun_shotgun_xm51.ogg differ diff --git a/sound/weapons/gun_vulture_mark.ogg b/sound/weapons/gun_vulture_mark.ogg new file mode 100644 index 000000000000..6c7ae7b27797 Binary files /dev/null and b/sound/weapons/gun_vulture_mark.ogg differ diff --git a/strings/fortunes.txt b/strings/fortunes.txt index 31478d7ba3d9..27f249d0c8b0 100644 --- a/strings/fortunes.txt +++ b/strings/fortunes.txt @@ -5,6 +5,7 @@ A conclusion is simply the place where you got tired of thinking. A curse on the surface may be a blessing in disguise. A cynic is only a frustrated optimist. A dream is a wish your heart makes. +A friend will bring you a big surprise soon. A golden egg of your opportunity falls into your lap this month. A good gun will never kill anyone on its own. It is the shooter who pulls the trigger. A good leader knows when to shut up and listen. @@ -19,7 +20,7 @@ A true leader looks after their men, not their life. A true soldier dies protecting the ones they care for. A very attractive person will come with a message for you. A well-aimed spear is worth three. -ALl endings are also beginnings. We just don't know it all the time. +All endings are also beginnings. We just don't know it all the time. About time I got out of that cookie. Accept what comes to you each day. Accomplish the tasks you were given, and then you can rest easy. @@ -183,6 +184,7 @@ Luck will shine upon you today. Make happiness a priority, and be gentle with yourself in the process. Make someone laugh today. Make someone smile today. +Make today your day. Man is born to live, but not prepared to live. Many will travel to hear you speak. Man’s mind, once stretched by a new idea, never regains its original dimensions. @@ -377,4 +379,4 @@ Your shoes are dirty. Your shoes are untied. Your talents will be recognized and suitably rewarded. Your work interests can capture the highest status or prestige. -Your worst enemy has a crush on you. \ No newline at end of file +Your worst enemy has a crush on you. diff --git a/strings/marinetips.txt b/strings/marinetips.txt index 416c9ef0a4dd..253860e1eddd 100644 --- a/strings/marinetips.txt +++ b/strings/marinetips.txt @@ -80,15 +80,15 @@ You can shoot through tents, but they won't protect you much in return. Reqs doesn't have an infinite budget. Good Reqs can land supplies anywhere outside - given coords - and sometimes in a minimal amount of time. A ‘point blank’ or ‘PB’ is a type of attack with a firearm where you click directly on a mob next to you. These attacks are not effected by accuracy allowing you to quickly fire with weapons like a shotgun to great effect. -Intel Officers can be put in a squad by going to CIC and requesting it. +Intel Officers can be put in a different squad by going to CIC and requesting it. Any marine can perform CPR. On dead marines, this will increase the time they have until they become unrevivable. If you've been pounced on and your squad is unloading into the target, you can hit the 'rest' button to stay down so you don't get filled with lead after getting up. You can check the landing zone as a marine in the status panel. The Colonial Marshals may come to crack down on too heavy of a Black Market usage. -Functioning night vision goggles can be recharged with batteries. Broken night vision goggles can be repaired by an Engineer with a screwdriver. Not the loadout ones though, those cannot be fixed. +A night vision HUD optic can be recharged by removing it with a screwdriver, then placing it into a recharger. You can put a pistol belt on your suit slot. (Just grab a rifle instead.) Alt-clicking the Squad Leader tracker lets you track your fireteam leader instead. -Armor has a randomized reduction in effectiveness, and does not protect the digits. Take the wiki damage values as a best-case scenario. +Armor consistently protects you from damage to your chest, arms, and legs, but does not protect hands and feet. Take the wiki damage values as a best-case scenario. You can click on your Security Access Tuner (multitool) in your hand to locate the area's APC if there is one. Need help learning the game and these tips aren't enough? Use MentorHelp or try to get ahold of your ship's Senior Enlisted Advisor. Clicking on your sprite with help intent will let you check your body, seeing where your fractures and other wounds are. @@ -101,3 +101,4 @@ The nuclear ordnance requires BOTH communication towers to be actively held to d ARES will periodically report the amount of available tech points on Command Channel. The quick wield keys generally prioritize wieldable gear going from left to right on your inventory bar. Orbital Bombardment warheads respect roofing and hive core protection. They won't hit inside of protected areas. +The Queen can unbolt and break dropship doors by prying them open, even if they are unlocked. Pilots, Dropship Crew Chiefs, Engineers and Synths can repair these doors with a multitool. diff --git a/strings/metatips.txt b/strings/metatips.txt index a28c90239593..00bb827de69f 100644 --- a/strings/metatips.txt +++ b/strings/metatips.txt @@ -12,6 +12,7 @@ As a mentor, you can become the imaginary friend of a new player to teach them! You shouldn't ignore what your allies are up to. Sometimes they can be organizing a flank in hivemind/radio, sometimes they can be walking up behind you with a slug-loaded shotgun. Either way, it pays to be alert to what they're doing, as much to as what the enemies are. The Wiki (https://cm-ss13.com/wiki) is a very useful repository of information about the game, such as weapons, equipment, xenomorph castes and their strains. It may not be fully up to date much of the time, but the basics are usually accurate. As an observer, you may see how much remaining hijack time is left in the status panel. +As an observer, you can quickly follow someone by ctrl-clicking on their sprite. You can always AdminHelp with the F1 key to question a member of staff regarding rules or game bugs. As ghost you are given extra tools for spectating the round: you can jump and follow specific players, get notifications about CAS and OB strikes, can see all health bars, and such. You can press ESC key to bring up the game pause menu. It allows you change settings, AdminHelp and MentorHelp, and even access the Web Maps of game by clicking at top right. diff --git a/strings/xenotips.txt b/strings/xenotips.txt index 8674146de655..414d0883e576 100644 --- a/strings/xenotips.txt +++ b/strings/xenotips.txt @@ -23,16 +23,37 @@ Claymores have directional explosions. Set them off early by slashing them from If you have difficulty clicking marines, try using Directional Slashing, though there's no directional slashing for abilities. You can diagonally pounce through the corners of fire as a Lurker or Runner without getting ignited. When playing as Xeno, consider aiming at the limbs instead of the chest. Marine armor doesn't protect the arms and legs as well as it does the body. -As Xeno, you can break Night-Vision goggles that some marines wear on their helmets. Just aim for the head and slash until the goggles shatter. -Pounces are ineffective on marines who are laying down. +You can dodge pounces that aren't aimed directly at you by laying down. You may rest immediately during a pounce to pounce straight through mobs. It's not very practical or useful though. Pouncing someone who is buckled to a chair will still stun them, but you won't jump into their tile and they will not be knocked to the ground. Star shell dust from said grenades is just as meltable as normal flares. You can join the hive as a living Facehugger by clicking on the hive's Eggmorpher. This works on other hives too.. -Playable Facehuggers can leap onto targets with a one-second windup, but this will only infect them if they are adjacent to it. Otherwise, it will simply knock them down for a small duration. +Playable Facehuggers can leap onto targets with a one-second windup, but this will only infect them if they are adjacent to it. Otherwise, it will simply knock them down for a small duration. As a Facehugger, you cannot talk in hivemind, but you can still open Hive Status and overwatch your sisters. This can be useful if you're locating other Facehuggers, flanker castes, or trying to learn from experienced Facehugger players. Shift-clicking the Queen indicator will tell you what area you are in, on the map. As a Ravager your abilities become greatly enhanced when you empower with three or more people around you. Resisting on a water tile will immediately put out fires. Make sure you're alone though - It's usually better to let a friendly Xenomorph pat you out than it is to expose yourself to open water. You can filter out the Xenomorphs displayed in hive status by health, allowing you to look only for wounded sisters. Each xeno has their own ‘tackle counter’ on a marine. The range to successfully tackle can be anywhere from two to six tackles based on caste. If a marine gets stunned or knocked over by other means it will reset everyone's tackle counters and they may get up! +As a Xenomorph, the list of available tunnels is sorted by their distance to the player! +As a Xenomorph, pay attention to what a marine is wearing. If they have no helmet, aiming for the head will be significantly more damaging, if they aren't wearing gloves, then think about going for their hands. +The M540-A Armored Recon Carrier can be crawled under as a xenomorph when destroyed. +The M540-A Armored Recon Carrier is very vulnerable to acid damage. +Applying acid to flares makes them burn faster. +Melting weapons, ammo or other valuables owned by marines is a good way to debilitate them. +The secrete acid shortcut is (by default) Shift + C. +Placing acid traps under map debris such as metal sheets, wooden planks or other semi-large to large items is good for catching marines by surprise. +Burrower can place tunnels underneath tables or lockers. +Lesser drones and facehuggers cannot speak or use the Hivemind for three minutes after spawning. +Alt-clicking on the Queen tracker allows you to set it to also track the Hive Core, any living leaders or any existing tunnels. Tunnels are ordered by closest to furthest; top to bottom. +Be mindful of not blocking the escape of injured sisters. +As a Xenomorph, you are able to melt advanced body scanners, sleepers, MarineMeds and limb printers. +You can break roller beds with a single slash to stop a medic from quickly transporting a body. +As a Defender, lowering your crest gives you increased resistance to stuns like explosives or shotgun shells. +Tail stab will always hit the targetted limb and will do 1.2x your normal melee damage; it has a two tile range. +You can check if a door is shocked by tailstabbing it. +You can use your tail stab to slowly damage and break doors; this takes some time. +Some smaller Xenomorphs such as Runners can hide behind barricades by resting against them, a good surprise tactic. +Defenders with a lowered crest can open existing holes in walls. +As a Defender, you can deal an additional stage of damage to an APC by lowering your crest and then attacking it. +Any Xenomorph with acid can melt any kind of window frame; you may use this to create additional paths. diff --git a/tgui/.eslintignore b/tgui/.eslintignore index a59187b933ae..d3c0ac79cd88 100644 --- a/tgui/.eslintignore +++ b/tgui/.eslintignore @@ -3,4 +3,14 @@ /**/*.bundle.* /**/*.chunk.* /**/*.hot-update.* -/packages/inferno/** +**.lock +**.log +**.json +**.svg +**.scss +**.md +**.css +**.txt +**.woff2 +**.eot +**.ttf diff --git a/tgui/.eslintrc-sonar.yml b/tgui/.eslintrc-sonar.yml index 3cdd49f889e2..ebc57f72c008 100644 --- a/tgui/.eslintrc-sonar.yml +++ b/tgui/.eslintrc-sonar.yml @@ -1,26 +1 @@ -rules: - # radar/cognitive-complexity: error - radar/max-switch-cases: error - radar/no-all-duplicated-branches: error - radar/no-collapsible-if: error - radar/no-collection-size-mischeck: error - radar/no-duplicate-string: error - radar/no-duplicated-branches: error - radar/no-element-overwrite: error - radar/no-extra-arguments: error - radar/no-identical-conditions: error - radar/no-identical-expressions: error - radar/no-identical-functions: error - radar/no-inverted-boolean-check: error - radar/no-one-iteration-loop: error - radar/no-redundant-boolean: error - radar/no-redundant-jump: error - radar/no-same-line-conditional: error - radar/no-small-switch: error - radar/no-unused-collection: error - radar/no-use-of-empty-return-value: error - radar/no-useless-catch: error - radar/prefer-immediate-return: error - radar/prefer-object-literal: error - radar/prefer-single-boolean-return: error - radar/prefer-while: error +extends: 'plugin:sonarjs/recommended' diff --git a/tgui/.eslintrc.yml b/tgui/.eslintrc.yml index fc7385b68b33..4ff25c1f7fe4 100644 --- a/tgui/.eslintrc.yml +++ b/tgui/.eslintrc.yml @@ -11,12 +11,13 @@ env: browser: true node: true plugins: - - radar + - sonarjs - react - unused-imports + - simple-import-sort settings: react: - version: '16.10' + version: '18.2' rules: ## Possible Errors ## ---------------------------------------- @@ -308,13 +309,16 @@ rules: ## Enforce or disallow capitalization of the first letter of a comment # capitalized-comments: error ## Require or disallow trailing commas - comma-dangle: [error, { - arrays: always-multiline, - objects: always-multiline, - imports: always-multiline, - exports: always-multiline, - functions: only-multiline, ## Optional on functions - }] + comma-dangle: [ + error, + { + arrays: always-multiline, + objects: always-multiline, + imports: always-multiline, + exports: always-multiline, + functions: only-multiline, ## Optional on functions + }, + ] ## Enforce consistent spacing before and after commas comma-spacing: [error, { before: false, after: true }] ## Enforce consistent comma style @@ -761,3 +765,6 @@ rules: ## Prevents the use of unused imports. ## This could be done by enabling no-unused-vars, but we're doing this for now unused-imports/no-unused-imports: error + ## https://github.com/lydell/eslint-plugin-simple-import-sort/ + simple-import-sort/imports: error + simple-import-sort/exports: error diff --git a/tgui/.prettierignore b/tgui/.prettierignore index 79e703c95440..a91324ebe6e8 100644 --- a/tgui/.prettierignore +++ b/tgui/.prettierignore @@ -6,6 +6,7 @@ /yarn.lock /.pnp.* +.swcrc /docs /public /packages/tgui-polyfill diff --git a/tgui/.prettierrc.yml b/tgui/.prettierrc.yml index 1eebe6098b11..01769692264f 100644 --- a/tgui/.prettierrc.yml +++ b/tgui/.prettierrc.yml @@ -1,15 +1 @@ -arrowParens: always -breakLongMethodChains: true -endOfLine: lf -importFormatting: oneline -jsxBracketSameLine: true -jsxSingleQuote: false -offsetTernaryExpressions: true -printWidth: 80 -proseWrap: preserve -quoteProps: preserve -semi: true singleQuote: true -tabWidth: 2 -trailingComma: es5 -useTabs: false diff --git a/tgui/.swcrc b/tgui/.swcrc new file mode 100644 index 000000000000..c0402a41f0bf --- /dev/null +++ b/tgui/.swcrc @@ -0,0 +1,15 @@ +{ + "$schema": "https://json.schemastore.org/swcrc", + "jsc": { + "loose": true, + "parser": { + "syntax": "typescript", + "tsx": true + }, + "transform": { + "react": { + "runtime": "automatic" + } + } + } +} diff --git a/tgui/.yarn/plugins/@yarnpkg/plugin-interactive-tools.cjs b/tgui/.yarn/plugins/@yarnpkg/plugin-interactive-tools.cjs deleted file mode 100644 index 527659ff97f5..000000000000 --- a/tgui/.yarn/plugins/@yarnpkg/plugin-interactive-tools.cjs +++ /dev/null @@ -1,363 +0,0 @@ -/* eslint-disable */ -//prettier-ignore -module.exports = { -name: "@yarnpkg/plugin-interactive-tools", -factory: function (require) { -var plugin=(()=>{var PR=Object.create,J1=Object.defineProperty,MR=Object.defineProperties,FR=Object.getOwnPropertyDescriptor,LR=Object.getOwnPropertyDescriptors,RR=Object.getOwnPropertyNames,hh=Object.getOwnPropertySymbols,NR=Object.getPrototypeOf,Z4=Object.prototype.hasOwnProperty,aD=Object.prototype.propertyIsEnumerable;var dD=(i,u,f)=>u in i?J1(i,u,{enumerable:!0,configurable:!0,writable:!0,value:f}):i[u]=f,dt=(i,u)=>{for(var f in u||(u={}))Z4.call(u,f)&&dD(i,f,u[f]);if(hh)for(var f of hh(u))aD.call(u,f)&&dD(i,f,u[f]);return i},zn=(i,u)=>MR(i,LR(u)),BR=i=>J1(i,"__esModule",{value:!0});var Si=(i,u)=>{var f={};for(var c in i)Z4.call(i,c)&&u.indexOf(c)<0&&(f[c]=i[c]);if(i!=null&&hh)for(var c of hh(i))u.indexOf(c)<0&&aD.call(i,c)&&(f[c]=i[c]);return f};var Me=(i,u)=>()=>(u||i((u={exports:{}}).exports,u),u.exports),jR=(i,u)=>{for(var f in u)J1(i,f,{get:u[f],enumerable:!0})},UR=(i,u,f)=>{if(u&&typeof u=="object"||typeof u=="function")for(let c of RR(u))!Z4.call(i,c)&&c!=="default"&&J1(i,c,{get:()=>u[c],enumerable:!(f=FR(u,c))||f.enumerable});return i},Er=i=>UR(BR(J1(i!=null?PR(NR(i)):{},"default",i&&i.__esModule&&"default"in i?{get:()=>i.default,enumerable:!0}:{value:i,enumerable:!0})),i);var ey=Me((YH,pD)=>{"use strict";var hD=Object.getOwnPropertySymbols,qR=Object.prototype.hasOwnProperty,zR=Object.prototype.propertyIsEnumerable;function WR(i){if(i==null)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(i)}function HR(){try{if(!Object.assign)return!1;var i=new String("abc");if(i[5]="de",Object.getOwnPropertyNames(i)[0]==="5")return!1;for(var u={},f=0;f<10;f++)u["_"+String.fromCharCode(f)]=f;var c=Object.getOwnPropertyNames(u).map(function(t){return u[t]});if(c.join("")!=="0123456789")return!1;var g={};return"abcdefghijklmnopqrst".split("").forEach(function(t){g[t]=t}),Object.keys(Object.assign({},g)).join("")==="abcdefghijklmnopqrst"}catch(t){return!1}}pD.exports=HR()?Object.assign:function(i,u){for(var f,c=WR(i),g,t=1;t{"use strict";var ty=ey(),as=typeof Symbol=="function"&&Symbol.for,Q1=as?Symbol.for("react.element"):60103,bR=as?Symbol.for("react.portal"):60106,GR=as?Symbol.for("react.fragment"):60107,VR=as?Symbol.for("react.strict_mode"):60108,YR=as?Symbol.for("react.profiler"):60114,$R=as?Symbol.for("react.provider"):60109,KR=as?Symbol.for("react.context"):60110,XR=as?Symbol.for("react.forward_ref"):60112,JR=as?Symbol.for("react.suspense"):60113,QR=as?Symbol.for("react.memo"):60115,ZR=as?Symbol.for("react.lazy"):60116,mD=typeof Symbol=="function"&&Symbol.iterator;function Z1(i){for(var u="https://reactjs.org/docs/error-decoder.html?invariant="+i,f=1;fmh.length&&mh.push(i)}function uy(i,u,f,c){var g=typeof i;(g==="undefined"||g==="boolean")&&(i=null);var t=!1;if(i===null)t=!0;else switch(g){case"string":case"number":t=!0;break;case"object":switch(i.$$typeof){case Q1:case bR:t=!0}}if(t)return f(c,i,u===""?"."+sy(i,0):u),1;if(t=0,u=u===""?".":u+":",Array.isArray(i))for(var C=0;C{"use strict";kD.exports=xD()});var AD=Me((ga,e2)=>{(function(){var i,u="4.17.21",f=200,c="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",g="Expected a function",t="Invalid `variable` option passed into `_.template`",C="__lodash_hash_undefined__",A=500,x="__lodash_placeholder__",D=1,L=2,N=4,j=1,$=2,h=1,re=2,ce=4,Q=8,oe=16,Se=32,me=64,De=128,J=256,Te=512,Oe=30,Le="...",ot=800,ct=16,Ue=1,be=2,At=3,Ot=1/0,Nt=9007199254740991,Je=17976931348623157e292,V=0/0,ne=4294967295,ge=ne-1,Z=ne>>>1,Ae=[["ary",De],["bind",h],["bindKey",re],["curry",Q],["curryRight",oe],["flip",Te],["partial",Se],["partialRight",me],["rearg",J]],at="[object Arguments]",it="[object Array]",Ft="[object AsyncFunction]",jt="[object Boolean]",hn="[object Date]",Un="[object DOMException]",Jt="[object Error]",Yt="[object Function]",cr="[object GeneratorFunction]",w="[object Map]",pt="[object Number]",Mn="[object Null]",Bn="[object Object]",Xn="[object Promise]",vr="[object Proxy]",gr="[object RegExp]",r0="[object Set]",Ci="[object String]",yo="[object Symbol]",Ds="[object Undefined]",Mu="[object WeakMap]",Gf="[object WeakSet]",iu="[object ArrayBuffer]",ou="[object DataView]",ol="[object Float32Array]",ul="[object Float64Array]",Es="[object Int8Array]",Uo="[object Int16Array]",sl="[object Int32Array]",Ss="[object Uint8Array]",Cs="[object Uint8ClampedArray]",Ti="[object Uint16Array]",Fu="[object Uint32Array]",ll=/\b__p \+= '';/g,fl=/\b(__p \+=) '' \+/g,cl=/(__e\(.*?\)|\b__t\)) \+\n'';/g,al=/&(?:amp|lt|gt|quot|#39);/g,Ui=/[&<>"']/g,Mr=RegExp(al.source),Ac=RegExp(Ui.source),of=/<%-([\s\S]+?)%>/g,Ts=/<%([\s\S]+?)%>/g,xs=/<%=([\s\S]+?)%>/g,dl=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,qi=/^\w*$/,qo=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,kr=/[\\^$.*+?()[\]{}|]/g,Fr=RegExp(kr.source),si=/^\s+/,H0=/\s/,b0=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,Bt=/\{\n\/\* \[wrapped with (.+)\] \*/,Lu=/,? & /,c0=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,Ru=/[()=,{}\[\]\/\s]/,ks=/\\(\\)?/g,As=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,uu=/\w*$/,wo=/^[-+]0x[0-9a-f]+$/i,zo=/^0b[01]+$/i,Os=/^\[object .+?Constructor\]$/,Is=/^0o[0-7]+$/i,uf=/^(?:0|[1-9]\d*)$/,_n=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,Nu=/($^)/,Wo=/['\n\r\u2028\u2029\\]/g,su="\\ud800-\\udfff",Ps="\\u0300-\\u036f",pl="\\ufe20-\\ufe2f",Vf="\\u20d0-\\u20ff",hl=Ps+pl+Vf,Bu="\\u2700-\\u27bf",ju="a-z\\xdf-\\xf6\\xf8-\\xff",sf="\\xac\\xb1\\xd7\\xf7",ro="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",Ms="\\u2000-\\u206f",ml=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",Uu="A-Z\\xc0-\\xd6\\xd8-\\xde",G0="\\ufe0e\\ufe0f",Fs=sf+ro+Ms+ml,tt="['\u2019]",zi="["+su+"]",lu="["+Fs+"]",Ho="["+hl+"]",O0="\\d+",vl="["+Bu+"]",gl="["+ju+"]",fu="[^"+su+Fs+O0+Bu+ju+Uu+"]",_l="\\ud83c[\\udffb-\\udfff]",Sn="(?:"+Ho+"|"+_l+")",gt="[^"+su+"]",en="(?:\\ud83c[\\udde6-\\uddff]){2}",I0="[\\ud800-\\udbff][\\udc00-\\udfff]",li="["+Uu+"]",qu="\\u200d",Wi="(?:"+gl+"|"+fu+")",zu="(?:"+li+"|"+fu+")",Wu="(?:"+tt+"(?:d|ll|m|re|s|t|ve))?",Ls="(?:"+tt+"(?:D|LL|M|RE|S|T|VE))?",fi=Sn+"?",e0="["+G0+"]?",io="(?:"+qu+"(?:"+[gt,en,I0].join("|")+")"+e0+fi+")*",D0="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",Do="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",i0=e0+fi+io,Rs="(?:"+[vl,en,I0].join("|")+")"+i0,a0="(?:"+[gt+Ho+"?",Ho,en,I0,zi].join("|")+")",Hu=RegExp(tt,"g"),V0=RegExp(Ho,"g"),bu=RegExp(_l+"(?="+_l+")|"+a0+i0,"g"),Ns=RegExp([li+"?"+gl+"+"+Wu+"(?="+[lu,li,"$"].join("|")+")",zu+"+"+Ls+"(?="+[lu,li+Wi,"$"].join("|")+")",li+"?"+Wi+"+"+Wu,li+"+"+Ls,Do,D0,O0,Rs].join("|"),"g"),bo=RegExp("["+qu+su+hl+G0+"]"),P0=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,ln=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],lf=-1,nr={};nr[ol]=nr[ul]=nr[Es]=nr[Uo]=nr[sl]=nr[Ss]=nr[Cs]=nr[Ti]=nr[Fu]=!0,nr[at]=nr[it]=nr[iu]=nr[jt]=nr[ou]=nr[hn]=nr[Jt]=nr[Yt]=nr[w]=nr[pt]=nr[Bn]=nr[gr]=nr[r0]=nr[Ci]=nr[Mu]=!1;var rr={};rr[at]=rr[it]=rr[iu]=rr[ou]=rr[jt]=rr[hn]=rr[ol]=rr[ul]=rr[Es]=rr[Uo]=rr[sl]=rr[w]=rr[pt]=rr[Bn]=rr[gr]=rr[r0]=rr[Ci]=rr[yo]=rr[Ss]=rr[Cs]=rr[Ti]=rr[Fu]=!0,rr[Jt]=rr[Yt]=rr[Mu]=!1;var Go={\u00C0:"A",\u00C1:"A",\u00C2:"A",\u00C3:"A",\u00C4:"A",\u00C5:"A",\u00E0:"a",\u00E1:"a",\u00E2:"a",\u00E3:"a",\u00E4:"a",\u00E5:"a",\u00C7:"C",\u00E7:"c",\u00D0:"D",\u00F0:"d",\u00C8:"E",\u00C9:"E",\u00CA:"E",\u00CB:"E",\u00E8:"e",\u00E9:"e",\u00EA:"e",\u00EB:"e",\u00CC:"I",\u00CD:"I",\u00CE:"I",\u00CF:"I",\u00EC:"i",\u00ED:"i",\u00EE:"i",\u00EF:"i",\u00D1:"N",\u00F1:"n",\u00D2:"O",\u00D3:"O",\u00D4:"O",\u00D5:"O",\u00D6:"O",\u00D8:"O",\u00F2:"o",\u00F3:"o",\u00F4:"o",\u00F5:"o",\u00F6:"o",\u00F8:"o",\u00D9:"U",\u00DA:"U",\u00DB:"U",\u00DC:"U",\u00F9:"u",\u00FA:"u",\u00FB:"u",\u00FC:"u",\u00DD:"Y",\u00FD:"y",\u00FF:"y",\u00C6:"Ae",\u00E6:"ae",\u00DE:"Th",\u00FE:"th",\u00DF:"ss",\u0100:"A",\u0102:"A",\u0104:"A",\u0101:"a",\u0103:"a",\u0105:"a",\u0106:"C",\u0108:"C",\u010A:"C",\u010C:"C",\u0107:"c",\u0109:"c",\u010B:"c",\u010D:"c",\u010E:"D",\u0110:"D",\u010F:"d",\u0111:"d",\u0112:"E",\u0114:"E",\u0116:"E",\u0118:"E",\u011A:"E",\u0113:"e",\u0115:"e",\u0117:"e",\u0119:"e",\u011B:"e",\u011C:"G",\u011E:"G",\u0120:"G",\u0122:"G",\u011D:"g",\u011F:"g",\u0121:"g",\u0123:"g",\u0124:"H",\u0126:"H",\u0125:"h",\u0127:"h",\u0128:"I",\u012A:"I",\u012C:"I",\u012E:"I",\u0130:"I",\u0129:"i",\u012B:"i",\u012D:"i",\u012F:"i",\u0131:"i",\u0134:"J",\u0135:"j",\u0136:"K",\u0137:"k",\u0138:"k",\u0139:"L",\u013B:"L",\u013D:"L",\u013F:"L",\u0141:"L",\u013A:"l",\u013C:"l",\u013E:"l",\u0140:"l",\u0142:"l",\u0143:"N",\u0145:"N",\u0147:"N",\u014A:"N",\u0144:"n",\u0146:"n",\u0148:"n",\u014B:"n",\u014C:"O",\u014E:"O",\u0150:"O",\u014D:"o",\u014F:"o",\u0151:"o",\u0154:"R",\u0156:"R",\u0158:"R",\u0155:"r",\u0157:"r",\u0159:"r",\u015A:"S",\u015C:"S",\u015E:"S",\u0160:"S",\u015B:"s",\u015D:"s",\u015F:"s",\u0161:"s",\u0162:"T",\u0164:"T",\u0166:"T",\u0163:"t",\u0165:"t",\u0167:"t",\u0168:"U",\u016A:"U",\u016C:"U",\u016E:"U",\u0170:"U",\u0172:"U",\u0169:"u",\u016B:"u",\u016D:"u",\u016F:"u",\u0171:"u",\u0173:"u",\u0174:"W",\u0175:"w",\u0176:"Y",\u0177:"y",\u0178:"Y",\u0179:"Z",\u017B:"Z",\u017D:"Z",\u017A:"z",\u017C:"z",\u017E:"z",\u0132:"IJ",\u0133:"ij",\u0152:"Oe",\u0153:"oe",\u0149:"'n",\u017F:"s"},Gu={"&":"&","<":"<",">":">",'"':""","'":"'"},yl={"&":"&","<":"<",">":">",""":'"',"'":"'"},cu={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},Bs=parseFloat,Vu=parseInt,M0=typeof global=="object"&&global&&global.Object===Object&&global,au=typeof self=="object"&&self&&self.Object===Object&&self,Lr=M0||au||Function("return this")(),F=typeof ga=="object"&&ga&&!ga.nodeType&&ga,R=F&&typeof e2=="object"&&e2&&!e2.nodeType&&e2,U=R&&R.exports===F,H=U&&M0.process,fe=function(){try{var ae=R&&R.require&&R.require("util").types;return ae||H&&H.binding&&H.binding("util")}catch(Be){}}(),ue=fe&&fe.isArrayBuffer,de=fe&&fe.isDate,W=fe&&fe.isMap,ve=fe&&fe.isRegExp,Fe=fe&&fe.isSet,Ge=fe&&fe.isTypedArray;function K(ae,Be,Ie){switch(Ie.length){case 0:return ae.call(Be);case 1:return ae.call(Be,Ie[0]);case 2:return ae.call(Be,Ie[0],Ie[1]);case 3:return ae.call(Be,Ie[0],Ie[1],Ie[2])}return ae.apply(Be,Ie)}function xe(ae,Be,Ie,ht){for(var mt=-1,wn=ae==null?0:ae.length;++mt-1}function wt(ae,Be,Ie){for(var ht=-1,mt=ae==null?0:ae.length;++ht-1;);return Ie}function js(ae,Be){for(var Ie=ae.length;Ie--&&Qe(Be,ae[Ie],0)>-1;);return Ie}function Dl(ae,Be){for(var Ie=ae.length,ht=0;Ie--;)ae[Ie]===Be&&++ht;return ht}var du=Cn(Go),Yu=Cn(Gu);function Us(ae){return"\\"+cu[ae]}function oo(ae,Be){return ae==null?i:ae[Be]}function Hi(ae){return bo.test(ae)}function qs(ae){return P0.test(ae)}function F0(ae){for(var Be,Ie=[];!(Be=ae.next()).done;)Ie.push(Be.value);return Ie}function Gr(ae){var Be=-1,Ie=Array(ae.size);return ae.forEach(function(ht,mt){Ie[++Be]=[mt,ht]}),Ie}function ir(ae,Be){return function(Ie){return ae(Be(Ie))}}function L0(ae,Be){for(var Ie=-1,ht=ae.length,mt=0,wn=[];++Ie-1}function Ju(a,p){var E=this.__data__,I=hf(E,a);return I<0?(++this.size,E.push([a,p])):E[I][1]=p,this}Z0.prototype.clear=df,Z0.prototype.delete=Ba,Z0.prototype.get=Oc,Z0.prototype.has=mu,Z0.prototype.set=Ju;function ei(a){var p=-1,E=a==null?0:a.length;for(this.clear();++p=p?a:p)),a}function vi(a,p,E,I,B,G){var te,se=p&D,Ee=p&L,$e=p&N;if(E&&(te=B?E(a,I,B,G):E(a)),te!==i)return te;if(!Jr(a))return a;var Ke=On(a);if(Ke){if(te=f1(a),!se)return Xr(a,te)}else{var nt=U0(a),Ct=nt==Yt||nt==cr;if(Eu(a))return Od(a,se);if(nt==Bn||nt==at||Ct&&!B){if(te=Ee||Ct?{}:zd(a),!se)return Ee?Zu(a,Wa(te,a)):j0(a,mf(te,a))}else{if(!rr[nt])return B?a:{};te=Wd(a,nt,se)}}G||(G=new co);var Gt=G.get(a);if(Gt)return Gt;G.set(a,te),kp(a)?a.forEach(function(dn){te.add(vi(dn,p,E,dn,a,G))}):Tp(a)&&a.forEach(function(dn,Yn){te.set(Yn,vi(dn,p,E,Yn,a,G))});var an=$e?Ee?Dn:r1:Ee?Yi:q0,qn=Ke?i:an(a);return je(qn||a,function(dn,Yn){qn&&(Yn=dn,dn=a[Yn]),xl(te,Yn,vi(dn,p,E,Yn,a,G))}),te}function Xf(a){var p=q0(a);return function(E){return Rc(E,a,p)}}function Rc(a,p,E){var I=E.length;if(a==null)return!I;for(a=$t(a);I--;){var B=E[I],G=p[B],te=a[B];if(te===i&&!(B in a)||!G(te))return!1}return!0}function Jf(a,p,E){if(typeof a!="function")throw new Yr(g);return wf(function(){a.apply(i,E)},p)}function ao(a,p,E,I){var B=-1,G=xt,te=!0,se=a.length,Ee=[],$e=p.length;if(!se)return Ee;E&&(p=lt(p,qr(E))),I?(G=wt,te=!1):p.length>=f&&(G=So,te=!1,p=new vu(p));e:for(;++BB?0:B+E),I=I===i||I>B?B:jn(I),I<0&&(I+=B),I=E>I?0:Ip(I);E0&&E(se)?p>1?k0(se,p-1,E,I,B):Rt(B,se):I||(B[B.length]=se)}return B}var v=ec(),m=ec(!0);function S(a,p){return a&&v(a,p,q0)}function O(a,p){return a&&m(a,p,q0)}function M(a,p){return st(p,function(E){return rs(a[E])})}function b(a,p){p=Gs(p,a);for(var E=0,I=p.length;a!=null&&Ep}function ut(a,p){return a!=null&&or.call(a,p)}function In(a,p){return a!=null&&p in $t(a)}function A0(a,p,E){return a>=kn(p,E)&&a=120&&Ke.length>=120)?new vu(te&&Ke):i}Ke=a[0];var nt=-1,Ct=se[0];e:for(;++nt-1;)se!==a&&C0.call(se,Ee,1),C0.call(a,Ee,1);return a}function jc(a,p){for(var E=a?p.length:0,I=E-1;E--;){var B=p[E];if(E==I||B!==G){var G=B;es(B)?C0.call(a,B,1):$a(a,B)}}return a}function Ga(a,p){return a+hu(Ai()*(p-a+1))}function Lm(a,p,E,I){for(var B=-1,G=wr(B0((p-a)/(E||1)),0),te=Ie(G);G--;)te[I?G:++B]=a,a+=E;return te}function Va(a,p){var E="";if(!a||p<1||p>Nt)return E;do p%2&&(E+=a),p=hu(p/2),p&&(a+=a);while(p);return E}function Wn(a,p){return m1(Gd(a,p,$i),a+"")}function wd(a){return Fc(Ef(a))}function Dd(a,p){var E=Ef(a);return Yc(E,mi(p,0,E.length))}function Ol(a,p,E,I){if(!Jr(a))return a;p=Gs(p,a);for(var B=-1,G=p.length,te=G-1,se=a;se!=null&&++BB?0:B+p),E=E>B?B:E,E<0&&(E+=B),B=p>E?0:E-p>>>0,p>>>=0;for(var G=Ie(B);++I>>1,te=a[G];te!==null&&!mo(te)&&(E?te<=p:te=f){var $e=p?null:bm(a);if($e)return Y0($e);te=!1,B=So,Ee=new vu}else Ee=p?[]:se;e:for(;++I=I?a:Oo(a,p,E)}var Ad=pu||function(a){return Lr.clearTimeout(a)};function Od(a,p){if(p)return a.slice();var E=a.length,I=Nr?Nr(E):new a.constructor(E);return a.copy(I),I}function Qa(a){var p=new a.constructor(a.byteLength);return new R0(p).set(new R0(a)),p}function jm(a,p){var E=p?Qa(a.buffer):a.buffer;return new a.constructor(E,a.byteOffset,a.byteLength)}function Um(a){var p=new a.constructor(a.source,uu.exec(a));return p.lastIndex=a.lastIndex,p}function qm(a){return Wr?$t(Wr.call(a)):{}}function Id(a,p){var E=p?Qa(a.buffer):a.buffer;return new a.constructor(E,a.byteOffset,a.length)}function Pd(a,p){if(a!==p){var E=a!==i,I=a===null,B=a===a,G=mo(a),te=p!==i,se=p===null,Ee=p===p,$e=mo(p);if(!se&&!$e&&!G&&a>p||G&&te&&Ee&&!se&&!$e||I&&te&&Ee||!E&&Ee||!B)return 1;if(!I&&!G&&!$e&&a=se)return Ee;var $e=E[I];return Ee*($e=="desc"?-1:1)}}return a.index-p.index}function gf(a,p,E,I){for(var B=-1,G=a.length,te=E.length,se=-1,Ee=p.length,$e=wr(G-te,0),Ke=Ie(Ee+$e),nt=!I;++se1?E[B-1]:i,te=B>2?E[2]:i;for(G=a.length>3&&typeof G=="function"?(B--,G):i,te&&Ii(E[0],E[1],te)&&(G=B<3?i:G,B=1),p=$t(p);++I-1?B[G?p[te]:te]:i}}function Rd(a){return yu(function(p){var E=p.length,I=E,B=Qn.prototype.thru;for(a&&p.reverse();I--;){var G=p[I];if(typeof G!="function")throw new Yr(g);if(B&&!te&&Gc(G)=="wrapper")var te=new Qn([],!0)}for(I=te?I:E;++I1&&er.reverse(),Ke&&Eese))return!1;var $e=G.get(a),Ke=G.get(p);if($e&&Ke)return $e==p&&Ke==a;var nt=-1,Ct=!0,Gt=E&$?new vu:i;for(G.set(a,p),G.set(p,a);++nt1?"& ":"")+p[I],p=p.join(E>2?", ":" "),a.replace(b0,`{ -/* [wrapped with `+p+`] */ -`)}function Xm(a){return On(a)||Ll(a)||!!(di&&a&&a[di])}function es(a,p){var E=typeof a;return p=p==null?Nt:p,!!p&&(E=="number"||E!="symbol"&&uf.test(a))&&a>-1&&a%1==0&&a0){if(++p>=ot)return arguments[0]}else p=0;return a.apply(i,arguments)}}function Yc(a,p){var E=-1,I=a.length,B=I-1;for(p=p===i?I:p;++E1?a[p-1]:i;return E=typeof E=="function"?(a.pop(),E):i,sp(a,E)});function fp(a){var p=z(a);return p.__chain__=!0,p}function cp(a,p){return p(a),a}function Kc(a,p){return p(a)}var Wv=yu(function(a){var p=a.length,E=p?a[0]:0,I=this.__wrapped__,B=function(G){return Hs(G,a)};return p>1||this.__actions__.length||!(I instanceof nn)||!es(E)?this.thru(B):(I=I.slice(E,+E+(p?1:0)),I.__actions__.push({func:Kc,args:[B],thisArg:i}),new Qn(I,this.__chain__).thru(function(G){return p&&!G.length&&G.push(i),G}))});function Hv(){return fp(this)}function bv(){return new Qn(this.value(),this.__chain__)}function Gv(){this.__values__===i&&(this.__values__=Op(this.value()));var a=this.__index__>=this.__values__.length,p=a?i:this.__values__[this.__index__++];return{done:a,value:p}}function Vv(){return this}function Yv(a){for(var p,E=this;E instanceof Or;){var I=Jd(E);I.__index__=0,I.__values__=i,p?B.__wrapped__=I:p=I;var B=I;E=E.__wrapped__}return B.__wrapped__=a,p}function Ml(){var a=this.__wrapped__;if(a instanceof nn){var p=a;return this.__actions__.length&&(p=new nn(this)),p=p.reverse(),p.__actions__.push({func:Kc,args:[g1],thisArg:i}),new Qn(p,this.__chain__)}return this.thru(g1)}function Fl(){return xd(this.__wrapped__,this.__actions__)}var Xc=_f(function(a,p,E){or.call(a,E)?++a[E]:ti(a,E,1)});function $v(a,p,E){var I=On(a)?rt:Nc;return E&&Ii(a,p,E)&&(p=i),I(a,cn(p,3))}function Kv(a,p){var E=On(a)?st:Qf;return E(a,cn(p,3))}var Xv=Ld(Qd),D1=Ld($c);function Jv(a,p){return k0(Jc(a,p),1)}function Qv(a,p){return k0(Jc(a,p),Ot)}function ap(a,p,E){return E=E===i?1:jn(E),k0(Jc(a,p),E)}function dp(a,p){var E=On(a)?je:$o;return E(a,cn(p,3))}function pp(a,p){var E=On(a)?Xe:kl;return E(a,cn(p,3))}var Zv=_f(function(a,p,E){or.call(a,E)?a[E].push(p):ti(a,E,[p])});function eg(a,p,E,I){a=Vi(a)?a:Ef(a),E=E&&!I?jn(E):0;var B=a.length;return E<0&&(E=wr(B+E,0)),ia(a)?E<=B&&a.indexOf(p,E)>-1:!!B&&Qe(a,p,E)>-1}var tg=Wn(function(a,p,E){var I=-1,B=typeof p=="function",G=Vi(a)?Ie(a.length):[];return $o(a,function(te){G[++I]=B?K(p,te,E):po(te,p,E)}),G}),hp=_f(function(a,p,E){ti(a,E,p)});function Jc(a,p){var E=On(a)?lt:vd;return E(a,cn(p,3))}function ng(a,p,E,I){return a==null?[]:(On(p)||(p=p==null?[]:[p]),E=I?i:E,On(E)||(E=E==null?[]:[E]),Oi(a,p,E))}var rg=_f(function(a,p,E){a[E?0:1].push(p)},function(){return[[],[]]});function mp(a,p,E){var I=On(a)?yn:bn,B=arguments.length<3;return I(a,cn(p,4),E,B,$o)}function ig(a,p,E){var I=On(a)?sn:bn,B=arguments.length<3;return I(a,cn(p,4),E,B,kl)}function og(a,p){var E=On(a)?st:Qf;return E(a,Zc(cn(p,3)))}function ug(a){var p=On(a)?Fc:wd;return p(a)}function sg(a,p,E){(E?Ii(a,p,E):p===i)?p=1:p=jn(p);var I=On(a)?Lc:Dd;return I(a,p)}function lg(a){var p=On(a)?Kf:Ao;return p(a)}function E1(a){if(a==null)return 0;if(Vi(a))return ia(a)?Rr(a):a.length;var p=U0(a);return p==w||p==r0?a.size:Zf(a).length}function fg(a,p,E){var I=On(a)?ar:Nm;return E&&Ii(a,p,E)&&(p=i),I(a,cn(p,3))}var cg=Wn(function(a,p){if(a==null)return[];var E=p.length;return E>1&&Ii(a,p[0],p[1])?p=[]:E>2&&Ii(p[0],p[1],p[2])&&(p=[p[0]]),Oi(a,k0(p,1),[])}),rc=Sl||function(){return Lr.Date.now()};function ag(a,p){if(typeof p!="function")throw new Yr(g);return a=jn(a),function(){if(--a<1)return p.apply(this,arguments)}}function vp(a,p,E){return p=E?i:p,p=a&&p==null?a.length:p,Lt(a,De,i,i,i,i,p)}function gp(a,p){var E;if(typeof p!="function")throw new Yr(g);return a=jn(a),function(){return--a>0&&(E=p.apply(this,arguments)),a<=1&&(p=i),E}}var S1=Wn(function(a,p,E){var I=h;if(E.length){var B=L0(E,An(S1));I|=Se}return Lt(a,I,p,E,B)}),_p=Wn(function(a,p,E){var I=h|re;if(E.length){var B=L0(E,An(_p));I|=Se}return Lt(p,I,a,E,B)});function C1(a,p,E){p=E?i:p;var I=Lt(a,Q,i,i,i,i,i,p);return I.placeholder=C1.placeholder,I}function yp(a,p,E){p=E?i:p;var I=Lt(a,oe,i,i,i,i,i,p);return I.placeholder=yp.placeholder,I}function wp(a,p,E){var I,B,G,te,se,Ee,$e=0,Ke=!1,nt=!1,Ct=!0;if(typeof a!="function")throw new Yr(g);p=Fo(p)||0,Jr(E)&&(Ke=!!E.leading,nt="maxWait"in E,G=nt?wr(Fo(E.maxWait)||0,p):G,Ct="trailing"in E?!!E.trailing:Ct);function Gt(f0){var Jo=I,Su=B;return I=B=i,$e=f0,te=a.apply(Su,Jo),te}function an(f0){return $e=f0,se=wf(Yn,p),Ke?Gt(f0):te}function qn(f0){var Jo=f0-Ee,Su=f0-$e,Zp=p-Jo;return nt?kn(Zp,G-Su):Zp}function dn(f0){var Jo=f0-Ee,Su=f0-$e;return Ee===i||Jo>=p||Jo<0||nt&&Su>=G}function Yn(){var f0=rc();if(dn(f0))return er(f0);se=wf(Yn,qn(f0))}function er(f0){return se=i,Ct&&I?Gt(f0):(I=B=i,te)}function vo(){se!==i&&Ad(se),$e=0,I=Ee=B=se=i}function Pi(){return se===i?te:er(rc())}function Mi(){var f0=rc(),Jo=dn(f0);if(I=arguments,B=this,Ee=f0,Jo){if(se===i)return an(Ee);if(nt)return Ad(se),se=wf(Yn,p),Gt(Ee)}return se===i&&(se=wf(Yn,p)),te}return Mi.cancel=vo,Mi.flush=Pi,Mi}var dg=Wn(function(a,p){return Jf(a,1,p)}),Dp=Wn(function(a,p,E){return Jf(a,Fo(p)||0,E)});function pg(a){return Lt(a,Te)}function Qc(a,p){if(typeof a!="function"||p!=null&&typeof p!="function")throw new Yr(g);var E=function(){var I=arguments,B=p?p.apply(this,I):I[0],G=E.cache;if(G.has(B))return G.get(B);var te=a.apply(this,I);return E.cache=G.set(B,te)||G,te};return E.cache=new(Qc.Cache||ei),E}Qc.Cache=ei;function Zc(a){if(typeof a!="function")throw new Yr(g);return function(){var p=arguments;switch(p.length){case 0:return!a.call(this);case 1:return!a.call(this,p[0]);case 2:return!a.call(this,p[0],p[1]);case 3:return!a.call(this,p[0],p[1],p[2])}return!a.apply(this,p)}}function ea(a){return gp(2,a)}var hg=Bm(function(a,p){p=p.length==1&&On(p[0])?lt(p[0],qr(cn())):lt(k0(p,1),qr(cn()));var E=p.length;return Wn(function(I){for(var B=-1,G=kn(I.length,E);++B=p}),Ll=_i(function(){return arguments}())?_i:function(a){return n0(a)&&or.call(a,"callee")&&!N0.call(a,"callee")},On=Ie.isArray,x1=ue?qr(ue):Re;function Vi(a){return a!=null&&na(a.length)&&!rs(a)}function l0(a){return n0(a)&&Vi(a)}function kg(a){return a===!0||a===!1||n0(a)&&Ye(a)==jt}var Eu=pi||W1,Ag=de?qr(de):Ce;function Og(a){return n0(a)&&a.nodeType===1&&!ic(a)}function Cp(a){if(a==null)return!0;if(Vi(a)&&(On(a)||typeof a=="string"||typeof a.splice=="function"||Eu(a)||Df(a)||Ll(a)))return!a.length;var p=U0(a);if(p==w||p==r0)return!a.size;if(nc(a))return!Zf(a).length;for(var E in a)if(or.call(a,E))return!1;return!0}function Ig(a,p){return ze(a,p)}function Pg(a,p,E){E=typeof E=="function"?E:i;var I=E?E(a,p):i;return I===i?ze(a,p,i,E):!!I}function k1(a){if(!n0(a))return!1;var p=Ye(a);return p==Jt||p==Un||typeof a.message=="string"&&typeof a.name=="string"&&!ic(a)}function Mg(a){return typeof a=="number"&&Br(a)}function rs(a){if(!Jr(a))return!1;var p=Ye(a);return p==Yt||p==cr||p==Ft||p==vr}function A1(a){return typeof a=="number"&&a==jn(a)}function na(a){return typeof a=="number"&&a>-1&&a%1==0&&a<=Nt}function Jr(a){var p=typeof a;return a!=null&&(p=="object"||p=="function")}function n0(a){return a!=null&&typeof a=="object"}var Tp=W?qr(W):on;function Fg(a,p){return a===p||sr(a,p,Nn(p))}function Lg(a,p,E){return E=typeof E=="function"?E:i,sr(a,p,Nn(p),E)}function Rg(a){return xp(a)&&a!=+a}function Ng(a){if(Zm(a))throw new mt(c);return mn(a)}function Bg(a){return a===null}function O1(a){return a==null}function xp(a){return typeof a=="number"||n0(a)&&Ye(a)==pt}function ic(a){if(!n0(a)||Ye(a)!=Bn)return!1;var p=uo(a);if(p===null)return!0;var E=or.call(p,"constructor")&&p.constructor;return typeof E=="function"&&E instanceof E&&bi.call(E)==af}var ra=ve?qr(ve):pr;function jg(a){return A1(a)&&a>=-Nt&&a<=Nt}var kp=Fe?qr(Fe):Hr;function ia(a){return typeof a=="string"||!On(a)&&n0(a)&&Ye(a)==Ci}function mo(a){return typeof a=="symbol"||n0(a)&&Ye(a)==yo}var Df=Ge?qr(Ge):Vn;function Ap(a){return a===i}function Ug(a){return n0(a)&&U0(a)==Mu}function qg(a){return n0(a)&&Ye(a)==Gf}var zg=bc(Ha),Wg=bc(function(a,p){return a<=p});function Op(a){if(!a)return[];if(Vi(a))return ia(a)?Jn(a):Xr(a);if(u0&&a[u0])return F0(a[u0]());var p=U0(a),E=p==w?Gr:p==r0?Y0:Ef;return E(a)}function is(a){if(!a)return a===0?a:0;if(a=Fo(a),a===Ot||a===-Ot){var p=a<0?-1:1;return p*Je}return a===a?a:0}function jn(a){var p=is(a),E=p%1;return p===p?E?p-E:p:0}function Ip(a){return a?mi(jn(a),0,ne):0}function Fo(a){if(typeof a=="number")return a;if(mo(a))return V;if(Jr(a)){var p=typeof a.valueOf=="function"?a.valueOf():a;a=Jr(p)?p+"":p}if(typeof a!="string")return a===0?a:+a;a=E0(a);var E=zo.test(a);return E||Is.test(a)?Vu(a.slice(2),E?2:8):wo.test(a)?V:+a}function oa(a){return yi(a,Yi(a))}function Hg(a){return a?mi(jn(a),-Nt,Nt):a===0?a:0}function yr(a){return a==null?"":ho(a)}var Pp=Io(function(a,p){if(nc(p)||Vi(p)){yi(p,q0(p),a);return}for(var E in p)or.call(p,E)&&xl(a,E,p[E])}),Mp=Io(function(a,p){yi(p,Yi(p),a)}),ua=Io(function(a,p,E,I){yi(p,Yi(p),a,I)}),bg=Io(function(a,p,E,I){yi(p,q0(p),a,I)}),Gg=yu(Hs);function Vg(a,p){var E=dr(a);return p==null?E:mf(E,p)}var Fp=Wn(function(a,p){a=$t(a);var E=-1,I=p.length,B=I>2?p[2]:i;for(B&&Ii(p[0],p[1],B)&&(I=1);++E1),G}),yi(a,Dn(a),E),I&&(E=vi(E,D|L|N,Gm));for(var B=p.length;B--;)$a(E,p[B]);return E});function l_(a,p){return Bp(a,Zc(cn(p)))}var f_=yu(function(a,p){return a==null?{}:Fm(a,p)});function Bp(a,p){if(a==null)return{};var E=lt(Dn(a),function(I){return[I]});return p=cn(p),yd(a,E,function(I,B){return p(I,B[0])})}function c_(a,p,E){p=Gs(p,a);var I=-1,B=p.length;for(B||(B=1,a=i);++Ip){var I=a;a=p,p=I}if(E||a%1||p%1){var B=Ai();return kn(a+B*(p-a+Bs("1e-"+((B+"").length-1))),p)}return Ga(a,p)}var __=yf(function(a,p,E){return p=p.toLowerCase(),a+(E?Wp(p):p)});function Wp(a){return L1(yr(a).toLowerCase())}function Hp(a){return a=yr(a),a&&a.replace(_n,du).replace(V0,"")}function y_(a,p,E){a=yr(a),p=ho(p);var I=a.length;E=E===i?I:mi(jn(E),0,I);var B=E;return E-=p.length,E>=0&&a.slice(E,B)==p}function M1(a){return a=yr(a),a&&Ac.test(a)?a.replace(Ui,Yu):a}function w_(a){return a=yr(a),a&&Fr.test(a)?a.replace(kr,"\\$&"):a}var D_=yf(function(a,p,E){return a+(E?"-":"")+p.toLowerCase()}),bp=yf(function(a,p,E){return a+(E?" ":"")+p.toLowerCase()}),E_=Fd("toLowerCase");function S_(a,p,E){a=yr(a),p=jn(p);var I=p?Rr(a):0;if(!p||I>=p)return a;var B=(p-I)/2;return Hc(hu(B),E)+a+Hc(B0(B),E)}function C_(a,p,E){a=yr(a),p=jn(p);var I=p?Rr(a):0;return p&&I>>0,E?(a=yr(a),a&&(typeof p=="string"||p!=null&&!ra(p))&&(p=ho(p),!p&&Hi(a))?Vs(Jn(a),0,E):a.split(p,E)):[]}var I_=yf(function(a,p,E){return a+(E?" ":"")+L1(p)});function P_(a,p,E){return a=yr(a),E=E==null?0:mi(jn(E),0,a.length),p=ho(p),a.slice(E,E+p.length)==p}function M_(a,p,E){var I=z.templateSettings;E&&Ii(a,p,E)&&(p=i),a=yr(a),p=ua({},p,I,n1);var B=ua({},p.imports,I.imports,n1),G=q0(B),te=Eo(B,G),se,Ee,$e=0,Ke=p.interpolate||Nu,nt="__p += '",Ct=X0((p.escape||Nu).source+"|"+Ke.source+"|"+(Ke===xs?As:Nu).source+"|"+(p.evaluate||Nu).source+"|$","g"),Gt="//# sourceURL="+(or.call(p,"sourceURL")?(p.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++lf+"]")+` -`;a.replace(Ct,function(dn,Yn,er,vo,Pi,Mi){return er||(er=vo),nt+=a.slice($e,Mi).replace(Wo,Us),Yn&&(se=!0,nt+=`' + -__e(`+Yn+`) + -'`),Pi&&(Ee=!0,nt+=`'; -`+Pi+`; -__p += '`),er&&(nt+=`' + -((__t = (`+er+`)) == null ? '' : __t) + -'`),$e=Mi+dn.length,dn}),nt+=`'; -`;var an=or.call(p,"variable")&&p.variable;if(!an)nt=`with (obj) { -`+nt+` -} -`;else if(Ru.test(an))throw new mt(t);nt=(Ee?nt.replace(ll,""):nt).replace(fl,"$1").replace(cl,"$1;"),nt="function("+(an||"obj")+`) { -`+(an?"":`obj || (obj = {}); -`)+"var __t, __p = ''"+(se?", __e = _.escape":"")+(Ee?`, __j = Array.prototype.join; -function print() { __p += __j.call(arguments, '') } -`:`; -`)+nt+`return __p -}`;var qn=$p(function(){return wn(G,Gt+"return "+nt).apply(i,te)});if(qn.source=nt,k1(qn))throw qn;return qn}function F_(a){return yr(a).toLowerCase()}function L_(a){return yr(a).toUpperCase()}function R_(a,p,E){if(a=yr(a),a&&(E||p===i))return E0(a);if(!a||!(p=ho(p)))return a;var I=Jn(a),B=Jn(p),G=wl(I,B),te=js(I,B)+1;return Vs(I,G,te).join("")}function F1(a,p,E){if(a=yr(a),a&&(E||p===i))return a.slice(0,ai(a)+1);if(!a||!(p=ho(p)))return a;var I=Jn(a),B=js(I,Jn(p))+1;return Vs(I,0,B).join("")}function N_(a,p,E){if(a=yr(a),a&&(E||p===i))return a.replace(si,"");if(!a||!(p=ho(p)))return a;var I=Jn(a),B=wl(I,Jn(p));return Vs(I,B).join("")}function B_(a,p){var E=Oe,I=Le;if(Jr(p)){var B="separator"in p?p.separator:B;E="length"in p?jn(p.length):E,I="omission"in p?ho(p.omission):I}a=yr(a);var G=a.length;if(Hi(a)){var te=Jn(a);G=te.length}if(E>=G)return a;var se=E-Rr(I);if(se<1)return I;var Ee=te?Vs(te,0,se).join(""):a.slice(0,se);if(B===i)return Ee+I;if(te&&(se+=Ee.length-se),ra(B)){if(a.slice(se).search(B)){var $e,Ke=Ee;for(B.global||(B=X0(B.source,yr(uu.exec(B))+"g")),B.lastIndex=0;$e=B.exec(Ke);)var nt=$e.index;Ee=Ee.slice(0,nt===i?se:nt)}}else if(a.indexOf(ho(B),se)!=se){var Ct=Ee.lastIndexOf(B);Ct>-1&&(Ee=Ee.slice(0,Ct))}return Ee+I}function Vp(a){return a=yr(a),a&&Mr.test(a)?a.replace(al,o0):a}var j_=yf(function(a,p,E){return a+(E?" ":"")+p.toUpperCase()}),L1=Fd("toUpperCase");function Yp(a,p,E){return a=yr(a),p=E?i:p,p===i?qs(a)?cf(a):d0(a):a.match(p)||[]}var $p=Wn(function(a,p){try{return K(a,i,p)}catch(E){return k1(E)?E:new mt(E)}}),U_=yu(function(a,p){return je(p,function(E){E=Xo(E),ti(a,E,S1(a[E],a))}),a});function Kp(a){var p=a==null?0:a.length,E=cn();return a=p?lt(a,function(I){if(typeof I[1]!="function")throw new Yr(g);return[E(I[0]),I[1]]}):[],Wn(function(I){for(var B=-1;++BNt)return[];var E=ne,I=kn(a,ne);p=cn(p),a-=ne;for(var B=ci(I,p);++E0||p<0)?new nn(E):(a<0?E=E.takeRight(-a):a&&(E=E.drop(a)),p!==i&&(p=jn(p),E=p<0?E.dropRight(-p):E.take(p-a)),E)},nn.prototype.takeRightWhile=function(a){return this.reverse().takeWhile(a).reverse()},nn.prototype.toArray=function(){return this.take(ne)},S(nn.prototype,function(a,p){var E=/^(?:filter|find|map|reject)|While$/.test(p),I=/^(?:head|last)$/.test(p),B=z[I?"take"+(p=="last"?"Right":""):p],G=I||/^find/.test(p);!B||(z.prototype[p]=function(){var te=this.__wrapped__,se=I?[1]:arguments,Ee=te instanceof nn,$e=se[0],Ke=Ee||On(te),nt=function(Yn){var er=B.apply(z,Rt([Yn],se));return I&&Ct?er[0]:er};Ke&&E&&typeof $e=="function"&&$e.length!=1&&(Ee=Ke=!1);var Ct=this.__chain__,Gt=!!this.__actions__.length,an=G&&!Ct,qn=Ee&&!Gt;if(!G&&Ke){te=qn?te:new nn(this);var dn=a.apply(te,se);return dn.__actions__.push({func:Kc,args:[nt],thisArg:i}),new Qn(dn,Ct)}return an&&qn?a.apply(this,se):(dn=this.thru(nt),an?I?dn.value()[0]:dn.value():dn)})}),je(["pop","push","shift","sort","splice","unshift"],function(a){var p=$r[a],E=/^(?:push|sort|unshift)$/.test(a)?"tap":"thru",I=/^(?:pop|shift)$/.test(a);z.prototype[a]=function(){var B=arguments;if(I&&!this.__chain__){var G=this.value();return p.apply(On(G)?G:[],B)}return this[E](function(te){return p.apply(On(te)?te:[],B)})}}),S(nn.prototype,function(a,p){var E=z[p];if(E){var I=E.name+"";or.call(bt,I)||(bt[I]=[]),bt[I].push({name:p,func:E})}}),bt[zc(i,re).name]=[{name:"wrapper",func:i}],nn.prototype.clone=s0,nn.prototype.reverse=t0,nn.prototype.value=g0,z.prototype.at=Wv,z.prototype.chain=Hv,z.prototype.commit=bv,z.prototype.next=Gv,z.prototype.plant=Yv,z.prototype.reverse=Ml,z.prototype.toJSON=z.prototype.valueOf=z.prototype.value=Fl,z.prototype.first=z.prototype.head,u0&&(z.prototype[u0]=Vv),z},K0=$0();typeof define=="function"&&typeof define.amd=="object"&&define.amd?(Lr._=K0,define(function(){return K0})):R?((R.exports=K0)._=K0,F._=K0):Lr._=K0}).call(ga)});var ay=Me((XH,cy)=>{"use strict";var fr=cy.exports;cy.exports.default=fr;var Pr="[",t2="]",ya="\x07",vh=";",OD=process.env.TERM_PROGRAM==="Apple_Terminal";fr.cursorTo=(i,u)=>{if(typeof i!="number")throw new TypeError("The `x` argument is required");return typeof u!="number"?Pr+(i+1)+"G":Pr+(u+1)+";"+(i+1)+"H"};fr.cursorMove=(i,u)=>{if(typeof i!="number")throw new TypeError("The `x` argument is required");let f="";return i<0?f+=Pr+-i+"D":i>0&&(f+=Pr+i+"C"),u<0?f+=Pr+-u+"A":u>0&&(f+=Pr+u+"B"),f};fr.cursorUp=(i=1)=>Pr+i+"A";fr.cursorDown=(i=1)=>Pr+i+"B";fr.cursorForward=(i=1)=>Pr+i+"C";fr.cursorBackward=(i=1)=>Pr+i+"D";fr.cursorLeft=Pr+"G";fr.cursorSavePosition=OD?"7":Pr+"s";fr.cursorRestorePosition=OD?"8":Pr+"u";fr.cursorGetPosition=Pr+"6n";fr.cursorNextLine=Pr+"E";fr.cursorPrevLine=Pr+"F";fr.cursorHide=Pr+"?25l";fr.cursorShow=Pr+"?25h";fr.eraseLines=i=>{let u="";for(let f=0;f[t2,"8",vh,vh,u,ya,i,t2,"8",vh,vh,ya].join("");fr.image=(i,u={})=>{let f=`${t2}1337;File=inline=1`;return u.width&&(f+=`;width=${u.width}`),u.height&&(f+=`;height=${u.height}`),u.preserveAspectRatio===!1&&(f+=";preserveAspectRatio=0"),f+":"+i.toString("base64")+ya};fr.iTerm={setCwd:(i=process.cwd())=>`${t2}50;CurrentDir=${i}${ya}`,annotation:(i,u={})=>{let f=`${t2}1337;`,c=typeof u.x!="undefined",g=typeof u.y!="undefined";if((c||g)&&!(c&&g&&typeof u.length!="undefined"))throw new Error("`x`, `y` and `length` must be defined when `x` or `y` is defined");return i=i.replace(/\|/g,""),f+=u.isHidden?"AddHiddenAnnotation=":"AddAnnotation=",u.length>0?f+=(c?[i,u.length,u.x,u.y]:[u.length,i]).join("|"):f+=i,f+ya}}});var PD=Me((JH,dy)=>{"use strict";var ID=(i,u)=>{for(let f of Reflect.ownKeys(u))Object.defineProperty(i,f,Object.getOwnPropertyDescriptor(u,f));return i};dy.exports=ID;dy.exports.default=ID});var FD=Me((QH,gh)=>{"use strict";var oN=PD(),_h=new WeakMap,MD=(i,u={})=>{if(typeof i!="function")throw new TypeError("Expected a function");let f,c=!1,g=0,t=i.displayName||i.name||"",C=function(...A){if(_h.set(C,++g),c){if(u.throw===!0)throw new Error(`Function \`${t}\` can only be called once`);return f}return c=!0,f=i.apply(this,A),i=null,f};return oN(C,i),_h.set(C,g),C};gh.exports=MD;gh.exports.default=MD;gh.exports.callCount=i=>{if(!_h.has(i))throw new Error(`The given function \`${i.name}\` is not wrapped by the \`onetime\` package`);return _h.get(i)}});var LD=Me((ZH,yh)=>{yh.exports=["SIGABRT","SIGALRM","SIGHUP","SIGINT","SIGTERM"];process.platform!=="win32"&&yh.exports.push("SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT");process.platform==="linux"&&yh.exports.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT","SIGUNUSED")});var vy=Me((eb,n2)=>{var uN=require("assert"),r2=LD(),sN=/^win/i.test(process.platform),wh=require("events");typeof wh!="function"&&(wh=wh.EventEmitter);var Bi;process.__signal_exit_emitter__?Bi=process.__signal_exit_emitter__:(Bi=process.__signal_exit_emitter__=new wh,Bi.count=0,Bi.emitted={});Bi.infinite||(Bi.setMaxListeners(Infinity),Bi.infinite=!0);n2.exports=function(i,u){uN.equal(typeof i,"function","a callback must be provided for exit handler"),i2===!1&&RD();var f="exit";u&&u.alwaysLast&&(f="afterexit");var c=function(){Bi.removeListener(f,i),Bi.listeners("exit").length===0&&Bi.listeners("afterexit").length===0&&py()};return Bi.on(f,i),c};n2.exports.unload=py;function py(){!i2||(i2=!1,r2.forEach(function(i){try{process.removeListener(i,hy[i])}catch(u){}}),process.emit=my,process.reallyExit=ND,Bi.count-=1)}function wa(i,u,f){Bi.emitted[i]||(Bi.emitted[i]=!0,Bi.emit(i,u,f))}var hy={};r2.forEach(function(i){hy[i]=function(){var f=process.listeners(i);f.length===Bi.count&&(py(),wa("exit",null,i),wa("afterexit",null,i),sN&&i==="SIGHUP"&&(i="SIGINT"),process.kill(process.pid,i))}});n2.exports.signals=function(){return r2};n2.exports.load=RD;var i2=!1;function RD(){i2||(i2=!0,Bi.count+=1,r2=r2.filter(function(i){try{return process.on(i,hy[i]),!0}catch(u){return!1}}),process.emit=fN,process.reallyExit=lN)}var ND=process.reallyExit;function lN(i){process.exitCode=i||0,wa("exit",process.exitCode,null),wa("afterexit",process.exitCode,null),ND.call(process,process.exitCode)}var my=process.emit;function fN(i,u){if(i==="exit"){u!==void 0&&(process.exitCode=u);var f=my.apply(this,arguments);return wa("exit",process.exitCode,null),wa("afterexit",process.exitCode,null),f}else return my.apply(this,arguments)}});var jD=Me((tb,BD)=>{"use strict";var cN=FD(),aN=vy();BD.exports=cN(()=>{aN(()=>{process.stderr.write("[?25h")},{alwaysLast:!0})})});var gy=Me(Da=>{"use strict";var dN=jD(),Dh=!1;Da.show=(i=process.stderr)=>{!i.isTTY||(Dh=!1,i.write("[?25h"))};Da.hide=(i=process.stderr)=>{!i.isTTY||(dN(),Dh=!0,i.write("[?25l"))};Da.toggle=(i,u)=>{i!==void 0&&(Dh=i),Dh?Da.show(u):Da.hide(u)}});var WD=Me(o2=>{"use strict";var UD=o2&&o2.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(o2,"__esModule",{value:!0});var qD=UD(ay()),zD=UD(gy()),pN=(i,{showCursor:u=!1}={})=>{let f=0,c="",g=!1,t=C=>{!u&&!g&&(zD.default.hide(),g=!0);let A=C+` -`;A!==c&&(c=A,i.write(qD.default.eraseLines(f)+A),f=A.split(` -`).length)};return t.clear=()=>{i.write(qD.default.eraseLines(f)),c="",f=0},t.done=()=>{c="",f=0,u||(zD.default.show(),g=!1)},t};o2.default={create:pN}});var bD=Me((ib,HD)=>{HD.exports=[{name:"AppVeyor",constant:"APPVEYOR",env:"APPVEYOR",pr:"APPVEYOR_PULL_REQUEST_NUMBER"},{name:"Azure Pipelines",constant:"AZURE_PIPELINES",env:"SYSTEM_TEAMFOUNDATIONCOLLECTIONURI",pr:"SYSTEM_PULLREQUEST_PULLREQUESTID"},{name:"Bamboo",constant:"BAMBOO",env:"bamboo_planKey"},{name:"Bitbucket Pipelines",constant:"BITBUCKET",env:"BITBUCKET_COMMIT",pr:"BITBUCKET_PR_ID"},{name:"Bitrise",constant:"BITRISE",env:"BITRISE_IO",pr:"BITRISE_PULL_REQUEST"},{name:"Buddy",constant:"BUDDY",env:"BUDDY_WORKSPACE_ID",pr:"BUDDY_EXECUTION_PULL_REQUEST_ID"},{name:"Buildkite",constant:"BUILDKITE",env:"BUILDKITE",pr:{env:"BUILDKITE_PULL_REQUEST",ne:"false"}},{name:"CircleCI",constant:"CIRCLE",env:"CIRCLECI",pr:"CIRCLE_PULL_REQUEST"},{name:"Cirrus CI",constant:"CIRRUS",env:"CIRRUS_CI",pr:"CIRRUS_PR"},{name:"AWS CodeBuild",constant:"CODEBUILD",env:"CODEBUILD_BUILD_ARN"},{name:"Codeship",constant:"CODESHIP",env:{CI_NAME:"codeship"}},{name:"Drone",constant:"DRONE",env:"DRONE",pr:{DRONE_BUILD_EVENT:"pull_request"}},{name:"dsari",constant:"DSARI",env:"DSARI"},{name:"GitLab CI",constant:"GITLAB",env:"GITLAB_CI"},{name:"GoCD",constant:"GOCD",env:"GO_PIPELINE_LABEL"},{name:"Hudson",constant:"HUDSON",env:"HUDSON_URL"},{name:"Jenkins",constant:"JENKINS",env:["JENKINS_URL","BUILD_ID"],pr:{any:["ghprbPullId","CHANGE_ID"]}},{name:"Magnum CI",constant:"MAGNUM",env:"MAGNUM"},{name:"Netlify CI",constant:"NETLIFY",env:"NETLIFY_BUILD_BASE",pr:{env:"PULL_REQUEST",ne:"false"}},{name:"Sail CI",constant:"SAIL",env:"SAILCI",pr:"SAIL_PULL_REQUEST_NUMBER"},{name:"Semaphore",constant:"SEMAPHORE",env:"SEMAPHORE",pr:"PULL_REQUEST_NUMBER"},{name:"Shippable",constant:"SHIPPABLE",env:"SHIPPABLE",pr:{IS_PULL_REQUEST:"true"}},{name:"Solano CI",constant:"SOLANO",env:"TDDIUM",pr:"TDDIUM_PR_ID"},{name:"Strider CD",constant:"STRIDER",env:"STRIDER"},{name:"TaskCluster",constant:"TASKCLUSTER",env:["TASK_ID","RUN_ID"]},{name:"TeamCity",constant:"TEAMCITY",env:"TEAMCITY_VERSION"},{name:"Travis CI",constant:"TRAVIS",env:"TRAVIS",pr:{env:"TRAVIS_PULL_REQUEST",ne:"false"}}]});var YD=Me(ru=>{"use strict";var GD=bD(),nl=process.env;Object.defineProperty(ru,"_vendors",{value:GD.map(function(i){return i.constant})});ru.name=null;ru.isPR=null;GD.forEach(function(i){var u=Array.isArray(i.env)?i.env:[i.env],f=u.every(function(c){return VD(c)});if(ru[i.constant]=f,f)switch(ru.name=i.name,typeof i.pr){case"string":ru.isPR=!!nl[i.pr];break;case"object":"env"in i.pr?ru.isPR=i.pr.env in nl&&nl[i.pr.env]!==i.pr.ne:"any"in i.pr?ru.isPR=i.pr.any.some(function(c){return!!nl[c]}):ru.isPR=VD(i.pr);break;default:ru.isPR=null}});ru.isCI=!!(nl.CI||nl.CONTINUOUS_INTEGRATION||nl.BUILD_NUMBER||nl.RUN_ID||ru.name);function VD(i){return typeof i=="string"?!!nl[i]:Object.keys(i).every(function(u){return nl[u]===i[u]})}});var KD=Me((ub,$D)=>{"use strict";$D.exports=YD().isCI});var JD=Me((sb,XD)=>{"use strict";var hN=i=>{let u=new Set;do for(let f of Reflect.ownKeys(i))u.add([i,f]);while((i=Reflect.getPrototypeOf(i))&&i!==Object.prototype);return u};XD.exports=(i,{include:u,exclude:f}={})=>{let c=g=>{let t=C=>typeof C=="string"?g===C:C.test(g);return u?u.some(t):f?!f.some(t):!0};for(let[g,t]of hN(i.constructor.prototype)){if(t==="constructor"||!c(t))continue;let C=Reflect.getOwnPropertyDescriptor(g,t);C&&typeof C.value=="function"&&(i[t]=i[t].bind(i))}return i}});var iE=Me(Sr=>{"use strict";Object.defineProperty(Sr,"__esModule",{value:!0});var Ea,u2,Eh,Sh,_y;typeof window=="undefined"||typeof MessageChannel!="function"?(Sa=null,yy=null,wy=function(){if(Sa!==null)try{var i=Sr.unstable_now();Sa(!0,i),Sa=null}catch(u){throw setTimeout(wy,0),u}},QD=Date.now(),Sr.unstable_now=function(){return Date.now()-QD},Ea=function(i){Sa!==null?setTimeout(Ea,0,i):(Sa=i,setTimeout(wy,0))},u2=function(i,u){yy=setTimeout(i,u)},Eh=function(){clearTimeout(yy)},Sh=function(){return!1},_y=Sr.unstable_forceFrameRate=function(){}):(Ch=window.performance,Dy=window.Date,ZD=window.setTimeout,eE=window.clearTimeout,typeof console!="undefined"&&(tE=window.cancelAnimationFrame,typeof window.requestAnimationFrame!="function"&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills"),typeof tE!="function"&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills")),typeof Ch=="object"&&typeof Ch.now=="function"?Sr.unstable_now=function(){return Ch.now()}:(nE=Dy.now(),Sr.unstable_now=function(){return Dy.now()-nE}),s2=!1,l2=null,Th=-1,Ey=5,Sy=0,Sh=function(){return Sr.unstable_now()>=Sy},_y=function(){},Sr.unstable_forceFrameRate=function(i){0>i||125kh(C,f))x!==void 0&&0>kh(x,C)?(i[c]=x,i[A]=f,c=A):(i[c]=C,i[t]=f,c=t);else if(x!==void 0&&0>kh(x,f))i[c]=x,i[A]=f,c=A;else break e}}return u}return null}function kh(i,u){var f=i.sortIndex-u.sortIndex;return f!==0?f:i.id-u.id}var ds=[],Nf=[],mN=1,_o=null,to=3,Oh=!1,pc=!1,f2=!1;function Ih(i){for(var u=Iu(Nf);u!==null;){if(u.callback===null)Ah(Nf);else if(u.startTime<=i)Ah(Nf),u.sortIndex=u.expirationTime,Ty(ds,u);else break;u=Iu(Nf)}}function xy(i){if(f2=!1,Ih(i),!pc)if(Iu(ds)!==null)pc=!0,Ea(ky);else{var u=Iu(Nf);u!==null&&u2(xy,u.startTime-i)}}function ky(i,u){pc=!1,f2&&(f2=!1,Eh()),Oh=!0;var f=to;try{for(Ih(u),_o=Iu(ds);_o!==null&&(!(_o.expirationTime>u)||i&&!Sh());){var c=_o.callback;if(c!==null){_o.callback=null,to=_o.priorityLevel;var g=c(_o.expirationTime<=u);u=Sr.unstable_now(),typeof g=="function"?_o.callback=g:_o===Iu(ds)&&Ah(ds),Ih(u)}else Ah(ds);_o=Iu(ds)}if(_o!==null)var t=!0;else{var C=Iu(Nf);C!==null&&u2(xy,C.startTime-u),t=!1}return t}finally{_o=null,to=f,Oh=!1}}function rE(i){switch(i){case 1:return-1;case 2:return 250;case 5:return 1073741823;case 4:return 1e4;default:return 5e3}}var vN=_y;Sr.unstable_ImmediatePriority=1;Sr.unstable_UserBlockingPriority=2;Sr.unstable_NormalPriority=3;Sr.unstable_IdlePriority=5;Sr.unstable_LowPriority=4;Sr.unstable_runWithPriority=function(i,u){switch(i){case 1:case 2:case 3:case 4:case 5:break;default:i=3}var f=to;to=i;try{return u()}finally{to=f}};Sr.unstable_next=function(i){switch(to){case 1:case 2:case 3:var u=3;break;default:u=to}var f=to;to=u;try{return i()}finally{to=f}};Sr.unstable_scheduleCallback=function(i,u,f){var c=Sr.unstable_now();if(typeof f=="object"&&f!==null){var g=f.delay;g=typeof g=="number"&&0c?(i.sortIndex=g,Ty(Nf,i),Iu(ds)===null&&i===Iu(Nf)&&(f2?Eh():f2=!0,u2(xy,g-c))):(i.sortIndex=f,Ty(ds,i),pc||Oh||(pc=!0,Ea(ky))),i};Sr.unstable_cancelCallback=function(i){i.callback=null};Sr.unstable_wrapCallback=function(i){var u=to;return function(){var f=to;to=u;try{return i.apply(this,arguments)}finally{to=f}}};Sr.unstable_getCurrentPriorityLevel=function(){return to};Sr.unstable_shouldYield=function(){var i=Sr.unstable_now();Ih(i);var u=Iu(ds);return u!==_o&&_o!==null&&u!==null&&u.callback!==null&&u.startTime<=i&&u.expirationTime<_o.expirationTime||Sh()};Sr.unstable_requestPaint=vN;Sr.unstable_continueExecution=function(){pc||Oh||(pc=!0,Ea(ky))};Sr.unstable_pauseExecution=function(){};Sr.unstable_getFirstCallbackNode=function(){return Iu(ds)};Sr.unstable_Profiling=null});var Ay=Me((fb,oE)=>{"use strict";oE.exports=iE()});var uE=Me((cb,c2)=>{c2.exports=function i(u){"use strict";var f=ey(),c=lr(),g=Ay();function t(v){for(var m="https://reactjs.org/docs/error-decoder.html?invariant="+v,S=1;Sqo||(v.current=qi[qo],qi[qo]=null,qo--)}function Fr(v,m){qo++,qi[qo]=v.current,v.current=m}var si={},H0={current:si},b0={current:!1},Bt=si;function Lu(v,m){var S=v.type.contextTypes;if(!S)return si;var O=v.stateNode;if(O&&O.__reactInternalMemoizedUnmaskedChildContext===m)return O.__reactInternalMemoizedMaskedChildContext;var M={},b;for(b in S)M[b]=m[b];return O&&(v=v.stateNode,v.__reactInternalMemoizedUnmaskedChildContext=m,v.__reactInternalMemoizedMaskedChildContext=M),M}function c0(v){return v=v.childContextTypes,v!=null}function Ru(v){kr(b0,v),kr(H0,v)}function ks(v){kr(b0,v),kr(H0,v)}function As(v,m,S){if(H0.current!==si)throw Error(t(168));Fr(H0,m,v),Fr(b0,S,v)}function uu(v,m,S){var O=v.stateNode;if(v=m.childContextTypes,typeof O.getChildContext!="function")return S;O=O.getChildContext();for(var M in O)if(!(M in v))throw Error(t(108,Oe(m)||"Unknown",M));return f({},S,{},O)}function wo(v){var m=v.stateNode;return m=m&&m.__reactInternalMemoizedMergedChildContext||si,Bt=H0.current,Fr(H0,m,v),Fr(b0,b0.current,v),!0}function zo(v,m,S){var O=v.stateNode;if(!O)throw Error(t(169));S?(m=uu(v,m,Bt),O.__reactInternalMemoizedMergedChildContext=m,kr(b0,v),kr(H0,v),Fr(H0,m,v)):kr(b0,v),Fr(b0,S,v)}var Os=g.unstable_runWithPriority,Is=g.unstable_scheduleCallback,uf=g.unstable_cancelCallback,_n=g.unstable_shouldYield,Nu=g.unstable_requestPaint,Wo=g.unstable_now,su=g.unstable_getCurrentPriorityLevel,Ps=g.unstable_ImmediatePriority,pl=g.unstable_UserBlockingPriority,Vf=g.unstable_NormalPriority,hl=g.unstable_LowPriority,Bu=g.unstable_IdlePriority,ju={},sf=Nu!==void 0?Nu:function(){},ro=null,Ms=null,ml=!1,Uu=Wo(),G0=1e4>Uu?Wo:function(){return Wo()-Uu};function Fs(){switch(su()){case Ps:return 99;case pl:return 98;case Vf:return 97;case hl:return 96;case Bu:return 95;default:throw Error(t(332))}}function tt(v){switch(v){case 99:return Ps;case 98:return pl;case 97:return Vf;case 96:return hl;case 95:return Bu;default:throw Error(t(332))}}function zi(v,m){return v=tt(v),Os(v,m)}function lu(v,m,S){return v=tt(v),Is(v,m,S)}function Ho(v){return ro===null?(ro=[v],Ms=Is(Ps,vl)):ro.push(v),ju}function O0(){if(Ms!==null){var v=Ms;Ms=null,uf(v)}vl()}function vl(){if(!ml&&ro!==null){ml=!0;var v=0;try{var m=ro;zi(99,function(){for(;v=m&&(ai=!0),v.firstContext=null)}function D0(v,m){if(zu!==v&&m!==!1&&m!==0)if((typeof m!="number"||m===1073741823)&&(zu=v,m=1073741823),m={context:v,observedBits:m,next:null},Wi===null){if(qu===null)throw Error(t(308));Wi=m,qu.dependencies={expirationTime:0,firstContext:m,responders:null}}else Wi=Wi.next=m;return Jt?v._currentValue:v._currentValue2}var Do=!1;function i0(v){return{baseState:v,firstUpdate:null,lastUpdate:null,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null}}function Rs(v){return{baseState:v.baseState,firstUpdate:v.firstUpdate,lastUpdate:v.lastUpdate,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null}}function a0(v,m){return{expirationTime:v,suspenseConfig:m,tag:0,payload:null,callback:null,next:null,nextEffect:null}}function Hu(v,m){v.lastUpdate===null?v.firstUpdate=v.lastUpdate=m:(v.lastUpdate.next=m,v.lastUpdate=m)}function V0(v,m){var S=v.alternate;if(S===null){var O=v.updateQueue,M=null;O===null&&(O=v.updateQueue=i0(v.memoizedState))}else O=v.updateQueue,M=S.updateQueue,O===null?M===null?(O=v.updateQueue=i0(v.memoizedState),M=S.updateQueue=i0(S.memoizedState)):O=v.updateQueue=Rs(M):M===null&&(M=S.updateQueue=Rs(O));M===null||O===M?Hu(O,m):O.lastUpdate===null||M.lastUpdate===null?(Hu(O,m),Hu(M,m)):(Hu(O,m),M.lastUpdate=m)}function bu(v,m){var S=v.updateQueue;S=S===null?v.updateQueue=i0(v.memoizedState):Ns(v,S),S.lastCapturedUpdate===null?S.firstCapturedUpdate=S.lastCapturedUpdate=m:(S.lastCapturedUpdate.next=m,S.lastCapturedUpdate=m)}function Ns(v,m){var S=v.alternate;return S!==null&&m===S.updateQueue&&(m=v.updateQueue=Rs(m)),m}function bo(v,m,S,O,M,b){switch(S.tag){case 1:return v=S.payload,typeof v=="function"?v.call(b,O,M):v;case 3:v.effectTag=v.effectTag&-4097|64;case 0:if(v=S.payload,M=typeof v=="function"?v.call(b,O,M):v,M==null)break;return f({},O,M);case 2:Do=!0}return O}function P0(v,m,S,O,M){Do=!1,m=Ns(v,m);for(var b=m.baseState,ee=null,Ye=0,Ze=m.firstUpdate,ut=b;Ze!==null;){var In=Ze.expirationTime;Inpr?(Hr=mn,mn=null):Hr=mn.sibling;var Vn=jr(Re,mn,ze[pr],Et);if(Vn===null){mn===null&&(mn=Hr);break}v&&mn&&Vn.alternate===null&&m(Re,mn),Ce=b(Vn,Ce,pr),sr===null?on=Vn:sr.sibling=Vn,sr=Vn,mn=Hr}if(pr===ze.length)return S(Re,mn),on;if(mn===null){for(;prpr?(Hr=mn,mn=null):Hr=mn.sibling;var ni=jr(Re,mn,Vn.value,Et);if(ni===null){mn===null&&(mn=Hr);break}v&&mn&&ni.alternate===null&&m(Re,mn),Ce=b(ni,Ce,pr),sr===null?on=ni:sr.sibling=ni,sr=ni,mn=Hr}if(Vn.done)return S(Re,mn),on;if(mn===null){for(;!Vn.done;pr++,Vn=ze.next())Vn=A0(Re,Vn.value,Et),Vn!==null&&(Ce=b(Vn,Ce,pr),sr===null?on=Vn:sr.sibling=Vn,sr=Vn);return on}for(mn=O(Re,mn);!Vn.done;pr++,Vn=ze.next())Vn=gi(mn,Re,pr,Vn.value,Et),Vn!==null&&(v&&Vn.alternate!==null&&mn.delete(Vn.key===null?pr:Vn.key),Ce=b(Vn,Ce,pr),sr===null?on=Vn:sr.sibling=Vn,sr=Vn);return v&&mn.forEach(function(Zf){return m(Re,Zf)}),on}return function(Re,Ce,ze,Et){var on=typeof ze=="object"&&ze!==null&&ze.type===L&&ze.key===null;on&&(ze=ze.props.children);var sr=typeof ze=="object"&&ze!==null;if(sr)switch(ze.$$typeof){case x:e:{for(sr=ze.key,on=Ce;on!==null;){if(on.key===sr)if(on.tag===7?ze.type===L:on.elementType===ze.type){S(Re,on.sibling),Ce=M(on,ze.type===L?ze.props.children:ze.props,Et),Ce.ref=au(Re,on,ze),Ce.return=Re,Re=Ce;break e}else{S(Re,on);break}else m(Re,on);on=on.sibling}ze.type===L?(Ce=mi(ze.props.children,Re.mode,Et,ze.key),Ce.return=Re,Re=Ce):(Et=Hs(ze.type,ze.key,ze.props,null,Re.mode,Et),Et.ref=au(Re,Ce,ze),Et.return=Re,Re=Et)}return ee(Re);case D:e:{for(on=ze.key;Ce!==null;){if(Ce.key===on)if(Ce.tag===4&&Ce.stateNode.containerInfo===ze.containerInfo&&Ce.stateNode.implementation===ze.implementation){S(Re,Ce.sibling),Ce=M(Ce,ze.children||[],Et),Ce.return=Re,Re=Ce;break e}else{S(Re,Ce);break}else m(Re,Ce);Ce=Ce.sibling}Ce=Xf(ze,Re.mode,Et),Ce.return=Re,Re=Ce}return ee(Re)}if(typeof ze=="string"||typeof ze=="number")return ze=""+ze,Ce!==null&&Ce.tag===6?(S(Re,Ce.sibling),Ce=M(Ce,ze,Et),Ce.return=Re,Re=Ce):(S(Re,Ce),Ce=vi(ze,Re.mode,Et),Ce.return=Re,Re=Ce),ee(Re);if(M0(ze))return po(Re,Ce,ze,Et);if(J(ze))return _i(Re,Ce,ze,Et);if(sr&&Lr(Re,ze),typeof ze=="undefined"&&!on)switch(Re.tag){case 1:case 0:throw Re=Re.type,Error(t(152,Re.displayName||Re.name||"Component"))}return S(Re,Ce)}}var R=F(!0),U=F(!1),H={},fe={current:H},ue={current:H},de={current:H};function W(v){if(v===H)throw Error(t(174));return v}function ve(v,m){Fr(de,m,v),Fr(ue,v,v),Fr(fe,H,v),m=Ot(m),kr(fe,v),Fr(fe,m,v)}function Fe(v){kr(fe,v),kr(ue,v),kr(de,v)}function Ge(v){var m=W(de.current),S=W(fe.current);m=Nt(S,v.type,m),S!==m&&(Fr(ue,v,v),Fr(fe,m,v))}function K(v){ue.current===v&&(kr(fe,v),kr(ue,v))}var xe={current:0};function je(v){for(var m=v;m!==null;){if(m.tag===13){var S=m.memoizedState;if(S!==null&&(S=S.dehydrated,S===null||ll(S)||fl(S)))return m}else if(m.tag===19&&m.memoizedProps.revealOrder!==void 0){if((m.effectTag&64)!=0)return m}else if(m.child!==null){m.child.return=m,m=m.child;continue}if(m===v)break;for(;m.sibling===null;){if(m.return===null||m.return===v)return null;m=m.return}m.sibling.return=m.return,m=m.sibling}return null}function Xe(v,m){return{responder:v,props:m}}var rt=C.ReactCurrentDispatcher,st=C.ReactCurrentBatchConfig,xt=0,wt=null,lt=null,Rt=null,yn=null,sn=null,ar=null,rn=0,Hn=null,d0=0,Cr=!1,He=null,Qe=0;function Ne(){throw Error(t(321))}function ft(v,m){if(m===null)return!1;for(var S=0;Srn&&(rn=In,pf(rn))):(Yf(In,Ze.suspenseConfig),b=Ze.eagerReducer===v?Ze.eagerState:v(b,Ze.action)),ee=Ze,Ze=Ze.next}while(Ze!==null&&Ze!==O);ut||(Ye=ee,M=b),Sn(b,m.memoizedState)||(ai=!0),m.memoizedState=b,m.baseUpdate=Ye,m.baseState=M,S.lastRenderedState=b}return[m.memoizedState,S.dispatch]}function ci(v){var m=Cn();return typeof v=="function"&&(v=v()),m.memoizedState=m.baseState=v,v=m.queue={last:null,dispatch:null,lastRenderedReducer:p0,lastRenderedState:v},v=v.dispatch=Us.bind(null,wt,v),[m.memoizedState,v]}function xi(v){return h0(p0,v)}function E0(v,m,S,O){return v={tag:v,create:m,destroy:S,deps:O,next:null},Hn===null?(Hn={lastEffect:null},Hn.lastEffect=v.next=v):(m=Hn.lastEffect,m===null?Hn.lastEffect=v.next=v:(S=m.next,m.next=v,v.next=S,Hn.lastEffect=v)),v}function qr(v,m,S,O){var M=Cn();d0|=v,M.memoizedState=E0(m,S,void 0,O===void 0?null:O)}function Eo(v,m,S,O){var M=bn();O=O===void 0?null:O;var b=void 0;if(lt!==null){var ee=lt.memoizedState;if(b=ee.destroy,O!==null&&ft(O,ee.deps)){E0(0,S,b,O);return}}d0|=v,M.memoizedState=E0(m,S,b,O)}function So(v,m){return qr(516,192,v,m)}function wl(v,m){return Eo(516,192,v,m)}function js(v,m){if(typeof m=="function")return v=v(),m(v),function(){m(null)};if(m!=null)return v=v(),m.current=v,function(){m.current=null}}function Dl(){}function du(v,m){return Cn().memoizedState=[v,m===void 0?null:m],v}function Yu(v,m){var S=bn();m=m===void 0?null:m;var O=S.memoizedState;return O!==null&&m!==null&&ft(m,O[1])?O[0]:(S.memoizedState=[v,m],v)}function Us(v,m,S){if(!(25>Qe))throw Error(t(301));var O=v.alternate;if(v===wt||O!==null&&O===wt)if(Cr=!0,v={expirationTime:xt,suspenseConfig:null,action:S,eagerReducer:null,eagerState:null,next:null},He===null&&(He=new Map),S=He.get(m),S===void 0)He.set(m,v);else{for(m=S;m.next!==null;)m=m.next;m.next=v}else{var M=g0(),b=nr.suspense;M=Kr(M,v,b),b={expirationTime:M,suspenseConfig:b,action:S,eagerReducer:null,eagerState:null,next:null};var ee=m.last;if(ee===null)b.next=b;else{var Ye=ee.next;Ye!==null&&(b.next=Ye),ee.next=b}if(m.last=b,v.expirationTime===0&&(O===null||O.expirationTime===0)&&(O=m.lastRenderedReducer,O!==null))try{var Ze=m.lastRenderedState,ut=O(Ze,S);if(b.eagerReducer=O,b.eagerState=ut,Sn(ut,Ze))return}catch(In){}finally{}_0(v,M)}}var oo={readContext:D0,useCallback:Ne,useContext:Ne,useEffect:Ne,useImperativeHandle:Ne,useLayoutEffect:Ne,useMemo:Ne,useReducer:Ne,useRef:Ne,useState:Ne,useDebugValue:Ne,useResponder:Ne,useDeferredValue:Ne,useTransition:Ne},Hi={readContext:D0,useCallback:du,useContext:D0,useEffect:So,useImperativeHandle:function(v,m,S){return S=S!=null?S.concat([v]):null,qr(4,36,js.bind(null,m,v),S)},useLayoutEffect:function(v,m){return qr(4,36,v,m)},useMemo:function(v,m){var S=Cn();return m=m===void 0?null:m,v=v(),S.memoizedState=[v,m],v},useReducer:function(v,m,S){var O=Cn();return m=S!==void 0?S(m):m,O.memoizedState=O.baseState=m,v=O.queue={last:null,dispatch:null,lastRenderedReducer:v,lastRenderedState:m},v=v.dispatch=Us.bind(null,wt,v),[O.memoizedState,v]},useRef:function(v){var m=Cn();return v={current:v},m.memoizedState=v},useState:ci,useDebugValue:Dl,useResponder:Xe,useDeferredValue:function(v,m){var S=ci(v),O=S[0],M=S[1];return So(function(){g.unstable_next(function(){var b=st.suspense;st.suspense=m===void 0?null:m;try{M(v)}finally{st.suspense=b}})},[v,m]),O},useTransition:function(v){var m=ci(!1),S=m[0],O=m[1];return[du(function(M){O(!0),g.unstable_next(function(){var b=st.suspense;st.suspense=v===void 0?null:v;try{O(!1),M()}finally{st.suspense=b}})},[v,S]),S]}},qs={readContext:D0,useCallback:Yu,useContext:D0,useEffect:wl,useImperativeHandle:function(v,m,S){return S=S!=null?S.concat([v]):null,Eo(4,36,js.bind(null,m,v),S)},useLayoutEffect:function(v,m){return Eo(4,36,v,m)},useMemo:function(v,m){var S=bn();m=m===void 0?null:m;var O=S.memoizedState;return O!==null&&m!==null&&ft(m,O[1])?O[0]:(v=v(),S.memoizedState=[v,m],v)},useReducer:h0,useRef:function(){return bn().memoizedState},useState:xi,useDebugValue:Dl,useResponder:Xe,useDeferredValue:function(v,m){var S=xi(v),O=S[0],M=S[1];return wl(function(){g.unstable_next(function(){var b=st.suspense;st.suspense=m===void 0?null:m;try{M(v)}finally{st.suspense=b}})},[v,m]),O},useTransition:function(v){var m=xi(!1),S=m[0],O=m[1];return[Yu(function(M){O(!0),g.unstable_next(function(){var b=st.suspense;st.suspense=v===void 0?null:v;try{O(!1),M()}finally{st.suspense=b}})},[v,S]),S]}},F0=null,Gr=null,ir=!1;function L0(v,m){var S=xo(5,null,null,0);S.elementType="DELETED",S.type="DELETED",S.stateNode=m,S.return=v,S.effectTag=8,v.lastEffect!==null?(v.lastEffect.nextEffect=S,v.lastEffect=S):v.firstEffect=v.lastEffect=S}function Y0(v,m){switch(v.tag){case 5:return m=Ti(m,v.type,v.pendingProps),m!==null?(v.stateNode=m,!0):!1;case 6:return m=Fu(m,v.pendingProps),m!==null?(v.stateNode=m,!0):!1;case 13:return!1;default:return!1}}function Co(v){if(ir){var m=Gr;if(m){var S=m;if(!Y0(v,m)){if(m=cl(S),!m||!Y0(v,m)){v.effectTag=v.effectTag&-1025|2,ir=!1,F0=v;return}L0(F0,S)}F0=v,Gr=al(m)}else v.effectTag=v.effectTag&-1025|2,ir=!1,F0=v}}function $u(v){for(v=v.return;v!==null&&v.tag!==5&&v.tag!==3&&v.tag!==13;)v=v.return;F0=v}function Vo(v){if(!w||v!==F0)return!1;if(!ir)return $u(v),ir=!0,!1;var m=v.type;if(v.tag!==5||m!=="head"&&m!=="body"&&!at(m,v.memoizedProps))for(m=Gr;m;)L0(v,m),m=cl(m);if($u(v),v.tag===13){if(!w)throw Error(t(316));if(v=v.memoizedState,v=v!==null?v.dehydrated:null,!v)throw Error(t(317));Gr=Ac(v)}else Gr=F0?cl(v.stateNode):null;return!0}function Rr(){w&&(Gr=F0=null,ir=!1)}var Jn=C.ReactCurrentOwner,ai=!1;function o0(v,m,S,O){m.child=v===null?U(m,null,S,O):R(m,v.child,S,O)}function Vr(v,m,S,O,M){S=S.render;var b=m.ref;return io(m,M),O=St(v,m,S,O,b,M),v!==null&&!ai?(m.updateQueue=v.updateQueue,m.effectTag&=-517,v.expirationTime<=M&&(v.expirationTime=0),X0(v,m,M)):(m.effectTag|=1,o0(v,m,O,M),m.child)}function ff(v,m,S,O,M,b){if(v===null){var ee=S.type;return typeof ee=="function"&&!mf(ee)&&ee.defaultProps===void 0&&S.compare===null&&S.defaultProps===void 0?(m.tag=15,m.type=ee,cf(v,m,ee,O,M,b)):(v=Hs(S.type,null,O,null,m.mode,b),v.ref=m.ref,v.return=m,m.child=v)}return ee=v.child,Mm)&&Qn.set(v,m)))}}function Gi(v,m){v.expirationTimev?m:v)}function x0(v){if(v.lastExpiredTime!==0)v.callbackExpirationTime=1073741823,v.callbackPriority=99,v.callbackNode=Ho(Z0.bind(null,v));else{var m=fo(v),S=v.callbackNode;if(m===0)S!==null&&(v.callbackNode=null,v.callbackExpirationTime=0,v.callbackPriority=90);else{var O=g0();if(m===1073741823?O=99:m===1||m===2?O=95:(O=10*(1073741821-m)-10*(1073741821-O),O=0>=O?99:250>=O?98:5250>=O?97:95),S!==null){var M=v.callbackPriority;if(v.callbackExpirationTime===m&&M>=O)return;S!==ju&&uf(S)}v.callbackExpirationTime=m,v.callbackPriority=O,m=m===1073741823?Ho(Z0.bind(null,v)):lu(O,Xu.bind(null,v),{timeout:10*(1073741821-m)-G0()}),v.callbackNode=m}}}function Xu(v,m){if(t0=0,m)return m=g0(),kl(v,m),x0(v),null;var S=fo(v);if(S!==0){if(m=v.callbackNode,(Kt&(Br|zr))!==Fn)throw Error(t(327));if(Ws(),v===X&&S===ye||mu(v,S),Y!==null){var O=Kt;Kt|=Br;var M=ei(v);do try{Ua();break}catch(Ye){Ju(v,Ye)}while(1);if(Wu(),Kt=O,B0.current=M,he===wr)throw m=We,mu(v,S),ao(v,S),x0(v),m;if(Y===null)switch(M=v.finishedWork=v.current.alternate,v.finishedExpirationTime=S,O=he,X=null,O){case lo:case wr:throw Error(t(345));case kn:kl(v,2=S){v.lastPingedTime=S,mu(v,S);break}}if(b=fo(v),b!==0&&b!==S)break;if(O!==0&&O!==S){v.lastPingedTime=O;break}v.timeoutHandle=jt(gu.bind(null,v),M);break}gu(v);break;case hi:if(ao(v,S),O=v.lastSuspendedTime,S===O&&(v.nextKnownPendingLevel=$f(M)),qt&&(M=v.lastPingedTime,M===0||M>=S)){v.lastPingedTime=S,mu(v,S);break}if(M=fo(v),M!==0&&M!==S)break;if(O!==0&&O!==S){v.lastPingedTime=O;break}if(Dt!==1073741823?O=10*(1073741821-Dt)-G0():et===1073741823?O=0:(O=10*(1073741821-et)-5e3,M=G0(),S=10*(1073741821-S)-M,O=M-O,0>O&&(O=0),O=(120>O?120:480>O?480:1080>O?1080:1920>O?1920:3e3>O?3e3:4320>O?4320:1960*Cl(O/1960))-O,S=O?O=0:(M=ee.busyDelayMs|0,b=G0()-(10*(1073741821-b)-(ee.timeoutMs|0||5e3)),O=b<=M?0:M+O-b),10 component higher in the tree to provide a loading indicator or placeholder to display.`+dl(M))}he!==Ai&&(he=kn),b=zs(b,M),Ze=O;do{switch(Ze.tag){case 3:ee=b,Ze.effectTag|=4096,Ze.expirationTime=m;var Ce=pu(Ze,ee,m);bu(Ze,Ce);break e;case 1:ee=b;var ze=Ze.type,Et=Ze.stateNode;if((Ze.effectTag&64)==0&&(typeof ze.getDerivedStateFromError=="function"||Et!==null&&typeof Et.componentDidCatch=="function"&&(Ar===null||!Ar.has(Et)))){Ze.effectTag|=4096,Ze.expirationTime=m;var on=Sl(Ze,ee,m);bu(Ze,on);break e}}Ze=Ze.return}while(Ze!==null)}Y=vu(Y)}catch(sr){m=sr;continue}break}while(1)}function ei(){var v=B0.current;return B0.current=oo,v===null?oo:v}function Yf(v,m){vZt&&(Zt=v)}function ja(){for(;Y!==null;)Y=Ic(Y)}function Ua(){for(;Y!==null&&!_n();)Y=Ic(Y)}function Ic(v){var m=Lc(v.alternate,v,ye);return v.memoizedProps=v.pendingProps,m===null&&(m=vu(v)),hu.current=null,m}function vu(v){Y=v;do{var m=Y.alternate;if(v=Y.return,(Y.effectTag&2048)==0){e:{var S=m;m=Y;var O=ye,M=m.pendingProps;switch(m.tag){case 2:break;case 16:break;case 15:case 0:break;case 1:c0(m.type)&&Ru(m);break;case 3:Fe(m),ks(m),M=m.stateNode,M.pendingContext&&(M.context=M.pendingContext,M.pendingContext=null),(S===null||S.child===null)&&Vo(m)&&ki(m),$r(m);break;case 5:K(m);var b=W(de.current);if(O=m.type,S!==null&&m.stateNode!=null)m0(S,m,O,M,b),S.ref!==m.ref&&(m.effectTag|=128);else if(M){if(S=W(fe.current),Vo(m)){if(M=m,!w)throw Error(t(175));S=Ui(M.stateNode,M.type,M.memoizedProps,b,S,M),M.updateQueue=S,S=S!==null,S&&ki(m)}else{var ee=ne(O,M,b,S,m);Yr(ee,m,!1,!1),m.stateNode=ee,Z(ee,O,M,b,S)&&ki(m)}m.ref!==null&&(m.effectTag|=128)}else if(m.stateNode===null)throw Error(t(166));break;case 6:if(S&&m.stateNode!=null)Tn(S,m,S.memoizedProps,M);else{if(typeof M!="string"&&m.stateNode===null)throw Error(t(166));if(S=W(de.current),b=W(fe.current),Vo(m)){if(S=m,!w)throw Error(t(176));(S=Mr(S.stateNode,S.memoizedProps,S))&&ki(m)}else m.stateNode=Ft(M,S,b,m)}break;case 11:break;case 13:if(kr(xe,m),M=m.memoizedState,(m.effectTag&64)!=0){m.expirationTime=O;break e}M=M!==null,b=!1,S===null?m.memoizedProps.fallback!==void 0&&Vo(m):(O=S.memoizedState,b=O!==null,M||O===null||(O=S.child.sibling,O!==null&&(ee=m.firstEffect,ee!==null?(m.firstEffect=O,O.nextEffect=ee):(m.firstEffect=m.lastEffect=O,O.nextEffect=null),O.effectTag=8))),M&&!b&&(m.mode&2)!=0&&(S===null&&m.memoizedProps.unstable_avoidThisFallback!==!0||(xe.current&1)!=0?he===lo&&(he=T0):((he===lo||he===T0)&&(he=hi),Zt!==0&&X!==null&&(ao(X,ye),$o(X,Zt)))),cr&&M&&(m.effectTag|=4),Yt&&(M||b)&&(m.effectTag|=4);break;case 7:break;case 8:break;case 12:break;case 4:Fe(m),$r(m);break;case 10:fi(m);break;case 9:break;case 14:break;case 17:c0(m.type)&&Ru(m);break;case 19:if(kr(xe,m),M=m.memoizedState,M===null)break;if(b=(m.effectTag&64)!=0,ee=M.rendering,ee===null){if(b)bi(M,!1);else if(he!==lo||S!==null&&(S.effectTag&64)!=0)for(S=m.child;S!==null;){if(ee=je(S),ee!==null){for(m.effectTag|=64,bi(M,!1),S=ee.updateQueue,S!==null&&(m.updateQueue=S,m.effectTag|=4),M.lastEffect===null&&(m.firstEffect=null),m.lastEffect=M.lastEffect,S=O,M=m.child;M!==null;)b=M,O=S,b.effectTag&=2,b.nextEffect=null,b.firstEffect=null,b.lastEffect=null,ee=b.alternate,ee===null?(b.childExpirationTime=0,b.expirationTime=O,b.child=null,b.memoizedProps=null,b.memoizedState=null,b.updateQueue=null,b.dependencies=null):(b.childExpirationTime=ee.childExpirationTime,b.expirationTime=ee.expirationTime,b.child=ee.child,b.memoizedProps=ee.memoizedProps,b.memoizedState=ee.memoizedState,b.updateQueue=ee.updateQueue,O=ee.dependencies,b.dependencies=O===null?null:{expirationTime:O.expirationTime,firstContext:O.firstContext,responders:O.responders}),M=M.sibling;Fr(xe,xe.current&1|2,m),m=m.child;break e}S=S.sibling}}else{if(!b)if(S=je(ee),S!==null){if(m.effectTag|=64,b=!0,S=S.updateQueue,S!==null&&(m.updateQueue=S,m.effectTag|=4),bi(M,!0),M.tail===null&&M.tailMode==="hidden"&&!ee.alternate){m=m.lastEffect=M.lastEffect,m!==null&&(m.nextEffect=null);break}}else G0()>M.tailExpiration&&1M&&(M=O),ee>M&&(M=ee),b=b.sibling;S.childExpirationTime=M}if(m!==null)return m;v!==null&&(v.effectTag&2048)==0&&(v.firstEffect===null&&(v.firstEffect=Y.firstEffect),Y.lastEffect!==null&&(v.lastEffect!==null&&(v.lastEffect.nextEffect=Y.firstEffect),v.lastEffect=Y.lastEffect),1v?m:v}function gu(v){var m=Fs();return zi(99,co.bind(null,v,m)),null}function co(v,m){do Ws();while(dr!==null);if((Kt&(Br|zr))!==Fn)throw Error(t(327));var S=v.finishedWork,O=v.finishedExpirationTime;if(S===null)return null;if(v.finishedWork=null,v.finishedExpirationTime=0,S===v.current)throw Error(t(177));v.callbackNode=null,v.callbackExpirationTime=0,v.callbackPriority=90,v.nextKnownPendingLevel=0;var M=$f(S);if(v.firstPendingTime=M,O<=v.lastSuspendedTime?v.firstSuspendedTime=v.lastSuspendedTime=v.nextKnownPendingLevel=0:O<=v.firstSuspendedTime&&(v.firstSuspendedTime=O-1),O<=v.lastPingedTime&&(v.lastPingedTime=0),O<=v.lastExpiredTime&&(v.lastExpiredTime=0),v===X&&(Y=X=null,ye=0),1=S?mt(v,m,S):(Fr(xe,xe.current&1,m),m=X0(v,m,S),m!==null?m.sibling:null);Fr(xe,xe.current&1,m);break;case 19:if(O=m.childExpirationTime>=S,(v.effectTag&64)!=0){if(O)return $t(v,m,S);m.effectTag|=64}if(M=m.memoizedState,M!==null&&(M.rendering=null,M.tail=null),Fr(xe,xe.current,m),!O)return null}return X0(v,m,S)}ai=!1}}else ai=!1;switch(m.expirationTime=0,m.tag){case 2:if(O=m.type,v!==null&&(v.alternate=null,m.alternate=null,m.effectTag|=2),v=m.pendingProps,M=Lu(m,H0.current),io(m,S),M=St(null,m,O,v,M,S),m.effectTag|=1,typeof M=="object"&&M!==null&&typeof M.render=="function"&&M.$$typeof===void 0){if(m.tag=1,Qt(),c0(O)){var b=!0;wo(m)}else b=!1;m.memoizedState=M.state!==null&&M.state!==void 0?M.state:null;var ee=O.getDerivedStateFromProps;typeof ee=="function"&&Go(m,O,ee,v),M.updater=Gu,m.stateNode=M,M._reactInternalFiber=m,Vu(m,O,v,S),m=Be(null,m,O,!0,b,S)}else m.tag=0,o0(null,m,M,S),m=m.child;return m;case 16:if(M=m.elementType,v!==null&&(v.alternate=null,m.alternate=null,m.effectTag|=2),v=m.pendingProps,Te(M),M._status!==1)throw M._result;switch(M=M._result,m.type=M,b=m.tag=Wa(M),v=I0(M,v),b){case 0:m=K0(null,m,M,v,S);break;case 1:m=ae(null,m,M,v,S);break;case 11:m=Vr(null,m,M,v,S);break;case 14:m=ff(null,m,M,I0(M.type,v),O,S);break;default:throw Error(t(306,M,""))}return m;case 0:return O=m.type,M=m.pendingProps,M=m.elementType===O?M:I0(O,M),K0(v,m,O,M,S);case 1:return O=m.type,M=m.pendingProps,M=m.elementType===O?M:I0(O,M),ae(v,m,O,M,S);case 3:if(Ie(m),O=m.updateQueue,O===null)throw Error(t(282));if(M=m.memoizedState,M=M!==null?M.element:null,P0(m,O,m.pendingProps,null,S),O=m.memoizedState.element,O===M)Rr(),m=X0(v,m,S);else{if((M=m.stateNode.hydrate)&&(w?(Gr=al(m.stateNode.containerInfo),F0=m,M=ir=!0):M=!1),M)for(S=U(m,null,O,S),m.child=S;S;)S.effectTag=S.effectTag&-3|1024,S=S.sibling;else o0(v,m,O,S),Rr();m=m.child}return m;case 5:return Ge(m),v===null&&Co(m),O=m.type,M=m.pendingProps,b=v!==null?v.memoizedProps:null,ee=M.children,at(O,M)?ee=null:b!==null&&at(O,b)&&(m.effectTag|=16),$0(v,m),m.mode&4&&S!==1&&it(O,M)?(m.expirationTime=m.childExpirationTime=1,m=null):(o0(v,m,ee,S),m=m.child),m;case 6:return v===null&&Co(m),null;case 13:return mt(v,m,S);case 4:return ve(m,m.stateNode.containerInfo),O=m.pendingProps,v===null?m.child=R(m,null,O,S):o0(v,m,O,S),m.child;case 11:return O=m.type,M=m.pendingProps,M=m.elementType===O?M:I0(O,M),Vr(v,m,O,M,S);case 7:return o0(v,m,m.pendingProps,S),m.child;case 8:return o0(v,m,m.pendingProps.children,S),m.child;case 12:return o0(v,m,m.pendingProps.children,S),m.child;case 10:e:{if(O=m.type._context,M=m.pendingProps,ee=m.memoizedProps,b=M.value,Ls(m,b),ee!==null){var Ye=ee.value;if(b=Sn(Ye,b)?0:(typeof O._calculateChangedBits=="function"?O._calculateChangedBits(Ye,b):1073741823)|0,b===0){if(ee.children===M.children&&!b0.current){m=X0(v,m,S);break e}}else for(Ye=m.child,Ye!==null&&(Ye.return=m);Ye!==null;){var Ze=Ye.dependencies;if(Ze!==null){ee=Ye.child;for(var ut=Ze.firstContext;ut!==null;){if(ut.context===O&&(ut.observedBits&b)!=0){Ye.tag===1&&(ut=a0(S,null),ut.tag=2,V0(Ye,ut)),Ye.expirationTime=m&&v<=m}function ao(v,m){var S=v.firstSuspendedTime,O=v.lastSuspendedTime;Sm||S===0)&&(v.lastSuspendedTime=m),m<=v.lastPingedTime&&(v.lastPingedTime=0),m<=v.lastExpiredTime&&(v.lastExpiredTime=0)}function $o(v,m){m>v.firstPendingTime&&(v.firstPendingTime=m);var S=v.firstSuspendedTime;S!==0&&(m>=S?v.firstSuspendedTime=v.lastSuspendedTime=v.nextKnownPendingLevel=0:m>=v.lastSuspendedTime&&(v.lastSuspendedTime=m+1),m>v.nextKnownPendingLevel&&(v.nextKnownPendingLevel=m))}function kl(v,m){var S=v.lastExpiredTime;(S===0||S>m)&&(v.lastExpiredTime=m)}function Nc(v){var m=v._reactInternalFiber;if(m===void 0)throw typeof v.render=="function"?Error(t(188)):Error(t(268,Object.keys(v)));return v=Ue(m),v===null?null:v.stateNode}function Al(v,m){v=v.memoizedState,v!==null&&v.dehydrated!==null&&v.retryTime{"use strict";sE.exports=uE()});var cE=Me((db,fE)=>{"use strict";var gN={ALIGN_COUNT:8,ALIGN_AUTO:0,ALIGN_FLEX_START:1,ALIGN_CENTER:2,ALIGN_FLEX_END:3,ALIGN_STRETCH:4,ALIGN_BASELINE:5,ALIGN_SPACE_BETWEEN:6,ALIGN_SPACE_AROUND:7,DIMENSION_COUNT:2,DIMENSION_WIDTH:0,DIMENSION_HEIGHT:1,DIRECTION_COUNT:3,DIRECTION_INHERIT:0,DIRECTION_LTR:1,DIRECTION_RTL:2,DISPLAY_COUNT:2,DISPLAY_FLEX:0,DISPLAY_NONE:1,EDGE_COUNT:9,EDGE_LEFT:0,EDGE_TOP:1,EDGE_RIGHT:2,EDGE_BOTTOM:3,EDGE_START:4,EDGE_END:5,EDGE_HORIZONTAL:6,EDGE_VERTICAL:7,EDGE_ALL:8,EXPERIMENTAL_FEATURE_COUNT:1,EXPERIMENTAL_FEATURE_WEB_FLEX_BASIS:0,FLEX_DIRECTION_COUNT:4,FLEX_DIRECTION_COLUMN:0,FLEX_DIRECTION_COLUMN_REVERSE:1,FLEX_DIRECTION_ROW:2,FLEX_DIRECTION_ROW_REVERSE:3,JUSTIFY_COUNT:6,JUSTIFY_FLEX_START:0,JUSTIFY_CENTER:1,JUSTIFY_FLEX_END:2,JUSTIFY_SPACE_BETWEEN:3,JUSTIFY_SPACE_AROUND:4,JUSTIFY_SPACE_EVENLY:5,LOG_LEVEL_COUNT:6,LOG_LEVEL_ERROR:0,LOG_LEVEL_WARN:1,LOG_LEVEL_INFO:2,LOG_LEVEL_DEBUG:3,LOG_LEVEL_VERBOSE:4,LOG_LEVEL_FATAL:5,MEASURE_MODE_COUNT:3,MEASURE_MODE_UNDEFINED:0,MEASURE_MODE_EXACTLY:1,MEASURE_MODE_AT_MOST:2,NODE_TYPE_COUNT:2,NODE_TYPE_DEFAULT:0,NODE_TYPE_TEXT:1,OVERFLOW_COUNT:3,OVERFLOW_VISIBLE:0,OVERFLOW_HIDDEN:1,OVERFLOW_SCROLL:2,POSITION_TYPE_COUNT:2,POSITION_TYPE_RELATIVE:0,POSITION_TYPE_ABSOLUTE:1,PRINT_OPTIONS_COUNT:3,PRINT_OPTIONS_LAYOUT:1,PRINT_OPTIONS_STYLE:2,PRINT_OPTIONS_CHILDREN:4,UNIT_COUNT:4,UNIT_UNDEFINED:0,UNIT_POINT:1,UNIT_PERCENT:2,UNIT_AUTO:3,WRAP_COUNT:3,WRAP_NO_WRAP:0,WRAP_WRAP:1,WRAP_WRAP_REVERSE:2};fE.exports=gN});var hE=Me((pb,aE)=>{"use strict";var _N=Object.assign||function(i){for(var u=1;u"}}]),i}(),dE=function(){Ph(i,null,[{key:"fromJS",value:function(f){var c=f.width,g=f.height;return new i(c,g)}}]);function i(u,f){Iy(this,i),this.width=u,this.height=f}return Ph(i,[{key:"fromJS",value:function(f){f(this.width,this.height)}},{key:"toString",value:function(){return""}}]),i}(),pE=function(){function i(u,f){Iy(this,i),this.unit=u,this.value=f}return Ph(i,[{key:"fromJS",value:function(f){f(this.unit,this.value)}},{key:"toString",value:function(){switch(this.unit){case ps.UNIT_POINT:return String(this.value);case ps.UNIT_PERCENT:return this.value+"%";case ps.UNIT_AUTO:return"auto";default:return this.value+"?"}}},{key:"valueOf",value:function(){return this.value}}]),i}();aE.exports=function(i,u){function f(C,A,x){var D=C[A];C[A]=function(){for(var L=arguments.length,N=Array(L),j=0;j1?N-1:0),$=1;$1&&arguments[1]!==void 0?arguments[1]:NaN,x=arguments.length>2&&arguments[2]!==void 0?arguments[2]:NaN,D=arguments.length>3&&arguments[3]!==void 0?arguments[3]:ps.DIRECTION_LTR;return C.call(this,A,x,D)}),_N({Config:u.Config,Node:u.Node,Layout:i("Layout",yN),Size:i("Size",dE),Value:i("Value",pE),getInstanceCount:function(){return u.getInstanceCount.apply(u,arguments)}},ps)}});var mE=Me((exports,module)=>{(function(i,u){typeof define=="function"&&define.amd?define([],function(){return u}):typeof module=="object"&&module.exports?module.exports=u:(i.nbind=i.nbind||{}).init=u})(exports,function(Module,cb){typeof Module=="function"&&(cb=Module,Module={}),Module.onRuntimeInitialized=function(i,u){return function(){i&&i.apply(this,arguments);try{Module.ccall("nbind_init")}catch(f){u(f);return}u(null,{bind:Module._nbind_value,reflect:Module.NBind.reflect,queryType:Module.NBind.queryType,toggleLightGC:Module.toggleLightGC,lib:Module})}}(Module.onRuntimeInitialized,cb);var Module;Module||(Module=(typeof Module!="undefined"?Module:null)||{});var moduleOverrides={};for(var key in Module)Module.hasOwnProperty(key)&&(moduleOverrides[key]=Module[key]);var ENVIRONMENT_IS_WEB=!1,ENVIRONMENT_IS_WORKER=!1,ENVIRONMENT_IS_NODE=!1,ENVIRONMENT_IS_SHELL=!1;if(Module.ENVIRONMENT)if(Module.ENVIRONMENT==="WEB")ENVIRONMENT_IS_WEB=!0;else if(Module.ENVIRONMENT==="WORKER")ENVIRONMENT_IS_WORKER=!0;else if(Module.ENVIRONMENT==="NODE")ENVIRONMENT_IS_NODE=!0;else if(Module.ENVIRONMENT==="SHELL")ENVIRONMENT_IS_SHELL=!0;else throw new Error("The provided Module['ENVIRONMENT'] value is not valid. It must be one of: WEB|WORKER|NODE|SHELL.");else ENVIRONMENT_IS_WEB=typeof window=="object",ENVIRONMENT_IS_WORKER=typeof importScripts=="function",ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof require=="function"&&!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER,ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;if(ENVIRONMENT_IS_NODE){Module.print||(Module.print=console.log),Module.printErr||(Module.printErr=console.warn);var nodeFS,nodePath;Module.read=function(u,f){nodeFS||(nodeFS={}("")),nodePath||(nodePath={}("")),u=nodePath.normalize(u);var c=nodeFS.readFileSync(u);return f?c:c.toString()},Module.readBinary=function(u){var f=Module.read(u,!0);return f.buffer||(f=new Uint8Array(f)),assert(f.buffer),f},Module.load=function(u){globalEval(read(u))},Module.thisProgram||(process.argv.length>1?Module.thisProgram=process.argv[1].replace(/\\/g,"/"):Module.thisProgram="unknown-program"),Module.arguments=process.argv.slice(2),typeof module!="undefined"&&(module.exports=Module),Module.inspect=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_SHELL)Module.print||(Module.print=print),typeof printErr!="undefined"&&(Module.printErr=printErr),typeof read!="undefined"?Module.read=read:Module.read=function(){throw"no read() available"},Module.readBinary=function(u){if(typeof readbuffer=="function")return new Uint8Array(readbuffer(u));var f=read(u,"binary");return assert(typeof f=="object"),f},typeof scriptArgs!="undefined"?Module.arguments=scriptArgs:typeof arguments!="undefined"&&(Module.arguments=arguments),typeof quit=="function"&&(Module.quit=function(i,u){quit(i)});else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(Module.read=function(u){var f=new XMLHttpRequest;return f.open("GET",u,!1),f.send(null),f.responseText},ENVIRONMENT_IS_WORKER&&(Module.readBinary=function(u){var f=new XMLHttpRequest;return f.open("GET",u,!1),f.responseType="arraybuffer",f.send(null),new Uint8Array(f.response)}),Module.readAsync=function(u,f,c){var g=new XMLHttpRequest;g.open("GET",u,!0),g.responseType="arraybuffer",g.onload=function(){g.status==200||g.status==0&&g.response?f(g.response):c()},g.onerror=c,g.send(null)},typeof arguments!="undefined"&&(Module.arguments=arguments),typeof console!="undefined")Module.print||(Module.print=function(u){console.log(u)}),Module.printErr||(Module.printErr=function(u){console.warn(u)});else{var TRY_USE_DUMP=!1;Module.print||(Module.print=TRY_USE_DUMP&&typeof dump!="undefined"?function(i){dump(i)}:function(i){})}ENVIRONMENT_IS_WORKER&&(Module.load=importScripts),typeof Module.setWindowTitle=="undefined"&&(Module.setWindowTitle=function(i){document.title=i})}else throw"Unknown runtime environment. Where are we?";function globalEval(i){eval.call(null,i)}!Module.load&&Module.read&&(Module.load=function(u){globalEval(Module.read(u))}),Module.print||(Module.print=function(){}),Module.printErr||(Module.printErr=Module.print),Module.arguments||(Module.arguments=[]),Module.thisProgram||(Module.thisProgram="./this.program"),Module.quit||(Module.quit=function(i,u){throw u}),Module.print=Module.print,Module.printErr=Module.printErr,Module.preRun=[],Module.postRun=[];for(var key in moduleOverrides)moduleOverrides.hasOwnProperty(key)&&(Module[key]=moduleOverrides[key]);moduleOverrides=void 0;var Runtime={setTempRet0:function(i){return tempRet0=i,i},getTempRet0:function(){return tempRet0},stackSave:function(){return STACKTOP},stackRestore:function(i){STACKTOP=i},getNativeTypeSize:function(i){switch(i){case"i1":case"i8":return 1;case"i16":return 2;case"i32":return 4;case"i64":return 8;case"float":return 4;case"double":return 8;default:{if(i[i.length-1]==="*")return Runtime.QUANTUM_SIZE;if(i[0]==="i"){var u=parseInt(i.substr(1));return assert(u%8==0),u/8}else return 0}}},getNativeFieldSize:function(i){return Math.max(Runtime.getNativeTypeSize(i),Runtime.QUANTUM_SIZE)},STACK_ALIGN:16,prepVararg:function(i,u){return u==="double"||u==="i64"?i&7&&(assert((i&7)==4),i+=4):assert((i&3)==0),i},getAlignSize:function(i,u,f){return!f&&(i=="i64"||i=="double")?8:i?Math.min(u||(i?Runtime.getNativeFieldSize(i):0),Runtime.QUANTUM_SIZE):Math.min(u,8)},dynCall:function(i,u,f){return f&&f.length?Module["dynCall_"+i].apply(null,[u].concat(f)):Module["dynCall_"+i].call(null,u)},functionPointers:[],addFunction:function(i){for(var u=0;u>2],f=(u+i+15|0)&-16;if(HEAP32[DYNAMICTOP_PTR>>2]=f,f>=TOTAL_MEMORY){var c=enlargeMemory();if(!c)return HEAP32[DYNAMICTOP_PTR>>2]=u,0}return u},alignMemory:function(i,u){var f=i=Math.ceil(i/(u||16))*(u||16);return f},makeBigInt:function(i,u,f){var c=f?+(i>>>0)+ +(u>>>0)*4294967296:+(i>>>0)+ +(u|0)*4294967296;return c},GLOBAL_BASE:8,QUANTUM_SIZE:4,__dummy__:0};Module.Runtime=Runtime;var ABORT=0,EXITSTATUS=0;function assert(i,u){i||abort("Assertion failed: "+u)}function getCFunc(ident){var func=Module["_"+ident];if(!func)try{func=eval("_"+ident)}catch(i){}return assert(func,"Cannot call unknown function "+ident+" (perhaps LLVM optimizations or closure removed it?)"),func}var cwrap,ccall;(function(){var JSfuncs={stackSave:function(){Runtime.stackSave()},stackRestore:function(){Runtime.stackRestore()},arrayToC:function(i){var u=Runtime.stackAlloc(i.length);return writeArrayToMemory(i,u),u},stringToC:function(i){var u=0;if(i!=null&&i!==0){var f=(i.length<<2)+1;u=Runtime.stackAlloc(f),stringToUTF8(i,u,f)}return u}},toC={string:JSfuncs.stringToC,array:JSfuncs.arrayToC};ccall=function(u,f,c,g,t){var C=getCFunc(u),A=[],x=0;if(g)for(var D=0;D>0]=u;break;case"i8":HEAP8[i>>0]=u;break;case"i16":HEAP16[i>>1]=u;break;case"i32":HEAP32[i>>2]=u;break;case"i64":tempI64=[u>>>0,(tempDouble=u,+Math_abs(tempDouble)>=1?tempDouble>0?(Math_min(+Math_floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[i>>2]=tempI64[0],HEAP32[i+4>>2]=tempI64[1];break;case"float":HEAPF32[i>>2]=u;break;case"double":HEAPF64[i>>3]=u;break;default:abort("invalid type for setValue: "+f)}}Module.setValue=setValue;function getValue(i,u,f){switch(u=u||"i8",u.charAt(u.length-1)==="*"&&(u="i32"),u){case"i1":return HEAP8[i>>0];case"i8":return HEAP8[i>>0];case"i16":return HEAP16[i>>1];case"i32":return HEAP32[i>>2];case"i64":return HEAP32[i>>2];case"float":return HEAPF32[i>>2];case"double":return HEAPF64[i>>3];default:abort("invalid type for setValue: "+u)}return null}Module.getValue=getValue;var ALLOC_NORMAL=0,ALLOC_STACK=1,ALLOC_STATIC=2,ALLOC_DYNAMIC=3,ALLOC_NONE=4;Module.ALLOC_NORMAL=ALLOC_NORMAL,Module.ALLOC_STACK=ALLOC_STACK,Module.ALLOC_STATIC=ALLOC_STATIC,Module.ALLOC_DYNAMIC=ALLOC_DYNAMIC,Module.ALLOC_NONE=ALLOC_NONE;function allocate(i,u,f,c){var g,t;typeof i=="number"?(g=!0,t=i):(g=!1,t=i.length);var C=typeof u=="string"?u:null,A;if(f==ALLOC_NONE?A=c:A=[typeof _malloc=="function"?_malloc:Runtime.staticAlloc,Runtime.stackAlloc,Runtime.staticAlloc,Runtime.dynamicAlloc][f===void 0?ALLOC_STATIC:f](Math.max(t,C?1:u.length)),g){var c=A,x;for(assert((A&3)==0),x=A+(t&~3);c>2]=0;for(x=A+t;c>0]=0;return A}if(C==="i8")return i.subarray||i.slice?HEAPU8.set(i,A):HEAPU8.set(new Uint8Array(i),A),A;for(var D=0,L,N,j;D>0],f|=c,!(c==0&&!u||(g++,u&&g==u)););u||(u=g);var t="";if(f<128){for(var C=1024,A;u>0;)A=String.fromCharCode.apply(String,HEAPU8.subarray(i,i+Math.min(u,C))),t=t?t+A:A,i+=C,u-=C;return t}return Module.UTF8ToString(i)}Module.Pointer_stringify=Pointer_stringify;function AsciiToString(i){for(var u="";;){var f=HEAP8[i++>>0];if(!f)return u;u+=String.fromCharCode(f)}}Module.AsciiToString=AsciiToString;function stringToAscii(i,u){return writeAsciiToMemory(i,u,!1)}Module.stringToAscii=stringToAscii;var UTF8Decoder=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):void 0;function UTF8ArrayToString(i,u){for(var f=u;i[f];)++f;if(f-u>16&&i.subarray&&UTF8Decoder)return UTF8Decoder.decode(i.subarray(u,f));for(var c,g,t,C,A,x,D="";;){if(c=i[u++],!c)return D;if(!(c&128)){D+=String.fromCharCode(c);continue}if(g=i[u++]&63,(c&224)==192){D+=String.fromCharCode((c&31)<<6|g);continue}if(t=i[u++]&63,(c&240)==224?c=(c&15)<<12|g<<6|t:(C=i[u++]&63,(c&248)==240?c=(c&7)<<18|g<<12|t<<6|C:(A=i[u++]&63,(c&252)==248?c=(c&3)<<24|g<<18|t<<12|C<<6|A:(x=i[u++]&63,c=(c&1)<<30|g<<24|t<<18|C<<12|A<<6|x))),c<65536)D+=String.fromCharCode(c);else{var L=c-65536;D+=String.fromCharCode(55296|L>>10,56320|L&1023)}}}Module.UTF8ArrayToString=UTF8ArrayToString;function UTF8ToString(i){return UTF8ArrayToString(HEAPU8,i)}Module.UTF8ToString=UTF8ToString;function stringToUTF8Array(i,u,f,c){if(!(c>0))return 0;for(var g=f,t=f+c-1,C=0;C=55296&&A<=57343&&(A=65536+((A&1023)<<10)|i.charCodeAt(++C)&1023),A<=127){if(f>=t)break;u[f++]=A}else if(A<=2047){if(f+1>=t)break;u[f++]=192|A>>6,u[f++]=128|A&63}else if(A<=65535){if(f+2>=t)break;u[f++]=224|A>>12,u[f++]=128|A>>6&63,u[f++]=128|A&63}else if(A<=2097151){if(f+3>=t)break;u[f++]=240|A>>18,u[f++]=128|A>>12&63,u[f++]=128|A>>6&63,u[f++]=128|A&63}else if(A<=67108863){if(f+4>=t)break;u[f++]=248|A>>24,u[f++]=128|A>>18&63,u[f++]=128|A>>12&63,u[f++]=128|A>>6&63,u[f++]=128|A&63}else{if(f+5>=t)break;u[f++]=252|A>>30,u[f++]=128|A>>24&63,u[f++]=128|A>>18&63,u[f++]=128|A>>12&63,u[f++]=128|A>>6&63,u[f++]=128|A&63}}return u[f]=0,f-g}Module.stringToUTF8Array=stringToUTF8Array;function stringToUTF8(i,u,f){return stringToUTF8Array(i,HEAPU8,u,f)}Module.stringToUTF8=stringToUTF8;function lengthBytesUTF8(i){for(var u=0,f=0;f=55296&&c<=57343&&(c=65536+((c&1023)<<10)|i.charCodeAt(++f)&1023),c<=127?++u:c<=2047?u+=2:c<=65535?u+=3:c<=2097151?u+=4:c<=67108863?u+=5:u+=6}return u}Module.lengthBytesUTF8=lengthBytesUTF8;var UTF16Decoder=typeof TextDecoder!="undefined"?new TextDecoder("utf-16le"):void 0;function demangle(i){var u=Module.___cxa_demangle||Module.__cxa_demangle;if(u){try{var f=i.substr(1),c=lengthBytesUTF8(f)+1,g=_malloc(c);stringToUTF8(f,g,c);var t=_malloc(4),C=u(g,0,0,t);if(getValue(t,"i32")===0&&C)return Pointer_stringify(C)}catch(A){}finally{g&&_free(g),t&&_free(t),C&&_free(C)}return i}return Runtime.warnOnce("warning: build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling"),i}function demangleAll(i){var u=/__Z[\w\d_]+/g;return i.replace(u,function(f){var c=demangle(f);return f===c?f:f+" ["+c+"]"})}function jsStackTrace(){var i=new Error;if(!i.stack){try{throw new Error(0)}catch(u){i=u}if(!i.stack)return"(no stack trace available)"}return i.stack.toString()}function stackTrace(){var i=jsStackTrace();return Module.extraStackTrace&&(i+=` -`+Module.extraStackTrace()),demangleAll(i)}Module.stackTrace=stackTrace;var HEAP,buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferViews(){Module.HEAP8=HEAP8=new Int8Array(buffer),Module.HEAP16=HEAP16=new Int16Array(buffer),Module.HEAP32=HEAP32=new Int32Array(buffer),Module.HEAPU8=HEAPU8=new Uint8Array(buffer),Module.HEAPU16=HEAPU16=new Uint16Array(buffer),Module.HEAPU32=HEAPU32=new Uint32Array(buffer),Module.HEAPF32=HEAPF32=new Float32Array(buffer),Module.HEAPF64=HEAPF64=new Float64Array(buffer)}var STATIC_BASE,STATICTOP,staticSealed,STACK_BASE,STACKTOP,STACK_MAX,DYNAMIC_BASE,DYNAMICTOP_PTR;STATIC_BASE=STATICTOP=STACK_BASE=STACKTOP=STACK_MAX=DYNAMIC_BASE=DYNAMICTOP_PTR=0,staticSealed=!1;function abortOnCannotGrowMemory(){abort("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+TOTAL_MEMORY+", (2) compile with -s ALLOW_MEMORY_GROWTH=1 which allows increasing the size at runtime but prevents some optimizations, (3) set Module.TOTAL_MEMORY to a higher value before the program runs, or (4) if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 ")}function enlargeMemory(){abortOnCannotGrowMemory()}var TOTAL_STACK=Module.TOTAL_STACK||5242880,TOTAL_MEMORY=Module.TOTAL_MEMORY||134217728;TOTAL_MEMORY0;){var u=i.shift();if(typeof u=="function"){u();continue}var f=u.func;typeof f=="number"?u.arg===void 0?Module.dynCall_v(f):Module.dynCall_vi(f,u.arg):f(u.arg===void 0?null:u.arg)}}var __ATPRERUN__=[],__ATINIT__=[],__ATMAIN__=[],__ATEXIT__=[],__ATPOSTRUN__=[],runtimeInitialized=!1,runtimeExited=!1;function preRun(){if(Module.preRun)for(typeof Module.preRun=="function"&&(Module.preRun=[Module.preRun]);Module.preRun.length;)addOnPreRun(Module.preRun.shift());callRuntimeCallbacks(__ATPRERUN__)}function ensureInitRuntime(){runtimeInitialized||(runtimeInitialized=!0,callRuntimeCallbacks(__ATINIT__))}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){callRuntimeCallbacks(__ATEXIT__),runtimeExited=!0}function postRun(){if(Module.postRun)for(typeof Module.postRun=="function"&&(Module.postRun=[Module.postRun]);Module.postRun.length;)addOnPostRun(Module.postRun.shift());callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(i){__ATPRERUN__.unshift(i)}Module.addOnPreRun=addOnPreRun;function addOnInit(i){__ATINIT__.unshift(i)}Module.addOnInit=addOnInit;function addOnPreMain(i){__ATMAIN__.unshift(i)}Module.addOnPreMain=addOnPreMain;function addOnExit(i){__ATEXIT__.unshift(i)}Module.addOnExit=addOnExit;function addOnPostRun(i){__ATPOSTRUN__.unshift(i)}Module.addOnPostRun=addOnPostRun;function intArrayFromString(i,u,f){var c=f>0?f:lengthBytesUTF8(i)+1,g=new Array(c),t=stringToUTF8Array(i,g,0,g.length);return u&&(g.length=t),g}Module.intArrayFromString=intArrayFromString;function intArrayToString(i){for(var u=[],f=0;f255&&(c&=255),u.push(String.fromCharCode(c))}return u.join("")}Module.intArrayToString=intArrayToString;function writeStringToMemory(i,u,f){Runtime.warnOnce("writeStringToMemory is deprecated and should not be called! Use stringToUTF8() instead!");var c,g;f&&(g=u+lengthBytesUTF8(i),c=HEAP8[g]),stringToUTF8(i,u,Infinity),f&&(HEAP8[g]=c)}Module.writeStringToMemory=writeStringToMemory;function writeArrayToMemory(i,u){HEAP8.set(i,u)}Module.writeArrayToMemory=writeArrayToMemory;function writeAsciiToMemory(i,u,f){for(var c=0;c>0]=i.charCodeAt(c);f||(HEAP8[u>>0]=0)}if(Module.writeAsciiToMemory=writeAsciiToMemory,(!Math.imul||Math.imul(4294967295,5)!==-5)&&(Math.imul=function(u,f){var c=u>>>16,g=u&65535,t=f>>>16,C=f&65535;return g*C+(c*C+g*t<<16)|0}),Math.imul=Math.imul,!Math.fround){var froundBuffer=new Float32Array(1);Math.fround=function(i){return froundBuffer[0]=i,froundBuffer[0]}}Math.fround=Math.fround,Math.clz32||(Math.clz32=function(i){i=i>>>0;for(var u=0;u<32;u++)if(i&1<<31-u)return u;return 32}),Math.clz32=Math.clz32,Math.trunc||(Math.trunc=function(i){return i<0?Math.ceil(i):Math.floor(i)}),Math.trunc=Math.trunc;var Math_abs=Math.abs,Math_cos=Math.cos,Math_sin=Math.sin,Math_tan=Math.tan,Math_acos=Math.acos,Math_asin=Math.asin,Math_atan=Math.atan,Math_atan2=Math.atan2,Math_exp=Math.exp,Math_log=Math.log,Math_sqrt=Math.sqrt,Math_ceil=Math.ceil,Math_floor=Math.floor,Math_pow=Math.pow,Math_imul=Math.imul,Math_fround=Math.fround,Math_round=Math.round,Math_min=Math.min,Math_clz32=Math.clz32,Math_trunc=Math.trunc,runDependencies=0,runDependencyWatcher=null,dependenciesFulfilled=null;function getUniqueRunDependency(i){return i}function addRunDependency(i){runDependencies++,Module.monitorRunDependencies&&Module.monitorRunDependencies(runDependencies)}Module.addRunDependency=addRunDependency;function removeRunDependency(i){if(runDependencies--,Module.monitorRunDependencies&&Module.monitorRunDependencies(runDependencies),runDependencies==0&&(runDependencyWatcher!==null&&(clearInterval(runDependencyWatcher),runDependencyWatcher=null),dependenciesFulfilled)){var u=dependenciesFulfilled;dependenciesFulfilled=null,u()}}Module.removeRunDependency=removeRunDependency,Module.preloadedImages={},Module.preloadedAudios={};var ASM_CONSTS=[function(i,u,f,c,g,t,C,A){return _nbind.callbackSignatureList[i].apply(this,arguments)}];function _emscripten_asm_const_iiiiiiii(i,u,f,c,g,t,C,A){return ASM_CONSTS[i](u,f,c,g,t,C,A)}function _emscripten_asm_const_iiiii(i,u,f,c,g){return ASM_CONSTS[i](u,f,c,g)}function _emscripten_asm_const_iiidddddd(i,u,f,c,g,t,C,A,x){return ASM_CONSTS[i](u,f,c,g,t,C,A,x)}function _emscripten_asm_const_iiididi(i,u,f,c,g,t,C){return ASM_CONSTS[i](u,f,c,g,t,C)}function _emscripten_asm_const_iiii(i,u,f,c){return ASM_CONSTS[i](u,f,c)}function _emscripten_asm_const_iiiid(i,u,f,c,g){return ASM_CONSTS[i](u,f,c,g)}function _emscripten_asm_const_iiiiii(i,u,f,c,g,t){return ASM_CONSTS[i](u,f,c,g,t)}STATIC_BASE=Runtime.GLOBAL_BASE,STATICTOP=STATIC_BASE+12800,__ATINIT__.push({func:function(){__GLOBAL__sub_I_Yoga_cpp()}},{func:function(){__GLOBAL__sub_I_nbind_cc()}},{func:function(){__GLOBAL__sub_I_common_cc()}},{func:function(){__GLOBAL__sub_I_Binding_cc()}}),allocate([0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,127,0,0,192,127,0,0,192,127,0,0,192,127,3,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,3,0,0,0,0,0,192,127,3,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,127,0,0,192,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,127,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,127,0,0,192,127,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,128,191,0,0,128,191,0,0,192,127,0,0,0,0,0,0,0,0,0,0,128,63,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,3,0,0,0,1,0,0,0,2,0,0,0,0,0,0,0,190,12,0,0,200,12,0,0,208,12,0,0,216,12,0,0,230,12,0,0,242,12,0,0,1,0,0,0,3,0,0,0,0,0,0,0,2,0,0,0,0,0,192,127,3,0,0,0,180,45,0,0,181,45,0,0,182,45,0,0,181,45,0,0,182,45,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,1,0,0,0,4,0,0,0,183,45,0,0,181,45,0,0,181,45,0,0,181,45,0,0,181,45,0,0,181,45,0,0,181,45,0,0,184,45,0,0,185,45,0,0,181,45,0,0,181,45,0,0,182,45,0,0,186,45,0,0,185,45,0,0,148,4,0,0,3,0,0,0,187,45,0,0,164,4,0,0,188,45,0,0,2,0,0,0,189,45,0,0,164,4,0,0,188,45,0,0,185,45,0,0,164,4,0,0,185,45,0,0,164,4,0,0,188,45,0,0,181,45,0,0,182,45,0,0,181,45,0,0,0,0,0,0,0,0,0,0,1,0,0,0,5,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,183,45,0,0,182,45,0,0,181,45,0,0,190,45,0,0,190,45,0,0,182,45,0,0,182,45,0,0,185,45,0,0,181,45,0,0,185,45,0,0,182,45,0,0,181,45,0,0,185,45,0,0,182,45,0,0,185,45,0,0,48,5,0,0,3,0,0,0,56,5,0,0,1,0,0,0,189,45,0,0,185,45,0,0,164,4,0,0,76,5,0,0,2,0,0,0,191,45,0,0,186,45,0,0,182,45,0,0,185,45,0,0,192,45,0,0,185,45,0,0,182,45,0,0,186,45,0,0,185,45,0,0,76,5,0,0,76,5,0,0,136,5,0,0,182,45,0,0,181,45,0,0,2,0,0,0,190,45,0,0,136,5,0,0,56,19,0,0,156,5,0,0,2,0,0,0,184,45,0,0,0,0,0,0,0,0,0,0,1,0,0,0,8,0,0,0,9,0,0,0,1,0,0,0,10,0,0,0,204,5,0,0,181,45,0,0,181,45,0,0,2,0,0,0,180,45,0,0,204,5,0,0,2,0,0,0,195,45,0,0,236,5,0,0,97,19,0,0,198,45,0,0,211,45,0,0,212,45,0,0,213,45,0,0,214,45,0,0,215,45,0,0,188,45,0,0,182,45,0,0,216,45,0,0,217,45,0,0,218,45,0,0,219,45,0,0,192,45,0,0,181,45,0,0,0,0,0,0,185,45,0,0,110,19,0,0,186,45,0,0,115,19,0,0,221,45,0,0,120,19,0,0,148,4,0,0,132,19,0,0,96,6,0,0,145,19,0,0,222,45,0,0,164,19,0,0,223,45,0,0,173,19,0,0,0,0,0,0,3,0,0,0,104,6,0,0,1,0,0,0,187,45,0,0,0,0,0,0,0,0,0,0,1,0,0,0,11,0,0,0,12,0,0,0,1,0,0,0,13,0,0,0,185,45,0,0,224,45,0,0,164,6,0,0,188,45,0,0,172,6,0,0,180,6,0,0,2,0,0,0,188,6,0,0,7,0,0,0,224,45,0,0,7,0,0,0,164,6,0,0,1,0,0,0,213,45,0,0,185,45,0,0,224,45,0,0,172,6,0,0,185,45,0,0,224,45,0,0,164,6,0,0,185,45,0,0,224,45,0,0,211,45,0,0,211,45,0,0,222,45,0,0,211,45,0,0,224,45,0,0,222,45,0,0,211,45,0,0,224,45,0,0,172,6,0,0,222,45,0,0,211,45,0,0,224,45,0,0,188,45,0,0,222,45,0,0,211,45,0,0,40,7,0,0,188,45,0,0,2,0,0,0,224,45,0,0,185,45,0,0,188,45,0,0,188,45,0,0,188,45,0,0,188,45,0,0,222,45,0,0,224,45,0,0,148,4,0,0,185,45,0,0,148,4,0,0,148,4,0,0,148,4,0,0,148,4,0,0,148,4,0,0,185,45,0,0,164,6,0,0,148,4,0,0,0,0,0,0,0,0,0,0,1,0,0,0,14,0,0,0,15,0,0,0,1,0,0,0,16,0,0,0,148,7,0,0,2,0,0,0,225,45,0,0,183,45,0,0,188,45,0,0,168,7,0,0,5,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,234,45,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,148,45,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,28,9,0,0,5,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,2,0,0,0,242,45,0,0,0,4,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,67,111,117,108,100,32,110,111,116,32,97,108,108,111,99,97,116,101,32,109,101,109,111,114,121,32,102,111,114,32,110,111,100,101,0,67,97,110,110,111,116,32,114,101,115,101,116,32,97,32,110,111,100,101,32,119,104,105,99,104,32,115,116,105,108,108,32,104,97,115,32,99,104,105,108,100,114,101,110,32,97,116,116,97,99,104,101,100,0,67,97,110,110,111,116,32,114,101,115,101,116,32,97,32,110,111,100,101,32,115,116,105,108,108,32,97,116,116,97,99,104,101,100,32,116,111,32,97,32,112,97,114,101,110,116,0,67,111,117,108,100,32,110,111,116,32,97,108,108,111,99,97,116,101,32,109,101,109,111,114,121,32,102,111,114,32,99,111,110,102,105,103,0,67,97,110,110,111,116,32,115,101,116,32,109,101,97,115,117,114,101,32,102,117,110,99,116,105,111,110,58,32,78,111,100,101,115,32,119,105,116,104,32,109,101,97,115,117,114,101,32,102,117,110,99,116,105,111,110,115,32,99,97,110,110,111,116,32,104,97,118,101,32,99,104,105,108,100,114,101,110,46,0,67,104,105,108,100,32,97,108,114,101,97,100,121,32,104,97,115,32,97,32,112,97,114,101,110,116,44,32,105,116,32,109,117,115,116,32,98,101,32,114,101,109,111,118,101,100,32,102,105,114,115,116,46,0,67,97,110,110,111,116,32,97,100,100,32,99,104,105,108,100,58,32,78,111,100,101,115,32,119,105,116,104,32,109,101,97,115,117,114,101,32,102,117,110,99,116,105,111,110,115,32,99,97,110,110,111,116,32,104,97,118,101,32,99,104,105,108,100,114,101,110,46,0,79,110,108,121,32,108,101,97,102,32,110,111,100,101,115,32,119,105,116,104,32,99,117,115,116,111,109,32,109,101,97,115,117,114,101,32,102,117,110,99,116,105,111,110,115,115,104,111,117,108,100,32,109,97,110,117,97,108,108,121,32,109,97,114,107,32,116,104,101,109,115,101,108,118,101,115,32,97,115,32,100,105,114,116,121,0,67,97,110,110,111,116,32,103,101,116,32,108,97,121,111,117,116,32,112,114,111,112,101,114,116,105,101,115,32,111,102,32,109,117,108,116,105,45,101,100,103,101,32,115,104,111,114,116,104,97,110,100,115,0,37,115,37,100,46,123,91,115,107,105,112,112,101,100,93,32,0,119,109,58,32,37,115,44,32,104,109,58,32,37,115,44,32,97,119,58,32,37,102,32,97,104,58,32,37,102,32,61,62,32,100,58,32,40,37,102,44,32,37,102,41,32,37,115,10,0,37,115,37,100,46,123,37,115,0,42,0,119,109,58,32,37,115,44,32,104,109,58,32,37,115,44,32,97,119,58,32,37,102,32,97,104,58,32,37,102,32,37,115,10,0,37,115,37,100,46,125,37,115,0,119,109,58,32,37,115,44,32,104,109,58,32,37,115,44,32,100,58,32,40,37,102,44,32,37,102,41,32,37,115,10,0,79,117,116,32,111,102,32,99,97,99,104,101,32,101,110,116,114,105,101,115,33,10,0,83,99,97,108,101,32,102,97,99,116,111,114,32,115,104,111,117,108,100,32,110,111,116,32,98,101,32,108,101,115,115,32,116,104,97,110,32,122,101,114,111,0,105,110,105,116,105,97,108,0,37,115,10,0,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,0,85,78,68,69,70,73,78,69,68,0,69,88,65,67,84,76,89,0,65,84,95,77,79,83,84,0,76,65,89,95,85,78,68,69,70,73,78,69,68,0,76,65,89,95,69,88,65,67,84,76,89,0,76,65,89,95,65,84,95,77,79,83,84,0,97,118,97,105,108,97,98,108,101,87,105,100,116,104,32,105,115,32,105,110,100,101,102,105,110,105,116,101,32,115,111,32,119,105,100,116,104,77,101,97,115,117,114,101,77,111,100,101,32,109,117,115,116,32,98,101,32,89,71,77,101,97,115,117,114,101,77,111,100,101,85,110,100,101,102,105,110,101,100,0,97,118,97,105,108,97,98,108,101,72,101,105,103,104,116,32,105,115,32,105,110,100,101,102,105,110,105,116,101,32,115,111,32,104,101,105,103,104,116,77,101,97,115,117,114,101,77,111,100,101,32,109,117,115,116,32,98,101,32,89,71,77,101,97,115,117,114,101,77,111,100,101,85,110,100,101,102,105,110,101,100,0,102,108,101,120,0,115,116,114,101,116,99,104,0,109,117,108,116,105,108,105,110,101,45,115,116,114,101,116,99,104,0,69,120,112,101,99,116,101,100,32,110,111,100,101,32,116,111,32,104,97,118,101,32,99,117,115,116,111,109,32,109,101,97,115,117,114,101,32,102,117,110,99,116,105,111,110,0,109,101,97,115,117,114,101,0,69,120,112,101,99,116,32,99,117,115,116,111,109,32,98,97,115,101,108,105,110,101,32,102,117,110,99,116,105,111,110,32,116,111,32,110,111,116,32,114,101,116,117,114,110,32,78,97,78,0,97,98,115,45,109,101,97,115,117,114,101,0,97,98,115,45,108,97,121,111,117,116,0,78,111,100,101,0,99,114,101,97,116,101,68,101,102,97,117,108,116,0,99,114,101,97,116,101,87,105,116,104,67,111,110,102,105,103,0,100,101,115,116,114,111,121,0,114,101,115,101,116,0,99,111,112,121,83,116,121,108,101,0,115,101,116,80,111,115,105,116,105,111,110,84,121,112,101,0,115,101,116,80,111,115,105,116,105,111,110,0,115,101,116,80,111,115,105,116,105,111,110,80,101,114,99,101,110,116,0,115,101,116,65,108,105,103,110,67,111,110,116,101,110,116,0,115,101,116,65,108,105,103,110,73,116,101,109,115,0,115,101,116,65,108,105,103,110,83,101,108,102,0,115,101,116,70,108,101,120,68,105,114,101,99,116,105,111,110,0,115,101,116,70,108,101,120,87,114,97,112,0,115,101,116,74,117,115,116,105,102,121,67,111,110,116,101,110,116,0,115,101,116,77,97,114,103,105,110,0,115,101,116,77,97,114,103,105,110,80,101,114,99,101,110,116,0,115,101,116,77,97,114,103,105,110,65,117,116,111,0,115,101,116,79,118,101,114,102,108,111,119,0,115,101,116,68,105,115,112,108,97,121,0,115,101,116,70,108,101,120,0,115,101,116,70,108,101,120,66,97,115,105,115,0,115,101,116,70,108,101,120,66,97,115,105,115,80,101,114,99,101,110,116,0,115,101,116,70,108,101,120,71,114,111,119,0,115,101,116,70,108,101,120,83,104,114,105,110,107,0,115,101,116,87,105,100,116,104,0,115,101,116,87,105,100,116,104,80,101,114,99,101,110,116,0,115,101,116,87,105,100,116,104,65,117,116,111,0,115,101,116,72,101,105,103,104,116,0,115,101,116,72,101,105,103,104,116,80,101,114,99,101,110,116,0,115,101,116,72,101,105,103,104,116,65,117,116,111,0,115,101,116,77,105,110,87,105,100,116,104,0,115,101,116,77,105,110,87,105,100,116,104,80,101,114,99,101,110,116,0,115,101,116,77,105,110,72,101,105,103,104,116,0,115,101,116,77,105,110,72,101,105,103,104,116,80,101,114,99,101,110,116,0,115,101,116,77,97,120,87,105,100,116,104,0,115,101,116,77,97,120,87,105,100,116,104,80,101,114,99,101,110,116,0,115,101,116,77,97,120,72,101,105,103,104,116,0,115,101,116,77,97,120,72,101,105,103,104,116,80,101,114,99,101,110,116,0,115,101,116,65,115,112,101,99,116,82,97,116,105,111,0,115,101,116,66,111,114,100,101,114,0,115,101,116,80,97,100,100,105,110,103,0,115,101,116,80,97,100,100,105,110,103,80,101,114,99,101,110,116,0,103,101,116,80,111,115,105,116,105,111,110,84,121,112,101,0,103,101,116,80,111,115,105,116,105,111,110,0,103,101,116,65,108,105,103,110,67,111,110,116,101,110,116,0,103,101,116,65,108,105,103,110,73,116,101,109,115,0,103,101,116,65,108,105,103,110,83,101,108,102,0,103,101,116,70,108,101,120,68,105,114,101,99,116,105,111,110,0,103,101,116,70,108,101,120,87,114,97,112,0,103,101,116,74,117,115,116,105,102,121,67,111,110,116,101,110,116,0,103,101,116,77,97,114,103,105,110,0,103,101,116,70,108,101,120,66,97,115,105,115,0,103,101,116,70,108,101,120,71,114,111,119,0,103,101,116,70,108,101,120,83,104,114,105,110,107,0,103,101,116,87,105,100,116,104,0,103,101,116,72,101,105,103,104,116,0,103,101,116,77,105,110,87,105,100,116,104,0,103,101,116,77,105,110,72,101,105,103,104,116,0,103,101,116,77,97,120,87,105,100,116,104,0,103,101,116,77,97,120,72,101,105,103,104,116,0,103,101,116,65,115,112,101,99,116,82,97,116,105,111,0,103,101,116,66,111,114,100,101,114,0,103,101,116,79,118,101,114,102,108,111,119,0,103,101,116,68,105,115,112,108,97,121,0,103,101,116,80,97,100,100,105,110,103,0,105,110,115,101,114,116,67,104,105,108,100,0,114,101,109,111,118,101,67,104,105,108,100,0,103,101,116,67,104,105,108,100,67,111,117,110,116,0,103,101,116,80,97,114,101,110,116,0,103,101,116,67,104,105,108,100,0,115,101,116,77,101,97,115,117,114,101,70,117,110,99,0,117,110,115,101,116,77,101,97,115,117,114,101,70,117,110,99,0,109,97,114,107,68,105,114,116,121,0,105,115,68,105,114,116,121,0,99,97,108,99,117,108,97,116,101,76,97,121,111,117,116,0,103,101,116,67,111,109,112,117,116,101,100,76,101,102,116,0,103,101,116,67,111,109,112,117,116,101,100,82,105,103,104,116,0,103,101,116,67,111,109,112,117,116,101,100,84,111,112,0,103,101,116,67,111,109,112,117,116,101,100,66,111,116,116,111,109,0,103,101,116,67,111,109,112,117,116,101,100,87,105,100,116,104,0,103,101,116,67,111,109,112,117,116,101,100,72,101,105,103,104,116,0,103,101,116,67,111,109,112,117,116,101,100,76,97,121,111,117,116,0,103,101,116,67,111,109,112,117,116,101,100,77,97,114,103,105,110,0,103,101,116,67,111,109,112,117,116,101,100,66,111,114,100,101,114,0,103,101,116,67,111,109,112,117,116,101,100,80,97,100,100,105,110,103,0,67,111,110,102,105,103,0,99,114,101,97,116,101,0,115,101,116,69,120,112,101,114,105,109,101,110,116,97,108,70,101,97,116,117,114,101,69,110,97,98,108,101,100,0,115,101,116,80,111,105,110,116,83,99,97,108,101,70,97,99,116,111,114,0,105,115,69,120,112,101,114,105,109,101,110,116,97,108,70,101,97,116,117,114,101,69,110,97,98,108,101,100,0,86,97,108,117,101,0,76,97,121,111,117,116,0,83,105,122,101,0,103,101,116,73,110,115,116,97,110,99,101,67,111,117,110,116,0,73,110,116,54,52,0,1,1,1,2,2,4,4,4,4,8,8,4,8,118,111,105,100,0,98,111,111,108,0,115,116,100,58,58,115,116,114,105,110,103,0,99,98,70,117,110,99,116,105,111,110,32,38,0,99,111,110,115,116,32,99,98,70,117,110,99,116,105,111,110,32,38,0,69,120,116,101,114,110,97,108,0,66,117,102,102,101,114,0,78,66,105,110,100,73,68,0,78,66,105,110,100,0,98,105,110,100,95,118,97,108,117,101,0,114,101,102,108,101,99,116,0,113,117,101,114,121,84,121,112,101,0,108,97,108,108,111,99,0,108,114,101,115,101,116,0,123,114,101,116,117,114,110,40,95,110,98,105,110,100,46,99,97,108,108,98,97,99,107,83,105,103,110,97,116,117,114,101,76,105,115,116,91,36,48,93,46,97,112,112,108,121,40,116,104,105,115,44,97,114,103,117,109,101,110,116,115,41,41,59,125,0,95,110,98,105,110,100,95,110,101,119,0,17,0,10,0,17,17,17,0,0,0,0,5,0,0,0,0,0,0,9,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,15,10,17,17,17,3,10,7,0,1,19,9,11,11,0,0,9,6,11,0,0,11,0,6,17,0,0,0,17,17,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,10,10,17,17,17,0,10,0,0,2,0,9,11,0,0,0,9,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,0,0,0,0,13,0,0,0,4,13,0,0,0,0,9,14,0,0,0,0,0,14,0,0,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,15,0,0,0,0,15,0,0,0,0,9,16,0,0,0,0,0,16,0,0,16,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,10,0,0,0,0,9,11,0,0,0,0,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,45,43,32,32,32,48,88,48,120,0,40,110,117,108,108,41,0,45,48,88,43,48,88,32,48,88,45,48,120,43,48,120,32,48,120,0,105,110,102,0,73,78,70,0,110,97,110,0,78,65,78,0,48,49,50,51,52,53,54,55,56,57,65,66,67,68,69,70,46,0,84,33,34,25,13,1,2,3,17,75,28,12,16,4,11,29,18,30,39,104,110,111,112,113,98,32,5,6,15,19,20,21,26,8,22,7,40,36,23,24,9,10,14,27,31,37,35,131,130,125,38,42,43,60,61,62,63,67,71,74,77,88,89,90,91,92,93,94,95,96,97,99,100,101,102,103,105,106,107,108,114,115,116,121,122,123,124,0,73,108,108,101,103,97,108,32,98,121,116,101,32,115,101,113,117,101,110,99,101,0,68,111,109,97,105,110,32,101,114,114,111,114,0,82,101,115,117,108,116,32,110,111,116,32,114,101,112,114,101,115,101,110,116,97,98,108,101,0,78,111,116,32,97,32,116,116,121,0,80,101,114,109,105,115,115,105,111,110,32,100,101,110,105,101,100,0,79,112,101,114,97,116,105,111,110,32,110,111,116,32,112,101,114,109,105,116,116,101,100,0,78,111,32,115,117,99,104,32,102,105,108,101,32,111,114,32,100,105,114,101,99,116,111,114,121,0,78,111,32,115,117,99,104,32,112,114,111,99,101,115,115,0,70,105,108,101,32,101,120,105,115,116,115,0,86,97,108,117,101,32,116,111,111,32,108,97,114,103,101,32,102,111,114,32,100,97,116,97,32,116,121,112,101,0,78,111,32,115,112,97,99,101,32,108,101,102,116,32,111,110,32,100,101,118,105,99,101,0,79,117,116,32,111,102,32,109,101,109,111,114,121,0,82,101,115,111,117,114,99,101,32,98,117,115,121,0,73,110,116,101,114,114,117,112,116,101,100,32,115,121,115,116,101,109,32,99,97,108,108,0,82,101,115,111,117,114,99,101,32,116,101,109,112,111,114,97,114,105,108,121,32,117,110,97,118,97,105,108,97,98,108,101,0,73,110,118,97,108,105,100,32,115,101,101,107,0,67,114,111,115,115,45,100,101,118,105,99,101,32,108,105,110,107,0,82,101,97,100,45,111,110,108,121,32,102,105,108,101,32,115,121,115,116,101,109,0,68,105,114,101,99,116,111,114,121,32,110,111,116,32,101,109,112,116,121,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,112,101,101,114,0,79,112,101,114,97,116,105,111,110,32,116,105,109,101,100,32,111,117,116,0,67,111,110,110,101,99,116,105,111,110,32,114,101,102,117,115,101,100,0,72,111,115,116,32,105,115,32,100,111,119,110,0,72,111,115,116,32,105,115,32,117,110,114,101,97,99,104,97,98,108,101,0,65,100,100,114,101,115,115,32,105,110,32,117,115,101,0,66,114,111,107,101,110,32,112,105,112,101,0,73,47,79,32,101,114,114,111,114,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,32,111,114,32,97,100,100,114,101,115,115,0,66,108,111,99,107,32,100,101,118,105,99,101,32,114,101,113,117,105,114,101,100,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,0,78,111,116,32,97,32,100,105,114,101,99,116,111,114,121,0,73,115,32,97,32,100,105,114,101,99,116,111,114,121,0,84,101,120,116,32,102,105,108,101,32,98,117,115,121,0,69,120,101,99,32,102,111,114,109,97,116,32,101,114,114,111,114,0,73,110,118,97,108,105,100,32,97,114,103,117,109,101,110,116,0,65,114,103,117,109,101,110,116,32,108,105,115,116,32,116,111,111,32,108,111,110,103,0,83,121,109,98,111,108,105,99,32,108,105,110,107,32,108,111,111,112,0,70,105,108,101,110,97,109,101,32,116,111,111,32,108,111,110,103,0,84,111,111,32,109,97,110,121,32,111,112,101,110,32,102,105,108,101,115,32,105,110,32,115,121,115,116,101,109,0,78,111,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,115,32,97,118,97,105,108,97,98,108,101,0,66,97,100,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,0,78,111,32,99,104,105,108,100,32,112,114,111,99,101,115,115,0,66,97,100,32,97,100,100,114,101,115,115,0,70,105,108,101,32,116,111,111,32,108,97,114,103,101,0,84,111,111,32,109,97,110,121,32,108,105,110,107,115,0,78,111,32,108,111,99,107,115,32,97,118,97,105,108,97,98,108,101,0,82,101,115,111,117,114,99,101,32,100,101,97,100,108,111,99,107,32,119,111,117,108,100,32,111,99,99,117,114,0,83,116,97,116,101,32,110,111,116,32,114,101,99,111,118,101,114,97,98,108,101,0,80,114,101,118,105,111,117,115,32,111,119,110,101,114,32,100,105,101,100,0,79,112,101,114,97,116,105,111,110,32,99,97,110,99,101,108,101,100,0,70,117,110,99,116,105,111,110,32,110,111,116,32,105,109,112,108,101,109,101,110,116,101,100,0,78,111,32,109,101,115,115,97,103,101,32,111,102,32,100,101,115,105,114,101,100,32,116,121,112,101,0,73,100,101,110,116,105,102,105,101,114,32,114,101,109,111,118,101,100,0,68,101,118,105,99,101,32,110,111,116,32,97,32,115,116,114,101,97,109,0,78,111,32,100,97,116,97,32,97,118,97,105,108,97,98,108,101,0,68,101,118,105,99,101,32,116,105,109,101,111,117,116,0,79,117,116,32,111,102,32,115,116,114,101,97,109,115,32,114,101,115,111,117,114,99,101,115,0,76,105,110,107,32,104,97,115,32,98,101,101,110,32,115,101,118,101,114,101,100,0,80,114,111,116,111,99,111,108,32,101,114,114,111,114,0,66,97,100,32,109,101,115,115,97,103,101,0,70,105,108,101,32,100,101,115,99,114,105,112,116,111,114,32,105,110,32,98,97,100,32,115,116,97,116,101,0,78,111,116,32,97,32,115,111,99,107,101,116,0,68,101,115,116,105,110,97,116,105,111,110,32,97,100,100,114,101,115,115,32,114,101,113,117,105,114,101,100,0,77,101,115,115,97,103,101,32,116,111,111,32,108,97,114,103,101,0,80,114,111,116,111,99,111,108,32,119,114,111,110,103,32,116,121,112,101,32,102,111,114,32,115,111,99,107,101,116,0,80,114,111,116,111,99,111,108,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,80,114,111,116,111,99,111,108,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,83,111,99,107,101,116,32,116,121,112,101,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,78,111,116,32,115,117,112,112,111,114,116,101,100,0,80,114,111,116,111,99,111,108,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,65,100,100,114,101,115,115,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,32,98,121,32,112,114,111,116,111,99,111,108,0,65,100,100,114,101,115,115,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,78,101,116,119,111,114,107,32,105,115,32,100,111,119,110,0,78,101,116,119,111,114,107,32,117,110,114,101,97,99,104,97,98,108,101,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,110,101,116,119,111,114,107,0,67,111,110,110,101,99,116,105,111,110,32,97,98,111,114,116,101,100,0,78,111,32,98,117,102,102,101,114,32,115,112,97,99,101,32,97,118,97,105,108,97,98,108,101,0,83,111,99,107,101,116,32,105,115,32,99,111,110,110,101,99,116,101,100,0,83,111,99,107,101,116,32,110,111,116,32,99,111,110,110,101,99,116,101,100,0,67,97,110,110,111,116,32,115,101,110,100,32,97,102,116,101,114,32,115,111,99,107,101,116,32,115,104,117,116,100,111,119,110,0,79,112,101,114,97,116,105,111,110,32,97,108,114,101,97,100,121,32,105,110,32,112,114,111,103,114,101,115,115,0,79,112,101,114,97,116,105,111,110,32,105,110,32,112,114,111,103,114,101,115,115,0,83,116,97,108,101,32,102,105,108,101,32,104,97,110,100,108,101,0,82,101,109,111,116,101,32,73,47,79,32,101,114,114,111,114,0,81,117,111,116,97,32,101,120,99,101,101,100,101,100,0,78,111,32,109,101,100,105,117,109,32,102,111,117,110,100,0,87,114,111,110,103,32,109,101,100,105,117,109,32,116,121,112,101,0,78,111,32,101,114,114,111,114,32,105,110,102,111,114,109,97,116,105,111,110,0,0],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE);var tempDoublePtr=STATICTOP;STATICTOP+=16;function _atexit(i,u){__ATEXIT__.unshift({func:i,arg:u})}function ___cxa_atexit(){return _atexit.apply(null,arguments)}function _abort(){Module.abort()}function __ZN8facebook4yoga14YGNodeToStringEPNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEP6YGNode14YGPrintOptionsj(){Module.printErr("missing function: _ZN8facebook4yoga14YGNodeToStringEPNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEP6YGNode14YGPrintOptionsj"),abort(-1)}function __decorate(i,u,f,c){var g=arguments.length,t=g<3?u:c===null?c=Object.getOwnPropertyDescriptor(u,f):c,C;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")t=Reflect.decorate(i,u,f,c);else for(var A=i.length-1;A>=0;A--)(C=i[A])&&(t=(g<3?C(t):g>3?C(u,f,t):C(u,f))||t);return g>3&&t&&Object.defineProperty(u,f,t),t}function _defineHidden(i){return function(u,f){Object.defineProperty(u,f,{configurable:!1,enumerable:!1,value:i,writable:!0})}}var _nbind={};function __nbind_free_external(i){_nbind.externalList[i].dereference(i)}function __nbind_reference_external(i){_nbind.externalList[i].reference()}function _llvm_stackrestore(i){var u=_llvm_stacksave,f=u.LLVM_SAVEDSTACKS[i];u.LLVM_SAVEDSTACKS.splice(i,1),Runtime.stackRestore(f)}function __nbind_register_pool(i,u,f,c){_nbind.Pool.pageSize=i,_nbind.Pool.usedPtr=u/4,_nbind.Pool.rootPtr=f,_nbind.Pool.pagePtr=c/4,HEAP32[u/4]=16909060,HEAP8[u]==1&&(_nbind.bigEndian=!0),HEAP32[u/4]=0,_nbind.makeTypeKindTbl=(t={},t[1024]=_nbind.PrimitiveType,t[64]=_nbind.Int64Type,t[2048]=_nbind.BindClass,t[3072]=_nbind.BindClassPtr,t[4096]=_nbind.SharedClassPtr,t[5120]=_nbind.ArrayType,t[6144]=_nbind.ArrayType,t[7168]=_nbind.CStringType,t[9216]=_nbind.CallbackType,t[10240]=_nbind.BindType,t),_nbind.makeTypeNameTbl={Buffer:_nbind.BufferType,External:_nbind.ExternalType,Int64:_nbind.Int64Type,_nbind_new:_nbind.CreateValueType,bool:_nbind.BooleanType,"cbFunction &":_nbind.CallbackType,"const cbFunction &":_nbind.CallbackType,"const std::string &":_nbind.StringType,"std::string":_nbind.StringType},Module.toggleLightGC=_nbind.toggleLightGC,_nbind.callUpcast=Module.dynCall_ii;var g=_nbind.makeType(_nbind.constructType,{flags:2048,id:0,name:""});g.proto=Module,_nbind.BindClass.list.push(g);var t}function _emscripten_set_main_loop_timing(i,u){if(Browser.mainLoop.timingMode=i,Browser.mainLoop.timingValue=u,!Browser.mainLoop.func)return 1;if(i==0)Browser.mainLoop.scheduler=function(){var C=Math.max(0,Browser.mainLoop.tickStartTime+u-_emscripten_get_now())|0;setTimeout(Browser.mainLoop.runner,C)},Browser.mainLoop.method="timeout";else if(i==1)Browser.mainLoop.scheduler=function(){Browser.requestAnimationFrame(Browser.mainLoop.runner)},Browser.mainLoop.method="rAF";else if(i==2){if(!window.setImmediate){let t=function(C){C.source===window&&C.data===c&&(C.stopPropagation(),f.shift()())};var g=t,f=[],c="setimmediate";window.addEventListener("message",t,!0),window.setImmediate=function(A){f.push(A),ENVIRONMENT_IS_WORKER?(Module.setImmediates===void 0&&(Module.setImmediates=[]),Module.setImmediates.push(A),window.postMessage({target:c})):window.postMessage(c,"*")}}Browser.mainLoop.scheduler=function(){window.setImmediate(Browser.mainLoop.runner)},Browser.mainLoop.method="immediate"}return 0}function _emscripten_get_now(){abort()}function _emscripten_set_main_loop(i,u,f,c,g){Module.noExitRuntime=!0,assert(!Browser.mainLoop.func,"emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters."),Browser.mainLoop.func=i,Browser.mainLoop.arg=c;var t;typeof c!="undefined"?t=function(){Module.dynCall_vi(i,c)}:t=function(){Module.dynCall_v(i)};var C=Browser.mainLoop.currentlyRunningMainloop;if(Browser.mainLoop.runner=function(){if(!ABORT){if(Browser.mainLoop.queue.length>0){var x=Date.now(),D=Browser.mainLoop.queue.shift();if(D.func(D.arg),Browser.mainLoop.remainingBlockers){var L=Browser.mainLoop.remainingBlockers,N=L%1==0?L-1:Math.floor(L);D.counted?Browser.mainLoop.remainingBlockers=N:(N=N+.5,Browser.mainLoop.remainingBlockers=(8*L+N)/9)}if(console.log('main loop blocker "'+D.name+'" took '+(Date.now()-x)+" ms"),Browser.mainLoop.updateStatus(),C1&&Browser.mainLoop.currentFrameNumber%Browser.mainLoop.timingValue!=0){Browser.mainLoop.scheduler();return}else Browser.mainLoop.timingMode==0&&(Browser.mainLoop.tickStartTime=_emscripten_get_now());Browser.mainLoop.method==="timeout"&&Module.ctx&&(Module.printErr("Looks like you are rendering without using requestAnimationFrame for the main loop. You should use 0 for the frame rate in emscripten_set_main_loop in order to use requestAnimationFrame, as that can greatly improve your frame rates!"),Browser.mainLoop.method=""),Browser.mainLoop.runIter(t),!(C0?_emscripten_set_main_loop_timing(0,1e3/u):_emscripten_set_main_loop_timing(1,1),Browser.mainLoop.scheduler()),f)throw"SimulateInfiniteLoop"}var Browser={mainLoop:{scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:function(){Browser.mainLoop.scheduler=null,Browser.mainLoop.currentlyRunningMainloop++},resume:function(){Browser.mainLoop.currentlyRunningMainloop++;var i=Browser.mainLoop.timingMode,u=Browser.mainLoop.timingValue,f=Browser.mainLoop.func;Browser.mainLoop.func=null,_emscripten_set_main_loop(f,0,!1,Browser.mainLoop.arg,!0),_emscripten_set_main_loop_timing(i,u),Browser.mainLoop.scheduler()},updateStatus:function(){if(Module.setStatus){var i=Module.statusMessage||"Please wait...",u=Browser.mainLoop.remainingBlockers,f=Browser.mainLoop.expectedBlockers;u?u=6;){var Le=J>>Te-6&63;Te-=6,De+=Se[Le]}return Te==2?(De+=Se[(J&3)<<4],De+=me+me):Te==4&&(De+=Se[(J&15)<<2],De+=me),De}h.src="data:audio/x-"+C.substr(-3)+";base64,"+Q(t),L(h)},h.src=$,Browser.safeSetTimeout(function(){L(h)},1e4)}else return N()},Module.preloadPlugins.push(u);function f(){Browser.pointerLock=document.pointerLockElement===Module.canvas||document.mozPointerLockElement===Module.canvas||document.webkitPointerLockElement===Module.canvas||document.msPointerLockElement===Module.canvas}var c=Module.canvas;c&&(c.requestPointerLock=c.requestPointerLock||c.mozRequestPointerLock||c.webkitRequestPointerLock||c.msRequestPointerLock||function(){},c.exitPointerLock=document.exitPointerLock||document.mozExitPointerLock||document.webkitExitPointerLock||document.msExitPointerLock||function(){},c.exitPointerLock=c.exitPointerLock.bind(document),document.addEventListener("pointerlockchange",f,!1),document.addEventListener("mozpointerlockchange",f,!1),document.addEventListener("webkitpointerlockchange",f,!1),document.addEventListener("mspointerlockchange",f,!1),Module.elementPointerLock&&c.addEventListener("click",function(g){!Browser.pointerLock&&Module.canvas.requestPointerLock&&(Module.canvas.requestPointerLock(),g.preventDefault())},!1))},createContext:function(i,u,f,c){if(u&&Module.ctx&&i==Module.canvas)return Module.ctx;var g,t;if(u){var C={antialias:!1,alpha:!1};if(c)for(var A in c)C[A]=c[A];t=GL.createContext(i,C),t&&(g=GL.getContext(t).GLctx)}else g=i.getContext("2d");return g?(f&&(u||assert(typeof GLctx=="undefined","cannot set in module if GLctx is used, but we are a non-GL context that would replace it"),Module.ctx=g,u&&GL.makeContextCurrent(t),Module.useWebGL=u,Browser.moduleContextCreatedCallbacks.forEach(function(x){x()}),Browser.init()),g):null},destroyContext:function(i,u,f){},fullscreenHandlersInstalled:!1,lockPointer:void 0,resizeCanvas:void 0,requestFullscreen:function(i,u,f){Browser.lockPointer=i,Browser.resizeCanvas=u,Browser.vrDevice=f,typeof Browser.lockPointer=="undefined"&&(Browser.lockPointer=!0),typeof Browser.resizeCanvas=="undefined"&&(Browser.resizeCanvas=!1),typeof Browser.vrDevice=="undefined"&&(Browser.vrDevice=null);var c=Module.canvas;function g(){Browser.isFullscreen=!1;var C=c.parentNode;(document.fullscreenElement||document.mozFullScreenElement||document.msFullscreenElement||document.webkitFullscreenElement||document.webkitCurrentFullScreenElement)===C?(c.exitFullscreen=document.exitFullscreen||document.cancelFullScreen||document.mozCancelFullScreen||document.msExitFullscreen||document.webkitCancelFullScreen||function(){},c.exitFullscreen=c.exitFullscreen.bind(document),Browser.lockPointer&&c.requestPointerLock(),Browser.isFullscreen=!0,Browser.resizeCanvas&&Browser.setFullscreenCanvasSize()):(C.parentNode.insertBefore(c,C),C.parentNode.removeChild(C),Browser.resizeCanvas&&Browser.setWindowedCanvasSize()),Module.onFullScreen&&Module.onFullScreen(Browser.isFullscreen),Module.onFullscreen&&Module.onFullscreen(Browser.isFullscreen),Browser.updateCanvasDimensions(c)}Browser.fullscreenHandlersInstalled||(Browser.fullscreenHandlersInstalled=!0,document.addEventListener("fullscreenchange",g,!1),document.addEventListener("mozfullscreenchange",g,!1),document.addEventListener("webkitfullscreenchange",g,!1),document.addEventListener("MSFullscreenChange",g,!1));var t=document.createElement("div");c.parentNode.insertBefore(t,c),t.appendChild(c),t.requestFullscreen=t.requestFullscreen||t.mozRequestFullScreen||t.msRequestFullscreen||(t.webkitRequestFullscreen?function(){t.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT)}:null)||(t.webkitRequestFullScreen?function(){t.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT)}:null),f?t.requestFullscreen({vrDisplay:f}):t.requestFullscreen()},requestFullScreen:function(i,u,f){return Module.printErr("Browser.requestFullScreen() is deprecated. Please call Browser.requestFullscreen instead."),Browser.requestFullScreen=function(c,g,t){return Browser.requestFullscreen(c,g,t)},Browser.requestFullscreen(i,u,f)},nextRAF:0,fakeRequestAnimationFrame:function(i){var u=Date.now();if(Browser.nextRAF===0)Browser.nextRAF=u+1e3/60;else for(;u+2>=Browser.nextRAF;)Browser.nextRAF+=1e3/60;var f=Math.max(Browser.nextRAF-u,0);setTimeout(i,f)},requestAnimationFrame:function(u){typeof window=="undefined"?Browser.fakeRequestAnimationFrame(u):(window.requestAnimationFrame||(window.requestAnimationFrame=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame||Browser.fakeRequestAnimationFrame),window.requestAnimationFrame(u))},safeCallback:function(i){return function(){if(!ABORT)return i.apply(null,arguments)}},allowAsyncCallbacks:!0,queuedAsyncCallbacks:[],pauseAsyncCallbacks:function(){Browser.allowAsyncCallbacks=!1},resumeAsyncCallbacks:function(){if(Browser.allowAsyncCallbacks=!0,Browser.queuedAsyncCallbacks.length>0){var i=Browser.queuedAsyncCallbacks;Browser.queuedAsyncCallbacks=[],i.forEach(function(u){u()})}},safeRequestAnimationFrame:function(i){return Browser.requestAnimationFrame(function(){ABORT||(Browser.allowAsyncCallbacks?i():Browser.queuedAsyncCallbacks.push(i))})},safeSetTimeout:function(i,u){return Module.noExitRuntime=!0,setTimeout(function(){ABORT||(Browser.allowAsyncCallbacks?i():Browser.queuedAsyncCallbacks.push(i))},u)},safeSetInterval:function(i,u){return Module.noExitRuntime=!0,setInterval(function(){ABORT||Browser.allowAsyncCallbacks&&i()},u)},getMimetype:function(i){return{jpg:"image/jpeg",jpeg:"image/jpeg",png:"image/png",bmp:"image/bmp",ogg:"audio/ogg",wav:"audio/wav",mp3:"audio/mpeg"}[i.substr(i.lastIndexOf(".")+1)]},getUserMedia:function(i){window.getUserMedia||(window.getUserMedia=navigator.getUserMedia||navigator.mozGetUserMedia),window.getUserMedia(i)},getMovementX:function(i){return i.movementX||i.mozMovementX||i.webkitMovementX||0},getMovementY:function(i){return i.movementY||i.mozMovementY||i.webkitMovementY||0},getMouseWheelDelta:function(i){var u=0;switch(i.type){case"DOMMouseScroll":u=i.detail;break;case"mousewheel":u=i.wheelDelta;break;case"wheel":u=i.deltaY;break;default:throw"unrecognized mouse wheel event: "+i.type}return u},mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseEvent:function(i){if(Browser.pointerLock)i.type!="mousemove"&&"mozMovementX"in i?Browser.mouseMovementX=Browser.mouseMovementY=0:(Browser.mouseMovementX=Browser.getMovementX(i),Browser.mouseMovementY=Browser.getMovementY(i)),typeof SDL!="undefined"?(Browser.mouseX=SDL.mouseX+Browser.mouseMovementX,Browser.mouseY=SDL.mouseY+Browser.mouseMovementY):(Browser.mouseX+=Browser.mouseMovementX,Browser.mouseY+=Browser.mouseMovementY);else{var u=Module.canvas.getBoundingClientRect(),f=Module.canvas.width,c=Module.canvas.height,g=typeof window.scrollX!="undefined"?window.scrollX:window.pageXOffset,t=typeof window.scrollY!="undefined"?window.scrollY:window.pageYOffset;if(i.type==="touchstart"||i.type==="touchend"||i.type==="touchmove"){var C=i.touch;if(C===void 0)return;var A=C.pageX-(g+u.left),x=C.pageY-(t+u.top);A=A*(f/u.width),x=x*(c/u.height);var D={x:A,y:x};if(i.type==="touchstart")Browser.lastTouches[C.identifier]=D,Browser.touches[C.identifier]=D;else if(i.type==="touchend"||i.type==="touchmove"){var L=Browser.touches[C.identifier];L||(L=D),Browser.lastTouches[C.identifier]=L,Browser.touches[C.identifier]=D}return}var N=i.pageX-(g+u.left),j=i.pageY-(t+u.top);N=N*(f/u.width),j=j*(c/u.height),Browser.mouseMovementX=N-Browser.mouseX,Browser.mouseMovementY=j-Browser.mouseY,Browser.mouseX=N,Browser.mouseY=j}},asyncLoad:function(i,u,f,c){var g=c?"":getUniqueRunDependency("al "+i);Module.readAsync(i,function(t){assert(t,'Loading data file "'+i+'" failed (no arrayBuffer).'),u(new Uint8Array(t)),g&&removeRunDependency(g)},function(t){if(f)f();else throw'Loading data file "'+i+'" failed.'}),g&&addRunDependency(g)},resizeListeners:[],updateResizeListeners:function(){var i=Module.canvas;Browser.resizeListeners.forEach(function(u){u(i.width,i.height)})},setCanvasSize:function(i,u,f){var c=Module.canvas;Browser.updateCanvasDimensions(c,i,u),f||Browser.updateResizeListeners()},windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize:function(){if(typeof SDL!="undefined"){var i=HEAPU32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2];i=i|8388608,HEAP32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2]=i}Browser.updateResizeListeners()},setWindowedCanvasSize:function(){if(typeof SDL!="undefined"){var i=HEAPU32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2];i=i&~8388608,HEAP32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2]=i}Browser.updateResizeListeners()},updateCanvasDimensions:function(i,u,f){u&&f?(i.widthNative=u,i.heightNative=f):(u=i.widthNative,f=i.heightNative);var c=u,g=f;if(Module.forcedAspectRatio&&Module.forcedAspectRatio>0&&(c/g>2];return u},getStr:function(){var i=Pointer_stringify(SYSCALLS.get());return i},get64:function(){var i=SYSCALLS.get(),u=SYSCALLS.get();return i>=0?assert(u===0):assert(u===-1),i},getZero:function(){assert(SYSCALLS.get()===0)}};function ___syscall6(i,u){SYSCALLS.varargs=u;try{var f=SYSCALLS.getStreamFromFD();return FS.close(f),0}catch(c){return(typeof FS=="undefined"||!(c instanceof FS.ErrnoError))&&abort(c),-c.errno}}function ___syscall54(i,u){SYSCALLS.varargs=u;try{return 0}catch(f){return(typeof FS=="undefined"||!(f instanceof FS.ErrnoError))&&abort(f),-f.errno}}function _typeModule(i){var u=[[0,1,"X"],[1,1,"const X"],[128,1,"X *"],[256,1,"X &"],[384,1,"X &&"],[512,1,"std::shared_ptr"],[640,1,"std::unique_ptr"],[5120,1,"std::vector"],[6144,2,"std::array"],[9216,-1,"std::function"]];function f(x,D,L,N,j,$){if(D==1){var h=N&896;(h==128||h==256||h==384)&&(x="X const")}var re;return $?re=L.replace("X",x).replace("Y",j):re=x.replace("X",L).replace("Y",j),re.replace(/([*&]) (?=[*&])/g,"$1")}function c(x,D,L,N,j){throw new Error(x+" type "+L.replace("X",D+"?")+(N?" with flag "+N:"")+" in "+j)}function g(x,D,L,N,j,$,h,re){$===void 0&&($="X"),re===void 0&&(re=1);var ce=L(x);if(ce)return ce;var Q=N(x),oe=Q.placeholderFlag,Se=u[oe];h&&Se&&($=f(h[2],h[0],$,Se[0],"?",!0));var me;oe==0&&(me="Unbound"),oe>=10&&(me="Corrupt"),re>20&&(me="Deeply nested"),me&&c(me,x,$,oe,j||"?");var De=Q.paramList[0],J=g(De,D,L,N,j,$,Se,re+1),Te,Oe={flags:Se[0],id:x,name:"",paramList:[J]},Le=[],ot="?";switch(Q.placeholderFlag){case 1:Te=J.spec;break;case 2:if((J.flags&15360)==1024&&J.spec.ptrSize==1){Oe.flags=7168;break}case 3:case 6:case 5:Te=J.spec,(J.flags&15360)!=2048;break;case 8:ot=""+Q.paramList[1],Oe.paramList.push(Q.paramList[1]);break;case 9:for(var ct=0,Ue=Q.paramList[1];ct>2]=i),i}function _llvm_stacksave(){var i=_llvm_stacksave;return i.LLVM_SAVEDSTACKS||(i.LLVM_SAVEDSTACKS=[]),i.LLVM_SAVEDSTACKS.push(Runtime.stackSave()),i.LLVM_SAVEDSTACKS.length-1}function ___syscall140(i,u){SYSCALLS.varargs=u;try{var f=SYSCALLS.getStreamFromFD(),c=SYSCALLS.get(),g=SYSCALLS.get(),t=SYSCALLS.get(),C=SYSCALLS.get(),A=g;return FS.llseek(f,A,C),HEAP32[t>>2]=f.position,f.getdents&&A===0&&C===0&&(f.getdents=null),0}catch(x){return(typeof FS=="undefined"||!(x instanceof FS.ErrnoError))&&abort(x),-x.errno}}function ___syscall146(i,u){SYSCALLS.varargs=u;try{var f=SYSCALLS.get(),c=SYSCALLS.get(),g=SYSCALLS.get(),t=0;___syscall146.buffer||(___syscall146.buffers=[null,[],[]],___syscall146.printChar=function(L,N){var j=___syscall146.buffers[L];assert(j),N===0||N===10?((L===1?Module.print:Module.printErr)(UTF8ArrayToString(j,0)),j.length=0):j.push(N)});for(var C=0;C>2],x=HEAP32[c+(C*8+4)>>2],D=0;Di.pageSize/2||u>i.pageSize-f){var c=_nbind.typeNameTbl.NBind.proto;return c.lalloc(u)}else return HEAPU32[i.usedPtr]=f+u,i.rootPtr+f},i.lreset=function(u,f){var c=HEAPU32[i.pagePtr];if(c){var g=_nbind.typeNameTbl.NBind.proto;g.lreset(u,f)}else HEAPU32[i.usedPtr]=u},i}();_nbind.Pool=Pool;function constructType(i,u){var f=i==10240?_nbind.makeTypeNameTbl[u.name]||_nbind.BindType:_nbind.makeTypeKindTbl[i],c=new f(u);return typeIdTbl[u.id]=c,_nbind.typeNameTbl[u.name]=c,c}_nbind.constructType=constructType;function getType(i){return typeIdTbl[i]}_nbind.getType=getType;function queryType(i){var u=HEAPU8[i],f=_nbind.structureList[u][1];i/=4,f<0&&(++i,f=HEAPU32[i]+1);var c=Array.prototype.slice.call(HEAPU32.subarray(i+1,i+1+f));return u==9&&(c=[c[0],c.slice(1)]),{paramList:c,placeholderFlag:u}}_nbind.queryType=queryType;function getTypes(i,u){return i.map(function(f){return typeof f=="number"?_nbind.getComplexType(f,constructType,getType,queryType,u):_nbind.typeNameTbl[f]})}_nbind.getTypes=getTypes;function readTypeIdList(i,u){return Array.prototype.slice.call(HEAPU32,i/4,i/4+u)}_nbind.readTypeIdList=readTypeIdList;function readAsciiString(i){for(var u=i;HEAPU8[u++];);return String.fromCharCode.apply("",HEAPU8.subarray(i,u-1))}_nbind.readAsciiString=readAsciiString;function readPolicyList(i){var u={};if(i)for(;;){var f=HEAPU32[i/4];if(!f)break;u[readAsciiString(f)]=!0,i+=4}return u}_nbind.readPolicyList=readPolicyList;function getDynCall(i,u){var f={float32_t:"d",float64_t:"d",int64_t:"d",uint64_t:"d",void:"v"},c=i.map(function(t){return f[t.name]||"i"}).join(""),g=Module["dynCall_"+c];if(!g)throw new Error("dynCall_"+c+" not found for "+u+"("+i.map(function(t){return t.name}).join(", ")+")");return g}_nbind.getDynCall=getDynCall;function addMethod(i,u,f,c){var g=i[u];i.hasOwnProperty(u)&&g?((g.arity||g.arity===0)&&(g=_nbind.makeOverloader(g,g.arity),i[u]=g),g.addMethod(f,c)):(f.arity=c,i[u]=f)}_nbind.addMethod=addMethod;function throwError(i){throw new Error(i)}_nbind.throwError=throwError,_nbind.bigEndian=!1,_a=_typeModule(_typeModule),_nbind.Type=_a.Type,_nbind.makeType=_a.makeType,_nbind.getComplexType=_a.getComplexType,_nbind.structureList=_a.structureList;var BindType=function(i){__extends(u,i);function u(){var f=i!==null&&i.apply(this,arguments)||this;return f.heap=HEAPU32,f.ptrSize=4,f}return u.prototype.needsWireRead=function(f){return!!this.wireRead||!!this.makeWireRead},u.prototype.needsWireWrite=function(f){return!!this.wireWrite||!!this.makeWireWrite},u}(_nbind.Type);_nbind.BindType=BindType;var PrimitiveType=function(i){__extends(u,i);function u(f){var c=i.call(this,f)||this,g=f.flags&32?{32:HEAPF32,64:HEAPF64}:f.flags&8?{8:HEAPU8,16:HEAPU16,32:HEAPU32}:{8:HEAP8,16:HEAP16,32:HEAP32};return c.heap=g[f.ptrSize*8],c.ptrSize=f.ptrSize,c}return u.prototype.needsWireWrite=function(f){return!!f&&!!f.Strict},u.prototype.makeWireWrite=function(f,c){return c&&c.Strict&&function(g){if(typeof g=="number")return g;throw new Error("Type mismatch")}},u}(BindType);_nbind.PrimitiveType=PrimitiveType;function pushCString(i,u){if(i==null){if(u&&u.Nullable)return 0;throw new Error("Type mismatch")}if(u&&u.Strict){if(typeof i!="string")throw new Error("Type mismatch")}else i=i.toString();var f=Module.lengthBytesUTF8(i)+1,c=_nbind.Pool.lalloc(f);return Module.stringToUTF8Array(i,HEAPU8,c,f),c}_nbind.pushCString=pushCString;function popCString(i){return i===0?null:Module.Pointer_stringify(i)}_nbind.popCString=popCString;var CStringType=function(i){__extends(u,i);function u(){var f=i!==null&&i.apply(this,arguments)||this;return f.wireRead=popCString,f.wireWrite=pushCString,f.readResources=[_nbind.resources.pool],f.writeResources=[_nbind.resources.pool],f}return u.prototype.makeWireWrite=function(f,c){return function(g){return pushCString(g,c)}},u}(BindType);_nbind.CStringType=CStringType;var BooleanType=function(i){__extends(u,i);function u(){var f=i!==null&&i.apply(this,arguments)||this;return f.wireRead=function(c){return!!c},f}return u.prototype.needsWireWrite=function(f){return!!f&&!!f.Strict},u.prototype.makeWireRead=function(f){return"!!("+f+")"},u.prototype.makeWireWrite=function(f,c){return c&&c.Strict&&function(g){if(typeof g=="boolean")return g;throw new Error("Type mismatch")}||f},u}(BindType);_nbind.BooleanType=BooleanType;var Wrapper=function(){function i(){}return i.prototype.persist=function(){this.__nbindState|=1},i}();_nbind.Wrapper=Wrapper;function makeBound(i,u){var f=function(c){__extends(g,c);function g(t,C,A,x){var D=c.call(this)||this;if(!(D instanceof g))return new(Function.prototype.bind.apply(g,Array.prototype.concat.apply([null],arguments)));var L=C,N=A,j=x;if(t!==_nbind.ptrMarker){var $=D.__nbindConstructor.apply(D,arguments);L=4096|512,j=HEAPU32[$/4],N=HEAPU32[$/4+1]}var h={configurable:!0,enumerable:!1,value:null,writable:!1},re={__nbindFlags:L,__nbindPtr:N};j&&(re.__nbindShared=j,_nbind.mark(D));for(var ce=0,Q=Object.keys(re);ce>=1;var f=_nbind.valueList[i];return _nbind.valueList[i]=firstFreeValue,firstFreeValue=i,f}else{if(u)return _nbind.popShared(i,u);throw new Error("Invalid value slot "+i)}}_nbind.popValue=popValue;var valueBase=18446744073709552e3;function push64(i){return typeof i=="number"?i:pushValue(i)*4096+valueBase}function pop64(i){return i=3?C=Buffer.from(t):C=new Buffer(t),C.copy(c)}else getBuffer(c).set(t)}}_nbind.commitBuffer=commitBuffer;var dirtyList=[],gcTimer=0;function sweep(){for(var i=0,u=dirtyList;i>2]=DYNAMIC_BASE,staticSealed=!0;function invoke_viiiii(i,u,f,c,g,t){try{Module.dynCall_viiiii(i,u,f,c,g,t)}catch(C){if(typeof C!="number"&&C!=="longjmp")throw C;Module.setThrew(1,0)}}function invoke_vif(i,u,f){try{Module.dynCall_vif(i,u,f)}catch(c){if(typeof c!="number"&&c!=="longjmp")throw c;Module.setThrew(1,0)}}function invoke_vid(i,u,f){try{Module.dynCall_vid(i,u,f)}catch(c){if(typeof c!="number"&&c!=="longjmp")throw c;Module.setThrew(1,0)}}function invoke_fiff(i,u,f,c){try{return Module.dynCall_fiff(i,u,f,c)}catch(g){if(typeof g!="number"&&g!=="longjmp")throw g;Module.setThrew(1,0)}}function invoke_vi(i,u){try{Module.dynCall_vi(i,u)}catch(f){if(typeof f!="number"&&f!=="longjmp")throw f;Module.setThrew(1,0)}}function invoke_vii(i,u,f){try{Module.dynCall_vii(i,u,f)}catch(c){if(typeof c!="number"&&c!=="longjmp")throw c;Module.setThrew(1,0)}}function invoke_ii(i,u){try{return Module.dynCall_ii(i,u)}catch(f){if(typeof f!="number"&&f!=="longjmp")throw f;Module.setThrew(1,0)}}function invoke_viddi(i,u,f,c,g){try{Module.dynCall_viddi(i,u,f,c,g)}catch(t){if(typeof t!="number"&&t!=="longjmp")throw t;Module.setThrew(1,0)}}function invoke_vidd(i,u,f,c){try{Module.dynCall_vidd(i,u,f,c)}catch(g){if(typeof g!="number"&&g!=="longjmp")throw g;Module.setThrew(1,0)}}function invoke_iiii(i,u,f,c){try{return Module.dynCall_iiii(i,u,f,c)}catch(g){if(typeof g!="number"&&g!=="longjmp")throw g;Module.setThrew(1,0)}}function invoke_diii(i,u,f,c){try{return Module.dynCall_diii(i,u,f,c)}catch(g){if(typeof g!="number"&&g!=="longjmp")throw g;Module.setThrew(1,0)}}function invoke_di(i,u){try{return Module.dynCall_di(i,u)}catch(f){if(typeof f!="number"&&f!=="longjmp")throw f;Module.setThrew(1,0)}}function invoke_iid(i,u,f){try{return Module.dynCall_iid(i,u,f)}catch(c){if(typeof c!="number"&&c!=="longjmp")throw c;Module.setThrew(1,0)}}function invoke_iii(i,u,f){try{return Module.dynCall_iii(i,u,f)}catch(c){if(typeof c!="number"&&c!=="longjmp")throw c;Module.setThrew(1,0)}}function invoke_viiddi(i,u,f,c,g,t){try{Module.dynCall_viiddi(i,u,f,c,g,t)}catch(C){if(typeof C!="number"&&C!=="longjmp")throw C;Module.setThrew(1,0)}}function invoke_viiiiii(i,u,f,c,g,t,C){try{Module.dynCall_viiiiii(i,u,f,c,g,t,C)}catch(A){if(typeof A!="number"&&A!=="longjmp")throw A;Module.setThrew(1,0)}}function invoke_dii(i,u,f){try{return Module.dynCall_dii(i,u,f)}catch(c){if(typeof c!="number"&&c!=="longjmp")throw c;Module.setThrew(1,0)}}function invoke_i(i){try{return Module.dynCall_i(i)}catch(u){if(typeof u!="number"&&u!=="longjmp")throw u;Module.setThrew(1,0)}}function invoke_iiiiii(i,u,f,c,g,t){try{return Module.dynCall_iiiiii(i,u,f,c,g,t)}catch(C){if(typeof C!="number"&&C!=="longjmp")throw C;Module.setThrew(1,0)}}function invoke_viiid(i,u,f,c,g){try{Module.dynCall_viiid(i,u,f,c,g)}catch(t){if(typeof t!="number"&&t!=="longjmp")throw t;Module.setThrew(1,0)}}function invoke_viififi(i,u,f,c,g,t,C){try{Module.dynCall_viififi(i,u,f,c,g,t,C)}catch(A){if(typeof A!="number"&&A!=="longjmp")throw A;Module.setThrew(1,0)}}function invoke_viii(i,u,f,c){try{Module.dynCall_viii(i,u,f,c)}catch(g){if(typeof g!="number"&&g!=="longjmp")throw g;Module.setThrew(1,0)}}function invoke_v(i){try{Module.dynCall_v(i)}catch(u){if(typeof u!="number"&&u!=="longjmp")throw u;Module.setThrew(1,0)}}function invoke_viid(i,u,f,c){try{Module.dynCall_viid(i,u,f,c)}catch(g){if(typeof g!="number"&&g!=="longjmp")throw g;Module.setThrew(1,0)}}function invoke_idd(i,u,f){try{return Module.dynCall_idd(i,u,f)}catch(c){if(typeof c!="number"&&c!=="longjmp")throw c;Module.setThrew(1,0)}}function invoke_viiii(i,u,f,c,g){try{Module.dynCall_viiii(i,u,f,c,g)}catch(t){if(typeof t!="number"&&t!=="longjmp")throw t;Module.setThrew(1,0)}}Module.asmGlobalArg={Math,Int8Array,Int16Array,Int32Array,Uint8Array,Uint16Array,Uint32Array,Float32Array,Float64Array,NaN:NaN,Infinity:Infinity},Module.asmLibraryArg={abort,assert,enlargeMemory,getTotalMemory,abortOnCannotGrowMemory,invoke_viiiii,invoke_vif,invoke_vid,invoke_fiff,invoke_vi,invoke_vii,invoke_ii,invoke_viddi,invoke_vidd,invoke_iiii,invoke_diii,invoke_di,invoke_iid,invoke_iii,invoke_viiddi,invoke_viiiiii,invoke_dii,invoke_i,invoke_iiiiii,invoke_viiid,invoke_viififi,invoke_viii,invoke_v,invoke_viid,invoke_idd,invoke_viiii,_emscripten_asm_const_iiiii,_emscripten_asm_const_iiidddddd,_emscripten_asm_const_iiiid,__nbind_reference_external,_emscripten_asm_const_iiiiiiii,_removeAccessorPrefix,_typeModule,__nbind_register_pool,__decorate,_llvm_stackrestore,___cxa_atexit,__extends,__nbind_get_value_object,__ZN8facebook4yoga14YGNodeToStringEPNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEP6YGNode14YGPrintOptionsj,_emscripten_set_main_loop_timing,__nbind_register_primitive,__nbind_register_type,_emscripten_memcpy_big,__nbind_register_function,___setErrNo,__nbind_register_class,__nbind_finish,_abort,_nbind_value,_llvm_stacksave,___syscall54,_defineHidden,_emscripten_set_main_loop,_emscripten_get_now,__nbind_register_callback_signature,_emscripten_asm_const_iiiiii,__nbind_free_external,_emscripten_asm_const_iiii,_emscripten_asm_const_iiididi,___syscall6,_atexit,___syscall140,___syscall146,DYNAMICTOP_PTR,tempDoublePtr,ABORT,STACKTOP,STACK_MAX,cttz_i8,___dso_handle};var asm=function(i,u,f){var c=new i.Int8Array(f),g=new i.Int16Array(f),t=new i.Int32Array(f),C=new i.Uint8Array(f),A=new i.Uint16Array(f),x=new i.Uint32Array(f),D=new i.Float32Array(f),L=new i.Float64Array(f),N=u.DYNAMICTOP_PTR|0,j=u.tempDoublePtr|0,$=u.ABORT|0,h=u.STACKTOP|0,re=u.STACK_MAX|0,ce=u.cttz_i8|0,Q=u.___dso_handle|0,oe=0,Se=0,me=0,De=0,J=i.NaN,Te=i.Infinity,Oe=0,Le=0,ot=0,ct=0,Ue=0,be=0,At=i.Math.floor,Ot=i.Math.abs,Nt=i.Math.sqrt,Je=i.Math.pow,V=i.Math.cos,ne=i.Math.sin,ge=i.Math.tan,Z=i.Math.acos,Ae=i.Math.asin,at=i.Math.atan,it=i.Math.atan2,Ft=i.Math.exp,jt=i.Math.log,hn=i.Math.ceil,Un=i.Math.imul,Jt=i.Math.min,Yt=i.Math.max,cr=i.Math.clz32,w=i.Math.fround,pt=u.abort,Mn=u.assert,Bn=u.enlargeMemory,Xn=u.getTotalMemory,vr=u.abortOnCannotGrowMemory,gr=u.invoke_viiiii,r0=u.invoke_vif,Ci=u.invoke_vid,yo=u.invoke_fiff,Ds=u.invoke_vi,Mu=u.invoke_vii,Gf=u.invoke_ii,iu=u.invoke_viddi,ou=u.invoke_vidd,ol=u.invoke_iiii,ul=u.invoke_diii,Es=u.invoke_di,Uo=u.invoke_iid,sl=u.invoke_iii,Ss=u.invoke_viiddi,Cs=u.invoke_viiiiii,Ti=u.invoke_dii,Fu=u.invoke_i,ll=u.invoke_iiiiii,fl=u.invoke_viiid,cl=u.invoke_viififi,al=u.invoke_viii,Ui=u.invoke_v,Mr=u.invoke_viid,Ac=u.invoke_idd,of=u.invoke_viiii,Ts=u._emscripten_asm_const_iiiii,xs=u._emscripten_asm_const_iiidddddd,dl=u._emscripten_asm_const_iiiid,qi=u.__nbind_reference_external,qo=u._emscripten_asm_const_iiiiiiii,kr=u._removeAccessorPrefix,Fr=u._typeModule,si=u.__nbind_register_pool,H0=u.__decorate,b0=u._llvm_stackrestore,Bt=u.___cxa_atexit,Lu=u.__extends,c0=u.__nbind_get_value_object,Ru=u.__ZN8facebook4yoga14YGNodeToStringEPNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEP6YGNode14YGPrintOptionsj,ks=u._emscripten_set_main_loop_timing,As=u.__nbind_register_primitive,uu=u.__nbind_register_type,wo=u._emscripten_memcpy_big,zo=u.__nbind_register_function,Os=u.___setErrNo,Is=u.__nbind_register_class,uf=u.__nbind_finish,_n=u._abort,Nu=u._nbind_value,Wo=u._llvm_stacksave,su=u.___syscall54,Ps=u._defineHidden,pl=u._emscripten_set_main_loop,Vf=u._emscripten_get_now,hl=u.__nbind_register_callback_signature,Bu=u._emscripten_asm_const_iiiiii,ju=u.__nbind_free_external,sf=u._emscripten_asm_const_iiii,ro=u._emscripten_asm_const_iiididi,Ms=u.___syscall6,ml=u._atexit,Uu=u.___syscall140,G0=u.___syscall146,Fs=w(0);let tt=w(0);function zi(e){e=e|0;var n=0;return n=h,h=h+e|0,h=h+15&-16,n|0}function lu(){return h|0}function Ho(e){e=e|0,h=e}function O0(e,n){e=e|0,n=n|0,h=e,re=n}function vl(e,n){e=e|0,n=n|0,oe||(oe=e,Se=n)}function gl(e){e=e|0,be=e}function fu(){return be|0}function _l(){var e=0,n=0;vn(8104,8,400)|0,vn(8504,408,540)|0,e=9044,n=e+44|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));c[9088]=0,c[9089]=1,t[2273]=0,t[2274]=948,t[2275]=948,Bt(17,8104,Q|0)|0}function Sn(e){e=e|0,lf(e+948|0)}function gt(e){return e=w(e),((Ar(e)|0)&2147483647)>>>0>2139095040|0}function en(e,n,r){e=e|0,n=n|0,r=r|0;e:do if(t[e+(n<<3)+4>>2]|0)e=e+(n<<3)|0;else{if((n|2|0)==3?t[e+60>>2]|0:0){e=e+56|0;break}switch(n|0){case 0:case 2:case 4:case 5:{if(t[e+52>>2]|0){e=e+48|0;break e}break}default:}if(t[e+68>>2]|0){e=e+64|0;break}else{e=(n|1|0)==5?948:r;break}}while(0);return e|0}function I0(e){e=e|0;var n=0;return n=uh(1e3)|0,li(e,(n|0)!=0,2456),t[2276]=(t[2276]|0)+1,vn(n|0,8104,1e3)|0,c[e+2>>0]|0&&(t[n+4>>2]=2,t[n+12>>2]=4),t[n+976>>2]=e,n|0}function li(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0;s=h,h=h+16|0,o=s,n||(t[o>>2]=r,zs(e,5,3197,o)),h=s}function qu(){return I0(956)|0}function Wi(e){e=e|0;var n=0;return n=Tt(1e3)|0,zu(n,e),li(t[e+976>>2]|0,1,2456),t[2276]=(t[2276]|0)+1,t[n+944>>2]=0,n|0}function zu(e,n){e=e|0,n=n|0;var r=0;vn(e|0,n|0,948)|0,af(e+948|0,n+948|0),r=e+960|0,e=n+960|0,n=r+40|0;do t[r>>2]=t[e>>2],r=r+4|0,e=e+4|0;while((r|0)<(n|0))}function Wu(e){e=e|0;var n=0,r=0,o=0,s=0;if(n=e+944|0,r=t[n>>2]|0,r|0&&(Ls(r+948|0,e)|0,t[n>>2]=0),r=fi(e)|0,r|0){n=0;do t[(e0(e,n)|0)+944>>2]=0,n=n+1|0;while((n|0)!=(r|0))}r=e+948|0,o=t[r>>2]|0,s=e+952|0,n=t[s>>2]|0,(n|0)!=(o|0)&&(t[s>>2]=n+(~((n+-4-o|0)>>>2)<<2)),io(r),sh(e),t[2276]=(t[2276]|0)+-1}function Ls(e,n){e=e|0,n=n|0;var r=0,o=0,s=0,l=0,d=0,_=0;o=t[e>>2]|0,_=e+4|0,r=t[_>>2]|0,l=r;e:do if((o|0)==(r|0))s=o,d=4;else for(e=o;;){if((t[e>>2]|0)==(n|0)){s=e,d=4;break e}if(e=e+4|0,(e|0)==(r|0)){e=0;break}}while(0);return(d|0)==4&&((s|0)!=(r|0)?(o=s+4|0,e=l-o|0,n=e>>2,n&&(Y1(s|0,o|0,e|0)|0,r=t[_>>2]|0),e=s+(n<<2)|0,(r|0)==(e|0)||(t[_>>2]=r+(~((r+-4-e|0)>>>2)<<2)),e=1):e=0),e|0}function fi(e){return e=e|0,(t[e+952>>2]|0)-(t[e+948>>2]|0)>>2|0}function e0(e,n){e=e|0,n=n|0;var r=0;return r=t[e+948>>2]|0,(t[e+952>>2]|0)-r>>2>>>0>n>>>0?e=t[r+(n<<2)>>2]|0:e=0,e|0}function io(e){e=e|0;var n=0,r=0,o=0,s=0;o=h,h=h+32|0,n=o,s=t[e>>2]|0,r=(t[e+4>>2]|0)-s|0,((t[e+8>>2]|0)-s|0)>>>0>r>>>0&&(s=r>>2,z(n,s,s,e+8|0),dr(e,n),Or(n)),h=o}function D0(e,n){e=e|0,n=n|0;var r=0,o=0,s=0,l=0,d=0,_=0,y=0,k=0;k=fi(e)|0;do if(k|0){if((t[(e0(e,0)|0)+944>>2]|0)==(e|0)){if(!(Ls(e+948|0,n)|0))break;vn(n+400|0,8504,540)|0,t[n+944>>2]=0,ln(e);break}d=t[(t[e+976>>2]|0)+12>>2]|0,_=e+948|0,y=(d|0)==0,r=0,l=0;do o=t[(t[_>>2]|0)+(l<<2)>>2]|0,(o|0)==(n|0)?ln(e):(s=Wi(o)|0,t[(t[_>>2]|0)+(r<<2)>>2]=s,t[s+944>>2]=e,y||Q4[d&15](o,s,e,r),r=r+1|0),l=l+1|0;while((l|0)!=(k|0));if(r>>>0>>0){y=e+948|0,_=e+952|0,d=r,r=t[_>>2]|0;do l=(t[y>>2]|0)+(d<<2)|0,o=l+4|0,s=r-o|0,n=s>>2,n&&(Y1(l|0,o|0,s|0)|0,r=t[_>>2]|0),s=r,o=l+(n<<2)|0,(s|0)!=(o|0)&&(r=s+(~((s+-4-o|0)>>>2)<<2)|0,t[_>>2]=r),d=d+1|0;while((d|0)!=(k|0))}}while(0)}function Do(e){e=e|0;var n=0,r=0,o=0,s=0;i0(e,(fi(e)|0)==0,2491),i0(e,(t[e+944>>2]|0)==0,2545),n=e+948|0,r=t[n>>2]|0,o=e+952|0,s=t[o>>2]|0,(s|0)!=(r|0)&&(t[o>>2]=s+(~((s+-4-r|0)>>>2)<<2)),io(n),n=e+976|0,r=t[n>>2]|0,vn(e|0,8104,1e3)|0,c[r+2>>0]|0&&(t[e+4>>2]=2,t[e+12>>2]=4),t[n>>2]=r}function i0(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0;s=h,h=h+16|0,o=s,n||(t[o>>2]=r,wn(e,5,3197,o)),h=s}function Rs(){return t[2276]|0}function a0(){var e=0;return e=uh(20)|0,Hu((e|0)!=0,2592),t[2277]=(t[2277]|0)+1,t[e>>2]=t[239],t[e+4>>2]=t[240],t[e+8>>2]=t[241],t[e+12>>2]=t[242],t[e+16>>2]=t[243],e|0}function Hu(e,n){e=e|0,n=n|0;var r=0,o=0;o=h,h=h+16|0,r=o,e||(t[r>>2]=n,wn(0,5,3197,r)),h=o}function V0(e){e=e|0,sh(e),t[2277]=(t[2277]|0)+-1}function bu(e,n){e=e|0,n=n|0;var r=0;n?(i0(e,(fi(e)|0)==0,2629),r=1):(r=0,n=0),t[e+964>>2]=n,t[e+988>>2]=r}function Ns(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0,l=0,d=0;o=h,h=h+16|0,l=o+8|0,s=o+4|0,d=o,t[s>>2]=n,i0(e,(t[n+944>>2]|0)==0,2709),i0(e,(t[e+964>>2]|0)==0,2763),bo(e),n=e+948|0,t[d>>2]=(t[n>>2]|0)+(r<<2),t[l>>2]=t[d>>2],P0(n,l,s)|0,t[(t[s>>2]|0)+944>>2]=e,ln(e),h=o}function bo(e){e=e|0;var n=0,r=0,o=0,s=0,l=0,d=0,_=0;if(r=fi(e)|0,r|0?(t[(e0(e,0)|0)+944>>2]|0)!=(e|0):0){o=t[(t[e+976>>2]|0)+12>>2]|0,s=e+948|0,l=(o|0)==0,n=0;do d=t[(t[s>>2]|0)+(n<<2)>>2]|0,_=Wi(d)|0,t[(t[s>>2]|0)+(n<<2)>>2]=_,t[_+944>>2]=e,l||Q4[o&15](d,_,e,n),n=n+1|0;while((n|0)!=(r|0))}}function P0(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0,l=0,d=0,_=0,y=0,k=0,T=0,P=0,q=0,we=0,le=0,ie=0,Pe=0,ke=0;Pe=h,h=h+64|0,P=Pe+52|0,_=Pe+48|0,q=Pe+28|0,we=Pe+24|0,le=Pe+20|0,ie=Pe,o=t[e>>2]|0,l=o,n=o+((t[n>>2]|0)-l>>2<<2)|0,o=e+4|0,s=t[o>>2]|0,d=e+8|0;do if(s>>>0<(t[d>>2]|0)>>>0){if((n|0)==(s|0)){t[n>>2]=t[r>>2],t[o>>2]=(t[o>>2]|0)+4;break}Qn(e,n,s,n+4|0),n>>>0<=r>>>0&&(r=(t[o>>2]|0)>>>0>r>>>0?r+4|0:r),t[n>>2]=t[r>>2]}else{o=(s-l>>2)+1|0,s=Q0(e)|0,s>>>0>>0&&$n(e),T=t[e>>2]|0,k=(t[d>>2]|0)-T|0,l=k>>1,z(ie,k>>2>>>0>>1>>>0?l>>>0>>0?o:l:s,n-T>>2,e+8|0),T=ie+8|0,o=t[T>>2]|0,l=ie+12|0,k=t[l>>2]|0,d=k,y=o;do if((o|0)==(k|0)){if(k=ie+4|0,o=t[k>>2]|0,ke=t[ie>>2]|0,s=ke,o>>>0<=ke>>>0){o=d-s>>1,o=(o|0)==0?1:o,z(q,o,o>>>2,t[ie+16>>2]|0),t[we>>2]=t[k>>2],t[le>>2]=t[T>>2],t[_>>2]=t[we>>2],t[P>>2]=t[le>>2],s0(q,_,P),o=t[ie>>2]|0,t[ie>>2]=t[q>>2],t[q>>2]=o,o=q+4|0,ke=t[k>>2]|0,t[k>>2]=t[o>>2],t[o>>2]=ke,o=q+8|0,ke=t[T>>2]|0,t[T>>2]=t[o>>2],t[o>>2]=ke,o=q+12|0,ke=t[l>>2]|0,t[l>>2]=t[o>>2],t[o>>2]=ke,Or(q),o=t[T>>2]|0;break}l=o,d=((l-s>>2)+1|0)/-2|0,_=o+(d<<2)|0,s=y-l|0,l=s>>2,l&&(Y1(_|0,o|0,s|0)|0,o=t[k>>2]|0),ke=_+(l<<2)|0,t[T>>2]=ke,t[k>>2]=o+(d<<2),o=ke}while(0);t[o>>2]=t[r>>2],t[T>>2]=(t[T>>2]|0)+4,n=nn(e,ie,n)|0,Or(ie)}while(0);return h=Pe,n|0}function ln(e){e=e|0;var n=0;do{if(n=e+984|0,c[n>>0]|0)break;c[n>>0]=1,D[e+504>>2]=w(J),e=t[e+944>>2]|0}while((e|0)!=0)}function lf(e){e=e|0;var n=0,r=0,o=0;r=t[e>>2]|0,o=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~((n+-4-o|0)>>>2)<<2)),Ve(r))}function nr(e){return e=e|0,t[e+944>>2]|0}function rr(e){e=e|0,i0(e,(t[e+964>>2]|0)!=0,2832),ln(e)}function Go(e){return e=e|0,(c[e+984>>0]|0)!=0|0}function Gu(e,n){e=e|0,n=n|0,fL(e,n,400)|0&&(vn(e|0,n|0,400)|0,ln(e))}function yl(e){e=e|0;var n=tt;return n=w(D[e+44>>2]),e=gt(n)|0,w(e?w(0):n)}function cu(e){e=e|0;var n=tt;return n=w(D[e+48>>2]),gt(n)|0&&(n=c[(t[e+976>>2]|0)+2>>0]|0?w(1):w(0)),w(n)}function Bs(e,n){e=e|0,n=n|0,t[e+980>>2]=n}function Vu(e){return e=e|0,t[e+980>>2]|0}function M0(e,n){e=e|0,n=n|0;var r=0;r=e+4|0,(t[r>>2]|0)!=(n|0)&&(t[r>>2]=n,ln(e))}function au(e){return e=e|0,t[e+4>>2]|0}function Lr(e,n){e=e|0,n=n|0;var r=0;r=e+8|0,(t[r>>2]|0)!=(n|0)&&(t[r>>2]=n,ln(e))}function F(e){return e=e|0,t[e+8>>2]|0}function R(e,n){e=e|0,n=n|0;var r=0;r=e+12|0,(t[r>>2]|0)!=(n|0)&&(t[r>>2]=n,ln(e))}function U(e){return e=e|0,t[e+12>>2]|0}function H(e,n){e=e|0,n=n|0;var r=0;r=e+16|0,(t[r>>2]|0)!=(n|0)&&(t[r>>2]=n,ln(e))}function fe(e){return e=e|0,t[e+16>>2]|0}function ue(e,n){e=e|0,n=n|0;var r=0;r=e+20|0,(t[r>>2]|0)!=(n|0)&&(t[r>>2]=n,ln(e))}function de(e){return e=e|0,t[e+20>>2]|0}function W(e,n){e=e|0,n=n|0;var r=0;r=e+24|0,(t[r>>2]|0)!=(n|0)&&(t[r>>2]=n,ln(e))}function ve(e){return e=e|0,t[e+24>>2]|0}function Fe(e,n){e=e|0,n=n|0;var r=0;r=e+28|0,(t[r>>2]|0)!=(n|0)&&(t[r>>2]=n,ln(e))}function Ge(e){return e=e|0,t[e+28>>2]|0}function K(e,n){e=e|0,n=n|0;var r=0;r=e+32|0,(t[r>>2]|0)!=(n|0)&&(t[r>>2]=n,ln(e))}function xe(e){return e=e|0,t[e+32>>2]|0}function je(e,n){e=e|0,n=n|0;var r=0;r=e+36|0,(t[r>>2]|0)!=(n|0)&&(t[r>>2]=n,ln(e))}function Xe(e){return e=e|0,t[e+36>>2]|0}function rt(e,n){e=e|0,n=w(n);var r=0;r=e+40|0,w(D[r>>2])!=n&&(D[r>>2]=n,ln(e))}function st(e,n){e=e|0,n=w(n);var r=0;r=e+44|0,w(D[r>>2])!=n&&(D[r>>2]=n,ln(e))}function xt(e,n){e=e|0,n=w(n);var r=0;r=e+48|0,w(D[r>>2])!=n&&(D[r>>2]=n,ln(e))}function wt(e,n){e=e|0,n=w(n);var r=0,o=0,s=0,l=0;l=gt(n)|0,r=(l^1)&1,o=e+52|0,s=e+56|0,(l|w(D[o>>2])==n?(t[s>>2]|0)==(r|0):0)||(D[o>>2]=n,t[s>>2]=r,ln(e))}function lt(e,n){e=e|0,n=w(n);var r=0,o=0;o=e+52|0,r=e+56|0,(w(D[o>>2])==n?(t[r>>2]|0)==2:0)||(D[o>>2]=n,o=gt(n)|0,t[r>>2]=o?3:2,ln(e))}function Rt(e,n){e=e|0,n=n|0;var r=0,o=0;o=n+52|0,r=t[o+4>>2]|0,n=e,t[n>>2]=t[o>>2],t[n+4>>2]=r}function yn(e,n,r){e=e|0,n=n|0,r=w(r);var o=0,s=0,l=0;l=gt(r)|0,o=(l^1)&1,s=e+132+(n<<3)|0,n=e+132+(n<<3)+4|0,(l|w(D[s>>2])==r?(t[n>>2]|0)==(o|0):0)||(D[s>>2]=r,t[n>>2]=o,ln(e))}function sn(e,n,r){e=e|0,n=n|0,r=w(r);var o=0,s=0,l=0;l=gt(r)|0,o=l?0:2,s=e+132+(n<<3)|0,n=e+132+(n<<3)+4|0,(l|w(D[s>>2])==r?(t[n>>2]|0)==(o|0):0)||(D[s>>2]=r,t[n>>2]=o,ln(e))}function ar(e,n,r){e=e|0,n=n|0,r=r|0;var o=0;o=n+132+(r<<3)|0,n=t[o+4>>2]|0,r=e,t[r>>2]=t[o>>2],t[r+4>>2]=n}function rn(e,n,r){e=e|0,n=n|0,r=w(r);var o=0,s=0,l=0;l=gt(r)|0,o=(l^1)&1,s=e+60+(n<<3)|0,n=e+60+(n<<3)+4|0,(l|w(D[s>>2])==r?(t[n>>2]|0)==(o|0):0)||(D[s>>2]=r,t[n>>2]=o,ln(e))}function Hn(e,n,r){e=e|0,n=n|0,r=w(r);var o=0,s=0,l=0;l=gt(r)|0,o=l?0:2,s=e+60+(n<<3)|0,n=e+60+(n<<3)+4|0,(l|w(D[s>>2])==r?(t[n>>2]|0)==(o|0):0)||(D[s>>2]=r,t[n>>2]=o,ln(e))}function d0(e,n,r){e=e|0,n=n|0,r=r|0;var o=0;o=n+60+(r<<3)|0,n=t[o+4>>2]|0,r=e,t[r>>2]=t[o>>2],t[r+4>>2]=n}function Cr(e,n){e=e|0,n=n|0;var r=0;r=e+60+(n<<3)+4|0,(t[r>>2]|0)!=3&&(D[e+60+(n<<3)>>2]=w(J),t[r>>2]=3,ln(e))}function He(e,n,r){e=e|0,n=n|0,r=w(r);var o=0,s=0,l=0;l=gt(r)|0,o=(l^1)&1,s=e+204+(n<<3)|0,n=e+204+(n<<3)+4|0,(l|w(D[s>>2])==r?(t[n>>2]|0)==(o|0):0)||(D[s>>2]=r,t[n>>2]=o,ln(e))}function Qe(e,n,r){e=e|0,n=n|0,r=w(r);var o=0,s=0,l=0;l=gt(r)|0,o=l?0:2,s=e+204+(n<<3)|0,n=e+204+(n<<3)+4|0,(l|w(D[s>>2])==r?(t[n>>2]|0)==(o|0):0)||(D[s>>2]=r,t[n>>2]=o,ln(e))}function Ne(e,n,r){e=e|0,n=n|0,r=r|0;var o=0;o=n+204+(r<<3)|0,n=t[o+4>>2]|0,r=e,t[r>>2]=t[o>>2],t[r+4>>2]=n}function ft(e,n,r){e=e|0,n=n|0,r=w(r);var o=0,s=0,l=0;l=gt(r)|0,o=(l^1)&1,s=e+276+(n<<3)|0,n=e+276+(n<<3)+4|0,(l|w(D[s>>2])==r?(t[n>>2]|0)==(o|0):0)||(D[s>>2]=r,t[n>>2]=o,ln(e))}function St(e,n){return e=e|0,n=n|0,w(D[e+276+(n<<3)>>2])}function Qt(e,n){e=e|0,n=w(n);var r=0,o=0,s=0,l=0;l=gt(n)|0,r=(l^1)&1,o=e+348|0,s=e+352|0,(l|w(D[o>>2])==n?(t[s>>2]|0)==(r|0):0)||(D[o>>2]=n,t[s>>2]=r,ln(e))}function Cn(e,n){e=e|0,n=w(n);var r=0,o=0;o=e+348|0,r=e+352|0,(w(D[o>>2])==n?(t[r>>2]|0)==2:0)||(D[o>>2]=n,o=gt(n)|0,t[r>>2]=o?3:2,ln(e))}function bn(e){e=e|0;var n=0;n=e+352|0,(t[n>>2]|0)!=3&&(D[e+348>>2]=w(J),t[n>>2]=3,ln(e))}function p0(e,n){e=e|0,n=n|0;var r=0,o=0;o=n+348|0,r=t[o+4>>2]|0,n=e,t[n>>2]=t[o>>2],t[n+4>>2]=r}function h0(e,n){e=e|0,n=w(n);var r=0,o=0,s=0,l=0;l=gt(n)|0,r=(l^1)&1,o=e+356|0,s=e+360|0,(l|w(D[o>>2])==n?(t[s>>2]|0)==(r|0):0)||(D[o>>2]=n,t[s>>2]=r,ln(e))}function ci(e,n){e=e|0,n=w(n);var r=0,o=0;o=e+356|0,r=e+360|0,(w(D[o>>2])==n?(t[r>>2]|0)==2:0)||(D[o>>2]=n,o=gt(n)|0,t[r>>2]=o?3:2,ln(e))}function xi(e){e=e|0;var n=0;n=e+360|0,(t[n>>2]|0)!=3&&(D[e+356>>2]=w(J),t[n>>2]=3,ln(e))}function E0(e,n){e=e|0,n=n|0;var r=0,o=0;o=n+356|0,r=t[o+4>>2]|0,n=e,t[n>>2]=t[o>>2],t[n+4>>2]=r}function qr(e,n){e=e|0,n=w(n);var r=0,o=0,s=0,l=0;l=gt(n)|0,r=(l^1)&1,o=e+364|0,s=e+368|0,(l|w(D[o>>2])==n?(t[s>>2]|0)==(r|0):0)||(D[o>>2]=n,t[s>>2]=r,ln(e))}function Eo(e,n){e=e|0,n=w(n);var r=0,o=0,s=0,l=0;l=gt(n)|0,r=l?0:2,o=e+364|0,s=e+368|0,(l|w(D[o>>2])==n?(t[s>>2]|0)==(r|0):0)||(D[o>>2]=n,t[s>>2]=r,ln(e))}function So(e,n){e=e|0,n=n|0;var r=0,o=0;o=n+364|0,r=t[o+4>>2]|0,n=e,t[n>>2]=t[o>>2],t[n+4>>2]=r}function wl(e,n){e=e|0,n=w(n);var r=0,o=0,s=0,l=0;l=gt(n)|0,r=(l^1)&1,o=e+372|0,s=e+376|0,(l|w(D[o>>2])==n?(t[s>>2]|0)==(r|0):0)||(D[o>>2]=n,t[s>>2]=r,ln(e))}function js(e,n){e=e|0,n=w(n);var r=0,o=0,s=0,l=0;l=gt(n)|0,r=l?0:2,o=e+372|0,s=e+376|0,(l|w(D[o>>2])==n?(t[s>>2]|0)==(r|0):0)||(D[o>>2]=n,t[s>>2]=r,ln(e))}function Dl(e,n){e=e|0,n=n|0;var r=0,o=0;o=n+372|0,r=t[o+4>>2]|0,n=e,t[n>>2]=t[o>>2],t[n+4>>2]=r}function du(e,n){e=e|0,n=w(n);var r=0,o=0,s=0,l=0;l=gt(n)|0,r=(l^1)&1,o=e+380|0,s=e+384|0,(l|w(D[o>>2])==n?(t[s>>2]|0)==(r|0):0)||(D[o>>2]=n,t[s>>2]=r,ln(e))}function Yu(e,n){e=e|0,n=w(n);var r=0,o=0,s=0,l=0;l=gt(n)|0,r=l?0:2,o=e+380|0,s=e+384|0,(l|w(D[o>>2])==n?(t[s>>2]|0)==(r|0):0)||(D[o>>2]=n,t[s>>2]=r,ln(e))}function Us(e,n){e=e|0,n=n|0;var r=0,o=0;o=n+380|0,r=t[o+4>>2]|0,n=e,t[n>>2]=t[o>>2],t[n+4>>2]=r}function oo(e,n){e=e|0,n=w(n);var r=0,o=0,s=0,l=0;l=gt(n)|0,r=(l^1)&1,o=e+388|0,s=e+392|0,(l|w(D[o>>2])==n?(t[s>>2]|0)==(r|0):0)||(D[o>>2]=n,t[s>>2]=r,ln(e))}function Hi(e,n){e=e|0,n=w(n);var r=0,o=0,s=0,l=0;l=gt(n)|0,r=l?0:2,o=e+388|0,s=e+392|0,(l|w(D[o>>2])==n?(t[s>>2]|0)==(r|0):0)||(D[o>>2]=n,t[s>>2]=r,ln(e))}function qs(e,n){e=e|0,n=n|0;var r=0,o=0;o=n+388|0,r=t[o+4>>2]|0,n=e,t[n>>2]=t[o>>2],t[n+4>>2]=r}function F0(e,n){e=e|0,n=w(n);var r=0;r=e+396|0,w(D[r>>2])!=n&&(D[r>>2]=n,ln(e))}function Gr(e){return e=e|0,w(D[e+396>>2])}function ir(e){return e=e|0,w(D[e+400>>2])}function L0(e){return e=e|0,w(D[e+404>>2])}function Y0(e){return e=e|0,w(D[e+408>>2])}function Co(e){return e=e|0,w(D[e+412>>2])}function $u(e){return e=e|0,w(D[e+416>>2])}function Vo(e){return e=e|0,w(D[e+420>>2])}function Rr(e,n){switch(e=e|0,n=n|0,i0(e,(n|0)<6,2918),n|0){case 0:{n=(t[e+496>>2]|0)==2?5:4;break}case 2:{n=(t[e+496>>2]|0)==2?4:5;break}default:}return w(D[e+424+(n<<2)>>2])}function Jn(e,n){switch(e=e|0,n=n|0,i0(e,(n|0)<6,2918),n|0){case 0:{n=(t[e+496>>2]|0)==2?5:4;break}case 2:{n=(t[e+496>>2]|0)==2?4:5;break}default:}return w(D[e+448+(n<<2)>>2])}function ai(e,n){switch(e=e|0,n=n|0,i0(e,(n|0)<6,2918),n|0){case 0:{n=(t[e+496>>2]|0)==2?5:4;break}case 2:{n=(t[e+496>>2]|0)==2?4:5;break}default:}return w(D[e+472+(n<<2)>>2])}function o0(e,n){e=e|0,n=n|0;var r=0,o=tt;return r=t[e+4>>2]|0,(r|0)==(t[n+4>>2]|0)?r?(o=w(D[e>>2]),e=w(Ot(w(o-w(D[n>>2]))))>2]=0,t[o+4>>2]=0,t[o+8>>2]=0,Ru(o|0,e|0,n|0,0),wn(e,3,(c[o+11>>0]|0)<0?t[o>>2]|0:o,r),ML(o),h=r}function $0(e,n,r,o){e=w(e),n=w(n),r=r|0,o=o|0;var s=tt;e=w(e*n),s=w(V4(e,w(1)));do if(Vr(s,w(0))|0)e=w(e-s);else{if(e=w(e-s),Vr(s,w(1))|0){e=w(e+w(1));break}if(r){e=w(e+w(1));break}o||(s>w(.5)?s=w(1):(o=Vr(s,w(.5))|0,s=w(o?1:0)),e=w(e+s))}while(0);return w(e/n)}function K0(e,n,r,o,s,l,d,_,y,k,T,P,q){e=e|0,n=w(n),r=r|0,o=w(o),s=s|0,l=w(l),d=d|0,_=w(_),y=w(y),k=w(k),T=w(T),P=w(P),q=q|0;var we=0,le=tt,ie=tt,Pe=tt,ke=tt,qe=tt,pe=tt;return y>2]),le!=w(0)):0)?(Pe=w($0(n,le,0,0)),ke=w($0(o,le,0,0)),ie=w($0(l,le,0,0)),le=w($0(_,le,0,0))):(ie=l,Pe=n,le=_,ke=o),(s|0)==(e|0)?we=Vr(ie,Pe)|0:we=0,(d|0)==(r|0)?q=Vr(le,ke)|0:q=0,((we?0:(qe=w(n-T),!(ae(e,qe,y)|0)))?!(Be(e,qe,s,y)|0):0)?we=Ie(e,qe,s,l,y)|0:we=1,((q?0:(pe=w(o-P),!(ae(r,pe,k)|0)))?!(Be(r,pe,d,k)|0):0)?q=Ie(r,pe,d,_,k)|0:q=1,q=we&q),q|0}function ae(e,n,r){return e=e|0,n=w(n),r=w(r),(e|0)==1?e=Vr(n,r)|0:e=0,e|0}function Be(e,n,r,o){return e=e|0,n=w(n),r=r|0,o=w(o),(e|0)==2&(r|0)==0?n>=o?e=1:e=Vr(n,o)|0:e=0,e|0}function Ie(e,n,r,o,s){return e=e|0,n=w(n),r=r|0,o=w(o),s=w(s),(e|0)==2&(r|0)==2&o>n?s<=n?e=1:e=Vr(n,s)|0:e=0,e|0}function ht(e,n,r,o,s,l,d,_,y,k,T){e=e|0,n=w(n),r=w(r),o=o|0,s=s|0,l=l|0,d=w(d),_=w(_),y=y|0,k=k|0,T=T|0;var P=0,q=0,we=0,le=0,ie=tt,Pe=tt,ke=0,qe=0,pe=0,_e=0,vt=0,Ln=0,Ht=0,It=0,gn=0,Pn=0,zt=0,Dr=tt,Ki=tt,Xi=tt,Ji=0,Ro=0;zt=h,h=h+160|0,It=zt+152|0,Ht=zt+120|0,Ln=zt+104|0,pe=zt+72|0,le=zt+56|0,vt=zt+8|0,qe=zt,_e=(t[2279]|0)+1|0,t[2279]=_e,gn=e+984|0,((c[gn>>0]|0)!=0?(t[e+512>>2]|0)!=(t[2278]|0):0)?ke=4:(t[e+516>>2]|0)==(o|0)?Pn=0:ke=4,(ke|0)==4&&(t[e+520>>2]=0,t[e+924>>2]=-1,t[e+928>>2]=-1,D[e+932>>2]=w(-1),D[e+936>>2]=w(-1),Pn=1);e:do if(t[e+964>>2]|0)if(ie=w(mt(e,2,d)),Pe=w(mt(e,0,d)),P=e+916|0,Xi=w(D[P>>2]),Ki=w(D[e+920>>2]),Dr=w(D[e+932>>2]),K0(s,n,l,r,t[e+924>>2]|0,Xi,t[e+928>>2]|0,Ki,Dr,w(D[e+936>>2]),ie,Pe,T)|0)ke=22;else if(we=t[e+520>>2]|0,!we)ke=21;else for(q=0;;){if(P=e+524+(q*24|0)|0,Dr=w(D[P>>2]),Ki=w(D[e+524+(q*24|0)+4>>2]),Xi=w(D[e+524+(q*24|0)+16>>2]),K0(s,n,l,r,t[e+524+(q*24|0)+8>>2]|0,Dr,t[e+524+(q*24|0)+12>>2]|0,Ki,Xi,w(D[e+524+(q*24|0)+20>>2]),ie,Pe,T)|0){ke=22;break e}if(q=q+1|0,q>>>0>=we>>>0){ke=21;break}}else{if(y){if(P=e+916|0,!(Vr(w(D[P>>2]),n)|0)){ke=21;break}if(!(Vr(w(D[e+920>>2]),r)|0)){ke=21;break}if((t[e+924>>2]|0)!=(s|0)){ke=21;break}P=(t[e+928>>2]|0)==(l|0)?P:0,ke=22;break}if(we=t[e+520>>2]|0,!we)ke=21;else for(q=0;;){if(P=e+524+(q*24|0)|0,((Vr(w(D[P>>2]),n)|0?Vr(w(D[e+524+(q*24|0)+4>>2]),r)|0:0)?(t[e+524+(q*24|0)+8>>2]|0)==(s|0):0)?(t[e+524+(q*24|0)+12>>2]|0)==(l|0):0){ke=22;break e}if(q=q+1|0,q>>>0>=we>>>0){ke=21;break}}}while(0);do if((ke|0)==21)c[11697]|0?(P=0,ke=28):(P=0,ke=31);else if((ke|0)==22){if(q=(c[11697]|0)!=0,!((P|0)!=0&(Pn^1)))if(q){ke=28;break}else{ke=31;break}le=P+16|0,t[e+908>>2]=t[le>>2],we=P+20|0,t[e+912>>2]=t[we>>2],(c[11698]|0)==0|q^1||(t[qe>>2]=Gn(_e)|0,t[qe+4>>2]=_e,wn(e,4,2972,qe),q=t[e+972>>2]|0,q|0&&Nl[q&127](e),s=$t(s,y)|0,l=$t(l,y)|0,Ro=+w(D[le>>2]),Ji=+w(D[we>>2]),t[vt>>2]=s,t[vt+4>>2]=l,L[vt+8>>3]=+n,L[vt+16>>3]=+r,L[vt+24>>3]=Ro,L[vt+32>>3]=Ji,t[vt+40>>2]=k,wn(e,4,2989,vt))}while(0);return(ke|0)==28&&(q=Gn(_e)|0,t[le>>2]=q,t[le+4>>2]=_e,t[le+8>>2]=Pn?3047:11699,wn(e,4,3038,le),q=t[e+972>>2]|0,q|0&&Nl[q&127](e),vt=$t(s,y)|0,ke=$t(l,y)|0,t[pe>>2]=vt,t[pe+4>>2]=ke,L[pe+8>>3]=+n,L[pe+16>>3]=+r,t[pe+24>>2]=k,wn(e,4,3049,pe),ke=31),(ke|0)==31&&(X0(e,n,r,o,s,l,d,_,y,T),c[11697]|0&&(q=t[2279]|0,vt=Gn(q)|0,t[Ln>>2]=vt,t[Ln+4>>2]=q,t[Ln+8>>2]=Pn?3047:11699,wn(e,4,3083,Ln),q=t[e+972>>2]|0,q|0&&Nl[q&127](e),vt=$t(s,y)|0,Ln=$t(l,y)|0,Ji=+w(D[e+908>>2]),Ro=+w(D[e+912>>2]),t[Ht>>2]=vt,t[Ht+4>>2]=Ln,L[Ht+8>>3]=Ji,L[Ht+16>>3]=Ro,t[Ht+24>>2]=k,wn(e,4,3092,Ht)),t[e+516>>2]=o,P||(q=e+520|0,P=t[q>>2]|0,(P|0)==16&&(c[11697]|0&&wn(e,4,3124,It),t[q>>2]=0,P=0),y?P=e+916|0:(t[q>>2]=P+1,P=e+524+(P*24|0)|0),D[P>>2]=n,D[P+4>>2]=r,t[P+8>>2]=s,t[P+12>>2]=l,t[P+16>>2]=t[e+908>>2],t[P+20>>2]=t[e+912>>2],P=0)),y&&(t[e+416>>2]=t[e+908>>2],t[e+420>>2]=t[e+912>>2],c[e+985>>0]=1,c[gn>>0]=0),t[2279]=(t[2279]|0)+-1,t[e+512>>2]=t[2278],h=zt,Pn|(P|0)==0|0}function mt(e,n,r){e=e|0,n=n|0,r=w(r);var o=tt;return o=w(Tr(e,n,r)),w(o+w(R0(e,n,r)))}function wn(e,n,r,o){e=e|0,n=n|0,r=r|0,o=o|0;var s=0,l=0;l=h,h=h+16|0,s=l,t[s>>2]=o,e?o=t[e+976>>2]|0:o=0,Ku(o,e,n,r,s),h=l}function Gn(e){return e=e|0,(e>>>0>60?3201:3201+(60-e)|0)|0}function $t(e,n){e=e|0,n=n|0;var r=0,o=0,s=0;return s=h,h=h+32|0,r=s+12|0,o=s,t[r>>2]=t[254],t[r+4>>2]=t[255],t[r+8>>2]=t[256],t[o>>2]=t[257],t[o+4>>2]=t[258],t[o+8>>2]=t[259],(e|0)>2?e=11699:e=t[(n?o:r)+(e<<2)>>2]|0,h=s,e|0}function X0(e,n,r,o,s,l,d,_,y,k){e=e|0,n=w(n),r=w(r),o=o|0,s=s|0,l=l|0,d=w(d),_=w(_),y=y|0,k=k|0;var T=0,P=0,q=0,we=0,le=tt,ie=tt,Pe=tt,ke=tt,qe=tt,pe=tt,_e=tt,vt=0,Ln=0,Ht=0,It=tt,gn=tt,Pn=0,zt=tt,Dr=0,Ki=0,Xi=0,Ji=0,Ro=0,kf=0,Af=0,Cu=0,Of=0,Js=0,Qs=0,If=0,Pf=0,Mf=0,Kn=0,Tu=0,Ff=0,us=0,Lf=tt,Rf=tt,Zs=tt,el=tt,ss=tt,Fi=0,nu=0,go=0,xu=0,jl=0,Ul=tt,tl=tt,ql=tt,zl=tt,Li=tt,Di=tt,ku=0,xr=tt,Wl=tt,Qi=tt,ls=tt,Zi=tt,fs=tt,Hl=0,bl=0,cs=tt,Ri=tt,Au=0,Gl=0,Vl=0,Yl=0,En=tt,br=0,Ei=0,eo=0,Ni=0,xn=0,Vt=0,Ou=0,kt=tt,$l=0,Qr=0;Ou=h,h=h+16|0,Fi=Ou+12|0,nu=Ou+8|0,go=Ou+4|0,xu=Ou,i0(e,(s|0)==0|(gt(n)|0)^1,3326),i0(e,(l|0)==0|(gt(r)|0)^1,3406),Ei=so(e,o)|0,t[e+496>>2]=Ei,xn=N0(2,Ei)|0,Vt=N0(0,Ei)|0,D[e+440>>2]=w(Tr(e,xn,d)),D[e+444>>2]=w(R0(e,xn,d)),D[e+428>>2]=w(Tr(e,Vt,d)),D[e+436>>2]=w(R0(e,Vt,d)),D[e+464>>2]=w(C0(e,xn)),D[e+468>>2]=w(di(e,xn)),D[e+452>>2]=w(C0(e,Vt)),D[e+460>>2]=w(di(e,Vt)),D[e+488>>2]=w(u0(e,xn,d)),D[e+492>>2]=w(v0(e,xn,d)),D[e+476>>2]=w(u0(e,Vt,d)),D[e+484>>2]=w(v0(e,Vt,d));do if(t[e+964>>2]|0)To(e,n,r,s,l,d,_);else{if(eo=e+948|0,Ni=(t[e+952>>2]|0)-(t[eo>>2]|0)>>2,!Ni){pu(e,n,r,s,l,d,_);break}if(y?0:Sl(e,n,r,s,l,d,_)|0)break;bo(e),Tu=e+508|0,c[Tu>>0]=0,xn=N0(t[e+4>>2]|0,Ei)|0,Vt=Cl(xn,Ei)|0,br=Nr(xn)|0,Ff=t[e+8>>2]|0,Gl=e+28|0,us=(t[Gl>>2]|0)!=0,Zi=br?d:_,cs=br?_:d,Lf=w(B0(e,xn,d)),Rf=w(hu(e,xn,d)),le=w(B0(e,Vt,d)),fs=w(Fn(e,xn,d)),Ri=w(Fn(e,Vt,d)),Ht=br?s:l,Au=br?l:s,En=br?fs:Ri,qe=br?Ri:fs,ls=w(mt(e,2,d)),ke=w(mt(e,0,d)),ie=w(w(Tn(e+364|0,d))-En),Pe=w(w(Tn(e+380|0,d))-En),pe=w(w(Tn(e+372|0,_))-qe),_e=w(w(Tn(e+388|0,_))-qe),Zs=br?ie:pe,el=br?Pe:_e,ls=w(n-ls),n=w(ls-En),gt(n)|0?En=n:En=w(Ur(w(cc(n,Pe)),ie)),Wl=w(r-ke),n=w(Wl-qe),gt(n)|0?Qi=n:Qi=w(Ur(w(cc(n,_e)),pe)),ie=br?En:Qi,xr=br?Qi:En;e:do if((Ht|0)==1)for(o=0,P=0;;){if(T=e0(e,P)|0,!o)(w(Br(T))>w(0)?w(zr(T))>w(0):0)?o=T:o=0;else if(pi(T)|0){we=0;break e}if(P=P+1|0,P>>>0>=Ni>>>0){we=o;break}}else we=0;while(0);vt=we+500|0,Ln=we+504|0,o=0,T=0,n=w(0),q=0;do{if(P=t[(t[eo>>2]|0)+(q<<2)>>2]|0,(t[P+36>>2]|0)==1)lo(P),c[P+985>>0]=1,c[P+984>>0]=0;else{$r(P),y&&Yo(P,so(P,Ei)|0,ie,xr,En);do if((t[P+24>>2]|0)!=1)if((P|0)==(we|0)){t[vt>>2]=t[2278],D[Ln>>2]=w(0);break}else{wr(e,P,En,s,Qi,En,Qi,l,Ei,k);break}else T|0&&(t[T+960>>2]=P),t[P+960>>2]=0,T=P,o=(o|0)==0?P:o;while(0);Di=w(D[P+504>>2]),n=w(n+w(Di+w(mt(P,xn,En))))}q=q+1|0}while((q|0)!=(Ni|0));for(Xi=n>ie,ku=us&((Ht|0)==2&Xi)?1:Ht,Dr=(Au|0)==1,Ro=Dr&(y^1),kf=(ku|0)==1,Af=(ku|0)==2,Cu=976+(xn<<2)|0,Of=(Au|2|0)==2,Mf=Dr&(us^1),Js=1040+(Vt<<2)|0,Qs=1040+(xn<<2)|0,If=976+(Vt<<2)|0,Pf=(Au|0)!=1,Xi=us&((Ht|0)!=0&Xi),Ki=e+976|0,Dr=Dr^1,n=ie,Pn=0,Ji=0,Di=w(0),ss=w(0);;){e:do if(Pn>>>0>>0)for(Ln=t[eo>>2]|0,q=0,_e=w(0),pe=w(0),Pe=w(0),ie=w(0),P=0,T=0,we=Pn;;){if(vt=t[Ln+(we<<2)>>2]|0,(t[vt+36>>2]|0)!=1?(t[vt+940>>2]=Ji,(t[vt+24>>2]|0)!=1):0){if(ke=w(mt(vt,xn,En)),Kn=t[Cu>>2]|0,r=w(Tn(vt+380+(Kn<<3)|0,Zi)),qe=w(D[vt+504>>2]),r=w(cc(r,qe)),r=w(Ur(w(Tn(vt+364+(Kn<<3)|0,Zi)),r)),us&(q|0)!=0&w(ke+w(pe+r))>n){l=q,ke=_e,Ht=we;break e}ke=w(ke+r),r=w(pe+ke),ke=w(_e+ke),pi(vt)|0&&(Pe=w(Pe+w(Br(vt))),ie=w(ie-w(qe*w(zr(vt))))),T|0&&(t[T+960>>2]=vt),t[vt+960>>2]=0,q=q+1|0,T=vt,P=(P|0)==0?vt:P}else ke=_e,r=pe;if(we=we+1|0,we>>>0>>0)_e=ke,pe=r;else{l=q,Ht=we;break}}else l=0,ke=w(0),Pe=w(0),ie=w(0),P=0,Ht=Pn;while(0);Kn=Pe>w(0)&Pew(0)&ieel&((gt(el)|0)^1))n=el,Kn=51;else if(c[(t[Ki>>2]|0)+3>>0]|0)Kn=51;else{if(It!=w(0)?w(Br(e))!=w(0):0){Kn=53;break}n=ke,Kn=53}while(0);if((Kn|0)==51&&(Kn=0,gt(n)|0?Kn=53:(gn=w(n-ke),zt=n)),(Kn|0)==53&&(Kn=0,ke>2]|0,we=gnw(0),pe=w(gn/It),Pe=w(0),ke=w(0),n=w(0),T=P;do r=w(Tn(T+380+(q<<3)|0,Zi)),ie=w(Tn(T+364+(q<<3)|0,Zi)),ie=w(cc(r,w(Ur(ie,w(D[T+504>>2]))))),we?(r=w(ie*w(zr(T))),(r!=w(-0)?(kt=w(ie-w(qe*r)),Ul=w(kn(T,xn,kt,zt,En)),kt!=Ul):0)&&(Pe=w(Pe-w(Ul-ie)),n=w(n+r))):((vt?(tl=w(Br(T)),tl!=w(0)):0)?(kt=w(ie+w(pe*tl)),ql=w(kn(T,xn,kt,zt,En)),kt!=ql):0)&&(Pe=w(Pe-w(ql-ie)),ke=w(ke-tl)),T=t[T+960>>2]|0;while((T|0)!=0);if(n=w(_e+n),ie=w(gn+Pe),jl)n=w(0);else{qe=w(It+ke),we=t[Cu>>2]|0,vt=iew(0),qe=w(ie/qe),n=w(0);do{kt=w(Tn(P+380+(we<<3)|0,Zi)),Pe=w(Tn(P+364+(we<<3)|0,Zi)),Pe=w(cc(kt,w(Ur(Pe,w(D[P+504>>2]))))),vt?(kt=w(Pe*w(zr(P))),ie=w(-kt),kt!=w(-0)?(kt=w(pe*ie),ie=w(kn(P,xn,w(Pe+(Ln?ie:kt)),zt,En))):ie=Pe):(q?(zl=w(Br(P)),zl!=w(0)):0)?ie=w(kn(P,xn,w(Pe+w(qe*zl)),zt,En)):ie=Pe,n=w(n-w(ie-Pe)),ke=w(mt(P,xn,En)),r=w(mt(P,Vt,En)),ie=w(ie+ke),D[nu>>2]=ie,t[xu>>2]=1,Pe=w(D[P+396>>2]);e:do if(gt(Pe)|0){T=gt(xr)|0;do if(!T){if(Xi|(m0(P,Vt,xr)|0|Dr)||(T0(e,P)|0)!=4||(t[(hi(P,Vt)|0)+4>>2]|0)==3||(t[(Ai(P,Vt)|0)+4>>2]|0)==3)break;D[Fi>>2]=xr,t[go>>2]=1;break e}while(0);if(m0(P,Vt,xr)|0){T=t[P+992+(t[If>>2]<<2)>>2]|0,kt=w(r+w(Tn(T,xr))),D[Fi>>2]=kt,T=Pf&(t[T+4>>2]|0)==2,t[go>>2]=((gt(kt)|0|T)^1)&1;break}else{D[Fi>>2]=xr,t[go>>2]=T?0:2;break}}else kt=w(ie-ke),It=w(kt/Pe),kt=w(Pe*kt),t[go>>2]=1,D[Fi>>2]=w(r+(br?It:kt));while(0);Kt(P,xn,zt,En,xu,nu),Kt(P,Vt,xr,En,go,Fi);do if(m0(P,Vt,xr)|0?0:(T0(e,P)|0)==4){if((t[(hi(P,Vt)|0)+4>>2]|0)==3){T=0;break}T=(t[(Ai(P,Vt)|0)+4>>2]|0)!=3}else T=0;while(0);kt=w(D[nu>>2]),It=w(D[Fi>>2]),$l=t[xu>>2]|0,Qr=t[go>>2]|0,ht(P,br?kt:It,br?It:kt,Ei,br?$l:Qr,br?Qr:$l,En,Qi,y&(T^1),3488,k)|0,c[Tu>>0]=c[Tu>>0]|c[P+508>>0],P=t[P+960>>2]|0}while((P|0)!=0)}}else n=w(0);if(n=w(gn+n),Qr=n>0]=Qr|C[Tu>>0],Af&n>w(0)?(T=t[Cu>>2]|0,((t[e+364+(T<<3)+4>>2]|0)!=0?(Li=w(Tn(e+364+(T<<3)|0,Zi)),Li>=w(0)):0)?ie=w(Ur(w(0),w(Li-w(zt-n)))):ie=w(0)):ie=n,vt=Pn>>>0>>0,vt){we=t[eo>>2]|0,q=Pn,T=0;do P=t[we+(q<<2)>>2]|0,t[P+24>>2]|0||(T=((t[(hi(P,xn)|0)+4>>2]|0)==3&1)+T|0,T=T+((t[(Ai(P,xn)|0)+4>>2]|0)==3&1)|0),q=q+1|0;while((q|0)!=(Ht|0));T?(ke=w(0),r=w(0)):Kn=101}else Kn=101;e:do if((Kn|0)==101)switch(Kn=0,Ff|0){case 1:{T=0,ke=w(ie*w(.5)),r=w(0);break e}case 2:{T=0,ke=ie,r=w(0);break e}case 3:{if(l>>>0<=1){T=0,ke=w(0),r=w(0);break e}r=w((l+-1|0)>>>0),T=0,ke=w(0),r=w(w(Ur(ie,w(0)))/r);break e}case 5:{r=w(ie/w((l+1|0)>>>0)),T=0,ke=r;break e}case 4:{r=w(ie/w(l>>>0)),T=0,ke=w(r*w(.5));break e}default:{T=0,ke=w(0),r=w(0);break e}}while(0);if(n=w(Lf+ke),vt){Pe=w(ie/w(T|0)),q=t[eo>>2]|0,P=Pn,ie=w(0);do{T=t[q+(P<<2)>>2]|0;e:do if((t[T+36>>2]|0)!=1){switch(t[T+24>>2]|0){case 1:{if(X(T,xn)|0){if(!y)break e;kt=w(Y(T,xn,zt)),kt=w(kt+w(C0(e,xn))),kt=w(kt+w(Tr(T,xn,En))),D[T+400+(t[Qs>>2]<<2)>>2]=kt;break e}break}case 0:if(Qr=(t[(hi(T,xn)|0)+4>>2]|0)==3,kt=w(Pe+n),n=Qr?kt:n,y&&(Qr=T+400+(t[Qs>>2]<<2)|0,D[Qr>>2]=w(n+w(D[Qr>>2]))),Qr=(t[(Ai(T,xn)|0)+4>>2]|0)==3,kt=w(Pe+n),n=Qr?kt:n,Ro){kt=w(r+w(mt(T,xn,En))),ie=xr,n=w(n+w(kt+w(D[T+504>>2])));break e}else{n=w(n+w(r+w(ye(T,xn,En)))),ie=w(Ur(ie,w(ye(T,Vt,En))));break e}default:}y&&(kt=w(ke+w(C0(e,xn))),Qr=T+400+(t[Qs>>2]<<2)|0,D[Qr>>2]=w(kt+w(D[Qr>>2])))}while(0);P=P+1|0}while((P|0)!=(Ht|0))}else ie=w(0);if(r=w(Rf+n),Of?ke=w(w(kn(e,Vt,w(Ri+ie),cs,d))-Ri):ke=xr,Pe=w(w(kn(e,Vt,w(Ri+(Mf?xr:ie)),cs,d))-Ri),vt&y){P=Pn;do{q=t[(t[eo>>2]|0)+(P<<2)>>2]|0;do if((t[q+36>>2]|0)!=1){if((t[q+24>>2]|0)==1){if(X(q,Vt)|0){if(kt=w(Y(q,Vt,xr)),kt=w(kt+w(C0(e,Vt))),kt=w(kt+w(Tr(q,Vt,En))),T=t[Js>>2]|0,D[q+400+(T<<2)>>2]=kt,!(gt(kt)|0))break}else T=t[Js>>2]|0;kt=w(C0(e,Vt)),D[q+400+(T<<2)>>2]=w(kt+w(Tr(q,Vt,En)));break}T=T0(e,q)|0;do if((T|0)==4){if((t[(hi(q,Vt)|0)+4>>2]|0)==3){Kn=139;break}if((t[(Ai(q,Vt)|0)+4>>2]|0)==3){Kn=139;break}if(m0(q,Vt,xr)|0){n=le;break}$l=t[q+908+(t[Cu>>2]<<2)>>2]|0,t[Fi>>2]=$l,n=w(D[q+396>>2]),Qr=gt(n)|0,ie=(t[j>>2]=$l,w(D[j>>2])),Qr?n=Pe:(gn=w(mt(q,Vt,En)),kt=w(ie/n),n=w(n*ie),n=w(gn+(br?kt:n))),D[nu>>2]=n,D[Fi>>2]=w(w(mt(q,xn,En))+ie),t[go>>2]=1,t[xu>>2]=1,Kt(q,xn,zt,En,go,Fi),Kt(q,Vt,xr,En,xu,nu),n=w(D[Fi>>2]),gn=w(D[nu>>2]),kt=br?n:gn,n=br?gn:n,Qr=((gt(kt)|0)^1)&1,ht(q,kt,n,Ei,Qr,((gt(n)|0)^1)&1,En,Qi,1,3493,k)|0,n=le}else Kn=139;while(0);e:do if((Kn|0)==139){Kn=0,n=w(ke-w(ye(q,Vt,En)));do if((t[(hi(q,Vt)|0)+4>>2]|0)==3){if((t[(Ai(q,Vt)|0)+4>>2]|0)!=3)break;n=w(le+w(Ur(w(0),w(n*w(.5)))));break e}while(0);if((t[(Ai(q,Vt)|0)+4>>2]|0)==3){n=le;break}if((t[(hi(q,Vt)|0)+4>>2]|0)==3){n=w(le+w(Ur(w(0),n)));break}switch(T|0){case 1:{n=le;break e}case 2:{n=w(le+w(n*w(.5)));break e}default:{n=w(le+n);break e}}}while(0);kt=w(Di+n),Qr=q+400+(t[Js>>2]<<2)|0,D[Qr>>2]=w(kt+w(D[Qr>>2]))}while(0);P=P+1|0}while((P|0)!=(Ht|0))}if(Di=w(Di+Pe),ss=w(Ur(ss,r)),l=Ji+1|0,Ht>>>0>=Ni>>>0)break;n=zt,Pn=Ht,Ji=l}do if(y){if(T=l>>>0>1,T?0:!(he(e)|0))break;if(!(gt(xr)|0)){n=w(xr-Di);e:do switch(t[e+12>>2]|0){case 3:{le=w(le+n),pe=w(0);break}case 2:{le=w(le+w(n*w(.5))),pe=w(0);break}case 4:{xr>Di?pe=w(n/w(l>>>0)):pe=w(0);break}case 7:if(xr>Di){le=w(le+w(n/w(l<<1>>>0))),pe=w(n/w(l>>>0)),pe=T?pe:w(0);break e}else{le=w(le+w(n*w(.5))),pe=w(0);break e}case 6:{pe=w(n/w(Ji>>>0)),pe=xr>Di&T?pe:w(0);break}default:pe=w(0)}while(0);if(l|0)for(vt=1040+(Vt<<2)|0,Ln=976+(Vt<<2)|0,we=0,P=0;;){e:do if(P>>>0>>0)for(ie=w(0),Pe=w(0),n=w(0),q=P;;){T=t[(t[eo>>2]|0)+(q<<2)>>2]|0;do if((t[T+36>>2]|0)!=1?(t[T+24>>2]|0)==0:0){if((t[T+940>>2]|0)!=(we|0))break e;if(We(T,Vt)|0&&(kt=w(D[T+908+(t[Ln>>2]<<2)>>2]),n=w(Ur(n,w(kt+w(mt(T,Vt,En)))))),(T0(e,T)|0)!=5)break;Li=w(et(T)),Li=w(Li+w(Tr(T,0,En))),kt=w(D[T+912>>2]),kt=w(w(kt+w(mt(T,0,En)))-Li),Li=w(Ur(Pe,Li)),kt=w(Ur(ie,kt)),ie=kt,Pe=Li,n=w(Ur(n,w(Li+kt)))}while(0);if(T=q+1|0,T>>>0>>0)q=T;else{q=T;break}}else Pe=w(0),n=w(0),q=P;while(0);if(qe=w(pe+n),r=le,le=w(le+qe),P>>>0>>0){ke=w(r+Pe),T=P;do{P=t[(t[eo>>2]|0)+(T<<2)>>2]|0;e:do if((t[P+36>>2]|0)!=1?(t[P+24>>2]|0)==0:0)switch(T0(e,P)|0){case 1:{kt=w(r+w(Tr(P,Vt,En))),D[P+400+(t[vt>>2]<<2)>>2]=kt;break e}case 3:{kt=w(w(le-w(R0(P,Vt,En)))-w(D[P+908+(t[Ln>>2]<<2)>>2])),D[P+400+(t[vt>>2]<<2)>>2]=kt;break e}case 2:{kt=w(r+w(w(qe-w(D[P+908+(t[Ln>>2]<<2)>>2]))*w(.5))),D[P+400+(t[vt>>2]<<2)>>2]=kt;break e}case 4:{if(kt=w(r+w(Tr(P,Vt,En))),D[P+400+(t[vt>>2]<<2)>>2]=kt,m0(P,Vt,xr)|0||(br?(ie=w(D[P+908>>2]),n=w(ie+w(mt(P,xn,En))),Pe=qe):(Pe=w(D[P+912>>2]),Pe=w(Pe+w(mt(P,Vt,En))),n=qe,ie=w(D[P+908>>2])),Vr(n,ie)|0?Vr(Pe,w(D[P+912>>2]))|0:0))break e;ht(P,n,Pe,Ei,1,1,En,Qi,1,3501,k)|0;break e}case 5:{D[P+404>>2]=w(w(ke-w(et(P)))+w(Y(P,0,xr)));break e}default:break e}while(0);T=T+1|0}while((T|0)!=(q|0))}if(we=we+1|0,(we|0)==(l|0))break;P=q}}}while(0);if(D[e+908>>2]=w(kn(e,2,ls,d,d)),D[e+912>>2]=w(kn(e,0,Wl,_,d)),((ku|0)!=0?(Hl=t[e+32>>2]|0,bl=(ku|0)==2,!(bl&(Hl|0)!=2)):0)?bl&(Hl|0)==2&&(n=w(fs+zt),n=w(Ur(w(cc(n,w(Dt(e,xn,ss,Zi)))),fs)),Kn=198):(n=w(kn(e,xn,ss,Zi,d)),Kn=198),(Kn|0)==198&&(D[e+908+(t[976+(xn<<2)>>2]<<2)>>2]=n),((Au|0)!=0?(Vl=t[e+32>>2]|0,Yl=(Au|0)==2,!(Yl&(Vl|0)!=2)):0)?Yl&(Vl|0)==2&&(n=w(Ri+xr),n=w(Ur(w(cc(n,w(Dt(e,Vt,w(Ri+Di),cs)))),Ri)),Kn=204):(n=w(kn(e,Vt,w(Ri+Di),cs,d)),Kn=204),(Kn|0)==204&&(D[e+908+(t[976+(Vt<<2)>>2]<<2)>>2]=n),y){if((t[Gl>>2]|0)==2){P=976+(Vt<<2)|0,q=1040+(Vt<<2)|0,T=0;do we=e0(e,T)|0,t[we+24>>2]|0||($l=t[P>>2]|0,kt=w(D[e+908+($l<<2)>>2]),Qr=we+400+(t[q>>2]<<2)|0,kt=w(kt-w(D[Qr>>2])),D[Qr>>2]=w(kt-w(D[we+908+($l<<2)>>2]))),T=T+1|0;while((T|0)!=(Ni|0))}if(o|0){T=br?ku:s;do bt(e,o,En,T,Qi,Ei,k),o=t[o+960>>2]|0;while((o|0)!=0)}if(T=(xn|2|0)==3,P=(Vt|2|0)==3,T|P){o=0;do q=t[(t[eo>>2]|0)+(o<<2)>>2]|0,(t[q+36>>2]|0)!=1&&(T&&Zt(e,q,xn),P&&Zt(e,q,Vt)),o=o+1|0;while((o|0)!=(Ni|0))}}}while(0);h=Ou}function ki(e,n){e=e|0,n=w(n);var r=0;li(e,n>=w(0),3147),r=n==w(0),D[e+4>>2]=r?w(0):n}function Yr(e,n,r,o){e=e|0,n=w(n),r=w(r),o=o|0;var s=tt,l=tt,d=0,_=0,y=0;t[2278]=(t[2278]|0)+1,$r(e),m0(e,2,n)|0?(s=w(Tn(t[e+992>>2]|0,n)),y=1,s=w(s+w(mt(e,2,n)))):(s=w(Tn(e+380|0,n)),s>=w(0)?y=2:(y=((gt(n)|0)^1)&1,s=n)),m0(e,0,r)|0?(l=w(Tn(t[e+996>>2]|0,r)),_=1,l=w(l+w(mt(e,0,n)))):(l=w(Tn(e+388|0,r)),l>=w(0)?_=2:(_=((gt(r)|0)^1)&1,l=r)),d=e+976|0,(ht(e,s,l,o,y,_,n,r,1,3189,t[d>>2]|0)|0?(Yo(e,t[e+496>>2]|0,n,r,n),bi(e,w(D[(t[d>>2]|0)+4>>2]),w(0),w(0)),c[11696]|0):0)&&ff(e,7)}function $r(e){e=e|0;var n=0,r=0,o=0,s=0,l=0,d=0,_=0,y=0,k=0,T=0;_=h,h=h+32|0,d=_+24|0,l=_+16|0,o=_+8|0,s=_,r=0;do n=e+380+(r<<3)|0,((t[e+380+(r<<3)+4>>2]|0)!=0?(y=n,k=t[y+4>>2]|0,T=o,t[T>>2]=t[y>>2],t[T+4>>2]=k,T=e+364+(r<<3)|0,k=t[T+4>>2]|0,y=s,t[y>>2]=t[T>>2],t[y+4>>2]=k,t[l>>2]=t[o>>2],t[l+4>>2]=t[o+4>>2],t[d>>2]=t[s>>2],t[d+4>>2]=t[s+4>>2],o0(l,d)|0):0)||(n=e+348+(r<<3)|0),t[e+992+(r<<2)>>2]=n,r=r+1|0;while((r|0)!=2);h=_}function m0(e,n,r){e=e|0,n=n|0,r=w(r);var o=0;switch(e=t[e+992+(t[976+(n<<2)>>2]<<2)>>2]|0,t[e+4>>2]|0){case 0:case 3:{e=0;break}case 1:{w(D[e>>2])>2])>2]|0){case 2:{n=w(w(w(D[e>>2])*n)/w(100));break}case 1:{n=w(D[e>>2]);break}default:n=w(J)}return w(n)}function Yo(e,n,r,o,s){e=e|0,n=n|0,r=w(r),o=w(o),s=w(s);var l=0,d=tt;n=t[e+944>>2]|0?n:1,l=N0(t[e+4>>2]|0,n)|0,n=Cl(l,n)|0,r=w(Wr(e,l,r)),o=w(Wr(e,n,o)),d=w(r+w(Tr(e,l,s))),D[e+400+(t[1040+(l<<2)>>2]<<2)>>2]=d,r=w(r+w(R0(e,l,s))),D[e+400+(t[1e3+(l<<2)>>2]<<2)>>2]=r,r=w(o+w(Tr(e,n,s))),D[e+400+(t[1040+(n<<2)>>2]<<2)>>2]=r,s=w(o+w(R0(e,n,s))),D[e+400+(t[1e3+(n<<2)>>2]<<2)>>2]=s}function bi(e,n,r,o){e=e|0,n=w(n),r=w(r),o=w(o);var s=0,l=0,d=tt,_=tt,y=0,k=0,T=tt,P=0,q=tt,we=tt,le=tt,ie=tt;if(n!=w(0)&&(s=e+400|0,ie=w(D[s>>2]),l=e+404|0,le=w(D[l>>2]),P=e+416|0,we=w(D[P>>2]),k=e+420|0,d=w(D[k>>2]),q=w(ie+r),T=w(le+o),o=w(q+we),_=w(T+d),y=(t[e+988>>2]|0)==1,D[s>>2]=w($0(ie,n,0,y)),D[l>>2]=w($0(le,n,0,y)),r=w(V4(w(we*n),w(1))),Vr(r,w(0))|0?l=0:l=(Vr(r,w(1))|0)^1,r=w(V4(w(d*n),w(1))),Vr(r,w(0))|0?s=0:s=(Vr(r,w(1))|0)^1,ie=w($0(o,n,y&l,y&(l^1))),D[P>>2]=w(ie-w($0(q,n,0,y))),ie=w($0(_,n,y&s,y&(s^1))),D[k>>2]=w(ie-w($0(T,n,0,y))),l=(t[e+952>>2]|0)-(t[e+948>>2]|0)>>2,l|0)){s=0;do bi(e0(e,s)|0,n,q,T),s=s+1|0;while((s|0)!=(l|0))}}function or(e,n,r,o,s){switch(e=e|0,n=n|0,r=r|0,o=o|0,s=s|0,r|0){case 5:case 0:{e=q8(t[489]|0,o,s)|0;break}default:e=AL(o,s)|0}return e|0}function zs(e,n,r,o){e=e|0,n=n|0,r=r|0,o=o|0;var s=0,l=0;s=h,h=h+16|0,l=s,t[l>>2]=o,Ku(e,0,n,r,l),h=s}function Ku(e,n,r,o,s){if(e=e|0,n=n|0,r=r|0,o=o|0,s=s|0,e=e|0?e:956,sD[t[e+8>>2]&1](e,n,r,o,s)|0,(r|0)==5)_n();else return}function J0(e,n,r){e=e|0,n=n|0,r=r|0,c[e+n>>0]=r&1}function af(e,n){e=e|0,n=n|0;var r=0,o=0;t[e>>2]=0,t[e+4>>2]=0,t[e+8>>2]=0,r=n+4|0,o=(t[r>>2]|0)-(t[n>>2]|0)>>2,o|0&&(S0(e,o),El(e,t[n>>2]|0,t[r>>2]|0,o))}function S0(e,n){e=e|0,n=n|0;var r=0;if((Q0(e)|0)>>>0>>0&&$n(e),n>>>0>1073741823)_n();else{r=Tt(n<<2)|0,t[e+4>>2]=r,t[e>>2]=r,t[e+8>>2]=r+(n<<2);return}}function El(e,n,r,o){e=e|0,n=n|0,r=r|0,o=o|0,o=e+4|0,e=r-n|0,(e|0)>0&&(vn(t[o>>2]|0,n|0,e|0)|0,t[o>>2]=(t[o>>2]|0)+(e>>>2<<2))}function Q0(e){return e=e|0,1073741823}function Tr(e,n,r){return e=e|0,n=n|0,r=w(r),(Nr(n)|0?(t[e+96>>2]|0)!=0:0)?e=e+92|0:e=en(e+60|0,t[1040+(n<<2)>>2]|0,992)|0,w(uo(e,r))}function R0(e,n,r){return e=e|0,n=n|0,r=w(r),(Nr(n)|0?(t[e+104>>2]|0)!=0:0)?e=e+100|0:e=en(e+60|0,t[1e3+(n<<2)>>2]|0,992)|0,w(uo(e,r))}function Nr(e){return e=e|0,(e|1|0)==3|0}function uo(e,n){return e=e|0,n=w(n),(t[e+4>>2]|0)==3?n=w(0):n=w(Tn(e,n)),w(n)}function so(e,n){return e=e|0,n=n|0,e=t[e>>2]|0,((e|0)==0?(n|0)>1?n:1:e)|0}function N0(e,n){e=e|0,n=n|0;var r=0;e:do if((n|0)==2){switch(e|0){case 2:{e=3;break e}case 3:break;default:{r=4;break e}}e=2}else r=4;while(0);return e|0}function C0(e,n){e=e|0,n=n|0;var r=tt;return((Nr(n)|0?(t[e+312>>2]|0)!=0:0)?(r=w(D[e+308>>2]),r>=w(0)):0)||(r=w(Ur(w(D[(en(e+276|0,t[1040+(n<<2)>>2]|0,992)|0)>>2]),w(0)))),w(r)}function di(e,n){e=e|0,n=n|0;var r=tt;return((Nr(n)|0?(t[e+320>>2]|0)!=0:0)?(r=w(D[e+316>>2]),r>=w(0)):0)||(r=w(Ur(w(D[(en(e+276|0,t[1e3+(n<<2)>>2]|0,992)|0)>>2]),w(0)))),w(r)}function u0(e,n,r){e=e|0,n=n|0,r=w(r);var o=tt;return((Nr(n)|0?(t[e+240>>2]|0)!=0:0)?(o=w(Tn(e+236|0,r)),o>=w(0)):0)||(o=w(Ur(w(Tn(en(e+204|0,t[1040+(n<<2)>>2]|0,992)|0,r)),w(0)))),w(o)}function v0(e,n,r){e=e|0,n=n|0,r=w(r);var o=tt;return((Nr(n)|0?(t[e+248>>2]|0)!=0:0)?(o=w(Tn(e+244|0,r)),o>=w(0)):0)||(o=w(Ur(w(Tn(en(e+204|0,t[1e3+(n<<2)>>2]|0,992)|0,r)),w(0)))),w(o)}function To(e,n,r,o,s,l,d){e=e|0,n=w(n),r=w(r),o=o|0,s=s|0,l=w(l),d=w(d);var _=tt,y=tt,k=tt,T=tt,P=tt,q=tt,we=0,le=0,ie=0;ie=h,h=h+16|0,we=ie,le=e+964|0,i0(e,(t[le>>2]|0)!=0,3519),_=w(Fn(e,2,n)),y=w(Fn(e,0,n)),k=w(mt(e,2,n)),T=w(mt(e,0,n)),gt(n)|0?P=n:P=w(Ur(w(0),w(w(n-k)-_))),gt(r)|0?q=r:q=w(Ur(w(0),w(w(r-T)-y))),(o|0)==1&(s|0)==1?(D[e+908>>2]=w(kn(e,2,w(n-k),l,l)),n=w(kn(e,0,w(r-T),d,l))):(lD[t[le>>2]&1](we,e,P,o,q,s),P=w(_+w(D[we>>2])),q=w(n-k),D[e+908>>2]=w(kn(e,2,(o|2|0)==2?P:q,l,l)),q=w(y+w(D[we+4>>2])),n=w(r-T),n=w(kn(e,0,(s|2|0)==2?q:n,d,l))),D[e+912>>2]=n,h=ie}function pu(e,n,r,o,s,l,d){e=e|0,n=w(n),r=w(r),o=o|0,s=s|0,l=w(l),d=w(d);var _=tt,y=tt,k=tt,T=tt;k=w(Fn(e,2,l)),_=w(Fn(e,0,l)),T=w(mt(e,2,l)),y=w(mt(e,0,l)),n=w(n-T),D[e+908>>2]=w(kn(e,2,(o|2|0)==2?k:n,l,l)),r=w(r-y),D[e+912>>2]=w(kn(e,0,(s|2|0)==2?_:r,d,l))}function Sl(e,n,r,o,s,l,d){e=e|0,n=w(n),r=w(r),o=o|0,s=s|0,l=w(l),d=w(d);var _=0,y=tt,k=tt;return _=(o|0)==2,((n<=w(0)&_?0:!(r<=w(0)&(s|0)==2))?!((o|0)==1&(s|0)==1):0)?e=0:(y=w(mt(e,0,l)),k=w(mt(e,2,l)),_=n>2]=w(kn(e,2,_?w(0):n,l,l)),n=w(r-y),_=r>2]=w(kn(e,0,_?w(0):n,d,l)),e=1),e|0}function Cl(e,n){return e=e|0,n=n|0,qt(e)|0?e=N0(2,n)|0:e=0,e|0}function B0(e,n,r){return e=e|0,n=n|0,r=w(r),r=w(u0(e,n,r)),w(r+w(C0(e,n)))}function hu(e,n,r){return e=e|0,n=n|0,r=w(r),r=w(v0(e,n,r)),w(r+w(di(e,n)))}function Fn(e,n,r){e=e|0,n=n|0,r=w(r);var o=tt;return o=w(B0(e,n,r)),w(o+w(hu(e,n,r)))}function pi(e){return e=e|0,t[e+24>>2]|0?e=0:w(Br(e))!=w(0)?e=1:e=w(zr(e))!=w(0),e|0}function Br(e){e=e|0;var n=tt;if(t[e+944>>2]|0){if(n=w(D[e+44>>2]),gt(n)|0)return n=w(D[e+40>>2]),e=n>w(0)&((gt(n)|0)^1),w(e?n:w(0))}else n=w(0);return w(n)}function zr(e){e=e|0;var n=tt,r=0,o=tt;do if(t[e+944>>2]|0){if(n=w(D[e+48>>2]),gt(n)|0){if(r=c[(t[e+976>>2]|0)+2>>0]|0,r<<24>>24==0?(o=w(D[e+40>>2]),o>24?w(1):w(0)}}else n=w(0);while(0);return w(n)}function lo(e){e=e|0;var n=0,r=0;if(pa(e+400|0,0,540)|0,c[e+985>>0]=1,bo(e),r=fi(e)|0,r|0){n=e+948|0,e=0;do lo(t[(t[n>>2]|0)+(e<<2)>>2]|0),e=e+1|0;while((e|0)!=(r|0))}}function wr(e,n,r,o,s,l,d,_,y,k){e=e|0,n=n|0,r=w(r),o=o|0,s=w(s),l=w(l),d=w(d),_=_|0,y=y|0,k=k|0;var T=0,P=tt,q=0,we=0,le=tt,ie=tt,Pe=0,ke=tt,qe=0,pe=tt,_e=0,vt=0,Ln=0,Ht=0,It=0,gn=0,Pn=0,zt=0,Dr=0,Ki=0;Dr=h,h=h+16|0,Ln=Dr+12|0,Ht=Dr+8|0,It=Dr+4|0,gn=Dr,zt=N0(t[e+4>>2]|0,y)|0,_e=Nr(zt)|0,P=w(Tn(Ut(n)|0,_e?l:d)),vt=m0(n,2,l)|0,Pn=m0(n,0,d)|0;do if(gt(P)|0?0:!(gt(_e?r:s)|0)){if(T=n+504|0,!(gt(w(D[T>>2]))|0)&&(!(fn(t[n+976>>2]|0,0)|0)||(t[n+500>>2]|0)==(t[2278]|0)))break;D[T>>2]=w(Ur(P,w(Fn(n,zt,l))))}else q=7;while(0);do if((q|0)==7){if(qe=_e^1,!(qe|vt^1)){d=w(Tn(t[n+992>>2]|0,l)),D[n+504>>2]=w(Ur(d,w(Fn(n,2,l))));break}if(!(_e|Pn^1)){d=w(Tn(t[n+996>>2]|0,d)),D[n+504>>2]=w(Ur(d,w(Fn(n,0,l))));break}D[Ln>>2]=w(J),D[Ht>>2]=w(J),t[It>>2]=0,t[gn>>2]=0,ke=w(mt(n,2,l)),pe=w(mt(n,0,l)),vt?(le=w(ke+w(Tn(t[n+992>>2]|0,l))),D[Ln>>2]=le,t[It>>2]=1,we=1):(we=0,le=w(J)),Pn?(P=w(pe+w(Tn(t[n+996>>2]|0,d))),D[Ht>>2]=P,t[gn>>2]=1,T=1):(T=0,P=w(J)),q=t[e+32>>2]|0,_e&(q|0)==2?q=2:(gt(le)|0?!(gt(r)|0):0)&&(D[Ln>>2]=r,t[It>>2]=2,we=2,le=r),(((q|0)==2&qe?0:gt(P)|0)?!(gt(s)|0):0)&&(D[Ht>>2]=s,t[gn>>2]=2,T=2,P=s),ie=w(D[n+396>>2]),Pe=gt(ie)|0;do if(Pe)q=we;else{if((we|0)==1&qe){D[Ht>>2]=w(w(le-ke)/ie),t[gn>>2]=1,T=1,q=1;break}_e&(T|0)==1?(D[Ln>>2]=w(ie*w(P-pe)),t[It>>2]=1,T=1,q=1):q=we}while(0);Ki=gt(r)|0,we=(T0(e,n)|0)!=4,(_e|vt|((o|0)!=1|Ki)|(we|(q|0)==1)?0:(D[Ln>>2]=r,t[It>>2]=1,!Pe))&&(D[Ht>>2]=w(w(r-ke)/ie),t[gn>>2]=1,T=1),(Pn|qe|((_|0)!=1|(gt(s)|0))|(we|(T|0)==1)?0:(D[Ht>>2]=s,t[gn>>2]=1,!Pe))&&(D[Ln>>2]=w(ie*w(s-pe)),t[It>>2]=1),Kt(n,2,l,l,It,Ln),Kt(n,0,d,l,gn,Ht),r=w(D[Ln>>2]),s=w(D[Ht>>2]),ht(n,r,s,y,t[It>>2]|0,t[gn>>2]|0,l,d,0,3565,k)|0,d=w(D[n+908+(t[976+(zt<<2)>>2]<<2)>>2]),D[n+504>>2]=w(Ur(d,w(Fn(n,zt,l))))}while(0);t[n+500>>2]=t[2278],h=Dr}function kn(e,n,r,o,s){return e=e|0,n=n|0,r=w(r),o=w(o),s=w(s),o=w(Dt(e,n,r,o)),w(Ur(o,w(Fn(e,n,s))))}function T0(e,n){return e=e|0,n=n|0,n=n+20|0,n=t[((t[n>>2]|0)==0?e+16|0:n)>>2]|0,((n|0)==5?qt(t[e+4>>2]|0)|0:0)&&(n=1),n|0}function hi(e,n){return e=e|0,n=n|0,(Nr(n)|0?(t[e+96>>2]|0)!=0:0)?n=4:n=t[1040+(n<<2)>>2]|0,e+60+(n<<3)|0}function Ai(e,n){return e=e|0,n=n|0,(Nr(n)|0?(t[e+104>>2]|0)!=0:0)?n=5:n=t[1e3+(n<<2)>>2]|0,e+60+(n<<3)|0}function Kt(e,n,r,o,s,l){switch(e=e|0,n=n|0,r=w(r),o=w(o),s=s|0,l=l|0,r=w(Tn(e+380+(t[976+(n<<2)>>2]<<3)|0,r)),r=w(r+w(mt(e,n,o))),t[s>>2]|0){case 2:case 1:{s=gt(r)|0,o=w(D[l>>2]),D[l>>2]=s|o>2]=2,D[l>>2]=r);break}default:}}function X(e,n){return e=e|0,n=n|0,e=e+132|0,(Nr(n)|0?(t[(en(e,4,948)|0)+4>>2]|0)!=0:0)?e=1:e=(t[(en(e,t[1040+(n<<2)>>2]|0,948)|0)+4>>2]|0)!=0,e|0}function Y(e,n,r){e=e|0,n=n|0,r=w(r);var o=0,s=0;return e=e+132|0,(Nr(n)|0?(o=en(e,4,948)|0,(t[o+4>>2]|0)!=0):0)?s=4:(o=en(e,t[1040+(n<<2)>>2]|0,948)|0,t[o+4>>2]|0?s=4:r=w(0)),(s|0)==4&&(r=w(Tn(o,r))),w(r)}function ye(e,n,r){e=e|0,n=n|0,r=w(r);var o=tt;return o=w(D[e+908+(t[976+(n<<2)>>2]<<2)>>2]),o=w(o+w(Tr(e,n,r))),w(o+w(R0(e,n,r)))}function he(e){e=e|0;var n=0,r=0,o=0;e:do if(qt(t[e+4>>2]|0)|0)n=0;else if((t[e+16>>2]|0)!=5)if(r=fi(e)|0,!r)n=0;else for(n=0;;){if(o=e0(e,n)|0,(t[o+24>>2]|0)==0?(t[o+20>>2]|0)==5:0){n=1;break e}if(n=n+1|0,n>>>0>=r>>>0){n=0;break}}else n=1;while(0);return n|0}function We(e,n){e=e|0,n=n|0;var r=tt;return r=w(D[e+908+(t[976+(n<<2)>>2]<<2)>>2]),r>=w(0)&((gt(r)|0)^1)|0}function et(e){e=e|0;var n=tt,r=0,o=0,s=0,l=0,d=0,_=0,y=tt;if(r=t[e+968>>2]|0,r)y=w(D[e+908>>2]),n=w(D[e+912>>2]),n=w(rD[r&0](e,y,n)),i0(e,(gt(n)|0)^1,3573);else{l=fi(e)|0;do if(l|0){for(r=0,s=0;;){if(o=e0(e,s)|0,t[o+940>>2]|0){d=8;break}if((t[o+24>>2]|0)!=1)if(_=(T0(e,o)|0)==5,_){r=o;break}else r=(r|0)==0?o:r;if(s=s+1|0,s>>>0>=l>>>0){d=8;break}}if((d|0)==8&&!r)break;return n=w(et(r)),w(n+w(D[r+404>>2]))}while(0);n=w(D[e+912>>2])}return w(n)}function Dt(e,n,r,o){e=e|0,n=n|0,r=w(r),o=w(o);var s=tt,l=0;return qt(n)|0?(n=1,l=3):Nr(n)|0?(n=0,l=3):(o=w(J),s=w(J)),(l|0)==3&&(s=w(Tn(e+364+(n<<3)|0,o)),o=w(Tn(e+380+(n<<3)|0,o))),l=o=w(0)&((gt(o)|0)^1)),r=l?o:r,l=s>=w(0)&((gt(s)|0)^1)&r>2]|0,l)|0,le=Cl(Pe,l)|0,ie=Nr(Pe)|0,P=w(mt(n,2,r)),q=w(mt(n,0,r)),m0(n,2,r)|0?_=w(P+w(Tn(t[n+992>>2]|0,r))):(X(n,2)|0?_t(n,2)|0:0)?(_=w(D[e+908>>2]),y=w(C0(e,2)),y=w(_-w(y+w(di(e,2)))),_=w(Y(n,2,r)),_=w(kn(n,2,w(y-w(_+w(_r(n,2,r)))),r,r))):_=w(J),m0(n,0,s)|0?y=w(q+w(Tn(t[n+996>>2]|0,s))):(X(n,0)|0?_t(n,0)|0:0)?(y=w(D[e+912>>2]),qe=w(C0(e,0)),qe=w(y-w(qe+w(di(e,0)))),y=w(Y(n,0,s)),y=w(kn(n,0,w(qe-w(y+w(_r(n,0,s)))),s,r))):y=w(J),k=gt(_)|0,T=gt(y)|0;do if(k^T?(we=w(D[n+396>>2]),!(gt(we)|0)):0)if(k){_=w(P+w(w(y-q)*we));break}else{qe=w(q+w(w(_-P)/we)),y=T?qe:y;break}while(0);T=gt(_)|0,k=gt(y)|0,T|k&&(pe=(T^1)&1,o=r>w(0)&((o|0)!=0&T),_=ie?_:o?r:_,ht(n,_,y,l,ie?pe:o?2:pe,T&(k^1)&1,_,y,0,3623,d)|0,_=w(D[n+908>>2]),_=w(_+w(mt(n,2,r))),y=w(D[n+912>>2]),y=w(y+w(mt(n,0,r)))),ht(n,_,y,l,1,1,_,y,1,3635,d)|0,(_t(n,Pe)|0?!(X(n,Pe)|0):0)?(pe=t[976+(Pe<<2)>>2]|0,qe=w(D[e+908+(pe<<2)>>2]),qe=w(qe-w(D[n+908+(pe<<2)>>2])),qe=w(qe-w(di(e,Pe))),qe=w(qe-w(R0(n,Pe,r))),qe=w(qe-w(_r(n,Pe,ie?r:s))),D[n+400+(t[1040+(Pe<<2)>>2]<<2)>>2]=qe):ke=21;do if((ke|0)==21){if(X(n,Pe)|0?0:(t[e+8>>2]|0)==1){pe=t[976+(Pe<<2)>>2]|0,qe=w(D[e+908+(pe<<2)>>2]),qe=w(w(qe-w(D[n+908+(pe<<2)>>2]))*w(.5)),D[n+400+(t[1040+(Pe<<2)>>2]<<2)>>2]=qe;break}(X(n,Pe)|0?0:(t[e+8>>2]|0)==2)&&(pe=t[976+(Pe<<2)>>2]|0,qe=w(D[e+908+(pe<<2)>>2]),qe=w(qe-w(D[n+908+(pe<<2)>>2])),D[n+400+(t[1040+(Pe<<2)>>2]<<2)>>2]=qe)}while(0);(_t(n,le)|0?!(X(n,le)|0):0)?(pe=t[976+(le<<2)>>2]|0,qe=w(D[e+908+(pe<<2)>>2]),qe=w(qe-w(D[n+908+(pe<<2)>>2])),qe=w(qe-w(di(e,le))),qe=w(qe-w(R0(n,le,r))),qe=w(qe-w(_r(n,le,ie?s:r))),D[n+400+(t[1040+(le<<2)>>2]<<2)>>2]=qe):ke=30;do if((ke|0)==30?!(X(n,le)|0):0){if((T0(e,n)|0)==2){pe=t[976+(le<<2)>>2]|0,qe=w(D[e+908+(pe<<2)>>2]),qe=w(w(qe-w(D[n+908+(pe<<2)>>2]))*w(.5)),D[n+400+(t[1040+(le<<2)>>2]<<2)>>2]=qe;break}pe=(T0(e,n)|0)==3,pe^(t[e+28>>2]|0)==2&&(pe=t[976+(le<<2)>>2]|0,qe=w(D[e+908+(pe<<2)>>2]),qe=w(qe-w(D[n+908+(pe<<2)>>2])),D[n+400+(t[1040+(le<<2)>>2]<<2)>>2]=qe)}while(0)}function Zt(e,n,r){e=e|0,n=n|0,r=r|0;var o=tt,s=0;s=t[976+(r<<2)>>2]|0,o=w(D[n+908+(s<<2)>>2]),o=w(w(D[e+908+(s<<2)>>2])-o),o=w(o-w(D[n+400+(t[1040+(r<<2)>>2]<<2)>>2])),D[n+400+(t[1e3+(r<<2)>>2]<<2)>>2]=o}function qt(e){return e=e|0,(e|1|0)==1|0}function Ut(e){e=e|0;var n=tt;switch(t[e+56>>2]|0){case 0:case 3:{n=w(D[e+40>>2]),n>w(0)&((gt(n)|0)^1)?e=c[(t[e+976>>2]|0)+2>>0]|0?1056:992:e=1056;break}default:e=e+52|0}return e|0}function fn(e,n){return e=e|0,n=n|0,(c[e+n>>0]|0)!=0|0}function _t(e,n){return e=e|0,n=n|0,e=e+132|0,(Nr(n)|0?(t[(en(e,5,948)|0)+4>>2]|0)!=0:0)?e=1:e=(t[(en(e,t[1e3+(n<<2)>>2]|0,948)|0)+4>>2]|0)!=0,e|0}function _r(e,n,r){e=e|0,n=n|0,r=w(r);var o=0,s=0;return e=e+132|0,(Nr(n)|0?(o=en(e,5,948)|0,(t[o+4>>2]|0)!=0):0)?s=4:(o=en(e,t[1e3+(n<<2)>>2]|0,948)|0,t[o+4>>2]|0?s=4:r=w(0)),(s|0)==4&&(r=w(Tn(o,r))),w(r)}function Wr(e,n,r){return e=e|0,n=n|0,r=w(r),X(e,n)|0?r=w(Y(e,n,r)):r=w(-w(_r(e,n,r))),w(r)}function Ar(e){return e=w(e),D[j>>2]=e,t[j>>2]|0|0}function z(e,n,r,o){e=e|0,n=n|0,r=r|0,o=o|0;var s=0;t[e+12>>2]=0,t[e+16>>2]=o;do if(n)if(n>>>0>1073741823)_n();else{s=Tt(n<<2)|0;break}else s=0;while(0);t[e>>2]=s,o=s+(r<<2)|0,t[e+8>>2]=o,t[e+4>>2]=o,t[e+12>>2]=s+(n<<2)}function dr(e,n){e=e|0,n=n|0;var r=0,o=0,s=0,l=0,d=0;o=t[e>>2]|0,d=e+4|0,l=n+4|0,s=(t[d>>2]|0)-o|0,r=(t[l>>2]|0)+(0-(s>>2)<<2)|0,t[l>>2]=r,(s|0)>0?(vn(r|0,o|0,s|0)|0,o=l,r=t[l>>2]|0):o=l,l=t[e>>2]|0,t[e>>2]=r,t[o>>2]=l,l=n+8|0,s=t[d>>2]|0,t[d>>2]=t[l>>2],t[l>>2]=s,l=e+8|0,d=n+12|0,e=t[l>>2]|0,t[l>>2]=t[d>>2],t[d>>2]=e,t[n>>2]=t[o>>2]}function Or(e){e=e|0;var n=0,r=0,o=0;n=t[e+4>>2]|0,r=e+8|0,o=t[r>>2]|0,(o|0)!=(n|0)&&(t[r>>2]=o+(~((o+-4-n|0)>>>2)<<2)),e=t[e>>2]|0,e|0&&Ve(e)}function Qn(e,n,r,o){e=e|0,n=n|0,r=r|0,o=o|0;var s=0,l=0,d=0,_=0;if(d=e+4|0,_=t[d>>2]|0,s=_-o|0,l=s>>2,e=n+(l<<2)|0,e>>>0>>0){o=_;do t[o>>2]=t[e>>2],e=e+4|0,o=(t[d>>2]|0)+4|0,t[d>>2]=o;while(e>>>0>>0)}l|0&&Y1(_+(0-l<<2)|0,n|0,s|0)|0}function nn(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0,l=0,d=0,_=0,y=0;return _=n+4|0,y=t[_>>2]|0,s=t[e>>2]|0,d=r,l=d-s|0,o=y+(0-(l>>2)<<2)|0,t[_>>2]=o,(l|0)>0&&vn(o|0,s|0,l|0)|0,s=e+4|0,l=n+8|0,o=(t[s>>2]|0)-d|0,(o|0)>0&&(vn(t[l>>2]|0,r|0,o|0)|0,t[l>>2]=(t[l>>2]|0)+(o>>>2<<2)),d=t[e>>2]|0,t[e>>2]=t[_>>2],t[_>>2]=d,d=t[s>>2]|0,t[s>>2]=t[l>>2],t[l>>2]=d,d=e+8|0,r=n+12|0,e=t[d>>2]|0,t[d>>2]=t[r>>2],t[r>>2]=e,t[n>>2]=t[_>>2],y|0}function s0(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0,l=0,d=0;if(d=t[n>>2]|0,l=t[r>>2]|0,(d|0)!=(l|0)){s=e+8|0,r=((l+-4-d|0)>>>2)+1|0,e=d,o=t[s>>2]|0;do t[o>>2]=t[e>>2],o=(t[s>>2]|0)+4|0,t[s>>2]=o,e=e+4|0;while((e|0)!=(l|0));t[n>>2]=d+(r<<2)}}function t0(){_l()}function g0(){var e=0;return e=Tt(4)|0,Kr(e),e|0}function Kr(e){e=e|0,t[e>>2]=a0()|0}function _0(e){e=e|0,e|0&&(Gi(e),Ve(e))}function Gi(e){e=e|0,V0(t[e>>2]|0)}function fo(e,n,r){e=e|0,n=n|0,r=r|0,J0(t[e>>2]|0,n,r)}function x0(e,n){e=e|0,n=w(n),ki(t[e>>2]|0,n)}function Xu(e,n){return e=e|0,n=n|0,fn(t[e>>2]|0,n)|0}function Z0(){var e=0;return e=Tt(8)|0,df(e,0),e|0}function df(e,n){e=e|0,n=n|0,n?n=I0(t[n>>2]|0)|0:n=qu()|0,t[e>>2]=n,t[e+4>>2]=0,Bs(n,e)}function Ba(e){e=e|0;var n=0;return n=Tt(8)|0,df(n,e),n|0}function Oc(e){e=e|0,e|0&&(mu(e),Ve(e))}function mu(e){e=e|0;var n=0;Wu(t[e>>2]|0),n=e+4|0,e=t[n>>2]|0,t[n>>2]=0,e|0&&(Ju(e),Ve(e))}function Ju(e){e=e|0,ei(e)}function ei(e){e=e|0,e=t[e>>2]|0,e|0&&ju(e|0)}function Yf(e){return e=e|0,Vu(e)|0}function pf(e){e=e|0;var n=0,r=0;r=e+4|0,n=t[r>>2]|0,t[r>>2]=0,n|0&&(Ju(n),Ve(n)),Do(t[e>>2]|0)}function ja(e,n){e=e|0,n=n|0,Gu(t[e>>2]|0,t[n>>2]|0)}function Ua(e,n){e=e|0,n=n|0,W(t[e>>2]|0,n)}function Ic(e,n,r){e=e|0,n=n|0,r=+r,yn(t[e>>2]|0,n,w(r))}function vu(e,n,r){e=e|0,n=n|0,r=+r,sn(t[e>>2]|0,n,w(r))}function $f(e,n){e=e|0,n=n|0,R(t[e>>2]|0,n)}function gu(e,n){e=e|0,n=n|0,H(t[e>>2]|0,n)}function co(e,n){e=e|0,n=n|0,ue(t[e>>2]|0,n)}function qa(e,n){e=e|0,n=n|0,M0(t[e>>2]|0,n)}function Ws(e,n){e=e|0,n=n|0,Fe(t[e>>2]|0,n)}function za(e,n){e=e|0,n=n|0,Lr(t[e>>2]|0,n)}function Pc(e,n,r){e=e|0,n=n|0,r=+r,rn(t[e>>2]|0,n,w(r))}function Qu(e,n,r){e=e|0,n=n|0,r=+r,Hn(t[e>>2]|0,n,w(r))}function Mc(e,n){e=e|0,n=n|0,Cr(t[e>>2]|0,n)}function Fc(e,n){e=e|0,n=n|0,K(t[e>>2]|0,n)}function Lc(e,n){e=e|0,n=n|0,je(t[e>>2]|0,n)}function Kf(e,n){e=e|0,n=+n,rt(t[e>>2]|0,w(n))}function Tl(e,n){e=e|0,n=+n,wt(t[e>>2]|0,w(n))}function xl(e,n){e=e|0,n=+n,lt(t[e>>2]|0,w(n))}function hf(e,n){e=e|0,n=+n,st(t[e>>2]|0,w(n))}function xo(e,n){e=e|0,n=+n,xt(t[e>>2]|0,w(n))}function mf(e,n){e=e|0,n=+n,Qt(t[e>>2]|0,w(n))}function Wa(e,n){e=e|0,n=+n,Cn(t[e>>2]|0,w(n))}function ti(e){e=e|0,bn(t[e>>2]|0)}function Hs(e,n){e=e|0,n=+n,h0(t[e>>2]|0,w(n))}function mi(e,n){e=e|0,n=+n,ci(t[e>>2]|0,w(n))}function vi(e){e=e|0,xi(t[e>>2]|0)}function Xf(e,n){e=e|0,n=+n,qr(t[e>>2]|0,w(n))}function Rc(e,n){e=e|0,n=+n,Eo(t[e>>2]|0,w(n))}function Jf(e,n){e=e|0,n=+n,wl(t[e>>2]|0,w(n))}function ao(e,n){e=e|0,n=+n,js(t[e>>2]|0,w(n))}function $o(e,n){e=e|0,n=+n,du(t[e>>2]|0,w(n))}function kl(e,n){e=e|0,n=+n,Yu(t[e>>2]|0,w(n))}function Nc(e,n){e=e|0,n=+n,oo(t[e>>2]|0,w(n))}function Al(e,n){e=e|0,n=+n,Hi(t[e>>2]|0,w(n))}function vf(e,n){e=e|0,n=+n,F0(t[e>>2]|0,w(n))}function Qf(e,n,r){e=e|0,n=n|0,r=+r,ft(t[e>>2]|0,n,w(r))}function k0(e,n,r){e=e|0,n=n|0,r=+r,He(t[e>>2]|0,n,w(r))}function v(e,n,r){e=e|0,n=n|0,r=+r,Qe(t[e>>2]|0,n,w(r))}function m(e){return e=e|0,ve(t[e>>2]|0)|0}function S(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0;o=h,h=h+16|0,s=o,ar(s,t[n>>2]|0,r),O(e,s),h=o}function O(e,n){e=e|0,n=n|0,M(e,t[n+4>>2]|0,+w(D[n>>2]))}function M(e,n,r){e=e|0,n=n|0,r=+r,t[e>>2]=n,L[e+8>>3]=r}function b(e){return e=e|0,U(t[e>>2]|0)|0}function ee(e){return e=e|0,fe(t[e>>2]|0)|0}function Ye(e){return e=e|0,de(t[e>>2]|0)|0}function Ze(e){return e=e|0,au(t[e>>2]|0)|0}function ut(e){return e=e|0,Ge(t[e>>2]|0)|0}function In(e){return e=e|0,F(t[e>>2]|0)|0}function A0(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0;o=h,h=h+16|0,s=o,d0(s,t[n>>2]|0,r),O(e,s),h=o}function jr(e){return e=e|0,xe(t[e>>2]|0)|0}function gi(e){return e=e|0,Xe(t[e>>2]|0)|0}function po(e,n){e=e|0,n=n|0;var r=0,o=0;r=h,h=h+16|0,o=r,Rt(o,t[n>>2]|0),O(e,o),h=r}function _i(e){return e=e|0,+ +w(yl(t[e>>2]|0))}function Re(e){return e=e|0,+ +w(cu(t[e>>2]|0))}function Ce(e,n){e=e|0,n=n|0;var r=0,o=0;r=h,h=h+16|0,o=r,p0(o,t[n>>2]|0),O(e,o),h=r}function ze(e,n){e=e|0,n=n|0;var r=0,o=0;r=h,h=h+16|0,o=r,E0(o,t[n>>2]|0),O(e,o),h=r}function Et(e,n){e=e|0,n=n|0;var r=0,o=0;r=h,h=h+16|0,o=r,So(o,t[n>>2]|0),O(e,o),h=r}function on(e,n){e=e|0,n=n|0;var r=0,o=0;r=h,h=h+16|0,o=r,Dl(o,t[n>>2]|0),O(e,o),h=r}function sr(e,n){e=e|0,n=n|0;var r=0,o=0;r=h,h=h+16|0,o=r,Us(o,t[n>>2]|0),O(e,o),h=r}function mn(e,n){e=e|0,n=n|0;var r=0,o=0;r=h,h=h+16|0,o=r,qs(o,t[n>>2]|0),O(e,o),h=r}function pr(e){return e=e|0,+ +w(Gr(t[e>>2]|0))}function Hr(e,n){return e=e|0,n=n|0,+ +w(St(t[e>>2]|0,n))}function Vn(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0;o=h,h=h+16|0,s=o,Ne(s,t[n>>2]|0,r),O(e,s),h=o}function ni(e,n,r){e=e|0,n=n|0,r=r|0,Ns(t[e>>2]|0,t[n>>2]|0,r)}function Zf(e,n){e=e|0,n=n|0,D0(t[e>>2]|0,t[n>>2]|0)}function Pm(e){return e=e|0,fi(t[e>>2]|0)|0}function Ha(e){return e=e|0,e=nr(t[e>>2]|0)|0,e?e=Yf(e)|0:e=0,e|0}function vd(e,n){return e=e|0,n=n|0,e=e0(t[e>>2]|0,n)|0,e?e=Yf(e)|0:e=0,e|0}function gd(e,n){e=e|0,n=n|0;var r=0,o=0;o=Tt(4)|0,ba(o,n),r=e+4|0,n=t[r>>2]|0,t[r>>2]=o,n|0&&(Ju(n),Ve(n)),bu(t[e>>2]|0,1)}function ba(e,n){e=e|0,n=n|0,Oo(e,n)}function Bc(e,n,r,o,s,l){e=e|0,n=n|0,r=w(r),o=o|0,s=w(s),l=l|0;var d=0,_=0;d=h,h=h+16|0,_=d,Mm(_,Vu(n)|0,+r,o,+s,l),D[e>>2]=w(+L[_>>3]),D[e+4>>2]=w(+L[_+8>>3]),h=d}function Mm(e,n,r,o,s,l){e=e|0,n=n|0,r=+r,o=o|0,s=+s,l=l|0;var d=0,_=0,y=0,k=0,T=0;d=h,h=h+32|0,T=d+8|0,k=d+20|0,y=d,_=d+16|0,L[T>>3]=r,t[k>>2]=o,L[y>>3]=s,t[_>>2]=l,_d(e,t[n+4>>2]|0,T,k,y,_),h=d}function _d(e,n,r,o,s,l){e=e|0,n=n|0,r=r|0,o=o|0,s=s|0,l=l|0;var d=0,_=0;d=h,h=h+16|0,_=d,Zo(_),n=Oi(n)|0,Fm(e,n,+L[r>>3],t[o>>2]|0,+L[s>>3],t[l>>2]|0),eu(_),h=d}function Oi(e){return e=e|0,t[e>>2]|0}function Fm(e,n,r,o,s,l){e=e|0,n=n|0,r=+r,o=o|0,s=+s,l=l|0;var d=0;d=ko(yd()|0)|0,r=+Ko(r),o=jc(o)|0,s=+Ko(s),Ga(e,ro(0,d|0,n|0,+r,o|0,+s,jc(l)|0)|0)}function yd(){var e=0;return c[7608]|0||(Ed(9120),e=7608,t[e>>2]=1,t[e+4>>2]=0),9120}function ko(e){return e=e|0,t[e+8>>2]|0}function Ko(e){return e=+e,+ +Ol(e)}function jc(e){return e=e|0,Dd(e)|0}function Ga(e,n){e=e|0,n=n|0;var r=0,o=0,s=0;s=h,h=h+32|0,r=s,o=n,o&1?(Lm(r,0),c0(o|0,r|0)|0,Va(e,r),Wn(r)):(t[e>>2]=t[n>>2],t[e+4>>2]=t[n+4>>2],t[e+8>>2]=t[n+8>>2],t[e+12>>2]=t[n+12>>2]),h=s}function Lm(e,n){e=e|0,n=n|0,wd(e,n),t[e+8>>2]=0,c[e+24>>0]=0}function Va(e,n){e=e|0,n=n|0,n=n+8|0,t[e>>2]=t[n>>2],t[e+4>>2]=t[n+4>>2],t[e+8>>2]=t[n+8>>2],t[e+12>>2]=t[n+12>>2]}function Wn(e){e=e|0,c[e+24>>0]=0}function wd(e,n){e=e|0,n=n|0,t[e>>2]=n}function Dd(e){return e=e|0,e|0}function Ol(e){return e=+e,+e}function Ed(e){e=e|0,Ao(e,Rm()|0,4)}function Rm(){return 1064}function Ao(e,n,r){e=e|0,n=n|0,r=r|0,t[e>>2]=n,t[e+4>>2]=r,t[e+8>>2]=hl(n|0,r+1|0)|0}function Oo(e,n){e=e|0,n=n|0,n=t[n>>2]|0,t[e>>2]=n,qi(n|0)}function Nm(e){e=e|0;var n=0,r=0;r=e+4|0,n=t[r>>2]|0,t[r>>2]=0,n|0&&(Ju(n),Ve(n)),bu(t[e>>2]|0,0)}function Uc(e){e=e|0,rr(t[e>>2]|0)}function Ya(e){return e=e|0,Go(t[e>>2]|0)|0}function Sd(e,n,r,o){e=e|0,n=+n,r=+r,o=o|0,Yr(t[e>>2]|0,w(n),w(r),o)}function Cd(e){return e=e|0,+ +w(ir(t[e>>2]|0))}function ho(e){return e=e|0,+ +w(Y0(t[e>>2]|0))}function bs(e){return e=e|0,+ +w(L0(t[e>>2]|0))}function $a(e){return e=e|0,+ +w(Co(t[e>>2]|0))}function Td(e){return e=e|0,+ +w($u(t[e>>2]|0))}function qc(e){return e=e|0,+ +w(Vo(t[e>>2]|0))}function xd(e,n){e=e|0,n=n|0,L[e>>3]=+w(ir(t[n>>2]|0)),L[e+8>>3]=+w(Y0(t[n>>2]|0)),L[e+16>>3]=+w(L0(t[n>>2]|0)),L[e+24>>3]=+w(Co(t[n>>2]|0)),L[e+32>>3]=+w($u(t[n>>2]|0)),L[e+40>>3]=+w(Vo(t[n>>2]|0))}function Ka(e,n){return e=e|0,n=n|0,+ +w(Rr(t[e>>2]|0,n))}function kd(e,n){return e=e|0,n=n|0,+ +w(Jn(t[e>>2]|0,n))}function Xa(e,n){return e=e|0,n=n|0,+ +w(ai(t[e>>2]|0,n))}function Ja(){return Rs()|0}function Gs(){Bm(),Vs(),Ad(),Od(),Qa(),jm()}function Bm(){hO(11713,4938,1)}function Vs(){FA(10448)}function Ad(){hA(10408)}function Od(){Bk(10324)}function Qa(){Gx(10096)}function jm(){Um(9132)}function Um(e){e=e|0;var n=0,r=0,o=0,s=0,l=0,d=0,_=0,y=0,k=0,T=0,P=0,q=0,we=0,le=0,ie=0,Pe=0,ke=0,qe=0,pe=0,_e=0,vt=0,Ln=0,Ht=0,It=0,gn=0,Pn=0,zt=0,Dr=0,Ki=0,Xi=0,Ji=0,Ro=0,kf=0,Af=0,Cu=0,Of=0,Js=0,Qs=0,If=0,Pf=0,Mf=0,Kn=0,Tu=0,Ff=0,us=0,Lf=0,Rf=0,Zs=0,el=0,ss=0,Fi=0,nu=0,go=0,xu=0,jl=0,Ul=0,tl=0,ql=0,zl=0,Li=0,Di=0,ku=0,xr=0,Wl=0,Qi=0,ls=0,Zi=0,fs=0,Hl=0,bl=0,cs=0,Ri=0,Au=0,Gl=0,Vl=0,Yl=0,En=0,br=0,Ei=0,eo=0,Ni=0,xn=0,Vt=0,Ou=0;n=h,h=h+672|0,r=n+656|0,Ou=n+648|0,Vt=n+640|0,xn=n+632|0,Ni=n+624|0,eo=n+616|0,Ei=n+608|0,br=n+600|0,En=n+592|0,Yl=n+584|0,Vl=n+576|0,Gl=n+568|0,Au=n+560|0,Ri=n+552|0,cs=n+544|0,bl=n+536|0,Hl=n+528|0,fs=n+520|0,Zi=n+512|0,ls=n+504|0,Qi=n+496|0,Wl=n+488|0,xr=n+480|0,ku=n+472|0,Di=n+464|0,Li=n+456|0,zl=n+448|0,ql=n+440|0,tl=n+432|0,Ul=n+424|0,jl=n+416|0,xu=n+408|0,go=n+400|0,nu=n+392|0,Fi=n+384|0,ss=n+376|0,el=n+368|0,Zs=n+360|0,Rf=n+352|0,Lf=n+344|0,us=n+336|0,Ff=n+328|0,Tu=n+320|0,Kn=n+312|0,Mf=n+304|0,Pf=n+296|0,If=n+288|0,Qs=n+280|0,Js=n+272|0,Of=n+264|0,Cu=n+256|0,Af=n+248|0,kf=n+240|0,Ro=n+232|0,Ji=n+224|0,Xi=n+216|0,Ki=n+208|0,Dr=n+200|0,zt=n+192|0,Pn=n+184|0,gn=n+176|0,It=n+168|0,Ht=n+160|0,Ln=n+152|0,vt=n+144|0,_e=n+136|0,pe=n+128|0,qe=n+120|0,ke=n+112|0,Pe=n+104|0,ie=n+96|0,le=n+88|0,we=n+80|0,q=n+72|0,P=n+64|0,T=n+56|0,k=n+48|0,y=n+40|0,_=n+32|0,d=n+24|0,l=n+16|0,s=n+8|0,o=n,qm(e,3646),Id(e,3651,2)|0,Pd(e,3665,2)|0,zm(e,3682,18)|0,t[Ou>>2]=19,t[Ou+4>>2]=0,t[r>>2]=t[Ou>>2],t[r+4>>2]=t[Ou+4>>2],gf(e,3690,r)|0,t[Vt>>2]=1,t[Vt+4>>2]=0,t[r>>2]=t[Vt>>2],t[r+4>>2]=t[Vt+4>>2],Md(e,3696,r)|0,t[xn>>2]=2,t[xn+4>>2]=0,t[r>>2]=t[xn>>2],t[r+4>>2]=t[xn+4>>2],Xr(e,3706,r)|0,t[Ni>>2]=1,t[Ni+4>>2]=0,t[r>>2]=t[Ni>>2],t[r+4>>2]=t[Ni+4>>2],yi(e,3722,r)|0,t[eo>>2]=2,t[eo+4>>2]=0,t[r>>2]=t[eo>>2],t[r+4>>2]=t[eo+4>>2],yi(e,3734,r)|0,t[Ei>>2]=3,t[Ei+4>>2]=0,t[r>>2]=t[Ei>>2],t[r+4>>2]=t[Ei+4>>2],Xr(e,3753,r)|0,t[br>>2]=4,t[br+4>>2]=0,t[r>>2]=t[br>>2],t[r+4>>2]=t[br+4>>2],Xr(e,3769,r)|0,t[En>>2]=5,t[En+4>>2]=0,t[r>>2]=t[En>>2],t[r+4>>2]=t[En+4>>2],Xr(e,3783,r)|0,t[Yl>>2]=6,t[Yl+4>>2]=0,t[r>>2]=t[Yl>>2],t[r+4>>2]=t[Yl+4>>2],Xr(e,3796,r)|0,t[Vl>>2]=7,t[Vl+4>>2]=0,t[r>>2]=t[Vl>>2],t[r+4>>2]=t[Vl+4>>2],Xr(e,3813,r)|0,t[Gl>>2]=8,t[Gl+4>>2]=0,t[r>>2]=t[Gl>>2],t[r+4>>2]=t[Gl+4>>2],Xr(e,3825,r)|0,t[Au>>2]=3,t[Au+4>>2]=0,t[r>>2]=t[Au>>2],t[r+4>>2]=t[Au+4>>2],yi(e,3843,r)|0,t[Ri>>2]=4,t[Ri+4>>2]=0,t[r>>2]=t[Ri>>2],t[r+4>>2]=t[Ri+4>>2],yi(e,3853,r)|0,t[cs>>2]=9,t[cs+4>>2]=0,t[r>>2]=t[cs>>2],t[r+4>>2]=t[cs+4>>2],Xr(e,3870,r)|0,t[bl>>2]=10,t[bl+4>>2]=0,t[r>>2]=t[bl>>2],t[r+4>>2]=t[bl+4>>2],Xr(e,3884,r)|0,t[Hl>>2]=11,t[Hl+4>>2]=0,t[r>>2]=t[Hl>>2],t[r+4>>2]=t[Hl+4>>2],Xr(e,3896,r)|0,t[fs>>2]=1,t[fs+4>>2]=0,t[r>>2]=t[fs>>2],t[r+4>>2]=t[fs+4>>2],j0(e,3907,r)|0,t[Zi>>2]=2,t[Zi+4>>2]=0,t[r>>2]=t[Zi>>2],t[r+4>>2]=t[Zi+4>>2],j0(e,3915,r)|0,t[ls>>2]=3,t[ls+4>>2]=0,t[r>>2]=t[ls>>2],t[r+4>>2]=t[ls+4>>2],j0(e,3928,r)|0,t[Qi>>2]=4,t[Qi+4>>2]=0,t[r>>2]=t[Qi>>2],t[r+4>>2]=t[Qi+4>>2],j0(e,3948,r)|0,t[Wl>>2]=5,t[Wl+4>>2]=0,t[r>>2]=t[Wl>>2],t[r+4>>2]=t[Wl+4>>2],j0(e,3960,r)|0,t[xr>>2]=6,t[xr+4>>2]=0,t[r>>2]=t[xr>>2],t[r+4>>2]=t[xr+4>>2],j0(e,3974,r)|0,t[ku>>2]=7,t[ku+4>>2]=0,t[r>>2]=t[ku>>2],t[r+4>>2]=t[ku+4>>2],j0(e,3983,r)|0,t[Di>>2]=20,t[Di+4>>2]=0,t[r>>2]=t[Di>>2],t[r+4>>2]=t[Di+4>>2],gf(e,3999,r)|0,t[Li>>2]=8,t[Li+4>>2]=0,t[r>>2]=t[Li>>2],t[r+4>>2]=t[Li+4>>2],j0(e,4012,r)|0,t[zl>>2]=9,t[zl+4>>2]=0,t[r>>2]=t[zl>>2],t[r+4>>2]=t[zl+4>>2],j0(e,4022,r)|0,t[ql>>2]=21,t[ql+4>>2]=0,t[r>>2]=t[ql>>2],t[r+4>>2]=t[ql+4>>2],gf(e,4039,r)|0,t[tl>>2]=10,t[tl+4>>2]=0,t[r>>2]=t[tl>>2],t[r+4>>2]=t[tl+4>>2],j0(e,4053,r)|0,t[Ul>>2]=11,t[Ul+4>>2]=0,t[r>>2]=t[Ul>>2],t[r+4>>2]=t[Ul+4>>2],j0(e,4065,r)|0,t[jl>>2]=12,t[jl+4>>2]=0,t[r>>2]=t[jl>>2],t[r+4>>2]=t[jl+4>>2],j0(e,4084,r)|0,t[xu>>2]=13,t[xu+4>>2]=0,t[r>>2]=t[xu>>2],t[r+4>>2]=t[xu+4>>2],j0(e,4097,r)|0,t[go>>2]=14,t[go+4>>2]=0,t[r>>2]=t[go>>2],t[r+4>>2]=t[go+4>>2],j0(e,4117,r)|0,t[nu>>2]=15,t[nu+4>>2]=0,t[r>>2]=t[nu>>2],t[r+4>>2]=t[nu+4>>2],j0(e,4129,r)|0,t[Fi>>2]=16,t[Fi+4>>2]=0,t[r>>2]=t[Fi>>2],t[r+4>>2]=t[Fi+4>>2],j0(e,4148,r)|0,t[ss>>2]=17,t[ss+4>>2]=0,t[r>>2]=t[ss>>2],t[r+4>>2]=t[ss+4>>2],j0(e,4161,r)|0,t[el>>2]=18,t[el+4>>2]=0,t[r>>2]=t[el>>2],t[r+4>>2]=t[el+4>>2],j0(e,4181,r)|0,t[Zs>>2]=5,t[Zs+4>>2]=0,t[r>>2]=t[Zs>>2],t[r+4>>2]=t[Zs+4>>2],yi(e,4196,r)|0,t[Rf>>2]=6,t[Rf+4>>2]=0,t[r>>2]=t[Rf>>2],t[r+4>>2]=t[Rf+4>>2],yi(e,4206,r)|0,t[Lf>>2]=7,t[Lf+4>>2]=0,t[r>>2]=t[Lf>>2],t[r+4>>2]=t[Lf+4>>2],yi(e,4217,r)|0,t[us>>2]=3,t[us+4>>2]=0,t[r>>2]=t[us>>2],t[r+4>>2]=t[us+4>>2],Zu(e,4235,r)|0,t[Ff>>2]=1,t[Ff+4>>2]=0,t[r>>2]=t[Ff>>2],t[r+4>>2]=t[Ff+4>>2],_f(e,4251,r)|0,t[Tu>>2]=4,t[Tu+4>>2]=0,t[r>>2]=t[Tu>>2],t[r+4>>2]=t[Tu+4>>2],Zu(e,4263,r)|0,t[Kn>>2]=5,t[Kn+4>>2]=0,t[r>>2]=t[Kn>>2],t[r+4>>2]=t[Kn+4>>2],Zu(e,4279,r)|0,t[Mf>>2]=6,t[Mf+4>>2]=0,t[r>>2]=t[Mf>>2],t[r+4>>2]=t[Mf+4>>2],Zu(e,4293,r)|0,t[Pf>>2]=7,t[Pf+4>>2]=0,t[r>>2]=t[Pf>>2],t[r+4>>2]=t[Pf+4>>2],Zu(e,4306,r)|0,t[If>>2]=8,t[If+4>>2]=0,t[r>>2]=t[If>>2],t[r+4>>2]=t[If+4>>2],Zu(e,4323,r)|0,t[Qs>>2]=9,t[Qs+4>>2]=0,t[r>>2]=t[Qs>>2],t[r+4>>2]=t[Qs+4>>2],Zu(e,4335,r)|0,t[Js>>2]=2,t[Js+4>>2]=0,t[r>>2]=t[Js>>2],t[r+4>>2]=t[Js+4>>2],_f(e,4353,r)|0,t[Of>>2]=12,t[Of+4>>2]=0,t[r>>2]=t[Of>>2],t[r+4>>2]=t[Of+4>>2],Io(e,4363,r)|0,t[Cu>>2]=1,t[Cu+4>>2]=0,t[r>>2]=t[Cu>>2],t[r+4>>2]=t[Cu+4>>2],_u(e,4376,r)|0,t[Af>>2]=2,t[Af+4>>2]=0,t[r>>2]=t[Af>>2],t[r+4>>2]=t[Af+4>>2],_u(e,4388,r)|0,t[kf>>2]=13,t[kf+4>>2]=0,t[r>>2]=t[kf>>2],t[r+4>>2]=t[kf+4>>2],Io(e,4402,r)|0,t[Ro>>2]=14,t[Ro+4>>2]=0,t[r>>2]=t[Ro>>2],t[r+4>>2]=t[Ro+4>>2],Io(e,4411,r)|0,t[Ji>>2]=15,t[Ji+4>>2]=0,t[r>>2]=t[Ji>>2],t[r+4>>2]=t[Ji+4>>2],Io(e,4421,r)|0,t[Xi>>2]=16,t[Xi+4>>2]=0,t[r>>2]=t[Xi>>2],t[r+4>>2]=t[Xi+4>>2],Io(e,4433,r)|0,t[Ki>>2]=17,t[Ki+4>>2]=0,t[r>>2]=t[Ki>>2],t[r+4>>2]=t[Ki+4>>2],Io(e,4446,r)|0,t[Dr>>2]=18,t[Dr+4>>2]=0,t[r>>2]=t[Dr>>2],t[r+4>>2]=t[Dr+4>>2],Io(e,4458,r)|0,t[zt>>2]=3,t[zt+4>>2]=0,t[r>>2]=t[zt>>2],t[r+4>>2]=t[zt+4>>2],_u(e,4471,r)|0,t[Pn>>2]=1,t[Pn+4>>2]=0,t[r>>2]=t[Pn>>2],t[r+4>>2]=t[Pn+4>>2],ec(e,4486,r)|0,t[gn>>2]=10,t[gn+4>>2]=0,t[r>>2]=t[gn>>2],t[r+4>>2]=t[gn+4>>2],Zu(e,4496,r)|0,t[It>>2]=11,t[It+4>>2]=0,t[r>>2]=t[It>>2],t[r+4>>2]=t[It+4>>2],Zu(e,4508,r)|0,t[Ht>>2]=3,t[Ht+4>>2]=0,t[r>>2]=t[Ht>>2],t[r+4>>2]=t[Ht+4>>2],_f(e,4519,r)|0,t[Ln>>2]=4,t[Ln+4>>2]=0,t[r>>2]=t[Ln>>2],t[r+4>>2]=t[Ln+4>>2],Wm(e,4530,r)|0,t[vt>>2]=19,t[vt+4>>2]=0,t[r>>2]=t[vt>>2],t[r+4>>2]=t[vt+4>>2],Fd(e,4542,r)|0,t[_e>>2]=12,t[_e+4>>2]=0,t[r>>2]=t[_e>>2],t[r+4>>2]=t[_e+4>>2],yf(e,4554,r)|0,t[pe>>2]=13,t[pe+4>>2]=0,t[r>>2]=t[pe>>2],t[r+4>>2]=t[pe+4>>2],tc(e,4568,r)|0,t[qe>>2]=2,t[qe+4>>2]=0,t[r>>2]=t[qe>>2],t[r+4>>2]=t[qe+4>>2],Hm(e,4578,r)|0,t[ke>>2]=20,t[ke+4>>2]=0,t[r>>2]=t[ke>>2],t[r+4>>2]=t[ke+4>>2],Ld(e,4587,r)|0,t[Pe>>2]=22,t[Pe+4>>2]=0,t[r>>2]=t[Pe>>2],t[r+4>>2]=t[Pe+4>>2],gf(e,4602,r)|0,t[ie>>2]=23,t[ie+4>>2]=0,t[r>>2]=t[ie>>2],t[r+4>>2]=t[ie+4>>2],gf(e,4619,r)|0,t[le>>2]=14,t[le+4>>2]=0,t[r>>2]=t[le>>2],t[r+4>>2]=t[le+4>>2],Rd(e,4629,r)|0,t[we>>2]=1,t[we+4>>2]=0,t[r>>2]=t[we>>2],t[r+4>>2]=t[we+4>>2],zc(e,4637,r)|0,t[q>>2]=4,t[q+4>>2]=0,t[r>>2]=t[q>>2],t[r+4>>2]=t[q+4>>2],_u(e,4653,r)|0,t[P>>2]=5,t[P+4>>2]=0,t[r>>2]=t[P>>2],t[r+4>>2]=t[P+4>>2],_u(e,4669,r)|0,t[T>>2]=6,t[T+4>>2]=0,t[r>>2]=t[T>>2],t[r+4>>2]=t[T+4>>2],_u(e,4686,r)|0,t[k>>2]=7,t[k+4>>2]=0,t[r>>2]=t[k>>2],t[r+4>>2]=t[k+4>>2],_u(e,4701,r)|0,t[y>>2]=8,t[y+4>>2]=0,t[r>>2]=t[y>>2],t[r+4>>2]=t[y+4>>2],_u(e,4719,r)|0,t[_>>2]=9,t[_+4>>2]=0,t[r>>2]=t[_>>2],t[r+4>>2]=t[_+4>>2],_u(e,4736,r)|0,t[d>>2]=21,t[d+4>>2]=0,t[r>>2]=t[d>>2],t[r+4>>2]=t[d+4>>2],Nd(e,4754,r)|0,t[l>>2]=2,t[l+4>>2]=0,t[r>>2]=t[l>>2],t[r+4>>2]=t[l+4>>2],ec(e,4772,r)|0,t[s>>2]=3,t[s+4>>2]=0,t[r>>2]=t[s>>2],t[r+4>>2]=t[s+4>>2],ec(e,4790,r)|0,t[o>>2]=4,t[o+4>>2]=0,t[r>>2]=t[o>>2],t[r+4>>2]=t[o+4>>2],ec(e,4808,r)|0,h=n}function qm(e,n){e=e|0,n=n|0;var r=0;r=Nx()|0,t[e>>2]=r,Bx(r,n),Cf(t[e>>2]|0)}function Id(e,n,r){return e=e|0,n=n|0,r=r|0,Ex(e,Zn(n)|0,r,0),e|0}function Pd(e,n,r){return e=e|0,n=n|0,r=r|0,ux(e,Zn(n)|0,r,0),e|0}function zm(e,n,r){return e=e|0,n=n|0,r=r|0,V9(e,Zn(n)|0,r,0),e|0}function gf(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0,l=0,d=0;return o=h,h=h+16|0,s=o+8|0,l=o,d=t[r+4>>2]|0,t[l>>2]=t[r>>2],t[l+4>>2]=d,t[s>>2]=t[l>>2],t[s+4>>2]=t[l+4>>2],I9(e,n,s),h=o,e|0}function Md(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0,l=0,d=0;return o=h,h=h+16|0,s=o+8|0,l=o,d=t[r+4>>2]|0,t[l>>2]=t[r>>2],t[l+4>>2]=d,t[s>>2]=t[l>>2],t[s+4>>2]=t[l+4>>2],vo(e,n,s),h=o,e|0}function Xr(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0,l=0,d=0;return o=h,h=h+16|0,s=o+8|0,l=o,d=t[r+4>>2]|0,t[l>>2]=t[r>>2],t[l+4>>2]=d,t[s>>2]=t[l>>2],t[s+4>>2]=t[l+4>>2],a(e,n,s),h=o,e|0}function yi(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0,l=0,d=0;return o=h,h=h+16|0,s=o+8|0,l=o,d=t[r+4>>2]|0,t[l>>2]=t[r>>2],t[l+4>>2]=d,t[s>>2]=t[l>>2],t[s+4>>2]=t[l+4>>2],n4(e,n,s),h=o,e|0}function j0(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0,l=0,d=0;return o=h,h=h+16|0,s=o+8|0,l=o,d=t[r+4>>2]|0,t[l>>2]=t[r>>2],t[l+4>>2]=d,t[s>>2]=t[l>>2],t[s+4>>2]=t[l+4>>2],b_(e,n,s),h=o,e|0}function Zu(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0,l=0,d=0;return o=h,h=h+16|0,s=o+8|0,l=o,d=t[r+4>>2]|0,t[l>>2]=t[r>>2],t[l+4>>2]=d,t[s>>2]=t[l>>2],t[s+4>>2]=t[l+4>>2],L_(e,n,s),h=o,e|0}function _f(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0,l=0,d=0;return o=h,h=h+16|0,s=o+8|0,l=o,d=t[r+4>>2]|0,t[l>>2]=t[r>>2],t[l+4>>2]=d,t[s>>2]=t[l>>2],t[s+4>>2]=t[l+4>>2],Hp(e,n,s),h=o,e|0}function Io(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0,l=0,d=0;return o=h,h=h+16|0,s=o+8|0,l=o,d=t[r+4>>2]|0,t[l>>2]=t[r>>2],t[l+4>>2]=d,t[s>>2]=t[l>>2],t[s+4>>2]=t[l+4>>2],e_(e,n,s),h=o,e|0}function _u(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0,l=0,d=0;return o=h,h=h+16|0,s=o+8|0,l=o,d=t[r+4>>2]|0,t[l>>2]=t[r>>2],t[l+4>>2]=d,t[s>>2]=t[l>>2],t[s+4>>2]=t[l+4>>2],Ip(e,n,s),h=o,e|0}function ec(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0,l=0,d=0;return o=h,h=h+16|0,s=o+8|0,l=o,d=t[r+4>>2]|0,t[l>>2]=t[r>>2],t[l+4>>2]=d,t[s>>2]=t[l>>2],t[s+4>>2]=t[l+4>>2],Ng(e,n,s),h=o,e|0}function Wm(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0,l=0,d=0;return o=h,h=h+16|0,s=o+8|0,l=o,d=t[r+4>>2]|0,t[l>>2]=t[r>>2],t[l+4>>2]=d,t[s>>2]=t[l>>2],t[s+4>>2]=t[l+4>>2],l0(e,n,s),h=o,e|0}function Fd(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0,l=0,d=0;return o=h,h=h+16|0,s=o+8|0,l=o,d=t[r+4>>2]|0,t[l>>2]=t[r>>2],t[l+4>>2]=d,t[s>>2]=t[l>>2],t[s+4>>2]=t[l+4>>2],hg(e,n,s),h=o,e|0}function yf(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0,l=0,d=0;return o=h,h=h+16|0,s=o+8|0,l=o,d=t[r+4>>2]|0,t[l>>2]=t[r>>2],t[l+4>>2]=d,t[s>>2]=t[l>>2],t[s+4>>2]=t[l+4>>2],sg(e,n,s),h=o,e|0}function tc(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0,l=0,d=0;return o=h,h=h+16|0,s=o+8|0,l=o,d=t[r+4>>2]|0,t[l>>2]=t[r>>2],t[l+4>>2]=d,t[s>>2]=t[l>>2],t[s+4>>2]=t[l+4>>2],Kv(e,n,s),h=o,e|0}function Hm(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0,l=0,d=0;return o=h,h=h+16|0,s=o+8|0,l=o,d=t[r+4>>2]|0,t[l>>2]=t[r>>2],t[l+4>>2]=d,t[s>>2]=t[l>>2],t[s+4>>2]=t[l+4>>2],y1(e,n,s),h=o,e|0}function Ld(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0,l=0,d=0;return o=h,h=h+16|0,s=o+8|0,l=o,d=t[r+4>>2]|0,t[l>>2]=t[r>>2],t[l+4>>2]=d,t[s>>2]=t[l>>2],t[s+4>>2]=t[l+4>>2],wv(e,n,s),h=o,e|0}function Rd(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0,l=0,d=0;return o=h,h=h+16|0,s=o+8|0,l=o,d=t[r+4>>2]|0,t[l>>2]=t[r>>2],t[l+4>>2]=d,t[s>>2]=t[l>>2],t[s+4>>2]=t[l+4>>2],fv(e,n,s),h=o,e|0}function zc(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0,l=0,d=0;return o=h,h=h+16|0,s=o+8|0,l=o,d=t[r+4>>2]|0,t[l>>2]=t[r>>2],t[l+4>>2]=d,t[s>>2]=t[l>>2],t[s+4>>2]=t[l+4>>2],Gd(e,n,s),h=o,e|0}function Nd(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0,l=0,d=0;return o=h,h=h+16|0,s=o+8|0,l=o,d=t[r+4>>2]|0,t[l>>2]=t[r>>2],t[l+4>>2]=d,t[s>>2]=t[l>>2],t[s+4>>2]=t[l+4>>2],Wc(e,n,s),h=o,e|0}function Wc(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0,l=0,d=0,_=0;o=h,h=h+16|0,s=o+8|0,l=o,_=t[r>>2]|0,d=t[r+4>>2]|0,r=Zn(n)|0,t[l>>2]=_,t[l+4>>2]=d,t[s>>2]=t[l>>2],t[s+4>>2]=t[l+4>>2],Hc(e,r,s,1),h=o}function Zn(e){return e=e|0,e|0}function Hc(e,n,r,o){e=e|0,n=n|0,r=r|0,o=o|0;var s=0,l=0,d=0,_=0,y=0,k=0,T=0;s=h,h=h+32|0,l=s+16|0,T=s+8|0,_=s,k=t[r>>2]|0,y=t[r+4>>2]|0,d=t[e>>2]|0,e=Za()|0,t[T>>2]=k,t[T+4>>2]=y,t[l>>2]=t[T>>2],t[l+4>>2]=t[T+4>>2],r=Bd(l)|0,t[_>>2]=k,t[_+4>>2]=y,t[l>>2]=t[_>>2],t[l+4>>2]=t[_+4>>2],ur(d,n,e,r,bc(l,o)|0,o),h=s}function Za(){var e=0,n=0;if(c[7616]|0||(yu(9136),Bt(24,9136,Q|0)|0,n=7616,t[n>>2]=1,t[n+4>>2]=0),!(Dn(9136)|0)){e=9136,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));yu(9136)}return 9136}function Bd(e){return e=e|0,0}function bc(e,n){e=e|0,n=n|0;var r=0,o=0,s=0,l=0,d=0,_=0,y=0,k=0,T=0,P=0;return T=h,h=h+32|0,s=T+24|0,d=T+16|0,_=T,y=T+8|0,l=t[e>>2]|0,o=t[e+4>>2]|0,t[_>>2]=l,t[_+4>>2]=o,P=Za()|0,k=P+24|0,e=Lt(n,4)|0,t[y>>2]=e,n=P+28|0,r=t[n>>2]|0,r>>>0<(t[P+32>>2]|0)>>>0?(t[d>>2]=l,t[d+4>>2]=o,t[s>>2]=t[d>>2],t[s+4>>2]=t[d+4>>2],n1(r,s,e),e=(t[n>>2]|0)+12|0,t[n>>2]=e):(jd(k,_,y),e=t[n>>2]|0),h=T,((e-(t[k>>2]|0)|0)/12|0)+-1|0}function ur(e,n,r,o,s,l){e=e|0,n=n|0,r=r|0,o=o|0,s=s|0,l=l|0;var d=0,_=0,y=0,k=0,T=0,P=0,q=0,we=0;d=h,h=h+32|0,q=d+24|0,P=d+20|0,y=d+16|0,T=d+12|0,k=d+8|0,_=d+4|0,we=d,t[P>>2]=n,t[y>>2]=r,t[T>>2]=o,t[k>>2]=s,t[_>>2]=l,l=e+28|0,t[we>>2]=t[l>>2],t[q>>2]=t[we>>2],e1(e+24|0,q,P,T,k,y,_)|0,t[l>>2]=t[t[l>>2]>>2],h=d}function e1(e,n,r,o,s,l,d){return e=e|0,n=n|0,r=r|0,o=o|0,s=s|0,l=l|0,d=d|0,e=bm(n)|0,n=Tt(24)|0,t1(n+4|0,t[r>>2]|0,t[o>>2]|0,t[s>>2]|0,t[l>>2]|0,t[d>>2]|0),t[n>>2]=t[e>>2],t[e>>2]=n,n|0}function bm(e){return e=e|0,t[e>>2]|0}function t1(e,n,r,o,s,l){e=e|0,n=n|0,r=r|0,o=o|0,s=s|0,l=l|0,t[e>>2]=n,t[e+4>>2]=r,t[e+8>>2]=o,t[e+12>>2]=s,t[e+16>>2]=l}function Lt(e,n){return e=e|0,n=n|0,n|e|0}function n1(e,n,r){e=e|0,n=n|0,r=r|0;var o=0;o=t[n+4>>2]|0,t[e>>2]=t[n>>2],t[e+4>>2]=o,t[e+8>>2]=r}function jd(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0,l=0,d=0,_=0,y=0,k=0,T=0,P=0,q=0;if(k=h,h=h+48|0,o=k+32|0,d=k+24|0,_=k,y=e+4|0,s=(((t[y>>2]|0)-(t[e>>2]|0)|0)/12|0)+1|0,l=Gm(e)|0,l>>>0>>0)$n(e);else{T=t[e>>2]|0,q=((t[e+8>>2]|0)-T|0)/12|0,P=q<<1,Ud(_,q>>>0>>1>>>0?P>>>0>>0?s:P:l,((t[y>>2]|0)-T|0)/12|0,e+8|0),y=_+8|0,l=t[y>>2]|0,s=t[n+4>>2]|0,r=t[r>>2]|0,t[d>>2]=t[n>>2],t[d+4>>2]=s,t[o>>2]=t[d>>2],t[o+4>>2]=t[d+4>>2],n1(l,o,r),t[y>>2]=(t[y>>2]|0)+12,Vm(e,_),Ym(_),h=k;return}}function Gm(e){return e=e|0,357913941}function Ud(e,n,r,o){e=e|0,n=n|0,r=r|0,o=o|0;var s=0;t[e+12>>2]=0,t[e+16>>2]=o;do if(n)if(n>>>0>357913941)_n();else{s=Tt(n*12|0)|0;break}else s=0;while(0);t[e>>2]=s,o=s+(r*12|0)|0,t[e+8>>2]=o,t[e+4>>2]=o,t[e+12>>2]=s+(n*12|0)}function Vm(e,n){e=e|0,n=n|0;var r=0,o=0,s=0,l=0,d=0;o=t[e>>2]|0,d=e+4|0,l=n+4|0,s=(t[d>>2]|0)-o|0,r=(t[l>>2]|0)+(((s|0)/-12|0)*12|0)|0,t[l>>2]=r,(s|0)>0?(vn(r|0,o|0,s|0)|0,o=l,r=t[l>>2]|0):o=l,l=t[e>>2]|0,t[e>>2]=r,t[o>>2]=l,l=n+8|0,s=t[d>>2]|0,t[d>>2]=t[l>>2],t[l>>2]=s,l=e+8|0,d=n+12|0,e=t[l>>2]|0,t[l>>2]=t[d>>2],t[d>>2]=e,t[n>>2]=t[o>>2]}function Ym(e){e=e|0;var n=0,r=0,o=0;n=t[e+4>>2]|0,r=e+8|0,o=t[r>>2]|0,(o|0)!=(n|0)&&(t[r>>2]=o+(~(((o+-12-n|0)>>>0)/12|0)*12|0)),e=t[e>>2]|0,e|0&&Ve(e)}function yu(e){e=e|0,Gc(e)}function r1(e){e=e|0,i1(e+24|0)}function Dn(e){return e=e|0,t[e>>2]|0}function i1(e){e=e|0;var n=0,r=0,o=0;r=t[e>>2]|0,o=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~(((n+-12-o|0)>>>0)/12|0)*12|0)),Ve(r))}function Gc(e){e=e|0;var n=0;n=An()|0,Nn(e,2,3,n,cn()|0,0),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function An(){return 9228}function cn(){return 1140}function Vc(e,n){e=e|0,n=n|0;var r=0,o=0,s=0,l=0;return r=h,h=h+16|0,o=r+8|0,s=r,l=Il(e)|0,e=t[l+4>>2]|0,t[s>>2]=t[l>>2],t[s+4>>2]=e,t[o>>2]=t[s>>2],t[o+4>>2]=t[s+4>>2],n=$m(n,o)|0,h=r,n|0}function Nn(e,n,r,o,s,l){e=e|0,n=n|0,r=r|0,o=o|0,s=s|0,l=l|0,t[e>>2]=n,t[e+4>>2]=r,t[e+8>>2]=o,t[e+12>>2]=s,t[e+16>>2]=l}function Il(e){return e=e|0,(t[(Za()|0)+24>>2]|0)+(e*12|0)|0}function $m(e,n){e=e|0,n=n|0;var r=0,o=0,s=0;return s=h,h=h+48|0,o=s,r=t[n>>2]|0,n=t[n+4>>2]|0,e=e+(n>>1)|0,n&1&&(r=t[(t[e>>2]|0)+r>>2]|0),Bl[r&31](o,e),o=o1(o)|0,h=s,o|0}function o1(e){e=e|0;var n=0,r=0,o=0,s=0;return s=h,h=h+32|0,n=s+12|0,r=s,o=U0(u1()|0)|0,o?(s1(n,o),l1(r,n),qd(e,r),e=f1(n)|0):e=zd(e)|0,h=s,e|0}function u1(){var e=0;return c[7632]|0||(nc(9184),Bt(25,9184,Q|0)|0,e=7632,t[e>>2]=1,t[e+4>>2]=0),9184}function U0(e){return e=e|0,t[e+36>>2]|0}function s1(e,n){e=e|0,n=n|0,t[e>>2]=n,t[e+4>>2]=e,t[e+8>>2]=0}function l1(e,n){e=e|0,n=n|0,t[e>>2]=t[n>>2],t[e+4>>2]=t[n+4>>2],t[e+8>>2]=0}function qd(e,n){e=e|0,n=n|0,Ii(n,e,e+8|0,e+16|0,e+24|0,e+32|0,e+40|0)|0}function f1(e){return e=e|0,t[(t[e+4>>2]|0)+8>>2]|0}function zd(e){e=e|0;var n=0,r=0,o=0,s=0,l=0,d=0,_=0,y=0;y=h,h=h+16|0,r=y+4|0,o=y,s=Qo(8)|0,l=s,d=Tt(48)|0,_=d,n=_+48|0;do t[_>>2]=t[e>>2],_=_+4|0,e=e+4|0;while((_|0)<(n|0));return n=l+4|0,t[n>>2]=d,_=Tt(8)|0,d=t[n>>2]|0,t[o>>2]=0,t[r>>2]=t[o>>2],Wd(_,d,r),t[s>>2]=_,h=y,l|0}function Wd(e,n,r){e=e|0,n=n|0,r=r|0,t[e>>2]=n,r=Tt(16)|0,t[r+4>>2]=0,t[r+8>>2]=0,t[r>>2]=1092,t[r+12>>2]=n,t[e+4>>2]=r}function Km(e){e=e|0,da(e),Ve(e)}function Xm(e){e=e|0,e=t[e+12>>2]|0,e|0&&Ve(e)}function es(e){e=e|0,Ve(e)}function Ii(e,n,r,o,s,l,d){return e=e|0,n=n|0,r=r|0,o=o|0,s=s|0,l=l|0,d=d|0,l=c1(t[e>>2]|0,n,r,o,s,l,d)|0,d=e+4|0,t[(t[d>>2]|0)+8>>2]=l,t[(t[d>>2]|0)+8>>2]|0}function c1(e,n,r,o,s,l,d){e=e|0,n=n|0,r=r|0,o=o|0,s=s|0,l=l|0,d=d|0;var _=0,y=0;return _=h,h=h+16|0,y=_,Zo(y),e=Oi(e)|0,d=Jm(e,+L[n>>3],+L[r>>3],+L[o>>3],+L[s>>3],+L[l>>3],+L[d>>3])|0,eu(y),h=_,d|0}function Jm(e,n,r,o,s,l,d){e=e|0,n=+n,r=+r,o=+o,s=+s,l=+l,d=+d;var _=0;return _=ko(a1()|0)|0,n=+Ko(n),r=+Ko(r),o=+Ko(o),s=+Ko(s),l=+Ko(l),xs(0,_|0,e|0,+n,+r,+o,+s,+l,+ +Ko(d))|0}function a1(){var e=0;return c[7624]|0||(Qm(9172),e=7624,t[e>>2]=1,t[e+4>>2]=0),9172}function Qm(e){e=e|0,Ao(e,Zm()|0,6)}function Zm(){return 1112}function nc(e){e=e|0,Ys(e)}function Hd(e){e=e|0,d1(e+24|0),bd(e+16|0)}function d1(e){e=e|0,tv(e)}function bd(e){e=e|0,ev(e)}function ev(e){e=e|0;var n=0,r=0;if(n=t[e>>2]|0,n|0)do r=n,n=t[n>>2]|0,Ve(r);while((n|0)!=0);t[e>>2]=0}function tv(e){e=e|0;var n=0,r=0;if(n=t[e>>2]|0,n|0)do r=n,n=t[n>>2]|0,Ve(r);while((n|0)!=0);t[e>>2]=0}function Ys(e){e=e|0;var n=0;t[e+16>>2]=0,t[e+20>>2]=0,n=e+24|0,t[n>>2]=0,t[e+28>>2]=n,t[e+36>>2]=0,c[e+40>>0]=0,c[e+41>>0]=0}function Gd(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0,l=0,d=0,_=0;o=h,h=h+16|0,s=o+8|0,l=o,_=t[r>>2]|0,d=t[r+4>>2]|0,r=Zn(n)|0,t[l>>2]=_,t[l+4>>2]=d,t[s>>2]=t[l>>2],t[s+4>>2]=t[l+4>>2],Vd(e,r,s,0),h=o}function Vd(e,n,r,o){e=e|0,n=n|0,r=r|0,o=o|0;var s=0,l=0,d=0,_=0,y=0,k=0,T=0;s=h,h=h+32|0,l=s+16|0,T=s+8|0,_=s,k=t[r>>2]|0,y=t[r+4>>2]|0,d=t[e>>2]|0,e=p1()|0,t[T>>2]=k,t[T+4>>2]=y,t[l>>2]=t[T>>2],t[l+4>>2]=t[T+4>>2],r=h1(l)|0,t[_>>2]=k,t[_+4>>2]=y,t[l>>2]=t[_>>2],t[l+4>>2]=t[_+4>>2],ur(d,n,e,r,Yd(l,o)|0,o),h=s}function p1(){var e=0,n=0;if(c[7640]|0||(Xo(9232),Bt(26,9232,Q|0)|0,n=7640,t[n>>2]=1,t[n+4>>2]=0),!(Dn(9232)|0)){e=9232,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));Xo(9232)}return 9232}function h1(e){return e=e|0,0}function Yd(e,n){e=e|0,n=n|0;var r=0,o=0,s=0,l=0,d=0,_=0,y=0,k=0,T=0,P=0;return T=h,h=h+32|0,s=T+24|0,d=T+16|0,_=T,y=T+8|0,l=t[e>>2]|0,o=t[e+4>>2]|0,t[_>>2]=l,t[_+4>>2]=o,P=p1()|0,k=P+24|0,e=Lt(n,4)|0,t[y>>2]=e,n=P+28|0,r=t[n>>2]|0,r>>>0<(t[P+32>>2]|0)>>>0?(t[d>>2]=l,t[d+4>>2]=o,t[s>>2]=t[d>>2],t[s+4>>2]=t[d+4>>2],wf(r,s,e),e=(t[n>>2]|0)+12|0,t[n>>2]=e):(m1(k,_,y),e=t[n>>2]|0),h=T,((e-(t[k>>2]|0)|0)/12|0)+-1|0}function wf(e,n,r){e=e|0,n=n|0,r=r|0;var o=0;o=t[n+4>>2]|0,t[e>>2]=t[n>>2],t[e+4>>2]=o,t[e+8>>2]=r}function m1(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0,l=0,d=0,_=0,y=0,k=0,T=0,P=0,q=0;if(k=h,h=h+48|0,o=k+32|0,d=k+24|0,_=k,y=e+4|0,s=(((t[y>>2]|0)-(t[e>>2]|0)|0)/12|0)+1|0,l=$d(e)|0,l>>>0>>0)$n(e);else{T=t[e>>2]|0,q=((t[e+8>>2]|0)-T|0)/12|0,P=q<<1,Kd(_,q>>>0>>1>>>0?P>>>0>>0?s:P:l,((t[y>>2]|0)-T|0)/12|0,e+8|0),y=_+8|0,l=t[y>>2]|0,s=t[n+4>>2]|0,r=t[r>>2]|0,t[d>>2]=t[n>>2],t[d+4>>2]=s,t[o>>2]=t[d>>2],t[o+4>>2]=t[d+4>>2],wf(l,o,r),t[y>>2]=(t[y>>2]|0)+12,Yc(e,_),Xd(_),h=k;return}}function $d(e){return e=e|0,357913941}function Kd(e,n,r,o){e=e|0,n=n|0,r=r|0,o=o|0;var s=0;t[e+12>>2]=0,t[e+16>>2]=o;do if(n)if(n>>>0>357913941)_n();else{s=Tt(n*12|0)|0;break}else s=0;while(0);t[e>>2]=s,o=s+(r*12|0)|0,t[e+8>>2]=o,t[e+4>>2]=o,t[e+12>>2]=s+(n*12|0)}function Yc(e,n){e=e|0,n=n|0;var r=0,o=0,s=0,l=0,d=0;o=t[e>>2]|0,d=e+4|0,l=n+4|0,s=(t[d>>2]|0)-o|0,r=(t[l>>2]|0)+(((s|0)/-12|0)*12|0)|0,t[l>>2]=r,(s|0)>0?(vn(r|0,o|0,s|0)|0,o=l,r=t[l>>2]|0):o=l,l=t[e>>2]|0,t[e>>2]=r,t[o>>2]=l,l=n+8|0,s=t[d>>2]|0,t[d>>2]=t[l>>2],t[l>>2]=s,l=e+8|0,d=n+12|0,e=t[l>>2]|0,t[l>>2]=t[d>>2],t[d>>2]=e,t[n>>2]=t[o>>2]}function Xd(e){e=e|0;var n=0,r=0,o=0;n=t[e+4>>2]|0,r=e+8|0,o=t[r>>2]|0,(o|0)!=(n|0)&&(t[r>>2]=o+(~(((o+-12-n|0)>>>0)/12|0)*12|0)),e=t[e>>2]|0,e|0&&Ve(e)}function Xo(e){e=e|0,Jd(e)}function Pl(e){e=e|0,nv(e+24|0)}function nv(e){e=e|0;var n=0,r=0,o=0;r=t[e>>2]|0,o=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~(((n+-12-o|0)>>>0)/12|0)*12|0)),Ve(r))}function Jd(e){e=e|0;var n=0;n=An()|0,Nn(e,2,1,n,rv()|0,3),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function rv(){return 1144}function iv(e,n,r,o,s){e=e|0,n=n|0,r=+r,o=+o,s=s|0;var l=0,d=0,_=0,y=0;l=h,h=h+16|0,d=l+8|0,_=l,y=ov(e)|0,e=t[y+4>>2]|0,t[_>>2]=t[y>>2],t[_+4>>2]=e,t[d>>2]=t[_>>2],t[d+4>>2]=t[_+4>>2],uv(n,d,r,o,s),h=l}function ov(e){return e=e|0,(t[(p1()|0)+24>>2]|0)+(e*12|0)|0}function uv(e,n,r,o,s){e=e|0,n=n|0,r=+r,o=+o,s=s|0;var l=0,d=0,_=0,y=0,k=0;k=h,h=h+16|0,d=k+2|0,_=k+1|0,y=k,l=t[n>>2]|0,n=t[n+4>>2]|0,e=e+(n>>1)|0,n&1&&(l=t[(t[e>>2]|0)+l>>2]|0),wu(d,r),r=+Du(d,r),wu(_,o),o=+Du(_,o),ts(y,s),y=ns(y,s)|0,iD[l&1](e,r,o,y),h=k}function wu(e,n){e=e|0,n=+n}function Du(e,n){return e=e|0,n=+n,+ +lv(n)}function ts(e,n){e=e|0,n=n|0}function ns(e,n){return e=e|0,n=n|0,sv(n)|0}function sv(e){return e=e|0,e|0}function lv(e){return e=+e,+e}function fv(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0,l=0,d=0,_=0;o=h,h=h+16|0,s=o+8|0,l=o,_=t[r>>2]|0,d=t[r+4>>2]|0,r=Zn(n)|0,t[l>>2]=_,t[l+4>>2]=d,t[s>>2]=t[l>>2],t[s+4>>2]=t[l+4>>2],Qd(e,r,s,1),h=o}function Qd(e,n,r,o){e=e|0,n=n|0,r=r|0,o=o|0;var s=0,l=0,d=0,_=0,y=0,k=0,T=0;s=h,h=h+32|0,l=s+16|0,T=s+8|0,_=s,k=t[r>>2]|0,y=t[r+4>>2]|0,d=t[e>>2]|0,e=$c()|0,t[T>>2]=k,t[T+4>>2]=y,t[l>>2]=t[T>>2],t[l+4>>2]=t[T+4>>2],r=Zd(l)|0,t[_>>2]=k,t[_+4>>2]=y,t[l>>2]=t[_>>2],t[l+4>>2]=t[_+4>>2],ur(d,n,e,r,cv(l,o)|0,o),h=s}function $c(){var e=0,n=0;if(c[7648]|0||(np(9268),Bt(27,9268,Q|0)|0,n=7648,t[n>>2]=1,t[n+4>>2]=0),!(Dn(9268)|0)){e=9268,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));np(9268)}return 9268}function Zd(e){return e=e|0,0}function cv(e,n){e=e|0,n=n|0;var r=0,o=0,s=0,l=0,d=0,_=0,y=0,k=0,T=0,P=0;return T=h,h=h+32|0,s=T+24|0,d=T+16|0,_=T,y=T+8|0,l=t[e>>2]|0,o=t[e+4>>2]|0,t[_>>2]=l,t[_+4>>2]=o,P=$c()|0,k=P+24|0,e=Lt(n,4)|0,t[y>>2]=e,n=P+28|0,r=t[n>>2]|0,r>>>0<(t[P+32>>2]|0)>>>0?(t[d>>2]=l,t[d+4>>2]=o,t[s>>2]=t[d>>2],t[s+4>>2]=t[d+4>>2],ep(r,s,e),e=(t[n>>2]|0)+12|0,t[n>>2]=e):(av(k,_,y),e=t[n>>2]|0),h=T,((e-(t[k>>2]|0)|0)/12|0)+-1|0}function ep(e,n,r){e=e|0,n=n|0,r=r|0;var o=0;o=t[n+4>>2]|0,t[e>>2]=t[n>>2],t[e+4>>2]=o,t[e+8>>2]=r}function av(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0,l=0,d=0,_=0,y=0,k=0,T=0,P=0,q=0;if(k=h,h=h+48|0,o=k+32|0,d=k+24|0,_=k,y=e+4|0,s=(((t[y>>2]|0)-(t[e>>2]|0)|0)/12|0)+1|0,l=tp(e)|0,l>>>0>>0)$n(e);else{T=t[e>>2]|0,q=((t[e+8>>2]|0)-T|0)/12|0,P=q<<1,dv(_,q>>>0>>1>>>0?P>>>0>>0?s:P:l,((t[y>>2]|0)-T|0)/12|0,e+8|0),y=_+8|0,l=t[y>>2]|0,s=t[n+4>>2]|0,r=t[r>>2]|0,t[d>>2]=t[n>>2],t[d+4>>2]=s,t[o>>2]=t[d>>2],t[o+4>>2]=t[d+4>>2],ep(l,o,r),t[y>>2]=(t[y>>2]|0)+12,pv(e,_),hv(_),h=k;return}}function tp(e){return e=e|0,357913941}function dv(e,n,r,o){e=e|0,n=n|0,r=r|0,o=o|0;var s=0;t[e+12>>2]=0,t[e+16>>2]=o;do if(n)if(n>>>0>357913941)_n();else{s=Tt(n*12|0)|0;break}else s=0;while(0);t[e>>2]=s,o=s+(r*12|0)|0,t[e+8>>2]=o,t[e+4>>2]=o,t[e+12>>2]=s+(n*12|0)}function pv(e,n){e=e|0,n=n|0;var r=0,o=0,s=0,l=0,d=0;o=t[e>>2]|0,d=e+4|0,l=n+4|0,s=(t[d>>2]|0)-o|0,r=(t[l>>2]|0)+(((s|0)/-12|0)*12|0)|0,t[l>>2]=r,(s|0)>0?(vn(r|0,o|0,s|0)|0,o=l,r=t[l>>2]|0):o=l,l=t[e>>2]|0,t[e>>2]=r,t[o>>2]=l,l=n+8|0,s=t[d>>2]|0,t[d>>2]=t[l>>2],t[l>>2]=s,l=e+8|0,d=n+12|0,e=t[l>>2]|0,t[l>>2]=t[d>>2],t[d>>2]=e,t[n>>2]=t[o>>2]}function hv(e){e=e|0;var n=0,r=0,o=0;n=t[e+4>>2]|0,r=e+8|0,o=t[r>>2]|0,(o|0)!=(n|0)&&(t[r>>2]=o+(~(((o+-12-n|0)>>>0)/12|0)*12|0)),e=t[e>>2]|0,e|0&&Ve(e)}function np(e){e=e|0,Po(e)}function mv(e){e=e|0,vv(e+24|0)}function vv(e){e=e|0;var n=0,r=0,o=0;r=t[e>>2]|0,o=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~(((n+-12-o|0)>>>0)/12|0)*12|0)),Ve(r))}function Po(e){e=e|0;var n=0;n=An()|0,Nn(e,2,4,n,gv()|0,0),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function gv(){return 1160}function _v(e,n){e=e|0,n=n|0;var r=0,o=0,s=0,l=0;return r=h,h=h+16|0,o=r+8|0,s=r,l=yv(e)|0,e=t[l+4>>2]|0,t[s>>2]=t[l>>2],t[s+4>>2]=e,t[o>>2]=t[s>>2],t[o+4>>2]=t[s+4>>2],n=rp(n,o)|0,h=r,n|0}function yv(e){return e=e|0,(t[($c()|0)+24>>2]|0)+(e*12|0)|0}function rp(e,n){e=e|0,n=n|0;var r=0;return r=t[n>>2]|0,n=t[n+4>>2]|0,e=e+(n>>1)|0,n&1&&(r=t[(t[e>>2]|0)+r>>2]|0),ip(dc[r&31](e)|0)|0}function ip(e){return e=e|0,e&1|0}function wv(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0,l=0,d=0,_=0;o=h,h=h+16|0,s=o+8|0,l=o,_=t[r>>2]|0,d=t[r+4>>2]|0,r=Zn(n)|0,t[l>>2]=_,t[l+4>>2]=d,t[s>>2]=t[l>>2],t[s+4>>2]=t[l+4>>2],Dv(e,r,s,0),h=o}function Dv(e,n,r,o){e=e|0,n=n|0,r=r|0,o=o|0;var s=0,l=0,d=0,_=0,y=0,k=0,T=0;s=h,h=h+32|0,l=s+16|0,T=s+8|0,_=s,k=t[r>>2]|0,y=t[r+4>>2]|0,d=t[e>>2]|0,e=v1()|0,t[T>>2]=k,t[T+4>>2]=y,t[l>>2]=t[T>>2],t[l+4>>2]=t[T+4>>2],r=g1(l)|0,t[_>>2]=k,t[_+4>>2]=y,t[l>>2]=t[_>>2],t[l+4>>2]=t[_+4>>2],ur(d,n,e,r,Ev(l,o)|0,o),h=s}function v1(){var e=0,n=0;if(c[7656]|0||(up(9304),Bt(28,9304,Q|0)|0,n=7656,t[n>>2]=1,t[n+4>>2]=0),!(Dn(9304)|0)){e=9304,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));up(9304)}return 9304}function g1(e){return e=e|0,0}function Ev(e,n){e=e|0,n=n|0;var r=0,o=0,s=0,l=0,d=0,_=0,y=0,k=0,T=0,P=0;return T=h,h=h+32|0,s=T+24|0,d=T+16|0,_=T,y=T+8|0,l=t[e>>2]|0,o=t[e+4>>2]|0,t[_>>2]=l,t[_+4>>2]=o,P=v1()|0,k=P+24|0,e=Lt(n,4)|0,t[y>>2]=e,n=P+28|0,r=t[n>>2]|0,r>>>0<(t[P+32>>2]|0)>>>0?(t[d>>2]=l,t[d+4>>2]=o,t[s>>2]=t[d>>2],t[s+4>>2]=t[d+4>>2],op(r,s,e),e=(t[n>>2]|0)+12|0,t[n>>2]=e):(Sv(k,_,y),e=t[n>>2]|0),h=T,((e-(t[k>>2]|0)|0)/12|0)+-1|0}function op(e,n,r){e=e|0,n=n|0,r=r|0;var o=0;o=t[n+4>>2]|0,t[e>>2]=t[n>>2],t[e+4>>2]=o,t[e+8>>2]=r}function Sv(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0,l=0,d=0,_=0,y=0,k=0,T=0,P=0,q=0;if(k=h,h=h+48|0,o=k+32|0,d=k+24|0,_=k,y=e+4|0,s=(((t[y>>2]|0)-(t[e>>2]|0)|0)/12|0)+1|0,l=Cv(e)|0,l>>>0>>0)$n(e);else{T=t[e>>2]|0,q=((t[e+8>>2]|0)-T|0)/12|0,P=q<<1,Tv(_,q>>>0>>1>>>0?P>>>0>>0?s:P:l,((t[y>>2]|0)-T|0)/12|0,e+8|0),y=_+8|0,l=t[y>>2]|0,s=t[n+4>>2]|0,r=t[r>>2]|0,t[d>>2]=t[n>>2],t[d+4>>2]=s,t[o>>2]=t[d>>2],t[o+4>>2]=t[d+4>>2],op(l,o,r),t[y>>2]=(t[y>>2]|0)+12,xv(e,_),kv(_),h=k;return}}function Cv(e){return e=e|0,357913941}function Tv(e,n,r,o){e=e|0,n=n|0,r=r|0,o=o|0;var s=0;t[e+12>>2]=0,t[e+16>>2]=o;do if(n)if(n>>>0>357913941)_n();else{s=Tt(n*12|0)|0;break}else s=0;while(0);t[e>>2]=s,o=s+(r*12|0)|0,t[e+8>>2]=o,t[e+4>>2]=o,t[e+12>>2]=s+(n*12|0)}function xv(e,n){e=e|0,n=n|0;var r=0,o=0,s=0,l=0,d=0;o=t[e>>2]|0,d=e+4|0,l=n+4|0,s=(t[d>>2]|0)-o|0,r=(t[l>>2]|0)+(((s|0)/-12|0)*12|0)|0,t[l>>2]=r,(s|0)>0?(vn(r|0,o|0,s|0)|0,o=l,r=t[l>>2]|0):o=l,l=t[e>>2]|0,t[e>>2]=r,t[o>>2]=l,l=n+8|0,s=t[d>>2]|0,t[d>>2]=t[l>>2],t[l>>2]=s,l=e+8|0,d=n+12|0,e=t[l>>2]|0,t[l>>2]=t[d>>2],t[d>>2]=e,t[n>>2]=t[o>>2]}function kv(e){e=e|0;var n=0,r=0,o=0;n=t[e+4>>2]|0,r=e+8|0,o=t[r>>2]|0,(o|0)!=(n|0)&&(t[r>>2]=o+(~(((o+-12-n|0)>>>0)/12|0)*12|0)),e=t[e>>2]|0,e|0&&Ve(e)}function up(e){e=e|0,Iv(e)}function Av(e){e=e|0,Ov(e+24|0)}function Ov(e){e=e|0;var n=0,r=0,o=0;r=t[e>>2]|0,o=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~(((n+-12-o|0)>>>0)/12|0)*12|0)),Ve(r))}function Iv(e){e=e|0;var n=0;n=An()|0,Nn(e,2,5,n,Pv()|0,1),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function Pv(){return 1164}function Mv(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0,l=0,d=0;o=h,h=h+16|0,s=o+8|0,l=o,d=Fv(e)|0,e=t[d+4>>2]|0,t[l>>2]=t[d>>2],t[l+4>>2]=e,t[s>>2]=t[l>>2],t[s+4>>2]=t[l+4>>2],Lv(n,s,r),h=o}function Fv(e){return e=e|0,(t[(v1()|0)+24>>2]|0)+(e*12|0)|0}function Lv(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0,l=0;l=h,h=h+16|0,s=l,o=t[n>>2]|0,n=t[n+4>>2]|0,e=e+(n>>1)|0,n&1&&(o=t[(t[e>>2]|0)+o>>2]|0),$s(s,r),r=Ks(s,r)|0,Bl[o&31](e,r),Xs(s),h=l}function $s(e,n){e=e|0,n=n|0,Rv(e,n)}function Ks(e,n){return e=e|0,n=n|0,e|0}function Xs(e){e=e|0,Ju(e)}function Rv(e,n){e=e|0,n=n|0,_1(e,n)}function _1(e,n){e=e|0,n=n|0,t[e>>2]=n}function y1(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0,l=0,d=0,_=0;o=h,h=h+16|0,s=o+8|0,l=o,_=t[r>>2]|0,d=t[r+4>>2]|0,r=Zn(n)|0,t[l>>2]=_,t[l+4>>2]=d,t[s>>2]=t[l>>2],t[s+4>>2]=t[l+4>>2],sp(e,r,s,0),h=o}function sp(e,n,r,o){e=e|0,n=n|0,r=r|0,o=o|0;var s=0,l=0,d=0,_=0,y=0,k=0,T=0;s=h,h=h+32|0,l=s+16|0,T=s+8|0,_=s,k=t[r>>2]|0,y=t[r+4>>2]|0,d=t[e>>2]|0,e=w1()|0,t[T>>2]=k,t[T+4>>2]=y,t[l>>2]=t[T>>2],t[l+4>>2]=t[T+4>>2],r=Nv(l)|0,t[_>>2]=k,t[_+4>>2]=y,t[l>>2]=t[_>>2],t[l+4>>2]=t[_+4>>2],ur(d,n,e,r,Bv(l,o)|0,o),h=s}function w1(){var e=0,n=0;if(c[7664]|0||(cp(9340),Bt(29,9340,Q|0)|0,n=7664,t[n>>2]=1,t[n+4>>2]=0),!(Dn(9340)|0)){e=9340,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));cp(9340)}return 9340}function Nv(e){return e=e|0,0}function Bv(e,n){e=e|0,n=n|0;var r=0,o=0,s=0,l=0,d=0,_=0,y=0,k=0,T=0,P=0;return T=h,h=h+32|0,s=T+24|0,d=T+16|0,_=T,y=T+8|0,l=t[e>>2]|0,o=t[e+4>>2]|0,t[_>>2]=l,t[_+4>>2]=o,P=w1()|0,k=P+24|0,e=Lt(n,4)|0,t[y>>2]=e,n=P+28|0,r=t[n>>2]|0,r>>>0<(t[P+32>>2]|0)>>>0?(t[d>>2]=l,t[d+4>>2]=o,t[s>>2]=t[d>>2],t[s+4>>2]=t[d+4>>2],lp(r,s,e),e=(t[n>>2]|0)+12|0,t[n>>2]=e):(jv(k,_,y),e=t[n>>2]|0),h=T,((e-(t[k>>2]|0)|0)/12|0)+-1|0}function lp(e,n,r){e=e|0,n=n|0,r=r|0;var o=0;o=t[n+4>>2]|0,t[e>>2]=t[n>>2],t[e+4>>2]=o,t[e+8>>2]=r}function jv(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0,l=0,d=0,_=0,y=0,k=0,T=0,P=0,q=0;if(k=h,h=h+48|0,o=k+32|0,d=k+24|0,_=k,y=e+4|0,s=(((t[y>>2]|0)-(t[e>>2]|0)|0)/12|0)+1|0,l=Uv(e)|0,l>>>0>>0)$n(e);else{T=t[e>>2]|0,q=((t[e+8>>2]|0)-T|0)/12|0,P=q<<1,qv(_,q>>>0>>1>>>0?P>>>0>>0?s:P:l,((t[y>>2]|0)-T|0)/12|0,e+8|0),y=_+8|0,l=t[y>>2]|0,s=t[n+4>>2]|0,r=t[r>>2]|0,t[d>>2]=t[n>>2],t[d+4>>2]=s,t[o>>2]=t[d>>2],t[o+4>>2]=t[d+4>>2],lp(l,o,r),t[y>>2]=(t[y>>2]|0)+12,zv(e,_),fp(_),h=k;return}}function Uv(e){return e=e|0,357913941}function qv(e,n,r,o){e=e|0,n=n|0,r=r|0,o=o|0;var s=0;t[e+12>>2]=0,t[e+16>>2]=o;do if(n)if(n>>>0>357913941)_n();else{s=Tt(n*12|0)|0;break}else s=0;while(0);t[e>>2]=s,o=s+(r*12|0)|0,t[e+8>>2]=o,t[e+4>>2]=o,t[e+12>>2]=s+(n*12|0)}function zv(e,n){e=e|0,n=n|0;var r=0,o=0,s=0,l=0,d=0;o=t[e>>2]|0,d=e+4|0,l=n+4|0,s=(t[d>>2]|0)-o|0,r=(t[l>>2]|0)+(((s|0)/-12|0)*12|0)|0,t[l>>2]=r,(s|0)>0?(vn(r|0,o|0,s|0)|0,o=l,r=t[l>>2]|0):o=l,l=t[e>>2]|0,t[e>>2]=r,t[o>>2]=l,l=n+8|0,s=t[d>>2]|0,t[d>>2]=t[l>>2],t[l>>2]=s,l=e+8|0,d=n+12|0,e=t[l>>2]|0,t[l>>2]=t[d>>2],t[d>>2]=e,t[n>>2]=t[o>>2]}function fp(e){e=e|0;var n=0,r=0,o=0;n=t[e+4>>2]|0,r=e+8|0,o=t[r>>2]|0,(o|0)!=(n|0)&&(t[r>>2]=o+(~(((o+-12-n|0)>>>0)/12|0)*12|0)),e=t[e>>2]|0,e|0&&Ve(e)}function cp(e){e=e|0,Hv(e)}function Kc(e){e=e|0,Wv(e+24|0)}function Wv(e){e=e|0;var n=0,r=0,o=0;r=t[e>>2]|0,o=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~(((n+-12-o|0)>>>0)/12|0)*12|0)),Ve(r))}function Hv(e){e=e|0;var n=0;n=An()|0,Nn(e,2,4,n,bv()|0,1),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function bv(){return 1180}function Gv(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0,l=0,d=0;return o=h,h=h+16|0,s=o+8|0,l=o,d=Vv(e)|0,e=t[d+4>>2]|0,t[l>>2]=t[d>>2],t[l+4>>2]=e,t[s>>2]=t[l>>2],t[s+4>>2]=t[l+4>>2],r=Yv(n,s,r)|0,h=o,r|0}function Vv(e){return e=e|0,(t[(w1()|0)+24>>2]|0)+(e*12|0)|0}function Yv(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0,l=0;return l=h,h=h+16|0,s=l,o=t[n>>2]|0,n=t[n+4>>2]|0,e=e+(n>>1)|0,n&1&&(o=t[(t[e>>2]|0)+o>>2]|0),Ml(s,r),s=Fl(s,r)|0,s=Xc(J4[o&15](e,s)|0)|0,h=l,s|0}function Ml(e,n){e=e|0,n=n|0}function Fl(e,n){return e=e|0,n=n|0,$v(n)|0}function Xc(e){return e=e|0,e|0}function $v(e){return e=e|0,e|0}function Kv(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0,l=0,d=0,_=0;o=h,h=h+16|0,s=o+8|0,l=o,_=t[r>>2]|0,d=t[r+4>>2]|0,r=Zn(n)|0,t[l>>2]=_,t[l+4>>2]=d,t[s>>2]=t[l>>2],t[s+4>>2]=t[l+4>>2],Xv(e,r,s,0),h=o}function Xv(e,n,r,o){e=e|0,n=n|0,r=r|0,o=o|0;var s=0,l=0,d=0,_=0,y=0,k=0,T=0;s=h,h=h+32|0,l=s+16|0,T=s+8|0,_=s,k=t[r>>2]|0,y=t[r+4>>2]|0,d=t[e>>2]|0,e=D1()|0,t[T>>2]=k,t[T+4>>2]=y,t[l>>2]=t[T>>2],t[l+4>>2]=t[T+4>>2],r=Jv(l)|0,t[_>>2]=k,t[_+4>>2]=y,t[l>>2]=t[_>>2],t[l+4>>2]=t[_+4>>2],ur(d,n,e,r,Qv(l,o)|0,o),h=s}function D1(){var e=0,n=0;if(c[7672]|0||(hp(9376),Bt(30,9376,Q|0)|0,n=7672,t[n>>2]=1,t[n+4>>2]=0),!(Dn(9376)|0)){e=9376,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));hp(9376)}return 9376}function Jv(e){return e=e|0,0}function Qv(e,n){e=e|0,n=n|0;var r=0,o=0,s=0,l=0,d=0,_=0,y=0,k=0,T=0,P=0;return T=h,h=h+32|0,s=T+24|0,d=T+16|0,_=T,y=T+8|0,l=t[e>>2]|0,o=t[e+4>>2]|0,t[_>>2]=l,t[_+4>>2]=o,P=D1()|0,k=P+24|0,e=Lt(n,4)|0,t[y>>2]=e,n=P+28|0,r=t[n>>2]|0,r>>>0<(t[P+32>>2]|0)>>>0?(t[d>>2]=l,t[d+4>>2]=o,t[s>>2]=t[d>>2],t[s+4>>2]=t[d+4>>2],ap(r,s,e),e=(t[n>>2]|0)+12|0,t[n>>2]=e):(dp(k,_,y),e=t[n>>2]|0),h=T,((e-(t[k>>2]|0)|0)/12|0)+-1|0}function ap(e,n,r){e=e|0,n=n|0,r=r|0;var o=0;o=t[n+4>>2]|0,t[e>>2]=t[n>>2],t[e+4>>2]=o,t[e+8>>2]=r}function dp(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0,l=0,d=0,_=0,y=0,k=0,T=0,P=0,q=0;if(k=h,h=h+48|0,o=k+32|0,d=k+24|0,_=k,y=e+4|0,s=(((t[y>>2]|0)-(t[e>>2]|0)|0)/12|0)+1|0,l=pp(e)|0,l>>>0>>0)$n(e);else{T=t[e>>2]|0,q=((t[e+8>>2]|0)-T|0)/12|0,P=q<<1,Zv(_,q>>>0>>1>>>0?P>>>0>>0?s:P:l,((t[y>>2]|0)-T|0)/12|0,e+8|0),y=_+8|0,l=t[y>>2]|0,s=t[n+4>>2]|0,r=t[r>>2]|0,t[d>>2]=t[n>>2],t[d+4>>2]=s,t[o>>2]=t[d>>2],t[o+4>>2]=t[d+4>>2],ap(l,o,r),t[y>>2]=(t[y>>2]|0)+12,eg(e,_),tg(_),h=k;return}}function pp(e){return e=e|0,357913941}function Zv(e,n,r,o){e=e|0,n=n|0,r=r|0,o=o|0;var s=0;t[e+12>>2]=0,t[e+16>>2]=o;do if(n)if(n>>>0>357913941)_n();else{s=Tt(n*12|0)|0;break}else s=0;while(0);t[e>>2]=s,o=s+(r*12|0)|0,t[e+8>>2]=o,t[e+4>>2]=o,t[e+12>>2]=s+(n*12|0)}function eg(e,n){e=e|0,n=n|0;var r=0,o=0,s=0,l=0,d=0;o=t[e>>2]|0,d=e+4|0,l=n+4|0,s=(t[d>>2]|0)-o|0,r=(t[l>>2]|0)+(((s|0)/-12|0)*12|0)|0,t[l>>2]=r,(s|0)>0?(vn(r|0,o|0,s|0)|0,o=l,r=t[l>>2]|0):o=l,l=t[e>>2]|0,t[e>>2]=r,t[o>>2]=l,l=n+8|0,s=t[d>>2]|0,t[d>>2]=t[l>>2],t[l>>2]=s,l=e+8|0,d=n+12|0,e=t[l>>2]|0,t[l>>2]=t[d>>2],t[d>>2]=e,t[n>>2]=t[o>>2]}function tg(e){e=e|0;var n=0,r=0,o=0;n=t[e+4>>2]|0,r=e+8|0,o=t[r>>2]|0,(o|0)!=(n|0)&&(t[r>>2]=o+(~(((o+-12-n|0)>>>0)/12|0)*12|0)),e=t[e>>2]|0,e|0&&Ve(e)}function hp(e){e=e|0,rg(e)}function Jc(e){e=e|0,ng(e+24|0)}function ng(e){e=e|0;var n=0,r=0,o=0;r=t[e>>2]|0,o=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~(((n+-12-o|0)>>>0)/12|0)*12|0)),Ve(r))}function rg(e){e=e|0;var n=0;n=An()|0,Nn(e,2,5,n,mp()|0,0),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function mp(){return 1196}function ig(e,n){e=e|0,n=n|0;var r=0,o=0,s=0,l=0;return r=h,h=h+16|0,o=r+8|0,s=r,l=og(e)|0,e=t[l+4>>2]|0,t[s>>2]=t[l>>2],t[s+4>>2]=e,t[o>>2]=t[s>>2],t[o+4>>2]=t[s+4>>2],n=ug(n,o)|0,h=r,n|0}function og(e){return e=e|0,(t[(D1()|0)+24>>2]|0)+(e*12|0)|0}function ug(e,n){e=e|0,n=n|0;var r=0;return r=t[n>>2]|0,n=t[n+4>>2]|0,e=e+(n>>1)|0,n&1&&(r=t[(t[e>>2]|0)+r>>2]|0),Xc(dc[r&31](e)|0)|0}function sg(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0,l=0,d=0,_=0;o=h,h=h+16|0,s=o+8|0,l=o,_=t[r>>2]|0,d=t[r+4>>2]|0,r=Zn(n)|0,t[l>>2]=_,t[l+4>>2]=d,t[s>>2]=t[l>>2],t[s+4>>2]=t[l+4>>2],lg(e,r,s,1),h=o}function lg(e,n,r,o){e=e|0,n=n|0,r=r|0,o=o|0;var s=0,l=0,d=0,_=0,y=0,k=0,T=0;s=h,h=h+32|0,l=s+16|0,T=s+8|0,_=s,k=t[r>>2]|0,y=t[r+4>>2]|0,d=t[e>>2]|0,e=E1()|0,t[T>>2]=k,t[T+4>>2]=y,t[l>>2]=t[T>>2],t[l+4>>2]=t[T+4>>2],r=fg(l)|0,t[_>>2]=k,t[_+4>>2]=y,t[l>>2]=t[_>>2],t[l+4>>2]=t[_+4>>2],ur(d,n,e,r,cg(l,o)|0,o),h=s}function E1(){var e=0,n=0;if(c[7680]|0||(C1(9412),Bt(31,9412,Q|0)|0,n=7680,t[n>>2]=1,t[n+4>>2]=0),!(Dn(9412)|0)){e=9412,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));C1(9412)}return 9412}function fg(e){return e=e|0,0}function cg(e,n){e=e|0,n=n|0;var r=0,o=0,s=0,l=0,d=0,_=0,y=0,k=0,T=0,P=0;return T=h,h=h+32|0,s=T+24|0,d=T+16|0,_=T,y=T+8|0,l=t[e>>2]|0,o=t[e+4>>2]|0,t[_>>2]=l,t[_+4>>2]=o,P=E1()|0,k=P+24|0,e=Lt(n,4)|0,t[y>>2]=e,n=P+28|0,r=t[n>>2]|0,r>>>0<(t[P+32>>2]|0)>>>0?(t[d>>2]=l,t[d+4>>2]=o,t[s>>2]=t[d>>2],t[s+4>>2]=t[d+4>>2],rc(r,s,e),e=(t[n>>2]|0)+12|0,t[n>>2]=e):(ag(k,_,y),e=t[n>>2]|0),h=T,((e-(t[k>>2]|0)|0)/12|0)+-1|0}function rc(e,n,r){e=e|0,n=n|0,r=r|0;var o=0;o=t[n+4>>2]|0,t[e>>2]=t[n>>2],t[e+4>>2]=o,t[e+8>>2]=r}function ag(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0,l=0,d=0,_=0,y=0,k=0,T=0,P=0,q=0;if(k=h,h=h+48|0,o=k+32|0,d=k+24|0,_=k,y=e+4|0,s=(((t[y>>2]|0)-(t[e>>2]|0)|0)/12|0)+1|0,l=vp(e)|0,l>>>0>>0)$n(e);else{T=t[e>>2]|0,q=((t[e+8>>2]|0)-T|0)/12|0,P=q<<1,gp(_,q>>>0>>1>>>0?P>>>0>>0?s:P:l,((t[y>>2]|0)-T|0)/12|0,e+8|0),y=_+8|0,l=t[y>>2]|0,s=t[n+4>>2]|0,r=t[r>>2]|0,t[d>>2]=t[n>>2],t[d+4>>2]=s,t[o>>2]=t[d>>2],t[o+4>>2]=t[d+4>>2],rc(l,o,r),t[y>>2]=(t[y>>2]|0)+12,S1(e,_),_p(_),h=k;return}}function vp(e){return e=e|0,357913941}function gp(e,n,r,o){e=e|0,n=n|0,r=r|0,o=o|0;var s=0;t[e+12>>2]=0,t[e+16>>2]=o;do if(n)if(n>>>0>357913941)_n();else{s=Tt(n*12|0)|0;break}else s=0;while(0);t[e>>2]=s,o=s+(r*12|0)|0,t[e+8>>2]=o,t[e+4>>2]=o,t[e+12>>2]=s+(n*12|0)}function S1(e,n){e=e|0,n=n|0;var r=0,o=0,s=0,l=0,d=0;o=t[e>>2]|0,d=e+4|0,l=n+4|0,s=(t[d>>2]|0)-o|0,r=(t[l>>2]|0)+(((s|0)/-12|0)*12|0)|0,t[l>>2]=r,(s|0)>0?(vn(r|0,o|0,s|0)|0,o=l,r=t[l>>2]|0):o=l,l=t[e>>2]|0,t[e>>2]=r,t[o>>2]=l,l=n+8|0,s=t[d>>2]|0,t[d>>2]=t[l>>2],t[l>>2]=s,l=e+8|0,d=n+12|0,e=t[l>>2]|0,t[l>>2]=t[d>>2],t[d>>2]=e,t[n>>2]=t[o>>2]}function _p(e){e=e|0;var n=0,r=0,o=0;n=t[e+4>>2]|0,r=e+8|0,o=t[r>>2]|0,(o|0)!=(n|0)&&(t[r>>2]=o+(~(((o+-12-n|0)>>>0)/12|0)*12|0)),e=t[e>>2]|0,e|0&&Ve(e)}function C1(e){e=e|0,dg(e)}function yp(e){e=e|0,wp(e+24|0)}function wp(e){e=e|0;var n=0,r=0,o=0;r=t[e>>2]|0,o=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~(((n+-12-o|0)>>>0)/12|0)*12|0)),Ve(r))}function dg(e){e=e|0;var n=0;n=An()|0,Nn(e,2,6,n,Dp()|0,0),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function Dp(){return 1200}function pg(e,n){e=e|0,n=n|0;var r=0,o=0,s=0,l=0;return r=h,h=h+16|0,o=r+8|0,s=r,l=Qc(e)|0,e=t[l+4>>2]|0,t[s>>2]=t[l>>2],t[s+4>>2]=e,t[o>>2]=t[s>>2],t[o+4>>2]=t[s+4>>2],n=Zc(n,o)|0,h=r,n|0}function Qc(e){return e=e|0,(t[(E1()|0)+24>>2]|0)+(e*12|0)|0}function Zc(e,n){e=e|0,n=n|0;var r=0;return r=t[n>>2]|0,n=t[n+4>>2]|0,e=e+(n>>1)|0,n&1&&(r=t[(t[e>>2]|0)+r>>2]|0),ea(dc[r&31](e)|0)|0}function ea(e){return e=e|0,e|0}function hg(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0,l=0,d=0,_=0;o=h,h=h+16|0,s=o+8|0,l=o,_=t[r>>2]|0,d=t[r+4>>2]|0,r=Zn(n)|0,t[l>>2]=_,t[l+4>>2]=d,t[s>>2]=t[l>>2],t[s+4>>2]=t[l+4>>2],T1(e,r,s,0),h=o}function T1(e,n,r,o){e=e|0,n=n|0,r=r|0,o=o|0;var s=0,l=0,d=0,_=0,y=0,k=0,T=0;s=h,h=h+32|0,l=s+16|0,T=s+8|0,_=s,k=t[r>>2]|0,y=t[r+4>>2]|0,d=t[e>>2]|0,e=ta()|0,t[T>>2]=k,t[T+4>>2]=y,t[l>>2]=t[T>>2],t[l+4>>2]=t[T+4>>2],r=mg(l)|0,t[_>>2]=k,t[_+4>>2]=y,t[l>>2]=t[_>>2],t[l+4>>2]=t[_+4>>2],ur(d,n,e,r,vg(l,o)|0,o),h=s}function ta(){var e=0,n=0;if(c[7688]|0||(Sp(9448),Bt(32,9448,Q|0)|0,n=7688,t[n>>2]=1,t[n+4>>2]=0),!(Dn(9448)|0)){e=9448,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));Sp(9448)}return 9448}function mg(e){return e=e|0,0}function vg(e,n){e=e|0,n=n|0;var r=0,o=0,s=0,l=0,d=0,_=0,y=0,k=0,T=0,P=0;return T=h,h=h+32|0,s=T+24|0,d=T+16|0,_=T,y=T+8|0,l=t[e>>2]|0,o=t[e+4>>2]|0,t[_>>2]=l,t[_+4>>2]=o,P=ta()|0,k=P+24|0,e=Lt(n,4)|0,t[y>>2]=e,n=P+28|0,r=t[n>>2]|0,r>>>0<(t[P+32>>2]|0)>>>0?(t[d>>2]=l,t[d+4>>2]=o,t[s>>2]=t[d>>2],t[s+4>>2]=t[d+4>>2],Ep(r,s,e),e=(t[n>>2]|0)+12|0,t[n>>2]=e):(gg(k,_,y),e=t[n>>2]|0),h=T,((e-(t[k>>2]|0)|0)/12|0)+-1|0}function Ep(e,n,r){e=e|0,n=n|0,r=r|0;var o=0;o=t[n+4>>2]|0,t[e>>2]=t[n>>2],t[e+4>>2]=o,t[e+8>>2]=r}function gg(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0,l=0,d=0,_=0,y=0,k=0,T=0,P=0,q=0;if(k=h,h=h+48|0,o=k+32|0,d=k+24|0,_=k,y=e+4|0,s=(((t[y>>2]|0)-(t[e>>2]|0)|0)/12|0)+1|0,l=_g(e)|0,l>>>0>>0)$n(e);else{T=t[e>>2]|0,q=((t[e+8>>2]|0)-T|0)/12|0,P=q<<1,yg(_,q>>>0>>1>>>0?P>>>0>>0?s:P:l,((t[y>>2]|0)-T|0)/12|0,e+8|0),y=_+8|0,l=t[y>>2]|0,s=t[n+4>>2]|0,r=t[r>>2]|0,t[d>>2]=t[n>>2],t[d+4>>2]=s,t[o>>2]=t[d>>2],t[o+4>>2]=t[d+4>>2],Ep(l,o,r),t[y>>2]=(t[y>>2]|0)+12,wg(e,_),Dg(_),h=k;return}}function _g(e){return e=e|0,357913941}function yg(e,n,r,o){e=e|0,n=n|0,r=r|0,o=o|0;var s=0;t[e+12>>2]=0,t[e+16>>2]=o;do if(n)if(n>>>0>357913941)_n();else{s=Tt(n*12|0)|0;break}else s=0;while(0);t[e>>2]=s,o=s+(r*12|0)|0,t[e+8>>2]=o,t[e+4>>2]=o,t[e+12>>2]=s+(n*12|0)}function wg(e,n){e=e|0,n=n|0;var r=0,o=0,s=0,l=0,d=0;o=t[e>>2]|0,d=e+4|0,l=n+4|0,s=(t[d>>2]|0)-o|0,r=(t[l>>2]|0)+(((s|0)/-12|0)*12|0)|0,t[l>>2]=r,(s|0)>0?(vn(r|0,o|0,s|0)|0,o=l,r=t[l>>2]|0):o=l,l=t[e>>2]|0,t[e>>2]=r,t[o>>2]=l,l=n+8|0,s=t[d>>2]|0,t[d>>2]=t[l>>2],t[l>>2]=s,l=e+8|0,d=n+12|0,e=t[l>>2]|0,t[l>>2]=t[d>>2],t[d>>2]=e,t[n>>2]=t[o>>2]}function Dg(e){e=e|0;var n=0,r=0,o=0;n=t[e+4>>2]|0,r=e+8|0,o=t[r>>2]|0,(o|0)!=(n|0)&&(t[r>>2]=o+(~(((o+-12-n|0)>>>0)/12|0)*12|0)),e=t[e>>2]|0,e|0&&Ve(e)}function Sp(e){e=e|0,Cg(e)}function Eg(e){e=e|0,Sg(e+24|0)}function Sg(e){e=e|0;var n=0,r=0,o=0;r=t[e>>2]|0,o=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~(((n+-12-o|0)>>>0)/12|0)*12|0)),Ve(r))}function Cg(e){e=e|0;var n=0;n=An()|0,Nn(e,2,6,n,Mo()|0,1),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function Mo(){return 1204}function Tg(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0,l=0,d=0;o=h,h=h+16|0,s=o+8|0,l=o,d=xg(e)|0,e=t[d+4>>2]|0,t[l>>2]=t[d>>2],t[l+4>>2]=e,t[s>>2]=t[l>>2],t[s+4>>2]=t[l+4>>2],Ll(n,s,r),h=o}function xg(e){return e=e|0,(t[(ta()|0)+24>>2]|0)+(e*12|0)|0}function Ll(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0,l=0;l=h,h=h+16|0,s=l,o=t[n>>2]|0,n=t[n+4>>2]|0,e=e+(n>>1)|0,n&1&&(o=t[(t[e>>2]|0)+o>>2]|0),On(s,r),s=x1(s,r)|0,Bl[o&31](e,s),h=l}function On(e,n){e=e|0,n=n|0}function x1(e,n){return e=e|0,n=n|0,Vi(n)|0}function Vi(e){return e=e|0,e|0}function l0(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0,l=0,d=0,_=0;o=h,h=h+16|0,s=o+8|0,l=o,_=t[r>>2]|0,d=t[r+4>>2]|0,r=Zn(n)|0,t[l>>2]=_,t[l+4>>2]=d,t[s>>2]=t[l>>2],t[s+4>>2]=t[l+4>>2],kg(e,r,s,0),h=o}function kg(e,n,r,o){e=e|0,n=n|0,r=r|0,o=o|0;var s=0,l=0,d=0,_=0,y=0,k=0,T=0;s=h,h=h+32|0,l=s+16|0,T=s+8|0,_=s,k=t[r>>2]|0,y=t[r+4>>2]|0,d=t[e>>2]|0,e=Eu()|0,t[T>>2]=k,t[T+4>>2]=y,t[l>>2]=t[T>>2],t[l+4>>2]=t[T+4>>2],r=Ag(l)|0,t[_>>2]=k,t[_+4>>2]=y,t[l>>2]=t[_>>2],t[l+4>>2]=t[_+4>>2],ur(d,n,e,r,Og(l,o)|0,o),h=s}function Eu(){var e=0,n=0;if(c[7696]|0||(A1(9484),Bt(33,9484,Q|0)|0,n=7696,t[n>>2]=1,t[n+4>>2]=0),!(Dn(9484)|0)){e=9484,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));A1(9484)}return 9484}function Ag(e){return e=e|0,0}function Og(e,n){e=e|0,n=n|0;var r=0,o=0,s=0,l=0,d=0,_=0,y=0,k=0,T=0,P=0;return T=h,h=h+32|0,s=T+24|0,d=T+16|0,_=T,y=T+8|0,l=t[e>>2]|0,o=t[e+4>>2]|0,t[_>>2]=l,t[_+4>>2]=o,P=Eu()|0,k=P+24|0,e=Lt(n,4)|0,t[y>>2]=e,n=P+28|0,r=t[n>>2]|0,r>>>0<(t[P+32>>2]|0)>>>0?(t[d>>2]=l,t[d+4>>2]=o,t[s>>2]=t[d>>2],t[s+4>>2]=t[d+4>>2],Cp(r,s,e),e=(t[n>>2]|0)+12|0,t[n>>2]=e):(Ig(k,_,y),e=t[n>>2]|0),h=T,((e-(t[k>>2]|0)|0)/12|0)+-1|0}function Cp(e,n,r){e=e|0,n=n|0,r=r|0;var o=0;o=t[n+4>>2]|0,t[e>>2]=t[n>>2],t[e+4>>2]=o,t[e+8>>2]=r}function Ig(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0,l=0,d=0,_=0,y=0,k=0,T=0,P=0,q=0;if(k=h,h=h+48|0,o=k+32|0,d=k+24|0,_=k,y=e+4|0,s=(((t[y>>2]|0)-(t[e>>2]|0)|0)/12|0)+1|0,l=Pg(e)|0,l>>>0>>0)$n(e);else{T=t[e>>2]|0,q=((t[e+8>>2]|0)-T|0)/12|0,P=q<<1,k1(_,q>>>0>>1>>>0?P>>>0>>0?s:P:l,((t[y>>2]|0)-T|0)/12|0,e+8|0),y=_+8|0,l=t[y>>2]|0,s=t[n+4>>2]|0,r=t[r>>2]|0,t[d>>2]=t[n>>2],t[d+4>>2]=s,t[o>>2]=t[d>>2],t[o+4>>2]=t[d+4>>2],Cp(l,o,r),t[y>>2]=(t[y>>2]|0)+12,Mg(e,_),rs(_),h=k;return}}function Pg(e){return e=e|0,357913941}function k1(e,n,r,o){e=e|0,n=n|0,r=r|0,o=o|0;var s=0;t[e+12>>2]=0,t[e+16>>2]=o;do if(n)if(n>>>0>357913941)_n();else{s=Tt(n*12|0)|0;break}else s=0;while(0);t[e>>2]=s,o=s+(r*12|0)|0,t[e+8>>2]=o,t[e+4>>2]=o,t[e+12>>2]=s+(n*12|0)}function Mg(e,n){e=e|0,n=n|0;var r=0,o=0,s=0,l=0,d=0;o=t[e>>2]|0,d=e+4|0,l=n+4|0,s=(t[d>>2]|0)-o|0,r=(t[l>>2]|0)+(((s|0)/-12|0)*12|0)|0,t[l>>2]=r,(s|0)>0?(vn(r|0,o|0,s|0)|0,o=l,r=t[l>>2]|0):o=l,l=t[e>>2]|0,t[e>>2]=r,t[o>>2]=l,l=n+8|0,s=t[d>>2]|0,t[d>>2]=t[l>>2],t[l>>2]=s,l=e+8|0,d=n+12|0,e=t[l>>2]|0,t[l>>2]=t[d>>2],t[d>>2]=e,t[n>>2]=t[o>>2]}function rs(e){e=e|0;var n=0,r=0,o=0;n=t[e+4>>2]|0,r=e+8|0,o=t[r>>2]|0,(o|0)!=(n|0)&&(t[r>>2]=o+(~(((o+-12-n|0)>>>0)/12|0)*12|0)),e=t[e>>2]|0,e|0&&Ve(e)}function A1(e){e=e|0,n0(e)}function na(e){e=e|0,Jr(e+24|0)}function Jr(e){e=e|0;var n=0,r=0,o=0;r=t[e>>2]|0,o=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~(((n+-12-o|0)>>>0)/12|0)*12|0)),Ve(r))}function n0(e){e=e|0;var n=0;n=An()|0,Nn(e,2,1,n,Tp()|0,2),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function Tp(){return 1212}function Fg(e,n,r,o){e=e|0,n=n|0,r=r|0,o=o|0;var s=0,l=0,d=0,_=0;s=h,h=h+16|0,l=s+8|0,d=s,_=Lg(e)|0,e=t[_+4>>2]|0,t[d>>2]=t[_>>2],t[d+4>>2]=e,t[l>>2]=t[d>>2],t[l+4>>2]=t[d+4>>2],Rg(n,l,r,o),h=s}function Lg(e){return e=e|0,(t[(Eu()|0)+24>>2]|0)+(e*12|0)|0}function Rg(e,n,r,o){e=e|0,n=n|0,r=r|0,o=o|0;var s=0,l=0,d=0,_=0;_=h,h=h+16|0,l=_+1|0,d=_,s=t[n>>2]|0,n=t[n+4>>2]|0,e=e+(n>>1)|0,n&1&&(s=t[(t[e>>2]|0)+s>>2]|0),On(l,r),l=x1(l,r)|0,Ml(d,o),d=Fl(d,o)|0,X1[s&15](e,l,d),h=_}function Ng(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0,l=0,d=0,_=0;o=h,h=h+16|0,s=o+8|0,l=o,_=t[r>>2]|0,d=t[r+4>>2]|0,r=Zn(n)|0,t[l>>2]=_,t[l+4>>2]=d,t[s>>2]=t[l>>2],t[s+4>>2]=t[l+4>>2],Bg(e,r,s,1),h=o}function Bg(e,n,r,o){e=e|0,n=n|0,r=r|0,o=o|0;var s=0,l=0,d=0,_=0,y=0,k=0,T=0;s=h,h=h+32|0,l=s+16|0,T=s+8|0,_=s,k=t[r>>2]|0,y=t[r+4>>2]|0,d=t[e>>2]|0,e=O1()|0,t[T>>2]=k,t[T+4>>2]=y,t[l>>2]=t[T>>2],t[l+4>>2]=t[T+4>>2],r=xp(l)|0,t[_>>2]=k,t[_+4>>2]=y,t[l>>2]=t[_>>2],t[l+4>>2]=t[_+4>>2],ur(d,n,e,r,ic(l,o)|0,o),h=s}function O1(){var e=0,n=0;if(c[7704]|0||(Ap(9520),Bt(34,9520,Q|0)|0,n=7704,t[n>>2]=1,t[n+4>>2]=0),!(Dn(9520)|0)){e=9520,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));Ap(9520)}return 9520}function xp(e){return e=e|0,0}function ic(e,n){e=e|0,n=n|0;var r=0,o=0,s=0,l=0,d=0,_=0,y=0,k=0,T=0,P=0;return T=h,h=h+32|0,s=T+24|0,d=T+16|0,_=T,y=T+8|0,l=t[e>>2]|0,o=t[e+4>>2]|0,t[_>>2]=l,t[_+4>>2]=o,P=O1()|0,k=P+24|0,e=Lt(n,4)|0,t[y>>2]=e,n=P+28|0,r=t[n>>2]|0,r>>>0<(t[P+32>>2]|0)>>>0?(t[d>>2]=l,t[d+4>>2]=o,t[s>>2]=t[d>>2],t[s+4>>2]=t[d+4>>2],ra(r,s,e),e=(t[n>>2]|0)+12|0,t[n>>2]=e):(jg(k,_,y),e=t[n>>2]|0),h=T,((e-(t[k>>2]|0)|0)/12|0)+-1|0}function ra(e,n,r){e=e|0,n=n|0,r=r|0;var o=0;o=t[n+4>>2]|0,t[e>>2]=t[n>>2],t[e+4>>2]=o,t[e+8>>2]=r}function jg(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0,l=0,d=0,_=0,y=0,k=0,T=0,P=0,q=0;if(k=h,h=h+48|0,o=k+32|0,d=k+24|0,_=k,y=e+4|0,s=(((t[y>>2]|0)-(t[e>>2]|0)|0)/12|0)+1|0,l=kp(e)|0,l>>>0>>0)$n(e);else{T=t[e>>2]|0,q=((t[e+8>>2]|0)-T|0)/12|0,P=q<<1,ia(_,q>>>0>>1>>>0?P>>>0>>0?s:P:l,((t[y>>2]|0)-T|0)/12|0,e+8|0),y=_+8|0,l=t[y>>2]|0,s=t[n+4>>2]|0,r=t[r>>2]|0,t[d>>2]=t[n>>2],t[d+4>>2]=s,t[o>>2]=t[d>>2],t[o+4>>2]=t[d+4>>2],ra(l,o,r),t[y>>2]=(t[y>>2]|0)+12,mo(e,_),Df(_),h=k;return}}function kp(e){return e=e|0,357913941}function ia(e,n,r,o){e=e|0,n=n|0,r=r|0,o=o|0;var s=0;t[e+12>>2]=0,t[e+16>>2]=o;do if(n)if(n>>>0>357913941)_n();else{s=Tt(n*12|0)|0;break}else s=0;while(0);t[e>>2]=s,o=s+(r*12|0)|0,t[e+8>>2]=o,t[e+4>>2]=o,t[e+12>>2]=s+(n*12|0)}function mo(e,n){e=e|0,n=n|0;var r=0,o=0,s=0,l=0,d=0;o=t[e>>2]|0,d=e+4|0,l=n+4|0,s=(t[d>>2]|0)-o|0,r=(t[l>>2]|0)+(((s|0)/-12|0)*12|0)|0,t[l>>2]=r,(s|0)>0?(vn(r|0,o|0,s|0)|0,o=l,r=t[l>>2]|0):o=l,l=t[e>>2]|0,t[e>>2]=r,t[o>>2]=l,l=n+8|0,s=t[d>>2]|0,t[d>>2]=t[l>>2],t[l>>2]=s,l=e+8|0,d=n+12|0,e=t[l>>2]|0,t[l>>2]=t[d>>2],t[d>>2]=e,t[n>>2]=t[o>>2]}function Df(e){e=e|0;var n=0,r=0,o=0;n=t[e+4>>2]|0,r=e+8|0,o=t[r>>2]|0,(o|0)!=(n|0)&&(t[r>>2]=o+(~(((o+-12-n|0)>>>0)/12|0)*12|0)),e=t[e>>2]|0,e|0&&Ve(e)}function Ap(e){e=e|0,zg(e)}function Ug(e){e=e|0,qg(e+24|0)}function qg(e){e=e|0;var n=0,r=0,o=0;r=t[e>>2]|0,o=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~(((n+-12-o|0)>>>0)/12|0)*12|0)),Ve(r))}function zg(e){e=e|0;var n=0;n=An()|0,Nn(e,2,1,n,Wg()|0,1),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function Wg(){return 1224}function Op(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0,l=0,d=0,_=0;return s=h,h=h+16|0,l=s+8|0,d=s,_=is(e)|0,e=t[_+4>>2]|0,t[d>>2]=t[_>>2],t[d+4>>2]=e,t[l>>2]=t[d>>2],t[l+4>>2]=t[d+4>>2],o=+jn(n,l,r),h=s,+o}function is(e){return e=e|0,(t[(O1()|0)+24>>2]|0)+(e*12|0)|0}function jn(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0,l=0,d=0;return l=h,h=h+16|0,s=l,o=t[n>>2]|0,n=t[n+4>>2]|0,e=e+(n>>1)|0,n&1&&(o=t[(t[e>>2]|0)+o>>2]|0),ts(s,r),s=ns(s,r)|0,d=+Ol(+uD[o&7](e,s)),h=l,+d}function Ip(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0,l=0,d=0,_=0;o=h,h=h+16|0,s=o+8|0,l=o,_=t[r>>2]|0,d=t[r+4>>2]|0,r=Zn(n)|0,t[l>>2]=_,t[l+4>>2]=d,t[s>>2]=t[l>>2],t[s+4>>2]=t[l+4>>2],Fo(e,r,s,1),h=o}function Fo(e,n,r,o){e=e|0,n=n|0,r=r|0,o=o|0;var s=0,l=0,d=0,_=0,y=0,k=0,T=0;s=h,h=h+32|0,l=s+16|0,T=s+8|0,_=s,k=t[r>>2]|0,y=t[r+4>>2]|0,d=t[e>>2]|0,e=oa()|0,t[T>>2]=k,t[T+4>>2]=y,t[l>>2]=t[T>>2],t[l+4>>2]=t[T+4>>2],r=Hg(l)|0,t[_>>2]=k,t[_+4>>2]=y,t[l>>2]=t[_>>2],t[l+4>>2]=t[_+4>>2],ur(d,n,e,r,yr(l,o)|0,o),h=s}function oa(){var e=0,n=0;if(c[7712]|0||(Fp(9556),Bt(35,9556,Q|0)|0,n=7712,t[n>>2]=1,t[n+4>>2]=0),!(Dn(9556)|0)){e=9556,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));Fp(9556)}return 9556}function Hg(e){return e=e|0,0}function yr(e,n){e=e|0,n=n|0;var r=0,o=0,s=0,l=0,d=0,_=0,y=0,k=0,T=0,P=0;return T=h,h=h+32|0,s=T+24|0,d=T+16|0,_=T,y=T+8|0,l=t[e>>2]|0,o=t[e+4>>2]|0,t[_>>2]=l,t[_+4>>2]=o,P=oa()|0,k=P+24|0,e=Lt(n,4)|0,t[y>>2]=e,n=P+28|0,r=t[n>>2]|0,r>>>0<(t[P+32>>2]|0)>>>0?(t[d>>2]=l,t[d+4>>2]=o,t[s>>2]=t[d>>2],t[s+4>>2]=t[d+4>>2],Pp(r,s,e),e=(t[n>>2]|0)+12|0,t[n>>2]=e):(Mp(k,_,y),e=t[n>>2]|0),h=T,((e-(t[k>>2]|0)|0)/12|0)+-1|0}function Pp(e,n,r){e=e|0,n=n|0,r=r|0;var o=0;o=t[n+4>>2]|0,t[e>>2]=t[n>>2],t[e+4>>2]=o,t[e+8>>2]=r}function Mp(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0,l=0,d=0,_=0,y=0,k=0,T=0,P=0,q=0;if(k=h,h=h+48|0,o=k+32|0,d=k+24|0,_=k,y=e+4|0,s=(((t[y>>2]|0)-(t[e>>2]|0)|0)/12|0)+1|0,l=ua(e)|0,l>>>0>>0)$n(e);else{T=t[e>>2]|0,q=((t[e+8>>2]|0)-T|0)/12|0,P=q<<1,bg(_,q>>>0>>1>>>0?P>>>0>>0?s:P:l,((t[y>>2]|0)-T|0)/12|0,e+8|0),y=_+8|0,l=t[y>>2]|0,s=t[n+4>>2]|0,r=t[r>>2]|0,t[d>>2]=t[n>>2],t[d+4>>2]=s,t[o>>2]=t[d>>2],t[o+4>>2]=t[d+4>>2],Pp(l,o,r),t[y>>2]=(t[y>>2]|0)+12,Gg(e,_),Vg(_),h=k;return}}function ua(e){return e=e|0,357913941}function bg(e,n,r,o){e=e|0,n=n|0,r=r|0,o=o|0;var s=0;t[e+12>>2]=0,t[e+16>>2]=o;do if(n)if(n>>>0>357913941)_n();else{s=Tt(n*12|0)|0;break}else s=0;while(0);t[e>>2]=s,o=s+(r*12|0)|0,t[e+8>>2]=o,t[e+4>>2]=o,t[e+12>>2]=s+(n*12|0)}function Gg(e,n){e=e|0,n=n|0;var r=0,o=0,s=0,l=0,d=0;o=t[e>>2]|0,d=e+4|0,l=n+4|0,s=(t[d>>2]|0)-o|0,r=(t[l>>2]|0)+(((s|0)/-12|0)*12|0)|0,t[l>>2]=r,(s|0)>0?(vn(r|0,o|0,s|0)|0,o=l,r=t[l>>2]|0):o=l,l=t[e>>2]|0,t[e>>2]=r,t[o>>2]=l,l=n+8|0,s=t[d>>2]|0,t[d>>2]=t[l>>2],t[l>>2]=s,l=e+8|0,d=n+12|0,e=t[l>>2]|0,t[l>>2]=t[d>>2],t[d>>2]=e,t[n>>2]=t[o>>2]}function Vg(e){e=e|0;var n=0,r=0,o=0;n=t[e+4>>2]|0,r=e+8|0,o=t[r>>2]|0,(o|0)!=(n|0)&&(t[r>>2]=o+(~(((o+-12-n|0)>>>0)/12|0)*12|0)),e=t[e>>2]|0,e|0&&Ve(e)}function Fp(e){e=e|0,Kg(e)}function Yg(e){e=e|0,$g(e+24|0)}function $g(e){e=e|0;var n=0,r=0,o=0;r=t[e>>2]|0,o=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~(((n+-12-o|0)>>>0)/12|0)*12|0)),Ve(r))}function Kg(e){e=e|0;var n=0;n=An()|0,Nn(e,2,5,n,Xg()|0,0),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function Xg(){return 1232}function Jg(e,n){e=e|0,n=n|0;var r=0,o=0,s=0,l=0,d=0;return o=h,h=h+16|0,s=o+8|0,l=o,d=Qg(e)|0,e=t[d+4>>2]|0,t[l>>2]=t[d>>2],t[l+4>>2]=e,t[s>>2]=t[l>>2],t[s+4>>2]=t[l+4>>2],r=+Zg(n,s),h=o,+r}function Qg(e){return e=e|0,(t[(oa()|0)+24>>2]|0)+(e*12|0)|0}function Zg(e,n){e=e|0,n=n|0;var r=0;return r=t[n>>2]|0,n=t[n+4>>2]|0,e=e+(n>>1)|0,n&1&&(r=t[(t[e>>2]|0)+r>>2]|0),+ +Ol(+oD[r&15](e))}function e_(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0,l=0,d=0,_=0;o=h,h=h+16|0,s=o+8|0,l=o,_=t[r>>2]|0,d=t[r+4>>2]|0,r=Zn(n)|0,t[l>>2]=_,t[l+4>>2]=d,t[s>>2]=t[l>>2],t[s+4>>2]=t[l+4>>2],t_(e,r,s,1),h=o}function t_(e,n,r,o){e=e|0,n=n|0,r=r|0,o=o|0;var s=0,l=0,d=0,_=0,y=0,k=0,T=0;s=h,h=h+32|0,l=s+16|0,T=s+8|0,_=s,k=t[r>>2]|0,y=t[r+4>>2]|0,d=t[e>>2]|0,e=oc()|0,t[T>>2]=k,t[T+4>>2]=y,t[l>>2]=t[T>>2],t[l+4>>2]=t[T+4>>2],r=n_(l)|0,t[_>>2]=k,t[_+4>>2]=y,t[l>>2]=t[_>>2],t[l+4>>2]=t[_+4>>2],ur(d,n,e,r,I1(l,o)|0,o),h=s}function oc(){var e=0,n=0;if(c[7720]|0||(Rp(9592),Bt(36,9592,Q|0)|0,n=7720,t[n>>2]=1,t[n+4>>2]=0),!(Dn(9592)|0)){e=9592,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));Rp(9592)}return 9592}function n_(e){return e=e|0,0}function I1(e,n){e=e|0,n=n|0;var r=0,o=0,s=0,l=0,d=0,_=0,y=0,k=0,T=0,P=0;return T=h,h=h+32|0,s=T+24|0,d=T+16|0,_=T,y=T+8|0,l=t[e>>2]|0,o=t[e+4>>2]|0,t[_>>2]=l,t[_+4>>2]=o,P=oc()|0,k=P+24|0,e=Lt(n,4)|0,t[y>>2]=e,n=P+28|0,r=t[n>>2]|0,r>>>0<(t[P+32>>2]|0)>>>0?(t[d>>2]=l,t[d+4>>2]=o,t[s>>2]=t[d>>2],t[s+4>>2]=t[d+4>>2],Lp(r,s,e),e=(t[n>>2]|0)+12|0,t[n>>2]=e):(r_(k,_,y),e=t[n>>2]|0),h=T,((e-(t[k>>2]|0)|0)/12|0)+-1|0}function Lp(e,n,r){e=e|0,n=n|0,r=r|0;var o=0;o=t[n+4>>2]|0,t[e>>2]=t[n>>2],t[e+4>>2]=o,t[e+8>>2]=r}function r_(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0,l=0,d=0,_=0,y=0,k=0,T=0,P=0,q=0;if(k=h,h=h+48|0,o=k+32|0,d=k+24|0,_=k,y=e+4|0,s=(((t[y>>2]|0)-(t[e>>2]|0)|0)/12|0)+1|0,l=i_(e)|0,l>>>0>>0)$n(e);else{T=t[e>>2]|0,q=((t[e+8>>2]|0)-T|0)/12|0,P=q<<1,q0(_,q>>>0>>1>>>0?P>>>0>>0?s:P:l,((t[y>>2]|0)-T|0)/12|0,e+8|0),y=_+8|0,l=t[y>>2]|0,s=t[n+4>>2]|0,r=t[r>>2]|0,t[d>>2]=t[n>>2],t[d+4>>2]=s,t[o>>2]=t[d>>2],t[o+4>>2]=t[d+4>>2],Lp(l,o,r),t[y>>2]=(t[y>>2]|0)+12,Yi(e,_),o_(_),h=k;return}}function i_(e){return e=e|0,357913941}function q0(e,n,r,o){e=e|0,n=n|0,r=r|0,o=o|0;var s=0;t[e+12>>2]=0,t[e+16>>2]=o;do if(n)if(n>>>0>357913941)_n();else{s=Tt(n*12|0)|0;break}else s=0;while(0);t[e>>2]=s,o=s+(r*12|0)|0,t[e+8>>2]=o,t[e+4>>2]=o,t[e+12>>2]=s+(n*12|0)}function Yi(e,n){e=e|0,n=n|0;var r=0,o=0,s=0,l=0,d=0;o=t[e>>2]|0,d=e+4|0,l=n+4|0,s=(t[d>>2]|0)-o|0,r=(t[l>>2]|0)+(((s|0)/-12|0)*12|0)|0,t[l>>2]=r,(s|0)>0?(vn(r|0,o|0,s|0)|0,o=l,r=t[l>>2]|0):o=l,l=t[e>>2]|0,t[e>>2]=r,t[o>>2]=l,l=n+8|0,s=t[d>>2]|0,t[d>>2]=t[l>>2],t[l>>2]=s,l=e+8|0,d=n+12|0,e=t[l>>2]|0,t[l>>2]=t[d>>2],t[d>>2]=e,t[n>>2]=t[o>>2]}function o_(e){e=e|0;var n=0,r=0,o=0;n=t[e+4>>2]|0,r=e+8|0,o=t[r>>2]|0,(o|0)!=(n|0)&&(t[r>>2]=o+(~(((o+-12-n|0)>>>0)/12|0)*12|0)),e=t[e>>2]|0,e|0&&Ve(e)}function Rp(e){e=e|0,s_(e)}function u_(e){e=e|0,Np(e+24|0)}function Np(e){e=e|0;var n=0,r=0,o=0;r=t[e>>2]|0,o=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~(((n+-12-o|0)>>>0)/12|0)*12|0)),Ve(r))}function s_(e){e=e|0;var n=0;n=An()|0,Nn(e,2,7,n,l_()|0,0),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function l_(){return 1276}function f_(e,n){e=e|0,n=n|0;var r=0,o=0,s=0,l=0;return r=h,h=h+16|0,o=r+8|0,s=r,l=Bp(e)|0,e=t[l+4>>2]|0,t[s>>2]=t[l>>2],t[s+4>>2]=e,t[o>>2]=t[s>>2],t[o+4>>2]=t[s+4>>2],n=c_(n,o)|0,h=r,n|0}function Bp(e){return e=e|0,(t[(oc()|0)+24>>2]|0)+(e*12|0)|0}function c_(e,n){e=e|0,n=n|0;var r=0,o=0,s=0;return s=h,h=h+16|0,o=s,r=t[n>>2]|0,n=t[n+4>>2]|0,e=e+(n>>1)|0,n&1&&(r=t[(t[e>>2]|0)+r>>2]|0),Bl[r&31](o,e),o=jp(o)|0,h=s,o|0}function jp(e){e=e|0;var n=0,r=0,o=0,s=0;return s=h,h=h+32|0,n=s+12|0,r=s,o=U0(Up()|0)|0,o?(s1(n,o),l1(r,n),qp(e,r),e=f1(n)|0):e=zp(e)|0,h=s,e|0}function Up(){var e=0;return c[7736]|0||(Wp(9640),Bt(25,9640,Q|0)|0,e=7736,t[e>>2]=1,t[e+4>>2]=0),9640}function qp(e,n){e=e|0,n=n|0,Ef(n,e,e+8|0)|0}function zp(e){e=e|0;var n=0,r=0,o=0,s=0,l=0,d=0,_=0;return r=h,h=h+16|0,s=r+4|0,d=r,o=Qo(8)|0,n=o,_=Tt(16)|0,t[_>>2]=t[e>>2],t[_+4>>2]=t[e+4>>2],t[_+8>>2]=t[e+8>>2],t[_+12>>2]=t[e+12>>2],l=n+4|0,t[l>>2]=_,e=Tt(8)|0,l=t[l>>2]|0,t[d>>2]=0,t[s>>2]=t[d>>2],P1(e,l,s),t[o>>2]=e,h=r,n|0}function P1(e,n,r){e=e|0,n=n|0,r=r|0,t[e>>2]=n,r=Tt(16)|0,t[r+4>>2]=0,t[r+8>>2]=0,t[r>>2]=1244,t[r+12>>2]=n,t[e+4>>2]=r}function a_(e){e=e|0,da(e),Ve(e)}function d_(e){e=e|0,e=t[e+12>>2]|0,e|0&&Ve(e)}function p_(e){e=e|0,Ve(e)}function Ef(e,n,r){return e=e|0,n=n|0,r=r|0,n=h_(t[e>>2]|0,n,r)|0,r=e+4|0,t[(t[r>>2]|0)+8>>2]=n,t[(t[r>>2]|0)+8>>2]|0}function h_(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0;return o=h,h=h+16|0,s=o,Zo(s),e=Oi(e)|0,r=m_(e,t[n>>2]|0,+L[r>>3])|0,eu(s),h=o,r|0}function m_(e,n,r){e=e|0,n=n|0,r=+r;var o=0;return o=ko(v_()|0)|0,n=jc(n)|0,dl(0,o|0,e|0,n|0,+ +Ko(r))|0}function v_(){var e=0;return c[7728]|0||(g_(9628),e=7728,t[e>>2]=1,t[e+4>>2]=0),9628}function g_(e){e=e|0,Ao(e,__()|0,2)}function __(){return 1264}function Wp(e){e=e|0,Ys(e)}function Hp(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0,l=0,d=0,_=0;o=h,h=h+16|0,s=o+8|0,l=o,_=t[r>>2]|0,d=t[r+4>>2]|0,r=Zn(n)|0,t[l>>2]=_,t[l+4>>2]=d,t[s>>2]=t[l>>2],t[s+4>>2]=t[l+4>>2],y_(e,r,s,1),h=o}function y_(e,n,r,o){e=e|0,n=n|0,r=r|0,o=o|0;var s=0,l=0,d=0,_=0,y=0,k=0,T=0;s=h,h=h+32|0,l=s+16|0,T=s+8|0,_=s,k=t[r>>2]|0,y=t[r+4>>2]|0,d=t[e>>2]|0,e=M1()|0,t[T>>2]=k,t[T+4>>2]=y,t[l>>2]=t[T>>2],t[l+4>>2]=t[T+4>>2],r=w_(l)|0,t[_>>2]=k,t[_+4>>2]=y,t[l>>2]=t[_>>2],t[l+4>>2]=t[_+4>>2],ur(d,n,e,r,D_(l,o)|0,o),h=s}function M1(){var e=0,n=0;if(c[7744]|0||(Gp(9684),Bt(37,9684,Q|0)|0,n=7744,t[n>>2]=1,t[n+4>>2]=0),!(Dn(9684)|0)){e=9684,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));Gp(9684)}return 9684}function w_(e){return e=e|0,0}function D_(e,n){e=e|0,n=n|0;var r=0,o=0,s=0,l=0,d=0,_=0,y=0,k=0,T=0,P=0;return T=h,h=h+32|0,s=T+24|0,d=T+16|0,_=T,y=T+8|0,l=t[e>>2]|0,o=t[e+4>>2]|0,t[_>>2]=l,t[_+4>>2]=o,P=M1()|0,k=P+24|0,e=Lt(n,4)|0,t[y>>2]=e,n=P+28|0,r=t[n>>2]|0,r>>>0<(t[P+32>>2]|0)>>>0?(t[d>>2]=l,t[d+4>>2]=o,t[s>>2]=t[d>>2],t[s+4>>2]=t[d+4>>2],bp(r,s,e),e=(t[n>>2]|0)+12|0,t[n>>2]=e):(E_(k,_,y),e=t[n>>2]|0),h=T,((e-(t[k>>2]|0)|0)/12|0)+-1|0}function bp(e,n,r){e=e|0,n=n|0,r=r|0;var o=0;o=t[n+4>>2]|0,t[e>>2]=t[n>>2],t[e+4>>2]=o,t[e+8>>2]=r}function E_(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0,l=0,d=0,_=0,y=0,k=0,T=0,P=0,q=0;if(k=h,h=h+48|0,o=k+32|0,d=k+24|0,_=k,y=e+4|0,s=(((t[y>>2]|0)-(t[e>>2]|0)|0)/12|0)+1|0,l=S_(e)|0,l>>>0>>0)$n(e);else{T=t[e>>2]|0,q=((t[e+8>>2]|0)-T|0)/12|0,P=q<<1,C_(_,q>>>0>>1>>>0?P>>>0>>0?s:P:l,((t[y>>2]|0)-T|0)/12|0,e+8|0),y=_+8|0,l=t[y>>2]|0,s=t[n+4>>2]|0,r=t[r>>2]|0,t[d>>2]=t[n>>2],t[d+4>>2]=s,t[o>>2]=t[d>>2],t[o+4>>2]=t[d+4>>2],bp(l,o,r),t[y>>2]=(t[y>>2]|0)+12,T_(e,_),x_(_),h=k;return}}function S_(e){return e=e|0,357913941}function C_(e,n,r,o){e=e|0,n=n|0,r=r|0,o=o|0;var s=0;t[e+12>>2]=0,t[e+16>>2]=o;do if(n)if(n>>>0>357913941)_n();else{s=Tt(n*12|0)|0;break}else s=0;while(0);t[e>>2]=s,o=s+(r*12|0)|0,t[e+8>>2]=o,t[e+4>>2]=o,t[e+12>>2]=s+(n*12|0)}function T_(e,n){e=e|0,n=n|0;var r=0,o=0,s=0,l=0,d=0;o=t[e>>2]|0,d=e+4|0,l=n+4|0,s=(t[d>>2]|0)-o|0,r=(t[l>>2]|0)+(((s|0)/-12|0)*12|0)|0,t[l>>2]=r,(s|0)>0?(vn(r|0,o|0,s|0)|0,o=l,r=t[l>>2]|0):o=l,l=t[e>>2]|0,t[e>>2]=r,t[o>>2]=l,l=n+8|0,s=t[d>>2]|0,t[d>>2]=t[l>>2],t[l>>2]=s,l=e+8|0,d=n+12|0,e=t[l>>2]|0,t[l>>2]=t[d>>2],t[d>>2]=e,t[n>>2]=t[o>>2]}function x_(e){e=e|0;var n=0,r=0,o=0;n=t[e+4>>2]|0,r=e+8|0,o=t[r>>2]|0,(o|0)!=(n|0)&&(t[r>>2]=o+(~(((o+-12-n|0)>>>0)/12|0)*12|0)),e=t[e>>2]|0,e|0&&Ve(e)}function Gp(e){e=e|0,O_(e)}function k_(e){e=e|0,A_(e+24|0)}function A_(e){e=e|0;var n=0,r=0,o=0;r=t[e>>2]|0,o=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~(((n+-12-o|0)>>>0)/12|0)*12|0)),Ve(r))}function O_(e){e=e|0;var n=0;n=An()|0,Nn(e,2,5,n,I_()|0,1),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function I_(){return 1280}function P_(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0,l=0,d=0;return o=h,h=h+16|0,s=o+8|0,l=o,d=M_(e)|0,e=t[d+4>>2]|0,t[l>>2]=t[d>>2],t[l+4>>2]=e,t[s>>2]=t[l>>2],t[s+4>>2]=t[l+4>>2],r=F_(n,s,r)|0,h=o,r|0}function M_(e){return e=e|0,(t[(M1()|0)+24>>2]|0)+(e*12|0)|0}function F_(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0,l=0,d=0;return d=h,h=h+32|0,s=d,l=d+16|0,o=t[n>>2]|0,n=t[n+4>>2]|0,e=e+(n>>1)|0,n&1&&(o=t[(t[e>>2]|0)+o>>2]|0),ts(l,r),l=ns(l,r)|0,X1[o&15](s,e,l),l=jp(s)|0,h=d,l|0}function L_(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0,l=0,d=0,_=0;o=h,h=h+16|0,s=o+8|0,l=o,_=t[r>>2]|0,d=t[r+4>>2]|0,r=Zn(n)|0,t[l>>2]=_,t[l+4>>2]=d,t[s>>2]=t[l>>2],t[s+4>>2]=t[l+4>>2],R_(e,r,s,1),h=o}function R_(e,n,r,o){e=e|0,n=n|0,r=r|0,o=o|0;var s=0,l=0,d=0,_=0,y=0,k=0,T=0;s=h,h=h+32|0,l=s+16|0,T=s+8|0,_=s,k=t[r>>2]|0,y=t[r+4>>2]|0,d=t[e>>2]|0,e=F1()|0,t[T>>2]=k,t[T+4>>2]=y,t[l>>2]=t[T>>2],t[l+4>>2]=t[T+4>>2],r=N_(l)|0,t[_>>2]=k,t[_+4>>2]=y,t[l>>2]=t[_>>2],t[l+4>>2]=t[_+4>>2],ur(d,n,e,r,B_(l,o)|0,o),h=s}function F1(){var e=0,n=0;if(c[7752]|0||(Kp(9720),Bt(38,9720,Q|0)|0,n=7752,t[n>>2]=1,t[n+4>>2]=0),!(Dn(9720)|0)){e=9720,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));Kp(9720)}return 9720}function N_(e){return e=e|0,0}function B_(e,n){e=e|0,n=n|0;var r=0,o=0,s=0,l=0,d=0,_=0,y=0,k=0,T=0,P=0;return T=h,h=h+32|0,s=T+24|0,d=T+16|0,_=T,y=T+8|0,l=t[e>>2]|0,o=t[e+4>>2]|0,t[_>>2]=l,t[_+4>>2]=o,P=F1()|0,k=P+24|0,e=Lt(n,4)|0,t[y>>2]=e,n=P+28|0,r=t[n>>2]|0,r>>>0<(t[P+32>>2]|0)>>>0?(t[d>>2]=l,t[d+4>>2]=o,t[s>>2]=t[d>>2],t[s+4>>2]=t[d+4>>2],Vp(r,s,e),e=(t[n>>2]|0)+12|0,t[n>>2]=e):(j_(k,_,y),e=t[n>>2]|0),h=T,((e-(t[k>>2]|0)|0)/12|0)+-1|0}function Vp(e,n,r){e=e|0,n=n|0,r=r|0;var o=0;o=t[n+4>>2]|0,t[e>>2]=t[n>>2],t[e+4>>2]=o,t[e+8>>2]=r}function j_(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0,l=0,d=0,_=0,y=0,k=0,T=0,P=0,q=0;if(k=h,h=h+48|0,o=k+32|0,d=k+24|0,_=k,y=e+4|0,s=(((t[y>>2]|0)-(t[e>>2]|0)|0)/12|0)+1|0,l=L1(e)|0,l>>>0>>0)$n(e);else{T=t[e>>2]|0,q=((t[e+8>>2]|0)-T|0)/12|0,P=q<<1,Yp(_,q>>>0>>1>>>0?P>>>0>>0?s:P:l,((t[y>>2]|0)-T|0)/12|0,e+8|0),y=_+8|0,l=t[y>>2]|0,s=t[n+4>>2]|0,r=t[r>>2]|0,t[d>>2]=t[n>>2],t[d+4>>2]=s,t[o>>2]=t[d>>2],t[o+4>>2]=t[d+4>>2],Vp(l,o,r),t[y>>2]=(t[y>>2]|0)+12,$p(e,_),U_(_),h=k;return}}function L1(e){return e=e|0,357913941}function Yp(e,n,r,o){e=e|0,n=n|0,r=r|0,o=o|0;var s=0;t[e+12>>2]=0,t[e+16>>2]=o;do if(n)if(n>>>0>357913941)_n();else{s=Tt(n*12|0)|0;break}else s=0;while(0);t[e>>2]=s,o=s+(r*12|0)|0,t[e+8>>2]=o,t[e+4>>2]=o,t[e+12>>2]=s+(n*12|0)}function $p(e,n){e=e|0,n=n|0;var r=0,o=0,s=0,l=0,d=0;o=t[e>>2]|0,d=e+4|0,l=n+4|0,s=(t[d>>2]|0)-o|0,r=(t[l>>2]|0)+(((s|0)/-12|0)*12|0)|0,t[l>>2]=r,(s|0)>0?(vn(r|0,o|0,s|0)|0,o=l,r=t[l>>2]|0):o=l,l=t[e>>2]|0,t[e>>2]=r,t[o>>2]=l,l=n+8|0,s=t[d>>2]|0,t[d>>2]=t[l>>2],t[l>>2]=s,l=e+8|0,d=n+12|0,e=t[l>>2]|0,t[l>>2]=t[d>>2],t[d>>2]=e,t[n>>2]=t[o>>2]}function U_(e){e=e|0;var n=0,r=0,o=0;n=t[e+4>>2]|0,r=e+8|0,o=t[r>>2]|0,(o|0)!=(n|0)&&(t[r>>2]=o+(~(((o+-12-n|0)>>>0)/12|0)*12|0)),e=t[e>>2]|0,e|0&&Ve(e)}function Kp(e){e=e|0,z_(e)}function q_(e){e=e|0,R1(e+24|0)}function R1(e){e=e|0;var n=0,r=0,o=0;r=t[e>>2]|0,o=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~(((n+-12-o|0)>>>0)/12|0)*12|0)),Ve(r))}function z_(e){e=e|0;var n=0;n=An()|0,Nn(e,2,8,n,W_()|0,0),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function W_(){return 1288}function H_(e,n){e=e|0,n=n|0;var r=0,o=0,s=0,l=0;return r=h,h=h+16|0,o=r+8|0,s=r,l=$i(e)|0,e=t[l+4>>2]|0,t[s>>2]=t[l>>2],t[s+4>>2]=e,t[o>>2]=t[s>>2],t[o+4>>2]=t[s+4>>2],n=N1(n,o)|0,h=r,n|0}function $i(e){return e=e|0,(t[(F1()|0)+24>>2]|0)+(e*12|0)|0}function N1(e,n){e=e|0,n=n|0;var r=0;return r=t[n>>2]|0,n=t[n+4>>2]|0,e=e+(n>>1)|0,n&1&&(r=t[(t[e>>2]|0)+r>>2]|0),Dd(dc[r&31](e)|0)|0}function b_(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0,l=0,d=0,_=0;o=h,h=h+16|0,s=o+8|0,l=o,_=t[r>>2]|0,d=t[r+4>>2]|0,r=Zn(n)|0,t[l>>2]=_,t[l+4>>2]=d,t[s>>2]=t[l>>2],t[s+4>>2]=t[l+4>>2],G_(e,r,s,0),h=o}function G_(e,n,r,o){e=e|0,n=n|0,r=r|0,o=o|0;var s=0,l=0,d=0,_=0,y=0,k=0,T=0;s=h,h=h+32|0,l=s+16|0,T=s+8|0,_=s,k=t[r>>2]|0,y=t[r+4>>2]|0,d=t[e>>2]|0,e=B1()|0,t[T>>2]=k,t[T+4>>2]=y,t[l>>2]=t[T>>2],t[l+4>>2]=t[T+4>>2],r=V_(l)|0,t[_>>2]=k,t[_+4>>2]=y,t[l>>2]=t[_>>2],t[l+4>>2]=t[_+4>>2],ur(d,n,e,r,j1(l,o)|0,o),h=s}function B1(){var e=0,n=0;if(c[7760]|0||(q1(9756),Bt(39,9756,Q|0)|0,n=7760,t[n>>2]=1,t[n+4>>2]=0),!(Dn(9756)|0)){e=9756,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));q1(9756)}return 9756}function V_(e){return e=e|0,0}function j1(e,n){e=e|0,n=n|0;var r=0,o=0,s=0,l=0,d=0,_=0,y=0,k=0,T=0,P=0;return T=h,h=h+32|0,s=T+24|0,d=T+16|0,_=T,y=T+8|0,l=t[e>>2]|0,o=t[e+4>>2]|0,t[_>>2]=l,t[_+4>>2]=o,P=B1()|0,k=P+24|0,e=Lt(n,4)|0,t[y>>2]=e,n=P+28|0,r=t[n>>2]|0,r>>>0<(t[P+32>>2]|0)>>>0?(t[d>>2]=l,t[d+4>>2]=o,t[s>>2]=t[d>>2],t[s+4>>2]=t[d+4>>2],Xp(r,s,e),e=(t[n>>2]|0)+12|0,t[n>>2]=e):(U1(k,_,y),e=t[n>>2]|0),h=T,((e-(t[k>>2]|0)|0)/12|0)+-1|0}function Xp(e,n,r){e=e|0,n=n|0,r=r|0;var o=0;o=t[n+4>>2]|0,t[e>>2]=t[n>>2],t[e+4>>2]=o,t[e+8>>2]=r}function U1(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0,l=0,d=0,_=0,y=0,k=0,T=0,P=0,q=0;if(k=h,h=h+48|0,o=k+32|0,d=k+24|0,_=k,y=e+4|0,s=(((t[y>>2]|0)-(t[e>>2]|0)|0)/12|0)+1|0,l=Y_(e)|0,l>>>0>>0)$n(e);else{T=t[e>>2]|0,q=((t[e+8>>2]|0)-T|0)/12|0,P=q<<1,$_(_,q>>>0>>1>>>0?P>>>0>>0?s:P:l,((t[y>>2]|0)-T|0)/12|0,e+8|0),y=_+8|0,l=t[y>>2]|0,s=t[n+4>>2]|0,r=t[r>>2]|0,t[d>>2]=t[n>>2],t[d+4>>2]=s,t[o>>2]=t[d>>2],t[o+4>>2]=t[d+4>>2],Xp(l,o,r),t[y>>2]=(t[y>>2]|0)+12,K_(e,_),X_(_),h=k;return}}function Y_(e){return e=e|0,357913941}function $_(e,n,r,o){e=e|0,n=n|0,r=r|0,o=o|0;var s=0;t[e+12>>2]=0,t[e+16>>2]=o;do if(n)if(n>>>0>357913941)_n();else{s=Tt(n*12|0)|0;break}else s=0;while(0);t[e>>2]=s,o=s+(r*12|0)|0,t[e+8>>2]=o,t[e+4>>2]=o,t[e+12>>2]=s+(n*12|0)}function K_(e,n){e=e|0,n=n|0;var r=0,o=0,s=0,l=0,d=0;o=t[e>>2]|0,d=e+4|0,l=n+4|0,s=(t[d>>2]|0)-o|0,r=(t[l>>2]|0)+(((s|0)/-12|0)*12|0)|0,t[l>>2]=r,(s|0)>0?(vn(r|0,o|0,s|0)|0,o=l,r=t[l>>2]|0):o=l,l=t[e>>2]|0,t[e>>2]=r,t[o>>2]=l,l=n+8|0,s=t[d>>2]|0,t[d>>2]=t[l>>2],t[l>>2]=s,l=e+8|0,d=n+12|0,e=t[l>>2]|0,t[l>>2]=t[d>>2],t[d>>2]=e,t[n>>2]=t[o>>2]}function X_(e){e=e|0;var n=0,r=0,o=0;n=t[e+4>>2]|0,r=e+8|0,o=t[r>>2]|0,(o|0)!=(n|0)&&(t[r>>2]=o+(~(((o+-12-n|0)>>>0)/12|0)*12|0)),e=t[e>>2]|0,e|0&&Ve(e)}function q1(e){e=e|0,Z_(e)}function J_(e){e=e|0,Q_(e+24|0)}function Q_(e){e=e|0;var n=0,r=0,o=0;r=t[e>>2]|0,o=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~(((n+-12-o|0)>>>0)/12|0)*12|0)),Ve(r))}function Z_(e){e=e|0;var n=0;n=An()|0,Nn(e,2,8,n,z1()|0,1),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function z1(){return 1292}function W1(e,n,r){e=e|0,n=n|0,r=+r;var o=0,s=0,l=0,d=0;o=h,h=h+16|0,s=o+8|0,l=o,d=e4(e)|0,e=t[d+4>>2]|0,t[l>>2]=t[d>>2],t[l+4>>2]=e,t[s>>2]=t[l>>2],t[s+4>>2]=t[l+4>>2],t4(n,s,r),h=o}function e4(e){return e=e|0,(t[(B1()|0)+24>>2]|0)+(e*12|0)|0}function t4(e,n,r){e=e|0,n=n|0,r=+r;var o=0,s=0,l=0;l=h,h=h+16|0,s=l,o=t[n>>2]|0,n=t[n+4>>2]|0,e=e+(n>>1)|0,n&1&&(o=t[(t[e>>2]|0)+o>>2]|0),wu(s,r),r=+Du(s,r),nD[o&31](e,r),h=l}function n4(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0,l=0,d=0,_=0;o=h,h=h+16|0,s=o+8|0,l=o,_=t[r>>2]|0,d=t[r+4>>2]|0,r=Zn(n)|0,t[l>>2]=_,t[l+4>>2]=d,t[s>>2]=t[l>>2],t[s+4>>2]=t[l+4>>2],r4(e,r,s,0),h=o}function r4(e,n,r,o){e=e|0,n=n|0,r=r|0,o=o|0;var s=0,l=0,d=0,_=0,y=0,k=0,T=0;s=h,h=h+32|0,l=s+16|0,T=s+8|0,_=s,k=t[r>>2]|0,y=t[r+4>>2]|0,d=t[e>>2]|0,e=H1()|0,t[T>>2]=k,t[T+4>>2]=y,t[l>>2]=t[T>>2],t[l+4>>2]=t[T+4>>2],r=i4(l)|0,t[_>>2]=k,t[_+4>>2]=y,t[l>>2]=t[_>>2],t[l+4>>2]=t[_+4>>2],ur(d,n,e,r,o4(l,o)|0,o),h=s}function H1(){var e=0,n=0;if(c[7768]|0||(Qp(9792),Bt(40,9792,Q|0)|0,n=7768,t[n>>2]=1,t[n+4>>2]=0),!(Dn(9792)|0)){e=9792,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));Qp(9792)}return 9792}function i4(e){return e=e|0,0}function o4(e,n){e=e|0,n=n|0;var r=0,o=0,s=0,l=0,d=0,_=0,y=0,k=0,T=0,P=0;return T=h,h=h+32|0,s=T+24|0,d=T+16|0,_=T,y=T+8|0,l=t[e>>2]|0,o=t[e+4>>2]|0,t[_>>2]=l,t[_+4>>2]=o,P=H1()|0,k=P+24|0,e=Lt(n,4)|0,t[y>>2]=e,n=P+28|0,r=t[n>>2]|0,r>>>0<(t[P+32>>2]|0)>>>0?(t[d>>2]=l,t[d+4>>2]=o,t[s>>2]=t[d>>2],t[s+4>>2]=t[d+4>>2],Jp(r,s,e),e=(t[n>>2]|0)+12|0,t[n>>2]=e):(u4(k,_,y),e=t[n>>2]|0),h=T,((e-(t[k>>2]|0)|0)/12|0)+-1|0}function Jp(e,n,r){e=e|0,n=n|0,r=r|0;var o=0;o=t[n+4>>2]|0,t[e>>2]=t[n>>2],t[e+4>>2]=o,t[e+8>>2]=r}function u4(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0,l=0,d=0,_=0,y=0,k=0,T=0,P=0,q=0;if(k=h,h=h+48|0,o=k+32|0,d=k+24|0,_=k,y=e+4|0,s=(((t[y>>2]|0)-(t[e>>2]|0)|0)/12|0)+1|0,l=s4(e)|0,l>>>0>>0)$n(e);else{T=t[e>>2]|0,q=((t[e+8>>2]|0)-T|0)/12|0,P=q<<1,l4(_,q>>>0>>1>>>0?P>>>0>>0?s:P:l,((t[y>>2]|0)-T|0)/12|0,e+8|0),y=_+8|0,l=t[y>>2]|0,s=t[n+4>>2]|0,r=t[r>>2]|0,t[d>>2]=t[n>>2],t[d+4>>2]=s,t[o>>2]=t[d>>2],t[o+4>>2]=t[d+4>>2],Jp(l,o,r),t[y>>2]=(t[y>>2]|0)+12,f4(e,_),c4(_),h=k;return}}function s4(e){return e=e|0,357913941}function l4(e,n,r,o){e=e|0,n=n|0,r=r|0,o=o|0;var s=0;t[e+12>>2]=0,t[e+16>>2]=o;do if(n)if(n>>>0>357913941)_n();else{s=Tt(n*12|0)|0;break}else s=0;while(0);t[e>>2]=s,o=s+(r*12|0)|0,t[e+8>>2]=o,t[e+4>>2]=o,t[e+12>>2]=s+(n*12|0)}function f4(e,n){e=e|0,n=n|0;var r=0,o=0,s=0,l=0,d=0;o=t[e>>2]|0,d=e+4|0,l=n+4|0,s=(t[d>>2]|0)-o|0,r=(t[l>>2]|0)+(((s|0)/-12|0)*12|0)|0,t[l>>2]=r,(s|0)>0?(vn(r|0,o|0,s|0)|0,o=l,r=t[l>>2]|0):o=l,l=t[e>>2]|0,t[e>>2]=r,t[o>>2]=l,l=n+8|0,s=t[d>>2]|0,t[d>>2]=t[l>>2],t[l>>2]=s,l=e+8|0,d=n+12|0,e=t[l>>2]|0,t[l>>2]=t[d>>2],t[d>>2]=e,t[n>>2]=t[o>>2]}function c4(e){e=e|0;var n=0,r=0,o=0;n=t[e+4>>2]|0,r=e+8|0,o=t[r>>2]|0,(o|0)!=(n|0)&&(t[r>>2]=o+(~(((o+-12-n|0)>>>0)/12|0)*12|0)),e=t[e>>2]|0,e|0&&Ve(e)}function Qp(e){e=e|0,p4(e)}function a4(e){e=e|0,d4(e+24|0)}function d4(e){e=e|0;var n=0,r=0,o=0;r=t[e>>2]|0,o=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~(((n+-12-o|0)>>>0)/12|0)*12|0)),Ve(r))}function p4(e){e=e|0;var n=0;n=An()|0,Nn(e,2,1,n,h4()|0,2),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function h4(){return 1300}function m4(e,n,r,o){e=e|0,n=n|0,r=r|0,o=+o;var s=0,l=0,d=0,_=0;s=h,h=h+16|0,l=s+8|0,d=s,_=v4(e)|0,e=t[_+4>>2]|0,t[d>>2]=t[_>>2],t[d+4>>2]=e,t[l>>2]=t[d>>2],t[l+4>>2]=t[d+4>>2],g4(n,l,r,o),h=s}function v4(e){return e=e|0,(t[(H1()|0)+24>>2]|0)+(e*12|0)|0}function g4(e,n,r,o){e=e|0,n=n|0,r=r|0,o=+o;var s=0,l=0,d=0,_=0;_=h,h=h+16|0,l=_+1|0,d=_,s=t[n>>2]|0,n=t[n+4>>2]|0,e=e+(n>>1)|0,n&1&&(s=t[(t[e>>2]|0)+s>>2]|0),ts(l,r),l=ns(l,r)|0,wu(d,o),o=+Du(d,o),cD[s&15](e,l,o),h=_}function a(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0,l=0,d=0,_=0;o=h,h=h+16|0,s=o+8|0,l=o,_=t[r>>2]|0,d=t[r+4>>2]|0,r=Zn(n)|0,t[l>>2]=_,t[l+4>>2]=d,t[s>>2]=t[l>>2],t[s+4>>2]=t[l+4>>2],p(e,r,s,0),h=o}function p(e,n,r,o){e=e|0,n=n|0,r=r|0,o=o|0;var s=0,l=0,d=0,_=0,y=0,k=0,T=0;s=h,h=h+32|0,l=s+16|0,T=s+8|0,_=s,k=t[r>>2]|0,y=t[r+4>>2]|0,d=t[e>>2]|0,e=E()|0,t[T>>2]=k,t[T+4>>2]=y,t[l>>2]=t[T>>2],t[l+4>>2]=t[T+4>>2],r=I(l)|0,t[_>>2]=k,t[_+4>>2]=y,t[l>>2]=t[_>>2],t[l+4>>2]=t[_+4>>2],ur(d,n,e,r,B(l,o)|0,o),h=s}function E(){var e=0,n=0;if(c[7776]|0||(nt(9828),Bt(41,9828,Q|0)|0,n=7776,t[n>>2]=1,t[n+4>>2]=0),!(Dn(9828)|0)){e=9828,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));nt(9828)}return 9828}function I(e){return e=e|0,0}function B(e,n){e=e|0,n=n|0;var r=0,o=0,s=0,l=0,d=0,_=0,y=0,k=0,T=0,P=0;return T=h,h=h+32|0,s=T+24|0,d=T+16|0,_=T,y=T+8|0,l=t[e>>2]|0,o=t[e+4>>2]|0,t[_>>2]=l,t[_+4>>2]=o,P=E()|0,k=P+24|0,e=Lt(n,4)|0,t[y>>2]=e,n=P+28|0,r=t[n>>2]|0,r>>>0<(t[P+32>>2]|0)>>>0?(t[d>>2]=l,t[d+4>>2]=o,t[s>>2]=t[d>>2],t[s+4>>2]=t[d+4>>2],G(r,s,e),e=(t[n>>2]|0)+12|0,t[n>>2]=e):(te(k,_,y),e=t[n>>2]|0),h=T,((e-(t[k>>2]|0)|0)/12|0)+-1|0}function G(e,n,r){e=e|0,n=n|0,r=r|0;var o=0;o=t[n+4>>2]|0,t[e>>2]=t[n>>2],t[e+4>>2]=o,t[e+8>>2]=r}function te(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0,l=0,d=0,_=0,y=0,k=0,T=0,P=0,q=0;if(k=h,h=h+48|0,o=k+32|0,d=k+24|0,_=k,y=e+4|0,s=(((t[y>>2]|0)-(t[e>>2]|0)|0)/12|0)+1|0,l=se(e)|0,l>>>0>>0)$n(e);else{T=t[e>>2]|0,q=((t[e+8>>2]|0)-T|0)/12|0,P=q<<1,Ee(_,q>>>0>>1>>>0?P>>>0>>0?s:P:l,((t[y>>2]|0)-T|0)/12|0,e+8|0),y=_+8|0,l=t[y>>2]|0,s=t[n+4>>2]|0,r=t[r>>2]|0,t[d>>2]=t[n>>2],t[d+4>>2]=s,t[o>>2]=t[d>>2],t[o+4>>2]=t[d+4>>2],G(l,o,r),t[y>>2]=(t[y>>2]|0)+12,$e(e,_),Ke(_),h=k;return}}function se(e){return e=e|0,357913941}function Ee(e,n,r,o){e=e|0,n=n|0,r=r|0,o=o|0;var s=0;t[e+12>>2]=0,t[e+16>>2]=o;do if(n)if(n>>>0>357913941)_n();else{s=Tt(n*12|0)|0;break}else s=0;while(0);t[e>>2]=s,o=s+(r*12|0)|0,t[e+8>>2]=o,t[e+4>>2]=o,t[e+12>>2]=s+(n*12|0)}function $e(e,n){e=e|0,n=n|0;var r=0,o=0,s=0,l=0,d=0;o=t[e>>2]|0,d=e+4|0,l=n+4|0,s=(t[d>>2]|0)-o|0,r=(t[l>>2]|0)+(((s|0)/-12|0)*12|0)|0,t[l>>2]=r,(s|0)>0?(vn(r|0,o|0,s|0)|0,o=l,r=t[l>>2]|0):o=l,l=t[e>>2]|0,t[e>>2]=r,t[o>>2]=l,l=n+8|0,s=t[d>>2]|0,t[d>>2]=t[l>>2],t[l>>2]=s,l=e+8|0,d=n+12|0,e=t[l>>2]|0,t[l>>2]=t[d>>2],t[d>>2]=e,t[n>>2]=t[o>>2]}function Ke(e){e=e|0;var n=0,r=0,o=0;n=t[e+4>>2]|0,r=e+8|0,o=t[r>>2]|0,(o|0)!=(n|0)&&(t[r>>2]=o+(~(((o+-12-n|0)>>>0)/12|0)*12|0)),e=t[e>>2]|0,e|0&&Ve(e)}function nt(e){e=e|0,an(e)}function Ct(e){e=e|0,Gt(e+24|0)}function Gt(e){e=e|0;var n=0,r=0,o=0;r=t[e>>2]|0,o=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~(((n+-12-o|0)>>>0)/12|0)*12|0)),Ve(r))}function an(e){e=e|0;var n=0;n=An()|0,Nn(e,2,7,n,qn()|0,1),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function qn(){return 1312}function dn(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0,l=0,d=0;o=h,h=h+16|0,s=o+8|0,l=o,d=Yn(e)|0,e=t[d+4>>2]|0,t[l>>2]=t[d>>2],t[l+4>>2]=e,t[s>>2]=t[l>>2],t[s+4>>2]=t[l+4>>2],er(n,s,r),h=o}function Yn(e){return e=e|0,(t[(E()|0)+24>>2]|0)+(e*12|0)|0}function er(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0,l=0;l=h,h=h+16|0,s=l,o=t[n>>2]|0,n=t[n+4>>2]|0,e=e+(n>>1)|0,n&1&&(o=t[(t[e>>2]|0)+o>>2]|0),ts(s,r),s=ns(s,r)|0,Bl[o&31](e,s),h=l}function vo(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0,l=0,d=0,_=0;o=h,h=h+16|0,s=o+8|0,l=o,_=t[r>>2]|0,d=t[r+4>>2]|0,r=Zn(n)|0,t[l>>2]=_,t[l+4>>2]=d,t[s>>2]=t[l>>2],t[s+4>>2]=t[l+4>>2],Pi(e,r,s,0),h=o}function Pi(e,n,r,o){e=e|0,n=n|0,r=r|0,o=o|0;var s=0,l=0,d=0,_=0,y=0,k=0,T=0;s=h,h=h+32|0,l=s+16|0,T=s+8|0,_=s,k=t[r>>2]|0,y=t[r+4>>2]|0,d=t[e>>2]|0,e=Mi()|0,t[T>>2]=k,t[T+4>>2]=y,t[l>>2]=t[T>>2],t[l+4>>2]=t[T+4>>2],r=f0(l)|0,t[_>>2]=k,t[_+4>>2]=y,t[l>>2]=t[_>>2],t[l+4>>2]=t[_+4>>2],ur(d,n,e,r,Jo(l,o)|0,o),h=s}function Mi(){var e=0,n=0;if(c[7784]|0||(kw(9864),Bt(42,9864,Q|0)|0,n=7784,t[n>>2]=1,t[n+4>>2]=0),!(Dn(9864)|0)){e=9864,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));kw(9864)}return 9864}function f0(e){return e=e|0,0}function Jo(e,n){e=e|0,n=n|0;var r=0,o=0,s=0,l=0,d=0,_=0,y=0,k=0,T=0,P=0;return T=h,h=h+32|0,s=T+24|0,d=T+16|0,_=T,y=T+8|0,l=t[e>>2]|0,o=t[e+4>>2]|0,t[_>>2]=l,t[_+4>>2]=o,P=Mi()|0,k=P+24|0,e=Lt(n,4)|0,t[y>>2]=e,n=P+28|0,r=t[n>>2]|0,r>>>0<(t[P+32>>2]|0)>>>0?(t[d>>2]=l,t[d+4>>2]=o,t[s>>2]=t[d>>2],t[s+4>>2]=t[d+4>>2],Su(r,s,e),e=(t[n>>2]|0)+12|0,t[n>>2]=e):(Zp(k,_,y),e=t[n>>2]|0),h=T,((e-(t[k>>2]|0)|0)/12|0)+-1|0}function Su(e,n,r){e=e|0,n=n|0,r=r|0;var o=0;o=t[n+4>>2]|0,t[e>>2]=t[n>>2],t[e+4>>2]=o,t[e+8>>2]=r}function Zp(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0,l=0,d=0,_=0,y=0,k=0,T=0,P=0,q=0;if(k=h,h=h+48|0,o=k+32|0,d=k+24|0,_=k,y=e+4|0,s=(((t[y>>2]|0)-(t[e>>2]|0)|0)/12|0)+1|0,l=v9(e)|0,l>>>0>>0)$n(e);else{T=t[e>>2]|0,q=((t[e+8>>2]|0)-T|0)/12|0,P=q<<1,g9(_,q>>>0>>1>>>0?P>>>0>>0?s:P:l,((t[y>>2]|0)-T|0)/12|0,e+8|0),y=_+8|0,l=t[y>>2]|0,s=t[n+4>>2]|0,r=t[r>>2]|0,t[d>>2]=t[n>>2],t[d+4>>2]=s,t[o>>2]=t[d>>2],t[o+4>>2]=t[d+4>>2],Su(l,o,r),t[y>>2]=(t[y>>2]|0)+12,_9(e,_),y9(_),h=k;return}}function v9(e){return e=e|0,357913941}function g9(e,n,r,o){e=e|0,n=n|0,r=r|0,o=o|0;var s=0;t[e+12>>2]=0,t[e+16>>2]=o;do if(n)if(n>>>0>357913941)_n();else{s=Tt(n*12|0)|0;break}else s=0;while(0);t[e>>2]=s,o=s+(r*12|0)|0,t[e+8>>2]=o,t[e+4>>2]=o,t[e+12>>2]=s+(n*12|0)}function _9(e,n){e=e|0,n=n|0;var r=0,o=0,s=0,l=0,d=0;o=t[e>>2]|0,d=e+4|0,l=n+4|0,s=(t[d>>2]|0)-o|0,r=(t[l>>2]|0)+(((s|0)/-12|0)*12|0)|0,t[l>>2]=r,(s|0)>0?(vn(r|0,o|0,s|0)|0,o=l,r=t[l>>2]|0):o=l,l=t[e>>2]|0,t[e>>2]=r,t[o>>2]=l,l=n+8|0,s=t[d>>2]|0,t[d>>2]=t[l>>2],t[l>>2]=s,l=e+8|0,d=n+12|0,e=t[l>>2]|0,t[l>>2]=t[d>>2],t[d>>2]=e,t[n>>2]=t[o>>2]}function y9(e){e=e|0;var n=0,r=0,o=0;n=t[e+4>>2]|0,r=e+8|0,o=t[r>>2]|0,(o|0)!=(n|0)&&(t[r>>2]=o+(~(((o+-12-n|0)>>>0)/12|0)*12|0)),e=t[e>>2]|0,e|0&&Ve(e)}function kw(e){e=e|0,E9(e)}function w9(e){e=e|0,D9(e+24|0)}function D9(e){e=e|0;var n=0,r=0,o=0;r=t[e>>2]|0,o=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~(((n+-12-o|0)>>>0)/12|0)*12|0)),Ve(r))}function E9(e){e=e|0;var n=0;n=An()|0,Nn(e,2,8,n,S9()|0,1),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function S9(){return 1320}function C9(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0,l=0,d=0;o=h,h=h+16|0,s=o+8|0,l=o,d=T9(e)|0,e=t[d+4>>2]|0,t[l>>2]=t[d>>2],t[l+4>>2]=e,t[s>>2]=t[l>>2],t[s+4>>2]=t[l+4>>2],x9(n,s,r),h=o}function T9(e){return e=e|0,(t[(Mi()|0)+24>>2]|0)+(e*12|0)|0}function x9(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0,l=0;l=h,h=h+16|0,s=l,o=t[n>>2]|0,n=t[n+4>>2]|0,e=e+(n>>1)|0,n&1&&(o=t[(t[e>>2]|0)+o>>2]|0),k9(s,r),s=A9(s,r)|0,Bl[o&31](e,s),h=l}function k9(e,n){e=e|0,n=n|0}function A9(e,n){return e=e|0,n=n|0,O9(n)|0}function O9(e){return e=e|0,e|0}function I9(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0,l=0,d=0,_=0;o=h,h=h+16|0,s=o+8|0,l=o,_=t[r>>2]|0,d=t[r+4>>2]|0,r=Zn(n)|0,t[l>>2]=_,t[l+4>>2]=d,t[s>>2]=t[l>>2],t[s+4>>2]=t[l+4>>2],P9(e,r,s,0),h=o}function P9(e,n,r,o){e=e|0,n=n|0,r=r|0,o=o|0;var s=0,l=0,d=0,_=0,y=0,k=0,T=0;s=h,h=h+32|0,l=s+16|0,T=s+8|0,_=s,k=t[r>>2]|0,y=t[r+4>>2]|0,d=t[e>>2]|0,e=_4()|0,t[T>>2]=k,t[T+4>>2]=y,t[l>>2]=t[T>>2],t[l+4>>2]=t[T+4>>2],r=M9(l)|0,t[_>>2]=k,t[_+4>>2]=y,t[l>>2]=t[_>>2],t[l+4>>2]=t[_+4>>2],ur(d,n,e,r,F9(l,o)|0,o),h=s}function _4(){var e=0,n=0;if(c[7792]|0||(Ow(9900),Bt(43,9900,Q|0)|0,n=7792,t[n>>2]=1,t[n+4>>2]=0),!(Dn(9900)|0)){e=9900,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));Ow(9900)}return 9900}function M9(e){return e=e|0,0}function F9(e,n){e=e|0,n=n|0;var r=0,o=0,s=0,l=0,d=0,_=0,y=0,k=0,T=0,P=0;return T=h,h=h+32|0,s=T+24|0,d=T+16|0,_=T,y=T+8|0,l=t[e>>2]|0,o=t[e+4>>2]|0,t[_>>2]=l,t[_+4>>2]=o,P=_4()|0,k=P+24|0,e=Lt(n,4)|0,t[y>>2]=e,n=P+28|0,r=t[n>>2]|0,r>>>0<(t[P+32>>2]|0)>>>0?(t[d>>2]=l,t[d+4>>2]=o,t[s>>2]=t[d>>2],t[s+4>>2]=t[d+4>>2],Aw(r,s,e),e=(t[n>>2]|0)+12|0,t[n>>2]=e):(L9(k,_,y),e=t[n>>2]|0),h=T,((e-(t[k>>2]|0)|0)/12|0)+-1|0}function Aw(e,n,r){e=e|0,n=n|0,r=r|0;var o=0;o=t[n+4>>2]|0,t[e>>2]=t[n>>2],t[e+4>>2]=o,t[e+8>>2]=r}function L9(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0,l=0,d=0,_=0,y=0,k=0,T=0,P=0,q=0;if(k=h,h=h+48|0,o=k+32|0,d=k+24|0,_=k,y=e+4|0,s=(((t[y>>2]|0)-(t[e>>2]|0)|0)/12|0)+1|0,l=R9(e)|0,l>>>0>>0)$n(e);else{T=t[e>>2]|0,q=((t[e+8>>2]|0)-T|0)/12|0,P=q<<1,N9(_,q>>>0>>1>>>0?P>>>0>>0?s:P:l,((t[y>>2]|0)-T|0)/12|0,e+8|0),y=_+8|0,l=t[y>>2]|0,s=t[n+4>>2]|0,r=t[r>>2]|0,t[d>>2]=t[n>>2],t[d+4>>2]=s,t[o>>2]=t[d>>2],t[o+4>>2]=t[d+4>>2],Aw(l,o,r),t[y>>2]=(t[y>>2]|0)+12,B9(e,_),j9(_),h=k;return}}function R9(e){return e=e|0,357913941}function N9(e,n,r,o){e=e|0,n=n|0,r=r|0,o=o|0;var s=0;t[e+12>>2]=0,t[e+16>>2]=o;do if(n)if(n>>>0>357913941)_n();else{s=Tt(n*12|0)|0;break}else s=0;while(0);t[e>>2]=s,o=s+(r*12|0)|0,t[e+8>>2]=o,t[e+4>>2]=o,t[e+12>>2]=s+(n*12|0)}function B9(e,n){e=e|0,n=n|0;var r=0,o=0,s=0,l=0,d=0;o=t[e>>2]|0,d=e+4|0,l=n+4|0,s=(t[d>>2]|0)-o|0,r=(t[l>>2]|0)+(((s|0)/-12|0)*12|0)|0,t[l>>2]=r,(s|0)>0?(vn(r|0,o|0,s|0)|0,o=l,r=t[l>>2]|0):o=l,l=t[e>>2]|0,t[e>>2]=r,t[o>>2]=l,l=n+8|0,s=t[d>>2]|0,t[d>>2]=t[l>>2],t[l>>2]=s,l=e+8|0,d=n+12|0,e=t[l>>2]|0,t[l>>2]=t[d>>2],t[d>>2]=e,t[n>>2]=t[o>>2]}function j9(e){e=e|0;var n=0,r=0,o=0;n=t[e+4>>2]|0,r=e+8|0,o=t[r>>2]|0,(o|0)!=(n|0)&&(t[r>>2]=o+(~(((o+-12-n|0)>>>0)/12|0)*12|0)),e=t[e>>2]|0,e|0&&Ve(e)}function Ow(e){e=e|0,z9(e)}function U9(e){e=e|0,q9(e+24|0)}function q9(e){e=e|0;var n=0,r=0,o=0;r=t[e>>2]|0,o=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~(((n+-12-o|0)>>>0)/12|0)*12|0)),Ve(r))}function z9(e){e=e|0;var n=0;n=An()|0,Nn(e,2,22,n,W9()|0,0),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function W9(){return 1344}function H9(e,n){e=e|0,n=n|0;var r=0,o=0,s=0,l=0;r=h,h=h+16|0,o=r+8|0,s=r,l=b9(e)|0,e=t[l+4>>2]|0,t[s>>2]=t[l>>2],t[s+4>>2]=e,t[o>>2]=t[s>>2],t[o+4>>2]=t[s+4>>2],G9(n,o),h=r}function b9(e){return e=e|0,(t[(_4()|0)+24>>2]|0)+(e*12|0)|0}function G9(e,n){e=e|0,n=n|0;var r=0;r=t[n>>2]|0,n=t[n+4>>2]|0,e=e+(n>>1)|0,n&1&&(r=t[(t[e>>2]|0)+r>>2]|0),Nl[r&127](e)}function V9(e,n,r,o){e=e|0,n=n|0,r=r|0,o=o|0;var s=0,l=0;l=t[e>>2]|0,s=y4()|0,e=Y9(r)|0,ur(l,n,s,e,$9(r,o)|0,o)}function y4(){var e=0,n=0;if(c[7800]|0||(Pw(9936),Bt(44,9936,Q|0)|0,n=7800,t[n>>2]=1,t[n+4>>2]=0),!(Dn(9936)|0)){e=9936,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));Pw(9936)}return 9936}function Y9(e){return e=e|0,e|0}function $9(e,n){e=e|0,n=n|0;var r=0,o=0,s=0,l=0,d=0,_=0,y=0;return _=h,h=h+16|0,s=_,l=_+4|0,t[s>>2]=e,y=y4()|0,d=y+24|0,n=Lt(n,4)|0,t[l>>2]=n,r=y+28|0,o=t[r>>2]|0,o>>>0<(t[y+32>>2]|0)>>>0?(Iw(o,e,n),n=(t[r>>2]|0)+8|0,t[r>>2]=n):(K9(d,s,l),n=t[r>>2]|0),h=_,(n-(t[d>>2]|0)>>3)+-1|0}function Iw(e,n,r){e=e|0,n=n|0,r=r|0,t[e>>2]=n,t[e+4>>2]=r}function K9(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0,l=0,d=0,_=0,y=0,k=0,T=0;if(_=h,h=h+32|0,s=_,l=e+4|0,d=((t[l>>2]|0)-(t[e>>2]|0)>>3)+1|0,o=X9(e)|0,o>>>0>>0)$n(e);else{y=t[e>>2]|0,T=(t[e+8>>2]|0)-y|0,k=T>>2,J9(s,T>>3>>>0>>1>>>0?k>>>0>>0?d:k:o,(t[l>>2]|0)-y>>3,e+8|0),d=s+8|0,Iw(t[d>>2]|0,t[n>>2]|0,t[r>>2]|0),t[d>>2]=(t[d>>2]|0)+8,Q9(e,s),Z9(s),h=_;return}}function X9(e){return e=e|0,536870911}function J9(e,n,r,o){e=e|0,n=n|0,r=r|0,o=o|0;var s=0;t[e+12>>2]=0,t[e+16>>2]=o;do if(n)if(n>>>0>536870911)_n();else{s=Tt(n<<3)|0;break}else s=0;while(0);t[e>>2]=s,o=s+(r<<3)|0,t[e+8>>2]=o,t[e+4>>2]=o,t[e+12>>2]=s+(n<<3)}function Q9(e,n){e=e|0,n=n|0;var r=0,o=0,s=0,l=0,d=0;o=t[e>>2]|0,d=e+4|0,l=n+4|0,s=(t[d>>2]|0)-o|0,r=(t[l>>2]|0)+(0-(s>>3)<<3)|0,t[l>>2]=r,(s|0)>0?(vn(r|0,o|0,s|0)|0,o=l,r=t[l>>2]|0):o=l,l=t[e>>2]|0,t[e>>2]=r,t[o>>2]=l,l=n+8|0,s=t[d>>2]|0,t[d>>2]=t[l>>2],t[l>>2]=s,l=e+8|0,d=n+12|0,e=t[l>>2]|0,t[l>>2]=t[d>>2],t[d>>2]=e,t[n>>2]=t[o>>2]}function Z9(e){e=e|0;var n=0,r=0,o=0;n=t[e+4>>2]|0,r=e+8|0,o=t[r>>2]|0,(o|0)!=(n|0)&&(t[r>>2]=o+(~((o+-8-n|0)>>>3)<<3)),e=t[e>>2]|0,e|0&&Ve(e)}function Pw(e){e=e|0,nx(e)}function ex(e){e=e|0,tx(e+24|0)}function tx(e){e=e|0;var n=0,r=0,o=0;r=t[e>>2]|0,o=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~((n+-8-o|0)>>>3)<<3)),Ve(r))}function nx(e){e=e|0;var n=0;n=An()|0,Nn(e,1,23,n,Mo()|0,1),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function rx(e,n){e=e|0,n=n|0,ox(t[(ix(e)|0)>>2]|0,n)}function ix(e){return e=e|0,(t[(y4()|0)+24>>2]|0)+(e<<3)|0}function ox(e,n){e=e|0,n=n|0;var r=0,o=0;r=h,h=h+16|0,o=r,On(o,n),n=x1(o,n)|0,Nl[e&127](n),h=r}function ux(e,n,r,o){e=e|0,n=n|0,r=r|0,o=o|0;var s=0,l=0;l=t[e>>2]|0,s=w4()|0,e=sx(r)|0,ur(l,n,s,e,lx(r,o)|0,o)}function w4(){var e=0,n=0;if(c[7808]|0||(Fw(9972),Bt(45,9972,Q|0)|0,n=7808,t[n>>2]=1,t[n+4>>2]=0),!(Dn(9972)|0)){e=9972,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));Fw(9972)}return 9972}function sx(e){return e=e|0,e|0}function lx(e,n){e=e|0,n=n|0;var r=0,o=0,s=0,l=0,d=0,_=0,y=0;return _=h,h=h+16|0,s=_,l=_+4|0,t[s>>2]=e,y=w4()|0,d=y+24|0,n=Lt(n,4)|0,t[l>>2]=n,r=y+28|0,o=t[r>>2]|0,o>>>0<(t[y+32>>2]|0)>>>0?(Mw(o,e,n),n=(t[r>>2]|0)+8|0,t[r>>2]=n):(fx(d,s,l),n=t[r>>2]|0),h=_,(n-(t[d>>2]|0)>>3)+-1|0}function Mw(e,n,r){e=e|0,n=n|0,r=r|0,t[e>>2]=n,t[e+4>>2]=r}function fx(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0,l=0,d=0,_=0,y=0,k=0,T=0;if(_=h,h=h+32|0,s=_,l=e+4|0,d=((t[l>>2]|0)-(t[e>>2]|0)>>3)+1|0,o=cx(e)|0,o>>>0>>0)$n(e);else{y=t[e>>2]|0,T=(t[e+8>>2]|0)-y|0,k=T>>2,ax(s,T>>3>>>0>>1>>>0?k>>>0>>0?d:k:o,(t[l>>2]|0)-y>>3,e+8|0),d=s+8|0,Mw(t[d>>2]|0,t[n>>2]|0,t[r>>2]|0),t[d>>2]=(t[d>>2]|0)+8,dx(e,s),px(s),h=_;return}}function cx(e){return e=e|0,536870911}function ax(e,n,r,o){e=e|0,n=n|0,r=r|0,o=o|0;var s=0;t[e+12>>2]=0,t[e+16>>2]=o;do if(n)if(n>>>0>536870911)_n();else{s=Tt(n<<3)|0;break}else s=0;while(0);t[e>>2]=s,o=s+(r<<3)|0,t[e+8>>2]=o,t[e+4>>2]=o,t[e+12>>2]=s+(n<<3)}function dx(e,n){e=e|0,n=n|0;var r=0,o=0,s=0,l=0,d=0;o=t[e>>2]|0,d=e+4|0,l=n+4|0,s=(t[d>>2]|0)-o|0,r=(t[l>>2]|0)+(0-(s>>3)<<3)|0,t[l>>2]=r,(s|0)>0?(vn(r|0,o|0,s|0)|0,o=l,r=t[l>>2]|0):o=l,l=t[e>>2]|0,t[e>>2]=r,t[o>>2]=l,l=n+8|0,s=t[d>>2]|0,t[d>>2]=t[l>>2],t[l>>2]=s,l=e+8|0,d=n+12|0,e=t[l>>2]|0,t[l>>2]=t[d>>2],t[d>>2]=e,t[n>>2]=t[o>>2]}function px(e){e=e|0;var n=0,r=0,o=0;n=t[e+4>>2]|0,r=e+8|0,o=t[r>>2]|0,(o|0)!=(n|0)&&(t[r>>2]=o+(~((o+-8-n|0)>>>3)<<3)),e=t[e>>2]|0,e|0&&Ve(e)}function Fw(e){e=e|0,vx(e)}function hx(e){e=e|0,mx(e+24|0)}function mx(e){e=e|0;var n=0,r=0,o=0;r=t[e>>2]|0,o=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~((n+-8-o|0)>>>3)<<3)),Ve(r))}function vx(e){e=e|0;var n=0;n=An()|0,Nn(e,1,9,n,gx()|0,1),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function gx(){return 1348}function _x(e,n){return e=e|0,n=n|0,wx(t[(yx(e)|0)>>2]|0,n)|0}function yx(e){return e=e|0,(t[(w4()|0)+24>>2]|0)+(e<<3)|0}function wx(e,n){e=e|0,n=n|0;var r=0,o=0;return r=h,h=h+16|0,o=r,Lw(o,n),n=Rw(o,n)|0,n=Xc(dc[e&31](n)|0)|0,h=r,n|0}function Lw(e,n){e=e|0,n=n|0}function Rw(e,n){return e=e|0,n=n|0,Dx(n)|0}function Dx(e){return e=e|0,e|0}function Ex(e,n,r,o){e=e|0,n=n|0,r=r|0,o=o|0;var s=0,l=0;l=t[e>>2]|0,s=D4()|0,e=Sx(r)|0,ur(l,n,s,e,Cx(r,o)|0,o)}function D4(){var e=0,n=0;if(c[7816]|0||(Bw(10008),Bt(46,10008,Q|0)|0,n=7816,t[n>>2]=1,t[n+4>>2]=0),!(Dn(10008)|0)){e=10008,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));Bw(10008)}return 10008}function Sx(e){return e=e|0,e|0}function Cx(e,n){e=e|0,n=n|0;var r=0,o=0,s=0,l=0,d=0,_=0,y=0;return _=h,h=h+16|0,s=_,l=_+4|0,t[s>>2]=e,y=D4()|0,d=y+24|0,n=Lt(n,4)|0,t[l>>2]=n,r=y+28|0,o=t[r>>2]|0,o>>>0<(t[y+32>>2]|0)>>>0?(Nw(o,e,n),n=(t[r>>2]|0)+8|0,t[r>>2]=n):(Tx(d,s,l),n=t[r>>2]|0),h=_,(n-(t[d>>2]|0)>>3)+-1|0}function Nw(e,n,r){e=e|0,n=n|0,r=r|0,t[e>>2]=n,t[e+4>>2]=r}function Tx(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0,l=0,d=0,_=0,y=0,k=0,T=0;if(_=h,h=h+32|0,s=_,l=e+4|0,d=((t[l>>2]|0)-(t[e>>2]|0)>>3)+1|0,o=xx(e)|0,o>>>0>>0)$n(e);else{y=t[e>>2]|0,T=(t[e+8>>2]|0)-y|0,k=T>>2,kx(s,T>>3>>>0>>1>>>0?k>>>0>>0?d:k:o,(t[l>>2]|0)-y>>3,e+8|0),d=s+8|0,Nw(t[d>>2]|0,t[n>>2]|0,t[r>>2]|0),t[d>>2]=(t[d>>2]|0)+8,Ax(e,s),Ox(s),h=_;return}}function xx(e){return e=e|0,536870911}function kx(e,n,r,o){e=e|0,n=n|0,r=r|0,o=o|0;var s=0;t[e+12>>2]=0,t[e+16>>2]=o;do if(n)if(n>>>0>536870911)_n();else{s=Tt(n<<3)|0;break}else s=0;while(0);t[e>>2]=s,o=s+(r<<3)|0,t[e+8>>2]=o,t[e+4>>2]=o,t[e+12>>2]=s+(n<<3)}function Ax(e,n){e=e|0,n=n|0;var r=0,o=0,s=0,l=0,d=0;o=t[e>>2]|0,d=e+4|0,l=n+4|0,s=(t[d>>2]|0)-o|0,r=(t[l>>2]|0)+(0-(s>>3)<<3)|0,t[l>>2]=r,(s|0)>0?(vn(r|0,o|0,s|0)|0,o=l,r=t[l>>2]|0):o=l,l=t[e>>2]|0,t[e>>2]=r,t[o>>2]=l,l=n+8|0,s=t[d>>2]|0,t[d>>2]=t[l>>2],t[l>>2]=s,l=e+8|0,d=n+12|0,e=t[l>>2]|0,t[l>>2]=t[d>>2],t[d>>2]=e,t[n>>2]=t[o>>2]}function Ox(e){e=e|0;var n=0,r=0,o=0;n=t[e+4>>2]|0,r=e+8|0,o=t[r>>2]|0,(o|0)!=(n|0)&&(t[r>>2]=o+(~((o+-8-n|0)>>>3)<<3)),e=t[e>>2]|0,e|0&&Ve(e)}function Bw(e){e=e|0,Mx(e)}function Ix(e){e=e|0,Px(e+24|0)}function Px(e){e=e|0;var n=0,r=0,o=0;r=t[e>>2]|0,o=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~((n+-8-o|0)>>>3)<<3)),Ve(r))}function Mx(e){e=e|0;var n=0;n=An()|0,Nn(e,1,15,n,mp()|0,0),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function Fx(e){return e=e|0,Rx(t[(Lx(e)|0)>>2]|0)|0}function Lx(e){return e=e|0,(t[(D4()|0)+24>>2]|0)+(e<<3)|0}function Rx(e){return e=e|0,Xc(ph[e&7]()|0)|0}function Nx(){var e=0;return c[7832]|0||(bx(10052),Bt(25,10052,Q|0)|0,e=7832,t[e>>2]=1,t[e+4>>2]=0),10052}function Bx(e,n){e=e|0,n=n|0,t[e>>2]=jx()|0,t[e+4>>2]=Ux()|0,t[e+12>>2]=n,t[e+8>>2]=qx()|0,t[e+32>>2]=2}function jx(){return 11709}function Ux(){return 1188}function qx(){return eh()|0}function zx(e,n,r,o){e=e|0,n=n|0,r=r|0,o=o|0,(Sf(o,896)|0)==512?r|0&&(Wx(r),Ve(r)):n|0&&(mu(n),Ve(n))}function Sf(e,n){return e=e|0,n=n|0,n&e|0}function Wx(e){e=e|0,e=t[e+4>>2]|0,e|0&&Tf(e)}function eh(){var e=0;return c[7824]|0||(t[2511]=Hx()|0,t[2512]=0,e=7824,t[e>>2]=1,t[e+4>>2]=0),10044}function Hx(){return 0}function bx(e){e=e|0,Ys(e)}function Gx(e){e=e|0;var n=0,r=0,o=0,s=0,l=0;n=h,h=h+32|0,r=n+24|0,l=n+16|0,s=n+8|0,o=n,Vx(e,4827),Yx(e,4834,3)|0,$x(e,3682,47)|0,t[l>>2]=9,t[l+4>>2]=0,t[r>>2]=t[l>>2],t[r+4>>2]=t[l+4>>2],Kx(e,4841,r)|0,t[s>>2]=1,t[s+4>>2]=0,t[r>>2]=t[s>>2],t[r+4>>2]=t[s+4>>2],Xx(e,4871,r)|0,t[o>>2]=10,t[o+4>>2]=0,t[r>>2]=t[o>>2],t[r+4>>2]=t[o+4>>2],Jx(e,4891,r)|0,h=n}function Vx(e,n){e=e|0,n=n|0;var r=0;r=Ok()|0,t[e>>2]=r,Ik(r,n),Cf(t[e>>2]|0)}function Yx(e,n,r){return e=e|0,n=n|0,r=r|0,pk(e,Zn(n)|0,r,0),e|0}function $x(e,n,r){return e=e|0,n=n|0,r=r|0,Q7(e,Zn(n)|0,r,0),e|0}function Kx(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0,l=0,d=0;return o=h,h=h+16|0,s=o+8|0,l=o,d=t[r+4>>2]|0,t[l>>2]=t[r>>2],t[l+4>>2]=d,t[s>>2]=t[l>>2],t[s+4>>2]=t[l+4>>2],F7(e,n,s),h=o,e|0}function Xx(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0,l=0,d=0;return o=h,h=h+16|0,s=o+8|0,l=o,d=t[r+4>>2]|0,t[l>>2]=t[r>>2],t[l+4>>2]=d,t[s>>2]=t[l>>2],t[s+4>>2]=t[l+4>>2],h7(e,n,s),h=o,e|0}function Jx(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0,l=0,d=0;return o=h,h=h+16|0,s=o+8|0,l=o,d=t[r+4>>2]|0,t[l>>2]=t[r>>2],t[l+4>>2]=d,t[s>>2]=t[l>>2],t[s+4>>2]=t[l+4>>2],Qx(e,n,s),h=o,e|0}function Qx(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0,l=0,d=0,_=0;o=h,h=h+16|0,s=o+8|0,l=o,_=t[r>>2]|0,d=t[r+4>>2]|0,r=Zn(n)|0,t[l>>2]=_,t[l+4>>2]=d,t[s>>2]=t[l>>2],t[s+4>>2]=t[l+4>>2],Zx(e,r,s,1),h=o}function Zx(e,n,r,o){e=e|0,n=n|0,r=r|0,o=o|0;var s=0,l=0,d=0,_=0,y=0,k=0,T=0;s=h,h=h+32|0,l=s+16|0,T=s+8|0,_=s,k=t[r>>2]|0,y=t[r+4>>2]|0,d=t[e>>2]|0,e=E4()|0,t[T>>2]=k,t[T+4>>2]=y,t[l>>2]=t[T>>2],t[l+4>>2]=t[T+4>>2],r=e7(l)|0,t[_>>2]=k,t[_+4>>2]=y,t[l>>2]=t[_>>2],t[l+4>>2]=t[_+4>>2],ur(d,n,e,r,t7(l,o)|0,o),h=s}function E4(){var e=0,n=0;if(c[7840]|0||(Uw(10100),Bt(48,10100,Q|0)|0,n=7840,t[n>>2]=1,t[n+4>>2]=0),!(Dn(10100)|0)){e=10100,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));Uw(10100)}return 10100}function e7(e){return e=e|0,0}function t7(e,n){e=e|0,n=n|0;var r=0,o=0,s=0,l=0,d=0,_=0,y=0,k=0,T=0,P=0;return T=h,h=h+32|0,s=T+24|0,d=T+16|0,_=T,y=T+8|0,l=t[e>>2]|0,o=t[e+4>>2]|0,t[_>>2]=l,t[_+4>>2]=o,P=E4()|0,k=P+24|0,e=Lt(n,4)|0,t[y>>2]=e,n=P+28|0,r=t[n>>2]|0,r>>>0<(t[P+32>>2]|0)>>>0?(t[d>>2]=l,t[d+4>>2]=o,t[s>>2]=t[d>>2],t[s+4>>2]=t[d+4>>2],jw(r,s,e),e=(t[n>>2]|0)+12|0,t[n>>2]=e):(n7(k,_,y),e=t[n>>2]|0),h=T,((e-(t[k>>2]|0)|0)/12|0)+-1|0}function jw(e,n,r){e=e|0,n=n|0,r=r|0;var o=0;o=t[n+4>>2]|0,t[e>>2]=t[n>>2],t[e+4>>2]=o,t[e+8>>2]=r}function n7(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0,l=0,d=0,_=0,y=0,k=0,T=0,P=0,q=0;if(k=h,h=h+48|0,o=k+32|0,d=k+24|0,_=k,y=e+4|0,s=(((t[y>>2]|0)-(t[e>>2]|0)|0)/12|0)+1|0,l=r7(e)|0,l>>>0>>0)$n(e);else{T=t[e>>2]|0,q=((t[e+8>>2]|0)-T|0)/12|0,P=q<<1,i7(_,q>>>0>>1>>>0?P>>>0>>0?s:P:l,((t[y>>2]|0)-T|0)/12|0,e+8|0),y=_+8|0,l=t[y>>2]|0,s=t[n+4>>2]|0,r=t[r>>2]|0,t[d>>2]=t[n>>2],t[d+4>>2]=s,t[o>>2]=t[d>>2],t[o+4>>2]=t[d+4>>2],jw(l,o,r),t[y>>2]=(t[y>>2]|0)+12,o7(e,_),u7(_),h=k;return}}function r7(e){return e=e|0,357913941}function i7(e,n,r,o){e=e|0,n=n|0,r=r|0,o=o|0;var s=0;t[e+12>>2]=0,t[e+16>>2]=o;do if(n)if(n>>>0>357913941)_n();else{s=Tt(n*12|0)|0;break}else s=0;while(0);t[e>>2]=s,o=s+(r*12|0)|0,t[e+8>>2]=o,t[e+4>>2]=o,t[e+12>>2]=s+(n*12|0)}function o7(e,n){e=e|0,n=n|0;var r=0,o=0,s=0,l=0,d=0;o=t[e>>2]|0,d=e+4|0,l=n+4|0,s=(t[d>>2]|0)-o|0,r=(t[l>>2]|0)+(((s|0)/-12|0)*12|0)|0,t[l>>2]=r,(s|0)>0?(vn(r|0,o|0,s|0)|0,o=l,r=t[l>>2]|0):o=l,l=t[e>>2]|0,t[e>>2]=r,t[o>>2]=l,l=n+8|0,s=t[d>>2]|0,t[d>>2]=t[l>>2],t[l>>2]=s,l=e+8|0,d=n+12|0,e=t[l>>2]|0,t[l>>2]=t[d>>2],t[d>>2]=e,t[n>>2]=t[o>>2]}function u7(e){e=e|0;var n=0,r=0,o=0;n=t[e+4>>2]|0,r=e+8|0,o=t[r>>2]|0,(o|0)!=(n|0)&&(t[r>>2]=o+(~(((o+-12-n|0)>>>0)/12|0)*12|0)),e=t[e>>2]|0,e|0&&Ve(e)}function Uw(e){e=e|0,f7(e)}function s7(e){e=e|0,l7(e+24|0)}function l7(e){e=e|0;var n=0,r=0,o=0;r=t[e>>2]|0,o=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~(((n+-12-o|0)>>>0)/12|0)*12|0)),Ve(r))}function f7(e){e=e|0;var n=0;n=An()|0,Nn(e,2,6,n,c7()|0,1),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function c7(){return 1364}function a7(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0,l=0,d=0;return o=h,h=h+16|0,s=o+8|0,l=o,d=d7(e)|0,e=t[d+4>>2]|0,t[l>>2]=t[d>>2],t[l+4>>2]=e,t[s>>2]=t[l>>2],t[s+4>>2]=t[l+4>>2],r=p7(n,s,r)|0,h=o,r|0}function d7(e){return e=e|0,(t[(E4()|0)+24>>2]|0)+(e*12|0)|0}function p7(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0,l=0;return l=h,h=h+16|0,s=l,o=t[n>>2]|0,n=t[n+4>>2]|0,e=e+(n>>1)|0,n&1&&(o=t[(t[e>>2]|0)+o>>2]|0),ts(s,r),s=ns(s,r)|0,s=ip(J4[o&15](e,s)|0)|0,h=l,s|0}function h7(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0,l=0,d=0,_=0;o=h,h=h+16|0,s=o+8|0,l=o,_=t[r>>2]|0,d=t[r+4>>2]|0,r=Zn(n)|0,t[l>>2]=_,t[l+4>>2]=d,t[s>>2]=t[l>>2],t[s+4>>2]=t[l+4>>2],m7(e,r,s,0),h=o}function m7(e,n,r,o){e=e|0,n=n|0,r=r|0,o=o|0;var s=0,l=0,d=0,_=0,y=0,k=0,T=0;s=h,h=h+32|0,l=s+16|0,T=s+8|0,_=s,k=t[r>>2]|0,y=t[r+4>>2]|0,d=t[e>>2]|0,e=S4()|0,t[T>>2]=k,t[T+4>>2]=y,t[l>>2]=t[T>>2],t[l+4>>2]=t[T+4>>2],r=v7(l)|0,t[_>>2]=k,t[_+4>>2]=y,t[l>>2]=t[_>>2],t[l+4>>2]=t[_+4>>2],ur(d,n,e,r,g7(l,o)|0,o),h=s}function S4(){var e=0,n=0;if(c[7848]|0||(zw(10136),Bt(49,10136,Q|0)|0,n=7848,t[n>>2]=1,t[n+4>>2]=0),!(Dn(10136)|0)){e=10136,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));zw(10136)}return 10136}function v7(e){return e=e|0,0}function g7(e,n){e=e|0,n=n|0;var r=0,o=0,s=0,l=0,d=0,_=0,y=0,k=0,T=0,P=0;return T=h,h=h+32|0,s=T+24|0,d=T+16|0,_=T,y=T+8|0,l=t[e>>2]|0,o=t[e+4>>2]|0,t[_>>2]=l,t[_+4>>2]=o,P=S4()|0,k=P+24|0,e=Lt(n,4)|0,t[y>>2]=e,n=P+28|0,r=t[n>>2]|0,r>>>0<(t[P+32>>2]|0)>>>0?(t[d>>2]=l,t[d+4>>2]=o,t[s>>2]=t[d>>2],t[s+4>>2]=t[d+4>>2],qw(r,s,e),e=(t[n>>2]|0)+12|0,t[n>>2]=e):(_7(k,_,y),e=t[n>>2]|0),h=T,((e-(t[k>>2]|0)|0)/12|0)+-1|0}function qw(e,n,r){e=e|0,n=n|0,r=r|0;var o=0;o=t[n+4>>2]|0,t[e>>2]=t[n>>2],t[e+4>>2]=o,t[e+8>>2]=r}function _7(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0,l=0,d=0,_=0,y=0,k=0,T=0,P=0,q=0;if(k=h,h=h+48|0,o=k+32|0,d=k+24|0,_=k,y=e+4|0,s=(((t[y>>2]|0)-(t[e>>2]|0)|0)/12|0)+1|0,l=y7(e)|0,l>>>0>>0)$n(e);else{T=t[e>>2]|0,q=((t[e+8>>2]|0)-T|0)/12|0,P=q<<1,w7(_,q>>>0>>1>>>0?P>>>0>>0?s:P:l,((t[y>>2]|0)-T|0)/12|0,e+8|0),y=_+8|0,l=t[y>>2]|0,s=t[n+4>>2]|0,r=t[r>>2]|0,t[d>>2]=t[n>>2],t[d+4>>2]=s,t[o>>2]=t[d>>2],t[o+4>>2]=t[d+4>>2],qw(l,o,r),t[y>>2]=(t[y>>2]|0)+12,D7(e,_),E7(_),h=k;return}}function y7(e){return e=e|0,357913941}function w7(e,n,r,o){e=e|0,n=n|0,r=r|0,o=o|0;var s=0;t[e+12>>2]=0,t[e+16>>2]=o;do if(n)if(n>>>0>357913941)_n();else{s=Tt(n*12|0)|0;break}else s=0;while(0);t[e>>2]=s,o=s+(r*12|0)|0,t[e+8>>2]=o,t[e+4>>2]=o,t[e+12>>2]=s+(n*12|0)}function D7(e,n){e=e|0,n=n|0;var r=0,o=0,s=0,l=0,d=0;o=t[e>>2]|0,d=e+4|0,l=n+4|0,s=(t[d>>2]|0)-o|0,r=(t[l>>2]|0)+(((s|0)/-12|0)*12|0)|0,t[l>>2]=r,(s|0)>0?(vn(r|0,o|0,s|0)|0,o=l,r=t[l>>2]|0):o=l,l=t[e>>2]|0,t[e>>2]=r,t[o>>2]=l,l=n+8|0,s=t[d>>2]|0,t[d>>2]=t[l>>2],t[l>>2]=s,l=e+8|0,d=n+12|0,e=t[l>>2]|0,t[l>>2]=t[d>>2],t[d>>2]=e,t[n>>2]=t[o>>2]}function E7(e){e=e|0;var n=0,r=0,o=0;n=t[e+4>>2]|0,r=e+8|0,o=t[r>>2]|0,(o|0)!=(n|0)&&(t[r>>2]=o+(~(((o+-12-n|0)>>>0)/12|0)*12|0)),e=t[e>>2]|0,e|0&&Ve(e)}function zw(e){e=e|0,T7(e)}function S7(e){e=e|0,C7(e+24|0)}function C7(e){e=e|0;var n=0,r=0,o=0;r=t[e>>2]|0,o=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~(((n+-12-o|0)>>>0)/12|0)*12|0)),Ve(r))}function T7(e){e=e|0;var n=0;n=An()|0,Nn(e,2,9,n,x7()|0,1),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function x7(){return 1372}function k7(e,n,r){e=e|0,n=n|0,r=+r;var o=0,s=0,l=0,d=0;o=h,h=h+16|0,s=o+8|0,l=o,d=A7(e)|0,e=t[d+4>>2]|0,t[l>>2]=t[d>>2],t[l+4>>2]=e,t[s>>2]=t[l>>2],t[s+4>>2]=t[l+4>>2],O7(n,s,r),h=o}function A7(e){return e=e|0,(t[(S4()|0)+24>>2]|0)+(e*12|0)|0}function O7(e,n,r){e=e|0,n=n|0,r=+r;var o=0,s=0,l=0,d=tt;l=h,h=h+16|0,s=l,o=t[n>>2]|0,n=t[n+4>>2]|0,e=e+(n>>1)|0,n&1&&(o=t[(t[e>>2]|0)+o>>2]|0),I7(s,r),d=w(P7(s,r)),tD[o&1](e,d),h=l}function I7(e,n){e=e|0,n=+n}function P7(e,n){return e=e|0,n=+n,w(M7(n))}function M7(e){return e=+e,w(e)}function F7(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0,l=0,d=0,_=0;o=h,h=h+16|0,s=o+8|0,l=o,_=t[r>>2]|0,d=t[r+4>>2]|0,r=Zn(n)|0,t[l>>2]=_,t[l+4>>2]=d,t[s>>2]=t[l>>2],t[s+4>>2]=t[l+4>>2],L7(e,r,s,0),h=o}function L7(e,n,r,o){e=e|0,n=n|0,r=r|0,o=o|0;var s=0,l=0,d=0,_=0,y=0,k=0,T=0;s=h,h=h+32|0,l=s+16|0,T=s+8|0,_=s,k=t[r>>2]|0,y=t[r+4>>2]|0,d=t[e>>2]|0,e=C4()|0,t[T>>2]=k,t[T+4>>2]=y,t[l>>2]=t[T>>2],t[l+4>>2]=t[T+4>>2],r=R7(l)|0,t[_>>2]=k,t[_+4>>2]=y,t[l>>2]=t[_>>2],t[l+4>>2]=t[_+4>>2],ur(d,n,e,r,N7(l,o)|0,o),h=s}function C4(){var e=0,n=0;if(c[7856]|0||(Hw(10172),Bt(50,10172,Q|0)|0,n=7856,t[n>>2]=1,t[n+4>>2]=0),!(Dn(10172)|0)){e=10172,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));Hw(10172)}return 10172}function R7(e){return e=e|0,0}function N7(e,n){e=e|0,n=n|0;var r=0,o=0,s=0,l=0,d=0,_=0,y=0,k=0,T=0,P=0;return T=h,h=h+32|0,s=T+24|0,d=T+16|0,_=T,y=T+8|0,l=t[e>>2]|0,o=t[e+4>>2]|0,t[_>>2]=l,t[_+4>>2]=o,P=C4()|0,k=P+24|0,e=Lt(n,4)|0,t[y>>2]=e,n=P+28|0,r=t[n>>2]|0,r>>>0<(t[P+32>>2]|0)>>>0?(t[d>>2]=l,t[d+4>>2]=o,t[s>>2]=t[d>>2],t[s+4>>2]=t[d+4>>2],Ww(r,s,e),e=(t[n>>2]|0)+12|0,t[n>>2]=e):(B7(k,_,y),e=t[n>>2]|0),h=T,((e-(t[k>>2]|0)|0)/12|0)+-1|0}function Ww(e,n,r){e=e|0,n=n|0,r=r|0;var o=0;o=t[n+4>>2]|0,t[e>>2]=t[n>>2],t[e+4>>2]=o,t[e+8>>2]=r}function B7(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0,l=0,d=0,_=0,y=0,k=0,T=0,P=0,q=0;if(k=h,h=h+48|0,o=k+32|0,d=k+24|0,_=k,y=e+4|0,s=(((t[y>>2]|0)-(t[e>>2]|0)|0)/12|0)+1|0,l=j7(e)|0,l>>>0>>0)$n(e);else{T=t[e>>2]|0,q=((t[e+8>>2]|0)-T|0)/12|0,P=q<<1,U7(_,q>>>0>>1>>>0?P>>>0>>0?s:P:l,((t[y>>2]|0)-T|0)/12|0,e+8|0),y=_+8|0,l=t[y>>2]|0,s=t[n+4>>2]|0,r=t[r>>2]|0,t[d>>2]=t[n>>2],t[d+4>>2]=s,t[o>>2]=t[d>>2],t[o+4>>2]=t[d+4>>2],Ww(l,o,r),t[y>>2]=(t[y>>2]|0)+12,q7(e,_),z7(_),h=k;return}}function j7(e){return e=e|0,357913941}function U7(e,n,r,o){e=e|0,n=n|0,r=r|0,o=o|0;var s=0;t[e+12>>2]=0,t[e+16>>2]=o;do if(n)if(n>>>0>357913941)_n();else{s=Tt(n*12|0)|0;break}else s=0;while(0);t[e>>2]=s,o=s+(r*12|0)|0,t[e+8>>2]=o,t[e+4>>2]=o,t[e+12>>2]=s+(n*12|0)}function q7(e,n){e=e|0,n=n|0;var r=0,o=0,s=0,l=0,d=0;o=t[e>>2]|0,d=e+4|0,l=n+4|0,s=(t[d>>2]|0)-o|0,r=(t[l>>2]|0)+(((s|0)/-12|0)*12|0)|0,t[l>>2]=r,(s|0)>0?(vn(r|0,o|0,s|0)|0,o=l,r=t[l>>2]|0):o=l,l=t[e>>2]|0,t[e>>2]=r,t[o>>2]=l,l=n+8|0,s=t[d>>2]|0,t[d>>2]=t[l>>2],t[l>>2]=s,l=e+8|0,d=n+12|0,e=t[l>>2]|0,t[l>>2]=t[d>>2],t[d>>2]=e,t[n>>2]=t[o>>2]}function z7(e){e=e|0;var n=0,r=0,o=0;n=t[e+4>>2]|0,r=e+8|0,o=t[r>>2]|0,(o|0)!=(n|0)&&(t[r>>2]=o+(~(((o+-12-n|0)>>>0)/12|0)*12|0)),e=t[e>>2]|0,e|0&&Ve(e)}function Hw(e){e=e|0,b7(e)}function W7(e){e=e|0,H7(e+24|0)}function H7(e){e=e|0;var n=0,r=0,o=0;r=t[e>>2]|0,o=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~(((n+-12-o|0)>>>0)/12|0)*12|0)),Ve(r))}function b7(e){e=e|0;var n=0;n=An()|0,Nn(e,2,3,n,G7()|0,2),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function G7(){return 1380}function V7(e,n,r,o){e=e|0,n=n|0,r=r|0,o=o|0;var s=0,l=0,d=0,_=0;s=h,h=h+16|0,l=s+8|0,d=s,_=Y7(e)|0,e=t[_+4>>2]|0,t[d>>2]=t[_>>2],t[d+4>>2]=e,t[l>>2]=t[d>>2],t[l+4>>2]=t[d+4>>2],$7(n,l,r,o),h=s}function Y7(e){return e=e|0,(t[(C4()|0)+24>>2]|0)+(e*12|0)|0}function $7(e,n,r,o){e=e|0,n=n|0,r=r|0,o=o|0;var s=0,l=0,d=0,_=0;_=h,h=h+16|0,l=_+1|0,d=_,s=t[n>>2]|0,n=t[n+4>>2]|0,e=e+(n>>1)|0,n&1&&(s=t[(t[e>>2]|0)+s>>2]|0),ts(l,r),l=ns(l,r)|0,K7(d,o),d=X7(d,o)|0,X1[s&15](e,l,d),h=_}function K7(e,n){e=e|0,n=n|0}function X7(e,n){return e=e|0,n=n|0,J7(n)|0}function J7(e){return e=e|0,(e|0)!=0|0}function Q7(e,n,r,o){e=e|0,n=n|0,r=r|0,o=o|0;var s=0,l=0;l=t[e>>2]|0,s=T4()|0,e=Z7(r)|0,ur(l,n,s,e,ek(r,o)|0,o)}function T4(){var e=0,n=0;if(c[7864]|0||(Gw(10208),Bt(51,10208,Q|0)|0,n=7864,t[n>>2]=1,t[n+4>>2]=0),!(Dn(10208)|0)){e=10208,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));Gw(10208)}return 10208}function Z7(e){return e=e|0,e|0}function ek(e,n){e=e|0,n=n|0;var r=0,o=0,s=0,l=0,d=0,_=0,y=0;return _=h,h=h+16|0,s=_,l=_+4|0,t[s>>2]=e,y=T4()|0,d=y+24|0,n=Lt(n,4)|0,t[l>>2]=n,r=y+28|0,o=t[r>>2]|0,o>>>0<(t[y+32>>2]|0)>>>0?(bw(o,e,n),n=(t[r>>2]|0)+8|0,t[r>>2]=n):(tk(d,s,l),n=t[r>>2]|0),h=_,(n-(t[d>>2]|0)>>3)+-1|0}function bw(e,n,r){e=e|0,n=n|0,r=r|0,t[e>>2]=n,t[e+4>>2]=r}function tk(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0,l=0,d=0,_=0,y=0,k=0,T=0;if(_=h,h=h+32|0,s=_,l=e+4|0,d=((t[l>>2]|0)-(t[e>>2]|0)>>3)+1|0,o=nk(e)|0,o>>>0>>0)$n(e);else{y=t[e>>2]|0,T=(t[e+8>>2]|0)-y|0,k=T>>2,rk(s,T>>3>>>0>>1>>>0?k>>>0>>0?d:k:o,(t[l>>2]|0)-y>>3,e+8|0),d=s+8|0,bw(t[d>>2]|0,t[n>>2]|0,t[r>>2]|0),t[d>>2]=(t[d>>2]|0)+8,ik(e,s),ok(s),h=_;return}}function nk(e){return e=e|0,536870911}function rk(e,n,r,o){e=e|0,n=n|0,r=r|0,o=o|0;var s=0;t[e+12>>2]=0,t[e+16>>2]=o;do if(n)if(n>>>0>536870911)_n();else{s=Tt(n<<3)|0;break}else s=0;while(0);t[e>>2]=s,o=s+(r<<3)|0,t[e+8>>2]=o,t[e+4>>2]=o,t[e+12>>2]=s+(n<<3)}function ik(e,n){e=e|0,n=n|0;var r=0,o=0,s=0,l=0,d=0;o=t[e>>2]|0,d=e+4|0,l=n+4|0,s=(t[d>>2]|0)-o|0,r=(t[l>>2]|0)+(0-(s>>3)<<3)|0,t[l>>2]=r,(s|0)>0?(vn(r|0,o|0,s|0)|0,o=l,r=t[l>>2]|0):o=l,l=t[e>>2]|0,t[e>>2]=r,t[o>>2]=l,l=n+8|0,s=t[d>>2]|0,t[d>>2]=t[l>>2],t[l>>2]=s,l=e+8|0,d=n+12|0,e=t[l>>2]|0,t[l>>2]=t[d>>2],t[d>>2]=e,t[n>>2]=t[o>>2]}function ok(e){e=e|0;var n=0,r=0,o=0;n=t[e+4>>2]|0,r=e+8|0,o=t[r>>2]|0,(o|0)!=(n|0)&&(t[r>>2]=o+(~((o+-8-n|0)>>>3)<<3)),e=t[e>>2]|0,e|0&&Ve(e)}function Gw(e){e=e|0,lk(e)}function uk(e){e=e|0,sk(e+24|0)}function sk(e){e=e|0;var n=0,r=0,o=0;r=t[e>>2]|0,o=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~((n+-8-o|0)>>>3)<<3)),Ve(r))}function lk(e){e=e|0;var n=0;n=An()|0,Nn(e,1,24,n,fk()|0,1),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function fk(){return 1392}function ck(e,n){e=e|0,n=n|0,dk(t[(ak(e)|0)>>2]|0,n)}function ak(e){return e=e|0,(t[(T4()|0)+24>>2]|0)+(e<<3)|0}function dk(e,n){e=e|0,n=n|0;var r=0,o=0;r=h,h=h+16|0,o=r,Lw(o,n),n=Rw(o,n)|0,Nl[e&127](n),h=r}function pk(e,n,r,o){e=e|0,n=n|0,r=r|0,o=o|0;var s=0,l=0;l=t[e>>2]|0,s=x4()|0,e=hk(r)|0,ur(l,n,s,e,mk(r,o)|0,o)}function x4(){var e=0,n=0;if(c[7872]|0||(Yw(10244),Bt(52,10244,Q|0)|0,n=7872,t[n>>2]=1,t[n+4>>2]=0),!(Dn(10244)|0)){e=10244,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));Yw(10244)}return 10244}function hk(e){return e=e|0,e|0}function mk(e,n){e=e|0,n=n|0;var r=0,o=0,s=0,l=0,d=0,_=0,y=0;return _=h,h=h+16|0,s=_,l=_+4|0,t[s>>2]=e,y=x4()|0,d=y+24|0,n=Lt(n,4)|0,t[l>>2]=n,r=y+28|0,o=t[r>>2]|0,o>>>0<(t[y+32>>2]|0)>>>0?(Vw(o,e,n),n=(t[r>>2]|0)+8|0,t[r>>2]=n):(vk(d,s,l),n=t[r>>2]|0),h=_,(n-(t[d>>2]|0)>>3)+-1|0}function Vw(e,n,r){e=e|0,n=n|0,r=r|0,t[e>>2]=n,t[e+4>>2]=r}function vk(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0,l=0,d=0,_=0,y=0,k=0,T=0;if(_=h,h=h+32|0,s=_,l=e+4|0,d=((t[l>>2]|0)-(t[e>>2]|0)>>3)+1|0,o=gk(e)|0,o>>>0>>0)$n(e);else{y=t[e>>2]|0,T=(t[e+8>>2]|0)-y|0,k=T>>2,_k(s,T>>3>>>0>>1>>>0?k>>>0>>0?d:k:o,(t[l>>2]|0)-y>>3,e+8|0),d=s+8|0,Vw(t[d>>2]|0,t[n>>2]|0,t[r>>2]|0),t[d>>2]=(t[d>>2]|0)+8,yk(e,s),wk(s),h=_;return}}function gk(e){return e=e|0,536870911}function _k(e,n,r,o){e=e|0,n=n|0,r=r|0,o=o|0;var s=0;t[e+12>>2]=0,t[e+16>>2]=o;do if(n)if(n>>>0>536870911)_n();else{s=Tt(n<<3)|0;break}else s=0;while(0);t[e>>2]=s,o=s+(r<<3)|0,t[e+8>>2]=o,t[e+4>>2]=o,t[e+12>>2]=s+(n<<3)}function yk(e,n){e=e|0,n=n|0;var r=0,o=0,s=0,l=0,d=0;o=t[e>>2]|0,d=e+4|0,l=n+4|0,s=(t[d>>2]|0)-o|0,r=(t[l>>2]|0)+(0-(s>>3)<<3)|0,t[l>>2]=r,(s|0)>0?(vn(r|0,o|0,s|0)|0,o=l,r=t[l>>2]|0):o=l,l=t[e>>2]|0,t[e>>2]=r,t[o>>2]=l,l=n+8|0,s=t[d>>2]|0,t[d>>2]=t[l>>2],t[l>>2]=s,l=e+8|0,d=n+12|0,e=t[l>>2]|0,t[l>>2]=t[d>>2],t[d>>2]=e,t[n>>2]=t[o>>2]}function wk(e){e=e|0;var n=0,r=0,o=0;n=t[e+4>>2]|0,r=e+8|0,o=t[r>>2]|0,(o|0)!=(n|0)&&(t[r>>2]=o+(~((o+-8-n|0)>>>3)<<3)),e=t[e>>2]|0,e|0&&Ve(e)}function Yw(e){e=e|0,Sk(e)}function Dk(e){e=e|0,Ek(e+24|0)}function Ek(e){e=e|0;var n=0,r=0,o=0;r=t[e>>2]|0,o=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~((n+-8-o|0)>>>3)<<3)),Ve(r))}function Sk(e){e=e|0;var n=0;n=An()|0,Nn(e,1,16,n,Ck()|0,0),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function Ck(){return 1400}function Tk(e){return e=e|0,kk(t[(xk(e)|0)>>2]|0)|0}function xk(e){return e=e|0,(t[(x4()|0)+24>>2]|0)+(e<<3)|0}function kk(e){return e=e|0,Ak(ph[e&7]()|0)|0}function Ak(e){return e=e|0,e|0}function Ok(){var e=0;return c[7880]|0||(Nk(10280),Bt(25,10280,Q|0)|0,e=7880,t[e>>2]=1,t[e+4>>2]=0),10280}function Ik(e,n){e=e|0,n=n|0,t[e>>2]=Pk()|0,t[e+4>>2]=Mk()|0,t[e+12>>2]=n,t[e+8>>2]=Fk()|0,t[e+32>>2]=4}function Pk(){return 11711}function Mk(){return 1356}function Fk(){return eh()|0}function Lk(e,n,r,o){e=e|0,n=n|0,r=r|0,o=o|0,(Sf(o,896)|0)==512?r|0&&(Rk(r),Ve(r)):n|0&&(Gi(n),Ve(n))}function Rk(e){e=e|0,e=t[e+4>>2]|0,e|0&&Tf(e)}function Nk(e){e=e|0,Ys(e)}function Bk(e){e=e|0,jk(e,4920),Uk(e)|0,qk(e)|0}function jk(e,n){e=e|0,n=n|0;var r=0;r=Up()|0,t[e>>2]=r,sA(r,n),Cf(t[e>>2]|0)}function Uk(e){e=e|0;var n=0;return n=t[e>>2]|0,uc(n,Jk()|0),e|0}function qk(e){e=e|0;var n=0;return n=t[e>>2]|0,uc(n,zk()|0),e|0}function zk(){var e=0;return c[7888]|0||($w(10328),Bt(53,10328,Q|0)|0,e=7888,t[e>>2]=1,t[e+4>>2]=0),Dn(10328)|0||$w(10328),10328}function uc(e,n){e=e|0,n=n|0,ur(e,0,n,0,0,0)}function $w(e){e=e|0,bk(e),sc(e,10)}function Wk(e){e=e|0,Hk(e+24|0)}function Hk(e){e=e|0;var n=0,r=0,o=0;r=t[e>>2]|0,o=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~((n+-8-o|0)>>>3)<<3)),Ve(r))}function bk(e){e=e|0;var n=0;n=An()|0,Nn(e,5,1,n,$k()|0,2),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function Gk(e,n,r){e=e|0,n=n|0,r=+r,Vk(e,n,r)}function sc(e,n){e=e|0,n=n|0,t[e+20>>2]=n}function Vk(e,n,r){e=e|0,n=n|0,r=+r;var o=0,s=0,l=0,d=0,_=0;o=h,h=h+16|0,l=o+8|0,_=o+13|0,s=o,d=o+12|0,ts(_,n),t[l>>2]=ns(_,n)|0,wu(d,r),L[s>>3]=+Du(d,r),Yk(e,l,s),h=o}function Yk(e,n,r){e=e|0,n=n|0,r=r|0,M(e+8|0,t[n>>2]|0,+L[r>>3]),c[e+24>>0]=1}function $k(){return 1404}function Kk(e,n){return e=e|0,n=+n,Xk(e,n)|0}function Xk(e,n){e=e|0,n=+n;var r=0,o=0,s=0,l=0,d=0,_=0,y=0;return o=h,h=h+16|0,l=o+4|0,d=o+8|0,_=o,s=Qo(8)|0,r=s,y=Tt(16)|0,ts(l,e),e=ns(l,e)|0,wu(d,n),M(y,e,+Du(d,n)),d=r+4|0,t[d>>2]=y,e=Tt(8)|0,d=t[d>>2]|0,t[_>>2]=0,t[l>>2]=t[_>>2],P1(e,d,l),t[s>>2]=e,h=o,r|0}function Jk(){var e=0;return c[7896]|0||(Kw(10364),Bt(54,10364,Q|0)|0,e=7896,t[e>>2]=1,t[e+4>>2]=0),Dn(10364)|0||Kw(10364),10364}function Kw(e){e=e|0,eA(e),sc(e,55)}function Qk(e){e=e|0,Zk(e+24|0)}function Zk(e){e=e|0;var n=0,r=0,o=0;r=t[e>>2]|0,o=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~((n+-8-o|0)>>>3)<<3)),Ve(r))}function eA(e){e=e|0;var n=0;n=An()|0,Nn(e,5,4,n,iA()|0,0),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function tA(e){e=e|0,nA(e)}function nA(e){e=e|0,rA(e)}function rA(e){e=e|0,Xw(e+8|0),c[e+24>>0]=1}function Xw(e){e=e|0,t[e>>2]=0,L[e+8>>3]=0}function iA(){return 1424}function oA(){return uA()|0}function uA(){var e=0,n=0,r=0,o=0,s=0,l=0,d=0;return n=h,h=h+16|0,s=n+4|0,d=n,r=Qo(8)|0,e=r,o=Tt(16)|0,Xw(o),l=e+4|0,t[l>>2]=o,o=Tt(8)|0,l=t[l>>2]|0,t[d>>2]=0,t[s>>2]=t[d>>2],P1(o,l,s),t[r>>2]=o,h=n,e|0}function sA(e,n){e=e|0,n=n|0,t[e>>2]=lA()|0,t[e+4>>2]=fA()|0,t[e+12>>2]=n,t[e+8>>2]=cA()|0,t[e+32>>2]=5}function lA(){return 11710}function fA(){return 1416}function cA(){return th()|0}function aA(e,n,r,o){e=e|0,n=n|0,r=r|0,o=o|0,(Sf(o,896)|0)==512?r|0&&(dA(r),Ve(r)):n|0&&Ve(n)}function dA(e){e=e|0,e=t[e+4>>2]|0,e|0&&Tf(e)}function th(){var e=0;return c[7904]|0||(t[2600]=pA()|0,t[2601]=0,e=7904,t[e>>2]=1,t[e+4>>2]=0),10400}function pA(){return t[357]|0}function hA(e){e=e|0,mA(e,4926),vA(e)|0}function mA(e,n){e=e|0,n=n|0;var r=0;r=u1()|0,t[e>>2]=r,kA(r,n),Cf(t[e>>2]|0)}function vA(e){e=e|0;var n=0;return n=t[e>>2]|0,uc(n,gA()|0),e|0}function gA(){var e=0;return c[7912]|0||(Jw(10412),Bt(56,10412,Q|0)|0,e=7912,t[e>>2]=1,t[e+4>>2]=0),Dn(10412)|0||Jw(10412),10412}function Jw(e){e=e|0,wA(e),sc(e,57)}function _A(e){e=e|0,yA(e+24|0)}function yA(e){e=e|0;var n=0,r=0,o=0;r=t[e>>2]|0,o=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~((n+-8-o|0)>>>3)<<3)),Ve(r))}function wA(e){e=e|0;var n=0;n=An()|0,Nn(e,5,5,n,CA()|0,0),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function DA(e){e=e|0,EA(e)}function EA(e){e=e|0,SA(e)}function SA(e){e=e|0;var n=0,r=0;n=e+8|0,r=n+48|0;do t[n>>2]=0,n=n+4|0;while((n|0)<(r|0));c[e+56>>0]=1}function CA(){return 1432}function TA(){return xA()|0}function xA(){var e=0,n=0,r=0,o=0,s=0,l=0,d=0,_=0;d=h,h=h+16|0,e=d+4|0,n=d,r=Qo(8)|0,o=r,s=Tt(48)|0,l=s,_=l+48|0;do t[l>>2]=0,l=l+4|0;while((l|0)<(_|0));return l=o+4|0,t[l>>2]=s,_=Tt(8)|0,l=t[l>>2]|0,t[n>>2]=0,t[e>>2]=t[n>>2],Wd(_,l,e),t[r>>2]=_,h=d,o|0}function kA(e,n){e=e|0,n=n|0,t[e>>2]=AA()|0,t[e+4>>2]=OA()|0,t[e+12>>2]=n,t[e+8>>2]=IA()|0,t[e+32>>2]=6}function AA(){return 11704}function OA(){return 1436}function IA(){return th()|0}function PA(e,n,r,o){e=e|0,n=n|0,r=r|0,o=o|0,(Sf(o,896)|0)==512?r|0&&(MA(r),Ve(r)):n|0&&Ve(n)}function MA(e){e=e|0,e=t[e+4>>2]|0,e|0&&Tf(e)}function FA(e){e=e|0,LA(e,4933),RA(e)|0,NA(e)|0}function LA(e,n){e=e|0,n=n|0;var r=0;r=uO()|0,t[e>>2]=r,sO(r,n),Cf(t[e>>2]|0)}function RA(e){e=e|0;var n=0;return n=t[e>>2]|0,uc(n,XA()|0),e|0}function NA(e){e=e|0;var n=0;return n=t[e>>2]|0,uc(n,BA()|0),e|0}function BA(){var e=0;return c[7920]|0||(Qw(10452),Bt(58,10452,Q|0)|0,e=7920,t[e>>2]=1,t[e+4>>2]=0),Dn(10452)|0||Qw(10452),10452}function Qw(e){e=e|0,qA(e),sc(e,1)}function jA(e){e=e|0,UA(e+24|0)}function UA(e){e=e|0;var n=0,r=0,o=0;r=t[e>>2]|0,o=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~((n+-8-o|0)>>>3)<<3)),Ve(r))}function qA(e){e=e|0;var n=0;n=An()|0,Nn(e,5,1,n,bA()|0,2),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function zA(e,n,r){e=e|0,n=+n,r=+r,WA(e,n,r)}function WA(e,n,r){e=e|0,n=+n,r=+r;var o=0,s=0,l=0,d=0,_=0;o=h,h=h+32|0,l=o+8|0,_=o+17|0,s=o,d=o+16|0,wu(_,n),L[l>>3]=+Du(_,n),wu(d,r),L[s>>3]=+Du(d,r),HA(e,l,s),h=o}function HA(e,n,r){e=e|0,n=n|0,r=r|0,Zw(e+8|0,+L[n>>3],+L[r>>3]),c[e+24>>0]=1}function Zw(e,n,r){e=e|0,n=+n,r=+r,L[e>>3]=n,L[e+8>>3]=r}function bA(){return 1472}function GA(e,n){return e=+e,n=+n,VA(e,n)|0}function VA(e,n){e=+e,n=+n;var r=0,o=0,s=0,l=0,d=0,_=0,y=0;return o=h,h=h+16|0,d=o+4|0,_=o+8|0,y=o,s=Qo(8)|0,r=s,l=Tt(16)|0,wu(d,e),e=+Du(d,e),wu(_,n),Zw(l,e,+Du(_,n)),_=r+4|0,t[_>>2]=l,l=Tt(8)|0,_=t[_>>2]|0,t[y>>2]=0,t[d>>2]=t[y>>2],e8(l,_,d),t[s>>2]=l,h=o,r|0}function e8(e,n,r){e=e|0,n=n|0,r=r|0,t[e>>2]=n,r=Tt(16)|0,t[r+4>>2]=0,t[r+8>>2]=0,t[r>>2]=1452,t[r+12>>2]=n,t[e+4>>2]=r}function YA(e){e=e|0,da(e),Ve(e)}function $A(e){e=e|0,e=t[e+12>>2]|0,e|0&&Ve(e)}function KA(e){e=e|0,Ve(e)}function XA(){var e=0;return c[7928]|0||(t8(10488),Bt(59,10488,Q|0)|0,e=7928,t[e>>2]=1,t[e+4>>2]=0),Dn(10488)|0||t8(10488),10488}function t8(e){e=e|0,ZA(e),sc(e,60)}function JA(e){e=e|0,QA(e+24|0)}function QA(e){e=e|0;var n=0,r=0,o=0;r=t[e>>2]|0,o=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~((n+-8-o|0)>>>3)<<3)),Ve(r))}function ZA(e){e=e|0;var n=0;n=An()|0,Nn(e,5,6,n,rO()|0,0),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function eO(e){e=e|0,tO(e)}function tO(e){e=e|0,nO(e)}function nO(e){e=e|0,n8(e+8|0),c[e+24>>0]=1}function n8(e){e=e|0,t[e>>2]=0,t[e+4>>2]=0,t[e+8>>2]=0,t[e+12>>2]=0}function rO(){return 1492}function iO(){return oO()|0}function oO(){var e=0,n=0,r=0,o=0,s=0,l=0,d=0;return n=h,h=h+16|0,s=n+4|0,d=n,r=Qo(8)|0,e=r,o=Tt(16)|0,n8(o),l=e+4|0,t[l>>2]=o,o=Tt(8)|0,l=t[l>>2]|0,t[d>>2]=0,t[s>>2]=t[d>>2],e8(o,l,s),t[r>>2]=o,h=n,e|0}function uO(){var e=0;return c[7936]|0||(pO(10524),Bt(25,10524,Q|0)|0,e=7936,t[e>>2]=1,t[e+4>>2]=0),10524}function sO(e,n){e=e|0,n=n|0,t[e>>2]=lO()|0,t[e+4>>2]=fO()|0,t[e+12>>2]=n,t[e+8>>2]=cO()|0,t[e+32>>2]=7}function lO(){return 11700}function fO(){return 1484}function cO(){return th()|0}function aO(e,n,r,o){e=e|0,n=n|0,r=r|0,o=o|0,(Sf(o,896)|0)==512?r|0&&(dO(r),Ve(r)):n|0&&Ve(n)}function dO(e){e=e|0,e=t[e+4>>2]|0,e|0&&Tf(e)}function pO(e){e=e|0,Ys(e)}function hO(e,n,r){e=e|0,n=n|0,r=r|0,e=Zn(n)|0,n=mO(r)|0,r=vO(r,0)|0,VO(e,n,r,k4()|0,0)}function mO(e){return e=e|0,e|0}function vO(e,n){e=e|0,n=n|0;var r=0,o=0,s=0,l=0,d=0,_=0,y=0;return _=h,h=h+16|0,s=_,l=_+4|0,t[s>>2]=e,y=k4()|0,d=y+24|0,n=Lt(n,4)|0,t[l>>2]=n,r=y+28|0,o=t[r>>2]|0,o>>>0<(t[y+32>>2]|0)>>>0?(i8(o,e,n),n=(t[r>>2]|0)+8|0,t[r>>2]=n):(SO(d,s,l),n=t[r>>2]|0),h=_,(n-(t[d>>2]|0)>>3)+-1|0}function k4(){var e=0,n=0;if(c[7944]|0||(r8(10568),Bt(61,10568,Q|0)|0,n=7944,t[n>>2]=1,t[n+4>>2]=0),!(Dn(10568)|0)){e=10568,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));r8(10568)}return 10568}function r8(e){e=e|0,yO(e)}function gO(e){e=e|0,_O(e+24|0)}function _O(e){e=e|0;var n=0,r=0,o=0;r=t[e>>2]|0,o=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~((n+-8-o|0)>>>3)<<3)),Ve(r))}function yO(e){e=e|0;var n=0;n=An()|0,Nn(e,1,17,n,Dp()|0,0),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function wO(e){return e=e|0,EO(t[(DO(e)|0)>>2]|0)|0}function DO(e){return e=e|0,(t[(k4()|0)+24>>2]|0)+(e<<3)|0}function EO(e){return e=e|0,ea(ph[e&7]()|0)|0}function i8(e,n,r){e=e|0,n=n|0,r=r|0,t[e>>2]=n,t[e+4>>2]=r}function SO(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0,l=0,d=0,_=0,y=0,k=0,T=0;if(_=h,h=h+32|0,s=_,l=e+4|0,d=((t[l>>2]|0)-(t[e>>2]|0)>>3)+1|0,o=CO(e)|0,o>>>0>>0)$n(e);else{y=t[e>>2]|0,T=(t[e+8>>2]|0)-y|0,k=T>>2,TO(s,T>>3>>>0>>1>>>0?k>>>0>>0?d:k:o,(t[l>>2]|0)-y>>3,e+8|0),d=s+8|0,i8(t[d>>2]|0,t[n>>2]|0,t[r>>2]|0),t[d>>2]=(t[d>>2]|0)+8,xO(e,s),kO(s),h=_;return}}function CO(e){return e=e|0,536870911}function TO(e,n,r,o){e=e|0,n=n|0,r=r|0,o=o|0;var s=0;t[e+12>>2]=0,t[e+16>>2]=o;do if(n)if(n>>>0>536870911)_n();else{s=Tt(n<<3)|0;break}else s=0;while(0);t[e>>2]=s,o=s+(r<<3)|0,t[e+8>>2]=o,t[e+4>>2]=o,t[e+12>>2]=s+(n<<3)}function xO(e,n){e=e|0,n=n|0;var r=0,o=0,s=0,l=0,d=0;o=t[e>>2]|0,d=e+4|0,l=n+4|0,s=(t[d>>2]|0)-o|0,r=(t[l>>2]|0)+(0-(s>>3)<<3)|0,t[l>>2]=r,(s|0)>0?(vn(r|0,o|0,s|0)|0,o=l,r=t[l>>2]|0):o=l,l=t[e>>2]|0,t[e>>2]=r,t[o>>2]=l,l=n+8|0,s=t[d>>2]|0,t[d>>2]=t[l>>2],t[l>>2]=s,l=e+8|0,d=n+12|0,e=t[l>>2]|0,t[l>>2]=t[d>>2],t[d>>2]=e,t[n>>2]=t[o>>2]}function kO(e){e=e|0;var n=0,r=0,o=0;n=t[e+4>>2]|0,r=e+8|0,o=t[r>>2]|0,(o|0)!=(n|0)&&(t[r>>2]=o+(~((o+-8-n|0)>>>3)<<3)),e=t[e>>2]|0,e|0&&Ve(e)}function AO(){OO()}function OO(){IO(10604)}function IO(e){e=e|0,PO(e,4955)}function PO(e,n){e=e|0,n=n|0;var r=0;r=MO()|0,t[e>>2]=r,FO(r,n),Cf(t[e>>2]|0)}function MO(){var e=0;return c[7952]|0||(WO(10612),Bt(25,10612,Q|0)|0,e=7952,t[e>>2]=1,t[e+4>>2]=0),10612}function FO(e,n){e=e|0,n=n|0,t[e>>2]=BO()|0,t[e+4>>2]=jO()|0,t[e+12>>2]=n,t[e+8>>2]=UO()|0,t[e+32>>2]=8}function Cf(e){e=e|0;var n=0,r=0;n=h,h=h+16|0,r=n,sa()|0,t[r>>2]=e,LO(10608,r),h=n}function sa(){return c[11714]|0||(t[2652]=0,Bt(62,10608,Q|0)|0,c[11714]=1),10608}function LO(e,n){e=e|0,n=n|0;var r=0;r=Tt(8)|0,t[r+4>>2]=t[n>>2],t[r>>2]=t[e>>2],t[e>>2]=r}function RO(e){e=e|0,NO(e)}function NO(e){e=e|0;var n=0,r=0;if(n=t[e>>2]|0,n|0)do r=n,n=t[n>>2]|0,Ve(r);while((n|0)!=0);t[e>>2]=0}function BO(){return 11715}function jO(){return 1496}function UO(){return eh()|0}function qO(e,n,r,o){e=e|0,n=n|0,r=r|0,o=o|0,(Sf(o,896)|0)==512?r|0&&(zO(r),Ve(r)):n|0&&Ve(n)}function zO(e){e=e|0,e=t[e+4>>2]|0,e|0&&Tf(e)}function WO(e){e=e|0,Ys(e)}function HO(e,n){e=e|0,n=n|0;var r=0,o=0;sa()|0,r=t[2652]|0;e:do if(r|0){for(;o=t[r+4>>2]|0,!(o|0?(U8(A4(o)|0,e)|0)==0:0);)if(r=t[r>>2]|0,!r)break e;bO(o,n)}while(0)}function A4(e){return e=e|0,t[e+12>>2]|0}function bO(e,n){e=e|0,n=n|0;var r=0;e=e+36|0,r=t[e>>2]|0,r|0&&(Ju(r),Ve(r)),r=Tt(4)|0,ba(r,n),t[e>>2]=r}function O4(){return c[11716]|0||(t[2664]=0,Bt(63,10656,Q|0)|0,c[11716]=1),10656}function o8(){var e=0;return c[11717]|0?e=t[2665]|0:(GO(),t[2665]=1504,c[11717]=1,e=1504),e|0}function GO(){c[11740]|0||(c[11718]=Lt(Lt(8,0)|0,0)|0,c[11719]=Lt(Lt(0,0)|0,0)|0,c[11720]=Lt(Lt(0,16)|0,0)|0,c[11721]=Lt(Lt(8,0)|0,0)|0,c[11722]=Lt(Lt(0,0)|0,0)|0,c[11723]=Lt(Lt(8,0)|0,0)|0,c[11724]=Lt(Lt(0,0)|0,0)|0,c[11725]=Lt(Lt(8,0)|0,0)|0,c[11726]=Lt(Lt(0,0)|0,0)|0,c[11727]=Lt(Lt(8,0)|0,0)|0,c[11728]=Lt(Lt(0,0)|0,0)|0,c[11729]=Lt(Lt(0,0)|0,32)|0,c[11730]=Lt(Lt(0,0)|0,32)|0,c[11740]=1)}function u8(){return 1572}function VO(e,n,r,o,s){e=e|0,n=n|0,r=r|0,o=o|0,s=s|0;var l=0,d=0,_=0,y=0,k=0,T=0;l=h,h=h+32|0,T=l+16|0,k=l+12|0,y=l+8|0,_=l+4|0,d=l,t[T>>2]=e,t[k>>2]=n,t[y>>2]=r,t[_>>2]=o,t[d>>2]=s,O4()|0,YO(10656,T,k,y,_,d),h=l}function YO(e,n,r,o,s,l){e=e|0,n=n|0,r=r|0,o=o|0,s=s|0,l=l|0;var d=0;d=Tt(24)|0,t1(d+4|0,t[n>>2]|0,t[r>>2]|0,t[o>>2]|0,t[s>>2]|0,t[l>>2]|0),t[d>>2]=t[e>>2],t[e>>2]=d}function s8(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0,l=0,d=0,_=0,y=0,k=0,T=0,P=0,q=0,we=0,le=0,ie=0,Pe=0,ke=0,qe=0;if(qe=h,h=h+32|0,le=qe+20|0,ie=qe+8|0,Pe=qe+4|0,ke=qe,n=t[n>>2]|0,n|0){we=le+4|0,y=le+8|0,k=ie+4|0,T=ie+8|0,P=ie+8|0,q=le+8|0;do{if(d=n+4|0,_=I4(d)|0,_|0){if(s=b1(_)|0,t[le>>2]=0,t[we>>2]=0,t[y>>2]=0,o=(G1(_)|0)+1|0,$O(le,o),o|0)for(;o=o+-1|0,os(ie,t[s>>2]|0),l=t[we>>2]|0,l>>>0<(t[q>>2]|0)>>>0?(t[l>>2]=t[ie>>2],t[we>>2]=(t[we>>2]|0)+4):P4(le,ie),o;)s=s+4|0;o=V1(_)|0,t[ie>>2]=0,t[k>>2]=0,t[T>>2]=0;e:do if(t[o>>2]|0)for(s=0,l=0;;){if((s|0)==(l|0)?KO(ie,o):(t[s>>2]=t[o>>2],t[k>>2]=(t[k>>2]|0)+4),o=o+4|0,!(t[o>>2]|0))break e;s=t[k>>2]|0,l=t[P>>2]|0}while(0);t[Pe>>2]=nh(d)|0,t[ke>>2]=Dn(_)|0,XO(r,e,Pe,ke,le,ie),M4(ie),Rl(le)}n=t[n>>2]|0}while((n|0)!=0)}h=qe}function I4(e){return e=e|0,t[e+12>>2]|0}function b1(e){return e=e|0,t[e+12>>2]|0}function G1(e){return e=e|0,t[e+16>>2]|0}function $O(e,n){e=e|0,n=n|0;var r=0,o=0,s=0;s=h,h=h+32|0,r=s,o=t[e>>2]|0,(t[e+8>>2]|0)-o>>2>>>0>>0&&(m8(r,n,(t[e+4>>2]|0)-o>>2,e+8|0),v8(e,r),g8(r)),h=s}function P4(e,n){e=e|0,n=n|0;var r=0,o=0,s=0,l=0,d=0,_=0,y=0,k=0;if(d=h,h=h+32|0,r=d,o=e+4|0,s=((t[o>>2]|0)-(t[e>>2]|0)>>2)+1|0,l=h8(e)|0,l>>>0>>0)$n(e);else{_=t[e>>2]|0,k=(t[e+8>>2]|0)-_|0,y=k>>1,m8(r,k>>2>>>0>>1>>>0?y>>>0>>0?s:y:l,(t[o>>2]|0)-_>>2,e+8|0),l=r+8|0,t[t[l>>2]>>2]=t[n>>2],t[l>>2]=(t[l>>2]|0)+4,v8(e,r),g8(r),h=d;return}}function V1(e){return e=e|0,t[e+8>>2]|0}function KO(e,n){e=e|0,n=n|0;var r=0,o=0,s=0,l=0,d=0,_=0,y=0,k=0;if(d=h,h=h+32|0,r=d,o=e+4|0,s=((t[o>>2]|0)-(t[e>>2]|0)>>2)+1|0,l=p8(e)|0,l>>>0>>0)$n(e);else{_=t[e>>2]|0,k=(t[e+8>>2]|0)-_|0,y=k>>1,mI(r,k>>2>>>0>>1>>>0?y>>>0>>0?s:y:l,(t[o>>2]|0)-_>>2,e+8|0),l=r+8|0,t[t[l>>2]>>2]=t[n>>2],t[l>>2]=(t[l>>2]|0)+4,vI(e,r),gI(r),h=d;return}}function nh(e){return e=e|0,t[e>>2]|0}function XO(e,n,r,o,s,l){e=e|0,n=n|0,r=r|0,o=o|0,s=s|0,l=l|0,JO(e,n,r,o,s,l)}function M4(e){e=e|0;var n=0,r=0,o=0;r=t[e>>2]|0,o=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~((n+-4-o|0)>>>2)<<2)),Ve(r))}function Rl(e){e=e|0;var n=0,r=0,o=0;r=t[e>>2]|0,o=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~((n+-4-o|0)>>>2)<<2)),Ve(r))}function JO(e,n,r,o,s,l){e=e|0,n=n|0,r=r|0,o=o|0,s=s|0,l=l|0;var d=0,_=0,y=0,k=0,T=0,P=0;d=h,h=h+48|0,T=d+40|0,_=d+32|0,P=d+24|0,y=d+12|0,k=d,Zo(_),e=Oi(e)|0,t[P>>2]=t[n>>2],r=t[r>>2]|0,o=t[o>>2]|0,F4(y,s),QO(k,l),t[T>>2]=t[P>>2],ZO(e,T,r,o,y,k),M4(k),Rl(y),eu(_),h=d}function F4(e,n){e=e|0,n=n|0;var r=0,o=0;t[e>>2]=0,t[e+4>>2]=0,t[e+8>>2]=0,r=n+4|0,o=(t[r>>2]|0)-(t[n>>2]|0)>>2,o|0&&(pI(e,o),hI(e,t[n>>2]|0,t[r>>2]|0,o))}function QO(e,n){e=e|0,n=n|0;var r=0,o=0;t[e>>2]=0,t[e+4>>2]=0,t[e+8>>2]=0,r=n+4|0,o=(t[r>>2]|0)-(t[n>>2]|0)>>2,o|0&&(aI(e,o),dI(e,t[n>>2]|0,t[r>>2]|0,o))}function ZO(e,n,r,o,s,l){e=e|0,n=n|0,r=r|0,o=o|0,s=s|0,l=l|0;var d=0,_=0,y=0,k=0,T=0,P=0;d=h,h=h+32|0,T=d+28|0,P=d+24|0,_=d+12|0,y=d,k=ko(eI()|0)|0,t[P>>2]=t[n>>2],t[T>>2]=t[P>>2],n=lc(T)|0,r=l8(r)|0,o=L4(o)|0,t[_>>2]=t[s>>2],T=s+4|0,t[_+4>>2]=t[T>>2],P=s+8|0,t[_+8>>2]=t[P>>2],t[P>>2]=0,t[T>>2]=0,t[s>>2]=0,s=R4(_)|0,t[y>>2]=t[l>>2],T=l+4|0,t[y+4>>2]=t[T>>2],P=l+8|0,t[y+8>>2]=t[P>>2],t[P>>2]=0,t[T>>2]=0,t[l>>2]=0,qo(0,k|0,e|0,n|0,r|0,o|0,s|0,tI(y)|0)|0,M4(y),Rl(_),h=d}function eI(){var e=0;return c[7968]|0||(fI(10708),e=7968,t[e>>2]=1,t[e+4>>2]=0),10708}function lc(e){return e=e|0,c8(e)|0}function l8(e){return e=e|0,f8(e)|0}function L4(e){return e=e|0,ea(e)|0}function R4(e){return e=e|0,rI(e)|0}function tI(e){return e=e|0,nI(e)|0}function nI(e){e=e|0;var n=0,r=0,o=0;if(o=(t[e+4>>2]|0)-(t[e>>2]|0)|0,r=o>>2,o=Qo(o+4|0)|0,t[o>>2]=r,r|0){n=0;do t[o+4+(n<<2)>>2]=f8(t[(t[e>>2]|0)+(n<<2)>>2]|0)|0,n=n+1|0;while((n|0)!=(r|0))}return o|0}function f8(e){return e=e|0,e|0}function rI(e){e=e|0;var n=0,r=0,o=0;if(o=(t[e+4>>2]|0)-(t[e>>2]|0)|0,r=o>>2,o=Qo(o+4|0)|0,t[o>>2]=r,r|0){n=0;do t[o+4+(n<<2)>>2]=c8((t[e>>2]|0)+(n<<2)|0)|0,n=n+1|0;while((n|0)!=(r|0))}return o|0}function c8(e){e=e|0;var n=0,r=0,o=0,s=0;return s=h,h=h+32|0,n=s+12|0,r=s,o=U0(a8()|0)|0,o?(s1(n,o),l1(r,n),UF(e,r),e=f1(n)|0):e=iI(e)|0,h=s,e|0}function a8(){var e=0;return c[7960]|0||(lI(10664),Bt(25,10664,Q|0)|0,e=7960,t[e>>2]=1,t[e+4>>2]=0),10664}function iI(e){e=e|0;var n=0,r=0,o=0,s=0,l=0,d=0,_=0;return r=h,h=h+16|0,s=r+4|0,d=r,o=Qo(8)|0,n=o,_=Tt(4)|0,t[_>>2]=t[e>>2],l=n+4|0,t[l>>2]=_,e=Tt(8)|0,l=t[l>>2]|0,t[d>>2]=0,t[s>>2]=t[d>>2],d8(e,l,s),t[o>>2]=e,h=r,n|0}function d8(e,n,r){e=e|0,n=n|0,r=r|0,t[e>>2]=n,r=Tt(16)|0,t[r+4>>2]=0,t[r+8>>2]=0,t[r>>2]=1656,t[r+12>>2]=n,t[e+4>>2]=r}function oI(e){e=e|0,da(e),Ve(e)}function uI(e){e=e|0,e=t[e+12>>2]|0,e|0&&Ve(e)}function sI(e){e=e|0,Ve(e)}function lI(e){e=e|0,Ys(e)}function fI(e){e=e|0,Ao(e,cI()|0,5)}function cI(){return 1676}function aI(e,n){e=e|0,n=n|0;var r=0;if((p8(e)|0)>>>0>>0&&$n(e),n>>>0>1073741823)_n();else{r=Tt(n<<2)|0,t[e+4>>2]=r,t[e>>2]=r,t[e+8>>2]=r+(n<<2);return}}function dI(e,n,r,o){e=e|0,n=n|0,r=r|0,o=o|0,o=e+4|0,e=r-n|0,(e|0)>0&&(vn(t[o>>2]|0,n|0,e|0)|0,t[o>>2]=(t[o>>2]|0)+(e>>>2<<2))}function p8(e){return e=e|0,1073741823}function pI(e,n){e=e|0,n=n|0;var r=0;if((h8(e)|0)>>>0>>0&&$n(e),n>>>0>1073741823)_n();else{r=Tt(n<<2)|0,t[e+4>>2]=r,t[e>>2]=r,t[e+8>>2]=r+(n<<2);return}}function hI(e,n,r,o){e=e|0,n=n|0,r=r|0,o=o|0,o=e+4|0,e=r-n|0,(e|0)>0&&(vn(t[o>>2]|0,n|0,e|0)|0,t[o>>2]=(t[o>>2]|0)+(e>>>2<<2))}function h8(e){return e=e|0,1073741823}function mI(e,n,r,o){e=e|0,n=n|0,r=r|0,o=o|0;var s=0;t[e+12>>2]=0,t[e+16>>2]=o;do if(n)if(n>>>0>1073741823)_n();else{s=Tt(n<<2)|0;break}else s=0;while(0);t[e>>2]=s,o=s+(r<<2)|0,t[e+8>>2]=o,t[e+4>>2]=o,t[e+12>>2]=s+(n<<2)}function vI(e,n){e=e|0,n=n|0;var r=0,o=0,s=0,l=0,d=0;o=t[e>>2]|0,d=e+4|0,l=n+4|0,s=(t[d>>2]|0)-o|0,r=(t[l>>2]|0)+(0-(s>>2)<<2)|0,t[l>>2]=r,(s|0)>0?(vn(r|0,o|0,s|0)|0,o=l,r=t[l>>2]|0):o=l,l=t[e>>2]|0,t[e>>2]=r,t[o>>2]=l,l=n+8|0,s=t[d>>2]|0,t[d>>2]=t[l>>2],t[l>>2]=s,l=e+8|0,d=n+12|0,e=t[l>>2]|0,t[l>>2]=t[d>>2],t[d>>2]=e,t[n>>2]=t[o>>2]}function gI(e){e=e|0;var n=0,r=0,o=0;n=t[e+4>>2]|0,r=e+8|0,o=t[r>>2]|0,(o|0)!=(n|0)&&(t[r>>2]=o+(~((o+-4-n|0)>>>2)<<2)),e=t[e>>2]|0,e|0&&Ve(e)}function m8(e,n,r,o){e=e|0,n=n|0,r=r|0,o=o|0;var s=0;t[e+12>>2]=0,t[e+16>>2]=o;do if(n)if(n>>>0>1073741823)_n();else{s=Tt(n<<2)|0;break}else s=0;while(0);t[e>>2]=s,o=s+(r<<2)|0,t[e+8>>2]=o,t[e+4>>2]=o,t[e+12>>2]=s+(n<<2)}function v8(e,n){e=e|0,n=n|0;var r=0,o=0,s=0,l=0,d=0;o=t[e>>2]|0,d=e+4|0,l=n+4|0,s=(t[d>>2]|0)-o|0,r=(t[l>>2]|0)+(0-(s>>2)<<2)|0,t[l>>2]=r,(s|0)>0?(vn(r|0,o|0,s|0)|0,o=l,r=t[l>>2]|0):o=l,l=t[e>>2]|0,t[e>>2]=r,t[o>>2]=l,l=n+8|0,s=t[d>>2]|0,t[d>>2]=t[l>>2],t[l>>2]=s,l=e+8|0,d=n+12|0,e=t[l>>2]|0,t[l>>2]=t[d>>2],t[d>>2]=e,t[n>>2]=t[o>>2]}function g8(e){e=e|0;var n=0,r=0,o=0;n=t[e+4>>2]|0,r=e+8|0,o=t[r>>2]|0,(o|0)!=(n|0)&&(t[r>>2]=o+(~((o+-4-n|0)>>>2)<<2)),e=t[e>>2]|0,e|0&&Ve(e)}function _I(e,n,r,o,s){e=e|0,n=n|0,r=r|0,o=o|0,s=s|0;var l=0,d=0,_=0,y=0,k=0,T=0,P=0,q=0,we=0,le=0,ie=0;if(ie=h,h=h+32|0,T=ie+20|0,P=ie+12|0,k=ie+16|0,q=ie+4|0,we=ie,le=ie+8|0,_=o8()|0,l=t[_>>2]|0,d=t[l>>2]|0,d|0)for(y=t[_+8>>2]|0,_=t[_+4>>2]|0;os(T,d),yI(e,T,_,y),l=l+4|0,d=t[l>>2]|0,d;)y=y+1|0,_=_+1|0;if(l=u8()|0,d=t[l>>2]|0,d|0)do os(T,d),t[P>>2]=t[l+4>>2],wI(n,T,P),l=l+8|0,d=t[l>>2]|0;while((d|0)!=0);if(l=t[(sa()|0)>>2]|0,l|0)do n=t[l+4>>2]|0,os(T,t[(la(n)|0)>>2]|0),t[P>>2]=A4(n)|0,DI(r,T,P),l=t[l>>2]|0;while((l|0)!=0);if(os(k,0),l=O4()|0,t[T>>2]=t[k>>2],s8(T,l,s),l=t[(sa()|0)>>2]|0,l|0){e=T+4|0,n=T+8|0,r=T+8|0;do{if(y=t[l+4>>2]|0,os(P,t[(la(y)|0)>>2]|0),EI(q,_8(y)|0),d=t[q>>2]|0,d|0){t[T>>2]=0,t[e>>2]=0,t[n>>2]=0;do os(we,t[(la(t[d+4>>2]|0)|0)>>2]|0),_=t[e>>2]|0,_>>>0<(t[r>>2]|0)>>>0?(t[_>>2]=t[we>>2],t[e>>2]=(t[e>>2]|0)+4):P4(T,we),d=t[d>>2]|0;while((d|0)!=0);SI(o,P,T),Rl(T)}t[le>>2]=t[P>>2],k=y8(y)|0,t[T>>2]=t[le>>2],s8(T,k,s),bd(q),l=t[l>>2]|0}while((l|0)!=0)}h=ie}function yI(e,n,r,o){e=e|0,n=n|0,r=r|0,o=o|0,RI(e,n,r,o)}function wI(e,n,r){e=e|0,n=n|0,r=r|0,LI(e,n,r)}function la(e){return e=e|0,e|0}function DI(e,n,r){e=e|0,n=n|0,r=r|0,II(e,n,r)}function _8(e){return e=e|0,e+16|0}function EI(e,n){e=e|0,n=n|0;var r=0,o=0,s=0,l=0,d=0,_=0,y=0;if(l=h,h=h+16|0,s=l+8|0,r=l,t[e>>2]=0,o=t[n>>2]|0,t[s>>2]=o,t[r>>2]=e,r=OI(r)|0,o|0){if(o=Tt(12)|0,d=(w8(s)|0)+4|0,e=t[d+4>>2]|0,n=o+4|0,t[n>>2]=t[d>>2],t[n+4>>2]=e,n=t[t[s>>2]>>2]|0,t[s>>2]=n,!n)e=o;else for(n=o;e=Tt(12)|0,y=(w8(s)|0)+4|0,_=t[y+4>>2]|0,d=e+4|0,t[d>>2]=t[y>>2],t[d+4>>2]=_,t[n>>2]=e,d=t[t[s>>2]>>2]|0,t[s>>2]=d,d;)n=e;t[e>>2]=t[r>>2],t[r>>2]=o}h=l}function SI(e,n,r){e=e|0,n=n|0,r=r|0,CI(e,n,r)}function y8(e){return e=e|0,e+24|0}function CI(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0,l=0,d=0,_=0;o=h,h=h+32|0,d=o+24|0,s=o+16|0,_=o+12|0,l=o,Zo(s),e=Oi(e)|0,t[_>>2]=t[n>>2],F4(l,r),t[d>>2]=t[_>>2],TI(e,d,l),Rl(l),eu(s),h=o}function TI(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0,l=0,d=0,_=0;o=h,h=h+32|0,d=o+16|0,_=o+12|0,s=o,l=ko(xI()|0)|0,t[_>>2]=t[n>>2],t[d>>2]=t[_>>2],n=lc(d)|0,t[s>>2]=t[r>>2],d=r+4|0,t[s+4>>2]=t[d>>2],_=r+8|0,t[s+8>>2]=t[_>>2],t[_>>2]=0,t[d>>2]=0,t[r>>2]=0,Ts(0,l|0,e|0,n|0,R4(s)|0)|0,Rl(s),h=o}function xI(){var e=0;return c[7976]|0||(kI(10720),e=7976,t[e>>2]=1,t[e+4>>2]=0),10720}function kI(e){e=e|0,Ao(e,AI()|0,2)}function AI(){return 1732}function OI(e){return e=e|0,t[e>>2]|0}function w8(e){return e=e|0,t[e>>2]|0}function II(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0,l=0,d=0;o=h,h=h+32|0,l=o+16|0,s=o+8|0,d=o,Zo(s),e=Oi(e)|0,t[d>>2]=t[n>>2],r=t[r>>2]|0,t[l>>2]=t[d>>2],D8(e,l,r),eu(s),h=o}function D8(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0,l=0,d=0;o=h,h=h+16|0,l=o+4|0,d=o,s=ko(PI()|0)|0,t[d>>2]=t[n>>2],t[l>>2]=t[d>>2],n=lc(l)|0,Ts(0,s|0,e|0,n|0,l8(r)|0)|0,h=o}function PI(){var e=0;return c[7984]|0||(MI(10732),e=7984,t[e>>2]=1,t[e+4>>2]=0),10732}function MI(e){e=e|0,Ao(e,FI()|0,2)}function FI(){return 1744}function LI(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0,l=0,d=0;o=h,h=h+32|0,l=o+16|0,s=o+8|0,d=o,Zo(s),e=Oi(e)|0,t[d>>2]=t[n>>2],r=t[r>>2]|0,t[l>>2]=t[d>>2],D8(e,l,r),eu(s),h=o}function RI(e,n,r,o){e=e|0,n=n|0,r=r|0,o=o|0;var s=0,l=0,d=0,_=0;s=h,h=h+32|0,d=s+16|0,l=s+8|0,_=s,Zo(l),e=Oi(e)|0,t[_>>2]=t[n>>2],r=c[r>>0]|0,o=c[o>>0]|0,t[d>>2]=t[_>>2],NI(e,d,r,o),eu(l),h=s}function NI(e,n,r,o){e=e|0,n=n|0,r=r|0,o=o|0;var s=0,l=0,d=0,_=0;s=h,h=h+16|0,d=s+4|0,_=s,l=ko(BI()|0)|0,t[_>>2]=t[n>>2],t[d>>2]=t[_>>2],n=lc(d)|0,r=fa(r)|0,Bu(0,l|0,e|0,n|0,r|0,fa(o)|0)|0,h=s}function BI(){var e=0;return c[7992]|0||(UI(10744),e=7992,t[e>>2]=1,t[e+4>>2]=0),10744}function fa(e){return e=e|0,jI(e)|0}function jI(e){return e=e|0,e&255|0}function UI(e){e=e|0,Ao(e,qI()|0,3)}function qI(){return 1756}function zI(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0,l=0,d=0,_=0,y=0,k=0,T=0,P=0,q=0;switch(q=h,h=h+32|0,_=q+8|0,y=q+4|0,k=q+20|0,T=q,_1(e,0),o=jF(n)|0,t[_>>2]=0,P=_+4|0,t[P>>2]=0,t[_+8>>2]=0,o<<24>>24){case 0:{c[k>>0]=0,WI(y,r,k),rh(e,y)|0,ei(y);break}case 8:{P=z4(n)|0,c[k>>0]=8,os(T,t[P+4>>2]|0),HI(y,r,k,T,P+8|0),rh(e,y)|0,ei(y);break}case 9:{if(l=z4(n)|0,n=t[l+4>>2]|0,n|0)for(d=_+8|0,s=l+12|0;n=n+-1|0,os(y,t[s>>2]|0),o=t[P>>2]|0,o>>>0<(t[d>>2]|0)>>>0?(t[o>>2]=t[y>>2],t[P>>2]=(t[P>>2]|0)+4):P4(_,y),n;)s=s+4|0;c[k>>0]=9,os(T,t[l+8>>2]|0),bI(y,r,k,T,_),rh(e,y)|0,ei(y);break}default:P=z4(n)|0,c[k>>0]=o,os(T,t[P+4>>2]|0),GI(y,r,k,T),rh(e,y)|0,ei(y)}Rl(_),h=q}function WI(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0;o=h,h=h+16|0,s=o,Zo(s),n=Oi(n)|0,iP(e,n,c[r>>0]|0),eu(s),h=o}function rh(e,n){e=e|0,n=n|0;var r=0;return r=t[e>>2]|0,r|0&&ju(r|0),t[e>>2]=t[n>>2],t[n>>2]=0,e|0}function HI(e,n,r,o,s){e=e|0,n=n|0,r=r|0,o=o|0,s=s|0;var l=0,d=0,_=0,y=0;l=h,h=h+32|0,_=l+16|0,d=l+8|0,y=l,Zo(d),n=Oi(n)|0,r=c[r>>0]|0,t[y>>2]=t[o>>2],s=t[s>>2]|0,t[_>>2]=t[y>>2],eP(e,n,r,_,s),eu(d),h=l}function bI(e,n,r,o,s){e=e|0,n=n|0,r=r|0,o=o|0,s=s|0;var l=0,d=0,_=0,y=0,k=0;l=h,h=h+32|0,y=l+24|0,d=l+16|0,k=l+12|0,_=l,Zo(d),n=Oi(n)|0,r=c[r>>0]|0,t[k>>2]=t[o>>2],F4(_,s),t[y>>2]=t[k>>2],XI(e,n,r,y,_),Rl(_),eu(d),h=l}function GI(e,n,r,o){e=e|0,n=n|0,r=r|0,o=o|0;var s=0,l=0,d=0,_=0;s=h,h=h+32|0,d=s+16|0,l=s+8|0,_=s,Zo(l),n=Oi(n)|0,r=c[r>>0]|0,t[_>>2]=t[o>>2],t[d>>2]=t[_>>2],VI(e,n,r,d),eu(l),h=s}function VI(e,n,r,o){e=e|0,n=n|0,r=r|0,o=o|0;var s=0,l=0,d=0,_=0;s=h,h=h+16|0,l=s+4|0,_=s,d=ko(YI()|0)|0,r=fa(r)|0,t[_>>2]=t[o>>2],t[l>>2]=t[_>>2],ih(e,Ts(0,d|0,n|0,r|0,lc(l)|0)|0),h=s}function YI(){var e=0;return c[8e3]|0||($I(10756),e=8e3,t[e>>2]=1,t[e+4>>2]=0),10756}function ih(e,n){e=e|0,n=n|0,_1(e,n)}function $I(e){e=e|0,Ao(e,KI()|0,2)}function KI(){return 1772}function XI(e,n,r,o,s){e=e|0,n=n|0,r=r|0,o=o|0,s=s|0;var l=0,d=0,_=0,y=0,k=0;l=h,h=h+32|0,y=l+16|0,k=l+12|0,d=l,_=ko(JI()|0)|0,r=fa(r)|0,t[k>>2]=t[o>>2],t[y>>2]=t[k>>2],o=lc(y)|0,t[d>>2]=t[s>>2],y=s+4|0,t[d+4>>2]=t[y>>2],k=s+8|0,t[d+8>>2]=t[k>>2],t[k>>2]=0,t[y>>2]=0,t[s>>2]=0,ih(e,Bu(0,_|0,n|0,r|0,o|0,R4(d)|0)|0),Rl(d),h=l}function JI(){var e=0;return c[8008]|0||(QI(10768),e=8008,t[e>>2]=1,t[e+4>>2]=0),10768}function QI(e){e=e|0,Ao(e,ZI()|0,3)}function ZI(){return 1784}function eP(e,n,r,o,s){e=e|0,n=n|0,r=r|0,o=o|0,s=s|0;var l=0,d=0,_=0,y=0;l=h,h=h+16|0,_=l+4|0,y=l,d=ko(tP()|0)|0,r=fa(r)|0,t[y>>2]=t[o>>2],t[_>>2]=t[y>>2],o=lc(_)|0,ih(e,Bu(0,d|0,n|0,r|0,o|0,L4(s)|0)|0),h=l}function tP(){var e=0;return c[8016]|0||(nP(10780),e=8016,t[e>>2]=1,t[e+4>>2]=0),10780}function nP(e){e=e|0,Ao(e,rP()|0,3)}function rP(){return 1800}function iP(e,n,r){e=e|0,n=n|0,r=r|0;var o=0;o=ko(oP()|0)|0,ih(e,sf(0,o|0,n|0,fa(r)|0)|0)}function oP(){var e=0;return c[8024]|0||(uP(10792),e=8024,t[e>>2]=1,t[e+4>>2]=0),10792}function uP(e){e=e|0,Ao(e,sP()|0,1)}function sP(){return 1816}function lP(){fP(),cP(),aP()}function fP(){t[2702]=K8(65536)|0}function cP(){PP(10856)}function aP(){dP(10816)}function dP(e){e=e|0,pP(e,5044),hP(e)|0}function pP(e,n){e=e|0,n=n|0;var r=0;r=a8()|0,t[e>>2]=r,TP(r,n),Cf(t[e>>2]|0)}function hP(e){e=e|0;var n=0;return n=t[e>>2]|0,uc(n,mP()|0),e|0}function mP(){var e=0;return c[8032]|0||(E8(10820),Bt(64,10820,Q|0)|0,e=8032,t[e>>2]=1,t[e+4>>2]=0),Dn(10820)|0||E8(10820),10820}function E8(e){e=e|0,_P(e),sc(e,25)}function vP(e){e=e|0,gP(e+24|0)}function gP(e){e=e|0;var n=0,r=0,o=0;r=t[e>>2]|0,o=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~((n+-8-o|0)>>>3)<<3)),Ve(r))}function _P(e){e=e|0;var n=0;n=An()|0,Nn(e,5,18,n,EP()|0,1),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function yP(e,n){e=e|0,n=n|0,wP(e,n)}function wP(e,n){e=e|0,n=n|0;var r=0,o=0,s=0;r=h,h=h+16|0,o=r,s=r+4|0,Ml(s,n),t[o>>2]=Fl(s,n)|0,DP(e,o),h=r}function DP(e,n){e=e|0,n=n|0,S8(e+4|0,t[n>>2]|0),c[e+8>>0]=1}function S8(e,n){e=e|0,n=n|0,t[e>>2]=n}function EP(){return 1824}function SP(e){return e=e|0,CP(e)|0}function CP(e){e=e|0;var n=0,r=0,o=0,s=0,l=0,d=0,_=0;return r=h,h=h+16|0,s=r+4|0,d=r,o=Qo(8)|0,n=o,_=Tt(4)|0,Ml(s,e),S8(_,Fl(s,e)|0),l=n+4|0,t[l>>2]=_,e=Tt(8)|0,l=t[l>>2]|0,t[d>>2]=0,t[s>>2]=t[d>>2],d8(e,l,s),t[o>>2]=e,h=r,n|0}function Qo(e){e=e|0;var n=0,r=0;return e=e+7&-8,(e>>>0<=32768?(n=t[2701]|0,e>>>0<=(65536-n|0)>>>0):0)?(r=(t[2702]|0)+n|0,t[2701]=n+e,e=r):(e=K8(e+8|0)|0,t[e>>2]=t[2703],t[2703]=e,e=e+8|0),e|0}function TP(e,n){e=e|0,n=n|0,t[e>>2]=xP()|0,t[e+4>>2]=kP()|0,t[e+12>>2]=n,t[e+8>>2]=AP()|0,t[e+32>>2]=9}function xP(){return 11744}function kP(){return 1832}function AP(){return th()|0}function OP(e,n,r,o){e=e|0,n=n|0,r=r|0,o=o|0,(Sf(o,896)|0)==512?r|0&&(IP(r),Ve(r)):n|0&&Ve(n)}function IP(e){e=e|0,e=t[e+4>>2]|0,e|0&&Tf(e)}function PP(e){e=e|0,MP(e,5052),FP(e)|0,LP(e,5058,26)|0,RP(e,5069,1)|0,NP(e,5077,10)|0,BP(e,5087,19)|0,jP(e,5094,27)|0}function MP(e,n){e=e|0,n=n|0;var r=0;r=IF()|0,t[e>>2]=r,PF(r,n),Cf(t[e>>2]|0)}function FP(e){e=e|0;var n=0;return n=t[e>>2]|0,uc(n,vF()|0),e|0}function LP(e,n,r){return e=e|0,n=n|0,r=r|0,QM(e,Zn(n)|0,r,0),e|0}function RP(e,n,r){return e=e|0,n=n|0,r=r|0,BM(e,Zn(n)|0,r,0),e|0}function NP(e,n,r){return e=e|0,n=n|0,r=r|0,mM(e,Zn(n)|0,r,0),e|0}function BP(e,n,r){return e=e|0,n=n|0,r=r|0,eM(e,Zn(n)|0,r,0),e|0}function C8(e,n){e=e|0,n=n|0;var r=0,o=0;e:for(;;){for(r=t[2703]|0;;){if((r|0)==(n|0))break e;if(o=t[r>>2]|0,t[2703]=o,!r)r=o;else break}Ve(r)}t[2701]=e}function jP(e,n,r){return e=e|0,n=n|0,r=r|0,UP(e,Zn(n)|0,r,0),e|0}function UP(e,n,r,o){e=e|0,n=n|0,r=r|0,o=o|0;var s=0,l=0;l=t[e>>2]|0,s=N4()|0,e=qP(r)|0,ur(l,n,s,e,zP(r,o)|0,o)}function N4(){var e=0,n=0;if(c[8040]|0||(x8(10860),Bt(65,10860,Q|0)|0,n=8040,t[n>>2]=1,t[n+4>>2]=0),!(Dn(10860)|0)){e=10860,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));x8(10860)}return 10860}function qP(e){return e=e|0,e|0}function zP(e,n){e=e|0,n=n|0;var r=0,o=0,s=0,l=0,d=0,_=0,y=0;return _=h,h=h+16|0,s=_,l=_+4|0,t[s>>2]=e,y=N4()|0,d=y+24|0,n=Lt(n,4)|0,t[l>>2]=n,r=y+28|0,o=t[r>>2]|0,o>>>0<(t[y+32>>2]|0)>>>0?(T8(o,e,n),n=(t[r>>2]|0)+8|0,t[r>>2]=n):(WP(d,s,l),n=t[r>>2]|0),h=_,(n-(t[d>>2]|0)>>3)+-1|0}function T8(e,n,r){e=e|0,n=n|0,r=r|0,t[e>>2]=n,t[e+4>>2]=r}function WP(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0,l=0,d=0,_=0,y=0,k=0,T=0;if(_=h,h=h+32|0,s=_,l=e+4|0,d=((t[l>>2]|0)-(t[e>>2]|0)>>3)+1|0,o=HP(e)|0,o>>>0>>0)$n(e);else{y=t[e>>2]|0,T=(t[e+8>>2]|0)-y|0,k=T>>2,bP(s,T>>3>>>0>>1>>>0?k>>>0>>0?d:k:o,(t[l>>2]|0)-y>>3,e+8|0),d=s+8|0,T8(t[d>>2]|0,t[n>>2]|0,t[r>>2]|0),t[d>>2]=(t[d>>2]|0)+8,GP(e,s),VP(s),h=_;return}}function HP(e){return e=e|0,536870911}function bP(e,n,r,o){e=e|0,n=n|0,r=r|0,o=o|0;var s=0;t[e+12>>2]=0,t[e+16>>2]=o;do if(n)if(n>>>0>536870911)_n();else{s=Tt(n<<3)|0;break}else s=0;while(0);t[e>>2]=s,o=s+(r<<3)|0,t[e+8>>2]=o,t[e+4>>2]=o,t[e+12>>2]=s+(n<<3)}function GP(e,n){e=e|0,n=n|0;var r=0,o=0,s=0,l=0,d=0;o=t[e>>2]|0,d=e+4|0,l=n+4|0,s=(t[d>>2]|0)-o|0,r=(t[l>>2]|0)+(0-(s>>3)<<3)|0,t[l>>2]=r,(s|0)>0?(vn(r|0,o|0,s|0)|0,o=l,r=t[l>>2]|0):o=l,l=t[e>>2]|0,t[e>>2]=r,t[o>>2]=l,l=n+8|0,s=t[d>>2]|0,t[d>>2]=t[l>>2],t[l>>2]=s,l=e+8|0,d=n+12|0,e=t[l>>2]|0,t[l>>2]=t[d>>2],t[d>>2]=e,t[n>>2]=t[o>>2]}function VP(e){e=e|0;var n=0,r=0,o=0;n=t[e+4>>2]|0,r=e+8|0,o=t[r>>2]|0,(o|0)!=(n|0)&&(t[r>>2]=o+(~((o+-8-n|0)>>>3)<<3)),e=t[e>>2]|0,e|0&&Ve(e)}function x8(e){e=e|0,KP(e)}function YP(e){e=e|0,$P(e+24|0)}function $P(e){e=e|0;var n=0,r=0,o=0;r=t[e>>2]|0,o=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~((n+-8-o|0)>>>3)<<3)),Ve(r))}function KP(e){e=e|0;var n=0;n=An()|0,Nn(e,1,11,n,XP()|0,2),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function XP(){return 1840}function JP(e,n,r){e=e|0,n=n|0,r=r|0,ZP(t[(QP(e)|0)>>2]|0,n,r)}function QP(e){return e=e|0,(t[(N4()|0)+24>>2]|0)+(e<<3)|0}function ZP(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0,l=0;o=h,h=h+16|0,l=o+1|0,s=o,Ml(l,n),n=Fl(l,n)|0,Ml(s,r),r=Fl(s,r)|0,Bl[e&31](n,r),h=o}function eM(e,n,r,o){e=e|0,n=n|0,r=r|0,o=o|0;var s=0,l=0;l=t[e>>2]|0,s=B4()|0,e=tM(r)|0,ur(l,n,s,e,nM(r,o)|0,o)}function B4(){var e=0,n=0;if(c[8048]|0||(A8(10896),Bt(66,10896,Q|0)|0,n=8048,t[n>>2]=1,t[n+4>>2]=0),!(Dn(10896)|0)){e=10896,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));A8(10896)}return 10896}function tM(e){return e=e|0,e|0}function nM(e,n){e=e|0,n=n|0;var r=0,o=0,s=0,l=0,d=0,_=0,y=0;return _=h,h=h+16|0,s=_,l=_+4|0,t[s>>2]=e,y=B4()|0,d=y+24|0,n=Lt(n,4)|0,t[l>>2]=n,r=y+28|0,o=t[r>>2]|0,o>>>0<(t[y+32>>2]|0)>>>0?(k8(o,e,n),n=(t[r>>2]|0)+8|0,t[r>>2]=n):(rM(d,s,l),n=t[r>>2]|0),h=_,(n-(t[d>>2]|0)>>3)+-1|0}function k8(e,n,r){e=e|0,n=n|0,r=r|0,t[e>>2]=n,t[e+4>>2]=r}function rM(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0,l=0,d=0,_=0,y=0,k=0,T=0;if(_=h,h=h+32|0,s=_,l=e+4|0,d=((t[l>>2]|0)-(t[e>>2]|0)>>3)+1|0,o=iM(e)|0,o>>>0>>0)$n(e);else{y=t[e>>2]|0,T=(t[e+8>>2]|0)-y|0,k=T>>2,oM(s,T>>3>>>0>>1>>>0?k>>>0>>0?d:k:o,(t[l>>2]|0)-y>>3,e+8|0),d=s+8|0,k8(t[d>>2]|0,t[n>>2]|0,t[r>>2]|0),t[d>>2]=(t[d>>2]|0)+8,uM(e,s),sM(s),h=_;return}}function iM(e){return e=e|0,536870911}function oM(e,n,r,o){e=e|0,n=n|0,r=r|0,o=o|0;var s=0;t[e+12>>2]=0,t[e+16>>2]=o;do if(n)if(n>>>0>536870911)_n();else{s=Tt(n<<3)|0;break}else s=0;while(0);t[e>>2]=s,o=s+(r<<3)|0,t[e+8>>2]=o,t[e+4>>2]=o,t[e+12>>2]=s+(n<<3)}function uM(e,n){e=e|0,n=n|0;var r=0,o=0,s=0,l=0,d=0;o=t[e>>2]|0,d=e+4|0,l=n+4|0,s=(t[d>>2]|0)-o|0,r=(t[l>>2]|0)+(0-(s>>3)<<3)|0,t[l>>2]=r,(s|0)>0?(vn(r|0,o|0,s|0)|0,o=l,r=t[l>>2]|0):o=l,l=t[e>>2]|0,t[e>>2]=r,t[o>>2]=l,l=n+8|0,s=t[d>>2]|0,t[d>>2]=t[l>>2],t[l>>2]=s,l=e+8|0,d=n+12|0,e=t[l>>2]|0,t[l>>2]=t[d>>2],t[d>>2]=e,t[n>>2]=t[o>>2]}function sM(e){e=e|0;var n=0,r=0,o=0;n=t[e+4>>2]|0,r=e+8|0,o=t[r>>2]|0,(o|0)!=(n|0)&&(t[r>>2]=o+(~((o+-8-n|0)>>>3)<<3)),e=t[e>>2]|0,e|0&&Ve(e)}function A8(e){e=e|0,cM(e)}function lM(e){e=e|0,fM(e+24|0)}function fM(e){e=e|0;var n=0,r=0,o=0;r=t[e>>2]|0,o=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~((n+-8-o|0)>>>3)<<3)),Ve(r))}function cM(e){e=e|0;var n=0;n=An()|0,Nn(e,1,11,n,aM()|0,1),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function aM(){return 1852}function dM(e,n){return e=e|0,n=n|0,hM(t[(pM(e)|0)>>2]|0,n)|0}function pM(e){return e=e|0,(t[(B4()|0)+24>>2]|0)+(e<<3)|0}function hM(e,n){e=e|0,n=n|0;var r=0,o=0;return r=h,h=h+16|0,o=r,Ml(o,n),n=Fl(o,n)|0,n=ea(dc[e&31](n)|0)|0,h=r,n|0}function mM(e,n,r,o){e=e|0,n=n|0,r=r|0,o=o|0;var s=0,l=0;l=t[e>>2]|0,s=j4()|0,e=vM(r)|0,ur(l,n,s,e,gM(r,o)|0,o)}function j4(){var e=0,n=0;if(c[8056]|0||(I8(10932),Bt(67,10932,Q|0)|0,n=8056,t[n>>2]=1,t[n+4>>2]=0),!(Dn(10932)|0)){e=10932,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));I8(10932)}return 10932}function vM(e){return e=e|0,e|0}function gM(e,n){e=e|0,n=n|0;var r=0,o=0,s=0,l=0,d=0,_=0,y=0;return _=h,h=h+16|0,s=_,l=_+4|0,t[s>>2]=e,y=j4()|0,d=y+24|0,n=Lt(n,4)|0,t[l>>2]=n,r=y+28|0,o=t[r>>2]|0,o>>>0<(t[y+32>>2]|0)>>>0?(O8(o,e,n),n=(t[r>>2]|0)+8|0,t[r>>2]=n):(_M(d,s,l),n=t[r>>2]|0),h=_,(n-(t[d>>2]|0)>>3)+-1|0}function O8(e,n,r){e=e|0,n=n|0,r=r|0,t[e>>2]=n,t[e+4>>2]=r}function _M(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0,l=0,d=0,_=0,y=0,k=0,T=0;if(_=h,h=h+32|0,s=_,l=e+4|0,d=((t[l>>2]|0)-(t[e>>2]|0)>>3)+1|0,o=yM(e)|0,o>>>0>>0)$n(e);else{y=t[e>>2]|0,T=(t[e+8>>2]|0)-y|0,k=T>>2,wM(s,T>>3>>>0>>1>>>0?k>>>0>>0?d:k:o,(t[l>>2]|0)-y>>3,e+8|0),d=s+8|0,O8(t[d>>2]|0,t[n>>2]|0,t[r>>2]|0),t[d>>2]=(t[d>>2]|0)+8,DM(e,s),EM(s),h=_;return}}function yM(e){return e=e|0,536870911}function wM(e,n,r,o){e=e|0,n=n|0,r=r|0,o=o|0;var s=0;t[e+12>>2]=0,t[e+16>>2]=o;do if(n)if(n>>>0>536870911)_n();else{s=Tt(n<<3)|0;break}else s=0;while(0);t[e>>2]=s,o=s+(r<<3)|0,t[e+8>>2]=o,t[e+4>>2]=o,t[e+12>>2]=s+(n<<3)}function DM(e,n){e=e|0,n=n|0;var r=0,o=0,s=0,l=0,d=0;o=t[e>>2]|0,d=e+4|0,l=n+4|0,s=(t[d>>2]|0)-o|0,r=(t[l>>2]|0)+(0-(s>>3)<<3)|0,t[l>>2]=r,(s|0)>0?(vn(r|0,o|0,s|0)|0,o=l,r=t[l>>2]|0):o=l,l=t[e>>2]|0,t[e>>2]=r,t[o>>2]=l,l=n+8|0,s=t[d>>2]|0,t[d>>2]=t[l>>2],t[l>>2]=s,l=e+8|0,d=n+12|0,e=t[l>>2]|0,t[l>>2]=t[d>>2],t[d>>2]=e,t[n>>2]=t[o>>2]}function EM(e){e=e|0;var n=0,r=0,o=0;n=t[e+4>>2]|0,r=e+8|0,o=t[r>>2]|0,(o|0)!=(n|0)&&(t[r>>2]=o+(~((o+-8-n|0)>>>3)<<3)),e=t[e>>2]|0,e|0&&Ve(e)}function I8(e){e=e|0,TM(e)}function SM(e){e=e|0,CM(e+24|0)}function CM(e){e=e|0;var n=0,r=0,o=0;r=t[e>>2]|0,o=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~((n+-8-o|0)>>>3)<<3)),Ve(r))}function TM(e){e=e|0;var n=0;n=An()|0,Nn(e,1,7,n,xM()|0,2),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function xM(){return 1860}function kM(e,n,r){return e=e|0,n=n|0,r=r|0,OM(t[(AM(e)|0)>>2]|0,n,r)|0}function AM(e){return e=e|0,(t[(j4()|0)+24>>2]|0)+(e<<3)|0}function OM(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0,l=0,d=0,_=0,y=0;return o=h,h=h+32|0,d=o+12|0,l=o+8|0,_=o,y=o+16|0,s=o+4|0,IM(y,n),PM(_,y,n),$s(s,r),r=Ks(s,r)|0,t[d>>2]=t[_>>2],X1[e&15](l,d,r),r=MM(l)|0,ei(l),Xs(s),h=o,r|0}function IM(e,n){e=e|0,n=n|0}function PM(e,n,r){e=e|0,n=n|0,r=r|0,FM(e,r)}function MM(e){return e=e|0,Oi(e)|0}function FM(e,n){e=e|0,n=n|0;var r=0,o=0,s=0;s=h,h=h+16|0,r=s,o=n,o&1?(LM(r,0),c0(o|0,r|0)|0,RM(e,r),NM(r)):t[e>>2]=t[n>>2],h=s}function LM(e,n){e=e|0,n=n|0,wd(e,n),t[e+4>>2]=0,c[e+8>>0]=0}function RM(e,n){e=e|0,n=n|0,t[e>>2]=t[n+4>>2]}function NM(e){e=e|0,c[e+8>>0]=0}function BM(e,n,r,o){e=e|0,n=n|0,r=r|0,o=o|0;var s=0,l=0;l=t[e>>2]|0,s=U4()|0,e=jM(r)|0,ur(l,n,s,e,UM(r,o)|0,o)}function U4(){var e=0,n=0;if(c[8064]|0||(M8(10968),Bt(68,10968,Q|0)|0,n=8064,t[n>>2]=1,t[n+4>>2]=0),!(Dn(10968)|0)){e=10968,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));M8(10968)}return 10968}function jM(e){return e=e|0,e|0}function UM(e,n){e=e|0,n=n|0;var r=0,o=0,s=0,l=0,d=0,_=0,y=0;return _=h,h=h+16|0,s=_,l=_+4|0,t[s>>2]=e,y=U4()|0,d=y+24|0,n=Lt(n,4)|0,t[l>>2]=n,r=y+28|0,o=t[r>>2]|0,o>>>0<(t[y+32>>2]|0)>>>0?(P8(o,e,n),n=(t[r>>2]|0)+8|0,t[r>>2]=n):(qM(d,s,l),n=t[r>>2]|0),h=_,(n-(t[d>>2]|0)>>3)+-1|0}function P8(e,n,r){e=e|0,n=n|0,r=r|0,t[e>>2]=n,t[e+4>>2]=r}function qM(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0,l=0,d=0,_=0,y=0,k=0,T=0;if(_=h,h=h+32|0,s=_,l=e+4|0,d=((t[l>>2]|0)-(t[e>>2]|0)>>3)+1|0,o=zM(e)|0,o>>>0>>0)$n(e);else{y=t[e>>2]|0,T=(t[e+8>>2]|0)-y|0,k=T>>2,WM(s,T>>3>>>0>>1>>>0?k>>>0>>0?d:k:o,(t[l>>2]|0)-y>>3,e+8|0),d=s+8|0,P8(t[d>>2]|0,t[n>>2]|0,t[r>>2]|0),t[d>>2]=(t[d>>2]|0)+8,HM(e,s),bM(s),h=_;return}}function zM(e){return e=e|0,536870911}function WM(e,n,r,o){e=e|0,n=n|0,r=r|0,o=o|0;var s=0;t[e+12>>2]=0,t[e+16>>2]=o;do if(n)if(n>>>0>536870911)_n();else{s=Tt(n<<3)|0;break}else s=0;while(0);t[e>>2]=s,o=s+(r<<3)|0,t[e+8>>2]=o,t[e+4>>2]=o,t[e+12>>2]=s+(n<<3)}function HM(e,n){e=e|0,n=n|0;var r=0,o=0,s=0,l=0,d=0;o=t[e>>2]|0,d=e+4|0,l=n+4|0,s=(t[d>>2]|0)-o|0,r=(t[l>>2]|0)+(0-(s>>3)<<3)|0,t[l>>2]=r,(s|0)>0?(vn(r|0,o|0,s|0)|0,o=l,r=t[l>>2]|0):o=l,l=t[e>>2]|0,t[e>>2]=r,t[o>>2]=l,l=n+8|0,s=t[d>>2]|0,t[d>>2]=t[l>>2],t[l>>2]=s,l=e+8|0,d=n+12|0,e=t[l>>2]|0,t[l>>2]=t[d>>2],t[d>>2]=e,t[n>>2]=t[o>>2]}function bM(e){e=e|0;var n=0,r=0,o=0;n=t[e+4>>2]|0,r=e+8|0,o=t[r>>2]|0,(o|0)!=(n|0)&&(t[r>>2]=o+(~((o+-8-n|0)>>>3)<<3)),e=t[e>>2]|0,e|0&&Ve(e)}function M8(e){e=e|0,YM(e)}function GM(e){e=e|0,VM(e+24|0)}function VM(e){e=e|0;var n=0,r=0,o=0;r=t[e>>2]|0,o=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~((n+-8-o|0)>>>3)<<3)),Ve(r))}function YM(e){e=e|0;var n=0;n=An()|0,Nn(e,1,1,n,$M()|0,5),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function $M(){return 1872}function KM(e,n,r,o,s,l){e=e|0,n=n|0,r=r|0,o=o|0,s=s|0,l=l|0,JM(t[(XM(e)|0)>>2]|0,n,r,o,s,l)}function XM(e){return e=e|0,(t[(U4()|0)+24>>2]|0)+(e<<3)|0}function JM(e,n,r,o,s,l){e=e|0,n=n|0,r=r|0,o=o|0,s=s|0,l=l|0;var d=0,_=0,y=0,k=0,T=0,P=0;d=h,h=h+32|0,_=d+16|0,y=d+12|0,k=d+8|0,T=d+4|0,P=d,$s(_,n),n=Ks(_,n)|0,$s(y,r),r=Ks(y,r)|0,$s(k,o),o=Ks(k,o)|0,$s(T,s),s=Ks(T,s)|0,$s(P,l),l=Ks(P,l)|0,eD[e&1](n,r,o,s,l),Xs(P),Xs(T),Xs(k),Xs(y),Xs(_),h=d}function QM(e,n,r,o){e=e|0,n=n|0,r=r|0,o=o|0;var s=0,l=0;l=t[e>>2]|0,s=q4()|0,e=ZM(r)|0,ur(l,n,s,e,eF(r,o)|0,o)}function q4(){var e=0,n=0;if(c[8072]|0||(L8(11004),Bt(69,11004,Q|0)|0,n=8072,t[n>>2]=1,t[n+4>>2]=0),!(Dn(11004)|0)){e=11004,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));L8(11004)}return 11004}function ZM(e){return e=e|0,e|0}function eF(e,n){e=e|0,n=n|0;var r=0,o=0,s=0,l=0,d=0,_=0,y=0;return _=h,h=h+16|0,s=_,l=_+4|0,t[s>>2]=e,y=q4()|0,d=y+24|0,n=Lt(n,4)|0,t[l>>2]=n,r=y+28|0,o=t[r>>2]|0,o>>>0<(t[y+32>>2]|0)>>>0?(F8(o,e,n),n=(t[r>>2]|0)+8|0,t[r>>2]=n):(tF(d,s,l),n=t[r>>2]|0),h=_,(n-(t[d>>2]|0)>>3)+-1|0}function F8(e,n,r){e=e|0,n=n|0,r=r|0,t[e>>2]=n,t[e+4>>2]=r}function tF(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0,l=0,d=0,_=0,y=0,k=0,T=0;if(_=h,h=h+32|0,s=_,l=e+4|0,d=((t[l>>2]|0)-(t[e>>2]|0)>>3)+1|0,o=nF(e)|0,o>>>0>>0)$n(e);else{y=t[e>>2]|0,T=(t[e+8>>2]|0)-y|0,k=T>>2,rF(s,T>>3>>>0>>1>>>0?k>>>0>>0?d:k:o,(t[l>>2]|0)-y>>3,e+8|0),d=s+8|0,F8(t[d>>2]|0,t[n>>2]|0,t[r>>2]|0),t[d>>2]=(t[d>>2]|0)+8,iF(e,s),oF(s),h=_;return}}function nF(e){return e=e|0,536870911}function rF(e,n,r,o){e=e|0,n=n|0,r=r|0,o=o|0;var s=0;t[e+12>>2]=0,t[e+16>>2]=o;do if(n)if(n>>>0>536870911)_n();else{s=Tt(n<<3)|0;break}else s=0;while(0);t[e>>2]=s,o=s+(r<<3)|0,t[e+8>>2]=o,t[e+4>>2]=o,t[e+12>>2]=s+(n<<3)}function iF(e,n){e=e|0,n=n|0;var r=0,o=0,s=0,l=0,d=0;o=t[e>>2]|0,d=e+4|0,l=n+4|0,s=(t[d>>2]|0)-o|0,r=(t[l>>2]|0)+(0-(s>>3)<<3)|0,t[l>>2]=r,(s|0)>0?(vn(r|0,o|0,s|0)|0,o=l,r=t[l>>2]|0):o=l,l=t[e>>2]|0,t[e>>2]=r,t[o>>2]=l,l=n+8|0,s=t[d>>2]|0,t[d>>2]=t[l>>2],t[l>>2]=s,l=e+8|0,d=n+12|0,e=t[l>>2]|0,t[l>>2]=t[d>>2],t[d>>2]=e,t[n>>2]=t[o>>2]}function oF(e){e=e|0;var n=0,r=0,o=0;n=t[e+4>>2]|0,r=e+8|0,o=t[r>>2]|0,(o|0)!=(n|0)&&(t[r>>2]=o+(~((o+-8-n|0)>>>3)<<3)),e=t[e>>2]|0,e|0&&Ve(e)}function L8(e){e=e|0,lF(e)}function uF(e){e=e|0,sF(e+24|0)}function sF(e){e=e|0;var n=0,r=0,o=0;r=t[e>>2]|0,o=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~((n+-8-o|0)>>>3)<<3)),Ve(r))}function lF(e){e=e|0;var n=0;n=An()|0,Nn(e,1,12,n,fF()|0,2),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function fF(){return 1896}function cF(e,n,r){e=e|0,n=n|0,r=r|0,dF(t[(aF(e)|0)>>2]|0,n,r)}function aF(e){return e=e|0,(t[(q4()|0)+24>>2]|0)+(e<<3)|0}function dF(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0,l=0;o=h,h=h+16|0,l=o+4|0,s=o,pF(l,n),n=hF(l,n)|0,$s(s,r),r=Ks(s,r)|0,Bl[e&31](n,r),Xs(s),h=o}function pF(e,n){e=e|0,n=n|0}function hF(e,n){return e=e|0,n=n|0,mF(n)|0}function mF(e){return e=e|0,e|0}function vF(){var e=0;return c[8080]|0||(R8(11040),Bt(70,11040,Q|0)|0,e=8080,t[e>>2]=1,t[e+4>>2]=0),Dn(11040)|0||R8(11040),11040}function R8(e){e=e|0,yF(e),sc(e,71)}function gF(e){e=e|0,_F(e+24|0)}function _F(e){e=e|0;var n=0,r=0,o=0;r=t[e>>2]|0,o=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~((n+-8-o|0)>>>3)<<3)),Ve(r))}function yF(e){e=e|0;var n=0;n=An()|0,Nn(e,5,7,n,SF()|0,0),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function wF(e){e=e|0,DF(e)}function DF(e){e=e|0,EF(e)}function EF(e){e=e|0,c[e+8>>0]=1}function SF(){return 1936}function CF(){return TF()|0}function TF(){var e=0,n=0,r=0,o=0,s=0,l=0,d=0;return n=h,h=h+16|0,s=n+4|0,d=n,r=Qo(8)|0,e=r,l=e+4|0,t[l>>2]=Tt(1)|0,o=Tt(8)|0,l=t[l>>2]|0,t[d>>2]=0,t[s>>2]=t[d>>2],xF(o,l,s),t[r>>2]=o,h=n,e|0}function xF(e,n,r){e=e|0,n=n|0,r=r|0,t[e>>2]=n,r=Tt(16)|0,t[r+4>>2]=0,t[r+8>>2]=0,t[r>>2]=1916,t[r+12>>2]=n,t[e+4>>2]=r}function kF(e){e=e|0,da(e),Ve(e)}function AF(e){e=e|0,e=t[e+12>>2]|0,e|0&&Ve(e)}function OF(e){e=e|0,Ve(e)}function IF(){var e=0;return c[8088]|0||(BF(11076),Bt(25,11076,Q|0)|0,e=8088,t[e>>2]=1,t[e+4>>2]=0),11076}function PF(e,n){e=e|0,n=n|0,t[e>>2]=MF()|0,t[e+4>>2]=FF()|0,t[e+12>>2]=n,t[e+8>>2]=LF()|0,t[e+32>>2]=10}function MF(){return 11745}function FF(){return 1940}function LF(){return eh()|0}function RF(e,n,r,o){e=e|0,n=n|0,r=r|0,o=o|0,(Sf(o,896)|0)==512?r|0&&(NF(r),Ve(r)):n|0&&Ve(n)}function NF(e){e=e|0,e=t[e+4>>2]|0,e|0&&Tf(e)}function BF(e){e=e|0,Ys(e)}function os(e,n){e=e|0,n=n|0,t[e>>2]=n}function z4(e){return e=e|0,t[e>>2]|0}function jF(e){return e=e|0,c[t[e>>2]>>0]|0}function UF(e,n){e=e|0,n=n|0;var r=0,o=0;r=h,h=h+16|0,o=r,t[o>>2]=t[e>>2],qF(n,o)|0,h=r}function qF(e,n){e=e|0,n=n|0;var r=0;return r=zF(t[e>>2]|0,n)|0,n=e+4|0,t[(t[n>>2]|0)+8>>2]=r,t[(t[n>>2]|0)+8>>2]|0}function zF(e,n){e=e|0,n=n|0;var r=0,o=0;return r=h,h=h+16|0,o=r,Zo(o),e=Oi(e)|0,n=WF(e,t[n>>2]|0)|0,eu(o),h=r,n|0}function Zo(e){e=e|0,t[e>>2]=t[2701],t[e+4>>2]=t[2703]}function WF(e,n){e=e|0,n=n|0;var r=0;return r=ko(HF()|0)|0,sf(0,r|0,e|0,L4(n)|0)|0}function eu(e){e=e|0,C8(t[e>>2]|0,t[e+4>>2]|0)}function HF(){var e=0;return c[8096]|0||(bF(11120),e=8096,t[e>>2]=1,t[e+4>>2]=0),11120}function bF(e){e=e|0,Ao(e,GF()|0,1)}function GF(){return 1948}function VF(){YF()}function YF(){var e=0,n=0,r=0,o=0,s=0,l=0,d=0,_=0,y=0,k=0,T=0,P=0,q=0,we=0,le=0,ie=0;if(le=h,h=h+16|0,T=le+4|0,P=le,si(65536,10804,t[2702]|0,10812),r=o8()|0,n=t[r>>2]|0,e=t[n>>2]|0,e|0)for(o=t[r+8>>2]|0,r=t[r+4>>2]|0;As(e|0,C[r>>0]|0|0,c[o>>0]|0),n=n+4|0,e=t[n>>2]|0,e;)o=o+1|0,r=r+1|0;if(e=u8()|0,n=t[e>>2]|0,n|0)do uu(n|0,t[e+4>>2]|0),e=e+8|0,n=t[e>>2]|0;while((n|0)!=0);uu($F()|0,5167),k=sa()|0,e=t[k>>2]|0;e:do if(e|0){do KF(t[e+4>>2]|0),e=t[e>>2]|0;while((e|0)!=0);if(e=t[k>>2]|0,e|0){y=k;do{for(;s=e,e=t[e>>2]|0,s=t[s+4>>2]|0,!!(XF(s)|0);)if(t[P>>2]=y,t[T>>2]=t[P>>2],JF(k,T)|0,!e)break e;if(QF(s),y=t[y>>2]|0,n=N8(s)|0,l=Wo()|0,d=h,h=h+((1*(n<<2)|0)+15&-16)|0,_=h,h=h+((1*(n<<2)|0)+15&-16)|0,n=t[(_8(s)|0)>>2]|0,n|0)for(r=d,o=_;t[r>>2]=t[(la(t[n+4>>2]|0)|0)>>2],t[o>>2]=t[n+8>>2],n=t[n>>2]|0,n;)r=r+4|0,o=o+4|0;ie=la(s)|0,n=ZF(s)|0,r=N8(s)|0,o=eL(s)|0,Is(ie|0,n|0,d|0,_|0,r|0,o|0,A4(s)|0),b0(l|0)}while((e|0)!=0)}}while(0);if(e=t[(O4()|0)>>2]|0,e|0)do ie=e+4|0,k=I4(ie)|0,s=V1(k)|0,l=b1(k)|0,d=(G1(k)|0)+1|0,_=oh(k)|0,y=B8(ie)|0,k=Dn(k)|0,T=nh(ie)|0,P=W4(ie)|0,zo(0,s|0,l|0,d|0,_|0,y|0,k|0,T|0,P|0,H4(ie)|0),e=t[e>>2]|0;while((e|0)!=0);e=t[(sa()|0)>>2]|0;e:do if(e|0){t:for(;;){if(n=t[e+4>>2]|0,n|0?(q=t[(la(n)|0)>>2]|0,we=t[(y8(n)|0)>>2]|0,we|0):0){r=we;do{n=r+4|0,o=I4(n)|0;n:do if(o|0)switch(Dn(o)|0){case 0:break t;case 4:case 3:case 2:{_=V1(o)|0,y=b1(o)|0,k=(G1(o)|0)+1|0,T=oh(o)|0,P=Dn(o)|0,ie=nh(n)|0,zo(q|0,_|0,y|0,k|0,T|0,0,P|0,ie|0,W4(n)|0,H4(n)|0);break n}case 1:{d=V1(o)|0,_=b1(o)|0,y=(G1(o)|0)+1|0,k=oh(o)|0,T=B8(n)|0,P=Dn(o)|0,ie=nh(n)|0,zo(q|0,d|0,_|0,y|0,k|0,T|0,P|0,ie|0,W4(n)|0,H4(n)|0);break n}case 5:{k=V1(o)|0,T=b1(o)|0,P=(G1(o)|0)+1|0,ie=oh(o)|0,zo(q|0,k|0,T|0,P|0,ie|0,tL(o)|0,Dn(o)|0,0,0,0);break n}default:break n}while(0);r=t[r>>2]|0}while((r|0)!=0)}if(e=t[e>>2]|0,!e)break e}_n()}while(0);uf(),h=le}function $F(){return 11703}function KF(e){e=e|0,c[e+40>>0]=0}function XF(e){return e=e|0,(c[e+40>>0]|0)!=0|0}function JF(e,n){return e=e|0,n=n|0,n=nL(n)|0,e=t[n>>2]|0,t[n>>2]=t[e>>2],Ve(e),t[n>>2]|0}function QF(e){e=e|0,c[e+40>>0]=1}function N8(e){return e=e|0,t[e+20>>2]|0}function ZF(e){return e=e|0,t[e+8>>2]|0}function eL(e){return e=e|0,t[e+32>>2]|0}function oh(e){return e=e|0,t[e+4>>2]|0}function B8(e){return e=e|0,t[e+4>>2]|0}function W4(e){return e=e|0,t[e+8>>2]|0}function H4(e){return e=e|0,t[e+16>>2]|0}function tL(e){return e=e|0,t[e+20>>2]|0}function nL(e){return e=e|0,t[e>>2]|0}function uh(e){e=e|0;var n=0,r=0,o=0,s=0,l=0,d=0,_=0,y=0,k=0,T=0,P=0,q=0,we=0,le=0,ie=0,Pe=0,ke=0,qe=0,pe=0,_e=0,vt=0;vt=h,h=h+16|0,q=vt;do if(e>>>0<245){if(k=e>>>0<11?16:e+11&-8,e=k>>>3,P=t[2783]|0,r=P>>>e,r&3|0)return n=(r&1^1)+e|0,e=11172+(n<<1<<2)|0,r=e+8|0,o=t[r>>2]|0,s=o+8|0,l=t[s>>2]|0,(e|0)==(l|0)?t[2783]=P&~(1<>2]=e,t[r>>2]=l),_e=n<<3,t[o+4>>2]=_e|3,_e=o+_e+4|0,t[_e>>2]=t[_e>>2]|1,_e=s,h=vt,_e|0;if(T=t[2785]|0,k>>>0>T>>>0){if(r|0)return n=2<>>12&16,n=n>>>d,r=n>>>5&8,n=n>>>r,s=n>>>2&4,n=n>>>s,e=n>>>1&2,n=n>>>e,o=n>>>1&1,o=(r|d|s|e|o)+(n>>>o)|0,n=11172+(o<<1<<2)|0,e=n+8|0,s=t[e>>2]|0,d=s+8|0,r=t[d>>2]|0,(n|0)==(r|0)?(e=P&~(1<>2]=n,t[e>>2]=r,e=P),l=(o<<3)-k|0,t[s+4>>2]=k|3,o=s+k|0,t[o+4>>2]=l|1,t[o+l>>2]=l,T|0&&(s=t[2788]|0,n=T>>>3,r=11172+(n<<1<<2)|0,n=1<>2]|0):(t[2783]=e|n,n=r,e=r+8|0),t[e>>2]=s,t[n+12>>2]=s,t[s+8>>2]=n,t[s+12>>2]=r),t[2785]=l,t[2788]=o,_e=d,h=vt,_e|0;if(_=t[2784]|0,_){if(r=(_&0-_)+-1|0,d=r>>>12&16,r=r>>>d,l=r>>>5&8,r=r>>>l,y=r>>>2&4,r=r>>>y,o=r>>>1&2,r=r>>>o,e=r>>>1&1,e=t[11436+((l|d|y|o|e)+(r>>>e)<<2)>>2]|0,r=(t[e+4>>2]&-8)-k|0,o=t[e+16+(((t[e+16>>2]|0)==0&1)<<2)>>2]|0,!o)y=e,l=r;else{do d=(t[o+4>>2]&-8)-k|0,y=d>>>0>>0,r=y?d:r,e=y?o:e,o=t[o+16+(((t[o+16>>2]|0)==0&1)<<2)>>2]|0;while((o|0)!=0);y=e,l=r}if(d=y+k|0,y>>>0>>0){s=t[y+24>>2]|0,n=t[y+12>>2]|0;do if((n|0)==(y|0)){if(e=y+20|0,n=t[e>>2]|0,!n&&(e=y+16|0,n=t[e>>2]|0,!n)){r=0;break}for(;;){if(r=n+20|0,o=t[r>>2]|0,o|0){n=o,e=r;continue}if(r=n+16|0,o=t[r>>2]|0,o)n=o,e=r;else break}t[e>>2]=0,r=n}else r=t[y+8>>2]|0,t[r+12>>2]=n,t[n+8>>2]=r,r=n;while(0);do if(s|0){if(n=t[y+28>>2]|0,e=11436+(n<<2)|0,(y|0)==(t[e>>2]|0)){if(t[e>>2]=r,!r){t[2784]=_&~(1<>2]|0)!=(y|0)&1)<<2)>>2]=r,!r)break;t[r+24>>2]=s,n=t[y+16>>2]|0,n|0&&(t[r+16>>2]=n,t[n+24>>2]=r),n=t[y+20>>2]|0,n|0&&(t[r+20>>2]=n,t[n+24>>2]=r)}while(0);return l>>>0<16?(_e=l+k|0,t[y+4>>2]=_e|3,_e=y+_e+4|0,t[_e>>2]=t[_e>>2]|1):(t[y+4>>2]=k|3,t[d+4>>2]=l|1,t[d+l>>2]=l,T|0&&(o=t[2788]|0,n=T>>>3,r=11172+(n<<1<<2)|0,n=1<>2]|0):(t[2783]=P|n,n=r,e=r+8|0),t[e>>2]=o,t[n+12>>2]=o,t[o+8>>2]=n,t[o+12>>2]=r),t[2785]=l,t[2788]=d),_e=y+8|0,h=vt,_e|0}else P=k}else P=k}else P=k}else if(e>>>0<=4294967231)if(e=e+11|0,k=e&-8,y=t[2784]|0,y){o=0-k|0,e=e>>>8,e?k>>>0>16777215?_=31:(P=(e+1048320|0)>>>16&8,pe=e<>>16&4,pe=pe<>>16&2,_=14-(T|P|_)+(pe<<_>>>15)|0,_=k>>>(_+7|0)&1|_<<1):_=0,r=t[11436+(_<<2)>>2]|0;e:do if(!r)r=0,e=0,pe=57;else for(e=0,d=k<<((_|0)==31?0:25-(_>>>1)|0),l=0;;){if(s=(t[r+4>>2]&-8)-k|0,s>>>0>>0)if(s)e=r,o=s;else{e=r,o=0,s=r,pe=61;break e}if(s=t[r+20>>2]|0,r=t[r+16+(d>>>31<<2)>>2]|0,l=(s|0)==0|(s|0)==(r|0)?l:s,s=(r|0)==0,s){r=l,pe=57;break}else d=d<<((s^1)&1)}while(0);if((pe|0)==57){if((r|0)==0&(e|0)==0){if(e=2<<_,e=y&(e|0-e),!e){P=k;break}P=(e&0-e)+-1|0,d=P>>>12&16,P=P>>>d,l=P>>>5&8,P=P>>>l,_=P>>>2&4,P=P>>>_,T=P>>>1&2,P=P>>>T,r=P>>>1&1,e=0,r=t[11436+((l|d|_|T|r)+(P>>>r)<<2)>>2]|0}r?(s=r,pe=61):(_=e,d=o)}if((pe|0)==61)for(;;)if(pe=0,r=(t[s+4>>2]&-8)-k|0,P=r>>>0>>0,r=P?r:o,e=P?s:e,s=t[s+16+(((t[s+16>>2]|0)==0&1)<<2)>>2]|0,s)o=r,pe=61;else{_=e,d=r;break}if((_|0)!=0?d>>>0<((t[2785]|0)-k|0)>>>0:0){if(l=_+k|0,_>>>0>=l>>>0)return _e=0,h=vt,_e|0;s=t[_+24>>2]|0,n=t[_+12>>2]|0;do if((n|0)==(_|0)){if(e=_+20|0,n=t[e>>2]|0,!n&&(e=_+16|0,n=t[e>>2]|0,!n)){n=0;break}for(;;){if(r=n+20|0,o=t[r>>2]|0,o|0){n=o,e=r;continue}if(r=n+16|0,o=t[r>>2]|0,o)n=o,e=r;else break}t[e>>2]=0}else _e=t[_+8>>2]|0,t[_e+12>>2]=n,t[n+8>>2]=_e;while(0);do if(s){if(e=t[_+28>>2]|0,r=11436+(e<<2)|0,(_|0)==(t[r>>2]|0)){if(t[r>>2]=n,!n){o=y&~(1<>2]|0)!=(_|0)&1)<<2)>>2]=n,!n){o=y;break}t[n+24>>2]=s,e=t[_+16>>2]|0,e|0&&(t[n+16>>2]=e,t[e+24>>2]=n),e=t[_+20>>2]|0,e&&(t[n+20>>2]=e,t[e+24>>2]=n),o=y}else o=y;while(0);do if(d>>>0>=16){if(t[_+4>>2]=k|3,t[l+4>>2]=d|1,t[l+d>>2]=d,n=d>>>3,d>>>0<256){r=11172+(n<<1<<2)|0,e=t[2783]|0,n=1<>2]|0):(t[2783]=e|n,n=r,e=r+8|0),t[e>>2]=l,t[n+12>>2]=l,t[l+8>>2]=n,t[l+12>>2]=r;break}if(n=d>>>8,n?d>>>0>16777215?n=31:(pe=(n+1048320|0)>>>16&8,_e=n<>>16&4,_e=_e<>>16&2,n=14-(qe|pe|n)+(_e<>>15)|0,n=d>>>(n+7|0)&1|n<<1):n=0,r=11436+(n<<2)|0,t[l+28>>2]=n,e=l+16|0,t[e+4>>2]=0,t[e>>2]=0,e=1<>2]=l,t[l+24>>2]=r,t[l+12>>2]=l,t[l+8>>2]=l;break}for(e=d<<((n|0)==31?0:25-(n>>>1)|0),r=t[r>>2]|0;;){if((t[r+4>>2]&-8|0)==(d|0)){pe=97;break}if(o=r+16+(e>>>31<<2)|0,n=t[o>>2]|0,n)e=e<<1,r=n;else{pe=96;break}}if((pe|0)==96){t[o>>2]=l,t[l+24>>2]=r,t[l+12>>2]=l,t[l+8>>2]=l;break}else if((pe|0)==97){pe=r+8|0,_e=t[pe>>2]|0,t[_e+12>>2]=l,t[pe>>2]=l,t[l+8>>2]=_e,t[l+12>>2]=r,t[l+24>>2]=0;break}}else _e=d+k|0,t[_+4>>2]=_e|3,_e=_+_e+4|0,t[_e>>2]=t[_e>>2]|1;while(0);return _e=_+8|0,h=vt,_e|0}else P=k}else P=k;else P=-1;while(0);if(r=t[2785]|0,r>>>0>=P>>>0)return n=r-P|0,e=t[2788]|0,n>>>0>15?(_e=e+P|0,t[2788]=_e,t[2785]=n,t[_e+4>>2]=n|1,t[_e+n>>2]=n,t[e+4>>2]=P|3):(t[2785]=0,t[2788]=0,t[e+4>>2]=r|3,_e=e+r+4|0,t[_e>>2]=t[_e>>2]|1),_e=e+8|0,h=vt,_e|0;if(d=t[2786]|0,d>>>0>P>>>0)return qe=d-P|0,t[2786]=qe,_e=t[2789]|0,pe=_e+P|0,t[2789]=pe,t[pe+4>>2]=qe|1,t[_e+4>>2]=P|3,_e=_e+8|0,h=vt,_e|0;if(t[2901]|0?e=t[2903]|0:(t[2903]=4096,t[2902]=4096,t[2904]=-1,t[2905]=-1,t[2906]=0,t[2894]=0,e=q&-16^1431655768,t[q>>2]=e,t[2901]=e,e=4096),_=P+48|0,y=P+47|0,l=e+y|0,s=0-e|0,k=l&s,k>>>0<=P>>>0||(e=t[2893]|0,e|0?(T=t[2891]|0,q=T+k|0,q>>>0<=T>>>0|q>>>0>e>>>0):0))return _e=0,h=vt,_e|0;e:do if(t[2894]&4)n=0,pe=133;else{r=t[2789]|0;t:do if(r){for(o=11580;e=t[o>>2]|0,!(e>>>0<=r>>>0?(ie=o+4|0,(e+(t[ie>>2]|0)|0)>>>0>r>>>0):0);)if(e=t[o+8>>2]|0,e)o=e;else{pe=118;break t}if(n=l-d&s,n>>>0<2147483647)if(e=xf(n|0)|0,(e|0)==((t[o>>2]|0)+(t[ie>>2]|0)|0)){if((e|0)!=(-1|0)){d=n,l=e,pe=135;break e}}else o=e,pe=126;else n=0}else pe=118;while(0);do if((pe|0)==118)if(r=xf(0)|0,(r|0)!=(-1|0)?(n=r,we=t[2902]|0,le=we+-1|0,n=((le&n|0)==0?0:(le+n&0-we)-n|0)+k|0,we=t[2891]|0,le=n+we|0,n>>>0>P>>>0&n>>>0<2147483647):0){if(ie=t[2893]|0,ie|0?le>>>0<=we>>>0|le>>>0>ie>>>0:0){n=0;break}if(e=xf(n|0)|0,(e|0)==(r|0)){d=n,l=r,pe=135;break e}else o=e,pe=126}else n=0;while(0);do if((pe|0)==126){if(r=0-n|0,!(_>>>0>n>>>0&(n>>>0<2147483647&(o|0)!=(-1|0))))if((o|0)==(-1|0)){n=0;break}else{d=n,l=o,pe=135;break e}if(e=t[2903]|0,e=y-n+e&0-e,e>>>0>=2147483647){d=n,l=o,pe=135;break e}if((xf(e|0)|0)==(-1|0)){xf(r|0)|0,n=0;break}else{d=e+n|0,l=o,pe=135;break e}}while(0);t[2894]=t[2894]|4,pe=133}while(0);if((((pe|0)==133?k>>>0<2147483647:0)?(qe=xf(k|0)|0,ie=xf(0)|0,Pe=ie-qe|0,ke=Pe>>>0>(P+40|0)>>>0,!((qe|0)==(-1|0)|ke^1|qe>>>0>>0&((qe|0)!=(-1|0)&(ie|0)!=(-1|0))^1)):0)&&(d=ke?Pe:n,l=qe,pe=135),(pe|0)==135){n=(t[2891]|0)+d|0,t[2891]=n,n>>>0>(t[2892]|0)>>>0&&(t[2892]=n),y=t[2789]|0;do if(y){for(n=11580;;){if(e=t[n>>2]|0,r=n+4|0,o=t[r>>2]|0,(l|0)==(e+o|0)){pe=145;break}if(s=t[n+8>>2]|0,s)n=s;else break}if(((pe|0)==145?(t[n+12>>2]&8|0)==0:0)?y>>>0>>0&y>>>0>=e>>>0:0){t[r>>2]=o+d,_e=y+8|0,_e=(_e&7|0)==0?0:0-_e&7,pe=y+_e|0,_e=(t[2786]|0)+(d-_e)|0,t[2789]=pe,t[2786]=_e,t[pe+4>>2]=_e|1,t[pe+_e+4>>2]=40,t[2790]=t[2905];break}for(l>>>0<(t[2787]|0)>>>0&&(t[2787]=l),r=l+d|0,n=11580;;){if((t[n>>2]|0)==(r|0)){pe=153;break}if(e=t[n+8>>2]|0,e)n=e;else break}if((pe|0)==153?(t[n+12>>2]&8|0)==0:0){t[n>>2]=l,T=n+4|0,t[T>>2]=(t[T>>2]|0)+d,T=l+8|0,T=l+((T&7|0)==0?0:0-T&7)|0,n=r+8|0,n=r+((n&7|0)==0?0:0-n&7)|0,k=T+P|0,_=n-T-P|0,t[T+4>>2]=P|3;do if((n|0)!=(y|0)){if((n|0)==(t[2788]|0)){_e=(t[2785]|0)+_|0,t[2785]=_e,t[2788]=k,t[k+4>>2]=_e|1,t[k+_e>>2]=_e;break}if(e=t[n+4>>2]|0,(e&3|0)==1){d=e&-8,o=e>>>3;e:do if(e>>>0<256)if(e=t[n+8>>2]|0,r=t[n+12>>2]|0,(r|0)==(e|0)){t[2783]=t[2783]&~(1<>2]=r,t[r+8>>2]=e;break}else{l=t[n+24>>2]|0,e=t[n+12>>2]|0;do if((e|0)==(n|0)){if(o=n+16|0,r=o+4|0,e=t[r>>2]|0,!e)if(e=t[o>>2]|0,e)r=o;else{e=0;break}for(;;){if(o=e+20|0,s=t[o>>2]|0,s|0){e=s,r=o;continue}if(o=e+16|0,s=t[o>>2]|0,s)e=s,r=o;else break}t[r>>2]=0}else _e=t[n+8>>2]|0,t[_e+12>>2]=e,t[e+8>>2]=_e;while(0);if(!l)break;r=t[n+28>>2]|0,o=11436+(r<<2)|0;do if((n|0)!=(t[o>>2]|0)){if(t[l+16+(((t[l+16>>2]|0)!=(n|0)&1)<<2)>>2]=e,!e)break e}else{if(t[o>>2]=e,e|0)break;t[2784]=t[2784]&~(1<>2]=l,r=n+16|0,o=t[r>>2]|0,o|0&&(t[e+16>>2]=o,t[o+24>>2]=e),r=t[r+4>>2]|0,!r)break;t[e+20>>2]=r,t[r+24>>2]=e}while(0);n=n+d|0,s=d+_|0}else s=_;if(n=n+4|0,t[n>>2]=t[n>>2]&-2,t[k+4>>2]=s|1,t[k+s>>2]=s,n=s>>>3,s>>>0<256){r=11172+(n<<1<<2)|0,e=t[2783]|0,n=1<>2]|0):(t[2783]=e|n,n=r,e=r+8|0),t[e>>2]=k,t[n+12>>2]=k,t[k+8>>2]=n,t[k+12>>2]=r;break}n=s>>>8;do if(!n)n=0;else{if(s>>>0>16777215){n=31;break}pe=(n+1048320|0)>>>16&8,_e=n<>>16&4,_e=_e<>>16&2,n=14-(qe|pe|n)+(_e<>>15)|0,n=s>>>(n+7|0)&1|n<<1}while(0);if(o=11436+(n<<2)|0,t[k+28>>2]=n,e=k+16|0,t[e+4>>2]=0,t[e>>2]=0,e=t[2784]|0,r=1<>2]=k,t[k+24>>2]=o,t[k+12>>2]=k,t[k+8>>2]=k;break}for(e=s<<((n|0)==31?0:25-(n>>>1)|0),r=t[o>>2]|0;;){if((t[r+4>>2]&-8|0)==(s|0)){pe=194;break}if(o=r+16+(e>>>31<<2)|0,n=t[o>>2]|0,n)e=e<<1,r=n;else{pe=193;break}}if((pe|0)==193){t[o>>2]=k,t[k+24>>2]=r,t[k+12>>2]=k,t[k+8>>2]=k;break}else if((pe|0)==194){pe=r+8|0,_e=t[pe>>2]|0,t[_e+12>>2]=k,t[pe>>2]=k,t[k+8>>2]=_e,t[k+12>>2]=r,t[k+24>>2]=0;break}}else _e=(t[2786]|0)+_|0,t[2786]=_e,t[2789]=k,t[k+4>>2]=_e|1;while(0);return _e=T+8|0,h=vt,_e|0}for(n=11580;e=t[n>>2]|0,!(e>>>0<=y>>>0?(_e=e+(t[n+4>>2]|0)|0,_e>>>0>y>>>0):0);)n=t[n+8>>2]|0;s=_e+-47|0,e=s+8|0,e=s+((e&7|0)==0?0:0-e&7)|0,s=y+16|0,e=e>>>0>>0?y:e,n=e+8|0,r=l+8|0,r=(r&7|0)==0?0:0-r&7,pe=l+r|0,r=d+-40-r|0,t[2789]=pe,t[2786]=r,t[pe+4>>2]=r|1,t[pe+r+4>>2]=40,t[2790]=t[2905],r=e+4|0,t[r>>2]=27,t[n>>2]=t[2895],t[n+4>>2]=t[2896],t[n+8>>2]=t[2897],t[n+12>>2]=t[2898],t[2895]=l,t[2896]=d,t[2898]=0,t[2897]=n,n=e+24|0;do pe=n,n=n+4|0,t[n>>2]=7;while((pe+8|0)>>>0<_e>>>0);if((e|0)!=(y|0)){if(l=e-y|0,t[r>>2]=t[r>>2]&-2,t[y+4>>2]=l|1,t[e>>2]=l,n=l>>>3,l>>>0<256){r=11172+(n<<1<<2)|0,e=t[2783]|0,n=1<>2]|0):(t[2783]=e|n,n=r,e=r+8|0),t[e>>2]=y,t[n+12>>2]=y,t[y+8>>2]=n,t[y+12>>2]=r;break}if(n=l>>>8,n?l>>>0>16777215?r=31:(pe=(n+1048320|0)>>>16&8,_e=n<>>16&4,_e=_e<>>16&2,r=14-(qe|pe|r)+(_e<>>15)|0,r=l>>>(r+7|0)&1|r<<1):r=0,o=11436+(r<<2)|0,t[y+28>>2]=r,t[y+20>>2]=0,t[s>>2]=0,n=t[2784]|0,e=1<>2]=y,t[y+24>>2]=o,t[y+12>>2]=y,t[y+8>>2]=y;break}for(e=l<<((r|0)==31?0:25-(r>>>1)|0),r=t[o>>2]|0;;){if((t[r+4>>2]&-8|0)==(l|0)){pe=216;break}if(o=r+16+(e>>>31<<2)|0,n=t[o>>2]|0,n)e=e<<1,r=n;else{pe=215;break}}if((pe|0)==215){t[o>>2]=y,t[y+24>>2]=r,t[y+12>>2]=y,t[y+8>>2]=y;break}else if((pe|0)==216){pe=r+8|0,_e=t[pe>>2]|0,t[_e+12>>2]=y,t[pe>>2]=y,t[y+8>>2]=_e,t[y+12>>2]=r,t[y+24>>2]=0;break}}}else{_e=t[2787]|0,(_e|0)==0|l>>>0<_e>>>0&&(t[2787]=l),t[2895]=l,t[2896]=d,t[2898]=0,t[2792]=t[2901],t[2791]=-1,n=0;do _e=11172+(n<<1<<2)|0,t[_e+12>>2]=_e,t[_e+8>>2]=_e,n=n+1|0;while((n|0)!=32);_e=l+8|0,_e=(_e&7|0)==0?0:0-_e&7,pe=l+_e|0,_e=d+-40-_e|0,t[2789]=pe,t[2786]=_e,t[pe+4>>2]=_e|1,t[pe+_e+4>>2]=40,t[2790]=t[2905]}while(0);if(n=t[2786]|0,n>>>0>P>>>0)return qe=n-P|0,t[2786]=qe,_e=t[2789]|0,pe=_e+P|0,t[2789]=pe,t[pe+4>>2]=qe|1,t[_e+4>>2]=P|3,_e=_e+8|0,h=vt,_e|0}return t[(ca()|0)>>2]=12,_e=0,h=vt,_e|0}function sh(e){e=e|0;var n=0,r=0,o=0,s=0,l=0,d=0,_=0,y=0;if(!!e){r=e+-8|0,s=t[2787]|0,e=t[e+-4>>2]|0,n=e&-8,y=r+n|0;do if(e&1)_=r,d=r;else{if(o=t[r>>2]|0,!(e&3)||(d=r+(0-o)|0,l=o+n|0,d>>>0>>0))return;if((d|0)==(t[2788]|0)){if(e=y+4|0,n=t[e>>2]|0,(n&3|0)!=3){_=d,n=l;break}t[2785]=l,t[e>>2]=n&-2,t[d+4>>2]=l|1,t[d+l>>2]=l;return}if(r=o>>>3,o>>>0<256)if(e=t[d+8>>2]|0,n=t[d+12>>2]|0,(n|0)==(e|0)){t[2783]=t[2783]&~(1<>2]=n,t[n+8>>2]=e,_=d,n=l;break}s=t[d+24>>2]|0,e=t[d+12>>2]|0;do if((e|0)==(d|0)){if(r=d+16|0,n=r+4|0,e=t[n>>2]|0,!e)if(e=t[r>>2]|0,e)n=r;else{e=0;break}for(;;){if(r=e+20|0,o=t[r>>2]|0,o|0){e=o,n=r;continue}if(r=e+16|0,o=t[r>>2]|0,o)e=o,n=r;else break}t[n>>2]=0}else _=t[d+8>>2]|0,t[_+12>>2]=e,t[e+8>>2]=_;while(0);if(s){if(n=t[d+28>>2]|0,r=11436+(n<<2)|0,(d|0)==(t[r>>2]|0)){if(t[r>>2]=e,!e){t[2784]=t[2784]&~(1<>2]|0)!=(d|0)&1)<<2)>>2]=e,!e){_=d,n=l;break}t[e+24>>2]=s,n=d+16|0,r=t[n>>2]|0,r|0&&(t[e+16>>2]=r,t[r+24>>2]=e),n=t[n+4>>2]|0,n?(t[e+20>>2]=n,t[n+24>>2]=e,_=d,n=l):(_=d,n=l)}else _=d,n=l}while(0);if(!(d>>>0>=y>>>0)&&(e=y+4|0,o=t[e>>2]|0,!!(o&1))){if(o&2)t[e>>2]=o&-2,t[_+4>>2]=n|1,t[d+n>>2]=n,s=n;else{if(e=t[2788]|0,(y|0)==(t[2789]|0)){if(y=(t[2786]|0)+n|0,t[2786]=y,t[2789]=_,t[_+4>>2]=y|1,(_|0)!=(e|0))return;t[2788]=0,t[2785]=0;return}if((y|0)==(e|0)){y=(t[2785]|0)+n|0,t[2785]=y,t[2788]=d,t[_+4>>2]=y|1,t[d+y>>2]=y;return}s=(o&-8)+n|0,r=o>>>3;do if(o>>>0<256)if(n=t[y+8>>2]|0,e=t[y+12>>2]|0,(e|0)==(n|0)){t[2783]=t[2783]&~(1<>2]=e,t[e+8>>2]=n;break}else{l=t[y+24>>2]|0,e=t[y+12>>2]|0;do if((e|0)==(y|0)){if(r=y+16|0,n=r+4|0,e=t[n>>2]|0,!e)if(e=t[r>>2]|0,e)n=r;else{r=0;break}for(;;){if(r=e+20|0,o=t[r>>2]|0,o|0){e=o,n=r;continue}if(r=e+16|0,o=t[r>>2]|0,o)e=o,n=r;else break}t[n>>2]=0,r=e}else r=t[y+8>>2]|0,t[r+12>>2]=e,t[e+8>>2]=r,r=e;while(0);if(l|0){if(e=t[y+28>>2]|0,n=11436+(e<<2)|0,(y|0)==(t[n>>2]|0)){if(t[n>>2]=r,!r){t[2784]=t[2784]&~(1<>2]|0)!=(y|0)&1)<<2)>>2]=r,!r)break;t[r+24>>2]=l,e=y+16|0,n=t[e>>2]|0,n|0&&(t[r+16>>2]=n,t[n+24>>2]=r),e=t[e+4>>2]|0,e|0&&(t[r+20>>2]=e,t[e+24>>2]=r)}}while(0);if(t[_+4>>2]=s|1,t[d+s>>2]=s,(_|0)==(t[2788]|0)){t[2785]=s;return}}if(e=s>>>3,s>>>0<256){r=11172+(e<<1<<2)|0,n=t[2783]|0,e=1<>2]|0):(t[2783]=n|e,e=r,n=r+8|0),t[n>>2]=_,t[e+12>>2]=_,t[_+8>>2]=e,t[_+12>>2]=r;return}e=s>>>8,e?s>>>0>16777215?e=31:(d=(e+1048320|0)>>>16&8,y=e<>>16&4,y=y<>>16&2,e=14-(l|d|e)+(y<>>15)|0,e=s>>>(e+7|0)&1|e<<1):e=0,o=11436+(e<<2)|0,t[_+28>>2]=e,t[_+20>>2]=0,t[_+16>>2]=0,n=t[2784]|0,r=1<>>1)|0),r=t[o>>2]|0;;){if((t[r+4>>2]&-8|0)==(s|0)){e=73;break}if(o=r+16+(n>>>31<<2)|0,e=t[o>>2]|0,e)n=n<<1,r=e;else{e=72;break}}if((e|0)==72){t[o>>2]=_,t[_+24>>2]=r,t[_+12>>2]=_,t[_+8>>2]=_;break}else if((e|0)==73){d=r+8|0,y=t[d>>2]|0,t[y+12>>2]=_,t[d>>2]=_,t[_+8>>2]=y,t[_+12>>2]=r,t[_+24>>2]=0;break}}else t[2784]=n|r,t[o>>2]=_,t[_+24>>2]=o,t[_+12>>2]=_,t[_+8>>2]=_;while(0);if(y=(t[2791]|0)+-1|0,t[2791]=y,!y)e=11588;else return;for(;e=t[e>>2]|0,e;)e=e+8|0;t[2791]=-1}}}function rL(){return 11628}function iL(e){e=e|0;var n=0,r=0;return n=h,h=h+16|0,r=n,t[r>>2]=sL(t[e+60>>2]|0)|0,e=lh(Ms(6,r|0)|0)|0,h=n,e|0}function j8(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0,l=0,d=0,_=0,y=0,k=0,T=0,P=0,q=0,we=0;P=h,h=h+48|0,k=P+16|0,l=P,s=P+32|0,_=e+28|0,o=t[_>>2]|0,t[s>>2]=o,y=e+20|0,o=(t[y>>2]|0)-o|0,t[s+4>>2]=o,t[s+8>>2]=n,t[s+12>>2]=r,o=o+r|0,d=e+60|0,t[l>>2]=t[d>>2],t[l+4>>2]=s,t[l+8>>2]=2,l=lh(G0(146,l|0)|0)|0;e:do if((o|0)!=(l|0)){for(n=2;!((l|0)<0);)if(o=o-l|0,we=t[s+4>>2]|0,q=l>>>0>we>>>0,s=q?s+8|0:s,n=(q<<31>>31)+n|0,we=l-(q?we:0)|0,t[s>>2]=(t[s>>2]|0)+we,q=s+4|0,t[q>>2]=(t[q>>2]|0)-we,t[k>>2]=t[d>>2],t[k+4>>2]=s,t[k+8>>2]=n,l=lh(G0(146,k|0)|0)|0,(o|0)==(l|0)){T=3;break e}t[e+16>>2]=0,t[_>>2]=0,t[y>>2]=0,t[e>>2]=t[e>>2]|32,(n|0)==2?r=0:r=r-(t[s+4>>2]|0)|0}else T=3;while(0);return(T|0)==3&&(we=t[e+44>>2]|0,t[e+16>>2]=we+(t[e+48>>2]|0),t[_>>2]=we,t[y>>2]=we),h=P,r|0}function oL(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0,l=0;return s=h,h=h+32|0,l=s,o=s+20|0,t[l>>2]=t[e+60>>2],t[l+4>>2]=0,t[l+8>>2]=n,t[l+12>>2]=o,t[l+16>>2]=r,(lh(Uu(140,l|0)|0)|0)<0?(t[o>>2]=-1,e=-1):e=t[o>>2]|0,h=s,e|0}function lh(e){return e=e|0,e>>>0>4294963200&&(t[(ca()|0)>>2]=0-e,e=-1),e|0}function ca(){return(uL()|0)+64|0}function uL(){return b4()|0}function b4(){return 2084}function sL(e){return e=e|0,e|0}function lL(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0;return s=h,h=h+32|0,o=s,t[e+36>>2]=1,((t[e>>2]&64|0)==0?(t[o>>2]=t[e+60>>2],t[o+4>>2]=21523,t[o+8>>2]=s+16,su(54,o|0)|0):0)&&(c[e+75>>0]=-1),o=j8(e,n,r)|0,h=s,o|0}function U8(e,n){e=e|0,n=n|0;var r=0,o=0;if(r=c[e>>0]|0,o=c[n>>0]|0,r<<24>>24==0?1:r<<24>>24!=o<<24>>24)e=o;else{do e=e+1|0,n=n+1|0,r=c[e>>0]|0,o=c[n>>0]|0;while(!(r<<24>>24==0?1:r<<24>>24!=o<<24>>24));e=o}return(r&255)-(e&255)|0}function fL(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0;e:do if(!r)e=0;else{for(;o=c[e>>0]|0,s=c[n>>0]|0,o<<24>>24==s<<24>>24;)if(r=r+-1|0,r)e=e+1|0,n=n+1|0;else{e=0;break e}e=(o&255)-(s&255)|0}while(0);return e|0}function q8(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0,l=0,d=0,_=0,y=0,k=0,T=0,P=0,q=0,we=0,le=0,ie=0;ie=h,h=h+224|0,T=ie+120|0,P=ie+80|0,we=ie,le=ie+136|0,o=P,s=o+40|0;do t[o>>2]=0,o=o+4|0;while((o|0)<(s|0));return t[T>>2]=t[r>>2],(G4(0,n,T,we,P)|0)<0?r=-1:((t[e+76>>2]|0)>-1?q=cL(e)|0:q=0,r=t[e>>2]|0,k=r&32,(c[e+74>>0]|0)<1&&(t[e>>2]=r&-33),o=e+48|0,t[o>>2]|0?r=G4(e,n,T,we,P)|0:(s=e+44|0,l=t[s>>2]|0,t[s>>2]=le,d=e+28|0,t[d>>2]=le,_=e+20|0,t[_>>2]=le,t[o>>2]=80,y=e+16|0,t[y>>2]=le+80,r=G4(e,n,T,we,P)|0,l&&(dh[t[e+36>>2]&7](e,0,0)|0,r=(t[_>>2]|0)==0?-1:r,t[s>>2]=l,t[o>>2]=0,t[y>>2]=0,t[d>>2]=0,t[_>>2]=0)),o=t[e>>2]|0,t[e>>2]=o|k,q|0&&aL(e),r=(o&32|0)==0?r:-1),h=ie,r|0}function G4(e,n,r,o,s){e=e|0,n=n|0,r=r|0,o=o|0,s=s|0;var l=0,d=0,_=0,y=0,k=0,T=0,P=0,q=0,we=0,le=0,ie=0,Pe=0,ke=0,qe=0,pe=0,_e=0,vt=0,Ln=0,Ht=0,It=0,gn=0,Pn=0,zt=0;zt=h,h=h+64|0,Ht=zt+16|0,It=zt,vt=zt+24|0,gn=zt+8|0,Pn=zt+20|0,t[Ht>>2]=n,qe=(e|0)!=0,pe=vt+40|0,_e=pe,vt=vt+39|0,Ln=gn+4|0,d=0,l=0,T=0;e:for(;;){do if((l|0)>-1)if((d|0)>(2147483647-l|0)){t[(ca()|0)>>2]=75,l=-1;break}else{l=d+l|0;break}while(0);if(d=c[n>>0]|0,d<<24>>24)_=n;else{ke=87;break}t:for(;;){switch(d<<24>>24){case 37:{d=_,ke=9;break t}case 0:{d=_;break t}default:}Pe=_+1|0,t[Ht>>2]=Pe,d=c[Pe>>0]|0,_=Pe}t:do if((ke|0)==9)for(;;){if(ke=0,(c[_+1>>0]|0)!=37)break t;if(d=d+1|0,_=_+2|0,t[Ht>>2]=_,(c[_>>0]|0)==37)ke=9;else break}while(0);if(d=d-n|0,qe&&ri(e,n,d),d|0){n=_;continue}y=_+1|0,d=(c[y>>0]|0)+-48|0,d>>>0<10?(Pe=(c[_+2>>0]|0)==36,ie=Pe?d:-1,T=Pe?1:T,y=Pe?_+3|0:y):ie=-1,t[Ht>>2]=y,d=c[y>>0]|0,_=(d<<24>>24)+-32|0;t:do if(_>>>0<32)for(k=0,P=d;;){if(d=1<<_,!(d&75913)){d=P;break t}if(k=d|k,y=y+1|0,t[Ht>>2]=y,d=c[y>>0]|0,_=(d<<24>>24)+-32|0,_>>>0>=32)break;P=d}else k=0;while(0);if(d<<24>>24==42){if(_=y+1|0,d=(c[_>>0]|0)+-48|0,d>>>0<10?(c[y+2>>0]|0)==36:0)t[s+(d<<2)>>2]=10,d=t[o+((c[_>>0]|0)+-48<<3)>>2]|0,T=1,y=y+3|0;else{if(T|0){l=-1;break}qe?(T=(t[r>>2]|0)+(4-1)&~(4-1),d=t[T>>2]|0,t[r>>2]=T+4,T=0,y=_):(d=0,T=0,y=_)}t[Ht>>2]=y,Pe=(d|0)<0,d=Pe?0-d|0:d,k=Pe?k|8192:k}else{if(d=z8(Ht)|0,(d|0)<0){l=-1;break}y=t[Ht>>2]|0}do if((c[y>>0]|0)==46){if((c[y+1>>0]|0)!=42){t[Ht>>2]=y+1,_=z8(Ht)|0,y=t[Ht>>2]|0;break}if(P=y+2|0,_=(c[P>>0]|0)+-48|0,_>>>0<10?(c[y+3>>0]|0)==36:0){t[s+(_<<2)>>2]=10,_=t[o+((c[P>>0]|0)+-48<<3)>>2]|0,y=y+4|0,t[Ht>>2]=y;break}if(T|0){l=-1;break e}qe?(Pe=(t[r>>2]|0)+(4-1)&~(4-1),_=t[Pe>>2]|0,t[r>>2]=Pe+4):_=0,t[Ht>>2]=P,y=P}else _=-1;while(0);for(le=0;;){if(((c[y>>0]|0)+-65|0)>>>0>57){l=-1;break e}if(Pe=y+1|0,t[Ht>>2]=Pe,P=c[(c[y>>0]|0)+-65+(5178+(le*58|0))>>0]|0,q=P&255,(q+-1|0)>>>0<8)le=q,y=Pe;else break}if(!(P<<24>>24)){l=-1;break}we=(ie|0)>-1;do if(P<<24>>24==19)if(we){l=-1;break e}else ke=49;else{if(we){t[s+(ie<<2)>>2]=q,we=o+(ie<<3)|0,ie=t[we+4>>2]|0,ke=It,t[ke>>2]=t[we>>2],t[ke+4>>2]=ie,ke=49;break}if(!qe){l=0;break e}W8(It,q,r)}while(0);if((ke|0)==49?(ke=0,!qe):0){d=0,n=Pe;continue}y=c[y>>0]|0,y=(le|0)!=0&(y&15|0)==3?y&-33:y,we=k&-65537,ie=(k&8192|0)==0?k:we;t:do switch(y|0){case 110:switch((le&255)<<24>>24){case 0:{t[t[It>>2]>>2]=l,d=0,n=Pe;continue e}case 1:{t[t[It>>2]>>2]=l,d=0,n=Pe;continue e}case 2:{d=t[It>>2]|0,t[d>>2]=l,t[d+4>>2]=((l|0)<0)<<31>>31,d=0,n=Pe;continue e}case 3:{g[t[It>>2]>>1]=l,d=0,n=Pe;continue e}case 4:{c[t[It>>2]>>0]=l,d=0,n=Pe;continue e}case 6:{t[t[It>>2]>>2]=l,d=0,n=Pe;continue e}case 7:{d=t[It>>2]|0,t[d>>2]=l,t[d+4>>2]=((l|0)<0)<<31>>31,d=0,n=Pe;continue e}default:{d=0,n=Pe;continue e}}case 112:{y=120,_=_>>>0>8?_:8,n=ie|8,ke=61;break}case 88:case 120:{n=ie,ke=61;break}case 111:{y=It,n=t[y>>2]|0,y=t[y+4>>2]|0,q=pL(n,y,pe)|0,we=_e-q|0,k=0,P=5642,_=(ie&8|0)==0|(_|0)>(we|0)?_:we+1|0,we=ie,ke=67;break}case 105:case 100:if(y=It,n=t[y>>2]|0,y=t[y+4>>2]|0,(y|0)<0){n=fh(0,0,n|0,y|0)|0,y=be,k=It,t[k>>2]=n,t[k+4>>2]=y,k=1,P=5642,ke=66;break t}else{k=(ie&2049|0)!=0&1,P=(ie&2048|0)==0?(ie&1|0)==0?5642:5644:5643,ke=66;break t}case 117:{y=It,k=0,P=5642,n=t[y>>2]|0,y=t[y+4>>2]|0,ke=66;break}case 99:{c[vt>>0]=t[It>>2],n=vt,k=0,P=5642,q=pe,y=1,_=we;break}case 109:{y=hL(t[(ca()|0)>>2]|0)|0,ke=71;break}case 115:{y=t[It>>2]|0,y=y|0?y:5652,ke=71;break}case 67:{t[gn>>2]=t[It>>2],t[Ln>>2]=0,t[It>>2]=gn,q=-1,y=gn,ke=75;break}case 83:{n=t[It>>2]|0,_?(q=_,y=n,ke=75):(wi(e,32,d,0,ie),n=0,ke=84);break}case 65:case 71:case 70:case 69:case 97:case 103:case 102:case 101:{d=vL(e,+L[It>>3],d,_,ie,y)|0,n=Pe;continue e}default:k=0,P=5642,q=pe,y=_,_=ie}while(0);t:do if((ke|0)==61)ie=It,le=t[ie>>2]|0,ie=t[ie+4>>2]|0,q=dL(le,ie,pe,y&32)|0,P=(n&8|0)==0|(le|0)==0&(ie|0)==0,k=P?0:2,P=P?5642:5642+(y>>4)|0,we=n,n=le,y=ie,ke=67;else if((ke|0)==66)q=aa(n,y,pe)|0,we=ie,ke=67;else if((ke|0)==71)ke=0,ie=mL(y,0,_)|0,le=(ie|0)==0,n=y,k=0,P=5642,q=le?y+_|0:ie,y=le?_:ie-y|0,_=we;else if((ke|0)==75){for(ke=0,P=y,n=0,_=0;k=t[P>>2]|0,!(!k||(_=H8(Pn,k)|0,(_|0)<0|_>>>0>(q-n|0)>>>0));)if(n=_+n|0,q>>>0>n>>>0)P=P+4|0;else break;if((_|0)<0){l=-1;break e}if(wi(e,32,d,n,ie),!n)n=0,ke=84;else for(k=0;;){if(_=t[y>>2]|0,!_){ke=84;break t}if(_=H8(Pn,_)|0,k=_+k|0,(k|0)>(n|0)){ke=84;break t}if(ri(e,Pn,_),k>>>0>=n>>>0){ke=84;break}else y=y+4|0}}while(0);if((ke|0)==67)ke=0,y=(n|0)!=0|(y|0)!=0,ie=(_|0)!=0|y,y=((y^1)&1)+(_e-q)|0,n=ie?q:pe,q=pe,y=ie?(_|0)>(y|0)?_:y:_,_=(_|0)>-1?we&-65537:we;else if((ke|0)==84){ke=0,wi(e,32,d,n,ie^8192),d=(d|0)>(n|0)?d:n,n=Pe;continue}le=q-n|0,we=(y|0)<(le|0)?le:y,ie=we+k|0,d=(d|0)<(ie|0)?ie:d,wi(e,32,d,ie,_),ri(e,P,k),wi(e,48,d,ie,_^65536),wi(e,48,we,le,0),ri(e,n,le),wi(e,32,d,ie,_^8192),n=Pe}e:do if((ke|0)==87&&!e)if(!T)l=0;else{for(l=1;n=t[s+(l<<2)>>2]|0,!!n;)if(W8(o+(l<<3)|0,n,r),l=l+1|0,(l|0)>=10){l=1;break e}for(;;){if(t[s+(l<<2)>>2]|0){l=-1;break e}if(l=l+1|0,(l|0)>=10){l=1;break}}}while(0);return h=zt,l|0}function cL(e){return e=e|0,0}function aL(e){e=e|0}function ri(e,n,r){e=e|0,n=n|0,r=r|0,t[e>>2]&32||TL(n,r,e)|0}function z8(e){e=e|0;var n=0,r=0,o=0;if(r=t[e>>2]|0,o=(c[r>>0]|0)+-48|0,o>>>0<10){n=0;do n=o+(n*10|0)|0,r=r+1|0,t[e>>2]=r,o=(c[r>>0]|0)+-48|0;while(o>>>0<10)}else n=0;return n|0}function W8(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0,l=0;e:do if(n>>>0<=20)do switch(n|0){case 9:{o=(t[r>>2]|0)+(4-1)&~(4-1),n=t[o>>2]|0,t[r>>2]=o+4,t[e>>2]=n;break e}case 10:{o=(t[r>>2]|0)+(4-1)&~(4-1),n=t[o>>2]|0,t[r>>2]=o+4,o=e,t[o>>2]=n,t[o+4>>2]=((n|0)<0)<<31>>31;break e}case 11:{o=(t[r>>2]|0)+(4-1)&~(4-1),n=t[o>>2]|0,t[r>>2]=o+4,o=e,t[o>>2]=n,t[o+4>>2]=0;break e}case 12:{o=(t[r>>2]|0)+(8-1)&~(8-1),n=o,s=t[n>>2]|0,n=t[n+4>>2]|0,t[r>>2]=o+8,o=e,t[o>>2]=s,t[o+4>>2]=n;break e}case 13:{s=(t[r>>2]|0)+(4-1)&~(4-1),o=t[s>>2]|0,t[r>>2]=s+4,o=(o&65535)<<16>>16,s=e,t[s>>2]=o,t[s+4>>2]=((o|0)<0)<<31>>31;break e}case 14:{s=(t[r>>2]|0)+(4-1)&~(4-1),o=t[s>>2]|0,t[r>>2]=s+4,s=e,t[s>>2]=o&65535,t[s+4>>2]=0;break e}case 15:{s=(t[r>>2]|0)+(4-1)&~(4-1),o=t[s>>2]|0,t[r>>2]=s+4,o=(o&255)<<24>>24,s=e,t[s>>2]=o,t[s+4>>2]=((o|0)<0)<<31>>31;break e}case 16:{s=(t[r>>2]|0)+(4-1)&~(4-1),o=t[s>>2]|0,t[r>>2]=s+4,s=e,t[s>>2]=o&255,t[s+4>>2]=0;break e}case 17:{s=(t[r>>2]|0)+(8-1)&~(8-1),l=+L[s>>3],t[r>>2]=s+8,L[e>>3]=l;break e}case 18:{s=(t[r>>2]|0)+(8-1)&~(8-1),l=+L[s>>3],t[r>>2]=s+8,L[e>>3]=l;break e}default:break e}while(0);while(0)}function dL(e,n,r,o){if(e=e|0,n=n|0,r=r|0,o=o|0,!((e|0)==0&(n|0)==0))do r=r+-1|0,c[r>>0]=C[5694+(e&15)>>0]|0|o,e=ch(e|0,n|0,4)|0,n=be;while(!((e|0)==0&(n|0)==0));return r|0}function pL(e,n,r){if(e=e|0,n=n|0,r=r|0,!((e|0)==0&(n|0)==0))do r=r+-1|0,c[r>>0]=e&7|48,e=ch(e|0,n|0,3)|0,n=be;while(!((e|0)==0&(n|0)==0));return r|0}function aa(e,n,r){e=e|0,n=n|0,r=r|0;var o=0;if(n>>>0>0|(n|0)==0&e>>>0>4294967295){for(;o=K4(e|0,n|0,10,0)|0,r=r+-1|0,c[r>>0]=o&255|48,o=e,e=$4(e|0,n|0,10,0)|0,n>>>0>9|(n|0)==9&o>>>0>4294967295;)n=be;n=e}else n=e;if(n)for(;r=r+-1|0,c[r>>0]=(n>>>0)%10|0|48,!(n>>>0<10);)n=(n>>>0)/10|0;return r|0}function hL(e){return e=e|0,DL(e,t[(wL()|0)+188>>2]|0)|0}function mL(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0,l=0,d=0;l=n&255,o=(r|0)!=0;e:do if(o&(e&3|0)!=0)for(s=n&255;;){if((c[e>>0]|0)==s<<24>>24){d=6;break e}if(e=e+1|0,r=r+-1|0,o=(r|0)!=0,!(o&(e&3|0)!=0)){d=5;break}}else d=5;while(0);(d|0)==5&&(o?d=6:r=0);e:do if((d|0)==6&&(s=n&255,(c[e>>0]|0)!=s<<24>>24)){o=Un(l,16843009)|0;t:do if(r>>>0>3){for(;l=t[e>>2]^o,!((l&-2139062144^-2139062144)&l+-16843009|0);)if(e=e+4|0,r=r+-4|0,r>>>0<=3){d=11;break t}}else d=11;while(0);if((d|0)==11&&!r){r=0;break}for(;;){if((c[e>>0]|0)==s<<24>>24)break e;if(e=e+1|0,r=r+-1|0,!r){r=0;break}}}while(0);return(r|0?e:0)|0}function wi(e,n,r,o,s){e=e|0,n=n|0,r=r|0,o=o|0,s=s|0;var l=0,d=0;if(d=h,h=h+256|0,l=d,(r|0)>(o|0)&(s&73728|0)==0){if(s=r-o|0,pa(l|0,n|0,(s>>>0<256?s:256)|0)|0,s>>>0>255){n=r-o|0;do ri(e,l,256),s=s+-256|0;while(s>>>0>255);s=n&255}ri(e,l,s)}h=d}function H8(e,n){return e=e|0,n=n|0,e?e=_L(e,n,0)|0:e=0,e|0}function vL(e,n,r,o,s,l){e=e|0,n=+n,r=r|0,o=o|0,s=s|0,l=l|0;var d=0,_=0,y=0,k=0,T=0,P=0,q=0,we=0,le=0,ie=0,Pe=0,ke=0,qe=0,pe=0,_e=0,vt=0,Ln=0,Ht=0,It=0,gn=0,Pn=0,zt=0,Dr=0;Dr=h,h=h+560|0,y=Dr+8|0,Pe=Dr,zt=Dr+524|0,Pn=zt,k=Dr+512|0,t[Pe>>2]=0,gn=k+12|0,b8(n)|0,(be|0)<0?(n=-n,Ht=1,Ln=5659):(Ht=(s&2049|0)!=0&1,Ln=(s&2048|0)==0?(s&1|0)==0?5660:5665:5662),b8(n)|0,It=be&2146435072;do if(It>>>0<2146435072|(It|0)==2146435072&0<0){if(we=+gL(n,Pe)*2,d=we!=0,d&&(t[Pe>>2]=(t[Pe>>2]|0)+-1),qe=l|32,(qe|0)==97){le=l&32,q=(le|0)==0?Ln:Ln+9|0,P=Ht|2,d=12-o|0;do if(o>>>0>11|(d|0)==0)n=we;else{n=8;do d=d+-1|0,n=n*16;while((d|0)!=0);if((c[q>>0]|0)==45){n=-(n+(-we-n));break}else{n=we+n-n;break}}while(0);_=t[Pe>>2]|0,d=(_|0)<0?0-_|0:_,d=aa(d,((d|0)<0)<<31>>31,gn)|0,(d|0)==(gn|0)&&(d=k+11|0,c[d>>0]=48),c[d+-1>>0]=(_>>31&2)+43,T=d+-2|0,c[T>>0]=l+15,k=(o|0)<1,y=(s&8|0)==0,d=zt;do It=~~n,_=d+1|0,c[d>>0]=C[5694+It>>0]|le,n=(n-+(It|0))*16,((_-Pn|0)==1?!(y&(k&n==0)):0)?(c[_>>0]=46,d=d+2|0):d=_;while(n!=0);It=d-Pn|0,Pn=gn-T|0,gn=(o|0)!=0&(It+-2|0)<(o|0)?o+2|0:It,d=Pn+P+gn|0,wi(e,32,r,d,s),ri(e,q,P),wi(e,48,r,d,s^65536),ri(e,zt,It),wi(e,48,gn-It|0,0,0),ri(e,T,Pn),wi(e,32,r,d,s^8192);break}_=(o|0)<0?6:o,d?(d=(t[Pe>>2]|0)+-28|0,t[Pe>>2]=d,n=we*268435456):(n=we,d=t[Pe>>2]|0),It=(d|0)<0?y:y+288|0,y=It;do _e=~~n>>>0,t[y>>2]=_e,y=y+4|0,n=(n-+(_e>>>0))*1e9;while(n!=0);if((d|0)>0)for(k=It,P=y;;){if(T=(d|0)<29?d:29,d=P+-4|0,d>>>0>=k>>>0){y=0;do pe=X8(t[d>>2]|0,0,T|0)|0,pe=Y4(pe|0,be|0,y|0,0)|0,_e=be,ke=K4(pe|0,_e|0,1e9,0)|0,t[d>>2]=ke,y=$4(pe|0,_e|0,1e9,0)|0,d=d+-4|0;while(d>>>0>=k>>>0);y&&(k=k+-4|0,t[k>>2]=y)}for(y=P;!(y>>>0<=k>>>0);)if(d=y+-4|0,!(t[d>>2]|0))y=d;else break;if(d=(t[Pe>>2]|0)-T|0,t[Pe>>2]=d,(d|0)>0)P=y;else break}else k=It;if((d|0)<0){o=((_+25|0)/9|0)+1|0,ie=(qe|0)==102;do{if(le=0-d|0,le=(le|0)<9?le:9,k>>>0>>0){T=(1<>>le,q=0,d=k;do _e=t[d>>2]|0,t[d>>2]=(_e>>>le)+q,q=Un(_e&T,P)|0,d=d+4|0;while(d>>>0>>0);d=(t[k>>2]|0)==0?k+4|0:k,q?(t[y>>2]=q,k=d,d=y+4|0):(k=d,d=y)}else k=(t[k>>2]|0)==0?k+4|0:k,d=y;y=ie?It:k,y=(d-y>>2|0)>(o|0)?y+(o<<2)|0:d,d=(t[Pe>>2]|0)+le|0,t[Pe>>2]=d}while((d|0)<0);d=k,o=y}else d=k,o=y;if(_e=It,d>>>0>>0){if(y=(_e-d>>2)*9|0,T=t[d>>2]|0,T>>>0>=10){k=10;do k=k*10|0,y=y+1|0;while(T>>>0>=k>>>0)}}else y=0;if(ie=(qe|0)==103,ke=(_|0)!=0,k=_-((qe|0)!=102?y:0)+((ke&ie)<<31>>31)|0,(k|0)<(((o-_e>>2)*9|0)+-9|0)){if(k=k+9216|0,le=It+4+(((k|0)/9|0)+-1024<<2)|0,k=((k|0)%9|0)+1|0,(k|0)<9){T=10;do T=T*10|0,k=k+1|0;while((k|0)!=9)}else T=10;if(P=t[le>>2]|0,q=(P>>>0)%(T>>>0)|0,k=(le+4|0)==(o|0),k&(q|0)==0)k=le;else if(we=(((P>>>0)/(T>>>0)|0)&1|0)==0?9007199254740992:9007199254740994,pe=(T|0)/2|0,n=q>>>0>>0?.5:k&(q|0)==(pe|0)?1:1.5,Ht&&(pe=(c[Ln>>0]|0)==45,n=pe?-n:n,we=pe?-we:we),k=P-q|0,t[le>>2]=k,we+n!=we){if(pe=k+T|0,t[le>>2]=pe,pe>>>0>999999999)for(y=le;k=y+-4|0,t[y>>2]=0,k>>>0>>0&&(d=d+-4|0,t[d>>2]=0),pe=(t[k>>2]|0)+1|0,t[k>>2]=pe,pe>>>0>999999999;)y=k;else k=le;if(y=(_e-d>>2)*9|0,P=t[d>>2]|0,P>>>0>=10){T=10;do T=T*10|0,y=y+1|0;while(P>>>0>=T>>>0)}}else k=le;k=k+4|0,k=o>>>0>k>>>0?k:o,pe=d}else k=o,pe=d;for(qe=k;;){if(qe>>>0<=pe>>>0){Pe=0;break}if(d=qe+-4|0,!(t[d>>2]|0))qe=d;else{Pe=1;break}}o=0-y|0;do if(ie)if(d=((ke^1)&1)+_|0,(d|0)>(y|0)&(y|0)>-5?(T=l+-1|0,_=d+-1-y|0):(T=l+-2|0,_=d+-1|0),d=s&8,d)le=d;else{if(Pe?(vt=t[qe+-4>>2]|0,(vt|0)!=0):0)if((vt>>>0)%10|0)k=0;else{k=0,d=10;do d=d*10|0,k=k+1|0;while(!((vt>>>0)%(d>>>0)|0|0))}else k=9;if(d=((qe-_e>>2)*9|0)+-9|0,(T|32|0)==102){le=d-k|0,le=(le|0)>0?le:0,_=(_|0)<(le|0)?_:le,le=0;break}else{le=d+y-k|0,le=(le|0)>0?le:0,_=(_|0)<(le|0)?_:le,le=0;break}}else T=l,le=s&8;while(0);if(ie=_|le,P=(ie|0)!=0&1,q=(T|32|0)==102,q)ke=0,d=(y|0)>0?y:0;else{if(d=(y|0)<0?o:y,d=aa(d,((d|0)<0)<<31>>31,gn)|0,k=gn,(k-d|0)<2)do d=d+-1|0,c[d>>0]=48;while((k-d|0)<2);c[d+-1>>0]=(y>>31&2)+43,d=d+-2|0,c[d>>0]=T,ke=d,d=k-d|0}if(d=Ht+1+_+P+d|0,wi(e,32,r,d,s),ri(e,Ln,Ht),wi(e,48,r,d,s^65536),q){T=pe>>>0>It>>>0?It:pe,le=zt+9|0,P=le,q=zt+8|0,k=T;do{if(y=aa(t[k>>2]|0,0,le)|0,(k|0)==(T|0))(y|0)==(le|0)&&(c[q>>0]=48,y=q);else if(y>>>0>zt>>>0){pa(zt|0,48,y-Pn|0)|0;do y=y+-1|0;while(y>>>0>zt>>>0)}ri(e,y,P-y|0),k=k+4|0}while(k>>>0<=It>>>0);if(ie|0&&ri(e,5710,1),k>>>0>>0&(_|0)>0)for(;;){if(y=aa(t[k>>2]|0,0,le)|0,y>>>0>zt>>>0){pa(zt|0,48,y-Pn|0)|0;do y=y+-1|0;while(y>>>0>zt>>>0)}if(ri(e,y,(_|0)<9?_:9),k=k+4|0,y=_+-9|0,k>>>0>>0&(_|0)>9)_=y;else{_=y;break}}wi(e,48,_+9|0,9,0)}else{if(ie=Pe?qe:pe+4|0,(_|0)>-1){Pe=zt+9|0,le=(le|0)==0,o=Pe,P=0-Pn|0,q=zt+8|0,T=pe;do{y=aa(t[T>>2]|0,0,Pe)|0,(y|0)==(Pe|0)&&(c[q>>0]=48,y=q);do if((T|0)==(pe|0)){if(k=y+1|0,ri(e,y,1),le&(_|0)<1){y=k;break}ri(e,5710,1),y=k}else{if(y>>>0<=zt>>>0)break;pa(zt|0,48,y+P|0)|0;do y=y+-1|0;while(y>>>0>zt>>>0)}while(0);Pn=o-y|0,ri(e,y,(_|0)>(Pn|0)?Pn:_),_=_-Pn|0,T=T+4|0}while(T>>>0>>0&(_|0)>-1)}wi(e,48,_+18|0,18,0),ri(e,ke,gn-ke|0)}wi(e,32,r,d,s^8192)}else zt=(l&32|0)!=0,d=Ht+3|0,wi(e,32,r,d,s&-65537),ri(e,Ln,Ht),ri(e,n!=n|!1?zt?5686:5690:zt?5678:5682,3),wi(e,32,r,d,s^8192);while(0);return h=Dr,((d|0)<(r|0)?r:d)|0}function b8(e){e=+e;var n=0;return L[j>>3]=e,n=t[j>>2]|0,be=t[j+4>>2]|0,n|0}function gL(e,n){return e=+e,n=n|0,+ +G8(e,n)}function G8(e,n){e=+e,n=n|0;var r=0,o=0,s=0;switch(L[j>>3]=e,r=t[j>>2]|0,o=t[j+4>>2]|0,s=ch(r|0,o|0,52)|0,s&2047){case 0:{e!=0?(e=+G8(e*18446744073709552e3,n),r=(t[n>>2]|0)+-64|0):r=0,t[n>>2]=r;break}case 2047:break;default:t[n>>2]=(s&2047)+-1022,t[j>>2]=r,t[j+4>>2]=o&-2146435073|1071644672,e=+L[j>>3]}return+e}function _L(e,n,r){e=e|0,n=n|0,r=r|0;do if(e){if(n>>>0<128){c[e>>0]=n,e=1;break}if(!(t[t[(yL()|0)+188>>2]>>2]|0))if((n&-128|0)==57216){c[e>>0]=n,e=1;break}else{t[(ca()|0)>>2]=84,e=-1;break}if(n>>>0<2048){c[e>>0]=n>>>6|192,c[e+1>>0]=n&63|128,e=2;break}if(n>>>0<55296|(n&-8192|0)==57344){c[e>>0]=n>>>12|224,c[e+1>>0]=n>>>6&63|128,c[e+2>>0]=n&63|128,e=3;break}if((n+-65536|0)>>>0<1048576){c[e>>0]=n>>>18|240,c[e+1>>0]=n>>>12&63|128,c[e+2>>0]=n>>>6&63|128,c[e+3>>0]=n&63|128,e=4;break}else{t[(ca()|0)>>2]=84,e=-1;break}}else e=1;while(0);return e|0}function yL(){return b4()|0}function wL(){return b4()|0}function DL(e,n){e=e|0,n=n|0;var r=0,o=0;for(o=0;;){if((C[5712+o>>0]|0)==(e|0)){e=2;break}if(r=o+1|0,(r|0)==87){r=5800,o=87,e=5;break}else o=r}if((e|0)==2&&(o?(r=5800,e=5):r=5800),(e|0)==5)for(;;){do e=r,r=r+1|0;while((c[e>>0]|0)!=0);if(o=o+-1|0,o)e=5;else break}return EL(r,t[n+20>>2]|0)|0}function EL(e,n){return e=e|0,n=n|0,SL(e,n)|0}function SL(e,n){return e=e|0,n=n|0,n?n=CL(t[n>>2]|0,t[n+4>>2]|0,e)|0:n=0,(n|0?n:e)|0}function CL(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0,l=0,d=0,_=0,y=0,k=0,T=0,P=0,q=0;q=(t[e>>2]|0)+1794895138|0,l=fc(t[e+8>>2]|0,q)|0,o=fc(t[e+12>>2]|0,q)|0,s=fc(t[e+16>>2]|0,q)|0;e:do if((l>>>0>>2>>>0?(P=n-(l<<2)|0,o>>>0

              >>0&s>>>0

              >>0):0)?((s|o)&3|0)==0:0){for(P=o>>>2,T=s>>>2,k=0;;){if(_=l>>>1,y=k+_|0,d=y<<1,s=d+P|0,o=fc(t[e+(s<<2)>>2]|0,q)|0,s=fc(t[e+(s+1<<2)>>2]|0,q)|0,!(s>>>0>>0&o>>>0<(n-s|0)>>>0)){o=0;break e}if(c[e+(s+o)>>0]|0){o=0;break e}if(o=U8(r,e+s|0)|0,!o)break;if(o=(o|0)<0,(l|0)==1){o=0;break e}else k=o?k:y,l=o?_:l-_|0}o=d+T|0,s=fc(t[e+(o<<2)>>2]|0,q)|0,o=fc(t[e+(o+1<<2)>>2]|0,q)|0,o>>>0>>0&s>>>0<(n-o|0)>>>0?o=(c[e+(o+s)>>0]|0)==0?e+o|0:0:o=0}else o=0;while(0);return o|0}function fc(e,n){e=e|0,n=n|0;var r=0;return r=Z8(e|0)|0,((n|0)==0?e:r)|0}function TL(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0,l=0,d=0,_=0;o=r+16|0,s=t[o>>2]|0,s?l=5:xL(r)|0?o=0:(s=t[o>>2]|0,l=5);e:do if((l|0)==5){if(_=r+20|0,d=t[_>>2]|0,o=d,(s-d|0)>>>0>>0){o=dh[t[r+36>>2]&7](r,e,n)|0;break}t:do if((c[r+75>>0]|0)>-1){for(d=n;;){if(!d){l=0,s=e;break t}if(s=d+-1|0,(c[e+s>>0]|0)==10)break;d=s}if(o=dh[t[r+36>>2]&7](r,e,d)|0,o>>>0>>0)break e;l=d,s=e+d|0,n=n-d|0,o=t[_>>2]|0}else l=0,s=e;while(0);vn(o|0,s|0,n|0)|0,t[_>>2]=(t[_>>2]|0)+n,o=l+n|0}while(0);return o|0}function xL(e){e=e|0;var n=0,r=0;return n=e+74|0,r=c[n>>0]|0,c[n>>0]=r+255|r,n=t[e>>2]|0,n&8?(t[e>>2]=n|32,e=-1):(t[e+8>>2]=0,t[e+4>>2]=0,r=t[e+44>>2]|0,t[e+28>>2]=r,t[e+20>>2]=r,t[e+16>>2]=r+(t[e+48>>2]|0),e=0),e|0}function Ur(e,n){e=w(e),n=w(n);var r=0,o=0;r=V8(e)|0;do if((r&2147483647)>>>0<=2139095040){if(o=V8(n)|0,(o&2147483647)>>>0<=2139095040)if((o^r|0)<0){e=(r|0)<0?n:e;break}else{e=e>2]=e,t[j>>2]|0|0}function cc(e,n){e=w(e),n=w(n);var r=0,o=0;r=Y8(e)|0;do if((r&2147483647)>>>0<=2139095040){if(o=Y8(n)|0,(o&2147483647)>>>0<=2139095040)if((o^r|0)<0){e=(r|0)<0?e:n;break}else{e=e>2]=e,t[j>>2]|0|0}function V4(e,n){e=w(e),n=w(n);var r=0,o=0,s=0,l=0,d=0,_=0,y=0,k=0;l=(D[j>>2]=e,t[j>>2]|0),_=(D[j>>2]=n,t[j>>2]|0),r=l>>>23&255,d=_>>>23&255,y=l&-2147483648,s=_<<1;e:do if((s|0)!=0?!((r|0)==255|((kL(n)|0)&2147483647)>>>0>2139095040):0){if(o=l<<1,o>>>0<=s>>>0)return n=w(e*w(0)),w((o|0)==(s|0)?n:e);if(r)o=l&8388607|8388608;else{if(r=l<<9,(r|0)>-1){o=r,r=0;do r=r+-1|0,o=o<<1;while((o|0)>-1)}else r=0;o=l<<1-r}if(d)_=_&8388607|8388608;else{if(l=_<<9,(l|0)>-1){s=0;do s=s+-1|0,l=l<<1;while((l|0)>-1)}else s=0;d=s,_=_<<1-s}s=o-_|0,l=(s|0)>-1;t:do if((r|0)>(d|0)){for(;;){if(l)if(s)o=s;else break;if(o=o<<1,r=r+-1|0,s=o-_|0,l=(s|0)>-1,(r|0)<=(d|0))break t}n=w(e*w(0));break e}while(0);if(l)if(s)o=s;else{n=w(e*w(0));break}if(o>>>0<8388608)do o=o<<1,r=r+-1|0;while(o>>>0<8388608);(r|0)>0?r=o+-8388608|r<<23:r=o>>>(1-r|0),n=(t[j>>2]=r|y,w(D[j>>2]))}else k=3;while(0);return(k|0)==3&&(n=w(e*n),n=w(n/n)),w(n)}function kL(e){return e=w(e),D[j>>2]=e,t[j>>2]|0|0}function AL(e,n){return e=e|0,n=n|0,q8(t[582]|0,e,n)|0}function $n(e){e=e|0,_n()}function da(e){e=e|0}function OL(e,n){return e=e|0,n=n|0,0}function IL(e){return e=e|0,($8(e+4|0)|0)==-1?(Nl[t[(t[e>>2]|0)+8>>2]&127](e),e=1):e=0,e|0}function $8(e){e=e|0;var n=0;return n=t[e>>2]|0,t[e>>2]=n+-1,n+-1|0}function Tf(e){e=e|0,IL(e)|0&&PL(e)}function PL(e){e=e|0;var n=0;n=e+8|0,((t[n>>2]|0)!=0?($8(n)|0)!=-1:0)||Nl[t[(t[e>>2]|0)+16>>2]&127](e)}function Tt(e){e=e|0;var n=0;for(n=(e|0)==0?1:e;e=uh(n)|0,!(e|0);){if(e=FL()|0,!e){e=0;break}fD[e&0]()}return e|0}function K8(e){return e=e|0,Tt(e)|0}function Ve(e){e=e|0,sh(e)}function ML(e){e=e|0,(c[e+11>>0]|0)<0&&Ve(t[e>>2]|0)}function FL(){var e=0;return e=t[2923]|0,t[2923]=e+0,e|0}function LL(){}function fh(e,n,r,o){return e=e|0,n=n|0,r=r|0,o=o|0,o=n-o-(r>>>0>e>>>0|0)>>>0,be=o,e-r>>>0|0|0}function Y4(e,n,r,o){return e=e|0,n=n|0,r=r|0,o=o|0,r=e+r>>>0,be=n+o+(r>>>0>>0|0)>>>0,r|0|0}function pa(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0,l=0,d=0;if(l=e+r|0,n=n&255,(r|0)>=67){for(;e&3;)c[e>>0]=n,e=e+1|0;for(o=l&-4|0,s=o-64|0,d=n|n<<8|n<<16|n<<24;(e|0)<=(s|0);)t[e>>2]=d,t[e+4>>2]=d,t[e+8>>2]=d,t[e+12>>2]=d,t[e+16>>2]=d,t[e+20>>2]=d,t[e+24>>2]=d,t[e+28>>2]=d,t[e+32>>2]=d,t[e+36>>2]=d,t[e+40>>2]=d,t[e+44>>2]=d,t[e+48>>2]=d,t[e+52>>2]=d,t[e+56>>2]=d,t[e+60>>2]=d,e=e+64|0;for(;(e|0)<(o|0);)t[e>>2]=d,e=e+4|0}for(;(e|0)<(l|0);)c[e>>0]=n,e=e+1|0;return l-r|0}function X8(e,n,r){return e=e|0,n=n|0,r=r|0,(r|0)<32?(be=n<>>32-r,e<>>r,e>>>r|(n&(1<>>r-32|0)}function vn(e,n,r){e=e|0,n=n|0,r=r|0;var o=0,s=0,l=0;if((r|0)>=8192)return wo(e|0,n|0,r|0)|0;if(l=e|0,s=e+r|0,(e&3)==(n&3)){for(;e&3;){if(!r)return l|0;c[e>>0]=c[n>>0]|0,e=e+1|0,n=n+1|0,r=r-1|0}for(r=s&-4|0,o=r-64|0;(e|0)<=(o|0);)t[e>>2]=t[n>>2],t[e+4>>2]=t[n+4>>2],t[e+8>>2]=t[n+8>>2],t[e+12>>2]=t[n+12>>2],t[e+16>>2]=t[n+16>>2],t[e+20>>2]=t[n+20>>2],t[e+24>>2]=t[n+24>>2],t[e+28>>2]=t[n+28>>2],t[e+32>>2]=t[n+32>>2],t[e+36>>2]=t[n+36>>2],t[e+40>>2]=t[n+40>>2],t[e+44>>2]=t[n+44>>2],t[e+48>>2]=t[n+48>>2],t[e+52>>2]=t[n+52>>2],t[e+56>>2]=t[n+56>>2],t[e+60>>2]=t[n+60>>2],e=e+64|0,n=n+64|0;for(;(e|0)<(r|0);)t[e>>2]=t[n>>2],e=e+4|0,n=n+4|0}else for(r=s-4|0;(e|0)<(r|0);)c[e>>0]=c[n>>0]|0,c[e+1>>0]=c[n+1>>0]|0,c[e+2>>0]=c[n+2>>0]|0,c[e+3>>0]=c[n+3>>0]|0,e=e+4|0,n=n+4|0;for(;(e|0)<(s|0);)c[e>>0]=c[n>>0]|0,e=e+1|0,n=n+1|0;return l|0}function J8(e){e=e|0;var n=0;return n=c[ce+(e&255)>>0]|0,(n|0)<8?n|0:(n=c[ce+(e>>8&255)>>0]|0,(n|0)<8?n+8|0:(n=c[ce+(e>>16&255)>>0]|0,(n|0)<8?n+16|0:(c[ce+(e>>>24)>>0]|0)+24|0))}function Q8(e,n,r,o,s){e=e|0,n=n|0,r=r|0,o=o|0,s=s|0;var l=0,d=0,_=0,y=0,k=0,T=0,P=0,q=0,we=0,le=0;if(T=e,y=n,k=y,d=r,q=o,_=q,!k)return l=(s|0)!=0,_?l?(t[s>>2]=e|0,t[s+4>>2]=n&0,q=0,s=0,be=q,s|0):(q=0,s=0,be=q,s|0):(l&&(t[s>>2]=(T>>>0)%(d>>>0),t[s+4>>2]=0),q=0,s=(T>>>0)/(d>>>0)>>>0,be=q,s|0);l=(_|0)==0;do if(d){if(!l){if(l=(cr(_|0)|0)-(cr(k|0)|0)|0,l>>>0<=31){P=l+1|0,_=31-l|0,n=l-31>>31,d=P,e=T>>>(P>>>0)&n|k<<_,n=k>>>(P>>>0)&n,l=0,_=T<<_;break}return s?(t[s>>2]=e|0,t[s+4>>2]=y|n&0,q=0,s=0,be=q,s|0):(q=0,s=0,be=q,s|0)}if(l=d-1|0,l&d|0){_=(cr(d|0)|0)+33-(cr(k|0)|0)|0,le=64-_|0,P=32-_|0,y=P>>31,we=_-32|0,n=we>>31,d=_,e=P-1>>31&k>>>(we>>>0)|(k<>>(_>>>0))&n,n=n&k>>>(_>>>0),l=T<>>(we>>>0))&y|T<>31;break}return s|0&&(t[s>>2]=l&T,t[s+4>>2]=0),(d|0)==1?(we=y|n&0,le=e|0|0,be=we,le|0):(le=J8(d|0)|0,we=k>>>(le>>>0)|0,le=k<<32-le|T>>>(le>>>0)|0,be=we,le|0)}else{if(l)return s|0&&(t[s>>2]=(k>>>0)%(d>>>0),t[s+4>>2]=0),we=0,le=(k>>>0)/(d>>>0)>>>0,be=we,le|0;if(!T)return s|0&&(t[s>>2]=0,t[s+4>>2]=(k>>>0)%(_>>>0)),we=0,le=(k>>>0)/(_>>>0)>>>0,be=we,le|0;if(l=_-1|0,!(l&_))return s|0&&(t[s>>2]=e|0,t[s+4>>2]=l&k|n&0),we=0,le=k>>>((J8(_|0)|0)>>>0),be=we,le|0;if(l=(cr(_|0)|0)-(cr(k|0)|0)|0,l>>>0<=30){n=l+1|0,_=31-l|0,d=n,e=k<<_|T>>>(n>>>0),n=k>>>(n>>>0),l=0,_=T<<_;break}return s?(t[s>>2]=e|0,t[s+4>>2]=y|n&0,we=0,le=0,be=we,le|0):(we=0,le=0,be=we,le|0)}while(0);if(!d)k=_,y=0,_=0;else{P=r|0|0,T=q|o&0,k=Y4(P|0,T|0,-1,-1)|0,r=be,y=_,_=0;do o=y,y=l>>>31|y<<1,l=_|l<<1,o=e<<1|o>>>31|0,q=e>>>31|n<<1|0,fh(k|0,r|0,o|0,q|0)|0,le=be,we=le>>31|((le|0)<0?-1:0)<<1,_=we&1,e=fh(o|0,q|0,we&P|0,(((le|0)<0?-1:0)>>31|((le|0)<0?-1:0)<<1)&T|0)|0,n=be,d=d-1|0;while((d|0)!=0);k=y,y=0}return d=0,s|0&&(t[s>>2]=e,t[s+4>>2]=n),we=(l|0)>>>31|(k|d)<<1|(d<<1|l>>>31)&0|y,le=(l<<1|0>>>31)&-2|_,be=we,le|0}function $4(e,n,r,o){return e=e|0,n=n|0,r=r|0,o=o|0,Q8(e,n,r,o,0)|0}function xf(e){e=e|0;var n=0,r=0;return r=e+15&-16|0,n=t[N>>2]|0,e=n+r|0,(r|0)>0&(e|0)<(n|0)|(e|0)<0?(vr()|0,Os(12),-1):(t[N>>2]=e,((e|0)>(Xn()|0)?(Bn()|0)==0:0)?(t[N>>2]=n,Os(12),-1):n|0)}function Y1(e,n,r){e=e|0,n=n|0,r=r|0;var o=0;if((n|0)<(e|0)&(e|0)<(n+r|0)){for(o=e,n=n+r|0,e=e+r|0;(r|0)>0;)e=e-1|0,n=n-1|0,r=r-1|0,c[e>>0]=c[n>>0]|0;e=o}else vn(e,n,r)|0;return e|0}function K4(e,n,r,o){e=e|0,n=n|0,r=r|0,o=o|0;var s=0,l=0;return l=h,h=h+16|0,s=l|0,Q8(e,n,r,o,s)|0,h=l,be=t[s+4>>2]|0,t[s>>2]|0|0}function Z8(e){return e=e|0,(e&255)<<24|(e>>8&255)<<16|(e>>16&255)<<8|e>>>24|0}function RL(e,n,r,o,s,l){e=e|0,n=n|0,r=r|0,o=o|0,s=s|0,l=l|0,eD[e&1](n|0,r|0,o|0,s|0,l|0)}function NL(e,n,r){e=e|0,n=n|0,r=w(r),tD[e&1](n|0,w(r))}function BL(e,n,r){e=e|0,n=n|0,r=+r,nD[e&31](n|0,+r)}function jL(e,n,r,o){return e=e|0,n=n|0,r=w(r),o=w(o),w(rD[e&0](n|0,w(r),w(o)))}function UL(e,n){e=e|0,n=n|0,Nl[e&127](n|0)}function qL(e,n,r){e=e|0,n=n|0,r=r|0,Bl[e&31](n|0,r|0)}function zL(e,n){return e=e|0,n=n|0,dc[e&31](n|0)|0}function WL(e,n,r,o,s){e=e|0,n=n|0,r=+r,o=+o,s=s|0,iD[e&1](n|0,+r,+o,s|0)}function HL(e,n,r,o){e=e|0,n=n|0,r=+r,o=+o,CR[e&1](n|0,+r,+o)}function bL(e,n,r,o){return e=e|0,n=n|0,r=r|0,o=o|0,dh[e&7](n|0,r|0,o|0)|0}function VL(e,n,r,o){return e=e|0,n=n|0,r=r|0,o=o|0,+TR[e&1](n|0,r|0,o|0)}function YL(e,n){return e=e|0,n=n|0,+oD[e&15](n|0)}function $L(e,n,r){return e=e|0,n=n|0,r=+r,xR[e&1](n|0,+r)|0}function KL(e,n,r){return e=e|0,n=n|0,r=r|0,J4[e&15](n|0,r|0)|0}function XL(e,n,r,o,s,l){e=e|0,n=n|0,r=r|0,o=+o,s=+s,l=l|0,kR[e&1](n|0,r|0,+o,+s,l|0)}function JL(e,n,r,o,s,l,d){e=e|0,n=n|0,r=r|0,o=o|0,s=s|0,l=l|0,d=d|0,AR[e&1](n|0,r|0,o|0,s|0,l|0,d|0)}function QL(e,n,r){return e=e|0,n=n|0,r=r|0,+uD[e&7](n|0,r|0)}function ZL(e){return e=e|0,ph[e&7]()|0}function eR(e,n,r,o,s,l){return e=e|0,n=n|0,r=r|0,o=o|0,s=s|0,l=l|0,sD[e&1](n|0,r|0,o|0,s|0,l|0)|0}function tR(e,n,r,o,s){e=e|0,n=n|0,r=r|0,o=o|0,s=+s,OR[e&1](n|0,r|0,o|0,+s)}function nR(e,n,r,o,s,l,d){e=e|0,n=n|0,r=r|0,o=w(o),s=s|0,l=w(l),d=d|0,lD[e&1](n|0,r|0,w(o),s|0,w(l),d|0)}function rR(e,n,r,o){e=e|0,n=n|0,r=r|0,o=o|0,X1[e&15](n|0,r|0,o|0)}function iR(e){e=e|0,fD[e&0]()}function oR(e,n,r,o){e=e|0,n=n|0,r=r|0,o=+o,cD[e&15](n|0,r|0,+o)}function uR(e,n,r){return e=e|0,n=+n,r=+r,IR[e&1](+n,+r)|0}function sR(e,n,r,o,s){e=e|0,n=n|0,r=r|0,o=o|0,s=s|0,Q4[e&15](n|0,r|0,o|0,s|0)}function lR(e,n,r,o,s){e=e|0,n=n|0,r=r|0,o=o|0,s=s|0,pt(0)}function fR(e,n){e=e|0,n=w(n),pt(1)}function Lo(e,n){e=e|0,n=+n,pt(2)}function cR(e,n,r){return e=e|0,n=w(n),r=w(r),pt(3),tt}function tn(e){e=e|0,pt(4)}function $1(e,n){e=e|0,n=n|0,pt(5)}function tu(e){return e=e|0,pt(6),0}function aR(e,n,r,o){e=e|0,n=+n,r=+r,o=o|0,pt(7)}function dR(e,n,r){e=e|0,n=+n,r=+r,pt(8)}function pR(e,n,r){return e=e|0,n=n|0,r=r|0,pt(9),0}function hR(e,n,r){return e=e|0,n=n|0,r=r|0,pt(10),0}function ac(e){return e=e|0,pt(11),0}function mR(e,n){return e=e|0,n=+n,pt(12),0}function K1(e,n){return e=e|0,n=n|0,pt(13),0}function vR(e,n,r,o,s){e=e|0,n=n|0,r=+r,o=+o,s=s|0,pt(14)}function gR(e,n,r,o,s,l){e=e|0,n=n|0,r=r|0,o=o|0,s=s|0,l=l|0,pt(15)}function X4(e,n){return e=e|0,n=n|0,pt(16),0}function _R(){return pt(17),0}function yR(e,n,r,o,s){return e=e|0,n=n|0,r=r|0,o=o|0,s=s|0,pt(18),0}function wR(e,n,r,o){e=e|0,n=n|0,r=r|0,o=+o,pt(19)}function DR(e,n,r,o,s,l){e=e|0,n=n|0,r=w(r),o=o|0,s=w(s),l=l|0,pt(20)}function ah(e,n,r){e=e|0,n=n|0,r=r|0,pt(21)}function ER(){pt(22)}function ha(e,n,r){e=e|0,n=n|0,r=+r,pt(23)}function SR(e,n){return e=+e,n=+n,pt(24),0}function ma(e,n,r,o){e=e|0,n=n|0,r=r|0,o=o|0,pt(25)}var eD=[lR,_I],tD=[fR,x0],nD=[Lo,Kf,Tl,xl,hf,xo,mf,Wa,Hs,mi,Xf,Rc,Jf,ao,$o,kl,Nc,Al,vf,Lo,Lo,Lo,Lo,Lo,Lo,Lo,Lo,Lo,Lo,Lo,Lo,Lo],rD=[cR],Nl=[tn,da,Km,Xm,es,a_,d_,p_,YA,$A,KA,oI,uI,sI,kF,AF,OF,Sn,Oc,pf,ti,vi,Nm,Uc,r1,Hd,Pl,mv,Av,Kc,Jc,yp,Eg,na,Ug,Yg,u_,k_,q_,J_,a4,Ct,w9,U9,ex,hx,Ix,_0,s7,S7,W7,uk,Dk,Wk,Qk,tA,_A,DA,jA,JA,eO,gO,RO,d1,vP,YP,lM,SM,GM,uF,gF,wF,tn,tn,tn,tn,tn,tn,tn,tn,tn,tn,tn,tn,tn,tn,tn,tn,tn,tn,tn,tn,tn,tn,tn,tn,tn,tn,tn,tn,tn,tn,tn,tn,tn,tn,tn,tn,tn,tn,tn,tn,tn,tn,tn,tn,tn,tn,tn,tn,tn,tn,tn,tn,tn,tn,tn,tn],Bl=[$1,ja,Ua,$f,gu,co,qa,Ws,za,Mc,Fc,Lc,po,Ce,ze,Et,on,sr,mn,Zf,gd,xd,H9,rx,ck,yP,HO,C8,$1,$1,$1,$1],dc=[tu,iL,Ba,m,b,ee,Ye,Ze,ut,In,jr,gi,Pm,Ha,Ya,Fx,Tk,wO,SP,Qo,tu,tu,tu,tu,tu,tu,tu,tu,tu,tu,tu,tu],iD=[aR,Sd],CR=[dR,zA],dh=[pR,j8,oL,lL,Gv,P_,a7,kM],TR=[hR,Op],oD=[ac,_i,Re,pr,Cd,ho,bs,$a,Td,qc,ac,ac,ac,ac,ac,ac],xR=[mR,Kk],J4=[K1,OL,vd,Vc,_v,ig,pg,f_,H_,_x,Xu,dM,K1,K1,K1,K1],kR=[vR,iv],AR=[gR,KM],uD=[X4,Hr,Ka,kd,Xa,Jg,X4,X4],ph=[_R,Ja,Z0,g0,oA,TA,iO,CF],sD=[yR,or],OR=[wR,m4],lD=[DR,Bc],X1=[ah,S,A0,Vn,ni,Mv,Tg,dn,C9,fo,zI,JP,cF,ah,ah,ah],fD=[ER],cD=[ha,Ic,vu,Pc,Qu,Qf,k0,v,W1,k7,Gk,ha,ha,ha,ha,ha],IR=[SR,GA],Q4=[ma,Fg,zx,V7,Lk,aA,PA,aO,qO,OP,RF,ma,ma,ma,ma,ma];return{_llvm_bswap_i32:Z8,dynCall_idd:uR,dynCall_i:ZL,_i64Subtract:fh,___udivdi3:$4,dynCall_vif:NL,setThrew:vl,dynCall_viii:rR,_bitshift64Lshr:ch,_bitshift64Shl:X8,dynCall_vi:UL,dynCall_viiddi:XL,dynCall_diii:VL,dynCall_iii:KL,_memset:pa,_sbrk:xf,_memcpy:vn,__GLOBAL__sub_I_Yoga_cpp:t0,dynCall_vii:qL,___uremdi3:K4,dynCall_vid:BL,stackAlloc:zi,_nbind_init:VF,getTempRet0:fu,dynCall_di:YL,dynCall_iid:$L,setTempRet0:gl,_i64Add:Y4,dynCall_fiff:jL,dynCall_iiii:bL,_emscripten_get_global_libc:rL,dynCall_viid:oR,dynCall_viiid:tR,dynCall_viififi:nR,dynCall_ii:zL,__GLOBAL__sub_I_Binding_cc:lP,dynCall_viiii:sR,dynCall_iiiiii:eR,stackSave:lu,dynCall_viiiii:RL,__GLOBAL__sub_I_nbind_cc:Gs,dynCall_vidd:HL,_free:sh,runPostSets:LL,dynCall_viiiiii:JL,establishStackSpace:O0,_memmove:Y1,stackRestore:Ho,_malloc:uh,__GLOBAL__sub_I_common_cc:AO,dynCall_viddi:WL,dynCall_dii:QL,dynCall_v:iR}}(Module.asmGlobalArg,Module.asmLibraryArg,buffer),_llvm_bswap_i32=Module._llvm_bswap_i32=asm._llvm_bswap_i32,getTempRet0=Module.getTempRet0=asm.getTempRet0,___udivdi3=Module.___udivdi3=asm.___udivdi3,setThrew=Module.setThrew=asm.setThrew,_bitshift64Lshr=Module._bitshift64Lshr=asm._bitshift64Lshr,_bitshift64Shl=Module._bitshift64Shl=asm._bitshift64Shl,_memset=Module._memset=asm._memset,_sbrk=Module._sbrk=asm._sbrk,_memcpy=Module._memcpy=asm._memcpy,stackAlloc=Module.stackAlloc=asm.stackAlloc,___uremdi3=Module.___uremdi3=asm.___uremdi3,_nbind_init=Module._nbind_init=asm._nbind_init,_i64Subtract=Module._i64Subtract=asm._i64Subtract,setTempRet0=Module.setTempRet0=asm.setTempRet0,_i64Add=Module._i64Add=asm._i64Add,_emscripten_get_global_libc=Module._emscripten_get_global_libc=asm._emscripten_get_global_libc,__GLOBAL__sub_I_Yoga_cpp=Module.__GLOBAL__sub_I_Yoga_cpp=asm.__GLOBAL__sub_I_Yoga_cpp,__GLOBAL__sub_I_Binding_cc=Module.__GLOBAL__sub_I_Binding_cc=asm.__GLOBAL__sub_I_Binding_cc,stackSave=Module.stackSave=asm.stackSave,__GLOBAL__sub_I_nbind_cc=Module.__GLOBAL__sub_I_nbind_cc=asm.__GLOBAL__sub_I_nbind_cc,_free=Module._free=asm._free,runPostSets=Module.runPostSets=asm.runPostSets,establishStackSpace=Module.establishStackSpace=asm.establishStackSpace,_memmove=Module._memmove=asm._memmove,stackRestore=Module.stackRestore=asm.stackRestore,_malloc=Module._malloc=asm._malloc,__GLOBAL__sub_I_common_cc=Module.__GLOBAL__sub_I_common_cc=asm.__GLOBAL__sub_I_common_cc,dynCall_viiiii=Module.dynCall_viiiii=asm.dynCall_viiiii,dynCall_vif=Module.dynCall_vif=asm.dynCall_vif,dynCall_vid=Module.dynCall_vid=asm.dynCall_vid,dynCall_fiff=Module.dynCall_fiff=asm.dynCall_fiff,dynCall_vi=Module.dynCall_vi=asm.dynCall_vi,dynCall_vii=Module.dynCall_vii=asm.dynCall_vii,dynCall_ii=Module.dynCall_ii=asm.dynCall_ii,dynCall_viddi=Module.dynCall_viddi=asm.dynCall_viddi,dynCall_vidd=Module.dynCall_vidd=asm.dynCall_vidd,dynCall_iiii=Module.dynCall_iiii=asm.dynCall_iiii,dynCall_diii=Module.dynCall_diii=asm.dynCall_diii,dynCall_di=Module.dynCall_di=asm.dynCall_di,dynCall_iid=Module.dynCall_iid=asm.dynCall_iid,dynCall_iii=Module.dynCall_iii=asm.dynCall_iii,dynCall_viiddi=Module.dynCall_viiddi=asm.dynCall_viiddi,dynCall_viiiiii=Module.dynCall_viiiiii=asm.dynCall_viiiiii,dynCall_dii=Module.dynCall_dii=asm.dynCall_dii,dynCall_i=Module.dynCall_i=asm.dynCall_i,dynCall_iiiiii=Module.dynCall_iiiiii=asm.dynCall_iiiiii,dynCall_viiid=Module.dynCall_viiid=asm.dynCall_viiid,dynCall_viififi=Module.dynCall_viififi=asm.dynCall_viififi,dynCall_viii=Module.dynCall_viii=asm.dynCall_viii,dynCall_v=Module.dynCall_v=asm.dynCall_v,dynCall_viid=Module.dynCall_viid=asm.dynCall_viid,dynCall_idd=Module.dynCall_idd=asm.dynCall_idd,dynCall_viiii=Module.dynCall_viiii=asm.dynCall_viiii;Runtime.stackAlloc=Module.stackAlloc,Runtime.stackSave=Module.stackSave,Runtime.stackRestore=Module.stackRestore,Runtime.establishStackSpace=Module.establishStackSpace,Runtime.setTempRet0=Module.setTempRet0,Runtime.getTempRet0=Module.getTempRet0,Module.asm=asm;function ExitStatus(i){this.name="ExitStatus",this.message="Program terminated with exit("+i+")",this.status=i}ExitStatus.prototype=new Error,ExitStatus.prototype.constructor=ExitStatus;var initialStackTop,preloadStartTime=null,calledMain=!1;dependenciesFulfilled=function i(){Module.calledRun||run(),Module.calledRun||(dependenciesFulfilled=i)},Module.callMain=Module.callMain=function(u){u=u||[],ensureInitRuntime();var f=u.length+1;function c(){for(var x=0;x<4-1;x++)g.push(0)}var g=[allocate(intArrayFromString(Module.thisProgram),"i8",ALLOC_NORMAL)];c();for(var t=0;t0||(preRun(),runDependencies>0)||Module.calledRun)return;function u(){Module.calledRun||(Module.calledRun=!0,!ABORT&&(ensureInitRuntime(),preMain(),Module.onRuntimeInitialized&&Module.onRuntimeInitialized(),Module._main&&shouldRunNow&&Module.callMain(i),postRun()))}Module.setStatus?(Module.setStatus("Running..."),setTimeout(function(){setTimeout(function(){Module.setStatus("")},1),u()},1)):u()}Module.run=Module.run=run;function exit(i,u){u&&Module.noExitRuntime||(Module.noExitRuntime||(ABORT=!0,EXITSTATUS=i,STACKTOP=initialStackTop,exitRuntime(),Module.onExit&&Module.onExit(i)),ENVIRONMENT_IS_NODE&&process.exit(i),Module.quit(i,new ExitStatus(i)))}Module.exit=Module.exit=exit;var abortDecorators=[];function abort(i){Module.onAbort&&Module.onAbort(i),i!==void 0?(Module.print(i),Module.printErr(i),i=JSON.stringify(i)):i="",ABORT=!0,EXITSTATUS=1;var u=` -If this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information.`,f="abort("+i+") at "+stackTrace()+u;throw abortDecorators&&abortDecorators.forEach(function(c){f=c(f,i)}),f}if(Module.abort=Module.abort=abort,Module.preInit)for(typeof Module.preInit=="function"&&(Module.preInit=[Module.preInit]);Module.preInit.length>0;)Module.preInit.pop()();var shouldRunNow=!0;Module.noInitialRun&&(shouldRunNow=!1),run()})});var hc=Me((hb,vE)=>{"use strict";var wN=hE(),DN=mE(),Py=!1,My=null;DN({},function(i,u){if(!Py){if(Py=!0,i)throw i;My=u}});if(!Py)throw new Error("Failed to load the yoga module - it needed to be loaded synchronously, but didn't");vE.exports=wN(My.bind,My.lib)});var _E=Me((mb,gE)=>{"use strict";gE.exports=({onlyFirst:i=!1}={})=>{let u=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:[a-zA-Z\\d]*(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(u,i?void 0:"g")}});var Fy=Me((vb,yE)=>{"use strict";var EN=_E();yE.exports=i=>typeof i=="string"?i.replace(EN(),""):i});var Ry=Me((gb,Ly)=>{"use strict";var wE=i=>Number.isNaN(i)?!1:i>=4352&&(i<=4447||i===9001||i===9002||11904<=i&&i<=12871&&i!==12351||12880<=i&&i<=19903||19968<=i&&i<=42182||43360<=i&&i<=43388||44032<=i&&i<=55203||63744<=i&&i<=64255||65040<=i&&i<=65049||65072<=i&&i<=65131||65281<=i&&i<=65376||65504<=i&&i<=65510||110592<=i&&i<=110593||127488<=i&&i<=127569||131072<=i&&i<=262141);Ly.exports=wE;Ly.exports.default=wE});var EE=Me((_b,DE)=>{"use strict";DE.exports=function(){return/\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F|\uD83D\uDC68(?:\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68\uD83C\uDFFB|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|[\u2695\u2696\u2708]\uFE0F|\uD83D[\uDC66\uDC67]|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708])\uFE0F|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C[\uDFFB-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)\uD83C\uDFFB|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB\uDFFC])|\uD83D\uDC69(?:\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB-\uDFFD])|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|(?:(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)\uFE0F|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\u200D[\u2640\u2642])|\uD83C\uDFF4\u200D\u2620)\uFE0F|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF4\uD83C\uDDF2|\uD83C\uDDF6\uD83C\uDDE6|[#\*0-9]\uFE0F\u20E3|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270A-\u270D]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC70\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDCAA\uDD74\uDD7A\uDD90\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD36\uDDB5\uDDB6\uDDBB\uDDD2-\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5\uDEEB\uDEEC\uDEF4-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g}});var Mh=Me((yb,Ny)=>{"use strict";var SN=Fy(),CN=Ry(),TN=EE(),SE=i=>{if(i=i.replace(TN()," "),typeof i!="string"||i.length===0)return 0;i=SN(i);let u=0;for(let f=0;f=127&&c<=159||c>=768&&c<=879||(c>65535&&f++,u+=CN(c)?2:1)}return u};Ny.exports=SE;Ny.exports.default=SE});var jy=Me((wb,By)=>{"use strict";var xN=Mh(),CE=i=>{let u=0;for(let f of i.split(` -`))u=Math.max(u,xN(f));return u};By.exports=CE;By.exports.default=CE});var TE=Me(a2=>{"use strict";var kN=a2&&a2.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(a2,"__esModule",{value:!0});var AN=kN(jy()),Uy={};a2.default=i=>{if(i.length===0)return{width:0,height:0};if(Uy[i])return Uy[i];let u=AN.default(i),f=i.split(` -`).length;return Uy[i]={width:u,height:f},{width:u,height:f}}});var xE=Me(d2=>{"use strict";var ON=d2&&d2.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(d2,"__esModule",{value:!0});var hr=ON(hc()),IN=(i,u)=>{"position"in u&&i.setPositionType(u.position==="absolute"?hr.default.POSITION_TYPE_ABSOLUTE:hr.default.POSITION_TYPE_RELATIVE)},PN=(i,u)=>{"marginLeft"in u&&i.setMargin(hr.default.EDGE_START,u.marginLeft||0),"marginRight"in u&&i.setMargin(hr.default.EDGE_END,u.marginRight||0),"marginTop"in u&&i.setMargin(hr.default.EDGE_TOP,u.marginTop||0),"marginBottom"in u&&i.setMargin(hr.default.EDGE_BOTTOM,u.marginBottom||0)},MN=(i,u)=>{"paddingLeft"in u&&i.setPadding(hr.default.EDGE_LEFT,u.paddingLeft||0),"paddingRight"in u&&i.setPadding(hr.default.EDGE_RIGHT,u.paddingRight||0),"paddingTop"in u&&i.setPadding(hr.default.EDGE_TOP,u.paddingTop||0),"paddingBottom"in u&&i.setPadding(hr.default.EDGE_BOTTOM,u.paddingBottom||0)},FN=(i,u)=>{var f;"flexGrow"in u&&i.setFlexGrow((f=u.flexGrow)!==null&&f!==void 0?f:0),"flexShrink"in u&&i.setFlexShrink(typeof u.flexShrink=="number"?u.flexShrink:1),"flexDirection"in u&&(u.flexDirection==="row"&&i.setFlexDirection(hr.default.FLEX_DIRECTION_ROW),u.flexDirection==="row-reverse"&&i.setFlexDirection(hr.default.FLEX_DIRECTION_ROW_REVERSE),u.flexDirection==="column"&&i.setFlexDirection(hr.default.FLEX_DIRECTION_COLUMN),u.flexDirection==="column-reverse"&&i.setFlexDirection(hr.default.FLEX_DIRECTION_COLUMN_REVERSE)),"flexBasis"in u&&(typeof u.flexBasis=="number"?i.setFlexBasis(u.flexBasis):typeof u.flexBasis=="string"?i.setFlexBasisPercent(Number.parseInt(u.flexBasis,10)):i.setFlexBasis(NaN)),"alignItems"in u&&((u.alignItems==="stretch"||!u.alignItems)&&i.setAlignItems(hr.default.ALIGN_STRETCH),u.alignItems==="flex-start"&&i.setAlignItems(hr.default.ALIGN_FLEX_START),u.alignItems==="center"&&i.setAlignItems(hr.default.ALIGN_CENTER),u.alignItems==="flex-end"&&i.setAlignItems(hr.default.ALIGN_FLEX_END)),"alignSelf"in u&&((u.alignSelf==="auto"||!u.alignSelf)&&i.setAlignSelf(hr.default.ALIGN_AUTO),u.alignSelf==="flex-start"&&i.setAlignSelf(hr.default.ALIGN_FLEX_START),u.alignSelf==="center"&&i.setAlignSelf(hr.default.ALIGN_CENTER),u.alignSelf==="flex-end"&&i.setAlignSelf(hr.default.ALIGN_FLEX_END)),"justifyContent"in u&&((u.justifyContent==="flex-start"||!u.justifyContent)&&i.setJustifyContent(hr.default.JUSTIFY_FLEX_START),u.justifyContent==="center"&&i.setJustifyContent(hr.default.JUSTIFY_CENTER),u.justifyContent==="flex-end"&&i.setJustifyContent(hr.default.JUSTIFY_FLEX_END),u.justifyContent==="space-between"&&i.setJustifyContent(hr.default.JUSTIFY_SPACE_BETWEEN),u.justifyContent==="space-around"&&i.setJustifyContent(hr.default.JUSTIFY_SPACE_AROUND))},LN=(i,u)=>{var f,c;"width"in u&&(typeof u.width=="number"?i.setWidth(u.width):typeof u.width=="string"?i.setWidthPercent(Number.parseInt(u.width,10)):i.setWidthAuto()),"height"in u&&(typeof u.height=="number"?i.setHeight(u.height):typeof u.height=="string"?i.setHeightPercent(Number.parseInt(u.height,10)):i.setHeightAuto()),"minWidth"in u&&(typeof u.minWidth=="string"?i.setMinWidthPercent(Number.parseInt(u.minWidth,10)):i.setMinWidth((f=u.minWidth)!==null&&f!==void 0?f:0)),"minHeight"in u&&(typeof u.minHeight=="string"?i.setMinHeightPercent(Number.parseInt(u.minHeight,10)):i.setMinHeight((c=u.minHeight)!==null&&c!==void 0?c:0))},RN=(i,u)=>{"display"in u&&i.setDisplay(u.display==="flex"?hr.default.DISPLAY_FLEX:hr.default.DISPLAY_NONE)},NN=(i,u)=>{if("borderStyle"in u){let f=typeof u.borderStyle=="string"?1:0;i.setBorder(hr.default.EDGE_TOP,f),i.setBorder(hr.default.EDGE_BOTTOM,f),i.setBorder(hr.default.EDGE_LEFT,f),i.setBorder(hr.default.EDGE_RIGHT,f)}};d2.default=(i,u={})=>{IN(i,u),PN(i,u),MN(i,u),FN(i,u),LN(i,u),RN(i,u),NN(i,u)}});var AE=Me((Sb,kE)=>{"use strict";kE.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}});var qy=Me((Cb,OE)=>{var p2=AE(),IE={};for(let i of Object.keys(p2))IE[p2[i]]=i;var Xt={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};OE.exports=Xt;for(let i of Object.keys(Xt)){if(!("channels"in Xt[i]))throw new Error("missing channels property: "+i);if(!("labels"in Xt[i]))throw new Error("missing channel labels property: "+i);if(Xt[i].labels.length!==Xt[i].channels)throw new Error("channel and label counts mismatch: "+i);let{channels:u,labels:f}=Xt[i];delete Xt[i].channels,delete Xt[i].labels,Object.defineProperty(Xt[i],"channels",{value:u}),Object.defineProperty(Xt[i],"labels",{value:f})}Xt.rgb.hsl=function(i){let u=i[0]/255,f=i[1]/255,c=i[2]/255,g=Math.min(u,f,c),t=Math.max(u,f,c),C=t-g,A,x;t===g?A=0:u===t?A=(f-c)/C:f===t?A=2+(c-u)/C:c===t&&(A=4+(u-f)/C),A=Math.min(A*60,360),A<0&&(A+=360);let D=(g+t)/2;return t===g?x=0:D<=.5?x=C/(t+g):x=C/(2-t-g),[A,x*100,D*100]};Xt.rgb.hsv=function(i){let u,f,c,g,t,C=i[0]/255,A=i[1]/255,x=i[2]/255,D=Math.max(C,A,x),L=D-Math.min(C,A,x),N=function(j){return(D-j)/6/L+1/2};return L===0?(g=0,t=0):(t=L/D,u=N(C),f=N(A),c=N(x),C===D?g=c-f:A===D?g=1/3+u-c:x===D&&(g=2/3+f-u),g<0?g+=1:g>1&&(g-=1)),[g*360,t*100,D*100]};Xt.rgb.hwb=function(i){let u=i[0],f=i[1],c=i[2],g=Xt.rgb.hsl(i)[0],t=1/255*Math.min(u,Math.min(f,c));return c=1-1/255*Math.max(u,Math.max(f,c)),[g,t*100,c*100]};Xt.rgb.cmyk=function(i){let u=i[0]/255,f=i[1]/255,c=i[2]/255,g=Math.min(1-u,1-f,1-c),t=(1-u-g)/(1-g)||0,C=(1-f-g)/(1-g)||0,A=(1-c-g)/(1-g)||0;return[t*100,C*100,A*100,g*100]};function BN(i,u){return(i[0]-u[0])**2+(i[1]-u[1])**2+(i[2]-u[2])**2}Xt.rgb.keyword=function(i){let u=IE[i];if(u)return u;let f=Infinity,c;for(let g of Object.keys(p2)){let t=p2[g],C=BN(i,t);C.04045?((u+.055)/1.055)**2.4:u/12.92,f=f>.04045?((f+.055)/1.055)**2.4:f/12.92,c=c>.04045?((c+.055)/1.055)**2.4:c/12.92;let g=u*.4124+f*.3576+c*.1805,t=u*.2126+f*.7152+c*.0722,C=u*.0193+f*.1192+c*.9505;return[g*100,t*100,C*100]};Xt.rgb.lab=function(i){let u=Xt.rgb.xyz(i),f=u[0],c=u[1],g=u[2];f/=95.047,c/=100,g/=108.883,f=f>.008856?f**(1/3):7.787*f+16/116,c=c>.008856?c**(1/3):7.787*c+16/116,g=g>.008856?g**(1/3):7.787*g+16/116;let t=116*c-16,C=500*(f-c),A=200*(c-g);return[t,C,A]};Xt.hsl.rgb=function(i){let u=i[0]/360,f=i[1]/100,c=i[2]/100,g,t,C;if(f===0)return C=c*255,[C,C,C];c<.5?g=c*(1+f):g=c+f-c*f;let A=2*c-g,x=[0,0,0];for(let D=0;D<3;D++)t=u+1/3*-(D-1),t<0&&t++,t>1&&t--,6*t<1?C=A+(g-A)*6*t:2*t<1?C=g:3*t<2?C=A+(g-A)*(2/3-t)*6:C=A,x[D]=C*255;return x};Xt.hsl.hsv=function(i){let u=i[0],f=i[1]/100,c=i[2]/100,g=f,t=Math.max(c,.01);c*=2,f*=c<=1?c:2-c,g*=t<=1?t:2-t;let C=(c+f)/2,A=c===0?2*g/(t+g):2*f/(c+f);return[u,A*100,C*100]};Xt.hsv.rgb=function(i){let u=i[0]/60,f=i[1]/100,c=i[2]/100,g=Math.floor(u)%6,t=u-Math.floor(u),C=255*c*(1-f),A=255*c*(1-f*t),x=255*c*(1-f*(1-t));switch(c*=255,g){case 0:return[c,x,C];case 1:return[A,c,C];case 2:return[C,c,x];case 3:return[C,A,c];case 4:return[x,C,c];case 5:return[c,C,A]}};Xt.hsv.hsl=function(i){let u=i[0],f=i[1]/100,c=i[2]/100,g=Math.max(c,.01),t,C;C=(2-f)*c;let A=(2-f)*g;return t=f*g,t/=A<=1?A:2-A,t=t||0,C/=2,[u,t*100,C*100]};Xt.hwb.rgb=function(i){let u=i[0]/360,f=i[1]/100,c=i[2]/100,g=f+c,t;g>1&&(f/=g,c/=g);let C=Math.floor(6*u),A=1-c;t=6*u-C,(C&1)!=0&&(t=1-t);let x=f+t*(A-f),D,L,N;switch(C){default:case 6:case 0:D=A,L=x,N=f;break;case 1:D=x,L=A,N=f;break;case 2:D=f,L=A,N=x;break;case 3:D=f,L=x,N=A;break;case 4:D=x,L=f,N=A;break;case 5:D=A,L=f,N=x;break}return[D*255,L*255,N*255]};Xt.cmyk.rgb=function(i){let u=i[0]/100,f=i[1]/100,c=i[2]/100,g=i[3]/100,t=1-Math.min(1,u*(1-g)+g),C=1-Math.min(1,f*(1-g)+g),A=1-Math.min(1,c*(1-g)+g);return[t*255,C*255,A*255]};Xt.xyz.rgb=function(i){let u=i[0]/100,f=i[1]/100,c=i[2]/100,g,t,C;return g=u*3.2406+f*-1.5372+c*-.4986,t=u*-.9689+f*1.8758+c*.0415,C=u*.0557+f*-.204+c*1.057,g=g>.0031308?1.055*g**(1/2.4)-.055:g*12.92,t=t>.0031308?1.055*t**(1/2.4)-.055:t*12.92,C=C>.0031308?1.055*C**(1/2.4)-.055:C*12.92,g=Math.min(Math.max(0,g),1),t=Math.min(Math.max(0,t),1),C=Math.min(Math.max(0,C),1),[g*255,t*255,C*255]};Xt.xyz.lab=function(i){let u=i[0],f=i[1],c=i[2];u/=95.047,f/=100,c/=108.883,u=u>.008856?u**(1/3):7.787*u+16/116,f=f>.008856?f**(1/3):7.787*f+16/116,c=c>.008856?c**(1/3):7.787*c+16/116;let g=116*f-16,t=500*(u-f),C=200*(f-c);return[g,t,C]};Xt.lab.xyz=function(i){let u=i[0],f=i[1],c=i[2],g,t,C;t=(u+16)/116,g=f/500+t,C=t-c/200;let A=t**3,x=g**3,D=C**3;return t=A>.008856?A:(t-16/116)/7.787,g=x>.008856?x:(g-16/116)/7.787,C=D>.008856?D:(C-16/116)/7.787,g*=95.047,t*=100,C*=108.883,[g,t,C]};Xt.lab.lch=function(i){let u=i[0],f=i[1],c=i[2],g;g=Math.atan2(c,f)*360/2/Math.PI,g<0&&(g+=360);let C=Math.sqrt(f*f+c*c);return[u,C,g]};Xt.lch.lab=function(i){let u=i[0],f=i[1],g=i[2]/360*2*Math.PI,t=f*Math.cos(g),C=f*Math.sin(g);return[u,t,C]};Xt.rgb.ansi16=function(i,u=null){let[f,c,g]=i,t=u===null?Xt.rgb.hsv(i)[2]:u;if(t=Math.round(t/50),t===0)return 30;let C=30+(Math.round(g/255)<<2|Math.round(c/255)<<1|Math.round(f/255));return t===2&&(C+=60),C};Xt.hsv.ansi16=function(i){return Xt.rgb.ansi16(Xt.hsv.rgb(i),i[2])};Xt.rgb.ansi256=function(i){let u=i[0],f=i[1],c=i[2];return u===f&&f===c?u<8?16:u>248?231:Math.round((u-8)/247*24)+232:16+36*Math.round(u/255*5)+6*Math.round(f/255*5)+Math.round(c/255*5)};Xt.ansi16.rgb=function(i){let u=i%10;if(u===0||u===7)return i>50&&(u+=3.5),u=u/10.5*255,[u,u,u];let f=(~~(i>50)+1)*.5,c=(u&1)*f*255,g=(u>>1&1)*f*255,t=(u>>2&1)*f*255;return[c,g,t]};Xt.ansi256.rgb=function(i){if(i>=232){let t=(i-232)*10+8;return[t,t,t]}i-=16;let u,f=Math.floor(i/36)/5*255,c=Math.floor((u=i%36)/6)/5*255,g=u%6/5*255;return[f,c,g]};Xt.rgb.hex=function(i){let f=(((Math.round(i[0])&255)<<16)+((Math.round(i[1])&255)<<8)+(Math.round(i[2])&255)).toString(16).toUpperCase();return"000000".substring(f.length)+f};Xt.hex.rgb=function(i){let u=i.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!u)return[0,0,0];let f=u[0];u[0].length===3&&(f=f.split("").map(A=>A+A).join(""));let c=parseInt(f,16),g=c>>16&255,t=c>>8&255,C=c&255;return[g,t,C]};Xt.rgb.hcg=function(i){let u=i[0]/255,f=i[1]/255,c=i[2]/255,g=Math.max(Math.max(u,f),c),t=Math.min(Math.min(u,f),c),C=g-t,A,x;return C<1?A=t/(1-C):A=0,C<=0?x=0:g===u?x=(f-c)/C%6:g===f?x=2+(c-u)/C:x=4+(u-f)/C,x/=6,x%=1,[x*360,C*100,A*100]};Xt.hsl.hcg=function(i){let u=i[1]/100,f=i[2]/100,c=f<.5?2*u*f:2*u*(1-f),g=0;return c<1&&(g=(f-.5*c)/(1-c)),[i[0],c*100,g*100]};Xt.hsv.hcg=function(i){let u=i[1]/100,f=i[2]/100,c=u*f,g=0;return c<1&&(g=(f-c)/(1-c)),[i[0],c*100,g*100]};Xt.hcg.rgb=function(i){let u=i[0]/360,f=i[1]/100,c=i[2]/100;if(f===0)return[c*255,c*255,c*255];let g=[0,0,0],t=u%1*6,C=t%1,A=1-C,x=0;switch(Math.floor(t)){case 0:g[0]=1,g[1]=C,g[2]=0;break;case 1:g[0]=A,g[1]=1,g[2]=0;break;case 2:g[0]=0,g[1]=1,g[2]=C;break;case 3:g[0]=0,g[1]=A,g[2]=1;break;case 4:g[0]=C,g[1]=0,g[2]=1;break;default:g[0]=1,g[1]=0,g[2]=A}return x=(1-f)*c,[(f*g[0]+x)*255,(f*g[1]+x)*255,(f*g[2]+x)*255]};Xt.hcg.hsv=function(i){let u=i[1]/100,f=i[2]/100,c=u+f*(1-u),g=0;return c>0&&(g=u/c),[i[0],g*100,c*100]};Xt.hcg.hsl=function(i){let u=i[1]/100,c=i[2]/100*(1-u)+.5*u,g=0;return c>0&&c<.5?g=u/(2*c):c>=.5&&c<1&&(g=u/(2*(1-c))),[i[0],g*100,c*100]};Xt.hcg.hwb=function(i){let u=i[1]/100,f=i[2]/100,c=u+f*(1-u);return[i[0],(c-u)*100,(1-c)*100]};Xt.hwb.hcg=function(i){let u=i[1]/100,f=i[2]/100,c=1-f,g=c-u,t=0;return g<1&&(t=(c-g)/(1-g)),[i[0],g*100,t*100]};Xt.apple.rgb=function(i){return[i[0]/65535*255,i[1]/65535*255,i[2]/65535*255]};Xt.rgb.apple=function(i){return[i[0]/255*65535,i[1]/255*65535,i[2]/255*65535]};Xt.gray.rgb=function(i){return[i[0]/100*255,i[0]/100*255,i[0]/100*255]};Xt.gray.hsl=function(i){return[0,0,i[0]]};Xt.gray.hsv=Xt.gray.hsl;Xt.gray.hwb=function(i){return[0,100,i[0]]};Xt.gray.cmyk=function(i){return[0,0,0,i[0]]};Xt.gray.lab=function(i){return[i[0],0,0]};Xt.gray.hex=function(i){let u=Math.round(i[0]/100*255)&255,c=((u<<16)+(u<<8)+u).toString(16).toUpperCase();return"000000".substring(c.length)+c};Xt.rgb.gray=function(i){return[(i[0]+i[1]+i[2])/3/255*100]}});var ME=Me((Tb,PE)=>{var Fh=qy();function jN(){let i={},u=Object.keys(Fh);for(let f=u.length,c=0;c{var zy=qy(),WN=ME(),Ca={},HN=Object.keys(zy);function bN(i){let u=function(...f){let c=f[0];return c==null?c:(c.length>1&&(f=c),i(f))};return"conversion"in i&&(u.conversion=i.conversion),u}function GN(i){let u=function(...f){let c=f[0];if(c==null)return c;c.length>1&&(f=c);let g=i(f);if(typeof g=="object")for(let t=g.length,C=0;C{Ca[i]={},Object.defineProperty(Ca[i],"channels",{value:zy[i].channels}),Object.defineProperty(Ca[i],"labels",{value:zy[i].labels});let u=WN(i);Object.keys(u).forEach(c=>{let g=u[c];Ca[i][c]=GN(g),Ca[i][c].raw=bN(g)})});FE.exports=Ca});var Rh=Me((kb,RE)=>{"use strict";var NE=(i,u)=>(...f)=>`[${i(...f)+u}m`,BE=(i,u)=>(...f)=>{let c=i(...f);return`[${38+u};5;${c}m`},jE=(i,u)=>(...f)=>{let c=i(...f);return`[${38+u};2;${c[0]};${c[1]};${c[2]}m`},Lh=i=>i,UE=(i,u,f)=>[i,u,f],Ta=(i,u,f)=>{Object.defineProperty(i,u,{get:()=>{let c=f();return Object.defineProperty(i,u,{value:c,enumerable:!0,configurable:!0}),c},enumerable:!0,configurable:!0})},Wy,xa=(i,u,f,c)=>{Wy===void 0&&(Wy=LE());let g=c?10:0,t={};for(let[C,A]of Object.entries(Wy)){let x=C==="ansi16"?"ansi":C;C===u?t[x]=i(f,g):typeof A=="object"&&(t[x]=i(A[u],g))}return t};function VN(){let i=new Map,u={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};u.color.gray=u.color.blackBright,u.bgColor.bgGray=u.bgColor.bgBlackBright,u.color.grey=u.color.blackBright,u.bgColor.bgGrey=u.bgColor.bgBlackBright;for(let[f,c]of Object.entries(u)){for(let[g,t]of Object.entries(c))u[g]={open:`[${t[0]}m`,close:`[${t[1]}m`},c[g]=u[g],i.set(t[0],t[1]);Object.defineProperty(u,f,{value:c,enumerable:!1})}return Object.defineProperty(u,"codes",{value:i,enumerable:!1}),u.color.close="",u.bgColor.close="",Ta(u.color,"ansi",()=>xa(NE,"ansi16",Lh,!1)),Ta(u.color,"ansi256",()=>xa(BE,"ansi256",Lh,!1)),Ta(u.color,"ansi16m",()=>xa(jE,"rgb",UE,!1)),Ta(u.bgColor,"ansi",()=>xa(NE,"ansi16",Lh,!0)),Ta(u.bgColor,"ansi256",()=>xa(BE,"ansi256",Lh,!0)),Ta(u.bgColor,"ansi16m",()=>xa(jE,"rgb",UE,!0)),u}Object.defineProperty(RE,"exports",{enumerable:!0,get:VN})});var WE=Me((Ab,qE)=>{"use strict";var h2=Mh(),YN=Fy(),$N=Rh(),Hy=new Set(["","\x9B"]),KN=39,zE=i=>`${Hy.values().next().value}[${i}m`,XN=i=>i.split(" ").map(u=>h2(u)),by=(i,u,f)=>{let c=[...u],g=!1,t=h2(YN(i[i.length-1]));for(let[C,A]of c.entries()){let x=h2(A);if(t+x<=f?i[i.length-1]+=A:(i.push(A),t=0),Hy.has(A))g=!0;else if(g&&A==="m"){g=!1;continue}g||(t+=x,t===f&&C0&&i.length>1&&(i[i.length-2]+=i.pop())},JN=i=>{let u=i.split(" "),f=u.length;for(;f>0&&!(h2(u[f-1])>0);)f--;return f===u.length?i:u.slice(0,f).join(" ")+u.slice(f).join("")},QN=(i,u,f={})=>{if(f.trim!==!1&&i.trim()==="")return"";let c="",g="",t,C=XN(i),A=[""];for(let[x,D]of i.split(" ").entries()){f.trim!==!1&&(A[A.length-1]=A[A.length-1].trimLeft());let L=h2(A[A.length-1]);if(x!==0&&(L>=u&&(f.wordWrap===!1||f.trim===!1)&&(A.push(""),L=0),(L>0||f.trim===!1)&&(A[A.length-1]+=" ",L++)),f.hard&&C[x]>u){let N=u-L,j=1+Math.floor((C[x]-N-1)/u);Math.floor((C[x]-1)/u)u&&L>0&&C[x]>0){if(f.wordWrap===!1&&Lu&&f.wordWrap===!1){by(A,D,u);continue}A[A.length-1]+=D}f.trim!==!1&&(A=A.map(JN)),c=A.join(` -`);for(let[x,D]of[...c].entries()){if(g+=D,Hy.has(D)){let N=parseFloat(/\d[^m]*/.exec(c.slice(x,x+4)));t=N===KN?null:N}let L=$N.codes.get(Number(t));t&&L&&(c[x+1]===` -`?g+=zE(L):D===` -`&&(g+=zE(t)))}return g};qE.exports=(i,u,f)=>String(i).normalize().replace(/\r\n/g,` -`).split(` -`).map(c=>QN(c,u,f)).join(` -`)});var GE=Me((Ob,HE)=>{"use strict";var bE="[\uD800-\uDBFF][\uDC00-\uDFFF]",ZN=i=>i&&i.exact?new RegExp(`^${bE}$`):new RegExp(bE,"g");HE.exports=ZN});var Gy=Me((Ib,VE)=>{"use strict";var eB=Ry(),tB=GE(),YE=Rh(),$E=["","\x9B"],Nh=i=>`${$E[0]}[${i}m`,KE=(i,u,f)=>{let c=[];i=[...i];for(let g of i){let t=g;g.match(";")&&(g=g.split(";")[0][0]+"0");let C=YE.codes.get(parseInt(g,10));if(C){let A=i.indexOf(C.toString());A>=0?i.splice(A,1):c.push(Nh(u?C:t))}else if(u){c.push(Nh(0));break}else c.push(Nh(t))}if(u&&(c=c.filter((g,t)=>c.indexOf(g)===t),f!==void 0)){let g=Nh(YE.codes.get(parseInt(f,10)));c=c.reduce((t,C)=>C===g?[C,...t]:[...t,C],[])}return c.join("")};VE.exports=(i,u,f)=>{let c=[...i.normalize()],g=[];f=typeof f=="number"?f:c.length;let t=!1,C,A=0,x="";for(let[D,L]of c.entries()){let N=!1;if($E.includes(L)){let j=/\d[^m]*/.exec(i.slice(D,D+18));C=j&&j.length>0?j[0]:void 0,Au&&A<=f)x+=L;else if(A===u&&!t&&C!==void 0)x=KE(g);else if(A>=f){x+=KE(g,!0,C);break}}return x}});var JE=Me((Pb,XE)=>{"use strict";var Bf=Gy(),nB=Mh();function Bh(i,u,f){if(i.charAt(u)===" ")return u;for(let c=1;c<=3;c++)if(f){if(i.charAt(u+c)===" ")return u+c}else if(i.charAt(u-c)===" ")return u-c;return u}XE.exports=(i,u,f)=>{f=dt({position:"end",preferTruncationOnSpace:!1},f);let{position:c,space:g,preferTruncationOnSpace:t}=f,C="\u2026",A=1;if(typeof i!="string")throw new TypeError(`Expected \`input\` to be a string, got ${typeof i}`);if(typeof u!="number")throw new TypeError(`Expected \`columns\` to be a number, got ${typeof u}`);if(u<1)return"";if(u===1)return C;let x=nB(i);if(x<=u)return i;if(c==="start"){if(t){let D=Bh(i,x-u+1,!0);return C+Bf(i,D,x).trim()}return g===!0&&(C+=" ",A=2),C+Bf(i,x-u+A,x)}if(c==="middle"){g===!0&&(C=" "+C+" ",A=3);let D=Math.floor(u/2);if(t){let L=Bh(i,D),N=Bh(i,x-(u-D)+1,!0);return Bf(i,0,L)+C+Bf(i,N,x).trim()}return Bf(i,0,D)+C+Bf(i,x-(u-D)+A,x)}if(c==="end"){if(t){let D=Bh(i,u-1);return Bf(i,0,D)+C}return g===!0&&(C=" "+C,A=2),Bf(i,0,u-A)+C}throw new Error(`Expected \`options.position\` to be either \`start\`, \`middle\` or \`end\`, got ${c}`)}});var Yy=Me(m2=>{"use strict";var QE=m2&&m2.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(m2,"__esModule",{value:!0});var rB=QE(WE()),iB=QE(JE()),Vy={};m2.default=(i,u,f)=>{let c=i+String(u)+String(f);if(Vy[c])return Vy[c];let g=i;if(f==="wrap"&&(g=rB.default(i,u,{trim:!1,hard:!0})),f.startsWith("truncate")){let t="end";f==="truncate-middle"&&(t="middle"),f==="truncate-start"&&(t="start"),g=iB.default(i,u,{position:t})}return Vy[c]=g,g}});var Ky=Me($y=>{"use strict";Object.defineProperty($y,"__esModule",{value:!0});var ZE=i=>{let u="";if(i.childNodes.length>0)for(let f of i.childNodes){let c="";f.nodeName==="#text"?c=f.nodeValue:((f.nodeName==="ink-text"||f.nodeName==="ink-virtual-text")&&(c=ZE(f)),c.length>0&&typeof f.internal_transform=="function"&&(c=f.internal_transform(c))),u+=c}return u};$y.default=ZE});var Xy=Me(Zr=>{"use strict";var v2=Zr&&Zr.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(Zr,"__esModule",{value:!0});Zr.setTextNodeValue=Zr.createTextNode=Zr.setStyle=Zr.setAttribute=Zr.removeChildNode=Zr.insertBeforeNode=Zr.appendChildNode=Zr.createNode=Zr.TEXT_NAME=void 0;var oB=v2(hc()),e6=v2(TE()),uB=v2(xE()),sB=v2(Yy()),lB=v2(Ky());Zr.TEXT_NAME="#text";Zr.createNode=i=>{var u;let f={nodeName:i,style:{},attributes:{},childNodes:[],parentNode:null,yogaNode:i==="ink-virtual-text"?void 0:oB.default.Node.create()};return i==="ink-text"&&((u=f.yogaNode)===null||u===void 0||u.setMeasureFunc(fB.bind(null,f))),f};Zr.appendChildNode=(i,u)=>{var f;u.parentNode&&Zr.removeChildNode(u.parentNode,u),u.parentNode=i,i.childNodes.push(u),u.yogaNode&&((f=i.yogaNode)===null||f===void 0||f.insertChild(u.yogaNode,i.yogaNode.getChildCount())),(i.nodeName==="ink-text"||i.nodeName==="ink-virtual-text")&&jh(i)};Zr.insertBeforeNode=(i,u,f)=>{var c,g;u.parentNode&&Zr.removeChildNode(u.parentNode,u),u.parentNode=i;let t=i.childNodes.indexOf(f);if(t>=0){i.childNodes.splice(t,0,u),u.yogaNode&&((c=i.yogaNode)===null||c===void 0||c.insertChild(u.yogaNode,t));return}i.childNodes.push(u),u.yogaNode&&((g=i.yogaNode)===null||g===void 0||g.insertChild(u.yogaNode,i.yogaNode.getChildCount())),(i.nodeName==="ink-text"||i.nodeName==="ink-virtual-text")&&jh(i)};Zr.removeChildNode=(i,u)=>{var f,c;u.yogaNode&&((c=(f=u.parentNode)===null||f===void 0?void 0:f.yogaNode)===null||c===void 0||c.removeChild(u.yogaNode)),u.parentNode=null;let g=i.childNodes.indexOf(u);g>=0&&i.childNodes.splice(g,1),(i.nodeName==="ink-text"||i.nodeName==="ink-virtual-text")&&jh(i)};Zr.setAttribute=(i,u,f)=>{i.attributes[u]=f};Zr.setStyle=(i,u)=>{i.style=u,i.yogaNode&&uB.default(i.yogaNode,u)};Zr.createTextNode=i=>{let u={nodeName:"#text",nodeValue:i,yogaNode:void 0,parentNode:null,style:{}};return Zr.setTextNodeValue(u,i),u};var fB=function(i,u){var f,c;let g=i.nodeName==="#text"?i.nodeValue:lB.default(i),t=e6.default(g);if(t.width<=u||t.width>=1&&u>0&&u<1)return t;let C=(c=(f=i.style)===null||f===void 0?void 0:f.textWrap)!==null&&c!==void 0?c:"wrap",A=sB.default(g,u,C);return e6.default(A)},t6=i=>{var u;if(!(!i||!i.parentNode))return(u=i.yogaNode)!==null&&u!==void 0?u:t6(i.parentNode)},jh=i=>{let u=t6(i);u==null||u.markDirty()};Zr.setTextNodeValue=(i,u)=>{typeof u!="string"&&(u=String(u)),i.nodeValue=u,jh(i)}});var mc=Me((Rb,n6)=>{"use strict";n6.exports={BINARY_TYPES:["nodebuffer","arraybuffer","fragments"],GUID:"258EAFA5-E914-47DA-95CA-C5AB0DC85B11",kStatusCode:Symbol("status-code"),kWebSocket:Symbol("websocket"),EMPTY_BUFFER:Buffer.alloc(0),NOOP:()=>{}}});var g2=Me((Nb,Jy)=>{"use strict";var{EMPTY_BUFFER:cB}=mc();function r6(i,u){if(i.length===0)return cB;if(i.length===1)return i[0];let f=Buffer.allocUnsafe(u),c=0;for(let g=0;g{"use strict";var l6=Symbol("kDone"),Qy=Symbol("kRun"),f6=class{constructor(u){this[l6]=()=>{this.pending--,this[Qy]()},this.concurrency=u||Infinity,this.jobs=[],this.pending=0}add(u){this.jobs.push(u),this[Qy]()}[Qy](){if(this.pending!==this.concurrency&&this.jobs.length){let u=this.jobs.shift();this.pending++,u(this[l6])}}};s6.exports=f6});var w2=Me((jb,a6)=>{"use strict";var _2=require("zlib"),d6=g2(),aB=c6(),{kStatusCode:p6,NOOP:dB}=mc(),pB=Buffer.from([0,0,255,255]),qh=Symbol("permessage-deflate"),Xl=Symbol("total-length"),y2=Symbol("callback"),jf=Symbol("buffers"),Zy=Symbol("error"),zh,h6=class{constructor(u,f,c){if(this._maxPayload=c|0,this._options=u||{},this._threshold=this._options.threshold!==void 0?this._options.threshold:1024,this._isServer=!!f,this._deflate=null,this._inflate=null,this.params=null,!zh){let g=this._options.concurrencyLimit!==void 0?this._options.concurrencyLimit:10;zh=new aB(g)}}static get extensionName(){return"permessage-deflate"}offer(){let u={};return this._options.serverNoContextTakeover&&(u.server_no_context_takeover=!0),this._options.clientNoContextTakeover&&(u.client_no_context_takeover=!0),this._options.serverMaxWindowBits&&(u.server_max_window_bits=this._options.serverMaxWindowBits),this._options.clientMaxWindowBits?u.client_max_window_bits=this._options.clientMaxWindowBits:this._options.clientMaxWindowBits==null&&(u.client_max_window_bits=!0),u}accept(u){return u=this.normalizeParams(u),this.params=this._isServer?this.acceptAsServer(u):this.acceptAsClient(u),this.params}cleanup(){if(this._inflate&&(this._inflate.close(),this._inflate=null),this._deflate){let u=this._deflate[y2];this._deflate.close(),this._deflate=null,u&&u(new Error("The deflate stream was closed while data was being processed"))}}acceptAsServer(u){let f=this._options,c=u.find(g=>!(f.serverNoContextTakeover===!1&&g.server_no_context_takeover||g.server_max_window_bits&&(f.serverMaxWindowBits===!1||typeof f.serverMaxWindowBits=="number"&&f.serverMaxWindowBits>g.server_max_window_bits)||typeof f.clientMaxWindowBits=="number"&&!g.client_max_window_bits));if(!c)throw new Error("None of the extension offers can be accepted");return f.serverNoContextTakeover&&(c.server_no_context_takeover=!0),f.clientNoContextTakeover&&(c.client_no_context_takeover=!0),typeof f.serverMaxWindowBits=="number"&&(c.server_max_window_bits=f.serverMaxWindowBits),typeof f.clientMaxWindowBits=="number"?c.client_max_window_bits=f.clientMaxWindowBits:(c.client_max_window_bits===!0||f.clientMaxWindowBits===!1)&&delete c.client_max_window_bits,c}acceptAsClient(u){let f=u[0];if(this._options.clientNoContextTakeover===!1&&f.client_no_context_takeover)throw new Error('Unexpected parameter "client_no_context_takeover"');if(!f.client_max_window_bits)typeof this._options.clientMaxWindowBits=="number"&&(f.client_max_window_bits=this._options.clientMaxWindowBits);else if(this._options.clientMaxWindowBits===!1||typeof this._options.clientMaxWindowBits=="number"&&f.client_max_window_bits>this._options.clientMaxWindowBits)throw new Error('Unexpected or invalid parameter "client_max_window_bits"');return f}normalizeParams(u){return u.forEach(f=>{Object.keys(f).forEach(c=>{let g=f[c];if(g.length>1)throw new Error(`Parameter "${c}" must have only a single value`);if(g=g[0],c==="client_max_window_bits"){if(g!==!0){let t=+g;if(!Number.isInteger(t)||t<8||t>15)throw new TypeError(`Invalid value for parameter "${c}": ${g}`);g=t}else if(!this._isServer)throw new TypeError(`Invalid value for parameter "${c}": ${g}`)}else if(c==="server_max_window_bits"){let t=+g;if(!Number.isInteger(t)||t<8||t>15)throw new TypeError(`Invalid value for parameter "${c}": ${g}`);g=t}else if(c==="client_no_context_takeover"||c==="server_no_context_takeover"){if(g!==!0)throw new TypeError(`Invalid value for parameter "${c}": ${g}`)}else throw new Error(`Unknown parameter "${c}"`);f[c]=g})}),u}decompress(u,f,c){zh.add(g=>{this._decompress(u,f,(t,C)=>{g(),c(t,C)})})}compress(u,f,c){zh.add(g=>{this._compress(u,f,(t,C)=>{g(),c(t,C)})})}_decompress(u,f,c){let g=this._isServer?"client":"server";if(!this._inflate){let t=`${g}_max_window_bits`,C=typeof this.params[t]!="number"?_2.Z_DEFAULT_WINDOWBITS:this.params[t];this._inflate=_2.createInflateRaw(zn(dt({},this._options.zlibInflateOptions),{windowBits:C})),this._inflate[qh]=this,this._inflate[Xl]=0,this._inflate[jf]=[],this._inflate.on("error",mB),this._inflate.on("data",m6)}this._inflate[y2]=c,this._inflate.write(u),f&&this._inflate.write(pB),this._inflate.flush(()=>{let t=this._inflate[Zy];if(t){this._inflate.close(),this._inflate=null,c(t);return}let C=d6.concat(this._inflate[jf],this._inflate[Xl]);this._inflate._readableState.endEmitted?(this._inflate.close(),this._inflate=null):(this._inflate[Xl]=0,this._inflate[jf]=[],f&&this.params[`${g}_no_context_takeover`]&&this._inflate.reset()),c(null,C)})}_compress(u,f,c){let g=this._isServer?"server":"client";if(!this._deflate){let t=`${g}_max_window_bits`,C=typeof this.params[t]!="number"?_2.Z_DEFAULT_WINDOWBITS:this.params[t];this._deflate=_2.createDeflateRaw(zn(dt({},this._options.zlibDeflateOptions),{windowBits:C})),this._deflate[Xl]=0,this._deflate[jf]=[],this._deflate.on("error",dB),this._deflate.on("data",hB)}this._deflate[y2]=c,this._deflate.write(u),this._deflate.flush(_2.Z_SYNC_FLUSH,()=>{if(!this._deflate)return;let t=d6.concat(this._deflate[jf],this._deflate[Xl]);f&&(t=t.slice(0,t.length-4)),this._deflate[y2]=null,this._deflate[Xl]=0,this._deflate[jf]=[],f&&this.params[`${g}_no_context_takeover`]&&this._deflate.reset(),c(null,t)})}};a6.exports=h6;function hB(i){this[jf].push(i),this[Xl]+=i.length}function m6(i){if(this[Xl]+=i.length,this[qh]._maxPayload<1||this[Xl]<=this[qh]._maxPayload){this[jf].push(i);return}this[Zy]=new RangeError("Max payload size exceeded"),this[Zy][p6]=1009,this.removeListener("data",m6),this.reset()}function mB(i){this[qh]._inflate=null,i[p6]=1007,this[y2](i)}});var t3=Me((Ub,e3)=>{"use strict";function v6(i){return i>=1e3&&i<=1014&&i!==1004&&i!==1005&&i!==1006||i>=3e3&&i<=4999}function g6(i){let u=i.length,f=0;for(;f=u||(i[f+1]&192)!=128||(i[f+2]&192)!=128||i[f]===224&&(i[f+1]&224)==128||i[f]===237&&(i[f+1]&224)==160)return!1;f+=3}else if((i[f]&248)==240){if(f+3>=u||(i[f+1]&192)!=128||(i[f+2]&192)!=128||(i[f+3]&192)!=128||i[f]===240&&(i[f+1]&240)==128||i[f]===244&&i[f+1]>143||i[f]>244)return!1;f+=4}else return!1;return!0}try{let i=require("utf-8-validate");typeof i=="object"&&(i=i.Validation.isValidUTF8),e3.exports={isValidStatusCode:v6,isValidUTF8(u){return u.length<150?g6(u):i(u)}}}catch(i){e3.exports={isValidStatusCode:v6,isValidUTF8:g6}}});var i3=Me((qb,_6)=>{"use strict";var{Writable:vB}=require("stream"),y6=w2(),{BINARY_TYPES:gB,EMPTY_BUFFER:_B,kStatusCode:yB,kWebSocket:wB}=mc(),{concat:n3,toArrayBuffer:DB,unmask:EB}=g2(),{isValidStatusCode:SB,isValidUTF8:w6}=t3(),D2=0,D6=1,E6=2,S6=3,r3=4,CB=5,C6=class extends vB{constructor(u,f,c,g){super();this._binaryType=u||gB[0],this[wB]=void 0,this._extensions=f||{},this._isServer=!!c,this._maxPayload=g|0,this._bufferedBytes=0,this._buffers=[],this._compressed=!1,this._payloadLength=0,this._mask=void 0,this._fragmented=0,this._masked=!1,this._fin=!1,this._opcode=0,this._totalPayloadLength=0,this._messageLength=0,this._fragments=[],this._state=D2,this._loop=!1}_write(u,f,c){if(this._opcode===8&&this._state==D2)return c();this._bufferedBytes+=u.length,this._buffers.push(u),this.startLoop(c)}consume(u){if(this._bufferedBytes-=u,u===this._buffers[0].length)return this._buffers.shift();if(u=c.length?f.set(this._buffers.shift(),g):(f.set(new Uint8Array(c.buffer,c.byteOffset,u),g),this._buffers[0]=c.slice(u)),u-=c.length}while(u>0);return f}startLoop(u){let f;this._loop=!0;do switch(this._state){case D2:f=this.getInfo();break;case D6:f=this.getPayloadLength16();break;case E6:f=this.getPayloadLength64();break;case S6:this.getMask();break;case r3:f=this.getData(u);break;default:this._loop=!1;return}while(this._loop);u(f)}getInfo(){if(this._bufferedBytes<2){this._loop=!1;return}let u=this.consume(2);if((u[0]&48)!=0)return this._loop=!1,ii(RangeError,"RSV2 and RSV3 must be clear",!0,1002);let f=(u[0]&64)==64;if(f&&!this._extensions[y6.extensionName])return this._loop=!1,ii(RangeError,"RSV1 must be clear",!0,1002);if(this._fin=(u[0]&128)==128,this._opcode=u[0]&15,this._payloadLength=u[1]&127,this._opcode===0){if(f)return this._loop=!1,ii(RangeError,"RSV1 must be clear",!0,1002);if(!this._fragmented)return this._loop=!1,ii(RangeError,"invalid opcode 0",!0,1002);this._opcode=this._fragmented}else if(this._opcode===1||this._opcode===2){if(this._fragmented)return this._loop=!1,ii(RangeError,`invalid opcode ${this._opcode}`,!0,1002);this._compressed=f}else if(this._opcode>7&&this._opcode<11){if(!this._fin)return this._loop=!1,ii(RangeError,"FIN must be set",!0,1002);if(f)return this._loop=!1,ii(RangeError,"RSV1 must be clear",!0,1002);if(this._payloadLength>125)return this._loop=!1,ii(RangeError,`invalid payload length ${this._payloadLength}`,!0,1002)}else return this._loop=!1,ii(RangeError,`invalid opcode ${this._opcode}`,!0,1002);if(!this._fin&&!this._fragmented&&(this._fragmented=this._opcode),this._masked=(u[1]&128)==128,this._isServer){if(!this._masked)return this._loop=!1,ii(RangeError,"MASK must be set",!0,1002)}else if(this._masked)return this._loop=!1,ii(RangeError,"MASK must be clear",!0,1002);if(this._payloadLength===126)this._state=D6;else if(this._payloadLength===127)this._state=E6;else return this.haveLength()}getPayloadLength16(){if(this._bufferedBytes<2){this._loop=!1;return}return this._payloadLength=this.consume(2).readUInt16BE(0),this.haveLength()}getPayloadLength64(){if(this._bufferedBytes<8){this._loop=!1;return}let u=this.consume(8),f=u.readUInt32BE(0);return f>Math.pow(2,53-32)-1?(this._loop=!1,ii(RangeError,"Unsupported WebSocket frame: payload length > 2^53 - 1",!1,1009)):(this._payloadLength=f*Math.pow(2,32)+u.readUInt32BE(4),this.haveLength())}haveLength(){if(this._payloadLength&&this._opcode<8&&(this._totalPayloadLength+=this._payloadLength,this._totalPayloadLength>this._maxPayload&&this._maxPayload>0))return this._loop=!1,ii(RangeError,"Max payload size exceeded",!1,1009);this._masked?this._state=S6:this._state=r3}getMask(){if(this._bufferedBytes<4){this._loop=!1;return}this._mask=this.consume(4),this._state=r3}getData(u){let f=_B;if(this._payloadLength){if(this._bufferedBytes7)return this.controlMessage(f);if(this._compressed){this._state=CB,this.decompress(f,u);return}return f.length&&(this._messageLength=this._totalPayloadLength,this._fragments.push(f)),this.dataMessage()}decompress(u,f){this._extensions[y6.extensionName].decompress(u,this._fin,(g,t)=>{if(g)return f(g);if(t.length){if(this._messageLength+=t.length,this._messageLength>this._maxPayload&&this._maxPayload>0)return f(ii(RangeError,"Max payload size exceeded",!1,1009));this._fragments.push(t)}let C=this.dataMessage();if(C)return f(C);this.startLoop(f)})}dataMessage(){if(this._fin){let u=this._messageLength,f=this._fragments;if(this._totalPayloadLength=0,this._messageLength=0,this._fragmented=0,this._fragments=[],this._opcode===2){let c;this._binaryType==="nodebuffer"?c=n3(f,u):this._binaryType==="arraybuffer"?c=DB(n3(f,u)):c=f,this.emit("message",c)}else{let c=n3(f,u);if(!w6(c))return this._loop=!1,ii(Error,"invalid UTF-8 sequence",!0,1007);this.emit("message",c.toString())}}this._state=D2}controlMessage(u){if(this._opcode===8)if(this._loop=!1,u.length===0)this.emit("conclude",1005,""),this.end();else{if(u.length===1)return ii(RangeError,"invalid payload length 1",!0,1002);{let f=u.readUInt16BE(0);if(!SB(f))return ii(RangeError,`invalid status code ${f}`,!0,1002);let c=u.slice(2);if(!w6(c))return ii(Error,"invalid UTF-8 sequence",!0,1007);this.emit("conclude",f,c.toString()),this.end()}}else this._opcode===9?this.emit("ping",u):this.emit("pong",u);this._state=D2}};_6.exports=C6;function ii(i,u,f,c){let g=new i(f?`Invalid WebSocket frame: ${u}`:u);return Error.captureStackTrace(g,ii),g[yB]=c,g}});var o3=Me((zb,T6)=>{"use strict";var{randomFillSync:TB}=require("crypto"),x6=w2(),{EMPTY_BUFFER:xB}=mc(),{isValidStatusCode:kB}=t3(),{mask:k6,toBuffer:Jl}=g2(),vc=Buffer.alloc(4),Ql=class{constructor(u,f){this._extensions=f||{},this._socket=u,this._firstFragment=!0,this._compress=!1,this._bufferedBytes=0,this._deflating=!1,this._queue=[]}static frame(u,f){let c=f.mask&&f.readOnly,g=f.mask?6:2,t=u.length;u.length>=65536?(g+=8,t=127):u.length>125&&(g+=2,t=126);let C=Buffer.allocUnsafe(c?u.length+g:g);return C[0]=f.fin?f.opcode|128:f.opcode,f.rsv1&&(C[0]|=64),C[1]=t,t===126?C.writeUInt16BE(u.length,2):t===127&&(C.writeUInt32BE(0,2),C.writeUInt32BE(u.length,6)),f.mask?(TB(vc,0,4),C[1]|=128,C[g-4]=vc[0],C[g-3]=vc[1],C[g-2]=vc[2],C[g-1]=vc[3],c?(k6(u,vc,C,g,u.length),[C]):(k6(u,vc,u,0,u.length),[C,u])):[C,u]}close(u,f,c,g){let t;if(u===void 0)t=xB;else{if(typeof u!="number"||!kB(u))throw new TypeError("First argument must be a valid error code number");if(f===void 0||f==="")t=Buffer.allocUnsafe(2),t.writeUInt16BE(u,0);else{let C=Buffer.byteLength(f);if(C>123)throw new RangeError("The message must not be greater than 123 bytes");t=Buffer.allocUnsafe(2+C),t.writeUInt16BE(u,0),t.write(f,2)}}this._deflating?this.enqueue([this.doClose,t,c,g]):this.doClose(t,c,g)}doClose(u,f,c){this.sendFrame(Ql.frame(u,{fin:!0,rsv1:!1,opcode:8,mask:f,readOnly:!1}),c)}ping(u,f,c){let g=Jl(u);if(g.length>125)throw new RangeError("The data size must not be greater than 125 bytes");this._deflating?this.enqueue([this.doPing,g,f,Jl.readOnly,c]):this.doPing(g,f,Jl.readOnly,c)}doPing(u,f,c,g){this.sendFrame(Ql.frame(u,{fin:!0,rsv1:!1,opcode:9,mask:f,readOnly:c}),g)}pong(u,f,c){let g=Jl(u);if(g.length>125)throw new RangeError("The data size must not be greater than 125 bytes");this._deflating?this.enqueue([this.doPong,g,f,Jl.readOnly,c]):this.doPong(g,f,Jl.readOnly,c)}doPong(u,f,c,g){this.sendFrame(Ql.frame(u,{fin:!0,rsv1:!1,opcode:10,mask:f,readOnly:c}),g)}send(u,f,c){let g=Jl(u),t=this._extensions[x6.extensionName],C=f.binary?2:1,A=f.compress;if(this._firstFragment?(this._firstFragment=!1,A&&t&&(A=g.length>=t._threshold),this._compress=A):(A=!1,C=0),f.fin&&(this._firstFragment=!0),t){let x={fin:f.fin,rsv1:A,opcode:C,mask:f.mask,readOnly:Jl.readOnly};this._deflating?this.enqueue([this.dispatch,g,this._compress,x,c]):this.dispatch(g,this._compress,x,c)}else this.sendFrame(Ql.frame(g,{fin:f.fin,rsv1:!1,opcode:C,mask:f.mask,readOnly:Jl.readOnly}),c)}dispatch(u,f,c,g){if(!f){this.sendFrame(Ql.frame(u,c),g);return}let t=this._extensions[x6.extensionName];this._bufferedBytes+=u.length,this._deflating=!0,t.compress(u,c.fin,(C,A)=>{if(this._socket.destroyed){let x=new Error("The socket was closed while data was being compressed");typeof g=="function"&&g(x);for(let D=0;D{"use strict";var E2=class{constructor(u,f){this.target=f,this.type=u}},O6=class extends E2{constructor(u,f){super("message",f);this.data=u}},I6=class extends E2{constructor(u,f,c){super("close",c);this.wasClean=c._closeFrameReceived&&c._closeFrameSent,this.reason=f,this.code=u}},P6=class extends E2{constructor(u){super("open",u)}},M6=class extends E2{constructor(u,f){super("error",f);this.message=u.message,this.error=u}},AB={addEventListener(i,u,f){if(typeof u!="function")return;function c(x){u.call(this,new O6(x,this))}function g(x,D){u.call(this,new I6(x,D,this))}function t(x){u.call(this,new M6(x,this))}function C(){u.call(this,new P6(this))}let A=f&&f.once?"once":"on";i==="message"?(c._listener=u,this[A](i,c)):i==="close"?(g._listener=u,this[A](i,g)):i==="error"?(t._listener=u,this[A](i,t)):i==="open"?(C._listener=u,this[A](i,C)):this[A](i,u)},removeEventListener(i,u){let f=this.listeners(i);for(let c=0;c{"use strict";var S2=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,1,0,0,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0];function rl(i,u,f){i[u]===void 0?i[u]=[f]:i[u].push(f)}function OB(i){let u=Object.create(null);if(i===void 0||i==="")return u;let f=Object.create(null),c=!1,g=!1,t=!1,C,A,x=-1,D=-1,L=0;for(;L{let f=i[u];return Array.isArray(f)||(f=[f]),f.map(c=>[u].concat(Object.keys(c).map(g=>{let t=c[g];return Array.isArray(t)||(t=[t]),t.map(C=>C===!0?g:`${g}=${C}`).join("; ")})).join("; ")).join(", ")}).join(", ")}L6.exports={format:IB,parse:OB}});var a3=Me((bb,R6)=>{"use strict";var PB=require("events"),MB=require("https"),FB=require("http"),N6=require("net"),LB=require("tls"),{randomBytes:RB,createHash:NB}=require("crypto"),{URL:s3}=require("url"),Uf=w2(),BB=i3(),jB=o3(),{BINARY_TYPES:B6,EMPTY_BUFFER:l3,GUID:UB,kStatusCode:qB,kWebSocket:No,NOOP:j6}=mc(),{addEventListener:zB,removeEventListener:WB}=F6(),{format:HB,parse:bB}=u3(),{toBuffer:GB}=g2(),U6=["CONNECTING","OPEN","CLOSING","CLOSED"],f3=[8,13],VB=30*1e3,mr=class extends PB{constructor(u,f,c){super();this._binaryType=B6[0],this._closeCode=1006,this._closeFrameReceived=!1,this._closeFrameSent=!1,this._closeMessage="",this._closeTimer=null,this._extensions={},this._protocol="",this._readyState=mr.CONNECTING,this._receiver=null,this._sender=null,this._socket=null,u!==null?(this._bufferedAmount=0,this._isServer=!1,this._redirects=0,Array.isArray(f)?f=f.join(", "):typeof f=="object"&&f!==null&&(c=f,f=void 0),q6(this,u,f,c)):this._isServer=!0}get binaryType(){return this._binaryType}set binaryType(u){!B6.includes(u)||(this._binaryType=u,this._receiver&&(this._receiver._binaryType=u))}get bufferedAmount(){return this._socket?this._socket._writableState.length+this._sender._bufferedBytes:this._bufferedAmount}get extensions(){return Object.keys(this._extensions).join()}get protocol(){return this._protocol}get readyState(){return this._readyState}get url(){return this._url}setSocket(u,f,c){let g=new BB(this.binaryType,this._extensions,this._isServer,c);this._sender=new jB(u,this._extensions),this._receiver=g,this._socket=u,g[No]=this,u[No]=this,g.on("conclude",YB),g.on("drain",$B),g.on("error",KB),g.on("message",XB),g.on("ping",JB),g.on("pong",QB),u.setTimeout(0),u.setNoDelay(),f.length>0&&u.unshift(f),u.on("close",z6),u.on("data",Wh),u.on("end",W6),u.on("error",H6),this._readyState=mr.OPEN,this.emit("open")}emitClose(){if(!this._socket){this._readyState=mr.CLOSED,this.emit("close",this._closeCode,this._closeMessage);return}this._extensions[Uf.extensionName]&&this._extensions[Uf.extensionName].cleanup(),this._receiver.removeAllListeners(),this._readyState=mr.CLOSED,this.emit("close",this._closeCode,this._closeMessage)}close(u,f){if(this.readyState!==mr.CLOSED){if(this.readyState===mr.CONNECTING){let c="WebSocket was closed before the connection was established";return Zl(this,this._req,c)}if(this.readyState===mr.CLOSING){this._closeFrameSent&&this._closeFrameReceived&&this._socket.end();return}this._readyState=mr.CLOSING,this._sender.close(u,f,!this._isServer,c=>{c||(this._closeFrameSent=!0,this._closeFrameReceived&&this._socket.end())}),this._closeTimer=setTimeout(this._socket.destroy.bind(this._socket),VB)}}ping(u,f,c){if(this.readyState===mr.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");if(typeof u=="function"?(c=u,u=f=void 0):typeof f=="function"&&(c=f,f=void 0),typeof u=="number"&&(u=u.toString()),this.readyState!==mr.OPEN){c3(this,u,c);return}f===void 0&&(f=!this._isServer),this._sender.ping(u||l3,f,c)}pong(u,f,c){if(this.readyState===mr.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");if(typeof u=="function"?(c=u,u=f=void 0):typeof f=="function"&&(c=f,f=void 0),typeof u=="number"&&(u=u.toString()),this.readyState!==mr.OPEN){c3(this,u,c);return}f===void 0&&(f=!this._isServer),this._sender.pong(u||l3,f,c)}send(u,f,c){if(this.readyState===mr.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");if(typeof f=="function"&&(c=f,f={}),typeof u=="number"&&(u=u.toString()),this.readyState!==mr.OPEN){c3(this,u,c);return}let g=dt({binary:typeof u!="string",mask:!this._isServer,compress:!0,fin:!0},f);this._extensions[Uf.extensionName]||(g.compress=!1),this._sender.send(u||l3,g,c)}terminate(){if(this.readyState!==mr.CLOSED){if(this.readyState===mr.CONNECTING){let u="WebSocket was closed before the connection was established";return Zl(this,this._req,u)}this._socket&&(this._readyState=mr.CLOSING,this._socket.destroy())}}};U6.forEach((i,u)=>{let f={enumerable:!0,value:u};Object.defineProperty(mr.prototype,i,f),Object.defineProperty(mr,i,f)});["binaryType","bufferedAmount","extensions","protocol","readyState","url"].forEach(i=>{Object.defineProperty(mr.prototype,i,{enumerable:!0})});["open","error","close","message"].forEach(i=>{Object.defineProperty(mr.prototype,`on${i}`,{configurable:!0,enumerable:!0,get(){let u=this.listeners(i);for(let f=0;f{Zl(i,j,"Opening handshake has timed out")}),j.on("error",$=>{j===null||j.aborted||(j=i._req=null,i._readyState=mr.CLOSING,i.emit("error",$),i.emitClose())}),j.on("response",$=>{let h=$.headers.location,re=$.statusCode;if(h&&g.followRedirects&&re>=300&&re<400){if(++i._redirects>g.maxRedirects){Zl(i,j,"Maximum redirects exceeded");return}j.abort();let ce=new s3(h,u);q6(i,ce,f,c)}else i.emit("unexpected-response",j,$)||Zl(i,j,`Unexpected server response: ${$.statusCode}`)}),j.on("upgrade",($,h,re)=>{if(i.emit("upgrade",$),i.readyState!==mr.CONNECTING)return;j=i._req=null;let ce=NB("sha1").update(D+UB).digest("base64");if($.headers["sec-websocket-accept"]!==ce){Zl(i,h,"Invalid Sec-WebSocket-Accept header");return}let Q=$.headers["sec-websocket-protocol"],oe=(f||"").split(/, */),Se;if(!f&&Q?Se="Server sent a subprotocol but none was requested":f&&!Q?Se="Server sent no subprotocol":Q&&!oe.includes(Q)&&(Se="Server sent an invalid subprotocol"),Se){Zl(i,h,Se);return}if(Q&&(i._protocol=Q),N)try{let me=bB($.headers["sec-websocket-extensions"]);me[Uf.extensionName]&&(N.accept(me[Uf.extensionName]),i._extensions[Uf.extensionName]=N)}catch(me){Zl(i,h,"Invalid Sec-WebSocket-Extensions header");return}i.setSocket(h,re,g.maxPayload)})}function ZB(i){return i.path=i.socketPath,N6.connect(i)}function ej(i){return i.path=void 0,!i.servername&&i.servername!==""&&(i.servername=N6.isIP(i.host)?"":i.host),LB.connect(i)}function Zl(i,u,f){i._readyState=mr.CLOSING;let c=new Error(f);Error.captureStackTrace(c,Zl),u.setHeader?(u.abort(),u.socket&&!u.socket.destroyed&&u.socket.destroy(),u.once("abort",i.emitClose.bind(i)),i.emit("error",c)):(u.destroy(c),u.once("error",i.emit.bind(i,"error")),u.once("close",i.emitClose.bind(i)))}function c3(i,u,f){if(u){let c=GB(u).length;i._socket?i._sender._bufferedBytes+=c:i._bufferedAmount+=c}if(f){let c=new Error(`WebSocket is not open: readyState ${i.readyState} (${U6[i.readyState]})`);f(c)}}function YB(i,u){let f=this[No];f._socket.removeListener("data",Wh),f._socket.resume(),f._closeFrameReceived=!0,f._closeMessage=u,f._closeCode=i,i===1005?f.close():f.close(i,u)}function $B(){this[No]._socket.resume()}function KB(i){let u=this[No];u._socket.removeListener("data",Wh),u._readyState=mr.CLOSING,u._closeCode=i[qB],u.emit("error",i),u._socket.destroy()}function b6(){this[No].emitClose()}function XB(i){this[No].emit("message",i)}function JB(i){let u=this[No];u.pong(i,!u._isServer,j6),u.emit("ping",i)}function QB(i){this[No].emit("pong",i)}function z6(){let i=this[No];this.removeListener("close",z6),this.removeListener("end",W6),i._readyState=mr.CLOSING,i._socket.read(),i._receiver.end(),this.removeListener("data",Wh),this[No]=void 0,clearTimeout(i._closeTimer),i._receiver._writableState.finished||i._receiver._writableState.errorEmitted?i.emitClose():(i._receiver.on("error",b6),i._receiver.on("finish",b6))}function Wh(i){this[No]._receiver.write(i)||this.pause()}function W6(){let i=this[No];i._readyState=mr.CLOSING,i._receiver.end(),this.end()}function H6(){let i=this[No];this.removeListener("error",H6),this.on("error",j6),i&&(i._readyState=mr.CLOSING,this.destroy())}});var $6=Me((Gb,G6)=>{"use strict";var{Duplex:tj}=require("stream");function V6(i){i.emit("close")}function nj(){!this.destroyed&&this._writableState.finished&&this.destroy()}function Y6(i){this.removeListener("error",Y6),this.destroy(),this.listenerCount("error")===0&&this.emit("error",i)}function rj(i,u){let f=!0;function c(){f&&i._socket.resume()}i.readyState===i.CONNECTING?i.once("open",function(){i._receiver.removeAllListeners("drain"),i._receiver.on("drain",c)}):(i._receiver.removeAllListeners("drain"),i._receiver.on("drain",c));let g=new tj(zn(dt({},u),{autoDestroy:!1,emitClose:!1,objectMode:!1,writableObjectMode:!1}));return i.on("message",function(C){g.push(C)||(f=!1,i._socket.pause())}),i.once("error",function(C){g.destroyed||g.destroy(C)}),i.once("close",function(){g.destroyed||g.push(null)}),g._destroy=function(t,C){if(i.readyState===i.CLOSED){C(t),process.nextTick(V6,g);return}let A=!1;i.once("error",function(D){A=!0,C(D)}),i.once("close",function(){A||C(t),process.nextTick(V6,g)}),i.terminate()},g._final=function(t){if(i.readyState===i.CONNECTING){i.once("open",function(){g._final(t)});return}i._socket!==null&&(i._socket._writableState.finished?(t(),g._readableState.endEmitted&&g.destroy()):(i._socket.once("finish",function(){t()}),i.close()))},g._read=function(){i.readyState===i.OPEN&&!f&&(f=!0,i._receiver._writableState.needDrain||i._socket.resume())},g._write=function(t,C,A){if(i.readyState===i.CONNECTING){i.once("open",function(){g._write(t,C,A)});return}i.send(t,A)},g.on("end",nj),g.on("error",Y6),g}G6.exports=rj});var J6=Me((Vb,K6)=>{"use strict";var ij=require("events"),{createHash:oj}=require("crypto"),{createServer:uj,STATUS_CODES:d3}=require("http"),gc=w2(),sj=a3(),{format:lj,parse:fj}=u3(),{GUID:cj,kWebSocket:aj}=mc(),dj=/^[+/0-9A-Za-z]{22}==$/,X6=class extends ij{constructor(u,f){super();if(u=dt({maxPayload:100*1024*1024,perMessageDeflate:!1,handleProtocols:null,clientTracking:!0,verifyClient:null,noServer:!1,backlog:null,server:null,host:null,path:null,port:null},u),u.port==null&&!u.server&&!u.noServer)throw new TypeError('One of the "port", "server", or "noServer" options must be specified');if(u.port!=null?(this._server=uj((c,g)=>{let t=d3[426];g.writeHead(426,{"Content-Length":t.length,"Content-Type":"text/plain"}),g.end(t)}),this._server.listen(u.port,u.host,u.backlog,f)):u.server&&(this._server=u.server),this._server){let c=this.emit.bind(this,"connection");this._removeListeners=pj(this._server,{listening:this.emit.bind(this,"listening"),error:this.emit.bind(this,"error"),upgrade:(g,t,C)=>{this.handleUpgrade(g,t,C,c)}})}u.perMessageDeflate===!0&&(u.perMessageDeflate={}),u.clientTracking&&(this.clients=new Set),this.options=u}address(){if(this.options.noServer)throw new Error('The server is operating in "noServer" mode');return this._server?this._server.address():null}close(u){if(u&&this.once("close",u),this.clients)for(let c of this.clients)c.terminate();let f=this._server;if(f&&(this._removeListeners(),this._removeListeners=this._server=null,this.options.port!=null)){f.close(()=>this.emit("close"));return}process.nextTick(hj,this)}shouldHandle(u){if(this.options.path){let f=u.url.indexOf("?");if((f!==-1?u.url.slice(0,f):u.url)!==this.options.path)return!1}return!0}handleUpgrade(u,f,c,g){f.on("error",p3);let t=u.headers["sec-websocket-key"]!==void 0?u.headers["sec-websocket-key"].trim():!1,C=+u.headers["sec-websocket-version"],A={};if(u.method!=="GET"||u.headers.upgrade.toLowerCase()!=="websocket"||!t||!dj.test(t)||C!==8&&C!==13||!this.shouldHandle(u))return Hh(f,400);if(this.options.perMessageDeflate){let x=new gc(this.options.perMessageDeflate,!0,this.options.maxPayload);try{let D=fj(u.headers["sec-websocket-extensions"]);D[gc.extensionName]&&(x.accept(D[gc.extensionName]),A[gc.extensionName]=x)}catch(D){return Hh(f,400)}}if(this.options.verifyClient){let x={origin:u.headers[`${C===8?"sec-websocket-origin":"origin"}`],secure:!!(u.socket.authorized||u.socket.encrypted),req:u};if(this.options.verifyClient.length===2){this.options.verifyClient(x,(D,L,N,j)=>{if(!D)return Hh(f,L||401,N,j);this.completeUpgrade(t,A,u,f,c,g)});return}if(!this.options.verifyClient(x))return Hh(f,401)}this.completeUpgrade(t,A,u,f,c,g)}completeUpgrade(u,f,c,g,t,C){if(!g.readable||!g.writable)return g.destroy();if(g[aj])throw new Error("server.handleUpgrade() was called more than once with the same socket, possibly due to a misconfiguration");let A=oj("sha1").update(u+cj).digest("base64"),x=["HTTP/1.1 101 Switching Protocols","Upgrade: websocket","Connection: Upgrade",`Sec-WebSocket-Accept: ${A}`],D=new sj(null),L=c.headers["sec-websocket-protocol"];if(L&&(L=L.split(",").map(mj),this.options.handleProtocols?L=this.options.handleProtocols(L,c):L=L[0],L&&(x.push(`Sec-WebSocket-Protocol: ${L}`),D._protocol=L)),f[gc.extensionName]){let N=f[gc.extensionName].params,j=lj({[gc.extensionName]:[N]});x.push(`Sec-WebSocket-Extensions: ${j}`),D._extensions=f}this.emit("headers",x,c),g.write(x.concat(`\r -`).join(`\r -`)),g.removeListener("error",p3),D.setSocket(g,t,this.options.maxPayload),this.clients&&(this.clients.add(D),D.on("close",()=>this.clients.delete(D))),C(D,c)}};K6.exports=X6;function pj(i,u){for(let f of Object.keys(u))i.on(f,u[f]);return function(){for(let c of Object.keys(u))i.removeListener(c,u[c])}}function hj(i){i.emit("close")}function p3(){this.destroy()}function Hh(i,u,f,c){i.writable&&(f=f||d3[u],c=dt({Connection:"close","Content-Type":"text/html","Content-Length":Buffer.byteLength(f)},c),i.write(`HTTP/1.1 ${u} ${d3[u]}\r -`+Object.keys(c).map(g=>`${g}: ${c[g]}`).join(`\r -`)+`\r -\r -`+f)),i.removeListener("error",p3),i.destroy()}function mj(i){return i.trim()}});var Z6=Me((Yb,Q6)=>{"use strict";var C2=a3();C2.createWebSocketStream=$6();C2.Server=J6();C2.Receiver=i3();C2.Sender=o3();Q6.exports=C2});var eS=Me(bh=>{"use strict";var vj=bh&&bh.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(bh,"__esModule",{value:!0});var gj=vj(Z6()),T2=global;T2.WebSocket||(T2.WebSocket=gj.default);T2.window||(T2.window=global);T2.window.__REACT_DEVTOOLS_COMPONENT_FILTERS__=[{type:1,value:7,isEnabled:!0},{type:2,value:"InternalApp",isEnabled:!0,isValid:!0},{type:2,value:"InternalAppContext",isEnabled:!0,isValid:!0},{type:2,value:"InternalStdoutContext",isEnabled:!0,isValid:!0},{type:2,value:"InternalStderrContext",isEnabled:!0,isValid:!0},{type:2,value:"InternalStdinContext",isEnabled:!0,isValid:!0},{type:2,value:"InternalFocusContext",isEnabled:!0,isValid:!0}]});var tS=Me((Gh,h3)=>{(function(i,u){typeof Gh=="object"&&typeof h3=="object"?h3.exports=u():typeof define=="function"&&define.amd?define([],u):typeof Gh=="object"?Gh.ReactDevToolsBackend=u():i.ReactDevToolsBackend=u()})(window,function(){return function(i){var u={};function f(c){if(u[c])return u[c].exports;var g=u[c]={i:c,l:!1,exports:{}};return i[c].call(g.exports,g,g.exports,f),g.l=!0,g.exports}return f.m=i,f.c=u,f.d=function(c,g,t){f.o(c,g)||Object.defineProperty(c,g,{enumerable:!0,get:t})},f.r=function(c){typeof Symbol!="undefined"&&Symbol.toStringTag&&Object.defineProperty(c,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(c,"__esModule",{value:!0})},f.t=function(c,g){if(1&g&&(c=f(c)),8&g||4&g&&typeof c=="object"&&c&&c.__esModule)return c;var t=Object.create(null);if(f.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:c}),2&g&&typeof c!="string")for(var C in c)f.d(t,C,function(A){return c[A]}.bind(null,C));return t},f.n=function(c){var g=c&&c.__esModule?function(){return c.default}:function(){return c};return f.d(g,"a",g),g},f.o=function(c,g){return Object.prototype.hasOwnProperty.call(c,g)},f.p="",f(f.s=20)}([function(i,u,f){"use strict";i.exports=f(12)},function(i,u,f){"use strict";var c=Object.getOwnPropertySymbols,g=Object.prototype.hasOwnProperty,t=Object.prototype.propertyIsEnumerable;function C(A){if(A==null)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(A)}i.exports=function(){try{if(!Object.assign)return!1;var A=new String("abc");if(A[5]="de",Object.getOwnPropertyNames(A)[0]==="5")return!1;for(var x={},D=0;D<10;D++)x["_"+String.fromCharCode(D)]=D;if(Object.getOwnPropertyNames(x).map(function(N){return x[N]}).join("")!=="0123456789")return!1;var L={};return"abcdefghijklmnopqrst".split("").forEach(function(N){L[N]=N}),Object.keys(Object.assign({},L)).join("")==="abcdefghijklmnopqrst"}catch(N){return!1}}()?Object.assign:function(A,x){for(var D,L,N=C(A),j=1;j=J||Ft<0||Nt&&it-At>=ot}function Z(){var it=ce();if(ge(it))return Ae(it);Ue=setTimeout(Z,function(Ft){var jt=J-(Ft-be);return Nt?re(jt,ot-(Ft-At)):jt}(it))}function Ae(it){return Ue=void 0,Je&&Oe?V(it):(Oe=Le=void 0,ct)}function at(){var it=ce(),Ft=ge(it);if(Oe=arguments,Le=this,be=it,Ft){if(Ue===void 0)return ne(be);if(Nt)return Ue=setTimeout(Z,J),V(be)}return Ue===void 0&&(Ue=setTimeout(Z,J)),ct}return J=me(J)||0,oe(Te)&&(Ot=!!Te.leading,ot=(Nt="maxWait"in Te)?h(me(Te.maxWait)||0,J):ot,Je="trailing"in Te?!!Te.trailing:Je),at.cancel=function(){Ue!==void 0&&clearTimeout(Ue),At=0,Oe=be=Le=Ue=void 0},at.flush=function(){return Ue===void 0?ct:Ae(ce())},at}function oe(De){var J=g(De);return!!De&&(J=="object"||J=="function")}function Se(De){return g(De)=="symbol"||function(J){return!!J&&g(J)=="object"}(De)&&$.call(De)=="[object Symbol]"}function me(De){if(typeof De=="number")return De;if(Se(De))return NaN;if(oe(De)){var J=typeof De.valueOf=="function"?De.valueOf():De;De=oe(J)?J+"":J}if(typeof De!="string")return De===0?De:+De;De=De.replace(t,"");var Te=A.test(De);return Te||x.test(De)?D(De.slice(2),Te?2:8):C.test(De)?NaN:+De}i.exports=function(De,J,Te){var Oe=!0,Le=!0;if(typeof De!="function")throw new TypeError("Expected a function");return oe(Te)&&(Oe="leading"in Te?!!Te.leading:Oe,Le="trailing"in Te?!!Te.trailing:Le),Q(De,J,{leading:Oe,maxWait:J,trailing:Le})}}).call(this,f(4))},function(i,u,f){(function(c){function g(V){return(g=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(ne){return typeof ne}:function(ne){return ne&&typeof Symbol=="function"&&ne.constructor===Symbol&&ne!==Symbol.prototype?"symbol":typeof ne})(V)}var t;u=i.exports=h,t=(c===void 0?"undefined":g(c))==="object"&&c.env&&c.env.NODE_DEBUG&&/\bsemver\b/i.test(c.env.NODE_DEBUG)?function(){var V=Array.prototype.slice.call(arguments,0);V.unshift("SEMVER"),console.log.apply(console,V)}:function(){},u.SEMVER_SPEC_VERSION="2.0.0";var C=Number.MAX_SAFE_INTEGER||9007199254740991,A=u.re=[],x=u.src=[],D=u.tokens={},L=0;function N(V){D[V]=L++}N("NUMERICIDENTIFIER"),x[D.NUMERICIDENTIFIER]="0|[1-9]\\d*",N("NUMERICIDENTIFIERLOOSE"),x[D.NUMERICIDENTIFIERLOOSE]="[0-9]+",N("NONNUMERICIDENTIFIER"),x[D.NONNUMERICIDENTIFIER]="\\d*[a-zA-Z-][a-zA-Z0-9-]*",N("MAINVERSION"),x[D.MAINVERSION]="("+x[D.NUMERICIDENTIFIER]+")\\.("+x[D.NUMERICIDENTIFIER]+")\\.("+x[D.NUMERICIDENTIFIER]+")",N("MAINVERSIONLOOSE"),x[D.MAINVERSIONLOOSE]="("+x[D.NUMERICIDENTIFIERLOOSE]+")\\.("+x[D.NUMERICIDENTIFIERLOOSE]+")\\.("+x[D.NUMERICIDENTIFIERLOOSE]+")",N("PRERELEASEIDENTIFIER"),x[D.PRERELEASEIDENTIFIER]="(?:"+x[D.NUMERICIDENTIFIER]+"|"+x[D.NONNUMERICIDENTIFIER]+")",N("PRERELEASEIDENTIFIERLOOSE"),x[D.PRERELEASEIDENTIFIERLOOSE]="(?:"+x[D.NUMERICIDENTIFIERLOOSE]+"|"+x[D.NONNUMERICIDENTIFIER]+")",N("PRERELEASE"),x[D.PRERELEASE]="(?:-("+x[D.PRERELEASEIDENTIFIER]+"(?:\\."+x[D.PRERELEASEIDENTIFIER]+")*))",N("PRERELEASELOOSE"),x[D.PRERELEASELOOSE]="(?:-?("+x[D.PRERELEASEIDENTIFIERLOOSE]+"(?:\\."+x[D.PRERELEASEIDENTIFIERLOOSE]+")*))",N("BUILDIDENTIFIER"),x[D.BUILDIDENTIFIER]="[0-9A-Za-z-]+",N("BUILD"),x[D.BUILD]="(?:\\+("+x[D.BUILDIDENTIFIER]+"(?:\\."+x[D.BUILDIDENTIFIER]+")*))",N("FULL"),N("FULLPLAIN"),x[D.FULLPLAIN]="v?"+x[D.MAINVERSION]+x[D.PRERELEASE]+"?"+x[D.BUILD]+"?",x[D.FULL]="^"+x[D.FULLPLAIN]+"$",N("LOOSEPLAIN"),x[D.LOOSEPLAIN]="[v=\\s]*"+x[D.MAINVERSIONLOOSE]+x[D.PRERELEASELOOSE]+"?"+x[D.BUILD]+"?",N("LOOSE"),x[D.LOOSE]="^"+x[D.LOOSEPLAIN]+"$",N("GTLT"),x[D.GTLT]="((?:<|>)?=?)",N("XRANGEIDENTIFIERLOOSE"),x[D.XRANGEIDENTIFIERLOOSE]=x[D.NUMERICIDENTIFIERLOOSE]+"|x|X|\\*",N("XRANGEIDENTIFIER"),x[D.XRANGEIDENTIFIER]=x[D.NUMERICIDENTIFIER]+"|x|X|\\*",N("XRANGEPLAIN"),x[D.XRANGEPLAIN]="[v=\\s]*("+x[D.XRANGEIDENTIFIER]+")(?:\\.("+x[D.XRANGEIDENTIFIER]+")(?:\\.("+x[D.XRANGEIDENTIFIER]+")(?:"+x[D.PRERELEASE]+")?"+x[D.BUILD]+"?)?)?",N("XRANGEPLAINLOOSE"),x[D.XRANGEPLAINLOOSE]="[v=\\s]*("+x[D.XRANGEIDENTIFIERLOOSE]+")(?:\\.("+x[D.XRANGEIDENTIFIERLOOSE]+")(?:\\.("+x[D.XRANGEIDENTIFIERLOOSE]+")(?:"+x[D.PRERELEASELOOSE]+")?"+x[D.BUILD]+"?)?)?",N("XRANGE"),x[D.XRANGE]="^"+x[D.GTLT]+"\\s*"+x[D.XRANGEPLAIN]+"$",N("XRANGELOOSE"),x[D.XRANGELOOSE]="^"+x[D.GTLT]+"\\s*"+x[D.XRANGEPLAINLOOSE]+"$",N("COERCE"),x[D.COERCE]="(^|[^\\d])(\\d{1,16})(?:\\.(\\d{1,16}))?(?:\\.(\\d{1,16}))?(?:$|[^\\d])",N("COERCERTL"),A[D.COERCERTL]=new RegExp(x[D.COERCE],"g"),N("LONETILDE"),x[D.LONETILDE]="(?:~>?)",N("TILDETRIM"),x[D.TILDETRIM]="(\\s*)"+x[D.LONETILDE]+"\\s+",A[D.TILDETRIM]=new RegExp(x[D.TILDETRIM],"g"),N("TILDE"),x[D.TILDE]="^"+x[D.LONETILDE]+x[D.XRANGEPLAIN]+"$",N("TILDELOOSE"),x[D.TILDELOOSE]="^"+x[D.LONETILDE]+x[D.XRANGEPLAINLOOSE]+"$",N("LONECARET"),x[D.LONECARET]="(?:\\^)",N("CARETTRIM"),x[D.CARETTRIM]="(\\s*)"+x[D.LONECARET]+"\\s+",A[D.CARETTRIM]=new RegExp(x[D.CARETTRIM],"g"),N("CARET"),x[D.CARET]="^"+x[D.LONECARET]+x[D.XRANGEPLAIN]+"$",N("CARETLOOSE"),x[D.CARETLOOSE]="^"+x[D.LONECARET]+x[D.XRANGEPLAINLOOSE]+"$",N("COMPARATORLOOSE"),x[D.COMPARATORLOOSE]="^"+x[D.GTLT]+"\\s*("+x[D.LOOSEPLAIN]+")$|^$",N("COMPARATOR"),x[D.COMPARATOR]="^"+x[D.GTLT]+"\\s*("+x[D.FULLPLAIN]+")$|^$",N("COMPARATORTRIM"),x[D.COMPARATORTRIM]="(\\s*)"+x[D.GTLT]+"\\s*("+x[D.LOOSEPLAIN]+"|"+x[D.XRANGEPLAIN]+")",A[D.COMPARATORTRIM]=new RegExp(x[D.COMPARATORTRIM],"g"),N("HYPHENRANGE"),x[D.HYPHENRANGE]="^\\s*("+x[D.XRANGEPLAIN]+")\\s+-\\s+("+x[D.XRANGEPLAIN]+")\\s*$",N("HYPHENRANGELOOSE"),x[D.HYPHENRANGELOOSE]="^\\s*("+x[D.XRANGEPLAINLOOSE]+")\\s+-\\s+("+x[D.XRANGEPLAINLOOSE]+")\\s*$",N("STAR"),x[D.STAR]="(<|>)?=?\\s*\\*";for(var j=0;j256||!(ne.loose?A[D.LOOSE]:A[D.FULL]).test(V))return null;try{return new h(V,ne)}catch(ge){return null}}function h(V,ne){if(ne&&g(ne)==="object"||(ne={loose:!!ne,includePrerelease:!1}),V instanceof h){if(V.loose===ne.loose)return V;V=V.version}else if(typeof V!="string")throw new TypeError("Invalid Version: "+V);if(V.length>256)throw new TypeError("version is longer than 256 characters");if(!(this instanceof h))return new h(V,ne);t("SemVer",V,ne),this.options=ne,this.loose=!!ne.loose;var ge=V.trim().match(ne.loose?A[D.LOOSE]:A[D.FULL]);if(!ge)throw new TypeError("Invalid Version: "+V);if(this.raw=V,this.major=+ge[1],this.minor=+ge[2],this.patch=+ge[3],this.major>C||this.major<0)throw new TypeError("Invalid major version");if(this.minor>C||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>C||this.patch<0)throw new TypeError("Invalid patch version");ge[4]?this.prerelease=ge[4].split(".").map(function(Z){if(/^[0-9]+$/.test(Z)){var Ae=+Z;if(Ae>=0&&Ae=0;)typeof this.prerelease[ge]=="number"&&(this.prerelease[ge]++,ge=-2);ge===-1&&this.prerelease.push(0)}ne&&(this.prerelease[0]===ne?isNaN(this.prerelease[1])&&(this.prerelease=[ne,0]):this.prerelease=[ne,0]);break;default:throw new Error("invalid increment argument: "+V)}return this.format(),this.raw=this.version,this},u.inc=function(V,ne,ge,Z){typeof ge=="string"&&(Z=ge,ge=void 0);try{return new h(V,ge).inc(ne,Z).version}catch(Ae){return null}},u.diff=function(V,ne){if(me(V,ne))return null;var ge=$(V),Z=$(ne),Ae="";if(ge.prerelease.length||Z.prerelease.length){Ae="pre";var at="prerelease"}for(var it in ge)if((it==="major"||it==="minor"||it==="patch")&&ge[it]!==Z[it])return Ae+it;return at},u.compareIdentifiers=ce;var re=/^[0-9]+$/;function ce(V,ne){var ge=re.test(V),Z=re.test(ne);return ge&&Z&&(V=+V,ne=+ne),V===ne?0:ge&&!Z?-1:Z&&!ge?1:V0}function Se(V,ne,ge){return Q(V,ne,ge)<0}function me(V,ne,ge){return Q(V,ne,ge)===0}function De(V,ne,ge){return Q(V,ne,ge)!==0}function J(V,ne,ge){return Q(V,ne,ge)>=0}function Te(V,ne,ge){return Q(V,ne,ge)<=0}function Oe(V,ne,ge,Z){switch(ne){case"===":return g(V)==="object"&&(V=V.version),g(ge)==="object"&&(ge=ge.version),V===ge;case"!==":return g(V)==="object"&&(V=V.version),g(ge)==="object"&&(ge=ge.version),V!==ge;case"":case"=":case"==":return me(V,ge,Z);case"!=":return De(V,ge,Z);case">":return oe(V,ge,Z);case">=":return J(V,ge,Z);case"<":return Se(V,ge,Z);case"<=":return Te(V,ge,Z);default:throw new TypeError("Invalid operator: "+ne)}}function Le(V,ne){if(ne&&g(ne)==="object"||(ne={loose:!!ne,includePrerelease:!1}),V instanceof Le){if(V.loose===!!ne.loose)return V;V=V.value}if(!(this instanceof Le))return new Le(V,ne);t("comparator",V,ne),this.options=ne,this.loose=!!ne.loose,this.parse(V),this.semver===ot?this.value="":this.value=this.operator+this.semver.version,t("comp",this)}u.rcompareIdentifiers=function(V,ne){return ce(ne,V)},u.major=function(V,ne){return new h(V,ne).major},u.minor=function(V,ne){return new h(V,ne).minor},u.patch=function(V,ne){return new h(V,ne).patch},u.compare=Q,u.compareLoose=function(V,ne){return Q(V,ne,!0)},u.compareBuild=function(V,ne,ge){var Z=new h(V,ge),Ae=new h(ne,ge);return Z.compare(Ae)||Z.compareBuild(Ae)},u.rcompare=function(V,ne,ge){return Q(ne,V,ge)},u.sort=function(V,ne){return V.sort(function(ge,Z){return u.compareBuild(ge,Z,ne)})},u.rsort=function(V,ne){return V.sort(function(ge,Z){return u.compareBuild(Z,ge,ne)})},u.gt=oe,u.lt=Se,u.eq=me,u.neq=De,u.gte=J,u.lte=Te,u.cmp=Oe,u.Comparator=Le;var ot={};function ct(V,ne){if(ne&&g(ne)==="object"||(ne={loose:!!ne,includePrerelease:!1}),V instanceof ct)return V.loose===!!ne.loose&&V.includePrerelease===!!ne.includePrerelease?V:new ct(V.raw,ne);if(V instanceof Le)return new ct(V.value,ne);if(!(this instanceof ct))return new ct(V,ne);if(this.options=ne,this.loose=!!ne.loose,this.includePrerelease=!!ne.includePrerelease,this.raw=V,this.set=V.split(/\s*\|\|\s*/).map(function(ge){return this.parseRange(ge.trim())},this).filter(function(ge){return ge.length}),!this.set.length)throw new TypeError("Invalid SemVer Range: "+V);this.format()}function Ue(V,ne){for(var ge=!0,Z=V.slice(),Ae=Z.pop();ge&&Z.length;)ge=Z.every(function(at){return Ae.intersects(at,ne)}),Ae=Z.pop();return ge}function be(V){return!V||V.toLowerCase()==="x"||V==="*"}function At(V,ne,ge,Z,Ae,at,it,Ft,jt,hn,Un,Jt,Yt){return((ne=be(ge)?"":be(Z)?">="+ge+".0.0":be(Ae)?">="+ge+"."+Z+".0":">="+ne)+" "+(Ft=be(jt)?"":be(hn)?"<"+(+jt+1)+".0.0":be(Un)?"<"+jt+"."+(+hn+1)+".0":Jt?"<="+jt+"."+hn+"."+Un+"-"+Jt:"<="+Ft)).trim()}function Ot(V,ne,ge){for(var Z=0;Z0){var Ae=V[Z].semver;if(Ae.major===ne.major&&Ae.minor===ne.minor&&Ae.patch===ne.patch)return!0}return!1}return!0}function Nt(V,ne,ge){try{ne=new ct(ne,ge)}catch(Z){return!1}return ne.test(V)}function Je(V,ne,ge,Z){var Ae,at,it,Ft,jt;switch(V=new h(V,Z),ne=new ct(ne,Z),ge){case">":Ae=oe,at=Te,it=Se,Ft=">",jt=">=";break;case"<":Ae=Se,at=J,it=oe,Ft="<",jt="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(Nt(V,ne,Z))return!1;for(var hn=0;hn=0.0.0")),Jt=Jt||cr,Yt=Yt||cr,Ae(cr.semver,Jt.semver,Z)?Jt=cr:it(cr.semver,Yt.semver,Z)&&(Yt=cr)}),Jt.operator===Ft||Jt.operator===jt||(!Yt.operator||Yt.operator===Ft)&&at(V,Yt.semver)||Yt.operator===jt&&it(V,Yt.semver))return!1}return!0}Le.prototype.parse=function(V){var ne=this.options.loose?A[D.COMPARATORLOOSE]:A[D.COMPARATOR],ge=V.match(ne);if(!ge)throw new TypeError("Invalid comparator: "+V);this.operator=ge[1]!==void 0?ge[1]:"",this.operator==="="&&(this.operator=""),ge[2]?this.semver=new h(ge[2],this.options.loose):this.semver=ot},Le.prototype.toString=function(){return this.value},Le.prototype.test=function(V){if(t("Comparator.test",V,this.options.loose),this.semver===ot||V===ot)return!0;if(typeof V=="string")try{V=new h(V,this.options)}catch(ne){return!1}return Oe(V,this.operator,this.semver,this.options)},Le.prototype.intersects=function(V,ne){if(!(V instanceof Le))throw new TypeError("a Comparator is required");var ge;if(ne&&g(ne)==="object"||(ne={loose:!!ne,includePrerelease:!1}),this.operator==="")return this.value===""||(ge=new ct(V.value,ne),Nt(this.value,ge,ne));if(V.operator==="")return V.value===""||(ge=new ct(this.value,ne),Nt(V.semver,ge,ne));var Z=!(this.operator!==">="&&this.operator!==">"||V.operator!==">="&&V.operator!==">"),Ae=!(this.operator!=="<="&&this.operator!=="<"||V.operator!=="<="&&V.operator!=="<"),at=this.semver.version===V.semver.version,it=!(this.operator!==">="&&this.operator!=="<="||V.operator!==">="&&V.operator!=="<="),Ft=Oe(this.semver,"<",V.semver,ne)&&(this.operator===">="||this.operator===">")&&(V.operator==="<="||V.operator==="<"),jt=Oe(this.semver,">",V.semver,ne)&&(this.operator==="<="||this.operator==="<")&&(V.operator===">="||V.operator===">");return Z||Ae||at&&it||Ft||jt},u.Range=ct,ct.prototype.format=function(){return this.range=this.set.map(function(V){return V.join(" ").trim()}).join("||").trim(),this.range},ct.prototype.toString=function(){return this.range},ct.prototype.parseRange=function(V){var ne=this.options.loose;V=V.trim();var ge=ne?A[D.HYPHENRANGELOOSE]:A[D.HYPHENRANGE];V=V.replace(ge,At),t("hyphen replace",V),V=V.replace(A[D.COMPARATORTRIM],"$1$2$3"),t("comparator trim",V,A[D.COMPARATORTRIM]),V=(V=(V=V.replace(A[D.TILDETRIM],"$1~")).replace(A[D.CARETTRIM],"$1^")).split(/\s+/).join(" ");var Z=ne?A[D.COMPARATORLOOSE]:A[D.COMPARATOR],Ae=V.split(" ").map(function(at){return function(it,Ft){return t("comp",it,Ft),it=function(jt,hn){return jt.trim().split(/\s+/).map(function(Un){return function(Jt,Yt){t("caret",Jt,Yt);var cr=Yt.loose?A[D.CARETLOOSE]:A[D.CARET];return Jt.replace(cr,function(w,pt,Mn,Bn,Xn){var vr;return t("caret",Jt,w,pt,Mn,Bn,Xn),be(pt)?vr="":be(Mn)?vr=">="+pt+".0.0 <"+(+pt+1)+".0.0":be(Bn)?vr=pt==="0"?">="+pt+"."+Mn+".0 <"+pt+"."+(+Mn+1)+".0":">="+pt+"."+Mn+".0 <"+(+pt+1)+".0.0":Xn?(t("replaceCaret pr",Xn),vr=pt==="0"?Mn==="0"?">="+pt+"."+Mn+"."+Bn+"-"+Xn+" <"+pt+"."+Mn+"."+(+Bn+1):">="+pt+"."+Mn+"."+Bn+"-"+Xn+" <"+pt+"."+(+Mn+1)+".0":">="+pt+"."+Mn+"."+Bn+"-"+Xn+" <"+(+pt+1)+".0.0"):(t("no pr"),vr=pt==="0"?Mn==="0"?">="+pt+"."+Mn+"."+Bn+" <"+pt+"."+Mn+"."+(+Bn+1):">="+pt+"."+Mn+"."+Bn+" <"+pt+"."+(+Mn+1)+".0":">="+pt+"."+Mn+"."+Bn+" <"+(+pt+1)+".0.0"),t("caret return",vr),vr})}(Un,hn)}).join(" ")}(it,Ft),t("caret",it),it=function(jt,hn){return jt.trim().split(/\s+/).map(function(Un){return function(Jt,Yt){var cr=Yt.loose?A[D.TILDELOOSE]:A[D.TILDE];return Jt.replace(cr,function(w,pt,Mn,Bn,Xn){var vr;return t("tilde",Jt,w,pt,Mn,Bn,Xn),be(pt)?vr="":be(Mn)?vr=">="+pt+".0.0 <"+(+pt+1)+".0.0":be(Bn)?vr=">="+pt+"."+Mn+".0 <"+pt+"."+(+Mn+1)+".0":Xn?(t("replaceTilde pr",Xn),vr=">="+pt+"."+Mn+"."+Bn+"-"+Xn+" <"+pt+"."+(+Mn+1)+".0"):vr=">="+pt+"."+Mn+"."+Bn+" <"+pt+"."+(+Mn+1)+".0",t("tilde return",vr),vr})}(Un,hn)}).join(" ")}(it,Ft),t("tildes",it),it=function(jt,hn){return t("replaceXRanges",jt,hn),jt.split(/\s+/).map(function(Un){return function(Jt,Yt){Jt=Jt.trim();var cr=Yt.loose?A[D.XRANGELOOSE]:A[D.XRANGE];return Jt.replace(cr,function(w,pt,Mn,Bn,Xn,vr){t("xRange",Jt,w,pt,Mn,Bn,Xn,vr);var gr=be(Mn),r0=gr||be(Bn),Ci=r0||be(Xn),yo=Ci;return pt==="="&&yo&&(pt=""),vr=Yt.includePrerelease?"-0":"",gr?w=pt===">"||pt==="<"?"<0.0.0-0":"*":pt&&yo?(r0&&(Bn=0),Xn=0,pt===">"?(pt=">=",r0?(Mn=+Mn+1,Bn=0,Xn=0):(Bn=+Bn+1,Xn=0)):pt==="<="&&(pt="<",r0?Mn=+Mn+1:Bn=+Bn+1),w=pt+Mn+"."+Bn+"."+Xn+vr):r0?w=">="+Mn+".0.0"+vr+" <"+(+Mn+1)+".0.0"+vr:Ci&&(w=">="+Mn+"."+Bn+".0"+vr+" <"+Mn+"."+(+Bn+1)+".0"+vr),t("xRange return",w),w})}(Un,hn)}).join(" ")}(it,Ft),t("xrange",it),it=function(jt,hn){return t("replaceStars",jt,hn),jt.trim().replace(A[D.STAR],"")}(it,Ft),t("stars",it),it}(at,this.options)},this).join(" ").split(/\s+/);return this.options.loose&&(Ae=Ae.filter(function(at){return!!at.match(Z)})),Ae=Ae.map(function(at){return new Le(at,this.options)},this)},ct.prototype.intersects=function(V,ne){if(!(V instanceof ct))throw new TypeError("a Range is required");return this.set.some(function(ge){return Ue(ge,ne)&&V.set.some(function(Z){return Ue(Z,ne)&&ge.every(function(Ae){return Z.every(function(at){return Ae.intersects(at,ne)})})})})},u.toComparators=function(V,ne){return new ct(V,ne).set.map(function(ge){return ge.map(function(Z){return Z.value}).join(" ").trim().split(" ")})},ct.prototype.test=function(V){if(!V)return!1;if(typeof V=="string")try{V=new h(V,this.options)}catch(ge){return!1}for(var ne=0;ne":at.prerelease.length===0?at.patch++:at.prerelease.push(0),at.raw=at.format();case"":case">=":ge&&!oe(ge,at)||(ge=at);break;case"<":case"<=":break;default:throw new Error("Unexpected operation: "+Ae.operator)}});return ge&&V.test(ge)?ge:null},u.validRange=function(V,ne){try{return new ct(V,ne).range||"*"}catch(ge){return null}},u.ltr=function(V,ne,ge){return Je(V,ne,"<",ge)},u.gtr=function(V,ne,ge){return Je(V,ne,">",ge)},u.outside=Je,u.prerelease=function(V,ne){var ge=$(V,ne);return ge&&ge.prerelease.length?ge.prerelease:null},u.intersects=function(V,ne,ge){return V=new ct(V,ge),ne=new ct(ne,ge),V.intersects(ne)},u.coerce=function(V,ne){if(V instanceof h)return V;if(typeof V=="number"&&(V=String(V)),typeof V!="string")return null;var ge=null;if((ne=ne||{}).rtl){for(var Z;(Z=A[D.COERCERTL].exec(V))&&(!ge||ge.index+ge[0].length!==V.length);)ge&&Z.index+Z[0].length===ge.index+ge[0].length||(ge=Z),A[D.COERCERTL].lastIndex=Z.index+Z[1].length+Z[2].length;A[D.COERCERTL].lastIndex=-1}else ge=V.match(A[D.COERCE]);return ge===null?null:$(ge[2]+"."+(ge[3]||"0")+"."+(ge[4]||"0"),ne)}}).call(this,f(5))},function(i,u){function f(g){return(f=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(g)}var c;c=function(){return this}();try{c=c||new Function("return this")()}catch(g){(typeof window=="undefined"?"undefined":f(window))==="object"&&(c=window)}i.exports=c},function(i,u){var f,c,g=i.exports={};function t(){throw new Error("setTimeout has not been defined")}function C(){throw new Error("clearTimeout has not been defined")}function A(ce){if(f===setTimeout)return setTimeout(ce,0);if((f===t||!f)&&setTimeout)return f=setTimeout,setTimeout(ce,0);try{return f(ce,0)}catch(Q){try{return f.call(null,ce,0)}catch(oe){return f.call(this,ce,0)}}}(function(){try{f=typeof setTimeout=="function"?setTimeout:t}catch(ce){f=t}try{c=typeof clearTimeout=="function"?clearTimeout:C}catch(ce){c=C}})();var x,D=[],L=!1,N=-1;function j(){L&&x&&(L=!1,x.length?D=x.concat(D):N=-1,D.length&&$())}function $(){if(!L){var ce=A(j);L=!0;for(var Q=D.length;Q;){for(x=D,D=[];++N1)for(var oe=1;oethis[C])return De(this,this[h].get(Ue)),!1;var Je=this[h].get(Ue).value;return this[N]&&(this[j]||this[N](Ue,Je.value)),Je.now=Ot,Je.maxAge=At,Je.value=be,this[A]+=Nt-Je.length,Je.length=Nt,this.get(Ue),me(this),!0}var V=new J(Ue,be,Nt,Ot,At);return V.length>this[C]?(this[N]&&this[N](Ue,be),!1):(this[A]+=V.length,this[$].unshift(V),this[h].set(Ue,this[$].head),me(this),!0)}},{key:"has",value:function(Ue){if(!this[h].has(Ue))return!1;var be=this[h].get(Ue).value;return!Se(this,be)}},{key:"get",value:function(Ue){return oe(this,Ue,!0)}},{key:"peek",value:function(Ue){return oe(this,Ue,!1)}},{key:"pop",value:function(){var Ue=this[$].tail;return Ue?(De(this,Ue),Ue.value):null}},{key:"del",value:function(Ue){De(this,this[h].get(Ue))}},{key:"load",value:function(Ue){this.reset();for(var be=Date.now(),At=Ue.length-1;At>=0;At--){var Ot=Ue[At],Nt=Ot.e||0;if(Nt===0)this.set(Ot.k,Ot.v);else{var Je=Nt-be;Je>0&&this.set(Ot.k,Ot.v,Je)}}}},{key:"prune",value:function(){var Ue=this;this[h].forEach(function(be,At){return oe(Ue,At,!1)})}},{key:"max",set:function(Ue){if(typeof Ue!="number"||Ue<0)throw new TypeError("max must be a non-negative number");this[C]=Ue||1/0,me(this)},get:function(){return this[C]}},{key:"allowStale",set:function(Ue){this[D]=!!Ue},get:function(){return this[D]}},{key:"maxAge",set:function(Ue){if(typeof Ue!="number")throw new TypeError("maxAge must be a non-negative number");this[L]=Ue,me(this)},get:function(){return this[L]}},{key:"lengthCalculator",set:function(Ue){var be=this;typeof Ue!="function"&&(Ue=ce),Ue!==this[x]&&(this[x]=Ue,this[A]=0,this[$].forEach(function(At){At.length=be[x](At.value,At.key),be[A]+=At.length})),me(this)},get:function(){return this[x]}},{key:"length",get:function(){return this[A]}},{key:"itemCount",get:function(){return this[$].length}}])&&g(Le.prototype,ot),ct&&g(Le,ct),Oe}(),oe=function(Oe,Le,ot){var ct=Oe[h].get(Le);if(ct){var Ue=ct.value;if(Se(Oe,Ue)){if(De(Oe,ct),!Oe[D])return}else ot&&(Oe[re]&&(ct.value.now=Date.now()),Oe[$].unshiftNode(ct));return Ue.value}},Se=function(Oe,Le){if(!Le||!Le.maxAge&&!Oe[L])return!1;var ot=Date.now()-Le.now;return Le.maxAge?ot>Le.maxAge:Oe[L]&&ot>Oe[L]},me=function(Oe){if(Oe[A]>Oe[C])for(var Le=Oe[$].tail;Oe[A]>Oe[C]&&Le!==null;){var ot=Le.prev;De(Oe,Le),Le=ot}},De=function(Oe,Le){if(Le){var ot=Le.value;Oe[N]&&Oe[N](ot.key,ot.value),Oe[A]-=ot.length,Oe[h].delete(ot.key),Oe[$].removeNode(Le)}},J=function Oe(Le,ot,ct,Ue,be){c(this,Oe),this.key=Le,this.value=ot,this.length=ct,this.now=Ue,this.maxAge=be||0},Te=function(Oe,Le,ot,ct){var Ue=ot.value;Se(Oe,Ue)&&(De(Oe,ot),Oe[D]||(Ue=void 0)),Ue&&Le.call(ct,Ue.value,Ue.key,Oe)};i.exports=Q},function(i,u,f){(function(c){function g(t){return(g=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(C){return typeof C}:function(C){return C&&typeof Symbol=="function"&&C.constructor===Symbol&&C!==Symbol.prototype?"symbol":typeof C})(t)}i.exports=function(){if(typeof document=="undefined"||!document.addEventListener)return null;var t,C,A,x={};return x.copy=function(){var D=!1,L=null,N=!1;function j(){D=!1,L=null,N&&window.getSelection().removeAllRanges(),N=!1}return document.addEventListener("copy",function($){if(D){for(var h in L)$.clipboardData.setData(h,L[h]);$.preventDefault()}}),function($){return new Promise(function(h,re){D=!0,typeof $=="string"?L={"text/plain":$}:$ instanceof Node?L={"text/html":new XMLSerializer().serializeToString($)}:$ instanceof Object?L=$:re("Invalid data type. Must be string, DOM node, or an object mapping MIME types to strings."),function ce(Q){try{if(document.execCommand("copy"))j(),h();else{if(Q)throw j(),new Error("Unable to copy. Perhaps it's not available in your browser?");(function(){var oe=document.getSelection();if(!document.queryCommandEnabled("copy")&&oe.isCollapsed){var Se=document.createRange();Se.selectNodeContents(document.body),oe.removeAllRanges(),oe.addRange(Se),N=!0}})(),ce(!0)}}catch(oe){j(),re(oe)}}(!1)})}}(),x.paste=(A=!1,document.addEventListener("paste",function(D){if(A){A=!1,D.preventDefault();var L=t;t=null,L(D.clipboardData.getData(C))}}),function(D){return new Promise(function(L,N){A=!0,t=L,C=D||"text/plain";try{document.execCommand("paste")||(A=!1,N(new Error("Unable to paste. Pasting only works in Internet Explorer at the moment.")))}catch(j){A=!1,N(new Error(j))}})}),typeof ClipboardEvent=="undefined"&&window.clipboardData!==void 0&&window.clipboardData.setData!==void 0&&(function(D){function L(me,De){return function(){me.apply(De,arguments)}}function N(me){if(g(this)!="object")throw new TypeError("Promises must be constructed via new");if(typeof me!="function")throw new TypeError("not a function");this._state=null,this._value=null,this._deferreds=[],Q(me,L($,this),L(h,this))}function j(me){var De=this;return this._state===null?void this._deferreds.push(me):void oe(function(){var J=De._state?me.onFulfilled:me.onRejected;if(J!==null){var Te;try{Te=J(De._value)}catch(Oe){return void me.reject(Oe)}me.resolve(Te)}else(De._state?me.resolve:me.reject)(De._value)})}function $(me){try{if(me===this)throw new TypeError("A promise cannot be resolved with itself.");if(me&&(g(me)=="object"||typeof me=="function")){var De=me.then;if(typeof De=="function")return void Q(L(De,me),L($,this),L(h,this))}this._state=!0,this._value=me,re.call(this)}catch(J){h.call(this,J)}}function h(me){this._state=!1,this._value=me,re.call(this)}function re(){for(var me=0,De=this._deferreds.length;De>me;me++)j.call(this,this._deferreds[me]);this._deferreds=null}function ce(me,De,J,Te){this.onFulfilled=typeof me=="function"?me:null,this.onRejected=typeof De=="function"?De:null,this.resolve=J,this.reject=Te}function Q(me,De,J){var Te=!1;try{me(function(Oe){Te||(Te=!0,De(Oe))},function(Oe){Te||(Te=!0,J(Oe))})}catch(Oe){if(Te)return;Te=!0,J(Oe)}}var oe=N.immediateFn||typeof c=="function"&&c||function(me){setTimeout(me,1)},Se=Array.isArray||function(me){return Object.prototype.toString.call(me)==="[object Array]"};N.prototype.catch=function(me){return this.then(null,me)},N.prototype.then=function(me,De){var J=this;return new N(function(Te,Oe){j.call(J,new ce(me,De,Te,Oe))})},N.all=function(){var me=Array.prototype.slice.call(arguments.length===1&&Se(arguments[0])?arguments[0]:arguments);return new N(function(De,J){function Te(ot,ct){try{if(ct&&(g(ct)=="object"||typeof ct=="function")){var Ue=ct.then;if(typeof Ue=="function")return void Ue.call(ct,function(be){Te(ot,be)},J)}me[ot]=ct,--Oe==0&&De(me)}catch(be){J(be)}}if(me.length===0)return De([]);for(var Oe=me.length,Le=0;LeTe;Te++)me[Te].then(De,J)})},i.exports?i.exports=N:D.Promise||(D.Promise=N)}(this),x.copy=function(D){return new Promise(function(L,N){if(typeof D!="string"&&!("text/plain"in D))throw new Error("You must provide a text/plain type.");var j=typeof D=="string"?D:D["text/plain"];window.clipboardData.setData("Text",j)?L():N(new Error("Copying was rejected."))})},x.paste=function(){return new Promise(function(D,L){var N=window.clipboardData.getData("Text");N?D(N):L(new Error("Pasting was rejected."))})}),x}()}).call(this,f(13).setImmediate)},function(i,u,f){"use strict";i.exports=f(15)},function(i,u,f){"use strict";f.r(u),u.default=`:root { - /** - * IMPORTANT: When new theme variables are added below\u2013 also add them to SettingsContext updateThemeVariables() - */ - - /* Light theme */ - --light-color-attribute-name: #ef6632; - --light-color-attribute-name-not-editable: #23272f; - --light-color-attribute-name-inverted: rgba(255, 255, 255, 0.7); - --light-color-attribute-value: #1a1aa6; - --light-color-attribute-value-inverted: #ffffff; - --light-color-attribute-editable-value: #1a1aa6; - --light-color-background: #ffffff; - --light-color-background-hover: rgba(0, 136, 250, 0.1); - --light-color-background-inactive: #e5e5e5; - --light-color-background-invalid: #fff0f0; - --light-color-background-selected: #0088fa; - --light-color-button-background: #ffffff; - --light-color-button-background-focus: #ededed; - --light-color-button: #5f6673; - --light-color-button-disabled: #cfd1d5; - --light-color-button-active: #0088fa; - --light-color-button-focus: #23272f; - --light-color-button-hover: #23272f; - --light-color-border: #eeeeee; - --light-color-commit-did-not-render-fill: #cfd1d5; - --light-color-commit-did-not-render-fill-text: #000000; - --light-color-commit-did-not-render-pattern: #cfd1d5; - --light-color-commit-did-not-render-pattern-text: #333333; - --light-color-commit-gradient-0: #37afa9; - --light-color-commit-gradient-1: #63b19e; - --light-color-commit-gradient-2: #80b393; - --light-color-commit-gradient-3: #97b488; - --light-color-commit-gradient-4: #abb67d; - --light-color-commit-gradient-5: #beb771; - --light-color-commit-gradient-6: #cfb965; - --light-color-commit-gradient-7: #dfba57; - --light-color-commit-gradient-8: #efbb49; - --light-color-commit-gradient-9: #febc38; - --light-color-commit-gradient-text: #000000; - --light-color-component-name: #6a51b2; - --light-color-component-name-inverted: #ffffff; - --light-color-component-badge-background: rgba(0, 0, 0, 0.1); - --light-color-component-badge-background-inverted: rgba(255, 255, 255, 0.25); - --light-color-component-badge-count: #777d88; - --light-color-component-badge-count-inverted: rgba(255, 255, 255, 0.7); - --light-color-context-background: rgba(0,0,0,.9); - --light-color-context-background-hover: rgba(255, 255, 255, 0.1); - --light-color-context-background-selected: #178fb9; - --light-color-context-border: #3d424a; - --light-color-context-text: #ffffff; - --light-color-context-text-selected: #ffffff; - --light-color-dim: #777d88; - --light-color-dimmer: #cfd1d5; - --light-color-dimmest: #eff0f1; - --light-color-error-background: hsl(0, 100%, 97%); - --light-color-error-border: hsl(0, 100%, 92%); - --light-color-error-text: #ff0000; - --light-color-expand-collapse-toggle: #777d88; - --light-color-link: #0000ff; - --light-color-modal-background: rgba(255, 255, 255, 0.75); - --light-color-record-active: #fc3a4b; - --light-color-record-hover: #3578e5; - --light-color-record-inactive: #0088fa; - --light-color-scroll-thumb: #c2c2c2; - --light-color-scroll-track: #fafafa; - --light-color-search-match: yellow; - --light-color-search-match-current: #f7923b; - --light-color-selected-tree-highlight-active: rgba(0, 136, 250, 0.1); - --light-color-selected-tree-highlight-inactive: rgba(0, 0, 0, 0.05); - --light-color-shadow: rgba(0, 0, 0, 0.25); - --light-color-tab-selected-border: #0088fa; - --light-color-text: #000000; - --light-color-text-invalid: #ff0000; - --light-color-text-selected: #ffffff; - --light-color-toggle-background-invalid: #fc3a4b; - --light-color-toggle-background-on: #0088fa; - --light-color-toggle-background-off: #cfd1d5; - --light-color-toggle-text: #ffffff; - --light-color-tooltip-background: rgba(0, 0, 0, 0.9); - --light-color-tooltip-text: #ffffff; - - /* Dark theme */ - --dark-color-attribute-name: #9d87d2; - --dark-color-attribute-name-not-editable: #ededed; - --dark-color-attribute-name-inverted: #282828; - --dark-color-attribute-value: #cedae0; - --dark-color-attribute-value-inverted: #ffffff; - --dark-color-attribute-editable-value: yellow; - --dark-color-background: #282c34; - --dark-color-background-hover: rgba(255, 255, 255, 0.1); - --dark-color-background-inactive: #3d424a; - --dark-color-background-invalid: #5c0000; - --dark-color-background-selected: #178fb9; - --dark-color-button-background: #282c34; - --dark-color-button-background-focus: #3d424a; - --dark-color-button: #afb3b9; - --dark-color-button-active: #61dafb; - --dark-color-button-disabled: #4f5766; - --dark-color-button-focus: #a2e9fc; - --dark-color-button-hover: #ededed; - --dark-color-border: #3d424a; - --dark-color-commit-did-not-render-fill: #777d88; - --dark-color-commit-did-not-render-fill-text: #000000; - --dark-color-commit-did-not-render-pattern: #666c77; - --dark-color-commit-did-not-render-pattern-text: #ffffff; - --dark-color-commit-gradient-0: #37afa9; - --dark-color-commit-gradient-1: #63b19e; - --dark-color-commit-gradient-2: #80b393; - --dark-color-commit-gradient-3: #97b488; - --dark-color-commit-gradient-4: #abb67d; - --dark-color-commit-gradient-5: #beb771; - --dark-color-commit-gradient-6: #cfb965; - --dark-color-commit-gradient-7: #dfba57; - --dark-color-commit-gradient-8: #efbb49; - --dark-color-commit-gradient-9: #febc38; - --dark-color-commit-gradient-text: #000000; - --dark-color-component-name: #61dafb; - --dark-color-component-name-inverted: #282828; - --dark-color-component-badge-background: rgba(255, 255, 255, 0.25); - --dark-color-component-badge-background-inverted: rgba(0, 0, 0, 0.25); - --dark-color-component-badge-count: #8f949d; - --dark-color-component-badge-count-inverted: rgba(255, 255, 255, 0.7); - --dark-color-context-background: rgba(255,255,255,.9); - --dark-color-context-background-hover: rgba(0, 136, 250, 0.1); - --dark-color-context-background-selected: #0088fa; - --dark-color-context-border: #eeeeee; - --dark-color-context-text: #000000; - --dark-color-context-text-selected: #ffffff; - --dark-color-dim: #8f949d; - --dark-color-dimmer: #777d88; - --dark-color-dimmest: #4f5766; - --dark-color-error-background: #200; - --dark-color-error-border: #900; - --dark-color-error-text: #f55; - --dark-color-expand-collapse-toggle: #8f949d; - --dark-color-link: #61dafb; - --dark-color-modal-background: rgba(0, 0, 0, 0.75); - --dark-color-record-active: #fc3a4b; - --dark-color-record-hover: #a2e9fc; - --dark-color-record-inactive: #61dafb; - --dark-color-scroll-thumb: #afb3b9; - --dark-color-scroll-track: #313640; - --dark-color-search-match: yellow; - --dark-color-search-match-current: #f7923b; - --dark-color-selected-tree-highlight-active: rgba(23, 143, 185, 0.15); - --dark-color-selected-tree-highlight-inactive: rgba(255, 255, 255, 0.05); - --dark-color-shadow: rgba(0, 0, 0, 0.5); - --dark-color-tab-selected-border: #178fb9; - --dark-color-text: #ffffff; - --dark-color-text-invalid: #ff8080; - --dark-color-text-selected: #ffffff; - --dark-color-toggle-background-invalid: #fc3a4b; - --dark-color-toggle-background-on: #178fb9; - --dark-color-toggle-background-off: #777d88; - --dark-color-toggle-text: #ffffff; - --dark-color-tooltip-background: rgba(255, 255, 255, 0.9); - --dark-color-tooltip-text: #000000; - - /* Font smoothing */ - --light-font-smoothing: auto; - --dark-font-smoothing: antialiased; - --font-smoothing: auto; - - /* Compact density */ - --compact-font-size-monospace-small: 9px; - --compact-font-size-monospace-normal: 11px; - --compact-font-size-monospace-large: 15px; - --compact-font-size-sans-small: 10px; - --compact-font-size-sans-normal: 12px; - --compact-font-size-sans-large: 14px; - --compact-line-height-data: 18px; - --compact-root-font-size: 16px; - - /* Comfortable density */ - --comfortable-font-size-monospace-small: 10px; - --comfortable-font-size-monospace-normal: 13px; - --comfortable-font-size-monospace-large: 17px; - --comfortable-font-size-sans-small: 12px; - --comfortable-font-size-sans-normal: 14px; - --comfortable-font-size-sans-large: 16px; - --comfortable-line-height-data: 22px; - --comfortable-root-font-size: 20px; - - /* GitHub.com system fonts */ - --font-family-monospace: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, - Courier, monospace; - --font-family-sans: -apple-system, BlinkMacSystemFont, Segoe UI, Helvetica, - Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol; - - /* Constant values shared between JS and CSS */ - --interaction-commit-size: 10px; - --interaction-label-width: 200px; -} -`},function(i,u,f){"use strict";function c(x){var D=this;if(D instanceof c||(D=new c),D.tail=null,D.head=null,D.length=0,x&&typeof x.forEach=="function")x.forEach(function(j){D.push(j)});else if(arguments.length>0)for(var L=0,N=arguments.length;L1)L=D;else{if(!this.head)throw new TypeError("Reduce of empty list with no initial value");N=this.head.next,L=this.head.value}for(var j=0;N!==null;j++)L=x(L,N.value,j),N=N.next;return L},c.prototype.reduceReverse=function(x,D){var L,N=this.tail;if(arguments.length>1)L=D;else{if(!this.tail)throw new TypeError("Reduce of empty list with no initial value");N=this.tail.prev,L=this.tail.value}for(var j=this.length-1;N!==null;j--)L=x(L,N.value,j),N=N.prev;return L},c.prototype.toArray=function(){for(var x=new Array(this.length),D=0,L=this.head;L!==null;D++)x[D]=L.value,L=L.next;return x},c.prototype.toArrayReverse=function(){for(var x=new Array(this.length),D=0,L=this.tail;L!==null;D++)x[D]=L.value,L=L.prev;return x},c.prototype.slice=function(x,D){(D=D||this.length)<0&&(D+=this.length),(x=x||0)<0&&(x+=this.length);var L=new c;if(Dthis.length&&(D=this.length);for(var N=0,j=this.head;j!==null&&Nthis.length&&(D=this.length);for(var N=this.length,j=this.tail;j!==null&&N>D;N--)j=j.prev;for(;j!==null&&N>x;N--,j=j.prev)L.push(j.value);return L},c.prototype.splice=function(x,D){x>this.length&&(x=this.length-1),x<0&&(x=this.length+x);for(var L=0,N=this.head;N!==null&&L=0&&(A._idleTimeoutId=setTimeout(function(){A._onTimeout&&A._onTimeout()},x))},f(14),u.setImmediate=typeof self!="undefined"&&self.setImmediate||c!==void 0&&c.setImmediate||this&&this.setImmediate,u.clearImmediate=typeof self!="undefined"&&self.clearImmediate||c!==void 0&&c.clearImmediate||this&&this.clearImmediate}).call(this,f(4))},function(i,u,f){(function(c,g){(function(t,C){"use strict";if(!t.setImmediate){var A,x,D,L,N,j=1,$={},h=!1,re=t.document,ce=Object.getPrototypeOf&&Object.getPrototypeOf(t);ce=ce&&ce.setTimeout?ce:t,{}.toString.call(t.process)==="[object process]"?A=function(Se){g.nextTick(function(){oe(Se)})}:function(){if(t.postMessage&&!t.importScripts){var Se=!0,me=t.onmessage;return t.onmessage=function(){Se=!1},t.postMessage("","*"),t.onmessage=me,Se}}()?(L="setImmediate$"+Math.random()+"$",N=function(Se){Se.source===t&&typeof Se.data=="string"&&Se.data.indexOf(L)===0&&oe(+Se.data.slice(L.length))},t.addEventListener?t.addEventListener("message",N,!1):t.attachEvent("onmessage",N),A=function(Se){t.postMessage(L+Se,"*")}):t.MessageChannel?((D=new MessageChannel).port1.onmessage=function(Se){oe(Se.data)},A=function(Se){D.port2.postMessage(Se)}):re&&"onreadystatechange"in re.createElement("script")?(x=re.documentElement,A=function(Se){var me=re.createElement("script");me.onreadystatechange=function(){oe(Se),me.onreadystatechange=null,x.removeChild(me),me=null},x.appendChild(me)}):A=function(Se){setTimeout(oe,0,Se)},ce.setImmediate=function(Se){typeof Se!="function"&&(Se=new Function(""+Se));for(var me=new Array(arguments.length-1),De=0;Dene;ne++)if((V=Q(Je,Ot,ne))!==-1){ce=ne,Ot=V;break e}Ot=-1}}e:{if(Je=Nt,(V=j().get(At.primitive))!==void 0){for(ne=0;neOt-Je?null:Nt.slice(Je,Ot-1))!==null){if(Ot=0,Le!==null){for(;OtOt;Le--)ot=Ue.pop()}for(Le=Nt.length-Ot-1;1<=Le;Le--)Ot=[],ot.push({id:null,isStateEditable:!1,name:Se(Nt[Le-1].functionName),value:void 0,subHooks:Ot}),Ue.push(ot),ot=Ot;Le=Nt}Ot=(Nt=At.primitive)==="Context"||Nt==="DebugValue"?null:ct++,ot.push({id:Ot,isStateEditable:Nt==="Reducer"||Nt==="State",name:Nt,value:At.value,subHooks:[]})}return function ge(Z,Ae){for(var at=[],it=0;it-1&&($=$.replace(/eval code/g,"eval").replace(/(\(eval at [^()]*)|(\),.*$)/g,""));var h=$.replace(/^\s+/,"").replace(/\(eval code/g,"("),re=h.match(/ (\((.+):(\d+):(\d+)\)$)/),ce=(h=re?h.replace(re[0],""):h).split(/\s+/).slice(1),Q=this.extractLocation(re?re[1]:ce.pop()),oe=ce.join(" ")||void 0,Se=["eval",""].indexOf(Q[0])>-1?void 0:Q[0];return new x({functionName:oe,fileName:Se,lineNumber:Q[1],columnNumber:Q[2],source:$})},this)},parseFFOrSafari:function(j){return j.stack.split(` -`).filter(function($){return!$.match(N)},this).map(function($){if($.indexOf(" > eval")>-1&&($=$.replace(/ line (\d+)(?: > eval line \d+)* > eval:\d+:\d+/g,":$1")),$.indexOf("@")===-1&&$.indexOf(":")===-1)return new x({functionName:$});var h=/((.*".+"[^@]*)?[^@]*)(?:@)/,re=$.match(h),ce=re&&re[1]?re[1]:void 0,Q=this.extractLocation($.replace(h,""));return new x({functionName:ce,fileName:Q[0],lineNumber:Q[1],columnNumber:Q[2],source:$})},this)},parseOpera:function(j){return!j.stacktrace||j.message.indexOf(` -`)>-1&&j.message.split(` -`).length>j.stacktrace.split(` -`).length?this.parseOpera9(j):j.stack?this.parseOpera11(j):this.parseOpera10(j)},parseOpera9:function(j){for(var $=/Line (\d+).*script (?:in )?(\S+)/i,h=j.message.split(` -`),re=[],ce=2,Q=h.length;ce/,"$2").replace(/\([^)]*\)/g,"")||void 0;Q.match(/\(([^)]*)\)/)&&(h=Q.replace(/^[^(]+\(([^)]*)\)$/,"$1"));var Se=h===void 0||h==="[arguments not available]"?void 0:h.split(",");return new x({functionName:oe,args:Se,fileName:ce[0],lineNumber:ce[1],columnNumber:ce[2],source:$})},this)}}})=="function"?c.apply(u,g):c)===void 0||(i.exports=t)})()},function(i,u,f){var c,g,t;(function(C,A){"use strict";g=[],(t=typeof(c=function(){function x(oe){return oe.charAt(0).toUpperCase()+oe.substring(1)}function D(oe){return function(){return this[oe]}}var L=["isConstructor","isEval","isNative","isToplevel"],N=["columnNumber","lineNumber"],j=["fileName","functionName","source"],$=L.concat(N,j,["args"]);function h(oe){if(oe)for(var Se=0;Se<$.length;Se++)oe[$[Se]]!==void 0&&this["set"+x($[Se])](oe[$[Se]])}h.prototype={getArgs:function(){return this.args},setArgs:function(oe){if(Object.prototype.toString.call(oe)!=="[object Array]")throw new TypeError("Args must be an Array");this.args=oe},getEvalOrigin:function(){return this.evalOrigin},setEvalOrigin:function(oe){if(oe instanceof h)this.evalOrigin=oe;else{if(!(oe instanceof Object))throw new TypeError("Eval Origin must be an Object or StackFrame");this.evalOrigin=new h(oe)}},toString:function(){var oe=this.getFileName()||"",Se=this.getLineNumber()||"",me=this.getColumnNumber()||"",De=this.getFunctionName()||"";return this.getIsEval()?oe?"[eval] ("+oe+":"+Se+":"+me+")":"[eval]:"+Se+":"+me:De?De+" ("+oe+":"+Se+":"+me+")":oe+":"+Se+":"+me}},h.fromString=function(oe){var Se=oe.indexOf("("),me=oe.lastIndexOf(")"),De=oe.substring(0,Se),J=oe.substring(Se+1,me).split(","),Te=oe.substring(me+1);if(Te.indexOf("@")===0)var Oe=/@(.+?)(?::(\d+))?(?::(\d+))?$/.exec(Te,""),Le=Oe[1],ot=Oe[2],ct=Oe[3];return new h({functionName:De,args:J||void 0,fileName:Le,lineNumber:ot||void 0,columnNumber:ct||void 0})};for(var re=0;re1?de-1:0),ve=1;ve=0&&de.splice(W,1)}}}])&&c(R.prototype,U),H&&c(R,H),F}(),t=f(2),C=f.n(t);try{var A=f(9).default,x=function(F){var R=new RegExp("".concat(F,": ([0-9]+)")),U=A.match(R);return parseInt(U[1],10)};x("comfortable-line-height-data"),x("compact-line-height-data")}catch(F){}function D(F){try{return sessionStorage.getItem(F)}catch(R){return null}}function L(F){try{sessionStorage.removeItem(F)}catch(R){}}function N(F,R){try{return sessionStorage.setItem(F,R)}catch(U){}}var j=function(F,R){return F===R},$=f(1),h=f.n($);function re(F){return F.ownerDocument?F.ownerDocument.defaultView:null}function ce(F){var R=re(F);return R?R.frameElement:null}function Q(F){var R=me(F);return oe([F.getBoundingClientRect(),{top:R.borderTop,left:R.borderLeft,bottom:R.borderBottom,right:R.borderRight,width:0,height:0}])}function oe(F){return F.reduce(function(R,U){return R==null?U:{top:R.top+U.top,left:R.left+U.left,width:R.width,height:R.height,bottom:R.bottom+U.bottom,right:R.right+U.right}})}function Se(F,R){var U=ce(F);if(U&&U!==R){for(var H=[F.getBoundingClientRect()],fe=U,ue=!1;fe;){var de=Q(fe);if(H.push(de),fe=ce(fe),ue)break;fe&&re(fe)===R&&(ue=!0)}return oe(H)}return F.getBoundingClientRect()}function me(F){var R=window.getComputedStyle(F);return{borderLeft:parseInt(R.borderLeftWidth,10),borderRight:parseInt(R.borderRightWidth,10),borderTop:parseInt(R.borderTopWidth,10),borderBottom:parseInt(R.borderBottomWidth,10),marginLeft:parseInt(R.marginLeft,10),marginRight:parseInt(R.marginRight,10),marginTop:parseInt(R.marginTop,10),marginBottom:parseInt(R.marginBottom,10),paddingLeft:parseInt(R.paddingLeft,10),paddingRight:parseInt(R.paddingRight,10),paddingTop:parseInt(R.paddingTop,10),paddingBottom:parseInt(R.paddingBottom,10)}}function De(F,R){var U;if(typeof Symbol=="undefined"||F[Symbol.iterator]==null){if(Array.isArray(F)||(U=function(ve,Fe){if(!!ve){if(typeof ve=="string")return J(ve,Fe);var Ge=Object.prototype.toString.call(ve).slice(8,-1);if(Ge==="Object"&&ve.constructor&&(Ge=ve.constructor.name),Ge==="Map"||Ge==="Set")return Array.from(ve);if(Ge==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(Ge))return J(ve,Fe)}}(F))||R&&F&&typeof F.length=="number"){U&&(F=U);var H=0,fe=function(){};return{s:fe,n:function(){return H>=F.length?{done:!0}:{done:!1,value:F[H++]}},e:function(ve){throw ve},f:fe}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var ue,de=!0,W=!1;return{s:function(){U=F[Symbol.iterator]()},n:function(){var ve=U.next();return de=ve.done,ve},e:function(ve){W=!0,ue=ve},f:function(){try{de||U.return==null||U.return()}finally{if(W)throw ue}}}}function J(F,R){(R==null||R>F.length)&&(R=F.length);for(var U=0,H=new Array(R);Ude.left+de.width&&(K=de.left+de.width-Ge-5),{style:{top:ve+="px",left:K+="px"}}}(R,U,{width:H.width,height:H.height});h()(this.tip.style,fe.style)}}]),F}(),Ue=function(){function F(){Te(this,F);var R=window.__REACT_DEVTOOLS_TARGET_WINDOW__||window;this.window=R;var U=window.__REACT_DEVTOOLS_TARGET_WINDOW__||window;this.tipBoundsWindow=U;var H=R.document;this.container=H.createElement("div"),this.container.style.zIndex="10000000",this.tip=new ct(H,this.container),this.rects=[],H.body.appendChild(this.container)}return Le(F,[{key:"remove",value:function(){this.tip.remove(),this.rects.forEach(function(R){R.remove()}),this.rects.length=0,this.container.parentNode&&this.container.parentNode.removeChild(this.container)}},{key:"inspect",value:function(R,U){for(var H=this,fe=R.filter(function(Xe){return Xe.nodeType===Node.ELEMENT_NODE});this.rects.length>fe.length;)this.rects.pop().remove();if(fe.length!==0){for(;this.rects.length1&&arguments[1]!==void 0?arguments[1]:j,je=void 0,Xe=[],rt=void 0,st=!1,xt=function(lt,Rt){return xe(lt,Xe[Rt])},wt=function(){for(var lt=arguments.length,Rt=Array(lt),yn=0;yn5&&arguments[5]!==void 0?arguments[5]:0,W=cl(F);switch(W){case"html_element":return R.push(H),{inspectable:!1,preview_short:Mr(F,!1),preview_long:Mr(F,!0),name:F.tagName,type:W};case"function":return R.push(H),{inspectable:!1,preview_short:Mr(F,!1),preview_long:Mr(F,!0),name:typeof F.name!="function"&&F.name?F.name:"function",type:W};case"string":return F.length<=500?F:F.slice(0,500)+"...";case"bigint":case"symbol":return R.push(H),{inspectable:!1,preview_short:Mr(F,!1),preview_long:Mr(F,!0),name:F.toString(),type:W};case"react_element":return R.push(H),{inspectable:!1,preview_short:Mr(F,!1),preview_long:Mr(F,!0),name:al(F)||"Unknown",type:W};case"array_buffer":case"data_view":return R.push(H),{inspectable:!1,preview_short:Mr(F,!1),preview_long:Mr(F,!0),name:W==="data_view"?"DataView":"ArrayBuffer",size:F.byteLength,type:W};case"array":return ue=fe(H),de>=2&&!ue?yo(W,!0,F,R,H):F.map(function(Ge,K){return Ds(Ge,R,U,H.concat([K]),fe,ue?1:de+1)});case"html_all_collection":case"typed_array":case"iterator":if(ue=fe(H),de>=2&&!ue)return yo(W,!0,F,R,H);var ve={unserializable:!0,type:W,readonly:!0,size:W==="typed_array"?F.length:void 0,preview_short:Mr(F,!1),preview_long:Mr(F,!0),name:F.constructor&&F.constructor.name!=="Object"?F.constructor.name:""};return r0(F[Symbol.iterator])&&Array.from(F).forEach(function(Ge,K){return ve[K]=Ds(Ge,R,U,H.concat([K]),fe,ue?1:de+1)}),U.push(H),ve;case"opaque_iterator":return R.push(H),{inspectable:!1,preview_short:Mr(F,!1),preview_long:Mr(F,!0),name:F[Symbol.toStringTag],type:W};case"date":case"regexp":return R.push(H),{inspectable:!1,preview_short:Mr(F,!1),preview_long:Mr(F,!0),name:F.toString(),type:W};case"object":if(ue=fe(H),de>=2&&!ue)return yo(W,!0,F,R,H);var Fe={};return Es(F).forEach(function(Ge){var K=Ge.toString();Fe[K]=Ds(F[Ge],R,U,H.concat([K]),fe,ue?1:de+1)}),Fe;case"infinity":case"nan":case"undefined":return R.push(H),{type:W};default:return F}}function Mu(F){return(Mu=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(R){return typeof R}:function(R){return R&&typeof Symbol=="function"&&R.constructor===Symbol&&R!==Symbol.prototype?"symbol":typeof R})(F)}function Gf(F){return function(R){if(Array.isArray(R))return iu(R)}(F)||function(R){if(typeof Symbol!="undefined"&&Symbol.iterator in Object(R))return Array.from(R)}(F)||function(R,U){if(!!R){if(typeof R=="string")return iu(R,U);var H=Object.prototype.toString.call(R).slice(8,-1);if(H==="Object"&&R.constructor&&(H=R.constructor.name),H==="Map"||H==="Set")return Array.from(R);if(H==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(H))return iu(R,U)}}(F)||function(){throw new TypeError(`Invalid attempt to spread non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}()}function iu(F,R){(R==null||R>F.length)&&(R=F.length);for(var U=0,H=new Array(R);UR.toString()?1:R.toString()>F.toString()?-1:0}function Es(F){for(var R=[],U=F,H=function(){var fe=[].concat(Gf(Object.keys(U)),Gf(Object.getOwnPropertySymbols(U))),ue=Object.getOwnPropertyDescriptors(U);fe.forEach(function(de){ue[de].enumerable&&R.push(de)}),U=Object.getPrototypeOf(U)};U!=null;)H();return R}function Uo(F){var R=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"Anonymous",U=ou.get(F);if(U!=null)return U;var H=R;return typeof F.displayName=="string"?H=F.displayName:typeof F.name=="string"&&F.name!==""&&(H=F.name),ou.set(F,H),H}var sl=0;function Ss(){return++sl}function Cs(F){var R=ol.get(F);if(R!==void 0)return R;for(var U=new Array(F.length),H=0;H1&&arguments[1]!==void 0?arguments[1]:50;return F.length>R?F.substr(0,R)+"\u2026":F}function Mr(F,R){if(F!=null&&hasOwnProperty.call(F,Ci.type))return R?F[Ci.preview_long]:F[Ci.preview_short];switch(cl(F)){case"html_element":return"<".concat(Ui(F.tagName.toLowerCase())," />");case"function":return Ui("\u0192 ".concat(typeof F.name=="function"?"":F.name,"() {}"));case"string":return'"'.concat(F,'"');case"bigint":return Ui(F.toString()+"n");case"regexp":case"symbol":return Ui(F.toString());case"react_element":return"<".concat(Ui(al(F)||"Unknown")," />");case"array_buffer":return"ArrayBuffer(".concat(F.byteLength,")");case"data_view":return"DataView(".concat(F.buffer.byteLength,")");case"array":if(R){for(var U="",H=0;H0&&(U+=", "),!((U+=Mr(F[H],!1)).length>50));H++);return"[".concat(Ui(U),"]")}var fe=hasOwnProperty.call(F,Ci.size)?F[Ci.size]:F.length;return"Array(".concat(fe,")");case"typed_array":var ue="".concat(F.constructor.name,"(").concat(F.length,")");if(R){for(var de="",W=0;W0&&(de+=", "),!((de+=F[W]).length>50));W++);return"".concat(ue," [").concat(Ui(de),"]")}return ue;case"iterator":var ve=F.constructor.name;if(R){for(var Fe=Array.from(F),Ge="",K=0;K0&&(Ge+=", "),Array.isArray(xe)){var je=Mr(xe[0],!0),Xe=Mr(xe[1],!1);Ge+="".concat(je," => ").concat(Xe)}else Ge+=Mr(xe,!1);if(Ge.length>50)break}return"".concat(ve,"(").concat(F.size,") {").concat(Ui(Ge),"}")}return"".concat(ve,"(").concat(F.size,")");case"opaque_iterator":return F[Symbol.toStringTag];case"date":return F.toString();case"object":if(R){for(var rt=Es(F).sort(ul),st="",xt=0;xt0&&(st+=", "),(st+="".concat(wt.toString(),": ").concat(Mr(F[wt],!1))).length>50)break}return"{".concat(Ui(st),"}")}return"{\u2026}";case"boolean":case"number":case"infinity":case"nan":case"null":case"undefined":return F;default:try{return Ui(""+F)}catch(lt){return"unserializable"}}}var Ac=f(7);function of(F){return(of=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(R){return typeof R}:function(R){return R&&typeof Symbol=="function"&&R.constructor===Symbol&&R!==Symbol.prototype?"symbol":typeof R})(F)}function Ts(F,R){var U=Object.keys(F);if(Object.getOwnPropertySymbols){var H=Object.getOwnPropertySymbols(F);R&&(H=H.filter(function(fe){return Object.getOwnPropertyDescriptor(F,fe).enumerable})),U.push.apply(U,H)}return U}function xs(F){for(var R=1;R2&&arguments[2]!==void 0?arguments[2]:[];if(F!==null){var H=[],fe=[],ue=Ds(F,H,fe,U,R);return{data:ue,cleaned:H,unserializable:fe}}return null}function qo(F){var R,U,H=(R=F,U=new Set,JSON.stringify(R,function(de,W){if(of(W)==="object"&&W!==null){if(U.has(W))return;U.add(W)}return typeof W=="bigint"?W.toString()+"n":W})),fe=H===void 0?"undefined":H,ue=window.__REACT_DEVTOOLS_GLOBAL_HOOK__.clipboardCopyText;typeof ue=="function"?ue(fe).catch(function(de){}):Object(Ac.copy)(fe)}function kr(F,R){var U=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,H=R[U],fe=Array.isArray(F)?F.slice():xs({},F);return U+1===R.length?Array.isArray(fe)?fe.splice(H,1):delete fe[H]:fe[H]=kr(F[H],R,U+1),fe}function Fr(F,R,U){var H=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0,fe=R[H],ue=Array.isArray(F)?F.slice():xs({},F);if(H+1===R.length){var de=U[H];ue[de]=ue[fe],Array.isArray(ue)?ue.splice(fe,1):delete ue[fe]}else ue[fe]=Fr(F[fe],R,U,H+1);return ue}function si(F,R,U){var H=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0;if(H>=R.length)return U;var fe=R[H],ue=Array.isArray(F)?F.slice():xs({},F);return ue[fe]=si(F[fe],R,U,H+1),ue}var H0=f(8);function b0(F,R){var U=Object.keys(F);if(Object.getOwnPropertySymbols){var H=Object.getOwnPropertySymbols(F);R&&(H=H.filter(function(fe){return Object.getOwnPropertyDescriptor(F,fe).enumerable})),U.push.apply(U,H)}return U}function Bt(F){for(var R=1;R=F.length?{done:!0}:{done:!1,value:F[H++]}},e:function(ve){throw ve},f:fe}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var ue,de=!0,W=!1;return{s:function(){U=F[Symbol.iterator]()},n:function(){var ve=U.next();return de=ve.done,ve},e:function(ve){W=!0,ue=ve},f:function(){try{de||U.return==null||U.return()}finally{if(W)throw ue}}}}function As(F,R){if(F){if(typeof F=="string")return uu(F,R);var U=Object.prototype.toString.call(F).slice(8,-1);return U==="Object"&&F.constructor&&(U=F.constructor.name),U==="Map"||U==="Set"?Array.from(F):U==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(U)?uu(F,R):void 0}}function uu(F,R){(R==null||R>F.length)&&(R=F.length);for(var U=0,H=new Array(R);U0){var et=ue(X);if(et!=null){var Dt,bt=ks(du);try{for(bt.s();!(Dt=bt.n()).done;)if(Dt.value.test(et))return!0}catch(fn){bt.e(fn)}finally{bt.f()}}}if(Y!=null&&Yu.size>0){var Zt,qt=Y.fileName,Ut=ks(Yu);try{for(Ut.s();!(Zt=Ut.n()).done;)if(Zt.value.test(qt))return!0}catch(fn){Ut.e(fn)}finally{Ut.f()}}return!1}function Gr(X){var Y=X.type;switch(X.tag){case Xe:case ar:return 1;case je:case rn:return 5;case wt:return 6;case lt:return 11;case yn:return 7;case Rt:case sn:case xt:return 9;case Hn:case Cr:return 8;case He:return 12;case Qe:return 13;default:switch(de(Y)){case 60111:case"Symbol(react.concurrent_mode)":case"Symbol(react.async_mode)":return 9;case 60109:case"Symbol(react.provider)":return 2;case 60110:case"Symbol(react.context)":return 2;case 60108:case"Symbol(react.strict_mode)":return 9;case 60114:case"Symbol(react.profiler)":return 10;default:return 9}}}function ir(X){if(Co.has(X))return X;var Y=X.alternate;return Y!=null&&Co.has(Y)?Y:(Co.add(X),X)}window.__REACT_DEVTOOLS_COMPONENT_FILTERS__!=null?qs(window.__REACT_DEVTOOLS_COMPONENT_FILTERS__):qs([{type:1,value:7,isEnabled:!0}]);var L0=new Map,Y0=new Map,Co=new Set,$u=new Map,Vo=new Map,Rr=-1;function Jn(X){if(!L0.has(X)){var Y=Ss();L0.set(X,Y),Y0.set(Y,X)}return L0.get(X)}function ai(X){switch(Gr(X)){case 1:if(N0!==null){var Y=Jn(ir(X)),ye=Vr(X);ye!==null&&N0.set(Y,ye)}}}var o0={};function Vr(X){switch(Gr(X)){case 1:var Y=X.stateNode,ye=o0,he=o0;return Y!=null&&(Y.constructor&&Y.constructor.contextType!=null?he=Y.context:(ye=Y.context)&&Object.keys(ye).length===0&&(ye=o0)),[ye,he];default:return null}}function ff(X){switch(Gr(X)){case 1:if(N0!==null){var Y=Jn(ir(X)),ye=N0.has(Y)?N0.get(Y):null,he=Vr(X);if(ye==null||he==null)return null;var We=Ru(ye,2),et=We[0],Dt=We[1],bt=Ru(he,2),Zt=bt[0],qt=bt[1];if(Zt!==o0)return $0(et,Zt);if(qt!==o0)return Dt!==qt}}return null}function cf(X,Y){if(X==null||Y==null)return!1;if(Y.hasOwnProperty("baseState")&&Y.hasOwnProperty("memoizedState")&&Y.hasOwnProperty("next")&&Y.hasOwnProperty("queue"))for(;Y!==null;){if(Y.memoizedState!==X.memoizedState)return!0;Y=Y.next,X=X.next}return!1}function $0(X,Y){if(X==null||Y==null||Y.hasOwnProperty("baseState")&&Y.hasOwnProperty("memoizedState")&&Y.hasOwnProperty("next")&&Y.hasOwnProperty("queue"))return null;var ye,he=[],We=ks(new Set([].concat(c0(Object.keys(X)),c0(Object.keys(Y)))));try{for(We.s();!(ye=We.n()).done;){var et=ye.value;X[et]!==Y[et]&&he.push(et)}}catch(Dt){We.e(Dt)}finally{We.f()}return he}function K0(X,Y){switch(Y.tag){case Xe:case je:case rt:case Hn:case Cr:return(zo(Y)&K)===K;default:return X.memoizedProps!==Y.memoizedProps||X.memoizedState!==Y.memoizedState||X.ref!==Y.ref}}var ae=[],Be=[],Ie=[],ht=[],mt=new Map,wn=0,Gn=null;function $t(X){ae.push(X)}function X0(X){if(ae.length!==0||Be.length!==0||Ie.length!==0||Gn!==null||u0){var Y=Be.length+Ie.length+(Gn===null?0:1),ye=new Array(3+wn+(Y>0?2+Y:0)+ae.length),he=0;if(ye[he++]=R,ye[he++]=Rr,ye[he++]=wn,mt.forEach(function(bt,Zt){ye[he++]=Zt.length;for(var qt=Cs(Zt),Ut=0;Ut0){ye[he++]=2,ye[he++]=Y;for(var We=Be.length-1;We>=0;We--)ye[he++]=Be[We];for(var et=0;et0?X.forEach(function(Y){F.emit("operations",Y)}):(Fn!==null&&(zr=!0),F.getFiberRoots(R).forEach(function(Y){T0(Rr=Jn(ir(Y.current)),Y.current),u0&&Y.memoizedInteractions!=null&&(uo={changeDescriptions:To?new Map:null,durations:[],commitTime:Os()-v0,interactions:Array.from(Y.memoizedInteractions).map(function(ye){return Bt(Bt({},ye),{},{timestamp:ye.timestamp-v0})}),maxActualDuration:0,priorityLevel:null}),$r(Y.current,null,!1,!1),X0(),Rr=-1}))},getBestMatchForTrackedPath:function(){if(Fn===null||pi===null)return null;for(var X=pi;X!==null&&F0(X);)X=X.return;return X===null?null:{id:Jn(ir(X)),isFullMatch:Br===Fn.length-1}},getDisplayNameForFiberID:function(X){var Y=Y0.get(X);return Y!=null?ue(Y):null},getFiberIDForNative:function(X){var Y=arguments.length>1&&arguments[1]!==void 0&&arguments[1],ye=U.findFiberByHostInstance(X);if(ye!=null){if(Y)for(;ye!==null&&F0(ye);)ye=ye.return;return Jn(ir(ye))}return null},getInstanceAndStyle:function(X){var Y=null,ye=null,he=J0(X);return he!==null&&(Y=he.stateNode,he.memoizedProps!==null&&(ye=he.memoizedProps.style)),{instance:Y,style:ye}},getOwnersList:function(X){var Y=J0(X);if(Y==null)return null;var ye=Y._debugOwner,he=[{displayName:ue(Y)||"Anonymous",id:X,type:Gr(Y)}];if(ye)for(var We=ye;We!==null;)he.unshift({displayName:ue(We)||"Anonymous",id:Jn(ir(We)),type:Gr(We)}),We=We._debugOwner||null;return he},getPathForElement:function(X){var Y=Y0.get(X);if(Y==null)return null;for(var ye=[];Y!==null;)ye.push(Ai(Y)),Y=Y.return;return ye.reverse(),ye},getProfilingData:function(){var X=[];if(pu===null)throw Error("getProfilingData() called before any profiling data was recorded");return pu.forEach(function(Y,ye){var he=[],We=[],et=new Map,Dt=new Map,bt=so!==null&&so.get(ye)||"Unknown";C0!=null&&C0.forEach(function(Zt,qt){di!=null&&di.get(qt)===ye&&We.push([qt,Zt])}),Y.forEach(function(Zt,qt){var Ut=Zt.changeDescriptions,fn=Zt.durations,_t=Zt.interactions,_r=Zt.maxActualDuration,Wr=Zt.priorityLevel,Ar=Zt.commitTime,z=[];_t.forEach(function(s0){et.has(s0.id)||et.set(s0.id,s0),z.push(s0.id);var t0=Dt.get(s0.id);t0!=null?t0.push(qt):Dt.set(s0.id,[qt])});for(var dr=[],Or=[],Qn=0;Qn1?kn.set(Ut,fn-1):kn.delete(Ut),wr.delete(Zt)}(Rr),Yr(ye,!1))}else T0(Rr,ye),$r(ye,null,!1,!1);if(u0&&We){var bt=pu.get(Rr);bt!=null?bt.push(uo):pu.set(Rr,[uo])}X0(),oo&&F.emit("traceUpdates",Hi),Rr=-1},handleCommitFiberUnmount:function(X){Yr(X,!1)},inspectElement:function(X,Y){if(Tr(X)){if(Y!=null){R0(Y);var ye=null;return Y[0]==="hooks"&&(ye="hooks"),{id:X,type:"hydrated-path",path:Y,value:qi(Ti(S0,Y),Nr(null,ye),Y)}}return{id:X,type:"no-change"}}if(El=!1,S0!==null&&S0.id===X||(Q0={}),(S0=af(X))===null)return{id:X,type:"not-found"};Y!=null&&R0(Y),function(We){var et=We.hooks,Dt=We.id,bt=We.props,Zt=Y0.get(Dt);if(Zt!=null){var qt=Zt.elementType,Ut=Zt.stateNode,fn=Zt.tag,_t=Zt.type;switch(fn){case Xe:case ar:case rn:H.$r=Ut;break;case je:H.$r={hooks:et,props:bt,type:_t};break;case wt:H.$r={props:bt,type:_t.render};break;case Hn:case Cr:H.$r={props:bt,type:qt!=null&&qt.type!=null?qt.type:_t};break;default:H.$r=null}}else console.warn('Could not find Fiber with id "'.concat(Dt,'"'))}(S0);var he=Bt({},S0);return he.context=qi(he.context,Nr("context",null)),he.hooks=qi(he.hooks,Nr("hooks","hooks")),he.props=qi(he.props,Nr("props",null)),he.state=qi(he.state,Nr("state",null)),{id:X,type:"full-data",value:he}},logElementToConsole:function(X){var Y=Tr(X)?S0:af(X);if(Y!==null){var ye=typeof console.groupCollapsed=="function";ye&&console.groupCollapsed("[Click to expand] %c<".concat(Y.displayName||"Component"," />"),"color: var(--dom-tag-name-color); font-weight: normal;"),Y.props!==null&&console.log("Props:",Y.props),Y.state!==null&&console.log("State:",Y.state),Y.hooks!==null&&console.log("Hooks:",Y.hooks);var he=zs(X);he!==null&&console.log("Nodes:",he),Y.source!==null&&console.log("Location:",Y.source),(window.chrome||/firefox/i.test(navigator.userAgent))&&console.log("Right-click any value to save it as a global variable for further inspection."),ye&&console.groupEnd()}else console.warn('Could not find Fiber with id "'.concat(X,'"'))},prepareViewAttributeSource:function(X,Y){Tr(X)&&(window.$attribute=Ti(S0,Y))},prepareViewElementSource:function(X){var Y=Y0.get(X);if(Y!=null){var ye=Y.elementType,he=Y.tag,We=Y.type;switch(he){case Xe:case ar:case rn:case je:H.$type=We;break;case wt:H.$type=We.render;break;case Hn:case Cr:H.$type=ye!=null&&ye.type!=null?ye.type:We;break;default:H.$type=null}}else console.warn('Could not find Fiber with id "'.concat(X,'"'))},overrideSuspense:function(X,Y){if(typeof Eo!="function"||typeof So!="function")throw new Error("Expected overrideSuspense() to not get called for earlier React versions.");Y?(B0.add(X),B0.size===1&&Eo(hu)):(B0.delete(X),B0.size===0&&Eo(Cl));var ye=Y0.get(X);ye!=null&&So(ye)},overrideValueAtPath:function(X,Y,ye,he,We){var et=J0(Y);if(et!==null){var Dt=et.stateNode;switch(X){case"context":switch(he=he.slice(1),et.tag){case Xe:he.length===0?Dt.context=We:fl(Dt.context,he,We),Dt.forceUpdate()}break;case"hooks":typeof p0=="function"&&p0(et,ye,he,We);break;case"props":switch(et.tag){case Xe:et.pendingProps=si(Dt.props,he,We),Dt.forceUpdate();break;default:typeof xi=="function"&&xi(et,he,We)}break;case"state":switch(et.tag){case Xe:fl(Dt.state,he,We),Dt.forceUpdate()}}}},renamePath:function(X,Y,ye,he,We){var et=J0(Y);if(et!==null){var Dt=et.stateNode;switch(X){case"context":switch(he=he.slice(1),We=We.slice(1),et.tag){case Xe:he.length===0||ll(Dt.context,he,We),Dt.forceUpdate()}break;case"hooks":typeof ci=="function"&&ci(et,ye,he,We);break;case"props":Dt===null?typeof qr=="function"&&qr(et,he,We):(et.pendingProps=Fr(Dt.props,he,We),Dt.forceUpdate());break;case"state":ll(Dt.state,he,We),Dt.forceUpdate()}}},renderer:U,setTraceUpdatesEnabled:function(X){oo=X},setTrackedPath:lo,startProfiling:Sl,stopProfiling:function(){u0=!1,To=!1},storeAsGlobal:function(X,Y,ye){if(Tr(X)){var he=Ti(S0,Y),We="$reactTemp".concat(ye);window[We]=he,console.log(We),console.log(he)}},updateComponentFilters:function(X){if(u0)throw Error("Cannot modify filter preferences while profiling");F.getFiberRoots(R).forEach(function(Y){Rr=Jn(ir(Y.current)),m0(Y.current),Yr(Y.current,!1),Rr=-1}),qs(X),kn.clear(),F.getFiberRoots(R).forEach(function(Y){T0(Rr=Jn(ir(Y.current)),Y.current),$r(Y.current,null,!1,!1),X0(Y),Rr=-1})}}}var _n;function Nu(F){return(Nu=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(R){return typeof R}:function(R){return R&&typeof Symbol=="function"&&R.constructor===Symbol&&R!==Symbol.prototype?"symbol":typeof R})(F)}function Wo(F,R,U){if(_n===void 0)try{throw Error()}catch(fe){var H=fe.stack.trim().match(/\n( *(at )?)/);_n=H&&H[1]||""}return` -`+_n+F}var su=!1;function Ps(F,R,U){if(!F||su)return"";var H,fe=Error.prepareStackTrace;Error.prepareStackTrace=void 0,su=!0;var ue=U.current;U.current=null;try{if(R){var de=function(){throw Error()};if(Object.defineProperty(de.prototype,"props",{set:function(){throw Error()}}),(typeof Reflect=="undefined"?"undefined":Nu(Reflect))==="object"&&Reflect.construct){try{Reflect.construct(de,[])}catch(xe){H=xe}Reflect.construct(F,[],de)}else{try{de.call()}catch(xe){H=xe}F.call(de.prototype)}}else{try{throw Error()}catch(xe){H=xe}F()}}catch(xe){if(xe&&H&&typeof xe.stack=="string"){for(var W=xe.stack.split(` -`),ve=H.stack.split(` -`),Fe=W.length-1,Ge=ve.length-1;Fe>=1&&Ge>=0&&W[Fe]!==ve[Ge];)Ge--;for(;Fe>=1&&Ge>=0;Fe--,Ge--)if(W[Fe]!==ve[Ge]){if(Fe!==1||Ge!==1)do if(Fe--,--Ge<0||W[Fe]!==ve[Ge])return` -`+W[Fe].replace(" at new "," at ");while(Fe>=1&&Ge>=0);break}}}finally{su=!1,Error.prepareStackTrace=fe,U.current=ue}var K=F?F.displayName||F.name:"";return K?Wo(K):""}function pl(F,R,U,H){return Ps(F,!1,H)}function Vf(F,R,U){var H=F.HostComponent,fe=F.LazyComponent,ue=F.SuspenseComponent,de=F.SuspenseListComponent,W=F.FunctionComponent,ve=F.IndeterminateComponent,Fe=F.SimpleMemoComponent,Ge=F.ForwardRef,K=F.Block,xe=F.ClassComponent;switch(R.tag){case H:return Wo(R.type);case fe:return Wo("Lazy");case ue:return Wo("Suspense");case de:return Wo("SuspenseList");case W:case ve:case Fe:return pl(R.type,0,0,U);case Ge:return pl(R.type.render,0,0,U);case K:return pl(R.type._render,0,0,U);case xe:return function(je,Xe,rt,st){return Ps(je,!0,st)}(R.type,0,0,U);default:return""}}function hl(F,R,U){try{var H="",fe=R;do H+=Vf(F,fe,U),fe=fe.return;while(fe);return H}catch(ue){return` -Error generating stack: `+ue.message+` -`+ue.stack}}function Bu(F,R){var U;if(typeof Symbol=="undefined"||F[Symbol.iterator]==null){if(Array.isArray(F)||(U=function(ve,Fe){if(!!ve){if(typeof ve=="string")return ju(ve,Fe);var Ge=Object.prototype.toString.call(ve).slice(8,-1);if(Ge==="Object"&&ve.constructor&&(Ge=ve.constructor.name),Ge==="Map"||Ge==="Set")return Array.from(ve);if(Ge==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(Ge))return ju(ve,Fe)}}(F))||R&&F&&typeof F.length=="number"){U&&(F=U);var H=0,fe=function(){};return{s:fe,n:function(){return H>=F.length?{done:!0}:{done:!1,value:F[H++]}},e:function(ve){throw ve},f:fe}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var ue,de=!0,W=!1;return{s:function(){U=F[Symbol.iterator]()},n:function(){var ve=U.next();return de=ve.done,ve},e:function(ve){W=!0,ue=ve},f:function(){try{de||U.return==null||U.return()}finally{if(W)throw ue}}}}function ju(F,R){(R==null||R>F.length)&&(R=F.length);for(var U=0,H=new Array(R);U0?Fe[Fe.length-1]:null,xe=K!==null&&(ro.test(K)||Ms.test(K));if(!xe){var je,Xe=Bu(ml.values());try{for(Xe.s();!(je=Xe.n()).done;){var rt=je.value,st=rt.currentDispatcherRef,xt=rt.getCurrentFiber,wt=rt.workTagMap,lt=xt();if(lt!=null){var Rt=hl(wt,lt,st);Rt!==""&&Fe.push(Rt);break}}}catch(yn){Xe.e(yn)}finally{Xe.f()}}}catch(yn){}ue.apply(void 0,Fe)};de.__REACT_DEVTOOLS_ORIGINAL_METHOD__=ue,Uu[fe]=de}catch(W){}})}}function O0(F){return(O0=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(R){return typeof R}:function(R){return R&&typeof Symbol=="function"&&R.constructor===Symbol&&R!==Symbol.prototype?"symbol":typeof R})(F)}function vl(F,R){for(var U=0;UF.length)&&(R=F.length);for(var U=0,H=new Array(R);U1?W-1:0),Fe=1;Fe0?K[K.length-1]:0),K.push(St),W.set(Ne,Fe(ft._topLevelWrapper));try{var Qt=He.apply(this,Qe);return K.pop(),Qt}catch(bn){throw K=[],bn}finally{if(K.length===0){var Cn=W.get(Ne);if(Cn===void 0)throw new Error("Expected to find root ID.");yn(Cn)}}},performUpdateIfNecessary:function(He,Qe){var Ne=Qe[0];if(P0(Ne)===9)return He.apply(this,Qe);var ft=Fe(Ne);K.push(ft);var St=ln(Ne);try{var Qt=He.apply(this,Qe),Cn=ln(Ne);return Ge(St,Cn)||Xe(Ne,ft,Cn),K.pop(),Qt}catch(p0){throw K=[],p0}finally{if(K.length===0){var bn=W.get(Ne);if(bn===void 0)throw new Error("Expected to find root ID.");yn(bn)}}},receiveComponent:function(He,Qe){var Ne=Qe[0];if(P0(Ne)===9)return He.apply(this,Qe);var ft=Fe(Ne);K.push(ft);var St=ln(Ne);try{var Qt=He.apply(this,Qe),Cn=ln(Ne);return Ge(St,Cn)||Xe(Ne,ft,Cn),K.pop(),Qt}catch(p0){throw K=[],p0}finally{if(K.length===0){var bn=W.get(Ne);if(bn===void 0)throw new Error("Expected to find root ID.");yn(bn)}}},unmountComponent:function(He,Qe){var Ne=Qe[0];if(P0(Ne)===9)return He.apply(this,Qe);var ft=Fe(Ne);K.push(ft);try{var St=He.apply(this,Qe);return K.pop(),function(Cn,bn){wt.push(bn),ue.delete(bn)}(0,ft),St}catch(Cn){throw K=[],Cn}finally{if(K.length===0){var Qt=W.get(Ne);if(Qt===void 0)throw new Error("Expected to find root ID.");yn(Qt)}}}}));var st=[],xt=new Map,wt=[],lt=0,Rt=null;function yn(He){if(st.length!==0||wt.length!==0||Rt!==null){var Qe=wt.length+(Rt===null?0:1),Ne=new Array(3+lt+(Qe>0?2+Qe:0)+st.length),ft=0;if(Ne[ft++]=R,Ne[ft++]=He,Ne[ft++]=lt,xt.forEach(function(Cn,bn){Ne[ft++]=bn.length;for(var p0=Cs(bn),h0=0;h00){Ne[ft++]=2,Ne[ft++]=Qe;for(var St=0;St"),"color: var(--dom-tag-name-color); font-weight: normal;"),Qe.props!==null&&console.log("Props:",Qe.props),Qe.state!==null&&console.log("State:",Qe.state),Qe.context!==null&&console.log("Context:",Qe.context);var ft=fe(He);ft!==null&&console.log("Node:",ft),(window.chrome||/firefox/i.test(navigator.userAgent))&&console.log("Right-click any value to save it as a global variable for further inspection."),Ne&&console.groupEnd()}else console.warn('Could not find element with id "'.concat(He,'"'))},overrideSuspense:function(){throw new Error("overrideSuspense not supported by this renderer")},overrideValueAtPath:function(He,Qe,Ne,ft,St){var Qt=ue.get(Qe);if(Qt!=null){var Cn=Qt._instance;if(Cn!=null)switch(He){case"context":fl(Cn.context,ft,St),a0(Cn);break;case"hooks":throw new Error("Hooks not supported by this renderer");case"props":var bn=Qt._currentElement;Qt._currentElement=V0(V0({},bn),{},{props:si(bn.props,ft,St)}),a0(Cn);break;case"state":fl(Cn.state,ft,St),a0(Cn)}}},renamePath:function(He,Qe,Ne,ft,St){var Qt=ue.get(Qe);if(Qt!=null){var Cn=Qt._instance;if(Cn!=null)switch(He){case"context":ll(Cn.context,ft,St),a0(Cn);break;case"hooks":throw new Error("Hooks not supported by this renderer");case"props":var bn=Qt._currentElement;Qt._currentElement=V0(V0({},bn),{},{props:Fr(bn.props,ft,St)}),a0(Cn);break;case"state":ll(Cn.state,ft,St),a0(Cn)}}},prepareViewAttributeSource:function(He,Qe){var Ne=Cr(He);Ne!==null&&(window.$attribute=Ti(Ne,Qe))},prepareViewElementSource:function(He){var Qe=ue.get(He);if(Qe!=null){var Ne=Qe._currentElement;Ne!=null?H.$type=Ne.type:console.warn('Could not find element with id "'.concat(He,'"'))}else console.warn('Could not find instance with id "'.concat(He,'"'))},renderer:U,setTraceUpdatesEnabled:function(He){},setTrackedPath:function(He){},startProfiling:function(){},stopProfiling:function(){},storeAsGlobal:function(He,Qe,Ne){var ft=Cr(He);if(ft!==null){var St=Ti(ft,Qe),Qt="$reactTemp".concat(Ne);window[Qt]=St,console.log(Qt),console.log(St)}},updateComponentFilters:function(He){}}}function nr(F,R){var U=!1,H={bottom:0,left:0,right:0,top:0},fe=R[F];if(fe!=null){for(var ue=0,de=Object.keys(H);ue0?"development":"production";var st=Function.prototype.toString;if(rt.Mount&&rt.Mount._renderNewRootComponent){var xt=st.call(rt.Mount._renderNewRootComponent);return xt.indexOf("function")!==0?"production":xt.indexOf("storedMeasure")!==-1?"development":xt.indexOf("should be a pure function")!==-1?xt.indexOf("NODE_ENV")!==-1||xt.indexOf("development")!==-1||xt.indexOf("true")!==-1?"development":xt.indexOf("nextElement")!==-1||xt.indexOf("nextComponent")!==-1?"unminified":"development":xt.indexOf("nextElement")!==-1||xt.indexOf("nextComponent")!==-1?"unminified":"outdated"}}catch(wt){}return"production"}(ve);try{var K=window.__REACT_DEVTOOLS_APPEND_COMPONENT_STACK__!==!1,xe=window.__REACT_DEVTOOLS_BREAK_ON_CONSOLE_ERRORS__===!0;(K||xe)&&(zi(ve),Ho({appendComponentStack:K,breakOnConsoleErrors:xe}))}catch(rt){}var je=F.__REACT_DEVTOOLS_ATTACH__;if(typeof je=="function"){var Xe=je(W,Fe,ve,F);W.rendererInterfaces.set(Fe,Xe)}return W.emit("renderer",{id:Fe,renderer:ve,reactBuildType:Ge}),Fe},on:function(ve,Fe){ue[ve]||(ue[ve]=[]),ue[ve].push(Fe)},off:function(ve,Fe){if(ue[ve]){var Ge=ue[ve].indexOf(Fe);Ge!==-1&&ue[ve].splice(Ge,1),ue[ve].length||delete ue[ve]}},sub:function(ve,Fe){return W.on(ve,Fe),function(){return W.off(ve,Fe)}},supportsFiber:!0,checkDCE:function(ve){try{Function.prototype.toString.call(ve).indexOf("^_^")>-1&&(U=!0,setTimeout(function(){throw new Error("React is running in production mode, but dead code elimination has not been applied. Read how to correctly configure React for production: https://reactjs.org/link/perf-use-production-build")}))}catch(Fe){}},onCommitFiberUnmount:function(ve,Fe){var Ge=fe.get(ve);Ge!=null&&Ge.handleCommitFiberUnmount(Fe)},onCommitFiberRoot:function(ve,Fe,Ge){var K=W.getFiberRoots(ve),xe=Fe.current,je=K.has(Fe),Xe=xe.memoizedState==null||xe.memoizedState.element==null;je||Xe?je&&Xe&&K.delete(Fe):K.add(Fe);var rt=fe.get(ve);rt!=null&&rt.handleCommitFiberRoot(Fe,Ge)}};Object.defineProperty(F,"__REACT_DEVTOOLS_GLOBAL_HOOK__",{configurable:!1,enumerable:!1,get:function(){return W}})})(window);var M0=window.__REACT_DEVTOOLS_GLOBAL_HOOK__,au=[{type:1,value:7,isEnabled:!0}];function Lr(F){if(M0!=null){var R=F||{},U=R.host,H=U===void 0?"localhost":U,fe=R.nativeStyleEditorValidAttributes,ue=R.useHttps,de=ue!==void 0&&ue,W=R.port,ve=W===void 0?8097:W,Fe=R.websocket,Ge=R.resolveRNStyle,K=Ge===void 0?null:Ge,xe=R.isAppActive,je=de?"wss":"ws",Xe=null;if((xe===void 0?function(){return!0}:xe)()){var rt=null,st=[],xt=je+"://"+H+":"+ve,wt=Fe||new window.WebSocket(xt);wt.onclose=function(){rt!==null&&rt.emit("shutdown"),lt()},wt.onerror=function(){lt()},wt.onmessage=function(Rt){var yn;try{if(typeof Rt.data!="string")throw Error();yn=JSON.parse(Rt.data)}catch(sn){return void console.error("[React DevTools] Failed to parse JSON: "+Rt.data)}st.forEach(function(sn){try{sn(yn)}catch(ar){throw console.log("[React DevTools] Error calling listener",yn),console.log("error:",ar),ar}})},wt.onopen=function(){(rt=new Do({listen:function(rn){return st.push(rn),function(){var Hn=st.indexOf(rn);Hn>=0&&st.splice(Hn,1)}},send:function(rn,Hn,d0){wt.readyState===wt.OPEN?wt.send(JSON.stringify({event:rn,payload:Hn})):(rt!==null&&rt.shutdown(),lt())}})).addListener("inspectElement",function(rn){var Hn=rn.id,d0=rn.rendererID,Cr=Rt.rendererInterfaces[d0];if(Cr!=null){var He=Cr.findNativeNodesForFiberID(Hn);He!=null&&He[0]!=null&&Rt.emit("showNativeHighlight",He[0])}}),rt.addListener("updateComponentFilters",function(rn){au=rn}),window.__REACT_DEVTOOLS_COMPONENT_FILTERS__==null&&rt.send("overrideComponentFilters",au);var Rt=new I0(rt);if(Rt.addListener("shutdown",function(){M0.emit("shutdown")}),function(rn,Hn,d0){if(rn==null)return function(){};var Cr=[rn.sub("renderer-attached",function(Ne){var ft=Ne.id,St=(Ne.renderer,Ne.rendererInterface);Hn.setRendererInterface(ft,St),St.flushInitialOperations()}),rn.sub("unsupported-renderer-version",function(Ne){Hn.onUnsupportedRenderer(Ne)}),rn.sub("operations",Hn.onHookOperations),rn.sub("traceUpdates",Hn.onTraceUpdates)],He=function(Ne,ft){var St=rn.rendererInterfaces.get(Ne);St==null&&(typeof ft.findFiberByHostInstance=="function"?St=uf(rn,Ne,ft,d0):ft.ComponentTree&&(St=lf(rn,Ne,ft,d0)),St!=null&&rn.rendererInterfaces.set(Ne,St)),St!=null?rn.emit("renderer-attached",{id:Ne,renderer:ft,rendererInterface:St}):rn.emit("unsupported-renderer-version",Ne)};rn.renderers.forEach(function(Ne,ft){He(ft,Ne)}),Cr.push(rn.sub("renderer",function(Ne){var ft=Ne.id,St=Ne.renderer;He(ft,St)})),rn.emit("react-devtools",Hn),rn.reactDevtoolsAgent=Hn;var Qe=function(){Cr.forEach(function(Ne){return Ne()}),rn.rendererInterfaces.forEach(function(Ne){Ne.cleanup()}),rn.reactDevtoolsAgent=null};Hn.addListener("shutdown",Qe),Cr.push(function(){Hn.removeListener("shutdown",Qe)})}(M0,Rt,window),K!=null||M0.resolveRNStyle!=null)Gu(rt,Rt,K||M0.resolveRNStyle,fe||M0.nativeStyleEditorValidAttributes||null);else{var yn,sn,ar=function(){rt!==null&&Gu(rt,Rt,yn,sn)};M0.hasOwnProperty("resolveRNStyle")||Object.defineProperty(M0,"resolveRNStyle",{enumerable:!1,get:function(){return yn},set:function(rn){yn=rn,ar()}}),M0.hasOwnProperty("nativeStyleEditorValidAttributes")||Object.defineProperty(M0,"nativeStyleEditorValidAttributes",{enumerable:!1,get:function(){return sn},set:function(rn){sn=rn,ar()}})}}}else lt()}function lt(){Xe===null&&(Xe=setTimeout(function(){return Lr(F)},2e3))}}}])})});var rS=Me(nS=>{"use strict";Object.defineProperty(nS,"__esModule",{value:!0});eS();var _j=tS();_j.connectToDevTools()});var lS=Me(x2=>{"use strict";var iS=x2&&x2.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(x2,"__esModule",{value:!0});var oS=Ay(),yj=iS(lE()),uS=iS(hc()),no=Xy();process.env.DEV==="true"&&rS();var sS=i=>{i==null||i.unsetMeasureFunc(),i==null||i.freeRecursive()};x2.default=yj.default({schedulePassiveEffects:oS.unstable_scheduleCallback,cancelPassiveEffects:oS.unstable_cancelCallback,now:Date.now,getRootHostContext:()=>({isInsideText:!1}),prepareForCommit:()=>{},resetAfterCommit:i=>{if(i.isStaticDirty){i.isStaticDirty=!1,typeof i.onImmediateRender=="function"&&i.onImmediateRender();return}typeof i.onRender=="function"&&i.onRender()},getChildHostContext:(i,u)=>{let f=i.isInsideText,c=u==="ink-text"||u==="ink-virtual-text";return f===c?i:{isInsideText:c}},shouldSetTextContent:()=>!1,createInstance:(i,u,f,c)=>{if(c.isInsideText&&i==="ink-box")throw new Error(" can\u2019t be nested inside component");let g=i==="ink-text"&&c.isInsideText?"ink-virtual-text":i,t=no.createNode(g);for(let[C,A]of Object.entries(u))C!=="children"&&(C==="style"?no.setStyle(t,A):C==="internal_transform"?t.internal_transform=A:C==="internal_static"?t.internal_static=!0:no.setAttribute(t,C,A));return t},createTextInstance:(i,u,f)=>{if(!f.isInsideText)throw new Error(`Text string "${i}" must be rendered inside component`);return no.createTextNode(i)},resetTextContent:()=>{},hideTextInstance:i=>{no.setTextNodeValue(i,"")},unhideTextInstance:(i,u)=>{no.setTextNodeValue(i,u)},getPublicInstance:i=>i,hideInstance:i=>{var u;(u=i.yogaNode)===null||u===void 0||u.setDisplay(uS.default.DISPLAY_NONE)},unhideInstance:i=>{var u;(u=i.yogaNode)===null||u===void 0||u.setDisplay(uS.default.DISPLAY_FLEX)},appendInitialChild:no.appendChildNode,appendChild:no.appendChildNode,insertBefore:no.insertBeforeNode,finalizeInitialChildren:(i,u,f,c)=>(i.internal_static&&(c.isStaticDirty=!0,c.staticNode=i),!1),supportsMutation:!0,appendChildToContainer:no.appendChildNode,insertInContainerBefore:no.insertBeforeNode,removeChildFromContainer:(i,u)=>{no.removeChildNode(i,u),sS(u.yogaNode)},prepareUpdate:(i,u,f,c,g)=>{i.internal_static&&(g.isStaticDirty=!0);let t={},C=Object.keys(c);for(let A of C)if(c[A]!==f[A]){if(A==="style"&&typeof c.style=="object"&&typeof f.style=="object"){let D=c.style,L=f.style,N=Object.keys(D);for(let j of N){if(j==="borderStyle"||j==="borderColor"){if(typeof t.style!="object"){let $={};t.style=$}t.style.borderStyle=D.borderStyle,t.style.borderColor=D.borderColor}if(D[j]!==L[j]){if(typeof t.style!="object"){let $={};t.style=$}t.style[j]=D[j]}}continue}t[A]=c[A]}return t},commitUpdate:(i,u)=>{for(let[f,c]of Object.entries(u))f!=="children"&&(f==="style"?no.setStyle(i,c):f==="internal_transform"?i.internal_transform=c:f==="internal_static"?i.internal_static=!0:no.setAttribute(i,f,c))},commitTextUpdate:(i,u,f)=>{no.setTextNodeValue(i,f)},removeChild:(i,u)=>{no.removeChildNode(i,u),sS(u.yogaNode)}})});var cS=Me((Jb,fS)=>{"use strict";fS.exports=(i,u=1,f)=>{if(f=dt({indent:" ",includeEmptyLines:!1},f),typeof i!="string")throw new TypeError(`Expected \`input\` to be a \`string\`, got \`${typeof i}\``);if(typeof u!="number")throw new TypeError(`Expected \`count\` to be a \`number\`, got \`${typeof u}\``);if(typeof f.indent!="string")throw new TypeError(`Expected \`options.indent\` to be a \`string\`, got \`${typeof f.indent}\``);if(u===0)return i;let c=f.includeEmptyLines?/^/gm:/^(?!\s*$)/gm;return i.replace(c,f.indent.repeat(u))}});var aS=Me(k2=>{"use strict";var wj=k2&&k2.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(k2,"__esModule",{value:!0});var Vh=wj(hc());k2.default=i=>i.getComputedWidth()-i.getComputedPadding(Vh.default.EDGE_LEFT)-i.getComputedPadding(Vh.default.EDGE_RIGHT)-i.getComputedBorder(Vh.default.EDGE_LEFT)-i.getComputedBorder(Vh.default.EDGE_RIGHT)});var pS=Me((Zb,dS)=>{dS.exports={single:{topLeft:"\u250C",topRight:"\u2510",bottomRight:"\u2518",bottomLeft:"\u2514",vertical:"\u2502",horizontal:"\u2500"},double:{topLeft:"\u2554",topRight:"\u2557",bottomRight:"\u255D",bottomLeft:"\u255A",vertical:"\u2551",horizontal:"\u2550"},round:{topLeft:"\u256D",topRight:"\u256E",bottomRight:"\u256F",bottomLeft:"\u2570",vertical:"\u2502",horizontal:"\u2500"},bold:{topLeft:"\u250F",topRight:"\u2513",bottomRight:"\u251B",bottomLeft:"\u2517",vertical:"\u2503",horizontal:"\u2501"},singleDouble:{topLeft:"\u2553",topRight:"\u2556",bottomRight:"\u255C",bottomLeft:"\u2559",vertical:"\u2551",horizontal:"\u2500"},doubleSingle:{topLeft:"\u2552",topRight:"\u2555",bottomRight:"\u255B",bottomLeft:"\u2558",vertical:"\u2502",horizontal:"\u2550"},classic:{topLeft:"+",topRight:"+",bottomRight:"+",bottomLeft:"+",vertical:"|",horizontal:"-"}}});var mS=Me((eG,m3)=>{"use strict";var hS=pS();m3.exports=hS;m3.exports.default=hS});var gS=Me((tG,vS)=>{"use strict";vS.exports=(i,u=process.argv)=>{let f=i.startsWith("-")?"":i.length===1?"-":"--",c=u.indexOf(f+i),g=u.indexOf("--");return c!==-1&&(g===-1||c{"use strict";var Dj=require("os"),yS=require("tty"),Pu=gS(),{env:oi}=process,qf;Pu("no-color")||Pu("no-colors")||Pu("color=false")||Pu("color=never")?qf=0:(Pu("color")||Pu("colors")||Pu("color=true")||Pu("color=always"))&&(qf=1);"FORCE_COLOR"in oi&&(oi.FORCE_COLOR==="true"?qf=1:oi.FORCE_COLOR==="false"?qf=0:qf=oi.FORCE_COLOR.length===0?1:Math.min(parseInt(oi.FORCE_COLOR,10),3));function v3(i){return i===0?!1:{level:i,hasBasic:!0,has256:i>=2,has16m:i>=3}}function g3(i,u){if(qf===0)return 0;if(Pu("color=16m")||Pu("color=full")||Pu("color=truecolor"))return 3;if(Pu("color=256"))return 2;if(i&&!u&&qf===void 0)return 0;let f=qf||0;if(oi.TERM==="dumb")return f;if(process.platform==="win32"){let c=Dj.release().split(".");return Number(c[0])>=10&&Number(c[2])>=10586?Number(c[2])>=14931?3:2:1}if("CI"in oi)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI"].some(c=>c in oi)||oi.CI_NAME==="codeship"?1:f;if("TEAMCITY_VERSION"in oi)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(oi.TEAMCITY_VERSION)?1:0;if("GITHUB_ACTIONS"in oi)return 1;if(oi.COLORTERM==="truecolor")return 3;if("TERM_PROGRAM"in oi){let c=parseInt((oi.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(oi.TERM_PROGRAM){case"iTerm.app":return c>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(oi.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(oi.TERM)||"COLORTERM"in oi?1:f}function Ej(i){let u=g3(i,i&&i.isTTY);return v3(u)}_S.exports={supportsColor:Ej,stdout:v3(g3(!0,yS.isatty(1))),stderr:v3(g3(!0,yS.isatty(2)))}});var ES=Me((rG,DS)=>{"use strict";var Sj=(i,u,f)=>{let c=i.indexOf(u);if(c===-1)return i;let g=u.length,t=0,C="";do C+=i.substr(t,c-t)+u+f,t=c+g,c=i.indexOf(u,t);while(c!==-1);return C+=i.substr(t),C},Cj=(i,u,f,c)=>{let g=0,t="";do{let C=i[c-1]==="\r";t+=i.substr(g,(C?c-1:c)-g)+u+(C?`\r -`:` -`)+f,g=c+1,c=i.indexOf(` -`,g)}while(c!==-1);return t+=i.substr(g),t};DS.exports={stringReplaceAll:Sj,stringEncaseCRLFWithFirstIndex:Cj}});var kS=Me((iG,SS)=>{"use strict";var Tj=/(?:\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi,CS=/(?:^|\.)(\w+)(?:\(([^)]*)\))?/g,xj=/^(['"])((?:\\.|(?!\1)[^\\])*)\1$/,kj=/\\(u(?:[a-f\d]{4}|{[a-f\d]{1,6}})|x[a-f\d]{2}|.)|([^\\])/gi,Aj=new Map([["n",` -`],["r","\r"],["t"," "],["b","\b"],["f","\f"],["v","\v"],["0","\0"],["\\","\\"],["e",""],["a","\x07"]]);function TS(i){let u=i[0]==="u",f=i[1]==="{";return u&&!f&&i.length===5||i[0]==="x"&&i.length===3?String.fromCharCode(parseInt(i.slice(1),16)):u&&f?String.fromCodePoint(parseInt(i.slice(2,-1),16)):Aj.get(i)||i}function Oj(i,u){let f=[],c=u.trim().split(/\s*,\s*/g),g;for(let t of c){let C=Number(t);if(!Number.isNaN(C))f.push(C);else if(g=t.match(xj))f.push(g[2].replace(kj,(A,x,D)=>x?TS(x):D));else throw new Error(`Invalid Chalk template style argument: ${t} (in style '${i}')`)}return f}function Ij(i){CS.lastIndex=0;let u=[],f;for(;(f=CS.exec(i))!==null;){let c=f[1];if(f[2]){let g=Oj(c,f[2]);u.push([c].concat(g))}else u.push([c])}return u}function xS(i,u){let f={};for(let g of u)for(let t of g.styles)f[t[0]]=g.inverse?null:t.slice(1);let c=i;for(let[g,t]of Object.entries(f))if(!!Array.isArray(t)){if(!(g in c))throw new Error(`Unknown Chalk style: ${g}`);c=t.length>0?c[g](...t):c[g]}return c}SS.exports=(i,u)=>{let f=[],c=[],g=[];if(u.replace(Tj,(t,C,A,x,D,L)=>{if(C)g.push(TS(C));else if(x){let N=g.join("");g=[],c.push(f.length===0?N:xS(i,f)(N)),f.push({inverse:A,styles:Ij(x)})}else if(D){if(f.length===0)throw new Error("Found extraneous } in Chalk template literal");c.push(xS(i,f)(g.join(""))),g=[],f.pop()}else g.push(L)}),c.push(g.join("")),f.length>0){let t=`Chalk template literal is missing ${f.length} closing bracket${f.length===1?"":"s"} (\`}\`)`;throw new Error(t)}return c.join("")}});var Jh=Me((oG,AS)=>{"use strict";var A2=Rh(),{stdout:_3,stderr:y3}=wS(),{stringReplaceAll:Pj,stringEncaseCRLFWithFirstIndex:Mj}=ES(),{isArray:Yh}=Array,OS=["ansi","ansi","ansi256","ansi16m"],ka=Object.create(null),Fj=(i,u={})=>{if(u.level&&!(Number.isInteger(u.level)&&u.level>=0&&u.level<=3))throw new Error("The `level` option should be an integer from 0 to 3");let f=_3?_3.level:0;i.level=u.level===void 0?f:u.level},IS=class{constructor(u){return PS(u)}},PS=i=>{let u={};return Fj(u,i),u.template=(...f)=>MS(u.template,...f),Object.setPrototypeOf(u,$h.prototype),Object.setPrototypeOf(u.template,u),u.template.constructor=()=>{throw new Error("`chalk.constructor()` is deprecated. Use `new chalk.Instance()` instead.")},u.template.Instance=IS,u.template};function $h(i){return PS(i)}for(let[i,u]of Object.entries(A2))ka[i]={get(){let f=Kh(this,w3(u.open,u.close,this._styler),this._isEmpty);return Object.defineProperty(this,i,{value:f}),f}};ka.visible={get(){let i=Kh(this,this._styler,!0);return Object.defineProperty(this,"visible",{value:i}),i}};var LS=["rgb","hex","keyword","hsl","hsv","hwb","ansi","ansi256"];for(let i of LS)ka[i]={get(){let{level:u}=this;return function(...f){let c=w3(A2.color[OS[u]][i](...f),A2.color.close,this._styler);return Kh(this,c,this._isEmpty)}}};for(let i of LS){let u="bg"+i[0].toUpperCase()+i.slice(1);ka[u]={get(){let{level:f}=this;return function(...c){let g=w3(A2.bgColor[OS[f]][i](...c),A2.bgColor.close,this._styler);return Kh(this,g,this._isEmpty)}}}}var Lj=Object.defineProperties(()=>{},zn(dt({},ka),{level:{enumerable:!0,get(){return this._generator.level},set(i){this._generator.level=i}}})),w3=(i,u,f)=>{let c,g;return f===void 0?(c=i,g=u):(c=f.openAll+i,g=u+f.closeAll),{open:i,close:u,openAll:c,closeAll:g,parent:f}},Kh=(i,u,f)=>{let c=(...g)=>Yh(g[0])&&Yh(g[0].raw)?RS(c,MS(c,...g)):RS(c,g.length===1?""+g[0]:g.join(" "));return Object.setPrototypeOf(c,Lj),c._generator=i,c._styler=u,c._isEmpty=f,c},RS=(i,u)=>{if(i.level<=0||!u)return i._isEmpty?"":u;let f=i._styler;if(f===void 0)return u;let{openAll:c,closeAll:g}=f;if(u.indexOf("")!==-1)for(;f!==void 0;)u=Pj(u,f.close,f.open),f=f.parent;let t=u.indexOf(` -`);return t!==-1&&(u=Mj(u,g,c,t)),c+u+g},D3,MS=(i,...u)=>{let[f]=u;if(!Yh(f)||!Yh(f.raw))return u.join(" ");let c=u.slice(1),g=[f.raw[0]];for(let t=1;t{"use strict";var Rj=O2&&O2.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(O2,"__esModule",{value:!0});var I2=Rj(Jh()),Nj=/^(rgb|hsl|hsv|hwb)\(\s?(\d+),\s?(\d+),\s?(\d+)\s?\)$/,Bj=/^(ansi|ansi256)\(\s?(\d+)\s?\)$/,Qh=(i,u)=>u==="foreground"?i:"bg"+i[0].toUpperCase()+i.slice(1);O2.default=(i,u,f)=>{if(!u)return i;if(u in I2.default){let g=Qh(u,f);return I2.default[g](i)}if(u.startsWith("#")){let g=Qh("hex",f);return I2.default[g](u)(i)}if(u.startsWith("ansi")){let g=Bj.exec(u);if(!g)return i;let t=Qh(g[1],f),C=Number(g[2]);return I2.default[t](C)(i)}if(u.startsWith("rgb")||u.startsWith("hsl")||u.startsWith("hsv")||u.startsWith("hwb")){let g=Nj.exec(u);if(!g)return i;let t=Qh(g[1],f),C=Number(g[2]),A=Number(g[3]),x=Number(g[4]);return I2.default[t](C,A,x)(i)}return i}});var BS=Me(P2=>{"use strict";var NS=P2&&P2.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(P2,"__esModule",{value:!0});var jj=NS(mS()),S3=NS(E3());P2.default=(i,u,f,c)=>{if(typeof f.style.borderStyle=="string"){let g=f.yogaNode.getComputedWidth(),t=f.yogaNode.getComputedHeight(),C=f.style.borderColor,A=jj.default[f.style.borderStyle],x=S3.default(A.topLeft+A.horizontal.repeat(g-2)+A.topRight,C,"foreground"),D=(S3.default(A.vertical,C,"foreground")+` -`).repeat(t-2),L=S3.default(A.bottomLeft+A.horizontal.repeat(g-2)+A.bottomRight,C,"foreground");c.write(i,u,x,{transformers:[]}),c.write(i,u+1,D,{transformers:[]}),c.write(i+g-1,u+1,D,{transformers:[]}),c.write(i,u+t-1,L,{transformers:[]})}}});var US=Me(M2=>{"use strict";var _c=M2&&M2.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(M2,"__esModule",{value:!0});var Uj=_c(hc()),qj=_c(jy()),zj=_c(cS()),Wj=_c(Yy()),Hj=_c(aS()),bj=_c(Ky()),Gj=_c(BS()),Vj=(i,u)=>{var f;let c=(f=i.childNodes[0])===null||f===void 0?void 0:f.yogaNode;if(c){let g=c.getComputedLeft(),t=c.getComputedTop();u=` -`.repeat(t)+zj.default(u,g)}return u},jS=(i,u,f)=>{var c;let{offsetX:g=0,offsetY:t=0,transformers:C=[],skipStaticElements:A}=f;if(A&&i.internal_static)return;let{yogaNode:x}=i;if(x){if(x.getDisplay()===Uj.default.DISPLAY_NONE)return;let D=g+x.getComputedLeft(),L=t+x.getComputedTop(),N=C;if(typeof i.internal_transform=="function"&&(N=[i.internal_transform,...C]),i.nodeName==="ink-text"){let j=bj.default(i);if(j.length>0){let $=qj.default(j),h=Hj.default(x);if($>h){let re=(c=i.style.textWrap)!==null&&c!==void 0?c:"wrap";j=Wj.default(j,h,re)}j=Vj(i,j),u.write(D,L,j,{transformers:N})}return}if(i.nodeName==="ink-box"&&Gj.default(D,L,i,u),i.nodeName==="ink-root"||i.nodeName==="ink-box")for(let j of i.childNodes)jS(j,u,{offsetX:D,offsetY:L,transformers:N,skipStaticElements:A})}};M2.default=jS});var zS=Me((fG,qS)=>{"use strict";qS.exports=i=>{i=Object.assign({onlyFirst:!1},i);let u=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:[a-zA-Z\\d]*(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(u,i.onlyFirst?void 0:"g")}});var HS=Me((cG,C3)=>{"use strict";var Yj=zS(),WS=i=>typeof i=="string"?i.replace(Yj(),""):i;C3.exports=WS;C3.exports.default=WS});var VS=Me((aG,bS)=>{"use strict";var GS="[\uD800-\uDBFF][\uDC00-\uDFFF]";bS.exports=i=>i&&i.exact?new RegExp(`^${GS}$`):new RegExp(GS,"g")});var $S=Me((dG,T3)=>{"use strict";var $j=HS(),Kj=VS(),YS=i=>$j(i).replace(Kj()," ").length;T3.exports=YS;T3.exports.default=YS});var QS=Me(F2=>{"use strict";var KS=F2&&F2.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(F2,"__esModule",{value:!0});var XS=KS(Gy()),Xj=KS($S()),JS=class{constructor(u){this.writes=[];let{width:f,height:c}=u;this.width=f,this.height=c}write(u,f,c,g){let{transformers:t}=g;!c||this.writes.push({x:u,y:f,text:c,transformers:t})}get(){let u=[];for(let c=0;cc.trimRight()).join(` -`),height:u.length}}};F2.default=JS});var t5=Me(L2=>{"use strict";var x3=L2&&L2.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(L2,"__esModule",{value:!0});var Jj=x3(hc()),ZS=x3(US()),e5=x3(QS());L2.default=(i,u)=>{var f;if(i.yogaNode.setWidth(u),i.yogaNode){i.yogaNode.calculateLayout(void 0,void 0,Jj.default.DIRECTION_LTR);let c=new e5.default({width:i.yogaNode.getComputedWidth(),height:i.yogaNode.getComputedHeight()});ZS.default(i,c,{skipStaticElements:!0});let g;((f=i.staticNode)===null||f===void 0?void 0:f.yogaNode)&&(g=new e5.default({width:i.staticNode.yogaNode.getComputedWidth(),height:i.staticNode.yogaNode.getComputedHeight()}),ZS.default(i.staticNode,g,{skipStaticElements:!1}));let{output:t,height:C}=c.get();return{output:t,outputHeight:C,staticOutput:g?`${g.get().output} -`:""}}return{output:"",outputHeight:0,staticOutput:""}}});var o5=Me((mG,n5)=>{"use strict";var r5=require("stream"),i5=["assert","count","countReset","debug","dir","dirxml","error","group","groupCollapsed","groupEnd","info","log","table","time","timeEnd","timeLog","trace","warn"],k3={},Qj=i=>{let u=new r5.PassThrough,f=new r5.PassThrough;u.write=g=>i("stdout",g),f.write=g=>i("stderr",g);let c=new console.Console(u,f);for(let g of i5)k3[g]=console[g],console[g]=c[g];return()=>{for(let g of i5)console[g]=k3[g];k3={}}};n5.exports=Qj});var O3=Me(A3=>{"use strict";Object.defineProperty(A3,"__esModule",{value:!0});A3.default=new WeakMap});var P3=Me(I3=>{"use strict";Object.defineProperty(I3,"__esModule",{value:!0});var Zj=lr(),u5=Zj.createContext({exit:()=>{}});u5.displayName="InternalAppContext";I3.default=u5});var F3=Me(M3=>{"use strict";Object.defineProperty(M3,"__esModule",{value:!0});var eU=lr(),s5=eU.createContext({stdin:void 0,setRawMode:()=>{},isRawModeSupported:!1,internal_exitOnCtrlC:!0});s5.displayName="InternalStdinContext";M3.default=s5});var R3=Me(L3=>{"use strict";Object.defineProperty(L3,"__esModule",{value:!0});var tU=lr(),l5=tU.createContext({stdout:void 0,write:()=>{}});l5.displayName="InternalStdoutContext";L3.default=l5});var B3=Me(N3=>{"use strict";Object.defineProperty(N3,"__esModule",{value:!0});var nU=lr(),f5=nU.createContext({stderr:void 0,write:()=>{}});f5.displayName="InternalStderrContext";N3.default=f5});var Zh=Me(j3=>{"use strict";Object.defineProperty(j3,"__esModule",{value:!0});var rU=lr(),c5=rU.createContext({activeId:void 0,add:()=>{},remove:()=>{},activate:()=>{},deactivate:()=>{},enableFocus:()=>{},disableFocus:()=>{},focusNext:()=>{},focusPrevious:()=>{}});c5.displayName="InternalFocusContext";j3.default=c5});var d5=Me((EG,a5)=>{"use strict";var iU=/[|\\{}()[\]^$+*?.-]/g;a5.exports=i=>{if(typeof i!="string")throw new TypeError("Expected a string");return i.replace(iU,"\\$&")}});var v5=Me((SG,p5)=>{"use strict";var oU=d5(),h5=[].concat(require("module").builtinModules,"bootstrap_node","node").map(i=>new RegExp(`(?:\\(${i}\\.js:\\d+:\\d+\\)$|^\\s*at ${i}\\.js:\\d+:\\d+$)`));h5.push(/\(internal\/[^:]+:\d+:\d+\)$/,/\s*at internal\/[^:]+:\d+:\d+$/,/\/\.node-spawn-wrap-\w+-\w+\/node:\d+:\d+\)?$/);var em=class{constructor(u){u=dt({ignoredPackages:[]},u),"internals"in u||(u.internals=em.nodeInternals()),"cwd"in u||(u.cwd=process.cwd()),this._cwd=u.cwd.replace(/\\/g,"/"),this._internals=[].concat(u.internals,uU(u.ignoredPackages)),this._wrapCallSite=u.wrapCallSite||!1}static nodeInternals(){return[...h5]}clean(u,f=0){f=" ".repeat(f),Array.isArray(u)||(u=u.split(` -`)),!/^\s*at /.test(u[0])&&/^\s*at /.test(u[1])&&(u=u.slice(1));let c=!1,g=null,t=[];return u.forEach(C=>{if(C=C.replace(/\\/g,"/"),this._internals.some(x=>x.test(C)))return;let A=/^\s*at /.test(C);c?C=C.trimEnd().replace(/^(\s+)at /,"$1"):(C=C.trim(),A&&(C=C.slice(3))),C=C.replace(`${this._cwd}/`,""),C&&(A?(g&&(t.push(g),g=null),t.push(C)):(c=!0,g=C))}),t.map(C=>`${f}${C} -`).join("")}captureString(u,f=this.captureString){typeof u=="function"&&(f=u,u=Infinity);let{stackTraceLimit:c}=Error;u&&(Error.stackTraceLimit=u);let g={};Error.captureStackTrace(g,f);let{stack:t}=g;return Error.stackTraceLimit=c,this.clean(t)}capture(u,f=this.capture){typeof u=="function"&&(f=u,u=Infinity);let{prepareStackTrace:c,stackTraceLimit:g}=Error;Error.prepareStackTrace=(A,x)=>this._wrapCallSite?x.map(this._wrapCallSite):x,u&&(Error.stackTraceLimit=u);let t={};Error.captureStackTrace(t,f);let{stack:C}=t;return Object.assign(Error,{prepareStackTrace:c,stackTraceLimit:g}),C}at(u=this.at){let[f]=this.capture(1,u);if(!f)return{};let c={line:f.getLineNumber(),column:f.getColumnNumber()};m5(c,f.getFileName(),this._cwd),f.isConstructor()&&(c.constructor=!0),f.isEval()&&(c.evalOrigin=f.getEvalOrigin()),f.isNative()&&(c.native=!0);let g;try{g=f.getTypeName()}catch(A){}g&&g!=="Object"&&g!=="[object Object]"&&(c.type=g);let t=f.getFunctionName();t&&(c.function=t);let C=f.getMethodName();return C&&t!==C&&(c.method=C),c}parseLine(u){let f=u&&u.match(sU);if(!f)return null;let c=f[1]==="new",g=f[2],t=f[3],C=f[4],A=Number(f[5]),x=Number(f[6]),D=f[7],L=f[8],N=f[9],j=f[10]==="native",$=f[11]===")",h,re={};if(L&&(re.line=Number(L)),N&&(re.column=Number(N)),$&&D){let ce=0;for(let Q=D.length-1;Q>0;Q--)if(D.charAt(Q)===")")ce++;else if(D.charAt(Q)==="("&&D.charAt(Q-1)===" "&&(ce--,ce===-1&&D.charAt(Q-1)===" ")){let oe=D.slice(0,Q-1);D=D.slice(Q+1),g+=` (${oe}`;break}}if(g){let ce=g.match(lU);ce&&(g=ce[1],h=ce[2])}return m5(re,D,this._cwd),c&&(re.constructor=!0),t&&(re.evalOrigin=t,re.evalLine=A,re.evalColumn=x,re.evalFile=C&&C.replace(/\\/g,"/")),j&&(re.native=!0),g&&(re.function=g),h&&g!==h&&(re.method=h),re}};function m5(i,u,f){u&&(u=u.replace(/\\/g,"/"),u.startsWith(`${f}/`)&&(u=u.slice(f.length+1)),i.file=u)}function uU(i){if(i.length===0)return[];let u=i.map(f=>oU(f));return new RegExp(`[/\\\\]node_modules[/\\\\](?:${u.join("|")})[/\\\\][^:]+:\\d+:\\d+`)}var sU=new RegExp("^(?:\\s*at )?(?:(new) )?(?:(.*?) \\()?(?:eval at ([^ ]+) \\((.+?):(\\d+):(\\d+)\\), )?(?:(.+?):(\\d+):(\\d+)|(native))(\\)?)$"),lU=/^(.*?) \[as (.*?)\]$/;p5.exports=em});var _5=Me((CG,g5)=>{"use strict";g5.exports=(i,u)=>i.replace(/^\t+/gm,f=>" ".repeat(f.length*(u||2)))});var w5=Me((TG,y5)=>{"use strict";var fU=_5(),cU=(i,u)=>{let f=[],c=i-u,g=i+u;for(let t=c;t<=g;t++)f.push(t);return f};y5.exports=(i,u,f)=>{if(typeof i!="string")throw new TypeError("Source code is missing.");if(!u||u<1)throw new TypeError("Line number must start from `1`.");if(i=fU(i).split(/\r?\n/),!(u>i.length))return f=dt({around:3},f),cU(u,f.around).filter(c=>i[c-1]!==void 0).map(c=>({line:c,value:i[c-1]}))}});var tm=Me(hs=>{"use strict";var aU=hs&&hs.__createBinding||(Object.create?function(i,u,f,c){c===void 0&&(c=f),Object.defineProperty(i,c,{enumerable:!0,get:function(){return u[f]}})}:function(i,u,f,c){c===void 0&&(c=f),i[c]=u[f]}),dU=hs&&hs.__setModuleDefault||(Object.create?function(i,u){Object.defineProperty(i,"default",{enumerable:!0,value:u})}:function(i,u){i.default=u}),pU=hs&&hs.__importStar||function(i){if(i&&i.__esModule)return i;var u={};if(i!=null)for(var f in i)f!=="default"&&Object.hasOwnProperty.call(i,f)&&aU(u,i,f);return dU(u,i),u},hU=hs&&hs.__rest||function(i,u){var f={};for(var c in i)Object.prototype.hasOwnProperty.call(i,c)&&u.indexOf(c)<0&&(f[c]=i[c]);if(i!=null&&typeof Object.getOwnPropertySymbols=="function")for(var g=0,c=Object.getOwnPropertySymbols(i);g{var{children:f}=i,c=hU(i,["children"]);let g=Object.assign(Object.assign({},c),{marginLeft:c.marginLeft||c.marginX||c.margin||0,marginRight:c.marginRight||c.marginX||c.margin||0,marginTop:c.marginTop||c.marginY||c.margin||0,marginBottom:c.marginBottom||c.marginY||c.margin||0,paddingLeft:c.paddingLeft||c.paddingX||c.padding||0,paddingRight:c.paddingRight||c.paddingX||c.padding||0,paddingTop:c.paddingTop||c.paddingY||c.padding||0,paddingBottom:c.paddingBottom||c.paddingY||c.padding||0});return D5.default.createElement("ink-box",{ref:u,style:g},f)});U3.displayName="Box";U3.defaultProps={flexDirection:"row",flexGrow:0,flexShrink:1};hs.default=U3});var W3=Me(R2=>{"use strict";var q3=R2&&R2.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(R2,"__esModule",{value:!0});var mU=q3(lr()),Aa=q3(Jh()),E5=q3(E3()),z3=({color:i,backgroundColor:u,dimColor:f,bold:c,italic:g,underline:t,strikethrough:C,inverse:A,wrap:x,children:D})=>{if(D==null)return null;let L=N=>(f&&(N=Aa.default.dim(N)),i&&(N=E5.default(N,i,"foreground")),u&&(N=E5.default(N,u,"background")),c&&(N=Aa.default.bold(N)),g&&(N=Aa.default.italic(N)),t&&(N=Aa.default.underline(N)),C&&(N=Aa.default.strikethrough(N)),A&&(N=Aa.default.inverse(N)),N);return mU.default.createElement("ink-text",{style:{flexGrow:0,flexShrink:1,flexDirection:"row",textWrap:x},internal_transform:L},D)};z3.displayName="Text";z3.defaultProps={dimColor:!1,bold:!1,italic:!1,underline:!1,strikethrough:!1,wrap:"wrap"};R2.default=z3});var x5=Me(ms=>{"use strict";var vU=ms&&ms.__createBinding||(Object.create?function(i,u,f,c){c===void 0&&(c=f),Object.defineProperty(i,c,{enumerable:!0,get:function(){return u[f]}})}:function(i,u,f,c){c===void 0&&(c=f),i[c]=u[f]}),gU=ms&&ms.__setModuleDefault||(Object.create?function(i,u){Object.defineProperty(i,"default",{enumerable:!0,value:u})}:function(i,u){i.default=u}),_U=ms&&ms.__importStar||function(i){if(i&&i.__esModule)return i;var u={};if(i!=null)for(var f in i)f!=="default"&&Object.hasOwnProperty.call(i,f)&&vU(u,i,f);return gU(u,i),u},N2=ms&&ms.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(ms,"__esModule",{value:!0});var S5=_U(require("fs")),ui=N2(lr()),C5=N2(v5()),yU=N2(w5()),ef=N2(tm()),il=N2(W3()),T5=new C5.default({cwd:process.cwd(),internals:C5.default.nodeInternals()}),wU=({error:i})=>{let u=i.stack?i.stack.split(` -`).slice(1):void 0,f=u?T5.parseLine(u[0]):void 0,c,g=0;if((f==null?void 0:f.file)&&(f==null?void 0:f.line)&&S5.existsSync(f.file)){let t=S5.readFileSync(f.file,"utf8");if(c=yU.default(t,f.line),c)for(let{line:C}of c)g=Math.max(g,String(C).length)}return ui.default.createElement(ef.default,{flexDirection:"column",padding:1},ui.default.createElement(ef.default,null,ui.default.createElement(il.default,{backgroundColor:"red",color:"white"}," ","ERROR"," "),ui.default.createElement(il.default,null," ",i.message)),f&&ui.default.createElement(ef.default,{marginTop:1},ui.default.createElement(il.default,{dimColor:!0},f.file,":",f.line,":",f.column)),f&&c&&ui.default.createElement(ef.default,{marginTop:1,flexDirection:"column"},c.map(({line:t,value:C})=>ui.default.createElement(ef.default,{key:t},ui.default.createElement(ef.default,{width:g+1},ui.default.createElement(il.default,{dimColor:t!==f.line,backgroundColor:t===f.line?"red":void 0,color:t===f.line?"white":void 0},String(t).padStart(g," "),":")),ui.default.createElement(il.default,{key:t,backgroundColor:t===f.line?"red":void 0,color:t===f.line?"white":void 0}," "+C)))),i.stack&&ui.default.createElement(ef.default,{marginTop:1,flexDirection:"column"},i.stack.split(` -`).slice(1).map(t=>{let C=T5.parseLine(t);return C?ui.default.createElement(ef.default,{key:t},ui.default.createElement(il.default,{dimColor:!0},"- "),ui.default.createElement(il.default,{dimColor:!0,bold:!0},C.function),ui.default.createElement(il.default,{dimColor:!0,color:"gray"}," ","(",C.file,":",C.line,":",C.column,")")):ui.default.createElement(ef.default,{key:t},ui.default.createElement(il.default,{dimColor:!0},"- "),ui.default.createElement(il.default,{dimColor:!0,bold:!0},t))})))};ms.default=wU});var A5=Me(vs=>{"use strict";var DU=vs&&vs.__createBinding||(Object.create?function(i,u,f,c){c===void 0&&(c=f),Object.defineProperty(i,c,{enumerable:!0,get:function(){return u[f]}})}:function(i,u,f,c){c===void 0&&(c=f),i[c]=u[f]}),EU=vs&&vs.__setModuleDefault||(Object.create?function(i,u){Object.defineProperty(i,"default",{enumerable:!0,value:u})}:function(i,u){i.default=u}),SU=vs&&vs.__importStar||function(i){if(i&&i.__esModule)return i;var u={};if(i!=null)for(var f in i)f!=="default"&&Object.hasOwnProperty.call(i,f)&&DU(u,i,f);return EU(u,i),u},yc=vs&&vs.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(vs,"__esModule",{value:!0});var wc=SU(lr()),k5=yc(gy()),CU=yc(P3()),TU=yc(F3()),xU=yc(R3()),kU=yc(B3()),AU=yc(Zh()),OU=yc(x5()),IU=" ",PU="",MU="",H3=class extends wc.PureComponent{constructor(){super(...arguments);this.state={isFocusEnabled:!0,activeFocusId:void 0,focusables:[],error:void 0},this.rawModeEnabledCount=0,this.handleSetRawMode=u=>{let{stdin:f}=this.props;if(!this.isRawModeSupported())throw f===process.stdin?new Error(`Raw mode is not supported on the current process.stdin, which Ink uses as input stream by default. -Read about how to prevent this error on https://github.com/vadimdemedes/ink/#israwmodesupported`):new Error(`Raw mode is not supported on the stdin provided to Ink. -Read about how to prevent this error on https://github.com/vadimdemedes/ink/#israwmodesupported`);if(f.setEncoding("utf8"),u){this.rawModeEnabledCount===0&&(f.addListener("data",this.handleInput),f.resume(),f.setRawMode(!0)),this.rawModeEnabledCount++;return}--this.rawModeEnabledCount==0&&(f.setRawMode(!1),f.removeListener("data",this.handleInput),f.pause())},this.handleInput=u=>{u===""&&this.props.exitOnCtrlC&&this.handleExit(),u===MU&&this.state.activeFocusId&&this.setState({activeFocusId:void 0}),this.state.isFocusEnabled&&this.state.focusables.length>0&&(u===IU&&this.focusNext(),u===PU&&this.focusPrevious())},this.handleExit=u=>{this.isRawModeSupported()&&this.handleSetRawMode(!1),this.props.onExit(u)},this.enableFocus=()=>{this.setState({isFocusEnabled:!0})},this.disableFocus=()=>{this.setState({isFocusEnabled:!1})},this.focusNext=()=>{this.setState(u=>{let f=u.focusables[0].id;return{activeFocusId:this.findNextFocusable(u)||f}})},this.focusPrevious=()=>{this.setState(u=>{let f=u.focusables[u.focusables.length-1].id;return{activeFocusId:this.findPreviousFocusable(u)||f}})},this.addFocusable=(u,{autoFocus:f})=>{this.setState(c=>{let g=c.activeFocusId;return!g&&f&&(g=u),{activeFocusId:g,focusables:[...c.focusables,{id:u,isActive:!0}]}})},this.removeFocusable=u=>{this.setState(f=>({activeFocusId:f.activeFocusId===u?void 0:f.activeFocusId,focusables:f.focusables.filter(c=>c.id!==u)}))},this.activateFocusable=u=>{this.setState(f=>({focusables:f.focusables.map(c=>c.id!==u?c:{id:u,isActive:!0})}))},this.deactivateFocusable=u=>{this.setState(f=>({activeFocusId:f.activeFocusId===u?void 0:f.activeFocusId,focusables:f.focusables.map(c=>c.id!==u?c:{id:u,isActive:!1})}))},this.findNextFocusable=u=>{let f=u.focusables.findIndex(c=>c.id===u.activeFocusId);for(let c=f+1;c{let f=u.focusables.findIndex(c=>c.id===u.activeFocusId);for(let c=f-1;c>=0;c--)if(u.focusables[c].isActive)return u.focusables[c].id}}static getDerivedStateFromError(u){return{error:u}}isRawModeSupported(){return this.props.stdin.isTTY}render(){return wc.default.createElement(CU.default.Provider,{value:{exit:this.handleExit}},wc.default.createElement(TU.default.Provider,{value:{stdin:this.props.stdin,setRawMode:this.handleSetRawMode,isRawModeSupported:this.isRawModeSupported(),internal_exitOnCtrlC:this.props.exitOnCtrlC}},wc.default.createElement(xU.default.Provider,{value:{stdout:this.props.stdout,write:this.props.writeToStdout}},wc.default.createElement(kU.default.Provider,{value:{stderr:this.props.stderr,write:this.props.writeToStderr}},wc.default.createElement(AU.default.Provider,{value:{activeId:this.state.activeFocusId,add:this.addFocusable,remove:this.removeFocusable,activate:this.activateFocusable,deactivate:this.deactivateFocusable,enableFocus:this.enableFocus,disableFocus:this.disableFocus,focusNext:this.focusNext,focusPrevious:this.focusPrevious}},this.state.error?wc.default.createElement(OU.default,{error:this.state.error}):this.props.children)))))}componentDidMount(){k5.default.hide(this.props.stdout)}componentWillUnmount(){k5.default.show(this.props.stdout),this.isRawModeSupported()&&this.handleSetRawMode(!1)}componentDidCatch(u){this.handleExit(u)}};vs.default=H3;H3.displayName="InternalApp"});var M5=Me(gs=>{"use strict";var FU=gs&&gs.__createBinding||(Object.create?function(i,u,f,c){c===void 0&&(c=f),Object.defineProperty(i,c,{enumerable:!0,get:function(){return u[f]}})}:function(i,u,f,c){c===void 0&&(c=f),i[c]=u[f]}),LU=gs&&gs.__setModuleDefault||(Object.create?function(i,u){Object.defineProperty(i,"default",{enumerable:!0,value:u})}:function(i,u){i.default=u}),RU=gs&&gs.__importStar||function(i){if(i&&i.__esModule)return i;var u={};if(i!=null)for(var f in i)f!=="default"&&Object.hasOwnProperty.call(i,f)&&FU(u,i,f);return LU(u,i),u},_s=gs&&gs.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(gs,"__esModule",{value:!0});var NU=_s(lr()),O5=AD(),BU=_s(WD()),jU=_s(ay()),UU=_s(KD()),qU=_s(JD()),nm=_s(lS()),zU=_s(t5()),WU=_s(vy()),HU=_s(o5()),bU=RU(Xy()),GU=_s(O3()),VU=_s(A5()),Oa=process.env.CI==="false"?!1:UU.default,I5=()=>{},P5=class{constructor(u){this.resolveExitPromise=()=>{},this.rejectExitPromise=()=>{},this.unsubscribeExit=()=>{},this.onRender=()=>{if(this.isUnmounted)return;let{output:f,outputHeight:c,staticOutput:g}=zU.default(this.rootNode,this.options.stdout.columns||80),t=g&&g!==` -`;if(this.options.debug){t&&(this.fullStaticOutput+=g),this.options.stdout.write(this.fullStaticOutput+f);return}if(Oa){t&&this.options.stdout.write(g),this.lastOutput=f;return}if(t&&(this.fullStaticOutput+=g),c>=this.options.stdout.rows){this.options.stdout.write(jU.default.clearTerminal+this.fullStaticOutput+f),this.lastOutput=f;return}t&&(this.log.clear(),this.options.stdout.write(g),this.log(f)),!t&&f!==this.lastOutput&&this.throttledLog(f),this.lastOutput=f},qU.default(this),this.options=u,this.rootNode=bU.createNode("ink-root"),this.rootNode.onRender=u.debug?this.onRender:O5.throttle(this.onRender,32,{leading:!0,trailing:!0}),this.rootNode.onImmediateRender=this.onRender,this.log=BU.default.create(u.stdout),this.throttledLog=u.debug?this.log:O5.throttle(this.log,void 0,{leading:!0,trailing:!0}),this.isUnmounted=!1,this.lastOutput="",this.fullStaticOutput="",this.container=nm.default.createContainer(this.rootNode,!1,!1),this.unsubscribeExit=WU.default(this.unmount,{alwaysLast:!1}),process.env.DEV==="true"&&nm.default.injectIntoDevTools({bundleType:0,version:"16.13.1",rendererPackageName:"ink"}),u.patchConsole&&this.patchConsole(),Oa||(u.stdout.on("resize",this.onRender),this.unsubscribeResize=()=>{u.stdout.off("resize",this.onRender)})}render(u){let f=NU.default.createElement(VU.default,{stdin:this.options.stdin,stdout:this.options.stdout,stderr:this.options.stderr,writeToStdout:this.writeToStdout,writeToStderr:this.writeToStderr,exitOnCtrlC:this.options.exitOnCtrlC,onExit:this.unmount},u);nm.default.updateContainer(f,this.container,null,I5)}writeToStdout(u){if(!this.isUnmounted){if(this.options.debug){this.options.stdout.write(u+this.fullStaticOutput+this.lastOutput);return}if(Oa){this.options.stdout.write(u);return}this.log.clear(),this.options.stdout.write(u),this.log(this.lastOutput)}}writeToStderr(u){if(!this.isUnmounted){if(this.options.debug){this.options.stderr.write(u),this.options.stdout.write(this.fullStaticOutput+this.lastOutput);return}if(Oa){this.options.stderr.write(u);return}this.log.clear(),this.options.stderr.write(u),this.log(this.lastOutput)}}unmount(u){this.isUnmounted||(this.onRender(),this.unsubscribeExit(),typeof this.restoreConsole=="function"&&this.restoreConsole(),typeof this.unsubscribeResize=="function"&&this.unsubscribeResize(),Oa?this.options.stdout.write(this.lastOutput+` -`):this.options.debug||this.log.done(),this.isUnmounted=!0,nm.default.updateContainer(null,this.container,null,I5),GU.default.delete(this.options.stdout),u instanceof Error?this.rejectExitPromise(u):this.resolveExitPromise())}waitUntilExit(){return this.exitPromise||(this.exitPromise=new Promise((u,f)=>{this.resolveExitPromise=u,this.rejectExitPromise=f})),this.exitPromise}clear(){!Oa&&!this.options.debug&&this.log.clear()}patchConsole(){this.options.debug||(this.restoreConsole=HU.default((u,f)=>{u==="stdout"&&this.writeToStdout(f),u==="stderr"&&(f.startsWith("The above error occurred")||this.writeToStderr(f))}))}};gs.default=P5});var L5=Me(B2=>{"use strict";var F5=B2&&B2.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(B2,"__esModule",{value:!0});var YU=F5(M5()),rm=F5(O3()),$U=require("stream"),JU=(i,u)=>{let f=Object.assign({stdout:process.stdout,stdin:process.stdin,stderr:process.stderr,debug:!1,exitOnCtrlC:!0,patchConsole:!0},KU(u)),c=XU(f.stdout,()=>new YU.default(f));return c.render(i),{rerender:c.render,unmount:()=>c.unmount(),waitUntilExit:c.waitUntilExit,cleanup:()=>rm.default.delete(f.stdout),clear:c.clear}};B2.default=JU;var KU=(i={})=>i instanceof $U.Stream?{stdout:i,stdin:process.stdin}:i,XU=(i,u)=>{let f;return rm.default.has(i)?f=rm.default.get(i):(f=u(),rm.default.set(i,f)),f}});var N5=Me(tf=>{"use strict";var QU=tf&&tf.__createBinding||(Object.create?function(i,u,f,c){c===void 0&&(c=f),Object.defineProperty(i,c,{enumerable:!0,get:function(){return u[f]}})}:function(i,u,f,c){c===void 0&&(c=f),i[c]=u[f]}),ZU=tf&&tf.__setModuleDefault||(Object.create?function(i,u){Object.defineProperty(i,"default",{enumerable:!0,value:u})}:function(i,u){i.default=u}),eq=tf&&tf.__importStar||function(i){if(i&&i.__esModule)return i;var u={};if(i!=null)for(var f in i)f!=="default"&&Object.hasOwnProperty.call(i,f)&&QU(u,i,f);return ZU(u,i),u};Object.defineProperty(tf,"__esModule",{value:!0});var j2=eq(lr()),R5=i=>{let{items:u,children:f,style:c}=i,[g,t]=j2.useState(0),C=j2.useMemo(()=>u.slice(g),[u,g]);j2.useLayoutEffect(()=>{t(u.length)},[u.length]);let A=C.map((D,L)=>f(D,g+L)),x=j2.useMemo(()=>Object.assign({position:"absolute",flexDirection:"column"},c),[c]);return j2.default.createElement("ink-box",{internal_static:!0,style:x},A)};R5.displayName="Static";tf.default=R5});var j5=Me(U2=>{"use strict";var tq=U2&&U2.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(U2,"__esModule",{value:!0});var nq=tq(lr()),B5=({children:i,transform:u})=>i==null?null:nq.default.createElement("ink-text",{style:{flexGrow:0,flexShrink:1,flexDirection:"row"},internal_transform:u},i);B5.displayName="Transform";U2.default=B5});var q5=Me(q2=>{"use strict";var rq=q2&&q2.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(q2,"__esModule",{value:!0});var iq=rq(lr()),U5=({count:i=1})=>iq.default.createElement("ink-text",null,` -`.repeat(i));U5.displayName="Newline";q2.default=U5});var H5=Me(z2=>{"use strict";var z5=z2&&z2.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(z2,"__esModule",{value:!0});var oq=z5(lr()),uq=z5(tm()),W5=()=>oq.default.createElement(uq.default,{flexGrow:1});W5.displayName="Spacer";z2.default=W5});var im=Me(W2=>{"use strict";var sq=W2&&W2.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(W2,"__esModule",{value:!0});var lq=lr(),fq=sq(F3()),cq=()=>lq.useContext(fq.default);W2.default=cq});var G5=Me(H2=>{"use strict";var aq=H2&&H2.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(H2,"__esModule",{value:!0});var b5=lr(),dq=aq(im()),pq=(i,u={})=>{let{stdin:f,setRawMode:c,internal_exitOnCtrlC:g}=dq.default();b5.useEffect(()=>{if(u.isActive!==!1)return c(!0),()=>{c(!1)}},[u.isActive,c]),b5.useEffect(()=>{if(u.isActive===!1)return;let t=C=>{let A=String(C),x={upArrow:A==="",downArrow:A==="",leftArrow:A==="",rightArrow:A==="",pageDown:A==="[6~",pageUp:A==="[5~",return:A==="\r",escape:A==="",ctrl:!1,shift:!1,tab:A===" "||A==="",backspace:A==="\b",delete:A==="\x7F"||A==="[3~",meta:!1};A<=""&&!x.return&&(A=String.fromCharCode(A.charCodeAt(0)+"a".charCodeAt(0)-1),x.ctrl=!0),A.startsWith("")&&(A=A.slice(1),x.meta=!0);let D=A>="A"&&A<="Z",L=A>="\u0410"&&A<="\u042F";A.length===1&&(D||L)&&(x.shift=!0),x.tab&&A==="[Z"&&(x.shift=!0),(x.tab||x.backspace||x.delete)&&(A=""),(!(A==="c"&&x.ctrl)||!g)&&i(A,x)};return f==null||f.on("data",t),()=>{f==null||f.off("data",t)}},[u.isActive,f,g,i])};H2.default=pq});var V5=Me(b2=>{"use strict";var hq=b2&&b2.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(b2,"__esModule",{value:!0});var mq=lr(),vq=hq(P3()),gq=()=>mq.useContext(vq.default);b2.default=gq});var Y5=Me(G2=>{"use strict";var _q=G2&&G2.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(G2,"__esModule",{value:!0});var yq=lr(),wq=_q(R3()),Dq=()=>yq.useContext(wq.default);G2.default=Dq});var $5=Me(V2=>{"use strict";var Eq=V2&&V2.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(V2,"__esModule",{value:!0});var Sq=lr(),Cq=Eq(B3()),Tq=()=>Sq.useContext(Cq.default);V2.default=Tq});var X5=Me(Y2=>{"use strict";var K5=Y2&&Y2.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(Y2,"__esModule",{value:!0});var $2=lr(),xq=K5(Zh()),kq=K5(im()),Aq=({isActive:i=!0,autoFocus:u=!1}={})=>{let{isRawModeSupported:f,setRawMode:c}=kq.default(),{activeId:g,add:t,remove:C,activate:A,deactivate:x}=$2.useContext(xq.default),D=$2.useMemo(()=>Math.random().toString().slice(2,7),[]);return $2.useEffect(()=>(t(D,{autoFocus:u}),()=>{C(D)}),[D,u]),$2.useEffect(()=>{i?A(D):x(D)},[i,D]),$2.useEffect(()=>{if(!(!f||!i))return c(!0),()=>{c(!1)}},[i]),{isFocused:Boolean(D)&&g===D}};Y2.default=Aq});var J5=Me(K2=>{"use strict";var Oq=K2&&K2.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(K2,"__esModule",{value:!0});var Iq=lr(),Pq=Oq(Zh()),Mq=()=>{let i=Iq.useContext(Pq.default);return{enableFocus:i.enableFocus,disableFocus:i.disableFocus,focusNext:i.focusNext,focusPrevious:i.focusPrevious}};K2.default=Mq});var Q5=Me(b3=>{"use strict";Object.defineProperty(b3,"__esModule",{value:!0});b3.default=i=>{var u,f,c,g;return{width:(f=(u=i.yogaNode)===null||u===void 0?void 0:u.getComputedWidth())!==null&&f!==void 0?f:0,height:(g=(c=i.yogaNode)===null||c===void 0?void 0:c.getComputedHeight())!==null&&g!==void 0?g:0}}});var ys=Me(ji=>{"use strict";Object.defineProperty(ji,"__esModule",{value:!0});var Fq=L5();Object.defineProperty(ji,"render",{enumerable:!0,get:function(){return Fq.default}});var Lq=tm();Object.defineProperty(ji,"Box",{enumerable:!0,get:function(){return Lq.default}});var Rq=W3();Object.defineProperty(ji,"Text",{enumerable:!0,get:function(){return Rq.default}});var Nq=N5();Object.defineProperty(ji,"Static",{enumerable:!0,get:function(){return Nq.default}});var Bq=j5();Object.defineProperty(ji,"Transform",{enumerable:!0,get:function(){return Bq.default}});var jq=q5();Object.defineProperty(ji,"Newline",{enumerable:!0,get:function(){return jq.default}});var Uq=H5();Object.defineProperty(ji,"Spacer",{enumerable:!0,get:function(){return Uq.default}});var qq=G5();Object.defineProperty(ji,"useInput",{enumerable:!0,get:function(){return qq.default}});var zq=V5();Object.defineProperty(ji,"useApp",{enumerable:!0,get:function(){return zq.default}});var Wq=im();Object.defineProperty(ji,"useStdin",{enumerable:!0,get:function(){return Wq.default}});var Hq=Y5();Object.defineProperty(ji,"useStdout",{enumerable:!0,get:function(){return Hq.default}});var bq=$5();Object.defineProperty(ji,"useStderr",{enumerable:!0,get:function(){return bq.default}});var Gq=X5();Object.defineProperty(ji,"useFocus",{enumerable:!0,get:function(){return Gq.default}});var Vq=J5();Object.defineProperty(ji,"useFocusManager",{enumerable:!0,get:function(){return Vq.default}});var Yq=Q5();Object.defineProperty(ji,"measureElement",{enumerable:!0,get:function(){return Yq.default}})});var lC=Me(X2=>{"use strict";Object.defineProperty(X2,"__esModule",{value:!0});X2.UncontrolledTextInput=void 0;var oC=lr(),Y3=lr(),uC=ys(),Sc=Jh(),sC=({value:i,placeholder:u="",focus:f=!0,mask:c,highlightPastedText:g=!1,showCursor:t=!0,onChange:C,onSubmit:A})=>{let[{cursorOffset:x,cursorWidth:D},L]=Y3.useState({cursorOffset:(i||"").length,cursorWidth:0});Y3.useEffect(()=>{L(re=>{if(!f||!t)return re;let ce=i||"";return re.cursorOffset>ce.length-1?{cursorOffset:ce.length,cursorWidth:0}:re})},[i,f,t]);let N=g?D:0,j=c?c.repeat(i.length):i,$=j,h=u?Sc.grey(u):void 0;if(t&&f){h=u.length>0?Sc.inverse(u[0])+Sc.grey(u.slice(1)):Sc.inverse(" "),$=j.length>0?"":Sc.inverse(" ");let re=0;for(let ce of j)re>=x-N&&re<=x?$+=Sc.inverse(ce):$+=ce,re++;j.length>0&&x===j.length&&($+=Sc.inverse(" "))}return uC.useInput((re,ce)=>{if(ce.upArrow||ce.downArrow||ce.ctrl&&re==="c"||ce.tab||ce.shift&&ce.tab)return;if(ce.return){A&&A(i);return}let Q=x,oe=i,Se=0;ce.leftArrow?t&&Q--:ce.rightArrow?t&&Q++:ce.backspace||ce.delete?x>0&&(oe=i.slice(0,x-1)+i.slice(x,i.length),Q--):(oe=i.slice(0,x)+re+i.slice(x,i.length),Q+=re.length,re.length>1&&(Se=re.length)),x<0&&(Q=0),x>i.length&&(Q=i.length),L({cursorOffset:Q,cursorWidth:Se}),oe!==i&&C(oe)},{isActive:f}),oC.createElement(uC.Text,null,u?j.length>0?$:h:$)};X2.default=sC;X2.UncontrolledTextInput=i=>{let[u,f]=Y3.useState("");return oC.createElement(sC,Object.assign({},i,{value:u,onChange:f}))}});var cC=Me(pm=>{"use strict";Object.defineProperty(pm,"__esModule",{value:!0});function J2(i){let u=[...i.caches],f=u.shift();return f===void 0?fC():{get(c,g,t={miss:()=>Promise.resolve()}){return f.get(c,g,t).catch(()=>J2({caches:u}).get(c,g,t))},set(c,g){return f.set(c,g).catch(()=>J2({caches:u}).set(c,g))},delete(c){return f.delete(c).catch(()=>J2({caches:u}).delete(c))},clear(){return f.clear().catch(()=>J2({caches:u}).clear())}}}function fC(){return{get(i,u,f={miss:()=>Promise.resolve()}){return u().then(g=>Promise.all([g,f.miss(g)])).then(([g])=>g)},set(i,u){return Promise.resolve(u)},delete(i){return Promise.resolve()},clear(){return Promise.resolve()}}}pm.createFallbackableCache=J2;pm.createNullCache=fC});var dC=Me((fV,aC)=>{aC.exports=cC()});var pC=Me($3=>{"use strict";Object.defineProperty($3,"__esModule",{value:!0});function $q(i={serializable:!0}){let u={};return{get(f,c,g={miss:()=>Promise.resolve()}){let t=JSON.stringify(f);if(t in u)return Promise.resolve(i.serializable?JSON.parse(u[t]):u[t]);let C=c(),A=g&&g.miss||(()=>Promise.resolve());return C.then(x=>A(x)).then(()=>C)},set(f,c){return u[JSON.stringify(f)]=i.serializable?JSON.stringify(c):c,Promise.resolve(c)},delete(f){return delete u[JSON.stringify(f)],Promise.resolve()},clear(){return u={},Promise.resolve()}}}$3.createInMemoryCache=$q});var mC=Me((aV,hC)=>{hC.exports=pC()});var gC=Me(ws=>{"use strict";Object.defineProperty(ws,"__esModule",{value:!0});function Kq(i,u,f){let c={"x-algolia-api-key":f,"x-algolia-application-id":u};return{headers(){return i===K3.WithinHeaders?c:{}},queryParameters(){return i===K3.WithinQueryParameters?c:{}}}}function Xq(i){let u=0,f=()=>(u++,new Promise(c=>{setTimeout(()=>{c(i(f))},Math.min(100*u,1e3))}));return i(f)}function vC(i,u=(f,c)=>Promise.resolve()){return Object.assign(i,{wait(f){return vC(i.then(c=>Promise.all([u(c,f),c])).then(c=>c[1]))}})}function Jq(i){let u=i.length-1;for(u;u>0;u--){let f=Math.floor(Math.random()*(u+1)),c=i[u];i[u]=i[f],i[f]=c}return i}function Qq(i,u){return Object.keys(u!==void 0?u:{}).forEach(f=>{i[f]=u[f](i)}),i}function Zq(i,...u){let f=0;return i.replace(/%s/g,()=>encodeURIComponent(u[f++]))}var ez="4.2.0",tz=i=>()=>i.transporter.requester.destroy(),K3={WithinQueryParameters:0,WithinHeaders:1};ws.AuthMode=K3;ws.addMethods=Qq;ws.createAuth=Kq;ws.createRetryablePromise=Xq;ws.createWaitablePromise=vC;ws.destroy=tz;ws.encode=Zq;ws.shuffle=Jq;ws.version=ez});var Q2=Me((pV,_C)=>{_C.exports=gC()});var yC=Me(X3=>{"use strict";Object.defineProperty(X3,"__esModule",{value:!0});var nz={Delete:"DELETE",Get:"GET",Post:"POST",Put:"PUT"};X3.MethodEnum=nz});var Z2=Me((mV,wC)=>{wC.exports=yC()});var RC=Me(y0=>{"use strict";Object.defineProperty(y0,"__esModule",{value:!0});var DC=Z2();function J3(i,u){let f=i||{},c=f.data||{};return Object.keys(f).forEach(g=>{["timeout","headers","queryParameters","data","cacheable"].indexOf(g)===-1&&(c[g]=f[g])}),{data:Object.entries(c).length>0?c:void 0,timeout:f.timeout||u,headers:f.headers||{},queryParameters:f.queryParameters||{},cacheable:f.cacheable}}var hm={Read:1,Write:2,Any:3},Ia={Up:1,Down:2,Timeouted:3},EC=2*60*1e3;function Q3(i,u=Ia.Up){return zn(dt({},i),{status:u,lastUpdate:Date.now()})}function SC(i){return i.status===Ia.Up||Date.now()-i.lastUpdate>EC}function CC(i){return i.status===Ia.Timeouted&&Date.now()-i.lastUpdate<=EC}function Z3(i){return{protocol:i.protocol||"https",url:i.url,accept:i.accept||hm.Any}}function rz(i,u){return Promise.all(u.map(f=>i.get(f,()=>Promise.resolve(Q3(f))))).then(f=>{let c=f.filter(A=>SC(A)),g=f.filter(A=>CC(A)),t=[...c,...g],C=t.length>0?t.map(A=>Z3(A)):u;return{getTimeout(A,x){return(g.length===0&&A===0?1:g.length+3+A)*x},statelessHosts:C}})}var iz=({isTimedOut:i,status:u})=>!i&&~~u==0,oz=i=>{let u=i.status;return i.isTimedOut||iz(i)||~~(u/100)!=2&&~~(u/100)!=4},uz=({status:i})=>~~(i/100)==2,sz=(i,u)=>oz(i)?u.onRetry(i):uz(i)?u.onSucess(i):u.onFail(i);function PC(i,u,f,c){let g=[],t=AC(f,c),C=OC(i,c),A=f.method,x=f.method!==DC.MethodEnum.Get?{}:dt(dt({},f.data),c.data),D=dt(dt(dt({"x-algolia-agent":i.userAgent.value},i.queryParameters),x),c.queryParameters),L=0,N=(j,$)=>{let h=j.pop();if(h===void 0)throw IC(ew(g));let re={data:t,headers:C,method:A,url:kC(h,f.path,D),connectTimeout:$(L,i.timeouts.connect),responseTimeout:$(L,c.timeout)},ce=oe=>{let Se={request:re,response:oe,host:h,triesLeft:j.length};return g.push(Se),Se},Q={onSucess:oe=>TC(oe),onRetry(oe){let Se=ce(oe);return oe.isTimedOut&&L++,Promise.all([i.logger.info("Retryable failure",tw(Se)),i.hostsCache.set(h,Q3(h,oe.isTimedOut?Ia.Timeouted:Ia.Down))]).then(()=>N(j,$))},onFail(oe){throw ce(oe),xC(oe,ew(g))}};return i.requester.send(re).then(oe=>sz(oe,Q))};return rz(i.hostsCache,u).then(j=>N([...j.statelessHosts].reverse(),j.getTimeout))}function lz(i){let{hostsCache:u,logger:f,requester:c,requestsCache:g,responsesCache:t,timeouts:C,userAgent:A,hosts:x,queryParameters:D,headers:L}=i,N={hostsCache:u,logger:f,requester:c,requestsCache:g,responsesCache:t,timeouts:C,userAgent:A,headers:L,queryParameters:D,hosts:x.map(j=>Z3(j)),read(j,$){let h=J3($,N.timeouts.read),re=()=>PC(N,N.hosts.filter(oe=>(oe.accept&hm.Read)!=0),j,h);if((h.cacheable!==void 0?h.cacheable:j.cacheable)!==!0)return re();let Q={request:j,mappedRequestOptions:h,transporter:{queryParameters:N.queryParameters,headers:N.headers}};return N.responsesCache.get(Q,()=>N.requestsCache.get(Q,()=>N.requestsCache.set(Q,re()).then(oe=>Promise.all([N.requestsCache.delete(Q),oe]),oe=>Promise.all([N.requestsCache.delete(Q),Promise.reject(oe)])).then(([oe,Se])=>Se)),{miss:oe=>N.responsesCache.set(Q,oe)})},write(j,$){return PC(N,N.hosts.filter(h=>(h.accept&hm.Write)!=0),j,J3($,N.timeouts.write))}};return N}function fz(i){let u={value:`Algolia for JavaScript (${i})`,add(f){let c=`; ${f.segment}${f.version!==void 0?` (${f.version})`:""}`;return u.value.indexOf(c)===-1&&(u.value=`${u.value}${c}`),u}};return u}function TC(i){try{return JSON.parse(i.content)}catch(u){throw MC(u.message,i)}}function xC({content:i,status:u},f){let c=i;try{c=JSON.parse(i).message}catch(g){}return FC(c,u,f)}function cz(i,...u){let f=0;return i.replace(/%s/g,()=>encodeURIComponent(u[f++]))}function kC(i,u,f){let c=LC(f),g=`${i.protocol}://${i.url}/${u.charAt(0)==="/"?u.substr(1):u}`;return c.length&&(g+=`?${c}`),g}function LC(i){let u=f=>Object.prototype.toString.call(f)==="[object Object]"||Object.prototype.toString.call(f)==="[object Array]";return Object.keys(i).map(f=>cz("%s=%s",f,u(i[f])?JSON.stringify(i[f]):i[f])).join("&")}function AC(i,u){if(i.method===DC.MethodEnum.Get||i.data===void 0&&u.data===void 0)return;let f=Array.isArray(i.data)?i.data:dt(dt({},i.data),u.data);return JSON.stringify(f)}function OC(i,u){let f=dt(dt({},i.headers),u.headers),c={};return Object.keys(f).forEach(g=>{let t=f[g];c[g.toLowerCase()]=t}),c}function ew(i){return i.map(u=>tw(u))}function tw(i){let u=i.request.headers["x-algolia-api-key"]?{"x-algolia-api-key":"*****"}:{};return zn(dt({},i),{request:zn(dt({},i.request),{headers:dt(dt({},i.request.headers),u)})})}function FC(i,u,f){return{name:"ApiError",message:i,status:u,transporterStackTrace:f}}function MC(i,u){return{name:"DeserializationError",message:i,response:u}}function IC(i){return{name:"RetryError",message:"Unreachable hosts - your application id may be incorrect. If the error persists, contact support@algolia.com.",transporterStackTrace:i}}y0.CallEnum=hm;y0.HostStatusEnum=Ia;y0.createApiError=FC;y0.createDeserializationError=MC;y0.createMappedRequestOptions=J3;y0.createRetryError=IC;y0.createStatefulHost=Q3;y0.createStatelessHost=Z3;y0.createTransporter=lz;y0.createUserAgent=fz;y0.deserializeFailure=xC;y0.deserializeSuccess=TC;y0.isStatefulHostTimeouted=CC;y0.isStatefulHostUp=SC;y0.serializeData=AC;y0.serializeHeaders=OC;y0.serializeQueryParameters=LC;y0.serializeUrl=kC;y0.stackFrameWithoutCredentials=tw;y0.stackTraceWithoutCredentials=ew});var ed=Me((gV,NC)=>{NC.exports=RC()});var BC=Me(Hf=>{"use strict";Object.defineProperty(Hf,"__esModule",{value:!0});var Pa=Q2(),az=ed(),td=Z2(),dz=i=>{let u=i.region||"us",f=Pa.createAuth(Pa.AuthMode.WithinHeaders,i.appId,i.apiKey),c=az.createTransporter(zn(dt({hosts:[{url:`analytics.${u}.algolia.com`}]},i),{headers:dt(zn(dt({},f.headers()),{"content-type":"application/json"}),i.headers),queryParameters:dt(dt({},f.queryParameters()),i.queryParameters)})),g=i.appId;return Pa.addMethods({appId:g,transporter:c},i.methods)},pz=i=>(u,f)=>i.transporter.write({method:td.MethodEnum.Post,path:"2/abtests",data:u},f),hz=i=>(u,f)=>i.transporter.write({method:td.MethodEnum.Delete,path:Pa.encode("2/abtests/%s",u)},f),mz=i=>(u,f)=>i.transporter.read({method:td.MethodEnum.Get,path:Pa.encode("2/abtests/%s",u)},f),vz=i=>u=>i.transporter.read({method:td.MethodEnum.Get,path:"2/abtests"},u),gz=i=>(u,f)=>i.transporter.write({method:td.MethodEnum.Post,path:Pa.encode("2/abtests/%s/stop",u)},f);Hf.addABTest=pz;Hf.createAnalyticsClient=dz;Hf.deleteABTest=hz;Hf.getABTest=mz;Hf.getABTests=vz;Hf.stopABTest=gz});var UC=Me((yV,jC)=>{jC.exports=BC()});var zC=Me(nd=>{"use strict";Object.defineProperty(nd,"__esModule",{value:!0});var nw=Q2(),_z=ed(),qC=Z2(),yz=i=>{let u=i.region||"us",f=nw.createAuth(nw.AuthMode.WithinHeaders,i.appId,i.apiKey),c=_z.createTransporter(zn(dt({hosts:[{url:`recommendation.${u}.algolia.com`}]},i),{headers:dt(zn(dt({},f.headers()),{"content-type":"application/json"}),i.headers),queryParameters:dt(dt({},f.queryParameters()),i.queryParameters)}));return nw.addMethods({appId:i.appId,transporter:c},i.methods)},wz=i=>u=>i.transporter.read({method:qC.MethodEnum.Get,path:"1/strategies/personalization"},u),Dz=i=>(u,f)=>i.transporter.write({method:qC.MethodEnum.Post,path:"1/strategies/personalization",data:u},f);nd.createRecommendationClient=yz;nd.getPersonalizationStrategy=wz;nd.setPersonalizationStrategy=Dz});var HC=Me((DV,WC)=>{WC.exports=zC()});var nT=Me(yt=>{"use strict";Object.defineProperty(yt,"__esModule",{value:!0});var Wt=Q2(),jo=ed(),Rn=Z2(),Ez=require("crypto");function mm(i){let u=f=>i.request(f).then(c=>{if(i.batch!==void 0&&i.batch(c.hits),!i.shouldStop(c))return c.cursor?u({cursor:c.cursor}):u({page:(f.page||0)+1})});return u({})}var Sz=i=>{let u=i.appId,f=Wt.createAuth(i.authMode!==void 0?i.authMode:Wt.AuthMode.WithinHeaders,u,i.apiKey),c=jo.createTransporter(zn(dt({hosts:[{url:`${u}-dsn.algolia.net`,accept:jo.CallEnum.Read},{url:`${u}.algolia.net`,accept:jo.CallEnum.Write}].concat(Wt.shuffle([{url:`${u}-1.algolianet.com`},{url:`${u}-2.algolianet.com`},{url:`${u}-3.algolianet.com`}]))},i),{headers:dt(zn(dt({},f.headers()),{"content-type":"application/x-www-form-urlencoded"}),i.headers),queryParameters:dt(dt({},f.queryParameters()),i.queryParameters)})),g={transporter:c,appId:u,addAlgoliaAgent(t,C){c.userAgent.add({segment:t,version:C})},clearCache(){return Promise.all([c.requestsCache.clear(),c.responsesCache.clear()]).then(()=>{})}};return Wt.addMethods(g,i.methods)};function bC(){return{name:"MissingObjectIDError",message:"All objects must have an unique objectID (like a primary key) to be valid. Algolia is also able to generate objectIDs automatically but *it's not recommended*. To do it, use the `{'autoGenerateObjectIDIfNotExist': true}` option."}}function GC(){return{name:"ObjectNotFoundError",message:"Object not found."}}function VC(){return{name:"ValidUntilNotFoundError",message:"ValidUntil not found in given secured api key."}}var Cz=i=>(u,f)=>{let A=f||{},{queryParameters:c}=A,g=Si(A,["queryParameters"]),t=dt({acl:u},c!==void 0?{queryParameters:c}:{}),C=(x,D)=>Wt.createRetryablePromise(L=>rd(i)(x.key,D).catch(N=>{if(N.status!==404)throw N;return L()}));return Wt.createWaitablePromise(i.transporter.write({method:Rn.MethodEnum.Post,path:"1/keys",data:t},g),C)},Tz=i=>(u,f,c)=>{let g=jo.createMappedRequestOptions(c);return g.queryParameters["X-Algolia-User-ID"]=u,i.transporter.write({method:Rn.MethodEnum.Post,path:"1/clusters/mapping",data:{cluster:f}},g)},xz=i=>(u,f,c)=>i.transporter.write({method:Rn.MethodEnum.Post,path:"1/clusters/mapping/batch",data:{users:u,cluster:f}},c),vm=i=>(u,f,c)=>{let g=(t,C)=>id(i)(u,{methods:{waitTask:z0}}).waitTask(t.taskID,C);return Wt.createWaitablePromise(i.transporter.write({method:Rn.MethodEnum.Post,path:Wt.encode("1/indexes/%s/operation",u),data:{operation:"copy",destination:f}},c),g)},kz=i=>(u,f,c)=>vm(i)(u,f,zn(dt({},c),{scope:[gm.Rules]})),Az=i=>(u,f,c)=>vm(i)(u,f,zn(dt({},c),{scope:[gm.Settings]})),Oz=i=>(u,f,c)=>vm(i)(u,f,zn(dt({},c),{scope:[gm.Synonyms]})),Iz=i=>(u,f)=>{let c=(g,t)=>Wt.createRetryablePromise(C=>rd(i)(u,t).then(C).catch(A=>{if(A.status!==404)throw A}));return Wt.createWaitablePromise(i.transporter.write({method:Rn.MethodEnum.Delete,path:Wt.encode("1/keys/%s",u)},f),c)},Pz=()=>(i,u)=>{let f=jo.serializeQueryParameters(u),c=Ez.createHmac("sha256",i).update(f).digest("hex");return Buffer.from(c+f).toString("base64")},rd=i=>(u,f)=>i.transporter.read({method:Rn.MethodEnum.Get,path:Wt.encode("1/keys/%s",u)},f),Mz=i=>u=>i.transporter.read({method:Rn.MethodEnum.Get,path:"1/logs"},u),Fz=()=>i=>{let u=Buffer.from(i,"base64").toString("ascii"),f=/validUntil=(\d+)/,c=u.match(f);if(c===null)throw VC();return parseInt(c[1],10)-Math.round(new Date().getTime()/1e3)},Lz=i=>u=>i.transporter.read({method:Rn.MethodEnum.Get,path:"1/clusters/mapping/top"},u),Rz=i=>(u,f)=>i.transporter.read({method:Rn.MethodEnum.Get,path:Wt.encode("1/clusters/mapping/%s",u)},f),Nz=i=>u=>{let g=u||{},{retrieveMappings:f}=g,c=Si(g,["retrieveMappings"]);return f===!0&&(c.getClusters=!0),i.transporter.read({method:Rn.MethodEnum.Get,path:"1/clusters/mapping/pending"},c)},id=i=>(u,f={})=>{let c={transporter:i.transporter,appId:i.appId,indexName:u};return Wt.addMethods(c,f.methods)},Bz=i=>u=>i.transporter.read({method:Rn.MethodEnum.Get,path:"1/keys"},u),jz=i=>u=>i.transporter.read({method:Rn.MethodEnum.Get,path:"1/clusters"},u),Uz=i=>u=>i.transporter.read({method:Rn.MethodEnum.Get,path:"1/indexes"},u),qz=i=>u=>i.transporter.read({method:Rn.MethodEnum.Get,path:"1/clusters/mapping"},u),zz=i=>(u,f,c)=>{let g=(t,C)=>id(i)(u,{methods:{waitTask:z0}}).waitTask(t.taskID,C);return Wt.createWaitablePromise(i.transporter.write({method:Rn.MethodEnum.Post,path:Wt.encode("1/indexes/%s/operation",u),data:{operation:"move",destination:f}},c),g)},Wz=i=>(u,f)=>{let c=(g,t)=>Promise.all(Object.keys(g.taskID).map(C=>id(i)(C,{methods:{waitTask:z0}}).waitTask(g.taskID[C],t)));return Wt.createWaitablePromise(i.transporter.write({method:Rn.MethodEnum.Post,path:"1/indexes/*/batch",data:{requests:u}},f),c)},Hz=i=>(u,f)=>i.transporter.read({method:Rn.MethodEnum.Post,path:"1/indexes/*/objects",data:{requests:u}},f),bz=i=>(u,f)=>{let c=u.map(g=>zn(dt({},g),{params:jo.serializeQueryParameters(g.params||{})}));return i.transporter.read({method:Rn.MethodEnum.Post,path:"1/indexes/*/queries",data:{requests:c},cacheable:!0},f)},Gz=i=>(u,f)=>Promise.all(u.map(c=>{let A=c.params,{facetName:g,facetQuery:t}=A,C=Si(A,["facetName","facetQuery"]);return id(i)(c.indexName,{methods:{searchForFacetValues:YC}}).searchForFacetValues(g,t,dt(dt({},f),C))})),Vz=i=>(u,f)=>{let c=jo.createMappedRequestOptions(f);return c.queryParameters["X-Algolia-User-ID"]=u,i.transporter.write({method:Rn.MethodEnum.Delete,path:"1/clusters/mapping"},c)},Yz=i=>(u,f)=>{let c=(g,t)=>Wt.createRetryablePromise(C=>rd(i)(u,t).catch(A=>{if(A.status!==404)throw A;return C()}));return Wt.createWaitablePromise(i.transporter.write({method:Rn.MethodEnum.Post,path:Wt.encode("1/keys/%s/restore",u)},f),c)},$z=i=>(u,f)=>i.transporter.read({method:Rn.MethodEnum.Post,path:"1/clusters/mapping/search",data:{query:u}},f),Kz=i=>(u,f)=>{let c=Object.assign({},f),L=f||{},{queryParameters:g}=L,t=Si(L,["queryParameters"]),C=g?{queryParameters:g}:{},A=["acl","indexes","referers","restrictSources","queryParameters","description","maxQueriesPerIPPerHour","maxHitsPerQuery"],x=N=>Object.keys(c).filter(j=>A.indexOf(j)!==-1).every(j=>N[j]===c[j]),D=(N,j)=>Wt.createRetryablePromise($=>rd(i)(u,j).then(h=>x(h)?Promise.resolve():$()));return Wt.createWaitablePromise(i.transporter.write({method:Rn.MethodEnum.Put,path:Wt.encode("1/keys/%s",u),data:C},t),D)},$C=i=>(u,f)=>{let c=(g,t)=>z0(i)(g.taskID,t);return Wt.createWaitablePromise(i.transporter.write({method:Rn.MethodEnum.Post,path:Wt.encode("1/indexes/%s/batch",i.indexName),data:{requests:u}},f),c)},Xz=i=>u=>mm(zn(dt({},u),{shouldStop:f=>f.cursor===void 0,request:f=>i.transporter.read({method:Rn.MethodEnum.Post,path:Wt.encode("1/indexes/%s/browse",i.indexName),data:f},u)})),Jz=i=>u=>{let f=dt({hitsPerPage:1e3},u);return mm(zn(dt({},f),{shouldStop:c=>c.hits.lengthzn(dt({},g),{hits:g.hits.map(t=>(delete t._highlightResult,t))}))}}))},Qz=i=>u=>{let f=dt({hitsPerPage:1e3},u);return mm(zn(dt({},f),{shouldStop:c=>c.hits.lengthzn(dt({},g),{hits:g.hits.map(t=>(delete t._highlightResult,t))}))}}))},_m=i=>(u,f,c)=>{let x=c||{},{batchSize:g}=x,t=Si(x,["batchSize"]),C={taskIDs:[],objectIDs:[]},A=(D=0)=>{let L=[],N;for(N=D;N({action:f,body:j})),t).then(j=>(C.objectIDs=C.objectIDs.concat(j.objectIDs),C.taskIDs.push(j.taskID),N++,A(N)))};return Wt.createWaitablePromise(A(),(D,L)=>Promise.all(D.taskIDs.map(N=>z0(i)(N,L))))},Zz=i=>u=>Wt.createWaitablePromise(i.transporter.write({method:Rn.MethodEnum.Post,path:Wt.encode("1/indexes/%s/clear",i.indexName)},u),(f,c)=>z0(i)(f.taskID,c)),eW=i=>u=>{let t=u||{},{forwardToReplicas:f}=t,c=Si(t,["forwardToReplicas"]),g=jo.createMappedRequestOptions(c);return f&&(g.queryParameters.forwardToReplicas=1),Wt.createWaitablePromise(i.transporter.write({method:Rn.MethodEnum.Post,path:Wt.encode("1/indexes/%s/rules/clear",i.indexName)},g),(C,A)=>z0(i)(C.taskID,A))},tW=i=>u=>{let t=u||{},{forwardToReplicas:f}=t,c=Si(t,["forwardToReplicas"]),g=jo.createMappedRequestOptions(c);return f&&(g.queryParameters.forwardToReplicas=1),Wt.createWaitablePromise(i.transporter.write({method:Rn.MethodEnum.Post,path:Wt.encode("1/indexes/%s/synonyms/clear",i.indexName)},g),(C,A)=>z0(i)(C.taskID,A))},nW=i=>(u,f)=>Wt.createWaitablePromise(i.transporter.write({method:Rn.MethodEnum.Post,path:Wt.encode("1/indexes/%s/deleteByQuery",i.indexName),data:u},f),(c,g)=>z0(i)(c.taskID,g)),rW=i=>u=>Wt.createWaitablePromise(i.transporter.write({method:Rn.MethodEnum.Delete,path:Wt.encode("1/indexes/%s",i.indexName)},u),(f,c)=>z0(i)(f.taskID,c)),iW=i=>(u,f)=>Wt.createWaitablePromise(JC(i)([u],f).then(c=>({taskID:c.taskIDs[0]})),(c,g)=>z0(i)(c.taskID,g)),JC=i=>(u,f)=>{let c=u.map(g=>({objectID:g}));return _m(i)(c,Cc.DeleteObject,f)},oW=i=>(u,f)=>{let C=f||{},{forwardToReplicas:c}=C,g=Si(C,["forwardToReplicas"]),t=jo.createMappedRequestOptions(g);return c&&(t.queryParameters.forwardToReplicas=1),Wt.createWaitablePromise(i.transporter.write({method:Rn.MethodEnum.Delete,path:Wt.encode("1/indexes/%s/rules/%s",i.indexName,u)},t),(A,x)=>z0(i)(A.taskID,x))},uW=i=>(u,f)=>{let C=f||{},{forwardToReplicas:c}=C,g=Si(C,["forwardToReplicas"]),t=jo.createMappedRequestOptions(g);return c&&(t.queryParameters.forwardToReplicas=1),Wt.createWaitablePromise(i.transporter.write({method:Rn.MethodEnum.Delete,path:Wt.encode("1/indexes/%s/synonyms/%s",i.indexName,u)},t),(A,x)=>z0(i)(A.taskID,x))},sW=i=>u=>QC(i)(u).then(()=>!0).catch(f=>{if(f.status!==404)throw f;return!1}),lW=i=>(u,f)=>{let x=f||{},{query:c,paginate:g}=x,t=Si(x,["query","paginate"]),C=0,A=()=>ZC(i)(c||"",zn(dt({},t),{page:C})).then(D=>{for(let[L,N]of Object.entries(D.hits))if(u(N))return{object:N,position:parseInt(L,10),page:C};if(C++,g===!1||C>=D.nbPages)throw GC();return A()});return A()},fW=i=>(u,f)=>i.transporter.read({method:Rn.MethodEnum.Get,path:Wt.encode("1/indexes/%s/%s",i.indexName,u)},f),cW=()=>(i,u)=>{for(let[f,c]of Object.entries(i.hits))if(c.objectID===u)return parseInt(f,10);return-1},aW=i=>(u,f)=>{let C=f||{},{attributesToRetrieve:c}=C,g=Si(C,["attributesToRetrieve"]),t=u.map(A=>dt({indexName:i.indexName,objectID:A},c?{attributesToRetrieve:c}:{}));return i.transporter.read({method:Rn.MethodEnum.Post,path:"1/indexes/*/objects",data:{requests:t}},g)},dW=i=>(u,f)=>i.transporter.read({method:Rn.MethodEnum.Get,path:Wt.encode("1/indexes/%s/rules/%s",i.indexName,u)},f),QC=i=>u=>i.transporter.read({method:Rn.MethodEnum.Get,path:Wt.encode("1/indexes/%s/settings",i.indexName),data:{getVersion:2}},u),pW=i=>(u,f)=>i.transporter.read({method:Rn.MethodEnum.Get,path:Wt.encode("1/indexes/%s/synonyms/%s",i.indexName,u)},f),eT=i=>(u,f)=>i.transporter.read({method:Rn.MethodEnum.Get,path:Wt.encode("1/indexes/%s/task/%s",i.indexName,u.toString())},f),hW=i=>(u,f)=>Wt.createWaitablePromise(tT(i)([u],f).then(c=>({objectID:c.objectIDs[0],taskID:c.taskIDs[0]})),(c,g)=>z0(i)(c.taskID,g)),tT=i=>(u,f)=>{let C=f||{},{createIfNotExists:c}=C,g=Si(C,["createIfNotExists"]),t=c?Cc.PartialUpdateObject:Cc.PartialUpdateObjectNoCreate;return _m(i)(u,t,g)},mW=i=>(u,f)=>{let h=f||{},{safe:c,autoGenerateObjectIDIfNotExist:g,batchSize:t}=h,C=Si(h,["safe","autoGenerateObjectIDIfNotExist","batchSize"]),A=(re,ce,Q,oe)=>Wt.createWaitablePromise(i.transporter.write({method:Rn.MethodEnum.Post,path:Wt.encode("1/indexes/%s/operation",re),data:{operation:Q,destination:ce}},oe),(Se,me)=>z0(i)(Se.taskID,me)),x=Math.random().toString(36).substring(7),D=`${i.indexName}_tmp_${x}`,L=rw({appId:i.appId,transporter:i.transporter,indexName:D}),N=[],j=A(i.indexName,D,"copy",zn(dt({},C),{scope:["settings","synonyms","rules"]}));N.push(j);let $=(c?j.wait(C):j).then(()=>{let re=L(u,zn(dt({},C),{autoGenerateObjectIDIfNotExist:g,batchSize:t}));return N.push(re),c?re.wait(C):re}).then(()=>{let re=A(D,i.indexName,"move",C);return N.push(re),c?re.wait(C):re}).then(()=>Promise.all(N)).then(([re,ce,Q])=>({objectIDs:ce.objectIDs,taskIDs:[re.taskID,...ce.taskIDs,Q.taskID]}));return Wt.createWaitablePromise($,(re,ce)=>Promise.all(N.map(Q=>Q.wait(ce))))},vW=i=>(u,f)=>iw(i)(u,zn(dt({},f),{clearExistingRules:!0})),gW=i=>(u,f)=>ow(i)(u,zn(dt({},f),{replaceExistingSynonyms:!0})),_W=i=>(u,f)=>Wt.createWaitablePromise(rw(i)([u],f).then(c=>({objectID:c.objectIDs[0],taskID:c.taskIDs[0]})),(c,g)=>z0(i)(c.taskID,g)),rw=i=>(u,f)=>{let C=f||{},{autoGenerateObjectIDIfNotExist:c}=C,g=Si(C,["autoGenerateObjectIDIfNotExist"]),t=c?Cc.AddObject:Cc.UpdateObject;if(t===Cc.UpdateObject){for(let A of u)if(A.objectID===void 0)return Wt.createWaitablePromise(Promise.reject(bC()))}return _m(i)(u,t,g)},yW=i=>(u,f)=>iw(i)([u],f),iw=i=>(u,f)=>{let A=f||{},{forwardToReplicas:c,clearExistingRules:g}=A,t=Si(A,["forwardToReplicas","clearExistingRules"]),C=jo.createMappedRequestOptions(t);return c&&(C.queryParameters.forwardToReplicas=1),g&&(C.queryParameters.clearExistingRules=1),Wt.createWaitablePromise(i.transporter.write({method:Rn.MethodEnum.Post,path:Wt.encode("1/indexes/%s/rules/batch",i.indexName),data:u},C),(x,D)=>z0(i)(x.taskID,D))},wW=i=>(u,f)=>ow(i)([u],f),ow=i=>(u,f)=>{let A=f||{},{forwardToReplicas:c,replaceExistingSynonyms:g}=A,t=Si(A,["forwardToReplicas","replaceExistingSynonyms"]),C=jo.createMappedRequestOptions(t);return c&&(C.queryParameters.forwardToReplicas=1),g&&(C.queryParameters.replaceExistingSynonyms=1),Wt.createWaitablePromise(i.transporter.write({method:Rn.MethodEnum.Post,path:Wt.encode("1/indexes/%s/synonyms/batch",i.indexName),data:u},C),(x,D)=>z0(i)(x.taskID,D))},ZC=i=>(u,f)=>i.transporter.read({method:Rn.MethodEnum.Post,path:Wt.encode("1/indexes/%s/query",i.indexName),data:{query:u},cacheable:!0},f),YC=i=>(u,f,c)=>i.transporter.read({method:Rn.MethodEnum.Post,path:Wt.encode("1/indexes/%s/facets/%s/query",i.indexName,u),data:{facetQuery:f},cacheable:!0},c),KC=i=>(u,f)=>i.transporter.read({method:Rn.MethodEnum.Post,path:Wt.encode("1/indexes/%s/rules/search",i.indexName),data:{query:u}},f),XC=i=>(u,f)=>i.transporter.read({method:Rn.MethodEnum.Post,path:Wt.encode("1/indexes/%s/synonyms/search",i.indexName),data:{query:u}},f),DW=i=>(u,f)=>{let C=f||{},{forwardToReplicas:c}=C,g=Si(C,["forwardToReplicas"]),t=jo.createMappedRequestOptions(g);return c&&(t.queryParameters.forwardToReplicas=1),Wt.createWaitablePromise(i.transporter.write({method:Rn.MethodEnum.Put,path:Wt.encode("1/indexes/%s/settings",i.indexName),data:u},t),(A,x)=>z0(i)(A.taskID,x))},z0=i=>(u,f)=>Wt.createRetryablePromise(c=>eT(i)(u,f).then(g=>g.status!=="published"?c():void 0)),EW={AddObject:"addObject",Analytics:"analytics",Browser:"browse",DeleteIndex:"deleteIndex",DeleteObject:"deleteObject",EditSettings:"editSettings",ListIndexes:"listIndexes",Logs:"logs",Recommendation:"recommendation",Search:"search",SeeUnretrievableAttributes:"seeUnretrievableAttributes",Settings:"settings",Usage:"usage"},Cc={AddObject:"addObject",UpdateObject:"updateObject",PartialUpdateObject:"partialUpdateObject",PartialUpdateObjectNoCreate:"partialUpdateObjectNoCreate",DeleteObject:"deleteObject"},gm={Settings:"settings",Synonyms:"synonyms",Rules:"rules"},SW={None:"none",StopIfEnoughMatches:"stopIfEnoughMatches"},CW={Synonym:"synonym",OneWaySynonym:"oneWaySynonym",AltCorrection1:"altCorrection1",AltCorrection2:"altCorrection2",Placeholder:"placeholder"};yt.ApiKeyACLEnum=EW;yt.BatchActionEnum=Cc;yt.ScopeEnum=gm;yt.StrategyEnum=SW;yt.SynonymEnum=CW;yt.addApiKey=Cz;yt.assignUserID=Tz;yt.assignUserIDs=xz;yt.batch=$C;yt.browseObjects=Xz;yt.browseRules=Jz;yt.browseSynonyms=Qz;yt.chunkedBatch=_m;yt.clearObjects=Zz;yt.clearRules=eW;yt.clearSynonyms=tW;yt.copyIndex=vm;yt.copyRules=kz;yt.copySettings=Az;yt.copySynonyms=Oz;yt.createBrowsablePromise=mm;yt.createMissingObjectIDError=bC;yt.createObjectNotFoundError=GC;yt.createSearchClient=Sz;yt.createValidUntilNotFoundError=VC;yt.deleteApiKey=Iz;yt.deleteBy=nW;yt.deleteIndex=rW;yt.deleteObject=iW;yt.deleteObjects=JC;yt.deleteRule=oW;yt.deleteSynonym=uW;yt.exists=sW;yt.findObject=lW;yt.generateSecuredApiKey=Pz;yt.getApiKey=rd;yt.getLogs=Mz;yt.getObject=fW;yt.getObjectPosition=cW;yt.getObjects=aW;yt.getRule=dW;yt.getSecuredApiKeyRemainingValidity=Fz;yt.getSettings=QC;yt.getSynonym=pW;yt.getTask=eT;yt.getTopUserIDs=Lz;yt.getUserID=Rz;yt.hasPendingMappings=Nz;yt.initIndex=id;yt.listApiKeys=Bz;yt.listClusters=jz;yt.listIndices=Uz;yt.listUserIDs=qz;yt.moveIndex=zz;yt.multipleBatch=Wz;yt.multipleGetObjects=Hz;yt.multipleQueries=bz;yt.multipleSearchForFacetValues=Gz;yt.partialUpdateObject=hW;yt.partialUpdateObjects=tT;yt.removeUserID=Vz;yt.replaceAllObjects=mW;yt.replaceAllRules=vW;yt.replaceAllSynonyms=gW;yt.restoreApiKey=Yz;yt.saveObject=_W;yt.saveObjects=rw;yt.saveRule=yW;yt.saveRules=iw;yt.saveSynonym=wW;yt.saveSynonyms=ow;yt.search=ZC;yt.searchForFacetValues=YC;yt.searchRules=KC;yt.searchSynonyms=XC;yt.searchUserIDs=$z;yt.setSettings=DW;yt.updateApiKey=Kz;yt.waitTask=z0});var iT=Me((SV,rT)=>{rT.exports=nT()});var oT=Me(ym=>{"use strict";Object.defineProperty(ym,"__esModule",{value:!0});function TW(){return{debug(i,u){return Promise.resolve()},info(i,u){return Promise.resolve()},error(i,u){return Promise.resolve()}}}var xW={Debug:1,Info:2,Error:3};ym.LogLevelEnum=xW;ym.createNullLogger=TW});var sT=Me((TV,uT)=>{uT.exports=oT()});var cT=Me(uw=>{"use strict";Object.defineProperty(uw,"__esModule",{value:!0});var lT=require("http"),fT=require("https"),kW=require("url");function AW(){let i={keepAlive:!0},u=new lT.Agent(i),f=new fT.Agent(i);return{send(c){return new Promise(g=>{let t=kW.parse(c.url),C=t.query===null?t.pathname:`${t.pathname}?${t.query}`,A=dt({agent:t.protocol==="https:"?f:u,hostname:t.hostname,path:C,method:c.method,headers:c.headers},t.port!==void 0?{port:t.port||""}:{}),x=(t.protocol==="https:"?fT:lT).request(A,j=>{let $="";j.on("data",h=>$+=h),j.on("end",()=>{clearTimeout(L),clearTimeout(N),g({status:j.statusCode||0,content:$,isTimedOut:!1})})}),D=(j,$)=>setTimeout(()=>{x.abort(),g({status:0,content:$,isTimedOut:!0})},j*1e3),L=D(c.connectTimeout,"Connection timeout"),N;x.on("error",j=>{clearTimeout(L),clearTimeout(N),g({status:0,content:j.message,isTimedOut:!1})}),x.once("response",()=>{clearTimeout(L),N=D(c.responseTimeout,"Socket timeout")}),c.data!==void 0&&x.write(c.data),x.end()})},destroy(){return u.destroy(),f.destroy(),Promise.resolve()}}}uw.createNodeHttpRequester=AW});var dT=Me((kV,aT)=>{aT.exports=cT()});var vT=Me((AV,pT)=>{"use strict";var hT=dC(),OW=mC(),Ma=UC(),sw=Q2(),lw=HC(),Mt=iT(),IW=sT(),PW=dT(),MW=ed();function mT(i,u,f){let c={appId:i,apiKey:u,timeouts:{connect:2,read:5,write:30},requester:PW.createNodeHttpRequester(),logger:IW.createNullLogger(),responsesCache:hT.createNullCache(),requestsCache:hT.createNullCache(),hostsCache:OW.createInMemoryCache(),userAgent:MW.createUserAgent(sw.version).add({segment:"Node.js",version:process.versions.node})};return Mt.createSearchClient(zn(dt(dt({},c),f),{methods:{search:Mt.multipleQueries,searchForFacetValues:Mt.multipleSearchForFacetValues,multipleBatch:Mt.multipleBatch,multipleGetObjects:Mt.multipleGetObjects,multipleQueries:Mt.multipleQueries,copyIndex:Mt.copyIndex,copySettings:Mt.copySettings,copyRules:Mt.copyRules,copySynonyms:Mt.copySynonyms,moveIndex:Mt.moveIndex,listIndices:Mt.listIndices,getLogs:Mt.getLogs,listClusters:Mt.listClusters,multipleSearchForFacetValues:Mt.multipleSearchForFacetValues,getApiKey:Mt.getApiKey,addApiKey:Mt.addApiKey,listApiKeys:Mt.listApiKeys,updateApiKey:Mt.updateApiKey,deleteApiKey:Mt.deleteApiKey,restoreApiKey:Mt.restoreApiKey,assignUserID:Mt.assignUserID,assignUserIDs:Mt.assignUserIDs,getUserID:Mt.getUserID,searchUserIDs:Mt.searchUserIDs,listUserIDs:Mt.listUserIDs,getTopUserIDs:Mt.getTopUserIDs,removeUserID:Mt.removeUserID,hasPendingMappings:Mt.hasPendingMappings,generateSecuredApiKey:Mt.generateSecuredApiKey,getSecuredApiKeyRemainingValidity:Mt.getSecuredApiKeyRemainingValidity,destroy:sw.destroy,initIndex:g=>t=>Mt.initIndex(g)(t,{methods:{batch:Mt.batch,delete:Mt.deleteIndex,getObject:Mt.getObject,getObjects:Mt.getObjects,saveObject:Mt.saveObject,saveObjects:Mt.saveObjects,search:Mt.search,searchForFacetValues:Mt.searchForFacetValues,waitTask:Mt.waitTask,setSettings:Mt.setSettings,getSettings:Mt.getSettings,partialUpdateObject:Mt.partialUpdateObject,partialUpdateObjects:Mt.partialUpdateObjects,deleteObject:Mt.deleteObject,deleteObjects:Mt.deleteObjects,deleteBy:Mt.deleteBy,clearObjects:Mt.clearObjects,browseObjects:Mt.browseObjects,getObjectPosition:Mt.getObjectPosition,findObject:Mt.findObject,exists:Mt.exists,saveSynonym:Mt.saveSynonym,saveSynonyms:Mt.saveSynonyms,getSynonym:Mt.getSynonym,searchSynonyms:Mt.searchSynonyms,browseSynonyms:Mt.browseSynonyms,deleteSynonym:Mt.deleteSynonym,clearSynonyms:Mt.clearSynonyms,replaceAllObjects:Mt.replaceAllObjects,replaceAllSynonyms:Mt.replaceAllSynonyms,searchRules:Mt.searchRules,getRule:Mt.getRule,deleteRule:Mt.deleteRule,saveRule:Mt.saveRule,saveRules:Mt.saveRules,replaceAllRules:Mt.replaceAllRules,browseRules:Mt.browseRules,clearRules:Mt.clearRules}}),initAnalytics:()=>g=>Ma.createAnalyticsClient(zn(dt(dt({},c),g),{methods:{addABTest:Ma.addABTest,getABTest:Ma.getABTest,getABTests:Ma.getABTests,stopABTest:Ma.stopABTest,deleteABTest:Ma.deleteABTest}})),initRecommendation:()=>g=>lw.createRecommendationClient(zn(dt(dt({},c),g),{methods:{getPersonalizationStrategy:lw.getPersonalizationStrategy,setPersonalizationStrategy:lw.setPersonalizationStrategy}}))}}))}mT.version=sw.version;pT.exports=mT});var _T=Me((OV,fw)=>{var gT=vT();fw.exports=gT;fw.exports.default=gT});var rf=Me(dw=>{"use strict";Object.defineProperty(dw,"__esModule",{value:!0});dw.default=kT;function kT(){}kT.prototype={diff:function(u,f){var c=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},g=c.callback;typeof c=="function"&&(g=c,c={}),this.options=c;var t=this;function C(re){return g?(setTimeout(function(){g(void 0,re)},0),!0):re}u=this.castInput(u),f=this.castInput(f),u=this.removeEmpty(this.tokenize(u)),f=this.removeEmpty(this.tokenize(f));var A=f.length,x=u.length,D=1,L=A+x,N=[{newPos:-1,components:[]}],j=this.extractCommon(N[0],f,u,0);if(N[0].newPos+1>=A&&j+1>=x)return C([{value:this.join(f),count:f.length}]);function $(){for(var re=-1*D;re<=D;re+=2){var ce=void 0,Q=N[re-1],oe=N[re+1],Se=(oe?oe.newPos:0)-re;Q&&(N[re-1]=void 0);var me=Q&&Q.newPos+1=A&&Se+1>=x)return C(LW(t,ce.components,f,u,t.useLongestToken));N[re]=ce}D++}if(g)(function re(){setTimeout(function(){if(D>L)return g();$()||re()},0)})();else for(;D<=L;){var h=$();if(h)return h}},pushComponent:function(u,f,c){var g=u[u.length-1];g&&g.added===f&&g.removed===c?u[u.length-1]={count:g.count+1,added:f,removed:c}:u.push({count:1,added:f,removed:c})},extractCommon:function(u,f,c,g){for(var t=f.length,C=c.length,A=u.newPos,x=A-g,D=0;A+1$.length?re:$}),D.value=i.join(L)}else D.value=i.join(f.slice(A,A+D.count));A+=D.count,D.added||(x+=D.count)}}var j=u[C-1];return C>1&&typeof j.value=="string"&&(j.added||j.removed)&&i.equals("",j.value)&&(u[C-2].value+=j.value,u.pop()),u}function RW(i){return{newPos:i.newPos,components:i.components.slice(0)}}});var OT=Me(ld=>{"use strict";Object.defineProperty(ld,"__esModule",{value:!0});ld.diffChars=NW;ld.characterDiff=void 0;var jW=BW(rf());function BW(i){return i&&i.__esModule?i:{default:i}}var AT=new jW.default;ld.characterDiff=AT;function NW(i,u,f){return AT.diff(i,u,f)}});var hw=Me(pw=>{"use strict";Object.defineProperty(pw,"__esModule",{value:!0});pw.generateOptions=UW;function UW(i,u){if(typeof i=="function")u.callback=i;else if(i)for(var f in i)i.hasOwnProperty(f)&&(u[f]=i[f]);return u}});var MT=Me(Fa=>{"use strict";Object.defineProperty(Fa,"__esModule",{value:!0});Fa.diffWords=qW;Fa.diffWordsWithSpace=zW;Fa.wordDiff=void 0;var HW=WW(rf()),bW=hw();function WW(i){return i&&i.__esModule?i:{default:i}}var IT=/^[A-Za-z\xC0-\u02C6\u02C8-\u02D7\u02DE-\u02FF\u1E00-\u1EFF]+$/,PT=/\S/,fd=new HW.default;Fa.wordDiff=fd;fd.equals=function(i,u){return this.options.ignoreCase&&(i=i.toLowerCase(),u=u.toLowerCase()),i===u||this.options.ignoreWhitespace&&!PT.test(i)&&!PT.test(u)};fd.tokenize=function(i){for(var u=i.split(/(\s+|[()[\]{}'"]|\b)/),f=0;f{"use strict";Object.defineProperty(La,"__esModule",{value:!0});La.diffLines=GW;La.diffTrimmedLines=VW;La.lineDiff=void 0;var $W=YW(rf()),KW=hw();function YW(i){return i&&i.__esModule?i:{default:i}}var Dm=new $W.default;La.lineDiff=Dm;Dm.tokenize=function(i){var u=[],f=i.split(/(\n|\r\n)/);f[f.length-1]||f.pop();for(var c=0;c{"use strict";Object.defineProperty(cd,"__esModule",{value:!0});cd.diffSentences=XW;cd.sentenceDiff=void 0;var QW=JW(rf());function JW(i){return i&&i.__esModule?i:{default:i}}var mw=new QW.default;cd.sentenceDiff=mw;mw.tokenize=function(i){return i.split(/(\S.+?[.!?])(?=\s+|$)/)};function XW(i,u,f){return mw.diff(i,u,f)}});var LT=Me(ad=>{"use strict";Object.defineProperty(ad,"__esModule",{value:!0});ad.diffCss=ZW;ad.cssDiff=void 0;var tH=eH(rf());function eH(i){return i&&i.__esModule?i:{default:i}}var vw=new tH.default;ad.cssDiff=vw;vw.tokenize=function(i){return i.split(/([{}:;,]|\s+)/)};function ZW(i,u,f){return vw.diff(i,u,f)}});var NT=Me(Ra=>{"use strict";Object.defineProperty(Ra,"__esModule",{value:!0});Ra.diffJson=nH;Ra.canonicalize=Sm;Ra.jsonDiff=void 0;var RT=rH(rf()),iH=Em();function rH(i){return i&&i.__esModule?i:{default:i}}function Cm(i){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Cm=function(f){return typeof f}:Cm=function(f){return f&&typeof Symbol=="function"&&f.constructor===Symbol&&f!==Symbol.prototype?"symbol":typeof f},Cm(i)}var oH=Object.prototype.toString,xc=new RT.default;Ra.jsonDiff=xc;xc.useLongestToken=!0;xc.tokenize=iH.lineDiff.tokenize;xc.castInput=function(i){var u=this.options,f=u.undefinedReplacement,c=u.stringifyReplacer,g=c===void 0?function(t,C){return typeof C=="undefined"?f:C}:c;return typeof i=="string"?i:JSON.stringify(Sm(i,null,null,g),g," ")};xc.equals=function(i,u){return RT.default.prototype.equals.call(xc,i.replace(/,([\r\n])/g,"$1"),u.replace(/,([\r\n])/g,"$1"))};function nH(i,u,f){return xc.diff(i,u,f)}function Sm(i,u,f,c,g){u=u||[],f=f||[],c&&(i=c(g,i));var t;for(t=0;t{"use strict";Object.defineProperty(dd,"__esModule",{value:!0});dd.diffArrays=uH;dd.arrayDiff=void 0;var lH=sH(rf());function sH(i){return i&&i.__esModule?i:{default:i}}var pd=new lH.default;dd.arrayDiff=pd;pd.tokenize=function(i){return i.slice()};pd.join=pd.removeEmpty=function(i){return i};function uH(i,u,f){return pd.diff(i,u,f)}});var Tm=Me(gw=>{"use strict";Object.defineProperty(gw,"__esModule",{value:!0});gw.parsePatch=fH;function fH(i){var u=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},f=i.split(/\r\n|[\n\v\f\r\x85]/),c=i.match(/\r\n|[\n\v\f\r\x85]/g)||[],g=[],t=0;function C(){var D={};for(g.push(D);t{"use strict";Object.defineProperty(_w,"__esModule",{value:!0});_w.default=cH;function cH(i,u,f){var c=!0,g=!1,t=!1,C=1;return function A(){if(c&&!t){if(g?C++:c=!1,i+C<=f)return C;t=!0}if(!g)return t||(c=!0),u<=i-C?-C++:(g=!0,A())}}});var zT=Me(xm=>{"use strict";Object.defineProperty(xm,"__esModule",{value:!0});xm.applyPatch=UT;xm.applyPatches=aH;var qT=Tm(),pH=dH(jT());function dH(i){return i&&i.__esModule?i:{default:i}}function UT(i,u){var f=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};if(typeof u=="string"&&(u=(0,qT.parsePatch)(u)),Array.isArray(u)){if(u.length>1)throw new Error("applyPatch only works with a single input.");u=u[0]}var c=i.split(/\r\n|[\n\v\f\r\x85]/),g=i.match(/\r\n|[\n\v\f\r\x85]/g)||[],t=u.hunks,C=f.compareLine||function(Ot,Nt,Je,V){return Nt===V},A=0,x=f.fuzzFactor||0,D=0,L=0,N,j;function $(Ot,Nt){for(var Je=0;Je0?V[0]:" ",ge=V.length>0?V.substr(1):V;if(ne===" "||ne==="-"){if(!C(Nt+1,c[Nt],ne,ge)&&(A++,A>x))return!1;Nt++}}return!0}for(var h=0;h0?Le[0]:" ",ct=Le.length>0?Le.substr(1):Le,Ue=J.linedelimiters[Oe];if(ot===" ")Te++;else if(ot==="-")c.splice(Te,1),g.splice(Te,1);else if(ot==="+")c.splice(Te,0,ct),g.splice(Te,0,Ue),Te++;else if(ot==="\\"){var be=J.lines[Oe-1]?J.lines[Oe-1][0]:null;be==="+"?N=!0:be==="-"&&(j=!0)}}}if(N)for(;!c[c.length-1];)c.pop(),g.pop();else j&&(c.push(""),g.push(` -`));for(var At=0;At{"use strict";Object.defineProperty(hd,"__esModule",{value:!0});hd.structuredPatch=WT;hd.createTwoFilesPatch=HT;hd.createPatch=hH;var mH=Em();function yw(i){return _H(i)||gH(i)||vH()}function vH(){throw new TypeError("Invalid attempt to spread non-iterable instance")}function gH(i){if(Symbol.iterator in Object(i)||Object.prototype.toString.call(i)==="[object Arguments]")return Array.from(i)}function _H(i){if(Array.isArray(i)){for(var u=0,f=new Array(i.length);u0?x(J.lines.slice(-C.context)):[],L-=j.length,N-=j.length)}(De=j).push.apply(De,yw(me.map(function(At){return(Se.added?"+":"-")+At}))),Se.added?h+=me.length:$+=me.length}else{if(L)if(me.length<=C.context*2&&oe=A.length-2&&me.length<=C.context){var ct=/\n$/.test(f),Ue=/\n$/.test(c),be=me.length==0&&j.length>ot.oldLines;!ct&&be&&j.splice(ot.oldLines,0,"\\ No newline at end of file"),(!ct&&!be||!Ue)&&j.push("\\ No newline at end of file")}D.push(ot),L=0,N=0,j=[]}$+=me.length,h+=me.length}},ce=0;ce{"use strict";Object.defineProperty(km,"__esModule",{value:!0});km.arrayEqual=yH;km.arrayStartsWith=bT;function yH(i,u){return i.length!==u.length?!1:bT(i,u)}function bT(i,u){if(u.length>i.length)return!1;for(var f=0;f{"use strict";Object.defineProperty(Am,"__esModule",{value:!0});Am.calcLineCount=VT;Am.merge=wH;var DH=ww(),EH=Tm(),Dw=GT();function Na(i){return TH(i)||CH(i)||SH()}function SH(){throw new TypeError("Invalid attempt to spread non-iterable instance")}function CH(i){if(Symbol.iterator in Object(i)||Object.prototype.toString.call(i)==="[object Arguments]")return Array.from(i)}function TH(i){if(Array.isArray(i)){for(var u=0,f=new Array(i.length);u{"use strict";Object.defineProperty(Cw,"__esModule",{value:!0});Cw.convertChangesToDMP=OH;function OH(i){for(var u=[],f,c,g=0;g{"use strict";Object.defineProperty(Tw,"__esModule",{value:!0});Tw.convertChangesToXML=IH;function IH(i){for(var u=[],f=0;f"):c.removed&&u.push(""),u.push(PH(c.value)),c.added?u.push(""):c.removed&&u.push("")}return u.join("")}function PH(i){var u=i;return u=u.replace(/&/g,"&"),u=u.replace(//g,">"),u=u.replace(/"/g,"""),u}});var f9=Me(w0=>{"use strict";Object.defineProperty(w0,"__esModule",{value:!0});Object.defineProperty(w0,"Diff",{enumerable:!0,get:function(){return MH.default}});Object.defineProperty(w0,"diffChars",{enumerable:!0,get:function(){return FH.diffChars}});Object.defineProperty(w0,"diffWords",{enumerable:!0,get:function(){return o9.diffWords}});Object.defineProperty(w0,"diffWordsWithSpace",{enumerable:!0,get:function(){return o9.diffWordsWithSpace}});Object.defineProperty(w0,"diffLines",{enumerable:!0,get:function(){return u9.diffLines}});Object.defineProperty(w0,"diffTrimmedLines",{enumerable:!0,get:function(){return u9.diffTrimmedLines}});Object.defineProperty(w0,"diffSentences",{enumerable:!0,get:function(){return LH.diffSentences}});Object.defineProperty(w0,"diffCss",{enumerable:!0,get:function(){return RH.diffCss}});Object.defineProperty(w0,"diffJson",{enumerable:!0,get:function(){return s9.diffJson}});Object.defineProperty(w0,"canonicalize",{enumerable:!0,get:function(){return s9.canonicalize}});Object.defineProperty(w0,"diffArrays",{enumerable:!0,get:function(){return NH.diffArrays}});Object.defineProperty(w0,"applyPatch",{enumerable:!0,get:function(){return l9.applyPatch}});Object.defineProperty(w0,"applyPatches",{enumerable:!0,get:function(){return l9.applyPatches}});Object.defineProperty(w0,"parsePatch",{enumerable:!0,get:function(){return BH.parsePatch}});Object.defineProperty(w0,"merge",{enumerable:!0,get:function(){return jH.merge}});Object.defineProperty(w0,"structuredPatch",{enumerable:!0,get:function(){return xw.structuredPatch}});Object.defineProperty(w0,"createTwoFilesPatch",{enumerable:!0,get:function(){return xw.createTwoFilesPatch}});Object.defineProperty(w0,"createPatch",{enumerable:!0,get:function(){return xw.createPatch}});Object.defineProperty(w0,"convertChangesToDMP",{enumerable:!0,get:function(){return UH.convertChangesToDMP}});Object.defineProperty(w0,"convertChangesToXML",{enumerable:!0,get:function(){return qH.convertChangesToXML}});var MH=zH(rf()),FH=OT(),o9=MT(),u9=Em(),LH=FT(),RH=LT(),s9=NT(),NH=BT(),l9=zT(),BH=Tm(),jH=n9(),xw=ww(),UH=r9(),qH=i9();function zH(i){return i&&i.__esModule?i:{default:i}}});var HH={};jR(HH,{default:()=>GH});var wT=Er(require("@yarnpkg/cli")),Tc=Er(require("@yarnpkg/core"));var Z5=Er(ys()),Dc=Er(lr()),om=(0,Dc.memo)(({active:i})=>{let u=(0,Dc.useMemo)(()=>i?"\u25C9":"\u25EF",[i]),f=(0,Dc.useMemo)(()=>i?"green":"yellow",[i]);return Dc.default.createElement(Z5.Text,{color:f},u)});var Wf=Er(ys()),Bo=Er(lr());var eC=Er(ys()),um=Er(lr());function zf({active:i},u,f){let{stdin:c}=(0,eC.useStdin)(),g=(0,um.useCallback)((t,C)=>u(t,C),f);(0,um.useEffect)(()=>{if(!(!i||!c))return c.on("keypress",g),()=>{c.off("keypress",g)}},[i,g,c])}var sm;(function(f){f.BEFORE="before",f.AFTER="after"})(sm||(sm={}));var tC=function({active:i},u,f){zf({active:i},(c,g)=>{g.name==="tab"&&(g.shift?u(sm.BEFORE):u(sm.AFTER))},f)};var lm=function(i,u,{active:f,minus:c,plus:g,set:t,loop:C=!0}){zf({active:f},(A,x)=>{let D=u.indexOf(i);switch(x.name){case c:{let L=D-1;if(C){t(u[(u.length+L)%u.length]);return}if(L<0)return;t(u[L])}break;case g:{let L=D+1;if(C){t(u[L%u.length]);return}if(L>=u.length)return;t(u[L])}break}},[u,i,g,t,C])};var fm=({active:i=!0,children:u=[],radius:f=10,size:c=1,loop:g=!0,onFocusRequest:t,willReachEnd:C})=>{let A=ce=>{if(ce.key===null)throw new Error("Expected all children to have a key");return ce.key},x=Bo.default.Children.map(u,ce=>A(ce)),D=x[0],[L,N]=(0,Bo.useState)(D),j=x.indexOf(L);(0,Bo.useEffect)(()=>{x.includes(L)||N(D)},[u]),(0,Bo.useEffect)(()=>{C&&j>=x.length-2&&C()},[j]),tC({active:i&&!!t},ce=>{t==null||t(ce)},[t]),lm(L,x,{active:i,minus:"up",plus:"down",set:N,loop:g});let $=j-f,h=j+f;h>x.length&&($-=h-x.length,h=x.length),$<0&&(h+=-$,$=0),h>=x.length&&(h=x.length-1);let re=[];for(let ce=$;ce<=h;++ce){let Q=x[ce],oe=i&&Q===L;re.push(Bo.default.createElement(Wf.Box,{key:Q,height:c},Bo.default.createElement(Wf.Box,{marginLeft:1,marginRight:1},Bo.default.createElement(Wf.Text,null,oe?Bo.default.createElement(Wf.Text,{color:"cyan",bold:!0},">"):" ")),Bo.default.createElement(Wf.Box,null,Bo.default.cloneElement(u[ce],{active:oe}))))}return Bo.default.createElement(Wf.Box,{flexDirection:"column",width:"100%"},re)};var cm=Er(lr());var nC=Er(ys()),nf=Er(lr()),rC=Er(require("readline")),G3=nf.default.createContext(null),iC=({children:i})=>{let{stdin:u,setRawMode:f}=(0,nC.useStdin)();(0,nf.useEffect)(()=>{f&&f(!0),u&&(0,rC.emitKeypressEvents)(u)},[u,f]);let[c,g]=(0,nf.useState)(new Map),t=(0,nf.useMemo)(()=>({getAll:()=>c,get:C=>c.get(C),set:(C,A)=>g(new Map([...c,[C,A]]))}),[c,g]);return nf.default.createElement(G3.Provider,{value:t,children:i})};function Ec(i,u){let f=(0,cm.useContext)(G3);if(f===null)throw new Error("Expected this hook to run with a ministore context attached");if(typeof i=="undefined")return f.getAll();let c=(0,cm.useCallback)(t=>{f.set(i,t)},[i,f.set]),g=f.get(i);return typeof g=="undefined"&&(g=u),[g,c]}var am=Er(ys()),V3=Er(lr());async function dm(i,u){let f,c=t=>{let{exit:C}=(0,am.useApp)();zf({active:!0},(A,x)=>{x.name==="return"&&(f=t,C())},[C,t])},{waitUntilExit:g}=(0,am.render)(V3.default.createElement(iC,null,V3.default.createElement(i,zn(dt({},u),{useSubmit:c}))));return await g(),f}var DT=Er(require("clipanion")),ET=Er(lC()),un=Er(ys()),Pt=Er(lr());var yT=Er(_T()),cw={appId:"OFCNCOG2CU",apiKey:"6fe4476ee5a1832882e326b506d14126",indexName:"npm-search"},FW=(0,yT.default)(cw.appId,cw.apiKey).initIndex(cw.indexName),aw=async(i,u=0)=>await FW.search(i,{analyticsTags:["yarn-plugin-interactive-tools"],attributesToRetrieve:["name","version","owner","repository","humanDownloadsLast30Days"],page:u,hitsPerPage:10});var od=["regular","dev","peer"],ud=class extends wT.BaseCommand{async execute(){let u=await Tc.Configuration.find(this.context.cwd,this.context.plugins),f=()=>Pt.default.createElement(un.Box,{flexDirection:"row"},Pt.default.createElement(un.Box,{flexDirection:"column",width:48},Pt.default.createElement(un.Box,null,Pt.default.createElement(un.Text,null,"Press ",Pt.default.createElement(un.Text,{bold:!0,color:"cyanBright"},""),"/",Pt.default.createElement(un.Text,{bold:!0,color:"cyanBright"},"")," to move between packages.")),Pt.default.createElement(un.Box,null,Pt.default.createElement(un.Text,null,"Press ",Pt.default.createElement(un.Text,{bold:!0,color:"cyanBright"},"")," to select a package.")),Pt.default.createElement(un.Box,null,Pt.default.createElement(un.Text,null,"Press ",Pt.default.createElement(un.Text,{bold:!0,color:"cyanBright"},"")," again to change the target."))),Pt.default.createElement(un.Box,{flexDirection:"column"},Pt.default.createElement(un.Box,{marginLeft:1},Pt.default.createElement(un.Text,null,"Press ",Pt.default.createElement(un.Text,{bold:!0,color:"cyanBright"},"")," to install the selected packages.")),Pt.default.createElement(un.Box,{marginLeft:1},Pt.default.createElement(un.Text,null,"Press ",Pt.default.createElement(un.Text,{bold:!0,color:"cyanBright"},"")," to abort.")))),c=()=>Pt.default.createElement(Pt.default.Fragment,null,Pt.default.createElement(un.Box,{width:15},Pt.default.createElement(un.Text,{bold:!0,underline:!0,color:"gray"},"Owner")),Pt.default.createElement(un.Box,{width:11},Pt.default.createElement(un.Text,{bold:!0,underline:!0,color:"gray"},"Version")),Pt.default.createElement(un.Box,{width:10},Pt.default.createElement(un.Text,{bold:!0,underline:!0,color:"gray"},"Downloads"))),g=()=>Pt.default.createElement(un.Box,{width:17},Pt.default.createElement(un.Text,{bold:!0,underline:!0,color:"gray"},"Target")),t=({hit:$,active:h})=>{let[re,ce]=Ec($.name,null);zf({active:h},(Se,me)=>{if(me.name!=="space")return;if(!re){ce(od[0]);return}let De=od.indexOf(re)+1;De===od.length?ce(null):ce(od[De])},[re,ce]);let Q=Tc.structUtils.parseIdent($.name),oe=Tc.structUtils.prettyIdent(u,Q);return Pt.default.createElement(un.Box,null,Pt.default.createElement(un.Box,{width:45},Pt.default.createElement(un.Text,{bold:!0,wrap:"wrap"},oe)),Pt.default.createElement(un.Box,{width:14,marginLeft:1},Pt.default.createElement(un.Text,{bold:!0,wrap:"truncate"},$.owner.name)),Pt.default.createElement(un.Box,{width:10,marginLeft:1},Pt.default.createElement(un.Text,{italic:!0,wrap:"truncate"},$.version)),Pt.default.createElement(un.Box,{width:16,marginLeft:1},Pt.default.createElement(un.Text,null,$.humanDownloadsLast30Days)))},C=({name:$,active:h})=>{let[re]=Ec($,null),ce=Tc.structUtils.parseIdent($);return Pt.default.createElement(un.Box,null,Pt.default.createElement(un.Box,{width:47},Pt.default.createElement(un.Text,{bold:!0}," - ",Tc.structUtils.prettyIdent(u,ce))),od.map(Q=>Pt.default.createElement(un.Box,{key:Q,width:14,marginLeft:1},Pt.default.createElement(un.Text,null," ",Pt.default.createElement(om,{active:re===Q})," ",Pt.default.createElement(un.Text,{bold:!0},Q)))))},A=()=>Pt.default.createElement(un.Box,{marginTop:1},Pt.default.createElement(un.Text,null,"Powered by Algolia.")),D=await dm(({useSubmit:$})=>{let h=Ec();$(h);let re=Array.from(h.keys()).filter(Le=>h.get(Le)!==null),[ce,Q]=(0,Pt.useState)(""),[oe,Se]=(0,Pt.useState)(0),[me,De]=(0,Pt.useState)([]),J=Le=>{Le.match(/\t| /)||Q(Le)},Te=async()=>{Se(0);let Le=await aw(ce);Le.query===ce&&De(Le.hits)},Oe=async()=>{let Le=await aw(ce,oe+1);Le.query===ce&&Le.page-1===oe&&(Se(Le.page),De([...me,...Le.hits]))};return(0,Pt.useEffect)(()=>{ce?Te():De([])},[ce]),Pt.default.createElement(un.Box,{flexDirection:"column"},Pt.default.createElement(f,null),Pt.default.createElement(un.Box,{flexDirection:"row",marginTop:1},Pt.default.createElement(un.Text,{bold:!0},"Search: "),Pt.default.createElement(un.Box,{width:41},Pt.default.createElement(ET.default,{value:ce,onChange:J,placeholder:"i.e. babel, webpack, react...",showCursor:!1})),Pt.default.createElement(c,null)),me.length?Pt.default.createElement(fm,{radius:2,loop:!1,children:me.map(Le=>Pt.default.createElement(t,{key:Le.name,hit:Le,active:!1})),willReachEnd:Oe}):Pt.default.createElement(un.Text,{color:"gray"},"Start typing..."),Pt.default.createElement(un.Box,{flexDirection:"row",marginTop:1},Pt.default.createElement(un.Box,{width:49},Pt.default.createElement(un.Text,{bold:!0},"Selected:")),Pt.default.createElement(g,null)),re.length?re.map(Le=>Pt.default.createElement(C,{key:Le,name:Le,active:!1})):Pt.default.createElement(un.Text,{color:"gray"},"No selected packages..."),Pt.default.createElement(A,null))},{});if(typeof D=="undefined")return 1;let L=Array.from(D.keys()).filter($=>D.get($)==="regular"),N=Array.from(D.keys()).filter($=>D.get($)==="dev"),j=Array.from(D.keys()).filter($=>D.get($)==="peer");return L.length&&await this.cli.run(["add",...L]),N.length&&await this.cli.run(["add","--dev",...N]),j&&await this.cli.run(["add","--peer",...j]),0}};ud.paths=[["search"]],ud.usage=DT.Command.Usage({category:"Interactive commands",description:"open the search interface",details:` - This command opens a fullscreen terminal interface where you can search for and install packages from the npm registry. - `,examples:[["Open the search window","yarn search"]]});var ST=ud;var Im=Er(require("@yarnpkg/cli")),W0=Er(require("@yarnpkg/core"));var sd=Er(ys()),bf=Er(lr());var CT=Er(ys()),TT=Er(lr()),wm=({length:i,active:u})=>{if(i===0)return null;let f=i>1?` ${"-".repeat(i-1)}`:" ";return TT.default.createElement(CT.Text,{dimColor:!u},f)};var xT=function({active:i,skewer:u,options:f,value:c,onChange:g,sizes:t=[]}){let C=f.filter(({label:x})=>!!x).map(({value:x})=>x),A=f.findIndex(x=>x.value===c&&x.label!="");return lm(c,C,{active:i,minus:"left",plus:"right",set:g}),bf.default.createElement(bf.default.Fragment,null,f.map(({label:x},D)=>{let L=D===A,N=t[D]-1||0,j=x.replace(/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g,""),$=Math.max(0,N-j.length-2);return x?bf.default.createElement(sd.Box,{key:x,width:N,marginLeft:1},bf.default.createElement(sd.Text,{wrap:"truncate"},bf.default.createElement(om,{active:L})," ",x),u?bf.default.createElement(wm,{active:i,length:$}):null):bf.default.createElement(sd.Box,{key:`spacer-${D}`,width:N,marginLeft:1})}))};var c9=Er(require("@yarnpkg/plugin-essentials")),a9=Er(require("clipanion")),d9=Er(f9()),tr=Er(ys()),pn=Er(lr()),p9=Er(require("semver")),h9=/^((?:[\^~]|>=?)?)([0-9]+)(\.[0-9]+)(\.[0-9]+)((?:-\S+)?)$/,WH=10,md=class extends Im.BaseCommand{async execute(){let u=await W0.Configuration.find(this.context.cwd,this.context.plugins),{project:f,workspace:c}=await W0.Project.find(u,this.context.cwd),g=await W0.Cache.find(u);if(!c)throw new Im.WorkspaceRequiredError(f.cwd,this.context.cwd);await f.restoreInstallState({restoreResolutions:!1});let t=(Q,oe)=>{let Se=(0,d9.diffWords)(Q,oe),me="";for(let De of Se)De.added?me+=W0.formatUtils.pretty(u,De.value,"green"):De.removed||(me+=De.value);return me},C=(Q,oe)=>{if(Q===oe)return oe;let Se=W0.structUtils.parseRange(Q),me=W0.structUtils.parseRange(oe),De=Se.selector.match(h9),J=me.selector.match(h9);if(!De||!J)return t(Q,oe);let Te=["gray","red","yellow","green","magenta"],Oe=null,Le="";for(let ot=1;ot{let me=await c9.suggestUtils.fetchDescriptorFrom(Q,Se,{project:f,cache:g,preserveModifier:oe,workspace:c});return me!==null?me.range:Q.range},x=async Q=>{let oe=p9.default.valid(Q.range)?`^${Q.range}`:Q.range,[Se,me]=await Promise.all([A(Q,Q.range,oe).catch(()=>null),A(Q,Q.range,"latest").catch(()=>null)]),De=[{value:null,label:Q.range}];return Se&&Se!==Q.range?De.push({value:Se,label:C(Q.range,Se)}):De.push({value:null,label:""}),me&&me!==Se&&me!==Q.range?De.push({value:me,label:C(Q.range,me)}):De.push({value:null,label:""}),De},D=()=>pn.default.createElement(tr.Box,{flexDirection:"row"},pn.default.createElement(tr.Box,{flexDirection:"column",width:49},pn.default.createElement(tr.Box,{marginLeft:1},pn.default.createElement(tr.Text,null,"Press ",pn.default.createElement(tr.Text,{bold:!0,color:"cyanBright"},""),"/",pn.default.createElement(tr.Text,{bold:!0,color:"cyanBright"},"")," to select packages.")),pn.default.createElement(tr.Box,{marginLeft:1},pn.default.createElement(tr.Text,null,"Press ",pn.default.createElement(tr.Text,{bold:!0,color:"cyanBright"},""),"/",pn.default.createElement(tr.Text,{bold:!0,color:"cyanBright"},"")," to select versions."))),pn.default.createElement(tr.Box,{flexDirection:"column"},pn.default.createElement(tr.Box,{marginLeft:1},pn.default.createElement(tr.Text,null,"Press ",pn.default.createElement(tr.Text,{bold:!0,color:"cyanBright"},"")," to install.")),pn.default.createElement(tr.Box,{marginLeft:1},pn.default.createElement(tr.Text,null,"Press ",pn.default.createElement(tr.Text,{bold:!0,color:"cyanBright"},"")," to abort.")))),L=()=>pn.default.createElement(tr.Box,{flexDirection:"row",paddingTop:1,paddingBottom:1},pn.default.createElement(tr.Box,{width:50},pn.default.createElement(tr.Text,{bold:!0},pn.default.createElement(tr.Text,{color:"greenBright"},"?")," Pick the packages you want to upgrade.")),pn.default.createElement(tr.Box,{width:17},pn.default.createElement(tr.Text,{bold:!0,underline:!0,color:"gray"},"Current")),pn.default.createElement(tr.Box,{width:17},pn.default.createElement(tr.Text,{bold:!0,underline:!0,color:"gray"},"Range")),pn.default.createElement(tr.Box,{width:17},pn.default.createElement(tr.Text,{bold:!0,underline:!0,color:"gray"},"Latest"))),N=({active:Q,descriptor:oe,suggestions:Se})=>{let[me,De]=Ec(oe.descriptorHash,null),J=W0.structUtils.stringifyIdent(oe),Te=Math.max(0,45-J.length);return pn.default.createElement(pn.default.Fragment,null,pn.default.createElement(tr.Box,null,pn.default.createElement(tr.Box,{width:45},pn.default.createElement(tr.Text,{bold:!0},W0.structUtils.prettyIdent(u,oe)),pn.default.createElement(wm,{active:Q,length:Te})),Se!==null?pn.default.createElement(xT,{active:Q,options:Se,value:me,skewer:!0,onChange:De,sizes:[17,17,17]}):pn.default.createElement(tr.Box,{marginLeft:2},pn.default.createElement(tr.Text,{color:"gray"},"Fetching suggestions..."))))},j=({dependencies:Q})=>{let[oe,Se]=(0,pn.useState)(null),me=(0,pn.useRef)(!0);return(0,pn.useEffect)(()=>()=>{me.current=!1}),(0,pn.useEffect)(()=>{Promise.all(Q.map(De=>x(De))).then(De=>{let J=Q.map((Te,Oe)=>{let Le=De[Oe];return[Te,Le]}).filter(([Te,Oe])=>Oe.filter(Le=>Le.label!=="").length>1);me.current&&Se(J)})},[]),oe?oe.length?pn.default.createElement(fm,{radius:WH,children:oe.map(([De,J])=>pn.default.createElement(N,{key:De.descriptorHash,active:!1,descriptor:De,suggestions:J}))}):pn.default.createElement(tr.Text,null,"No upgrades found"):pn.default.createElement(tr.Text,null,"Fetching suggestions...")},h=await dm(({useSubmit:Q})=>{Q(Ec());let oe=new Map;for(let me of f.workspaces)for(let De of["dependencies","devDependencies"])for(let J of me.manifest[De].values())f.tryWorkspaceByDescriptor(J)===null&&oe.set(J.descriptorHash,J);let Se=W0.miscUtils.sortMap(oe.values(),me=>W0.structUtils.stringifyDescriptor(me));return pn.default.createElement(tr.Box,{flexDirection:"column"},pn.default.createElement(D,null),pn.default.createElement(L,null),pn.default.createElement(j,{dependencies:Se}))},{});if(typeof h=="undefined")return 1;let re=!1;for(let Q of f.workspaces)for(let oe of["dependencies","devDependencies"]){let Se=Q.manifest[oe];for(let me of Se.values()){let De=h.get(me.descriptorHash);typeof De!="undefined"&&De!==null&&(Se.set(me.identHash,W0.structUtils.makeDescriptor(me,De)),re=!0)}}return re?(await W0.StreamReport.start({configuration:u,stdout:this.context.stdout,includeLogs:!this.context.quiet},async Q=>{await f.install({cache:g,report:Q})})).exitCode():0}};md.paths=[["upgrade-interactive"]],md.usage=a9.Command.Usage({category:"Interactive commands",description:"open the upgrade interface",details:` - This command opens a fullscreen terminal interface where you can see any out of date packages used by your application, their status compared to the latest versions available on the remote registry, and select packages to upgrade. - `,examples:[["Open the upgrade window","yarn upgrade-interactive"]]});var m9=md;var bH={commands:[ST,m9]},GH=bH;return HH;})(); -/* -object-assign -(c) Sindre Sorhus -@license MIT -*/ -/** - * @license - * Lodash - * Copyright OpenJS Foundation and other contributors - * Released under MIT license - * Based on Underscore.js 1.8.3 - * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - */ -/** @license React v0.0.0-experimental-51a3aa6af - * react-debug-tools.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ -/** @license React v0.0.0-experimental-51a3aa6af - * react-is.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ -/** @license React v0.0.0-experimental-51a3aa6af - * react.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ -/** @license React v0.18.0 - * scheduler.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ -/** @license React v0.24.0 - * react-reconciler.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ -/** @license React v16.13.1 - * react.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ -return plugin; -} -}; diff --git a/tgui/.yarn/releases/yarn-3.1.1.cjs b/tgui/.yarn/releases/yarn-3.1.1.cjs deleted file mode 100644 index f5f2adca83b2..000000000000 --- a/tgui/.yarn/releases/yarn-3.1.1.cjs +++ /dev/null @@ -1,768 +0,0 @@ -#!/usr/bin/env node -/* eslint-disable */ -//prettier-ignore -(()=>{var Mfe=Object.create,Vf=Object.defineProperty,Ofe=Object.defineProperties,Kfe=Object.getOwnPropertyDescriptor,Ufe=Object.getOwnPropertyDescriptors,Hfe=Object.getOwnPropertyNames,hE=Object.getOwnPropertySymbols,Gfe=Object.getPrototypeOf,eb=Object.prototype.hasOwnProperty,lO=Object.prototype.propertyIsEnumerable;var cO=(t,e,r)=>e in t?Vf(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,P=(t,e)=>{for(var r in e||(e={}))eb.call(e,r)&&cO(t,r,e[r]);if(hE)for(var r of hE(e))lO.call(e,r)&&cO(t,r,e[r]);return t},_=(t,e)=>Ofe(t,Ufe(e)),jfe=t=>Vf(t,"__esModule",{value:!0});var qr=(t,e)=>{var r={};for(var i in t)eb.call(t,i)&&e.indexOf(i)<0&&(r[i]=t[i]);if(t!=null&&hE)for(var i of hE(t))e.indexOf(i)<0&&lO.call(t,i)&&(r[i]=t[i]);return r},Yfe=(t,e)=>()=>(t&&(e=t(t=0)),e),E=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),it=(t,e)=>{for(var r in e)Vf(t,r,{get:e[r],enumerable:!0})},qfe=(t,e,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Hfe(e))!eb.call(t,i)&&i!=="default"&&Vf(t,i,{get:()=>e[i],enumerable:!(r=Kfe(e,i))||r.enumerable});return t},ie=t=>qfe(jfe(Vf(t!=null?Mfe(Gfe(t)):{},"default",t&&t.__esModule&&"default"in t?{get:()=>t.default,enumerable:!0}:{value:t,enumerable:!0})),t);var MO=E((i$e,FO)=>{FO.exports=NO;NO.sync=Ahe;var LO=require("fs");function lhe(t,e){var r=e.pathExt!==void 0?e.pathExt:process.env.PATHEXT;if(!r||(r=r.split(";"),r.indexOf("")!==-1))return!0;for(var i=0;i{OO.exports=KO;KO.sync=che;var UO=require("fs");function KO(t,e,r){UO.stat(t,function(i,n){r(i,i?!1:HO(n,e))})}function che(t,e){return HO(UO.statSync(t),e)}function HO(t,e){return t.isFile()&&uhe(t,e)}function uhe(t,e){var r=t.mode,i=t.uid,n=t.gid,s=e.uid!==void 0?e.uid:process.getuid&&process.getuid(),o=e.gid!==void 0?e.gid:process.getgid&&process.getgid(),a=parseInt("100",8),l=parseInt("010",8),c=parseInt("001",8),u=a|l,g=r&c||r&l&&n===o||r&a&&i===s||r&u&&s===0;return g}});var YO=E((o$e,jO)=>{var s$e=require("fs"),xE;process.platform==="win32"||global.TESTING_WINDOWS?xE=MO():xE=GO();jO.exports=db;db.sync=ghe;function db(t,e,r){if(typeof e=="function"&&(r=e,e={}),!r){if(typeof Promise!="function")throw new TypeError("callback not provided");return new Promise(function(i,n){db(t,e||{},function(s,o){s?n(s):i(o)})})}xE(t,e||{},function(i,n){i&&(i.code==="EACCES"||e&&e.ignoreErrors)&&(i=null,n=!1),r(i,n)})}function ghe(t,e){try{return xE.sync(t,e||{})}catch(r){if(e&&e.ignoreErrors||r.code==="EACCES")return!1;throw r}}});var XO=E((a$e,qO)=>{var eu=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",JO=require("path"),fhe=eu?";":":",WO=YO(),zO=t=>Object.assign(new Error(`not found: ${t}`),{code:"ENOENT"}),VO=(t,e)=>{let r=e.colon||fhe,i=t.match(/\//)||eu&&t.match(/\\/)?[""]:[...eu?[process.cwd()]:[],...(e.path||process.env.PATH||"").split(r)],n=eu?e.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",s=eu?n.split(r):[""];return eu&&t.indexOf(".")!==-1&&s[0]!==""&&s.unshift(""),{pathEnv:i,pathExt:s,pathExtExe:n}},_O=(t,e,r)=>{typeof e=="function"&&(r=e,e={}),e||(e={});let{pathEnv:i,pathExt:n,pathExtExe:s}=VO(t,e),o=[],a=c=>new Promise((u,g)=>{if(c===i.length)return e.all&&o.length?u(o):g(zO(t));let f=i[c],h=/^".*"$/.test(f)?f.slice(1,-1):f,p=JO.join(h,t),d=!h&&/^\.[\\\/]/.test(t)?t.slice(0,2)+p:p;u(l(d,c,0))}),l=(c,u,g)=>new Promise((f,h)=>{if(g===n.length)return f(a(u+1));let p=n[g];WO(c+p,{pathExt:s},(d,m)=>{if(!d&&m)if(e.all)o.push(c+p);else return f(c+p);return f(l(c,u,g+1))})});return r?a(0).then(c=>r(null,c),r):a(0)},hhe=(t,e)=>{e=e||{};let{pathEnv:r,pathExt:i,pathExtExe:n}=VO(t,e),s=[];for(let o=0;o{"use strict";var ZO=(t={})=>{let e=t.env||process.env;return(t.platform||process.platform)!=="win32"?"PATH":Object.keys(e).reverse().find(i=>i.toUpperCase()==="PATH")||"Path"};Cb.exports=ZO;Cb.exports.default=ZO});var iK=E((l$e,eK)=>{"use strict";var tK=require("path"),phe=XO(),dhe=$O();function rK(t,e){let r=t.options.env||process.env,i=process.cwd(),n=t.options.cwd!=null,s=n&&process.chdir!==void 0&&!process.chdir.disabled;if(s)try{process.chdir(t.options.cwd)}catch(a){}let o;try{o=phe.sync(t.command,{path:r[dhe({env:r})],pathExt:e?tK.delimiter:void 0})}catch(a){}finally{s&&process.chdir(i)}return o&&(o=tK.resolve(n?t.options.cwd:"",o)),o}function Che(t){return rK(t)||rK(t,!0)}eK.exports=Che});var nK=E((c$e,mb)=>{"use strict";var Eb=/([()\][%!^"`<>&|;, *?])/g;function mhe(t){return t=t.replace(Eb,"^$1"),t}function Ehe(t,e){return t=`${t}`,t=t.replace(/(\\*)"/g,'$1$1\\"'),t=t.replace(/(\\*)$/,"$1$1"),t=`"${t}"`,t=t.replace(Eb,"^$1"),e&&(t=t.replace(Eb,"^$1")),t}mb.exports.command=mhe;mb.exports.argument=Ehe});var oK=E((u$e,sK)=>{"use strict";sK.exports=/^#!(.*)/});var AK=E((g$e,aK)=>{"use strict";var Ihe=oK();aK.exports=(t="")=>{let e=t.match(Ihe);if(!e)return null;let[r,i]=e[0].replace(/#! ?/,"").split(" "),n=r.split("/").pop();return n==="env"?i:i?`${n} ${i}`:n}});var cK=E((f$e,lK)=>{"use strict";var Ib=require("fs"),yhe=AK();function whe(t){let e=150,r=Buffer.alloc(e),i;try{i=Ib.openSync(t,"r"),Ib.readSync(i,r,0,e,0),Ib.closeSync(i)}catch(n){}return yhe(r.toString())}lK.exports=whe});var hK=E((h$e,uK)=>{"use strict";var Bhe=require("path"),gK=iK(),fK=nK(),Qhe=cK(),bhe=process.platform==="win32",vhe=/\.(?:com|exe)$/i,She=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function xhe(t){t.file=gK(t);let e=t.file&&Qhe(t.file);return e?(t.args.unshift(t.file),t.command=e,gK(t)):t.file}function khe(t){if(!bhe)return t;let e=xhe(t),r=!vhe.test(e);if(t.options.forceShell||r){let i=She.test(e);t.command=Bhe.normalize(t.command),t.command=fK.command(t.command),t.args=t.args.map(s=>fK.argument(s,i));let n=[t.command].concat(t.args).join(" ");t.args=["/d","/s","/c",`"${n}"`],t.command=process.env.comspec||"cmd.exe",t.options.windowsVerbatimArguments=!0}return t}function Phe(t,e,r){e&&!Array.isArray(e)&&(r=e,e=null),e=e?e.slice(0):[],r=Object.assign({},r);let i={command:t,args:e,options:r,file:void 0,original:{command:t,args:e}};return r.shell?i:khe(i)}uK.exports=Phe});var CK=E((p$e,pK)=>{"use strict";var yb=process.platform==="win32";function wb(t,e){return Object.assign(new Error(`${e} ${t.command} ENOENT`),{code:"ENOENT",errno:"ENOENT",syscall:`${e} ${t.command}`,path:t.command,spawnargs:t.args})}function Dhe(t,e){if(!yb)return;let r=t.emit;t.emit=function(i,n){if(i==="exit"){let s=dK(n,e,"spawn");if(s)return r.call(t,"error",s)}return r.apply(t,arguments)}}function dK(t,e){return yb&&t===1&&!e.file?wb(e.original,"spawn"):null}function Rhe(t,e){return yb&&t===1&&!e.file?wb(e.original,"spawnSync"):null}pK.exports={hookChildProcess:Dhe,verifyENOENT:dK,verifyENOENTSync:Rhe,notFoundError:wb}});var bb=E((d$e,tu)=>{"use strict";var mK=require("child_process"),Bb=hK(),Qb=CK();function EK(t,e,r){let i=Bb(t,e,r),n=mK.spawn(i.command,i.args,i.options);return Qb.hookChildProcess(n,i),n}function Fhe(t,e,r){let i=Bb(t,e,r),n=mK.spawnSync(i.command,i.args,i.options);return n.error=n.error||Qb.verifyENOENTSync(n.status,i),n}tu.exports=EK;tu.exports.spawn=EK;tu.exports.sync=Fhe;tu.exports._parse=Bb;tu.exports._enoent=Qb});var yK=E((y$e,IK)=>{"use strict";IK.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}});var Nb=E((w$e,wK)=>{var gh=yK(),BK={};for(let t of Object.keys(gh))BK[gh[t]]=t;var Xe={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};wK.exports=Xe;for(let t of Object.keys(Xe)){if(!("channels"in Xe[t]))throw new Error("missing channels property: "+t);if(!("labels"in Xe[t]))throw new Error("missing channel labels property: "+t);if(Xe[t].labels.length!==Xe[t].channels)throw new Error("channel and label counts mismatch: "+t);let{channels:e,labels:r}=Xe[t];delete Xe[t].channels,delete Xe[t].labels,Object.defineProperty(Xe[t],"channels",{value:e}),Object.defineProperty(Xe[t],"labels",{value:r})}Xe.rgb.hsl=function(t){let e=t[0]/255,r=t[1]/255,i=t[2]/255,n=Math.min(e,r,i),s=Math.max(e,r,i),o=s-n,a,l;s===n?a=0:e===s?a=(r-i)/o:r===s?a=2+(i-e)/o:i===s&&(a=4+(e-r)/o),a=Math.min(a*60,360),a<0&&(a+=360);let c=(n+s)/2;return s===n?l=0:c<=.5?l=o/(s+n):l=o/(2-s-n),[a,l*100,c*100]};Xe.rgb.hsv=function(t){let e,r,i,n,s,o=t[0]/255,a=t[1]/255,l=t[2]/255,c=Math.max(o,a,l),u=c-Math.min(o,a,l),g=function(f){return(c-f)/6/u+1/2};return u===0?(n=0,s=0):(s=u/c,e=g(o),r=g(a),i=g(l),o===c?n=i-r:a===c?n=1/3+e-i:l===c&&(n=2/3+r-e),n<0?n+=1:n>1&&(n-=1)),[n*360,s*100,c*100]};Xe.rgb.hwb=function(t){let e=t[0],r=t[1],i=t[2],n=Xe.rgb.hsl(t)[0],s=1/255*Math.min(e,Math.min(r,i));return i=1-1/255*Math.max(e,Math.max(r,i)),[n,s*100,i*100]};Xe.rgb.cmyk=function(t){let e=t[0]/255,r=t[1]/255,i=t[2]/255,n=Math.min(1-e,1-r,1-i),s=(1-e-n)/(1-n)||0,o=(1-r-n)/(1-n)||0,a=(1-i-n)/(1-n)||0;return[s*100,o*100,a*100,n*100]};function The(t,e){return(t[0]-e[0])**2+(t[1]-e[1])**2+(t[2]-e[2])**2}Xe.rgb.keyword=function(t){let e=BK[t];if(e)return e;let r=Infinity,i;for(let n of Object.keys(gh)){let s=gh[n],o=The(t,s);o.04045?((e+.055)/1.055)**2.4:e/12.92,r=r>.04045?((r+.055)/1.055)**2.4:r/12.92,i=i>.04045?((i+.055)/1.055)**2.4:i/12.92;let n=e*.4124+r*.3576+i*.1805,s=e*.2126+r*.7152+i*.0722,o=e*.0193+r*.1192+i*.9505;return[n*100,s*100,o*100]};Xe.rgb.lab=function(t){let e=Xe.rgb.xyz(t),r=e[0],i=e[1],n=e[2];r/=95.047,i/=100,n/=108.883,r=r>.008856?r**(1/3):7.787*r+16/116,i=i>.008856?i**(1/3):7.787*i+16/116,n=n>.008856?n**(1/3):7.787*n+16/116;let s=116*i-16,o=500*(r-i),a=200*(i-n);return[s,o,a]};Xe.hsl.rgb=function(t){let e=t[0]/360,r=t[1]/100,i=t[2]/100,n,s,o;if(r===0)return o=i*255,[o,o,o];i<.5?n=i*(1+r):n=i+r-i*r;let a=2*i-n,l=[0,0,0];for(let c=0;c<3;c++)s=e+1/3*-(c-1),s<0&&s++,s>1&&s--,6*s<1?o=a+(n-a)*6*s:2*s<1?o=n:3*s<2?o=a+(n-a)*(2/3-s)*6:o=a,l[c]=o*255;return l};Xe.hsl.hsv=function(t){let e=t[0],r=t[1]/100,i=t[2]/100,n=r,s=Math.max(i,.01);i*=2,r*=i<=1?i:2-i,n*=s<=1?s:2-s;let o=(i+r)/2,a=i===0?2*n/(s+n):2*r/(i+r);return[e,a*100,o*100]};Xe.hsv.rgb=function(t){let e=t[0]/60,r=t[1]/100,i=t[2]/100,n=Math.floor(e)%6,s=e-Math.floor(e),o=255*i*(1-r),a=255*i*(1-r*s),l=255*i*(1-r*(1-s));switch(i*=255,n){case 0:return[i,l,o];case 1:return[a,i,o];case 2:return[o,i,l];case 3:return[o,a,i];case 4:return[l,o,i];case 5:return[i,o,a]}};Xe.hsv.hsl=function(t){let e=t[0],r=t[1]/100,i=t[2]/100,n=Math.max(i,.01),s,o;o=(2-r)*i;let a=(2-r)*n;return s=r*n,s/=a<=1?a:2-a,s=s||0,o/=2,[e,s*100,o*100]};Xe.hwb.rgb=function(t){let e=t[0]/360,r=t[1]/100,i=t[2]/100,n=r+i,s;n>1&&(r/=n,i/=n);let o=Math.floor(6*e),a=1-i;s=6*e-o,(o&1)!=0&&(s=1-s);let l=r+s*(a-r),c,u,g;switch(o){default:case 6:case 0:c=a,u=l,g=r;break;case 1:c=l,u=a,g=r;break;case 2:c=r,u=a,g=l;break;case 3:c=r,u=l,g=a;break;case 4:c=l,u=r,g=a;break;case 5:c=a,u=r,g=l;break}return[c*255,u*255,g*255]};Xe.cmyk.rgb=function(t){let e=t[0]/100,r=t[1]/100,i=t[2]/100,n=t[3]/100,s=1-Math.min(1,e*(1-n)+n),o=1-Math.min(1,r*(1-n)+n),a=1-Math.min(1,i*(1-n)+n);return[s*255,o*255,a*255]};Xe.xyz.rgb=function(t){let e=t[0]/100,r=t[1]/100,i=t[2]/100,n,s,o;return n=e*3.2406+r*-1.5372+i*-.4986,s=e*-.9689+r*1.8758+i*.0415,o=e*.0557+r*-.204+i*1.057,n=n>.0031308?1.055*n**(1/2.4)-.055:n*12.92,s=s>.0031308?1.055*s**(1/2.4)-.055:s*12.92,o=o>.0031308?1.055*o**(1/2.4)-.055:o*12.92,n=Math.min(Math.max(0,n),1),s=Math.min(Math.max(0,s),1),o=Math.min(Math.max(0,o),1),[n*255,s*255,o*255]};Xe.xyz.lab=function(t){let e=t[0],r=t[1],i=t[2];e/=95.047,r/=100,i/=108.883,e=e>.008856?e**(1/3):7.787*e+16/116,r=r>.008856?r**(1/3):7.787*r+16/116,i=i>.008856?i**(1/3):7.787*i+16/116;let n=116*r-16,s=500*(e-r),o=200*(r-i);return[n,s,o]};Xe.lab.xyz=function(t){let e=t[0],r=t[1],i=t[2],n,s,o;s=(e+16)/116,n=r/500+s,o=s-i/200;let a=s**3,l=n**3,c=o**3;return s=a>.008856?a:(s-16/116)/7.787,n=l>.008856?l:(n-16/116)/7.787,o=c>.008856?c:(o-16/116)/7.787,n*=95.047,s*=100,o*=108.883,[n,s,o]};Xe.lab.lch=function(t){let e=t[0],r=t[1],i=t[2],n;n=Math.atan2(i,r)*360/2/Math.PI,n<0&&(n+=360);let o=Math.sqrt(r*r+i*i);return[e,o,n]};Xe.lch.lab=function(t){let e=t[0],r=t[1],n=t[2]/360*2*Math.PI,s=r*Math.cos(n),o=r*Math.sin(n);return[e,s,o]};Xe.rgb.ansi16=function(t,e=null){let[r,i,n]=t,s=e===null?Xe.rgb.hsv(t)[2]:e;if(s=Math.round(s/50),s===0)return 30;let o=30+(Math.round(n/255)<<2|Math.round(i/255)<<1|Math.round(r/255));return s===2&&(o+=60),o};Xe.hsv.ansi16=function(t){return Xe.rgb.ansi16(Xe.hsv.rgb(t),t[2])};Xe.rgb.ansi256=function(t){let e=t[0],r=t[1],i=t[2];return e===r&&r===i?e<8?16:e>248?231:Math.round((e-8)/247*24)+232:16+36*Math.round(e/255*5)+6*Math.round(r/255*5)+Math.round(i/255*5)};Xe.ansi16.rgb=function(t){let e=t%10;if(e===0||e===7)return t>50&&(e+=3.5),e=e/10.5*255,[e,e,e];let r=(~~(t>50)+1)*.5,i=(e&1)*r*255,n=(e>>1&1)*r*255,s=(e>>2&1)*r*255;return[i,n,s]};Xe.ansi256.rgb=function(t){if(t>=232){let s=(t-232)*10+8;return[s,s,s]}t-=16;let e,r=Math.floor(t/36)/5*255,i=Math.floor((e=t%36)/6)/5*255,n=e%6/5*255;return[r,i,n]};Xe.rgb.hex=function(t){let r=(((Math.round(t[0])&255)<<16)+((Math.round(t[1])&255)<<8)+(Math.round(t[2])&255)).toString(16).toUpperCase();return"000000".substring(r.length)+r};Xe.hex.rgb=function(t){let e=t.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!e)return[0,0,0];let r=e[0];e[0].length===3&&(r=r.split("").map(a=>a+a).join(""));let i=parseInt(r,16),n=i>>16&255,s=i>>8&255,o=i&255;return[n,s,o]};Xe.rgb.hcg=function(t){let e=t[0]/255,r=t[1]/255,i=t[2]/255,n=Math.max(Math.max(e,r),i),s=Math.min(Math.min(e,r),i),o=n-s,a,l;return o<1?a=s/(1-o):a=0,o<=0?l=0:n===e?l=(r-i)/o%6:n===r?l=2+(i-e)/o:l=4+(e-r)/o,l/=6,l%=1,[l*360,o*100,a*100]};Xe.hsl.hcg=function(t){let e=t[1]/100,r=t[2]/100,i=r<.5?2*e*r:2*e*(1-r),n=0;return i<1&&(n=(r-.5*i)/(1-i)),[t[0],i*100,n*100]};Xe.hsv.hcg=function(t){let e=t[1]/100,r=t[2]/100,i=e*r,n=0;return i<1&&(n=(r-i)/(1-i)),[t[0],i*100,n*100]};Xe.hcg.rgb=function(t){let e=t[0]/360,r=t[1]/100,i=t[2]/100;if(r===0)return[i*255,i*255,i*255];let n=[0,0,0],s=e%1*6,o=s%1,a=1-o,l=0;switch(Math.floor(s)){case 0:n[0]=1,n[1]=o,n[2]=0;break;case 1:n[0]=a,n[1]=1,n[2]=0;break;case 2:n[0]=0,n[1]=1,n[2]=o;break;case 3:n[0]=0,n[1]=a,n[2]=1;break;case 4:n[0]=o,n[1]=0,n[2]=1;break;default:n[0]=1,n[1]=0,n[2]=a}return l=(1-r)*i,[(r*n[0]+l)*255,(r*n[1]+l)*255,(r*n[2]+l)*255]};Xe.hcg.hsv=function(t){let e=t[1]/100,r=t[2]/100,i=e+r*(1-e),n=0;return i>0&&(n=e/i),[t[0],n*100,i*100]};Xe.hcg.hsl=function(t){let e=t[1]/100,i=t[2]/100*(1-e)+.5*e,n=0;return i>0&&i<.5?n=e/(2*i):i>=.5&&i<1&&(n=e/(2*(1-i))),[t[0],n*100,i*100]};Xe.hcg.hwb=function(t){let e=t[1]/100,r=t[2]/100,i=e+r*(1-e);return[t[0],(i-e)*100,(1-i)*100]};Xe.hwb.hcg=function(t){let e=t[1]/100,r=t[2]/100,i=1-r,n=i-e,s=0;return n<1&&(s=(i-n)/(1-n)),[t[0],n*100,s*100]};Xe.apple.rgb=function(t){return[t[0]/65535*255,t[1]/65535*255,t[2]/65535*255]};Xe.rgb.apple=function(t){return[t[0]/255*65535,t[1]/255*65535,t[2]/255*65535]};Xe.gray.rgb=function(t){return[t[0]/100*255,t[0]/100*255,t[0]/100*255]};Xe.gray.hsl=function(t){return[0,0,t[0]]};Xe.gray.hsv=Xe.gray.hsl;Xe.gray.hwb=function(t){return[0,100,t[0]]};Xe.gray.cmyk=function(t){return[0,0,0,t[0]]};Xe.gray.lab=function(t){return[t[0],0,0]};Xe.gray.hex=function(t){let e=Math.round(t[0]/100*255)&255,i=((e<<16)+(e<<8)+e).toString(16).toUpperCase();return"000000".substring(i.length)+i};Xe.rgb.gray=function(t){return[(t[0]+t[1]+t[2])/3/255*100]}});var bK=E((B$e,QK)=>{var kE=Nb();function Mhe(){let t={},e=Object.keys(kE);for(let r=e.length,i=0;i{var Lb=Nb(),Hhe=bK(),ru={},Ghe=Object.keys(Lb);function jhe(t){let e=function(...r){let i=r[0];return i==null?i:(i.length>1&&(r=i),t(r))};return"conversion"in t&&(e.conversion=t.conversion),e}function Yhe(t){let e=function(...r){let i=r[0];if(i==null)return i;i.length>1&&(r=i);let n=t(r);if(typeof n=="object")for(let s=n.length,o=0;o{ru[t]={},Object.defineProperty(ru[t],"channels",{value:Lb[t].channels}),Object.defineProperty(ru[t],"labels",{value:Lb[t].labels});let e=Hhe(t);Object.keys(e).forEach(i=>{let n=e[i];ru[t][i]=Yhe(n),ru[t][i].raw=jhe(n)})});vK.exports=ru});var FK=E((b$e,xK)=>{"use strict";var kK=(t,e)=>(...r)=>`[${t(...r)+e}m`,PK=(t,e)=>(...r)=>{let i=t(...r);return`[${38+e};5;${i}m`},DK=(t,e)=>(...r)=>{let i=t(...r);return`[${38+e};2;${i[0]};${i[1]};${i[2]}m`},PE=t=>t,RK=(t,e,r)=>[t,e,r],iu=(t,e,r)=>{Object.defineProperty(t,e,{get:()=>{let i=r();return Object.defineProperty(t,e,{value:i,enumerable:!0,configurable:!0}),i},enumerable:!0,configurable:!0})},Tb,nu=(t,e,r,i)=>{Tb===void 0&&(Tb=SK());let n=i?10:0,s={};for(let[o,a]of Object.entries(Tb)){let l=o==="ansi16"?"ansi":o;o===e?s[l]=t(r,n):typeof a=="object"&&(s[l]=t(a[e],n))}return s};function qhe(){let t=new Map,e={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};e.color.gray=e.color.blackBright,e.bgColor.bgGray=e.bgColor.bgBlackBright,e.color.grey=e.color.blackBright,e.bgColor.bgGrey=e.bgColor.bgBlackBright;for(let[r,i]of Object.entries(e)){for(let[n,s]of Object.entries(i))e[n]={open:`[${s[0]}m`,close:`[${s[1]}m`},i[n]=e[n],t.set(s[0],s[1]);Object.defineProperty(e,r,{value:i,enumerable:!1})}return Object.defineProperty(e,"codes",{value:t,enumerable:!1}),e.color.close="",e.bgColor.close="",iu(e.color,"ansi",()=>nu(kK,"ansi16",PE,!1)),iu(e.color,"ansi256",()=>nu(PK,"ansi256",PE,!1)),iu(e.color,"ansi16m",()=>nu(DK,"rgb",RK,!1)),iu(e.bgColor,"ansi",()=>nu(kK,"ansi16",PE,!0)),iu(e.bgColor,"ansi256",()=>nu(PK,"ansi256",PE,!0)),iu(e.bgColor,"ansi16m",()=>nu(DK,"rgb",RK,!0)),e}Object.defineProperty(xK,"exports",{enumerable:!0,get:qhe})});var LK=E((v$e,NK)=>{"use strict";NK.exports=(t,e=process.argv)=>{let r=t.startsWith("-")?"":t.length===1?"-":"--",i=e.indexOf(r+t),n=e.indexOf("--");return i!==-1&&(n===-1||i{"use strict";var Jhe=require("os"),MK=require("tty"),Wn=LK(),{env:Wr}=process,tA;Wn("no-color")||Wn("no-colors")||Wn("color=false")||Wn("color=never")?tA=0:(Wn("color")||Wn("colors")||Wn("color=true")||Wn("color=always"))&&(tA=1);"FORCE_COLOR"in Wr&&(Wr.FORCE_COLOR==="true"?tA=1:Wr.FORCE_COLOR==="false"?tA=0:tA=Wr.FORCE_COLOR.length===0?1:Math.min(parseInt(Wr.FORCE_COLOR,10),3));function Mb(t){return t===0?!1:{level:t,hasBasic:!0,has256:t>=2,has16m:t>=3}}function Ob(t,e){if(tA===0)return 0;if(Wn("color=16m")||Wn("color=full")||Wn("color=truecolor"))return 3;if(Wn("color=256"))return 2;if(t&&!e&&tA===void 0)return 0;let r=tA||0;if(Wr.TERM==="dumb")return r;if(process.platform==="win32"){let i=Jhe.release().split(".");return Number(i[0])>=10&&Number(i[2])>=10586?Number(i[2])>=14931?3:2:1}if("CI"in Wr)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI"].some(i=>i in Wr)||Wr.CI_NAME==="codeship"?1:r;if("TEAMCITY_VERSION"in Wr)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(Wr.TEAMCITY_VERSION)?1:0;if("GITHUB_ACTIONS"in Wr)return 1;if(Wr.COLORTERM==="truecolor")return 3;if("TERM_PROGRAM"in Wr){let i=parseInt((Wr.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(Wr.TERM_PROGRAM){case"iTerm.app":return i>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(Wr.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(Wr.TERM)||"COLORTERM"in Wr?1:r}function Whe(t){let e=Ob(t,t&&t.isTTY);return Mb(e)}TK.exports={supportsColor:Whe,stdout:Mb(Ob(!0,MK.isatty(1))),stderr:Mb(Ob(!0,MK.isatty(2)))}});var UK=E((x$e,KK)=>{"use strict";var zhe=(t,e,r)=>{let i=t.indexOf(e);if(i===-1)return t;let n=e.length,s=0,o="";do o+=t.substr(s,i-s)+e+r,s=i+n,i=t.indexOf(e,s);while(i!==-1);return o+=t.substr(s),o},Vhe=(t,e,r,i)=>{let n=0,s="";do{let o=t[i-1]==="\r";s+=t.substr(n,(o?i-1:i)-n)+e+(o?`\r -`:` -`)+r,n=i+1,i=t.indexOf(` -`,n)}while(i!==-1);return s+=t.substr(n),s};KK.exports={stringReplaceAll:zhe,stringEncaseCRLFWithFirstIndex:Vhe}});var qK=E((k$e,HK)=>{"use strict";var _he=/(?:\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi,GK=/(?:^|\.)(\w+)(?:\(([^)]*)\))?/g,Xhe=/^(['"])((?:\\.|(?!\1)[^\\])*)\1$/,Zhe=/\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.)|([^\\])/gi,$he=new Map([["n",` -`],["r","\r"],["t"," "],["b","\b"],["f","\f"],["v","\v"],["0","\0"],["\\","\\"],["e",""],["a","\x07"]]);function jK(t){let e=t[0]==="u",r=t[1]==="{";return e&&!r&&t.length===5||t[0]==="x"&&t.length===3?String.fromCharCode(parseInt(t.slice(1),16)):e&&r?String.fromCodePoint(parseInt(t.slice(2,-1),16)):$he.get(t)||t}function epe(t,e){let r=[],i=e.trim().split(/\s*,\s*/g),n;for(let s of i){let o=Number(s);if(!Number.isNaN(o))r.push(o);else if(n=s.match(Xhe))r.push(n[2].replace(Zhe,(a,l,c)=>l?jK(l):c));else throw new Error(`Invalid Chalk template style argument: ${s} (in style '${t}')`)}return r}function tpe(t){GK.lastIndex=0;let e=[],r;for(;(r=GK.exec(t))!==null;){let i=r[1];if(r[2]){let n=epe(i,r[2]);e.push([i].concat(n))}else e.push([i])}return e}function YK(t,e){let r={};for(let n of e)for(let s of n.styles)r[s[0]]=n.inverse?null:s.slice(1);let i=t;for(let[n,s]of Object.entries(r))if(!!Array.isArray(s)){if(!(n in i))throw new Error(`Unknown Chalk style: ${n}`);i=s.length>0?i[n](...s):i[n]}return i}HK.exports=(t,e)=>{let r=[],i=[],n=[];if(e.replace(_he,(s,o,a,l,c,u)=>{if(o)n.push(jK(o));else if(l){let g=n.join("");n=[],i.push(r.length===0?g:YK(t,r)(g)),r.push({inverse:a,styles:tpe(l)})}else if(c){if(r.length===0)throw new Error("Found extraneous } in Chalk template literal");i.push(YK(t,r)(n.join(""))),n=[],r.pop()}else n.push(u)}),i.push(n.join("")),r.length>0){let s=`Chalk template literal is missing ${r.length} closing bracket${r.length===1?"":"s"} (\`}\`)`;throw new Error(s)}return i.join("")}});var jb=E((P$e,JK)=>{"use strict";var fh=FK(),{stdout:Kb,stderr:Ub}=OK(),{stringReplaceAll:rpe,stringEncaseCRLFWithFirstIndex:ipe}=UK(),WK=["ansi","ansi","ansi256","ansi16m"],su=Object.create(null),npe=(t,e={})=>{if(e.level>3||e.level<0)throw new Error("The `level` option should be an integer from 0 to 3");let r=Kb?Kb.level:0;t.level=e.level===void 0?r:e.level},zK=class{constructor(e){return VK(e)}},VK=t=>{let e={};return npe(e,t),e.template=(...r)=>spe(e.template,...r),Object.setPrototypeOf(e,DE.prototype),Object.setPrototypeOf(e.template,e),e.template.constructor=()=>{throw new Error("`chalk.constructor()` is deprecated. Use `new chalk.Instance()` instead.")},e.template.Instance=zK,e.template};function DE(t){return VK(t)}for(let[t,e]of Object.entries(fh))su[t]={get(){let r=RE(this,Hb(e.open,e.close,this._styler),this._isEmpty);return Object.defineProperty(this,t,{value:r}),r}};su.visible={get(){let t=RE(this,this._styler,!0);return Object.defineProperty(this,"visible",{value:t}),t}};var _K=["rgb","hex","keyword","hsl","hsv","hwb","ansi","ansi256"];for(let t of _K)su[t]={get(){let{level:e}=this;return function(...r){let i=Hb(fh.color[WK[e]][t](...r),fh.color.close,this._styler);return RE(this,i,this._isEmpty)}}};for(let t of _K){let e="bg"+t[0].toUpperCase()+t.slice(1);su[e]={get(){let{level:r}=this;return function(...i){let n=Hb(fh.bgColor[WK[r]][t](...i),fh.bgColor.close,this._styler);return RE(this,n,this._isEmpty)}}}}var ope=Object.defineProperties(()=>{},_(P({},su),{level:{enumerable:!0,get(){return this._generator.level},set(t){this._generator.level=t}}})),Hb=(t,e,r)=>{let i,n;return r===void 0?(i=t,n=e):(i=r.openAll+t,n=e+r.closeAll),{open:t,close:e,openAll:i,closeAll:n,parent:r}},RE=(t,e,r)=>{let i=(...n)=>ape(i,n.length===1?""+n[0]:n.join(" "));return i.__proto__=ope,i._generator=t,i._styler=e,i._isEmpty=r,i},ape=(t,e)=>{if(t.level<=0||!e)return t._isEmpty?"":e;let r=t._styler;if(r===void 0)return e;let{openAll:i,closeAll:n}=r;if(e.indexOf("")!==-1)for(;r!==void 0;)e=rpe(e,r.close,r.open),r=r.parent;let s=e.indexOf(` -`);return s!==-1&&(e=ipe(e,n,i,s)),i+e+n},Gb,spe=(t,...e)=>{let[r]=e;if(!Array.isArray(r))return e.join(" ");let i=e.slice(1),n=[r.raw[0]];for(let s=1;s{XK.exports=[{name:"AppVeyor",constant:"APPVEYOR",env:"APPVEYOR",pr:"APPVEYOR_PULL_REQUEST_NUMBER"},{name:"Azure Pipelines",constant:"AZURE_PIPELINES",env:"SYSTEM_TEAMFOUNDATIONCOLLECTIONURI",pr:"SYSTEM_PULLREQUEST_PULLREQUESTID"},{name:"Appcircle",constant:"APPCIRCLE",env:"AC_APPCIRCLE"},{name:"Bamboo",constant:"BAMBOO",env:"bamboo_planKey"},{name:"Bitbucket Pipelines",constant:"BITBUCKET",env:"BITBUCKET_COMMIT",pr:"BITBUCKET_PR_ID"},{name:"Bitrise",constant:"BITRISE",env:"BITRISE_IO",pr:"BITRISE_PULL_REQUEST"},{name:"Buddy",constant:"BUDDY",env:"BUDDY_WORKSPACE_ID",pr:"BUDDY_EXECUTION_PULL_REQUEST_ID"},{name:"Buildkite",constant:"BUILDKITE",env:"BUILDKITE",pr:{env:"BUILDKITE_PULL_REQUEST",ne:"false"}},{name:"CircleCI",constant:"CIRCLE",env:"CIRCLECI",pr:"CIRCLE_PULL_REQUEST"},{name:"Cirrus CI",constant:"CIRRUS",env:"CIRRUS_CI",pr:"CIRRUS_PR"},{name:"AWS CodeBuild",constant:"CODEBUILD",env:"CODEBUILD_BUILD_ARN"},{name:"Codefresh",constant:"CODEFRESH",env:"CF_BUILD_ID",pr:{any:["CF_PULL_REQUEST_NUMBER","CF_PULL_REQUEST_ID"]}},{name:"Codeship",constant:"CODESHIP",env:{CI_NAME:"codeship"}},{name:"Drone",constant:"DRONE",env:"DRONE",pr:{DRONE_BUILD_EVENT:"pull_request"}},{name:"dsari",constant:"DSARI",env:"DSARI"},{name:"GitHub Actions",constant:"GITHUB_ACTIONS",env:"GITHUB_ACTIONS",pr:{GITHUB_EVENT_NAME:"pull_request"}},{name:"GitLab CI",constant:"GITLAB",env:"GITLAB_CI",pr:"CI_MERGE_REQUEST_ID"},{name:"GoCD",constant:"GOCD",env:"GO_PIPELINE_LABEL"},{name:"LayerCI",constant:"LAYERCI",env:"LAYERCI",pr:"LAYERCI_PULL_REQUEST"},{name:"Hudson",constant:"HUDSON",env:"HUDSON_URL"},{name:"Jenkins",constant:"JENKINS",env:["JENKINS_URL","BUILD_ID"],pr:{any:["ghprbPullId","CHANGE_ID"]}},{name:"Magnum CI",constant:"MAGNUM",env:"MAGNUM"},{name:"Netlify CI",constant:"NETLIFY",env:"NETLIFY",pr:{env:"PULL_REQUEST",ne:"false"}},{name:"Nevercode",constant:"NEVERCODE",env:"NEVERCODE",pr:{env:"NEVERCODE_PULL_REQUEST",ne:"false"}},{name:"Render",constant:"RENDER",env:"RENDER",pr:{IS_PULL_REQUEST:"true"}},{name:"Sail CI",constant:"SAIL",env:"SAILCI",pr:"SAIL_PULL_REQUEST_NUMBER"},{name:"Semaphore",constant:"SEMAPHORE",env:"SEMAPHORE",pr:"PULL_REQUEST_NUMBER"},{name:"Screwdriver",constant:"SCREWDRIVER",env:"SCREWDRIVER",pr:{env:"SD_PULL_REQUEST",ne:"false"}},{name:"Shippable",constant:"SHIPPABLE",env:"SHIPPABLE",pr:{IS_PULL_REQUEST:"true"}},{name:"Solano CI",constant:"SOLANO",env:"TDDIUM",pr:"TDDIUM_PR_ID"},{name:"Strider CD",constant:"STRIDER",env:"STRIDER"},{name:"TaskCluster",constant:"TASKCLUSTER",env:["TASK_ID","RUN_ID"]},{name:"TeamCity",constant:"TEAMCITY",env:"TEAMCITY_VERSION"},{name:"Travis CI",constant:"TRAVIS",env:"TRAVIS",pr:{env:"TRAVIS_PULL_REQUEST",ne:"false"}},{name:"Vercel",constant:"VERCEL",env:"NOW_BUILDER"},{name:"Visual Studio App Center",constant:"APPCENTER",env:"APPCENTER_BUILD_ID"}]});var ml=E(Dn=>{"use strict";var $K=ZK(),ro=process.env;Object.defineProperty(Dn,"_vendors",{value:$K.map(function(t){return t.constant})});Dn.name=null;Dn.isPR=null;$K.forEach(function(t){let r=(Array.isArray(t.env)?t.env:[t.env]).every(function(i){return e1(i)});if(Dn[t.constant]=r,r)switch(Dn.name=t.name,typeof t.pr){case"string":Dn.isPR=!!ro[t.pr];break;case"object":"env"in t.pr?Dn.isPR=t.pr.env in ro&&ro[t.pr.env]!==t.pr.ne:"any"in t.pr?Dn.isPR=t.pr.any.some(function(i){return!!ro[i]}):Dn.isPR=e1(t.pr);break;default:Dn.isPR=null}});Dn.isCI=!!(ro.CI||ro.CONTINUOUS_INTEGRATION||ro.BUILD_NUMBER||ro.RUN_ID||Dn.name);function e1(t){return typeof t=="string"?!!ro[t]:Object.keys(t).every(function(e){return ro[e]===t[e]})}});var FE=E(zn=>{"use strict";zn.isInteger=t=>typeof t=="number"?Number.isInteger(t):typeof t=="string"&&t.trim()!==""?Number.isInteger(Number(t)):!1;zn.find=(t,e)=>t.nodes.find(r=>r.type===e);zn.exceedsLimit=(t,e,r=1,i)=>i===!1||!zn.isInteger(t)||!zn.isInteger(e)?!1:(Number(e)-Number(t))/Number(r)>=i;zn.escapeNode=(t,e=0,r)=>{let i=t.nodes[e];!i||(r&&i.type===r||i.type==="open"||i.type==="close")&&i.escaped!==!0&&(i.value="\\"+i.value,i.escaped=!0)};zn.encloseBrace=t=>t.type!=="brace"?!1:t.commas>>0+t.ranges>>0==0?(t.invalid=!0,!0):!1;zn.isInvalidBrace=t=>t.type!=="brace"?!1:t.invalid===!0||t.dollar?!0:t.commas>>0+t.ranges>>0==0||t.open!==!0||t.close!==!0?(t.invalid=!0,!0):!1;zn.isOpenOrClose=t=>t.type==="open"||t.type==="close"?!0:t.open===!0||t.close===!0;zn.reduce=t=>t.reduce((e,r)=>(r.type==="text"&&e.push(r.value),r.type==="range"&&(r.type="text"),e),[]);zn.flatten=(...t)=>{let e=[],r=i=>{for(let n=0;n{"use strict";var r1=FE();t1.exports=(t,e={})=>{let r=(i,n={})=>{let s=e.escapeInvalid&&r1.isInvalidBrace(n),o=i.invalid===!0&&e.escapeInvalid===!0,a="";if(i.value)return(s||o)&&r1.isOpenOrClose(i)?"\\"+i.value:i.value;if(i.value)return i.value;if(i.nodes)for(let l of i.nodes)a+=r(l);return a};return r(t)}});var n1=E((L$e,i1)=>{"use strict";i1.exports=function(t){return typeof t=="number"?t-t==0:typeof t=="string"&&t.trim()!==""?Number.isFinite?Number.isFinite(+t):isFinite(+t):!1}});var f1=E((T$e,s1)=>{"use strict";var o1=n1(),El=(t,e,r)=>{if(o1(t)===!1)throw new TypeError("toRegexRange: expected the first argument to be a number");if(e===void 0||t===e)return String(t);if(o1(e)===!1)throw new TypeError("toRegexRange: expected the second argument to be a number.");let i=P({relaxZeros:!0},r);typeof i.strictZeros=="boolean"&&(i.relaxZeros=i.strictZeros===!1);let n=String(i.relaxZeros),s=String(i.shorthand),o=String(i.capture),a=String(i.wrap),l=t+":"+e+"="+n+s+o+a;if(El.cache.hasOwnProperty(l))return El.cache[l].result;let c=Math.min(t,e),u=Math.max(t,e);if(Math.abs(c-u)===1){let d=t+"|"+e;return i.capture?`(${d})`:i.wrap===!1?d:`(?:${d})`}let g=A1(t)||A1(e),f={min:t,max:e,a:c,b:u},h=[],p=[];if(g&&(f.isPadded=g,f.maxLen=String(f.max).length),c<0){let d=u<0?Math.abs(u):1;p=a1(d,Math.abs(c),f,i),c=f.a=0}return u>=0&&(h=a1(c,u,f,i)),f.negatives=p,f.positives=h,f.result=Ape(p,h,i),i.capture===!0?f.result=`(${f.result})`:i.wrap!==!1&&h.length+p.length>1&&(f.result=`(?:${f.result})`),El.cache[l]=f,f.result};function Ape(t,e,r){let i=Yb(t,e,"-",!1,r)||[],n=Yb(e,t,"",!1,r)||[],s=Yb(t,e,"-?",!0,r)||[];return i.concat(s).concat(n).join("|")}function cpe(t,e){let r=1,i=1,n=l1(t,r),s=new Set([e]);for(;t<=n&&n<=e;)s.add(n),r+=1,n=l1(t,r);for(n=c1(e+1,i)-1;t1&&a.count.pop(),a.count.push(u.count[0]),a.string=a.pattern+u1(a.count),o=c+1;continue}r.isPadded&&(g=hpe(c,r,i)),u.string=g+u.pattern+u1(u.count),s.push(u),o=c+1,a=u}return s}function Yb(t,e,r,i,n){let s=[];for(let o of t){let{string:a}=o;!i&&!g1(e,"string",a)&&s.push(r+a),i&&g1(e,"string",a)&&s.push(r+a)}return s}function upe(t,e){let r=[];for(let i=0;ie?1:e>t?-1:0}function g1(t,e,r){return t.some(i=>i[e]===r)}function l1(t,e){return Number(String(t).slice(0,-e)+"9".repeat(e))}function c1(t,e){return t-t%Math.pow(10,e)}function u1(t){let[e=0,r=""]=t;return r||e>1?`{${e+(r?","+r:"")}}`:""}function gpe(t,e,r){return`[${t}${e-t==1?"":"-"}${e}]`}function A1(t){return/^-?(0+)\d/.test(t)}function hpe(t,e,r){if(!e.isPadded)return t;let i=Math.abs(e.maxLen-String(t).length),n=r.relaxZeros!==!1;switch(i){case 0:return"";case 1:return n?"0?":"0";case 2:return n?"0{0,2}":"00";default:return n?`0{0,${i}}`:`0{${i}}`}}El.cache={};El.clearCache=()=>El.cache={};s1.exports=El});var Wb=E((M$e,h1)=>{"use strict";var ppe=require("util"),p1=f1(),d1=t=>t!==null&&typeof t=="object"&&!Array.isArray(t),dpe=t=>e=>t===!0?Number(e):String(e),qb=t=>typeof t=="number"||typeof t=="string"&&t!=="",ph=t=>Number.isInteger(+t),Jb=t=>{let e=`${t}`,r=-1;if(e[0]==="-"&&(e=e.slice(1)),e==="0")return!1;for(;e[++r]==="0";);return r>0},Cpe=(t,e,r)=>typeof t=="string"||typeof e=="string"?!0:r.stringify===!0,mpe=(t,e,r)=>{if(e>0){let i=t[0]==="-"?"-":"";i&&(t=t.slice(1)),t=i+t.padStart(i?e-1:e,"0")}return r===!1?String(t):t},C1=(t,e)=>{let r=t[0]==="-"?"-":"";for(r&&(t=t.slice(1),e--);t.length{t.negatives.sort((o,a)=>oa?1:0),t.positives.sort((o,a)=>oa?1:0);let r=e.capture?"":"?:",i="",n="",s;return t.positives.length&&(i=t.positives.join("|")),t.negatives.length&&(n=`-(${r}${t.negatives.join("|")})`),i&&n?s=`${i}|${n}`:s=i||n,e.wrap?`(${r}${s})`:s},m1=(t,e,r,i)=>{if(r)return p1(t,e,P({wrap:!1},i));let n=String.fromCharCode(t);if(t===e)return n;let s=String.fromCharCode(e);return`[${n}-${s}]`},E1=(t,e,r)=>{if(Array.isArray(t)){let i=r.wrap===!0,n=r.capture?"":"?:";return i?`(${n}${t.join("|")})`:t.join("|")}return p1(t,e,r)},I1=(...t)=>new RangeError("Invalid range arguments: "+ppe.inspect(...t)),y1=(t,e,r)=>{if(r.strictRanges===!0)throw I1([t,e]);return[]},Ipe=(t,e)=>{if(e.strictRanges===!0)throw new TypeError(`Expected step "${t}" to be a number`);return[]},ype=(t,e,r=1,i={})=>{let n=Number(t),s=Number(e);if(!Number.isInteger(n)||!Number.isInteger(s)){if(i.strictRanges===!0)throw I1([t,e]);return[]}n===0&&(n=0),s===0&&(s=0);let o=n>s,a=String(t),l=String(e),c=String(r);r=Math.max(Math.abs(r),1);let u=Jb(a)||Jb(l)||Jb(c),g=u?Math.max(a.length,l.length,c.length):0,f=u===!1&&Cpe(t,e,i)===!1,h=i.transform||dpe(f);if(i.toRegex&&r===1)return m1(C1(t,g),C1(e,g),!0,i);let p={negatives:[],positives:[]},d=B=>p[B<0?"negatives":"positives"].push(Math.abs(B)),m=[],I=0;for(;o?n>=s:n<=s;)i.toRegex===!0&&r>1?d(n):m.push(mpe(h(n,I),g,f)),n=o?n-r:n+r,I++;return i.toRegex===!0?r>1?Epe(p,i):E1(m,null,P({wrap:!1},i)):m},wpe=(t,e,r=1,i={})=>{if(!ph(t)&&t.length>1||!ph(e)&&e.length>1)return y1(t,e,i);let n=i.transform||(f=>String.fromCharCode(f)),s=`${t}`.charCodeAt(0),o=`${e}`.charCodeAt(0),a=s>o,l=Math.min(s,o),c=Math.max(s,o);if(i.toRegex&&r===1)return m1(l,c,!1,i);let u=[],g=0;for(;a?s>=o:s<=o;)u.push(n(s,g)),s=a?s-r:s+r,g++;return i.toRegex===!0?E1(u,null,{wrap:!1,options:i}):u},LE=(t,e,r,i={})=>{if(e==null&&qb(t))return[t];if(!qb(t)||!qb(e))return y1(t,e,i);if(typeof r=="function")return LE(t,e,1,{transform:r});if(d1(r))return LE(t,e,0,r);let n=P({},i);return n.capture===!0&&(n.wrap=!0),r=r||n.step||1,ph(r)?ph(t)&&ph(e)?ype(t,e,r,n):wpe(t,e,Math.max(Math.abs(r),1),n):r!=null&&!d1(r)?Ipe(r,n):LE(t,e,1,r)};h1.exports=LE});var Q1=E((O$e,w1)=>{"use strict";var Bpe=Wb(),B1=FE(),Qpe=(t,e={})=>{let r=(i,n={})=>{let s=B1.isInvalidBrace(n),o=i.invalid===!0&&e.escapeInvalid===!0,a=s===!0||o===!0,l=e.escapeInvalid===!0?"\\":"",c="";if(i.isOpen===!0||i.isClose===!0)return l+i.value;if(i.type==="open")return a?l+i.value:"(";if(i.type==="close")return a?l+i.value:")";if(i.type==="comma")return i.prev.type==="comma"?"":a?i.value:"|";if(i.value)return i.value;if(i.nodes&&i.ranges>0){let u=B1.reduce(i.nodes),g=Bpe(...u,_(P({},e),{wrap:!1,toRegex:!0}));if(g.length!==0)return u.length>1&&g.length>1?`(${g})`:g}if(i.nodes)for(let u of i.nodes)c+=r(u,i);return c};return r(t)};w1.exports=Qpe});var S1=E((K$e,b1)=>{"use strict";var bpe=Wb(),v1=NE(),ou=FE(),Il=(t="",e="",r=!1)=>{let i=[];if(t=[].concat(t),e=[].concat(e),!e.length)return t;if(!t.length)return r?ou.flatten(e).map(n=>`{${n}}`):e;for(let n of t)if(Array.isArray(n))for(let s of n)i.push(Il(s,e,r));else for(let s of e)r===!0&&typeof s=="string"&&(s=`{${s}}`),i.push(Array.isArray(s)?Il(n,s,r):n+s);return ou.flatten(i)},vpe=(t,e={})=>{let r=e.rangeLimit===void 0?1e3:e.rangeLimit,i=(n,s={})=>{n.queue=[];let o=s,a=s.queue;for(;o.type!=="brace"&&o.type!=="root"&&o.parent;)o=o.parent,a=o.queue;if(n.invalid||n.dollar){a.push(Il(a.pop(),v1(n,e)));return}if(n.type==="brace"&&n.invalid!==!0&&n.nodes.length===2){a.push(Il(a.pop(),["{}"]));return}if(n.nodes&&n.ranges>0){let g=ou.reduce(n.nodes);if(ou.exceedsLimit(...g,e.step,r))throw new RangeError("expanded array length exceeds range limit. Use options.rangeLimit to increase or disable the limit.");let f=bpe(...g,e);f.length===0&&(f=v1(n,e)),a.push(Il(a.pop(),f)),n.nodes=[];return}let l=ou.encloseBrace(n),c=n.queue,u=n;for(;u.type!=="brace"&&u.type!=="root"&&u.parent;)u=u.parent,c=u.queue;for(let g=0;g{"use strict";x1.exports={MAX_LENGTH:1024*64,CHAR_0:"0",CHAR_9:"9",CHAR_UPPERCASE_A:"A",CHAR_LOWERCASE_A:"a",CHAR_UPPERCASE_Z:"Z",CHAR_LOWERCASE_Z:"z",CHAR_LEFT_PARENTHESES:"(",CHAR_RIGHT_PARENTHESES:")",CHAR_ASTERISK:"*",CHAR_AMPERSAND:"&",CHAR_AT:"@",CHAR_BACKSLASH:"\\",CHAR_BACKTICK:"`",CHAR_CARRIAGE_RETURN:"\r",CHAR_CIRCUMFLEX_ACCENT:"^",CHAR_COLON:":",CHAR_COMMA:",",CHAR_DOLLAR:"$",CHAR_DOT:".",CHAR_DOUBLE_QUOTE:'"',CHAR_EQUAL:"=",CHAR_EXCLAMATION_MARK:"!",CHAR_FORM_FEED:"\f",CHAR_FORWARD_SLASH:"/",CHAR_HASH:"#",CHAR_HYPHEN_MINUS:"-",CHAR_LEFT_ANGLE_BRACKET:"<",CHAR_LEFT_CURLY_BRACE:"{",CHAR_LEFT_SQUARE_BRACKET:"[",CHAR_LINE_FEED:` -`,CHAR_NO_BREAK_SPACE:"\xA0",CHAR_PERCENT:"%",CHAR_PLUS:"+",CHAR_QUESTION_MARK:"?",CHAR_RIGHT_ANGLE_BRACKET:">",CHAR_RIGHT_CURLY_BRACE:"}",CHAR_RIGHT_SQUARE_BRACKET:"]",CHAR_SEMICOLON:";",CHAR_SINGLE_QUOTE:"'",CHAR_SPACE:" ",CHAR_TAB:" ",CHAR_UNDERSCORE:"_",CHAR_VERTICAL_LINE:"|",CHAR_ZERO_WIDTH_NOBREAK_SPACE:"\uFEFF"}});var N1=E((H$e,P1)=>{"use strict";var Spe=NE(),{MAX_LENGTH:D1,CHAR_BACKSLASH:zb,CHAR_BACKTICK:xpe,CHAR_COMMA:kpe,CHAR_DOT:Ppe,CHAR_LEFT_PARENTHESES:Dpe,CHAR_RIGHT_PARENTHESES:Rpe,CHAR_LEFT_CURLY_BRACE:Fpe,CHAR_RIGHT_CURLY_BRACE:Npe,CHAR_LEFT_SQUARE_BRACKET:R1,CHAR_RIGHT_SQUARE_BRACKET:F1,CHAR_DOUBLE_QUOTE:Lpe,CHAR_SINGLE_QUOTE:Tpe,CHAR_NO_BREAK_SPACE:Mpe,CHAR_ZERO_WIDTH_NOBREAK_SPACE:Ope}=k1(),Kpe=(t,e={})=>{if(typeof t!="string")throw new TypeError("Expected a string");let r=e||{},i=typeof r.maxLength=="number"?Math.min(D1,r.maxLength):D1;if(t.length>i)throw new SyntaxError(`Input length (${t.length}), exceeds max characters (${i})`);let n={type:"root",input:t,nodes:[]},s=[n],o=n,a=n,l=0,c=t.length,u=0,g=0,f,h={},p=()=>t[u++],d=m=>{if(m.type==="text"&&a.type==="dot"&&(a.type="text"),a&&a.type==="text"&&m.type==="text"){a.value+=m.value;return}return o.nodes.push(m),m.parent=o,m.prev=a,a=m,m};for(d({type:"bos"});u0){if(o.ranges>0){o.ranges=0;let m=o.nodes.shift();o.nodes=[m,{type:"text",value:Spe(o)}]}d({type:"comma",value:f}),o.commas++;continue}if(f===Ppe&&g>0&&o.commas===0){let m=o.nodes;if(g===0||m.length===0){d({type:"text",value:f});continue}if(a.type==="dot"){if(o.range=[],a.value+=f,a.type="range",o.nodes.length!==3&&o.nodes.length!==5){o.invalid=!0,o.ranges=0,a.type="text";continue}o.ranges++,o.args=[];continue}if(a.type==="range"){m.pop();let I=m[m.length-1];I.value+=a.value+f,a=I,o.ranges--;continue}d({type:"dot",value:f});continue}d({type:"text",value:f})}do if(o=s.pop(),o.type!=="root"){o.nodes.forEach(B=>{B.nodes||(B.type==="open"&&(B.isOpen=!0),B.type==="close"&&(B.isClose=!0),B.nodes||(B.type="text"),B.invalid=!0)});let m=s[s.length-1],I=m.nodes.indexOf(o);m.nodes.splice(I,1,...o.nodes)}while(s.length>0);return d({type:"eos"}),n};P1.exports=Kpe});var M1=E((G$e,L1)=>{"use strict";var T1=NE(),Upe=Q1(),Hpe=S1(),Gpe=N1(),Rn=(t,e={})=>{let r=[];if(Array.isArray(t))for(let i of t){let n=Rn.create(i,e);Array.isArray(n)?r.push(...n):r.push(n)}else r=[].concat(Rn.create(t,e));return e&&e.expand===!0&&e.nodupes===!0&&(r=[...new Set(r)]),r};Rn.parse=(t,e={})=>Gpe(t,e);Rn.stringify=(t,e={})=>typeof t=="string"?T1(Rn.parse(t,e),e):T1(t,e);Rn.compile=(t,e={})=>(typeof t=="string"&&(t=Rn.parse(t,e)),Upe(t,e));Rn.expand=(t,e={})=>{typeof t=="string"&&(t=Rn.parse(t,e));let r=Hpe(t,e);return e.noempty===!0&&(r=r.filter(Boolean)),e.nodupes===!0&&(r=[...new Set(r)]),r};Rn.create=(t,e={})=>t===""||t.length<3?[t]:e.expand!==!0?Rn.compile(t,e):Rn.expand(t,e);L1.exports=Rn});var dh=E((j$e,O1)=>{"use strict";var jpe=require("path"),io="\\\\/",K1=`[^${io}]`,ea="\\.",Ype="\\+",qpe="\\?",TE="\\/",Jpe="(?=.)",U1="[^/]",Vb=`(?:${TE}|$)`,H1=`(?:^|${TE})`,_b=`${ea}{1,2}${Vb}`,Wpe=`(?!${ea})`,zpe=`(?!${H1}${_b})`,Vpe=`(?!${ea}{0,1}${Vb})`,_pe=`(?!${_b})`,Xpe=`[^.${TE}]`,Zpe=`${U1}*?`,G1={DOT_LITERAL:ea,PLUS_LITERAL:Ype,QMARK_LITERAL:qpe,SLASH_LITERAL:TE,ONE_CHAR:Jpe,QMARK:U1,END_ANCHOR:Vb,DOTS_SLASH:_b,NO_DOT:Wpe,NO_DOTS:zpe,NO_DOT_SLASH:Vpe,NO_DOTS_SLASH:_pe,QMARK_NO_DOT:Xpe,STAR:Zpe,START_ANCHOR:H1},$pe=_(P({},G1),{SLASH_LITERAL:`[${io}]`,QMARK:K1,STAR:`${K1}*?`,DOTS_SLASH:`${ea}{1,2}(?:[${io}]|$)`,NO_DOT:`(?!${ea})`,NO_DOTS:`(?!(?:^|[${io}])${ea}{1,2}(?:[${io}]|$))`,NO_DOT_SLASH:`(?!${ea}{0,1}(?:[${io}]|$))`,NO_DOTS_SLASH:`(?!${ea}{1,2}(?:[${io}]|$))`,QMARK_NO_DOT:`[^.${io}]`,START_ANCHOR:`(?:^|[${io}])`,END_ANCHOR:`(?:[${io}]|$)`}),ede={alnum:"a-zA-Z0-9",alpha:"a-zA-Z",ascii:"\\x00-\\x7F",blank:" \\t",cntrl:"\\x00-\\x1F\\x7F",digit:"0-9",graph:"\\x21-\\x7E",lower:"a-z",print:"\\x20-\\x7E ",punct:"\\-!\"#$%&'()\\*+,./:;<=>?@[\\]^_`{|}~",space:" \\t\\r\\n\\v\\f",upper:"A-Z",word:"A-Za-z0-9_",xdigit:"A-Fa-f0-9"};O1.exports={MAX_LENGTH:1024*64,POSIX_REGEX_SOURCE:ede,REGEX_BACKSLASH:/\\(?![*+?^${}(|)[\]])/g,REGEX_NON_SPECIAL_CHARS:/^[^@![\].,$*+?^{}()|\\/]+/,REGEX_SPECIAL_CHARS:/[-*+?.^${}(|)[\]]/,REGEX_SPECIAL_CHARS_BACKREF:/(\\?)((\W)(\3*))/g,REGEX_SPECIAL_CHARS_GLOBAL:/([-*+?.^${}(|)[\]])/g,REGEX_REMOVE_BACKSLASH:/(?:\[.*?[^\\]\]|\\(?=.))/g,REPLACEMENTS:{"***":"*","**/**":"**","**/**/**":"**"},CHAR_0:48,CHAR_9:57,CHAR_UPPERCASE_A:65,CHAR_LOWERCASE_A:97,CHAR_UPPERCASE_Z:90,CHAR_LOWERCASE_Z:122,CHAR_LEFT_PARENTHESES:40,CHAR_RIGHT_PARENTHESES:41,CHAR_ASTERISK:42,CHAR_AMPERSAND:38,CHAR_AT:64,CHAR_BACKWARD_SLASH:92,CHAR_CARRIAGE_RETURN:13,CHAR_CIRCUMFLEX_ACCENT:94,CHAR_COLON:58,CHAR_COMMA:44,CHAR_DOT:46,CHAR_DOUBLE_QUOTE:34,CHAR_EQUAL:61,CHAR_EXCLAMATION_MARK:33,CHAR_FORM_FEED:12,CHAR_FORWARD_SLASH:47,CHAR_GRAVE_ACCENT:96,CHAR_HASH:35,CHAR_HYPHEN_MINUS:45,CHAR_LEFT_ANGLE_BRACKET:60,CHAR_LEFT_CURLY_BRACE:123,CHAR_LEFT_SQUARE_BRACKET:91,CHAR_LINE_FEED:10,CHAR_NO_BREAK_SPACE:160,CHAR_PERCENT:37,CHAR_PLUS:43,CHAR_QUESTION_MARK:63,CHAR_RIGHT_ANGLE_BRACKET:62,CHAR_RIGHT_CURLY_BRACE:125,CHAR_RIGHT_SQUARE_BRACKET:93,CHAR_SEMICOLON:59,CHAR_SINGLE_QUOTE:39,CHAR_SPACE:32,CHAR_TAB:9,CHAR_UNDERSCORE:95,CHAR_VERTICAL_LINE:124,CHAR_ZERO_WIDTH_NOBREAK_SPACE:65279,SEP:jpe.sep,extglobChars(t){return{"!":{type:"negate",open:"(?:(?!(?:",close:`))${t.STAR})`},"?":{type:"qmark",open:"(?:",close:")?"},"+":{type:"plus",open:"(?:",close:")+"},"*":{type:"star",open:"(?:",close:")*"},"@":{type:"at",open:"(?:",close:")"}}},globChars(t){return t===!0?$pe:G1}}});var Ch=E(cn=>{"use strict";var tde=require("path"),rde=process.platform==="win32",{REGEX_BACKSLASH:ide,REGEX_REMOVE_BACKSLASH:nde,REGEX_SPECIAL_CHARS:sde,REGEX_SPECIAL_CHARS_GLOBAL:ode}=dh();cn.isObject=t=>t!==null&&typeof t=="object"&&!Array.isArray(t);cn.hasRegexChars=t=>sde.test(t);cn.isRegexChar=t=>t.length===1&&cn.hasRegexChars(t);cn.escapeRegex=t=>t.replace(ode,"\\$1");cn.toPosixSlashes=t=>t.replace(ide,"/");cn.removeBackslashes=t=>t.replace(nde,e=>e==="\\"?"":e);cn.supportsLookbehinds=()=>{let t=process.version.slice(1).split(".").map(Number);return t.length===3&&t[0]>=9||t[0]===8&&t[1]>=10};cn.isWindows=t=>t&&typeof t.windows=="boolean"?t.windows:rde===!0||tde.sep==="\\";cn.escapeLast=(t,e,r)=>{let i=t.lastIndexOf(e,r);return i===-1?t:t[i-1]==="\\"?cn.escapeLast(t,e,i-1):`${t.slice(0,i)}\\${t.slice(i)}`};cn.removePrefix=(t,e={})=>{let r=t;return r.startsWith("./")&&(r=r.slice(2),e.prefix="./"),r};cn.wrapOutput=(t,e={},r={})=>{let i=r.contains?"":"^",n=r.contains?"":"$",s=`${i}(?:${t})${n}`;return e.negated===!0&&(s=`(?:^(?!${s}).*$)`),s}});var X1=E((q$e,j1)=>{"use strict";var Y1=Ch(),{CHAR_ASTERISK:Xb,CHAR_AT:ade,CHAR_BACKWARD_SLASH:mh,CHAR_COMMA:Ade,CHAR_DOT:Zb,CHAR_EXCLAMATION_MARK:q1,CHAR_FORWARD_SLASH:J1,CHAR_LEFT_CURLY_BRACE:$b,CHAR_LEFT_PARENTHESES:ev,CHAR_LEFT_SQUARE_BRACKET:lde,CHAR_PLUS:cde,CHAR_QUESTION_MARK:W1,CHAR_RIGHT_CURLY_BRACE:ude,CHAR_RIGHT_PARENTHESES:z1,CHAR_RIGHT_SQUARE_BRACKET:gde}=dh(),V1=t=>t===J1||t===mh,_1=t=>{t.isPrefix!==!0&&(t.depth=t.isGlobstar?Infinity:1)},fde=(t,e)=>{let r=e||{},i=t.length-1,n=r.parts===!0||r.scanToEnd===!0,s=[],o=[],a=[],l=t,c=-1,u=0,g=0,f=!1,h=!1,p=!1,d=!1,m=!1,I=!1,B=!1,b=!1,R=!1,H=0,L,K,J={value:"",depth:0,isGlob:!1},ne=()=>c>=i,q=()=>l.charCodeAt(c+1),A=()=>(L=K,l.charCodeAt(++c));for(;c0&&(W=l.slice(0,u),l=l.slice(u),g-=u),V&&p===!0&&g>0?(V=l.slice(0,g),X=l.slice(g)):p===!0?(V="",X=l):V=l,V&&V!==""&&V!=="/"&&V!==l&&V1(V.charCodeAt(V.length-1))&&(V=V.slice(0,-1)),r.unescape===!0&&(X&&(X=Y1.removeBackslashes(X)),V&&B===!0&&(V=Y1.removeBackslashes(V)));let F={prefix:W,input:t,start:u,base:V,glob:X,isBrace:f,isBracket:h,isGlob:p,isExtglob:d,isGlobstar:m,negated:b};if(r.tokens===!0&&(F.maxDepth=0,V1(K)||o.push(J),F.tokens=o),r.parts===!0||r.tokens===!0){let D;for(let he=0;he{"use strict";var ME=dh(),Fn=Ch(),{MAX_LENGTH:OE,POSIX_REGEX_SOURCE:hde,REGEX_NON_SPECIAL_CHARS:pde,REGEX_SPECIAL_CHARS_BACKREF:dde,REPLACEMENTS:$1}=ME,Cde=(t,e)=>{if(typeof e.expandRange=="function")return e.expandRange(...t,e);t.sort();let r=`[${t.join("-")}]`;try{new RegExp(r)}catch(i){return t.map(n=>Fn.escapeRegex(n)).join("..")}return r},au=(t,e)=>`Missing ${t}: "${e}" - use "\\\\${e}" to match literal characters`,eU=(t,e)=>{if(typeof t!="string")throw new TypeError("Expected a string");t=$1[t]||t;let r=P({},e),i=typeof r.maxLength=="number"?Math.min(OE,r.maxLength):OE,n=t.length;if(n>i)throw new SyntaxError(`Input length: ${n}, exceeds maximum allowed length: ${i}`);let s={type:"bos",value:"",output:r.prepend||""},o=[s],a=r.capture?"":"?:",l=Fn.isWindows(e),c=ME.globChars(l),u=ME.extglobChars(c),{DOT_LITERAL:g,PLUS_LITERAL:f,SLASH_LITERAL:h,ONE_CHAR:p,DOTS_SLASH:d,NO_DOT:m,NO_DOT_SLASH:I,NO_DOTS_SLASH:B,QMARK:b,QMARK_NO_DOT:R,STAR:H,START_ANCHOR:L}=c,K=G=>`(${a}(?:(?!${L}${G.dot?d:g}).)*?)`,J=r.dot?"":m,ne=r.dot?b:R,q=r.bash===!0?K(r):H;r.capture&&(q=`(${q})`),typeof r.noext=="boolean"&&(r.noextglob=r.noext);let A={input:t,index:-1,start:0,dot:r.dot===!0,consumed:"",output:"",prefix:"",backtrack:!1,negated:!1,brackets:0,braces:0,parens:0,quotes:0,globstar:!1,tokens:o};t=Fn.removePrefix(t,A),n=t.length;let V=[],W=[],X=[],F=s,D,he=()=>A.index===n-1,pe=A.peek=(G=1)=>t[A.index+G],Ne=A.advance=()=>t[++A.index],Pe=()=>t.slice(A.index+1),qe=(G="",Ce=0)=>{A.consumed+=G,A.index+=Ce},re=G=>{A.output+=G.output!=null?G.output:G.value,qe(G.value)},se=()=>{let G=1;for(;pe()==="!"&&(pe(2)!=="("||pe(3)==="?");)Ne(),A.start++,G++;return G%2==0?!1:(A.negated=!0,A.start++,!0)},be=G=>{A[G]++,X.push(G)},ae=G=>{A[G]--,X.pop()},Ae=G=>{if(F.type==="globstar"){let Ce=A.braces>0&&(G.type==="comma"||G.type==="brace"),ee=G.extglob===!0||V.length&&(G.type==="pipe"||G.type==="paren");G.type!=="slash"&&G.type!=="paren"&&!Ce&&!ee&&(A.output=A.output.slice(0,-F.output.length),F.type="star",F.value="*",F.output=q,A.output+=F.output)}if(V.length&&G.type!=="paren"&&!u[G.value]&&(V[V.length-1].inner+=G.value),(G.value||G.output)&&re(G),F&&F.type==="text"&&G.type==="text"){F.value+=G.value,F.output=(F.output||"")+G.value;return}G.prev=F,o.push(G),F=G},De=(G,Ce)=>{let ee=_(P({},u[Ce]),{conditions:1,inner:""});ee.prev=F,ee.parens=A.parens,ee.output=A.output;let Ue=(r.capture?"(":"")+ee.open;be("parens"),Ae({type:G,value:Ce,output:A.output?"":p}),Ae({type:"paren",extglob:!0,value:Ne(),output:Ue}),V.push(ee)},$=G=>{let Ce=G.close+(r.capture?")":"");if(G.type==="negate"){let ee=q;G.inner&&G.inner.length>1&&G.inner.includes("/")&&(ee=K(r)),(ee!==q||he()||/^\)+$/.test(Pe()))&&(Ce=G.close=`)$))${ee}`),G.prev.type==="bos"&&(A.negatedExtglob=!0)}Ae({type:"paren",extglob:!0,value:D,output:Ce}),ae("parens")};if(r.fastpaths!==!1&&!/(^[*!]|[/()[\]{}"])/.test(t)){let G=!1,Ce=t.replace(dde,(ee,Ue,Oe,vt,dt,ri)=>vt==="\\"?(G=!0,ee):vt==="?"?Ue?Ue+vt+(dt?b.repeat(dt.length):""):ri===0?ne+(dt?b.repeat(dt.length):""):b.repeat(Oe.length):vt==="."?g.repeat(Oe.length):vt==="*"?Ue?Ue+vt+(dt?q:""):q:Ue?ee:`\\${ee}`);return G===!0&&(r.unescape===!0?Ce=Ce.replace(/\\/g,""):Ce=Ce.replace(/\\+/g,ee=>ee.length%2==0?"\\\\":ee?"\\":"")),Ce===t&&r.contains===!0?(A.output=t,A):(A.output=Fn.wrapOutput(Ce,A,e),A)}for(;!he();){if(D=Ne(),D==="\0")continue;if(D==="\\"){let ee=pe();if(ee==="/"&&r.bash!==!0||ee==="."||ee===";")continue;if(!ee){D+="\\",Ae({type:"text",value:D});continue}let Ue=/^\\+/.exec(Pe()),Oe=0;if(Ue&&Ue[0].length>2&&(Oe=Ue[0].length,A.index+=Oe,Oe%2!=0&&(D+="\\")),r.unescape===!0?D=Ne()||"":D+=Ne()||"",A.brackets===0){Ae({type:"text",value:D});continue}}if(A.brackets>0&&(D!=="]"||F.value==="["||F.value==="[^")){if(r.posix!==!1&&D===":"){let ee=F.value.slice(1);if(ee.includes("[")&&(F.posix=!0,ee.includes(":"))){let Ue=F.value.lastIndexOf("["),Oe=F.value.slice(0,Ue),vt=F.value.slice(Ue+2),dt=hde[vt];if(dt){F.value=Oe+dt,A.backtrack=!0,Ne(),!s.output&&o.indexOf(F)===1&&(s.output=p);continue}}}(D==="["&&pe()!==":"||D==="-"&&pe()==="]")&&(D=`\\${D}`),D==="]"&&(F.value==="["||F.value==="[^")&&(D=`\\${D}`),r.posix===!0&&D==="!"&&F.value==="["&&(D="^"),F.value+=D,re({value:D});continue}if(A.quotes===1&&D!=='"'){D=Fn.escapeRegex(D),F.value+=D,re({value:D});continue}if(D==='"'){A.quotes=A.quotes===1?0:1,r.keepQuotes===!0&&Ae({type:"text",value:D});continue}if(D==="("){be("parens"),Ae({type:"paren",value:D});continue}if(D===")"){if(A.parens===0&&r.strictBrackets===!0)throw new SyntaxError(au("opening","("));let ee=V[V.length-1];if(ee&&A.parens===ee.parens+1){$(V.pop());continue}Ae({type:"paren",value:D,output:A.parens?")":"\\)"}),ae("parens");continue}if(D==="["){if(r.nobracket===!0||!Pe().includes("]")){if(r.nobracket!==!0&&r.strictBrackets===!0)throw new SyntaxError(au("closing","]"));D=`\\${D}`}else be("brackets");Ae({type:"bracket",value:D});continue}if(D==="]"){if(r.nobracket===!0||F&&F.type==="bracket"&&F.value.length===1){Ae({type:"text",value:D,output:`\\${D}`});continue}if(A.brackets===0){if(r.strictBrackets===!0)throw new SyntaxError(au("opening","["));Ae({type:"text",value:D,output:`\\${D}`});continue}ae("brackets");let ee=F.value.slice(1);if(F.posix!==!0&&ee[0]==="^"&&!ee.includes("/")&&(D=`/${D}`),F.value+=D,re({value:D}),r.literalBrackets===!1||Fn.hasRegexChars(ee))continue;let Ue=Fn.escapeRegex(F.value);if(A.output=A.output.slice(0,-F.value.length),r.literalBrackets===!0){A.output+=Ue,F.value=Ue;continue}F.value=`(${a}${Ue}|${F.value})`,A.output+=F.value;continue}if(D==="{"&&r.nobrace!==!0){be("braces");let ee={type:"brace",value:D,output:"(",outputIndex:A.output.length,tokensIndex:A.tokens.length};W.push(ee),Ae(ee);continue}if(D==="}"){let ee=W[W.length-1];if(r.nobrace===!0||!ee){Ae({type:"text",value:D,output:D});continue}let Ue=")";if(ee.dots===!0){let Oe=o.slice(),vt=[];for(let dt=Oe.length-1;dt>=0&&(o.pop(),Oe[dt].type!=="brace");dt--)Oe[dt].type!=="dots"&&vt.unshift(Oe[dt].value);Ue=Cde(vt,r),A.backtrack=!0}if(ee.comma!==!0&&ee.dots!==!0){let Oe=A.output.slice(0,ee.outputIndex),vt=A.tokens.slice(ee.tokensIndex);ee.value=ee.output="\\{",D=Ue="\\}",A.output=Oe;for(let dt of vt)A.output+=dt.output||dt.value}Ae({type:"brace",value:D,output:Ue}),ae("braces"),W.pop();continue}if(D==="|"){V.length>0&&V[V.length-1].conditions++,Ae({type:"text",value:D});continue}if(D===","){let ee=D,Ue=W[W.length-1];Ue&&X[X.length-1]==="braces"&&(Ue.comma=!0,ee="|"),Ae({type:"comma",value:D,output:ee});continue}if(D==="/"){if(F.type==="dot"&&A.index===A.start+1){A.start=A.index+1,A.consumed="",A.output="",o.pop(),F=s;continue}Ae({type:"slash",value:D,output:h});continue}if(D==="."){if(A.braces>0&&F.type==="dot"){F.value==="."&&(F.output=g);let ee=W[W.length-1];F.type="dots",F.output+=D,F.value+=D,ee.dots=!0;continue}if(A.braces+A.parens===0&&F.type!=="bos"&&F.type!=="slash"){Ae({type:"text",value:D,output:g});continue}Ae({type:"dot",value:D,output:g});continue}if(D==="?"){if(!(F&&F.value==="(")&&r.noextglob!==!0&&pe()==="("&&pe(2)!=="?"){De("qmark",D);continue}if(F&&F.type==="paren"){let Ue=pe(),Oe=D;if(Ue==="<"&&!Fn.supportsLookbehinds())throw new Error("Node.js v10 or higher is required for regex lookbehinds");(F.value==="("&&!/[!=<:]/.test(Ue)||Ue==="<"&&!/<([!=]|\w+>)/.test(Pe()))&&(Oe=`\\${D}`),Ae({type:"text",value:D,output:Oe});continue}if(r.dot!==!0&&(F.type==="slash"||F.type==="bos")){Ae({type:"qmark",value:D,output:R});continue}Ae({type:"qmark",value:D,output:b});continue}if(D==="!"){if(r.noextglob!==!0&&pe()==="("&&(pe(2)!=="?"||!/[!=<:]/.test(pe(3)))){De("negate",D);continue}if(r.nonegate!==!0&&A.index===0){se();continue}}if(D==="+"){if(r.noextglob!==!0&&pe()==="("&&pe(2)!=="?"){De("plus",D);continue}if(F&&F.value==="("||r.regex===!1){Ae({type:"plus",value:D,output:f});continue}if(F&&(F.type==="bracket"||F.type==="paren"||F.type==="brace")||A.parens>0){Ae({type:"plus",value:D});continue}Ae({type:"plus",value:f});continue}if(D==="@"){if(r.noextglob!==!0&&pe()==="("&&pe(2)!=="?"){Ae({type:"at",extglob:!0,value:D,output:""});continue}Ae({type:"text",value:D});continue}if(D!=="*"){(D==="$"||D==="^")&&(D=`\\${D}`);let ee=pde.exec(Pe());ee&&(D+=ee[0],A.index+=ee[0].length),Ae({type:"text",value:D});continue}if(F&&(F.type==="globstar"||F.star===!0)){F.type="star",F.star=!0,F.value+=D,F.output=q,A.backtrack=!0,A.globstar=!0,qe(D);continue}let G=Pe();if(r.noextglob!==!0&&/^\([^?]/.test(G)){De("star",D);continue}if(F.type==="star"){if(r.noglobstar===!0){qe(D);continue}let ee=F.prev,Ue=ee.prev,Oe=ee.type==="slash"||ee.type==="bos",vt=Ue&&(Ue.type==="star"||Ue.type==="globstar");if(r.bash===!0&&(!Oe||G[0]&&G[0]!=="/")){Ae({type:"star",value:D,output:""});continue}let dt=A.braces>0&&(ee.type==="comma"||ee.type==="brace"),ri=V.length&&(ee.type==="pipe"||ee.type==="paren");if(!Oe&&ee.type!=="paren"&&!dt&&!ri){Ae({type:"star",value:D,output:""});continue}for(;G.slice(0,3)==="/**";){let ii=t[A.index+4];if(ii&&ii!=="/")break;G=G.slice(3),qe("/**",3)}if(ee.type==="bos"&&he()){F.type="globstar",F.value+=D,F.output=K(r),A.output=F.output,A.globstar=!0,qe(D);continue}if(ee.type==="slash"&&ee.prev.type!=="bos"&&!vt&&he()){A.output=A.output.slice(0,-(ee.output+F.output).length),ee.output=`(?:${ee.output}`,F.type="globstar",F.output=K(r)+(r.strictSlashes?")":"|$)"),F.value+=D,A.globstar=!0,A.output+=ee.output+F.output,qe(D);continue}if(ee.type==="slash"&&ee.prev.type!=="bos"&&G[0]==="/"){let ii=G[1]!==void 0?"|$":"";A.output=A.output.slice(0,-(ee.output+F.output).length),ee.output=`(?:${ee.output}`,F.type="globstar",F.output=`${K(r)}${h}|${h}${ii})`,F.value+=D,A.output+=ee.output+F.output,A.globstar=!0,qe(D+Ne()),Ae({type:"slash",value:"/",output:""});continue}if(ee.type==="bos"&&G[0]==="/"){F.type="globstar",F.value+=D,F.output=`(?:^|${h}|${K(r)}${h})`,A.output=F.output,A.globstar=!0,qe(D+Ne()),Ae({type:"slash",value:"/",output:""});continue}A.output=A.output.slice(0,-F.output.length),F.type="globstar",F.output=K(r),F.value+=D,A.output+=F.output,A.globstar=!0,qe(D);continue}let Ce={type:"star",value:D,output:q};if(r.bash===!0){Ce.output=".*?",(F.type==="bos"||F.type==="slash")&&(Ce.output=J+Ce.output),Ae(Ce);continue}if(F&&(F.type==="bracket"||F.type==="paren")&&r.regex===!0){Ce.output=D,Ae(Ce);continue}(A.index===A.start||F.type==="slash"||F.type==="dot")&&(F.type==="dot"?(A.output+=I,F.output+=I):r.dot===!0?(A.output+=B,F.output+=B):(A.output+=J,F.output+=J),pe()!=="*"&&(A.output+=p,F.output+=p)),Ae(Ce)}for(;A.brackets>0;){if(r.strictBrackets===!0)throw new SyntaxError(au("closing","]"));A.output=Fn.escapeLast(A.output,"["),ae("brackets")}for(;A.parens>0;){if(r.strictBrackets===!0)throw new SyntaxError(au("closing",")"));A.output=Fn.escapeLast(A.output,"("),ae("parens")}for(;A.braces>0;){if(r.strictBrackets===!0)throw new SyntaxError(au("closing","}"));A.output=Fn.escapeLast(A.output,"{"),ae("braces")}if(r.strictSlashes!==!0&&(F.type==="star"||F.type==="bracket")&&Ae({type:"maybe_slash",value:"",output:`${h}?`}),A.backtrack===!0){A.output="";for(let G of A.tokens)A.output+=G.output!=null?G.output:G.value,G.suffix&&(A.output+=G.suffix)}return A};eU.fastpaths=(t,e)=>{let r=P({},e),i=typeof r.maxLength=="number"?Math.min(OE,r.maxLength):OE,n=t.length;if(n>i)throw new SyntaxError(`Input length: ${n}, exceeds maximum allowed length: ${i}`);t=$1[t]||t;let s=Fn.isWindows(e),{DOT_LITERAL:o,SLASH_LITERAL:a,ONE_CHAR:l,DOTS_SLASH:c,NO_DOT:u,NO_DOTS:g,NO_DOTS_SLASH:f,STAR:h,START_ANCHOR:p}=ME.globChars(s),d=r.dot?g:u,m=r.dot?f:u,I=r.capture?"":"?:",B={negated:!1,prefix:""},b=r.bash===!0?".*?":h;r.capture&&(b=`(${b})`);let R=J=>J.noglobstar===!0?b:`(${I}(?:(?!${p}${J.dot?c:o}).)*?)`,H=J=>{switch(J){case"*":return`${d}${l}${b}`;case".*":return`${o}${l}${b}`;case"*.*":return`${d}${b}${o}${l}${b}`;case"*/*":return`${d}${b}${a}${l}${m}${b}`;case"**":return d+R(r);case"**/*":return`(?:${d}${R(r)}${a})?${m}${l}${b}`;case"**/*.*":return`(?:${d}${R(r)}${a})?${m}${b}${o}${l}${b}`;case"**/.*":return`(?:${d}${R(r)}${a})?${o}${l}${b}`;default:{let ne=/^(.*?)\.(\w+)$/.exec(J);if(!ne)return;let q=H(ne[1]);return q?q+o+ne[2]:void 0}}},L=Fn.removePrefix(t,B),K=H(L);return K&&r.strictSlashes!==!0&&(K+=`${a}?`),K};Z1.exports=eU});var iU=E((W$e,rU)=>{"use strict";var mde=require("path"),Ede=X1(),tv=tU(),rv=Ch(),Ide=dh(),yde=t=>t&&typeof t=="object"&&!Array.isArray(t),Dr=(t,e,r=!1)=>{if(Array.isArray(t)){let u=t.map(f=>Dr(f,e,r));return f=>{for(let h of u){let p=h(f);if(p)return p}return!1}}let i=yde(t)&&t.tokens&&t.input;if(t===""||typeof t!="string"&&!i)throw new TypeError("Expected pattern to be a non-empty string");let n=e||{},s=rv.isWindows(e),o=i?Dr.compileRe(t,e):Dr.makeRe(t,e,!1,!0),a=o.state;delete o.state;let l=()=>!1;if(n.ignore){let u=_(P({},e),{ignore:null,onMatch:null,onResult:null});l=Dr(n.ignore,u,r)}let c=(u,g=!1)=>{let{isMatch:f,match:h,output:p}=Dr.test(u,o,e,{glob:t,posix:s}),d={glob:t,state:a,regex:o,posix:s,input:u,output:p,match:h,isMatch:f};return typeof n.onResult=="function"&&n.onResult(d),f===!1?(d.isMatch=!1,g?d:!1):l(u)?(typeof n.onIgnore=="function"&&n.onIgnore(d),d.isMatch=!1,g?d:!1):(typeof n.onMatch=="function"&&n.onMatch(d),g?d:!0)};return r&&(c.state=a),c};Dr.test=(t,e,r,{glob:i,posix:n}={})=>{if(typeof t!="string")throw new TypeError("Expected input to be a string");if(t==="")return{isMatch:!1,output:""};let s=r||{},o=s.format||(n?rv.toPosixSlashes:null),a=t===i,l=a&&o?o(t):t;return a===!1&&(l=o?o(t):t,a=l===i),(a===!1||s.capture===!0)&&(s.matchBase===!0||s.basename===!0?a=Dr.matchBase(t,e,r,n):a=e.exec(l)),{isMatch:Boolean(a),match:a,output:l}};Dr.matchBase=(t,e,r,i=rv.isWindows(r))=>(e instanceof RegExp?e:Dr.makeRe(e,r)).test(mde.basename(t));Dr.isMatch=(t,e,r)=>Dr(e,r)(t);Dr.parse=(t,e)=>Array.isArray(t)?t.map(r=>Dr.parse(r,e)):tv(t,_(P({},e),{fastpaths:!1}));Dr.scan=(t,e)=>Ede(t,e);Dr.compileRe=(t,e,r=!1,i=!1)=>{if(r===!0)return t.output;let n=e||{},s=n.contains?"":"^",o=n.contains?"":"$",a=`${s}(?:${t.output})${o}`;t&&t.negated===!0&&(a=`^(?!${a}).*$`);let l=Dr.toRegex(a,e);return i===!0&&(l.state=t),l};Dr.makeRe=(t,e,r=!1,i=!1)=>{if(!t||typeof t!="string")throw new TypeError("Expected a non-empty string");let n=e||{},s={negated:!1,fastpaths:!0},o="",a;return t.startsWith("./")&&(t=t.slice(2),o=s.prefix="./"),n.fastpaths!==!1&&(t[0]==="."||t[0]==="*")&&(a=tv.fastpaths(t,e)),a===void 0?(s=tv(t,e),s.prefix=o+(s.prefix||"")):s.output=a,Dr.compileRe(s,e,r,i)};Dr.toRegex=(t,e)=>{try{let r=e||{};return new RegExp(t,r.flags||(r.nocase?"i":""))}catch(r){if(e&&e.debug===!0)throw r;return/$^/}};Dr.constants=Ide;rU.exports=Dr});var iv=E((z$e,nU)=>{"use strict";nU.exports=iU()});var Nn=E((V$e,sU)=>{"use strict";var oU=require("util"),aU=M1(),no=iv(),nv=Ch(),AU=t=>typeof t=="string"&&(t===""||t==="./"),pr=(t,e,r)=>{e=[].concat(e),t=[].concat(t);let i=new Set,n=new Set,s=new Set,o=0,a=u=>{s.add(u.output),r&&r.onResult&&r.onResult(u)};for(let u=0;u!i.has(u));if(r&&c.length===0){if(r.failglob===!0)throw new Error(`No matches found for "${e.join(", ")}"`);if(r.nonull===!0||r.nullglob===!0)return r.unescape?e.map(u=>u.replace(/\\/g,"")):e}return c};pr.match=pr;pr.matcher=(t,e)=>no(t,e);pr.isMatch=(t,e,r)=>no(e,r)(t);pr.any=pr.isMatch;pr.not=(t,e,r={})=>{e=[].concat(e).map(String);let i=new Set,n=[],s=a=>{r.onResult&&r.onResult(a),n.push(a.output)},o=pr(t,e,_(P({},r),{onResult:s}));for(let a of n)o.includes(a)||i.add(a);return[...i]};pr.contains=(t,e,r)=>{if(typeof t!="string")throw new TypeError(`Expected a string: "${oU.inspect(t)}"`);if(Array.isArray(e))return e.some(i=>pr.contains(t,i,r));if(typeof e=="string"){if(AU(t)||AU(e))return!1;if(t.includes(e)||t.startsWith("./")&&t.slice(2).includes(e))return!0}return pr.isMatch(t,e,_(P({},r),{contains:!0}))};pr.matchKeys=(t,e,r)=>{if(!nv.isObject(t))throw new TypeError("Expected the first argument to be an object");let i=pr(Object.keys(t),e,r),n={};for(let s of i)n[s]=t[s];return n};pr.some=(t,e,r)=>{let i=[].concat(t);for(let n of[].concat(e)){let s=no(String(n),r);if(i.some(o=>s(o)))return!0}return!1};pr.every=(t,e,r)=>{let i=[].concat(t);for(let n of[].concat(e)){let s=no(String(n),r);if(!i.every(o=>s(o)))return!1}return!0};pr.all=(t,e,r)=>{if(typeof t!="string")throw new TypeError(`Expected a string: "${oU.inspect(t)}"`);return[].concat(e).every(i=>no(i,r)(t))};pr.capture=(t,e,r)=>{let i=nv.isWindows(r),s=no.makeRe(String(t),_(P({},r),{capture:!0})).exec(i?nv.toPosixSlashes(e):e);if(s)return s.slice(1).map(o=>o===void 0?"":o)};pr.makeRe=(...t)=>no.makeRe(...t);pr.scan=(...t)=>no.scan(...t);pr.parse=(t,e)=>{let r=[];for(let i of[].concat(t||[]))for(let n of aU(String(i),e))r.push(no.parse(n,e));return r};pr.braces=(t,e)=>{if(typeof t!="string")throw new TypeError("Expected a string");return e&&e.nobrace===!0||!/\{.*\}/.test(t)?[t]:aU(t,e)};pr.braceExpand=(t,e)=>{if(typeof t!="string")throw new TypeError("Expected a string");return pr.braces(t,_(P({},e),{expand:!0}))};sU.exports=pr});var cU=E((_$e,lU)=>{"use strict";lU.exports=({onlyFirst:t=!1}={})=>{let e=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:[a-zA-Z\\d]*(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(e,t?void 0:"g")}});var gU=E((X$e,uU)=>{"use strict";var wde=cU();uU.exports=t=>typeof t=="string"?t.replace(wde(),""):t});var lu={};it(lu,{KeyRelationship:()=>Bl,applyCascade:()=>fv,base64RegExp:()=>CU,colorStringAlphaRegExp:()=>dU,colorStringRegExp:()=>pU,computeKey:()=>rA,getPrintable:()=>Mr,hasExactLength:()=>wU,hasForbiddenKeys:()=>eCe,hasKeyRelationship:()=>pv,hasMaxLength:()=>Mde,hasMinLength:()=>Tde,hasMutuallyExclusiveKeys:()=>tCe,hasRequiredKeys:()=>$de,hasUniqueItems:()=>Ode,isArray:()=>xde,isAtLeast:()=>Hde,isAtMost:()=>Gde,isBase64:()=>Xde,isBoolean:()=>bde,isDate:()=>Sde,isDict:()=>Pde,isEnum:()=>Yi,isHexColor:()=>_de,isISO8601:()=>Vde,isInExclusiveRange:()=>Yde,isInInclusiveRange:()=>jde,isInstanceOf:()=>Rde,isInteger:()=>qde,isJSON:()=>Zde,isLiteral:()=>Bde,isLowerCase:()=>Jde,isNegative:()=>Kde,isNullable:()=>Lde,isNumber:()=>vde,isObject:()=>Dde,isOneOf:()=>Fde,isOptional:()=>Nde,isPositive:()=>Ude,isString:()=>gv,isTuple:()=>kde,isUUID4:()=>zde,isUnknown:()=>yU,isUpperCase:()=>Wde,iso8601RegExp:()=>uv,makeCoercionFn:()=>wl,makeSetter:()=>IU,makeTrait:()=>EU,makeValidator:()=>Ct,matchesRegExp:()=>hv,plural:()=>GE,pushError:()=>at,simpleKeyRegExp:()=>hU,uuid4RegExp:()=>mU});function Ct({test:t}){return EU(t)()}function Mr(t){return t===null?"null":t===void 0?"undefined":t===""?"an empty string":JSON.stringify(t)}function rA(t,e){var r,i,n;return typeof e=="number"?`${(r=t==null?void 0:t.p)!==null&&r!==void 0?r:"."}[${e}]`:hU.test(e)?`${(i=t==null?void 0:t.p)!==null&&i!==void 0?i:""}.${e}`:`${(n=t==null?void 0:t.p)!==null&&n!==void 0?n:"."}[${JSON.stringify(e)}]`}function wl(t,e){return r=>{let i=t[e];return t[e]=r,wl(t,e).bind(null,i)}}function IU(t,e){return r=>{t[e]=r}}function GE(t,e,r){return t===1?e:r}function at({errors:t,p:e}={},r){return t==null||t.push(`${e!=null?e:"."}: ${r}`),!1}function Bde(t){return Ct({test:(e,r)=>e!==t?at(r,`Expected a literal (got ${Mr(t)})`):!0})}function Yi(t){let e=Array.isArray(t)?t:Object.values(t),r=new Set(e);return Ct({test:(i,n)=>r.has(i)?!0:at(n,`Expected a valid enumeration value (got ${Mr(i)})`)})}var hU,pU,dU,CU,mU,uv,EU,yU,gv,Qde,bde,vde,Sde,xde,kde,Pde,Dde,Rde,Fde,fv,Nde,Lde,Tde,Mde,wU,Ode,Kde,Ude,Hde,Gde,jde,Yde,qde,hv,Jde,Wde,zde,Vde,_de,Xde,Zde,$de,eCe,tCe,Bl,rCe,pv,Ss=Yfe(()=>{hU=/^[a-zA-Z_][a-zA-Z0-9_]*$/,pU=/^#[0-9a-f]{6}$/i,dU=/^#[0-9a-f]{6}([0-9a-f]{2})?$/i,CU=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/,mU=/^[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89aAbB][a-f0-9]{3}-[a-f0-9]{12}$/i,uv=/^(?:[1-9]\d{3}(-?)(?:(?:0[1-9]|1[0-2])\1(?:0[1-9]|1\d|2[0-8])|(?:0[13-9]|1[0-2])\1(?:29|30)|(?:0[13578]|1[02])(?:\1)31|00[1-9]|0[1-9]\d|[12]\d{2}|3(?:[0-5]\d|6[0-5]))|(?:[1-9]\d(?:0[48]|[2468][048]|[13579][26])|(?:[2468][048]|[13579][26])00)(?:(-?)02(?:\2)29|-?366))T(?:[01]\d|2[0-3])(:?)[0-5]\d(?:\3[0-5]\d)?(?:Z|[+-][01]\d(?:\3[0-5]\d)?)$/,EU=t=>()=>t;yU=()=>Ct({test:(t,e)=>!0});gv=()=>Ct({test:(t,e)=>typeof t!="string"?at(e,`Expected a string (got ${Mr(t)})`):!0});Qde=new Map([["true",!0],["True",!0],["1",!0],[1,!0],["false",!1],["False",!1],["0",!1],[0,!1]]),bde=()=>Ct({test:(t,e)=>{var r;if(typeof t!="boolean"){if(typeof(e==null?void 0:e.coercions)!="undefined"){if(typeof(e==null?void 0:e.coercion)=="undefined")return at(e,"Unbound coercion result");let i=Qde.get(t);if(typeof i!="undefined")return e.coercions.push([(r=e.p)!==null&&r!==void 0?r:".",e.coercion.bind(null,i)]),!0}return at(e,`Expected a boolean (got ${Mr(t)})`)}return!0}}),vde=()=>Ct({test:(t,e)=>{var r;if(typeof t!="number"){if(typeof(e==null?void 0:e.coercions)!="undefined"){if(typeof(e==null?void 0:e.coercion)=="undefined")return at(e,"Unbound coercion result");let i;if(typeof t=="string"){let n;try{n=JSON.parse(t)}catch(s){}if(typeof n=="number")if(JSON.stringify(n)===t)i=n;else return at(e,`Received a number that can't be safely represented by the runtime (${t})`)}if(typeof i!="undefined")return e.coercions.push([(r=e.p)!==null&&r!==void 0?r:".",e.coercion.bind(null,i)]),!0}return at(e,`Expected a number (got ${Mr(t)})`)}return!0}}),Sde=()=>Ct({test:(t,e)=>{var r;if(!(t instanceof Date)){if(typeof(e==null?void 0:e.coercions)!="undefined"){if(typeof(e==null?void 0:e.coercion)=="undefined")return at(e,"Unbound coercion result");let i;if(typeof t=="string"&&uv.test(t))i=new Date(t);else{let n;if(typeof t=="string"){let s;try{s=JSON.parse(t)}catch(o){}typeof s=="number"&&(n=s)}else typeof t=="number"&&(n=t);if(typeof n!="undefined")if(Number.isSafeInteger(n)||!Number.isSafeInteger(n*1e3))i=new Date(n*1e3);else return at(e,`Received a timestamp that can't be safely represented by the runtime (${t})`)}if(typeof i!="undefined")return e.coercions.push([(r=e.p)!==null&&r!==void 0?r:".",e.coercion.bind(null,i)]),!0}return at(e,`Expected a date (got ${Mr(t)})`)}return!0}}),xde=(t,{delimiter:e}={})=>Ct({test:(r,i)=>{var n;if(typeof r=="string"&&typeof e!="undefined"&&typeof(i==null?void 0:i.coercions)!="undefined"){if(typeof(i==null?void 0:i.coercion)=="undefined")return at(i,"Unbound coercion result");r=r.split(e),i.coercions.push([(n=i.p)!==null&&n!==void 0?n:".",i.coercion.bind(null,r)])}if(!Array.isArray(r))return at(i,`Expected an array (got ${Mr(r)})`);let s=!0;for(let o=0,a=r.length;o{let r=wU(t.length);return Ct({test:(i,n)=>{var s;if(typeof i=="string"&&typeof e!="undefined"&&typeof(n==null?void 0:n.coercions)!="undefined"){if(typeof(n==null?void 0:n.coercion)=="undefined")return at(n,"Unbound coercion result");i=i.split(e),n.coercions.push([(s=n.p)!==null&&s!==void 0?s:".",n.coercion.bind(null,i)])}if(!Array.isArray(i))return at(n,`Expected a tuple (got ${Mr(i)})`);let o=r(i,Object.assign({},n));for(let a=0,l=i.length;aCt({test:(r,i)=>{if(typeof r!="object"||r===null)return at(i,`Expected an object (got ${Mr(r)})`);let n=Object.keys(r),s=!0;for(let o=0,a=n.length;o{let r=Object.keys(t);return Ct({test:(i,n)=>{if(typeof i!="object"||i===null)return at(n,`Expected an object (got ${Mr(i)})`);let s=new Set([...r,...Object.keys(i)]),o={},a=!0;for(let l of s){if(l==="constructor"||l==="__proto__")a=at(Object.assign(Object.assign({},n),{p:rA(n,l)}),"Unsafe property name");else{let c=Object.prototype.hasOwnProperty.call(t,l)?t[l]:void 0,u=Object.prototype.hasOwnProperty.call(i,l)?i[l]:void 0;typeof c!="undefined"?a=c(u,Object.assign(Object.assign({},n),{p:rA(n,l),coercion:wl(i,l)}))&&a:e===null?a=at(Object.assign(Object.assign({},n),{p:rA(n,l)}),`Extraneous property (got ${Mr(u)})`):Object.defineProperty(o,l,{enumerable:!0,get:()=>u,set:IU(i,l)})}if(!a&&(n==null?void 0:n.errors)==null)break}return e!==null&&(a||(n==null?void 0:n.errors)!=null)&&(a=e(o,n)&&a),a}})},Rde=t=>Ct({test:(e,r)=>e instanceof t?!0:at(r,`Expected an instance of ${t.name} (got ${Mr(e)})`)}),Fde=(t,{exclusive:e=!1}={})=>Ct({test:(r,i)=>{var n,s,o;let a=[],l=typeof(i==null?void 0:i.errors)!="undefined"?[]:void 0;for(let c=0,u=t.length;c1?at(i,`Expected to match exactly a single predicate (matched ${a.join(", ")})`):(o=i==null?void 0:i.errors)===null||o===void 0||o.push(...l),!1}}),fv=(t,e)=>Ct({test:(r,i)=>{var n,s;let o={value:r},a=typeof(i==null?void 0:i.coercions)!="undefined"?wl(o,"value"):void 0,l=typeof(i==null?void 0:i.coercions)!="undefined"?[]:void 0;if(!t(r,Object.assign(Object.assign({},i),{coercion:a,coercions:l})))return!1;let c=[];if(typeof l!="undefined")for(let[,u]of l)c.push(u());try{if(typeof(i==null?void 0:i.coercions)!="undefined"){if(o.value!==r){if(typeof(i==null?void 0:i.coercion)=="undefined")return at(i,"Unbound coercion result");i.coercions.push([(n=i.p)!==null&&n!==void 0?n:".",i.coercion.bind(null,o.value)])}(s=i==null?void 0:i.coercions)===null||s===void 0||s.push(...l)}return e.every(u=>u(o.value,i))}finally{for(let u of c)u()}}}),Nde=t=>Ct({test:(e,r)=>typeof e=="undefined"?!0:t(e,r)}),Lde=t=>Ct({test:(e,r)=>e===null?!0:t(e,r)}),Tde=t=>Ct({test:(e,r)=>e.length>=t?!0:at(r,`Expected to have a length of at least ${t} elements (got ${e.length})`)}),Mde=t=>Ct({test:(e,r)=>e.length<=t?!0:at(r,`Expected to have a length of at most ${t} elements (got ${e.length})`)}),wU=t=>Ct({test:(e,r)=>e.length!==t?at(r,`Expected to have a length of exactly ${t} elements (got ${e.length})`):!0}),Ode=({map:t}={})=>Ct({test:(e,r)=>{let i=new Set,n=new Set;for(let s=0,o=e.length;sCt({test:(t,e)=>t<=0?!0:at(e,`Expected to be negative (got ${t})`)}),Ude=()=>Ct({test:(t,e)=>t>=0?!0:at(e,`Expected to be positive (got ${t})`)}),Hde=t=>Ct({test:(e,r)=>e>=t?!0:at(r,`Expected to be at least ${t} (got ${e})`)}),Gde=t=>Ct({test:(e,r)=>e<=t?!0:at(r,`Expected to be at most ${t} (got ${e})`)}),jde=(t,e)=>Ct({test:(r,i)=>r>=t&&r<=e?!0:at(i,`Expected to be in the [${t}; ${e}] range (got ${r})`)}),Yde=(t,e)=>Ct({test:(r,i)=>r>=t&&rCt({test:(e,r)=>e!==Math.round(e)?at(r,`Expected to be an integer (got ${e})`):Number.isSafeInteger(e)?!0:at(r,`Expected to be a safe integer (got ${e})`)}),hv=t=>Ct({test:(e,r)=>t.test(e)?!0:at(r,`Expected to match the pattern ${t.toString()} (got ${Mr(e)})`)}),Jde=()=>Ct({test:(t,e)=>t!==t.toLowerCase()?at(e,`Expected to be all-lowercase (got ${t})`):!0}),Wde=()=>Ct({test:(t,e)=>t!==t.toUpperCase()?at(e,`Expected to be all-uppercase (got ${t})`):!0}),zde=()=>Ct({test:(t,e)=>mU.test(t)?!0:at(e,`Expected to be a valid UUID v4 (got ${Mr(t)})`)}),Vde=()=>Ct({test:(t,e)=>uv.test(t)?!1:at(e,`Expected to be a valid ISO 8601 date string (got ${Mr(t)})`)}),_de=({alpha:t=!1})=>Ct({test:(e,r)=>(t?pU.test(e):dU.test(e))?!0:at(r,`Expected to be a valid hexadecimal color string (got ${Mr(e)})`)}),Xde=()=>Ct({test:(t,e)=>CU.test(t)?!0:at(e,`Expected to be a valid base 64 string (got ${Mr(t)})`)}),Zde=(t=yU())=>Ct({test:(e,r)=>{let i;try{i=JSON.parse(e)}catch(n){return at(r,`Expected to be a valid JSON string (got ${Mr(e)})`)}return t(i,r)}}),$de=t=>{let e=new Set(t);return Ct({test:(r,i)=>{let n=new Set(Object.keys(r)),s=[];for(let o of e)n.has(o)||s.push(o);return s.length>0?at(i,`Missing required ${GE(s.length,"property","properties")} ${s.map(o=>`"${o}"`).join(", ")}`):!0}})},eCe=t=>{let e=new Set(t);return Ct({test:(r,i)=>{let n=new Set(Object.keys(r)),s=[];for(let o of e)n.has(o)&&s.push(o);return s.length>0?at(i,`Forbidden ${GE(s.length,"property","properties")} ${s.map(o=>`"${o}"`).join(", ")}`):!0}})},tCe=t=>{let e=new Set(t);return Ct({test:(r,i)=>{let n=new Set(Object.keys(r)),s=[];for(let o of e)n.has(o)&&s.push(o);return s.length>1?at(i,`Mutually exclusive properties ${s.map(o=>`"${o}"`).join(", ")}`):!0}})};(function(t){t.Forbids="Forbids",t.Requires="Requires"})(Bl||(Bl={}));rCe={[Bl.Forbids]:{expect:!1,message:"forbids using"},[Bl.Requires]:{expect:!0,message:"requires using"}},pv=(t,e,r,{ignore:i=[]}={})=>{let n=new Set(i),s=new Set(r),o=rCe[e];return Ct({test:(a,l)=>{let c=new Set(Object.keys(a));if(!c.has(t)||n.has(a[t]))return!0;let u=[];for(let g of s)(c.has(g)&&!n.has(a[g]))!==o.expect&&u.push(g);return u.length>=1?at(l,`Property "${t}" ${o.message} ${GE(u.length,"property","properties")} ${u.map(g=>`"${g}"`).join(", ")}`):!0}})}});var Sh=E(($et,OU)=>{var mCe="2.0.0",ECe=256,ICe=Number.MAX_SAFE_INTEGER||9007199254740991,yCe=16;OU.exports={SEMVER_SPEC_VERSION:mCe,MAX_LENGTH:ECe,MAX_SAFE_INTEGER:ICe,MAX_SAFE_COMPONENT_LENGTH:yCe}});var xh=E((ett,KU)=>{var wCe=typeof process=="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...t)=>console.error("SEMVER",...t):()=>{};KU.exports=wCe});var Ql=E((iA,UU)=>{var{MAX_SAFE_COMPONENT_LENGTH:yv}=Sh(),BCe=xh();iA=UU.exports={};var QCe=iA.re=[],Je=iA.src=[],We=iA.t={},bCe=0,mt=(t,e,r)=>{let i=bCe++;BCe(i,e),We[t]=i,Je[i]=e,QCe[i]=new RegExp(e,r?"g":void 0)};mt("NUMERICIDENTIFIER","0|[1-9]\\d*");mt("NUMERICIDENTIFIERLOOSE","[0-9]+");mt("NONNUMERICIDENTIFIER","\\d*[a-zA-Z-][a-zA-Z0-9-]*");mt("MAINVERSION",`(${Je[We.NUMERICIDENTIFIER]})\\.(${Je[We.NUMERICIDENTIFIER]})\\.(${Je[We.NUMERICIDENTIFIER]})`);mt("MAINVERSIONLOOSE",`(${Je[We.NUMERICIDENTIFIERLOOSE]})\\.(${Je[We.NUMERICIDENTIFIERLOOSE]})\\.(${Je[We.NUMERICIDENTIFIERLOOSE]})`);mt("PRERELEASEIDENTIFIER",`(?:${Je[We.NUMERICIDENTIFIER]}|${Je[We.NONNUMERICIDENTIFIER]})`);mt("PRERELEASEIDENTIFIERLOOSE",`(?:${Je[We.NUMERICIDENTIFIERLOOSE]}|${Je[We.NONNUMERICIDENTIFIER]})`);mt("PRERELEASE",`(?:-(${Je[We.PRERELEASEIDENTIFIER]}(?:\\.${Je[We.PRERELEASEIDENTIFIER]})*))`);mt("PRERELEASELOOSE",`(?:-?(${Je[We.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${Je[We.PRERELEASEIDENTIFIERLOOSE]})*))`);mt("BUILDIDENTIFIER","[0-9A-Za-z-]+");mt("BUILD",`(?:\\+(${Je[We.BUILDIDENTIFIER]}(?:\\.${Je[We.BUILDIDENTIFIER]})*))`);mt("FULLPLAIN",`v?${Je[We.MAINVERSION]}${Je[We.PRERELEASE]}?${Je[We.BUILD]}?`);mt("FULL",`^${Je[We.FULLPLAIN]}$`);mt("LOOSEPLAIN",`[v=\\s]*${Je[We.MAINVERSIONLOOSE]}${Je[We.PRERELEASELOOSE]}?${Je[We.BUILD]}?`);mt("LOOSE",`^${Je[We.LOOSEPLAIN]}$`);mt("GTLT","((?:<|>)?=?)");mt("XRANGEIDENTIFIERLOOSE",`${Je[We.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`);mt("XRANGEIDENTIFIER",`${Je[We.NUMERICIDENTIFIER]}|x|X|\\*`);mt("XRANGEPLAIN",`[v=\\s]*(${Je[We.XRANGEIDENTIFIER]})(?:\\.(${Je[We.XRANGEIDENTIFIER]})(?:\\.(${Je[We.XRANGEIDENTIFIER]})(?:${Je[We.PRERELEASE]})?${Je[We.BUILD]}?)?)?`);mt("XRANGEPLAINLOOSE",`[v=\\s]*(${Je[We.XRANGEIDENTIFIERLOOSE]})(?:\\.(${Je[We.XRANGEIDENTIFIERLOOSE]})(?:\\.(${Je[We.XRANGEIDENTIFIERLOOSE]})(?:${Je[We.PRERELEASELOOSE]})?${Je[We.BUILD]}?)?)?`);mt("XRANGE",`^${Je[We.GTLT]}\\s*${Je[We.XRANGEPLAIN]}$`);mt("XRANGELOOSE",`^${Je[We.GTLT]}\\s*${Je[We.XRANGEPLAINLOOSE]}$`);mt("COERCE",`(^|[^\\d])(\\d{1,${yv}})(?:\\.(\\d{1,${yv}}))?(?:\\.(\\d{1,${yv}}))?(?:$|[^\\d])`);mt("COERCERTL",Je[We.COERCE],!0);mt("LONETILDE","(?:~>?)");mt("TILDETRIM",`(\\s*)${Je[We.LONETILDE]}\\s+`,!0);iA.tildeTrimReplace="$1~";mt("TILDE",`^${Je[We.LONETILDE]}${Je[We.XRANGEPLAIN]}$`);mt("TILDELOOSE",`^${Je[We.LONETILDE]}${Je[We.XRANGEPLAINLOOSE]}$`);mt("LONECARET","(?:\\^)");mt("CARETTRIM",`(\\s*)${Je[We.LONECARET]}\\s+`,!0);iA.caretTrimReplace="$1^";mt("CARET",`^${Je[We.LONECARET]}${Je[We.XRANGEPLAIN]}$`);mt("CARETLOOSE",`^${Je[We.LONECARET]}${Je[We.XRANGEPLAINLOOSE]}$`);mt("COMPARATORLOOSE",`^${Je[We.GTLT]}\\s*(${Je[We.LOOSEPLAIN]})$|^$`);mt("COMPARATOR",`^${Je[We.GTLT]}\\s*(${Je[We.FULLPLAIN]})$|^$`);mt("COMPARATORTRIM",`(\\s*)${Je[We.GTLT]}\\s*(${Je[We.LOOSEPLAIN]}|${Je[We.XRANGEPLAIN]})`,!0);iA.comparatorTrimReplace="$1$2$3";mt("HYPHENRANGE",`^\\s*(${Je[We.XRANGEPLAIN]})\\s+-\\s+(${Je[We.XRANGEPLAIN]})\\s*$`);mt("HYPHENRANGELOOSE",`^\\s*(${Je[We.XRANGEPLAINLOOSE]})\\s+-\\s+(${Je[We.XRANGEPLAINLOOSE]})\\s*$`);mt("STAR","(<|>)?=?\\s*\\*");mt("GTE0","^\\s*>=\\s*0.0.0\\s*$");mt("GTE0PRE","^\\s*>=\\s*0.0.0-0\\s*$")});var kh=E((ttt,HU)=>{var vCe=["includePrerelease","loose","rtl"],SCe=t=>t?typeof t!="object"?{loose:!0}:vCe.filter(e=>t[e]).reduce((e,r)=>(e[r]=!0,e),{}):{};HU.exports=SCe});var zE=E((rtt,GU)=>{var jU=/^[0-9]+$/,YU=(t,e)=>{let r=jU.test(t),i=jU.test(e);return r&&i&&(t=+t,e=+e),t===e?0:r&&!i?-1:i&&!r?1:tYU(e,t);GU.exports={compareIdentifiers:YU,rcompareIdentifiers:xCe}});var bi=E((itt,qU)=>{var VE=xh(),{MAX_LENGTH:JU,MAX_SAFE_INTEGER:_E}=Sh(),{re:WU,t:zU}=Ql(),kCe=kh(),{compareIdentifiers:Ph}=zE(),_n=class{constructor(e,r){if(r=kCe(r),e instanceof _n){if(e.loose===!!r.loose&&e.includePrerelease===!!r.includePrerelease)return e;e=e.version}else if(typeof e!="string")throw new TypeError(`Invalid Version: ${e}`);if(e.length>JU)throw new TypeError(`version is longer than ${JU} characters`);VE("SemVer",e,r),this.options=r,this.loose=!!r.loose,this.includePrerelease=!!r.includePrerelease;let i=e.trim().match(r.loose?WU[zU.LOOSE]:WU[zU.FULL]);if(!i)throw new TypeError(`Invalid Version: ${e}`);if(this.raw=e,this.major=+i[1],this.minor=+i[2],this.patch=+i[3],this.major>_E||this.major<0)throw new TypeError("Invalid major version");if(this.minor>_E||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>_E||this.patch<0)throw new TypeError("Invalid patch version");i[4]?this.prerelease=i[4].split(".").map(n=>{if(/^[0-9]+$/.test(n)){let s=+n;if(s>=0&&s<_E)return s}return n}):this.prerelease=[],this.build=i[5]?i[5].split("."):[],this.format()}format(){return this.version=`${this.major}.${this.minor}.${this.patch}`,this.prerelease.length&&(this.version+=`-${this.prerelease.join(".")}`),this.version}toString(){return this.version}compare(e){if(VE("SemVer.compare",this.version,this.options,e),!(e instanceof _n)){if(typeof e=="string"&&e===this.version)return 0;e=new _n(e,this.options)}return e.version===this.version?0:this.compareMain(e)||this.comparePre(e)}compareMain(e){return e instanceof _n||(e=new _n(e,this.options)),Ph(this.major,e.major)||Ph(this.minor,e.minor)||Ph(this.patch,e.patch)}comparePre(e){if(e instanceof _n||(e=new _n(e,this.options)),this.prerelease.length&&!e.prerelease.length)return-1;if(!this.prerelease.length&&e.prerelease.length)return 1;if(!this.prerelease.length&&!e.prerelease.length)return 0;let r=0;do{let i=this.prerelease[r],n=e.prerelease[r];if(VE("prerelease compare",r,i,n),i===void 0&&n===void 0)return 0;if(n===void 0)return 1;if(i===void 0)return-1;if(i===n)continue;return Ph(i,n)}while(++r)}compareBuild(e){e instanceof _n||(e=new _n(e,this.options));let r=0;do{let i=this.build[r],n=e.build[r];if(VE("prerelease compare",r,i,n),i===void 0&&n===void 0)return 0;if(n===void 0)return 1;if(i===void 0)return-1;if(i===n)continue;return Ph(i,n)}while(++r)}inc(e,r){switch(e){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",r);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",r);break;case"prepatch":this.prerelease.length=0,this.inc("patch",r),this.inc("pre",r);break;case"prerelease":this.prerelease.length===0&&this.inc("patch",r),this.inc("pre",r);break;case"major":(this.minor!==0||this.patch!==0||this.prerelease.length===0)&&this.major++,this.minor=0,this.patch=0,this.prerelease=[];break;case"minor":(this.patch!==0||this.prerelease.length===0)&&this.minor++,this.patch=0,this.prerelease=[];break;case"patch":this.prerelease.length===0&&this.patch++,this.prerelease=[];break;case"pre":if(this.prerelease.length===0)this.prerelease=[0];else{let i=this.prerelease.length;for(;--i>=0;)typeof this.prerelease[i]=="number"&&(this.prerelease[i]++,i=-2);i===-1&&this.prerelease.push(0)}r&&(this.prerelease[0]===r?isNaN(this.prerelease[1])&&(this.prerelease=[r,0]):this.prerelease=[r,0]);break;default:throw new Error(`invalid increment argument: ${e}`)}return this.format(),this.raw=this.version,this}};qU.exports=_n});var bl=E((ntt,VU)=>{var{MAX_LENGTH:PCe}=Sh(),{re:_U,t:XU}=Ql(),ZU=bi(),DCe=kh(),RCe=(t,e)=>{if(e=DCe(e),t instanceof ZU)return t;if(typeof t!="string"||t.length>PCe||!(e.loose?_U[XU.LOOSE]:_U[XU.FULL]).test(t))return null;try{return new ZU(t,e)}catch(i){return null}};VU.exports=RCe});var e2=E((stt,$U)=>{var FCe=bl(),NCe=(t,e)=>{let r=FCe(t,e);return r?r.version:null};$U.exports=NCe});var r2=E((ott,t2)=>{var LCe=bl(),TCe=(t,e)=>{let r=LCe(t.trim().replace(/^[=v]+/,""),e);return r?r.version:null};t2.exports=TCe});var n2=E((att,i2)=>{var MCe=bi(),OCe=(t,e,r,i)=>{typeof r=="string"&&(i=r,r=void 0);try{return new MCe(t,r).inc(e,i).version}catch(n){return null}};i2.exports=OCe});var Xn=E((Att,s2)=>{var o2=bi(),KCe=(t,e,r)=>new o2(t,r).compare(new o2(e,r));s2.exports=KCe});var XE=E((ltt,a2)=>{var UCe=Xn(),HCe=(t,e,r)=>UCe(t,e,r)===0;a2.exports=HCe});var c2=E((ctt,A2)=>{var l2=bl(),GCe=XE(),jCe=(t,e)=>{if(GCe(t,e))return null;{let r=l2(t),i=l2(e),n=r.prerelease.length||i.prerelease.length,s=n?"pre":"",o=n?"prerelease":"";for(let a in r)if((a==="major"||a==="minor"||a==="patch")&&r[a]!==i[a])return s+a;return o}};A2.exports=jCe});var g2=E((utt,u2)=>{var YCe=bi(),qCe=(t,e)=>new YCe(t,e).major;u2.exports=qCe});var h2=E((gtt,f2)=>{var JCe=bi(),WCe=(t,e)=>new JCe(t,e).minor;f2.exports=WCe});var d2=E((ftt,p2)=>{var zCe=bi(),VCe=(t,e)=>new zCe(t,e).patch;p2.exports=VCe});var m2=E((htt,C2)=>{var _Ce=bl(),XCe=(t,e)=>{let r=_Ce(t,e);return r&&r.prerelease.length?r.prerelease:null};C2.exports=XCe});var I2=E((ptt,E2)=>{var ZCe=Xn(),$Ce=(t,e,r)=>ZCe(e,t,r);E2.exports=$Ce});var w2=E((dtt,y2)=>{var eme=Xn(),tme=(t,e)=>eme(t,e,!0);y2.exports=tme});var ZE=E((Ctt,B2)=>{var Q2=bi(),rme=(t,e,r)=>{let i=new Q2(t,r),n=new Q2(e,r);return i.compare(n)||i.compareBuild(n)};B2.exports=rme});var v2=E((mtt,b2)=>{var ime=ZE(),nme=(t,e)=>t.sort((r,i)=>ime(r,i,e));b2.exports=nme});var x2=E((Ett,S2)=>{var sme=ZE(),ome=(t,e)=>t.sort((r,i)=>sme(i,r,e));S2.exports=ome});var Dh=E((Itt,k2)=>{var ame=Xn(),Ame=(t,e,r)=>ame(t,e,r)>0;k2.exports=Ame});var $E=E((ytt,P2)=>{var lme=Xn(),cme=(t,e,r)=>lme(t,e,r)<0;P2.exports=cme});var wv=E((wtt,D2)=>{var ume=Xn(),gme=(t,e,r)=>ume(t,e,r)!==0;D2.exports=gme});var eI=E((Btt,R2)=>{var fme=Xn(),hme=(t,e,r)=>fme(t,e,r)>=0;R2.exports=hme});var tI=E((Qtt,F2)=>{var pme=Xn(),dme=(t,e,r)=>pme(t,e,r)<=0;F2.exports=dme});var Bv=E((btt,N2)=>{var Cme=XE(),mme=wv(),Eme=Dh(),Ime=eI(),yme=$E(),wme=tI(),Bme=(t,e,r,i)=>{switch(e){case"===":return typeof t=="object"&&(t=t.version),typeof r=="object"&&(r=r.version),t===r;case"!==":return typeof t=="object"&&(t=t.version),typeof r=="object"&&(r=r.version),t!==r;case"":case"=":case"==":return Cme(t,r,i);case"!=":return mme(t,r,i);case">":return Eme(t,r,i);case">=":return Ime(t,r,i);case"<":return yme(t,r,i);case"<=":return wme(t,r,i);default:throw new TypeError(`Invalid operator: ${e}`)}};N2.exports=Bme});var T2=E((vtt,L2)=>{var Qme=bi(),bme=bl(),{re:rI,t:iI}=Ql(),vme=(t,e)=>{if(t instanceof Qme)return t;if(typeof t=="number"&&(t=String(t)),typeof t!="string")return null;e=e||{};let r=null;if(!e.rtl)r=t.match(rI[iI.COERCE]);else{let i;for(;(i=rI[iI.COERCERTL].exec(t))&&(!r||r.index+r[0].length!==t.length);)(!r||i.index+i[0].length!==r.index+r[0].length)&&(r=i),rI[iI.COERCERTL].lastIndex=i.index+i[1].length+i[2].length;rI[iI.COERCERTL].lastIndex=-1}return r===null?null:bme(`${r[2]}.${r[3]||"0"}.${r[4]||"0"}`,e)};L2.exports=vme});var O2=E((Stt,M2)=>{"use strict";M2.exports=function(t){t.prototype[Symbol.iterator]=function*(){for(let e=this.head;e;e=e.next)yield e.value}}});var Rh=E((xtt,K2)=>{"use strict";K2.exports=Pt;Pt.Node=vl;Pt.create=Pt;function Pt(t){var e=this;if(e instanceof Pt||(e=new Pt),e.tail=null,e.head=null,e.length=0,t&&typeof t.forEach=="function")t.forEach(function(n){e.push(n)});else if(arguments.length>0)for(var r=0,i=arguments.length;r1)r=e;else if(this.head)i=this.head.next,r=this.head.value;else throw new TypeError("Reduce of empty list with no initial value");for(var n=0;i!==null;n++)r=t(r,i.value,n),i=i.next;return r};Pt.prototype.reduceReverse=function(t,e){var r,i=this.tail;if(arguments.length>1)r=e;else if(this.tail)i=this.tail.prev,r=this.tail.value;else throw new TypeError("Reduce of empty list with no initial value");for(var n=this.length-1;i!==null;n--)r=t(r,i.value,n),i=i.prev;return r};Pt.prototype.toArray=function(){for(var t=new Array(this.length),e=0,r=this.head;r!==null;e++)t[e]=r.value,r=r.next;return t};Pt.prototype.toArrayReverse=function(){for(var t=new Array(this.length),e=0,r=this.tail;r!==null;e++)t[e]=r.value,r=r.prev;return t};Pt.prototype.slice=function(t,e){e=e||this.length,e<0&&(e+=this.length),t=t||0,t<0&&(t+=this.length);var r=new Pt;if(ethis.length&&(e=this.length);for(var i=0,n=this.head;n!==null&&ithis.length&&(e=this.length);for(var i=this.length,n=this.tail;n!==null&&i>e;i--)n=n.prev;for(;n!==null&&i>t;i--,n=n.prev)r.push(n.value);return r};Pt.prototype.splice=function(t,e,...r){t>this.length&&(t=this.length-1),t<0&&(t=this.length+t);for(var i=0,n=this.head;n!==null&&i{"use strict";var Pme=Rh(),Sl=Symbol("max"),ra=Symbol("length"),uu=Symbol("lengthCalculator"),Fh=Symbol("allowStale"),xl=Symbol("maxAge"),ia=Symbol("dispose"),H2=Symbol("noDisposeOnSet"),si=Symbol("lruList"),ks=Symbol("cache"),G2=Symbol("updateAgeOnGet"),Qv=()=>1,j2=class{constructor(e){if(typeof e=="number"&&(e={max:e}),e||(e={}),e.max&&(typeof e.max!="number"||e.max<0))throw new TypeError("max must be a non-negative number");let r=this[Sl]=e.max||Infinity,i=e.length||Qv;if(this[uu]=typeof i!="function"?Qv:i,this[Fh]=e.stale||!1,e.maxAge&&typeof e.maxAge!="number")throw new TypeError("maxAge must be a number");this[xl]=e.maxAge||0,this[ia]=e.dispose,this[H2]=e.noDisposeOnSet||!1,this[G2]=e.updateAgeOnGet||!1,this.reset()}set max(e){if(typeof e!="number"||e<0)throw new TypeError("max must be a non-negative number");this[Sl]=e||Infinity,Nh(this)}get max(){return this[Sl]}set allowStale(e){this[Fh]=!!e}get allowStale(){return this[Fh]}set maxAge(e){if(typeof e!="number")throw new TypeError("maxAge must be a non-negative number");this[xl]=e,Nh(this)}get maxAge(){return this[xl]}set lengthCalculator(e){typeof e!="function"&&(e=Qv),e!==this[uu]&&(this[uu]=e,this[ra]=0,this[si].forEach(r=>{r.length=this[uu](r.value,r.key),this[ra]+=r.length})),Nh(this)}get lengthCalculator(){return this[uu]}get length(){return this[ra]}get itemCount(){return this[si].length}rforEach(e,r){r=r||this;for(let i=this[si].tail;i!==null;){let n=i.prev;q2(this,e,i,r),i=n}}forEach(e,r){r=r||this;for(let i=this[si].head;i!==null;){let n=i.next;q2(this,e,i,r),i=n}}keys(){return this[si].toArray().map(e=>e.key)}values(){return this[si].toArray().map(e=>e.value)}reset(){this[ia]&&this[si]&&this[si].length&&this[si].forEach(e=>this[ia](e.key,e.value)),this[ks]=new Map,this[si]=new Pme,this[ra]=0}dump(){return this[si].map(e=>nI(this,e)?!1:{k:e.key,v:e.value,e:e.now+(e.maxAge||0)}).toArray().filter(e=>e)}dumpLru(){return this[si]}set(e,r,i){if(i=i||this[xl],i&&typeof i!="number")throw new TypeError("maxAge must be a number");let n=i?Date.now():0,s=this[uu](r,e);if(this[ks].has(e)){if(s>this[Sl])return gu(this,this[ks].get(e)),!1;let l=this[ks].get(e).value;return this[ia]&&(this[H2]||this[ia](e,l.value)),l.now=n,l.maxAge=i,l.value=r,this[ra]+=s-l.length,l.length=s,this.get(e),Nh(this),!0}let o=new Y2(e,r,s,n,i);return o.length>this[Sl]?(this[ia]&&this[ia](e,r),!1):(this[ra]+=o.length,this[si].unshift(o),this[ks].set(e,this[si].head),Nh(this),!0)}has(e){if(!this[ks].has(e))return!1;let r=this[ks].get(e).value;return!nI(this,r)}get(e){return bv(this,e,!0)}peek(e){return bv(this,e,!1)}pop(){let e=this[si].tail;return e?(gu(this,e),e.value):null}del(e){gu(this,this[ks].get(e))}load(e){this.reset();let r=Date.now();for(let i=e.length-1;i>=0;i--){let n=e[i],s=n.e||0;if(s===0)this.set(n.k,n.v);else{let o=s-r;o>0&&this.set(n.k,n.v,o)}}}prune(){this[ks].forEach((e,r)=>bv(this,r,!1))}},bv=(t,e,r)=>{let i=t[ks].get(e);if(i){let n=i.value;if(nI(t,n)){if(gu(t,i),!t[Fh])return}else r&&(t[G2]&&(i.value.now=Date.now()),t[si].unshiftNode(i));return n.value}},nI=(t,e)=>{if(!e||!e.maxAge&&!t[xl])return!1;let r=Date.now()-e.now;return e.maxAge?r>e.maxAge:t[xl]&&r>t[xl]},Nh=t=>{if(t[ra]>t[Sl])for(let e=t[si].tail;t[ra]>t[Sl]&&e!==null;){let r=e.prev;gu(t,e),e=r}},gu=(t,e)=>{if(e){let r=e.value;t[ia]&&t[ia](r.key,r.value),t[ra]-=r.length,t[ks].delete(r.key),t[si].removeNode(e)}},Y2=class{constructor(e,r,i,n,s){this.key=e,this.value=r,this.length=i,this.now=n,this.maxAge=s||0}},q2=(t,e,r,i)=>{let n=r.value;nI(t,n)&&(gu(t,r),t[Fh]||(n=void 0)),n&&e.call(i,n.value,n.key,t)};U2.exports=j2});var Zn=E((Ptt,W2)=>{var fu=class{constructor(e,r){if(r=Dme(r),e instanceof fu)return e.loose===!!r.loose&&e.includePrerelease===!!r.includePrerelease?e:new fu(e.raw,r);if(e instanceof vv)return this.raw=e.value,this.set=[[e]],this.format(),this;if(this.options=r,this.loose=!!r.loose,this.includePrerelease=!!r.includePrerelease,this.raw=e,this.set=e.split(/\s*\|\|\s*/).map(i=>this.parseRange(i.trim())).filter(i=>i.length),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${e}`);if(this.set.length>1){let i=this.set[0];if(this.set=this.set.filter(n=>!V2(n[0])),this.set.length===0)this.set=[i];else if(this.set.length>1){for(let n of this.set)if(n.length===1&&Tme(n[0])){this.set=[n];break}}}this.format()}format(){return this.range=this.set.map(e=>e.join(" ").trim()).join("||").trim(),this.range}toString(){return this.range}parseRange(e){e=e.trim();let i=`parseRange:${Object.keys(this.options).join(",")}:${e}`,n=z2.get(i);if(n)return n;let s=this.options.loose,o=s?vi[di.HYPHENRANGELOOSE]:vi[di.HYPHENRANGE];e=e.replace(o,Kme(this.options.includePrerelease)),Rr("hyphen replace",e),e=e.replace(vi[di.COMPARATORTRIM],Fme),Rr("comparator trim",e,vi[di.COMPARATORTRIM]),e=e.replace(vi[di.TILDETRIM],Nme),e=e.replace(vi[di.CARETTRIM],Lme),e=e.split(/\s+/).join(" ");let a=s?vi[di.COMPARATORLOOSE]:vi[di.COMPARATOR],l=e.split(" ").map(f=>Mme(f,this.options)).join(" ").split(/\s+/).map(f=>Ome(f,this.options)).filter(this.options.loose?f=>!!f.match(a):()=>!0).map(f=>new vv(f,this.options)),c=l.length,u=new Map;for(let f of l){if(V2(f))return[f];u.set(f.value,f)}u.size>1&&u.has("")&&u.delete("");let g=[...u.values()];return z2.set(i,g),g}intersects(e,r){if(!(e instanceof fu))throw new TypeError("a Range is required");return this.set.some(i=>_2(i,r)&&e.set.some(n=>_2(n,r)&&i.every(s=>n.every(o=>s.intersects(o,r)))))}test(e){if(!e)return!1;if(typeof e=="string")try{e=new Rme(e,this.options)}catch(r){return!1}for(let r=0;rt.value==="<0.0.0-0",Tme=t=>t.value==="",_2=(t,e)=>{let r=!0,i=t.slice(),n=i.pop();for(;r&&i.length;)r=i.every(s=>n.intersects(s,e)),n=i.pop();return r},Mme=(t,e)=>(Rr("comp",t,e),t=jme(t,e),Rr("caret",t),t=Gme(t,e),Rr("tildes",t),t=Yme(t,e),Rr("xrange",t),t=qme(t,e),Rr("stars",t),t),Ji=t=>!t||t.toLowerCase()==="x"||t==="*",Gme=(t,e)=>t.trim().split(/\s+/).map(r=>Jme(r,e)).join(" "),Jme=(t,e)=>{let r=e.loose?vi[di.TILDELOOSE]:vi[di.TILDE];return t.replace(r,(i,n,s,o,a)=>{Rr("tilde",t,i,n,s,o,a);let l;return Ji(n)?l="":Ji(s)?l=`>=${n}.0.0 <${+n+1}.0.0-0`:Ji(o)?l=`>=${n}.${s}.0 <${n}.${+s+1}.0-0`:a?(Rr("replaceTilde pr",a),l=`>=${n}.${s}.${o}-${a} <${n}.${+s+1}.0-0`):l=`>=${n}.${s}.${o} <${n}.${+s+1}.0-0`,Rr("tilde return",l),l})},jme=(t,e)=>t.trim().split(/\s+/).map(r=>Wme(r,e)).join(" "),Wme=(t,e)=>{Rr("caret",t,e);let r=e.loose?vi[di.CARETLOOSE]:vi[di.CARET],i=e.includePrerelease?"-0":"";return t.replace(r,(n,s,o,a,l)=>{Rr("caret",t,n,s,o,a,l);let c;return Ji(s)?c="":Ji(o)?c=`>=${s}.0.0${i} <${+s+1}.0.0-0`:Ji(a)?s==="0"?c=`>=${s}.${o}.0${i} <${s}.${+o+1}.0-0`:c=`>=${s}.${o}.0${i} <${+s+1}.0.0-0`:l?(Rr("replaceCaret pr",l),s==="0"?o==="0"?c=`>=${s}.${o}.${a}-${l} <${s}.${o}.${+a+1}-0`:c=`>=${s}.${o}.${a}-${l} <${s}.${+o+1}.0-0`:c=`>=${s}.${o}.${a}-${l} <${+s+1}.0.0-0`):(Rr("no pr"),s==="0"?o==="0"?c=`>=${s}.${o}.${a}${i} <${s}.${o}.${+a+1}-0`:c=`>=${s}.${o}.${a}${i} <${s}.${+o+1}.0-0`:c=`>=${s}.${o}.${a} <${+s+1}.0.0-0`),Rr("caret return",c),c})},Yme=(t,e)=>(Rr("replaceXRanges",t,e),t.split(/\s+/).map(r=>zme(r,e)).join(" ")),zme=(t,e)=>{t=t.trim();let r=e.loose?vi[di.XRANGELOOSE]:vi[di.XRANGE];return t.replace(r,(i,n,s,o,a,l)=>{Rr("xRange",t,i,n,s,o,a,l);let c=Ji(s),u=c||Ji(o),g=u||Ji(a),f=g;return n==="="&&f&&(n=""),l=e.includePrerelease?"-0":"",c?n===">"||n==="<"?i="<0.0.0-0":i="*":n&&f?(u&&(o=0),a=0,n===">"?(n=">=",u?(s=+s+1,o=0,a=0):(o=+o+1,a=0)):n==="<="&&(n="<",u?s=+s+1:o=+o+1),n==="<"&&(l="-0"),i=`${n+s}.${o}.${a}${l}`):u?i=`>=${s}.0.0${l} <${+s+1}.0.0-0`:g&&(i=`>=${s}.${o}.0${l} <${s}.${+o+1}.0-0`),Rr("xRange return",i),i})},qme=(t,e)=>(Rr("replaceStars",t,e),t.trim().replace(vi[di.STAR],"")),Ome=(t,e)=>(Rr("replaceGTE0",t,e),t.trim().replace(vi[e.includePrerelease?di.GTE0PRE:di.GTE0],"")),Kme=t=>(e,r,i,n,s,o,a,l,c,u,g,f,h)=>(Ji(i)?r="":Ji(n)?r=`>=${i}.0.0${t?"-0":""}`:Ji(s)?r=`>=${i}.${n}.0${t?"-0":""}`:o?r=`>=${r}`:r=`>=${r}${t?"-0":""}`,Ji(c)?l="":Ji(u)?l=`<${+c+1}.0.0-0`:Ji(g)?l=`<${c}.${+u+1}.0-0`:f?l=`<=${c}.${u}.${g}-${f}`:t?l=`<${c}.${u}.${+g+1}-0`:l=`<=${l}`,`${r} ${l}`.trim()),Ume=(t,e,r)=>{for(let i=0;i0){let n=t[i].semver;if(n.major===e.major&&n.minor===e.minor&&n.patch===e.patch)return!0}return!1}return!0}});var Lh=E((Dtt,X2)=>{var Th=Symbol("SemVer ANY"),Mh=class{static get ANY(){return Th}constructor(e,r){if(r=Vme(r),e instanceof Mh){if(e.loose===!!r.loose)return e;e=e.value}xv("comparator",e,r),this.options=r,this.loose=!!r.loose,this.parse(e),this.semver===Th?this.value="":this.value=this.operator+this.semver.version,xv("comp",this)}parse(e){let r=this.options.loose?Z2[$2.COMPARATORLOOSE]:Z2[$2.COMPARATOR],i=e.match(r);if(!i)throw new TypeError(`Invalid comparator: ${e}`);this.operator=i[1]!==void 0?i[1]:"",this.operator==="="&&(this.operator=""),i[2]?this.semver=new eH(i[2],this.options.loose):this.semver=Th}toString(){return this.value}test(e){if(xv("Comparator.test",e,this.options.loose),this.semver===Th||e===Th)return!0;if(typeof e=="string")try{e=new eH(e,this.options)}catch(r){return!1}return Sv(e,this.operator,this.semver,this.options)}intersects(e,r){if(!(e instanceof Mh))throw new TypeError("a Comparator is required");if((!r||typeof r!="object")&&(r={loose:!!r,includePrerelease:!1}),this.operator==="")return this.value===""?!0:new tH(e.value,r).test(this.value);if(e.operator==="")return e.value===""?!0:new tH(this.value,r).test(e.semver);let i=(this.operator===">="||this.operator===">")&&(e.operator===">="||e.operator===">"),n=(this.operator==="<="||this.operator==="<")&&(e.operator==="<="||e.operator==="<"),s=this.semver.version===e.semver.version,o=(this.operator===">="||this.operator==="<=")&&(e.operator===">="||e.operator==="<="),a=Sv(this.semver,"<",e.semver,r)&&(this.operator===">="||this.operator===">")&&(e.operator==="<="||e.operator==="<"),l=Sv(this.semver,">",e.semver,r)&&(this.operator==="<="||this.operator==="<")&&(e.operator===">="||e.operator===">");return i||n||s&&o||a||l}};X2.exports=Mh;var Vme=kh(),{re:Z2,t:$2}=Ql(),Sv=Bv(),xv=xh(),eH=bi(),tH=Zn()});var Oh=E((Rtt,rH)=>{var _me=Zn(),Xme=(t,e,r)=>{try{e=new _me(e,r)}catch(i){return!1}return e.test(t)};rH.exports=Xme});var nH=E((Ftt,iH)=>{var Zme=Zn(),$me=(t,e)=>new Zme(t,e).set.map(r=>r.map(i=>i.value).join(" ").trim().split(" "));iH.exports=$me});var oH=E((Ntt,sH)=>{var eEe=bi(),tEe=Zn(),rEe=(t,e,r)=>{let i=null,n=null,s=null;try{s=new tEe(e,r)}catch(o){return null}return t.forEach(o=>{s.test(o)&&(!i||n.compare(o)===-1)&&(i=o,n=new eEe(i,r))}),i};sH.exports=rEe});var AH=E((Ltt,aH)=>{var iEe=bi(),nEe=Zn(),sEe=(t,e,r)=>{let i=null,n=null,s=null;try{s=new nEe(e,r)}catch(o){return null}return t.forEach(o=>{s.test(o)&&(!i||n.compare(o)===1)&&(i=o,n=new iEe(i,r))}),i};aH.exports=sEe});var uH=E((Ttt,lH)=>{var kv=bi(),oEe=Zn(),cH=Dh(),aEe=(t,e)=>{t=new oEe(t,e);let r=new kv("0.0.0");if(t.test(r)||(r=new kv("0.0.0-0"),t.test(r)))return r;r=null;for(let i=0;i{let a=new kv(o.semver.version);switch(o.operator){case">":a.prerelease.length===0?a.patch++:a.prerelease.push(0),a.raw=a.format();case"":case">=":(!s||cH(a,s))&&(s=a);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${o.operator}`)}}),s&&(!r||cH(r,s))&&(r=s)}return r&&t.test(r)?r:null};lH.exports=aEe});var fH=E((Mtt,gH)=>{var AEe=Zn(),lEe=(t,e)=>{try{return new AEe(t,e).range||"*"}catch(r){return null}};gH.exports=lEe});var sI=E((Ott,hH)=>{var cEe=bi(),pH=Lh(),{ANY:uEe}=pH,gEe=Zn(),fEe=Oh(),dH=Dh(),CH=$E(),hEe=tI(),pEe=eI(),dEe=(t,e,r,i)=>{t=new cEe(t,i),e=new gEe(e,i);let n,s,o,a,l;switch(r){case">":n=dH,s=hEe,o=CH,a=">",l=">=";break;case"<":n=CH,s=pEe,o=dH,a="<",l="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(fEe(t,e,i))return!1;for(let c=0;c{h.semver===uEe&&(h=new pH(">=0.0.0")),g=g||h,f=f||h,n(h.semver,g.semver,i)?g=h:o(h.semver,f.semver,i)&&(f=h)}),g.operator===a||g.operator===l||(!f.operator||f.operator===a)&&s(t,f.semver))return!1;if(f.operator===l&&o(t,f.semver))return!1}return!0};hH.exports=dEe});var EH=E((Ktt,mH)=>{var CEe=sI(),mEe=(t,e,r)=>CEe(t,e,">",r);mH.exports=mEe});var yH=E((Utt,IH)=>{var EEe=sI(),IEe=(t,e,r)=>EEe(t,e,"<",r);IH.exports=IEe});var QH=E((Htt,wH)=>{var BH=Zn(),yEe=(t,e,r)=>(t=new BH(t,r),e=new BH(e,r),t.intersects(e));wH.exports=yEe});var vH=E((Gtt,bH)=>{var wEe=Oh(),BEe=Xn();bH.exports=(t,e,r)=>{let i=[],n=null,s=null,o=t.sort((u,g)=>BEe(u,g,r));for(let u of o)wEe(u,e,r)?(s=u,n||(n=u)):(s&&i.push([n,s]),s=null,n=null);n&&i.push([n,null]);let a=[];for(let[u,g]of i)u===g?a.push(u):!g&&u===o[0]?a.push("*"):g?u===o[0]?a.push(`<=${g}`):a.push(`${u} - ${g}`):a.push(`>=${u}`);let l=a.join(" || "),c=typeof e.raw=="string"?e.raw:String(e);return l.length{var xH=Zn(),oI=Lh(),{ANY:Pv}=oI,Kh=Oh(),Dv=Xn(),bEe=(t,e,r={})=>{if(t===e)return!0;t=new xH(t,r),e=new xH(e,r);let i=!1;e:for(let n of t.set){for(let s of e.set){let o=QEe(n,s,r);if(i=i||o!==null,o)continue e}if(i)return!1}return!0},QEe=(t,e,r)=>{if(t===e)return!0;if(t.length===1&&t[0].semver===Pv){if(e.length===1&&e[0].semver===Pv)return!0;r.includePrerelease?t=[new oI(">=0.0.0-0")]:t=[new oI(">=0.0.0")]}if(e.length===1&&e[0].semver===Pv){if(r.includePrerelease)return!0;e=[new oI(">=0.0.0")]}let i=new Set,n,s;for(let h of t)h.operator===">"||h.operator===">="?n=kH(n,h,r):h.operator==="<"||h.operator==="<="?s=PH(s,h,r):i.add(h.semver);if(i.size>1)return null;let o;if(n&&s){if(o=Dv(n.semver,s.semver,r),o>0)return null;if(o===0&&(n.operator!==">="||s.operator!=="<="))return null}for(let h of i){if(n&&!Kh(h,String(n),r)||s&&!Kh(h,String(s),r))return null;for(let p of e)if(!Kh(h,String(p),r))return!1;return!0}let a,l,c,u,g=s&&!r.includePrerelease&&s.semver.prerelease.length?s.semver:!1,f=n&&!r.includePrerelease&&n.semver.prerelease.length?n.semver:!1;g&&g.prerelease.length===1&&s.operator==="<"&&g.prerelease[0]===0&&(g=!1);for(let h of e){if(u=u||h.operator===">"||h.operator===">=",c=c||h.operator==="<"||h.operator==="<=",n){if(f&&h.semver.prerelease&&h.semver.prerelease.length&&h.semver.major===f.major&&h.semver.minor===f.minor&&h.semver.patch===f.patch&&(f=!1),h.operator===">"||h.operator===">="){if(a=kH(n,h,r),a===h&&a!==n)return!1}else if(n.operator===">="&&!Kh(n.semver,String(h),r))return!1}if(s){if(g&&h.semver.prerelease&&h.semver.prerelease.length&&h.semver.major===g.major&&h.semver.minor===g.minor&&h.semver.patch===g.patch&&(g=!1),h.operator==="<"||h.operator==="<="){if(l=PH(s,h,r),l===h&&l!==s)return!1}else if(s.operator==="<="&&!Kh(s.semver,String(h),r))return!1}if(!h.operator&&(s||n)&&o!==0)return!1}return!(n&&c&&!s&&o!==0||s&&u&&!n&&o!==0||f||g)},kH=(t,e,r)=>{if(!t)return e;let i=Dv(t.semver,e.semver,r);return i>0?t:i<0||e.operator===">"&&t.operator===">="?e:t},PH=(t,e,r)=>{if(!t)return e;let i=Dv(t.semver,e.semver,r);return i<0?t:i>0||e.operator==="<"&&t.operator==="<="?e:t};SH.exports=bEe});var Or=E((Ytt,RH)=>{var Rv=Ql();RH.exports={re:Rv.re,src:Rv.src,tokens:Rv.t,SEMVER_SPEC_VERSION:Sh().SEMVER_SPEC_VERSION,SemVer:bi(),compareIdentifiers:zE().compareIdentifiers,rcompareIdentifiers:zE().rcompareIdentifiers,parse:bl(),valid:e2(),clean:r2(),inc:n2(),diff:c2(),major:g2(),minor:h2(),patch:d2(),prerelease:m2(),compare:Xn(),rcompare:I2(),compareLoose:w2(),compareBuild:ZE(),sort:v2(),rsort:x2(),gt:Dh(),lt:$E(),eq:XE(),neq:wv(),gte:eI(),lte:tI(),cmp:Bv(),coerce:T2(),Comparator:Lh(),Range:Zn(),satisfies:Oh(),toComparators:nH(),maxSatisfying:oH(),minSatisfying:AH(),minVersion:uH(),validRange:fH(),outside:sI(),gtr:EH(),ltr:yH(),intersects:QH(),simplifyRange:vH(),subset:DH()}});var Uv=E(AI=>{"use strict";Object.defineProperty(AI,"__esModule",{value:!0});AI.VERSION=void 0;AI.VERSION="9.1.0"});var Dt=E((exports,module)=>{"use strict";var __spreadArray=exports&&exports.__spreadArray||function(t,e,r){if(r||arguments.length===2)for(var i=0,n=e.length,s;i{(function(t,e){typeof define=="function"&&define.amd?define([],e):typeof lI=="object"&&lI.exports?lI.exports=e():t.regexpToAst=e()})(typeof self!="undefined"?self:YH,function(){function t(){}t.prototype.saveState=function(){return{idx:this.idx,input:this.input,groupIdx:this.groupIdx}},t.prototype.restoreState=function(p){this.idx=p.idx,this.input=p.input,this.groupIdx=p.groupIdx},t.prototype.pattern=function(p){this.idx=0,this.input=p,this.groupIdx=0,this.consumeChar("/");var d=this.disjunction();this.consumeChar("/");for(var m={type:"Flags",loc:{begin:this.idx,end:p.length},global:!1,ignoreCase:!1,multiLine:!1,unicode:!1,sticky:!1};this.isRegExpFlag();)switch(this.popChar()){case"g":o(m,"global");break;case"i":o(m,"ignoreCase");break;case"m":o(m,"multiLine");break;case"u":o(m,"unicode");break;case"y":o(m,"sticky");break}if(this.idx!==this.input.length)throw Error("Redundant input: "+this.input.substring(this.idx));return{type:"Pattern",flags:m,value:d,loc:this.loc(0)}},t.prototype.disjunction=function(){var p=[],d=this.idx;for(p.push(this.alternative());this.peekChar()==="|";)this.consumeChar("|"),p.push(this.alternative());return{type:"Disjunction",value:p,loc:this.loc(d)}},t.prototype.alternative=function(){for(var p=[],d=this.idx;this.isTerm();)p.push(this.term());return{type:"Alternative",value:p,loc:this.loc(d)}},t.prototype.term=function(){return this.isAssertion()?this.assertion():this.atom()},t.prototype.assertion=function(){var p=this.idx;switch(this.popChar()){case"^":return{type:"StartAnchor",loc:this.loc(p)};case"$":return{type:"EndAnchor",loc:this.loc(p)};case"\\":switch(this.popChar()){case"b":return{type:"WordBoundary",loc:this.loc(p)};case"B":return{type:"NonWordBoundary",loc:this.loc(p)}}throw Error("Invalid Assertion Escape");case"(":this.consumeChar("?");var d;switch(this.popChar()){case"=":d="Lookahead";break;case"!":d="NegativeLookahead";break}a(d);var m=this.disjunction();return this.consumeChar(")"),{type:d,value:m,loc:this.loc(p)}}l()},t.prototype.quantifier=function(p){var d,m=this.idx;switch(this.popChar()){case"*":d={atLeast:0,atMost:Infinity};break;case"+":d={atLeast:1,atMost:Infinity};break;case"?":d={atLeast:0,atMost:1};break;case"{":var I=this.integerIncludingZero();switch(this.popChar()){case"}":d={atLeast:I,atMost:I};break;case",":var B;this.isDigit()?(B=this.integerIncludingZero(),d={atLeast:I,atMost:B}):d={atLeast:I,atMost:Infinity},this.consumeChar("}");break}if(p===!0&&d===void 0)return;a(d);break}if(!(p===!0&&d===void 0))return a(d),this.peekChar(0)==="?"?(this.consumeChar("?"),d.greedy=!1):d.greedy=!0,d.type="Quantifier",d.loc=this.loc(m),d},t.prototype.atom=function(){var p,d=this.idx;switch(this.peekChar()){case".":p=this.dotAll();break;case"\\":p=this.atomEscape();break;case"[":p=this.characterClass();break;case"(":p=this.group();break}return p===void 0&&this.isPatternCharacter()&&(p=this.patternCharacter()),a(p),p.loc=this.loc(d),this.isQuantifier()&&(p.quantifier=this.quantifier()),p},t.prototype.dotAll=function(){return this.consumeChar("."),{type:"Set",complement:!0,value:[n(` -`),n("\r"),n("\u2028"),n("\u2029")]}},t.prototype.atomEscape=function(){switch(this.consumeChar("\\"),this.peekChar()){case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":return this.decimalEscapeAtom();case"d":case"D":case"s":case"S":case"w":case"W":return this.characterClassEscape();case"f":case"n":case"r":case"t":case"v":return this.controlEscapeAtom();case"c":return this.controlLetterEscapeAtom();case"0":return this.nulCharacterAtom();case"x":return this.hexEscapeSequenceAtom();case"u":return this.regExpUnicodeEscapeSequenceAtom();default:return this.identityEscapeAtom()}},t.prototype.decimalEscapeAtom=function(){var p=this.positiveInteger();return{type:"GroupBackReference",value:p}},t.prototype.characterClassEscape=function(){var p,d=!1;switch(this.popChar()){case"d":p=u;break;case"D":p=u,d=!0;break;case"s":p=f;break;case"S":p=f,d=!0;break;case"w":p=g;break;case"W":p=g,d=!0;break}return a(p),{type:"Set",value:p,complement:d}},t.prototype.controlEscapeAtom=function(){var p;switch(this.popChar()){case"f":p=n("\f");break;case"n":p=n(` -`);break;case"r":p=n("\r");break;case"t":p=n(" ");break;case"v":p=n("\v");break}return a(p),{type:"Character",value:p}},t.prototype.controlLetterEscapeAtom=function(){this.consumeChar("c");var p=this.popChar();if(/[a-zA-Z]/.test(p)===!1)throw Error("Invalid ");var d=p.toUpperCase().charCodeAt(0)-64;return{type:"Character",value:d}},t.prototype.nulCharacterAtom=function(){return this.consumeChar("0"),{type:"Character",value:n("\0")}},t.prototype.hexEscapeSequenceAtom=function(){return this.consumeChar("x"),this.parseHexDigits(2)},t.prototype.regExpUnicodeEscapeSequenceAtom=function(){return this.consumeChar("u"),this.parseHexDigits(4)},t.prototype.identityEscapeAtom=function(){var p=this.popChar();return{type:"Character",value:n(p)}},t.prototype.classPatternCharacterAtom=function(){switch(this.peekChar()){case` -`:case"\r":case"\u2028":case"\u2029":case"\\":case"]":throw Error("TBD");default:var p=this.popChar();return{type:"Character",value:n(p)}}},t.prototype.characterClass=function(){var p=[],d=!1;for(this.consumeChar("["),this.peekChar(0)==="^"&&(this.consumeChar("^"),d=!0);this.isClassAtom();){var m=this.classAtom(),I=m.type==="Character";if(I&&this.isRangeDash()){this.consumeChar("-");var B=this.classAtom(),b=B.type==="Character";if(b){if(B.value=this.input.length)throw Error("Unexpected end of input");this.idx++},t.prototype.loc=function(p){return{begin:p,end:this.idx}};var e=/[0-9a-fA-F]/,r=/[0-9]/,i=/[1-9]/;function n(p){return p.charCodeAt(0)}function s(p,d){p.length!==void 0?p.forEach(function(m){d.push(m)}):d.push(p)}function o(p,d){if(p[d]===!0)throw"duplicate flag "+d;p[d]=!0}function a(p){if(p===void 0)throw Error("Internal Error - Should never get here!")}function l(){throw Error("Internal Error - Should never get here!")}var c,u=[];for(c=n("0");c<=n("9");c++)u.push(c);var g=[n("_")].concat(u);for(c=n("a");c<=n("z");c++)g.push(c);for(c=n("A");c<=n("Z");c++)g.push(c);var f=[n(" "),n("\f"),n(` -`),n("\r"),n(" "),n("\v"),n(" "),n("\xA0"),n("\u1680"),n("\u2000"),n("\u2001"),n("\u2002"),n("\u2003"),n("\u2004"),n("\u2005"),n("\u2006"),n("\u2007"),n("\u2008"),n("\u2009"),n("\u200A"),n("\u2028"),n("\u2029"),n("\u202F"),n("\u205F"),n("\u3000"),n("\uFEFF")];function h(){}return h.prototype.visitChildren=function(p){for(var d in p){var m=p[d];p.hasOwnProperty(d)&&(m.type!==void 0?this.visit(m):Array.isArray(m)&&m.forEach(function(I){this.visit(I)},this))}},h.prototype.visit=function(p){switch(p.type){case"Pattern":this.visitPattern(p);break;case"Flags":this.visitFlags(p);break;case"Disjunction":this.visitDisjunction(p);break;case"Alternative":this.visitAlternative(p);break;case"StartAnchor":this.visitStartAnchor(p);break;case"EndAnchor":this.visitEndAnchor(p);break;case"WordBoundary":this.visitWordBoundary(p);break;case"NonWordBoundary":this.visitNonWordBoundary(p);break;case"Lookahead":this.visitLookahead(p);break;case"NegativeLookahead":this.visitNegativeLookahead(p);break;case"Character":this.visitCharacter(p);break;case"Set":this.visitSet(p);break;case"Group":this.visitGroup(p);break;case"GroupBackReference":this.visitGroupBackReference(p);break;case"Quantifier":this.visitQuantifier(p);break}this.visitChildren(p)},h.prototype.visitPattern=function(p){},h.prototype.visitFlags=function(p){},h.prototype.visitDisjunction=function(p){},h.prototype.visitAlternative=function(p){},h.prototype.visitStartAnchor=function(p){},h.prototype.visitEndAnchor=function(p){},h.prototype.visitWordBoundary=function(p){},h.prototype.visitNonWordBoundary=function(p){},h.prototype.visitLookahead=function(p){},h.prototype.visitNegativeLookahead=function(p){},h.prototype.visitCharacter=function(p){},h.prototype.visitSet=function(p){},h.prototype.visitGroup=function(p){},h.prototype.visitGroupBackReference=function(p){},h.prototype.visitQuantifier=function(p){},{RegExpParser:t,BaseRegExpVisitor:h,VERSION:"0.5.0"}})});var gI=E(Eu=>{"use strict";Object.defineProperty(Eu,"__esModule",{value:!0});Eu.clearRegExpParserCache=Eu.getRegExpAst=void 0;var FEe=cI(),uI={},NEe=new FEe.RegExpParser;function LEe(t){var e=t.toString();if(uI.hasOwnProperty(e))return uI[e];var r=NEe.pattern(e);return uI[e]=r,r}Eu.getRegExpAst=LEe;function TEe(){uI={}}Eu.clearRegExpParserCache=TEe});var VH=E(fn=>{"use strict";var MEe=fn&&fn.__extends||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();Object.defineProperty(fn,"__esModule",{value:!0});fn.canMatchCharCode=fn.firstCharOptimizedIndices=fn.getOptimizedStartCodesIndices=fn.failedOptimizationPrefixMsg=void 0;var qH=cI(),$n=Dt(),JH=gI(),sa=Hv(),WH="Complement Sets are not supported for first char optimization";fn.failedOptimizationPrefixMsg=`Unable to use "first char" lexer optimizations: -`;function OEe(t,e){e===void 0&&(e=!1);try{var r=(0,JH.getRegExpAst)(t),i=fI(r.value,{},r.flags.ignoreCase);return i}catch(s){if(s.message===WH)e&&(0,$n.PRINT_WARNING)(""+fn.failedOptimizationPrefixMsg+(" Unable to optimize: < "+t.toString()+` > -`)+` Complement Sets cannot be automatically optimized. - This will disable the lexer's first char optimizations. - See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#COMPLEMENT for details.`);else{var n="";e&&(n=` - This will disable the lexer's first char optimizations. - See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#REGEXP_PARSING for details.`),(0,$n.PRINT_ERROR)(fn.failedOptimizationPrefixMsg+` -`+(" Failed parsing: < "+t.toString()+` > -`)+(" Using the regexp-to-ast library version: "+qH.VERSION+` -`)+" Please open an issue at: https://github.com/bd82/regexp-to-ast/issues"+n)}}return[]}fn.getOptimizedStartCodesIndices=OEe;function fI(t,e,r){switch(t.type){case"Disjunction":for(var i=0;i=sa.minOptimizationVal)for(var f=u.from>=sa.minOptimizationVal?u.from:sa.minOptimizationVal,h=u.to,p=(0,sa.charCodeToOptimizedIndex)(f),d=(0,sa.charCodeToOptimizedIndex)(h),m=p;m<=d;m++)e[m]=m}}});break;case"Group":fI(o.value,e,r);break;default:throw Error("Non Exhaustive Match")}var a=o.quantifier!==void 0&&o.quantifier.atLeast===0;if(o.type==="Group"&&Gv(o)===!1||o.type!=="Group"&&a===!1)break}break;default:throw Error("non exhaustive match!")}return(0,$n.values)(e)}fn.firstCharOptimizedIndices=fI;function hI(t,e,r){var i=(0,sa.charCodeToOptimizedIndex)(t);e[i]=i,r===!0&&KEe(t,e)}function KEe(t,e){var r=String.fromCharCode(t),i=r.toUpperCase();if(i!==r){var n=(0,sa.charCodeToOptimizedIndex)(i.charCodeAt(0));e[n]=n}else{var s=r.toLowerCase();if(s!==r){var n=(0,sa.charCodeToOptimizedIndex)(s.charCodeAt(0));e[n]=n}}}function zH(t,e){return(0,$n.find)(t.value,function(r){if(typeof r=="number")return(0,$n.contains)(e,r);var i=r;return(0,$n.find)(e,function(n){return i.from<=n&&n<=i.to})!==void 0})}function Gv(t){return t.quantifier&&t.quantifier.atLeast===0?!0:t.value?(0,$n.isArray)(t.value)?(0,$n.every)(t.value,Gv):Gv(t.value):!1}var UEe=function(t){MEe(e,t);function e(r){var i=t.call(this)||this;return i.targetCharCodes=r,i.found=!1,i}return e.prototype.visitChildren=function(r){if(this.found!==!0){switch(r.type){case"Lookahead":this.visitLookahead(r);return;case"NegativeLookahead":this.visitNegativeLookahead(r);return}t.prototype.visitChildren.call(this,r)}},e.prototype.visitCharacter=function(r){(0,$n.contains)(this.targetCharCodes,r.value)&&(this.found=!0)},e.prototype.visitSet=function(r){r.complement?zH(r,this.targetCharCodes)===void 0&&(this.found=!0):zH(r,this.targetCharCodes)!==void 0&&(this.found=!0)},e}(qH.BaseRegExpVisitor);function HEe(t,e){if(e instanceof RegExp){var r=(0,JH.getRegExpAst)(e),i=new UEe(t);return i.visit(r),i.found}else return(0,$n.find)(e,function(n){return(0,$n.contains)(t,n.charCodeAt(0))})!==void 0}fn.canMatchCharCode=HEe});var Hv=E(je=>{"use strict";var _H=je&&je.__extends||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();Object.defineProperty(je,"__esModule",{value:!0});je.charCodeToOptimizedIndex=je.minOptimizationVal=je.buildLineBreakIssueMessage=je.LineTerminatorOptimizedTester=je.isShortPattern=je.isCustomPattern=je.cloneEmptyGroups=je.performWarningRuntimeChecks=je.performRuntimeChecks=je.addStickyFlag=je.addStartOfInput=je.findUnreachablePatterns=je.findModesThatDoNotExist=je.findInvalidGroupType=je.findDuplicatePatterns=je.findUnsupportedFlags=je.findStartOfInputAnchor=je.findEmptyMatchRegExps=je.findEndOfInputAnchor=je.findInvalidPatterns=je.findMissingPatterns=je.validatePatterns=je.analyzeTokenTypes=je.enableSticky=je.disableSticky=je.SUPPORT_STICKY=je.MODES=je.DEFAULT_MODE=void 0;var XH=cI(),zt=Gh(),Ie=Dt(),Iu=VH(),ZH=gI(),ao="PATTERN";je.DEFAULT_MODE="defaultMode";je.MODES="modes";je.SUPPORT_STICKY=typeof new RegExp("(?:)").sticky=="boolean";function GEe(){je.SUPPORT_STICKY=!1}je.disableSticky=GEe;function jEe(){je.SUPPORT_STICKY=!0}je.enableSticky=jEe;function qEe(t,e){e=(0,Ie.defaults)(e,{useSticky:je.SUPPORT_STICKY,debug:!1,safeMode:!1,positionTracking:"full",lineTerminatorCharacters:["\r",` -`],tracer:function(B,b){return b()}});var r=e.tracer;r("initCharCodeToOptimizedIndexMap",function(){YEe()});var i;r("Reject Lexer.NA",function(){i=(0,Ie.reject)(t,function(B){return B[ao]===zt.Lexer.NA})});var n=!1,s;r("Transform Patterns",function(){n=!1,s=(0,Ie.map)(i,function(B){var b=B[ao];if((0,Ie.isRegExp)(b)){var R=b.source;return R.length===1&&R!=="^"&&R!=="$"&&R!=="."&&!b.ignoreCase?R:R.length===2&&R[0]==="\\"&&!(0,Ie.contains)(["d","D","s","S","t","r","n","t","0","c","b","B","f","v","w","W"],R[1])?R[1]:e.useSticky?Yv(b):jv(b)}else{if((0,Ie.isFunction)(b))return n=!0,{exec:b};if((0,Ie.has)(b,"exec"))return n=!0,b;if(typeof b=="string"){if(b.length===1)return b;var H=b.replace(/[\\^$.*+?()[\]{}|]/g,"\\$&"),L=new RegExp(H);return e.useSticky?Yv(L):jv(L)}else throw Error("non exhaustive match")}})});var o,a,l,c,u;r("misc mapping",function(){o=(0,Ie.map)(i,function(B){return B.tokenTypeIdx}),a=(0,Ie.map)(i,function(B){var b=B.GROUP;if(b!==zt.Lexer.SKIPPED){if((0,Ie.isString)(b))return b;if((0,Ie.isUndefined)(b))return!1;throw Error("non exhaustive match")}}),l=(0,Ie.map)(i,function(B){var b=B.LONGER_ALT;if(b){var R=(0,Ie.isArray)(b)?(0,Ie.map)(b,function(H){return(0,Ie.indexOf)(i,H)}):[(0,Ie.indexOf)(i,b)];return R}}),c=(0,Ie.map)(i,function(B){return B.PUSH_MODE}),u=(0,Ie.map)(i,function(B){return(0,Ie.has)(B,"POP_MODE")})});var g;r("Line Terminator Handling",function(){var B=tG(e.lineTerminatorCharacters);g=(0,Ie.map)(i,function(b){return!1}),e.positionTracking!=="onlyOffset"&&(g=(0,Ie.map)(i,function(b){if((0,Ie.has)(b,"LINE_BREAKS"))return b.LINE_BREAKS;if(eG(b,B)===!1)return(0,Iu.canMatchCharCode)(B,b.PATTERN)}))});var f,h,p,d;r("Misc Mapping #2",function(){f=(0,Ie.map)(i,qv),h=(0,Ie.map)(s,$H),p=(0,Ie.reduce)(i,function(B,b){var R=b.GROUP;return(0,Ie.isString)(R)&&R!==zt.Lexer.SKIPPED&&(B[R]=[]),B},{}),d=(0,Ie.map)(s,function(B,b){return{pattern:s[b],longerAlt:l[b],canLineTerminator:g[b],isCustom:f[b],short:h[b],group:a[b],push:c[b],pop:u[b],tokenTypeIdx:o[b],tokenType:i[b]}})});var m=!0,I=[];return e.safeMode||r("First Char Optimization",function(){I=(0,Ie.reduce)(i,function(B,b,R){if(typeof b.PATTERN=="string"){var H=b.PATTERN.charCodeAt(0),L=Wv(H);Jv(B,L,d[R])}else if((0,Ie.isArray)(b.START_CHARS_HINT)){var K;(0,Ie.forEach)(b.START_CHARS_HINT,function(ne){var q=typeof ne=="string"?ne.charCodeAt(0):ne,A=Wv(q);K!==A&&(K=A,Jv(B,A,d[R]))})}else if((0,Ie.isRegExp)(b.PATTERN))if(b.PATTERN.unicode)m=!1,e.ensureOptimizations&&(0,Ie.PRINT_ERROR)(""+Iu.failedOptimizationPrefixMsg+(" Unable to analyze < "+b.PATTERN.toString()+` > pattern. -`)+` The regexp unicode flag is not currently supported by the regexp-to-ast library. - This will disable the lexer's first char optimizations. - For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNICODE_OPTIMIZE`);else{var J=(0,Iu.getOptimizedStartCodesIndices)(b.PATTERN,e.ensureOptimizations);(0,Ie.isEmpty)(J)&&(m=!1),(0,Ie.forEach)(J,function(ne){Jv(B,ne,d[R])})}else e.ensureOptimizations&&(0,Ie.PRINT_ERROR)(""+Iu.failedOptimizationPrefixMsg+(" TokenType: <"+b.name+`> is using a custom token pattern without providing parameter. -`)+` This will disable the lexer's first char optimizations. - For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_OPTIMIZE`),m=!1;return B},[])}),r("ArrayPacking",function(){I=(0,Ie.packArray)(I)}),{emptyGroups:p,patternIdxToConfig:d,charCodeToPatternIdxToConfig:I,hasCustom:n,canBeOptimized:m}}je.analyzeTokenTypes=qEe;function WEe(t,e){var r=[],i=rG(t);r=r.concat(i.errors);var n=iG(i.valid),s=n.valid;return r=r.concat(n.errors),r=r.concat(JEe(s)),r=r.concat(nG(s)),r=r.concat(sG(s,e)),r=r.concat(oG(s)),r}je.validatePatterns=WEe;function JEe(t){var e=[],r=(0,Ie.filter)(t,function(i){return(0,Ie.isRegExp)(i[ao])});return e=e.concat(aG(r)),e=e.concat(lG(r)),e=e.concat(cG(r)),e=e.concat(uG(r)),e=e.concat(AG(r)),e}function rG(t){var e=(0,Ie.filter)(t,function(n){return!(0,Ie.has)(n,ao)}),r=(0,Ie.map)(e,function(n){return{message:"Token Type: ->"+n.name+"<- missing static 'PATTERN' property",type:zt.LexerDefinitionErrorType.MISSING_PATTERN,tokenTypes:[n]}}),i=(0,Ie.difference)(t,e);return{errors:r,valid:i}}je.findMissingPatterns=rG;function iG(t){var e=(0,Ie.filter)(t,function(n){var s=n[ao];return!(0,Ie.isRegExp)(s)&&!(0,Ie.isFunction)(s)&&!(0,Ie.has)(s,"exec")&&!(0,Ie.isString)(s)}),r=(0,Ie.map)(e,function(n){return{message:"Token Type: ->"+n.name+"<- static 'PATTERN' can only be a RegExp, a Function matching the {CustomPatternMatcherFunc} type or an Object matching the {ICustomPattern} interface.",type:zt.LexerDefinitionErrorType.INVALID_PATTERN,tokenTypes:[n]}}),i=(0,Ie.difference)(t,e);return{errors:r,valid:i}}je.findInvalidPatterns=iG;var zEe=/[^\\][\$]/;function aG(t){var e=function(n){_H(s,n);function s(){var o=n!==null&&n.apply(this,arguments)||this;return o.found=!1,o}return s.prototype.visitEndAnchor=function(o){this.found=!0},s}(XH.BaseRegExpVisitor),r=(0,Ie.filter)(t,function(n){var s=n[ao];try{var o=(0,ZH.getRegExpAst)(s),a=new e;return a.visit(o),a.found}catch(l){return zEe.test(s.source)}}),i=(0,Ie.map)(r,function(n){return{message:`Unexpected RegExp Anchor Error: - Token Type: ->`+n.name+`<- static 'PATTERN' cannot contain end of input anchor '$' - See chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS for details.`,type:zt.LexerDefinitionErrorType.EOI_ANCHOR_FOUND,tokenTypes:[n]}});return i}je.findEndOfInputAnchor=aG;function AG(t){var e=(0,Ie.filter)(t,function(i){var n=i[ao];return n.test("")}),r=(0,Ie.map)(e,function(i){return{message:"Token Type: ->"+i.name+"<- static 'PATTERN' must not match an empty string",type:zt.LexerDefinitionErrorType.EMPTY_MATCH_PATTERN,tokenTypes:[i]}});return r}je.findEmptyMatchRegExps=AG;var VEe=/[^\\[][\^]|^\^/;function lG(t){var e=function(n){_H(s,n);function s(){var o=n!==null&&n.apply(this,arguments)||this;return o.found=!1,o}return s.prototype.visitStartAnchor=function(o){this.found=!0},s}(XH.BaseRegExpVisitor),r=(0,Ie.filter)(t,function(n){var s=n[ao];try{var o=(0,ZH.getRegExpAst)(s),a=new e;return a.visit(o),a.found}catch(l){return VEe.test(s.source)}}),i=(0,Ie.map)(r,function(n){return{message:`Unexpected RegExp Anchor Error: - Token Type: ->`+n.name+`<- static 'PATTERN' cannot contain start of input anchor '^' - See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS for details.`,type:zt.LexerDefinitionErrorType.SOI_ANCHOR_FOUND,tokenTypes:[n]}});return i}je.findStartOfInputAnchor=lG;function cG(t){var e=(0,Ie.filter)(t,function(i){var n=i[ao];return n instanceof RegExp&&(n.multiline||n.global)}),r=(0,Ie.map)(e,function(i){return{message:"Token Type: ->"+i.name+"<- static 'PATTERN' may NOT contain global('g') or multiline('m')",type:zt.LexerDefinitionErrorType.UNSUPPORTED_FLAGS_FOUND,tokenTypes:[i]}});return r}je.findUnsupportedFlags=cG;function uG(t){var e=[],r=(0,Ie.map)(t,function(s){return(0,Ie.reduce)(t,function(o,a){return s.PATTERN.source===a.PATTERN.source&&!(0,Ie.contains)(e,a)&&a.PATTERN!==zt.Lexer.NA&&(e.push(a),o.push(a)),o},[])});r=(0,Ie.compact)(r);var i=(0,Ie.filter)(r,function(s){return s.length>1}),n=(0,Ie.map)(i,function(s){var o=(0,Ie.map)(s,function(l){return l.name}),a=(0,Ie.first)(s).PATTERN;return{message:"The same RegExp pattern ->"+a+"<-"+("has been used in all of the following Token Types: "+o.join(", ")+" <-"),type:zt.LexerDefinitionErrorType.DUPLICATE_PATTERNS_FOUND,tokenTypes:s}});return n}je.findDuplicatePatterns=uG;function nG(t){var e=(0,Ie.filter)(t,function(i){if(!(0,Ie.has)(i,"GROUP"))return!1;var n=i.GROUP;return n!==zt.Lexer.SKIPPED&&n!==zt.Lexer.NA&&!(0,Ie.isString)(n)}),r=(0,Ie.map)(e,function(i){return{message:"Token Type: ->"+i.name+"<- static 'GROUP' can only be Lexer.SKIPPED/Lexer.NA/A String",type:zt.LexerDefinitionErrorType.INVALID_GROUP_TYPE_FOUND,tokenTypes:[i]}});return r}je.findInvalidGroupType=nG;function sG(t,e){var r=(0,Ie.filter)(t,function(n){return n.PUSH_MODE!==void 0&&!(0,Ie.contains)(e,n.PUSH_MODE)}),i=(0,Ie.map)(r,function(n){var s="Token Type: ->"+n.name+"<- static 'PUSH_MODE' value cannot refer to a Lexer Mode ->"+n.PUSH_MODE+"<-which does not exist";return{message:s,type:zt.LexerDefinitionErrorType.PUSH_MODE_DOES_NOT_EXIST,tokenTypes:[n]}});return i}je.findModesThatDoNotExist=sG;function oG(t){var e=[],r=(0,Ie.reduce)(t,function(i,n,s){var o=n.PATTERN;return o===zt.Lexer.NA||((0,Ie.isString)(o)?i.push({str:o,idx:s,tokenType:n}):(0,Ie.isRegExp)(o)&&XEe(o)&&i.push({str:o.source,idx:s,tokenType:n})),i},[]);return(0,Ie.forEach)(t,function(i,n){(0,Ie.forEach)(r,function(s){var o=s.str,a=s.idx,l=s.tokenType;if(n"+i.name+"<-")+`in the lexer's definition. -See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNREACHABLE`;e.push({message:c,type:zt.LexerDefinitionErrorType.UNREACHABLE_PATTERN,tokenTypes:[i,l]})}})}),e}je.findUnreachablePatterns=oG;function _Ee(t,e){if((0,Ie.isRegExp)(e)){var r=e.exec(t);return r!==null&&r.index===0}else{if((0,Ie.isFunction)(e))return e(t,0,[],{});if((0,Ie.has)(e,"exec"))return e.exec(t,0,[],{});if(typeof e=="string")return e===t;throw Error("non exhaustive match")}}function XEe(t){var e=[".","\\","[","]","|","^","$","(",")","?","*","+","{"];return(0,Ie.find)(e,function(r){return t.source.indexOf(r)!==-1})===void 0}function jv(t){var e=t.ignoreCase?"i":"";return new RegExp("^(?:"+t.source+")",e)}je.addStartOfInput=jv;function Yv(t){var e=t.ignoreCase?"iy":"y";return new RegExp(""+t.source,e)}je.addStickyFlag=Yv;function ZEe(t,e,r){var i=[];return(0,Ie.has)(t,je.DEFAULT_MODE)||i.push({message:"A MultiMode Lexer cannot be initialized without a <"+je.DEFAULT_MODE+`> property in its definition -`,type:zt.LexerDefinitionErrorType.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE}),(0,Ie.has)(t,je.MODES)||i.push({message:"A MultiMode Lexer cannot be initialized without a <"+je.MODES+`> property in its definition -`,type:zt.LexerDefinitionErrorType.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY}),(0,Ie.has)(t,je.MODES)&&(0,Ie.has)(t,je.DEFAULT_MODE)&&!(0,Ie.has)(t.modes,t.defaultMode)&&i.push({message:"A MultiMode Lexer cannot be initialized with a "+je.DEFAULT_MODE+": <"+t.defaultMode+`>which does not exist -`,type:zt.LexerDefinitionErrorType.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST}),(0,Ie.has)(t,je.MODES)&&(0,Ie.forEach)(t.modes,function(n,s){(0,Ie.forEach)(n,function(o,a){(0,Ie.isUndefined)(o)&&i.push({message:"A Lexer cannot be initialized using an undefined Token Type. Mode:"+("<"+s+"> at index: <"+a+`> -`),type:zt.LexerDefinitionErrorType.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED})})}),i}je.performRuntimeChecks=ZEe;function $Ee(t,e,r){var i=[],n=!1,s=(0,Ie.compact)((0,Ie.flatten)((0,Ie.mapValues)(t.modes,function(l){return l}))),o=(0,Ie.reject)(s,function(l){return l[ao]===zt.Lexer.NA}),a=tG(r);return e&&(0,Ie.forEach)(o,function(l){var c=eG(l,a);if(c!==!1){var u=gG(l,c),g={message:u,type:c.issue,tokenType:l};i.push(g)}else(0,Ie.has)(l,"LINE_BREAKS")?l.LINE_BREAKS===!0&&(n=!0):(0,Iu.canMatchCharCode)(a,l.PATTERN)&&(n=!0)}),e&&!n&&i.push({message:`Warning: No LINE_BREAKS Found. - This Lexer has been defined to track line and column information, - But none of the Token Types can be identified as matching a line terminator. - See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#LINE_BREAKS - for details.`,type:zt.LexerDefinitionErrorType.NO_LINE_BREAKS_FLAGS}),i}je.performWarningRuntimeChecks=$Ee;function eIe(t){var e={},r=(0,Ie.keys)(t);return(0,Ie.forEach)(r,function(i){var n=t[i];if((0,Ie.isArray)(n))e[i]=[];else throw Error("non exhaustive match")}),e}je.cloneEmptyGroups=eIe;function qv(t){var e=t.PATTERN;if((0,Ie.isRegExp)(e))return!1;if((0,Ie.isFunction)(e))return!0;if((0,Ie.has)(e,"exec"))return!0;if((0,Ie.isString)(e))return!1;throw Error("non exhaustive match")}je.isCustomPattern=qv;function $H(t){return(0,Ie.isString)(t)&&t.length===1?t.charCodeAt(0):!1}je.isShortPattern=$H;je.LineTerminatorOptimizedTester={test:function(t){for(var e=t.length,r=this.lastIndex;r Token Type -`)+(" Root cause: "+e.errMsg+`. -`)+" For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#IDENTIFY_TERMINATOR";if(e.issue===zt.LexerDefinitionErrorType.CUSTOM_LINE_BREAK)return`Warning: A Custom Token Pattern should specify the option. -`+(" The problem is in the <"+t.name+`> Token Type -`)+" For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_LINE_BREAK";throw Error("non exhaustive match")}je.buildLineBreakIssueMessage=gG;function tG(t){var e=(0,Ie.map)(t,function(r){return(0,Ie.isString)(r)&&r.length>0?r.charCodeAt(0):r});return e}function Jv(t,e,r){t[e]===void 0?t[e]=[r]:t[e].push(r)}je.minOptimizationVal=256;var pI=[];function Wv(t){return t255?255+~~(t/255):t}}});var yu=E(Bt=>{"use strict";Object.defineProperty(Bt,"__esModule",{value:!0});Bt.isTokenType=Bt.hasExtendingTokensTypesMapProperty=Bt.hasExtendingTokensTypesProperty=Bt.hasCategoriesProperty=Bt.hasShortKeyProperty=Bt.singleAssignCategoriesToksMap=Bt.assignCategoriesMapProp=Bt.assignCategoriesTokensProp=Bt.assignTokenDefaultProps=Bt.expandCategories=Bt.augmentTokenTypes=Bt.tokenIdxToClass=Bt.tokenShortNameIdx=Bt.tokenStructuredMatcherNoCategories=Bt.tokenStructuredMatcher=void 0;var Kr=Dt();function tIe(t,e){var r=t.tokenTypeIdx;return r===e.tokenTypeIdx?!0:e.isParent===!0&&e.categoryMatchesMap[r]===!0}Bt.tokenStructuredMatcher=tIe;function rIe(t,e){return t.tokenTypeIdx===e.tokenTypeIdx}Bt.tokenStructuredMatcherNoCategories=rIe;Bt.tokenShortNameIdx=1;Bt.tokenIdxToClass={};function iIe(t){var e=fG(t);hG(e),dG(e),pG(e),(0,Kr.forEach)(e,function(r){r.isParent=r.categoryMatches.length>0})}Bt.augmentTokenTypes=iIe;function fG(t){for(var e=(0,Kr.cloneArr)(t),r=t,i=!0;i;){r=(0,Kr.compact)((0,Kr.flatten)((0,Kr.map)(r,function(s){return s.CATEGORIES})));var n=(0,Kr.difference)(r,e);e=e.concat(n),(0,Kr.isEmpty)(n)?i=!1:r=n}return e}Bt.expandCategories=fG;function hG(t){(0,Kr.forEach)(t,function(e){CG(e)||(Bt.tokenIdxToClass[Bt.tokenShortNameIdx]=e,e.tokenTypeIdx=Bt.tokenShortNameIdx++),zv(e)&&!(0,Kr.isArray)(e.CATEGORIES)&&(e.CATEGORIES=[e.CATEGORIES]),zv(e)||(e.CATEGORIES=[]),mG(e)||(e.categoryMatches=[]),EG(e)||(e.categoryMatchesMap={})})}Bt.assignTokenDefaultProps=hG;function pG(t){(0,Kr.forEach)(t,function(e){e.categoryMatches=[],(0,Kr.forEach)(e.categoryMatchesMap,function(r,i){e.categoryMatches.push(Bt.tokenIdxToClass[i].tokenTypeIdx)})})}Bt.assignCategoriesTokensProp=pG;function dG(t){(0,Kr.forEach)(t,function(e){Vv([],e)})}Bt.assignCategoriesMapProp=dG;function Vv(t,e){(0,Kr.forEach)(t,function(r){e.categoryMatchesMap[r.tokenTypeIdx]=!0}),(0,Kr.forEach)(e.CATEGORIES,function(r){var i=t.concat(e);(0,Kr.contains)(i,r)||Vv(i,r)})}Bt.singleAssignCategoriesToksMap=Vv;function CG(t){return(0,Kr.has)(t,"tokenTypeIdx")}Bt.hasShortKeyProperty=CG;function zv(t){return(0,Kr.has)(t,"CATEGORIES")}Bt.hasCategoriesProperty=zv;function mG(t){return(0,Kr.has)(t,"categoryMatches")}Bt.hasExtendingTokensTypesProperty=mG;function EG(t){return(0,Kr.has)(t,"categoryMatchesMap")}Bt.hasExtendingTokensTypesMapProperty=EG;function nIe(t){return(0,Kr.has)(t,"tokenTypeIdx")}Bt.isTokenType=nIe});var _v=E(dI=>{"use strict";Object.defineProperty(dI,"__esModule",{value:!0});dI.defaultLexerErrorProvider=void 0;dI.defaultLexerErrorProvider={buildUnableToPopLexerModeMessage:function(t){return"Unable to pop Lexer Mode after encountering Token ->"+t.image+"<- The Mode Stack is empty"},buildUnexpectedCharactersMessage:function(t,e,r,i,n){return"unexpected character: ->"+t.charAt(e)+"<- at offset: "+e+","+(" skipped "+r+" characters.")}}});var Gh=E(Rl=>{"use strict";Object.defineProperty(Rl,"__esModule",{value:!0});Rl.Lexer=Rl.LexerDefinitionErrorType=void 0;var Ps=Hv(),Vt=Dt(),sIe=yu(),oIe=_v(),aIe=gI(),AIe;(function(t){t[t.MISSING_PATTERN=0]="MISSING_PATTERN",t[t.INVALID_PATTERN=1]="INVALID_PATTERN",t[t.EOI_ANCHOR_FOUND=2]="EOI_ANCHOR_FOUND",t[t.UNSUPPORTED_FLAGS_FOUND=3]="UNSUPPORTED_FLAGS_FOUND",t[t.DUPLICATE_PATTERNS_FOUND=4]="DUPLICATE_PATTERNS_FOUND",t[t.INVALID_GROUP_TYPE_FOUND=5]="INVALID_GROUP_TYPE_FOUND",t[t.PUSH_MODE_DOES_NOT_EXIST=6]="PUSH_MODE_DOES_NOT_EXIST",t[t.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE=7]="MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE",t[t.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY=8]="MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY",t[t.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST=9]="MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST",t[t.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED=10]="LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED",t[t.SOI_ANCHOR_FOUND=11]="SOI_ANCHOR_FOUND",t[t.EMPTY_MATCH_PATTERN=12]="EMPTY_MATCH_PATTERN",t[t.NO_LINE_BREAKS_FLAGS=13]="NO_LINE_BREAKS_FLAGS",t[t.UNREACHABLE_PATTERN=14]="UNREACHABLE_PATTERN",t[t.IDENTIFY_TERMINATOR=15]="IDENTIFY_TERMINATOR",t[t.CUSTOM_LINE_BREAK=16]="CUSTOM_LINE_BREAK"})(AIe=Rl.LexerDefinitionErrorType||(Rl.LexerDefinitionErrorType={}));var jh={deferDefinitionErrorsHandling:!1,positionTracking:"full",lineTerminatorsPattern:/\n|\r\n?/g,lineTerminatorCharacters:[` -`,"\r"],ensureOptimizations:!1,safeMode:!1,errorMessageProvider:oIe.defaultLexerErrorProvider,traceInitPerf:!1,skipValidations:!1};Object.freeze(jh);var lIe=function(){function t(e,r){var i=this;if(r===void 0&&(r=jh),this.lexerDefinition=e,this.lexerDefinitionErrors=[],this.lexerDefinitionWarning=[],this.patternIdxToConfig={},this.charCodeToPatternIdxToConfig={},this.modes=[],this.emptyGroups={},this.config=void 0,this.trackStartLines=!0,this.trackEndLines=!0,this.hasCustom=!1,this.canModeBeOptimized={},typeof r=="boolean")throw Error(`The second argument to the Lexer constructor is now an ILexerConfig Object. -a boolean 2nd argument is no longer supported`);this.config=(0,Vt.merge)(jh,r);var n=this.config.traceInitPerf;n===!0?(this.traceInitMaxIdent=Infinity,this.traceInitPerf=!0):typeof n=="number"&&(this.traceInitMaxIdent=n,this.traceInitPerf=!0),this.traceInitIndent=-1,this.TRACE_INIT("Lexer Constructor",function(){var s,o=!0;i.TRACE_INIT("Lexer Config handling",function(){if(i.config.lineTerminatorsPattern===jh.lineTerminatorsPattern)i.config.lineTerminatorsPattern=Ps.LineTerminatorOptimizedTester;else if(i.config.lineTerminatorCharacters===jh.lineTerminatorCharacters)throw Error(`Error: Missing property on the Lexer config. - For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#MISSING_LINE_TERM_CHARS`);if(r.safeMode&&r.ensureOptimizations)throw Error('"safeMode" and "ensureOptimizations" flags are mutually exclusive.');i.trackStartLines=/full|onlyStart/i.test(i.config.positionTracking),i.trackEndLines=/full/i.test(i.config.positionTracking),(0,Vt.isArray)(e)?(s={modes:{}},s.modes[Ps.DEFAULT_MODE]=(0,Vt.cloneArr)(e),s[Ps.DEFAULT_MODE]=Ps.DEFAULT_MODE):(o=!1,s=(0,Vt.cloneObj)(e))}),i.config.skipValidations===!1&&(i.TRACE_INIT("performRuntimeChecks",function(){i.lexerDefinitionErrors=i.lexerDefinitionErrors.concat((0,Ps.performRuntimeChecks)(s,i.trackStartLines,i.config.lineTerminatorCharacters))}),i.TRACE_INIT("performWarningRuntimeChecks",function(){i.lexerDefinitionWarning=i.lexerDefinitionWarning.concat((0,Ps.performWarningRuntimeChecks)(s,i.trackStartLines,i.config.lineTerminatorCharacters))})),s.modes=s.modes?s.modes:{},(0,Vt.forEach)(s.modes,function(u,g){s.modes[g]=(0,Vt.reject)(u,function(f){return(0,Vt.isUndefined)(f)})});var a=(0,Vt.keys)(s.modes);if((0,Vt.forEach)(s.modes,function(u,g){i.TRACE_INIT("Mode: <"+g+"> processing",function(){if(i.modes.push(g),i.config.skipValidations===!1&&i.TRACE_INIT("validatePatterns",function(){i.lexerDefinitionErrors=i.lexerDefinitionErrors.concat((0,Ps.validatePatterns)(u,a))}),(0,Vt.isEmpty)(i.lexerDefinitionErrors)){(0,sIe.augmentTokenTypes)(u);var f;i.TRACE_INIT("analyzeTokenTypes",function(){f=(0,Ps.analyzeTokenTypes)(u,{lineTerminatorCharacters:i.config.lineTerminatorCharacters,positionTracking:r.positionTracking,ensureOptimizations:r.ensureOptimizations,safeMode:r.safeMode,tracer:i.TRACE_INIT.bind(i)})}),i.patternIdxToConfig[g]=f.patternIdxToConfig,i.charCodeToPatternIdxToConfig[g]=f.charCodeToPatternIdxToConfig,i.emptyGroups=(0,Vt.merge)(i.emptyGroups,f.emptyGroups),i.hasCustom=f.hasCustom||i.hasCustom,i.canModeBeOptimized[g]=f.canBeOptimized}})}),i.defaultMode=s.defaultMode,!(0,Vt.isEmpty)(i.lexerDefinitionErrors)&&!i.config.deferDefinitionErrorsHandling){var l=(0,Vt.map)(i.lexerDefinitionErrors,function(u){return u.message}),c=l.join(`----------------------- -`);throw new Error(`Errors detected in definition of Lexer: -`+c)}(0,Vt.forEach)(i.lexerDefinitionWarning,function(u){(0,Vt.PRINT_WARNING)(u.message)}),i.TRACE_INIT("Choosing sub-methods implementations",function(){if(Ps.SUPPORT_STICKY?(i.chopInput=Vt.IDENTITY,i.match=i.matchWithTest):(i.updateLastIndex=Vt.NOOP,i.match=i.matchWithExec),o&&(i.handleModes=Vt.NOOP),i.trackStartLines===!1&&(i.computeNewColumn=Vt.IDENTITY),i.trackEndLines===!1&&(i.updateTokenEndLineColumnLocation=Vt.NOOP),/full/i.test(i.config.positionTracking))i.createTokenInstance=i.createFullToken;else if(/onlyStart/i.test(i.config.positionTracking))i.createTokenInstance=i.createStartOnlyToken;else if(/onlyOffset/i.test(i.config.positionTracking))i.createTokenInstance=i.createOffsetOnlyToken;else throw Error('Invalid config option: "'+i.config.positionTracking+'"');i.hasCustom?(i.addToken=i.addTokenUsingPush,i.handlePayload=i.handlePayloadWithCustom):(i.addToken=i.addTokenUsingMemberAccess,i.handlePayload=i.handlePayloadNoCustom)}),i.TRACE_INIT("Failed Optimization Warnings",function(){var u=(0,Vt.reduce)(i.canModeBeOptimized,function(g,f,h){return f===!1&&g.push(h),g},[]);if(r.ensureOptimizations&&!(0,Vt.isEmpty)(u))throw Error("Lexer Modes: < "+u.join(", ")+` > cannot be optimized. - Disable the "ensureOptimizations" lexer config flag to silently ignore this and run the lexer in an un-optimized mode. - Or inspect the console log for details on how to resolve these issues.`)}),i.TRACE_INIT("clearRegExpParserCache",function(){(0,aIe.clearRegExpParserCache)()}),i.TRACE_INIT("toFastProperties",function(){(0,Vt.toFastProperties)(i)})})}return t.prototype.tokenize=function(e,r){if(r===void 0&&(r=this.defaultMode),!(0,Vt.isEmpty)(this.lexerDefinitionErrors)){var i=(0,Vt.map)(this.lexerDefinitionErrors,function(o){return o.message}),n=i.join(`----------------------- -`);throw new Error(`Unable to Tokenize because Errors detected in definition of Lexer: -`+n)}var s=this.tokenizeInternal(e,r);return s},t.prototype.tokenizeInternal=function(e,r){var i=this,n,s,o,a,l,c,u,g,f,h,p,d,m,I,B,b,R=e,H=R.length,L=0,K=0,J=this.hasCustom?0:Math.floor(e.length/10),ne=new Array(J),q=[],A=this.trackStartLines?1:void 0,V=this.trackStartLines?1:void 0,W=(0,Ps.cloneEmptyGroups)(this.emptyGroups),X=this.trackStartLines,F=this.config.lineTerminatorsPattern,D=0,he=[],pe=[],Ne=[],Pe=[];Object.freeze(Pe);var qe=void 0;function re(){return he}function se(wr){var Ui=(0,Ps.charCodeToOptimizedIndex)(wr),ws=pe[Ui];return ws===void 0?Pe:ws}var be=function(wr){if(Ne.length===1&&wr.tokenType.PUSH_MODE===void 0){var Ui=i.config.errorMessageProvider.buildUnableToPopLexerModeMessage(wr);q.push({offset:wr.startOffset,line:wr.startLine!==void 0?wr.startLine:void 0,column:wr.startColumn!==void 0?wr.startColumn:void 0,length:wr.image.length,message:Ui})}else{Ne.pop();var ws=(0,Vt.last)(Ne);he=i.patternIdxToConfig[ws],pe=i.charCodeToPatternIdxToConfig[ws],D=he.length;var Tf=i.canModeBeOptimized[ws]&&i.config.safeMode===!1;pe&&Tf?qe=se:qe=re}};function ae(wr){Ne.push(wr),pe=this.charCodeToPatternIdxToConfig[wr],he=this.patternIdxToConfig[wr],D=he.length,D=he.length;var Ui=this.canModeBeOptimized[wr]&&this.config.safeMode===!1;pe&&Ui?qe=se:qe=re}ae.call(this,r);for(var Ae;Lc.length){c=a,u=g,Ae=Oe;break}}}break}}if(c!==null){if(f=c.length,h=Ae.group,h!==void 0&&(p=Ae.tokenTypeIdx,d=this.createTokenInstance(c,L,p,Ae.tokenType,A,V,f),this.handlePayload(d,u),h===!1?K=this.addToken(ne,K,d):W[h].push(d)),e=this.chopInput(e,f),L=L+f,V=this.computeNewColumn(V,f),X===!0&&Ae.canLineTerminator===!0){var dt=0,ri=void 0,ii=void 0;F.lastIndex=0;do ri=F.test(c),ri===!0&&(ii=F.lastIndex-1,dt++);while(ri===!0);dt!==0&&(A=A+dt,V=f-ii,this.updateTokenEndLineColumnLocation(d,h,ii,dt,A,V,f))}this.handleModes(Ae,be,ae,d)}else{for(var an=L,yr=A,Ki=V,Qi=!1;!Qi&&L <"+e+">");var n=(0,Vt.timer)(r),s=n.time,o=n.value,a=s>10?console.warn:console.log;return this.traceInitIndent time: "+s+"ms"),this.traceInitIndent--,o}else return r()},t.SKIPPED="This marks a skipped Token pattern, this means each token identified by it willbe consumed and then thrown into oblivion, this can be used to for example to completely ignore whitespace.",t.NA=/NOT_APPLICABLE/,t}();Rl.Lexer=lIe});var nA=E(Ci=>{"use strict";Object.defineProperty(Ci,"__esModule",{value:!0});Ci.tokenMatcher=Ci.createTokenInstance=Ci.EOF=Ci.createToken=Ci.hasTokenLabel=Ci.tokenName=Ci.tokenLabel=void 0;var Ds=Dt(),cIe=Gh(),Xv=yu();function uIe(t){return IG(t)?t.LABEL:t.name}Ci.tokenLabel=uIe;function gIe(t){return t.name}Ci.tokenName=gIe;function IG(t){return(0,Ds.isString)(t.LABEL)&&t.LABEL!==""}Ci.hasTokenLabel=IG;var fIe="parent",yG="categories",wG="label",BG="group",QG="push_mode",bG="pop_mode",vG="longer_alt",SG="line_breaks",xG="start_chars_hint";function kG(t){return hIe(t)}Ci.createToken=kG;function hIe(t){var e=t.pattern,r={};if(r.name=t.name,(0,Ds.isUndefined)(e)||(r.PATTERN=e),(0,Ds.has)(t,fIe))throw`The parent property is no longer supported. -See: https://github.com/chevrotain/chevrotain/issues/564#issuecomment-349062346 for details.`;return(0,Ds.has)(t,yG)&&(r.CATEGORIES=t[yG]),(0,Xv.augmentTokenTypes)([r]),(0,Ds.has)(t,wG)&&(r.LABEL=t[wG]),(0,Ds.has)(t,BG)&&(r.GROUP=t[BG]),(0,Ds.has)(t,bG)&&(r.POP_MODE=t[bG]),(0,Ds.has)(t,QG)&&(r.PUSH_MODE=t[QG]),(0,Ds.has)(t,vG)&&(r.LONGER_ALT=t[vG]),(0,Ds.has)(t,SG)&&(r.LINE_BREAKS=t[SG]),(0,Ds.has)(t,xG)&&(r.START_CHARS_HINT=t[xG]),r}Ci.EOF=kG({name:"EOF",pattern:cIe.Lexer.NA});(0,Xv.augmentTokenTypes)([Ci.EOF]);function pIe(t,e,r,i,n,s,o,a){return{image:e,startOffset:r,endOffset:i,startLine:n,endLine:s,startColumn:o,endColumn:a,tokenTypeIdx:t.tokenTypeIdx,tokenType:t}}Ci.createTokenInstance=pIe;function dIe(t,e){return(0,Xv.tokenStructuredMatcher)(t,e)}Ci.tokenMatcher=dIe});var hn=E(Tt=>{"use strict";var oa=Tt&&Tt.__extends||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();Object.defineProperty(Tt,"__esModule",{value:!0});Tt.serializeProduction=Tt.serializeGrammar=Tt.Terminal=Tt.Alternation=Tt.RepetitionWithSeparator=Tt.Repetition=Tt.RepetitionMandatoryWithSeparator=Tt.RepetitionMandatory=Tt.Option=Tt.Alternative=Tt.Rule=Tt.NonTerminal=Tt.AbstractProduction=void 0;var $t=Dt(),CIe=nA(),Ao=function(){function t(e){this._definition=e}return Object.defineProperty(t.prototype,"definition",{get:function(){return this._definition},set:function(e){this._definition=e},enumerable:!1,configurable:!0}),t.prototype.accept=function(e){e.visit(this),(0,$t.forEach)(this.definition,function(r){r.accept(e)})},t}();Tt.AbstractProduction=Ao;var PG=function(t){oa(e,t);function e(r){var i=t.call(this,[])||this;return i.idx=1,(0,$t.assign)(i,(0,$t.pick)(r,function(n){return n!==void 0})),i}return Object.defineProperty(e.prototype,"definition",{get:function(){return this.referencedRule!==void 0?this.referencedRule.definition:[]},set:function(r){},enumerable:!1,configurable:!0}),e.prototype.accept=function(r){r.visit(this)},e}(Ao);Tt.NonTerminal=PG;var DG=function(t){oa(e,t);function e(r){var i=t.call(this,r.definition)||this;return i.orgText="",(0,$t.assign)(i,(0,$t.pick)(r,function(n){return n!==void 0})),i}return e}(Ao);Tt.Rule=DG;var RG=function(t){oa(e,t);function e(r){var i=t.call(this,r.definition)||this;return i.ignoreAmbiguities=!1,(0,$t.assign)(i,(0,$t.pick)(r,function(n){return n!==void 0})),i}return e}(Ao);Tt.Alternative=RG;var FG=function(t){oa(e,t);function e(r){var i=t.call(this,r.definition)||this;return i.idx=1,(0,$t.assign)(i,(0,$t.pick)(r,function(n){return n!==void 0})),i}return e}(Ao);Tt.Option=FG;var NG=function(t){oa(e,t);function e(r){var i=t.call(this,r.definition)||this;return i.idx=1,(0,$t.assign)(i,(0,$t.pick)(r,function(n){return n!==void 0})),i}return e}(Ao);Tt.RepetitionMandatory=NG;var LG=function(t){oa(e,t);function e(r){var i=t.call(this,r.definition)||this;return i.idx=1,(0,$t.assign)(i,(0,$t.pick)(r,function(n){return n!==void 0})),i}return e}(Ao);Tt.RepetitionMandatoryWithSeparator=LG;var TG=function(t){oa(e,t);function e(r){var i=t.call(this,r.definition)||this;return i.idx=1,(0,$t.assign)(i,(0,$t.pick)(r,function(n){return n!==void 0})),i}return e}(Ao);Tt.Repetition=TG;var MG=function(t){oa(e,t);function e(r){var i=t.call(this,r.definition)||this;return i.idx=1,(0,$t.assign)(i,(0,$t.pick)(r,function(n){return n!==void 0})),i}return e}(Ao);Tt.RepetitionWithSeparator=MG;var OG=function(t){oa(e,t);function e(r){var i=t.call(this,r.definition)||this;return i.idx=1,i.ignoreAmbiguities=!1,i.hasPredicates=!1,(0,$t.assign)(i,(0,$t.pick)(r,function(n){return n!==void 0})),i}return Object.defineProperty(e.prototype,"definition",{get:function(){return this._definition},set:function(r){this._definition=r},enumerable:!1,configurable:!0}),e}(Ao);Tt.Alternation=OG;var CI=function(){function t(e){this.idx=1,(0,$t.assign)(this,(0,$t.pick)(e,function(r){return r!==void 0}))}return t.prototype.accept=function(e){e.visit(this)},t}();Tt.Terminal=CI;function mIe(t){return(0,$t.map)(t,Yh)}Tt.serializeGrammar=mIe;function Yh(t){function e(s){return(0,$t.map)(s,Yh)}if(t instanceof PG){var r={type:"NonTerminal",name:t.nonTerminalName,idx:t.idx};return(0,$t.isString)(t.label)&&(r.label=t.label),r}else{if(t instanceof RG)return{type:"Alternative",definition:e(t.definition)};if(t instanceof FG)return{type:"Option",idx:t.idx,definition:e(t.definition)};if(t instanceof NG)return{type:"RepetitionMandatory",idx:t.idx,definition:e(t.definition)};if(t instanceof LG)return{type:"RepetitionMandatoryWithSeparator",idx:t.idx,separator:Yh(new CI({terminalType:t.separator})),definition:e(t.definition)};if(t instanceof MG)return{type:"RepetitionWithSeparator",idx:t.idx,separator:Yh(new CI({terminalType:t.separator})),definition:e(t.definition)};if(t instanceof TG)return{type:"Repetition",idx:t.idx,definition:e(t.definition)};if(t instanceof OG)return{type:"Alternation",idx:t.idx,definition:e(t.definition)};if(t instanceof CI){var i={type:"Terminal",name:t.terminalType.name,label:(0,CIe.tokenLabel)(t.terminalType),idx:t.idx};(0,$t.isString)(t.label)&&(i.terminalLabel=t.label);var n=t.terminalType.PATTERN;return t.terminalType.PATTERN&&(i.pattern=(0,$t.isRegExp)(n)?n.source:n),i}else{if(t instanceof DG)return{type:"Rule",name:t.name,orgText:t.orgText,definition:e(t.definition)};throw Error("non exhaustive match")}}}Tt.serializeProduction=Yh});var EI=E(mI=>{"use strict";Object.defineProperty(mI,"__esModule",{value:!0});mI.RestWalker=void 0;var Zv=Dt(),pn=hn(),EIe=function(){function t(){}return t.prototype.walk=function(e,r){var i=this;r===void 0&&(r=[]),(0,Zv.forEach)(e.definition,function(n,s){var o=(0,Zv.drop)(e.definition,s+1);if(n instanceof pn.NonTerminal)i.walkProdRef(n,o,r);else if(n instanceof pn.Terminal)i.walkTerminal(n,o,r);else if(n instanceof pn.Alternative)i.walkFlat(n,o,r);else if(n instanceof pn.Option)i.walkOption(n,o,r);else if(n instanceof pn.RepetitionMandatory)i.walkAtLeastOne(n,o,r);else if(n instanceof pn.RepetitionMandatoryWithSeparator)i.walkAtLeastOneSep(n,o,r);else if(n instanceof pn.RepetitionWithSeparator)i.walkManySep(n,o,r);else if(n instanceof pn.Repetition)i.walkMany(n,o,r);else if(n instanceof pn.Alternation)i.walkOr(n,o,r);else throw Error("non exhaustive match")})},t.prototype.walkTerminal=function(e,r,i){},t.prototype.walkProdRef=function(e,r,i){},t.prototype.walkFlat=function(e,r,i){var n=r.concat(i);this.walk(e,n)},t.prototype.walkOption=function(e,r,i){var n=r.concat(i);this.walk(e,n)},t.prototype.walkAtLeastOne=function(e,r,i){var n=[new pn.Option({definition:e.definition})].concat(r,i);this.walk(e,n)},t.prototype.walkAtLeastOneSep=function(e,r,i){var n=KG(e,r,i);this.walk(e,n)},t.prototype.walkMany=function(e,r,i){var n=[new pn.Option({definition:e.definition})].concat(r,i);this.walk(e,n)},t.prototype.walkManySep=function(e,r,i){var n=KG(e,r,i);this.walk(e,n)},t.prototype.walkOr=function(e,r,i){var n=this,s=r.concat(i);(0,Zv.forEach)(e.definition,function(o){var a=new pn.Alternative({definition:[o]});n.walk(a,s)})},t}();mI.RestWalker=EIe;function KG(t,e,r){var i=[new pn.Option({definition:[new pn.Terminal({terminalType:t.separator})].concat(t.definition)})],n=i.concat(e,r);return n}});var wu=E(II=>{"use strict";Object.defineProperty(II,"__esModule",{value:!0});II.GAstVisitor=void 0;var lo=hn(),IIe=function(){function t(){}return t.prototype.visit=function(e){var r=e;switch(r.constructor){case lo.NonTerminal:return this.visitNonTerminal(r);case lo.Alternative:return this.visitAlternative(r);case lo.Option:return this.visitOption(r);case lo.RepetitionMandatory:return this.visitRepetitionMandatory(r);case lo.RepetitionMandatoryWithSeparator:return this.visitRepetitionMandatoryWithSeparator(r);case lo.RepetitionWithSeparator:return this.visitRepetitionWithSeparator(r);case lo.Repetition:return this.visitRepetition(r);case lo.Alternation:return this.visitAlternation(r);case lo.Terminal:return this.visitTerminal(r);case lo.Rule:return this.visitRule(r);default:throw Error("non exhaustive match")}},t.prototype.visitNonTerminal=function(e){},t.prototype.visitAlternative=function(e){},t.prototype.visitOption=function(e){},t.prototype.visitRepetition=function(e){},t.prototype.visitRepetitionMandatory=function(e){},t.prototype.visitRepetitionMandatoryWithSeparator=function(e){},t.prototype.visitRepetitionWithSeparator=function(e){},t.prototype.visitAlternation=function(e){},t.prototype.visitTerminal=function(e){},t.prototype.visitRule=function(e){},t}();II.GAstVisitor=IIe});var Jh=E(Si=>{"use strict";var yIe=Si&&Si.__extends||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();Object.defineProperty(Si,"__esModule",{value:!0});Si.collectMethods=Si.DslMethodsCollectorVisitor=Si.getProductionDslName=Si.isBranchingProd=Si.isOptionalProd=Si.isSequenceProd=void 0;var qh=Dt(),dr=hn(),wIe=wu();function BIe(t){return t instanceof dr.Alternative||t instanceof dr.Option||t instanceof dr.Repetition||t instanceof dr.RepetitionMandatory||t instanceof dr.RepetitionMandatoryWithSeparator||t instanceof dr.RepetitionWithSeparator||t instanceof dr.Terminal||t instanceof dr.Rule}Si.isSequenceProd=BIe;function $v(t,e){e===void 0&&(e=[]);var r=t instanceof dr.Option||t instanceof dr.Repetition||t instanceof dr.RepetitionWithSeparator;return r?!0:t instanceof dr.Alternation?(0,qh.some)(t.definition,function(i){return $v(i,e)}):t instanceof dr.NonTerminal&&(0,qh.contains)(e,t)?!1:t instanceof dr.AbstractProduction?(t instanceof dr.NonTerminal&&e.push(t),(0,qh.every)(t.definition,function(i){return $v(i,e)})):!1}Si.isOptionalProd=$v;function QIe(t){return t instanceof dr.Alternation}Si.isBranchingProd=QIe;function bIe(t){if(t instanceof dr.NonTerminal)return"SUBRULE";if(t instanceof dr.Option)return"OPTION";if(t instanceof dr.Alternation)return"OR";if(t instanceof dr.RepetitionMandatory)return"AT_LEAST_ONE";if(t instanceof dr.RepetitionMandatoryWithSeparator)return"AT_LEAST_ONE_SEP";if(t instanceof dr.RepetitionWithSeparator)return"MANY_SEP";if(t instanceof dr.Repetition)return"MANY";if(t instanceof dr.Terminal)return"CONSUME";throw Error("non exhaustive match")}Si.getProductionDslName=bIe;var UG=function(t){yIe(e,t);function e(){var r=t!==null&&t.apply(this,arguments)||this;return r.separator="-",r.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]},r}return e.prototype.reset=function(){this.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]}},e.prototype.visitTerminal=function(r){var i=r.terminalType.name+this.separator+"Terminal";(0,qh.has)(this.dslMethods,i)||(this.dslMethods[i]=[]),this.dslMethods[i].push(r)},e.prototype.visitNonTerminal=function(r){var i=r.nonTerminalName+this.separator+"Terminal";(0,qh.has)(this.dslMethods,i)||(this.dslMethods[i]=[]),this.dslMethods[i].push(r)},e.prototype.visitOption=function(r){this.dslMethods.option.push(r)},e.prototype.visitRepetitionWithSeparator=function(r){this.dslMethods.repetitionWithSeparator.push(r)},e.prototype.visitRepetitionMandatory=function(r){this.dslMethods.repetitionMandatory.push(r)},e.prototype.visitRepetitionMandatoryWithSeparator=function(r){this.dslMethods.repetitionMandatoryWithSeparator.push(r)},e.prototype.visitRepetition=function(r){this.dslMethods.repetition.push(r)},e.prototype.visitAlternation=function(r){this.dslMethods.alternation.push(r)},e}(wIe.GAstVisitor);Si.DslMethodsCollectorVisitor=UG;var yI=new UG;function vIe(t){yI.reset(),t.accept(yI);var e=yI.dslMethods;return yI.reset(),e}Si.collectMethods=vIe});var tS=E(co=>{"use strict";Object.defineProperty(co,"__esModule",{value:!0});co.firstForTerminal=co.firstForBranching=co.firstForSequence=co.first=void 0;var wI=Dt(),HG=hn(),eS=Jh();function BI(t){if(t instanceof HG.NonTerminal)return BI(t.referencedRule);if(t instanceof HG.Terminal)return YG(t);if((0,eS.isSequenceProd)(t))return GG(t);if((0,eS.isBranchingProd)(t))return jG(t);throw Error("non exhaustive match")}co.first=BI;function GG(t){for(var e=[],r=t.definition,i=0,n=r.length>i,s,o=!0;n&&o;)s=r[i],o=(0,eS.isOptionalProd)(s),e=e.concat(BI(s)),i=i+1,n=r.length>i;return(0,wI.uniq)(e)}co.firstForSequence=GG;function jG(t){var e=(0,wI.map)(t.definition,function(r){return BI(r)});return(0,wI.uniq)((0,wI.flatten)(e))}co.firstForBranching=jG;function YG(t){return[t.terminalType]}co.firstForTerminal=YG});var rS=E(QI=>{"use strict";Object.defineProperty(QI,"__esModule",{value:!0});QI.IN=void 0;QI.IN="_~IN~_"});var VG=E(es=>{"use strict";var SIe=es&&es.__extends||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();Object.defineProperty(es,"__esModule",{value:!0});es.buildInProdFollowPrefix=es.buildBetweenProdsFollowPrefix=es.computeAllProdsFollows=es.ResyncFollowsWalker=void 0;var xIe=EI(),kIe=tS(),qG=Dt(),JG=rS(),PIe=hn(),zG=function(t){SIe(e,t);function e(r){var i=t.call(this)||this;return i.topProd=r,i.follows={},i}return e.prototype.startWalking=function(){return this.walk(this.topProd),this.follows},e.prototype.walkTerminal=function(r,i,n){},e.prototype.walkProdRef=function(r,i,n){var s=WG(r.referencedRule,r.idx)+this.topProd.name,o=i.concat(n),a=new PIe.Alternative({definition:o}),l=(0,kIe.first)(a);this.follows[s]=l},e}(xIe.RestWalker);es.ResyncFollowsWalker=zG;function DIe(t){var e={};return(0,qG.forEach)(t,function(r){var i=new zG(r).startWalking();(0,qG.assign)(e,i)}),e}es.computeAllProdsFollows=DIe;function WG(t,e){return t.name+e+JG.IN}es.buildBetweenProdsFollowPrefix=WG;function RIe(t){var e=t.terminalType.name;return e+t.idx+JG.IN}es.buildInProdFollowPrefix=RIe});var Wh=E(aa=>{"use strict";Object.defineProperty(aa,"__esModule",{value:!0});aa.defaultGrammarValidatorErrorProvider=aa.defaultGrammarResolverErrorProvider=aa.defaultParserErrorProvider=void 0;var Bu=nA(),FIe=Dt(),Rs=Dt(),iS=hn(),_G=Jh();aa.defaultParserErrorProvider={buildMismatchTokenMessage:function(t){var e=t.expected,r=t.actual,i=t.previous,n=t.ruleName,s=(0,Bu.hasTokenLabel)(e),o=s?"--> "+(0,Bu.tokenLabel)(e)+" <--":"token of type --> "+e.name+" <--",a="Expecting "+o+" but found --> '"+r.image+"' <--";return a},buildNotAllInputParsedMessage:function(t){var e=t.firstRedundant,r=t.ruleName;return"Redundant input, expecting EOF but found: "+e.image},buildNoViableAltMessage:function(t){var e=t.expectedPathsPerAlt,r=t.actual,i=t.previous,n=t.customUserDescription,s=t.ruleName,o="Expecting: ",a=(0,Rs.first)(r).image,l=` -but found: '`+a+"'";if(n)return o+n+l;var c=(0,Rs.reduce)(e,function(h,p){return h.concat(p)},[]),u=(0,Rs.map)(c,function(h){return"["+(0,Rs.map)(h,function(p){return(0,Bu.tokenLabel)(p)}).join(", ")+"]"}),g=(0,Rs.map)(u,function(h,p){return" "+(p+1)+". "+h}),f=`one of these possible Token sequences: -`+g.join(` -`);return o+f+l},buildEarlyExitMessage:function(t){var e=t.expectedIterationPaths,r=t.actual,i=t.customUserDescription,n=t.ruleName,s="Expecting: ",o=(0,Rs.first)(r).image,a=` -but found: '`+o+"'";if(i)return s+i+a;var l=(0,Rs.map)(e,function(u){return"["+(0,Rs.map)(u,function(g){return(0,Bu.tokenLabel)(g)}).join(",")+"]"}),c=`expecting at least one iteration which starts with one of these possible Token sequences:: - `+("<"+l.join(" ,")+">");return s+c+a}};Object.freeze(aa.defaultParserErrorProvider);aa.defaultGrammarResolverErrorProvider={buildRuleNotFoundError:function(t,e){var r="Invalid grammar, reference to a rule which is not defined: ->"+e.nonTerminalName+`<- -inside top level rule: ->`+t.name+"<-";return r}};aa.defaultGrammarValidatorErrorProvider={buildDuplicateFoundError:function(t,e){function r(u){return u instanceof iS.Terminal?u.terminalType.name:u instanceof iS.NonTerminal?u.nonTerminalName:""}var i=t.name,n=(0,Rs.first)(e),s=n.idx,o=(0,_G.getProductionDslName)(n),a=r(n),l=s>0,c="->"+o+(l?s:"")+"<- "+(a?"with argument: ->"+a+"<-":"")+` - appears more than once (`+e.length+" times) in the top level rule: ->"+i+`<-. - For further details see: https://chevrotain.io/docs/FAQ.html#NUMERICAL_SUFFIXES - `;return c=c.replace(/[ \t]+/g," "),c=c.replace(/\s\s+/g,` -`),c},buildNamespaceConflictError:function(t){var e=`Namespace conflict found in grammar. -`+("The grammar has both a Terminal(Token) and a Non-Terminal(Rule) named: <"+t.name+`>. -`)+`To resolve this make sure each Terminal and Non-Terminal names are unique -This is easy to accomplish by using the convention that Terminal names start with an uppercase letter -and Non-Terminal names start with a lower case letter.`;return e},buildAlternationPrefixAmbiguityError:function(t){var e=(0,Rs.map)(t.prefixPath,function(n){return(0,Bu.tokenLabel)(n)}).join(", "),r=t.alternation.idx===0?"":t.alternation.idx,i="Ambiguous alternatives: <"+t.ambiguityIndices.join(" ,")+`> due to common lookahead prefix -`+("in inside <"+t.topLevelRule.name+`> Rule, -`)+("<"+e+`> may appears as a prefix path in all these alternatives. -`)+`See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#COMMON_PREFIX -For Further details.`;return i},buildAlternationAmbiguityError:function(t){var e=(0,Rs.map)(t.prefixPath,function(n){return(0,Bu.tokenLabel)(n)}).join(", "),r=t.alternation.idx===0?"":t.alternation.idx,i="Ambiguous Alternatives Detected: <"+t.ambiguityIndices.join(" ,")+"> in "+(" inside <"+t.topLevelRule.name+`> Rule, -`)+("<"+e+`> may appears as a prefix path in all these alternatives. -`);return i=i+`See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#AMBIGUOUS_ALTERNATIVES -For Further details.`,i},buildEmptyRepetitionError:function(t){var e=(0,_G.getProductionDslName)(t.repetition);t.repetition.idx!==0&&(e+=t.repetition.idx);var r="The repetition <"+e+"> within Rule <"+t.topLevelRule.name+`> can never consume any tokens. -This could lead to an infinite loop.`;return r},buildTokenNameError:function(t){return"deprecated"},buildEmptyAlternationError:function(t){var e="Ambiguous empty alternative: <"+(t.emptyChoiceIdx+1)+">"+(" in inside <"+t.topLevelRule.name+`> Rule. -`)+"Only the last alternative may be an empty alternative.";return e},buildTooManyAlternativesError:function(t){var e=`An Alternation cannot have more than 256 alternatives: -`+(" inside <"+t.topLevelRule.name+`> Rule. - has `+(t.alternation.definition.length+1)+" alternatives.");return e},buildLeftRecursionError:function(t){var e=t.topLevelRule.name,r=FIe.map(t.leftRecursionPath,function(s){return s.name}),i=e+" --> "+r.concat([e]).join(" --> "),n=`Left Recursion found in grammar. -`+("rule: <"+e+`> can be invoked from itself (directly or indirectly) -`)+(`without consuming any Tokens. The grammar path that causes this is: - `+i+` -`)+` To fix this refactor your grammar to remove the left recursion. -see: https://en.wikipedia.org/wiki/LL_parser#Left_Factoring.`;return n},buildInvalidRuleNameError:function(t){return"deprecated"},buildDuplicateRuleNameError:function(t){var e;t.topLevelRule instanceof iS.Rule?e=t.topLevelRule.name:e=t.topLevelRule;var r="Duplicate definition, rule: ->"+e+"<- is already defined in the grammar: ->"+t.grammarName+"<-";return r}}});var $G=E(sA=>{"use strict";var NIe=sA&&sA.__extends||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();Object.defineProperty(sA,"__esModule",{value:!0});sA.GastRefResolverVisitor=sA.resolveGrammar=void 0;var LIe=Tn(),XG=Dt(),TIe=wu();function MIe(t,e){var r=new ZG(t,e);return r.resolveRefs(),r.errors}sA.resolveGrammar=MIe;var ZG=function(t){NIe(e,t);function e(r,i){var n=t.call(this)||this;return n.nameToTopRule=r,n.errMsgProvider=i,n.errors=[],n}return e.prototype.resolveRefs=function(){var r=this;(0,XG.forEach)((0,XG.values)(this.nameToTopRule),function(i){r.currTopLevel=i,i.accept(r)})},e.prototype.visitNonTerminal=function(r){var i=this.nameToTopRule[r.nonTerminalName];if(i)r.referencedRule=i;else{var n=this.errMsgProvider.buildRuleNotFoundError(this.currTopLevel,r);this.errors.push({message:n,type:LIe.ParserDefinitionErrorType.UNRESOLVED_SUBRULE_REF,ruleName:this.currTopLevel.name,unresolvedRefName:r.nonTerminalName})}},e}(TIe.GAstVisitor);sA.GastRefResolverVisitor=ZG});var Vh=E(Br=>{"use strict";var Fl=Br&&Br.__extends||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();Object.defineProperty(Br,"__esModule",{value:!0});Br.nextPossibleTokensAfter=Br.possiblePathsFrom=Br.NextTerminalAfterAtLeastOneSepWalker=Br.NextTerminalAfterAtLeastOneWalker=Br.NextTerminalAfterManySepWalker=Br.NextTerminalAfterManyWalker=Br.AbstractNextTerminalAfterProductionWalker=Br.NextAfterTokenWalker=Br.AbstractNextPossibleTokensWalker=void 0;var ej=EI(),xt=Dt(),OIe=tS(),It=hn(),tj=function(t){Fl(e,t);function e(r,i){var n=t.call(this)||this;return n.topProd=r,n.path=i,n.possibleTokTypes=[],n.nextProductionName="",n.nextProductionOccurrence=0,n.found=!1,n.isAtEndOfPath=!1,n}return e.prototype.startWalking=function(){if(this.found=!1,this.path.ruleStack[0]!==this.topProd.name)throw Error("The path does not start with the walker's top Rule!");return this.ruleStack=(0,xt.cloneArr)(this.path.ruleStack).reverse(),this.occurrenceStack=(0,xt.cloneArr)(this.path.occurrenceStack).reverse(),this.ruleStack.pop(),this.occurrenceStack.pop(),this.updateExpectedNext(),this.walk(this.topProd),this.possibleTokTypes},e.prototype.walk=function(r,i){i===void 0&&(i=[]),this.found||t.prototype.walk.call(this,r,i)},e.prototype.walkProdRef=function(r,i,n){if(r.referencedRule.name===this.nextProductionName&&r.idx===this.nextProductionOccurrence){var s=i.concat(n);this.updateExpectedNext(),this.walk(r.referencedRule,s)}},e.prototype.updateExpectedNext=function(){(0,xt.isEmpty)(this.ruleStack)?(this.nextProductionName="",this.nextProductionOccurrence=0,this.isAtEndOfPath=!0):(this.nextProductionName=this.ruleStack.pop(),this.nextProductionOccurrence=this.occurrenceStack.pop())},e}(ej.RestWalker);Br.AbstractNextPossibleTokensWalker=tj;var KIe=function(t){Fl(e,t);function e(r,i){var n=t.call(this,r,i)||this;return n.path=i,n.nextTerminalName="",n.nextTerminalOccurrence=0,n.nextTerminalName=n.path.lastTok.name,n.nextTerminalOccurrence=n.path.lastTokOccurrence,n}return e.prototype.walkTerminal=function(r,i,n){if(this.isAtEndOfPath&&r.terminalType.name===this.nextTerminalName&&r.idx===this.nextTerminalOccurrence&&!this.found){var s=i.concat(n),o=new It.Alternative({definition:s});this.possibleTokTypes=(0,OIe.first)(o),this.found=!0}},e}(tj);Br.NextAfterTokenWalker=KIe;var zh=function(t){Fl(e,t);function e(r,i){var n=t.call(this)||this;return n.topRule=r,n.occurrence=i,n.result={token:void 0,occurrence:void 0,isEndOfRule:void 0},n}return e.prototype.startWalking=function(){return this.walk(this.topRule),this.result},e}(ej.RestWalker);Br.AbstractNextTerminalAfterProductionWalker=zh;var UIe=function(t){Fl(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}return e.prototype.walkMany=function(r,i,n){if(r.idx===this.occurrence){var s=(0,xt.first)(i.concat(n));this.result.isEndOfRule=s===void 0,s instanceof It.Terminal&&(this.result.token=s.terminalType,this.result.occurrence=s.idx)}else t.prototype.walkMany.call(this,r,i,n)},e}(zh);Br.NextTerminalAfterManyWalker=UIe;var HIe=function(t){Fl(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}return e.prototype.walkManySep=function(r,i,n){if(r.idx===this.occurrence){var s=(0,xt.first)(i.concat(n));this.result.isEndOfRule=s===void 0,s instanceof It.Terminal&&(this.result.token=s.terminalType,this.result.occurrence=s.idx)}else t.prototype.walkManySep.call(this,r,i,n)},e}(zh);Br.NextTerminalAfterManySepWalker=HIe;var GIe=function(t){Fl(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}return e.prototype.walkAtLeastOne=function(r,i,n){if(r.idx===this.occurrence){var s=(0,xt.first)(i.concat(n));this.result.isEndOfRule=s===void 0,s instanceof It.Terminal&&(this.result.token=s.terminalType,this.result.occurrence=s.idx)}else t.prototype.walkAtLeastOne.call(this,r,i,n)},e}(zh);Br.NextTerminalAfterAtLeastOneWalker=GIe;var jIe=function(t){Fl(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}return e.prototype.walkAtLeastOneSep=function(r,i,n){if(r.idx===this.occurrence){var s=(0,xt.first)(i.concat(n));this.result.isEndOfRule=s===void 0,s instanceof It.Terminal&&(this.result.token=s.terminalType,this.result.occurrence=s.idx)}else t.prototype.walkAtLeastOneSep.call(this,r,i,n)},e}(zh);Br.NextTerminalAfterAtLeastOneSepWalker=jIe;function rj(t,e,r){r===void 0&&(r=[]),r=(0,xt.cloneArr)(r);var i=[],n=0;function s(c){return c.concat((0,xt.drop)(t,n+1))}function o(c){var u=rj(s(c),e,r);return i.concat(u)}for(;r.length=0;W--){var X=I.definition[W],F={idx:p,def:X.definition.concat((0,xt.drop)(h)),ruleStack:d,occurrenceStack:m};g.push(F),g.push(o)}else if(I instanceof It.Alternative)g.push({idx:p,def:I.definition.concat((0,xt.drop)(h)),ruleStack:d,occurrenceStack:m});else if(I instanceof It.Rule)g.push(YIe(I,p,d,m));else throw Error("non exhaustive match")}}return u}Br.nextPossibleTokensAfter=qIe;function YIe(t,e,r,i){var n=(0,xt.cloneArr)(r);n.push(t.name);var s=(0,xt.cloneArr)(i);return s.push(1),{idx:e,def:t.definition,ruleStack:n,occurrenceStack:s}}});var _h=E(Gt=>{"use strict";var ij=Gt&&Gt.__extends||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();Object.defineProperty(Gt,"__esModule",{value:!0});Gt.areTokenCategoriesNotUsed=Gt.isStrictPrefixOfPath=Gt.containsPath=Gt.getLookaheadPathsForOptionalProd=Gt.getLookaheadPathsForOr=Gt.lookAheadSequenceFromAlternatives=Gt.buildSingleAlternativeLookaheadFunction=Gt.buildAlternativesLookAheadFunc=Gt.buildLookaheadFuncForOptionalProd=Gt.buildLookaheadFuncForOr=Gt.getProdType=Gt.PROD_TYPE=void 0;var _t=Dt(),nj=Vh(),JIe=EI(),bI=yu(),oA=hn(),WIe=wu(),zr;(function(t){t[t.OPTION=0]="OPTION",t[t.REPETITION=1]="REPETITION",t[t.REPETITION_MANDATORY=2]="REPETITION_MANDATORY",t[t.REPETITION_MANDATORY_WITH_SEPARATOR=3]="REPETITION_MANDATORY_WITH_SEPARATOR",t[t.REPETITION_WITH_SEPARATOR=4]="REPETITION_WITH_SEPARATOR",t[t.ALTERNATION=5]="ALTERNATION"})(zr=Gt.PROD_TYPE||(Gt.PROD_TYPE={}));function zIe(t){if(t instanceof oA.Option)return zr.OPTION;if(t instanceof oA.Repetition)return zr.REPETITION;if(t instanceof oA.RepetitionMandatory)return zr.REPETITION_MANDATORY;if(t instanceof oA.RepetitionMandatoryWithSeparator)return zr.REPETITION_MANDATORY_WITH_SEPARATOR;if(t instanceof oA.RepetitionWithSeparator)return zr.REPETITION_WITH_SEPARATOR;if(t instanceof oA.Alternation)return zr.ALTERNATION;throw Error("non exhaustive match")}Gt.getProdType=zIe;function VIe(t,e,r,i,n,s){var o=sj(t,e,r),a=nS(o)?bI.tokenStructuredMatcherNoCategories:bI.tokenStructuredMatcher;return s(o,i,a,n)}Gt.buildLookaheadFuncForOr=VIe;function _Ie(t,e,r,i,n,s){var o=oj(t,e,n,r),a=nS(o)?bI.tokenStructuredMatcherNoCategories:bI.tokenStructuredMatcher;return s(o[0],a,i)}Gt.buildLookaheadFuncForOptionalProd=_Ie;function XIe(t,e,r,i){var n=t.length,s=(0,_t.every)(t,function(l){return(0,_t.every)(l,function(c){return c.length===1})});if(e)return function(l){for(var c=(0,_t.map)(l,function(b){return b.GATE}),u=0;u{"use strict";var aS=Mt&&Mt.__extends||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();Object.defineProperty(Mt,"__esModule",{value:!0});Mt.checkPrefixAlternativesAmbiguities=Mt.validateSomeNonEmptyLookaheadPath=Mt.validateTooManyAlts=Mt.RepetionCollector=Mt.validateAmbiguousAlternationAlternatives=Mt.validateEmptyOrAlternative=Mt.getFirstNoneTerminal=Mt.validateNoLeftRecursion=Mt.validateRuleIsOverridden=Mt.validateRuleDoesNotAlreadyExist=Mt.OccurrenceValidationCollector=Mt.identifyProductionForDuplicates=Mt.validateGrammar=void 0;var jt=Dt(),Cr=Dt(),uo=Tn(),AS=Jh(),Qu=_h(),rye=Vh(),Fs=hn(),lS=wu();function sye(t,e,r,i,n){var s=jt.map(t,function(h){return iye(h,i)}),o=jt.map(t,function(h){return cS(h,h,i)}),a=[],l=[],c=[];(0,Cr.every)(o,Cr.isEmpty)&&(a=(0,Cr.map)(t,function(h){return uj(h,i)}),l=(0,Cr.map)(t,function(h){return gj(h,e,i)}),c=hj(t,e,i));var u=nye(t,r,i),g=(0,Cr.map)(t,function(h){return fj(h,i)}),f=(0,Cr.map)(t,function(h){return cj(h,t,n,i)});return jt.flatten(s.concat(c,o,a,l,u,g,f))}Mt.validateGrammar=sye;function iye(t,e){var r=new Cj;t.accept(r);var i=r.allProductions,n=jt.groupBy(i,pj),s=jt.pick(n,function(a){return a.length>1}),o=jt.map(jt.values(s),function(a){var l=jt.first(a),c=e.buildDuplicateFoundError(t,a),u=(0,AS.getProductionDslName)(l),g={message:c,type:uo.ParserDefinitionErrorType.DUPLICATE_PRODUCTIONS,ruleName:t.name,dslName:u,occurrence:l.idx},f=dj(l);return f&&(g.parameter=f),g});return o}function pj(t){return(0,AS.getProductionDslName)(t)+"_#_"+t.idx+"_#_"+dj(t)}Mt.identifyProductionForDuplicates=pj;function dj(t){return t instanceof Fs.Terminal?t.terminalType.name:t instanceof Fs.NonTerminal?t.nonTerminalName:""}var Cj=function(t){aS(e,t);function e(){var r=t!==null&&t.apply(this,arguments)||this;return r.allProductions=[],r}return e.prototype.visitNonTerminal=function(r){this.allProductions.push(r)},e.prototype.visitOption=function(r){this.allProductions.push(r)},e.prototype.visitRepetitionWithSeparator=function(r){this.allProductions.push(r)},e.prototype.visitRepetitionMandatory=function(r){this.allProductions.push(r)},e.prototype.visitRepetitionMandatoryWithSeparator=function(r){this.allProductions.push(r)},e.prototype.visitRepetition=function(r){this.allProductions.push(r)},e.prototype.visitAlternation=function(r){this.allProductions.push(r)},e.prototype.visitTerminal=function(r){this.allProductions.push(r)},e}(lS.GAstVisitor);Mt.OccurrenceValidationCollector=Cj;function cj(t,e,r,i){var n=[],s=(0,Cr.reduce)(e,function(a,l){return l.name===t.name?a+1:a},0);if(s>1){var o=i.buildDuplicateRuleNameError({topLevelRule:t,grammarName:r});n.push({message:o,type:uo.ParserDefinitionErrorType.DUPLICATE_RULE_NAME,ruleName:t.name})}return n}Mt.validateRuleDoesNotAlreadyExist=cj;function oye(t,e,r){var i=[],n;return jt.contains(e,t)||(n="Invalid rule override, rule: ->"+t+"<- cannot be overridden in the grammar: ->"+r+"<-as it is not defined in any of the super grammars ",i.push({message:n,type:uo.ParserDefinitionErrorType.INVALID_RULE_OVERRIDE,ruleName:t})),i}Mt.validateRuleIsOverridden=oye;function cS(t,e,r,i){i===void 0&&(i=[]);var n=[],s=Xh(e.definition);if(jt.isEmpty(s))return[];var o=t.name,a=jt.contains(s,t);a&&n.push({message:r.buildLeftRecursionError({topLevelRule:t,leftRecursionPath:i}),type:uo.ParserDefinitionErrorType.LEFT_RECURSION,ruleName:o});var l=jt.difference(s,i.concat([t])),c=jt.map(l,function(u){var g=jt.cloneArr(i);return g.push(u),cS(t,u,r,g)});return n.concat(jt.flatten(c))}Mt.validateNoLeftRecursion=cS;function Xh(t){var e=[];if(jt.isEmpty(t))return e;var r=jt.first(t);if(r instanceof Fs.NonTerminal)e.push(r.referencedRule);else if(r instanceof Fs.Alternative||r instanceof Fs.Option||r instanceof Fs.RepetitionMandatory||r instanceof Fs.RepetitionMandatoryWithSeparator||r instanceof Fs.RepetitionWithSeparator||r instanceof Fs.Repetition)e=e.concat(Xh(r.definition));else if(r instanceof Fs.Alternation)e=jt.flatten(jt.map(r.definition,function(o){return Xh(o.definition)}));else if(!(r instanceof Fs.Terminal))throw Error("non exhaustive match");var i=(0,AS.isOptionalProd)(r),n=t.length>1;if(i&&n){var s=jt.drop(t);return e.concat(Xh(s))}else return e}Mt.getFirstNoneTerminal=Xh;var uS=function(t){aS(e,t);function e(){var r=t!==null&&t.apply(this,arguments)||this;return r.alternations=[],r}return e.prototype.visitAlternation=function(r){this.alternations.push(r)},e}(lS.GAstVisitor);function uj(t,e){var r=new uS;t.accept(r);var i=r.alternations,n=jt.reduce(i,function(s,o){var a=jt.dropRight(o.definition),l=jt.map(a,function(c,u){var g=(0,rye.nextPossibleTokensAfter)([c],[],null,1);return jt.isEmpty(g)?{message:e.buildEmptyAlternationError({topLevelRule:t,alternation:o,emptyChoiceIdx:u}),type:uo.ParserDefinitionErrorType.NONE_LAST_EMPTY_ALT,ruleName:t.name,occurrence:o.idx,alternative:u+1}:null});return s.concat(jt.compact(l))},[]);return n}Mt.validateEmptyOrAlternative=uj;function gj(t,e,r){var i=new uS;t.accept(i);var n=i.alternations;n=(0,Cr.reject)(n,function(o){return o.ignoreAmbiguities===!0});var s=jt.reduce(n,function(o,a){var l=a.idx,c=a.maxLookahead||e,u=(0,Qu.getLookaheadPathsForOr)(l,t,c,a),g=aye(u,a,t,r),f=mj(u,a,t,r);return o.concat(g,f)},[]);return s}Mt.validateAmbiguousAlternationAlternatives=gj;var Ej=function(t){aS(e,t);function e(){var r=t!==null&&t.apply(this,arguments)||this;return r.allProductions=[],r}return e.prototype.visitRepetitionWithSeparator=function(r){this.allProductions.push(r)},e.prototype.visitRepetitionMandatory=function(r){this.allProductions.push(r)},e.prototype.visitRepetitionMandatoryWithSeparator=function(r){this.allProductions.push(r)},e.prototype.visitRepetition=function(r){this.allProductions.push(r)},e}(lS.GAstVisitor);Mt.RepetionCollector=Ej;function fj(t,e){var r=new uS;t.accept(r);var i=r.alternations,n=jt.reduce(i,function(s,o){return o.definition.length>255&&s.push({message:e.buildTooManyAlternativesError({topLevelRule:t,alternation:o}),type:uo.ParserDefinitionErrorType.TOO_MANY_ALTS,ruleName:t.name,occurrence:o.idx}),s},[]);return n}Mt.validateTooManyAlts=fj;function hj(t,e,r){var i=[];return(0,Cr.forEach)(t,function(n){var s=new Ej;n.accept(s);var o=s.allProductions;(0,Cr.forEach)(o,function(a){var l=(0,Qu.getProdType)(a),c=a.maxLookahead||e,u=a.idx,g=(0,Qu.getLookaheadPathsForOptionalProd)(u,n,l,c),f=g[0];if((0,Cr.isEmpty)((0,Cr.flatten)(f))){var h=r.buildEmptyRepetitionError({topLevelRule:n,repetition:a});i.push({message:h,type:uo.ParserDefinitionErrorType.NO_NON_EMPTY_LOOKAHEAD,ruleName:n.name})}})}),i}Mt.validateSomeNonEmptyLookaheadPath=hj;function aye(t,e,r,i){var n=[],s=(0,Cr.reduce)(t,function(a,l,c){return e.definition[c].ignoreAmbiguities===!0||(0,Cr.forEach)(l,function(u){var g=[c];(0,Cr.forEach)(t,function(f,h){c!==h&&(0,Qu.containsPath)(f,u)&&e.definition[h].ignoreAmbiguities!==!0&&g.push(h)}),g.length>1&&!(0,Qu.containsPath)(n,u)&&(n.push(u),a.push({alts:g,path:u}))}),a},[]),o=jt.map(s,function(a){var l=(0,Cr.map)(a.alts,function(u){return u+1}),c=i.buildAlternationAmbiguityError({topLevelRule:r,alternation:e,ambiguityIndices:l,prefixPath:a.path});return{message:c,type:uo.ParserDefinitionErrorType.AMBIGUOUS_ALTS,ruleName:r.name,occurrence:e.idx,alternatives:[a.alts]}});return o}function mj(t,e,r,i){var n=[],s=(0,Cr.reduce)(t,function(o,a,l){var c=(0,Cr.map)(a,function(u){return{idx:l,path:u}});return o.concat(c)},[]);return(0,Cr.forEach)(s,function(o){var a=e.definition[o.idx];if(a.ignoreAmbiguities!==!0){var l=o.idx,c=o.path,u=(0,Cr.findAll)(s,function(f){return e.definition[f.idx].ignoreAmbiguities!==!0&&f.idx{"use strict";Object.defineProperty(bu,"__esModule",{value:!0});bu.validateGrammar=bu.resolveGrammar=void 0;var fS=Dt(),Aye=$G(),lye=gS(),Ij=Wh();function cye(t){t=(0,fS.defaults)(t,{errMsgProvider:Ij.defaultGrammarResolverErrorProvider});var e={};return(0,fS.forEach)(t.rules,function(r){e[r.name]=r}),(0,Aye.resolveGrammar)(e,t.errMsgProvider)}bu.resolveGrammar=cye;function uye(t){return t=(0,fS.defaults)(t,{errMsgProvider:Ij.defaultGrammarValidatorErrorProvider}),(0,lye.validateGrammar)(t.rules,t.maxLookahead,t.tokenTypes,t.errMsgProvider,t.grammarName)}bu.validateGrammar=uye});var vu=E(dn=>{"use strict";var Zh=dn&&dn.__extends||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();Object.defineProperty(dn,"__esModule",{value:!0});dn.EarlyExitException=dn.NotAllInputParsedException=dn.NoViableAltException=dn.MismatchedTokenException=dn.isRecognitionException=void 0;var gye=Dt(),wj="MismatchedTokenException",Bj="NoViableAltException",Qj="EarlyExitException",bj="NotAllInputParsedException",vj=[wj,Bj,Qj,bj];Object.freeze(vj);function fye(t){return(0,gye.contains)(vj,t.name)}dn.isRecognitionException=fye;var vI=function(t){Zh(e,t);function e(r,i){var n=this.constructor,s=t.call(this,r)||this;return s.token=i,s.resyncedTokens=[],Object.setPrototypeOf(s,n.prototype),Error.captureStackTrace&&Error.captureStackTrace(s,s.constructor),s}return e}(Error),hye=function(t){Zh(e,t);function e(r,i,n){var s=t.call(this,r,i)||this;return s.previousToken=n,s.name=wj,s}return e}(vI);dn.MismatchedTokenException=hye;var pye=function(t){Zh(e,t);function e(r,i,n){var s=t.call(this,r,i)||this;return s.previousToken=n,s.name=Bj,s}return e}(vI);dn.NoViableAltException=pye;var dye=function(t){Zh(e,t);function e(r,i){var n=t.call(this,r,i)||this;return n.name=bj,n}return e}(vI);dn.NotAllInputParsedException=dye;var Cye=function(t){Zh(e,t);function e(r,i,n){var s=t.call(this,r,i)||this;return s.previousToken=n,s.name=Qj,s}return e}(vI);dn.EarlyExitException=Cye});var pS=E(xi=>{"use strict";Object.defineProperty(xi,"__esModule",{value:!0});xi.attemptInRepetitionRecovery=xi.Recoverable=xi.InRuleRecoveryException=xi.IN_RULE_RECOVERY_EXCEPTION=xi.EOF_FOLLOW_KEY=void 0;var SI=nA(),ts=Dt(),mye=vu(),Eye=rS(),Iye=Tn();xi.EOF_FOLLOW_KEY={};xi.IN_RULE_RECOVERY_EXCEPTION="InRuleRecoveryException";function hS(t){this.name=xi.IN_RULE_RECOVERY_EXCEPTION,this.message=t}xi.InRuleRecoveryException=hS;hS.prototype=Error.prototype;var yye=function(){function t(){}return t.prototype.initRecoverable=function(e){this.firstAfterRepMap={},this.resyncFollows={},this.recoveryEnabled=(0,ts.has)(e,"recoveryEnabled")?e.recoveryEnabled:Iye.DEFAULT_PARSER_CONFIG.recoveryEnabled,this.recoveryEnabled&&(this.attemptInRepetitionRecovery=Sj)},t.prototype.getTokenToInsert=function(e){var r=(0,SI.createTokenInstance)(e,"",NaN,NaN,NaN,NaN,NaN,NaN);return r.isInsertedInRecovery=!0,r},t.prototype.canTokenTypeBeInsertedInRecovery=function(e){return!0},t.prototype.tryInRepetitionRecovery=function(e,r,i,n){for(var s=this,o=this.findReSyncTokenType(),a=this.exportLexerState(),l=[],c=!1,u=this.LA(1),g=this.LA(1),f=function(){var h=s.LA(0),p=s.errorMessageProvider.buildMismatchTokenMessage({expected:n,actual:u,previous:h,ruleName:s.getCurrRuleFullName()}),d=new mye.MismatchedTokenException(p,u,s.LA(0));d.resyncedTokens=(0,ts.dropRight)(l),s.SAVE_ERROR(d)};!c;)if(this.tokenMatcher(g,n)){f();return}else if(i.call(this)){f(),e.apply(this,r);return}else this.tokenMatcher(g,o)?c=!0:(g=this.SKIP_TOKEN(),this.addToResyncTokens(g,l));this.importLexerState(a)},t.prototype.shouldInRepetitionRecoveryBeTried=function(e,r,i){return!(i===!1||e===void 0||r===void 0||this.tokenMatcher(this.LA(1),e)||this.isBackTracking()||this.canPerformInRuleRecovery(e,this.getFollowsForInRuleRecovery(e,r)))},t.prototype.getFollowsForInRuleRecovery=function(e,r){var i=this.getCurrentGrammarPath(e,r),n=this.getNextPossibleTokenTypes(i);return n},t.prototype.tryInRuleRecovery=function(e,r){if(this.canRecoverWithSingleTokenInsertion(e,r)){var i=this.getTokenToInsert(e);return i}if(this.canRecoverWithSingleTokenDeletion(e)){var n=this.SKIP_TOKEN();return this.consumeToken(),n}throw new hS("sad sad panda")},t.prototype.canPerformInRuleRecovery=function(e,r){return this.canRecoverWithSingleTokenInsertion(e,r)||this.canRecoverWithSingleTokenDeletion(e)},t.prototype.canRecoverWithSingleTokenInsertion=function(e,r){var i=this;if(!this.canTokenTypeBeInsertedInRecovery(e)||(0,ts.isEmpty)(r))return!1;var n=this.LA(1),s=(0,ts.find)(r,function(o){return i.tokenMatcher(n,o)})!==void 0;return s},t.prototype.canRecoverWithSingleTokenDeletion=function(e){var r=this.tokenMatcher(this.LA(2),e);return r},t.prototype.isInCurrentRuleReSyncSet=function(e){var r=this.getCurrFollowKey(),i=this.getFollowSetFromFollowKey(r);return(0,ts.contains)(i,e)},t.prototype.findReSyncTokenType=function(){for(var e=this.flattenFollowSet(),r=this.LA(1),i=2;;){var n=r.tokenType;if((0,ts.contains)(e,n))return n;r=this.LA(i),i++}},t.prototype.getCurrFollowKey=function(){if(this.RULE_STACK.length===1)return xi.EOF_FOLLOW_KEY;var e=this.getLastExplicitRuleShortName(),r=this.getLastExplicitRuleOccurrenceIndex(),i=this.getPreviousExplicitRuleShortName();return{ruleName:this.shortRuleNameToFullName(e),idxInCallingRule:r,inRule:this.shortRuleNameToFullName(i)}},t.prototype.buildFullFollowKeyStack=function(){var e=this,r=this.RULE_STACK,i=this.RULE_OCCURRENCE_STACK;return(0,ts.map)(r,function(n,s){return s===0?xi.EOF_FOLLOW_KEY:{ruleName:e.shortRuleNameToFullName(n),idxInCallingRule:i[s],inRule:e.shortRuleNameToFullName(r[s-1])}})},t.prototype.flattenFollowSet=function(){var e=this,r=(0,ts.map)(this.buildFullFollowKeyStack(),function(i){return e.getFollowSetFromFollowKey(i)});return(0,ts.flatten)(r)},t.prototype.getFollowSetFromFollowKey=function(e){if(e===xi.EOF_FOLLOW_KEY)return[SI.EOF];var r=e.ruleName+e.idxInCallingRule+Eye.IN+e.inRule;return this.resyncFollows[r]},t.prototype.addToResyncTokens=function(e,r){return this.tokenMatcher(e,SI.EOF)||r.push(e),r},t.prototype.reSyncTo=function(e){for(var r=[],i=this.LA(1);this.tokenMatcher(i,e)===!1;)i=this.SKIP_TOKEN(),this.addToResyncTokens(i,r);return(0,ts.dropRight)(r)},t.prototype.attemptInRepetitionRecovery=function(e,r,i,n,s,o,a){},t.prototype.getCurrentGrammarPath=function(e,r){var i=this.getHumanReadableRuleStack(),n=(0,ts.cloneArr)(this.RULE_OCCURRENCE_STACK),s={ruleStack:i,occurrenceStack:n,lastTok:e,lastTokOccurrence:r};return s},t.prototype.getHumanReadableRuleStack=function(){var e=this;return(0,ts.map)(this.RULE_STACK,function(r){return e.shortRuleNameToFullName(r)})},t}();xi.Recoverable=yye;function Sj(t,e,r,i,n,s,o){var a=this.getKeyForAutomaticLookahead(i,n),l=this.firstAfterRepMap[a];if(l===void 0){var c=this.getCurrRuleFullName(),u=this.getGAstProductions()[c],g=new s(u,n);l=g.startWalking(),this.firstAfterRepMap[a]=l}var f=l.token,h=l.occurrence,p=l.isEndOfRule;this.RULE_STACK.length===1&&p&&f===void 0&&(f=SI.EOF,h=1),this.shouldInRepetitionRecoveryBeTried(f,h,o)&&this.tryInRepetitionRecovery(t,e,r,f)}xi.attemptInRepetitionRecovery=Sj});var xI=E(Nt=>{"use strict";Object.defineProperty(Nt,"__esModule",{value:!0});Nt.getKeyForAutomaticLookahead=Nt.AT_LEAST_ONE_SEP_IDX=Nt.MANY_SEP_IDX=Nt.AT_LEAST_ONE_IDX=Nt.MANY_IDX=Nt.OPTION_IDX=Nt.OR_IDX=Nt.BITS_FOR_ALT_IDX=Nt.BITS_FOR_RULE_IDX=Nt.BITS_FOR_OCCURRENCE_IDX=Nt.BITS_FOR_METHOD_TYPE=void 0;Nt.BITS_FOR_METHOD_TYPE=4;Nt.BITS_FOR_OCCURRENCE_IDX=8;Nt.BITS_FOR_RULE_IDX=12;Nt.BITS_FOR_ALT_IDX=8;Nt.OR_IDX=1<{"use strict";Object.defineProperty(kI,"__esModule",{value:!0});kI.LooksAhead=void 0;var Aa=_h(),Ns=Dt(),xj=Tn(),la=xI(),Nl=Jh(),Bye=function(){function t(){}return t.prototype.initLooksAhead=function(e){this.dynamicTokensEnabled=(0,Ns.has)(e,"dynamicTokensEnabled")?e.dynamicTokensEnabled:xj.DEFAULT_PARSER_CONFIG.dynamicTokensEnabled,this.maxLookahead=(0,Ns.has)(e,"maxLookahead")?e.maxLookahead:xj.DEFAULT_PARSER_CONFIG.maxLookahead,this.lookAheadFuncsCache=(0,Ns.isES2015MapSupported)()?new Map:[],(0,Ns.isES2015MapSupported)()?(this.getLaFuncFromCache=this.getLaFuncFromMap,this.setLaFuncCache=this.setLaFuncCacheUsingMap):(this.getLaFuncFromCache=this.getLaFuncFromObj,this.setLaFuncCache=this.setLaFuncUsingObj)},t.prototype.preComputeLookaheadFunctions=function(e){var r=this;(0,Ns.forEach)(e,function(i){r.TRACE_INIT(i.name+" Rule Lookahead",function(){var n=(0,Nl.collectMethods)(i),s=n.alternation,o=n.repetition,a=n.option,l=n.repetitionMandatory,c=n.repetitionMandatoryWithSeparator,u=n.repetitionWithSeparator;(0,Ns.forEach)(s,function(g){var f=g.idx===0?"":g.idx;r.TRACE_INIT(""+(0,Nl.getProductionDslName)(g)+f,function(){var h=(0,Aa.buildLookaheadFuncForOr)(g.idx,i,g.maxLookahead||r.maxLookahead,g.hasPredicates,r.dynamicTokensEnabled,r.lookAheadBuilderForAlternatives),p=(0,la.getKeyForAutomaticLookahead)(r.fullRuleNameToShort[i.name],la.OR_IDX,g.idx);r.setLaFuncCache(p,h)})}),(0,Ns.forEach)(o,function(g){r.computeLookaheadFunc(i,g.idx,la.MANY_IDX,Aa.PROD_TYPE.REPETITION,g.maxLookahead,(0,Nl.getProductionDslName)(g))}),(0,Ns.forEach)(a,function(g){r.computeLookaheadFunc(i,g.idx,la.OPTION_IDX,Aa.PROD_TYPE.OPTION,g.maxLookahead,(0,Nl.getProductionDslName)(g))}),(0,Ns.forEach)(l,function(g){r.computeLookaheadFunc(i,g.idx,la.AT_LEAST_ONE_IDX,Aa.PROD_TYPE.REPETITION_MANDATORY,g.maxLookahead,(0,Nl.getProductionDslName)(g))}),(0,Ns.forEach)(c,function(g){r.computeLookaheadFunc(i,g.idx,la.AT_LEAST_ONE_SEP_IDX,Aa.PROD_TYPE.REPETITION_MANDATORY_WITH_SEPARATOR,g.maxLookahead,(0,Nl.getProductionDslName)(g))}),(0,Ns.forEach)(u,function(g){r.computeLookaheadFunc(i,g.idx,la.MANY_SEP_IDX,Aa.PROD_TYPE.REPETITION_WITH_SEPARATOR,g.maxLookahead,(0,Nl.getProductionDslName)(g))})})})},t.prototype.computeLookaheadFunc=function(e,r,i,n,s,o){var a=this;this.TRACE_INIT(""+o+(r===0?"":r),function(){var l=(0,Aa.buildLookaheadFuncForOptionalProd)(r,e,s||a.maxLookahead,a.dynamicTokensEnabled,n,a.lookAheadBuilderForOptional),c=(0,la.getKeyForAutomaticLookahead)(a.fullRuleNameToShort[e.name],i,r);a.setLaFuncCache(c,l)})},t.prototype.lookAheadBuilderForOptional=function(e,r,i){return(0,Aa.buildSingleAlternativeLookaheadFunction)(e,r,i)},t.prototype.lookAheadBuilderForAlternatives=function(e,r,i,n){return(0,Aa.buildAlternativesLookAheadFunc)(e,r,i,n)},t.prototype.getKeyForAutomaticLookahead=function(e,r){var i=this.getLastExplicitRuleShortName();return(0,la.getKeyForAutomaticLookahead)(i,e,r)},t.prototype.getLaFuncFromCache=function(e){},t.prototype.getLaFuncFromMap=function(e){return this.lookAheadFuncsCache.get(e)},t.prototype.getLaFuncFromObj=function(e){return this.lookAheadFuncsCache[e]},t.prototype.setLaFuncCache=function(e,r){},t.prototype.setLaFuncCacheUsingMap=function(e,r){this.lookAheadFuncsCache.set(e,r)},t.prototype.setLaFuncUsingObj=function(e,r){this.lookAheadFuncsCache[e]=r},t}();kI.LooksAhead=Bye});var Pj=E(go=>{"use strict";Object.defineProperty(go,"__esModule",{value:!0});go.addNoneTerminalToCst=go.addTerminalToCst=go.setNodeLocationFull=go.setNodeLocationOnlyOffset=void 0;function Qye(t,e){isNaN(t.startOffset)===!0?(t.startOffset=e.startOffset,t.endOffset=e.endOffset):t.endOffset{"use strict";Object.defineProperty(aA,"__esModule",{value:!0});aA.defineNameProp=aA.functionName=aA.classNameFromInstance=void 0;var xye=Dt();function kye(t){return Dj(t.constructor)}aA.classNameFromInstance=kye;var Rj="name";function Dj(t){var e=t.name;return e||"anonymous"}aA.functionName=Dj;function Pye(t,e){var r=Object.getOwnPropertyDescriptor(t,Rj);return(0,xye.isUndefined)(r)||r.configurable?(Object.defineProperty(t,Rj,{enumerable:!1,configurable:!0,writable:!1,value:e}),!0):!1}aA.defineNameProp=Pye});var Mj=E(mi=>{"use strict";Object.defineProperty(mi,"__esModule",{value:!0});mi.validateRedundantMethods=mi.validateMissingCstMethods=mi.validateVisitor=mi.CstVisitorDefinitionError=mi.createBaseVisitorConstructorWithDefaults=mi.createBaseSemanticVisitorConstructor=mi.defaultVisit=void 0;var rs=Dt(),$h=dS();function Fj(t,e){for(var r=(0,rs.keys)(t),i=r.length,n=0;n: - `+(""+s.join(` - -`).replace(/\n/g,` - `)))}}};return r.prototype=i,r.prototype.constructor=r,r._RULE_NAMES=e,r}mi.createBaseSemanticVisitorConstructor=Dye;function Rye(t,e,r){var i=function(){};(0,$h.defineNameProp)(i,t+"BaseSemanticsWithDefaults");var n=Object.create(r.prototype);return(0,rs.forEach)(e,function(s){n[s]=Fj}),i.prototype=n,i.prototype.constructor=i,i}mi.createBaseVisitorConstructorWithDefaults=Rye;var CS;(function(t){t[t.REDUNDANT_METHOD=0]="REDUNDANT_METHOD",t[t.MISSING_METHOD=1]="MISSING_METHOD"})(CS=mi.CstVisitorDefinitionError||(mi.CstVisitorDefinitionError={}));function Nj(t,e){var r=Lj(t,e),i=Tj(t,e);return r.concat(i)}mi.validateVisitor=Nj;function Lj(t,e){var r=(0,rs.map)(e,function(i){if(!(0,rs.isFunction)(t[i]))return{msg:"Missing visitor method: <"+i+"> on "+(0,$h.functionName)(t.constructor)+" CST Visitor.",type:CS.MISSING_METHOD,methodName:i}});return(0,rs.compact)(r)}mi.validateMissingCstMethods=Lj;var Fye=["constructor","visit","validateVisitor"];function Tj(t,e){var r=[];for(var i in t)(0,rs.isFunction)(t[i])&&!(0,rs.contains)(Fye,i)&&!(0,rs.contains)(e,i)&&r.push({msg:"Redundant visitor method: <"+i+"> on "+(0,$h.functionName)(t.constructor)+` CST Visitor -There is no Grammar Rule corresponding to this method's name. -`,type:CS.REDUNDANT_METHOD,methodName:i});return r}mi.validateRedundantMethods=Tj});var Kj=E(PI=>{"use strict";Object.defineProperty(PI,"__esModule",{value:!0});PI.TreeBuilder=void 0;var Su=Pj(),Ur=Dt(),Oj=Mj(),Nye=Tn(),Lye=function(){function t(){}return t.prototype.initTreeBuilder=function(e){if(this.CST_STACK=[],this.outputCst=e.outputCst,this.nodeLocationTracking=(0,Ur.has)(e,"nodeLocationTracking")?e.nodeLocationTracking:Nye.DEFAULT_PARSER_CONFIG.nodeLocationTracking,!this.outputCst)this.cstInvocationStateUpdate=Ur.NOOP,this.cstFinallyStateUpdate=Ur.NOOP,this.cstPostTerminal=Ur.NOOP,this.cstPostNonTerminal=Ur.NOOP,this.cstPostRule=Ur.NOOP;else if(/full/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=Su.setNodeLocationFull,this.setNodeLocationFromNode=Su.setNodeLocationFull,this.cstPostRule=Ur.NOOP,this.setInitialNodeLocation=this.setInitialNodeLocationFullRecovery):(this.setNodeLocationFromToken=Ur.NOOP,this.setNodeLocationFromNode=Ur.NOOP,this.cstPostRule=this.cstPostRuleFull,this.setInitialNodeLocation=this.setInitialNodeLocationFullRegular);else if(/onlyOffset/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=Su.setNodeLocationOnlyOffset,this.setNodeLocationFromNode=Su.setNodeLocationOnlyOffset,this.cstPostRule=Ur.NOOP,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRecovery):(this.setNodeLocationFromToken=Ur.NOOP,this.setNodeLocationFromNode=Ur.NOOP,this.cstPostRule=this.cstPostRuleOnlyOffset,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRegular);else if(/none/i.test(this.nodeLocationTracking))this.setNodeLocationFromToken=Ur.NOOP,this.setNodeLocationFromNode=Ur.NOOP,this.cstPostRule=Ur.NOOP,this.setInitialNodeLocation=Ur.NOOP;else throw Error('Invalid config option: "'+e.nodeLocationTracking+'"')},t.prototype.setInitialNodeLocationOnlyOffsetRecovery=function(e){e.location={startOffset:NaN,endOffset:NaN}},t.prototype.setInitialNodeLocationOnlyOffsetRegular=function(e){e.location={startOffset:this.LA(1).startOffset,endOffset:NaN}},t.prototype.setInitialNodeLocationFullRecovery=function(e){e.location={startOffset:NaN,startLine:NaN,startColumn:NaN,endOffset:NaN,endLine:NaN,endColumn:NaN}},t.prototype.setInitialNodeLocationFullRegular=function(e){var r=this.LA(1);e.location={startOffset:r.startOffset,startLine:r.startLine,startColumn:r.startColumn,endOffset:NaN,endLine:NaN,endColumn:NaN}},t.prototype.cstInvocationStateUpdate=function(e,r){var i={name:e,children:{}};this.setInitialNodeLocation(i),this.CST_STACK.push(i)},t.prototype.cstFinallyStateUpdate=function(){this.CST_STACK.pop()},t.prototype.cstPostRuleFull=function(e){var r=this.LA(0),i=e.location;i.startOffset<=r.startOffset?(i.endOffset=r.endOffset,i.endLine=r.endLine,i.endColumn=r.endColumn):(i.startOffset=NaN,i.startLine=NaN,i.startColumn=NaN)},t.prototype.cstPostRuleOnlyOffset=function(e){var r=this.LA(0),i=e.location;i.startOffset<=r.startOffset?i.endOffset=r.endOffset:i.startOffset=NaN},t.prototype.cstPostTerminal=function(e,r){var i=this.CST_STACK[this.CST_STACK.length-1];(0,Su.addTerminalToCst)(i,r,e),this.setNodeLocationFromToken(i.location,r)},t.prototype.cstPostNonTerminal=function(e,r){var i=this.CST_STACK[this.CST_STACK.length-1];(0,Su.addNoneTerminalToCst)(i,r,e),this.setNodeLocationFromNode(i.location,e.location)},t.prototype.getBaseCstVisitorConstructor=function(){if((0,Ur.isUndefined)(this.baseCstVisitorConstructor)){var e=(0,Oj.createBaseSemanticVisitorConstructor)(this.className,(0,Ur.keys)(this.gastProductionsCache));return this.baseCstVisitorConstructor=e,e}return this.baseCstVisitorConstructor},t.prototype.getBaseCstVisitorConstructorWithDefaults=function(){if((0,Ur.isUndefined)(this.baseCstVisitorWithDefaultsConstructor)){var e=(0,Oj.createBaseVisitorConstructorWithDefaults)(this.className,(0,Ur.keys)(this.gastProductionsCache),this.getBaseCstVisitorConstructor());return this.baseCstVisitorWithDefaultsConstructor=e,e}return this.baseCstVisitorWithDefaultsConstructor},t.prototype.getLastExplicitRuleShortName=function(){var e=this.RULE_STACK;return e[e.length-1]},t.prototype.getPreviousExplicitRuleShortName=function(){var e=this.RULE_STACK;return e[e.length-2]},t.prototype.getLastExplicitRuleOccurrenceIndex=function(){var e=this.RULE_OCCURRENCE_STACK;return e[e.length-1]},t}();PI.TreeBuilder=Lye});var Hj=E(DI=>{"use strict";Object.defineProperty(DI,"__esModule",{value:!0});DI.LexerAdapter=void 0;var Uj=Tn(),Tye=function(){function t(){}return t.prototype.initLexerAdapter=function(){this.tokVector=[],this.tokVectorLength=0,this.currIdx=-1},Object.defineProperty(t.prototype,"input",{get:function(){return this.tokVector},set:function(e){if(this.selfAnalysisDone!==!0)throw Error("Missing invocation at the end of the Parser's constructor.");this.reset(),this.tokVector=e,this.tokVectorLength=e.length},enumerable:!1,configurable:!0}),t.prototype.SKIP_TOKEN=function(){return this.currIdx<=this.tokVector.length-2?(this.consumeToken(),this.LA(1)):Uj.END_OF_FILE},t.prototype.LA=function(e){var r=this.currIdx+e;return r<0||this.tokVectorLength<=r?Uj.END_OF_FILE:this.tokVector[r]},t.prototype.consumeToken=function(){this.currIdx++},t.prototype.exportLexerState=function(){return this.currIdx},t.prototype.importLexerState=function(e){this.currIdx=e},t.prototype.resetLexerState=function(){this.currIdx=-1},t.prototype.moveToTerminatedState=function(){this.currIdx=this.tokVector.length-1},t.prototype.getLexerPosition=function(){return this.exportLexerState()},t}();DI.LexerAdapter=Tye});var jj=E(RI=>{"use strict";Object.defineProperty(RI,"__esModule",{value:!0});RI.RecognizerApi=void 0;var Gj=Dt(),Mye=vu(),mS=Tn(),Oye=Wh(),Kye=gS(),Uye=hn(),Hye=function(){function t(){}return t.prototype.ACTION=function(e){return e.call(this)},t.prototype.consume=function(e,r,i){return this.consumeInternal(r,e,i)},t.prototype.subrule=function(e,r,i){return this.subruleInternal(r,e,i)},t.prototype.option=function(e,r){return this.optionInternal(r,e)},t.prototype.or=function(e,r){return this.orInternal(r,e)},t.prototype.many=function(e,r){return this.manyInternal(e,r)},t.prototype.atLeastOne=function(e,r){return this.atLeastOneInternal(e,r)},t.prototype.CONSUME=function(e,r){return this.consumeInternal(e,0,r)},t.prototype.CONSUME1=function(e,r){return this.consumeInternal(e,1,r)},t.prototype.CONSUME2=function(e,r){return this.consumeInternal(e,2,r)},t.prototype.CONSUME3=function(e,r){return this.consumeInternal(e,3,r)},t.prototype.CONSUME4=function(e,r){return this.consumeInternal(e,4,r)},t.prototype.CONSUME5=function(e,r){return this.consumeInternal(e,5,r)},t.prototype.CONSUME6=function(e,r){return this.consumeInternal(e,6,r)},t.prototype.CONSUME7=function(e,r){return this.consumeInternal(e,7,r)},t.prototype.CONSUME8=function(e,r){return this.consumeInternal(e,8,r)},t.prototype.CONSUME9=function(e,r){return this.consumeInternal(e,9,r)},t.prototype.SUBRULE=function(e,r){return this.subruleInternal(e,0,r)},t.prototype.SUBRULE1=function(e,r){return this.subruleInternal(e,1,r)},t.prototype.SUBRULE2=function(e,r){return this.subruleInternal(e,2,r)},t.prototype.SUBRULE3=function(e,r){return this.subruleInternal(e,3,r)},t.prototype.SUBRULE4=function(e,r){return this.subruleInternal(e,4,r)},t.prototype.SUBRULE5=function(e,r){return this.subruleInternal(e,5,r)},t.prototype.SUBRULE6=function(e,r){return this.subruleInternal(e,6,r)},t.prototype.SUBRULE7=function(e,r){return this.subruleInternal(e,7,r)},t.prototype.SUBRULE8=function(e,r){return this.subruleInternal(e,8,r)},t.prototype.SUBRULE9=function(e,r){return this.subruleInternal(e,9,r)},t.prototype.OPTION=function(e){return this.optionInternal(e,0)},t.prototype.OPTION1=function(e){return this.optionInternal(e,1)},t.prototype.OPTION2=function(e){return this.optionInternal(e,2)},t.prototype.OPTION3=function(e){return this.optionInternal(e,3)},t.prototype.OPTION4=function(e){return this.optionInternal(e,4)},t.prototype.OPTION5=function(e){return this.optionInternal(e,5)},t.prototype.OPTION6=function(e){return this.optionInternal(e,6)},t.prototype.OPTION7=function(e){return this.optionInternal(e,7)},t.prototype.OPTION8=function(e){return this.optionInternal(e,8)},t.prototype.OPTION9=function(e){return this.optionInternal(e,9)},t.prototype.OR=function(e){return this.orInternal(e,0)},t.prototype.OR1=function(e){return this.orInternal(e,1)},t.prototype.OR2=function(e){return this.orInternal(e,2)},t.prototype.OR3=function(e){return this.orInternal(e,3)},t.prototype.OR4=function(e){return this.orInternal(e,4)},t.prototype.OR5=function(e){return this.orInternal(e,5)},t.prototype.OR6=function(e){return this.orInternal(e,6)},t.prototype.OR7=function(e){return this.orInternal(e,7)},t.prototype.OR8=function(e){return this.orInternal(e,8)},t.prototype.OR9=function(e){return this.orInternal(e,9)},t.prototype.MANY=function(e){this.manyInternal(0,e)},t.prototype.MANY1=function(e){this.manyInternal(1,e)},t.prototype.MANY2=function(e){this.manyInternal(2,e)},t.prototype.MANY3=function(e){this.manyInternal(3,e)},t.prototype.MANY4=function(e){this.manyInternal(4,e)},t.prototype.MANY5=function(e){this.manyInternal(5,e)},t.prototype.MANY6=function(e){this.manyInternal(6,e)},t.prototype.MANY7=function(e){this.manyInternal(7,e)},t.prototype.MANY8=function(e){this.manyInternal(8,e)},t.prototype.MANY9=function(e){this.manyInternal(9,e)},t.prototype.MANY_SEP=function(e){this.manySepFirstInternal(0,e)},t.prototype.MANY_SEP1=function(e){this.manySepFirstInternal(1,e)},t.prototype.MANY_SEP2=function(e){this.manySepFirstInternal(2,e)},t.prototype.MANY_SEP3=function(e){this.manySepFirstInternal(3,e)},t.prototype.MANY_SEP4=function(e){this.manySepFirstInternal(4,e)},t.prototype.MANY_SEP5=function(e){this.manySepFirstInternal(5,e)},t.prototype.MANY_SEP6=function(e){this.manySepFirstInternal(6,e)},t.prototype.MANY_SEP7=function(e){this.manySepFirstInternal(7,e)},t.prototype.MANY_SEP8=function(e){this.manySepFirstInternal(8,e)},t.prototype.MANY_SEP9=function(e){this.manySepFirstInternal(9,e)},t.prototype.AT_LEAST_ONE=function(e){this.atLeastOneInternal(0,e)},t.prototype.AT_LEAST_ONE1=function(e){return this.atLeastOneInternal(1,e)},t.prototype.AT_LEAST_ONE2=function(e){this.atLeastOneInternal(2,e)},t.prototype.AT_LEAST_ONE3=function(e){this.atLeastOneInternal(3,e)},t.prototype.AT_LEAST_ONE4=function(e){this.atLeastOneInternal(4,e)},t.prototype.AT_LEAST_ONE5=function(e){this.atLeastOneInternal(5,e)},t.prototype.AT_LEAST_ONE6=function(e){this.atLeastOneInternal(6,e)},t.prototype.AT_LEAST_ONE7=function(e){this.atLeastOneInternal(7,e)},t.prototype.AT_LEAST_ONE8=function(e){this.atLeastOneInternal(8,e)},t.prototype.AT_LEAST_ONE9=function(e){this.atLeastOneInternal(9,e)},t.prototype.AT_LEAST_ONE_SEP=function(e){this.atLeastOneSepFirstInternal(0,e)},t.prototype.AT_LEAST_ONE_SEP1=function(e){this.atLeastOneSepFirstInternal(1,e)},t.prototype.AT_LEAST_ONE_SEP2=function(e){this.atLeastOneSepFirstInternal(2,e)},t.prototype.AT_LEAST_ONE_SEP3=function(e){this.atLeastOneSepFirstInternal(3,e)},t.prototype.AT_LEAST_ONE_SEP4=function(e){this.atLeastOneSepFirstInternal(4,e)},t.prototype.AT_LEAST_ONE_SEP5=function(e){this.atLeastOneSepFirstInternal(5,e)},t.prototype.AT_LEAST_ONE_SEP6=function(e){this.atLeastOneSepFirstInternal(6,e)},t.prototype.AT_LEAST_ONE_SEP7=function(e){this.atLeastOneSepFirstInternal(7,e)},t.prototype.AT_LEAST_ONE_SEP8=function(e){this.atLeastOneSepFirstInternal(8,e)},t.prototype.AT_LEAST_ONE_SEP9=function(e){this.atLeastOneSepFirstInternal(9,e)},t.prototype.RULE=function(e,r,i){if(i===void 0&&(i=mS.DEFAULT_RULE_CONFIG),(0,Gj.contains)(this.definedRulesNames,e)){var n=Oye.defaultGrammarValidatorErrorProvider.buildDuplicateRuleNameError({topLevelRule:e,grammarName:this.className}),s={message:n,type:mS.ParserDefinitionErrorType.DUPLICATE_RULE_NAME,ruleName:e};this.definitionErrors.push(s)}this.definedRulesNames.push(e);var o=this.defineRule(e,r,i);return this[e]=o,o},t.prototype.OVERRIDE_RULE=function(e,r,i){i===void 0&&(i=mS.DEFAULT_RULE_CONFIG);var n=[];n=n.concat((0,Kye.validateRuleIsOverridden)(e,this.definedRulesNames,this.className)),this.definitionErrors=this.definitionErrors.concat(n);var s=this.defineRule(e,r,i);return this[e]=s,s},t.prototype.BACKTRACK=function(e,r){return function(){this.isBackTrackingStack.push(1);var i=this.saveRecogState();try{return e.apply(this,r),!0}catch(n){if((0,Mye.isRecognitionException)(n))return!1;throw n}finally{this.reloadRecogState(i),this.isBackTrackingStack.pop()}}},t.prototype.getGAstProductions=function(){return this.gastProductionsCache},t.prototype.getSerializedGastProductions=function(){return(0,Uye.serializeGrammar)((0,Gj.values)(this.gastProductionsCache))},t}();RI.RecognizerApi=Hye});var Wj=E(FI=>{"use strict";Object.defineProperty(FI,"__esModule",{value:!0});FI.RecognizerEngine=void 0;var Er=Dt(),Mn=xI(),NI=vu(),Yj=_h(),xu=Vh(),qj=Tn(),Gye=pS(),Jj=nA(),ep=yu(),jye=dS(),Yye=function(){function t(){}return t.prototype.initRecognizerEngine=function(e,r){if(this.className=(0,jye.classNameFromInstance)(this),this.shortRuleNameToFull={},this.fullRuleNameToShort={},this.ruleShortNameIdx=256,this.tokenMatcher=ep.tokenStructuredMatcherNoCategories,this.definedRulesNames=[],this.tokensMap={},this.isBackTrackingStack=[],this.RULE_STACK=[],this.RULE_OCCURRENCE_STACK=[],this.gastProductionsCache={},(0,Er.has)(r,"serializedGrammar"))throw Error(`The Parser's configuration can no longer contain a property. - See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_6-0-0 - For Further details.`);if((0,Er.isArray)(e)){if((0,Er.isEmpty)(e))throw Error(`A Token Vocabulary cannot be empty. - Note that the first argument for the parser constructor - is no longer a Token vector (since v4.0).`);if(typeof e[0].startOffset=="number")throw Error(`The Parser constructor no longer accepts a token vector as the first argument. - See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_4-0-0 - For Further details.`)}if((0,Er.isArray)(e))this.tokensMap=(0,Er.reduce)(e,function(o,a){return o[a.name]=a,o},{});else if((0,Er.has)(e,"modes")&&(0,Er.every)((0,Er.flatten)((0,Er.values)(e.modes)),ep.isTokenType)){var i=(0,Er.flatten)((0,Er.values)(e.modes)),n=(0,Er.uniq)(i);this.tokensMap=(0,Er.reduce)(n,function(o,a){return o[a.name]=a,o},{})}else if((0,Er.isObject)(e))this.tokensMap=(0,Er.cloneObj)(e);else throw new Error(" argument must be An Array of Token constructors, A dictionary of Token constructors or an IMultiModeLexerDefinition");this.tokensMap.EOF=Jj.EOF;var s=(0,Er.every)((0,Er.values)(e),function(o){return(0,Er.isEmpty)(o.categoryMatches)});this.tokenMatcher=s?ep.tokenStructuredMatcherNoCategories:ep.tokenStructuredMatcher,(0,ep.augmentTokenTypes)((0,Er.values)(this.tokensMap))},t.prototype.defineRule=function(e,r,i){if(this.selfAnalysisDone)throw Error("Grammar rule <"+e+`> may not be defined after the 'performSelfAnalysis' method has been called' -Make sure that all grammar rule definitions are done before 'performSelfAnalysis' is called.`);var n=(0,Er.has)(i,"resyncEnabled")?i.resyncEnabled:qj.DEFAULT_RULE_CONFIG.resyncEnabled,s=(0,Er.has)(i,"recoveryValueFunc")?i.recoveryValueFunc:qj.DEFAULT_RULE_CONFIG.recoveryValueFunc,o=this.ruleShortNameIdx<r},t.prototype.orInternal=function(e,r){var i=this.getKeyForAutomaticLookahead(Mn.OR_IDX,r),n=(0,Er.isArray)(e)?e:e.DEF,s=this.getLaFuncFromCache(i),o=s.call(this,n);if(o!==void 0){var a=n[o];return a.ALT.call(this)}this.raiseNoAltException(r,e.ERR_MSG)},t.prototype.ruleFinallyStateUpdate=function(){if(this.RULE_STACK.pop(),this.RULE_OCCURRENCE_STACK.pop(),this.cstFinallyStateUpdate(),this.RULE_STACK.length===0&&this.isAtEndOfInput()===!1){var e=this.LA(1),r=this.errorMessageProvider.buildNotAllInputParsedMessage({firstRedundant:e,ruleName:this.getCurrRuleFullName()});this.SAVE_ERROR(new NI.NotAllInputParsedException(r,e))}},t.prototype.subruleInternal=function(e,r,i){var n;try{var s=i!==void 0?i.ARGS:void 0;return n=e.call(this,r,s),this.cstPostNonTerminal(n,i!==void 0&&i.LABEL!==void 0?i.LABEL:e.ruleName),n}catch(o){this.subruleInternalError(o,i,e.ruleName)}},t.prototype.subruleInternalError=function(e,r,i){throw(0,NI.isRecognitionException)(e)&&e.partialCstResult!==void 0&&(this.cstPostNonTerminal(e.partialCstResult,r!==void 0&&r.LABEL!==void 0?r.LABEL:i),delete e.partialCstResult),e},t.prototype.consumeInternal=function(e,r,i){var n;try{var s=this.LA(1);this.tokenMatcher(s,e)===!0?(this.consumeToken(),n=s):this.consumeInternalError(e,s,i)}catch(o){n=this.consumeInternalRecovery(e,r,o)}return this.cstPostTerminal(i!==void 0&&i.LABEL!==void 0?i.LABEL:e.name,n),n},t.prototype.consumeInternalError=function(e,r,i){var n,s=this.LA(0);throw i!==void 0&&i.ERR_MSG?n=i.ERR_MSG:n=this.errorMessageProvider.buildMismatchTokenMessage({expected:e,actual:r,previous:s,ruleName:this.getCurrRuleFullName()}),this.SAVE_ERROR(new NI.MismatchedTokenException(n,r,s))},t.prototype.consumeInternalRecovery=function(e,r,i){if(this.recoveryEnabled&&i.name==="MismatchedTokenException"&&!this.isBackTracking()){var n=this.getFollowsForInRuleRecovery(e,r);try{return this.tryInRuleRecovery(e,n)}catch(s){throw s.name===Gye.IN_RULE_RECOVERY_EXCEPTION?i:s}}else throw i},t.prototype.saveRecogState=function(){var e=this.errors,r=(0,Er.cloneArr)(this.RULE_STACK);return{errors:e,lexerState:this.exportLexerState(),RULE_STACK:r,CST_STACK:this.CST_STACK}},t.prototype.reloadRecogState=function(e){this.errors=e.errors,this.importLexerState(e.lexerState),this.RULE_STACK=e.RULE_STACK},t.prototype.ruleInvocationStateUpdate=function(e,r,i){this.RULE_OCCURRENCE_STACK.push(i),this.RULE_STACK.push(e),this.cstInvocationStateUpdate(r,e)},t.prototype.isBackTracking=function(){return this.isBackTrackingStack.length!==0},t.prototype.getCurrRuleFullName=function(){var e=this.getLastExplicitRuleShortName();return this.shortRuleNameToFull[e]},t.prototype.shortRuleNameToFullName=function(e){return this.shortRuleNameToFull[e]},t.prototype.isAtEndOfInput=function(){return this.tokenMatcher(this.LA(1),Jj.EOF)},t.prototype.reset=function(){this.resetLexerState(),this.isBackTrackingStack=[],this.errors=[],this.RULE_STACK=[],this.CST_STACK=[],this.RULE_OCCURRENCE_STACK=[]},t}();FI.RecognizerEngine=Yye});var Vj=E(LI=>{"use strict";Object.defineProperty(LI,"__esModule",{value:!0});LI.ErrorHandler=void 0;var ES=vu(),IS=Dt(),zj=_h(),qye=Tn(),Jye=function(){function t(){}return t.prototype.initErrorHandler=function(e){this._errors=[],this.errorMessageProvider=(0,IS.has)(e,"errorMessageProvider")?e.errorMessageProvider:qye.DEFAULT_PARSER_CONFIG.errorMessageProvider},t.prototype.SAVE_ERROR=function(e){if((0,ES.isRecognitionException)(e))return e.context={ruleStack:this.getHumanReadableRuleStack(),ruleOccurrenceStack:(0,IS.cloneArr)(this.RULE_OCCURRENCE_STACK)},this._errors.push(e),e;throw Error("Trying to save an Error which is not a RecognitionException")},Object.defineProperty(t.prototype,"errors",{get:function(){return(0,IS.cloneArr)(this._errors)},set:function(e){this._errors=e},enumerable:!1,configurable:!0}),t.prototype.raiseEarlyExitException=function(e,r,i){for(var n=this.getCurrRuleFullName(),s=this.getGAstProductions()[n],o=(0,zj.getLookaheadPathsForOptionalProd)(e,s,r,this.maxLookahead),a=o[0],l=[],c=1;c<=this.maxLookahead;c++)l.push(this.LA(c));var u=this.errorMessageProvider.buildEarlyExitMessage({expectedIterationPaths:a,actual:l,previous:this.LA(0),customUserDescription:i,ruleName:n});throw this.SAVE_ERROR(new ES.EarlyExitException(u,this.LA(1),this.LA(0)))},t.prototype.raiseNoAltException=function(e,r){for(var i=this.getCurrRuleFullName(),n=this.getGAstProductions()[i],s=(0,zj.getLookaheadPathsForOr)(e,n,this.maxLookahead),o=[],a=1;a<=this.maxLookahead;a++)o.push(this.LA(a));var l=this.LA(0),c=this.errorMessageProvider.buildNoViableAltMessage({expectedPathsPerAlt:s,actual:o,previous:l,customUserDescription:r,ruleName:this.getCurrRuleFullName()});throw this.SAVE_ERROR(new ES.NoViableAltException(c,this.LA(1),l))},t}();LI.ErrorHandler=Jye});var Zj=E(TI=>{"use strict";Object.defineProperty(TI,"__esModule",{value:!0});TI.ContentAssist=void 0;var _j=Vh(),Xj=Dt(),Wye=function(){function t(){}return t.prototype.initContentAssist=function(){},t.prototype.computeContentAssist=function(e,r){var i=this.gastProductionsCache[e];if((0,Xj.isUndefined)(i))throw Error("Rule ->"+e+"<- does not exist in this grammar.");return(0,_j.nextPossibleTokensAfter)([i],r,this.tokenMatcher,this.maxLookahead)},t.prototype.getNextPossibleTokenTypes=function(e){var r=(0,Xj.first)(e.ruleStack),i=this.getGAstProductions(),n=i[r],s=new _j.NextAfterTokenWalker(n,e).startWalking();return s},t}();TI.ContentAssist=Wye});var oY=E(MI=>{"use strict";Object.defineProperty(MI,"__esModule",{value:!0});MI.GastRecorder=void 0;var Cn=Dt(),fo=hn(),zye=Gh(),$j=yu(),eY=nA(),Vye=Tn(),_ye=xI(),OI={description:"This Object indicates the Parser is during Recording Phase"};Object.freeze(OI);var tY=!0,rY=Math.pow(2,_ye.BITS_FOR_OCCURRENCE_IDX)-1,iY=(0,eY.createToken)({name:"RECORDING_PHASE_TOKEN",pattern:zye.Lexer.NA});(0,$j.augmentTokenTypes)([iY]);var nY=(0,eY.createTokenInstance)(iY,`This IToken indicates the Parser is in Recording Phase - See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`,-1,-1,-1,-1,-1,-1);Object.freeze(nY);var Xye={name:`This CSTNode indicates the Parser is in Recording Phase - See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`,children:{}},$ye=function(){function t(){}return t.prototype.initGastRecorder=function(e){this.recordingProdStack=[],this.RECORDING_PHASE=!1},t.prototype.enableRecording=function(){var e=this;this.RECORDING_PHASE=!0,this.TRACE_INIT("Enable Recording",function(){for(var r=function(n){var s=n>0?n:"";e["CONSUME"+s]=function(o,a){return this.consumeInternalRecord(o,n,a)},e["SUBRULE"+s]=function(o,a){return this.subruleInternalRecord(o,n,a)},e["OPTION"+s]=function(o){return this.optionInternalRecord(o,n)},e["OR"+s]=function(o){return this.orInternalRecord(o,n)},e["MANY"+s]=function(o){this.manyInternalRecord(n,o)},e["MANY_SEP"+s]=function(o){this.manySepFirstInternalRecord(n,o)},e["AT_LEAST_ONE"+s]=function(o){this.atLeastOneInternalRecord(n,o)},e["AT_LEAST_ONE_SEP"+s]=function(o){this.atLeastOneSepFirstInternalRecord(n,o)}},i=0;i<10;i++)r(i);e.consume=function(n,s,o){return this.consumeInternalRecord(s,n,o)},e.subrule=function(n,s,o){return this.subruleInternalRecord(s,n,o)},e.option=function(n,s){return this.optionInternalRecord(s,n)},e.or=function(n,s){return this.orInternalRecord(s,n)},e.many=function(n,s){this.manyInternalRecord(n,s)},e.atLeastOne=function(n,s){this.atLeastOneInternalRecord(n,s)},e.ACTION=e.ACTION_RECORD,e.BACKTRACK=e.BACKTRACK_RECORD,e.LA=e.LA_RECORD})},t.prototype.disableRecording=function(){var e=this;this.RECORDING_PHASE=!1,this.TRACE_INIT("Deleting Recording methods",function(){for(var r=0;r<10;r++){var i=r>0?r:"";delete e["CONSUME"+i],delete e["SUBRULE"+i],delete e["OPTION"+i],delete e["OR"+i],delete e["MANY"+i],delete e["MANY_SEP"+i],delete e["AT_LEAST_ONE"+i],delete e["AT_LEAST_ONE_SEP"+i]}delete e.consume,delete e.subrule,delete e.option,delete e.or,delete e.many,delete e.atLeastOne,delete e.ACTION,delete e.BACKTRACK,delete e.LA})},t.prototype.ACTION_RECORD=function(e){},t.prototype.BACKTRACK_RECORD=function(e,r){return function(){return!0}},t.prototype.LA_RECORD=function(e){return Vye.END_OF_FILE},t.prototype.topLevelRuleRecord=function(e,r){try{var i=new fo.Rule({definition:[],name:e});return i.name=e,this.recordingProdStack.push(i),r.call(this),this.recordingProdStack.pop(),i}catch(n){if(n.KNOWN_RECORDER_ERROR!==!0)try{n.message=n.message+` - This error was thrown during the "grammar recording phase" For more info see: - https://chevrotain.io/docs/guide/internals.html#grammar-recording`}catch(s){throw n}throw n}},t.prototype.optionInternalRecord=function(e,r){return tp.call(this,fo.Option,e,r)},t.prototype.atLeastOneInternalRecord=function(e,r){tp.call(this,fo.RepetitionMandatory,r,e)},t.prototype.atLeastOneSepFirstInternalRecord=function(e,r){tp.call(this,fo.RepetitionMandatoryWithSeparator,r,e,tY)},t.prototype.manyInternalRecord=function(e,r){tp.call(this,fo.Repetition,r,e)},t.prototype.manySepFirstInternalRecord=function(e,r){tp.call(this,fo.RepetitionWithSeparator,r,e,tY)},t.prototype.orInternalRecord=function(e,r){return Zye.call(this,e,r)},t.prototype.subruleInternalRecord=function(e,r,i){if(KI(r),!e||(0,Cn.has)(e,"ruleName")===!1){var n=new Error(" argument is invalid"+(" expecting a Parser method reference but got: <"+JSON.stringify(e)+">")+(` - inside top level rule: <`+this.recordingProdStack[0].name+">"));throw n.KNOWN_RECORDER_ERROR=!0,n}var s=(0,Cn.peek)(this.recordingProdStack),o=e.ruleName,a=new fo.NonTerminal({idx:r,nonTerminalName:o,label:i==null?void 0:i.LABEL,referencedRule:void 0});return s.definition.push(a),this.outputCst?Xye:OI},t.prototype.consumeInternalRecord=function(e,r,i){if(KI(r),!(0,$j.hasShortKeyProperty)(e)){var n=new Error(" argument is invalid"+(" expecting a TokenType reference but got: <"+JSON.stringify(e)+">")+(` - inside top level rule: <`+this.recordingProdStack[0].name+">"));throw n.KNOWN_RECORDER_ERROR=!0,n}var s=(0,Cn.peek)(this.recordingProdStack),o=new fo.Terminal({idx:r,terminalType:e,label:i==null?void 0:i.LABEL});return s.definition.push(o),nY},t}();MI.GastRecorder=$ye;function tp(t,e,r,i){i===void 0&&(i=!1),KI(r);var n=(0,Cn.peek)(this.recordingProdStack),s=(0,Cn.isFunction)(e)?e:e.DEF,o=new t({definition:[],idx:r});return i&&(o.separator=e.SEP),(0,Cn.has)(e,"MAX_LOOKAHEAD")&&(o.maxLookahead=e.MAX_LOOKAHEAD),this.recordingProdStack.push(o),s.call(this),n.definition.push(o),this.recordingProdStack.pop(),OI}function Zye(t,e){var r=this;KI(e);var i=(0,Cn.peek)(this.recordingProdStack),n=(0,Cn.isArray)(t)===!1,s=n===!1?t:t.DEF,o=new fo.Alternation({definition:[],idx:e,ignoreAmbiguities:n&&t.IGNORE_AMBIGUITIES===!0});(0,Cn.has)(t,"MAX_LOOKAHEAD")&&(o.maxLookahead=t.MAX_LOOKAHEAD);var a=(0,Cn.some)(s,function(l){return(0,Cn.isFunction)(l.GATE)});return o.hasPredicates=a,i.definition.push(o),(0,Cn.forEach)(s,function(l){var c=new fo.Alternative({definition:[]});o.definition.push(c),(0,Cn.has)(l,"IGNORE_AMBIGUITIES")?c.ignoreAmbiguities=l.IGNORE_AMBIGUITIES:(0,Cn.has)(l,"GATE")&&(c.ignoreAmbiguities=!0),r.recordingProdStack.push(c),l.ALT.call(r),r.recordingProdStack.pop()}),OI}function sY(t){return t===0?"":""+t}function KI(t){if(t<0||t>rY){var e=new Error("Invalid DSL Method idx value: <"+t+`> - `+("Idx value must be a none negative value smaller than "+(rY+1)));throw e.KNOWN_RECORDER_ERROR=!0,e}}});var AY=E(UI=>{"use strict";Object.defineProperty(UI,"__esModule",{value:!0});UI.PerformanceTracer=void 0;var aY=Dt(),ewe=Tn(),twe=function(){function t(){}return t.prototype.initPerformanceTracer=function(e){if((0,aY.has)(e,"traceInitPerf")){var r=e.traceInitPerf,i=typeof r=="number";this.traceInitMaxIdent=i?r:Infinity,this.traceInitPerf=i?r>0:r}else this.traceInitMaxIdent=0,this.traceInitPerf=ewe.DEFAULT_PARSER_CONFIG.traceInitPerf;this.traceInitIndent=-1},t.prototype.TRACE_INIT=function(e,r){if(this.traceInitPerf===!0){this.traceInitIndent++;var i=new Array(this.traceInitIndent+1).join(" ");this.traceInitIndent <"+e+">");var n=(0,aY.timer)(r),s=n.time,o=n.value,a=s>10?console.warn:console.log;return this.traceInitIndent time: "+s+"ms"),this.traceInitIndent--,o}else return r()},t}();UI.PerformanceTracer=twe});var lY=E(HI=>{"use strict";Object.defineProperty(HI,"__esModule",{value:!0});HI.applyMixins=void 0;function rwe(t,e){e.forEach(function(r){var i=r.prototype;Object.getOwnPropertyNames(i).forEach(function(n){if(n!=="constructor"){var s=Object.getOwnPropertyDescriptor(i,n);s&&(s.get||s.set)?Object.defineProperty(t.prototype,n,s):t.prototype[n]=r.prototype[n]}})})}HI.applyMixins=rwe});var Tn=E(or=>{"use strict";var cY=or&&or.__extends||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();Object.defineProperty(or,"__esModule",{value:!0});or.EmbeddedActionsParser=or.CstParser=or.Parser=or.EMPTY_ALT=or.ParserDefinitionErrorType=or.DEFAULT_RULE_CONFIG=or.DEFAULT_PARSER_CONFIG=or.END_OF_FILE=void 0;var Wi=Dt(),iwe=VG(),uY=nA(),gY=Wh(),fY=yj(),nwe=pS(),swe=kj(),owe=Kj(),awe=Hj(),Awe=jj(),lwe=Wj(),cwe=Vj(),uwe=Zj(),gwe=oY(),fwe=AY(),hwe=lY();or.END_OF_FILE=(0,uY.createTokenInstance)(uY.EOF,"",NaN,NaN,NaN,NaN,NaN,NaN);Object.freeze(or.END_OF_FILE);or.DEFAULT_PARSER_CONFIG=Object.freeze({recoveryEnabled:!1,maxLookahead:3,dynamicTokensEnabled:!1,outputCst:!0,errorMessageProvider:gY.defaultParserErrorProvider,nodeLocationTracking:"none",traceInitPerf:!1,skipValidations:!1});or.DEFAULT_RULE_CONFIG=Object.freeze({recoveryValueFunc:function(){},resyncEnabled:!0});var pwe;(function(t){t[t.INVALID_RULE_NAME=0]="INVALID_RULE_NAME",t[t.DUPLICATE_RULE_NAME=1]="DUPLICATE_RULE_NAME",t[t.INVALID_RULE_OVERRIDE=2]="INVALID_RULE_OVERRIDE",t[t.DUPLICATE_PRODUCTIONS=3]="DUPLICATE_PRODUCTIONS",t[t.UNRESOLVED_SUBRULE_REF=4]="UNRESOLVED_SUBRULE_REF",t[t.LEFT_RECURSION=5]="LEFT_RECURSION",t[t.NONE_LAST_EMPTY_ALT=6]="NONE_LAST_EMPTY_ALT",t[t.AMBIGUOUS_ALTS=7]="AMBIGUOUS_ALTS",t[t.CONFLICT_TOKENS_RULES_NAMESPACE=8]="CONFLICT_TOKENS_RULES_NAMESPACE",t[t.INVALID_TOKEN_NAME=9]="INVALID_TOKEN_NAME",t[t.NO_NON_EMPTY_LOOKAHEAD=10]="NO_NON_EMPTY_LOOKAHEAD",t[t.AMBIGUOUS_PREFIX_ALTS=11]="AMBIGUOUS_PREFIX_ALTS",t[t.TOO_MANY_ALTS=12]="TOO_MANY_ALTS"})(pwe=or.ParserDefinitionErrorType||(or.ParserDefinitionErrorType={}));function dwe(t){return t===void 0&&(t=void 0),function(){return t}}or.EMPTY_ALT=dwe;var GI=function(){function t(e,r){this.definitionErrors=[],this.selfAnalysisDone=!1;var i=this;if(i.initErrorHandler(r),i.initLexerAdapter(),i.initLooksAhead(r),i.initRecognizerEngine(e,r),i.initRecoverable(r),i.initTreeBuilder(r),i.initContentAssist(),i.initGastRecorder(r),i.initPerformanceTracer(r),(0,Wi.has)(r,"ignoredIssues"))throw new Error(`The IParserConfig property has been deprecated. - Please use the flag on the relevant DSL method instead. - See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#IGNORING_AMBIGUITIES - For further details.`);this.skipValidations=(0,Wi.has)(r,"skipValidations")?r.skipValidations:or.DEFAULT_PARSER_CONFIG.skipValidations}return t.performSelfAnalysis=function(e){throw Error("The **static** `performSelfAnalysis` method has been deprecated. \nUse the **instance** method with the same name instead.")},t.prototype.performSelfAnalysis=function(){var e=this;this.TRACE_INIT("performSelfAnalysis",function(){var r;e.selfAnalysisDone=!0;var i=e.className;e.TRACE_INIT("toFastProps",function(){(0,Wi.toFastProperties)(e)}),e.TRACE_INIT("Grammar Recording",function(){try{e.enableRecording(),(0,Wi.forEach)(e.definedRulesNames,function(s){var o=e[s],a=o.originalGrammarAction,l=void 0;e.TRACE_INIT(s+" Rule",function(){l=e.topLevelRuleRecord(s,a)}),e.gastProductionsCache[s]=l})}finally{e.disableRecording()}});var n=[];if(e.TRACE_INIT("Grammar Resolving",function(){n=(0,fY.resolveGrammar)({rules:(0,Wi.values)(e.gastProductionsCache)}),e.definitionErrors=e.definitionErrors.concat(n)}),e.TRACE_INIT("Grammar Validations",function(){if((0,Wi.isEmpty)(n)&&e.skipValidations===!1){var s=(0,fY.validateGrammar)({rules:(0,Wi.values)(e.gastProductionsCache),maxLookahead:e.maxLookahead,tokenTypes:(0,Wi.values)(e.tokensMap),errMsgProvider:gY.defaultGrammarValidatorErrorProvider,grammarName:i});e.definitionErrors=e.definitionErrors.concat(s)}}),(0,Wi.isEmpty)(e.definitionErrors)&&(e.recoveryEnabled&&e.TRACE_INIT("computeAllProdsFollows",function(){var s=(0,iwe.computeAllProdsFollows)((0,Wi.values)(e.gastProductionsCache));e.resyncFollows=s}),e.TRACE_INIT("ComputeLookaheadFunctions",function(){e.preComputeLookaheadFunctions((0,Wi.values)(e.gastProductionsCache))})),!t.DEFER_DEFINITION_ERRORS_HANDLING&&!(0,Wi.isEmpty)(e.definitionErrors))throw r=(0,Wi.map)(e.definitionErrors,function(s){return s.message}),new Error(`Parser Definition Errors detected: - `+r.join(` -------------------------------- -`))})},t.DEFER_DEFINITION_ERRORS_HANDLING=!1,t}();or.Parser=GI;(0,hwe.applyMixins)(GI,[nwe.Recoverable,swe.LooksAhead,owe.TreeBuilder,awe.LexerAdapter,lwe.RecognizerEngine,Awe.RecognizerApi,cwe.ErrorHandler,uwe.ContentAssist,gwe.GastRecorder,fwe.PerformanceTracer]);var Cwe=function(t){cY(e,t);function e(r,i){i===void 0&&(i=or.DEFAULT_PARSER_CONFIG);var n=this,s=(0,Wi.cloneObj)(i);return s.outputCst=!0,n=t.call(this,r,s)||this,n}return e}(GI);or.CstParser=Cwe;var mwe=function(t){cY(e,t);function e(r,i){i===void 0&&(i=or.DEFAULT_PARSER_CONFIG);var n=this,s=(0,Wi.cloneObj)(i);return s.outputCst=!1,n=t.call(this,r,s)||this,n}return e}(GI);or.EmbeddedActionsParser=mwe});var pY=E(jI=>{"use strict";Object.defineProperty(jI,"__esModule",{value:!0});jI.createSyntaxDiagramsCode=void 0;var hY=Uv();function Ewe(t,e){var r=e===void 0?{}:e,i=r.resourceBase,n=i===void 0?"https://unpkg.com/chevrotain@"+hY.VERSION+"/diagrams/":i,s=r.css,o=s===void 0?"https://unpkg.com/chevrotain@"+hY.VERSION+"/diagrams/diagrams.css":s,a=` - - - - - -`,l=` - -`,c=` - - - - -`,u=` -

              -`,g=` - -`,f=` - -`;return a+l+c+u+g+f}jI.createSyntaxDiagramsCode=Ewe});var mY=E(He=>{"use strict";Object.defineProperty(He,"__esModule",{value:!0});He.Parser=He.createSyntaxDiagramsCode=He.clearCache=He.GAstVisitor=He.serializeProduction=He.serializeGrammar=He.Terminal=He.Rule=He.RepetitionWithSeparator=He.RepetitionMandatoryWithSeparator=He.RepetitionMandatory=He.Repetition=He.Option=He.NonTerminal=He.Alternative=He.Alternation=He.defaultLexerErrorProvider=He.NoViableAltException=He.NotAllInputParsedException=He.MismatchedTokenException=He.isRecognitionException=He.EarlyExitException=He.defaultParserErrorProvider=He.tokenName=He.tokenMatcher=He.tokenLabel=He.EOF=He.createTokenInstance=He.createToken=He.LexerDefinitionErrorType=He.Lexer=He.EMPTY_ALT=He.ParserDefinitionErrorType=He.EmbeddedActionsParser=He.CstParser=He.VERSION=void 0;var Iwe=Uv();Object.defineProperty(He,"VERSION",{enumerable:!0,get:function(){return Iwe.VERSION}});var YI=Tn();Object.defineProperty(He,"CstParser",{enumerable:!0,get:function(){return YI.CstParser}});Object.defineProperty(He,"EmbeddedActionsParser",{enumerable:!0,get:function(){return YI.EmbeddedActionsParser}});Object.defineProperty(He,"ParserDefinitionErrorType",{enumerable:!0,get:function(){return YI.ParserDefinitionErrorType}});Object.defineProperty(He,"EMPTY_ALT",{enumerable:!0,get:function(){return YI.EMPTY_ALT}});var dY=Gh();Object.defineProperty(He,"Lexer",{enumerable:!0,get:function(){return dY.Lexer}});Object.defineProperty(He,"LexerDefinitionErrorType",{enumerable:!0,get:function(){return dY.LexerDefinitionErrorType}});var ku=nA();Object.defineProperty(He,"createToken",{enumerable:!0,get:function(){return ku.createToken}});Object.defineProperty(He,"createTokenInstance",{enumerable:!0,get:function(){return ku.createTokenInstance}});Object.defineProperty(He,"EOF",{enumerable:!0,get:function(){return ku.EOF}});Object.defineProperty(He,"tokenLabel",{enumerable:!0,get:function(){return ku.tokenLabel}});Object.defineProperty(He,"tokenMatcher",{enumerable:!0,get:function(){return ku.tokenMatcher}});Object.defineProperty(He,"tokenName",{enumerable:!0,get:function(){return ku.tokenName}});var ywe=Wh();Object.defineProperty(He,"defaultParserErrorProvider",{enumerable:!0,get:function(){return ywe.defaultParserErrorProvider}});var rp=vu();Object.defineProperty(He,"EarlyExitException",{enumerable:!0,get:function(){return rp.EarlyExitException}});Object.defineProperty(He,"isRecognitionException",{enumerable:!0,get:function(){return rp.isRecognitionException}});Object.defineProperty(He,"MismatchedTokenException",{enumerable:!0,get:function(){return rp.MismatchedTokenException}});Object.defineProperty(He,"NotAllInputParsedException",{enumerable:!0,get:function(){return rp.NotAllInputParsedException}});Object.defineProperty(He,"NoViableAltException",{enumerable:!0,get:function(){return rp.NoViableAltException}});var wwe=_v();Object.defineProperty(He,"defaultLexerErrorProvider",{enumerable:!0,get:function(){return wwe.defaultLexerErrorProvider}});var ho=hn();Object.defineProperty(He,"Alternation",{enumerable:!0,get:function(){return ho.Alternation}});Object.defineProperty(He,"Alternative",{enumerable:!0,get:function(){return ho.Alternative}});Object.defineProperty(He,"NonTerminal",{enumerable:!0,get:function(){return ho.NonTerminal}});Object.defineProperty(He,"Option",{enumerable:!0,get:function(){return ho.Option}});Object.defineProperty(He,"Repetition",{enumerable:!0,get:function(){return ho.Repetition}});Object.defineProperty(He,"RepetitionMandatory",{enumerable:!0,get:function(){return ho.RepetitionMandatory}});Object.defineProperty(He,"RepetitionMandatoryWithSeparator",{enumerable:!0,get:function(){return ho.RepetitionMandatoryWithSeparator}});Object.defineProperty(He,"RepetitionWithSeparator",{enumerable:!0,get:function(){return ho.RepetitionWithSeparator}});Object.defineProperty(He,"Rule",{enumerable:!0,get:function(){return ho.Rule}});Object.defineProperty(He,"Terminal",{enumerable:!0,get:function(){return ho.Terminal}});var CY=hn();Object.defineProperty(He,"serializeGrammar",{enumerable:!0,get:function(){return CY.serializeGrammar}});Object.defineProperty(He,"serializeProduction",{enumerable:!0,get:function(){return CY.serializeProduction}});var Bwe=wu();Object.defineProperty(He,"GAstVisitor",{enumerable:!0,get:function(){return Bwe.GAstVisitor}});function Qwe(){console.warn(`The clearCache function was 'soft' removed from the Chevrotain API. - It performs no action other than printing this message. - Please avoid using it as it will be completely removed in the future`)}He.clearCache=Qwe;var bwe=pY();Object.defineProperty(He,"createSyntaxDiagramsCode",{enumerable:!0,get:function(){return bwe.createSyntaxDiagramsCode}});var vwe=function(){function t(){throw new Error(`The Parser class has been deprecated, use CstParser or EmbeddedActionsParser instead. -See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_7-0-0`)}return t}();He.Parser=vwe});var yY=E((Trt,EY)=>{var qI=mY(),ca=qI.createToken,IY=qI.tokenMatcher,yS=qI.Lexer,Swe=qI.EmbeddedActionsParser;EY.exports=t=>{let e=ca({name:"LogicalOperator",pattern:yS.NA}),r=ca({name:"Or",pattern:/\|/,categories:e}),i=ca({name:"Xor",pattern:/\^/,categories:e}),n=ca({name:"And",pattern:/&/,categories:e}),s=ca({name:"Not",pattern:/!/}),o=ca({name:"LParen",pattern:/\(/}),a=ca({name:"RParen",pattern:/\)/}),l=ca({name:"Query",pattern:t}),u=[ca({name:"WhiteSpace",pattern:/\s+/,group:yS.SKIPPED}),r,i,n,o,a,s,e,l],g=new yS(u);class f extends Swe{constructor(p){super(u);this.RULE("expression",()=>this.SUBRULE(this.logicalExpression)),this.RULE("logicalExpression",()=>{let m=this.SUBRULE(this.atomicExpression);return this.MANY(()=>{let I=m,B=this.CONSUME(e),b=this.SUBRULE2(this.atomicExpression);IY(B,r)?m=R=>I(R)||b(R):IY(B,i)?m=R=>!!(I(R)^b(R)):m=R=>I(R)&&b(R)}),m}),this.RULE("atomicExpression",()=>this.OR([{ALT:()=>this.SUBRULE(this.parenthesisExpression)},{ALT:()=>{let{image:d}=this.CONSUME(l);return m=>m(d)}},{ALT:()=>{this.CONSUME(s);let d=this.SUBRULE(this.atomicExpression);return m=>!d(m)}}])),this.RULE("parenthesisExpression",()=>{let d;return this.CONSUME(o),d=this.SUBRULE(this.expression),this.CONSUME(a),d}),this.performSelfAnalysis()}}return{TinylogicLexer:g,TinylogicParser:f}}});var wY=E(JI=>{var xwe=yY();JI.makeParser=(t=/[a-z]+/)=>{let{TinylogicLexer:e,TinylogicParser:r}=xwe(t),i=new r;return(n,s)=>{let o=e.tokenize(n);return i.input=o.tokens,i.expression()(s)}};JI.parse=JI.makeParser()});var QY=E((Ort,BY)=>{"use strict";BY.exports=(...t)=>[...new Set([].concat(...t))]});var wS=E((Krt,bY)=>{"use strict";var kwe=require("stream"),vY=kwe.PassThrough,Pwe=Array.prototype.slice;bY.exports=Dwe;function Dwe(){let t=[],e=!1,r=Pwe.call(arguments),i=r[r.length-1];i&&!Array.isArray(i)&&i.pipe==null?r.pop():i={};let n=i.end!==!1;i.objectMode==null&&(i.objectMode=!0),i.highWaterMark==null&&(i.highWaterMark=64*1024);let s=vY(i);function o(){for(let c=0,u=arguments.length;c0||(e=!1,a())}function f(h){function p(){h.removeListener("merge2UnpipeEnd",p),h.removeListener("end",p),g()}if(h._readableState.endEmitted)return g();h.on("merge2UnpipeEnd",p),h.on("end",p),h.pipe(s,{end:!1}),h.resume()}for(let h=0;h{"use strict";Object.defineProperty(WI,"__esModule",{value:!0});function Rwe(t){return t.reduce((e,r)=>[].concat(e,r),[])}WI.flatten=Rwe;function Fwe(t,e){let r=[[]],i=0;for(let n of t)e(n)?(i++,r[i]=[]):r[i].push(n);return r}WI.splitWhen=Fwe});var kY=E(BS=>{"use strict";Object.defineProperty(BS,"__esModule",{value:!0});function Nwe(t){return t.code==="ENOENT"}BS.isEnoentCodeError=Nwe});var DY=E(QS=>{"use strict";Object.defineProperty(QS,"__esModule",{value:!0});var PY=class{constructor(e,r){this.name=e,this.isBlockDevice=r.isBlockDevice.bind(r),this.isCharacterDevice=r.isCharacterDevice.bind(r),this.isDirectory=r.isDirectory.bind(r),this.isFIFO=r.isFIFO.bind(r),this.isFile=r.isFile.bind(r),this.isSocket=r.isSocket.bind(r),this.isSymbolicLink=r.isSymbolicLink.bind(r)}};function Lwe(t,e){return new PY(t,e)}QS.createDirentFromStats=Lwe});var RY=E(Pu=>{"use strict";Object.defineProperty(Pu,"__esModule",{value:!0});var Twe=require("path"),Mwe=2,Owe=/(\\?)([()*?[\]{|}]|^!|[!+@](?=\())/g;function Kwe(t){return t.replace(/\\/g,"/")}Pu.unixify=Kwe;function Uwe(t,e){return Twe.resolve(t,e)}Pu.makeAbsolute=Uwe;function Hwe(t){return t.replace(Owe,"\\$2")}Pu.escape=Hwe;function Gwe(t){if(t.charAt(0)==="."){let e=t.charAt(1);if(e==="/"||e==="\\")return t.slice(Mwe)}return t}Pu.removeLeadingDotSegment=Gwe});var NY=E((Yrt,FY)=>{FY.exports=function(e){if(typeof e!="string"||e==="")return!1;for(var r;r=/(\\).|([@?!+*]\(.*\))/g.exec(e);){if(r[2])return!0;e=e.slice(r.index+r[0].length)}return!1}});var TY=E((qrt,LY)=>{var jwe=NY(),Ywe={"{":"}","(":")","[":"]"},qwe=/\\(.)|(^!|\*|[\].+)]\?|\[[^\\\]]+\]|\{[^\\}]+\}|\(\?[:!=][^\\)]+\)|\([^|]+\|[^\\)]+\))/,Jwe=/\\(.)|(^!|[*?{}()[\]]|\(\?)/;LY.exports=function(e,r){if(typeof e!="string"||e==="")return!1;if(jwe(e))return!0;var i=qwe,n;for(r&&r.strict===!1&&(i=Jwe);n=i.exec(e);){if(n[2])return!0;var s=n.index+n[0].length,o=n[1],a=o?Ywe[o]:null;if(o&&a){var l=e.indexOf(a,s);l!==-1&&(s=l+1)}e=e.slice(s)}return!1}});var OY=E((Jrt,MY)=>{"use strict";var Wwe=TY(),zwe=require("path").posix.dirname,Vwe=require("os").platform()==="win32",bS="/",_we=/\\/g,Xwe=/[\{\[].*[\}\]]$/,Zwe=/(^|[^\\])([\{\[]|\([^\)]+$)/,$we=/\\([\!\*\?\|\[\]\(\)\{\}])/g;MY.exports=function(e,r){var i=Object.assign({flipBackslashes:!0},r);i.flipBackslashes&&Vwe&&e.indexOf(bS)<0&&(e=e.replace(_we,bS)),Xwe.test(e)&&(e+=bS),e+="a";do e=zwe(e);while(Wwe(e)||Zwe.test(e));return e.replace($we,"$1")}});var WY=E(Hr=>{"use strict";Object.defineProperty(Hr,"__esModule",{value:!0});var eBe=require("path"),tBe=OY(),KY=Nn(),rBe=iv(),UY="**",iBe="\\",nBe=/[*?]|^!/,sBe=/\[.*]/,oBe=/(?:^|[^!*+?@])\(.*\|.*\)/,aBe=/[!*+?@]\(.*\)/,ABe=/{.*(?:,|\.\.).*}/;function GY(t,e={}){return!HY(t,e)}Hr.isStaticPattern=GY;function HY(t,e={}){return!!(e.caseSensitiveMatch===!1||t.includes(iBe)||nBe.test(t)||sBe.test(t)||oBe.test(t)||e.extglob!==!1&&aBe.test(t)||e.braceExpansion!==!1&&ABe.test(t))}Hr.isDynamicPattern=HY;function lBe(t){return zI(t)?t.slice(1):t}Hr.convertToPositivePattern=lBe;function cBe(t){return"!"+t}Hr.convertToNegativePattern=cBe;function zI(t){return t.startsWith("!")&&t[1]!=="("}Hr.isNegativePattern=zI;function jY(t){return!zI(t)}Hr.isPositivePattern=jY;function uBe(t){return t.filter(zI)}Hr.getNegativePatterns=uBe;function gBe(t){return t.filter(jY)}Hr.getPositivePatterns=gBe;function fBe(t){return tBe(t,{flipBackslashes:!1})}Hr.getBaseDirectory=fBe;function hBe(t){return t.includes(UY)}Hr.hasGlobStar=hBe;function YY(t){return t.endsWith("/"+UY)}Hr.endsWithSlashGlobStar=YY;function pBe(t){let e=eBe.basename(t);return YY(t)||GY(e)}Hr.isAffectDepthOfReadingPattern=pBe;function dBe(t){return t.reduce((e,r)=>e.concat(qY(r)),[])}Hr.expandPatternsWithBraceExpansion=dBe;function qY(t){return KY.braces(t,{expand:!0,nodupes:!0})}Hr.expandBraceExpansion=qY;function CBe(t,e){let r=rBe.scan(t,Object.assign(Object.assign({},e),{parts:!0}));return r.parts.length===0?[t]:r.parts}Hr.getPatternParts=CBe;function JY(t,e){return KY.makeRe(t,e)}Hr.makeRe=JY;function mBe(t,e){return t.map(r=>JY(r,e))}Hr.convertPatternsToRe=mBe;function EBe(t,e){return e.some(r=>r.test(t))}Hr.matchAny=EBe});var VY=E(vS=>{"use strict";Object.defineProperty(vS,"__esModule",{value:!0});var IBe=wS();function yBe(t){let e=IBe(t);return t.forEach(r=>{r.once("error",i=>e.emit("error",i))}),e.once("close",()=>zY(t)),e.once("end",()=>zY(t)),e}vS.merge=yBe;function zY(t){t.forEach(e=>e.emit("close"))}});var _Y=E(VI=>{"use strict";Object.defineProperty(VI,"__esModule",{value:!0});function wBe(t){return typeof t=="string"}VI.isString=wBe;function BBe(t){return t===""}VI.isEmpty=BBe});var ga=E(ua=>{"use strict";Object.defineProperty(ua,"__esModule",{value:!0});var QBe=xY();ua.array=QBe;var bBe=kY();ua.errno=bBe;var vBe=DY();ua.fs=vBe;var SBe=RY();ua.path=SBe;var xBe=WY();ua.pattern=xBe;var kBe=VY();ua.stream=kBe;var PBe=_Y();ua.string=PBe});var tq=E(fa=>{"use strict";Object.defineProperty(fa,"__esModule",{value:!0});var Ll=ga();function DBe(t,e){let r=XY(t),i=ZY(t,e.ignore),n=r.filter(l=>Ll.pattern.isStaticPattern(l,e)),s=r.filter(l=>Ll.pattern.isDynamicPattern(l,e)),o=SS(n,i,!1),a=SS(s,i,!0);return o.concat(a)}fa.generate=DBe;function SS(t,e,r){let i=$Y(t);return"."in i?[xS(".",t,e,r)]:eq(i,e,r)}fa.convertPatternsToTasks=SS;function XY(t){return Ll.pattern.getPositivePatterns(t)}fa.getPositivePatterns=XY;function ZY(t,e){return Ll.pattern.getNegativePatterns(t).concat(e).map(Ll.pattern.convertToPositivePattern)}fa.getNegativePatternsAsPositive=ZY;function $Y(t){let e={};return t.reduce((r,i)=>{let n=Ll.pattern.getBaseDirectory(i);return n in r?r[n].push(i):r[n]=[i],r},e)}fa.groupPatternsByBaseDirectory=$Y;function eq(t,e,r){return Object.keys(t).map(i=>xS(i,t[i],e,r))}fa.convertPatternGroupsToTasks=eq;function xS(t,e,r,i){return{dynamic:i,positive:e,negative:r,base:t,patterns:[].concat(e,r.map(Ll.pattern.convertToNegativePattern))}}fa.convertPatternGroupToTask=xS});var iq=E(_I=>{"use strict";Object.defineProperty(_I,"__esModule",{value:!0});_I.read=void 0;function RBe(t,e,r){e.fs.lstat(t,(i,n)=>{if(i!==null){rq(r,i);return}if(!n.isSymbolicLink()||!e.followSymbolicLink){kS(r,n);return}e.fs.stat(t,(s,o)=>{if(s!==null){if(e.throwErrorOnBrokenSymbolicLink){rq(r,s);return}kS(r,n);return}e.markSymbolicLink&&(o.isSymbolicLink=()=>!0),kS(r,o)})})}_I.read=RBe;function rq(t,e){t(e)}function kS(t,e){t(null,e)}});var nq=E(XI=>{"use strict";Object.defineProperty(XI,"__esModule",{value:!0});XI.read=void 0;function FBe(t,e){let r=e.fs.lstatSync(t);if(!r.isSymbolicLink()||!e.followSymbolicLink)return r;try{let i=e.fs.statSync(t);return e.markSymbolicLink&&(i.isSymbolicLink=()=>!0),i}catch(i){if(!e.throwErrorOnBrokenSymbolicLink)return r;throw i}}XI.read=FBe});var sq=E(AA=>{"use strict";Object.defineProperty(AA,"__esModule",{value:!0});AA.createFileSystemAdapter=AA.FILE_SYSTEM_ADAPTER=void 0;var ZI=require("fs");AA.FILE_SYSTEM_ADAPTER={lstat:ZI.lstat,stat:ZI.stat,lstatSync:ZI.lstatSync,statSync:ZI.statSync};function NBe(t){return t===void 0?AA.FILE_SYSTEM_ADAPTER:Object.assign(Object.assign({},AA.FILE_SYSTEM_ADAPTER),t)}AA.createFileSystemAdapter=NBe});var aq=E(PS=>{"use strict";Object.defineProperty(PS,"__esModule",{value:!0});var LBe=sq(),oq=class{constructor(e={}){this._options=e,this.followSymbolicLink=this._getValue(this._options.followSymbolicLink,!0),this.fs=LBe.createFileSystemAdapter(this._options.fs),this.markSymbolicLink=this._getValue(this._options.markSymbolicLink,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!0)}_getValue(e,r){return e!=null?e:r}};PS.default=oq});var Tl=E(lA=>{"use strict";Object.defineProperty(lA,"__esModule",{value:!0});lA.statSync=lA.stat=lA.Settings=void 0;var Aq=iq(),TBe=nq(),DS=aq();lA.Settings=DS.default;function MBe(t,e,r){if(typeof e=="function"){Aq.read(t,RS(),e);return}Aq.read(t,RS(e),r)}lA.stat=MBe;function OBe(t,e){let r=RS(e);return TBe.read(t,r)}lA.statSync=OBe;function RS(t={}){return t instanceof DS.default?t:new DS.default(t)}});var cq=E((iit,lq)=>{lq.exports=KBe;function KBe(t,e){var r,i,n,s=!0;Array.isArray(t)?(r=[],i=t.length):(n=Object.keys(t),r={},i=n.length);function o(l){function c(){e&&e(l,r),e=null}s?process.nextTick(c):c()}function a(l,c,u){r[l]=u,(--i==0||c)&&o(c)}i?n?n.forEach(function(l){t[l](function(c,u){a(l,c,u)})}):t.forEach(function(l,c){l(function(u,g){a(c,u,g)})}):o(null),s=!1}});var FS=E($I=>{"use strict";Object.defineProperty($I,"__esModule",{value:!0});$I.IS_SUPPORT_READDIR_WITH_FILE_TYPES=void 0;var ey=process.versions.node.split(".");if(ey[0]===void 0||ey[1]===void 0)throw new Error(`Unexpected behavior. The 'process.versions.node' variable has invalid value: ${process.versions.node}`);var uq=Number.parseInt(ey[0],10),UBe=Number.parseInt(ey[1],10),gq=10,HBe=10,GBe=uq>gq,jBe=uq===gq&&UBe>=HBe;$I.IS_SUPPORT_READDIR_WITH_FILE_TYPES=GBe||jBe});var hq=E(ty=>{"use strict";Object.defineProperty(ty,"__esModule",{value:!0});ty.createDirentFromStats=void 0;var fq=class{constructor(e,r){this.name=e,this.isBlockDevice=r.isBlockDevice.bind(r),this.isCharacterDevice=r.isCharacterDevice.bind(r),this.isDirectory=r.isDirectory.bind(r),this.isFIFO=r.isFIFO.bind(r),this.isFile=r.isFile.bind(r),this.isSocket=r.isSocket.bind(r),this.isSymbolicLink=r.isSymbolicLink.bind(r)}};function YBe(t,e){return new fq(t,e)}ty.createDirentFromStats=YBe});var NS=E(ry=>{"use strict";Object.defineProperty(ry,"__esModule",{value:!0});ry.fs=void 0;var qBe=hq();ry.fs=qBe});var LS=E(iy=>{"use strict";Object.defineProperty(iy,"__esModule",{value:!0});iy.joinPathSegments=void 0;function JBe(t,e,r){return t.endsWith(r)?t+e:t+r+e}iy.joinPathSegments=JBe});var Iq=E(cA=>{"use strict";Object.defineProperty(cA,"__esModule",{value:!0});cA.readdir=cA.readdirWithFileTypes=cA.read=void 0;var WBe=Tl(),pq=cq(),zBe=FS(),dq=NS(),Cq=LS();function VBe(t,e,r){if(!e.stats&&zBe.IS_SUPPORT_READDIR_WITH_FILE_TYPES){mq(t,e,r);return}Eq(t,e,r)}cA.read=VBe;function mq(t,e,r){e.fs.readdir(t,{withFileTypes:!0},(i,n)=>{if(i!==null){ny(r,i);return}let s=n.map(a=>({dirent:a,name:a.name,path:Cq.joinPathSegments(t,a.name,e.pathSegmentSeparator)}));if(!e.followSymbolicLinks){TS(r,s);return}let o=s.map(a=>_Be(a,e));pq(o,(a,l)=>{if(a!==null){ny(r,a);return}TS(r,l)})})}cA.readdirWithFileTypes=mq;function _Be(t,e){return r=>{if(!t.dirent.isSymbolicLink()){r(null,t);return}e.fs.stat(t.path,(i,n)=>{if(i!==null){if(e.throwErrorOnBrokenSymbolicLink){r(i);return}r(null,t);return}t.dirent=dq.fs.createDirentFromStats(t.name,n),r(null,t)})}}function Eq(t,e,r){e.fs.readdir(t,(i,n)=>{if(i!==null){ny(r,i);return}let s=n.map(o=>{let a=Cq.joinPathSegments(t,o,e.pathSegmentSeparator);return l=>{WBe.stat(a,e.fsStatSettings,(c,u)=>{if(c!==null){l(c);return}let g={name:o,path:a,dirent:dq.fs.createDirentFromStats(o,u)};e.stats&&(g.stats=u),l(null,g)})}});pq(s,(o,a)=>{if(o!==null){ny(r,o);return}TS(r,a)})})}cA.readdir=Eq;function ny(t,e){t(e)}function TS(t,e){t(null,e)}});var bq=E(uA=>{"use strict";Object.defineProperty(uA,"__esModule",{value:!0});uA.readdir=uA.readdirWithFileTypes=uA.read=void 0;var XBe=Tl(),ZBe=FS(),yq=NS(),wq=LS();function $Be(t,e){return!e.stats&&ZBe.IS_SUPPORT_READDIR_WITH_FILE_TYPES?Bq(t,e):Qq(t,e)}uA.read=$Be;function Bq(t,e){return e.fs.readdirSync(t,{withFileTypes:!0}).map(i=>{let n={dirent:i,name:i.name,path:wq.joinPathSegments(t,i.name,e.pathSegmentSeparator)};if(n.dirent.isSymbolicLink()&&e.followSymbolicLinks)try{let s=e.fs.statSync(n.path);n.dirent=yq.fs.createDirentFromStats(n.name,s)}catch(s){if(e.throwErrorOnBrokenSymbolicLink)throw s}return n})}uA.readdirWithFileTypes=Bq;function Qq(t,e){return e.fs.readdirSync(t).map(i=>{let n=wq.joinPathSegments(t,i,e.pathSegmentSeparator),s=XBe.statSync(n,e.fsStatSettings),o={name:i,path:n,dirent:yq.fs.createDirentFromStats(i,s)};return e.stats&&(o.stats=s),o})}uA.readdir=Qq});var vq=E(gA=>{"use strict";Object.defineProperty(gA,"__esModule",{value:!0});gA.createFileSystemAdapter=gA.FILE_SYSTEM_ADAPTER=void 0;var Du=require("fs");gA.FILE_SYSTEM_ADAPTER={lstat:Du.lstat,stat:Du.stat,lstatSync:Du.lstatSync,statSync:Du.statSync,readdir:Du.readdir,readdirSync:Du.readdirSync};function e0e(t){return t===void 0?gA.FILE_SYSTEM_ADAPTER:Object.assign(Object.assign({},gA.FILE_SYSTEM_ADAPTER),t)}gA.createFileSystemAdapter=e0e});var xq=E(MS=>{"use strict";Object.defineProperty(MS,"__esModule",{value:!0});var t0e=require("path"),r0e=Tl(),i0e=vq(),Sq=class{constructor(e={}){this._options=e,this.followSymbolicLinks=this._getValue(this._options.followSymbolicLinks,!1),this.fs=i0e.createFileSystemAdapter(this._options.fs),this.pathSegmentSeparator=this._getValue(this._options.pathSegmentSeparator,t0e.sep),this.stats=this._getValue(this._options.stats,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!0),this.fsStatSettings=new r0e.Settings({followSymbolicLink:this.followSymbolicLinks,fs:this.fs,throwErrorOnBrokenSymbolicLink:this.throwErrorOnBrokenSymbolicLink})}_getValue(e,r){return e!=null?e:r}};MS.default=Sq});var sy=E(fA=>{"use strict";Object.defineProperty(fA,"__esModule",{value:!0});fA.Settings=fA.scandirSync=fA.scandir=void 0;var kq=Iq(),n0e=bq(),OS=xq();fA.Settings=OS.default;function s0e(t,e,r){if(typeof e=="function"){kq.read(t,KS(),e);return}kq.read(t,KS(e),r)}fA.scandir=s0e;function o0e(t,e){let r=KS(e);return n0e.read(t,r)}fA.scandirSync=o0e;function KS(t={}){return t instanceof OS.default?t:new OS.default(t)}});var Dq=E((fit,Pq)=>{"use strict";function a0e(t){var e=new t,r=e;function i(){var s=e;return s.next?e=s.next:(e=new t,r=e),s.next=null,s}function n(s){r.next=s,r=s}return{get:i,release:n}}Pq.exports=a0e});var Fq=E((hit,US)=>{"use strict";var A0e=Dq();function Rq(t,e,r){if(typeof t=="function"&&(r=e,e=t,t=null),r<1)throw new Error("fastqueue concurrency must be greater than 1");var i=A0e(l0e),n=null,s=null,o=0,a=null,l={push:d,drain:po,saturated:po,pause:u,paused:!1,concurrency:r,running:c,resume:h,idle:p,length:g,getQueue:f,unshift:m,empty:po,kill:B,killAndDrain:b,error:R};return l;function c(){return o}function u(){l.paused=!0}function g(){for(var H=n,L=0;H;)H=H.next,L++;return L}function f(){for(var H=n,L=[];H;)L.push(H.value),H=H.next;return L}function h(){if(!!l.paused){l.paused=!1;for(var H=0;H{"use strict";Object.defineProperty(Co,"__esModule",{value:!0});Co.joinPathSegments=Co.replacePathSegmentSeparator=Co.isAppliedFilter=Co.isFatalError=void 0;function u0e(t,e){return t.errorFilter===null?!0:!t.errorFilter(e)}Co.isFatalError=u0e;function g0e(t,e){return t===null||t(e)}Co.isAppliedFilter=g0e;function f0e(t,e){return t.split(/[/\\]/).join(e)}Co.replacePathSegmentSeparator=f0e;function h0e(t,e,r){return t===""?e:t.endsWith(r)?t+e:t+r+e}Co.joinPathSegments=h0e});var GS=E(HS=>{"use strict";Object.defineProperty(HS,"__esModule",{value:!0});var p0e=oy(),Nq=class{constructor(e,r){this._root=e,this._settings=r,this._root=p0e.replacePathSegmentSeparator(e,r.pathSegmentSeparator)}};HS.default=Nq});var YS=E(jS=>{"use strict";Object.defineProperty(jS,"__esModule",{value:!0});var d0e=require("events"),C0e=sy(),m0e=Fq(),ay=oy(),E0e=GS(),Lq=class extends E0e.default{constructor(e,r){super(e,r);this._settings=r,this._scandir=C0e.scandir,this._emitter=new d0e.EventEmitter,this._queue=m0e(this._worker.bind(this),this._settings.concurrency),this._isFatalError=!1,this._isDestroyed=!1,this._queue.drain=()=>{this._isFatalError||this._emitter.emit("end")}}read(){return this._isFatalError=!1,this._isDestroyed=!1,setImmediate(()=>{this._pushToQueue(this._root,this._settings.basePath)}),this._emitter}get isDestroyed(){return this._isDestroyed}destroy(){if(this._isDestroyed)throw new Error("The reader is already destroyed");this._isDestroyed=!0,this._queue.killAndDrain()}onEntry(e){this._emitter.on("entry",e)}onError(e){this._emitter.once("error",e)}onEnd(e){this._emitter.once("end",e)}_pushToQueue(e,r){let i={directory:e,base:r};this._queue.push(i,n=>{n!==null&&this._handleError(n)})}_worker(e,r){this._scandir(e.directory,this._settings.fsScandirSettings,(i,n)=>{if(i!==null){r(i,void 0);return}for(let s of n)this._handleEntry(s,e.base);r(null,void 0)})}_handleError(e){this._isDestroyed||!ay.isFatalError(this._settings,e)||(this._isFatalError=!0,this._isDestroyed=!0,this._emitter.emit("error",e))}_handleEntry(e,r){if(this._isDestroyed||this._isFatalError)return;let i=e.path;r!==void 0&&(e.path=ay.joinPathSegments(r,e.name,this._settings.pathSegmentSeparator)),ay.isAppliedFilter(this._settings.entryFilter,e)&&this._emitEntry(e),e.dirent.isDirectory()&&ay.isAppliedFilter(this._settings.deepFilter,e)&&this._pushToQueue(i,e.path)}_emitEntry(e){this._emitter.emit("entry",e)}};jS.default=Lq});var Mq=E(qS=>{"use strict";Object.defineProperty(qS,"__esModule",{value:!0});var I0e=YS(),Tq=class{constructor(e,r){this._root=e,this._settings=r,this._reader=new I0e.default(this._root,this._settings),this._storage=new Set}read(e){this._reader.onError(r=>{y0e(e,r)}),this._reader.onEntry(r=>{this._storage.add(r)}),this._reader.onEnd(()=>{w0e(e,[...this._storage])}),this._reader.read()}};qS.default=Tq;function y0e(t,e){t(e)}function w0e(t,e){t(null,e)}});var Kq=E(JS=>{"use strict";Object.defineProperty(JS,"__esModule",{value:!0});var B0e=require("stream"),Q0e=YS(),Oq=class{constructor(e,r){this._root=e,this._settings=r,this._reader=new Q0e.default(this._root,this._settings),this._stream=new B0e.Readable({objectMode:!0,read:()=>{},destroy:()=>{this._reader.isDestroyed||this._reader.destroy()}})}read(){return this._reader.onError(e=>{this._stream.emit("error",e)}),this._reader.onEntry(e=>{this._stream.push(e)}),this._reader.onEnd(()=>{this._stream.push(null)}),this._reader.read(),this._stream}};JS.default=Oq});var Hq=E(WS=>{"use strict";Object.defineProperty(WS,"__esModule",{value:!0});var b0e=sy(),Ay=oy(),v0e=GS(),Uq=class extends v0e.default{constructor(){super(...arguments);this._scandir=b0e.scandirSync,this._storage=new Set,this._queue=new Set}read(){return this._pushToQueue(this._root,this._settings.basePath),this._handleQueue(),[...this._storage]}_pushToQueue(e,r){this._queue.add({directory:e,base:r})}_handleQueue(){for(let e of this._queue.values())this._handleDirectory(e.directory,e.base)}_handleDirectory(e,r){try{let i=this._scandir(e,this._settings.fsScandirSettings);for(let n of i)this._handleEntry(n,r)}catch(i){this._handleError(i)}}_handleError(e){if(!!Ay.isFatalError(this._settings,e))throw e}_handleEntry(e,r){let i=e.path;r!==void 0&&(e.path=Ay.joinPathSegments(r,e.name,this._settings.pathSegmentSeparator)),Ay.isAppliedFilter(this._settings.entryFilter,e)&&this._pushToStorage(e),e.dirent.isDirectory()&&Ay.isAppliedFilter(this._settings.deepFilter,e)&&this._pushToQueue(i,e.path)}_pushToStorage(e){this._storage.add(e)}};WS.default=Uq});var jq=E(zS=>{"use strict";Object.defineProperty(zS,"__esModule",{value:!0});var S0e=Hq(),Gq=class{constructor(e,r){this._root=e,this._settings=r,this._reader=new S0e.default(this._root,this._settings)}read(){return this._reader.read()}};zS.default=Gq});var qq=E(VS=>{"use strict";Object.defineProperty(VS,"__esModule",{value:!0});var x0e=require("path"),k0e=sy(),Yq=class{constructor(e={}){this._options=e,this.basePath=this._getValue(this._options.basePath,void 0),this.concurrency=this._getValue(this._options.concurrency,Number.POSITIVE_INFINITY),this.deepFilter=this._getValue(this._options.deepFilter,null),this.entryFilter=this._getValue(this._options.entryFilter,null),this.errorFilter=this._getValue(this._options.errorFilter,null),this.pathSegmentSeparator=this._getValue(this._options.pathSegmentSeparator,x0e.sep),this.fsScandirSettings=new k0e.Settings({followSymbolicLinks:this._options.followSymbolicLinks,fs:this._options.fs,pathSegmentSeparator:this._options.pathSegmentSeparator,stats:this._options.stats,throwErrorOnBrokenSymbolicLink:this._options.throwErrorOnBrokenSymbolicLink})}_getValue(e,r){return e!=null?e:r}};VS.default=Yq});var XS=E(mo=>{"use strict";Object.defineProperty(mo,"__esModule",{value:!0});mo.Settings=mo.walkStream=mo.walkSync=mo.walk=void 0;var Jq=Mq(),P0e=Kq(),D0e=jq(),_S=qq();mo.Settings=_S.default;function R0e(t,e,r){if(typeof e=="function"){new Jq.default(t,ly()).read(e);return}new Jq.default(t,ly(e)).read(r)}mo.walk=R0e;function F0e(t,e){let r=ly(e);return new D0e.default(t,r).read()}mo.walkSync=F0e;function N0e(t,e){let r=ly(e);return new P0e.default(t,r).read()}mo.walkStream=N0e;function ly(t={}){return t instanceof _S.default?t:new _S.default(t)}});var $S=E(ZS=>{"use strict";Object.defineProperty(ZS,"__esModule",{value:!0});var L0e=require("path"),T0e=Tl(),Wq=ga(),zq=class{constructor(e){this._settings=e,this._fsStatSettings=new T0e.Settings({followSymbolicLink:this._settings.followSymbolicLinks,fs:this._settings.fs,throwErrorOnBrokenSymbolicLink:this._settings.followSymbolicLinks})}_getFullEntryPath(e){return L0e.resolve(this._settings.cwd,e)}_makeEntry(e,r){let i={name:r,path:r,dirent:Wq.fs.createDirentFromStats(r,e)};return this._settings.stats&&(i.stats=e),i}_isFatalError(e){return!Wq.errno.isEnoentCodeError(e)&&!this._settings.suppressErrors}};ZS.default=zq});var tx=E(ex=>{"use strict";Object.defineProperty(ex,"__esModule",{value:!0});var M0e=require("stream"),O0e=Tl(),K0e=XS(),U0e=$S(),Vq=class extends U0e.default{constructor(){super(...arguments);this._walkStream=K0e.walkStream,this._stat=O0e.stat}dynamic(e,r){return this._walkStream(e,r)}static(e,r){let i=e.map(this._getFullEntryPath,this),n=new M0e.PassThrough({objectMode:!0});n._write=(s,o,a)=>this._getEntry(i[s],e[s],r).then(l=>{l!==null&&r.entryFilter(l)&&n.push(l),s===i.length-1&&n.end(),a()}).catch(a);for(let s=0;sthis._makeEntry(n,r)).catch(n=>{if(i.errorFilter(n))return null;throw n})}_getStat(e){return new Promise((r,i)=>{this._stat(e,this._fsStatSettings,(n,s)=>n===null?r(s):i(n))})}};ex.default=Vq});var Xq=E(rx=>{"use strict";Object.defineProperty(rx,"__esModule",{value:!0});var Ru=ga(),_q=class{constructor(e,r,i){this._patterns=e,this._settings=r,this._micromatchOptions=i,this._storage=[],this._fillStorage()}_fillStorage(){let e=Ru.pattern.expandPatternsWithBraceExpansion(this._patterns);for(let r of e){let i=this._getPatternSegments(r),n=this._splitSegmentsIntoSections(i);this._storage.push({complete:n.length<=1,pattern:r,segments:i,sections:n})}}_getPatternSegments(e){return Ru.pattern.getPatternParts(e,this._micromatchOptions).map(i=>Ru.pattern.isDynamicPattern(i,this._settings)?{dynamic:!0,pattern:i,patternRe:Ru.pattern.makeRe(i,this._micromatchOptions)}:{dynamic:!1,pattern:i})}_splitSegmentsIntoSections(e){return Ru.array.splitWhen(e,r=>r.dynamic&&Ru.pattern.hasGlobStar(r.pattern))}};rx.default=_q});var $q=E(ix=>{"use strict";Object.defineProperty(ix,"__esModule",{value:!0});var H0e=Xq(),Zq=class extends H0e.default{match(e){let r=e.split("/"),i=r.length,n=this._storage.filter(s=>!s.complete||s.segments.length>i);for(let s of n){let o=s.sections[0];if(!s.complete&&i>o.length||r.every((l,c)=>{let u=s.segments[c];return!!(u.dynamic&&u.patternRe.test(l)||!u.dynamic&&u.pattern===l)}))return!0}return!1}};ix.default=Zq});var tJ=E(nx=>{"use strict";Object.defineProperty(nx,"__esModule",{value:!0});var cy=ga(),G0e=$q(),eJ=class{constructor(e,r){this._settings=e,this._micromatchOptions=r}getFilter(e,r,i){let n=this._getMatcher(r),s=this._getNegativePatternsRe(i);return o=>this._filter(e,o,n,s)}_getMatcher(e){return new G0e.default(e,this._settings,this._micromatchOptions)}_getNegativePatternsRe(e){let r=e.filter(cy.pattern.isAffectDepthOfReadingPattern);return cy.pattern.convertPatternsToRe(r,this._micromatchOptions)}_filter(e,r,i,n){let s=this._getEntryLevel(e,r.path);if(this._isSkippedByDeep(s)||this._isSkippedSymbolicLink(r))return!1;let o=cy.path.removeLeadingDotSegment(r.path);return this._isSkippedByPositivePatterns(o,i)?!1:this._isSkippedByNegativePatterns(o,n)}_isSkippedByDeep(e){return e>=this._settings.deep}_isSkippedSymbolicLink(e){return!this._settings.followSymbolicLinks&&e.dirent.isSymbolicLink()}_getEntryLevel(e,r){let i=e.split("/").length;return r.split("/").length-(e===""?0:i)}_isSkippedByPositivePatterns(e,r){return!this._settings.baseNameMatch&&!r.match(e)}_isSkippedByNegativePatterns(e,r){return!cy.pattern.matchAny(e,r)}};nx.default=eJ});var iJ=E(sx=>{"use strict";Object.defineProperty(sx,"__esModule",{value:!0});var ip=ga(),rJ=class{constructor(e,r){this._settings=e,this._micromatchOptions=r,this.index=new Map}getFilter(e,r){let i=ip.pattern.convertPatternsToRe(e,this._micromatchOptions),n=ip.pattern.convertPatternsToRe(r,this._micromatchOptions);return s=>this._filter(s,i,n)}_filter(e,r,i){if(this._settings.unique){if(this._isDuplicateEntry(e))return!1;this._createIndexRecord(e)}if(this._onlyFileFilter(e)||this._onlyDirectoryFilter(e)||this._isSkippedByAbsoluteNegativePatterns(e,i))return!1;let n=this._settings.baseNameMatch?e.name:e.path;return this._isMatchToPatterns(n,r)&&!this._isMatchToPatterns(e.path,i)}_isDuplicateEntry(e){return this.index.has(e.path)}_createIndexRecord(e){this.index.set(e.path,void 0)}_onlyFileFilter(e){return this._settings.onlyFiles&&!e.dirent.isFile()}_onlyDirectoryFilter(e){return this._settings.onlyDirectories&&!e.dirent.isDirectory()}_isSkippedByAbsoluteNegativePatterns(e,r){if(!this._settings.absolute)return!1;let i=ip.path.makeAbsolute(this._settings.cwd,e.path);return this._isMatchToPatterns(i,r)}_isMatchToPatterns(e,r){let i=ip.path.removeLeadingDotSegment(e);return ip.pattern.matchAny(i,r)}};sx.default=rJ});var sJ=E(ox=>{"use strict";Object.defineProperty(ox,"__esModule",{value:!0});var j0e=ga(),nJ=class{constructor(e){this._settings=e}getFilter(){return e=>this._isNonFatalError(e)}_isNonFatalError(e){return j0e.errno.isEnoentCodeError(e)||this._settings.suppressErrors}};ox.default=nJ});var AJ=E(ax=>{"use strict";Object.defineProperty(ax,"__esModule",{value:!0});var oJ=ga(),aJ=class{constructor(e){this._settings=e}getTransformer(){return e=>this._transform(e)}_transform(e){let r=e.path;return this._settings.absolute&&(r=oJ.path.makeAbsolute(this._settings.cwd,r),r=oJ.path.unixify(r)),this._settings.markDirectories&&e.dirent.isDirectory()&&(r+="/"),this._settings.objectMode?Object.assign(Object.assign({},e),{path:r}):r}};ax.default=aJ});var uy=E(Ax=>{"use strict";Object.defineProperty(Ax,"__esModule",{value:!0});var Y0e=require("path"),q0e=tJ(),J0e=iJ(),W0e=sJ(),z0e=AJ(),lJ=class{constructor(e){this._settings=e,this.errorFilter=new W0e.default(this._settings),this.entryFilter=new J0e.default(this._settings,this._getMicromatchOptions()),this.deepFilter=new q0e.default(this._settings,this._getMicromatchOptions()),this.entryTransformer=new z0e.default(this._settings)}_getRootDirectory(e){return Y0e.resolve(this._settings.cwd,e.base)}_getReaderOptions(e){let r=e.base==="."?"":e.base;return{basePath:r,pathSegmentSeparator:"/",concurrency:this._settings.concurrency,deepFilter:this.deepFilter.getFilter(r,e.positive,e.negative),entryFilter:this.entryFilter.getFilter(e.positive,e.negative),errorFilter:this.errorFilter.getFilter(),followSymbolicLinks:this._settings.followSymbolicLinks,fs:this._settings.fs,stats:this._settings.stats,throwErrorOnBrokenSymbolicLink:this._settings.throwErrorOnBrokenSymbolicLink,transform:this.entryTransformer.getTransformer()}}_getMicromatchOptions(){return{dot:this._settings.dot,matchBase:this._settings.baseNameMatch,nobrace:!this._settings.braceExpansion,nocase:!this._settings.caseSensitiveMatch,noext:!this._settings.extglob,noglobstar:!this._settings.globstar,posix:!0,strictSlashes:!1}}};Ax.default=lJ});var uJ=E(lx=>{"use strict";Object.defineProperty(lx,"__esModule",{value:!0});var V0e=tx(),_0e=uy(),cJ=class extends _0e.default{constructor(){super(...arguments);this._reader=new V0e.default(this._settings)}read(e){let r=this._getRootDirectory(e),i=this._getReaderOptions(e),n=[];return new Promise((s,o)=>{let a=this.api(r,e,i);a.once("error",o),a.on("data",l=>n.push(i.transform(l))),a.once("end",()=>s(n))})}api(e,r,i){return r.dynamic?this._reader.dynamic(e,i):this._reader.static(r.patterns,i)}};lx.default=cJ});var fJ=E(cx=>{"use strict";Object.defineProperty(cx,"__esModule",{value:!0});var X0e=require("stream"),Z0e=tx(),$0e=uy(),gJ=class extends $0e.default{constructor(){super(...arguments);this._reader=new Z0e.default(this._settings)}read(e){let r=this._getRootDirectory(e),i=this._getReaderOptions(e),n=this.api(r,e,i),s=new X0e.Readable({objectMode:!0,read:()=>{}});return n.once("error",o=>s.emit("error",o)).on("data",o=>s.emit("data",i.transform(o))).once("end",()=>s.emit("end")),s.once("close",()=>n.destroy()),s}api(e,r,i){return r.dynamic?this._reader.dynamic(e,i):this._reader.static(r.patterns,i)}};cx.default=gJ});var pJ=E(ux=>{"use strict";Object.defineProperty(ux,"__esModule",{value:!0});var eQe=Tl(),tQe=XS(),rQe=$S(),hJ=class extends rQe.default{constructor(){super(...arguments);this._walkSync=tQe.walkSync,this._statSync=eQe.statSync}dynamic(e,r){return this._walkSync(e,r)}static(e,r){let i=[];for(let n of e){let s=this._getFullEntryPath(n),o=this._getEntry(s,n,r);o===null||!r.entryFilter(o)||i.push(o)}return i}_getEntry(e,r,i){try{let n=this._getStat(e);return this._makeEntry(n,r)}catch(n){if(i.errorFilter(n))return null;throw n}}_getStat(e){return this._statSync(e,this._fsStatSettings)}};ux.default=hJ});var CJ=E(gx=>{"use strict";Object.defineProperty(gx,"__esModule",{value:!0});var iQe=pJ(),nQe=uy(),dJ=class extends nQe.default{constructor(){super(...arguments);this._reader=new iQe.default(this._settings)}read(e){let r=this._getRootDirectory(e),i=this._getReaderOptions(e);return this.api(r,e,i).map(i.transform)}api(e,r,i){return r.dynamic?this._reader.dynamic(e,i):this._reader.static(r.patterns,i)}};gx.default=dJ});var EJ=E(np=>{"use strict";Object.defineProperty(np,"__esModule",{value:!0});var Fu=require("fs"),sQe=require("os"),oQe=sQe.cpus().length;np.DEFAULT_FILE_SYSTEM_ADAPTER={lstat:Fu.lstat,lstatSync:Fu.lstatSync,stat:Fu.stat,statSync:Fu.statSync,readdir:Fu.readdir,readdirSync:Fu.readdirSync};var mJ=class{constructor(e={}){this._options=e,this.absolute=this._getValue(this._options.absolute,!1),this.baseNameMatch=this._getValue(this._options.baseNameMatch,!1),this.braceExpansion=this._getValue(this._options.braceExpansion,!0),this.caseSensitiveMatch=this._getValue(this._options.caseSensitiveMatch,!0),this.concurrency=this._getValue(this._options.concurrency,oQe),this.cwd=this._getValue(this._options.cwd,process.cwd()),this.deep=this._getValue(this._options.deep,Infinity),this.dot=this._getValue(this._options.dot,!1),this.extglob=this._getValue(this._options.extglob,!0),this.followSymbolicLinks=this._getValue(this._options.followSymbolicLinks,!0),this.fs=this._getFileSystemMethods(this._options.fs),this.globstar=this._getValue(this._options.globstar,!0),this.ignore=this._getValue(this._options.ignore,[]),this.markDirectories=this._getValue(this._options.markDirectories,!1),this.objectMode=this._getValue(this._options.objectMode,!1),this.onlyDirectories=this._getValue(this._options.onlyDirectories,!1),this.onlyFiles=this._getValue(this._options.onlyFiles,!0),this.stats=this._getValue(this._options.stats,!1),this.suppressErrors=this._getValue(this._options.suppressErrors,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!1),this.unique=this._getValue(this._options.unique,!0),this.onlyDirectories&&(this.onlyFiles=!1),this.stats&&(this.objectMode=!0)}_getValue(e,r){return e===void 0?r:e}_getFileSystemMethods(e={}){return Object.assign(Object.assign({},np.DEFAULT_FILE_SYSTEM_ADAPTER),e)}};np.default=mJ});var gy=E((Oit,IJ)=>{"use strict";var yJ=tq(),aQe=uJ(),AQe=fJ(),lQe=CJ(),fx=EJ(),Ml=ga();async function px(t,e){Nu(t);let r=hx(t,aQe.default,e),i=await Promise.all(r);return Ml.array.flatten(i)}(function(t){function e(o,a){Nu(o);let l=hx(o,lQe.default,a);return Ml.array.flatten(l)}t.sync=e;function r(o,a){Nu(o);let l=hx(o,AQe.default,a);return Ml.stream.merge(l)}t.stream=r;function i(o,a){Nu(o);let l=[].concat(o),c=new fx.default(a);return yJ.generate(l,c)}t.generateTasks=i;function n(o,a){Nu(o);let l=new fx.default(a);return Ml.pattern.isDynamicPattern(o,l)}t.isDynamicPattern=n;function s(o){return Nu(o),Ml.path.escape(o)}t.escapePath=s})(px||(px={}));function hx(t,e,r){let i=[].concat(t),n=new fx.default(r),s=yJ.generate(i,n),o=new e(n);return s.map(o.read,o)}function Nu(t){if(![].concat(t).every(i=>Ml.string.isString(i)&&!Ml.string.isEmpty(i)))throw new TypeError("Patterns must be a string (non empty) or an array of strings")}IJ.exports=px});var BJ=E(Ol=>{"use strict";var{promisify:cQe}=require("util"),wJ=require("fs");async function dx(t,e,r){if(typeof r!="string")throw new TypeError(`Expected a string, got ${typeof r}`);try{return(await cQe(wJ[t])(r))[e]()}catch(i){if(i.code==="ENOENT")return!1;throw i}}function Cx(t,e,r){if(typeof r!="string")throw new TypeError(`Expected a string, got ${typeof r}`);try{return wJ[t](r)[e]()}catch(i){if(i.code==="ENOENT")return!1;throw i}}Ol.isFile=dx.bind(null,"stat","isFile");Ol.isDirectory=dx.bind(null,"stat","isDirectory");Ol.isSymlink=dx.bind(null,"lstat","isSymbolicLink");Ol.isFileSync=Cx.bind(null,"statSync","isFile");Ol.isDirectorySync=Cx.bind(null,"statSync","isDirectory");Ol.isSymlinkSync=Cx.bind(null,"lstatSync","isSymbolicLink")});var xJ=E((Uit,mx)=>{"use strict";var Kl=require("path"),QJ=BJ(),bJ=t=>t.length>1?`{${t.join(",")}}`:t[0],vJ=(t,e)=>{let r=t[0]==="!"?t.slice(1):t;return Kl.isAbsolute(r)?r:Kl.join(e,r)},uQe=(t,e)=>Kl.extname(t)?`**/${t}`:`**/${t}.${bJ(e)}`,SJ=(t,e)=>{if(e.files&&!Array.isArray(e.files))throw new TypeError(`Expected \`files\` to be of type \`Array\` but received type \`${typeof e.files}\``);if(e.extensions&&!Array.isArray(e.extensions))throw new TypeError(`Expected \`extensions\` to be of type \`Array\` but received type \`${typeof e.extensions}\``);return e.files&&e.extensions?e.files.map(r=>Kl.posix.join(t,uQe(r,e.extensions))):e.files?e.files.map(r=>Kl.posix.join(t,`**/${r}`)):e.extensions?[Kl.posix.join(t,`**/*.${bJ(e.extensions)}`)]:[Kl.posix.join(t,"**")]};mx.exports=async(t,e)=>{if(e=P({cwd:process.cwd()},e),typeof e.cwd!="string")throw new TypeError(`Expected \`cwd\` to be of type \`string\` but received type \`${typeof e.cwd}\``);let r=await Promise.all([].concat(t).map(async i=>await QJ.isDirectory(vJ(i,e.cwd))?SJ(i,e):i));return[].concat.apply([],r)};mx.exports.sync=(t,e)=>{if(e=P({cwd:process.cwd()},e),typeof e.cwd!="string")throw new TypeError(`Expected \`cwd\` to be of type \`string\` but received type \`${typeof e.cwd}\``);let r=[].concat(t).map(i=>QJ.isDirectorySync(vJ(i,e.cwd))?SJ(i,e):i);return[].concat.apply([],r)}});var TJ=E((Hit,kJ)=>{function PJ(t){return Array.isArray(t)?t:[t]}var gQe=/^\s+$/,fQe=/^\\!/,hQe=/^\\#/,pQe=/\r?\n/g,dQe=/^\.*\/|^\.+$/,Ex="/",DJ=typeof Symbol!="undefined"?Symbol.for("node-ignore"):"node-ignore",CQe=(t,e,r)=>Object.defineProperty(t,e,{value:r}),mQe=/([0-z])-([0-z])/g,EQe=t=>t.replace(mQe,(e,r,i)=>r.charCodeAt(0)<=i.charCodeAt(0)?e:""),IQe=[[/\\?\s+$/,t=>t.indexOf("\\")===0?" ":""],[/\\\s/g,()=>" "],[/[\\^$.|*+(){]/g,t=>`\\${t}`],[/\[([^\]/]*)($|\])/g,(t,e,r)=>r==="]"?`[${EQe(e)}]`:`\\${t}`],[/(?!\\)\?/g,()=>"[^/]"],[/^\//,()=>"^"],[/\//g,()=>"\\/"],[/^\^*\\\*\\\*\\\//,()=>"^(?:.*\\/)?"],[/(?:[^*])$/,t=>/\/$/.test(t)?`${t}$`:`${t}(?=$|\\/$)`],[/^(?=[^^])/,function(){return/\/(?!$)/.test(this)?"^":"(?:^|\\/)"}],[/\\\/\\\*\\\*(?=\\\/|$)/g,(t,e,r)=>e+6`${e}[^\\/]*`],[/(\^|\\\/)?\\\*$/,(t,e)=>`${e?`${e}[^/]+`:"[^/]*"}(?=$|\\/$)`],[/\\\\\\/g,()=>"\\"]],RJ=Object.create(null),yQe=(t,e,r)=>{let i=RJ[t];if(i)return i;let n=IQe.reduce((s,o)=>s.replace(o[0],o[1].bind(t)),t);return RJ[t]=r?new RegExp(n,"i"):new RegExp(n)},Ix=t=>typeof t=="string",wQe=t=>t&&Ix(t)&&!gQe.test(t)&&t.indexOf("#")!==0,BQe=t=>t.split(pQe),FJ=class{constructor(e,r,i,n){this.origin=e,this.pattern=r,this.negative=i,this.regex=n}},QQe=(t,e)=>{let r=t,i=!1;t.indexOf("!")===0&&(i=!0,t=t.substr(1)),t=t.replace(fQe,"!").replace(hQe,"#");let n=yQe(t,i,e);return new FJ(r,t,i,n)},bQe=(t,e)=>{throw new e(t)},ha=(t,e,r)=>Ix(t)?t?ha.isNotRelative(t)?r(`path should be a \`path.relative()\`d string, but got "${e}"`,RangeError):!0:r("path must not be empty",TypeError):r(`path must be a string, but got \`${e}\``,TypeError),NJ=t=>dQe.test(t);ha.isNotRelative=NJ;ha.convert=t=>t;var LJ=class{constructor({ignorecase:e=!0}={}){this._rules=[],this._ignorecase=e,CQe(this,DJ,!0),this._initCache()}_initCache(){this._ignoreCache=Object.create(null),this._testCache=Object.create(null)}_addPattern(e){if(e&&e[DJ]){this._rules=this._rules.concat(e._rules),this._added=!0;return}if(wQe(e)){let r=QQe(e,this._ignorecase);this._added=!0,this._rules.push(r)}}add(e){return this._added=!1,PJ(Ix(e)?BQe(e):e).forEach(this._addPattern,this),this._added&&this._initCache(),this}addPattern(e){return this.add(e)}_testOne(e,r){let i=!1,n=!1;return this._rules.forEach(s=>{let{negative:o}=s;if(n===o&&i!==n||o&&!i&&!n&&!r)return;s.regex.test(e)&&(i=!o,n=o)}),{ignored:i,unignored:n}}_test(e,r,i,n){let s=e&&ha.convert(e);return ha(s,e,bQe),this._t(s,r,i,n)}_t(e,r,i,n){if(e in r)return r[e];if(n||(n=e.split(Ex)),n.pop(),!n.length)return r[e]=this._testOne(e,i);let s=this._t(n.join(Ex)+Ex,r,i,n);return r[e]=s.ignored?s:this._testOne(e,i)}ignores(e){return this._test(e,this._ignoreCache,!1).ignored}createFilter(){return e=>!this.ignores(e)}filter(e){return PJ(e).filter(this.createFilter())}test(e){return this._test(e,this._testCache,!0)}},fy=t=>new LJ(t),vQe=()=>!1,SQe=t=>ha(t&&ha.convert(t),t,vQe);fy.isPathValid=SQe;fy.default=fy;kJ.exports=fy;if(typeof process!="undefined"&&(process.env&&process.env.IGNORE_TEST_WIN32||process.platform==="win32")){let t=r=>/^\\\\\?\\/.test(r)||/["<>|\u0000-\u001F]+/u.test(r)?r:r.replace(/\\/g,"/");ha.convert=t;let e=/^[a-z]:\//i;ha.isNotRelative=r=>e.test(r)||NJ(r)}});var OJ=E((Git,MJ)=>{"use strict";MJ.exports=t=>{let e=/^\\\\\?\\/.test(t),r=/[^\u0000-\u0080]+/.test(t);return e||r?t:t.replace(/\\/g,"/")}});var qJ=E((jit,yx)=>{"use strict";var{promisify:xQe}=require("util"),KJ=require("fs"),pa=require("path"),UJ=gy(),kQe=TJ(),sp=OJ(),HJ=["**/node_modules/**","**/flow-typed/**","**/coverage/**","**/.git"],PQe=xQe(KJ.readFile),DQe=t=>e=>e.startsWith("!")?"!"+pa.posix.join(t,e.slice(1)):pa.posix.join(t,e),RQe=(t,e)=>{let r=sp(pa.relative(e.cwd,pa.dirname(e.fileName)));return t.split(/\r?\n/).filter(Boolean).filter(i=>!i.startsWith("#")).map(DQe(r))},GJ=t=>{let e=kQe();for(let r of t)e.add(RQe(r.content,{cwd:r.cwd,fileName:r.filePath}));return e},FQe=(t,e)=>{if(t=sp(t),pa.isAbsolute(e)){if(sp(e).startsWith(t))return e;throw new Error(`Path ${e} is not in cwd ${t}`)}return pa.join(t,e)},jJ=(t,e)=>r=>t.ignores(sp(pa.relative(e,FQe(e,r.path||r)))),NQe=async(t,e)=>{let r=pa.join(e,t),i=await PQe(r,"utf8");return{cwd:e,filePath:r,content:i}},LQe=(t,e)=>{let r=pa.join(e,t),i=KJ.readFileSync(r,"utf8");return{cwd:e,filePath:r,content:i}},YJ=({ignore:t=[],cwd:e=sp(process.cwd())}={})=>({ignore:t,cwd:e});yx.exports=async t=>{t=YJ(t);let e=await UJ("**/.gitignore",{ignore:HJ.concat(t.ignore),cwd:t.cwd}),r=await Promise.all(e.map(n=>NQe(n,t.cwd))),i=GJ(r);return jJ(i,t.cwd)};yx.exports.sync=t=>{t=YJ(t);let r=UJ.sync("**/.gitignore",{ignore:HJ.concat(t.ignore),cwd:t.cwd}).map(n=>LQe(n,t.cwd)),i=GJ(r);return jJ(i,t.cwd)}});var VJ=E((Yit,JJ)=>{"use strict";var{Transform:TQe}=require("stream"),wx=class extends TQe{constructor(){super({objectMode:!0})}},WJ=class extends wx{constructor(e){super();this._filter=e}_transform(e,r,i){this._filter(e)&&this.push(e),i()}},zJ=class extends wx{constructor(){super();this._pushed=new Set}_transform(e,r,i){this._pushed.has(e)||(this.push(e),this._pushed.add(e)),i()}};JJ.exports={FilterStream:WJ,UniqueStream:zJ}});var vx=E((qit,Ul)=>{"use strict";var _J=require("fs"),hy=QY(),MQe=wS(),py=gy(),dy=xJ(),Bx=qJ(),{FilterStream:OQe,UniqueStream:KQe}=VJ(),XJ=()=>!1,ZJ=t=>t[0]==="!",UQe=t=>{if(!t.every(e=>typeof e=="string"))throw new TypeError("Patterns must be a string or an array of strings")},HQe=(t={})=>{if(!t.cwd)return;let e;try{e=_J.statSync(t.cwd)}catch{return}if(!e.isDirectory())throw new Error("The `cwd` option must be a path to a directory")},GQe=t=>t.stats instanceof _J.Stats?t.path:t,Cy=(t,e)=>{t=hy([].concat(t)),UQe(t),HQe(e);let r=[];e=P({ignore:[],expandDirectories:!0},e);for(let[i,n]of t.entries()){if(ZJ(n))continue;let s=t.slice(i).filter(a=>ZJ(a)).map(a=>a.slice(1)),o=_(P({},e),{ignore:e.ignore.concat(s)});r.push({pattern:n,options:o})}return r},jQe=(t,e)=>{let r={};return t.options.cwd&&(r.cwd=t.options.cwd),Array.isArray(t.options.expandDirectories)?r=_(P({},r),{files:t.options.expandDirectories}):typeof t.options.expandDirectories=="object"&&(r=P(P({},r),t.options.expandDirectories)),e(t.pattern,r)},Qx=(t,e)=>t.options.expandDirectories?jQe(t,e):[t.pattern],$J=t=>t&&t.gitignore?Bx.sync({cwd:t.cwd,ignore:t.ignore}):XJ,bx=t=>e=>{let{options:r}=t;return r.ignore&&Array.isArray(r.ignore)&&r.expandDirectories&&(r.ignore=dy.sync(r.ignore)),{pattern:e,options:r}};Ul.exports=async(t,e)=>{let r=Cy(t,e),i=async()=>e&&e.gitignore?Bx({cwd:e.cwd,ignore:e.ignore}):XJ,n=async()=>{let l=await Promise.all(r.map(async c=>{let u=await Qx(c,dy);return Promise.all(u.map(bx(c)))}));return hy(...l)},[s,o]=await Promise.all([i(),n()]),a=await Promise.all(o.map(l=>py(l.pattern,l.options)));return hy(...a).filter(l=>!s(GQe(l)))};Ul.exports.sync=(t,e)=>{let r=Cy(t,e),i=[];for(let o of r){let a=Qx(o,dy.sync).map(bx(o));i.push(...a)}let n=$J(e),s=[];for(let o of i)s=hy(s,py.sync(o.pattern,o.options));return s.filter(o=>!n(o))};Ul.exports.stream=(t,e)=>{let r=Cy(t,e),i=[];for(let a of r){let l=Qx(a,dy.sync).map(bx(a));i.push(...l)}let n=$J(e),s=new OQe(a=>!n(a)),o=new KQe;return MQe(i.map(a=>py.stream(a.pattern,a.options))).pipe(s).pipe(o)};Ul.exports.generateGlobTasks=Cy;Ul.exports.hasMagic=(t,e)=>[].concat(t).some(r=>py.isDynamicPattern(r,e));Ul.exports.gitignore=Bx});var Ca=E((da,Dy)=>{"use strict";Object.defineProperty(da,"__esModule",{value:!0});var A3=["Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","BigInt64Array","BigUint64Array"];function ibe(t){return A3.includes(t)}var nbe=["Function","Generator","AsyncGenerator","GeneratorFunction","AsyncGeneratorFunction","AsyncFunction","Observable","Array","Buffer","Object","RegExp","Date","Error","Map","Set","WeakMap","WeakSet","ArrayBuffer","SharedArrayBuffer","DataView","Promise","URL","FormData","URLSearchParams","HTMLElement",...A3];function sbe(t){return nbe.includes(t)}var obe=["null","undefined","string","number","bigint","boolean","symbol"];function abe(t){return obe.includes(t)}function Hu(t){return e=>typeof e===t}var{toString:l3}=Object.prototype,mp=t=>{let e=l3.call(t).slice(8,-1);if(/HTML\w+Element/.test(e)&&j.domElement(t))return"HTMLElement";if(sbe(e))return e},er=t=>e=>mp(e)===t;function j(t){if(t===null)return"null";switch(typeof t){case"undefined":return"undefined";case"string":return"string";case"number":return"number";case"boolean":return"boolean";case"function":return"Function";case"bigint":return"bigint";case"symbol":return"symbol";default:}if(j.observable(t))return"Observable";if(j.array(t))return"Array";if(j.buffer(t))return"Buffer";let e=mp(t);if(e)return e;if(t instanceof String||t instanceof Boolean||t instanceof Number)throw new TypeError("Please don't use object wrappers for primitive types");return"Object"}j.undefined=Hu("undefined");j.string=Hu("string");var Abe=Hu("number");j.number=t=>Abe(t)&&!j.nan(t);j.bigint=Hu("bigint");j.function_=Hu("function");j.null_=t=>t===null;j.class_=t=>j.function_(t)&&t.toString().startsWith("class ");j.boolean=t=>t===!0||t===!1;j.symbol=Hu("symbol");j.numericString=t=>j.string(t)&&!j.emptyStringOrWhitespace(t)&&!Number.isNaN(Number(t));j.array=(t,e)=>Array.isArray(t)?j.function_(e)?t.every(e):!0:!1;j.buffer=t=>{var e,r,i,n;return(n=(i=(r=(e=t)===null||e===void 0?void 0:e.constructor)===null||r===void 0?void 0:r.isBuffer)===null||i===void 0?void 0:i.call(r,t))!==null&&n!==void 0?n:!1};j.nullOrUndefined=t=>j.null_(t)||j.undefined(t);j.object=t=>!j.null_(t)&&(typeof t=="object"||j.function_(t));j.iterable=t=>{var e;return j.function_((e=t)===null||e===void 0?void 0:e[Symbol.iterator])};j.asyncIterable=t=>{var e;return j.function_((e=t)===null||e===void 0?void 0:e[Symbol.asyncIterator])};j.generator=t=>j.iterable(t)&&j.function_(t.next)&&j.function_(t.throw);j.asyncGenerator=t=>j.asyncIterable(t)&&j.function_(t.next)&&j.function_(t.throw);j.nativePromise=t=>er("Promise")(t);var lbe=t=>{var e,r;return j.function_((e=t)===null||e===void 0?void 0:e.then)&&j.function_((r=t)===null||r===void 0?void 0:r.catch)};j.promise=t=>j.nativePromise(t)||lbe(t);j.generatorFunction=er("GeneratorFunction");j.asyncGeneratorFunction=t=>mp(t)==="AsyncGeneratorFunction";j.asyncFunction=t=>mp(t)==="AsyncFunction";j.boundFunction=t=>j.function_(t)&&!t.hasOwnProperty("prototype");j.regExp=er("RegExp");j.date=er("Date");j.error=er("Error");j.map=t=>er("Map")(t);j.set=t=>er("Set")(t);j.weakMap=t=>er("WeakMap")(t);j.weakSet=t=>er("WeakSet")(t);j.int8Array=er("Int8Array");j.uint8Array=er("Uint8Array");j.uint8ClampedArray=er("Uint8ClampedArray");j.int16Array=er("Int16Array");j.uint16Array=er("Uint16Array");j.int32Array=er("Int32Array");j.uint32Array=er("Uint32Array");j.float32Array=er("Float32Array");j.float64Array=er("Float64Array");j.bigInt64Array=er("BigInt64Array");j.bigUint64Array=er("BigUint64Array");j.arrayBuffer=er("ArrayBuffer");j.sharedArrayBuffer=er("SharedArrayBuffer");j.dataView=er("DataView");j.directInstanceOf=(t,e)=>Object.getPrototypeOf(t)===e.prototype;j.urlInstance=t=>er("URL")(t);j.urlString=t=>{if(!j.string(t))return!1;try{return new URL(t),!0}catch(e){return!1}};j.truthy=t=>Boolean(t);j.falsy=t=>!t;j.nan=t=>Number.isNaN(t);j.primitive=t=>j.null_(t)||abe(typeof t);j.integer=t=>Number.isInteger(t);j.safeInteger=t=>Number.isSafeInteger(t);j.plainObject=t=>{if(l3.call(t)!=="[object Object]")return!1;let e=Object.getPrototypeOf(t);return e===null||e===Object.getPrototypeOf({})};j.typedArray=t=>ibe(mp(t));var cbe=t=>j.safeInteger(t)&&t>=0;j.arrayLike=t=>!j.nullOrUndefined(t)&&!j.function_(t)&&cbe(t.length);j.inRange=(t,e)=>{if(j.number(e))return t>=Math.min(0,e)&&t<=Math.max(e,0);if(j.array(e)&&e.length===2)return t>=Math.min(...e)&&t<=Math.max(...e);throw new TypeError(`Invalid range: ${JSON.stringify(e)}`)};var ube=1,gbe=["innerHTML","ownerDocument","style","attributes","nodeValue"];j.domElement=t=>j.object(t)&&t.nodeType===ube&&j.string(t.nodeName)&&!j.plainObject(t)&&gbe.every(e=>e in t);j.observable=t=>{var e,r,i,n;return t?t===((r=(e=t)[Symbol.observable])===null||r===void 0?void 0:r.call(e))||t===((n=(i=t)["@@observable"])===null||n===void 0?void 0:n.call(i)):!1};j.nodeStream=t=>j.object(t)&&j.function_(t.pipe)&&!j.observable(t);j.infinite=t=>t===Infinity||t===-Infinity;var c3=t=>e=>j.integer(e)&&Math.abs(e%2)===t;j.evenInteger=c3(0);j.oddInteger=c3(1);j.emptyArray=t=>j.array(t)&&t.length===0;j.nonEmptyArray=t=>j.array(t)&&t.length>0;j.emptyString=t=>j.string(t)&&t.length===0;j.nonEmptyString=t=>j.string(t)&&t.length>0;var fbe=t=>j.string(t)&&!/\S/.test(t);j.emptyStringOrWhitespace=t=>j.emptyString(t)||fbe(t);j.emptyObject=t=>j.object(t)&&!j.map(t)&&!j.set(t)&&Object.keys(t).length===0;j.nonEmptyObject=t=>j.object(t)&&!j.map(t)&&!j.set(t)&&Object.keys(t).length>0;j.emptySet=t=>j.set(t)&&t.size===0;j.nonEmptySet=t=>j.set(t)&&t.size>0;j.emptyMap=t=>j.map(t)&&t.size===0;j.nonEmptyMap=t=>j.map(t)&&t.size>0;j.propertyKey=t=>j.any([j.string,j.number,j.symbol],t);j.formData=t=>er("FormData")(t);j.urlSearchParams=t=>er("URLSearchParams")(t);var u3=(t,e,r)=>{if(!j.function_(e))throw new TypeError(`Invalid predicate: ${JSON.stringify(e)}`);if(r.length===0)throw new TypeError("Invalid number of values");return t.call(r,e)};j.any=(t,...e)=>(j.array(t)?t:[t]).some(i=>u3(Array.prototype.some,i,e));j.all=(t,...e)=>u3(Array.prototype.every,t,e);var Te=(t,e,r,i={})=>{if(!t){let{multipleValues:n}=i,s=n?`received values of types ${[...new Set(r.map(o=>`\`${j(o)}\``))].join(", ")}`:`received value of type \`${j(r)}\``;throw new TypeError(`Expected value which is \`${e}\`, ${s}.`)}};da.assert={undefined:t=>Te(j.undefined(t),"undefined",t),string:t=>Te(j.string(t),"string",t),number:t=>Te(j.number(t),"number",t),bigint:t=>Te(j.bigint(t),"bigint",t),function_:t=>Te(j.function_(t),"Function",t),null_:t=>Te(j.null_(t),"null",t),class_:t=>Te(j.class_(t),"Class",t),boolean:t=>Te(j.boolean(t),"boolean",t),symbol:t=>Te(j.symbol(t),"symbol",t),numericString:t=>Te(j.numericString(t),"string with a number",t),array:(t,e)=>{Te(j.array(t),"Array",t),e&&t.forEach(e)},buffer:t=>Te(j.buffer(t),"Buffer",t),nullOrUndefined:t=>Te(j.nullOrUndefined(t),"null or undefined",t),object:t=>Te(j.object(t),"Object",t),iterable:t=>Te(j.iterable(t),"Iterable",t),asyncIterable:t=>Te(j.asyncIterable(t),"AsyncIterable",t),generator:t=>Te(j.generator(t),"Generator",t),asyncGenerator:t=>Te(j.asyncGenerator(t),"AsyncGenerator",t),nativePromise:t=>Te(j.nativePromise(t),"native Promise",t),promise:t=>Te(j.promise(t),"Promise",t),generatorFunction:t=>Te(j.generatorFunction(t),"GeneratorFunction",t),asyncGeneratorFunction:t=>Te(j.asyncGeneratorFunction(t),"AsyncGeneratorFunction",t),asyncFunction:t=>Te(j.asyncFunction(t),"AsyncFunction",t),boundFunction:t=>Te(j.boundFunction(t),"Function",t),regExp:t=>Te(j.regExp(t),"RegExp",t),date:t=>Te(j.date(t),"Date",t),error:t=>Te(j.error(t),"Error",t),map:t=>Te(j.map(t),"Map",t),set:t=>Te(j.set(t),"Set",t),weakMap:t=>Te(j.weakMap(t),"WeakMap",t),weakSet:t=>Te(j.weakSet(t),"WeakSet",t),int8Array:t=>Te(j.int8Array(t),"Int8Array",t),uint8Array:t=>Te(j.uint8Array(t),"Uint8Array",t),uint8ClampedArray:t=>Te(j.uint8ClampedArray(t),"Uint8ClampedArray",t),int16Array:t=>Te(j.int16Array(t),"Int16Array",t),uint16Array:t=>Te(j.uint16Array(t),"Uint16Array",t),int32Array:t=>Te(j.int32Array(t),"Int32Array",t),uint32Array:t=>Te(j.uint32Array(t),"Uint32Array",t),float32Array:t=>Te(j.float32Array(t),"Float32Array",t),float64Array:t=>Te(j.float64Array(t),"Float64Array",t),bigInt64Array:t=>Te(j.bigInt64Array(t),"BigInt64Array",t),bigUint64Array:t=>Te(j.bigUint64Array(t),"BigUint64Array",t),arrayBuffer:t=>Te(j.arrayBuffer(t),"ArrayBuffer",t),sharedArrayBuffer:t=>Te(j.sharedArrayBuffer(t),"SharedArrayBuffer",t),dataView:t=>Te(j.dataView(t),"DataView",t),urlInstance:t=>Te(j.urlInstance(t),"URL",t),urlString:t=>Te(j.urlString(t),"string with a URL",t),truthy:t=>Te(j.truthy(t),"truthy",t),falsy:t=>Te(j.falsy(t),"falsy",t),nan:t=>Te(j.nan(t),"NaN",t),primitive:t=>Te(j.primitive(t),"primitive",t),integer:t=>Te(j.integer(t),"integer",t),safeInteger:t=>Te(j.safeInteger(t),"integer",t),plainObject:t=>Te(j.plainObject(t),"plain object",t),typedArray:t=>Te(j.typedArray(t),"TypedArray",t),arrayLike:t=>Te(j.arrayLike(t),"array-like",t),domElement:t=>Te(j.domElement(t),"HTMLElement",t),observable:t=>Te(j.observable(t),"Observable",t),nodeStream:t=>Te(j.nodeStream(t),"Node.js Stream",t),infinite:t=>Te(j.infinite(t),"infinite number",t),emptyArray:t=>Te(j.emptyArray(t),"empty array",t),nonEmptyArray:t=>Te(j.nonEmptyArray(t),"non-empty array",t),emptyString:t=>Te(j.emptyString(t),"empty string",t),nonEmptyString:t=>Te(j.nonEmptyString(t),"non-empty string",t),emptyStringOrWhitespace:t=>Te(j.emptyStringOrWhitespace(t),"empty string or whitespace",t),emptyObject:t=>Te(j.emptyObject(t),"empty object",t),nonEmptyObject:t=>Te(j.nonEmptyObject(t),"non-empty object",t),emptySet:t=>Te(j.emptySet(t),"empty set",t),nonEmptySet:t=>Te(j.nonEmptySet(t),"non-empty set",t),emptyMap:t=>Te(j.emptyMap(t),"empty map",t),nonEmptyMap:t=>Te(j.nonEmptyMap(t),"non-empty map",t),propertyKey:t=>Te(j.propertyKey(t),"PropertyKey",t),formData:t=>Te(j.formData(t),"FormData",t),urlSearchParams:t=>Te(j.urlSearchParams(t),"URLSearchParams",t),evenInteger:t=>Te(j.evenInteger(t),"even integer",t),oddInteger:t=>Te(j.oddInteger(t),"odd integer",t),directInstanceOf:(t,e)=>Te(j.directInstanceOf(t,e),"T",t),inRange:(t,e)=>Te(j.inRange(t,e),"in range",t),any:(t,...e)=>Te(j.any(t,...e),"predicate returns truthy for any value",e,{multipleValues:!0}),all:(t,...e)=>Te(j.all(t,...e),"predicate returns truthy for all values",e,{multipleValues:!0})};Object.defineProperties(j,{class:{value:j.class_},function:{value:j.function_},null:{value:j.null_}});Object.defineProperties(da.assert,{class:{value:da.assert.class_},function:{value:da.assert.function_},null:{value:da.assert.null_}});da.default=j;Dy.exports=j;Dy.exports.default=j;Dy.exports.assert=da.assert});var g3=E((gnt,Ux)=>{"use strict";var Hx=class extends Error{constructor(e){super(e||"Promise was canceled");this.name="CancelError"}get isCanceled(){return!0}},Ep=class{static fn(e){return(...r)=>new Ep((i,n,s)=>{r.push(s),e(...r).then(i,n)})}constructor(e){this._cancelHandlers=[],this._isPending=!0,this._isCanceled=!1,this._rejectOnCancel=!0,this._promise=new Promise((r,i)=>{this._reject=i;let n=a=>{this._isPending=!1,r(a)},s=a=>{this._isPending=!1,i(a)},o=a=>{if(!this._isPending)throw new Error("The `onCancel` handler was attached after the promise settled.");this._cancelHandlers.push(a)};return Object.defineProperties(o,{shouldReject:{get:()=>this._rejectOnCancel,set:a=>{this._rejectOnCancel=a}}}),e(n,s,o)})}then(e,r){return this._promise.then(e,r)}catch(e){return this._promise.catch(e)}finally(e){return this._promise.finally(e)}cancel(e){if(!(!this._isPending||this._isCanceled)){if(this._cancelHandlers.length>0)try{for(let r of this._cancelHandlers)r()}catch(r){this._reject(r)}this._isCanceled=!0,this._rejectOnCancel&&this._reject(new Hx(e))}}get isCanceled(){return this._isCanceled}};Object.setPrototypeOf(Ep.prototype,Promise.prototype);Ux.exports=Ep;Ux.exports.CancelError=Hx});var f3=E((Gx,jx)=>{"use strict";Object.defineProperty(Gx,"__esModule",{value:!0});var hbe=require("tls"),Yx=(t,e)=>{let r;typeof e=="function"?r={connect:e}:r=e;let i=typeof r.connect=="function",n=typeof r.secureConnect=="function",s=typeof r.close=="function",o=()=>{i&&r.connect(),t instanceof hbe.TLSSocket&&n&&(t.authorized?r.secureConnect():t.authorizationError||t.once("secureConnect",r.secureConnect)),s&&t.once("close",r.close)};t.writable&&!t.connecting?o():t.connecting?t.once("connect",o):t.destroyed&&s&&r.close(t._hadError)};Gx.default=Yx;jx.exports=Yx;jx.exports.default=Yx});var h3=E((qx,Jx)=>{"use strict";Object.defineProperty(qx,"__esModule",{value:!0});var pbe=f3(),dbe=Number(process.versions.node.split(".")[0]),Wx=t=>{let e={start:Date.now(),socket:void 0,lookup:void 0,connect:void 0,secureConnect:void 0,upload:void 0,response:void 0,end:void 0,error:void 0,abort:void 0,phases:{wait:void 0,dns:void 0,tcp:void 0,tls:void 0,request:void 0,firstByte:void 0,download:void 0,total:void 0}};t.timings=e;let r=o=>{let a=o.emit.bind(o);o.emit=(l,...c)=>(l==="error"&&(e.error=Date.now(),e.phases.total=e.error-e.start,o.emit=a),a(l,...c))};r(t),t.prependOnceListener("abort",()=>{e.abort=Date.now(),(!e.response||dbe>=13)&&(e.phases.total=Date.now()-e.start)});let i=o=>{e.socket=Date.now(),e.phases.wait=e.socket-e.start;let a=()=>{e.lookup=Date.now(),e.phases.dns=e.lookup-e.socket};o.prependOnceListener("lookup",a),pbe.default(o,{connect:()=>{e.connect=Date.now(),e.lookup===void 0&&(o.removeListener("lookup",a),e.lookup=e.connect,e.phases.dns=e.lookup-e.socket),e.phases.tcp=e.connect-e.lookup},secureConnect:()=>{e.secureConnect=Date.now(),e.phases.tls=e.secureConnect-e.connect}})};t.socket?i(t.socket):t.prependOnceListener("socket",i);let n=()=>{var o;e.upload=Date.now(),e.phases.request=e.upload-(o=e.secureConnect,o!=null?o:e.connect)};return(()=>typeof t.writableFinished=="boolean"?t.writableFinished:t.finished&&t.outputSize===0&&(!t.socket||t.socket.writableLength===0))()?n():t.prependOnceListener("finish",n),t.prependOnceListener("response",o=>{e.response=Date.now(),e.phases.firstByte=e.response-e.upload,o.timings=e,r(o),o.prependOnceListener("end",()=>{e.end=Date.now(),e.phases.download=e.end-e.response,e.phases.total=e.end-e.start})}),e};qx.default=Wx;Jx.exports=Wx;Jx.exports.default=Wx});var y3=E((fnt,zx)=>{"use strict";var{V4MAPPED:Cbe,ADDRCONFIG:mbe,ALL:p3,promises:{Resolver:d3},lookup:Ebe}=require("dns"),{promisify:Vx}=require("util"),Ibe=require("os"),Gu=Symbol("cacheableLookupCreateConnection"),_x=Symbol("cacheableLookupInstance"),C3=Symbol("expires"),ybe=typeof p3=="number",m3=t=>{if(!(t&&typeof t.createConnection=="function"))throw new Error("Expected an Agent instance as the first argument")},wbe=t=>{for(let e of t)e.family!==6&&(e.address=`::ffff:${e.address}`,e.family=6)},E3=()=>{let t=!1,e=!1;for(let r of Object.values(Ibe.networkInterfaces()))for(let i of r)if(!i.internal&&(i.family==="IPv6"?e=!0:t=!0,t&&e))return{has4:t,has6:e};return{has4:t,has6:e}},Bbe=t=>Symbol.iterator in t,I3={ttl:!0},Qbe={all:!0},Xx=class{constructor({cache:e=new Map,maxTtl:r=Infinity,fallbackDuration:i=3600,errorTtl:n=.15,resolver:s=new d3,lookup:o=Ebe}={}){if(this.maxTtl=r,this.errorTtl=n,this._cache=e,this._resolver=s,this._dnsLookup=Vx(o),this._resolver instanceof d3?(this._resolve4=this._resolver.resolve4.bind(this._resolver),this._resolve6=this._resolver.resolve6.bind(this._resolver)):(this._resolve4=Vx(this._resolver.resolve4.bind(this._resolver)),this._resolve6=Vx(this._resolver.resolve6.bind(this._resolver))),this._iface=E3(),this._pending={},this._nextRemovalTime=!1,this._hostnamesToFallback=new Set,i<1)this._fallback=!1;else{this._fallback=!0;let a=setInterval(()=>{this._hostnamesToFallback.clear()},i*1e3);a.unref&&a.unref()}this.lookup=this.lookup.bind(this),this.lookupAsync=this.lookupAsync.bind(this)}set servers(e){this.clear(),this._resolver.setServers(e)}get servers(){return this._resolver.getServers()}lookup(e,r,i){if(typeof r=="function"?(i=r,r={}):typeof r=="number"&&(r={family:r}),!i)throw new Error("Callback must be a function.");this.lookupAsync(e,r).then(n=>{r.all?i(null,n):i(null,n.address,n.family,n.expires,n.ttl)},i)}async lookupAsync(e,r={}){typeof r=="number"&&(r={family:r});let i=await this.query(e);if(r.family===6){let n=i.filter(s=>s.family===6);r.hints&Cbe&&(ybe&&r.hints&p3||n.length===0)?wbe(i):i=n}else r.family===4&&(i=i.filter(n=>n.family===4));if(r.hints&mbe){let{_iface:n}=this;i=i.filter(s=>s.family===6?n.has6:n.has4)}if(i.length===0){let n=new Error(`cacheableLookup ENOTFOUND ${e}`);throw n.code="ENOTFOUND",n.hostname=e,n}return r.all?i:i[0]}async query(e){let r=await this._cache.get(e);if(!r){let i=this._pending[e];if(i)r=await i;else{let n=this.queryAndCache(e);this._pending[e]=n,r=await n}}return r=r.map(i=>P({},i)),r}async _resolve(e){let r=async c=>{try{return await c}catch(u){if(u.code==="ENODATA"||u.code==="ENOTFOUND")return[];throw u}},[i,n]=await Promise.all([this._resolve4(e,I3),this._resolve6(e,I3)].map(c=>r(c))),s=0,o=0,a=0,l=Date.now();for(let c of i)c.family=4,c.expires=l+c.ttl*1e3,s=Math.max(s,c.ttl);for(let c of n)c.family=6,c.expires=l+c.ttl*1e3,o=Math.max(o,c.ttl);return i.length>0?n.length>0?a=Math.min(s,o):a=s:a=o,{entries:[...i,...n],cacheTtl:a}}async _lookup(e){try{return{entries:await this._dnsLookup(e,{all:!0}),cacheTtl:0}}catch(r){return{entries:[],cacheTtl:0}}}async _set(e,r,i){if(this.maxTtl>0&&i>0){i=Math.min(i,this.maxTtl)*1e3,r[C3]=Date.now()+i;try{await this._cache.set(e,r,i)}catch(n){this.lookupAsync=async()=>{let s=new Error("Cache Error. Please recreate the CacheableLookup instance.");throw s.cause=n,s}}Bbe(this._cache)&&this._tick(i)}}async queryAndCache(e){if(this._hostnamesToFallback.has(e))return this._dnsLookup(e,Qbe);try{let r=await this._resolve(e);r.entries.length===0&&this._fallback&&(r=await this._lookup(e),r.entries.length!==0&&this._hostnamesToFallback.add(e));let i=r.entries.length===0?this.errorTtl:r.cacheTtl;return await this._set(e,r.entries,i),delete this._pending[e],r.entries}catch(r){throw delete this._pending[e],r}}_tick(e){let r=this._nextRemovalTime;(!r||e{this._nextRemovalTime=!1;let i=Infinity,n=Date.now();for(let[s,o]of this._cache){let a=o[C3];n>=a?this._cache.delete(s):a("lookup"in r||(r.lookup=this.lookup),e[Gu](r,i))}uninstall(e){if(m3(e),e[Gu]){if(e[_x]!==this)throw new Error("The agent is not owned by this CacheableLookup instance");e.createConnection=e[Gu],delete e[Gu],delete e[_x]}}updateInterfaceInfo(){let{_iface:e}=this;this._iface=E3(),(e.has4&&!this._iface.has4||e.has6&&!this._iface.has6)&&this._cache.clear()}clear(e){if(e){this._cache.delete(e);return}this._cache.clear()}};zx.exports=Xx;zx.exports.default=Xx});var Q3=E((hnt,Zx)=>{"use strict";var bbe=typeof URL=="undefined"?require("url").URL:URL,vbe="text/plain",Sbe="us-ascii",w3=(t,e)=>e.some(r=>r instanceof RegExp?r.test(t):r===t),xbe=(t,{stripHash:e})=>{let r=t.match(/^data:([^,]*?),([^#]*?)(?:#(.*))?$/);if(!r)throw new Error(`Invalid URL: ${t}`);let i=r[1].split(";"),n=r[2],s=e?"":r[3],o=!1;i[i.length-1]==="base64"&&(i.pop(),o=!0);let a=(i.shift()||"").toLowerCase(),c=[...i.map(u=>{let[g,f=""]=u.split("=").map(h=>h.trim());return g==="charset"&&(f=f.toLowerCase(),f===Sbe)?"":`${g}${f?`=${f}`:""}`}).filter(Boolean)];return o&&c.push("base64"),(c.length!==0||a&&a!==vbe)&&c.unshift(a),`data:${c.join(";")},${o?n.trim():n}${s?`#${s}`:""}`},B3=(t,e)=>{if(e=P({defaultProtocol:"http:",normalizeProtocol:!0,forceHttp:!1,forceHttps:!1,stripAuthentication:!0,stripHash:!1,stripWWW:!0,removeQueryParameters:[/^utm_\w+/i],removeTrailingSlash:!0,removeDirectoryIndex:!1,sortQueryParameters:!0},e),Reflect.has(e,"normalizeHttps"))throw new Error("options.normalizeHttps is renamed to options.forceHttp");if(Reflect.has(e,"normalizeHttp"))throw new Error("options.normalizeHttp is renamed to options.forceHttps");if(Reflect.has(e,"stripFragment"))throw new Error("options.stripFragment is renamed to options.stripHash");if(t=t.trim(),/^data:/i.test(t))return xbe(t,e);let r=t.startsWith("//");!r&&/^\.*\//.test(t)||(t=t.replace(/^(?!(?:\w+:)?\/\/)|^\/\//,e.defaultProtocol));let n=new bbe(t);if(e.forceHttp&&e.forceHttps)throw new Error("The `forceHttp` and `forceHttps` options cannot be used together");if(e.forceHttp&&n.protocol==="https:"&&(n.protocol="http:"),e.forceHttps&&n.protocol==="http:"&&(n.protocol="https:"),e.stripAuthentication&&(n.username="",n.password=""),e.stripHash&&(n.hash=""),n.pathname&&(n.pathname=n.pathname.replace(/((?!:).|^)\/{2,}/g,(s,o)=>/^(?!\/)/g.test(o)?`${o}/`:"/")),n.pathname&&(n.pathname=decodeURI(n.pathname)),e.removeDirectoryIndex===!0&&(e.removeDirectoryIndex=[/^index\.[a-z]+$/]),Array.isArray(e.removeDirectoryIndex)&&e.removeDirectoryIndex.length>0){let s=n.pathname.split("/"),o=s[s.length-1];w3(o,e.removeDirectoryIndex)&&(s=s.slice(0,s.length-1),n.pathname=s.slice(1).join("/")+"/")}if(n.hostname&&(n.hostname=n.hostname.replace(/\.$/,""),e.stripWWW&&/^www\.([a-z\-\d]{2,63})\.([a-z.]{2,5})$/.test(n.hostname)&&(n.hostname=n.hostname.replace(/^www\./,""))),Array.isArray(e.removeQueryParameters))for(let s of[...n.searchParams.keys()])w3(s,e.removeQueryParameters)&&n.searchParams.delete(s);return e.sortQueryParameters&&n.searchParams.sort(),e.removeTrailingSlash&&(n.pathname=n.pathname.replace(/\/$/,"")),t=n.toString(),(e.removeTrailingSlash||n.pathname==="/")&&n.hash===""&&(t=t.replace(/\/$/,"")),r&&!e.normalizeProtocol&&(t=t.replace(/^http:\/\//,"//")),e.stripProtocol&&(t=t.replace(/^(?:https?:)?\/\//,"")),t};Zx.exports=B3;Zx.exports.default=B3});var S3=E((pnt,b3)=>{b3.exports=v3;function v3(t,e){if(t&&e)return v3(t)(e);if(typeof t!="function")throw new TypeError("need wrapper function");return Object.keys(t).forEach(function(i){r[i]=t[i]}),r;function r(){for(var i=new Array(arguments.length),n=0;n{var x3=S3();$x.exports=x3(Ry);$x.exports.strict=x3(k3);Ry.proto=Ry(function(){Object.defineProperty(Function.prototype,"once",{value:function(){return Ry(this)},configurable:!0}),Object.defineProperty(Function.prototype,"onceStrict",{value:function(){return k3(this)},configurable:!0})});function Ry(t){var e=function(){return e.called?e.value:(e.called=!0,e.value=t.apply(this,arguments))};return e.called=!1,e}function k3(t){var e=function(){if(e.called)throw new Error(e.onceError);return e.called=!0,e.value=t.apply(this,arguments)},r=t.name||"Function wrapped with `once`";return e.onceError=r+" shouldn't be called more than once",e.called=!1,e}});var tk=E((Cnt,P3)=>{var kbe=ek(),Pbe=function(){},Dbe=function(t){return t.setHeader&&typeof t.abort=="function"},Rbe=function(t){return t.stdio&&Array.isArray(t.stdio)&&t.stdio.length===3},D3=function(t,e,r){if(typeof e=="function")return D3(t,null,e);e||(e={}),r=kbe(r||Pbe);var i=t._writableState,n=t._readableState,s=e.readable||e.readable!==!1&&t.readable,o=e.writable||e.writable!==!1&&t.writable,a=function(){t.writable||l()},l=function(){o=!1,s||r.call(t)},c=function(){s=!1,o||r.call(t)},u=function(p){r.call(t,p?new Error("exited with error code: "+p):null)},g=function(p){r.call(t,p)},f=function(){if(s&&!(n&&n.ended))return r.call(t,new Error("premature close"));if(o&&!(i&&i.ended))return r.call(t,new Error("premature close"))},h=function(){t.req.on("finish",l)};return Dbe(t)?(t.on("complete",l),t.on("abort",f),t.req?h():t.on("request",h)):o&&!i&&(t.on("end",a),t.on("close",a)),Rbe(t)&&t.on("exit",u),t.on("end",c),t.on("finish",l),e.error!==!1&&t.on("error",g),t.on("close",f),function(){t.removeListener("complete",l),t.removeListener("abort",f),t.removeListener("request",h),t.req&&t.req.removeListener("finish",l),t.removeListener("end",a),t.removeListener("close",a),t.removeListener("finish",l),t.removeListener("exit",u),t.removeListener("end",c),t.removeListener("error",g),t.removeListener("close",f)}};P3.exports=D3});var N3=E((mnt,R3)=>{var Fbe=ek(),Nbe=tk(),rk=require("fs"),Ip=function(){},Lbe=/^v?\.0/.test(process.version),Fy=function(t){return typeof t=="function"},Tbe=function(t){return!Lbe||!rk?!1:(t instanceof(rk.ReadStream||Ip)||t instanceof(rk.WriteStream||Ip))&&Fy(t.close)},Mbe=function(t){return t.setHeader&&Fy(t.abort)},Obe=function(t,e,r,i){i=Fbe(i);var n=!1;t.on("close",function(){n=!0}),Nbe(t,{readable:e,writable:r},function(o){if(o)return i(o);n=!0,i()});var s=!1;return function(o){if(!n&&!s){if(s=!0,Tbe(t))return t.close(Ip);if(Mbe(t))return t.abort();if(Fy(t.destroy))return t.destroy();i(o||new Error("stream was destroyed"))}}},F3=function(t){t()},Kbe=function(t,e){return t.pipe(e)},Ube=function(){var t=Array.prototype.slice.call(arguments),e=Fy(t[t.length-1]||Ip)&&t.pop()||Ip;if(Array.isArray(t[0])&&(t=t[0]),t.length<2)throw new Error("pump requires two streams per minimum");var r,i=t.map(function(n,s){var o=s0;return Obe(n,o,a,function(l){r||(r=l),l&&i.forEach(F3),!o&&(i.forEach(F3),e(r))})});return t.reduce(Kbe)};R3.exports=Ube});var T3=E((Ent,L3)=>{"use strict";var{PassThrough:Hbe}=require("stream");L3.exports=t=>{t=P({},t);let{array:e}=t,{encoding:r}=t,i=r==="buffer",n=!1;e?n=!(r||i):r=r||"utf8",i&&(r=null);let s=new Hbe({objectMode:n});r&&s.setEncoding(r);let o=0,a=[];return s.on("data",l=>{a.push(l),n?o=a.length:o+=l.length}),s.getBufferedValue=()=>e?a:i?Buffer.concat(a,o):a.join(""),s.getBufferedLength=()=>o,s}});var M3=E((Int,ju)=>{"use strict";var Gbe=N3(),jbe=T3(),ik=class extends Error{constructor(){super("maxBuffer exceeded");this.name="MaxBufferError"}};async function Ny(t,e){if(!t)return Promise.reject(new Error("Expected a stream"));e=P({maxBuffer:Infinity},e);let{maxBuffer:r}=e,i;return await new Promise((n,s)=>{let o=a=>{a&&(a.bufferedData=i.getBufferedValue()),s(a)};i=Gbe(t,jbe(e),a=>{if(a){o(a);return}n()}),i.on("data",()=>{i.getBufferedLength()>r&&o(new ik)})}),i.getBufferedValue()}ju.exports=Ny;ju.exports.default=Ny;ju.exports.buffer=(t,e)=>Ny(t,_(P({},e),{encoding:"buffer"}));ju.exports.array=(t,e)=>Ny(t,_(P({},e),{array:!0}));ju.exports.MaxBufferError=ik});var K3=E((wnt,O3)=>{"use strict";var Ybe=[200,203,204,206,300,301,404,405,410,414,501],qbe=[200,203,204,300,301,302,303,307,308,404,405,410,414,501],Jbe={date:!0,connection:!0,"keep-alive":!0,"proxy-authenticate":!0,"proxy-authorization":!0,te:!0,trailer:!0,"transfer-encoding":!0,upgrade:!0},Wbe={"content-length":!0,"content-encoding":!0,"transfer-encoding":!0,"content-range":!0};function nk(t){let e={};if(!t)return e;let r=t.trim().split(/\s*,\s*/);for(let i of r){let[n,s]=i.split(/\s*=\s*/,2);e[n]=s===void 0?!0:s.replace(/^"|"$/g,"")}return e}function zbe(t){let e=[];for(let r in t){let i=t[r];e.push(i===!0?r:r+"="+i)}if(!!e.length)return e.join(", ")}O3.exports=class{constructor(e,r,{shared:i,cacheHeuristic:n,immutableMinTimeToLive:s,ignoreCargoCult:o,trustServerDate:a,_fromObject:l}={}){if(l){this._fromObject(l);return}if(!r||!r.headers)throw Error("Response headers missing");this._assertRequestHasHeaders(e),this._responseTime=this.now(),this._isShared=i!==!1,this._trustServerDate=a!==void 0?a:!0,this._cacheHeuristic=n!==void 0?n:.1,this._immutableMinTtl=s!==void 0?s:24*3600*1e3,this._status="status"in r?r.status:200,this._resHeaders=r.headers,this._rescc=nk(r.headers["cache-control"]),this._method="method"in e?e.method:"GET",this._url=e.url,this._host=e.headers.host,this._noAuthorization=!e.headers.authorization,this._reqHeaders=r.headers.vary?e.headers:null,this._reqcc=nk(e.headers["cache-control"]),o&&"pre-check"in this._rescc&&"post-check"in this._rescc&&(delete this._rescc["pre-check"],delete this._rescc["post-check"],delete this._rescc["no-cache"],delete this._rescc["no-store"],delete this._rescc["must-revalidate"],this._resHeaders=Object.assign({},this._resHeaders,{"cache-control":zbe(this._rescc)}),delete this._resHeaders.expires,delete this._resHeaders.pragma),!r.headers["cache-control"]&&/no-cache/.test(r.headers.pragma)&&(this._rescc["no-cache"]=!0)}now(){return Date.now()}storable(){return!!(!this._reqcc["no-store"]&&(this._method==="GET"||this._method==="HEAD"||this._method==="POST"&&this._hasExplicitExpiration())&&qbe.indexOf(this._status)!==-1&&!this._rescc["no-store"]&&(!this._isShared||!this._rescc.private)&&(!this._isShared||this._noAuthorization||this._allowsStoringAuthenticated())&&(this._resHeaders.expires||this._rescc.public||this._rescc["max-age"]||this._rescc["s-maxage"]||Ybe.indexOf(this._status)!==-1))}_hasExplicitExpiration(){return this._isShared&&this._rescc["s-maxage"]||this._rescc["max-age"]||this._resHeaders.expires}_assertRequestHasHeaders(e){if(!e||!e.headers)throw Error("Request headers missing")}satisfiesWithoutRevalidation(e){this._assertRequestHasHeaders(e);let r=nk(e.headers["cache-control"]);return r["no-cache"]||/no-cache/.test(e.headers.pragma)||r["max-age"]&&this.age()>r["max-age"]||r["min-fresh"]&&this.timeToLive()<1e3*r["min-fresh"]||this.stale()&&!(r["max-stale"]&&!this._rescc["must-revalidate"]&&(r["max-stale"]===!0||r["max-stale"]>this.age()-this.maxAge()))?!1:this._requestMatches(e,!1)}_requestMatches(e,r){return(!this._url||this._url===e.url)&&this._host===e.headers.host&&(!e.method||this._method===e.method||r&&e.method==="HEAD")&&this._varyMatches(e)}_allowsStoringAuthenticated(){return this._rescc["must-revalidate"]||this._rescc.public||this._rescc["s-maxage"]}_varyMatches(e){if(!this._resHeaders.vary)return!0;if(this._resHeaders.vary==="*")return!1;let r=this._resHeaders.vary.trim().toLowerCase().split(/\s*,\s*/);for(let i of r)if(e.headers[i]!==this._reqHeaders[i])return!1;return!0}_copyWithoutHopByHopHeaders(e){let r={};for(let i in e)Jbe[i]||(r[i]=e[i]);if(e.connection){let i=e.connection.trim().split(/\s*,\s*/);for(let n of i)delete r[n]}if(r.warning){let i=r.warning.split(/,/).filter(n=>!/^\s*1[0-9][0-9]/.test(n));i.length?r.warning=i.join(",").trim():delete r.warning}return r}responseHeaders(){let e=this._copyWithoutHopByHopHeaders(this._resHeaders),r=this.age();return r>3600*24&&!this._hasExplicitExpiration()&&this.maxAge()>3600*24&&(e.warning=(e.warning?`${e.warning}, `:"")+'113 - "rfc7234 5.5.4"'),e.age=`${Math.round(r)}`,e.date=new Date(this.now()).toUTCString(),e}date(){return this._trustServerDate?this._serverDate():this._responseTime}_serverDate(){let e=Date.parse(this._resHeaders.date);if(isFinite(e)){let r=8*3600*1e3;if(Math.abs(this._responseTime-e)e&&(e=i)}let r=(this.now()-this._responseTime)/1e3;return e+r}_ageValue(){let e=parseInt(this._resHeaders.age);return isFinite(e)?e:0}maxAge(){if(!this.storable()||this._rescc["no-cache"]||this._isShared&&this._resHeaders["set-cookie"]&&!this._rescc.public&&!this._rescc.immutable||this._resHeaders.vary==="*")return 0;if(this._isShared){if(this._rescc["proxy-revalidate"])return 0;if(this._rescc["s-maxage"])return parseInt(this._rescc["s-maxage"],10)}if(this._rescc["max-age"])return parseInt(this._rescc["max-age"],10);let e=this._rescc.immutable?this._immutableMinTtl:0,r=this._serverDate();if(this._resHeaders.expires){let i=Date.parse(this._resHeaders.expires);return Number.isNaN(i)||ii)return Math.max(e,(r-i)/1e3*this._cacheHeuristic)}return e}timeToLive(){return Math.max(0,this.maxAge()-this.age())*1e3}stale(){return this.maxAge()<=this.age()}static fromObject(e){return new this(void 0,void 0,{_fromObject:e})}_fromObject(e){if(this._responseTime)throw Error("Reinitialized");if(!e||e.v!==1)throw Error("Invalid serialization");this._responseTime=e.t,this._isShared=e.sh,this._cacheHeuristic=e.ch,this._immutableMinTtl=e.imm!==void 0?e.imm:24*3600*1e3,this._status=e.st,this._resHeaders=e.resh,this._rescc=e.rescc,this._method=e.m,this._url=e.u,this._host=e.h,this._noAuthorization=e.a,this._reqHeaders=e.reqh,this._reqcc=e.reqcc}toObject(){return{v:1,t:this._responseTime,sh:this._isShared,ch:this._cacheHeuristic,imm:this._immutableMinTtl,st:this._status,resh:this._resHeaders,rescc:this._rescc,m:this._method,u:this._url,h:this._host,a:this._noAuthorization,reqh:this._reqHeaders,reqcc:this._reqcc}}revalidationHeaders(e){this._assertRequestHasHeaders(e);let r=this._copyWithoutHopByHopHeaders(e.headers);if(delete r["if-range"],!this._requestMatches(e,!0)||!this.storable())return delete r["if-none-match"],delete r["if-modified-since"],r;if(this._resHeaders.etag&&(r["if-none-match"]=r["if-none-match"]?`${r["if-none-match"]}, ${this._resHeaders.etag}`:this._resHeaders.etag),r["accept-ranges"]||r["if-match"]||r["if-unmodified-since"]||this._method&&this._method!="GET"){if(delete r["if-modified-since"],r["if-none-match"]){let n=r["if-none-match"].split(/,/).filter(s=>!/^\s*W\//.test(s));n.length?r["if-none-match"]=n.join(",").trim():delete r["if-none-match"]}}else this._resHeaders["last-modified"]&&!r["if-modified-since"]&&(r["if-modified-since"]=this._resHeaders["last-modified"]);return r}revalidatedPolicy(e,r){if(this._assertRequestHasHeaders(e),!r||!r.headers)throw Error("Response headers missing");let i=!1;if(r.status!==void 0&&r.status!=304?i=!1:r.headers.etag&&!/^\s*W\//.test(r.headers.etag)?i=this._resHeaders.etag&&this._resHeaders.etag.replace(/^\s*W\//,"")===r.headers.etag:this._resHeaders.etag&&r.headers.etag?i=this._resHeaders.etag.replace(/^\s*W\//,"")===r.headers.etag.replace(/^\s*W\//,""):this._resHeaders["last-modified"]?i=this._resHeaders["last-modified"]===r.headers["last-modified"]:!this._resHeaders.etag&&!this._resHeaders["last-modified"]&&!r.headers.etag&&!r.headers["last-modified"]&&(i=!0),!i)return{policy:new this.constructor(e,r),modified:r.status!=304,matches:!1};let n={};for(let o in this._resHeaders)n[o]=o in r.headers&&!Wbe[o]?r.headers[o]:this._resHeaders[o];let s=Object.assign({},r,{status:this._status,method:this._method,headers:n});return{policy:new this.constructor(e,s,{shared:this._isShared,cacheHeuristic:this._cacheHeuristic,immutableMinTimeToLive:this._immutableMinTtl,trustServerDate:this._trustServerDate}),modified:!1,matches:!0}}}});var Ly=E((Bnt,U3)=>{"use strict";U3.exports=t=>{let e={};for(let[r,i]of Object.entries(t))e[r.toLowerCase()]=i;return e}});var j3=E((Qnt,H3)=>{"use strict";var Vbe=require("stream").Readable,_be=Ly(),G3=class extends Vbe{constructor(e,r,i,n){if(typeof e!="number")throw new TypeError("Argument `statusCode` should be a number");if(typeof r!="object")throw new TypeError("Argument `headers` should be an object");if(!(i instanceof Buffer))throw new TypeError("Argument `body` should be a buffer");if(typeof n!="string")throw new TypeError("Argument `url` should be a string");super();this.statusCode=e,this.headers=_be(r),this.body=i,this.url=n}_read(){this.push(this.body),this.push(null)}};H3.exports=G3});var q3=E((bnt,Y3)=>{"use strict";var Xbe=["destroy","setTimeout","socket","headers","trailers","rawHeaders","statusCode","httpVersion","httpVersionMinor","httpVersionMajor","rawTrailers","statusMessage"];Y3.exports=(t,e)=>{let r=new Set(Object.keys(t).concat(Xbe));for(let i of r)i in e||(e[i]=typeof t[i]=="function"?t[i].bind(t):t[i])}});var W3=E((vnt,J3)=>{"use strict";var Zbe=require("stream").PassThrough,$be=q3(),eve=t=>{if(!(t&&t.pipe))throw new TypeError("Parameter `response` must be a response stream.");let e=new Zbe;return $be(t,e),t.pipe(e)};J3.exports=eve});var z3=E(sk=>{sk.stringify=function t(e){if(typeof e=="undefined")return e;if(e&&Buffer.isBuffer(e))return JSON.stringify(":base64:"+e.toString("base64"));if(e&&e.toJSON&&(e=e.toJSON()),e&&typeof e=="object"){var r="",i=Array.isArray(e);r=i?"[":"{";var n=!0;for(var s in e){var o=typeof e[s]=="function"||!i&&typeof e[s]=="undefined";Object.hasOwnProperty.call(e,s)&&!o&&(n||(r+=","),n=!1,i?e[s]==null?r+="null":r+=t(e[s]):e[s]!==void 0&&(r+=t(s)+":"+t(e[s])))}return r+=i?"]":"}",r}else return typeof e=="string"?JSON.stringify(/^:/.test(e)?":"+e:e):typeof e=="undefined"?"null":JSON.stringify(e)};sk.parse=function(t){return JSON.parse(t,function(e,r){return typeof r=="string"?/^:base64:/.test(r)?Buffer.from(r.substring(8),"base64"):/^:/.test(r)?r.substring(1):r:r})}});var Z3=E((xnt,V3)=>{"use strict";var tve=require("events"),_3=z3(),rve=t=>{let e={redis:"@keyv/redis",mongodb:"@keyv/mongo",mongo:"@keyv/mongo",sqlite:"@keyv/sqlite",postgresql:"@keyv/postgres",postgres:"@keyv/postgres",mysql:"@keyv/mysql"};if(t.adapter||t.uri){let r=t.adapter||/^[^:]*/.exec(t.uri)[0];return new(require(e[r]))(t)}return new Map},X3=class extends tve{constructor(e,r){super();if(this.opts=Object.assign({namespace:"keyv",serialize:_3.stringify,deserialize:_3.parse},typeof e=="string"?{uri:e}:e,r),!this.opts.store){let i=Object.assign({},this.opts);this.opts.store=rve(i)}typeof this.opts.store.on=="function"&&this.opts.store.on("error",i=>this.emit("error",i)),this.opts.store.namespace=this.opts.namespace}_getKeyPrefix(e){return`${this.opts.namespace}:${e}`}get(e,r){e=this._getKeyPrefix(e);let{store:i}=this.opts;return Promise.resolve().then(()=>i.get(e)).then(n=>typeof n=="string"?this.opts.deserialize(n):n).then(n=>{if(n!==void 0){if(typeof n.expires=="number"&&Date.now()>n.expires){this.delete(e);return}return r&&r.raw?n:n.value}})}set(e,r,i){e=this._getKeyPrefix(e),typeof i=="undefined"&&(i=this.opts.ttl),i===0&&(i=void 0);let{store:n}=this.opts;return Promise.resolve().then(()=>{let s=typeof i=="number"?Date.now()+i:null;return r={value:r,expires:s},this.opts.serialize(r)}).then(s=>n.set(e,s,i)).then(()=>!0)}delete(e){e=this._getKeyPrefix(e);let{store:r}=this.opts;return Promise.resolve().then(()=>r.delete(e))}clear(){let{store:e}=this.opts;return Promise.resolve().then(()=>e.clear())}};V3.exports=X3});var tW=E((knt,$3)=>{"use strict";var ive=require("events"),Ty=require("url"),nve=Q3(),sve=M3(),ok=K3(),eW=j3(),ove=Ly(),ave=W3(),Ave=Z3(),yo=class{constructor(e,r){if(typeof e!="function")throw new TypeError("Parameter `request` must be a function");return this.cache=new Ave({uri:typeof r=="string"&&r,store:typeof r!="string"&&r,namespace:"cacheable-request"}),this.createCacheableRequest(e)}createCacheableRequest(e){return(r,i)=>{let n;if(typeof r=="string")n=ak(Ty.parse(r)),r={};else if(r instanceof Ty.URL)n=ak(Ty.parse(r.toString())),r={};else{let[g,...f]=(r.path||"").split("?"),h=f.length>0?`?${f.join("?")}`:"";n=ak(_(P({},r),{pathname:g,search:h}))}r=P(P({headers:{},method:"GET",cache:!0,strictTtl:!1,automaticFailover:!1},r),lve(n)),r.headers=ove(r.headers);let s=new ive,o=nve(Ty.format(n),{stripWWW:!1,removeTrailingSlash:!1,stripAuthentication:!1}),a=`${r.method}:${o}`,l=!1,c=!1,u=g=>{c=!0;let f=!1,h,p=new Promise(m=>{h=()=>{f||(f=!0,m())}}),d=m=>{if(l&&!g.forceRefresh){m.status=m.statusCode;let B=ok.fromObject(l.cachePolicy).revalidatedPolicy(g,m);if(!B.modified){let b=B.policy.responseHeaders();m=new eW(l.statusCode,b,l.body,l.url),m.cachePolicy=B.policy,m.fromCache=!0}}m.fromCache||(m.cachePolicy=new ok(g,m,g),m.fromCache=!1);let I;g.cache&&m.cachePolicy.storable()?(I=ave(m),(async()=>{try{let B=sve.buffer(m);if(await Promise.race([p,new Promise(L=>m.once("end",L))]),f)return;let b=await B,R={cachePolicy:m.cachePolicy.toObject(),url:m.url,statusCode:m.fromCache?l.statusCode:m.statusCode,body:b},H=g.strictTtl?m.cachePolicy.timeToLive():void 0;g.maxTtl&&(H=H?Math.min(H,g.maxTtl):g.maxTtl),await this.cache.set(a,R,H)}catch(B){s.emit("error",new yo.CacheError(B))}})()):g.cache&&l&&(async()=>{try{await this.cache.delete(a)}catch(B){s.emit("error",new yo.CacheError(B))}})(),s.emit("response",I||m),typeof i=="function"&&i(I||m)};try{let m=e(g,d);m.once("error",h),m.once("abort",h),s.emit("request",m)}catch(m){s.emit("error",new yo.RequestError(m))}};return(async()=>{let g=async h=>{await Promise.resolve();let p=h.cache?await this.cache.get(a):void 0;if(typeof p=="undefined")return u(h);let d=ok.fromObject(p.cachePolicy);if(d.satisfiesWithoutRevalidation(h)&&!h.forceRefresh){let m=d.responseHeaders(),I=new eW(p.statusCode,m,p.body,p.url);I.cachePolicy=d,I.fromCache=!0,s.emit("response",I),typeof i=="function"&&i(I)}else l=p,h.headers=d.revalidationHeaders(h),u(h)},f=h=>s.emit("error",new yo.CacheError(h));this.cache.once("error",f),s.on("response",()=>this.cache.removeListener("error",f));try{await g(r)}catch(h){r.automaticFailover&&!c&&u(r),s.emit("error",new yo.CacheError(h))}})(),s}}};function lve(t){let e=P({},t);return e.path=`${t.pathname||"/"}${t.search||""}`,delete e.pathname,delete e.search,e}function ak(t){return{protocol:t.protocol,auth:t.auth,hostname:t.hostname||t.host||"localhost",port:t.port,pathname:t.pathname,search:t.search}}yo.RequestError=class extends Error{constructor(t){super(t.message);this.name="RequestError",Object.assign(this,t)}};yo.CacheError=class extends Error{constructor(t){super(t.message);this.name="CacheError",Object.assign(this,t)}};$3.exports=yo});var iW=E((Pnt,rW)=>{"use strict";var cve=["aborted","complete","headers","httpVersion","httpVersionMinor","httpVersionMajor","method","rawHeaders","rawTrailers","setTimeout","socket","statusCode","statusMessage","trailers","url"];rW.exports=(t,e)=>{if(e._readableState.autoDestroy)throw new Error("The second stream must have the `autoDestroy` option set to `false`");let r=new Set(Object.keys(t).concat(cve)),i={};for(let n of r)n in e||(i[n]={get(){let s=t[n];return typeof s=="function"?s.bind(t):s},set(s){t[n]=s},enumerable:!0,configurable:!1});return Object.defineProperties(e,i),t.once("aborted",()=>{e.destroy(),e.emit("aborted")}),t.once("close",()=>{t.complete&&e.readable?e.once("end",()=>{e.emit("close")}):e.emit("close")}),e}});var sW=E((Dnt,nW)=>{"use strict";var{Transform:uve,PassThrough:gve}=require("stream"),Ak=require("zlib"),fve=iW();nW.exports=t=>{let e=(t.headers["content-encoding"]||"").toLowerCase();if(!["gzip","deflate","br"].includes(e))return t;let r=e==="br";if(r&&typeof Ak.createBrotliDecompress!="function")return t.destroy(new Error("Brotli is not supported on Node.js < 12")),t;let i=!0,n=new uve({transform(a,l,c){i=!1,c(null,a)},flush(a){a()}}),s=new gve({autoDestroy:!1,destroy(a,l){t.destroy(),l(a)}}),o=r?Ak.createBrotliDecompress():Ak.createUnzip();return o.once("error",a=>{if(i&&!t.readable){s.end();return}s.destroy(a)}),fve(t,s),t.pipe(n).pipe(o).pipe(s),s}});var lk=E((Rnt,oW)=>{"use strict";var aW=class{constructor(e={}){if(!(e.maxSize&&e.maxSize>0))throw new TypeError("`maxSize` must be a number greater than 0");this.maxSize=e.maxSize,this.onEviction=e.onEviction,this.cache=new Map,this.oldCache=new Map,this._size=0}_set(e,r){if(this.cache.set(e,r),this._size++,this._size>=this.maxSize){if(this._size=0,typeof this.onEviction=="function")for(let[i,n]of this.oldCache.entries())this.onEviction(i,n);this.oldCache=this.cache,this.cache=new Map}}get(e){if(this.cache.has(e))return this.cache.get(e);if(this.oldCache.has(e)){let r=this.oldCache.get(e);return this.oldCache.delete(e),this._set(e,r),r}}set(e,r){return this.cache.has(e)?this.cache.set(e,r):this._set(e,r),this}has(e){return this.cache.has(e)||this.oldCache.has(e)}peek(e){if(this.cache.has(e))return this.cache.get(e);if(this.oldCache.has(e))return this.oldCache.get(e)}delete(e){let r=this.cache.delete(e);return r&&this._size--,this.oldCache.delete(e)||r}clear(){this.cache.clear(),this.oldCache.clear(),this._size=0}*keys(){for(let[e]of this)yield e}*values(){for(let[,e]of this)yield e}*[Symbol.iterator](){for(let e of this.cache)yield e;for(let e of this.oldCache){let[r]=e;this.cache.has(r)||(yield e)}}get size(){let e=0;for(let r of this.oldCache.keys())this.cache.has(r)||e++;return Math.min(this._size+e,this.maxSize)}};oW.exports=aW});var uk=E((Fnt,AW)=>{"use strict";var hve=require("events"),pve=require("tls"),dve=require("http2"),Cve=lk(),_i=Symbol("currentStreamsCount"),lW=Symbol("request"),ns=Symbol("cachedOriginSet"),Yu=Symbol("gracefullyClosing"),mve=["maxDeflateDynamicTableSize","maxSessionMemory","maxHeaderListPairs","maxOutstandingPings","maxReservedRemoteStreams","maxSendHeaderBlockLength","paddingStrategy","localAddress","path","rejectUnauthorized","minDHSize","ca","cert","clientCertEngine","ciphers","key","pfx","servername","minVersion","maxVersion","secureProtocol","crl","honorCipherOrder","ecdhCurve","dhparam","secureOptions","sessionIdContext"],Eve=(t,e,r)=>{let i=0,n=t.length;for(;i>>1;r(t[s],e)?i=s+1:n=s}return i},Ive=(t,e)=>t.remoteSettings.maxConcurrentStreams>e.remoteSettings.maxConcurrentStreams,ck=(t,e)=>{for(let r of t)r[ns].lengthe[ns].includes(i))&&r[_i]+e[_i]<=e.remoteSettings.maxConcurrentStreams&&cW(r)},yve=(t,e)=>{for(let r of t)e[ns].lengthr[ns].includes(i))&&e[_i]+r[_i]<=r.remoteSettings.maxConcurrentStreams&&cW(e)},uW=({agent:t,isFree:e})=>{let r={};for(let i in t.sessions){let s=t.sessions[i].filter(o=>{let a=o[ma.kCurrentStreamsCount]{t[Yu]=!0,t[_i]===0&&t.close()},ma=class extends hve{constructor({timeout:e=6e4,maxSessions:r=Infinity,maxFreeSessions:i=10,maxCachedTlsSessions:n=100}={}){super();this.sessions={},this.queue={},this.timeout=e,this.maxSessions=r,this.maxFreeSessions=i,this._freeSessionsCount=0,this._sessionsCount=0,this.settings={enablePush:!1},this.tlsSessionCache=new Cve({maxSize:n})}static normalizeOrigin(e,r){return typeof e=="string"&&(e=new URL(e)),r&&e.hostname!==r&&(e.hostname=r),e.origin}normalizeOptions(e){let r="";if(e)for(let i of mve)e[i]&&(r+=`:${e[i]}`);return r}_tryToCreateNewSession(e,r){if(!(e in this.queue)||!(r in this.queue[e]))return;let i=this.queue[e][r];this._sessionsCount{Array.isArray(i)?(i=[...i],n()):i=[{resolve:n,reject:s}];let o=this.normalizeOptions(r),a=ma.normalizeOrigin(e,r&&r.servername);if(a===void 0){for(let{reject:u}of i)u(new TypeError("The `origin` argument needs to be a string or an URL object"));return}if(o in this.sessions){let u=this.sessions[o],g=-1,f=-1,h;for(let p of u){let d=p.remoteSettings.maxConcurrentStreams;if(d=d||p[Yu]||p.destroyed)continue;h||(g=d),m>f&&(h=p,f=m)}}if(h){if(i.length!==1){for(let{reject:p}of i){let d=new Error(`Expected the length of listeners to be 1, got ${i.length}. -Please report this to https://github.com/szmarczak/http2-wrapper/`);p(d)}return}i[0].resolve(h);return}}if(o in this.queue){if(a in this.queue[o]){this.queue[o][a].listeners.push(...i),this._tryToCreateNewSession(o,a);return}}else this.queue[o]={};let l=()=>{o in this.queue&&this.queue[o][a]===c&&(delete this.queue[o][a],Object.keys(this.queue[o]).length===0&&delete this.queue[o])},c=()=>{let u=`${a}:${o}`,g=!1;try{let f=dve.connect(e,P({createConnection:this.createConnection,settings:this.settings,session:this.tlsSessionCache.get(u)},r));f[_i]=0,f[Yu]=!1;let h=()=>f[_i]{this.tlsSessionCache.set(u,m)}),f.once("error",m=>{for(let{reject:I}of i)I(m);this.tlsSessionCache.delete(u)}),f.setTimeout(this.timeout,()=>{f.destroy()}),f.once("close",()=>{if(g){p&&this._freeSessionsCount--,this._sessionsCount--;let m=this.sessions[o];m.splice(m.indexOf(f),1),m.length===0&&delete this.sessions[o]}else{let m=new Error("Session closed without receiving a SETTINGS frame");m.code="HTTP2WRAPPER_NOSETTINGS";for(let{reject:I}of i)I(m);l()}this._tryToCreateNewSession(o,a)});let d=()=>{if(!(!(o in this.queue)||!h())){for(let m of f[ns])if(m in this.queue[o]){let{listeners:I}=this.queue[o][m];for(;I.length!==0&&h();)I.shift().resolve(f);let B=this.queue[o];if(B[m].listeners.length===0&&(delete B[m],Object.keys(B).length===0)){delete this.queue[o];break}if(!h())break}}};f.on("origin",()=>{f[ns]=f.originSet,!!h()&&(d(),ck(this.sessions[o],f))}),f.once("remoteSettings",()=>{if(f.ref(),f.unref(),this._sessionsCount++,c.destroyed){let m=new Error("Agent has been destroyed");for(let I of i)I.reject(m);f.destroy();return}f[ns]=f.originSet;{let m=this.sessions;if(o in m){let I=m[o];I.splice(Eve(I,f,Ive),0,f)}else m[o]=[f]}this._freeSessionsCount+=1,g=!0,this.emit("session",f),d(),l(),f[_i]===0&&this._freeSessionsCount>this.maxFreeSessions&&f.close(),i.length!==0&&(this.getSession(a,r,i),i.length=0),f.on("remoteSettings",()=>{d(),ck(this.sessions[o],f)})}),f[lW]=f.request,f.request=(m,I)=>{if(f[Yu])throw new Error("The session is gracefully closing. No new streams are allowed.");let B=f[lW](m,I);return f.ref(),++f[_i],f[_i]===f.remoteSettings.maxConcurrentStreams&&this._freeSessionsCount--,B.once("close",()=>{if(p=h(),--f[_i],!f.destroyed&&!f.closed&&(yve(this.sessions[o],f),h()&&!f.closed)){p||(this._freeSessionsCount++,p=!0);let b=f[_i]===0;b&&f.unref(),b&&(this._freeSessionsCount>this.maxFreeSessions||f[Yu])?f.close():(ck(this.sessions[o],f),d())}}),B}}catch(f){for(let h of i)h.reject(f);l()}};c.listeners=i,c.completed=!1,c.destroyed=!1,this.queue[o][a]=c,this._tryToCreateNewSession(o,a)})}request(e,r,i,n){return new Promise((s,o)=>{this.getSession(e,r,[{reject:o,resolve:a=>{try{s(a.request(i,n))}catch(l){o(l)}}}])})}createConnection(e,r){return ma.connect(e,r)}static connect(e,r){r.ALPNProtocols=["h2"];let i=e.port||443,n=e.hostname||e.host;return typeof r.servername=="undefined"&&(r.servername=n),pve.connect(i,n,r)}closeFreeSessions(){for(let e of Object.values(this.sessions))for(let r of e)r[_i]===0&&r.close()}destroy(e){for(let r of Object.values(this.sessions))for(let i of r)i.destroy(e);for(let r of Object.values(this.queue))for(let i of Object.values(r))i.destroyed=!0;this.queue={}}get freeSessions(){return uW({agent:this,isFree:!0})}get busySessions(){return uW({agent:this,isFree:!1})}};ma.kCurrentStreamsCount=_i;ma.kGracefullyClosing=Yu;AW.exports={Agent:ma,globalAgent:new ma}});var gk=E((Nnt,gW)=>{"use strict";var{Readable:wve}=require("stream"),fW=class extends wve{constructor(e,r){super({highWaterMark:r,autoDestroy:!1});this.statusCode=null,this.statusMessage="",this.httpVersion="2.0",this.httpVersionMajor=2,this.httpVersionMinor=0,this.headers={},this.trailers={},this.req=null,this.aborted=!1,this.complete=!1,this.upgrade=null,this.rawHeaders=[],this.rawTrailers=[],this.socket=e,this.connection=e,this._dumped=!1}_destroy(e){this.req._request.destroy(e)}setTimeout(e,r){return this.req.setTimeout(e,r),this}_dump(){this._dumped||(this._dumped=!0,this.removeAllListeners("data"),this.resume())}_read(){this.req&&this.req._request.resume()}};gW.exports=fW});var fk=E((Lnt,hW)=>{"use strict";hW.exports=t=>{let e={protocol:t.protocol,hostname:typeof t.hostname=="string"&&t.hostname.startsWith("[")?t.hostname.slice(1,-1):t.hostname,host:t.host,hash:t.hash,search:t.search,pathname:t.pathname,href:t.href,path:`${t.pathname||""}${t.search||""}`};return typeof t.port=="string"&&t.port.length!==0&&(e.port=Number(t.port)),(t.username||t.password)&&(e.auth=`${t.username||""}:${t.password||""}`),e}});var dW=E((Tnt,pW)=>{"use strict";pW.exports=(t,e,r)=>{for(let i of r)t.on(i,(...n)=>e.emit(i,...n))}});var mW=E((Mnt,CW)=>{"use strict";CW.exports=t=>{switch(t){case":method":case":scheme":case":authority":case":path":return!0;default:return!1}}});var IW=E((Knt,EW)=>{"use strict";var qu=(t,e,r)=>{EW.exports[e]=class extends t{constructor(...n){super(typeof r=="string"?r:r(n));this.name=`${super.name} [${e}]`,this.code=e}}};qu(TypeError,"ERR_INVALID_ARG_TYPE",t=>{let e=t[0].includes(".")?"property":"argument",r=t[1],i=Array.isArray(r);return i&&(r=`${r.slice(0,-1).join(", ")} or ${r.slice(-1)}`),`The "${t[0]}" ${e} must be ${i?"one of":"of"} type ${r}. Received ${typeof t[2]}`});qu(TypeError,"ERR_INVALID_PROTOCOL",t=>`Protocol "${t[0]}" not supported. Expected "${t[1]}"`);qu(Error,"ERR_HTTP_HEADERS_SENT",t=>`Cannot ${t[0]} headers after they are sent to the client`);qu(TypeError,"ERR_INVALID_HTTP_TOKEN",t=>`${t[0]} must be a valid HTTP token [${t[1]}]`);qu(TypeError,"ERR_HTTP_INVALID_HEADER_VALUE",t=>`Invalid value "${t[0]} for header "${t[1]}"`);qu(TypeError,"ERR_INVALID_CHAR",t=>`Invalid character in ${t[0]} [${t[1]}]`)});var Ck=E((Unt,yW)=>{"use strict";var Bve=require("http2"),{Writable:Qve}=require("stream"),{Agent:wW,globalAgent:bve}=uk(),vve=gk(),Sve=fk(),xve=dW(),kve=mW(),{ERR_INVALID_ARG_TYPE:hk,ERR_INVALID_PROTOCOL:Pve,ERR_HTTP_HEADERS_SENT:BW,ERR_INVALID_HTTP_TOKEN:Dve,ERR_HTTP_INVALID_HEADER_VALUE:Rve,ERR_INVALID_CHAR:Fve}=IW(),{HTTP2_HEADER_STATUS:QW,HTTP2_HEADER_METHOD:bW,HTTP2_HEADER_PATH:vW,HTTP2_METHOD_CONNECT:Nve}=Bve.constants,Pi=Symbol("headers"),pk=Symbol("origin"),dk=Symbol("session"),SW=Symbol("options"),My=Symbol("flushedHeaders"),yp=Symbol("jobs"),Lve=/^[\^`\-\w!#$%&*+.|~]+$/,Tve=/[^\t\u0020-\u007E\u0080-\u00FF]/,xW=class extends Qve{constructor(e,r,i){super({autoDestroy:!1});let n=typeof e=="string"||e instanceof URL;if(n&&(e=Sve(e instanceof URL?e:new URL(e))),typeof r=="function"||r===void 0?(i=r,r=n?e:P({},e)):r=P(P({},e),r),r.h2session)this[dk]=r.h2session;else if(r.agent===!1)this.agent=new wW({maxFreeSessions:0});else if(typeof r.agent=="undefined"||r.agent===null)typeof r.createConnection=="function"?(this.agent=new wW({maxFreeSessions:0}),this.agent.createConnection=r.createConnection):this.agent=bve;else if(typeof r.agent.request=="function")this.agent=r.agent;else throw new hk("options.agent",["Agent-like Object","undefined","false"],r.agent);if(r.protocol&&r.protocol!=="https:")throw new Pve(r.protocol,"https:");let s=r.port||r.defaultPort||this.agent&&this.agent.defaultPort||443,o=r.hostname||r.host||"localhost";delete r.hostname,delete r.host,delete r.port;let{timeout:a}=r;if(r.timeout=void 0,this[Pi]=Object.create(null),this[yp]=[],this.socket=null,this.connection=null,this.method=r.method||"GET",this.path=r.path,this.res=null,this.aborted=!1,this.reusedSocket=!1,r.headers)for(let[l,c]of Object.entries(r.headers))this.setHeader(l,c);r.auth&&!("authorization"in this[Pi])&&(this[Pi].authorization="Basic "+Buffer.from(r.auth).toString("base64")),r.session=r.tlsSession,r.path=r.socketPath,this[SW]=r,s===443?(this[pk]=`https://${o}`,":authority"in this[Pi]||(this[Pi][":authority"]=o)):(this[pk]=`https://${o}:${s}`,":authority"in this[Pi]||(this[Pi][":authority"]=`${o}:${s}`)),a&&this.setTimeout(a),i&&this.once("response",i),this[My]=!1}get method(){return this[Pi][bW]}set method(e){e&&(this[Pi][bW]=e.toUpperCase())}get path(){return this[Pi][vW]}set path(e){e&&(this[Pi][vW]=e)}get _mustNotHaveABody(){return this.method==="GET"||this.method==="HEAD"||this.method==="DELETE"}_write(e,r,i){if(this._mustNotHaveABody){i(new Error("The GET, HEAD and DELETE methods must NOT have a body"));return}this.flushHeaders();let n=()=>this._request.write(e,r,i);this._request?n():this[yp].push(n)}_final(e){if(this.destroyed)return;this.flushHeaders();let r=()=>{if(this._mustNotHaveABody){e();return}this._request.end(e)};this._request?r():this[yp].push(r)}abort(){this.res&&this.res.complete||(this.aborted||process.nextTick(()=>this.emit("abort")),this.aborted=!0,this.destroy())}_destroy(e,r){this.res&&this.res._dump(),this._request&&this._request.destroy(),r(e)}async flushHeaders(){if(this[My]||this.destroyed)return;this[My]=!0;let e=this.method===Nve,r=i=>{if(this._request=i,this.destroyed){i.destroy();return}e||xve(i,this,["timeout","continue","close","error"]);let n=o=>(...a)=>{!this.writable&&!this.destroyed?o(...a):this.once("finish",()=>{o(...a)})};i.once("response",n((o,a,l)=>{let c=new vve(this.socket,i.readableHighWaterMark);this.res=c,c.req=this,c.statusCode=o[QW],c.headers=o,c.rawHeaders=l,c.once("end",()=>{this.aborted?(c.aborted=!0,c.emit("aborted")):(c.complete=!0,c.socket=null,c.connection=null)}),e?(c.upgrade=!0,this.emit("connect",c,i,Buffer.alloc(0))?this.emit("close"):i.destroy()):(i.on("data",u=>{!c._dumped&&!c.push(u)&&i.pause()}),i.once("end",()=>{c.push(null)}),this.emit("response",c)||c._dump())})),i.once("headers",n(o=>this.emit("information",{statusCode:o[QW]}))),i.once("trailers",n((o,a,l)=>{let{res:c}=this;c.trailers=o,c.rawTrailers=l}));let{socket:s}=i.session;this.socket=s,this.connection=s;for(let o of this[yp])o();this.emit("socket",this.socket)};if(this[dk])try{r(this[dk].request(this[Pi]))}catch(i){this.emit("error",i)}else{this.reusedSocket=!0;try{r(await this.agent.request(this[pk],this[SW],this[Pi]))}catch(i){this.emit("error",i)}}}getHeader(e){if(typeof e!="string")throw new hk("name","string",e);return this[Pi][e.toLowerCase()]}get headersSent(){return this[My]}removeHeader(e){if(typeof e!="string")throw new hk("name","string",e);if(this.headersSent)throw new BW("remove");delete this[Pi][e.toLowerCase()]}setHeader(e,r){if(this.headersSent)throw new BW("set");if(typeof e!="string"||!Lve.test(e)&&!kve(e))throw new Dve("Header name",e);if(typeof r=="undefined")throw new Rve(r,e);if(Tve.test(r))throw new Fve("header content",e);this[Pi][e.toLowerCase()]=r}setNoDelay(){}setSocketKeepAlive(){}setTimeout(e,r){let i=()=>this._request.setTimeout(e,r);return this._request?i():this[yp].push(i),this}get maxHeadersCount(){if(!this.destroyed&&this._request)return this._request.session.localSettings.maxHeaderListSize}set maxHeadersCount(e){}};yW.exports=xW});var PW=E((Hnt,kW)=>{"use strict";var Mve=require("tls");kW.exports=(t={})=>new Promise((e,r)=>{let i=Mve.connect(t,()=>{t.resolveSocket?(i.off("error",r),e({alpnProtocol:i.alpnProtocol,socket:i})):(i.destroy(),e({alpnProtocol:i.alpnProtocol}))});i.on("error",r)})});var RW=E((Gnt,DW)=>{"use strict";var Ove=require("net");DW.exports=t=>{let e=t.host,r=t.headers&&t.headers.host;return r&&(r.startsWith("[")?r.indexOf("]")===-1?e=r:e=r.slice(1,-1):e=r.split(":",1)[0]),Ove.isIP(e)?"":e}});var LW=E((jnt,mk)=>{"use strict";var FW=require("http"),Ek=require("https"),Kve=PW(),Uve=lk(),Hve=Ck(),Gve=RW(),jve=fk(),Oy=new Uve({maxSize:100}),wp=new Map,NW=(t,e,r)=>{e._httpMessage={shouldKeepAlive:!0};let i=()=>{t.emit("free",e,r)};e.on("free",i);let n=()=>{t.removeSocket(e,r)};e.on("close",n);let s=()=>{t.removeSocket(e,r),e.off("close",n),e.off("free",i),e.off("agentRemove",s)};e.on("agentRemove",s),t.emit("free",e,r)},Yve=async t=>{let e=`${t.host}:${t.port}:${t.ALPNProtocols.sort()}`;if(!Oy.has(e)){if(wp.has(e))return(await wp.get(e)).alpnProtocol;let{path:r,agent:i}=t;t.path=t.socketPath;let n=Kve(t);wp.set(e,n);try{let{socket:s,alpnProtocol:o}=await n;if(Oy.set(e,o),t.path=r,o==="h2")s.destroy();else{let{globalAgent:a}=Ek,l=Ek.Agent.prototype.createConnection;i?i.createConnection===l?NW(i,s,t):s.destroy():a.createConnection===l?NW(a,s,t):s.destroy()}return wp.delete(e),o}catch(s){throw wp.delete(e),s}}return Oy.get(e)};mk.exports=async(t,e,r)=>{if((typeof t=="string"||t instanceof URL)&&(t=jve(new URL(t))),typeof e=="function"&&(r=e,e=void 0),e=_(P(P({ALPNProtocols:["h2","http/1.1"]},t),e),{resolveSocket:!0}),!Array.isArray(e.ALPNProtocols)||e.ALPNProtocols.length===0)throw new Error("The `ALPNProtocols` option must be an Array with at least one entry");e.protocol=e.protocol||"https:";let i=e.protocol==="https:";e.host=e.hostname||e.host||"localhost",e.session=e.tlsSession,e.servername=e.servername||Gve(e),e.port=e.port||(i?443:80),e._defaultAgent=i?Ek.globalAgent:FW.globalAgent;let n=e.agent;if(n){if(n.addRequest)throw new Error("The `options.agent` object can contain only `http`, `https` or `http2` properties");e.agent=n[i?"https":"http"]}return i&&await Yve(e)==="h2"?(n&&(e.agent=n.http2),new Hve(e,r)):FW.request(e,r)};mk.exports.protocolCache=Oy});var MW=E((Ynt,TW)=>{"use strict";var qve=require("http2"),Jve=uk(),Ik=Ck(),Wve=gk(),zve=LW(),Vve=(t,e,r)=>new Ik(t,e,r),_ve=(t,e,r)=>{let i=new Ik(t,e,r);return i.end(),i};TW.exports=_(P(_(P({},qve),{ClientRequest:Ik,IncomingMessage:Wve}),Jve),{request:Vve,get:_ve,auto:zve})});var wk=E(yk=>{"use strict";Object.defineProperty(yk,"__esModule",{value:!0});var OW=Ca();yk.default=t=>OW.default.nodeStream(t)&&OW.default.function_(t.getBoundary)});var GW=E(Bk=>{"use strict";Object.defineProperty(Bk,"__esModule",{value:!0});var KW=require("fs"),UW=require("util"),HW=Ca(),Xve=wk(),Zve=UW.promisify(KW.stat);Bk.default=async(t,e)=>{if(e&&"content-length"in e)return Number(e["content-length"]);if(!t)return 0;if(HW.default.string(t))return Buffer.byteLength(t);if(HW.default.buffer(t))return t.length;if(Xve.default(t))return UW.promisify(t.getLength.bind(t))();if(t instanceof KW.ReadStream){let{size:r}=await Zve(t.path);return r===0?void 0:r}}});var bk=E(Qk=>{"use strict";Object.defineProperty(Qk,"__esModule",{value:!0});function $ve(t,e,r){let i={};for(let n of r)i[n]=(...s)=>{e.emit(n,...s)},t.on(n,i[n]);return()=>{for(let n of r)t.off(n,i[n])}}Qk.default=$ve});var jW=E(vk=>{"use strict";Object.defineProperty(vk,"__esModule",{value:!0});vk.default=()=>{let t=[];return{once(e,r,i){e.once(r,i),t.push({origin:e,event:r,fn:i})},unhandleAll(){for(let e of t){let{origin:r,event:i,fn:n}=e;r.removeListener(i,n)}t.length=0}}}});var qW=E(Bp=>{"use strict";Object.defineProperty(Bp,"__esModule",{value:!0});Bp.TimeoutError=void 0;var eSe=require("net"),tSe=jW(),YW=Symbol("reentry"),rSe=()=>{},Sk=class extends Error{constructor(e,r){super(`Timeout awaiting '${r}' for ${e}ms`);this.event=r,this.name="TimeoutError",this.code="ETIMEDOUT"}};Bp.TimeoutError=Sk;Bp.default=(t,e,r)=>{if(YW in t)return rSe;t[YW]=!0;let i=[],{once:n,unhandleAll:s}=tSe.default(),o=(g,f,h)=>{var p;let d=setTimeout(f,g,g,h);(p=d.unref)===null||p===void 0||p.call(d);let m=()=>{clearTimeout(d)};return i.push(m),m},{host:a,hostname:l}=r,c=(g,f)=>{t.destroy(new Sk(g,f))},u=()=>{for(let g of i)g();s()};if(t.once("error",g=>{if(u(),t.listenerCount("error")===0)throw g}),t.once("close",u),n(t,"response",g=>{n(g,"end",u)}),typeof e.request!="undefined"&&o(e.request,c,"request"),typeof e.socket!="undefined"){let g=()=>{c(e.socket,"socket")};t.setTimeout(e.socket,g),i.push(()=>{t.removeListener("timeout",g)})}return n(t,"socket",g=>{var f;let{socketPath:h}=t;if(g.connecting){let p=Boolean(h!=null?h:eSe.isIP((f=l!=null?l:a)!==null&&f!==void 0?f:"")!==0);if(typeof e.lookup!="undefined"&&!p&&typeof g.address().address=="undefined"){let d=o(e.lookup,c,"lookup");n(g,"lookup",d)}if(typeof e.connect!="undefined"){let d=()=>o(e.connect,c,"connect");p?n(g,"connect",d()):n(g,"lookup",m=>{m===null&&n(g,"connect",d())})}typeof e.secureConnect!="undefined"&&r.protocol==="https:"&&n(g,"connect",()=>{let d=o(e.secureConnect,c,"secureConnect");n(g,"secureConnect",d)})}if(typeof e.send!="undefined"){let p=()=>o(e.send,c,"send");g.connecting?n(g,"connect",()=>{n(t,"upload-complete",p())}):n(t,"upload-complete",p())}}),typeof e.response!="undefined"&&n(t,"upload-complete",()=>{let g=o(e.response,c,"response");n(t,"response",g)}),u}});var WW=E(xk=>{"use strict";Object.defineProperty(xk,"__esModule",{value:!0});var JW=Ca();xk.default=t=>{t=t;let e={protocol:t.protocol,hostname:JW.default.string(t.hostname)&&t.hostname.startsWith("[")?t.hostname.slice(1,-1):t.hostname,host:t.host,hash:t.hash,search:t.search,pathname:t.pathname,href:t.href,path:`${t.pathname||""}${t.search||""}`};return JW.default.string(t.port)&&t.port.length>0&&(e.port=Number(t.port)),(t.username||t.password)&&(e.auth=`${t.username||""}:${t.password||""}`),e}});var zW=E(kk=>{"use strict";Object.defineProperty(kk,"__esModule",{value:!0});var iSe=require("url"),nSe=["protocol","host","hostname","port","pathname","search"];kk.default=(t,e)=>{var r,i;if(e.path){if(e.pathname)throw new TypeError("Parameters `path` and `pathname` are mutually exclusive.");if(e.search)throw new TypeError("Parameters `path` and `search` are mutually exclusive.");if(e.searchParams)throw new TypeError("Parameters `path` and `searchParams` are mutually exclusive.")}if(e.search&&e.searchParams)throw new TypeError("Parameters `search` and `searchParams` are mutually exclusive.");if(!t){if(!e.protocol)throw new TypeError("No URL protocol specified");t=`${e.protocol}//${(i=(r=e.hostname)!==null&&r!==void 0?r:e.host)!==null&&i!==void 0?i:""}`}let n=new iSe.URL(t);if(e.path){let s=e.path.indexOf("?");s===-1?e.pathname=e.path:(e.pathname=e.path.slice(0,s),e.search=e.path.slice(s+1)),delete e.path}for(let s of nSe)e[s]&&(n[s]=e[s].toString());return n}});var _W=E(Pk=>{"use strict";Object.defineProperty(Pk,"__esModule",{value:!0});var VW=class{constructor(){this.weakMap=new WeakMap,this.map=new Map}set(e,r){typeof e=="object"?this.weakMap.set(e,r):this.map.set(e,r)}get(e){return typeof e=="object"?this.weakMap.get(e):this.map.get(e)}has(e){return typeof e=="object"?this.weakMap.has(e):this.map.has(e)}};Pk.default=VW});var Rk=E(Dk=>{"use strict";Object.defineProperty(Dk,"__esModule",{value:!0});var sSe=async t=>{let e=[],r=0;for await(let i of t)e.push(i),r+=Buffer.byteLength(i);return Buffer.isBuffer(e[0])?Buffer.concat(e,r):Buffer.from(e.join(""))};Dk.default=sSe});var ZW=E(ql=>{"use strict";Object.defineProperty(ql,"__esModule",{value:!0});ql.dnsLookupIpVersionToFamily=ql.isDnsLookupIpVersion=void 0;var XW={auto:0,ipv4:4,ipv6:6};ql.isDnsLookupIpVersion=t=>t in XW;ql.dnsLookupIpVersionToFamily=t=>{if(ql.isDnsLookupIpVersion(t))return XW[t];throw new Error("Invalid DNS lookup IP version")}});var Fk=E(Ky=>{"use strict";Object.defineProperty(Ky,"__esModule",{value:!0});Ky.isResponseOk=void 0;Ky.isResponseOk=t=>{let{statusCode:e}=t,r=t.request.options.followRedirect?299:399;return e>=200&&e<=r||e===304}});var e8=E(Nk=>{"use strict";Object.defineProperty(Nk,"__esModule",{value:!0});var $W=new Set;Nk.default=t=>{$W.has(t)||($W.add(t),process.emitWarning(`Got: ${t}`,{type:"DeprecationWarning"}))}});var t8=E(Lk=>{"use strict";Object.defineProperty(Lk,"__esModule",{value:!0});var ar=Ca(),oSe=(t,e)=>{if(ar.default.null_(t.encoding))throw new TypeError("To get a Buffer, set `options.responseType` to `buffer` instead");ar.assert.any([ar.default.string,ar.default.undefined],t.encoding),ar.assert.any([ar.default.boolean,ar.default.undefined],t.resolveBodyOnly),ar.assert.any([ar.default.boolean,ar.default.undefined],t.methodRewriting),ar.assert.any([ar.default.boolean,ar.default.undefined],t.isStream),ar.assert.any([ar.default.string,ar.default.undefined],t.responseType),t.responseType===void 0&&(t.responseType="text");let{retry:r}=t;if(e?t.retry=P({},e.retry):t.retry={calculateDelay:i=>i.computedValue,limit:0,methods:[],statusCodes:[],errorCodes:[],maxRetryAfter:void 0},ar.default.object(r)?(t.retry=P(P({},t.retry),r),t.retry.methods=[...new Set(t.retry.methods.map(i=>i.toUpperCase()))],t.retry.statusCodes=[...new Set(t.retry.statusCodes)],t.retry.errorCodes=[...new Set(t.retry.errorCodes)]):ar.default.number(r)&&(t.retry.limit=r),ar.default.undefined(t.retry.maxRetryAfter)&&(t.retry.maxRetryAfter=Math.min(...[t.timeout.request,t.timeout.connect].filter(ar.default.number))),ar.default.object(t.pagination)){e&&(t.pagination=P(P({},e.pagination),t.pagination));let{pagination:i}=t;if(!ar.default.function_(i.transform))throw new Error("`options.pagination.transform` must be implemented");if(!ar.default.function_(i.shouldContinue))throw new Error("`options.pagination.shouldContinue` must be implemented");if(!ar.default.function_(i.filter))throw new TypeError("`options.pagination.filter` must be implemented");if(!ar.default.function_(i.paginate))throw new Error("`options.pagination.paginate` must be implemented")}return t.responseType==="json"&&t.headers.accept===void 0&&(t.headers.accept="application/json"),t};Lk.default=oSe});var r8=E(Qp=>{"use strict";Object.defineProperty(Qp,"__esModule",{value:!0});Qp.retryAfterStatusCodes=void 0;Qp.retryAfterStatusCodes=new Set([413,429,503]);var aSe=({attemptCount:t,retryOptions:e,error:r,retryAfter:i})=>{if(t>e.limit)return 0;let n=e.methods.includes(r.options.method),s=e.errorCodes.includes(r.code),o=r.response&&e.statusCodes.includes(r.response.statusCode);if(!n||!s&&!o)return 0;if(r.response){if(i)return e.maxRetryAfter===void 0||i>e.maxRetryAfter?0:i;if(r.response.statusCode===413)return 0}let a=Math.random()*100;return 2**(t-1)*1e3+a};Qp.default=aSe});var vp=E(Rt=>{"use strict";Object.defineProperty(Rt,"__esModule",{value:!0});Rt.UnsupportedProtocolError=Rt.ReadError=Rt.TimeoutError=Rt.UploadError=Rt.CacheError=Rt.HTTPError=Rt.MaxRedirectsError=Rt.RequestError=Rt.setNonEnumerableProperties=Rt.knownHookEvents=Rt.withoutBody=Rt.kIsNormalizedAlready=void 0;var i8=require("util"),n8=require("stream"),ASe=require("fs"),dA=require("url"),s8=require("http"),Tk=require("http"),lSe=require("https"),cSe=h3(),uSe=y3(),o8=tW(),gSe=sW(),fSe=MW(),hSe=Ly(),ce=Ca(),pSe=GW(),a8=wk(),dSe=bk(),A8=qW(),CSe=WW(),l8=zW(),mSe=_W(),ESe=Rk(),c8=ZW(),ISe=Fk(),CA=e8(),ySe=t8(),wSe=r8(),Mk,Ei=Symbol("request"),Uy=Symbol("response"),Ju=Symbol("responseSize"),Wu=Symbol("downloadedSize"),zu=Symbol("bodySize"),Vu=Symbol("uploadedSize"),Hy=Symbol("serverResponsesPiped"),u8=Symbol("unproxyEvents"),g8=Symbol("isFromCache"),Ok=Symbol("cancelTimeouts"),f8=Symbol("startedReading"),_u=Symbol("stopReading"),Gy=Symbol("triggerRead"),mA=Symbol("body"),bp=Symbol("jobs"),h8=Symbol("originalResponse"),p8=Symbol("retryTimeout");Rt.kIsNormalizedAlready=Symbol("isNormalizedAlready");var BSe=ce.default.string(process.versions.brotli);Rt.withoutBody=new Set(["GET","HEAD"]);Rt.knownHookEvents=["init","beforeRequest","beforeRedirect","beforeError","beforeRetry","afterResponse"];function QSe(t){for(let e in t){let r=t[e];if(!ce.default.string(r)&&!ce.default.number(r)&&!ce.default.boolean(r)&&!ce.default.null_(r)&&!ce.default.undefined(r))throw new TypeError(`The \`searchParams\` value '${String(r)}' must be a string, number, boolean or null`)}}function bSe(t){return ce.default.object(t)&&!("statusCode"in t)}var Kk=new mSe.default,vSe=async t=>new Promise((e,r)=>{let i=n=>{r(n)};t.pending||e(),t.once("error",i),t.once("ready",()=>{t.off("error",i),e()})}),SSe=new Set([300,301,302,303,304,307,308]),xSe=["context","body","json","form"];Rt.setNonEnumerableProperties=(t,e)=>{let r={};for(let i of t)if(!!i)for(let n of xSe)n in i&&(r[n]={writable:!0,configurable:!0,enumerable:!1,value:i[n]});Object.defineProperties(e,r)};var _r=class extends Error{constructor(e,r,i){var n;super(e);if(Error.captureStackTrace(this,this.constructor),this.name="RequestError",this.code=r.code,i instanceof Uk?(Object.defineProperty(this,"request",{enumerable:!1,value:i}),Object.defineProperty(this,"response",{enumerable:!1,value:i[Uy]}),Object.defineProperty(this,"options",{enumerable:!1,value:i.options})):Object.defineProperty(this,"options",{enumerable:!1,value:i}),this.timings=(n=this.request)===null||n===void 0?void 0:n.timings,ce.default.string(r.stack)&&ce.default.string(this.stack)){let s=this.stack.indexOf(this.message)+this.message.length,o=this.stack.slice(s).split(` -`).reverse(),a=r.stack.slice(r.stack.indexOf(r.message)+r.message.length).split(` -`).reverse();for(;a.length!==0&&a[0]===o[0];)o.shift();this.stack=`${this.stack.slice(0,s)}${o.reverse().join(` -`)}${a.reverse().join(` -`)}`}}};Rt.RequestError=_r;var Hk=class extends _r{constructor(e){super(`Redirected ${e.options.maxRedirects} times. Aborting.`,{},e);this.name="MaxRedirectsError"}};Rt.MaxRedirectsError=Hk;var Gk=class extends _r{constructor(e){super(`Response code ${e.statusCode} (${e.statusMessage})`,{},e.request);this.name="HTTPError"}};Rt.HTTPError=Gk;var jk=class extends _r{constructor(e,r){super(e.message,e,r);this.name="CacheError"}};Rt.CacheError=jk;var Yk=class extends _r{constructor(e,r){super(e.message,e,r);this.name="UploadError"}};Rt.UploadError=Yk;var qk=class extends _r{constructor(e,r,i){super(e.message,e,i);this.name="TimeoutError",this.event=e.event,this.timings=r}};Rt.TimeoutError=qk;var jy=class extends _r{constructor(e,r){super(e.message,e,r);this.name="ReadError"}};Rt.ReadError=jy;var Jk=class extends _r{constructor(e){super(`Unsupported protocol "${e.url.protocol}"`,{},e);this.name="UnsupportedProtocolError"}};Rt.UnsupportedProtocolError=Jk;var kSe=["socket","connect","continue","information","upgrade","timeout"],Uk=class extends n8.Duplex{constructor(e,r={},i){super({autoDestroy:!1,highWaterMark:0});this[Wu]=0,this[Vu]=0,this.requestInitialized=!1,this[Hy]=new Set,this.redirects=[],this[_u]=!1,this[Gy]=!1,this[bp]=[],this.retryCount=0,this._progressCallbacks=[];let n=()=>this._unlockWrite(),s=()=>this._lockWrite();this.on("pipe",c=>{c.prependListener("data",n),c.on("data",s),c.prependListener("end",n),c.on("end",s)}),this.on("unpipe",c=>{c.off("data",n),c.off("data",s),c.off("end",n),c.off("end",s)}),this.on("pipe",c=>{c instanceof Tk.IncomingMessage&&(this.options.headers=P(P({},c.headers),this.options.headers))});let{json:o,body:a,form:l}=r;if((o||a||l)&&this._lockWrite(),Rt.kIsNormalizedAlready in r)this.options=r;else try{this.options=this.constructor.normalizeArguments(e,r,i)}catch(c){ce.default.nodeStream(r.body)&&r.body.destroy(),this.destroy(c);return}(async()=>{var c;try{this.options.body instanceof ASe.ReadStream&&await vSe(this.options.body);let{url:u}=this.options;if(!u)throw new TypeError("Missing `url` property");if(this.requestUrl=u.toString(),decodeURI(this.requestUrl),await this._finalizeBody(),await this._makeRequest(),this.destroyed){(c=this[Ei])===null||c===void 0||c.destroy();return}for(let g of this[bp])g();this[bp].length=0,this.requestInitialized=!0}catch(u){if(u instanceof _r){this._beforeError(u);return}this.destroyed||this.destroy(u)}})()}static normalizeArguments(e,r,i){var n,s,o,a,l;let c=r;if(ce.default.object(e)&&!ce.default.urlInstance(e))r=P(P(P({},i),e),r);else{if(e&&r&&r.url!==void 0)throw new TypeError("The `url` option is mutually exclusive with the `input` argument");r=P(P({},i),r),e!==void 0&&(r.url=e),ce.default.urlInstance(r.url)&&(r.url=new dA.URL(r.url.toString()))}if(r.cache===!1&&(r.cache=void 0),r.dnsCache===!1&&(r.dnsCache=void 0),ce.assert.any([ce.default.string,ce.default.undefined],r.method),ce.assert.any([ce.default.object,ce.default.undefined],r.headers),ce.assert.any([ce.default.string,ce.default.urlInstance,ce.default.undefined],r.prefixUrl),ce.assert.any([ce.default.object,ce.default.undefined],r.cookieJar),ce.assert.any([ce.default.object,ce.default.string,ce.default.undefined],r.searchParams),ce.assert.any([ce.default.object,ce.default.string,ce.default.undefined],r.cache),ce.assert.any([ce.default.object,ce.default.number,ce.default.undefined],r.timeout),ce.assert.any([ce.default.object,ce.default.undefined],r.context),ce.assert.any([ce.default.object,ce.default.undefined],r.hooks),ce.assert.any([ce.default.boolean,ce.default.undefined],r.decompress),ce.assert.any([ce.default.boolean,ce.default.undefined],r.ignoreInvalidCookies),ce.assert.any([ce.default.boolean,ce.default.undefined],r.followRedirect),ce.assert.any([ce.default.number,ce.default.undefined],r.maxRedirects),ce.assert.any([ce.default.boolean,ce.default.undefined],r.throwHttpErrors),ce.assert.any([ce.default.boolean,ce.default.undefined],r.http2),ce.assert.any([ce.default.boolean,ce.default.undefined],r.allowGetBody),ce.assert.any([ce.default.string,ce.default.undefined],r.localAddress),ce.assert.any([c8.isDnsLookupIpVersion,ce.default.undefined],r.dnsLookupIpVersion),ce.assert.any([ce.default.object,ce.default.undefined],r.https),ce.assert.any([ce.default.boolean,ce.default.undefined],r.rejectUnauthorized),r.https&&(ce.assert.any([ce.default.boolean,ce.default.undefined],r.https.rejectUnauthorized),ce.assert.any([ce.default.function_,ce.default.undefined],r.https.checkServerIdentity),ce.assert.any([ce.default.string,ce.default.object,ce.default.array,ce.default.undefined],r.https.certificateAuthority),ce.assert.any([ce.default.string,ce.default.object,ce.default.array,ce.default.undefined],r.https.key),ce.assert.any([ce.default.string,ce.default.object,ce.default.array,ce.default.undefined],r.https.certificate),ce.assert.any([ce.default.string,ce.default.undefined],r.https.passphrase),ce.assert.any([ce.default.string,ce.default.buffer,ce.default.array,ce.default.undefined],r.https.pfx)),ce.assert.any([ce.default.object,ce.default.undefined],r.cacheOptions),ce.default.string(r.method)?r.method=r.method.toUpperCase():r.method="GET",r.headers===(i==null?void 0:i.headers)?r.headers=P({},r.headers):r.headers=hSe(P(P({},i==null?void 0:i.headers),r.headers)),"slashes"in r)throw new TypeError("The legacy `url.Url` has been deprecated. Use `URL` instead.");if("auth"in r)throw new TypeError("Parameter `auth` is deprecated. Use `username` / `password` instead.");if("searchParams"in r&&r.searchParams&&r.searchParams!==(i==null?void 0:i.searchParams)){let h;if(ce.default.string(r.searchParams)||r.searchParams instanceof dA.URLSearchParams)h=new dA.URLSearchParams(r.searchParams);else{QSe(r.searchParams),h=new dA.URLSearchParams;for(let p in r.searchParams){let d=r.searchParams[p];d===null?h.append(p,""):d!==void 0&&h.append(p,d)}}(n=i==null?void 0:i.searchParams)===null||n===void 0||n.forEach((p,d)=>{h.has(d)||h.append(d,p)}),r.searchParams=h}if(r.username=(s=r.username)!==null&&s!==void 0?s:"",r.password=(o=r.password)!==null&&o!==void 0?o:"",ce.default.undefined(r.prefixUrl)?r.prefixUrl=(a=i==null?void 0:i.prefixUrl)!==null&&a!==void 0?a:"":(r.prefixUrl=r.prefixUrl.toString(),r.prefixUrl!==""&&!r.prefixUrl.endsWith("/")&&(r.prefixUrl+="/")),ce.default.string(r.url)){if(r.url.startsWith("/"))throw new Error("`input` must not start with a slash when using `prefixUrl`");r.url=l8.default(r.prefixUrl+r.url,r)}else(ce.default.undefined(r.url)&&r.prefixUrl!==""||r.protocol)&&(r.url=l8.default(r.prefixUrl,r));if(r.url){"port"in r&&delete r.port;let{prefixUrl:h}=r;Object.defineProperty(r,"prefixUrl",{set:d=>{let m=r.url;if(!m.href.startsWith(d))throw new Error(`Cannot change \`prefixUrl\` from ${h} to ${d}: ${m.href}`);r.url=new dA.URL(d+m.href.slice(h.length)),h=d},get:()=>h});let{protocol:p}=r.url;if(p==="unix:"&&(p="http:",r.url=new dA.URL(`http://unix${r.url.pathname}${r.url.search}`)),r.searchParams&&(r.url.search=r.searchParams.toString()),p!=="http:"&&p!=="https:")throw new Jk(r);r.username===""?r.username=r.url.username:r.url.username=r.username,r.password===""?r.password=r.url.password:r.url.password=r.password}let{cookieJar:u}=r;if(u){let{setCookie:h,getCookieString:p}=u;ce.assert.function_(h),ce.assert.function_(p),h.length===4&&p.length===0&&(h=i8.promisify(h.bind(r.cookieJar)),p=i8.promisify(p.bind(r.cookieJar)),r.cookieJar={setCookie:h,getCookieString:p})}let{cache:g}=r;if(g&&(Kk.has(g)||Kk.set(g,new o8((h,p)=>{let d=h[Ei](h,p);return ce.default.promise(d)&&(d.once=(m,I)=>{if(m==="error")d.catch(I);else if(m==="abort")(async()=>{try{(await d).once("abort",I)}catch(B){}})();else throw new Error(`Unknown HTTP2 promise event: ${m}`);return d}),d},g))),r.cacheOptions=P({},r.cacheOptions),r.dnsCache===!0)Mk||(Mk=new uSe.default),r.dnsCache=Mk;else if(!ce.default.undefined(r.dnsCache)&&!r.dnsCache.lookup)throw new TypeError(`Parameter \`dnsCache\` must be a CacheableLookup instance or a boolean, got ${ce.default(r.dnsCache)}`);ce.default.number(r.timeout)?r.timeout={request:r.timeout}:i&&r.timeout!==i.timeout?r.timeout=P(P({},i.timeout),r.timeout):r.timeout=P({},r.timeout),r.context||(r.context={});let f=r.hooks===(i==null?void 0:i.hooks);r.hooks=P({},r.hooks);for(let h of Rt.knownHookEvents)if(h in r.hooks)if(ce.default.array(r.hooks[h]))r.hooks[h]=[...r.hooks[h]];else throw new TypeError(`Parameter \`${h}\` must be an Array, got ${ce.default(r.hooks[h])}`);else r.hooks[h]=[];if(i&&!f)for(let h of Rt.knownHookEvents)i.hooks[h].length>0&&(r.hooks[h]=[...i.hooks[h],...r.hooks[h]]);if("family"in r&&CA.default('"options.family" was never documented, please use "options.dnsLookupIpVersion"'),(i==null?void 0:i.https)&&(r.https=P(P({},i.https),r.https)),"rejectUnauthorized"in r&&CA.default('"options.rejectUnauthorized" is now deprecated, please use "options.https.rejectUnauthorized"'),"checkServerIdentity"in r&&CA.default('"options.checkServerIdentity" was never documented, please use "options.https.checkServerIdentity"'),"ca"in r&&CA.default('"options.ca" was never documented, please use "options.https.certificateAuthority"'),"key"in r&&CA.default('"options.key" was never documented, please use "options.https.key"'),"cert"in r&&CA.default('"options.cert" was never documented, please use "options.https.certificate"'),"passphrase"in r&&CA.default('"options.passphrase" was never documented, please use "options.https.passphrase"'),"pfx"in r&&CA.default('"options.pfx" was never documented, please use "options.https.pfx"'),"followRedirects"in r)throw new TypeError("The `followRedirects` option does not exist. Use `followRedirect` instead.");if(r.agent){for(let h in r.agent)if(h!=="http"&&h!=="https"&&h!=="http2")throw new TypeError(`Expected the \`options.agent\` properties to be \`http\`, \`https\` or \`http2\`, got \`${h}\``)}return r.maxRedirects=(l=r.maxRedirects)!==null&&l!==void 0?l:0,Rt.setNonEnumerableProperties([i,c],r),ySe.default(r,i)}_lockWrite(){let e=()=>{throw new TypeError("The payload has been already provided")};this.write=e,this.end=e}_unlockWrite(){this.write=super.write,this.end=super.end}async _finalizeBody(){let{options:e}=this,{headers:r}=e,i=!ce.default.undefined(e.form),n=!ce.default.undefined(e.json),s=!ce.default.undefined(e.body),o=i||n||s,a=Rt.withoutBody.has(e.method)&&!(e.method==="GET"&&e.allowGetBody);if(this._cannotHaveBody=a,o){if(a)throw new TypeError(`The \`${e.method}\` method cannot be used with a body`);if([s,i,n].filter(l=>l).length>1)throw new TypeError("The `body`, `json` and `form` options are mutually exclusive");if(s&&!(e.body instanceof n8.Readable)&&!ce.default.string(e.body)&&!ce.default.buffer(e.body)&&!a8.default(e.body))throw new TypeError("The `body` option must be a stream.Readable, string or Buffer");if(i&&!ce.default.object(e.form))throw new TypeError("The `form` option must be an Object");{let l=!ce.default.string(r["content-type"]);s?(a8.default(e.body)&&l&&(r["content-type"]=`multipart/form-data; boundary=${e.body.getBoundary()}`),this[mA]=e.body):i?(l&&(r["content-type"]="application/x-www-form-urlencoded"),this[mA]=new dA.URLSearchParams(e.form).toString()):(l&&(r["content-type"]="application/json"),this[mA]=e.stringifyJson(e.json));let c=await pSe.default(this[mA],e.headers);ce.default.undefined(r["content-length"])&&ce.default.undefined(r["transfer-encoding"])&&!a&&!ce.default.undefined(c)&&(r["content-length"]=String(c))}}else a?this._lockWrite():this._unlockWrite();this[zu]=Number(r["content-length"])||void 0}async _onResponseBase(e){let{options:r}=this,{url:i}=r;this[h8]=e,r.decompress&&(e=gSe(e));let n=e.statusCode,s=e;s.statusMessage=s.statusMessage?s.statusMessage:s8.STATUS_CODES[n],s.url=r.url.toString(),s.requestUrl=this.requestUrl,s.redirectUrls=this.redirects,s.request=this,s.isFromCache=e.fromCache||!1,s.ip=this.ip,s.retryCount=this.retryCount,this[g8]=s.isFromCache,this[Ju]=Number(e.headers["content-length"])||void 0,this[Uy]=e,e.once("end",()=>{this[Ju]=this[Wu],this.emit("downloadProgress",this.downloadProgress)}),e.once("error",a=>{e.destroy(),this._beforeError(new jy(a,this))}),e.once("aborted",()=>{this._beforeError(new jy({name:"Error",message:"The server aborted pending request",code:"ECONNRESET"},this))}),this.emit("downloadProgress",this.downloadProgress);let o=e.headers["set-cookie"];if(ce.default.object(r.cookieJar)&&o){let a=o.map(async l=>r.cookieJar.setCookie(l,i.toString()));r.ignoreInvalidCookies&&(a=a.map(async l=>l.catch(()=>{})));try{await Promise.all(a)}catch(l){this._beforeError(l);return}}if(r.followRedirect&&e.headers.location&&SSe.has(n)){if(e.resume(),this[Ei]&&(this[Ok](),delete this[Ei],this[u8]()),(n===303&&r.method!=="GET"&&r.method!=="HEAD"||!r.methodRewriting)&&(r.method="GET","body"in r&&delete r.body,"json"in r&&delete r.json,"form"in r&&delete r.form,this[mA]=void 0,delete r.headers["content-length"]),this.redirects.length>=r.maxRedirects){this._beforeError(new Hk(this));return}try{let l=Buffer.from(e.headers.location,"binary").toString(),c=new dA.URL(l,i),u=c.toString();decodeURI(u),c.hostname!==i.hostname||c.port!==i.port?("host"in r.headers&&delete r.headers.host,"cookie"in r.headers&&delete r.headers.cookie,"authorization"in r.headers&&delete r.headers.authorization,(r.username||r.password)&&(r.username="",r.password="")):(c.username=r.username,c.password=r.password),this.redirects.push(u),r.url=c;for(let g of r.hooks.beforeRedirect)await g(r,s);this.emit("redirect",s,r),await this._makeRequest()}catch(l){this._beforeError(l);return}return}if(r.isStream&&r.throwHttpErrors&&!ISe.isResponseOk(s)){this._beforeError(new Gk(s));return}e.on("readable",()=>{this[Gy]&&this._read()}),this.on("resume",()=>{e.resume()}),this.on("pause",()=>{e.pause()}),e.once("end",()=>{this.push(null)}),this.emit("response",e);for(let a of this[Hy])if(!a.headersSent){for(let l in e.headers){let c=r.decompress?l!=="content-encoding":!0,u=e.headers[l];c&&a.setHeader(l,u)}a.statusCode=n}}async _onResponse(e){try{await this._onResponseBase(e)}catch(r){this._beforeError(r)}}_onRequest(e){let{options:r}=this,{timeout:i,url:n}=r;cSe.default(e),this[Ok]=A8.default(e,i,n);let s=r.cache?"cacheableResponse":"response";e.once(s,l=>{this._onResponse(l)}),e.once("error",l=>{var c;e.destroy(),(c=e.res)===null||c===void 0||c.removeAllListeners("end"),l=l instanceof A8.TimeoutError?new qk(l,this.timings,this):new _r(l.message,l,this),this._beforeError(l)}),this[u8]=dSe.default(e,this,kSe),this[Ei]=e,this.emit("uploadProgress",this.uploadProgress);let o=this[mA],a=this.redirects.length===0?this:e;ce.default.nodeStream(o)?(o.pipe(a),o.once("error",l=>{this._beforeError(new Yk(l,this))})):(this._unlockWrite(),ce.default.undefined(o)?(this._cannotHaveBody||this._noPipe)&&(a.end(),this._lockWrite()):(this._writeRequest(o,void 0,()=>{}),a.end(),this._lockWrite())),this.emit("request",e)}async _createCacheableRequest(e,r){return new Promise((i,n)=>{Object.assign(r,CSe.default(e)),delete r.url;let s,o=Kk.get(r.cache)(r,async a=>{a._readableState.autoDestroy=!1,s&&(await s).emit("cacheableResponse",a),i(a)});r.url=e,o.once("error",n),o.once("request",async a=>{s=a,i(s)})})}async _makeRequest(){var e,r,i,n,s;let{options:o}=this,{headers:a}=o;for(let I in a)if(ce.default.undefined(a[I]))delete a[I];else if(ce.default.null_(a[I]))throw new TypeError(`Use \`undefined\` instead of \`null\` to delete the \`${I}\` header`);if(o.decompress&&ce.default.undefined(a["accept-encoding"])&&(a["accept-encoding"]=BSe?"gzip, deflate, br":"gzip, deflate"),o.cookieJar){let I=await o.cookieJar.getCookieString(o.url.toString());ce.default.nonEmptyString(I)&&(o.headers.cookie=I)}for(let I of o.hooks.beforeRequest){let B=await I(o);if(!ce.default.undefined(B)){o.request=()=>B;break}}o.body&&this[mA]!==o.body&&(this[mA]=o.body);let{agent:l,request:c,timeout:u,url:g}=o;if(o.dnsCache&&!("lookup"in o)&&(o.lookup=o.dnsCache.lookup),g.hostname==="unix"){let I=/(?.+?):(?.+)/.exec(`${g.pathname}${g.search}`);if(I==null?void 0:I.groups){let{socketPath:B,path:b}=I.groups;Object.assign(o,{socketPath:B,path:b,host:""})}}let f=g.protocol==="https:",h;o.http2?h=fSe.auto:h=f?lSe.request:s8.request;let p=(e=o.request)!==null&&e!==void 0?e:h,d=o.cache?this._createCacheableRequest:p;l&&!o.http2&&(o.agent=l[f?"https":"http"]),o[Ei]=p,delete o.request,delete o.timeout;let m=o;if(m.shared=(r=o.cacheOptions)===null||r===void 0?void 0:r.shared,m.cacheHeuristic=(i=o.cacheOptions)===null||i===void 0?void 0:i.cacheHeuristic,m.immutableMinTimeToLive=(n=o.cacheOptions)===null||n===void 0?void 0:n.immutableMinTimeToLive,m.ignoreCargoCult=(s=o.cacheOptions)===null||s===void 0?void 0:s.ignoreCargoCult,o.dnsLookupIpVersion!==void 0)try{m.family=c8.dnsLookupIpVersionToFamily(o.dnsLookupIpVersion)}catch(I){throw new Error("Invalid `dnsLookupIpVersion` option value")}o.https&&("rejectUnauthorized"in o.https&&(m.rejectUnauthorized=o.https.rejectUnauthorized),o.https.checkServerIdentity&&(m.checkServerIdentity=o.https.checkServerIdentity),o.https.certificateAuthority&&(m.ca=o.https.certificateAuthority),o.https.certificate&&(m.cert=o.https.certificate),o.https.key&&(m.key=o.https.key),o.https.passphrase&&(m.passphrase=o.https.passphrase),o.https.pfx&&(m.pfx=o.https.pfx));try{let I=await d(g,m);ce.default.undefined(I)&&(I=h(g,m)),o.request=c,o.timeout=u,o.agent=l,o.https&&("rejectUnauthorized"in o.https&&delete m.rejectUnauthorized,o.https.checkServerIdentity&&delete m.checkServerIdentity,o.https.certificateAuthority&&delete m.ca,o.https.certificate&&delete m.cert,o.https.key&&delete m.key,o.https.passphrase&&delete m.passphrase,o.https.pfx&&delete m.pfx),bSe(I)?this._onRequest(I):this.writable?(this.once("finish",()=>{this._onResponse(I)}),this._unlockWrite(),this.end(),this._lockWrite()):this._onResponse(I)}catch(I){throw I instanceof o8.CacheError?new jk(I,this):new _r(I.message,I,this)}}async _error(e){try{for(let r of this.options.hooks.beforeError)e=await r(e)}catch(r){e=new _r(r.message,r,this)}this.destroy(e)}_beforeError(e){if(this[_u])return;let{options:r}=this,i=this.retryCount+1;this[_u]=!0,e instanceof _r||(e=new _r(e.message,e,this));let n=e,{response:s}=n;(async()=>{if(s&&!s.body){s.setEncoding(this._readableState.encoding);try{s.rawBody=await ESe.default(s),s.body=s.rawBody.toString()}catch(o){}}if(this.listenerCount("retry")!==0){let o;try{let a;s&&"retry-after"in s.headers&&(a=Number(s.headers["retry-after"]),Number.isNaN(a)?(a=Date.parse(s.headers["retry-after"])-Date.now(),a<=0&&(a=1)):a*=1e3),o=await r.retry.calculateDelay({attemptCount:i,retryOptions:r.retry,error:n,retryAfter:a,computedValue:wSe.default({attemptCount:i,retryOptions:r.retry,error:n,retryAfter:a,computedValue:0})})}catch(a){this._error(new _r(a.message,a,this));return}if(o){let a=async()=>{try{for(let l of this.options.hooks.beforeRetry)await l(this.options,n,i)}catch(l){this._error(new _r(l.message,e,this));return}this.destroyed||(this.destroy(),this.emit("retry",i,e))};this[p8]=setTimeout(a,o);return}}this._error(n)})()}_read(){this[Gy]=!0;let e=this[Uy];if(e&&!this[_u]){e.readableLength&&(this[Gy]=!1);let r;for(;(r=e.read())!==null;){this[Wu]+=r.length,this[f8]=!0;let i=this.downloadProgress;i.percent<1&&this.emit("downloadProgress",i),this.push(r)}}}_write(e,r,i){let n=()=>{this._writeRequest(e,r,i)};this.requestInitialized?n():this[bp].push(n)}_writeRequest(e,r,i){this[Ei].destroyed||(this._progressCallbacks.push(()=>{this[Vu]+=Buffer.byteLength(e,r);let n=this.uploadProgress;n.percent<1&&this.emit("uploadProgress",n)}),this[Ei].write(e,r,n=>{!n&&this._progressCallbacks.length>0&&this._progressCallbacks.shift()(),i(n)}))}_final(e){let r=()=>{for(;this._progressCallbacks.length!==0;)this._progressCallbacks.shift()();if(!(Ei in this)){e();return}if(this[Ei].destroyed){e();return}this[Ei].end(i=>{i||(this[zu]=this[Vu],this.emit("uploadProgress",this.uploadProgress),this[Ei].emit("upload-complete")),e(i)})};this.requestInitialized?r():this[bp].push(r)}_destroy(e,r){var i;this[_u]=!0,clearTimeout(this[p8]),Ei in this&&(this[Ok](),((i=this[Uy])===null||i===void 0?void 0:i.complete)||this[Ei].destroy()),e!==null&&!ce.default.undefined(e)&&!(e instanceof _r)&&(e=new _r(e.message,e,this)),r(e)}get _isAboutToError(){return this[_u]}get ip(){var e;return(e=this.socket)===null||e===void 0?void 0:e.remoteAddress}get aborted(){var e,r,i;return((r=(e=this[Ei])===null||e===void 0?void 0:e.destroyed)!==null&&r!==void 0?r:this.destroyed)&&!((i=this[h8])===null||i===void 0?void 0:i.complete)}get socket(){var e,r;return(r=(e=this[Ei])===null||e===void 0?void 0:e.socket)!==null&&r!==void 0?r:void 0}get downloadProgress(){let e;return this[Ju]?e=this[Wu]/this[Ju]:this[Ju]===this[Wu]?e=1:e=0,{percent:e,transferred:this[Wu],total:this[Ju]}}get uploadProgress(){let e;return this[zu]?e=this[Vu]/this[zu]:this[zu]===this[Vu]?e=1:e=0,{percent:e,transferred:this[Vu],total:this[zu]}}get timings(){var e;return(e=this[Ei])===null||e===void 0?void 0:e.timings}get isFromCache(){return this[g8]}pipe(e,r){if(this[f8])throw new Error("Failed to pipe. The response has been emitted already.");return e instanceof Tk.ServerResponse&&this[Hy].add(e),super.pipe(e,r)}unpipe(e){return e instanceof Tk.ServerResponse&&this[Hy].delete(e),super.unpipe(e),this}};Rt.default=Uk});var Sp=E(Ms=>{"use strict";var PSe=Ms&&Ms.__createBinding||(Object.create?function(t,e,r,i){i===void 0&&(i=r),Object.defineProperty(t,i,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,i){i===void 0&&(i=r),t[i]=e[r]}),DSe=Ms&&Ms.__exportStar||function(t,e){for(var r in t)r!=="default"&&!Object.prototype.hasOwnProperty.call(e,r)&&PSe(e,t,r)};Object.defineProperty(Ms,"__esModule",{value:!0});Ms.CancelError=Ms.ParseError=void 0;var d8=vp(),C8=class extends d8.RequestError{constructor(e,r){let{options:i}=r.request;super(`${e.message} in "${i.url.toString()}"`,e,r.request);this.name="ParseError"}};Ms.ParseError=C8;var m8=class extends d8.RequestError{constructor(e){super("Promise was canceled",{},e);this.name="CancelError"}get isCanceled(){return!0}};Ms.CancelError=m8;DSe(vp(),Ms)});var I8=E(Wk=>{"use strict";Object.defineProperty(Wk,"__esModule",{value:!0});var E8=Sp(),RSe=(t,e,r,i)=>{let{rawBody:n}=t;try{if(e==="text")return n.toString(i);if(e==="json")return n.length===0?"":r(n.toString());if(e==="buffer")return n;throw new E8.ParseError({message:`Unknown body type '${e}'`,name:"Error"},t)}catch(s){throw new E8.ParseError(s,t)}};Wk.default=RSe});var zk=E(EA=>{"use strict";var FSe=EA&&EA.__createBinding||(Object.create?function(t,e,r,i){i===void 0&&(i=r),Object.defineProperty(t,i,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,i){i===void 0&&(i=r),t[i]=e[r]}),NSe=EA&&EA.__exportStar||function(t,e){for(var r in t)r!=="default"&&!Object.prototype.hasOwnProperty.call(e,r)&&FSe(e,t,r)};Object.defineProperty(EA,"__esModule",{value:!0});var LSe=require("events"),TSe=Ca(),MSe=g3(),Yy=Sp(),y8=I8(),w8=vp(),OSe=bk(),KSe=Rk(),B8=Fk(),USe=["request","response","redirect","uploadProgress","downloadProgress"];function Q8(t){let e,r,i=new LSe.EventEmitter,n=new MSe((o,a,l)=>{let c=u=>{let g=new w8.default(void 0,t);g.retryCount=u,g._noPipe=!0,l(()=>g.destroy()),l.shouldReject=!1,l(()=>a(new Yy.CancelError(g))),e=g,g.once("response",async p=>{var d;if(p.retryCount=u,p.request.aborted)return;let m;try{m=await KSe.default(g),p.rawBody=m}catch(R){return}if(g._isAboutToError)return;let I=((d=p.headers["content-encoding"])!==null&&d!==void 0?d:"").toLowerCase(),B=["gzip","deflate","br"].includes(I),{options:b}=g;if(B&&!b.decompress)p.body=m;else try{p.body=y8.default(p,b.responseType,b.parseJson,b.encoding)}catch(R){if(p.body=m.toString(),B8.isResponseOk(p)){g._beforeError(R);return}}try{for(let[R,H]of b.hooks.afterResponse.entries())p=await H(p,async L=>{let K=w8.default.normalizeArguments(void 0,_(P({},L),{retry:{calculateDelay:()=>0},throwHttpErrors:!1,resolveBodyOnly:!1}),b);K.hooks.afterResponse=K.hooks.afterResponse.slice(0,R);for(let ne of K.hooks.beforeRetry)await ne(K);let J=Q8(K);return l(()=>{J.catch(()=>{}),J.cancel()}),J})}catch(R){g._beforeError(new Yy.RequestError(R.message,R,g));return}if(!B8.isResponseOk(p)){g._beforeError(new Yy.HTTPError(p));return}r=p,o(g.options.resolveBodyOnly?p.body:p)});let f=p=>{if(n.isCanceled)return;let{options:d}=g;if(p instanceof Yy.HTTPError&&!d.throwHttpErrors){let{response:m}=p;o(g.options.resolveBodyOnly?m.body:m);return}a(p)};g.once("error",f);let h=g.options.body;g.once("retry",(p,d)=>{var m,I;if(h===((m=d.request)===null||m===void 0?void 0:m.options.body)&&TSe.default.nodeStream((I=d.request)===null||I===void 0?void 0:I.options.body)){f(d);return}c(p)}),OSe.default(g,i,USe)};c(0)});n.on=(o,a)=>(i.on(o,a),n);let s=o=>{let a=(async()=>{await n;let{options:l}=r.request;return y8.default(r,o,l.parseJson,l.encoding)})();return Object.defineProperties(a,Object.getOwnPropertyDescriptors(n)),a};return n.json=()=>{let{headers:o}=e.options;return!e.writableFinished&&o.accept===void 0&&(o.accept="application/json"),s("json")},n.buffer=()=>s("buffer"),n.text=()=>s("text"),n}EA.default=Q8;NSe(Sp(),EA)});var b8=E(Vk=>{"use strict";Object.defineProperty(Vk,"__esModule",{value:!0});var HSe=Sp();function GSe(t,...e){let r=(async()=>{if(t instanceof HSe.RequestError)try{for(let n of e)if(n)for(let s of n)t=await s(t)}catch(n){t=n}throw t})(),i=()=>r;return r.json=i,r.text=i,r.buffer=i,r.on=i,r}Vk.default=GSe});var x8=E(_k=>{"use strict";Object.defineProperty(_k,"__esModule",{value:!0});var v8=Ca();function S8(t){for(let e of Object.values(t))(v8.default.plainObject(e)||v8.default.array(e))&&S8(e);return Object.freeze(t)}_k.default=S8});var P8=E(k8=>{"use strict";Object.defineProperty(k8,"__esModule",{value:!0})});var Xk=E(ss=>{"use strict";var jSe=ss&&ss.__createBinding||(Object.create?function(t,e,r,i){i===void 0&&(i=r),Object.defineProperty(t,i,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,i){i===void 0&&(i=r),t[i]=e[r]}),YSe=ss&&ss.__exportStar||function(t,e){for(var r in t)r!=="default"&&!Object.prototype.hasOwnProperty.call(e,r)&&jSe(e,t,r)};Object.defineProperty(ss,"__esModule",{value:!0});ss.defaultHandler=void 0;var D8=Ca(),os=zk(),qSe=b8(),qy=vp(),JSe=x8(),WSe={RequestError:os.RequestError,CacheError:os.CacheError,ReadError:os.ReadError,HTTPError:os.HTTPError,MaxRedirectsError:os.MaxRedirectsError,TimeoutError:os.TimeoutError,ParseError:os.ParseError,CancelError:os.CancelError,UnsupportedProtocolError:os.UnsupportedProtocolError,UploadError:os.UploadError},zSe=async t=>new Promise(e=>{setTimeout(e,t)}),{normalizeArguments:Jy}=qy.default,R8=(...t)=>{let e;for(let r of t)e=Jy(void 0,r,e);return e},VSe=t=>t.isStream?new qy.default(void 0,t):os.default(t),_Se=t=>"defaults"in t&&"options"in t.defaults,XSe=["get","post","put","patch","head","delete"];ss.defaultHandler=(t,e)=>e(t);var F8=(t,e)=>{if(t)for(let r of t)r(e)},N8=t=>{t._rawHandlers=t.handlers,t.handlers=t.handlers.map(i=>(n,s)=>{let o,a=i(n,l=>(o=s(l),o));if(a!==o&&!n.isStream&&o){let l=a,{then:c,catch:u,finally:g}=l;Object.setPrototypeOf(l,Object.getPrototypeOf(o)),Object.defineProperties(l,Object.getOwnPropertyDescriptors(o)),l.then=c,l.catch=u,l.finally=g}return a});let e=(i,n={},s)=>{var o,a;let l=0,c=u=>t.handlers[l++](u,l===t.handlers.length?VSe:c);if(D8.default.plainObject(i)){let u=P(P({},i),n);qy.setNonEnumerableProperties([i,n],u),n=u,i=void 0}try{let u;try{F8(t.options.hooks.init,n),F8((o=n.hooks)===null||o===void 0?void 0:o.init,n)}catch(f){u=f}let g=Jy(i,n,s!=null?s:t.options);if(g[qy.kIsNormalizedAlready]=!0,u)throw new os.RequestError(u.message,u,g);return c(g)}catch(u){if(n.isStream)throw u;return qSe.default(u,t.options.hooks.beforeError,(a=n.hooks)===null||a===void 0?void 0:a.beforeError)}};e.extend=(...i)=>{let n=[t.options],s=[...t._rawHandlers],o;for(let a of i)_Se(a)?(n.push(a.defaults.options),s.push(...a.defaults._rawHandlers),o=a.defaults.mutableDefaults):(n.push(a),"handlers"in a&&s.push(...a.handlers),o=a.mutableDefaults);return s=s.filter(a=>a!==ss.defaultHandler),s.length===0&&s.push(ss.defaultHandler),N8({options:R8(...n),handlers:s,mutableDefaults:Boolean(o)})};let r=async function*(i,n){let s=Jy(i,n,t.options);s.resolveBodyOnly=!1;let o=s.pagination;if(!D8.default.object(o))throw new TypeError("`options.pagination` must be implemented");let a=[],{countLimit:l}=o,c=0;for(;c{let s=[];for await(let o of r(i,n))s.push(o);return s},e.paginate.each=r,e.stream=(i,n)=>e(i,_(P({},n),{isStream:!0}));for(let i of XSe)e[i]=(n,s)=>e(n,_(P({},s),{method:i})),e.stream[i]=(n,s)=>e(n,_(P({},s),{method:i,isStream:!0}));return Object.assign(e,WSe),Object.defineProperty(e,"defaults",{value:t.mutableDefaults?t:JSe.default(t),writable:t.mutableDefaults,configurable:t.mutableDefaults,enumerable:!0}),e.mergeOptions=R8,e};ss.default=N8;YSe(P8(),ss)});var zy=E((Ea,Wy)=>{"use strict";var ZSe=Ea&&Ea.__createBinding||(Object.create?function(t,e,r,i){i===void 0&&(i=r),Object.defineProperty(t,i,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,i){i===void 0&&(i=r),t[i]=e[r]}),L8=Ea&&Ea.__exportStar||function(t,e){for(var r in t)r!=="default"&&!Object.prototype.hasOwnProperty.call(e,r)&&ZSe(e,t,r)};Object.defineProperty(Ea,"__esModule",{value:!0});var $Se=require("url"),T8=Xk(),exe={options:{method:"GET",retry:{limit:2,methods:["GET","PUT","HEAD","DELETE","OPTIONS","TRACE"],statusCodes:[408,413,429,500,502,503,504,521,522,524],errorCodes:["ETIMEDOUT","ECONNRESET","EADDRINUSE","ECONNREFUSED","EPIPE","ENOTFOUND","ENETUNREACH","EAI_AGAIN"],maxRetryAfter:void 0,calculateDelay:({computedValue:t})=>t},timeout:{},headers:{"user-agent":"got (https://github.com/sindresorhus/got)"},hooks:{init:[],beforeRequest:[],beforeRedirect:[],beforeRetry:[],beforeError:[],afterResponse:[]},cache:void 0,dnsCache:void 0,decompress:!0,throwHttpErrors:!0,followRedirect:!0,isStream:!1,responseType:"text",resolveBodyOnly:!1,maxRedirects:10,prefixUrl:"",methodRewriting:!0,ignoreInvalidCookies:!1,context:{},http2:!1,allowGetBody:!1,https:void 0,pagination:{transform:t=>t.request.options.responseType==="json"?t.body:JSON.parse(t.body),paginate:t=>{if(!Reflect.has(t.headers,"link"))return!1;let e=t.headers.link.split(","),r;for(let i of e){let n=i.split(";");if(n[1].includes("next")){r=n[0].trimStart().trim(),r=r.slice(1,-1);break}}return r?{url:new $Se.URL(r)}:!1},filter:()=>!0,shouldContinue:()=>!0,countLimit:Infinity,backoff:0,requestLimit:1e4,stackAllItems:!0},parseJson:t=>JSON.parse(t),stringifyJson:t=>JSON.stringify(t),cacheOptions:{}},handlers:[T8.defaultHandler],mutableDefaults:!1},Zk=T8.default(exe);Ea.default=Zk;Wy.exports=Zk;Wy.exports.default=Zk;Wy.exports.__esModule=!0;L8(Xk(),Ea);L8(zk(),Ea)});var U8=E(Xu=>{"use strict";var fst=require("net"),txe=require("tls"),$k=require("http"),M8=require("https"),rxe=require("events"),hst=require("assert"),ixe=require("util");Xu.httpOverHttp=nxe;Xu.httpsOverHttp=sxe;Xu.httpOverHttps=oxe;Xu.httpsOverHttps=axe;function nxe(t){var e=new Ia(t);return e.request=$k.request,e}function sxe(t){var e=new Ia(t);return e.request=$k.request,e.createSocket=O8,e.defaultPort=443,e}function oxe(t){var e=new Ia(t);return e.request=M8.request,e}function axe(t){var e=new Ia(t);return e.request=M8.request,e.createSocket=O8,e.defaultPort=443,e}function Ia(t){var e=this;e.options=t||{},e.proxyOptions=e.options.proxy||{},e.maxSockets=e.options.maxSockets||$k.Agent.defaultMaxSockets,e.requests=[],e.sockets=[],e.on("free",function(i,n,s,o){for(var a=K8(n,s,o),l=0,c=e.requests.length;l=this.maxSockets){s.requests.push(o);return}s.createSocket(o,function(a){a.on("free",l),a.on("close",c),a.on("agentRemove",c),e.onSocket(a);function l(){s.emit("free",a,o)}function c(u){s.removeSocket(a),a.removeListener("free",l),a.removeListener("close",c),a.removeListener("agentRemove",c)}})};Ia.prototype.createSocket=function(e,r){var i=this,n={};i.sockets.push(n);var s=eP({},i.proxyOptions,{method:"CONNECT",path:e.host+":"+e.port,agent:!1,headers:{host:e.host+":"+e.port}});e.localAddress&&(s.localAddress=e.localAddress),s.proxyAuth&&(s.headers=s.headers||{},s.headers["Proxy-Authorization"]="Basic "+new Buffer(s.proxyAuth).toString("base64")),IA("making CONNECT request");var o=i.request(s);o.useChunkedEncodingByDefault=!1,o.once("response",a),o.once("upgrade",l),o.once("connect",c),o.once("error",u),o.end();function a(g){g.upgrade=!0}function l(g,f,h){process.nextTick(function(){c(g,f,h)})}function c(g,f,h){if(o.removeAllListeners(),f.removeAllListeners(),g.statusCode!==200){IA("tunneling socket could not be established, statusCode=%d",g.statusCode),f.destroy();var p=new Error("tunneling socket could not be established, statusCode="+g.statusCode);p.code="ECONNRESET",e.request.emit("error",p),i.removeSocket(n);return}if(h.length>0){IA("got illegal response body from proxy"),f.destroy();var p=new Error("got illegal response body from proxy");p.code="ECONNRESET",e.request.emit("error",p),i.removeSocket(n);return}return IA("tunneling connection has established"),i.sockets[i.sockets.indexOf(n)]=f,r(f)}function u(g){o.removeAllListeners(),IA(`tunneling socket could not be established, cause=%s -`,g.message,g.stack);var f=new Error("tunneling socket could not be established, cause="+g.message);f.code="ECONNRESET",e.request.emit("error",f),i.removeSocket(n)}};Ia.prototype.removeSocket=function(e){var r=this.sockets.indexOf(e);if(r!==-1){this.sockets.splice(r,1);var i=this.requests.shift();i&&this.createSocket(i,function(n){i.request.onSocket(n)})}};function O8(t,e){var r=this;Ia.prototype.createSocket.call(r,t,function(i){var n=t.request.getHeader("host"),s=eP({},r.options,{socket:i,servername:n?n.replace(/:.*$/,""):t.host}),o=txe.connect(0,s);r.sockets[r.sockets.indexOf(i)]=o,e(o)})}function K8(t,e,r){return typeof t=="string"?{host:t,port:e,localAddress:r}:t}function eP(t){for(var e=1,r=arguments.length;e{H8.exports=U8()});var b4=E((xot,sP)=>{var e4=Object.assign({},require("fs")),oe=typeof oe!="undefined"?oe:{},kp={},wA;for(wA in oe)oe.hasOwnProperty(wA)&&(kp[wA]=oe[wA]);var oP=[],t4="./this.program",r4=function(t,e){throw e},i4=!1,Wl=!0,Pp="";function dxe(t){return oe.locateFile?oe.locateFile(t,Pp):Pp+t}var Xy,aP,Zy,AP;Wl&&(i4?Pp=require("path").dirname(Pp)+"/":Pp=__dirname+"/",Xy=function(e,r){var i=s4(e);return i?r?i:i.toString():(Zy||(Zy=e4),AP||(AP=require("path")),e=AP.normalize(e),Zy.readFileSync(e,r?null:"utf8"))},aP=function(e){var r=Xy(e,!0);return r.buffer||(r=new Uint8Array(r)),n4(r.buffer),r},process.argv.length>1&&(t4=process.argv[1].replace(/\\/g,"/")),oP=process.argv.slice(2),typeof sP!="undefined"&&(sP.exports=oe),r4=function(t){process.exit(t)},oe.inspect=function(){return"[Emscripten Module object]"});var $y=oe.print||console.log.bind(console),Di=oe.printErr||console.warn.bind(console);for(wA in kp)kp.hasOwnProperty(wA)&&(oe[wA]=kp[wA]);kp=null;oe.arguments&&(oP=oe.arguments);oe.thisProgram&&(t4=oe.thisProgram);oe.quit&&(r4=oe.quit);var Cxe=16;function mxe(t,e){return e||(e=Cxe),Math.ceil(t/e)*e}var Exe=0,Ixe=function(t){Exe=t},lP;oe.wasmBinary&&(lP=oe.wasmBinary);var Pst=oe.noExitRuntime||!0;typeof WebAssembly!="object"&&Gr("no native wasm support detected");function yxe(t,e,r){switch(e=e||"i8",e.charAt(e.length-1)==="*"&&(e="i32"),e){case"i1":return Zi[t>>0];case"i8":return Zi[t>>0];case"i16":return cP[t>>1];case"i32":return _e[t>>2];case"i64":return _e[t>>2];case"float":return o4[t>>2];case"double":return a4[t>>3];default:Gr("invalid type for getValue: "+e)}return null}var ew,A4=!1,wxe;function n4(t,e){t||Gr("Assertion failed: "+e)}function l4(t){var e=oe["_"+t];return n4(e,"Cannot call unknown function "+t+", make sure it is exported"),e}function vxe(t,e,r,i,n){var s={string:function(h){var p=0;if(h!=null&&h!==0){var d=(h.length<<2)+1;p=g4(d),u4(h,p,d)}return p},array:function(h){var p=g4(h.length);return Bxe(h,p),p}};function o(h){return e==="string"?c4(h):e==="boolean"?Boolean(h):h}var a=l4(t),l=[],c=0;if(i)for(var u=0;u=i);)++n;if(n-e>16&&t.subarray&&f4)return f4.decode(t.subarray(e,n));for(var s="";e>10,56320|c&1023)}}return s}function c4(t,e){return t?Zu($u,t,e):""}function tw(t,e,r,i){if(!(i>0))return 0;for(var n=r,s=r+i-1,o=0;o=55296&&a<=57343){var l=t.charCodeAt(++o);a=65536+((a&1023)<<10)|l&1023}if(a<=127){if(r>=s)break;e[r++]=a}else if(a<=2047){if(r+1>=s)break;e[r++]=192|a>>6,e[r++]=128|a&63}else if(a<=65535){if(r+2>=s)break;e[r++]=224|a>>12,e[r++]=128|a>>6&63,e[r++]=128|a&63}else{if(r+3>=s)break;e[r++]=240|a>>18,e[r++]=128|a>>12&63,e[r++]=128|a>>6&63,e[r++]=128|a&63}}return e[r]=0,r-n}function u4(t,e,r){return tw(t,$u,e,r)}function rw(t){for(var e=0,r=0;r=55296&&i<=57343&&(i=65536+((i&1023)<<10)|t.charCodeAt(++r)&1023),i<=127?++e:i<=2047?e+=2:i<=65535?e+=3:e+=4}return e}function uP(t){var e=rw(t)+1,r=h4(e);return r&&tw(t,Zi,r,e),r}function Bxe(t,e){Zi.set(t,e)}function xxe(t,e){return t%e>0&&(t+=e-t%e),t}var gP,Zi,$u,cP,kxe,_e,Pxe,o4,a4;function p4(t){gP=t,oe.HEAP8=Zi=new Int8Array(t),oe.HEAP16=cP=new Int16Array(t),oe.HEAP32=_e=new Int32Array(t),oe.HEAPU8=$u=new Uint8Array(t),oe.HEAPU16=kxe=new Uint16Array(t),oe.HEAPU32=Pxe=new Uint32Array(t),oe.HEAPF32=o4=new Float32Array(t),oe.HEAPF64=a4=new Float64Array(t)}var Dst=oe.INITIAL_MEMORY||16777216,fP,d4=[],C4=[],m4=[],Dxe=!1;function Fxe(){if(oe.preRun)for(typeof oe.preRun=="function"&&(oe.preRun=[oe.preRun]);oe.preRun.length;)Rxe(oe.preRun.shift());hP(d4)}function Nxe(){Dxe=!0,!oe.noFSInit&&!y.init.initialized&&y.init(),BA.init(),hP(C4)}function Txe(){if(oe.postRun)for(typeof oe.postRun=="function"&&(oe.postRun=[oe.postRun]);oe.postRun.length;)Lxe(oe.postRun.shift());hP(m4)}function Rxe(t){d4.unshift(t)}function Mxe(t){C4.unshift(t)}function Lxe(t){m4.unshift(t)}var zl=0,pP=null,Dp=null;function Oxe(t){return t}function E4(t){zl++,oe.monitorRunDependencies&&oe.monitorRunDependencies(zl)}function dP(t){if(zl--,oe.monitorRunDependencies&&oe.monitorRunDependencies(zl),zl==0&&(pP!==null&&(clearInterval(pP),pP=null),Dp)){var e=Dp;Dp=null,e()}}oe.preloadedImages={};oe.preloadedAudios={};function Gr(t){oe.onAbort&&oe.onAbort(t),t+="",Di(t),A4=!0,wxe=1,t="abort("+t+"). Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(t);throw e}var I4="data:application/octet-stream;base64,";function y4(t){return t.startsWith(I4)}var Rp="data:application/octet-stream;base64,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AkEEaiEBIAIoAgAiA0F/cyADQYGChAhrcUGAgYKEeHFFDQALIANB/wFxRQRAIAIgAGsPCwNAIAItAAEhAyACQQFqIgEhAiADDQALCyABIABrC2EBAX8jAEEQayICIAA2AgggAiABNwMAAkAgAikDACACKAIIKQMIVgRAIAIoAghBADoAACACQX82AgwMAQsgAigCCEEBOgAAIAIoAgggAikDADcDECACQQA2AgwLIAIoAgwL7wEBAX8jAEEgayICJAAgAiAANgIYIAIgATcDECACIAIoAhhCCBAeNgIMAkAgAigCDEUEQCACQX82AhwMAQsgAigCDCACKQMQQv8BgzwAACACKAIMIAIpAxBCCIhC/wGDPAABIAIoAgwgAikDEEIQiEL/AYM8AAIgAigCDCACKQMQQhiIQv8BgzwAAyACKAIMIAIpAxBCIIhC/wGDPAAEIAIoAgwgAikDEEIoiEL/AYM8AAUgAigCDCACKQMQQjCIQv8BgzwABiACKAIMIAIpAxBCOIhC/wGDPAAHIAJBADYCHAsgAigCHBogAkEgaiQAC4cDAQF/IwBBMGsiAyQAIAMgADYCJCADIAE2AiAgAyACNwMYAkAgAygCJC0AKEEBcQRAIANCfzcDKAwBCwJAAkAgAygCJCgCIEUNACADKQMYQv///////////wBWDQAgAykDGFANASADKAIgDQELIAMoAiRBDGpBEkEAEBQgA0J/NwMoDAELIAMoAiQtADVBAXEEQCADQn83AygMAQsCfyMAQRBrIgAgAygCJDYCDCAAKAIMLQA0QQFxCwRAIANCADcDKAwBCyADKQMYUARAIANCADcDKAwBCyADQgA3AxADQCADKQMQIAMpAxhUBEAgAyADKAIkIAMoAiAgAykDEKdqIAMpAxggAykDEH1BARAhIgI3AwggAkIAUwRAIAMoAiRBAToANSADKQMQUARAIANCfzcDKAwECyADIAMpAxA3AygMAwsgAykDCFAEQCADKAIkQQE6ADQFIAMgAykDCCADKQMQfDcDEAwCCwsLIAMgAykDEDcDKAsgAykDKCECIANBMGokACACCzYBAX8jAEEQayIBIAA2AgwCfiABKAIMLQAAQQFxBEAgASgCDCkDCCABKAIMKQMQfQwBC0IACwuyAQIBfwF+IwBBEGsiASQAIAEgADYCBCABIAEoAgRC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AkEBNgIQIAJBADYCCANAAkAgAigCCCACKAIYLwEETw0AAkAgAigCDCACKAIIai0AAEEfSwRAIAIoAgwgAigCCGotAABBgAFJDQELIAIoAgwgAigCCGotAABBDUYNACACKAIMIAIoAghqLQAAQQpGDQAgAigCDCACKAIIai0AAEEJRgRADAELIAJBAzYCEAJAIAIoAgwgAigCCGotAABB4AFxQcABRgRAIAJBATYCAAwBCwJAIAIoAgwgAigCCGotAABB8AFxQeABRgRAIAJBAjYCAAwBCwJAIAIoAgwgAigCCGotAABB+AFxQfABRgRAIAJBAzYCAAwBCyACQQQ2AhAMBAsLCyACKAIYLwEEIAIoAgggAigCAGpNBEAgAkEENgIQDAILIAJBATYCBANAIAIoAgQgAigCAE0EQCACKAIMIAIoAgggAigCBGpqLQAAQcABcUGAAUcEQCACQQQ2AhAMBgUgAiACKAIEQQFqNgIEDAILAAsLIAIgAigCACACKAIIajYCCAsgAiACKAIIQQFqNgIIDAELCwsgAigCGCACKAIQNgIIIAIoAhQEQAJAIAIoAhRBAkcNACACKAIQQQNHDQAgAkECNgIQIAIoAhhBAjYCCAsCQCACKAIUIAIoAhBGDQAgAigCEEEBRg0AIAJBBTYCHAwCCwsgAiACKAIQNgIcCyACKAIcC2oBAX8jAEEQayIBIAA2AgwgASgCDEIANwMAIAEoAgxBADYCCCABKAIMQn83AxAgASgCDEEANgIsIAEoAgxBfzYCKCABKAIMQgA3AxggASgCDEIANwMgIAEoAgxBADsBMCABKAIMQQA7ATILUgECf0GQlwEoAgAiASAAQQNqQXxxIgJqIQACQCACQQAgACABTRsNACAAPwBBEHRLBEAgABATRQ0BC0GQlwEgADYCACABDwtBtJsBQTA2AgBBfwuNBQEDfyMAQRBrIgEkACABIAA2AgwgASgCDARAIAEoAgwoAgAEQCABKAIMKAIAEDEaIAEoAgwoAgAQGwsgASgCDCgCHBAVIAEoAgwoAiAQJSABKAIMKAIkECUgASgCDCgCUCECIwBBEGsiACQAIAAgAjYCDCAAKAIMBEAgACgCDCgCEARAIABBADYCCANAIAAoAgggACgCDCgCAEkEQCAAKAIMKAIQIAAoAghBAnRqKAIABEAgACgCDCgC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A3EQHwsgAygCpAEoAhQgA0GeAWogA0GcAWoQgQEgAygCTCADLwGeARAfIAMoAkwgAy8BnAEQHwJAAkAgAy0AhQFBAXFFDQAgAygCpAEpAyhCFFoNACADKAJMQQAQIAwBCyADKAJMIAMoAqQBKAIYECALAkACQCADKAKgAUGAAnFBgAJHDQAgAygCpAEpAyBC/////w9UBEAgAygCpAEpAyhC/////w9UDQELIAMoAkxBfxAgIAMoAkxBfxAgDAELAkAgAygCpAEpAyBC/////w9UBEAgAygCTCADKAKkASkDIKcQIAwBCyADKAJMQX8QIAsCQCADKAKkASkDKEL/////D1QEQCADKAJMIAMoAqQBKQMopxAgDAELIAMoAkxBfxAgCwsgAygCTCADKAKkASgCMBBTQf//A3EQHyADIAMoAqQBKAI0IAMoAqABEIYBQf//A3EgAygCkAFBgAYQhgFB//8DcWo2AogBIAMoAkwgAygCiAFB//8DcRAfIAMoAqABQYACcUUEQCADKAJMIAMoAqQBKAI4EFNB//8DcRAfIAMoAkwgAygCpAEoAjxB//8DcRAfIAMoAkwgAygCpAEvAUAQHyADKAJMIAMoAqQBKAJEECACQCADKAKkASkDSEL/////D1QEQCADKAJMIAMoAqQBKQNIpxAgDAELIAMoAkxBfxAgCwsCfyMAQRBrIgAgAygCTDYCDCAAKAIMLQAAQQFxRQsEQCADKAKoAUEIakEUQQAQFCADKAJMEBYgAygCkAEQIyADQX82AqwBDAELIAMoAqgBIANB0ABqAn4jAEEQayIAIAMoAkw2AgwCfiAAKAIMLQAAQQFxBEAgACgCDCkDEAwBC0IACwsQNUEASARAIAMoAkwQFiADKAKQARAjIANBfzYCrAEMAQsgAygCTBAWIAMoAqQBKAIwBEAgAygCqAEgAygCpAEoAjAQigFBAEgEQCADKAKQARAjIANBfzYCrAEMAgsLIAMoApABBEAgAygCqAEgAygCkAFBgAYQhQFBAEgEQCADKAKQARAjIANBfzYCrAEMAgsLIAMoApABECMgAygCpAEoAjQEQCADKAKoASADKAKkASgCNCADKAKgARCFAUEASARAIANBfzYCrAEMAgsLIAMoAqABQYACcUUEQCADKAKkASgCOARAIAMoAqgBIAMoAqQBKAI4EIoB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HCAAIAAoAhRBAWo2AhQMAQsLIAAoAggQR0EBcUUEQCAAKAIgQRRBABAUIAAoAggQFiAAQX82AiwMAQsgACgCCBAWIAAgACgCHDYCLAsgACgCLCECIABBMGokACADIAIiADYCBCAAQQBIBEAgA0IANwMoDAELIAMpAwggAygCBK18Qv///////////wBWBEAgAygCFEEEQRYQFCADQgA3AygMAQsgAyADKQMIIAMoAgStfDcDKAsgAykDKCEBIANBMGokACABC20BAX8jAEEgayIEJAAgBCAANgIYIAQgATYCFCAEIAI2AhAgBCADNgIMAkAgBCgCGEUEQCAEQQA2AhwMAQsgBCAEKAIUIAQoAhAgBCgCDCAEKAIYQQhqEJIBNgIcCyAEKAIcIQAgBEEgaiQAIAALVQEBfyMAQRBrIgEkACABIAA2AgwCQAJAIAEoAgwoAiRBAUYNACABKAIMKAIkQQJGDQAMAQsgASgCDEEAQgBBChAhGiABKAIMQQA2AiQLIAFBEGokAAumAQEBfyMAQRBrIgIkACACIAA2AgggAiABNgIEAkAgAigCCC0AKEEBcQRAIAJBfzYCDAwBCyACKAIIKAIABEAgAigCCCgCACACKAIEEGhBAEgEQCACKAIIQQxqIAIoAggoAgAQFyACQX82AgwMAgsLIAIoAgggAkEEakIEQRMQIUIAUwRAIAJBfzYCDAwBCyACQQA2AgwLIAIoAgwhACACQRBqJAAgAAuNCAIBfwF+IwBBkAFrIgMkACADIAA2AoQBIAMgATYCgAEgAyACNgJ8IAMQTwJAIAMoAoABKQMIQgBSBEAgAyADKAKAASgCACgCACkDSDcDYCADIAMoAoABKAIAKAIAKQNINwNoDAELIANCADcDYCADQgA3A2gLIANCADcDcAJAA0AgAykDcCADKAKAASkDCFQEQCADKAKAASgCACADKQNwp0EEdGooAgApA0ggAykDaFQEQCADIAMoAoABKAIAIAMpA3CnQQR0aigCACkDSDcDaAsgAykDaCADKAKAASkDIFYEQCADKAJ8QRNBABAUIANCfzcDiAEMAwsgAyADKAKAASgCACADKQNwp0EEdGooAgApA0ggAygCgAEoAgAgAykDcKdBBHRqKAIAKQMgfCADKAKAASgCACADKQNwp0EEdGooAgAoAjAQU0H//wNxrXxC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DEECdGooAgBBAnRqLwEASA0AAkAgAygCGCADKAIQQQJ0ai8BACADKAIYIAMoAhxB3BZqIAMoAgxBAnRqKAIAQQJ0ai8BAEcNACADKAIQIAMoAhxB2Chqai0AACADKAIcQdwWaiADKAIMQQJ0aigCACADKAIcQdgoamotAABKDQAMAQsgAygCHEHcFmogAygCFEECdGogAygCHEHcFmogAygCDEECdGooAgA2AgAgAyADKAIMNgIUIAMgAygCDEEBdDYCDAwBCwsgAygCHEHcFmogAygCFEECdGogAygCEDYCAAvXEwEDfyMAQTBrIgIkACACIAA2AiwgAiABNgIoIAIgAigCKCgCADYCJCACIAIoAigoAggoAgA2AiAgAiACKAIoKAIIKAIMNgIcIAJBfzYCECACKAIsQQA2AtAoIAIoAixBvQQ2AtQoIAJBADYCGANAIAIoAhggAigCHEgEQAJAIAIoAiQgAigCGEECdGovAQAEQCACIAIoAhgiATYCECACKAIsQdwWaiEDIAIoAiwiBCgC0ChBAWohACAEIAA2AtAoIABBAnQgA2ogATYCACACKAIYIAIoAixB2ChqakEAOgAADAELIAIoAiQgAigCGEECdGpBADsBAgsgAiACKAIYQQFqNgIYDAELCwNAIAIoAiwoAtAoQQJIBEACQCACKAIQQQJIBEAgAiACKAIQQQFqIgA2AhAMAQtBACEACyACKAIsQdwWaiEDIAIoAiwiBCgC0ChBAWohASAEIAE2AtAoIAFBAnQgA2ogADYCACACIAA2AgwgAigCJCACKAIMQQJ0akEBOwEAIAIoAgwgAigCLEHYKGpqQQA6AAAgAigCLCIAIAAoAqgtQQFrNgKoLSACKAIgBEAgAigCLCIAIAAoAqwtIAIoAiAgAigCDEECdGovAQJrNgKsLQsMAQsLIAIoAiggAigCEDYCBCACIAIoAiwoAtAoQQJtNgIYA0AgAigCGEEBTgRAIAIoAiwgAigCJCACKAIYEHogAiACKAIYQQFrNgIYDAELCyACIAIoAhw2AgwDQCACIAIoAiwoAuAWNgIYIAIoAixB3BZqIQEgAigCLCIDKALQKCEAIAMgAEEBazYC0CggAigCLCAAQQJ0IAFqKAIANgLgFiACKAIsIAIoAiRBARB6IAIgAigCLCgC4BY2AhQgAigCGCEBIAIoAixB3BZqIQMgAigCLCIEKALUKEEBayEAIAQgADYC1CggAEECdCADaiABNgIAIAIoAhQhASACKAIsQdwWaiEDIAIoAiwiBCgC1ChBAWshACAEIAA2AtQoIABBAnQgA2ogATYCACACKAIkIAIoAgxBAnRqIAIoAiQgAigCGEECdGovAQAgAigCJCACKAIUQQJ0ai8BAGo7AQAgAigCDCACKAIsQdgoamoCfyACKAIYIAIoAixB2Chqai0AACACKAIUIAIoAixB2Chqai0AAE4EQCACKAIYIAIoAixB2Chqai0AAAwBCyACKAIUIAIoAixB2Chqai0AAAtBAWo6AAAgAigCJCACKAIUQQJ0aiACKAIMIgA7AQIgAigCJCACKAIYQQJ0aiAAOwECIAIgAigCDCIAQQFqNgIMIAIoAiwgADYC4BYgAigCLCACKAIkQQEQeiACKAIsKALQKEECTg0ACyACKAIsKALgFiEBIAIoAixB3BZqIQMgAigCLCIEKALUKEEBayEAIAQgADYC1CggAEECdCADaiABNgIAIAIoAighASMAQUBqIgAgAigCLDYCPCAAIAE2AjggACAAKAI4KAIANgI0IAAgACgCOCgCBDYCMCAAIAAoAjgoAggoAgA2AiwgACAAKAI4KAIIKAIENgIoIAAgACgCOCgCCCgCCDYCJCAAIAAoAjgoAggoAhA2AiAgAEEANgIEIABBADYCEANAIAAoAhBBD0wEQCAAKAI8QbwWaiAAKAIQQQF0akEAOwEAIAAgACgCEEEBajYCEAwBCwsgACgCNCAAKAI8QdwWaiAAKAI8KALUKEECdGooAgBBAnRqQQA7AQIgACAAKAI8KALUKEEBajYCHANAIAAoAhxBvQRIBEAgACAAKAI8QdwWaiAAKAIcQQJ0aigCADYCGCAAIAAoAjQgACgCNCAAKAIYQQJ0ai8BAkECdGovAQJBAWo2AhAgACgCECAAKAIgSgRAIAAgACgCIDYCECAAIAAoAgRBAWo2AgQLIAAoAjQgACgCGEECdGogACgCEDsBAiAAKAIYIAAoAjBMBEAgACgCPCAAKAIQQQF0akG8FmoiASABLwEAQQFqOwEAIABBADYCDCAAKAIYIAAoAiROBEAgACAAKAIoIAAoAhggACgCJGtBAnRqKAIANgIMCyAAIAAoAjQgACgCGEECdGovAQA7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EANAIAMpAxAgAykDCFpFBEAgAygCKCgCACADKQMQp0EEdGoQkAEgAyADKQMQQgF8NwMQDAELCyADKAIoIAMpAwgiATcDECADKAIoIAE3AwggA0EBOgAvCyADLQAvQQFxIQAgA0EwaiQAIAALzAEBAX8jAEEgayICJAAgAiAANwMQIAIgATYCDCACQTAQGCIBNgIIAkAgAUUEQCACKAIMQQ5BABAUIAJBADYCHAwBCyACKAIIQQA2AgAgAigCCEIANwMQIAIoAghCADcDCCACKAIIQgA3AyAgAigCCEIANwMYIAIoAghBADYCKCACKAIIQQA6ACwgAigCCCACKQMQIAIoAgwQgwFBAXFFBEAgAigCCBAkIAJBADYCHAwBCyACIAIoAgg2AhwLIAIoAhwhASACQSBqJAAgAQvWAgEBfyMAQSBrIgMkACADIAA2AhggAyABNgIUIAMgAjYCECADIANBDGpCBBApNgIIAkAgAygCCEUEQCADQX82AhwMAQsDQCADKAIUBEAgAygCFCgCBCADKAIQcUGABnEEQCADKAIIQgAQLBogAygCCCADKAIULwEIEB8gAygCCCADKAIULwEKEB8CfyMAQRBrIgAgAygCCDYCDCAAKAIMLQAAQQFxRQsEQCADKAIYQQhqQRRBABAUIAMoAggQFiADQX82AhwMBAsgAygCGCADQQxqQgQQNUEASARAIAMoAggQFiADQX82AhwMBAsgAygCFC8BCgRAIAMoAhggAygCFCgCDCADKAIULwEKrRA1QQBIBEAgAygCCBAWIANBfzYCHAwFCwsLIAMgAygCFCgCADYCFAwBCwsgAygCCBAWIANBADYCHAsgAygCHCEAIANBIGokACAAC2gBAX8jAEEQayICIAA2AgwgAiABNgIIIAJBADsBBgNAIAIoAgwEQCACKAIMKAIEIAIoAghxQYAGcQRAIAIgAigCDC8BCiACLwEGQQRqajsBBgsgAiACKAIMKAIANgIMDAELCyACLwEGC/ABAQF/IwBBEGsiASQAIAEgADYCDCABIAEoAgw2AgggAUEANgIEA0AgASgCDARAAkACQCABKAIMLwEIQfXGAUYNACABKAIMLwEIQfXgAUYNACABKAIMLwEIQYGyAkYNACABKAIMLwEIQQFHDQELIAEgASgCDCgCADYCACABKAIIIAEoAgxGBEAg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IAEpA4ABIAEpAzB8IAEpA5gBIAEpAzh8VgRAIAEoApABQRVBABAUIAFBADYCrAEMAQsCQCABKAKUAUEEcUUNACABKQOAASABKQMwfCABKQOYASABKQM4fFENACABKAKQAUEVQQAQFCABQQA2AqwBDAELIAEpAyggASkDMEIugFYEQCABKAKQAUEVQQAQFCABQQA2AqwBDAELIAEgASkDKCABKAKQARCEASIFNgKMASAFRQRAIAFBADYCrAEMAQsgASgCjAFBAToALCABKAKMASABKQMwNwMYIAEoAowBIAEpA4ABNwMgIAEgASgCjAE2AqwBCyABKAKsASEFIAFBsAFqJAAgACAFNgJQDAELIAAoAmQgACkDMBAsGiAAKAJkIQUgACkDWCEJIAAoAmgoAhQhBiAAKAJUIQcjAEHQAGsiASQAIAEgBTYCSCABIAk3A0AgASAGNgI8IAEgBzYCOAJAIAEoAkgQL0IWVARAIAEoAjhBFUEAEBQgAUEANgJMDAELIwBBEGsiBSABKAJINgIMIAECfiAFKAIMLQAAQQFxBEAgBSgCDCkDEAwBC0IACzcDCCABKAJIQgQQHhogASgCSBAqBEAgASgCOEEBQQAQFCABQQA2AkwMAQsgASABKAJIEB1B//8Dca03AyggASABKAJIEB1B//8Dca03AyAgASkDICABKQMoUgRAIAEoAjhBE0EAEBQgAUEANgJMDAELIAEgASgCSBAqrTcDGCABIAEoAkgQKq03AxAgASkDECABKQMQIAEpAxh8VgRAIAEoAjhBBEEWEBQgAUEANgJMDAELIAEpAxAgASkDGHwgASkDQCABKQMIfFYEQCABKAI4QRVBABAUIAFBADYCTAwBCwJAIAEoAjxBBHFFDQAgASkDECABKQMYfCABKQNAIAEpAwh8UQ0AIAEoAjhBFUEAEBQgAUEANgJMDAELIAEgASkDICABKAI4EIQBIgU2AjQgBUUEQCABQQA2AkwMAQsgASgCNEEAOgAsIAEoAjQgASkDGDcDGCABKAI0IAEpAxA3AyAgASABKAI0NgJMCyABKAJMIQUgAUHQAGokACAAIAU2AlALIAAoAlBFBEAgAEEANgJsDAELIAAoAmQgACkDMEIUfBAsGiAAIAAoAmQQHTsBTiAAKAJQKQMgIAAoAlApAxh8IAApA1ggACkDMHxWBEAg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IAIgAigCLCIAQQFqNgIsIAAtAAEhASACIAIoAigiAEEBajYCKEEAIAAtAAEgAUcNABogAiACKAIsIgBBAWo2AiwgAC0AASEBIAIgAigCKCIAQQFqNgIoQQAgAC0AASABRw0AGiACIAIoAiwiAEEBajYCLCAALQABIQEgAiACKAIoIgBBAWo2AihBACAALQABIAFHDQAaIAIgAigCLCIAQQFqNgIsIAAtAAEhASACIAIoAigiAEEBajYCKEEAIAAtAAEgAUcNABogAiACKAIsIgBBAWo2AiwgAC0AASEBIAIgAigCKCIAQQFqNgIoQQAgAC0AASABRw0AGiACKAIsIAIoAgxJC0EBcQ0ACyACQYICIAIoAgwgAigCLGtrNgIkIAIgAigCDEGCAms2AiwgAigCJCACKAIgSgRAIAIoAjggAigCNDYCcCACIAIoAiQ2AiAgAigCJCACKAIcTg0CIAIgAigCLCACKAIgQQFrai0AADoACyACIAIoAiwgAigCIGotAAA6AAoLCyACIAIoAhQgAigCNCACKAIQcUEBdGovAQAiATYCNEEAIQAgASACKAIYSwR/IAIgAigCMEEBayIANgIwIABBAEcFQQALQQFxDQELCwJAIAIoAiAgAigCOCgCdE0EQCACIAIoAiA2AjwMAQsgAiACKAI4KAJ0NgI8CyACKAI8C5IQAQF/IwBBMGsiAiQAIAIgADYCKCACIAE2AiQgAgJ/IAIoAigoAiwgAigCKCgCDEEFa0kEQCACKAIoKAIsDAELIAIoAigoAgxBBWsLNgIgIAJBADYCECACIAIoAigoAgAoAgQ2AgwDQAJAIAJB//8DNgIcIAIgAigCKCgCvC1BKmpBA3U2AhQgAigCKCgCACgCECACKAIUSQ0AIAIgAigCKCgCACgCECACKAIUazYCFCACIAIoAigoAmwgAigCKCgCXGs2AhggAigCHCACKAIYIAIoAigoAgAoAgRqSwRAIAIgAigCGCACKAIoKAIAKAIEajYCHAsgAigCHCACKAIUSwRAIAIgAigCFDYCHAsCQCACKAIcIAIoAiBPDQACQCACKAIcRQRAIAIoAiRBBEcNAQsgAigCJEUNACACKAIcIAIoAhggAigCKCgCACgCBGpGDQELDAELQQAhACACIAIoAiRBBEYEfyACKAIcIAIoAhggAigCKCgCACgCBGpGBUEAC0EBcTYCECACKAIoQQBBACACKAIQEFwgAigCKCgCCCACKAIoKAIUQQRraiACKAIcOgAAIAIoAigoAgggAigCKCgCFEEDa2ogAigCHEEIdjoAACACKAIoKAIIIAIoAigoAhRBAmtqIAIoAhxBf3M6AAAgAigCKCgCCCACKAIoKAIUQQFraiACKAIcQX9zQQh2OgAAIAIoAigoAgAQHCACKAIYBEAgAigCGCACKAIcSwRAIAIgAigCHDYCGAsgAigCKCgCACgCDCACKAIoKAI4IAIoAigoAlxqIAIoAhgQGRogAigCKCgCACIAIAIoAhggACgCDGo2AgwgAigCKCgCACIAIAAoAhAgAigCGGs2AhAgAigCKCgCACIAIAIoAhggACgCFGo2AhQgAigCKCIAIAIoAhggACgCXGo2AlwgAiACKAIcIAIoAhhrNgIcCyACKAIcBEAgAigCKCgCACACKAIoKAIAKAIMIAIoAhwQeBogAigCKCgCACIAIAIoAhwgACgCDGo2AgwgAigCKCgCACIAIAAoAhAgAigCHGs2AhAgAigCKCgCACIAIAIoAhwgACgCFGo2AhQLIAIoAhBFDQELCyACIAIoAgwgAigCKCgCACgCBGs2AgwgAigCDARAAkAgAigCDCACKAIoKAIsTwRAIAIoAihBAjYCsC0gAigCKCgCOCACKAIoKAIAKAIAIAIoAigoAixrIAIoAigoAiwQGRogAigCKCACKAIoKAIsNgJsDAELIAIoAgwgAigCKCgCPCACKAIoKAJsa08EQCACKAIoIgAgACgCbCACKAIoKAIsazYCbCACKAIoKAI4IAIoAigoAjggAigCKCgCLGogAigCKCgCbBAZGiACKAIoKAKwLUECSQRAIAIoAigiACAAKAKwLUEBajYCsC0LCyACKAIoKAI4IAIoAigoAmxqIAIoAigoAgAoAgAgAigCDGsgAigCDBAZGiACKAIoIgAgAigCDCAAKAJsajYCbAsgAigCKCACKAIoKAJsNgJcIAIoAigiAQJ/IAIoAgwgAigCKCgCLCACKAIoKAK0LWtLBEAgAigCKCgCLCACKAIoKAK0LWsMAQsgAigCDAsgASgCtC1qNgK0LQsgAigCKCgCwC0gAigCKCgCbEkEQCACKAIoIAIoAigoAmw2AsAtCwJAIAIoAhAEQCACQQM2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mwFCADcDAEGYmwFCADcDAEGQmwFCADcDAEGImwFCADcDAEGAmwFCADcDAEH4mgFCADcDAEHwmgFCADcDAEHwmgEL1QQBBX8jAEGwAWsiASQAIAEgADYCqAEgASgCqAEQNwJAAkAgASgCqAEoAgBBAE4EQCABKAKoASgCAEGAFCgCAEgNAQsgASABKAKoASgCADYCECABQSBqQY8SIAFBEGoQcCABQQA2AqQBIAEgAUEgajYCoAEMAQsgASABKAKoASgCAEECdEGAE2ooAgA2AqQBAkACQAJAAkAgASgCqAEoAgBBAnRBkBRqKAIAQQFrDgIAAQILIAEoAqgBKAIEIQJBkJkBKAIAIQRBACEAAkACQANAIAIgAEGgiAFqLQAARwRAQdcAIQMgAEEBaiIAQdcARw0BDAILCyAAIgMNAEGAiQEhAgwBC0GAiQEhAANAIAAtAAAhBSAAQQFqIgIhACAFDQAgAiEAIANBAWsiAw0ACwsgBCgCFBogASACNgKgAQwCCyMAQRBrIgAgASgCqAEoAgQ2AgwgAUEAIAAoAgxrQQJ0QajZAGooAgA2AqABDAELIAFBADYCoAELCwJAIAEoAqABRQRAIAEgASgCpAE2AqwBDAELIAEgASgCoAEQKwJ/IAEoAqQBBEAgASgCpAEQK0ECagwBC0EAC2pBAWoQGCIANgIcIABFBEAgAUG4EygCADYCrAEMAQsgASgCHCEAAn8gASgCpAEEQCABKAKkAQwBC0H6EgshA0HfEkH6EiABKAKkARshAiABIAEoAqABNgIIIAEgAjYCBCABIAM2AgAgAEG+CiABEHAgASgCqAEgASgCHDYCCCABIAEoAhw2AqwBCyABKAKsASEAIAFBsAFqJAAgAAszAQF/IAAoAhQiAyABIAIgACgCECADayIBIAEgAksbIgEQGRogACAAKAIUIAFqNgIUIAILjwUCBn4BfyABIAEoAgBBD2pBcHEiAUEQajYCACAAAnwgASkDACEDIAEpAwghBiMAQSBrIggkAAJAIAZC////////////AIMiBEKAgICAgIDAgDx9IARCgICAgICAwP/DAH1UBEAgBkIEhiADQjyIhCEEIANC//////////8PgyIDQoGAgICAgICACFoEQCAEQoGAgICAgICAwAB8IQIMAgsgBEKAgICAgICAgEB9IQIgA0KAgICAgICAgAiFQgBSDQEgAiAEQgGDfCECDAELIANQIARCgICAgICAwP//AFQgBEKAgICAgIDA//8AURtFBEAgBkIEhiADQjyIhEL/////////A4NCgICAgICAgPz/AIQhAgwBC0KAgICAgICA+P8AIQIgBEL///////+//8MAVg0AQgAhAiAEQjCIpyIAQZH3AEkNACADIQIgBkL///////8/g0KAgICAgIDAAIQiBSEHAkAgAEGB9wBrIgFBwABxBEAgAiABQUBqrYYhB0IAIQIMAQsgAUUNACAHIAGtIgSGIAJBwAAgAWutiIQhByACIASGIQILIAggAjcDECAIIAc3AxgCQEGB+AAgAGsiAEHAAHEEQCAFIABBQGqtiCEDQgAhBQwBCyAARQ0AIAVBwAAgAGuthiADIACtIgKIhCEDIAUgAoghBQsgCCADNwMAIAggBTcDCCAIKQMIQgSGIAgpAwAiA0I8iIQhAiAIKQMQIAgpAxiEQgBSrSADQv//////////D4OEIgNCgYCAgICAgIAIWgRAIAJCAXwhAgwBCyADQoCAgICAgICACIVCAFINACACQgGDIAJ8IQILIAhBIGokACACIAZCgICAgICAgICAf4OEvws5AwALrRcDEn8CfgF8IwBBsARrIgkkACAJQQA2AiwCQCABvSIYQn9XBEBBASESQa4IIRMgAZoiAb0hGAwBCyAEQYAQcQRAQQEhEkGxCCETDAELQbQIQa8IIARBAXEiEhshEyASRSEXCwJAIBhCgICAgICAgPj/AINCgICAgICAgPj/AFEEQCAAQSAgAiASQQNqIg0gBEH//3txECYgACATIBIQIiAAQeQLQbUSIAVBIHEiAxtBjw1BuRIgAxsgASABYhtBAxAiDAELIAlBEGohEAJAAn8CQCABIAlBLGoQqQEiASABoCIBRAAAAAAAAAAAYgRAIAkgCSgCLCIGQQFrNgIsIAVBIHIiFEHhAEcNAQwDCyAFQSByIhRB4QBGDQIgCSgCLCELQQYgAyADQQBIGwwBCyAJIAZBHWsiCzYCLCABRAAAAAAAALBBoiEBQQYgAyADQQBIGwshCiAJQTBqIAlB0AJqIAtBAEgbIg4hBwNAIAcCfyABRAAAAAAAAPBBYyABRAAAAAAAAAAAZnEEQCABqwwBC0EACyIDNgIAIAdBBGohByABIAO4oUQA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HCECIAEgASgCGCIDQQFqNgIYQQAgAy0AASACRw0AGiABKAIcIQIgASABKAIYIgNBAWo2AhhBACADLQABIAJHDQAaIAEoAhwhAiABIAEoAhgiA0EBajYCGEEAIAMtAAEgAkcNABogASgCHCECIAEgASgCGCIDQQFqNgIYQQAgAy0AASACRw0AGiABKAIcIQIgASABKAIYIgNBAWo2AhhBACADLQABIAJHDQAaIAEoAhwhAiABIAEoAhgiA0EBajYCGEEAIAMtAAEgAkcNABogASgCGCABKAIUSQtBAXENAAsgASgCKEGCAiABKAIUIAEoAhhrazYCYCABKAIoKAJgIAEoAigoAnRLBEAgASgCKCABKAIoKAJ0NgJgCwsLAkAgASgCKCgCYEEDTwRAIAEgASgCKCgCYEEDazoAEyABQQE7ARAgASgCKCICKAKkLSACKAKgLUEBdGogAS8BEDsBACABLQATIQMgASgCKCICKAKYLSEEIAIgAigCoC0iAkEBajYCoC0gAiAEaiADOgAAIAEgAS8BEEEBazsBECABKAIoIAEtABNB0N0Aai0AAEECdGpBmAlqIgIgAi8BAEEBajsBACABKAIoQYgTagJ/IAEvARBBgAJJBEAgAS8BEC0A0FkMAQsgAS8BEEEHdkGAAmotANBZC0ECdGoiAiACLwEAQQFqOwEAIAEgASgCKCgCoC0gASgCKCgCnC1BAWtGNgIgIAEoAigiAiACKAJ0IAEoAigoAmBrNgJ0IAEoAigiAiABKAIoKAJgIAIoAmxqNgJsIAEoAihBADYCYAwBCyABIAEoAigiAigCOCACKAJsai0AADoADyABKAIoIgIoAqQtIAIoAqAtQQF0akEAOwEAIAEtAA8hAyABKAIoIgIoApgtIQQgAiACKAKgLSICQQFqNgKgLSACIARqIAM6AAAgASgCKCABLQAPQQJ0aiICIAIvAZQBQQFqOwGUASABIAEoAigoAqAtIAEoAigoApwtQQFrRjYCICABKAIoIgIgAigCdEEBazYCdCABKAIoIgIgAigCbEEBajYCbAsgASgCIARAIAEoAigCfyABKAIoKAJcQQBOBEAgASgCKCgCOCABKAIoKAJcagwBC0EACyABKAIoKAJsIAEoAigoAlxrQQAQKCABKAIoIAEoAigoAmw2AlwgASgCKCgCABAcIAEoAigoAgAoAhBFBEAgAUEANgIsDAQLCwwBCwsgASgCKEEANgK0LSABKAIkQQRGBEAgASgCKAJ/IAEoAigoAlxBAE4EQCABKAIoKAI4IAEoAigoAlxqDAELQQALIAEoAigoAmwgASgCKCgCXGtBARAoIAEoAiggASgCKCgCbDYCXCABKAIoKAIAEBwgASgCKCgCACgCEEUEQCABQQI2AiwMAgsgAUEDNgIsDAELIAEoAigoAqAtBEAgASgCKAJ/IAEoAigoAlxBAE4EQCABKAIoKAI4IAEoAigoAlxqDAELQQALIAEoAigoAmwgASgCKCgCXGtBABAoIAEoAiggASgCKCgCbDYCXCABKAIoKAIAEBwgASgCKCgCACgCEEUEQCABQQA2AiwMAgsLIAFBATYCLAsgASgCLCECIAFBMGokACACDAELIAAoAiwgACgCNCAAKAIsKAKEAUEMbEGA7wBqKAIIEQMACwsLNgIEAkAgACgCBEECRwRAIAAoAgRBA0cNAQsgACgCLEGaBTYCBAsCQCAAKAIEBEAgACgCBEECRw0BCyAAKAI4KAIQRQRAIAAoAixBfzYCKAsgAEEANgI8DAILIAAoAgRBAUYEQAJAIAAoAjRBAUYEQCAAKAIsIQIjAEEgayIBJAAgASACNgIcIAFBAzYCGAJAIAEoAhwoArwtQRAgASgCGGtKBEAgAUECNgIUIAEoAhwiAiACLwG4LSABKAIUQf//A3EgASgCHCgCvC10cjsBuC0gASgCHC8BuC1B/wFxIQMgASgCHCgCCCEEIAEoAhwiBigCFCECIAYgAkEBajYCFCACIARqIAM6AAAgASgCHC8BuC1BCHYhAyABKAIcKAIIIQQgASgCHCIGKAIUIQIgBiACQQFqNgIUIAIgBGogAzoAACABKAIcIAEoAhRB//8DcUEQIAEoAhwoArwta3U7AbgtIAEoAhwiAiACKAK8LSABKAIYQRBrajYCvC0MAQsgASgCHCICIAIvAbgtQQIgASgCHCgCvC10cjsBuC0gASgCHCICIAEoAhggAigCvC1qNgK8LQsgAUGS6AAvAQA2AhACQCABKAIcKAK8LUEQIAEoAhBrSgRAIAFBkOgALwEANgIMIAEoAhwiAiACLwG4LSABKAIMQf//A3EgASgCHCgCvC10cjsBuC0gASgCHC8BuC1B/wFxIQMgASgCHCgCCCEEIAEoAhwiBigCFCECIAYgAkEBajYCFCACIARqIAM6AAAgASgCHC8BuC1BCHYhAyABKAIcKAIIIQQgASgCHCIGKAIUIQIgBiACQQFqNgIUIAIgBGogAzoAACABKAIcIAEoAgxB//8DcUEQIAEoAhwoArwta3U7AbgtIAEoAhwiAiACKAK8LSABKAIQQRBrajYCvC0MAQsgASgCHCICIAIvAbgtQZDoAC8BACABKAIcKAK8LXRyOwG4LSABKAIcIgIgASgCECACKAK8LWo2ArwtCyABKAIcELsBIAFBIGokAAwBCyAAKAI0QQVHBEAgACgCLEEAQQBBABBcIAAoAjRBA0YEQCAAKAIsKAJEIAAoAiwoAkxBAWtBAXRqQQA7AQAgACgCLCgCREEAIAAoAiwoAkxBAWtBAXQQMiAAKAIsKAJ0RQRAIAAoAixBADYCbCAAKAIsQQA2AlwgACgCLEEANgK0LQsLCwsgACgCOBAcIAAoAjgoAhBFBEAgACgCLEF/NgIoIABBADYCPAwDCwsLIAAoAjRBBEcEQCAAQQA2AjwMAQsgACgCLCgCGEEATARAIABBATYCPAwBCwJAIAAoAiwoAhhBAkYEQCAAKAI4KAIwQf8BcSECIAAoAiwoAgghAyAAKAIsIgQoAhQhASAEIAFBAWo2AhQgASADaiACOgAAIAAoAjgoAjBBCHZB/wFxIQIgACgCLCgCCCEDIAAoAiwiBCgCFCEBIAQgAUEBajYCFCABIANqIAI6AAAgACgCOCgCMEEQdkH/AXEhAiAAKAIsKAIIIQMgACgCLCIEKAIUIQEgBCABQQFqNgIUIAEgA2ogAjoAACAAKAI4KAIwQRh2IQIgACgCLCgCCCEDIAAoAiwiBCgCFCEBIAQgAUEBajYCFCABIANqIAI6AAAgACgCOCgCCEH/AXEhAiAAKAIsKAIIIQMgACgCLCIEKAIUIQEgBCABQQFqNgIUIAEgA2ogAjoAACAAKAI4KAIIQQh2Qf8BcSECIAAoAiwoAgghAyAAKAIsIgQoAhQhASAEIAFBAWo2AhQgASADaiACOgAAIAAoAjgoAghBEHZB/wFxIQIgACgCLCgCCCEDIAAoAiwiBCgCFCEBIAQgAUEBajYCFCABIANqIAI6AAAgACgCOCgCCEEYdiECIAAoAiwoAgghAyAAKAIsIgQoAhQhASAEIAFBAWo2AhQgASADaiACOgAADAELIAAoAiwgACgCOCgCMEEQdhBMIAAoAiwgACgCOCgCMEH//wNxEEwLIAAoAjgQHCAAKAIsKAIYQQBKBEAgACgCLEEAIAAoAiwoAhhrNgIYCyAAIAAoAiwoAhRFNgI8CyAAKAI8IQEgAEFAayQAIAUgATYCCAwBCyAFKAIMQRBqIQEjAEHgAGsiACQAIAAgATYCWCAAQQI2AlQCQAJAAkAgACgCWBBLDQAgACgCWCgCDEUNACAAKAJYKAIADQEgACgCWCgCBEUNAQsgAEF+NgJcDAELIAAgACgCWCgCHDYCUCAAKAJQKAIEQb/+AEYEQCAAKAJQQcD+ADYCBAsgACAAKAJYKAIMNgJIIAAgACgCWCgCEDYCQCAAIAAoAlgoAgA2AkwgACAAKAJYKAIENgJEIAAgACgCUCgCPDYCPCAAIAAoAlAoAkA2AjggACAAKAJENgI0IAAgACgCQDYCMCAAQQA2AhADQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAAKAJQKAIEQbT+AGsOHwABAgMEBQYHCAkKCwwNDg8QERITFBUWFxgZGhscHR4fCyAAKAJQKAIMRQRAIAAoAlBBwP4ANgIEDCELA0AgACgCOEEQSQRAIAAoAkRFDSEgACAAKAJEQQFrNgJEIAAgACgCTCIBQQFqNgJMIAAgACgCPCABLQAAIAAoAjh0ajYCPCAAIAAoAjhBCGo2AjgMAQsLAkAgACgCUCgCDEECcUUNACAAKAI8QZ+WAkcNACAAKAJQKAIoRQRAIAAoAlBBDzYCKAtBAEEAQQAQGiEBIAAoAlAgATYCHCAAIAAoAjw6AAwgACAAKAI8QQh2OgANIAAoAlAoAhwgAEEMakECEBohASAAKAJQIAE2AhwgAEEANgI8IABBADYCOCAAKAJQQbX+ADYCBAwhCyAAKAJQQQA2AhQgACgCUCgCJARAIAAoAlAoAiRBfzYCMAsCQCAAKAJQKAIMQQFxBEAgACgCPEH/AXFBCHQgACgCPEEIdmpBH3BFDQELIAAoAlhBmgw2AhggACgCUEHR/gA2AgQMIQsgACgCPEEPcUEIRwRAIAAoAlhBmw82AhggACgCUEHR/gA2AgQMIQsgACAAKAI8QQR2NgI8IAAgACgCOEEEazYCOCAAIAAoAjxBD3FBCGo2AhQgACgCUCgCKEUEQCAAKAJQIAAoAhQ2AigLAkAgACgCFEEPTQRAIAAoAhQgACgCUCgCKE0NAQsgACgCWEGTDTYCGCAAKAJQQdH+ADYCBAwhCyAAKAJQQQEgACgCFHQ2AhhBAEEAQQAQPiEBIAAoAlAgATYCHCAAKAJYIAE2AjAgACgCUEG9/gBBv/4AIAAoAjxBgARxGzYCBCAAQQA2AjwgAEEANgI4DCALA0AgACgCOEEQSQRAIAAoAkRFDSAgACAAKAJEQQFrNgJEIAAgACgCTCIBQQFqNgJMIAAgACgCPCABLQAAIAAoAjh0ajYCPCAAIAAoAjhBCGo2AjgMAQsLIAAoAlAgACgCPDYCFCAAKAJQKAIUQf8BcUEIRwRAIAAoAlhBmw82AhggACgCUEHR/gA2AgQMIAsgACgCUCgCFEGAwANxBEAgACgCWEGgCTYCGCAAKAJQQdH+ADYCBAwgCyAAKAJQKAIkBEAgACgCUCgCJCAAKAI8QQh2QQFxNgIACwJAIAAoAlAoAhRBgARxRQ0AIAAoAlAoAgxBBHFFDQAgACAAKAI8OgAMIAAgACgCPEEIdjoADSAAKAJQKAIcIABBDGpBAhAaIQEgACgCUCABNgIcCyAAQQA2AjwgAEEANgI4IAAoAlBBtv4ANgIECwNAIAAoAjhBIEkEQCAAKAJERQ0fIAAgACgCREEBazYCRCAAIAAoAkwiAUEBajYCTCAAIAAoAjwgAS0AACAAKAI4dGo2AjwgACAAKAI4QQhqNgI4DAELCyAAKAJQKAIkBEAgACgCUCgCJCAAKAI8NgIECwJAIAAoAlAoAhRBgARxRQ0AIAAoAlAoAgxBBHFFDQAgACAAKAI8OgAMIAAgACgCPEEIdjoADSAAIAAoAjxBEHY6AA4gACAAKAI8QRh2OgAPIAAoAlAoAhwgAEEMakEEEBohASAAKAJQIAE2AhwLIABBADYCPCAAQQA2AjggACgCUEG3/gA2AgQLA0AgACgCOEEQSQRAIAAoAkRFDR4gACAAKAJEQQFrNgJEIAAgACgCTCIBQQFqNgJMIAAgACgCPCABLQAAIAAoAjh0ajYCPCAAIAAoAjhBCGo2AjgMAQsLIAAoAlAoAiQEQCAAKAJQKAIkIAAoAjxB/wFxNgIIIAAoAlAoAiQgACgCPEEIdjYCDAsCQCAAKAJQKAIUQYAEcUUNACAAKAJQKAIMQQRxRQ0AIAAgACgCPDoADCAAIAAoAjxBCHY6AA0gACgCUCgCHCAAQQxqQQIQGiEBIAAoAlAgATYCHAsgAEEANgI8IABBADYCOCAAKAJQQbj+ADYCBAsCQCAAKAJQKAIUQYAIcQRAA0AgACgCOEEQSQRAIAAoAkRFDR8gACAAKAJEQQFrNgJEIAAgACgCTCIBQQFqNgJMIAAgACgCPCABLQAAIAAoAjh0ajYCPCAAIAAoAjhBCGo2AjgMAQsLIAAoAlAgACgCPDYCRCAAKAJQKAIkBEAgACgCUCgCJCAAKAI8NgIUCwJAIAAoAlAoAhRBgARxRQ0AIAAoAlAoAgxBBHFFDQAgACAAKAI8OgAMIAAgACgCPEEIdjoADSAAKAJQKAIcIABBDGpBAhAaIQEgACgCUCABNgIcCyAAQQA2AjwgAEEANgI4DAELIAAoAlAoAiQEQCAAKAJQKAIkQQA2AhALCyAAKAJQQbn+ADYCBAsgACgCUCgCFEGACHEEQCAAIAAoAlAoAkQ2AiwgACgCLCAAKAJESwRAIAAgACgCRDYCLAsgACgCLARAAkAgACgCUCgCJEUNACAAKAJQKAIkKAIQRQ0AIAAgACgCUCgCJCgCFCAAKAJQKAJEazYCFCAAKAJQKAIkKAIQIAAoAhRqIAAoAkwCfyAAKAJQKAIkKAIYIAAoAhQgACgCLGpJBEAgACgCUCgCJCgCGCAAKAIUawwBCyAAKAIsCxAZGgsCQCAAKAJQKAIUQYAEcUUNACAAKAJQKAIMQQRxRQ0AIAAoAlAoAhwgACgCTCAAKAIsEBohASAAKAJQIAE2AhwLIAAgACgCRCAAKAIsazYCRCAAIAAoAiwgACgCTGo2AkwgACgCUCIBIAEoAkQgACgCLGs2AkQLIAAoAlAoAkQNGwsgACgCUEEANgJEIAAoAlBBuv4ANgIECwJAIAAoAlAoAhRBgBBxBEAgACgCREUNGyAAQQA2AiwDQCAAKAJMIQEgACAAKAIsIgJBAWo2AiwgACABIAJqLQAANgIUAkAgACgCUCgCJEUNACAAKAJQKAIkKAIcRQ0AIAAoAlAoAkQgACgCUCgCJCgCIE8NACAAKAIUIQIgACgCUCgCJCgCHCEDIAAoAlAiBCgCRCEBIAQgAUEBajYCRCABIANqIAI6AAALIAAoAhQEfyAAKAIsIAAoAkRJBUEAC0EBcQ0ACwJAIAAoAlAoAhRBgARxRQ0AIAAoAlAoAgxBBHFFDQAgACgCUCgCHCAAKAJMIAAoAiwQGiEBIAAoAlAgATYCHAsgACAAKAJEIAAoAixrNgJEIAAgACgCLCAAKAJMajYCTCAAKAIUDRsMAQsgACgCUCgCJARAIAAoAlAoAiRBADYCHAsLIAAoAlBBADYCRCAAKAJQQbv+ADYCBAsCQCAAKAJQKAIUQYAgcQRAIAAoAkRFDRogAEEANgIsA0AgACgCTCEBIAAgACgCLCICQQFqNgIsIAAgASACai0AADYCFAJAIAAoAlAoAiRFDQAgACgCUCgCJCgCJEUNACAAKAJQKAJEIAAoAlAoAiQoAihPDQAgACgCFCECIAAoAlAoAiQoAiQhAyAAKAJQIgQoAkQhASAEIAFBAWo2AkQgASADaiACOgAACyAAKAIUBH8gACgCLCAAKAJESQVBAAtBAXENAAsCQCAAKAJQKAIUQYAEcUUNACAAKAJQKAIMQQRxRQ0AIAAoAlAoAhwgACgCTCAAKAIsEBohASAAKAJQIAE2AhwLIAAgACgCRCAAKAIsazYCRCAAIAAoAiwgACgCTGo2AkwgACgCFA0aDAELIAAoAlAoAiQEQCAAKAJQKAIkQQA2AiQLCyAAKAJQQbz+ADYCBAsgACgCUCgCFEGABHEEQANAIAAoAjhBEEkEQCAAKAJERQ0aIAAgACgCREEBazYCRCAAIAAoAkwiAUEBajYCTCAAIAAoAjwgAS0AACAAKAI4dGo2AjwgACAAKAI4QQhqNgI4DAELCwJAIAAoAlAoAgxBBHFFDQAgACgCPCAAKAJQKAIcQf//A3FGDQAgACgCWEH7DDYCGCAAKAJQQdH+ADYCBAwaCyAAQQA2AjwgAEEANgI4CyAAKAJQKAIkBEAgACgCUCgCJCAAKAJQKAIUQQl1QQFxNgIsIAAoAlAoAiRBATYCMAtBAEEAQQAQGiEBIAAoAlAgATYCHCAAKAJYIAE2AjAgACgCUEG//gA2AgQMGAsDQCAAKAI4QSBJBEAgACgCREUNGCAAIAAoAkRBAWs2AkQgACAAKAJMIgFBAWo2AkwgACAAKAI8IAEtAAAgACgCOHRqNgI8IAAgACgCOEEIajYCOAwBCwsgACgCUCAAKAI8QQh2QYD+A3EgACgCPEEYdmogACgCPEGA/gNxQQh0aiAAKAI8Qf8BcUEYdGoiATYCHCAAKAJYIAE2AjAgAEEANgI8IABBADYCOCAAKAJQQb7+ADYCBAsgACgCUCgCEEUEQCAAKAJYIAAoAkg2AgwgACgCWCAAKAJANgIQIAAoAlggACgCTDYCACAAKAJYIAAoAkQ2AgQgACgCUCAAKAI8NgI8IAAoAlAgACgCODYCQCAAQQI2AlwMGAtBAEEAQQAQPiEBIAAoAlAgATYCHCAAKAJYIAE2AjAgACgCUEG//gA2AgQLIAAoAlRBBUYNFCAAKAJUQQZGDRQLIAAoAlAoAggEQCAAIAAoAjwgACgCOEEHcXY2AjwgACAAKAI4IAAoAjhBB3FrNgI4IAAoAlBBzv4ANgIEDBULA0AgACgCOEEDSQRAIAAoAkRFDRUgACAAKAJEQQFrNgJEIAAgACgCTCIBQQFqNgJMIAAgACgCPCABLQAAIAAoAjh0ajYCPCAAIAAoAjhBCGo2AjgMAQsLIAAoAlAgACgCPEEBcTYCCCAAIAAoAjxBAXY2AjwgACAAKAI4QQFrNgI4AkACQAJAAkACQCAAKAI8QQNxDgQAAQIDBAsgACgCUEHB/gA2AgQMAwsjAEEQayIBIAAoAlA2AgwgASgCDEGw8gA2AlAgASgCDEEJNgJYIAEoAgxBsIIBNgJUIAEoAgxBBTYCXCAAKAJQQcf+ADYCBCAAKAJUQQZGBEAgACAAKAI8QQJ2NgI8IAAgACgCOEECazYCOAwXCwwCCyAAKAJQQcT+ADYCBAwBCyAAKAJYQfANNgIYIAAoAlBB0f4ANgIECyAAIAAoAjxBAnY2AjwgACAAKAI4QQJrNgI4DBQLIAAgACgCPCAAKAI4QQdxdjYCPCAAIAAoAjggACgCOEEHcWs2AjgDQCAAKAI4QSBJBEAgACgCREUNFCAAIAAoAkRBAWs2AkQgACAAKAJMIgFBAWo2AkwgACAAKAI8IAEtAAAgACgCOHRqNgI8IAAgACgCOEEIajYCOAwBCwsgACgCPEH//wNxIAAoAjxBEHZB//8Dc0cEQCAAKAJYQaEKNgIYIAAoAlBB0f4ANgIEDBQLIAAoAlAgACgCPEH//wNxNgJEIABBADYCPCAAQQA2AjggACgCUEHC/gA2AgQgACgCVEEGRg0SCyAAKAJQQcP+ADYCBAsgACAAKAJQKAJENgIsIAAoAiwEQCAAKAIsIAAoAkRLBEAgACAAKAJENgIsCyAAKAIsIAAoAkBLBEAgACAAKAJANgIsCyAAKAIsRQ0RIAAoAkggACgCTCAAKAIsEBkaIAAgACgCRCAAKAIsazYCRCAAIAAoAiwgACgCTGo2AkwgACAAKAJAIAAoAixrNgJAIAAgACgCLCAAKAJIajYCSCAAKAJQIgEgASgCRCAAKAIsazYCRAwSCyAAKAJQQb/+ADYCBAwRCwNAIAAoAjhBDkkEQCAAKAJERQ0RIAAgACgCREEBazYCRCAAIAAoAkwiAUEBajYCTCAAIAAoAjwgAS0AACAAKAI4dGo2AjwgACAAKAI4QQhqNgI4DAELCyAAKAJQIAAoAjxBH3FBgQJqNgJkIAAgACgCPEEFdjYCPCAAIAAoAjhBBWs2AjggACgCUCAAKAI8QR9xQQFqNgJoIAAgACgCPEEFdjYCPCAAIAAoAjhBBWs2AjggACgCUCAAKAI8QQ9xQQRqNgJgIAAgACgCPEEEdjYCPCAAIAAoAjhBBGs2AjgCQCAAKAJQKAJkQZ4CTQRAIAAoAlAoAmhBHk0NAQsgACgCWEH9CTYCGCAAKAJQQdH+ADYCBAwRCyAAKAJQQQA2AmwgACgCUEHF/gA2AgQLA0AgACgCUCgCbCAAKAJQKAJgSQRAA0AgACgCOEEDSQRAIAAoAkRFDRIgACAAKAJEQQFrNgJEIAAgACgCTCIBQQFqNgJMIAAgACgCPCABLQAAIAAoAjh0ajYCPCAAIAAoAjhBCGo2AjgMAQsLIAAoAjxBB3EhAiAAKAJQQfQAaiEDIAAoAlAiBCgCbCEBIAQgAUEBajYCbCABQQF0QYDyAGovAQBBAXQgA2ogAjsBACAAIAAoAjxBA3Y2AjwgACAAKAI4QQNrNgI4DAELCwNAIAAoAlAoAmxBE0kEQCAAKAJQQfQAaiECIAAoAlAiAygCbCEBIAMgAUEBajYCbCABQQF0QYDyAGovAQBBAXQgAmpBADsBAAwBCwsgACgCUCAAKAJQQbQKajYCcCAAKAJQIAAoAlAoAnA2AlAgACgCUEEHNgJYIABBACAAKAJQQfQAakETIAAoAlBB8ABqIAAoAlBB2ABqIAAoAlBB9AVqEHc2AhAgACgCEARAIAAoAlhBhwk2AhggACgCUEHR/gA2AgQMEAsgACgCUEEANgJsIAAoAlBBxv4ANgIECwNAAkAgACgCUCgCbCAAKAJQKAJkIAAoAlAoAmhqTw0AA0ACQCAAIAAoAlAoAlAgACgCPEEBIAAoAlAoAlh0QQFrcUECdGooAQA2ASAgAC0AISAAKAI4TQ0AIAAoAkRFDREgACAAKAJEQQFrNgJEIAAgACgCTCIBQQFqNgJMIAAgACgCPCABLQAAIAAoAjh0ajYCPCAAIAAoAjhBCGo2AjgMAQsLAkAgAC8BIkEQSQRAIAAgACgCPCAALQAhdjYCPCAAIAAoAjggAC0AIWs2AjggAC8BIiECIAAoAlBB9ABqIQMgACgCUCIEKAJsIQEgBCABQQFqNgJsIAFBAXQgA2ogAjsBAAwBCwJAIAAvASJBEEYEQANAIAAoAjggAC0AIUECakkEQCAAKAJERQ0UIAAgACgCREEBazYCRCAAIAAoAkwiAUEBajYCTCAAIAAoAjwgAS0AACAAKAI4dGo2AjwgACAAKAI4QQhqNgI4DAELCyAAIAAoAjwgAC0AIXY2AjwgACAAKAI4IAAtACFrNgI4IAAoAlAoAmxFBEAgACgCWEHPCTYCGCAAKAJQQdH+ADYCBAwECyAAIAAoAlAgACgCUCgCbEEBdGovAXI2AhQgACAAKAI8QQNxQQNqNgIsIAAgACgCPEECdjYCPCAAIAAoAjhBAms2AjgMAQsCQCAALwEiQRFGBEADQCAAKAI4IAAtACFBA2pJBEAgACgCREUNFSAAIAAoAkRBAWs2AkQgACAAKAJMIgFBAWo2AkwgACAAKAI8IAEtAAAgACgCOHRqNgI8IAAgACgCOEEIajYCOAwBCwsgACAAKAI8IAAtACF2NgI8IAAgACgCOCAALQAhazYCOCAAQQA2AhQgACAAKAI8QQdxQQNqNgIsIAAgACgCPEEDdjYCPCAAIAAoAjhBA2s2AjgMAQsDQCAAKAI4IAAtACFBB2pJBEAgACgCREUNFCAAIAAoAkRBAWs2AkQgACAAKAJMIgFBAWo2AkwgACAAKAI8IAEtAAAgACgCOHRqNgI8IAAgACgCOEEIajYCOAwBCwsgACAAKAI8IAAtACF2NgI8IAAgACgCOCAALQAhazYCOCAAQQA2AhQgACAAKAI8Qf8AcUELajYCLCAAIAAoAjxBB3Y2AjwgACAAKAI4QQdrNgI4CwsgACgCUCgCbCAAKAIsaiAAKAJQKAJkIAAoAlAoAmhqSwRAIAAoAlhBzwk2AhggACgCUEHR/gA2AgQMAgsDQCAAIAAoAiwiAUEBazYCLCABBEAgACgCFCECIAAoAlBB9ABqIQMgACgCUCIEKAJsIQEgBCABQQFqNgJsIAFBAXQgA2ogAjsBAAwBCwsLDAELCyAAKAJQKAIEQdH+AEYNDiAAKAJQLwH0BEUEQCAAKAJYQfULNgIYIAAoAlBB0f4ANgIEDA8LIAAoAlAgACgCUEG0Cmo2AnAgACgCUCAAKAJQKAJwNgJQIAAoAlBBCTYCWCAAQQEgACgCUEH0AGogACgCUCgCZCAAKAJQQfAAaiAAKAJQQdgAaiAAKAJQQfQFahB3NgIQIAAoAhAEQCAAKAJYQesINgIYIAAoAlBB0f4ANgIEDA8LIAAoAlAgACgCUCgCcDYCVCAAKAJQQQY2AlwgAEECIAAoAlBB9ABqIAAoAlAoAmRBAXRqIAAoAlAoAmggACgCUEHwAGogACgCUEHcAGogACgCUEH0BWoQdzYCECAAKAIQBEAgACgCWEG5CTYCGCAAKAJQQdH+ADYCBAwPCyAAKAJQQcf+ADYCBCAAKAJUQQZGDQ0LIAAoAlBByP4ANgIECwJAIAAoAkRBBkkNACAAKAJAQYICSQ0AIAAoAlggACgCSDYCDCAAKAJYIAAoAkA2AhAgACgCWCAAKAJMNgIAIAAoAlggACgCRDYCBCAAKAJQIAAoAjw2AjwgACgCUCAAKAI4NgJAIAAoAjAhAiMAQeAAayIBIAAoAlg2AlwgASACNgJYIAEgASgCXCgCHDYCVCABIAEoAlwoAgA2AlAgASABKAJQIAEoAlwoAgRBBWtqNgJMIAEgASgCXCgCDDYCSCABIAEoAkggASgCWCABKAJcKAIQa2s2AkQgASABKAJIIAEoAlwoAhBBgQJrajYCQCABIAEoAlQoAiw2AjwgASABKAJUKAIwNgI4IAEgASgCVCgCNDYCNCABIAEoAlQoAjg2AjAgASABKAJUKAI8NgIsIAEgASgCVCgCQDYCKCABIAEoAlQoAlA2AiQgASABKAJUKAJUNgIgIAFBASABKAJUKAJYdEEBazYCHCABQQEgASgCVCgCXHRBAWs2AhgDQCABKAIoQQ9JBEAgASABKAJQIgJBAWo2AlAgASABKAIsIAItAAAgASgCKHRqNgIsIAEgASgCKEEIajYCKCABIAEoAlAiAkEBajYCUCABIAEoAiwgAi0AACABKAIodGo2AiwgASABKAIoQQhqNgIoCyABIAEoAiQgASgCLCABKAIccUECdGooAQA2ARACQAJAA0AgASABLQARNgIMIAEgASgCLCABKAIMdjYCLCABIAEoAiggASgCDGs2AiggASABLQAQNgIMIAEoAgxFBEAgAS8BEiECIAEgASgCSCIDQQFqNgJIIAMgAjoAAAwCCyABKAIMQRBxBEAgASABLwESNgIIIAEgASgCDEEPcTYCDCABKAIMBEAgASgCKCABKAIMSQRAIAEgASgCUCICQQFqNgJQIAEgASgCLCACLQAAIAEoAih0ajYCLCABIAEoAihBCGo2AigLIAEgASgCCCABKAIsQQEgASgCDHRBAWtxajYCCCABIAEoAiwgASgCDHY2AiwgASABKAIoIAEoAgxrNgIoCyABKAIoQQ9JBEAgASABKAJQIgJBAWo2AlAgASABKAIsIAItAAAgASgCKHRqNgIsIAEgASgCKEEIajYCKCABIAEoAlAiAkEBajYCUCABIAEoAiwgAi0AACABKAIodGo2AiwgASABKAIoQQhqNgIoCyABIAEoAiAgASgCLCABKAIYcUECdGooAQA2ARACQANAIAEgAS0AETYCDCABIAEoAiwgASgCDHY2AiwgASABKAIoIAEoAgxrNgIoIAEgAS0AEDYCDCABKAIMQRBxBEAgASABLwESNgIEIAEgASgCDEEPcTYCDCABKAIoIAEoAgxJBEAgASABKAJQIgJBAWo2AlAgASABKAIsIAItAAAgASgCKHRqNgIsIAEgASgCKEEIajYCKCABKAIoIAEoAgxJBEAgASABKAJQIgJBAWo2AlAgASABKAIsIAItAAAgASgCKHRqNgIsIAEgASgCKEEIajYCKAsLIAEgASgCBCABKAIsQQEgASgCDHRBAWtxajYCBCABIAEoAiwgASgCDHY2AiwgASABKAIoIAEoAgxrNgIoIAEgASgCSCABKAJEazYCDAJAIAEoAgQgASgCDEsEQCABIAEoAgQgASgCDGs2AgwgASgCDCABKAI4SwRAIAEoAlQoAsQ3BEAgASgCXEHdDDYCGCABKAJUQdH+ADYCBAwKCwsgASABKAIwNgIAAkAgASgCNEUEQCABIAEoAgAgASgCPCABKAIMa2o2AgAgASgCDCABKAIISQRAIAEgASgCCCABKAIMazYCCANAIAEgASgCACICQQFqNgIAIAItAAAhAiABIAEoAkgiA0EBajYCSCADIAI6AAAgASABKAIMQQFrIgI2AgwgAg0ACyABIAEoAkggASgCBGs2AgALDAELAkAgASgCNCABKAIMSQRAIAEgASgCACABKAI8IAEoAjRqIAEoAgxrajYCACABIAEoAgwgASgCNGs2AgwgASgCDCABKAIISQRAIAEgASgCCCABKAIMazYCCANAIAEgASgCACICQQFqNgIAIAItAAAhAiABIAEoAkgiA0EBajYCSCADIAI6AAAgASABKAIMQQFrIgI2AgwgAg0ACyABIAEoAjA2AgAgASgCNCABKAIISQRAIAEgASgCNDYCDCABIAEoAgggASgCDGs2AggDQCABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAAIAEgASgCDEEBayICNgIMIAINAAsgASABKAJIIAEoAgRrNgIACwsMAQsgASABKAIAIAEoAjQgASgCDGtqNgIAIAEoAgwgASgCCEkEQCABIAEoAgggASgCDGs2AggDQCABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAAIAEgASgCDEEBayICNgIMIAINAAsgASABKAJIIAEoAgRrNgIACwsLA0AgASgCCEECSwRAIAEgASgCACICQQFqNgIAIAItAAAhAiABIAEoAkgiA0EBajYCSCADIAI6AAAgASABKAIAIgJBAWo2AgAgAi0AACECIAEgASgCSCIDQQFqNgJIIAMgAjoAACABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAAIAEgASgCCEEDazYCCAwBCwsMAQsgASABKAJIIAEoAgRrNgIAA0AgASABKAIAIgJBAWo2AgAgAi0AACECIAEgASgCSCIDQQFqNgJIIAMgAjoAACABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAAIAEgASgCACICQQFqNgIAIAItAAAhAiABIAEoAkgi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ZWFkIGVycm9yAFpsaWIgZXJyb3IAZGF0YSBlcnJvcgBDUkMgZXJyb3IAaW5jb21wYXRpYmxlIHZlcnNpb24AbmFuAC9kZXYvdXJhbmRvbQBpbnZhbGlkIGNvZGUgLS0gbWlzc2luZyBlbmQtb2YtYmxvY2sAaW5jb3JyZWN0IGhlYWRlciBjaGVjawBpbmNvcnJlY3QgbGVuZ3RoIGNoZWNrAGluY29ycmVjdCBkYXRhIGNoZWNrAGludmFsaWQgZGlzdGFuY2UgdG9vIGZhciBiYWNrAGhlYWRlciBjcmMgbWlzbWF0Y2gAaW5mAGludmFsaWQgd2luZG93IHNpemUAUmVhZC1vbmx5IGFyY2hpdmUATm90IGEgemlwIGFyY2hpdmUAUmVzb3VyY2Ugc3RpbGwgaW4gdXNlAE1hbGxvYyBmYWlsdXJlAGludmFsaWQgYmxvY2sgdHlwZQBGYWlsdXJlIHRvIGNyZWF0ZSB0ZW1wb3JhcnkgZmlsZQBDYW4ndCBvcGVuIGZpbGUATm8gc3VjaCBmaWxlAFByZW1hdHVyZSBlbmQgb2YgZmlsZQBDYW4ndCByZW1vdmUgZmlsZQBpbnZhbGlkIGxpdGVyYWwvbGVuZ3RoIGNvZGUAaW52YWxpZCBkaXN0YW5jZSBjb2RlAHVua25vd24gY29tcHJlc3Npb24gbWV0aG9kAHN0cmVhbSBlbmQAQ29tcHJlc3NlZCBkYXRhIGludmFsaWQATXVsdGktZGlzayB6aXAgYXJjaGl2ZXMgbm90IHN1cHBvcnRlZABPcGVyYXRpb24gbm90IHN1cHBvcnRlZABFbmNyeXB0aW9uIG1ldGhvZCBub3Qgc3VwcG9ydGVkAENvbXByZXNzaW9uIG1ldGhvZCBub3Qgc3VwcG9ydGVkAEVudHJ5IGhhcyBiZWVuIGRlbGV0ZWQAQ29udGFpbmluZyB6aXAgYXJjaGl2ZSB3YXMgY2xvc2VkAENsb3NpbmcgemlwIGFyY2hpdmUgZmFpbGVkAFJlbmFtaW5nIHRlbXBvcmFyeSBmaWxlIGZhaWxlZABFbnRyeSBoYXMgYmVlbiBjaGFuZ2VkAE5vIHBhc3N3b3JkIHByb3ZpZGVkAFdyb25nIHBhc3N3b3JkIHByb3ZpZGVkAFVua25vd24gZXJyb3IgJWQAcmIAcitiAHJ3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CADcAAgAPAAIALwACAB8AAgA/AAIAAIACACCAAgAQgAIAMIACAAiAAgAogAIAGIACADiAAgAEgAIAJIACABSAAgA0gAIADIACACyAAgAcgAIAPIACAAKAAgAigAIAEoACADKAAgAKgAIAKoACABqAAgA6gAIABoACACaAAgAWgAIANoACAA6AAgAugAIAHoACAD6AAgABgAIAIYACABGAAgAxgAIACYACACmAAgAZgAIAOYACAAWAAgAlgAIAFYACADWAAgANgAIALYACAB2AAgA9gAIAA4ACACOAAgATgAIAM4ACAAuAAgArgAIAG4ACADuAAgAHgAIAJ4ACABeAAgA3gAIAD4ACAC+AAgAfgAIAP4ACAABAAgAgQAIAEEACADBAAgAIQAIAKEACABhAAgA4QAIABEACACRAAgAUQAIANEACAAxAAgAsQAIAHEACADxAAgACQAIAIkACABJAAgAyQAIACkACACpAAgAaQAIAOkACAAZAAgAmQAIAFkACADZAAgAOQAIALkACAB5AAgA+QAIAAUACACFAAgARQAIAMUACAAlAAgApQAIAGUACADlAAgAFQAIAJUACABVAAgA1QAIADUACAC1AAgAdQAIAPUACAANAAgAjQAIAE0ACADNAAgALQAIAK0ACABtAAgA7QAIAB0ACACdAAgAXQAIAN0ACAA9AAgAvQAIAH0ACAD9AAgAEwAJABMBCQCTAAkAkwEJAFMACQBTAQkA0wAJANMBCQAzAAkAMwEJALMACQCzAQkAcwAJAHMBCQDzAAkA8wEJAAsACQALAQkAiwAJAIsBCQBLAAkASwEJAMsACQDLAQkAKwAJACsBCQCrAAkAqwEJAGsACQBrAQkA6wAJAOsBCQAbAAkAGwEJAJsACQCbAQkAWwAJAFsBCQDbAAkA2wEJADsACQA7AQkAuwAJALsBCQB7AAkAewEJAPsACQD7AQkABwAJAAcBCQCHAAkAhwEJAEcACQBHAQkAxwAJAMcBCQAnAAkAJwEJAKcACQCnAQkAZwAJAGcBCQDnAAkA5wEJABcACQAXAQkAlwAJAJcBCQBXAAkAVwEJANcACQDXAQkANwAJADcBCQC3AAkAtwEJAHcACQB3AQkA9wAJAPcBCQAPAAkADwEJAI8ACQCPAQkATwAJAE8BCQDPAAkAzwEJAC8ACQAvAQkArwAJAK8BCQBvAAkAbwEJAO8ACQDvAQkAHwAJAB8BCQCfAAkAnwEJAF8ACQBfAQkA3wAJAN8BCQA/AAkAPwEJAL8ACQC/AQkAfwAJAH8BCQD/AAkA/wEJAAAABwBAAAcAIAAHAGAABwAQAAcAUAAHADAABwBwAAcACAAHAEgABwAoAAcAaAAHABgABwBYAAcAOAAHAHgABwAEAAcARAAHACQABwBkAAcAFAAHAFQABwA0AAcAdAAHAAMACACDAAgAQwAIAMMACAAjAAgAowAIAGMACADjAAgAAAAFABAABQAIAAUAGAAFAAQABQAUAAUADAAFABwABQACAAUAEgAFAAoABQAaAAUABgAFABYABQAOAAUAHgAFAAEABQARAAUACQAFABkABQAFAAUAFQAFAA0ABQAdAAUAAwAFABMABQALAAUAGwAFAAcABQAXAAUAQbDqAAtNAQAAAAEAAAABAAAAAQAAAAIAAAACAAAAAgAAAAIAAAADAAAAAwAAAAMAAAADAAAABAAAAAQAAAAEAAAABAAAAAUAAAAFAAAABQAAAAUAQaDrAAtlAQAAAAEAAAACAAAAAgAAAAMAAAADAAAABAAAAAQAAAAFAAAABQAAAAYAAAAGAAAABwAAAAcAAAAIAAAACAAAAAkAAAAJAAAACgAAAAoAAAALAAAACwAAAAwAAAAMAAAADQAAAA0AQdDsAAsjAgAAAAMAAAAHAAAAAAAAABAREgAIBwkGCgULBAwDDQIOAQ8AQYTtAAtpAQAAAAIAAAADAAAABAAAAAUAAAAGAAAABwAAAAgAAAAKAAAADAAAAA4AAAAQAAAAFAAAABgAAAAcAAAAIAAAACgAAAAwAAAAOAAAAEAAAABQAAAAYAAAAHAAAACAAAAAoAAAAMAAAADgAEGE7gALegEAAAACAAAAAwAAAAQAAAAGAAAACAAAAAwAAAAQAAAAGAAAACAAAAAwAAAAQAAAAGAAAACAAAAAwAAAAAABAACAAQAAAAIAAAADAAAABAAAAAYAAAAIAAAADAAAABAAAAAYAAAAIAAAADAAAABAAAAAYAAAMS4yLjExAEGI7wALbQcAAAAEAAQACAAEAAgAAAAEAAUAEAAIAAgAAAAEAAYAIAAgAAgAAAAEAAQAEAAQAAkAAAAIABAAIAAgAAkAAAAIABAAgACAAAkAAAAIACAAgAAAAQkAAAAgAIAAAgEABAkAAAAgAAIBAgEAEAkAQYDwAAulAgMABAAFAAYABwAIAAkACgALAA0ADwARABMAFwAbAB8AIwArADMAOwBDAFMAYwBzAIMAowDDAOMAAgEAAAAAAAAQABAAEAAQABAAEAAQABAAEQARABEAEQASABIAEgASABMAEwATABMAFAAUABQAFAAVABUAFQAVABAATQDKAAAAAQACAAMABAAFAAcACQANABEAGQAhADEAQQBhAIEAwQABAYEBAQIBAwEEAQYBCAEMARABGAEgATABQAFgAAAAABAAEAAQABAAEQARABIAEgATABMAFAAUABUAFQAWABYAFwAXABgAGAAZABkAGgAaABsAGwAcABwAHQAdAEAAQAAQABEAEgAAAAgABwAJAAYACgAFAAsABAAMAAMADQACAA4AAQAPAEGw8gALwRFgBwAAAAhQAAAIEAAUCHMAEgcfAAAIcAAACDAAAAnAABAHCgAACGAAAAggAAAJoAAACAAAAAiAAAAIQAAACeAAEAcGAAAIWAAACBgAAAmQABMHOwAACHgAAAg4AAAJ0AARBxEAAAhoAAAIKAAACbAAAAgIAAAIiAAACEgAAAnwABAHBAAACFQAAAgUABUI4wATBysAAAh0AAAINAAACcgAEQcNAAAIZAAACCQAAAmoAAAIBAAACIQAAAhEAAAJ6AAQBwgAAAhcAAAIHAAACZgAFAdTAAAIfAAACDwAAAnYABIHFwAACGwAAAgsAAAJuAAACAwAAAiMAAAITAAACfgAEAcDAAAIUgAACBIAFQijABMHIwAACHIAAAgyAAAJxAARBwsAAAhiAAAIIgAACaQAAAgCAAAIggAACEIAAAnkABAHBwAACFoAAAgaAAAJlAAUB0MAAAh6AAAIOgAACdQAEgcTAAAIagAACCoAAAm0AAAICgAACIoAAAhKAAAJ9AAQBwUAAAhWAAAIFgBACAAAEwczAAAIdgAACDYAAAnMABEHDwAACGYAAAgmAAAJrAAACAYAAAiGAAAIRgAACewAEAcJAAAIXgAACB4AAAmcABQHYwAACH4AAAg+AAAJ3AASBxsAAAhuAAAILgAACbwAAAgOAAAIjgAACE4AAAn8AGAHAAAACFEAAAgRABUIgwASBx8AAAhxAAAIMQAACcIAEAcKAAAIYQAACCEAAAmiAAAIAQAACIEAAAhBAAAJ4gAQBwYAAAhZAAAIGQAACZIAEwc7AAAIeQAACDkAAAnSABEHEQAACGkAAAgpAAAJsgAACAkAAAiJAAAISQAACfIAEAcEAAAIVQAACBUAEAgCARMHKwAACHUAAAg1AAAJygARBw0AAAhlAAAIJQAACaoAAAgFAAAIhQAACEUAAAnqABAHCAAACF0AAAgdAAAJmgAUB1MAAAh9AAAIPQAACdoAEgcXAAAIbQAACC0AAAm6AAAIDQAACI0AAAhNAAAJ+gAQBwMAAAhTAAAIEwAVCMMAEwcjAAAIcwAACDMAAAnGABEHCwAACGMAAAgjAAAJpgAACAMAAAiDAAAIQwAACeYAEAcHAAAIWwAACBsAAAmWABQHQwAACHsAAAg7AAAJ1gASBxMAAAhrAAAIKwAACbYAAAgLAAAIiwAACEsAAAn2ABAHBQAACFcAAAgXAEAIAAATBzMAAAh3AAAINwAACc4AEQcPAAAIZwAACCcAAAmuAAAIBwAACIcAAAhHAAAJ7gAQBwkAAAhfAAAIHwAACZ4AFAdjAAAIfwAACD8AAAneABIHGwAACG8AAAgvAAAJvgAACA8AAAiPAAAITwAACf4AYAcAAAAIUAAACBAAFAhzABIHHwAACHAAAAgwAAAJwQAQBwoAAAhgAAAIIAAACaEAAAgAAAAIgAAACEAAAAnhABAHBgAACFgAAAgYAAAJkQATBzsAAAh4AAAIOAAACdEAEQcRAAAIaAAACCgAAAmxAAAICAAACIgAAAhIAAAJ8QAQBwQAAAhUAAAIFAAVCOMAEwcrAAAIdAAACDQAAAnJABEHDQAACGQAAAgkAAAJqQAACAQAAAiEAAAIRAAACekAEAcIAAAIXAAACBwAAAmZABQHUwAACHwAAAg8AAAJ2QASBxcAAAhsAAAILAAACbkAAAgMAAAIjAAACEwAAAn5ABAHAwAACFIAAAgSABUIowATByMAAAhyAAAIMgAACcUAEQcLAAAIYgAACCIAAAmlAAAIAgAACIIAAAhCAAAJ5QAQBwcAAAhaAAAIGgAACZUAFAdDAAAIegAACDoAAAnVABIHEwAACGoAAAgqAAAJtQAACAoAAAiKAAAISgAACfUAEAcFAAAIVgAACBYAQAgAABMHMwAACHYAAAg2AAAJzQARBw8AAAhmAAAIJgAACa0AAAgGAAAIhgAACEYAAAntABAHCQAACF4AAAgeAAAJnQAUB2MAAAh+AAAIPgAACd0AEgcbAAAIbgAACC4AAAm9AAAIDgAACI4AAAhOAAAJ/QBgBwAAAAhRAAAIEQAVCIMAEgcfAAAIcQAACDEAAAnDABAHCgAACGEAAAghAAAJowAACAEAAAiBAAAIQQAACeMAEAcGAAAIWQAACBkAAAmTABMHOwAACHkAAAg5AAAJ0wARBxEAAAhpAAAIKQAACbMAAAgJAAAIiQAACEkAAAnzABAHBAAACFUAAAgVABAIAgETBysAAAh1AAAINQAACcsAEQcNAAAIZQAACCUAAAmrAAAIBQAACIUAAAhFAAAJ6wAQBwgAAAhdAAAIHQAACZsAFAdTAAAIfQAACD0AAAnbABIHFwAACG0AAAgtAAAJuwAACA0AAAiNAAAITQAACfsAEAcDAAAIUwAACBMAFQjDABMHIwAACHMAAAgzAAAJxwARBwsAAAhjAAAIIwAACacAAAgDAAAIgwAACEMAAAnnABAHBwAACFsAAAgbAAAJlwAUB0MAAAh7AAAIOwAACdcAEgcTAAAIawAACCsAAAm3AAAICwAACIsAAAhLAAAJ9wAQBwUAAAhXAAAIFwBACAAAEwczAAAIdwAACDcAAAnPABEHDwAACGcAAAgnAAAJrwAACAcAAAiHAAAIRwAACe8AEAcJAAAIXwAACB8AAAmfABQHYwAACH8AAAg/AAAJ3wASBxsAAAhvAAAILwAACb8AAAgPAAAIjwAACE8AAAn/ABAFAQAXBQEBEwURABsFARARBQUAGQUBBBUFQQAdBQFAEAUDABgFAQIUBSEAHAUBIBIFCQAaBQEIFgWBAEAFAAAQBQIAFwWBARMFGQAbBQEYEQUHABkFAQYVBWEAHQUBYBAFBAAYBQEDFAUxABwFATASBQ0AGgUBDBYFwQBABQAAEQAKABEREQAAAAAFAAAAAAAACQAAAAALAAAAAAAAAAARAA8KERERAwoHAAEACQsLAAAJBgsAAAsABhEAAAAREREAQYGEAQshCwAAAAAAAAAAEQAKChEREQAKAAACAAkLAAAACQALAAALAEG7hAELAQwAQceEAQsVDAAAAAAMAAAAAAkMAAAAAAAMAAAMAEH1hAELAQ4AQYGFAQsVDQAAAAQNAAAAAAkOAAAAAAAOAAAOAEGvhQELARAAQbuFAQseDwAAAAAPAAAAAAkQAAAAAAAQAAAQAAASAAAAEhISAEHyhQELDhIAAAASEhIAAAAAAAAJAEGjhgELAQsAQa+GAQsVCgAAAAAKAAAAAAkLAAAAAAALAAALAEHdhgELAQwAQemGAQsnDAAAAAAMAAAAAAkMAAAAAAAMAAAMAAAwMTIzNDU2Nzg5QUJDREVGAEG0hwELARkAQduHAQsF//////8AQaCIAQtXGRJEOwI/LEcUPTMwChsGRktFNw9JDo4XA0AdPGkrNh9KLRwBICUpIQgMFRYiLhA4Pgs0MRhkdHV2L0EJfzkRI0MyQomKiwUEJignDSoeNYwHGkiTE5SVAEGAiQELig5JbGxlZ2FsIGJ5dGUgc2VxdWVuY2UARG9tYWluIGVycm9yAFJlc3VsdCBub3QgcmVwcmVzZW50YWJsZQBOb3QgYSB0dHkAUGVybWlzc2lvbiBkZW5pZWQAT3BlcmF0aW9uIG5vdCBwZXJtaXR0ZWQATm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQBObyBzdWNoIHByb2Nlc3MARmlsZSBleGlzdHMAVmFsdWUgdG9vIGxhcmdlIGZvciBkYXRhIHR5cGUATm8gc3BhY2UgbGVmdCBvbiBkZXZpY2UAT3V0IG9mIG1lbW9yeQBSZXNvdXJjZSBidXN5AEludGVycnVwdGVkIHN5c3RlbSBjYWxsAFJlc291cmNlIHRlbXBvcmFyaWx5IHVuYXZhaWxhYmxlAEludmFsaWQgc2VlawBDcm9zcy1kZXZpY2UgbGluawBSZWFkLW9ubHkgZmlsZSBzeXN0ZW0ARGlyZWN0b3J5IG5vdCBlbXB0eQBDb25uZWN0aW9uIHJlc2V0IGJ5IHBlZXIAT3BlcmF0aW9uIHRpbWVkIG91dABDb25uZWN0aW9uIHJlZnVzZWQASG9zdCBpcyBkb3duAEhvc3QgaXMgdW5yZWFjaGFibGUAQWRkcmVzcyBpbiB1c2UAQnJva2VuIHBpcGUASS9PIGVycm9yAE5vIHN1Y2ggZGV2aWNlIG9yIGFkZHJlc3MAQmxvY2sgZGV2aWNlIHJlcXVpcmVkAE5vIHN1Y2ggZGV2aWNlAE5vdCBhIGRpcmVjdG9yeQBJcyBhIGRpcmVjdG9yeQBUZXh0IGZpbGUgYnVzeQBFeGVjIGZvcm1hdCBlcnJvcgBJbnZhbGlkIGFyZ3VtZW50AEFyZ3VtZW50IGxpc3QgdG9vIGxvbmcAU3ltYm9saWMgbGluayBsb29wAEZpbGVuYW1lIHRvbyBsb25nAFRvbyBtYW55IG9wZW4gZmlsZXMgaW4gc3lzdGVtAE5vIGZpbGUgZGVzY3JpcHRvcnMgYXZhaWxhYmxlAEJhZCBmaWxlIGRlc2NyaXB0b3IATm8gY2hpbGQgcHJvY2VzcwBCYWQgYWRkcmVzcwBGaWxlIHRvbyBsYXJnZQBUb28gbWFueSBsaW5rcwBObyBsb2NrcyBhdmFpbGFibGUAUmVzb3VyY2UgZGVhZGxvY2sgd291bGQgb2NjdXIAU3RhdGUgbm90IHJlY292ZXJhYmxlAFByZXZpb3VzIG93bmVyIGRpZWQAT3BlcmF0aW9uIGNhbmNlbGVkAEZ1bmN0aW9uIG5vdCBpbXBsZW1lbnRlZABObyBtZXNzYWdlIG9mIGRlc2lyZWQgdHlwZQBJZGVudGlmaWVyIHJlbW92ZWQARGV2aWNlIG5vdCBhIHN0cmVhbQBObyBkYXRhIGF2YWlsYWJsZQBEZXZpY2UgdGltZW91dABPdXQgb2Ygc3RyZWFtcyByZXNvdXJjZXMATGluayBoYXMgYmVlbiBzZXZlcmVkAFByb3RvY29sIGVycm9yAEJhZCBtZXNzYWdlAEZpbGUgZGVzY3JpcHRvciBpbiBiYWQgc3RhdGUATm90IGEgc29ja2V0AERlc3RpbmF0aW9uIGFkZHJlc3MgcmVxdWlyZWQATWVzc2FnZSB0b28gbGFyZ2UAUHJvdG9jb2wgd3JvbmcgdHlwZSBmb3Igc29ja2V0AFByb3RvY29sIG5vdCBhdmFpbGFibGUAUHJvdG9jb2wgbm90IHN1cHBvcnRlZABTb2NrZXQgdHlwZSBub3Qgc3VwcG9ydGVkAE5vdCBzdXBwb3J0ZWQAUHJvdG9jb2wgZmFtaWx5IG5vdCBzdXBwb3J0ZWQAQWRkcmVzcyBmYW1pbHkgbm90IHN1cHBvcnRlZCBieSBwcm90b2NvbABBZGRyZXNzIG5vdCBhdmFpbGFibGUATmV0d29yayBpcyBkb3duAE5ldHdvcmsgdW5yZWFjaGFibGUAQ29ubmVjdGlvbiByZXNldCBieSBuZXR3b3JrAENvbm5lY3Rpb24gYWJvcnRlZABObyBidWZmZXIgc3BhY2UgYXZhaWxhYmxlAFNvY2tldCBpcyBjb25uZWN0ZWQAU29ja2V0IG5vdCBjb25uZWN0ZWQAQ2Fubm90IHNlbmQgYWZ0ZXIgc29ja2V0IHNodXRkb3duAE9wZXJhdGlvbiBhbHJlYWR5IGluIHByb2dyZXNzAE9wZXJhdGlvbiBpbiBwcm9ncmVzcwBTdGFsZSBmaWxlIGhhbmRsZQBSZW1vdGUgSS9PIGVycm9yAFF1b3RhIGV4Y2VlZGVkAE5vIG1lZGl1bSBmb3VuZABXcm9uZyBtZWRpdW0gdHlwZQBObyBlcnJvciBpbmZvcm1hdGlvbgBBkJcBC1JQUFAACgAAAAsAAAAMAAAADQAAAA4AAAAPAAAAEAAAABEAAAASAAAACwAAAAwAAAANAAAADgAAAA8AAAAQAAAAEQAAAAEAAAAIAAAAlEsAALRLAEGQmQELAgxQAEHImQELCR8AAADkTAAAAwBB5JkBC4wBLfRRWM+MscBG9rXLKTEDxwRbcDC0Xf0geH+LmthZKVBoSImrp1YDbP+3zYg/1He0K6WjcPG65Kj8QYP92W/hinovLXSWBx8NCV4Ddixw90ClLKdvV0GoqnTfoFhkA0rHxDxTrq9fGAQVseNtKIarDKS/Q/DpUIE5VxZSN/////////////////////8=";y4(Rp)||(Rp=dxe(Rp));function Kxe(t){try{if(t==Rp&&lP)return new Uint8Array(lP);var e=s4(t);if(e)return e;if(aP)return aP(t);throw"sync fetching of the wasm failed: you can preload it to Module['wasmBinary'] manually, or emcc.py will do that for you when generating HTML (but not JS)"}catch(r){Gr(r)}}function Uxe(t,e){var r,i,n;try{n=Kxe(t),i=new WebAssembly.Module(n),r=new WebAssembly.Instance(i,e)}catch(o){var s=o.toString();throw Di("failed to compile wasm module: "+s),(s.includes("imported Memory")||s.includes("memory import"))&&Di("Memory size incompatibility issues may be due to changing INITIAL_MEMORY at runtime to something too large. Use ALLOW_MEMORY_GROWTH to allow any size memory (and also make sure not to set INITIAL_MEMORY at runtime to something smaller than it was at compile time)."),o}return[r,i]}function Gxe(){var t={a:Hxe};function e(n,s){var o=n.exports;oe.asm=o,ew=oe.asm.u,p4(ew.buffer),fP=oe.asm.za,Mxe(oe.asm.v),dP("wasm-instantiate")}if(E4("wasm-instantiate"),oe.instantiateWasm)try{var r=oe.instantiateWasm(t,e);return r}catch(n){return Di("Module.instantiateWasm callback failed with error: "+n),!1}var i=Uxe(Rp,t);return e(i[0]),oe.asm}var ai,ya;function hP(t){for(;t.length>0;){var e=t.shift();if(typeof e=="function"){e(oe);continue}var r=e.func;typeof r=="number"?e.arg===void 0?fP.get(r)():fP.get(r)(e.arg):r(e.arg===void 0?null:e.arg)}}function iw(t,e){var r=new Date(_e[t>>2]*1e3);_e[e>>2]=r.getUTCSeconds(),_e[e+4>>2]=r.getUTCMinutes(),_e[e+8>>2]=r.getUTCHours(),_e[e+12>>2]=r.getUTCDate(),_e[e+16>>2]=r.getUTCMonth(),_e[e+20>>2]=r.getUTCFullYear()-1900,_e[e+24>>2]=r.getUTCDay(),_e[e+36>>2]=0,_e[e+32>>2]=0;var i=Date.UTC(r.getUTCFullYear(),0,1,0,0,0,0),n=(r.getTime()-i)/(1e3*60*60*24)|0;return _e[e+28>>2]=n,iw.GMTString||(iw.GMTString=uP("GMT")),_e[e+40>>2]=iw.GMTString,e}function jxe(t,e){return iw(t,e)}var yt={splitPath:function(t){var e=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return e.exec(t).slice(1)},normalizeArray:function(t,e){for(var r=0,i=t.length-1;i>=0;i--){var n=t[i];n==="."?t.splice(i,1):n===".."?(t.splice(i,1),r++):r&&(t.splice(i,1),r--)}if(e)for(;r;r--)t.unshift("..");return t},normalize:function(t){var e=t.charAt(0)==="/",r=t.substr(-1)==="/";return t=yt.normalizeArray(t.split("/").filter(function(i){return!!i}),!e).join("/"),!t&&!e&&(t="."),t&&r&&(t+="/"),(e?"/":"")+t},dirname:function(t){var e=yt.splitPath(t),r=e[0],i=e[1];return!r&&!i?".":(i&&(i=i.substr(0,i.length-1)),r+i)},basename:function(t){if(t==="/")return"/";t=yt.normalize(t),t=t.replace(/\/$/,"");var e=t.lastIndexOf("/");return e===-1?t:t.substr(e+1)},extname:function(t){return yt.splitPath(t)[3]},join:function(){var t=Array.prototype.slice.call(arguments,0);return yt.normalize(t.join("/"))},join2:function(t,e){return yt.normalize(t+"/"+e)}};function Yxe(){if(typeof crypto=="object"&&typeof crypto.getRandomValues=="function"){var t=new Uint8Array(1);return function(){return crypto.getRandomValues(t),t[0]}}else if(Wl)try{var e=require("crypto");return function(){return e.randomBytes(1)[0]}}catch(r){}return function(){Gr("randomDevice")}}var wa={resolve:function(){for(var t="",e=!1,r=arguments.length-1;r>=-1&&!e;r--){var i=r>=0?arguments[r]:y.cwd();if(typeof i!="string")throw new TypeError("Arguments to path.resolve must be strings");if(!i)return"";t=i+"/"+t,e=i.charAt(0)==="/"}return t=yt.normalizeArray(t.split("/").filter(function(n){return!!n}),!e).join("/"),(e?"/":"")+t||"."},relative:function(t,e){t=wa.resolve(t).substr(1),e=wa.resolve(e).substr(1);function r(c){for(var u=0;u=0&&c[g]==="";g--);return u>g?[]:c.slice(u,g-u+1)}for(var i=r(t.split("/")),n=r(e.split("/")),s=Math.min(i.length,n.length),o=s,a=0;a0?e=i.slice(0,n).toString("utf-8"):e=null}else typeof window!="undefined"&&typeof window.prompt=="function"?(e=window.prompt("Input: "),e!==null&&(e+=` -`)):typeof readline=="function"&&(e=readline(),e!==null&&(e+=` -`));if(!e)return null;t.input=CP(e,!0)}return t.input.shift()},put_char:function(t,e){e===null||e===10?($y(Zu(t.output,0)),t.output=[]):e!=0&&t.output.push(e)},flush:function(t){t.output&&t.output.length>0&&($y(Zu(t.output,0)),t.output=[])}},default_tty1_ops:{put_char:function(t,e){e===null||e===10?(Di(Zu(t.output,0)),t.output=[]):e!=0&&t.output.push(e)},flush:function(t){t.output&&t.output.length>0&&(Di(Zu(t.output,0)),t.output=[])}}};function mP(t){for(var e=mxe(t,65536),r=h4(e);t=e)){var i=1024*1024;e=Math.max(e,r*(r>>0),r!=0&&(e=Math.max(e,256));var n=t.contents;t.contents=new Uint8Array(e),t.usedBytes>0&&t.contents.set(n.subarray(0,t.usedBytes),0)}},resizeFileStorage:function(t,e){if(t.usedBytes!=e)if(e==0)t.contents=null,t.usedBytes=0;else{var r=t.contents;t.contents=new Uint8Array(e),r&&t.contents.set(r.subarray(0,Math.min(e,t.usedBytes))),t.usedBytes=e}},node_ops:{getattr:function(t){var e={};return e.dev=y.isChrdev(t.mode)?t.id:1,e.ino=t.id,e.mode=t.mode,e.nlink=1,e.uid=0,e.gid=0,e.rdev=t.rdev,y.isDir(t.mode)?e.size=4096:y.isFile(t.mode)?e.size=t.usedBytes:y.isLink(t.mode)?e.size=t.link.length:e.size=0,e.atime=new Date(t.timestamp),e.mtime=new Date(t.timestamp),e.ctime=new Date(t.timestamp),e.blksize=4096,e.blocks=Math.ceil(e.size/e.blksize),e},setattr:function(t,e){e.mode!==void 0&&(t.mode=e.mode),e.timestamp!==void 0&&(t.timestamp=e.timestamp),e.size!==void 0&&pt.resizeFileStorage(t,e.size)},lookup:function(t,e){throw y.genericErrors[44]},mknod:function(t,e,r,i){return pt.createNode(t,e,r,i)},rename:function(t,e,r){if(y.isDir(t.mode)){var i;try{i=y.lookupNode(e,r)}catch(s){}if(i)for(var n in i.contents)throw new y.ErrnoError(55)}delete t.parent.contents[t.name],t.parent.timestamp=Date.now(),t.name=r,e.contents[r]=t,e.timestamp=t.parent.timestamp,t.parent=e},unlink:function(t,e){delete t.contents[e],t.timestamp=Date.now()},rmdir:function(t,e){var r=y.lookupNode(t,e);for(var i in r.contents)throw new y.ErrnoError(55);delete t.contents[e],t.timestamp=Date.now()},readdir:function(t){var e=[".",".."];for(var r in t.contents)!t.contents.hasOwnProperty(r)||e.push(r);return e},symlink:function(t,e,r){var i=pt.createNode(t,e,511|40960,0);return i.link=r,i},readlink:function(t){if(!y.isLink(t.mode))throw new y.ErrnoError(28);return t.link}},stream_ops:{read:function(t,e,r,i,n){var s=t.node.contents;if(n>=t.node.usedBytes)return 0;var o=Math.min(t.node.usedBytes-n,i);if(o>8&&s.subarray)e.set(s.subarray(n,n+o),r);else for(var a=0;a0||i+r>2)}catch(r){throw r.code?new y.ErrnoError(tt.convertNodeCode(r)):r}return e.mode},realPath:function(t){for(var e=[];t.parent!==t;)e.push(t.name),t=t.parent;return e.push(t.mount.opts.root),e.reverse(),yt.join.apply(null,e)},flagsForNode:function(t){t&=~2097152,t&=~2048,t&=~32768,t&=~524288;var e=0;for(var r in tt.flagsForNodeMap)t&r&&(e|=tt.flagsForNodeMap[r],t^=r);if(t)throw new y.ErrnoError(28);return e},node_ops:{getattr:function(t){var e=tt.realPath(t),r;try{r=ft.lstatSync(e)}catch(i){throw i.code?new y.ErrnoError(tt.convertNodeCode(i)):i}return tt.isWindows&&!r.blksize&&(r.blksize=4096),tt.isWindows&&!r.blocks&&(r.blocks=(r.size+r.blksize-1)/r.blksize|0),{dev:r.dev,ino:r.ino,mode:r.mode,nlink:r.nlink,uid:r.uid,gid:r.gid,rdev:r.rdev,size:r.size,atime:r.atime,mtime:r.mtime,ctime:r.ctime,blksize:r.blksize,blocks:r.blocks}},setattr:function(t,e){var r=tt.realPath(t);try{if(e.mode!==void 0&&(ft.chmodSync(r,e.mode),t.mode=e.mode),e.timestamp!==void 0){var i=new Date(e.timestamp);ft.utimesSync(r,i,i)}e.size!==void 0&&ft.truncateSync(r,e.size)}catch(n){throw n.code?new y.ErrnoError(tt.convertNodeCode(n)):n}},lookup:function(t,e){var r=yt.join2(tt.realPath(t),e),i=tt.getMode(r);return tt.createNode(t,e,i)},mknod:function(t,e,r,i){var n=tt.createNode(t,e,r,i),s=tt.realPath(n);try{y.isDir(n.mode)?ft.mkdirSync(s,n.mode):ft.writeFileSync(s,"",{mode:n.mode})}catch(o){throw o.code?new y.ErrnoError(tt.convertNodeCode(o)):o}return n},rename:function(t,e,r){var i=tt.realPath(t),n=yt.join2(tt.realPath(e),r);try{ft.renameSync(i,n)}catch(s){throw s.code?new y.ErrnoError(tt.convertNodeCode(s)):s}t.name=r},unlink:function(t,e){var r=yt.join2(tt.realPath(t),e);try{ft.unlinkSync(r)}catch(i){throw i.code?new y.ErrnoError(tt.convertNodeCode(i)):i}},rmdir:function(t,e){var r=yt.join2(tt.realPath(t),e);try{ft.rmdirSync(r)}catch(i){throw i.code?new y.ErrnoError(tt.convertNodeCode(i)):i}},readdir:function(t){var e=tt.realPath(t);try{return ft.readdirSync(e)}catch(r){throw r.code?new y.ErrnoError(tt.convertNodeCode(r)):r}},symlink:function(t,e,r){var i=yt.join2(tt.realPath(t),e);try{ft.symlinkSync(r,i)}catch(n){throw n.code?new y.ErrnoError(tt.convertNodeCode(n)):n}},readlink:function(t){var e=tt.realPath(t);try{return e=ft.readlinkSync(e),e=EP.relative(EP.resolve(t.mount.opts.root),e),e}catch(r){throw r.code?new y.ErrnoError(tt.convertNodeCode(r)):r}}},stream_ops:{open:function(t){var e=tt.realPath(t.node);try{y.isFile(t.node.mode)&&(t.nfd=ft.openSync(e,tt.flagsForNode(t.flags)))}catch(r){throw r.code?new y.ErrnoError(tt.convertNodeCode(r)):r}},close:function(t){try{y.isFile(t.node.mode)&&t.nfd&&ft.closeSync(t.nfd)}catch(e){throw e.code?new y.ErrnoError(tt.convertNodeCode(e)):e}},read:function(t,e,r,i,n){if(i===0)return 0;try{return ft.readSync(t.nfd,tt.bufferFrom(e.buffer),r,i,n)}catch(s){throw new y.ErrnoError(tt.convertNodeCode(s))}},write:function(t,e,r,i,n){try{return ft.writeSync(t.nfd,tt.bufferFrom(e.buffer),r,i,n)}catch(s){throw new y.ErrnoError(tt.convertNodeCode(s))}},llseek:function(t,e,r){var i=e;if(r===1)i+=t.position;else if(r===2&&y.isFile(t.node.mode))try{var n=ft.fstatSync(t.nfd);i+=n.size}catch(s){throw new y.ErrnoError(tt.convertNodeCode(s))}if(i<0)throw new y.ErrnoError(28);return i},mmap:function(t,e,r,i,n,s){if(e!==0)throw new y.ErrnoError(28);if(!y.isFile(t.node.mode))throw new y.ErrnoError(43);var o=mP(r);return tt.stream_ops.read(t,Zi,o,r,i),{ptr:o,allocated:!0}},msync:function(t,e,r,i,n){if(!y.isFile(t.node.mode))throw new y.ErrnoError(43);if(n&2)return 0;var s=tt.stream_ops.write(t,e,0,i,r,!1);return 0}}},w4={lookupPath:function(t){return{path:t,node:{mode:tt.getMode(t)}}},createStandardStreams:function(){y.streams[0]={fd:0,nfd:0,position:0,path:"",flags:0,tty:!0,seekable:!1};for(var t=1;t<3;t++)y.streams[t]={fd:t,nfd:t,position:0,path:"",flags:577,tty:!0,seekable:!1}},cwd:function(){return process.cwd()},chdir:function(){process.chdir.apply(void 0,arguments)},mknod:function(t,e){y.isDir(t)?ft.mkdirSync(t,e):ft.writeFileSync(t,"",{mode:e})},mkdir:function(){ft.mkdirSync.apply(void 0,arguments)},symlink:function(){ft.symlinkSync.apply(void 0,arguments)},rename:function(){ft.renameSync.apply(void 0,arguments)},rmdir:function(){ft.rmdirSync.apply(void 0,arguments)},readdir:function(){ft.readdirSync.apply(void 0,arguments)},unlink:function(){ft.unlinkSync.apply(void 0,arguments)},readlink:function(){return ft.readlinkSync.apply(void 0,arguments)},stat:function(){return ft.statSync.apply(void 0,arguments)},lstat:function(){return ft.lstatSync.apply(void 0,arguments)},chmod:function(){ft.chmodSync.apply(void 0,arguments)},fchmod:function(){ft.fchmodSync.apply(void 0,arguments)},chown:function(){ft.chownSync.apply(void 0,arguments)},fchown:function(){ft.fchownSync.apply(void 0,arguments)},truncate:function(){ft.truncateSync.apply(void 0,arguments)},ftruncate:function(t,e){if(e<0)throw new y.ErrnoError(28);ft.ftruncateSync.apply(void 0,arguments)},utime:function(){ft.utimesSync.apply(void 0,arguments)},open:function(t,e,r,i){typeof e=="string"&&(e=Vl.modeStringToFlags(e));var n=ft.openSync(t,tt.flagsForNode(e),r),s=i!=null?i:y.nextfd(n),o={fd:s,nfd:n,position:0,path:t,flags:e,seekable:!0};return y.streams[s]=o,o},close:function(t){t.stream_ops||ft.closeSync(t.nfd),y.closeStream(t.fd)},llseek:function(t,e,r){if(t.stream_ops)return Vl.llseek(t,e,r);var i=e;if(r===1)i+=t.position;else if(r===2)i+=ft.fstatSync(t.nfd).size;else if(r!==0)throw new y.ErrnoError(eg.EINVAL);if(i<0)throw new y.ErrnoError(eg.EINVAL);return t.position=i,i},read:function(t,e,r,i,n){if(t.stream_ops)return Vl.read(t,e,r,i,n);var s=typeof n!="undefined";!s&&t.seekable&&(n=t.position);var o=ft.readSync(t.nfd,tt.bufferFrom(e.buffer),r,i,n);return s||(t.position+=o),o},write:function(t,e,r,i,n){if(t.stream_ops)return Vl.write(t,e,r,i,n);t.flags&+"1024"&&y.llseek(t,0,+"2");var s=typeof n!="undefined";!s&&t.seekable&&(n=t.position);var o=ft.writeSync(t.nfd,tt.bufferFrom(e.buffer),r,i,n);return s||(t.position+=o),o},allocate:function(){throw new y.ErrnoError(eg.EOPNOTSUPP)},mmap:function(t,e,r,i,n,s){if(t.stream_ops)return Vl.mmap(t,e,r,i,n,s);if(e!==0)throw new y.ErrnoError(28);var o=mP(r);return y.read(t,Zi,o,r,i),{ptr:o,allocated:!0}},msync:function(t,e,r,i,n){return t.stream_ops?Vl.msync(t,e,r,i,n):(n&2||y.write(t,e,0,i,r),0)},munmap:function(){return 0},ioctl:function(){throw new y.ErrnoError(eg.ENOTTY)}},y={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,trackingDelegate:{},tracking:{openFlags:{READ:1,WRITE:2}},ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,lookupPath:function(t,e){if(t=wa.resolve(y.cwd(),t),e=e||{},!t)return{path:"",node:null};var r={follow_mount:!0,recurse_count:0};for(var i in r)e[i]===void 0&&(e[i]=r[i]);if(e.recurse_count>8)throw new y.ErrnoError(32);for(var n=yt.normalizeArray(t.split("/").filter(function(f){return!!f}),!1),s=y.root,o="/",a=0;a40)throw new y.ErrnoError(32)}}return{path:o,node:s}},getPath:function(t){for(var e;;){if(y.isRoot(t)){var r=t.mount.mountpoint;return e?r[r.length-1]!=="/"?r+"/"+e:r+e:r}e=e?t.name+"/"+e:t.name,t=t.parent}},hashName:function(t,e){for(var r=0,i=0;i>>0)%y.nameTable.length},hashAddNode:function(t){var e=y.hashName(t.parent.id,t.name);t.name_next=y.nameTable[e],y.nameTable[e]=t},hashRemoveNode:function(t){var e=y.hashName(t.parent.id,t.name);if(y.nameTable[e]===t)y.nameTable[e]=t.name_next;else for(var r=y.nameTable[e];r;){if(r.name_next===t){r.name_next=t.name_next;break}r=r.name_next}},lookupNode:function(t,e){var r=y.mayLookup(t);if(r)throw new y.ErrnoError(r,t);for(var i=y.hashName(t.id,e),n=y.nameTable[i];n;n=n.name_next){var s=n.name;if(n.parent.id===t.id&&s===e)return n}return y.lookup(t,e)},createNode:function(t,e,r,i){var n=new y.FSNode(t,e,r,i);return y.hashAddNode(n),n},destroyNode:function(t){y.hashRemoveNode(t)},isRoot:function(t){return t===t.parent},isMountpoint:function(t){return!!t.mounted},isFile:function(t){return(t&61440)==32768},isDir:function(t){return(t&61440)==16384},isLink:function(t){return(t&61440)==40960},isChrdev:function(t){return(t&61440)==8192},isBlkdev:function(t){return(t&61440)==24576},isFIFO:function(t){return(t&61440)==4096},isSocket:function(t){return(t&49152)==49152},flagModes:{r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090},modeStringToFlags:function(t){var e=y.flagModes[t];if(typeof e=="undefined")throw new Error("Unknown file open mode: "+t);return e},flagsToPermissionString:function(t){var e=["r","w","rw"][t&3];return t&512&&(e+="w"),e},nodePermissions:function(t,e){return y.ignorePermissions?0:e.includes("r")&&!(t.mode&292)||e.includes("w")&&!(t.mode&146)||e.includes("x")&&!(t.mode&73)?2:0},mayLookup:function(t){var e=y.nodePermissions(t,"x");return e||(t.node_ops.lookup?0:2)},mayCreate:function(t,e){try{var r=y.lookupNode(t,e);return 20}catch(i){}return y.nodePermissions(t,"wx")},mayDelete:function(t,e,r){var i;try{i=y.lookupNode(t,e)}catch(s){return s.errno}var n=y.nodePermissions(t,"wx");if(n)return n;if(r){if(!y.isDir(i.mode))return 54;if(y.isRoot(i)||y.getPath(i)===y.cwd())return 10}else if(y.isDir(i.mode))return 31;return 0},mayOpen:function(t,e){return t?y.isLink(t.mode)?32:y.isDir(t.mode)&&(y.flagsToPermissionString(e)!=="r"||e&512)?31:y.nodePermissions(t,y.flagsToPermissionString(e)):44},MAX_OPEN_FDS:4096,nextfd:function(t,e){t=t||0,e=e||y.MAX_OPEN_FDS;for(var r=t;r<=e;r++)if(!y.streams[r])return r;throw new y.ErrnoError(33)},getStream:function(t){return y.streams[t]},createStream:function(t,e,r){y.FSStream||(y.FSStream=function(){},y.FSStream.prototype={object:{get:function(){return this.node},set:function(o){this.node=o}},isRead:{get:function(){return(this.flags&2097155)!=1}},isWrite:{get:function(){return(this.flags&2097155)!=0}},isAppend:{get:function(){return this.flags&1024}}});var i=new y.FSStream;for(var n in t)i[n]=t[n];t=i;var s=y.nextfd(e,r);return t.fd=s,y.streams[s]=t,t},closeStream:function(t){y.streams[t]=null},chrdev_stream_ops:{open:function(t){var e=y.getDevice(t.node.rdev);t.stream_ops=e.stream_ops,t.stream_ops.open&&t.stream_ops.open(t)},llseek:function(){throw new y.ErrnoError(70)}},major:function(t){return t>>8},minor:function(t){return t&255},makedev:function(t,e){return t<<8|e},registerDevice:function(t,e){y.devices[t]={stream_ops:e}},getDevice:function(t){return y.devices[t]},getMounts:function(t){for(var e=[],r=[t];r.length;){var i=r.pop();e.push(i),r.push.apply(r,i.mounts)}return e},syncfs:function(t,e){typeof t=="function"&&(e=t,t=!1),y.syncFSRequests++,y.syncFSRequests>1&&Di("warning: "+y.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work");var r=y.getMounts(y.root.mount),i=0;function n(o){return y.syncFSRequests--,e(o)}function s(o){if(o)return s.errored?void 0:(s.errored=!0,n(o));++i>=r.length&&n(null)}r.forEach(function(o){if(!o.type.syncfs)return s(null);o.type.syncfs(o,t,s)})},mount:function(t,e,r){var i=r==="/",n=!r,s;if(i&&y.root)throw new y.ErrnoError(10);if(!i&&!n){var o=y.lookupPath(r,{follow_mount:!1});if(r=o.path,s=o.node,y.isMountpoint(s))throw new y.ErrnoError(10);if(!y.isDir(s.mode))throw new y.ErrnoError(54)}var a={type:t,opts:e,mountpoint:r,mounts:[]},l=t.mount(a);return l.mount=a,a.root=l,i?y.root=l:s&&(s.mounted=a,s.mount&&s.mount.mounts.push(a)),l},unmount:function(t){var e=y.lookupPath(t,{follow_mount:!1});if(!y.isMountpoint(e.node))throw new y.ErrnoError(28);var r=e.node,i=r.mounted,n=y.getMounts(i);Object.keys(y.nameTable).forEach(function(o){for(var a=y.nameTable[o];a;){var l=a.name_next;n.includes(a.mount)&&y.destroyNode(a),a=l}}),r.mounted=null;var s=r.mount.mounts.indexOf(i);r.mount.mounts.splice(s,1)},lookup:function(t,e){return t.node_ops.lookup(t,e)},mknod:function(t,e,r){var i=y.lookupPath(t,{parent:!0}),n=i.node,s=yt.basename(t);if(!s||s==="."||s==="..")throw new y.ErrnoError(28);var o=y.mayCreate(n,s);if(o)throw new y.ErrnoError(o);if(!n.node_ops.mknod)throw new y.ErrnoError(63);return n.node_ops.mknod(n,s,e,r)},create:function(t,e){return e=e!==void 0?e:438,e&=4095,e|=32768,y.mknod(t,e,0)},mkdir:function(t,e){return e=e!==void 0?e:511,e&=511|512,e|=16384,y.mknod(t,e,0)},mkdirTree:function(t,e){for(var r=t.split("/"),i="",n=0;nthis.length-1||f<0)){var h=f%this.chunkSize,p=f/this.chunkSize|0;return this.getter(p)[h]}},s.prototype.setDataGetter=function(f){this.getter=f},s.prototype.cacheLength=function(){var f=new XMLHttpRequest;if(f.open("HEAD",r,!1),f.send(null),!(f.status>=200&&f.status<300||f.status===304))throw new Error("Couldn't load "+r+". Status: "+f.status);var h=Number(f.getResponseHeader("Content-length")),p,d=(p=f.getResponseHeader("Accept-Ranges"))&&p==="bytes",m=(p=f.getResponseHeader("Content-Encoding"))&&p==="gzip",I=1024*1024;d||(I=h);var B=function(R,H){if(R>H)throw new Error("invalid range ("+R+", "+H+") or no bytes requested!");if(H>h-1)throw new Error("only "+h+" bytes available! programmer error!");var L=new XMLHttpRequest;if(L.open("GET",r,!1),h!==I&&L.setRequestHeader("Range","bytes="+R+"-"+H),typeof Uint8Array!="undefined"&&(L.responseType="arraybuffer"),L.overrideMimeType&&L.overrideMimeType("text/plain; charset=x-user-defined"),L.send(null),!(L.status>=200&&L.status<300||L.status===304))throw new Error("Couldn't load "+r+". Status: "+L.status);return L.response!==void 0?new Uint8Array(L.response||[]):CP(L.responseText||"",!0)},b=this;b.setDataGetter(function(R){var H=R*I,L=(R+1)*I-1;if(L=Math.min(L,h-1),typeof b.chunks[R]=="undefined"&&(b.chunks[R]=B(H,L)),typeof b.chunks[R]=="undefined")throw new Error("doXHR failed!");return b.chunks[R]}),(m||!h)&&(I=h=1,h=this.getter(0).length,I=h,$y("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=h,this._chunkSize=I,this.lengthKnown=!0},typeof XMLHttpRequest!="undefined"){if(!i4)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var o=new s;Object.defineProperties(o,{length:{get:function(){return this.lengthKnown||this.cacheLength(),this._length}},chunkSize:{get:function(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}});var a={isDevice:!1,contents:o}}else var a={isDevice:!1,url:r};var l=y.createFile(t,e,a,i,n);a.contents?l.contents=a.contents:a.url&&(l.contents=null,l.url=a.url),Object.defineProperties(l,{usedBytes:{get:function(){return this.contents.length}}});var c={},u=Object.keys(l.stream_ops);return u.forEach(function(g){var f=l.stream_ops[g];c[g]=function(){return y.forceLoadFile(l),f.apply(null,arguments)}}),c.read=function(f,h,p,d,m){y.forceLoadFile(l);var I=f.node.contents;if(m>=I.length)return 0;var B=Math.min(I.length-m,d);if(I.slice)for(var b=0;b>2]=i.dev,_e[r+4>>2]=0,_e[r+8>>2]=i.ino,_e[r+12>>2]=i.mode,_e[r+16>>2]=i.nlink,_e[r+20>>2]=i.uid,_e[r+24>>2]=i.gid,_e[r+28>>2]=i.rdev,_e[r+32>>2]=0,ya=[i.size>>>0,(ai=i.size,+Math.abs(ai)>=1?ai>0?(Math.min(+Math.floor(ai/4294967296),4294967295)|0)>>>0:~~+Math.ceil((ai-+(~~ai>>>0))/4294967296)>>>0:0)],_e[r+40>>2]=ya[0],_e[r+44>>2]=ya[1],_e[r+48>>2]=4096,_e[r+52>>2]=i.blocks,_e[r+56>>2]=i.atime.getTime()/1e3|0,_e[r+60>>2]=0,_e[r+64>>2]=i.mtime.getTime()/1e3|0,_e[r+68>>2]=0,_e[r+72>>2]=i.ctime.getTime()/1e3|0,_e[r+76>>2]=0,ya=[i.ino>>>0,(ai=i.ino,+Math.abs(ai)>=1?ai>0?(Math.min(+Math.floor(ai/4294967296),4294967295)|0)>>>0:~~+Math.ceil((ai-+(~~ai>>>0))/4294967296)>>>0:0)],_e[r+80>>2]=ya[0],_e[r+84>>2]=ya[1],0},doMsync:function(t,e,r,i,n){var s=$u.slice(t,t+r);y.msync(e,s,n,r,i)},doMkdir:function(t,e){return t=yt.normalize(t),t[t.length-1]==="/"&&(t=t.substr(0,t.length-1)),y.mkdir(t,e,0),0},doMknod:function(t,e,r){switch(e&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}return y.mknod(t,e,r),0},doReadlink:function(t,e,r){if(r<=0)return-28;var i=y.readlink(t),n=Math.min(r,rw(i)),s=Zi[e+n];return u4(i,e,r+1),Zi[e+n]=s,n},doAccess:function(t,e){if(e&~7)return-28;var r,i=y.lookupPath(t,{follow:!0});if(r=i.node,!r)return-44;var n="";return e&4&&(n+="r"),e&2&&(n+="w"),e&1&&(n+="x"),n&&y.nodePermissions(r,n)?-2:0},doDup:function(t,e,r){var i=y.getStream(r);return i&&y.close(i),y.open(t,e,0,r,r).fd},doReadv:function(t,e,r,i){for(var n=0,s=0;s>2],a=_e[e+(s*8+4)>>2],l=y.read(t,Zi,o,a,i);if(l<0)return-1;if(n+=l,l>2],a=_e[e+(s*8+4)>>2],l=y.write(t,Zi,o,a,i);if(l<0)return-1;n+=l}return n},varargs:void 0,get:function(){Ot.varargs+=4;var t=_e[Ot.varargs-4>>2];return t},getStr:function(t){var e=c4(t);return e},getStreamFromFD:function(t){var e=y.getStream(t);if(!e)throw new y.ErrnoError(8);return e},get64:function(t,e){return t}};function qxe(t,e){try{return t=Ot.getStr(t),y.chmod(t,e),0}catch(r){return(typeof y=="undefined"||!(r instanceof y.ErrnoError))&&Gr(r),-r.errno}}function Wxe(t){return _e[Jxe()>>2]=t,t}function zxe(t,e,r){Ot.varargs=r;try{var i=Ot.getStreamFromFD(t);switch(e){case 0:{var n=Ot.get();if(n<0)return-28;var s;return s=y.open(i.path,i.flags,0,n),s.fd}case 1:case 2:return 0;case 3:return i.flags;case 4:{var n=Ot.get();return i.flags|=n,0}case 12:{var n=Ot.get(),o=0;return cP[n+o>>1]=2,0}case 13:case 14:return 0;case 16:case 8:return-28;case 9:return Wxe(28),-1;default:return-28}}catch(a){return(typeof y=="undefined"||!(a instanceof y.ErrnoError))&&Gr(a),-a.errno}}function Vxe(t,e){try{var r=Ot.getStreamFromFD(t);return Ot.doStat(y.stat,r.path,e)}catch(i){return(typeof y=="undefined"||!(i instanceof y.ErrnoError))&&Gr(i),-i.errno}}function _xe(t,e,r){Ot.varargs=r;try{var i=Ot.getStreamFromFD(t);switch(e){case 21509:case 21505:return i.tty?0:-59;case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:return i.tty?0:-59;case 21519:{if(!i.tty)return-59;var n=Ot.get();return _e[n>>2]=0,0}case 21520:return i.tty?-28:-59;case 21531:{var n=Ot.get();return y.ioctl(i,e,n)}case 21523:return i.tty?0:-59;case 21524:return i.tty?0:-59;default:Gr("bad ioctl syscall "+e)}}catch(s){return(typeof y=="undefined"||!(s instanceof y.ErrnoError))&&Gr(s),-s.errno}}function Xxe(t,e,r){Ot.varargs=r;try{var i=Ot.getStr(t),n=r?Ot.get():0,s=y.open(i,e,n);return s.fd}catch(o){return(typeof y=="undefined"||!(o instanceof y.ErrnoError))&&Gr(o),-o.errno}}function Zxe(t,e){try{return t=Ot.getStr(t),e=Ot.getStr(e),y.rename(t,e),0}catch(r){return(typeof y=="undefined"||!(r instanceof y.ErrnoError))&&Gr(r),-r.errno}}function $xe(t){try{return t=Ot.getStr(t),y.rmdir(t),0}catch(e){return(typeof y=="undefined"||!(e instanceof y.ErrnoError))&&Gr(e),-e.errno}}function eke(t,e){try{return t=Ot.getStr(t),Ot.doStat(y.stat,t,e)}catch(r){return(typeof y=="undefined"||!(r instanceof y.ErrnoError))&&Gr(r),-r.errno}}function tke(t){try{return t=Ot.getStr(t),y.unlink(t),0}catch(e){return(typeof y=="undefined"||!(e instanceof y.ErrnoError))&&Gr(e),-e.errno}}function rke(t,e,r){$u.copyWithin(t,e,e+r)}function ike(t){try{return ew.grow(t-gP.byteLength+65535>>>16),p4(ew.buffer),1}catch(e){}}function nke(t){var e=$u.length;t=t>>>0;var r=2147483648;if(t>r)return!1;for(var i=1;i<=4;i*=2){var n=e*(1+.2/i);n=Math.min(n,t+100663296);var s=Math.min(r,xxe(Math.max(t,n),65536)),o=ike(s);if(o)return!0}return!1}function ske(t){try{var e=Ot.getStreamFromFD(t);return y.close(e),0}catch(r){return(typeof y=="undefined"||!(r instanceof y.ErrnoError))&&Gr(r),r.errno}}function oke(t,e){try{var r=Ot.getStreamFromFD(t),i=r.tty?2:y.isDir(r.mode)?3:y.isLink(r.mode)?7:4;return Zi[e>>0]=i,0}catch(n){return(typeof y=="undefined"||!(n instanceof y.ErrnoError))&&Gr(n),n.errno}}function ake(t,e,r,i){try{var n=Ot.getStreamFromFD(t),s=Ot.doReadv(n,e,r);return _e[i>>2]=s,0}catch(o){return(typeof y=="undefined"||!(o instanceof y.ErrnoError))&&Gr(o),o.errno}}function Ake(t,e,r,i,n){try{var s=Ot.getStreamFromFD(t),o=4294967296,a=r*o+(e>>>0),l=9007199254740992;return a<=-l||a>=l?-61:(y.llseek(s,a,i),ya=[s.position>>>0,(ai=s.position,+Math.abs(ai)>=1?ai>0?(Math.min(+Math.floor(ai/4294967296),4294967295)|0)>>>0:~~+Math.ceil((ai-+(~~ai>>>0))/4294967296)>>>0:0)],_e[n>>2]=ya[0],_e[n+4>>2]=ya[1],s.getdents&&a===0&&i===0&&(s.getdents=null),0)}catch(c){return(typeof y=="undefined"||!(c instanceof y.ErrnoError))&&Gr(c),c.errno}}function lke(t,e,r,i){try{var n=Ot.getStreamFromFD(t),s=Ot.doWritev(n,e,r);return _e[i>>2]=s,0}catch(o){return(typeof y=="undefined"||!(o instanceof y.ErrnoError))&&Gr(o),o.errno}}function cke(t){Ixe(t)}function uke(t){var e=Date.now()/1e3|0;return t&&(_e[t>>2]=e),e}function IP(){if(IP.called)return;IP.called=!0;var t=new Date().getFullYear(),e=new Date(t,0,1),r=new Date(t,6,1),i=e.getTimezoneOffset(),n=r.getTimezoneOffset(),s=Math.max(i,n);_e[fke()>>2]=s*60,_e[gke()>>2]=Number(i!=n);function o(g){var f=g.toTimeString().match(/\(([A-Za-z ]+)\)$/);return f?f[1]:"GMT"}var a=o(e),l=o(r),c=uP(a),u=uP(l);n>2]=c,_e[nw()+4>>2]=u):(_e[nw()>>2]=u,_e[nw()+4>>2]=c)}function hke(t){IP();var e=Date.UTC(_e[t+20>>2]+1900,_e[t+16>>2],_e[t+12>>2],_e[t+8>>2],_e[t+4>>2],_e[t>>2],0),r=new Date(e);_e[t+24>>2]=r.getUTCDay();var i=Date.UTC(r.getUTCFullYear(),0,1,0,0,0,0),n=(r.getTime()-i)/(1e3*60*60*24)|0;return _e[t+28>>2]=n,r.getTime()/1e3|0}var B4=function(t,e,r,i){t||(t=this),this.parent=t,this.mount=t.mount,this.mounted=null,this.id=y.nextInode++,this.name=e,this.mode=r,this.node_ops={},this.stream_ops={},this.rdev=i},sw=292|73,ow=146;Object.defineProperties(B4.prototype,{read:{get:function(){return(this.mode&sw)===sw},set:function(t){t?this.mode|=sw:this.mode&=~sw}},write:{get:function(){return(this.mode&ow)===ow},set:function(t){t?this.mode|=ow:this.mode&=~ow}},isFolder:{get:function(){return y.isDir(this.mode)}},isDevice:{get:function(){return y.isChrdev(this.mode)}}});y.FSNode=B4;y.staticInit();Wl&&(ft=e4,EP=require("path"),tt.staticInit());var ft,EP;if(Wl){Q4=function(t){return function(){try{return t.apply(this,arguments)}catch(e){throw e.code?new y.ErrnoError(eg[e.code]):e}}},Vl=Object.assign({},y);for(yP in w4)y[yP]=Q4(w4[yP])}else throw new Error("NODERAWFS is currently only supported on Node.js environment.");var Q4,Vl,yP;function CP(t,e,r){var i=r>0?r:rw(t)+1,n=new Array(i),s=tw(t,n,0,n.length);return e&&(n.length=s),n}var pke=typeof atob=="function"?atob:function(t){var e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",r="",i,n,s,o,a,l,c,u=0;t=t.replace(/[^A-Za-z0-9\+\/\=]/g,"");do o=e.indexOf(t.charAt(u++)),a=e.indexOf(t.charAt(u++)),l=e.indexOf(t.charAt(u++)),c=e.indexOf(t.charAt(u++)),i=o<<2|a>>4,n=(a&15)<<4|l>>2,s=(l&3)<<6|c,r=r+String.fromCharCode(i),l!==64&&(r=r+String.fromCharCode(n)),c!==64&&(r=r+String.fromCharCode(s));while(u0||(Fxe(),zl>0))return;function e(){aw||(aw=!0,oe.calledRun=!0,!A4&&(Nxe(),oe.onRuntimeInitialized&&oe.onRuntimeInitialized(),Txe()))}oe.setStatus?(oe.setStatus("Running..."),setTimeout(function(){setTimeout(function(){oe.setStatus("")},1),e()},1)):e()}oe.run=wP;if(oe.preInit)for(typeof oe.preInit=="function"&&(oe.preInit=[oe.preInit]);oe.preInit.length>0;)oe.preInit.pop()();wP()});var x4=E((Dot,S4)=>{"use strict";function Cke(t,e){function r(){this.constructor=t}r.prototype=e.prototype,t.prototype=new r}function _l(t,e,r,i){this.message=t,this.expected=e,this.found=r,this.location=i,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,_l)}Cke(_l,Error);_l.buildMessage=function(t,e){var r={literal:function(c){return'"'+n(c.text)+'"'},class:function(c){var u="",g;for(g=0;g0){for(g=1,f=1;g>",ee=At(">>",!1),Ue=">&",Oe=At(">&",!1),vt=">",dt=At(">",!1),ri="<<<",ii=At("<<<",!1),an="<&",yr=At("<&",!1),Ki="<",Qi=At("<",!1),Go=function(C){return{type:"argument",segments:[].concat(...C)}},wr=function(C){return C},Ui="'",ws=At("'",!1),Tf=function(C){return[{type:"text",text:C}]},Mf='"',Rm=At('"',!1),Fm=function(C){return C},Nm=function(C){return{type:"arithmetic",arithmetic:C,quoted:!0}},DQ=function(C){return{type:"shell",shell:C,quoted:!0}},RQ=function(C){return _(P({type:"variable"},C),{quoted:!0})},Of=function(C){return{type:"text",text:C}},FQ=function(C){return{type:"arithmetic",arithmetic:C,quoted:!1}},NQ=function(C){return{type:"shell",shell:C,quoted:!1}},Lm=function(C){return _(P({type:"variable"},C),{quoted:!1})},LQ=function(C){return{type:"glob",pattern:C}},Va="\\",jo=At("\\",!1),Tm=/^[\\']/,Mm=Qs(["\\","'"],!1,!1),te=function(C){return C},Om=/^[^']/,Km=Qs(["'"],!0,!1),il=function(C){return C.join("")},Um=/^[\\$"]/,Hm=Qs(["\\","$",'"'],!1,!1),Kf=/^[^$"]/,Gm=Qs(["$",'"'],!0,!1),jm="\\0",TQ=At("\\0",!1),MQ=function(){return"\0"},Ym="\\a",qm=At("\\a",!1),Jm=function(){return"a"},Wm="\\b",zm=At("\\b",!1),Vm=function(){return"\b"},Uf="\\e",OQ=At("\\e",!1),KQ=function(){return""},_m="\\f",UQ=At("\\f",!1),HQ=function(){return"\f"},O="\\n",ht=At("\\n",!1),Vc=function(){return` -`},xn="\\r",Hf=At("\\r",!1),Ye=function(){return"\r"},nl="\\t",Xm=At("\\t",!1),MM=function(){return" "},GQ="\\v",OM=At("\\v",!1),fr=function(){return"\v"},Bs="\\x",jQ=At("\\x",!1),Zm=function(C){return String.fromCharCode(parseInt(C,16))},Yo="\\u",$m=At("\\u",!1),_a="\\U",et=At("\\U",!1),YQ=function(C){return String.fromCodePoint(parseInt(C,16))},eE=/^[0-9a-fA-f]/,tE=Qs([["0","9"],["a","f"],["A","f"]],!1,!1),Xa=Cfe(),sl="-",ol=At("-",!1),al="+",qo=At("+",!1),Al=".",qQ=At(".",!1),rE=function(C,Q,k){return{type:"number",value:(C==="-"?-1:1)*parseFloat(Q.join("")+"."+k.join(""))}},iE=function(C,Q){return{type:"number",value:(C==="-"?-1:1)*parseInt(Q.join(""))}},JQ=function(C){return P({type:"variable"},C)},ll=function(C){return{type:"variable",name:C}},WQ=function(C){return C},nE="*",Gf=At("*",!1),_c="/",jf=At("/",!1),sE=function(C,Q,k){return{type:Q==="*"?"multiplication":"division",right:k}},cl=function(C,Q){return Q.reduce((k,N)=>P({left:k},N),C)},oE=function(C,Q,k){return{type:Q==="+"?"addition":"subtraction",right:k}},Yf="$((",Xc=At("$((",!1),xr="))",KM=At("))",!1),Jo=function(C){return C},Zs="$(",aE=At("$(",!1),Zc=function(C){return C},x="${",U=At("${",!1),le=":-",xe=At(":-",!1),Qe=function(C,Q){return{name:C,defaultValue:Q}},Ge=":-}",ct=At(":-}",!1),sr=function(C){return{name:C,defaultValue:[]}},Wo=function(C){return{name:C}},Afe="$",lfe=At("$",!1),cfe=function(C){return e.isGlobPattern(C)},ufe=function(C){return C},UM=/^[a-zA-Z0-9_]/,HM=Qs([["a","z"],["A","Z"],["0","9"],"_"],!1,!1),GM=function(){return dfe()},jM=/^[$@*?#a-zA-Z0-9_\-]/,YM=Qs(["$","@","*","?","#",["a","z"],["A","Z"],["0","9"],"_","-"],!1,!1),gfe=/^[(){}<>$|&; \t"']/,ffe=Qs(["(",")","{","}","<",">","$","|","&",";"," "," ",'"',"'"],!1,!1),hfe=/^[<>&; \t"']/,pfe=Qs(["<",">","&",";"," "," ",'"',"'"],!1,!1),qM=/^[ \t]/,JM=Qs([" "," "],!1,!1),w=0,Re=0,AE=[{line:1,column:1}],$s=0,zQ=[],we=0,lE;if("startRule"in e){if(!(e.startRule in i))throw new Error(`Can't start parsing from rule "`+e.startRule+'".');n=i[e.startRule]}function dfe(){return t.substring(Re,w)}function P_e(){return qf(Re,w)}function D_e(C,Q){throw Q=Q!==void 0?Q:qf(Re,w),zM([Efe(C)],t.substring(Re,w),Q)}function R_e(C,Q){throw Q=Q!==void 0?Q:qf(Re,w),Ife(C,Q)}function At(C,Q){return{type:"literal",text:C,ignoreCase:Q}}function Qs(C,Q,k){return{type:"class",parts:C,inverted:Q,ignoreCase:k}}function Cfe(){return{type:"any"}}function mfe(){return{type:"end"}}function Efe(C){return{type:"other",description:C}}function WM(C){var Q=AE[C],k;if(Q)return Q;for(k=C-1;!AE[k];)k--;for(Q=AE[k],Q={line:Q.line,column:Q.column};k$s&&($s=w,zQ=[]),zQ.push(C))}function Ife(C,Q){return new _l(C,null,null,Q)}function zM(C,Q,k){return new _l(_l.buildMessage(C,Q),C,Q,k)}function VM(){var C,Q;return C=w,Q=Jf(),Q===r&&(Q=null),Q!==r&&(Re=C,Q=s(Q)),C=Q,C}function Jf(){var C,Q,k,N,Z;if(C=w,Q=VQ(),Q!==r){for(k=[],N=ke();N!==r;)k.push(N),N=ke();k!==r?(N=_M(),N!==r?(Z=yfe(),Z===r&&(Z=null),Z!==r?(Re=C,Q=o(Q,N,Z),C=Q):(w=C,C=r)):(w=C,C=r)):(w=C,C=r)}else w=C,C=r;if(C===r)if(C=w,Q=VQ(),Q!==r){for(k=[],N=ke();N!==r;)k.push(N),N=ke();k!==r?(N=_M(),N===r&&(N=null),N!==r?(Re=C,Q=a(Q,N),C=Q):(w=C,C=r)):(w=C,C=r)}else w=C,C=r;return C}function yfe(){var C,Q,k,N,Z;for(C=w,Q=[],k=ke();k!==r;)Q.push(k),k=ke();if(Q!==r)if(k=Jf(),k!==r){for(N=[],Z=ke();Z!==r;)N.push(Z),Z=ke();N!==r?(Re=C,Q=l(k),C=Q):(w=C,C=r)}else w=C,C=r;else w=C,C=r;return C}function _M(){var C;return t.charCodeAt(w)===59?(C=c,w++):(C=r,we===0&&ve(u)),C===r&&(t.charCodeAt(w)===38?(C=g,w++):(C=r,we===0&&ve(f))),C}function VQ(){var C,Q,k;return C=w,Q=XM(),Q!==r?(k=wfe(),k===r&&(k=null),k!==r?(Re=C,Q=h(Q,k),C=Q):(w=C,C=r)):(w=C,C=r),C}function wfe(){var C,Q,k,N,Z,Ee,ot;for(C=w,Q=[],k=ke();k!==r;)Q.push(k),k=ke();if(Q!==r)if(k=Bfe(),k!==r){for(N=[],Z=ke();Z!==r;)N.push(Z),Z=ke();if(N!==r)if(Z=VQ(),Z!==r){for(Ee=[],ot=ke();ot!==r;)Ee.push(ot),ot=ke();Ee!==r?(Re=C,Q=p(k,Z),C=Q):(w=C,C=r)}else w=C,C=r;else w=C,C=r}else w=C,C=r;else w=C,C=r;return C}function Bfe(){var C;return t.substr(w,2)===d?(C=d,w+=2):(C=r,we===0&&ve(m)),C===r&&(t.substr(w,2)===I?(C=I,w+=2):(C=r,we===0&&ve(B))),C}function XM(){var C,Q,k;return C=w,Q=vfe(),Q!==r?(k=Qfe(),k===r&&(k=null),k!==r?(Re=C,Q=b(Q,k),C=Q):(w=C,C=r)):(w=C,C=r),C}function Qfe(){var C,Q,k,N,Z,Ee,ot;for(C=w,Q=[],k=ke();k!==r;)Q.push(k),k=ke();if(Q!==r)if(k=bfe(),k!==r){for(N=[],Z=ke();Z!==r;)N.push(Z),Z=ke();if(N!==r)if(Z=XM(),Z!==r){for(Ee=[],ot=ke();ot!==r;)Ee.push(ot),ot=ke();Ee!==r?(Re=C,Q=R(k,Z),C=Q):(w=C,C=r)}else w=C,C=r;else w=C,C=r}else w=C,C=r;else w=C,C=r;return C}function bfe(){var C;return t.substr(w,2)===H?(C=H,w+=2):(C=r,we===0&&ve(L)),C===r&&(t.charCodeAt(w)===124?(C=K,w++):(C=r,we===0&&ve(J))),C}function cE(){var C,Q,k,N,Z,Ee;if(C=w,Q=oO(),Q!==r)if(t.charCodeAt(w)===61?(k=ne,w++):(k=r,we===0&&ve(q)),k!==r)if(N=$M(),N!==r){for(Z=[],Ee=ke();Ee!==r;)Z.push(Ee),Ee=ke();Z!==r?(Re=C,Q=A(Q,N),C=Q):(w=C,C=r)}else w=C,C=r;else w=C,C=r;else w=C,C=r;if(C===r)if(C=w,Q=oO(),Q!==r)if(t.charCodeAt(w)===61?(k=ne,w++):(k=r,we===0&&ve(q)),k!==r){for(N=[],Z=ke();Z!==r;)N.push(Z),Z=ke();N!==r?(Re=C,Q=V(Q),C=Q):(w=C,C=r)}else w=C,C=r;else w=C,C=r;return C}function vfe(){var C,Q,k,N,Z,Ee,ot,ut,Tr,ni,Yn;for(C=w,Q=[],k=ke();k!==r;)Q.push(k),k=ke();if(Q!==r)if(t.charCodeAt(w)===40?(k=W,w++):(k=r,we===0&&ve(X)),k!==r){for(N=[],Z=ke();Z!==r;)N.push(Z),Z=ke();if(N!==r)if(Z=Jf(),Z!==r){for(Ee=[],ot=ke();ot!==r;)Ee.push(ot),ot=ke();if(Ee!==r)if(t.charCodeAt(w)===41?(ot=F,w++):(ot=r,we===0&&ve(D)),ot!==r){for(ut=[],Tr=ke();Tr!==r;)ut.push(Tr),Tr=ke();if(ut!==r){for(Tr=[],ni=Wf();ni!==r;)Tr.push(ni),ni=Wf();if(Tr!==r){for(ni=[],Yn=ke();Yn!==r;)ni.push(Yn),Yn=ke();ni!==r?(Re=C,Q=he(Z,Tr),C=Q):(w=C,C=r)}else w=C,C=r}else w=C,C=r}else w=C,C=r;else w=C,C=r}else w=C,C=r;else w=C,C=r}else w=C,C=r;else w=C,C=r;if(C===r){for(C=w,Q=[],k=ke();k!==r;)Q.push(k),k=ke();if(Q!==r)if(t.charCodeAt(w)===123?(k=pe,w++):(k=r,we===0&&ve(Ne)),k!==r){for(N=[],Z=ke();Z!==r;)N.push(Z),Z=ke();if(N!==r)if(Z=Jf(),Z!==r){for(Ee=[],ot=ke();ot!==r;)Ee.push(ot),ot=ke();if(Ee!==r)if(t.charCodeAt(w)===125?(ot=Pe,w++):(ot=r,we===0&&ve(qe)),ot!==r){for(ut=[],Tr=ke();Tr!==r;)ut.push(Tr),Tr=ke();if(ut!==r){for(Tr=[],ni=Wf();ni!==r;)Tr.push(ni),ni=Wf();if(Tr!==r){for(ni=[],Yn=ke();Yn!==r;)ni.push(Yn),Yn=ke();ni!==r?(Re=C,Q=re(Z,Tr),C=Q):(w=C,C=r)}else w=C,C=r}else w=C,C=r}else w=C,C=r;else w=C,C=r}else w=C,C=r;else w=C,C=r}else w=C,C=r;else w=C,C=r;if(C===r){for(C=w,Q=[],k=ke();k!==r;)Q.push(k),k=ke();if(Q!==r){for(k=[],N=cE();N!==r;)k.push(N),N=cE();if(k!==r){for(N=[],Z=ke();Z!==r;)N.push(Z),Z=ke();if(N!==r){if(Z=[],Ee=ZM(),Ee!==r)for(;Ee!==r;)Z.push(Ee),Ee=ZM();else Z=r;if(Z!==r){for(Ee=[],ot=ke();ot!==r;)Ee.push(ot),ot=ke();Ee!==r?(Re=C,Q=se(k,Z),C=Q):(w=C,C=r)}else w=C,C=r}else w=C,C=r}else w=C,C=r}else w=C,C=r;if(C===r){for(C=w,Q=[],k=ke();k!==r;)Q.push(k),k=ke();if(Q!==r){if(k=[],N=cE(),N!==r)for(;N!==r;)k.push(N),N=cE();else k=r;if(k!==r){for(N=[],Z=ke();Z!==r;)N.push(Z),Z=ke();N!==r?(Re=C,Q=be(k),C=Q):(w=C,C=r)}else w=C,C=r}else w=C,C=r}}}return C}function Sfe(){var C,Q,k,N,Z;for(C=w,Q=[],k=ke();k!==r;)Q.push(k),k=ke();if(Q!==r){if(k=[],N=uE(),N!==r)for(;N!==r;)k.push(N),N=uE();else k=r;if(k!==r){for(N=[],Z=ke();Z!==r;)N.push(Z),Z=ke();N!==r?(Re=C,Q=ae(k),C=Q):(w=C,C=r)}else w=C,C=r}else w=C,C=r;return C}function ZM(){var C,Q,k;for(C=w,Q=[],k=ke();k!==r;)Q.push(k),k=ke();if(Q!==r?(k=Wf(),k!==r?(Re=C,Q=Ae(k),C=Q):(w=C,C=r)):(w=C,C=r),C===r){for(C=w,Q=[],k=ke();k!==r;)Q.push(k),k=ke();Q!==r?(k=uE(),k!==r?(Re=C,Q=Ae(k),C=Q):(w=C,C=r)):(w=C,C=r)}return C}function Wf(){var C,Q,k,N,Z;for(C=w,Q=[],k=ke();k!==r;)Q.push(k),k=ke();return Q!==r?(De.test(t.charAt(w))?(k=t.charAt(w),w++):(k=r,we===0&&ve($)),k===r&&(k=null),k!==r?(N=xfe(),N!==r?(Z=uE(),Z!==r?(Re=C,Q=G(k,N,Z),C=Q):(w=C,C=r)):(w=C,C=r)):(w=C,C=r)):(w=C,C=r),C}function xfe(){var C;return t.substr(w,2)===Ce?(C=Ce,w+=2):(C=r,we===0&&ve(ee)),C===r&&(t.substr(w,2)===Ue?(C=Ue,w+=2):(C=r,we===0&&ve(Oe)),C===r&&(t.charCodeAt(w)===62?(C=vt,w++):(C=r,we===0&&ve(dt)),C===r&&(t.substr(w,3)===ri?(C=ri,w+=3):(C=r,we===0&&ve(ii)),C===r&&(t.substr(w,2)===an?(C=an,w+=2):(C=r,we===0&&ve(yr)),C===r&&(t.charCodeAt(w)===60?(C=Ki,w++):(C=r,we===0&&ve(Qi))))))),C}function uE(){var C,Q,k;for(C=w,Q=[],k=ke();k!==r;)Q.push(k),k=ke();return Q!==r?(k=$M(),k!==r?(Re=C,Q=Ae(k),C=Q):(w=C,C=r)):(w=C,C=r),C}function $M(){var C,Q,k;if(C=w,Q=[],k=eO(),k!==r)for(;k!==r;)Q.push(k),k=eO();else Q=r;return Q!==r&&(Re=C,Q=Go(Q)),C=Q,C}function eO(){var C,Q;return C=w,Q=kfe(),Q!==r&&(Re=C,Q=wr(Q)),C=Q,C===r&&(C=w,Q=Pfe(),Q!==r&&(Re=C,Q=wr(Q)),C=Q,C===r&&(C=w,Q=Dfe(),Q!==r&&(Re=C,Q=wr(Q)),C=Q)),C}function kfe(){var C,Q,k,N;return C=w,t.charCodeAt(w)===39?(Q=Ui,w++):(Q=r,we===0&&ve(ws)),Q!==r?(k=Rfe(),k!==r?(t.charCodeAt(w)===39?(N=Ui,w++):(N=r,we===0&&ve(ws)),N!==r?(Re=C,Q=Tf(k),C=Q):(w=C,C=r)):(w=C,C=r)):(w=C,C=r),C}function Pfe(){var C,Q,k,N;if(C=w,t.charCodeAt(w)===34?(Q=Mf,w++):(Q=r,we===0&&ve(Rm)),Q!==r){for(k=[],N=tO();N!==r;)k.push(N),N=tO();k!==r?(t.charCodeAt(w)===34?(N=Mf,w++):(N=r,we===0&&ve(Rm)),N!==r?(Re=C,Q=Fm(k),C=Q):(w=C,C=r)):(w=C,C=r)}else w=C,C=r;return C}function Dfe(){var C,Q,k;if(C=w,Q=[],k=rO(),k!==r)for(;k!==r;)Q.push(k),k=rO();else Q=r;return Q!==r&&(Re=C,Q=Fm(Q)),C=Q,C}function tO(){var C,Q;return C=w,Q=nO(),Q!==r&&(Re=C,Q=Nm(Q)),C=Q,C===r&&(C=w,Q=sO(),Q!==r&&(Re=C,Q=DQ(Q)),C=Q,C===r&&(C=w,Q=ZQ(),Q!==r&&(Re=C,Q=RQ(Q)),C=Q,C===r&&(C=w,Q=Ffe(),Q!==r&&(Re=C,Q=Of(Q)),C=Q))),C}function rO(){var C,Q;return C=w,Q=nO(),Q!==r&&(Re=C,Q=FQ(Q)),C=Q,C===r&&(C=w,Q=sO(),Q!==r&&(Re=C,Q=NQ(Q)),C=Q,C===r&&(C=w,Q=ZQ(),Q!==r&&(Re=C,Q=Lm(Q)),C=Q,C===r&&(C=w,Q=Lfe(),Q!==r&&(Re=C,Q=LQ(Q)),C=Q,C===r&&(C=w,Q=Nfe(),Q!==r&&(Re=C,Q=Of(Q)),C=Q)))),C}function Rfe(){var C,Q,k,N,Z;for(C=w,Q=[],k=gE(),k===r&&(k=fE(),k===r&&(k=w,t.charCodeAt(w)===92?(N=Va,w++):(N=r,we===0&&ve(jo)),N!==r?(Tm.test(t.charAt(w))?(Z=t.charAt(w),w++):(Z=r,we===0&&ve(Mm)),Z!==r?(Re=k,N=te(Z),k=N):(w=k,k=r)):(w=k,k=r),k===r&&(Om.test(t.charAt(w))?(k=t.charAt(w),w++):(k=r,we===0&&ve(Km)))));k!==r;)Q.push(k),k=gE(),k===r&&(k=fE(),k===r&&(k=w,t.charCodeAt(w)===92?(N=Va,w++):(N=r,we===0&&ve(jo)),N!==r?(Tm.test(t.charAt(w))?(Z=t.charAt(w),w++):(Z=r,we===0&&ve(Mm)),Z!==r?(Re=k,N=te(Z),k=N):(w=k,k=r)):(w=k,k=r),k===r&&(Om.test(t.charAt(w))?(k=t.charAt(w),w++):(k=r,we===0&&ve(Km)))));return Q!==r&&(Re=C,Q=il(Q)),C=Q,C}function Ffe(){var C,Q,k,N,Z;if(C=w,Q=[],k=gE(),k===r&&(k=fE(),k===r&&(k=w,t.charCodeAt(w)===92?(N=Va,w++):(N=r,we===0&&ve(jo)),N!==r?(Um.test(t.charAt(w))?(Z=t.charAt(w),w++):(Z=r,we===0&&ve(Hm)),Z!==r?(Re=k,N=te(Z),k=N):(w=k,k=r)):(w=k,k=r),k===r&&(Kf.test(t.charAt(w))?(k=t.charAt(w),w++):(k=r,we===0&&ve(Gm))))),k!==r)for(;k!==r;)Q.push(k),k=gE(),k===r&&(k=fE(),k===r&&(k=w,t.charCodeAt(w)===92?(N=Va,w++):(N=r,we===0&&ve(jo)),N!==r?(Um.test(t.charAt(w))?(Z=t.charAt(w),w++):(Z=r,we===0&&ve(Hm)),Z!==r?(Re=k,N=te(Z),k=N):(w=k,k=r)):(w=k,k=r),k===r&&(Kf.test(t.charAt(w))?(k=t.charAt(w),w++):(k=r,we===0&&ve(Gm)))));else Q=r;return Q!==r&&(Re=C,Q=il(Q)),C=Q,C}function gE(){var C,Q;return C=w,t.substr(w,2)===jm?(Q=jm,w+=2):(Q=r,we===0&&ve(TQ)),Q!==r&&(Re=C,Q=MQ()),C=Q,C===r&&(C=w,t.substr(w,2)===Ym?(Q=Ym,w+=2):(Q=r,we===0&&ve(qm)),Q!==r&&(Re=C,Q=Jm()),C=Q,C===r&&(C=w,t.substr(w,2)===Wm?(Q=Wm,w+=2):(Q=r,we===0&&ve(zm)),Q!==r&&(Re=C,Q=Vm()),C=Q,C===r&&(C=w,t.substr(w,2)===Uf?(Q=Uf,w+=2):(Q=r,we===0&&ve(OQ)),Q!==r&&(Re=C,Q=KQ()),C=Q,C===r&&(C=w,t.substr(w,2)===_m?(Q=_m,w+=2):(Q=r,we===0&&ve(UQ)),Q!==r&&(Re=C,Q=HQ()),C=Q,C===r&&(C=w,t.substr(w,2)===O?(Q=O,w+=2):(Q=r,we===0&&ve(ht)),Q!==r&&(Re=C,Q=Vc()),C=Q,C===r&&(C=w,t.substr(w,2)===xn?(Q=xn,w+=2):(Q=r,we===0&&ve(Hf)),Q!==r&&(Re=C,Q=Ye()),C=Q,C===r&&(C=w,t.substr(w,2)===nl?(Q=nl,w+=2):(Q=r,we===0&&ve(Xm)),Q!==r&&(Re=C,Q=MM()),C=Q,C===r&&(C=w,t.substr(w,2)===GQ?(Q=GQ,w+=2):(Q=r,we===0&&ve(OM)),Q!==r&&(Re=C,Q=fr()),C=Q)))))))),C}function fE(){var C,Q,k,N,Z,Ee,ot,ut,Tr,ni,Yn,$Q;return C=w,t.substr(w,2)===Bs?(Q=Bs,w+=2):(Q=r,we===0&&ve(jQ)),Q!==r?(k=w,N=w,Z=An(),Z!==r?(Ee=An(),Ee!==r?(Z=[Z,Ee],N=Z):(w=N,N=r)):(w=N,N=r),N!==r?k=t.substring(k,w):k=N,k!==r?(Re=C,Q=Zm(k),C=Q):(w=C,C=r)):(w=C,C=r),C===r&&(C=w,t.substr(w,2)===Yo?(Q=Yo,w+=2):(Q=r,we===0&&ve($m)),Q!==r?(k=w,N=w,Z=An(),Z!==r?(Ee=An(),Ee!==r?(ot=An(),ot!==r?(ut=An(),ut!==r?(Z=[Z,Ee,ot,ut],N=Z):(w=N,N=r)):(w=N,N=r)):(w=N,N=r)):(w=N,N=r),N!==r?k=t.substring(k,w):k=N,k!==r?(Re=C,Q=Zm(k),C=Q):(w=C,C=r)):(w=C,C=r),C===r&&(C=w,t.substr(w,2)===_a?(Q=_a,w+=2):(Q=r,we===0&&ve(et)),Q!==r?(k=w,N=w,Z=An(),Z!==r?(Ee=An(),Ee!==r?(ot=An(),ot!==r?(ut=An(),ut!==r?(Tr=An(),Tr!==r?(ni=An(),ni!==r?(Yn=An(),Yn!==r?($Q=An(),$Q!==r?(Z=[Z,Ee,ot,ut,Tr,ni,Yn,$Q],N=Z):(w=N,N=r)):(w=N,N=r)):(w=N,N=r)):(w=N,N=r)):(w=N,N=r)):(w=N,N=r)):(w=N,N=r)):(w=N,N=r),N!==r?k=t.substring(k,w):k=N,k!==r?(Re=C,Q=YQ(k),C=Q):(w=C,C=r)):(w=C,C=r))),C}function An(){var C;return eE.test(t.charAt(w))?(C=t.charAt(w),w++):(C=r,we===0&&ve(tE)),C}function Nfe(){var C,Q,k,N,Z;if(C=w,Q=[],k=w,t.charCodeAt(w)===92?(N=Va,w++):(N=r,we===0&&ve(jo)),N!==r?(t.length>w?(Z=t.charAt(w),w++):(Z=r,we===0&&ve(Xa)),Z!==r?(Re=k,N=te(Z),k=N):(w=k,k=r)):(w=k,k=r),k===r&&(k=w,N=w,we++,Z=aO(),we--,Z===r?N=void 0:(w=N,N=r),N!==r?(t.length>w?(Z=t.charAt(w),w++):(Z=r,we===0&&ve(Xa)),Z!==r?(Re=k,N=te(Z),k=N):(w=k,k=r)):(w=k,k=r)),k!==r)for(;k!==r;)Q.push(k),k=w,t.charCodeAt(w)===92?(N=Va,w++):(N=r,we===0&&ve(jo)),N!==r?(t.length>w?(Z=t.charAt(w),w++):(Z=r,we===0&&ve(Xa)),Z!==r?(Re=k,N=te(Z),k=N):(w=k,k=r)):(w=k,k=r),k===r&&(k=w,N=w,we++,Z=aO(),we--,Z===r?N=void 0:(w=N,N=r),N!==r?(t.length>w?(Z=t.charAt(w),w++):(Z=r,we===0&&ve(Xa)),Z!==r?(Re=k,N=te(Z),k=N):(w=k,k=r)):(w=k,k=r));else Q=r;return Q!==r&&(Re=C,Q=il(Q)),C=Q,C}function _Q(){var C,Q,k,N,Z,Ee;if(C=w,t.charCodeAt(w)===45?(Q=sl,w++):(Q=r,we===0&&ve(ol)),Q===r&&(t.charCodeAt(w)===43?(Q=al,w++):(Q=r,we===0&&ve(qo))),Q===r&&(Q=null),Q!==r){if(k=[],De.test(t.charAt(w))?(N=t.charAt(w),w++):(N=r,we===0&&ve($)),N!==r)for(;N!==r;)k.push(N),De.test(t.charAt(w))?(N=t.charAt(w),w++):(N=r,we===0&&ve($));else k=r;if(k!==r)if(t.charCodeAt(w)===46?(N=Al,w++):(N=r,we===0&&ve(qQ)),N!==r){if(Z=[],De.test(t.charAt(w))?(Ee=t.charAt(w),w++):(Ee=r,we===0&&ve($)),Ee!==r)for(;Ee!==r;)Z.push(Ee),De.test(t.charAt(w))?(Ee=t.charAt(w),w++):(Ee=r,we===0&&ve($));else Z=r;Z!==r?(Re=C,Q=rE(Q,k,Z),C=Q):(w=C,C=r)}else w=C,C=r;else w=C,C=r}else w=C,C=r;if(C===r){if(C=w,t.charCodeAt(w)===45?(Q=sl,w++):(Q=r,we===0&&ve(ol)),Q===r&&(t.charCodeAt(w)===43?(Q=al,w++):(Q=r,we===0&&ve(qo))),Q===r&&(Q=null),Q!==r){if(k=[],De.test(t.charAt(w))?(N=t.charAt(w),w++):(N=r,we===0&&ve($)),N!==r)for(;N!==r;)k.push(N),De.test(t.charAt(w))?(N=t.charAt(w),w++):(N=r,we===0&&ve($));else k=r;k!==r?(Re=C,Q=iE(Q,k),C=Q):(w=C,C=r)}else w=C,C=r;if(C===r&&(C=w,Q=ZQ(),Q!==r&&(Re=C,Q=JQ(Q)),C=Q,C===r&&(C=w,Q=zf(),Q!==r&&(Re=C,Q=ll(Q)),C=Q,C===r)))if(C=w,t.charCodeAt(w)===40?(Q=W,w++):(Q=r,we===0&&ve(X)),Q!==r){for(k=[],N=ke();N!==r;)k.push(N),N=ke();if(k!==r)if(N=iO(),N!==r){for(Z=[],Ee=ke();Ee!==r;)Z.push(Ee),Ee=ke();Z!==r?(t.charCodeAt(w)===41?(Ee=F,w++):(Ee=r,we===0&&ve(D)),Ee!==r?(Re=C,Q=WQ(N),C=Q):(w=C,C=r)):(w=C,C=r)}else w=C,C=r;else w=C,C=r}else w=C,C=r}return C}function XQ(){var C,Q,k,N,Z,Ee,ot,ut;if(C=w,Q=_Q(),Q!==r){for(k=[],N=w,Z=[],Ee=ke();Ee!==r;)Z.push(Ee),Ee=ke();if(Z!==r)if(t.charCodeAt(w)===42?(Ee=nE,w++):(Ee=r,we===0&&ve(Gf)),Ee===r&&(t.charCodeAt(w)===47?(Ee=_c,w++):(Ee=r,we===0&&ve(jf))),Ee!==r){for(ot=[],ut=ke();ut!==r;)ot.push(ut),ut=ke();ot!==r?(ut=_Q(),ut!==r?(Re=N,Z=sE(Q,Ee,ut),N=Z):(w=N,N=r)):(w=N,N=r)}else w=N,N=r;else w=N,N=r;for(;N!==r;){for(k.push(N),N=w,Z=[],Ee=ke();Ee!==r;)Z.push(Ee),Ee=ke();if(Z!==r)if(t.charCodeAt(w)===42?(Ee=nE,w++):(Ee=r,we===0&&ve(Gf)),Ee===r&&(t.charCodeAt(w)===47?(Ee=_c,w++):(Ee=r,we===0&&ve(jf))),Ee!==r){for(ot=[],ut=ke();ut!==r;)ot.push(ut),ut=ke();ot!==r?(ut=_Q(),ut!==r?(Re=N,Z=sE(Q,Ee,ut),N=Z):(w=N,N=r)):(w=N,N=r)}else w=N,N=r;else w=N,N=r}k!==r?(Re=C,Q=cl(Q,k),C=Q):(w=C,C=r)}else w=C,C=r;return C}function iO(){var C,Q,k,N,Z,Ee,ot,ut;if(C=w,Q=XQ(),Q!==r){for(k=[],N=w,Z=[],Ee=ke();Ee!==r;)Z.push(Ee),Ee=ke();if(Z!==r)if(t.charCodeAt(w)===43?(Ee=al,w++):(Ee=r,we===0&&ve(qo)),Ee===r&&(t.charCodeAt(w)===45?(Ee=sl,w++):(Ee=r,we===0&&ve(ol))),Ee!==r){for(ot=[],ut=ke();ut!==r;)ot.push(ut),ut=ke();ot!==r?(ut=XQ(),ut!==r?(Re=N,Z=oE(Q,Ee,ut),N=Z):(w=N,N=r)):(w=N,N=r)}else w=N,N=r;else w=N,N=r;for(;N!==r;){for(k.push(N),N=w,Z=[],Ee=ke();Ee!==r;)Z.push(Ee),Ee=ke();if(Z!==r)if(t.charCodeAt(w)===43?(Ee=al,w++):(Ee=r,we===0&&ve(qo)),Ee===r&&(t.charCodeAt(w)===45?(Ee=sl,w++):(Ee=r,we===0&&ve(ol))),Ee!==r){for(ot=[],ut=ke();ut!==r;)ot.push(ut),ut=ke();ot!==r?(ut=XQ(),ut!==r?(Re=N,Z=oE(Q,Ee,ut),N=Z):(w=N,N=r)):(w=N,N=r)}else w=N,N=r;else w=N,N=r}k!==r?(Re=C,Q=cl(Q,k),C=Q):(w=C,C=r)}else w=C,C=r;return C}function nO(){var C,Q,k,N,Z,Ee;if(C=w,t.substr(w,3)===Yf?(Q=Yf,w+=3):(Q=r,we===0&&ve(Xc)),Q!==r){for(k=[],N=ke();N!==r;)k.push(N),N=ke();if(k!==r)if(N=iO(),N!==r){for(Z=[],Ee=ke();Ee!==r;)Z.push(Ee),Ee=ke();Z!==r?(t.substr(w,2)===xr?(Ee=xr,w+=2):(Ee=r,we===0&&ve(KM)),Ee!==r?(Re=C,Q=Jo(N),C=Q):(w=C,C=r)):(w=C,C=r)}else w=C,C=r;else w=C,C=r}else w=C,C=r;return C}function sO(){var C,Q,k,N;return C=w,t.substr(w,2)===Zs?(Q=Zs,w+=2):(Q=r,we===0&&ve(aE)),Q!==r?(k=Jf(),k!==r?(t.charCodeAt(w)===41?(N=F,w++):(N=r,we===0&&ve(D)),N!==r?(Re=C,Q=Zc(k),C=Q):(w=C,C=r)):(w=C,C=r)):(w=C,C=r),C}function ZQ(){var C,Q,k,N,Z,Ee;return C=w,t.substr(w,2)===x?(Q=x,w+=2):(Q=r,we===0&&ve(U)),Q!==r?(k=zf(),k!==r?(t.substr(w,2)===le?(N=le,w+=2):(N=r,we===0&&ve(xe)),N!==r?(Z=Sfe(),Z!==r?(t.charCodeAt(w)===125?(Ee=Pe,w++):(Ee=r,we===0&&ve(qe)),Ee!==r?(Re=C,Q=Qe(k,Z),C=Q):(w=C,C=r)):(w=C,C=r)):(w=C,C=r)):(w=C,C=r)):(w=C,C=r),C===r&&(C=w,t.substr(w,2)===x?(Q=x,w+=2):(Q=r,we===0&&ve(U)),Q!==r?(k=zf(),k!==r?(t.substr(w,3)===Ge?(N=Ge,w+=3):(N=r,we===0&&ve(ct)),N!==r?(Re=C,Q=sr(k),C=Q):(w=C,C=r)):(w=C,C=r)):(w=C,C=r),C===r&&(C=w,t.substr(w,2)===x?(Q=x,w+=2):(Q=r,we===0&&ve(U)),Q!==r?(k=zf(),k!==r?(t.charCodeAt(w)===125?(N=Pe,w++):(N=r,we===0&&ve(qe)),N!==r?(Re=C,Q=Wo(k),C=Q):(w=C,C=r)):(w=C,C=r)):(w=C,C=r),C===r&&(C=w,t.charCodeAt(w)===36?(Q=Afe,w++):(Q=r,we===0&&ve(lfe)),Q!==r?(k=zf(),k!==r?(Re=C,Q=Wo(k),C=Q):(w=C,C=r)):(w=C,C=r)))),C}function Lfe(){var C,Q,k;return C=w,Q=Tfe(),Q!==r?(Re=w,k=cfe(Q),k?k=void 0:k=r,k!==r?(Re=C,Q=ufe(Q),C=Q):(w=C,C=r)):(w=C,C=r),C}function Tfe(){var C,Q,k,N,Z;if(C=w,Q=[],k=w,N=w,we++,Z=AO(),we--,Z===r?N=void 0:(w=N,N=r),N!==r?(t.length>w?(Z=t.charAt(w),w++):(Z=r,we===0&&ve(Xa)),Z!==r?(Re=k,N=te(Z),k=N):(w=k,k=r)):(w=k,k=r),k!==r)for(;k!==r;)Q.push(k),k=w,N=w,we++,Z=AO(),we--,Z===r?N=void 0:(w=N,N=r),N!==r?(t.length>w?(Z=t.charAt(w),w++):(Z=r,we===0&&ve(Xa)),Z!==r?(Re=k,N=te(Z),k=N):(w=k,k=r)):(w=k,k=r);else Q=r;return Q!==r&&(Re=C,Q=il(Q)),C=Q,C}function oO(){var C,Q,k;if(C=w,Q=[],UM.test(t.charAt(w))?(k=t.charAt(w),w++):(k=r,we===0&&ve(HM)),k!==r)for(;k!==r;)Q.push(k),UM.test(t.charAt(w))?(k=t.charAt(w),w++):(k=r,we===0&&ve(HM));else Q=r;return Q!==r&&(Re=C,Q=GM()),C=Q,C}function zf(){var C,Q,k;if(C=w,Q=[],jM.test(t.charAt(w))?(k=t.charAt(w),w++):(k=r,we===0&&ve(YM)),k!==r)for(;k!==r;)Q.push(k),jM.test(t.charAt(w))?(k=t.charAt(w),w++):(k=r,we===0&&ve(YM));else Q=r;return Q!==r&&(Re=C,Q=GM()),C=Q,C}function aO(){var C;return gfe.test(t.charAt(w))?(C=t.charAt(w),w++):(C=r,we===0&&ve(ffe)),C}function AO(){var C;return hfe.test(t.charAt(w))?(C=t.charAt(w),w++):(C=r,we===0&&ve(pfe)),C}function ke(){var C,Q;if(C=[],qM.test(t.charAt(w))?(Q=t.charAt(w),w++):(Q=r,we===0&&ve(JM)),Q!==r)for(;Q!==r;)C.push(Q),qM.test(t.charAt(w))?(Q=t.charAt(w),w++):(Q=r,we===0&&ve(JM));else C=r;return C}if(lE=n(),lE!==r&&w===t.length)return lE;throw lE!==r&&w{"use strict";function Eke(t,e){function r(){this.constructor=t}r.prototype=e.prototype,t.prototype=new r}function Xl(t,e,r,i){this.message=t,this.expected=e,this.found=r,this.location=i,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,Xl)}Eke(Xl,Error);Xl.buildMessage=function(t,e){var r={literal:function(c){return'"'+n(c.text)+'"'},class:function(c){var u="",g;for(g=0;g0){for(g=1,f=1;gH&&(H=B,L=[]),L.push($))}function qe($,G){return new Xl($,null,null,G)}function re($,G,Ce){return new Xl(Xl.buildMessage($,G),$,G,Ce)}function se(){var $,G,Ce,ee;return $=B,G=be(),G!==r?(t.charCodeAt(B)===47?(Ce=s,B++):(Ce=r,K===0&&Pe(o)),Ce!==r?(ee=be(),ee!==r?(b=$,G=a(G,ee),$=G):(B=$,$=r)):(B=$,$=r)):(B=$,$=r),$===r&&($=B,G=be(),G!==r&&(b=$,G=l(G)),$=G),$}function be(){var $,G,Ce,ee;return $=B,G=ae(),G!==r?(t.charCodeAt(B)===64?(Ce=c,B++):(Ce=r,K===0&&Pe(u)),Ce!==r?(ee=De(),ee!==r?(b=$,G=g(G,ee),$=G):(B=$,$=r)):(B=$,$=r)):(B=$,$=r),$===r&&($=B,G=ae(),G!==r&&(b=$,G=f(G)),$=G),$}function ae(){var $,G,Ce,ee,Ue;return $=B,t.charCodeAt(B)===64?(G=c,B++):(G=r,K===0&&Pe(u)),G!==r?(Ce=Ae(),Ce!==r?(t.charCodeAt(B)===47?(ee=s,B++):(ee=r,K===0&&Pe(o)),ee!==r?(Ue=Ae(),Ue!==r?(b=$,G=h(),$=G):(B=$,$=r)):(B=$,$=r)):(B=$,$=r)):(B=$,$=r),$===r&&($=B,G=Ae(),G!==r&&(b=$,G=h()),$=G),$}function Ae(){var $,G,Ce;if($=B,G=[],p.test(t.charAt(B))?(Ce=t.charAt(B),B++):(Ce=r,K===0&&Pe(d)),Ce!==r)for(;Ce!==r;)G.push(Ce),p.test(t.charAt(B))?(Ce=t.charAt(B),B++):(Ce=r,K===0&&Pe(d));else G=r;return G!==r&&(b=$,G=h()),$=G,$}function De(){var $,G,Ce;if($=B,G=[],m.test(t.charAt(B))?(Ce=t.charAt(B),B++):(Ce=r,K===0&&Pe(I)),Ce!==r)for(;Ce!==r;)G.push(Ce),m.test(t.charAt(B))?(Ce=t.charAt(B),B++):(Ce=r,K===0&&Pe(I));else G=r;return G!==r&&(b=$,G=h()),$=G,$}if(J=n(),J!==r&&B===t.length)return J;throw J!==r&&B{"use strict";function F4(t){return typeof t=="undefined"||t===null}function yke(t){return typeof t=="object"&&t!==null}function wke(t){return Array.isArray(t)?t:F4(t)?[]:[t]}function Bke(t,e){var r,i,n,s;if(e)for(s=Object.keys(e),r=0,i=s.length;r{"use strict";function Lp(t,e){Error.call(this),this.name="YAMLException",this.reason=t,this.mark=e,this.message=(this.reason||"(unknown reason)")+(this.mark?" "+this.mark.toString():""),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack||""}Lp.prototype=Object.create(Error.prototype);Lp.prototype.constructor=Lp;Lp.prototype.toString=function(e){var r=this.name+": ";return r+=this.reason||"(unknown reason)",!e&&this.mark&&(r+=" "+this.mark.toString()),r};N4.exports=Lp});var M4=E((Vot,L4)=>{"use strict";var T4=$l();function kP(t,e,r,i,n){this.name=t,this.buffer=e,this.position=r,this.line=i,this.column=n}kP.prototype.getSnippet=function(e,r){var i,n,s,o,a;if(!this.buffer)return null;for(e=e||4,r=r||75,i="",n=this.position;n>0&&`\0\r -\x85\u2028\u2029`.indexOf(this.buffer.charAt(n-1))===-1;)if(n-=1,this.position-n>r/2-1){i=" ... ",n+=5;break}for(s="",o=this.position;or/2-1){s=" ... ",o-=5;break}return a=this.buffer.slice(n,o),T4.repeat(" ",e)+i+a+s+` -`+T4.repeat(" ",e+this.position-n+i.length)+"^"};kP.prototype.toString=function(e){var r,i="";return this.name&&(i+='in "'+this.name+'" '),i+="at line "+(this.line+1)+", column "+(this.column+1),e||(r=this.getSnippet(),r&&(i+=`: -`+r)),i};L4.exports=kP});var Xr=E((_ot,O4)=>{"use strict";var K4=ng(),vke=["kind","resolve","construct","instanceOf","predicate","represent","defaultStyle","styleAliases"],Ske=["scalar","sequence","mapping"];function xke(t){var e={};return t!==null&&Object.keys(t).forEach(function(r){t[r].forEach(function(i){e[String(i)]=r})}),e}function kke(t,e){if(e=e||{},Object.keys(e).forEach(function(r){if(vke.indexOf(r)===-1)throw new K4('Unknown option "'+r+'" is met in definition of "'+t+'" YAML type.')}),this.tag=t,this.kind=e.kind||null,this.resolve=e.resolve||function(){return!0},this.construct=e.construct||function(r){return r},this.instanceOf=e.instanceOf||null,this.predicate=e.predicate||null,this.represent=e.represent||null,this.defaultStyle=e.defaultStyle||null,this.styleAliases=xke(e.styleAliases||null),Ske.indexOf(this.kind)===-1)throw new K4('Unknown kind "'+this.kind+'" is specified for "'+t+'" YAML type.')}O4.exports=kke});var ec=E((Xot,U4)=>{"use strict";var H4=$l(),hw=ng(),Pke=Xr();function PP(t,e,r){var i=[];return t.include.forEach(function(n){r=PP(n,e,r)}),t[e].forEach(function(n){r.forEach(function(s,o){s.tag===n.tag&&s.kind===n.kind&&i.push(o)}),r.push(n)}),r.filter(function(n,s){return i.indexOf(s)===-1})}function Dke(){var t={scalar:{},sequence:{},mapping:{},fallback:{}},e,r;function i(n){t[n.kind][n.tag]=t.fallback[n.tag]=n}for(e=0,r=arguments.length;e{"use strict";var Rke=Xr();G4.exports=new Rke("tag:yaml.org,2002:str",{kind:"scalar",construct:function(t){return t!==null?t:""}})});var q4=E(($ot,Y4)=>{"use strict";var Fke=Xr();Y4.exports=new Fke("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(t){return t!==null?t:[]}})});var W4=E((eat,J4)=>{"use strict";var Nke=Xr();J4.exports=new Nke("tag:yaml.org,2002:map",{kind:"mapping",construct:function(t){return t!==null?t:{}}})});var pw=E((tat,z4)=>{"use strict";var Lke=ec();z4.exports=new Lke({explicit:[j4(),q4(),W4()]})});var _4=E((rat,V4)=>{"use strict";var Tke=Xr();function Mke(t){if(t===null)return!0;var e=t.length;return e===1&&t==="~"||e===4&&(t==="null"||t==="Null"||t==="NULL")}function Oke(){return null}function Kke(t){return t===null}V4.exports=new Tke("tag:yaml.org,2002:null",{kind:"scalar",resolve:Mke,construct:Oke,predicate:Kke,represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"}},defaultStyle:"lowercase"})});var Z4=E((iat,X4)=>{"use strict";var Uke=Xr();function Hke(t){if(t===null)return!1;var e=t.length;return e===4&&(t==="true"||t==="True"||t==="TRUE")||e===5&&(t==="false"||t==="False"||t==="FALSE")}function Gke(t){return t==="true"||t==="True"||t==="TRUE"}function jke(t){return Object.prototype.toString.call(t)==="[object Boolean]"}X4.exports=new Uke("tag:yaml.org,2002:bool",{kind:"scalar",resolve:Hke,construct:Gke,predicate:jke,represent:{lowercase:function(t){return t?"true":"false"},uppercase:function(t){return t?"TRUE":"FALSE"},camelcase:function(t){return t?"True":"False"}},defaultStyle:"lowercase"})});var ez=E((nat,$4)=>{"use strict";var Yke=$l(),qke=Xr();function Jke(t){return 48<=t&&t<=57||65<=t&&t<=70||97<=t&&t<=102}function Wke(t){return 48<=t&&t<=55}function zke(t){return 48<=t&&t<=57}function Vke(t){if(t===null)return!1;var e=t.length,r=0,i=!1,n;if(!e)return!1;if(n=t[r],(n==="-"||n==="+")&&(n=t[++r]),n==="0"){if(r+1===e)return!0;if(n=t[++r],n==="b"){for(r++;r=0?"0b"+t.toString(2):"-0b"+t.toString(2).slice(1)},octal:function(t){return t>=0?"0"+t.toString(8):"-0"+t.toString(8).slice(1)},decimal:function(t){return t.toString(10)},hexadecimal:function(t){return t>=0?"0x"+t.toString(16).toUpperCase():"-0x"+t.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}})});var iz=E((sat,tz)=>{"use strict";var rz=$l(),Zke=Xr(),$ke=new RegExp("^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");function ePe(t){return!(t===null||!$ke.test(t)||t[t.length-1]==="_")}function tPe(t){var e,r,i,n;return e=t.replace(/_/g,"").toLowerCase(),r=e[0]==="-"?-1:1,n=[],"+-".indexOf(e[0])>=0&&(e=e.slice(1)),e===".inf"?r===1?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:e===".nan"?NaN:e.indexOf(":")>=0?(e.split(":").forEach(function(s){n.unshift(parseFloat(s,10))}),e=0,i=1,n.forEach(function(s){e+=s*i,i*=60}),r*e):r*parseFloat(e,10)}var rPe=/^[-+]?[0-9]+e/;function iPe(t,e){var r;if(isNaN(t))switch(e){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===t)switch(e){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===t)switch(e){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(rz.isNegativeZero(t))return"-0.0";return r=t.toString(10),rPe.test(r)?r.replace("e",".e"):r}function nPe(t){return Object.prototype.toString.call(t)==="[object Number]"&&(t%1!=0||rz.isNegativeZero(t))}tz.exports=new Zke("tag:yaml.org,2002:float",{kind:"scalar",resolve:ePe,construct:tPe,predicate:nPe,represent:iPe,defaultStyle:"lowercase"})});var DP=E((oat,nz)=>{"use strict";var sPe=ec();nz.exports=new sPe({include:[pw()],implicit:[_4(),Z4(),ez(),iz()]})});var RP=E((aat,sz)=>{"use strict";var oPe=ec();sz.exports=new oPe({include:[DP()]})});var lz=E((Aat,oz)=>{"use strict";var aPe=Xr(),az=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),Az=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");function APe(t){return t===null?!1:az.exec(t)!==null||Az.exec(t)!==null}function lPe(t){var e,r,i,n,s,o,a,l=0,c=null,u,g,f;if(e=az.exec(t),e===null&&(e=Az.exec(t)),e===null)throw new Error("Date resolve error");if(r=+e[1],i=+e[2]-1,n=+e[3],!e[4])return new Date(Date.UTC(r,i,n));if(s=+e[4],o=+e[5],a=+e[6],e[7]){for(l=e[7].slice(0,3);l.length<3;)l+="0";l=+l}return e[9]&&(u=+e[10],g=+(e[11]||0),c=(u*60+g)*6e4,e[9]==="-"&&(c=-c)),f=new Date(Date.UTC(r,i,n,s,o,a,l)),c&&f.setTime(f.getTime()-c),f}function cPe(t){return t.toISOString()}oz.exports=new aPe("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:APe,construct:lPe,instanceOf:Date,represent:cPe})});var uz=E((lat,cz)=>{"use strict";var uPe=Xr();function gPe(t){return t==="<<"||t===null}cz.exports=new uPe("tag:yaml.org,2002:merge",{kind:"scalar",resolve:gPe})});var hz=E((cat,gz)=>{"use strict";var tc;try{fz=require,tc=fz("buffer").Buffer}catch(t){}var fz,fPe=Xr(),FP=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/= -\r`;function hPe(t){if(t===null)return!1;var e,r,i=0,n=t.length,s=FP;for(r=0;r64)){if(e<0)return!1;i+=6}return i%8==0}function pPe(t){var e,r,i=t.replace(/[\r\n=]/g,""),n=i.length,s=FP,o=0,a=[];for(e=0;e>16&255),a.push(o>>8&255),a.push(o&255)),o=o<<6|s.indexOf(i.charAt(e));return r=n%4*6,r===0?(a.push(o>>16&255),a.push(o>>8&255),a.push(o&255)):r===18?(a.push(o>>10&255),a.push(o>>2&255)):r===12&&a.push(o>>4&255),tc?tc.from?tc.from(a):new tc(a):a}function dPe(t){var e="",r=0,i,n,s=t.length,o=FP;for(i=0;i>18&63],e+=o[r>>12&63],e+=o[r>>6&63],e+=o[r&63]),r=(r<<8)+t[i];return n=s%3,n===0?(e+=o[r>>18&63],e+=o[r>>12&63],e+=o[r>>6&63],e+=o[r&63]):n===2?(e+=o[r>>10&63],e+=o[r>>4&63],e+=o[r<<2&63],e+=o[64]):n===1&&(e+=o[r>>2&63],e+=o[r<<4&63],e+=o[64],e+=o[64]),e}function CPe(t){return tc&&tc.isBuffer(t)}gz.exports=new fPe("tag:yaml.org,2002:binary",{kind:"scalar",resolve:hPe,construct:pPe,predicate:CPe,represent:dPe})});var dz=E((uat,pz)=>{"use strict";var mPe=Xr(),EPe=Object.prototype.hasOwnProperty,IPe=Object.prototype.toString;function yPe(t){if(t===null)return!0;var e=[],r,i,n,s,o,a=t;for(r=0,i=a.length;r{"use strict";var BPe=Xr(),QPe=Object.prototype.toString;function bPe(t){if(t===null)return!0;var e,r,i,n,s,o=t;for(s=new Array(o.length),e=0,r=o.length;e{"use strict";var SPe=Xr(),xPe=Object.prototype.hasOwnProperty;function kPe(t){if(t===null)return!0;var e,r=t;for(e in r)if(xPe.call(r,e)&&r[e]!==null)return!1;return!0}function PPe(t){return t!==null?t:{}}Ez.exports=new SPe("tag:yaml.org,2002:set",{kind:"mapping",resolve:kPe,construct:PPe})});var og=E((hat,yz)=>{"use strict";var DPe=ec();yz.exports=new DPe({include:[RP()],implicit:[lz(),uz()],explicit:[hz(),dz(),mz(),Iz()]})});var Bz=E((pat,wz)=>{"use strict";var RPe=Xr();function FPe(){return!0}function NPe(){}function LPe(){return""}function TPe(t){return typeof t=="undefined"}wz.exports=new RPe("tag:yaml.org,2002:js/undefined",{kind:"scalar",resolve:FPe,construct:NPe,predicate:TPe,represent:LPe})});var bz=E((dat,Qz)=>{"use strict";var MPe=Xr();function OPe(t){if(t===null||t.length===0)return!1;var e=t,r=/\/([gim]*)$/.exec(t),i="";return!(e[0]==="/"&&(r&&(i=r[1]),i.length>3||e[e.length-i.length-1]!=="/"))}function KPe(t){var e=t,r=/\/([gim]*)$/.exec(t),i="";return e[0]==="/"&&(r&&(i=r[1]),e=e.slice(1,e.length-i.length-1)),new RegExp(e,i)}function UPe(t){var e="/"+t.source+"/";return t.global&&(e+="g"),t.multiline&&(e+="m"),t.ignoreCase&&(e+="i"),e}function HPe(t){return Object.prototype.toString.call(t)==="[object RegExp]"}Qz.exports=new MPe("tag:yaml.org,2002:js/regexp",{kind:"scalar",resolve:OPe,construct:KPe,predicate:HPe,represent:UPe})});var xz=E((Cat,vz)=>{"use strict";var dw;try{Sz=require,dw=Sz("esprima")}catch(t){typeof window!="undefined"&&(dw=window.esprima)}var Sz,GPe=Xr();function jPe(t){if(t===null)return!1;try{var e="("+t+")",r=dw.parse(e,{range:!0});return!(r.type!=="Program"||r.body.length!==1||r.body[0].type!=="ExpressionStatement"||r.body[0].expression.type!=="ArrowFunctionExpression"&&r.body[0].expression.type!=="FunctionExpression")}catch(i){return!1}}function YPe(t){var e="("+t+")",r=dw.parse(e,{range:!0}),i=[],n;if(r.type!=="Program"||r.body.length!==1||r.body[0].type!=="ExpressionStatement"||r.body[0].expression.type!=="ArrowFunctionExpression"&&r.body[0].expression.type!=="FunctionExpression")throw new Error("Failed to resolve function");return r.body[0].expression.params.forEach(function(s){i.push(s.name)}),n=r.body[0].expression.body.range,r.body[0].expression.body.type==="BlockStatement"?new Function(i,e.slice(n[0]+1,n[1]-1)):new Function(i,"return "+e.slice(n[0],n[1]))}function qPe(t){return t.toString()}function JPe(t){return Object.prototype.toString.call(t)==="[object Function]"}vz.exports=new GPe("tag:yaml.org,2002:js/function",{kind:"scalar",resolve:jPe,construct:YPe,predicate:JPe,represent:qPe})});var Tp=E((mat,kz)=>{"use strict";var Pz=ec();kz.exports=Pz.DEFAULT=new Pz({include:[og()],explicit:[Bz(),bz(),xz()]})});var Vz=E((Eat,Mp)=>{"use strict";var Ba=$l(),Dz=ng(),WPe=M4(),Rz=og(),zPe=Tp(),QA=Object.prototype.hasOwnProperty,Cw=1,Fz=2,Nz=3,mw=4,NP=1,VPe=2,Lz=3,_Pe=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,XPe=/[\x85\u2028\u2029]/,ZPe=/[,\[\]\{\}]/,Tz=/^(?:!|!!|![a-z\-]+!)$/i,Mz=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function Oz(t){return Object.prototype.toString.call(t)}function wo(t){return t===10||t===13}function rc(t){return t===9||t===32}function yn(t){return t===9||t===32||t===10||t===13}function ag(t){return t===44||t===91||t===93||t===123||t===125}function $Pe(t){var e;return 48<=t&&t<=57?t-48:(e=t|32,97<=e&&e<=102?e-97+10:-1)}function eDe(t){return t===120?2:t===117?4:t===85?8:0}function tDe(t){return 48<=t&&t<=57?t-48:-1}function Kz(t){return t===48?"\0":t===97?"\x07":t===98?"\b":t===116||t===9?" ":t===110?` -`:t===118?"\v":t===102?"\f":t===114?"\r":t===101?"":t===32?" ":t===34?'"':t===47?"/":t===92?"\\":t===78?"\x85":t===95?"\xA0":t===76?"\u2028":t===80?"\u2029":""}function rDe(t){return t<=65535?String.fromCharCode(t):String.fromCharCode((t-65536>>10)+55296,(t-65536&1023)+56320)}var Uz=new Array(256),Hz=new Array(256);for(var Ag=0;Ag<256;Ag++)Uz[Ag]=Kz(Ag)?1:0,Hz[Ag]=Kz(Ag);function iDe(t,e){this.input=t,this.filename=e.filename||null,this.schema=e.schema||zPe,this.onWarning=e.onWarning||null,this.legacy=e.legacy||!1,this.json=e.json||!1,this.listener=e.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=t.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.documents=[]}function Gz(t,e){return new Dz(e,new WPe(t.filename,t.input,t.position,t.line,t.position-t.lineStart))}function st(t,e){throw Gz(t,e)}function Ew(t,e){t.onWarning&&t.onWarning.call(null,Gz(t,e))}var jz={YAML:function(e,r,i){var n,s,o;e.version!==null&&st(e,"duplication of %YAML directive"),i.length!==1&&st(e,"YAML directive accepts exactly one argument"),n=/^([0-9]+)\.([0-9]+)$/.exec(i[0]),n===null&&st(e,"ill-formed argument of the YAML directive"),s=parseInt(n[1],10),o=parseInt(n[2],10),s!==1&&st(e,"unacceptable YAML version of the document"),e.version=i[0],e.checkLineBreaks=o<2,o!==1&&o!==2&&Ew(e,"unsupported YAML version of the document")},TAG:function(e,r,i){var n,s;i.length!==2&&st(e,"TAG directive accepts exactly two arguments"),n=i[0],s=i[1],Tz.test(n)||st(e,"ill-formed tag handle (first argument) of the TAG directive"),QA.call(e.tagMap,n)&&st(e,'there is a previously declared suffix for "'+n+'" tag handle'),Mz.test(s)||st(e,"ill-formed tag prefix (second argument) of the TAG directive"),e.tagMap[n]=s}};function bA(t,e,r,i){var n,s,o,a;if(e1&&(t.result+=Ba.repeat(` -`,e-1))}function nDe(t,e,r){var i,n,s,o,a,l,c,u,g=t.kind,f=t.result,h;if(h=t.input.charCodeAt(t.position),yn(h)||ag(h)||h===35||h===38||h===42||h===33||h===124||h===62||h===39||h===34||h===37||h===64||h===96||(h===63||h===45)&&(n=t.input.charCodeAt(t.position+1),yn(n)||r&&ag(n)))return!1;for(t.kind="scalar",t.result="",s=o=t.position,a=!1;h!==0;){if(h===58){if(n=t.input.charCodeAt(t.position+1),yn(n)||r&&ag(n))break}else if(h===35){if(i=t.input.charCodeAt(t.position-1),yn(i))break}else{if(t.position===t.lineStart&&Iw(t)||r&&ag(h))break;if(wo(h))if(l=t.line,c=t.lineStart,u=t.lineIndent,jr(t,!1,-1),t.lineIndent>=e){a=!0,h=t.input.charCodeAt(t.position);continue}else{t.position=o,t.line=l,t.lineStart=c,t.lineIndent=u;break}}a&&(bA(t,s,o,!1),TP(t,t.line-l),s=o=t.position,a=!1),rc(h)||(o=t.position+1),h=t.input.charCodeAt(++t.position)}return bA(t,s,o,!1),t.result?!0:(t.kind=g,t.result=f,!1)}function sDe(t,e){var r,i,n;if(r=t.input.charCodeAt(t.position),r!==39)return!1;for(t.kind="scalar",t.result="",t.position++,i=n=t.position;(r=t.input.charCodeAt(t.position))!==0;)if(r===39)if(bA(t,i,t.position,!0),r=t.input.charCodeAt(++t.position),r===39)i=t.position,t.position++,n=t.position;else return!0;else wo(r)?(bA(t,i,n,!0),TP(t,jr(t,!1,e)),i=n=t.position):t.position===t.lineStart&&Iw(t)?st(t,"unexpected end of the document within a single quoted scalar"):(t.position++,n=t.position);st(t,"unexpected end of the stream within a single quoted scalar")}function oDe(t,e){var r,i,n,s,o,a;if(a=t.input.charCodeAt(t.position),a!==34)return!1;for(t.kind="scalar",t.result="",t.position++,r=i=t.position;(a=t.input.charCodeAt(t.position))!==0;){if(a===34)return bA(t,r,t.position,!0),t.position++,!0;if(a===92){if(bA(t,r,t.position,!0),a=t.input.charCodeAt(++t.position),wo(a))jr(t,!1,e);else if(a<256&&Uz[a])t.result+=Hz[a],t.position++;else if((o=eDe(a))>0){for(n=o,s=0;n>0;n--)a=t.input.charCodeAt(++t.position),(o=$Pe(a))>=0?s=(s<<4)+o:st(t,"expected hexadecimal character");t.result+=rDe(s),t.position++}else st(t,"unknown escape sequence");r=i=t.position}else wo(a)?(bA(t,r,i,!0),TP(t,jr(t,!1,e)),r=i=t.position):t.position===t.lineStart&&Iw(t)?st(t,"unexpected end of the document within a double quoted scalar"):(t.position++,i=t.position)}st(t,"unexpected end of the stream within a double quoted scalar")}function aDe(t,e){var r=!0,i,n=t.tag,s,o=t.anchor,a,l,c,u,g,f={},h,p,d,m;if(m=t.input.charCodeAt(t.position),m===91)l=93,g=!1,s=[];else if(m===123)l=125,g=!0,s={};else return!1;for(t.anchor!==null&&(t.anchorMap[t.anchor]=s),m=t.input.charCodeAt(++t.position);m!==0;){if(jr(t,!0,e),m=t.input.charCodeAt(t.position),m===l)return t.position++,t.tag=n,t.anchor=o,t.kind=g?"mapping":"sequence",t.result=s,!0;r||st(t,"missed comma between flow collection entries"),p=h=d=null,c=u=!1,m===63&&(a=t.input.charCodeAt(t.position+1),yn(a)&&(c=u=!0,t.position++,jr(t,!0,e))),i=t.line,cg(t,e,Cw,!1,!0),p=t.tag,h=t.result,jr(t,!0,e),m=t.input.charCodeAt(t.position),(u||t.line===i)&&m===58&&(c=!0,m=t.input.charCodeAt(++t.position),jr(t,!0,e),cg(t,e,Cw,!1,!0),d=t.result),g?lg(t,s,f,p,h,d):c?s.push(lg(t,null,f,p,h,d)):s.push(h),jr(t,!0,e),m=t.input.charCodeAt(t.position),m===44?(r=!0,m=t.input.charCodeAt(++t.position)):r=!1}st(t,"unexpected end of the stream within a flow collection")}function ADe(t,e){var r,i,n=NP,s=!1,o=!1,a=e,l=0,c=!1,u,g;if(g=t.input.charCodeAt(t.position),g===124)i=!1;else if(g===62)i=!0;else return!1;for(t.kind="scalar",t.result="";g!==0;)if(g=t.input.charCodeAt(++t.position),g===43||g===45)NP===n?n=g===43?Lz:VPe:st(t,"repeat of a chomping mode identifier");else if((u=tDe(g))>=0)u===0?st(t,"bad explicit indentation width of a block scalar; it cannot be less than one"):o?st(t,"repeat of an indentation width identifier"):(a=e+u-1,o=!0);else break;if(rc(g)){do g=t.input.charCodeAt(++t.position);while(rc(g));if(g===35)do g=t.input.charCodeAt(++t.position);while(!wo(g)&&g!==0)}for(;g!==0;){for(LP(t),t.lineIndent=0,g=t.input.charCodeAt(t.position);(!o||t.lineIndenta&&(a=t.lineIndent),wo(g)){l++;continue}if(t.lineIndente)&&l!==0)st(t,"bad indentation of a sequence entry");else if(t.lineIndente)&&(cg(t,e,mw,!0,n)&&(p?f=t.result:h=t.result),p||(lg(t,c,u,g,f,h,s,o),g=f=h=null),jr(t,!0,-1),m=t.input.charCodeAt(t.position)),t.lineIndent>e&&m!==0)st(t,"bad indentation of a mapping entry");else if(t.lineIndente?l=1:t.lineIndent===e?l=0:t.lineIndente?l=1:t.lineIndent===e?l=0:t.lineIndent tag; it should be "scalar", not "'+t.kind+'"'),g=0,f=t.implicitTypes.length;g tag; it should be "'+h.kind+'", not "'+t.kind+'"'),h.resolve(t.result)?(t.result=h.construct(t.result),t.anchor!==null&&(t.anchorMap[t.anchor]=t.result)):st(t,"cannot resolve a node with !<"+t.tag+"> explicit tag")):st(t,"unknown tag !<"+t.tag+">");return t.listener!==null&&t.listener("close",t),t.tag!==null||t.anchor!==null||u}function fDe(t){var e=t.position,r,i,n,s=!1,o;for(t.version=null,t.checkLineBreaks=t.legacy,t.tagMap={},t.anchorMap={};(o=t.input.charCodeAt(t.position))!==0&&(jr(t,!0,-1),o=t.input.charCodeAt(t.position),!(t.lineIndent>0||o!==37));){for(s=!0,o=t.input.charCodeAt(++t.position),r=t.position;o!==0&&!yn(o);)o=t.input.charCodeAt(++t.position);for(i=t.input.slice(r,t.position),n=[],i.length<1&&st(t,"directive name must not be less than one character in length");o!==0;){for(;rc(o);)o=t.input.charCodeAt(++t.position);if(o===35){do o=t.input.charCodeAt(++t.position);while(o!==0&&!wo(o));break}if(wo(o))break;for(r=t.position;o!==0&&!yn(o);)o=t.input.charCodeAt(++t.position);n.push(t.input.slice(r,t.position))}o!==0&&LP(t),QA.call(jz,i)?jz[i](t,i,n):Ew(t,'unknown document directive "'+i+'"')}if(jr(t,!0,-1),t.lineIndent===0&&t.input.charCodeAt(t.position)===45&&t.input.charCodeAt(t.position+1)===45&&t.input.charCodeAt(t.position+2)===45?(t.position+=3,jr(t,!0,-1)):s&&st(t,"directives end mark is expected"),cg(t,t.lineIndent-1,mw,!1,!0),jr(t,!0,-1),t.checkLineBreaks&&XPe.test(t.input.slice(e,t.position))&&Ew(t,"non-ASCII line breaks are interpreted as content"),t.documents.push(t.result),t.position===t.lineStart&&Iw(t)){t.input.charCodeAt(t.position)===46&&(t.position+=3,jr(t,!0,-1));return}if(t.position{"use strict";var Op=$l(),Kp=ng(),dDe=Tp(),CDe=og(),_z=Object.prototype.toString,Xz=Object.prototype.hasOwnProperty,mDe=9,Up=10,EDe=13,IDe=32,yDe=33,wDe=34,Zz=35,BDe=37,QDe=38,bDe=39,vDe=42,$z=44,SDe=45,e5=58,xDe=61,kDe=62,PDe=63,DDe=64,t5=91,r5=93,RDe=96,i5=123,FDe=124,n5=125,Ri={};Ri[0]="\\0";Ri[7]="\\a";Ri[8]="\\b";Ri[9]="\\t";Ri[10]="\\n";Ri[11]="\\v";Ri[12]="\\f";Ri[13]="\\r";Ri[27]="\\e";Ri[34]='\\"';Ri[92]="\\\\";Ri[133]="\\N";Ri[160]="\\_";Ri[8232]="\\L";Ri[8233]="\\P";var NDe=["y","Y","yes","Yes","YES","on","On","ON","n","N","no","No","NO","off","Off","OFF"];function LDe(t,e){var r,i,n,s,o,a,l;if(e===null)return{};for(r={},i=Object.keys(e),n=0,s=i.length;n0?t.charCodeAt(s-1):null,f=f&&a5(o,a)}else{for(s=0;si&&t[g+1]!==" ",g=s);else if(!ug(o))return yw;a=s>0?t.charCodeAt(s-1):null,f=f&&a5(o,a)}c=c||u&&s-g-1>i&&t[g+1]!==" "}return!l&&!c?f&&!n(t)?l5:c5:r>9&&A5(t)?yw:c?g5:u5}function jDe(t,e,r,i){t.dump=function(){if(e.length===0)return"''";if(!t.noCompatMode&&NDe.indexOf(e)!==-1)return"'"+e+"'";var n=t.indent*Math.max(1,r),s=t.lineWidth===-1?-1:Math.max(Math.min(t.lineWidth,40),t.lineWidth-n),o=i||t.flowLevel>-1&&r>=t.flowLevel;function a(l){return MDe(t,l)}switch(UDe(e,o,t.indent,s,a)){case l5:return e;case c5:return"'"+e.replace(/'/g,"''")+"'";case u5:return"|"+f5(e,t.indent)+h5(o5(e,n));case g5:return">"+f5(e,t.indent)+h5(o5(HDe(e,s),n));case yw:return'"'+GDe(e,s)+'"';default:throw new Kp("impossible error: invalid scalar style")}}()}function f5(t,e){var r=A5(t)?String(e):"",i=t[t.length-1]===` -`,n=i&&(t[t.length-2]===` -`||t===` -`),s=n?"+":i?"":"-";return r+s+` -`}function h5(t){return t[t.length-1]===` -`?t.slice(0,-1):t}function HDe(t,e){for(var r=/(\n+)([^\n]*)/g,i=function(){var c=t.indexOf(` -`);return c=c!==-1?c:t.length,r.lastIndex=c,p5(t.slice(0,c),e)}(),n=t[0]===` -`||t[0]===" ",s,o;o=r.exec(t);){var a=o[1],l=o[2];s=l[0]===" ",i+=a+(!n&&!s&&l!==""?` -`:"")+p5(l,e),n=s}return i}function p5(t,e){if(t===""||t[0]===" ")return t;for(var r=/ [^ ]/g,i,n=0,s,o=0,a=0,l="";i=r.exec(t);)a=i.index,a-n>e&&(s=o>n?o:a,l+=` -`+t.slice(n,s),n=s+1),o=a;return l+=` -`,t.length-n>e&&o>n?l+=t.slice(n,o)+` -`+t.slice(o+1):l+=t.slice(n),l.slice(1)}function GDe(t){for(var e="",r,i,n,s=0;s=55296&&r<=56319&&(i=t.charCodeAt(s+1),i>=56320&&i<=57343)){e+=s5((r-55296)*1024+i-56320+65536),s++;continue}n=Ri[r],e+=!n&&ug(r)?t[s]:n||s5(r)}return e}function YDe(t,e,r){var i="",n=t.tag,s,o;for(s=0,o=r.length;s1024&&(u+="? "),u+=t.dump+(t.condenseFlow?'"':"")+":"+(t.condenseFlow?"":" "),!!ic(t,e,c,!1,!1)&&(u+=t.dump,i+=u));t.tag=n,t.dump="{"+i+"}"}function WDe(t,e,r,i){var n="",s=t.tag,o=Object.keys(r),a,l,c,u,g,f;if(t.sortKeys===!0)o.sort();else if(typeof t.sortKeys=="function")o.sort(t.sortKeys);else if(t.sortKeys)throw new Kp("sortKeys must be a boolean or a function");for(a=0,l=o.length;a1024,g&&(t.dump&&Up===t.dump.charCodeAt(0)?f+="?":f+="? "),f+=t.dump,g&&(f+=OP(t,e)),!!ic(t,e+1,u,!0,g)&&(t.dump&&Up===t.dump.charCodeAt(0)?f+=":":f+=": ",f+=t.dump,n+=f));t.tag=s,t.dump=n||"{}"}function d5(t,e,r){var i,n,s,o,a,l;for(n=r?t.explicitTypes:t.implicitTypes,s=0,o=n.length;s tag resolver accepts not "'+l+'" style');t.dump=i}return!0}return!1}function ic(t,e,r,i,n,s){t.tag=null,t.dump=r,d5(t,r,!1)||d5(t,r,!0);var o=_z.call(t.dump);i&&(i=t.flowLevel<0||t.flowLevel>e);var a=o==="[object Object]"||o==="[object Array]",l,c;if(a&&(l=t.duplicates.indexOf(r),c=l!==-1),(t.tag!==null&&t.tag!=="?"||c||t.indent!==2&&e>0)&&(n=!1),c&&t.usedDuplicates[l])t.dump="*ref_"+l;else{if(a&&c&&!t.usedDuplicates[l]&&(t.usedDuplicates[l]=!0),o==="[object Object]")i&&Object.keys(t.dump).length!==0?(WDe(t,e,t.dump,n),c&&(t.dump="&ref_"+l+t.dump)):(JDe(t,e,t.dump),c&&(t.dump="&ref_"+l+" "+t.dump));else if(o==="[object Array]"){var u=t.noArrayIndent&&e>0?e-1:e;i&&t.dump.length!==0?(qDe(t,u,t.dump,n),c&&(t.dump="&ref_"+l+t.dump)):(YDe(t,u,t.dump),c&&(t.dump="&ref_"+l+" "+t.dump))}else if(o==="[object String]")t.tag!=="?"&&jDe(t,t.dump,e,s);else{if(t.skipInvalid)return!1;throw new Kp("unacceptable kind of an object to dump "+o)}t.tag!==null&&t.tag!=="?"&&(t.dump="!<"+t.tag+"> "+t.dump)}return!0}function zDe(t,e){var r=[],i=[],n,s;for(UP(t,r,i),n=0,s=i.length;n{"use strict";var ww=Vz(),E5=m5();function Bw(t){return function(){throw new Error("Function "+t+" is deprecated and cannot be used.")}}Qr.exports.Type=Xr();Qr.exports.Schema=ec();Qr.exports.FAILSAFE_SCHEMA=pw();Qr.exports.JSON_SCHEMA=DP();Qr.exports.CORE_SCHEMA=RP();Qr.exports.DEFAULT_SAFE_SCHEMA=og();Qr.exports.DEFAULT_FULL_SCHEMA=Tp();Qr.exports.load=ww.load;Qr.exports.loadAll=ww.loadAll;Qr.exports.safeLoad=ww.safeLoad;Qr.exports.safeLoadAll=ww.safeLoadAll;Qr.exports.dump=E5.dump;Qr.exports.safeDump=E5.safeDump;Qr.exports.YAMLException=ng();Qr.exports.MINIMAL_SCHEMA=pw();Qr.exports.SAFE_SCHEMA=og();Qr.exports.DEFAULT_SCHEMA=Tp();Qr.exports.scan=Bw("scan");Qr.exports.parse=Bw("parse");Qr.exports.compose=Bw("compose");Qr.exports.addConstructor=Bw("addConstructor")});var w5=E((wat,y5)=>{"use strict";var _De=I5();y5.exports=_De});var Q5=E((Bat,B5)=>{"use strict";function XDe(t,e){function r(){this.constructor=t}r.prototype=e.prototype,t.prototype=new r}function nc(t,e,r,i){this.message=t,this.expected=e,this.found=r,this.location=i,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,nc)}XDe(nc,Error);nc.buildMessage=function(t,e){var r={literal:function(c){return'"'+n(c.text)+'"'},class:function(c){var u="",g;for(g=0;g0){for(g=1,f=1;g({[xe]:le})))},H=function(x){return x},L=function(x){return x},K=Yo("correct indentation"),J=" ",ne=fr(" ",!1),q=function(x){return x.length===Zc*aE},A=function(x){return x.length===(Zc+1)*aE},V=function(){return Zc++,!0},W=function(){return Zc--,!0},X=function(){return Xm()},F=Yo("pseudostring"),D=/^[^\r\n\t ?:,\][{}#&*!|>'"%@`\-]/,he=Bs(["\r",` -`," "," ","?",":",",","]","[","{","}","#","&","*","!","|",">","'",'"',"%","@","`","-"],!0,!1),pe=/^[^\r\n\t ,\][{}:#"']/,Ne=Bs(["\r",` -`," "," ",",","]","[","{","}",":","#",'"',"'"],!0,!1),Pe=function(){return Xm().replace(/^ *| *$/g,"")},qe="--",re=fr("--",!1),se=/^[a-zA-Z\/0-9]/,be=Bs([["a","z"],["A","Z"],"/",["0","9"]],!1,!1),ae=/^[^\r\n\t :,]/,Ae=Bs(["\r",` -`," "," ",":",","],!0,!1),De="null",$=fr("null",!1),G=function(){return null},Ce="true",ee=fr("true",!1),Ue=function(){return!0},Oe="false",vt=fr("false",!1),dt=function(){return!1},ri=Yo("string"),ii='"',an=fr('"',!1),yr=function(){return""},Ki=function(x){return x},Qi=function(x){return x.join("")},Go=/^[^"\\\0-\x1F\x7F]/,wr=Bs(['"',"\\",["\0",""],"\x7F"],!0,!1),Ui='\\"',ws=fr('\\"',!1),Tf=function(){return'"'},Mf="\\\\",Rm=fr("\\\\",!1),Fm=function(){return"\\"},Nm="\\/",DQ=fr("\\/",!1),RQ=function(){return"/"},Of="\\b",FQ=fr("\\b",!1),NQ=function(){return"\b"},Lm="\\f",LQ=fr("\\f",!1),Va=function(){return"\f"},jo="\\n",Tm=fr("\\n",!1),Mm=function(){return` -`},te="\\r",Om=fr("\\r",!1),Km=function(){return"\r"},il="\\t",Um=fr("\\t",!1),Hm=function(){return" "},Kf="\\u",Gm=fr("\\u",!1),jm=function(x,U,le,xe){return String.fromCharCode(parseInt(`0x${x}${U}${le}${xe}`))},TQ=/^[0-9a-fA-F]/,MQ=Bs([["0","9"],["a","f"],["A","F"]],!1,!1),Ym=Yo("blank space"),qm=/^[ \t]/,Jm=Bs([" "," "],!1,!1),Wm=Yo("white space"),zm=/^[ \t\n\r]/,Vm=Bs([" "," ",` -`,"\r"],!1,!1),Uf=`\r -`,OQ=fr(`\r -`,!1),KQ=` -`,_m=fr(` -`,!1),UQ="\r",HQ=fr("\r",!1),O=0,ht=0,Vc=[{line:1,column:1}],xn=0,Hf=[],Ye=0,nl;if("startRule"in e){if(!(e.startRule in i))throw new Error(`Can't start parsing from rule "`+e.startRule+'".');n=i[e.startRule]}function Xm(){return t.substring(ht,O)}function MM(){return _a(ht,O)}function GQ(x,U){throw U=U!==void 0?U:_a(ht,O),eE([Yo(x)],t.substring(ht,O),U)}function OM(x,U){throw U=U!==void 0?U:_a(ht,O),YQ(x,U)}function fr(x,U){return{type:"literal",text:x,ignoreCase:U}}function Bs(x,U,le){return{type:"class",parts:x,inverted:U,ignoreCase:le}}function jQ(){return{type:"any"}}function Zm(){return{type:"end"}}function Yo(x){return{type:"other",description:x}}function $m(x){var U=Vc[x],le;if(U)return U;for(le=x-1;!Vc[le];)le--;for(U=Vc[le],U={line:U.line,column:U.column};lexn&&(xn=O,Hf=[]),Hf.push(x))}function YQ(x,U){return new nc(x,null,null,U)}function eE(x,U,le){return new nc(nc.buildMessage(x,U),x,U,le)}function tE(){var x;return x=ol(),x}function Xa(){var x,U,le;for(x=O,U=[],le=sl();le!==r;)U.push(le),le=sl();return U!==r&&(ht=x,U=s(U)),x=U,x}function sl(){var x,U,le,xe,Qe;return x=O,U=Al(),U!==r?(t.charCodeAt(O)===45?(le=o,O++):(le=r,Ye===0&&et(a)),le!==r?(xe=xr(),xe!==r?(Qe=qo(),Qe!==r?(ht=x,U=l(Qe),x=U):(O=x,x=r)):(O=x,x=r)):(O=x,x=r)):(O=x,x=r),x}function ol(){var x,U,le;for(x=O,U=[],le=al();le!==r;)U.push(le),le=al();return U!==r&&(ht=x,U=c(U)),x=U,x}function al(){var x,U,le,xe,Qe,Ge,ct,sr,Wo;if(x=O,U=xr(),U===r&&(U=null),U!==r){if(le=O,t.charCodeAt(O)===35?(xe=u,O++):(xe=r,Ye===0&&et(g)),xe!==r){if(Qe=[],Ge=O,ct=O,Ye++,sr=Zs(),Ye--,sr===r?ct=void 0:(O=ct,ct=r),ct!==r?(t.length>O?(sr=t.charAt(O),O++):(sr=r,Ye===0&&et(f)),sr!==r?(ct=[ct,sr],Ge=ct):(O=Ge,Ge=r)):(O=Ge,Ge=r),Ge!==r)for(;Ge!==r;)Qe.push(Ge),Ge=O,ct=O,Ye++,sr=Zs(),Ye--,sr===r?ct=void 0:(O=ct,ct=r),ct!==r?(t.length>O?(sr=t.charAt(O),O++):(sr=r,Ye===0&&et(f)),sr!==r?(ct=[ct,sr],Ge=ct):(O=Ge,Ge=r)):(O=Ge,Ge=r);else Qe=r;Qe!==r?(xe=[xe,Qe],le=xe):(O=le,le=r)}else O=le,le=r;if(le===r&&(le=null),le!==r){if(xe=[],Qe=Jo(),Qe!==r)for(;Qe!==r;)xe.push(Qe),Qe=Jo();else xe=r;xe!==r?(ht=x,U=h(),x=U):(O=x,x=r)}else O=x,x=r}else O=x,x=r;if(x===r&&(x=O,U=Al(),U!==r?(le=JQ(),le!==r?(xe=xr(),xe===r&&(xe=null),xe!==r?(t.charCodeAt(O)===58?(Qe=p,O++):(Qe=r,Ye===0&&et(d)),Qe!==r?(Ge=xr(),Ge===r&&(Ge=null),Ge!==r?(ct=qo(),ct!==r?(ht=x,U=m(le,ct),x=U):(O=x,x=r)):(O=x,x=r)):(O=x,x=r)):(O=x,x=r)):(O=x,x=r)):(O=x,x=r),x===r&&(x=O,U=Al(),U!==r?(le=ll(),le!==r?(xe=xr(),xe===r&&(xe=null),xe!==r?(t.charCodeAt(O)===58?(Qe=p,O++):(Qe=r,Ye===0&&et(d)),Qe!==r?(Ge=xr(),Ge===r&&(Ge=null),Ge!==r?(ct=qo(),ct!==r?(ht=x,U=m(le,ct),x=U):(O=x,x=r)):(O=x,x=r)):(O=x,x=r)):(O=x,x=r)):(O=x,x=r)):(O=x,x=r),x===r))){if(x=O,U=Al(),U!==r)if(le=ll(),le!==r)if(xe=xr(),xe!==r)if(Qe=nE(),Qe!==r){if(Ge=[],ct=Jo(),ct!==r)for(;ct!==r;)Ge.push(ct),ct=Jo();else Ge=r;Ge!==r?(ht=x,U=m(le,Qe),x=U):(O=x,x=r)}else O=x,x=r;else O=x,x=r;else O=x,x=r;else O=x,x=r;if(x===r)if(x=O,U=Al(),U!==r)if(le=ll(),le!==r){if(xe=[],Qe=O,Ge=xr(),Ge===r&&(Ge=null),Ge!==r?(t.charCodeAt(O)===44?(ct=I,O++):(ct=r,Ye===0&&et(B)),ct!==r?(sr=xr(),sr===r&&(sr=null),sr!==r?(Wo=ll(),Wo!==r?(ht=Qe,Ge=b(le,Wo),Qe=Ge):(O=Qe,Qe=r)):(O=Qe,Qe=r)):(O=Qe,Qe=r)):(O=Qe,Qe=r),Qe!==r)for(;Qe!==r;)xe.push(Qe),Qe=O,Ge=xr(),Ge===r&&(Ge=null),Ge!==r?(t.charCodeAt(O)===44?(ct=I,O++):(ct=r,Ye===0&&et(B)),ct!==r?(sr=xr(),sr===r&&(sr=null),sr!==r?(Wo=ll(),Wo!==r?(ht=Qe,Ge=b(le,Wo),Qe=Ge):(O=Qe,Qe=r)):(O=Qe,Qe=r)):(O=Qe,Qe=r)):(O=Qe,Qe=r);else xe=r;xe!==r?(Qe=xr(),Qe===r&&(Qe=null),Qe!==r?(t.charCodeAt(O)===58?(Ge=p,O++):(Ge=r,Ye===0&&et(d)),Ge!==r?(ct=xr(),ct===r&&(ct=null),ct!==r?(sr=qo(),sr!==r?(ht=x,U=R(le,xe,sr),x=U):(O=x,x=r)):(O=x,x=r)):(O=x,x=r)):(O=x,x=r)):(O=x,x=r)}else O=x,x=r;else O=x,x=r}return x}function qo(){var x,U,le,xe,Qe,Ge,ct;if(x=O,U=O,Ye++,le=O,xe=Zs(),xe!==r?(Qe=qQ(),Qe!==r?(t.charCodeAt(O)===45?(Ge=o,O++):(Ge=r,Ye===0&&et(a)),Ge!==r?(ct=xr(),ct!==r?(xe=[xe,Qe,Ge,ct],le=xe):(O=le,le=r)):(O=le,le=r)):(O=le,le=r)):(O=le,le=r),Ye--,le!==r?(O=U,U=void 0):U=r,U!==r?(le=Jo(),le!==r?(xe=rE(),xe!==r?(Qe=Xa(),Qe!==r?(Ge=iE(),Ge!==r?(ht=x,U=H(Qe),x=U):(O=x,x=r)):(O=x,x=r)):(O=x,x=r)):(O=x,x=r)):(O=x,x=r),x===r&&(x=O,U=Zs(),U!==r?(le=rE(),le!==r?(xe=ol(),xe!==r?(Qe=iE(),Qe!==r?(ht=x,U=H(xe),x=U):(O=x,x=r)):(O=x,x=r)):(O=x,x=r)):(O=x,x=r),x===r))if(x=O,U=WQ(),U!==r){if(le=[],xe=Jo(),xe!==r)for(;xe!==r;)le.push(xe),xe=Jo();else le=r;le!==r?(ht=x,U=L(U),x=U):(O=x,x=r)}else O=x,x=r;return x}function Al(){var x,U,le;for(Ye++,x=O,U=[],t.charCodeAt(O)===32?(le=J,O++):(le=r,Ye===0&&et(ne));le!==r;)U.push(le),t.charCodeAt(O)===32?(le=J,O++):(le=r,Ye===0&&et(ne));return U!==r?(ht=O,le=q(U),le?le=void 0:le=r,le!==r?(U=[U,le],x=U):(O=x,x=r)):(O=x,x=r),Ye--,x===r&&(U=r,Ye===0&&et(K)),x}function qQ(){var x,U,le;for(x=O,U=[],t.charCodeAt(O)===32?(le=J,O++):(le=r,Ye===0&&et(ne));le!==r;)U.push(le),t.charCodeAt(O)===32?(le=J,O++):(le=r,Ye===0&&et(ne));return U!==r?(ht=O,le=A(U),le?le=void 0:le=r,le!==r?(U=[U,le],x=U):(O=x,x=r)):(O=x,x=r),x}function rE(){var x;return ht=O,x=V(),x?x=void 0:x=r,x}function iE(){var x;return ht=O,x=W(),x?x=void 0:x=r,x}function JQ(){var x;return x=cl(),x===r&&(x=Gf()),x}function ll(){var x,U,le;if(x=cl(),x===r){if(x=O,U=[],le=_c(),le!==r)for(;le!==r;)U.push(le),le=_c();else U=r;U!==r&&(ht=x,U=X()),x=U}return x}function WQ(){var x;return x=jf(),x===r&&(x=sE(),x===r&&(x=cl(),x===r&&(x=Gf()))),x}function nE(){var x;return x=jf(),x===r&&(x=cl(),x===r&&(x=_c())),x}function Gf(){var x,U,le,xe,Qe,Ge;if(Ye++,x=O,D.test(t.charAt(O))?(U=t.charAt(O),O++):(U=r,Ye===0&&et(he)),U!==r){for(le=[],xe=O,Qe=xr(),Qe===r&&(Qe=null),Qe!==r?(pe.test(t.charAt(O))?(Ge=t.charAt(O),O++):(Ge=r,Ye===0&&et(Ne)),Ge!==r?(Qe=[Qe,Ge],xe=Qe):(O=xe,xe=r)):(O=xe,xe=r);xe!==r;)le.push(xe),xe=O,Qe=xr(),Qe===r&&(Qe=null),Qe!==r?(pe.test(t.charAt(O))?(Ge=t.charAt(O),O++):(Ge=r,Ye===0&&et(Ne)),Ge!==r?(Qe=[Qe,Ge],xe=Qe):(O=xe,xe=r)):(O=xe,xe=r);le!==r?(ht=x,U=Pe(),x=U):(O=x,x=r)}else O=x,x=r;return Ye--,x===r&&(U=r,Ye===0&&et(F)),x}function _c(){var x,U,le,xe,Qe;if(x=O,t.substr(O,2)===qe?(U=qe,O+=2):(U=r,Ye===0&&et(re)),U===r&&(U=null),U!==r)if(se.test(t.charAt(O))?(le=t.charAt(O),O++):(le=r,Ye===0&&et(be)),le!==r){for(xe=[],ae.test(t.charAt(O))?(Qe=t.charAt(O),O++):(Qe=r,Ye===0&&et(Ae));Qe!==r;)xe.push(Qe),ae.test(t.charAt(O))?(Qe=t.charAt(O),O++):(Qe=r,Ye===0&&et(Ae));xe!==r?(ht=x,U=Pe(),x=U):(O=x,x=r)}else O=x,x=r;else O=x,x=r;return x}function jf(){var x,U;return x=O,t.substr(O,4)===De?(U=De,O+=4):(U=r,Ye===0&&et($)),U!==r&&(ht=x,U=G()),x=U,x}function sE(){var x,U;return x=O,t.substr(O,4)===Ce?(U=Ce,O+=4):(U=r,Ye===0&&et(ee)),U!==r&&(ht=x,U=Ue()),x=U,x===r&&(x=O,t.substr(O,5)===Oe?(U=Oe,O+=5):(U=r,Ye===0&&et(vt)),U!==r&&(ht=x,U=dt()),x=U),x}function cl(){var x,U,le,xe;return Ye++,x=O,t.charCodeAt(O)===34?(U=ii,O++):(U=r,Ye===0&&et(an)),U!==r?(t.charCodeAt(O)===34?(le=ii,O++):(le=r,Ye===0&&et(an)),le!==r?(ht=x,U=yr(),x=U):(O=x,x=r)):(O=x,x=r),x===r&&(x=O,t.charCodeAt(O)===34?(U=ii,O++):(U=r,Ye===0&&et(an)),U!==r?(le=oE(),le!==r?(t.charCodeAt(O)===34?(xe=ii,O++):(xe=r,Ye===0&&et(an)),xe!==r?(ht=x,U=Ki(le),x=U):(O=x,x=r)):(O=x,x=r)):(O=x,x=r)),Ye--,x===r&&(U=r,Ye===0&&et(ri)),x}function oE(){var x,U,le;if(x=O,U=[],le=Yf(),le!==r)for(;le!==r;)U.push(le),le=Yf();else U=r;return U!==r&&(ht=x,U=Qi(U)),x=U,x}function Yf(){var x,U,le,xe,Qe,Ge;return Go.test(t.charAt(O))?(x=t.charAt(O),O++):(x=r,Ye===0&&et(wr)),x===r&&(x=O,t.substr(O,2)===Ui?(U=Ui,O+=2):(U=r,Ye===0&&et(ws)),U!==r&&(ht=x,U=Tf()),x=U,x===r&&(x=O,t.substr(O,2)===Mf?(U=Mf,O+=2):(U=r,Ye===0&&et(Rm)),U!==r&&(ht=x,U=Fm()),x=U,x===r&&(x=O,t.substr(O,2)===Nm?(U=Nm,O+=2):(U=r,Ye===0&&et(DQ)),U!==r&&(ht=x,U=RQ()),x=U,x===r&&(x=O,t.substr(O,2)===Of?(U=Of,O+=2):(U=r,Ye===0&&et(FQ)),U!==r&&(ht=x,U=NQ()),x=U,x===r&&(x=O,t.substr(O,2)===Lm?(U=Lm,O+=2):(U=r,Ye===0&&et(LQ)),U!==r&&(ht=x,U=Va()),x=U,x===r&&(x=O,t.substr(O,2)===jo?(U=jo,O+=2):(U=r,Ye===0&&et(Tm)),U!==r&&(ht=x,U=Mm()),x=U,x===r&&(x=O,t.substr(O,2)===te?(U=te,O+=2):(U=r,Ye===0&&et(Om)),U!==r&&(ht=x,U=Km()),x=U,x===r&&(x=O,t.substr(O,2)===il?(U=il,O+=2):(U=r,Ye===0&&et(Um)),U!==r&&(ht=x,U=Hm()),x=U,x===r&&(x=O,t.substr(O,2)===Kf?(U=Kf,O+=2):(U=r,Ye===0&&et(Gm)),U!==r?(le=Xc(),le!==r?(xe=Xc(),xe!==r?(Qe=Xc(),Qe!==r?(Ge=Xc(),Ge!==r?(ht=x,U=jm(le,xe,Qe,Ge),x=U):(O=x,x=r)):(O=x,x=r)):(O=x,x=r)):(O=x,x=r)):(O=x,x=r)))))))))),x}function Xc(){var x;return TQ.test(t.charAt(O))?(x=t.charAt(O),O++):(x=r,Ye===0&&et(MQ)),x}function xr(){var x,U;if(Ye++,x=[],qm.test(t.charAt(O))?(U=t.charAt(O),O++):(U=r,Ye===0&&et(Jm)),U!==r)for(;U!==r;)x.push(U),qm.test(t.charAt(O))?(U=t.charAt(O),O++):(U=r,Ye===0&&et(Jm));else x=r;return Ye--,x===r&&(U=r,Ye===0&&et(Ym)),x}function KM(){var x,U;if(Ye++,x=[],zm.test(t.charAt(O))?(U=t.charAt(O),O++):(U=r,Ye===0&&et(Vm)),U!==r)for(;U!==r;)x.push(U),zm.test(t.charAt(O))?(U=t.charAt(O),O++):(U=r,Ye===0&&et(Vm));else x=r;return Ye--,x===r&&(U=r,Ye===0&&et(Wm)),x}function Jo(){var x,U,le,xe,Qe,Ge;if(x=O,U=Zs(),U!==r){for(le=[],xe=O,Qe=xr(),Qe===r&&(Qe=null),Qe!==r?(Ge=Zs(),Ge!==r?(Qe=[Qe,Ge],xe=Qe):(O=xe,xe=r)):(O=xe,xe=r);xe!==r;)le.push(xe),xe=O,Qe=xr(),Qe===r&&(Qe=null),Qe!==r?(Ge=Zs(),Ge!==r?(Qe=[Qe,Ge],xe=Qe):(O=xe,xe=r)):(O=xe,xe=r);le!==r?(U=[U,le],x=U):(O=x,x=r)}else O=x,x=r;return x}function Zs(){var x;return t.substr(O,2)===Uf?(x=Uf,O+=2):(x=r,Ye===0&&et(OQ)),x===r&&(t.charCodeAt(O)===10?(x=KQ,O++):(x=r,Ye===0&&et(_m)),x===r&&(t.charCodeAt(O)===13?(x=UQ,O++):(x=r,Ye===0&&et(HQ)))),x}let aE=2,Zc=0;if(nl=n(),nl!==r&&O===t.length)return nl;throw nl!==r&&O{var fRe=typeof global=="object"&&global&&global.Object===Object&&global;V5.exports=fRe});var Ks=E((Zat,_5)=>{var hRe=WP(),pRe=typeof self=="object"&&self&&self.Object===Object&&self,dRe=hRe||pRe||Function("return this")();_5.exports=dRe});var ac=E(($at,X5)=>{var CRe=Ks(),mRe=CRe.Symbol;X5.exports=mRe});var $5=E((eAt,Z5)=>{function ERe(t,e){for(var r=-1,i=t==null?0:t.length,n=Array(i);++r{var IRe=Array.isArray;e6.exports=IRe});var n6=E((rAt,t6)=>{var r6=ac(),i6=Object.prototype,yRe=i6.hasOwnProperty,wRe=i6.toString,Jp=r6?r6.toStringTag:void 0;function BRe(t){var e=yRe.call(t,Jp),r=t[Jp];try{t[Jp]=void 0;var i=!0}catch(s){}var n=wRe.call(t);return i&&(e?t[Jp]=r:delete t[Jp]),n}t6.exports=BRe});var o6=E((iAt,s6)=>{var QRe=Object.prototype,bRe=QRe.toString;function vRe(t){return bRe.call(t)}s6.exports=vRe});var Ac=E((nAt,a6)=>{var A6=ac(),SRe=n6(),xRe=o6(),kRe="[object Null]",PRe="[object Undefined]",l6=A6?A6.toStringTag:void 0;function DRe(t){return t==null?t===void 0?PRe:kRe:l6&&l6 in Object(t)?SRe(t):xRe(t)}a6.exports=DRe});var Qo=E((sAt,c6)=>{function RRe(t){return t!=null&&typeof t=="object"}c6.exports=RRe});var Nw=E((oAt,u6)=>{var FRe=Ac(),NRe=Qo(),LRe="[object Symbol]";function TRe(t){return typeof t=="symbol"||NRe(t)&&FRe(t)==LRe}u6.exports=TRe});var C6=E((aAt,g6)=>{var f6=ac(),MRe=$5(),ORe=As(),KRe=Nw(),URe=1/0,h6=f6?f6.prototype:void 0,p6=h6?h6.toString:void 0;function d6(t){if(typeof t=="string")return t;if(ORe(t))return MRe(t,d6)+"";if(KRe(t))return p6?p6.call(t):"";var e=t+"";return e=="0"&&1/t==-URe?"-0":e}g6.exports=d6});var gg=E((AAt,m6)=>{var HRe=C6();function GRe(t){return t==null?"":HRe(t)}m6.exports=GRe});var zP=E((lAt,E6)=>{function jRe(t,e,r){var i=-1,n=t.length;e<0&&(e=-e>n?0:n+e),r=r>n?n:r,r<0&&(r+=n),n=e>r?0:r-e>>>0,e>>>=0;for(var s=Array(n);++i{var YRe=zP();function qRe(t,e,r){var i=t.length;return r=r===void 0?i:r,!e&&r>=i?t:YRe(t,e,r)}I6.exports=qRe});var VP=E((uAt,w6)=>{var JRe="\\ud800-\\udfff",WRe="\\u0300-\\u036f",zRe="\\ufe20-\\ufe2f",VRe="\\u20d0-\\u20ff",_Re=WRe+zRe+VRe,XRe="\\ufe0e\\ufe0f",ZRe="\\u200d",$Re=RegExp("["+ZRe+JRe+_Re+XRe+"]");function eFe(t){return $Re.test(t)}w6.exports=eFe});var Q6=E((gAt,B6)=>{function tFe(t){return t.split("")}B6.exports=tFe});var R6=E((fAt,b6)=>{var v6="\\ud800-\\udfff",rFe="\\u0300-\\u036f",iFe="\\ufe20-\\ufe2f",nFe="\\u20d0-\\u20ff",sFe=rFe+iFe+nFe,oFe="\\ufe0e\\ufe0f",aFe="["+v6+"]",_P="["+sFe+"]",XP="\\ud83c[\\udffb-\\udfff]",AFe="(?:"+_P+"|"+XP+")",S6="[^"+v6+"]",x6="(?:\\ud83c[\\udde6-\\uddff]){2}",k6="[\\ud800-\\udbff][\\udc00-\\udfff]",lFe="\\u200d",P6=AFe+"?",D6="["+oFe+"]?",cFe="(?:"+lFe+"(?:"+[S6,x6,k6].join("|")+")"+D6+P6+")*",uFe=D6+P6+cFe,gFe="(?:"+[S6+_P+"?",_P,x6,k6,aFe].join("|")+")",fFe=RegExp(XP+"(?="+XP+")|"+gFe+uFe,"g");function hFe(t){return t.match(fFe)||[]}b6.exports=hFe});var N6=E((hAt,F6)=>{var pFe=Q6(),dFe=VP(),CFe=R6();function mFe(t){return dFe(t)?CFe(t):pFe(t)}F6.exports=mFe});var T6=E((pAt,L6)=>{var EFe=y6(),IFe=VP(),yFe=N6(),wFe=gg();function BFe(t){return function(e){e=wFe(e);var r=IFe(e)?yFe(e):void 0,i=r?r[0]:e.charAt(0),n=r?EFe(r,1).join(""):e.slice(1);return i[t]()+n}}L6.exports=BFe});var O6=E((dAt,M6)=>{var QFe=T6(),bFe=QFe("toUpperCase");M6.exports=bFe});var ZP=E((CAt,K6)=>{var vFe=gg(),SFe=O6();function xFe(t){return SFe(vFe(t).toLowerCase())}K6.exports=xFe});var H6=E((mAt,U6)=>{"use strict";U6.exports=(t,...e)=>new Promise(r=>{r(t(...e))})});var Wp=E((EAt,$P)=>{"use strict";var kFe=H6(),G6=t=>{if(t<1)throw new TypeError("Expected `concurrency` to be a number from 1 and up");let e=[],r=0,i=()=>{r--,e.length>0&&e.shift()()},n=(a,l,...c)=>{r++;let u=kFe(a,...c);l(u),u.then(i,i)},s=(a,l,...c)=>{rnew Promise(c=>s(a,c,...l));return Object.defineProperties(o,{activeCount:{get:()=>r},pendingCount:{get:()=>e.length}}),o};$P.exports=G6;$P.exports.default=G6});var X6=E((FAt,Mw)=>{function PFe(){var t=0,e=1,r=2,i=3,n=4,s=5,o=6,a=7,l=8,c=9,u=10,g=11,f=12,h=13,p=14,d=15,m=16,I=17,B=0,b=1,R=2,H=3,L=4;function K(A,V){return 55296<=A.charCodeAt(V)&&A.charCodeAt(V)<=56319&&56320<=A.charCodeAt(V+1)&&A.charCodeAt(V+1)<=57343}function J(A,V){V===void 0&&(V=0);var W=A.charCodeAt(V);if(55296<=W&&W<=56319&&V=1){var X=A.charCodeAt(V-1),F=W;return 55296<=X&&X<=56319?(X-55296)*1024+(F-56320)+65536:F}return W}function ne(A,V,W){var X=[A].concat(V).concat([W]),F=X[X.length-2],D=W,he=X.lastIndexOf(p);if(he>1&&X.slice(1,he).every(function(Pe){return Pe==i})&&[i,h,I].indexOf(A)==-1)return R;var pe=X.lastIndexOf(n);if(pe>0&&X.slice(1,pe).every(function(Pe){return Pe==n})&&[f,n].indexOf(F)==-1)return X.filter(function(Pe){return Pe==n}).length%2==1?H:L;if(F==t&&D==e)return B;if(F==r||F==t||F==e)return D==p&&V.every(function(Pe){return Pe==i})?R:b;if(D==r||D==t||D==e)return b;if(F==o&&(D==o||D==a||D==c||D==u))return B;if((F==c||F==a)&&(D==a||D==l))return B;if((F==u||F==l)&&D==l)return B;if(D==i||D==d)return B;if(D==s)return B;if(F==f)return B;var Ne=X.indexOf(i)!=-1?X.lastIndexOf(i)-1:X.length-2;return[h,I].indexOf(X[Ne])!=-1&&X.slice(Ne+1,-1).every(function(Pe){return Pe==i})&&D==p||F==d&&[m,I].indexOf(D)!=-1?B:V.indexOf(n)!=-1?R:F==n&&D==n?B:b}this.nextBreak=function(A,V){if(V===void 0&&(V=0),V<0)return 0;if(V>=A.length-1)return A.length;for(var W=q(J(A,V)),X=[],F=V+1;F{var DFe=X6(),RFe=/^(.*?)(\x1b\[[^m]+m|\x1b\]8;;.*?(\x1b\\|\u0007))/,FFe=new DFe;Z6.exports=(t,e=0,r=t.length)=>{if(e<0||r<0)throw new RangeError("Negative indices aren't supported by this implementation");let i=r-e,n="",s=0,o=0;for(;t.length>0;){let a=t.match(RFe)||[t,t,void 0],l=FFe.splitGraphemes(a[1]),c=Math.min(e-s,l.length);l=l.slice(c);let u=Math.min(i-o,l.length);n+=l.slice(0,u).join(""),s+=c,o+=u,typeof a[2]!="undefined"&&(n+=a[2]),t=t.slice(a[0].length)}return n}});var fg=E((alt,f9)=>{"use strict";var h9=new Map([["C","cwd"],["f","file"],["z","gzip"],["P","preservePaths"],["U","unlink"],["strip-components","strip"],["stripComponents","strip"],["keep-newer","newer"],["keepNewer","newer"],["keep-newer-files","newer"],["keepNewerFiles","newer"],["k","keep"],["keep-existing","keep"],["keepExisting","keep"],["m","noMtime"],["no-mtime","noMtime"],["p","preserveOwner"],["L","follow"],["h","follow"]]),olt=f9.exports=t=>t?Object.keys(t).map(e=>[h9.has(e)?h9.get(e):e,t[e]]).reduce((e,r)=>(e[r[0]]=r[1],e),Object.create(null)):{}});var hg=E((Alt,p9)=>{"use strict";var JFe=require("events"),d9=require("stream"),_p=Rh(),C9=require("string_decoder").StringDecoder,va=Symbol("EOF"),Xp=Symbol("maybeEmitEnd"),xA=Symbol("emittedEnd"),Gw=Symbol("emittingEnd"),jw=Symbol("closed"),m9=Symbol("read"),iD=Symbol("flush"),E9=Symbol("flushChunk"),Bn=Symbol("encoding"),Sa=Symbol("decoder"),Yw=Symbol("flowing"),Zp=Symbol("paused"),$p=Symbol("resume"),rn=Symbol("bufferLength"),I9=Symbol("bufferPush"),nD=Symbol("bufferShift"),Ni=Symbol("objectMode"),Li=Symbol("destroyed"),y9=global._MP_NO_ITERATOR_SYMBOLS_!=="1",WFe=y9&&Symbol.asyncIterator||Symbol("asyncIterator not implemented"),zFe=y9&&Symbol.iterator||Symbol("iterator not implemented"),w9=t=>t==="end"||t==="finish"||t==="prefinish",VFe=t=>t instanceof ArrayBuffer||typeof t=="object"&&t.constructor&&t.constructor.name==="ArrayBuffer"&&t.byteLength>=0,_Fe=t=>!Buffer.isBuffer(t)&&ArrayBuffer.isView(t);p9.exports=class B9 extends d9{constructor(e){super();this[Yw]=!1,this[Zp]=!1,this.pipes=new _p,this.buffer=new _p,this[Ni]=e&&e.objectMode||!1,this[Ni]?this[Bn]=null:this[Bn]=e&&e.encoding||null,this[Bn]==="buffer"&&(this[Bn]=null),this[Sa]=this[Bn]?new C9(this[Bn]):null,this[va]=!1,this[xA]=!1,this[Gw]=!1,this[jw]=!1,this.writable=!0,this.readable=!0,this[rn]=0,this[Li]=!1}get bufferLength(){return this[rn]}get encoding(){return this[Bn]}set encoding(e){if(this[Ni])throw new Error("cannot set encoding in objectMode");if(this[Bn]&&e!==this[Bn]&&(this[Sa]&&this[Sa].lastNeed||this[rn]))throw new Error("cannot change encoding");this[Bn]!==e&&(this[Sa]=e?new C9(e):null,this.buffer.length&&(this.buffer=this.buffer.map(r=>this[Sa].write(r)))),this[Bn]=e}setEncoding(e){this.encoding=e}get objectMode(){return this[Ni]}set objectMode(e){this[Ni]=this[Ni]||!!e}write(e,r,i){if(this[va])throw new Error("write after end");return this[Li]?(this.emit("error",Object.assign(new Error("Cannot call write after a stream was destroyed"),{code:"ERR_STREAM_DESTROYED"})),!0):(typeof r=="function"&&(i=r,r="utf8"),r||(r="utf8"),!this[Ni]&&!Buffer.isBuffer(e)&&(_Fe(e)?e=Buffer.from(e.buffer,e.byteOffset,e.byteLength):VFe(e)?e=Buffer.from(e):typeof e!="string"&&(this.objectMode=!0)),!this.objectMode&&!e.length?(this[rn]!==0&&this.emit("readable"),i&&i(),this.flowing):(typeof e=="string"&&!this[Ni]&&!(r===this[Bn]&&!this[Sa].lastNeed)&&(e=Buffer.from(e,r)),Buffer.isBuffer(e)&&this[Bn]&&(e=this[Sa].write(e)),this.flowing?(this[rn]!==0&&this[iD](!0),this.emit("data",e)):this[I9](e),this[rn]!==0&&this.emit("readable"),i&&i(),this.flowing))}read(e){if(this[Li])return null;try{return this[rn]===0||e===0||e>this[rn]?null:(this[Ni]&&(e=null),this.buffer.length>1&&!this[Ni]&&(this.encoding?this.buffer=new _p([Array.from(this.buffer).join("")]):this.buffer=new _p([Buffer.concat(Array.from(this.buffer),this[rn])])),this[m9](e||null,this.buffer.head.value))}finally{this[Xp]()}}[m9](e,r){return e===r.length||e===null?this[nD]():(this.buffer.head.value=r.slice(e),r=r.slice(0,e),this[rn]-=e),this.emit("data",r),!this.buffer.length&&!this[va]&&this.emit("drain"),r}end(e,r,i){return typeof e=="function"&&(i=e,e=null),typeof r=="function"&&(i=r,r="utf8"),e&&this.write(e,r),i&&this.once("end",i),this[va]=!0,this.writable=!1,(this.flowing||!this[Zp])&&this[Xp](),this}[$p](){this[Li]||(this[Zp]=!1,this[Yw]=!0,this.emit("resume"),this.buffer.length?this[iD]():this[va]?this[Xp]():this.emit("drain"))}resume(){return this[$p]()}pause(){this[Yw]=!1,this[Zp]=!0}get destroyed(){return this[Li]}get flowing(){return this[Yw]}get paused(){return this[Zp]}[I9](e){return this[Ni]?this[rn]+=1:this[rn]+=e.length,this.buffer.push(e)}[nD](){return this.buffer.length&&(this[Ni]?this[rn]-=1:this[rn]-=this.buffer.head.value.length),this.buffer.shift()}[iD](e){do;while(this[E9](this[nD]()));!e&&!this.buffer.length&&!this[va]&&this.emit("drain")}[E9](e){return e?(this.emit("data",e),this.flowing):!1}pipe(e,r){if(this[Li])return;let i=this[xA];r=r||{},e===process.stdout||e===process.stderr?r.end=!1:r.end=r.end!==!1;let n={dest:e,opts:r,ondrain:s=>this[$p]()};return this.pipes.push(n),e.on("drain",n.ondrain),this[$p](),i&&n.opts.end&&n.dest.end(),e}addListener(e,r){return this.on(e,r)}on(e,r){try{return super.on(e,r)}finally{e==="data"&&!this.pipes.length&&!this.flowing?this[$p]():w9(e)&&this[xA]&&(super.emit(e),this.removeAllListeners(e))}}get emittedEnd(){return this[xA]}[Xp](){!this[Gw]&&!this[xA]&&!this[Li]&&this.buffer.length===0&&this[va]&&(this[Gw]=!0,this.emit("end"),this.emit("prefinish"),this.emit("finish"),this[jw]&&this.emit("close"),this[Gw]=!1)}emit(e,r){if(e!=="error"&&e!=="close"&&e!==Li&&this[Li])return;if(e==="data"){if(!r)return;this.pipes.length&&this.pipes.forEach(n=>n.dest.write(r)===!1&&this.pause())}else if(e==="end"){if(this[xA]===!0)return;this[xA]=!0,this.readable=!1,this[Sa]&&(r=this[Sa].end(),r&&(this.pipes.forEach(n=>n.dest.write(r)),super.emit("data",r))),this.pipes.forEach(n=>{n.dest.removeListener("drain",n.ondrain),n.opts.end&&n.dest.end()})}else if(e==="close"&&(this[jw]=!0,!this[xA]&&!this[Li]))return;let i=new Array(arguments.length);if(i[0]=e,i[1]=r,arguments.length>2)for(let n=2;n{e.push(i),this[Ni]||(e.dataLength+=i.length)}),r.then(()=>e)}concat(){return this[Ni]?Promise.reject(new Error("cannot concat in objectMode")):this.collect().then(e=>this[Ni]?Promise.reject(new Error("cannot concat in objectMode")):this[Bn]?e.join(""):Buffer.concat(e,e.dataLength))}promise(){return new Promise((e,r)=>{this.on(Li,()=>r(new Error("stream destroyed"))),this.on("end",()=>e()),this.on("error",i=>r(i))})}[WFe](){return{next:()=>{let r=this.read();if(r!==null)return Promise.resolve({done:!1,value:r});if(this[va])return Promise.resolve({done:!0});let i=null,n=null,s=c=>{this.removeListener("data",o),this.removeListener("end",a),n(c)},o=c=>{this.removeListener("error",s),this.removeListener("end",a),this.pause(),i({value:c,done:!!this[va]})},a=()=>{this.removeListener("error",s),this.removeListener("data",o),i({done:!0})},l=()=>s(new Error("stream destroyed"));return new Promise((c,u)=>{n=u,i=c,this.once(Li,l),this.once("error",s),this.once("end",a),this.once("data",o)})}}}[zFe](){return{next:()=>{let r=this.read();return{value:r,done:r===null}}}}destroy(e){return this[Li]?(e?this.emit("error",e):this.emit(Li),this):(this[Li]=!0,this.buffer=new _p,this[rn]=0,typeof this.close=="function"&&!this[jw]&&this.close(),e?this.emit("error",e):this.emit(Li),this)}static isStream(e){return!!e&&(e instanceof B9||e instanceof d9||e instanceof JFe&&(typeof e.pipe=="function"||typeof e.write=="function"&&typeof e.end=="function"))}}});var b9=E((llt,Q9)=>{var XFe=require("zlib").constants||{ZLIB_VERNUM:4736};Q9.exports=Object.freeze(Object.assign(Object.create(null),{Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_VERSION_ERROR:-6,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,DEFLATE:1,INFLATE:2,GZIP:3,GUNZIP:4,DEFLATERAW:5,INFLATERAW:6,UNZIP:7,BROTLI_DECODE:8,BROTLI_ENCODE:9,Z_MIN_WINDOWBITS:8,Z_MAX_WINDOWBITS:15,Z_DEFAULT_WINDOWBITS:15,Z_MIN_CHUNK:64,Z_MAX_CHUNK:Infinity,Z_DEFAULT_CHUNK:16384,Z_MIN_MEMLEVEL:1,Z_MAX_MEMLEVEL:9,Z_DEFAULT_MEMLEVEL:8,Z_MIN_LEVEL:-1,Z_MAX_LEVEL:9,Z_DEFAULT_LEVEL:-1,BROTLI_OPERATION_PROCESS:0,BROTLI_OPERATION_FLUSH:1,BROTLI_OPERATION_FINISH:2,BROTLI_OPERATION_EMIT_METADATA:3,BROTLI_MODE_GENERIC:0,BROTLI_MODE_TEXT:1,BROTLI_MODE_FONT:2,BROTLI_DEFAULT_MODE:0,BROTLI_MIN_QUALITY:0,BROTLI_MAX_QUALITY:11,BROTLI_DEFAULT_QUALITY:11,BROTLI_MIN_WINDOW_BITS:10,BROTLI_MAX_WINDOW_BITS:24,BROTLI_LARGE_MAX_WINDOW_BITS:30,BROTLI_DEFAULT_WINDOW:22,BROTLI_MIN_INPUT_BLOCK_BITS:16,BROTLI_MAX_INPUT_BLOCK_BITS:24,BROTLI_PARAM_MODE:0,BROTLI_PARAM_QUALITY:1,BROTLI_PARAM_LGWIN:2,BROTLI_PARAM_LGBLOCK:3,BROTLI_PARAM_DISABLE_LITERAL_CONTEXT_MODELING:4,BROTLI_PARAM_SIZE_HINT:5,BROTLI_PARAM_LARGE_WINDOW:6,BROTLI_PARAM_NPOSTFIX:7,BROTLI_PARAM_NDIRECT:8,BROTLI_DECODER_RESULT_ERROR:0,BROTLI_DECODER_RESULT_SUCCESS:1,BROTLI_DECODER_RESULT_NEEDS_MORE_INPUT:2,BROTLI_DECODER_RESULT_NEEDS_MORE_OUTPUT:3,BROTLI_DECODER_PARAM_DISABLE_RING_BUFFER_REALLOCATION:0,BROTLI_DECODER_PARAM_LARGE_WINDOW:1,BROTLI_DECODER_NO_ERROR:0,BROTLI_DECODER_SUCCESS:1,BROTLI_DECODER_NEEDS_MORE_INPUT:2,BROTLI_DECODER_NEEDS_MORE_OUTPUT:3,BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_NIBBLE:-1,BROTLI_DECODER_ERROR_FORMAT_RESERVED:-2,BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_META_NIBBLE:-3,BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_ALPHABET:-4,BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_SAME:-5,BROTLI_DECODER_ERROR_FORMAT_CL_SPACE:-6,BROTLI_DECODER_ERROR_FORMAT_HUFFMAN_SPACE:-7,BROTLI_DECODER_ERROR_FORMAT_CONTEXT_MAP_REPEAT:-8,BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_1:-9,BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_2:-10,BROTLI_DECODER_ERROR_FORMAT_TRANSFORM:-11,BROTLI_DECODER_ERROR_FORMAT_DICTIONARY:-12,BROTLI_DECODER_ERROR_FORMAT_WINDOW_BITS:-13,BROTLI_DECODER_ERROR_FORMAT_PADDING_1:-14,BROTLI_DECODER_ERROR_FORMAT_PADDING_2:-15,BROTLI_DECODER_ERROR_FORMAT_DISTANCE:-16,BROTLI_DECODER_ERROR_DICTIONARY_NOT_SET:-19,BROTLI_DECODER_ERROR_INVALID_ARGUMENTS:-20,BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MODES:-21,BROTLI_DECODER_ERROR_ALLOC_TREE_GROUPS:-22,BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MAP:-25,BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_1:-26,BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_2:-27,BROTLI_DECODER_ERROR_ALLOC_BLOCK_TYPE_TREES:-30,BROTLI_DECODER_ERROR_UNREACHABLE:-31},XFe))});var fD=E(Un=>{"use strict";var sD=require("assert"),kA=require("buffer").Buffer,v9=require("zlib"),uc=Un.constants=b9(),ZFe=hg(),S9=kA.concat,gc=Symbol("_superWrite"),ed=class extends Error{constructor(e){super("zlib: "+e.message);this.code=e.code,this.errno=e.errno,this.code||(this.code="ZLIB_ERROR"),this.message="zlib: "+e.message,Error.captureStackTrace(this,this.constructor)}get name(){return"ZlibError"}},$Fe=Symbol("opts"),td=Symbol("flushFlag"),x9=Symbol("finishFlushFlag"),oD=Symbol("fullFlushFlag"),tr=Symbol("handle"),qw=Symbol("onError"),pg=Symbol("sawError"),aD=Symbol("level"),AD=Symbol("strategy"),lD=Symbol("ended"),clt=Symbol("_defaultFullFlush"),cD=class extends ZFe{constructor(e,r){if(!e||typeof e!="object")throw new TypeError("invalid options for ZlibBase constructor");super(e);this[pg]=!1,this[lD]=!1,this[$Fe]=e,this[td]=e.flush,this[x9]=e.finishFlush;try{this[tr]=new v9[r](e)}catch(i){throw new ed(i)}this[qw]=i=>{this[pg]||(this[pg]=!0,this.close(),this.emit("error",i))},this[tr].on("error",i=>this[qw](new ed(i))),this.once("end",()=>this.close)}close(){this[tr]&&(this[tr].close(),this[tr]=null,this.emit("close"))}reset(){if(!this[pg])return sD(this[tr],"zlib binding closed"),this[tr].reset()}flush(e){this.ended||(typeof e!="number"&&(e=this[oD]),this.write(Object.assign(kA.alloc(0),{[td]:e})))}end(e,r,i){return e&&this.write(e,r),this.flush(this[x9]),this[lD]=!0,super.end(null,null,i)}get ended(){return this[lD]}write(e,r,i){if(typeof r=="function"&&(i=r,r="utf8"),typeof e=="string"&&(e=kA.from(e,r)),this[pg])return;sD(this[tr],"zlib binding closed");let n=this[tr]._handle,s=n.close;n.close=()=>{};let o=this[tr].close;this[tr].close=()=>{},kA.concat=c=>c;let a;try{let c=typeof e[td]=="number"?e[td]:this[td];a=this[tr]._processChunk(e,c),kA.concat=S9}catch(c){kA.concat=S9,this[qw](new ed(c))}finally{this[tr]&&(this[tr]._handle=n,n.close=s,this[tr].close=o,this[tr].removeAllListeners("error"))}this[tr]&&this[tr].on("error",c=>this[qw](new ed(c)));let l;if(a)if(Array.isArray(a)&&a.length>0){l=this[gc](kA.from(a[0]));for(let c=1;c{this.flush(n),s()};try{this[tr].params(e,r)}finally{this[tr].flush=i}this[tr]&&(this[aD]=e,this[AD]=r)}}}},k9=class extends PA{constructor(e){super(e,"Deflate")}},P9=class extends PA{constructor(e){super(e,"Inflate")}},uD=Symbol("_portable"),D9=class extends PA{constructor(e){super(e,"Gzip");this[uD]=e&&!!e.portable}[gc](e){return this[uD]?(this[uD]=!1,e[9]=255,super[gc](e)):super[gc](e)}},R9=class extends PA{constructor(e){super(e,"Gunzip")}},F9=class extends PA{constructor(e){super(e,"DeflateRaw")}},N9=class extends PA{constructor(e){super(e,"InflateRaw")}},L9=class extends PA{constructor(e){super(e,"Unzip")}},gD=class extends cD{constructor(e,r){e=e||{},e.flush=e.flush||uc.BROTLI_OPERATION_PROCESS,e.finishFlush=e.finishFlush||uc.BROTLI_OPERATION_FINISH,super(e,r),this[oD]=uc.BROTLI_OPERATION_FLUSH}},T9=class extends gD{constructor(e){super(e,"BrotliCompress")}},M9=class extends gD{constructor(e){super(e,"BrotliDecompress")}};Un.Deflate=k9;Un.Inflate=P9;Un.Gzip=D9;Un.Gunzip=R9;Un.DeflateRaw=F9;Un.InflateRaw=N9;Un.Unzip=L9;typeof v9.BrotliCompress=="function"?(Un.BrotliCompress=T9,Un.BrotliDecompress=M9):Un.BrotliCompress=Un.BrotliDecompress=class{constructor(){throw new Error("Brotli is not supported in this version of Node.js")}}});var rd=E(Jw=>{"use strict";Jw.name=new Map([["0","File"],["","OldFile"],["1","Link"],["2","SymbolicLink"],["3","CharacterDevice"],["4","BlockDevice"],["5","Directory"],["6","FIFO"],["7","ContiguousFile"],["g","GlobalExtendedHeader"],["x","ExtendedHeader"],["A","SolarisACL"],["D","GNUDumpDir"],["I","Inode"],["K","NextFileHasLongLinkpath"],["L","NextFileHasLongPath"],["M","ContinuationFile"],["N","OldGnuLongPath"],["S","SparseFile"],["V","TapeVolumeHeader"],["X","OldExtendedHeader"]]);Jw.code=new Map(Array.from(Jw.name).map(t=>[t[1],t[0]]))});var id=E((plt,O9)=>{"use strict";var flt=rd(),eNe=hg(),hD=Symbol("slurp");O9.exports=class extends eNe{constructor(e,r,i){super();switch(this.pause(),this.extended=r,this.globalExtended=i,this.header=e,this.startBlockSize=512*Math.ceil(e.size/512),this.blockRemain=this.startBlockSize,this.remain=e.size,this.type=e.type,this.meta=!1,this.ignore=!1,this.type){case"File":case"OldFile":case"Link":case"SymbolicLink":case"CharacterDevice":case"BlockDevice":case"Directory":case"FIFO":case"ContiguousFile":case"GNUDumpDir":break;case"NextFileHasLongLinkpath":case"NextFileHasLongPath":case"OldGnuLongPath":case"GlobalExtendedHeader":case"ExtendedHeader":case"OldExtendedHeader":this.meta=!0;break;default:this.ignore=!0}this.path=e.path,this.mode=e.mode,this.mode&&(this.mode=this.mode&4095),this.uid=e.uid,this.gid=e.gid,this.uname=e.uname,this.gname=e.gname,this.size=e.size,this.mtime=e.mtime,this.atime=e.atime,this.ctime=e.ctime,this.linkpath=e.linkpath,this.uname=e.uname,this.gname=e.gname,r&&this[hD](r),i&&this[hD](i,!0)}write(e){let r=e.length;if(r>this.blockRemain)throw new Error("writing more to entry than is appropriate");let i=this.remain,n=this.blockRemain;return this.remain=Math.max(0,i-r),this.blockRemain=Math.max(0,n-r),this.ignore?!0:i>=r?super.write(e):super.write(e.slice(0,i))}[hD](e,r){for(let i in e)e[i]!==null&&e[i]!==void 0&&!(r&&i==="path")&&(this[i]=e[i])}}});var H9=E(pD=>{"use strict";var dlt=pD.encode=(t,e)=>{if(Number.isSafeInteger(t))t<0?rNe(t,e):tNe(t,e);else throw Error("cannot encode number outside of javascript safe integer range");return e},tNe=(t,e)=>{e[0]=128;for(var r=e.length;r>1;r--)e[r-1]=t&255,t=Math.floor(t/256)},rNe=(t,e)=>{e[0]=255;var r=!1;t=t*-1;for(var i=e.length;i>1;i--){var n=t&255;t=Math.floor(t/256),r?e[i-1]=K9(n):n===0?e[i-1]=0:(r=!0,e[i-1]=U9(n))}},Clt=pD.parse=t=>{var e=t[t.length-1],r=t[0],i;if(r===128)i=nNe(t.slice(1,t.length));else if(r===255)i=iNe(t);else throw Error("invalid base256 encoding");if(!Number.isSafeInteger(i))throw Error("parsed number outside of javascript safe integer range");return i},iNe=t=>{for(var e=t.length,r=0,i=!1,n=e-1;n>-1;n--){var s=t[n],o;i?o=K9(s):s===0?o=s:(i=!0,o=U9(s)),o!==0&&(r-=o*Math.pow(256,e-n-1))}return r},nNe=t=>{for(var e=t.length,r=0,i=e-1;i>-1;i--){var n=t[i];n!==0&&(r+=n*Math.pow(256,e-i-1))}return r},K9=t=>(255^t)&255,U9=t=>(255^t)+1&255});var Cg=E((Elt,G9)=>{"use strict";var dD=rd(),dg=require("path").posix,j9=H9(),CD=Symbol("slurp"),Hn=Symbol("type"),Y9=class{constructor(e,r,i,n){this.cksumValid=!1,this.needPax=!1,this.nullBlock=!1,this.block=null,this.path=null,this.mode=null,this.uid=null,this.gid=null,this.size=null,this.mtime=null,this.cksum=null,this[Hn]="0",this.linkpath=null,this.uname=null,this.gname=null,this.devmaj=0,this.devmin=0,this.atime=null,this.ctime=null,Buffer.isBuffer(e)?this.decode(e,r||0,i,n):e&&this.set(e)}decode(e,r,i,n){if(r||(r=0),!e||!(e.length>=r+512))throw new Error("need 512 bytes for header");if(this.path=fc(e,r,100),this.mode=DA(e,r+100,8),this.uid=DA(e,r+108,8),this.gid=DA(e,r+116,8),this.size=DA(e,r+124,12),this.mtime=mD(e,r+136,12),this.cksum=DA(e,r+148,12),this[CD](i),this[CD](n,!0),this[Hn]=fc(e,r+156,1),this[Hn]===""&&(this[Hn]="0"),this[Hn]==="0"&&this.path.substr(-1)==="/"&&(this[Hn]="5"),this[Hn]==="5"&&(this.size=0),this.linkpath=fc(e,r+157,100),e.slice(r+257,r+265).toString()==="ustar\x0000")if(this.uname=fc(e,r+265,32),this.gname=fc(e,r+297,32),this.devmaj=DA(e,r+329,8),this.devmin=DA(e,r+337,8),e[r+475]!==0){let o=fc(e,r+345,155);this.path=o+"/"+this.path}else{let o=fc(e,r+345,130);o&&(this.path=o+"/"+this.path),this.atime=mD(e,r+476,12),this.ctime=mD(e,r+488,12)}let s=8*32;for(let o=r;o=r+512))throw new Error("need 512 bytes for header");let i=this.ctime||this.atime?130:155,n=sNe(this.path||"",i),s=n[0],o=n[1];this.needPax=n[2],this.needPax=hc(e,r,100,s)||this.needPax,this.needPax=RA(e,r+100,8,this.mode)||this.needPax,this.needPax=RA(e,r+108,8,this.uid)||this.needPax,this.needPax=RA(e,r+116,8,this.gid)||this.needPax,this.needPax=RA(e,r+124,12,this.size)||this.needPax,this.needPax=ED(e,r+136,12,this.mtime)||this.needPax,e[r+156]=this[Hn].charCodeAt(0),this.needPax=hc(e,r+157,100,this.linkpath)||this.needPax,e.write("ustar\x0000",r+257,8),this.needPax=hc(e,r+265,32,this.uname)||this.needPax,this.needPax=hc(e,r+297,32,this.gname)||this.needPax,this.needPax=RA(e,r+329,8,this.devmaj)||this.needPax,this.needPax=RA(e,r+337,8,this.devmin)||this.needPax,this.needPax=hc(e,r+345,i,o)||this.needPax,e[r+475]!==0?this.needPax=hc(e,r+345,155,o)||this.needPax:(this.needPax=hc(e,r+345,130,o)||this.needPax,this.needPax=ED(e,r+476,12,this.atime)||this.needPax,this.needPax=ED(e,r+488,12,this.ctime)||this.needPax);let a=8*32;for(let l=r;l{let r=100,i=t,n="",s,o=dg.parse(t).root||".";if(Buffer.byteLength(i)r&&Buffer.byteLength(n)<=e?s=[i.substr(0,r-1),n,!0]:(i=dg.join(dg.basename(n),i),n=dg.dirname(n));while(n!==o&&!s);s||(s=[t.substr(0,r-1),"",!0])}return s},fc=(t,e,r)=>t.slice(e,e+r).toString("utf8").replace(/\0.*/,""),mD=(t,e,r)=>oNe(DA(t,e,r)),oNe=t=>t===null?null:new Date(t*1e3),DA=(t,e,r)=>t[e]&128?j9.parse(t.slice(e,e+r)):aNe(t,e,r),ANe=t=>isNaN(t)?null:t,aNe=(t,e,r)=>ANe(parseInt(t.slice(e,e+r).toString("utf8").replace(/\0.*$/,"").trim(),8)),lNe={12:8589934591,8:2097151},RA=(t,e,r,i)=>i===null?!1:i>lNe[r]||i<0?(j9.encode(i,t.slice(e,e+r)),!0):(cNe(t,e,r,i),!1),cNe=(t,e,r,i)=>t.write(uNe(i,r),e,r,"ascii"),uNe=(t,e)=>gNe(Math.floor(t).toString(8),e),gNe=(t,e)=>(t.length===e-1?t:new Array(e-t.length-1).join("0")+t+" ")+"\0",ED=(t,e,r,i)=>i===null?!1:RA(t,e,r,i.getTime()/1e3),fNe=new Array(156).join("\0"),hc=(t,e,r,i)=>i===null?!1:(t.write(i+fNe,e,r,"utf8"),i.length!==Buffer.byteLength(i)||i.length>r);G9.exports=Y9});var zw=E((Ilt,q9)=>{"use strict";var hNe=Cg(),pNe=require("path"),Ww=class{constructor(e,r){this.atime=e.atime||null,this.charset=e.charset||null,this.comment=e.comment||null,this.ctime=e.ctime||null,this.gid=e.gid||null,this.gname=e.gname||null,this.linkpath=e.linkpath||null,this.mtime=e.mtime||null,this.path=e.path||null,this.size=e.size||null,this.uid=e.uid||null,this.uname=e.uname||null,this.dev=e.dev||null,this.ino=e.ino||null,this.nlink=e.nlink||null,this.global=r||!1}encode(){let e=this.encodeBody();if(e==="")return null;let r=Buffer.byteLength(e),i=512*Math.ceil(1+r/512),n=Buffer.allocUnsafe(i);for(let s=0;s<512;s++)n[s]=0;new hNe({path:("PaxHeader/"+pNe.basename(this.path)).slice(0,99),mode:this.mode||420,uid:this.uid||null,gid:this.gid||null,size:r,mtime:this.mtime||null,type:this.global?"GlobalExtendedHeader":"ExtendedHeader",linkpath:"",uname:this.uname||"",gname:this.gname||"",devmaj:0,devmin:0,atime:this.atime||null,ctime:this.ctime||null}).encode(n),n.write(e,512,r,"utf8");for(let s=r+512;s=Math.pow(10,s)&&(s+=1),s+n+i}};Ww.parse=(t,e,r)=>new Ww(dNe(CNe(t),e),r);var dNe=(t,e)=>e?Object.keys(t).reduce((r,i)=>(r[i]=t[i],r),e):t,CNe=t=>t.replace(/\n$/,"").split(` -`).reduce(mNe,Object.create(null)),mNe=(t,e)=>{let r=parseInt(e,10);if(r!==Buffer.byteLength(e)+1)return t;e=e.substr((r+" ").length);let i=e.split("="),n=i.shift().replace(/^SCHILY\.(dev|ino|nlink)/,"$1");if(!n)return t;let s=i.join("=");return t[n]=/^([A-Z]+\.)?([mac]|birth|creation)time$/.test(n)?new Date(s*1e3):/^[0-9]+$/.test(s)?+s:s,t};q9.exports=Ww});var Vw=E((ylt,J9)=>{"use strict";J9.exports=t=>class extends t{warn(e,r,i={}){this.file&&(i.file=this.file),this.cwd&&(i.cwd=this.cwd),i.code=r instanceof Error&&r.code||e,i.tarCode=e,!this.strict&&i.recoverable!==!1?(r instanceof Error&&(i=Object.assign(r,i),r=r.message),this.emit("warn",i.tarCode,r,i)):r instanceof Error?this.emit("error",Object.assign(r,i)):this.emit("error",Object.assign(new Error(`${e}: ${r}`),i))}}});var yD=E((wlt,W9)=>{"use strict";var _w=["|","<",">","?",":"],ID=_w.map(t=>String.fromCharCode(61440+t.charCodeAt(0))),ENe=new Map(_w.map((t,e)=>[t,ID[e]])),INe=new Map(ID.map((t,e)=>[t,_w[e]]));W9.exports={encode:t=>_w.reduce((e,r)=>e.split(r).join(ENe.get(r)),t),decode:t=>ID.reduce((e,r)=>e.split(r).join(INe.get(r)),t)}});var V9=E((Blt,z9)=>{"use strict";z9.exports=(t,e,r)=>(t&=4095,r&&(t=(t|384)&~18),e&&(t&256&&(t|=64),t&32&&(t|=8),t&4&&(t|=1)),t)});var xD=E((xlt,_9)=>{"use strict";var X9=hg(),Z9=zw(),$9=Cg(),Qlt=id(),bo=require("fs"),mg=require("path"),blt=rd(),yNe=16*1024*1024,eV=Symbol("process"),tV=Symbol("file"),rV=Symbol("directory"),wD=Symbol("symlink"),iV=Symbol("hardlink"),nd=Symbol("header"),Xw=Symbol("read"),BD=Symbol("lstat"),Zw=Symbol("onlstat"),QD=Symbol("onread"),bD=Symbol("onreadlink"),vD=Symbol("openfile"),SD=Symbol("onopenfile"),pc=Symbol("close"),$w=Symbol("mode"),nV=Vw(),wNe=yD(),sV=V9(),eB=nV(class extends X9{constructor(e,r){if(r=r||{},super(r),typeof e!="string")throw new TypeError("path is required");this.path=e,this.portable=!!r.portable,this.myuid=process.getuid&&process.getuid(),this.myuser=process.env.USER||"",this.maxReadSize=r.maxReadSize||yNe,this.linkCache=r.linkCache||new Map,this.statCache=r.statCache||new Map,this.preservePaths=!!r.preservePaths,this.cwd=r.cwd||process.cwd(),this.strict=!!r.strict,this.noPax=!!r.noPax,this.noMtime=!!r.noMtime,this.mtime=r.mtime||null,typeof r.onwarn=="function"&&this.on("warn",r.onwarn);let i=!1;if(!this.preservePaths&&mg.win32.isAbsolute(e)){let n=mg.win32.parse(e);this.path=e.substr(n.root.length),i=n.root}this.win32=!!r.win32||process.platform==="win32",this.win32&&(this.path=wNe.decode(this.path.replace(/\\/g,"/")),e=e.replace(/\\/g,"/")),this.absolute=r.absolute||mg.resolve(this.cwd,e),this.path===""&&(this.path="./"),i&&this.warn("TAR_ENTRY_INFO",`stripping ${i} from absolute path`,{entry:this,path:i+this.path}),this.statCache.has(this.absolute)?this[Zw](this.statCache.get(this.absolute)):this[BD]()}[BD](){bo.lstat(this.absolute,(e,r)=>{if(e)return this.emit("error",e);this[Zw](r)})}[Zw](e){this.statCache.set(this.absolute,e),this.stat=e,e.isFile()||(e.size=0),this.type=BNe(e),this.emit("stat",e),this[eV]()}[eV](){switch(this.type){case"File":return this[tV]();case"Directory":return this[rV]();case"SymbolicLink":return this[wD]();default:return this.end()}}[$w](e){return sV(e,this.type==="Directory",this.portable)}[nd](){this.type==="Directory"&&this.portable&&(this.noMtime=!0),this.header=new $9({path:this.path,linkpath:this.linkpath,mode:this[$w](this.stat.mode),uid:this.portable?null:this.stat.uid,gid:this.portable?null:this.stat.gid,size:this.stat.size,mtime:this.noMtime?null:this.mtime||this.stat.mtime,type:this.type,uname:this.portable?null:this.stat.uid===this.myuid?this.myuser:"",atime:this.portable?null:this.stat.atime,ctime:this.portable?null:this.stat.ctime}),this.header.encode()&&!this.noPax&&this.write(new Z9({atime:this.portable?null:this.header.atime,ctime:this.portable?null:this.header.ctime,gid:this.portable?null:this.header.gid,mtime:this.noMtime?null:this.mtime||this.header.mtime,path:this.path,linkpath:this.linkpath,size:this.header.size,uid:this.portable?null:this.header.uid,uname:this.portable?null:this.header.uname,dev:this.portable?null:this.stat.dev,ino:this.portable?null:this.stat.ino,nlink:this.portable?null:this.stat.nlink}).encode()),this.write(this.header.block)}[rV](){this.path.substr(-1)!=="/"&&(this.path+="/"),this.stat.size=0,this[nd](),this.end()}[wD](){bo.readlink(this.absolute,(e,r)=>{if(e)return this.emit("error",e);this[bD](r)})}[bD](e){this.linkpath=e.replace(/\\/g,"/"),this[nd](),this.end()}[iV](e){this.type="Link",this.linkpath=mg.relative(this.cwd,e).replace(/\\/g,"/"),this.stat.size=0,this[nd](),this.end()}[tV](){if(this.stat.nlink>1){let e=this.stat.dev+":"+this.stat.ino;if(this.linkCache.has(e)){let r=this.linkCache.get(e);if(r.indexOf(this.cwd)===0)return this[iV](r)}this.linkCache.set(e,this.absolute)}if(this[nd](),this.stat.size===0)return this.end();this[vD]()}[vD](){bo.open(this.absolute,"r",(e,r)=>{if(e)return this.emit("error",e);this[SD](r)})}[SD](e){let r=512*Math.ceil(this.stat.size/512),i=Math.min(r,this.maxReadSize),n=Buffer.allocUnsafe(i);this[Xw](e,n,0,n.length,0,this.stat.size,r)}[Xw](e,r,i,n,s,o,a){bo.read(e,r,i,n,s,(l,c)=>{if(l)return this[pc](e,()=>this.emit("error",l));this[QD](e,r,i,n,s,o,a,c)})}[pc](e,r){bo.close(e,r)}[QD](e,r,i,n,s,o,a,l){if(l<=0&&o>0){let u=new Error("encountered unexpected EOF");return u.path=this.absolute,u.syscall="read",u.code="EOF",this[pc](e,()=>this.emit("error",u))}if(l>o){let u=new Error("did not encounter expected EOF");return u.path=this.absolute,u.syscall="read",u.code="EOF",this[pc](e,()=>this.emit("error",u))}if(l===o)for(let u=l;uu?this.emit("error",u):this.end());i>=n&&(r=Buffer.allocUnsafe(n),i=0),n=r.length-i,this[Xw](e,r,i,n,s,o,a)}}),oV=class extends eB{constructor(e,r){super(e,r)}[BD](){this[Zw](bo.lstatSync(this.absolute))}[wD](){this[bD](bo.readlinkSync(this.absolute))}[vD](){this[SD](bo.openSync(this.absolute,"r"))}[Xw](e,r,i,n,s,o,a){let l=!0;try{let c=bo.readSync(e,r,i,n,s);this[QD](e,r,i,n,s,o,a,c),l=!1}finally{if(l)try{this[pc](e,()=>{})}catch(c){}}}[pc](e,r){bo.closeSync(e),r()}},QNe=nV(class extends X9{constructor(e,r){r=r||{},super(r),this.preservePaths=!!r.preservePaths,this.portable=!!r.portable,this.strict=!!r.strict,this.noPax=!!r.noPax,this.noMtime=!!r.noMtime,this.readEntry=e,this.type=e.type,this.type==="Directory"&&this.portable&&(this.noMtime=!0),this.path=e.path,this.mode=this[$w](e.mode),this.uid=this.portable?null:e.uid,this.gid=this.portable?null:e.gid,this.uname=this.portable?null:e.uname,this.gname=this.portable?null:e.gname,this.size=e.size,this.mtime=this.noMtime?null:r.mtime||e.mtime,this.atime=this.portable?null:e.atime,this.ctime=this.portable?null:e.ctime,this.linkpath=e.linkpath,typeof r.onwarn=="function"&&this.on("warn",r.onwarn);let i=!1;if(mg.isAbsolute(this.path)&&!this.preservePaths){let n=mg.parse(this.path);i=n.root,this.path=this.path.substr(n.root.length)}this.remain=e.size,this.blockRemain=e.startBlockSize,this.header=new $9({path:this.path,linkpath:this.linkpath,mode:this.mode,uid:this.portable?null:this.uid,gid:this.portable?null:this.gid,size:this.size,mtime:this.noMtime?null:this.mtime,type:this.type,uname:this.portable?null:this.uname,atime:this.portable?null:this.atime,ctime:this.portable?null:this.ctime}),i&&this.warn("TAR_ENTRY_INFO",`stripping ${i} from absolute path`,{entry:this,path:i+this.path}),this.header.encode()&&!this.noPax&&super.write(new Z9({atime:this.portable?null:this.atime,ctime:this.portable?null:this.ctime,gid:this.portable?null:this.gid,mtime:this.noMtime?null:this.mtime,path:this.path,linkpath:this.linkpath,size:this.size,uid:this.portable?null:this.uid,uname:this.portable?null:this.uname,dev:this.portable?null:this.readEntry.dev,ino:this.portable?null:this.readEntry.ino,nlink:this.portable?null:this.readEntry.nlink}).encode()),super.write(this.header.block),e.pipe(this)}[$w](e){return sV(e,this.type==="Directory",this.portable)}write(e){let r=e.length;if(r>this.blockRemain)throw new Error("writing more to entry than is appropriate");return this.blockRemain-=r,super.write(e)}end(){return this.blockRemain&&this.write(Buffer.alloc(this.blockRemain)),super.end()}});eB.Sync=oV;eB.Tar=QNe;var BNe=t=>t.isFile()?"File":t.isDirectory()?"Directory":t.isSymbolicLink()?"SymbolicLink":"Unsupported";_9.exports=eB});var AB=E((Plt,aV)=>{"use strict";var kD=class{constructor(e,r){this.path=e||"./",this.absolute=r,this.entry=null,this.stat=null,this.readdir=null,this.pending=!1,this.ignore=!1,this.piped=!1}},bNe=hg(),vNe=fD(),SNe=id(),PD=xD(),xNe=PD.Sync,kNe=PD.Tar,PNe=Rh(),AV=Buffer.alloc(1024),tB=Symbol("onStat"),rB=Symbol("ended"),vo=Symbol("queue"),Eg=Symbol("current"),dc=Symbol("process"),iB=Symbol("processing"),lV=Symbol("processJob"),So=Symbol("jobs"),DD=Symbol("jobDone"),nB=Symbol("addFSEntry"),cV=Symbol("addTarEntry"),RD=Symbol("stat"),FD=Symbol("readdir"),sB=Symbol("onreaddir"),oB=Symbol("pipe"),uV=Symbol("entry"),ND=Symbol("entryOpt"),LD=Symbol("writeEntryClass"),gV=Symbol("write"),TD=Symbol("ondrain"),aB=require("fs"),fV=require("path"),DNe=Vw(),MD=DNe(class extends bNe{constructor(e){super(e);e=e||Object.create(null),this.opt=e,this.file=e.file||"",this.cwd=e.cwd||process.cwd(),this.maxReadSize=e.maxReadSize,this.preservePaths=!!e.preservePaths,this.strict=!!e.strict,this.noPax=!!e.noPax,this.prefix=(e.prefix||"").replace(/(\\|\/)+$/,""),this.linkCache=e.linkCache||new Map,this.statCache=e.statCache||new Map,this.readdirCache=e.readdirCache||new Map,this[LD]=PD,typeof e.onwarn=="function"&&this.on("warn",e.onwarn),this.portable=!!e.portable,this.zip=null,e.gzip?(typeof e.gzip!="object"&&(e.gzip={}),this.portable&&(e.gzip.portable=!0),this.zip=new vNe.Gzip(e.gzip),this.zip.on("data",r=>super.write(r)),this.zip.on("end",r=>super.end()),this.zip.on("drain",r=>this[TD]()),this.on("resume",r=>this.zip.resume())):this.on("drain",this[TD]),this.noDirRecurse=!!e.noDirRecurse,this.follow=!!e.follow,this.noMtime=!!e.noMtime,this.mtime=e.mtime||null,this.filter=typeof e.filter=="function"?e.filter:r=>!0,this[vo]=new PNe,this[So]=0,this.jobs=+e.jobs||4,this[iB]=!1,this[rB]=!1}[gV](e){return super.write(e)}add(e){return this.write(e),this}end(e){return e&&this.write(e),this[rB]=!0,this[dc](),this}write(e){if(this[rB])throw new Error("write after end");return e instanceof SNe?this[cV](e):this[nB](e),this.flowing}[cV](e){let r=fV.resolve(this.cwd,e.path);if(this.prefix&&(e.path=this.prefix+"/"+e.path.replace(/^\.(\/+|$)/,"")),!this.filter(e.path,e))e.resume();else{let i=new kD(e.path,r,!1);i.entry=new kNe(e,this[ND](i)),i.entry.on("end",n=>this[DD](i)),this[So]+=1,this[vo].push(i)}this[dc]()}[nB](e){let r=fV.resolve(this.cwd,e);this.prefix&&(e=this.prefix+"/"+e.replace(/^\.(\/+|$)/,"")),this[vo].push(new kD(e,r)),this[dc]()}[RD](e){e.pending=!0,this[So]+=1;let r=this.follow?"stat":"lstat";aB[r](e.absolute,(i,n)=>{e.pending=!1,this[So]-=1,i?this.emit("error",i):this[tB](e,n)})}[tB](e,r){this.statCache.set(e.absolute,r),e.stat=r,this.filter(e.path,r)||(e.ignore=!0),this[dc]()}[FD](e){e.pending=!0,this[So]+=1,aB.readdir(e.absolute,(r,i)=>{if(e.pending=!1,this[So]-=1,r)return this.emit("error",r);this[sB](e,i)})}[sB](e,r){this.readdirCache.set(e.absolute,r),e.readdir=r,this[dc]()}[dc](){if(!this[iB]){this[iB]=!0;for(let e=this[vo].head;e!==null&&this[So]this.warn(r,i,n),noPax:this.noPax,cwd:this.cwd,absolute:e.absolute,preservePaths:this.preservePaths,maxReadSize:this.maxReadSize,strict:this.strict,portable:this.portable,linkCache:this.linkCache,statCache:this.statCache,noMtime:this.noMtime,mtime:this.mtime}}[uV](e){this[So]+=1;try{return new this[LD](e.path,this[ND](e)).on("end",()=>this[DD](e)).on("error",r=>this.emit("error",r))}catch(r){this.emit("error",r)}}[TD](){this[Eg]&&this[Eg].entry&&this[Eg].entry.resume()}[oB](e){e.piped=!0,e.readdir&&e.readdir.forEach(n=>{let s=this.prefix?e.path.slice(this.prefix.length+1)||"./":e.path,o=s==="./"?"":s.replace(/\/*$/,"/");this[nB](o+n)});let r=e.entry,i=this.zip;i?r.on("data",n=>{i.write(n)||r.pause()}):r.on("data",n=>{super.write(n)||r.pause()})}pause(){return this.zip&&this.zip.pause(),super.pause()}}),hV=class extends MD{constructor(e){super(e);this[LD]=xNe}pause(){}resume(){}[RD](e){let r=this.follow?"statSync":"lstatSync";this[tB](e,aB[r](e.absolute))}[FD](e,r){this[sB](e,aB.readdirSync(e.absolute))}[oB](e){let r=e.entry,i=this.zip;e.readdir&&e.readdir.forEach(n=>{let s=this.prefix?e.path.slice(this.prefix.length+1)||"./":e.path,o=s==="./"?"":s.replace(/\/*$/,"/");this[nB](o+n)}),i?r.on("data",n=>{i.write(n)}):r.on("data",n=>{super[gV](n)})}};MD.Sync=hV;aV.exports=MD});var bg=E(sd=>{"use strict";var RNe=hg(),FNe=require("events").EventEmitter,ls=require("fs"),lB=process.binding("fs"),Dlt=lB.writeBuffers,NNe=lB.FSReqWrap||lB.FSReqCallback,Ig=Symbol("_autoClose"),xo=Symbol("_close"),od=Symbol("_ended"),Jt=Symbol("_fd"),pV=Symbol("_finished"),Cc=Symbol("_flags"),OD=Symbol("_flush"),KD=Symbol("_handleChunk"),UD=Symbol("_makeBuf"),HD=Symbol("_mode"),cB=Symbol("_needDrain"),yg=Symbol("_onerror"),wg=Symbol("_onopen"),GD=Symbol("_onread"),mc=Symbol("_onwrite"),FA=Symbol("_open"),NA=Symbol("_path"),Ec=Symbol("_pos"),ko=Symbol("_queue"),Bg=Symbol("_read"),dV=Symbol("_readSize"),LA=Symbol("_reading"),uB=Symbol("_remain"),CV=Symbol("_size"),gB=Symbol("_write"),Qg=Symbol("_writing"),fB=Symbol("_defaultFlag"),jD=class extends RNe{constructor(e,r){if(r=r||{},super(r),this.writable=!1,typeof e!="string")throw new TypeError("path must be a string");this[Jt]=typeof r.fd=="number"?r.fd:null,this[NA]=e,this[dV]=r.readSize||16*1024*1024,this[LA]=!1,this[CV]=typeof r.size=="number"?r.size:Infinity,this[uB]=this[CV],this[Ig]=typeof r.autoClose=="boolean"?r.autoClose:!0,typeof this[Jt]=="number"?this[Bg]():this[FA]()}get fd(){return this[Jt]}get path(){return this[NA]}write(){throw new TypeError("this is a readable stream")}end(){throw new TypeError("this is a readable stream")}[FA](){ls.open(this[NA],"r",(e,r)=>this[wg](e,r))}[wg](e,r){e?this[yg](e):(this[Jt]=r,this.emit("open",r),this[Bg]())}[UD](){return Buffer.allocUnsafe(Math.min(this[dV],this[uB]))}[Bg](){if(!this[LA]){this[LA]=!0;let e=this[UD]();if(e.length===0)return process.nextTick(()=>this[GD](null,0,e));ls.read(this[Jt],e,0,e.length,null,(r,i,n)=>this[GD](r,i,n))}}[GD](e,r,i){this[LA]=!1,e?this[yg](e):this[KD](r,i)&&this[Bg]()}[xo](){this[Ig]&&typeof this[Jt]=="number"&&(ls.close(this[Jt],e=>this.emit("close")),this[Jt]=null)}[yg](e){this[LA]=!0,this[xo](),this.emit("error",e)}[KD](e,r){let i=!1;return this[uB]-=e,e>0&&(i=super.write(ethis[wg](e,r))}[wg](e,r){this[fB]&&this[Cc]==="r+"&&e&&e.code==="ENOENT"?(this[Cc]="w",this[FA]()):e?this[yg](e):(this[Jt]=r,this.emit("open",r),this[OD]())}end(e,r){e&&this.write(e,r),this[od]=!0,!this[Qg]&&!this[ko].length&&typeof this[Jt]=="number"&&this[mc](null,0)}write(e,r){return typeof e=="string"&&(e=new Buffer(e,r)),this[od]?(this.emit("error",new Error("write() after end()")),!1):this[Jt]===null||this[Qg]||this[ko].length?(this[ko].push(e),this[cB]=!0,!1):(this[Qg]=!0,this[gB](e),!0)}[gB](e){ls.write(this[Jt],e,0,e.length,this[Ec],(r,i)=>this[mc](r,i))}[mc](e,r){e?this[yg](e):(this[Ec]!==null&&(this[Ec]+=r),this[ko].length?this[OD]():(this[Qg]=!1,this[od]&&!this[pV]?(this[pV]=!0,this[xo](),this.emit("finish")):this[cB]&&(this[cB]=!1,this.emit("drain"))))}[OD](){if(this[ko].length===0)this[od]&&this[mc](null,0);else if(this[ko].length===1)this[gB](this[ko].pop());else{let e=this[ko];this[ko]=[],LNe(this[Jt],e,this[Ec],(r,i)=>this[mc](r,i))}}[xo](){this[Ig]&&typeof this[Jt]=="number"&&(ls.close(this[Jt],e=>this.emit("close")),this[Jt]=null)}},EV=class extends YD{[FA](){let e;try{e=ls.openSync(this[NA],this[Cc],this[HD])}catch(r){if(this[fB]&&this[Cc]==="r+"&&r&&r.code==="ENOENT")return this[Cc]="w",this[FA]();throw r}this[wg](null,e)}[xo](){if(this[Ig]&&typeof this[Jt]=="number"){try{ls.closeSync(this[Jt])}catch(e){}this[Jt]=null,this.emit("close")}}[gB](e){try{this[mc](null,ls.writeSync(this[Jt],e,0,e.length,this[Ec]))}catch(r){this[mc](r,0)}}},LNe=(t,e,r,i)=>{let n=(o,a)=>i(o,a,e),s=new NNe;s.oncomplete=n,lB.writeBuffers(t,e,r,s)};sd.ReadStream=jD;sd.ReadStreamSync=mV;sd.WriteStream=YD;sd.WriteStreamSync=EV});var ld=E((Llt,IV)=>{"use strict";var TNe=Vw(),Flt=require("path"),MNe=Cg(),ONe=require("events"),KNe=Rh(),UNe=1024*1024,HNe=id(),yV=zw(),GNe=fD(),qD=Buffer.from([31,139]),cs=Symbol("state"),Ic=Symbol("writeEntry"),xa=Symbol("readEntry"),JD=Symbol("nextEntry"),wV=Symbol("processEntry"),us=Symbol("extendedHeader"),ad=Symbol("globalExtendedHeader"),TA=Symbol("meta"),BV=Symbol("emitMeta"),Ar=Symbol("buffer"),ka=Symbol("queue"),yc=Symbol("ended"),QV=Symbol("emittedEnd"),wc=Symbol("emit"),Qn=Symbol("unzip"),hB=Symbol("consumeChunk"),pB=Symbol("consumeChunkSub"),WD=Symbol("consumeBody"),bV=Symbol("consumeMeta"),vV=Symbol("consumeHeader"),dB=Symbol("consuming"),zD=Symbol("bufferConcat"),VD=Symbol("maybeEnd"),Ad=Symbol("writing"),MA=Symbol("aborted"),CB=Symbol("onDone"),Bc=Symbol("sawValidEntry"),mB=Symbol("sawNullBlock"),EB=Symbol("sawEOF"),jNe=t=>!0;IV.exports=TNe(class extends ONe{constructor(e){e=e||{},super(e),this.file=e.file||"",this[Bc]=null,this.on(CB,r=>{(this[cs]==="begin"||this[Bc]===!1)&&this.warn("TAR_BAD_ARCHIVE","Unrecognized archive format")}),e.ondone?this.on(CB,e.ondone):this.on(CB,r=>{this.emit("prefinish"),this.emit("finish"),this.emit("end"),this.emit("close")}),this.strict=!!e.strict,this.maxMetaEntrySize=e.maxMetaEntrySize||UNe,this.filter=typeof e.filter=="function"?e.filter:jNe,this.writable=!0,this.readable=!1,this[ka]=new KNe,this[Ar]=null,this[xa]=null,this[Ic]=null,this[cs]="begin",this[TA]="",this[us]=null,this[ad]=null,this[yc]=!1,this[Qn]=null,this[MA]=!1,this[mB]=!1,this[EB]=!1,typeof e.onwarn=="function"&&this.on("warn",e.onwarn),typeof e.onentry=="function"&&this.on("entry",e.onentry)}[vV](e,r){this[Bc]===null&&(this[Bc]=!1);let i;try{i=new MNe(e,r,this[us],this[ad])}catch(n){return this.warn("TAR_ENTRY_INVALID",n)}if(i.nullBlock)this[mB]?(this[EB]=!0,this[cs]==="begin"&&(this[cs]="header"),this[wc]("eof")):(this[mB]=!0,this[wc]("nullBlock"));else if(this[mB]=!1,!i.cksumValid)this.warn("TAR_ENTRY_INVALID","checksum failure",{header:i});else if(!i.path)this.warn("TAR_ENTRY_INVALID","path is required",{header:i});else{let n=i.type;if(/^(Symbolic)?Link$/.test(n)&&!i.linkpath)this.warn("TAR_ENTRY_INVALID","linkpath required",{header:i});else if(!/^(Symbolic)?Link$/.test(n)&&i.linkpath)this.warn("TAR_ENTRY_INVALID","linkpath forbidden",{header:i});else{let s=this[Ic]=new HNe(i,this[us],this[ad]);if(!this[Bc])if(s.remain){let o=()=>{s.invalid||(this[Bc]=!0)};s.on("end",o)}else this[Bc]=!0;s.meta?s.size>this.maxMetaEntrySize?(s.ignore=!0,this[wc]("ignoredEntry",s),this[cs]="ignore",s.resume()):s.size>0&&(this[TA]="",s.on("data",o=>this[TA]+=o),this[cs]="meta"):(this[us]=null,s.ignore=s.ignore||!this.filter(s.path,s),s.ignore?(this[wc]("ignoredEntry",s),this[cs]=s.remain?"ignore":"header",s.resume()):(s.remain?this[cs]="body":(this[cs]="header",s.end()),this[xa]?this[ka].push(s):(this[ka].push(s),this[JD]())))}}}[wV](e){let r=!0;return e?Array.isArray(e)?this.emit.apply(this,e):(this[xa]=e,this.emit("entry",e),e.emittedEnd||(e.on("end",i=>this[JD]()),r=!1)):(this[xa]=null,r=!1),r}[JD](){do;while(this[wV](this[ka].shift()));if(!this[ka].length){let e=this[xa];!e||e.flowing||e.size===e.remain?this[Ad]||this.emit("drain"):e.once("drain",i=>this.emit("drain"))}}[WD](e,r){let i=this[Ic],n=i.blockRemain,s=n>=e.length&&r===0?e:e.slice(r,r+n);return i.write(s),i.blockRemain||(this[cs]="header",this[Ic]=null,i.end()),s.length}[bV](e,r){let i=this[Ic],n=this[WD](e,r);return this[Ic]||this[BV](i),n}[wc](e,r,i){!this[ka].length&&!this[xa]?this.emit(e,r,i):this[ka].push([e,r,i])}[BV](e){switch(this[wc]("meta",this[TA]),e.type){case"ExtendedHeader":case"OldExtendedHeader":this[us]=yV.parse(this[TA],this[us],!1);break;case"GlobalExtendedHeader":this[ad]=yV.parse(this[TA],this[ad],!0);break;case"NextFileHasLongPath":case"OldGnuLongPath":this[us]=this[us]||Object.create(null),this[us].path=this[TA].replace(/\0.*/,"");break;case"NextFileHasLongLinkpath":this[us]=this[us]||Object.create(null),this[us].linkpath=this[TA].replace(/\0.*/,"");break;default:throw new Error("unknown meta: "+e.type)}}abort(e){this[MA]=!0,this.emit("abort",e),this.warn("TAR_ABORT",e,{recoverable:!1})}write(e){if(this[MA])return;if(this[Qn]===null&&e){if(this[Ar]&&(e=Buffer.concat([this[Ar],e]),this[Ar]=null),e.lengththis[hB](s)),this[Qn].on("error",s=>this.abort(s)),this[Qn].on("end",s=>{this[yc]=!0,this[hB]()}),this[Ad]=!0;let n=this[Qn][i?"end":"write"](e);return this[Ad]=!1,n}}this[Ad]=!0,this[Qn]?this[Qn].write(e):this[hB](e),this[Ad]=!1;let r=this[ka].length?!1:this[xa]?this[xa].flowing:!0;return!r&&!this[ka].length&&this[xa].once("drain",i=>this.emit("drain")),r}[zD](e){e&&!this[MA]&&(this[Ar]=this[Ar]?Buffer.concat([this[Ar],e]):e)}[VD](){if(this[yc]&&!this[QV]&&!this[MA]&&!this[dB]){this[QV]=!0;let e=this[Ic];if(e&&e.blockRemain){let r=this[Ar]?this[Ar].length:0;this.warn("TAR_BAD_ARCHIVE",`Truncated input (needed ${e.blockRemain} more bytes, only ${r} available)`,{entry:e}),this[Ar]&&e.write(this[Ar]),e.end()}this[wc](CB)}}[hB](e){if(this[dB])this[zD](e);else if(!e&&!this[Ar])this[VD]();else{if(this[dB]=!0,this[Ar]){this[zD](e);let r=this[Ar];this[Ar]=null,this[pB](r)}else this[pB](e);for(;this[Ar]&&this[Ar].length>=512&&!this[MA]&&!this[EB];){let r=this[Ar];this[Ar]=null,this[pB](r)}this[dB]=!1}(!this[Ar]||this[yc])&&this[VD]()}[pB](e){let r=0,i=e.length;for(;r+512<=i&&!this[MA]&&!this[EB];)switch(this[cs]){case"begin":case"header":this[vV](e,r),r+=512;break;case"ignore":case"body":r+=this[WD](e,r);break;case"meta":r+=this[bV](e,r);break;default:throw new Error("invalid state: "+this[cs])}r{"use strict";var YNe=fg(),xV=ld(),vg=require("fs"),qNe=bg(),kV=require("path"),Tlt=SV.exports=(t,e,r)=>{typeof t=="function"?(r=t,e=null,t={}):Array.isArray(t)&&(e=t,t={}),typeof e=="function"&&(r=e,e=null),e?e=Array.from(e):e=[];let i=YNe(t);if(i.sync&&typeof r=="function")throw new TypeError("callback not supported for sync tar functions");if(!i.file&&typeof r=="function")throw new TypeError("callback only supported with file option");return e.length&&WNe(i,e),i.noResume||JNe(i),i.file&&i.sync?zNe(i):i.file?VNe(i,r):PV(i)},JNe=t=>{let e=t.onentry;t.onentry=e?r=>{e(r),r.resume()}:r=>r.resume()},WNe=(t,e)=>{let r=new Map(e.map(s=>[s.replace(/\/+$/,""),!0])),i=t.filter,n=(s,o)=>{let a=o||kV.parse(s).root||".",l=s===a?!1:r.has(s)?r.get(s):n(kV.dirname(s),a);return r.set(s,l),l};t.filter=i?(s,o)=>i(s,o)&&n(s.replace(/\/+$/,"")):s=>n(s.replace(/\/+$/,""))},zNe=t=>{let e=PV(t),r=t.file,i=!0,n;try{let s=vg.statSync(r),o=t.maxReadSize||16*1024*1024;if(s.size{let r=new xV(t),i=t.maxReadSize||16*1024*1024,n=t.file,s=new Promise((o,a)=>{r.on("error",a),r.on("end",o),vg.stat(n,(l,c)=>{if(l)a(l);else{let u=new qNe.ReadStream(n,{readSize:i,size:c.size});u.on("error",a),u.pipe(r)}})});return e?s.then(e,e):s},PV=t=>new xV(t)});var TV=E((Ult,DV)=>{"use strict";var _Ne=fg(),yB=AB(),Olt=require("fs"),RV=bg(),FV=IB(),NV=require("path"),Klt=DV.exports=(t,e,r)=>{if(typeof e=="function"&&(r=e),Array.isArray(t)&&(e=t,t={}),!e||!Array.isArray(e)||!e.length)throw new TypeError("no files or directories specified");e=Array.from(e);let i=_Ne(t);if(i.sync&&typeof r=="function")throw new TypeError("callback not supported for sync tar functions");if(!i.file&&typeof r=="function")throw new TypeError("callback only supported with file option");return i.file&&i.sync?XNe(i,e):i.file?ZNe(i,e,r):i.sync?$Ne(i,e):eLe(i,e)},XNe=(t,e)=>{let r=new yB.Sync(t),i=new RV.WriteStreamSync(t.file,{mode:t.mode||438});r.pipe(i),LV(r,e)},ZNe=(t,e,r)=>{let i=new yB(t),n=new RV.WriteStream(t.file,{mode:t.mode||438});i.pipe(n);let s=new Promise((o,a)=>{n.on("error",a),n.on("close",o),i.on("error",a)});return _D(i,e),r?s.then(r,r):s},LV=(t,e)=>{e.forEach(r=>{r.charAt(0)==="@"?FV({file:NV.resolve(t.cwd,r.substr(1)),sync:!0,noResume:!0,onentry:i=>t.add(i)}):t.add(r)}),t.end()},_D=(t,e)=>{for(;e.length;){let r=e.shift();if(r.charAt(0)==="@")return FV({file:NV.resolve(t.cwd,r.substr(1)),noResume:!0,onentry:i=>t.add(i)}).then(i=>_D(t,e));t.add(r)}t.end()},$Ne=(t,e)=>{let r=new yB.Sync(t);return LV(r,e),r},eLe=(t,e)=>{let r=new yB(t);return _D(r,e),r}});var XD=E((jlt,MV)=>{"use strict";var tLe=fg(),OV=AB(),Hlt=ld(),gs=require("fs"),KV=bg(),UV=IB(),HV=require("path"),GV=Cg(),Glt=MV.exports=(t,e,r)=>{let i=tLe(t);if(!i.file)throw new TypeError("file is required");if(i.gzip)throw new TypeError("cannot append to compressed archives");if(!e||!Array.isArray(e)||!e.length)throw new TypeError("no files or directories specified");return e=Array.from(e),i.sync?rLe(i,e):iLe(i,e,r)},rLe=(t,e)=>{let r=new OV.Sync(t),i=!0,n,s;try{try{n=gs.openSync(t.file,"r+")}catch(l){if(l.code==="ENOENT")n=gs.openSync(t.file,"w+");else throw l}let o=gs.fstatSync(n),a=Buffer.alloc(512);e:for(s=0;so.size)break;s+=c,t.mtimeCache&&t.mtimeCache.set(l.path,l.mtime)}i=!1,nLe(t,r,s,n,e)}finally{if(i)try{gs.closeSync(n)}catch(o){}}},nLe=(t,e,r,i,n)=>{let s=new KV.WriteStreamSync(t.file,{fd:i,start:r});e.pipe(s),sLe(e,n)},iLe=(t,e,r)=>{e=Array.from(e);let i=new OV(t),n=(o,a,l)=>{let c=(p,d)=>{p?gs.close(o,m=>l(p)):l(null,d)},u=0;if(a===0)return c(null,0);let g=0,f=Buffer.alloc(512),h=(p,d)=>{if(p)return c(p);if(g+=d,g<512&&d)return gs.read(o,f,g,f.length-g,u+g,h);if(u===0&&f[0]===31&&f[1]===139)return c(new Error("cannot append to compressed archives"));if(g<512)return c(null,u);let m=new GV(f);if(!m.cksumValid)return c(null,u);let I=512*Math.ceil(m.size/512);if(u+I+512>a||(u+=I+512,u>=a))return c(null,u);t.mtimeCache&&t.mtimeCache.set(m.path,m.mtime),g=0,gs.read(o,f,0,512,u,h)};gs.read(o,f,0,512,u,h)},s=new Promise((o,a)=>{i.on("error",a);let l="r+",c=(u,g)=>{if(u&&u.code==="ENOENT"&&l==="r+")return l="w+",gs.open(t.file,l,c);if(u)return a(u);gs.fstat(g,(f,h)=>{if(f)return a(f);n(g,h.size,(p,d)=>{if(p)return a(p);let m=new KV.WriteStream(t.file,{fd:g,start:d});i.pipe(m),m.on("error",a),m.on("close",o),jV(i,e)})})};gs.open(t.file,l,c)});return r?s.then(r,r):s},sLe=(t,e)=>{e.forEach(r=>{r.charAt(0)==="@"?UV({file:HV.resolve(t.cwd,r.substr(1)),sync:!0,noResume:!0,onentry:i=>t.add(i)}):t.add(r)}),t.end()},jV=(t,e)=>{for(;e.length;){let r=e.shift();if(r.charAt(0)==="@")return UV({file:HV.resolve(t.cwd,r.substr(1)),noResume:!0,onentry:i=>t.add(i)}).then(i=>jV(t,e));t.add(r)}t.end()}});var qV=E((qlt,YV)=>{"use strict";var oLe=fg(),aLe=XD(),Ylt=YV.exports=(t,e,r)=>{let i=oLe(t);if(!i.file)throw new TypeError("file is required");if(i.gzip)throw new TypeError("cannot append to compressed archives");if(!e||!Array.isArray(e)||!e.length)throw new TypeError("no files or directories specified");return e=Array.from(e),ALe(i),aLe(i,e,r)},ALe=t=>{let e=t.filter;t.mtimeCache||(t.mtimeCache=new Map),t.filter=e?(r,i)=>e(r,i)&&!(t.mtimeCache.get(r)>i.mtime):(r,i)=>!(t.mtimeCache.get(r)>i.mtime)}});var zV=E((Jlt,JV)=>{var{promisify:WV}=require("util"),OA=require("fs"),lLe=t=>{if(!t)t={mode:511,fs:OA};else if(typeof t=="object")t=P({mode:511,fs:OA},t);else if(typeof t=="number")t={mode:t,fs:OA};else if(typeof t=="string")t={mode:parseInt(t,8),fs:OA};else throw new TypeError("invalid options argument");return t.mkdir=t.mkdir||t.fs.mkdir||OA.mkdir,t.mkdirAsync=WV(t.mkdir),t.stat=t.stat||t.fs.stat||OA.stat,t.statAsync=WV(t.stat),t.statSync=t.statSync||t.fs.statSync||OA.statSync,t.mkdirSync=t.mkdirSync||t.fs.mkdirSync||OA.mkdirSync,t};JV.exports=lLe});var _V=E((Wlt,VV)=>{var cLe=process.env.__TESTING_MKDIRP_PLATFORM__||process.platform,{resolve:uLe,parse:gLe}=require("path"),fLe=t=>{if(/\0/.test(t))throw Object.assign(new TypeError("path must be a string without null bytes"),{path:t,code:"ERR_INVALID_ARG_VALUE"});if(t=uLe(t),cLe==="win32"){let e=/[*|"<>?:]/,{root:r}=gLe(t);if(e.test(t.substr(r.length)))throw Object.assign(new Error("Illegal characters in path."),{path:t,code:"EINVAL"})}return t};VV.exports=fLe});var t7=E((zlt,XV)=>{var{dirname:ZV}=require("path"),$V=(t,e,r=void 0)=>r===e?Promise.resolve():t.statAsync(e).then(i=>i.isDirectory()?r:void 0,i=>i.code==="ENOENT"?$V(t,ZV(e),e):void 0),e7=(t,e,r=void 0)=>{if(r!==e)try{return t.statSync(e).isDirectory()?r:void 0}catch(i){return i.code==="ENOENT"?e7(t,ZV(e),e):void 0}};XV.exports={findMade:$V,findMadeSync:e7}});var eR=E((Vlt,r7)=>{var{dirname:i7}=require("path"),ZD=(t,e,r)=>{e.recursive=!1;let i=i7(t);return i===t?e.mkdirAsync(t,e).catch(n=>{if(n.code!=="EISDIR")throw n}):e.mkdirAsync(t,e).then(()=>r||t,n=>{if(n.code==="ENOENT")return ZD(i,e).then(s=>ZD(t,e,s));if(n.code!=="EEXIST"&&n.code!=="EROFS")throw n;return e.statAsync(t).then(s=>{if(s.isDirectory())return r;throw n},()=>{throw n})})},$D=(t,e,r)=>{let i=i7(t);if(e.recursive=!1,i===t)try{return e.mkdirSync(t,e)}catch(n){if(n.code!=="EISDIR")throw n;return}try{return e.mkdirSync(t,e),r||t}catch(n){if(n.code==="ENOENT")return $D(t,e,$D(i,e,r));if(n.code!=="EEXIST"&&n.code!=="EROFS")throw n;try{if(!e.statSync(t).isDirectory())throw n}catch(s){throw n}}};r7.exports={mkdirpManual:ZD,mkdirpManualSync:$D}});var o7=E((_lt,n7)=>{var{dirname:s7}=require("path"),{findMade:hLe,findMadeSync:pLe}=t7(),{mkdirpManual:dLe,mkdirpManualSync:CLe}=eR(),mLe=(t,e)=>(e.recursive=!0,s7(t)===t?e.mkdirAsync(t,e):hLe(e,t).then(i=>e.mkdirAsync(t,e).then(()=>i).catch(n=>{if(n.code==="ENOENT")return dLe(t,e);throw n}))),ELe=(t,e)=>{if(e.recursive=!0,s7(t)===t)return e.mkdirSync(t,e);let i=pLe(e,t);try{return e.mkdirSync(t,e),i}catch(n){if(n.code==="ENOENT")return CLe(t,e);throw n}};n7.exports={mkdirpNative:mLe,mkdirpNativeSync:ELe}});var c7=E((Xlt,a7)=>{var A7=require("fs"),ILe=process.env.__TESTING_MKDIRP_NODE_VERSION__||process.version,tR=ILe.replace(/^v/,"").split("."),l7=+tR[0]>10||+tR[0]==10&&+tR[1]>=12,yLe=l7?t=>t.mkdir===A7.mkdir:()=>!1,wLe=l7?t=>t.mkdirSync===A7.mkdirSync:()=>!1;a7.exports={useNative:yLe,useNativeSync:wLe}});var d7=E((Zlt,u7)=>{var Sg=zV(),xg=_V(),{mkdirpNative:g7,mkdirpNativeSync:f7}=o7(),{mkdirpManual:h7,mkdirpManualSync:p7}=eR(),{useNative:BLe,useNativeSync:QLe}=c7(),kg=(t,e)=>(t=xg(t),e=Sg(e),BLe(e)?g7(t,e):h7(t,e)),bLe=(t,e)=>(t=xg(t),e=Sg(e),QLe(e)?f7(t,e):p7(t,e));kg.sync=bLe;kg.native=(t,e)=>g7(xg(t),Sg(e));kg.manual=(t,e)=>h7(xg(t),Sg(e));kg.nativeSync=(t,e)=>f7(xg(t),Sg(e));kg.manualSync=(t,e)=>p7(xg(t),Sg(e));u7.exports=kg});var B7=E(($lt,C7)=>{"use strict";var fs=require("fs"),Qc=require("path"),vLe=fs.lchown?"lchown":"chown",SLe=fs.lchownSync?"lchownSync":"chownSync",m7=fs.lchown&&!process.version.match(/v1[1-9]+\./)&&!process.version.match(/v10\.[6-9]/),E7=(t,e,r)=>{try{return fs[SLe](t,e,r)}catch(i){if(i.code!=="ENOENT")throw i}},xLe=(t,e,r)=>{try{return fs.chownSync(t,e,r)}catch(i){if(i.code!=="ENOENT")throw i}},kLe=m7?(t,e,r,i)=>n=>{!n||n.code!=="EISDIR"?i(n):fs.chown(t,e,r,i)}:(t,e,r,i)=>i,rR=m7?(t,e,r)=>{try{return E7(t,e,r)}catch(i){if(i.code!=="EISDIR")throw i;xLe(t,e,r)}}:(t,e,r)=>E7(t,e,r),PLe=process.version,I7=(t,e,r)=>fs.readdir(t,e,r),DLe=(t,e)=>fs.readdirSync(t,e);/^v4\./.test(PLe)&&(I7=(t,e,r)=>fs.readdir(t,r));var wB=(t,e,r,i)=>{fs[vLe](t,e,r,kLe(t,e,r,n=>{i(n&&n.code!=="ENOENT"?n:null)}))},y7=(t,e,r,i,n)=>{if(typeof e=="string")return fs.lstat(Qc.resolve(t,e),(s,o)=>{if(s)return n(s.code!=="ENOENT"?s:null);o.name=e,y7(t,o,r,i,n)});if(e.isDirectory())iR(Qc.resolve(t,e.name),r,i,s=>{if(s)return n(s);let o=Qc.resolve(t,e.name);wB(o,r,i,n)});else{let s=Qc.resolve(t,e.name);wB(s,r,i,n)}},iR=(t,e,r,i)=>{I7(t,{withFileTypes:!0},(n,s)=>{if(n){if(n.code==="ENOENT")return i();if(n.code!=="ENOTDIR"&&n.code!=="ENOTSUP")return i(n)}if(n||!s.length)return wB(t,e,r,i);let o=s.length,a=null,l=c=>{if(!a){if(c)return i(a=c);if(--o==0)return wB(t,e,r,i)}};s.forEach(c=>y7(t,c,e,r,l))})},RLe=(t,e,r,i)=>{if(typeof e=="string")try{let n=fs.lstatSync(Qc.resolve(t,e));n.name=e,e=n}catch(n){if(n.code==="ENOENT")return;throw n}e.isDirectory()&&w7(Qc.resolve(t,e.name),r,i),rR(Qc.resolve(t,e.name),r,i)},w7=(t,e,r)=>{let i;try{i=DLe(t,{withFileTypes:!0})}catch(n){if(n.code==="ENOENT")return;if(n.code==="ENOTDIR"||n.code==="ENOTSUP")return rR(t,e,r);throw n}return i&&i.length&&i.forEach(n=>RLe(t,n,e,r)),rR(t,e,r)};C7.exports=iR;iR.sync=w7});var S7=E((rct,nR)=>{"use strict";var Q7=d7(),hs=require("fs"),BB=require("path"),b7=B7(),sR=class extends Error{constructor(e,r){super("Cannot extract through symbolic link");this.path=r,this.symlink=e}get name(){return"SylinkError"}},cd=class extends Error{constructor(e,r){super(r+": Cannot cd into '"+e+"'");this.path=e,this.code=r}get name(){return"CwdError"}},ect=nR.exports=(t,e,r)=>{let i=e.umask,n=e.mode|448,s=(n&i)!=0,o=e.uid,a=e.gid,l=typeof o=="number"&&typeof a=="number"&&(o!==e.processUid||a!==e.processGid),c=e.preserve,u=e.unlink,g=e.cache,f=e.cwd,h=(m,I)=>{m?r(m):(g.set(t,!0),I&&l?b7(I,o,a,B=>h(B)):s?hs.chmod(t,n,r):r())};if(g&&g.get(t)===!0)return h();if(t===f)return hs.stat(t,(m,I)=>{(m||!I.isDirectory())&&(m=new cd(t,m&&m.code||"ENOTDIR")),h(m)});if(c)return Q7(t,{mode:n}).then(m=>h(null,m),h);let d=BB.relative(f,t).split(/\/|\\/);QB(f,d,n,g,u,f,null,h)},QB=(t,e,r,i,n,s,o,a)=>{if(!e.length)return a(null,o);let l=e.shift(),c=t+"/"+l;if(i.get(c))return QB(c,e,r,i,n,s,o,a);hs.mkdir(c,r,v7(c,e,r,i,n,s,o,a))},v7=(t,e,r,i,n,s,o,a)=>l=>{if(l){if(l.path&&BB.dirname(l.path)===s&&(l.code==="ENOTDIR"||l.code==="ENOENT"))return a(new cd(s,l.code));hs.lstat(t,(c,u)=>{if(c)a(c);else if(u.isDirectory())QB(t,e,r,i,n,s,o,a);else if(n)hs.unlink(t,g=>{if(g)return a(g);hs.mkdir(t,r,v7(t,e,r,i,n,s,o,a))});else{if(u.isSymbolicLink())return a(new sR(t,t+"/"+e.join("/")));a(l)}})}else o=o||t,QB(t,e,r,i,n,s,o,a)},tct=nR.exports.sync=(t,e)=>{let r=e.umask,i=e.mode|448,n=(i&r)!=0,s=e.uid,o=e.gid,a=typeof s=="number"&&typeof o=="number"&&(s!==e.processUid||o!==e.processGid),l=e.preserve,c=e.unlink,u=e.cache,g=e.cwd,f=m=>{u.set(t,!0),m&&a&&b7.sync(m,s,o),n&&hs.chmodSync(t,i)};if(u&&u.get(t)===!0)return f();if(t===g){let m=!1,I="ENOTDIR";try{m=hs.statSync(t).isDirectory()}catch(B){I=B.code}finally{if(!m)throw new cd(t,I)}f();return}if(l)return f(Q7.sync(t,i));let p=BB.relative(g,t).split(/\/|\\/),d=null;for(let m=p.shift(),I=g;m&&(I+="/"+m);m=p.shift())if(!u.get(I))try{hs.mkdirSync(I,i),d=d||I,u.set(I,!0)}catch(B){if(B.path&&BB.dirname(B.path)===g&&(B.code==="ENOTDIR"||B.code==="ENOENT"))return new cd(g,B.code);let b=hs.lstatSync(I);if(b.isDirectory()){u.set(I,!0);continue}else if(c){hs.unlinkSync(I),hs.mkdirSync(I,i),d=d||I,u.set(I,!0);continue}else if(b.isSymbolicLink())return new sR(I,I+"/"+p.join("/"))}return f(d)}});var P7=E((ict,x7)=>{var k7=require("assert");x7.exports=()=>{let t=new Map,e=new Map,{join:r}=require("path"),i=u=>r(u).split(/[\\\/]/).slice(0,-1).reduce((g,f)=>g.length?g.concat(r(g[g.length-1],f)):[f],[]),n=new Set,s=u=>{let g=e.get(u);if(!g)throw new Error("function does not have any path reservations");return{paths:g.paths.map(f=>t.get(f)),dirs:[...g.dirs].map(f=>t.get(f))}},o=u=>{let{paths:g,dirs:f}=s(u);return g.every(h=>h[0]===u)&&f.every(h=>h[0]instanceof Set&&h[0].has(u))},a=u=>n.has(u)||!o(u)?!1:(n.add(u),u(()=>l(u)),!0),l=u=>{if(!n.has(u))return!1;let{paths:g,dirs:f}=e.get(u),h=new Set;return g.forEach(p=>{let d=t.get(p);k7.equal(d[0],u),d.length===1?t.delete(p):(d.shift(),typeof d[0]=="function"?h.add(d[0]):d[0].forEach(m=>h.add(m)))}),f.forEach(p=>{let d=t.get(p);k7(d[0]instanceof Set),d[0].size===1&&d.length===1?t.delete(p):d[0].size===1?(d.shift(),h.add(d[0])):d[0].delete(u)}),n.delete(u),h.forEach(p=>a(p)),!0};return{check:o,reserve:(u,g)=>{let f=new Set(u.map(h=>i(h)).reduce((h,p)=>h.concat(p)));return e.set(g,{dirs:f,paths:u}),u.forEach(h=>{let p=t.get(h);p?p.push(g):t.set(h,[g])}),f.forEach(h=>{let p=t.get(h);p?p[p.length-1]instanceof Set?p[p.length-1].add(g):p.push(new Set([g])):t.set(h,[new Set([g])])}),a(g)}}}});var F7=E((nct,D7)=>{var FLe=process.env.__FAKE_PLATFORM__||process.platform,NLe=FLe==="win32",LLe=global.__FAKE_TESTING_FS__||require("fs"),{O_CREAT:TLe,O_TRUNC:MLe,O_WRONLY:OLe,UV_FS_O_FILEMAP:R7=0}=LLe.constants,KLe=NLe&&!!R7,ULe=512*1024,HLe=R7|MLe|TLe|OLe;D7.exports=KLe?t=>t"w"});var hR=E((Act,N7)=>{"use strict";var GLe=require("assert"),sct=require("events").EventEmitter,jLe=ld(),Ut=require("fs"),YLe=bg(),Pa=require("path"),oR=S7(),oct=oR.sync,L7=yD(),qLe=P7(),T7=Symbol("onEntry"),aR=Symbol("checkFs"),M7=Symbol("checkFs2"),AR=Symbol("isReusable"),Da=Symbol("makeFs"),lR=Symbol("file"),cR=Symbol("directory"),bB=Symbol("link"),O7=Symbol("symlink"),K7=Symbol("hardlink"),U7=Symbol("unsupported"),act=Symbol("unknown"),H7=Symbol("checkPath"),Pg=Symbol("mkdir"),nn=Symbol("onError"),vB=Symbol("pending"),G7=Symbol("pend"),Dg=Symbol("unpend"),uR=Symbol("ended"),gR=Symbol("maybeClose"),fR=Symbol("skip"),ud=Symbol("doChown"),gd=Symbol("uid"),fd=Symbol("gid"),j7=require("crypto"),Y7=F7(),SB=()=>{throw new Error("sync function called cb somehow?!?")},JLe=(t,e)=>{if(process.platform!=="win32")return Ut.unlink(t,e);let r=t+".DELETE."+j7.randomBytes(16).toString("hex");Ut.rename(t,r,i=>{if(i)return e(i);Ut.unlink(r,e)})},WLe=t=>{if(process.platform!=="win32")return Ut.unlinkSync(t);let e=t+".DELETE."+j7.randomBytes(16).toString("hex");Ut.renameSync(t,e),Ut.unlinkSync(e)},q7=(t,e,r)=>t===t>>>0?t:e===e>>>0?e:r,xB=class extends jLe{constructor(e){if(e||(e={}),e.ondone=r=>{this[uR]=!0,this[gR]()},super(e),this.reservations=qLe(),this.transform=typeof e.transform=="function"?e.transform:null,this.writable=!0,this.readable=!1,this[vB]=0,this[uR]=!1,this.dirCache=e.dirCache||new Map,typeof e.uid=="number"||typeof e.gid=="number"){if(typeof e.uid!="number"||typeof e.gid!="number")throw new TypeError("cannot set owner without number uid and gid");if(e.preserveOwner)throw new TypeError("cannot preserve owner in archive and also set owner explicitly");this.uid=e.uid,this.gid=e.gid,this.setOwner=!0}else this.uid=null,this.gid=null,this.setOwner=!1;e.preserveOwner===void 0&&typeof e.uid!="number"?this.preserveOwner=process.getuid&&process.getuid()===0:this.preserveOwner=!!e.preserveOwner,this.processUid=(this.preserveOwner||this.setOwner)&&process.getuid?process.getuid():null,this.processGid=(this.preserveOwner||this.setOwner)&&process.getgid?process.getgid():null,this.forceChown=e.forceChown===!0,this.win32=!!e.win32||process.platform==="win32",this.newer=!!e.newer,this.keep=!!e.keep,this.noMtime=!!e.noMtime,this.preservePaths=!!e.preservePaths,this.unlink=!!e.unlink,this.cwd=Pa.resolve(e.cwd||process.cwd()),this.strip=+e.strip||0,this.processUmask=process.umask(),this.umask=typeof e.umask=="number"?e.umask:this.processUmask,this.dmode=e.dmode||511&~this.umask,this.fmode=e.fmode||438&~this.umask,this.on("entry",r=>this[T7](r))}warn(e,r,i={}){return(e==="TAR_BAD_ARCHIVE"||e==="TAR_ABORT")&&(i.recoverable=!1),super.warn(e,r,i)}[gR](){this[uR]&&this[vB]===0&&(this.emit("prefinish"),this.emit("finish"),this.emit("end"),this.emit("close"))}[H7](e){if(this.strip){let r=e.path.split(/\/|\\/);if(r.length=this.strip&&(e.linkpath=i.slice(this.strip).join("/"))}}if(!this.preservePaths){let r=e.path;if(r.match(/(^|\/|\\)\.\.(\\|\/|$)/))return this.warn("TAR_ENTRY_ERROR","path contains '..'",{entry:e,path:r}),!1;if(Pa.win32.isAbsolute(r)){let i=Pa.win32.parse(r);e.path=r.substr(i.root.length);let n=i.root;this.warn("TAR_ENTRY_INFO",`stripping ${n} from absolute path`,{entry:e,path:r})}}if(this.win32){let r=Pa.win32.parse(e.path);e.path=r.root===""?L7.encode(e.path):r.root+L7.encode(e.path.substr(r.root.length))}return Pa.isAbsolute(e.path)?e.absolute=e.path:e.absolute=Pa.resolve(this.cwd,e.path),!0}[T7](e){if(!this[H7](e))return e.resume();switch(GLe.equal(typeof e.absolute,"string"),e.type){case"Directory":case"GNUDumpDir":e.mode&&(e.mode=e.mode|448);case"File":case"OldFile":case"ContiguousFile":case"Link":case"SymbolicLink":return this[aR](e);case"CharacterDevice":case"BlockDevice":case"FIFO":return this[U7](e)}}[nn](e,r){e.name==="CwdError"?this.emit("error",e):(this.warn("TAR_ENTRY_ERROR",e,{entry:r}),this[Dg](),r.resume())}[Pg](e,r,i){oR(e,{uid:this.uid,gid:this.gid,processUid:this.processUid,processGid:this.processGid,umask:this.processUmask,preserve:this.preservePaths,unlink:this.unlink,cache:this.dirCache,cwd:this.cwd,mode:r},i)}[ud](e){return this.forceChown||this.preserveOwner&&(typeof e.uid=="number"&&e.uid!==this.processUid||typeof e.gid=="number"&&e.gid!==this.processGid)||typeof this.uid=="number"&&this.uid!==this.processUid||typeof this.gid=="number"&&this.gid!==this.processGid}[gd](e){return q7(this.uid,e.uid,this.processUid)}[fd](e){return q7(this.gid,e.gid,this.processGid)}[lR](e,r){let i=e.mode&4095||this.fmode,n=new YLe.WriteStream(e.absolute,{flags:Y7(e.size),mode:i,autoClose:!1});n.on("error",l=>this[nn](l,e));let s=1,o=l=>{if(l)return this[nn](l,e);--s==0&&Ut.close(n.fd,c=>{r(),c?this[nn](c,e):this[Dg]()})};n.on("finish",l=>{let c=e.absolute,u=n.fd;if(e.mtime&&!this.noMtime){s++;let g=e.atime||new Date,f=e.mtime;Ut.futimes(u,g,f,h=>h?Ut.utimes(c,g,f,p=>o(p&&h)):o())}if(this[ud](e)){s++;let g=this[gd](e),f=this[fd](e);Ut.fchown(u,g,f,h=>h?Ut.chown(c,g,f,p=>o(p&&h)):o())}o()});let a=this.transform&&this.transform(e)||e;a!==e&&(a.on("error",l=>this[nn](l,e)),e.pipe(a)),a.pipe(n)}[cR](e,r){let i=e.mode&4095||this.dmode;this[Pg](e.absolute,i,n=>{if(n)return r(),this[nn](n,e);let s=1,o=a=>{--s==0&&(r(),this[Dg](),e.resume())};e.mtime&&!this.noMtime&&(s++,Ut.utimes(e.absolute,e.atime||new Date,e.mtime,o)),this[ud](e)&&(s++,Ut.chown(e.absolute,this[gd](e),this[fd](e),o)),o()})}[U7](e){e.unsupported=!0,this.warn("TAR_ENTRY_UNSUPPORTED",`unsupported entry type: ${e.type}`,{entry:e}),e.resume()}[O7](e,r){this[bB](e,e.linkpath,"symlink",r)}[K7](e,r){this[bB](e,Pa.resolve(this.cwd,e.linkpath),"link",r)}[G7](){this[vB]++}[Dg](){this[vB]--,this[gR]()}[fR](e){this[Dg](),e.resume()}[AR](e,r){return e.type==="File"&&!this.unlink&&r.isFile()&&r.nlink<=1&&process.platform!=="win32"}[aR](e){this[G7]();let r=[e.path];e.linkpath&&r.push(e.linkpath),this.reservations.reserve(r,i=>this[M7](e,i))}[M7](e,r){this[Pg](Pa.dirname(e.absolute),this.dmode,i=>{if(i)return r(),this[nn](i,e);Ut.lstat(e.absolute,(n,s)=>{s&&(this.keep||this.newer&&s.mtime>e.mtime)?(this[fR](e),r()):n||this[AR](e,s)?this[Da](null,e,r):s.isDirectory()?e.type==="Directory"?!e.mode||(s.mode&4095)===e.mode?this[Da](null,e,r):Ut.chmod(e.absolute,e.mode,o=>this[Da](o,e,r)):Ut.rmdir(e.absolute,o=>this[Da](o,e,r)):JLe(e.absolute,o=>this[Da](o,e,r))})})}[Da](e,r,i){if(e)return this[nn](e,r);switch(r.type){case"File":case"OldFile":case"ContiguousFile":return this[lR](r,i);case"Link":return this[K7](r,i);case"SymbolicLink":return this[O7](r,i);case"Directory":case"GNUDumpDir":return this[cR](r,i)}}[bB](e,r,i,n){Ut[i](r,e.absolute,s=>{if(s)return this[nn](s,e);n(),this[Dg](),e.resume()})}},J7=class extends xB{constructor(e){super(e)}[aR](e){let r=this[Pg](Pa.dirname(e.absolute),this.dmode,SB);if(r)return this[nn](r,e);try{let i=Ut.lstatSync(e.absolute);if(this.keep||this.newer&&i.mtime>e.mtime)return this[fR](e);if(this[AR](e,i))return this[Da](null,e,SB);try{return i.isDirectory()?e.type==="Directory"?e.mode&&(i.mode&4095)!==e.mode&&Ut.chmodSync(e.absolute,e.mode):Ut.rmdirSync(e.absolute):WLe(e.absolute),this[Da](null,e,SB)}catch(n){return this[nn](n,e)}}catch(i){return this[Da](null,e,SB)}}[lR](e,r){let i=e.mode&4095||this.fmode,n=l=>{let c;try{Ut.closeSync(o)}catch(u){c=u}(l||c)&&this[nn](l||c,e)},s,o;try{o=Ut.openSync(e.absolute,Y7(e.size),i)}catch(l){return n(l)}let a=this.transform&&this.transform(e)||e;a!==e&&(a.on("error",l=>this[nn](l,e)),e.pipe(a)),a.on("data",l=>{try{Ut.writeSync(o,l,0,l.length)}catch(c){n(c)}}),a.on("end",l=>{let c=null;if(e.mtime&&!this.noMtime){let u=e.atime||new Date,g=e.mtime;try{Ut.futimesSync(o,u,g)}catch(f){try{Ut.utimesSync(e.absolute,u,g)}catch(h){c=f}}}if(this[ud](e)){let u=this[gd](e),g=this[fd](e);try{Ut.fchownSync(o,u,g)}catch(f){try{Ut.chownSync(e.absolute,u,g)}catch(h){c=c||f}}}n(c)})}[cR](e,r){let i=e.mode&4095||this.dmode,n=this[Pg](e.absolute,i);if(n)return this[nn](n,e);if(e.mtime&&!this.noMtime)try{Ut.utimesSync(e.absolute,e.atime||new Date,e.mtime)}catch(s){}if(this[ud](e))try{Ut.chownSync(e.absolute,this[gd](e),this[fd](e))}catch(s){}e.resume()}[Pg](e,r){try{return oR.sync(e,{uid:this.uid,gid:this.gid,processUid:this.processUid,processGid:this.processGid,umask:this.processUmask,preserve:this.preservePaths,unlink:this.unlink,cache:this.dirCache,cwd:this.cwd,mode:r})}catch(i){return i}}[bB](e,r,i,n){try{Ut[i+"Sync"](r,e.absolute),e.resume()}catch(s){return this[nn](s,e)}}};xB.Sync=J7;N7.exports=xB});var X7=E((cct,W7)=>{"use strict";var zLe=fg(),kB=hR(),z7=require("fs"),V7=bg(),_7=require("path"),lct=W7.exports=(t,e,r)=>{typeof t=="function"?(r=t,e=null,t={}):Array.isArray(t)&&(e=t,t={}),typeof e=="function"&&(r=e,e=null),e?e=Array.from(e):e=[];let i=zLe(t);if(i.sync&&typeof r=="function")throw new TypeError("callback not supported for sync tar functions");if(!i.file&&typeof r=="function")throw new TypeError("callback only supported with file option");return e.length&&VLe(i,e),i.file&&i.sync?_Le(i):i.file?XLe(i,r):i.sync?ZLe(i):$Le(i)},VLe=(t,e)=>{let r=new Map(e.map(s=>[s.replace(/\/+$/,""),!0])),i=t.filter,n=(s,o)=>{let a=o||_7.parse(s).root||".",l=s===a?!1:r.has(s)?r.get(s):n(_7.dirname(s),a);return r.set(s,l),l};t.filter=i?(s,o)=>i(s,o)&&n(s.replace(/\/+$/,"")):s=>n(s.replace(/\/+$/,""))},_Le=t=>{let e=new kB.Sync(t),r=t.file,i=!0,n,s=z7.statSync(r),o=t.maxReadSize||16*1024*1024;new V7.ReadStreamSync(r,{readSize:o,size:s.size}).pipe(e)},XLe=(t,e)=>{let r=new kB(t),i=t.maxReadSize||16*1024*1024,n=t.file,s=new Promise((o,a)=>{r.on("error",a),r.on("close",o),z7.stat(n,(l,c)=>{if(l)a(l);else{let u=new V7.ReadStream(n,{readSize:i,size:c.size});u.on("error",a),u.pipe(r)}})});return e?s.then(e,e):s},ZLe=t=>new kB.Sync(t),$Le=t=>new kB(t)});var Z7=E($r=>{"use strict";$r.c=$r.create=TV();$r.r=$r.replace=XD();$r.t=$r.list=IB();$r.u=$r.update=qV();$r.x=$r.extract=X7();$r.Pack=AB();$r.Unpack=hR();$r.Parse=ld();$r.ReadEntry=id();$r.WriteEntry=xD();$r.Header=Cg();$r.Pax=zw();$r.types=rd()});var e_=E((gct,pR)=>{"use strict";var eTe=Object.prototype.hasOwnProperty,sn="~";function hd(){}Object.create&&(hd.prototype=Object.create(null),new hd().__proto__||(sn=!1));function tTe(t,e,r){this.fn=t,this.context=e,this.once=r||!1}function $7(t,e,r,i,n){if(typeof r!="function")throw new TypeError("The listener must be a function");var s=new tTe(r,i||t,n),o=sn?sn+e:e;return t._events[o]?t._events[o].fn?t._events[o]=[t._events[o],s]:t._events[o].push(s):(t._events[o]=s,t._eventsCount++),t}function PB(t,e){--t._eventsCount==0?t._events=new hd:delete t._events[e]}function Ti(){this._events=new hd,this._eventsCount=0}Ti.prototype.eventNames=function(){var e=[],r,i;if(this._eventsCount===0)return e;for(i in r=this._events)eTe.call(r,i)&&e.push(sn?i.slice(1):i);return Object.getOwnPropertySymbols?e.concat(Object.getOwnPropertySymbols(r)):e};Ti.prototype.listeners=function(e){var r=sn?sn+e:e,i=this._events[r];if(!i)return[];if(i.fn)return[i.fn];for(var n=0,s=i.length,o=new Array(s);n{"use strict";t_.exports=(t,e)=>(e=e||(()=>{}),t.then(r=>new Promise(i=>{i(e())}).then(()=>r),r=>new Promise(i=>{i(e())}).then(()=>{throw r})))});var n_=E((hct,DB)=>{"use strict";var rTe=r_(),dR=class extends Error{constructor(e){super(e);this.name="TimeoutError"}},i_=(t,e,r)=>new Promise((i,n)=>{if(typeof e!="number"||e<0)throw new TypeError("Expected `milliseconds` to be a positive number");if(e===Infinity){i(t);return}let s=setTimeout(()=>{if(typeof r=="function"){try{i(r())}catch(l){n(l)}return}let o=typeof r=="string"?r:`Promise timed out after ${e} milliseconds`,a=r instanceof Error?r:new dR(o);typeof t.cancel=="function"&&t.cancel(),n(a)},e);rTe(t.then(i,n),()=>{clearTimeout(s)})});DB.exports=i_;DB.exports.default=i_;DB.exports.TimeoutError=dR});var s_=E(CR=>{"use strict";Object.defineProperty(CR,"__esModule",{value:!0});function iTe(t,e,r){let i=0,n=t.length;for(;n>0;){let s=n/2|0,o=i+s;r(t[o],e)<=0?(i=++o,n-=s+1):n=s}return i}CR.default=iTe});var a_=E(mR=>{"use strict";Object.defineProperty(mR,"__esModule",{value:!0});var nTe=s_(),o_=class{constructor(){this._queue=[]}enqueue(e,r){r=Object.assign({priority:0},r);let i={priority:r.priority,run:e};if(this.size&&this._queue[this.size-1].priority>=r.priority){this._queue.push(i);return}let n=nTe.default(this._queue,i,(s,o)=>o.priority-s.priority);this._queue.splice(n,0,i)}dequeue(){let e=this._queue.shift();return e==null?void 0:e.run}filter(e){return this._queue.filter(r=>r.priority===e.priority).map(r=>r.run)}get size(){return this._queue.length}};mR.default=o_});var c_=E(ER=>{"use strict";Object.defineProperty(ER,"__esModule",{value:!0});var sTe=e_(),A_=n_(),oTe=a_(),RB=()=>{},aTe=new A_.TimeoutError,l_=class extends sTe{constructor(e){var r,i,n,s;super();if(this._intervalCount=0,this._intervalEnd=0,this._pendingCount=0,this._resolveEmpty=RB,this._resolveIdle=RB,e=Object.assign({carryoverConcurrencyCount:!1,intervalCap:Infinity,interval:0,concurrency:Infinity,autoStart:!0,queueClass:oTe.default},e),!(typeof e.intervalCap=="number"&&e.intervalCap>=1))throw new TypeError(`Expected \`intervalCap\` to be a number from 1 and up, got \`${(i=(r=e.intervalCap)===null||r===void 0?void 0:r.toString())!==null&&i!==void 0?i:""}\` (${typeof e.intervalCap})`);if(e.interval===void 0||!(Number.isFinite(e.interval)&&e.interval>=0))throw new TypeError(`Expected \`interval\` to be a finite number >= 0, got \`${(s=(n=e.interval)===null||n===void 0?void 0:n.toString())!==null&&s!==void 0?s:""}\` (${typeof e.interval})`);this._carryoverConcurrencyCount=e.carryoverConcurrencyCount,this._isIntervalIgnored=e.intervalCap===Infinity||e.interval===0,this._intervalCap=e.intervalCap,this._interval=e.interval,this._queue=new e.queueClass,this._queueClass=e.queueClass,this.concurrency=e.concurrency,this._timeout=e.timeout,this._throwOnTimeout=e.throwOnTimeout===!0,this._isPaused=e.autoStart===!1}get _doesIntervalAllowAnother(){return this._isIntervalIgnored||this._intervalCount{this._onResumeInterval()},r)),!0}return!1}_tryToStartAnother(){if(this._queue.size===0)return this._intervalId&&clearInterval(this._intervalId),this._intervalId=void 0,this._resolvePromises(),!1;if(!this._isPaused){let e=!this._isIntervalPaused();if(this._doesIntervalAllowAnother&&this._doesConcurrentAllowAnother){let r=this._queue.dequeue();return r?(this.emit("active"),r(),e&&this._initializeIntervalIfNeeded(),!0):!1}}return!1}_initializeIntervalIfNeeded(){this._isIntervalIgnored||this._intervalId!==void 0||(this._intervalId=setInterval(()=>{this._onInterval()},this._interval),this._intervalEnd=Date.now()+this._interval)}_onInterval(){this._intervalCount===0&&this._pendingCount===0&&this._intervalId&&(clearInterval(this._intervalId),this._intervalId=void 0),this._intervalCount=this._carryoverConcurrencyCount?this._pendingCount:0,this._processQueue()}_processQueue(){for(;this._tryToStartAnother(););}get concurrency(){return this._concurrency}set concurrency(e){if(!(typeof e=="number"&&e>=1))throw new TypeError(`Expected \`concurrency\` to be a number from 1 and up, got \`${e}\` (${typeof e})`);this._concurrency=e,this._processQueue()}async add(e,r={}){return new Promise((i,n)=>{let s=async()=>{this._pendingCount++,this._intervalCount++;try{let o=this._timeout===void 0&&r.timeout===void 0?e():A_.default(Promise.resolve(e()),r.timeout===void 0?this._timeout:r.timeout,()=>{(r.throwOnTimeout===void 0?this._throwOnTimeout:r.throwOnTimeout)&&n(aTe)});i(await o)}catch(o){n(o)}this._next()};this._queue.enqueue(s,r),this._tryToStartAnother(),this.emit("add")})}async addAll(e,r){return Promise.all(e.map(async i=>this.add(i,r)))}start(){return this._isPaused?(this._isPaused=!1,this._processQueue(),this):this}pause(){this._isPaused=!0}clear(){this._queue=new this._queueClass}async onEmpty(){if(this._queue.size!==0)return new Promise(e=>{let r=this._resolveEmpty;this._resolveEmpty=()=>{r(),e()}})}async onIdle(){if(!(this._pendingCount===0&&this._queue.size===0))return new Promise(e=>{let r=this._resolveIdle;this._resolveIdle=()=>{r(),e()}})}get size(){return this._queue.size}sizeBy(e){return this._queue.filter(e).length}get pending(){return this._pendingCount}get isPaused(){return this._isPaused}get timeout(){return this._timeout}set timeout(e){this._timeout=e}};ER.default=l_});var p_=E((Ect,h_)=>{var yR;h_.exports.getContent=()=>(typeof yR=="undefined"&&(yR=require("zlib").brotliDecompressSync(Buffer.from("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","base64")).toString()),yR)});var y_=E((wR,I_)=>{(function(t,e){typeof wR=="object"?I_.exports=e():typeof define=="function"&&define.amd?define(e):t.treeify=e()})(wR,function(){function t(n,s){var o=s?"\u2514":"\u251C";return n?o+="\u2500 ":o+="\u2500\u2500\u2510",o}function e(n,s){var o=[];for(var a in n)!n.hasOwnProperty(a)||s&&typeof n[a]=="function"||o.push(a);return o}function r(n,s,o,a,l,c,u){var g="",f=0,h,p,d=a.slice(0);if(d.push([s,o])&&a.length>0&&(a.forEach(function(I,B){B>0&&(g+=(I[1]?" ":"\u2502")+" "),!p&&I[0]===s&&(p=!0)}),g+=t(n,o)+n,l&&(typeof s!="object"||s instanceof Date)&&(g+=": "+s),p&&(g+=" (circular ref.)"),u(g)),!p&&typeof s=="object"){var m=e(s,c);m.forEach(function(I){h=++f===m.length,r(I,s[I],h,d,l,c,u)})}}var i={};return i.asLines=function(n,s,o,a){var l=typeof o!="function"?o:!1;r(".",n,!1,[],s,l,a||o)},i.asTree=function(n,s,o){var a="";return r(".",n,!1,[],s,o,function(l){a+=l+` -`}),a},i})});var x_=E((Uct,bR)=>{"use strict";var pTe=t=>{let e=!1,r=!1,i=!1;for(let n=0;n{if(!(typeof t=="string"||Array.isArray(t)))throw new TypeError("Expected the input to be `string | string[]`");e=Object.assign({pascalCase:!1},e);let r=n=>e.pascalCase?n.charAt(0).toUpperCase()+n.slice(1):n;return Array.isArray(t)?t=t.map(n=>n.trim()).filter(n=>n.length).join("-"):t=t.trim(),t.length===0?"":t.length===1?e.pascalCase?t.toUpperCase():t.toLowerCase():(t!==t.toLowerCase()&&(t=pTe(t)),t=t.replace(/^[_.\- ]+/,"").toLowerCase().replace(/[_.\- ]+(\w|$)/g,(n,s)=>s.toUpperCase()).replace(/\d+(\w|$)/g,n=>n.toUpperCase()),r(t))};bR.exports=S_;bR.exports.default=S_});var Na=E(TR=>{"use strict";Object.defineProperty(TR,"__esModule",{value:!0});TR.default=L_;function L_(){}L_.prototype={diff:function(e,r){var i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},n=i.callback;typeof i=="function"&&(n=i,i={}),this.options=i;var s=this;function o(d){return n?(setTimeout(function(){n(void 0,d)},0),!0):d}e=this.castInput(e),r=this.castInput(r),e=this.removeEmpty(this.tokenize(e)),r=this.removeEmpty(this.tokenize(r));var a=r.length,l=e.length,c=1,u=a+l,g=[{newPos:-1,components:[]}],f=this.extractCommon(g[0],r,e,0);if(g[0].newPos+1>=a&&f+1>=l)return o([{value:this.join(r),count:r.length}]);function h(){for(var d=-1*c;d<=c;d+=2){var m=void 0,I=g[d-1],B=g[d+1],b=(B?B.newPos:0)-d;I&&(g[d-1]=void 0);var R=I&&I.newPos+1=a&&b+1>=l)return o(yTe(s,m.components,r,e,s.useLongestToken));g[d]=m}c++}if(n)(function d(){setTimeout(function(){if(c>u)return n();h()||d()},0)})();else for(;c<=u;){var p=h();if(p)return p}},pushComponent:function(e,r,i){var n=e[e.length-1];n&&n.added===r&&n.removed===i?e[e.length-1]={count:n.count+1,added:r,removed:i}:e.push({count:1,added:r,removed:i})},extractCommon:function(e,r,i,n){for(var s=r.length,o=i.length,a=e.newPos,l=a-n,c=0;a+1h.length?d:h}),c.value=t.join(u)}else c.value=t.join(r.slice(a,a+c.count));a+=c.count,c.added||(l+=c.count)}}var f=e[o-1];return o>1&&typeof f.value=="string"&&(f.added||f.removed)&&t.equals("",f.value)&&(e[o-2].value+=f.value,e.pop()),e}function wTe(t){return{newPos:t.newPos,components:t.components.slice(0)}}});var M_=E(Cd=>{"use strict";Object.defineProperty(Cd,"__esModule",{value:!0});Cd.diffChars=BTe;Cd.characterDiff=void 0;var bTe=QTe(Na());function QTe(t){return t&&t.__esModule?t:{default:t}}var T_=new bTe.default;Cd.characterDiff=T_;function BTe(t,e,r){return T_.diff(t,e,r)}});var OR=E(MR=>{"use strict";Object.defineProperty(MR,"__esModule",{value:!0});MR.generateOptions=vTe;function vTe(t,e){if(typeof t=="function")e.callback=t;else if(t)for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r]);return e}});var U_=E(Ng=>{"use strict";Object.defineProperty(Ng,"__esModule",{value:!0});Ng.diffWords=STe;Ng.diffWordsWithSpace=xTe;Ng.wordDiff=void 0;var PTe=kTe(Na()),DTe=OR();function kTe(t){return t&&t.__esModule?t:{default:t}}var O_=/^[A-Za-z\xC0-\u02C6\u02C8-\u02D7\u02DE-\u02FF\u1E00-\u1EFF]+$/,K_=/\S/,md=new PTe.default;Ng.wordDiff=md;md.equals=function(t,e){return this.options.ignoreCase&&(t=t.toLowerCase(),e=e.toLowerCase()),t===e||this.options.ignoreWhitespace&&!K_.test(t)&&!K_.test(e)};md.tokenize=function(t){for(var e=t.split(/(\s+|[()[\]{}'"]|\b)/),r=0;r{"use strict";Object.defineProperty(Lg,"__esModule",{value:!0});Lg.diffLines=RTe;Lg.diffTrimmedLines=FTe;Lg.lineDiff=void 0;var LTe=NTe(Na()),TTe=OR();function NTe(t){return t&&t.__esModule?t:{default:t}}var OB=new LTe.default;Lg.lineDiff=OB;OB.tokenize=function(t){var e=[],r=t.split(/(\n|\r\n)/);r[r.length-1]||r.pop();for(var i=0;i{"use strict";Object.defineProperty(Ed,"__esModule",{value:!0});Ed.diffSentences=MTe;Ed.sentenceDiff=void 0;var KTe=OTe(Na());function OTe(t){return t&&t.__esModule?t:{default:t}}var KR=new KTe.default;Ed.sentenceDiff=KR;KR.tokenize=function(t){return t.split(/(\S.+?[.!?])(?=\s+|$)/)};function MTe(t,e,r){return KR.diff(t,e,r)}});var G_=E(Id=>{"use strict";Object.defineProperty(Id,"__esModule",{value:!0});Id.diffCss=UTe;Id.cssDiff=void 0;var GTe=HTe(Na());function HTe(t){return t&&t.__esModule?t:{default:t}}var UR=new GTe.default;Id.cssDiff=UR;UR.tokenize=function(t){return t.split(/([{}:;,]|\s+)/)};function UTe(t,e,r){return UR.diff(t,e,r)}});var Y_=E(Tg=>{"use strict";Object.defineProperty(Tg,"__esModule",{value:!0});Tg.diffJson=jTe;Tg.canonicalize=UB;Tg.jsonDiff=void 0;var j_=YTe(Na()),qTe=KB();function YTe(t){return t&&t.__esModule?t:{default:t}}function HB(t){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?HB=function(r){return typeof r}:HB=function(r){return r&&typeof Symbol=="function"&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},HB(t)}var JTe=Object.prototype.toString,bc=new j_.default;Tg.jsonDiff=bc;bc.useLongestToken=!0;bc.tokenize=qTe.lineDiff.tokenize;bc.castInput=function(t){var e=this.options,r=e.undefinedReplacement,i=e.stringifyReplacer,n=i===void 0?function(s,o){return typeof o=="undefined"?r:o}:i;return typeof t=="string"?t:JSON.stringify(UB(t,null,null,n),n," ")};bc.equals=function(t,e){return j_.default.prototype.equals.call(bc,t.replace(/,([\r\n])/g,"$1"),e.replace(/,([\r\n])/g,"$1"))};function jTe(t,e,r){return bc.diff(t,e,r)}function UB(t,e,r,i,n){e=e||[],r=r||[],i&&(t=i(n,t));var s;for(s=0;s{"use strict";Object.defineProperty(yd,"__esModule",{value:!0});yd.diffArrays=WTe;yd.arrayDiff=void 0;var VTe=zTe(Na());function zTe(t){return t&&t.__esModule?t:{default:t}}var wd=new VTe.default;yd.arrayDiff=wd;wd.tokenize=function(t){return t.slice()};wd.join=wd.removeEmpty=function(t){return t};function WTe(t,e,r){return wd.diff(t,e,r)}});var GB=E(HR=>{"use strict";Object.defineProperty(HR,"__esModule",{value:!0});HR.parsePatch=_Te;function _Te(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r=t.split(/\r\n|[\n\v\f\r\x85]/),i=t.match(/\r\n|[\n\v\f\r\x85]/g)||[],n=[],s=0;function o(){var c={};for(n.push(c);s{"use strict";Object.defineProperty(GR,"__esModule",{value:!0});GR.default=XTe;function XTe(t,e,r){var i=!0,n=!1,s=!1,o=1;return function a(){if(i&&!s){if(n?o++:i=!1,t+o<=r)return o;s=!0}if(!n)return s||(i=!0),e<=t-o?-o++:(n=!0,a())}}});var V_=E(jB=>{"use strict";Object.defineProperty(jB,"__esModule",{value:!0});jB.applyPatch=W_;jB.applyPatches=ZTe;var z_=GB(),eMe=$Te(J_());function $Te(t){return t&&t.__esModule?t:{default:t}}function W_(t,e){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};if(typeof e=="string"&&(e=(0,z_.parsePatch)(e)),Array.isArray(e)){if(e.length>1)throw new Error("applyPatch only works with a single input.");e=e[0]}var i=t.split(/\r\n|[\n\v\f\r\x85]/),n=t.match(/\r\n|[\n\v\f\r\x85]/g)||[],s=e.hunks,o=r.compareLine||function(F,D,he,pe){return D===pe},a=0,l=r.fuzzFactor||0,c=0,u=0,g,f;function h(F,D){for(var he=0;he0?pe[0]:" ",Pe=pe.length>0?pe.substr(1):pe;if(Ne===" "||Ne==="-"){if(!o(D+1,i[D],Ne,Pe)&&(a++,a>l))return!1;D++}}return!0}for(var p=0;p0?ne[0]:" ",A=ne.length>0?ne.substr(1):ne,V=L.linedelimiters[J];if(q===" ")K++;else if(q==="-")i.splice(K,1),n.splice(K,1);else if(q==="+")i.splice(K,0,A),n.splice(K,0,V),K++;else if(q==="\\"){var W=L.lines[J-1]?L.lines[J-1][0]:null;W==="+"?g=!0:W==="-"&&(f=!0)}}}if(g)for(;!i[i.length-1];)i.pop(),n.pop();else f&&(i.push(""),n.push(` -`));for(var X=0;X{"use strict";Object.defineProperty(Bd,"__esModule",{value:!0});Bd.structuredPatch=__;Bd.createTwoFilesPatch=X_;Bd.createPatch=tMe;var rMe=KB();function jR(t){return sMe(t)||nMe(t)||iMe()}function iMe(){throw new TypeError("Invalid attempt to spread non-iterable instance")}function nMe(t){if(Symbol.iterator in Object(t)||Object.prototype.toString.call(t)==="[object Arguments]")return Array.from(t)}function sMe(t){if(Array.isArray(t)){for(var e=0,r=new Array(t.length);e0?l(L.lines.slice(-o.context)):[],u-=f.length,g-=f.length)}(H=f).push.apply(H,jR(R.map(function(X){return(b.added?"+":"-")+X}))),b.added?p+=R.length:h+=R.length}else{if(u)if(R.length<=o.context*2&&B=a.length-2&&R.length<=o.context){var A=/\n$/.test(r),V=/\n$/.test(i),W=R.length==0&&f.length>q.oldLines;!A&&W&&f.splice(q.oldLines,0,"\\ No newline at end of file"),(!A&&!W||!V)&&f.push("\\ No newline at end of file")}c.push(q),u=0,g=0,f=[]}h+=R.length,p+=R.length}},m=0;m{"use strict";Object.defineProperty(YB,"__esModule",{value:!0});YB.arrayEqual=oMe;YB.arrayStartsWith=Z_;function oMe(t,e){return t.length!==e.length?!1:Z_(t,e)}function Z_(t,e){if(e.length>t.length)return!1;for(var r=0;r{"use strict";Object.defineProperty(qB,"__esModule",{value:!0});qB.calcLineCount=eX;qB.merge=aMe;var AMe=YR(),lMe=GB(),qR=$_();function Mg(t){return gMe(t)||uMe(t)||cMe()}function cMe(){throw new TypeError("Invalid attempt to spread non-iterable instance")}function uMe(t){if(Symbol.iterator in Object(t)||Object.prototype.toString.call(t)==="[object Arguments]")return Array.from(t)}function gMe(t){if(Array.isArray(t)){for(var e=0,r=new Array(t.length);e{"use strict";Object.defineProperty(zR,"__esModule",{value:!0});zR.convertChangesToDMP=dMe;function dMe(t){for(var e=[],r,i,n=0;n{"use strict";Object.defineProperty(VR,"__esModule",{value:!0});VR.convertChangesToXML=CMe;function CMe(t){for(var e=[],r=0;r"):i.removed&&e.push(""),e.push(mMe(i.value)),i.added?e.push(""):i.removed&&e.push("")}return e.join("")}function mMe(t){var e=t;return e=e.replace(/&/g,"&"),e=e.replace(//g,">"),e=e.replace(/"/g,"""),e}});var CX=E(br=>{"use strict";Object.defineProperty(br,"__esModule",{value:!0});Object.defineProperty(br,"Diff",{enumerable:!0,get:function(){return EMe.default}});Object.defineProperty(br,"diffChars",{enumerable:!0,get:function(){return IMe.diffChars}});Object.defineProperty(br,"diffWords",{enumerable:!0,get:function(){return fX.diffWords}});Object.defineProperty(br,"diffWordsWithSpace",{enumerable:!0,get:function(){return fX.diffWordsWithSpace}});Object.defineProperty(br,"diffLines",{enumerable:!0,get:function(){return hX.diffLines}});Object.defineProperty(br,"diffTrimmedLines",{enumerable:!0,get:function(){return hX.diffTrimmedLines}});Object.defineProperty(br,"diffSentences",{enumerable:!0,get:function(){return yMe.diffSentences}});Object.defineProperty(br,"diffCss",{enumerable:!0,get:function(){return wMe.diffCss}});Object.defineProperty(br,"diffJson",{enumerable:!0,get:function(){return pX.diffJson}});Object.defineProperty(br,"canonicalize",{enumerable:!0,get:function(){return pX.canonicalize}});Object.defineProperty(br,"diffArrays",{enumerable:!0,get:function(){return BMe.diffArrays}});Object.defineProperty(br,"applyPatch",{enumerable:!0,get:function(){return dX.applyPatch}});Object.defineProperty(br,"applyPatches",{enumerable:!0,get:function(){return dX.applyPatches}});Object.defineProperty(br,"parsePatch",{enumerable:!0,get:function(){return QMe.parsePatch}});Object.defineProperty(br,"merge",{enumerable:!0,get:function(){return bMe.merge}});Object.defineProperty(br,"structuredPatch",{enumerable:!0,get:function(){return _R.structuredPatch}});Object.defineProperty(br,"createTwoFilesPatch",{enumerable:!0,get:function(){return _R.createTwoFilesPatch}});Object.defineProperty(br,"createPatch",{enumerable:!0,get:function(){return _R.createPatch}});Object.defineProperty(br,"convertChangesToDMP",{enumerable:!0,get:function(){return vMe.convertChangesToDMP}});Object.defineProperty(br,"convertChangesToXML",{enumerable:!0,get:function(){return SMe.convertChangesToXML}});var EMe=xMe(Na()),IMe=M_(),fX=U_(),hX=KB(),yMe=H_(),wMe=G_(),pX=Y_(),BMe=q_(),dX=V_(),QMe=GB(),bMe=cX(),_R=YR(),vMe=uX(),SMe=gX();function xMe(t){return t&&t.__esModule?t:{default:t}}});var WB=E((agt,mX)=>{var kMe=As(),PMe=Nw(),DMe=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,RMe=/^\w*$/;function FMe(t,e){if(kMe(t))return!1;var r=typeof t;return r=="number"||r=="symbol"||r=="boolean"||t==null||PMe(t)?!0:RMe.test(t)||!DMe.test(t)||e!=null&&t in Object(e)}mX.exports=FMe});var Gs=E((Agt,EX)=>{function NMe(t){var e=typeof t;return t!=null&&(e=="object"||e=="function")}EX.exports=NMe});var zB=E((lgt,IX)=>{var LMe=Ac(),TMe=Gs(),MMe="[object AsyncFunction]",OMe="[object Function]",KMe="[object GeneratorFunction]",UMe="[object Proxy]";function HMe(t){if(!TMe(t))return!1;var e=LMe(t);return e==OMe||e==KMe||e==MMe||e==UMe}IX.exports=HMe});var wX=E((cgt,yX)=>{var GMe=Ks(),jMe=GMe["__core-js_shared__"];yX.exports=jMe});var bX=E((ugt,BX)=>{var XR=wX(),QX=function(){var t=/[^.]+$/.exec(XR&&XR.keys&&XR.keys.IE_PROTO||"");return t?"Symbol(src)_1."+t:""}();function YMe(t){return!!QX&&QX in t}BX.exports=YMe});var ZR=E((ggt,vX)=>{var qMe=Function.prototype,JMe=qMe.toString;function WMe(t){if(t!=null){try{return JMe.call(t)}catch(e){}try{return t+""}catch(e){}}return""}vX.exports=WMe});var xX=E((fgt,SX)=>{var zMe=zB(),VMe=bX(),_Me=Gs(),XMe=ZR(),ZMe=/[\\^$.*+?()[\]{}|]/g,$Me=/^\[object .+?Constructor\]$/,eOe=Function.prototype,tOe=Object.prototype,rOe=eOe.toString,iOe=tOe.hasOwnProperty,nOe=RegExp("^"+rOe.call(iOe).replace(ZMe,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function sOe(t){if(!_Me(t)||VMe(t))return!1;var e=zMe(t)?nOe:$Me;return e.test(XMe(t))}SX.exports=sOe});var PX=E((hgt,kX)=>{function oOe(t,e){return t==null?void 0:t[e]}kX.exports=oOe});var UA=E((pgt,DX)=>{var aOe=xX(),AOe=PX();function lOe(t,e){var r=AOe(t,e);return aOe(r)?r:void 0}DX.exports=lOe});var Qd=E((dgt,RX)=>{var cOe=UA(),uOe=cOe(Object,"create");RX.exports=uOe});var LX=E((Cgt,FX)=>{var NX=Qd();function gOe(){this.__data__=NX?NX(null):{},this.size=0}FX.exports=gOe});var MX=E((mgt,TX)=>{function fOe(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e}TX.exports=fOe});var KX=E((Egt,OX)=>{var hOe=Qd(),pOe="__lodash_hash_undefined__",dOe=Object.prototype,COe=dOe.hasOwnProperty;function mOe(t){var e=this.__data__;if(hOe){var r=e[t];return r===pOe?void 0:r}return COe.call(e,t)?e[t]:void 0}OX.exports=mOe});var HX=E((Igt,UX)=>{var EOe=Qd(),IOe=Object.prototype,yOe=IOe.hasOwnProperty;function wOe(t){var e=this.__data__;return EOe?e[t]!==void 0:yOe.call(e,t)}UX.exports=wOe});var jX=E((ygt,GX)=>{var BOe=Qd(),QOe="__lodash_hash_undefined__";function bOe(t,e){var r=this.__data__;return this.size+=this.has(t)?0:1,r[t]=BOe&&e===void 0?QOe:e,this}GX.exports=bOe});var qX=E((wgt,YX)=>{var vOe=LX(),SOe=MX(),xOe=KX(),kOe=HX(),POe=jX();function Og(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e{function DOe(){this.__data__=[],this.size=0}JX.exports=DOe});var Kg=E((Qgt,zX)=>{function ROe(t,e){return t===e||t!==t&&e!==e}zX.exports=ROe});var bd=E((bgt,VX)=>{var FOe=Kg();function NOe(t,e){for(var r=t.length;r--;)if(FOe(t[r][0],e))return r;return-1}VX.exports=NOe});var XX=E((vgt,_X)=>{var LOe=bd(),TOe=Array.prototype,MOe=TOe.splice;function OOe(t){var e=this.__data__,r=LOe(e,t);if(r<0)return!1;var i=e.length-1;return r==i?e.pop():MOe.call(e,r,1),--this.size,!0}_X.exports=OOe});var $X=E((Sgt,ZX)=>{var KOe=bd();function UOe(t){var e=this.__data__,r=KOe(e,t);return r<0?void 0:e[r][1]}ZX.exports=UOe});var tZ=E((xgt,eZ)=>{var HOe=bd();function GOe(t){return HOe(this.__data__,t)>-1}eZ.exports=GOe});var iZ=E((kgt,rZ)=>{var jOe=bd();function YOe(t,e){var r=this.__data__,i=jOe(r,t);return i<0?(++this.size,r.push([t,e])):r[i][1]=e,this}rZ.exports=YOe});var vd=E((Pgt,nZ)=>{var qOe=WX(),JOe=XX(),WOe=$X(),zOe=tZ(),VOe=iZ();function Ug(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e{var _Oe=UA(),XOe=Ks(),ZOe=_Oe(XOe,"Map");sZ.exports=ZOe});var AZ=E((Rgt,oZ)=>{var aZ=qX(),$Oe=vd(),eKe=VB();function tKe(){this.size=0,this.__data__={hash:new aZ,map:new(eKe||$Oe),string:new aZ}}oZ.exports=tKe});var cZ=E((Fgt,lZ)=>{function rKe(t){var e=typeof t;return e=="string"||e=="number"||e=="symbol"||e=="boolean"?t!=="__proto__":t===null}lZ.exports=rKe});var Sd=E((Ngt,uZ)=>{var iKe=cZ();function nKe(t,e){var r=t.__data__;return iKe(e)?r[typeof e=="string"?"string":"hash"]:r.map}uZ.exports=nKe});var fZ=E((Lgt,gZ)=>{var sKe=Sd();function oKe(t){var e=sKe(this,t).delete(t);return this.size-=e?1:0,e}gZ.exports=oKe});var pZ=E((Tgt,hZ)=>{var aKe=Sd();function AKe(t){return aKe(this,t).get(t)}hZ.exports=AKe});var CZ=E((Mgt,dZ)=>{var lKe=Sd();function cKe(t){return lKe(this,t).has(t)}dZ.exports=cKe});var EZ=E((Ogt,mZ)=>{var uKe=Sd();function gKe(t,e){var r=uKe(this,t),i=r.size;return r.set(t,e),this.size+=r.size==i?0:1,this}mZ.exports=gKe});var _B=E((Kgt,IZ)=>{var fKe=AZ(),hKe=fZ(),pKe=pZ(),dKe=CZ(),CKe=EZ();function Hg(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e{var wZ=_B(),mKe="Expected a function";function $R(t,e){if(typeof t!="function"||e!=null&&typeof e!="function")throw new TypeError(mKe);var r=function(){var i=arguments,n=e?e.apply(this,i):i[0],s=r.cache;if(s.has(n))return s.get(n);var o=t.apply(this,i);return r.cache=s.set(n,o)||s,o};return r.cache=new($R.Cache||wZ),r}$R.Cache=wZ;yZ.exports=$R});var bZ=E((Hgt,QZ)=>{var EKe=BZ(),IKe=500;function yKe(t){var e=EKe(t,function(i){return r.size===IKe&&r.clear(),i}),r=e.cache;return e}QZ.exports=yKe});var SZ=E((Ggt,vZ)=>{var wKe=bZ(),BKe=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,QKe=/\\(\\)?/g,bKe=wKe(function(t){var e=[];return t.charCodeAt(0)===46&&e.push(""),t.replace(BKe,function(r,i,n,s){e.push(n?s.replace(QKe,"$1"):i||r)}),e});vZ.exports=bKe});var Gg=E((jgt,xZ)=>{var vKe=As(),SKe=WB(),xKe=SZ(),kKe=gg();function PKe(t,e){return vKe(t)?t:SKe(t,e)?[t]:xKe(kKe(t))}xZ.exports=PKe});var Sc=E((Ygt,kZ)=>{var DKe=Nw(),RKe=1/0;function FKe(t){if(typeof t=="string"||DKe(t))return t;var e=t+"";return e=="0"&&1/t==-RKe?"-0":e}kZ.exports=FKe});var xd=E((qgt,PZ)=>{var NKe=Gg(),LKe=Sc();function TKe(t,e){e=NKe(e,t);for(var r=0,i=e.length;t!=null&&r{var MKe=UA(),OKe=function(){try{var t=MKe(Object,"defineProperty");return t({},"",{}),t}catch(e){}}();DZ.exports=OKe});var jg=E((Wgt,RZ)=>{var FZ=eF();function KKe(t,e,r){e=="__proto__"&&FZ?FZ(t,e,{configurable:!0,enumerable:!0,value:r,writable:!0}):t[e]=r}RZ.exports=KKe});var XB=E((zgt,NZ)=>{var UKe=jg(),HKe=Kg(),GKe=Object.prototype,jKe=GKe.hasOwnProperty;function YKe(t,e,r){var i=t[e];(!(jKe.call(t,e)&&HKe(i,r))||r===void 0&&!(e in t))&&UKe(t,e,r)}NZ.exports=YKe});var kd=E((Vgt,LZ)=>{var qKe=9007199254740991,JKe=/^(?:0|[1-9]\d*)$/;function WKe(t,e){var r=typeof t;return e=e==null?qKe:e,!!e&&(r=="number"||r!="symbol"&&JKe.test(t))&&t>-1&&t%1==0&&t{var zKe=XB(),VKe=Gg(),_Ke=kd(),MZ=Gs(),XKe=Sc();function ZKe(t,e,r,i){if(!MZ(t))return t;e=VKe(e,t);for(var n=-1,s=e.length,o=s-1,a=t;a!=null&&++n{var $Ke=xd(),e1e=tF(),t1e=Gg();function r1e(t,e,r){for(var i=-1,n=e.length,s={};++i{function i1e(t,e){return t!=null&&e in Object(t)}UZ.exports=i1e});var jZ=E(($gt,GZ)=>{var n1e=Ac(),s1e=Qo(),o1e="[object Arguments]";function a1e(t){return s1e(t)&&n1e(t)==o1e}GZ.exports=a1e});var Pd=E((eft,YZ)=>{var qZ=jZ(),A1e=Qo(),JZ=Object.prototype,l1e=JZ.hasOwnProperty,c1e=JZ.propertyIsEnumerable,u1e=qZ(function(){return arguments}())?qZ:function(t){return A1e(t)&&l1e.call(t,"callee")&&!c1e.call(t,"callee")};YZ.exports=u1e});var ZB=E((tft,WZ)=>{var g1e=9007199254740991;function f1e(t){return typeof t=="number"&&t>-1&&t%1==0&&t<=g1e}WZ.exports=f1e});var rF=E((rft,zZ)=>{var h1e=Gg(),p1e=Pd(),d1e=As(),C1e=kd(),m1e=ZB(),E1e=Sc();function I1e(t,e,r){e=h1e(e,t);for(var i=-1,n=e.length,s=!1;++i{var y1e=HZ(),w1e=rF();function B1e(t,e){return t!=null&&w1e(t,e,y1e)}VZ.exports=B1e});var XZ=E((nft,_Z)=>{var Q1e=KZ(),b1e=iF();function v1e(t,e){return Q1e(t,e,function(r,i){return b1e(t,i)})}_Z.exports=v1e});var $B=E((sft,ZZ)=>{function S1e(t,e){for(var r=-1,i=e.length,n=t.length;++r{var e$=ac(),x1e=Pd(),k1e=As(),t$=e$?e$.isConcatSpreadable:void 0;function P1e(t){return k1e(t)||x1e(t)||!!(t$&&t&&t[t$])}$Z.exports=P1e});var s$=E((aft,i$)=>{var D1e=$B(),R1e=r$();function n$(t,e,r,i,n){var s=-1,o=t.length;for(r||(r=R1e),n||(n=[]);++s0&&r(a)?e>1?n$(a,e-1,r,i,n):D1e(n,a):i||(n[n.length]=a)}return n}i$.exports=n$});var a$=E((Aft,o$)=>{var F1e=s$();function N1e(t){var e=t==null?0:t.length;return e?F1e(t,1):[]}o$.exports=N1e});var l$=E((lft,A$)=>{function L1e(t,e,r){switch(r.length){case 0:return t.call(e);case 1:return t.call(e,r[0]);case 2:return t.call(e,r[0],r[1]);case 3:return t.call(e,r[0],r[1],r[2])}return t.apply(e,r)}A$.exports=L1e});var nF=E((cft,c$)=>{var T1e=l$(),u$=Math.max;function M1e(t,e,r){return e=u$(e===void 0?t.length-1:e,0),function(){for(var i=arguments,n=-1,s=u$(i.length-e,0),o=Array(s);++n{function O1e(t){return function(){return t}}g$.exports=O1e});var e0=E((gft,h$)=>{function K1e(t){return t}h$.exports=K1e});var C$=E((fft,p$)=>{var U1e=f$(),d$=eF(),H1e=e0(),G1e=d$?function(t,e){return d$(t,"toString",{configurable:!0,enumerable:!1,value:U1e(e),writable:!0})}:H1e;p$.exports=G1e});var E$=E((hft,m$)=>{var j1e=800,Y1e=16,q1e=Date.now;function J1e(t){var e=0,r=0;return function(){var i=q1e(),n=Y1e-(i-r);if(r=i,n>0){if(++e>=j1e)return arguments[0]}else e=0;return t.apply(void 0,arguments)}}m$.exports=J1e});var sF=E((pft,I$)=>{var W1e=C$(),z1e=E$(),V1e=z1e(W1e);I$.exports=V1e});var w$=E((dft,y$)=>{var _1e=a$(),X1e=nF(),Z1e=sF();function $1e(t){return Z1e(X1e(t,void 0,_1e),t+"")}y$.exports=$1e});var Q$=E((Cft,B$)=>{var eUe=XZ(),tUe=w$(),rUe=tUe(function(t,e){return t==null?{}:eUe(t,e)});B$.exports=rUe});var M$=E((lpt,N$)=>{"use strict";var pF;try{pF=Map}catch(t){}var dF;try{dF=Set}catch(t){}function L$(t,e,r){if(!t||typeof t!="object"||typeof t=="function")return t;if(t.nodeType&&"cloneNode"in t)return t.cloneNode(!0);if(t instanceof Date)return new Date(t.getTime());if(t instanceof RegExp)return new RegExp(t);if(Array.isArray(t))return t.map(T$);if(pF&&t instanceof pF)return new Map(Array.from(t.entries()));if(dF&&t instanceof dF)return new Set(Array.from(t.values()));if(t instanceof Object){e.push(t);var i=Object.create(t);r.push(i);for(var n in t){var s=e.findIndex(function(o){return o===t[n]});i[n]=s>-1?r[s]:L$(t[n],e,r)}return i}return t}function T$(t){return L$(t,[],[])}N$.exports=T$});var Nd=E(CF=>{"use strict";Object.defineProperty(CF,"__esModule",{value:!0});CF.default=uUe;var gUe=Object.prototype.toString,fUe=Error.prototype.toString,hUe=RegExp.prototype.toString,pUe=typeof Symbol!="undefined"?Symbol.prototype.toString:()=>"",dUe=/^Symbol\((.*)\)(.*)$/;function CUe(t){return t!=+t?"NaN":t===0&&1/t<0?"-0":""+t}function O$(t,e=!1){if(t==null||t===!0||t===!1)return""+t;let r=typeof t;if(r==="number")return CUe(t);if(r==="string")return e?`"${t}"`:t;if(r==="function")return"[Function "+(t.name||"anonymous")+"]";if(r==="symbol")return pUe.call(t).replace(dUe,"Symbol($1)");let i=gUe.call(t).slice(8,-1);return i==="Date"?isNaN(t.getTime())?""+t:t.toISOString(t):i==="Error"||t instanceof Error?"["+fUe.call(t)+"]":i==="RegExp"?hUe.call(t):null}function uUe(t,e){let r=O$(t,e);return r!==null?r:JSON.stringify(t,function(i,n){let s=O$(this[i],e);return s!==null?s:n},2)}});var La=E(ci=>{"use strict";Object.defineProperty(ci,"__esModule",{value:!0});ci.default=ci.array=ci.object=ci.boolean=ci.date=ci.number=ci.string=ci.mixed=void 0;var K$=mUe(Nd());function mUe(t){return t&&t.__esModule?t:{default:t}}var U$={default:"${path} is invalid",required:"${path} is a required field",oneOf:"${path} must be one of the following values: ${values}",notOneOf:"${path} must not be one of the following values: ${values}",notType:({path:t,type:e,value:r,originalValue:i})=>{let n=i!=null&&i!==r,s=`${t} must be a \`${e}\` type, but the final value was: \`${(0,K$.default)(r,!0)}\``+(n?` (cast from the value \`${(0,K$.default)(i,!0)}\`).`:".");return r===null&&(s+='\n If "null" is intended as an empty value be sure to mark the schema as `.nullable()`'),s},defined:"${path} must be defined"};ci.mixed=U$;var H$={length:"${path} must be exactly ${length} characters",min:"${path} must be at least ${min} characters",max:"${path} must be at most ${max} characters",matches:'${path} must match the following: "${regex}"',email:"${path} must be a valid email",url:"${path} must be a valid URL",uuid:"${path} must be a valid UUID",trim:"${path} must be a trimmed string",lowercase:"${path} must be a lowercase string",uppercase:"${path} must be a upper case string"};ci.string=H$;var G$={min:"${path} must be greater than or equal to ${min}",max:"${path} must be less than or equal to ${max}",lessThan:"${path} must be less than ${less}",moreThan:"${path} must be greater than ${more}",positive:"${path} must be a positive number",negative:"${path} must be a negative number",integer:"${path} must be an integer"};ci.number=G$;var j$={min:"${path} field must be later than ${min}",max:"${path} field must be at earlier than ${max}"};ci.date=j$;var Y$={isValue:"${path} field must be ${value}"};ci.boolean=Y$;var q$={noUnknown:"${path} field has unspecified keys: ${unknown}"};ci.object=q$;var J$={min:"${path} field must have at least ${min} items",max:"${path} field must have less than or equal to ${max} items",length:"${path} must be have ${length} items"};ci.array=J$;var EUe=Object.assign(Object.create(null),{mixed:U$,string:H$,number:G$,date:j$,object:q$,array:J$,boolean:Y$});ci.default=EUe});var z$=E((gpt,W$)=>{var IUe=Object.prototype,yUe=IUe.hasOwnProperty;function wUe(t,e){return t!=null&&yUe.call(t,e)}W$.exports=wUe});var Ld=E((fpt,V$)=>{var BUe=z$(),QUe=rF();function bUe(t,e){return t!=null&&QUe(t,e,BUe)}V$.exports=bUe});var qg=E(n0=>{"use strict";Object.defineProperty(n0,"__esModule",{value:!0});n0.default=void 0;var vUe=t=>t&&t.__isYupSchema__;n0.default=vUe});var Z$=E(s0=>{"use strict";Object.defineProperty(s0,"__esModule",{value:!0});s0.default=void 0;var SUe=_$(Ld()),xUe=_$(qg());function _$(t){return t&&t.__esModule?t:{default:t}}var X$=class{constructor(e,r){if(this.refs=e,this.refs=e,typeof r=="function"){this.fn=r;return}if(!(0,SUe.default)(r,"is"))throw new TypeError("`is:` is required for `when()` conditions");if(!r.then&&!r.otherwise)throw new TypeError("either `then:` or `otherwise:` is required for `when()` conditions");let{is:i,then:n,otherwise:s}=r,o=typeof i=="function"?i:(...a)=>a.every(l=>l===i);this.fn=function(...a){let l=a.pop(),c=a.pop(),u=o(...a)?n:s;if(!!u)return typeof u=="function"?u(c):c.concat(u.resolve(l))}}resolve(e,r){let i=this.refs.map(s=>s.getValue(r==null?void 0:r.value,r==null?void 0:r.parent,r==null?void 0:r.context)),n=this.fn.apply(e,i.concat(e,r));if(n===void 0||n===e)return e;if(!(0,xUe.default)(n))throw new TypeError("conditions must return a schema object");return n.resolve(r)}},kUe=X$;s0.default=kUe});var EF=E(mF=>{"use strict";Object.defineProperty(mF,"__esModule",{value:!0});mF.default=PUe;function PUe(t){return t==null?[]:[].concat(t)}});var xc=E(o0=>{"use strict";Object.defineProperty(o0,"__esModule",{value:!0});o0.default=void 0;var DUe=$$(Nd()),RUe=$$(EF());function $$(t){return t&&t.__esModule?t:{default:t}}function IF(){return IF=Object.assign||function(t){for(var e=1;e(0,DUe.default)(r[s])):typeof e=="function"?e(r):e}static isError(e){return e&&e.name==="ValidationError"}constructor(e,r,i,n){super();this.name="ValidationError",this.value=r,this.path=i,this.type=n,this.errors=[],this.inner=[],(0,RUe.default)(e).forEach(s=>{Td.isError(s)?(this.errors.push(...s.errors),this.inner=this.inner.concat(s.inner.length?s.inner:s)):this.errors.push(s)}),this.message=this.errors.length>1?`${this.errors.length} errors occurred`:this.errors[0],Error.captureStackTrace&&Error.captureStackTrace(this,Td)}};o0.default=Td});var a0=E(yF=>{"use strict";Object.defineProperty(yF,"__esModule",{value:!0});yF.default=NUe;var wF=LUe(xc());function LUe(t){return t&&t.__esModule?t:{default:t}}var TUe=t=>{let e=!1;return(...r)=>{e||(e=!0,t(...r))}};function NUe(t,e){let{endEarly:r,tests:i,args:n,value:s,errors:o,sort:a,path:l}=t,c=TUe(e),u=i.length,g=[];if(o=o||[],!u)return o.length?c(new wF.default(o,s,l)):c(null,s);for(let f=0;f{function MUe(t){return function(e,r,i){for(var n=-1,s=Object(e),o=i(e),a=o.length;a--;){var l=o[t?a:++n];if(r(s[l],l,s)===!1)break}return e}}eee.exports=MUe});var BF=E((Ipt,ree)=>{var OUe=tee(),KUe=OUe();ree.exports=KUe});var nee=E((ypt,iee)=>{function UUe(t,e){for(var r=-1,i=Array(t);++r{function HUe(){return!1}see.exports=HUe});var Od=E((Md,Jg)=>{var GUe=Ks(),jUe=oee(),aee=typeof Md=="object"&&Md&&!Md.nodeType&&Md,Aee=aee&&typeof Jg=="object"&&Jg&&!Jg.nodeType&&Jg,YUe=Aee&&Aee.exports===aee,lee=YUe?GUe.Buffer:void 0,qUe=lee?lee.isBuffer:void 0,JUe=qUe||jUe;Jg.exports=JUe});var uee=E((Bpt,cee)=>{var WUe=Ac(),zUe=ZB(),VUe=Qo(),_Ue="[object Arguments]",XUe="[object Array]",ZUe="[object Boolean]",$Ue="[object Date]",e2e="[object Error]",t2e="[object Function]",r2e="[object Map]",i2e="[object Number]",n2e="[object Object]",s2e="[object RegExp]",o2e="[object Set]",a2e="[object String]",A2e="[object WeakMap]",l2e="[object ArrayBuffer]",c2e="[object DataView]",u2e="[object Float32Array]",g2e="[object Float64Array]",f2e="[object Int8Array]",h2e="[object Int16Array]",p2e="[object Int32Array]",d2e="[object Uint8Array]",C2e="[object Uint8ClampedArray]",m2e="[object Uint16Array]",E2e="[object Uint32Array]",lr={};lr[u2e]=lr[g2e]=lr[f2e]=lr[h2e]=lr[p2e]=lr[d2e]=lr[C2e]=lr[m2e]=lr[E2e]=!0;lr[_Ue]=lr[XUe]=lr[l2e]=lr[ZUe]=lr[c2e]=lr[$Ue]=lr[e2e]=lr[t2e]=lr[r2e]=lr[i2e]=lr[n2e]=lr[s2e]=lr[o2e]=lr[a2e]=lr[A2e]=!1;function I2e(t){return VUe(t)&&zUe(t.length)&&!!lr[WUe(t)]}cee.exports=I2e});var A0=E((Qpt,gee)=>{function y2e(t){return function(e){return t(e)}}gee.exports=y2e});var l0=E((Kd,Wg)=>{var w2e=WP(),fee=typeof Kd=="object"&&Kd&&!Kd.nodeType&&Kd,Ud=fee&&typeof Wg=="object"&&Wg&&!Wg.nodeType&&Wg,B2e=Ud&&Ud.exports===fee,QF=B2e&&w2e.process,Q2e=function(){try{var t=Ud&&Ud.require&&Ud.require("util").types;return t||QF&&QF.binding&&QF.binding("util")}catch(e){}}();Wg.exports=Q2e});var c0=E((bpt,hee)=>{var b2e=uee(),v2e=A0(),pee=l0(),dee=pee&&pee.isTypedArray,S2e=dee?v2e(dee):b2e;hee.exports=S2e});var bF=E((vpt,Cee)=>{var x2e=nee(),k2e=Pd(),P2e=As(),D2e=Od(),R2e=kd(),F2e=c0(),N2e=Object.prototype,L2e=N2e.hasOwnProperty;function T2e(t,e){var r=P2e(t),i=!r&&k2e(t),n=!r&&!i&&D2e(t),s=!r&&!i&&!n&&F2e(t),o=r||i||n||s,a=o?x2e(t.length,String):[],l=a.length;for(var c in t)(e||L2e.call(t,c))&&!(o&&(c=="length"||n&&(c=="offset"||c=="parent")||s&&(c=="buffer"||c=="byteLength"||c=="byteOffset")||R2e(c,l)))&&a.push(c);return a}Cee.exports=T2e});var u0=E((Spt,mee)=>{var M2e=Object.prototype;function O2e(t){var e=t&&t.constructor,r=typeof e=="function"&&e.prototype||M2e;return t===r}mee.exports=O2e});var vF=E((xpt,Eee)=>{function K2e(t,e){return function(r){return t(e(r))}}Eee.exports=K2e});var yee=E((kpt,Iee)=>{var U2e=vF(),H2e=U2e(Object.keys,Object);Iee.exports=H2e});var Bee=E((Ppt,wee)=>{var G2e=u0(),j2e=yee(),Y2e=Object.prototype,q2e=Y2e.hasOwnProperty;function J2e(t){if(!G2e(t))return j2e(t);var e=[];for(var r in Object(t))q2e.call(t,r)&&r!="constructor"&&e.push(r);return e}wee.exports=J2e});var Hd=E((Dpt,Qee)=>{var W2e=zB(),z2e=ZB();function V2e(t){return t!=null&&z2e(t.length)&&!W2e(t)}Qee.exports=V2e});var zg=E((Rpt,bee)=>{var _2e=bF(),X2e=Bee(),Z2e=Hd();function $2e(t){return Z2e(t)?_2e(t):X2e(t)}bee.exports=$2e});var SF=E((Fpt,vee)=>{var eHe=BF(),tHe=zg();function rHe(t,e){return t&&eHe(t,e,tHe)}vee.exports=rHe});var xee=E((Npt,See)=>{var iHe=vd();function nHe(){this.__data__=new iHe,this.size=0}See.exports=nHe});var Pee=E((Lpt,kee)=>{function sHe(t){var e=this.__data__,r=e.delete(t);return this.size=e.size,r}kee.exports=sHe});var Ree=E((Tpt,Dee)=>{function oHe(t){return this.__data__.get(t)}Dee.exports=oHe});var Nee=E((Mpt,Fee)=>{function aHe(t){return this.__data__.has(t)}Fee.exports=aHe});var Tee=E((Opt,Lee)=>{var AHe=vd(),lHe=VB(),cHe=_B(),uHe=200;function gHe(t,e){var r=this.__data__;if(r instanceof AHe){var i=r.__data__;if(!lHe||i.length{var fHe=vd(),hHe=xee(),pHe=Pee(),dHe=Ree(),CHe=Nee(),mHe=Tee();function Vg(t){var e=this.__data__=new fHe(t);this.size=e.size}Vg.prototype.clear=hHe;Vg.prototype.delete=pHe;Vg.prototype.get=dHe;Vg.prototype.has=CHe;Vg.prototype.set=mHe;Mee.exports=Vg});var Kee=E((Upt,Oee)=>{var EHe="__lodash_hash_undefined__";function IHe(t){return this.__data__.set(t,EHe),this}Oee.exports=IHe});var Hee=E((Hpt,Uee)=>{function yHe(t){return this.__data__.has(t)}Uee.exports=yHe});var jee=E((Gpt,Gee)=>{var wHe=_B(),BHe=Kee(),QHe=Hee();function g0(t){var e=-1,r=t==null?0:t.length;for(this.__data__=new wHe;++e{function bHe(t,e){for(var r=-1,i=t==null?0:t.length;++r{function vHe(t,e){return t.has(e)}Jee.exports=vHe});var xF=E((qpt,zee)=>{var SHe=jee(),xHe=qee(),kHe=Wee(),PHe=1,DHe=2;function RHe(t,e,r,i,n,s){var o=r&PHe,a=t.length,l=e.length;if(a!=l&&!(o&&l>a))return!1;var c=s.get(t),u=s.get(e);if(c&&u)return c==e&&u==t;var g=-1,f=!0,h=r&DHe?new SHe:void 0;for(s.set(t,e),s.set(e,t);++g{var FHe=Ks(),NHe=FHe.Uint8Array;Vee.exports=NHe});var Xee=E((Wpt,_ee)=>{function LHe(t){var e=-1,r=Array(t.size);return t.forEach(function(i,n){r[++e]=[n,i]}),r}_ee.exports=LHe});var $ee=E((zpt,Zee)=>{function THe(t){var e=-1,r=Array(t.size);return t.forEach(function(i){r[++e]=i}),r}Zee.exports=THe});var nte=E((Vpt,ete)=>{var tte=ac(),rte=kF(),MHe=Kg(),OHe=xF(),KHe=Xee(),UHe=$ee(),HHe=1,GHe=2,jHe="[object Boolean]",YHe="[object Date]",qHe="[object Error]",JHe="[object Map]",WHe="[object Number]",zHe="[object RegExp]",VHe="[object Set]",_He="[object String]",XHe="[object Symbol]",ZHe="[object ArrayBuffer]",$He="[object DataView]",ite=tte?tte.prototype:void 0,PF=ite?ite.valueOf:void 0;function eGe(t,e,r,i,n,s,o){switch(r){case $He:if(t.byteLength!=e.byteLength||t.byteOffset!=e.byteOffset)return!1;t=t.buffer,e=e.buffer;case ZHe:return!(t.byteLength!=e.byteLength||!s(new rte(t),new rte(e)));case jHe:case YHe:case WHe:return MHe(+t,+e);case qHe:return t.name==e.name&&t.message==e.message;case zHe:case _He:return t==e+"";case JHe:var a=KHe;case VHe:var l=i&HHe;if(a||(a=UHe),t.size!=e.size&&!l)return!1;var c=o.get(t);if(c)return c==e;i|=GHe,o.set(t,e);var u=OHe(a(t),a(e),i,n,s,o);return o.delete(t),u;case XHe:if(PF)return PF.call(t)==PF.call(e)}return!1}ete.exports=eGe});var DF=E((_pt,ste)=>{var tGe=$B(),rGe=As();function iGe(t,e,r){var i=e(t);return rGe(t)?i:tGe(i,r(t))}ste.exports=iGe});var ate=E((Xpt,ote)=>{function nGe(t,e){for(var r=-1,i=t==null?0:t.length,n=0,s=[];++r{function sGe(){return[]}Ate.exports=sGe});var f0=E(($pt,lte)=>{var oGe=ate(),aGe=RF(),AGe=Object.prototype,lGe=AGe.propertyIsEnumerable,cte=Object.getOwnPropertySymbols,cGe=cte?function(t){return t==null?[]:(t=Object(t),oGe(cte(t),function(e){return lGe.call(t,e)}))}:aGe;lte.exports=cGe});var FF=E((edt,ute)=>{var uGe=DF(),gGe=f0(),fGe=zg();function hGe(t){return uGe(t,fGe,gGe)}ute.exports=hGe});var hte=E((tdt,gte)=>{var fte=FF(),pGe=1,dGe=Object.prototype,CGe=dGe.hasOwnProperty;function mGe(t,e,r,i,n,s){var o=r&pGe,a=fte(t),l=a.length,c=fte(e),u=c.length;if(l!=u&&!o)return!1;for(var g=l;g--;){var f=a[g];if(!(o?f in e:CGe.call(e,f)))return!1}var h=s.get(t),p=s.get(e);if(h&&p)return h==e&&p==t;var d=!0;s.set(t,e),s.set(e,t);for(var m=o;++g{var EGe=UA(),IGe=Ks(),yGe=EGe(IGe,"DataView");pte.exports=yGe});var mte=E((idt,Cte)=>{var wGe=UA(),BGe=Ks(),QGe=wGe(BGe,"Promise");Cte.exports=QGe});var Ite=E((ndt,Ete)=>{var bGe=UA(),vGe=Ks(),SGe=bGe(vGe,"Set");Ete.exports=SGe});var wte=E((sdt,yte)=>{var xGe=UA(),kGe=Ks(),PGe=xGe(kGe,"WeakMap");yte.exports=PGe});var jd=E((odt,Bte)=>{var NF=dte(),LF=VB(),TF=mte(),MF=Ite(),OF=wte(),Qte=Ac(),_g=ZR(),bte="[object Map]",DGe="[object Object]",vte="[object Promise]",Ste="[object Set]",xte="[object WeakMap]",kte="[object DataView]",RGe=_g(NF),FGe=_g(LF),NGe=_g(TF),LGe=_g(MF),TGe=_g(OF),kc=Qte;(NF&&kc(new NF(new ArrayBuffer(1)))!=kte||LF&&kc(new LF)!=bte||TF&&kc(TF.resolve())!=vte||MF&&kc(new MF)!=Ste||OF&&kc(new OF)!=xte)&&(kc=function(t){var e=Qte(t),r=e==DGe?t.constructor:void 0,i=r?_g(r):"";if(i)switch(i){case RGe:return kte;case FGe:return bte;case NGe:return vte;case LGe:return Ste;case TGe:return xte}return e});Bte.exports=kc});var Mte=E((adt,Pte)=>{var KF=Gd(),MGe=xF(),OGe=nte(),KGe=hte(),Dte=jd(),Rte=As(),Fte=Od(),UGe=c0(),HGe=1,Nte="[object Arguments]",Lte="[object Array]",h0="[object Object]",GGe=Object.prototype,Tte=GGe.hasOwnProperty;function jGe(t,e,r,i,n,s){var o=Rte(t),a=Rte(e),l=o?Lte:Dte(t),c=a?Lte:Dte(e);l=l==Nte?h0:l,c=c==Nte?h0:c;var u=l==h0,g=c==h0,f=l==c;if(f&&Fte(t)){if(!Fte(e))return!1;o=!0,u=!1}if(f&&!u)return s||(s=new KF),o||UGe(t)?MGe(t,e,r,i,n,s):OGe(t,e,l,r,i,n,s);if(!(r&HGe)){var h=u&&Tte.call(t,"__wrapped__"),p=g&&Tte.call(e,"__wrapped__");if(h||p){var d=h?t.value():t,m=p?e.value():e;return s||(s=new KF),n(d,m,r,i,s)}}return f?(s||(s=new KF),KGe(t,e,r,i,n,s)):!1}Pte.exports=jGe});var UF=E((Adt,Ote)=>{var YGe=Mte(),Kte=Qo();function Ute(t,e,r,i,n){return t===e?!0:t==null||e==null||!Kte(t)&&!Kte(e)?t!==t&&e!==e:YGe(t,e,r,i,Ute,n)}Ote.exports=Ute});var Gte=E((ldt,Hte)=>{var qGe=Gd(),JGe=UF(),WGe=1,zGe=2;function VGe(t,e,r,i){var n=r.length,s=n,o=!i;if(t==null)return!s;for(t=Object(t);n--;){var a=r[n];if(o&&a[2]?a[1]!==t[a[0]]:!(a[0]in t))return!1}for(;++n{var _Ge=Gs();function XGe(t){return t===t&&!_Ge(t)}jte.exports=XGe});var qte=E((udt,Yte)=>{var ZGe=HF(),$Ge=zg();function eje(t){for(var e=$Ge(t),r=e.length;r--;){var i=e[r],n=t[i];e[r]=[i,n,ZGe(n)]}return e}Yte.exports=eje});var GF=E((gdt,Jte)=>{function tje(t,e){return function(r){return r==null?!1:r[t]===e&&(e!==void 0||t in Object(r))}}Jte.exports=tje});var zte=E((fdt,Wte)=>{var rje=Gte(),ije=qte(),nje=GF();function sje(t){var e=ije(t);return e.length==1&&e[0][2]?nje(e[0][0],e[0][1]):function(r){return r===t||rje(r,t,e)}}Wte.exports=sje});var p0=E((hdt,Vte)=>{var oje=xd();function aje(t,e,r){var i=t==null?void 0:oje(t,e);return i===void 0?r:i}Vte.exports=aje});var Xte=E((pdt,_te)=>{var Aje=UF(),lje=p0(),cje=iF(),uje=WB(),gje=HF(),fje=GF(),hje=Sc(),pje=1,dje=2;function Cje(t,e){return uje(t)&&gje(e)?fje(hje(t),e):function(r){var i=lje(r,t);return i===void 0&&i===e?cje(r,t):Aje(e,i,pje|dje)}}_te.exports=Cje});var $te=E((ddt,Zte)=>{function mje(t){return function(e){return e==null?void 0:e[t]}}Zte.exports=mje});var tre=E((Cdt,ere)=>{var Eje=xd();function Ije(t){return function(e){return Eje(e,t)}}ere.exports=Ije});var ire=E((mdt,rre)=>{var yje=$te(),wje=tre(),Bje=WB(),Qje=Sc();function bje(t){return Bje(t)?yje(Qje(t)):wje(t)}rre.exports=bje});var jF=E((Edt,nre)=>{var vje=zte(),Sje=Xte(),xje=e0(),kje=As(),Pje=ire();function Dje(t){return typeof t=="function"?t:t==null?xje:typeof t=="object"?kje(t)?Sje(t[0],t[1]):vje(t):Pje(t)}nre.exports=Dje});var YF=E((Idt,sre)=>{var Rje=jg(),Fje=SF(),Nje=jF();function Lje(t,e){var r={};return e=Nje(e,3),Fje(t,function(i,n,s){Rje(r,n,e(i,n,s))}),r}sre.exports=Lje});var Yd=E((ydt,ore)=>{"use strict";function Pc(t){this._maxSize=t,this.clear()}Pc.prototype.clear=function(){this._size=0,this._values=Object.create(null)};Pc.prototype.get=function(t){return this._values[t]};Pc.prototype.set=function(t,e){return this._size>=this._maxSize&&this.clear(),t in this._values||this._size++,this._values[t]=e};var Tje=/[^.^\]^[]+|(?=\[\]|\.\.)/g,are=/^\d+$/,Mje=/^\d/,Oje=/[~`!#$%\^&*+=\-\[\]\\';,/{}|\\":<>\?]/g,Kje=/^\s*(['"]?)(.*?)(\1)\s*$/,qF=512,Are=new Pc(qF),lre=new Pc(qF),cre=new Pc(qF);ore.exports={Cache:Pc,split:WF,normalizePath:JF,setter:function(t){var e=JF(t);return lre.get(t)||lre.set(t,function(i,n){for(var s=0,o=e.length,a=i;s{"use strict";Object.defineProperty(qd,"__esModule",{value:!0});qd.create=Yje;qd.default=void 0;var qje=Yd(),d0={context:"$",value:"."};function Yje(t,e){return new C0(t,e)}var C0=class{constructor(e,r={}){if(typeof e!="string")throw new TypeError("ref must be a string, got: "+e);if(this.key=e.trim(),e==="")throw new TypeError("ref must be a non-empty string");this.isContext=this.key[0]===d0.context,this.isValue=this.key[0]===d0.value,this.isSibling=!this.isContext&&!this.isValue;let i=this.isContext?d0.context:this.isValue?d0.value:"";this.path=this.key.slice(i.length),this.getter=this.path&&(0,qje.getter)(this.path,!0),this.map=r.map}getValue(e,r,i){let n=this.isContext?i:this.isValue?e:r;return this.getter&&(n=this.getter(n||{})),this.map&&(n=this.map(n)),n}cast(e,r){return this.getValue(e,r==null?void 0:r.parent,r==null?void 0:r.context)}resolve(){return this}describe(){return{type:"ref",key:this.key}}toString(){return`Ref(${this.key})`}static isRef(e){return e&&e.__isYupRef}};qd.default=C0;C0.prototype.__isYupRef=!0});var ure=E(VF=>{"use strict";Object.defineProperty(VF,"__esModule",{value:!0});VF.default=Jje;var Wje=_F(YF()),m0=_F(xc()),zje=_F(Dc());function _F(t){return t&&t.__esModule?t:{default:t}}function E0(){return E0=Object.assign||function(t){for(var e=1;e=0)&&(r[n]=t[n]);return r}function Jje(t){function e(r,i){let{value:n,path:s="",label:o,options:a,originalValue:l,sync:c}=r,u=Vje(r,["value","path","label","options","originalValue","sync"]),{name:g,test:f,params:h,message:p}=t,{parent:d,context:m}=a;function I(L){return zje.default.isRef(L)?L.getValue(n,d,m):L}function B(L={}){let K=(0,Wje.default)(E0({value:n,originalValue:l,label:o,path:L.path||s},h,L.params),I),J=new m0.default(m0.default.formatError(L.message||p,K),n,K.path,L.type||g);return J.params=K,J}let b=E0({path:s,parent:d,type:g,createError:B,resolve:I,options:a,originalValue:l},u);if(!c){try{Promise.resolve(f.call(b,n,b)).then(L=>{m0.default.isError(L)?i(L):L?i(null,L):i(B())})}catch(L){i(L)}return}let R;try{var H;if(R=f.call(b,n,b),typeof((H=R)==null?void 0:H.then)=="function")throw new Error(`Validation test of type: "${b.type}" returned a Promise during a synchronous validate. This test will finish after the validate call has returned`)}catch(L){i(L);return}m0.default.isError(R)?i(R):R?i(null,R):i(B())}return e.OPTIONS=t,e}});var XF=E(Jd=>{"use strict";Object.defineProperty(Jd,"__esModule",{value:!0});Jd.getIn=gre;Jd.default=void 0;var _je=Yd(),Xje=t=>t.substr(0,t.length-1).substr(1);function gre(t,e,r,i=r){let n,s,o;return e?((0,_je.forEach)(e,(a,l,c)=>{let u=l?Xje(a):a;if(t=t.resolve({context:i,parent:n,value:r}),t.innerType){let g=c?parseInt(u,10):0;if(r&&g>=r.length)throw new Error(`Yup.reach cannot resolve an array item at index: ${a}, in the path: ${e}. because there is no value at that index. `);n=r,r=r&&r[g],t=t.innerType}if(!c){if(!t.fields||!t.fields[u])throw new Error(`The schema does not contain the path: ${e}. (failed at: ${o} which is a type: "${t._type}")`);n=r,r=r&&r[u],t=t.fields[u]}s=u,o=l?"["+a+"]":"."+a}),{schema:t,parent:n,parentPath:s}):{parent:n,parentPath:e,schema:t}}var Zje=(t,e,r,i)=>gre(t,e,r,i).schema,$je=Zje;Jd.default=$je});var hre=E(I0=>{"use strict";Object.defineProperty(I0,"__esModule",{value:!0});I0.default=void 0;var fre=eYe(Dc());function eYe(t){return t&&t.__esModule?t:{default:t}}var y0=class{constructor(){this.list=new Set,this.refs=new Map}get size(){return this.list.size+this.refs.size}describe(){let e=[];for(let r of this.list)e.push(r);for(let[,r]of this.refs)e.push(r.describe());return e}toArray(){return Array.from(this.list).concat(Array.from(this.refs.values()))}add(e){fre.default.isRef(e)?this.refs.set(e.key,e):this.list.add(e)}delete(e){fre.default.isRef(e)?this.refs.delete(e.key):this.list.delete(e)}has(e,r){if(this.list.has(e))return!0;let i,n=this.refs.values();for(;i=n.next(),!i.done;)if(r(i.value)===e)return!0;return!1}clone(){let e=new y0;return e.list=new Set(this.list),e.refs=new Map(this.refs),e}merge(e,r){let i=this.clone();return e.list.forEach(n=>i.add(n)),e.refs.forEach(n=>i.add(n)),r.list.forEach(n=>i.delete(n)),r.refs.forEach(n=>i.delete(n)),i}};I0.default=y0});var Ma=E(w0=>{"use strict";Object.defineProperty(w0,"__esModule",{value:!0});w0.default=void 0;var pre=Ta(M$()),Xg=La(),tYe=Ta(Z$()),dre=Ta(a0()),B0=Ta(ure()),Cre=Ta(Nd()),rYe=Ta(Dc()),iYe=XF(),nYe=Ta(EF()),mre=Ta(xc()),Ere=Ta(hre());function Ta(t){return t&&t.__esModule?t:{default:t}}function ds(){return ds=Object.assign||function(t){for(var e=1;e{this.typeError(Xg.mixed.notType)}),this.type=(e==null?void 0:e.type)||"mixed",this.spec=ds({strip:!1,strict:!1,abortEarly:!0,recursive:!0,nullable:!1,presence:"optional"},e==null?void 0:e.spec)}get _type(){return this.type}_typeCheck(e){return!0}clone(e){if(this._mutate)return e&&Object.assign(this.spec,e),this;let r=Object.create(Object.getPrototypeOf(this));return r.type=this.type,r._typeError=this._typeError,r._whitelistError=this._whitelistError,r._blacklistError=this._blacklistError,r._whitelist=this._whitelist.clone(),r._blacklist=this._blacklist.clone(),r.exclusiveTests=ds({},this.exclusiveTests),r.deps=[...this.deps],r.conditions=[...this.conditions],r.tests=[...this.tests],r.transforms=[...this.transforms],r.spec=(0,pre.default)(ds({},this.spec,e)),r}label(e){var r=this.clone();return r.spec.label=e,r}meta(...e){if(e.length===0)return this.spec.meta;let r=this.clone();return r.spec.meta=Object.assign(r.spec.meta||{},e[0]),r}withMutation(e){let r=this._mutate;this._mutate=!0;let i=e(this);return this._mutate=r,i}concat(e){if(!e||e===this)return this;if(e.type!==this.type&&this.type!=="mixed")throw new TypeError(`You cannot \`concat()\` schema's of different types: ${this.type} and ${e.type}`);let r=this,i=e.clone(),n=ds({},r.spec,i.spec);return i.spec=n,i._typeError||(i._typeError=r._typeError),i._whitelistError||(i._whitelistError=r._whitelistError),i._blacklistError||(i._blacklistError=r._blacklistError),i._whitelist=r._whitelist.merge(e._whitelist,e._blacklist),i._blacklist=r._blacklist.merge(e._blacklist,e._whitelist),i.tests=r.tests,i.exclusiveTests=r.exclusiveTests,i.withMutation(s=>{e.tests.forEach(o=>{s.test(o.OPTIONS)})}),i}isType(e){return this.spec.nullable&&e===null?!0:this._typeCheck(e)}resolve(e){let r=this;if(r.conditions.length){let i=r.conditions;r=r.clone(),r.conditions=[],r=i.reduce((n,s)=>s.resolve(n,e),r),r=r.resolve(e)}return r}cast(e,r={}){let i=this.resolve(ds({value:e},r)),n=i._cast(e,r);if(e!==void 0&&r.assert!==!1&&i.isType(n)!==!0){let s=(0,Cre.default)(e),o=(0,Cre.default)(n);throw new TypeError(`The value of ${r.path||"field"} could not be cast to a value that satisfies the schema type: "${i._type}". - -attempted value: ${s} -`+(o!==s?`result of cast: ${o}`:""))}return n}_cast(e,r){let i=e===void 0?e:this.transforms.reduce((n,s)=>s.call(this,n,e,this),e);return i===void 0&&(i=this.getDefault()),i}_validate(e,r={},i){let{sync:n,path:s,from:o=[],originalValue:a=e,strict:l=this.spec.strict,abortEarly:c=this.spec.abortEarly}=r,u=e;l||(u=this._cast(u,ds({assert:!1},r)));let g={value:u,path:s,options:r,originalValue:a,schema:this,label:this.spec.label,sync:n,from:o},f=[];this._typeError&&f.push(this._typeError),this._whitelistError&&f.push(this._whitelistError),this._blacklistError&&f.push(this._blacklistError),(0,dre.default)({args:g,value:u,path:s,sync:n,tests:f,endEarly:c},h=>{if(h)return void i(h,u);(0,dre.default)({tests:this.tests,args:g,path:s,sync:n,value:u,endEarly:c},i)})}validate(e,r,i){let n=this.resolve(ds({},r,{value:e}));return typeof i=="function"?n._validate(e,r,i):new Promise((s,o)=>n._validate(e,r,(a,l)=>{a?o(a):s(l)}))}validateSync(e,r){let i=this.resolve(ds({},r,{value:e})),n;return i._validate(e,ds({},r,{sync:!0}),(s,o)=>{if(s)throw s;n=o}),n}isValid(e,r){return this.validate(e,r).then(()=>!0,i=>{if(mre.default.isError(i))return!1;throw i})}isValidSync(e,r){try{return this.validateSync(e,r),!0}catch(i){if(mre.default.isError(i))return!1;throw i}}_getDefault(){let e=this.spec.default;return e==null?e:typeof e=="function"?e.call(this):(0,pre.default)(e)}getDefault(e){return this.resolve(e||{})._getDefault()}default(e){return arguments.length===0?this._getDefault():this.clone({default:e})}strict(e=!0){var r=this.clone();return r.spec.strict=e,r}_isPresent(e){return e!=null}defined(e=Xg.mixed.defined){return this.test({message:e,name:"defined",exclusive:!0,test(r){return r!==void 0}})}required(e=Xg.mixed.required){return this.clone({presence:"required"}).withMutation(r=>r.test({message:e,name:"required",exclusive:!0,test(i){return this.schema._isPresent(i)}}))}notRequired(){var e=this.clone({presence:"optional"});return e.tests=e.tests.filter(r=>r.OPTIONS.name!=="required"),e}nullable(e=!0){var r=this.clone({nullable:e!==!1});return r}transform(e){var r=this.clone();return r.transforms.push(e),r}test(...e){let r;if(e.length===1?typeof e[0]=="function"?r={test:e[0]}:r=e[0]:e.length===2?r={name:e[0],test:e[1]}:r={name:e[0],message:e[1],test:e[2]},r.message===void 0&&(r.message=Xg.mixed.default),typeof r.test!="function")throw new TypeError("`test` is a required parameters");let i=this.clone(),n=(0,B0.default)(r),s=r.exclusive||r.name&&i.exclusiveTests[r.name]===!0;if(r.exclusive&&!r.name)throw new TypeError("Exclusive tests must provide a unique `name` identifying the test");return r.name&&(i.exclusiveTests[r.name]=!!r.exclusive),i.tests=i.tests.filter(o=>!(o.OPTIONS.name===r.name&&(s||o.OPTIONS.test===n.OPTIONS.test))),i.tests.push(n),i}when(e,r){!Array.isArray(e)&&typeof e!="string"&&(r=e,e=".");let i=this.clone(),n=(0,nYe.default)(e).map(s=>new rYe.default(s));return n.forEach(s=>{s.isSibling&&i.deps.push(s.key)}),i.conditions.push(new tYe.default(n,r)),i}typeError(e){var r=this.clone();return r._typeError=(0,B0.default)({message:e,name:"typeError",test(i){return i!==void 0&&!this.schema.isType(i)?this.createError({params:{type:this.schema._type}}):!0}}),r}oneOf(e,r=Xg.mixed.oneOf){var i=this.clone();return e.forEach(n=>{i._whitelist.add(n),i._blacklist.delete(n)}),i._whitelistError=(0,B0.default)({message:r,name:"oneOf",test(n){if(n===void 0)return!0;let s=this.schema._whitelist;return s.has(n,this.resolve)?!0:this.createError({params:{values:s.toArray().join(", ")}})}}),i}notOneOf(e,r=Xg.mixed.notOneOf){var i=this.clone();return e.forEach(n=>{i._blacklist.add(n),i._whitelist.delete(n)}),i._blacklistError=(0,B0.default)({message:r,name:"notOneOf",test(n){let s=this.schema._blacklist;return s.has(n,this.resolve)?this.createError({params:{values:s.toArray().join(", ")}}):!0}}),i}strip(e=!0){let r=this.clone();return r.spec.strip=e,r}describe(){let e=this.clone(),{label:r,meta:i}=e.spec;return{meta:i,label:r,type:e.type,oneOf:e._whitelist.describe(),notOneOf:e._blacklist.describe(),tests:e.tests.map(s=>({name:s.OPTIONS.name,params:s.OPTIONS.params})).filter((s,o,a)=>a.findIndex(l=>l.name===s.name)===o)}}};w0.default=Do;Do.prototype.__isYupSchema__=!0;for(let t of["validate","validateSync"])Do.prototype[`${t}At`]=function(e,r,i={}){let{parent:n,parentPath:s,schema:o}=(0,iYe.getIn)(this,e,r,i.context);return o[t](n&&n[s],ds({},i,{parent:n,path:e}))};for(let t of["equals","is"])Do.prototype[t]=Do.prototype.oneOf;for(let t of["not","nope"])Do.prototype[t]=Do.prototype.notOneOf;Do.prototype.optional=Do.prototype.notRequired});var yre=E(Wd=>{"use strict";Object.defineProperty(Wd,"__esModule",{value:!0});Wd.create=Ire;Wd.default=void 0;var oYe=sYe(Ma());function sYe(t){return t&&t.__esModule?t:{default:t}}var ZF=oYe.default,aYe=ZF;Wd.default=aYe;function Ire(){return new ZF}Ire.prototype=ZF.prototype});var Zg=E(Q0=>{"use strict";Object.defineProperty(Q0,"__esModule",{value:!0});Q0.default=void 0;var AYe=t=>t==null;Q0.default=AYe});var vre=E(zd=>{"use strict";Object.defineProperty(zd,"__esModule",{value:!0});zd.create=wre;zd.default=void 0;var lYe=Bre(Ma()),Qre=La(),bre=Bre(Zg());function Bre(t){return t&&t.__esModule?t:{default:t}}function wre(){return new b0}var b0=class extends lYe.default{constructor(){super({type:"boolean"});this.withMutation(()=>{this.transform(function(e){if(!this.isType(e)){if(/^(true|1)$/i.test(String(e)))return!0;if(/^(false|0)$/i.test(String(e)))return!1}return e})})}_typeCheck(e){return e instanceof Boolean&&(e=e.valueOf()),typeof e=="boolean"}isTrue(e=Qre.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"true"},test(r){return(0,bre.default)(r)||r===!0}})}isFalse(e=Qre.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"false"},test(r){return(0,bre.default)(r)||r===!1}})}};zd.default=b0;wre.prototype=b0.prototype});var kre=E(Vd=>{"use strict";Object.defineProperty(Vd,"__esModule",{value:!0});Vd.create=Sre;Vd.default=void 0;var Ro=La(),Oa=xre(Zg()),cYe=xre(Ma());function xre(t){return t&&t.__esModule?t:{default:t}}var uYe=/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))$/i,gYe=/^((https?|ftp):)?\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i,fYe=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i,hYe=t=>(0,Oa.default)(t)||t===t.trim(),pYe={}.toString();function Sre(){return new v0}var v0=class extends cYe.default{constructor(){super({type:"string"});this.withMutation(()=>{this.transform(function(e){if(this.isType(e)||Array.isArray(e))return e;let r=e!=null&&e.toString?e.toString():e;return r===pYe?e:r})})}_typeCheck(e){return e instanceof String&&(e=e.valueOf()),typeof e=="string"}_isPresent(e){return super._isPresent(e)&&!!e.length}length(e,r=Ro.string.length){return this.test({message:r,name:"length",exclusive:!0,params:{length:e},test(i){return(0,Oa.default)(i)||i.length===this.resolve(e)}})}min(e,r=Ro.string.min){return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(i){return(0,Oa.default)(i)||i.length>=this.resolve(e)}})}max(e,r=Ro.string.max){return this.test({name:"max",exclusive:!0,message:r,params:{max:e},test(i){return(0,Oa.default)(i)||i.length<=this.resolve(e)}})}matches(e,r){let i=!1,n,s;return r&&(typeof r=="object"?{excludeEmptyString:i=!1,message:n,name:s}=r:n=r),this.test({name:s||"matches",message:n||Ro.string.matches,params:{regex:e},test:o=>(0,Oa.default)(o)||o===""&&i||o.search(e)!==-1})}email(e=Ro.string.email){return this.matches(uYe,{name:"email",message:e,excludeEmptyString:!0})}url(e=Ro.string.url){return this.matches(gYe,{name:"url",message:e,excludeEmptyString:!0})}uuid(e=Ro.string.uuid){return this.matches(fYe,{name:"uuid",message:e,excludeEmptyString:!1})}ensure(){return this.default("").transform(e=>e===null?"":e)}trim(e=Ro.string.trim){return this.transform(r=>r!=null?r.trim():r).test({message:e,name:"trim",test:hYe})}lowercase(e=Ro.string.lowercase){return this.transform(r=>(0,Oa.default)(r)?r:r.toLowerCase()).test({message:e,name:"string_case",exclusive:!0,test:r=>(0,Oa.default)(r)||r===r.toLowerCase()})}uppercase(e=Ro.string.uppercase){return this.transform(r=>(0,Oa.default)(r)?r:r.toUpperCase()).test({message:e,name:"string_case",exclusive:!0,test:r=>(0,Oa.default)(r)||r===r.toUpperCase()})}};Vd.default=v0;Sre.prototype=v0.prototype});var Rre=E(_d=>{"use strict";Object.defineProperty(_d,"__esModule",{value:!0});_d.create=Pre;_d.default=void 0;var Rc=La(),Fc=Dre(Zg()),dYe=Dre(Ma());function Dre(t){return t&&t.__esModule?t:{default:t}}var CYe=t=>t!=+t;function Pre(){return new S0}var S0=class extends dYe.default{constructor(){super({type:"number"});this.withMutation(()=>{this.transform(function(e){let r=e;if(typeof r=="string"){if(r=r.replace(/\s/g,""),r==="")return NaN;r=+r}return this.isType(r)?r:parseFloat(r)})})}_typeCheck(e){return e instanceof Number&&(e=e.valueOf()),typeof e=="number"&&!CYe(e)}min(e,r=Rc.number.min){return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(i){return(0,Fc.default)(i)||i>=this.resolve(e)}})}max(e,r=Rc.number.max){return this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(i){return(0,Fc.default)(i)||i<=this.resolve(e)}})}lessThan(e,r=Rc.number.lessThan){return this.test({message:r,name:"max",exclusive:!0,params:{less:e},test(i){return(0,Fc.default)(i)||ithis.resolve(e)}})}positive(e=Rc.number.positive){return this.moreThan(0,e)}negative(e=Rc.number.negative){return this.lessThan(0,e)}integer(e=Rc.number.integer){return this.test({name:"integer",message:e,test:r=>(0,Fc.default)(r)||Number.isInteger(r)})}truncate(){return this.transform(e=>(0,Fc.default)(e)?e:e|0)}round(e){var r,i=["ceil","floor","round","trunc"];if(e=((r=e)==null?void 0:r.toLowerCase())||"round",e==="trunc")return this.truncate();if(i.indexOf(e.toLowerCase())===-1)throw new TypeError("Only valid options for round() are: "+i.join(", "));return this.transform(n=>(0,Fc.default)(n)?n:Math[e](n))}};_d.default=S0;Pre.prototype=S0.prototype});var Fre=E($F=>{"use strict";Object.defineProperty($F,"__esModule",{value:!0});$F.default=mYe;var EYe=/^(\d{4}|[+\-]\d{6})(?:-?(\d{2})(?:-?(\d{2}))?)?(?:[ T]?(\d{2}):?(\d{2})(?::?(\d{2})(?:[,\.](\d{1,}))?)?(?:(Z)|([+\-])(\d{2})(?::?(\d{2}))?)?)?$/;function mYe(t){var e=[1,4,5,6,7,10,11],r=0,i,n;if(n=EYe.exec(t)){for(var s=0,o;o=e[s];++s)n[o]=+n[o]||0;n[2]=(+n[2]||1)-1,n[3]=+n[3]||1,n[7]=n[7]?String(n[7]).substr(0,3):0,(n[8]===void 0||n[8]==="")&&(n[9]===void 0||n[9]==="")?i=+new Date(n[1],n[2],n[3],n[4],n[5],n[6],n[7]):(n[8]!=="Z"&&n[9]!==void 0&&(r=n[10]*60+n[11],n[9]==="+"&&(r=0-r)),i=Date.UTC(n[1],n[2],n[3],n[4],n[5]+r,n[6],n[7]))}else i=Date.parse?Date.parse(t):NaN;return i}});var Tre=E(Xd=>{"use strict";Object.defineProperty(Xd,"__esModule",{value:!0});Xd.create=eN;Xd.default=void 0;var IYe=x0(Fre()),Nre=La(),Lre=x0(Zg()),yYe=x0(Dc()),wYe=x0(Ma());function x0(t){return t&&t.__esModule?t:{default:t}}var tN=new Date(""),BYe=t=>Object.prototype.toString.call(t)==="[object Date]";function eN(){return new Zd}var Zd=class extends wYe.default{constructor(){super({type:"date"});this.withMutation(()=>{this.transform(function(e){return this.isType(e)?e:(e=(0,IYe.default)(e),isNaN(e)?tN:new Date(e))})})}_typeCheck(e){return BYe(e)&&!isNaN(e.getTime())}prepareParam(e,r){let i;if(yYe.default.isRef(e))i=e;else{let n=this.cast(e);if(!this._typeCheck(n))throw new TypeError(`\`${r}\` must be a Date or a value that can be \`cast()\` to a Date`);i=n}return i}min(e,r=Nre.date.min){let i=this.prepareParam(e,"min");return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,Lre.default)(n)||n>=this.resolve(i)}})}max(e,r=Nre.date.max){var i=this.prepareParam(e,"max");return this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(n){return(0,Lre.default)(n)||n<=this.resolve(i)}})}};Xd.default=Zd;Zd.INVALID_DATE=tN;eN.prototype=Zd.prototype;eN.INVALID_DATE=tN});var Ore=E((Ndt,Mre)=>{function QYe(t,e,r,i){var n=-1,s=t==null?0:t.length;for(i&&s&&(r=t[++n]);++n{function bYe(t){return function(e){return t==null?void 0:t[e]}}Kre.exports=bYe});var Gre=E((Tdt,Hre)=>{var vYe=Ure(),SYe={\u00C0:"A",\u00C1:"A",\u00C2:"A",\u00C3:"A",\u00C4:"A",\u00C5:"A",\u00E0:"a",\u00E1:"a",\u00E2:"a",\u00E3:"a",\u00E4:"a",\u00E5:"a",\u00C7:"C",\u00E7:"c",\u00D0:"D",\u00F0:"d",\u00C8:"E",\u00C9:"E",\u00CA:"E",\u00CB:"E",\u00E8:"e",\u00E9:"e",\u00EA:"e",\u00EB:"e",\u00CC:"I",\u00CD:"I",\u00CE:"I",\u00CF:"I",\u00EC:"i",\u00ED:"i",\u00EE:"i",\u00EF:"i",\u00D1:"N",\u00F1:"n",\u00D2:"O",\u00D3:"O",\u00D4:"O",\u00D5:"O",\u00D6:"O",\u00D8:"O",\u00F2:"o",\u00F3:"o",\u00F4:"o",\u00F5:"o",\u00F6:"o",\u00F8:"o",\u00D9:"U",\u00DA:"U",\u00DB:"U",\u00DC:"U",\u00F9:"u",\u00FA:"u",\u00FB:"u",\u00FC:"u",\u00DD:"Y",\u00FD:"y",\u00FF:"y",\u00C6:"Ae",\u00E6:"ae",\u00DE:"Th",\u00FE:"th",\u00DF:"ss",\u0100:"A",\u0102:"A",\u0104:"A",\u0101:"a",\u0103:"a",\u0105:"a",\u0106:"C",\u0108:"C",\u010A:"C",\u010C:"C",\u0107:"c",\u0109:"c",\u010B:"c",\u010D:"c",\u010E:"D",\u0110:"D",\u010F:"d",\u0111:"d",\u0112:"E",\u0114:"E",\u0116:"E",\u0118:"E",\u011A:"E",\u0113:"e",\u0115:"e",\u0117:"e",\u0119:"e",\u011B:"e",\u011C:"G",\u011E:"G",\u0120:"G",\u0122:"G",\u011D:"g",\u011F:"g",\u0121:"g",\u0123:"g",\u0124:"H",\u0126:"H",\u0125:"h",\u0127:"h",\u0128:"I",\u012A:"I",\u012C:"I",\u012E:"I",\u0130:"I",\u0129:"i",\u012B:"i",\u012D:"i",\u012F:"i",\u0131:"i",\u0134:"J",\u0135:"j",\u0136:"K",\u0137:"k",\u0138:"k",\u0139:"L",\u013B:"L",\u013D:"L",\u013F:"L",\u0141:"L",\u013A:"l",\u013C:"l",\u013E:"l",\u0140:"l",\u0142:"l",\u0143:"N",\u0145:"N",\u0147:"N",\u014A:"N",\u0144:"n",\u0146:"n",\u0148:"n",\u014B:"n",\u014C:"O",\u014E:"O",\u0150:"O",\u014D:"o",\u014F:"o",\u0151:"o",\u0154:"R",\u0156:"R",\u0158:"R",\u0155:"r",\u0157:"r",\u0159:"r",\u015A:"S",\u015C:"S",\u015E:"S",\u0160:"S",\u015B:"s",\u015D:"s",\u015F:"s",\u0161:"s",\u0162:"T",\u0164:"T",\u0166:"T",\u0163:"t",\u0165:"t",\u0167:"t",\u0168:"U",\u016A:"U",\u016C:"U",\u016E:"U",\u0170:"U",\u0172:"U",\u0169:"u",\u016B:"u",\u016D:"u",\u016F:"u",\u0171:"u",\u0173:"u",\u0174:"W",\u0175:"w",\u0176:"Y",\u0177:"y",\u0178:"Y",\u0179:"Z",\u017B:"Z",\u017D:"Z",\u017A:"z",\u017C:"z",\u017E:"z",\u0132:"IJ",\u0133:"ij",\u0152:"Oe",\u0153:"oe",\u0149:"'n",\u017F:"s"},xYe=vYe(SYe);Hre.exports=xYe});var Yre=E((Mdt,jre)=>{var kYe=Gre(),PYe=gg(),DYe=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,RYe="\\u0300-\\u036f",FYe="\\ufe20-\\ufe2f",NYe="\\u20d0-\\u20ff",LYe=RYe+FYe+NYe,TYe="["+LYe+"]",MYe=RegExp(TYe,"g");function OYe(t){return t=PYe(t),t&&t.replace(DYe,kYe).replace(MYe,"")}jre.exports=OYe});var Jre=E((Odt,qre)=>{var KYe=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g;function UYe(t){return t.match(KYe)||[]}qre.exports=UYe});var zre=E((Kdt,Wre)=>{var HYe=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;function GYe(t){return HYe.test(t)}Wre.exports=GYe});var fie=E((Udt,Vre)=>{var _re="\\ud800-\\udfff",jYe="\\u0300-\\u036f",YYe="\\ufe20-\\ufe2f",qYe="\\u20d0-\\u20ff",JYe=jYe+YYe+qYe,Xre="\\u2700-\\u27bf",Zre="a-z\\xdf-\\xf6\\xf8-\\xff",WYe="\\xac\\xb1\\xd7\\xf7",zYe="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",VYe="\\u2000-\\u206f",_Ye=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",$re="A-Z\\xc0-\\xd6\\xd8-\\xde",XYe="\\ufe0e\\ufe0f",eie=WYe+zYe+VYe+_Ye,tie="['\u2019]",rie="["+eie+"]",ZYe="["+JYe+"]",iie="\\d+",$Ye="["+Xre+"]",nie="["+Zre+"]",sie="[^"+_re+eie+iie+Xre+Zre+$re+"]",eqe="\\ud83c[\\udffb-\\udfff]",tqe="(?:"+ZYe+"|"+eqe+")",rqe="[^"+_re+"]",oie="(?:\\ud83c[\\udde6-\\uddff]){2}",aie="[\\ud800-\\udbff][\\udc00-\\udfff]",$g="["+$re+"]",iqe="\\u200d",Aie="(?:"+nie+"|"+sie+")",nqe="(?:"+$g+"|"+sie+")",lie="(?:"+tie+"(?:d|ll|m|re|s|t|ve))?",cie="(?:"+tie+"(?:D|LL|M|RE|S|T|VE))?",uie=tqe+"?",gie="["+XYe+"]?",sqe="(?:"+iqe+"(?:"+[rqe,oie,aie].join("|")+")"+gie+uie+")*",oqe="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",aqe="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",Aqe=gie+uie+sqe,lqe="(?:"+[$Ye,oie,aie].join("|")+")"+Aqe,cqe=RegExp([$g+"?"+nie+"+"+lie+"(?="+[rie,$g,"$"].join("|")+")",nqe+"+"+cie+"(?="+[rie,$g+Aie,"$"].join("|")+")",$g+"?"+Aie+"+"+lie,$g+"+"+cie,aqe,oqe,iie,lqe].join("|"),"g");function uqe(t){return t.match(cqe)||[]}Vre.exports=uqe});var pie=E((Hdt,hie)=>{var gqe=Jre(),fqe=zre(),hqe=gg(),pqe=fie();function dqe(t,e,r){return t=hqe(t),e=r?void 0:e,e===void 0?fqe(t)?pqe(t):gqe(t):t.match(e)||[]}hie.exports=dqe});var rN=E((Gdt,die)=>{var Cqe=Ore(),mqe=Yre(),Eqe=pie(),Iqe="['\u2019]",yqe=RegExp(Iqe,"g");function wqe(t){return function(e){return Cqe(Eqe(mqe(e).replace(yqe,"")),t,"")}}die.exports=wqe});var mie=E((jdt,Cie)=>{var Bqe=rN(),Qqe=Bqe(function(t,e,r){return t+(r?"_":"")+e.toLowerCase()});Cie.exports=Qqe});var Iie=E((Ydt,Eie)=>{var bqe=ZP(),vqe=rN(),Sqe=vqe(function(t,e,r){return e=e.toLowerCase(),t+(r?bqe(e):e)});Eie.exports=Sqe});var wie=E((qdt,yie)=>{var xqe=jg(),kqe=SF(),Pqe=jF();function Dqe(t,e){var r={};return e=Pqe(e,3),kqe(t,function(i,n,s){xqe(r,e(i,n,s),i)}),r}yie.exports=Dqe});var Qie=E((Jdt,iN)=>{iN.exports=function(t){return Bie(Rqe(t),t)};iN.exports.array=Bie;function Bie(t,e){var r=t.length,i=new Array(r),n={},s=r,o=Fqe(e),a=Nqe(t);for(e.forEach(function(c){if(!a.has(c[0])||!a.has(c[1]))throw new Error("Unknown node. There is an unknown node in the supplied edges.")});s--;)n[s]||l(t[s],s,new Set);return i;function l(c,u,g){if(g.has(c)){var f;try{f=", node was:"+JSON.stringify(c)}catch(d){f=""}throw new Error("Cyclic dependency"+f)}if(!a.has(c))throw new Error("Found unknown node. Make sure to provided all involved nodes. Unknown node: "+JSON.stringify(c));if(!n[u]){n[u]=!0;var h=o.get(c)||new Set;if(h=Array.from(h),u=h.length){g.add(c);do{var p=h[--u];l(p,a.get(p),g)}while(u);g.delete(c)}i[--r]=c}}}function Rqe(t){for(var e=new Set,r=0,i=t.length;r{"use strict";Object.defineProperty(nN,"__esModule",{value:!0});nN.default=Lqe;var Tqe=k0(Ld()),Mqe=k0(Qie()),Oqe=Yd(),Kqe=k0(Dc()),Uqe=k0(qg());function k0(t){return t&&t.__esModule?t:{default:t}}function Lqe(t,e=[]){let r=[],i=[];function n(s,o){var a=(0,Oqe.split)(s)[0];~i.indexOf(a)||i.push(a),~e.indexOf(`${o}-${a}`)||r.push([o,a])}for(let s in t)if((0,Tqe.default)(t,s)){let o=t[s];~i.indexOf(s)||i.push(s),Kqe.default.isRef(o)&&o.isSibling?n(o.path,s):(0,Uqe.default)(o)&&"deps"in o&&o.deps.forEach(a=>n(a,s))}return Mqe.default.array(i,r).reverse()}});var Sie=E(sN=>{"use strict";Object.defineProperty(sN,"__esModule",{value:!0});sN.default=Hqe;function vie(t,e){let r=Infinity;return t.some((i,n)=>{var s;if(((s=e.path)==null?void 0:s.indexOf(i))!==-1)return r=n,!0}),r}function Hqe(t){return(e,r)=>vie(t,e)-vie(t,r)}});var Nie=E($d=>{"use strict";Object.defineProperty($d,"__esModule",{value:!0});$d.create=xie;$d.default=void 0;var kie=Fo(Ld()),Pie=Fo(mie()),Gqe=Fo(Iie()),jqe=Fo(wie()),Yqe=Fo(YF()),qqe=Yd(),Die=La(),Jqe=Fo(bie()),Rie=Fo(Sie()),Wqe=Fo(a0()),zqe=Fo(xc()),oN=Fo(Ma());function Fo(t){return t&&t.__esModule?t:{default:t}}function ef(){return ef=Object.assign||function(t){for(var e=1;eObject.prototype.toString.call(t)==="[object Object]";function Vqe(t,e){let r=Object.keys(t.fields);return Object.keys(e).filter(i=>r.indexOf(i)===-1)}var _qe=(0,Rie.default)([]),P0=class extends oN.default{constructor(e){super({type:"object"});this.fields=Object.create(null),this._sortErrors=_qe,this._nodes=[],this._excludedEdges=[],this.withMutation(()=>{this.transform(function(i){if(typeof i=="string")try{i=JSON.parse(i)}catch(n){i=null}return this.isType(i)?i:null}),e&&this.shape(e)})}_typeCheck(e){return Fie(e)||typeof e=="function"}_cast(e,r={}){var i;let n=super._cast(e,r);if(n===void 0)return this.getDefault();if(!this._typeCheck(n))return n;let s=this.fields,o=(i=r.stripUnknown)!=null?i:this.spec.noUnknown,a=this._nodes.concat(Object.keys(n).filter(g=>this._nodes.indexOf(g)===-1)),l={},c=ef({},r,{parent:l,__validating:r.__validating||!1}),u=!1;for(let g of a){let f=s[g],h=(0,kie.default)(n,g);if(f){let p,d=n[g];c.path=(r.path?`${r.path}.`:"")+g,f=f.resolve({value:d,context:r.context,parent:l});let m="spec"in f?f.spec:void 0,I=m==null?void 0:m.strict;if(m==null?void 0:m.strip){u=u||g in n;continue}p=!r.__validating||!I?f.cast(n[g],c):n[g],p!==void 0&&(l[g]=p)}else h&&!o&&(l[g]=n[g]);l[g]!==n[g]&&(u=!0)}return u?l:n}_validate(e,r={},i){let n=[],{sync:s,from:o=[],originalValue:a=e,abortEarly:l=this.spec.abortEarly,recursive:c=this.spec.recursive}=r;o=[{schema:this,value:a},...o],r.__validating=!0,r.originalValue=a,r.from=o,super._validate(e,r,(u,g)=>{if(u){if(!zqe.default.isError(u)||l)return void i(u,g);n.push(u)}if(!c||!Fie(g)){i(n[0]||null,g);return}a=a||g;let f=this._nodes.map(h=>(p,d)=>{let m=h.indexOf(".")===-1?(r.path?`${r.path}.`:"")+h:`${r.path||""}["${h}"]`,I=this.fields[h];if(I&&"validate"in I){I.validate(g[h],ef({},r,{path:m,from:o,strict:!0,parent:g,originalValue:a[h]}),d);return}d(null)});(0,Wqe.default)({sync:s,tests:f,value:g,errors:n,endEarly:l,sort:this._sortErrors,path:r.path},i)})}clone(e){let r=super.clone(e);return r.fields=ef({},this.fields),r._nodes=this._nodes,r._excludedEdges=this._excludedEdges,r._sortErrors=this._sortErrors,r}concat(e){let r=super.concat(e),i=r.fields;for(let[n,s]of Object.entries(this.fields)){let o=i[n];o===void 0?i[n]=s:o instanceof oN.default&&s instanceof oN.default&&(i[n]=s.concat(o))}return r.withMutation(()=>r.shape(i))}getDefaultFromShape(){let e={};return this._nodes.forEach(r=>{let i=this.fields[r];e[r]="default"in i?i.getDefault():void 0}),e}_getDefault(){if("default"in this.spec)return super._getDefault();if(!!this._nodes.length)return this.getDefaultFromShape()}shape(e,r=[]){let i=this.clone(),n=Object.assign(i.fields,e);if(i.fields=n,i._sortErrors=(0,Rie.default)(Object.keys(n)),r.length){Array.isArray(r[0])||(r=[r]);let s=r.map(([o,a])=>`${o}-${a}`);i._excludedEdges=i._excludedEdges.concat(s)}return i._nodes=(0,Jqe.default)(n,i._excludedEdges),i}pick(e){let r={};for(let i of e)this.fields[i]&&(r[i]=this.fields[i]);return this.clone().withMutation(i=>(i.fields={},i.shape(r)))}omit(e){let r=this.clone(),i=r.fields;r.fields={};for(let n of e)delete i[n];return r.withMutation(()=>r.shape(i))}from(e,r,i){let n=(0,qqe.getter)(e,!0);return this.transform(s=>{if(s==null)return s;let o=s;return(0,kie.default)(s,e)&&(o=ef({},s),i||delete o[e],o[r]=n(s)),o})}noUnknown(e=!0,r=Die.object.noUnknown){typeof e=="string"&&(r=e,e=!0);let i=this.test({name:"noUnknown",exclusive:!0,message:r,test(n){if(n==null)return!0;let s=Vqe(this.schema,n);return!e||s.length===0||this.createError({params:{unknown:s.join(", ")}})}});return i.spec.noUnknown=e,i}unknown(e=!0,r=Die.object.noUnknown){return this.noUnknown(!e,r)}transformKeys(e){return this.transform(r=>r&&(0,jqe.default)(r,(i,n)=>e(n)))}camelCase(){return this.transformKeys(Gqe.default)}snakeCase(){return this.transformKeys(Pie.default)}constantCase(){return this.transformKeys(e=>(0,Pie.default)(e).toUpperCase())}describe(){let e=super.describe();return e.fields=(0,Yqe.default)(this.fields,r=>r.describe()),e}};$d.default=P0;function xie(t){return new P0(t)}xie.prototype=P0.prototype});var Tie=E(eC=>{"use strict";Object.defineProperty(eC,"__esModule",{value:!0});eC.create=Lie;eC.default=void 0;var aN=tf(Zg()),Xqe=tf(qg()),Zqe=tf(Nd()),AN=La(),$qe=tf(a0()),eJe=tf(xc()),tJe=tf(Ma());function tf(t){return t&&t.__esModule?t:{default:t}}function D0(){return D0=Object.assign||function(t){for(var e=1;e{this.transform(function(r){if(typeof r=="string")try{r=JSON.parse(r)}catch(i){r=null}return this.isType(r)?r:null})})}_typeCheck(e){return Array.isArray(e)}get _subType(){return this.innerType}_cast(e,r){let i=super._cast(e,r);if(!this._typeCheck(i)||!this.innerType)return i;let n=!1,s=i.map((o,a)=>{let l=this.innerType.cast(o,D0({},r,{path:`${r.path||""}[${a}]`}));return l!==o&&(n=!0),l});return n?s:i}_validate(e,r={},i){var n,s;let o=[],a=r.sync,l=r.path,c=this.innerType,u=(n=r.abortEarly)!=null?n:this.spec.abortEarly,g=(s=r.recursive)!=null?s:this.spec.recursive,f=r.originalValue!=null?r.originalValue:e;super._validate(e,r,(h,p)=>{if(h){if(!eJe.default.isError(h)||u)return void i(h,p);o.push(h)}if(!g||!c||!this._typeCheck(p)){i(o[0]||null,p);return}f=f||p;let d=new Array(p.length);for(let m=0;mc.validate(I,b,H)}(0,$qe.default)({sync:a,path:l,value:p,errors:o,endEarly:u,tests:d},i)})}clone(e){let r=super.clone(e);return r.innerType=this.innerType,r}concat(e){let r=super.concat(e);return r.innerType=this.innerType,e.innerType&&(r.innerType=r.innerType?r.innerType.concat(e.innerType):e.innerType),r}of(e){let r=this.clone();if(!(0,Xqe.default)(e))throw new TypeError("`array.of()` sub-schema must be a valid yup schema not: "+(0,Zqe.default)(e));return r.innerType=e,r}length(e,r=AN.array.length){return this.test({message:r,name:"length",exclusive:!0,params:{length:e},test(i){return(0,aN.default)(i)||i.length===this.resolve(e)}})}min(e,r){return r=r||AN.array.min,this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(i){return(0,aN.default)(i)||i.length>=this.resolve(e)}})}max(e,r){return r=r||AN.array.max,this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(i){return(0,aN.default)(i)||i.length<=this.resolve(e)}})}ensure(){return this.default(()=>[]).transform((e,r)=>this._typeCheck(e)?e:r==null?[]:[].concat(r))}compact(e){let r=e?(i,n,s)=>!e(i,n,s):i=>!!i;return this.transform(i=>i!=null?i.filter(r):i)}describe(){let e=super.describe();return this.innerType&&(e.innerType=this.innerType.describe()),e}nullable(e=!0){return super.nullable(e)}defined(){return super.defined()}required(e){return super.required(e)}};eC.default=R0;Lie.prototype=R0.prototype});var Mie=E(tC=>{"use strict";Object.defineProperty(tC,"__esModule",{value:!0});tC.create=rJe;tC.default=void 0;var nJe=iJe(qg());function iJe(t){return t&&t.__esModule?t:{default:t}}function rJe(t){return new lN(t)}var lN=class{constructor(e){this.type="lazy",this.__isYupSchema__=!0,this._resolve=(r,i={})=>{let n=this.builder(r,i);if(!(0,nJe.default)(n))throw new TypeError("lazy() functions must return a valid schema");return n.resolve(i)},this.builder=e}resolve(e){return this._resolve(e.value,e)}cast(e,r){return this._resolve(e,r).cast(e,r)}validate(e,r,i){return this._resolve(e,r).validate(e,r,i)}validateSync(e,r){return this._resolve(e,r).validateSync(e,r)}validateAt(e,r,i){return this._resolve(r,i).validateAt(e,r,i)}validateSyncAt(e,r,i){return this._resolve(r,i).validateSyncAt(e,r,i)}describe(){return null}isValid(e,r){return this._resolve(e,r).isValid(e,r)}isValidSync(e,r){return this._resolve(e,r).isValidSync(e,r)}},sJe=lN;tC.default=sJe});var Oie=E(cN=>{"use strict";Object.defineProperty(cN,"__esModule",{value:!0});cN.default=oJe;var AJe=aJe(La());function aJe(t){return t&&t.__esModule?t:{default:t}}function oJe(t){Object.keys(t).forEach(e=>{Object.keys(t[e]).forEach(r=>{AJe.default[e][r]=t[e][r]})})}});var gN=E(cr=>{"use strict";Object.defineProperty(cr,"__esModule",{value:!0});cr.addMethod=lJe;Object.defineProperty(cr,"MixedSchema",{enumerable:!0,get:function(){return Kie.default}});Object.defineProperty(cr,"mixed",{enumerable:!0,get:function(){return Kie.create}});Object.defineProperty(cr,"BooleanSchema",{enumerable:!0,get:function(){return uN.default}});Object.defineProperty(cr,"bool",{enumerable:!0,get:function(){return uN.create}});Object.defineProperty(cr,"boolean",{enumerable:!0,get:function(){return uN.create}});Object.defineProperty(cr,"StringSchema",{enumerable:!0,get:function(){return Uie.default}});Object.defineProperty(cr,"string",{enumerable:!0,get:function(){return Uie.create}});Object.defineProperty(cr,"NumberSchema",{enumerable:!0,get:function(){return Hie.default}});Object.defineProperty(cr,"number",{enumerable:!0,get:function(){return Hie.create}});Object.defineProperty(cr,"DateSchema",{enumerable:!0,get:function(){return Gie.default}});Object.defineProperty(cr,"date",{enumerable:!0,get:function(){return Gie.create}});Object.defineProperty(cr,"ObjectSchema",{enumerable:!0,get:function(){return jie.default}});Object.defineProperty(cr,"object",{enumerable:!0,get:function(){return jie.create}});Object.defineProperty(cr,"ArraySchema",{enumerable:!0,get:function(){return Yie.default}});Object.defineProperty(cr,"array",{enumerable:!0,get:function(){return Yie.create}});Object.defineProperty(cr,"ref",{enumerable:!0,get:function(){return cJe.create}});Object.defineProperty(cr,"lazy",{enumerable:!0,get:function(){return uJe.create}});Object.defineProperty(cr,"ValidationError",{enumerable:!0,get:function(){return gJe.default}});Object.defineProperty(cr,"reach",{enumerable:!0,get:function(){return fJe.default}});Object.defineProperty(cr,"isSchema",{enumerable:!0,get:function(){return qie.default}});Object.defineProperty(cr,"setLocale",{enumerable:!0,get:function(){return hJe.default}});Object.defineProperty(cr,"BaseSchema",{enumerable:!0,get:function(){return pJe.default}});var Kie=Nc(yre()),uN=Nc(vre()),Uie=Nc(kre()),Hie=Nc(Rre()),Gie=Nc(Tre()),jie=Nc(Nie()),Yie=Nc(Tie()),cJe=Dc(),uJe=Mie(),gJe=rC(xc()),fJe=rC(XF()),qie=rC(qg()),hJe=rC(Oie()),pJe=rC(Ma());function rC(t){return t&&t.__esModule?t:{default:t}}function Jie(){if(typeof WeakMap!="function")return null;var t=new WeakMap;return Jie=function(){return t},t}function Nc(t){if(t&&t.__esModule)return t;if(t===null||typeof t!="object"&&typeof t!="function")return{default:t};var e=Jie();if(e&&e.has(t))return e.get(t);var r={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var n in t)if(Object.prototype.hasOwnProperty.call(t,n)){var s=i?Object.getOwnPropertyDescriptor(t,n):null;s&&(s.get||s.set)?Object.defineProperty(r,n,s):r[n]=t[n]}return r.default=t,e&&e.set(t,r),r}function lJe(t,e,r){if(!t||!(0,qie.default)(t.prototype))throw new TypeError("You must provide a yup schema constructor function");if(typeof e!="string")throw new TypeError("A Method name must be provided");if(typeof r!="function")throw new TypeError("Method function must be provided");t.prototype[e]=r}});var Xie=E((gCt,nC)=>{"use strict";var mJe=process.env.TERM_PROGRAM==="Hyper",EJe=process.platform==="win32",zie=process.platform==="linux",fN={ballotDisabled:"\u2612",ballotOff:"\u2610",ballotOn:"\u2611",bullet:"\u2022",bulletWhite:"\u25E6",fullBlock:"\u2588",heart:"\u2764",identicalTo:"\u2261",line:"\u2500",mark:"\u203B",middot:"\xB7",minus:"\uFF0D",multiplication:"\xD7",obelus:"\xF7",pencilDownRight:"\u270E",pencilRight:"\u270F",pencilUpRight:"\u2710",percent:"%",pilcrow2:"\u2761",pilcrow:"\xB6",plusMinus:"\xB1",section:"\xA7",starsOff:"\u2606",starsOn:"\u2605",upDownArrow:"\u2195"},Vie=Object.assign({},fN,{check:"\u221A",cross:"\xD7",ellipsisLarge:"...",ellipsis:"...",info:"i",question:"?",questionSmall:"?",pointer:">",pointerSmall:"\xBB",radioOff:"( )",radioOn:"(*)",warning:"\u203C"}),_ie=Object.assign({},fN,{ballotCross:"\u2718",check:"\u2714",cross:"\u2716",ellipsisLarge:"\u22EF",ellipsis:"\u2026",info:"\u2139",question:"?",questionFull:"\uFF1F",questionSmall:"\uFE56",pointer:zie?"\u25B8":"\u276F",pointerSmall:zie?"\u2023":"\u203A",radioOff:"\u25EF",radioOn:"\u25C9",warning:"\u26A0"});nC.exports=EJe&&!mJe?Vie:_ie;Reflect.defineProperty(nC.exports,"common",{enumerable:!1,value:fN});Reflect.defineProperty(nC.exports,"windows",{enumerable:!1,value:Vie});Reflect.defineProperty(nC.exports,"other",{enumerable:!1,value:_ie})});var js=E((fCt,hN)=>{"use strict";var IJe=t=>t!==null&&typeof t=="object"&&!Array.isArray(t),yJe=/[\u001b\u009b][[\]#;?()]*(?:(?:(?:[^\W_]*;?[^\W_]*)\u0007)|(?:(?:[0-9]{1,4}(;[0-9]{0,4})*)?[~0-9=<>cf-nqrtyA-PRZ]))/g,Zie=()=>{let t={enabled:!0,visible:!0,styles:{},keys:{}};"FORCE_COLOR"in process.env&&(t.enabled=process.env.FORCE_COLOR!=="0");let e=s=>{let o=s.open=`[${s.codes[0]}m`,a=s.close=`[${s.codes[1]}m`,l=s.regex=new RegExp(`\\u001b\\[${s.codes[1]}m`,"g");return s.wrap=(c,u)=>{c.includes(a)&&(c=c.replace(l,a+o));let g=o+c+a;return u?g.replace(/\r*\n/g,`${a}$&${o}`):g},s},r=(s,o,a)=>typeof s=="function"?s(o):s.wrap(o,a),i=(s,o)=>{if(s===""||s==null)return"";if(t.enabled===!1)return s;if(t.visible===!1)return"";let a=""+s,l=a.includes(` -`),c=o.length;for(c>0&&o.includes("unstyle")&&(o=[...new Set(["unstyle",...o])].reverse());c-- >0;)a=r(t.styles[o[c]],a,l);return a},n=(s,o,a)=>{t.styles[s]=e({name:s,codes:o}),(t.keys[a]||(t.keys[a]=[])).push(s),Reflect.defineProperty(t,s,{configurable:!0,enumerable:!0,set(c){t.alias(s,c)},get(){let c=u=>i(u,c.stack);return Reflect.setPrototypeOf(c,t),c.stack=this.stack?this.stack.concat(s):[s],c}})};return n("reset",[0,0],"modifier"),n("bold",[1,22],"modifier"),n("dim",[2,22],"modifier"),n("italic",[3,23],"modifier"),n("underline",[4,24],"modifier"),n("inverse",[7,27],"modifier"),n("hidden",[8,28],"modifier"),n("strikethrough",[9,29],"modifier"),n("black",[30,39],"color"),n("red",[31,39],"color"),n("green",[32,39],"color"),n("yellow",[33,39],"color"),n("blue",[34,39],"color"),n("magenta",[35,39],"color"),n("cyan",[36,39],"color"),n("white",[37,39],"color"),n("gray",[90,39],"color"),n("grey",[90,39],"color"),n("bgBlack",[40,49],"bg"),n("bgRed",[41,49],"bg"),n("bgGreen",[42,49],"bg"),n("bgYellow",[43,49],"bg"),n("bgBlue",[44,49],"bg"),n("bgMagenta",[45,49],"bg"),n("bgCyan",[46,49],"bg"),n("bgWhite",[47,49],"bg"),n("blackBright",[90,39],"bright"),n("redBright",[91,39],"bright"),n("greenBright",[92,39],"bright"),n("yellowBright",[93,39],"bright"),n("blueBright",[94,39],"bright"),n("magentaBright",[95,39],"bright"),n("cyanBright",[96,39],"bright"),n("whiteBright",[97,39],"bright"),n("bgBlackBright",[100,49],"bgBright"),n("bgRedBright",[101,49],"bgBright"),n("bgGreenBright",[102,49],"bgBright"),n("bgYellowBright",[103,49],"bgBright"),n("bgBlueBright",[104,49],"bgBright"),n("bgMagentaBright",[105,49],"bgBright"),n("bgCyanBright",[106,49],"bgBright"),n("bgWhiteBright",[107,49],"bgBright"),t.ansiRegex=yJe,t.hasColor=t.hasAnsi=s=>(t.ansiRegex.lastIndex=0,typeof s=="string"&&s!==""&&t.ansiRegex.test(s)),t.alias=(s,o)=>{let a=typeof o=="string"?t[o]:o;if(typeof a!="function")throw new TypeError("Expected alias to be the name of an existing color (string) or a function");a.stack||(Reflect.defineProperty(a,"name",{value:s}),t.styles[s]=a,a.stack=[s]),Reflect.defineProperty(t,s,{configurable:!0,enumerable:!0,set(l){t.alias(s,l)},get(){let l=c=>i(c,l.stack);return Reflect.setPrototypeOf(l,t),l.stack=this.stack?this.stack.concat(a.stack):a.stack,l}})},t.theme=s=>{if(!IJe(s))throw new TypeError("Expected theme to be an object");for(let o of Object.keys(s))t.alias(o,s[o]);return t},t.alias("unstyle",s=>typeof s=="string"&&s!==""?(t.ansiRegex.lastIndex=0,s.replace(t.ansiRegex,"")):""),t.alias("noop",s=>s),t.none=t.clear=t.noop,t.stripColor=t.unstyle,t.symbols=Xie(),t.define=n,t};hN.exports=Zie();hN.exports.create=Zie});var Mi=E(bt=>{"use strict";var wJe=Object.prototype.toString,Cs=js(),$ie=!1,pN=[],ene={yellow:"blue",cyan:"red",green:"magenta",black:"white",blue:"yellow",red:"cyan",magenta:"green",white:"black"};bt.longest=(t,e)=>t.reduce((r,i)=>Math.max(r,e?i[e].length:i.length),0);bt.hasColor=t=>!!t&&Cs.hasColor(t);var N0=bt.isObject=t=>t!==null&&typeof t=="object"&&!Array.isArray(t);bt.nativeType=t=>wJe.call(t).slice(8,-1).toLowerCase().replace(/\s/g,"");bt.isAsyncFn=t=>bt.nativeType(t)==="asyncfunction";bt.isPrimitive=t=>t!=null&&typeof t!="object"&&typeof t!="function";bt.resolve=(t,e,...r)=>typeof e=="function"?e.call(t,...r):e;bt.scrollDown=(t=[])=>[...t.slice(1),t[0]];bt.scrollUp=(t=[])=>[t.pop(),...t];bt.reorder=(t=[])=>{let e=t.slice();return e.sort((r,i)=>r.index>i.index?1:r.index{let i=t.length,n=r===i?0:r<0?i-1:r,s=t[e];t[e]=t[n],t[n]=s};bt.width=(t,e=80)=>{let r=t&&t.columns?t.columns:e;return t&&typeof t.getWindowSize=="function"&&(r=t.getWindowSize()[0]),process.platform==="win32"?r-1:r};bt.height=(t,e=20)=>{let r=t&&t.rows?t.rows:e;return t&&typeof t.getWindowSize=="function"&&(r=t.getWindowSize()[1]),r};bt.wordWrap=(t,e={})=>{if(!t)return t;typeof e=="number"&&(e={width:e});let{indent:r="",newline:i=` -`+r,width:n=80}=e;n-=((i+r).match(/[^\S\n]/g)||[]).length;let o=`.{1,${n}}([\\s\\u200B]+|$)|[^\\s\\u200B]+?([\\s\\u200B]+|$)`,a=t.trim(),l=new RegExp(o,"g"),c=a.match(l)||[];return c=c.map(u=>u.replace(/\n$/,"")),e.padEnd&&(c=c.map(u=>u.padEnd(n," "))),e.padStart&&(c=c.map(u=>u.padStart(n," "))),r+c.join(i)};bt.unmute=t=>{let e=t.stack.find(i=>Cs.keys.color.includes(i));return e?Cs[e]:t.stack.find(i=>i.slice(2)==="bg")?Cs[e.slice(2)]:i=>i};bt.pascal=t=>t?t[0].toUpperCase()+t.slice(1):"";bt.inverse=t=>{if(!t||!t.stack)return t;let e=t.stack.find(i=>Cs.keys.color.includes(i));if(e){let i=Cs["bg"+bt.pascal(e)];return i?i.black:t}let r=t.stack.find(i=>i.slice(0,2)==="bg");return r?Cs[r.slice(2).toLowerCase()]||t:Cs.none};bt.complement=t=>{if(!t||!t.stack)return t;let e=t.stack.find(i=>Cs.keys.color.includes(i)),r=t.stack.find(i=>i.slice(0,2)==="bg");if(e&&!r)return Cs[ene[e]||e];if(r){let i=r.slice(2).toLowerCase(),n=ene[i];return n&&Cs["bg"+bt.pascal(n)]||t}return Cs.none};bt.meridiem=t=>{let e=t.getHours(),r=t.getMinutes(),i=e>=12?"pm":"am";e=e%12;let n=e===0?12:e,s=r<10?"0"+r:r;return n+":"+s+" "+i};bt.set=(t={},e="",r)=>e.split(".").reduce((i,n,s,o)=>{let a=o.length-1>s?i[n]||{}:r;return!bt.isObject(a)&&s{let i=t[e]==null?e.split(".").reduce((n,s)=>n&&n[s],t):t[e];return i==null?r:i};bt.mixin=(t,e)=>{if(!N0(t))return e;if(!N0(e))return t;for(let r of Object.keys(e)){let i=Object.getOwnPropertyDescriptor(e,r);if(i.hasOwnProperty("value"))if(t.hasOwnProperty(r)&&N0(i.value)){let n=Object.getOwnPropertyDescriptor(t,r);N0(n.value)?t[r]=bt.merge({},t[r],e[r]):Reflect.defineProperty(t,r,i)}else Reflect.defineProperty(t,r,i);else Reflect.defineProperty(t,r,i)}return t};bt.merge=(...t)=>{let e={};for(let r of t)bt.mixin(e,r);return e};bt.mixinEmitter=(t,e)=>{let r=e.constructor.prototype;for(let i of Object.keys(r)){let n=r[i];typeof n=="function"?bt.define(t,i,n.bind(e)):bt.define(t,i,n)}};bt.onExit=t=>{let e=(r,i)=>{$ie||($ie=!0,pN.forEach(n=>n()),r===!0&&process.exit(128+i))};pN.length===0&&(process.once("SIGTERM",e.bind(null,!0,15)),process.once("SIGINT",e.bind(null,!0,2)),process.once("exit",e)),pN.push(t)};bt.define=(t,e,r)=>{Reflect.defineProperty(t,e,{value:r})};bt.defineExport=(t,e,r)=>{let i;Reflect.defineProperty(t,e,{enumerable:!0,configurable:!0,set(n){i=n},get(){return i?i():r()}})}});var tne=E(nf=>{"use strict";nf.ctrl={a:"first",b:"backward",c:"cancel",d:"deleteForward",e:"last",f:"forward",g:"reset",i:"tab",k:"cutForward",l:"reset",n:"newItem",m:"cancel",j:"submit",p:"search",r:"remove",s:"save",u:"undo",w:"cutLeft",x:"toggleCursor",v:"paste"};nf.shift={up:"shiftUp",down:"shiftDown",left:"shiftLeft",right:"shiftRight",tab:"prev"};nf.fn={up:"pageUp",down:"pageDown",left:"pageLeft",right:"pageRight",delete:"deleteForward"};nf.option={b:"backward",f:"forward",d:"cutRight",left:"cutLeft",up:"altUp",down:"altDown"};nf.keys={pageup:"pageUp",pagedown:"pageDown",home:"home",end:"end",cancel:"cancel",delete:"deleteForward",backspace:"delete",down:"down",enter:"submit",escape:"cancel",left:"left",space:"space",number:"number",return:"submit",right:"right",tab:"next",up:"up"}});var nne=E((dCt,rne)=>{"use strict";var ine=require("readline"),BJe=tne(),QJe=/^(?:\x1b)([a-zA-Z0-9])$/,bJe=/^(?:\x1b+)(O|N|\[|\[\[)(?:(\d+)(?:;(\d+))?([~^$])|(?:1;)?(\d+)?([a-zA-Z]))/,vJe={OP:"f1",OQ:"f2",OR:"f3",OS:"f4","[11~":"f1","[12~":"f2","[13~":"f3","[14~":"f4","[[A":"f1","[[B":"f2","[[C":"f3","[[D":"f4","[[E":"f5","[15~":"f5","[17~":"f6","[18~":"f7","[19~":"f8","[20~":"f9","[21~":"f10","[23~":"f11","[24~":"f12","[A":"up","[B":"down","[C":"right","[D":"left","[E":"clear","[F":"end","[H":"home",OA:"up",OB:"down",OC:"right",OD:"left",OE:"clear",OF:"end",OH:"home","[1~":"home","[2~":"insert","[3~":"delete","[4~":"end","[5~":"pageup","[6~":"pagedown","[[5~":"pageup","[[6~":"pagedown","[7~":"home","[8~":"end","[a":"up","[b":"down","[c":"right","[d":"left","[e":"clear","[2$":"insert","[3$":"delete","[5$":"pageup","[6$":"pagedown","[7$":"home","[8$":"end",Oa:"up",Ob:"down",Oc:"right",Od:"left",Oe:"clear","[2^":"insert","[3^":"delete","[5^":"pageup","[6^":"pagedown","[7^":"home","[8^":"end","[Z":"tab"};function SJe(t){return["[a","[b","[c","[d","[e","[2$","[3$","[5$","[6$","[7$","[8$","[Z"].includes(t)}function xJe(t){return["Oa","Ob","Oc","Od","Oe","[2^","[3^","[5^","[6^","[7^","[8^"].includes(t)}var L0=(t="",e={})=>{let r,i=P({name:e.name,ctrl:!1,meta:!1,shift:!1,option:!1,sequence:t,raw:t},e);if(Buffer.isBuffer(t)?t[0]>127&&t[1]===void 0?(t[0]-=128,t=""+String(t)):t=String(t):t!==void 0&&typeof t!="string"?t=String(t):t||(t=i.sequence||""),i.sequence=i.sequence||t||i.name,t==="\r")i.raw=void 0,i.name="return";else if(t===` -`)i.name="enter";else if(t===" ")i.name="tab";else if(t==="\b"||t==="\x7F"||t==="\x7F"||t==="\b")i.name="backspace",i.meta=t.charAt(0)==="";else if(t===""||t==="")i.name="escape",i.meta=t.length===2;else if(t===" "||t===" ")i.name="space",i.meta=t.length===2;else if(t<="")i.name=String.fromCharCode(t.charCodeAt(0)+"a".charCodeAt(0)-1),i.ctrl=!0;else if(t.length===1&&t>="0"&&t<="9")i.name="number";else if(t.length===1&&t>="a"&&t<="z")i.name=t;else if(t.length===1&&t>="A"&&t<="Z")i.name=t.toLowerCase(),i.shift=!0;else if(r=QJe.exec(t))i.meta=!0,i.shift=/^[A-Z]$/.test(r[1]);else if(r=bJe.exec(t)){let n=[...t];n[0]===""&&n[1]===""&&(i.option=!0);let s=[r[1],r[2],r[4],r[6]].filter(Boolean).join(""),o=(r[3]||r[5]||1)-1;i.ctrl=!!(o&4),i.meta=!!(o&10),i.shift=!!(o&1),i.code=s,i.name=vJe[s],i.shift=SJe(s)||i.shift,i.ctrl=xJe(s)||i.ctrl}return i};L0.listen=(t={},e)=>{let{stdin:r}=t;if(!r||r!==process.stdin&&!r.isTTY)throw new Error("Invalid stream passed");let i=ine.createInterface({terminal:!0,input:r});ine.emitKeypressEvents(r,i);let n=(a,l)=>e(a,L0(a,l),i),s=r.isRaw;return r.isTTY&&r.setRawMode(!0),r.on("keypress",n),i.resume(),()=>{r.isTTY&&r.setRawMode(s),r.removeListener("keypress",n),i.pause(),i.close()}};L0.action=(t,e,r)=>{let i=P(P({},BJe),r);return e.ctrl?(e.action=i.ctrl[e.name],e):e.option&&i.option?(e.action=i.option[e.name],e):e.shift?(e.action=i.shift[e.name],e):(e.action=i.keys[e.name],e)};rne.exports=L0});var one=E((CCt,sne)=>{"use strict";sne.exports=t=>{t.timers=t.timers||{};let e=t.options.timers;if(!!e)for(let r of Object.keys(e)){let i=e[r];typeof i=="number"&&(i={interval:i}),kJe(t,r,i)}};function kJe(t,e,r={}){let i=t.timers[e]={name:e,start:Date.now(),ms:0,tick:0},n=r.interval||120;i.frames=r.frames||[],i.loading=!0;let s=setInterval(()=>{i.ms=Date.now()-i.start,i.tick++,t.render()},n);return i.stop=()=>{i.loading=!1,clearInterval(s)},Reflect.defineProperty(i,"interval",{value:s}),t.once("close",()=>i.stop()),i.stop}});var lne=E((mCt,ane)=>{"use strict";var{define:PJe,width:DJe}=Mi(),Ane=class{constructor(e){let r=e.options;PJe(this,"_prompt",e),this.type=e.type,this.name=e.name,this.message="",this.header="",this.footer="",this.error="",this.hint="",this.input="",this.cursor=0,this.index=0,this.lines=0,this.tick=0,this.prompt="",this.buffer="",this.width=DJe(r.stdout||process.stdout),Object.assign(this,r),this.name=this.name||this.message,this.message=this.message||this.name,this.symbols=e.symbols,this.styles=e.styles,this.required=new Set,this.cancelled=!1,this.submitted=!1}clone(){let e=P({},this);return e.status=this.status,e.buffer=Buffer.from(e.buffer),delete e.clone,e}set color(e){this._color=e}get color(){let e=this.prompt.styles;if(this.cancelled)return e.cancelled;if(this.submitted)return e.submitted;let r=this._color||e[this.status];return typeof r=="function"?r:e.pending}set loading(e){this._loading=e}get loading(){return typeof this._loading=="boolean"?this._loading:this.loadingChoices?"choices":!1}get status(){return this.cancelled?"cancelled":this.submitted?"submitted":"pending"}};ane.exports=Ane});var une=E((ECt,cne)=>{"use strict";var dN=Mi(),yi=js(),CN={default:yi.noop,noop:yi.noop,set inverse(t){this._inverse=t},get inverse(){return this._inverse||dN.inverse(this.primary)},set complement(t){this._complement=t},get complement(){return this._complement||dN.complement(this.primary)},primary:yi.cyan,success:yi.green,danger:yi.magenta,strong:yi.bold,warning:yi.yellow,muted:yi.dim,disabled:yi.gray,dark:yi.dim.gray,underline:yi.underline,set info(t){this._info=t},get info(){return this._info||this.primary},set em(t){this._em=t},get em(){return this._em||this.primary.underline},set heading(t){this._heading=t},get heading(){return this._heading||this.muted.underline},set pending(t){this._pending=t},get pending(){return this._pending||this.primary},set submitted(t){this._submitted=t},get submitted(){return this._submitted||this.success},set cancelled(t){this._cancelled=t},get cancelled(){return this._cancelled||this.danger},set typing(t){this._typing=t},get typing(){return this._typing||this.dim},set placeholder(t){this._placeholder=t},get placeholder(){return this._placeholder||this.primary.dim},set highlight(t){this._highlight=t},get highlight(){return this._highlight||this.inverse}};CN.merge=(t={})=>{t.styles&&typeof t.styles.enabled=="boolean"&&(yi.enabled=t.styles.enabled),t.styles&&typeof t.styles.visible=="boolean"&&(yi.visible=t.styles.visible);let e=dN.merge({},CN,t.styles);delete e.merge;for(let r of Object.keys(yi))e.hasOwnProperty(r)||Reflect.defineProperty(e,r,{get:()=>yi[r]});for(let r of Object.keys(yi.styles))e.hasOwnProperty(r)||Reflect.defineProperty(e,r,{get:()=>yi[r]});return e};cne.exports=CN});var fne=E((ICt,gne)=>{"use strict";var mN=process.platform==="win32",Ka=js(),RJe=Mi(),EN=_(P({},Ka.symbols),{upDownDoubleArrow:"\u21D5",upDownDoubleArrow2:"\u2B0D",upDownArrow:"\u2195",asterisk:"*",asterism:"\u2042",bulletWhite:"\u25E6",electricArrow:"\u2301",ellipsisLarge:"\u22EF",ellipsisSmall:"\u2026",fullBlock:"\u2588",identicalTo:"\u2261",indicator:Ka.symbols.check,leftAngle:"\u2039",mark:"\u203B",minus:"\u2212",multiplication:"\xD7",obelus:"\xF7",percent:"%",pilcrow:"\xB6",pilcrow2:"\u2761",pencilUpRight:"\u2710",pencilDownRight:"\u270E",pencilRight:"\u270F",plus:"+",plusMinus:"\xB1",pointRight:"\u261E",rightAngle:"\u203A",section:"\xA7",hexagon:{off:"\u2B21",on:"\u2B22",disabled:"\u2B22"},ballot:{on:"\u2611",off:"\u2610",disabled:"\u2612"},stars:{on:"\u2605",off:"\u2606",disabled:"\u2606"},folder:{on:"\u25BC",off:"\u25B6",disabled:"\u25B6"},prefix:{pending:Ka.symbols.question,submitted:Ka.symbols.check,cancelled:Ka.symbols.cross},separator:{pending:Ka.symbols.pointerSmall,submitted:Ka.symbols.middot,cancelled:Ka.symbols.middot},radio:{off:mN?"( )":"\u25EF",on:mN?"(*)":"\u25C9",disabled:mN?"(|)":"\u24BE"},numbers:["\u24EA","\u2460","\u2461","\u2462","\u2463","\u2464","\u2465","\u2466","\u2467","\u2468","\u2469","\u246A","\u246B","\u246C","\u246D","\u246E","\u246F","\u2470","\u2471","\u2472","\u2473","\u3251","\u3252","\u3253","\u3254","\u3255","\u3256","\u3257","\u3258","\u3259","\u325A","\u325B","\u325C","\u325D","\u325E","\u325F","\u32B1","\u32B2","\u32B3","\u32B4","\u32B5","\u32B6","\u32B7","\u32B8","\u32B9","\u32BA","\u32BB","\u32BC","\u32BD","\u32BE","\u32BF"]});EN.merge=t=>{let e=RJe.merge({},Ka.symbols,EN,t.symbols);return delete e.merge,e};gne.exports=EN});var pne=E((yCt,hne)=>{"use strict";var FJe=une(),NJe=fne(),LJe=Mi();hne.exports=t=>{t.options=LJe.merge({},t.options.theme,t.options),t.symbols=NJe.merge(t.options),t.styles=FJe.merge(t.options)}});var Ine=E((dne,Cne)=>{"use strict";var mne=process.env.TERM_PROGRAM==="Apple_Terminal",TJe=js(),IN=Mi(),Ys=Cne.exports=dne,Ir="[",Ene="\x07",yN=!1,HA=Ys.code={bell:Ene,beep:Ene,beginning:`${Ir}G`,down:`${Ir}J`,esc:Ir,getPosition:`${Ir}6n`,hide:`${Ir}?25l`,line:`${Ir}2K`,lineEnd:`${Ir}K`,lineStart:`${Ir}1K`,restorePosition:Ir+(mne?"8":"u"),savePosition:Ir+(mne?"7":"s"),screen:`${Ir}2J`,show:`${Ir}?25h`,up:`${Ir}1J`},Lc=Ys.cursor={get hidden(){return yN},hide(){return yN=!0,HA.hide},show(){return yN=!1,HA.show},forward:(t=1)=>`${Ir}${t}C`,backward:(t=1)=>`${Ir}${t}D`,nextLine:(t=1)=>`${Ir}E`.repeat(t),prevLine:(t=1)=>`${Ir}F`.repeat(t),up:(t=1)=>t?`${Ir}${t}A`:"",down:(t=1)=>t?`${Ir}${t}B`:"",right:(t=1)=>t?`${Ir}${t}C`:"",left:(t=1)=>t?`${Ir}${t}D`:"",to(t,e){return e?`${Ir}${e+1};${t+1}H`:`${Ir}${t+1}G`},move(t=0,e=0){let r="";return r+=t<0?Lc.left(-t):t>0?Lc.right(t):"",r+=e<0?Lc.up(-e):e>0?Lc.down(e):"",r},restore(t={}){let{after:e,cursor:r,initial:i,input:n,prompt:s,size:o,value:a}=t;if(i=IN.isPrimitive(i)?String(i):"",n=IN.isPrimitive(n)?String(n):"",a=IN.isPrimitive(a)?String(a):"",o){let l=Ys.cursor.up(o)+Ys.cursor.to(s.length),c=n.length-r;return c>0&&(l+=Ys.cursor.left(c)),l}if(a||e){let l=!n&&!!i?-i.length:-n.length+r;return e&&(l-=e.length),n===""&&i&&!s.includes(i)&&(l+=i.length),Ys.cursor.move(l)}}},wN=Ys.erase={screen:HA.screen,up:HA.up,down:HA.down,line:HA.line,lineEnd:HA.lineEnd,lineStart:HA.lineStart,lines(t){let e="";for(let r=0;r{if(!e)return wN.line+Lc.to(0);let r=s=>[...TJe.unstyle(s)].length,i=t.split(/\r?\n/),n=0;for(let s of i)n+=1+Math.floor(Math.max(r(s)-1,0)/e);return(wN.line+Lc.prevLine()).repeat(n-1)+wN.line+Lc.to(0)}});var sf=E((wCt,yne)=>{"use strict";var MJe=require("events"),wne=js(),BN=nne(),OJe=one(),KJe=lne(),UJe=pne(),bn=Mi(),Tc=Ine(),T0=class extends MJe{constructor(e={}){super();this.name=e.name,this.type=e.type,this.options=e,UJe(this),OJe(this),this.state=new KJe(this),this.initial=[e.initial,e.default].find(r=>r!=null),this.stdout=e.stdout||process.stdout,this.stdin=e.stdin||process.stdin,this.scale=e.scale||1,this.term=this.options.term||process.env.TERM_PROGRAM,this.margin=GJe(this.options.margin),this.setMaxListeners(0),HJe(this)}async keypress(e,r={}){this.keypressed=!0;let i=BN.action(e,BN(e,r),this.options.actions);this.state.keypress=i,this.emit("keypress",e,i),this.emit("state",this.state.clone());let n=this.options[i.action]||this[i.action]||this.dispatch;if(typeof n=="function")return await n.call(this,e,i);this.alert()}alert(){delete this.state.alert,this.options.show===!1?this.emit("alert"):this.stdout.write(Tc.code.beep)}cursorHide(){this.stdout.write(Tc.cursor.hide()),bn.onExit(()=>this.cursorShow())}cursorShow(){this.stdout.write(Tc.cursor.show())}write(e){!e||(this.stdout&&this.state.show!==!1&&this.stdout.write(e),this.state.buffer+=e)}clear(e=0){let r=this.state.buffer;this.state.buffer="",!(!r&&!e||this.options.show===!1)&&this.stdout.write(Tc.cursor.down(e)+Tc.clear(r,this.width))}restore(){if(this.state.closed||this.options.show===!1)return;let{prompt:e,after:r,rest:i}=this.sections(),{cursor:n,initial:s="",input:o="",value:a=""}=this,l=this.state.size=i.length,c={after:r,cursor:n,initial:s,input:o,prompt:e,size:l,value:a},u=Tc.cursor.restore(c);u&&this.stdout.write(u)}sections(){let{buffer:e,input:r,prompt:i}=this.state;i=wne.unstyle(i);let n=wne.unstyle(e),s=n.indexOf(i),o=n.slice(0,s),l=n.slice(s).split(` -`),c=l[0],u=l[l.length-1],f=(i+(r?" "+r:"")).length,h=fe.call(this,this.value),this.result=()=>i.call(this,this.value),typeof r.initial=="function"&&(this.initial=await r.initial.call(this,this)),typeof r.onRun=="function"&&await r.onRun.call(this,this),typeof r.onSubmit=="function"){let n=r.onSubmit.bind(this),s=this.submit.bind(this);delete this.options.onSubmit,this.submit=async()=>(await n(this.name,this.value,this),s())}await this.start(),await this.render()}render(){throw new Error("expected prompt to have a custom render method")}run(){return new Promise(async(e,r)=>{if(this.once("submit",e),this.once("cancel",r),await this.skip())return this.render=()=>{},this.submit();await this.initialize(),this.emit("run")})}async element(e,r,i){let{options:n,state:s,symbols:o,timers:a}=this,l=a&&a[e];s.timer=l;let c=n[e]||s[e]||o[e],u=r&&r[e]!=null?r[e]:await c;if(u==="")return u;let g=await this.resolve(u,s,r,i);return!g&&r&&r[e]?this.resolve(c,s,r,i):g}async prefix(){let e=await this.element("prefix")||this.symbols,r=this.timers&&this.timers.prefix,i=this.state;return i.timer=r,bn.isObject(e)&&(e=e[i.status]||e.pending),bn.hasColor(e)?e:(this.styles[i.status]||this.styles.pending)(e)}async message(){let e=await this.element("message");return bn.hasColor(e)?e:this.styles.strong(e)}async separator(){let e=await this.element("separator")||this.symbols,r=this.timers&&this.timers.separator,i=this.state;i.timer=r;let n=e[i.status]||e.pending||i.separator,s=await this.resolve(n,i);return bn.isObject(s)&&(s=s[i.status]||s.pending),bn.hasColor(s)?s:this.styles.muted(s)}async pointer(e,r){let i=await this.element("pointer",e,r);if(typeof i=="string"&&bn.hasColor(i))return i;if(i){let n=this.styles,s=this.index===r,o=s?n.primary:c=>c,a=await this.resolve(i[s?"on":"off"]||i,this.state),l=bn.hasColor(a)?a:o(a);return s?l:" ".repeat(a.length)}}async indicator(e,r){let i=await this.element("indicator",e,r);if(typeof i=="string"&&bn.hasColor(i))return i;if(i){let n=this.styles,s=e.enabled===!0,o=s?n.success:n.dark,a=i[s?"on":"off"]||i;return bn.hasColor(a)?a:o(a)}return""}body(){return null}footer(){if(this.state.status==="pending")return this.element("footer")}header(){if(this.state.status==="pending")return this.element("header")}async hint(){if(this.state.status==="pending"&&!this.isValue(this.state.input)){let e=await this.element("hint");return bn.hasColor(e)?e:this.styles.muted(e)}}error(e){return this.state.submitted?"":e||this.state.error}format(e){return e}result(e){return e}validate(e){return this.options.required===!0?this.isValue(e):!0}isValue(e){return e!=null&&e!==""}resolve(e,...r){return bn.resolve(this,e,...r)}get base(){return T0.prototype}get style(){return this.styles[this.state.status]}get height(){return this.options.rows||bn.height(this.stdout,25)}get width(){return this.options.columns||bn.width(this.stdout,80)}get size(){return{width:this.width,height:this.height}}set cursor(e){this.state.cursor=e}get cursor(){return this.state.cursor}set input(e){this.state.input=e}get input(){return this.state.input}set value(e){this.state.value=e}get value(){let{input:e,value:r}=this.state,i=[r,e].find(this.isValue.bind(this));return this.isValue(i)?i:this.initial}static get prompt(){return e=>new this(e).run()}};function HJe(t){let e=n=>t[n]===void 0||typeof t[n]=="function",r=["actions","choices","initial","margin","roles","styles","symbols","theme","timers","value"],i=["body","footer","error","header","hint","indicator","message","prefix","separator","skip"];for(let n of Object.keys(t.options)){if(r.includes(n)||/^on[A-Z]/.test(n))continue;let s=t.options[n];typeof s=="function"&&e(n)?i.includes(n)||(t[n]=s.bind(t)):typeof t[n]!="function"&&(t[n]=s)}}function GJe(t){typeof t=="number"&&(t=[t,t,t,t]);let e=[].concat(t||[]),r=n=>n%2==0?` -`:" ",i=[];for(let n=0;n<4;n++){let s=r(n);e[n]?i.push(s.repeat(e[n])):i.push("")}return i}yne.exports=T0});var bne=E((BCt,Bne)=>{"use strict";var jJe=Mi(),Qne={default(t,e){return e},checkbox(t,e){throw new Error("checkbox role is not implemented yet")},editable(t,e){throw new Error("editable role is not implemented yet")},expandable(t,e){throw new Error("expandable role is not implemented yet")},heading(t,e){return e.disabled="",e.indicator=[e.indicator," "].find(r=>r!=null),e.message=e.message||"",e},input(t,e){throw new Error("input role is not implemented yet")},option(t,e){return Qne.default(t,e)},radio(t,e){throw new Error("radio role is not implemented yet")},separator(t,e){return e.disabled="",e.indicator=[e.indicator," "].find(r=>r!=null),e.message=e.message||t.symbols.line.repeat(5),e},spacer(t,e){return e}};Bne.exports=(t,e={})=>{let r=jJe.merge({},Qne,e.roles);return r[t]||r.default}});var sC=E((QCt,vne)=>{"use strict";var YJe=js(),qJe=sf(),JJe=bne(),M0=Mi(),{reorder:QN,scrollUp:WJe,scrollDown:zJe,isObject:Sne,swap:VJe}=M0,xne=class extends qJe{constructor(e){super(e);this.cursorHide(),this.maxSelected=e.maxSelected||Infinity,this.multiple=e.multiple||!1,this.initial=e.initial||0,this.delay=e.delay||0,this.longest=0,this.num=""}async initialize(){typeof this.options.initial=="function"&&(this.initial=await this.options.initial.call(this)),await this.reset(!0),await super.initialize()}async reset(){let{choices:e,initial:r,autofocus:i,suggest:n}=this.options;if(this.state._choices=[],this.state.choices=[],this.choices=await Promise.all(await this.toChoices(e)),this.choices.forEach(s=>s.enabled=!1),typeof n!="function"&&this.selectable.length===0)throw new Error("At least one choice must be selectable");Sne(r)&&(r=Object.keys(r)),Array.isArray(r)?(i!=null&&(this.index=this.findIndex(i)),r.forEach(s=>this.enable(this.find(s))),await this.render()):(i!=null&&(r=i),typeof r=="string"&&(r=this.findIndex(r)),typeof r=="number"&&r>-1&&(this.index=Math.max(0,Math.min(r,this.choices.length)),this.enable(this.find(this.index)))),this.isDisabled(this.focused)&&await this.down()}async toChoices(e,r){this.state.loadingChoices=!0;let i=[],n=0,s=async(o,a)=>{typeof o=="function"&&(o=await o.call(this)),o instanceof Promise&&(o=await o);for(let l=0;l(this.state.loadingChoices=!1,o))}async toChoice(e,r,i){if(typeof e=="function"&&(e=await e.call(this,this)),e instanceof Promise&&(e=await e),typeof e=="string"&&(e={name:e}),e.normalized)return e;e.normalized=!0;let n=e.value;if(e=JJe(e.role,this.options)(this,e),typeof e.disabled=="string"&&!e.hint&&(e.hint=e.disabled,e.disabled=!0),e.disabled===!0&&e.hint==null&&(e.hint="(disabled)"),e.index!=null)return e;e.name=e.name||e.key||e.title||e.value||e.message,e.message=e.message||e.name||"",e.value=[e.value,e.name].find(this.isValue.bind(this)),e.input="",e.index=r,e.cursor=0,M0.define(e,"parent",i),e.level=i?i.level+1:1,e.indent==null&&(e.indent=i?i.indent+" ":e.indent||""),e.path=i?i.path+"."+e.name:e.name,e.enabled=!!(this.multiple&&!this.isDisabled(e)&&(e.enabled||this.isSelected(e))),this.isDisabled(e)||(this.longest=Math.max(this.longest,YJe.unstyle(e.message).length));let o=P({},e);return e.reset=(a=o.input,l=o.value)=>{for(let c of Object.keys(o))e[c]=o[c];e.input=a,e.value=l},n==null&&typeof e.initial=="function"&&(e.input=await e.initial.call(this,this.state,e,r)),e}async onChoice(e,r){this.emit("choice",e,r,this),typeof e.onChoice=="function"&&await e.onChoice.call(this,this.state,e,r)}async addChoice(e,r,i){let n=await this.toChoice(e,r,i);return this.choices.push(n),this.index=this.choices.length-1,this.limit=this.choices.length,n}async newItem(e,r,i){let n=P({name:"New choice name?",editable:!0,newChoice:!0},e),s=await this.addChoice(n,r,i);return s.updateChoice=()=>{delete s.newChoice,s.name=s.message=s.input,s.input="",s.cursor=0},this.render()}indent(e){return e.indent==null?e.level>1?" ".repeat(e.level-1):"":e.indent}dispatch(e,r){if(this.multiple&&this[r.name])return this[r.name]();this.alert()}focus(e,r){return typeof r!="boolean"&&(r=e.enabled),r&&!e.enabled&&this.selected.length>=this.maxSelected?this.alert():(this.index=e.index,e.enabled=r&&!this.isDisabled(e),e)}space(){return this.multiple?(this.toggle(this.focused),this.render()):this.alert()}a(){if(this.maxSelectedr.enabled);return this.choices.forEach(r=>r.enabled=!e),this.render()}i(){return this.choices.length-this.selected.length>this.maxSelected?this.alert():(this.choices.forEach(e=>e.enabled=!e.enabled),this.render())}g(e=this.focused){return this.choices.some(r=>!!r.parent)?(this.toggle(e.parent&&!e.choices?e.parent:e),this.render()):this.a()}toggle(e,r){if(!e.enabled&&this.selected.length>=this.maxSelected)return this.alert();typeof r!="boolean"&&(r=!e.enabled),e.enabled=r,e.choices&&e.choices.forEach(n=>this.toggle(n,r));let i=e.parent;for(;i;){let n=i.choices.filter(s=>this.isDisabled(s));i.enabled=n.every(s=>s.enabled===!0),i=i.parent}return kne(this,this.choices),this.emit("toggle",e,this),e}enable(e){return this.selected.length>=this.maxSelected?this.alert():(e.enabled=!this.isDisabled(e),e.choices&&e.choices.forEach(this.enable.bind(this)),e)}disable(e){return e.enabled=!1,e.choices&&e.choices.forEach(this.disable.bind(this)),e}number(e){this.num+=e;let r=i=>{let n=Number(i);if(n>this.choices.length-1)return this.alert();let s=this.focused,o=this.choices.find(a=>n===a.index);if(!o.enabled&&this.selected.length>=this.maxSelected)return this.alert();if(this.visible.indexOf(o)===-1){let a=QN(this.choices),l=a.indexOf(o);if(s.index>l){let c=a.slice(l,l+this.limit),u=a.filter(g=>!c.includes(g));this.choices=c.concat(u)}else{let c=l-this.limit+1;this.choices=a.slice(c).concat(a.slice(0,c))}}return this.index=this.choices.indexOf(o),this.toggle(this.focused),this.render()};return clearTimeout(this.numberTimeout),new Promise(i=>{let n=this.choices.length,s=this.num,o=(a=!1,l)=>{clearTimeout(this.numberTimeout),a&&(l=r(s)),this.num="",i(l)};if(s==="0"||s.length===1&&Number(s+"0")>n)return o(!0);if(Number(s)>n)return o(!1,this.alert());this.numberTimeout=setTimeout(()=>o(!0),this.delay)})}home(){return this.choices=QN(this.choices),this.index=0,this.render()}end(){let e=this.choices.length-this.limit,r=QN(this.choices);return this.choices=r.slice(e).concat(r.slice(0,e)),this.index=this.limit-1,this.render()}first(){return this.index=0,this.render()}last(){return this.index=this.visible.length-1,this.render()}prev(){return this.visible.length<=1?this.alert():this.up()}next(){return this.visible.length<=1?this.alert():this.down()}right(){return this.cursor>=this.input.length?this.alert():(this.cursor++,this.render())}left(){return this.cursor<=0?this.alert():(this.cursor--,this.render())}up(){let e=this.choices.length,r=this.visible.length,i=this.index;return this.options.scroll===!1&&i===0?this.alert():e>r&&i===0?this.scrollUp():(this.index=(i-1%e+e)%e,this.isDisabled()?this.up():this.render())}down(){let e=this.choices.length,r=this.visible.length,i=this.index;return this.options.scroll===!1&&i===r-1?this.alert():e>r&&i===r-1?this.scrollDown():(this.index=(i+1)%e,this.isDisabled()?this.down():this.render())}scrollUp(e=0){return this.choices=WJe(this.choices),this.index=e,this.isDisabled()?this.up():this.render()}scrollDown(e=this.visible.length-1){return this.choices=zJe(this.choices),this.index=e,this.isDisabled()?this.down():this.render()}async shiftUp(){if(this.options.sort===!0){this.sorting=!0,this.swap(this.index-1),await this.up(),this.sorting=!1;return}return this.scrollUp(this.index)}async shiftDown(){if(this.options.sort===!0){this.sorting=!0,this.swap(this.index+1),await this.down(),this.sorting=!1;return}return this.scrollDown(this.index)}pageUp(){return this.visible.length<=1?this.alert():(this.limit=Math.max(this.limit-1,0),this.index=Math.min(this.limit-1,this.index),this._limit=this.limit,this.isDisabled()?this.up():this.render())}pageDown(){return this.visible.length>=this.choices.length?this.alert():(this.index=Math.max(0,this.index),this.limit=Math.min(this.limit+1,this.choices.length),this._limit=this.limit,this.isDisabled()?this.down():this.render())}swap(e){VJe(this.choices,this.index,e)}isDisabled(e=this.focused){return e&&["disabled","collapsed","hidden","completing","readonly"].some(i=>e[i]===!0)?!0:e&&e.role==="heading"}isEnabled(e=this.focused){if(Array.isArray(e))return e.every(r=>this.isEnabled(r));if(e.choices){let r=e.choices.filter(i=>!this.isDisabled(i));return e.enabled&&r.every(i=>this.isEnabled(i))}return e.enabled&&!this.isDisabled(e)}isChoice(e,r){return e.name===r||e.index===Number(r)}isSelected(e){return Array.isArray(this.initial)?this.initial.some(r=>this.isChoice(e,r)):this.isChoice(e,this.initial)}map(e=[],r="value"){return[].concat(e||[]).reduce((i,n)=>(i[n]=this.find(n,r),i),{})}filter(e,r){let i=(a,l)=>[a.name,l].includes(e),n=typeof e=="function"?e:i,o=(this.options.multiple?this.state._choices:this.choices).filter(n);return r?o.map(a=>a[r]):o}find(e,r){if(Sne(e))return r?e[r]:e;let i=(o,a)=>[o.name,a].includes(e),n=typeof e=="function"?e:i,s=this.choices.find(n);if(s)return r?s[r]:s}findIndex(e){return this.choices.indexOf(this.find(e))}async submit(){let e=this.focused;if(!e)return this.alert();if(e.newChoice)return e.input?(e.updateChoice(),this.render()):this.alert();if(this.choices.some(o=>o.newChoice))return this.alert();let{reorder:r,sort:i}=this.options,n=this.multiple===!0,s=this.selected;return s===void 0?this.alert():(Array.isArray(s)&&r!==!1&&i!==!0&&(s=M0.reorder(s)),this.value=n?s.map(o=>o.name):s.name,super.submit())}set choices(e=[]){this.state._choices=this.state._choices||[],this.state.choices=e;for(let r of e)this.state._choices.some(i=>i.name===r.name)||this.state._choices.push(r);if(!this._initial&&this.options.initial){this._initial=!0;let r=this.initial;if(typeof r=="string"||typeof r=="number"){let i=this.find(r);i&&(this.initial=i.index,this.focus(i,!0))}}}get choices(){return kne(this,this.state.choices||[])}set visible(e){this.state.visible=e}get visible(){return(this.state.visible||this.choices).slice(0,this.limit)}set limit(e){this.state.limit=e}get limit(){let{state:e,options:r,choices:i}=this,n=e.limit||this._limit||r.limit||i.length;return Math.min(n,this.height)}set value(e){super.value=e}get value(){return typeof super.value!="string"&&super.value===this.initial?this.input:super.value}set index(e){this.state.index=e}get index(){return Math.max(0,this.state?this.state.index:0)}get enabled(){return this.filter(this.isEnabled.bind(this))}get focused(){let e=this.choices[this.index];return e&&this.state.submitted&&this.multiple!==!0&&(e.enabled=!0),e}get selectable(){return this.choices.filter(e=>!this.isDisabled(e))}get selected(){return this.multiple?this.enabled:this.focused}};function kne(t,e){if(e instanceof Promise)return e;if(typeof e=="function"){if(M0.isAsyncFn(e))return e;e=e.call(t,t)}for(let r of e){if(Array.isArray(r.choices)){let i=r.choices.filter(n=>!t.isDisabled(n));r.enabled=i.every(n=>n.enabled===!0)}t.isDisabled(r)===!0&&delete r.enabled}return e}vne.exports=xne});var GA=E((bCt,Pne)=>{"use strict";var _Je=sC(),bN=Mi(),Dne=class extends _Je{constructor(e){super(e);this.emptyError=this.options.emptyError||"No items were selected"}async dispatch(e,r){if(this.multiple)return this[r.name]?await this[r.name](e,r):await super.dispatch(e,r);this.alert()}separator(){if(this.options.separator)return super.separator();let e=this.styles.muted(this.symbols.ellipsis);return this.state.submitted?super.separator():e}pointer(e,r){return!this.multiple||this.options.pointer?super.pointer(e,r):""}indicator(e,r){return this.multiple?super.indicator(e,r):""}choiceMessage(e,r){let i=this.resolve(e.message,this.state,e,r);return e.role==="heading"&&!bN.hasColor(i)&&(i=this.styles.strong(i)),this.resolve(i,this.state,e,r)}choiceSeparator(){return":"}async renderChoice(e,r){await this.onChoice(e,r);let i=this.index===r,n=await this.pointer(e,r),s=await this.indicator(e,r)+(e.pad||""),o=await this.resolve(e.hint,this.state,e,r);o&&!bN.hasColor(o)&&(o=this.styles.muted(o));let a=this.indent(e),l=await this.choiceMessage(e,r),c=()=>[this.margin[3],a+n+s,l,this.margin[1],o].filter(Boolean).join(" ");return e.role==="heading"?c():e.disabled?(bN.hasColor(l)||(l=this.styles.disabled(l)),c()):(i&&(l=this.styles.em(l)),c())}async renderChoices(){if(this.state.loading==="choices")return this.styles.warning("Loading choices");if(this.state.submitted)return"";let e=this.visible.map(async(s,o)=>await this.renderChoice(s,o)),r=await Promise.all(e);r.length||r.push(this.styles.danger("No matching choices"));let i=this.margin[0]+r.join(` -`),n;return this.options.choicesHeader&&(n=await this.resolve(this.options.choicesHeader,this.state)),[n,i].filter(Boolean).join(` -`)}format(){return!this.state.submitted||this.state.cancelled?"":Array.isArray(this.selected)?this.selected.map(e=>this.styles.primary(e.name)).join(", "):this.styles.primary(this.selected.name)}async render(){let{submitted:e,size:r}=this.state,i="",n=await this.header(),s=await this.prefix(),o=await this.separator(),a=await this.message();this.options.promptLine!==!1&&(i=[s,a,o,""].join(" "),this.state.prompt=i);let l=await this.format(),c=await this.error()||await this.hint(),u=await this.renderChoices(),g=await this.footer();l&&(i+=l),c&&!i.includes(c)&&(i+=" "+c),e&&!l&&!u.trim()&&this.multiple&&this.emptyError!=null&&(i+=this.styles.danger(this.emptyError)),this.clear(r),this.write([n,i,u,g].filter(Boolean).join(` -`)),this.write(this.margin[2]),this.restore()}};Pne.exports=Dne});var Nne=E((vCt,Rne)=>{"use strict";var XJe=GA(),ZJe=(t,e)=>{let r=t.toLowerCase();return i=>{let s=i.toLowerCase().indexOf(r),o=e(i.slice(s,s+r.length));return s>=0?i.slice(0,s)+o+i.slice(s+r.length):i}},Fne=class extends XJe{constructor(e){super(e);this.cursorShow()}moveCursor(e){this.state.cursor+=e}dispatch(e){return this.append(e)}space(e){return this.options.multiple?super.space(e):this.append(e)}append(e){let{cursor:r,input:i}=this.state;return this.input=i.slice(0,r)+e+i.slice(r),this.moveCursor(1),this.complete()}delete(){let{cursor:e,input:r}=this.state;return r?(this.input=r.slice(0,e-1)+r.slice(e),this.moveCursor(-1),this.complete()):this.alert()}deleteForward(){let{cursor:e,input:r}=this.state;return r[e]===void 0?this.alert():(this.input=`${r}`.slice(0,e)+`${r}`.slice(e+1),this.complete())}number(e){return this.append(e)}async complete(){this.completing=!0,this.choices=await this.suggest(this.input,this.state._choices),this.state.limit=void 0,this.index=Math.min(Math.max(this.visible.length-1,0),this.index),await this.render(),this.completing=!1}suggest(e=this.input,r=this.state._choices){if(typeof this.options.suggest=="function")return this.options.suggest.call(this,e,r);let i=e.toLowerCase();return r.filter(n=>n.message.toLowerCase().includes(i))}pointer(){return""}format(){if(!this.focused)return this.input;if(this.options.multiple&&this.state.submitted)return this.selected.map(e=>this.styles.primary(e.message)).join(", ");if(this.state.submitted){let e=this.value=this.input=this.focused.value;return this.styles.primary(e)}return this.input}async render(){if(this.state.status!=="pending")return super.render();let e=this.options.highlight?this.options.highlight.bind(this):this.styles.placeholder,r=ZJe(this.input,e),i=this.choices;this.choices=i.map(n=>_(P({},n),{message:r(n.message)})),await super.render(),this.choices=i}submit(){return this.options.multiple&&(this.value=this.selected.map(e=>e.name)),super.submit()}};Rne.exports=Fne});var SN=E((SCt,Lne)=>{"use strict";var vN=Mi();Lne.exports=(t,e={})=>{t.cursorHide();let{input:r="",initial:i="",pos:n,showCursor:s=!0,color:o}=e,a=o||t.styles.placeholder,l=vN.inverse(t.styles.primary),c=d=>l(t.styles.black(d)),u=r,g=" ",f=c(g);if(t.blink&&t.blink.off===!0&&(c=d=>d,f=""),s&&n===0&&i===""&&r==="")return c(g);if(s&&n===0&&(r===i||r===""))return c(i[0])+a(i.slice(1));i=vN.isPrimitive(i)?`${i}`:"",r=vN.isPrimitive(r)?`${r}`:"";let h=i&&i.startsWith(r)&&i!==r,p=h?c(i[r.length]):f;if(n!==r.length&&s===!0&&(u=r.slice(0,n)+c(r[n])+r.slice(n+1),p=""),s===!1&&(p=""),h){let d=t.styles.unstyle(u+p);return u+p+a(i.slice(d.length))}return u+p}});var O0=E((xCt,Tne)=>{"use strict";var $Je=js(),e3e=GA(),t3e=SN(),Mne=class extends e3e{constructor(e){super(_(P({},e),{multiple:!0}));this.type="form",this.initial=this.options.initial,this.align=[this.options.align,"right"].find(r=>r!=null),this.emptyError="",this.values={}}async reset(e){return await super.reset(),e===!0&&(this._index=this.index),this.index=this._index,this.values={},this.choices.forEach(r=>r.reset&&r.reset()),this.render()}dispatch(e){return!!e&&this.append(e)}append(e){let r=this.focused;if(!r)return this.alert();let{cursor:i,input:n}=r;return r.value=r.input=n.slice(0,i)+e+n.slice(i),r.cursor++,this.render()}delete(){let e=this.focused;if(!e||e.cursor<=0)return this.alert();let{cursor:r,input:i}=e;return e.value=e.input=i.slice(0,r-1)+i.slice(r),e.cursor--,this.render()}deleteForward(){let e=this.focused;if(!e)return this.alert();let{cursor:r,input:i}=e;if(i[r]===void 0)return this.alert();let n=`${i}`.slice(0,r)+`${i}`.slice(r+1);return e.value=e.input=n,this.render()}right(){let e=this.focused;return e?e.cursor>=e.input.length?this.alert():(e.cursor++,this.render()):this.alert()}left(){let e=this.focused;return e?e.cursor<=0?this.alert():(e.cursor--,this.render()):this.alert()}space(e,r){return this.dispatch(e,r)}number(e,r){return this.dispatch(e,r)}next(){let e=this.focused;if(!e)return this.alert();let{initial:r,input:i}=e;return r&&r.startsWith(i)&&i!==r?(e.value=e.input=r,e.cursor=e.value.length,this.render()):super.next()}prev(){let e=this.focused;return e?e.cursor===0?super.prev():(e.value=e.input="",e.cursor=0,this.render()):this.alert()}separator(){return""}format(e){return this.state.submitted?"":super.format(e)}pointer(){return""}indicator(e){return e.input?"\u29BF":"\u2299"}async choiceSeparator(e,r){let i=await this.resolve(e.separator,this.state,e,r)||":";return i?" "+this.styles.disabled(i):""}async renderChoice(e,r){await this.onChoice(e,r);let{state:i,styles:n}=this,{cursor:s,initial:o="",name:a,hint:l,input:c=""}=e,{muted:u,submitted:g,primary:f,danger:h}=n,p=l,d=this.index===r,m=e.validate||(()=>!0),I=await this.choiceSeparator(e,r),B=e.message;this.align==="right"&&(B=B.padStart(this.longest+1," ")),this.align==="left"&&(B=B.padEnd(this.longest+1," "));let b=this.values[a]=c||o,R=c?"success":"dark";await m.call(e,b,this.state)!==!0&&(R="danger");let L=n[R](await this.indicator(e,r))+(e.pad||""),K=this.indent(e),J=()=>[K,L,B+I,c,p].filter(Boolean).join(" ");if(i.submitted)return B=$Je.unstyle(B),c=g(c),p="",J();if(e.format)c=await e.format.call(this,c,e,r);else{let ne=this.styles.muted;c=t3e(this,{input:c,initial:o,pos:s,showCursor:d,color:ne})}return this.isValue(c)||(c=this.styles.muted(this.symbols.ellipsis)),e.result&&(this.values[a]=await e.result.call(this,b,e,r)),d&&(B=f(B)),e.error?c+=(c?" ":"")+h(e.error.trim()):e.hint&&(c+=(c?" ":"")+u(e.hint.trim())),J()}async submit(){return this.value=this.values,super.base.submit.call(this)}};Tne.exports=Mne});var xN=E((kCt,One)=>{"use strict";var r3e=O0(),i3e=()=>{throw new Error("expected prompt to have a custom authenticate method")},Kne=(t=i3e)=>{class e extends r3e{constructor(i){super(i)}async submit(){this.value=await t.call(this,this.values,this.state),super.base.submit.call(this)}static create(i){return Kne(i)}}return e};One.exports=Kne()});var Gne=E((PCt,Une)=>{"use strict";var n3e=xN();function s3e(t,e){return t.username===this.options.username&&t.password===this.options.password}var Hne=(t=s3e)=>{let e=[{name:"username",message:"username"},{name:"password",message:"password",format(i){return this.options.showPassword?i:(this.state.submitted?this.styles.primary:this.styles.muted)(this.symbols.asterisk.repeat(i.length))}}];class r extends n3e.create(t){constructor(n){super(_(P({},n),{choices:e}))}static create(n){return Hne(n)}}return r};Une.exports=Hne()});var K0=E((DCt,jne)=>{"use strict";var o3e=sf(),{isPrimitive:a3e,hasColor:A3e}=Mi(),Yne=class extends o3e{constructor(e){super(e);this.cursorHide()}async initialize(){let e=await this.resolve(this.initial,this.state);this.input=await this.cast(e),await super.initialize()}dispatch(e){return this.isValue(e)?(this.input=e,this.submit()):this.alert()}format(e){let{styles:r,state:i}=this;return i.submitted?r.success(e):r.primary(e)}cast(e){return this.isTrue(e)}isTrue(e){return/^[ty1]/i.test(e)}isFalse(e){return/^[fn0]/i.test(e)}isValue(e){return a3e(e)&&(this.isTrue(e)||this.isFalse(e))}async hint(){if(this.state.status==="pending"){let e=await this.element("hint");return A3e(e)?e:this.styles.muted(e)}}async render(){let{input:e,size:r}=this.state,i=await this.prefix(),n=await this.separator(),s=await this.message(),o=this.styles.muted(this.default),a=[i,s,o,n].filter(Boolean).join(" ");this.state.prompt=a;let l=await this.header(),c=this.value=this.cast(e),u=await this.format(c),g=await this.error()||await this.hint(),f=await this.footer();g&&!a.includes(g)&&(u+=" "+g),a+=" "+u,this.clear(r),this.write([l,a,f].filter(Boolean).join(` -`)),this.restore()}set value(e){super.value=e}get value(){return this.cast(super.value)}};jne.exports=Yne});var Wne=E((RCt,qne)=>{"use strict";var l3e=K0(),Jne=class extends l3e{constructor(e){super(e);this.default=this.options.default||(this.initial?"(Y/n)":"(y/N)")}};qne.exports=Jne});var _ne=E((FCt,zne)=>{"use strict";var c3e=GA(),u3e=O0(),of=u3e.prototype,Vne=class extends c3e{constructor(e){super(_(P({},e),{multiple:!0}));this.align=[this.options.align,"left"].find(r=>r!=null),this.emptyError="",this.values={}}dispatch(e,r){let i=this.focused,n=i.parent||{};return!i.editable&&!n.editable&&(e==="a"||e==="i")?super[e]():of.dispatch.call(this,e,r)}append(e,r){return of.append.call(this,e,r)}delete(e,r){return of.delete.call(this,e,r)}space(e){return this.focused.editable?this.append(e):super.space()}number(e){return this.focused.editable?this.append(e):super.number(e)}next(){return this.focused.editable?of.next.call(this):super.next()}prev(){return this.focused.editable?of.prev.call(this):super.prev()}async indicator(e,r){let i=e.indicator||"",n=e.editable?i:super.indicator(e,r);return await this.resolve(n,this.state,e,r)||""}indent(e){return e.role==="heading"?"":e.editable?" ":" "}async renderChoice(e,r){return e.indent="",e.editable?of.renderChoice.call(this,e,r):super.renderChoice(e,r)}error(){return""}footer(){return this.state.error}async validate(){let e=!0;for(let r of this.choices){if(typeof r.validate!="function"||r.role==="heading")continue;let i=r.parent?this.value[r.parent.name]:this.value;if(r.editable?i=r.value===r.name?r.initial||"":r.value:this.isDisabled(r)||(i=r.enabled===!0),e=await r.validate(i,this.state),e!==!0)break}return e!==!0&&(this.state.error=typeof e=="string"?e:"Invalid Input"),e}submit(){if(this.focused.newChoice===!0)return super.submit();if(this.choices.some(e=>e.newChoice))return this.alert();this.value={};for(let e of this.choices){let r=e.parent?this.value[e.parent.name]:this.value;if(e.role==="heading"){this.value[e.name]={};continue}e.editable?r[e.name]=e.value===e.name?e.initial||"":e.value:this.isDisabled(e)||(r[e.name]=e.enabled===!0)}return this.base.submit.call(this)}};zne.exports=Vne});var Mc=E((NCt,Xne)=>{"use strict";var g3e=sf(),f3e=SN(),{isPrimitive:h3e}=Mi(),Zne=class extends g3e{constructor(e){super(e);this.initial=h3e(this.initial)?String(this.initial):"",this.initial&&this.cursorHide(),this.state.prevCursor=0,this.state.clipboard=[]}async keypress(e,r={}){let i=this.state.prevKeypress;return this.state.prevKeypress=r,this.options.multiline===!0&&r.name==="return"&&(!i||i.name!=="return")?this.append(` -`,r):super.keypress(e,r)}moveCursor(e){this.cursor+=e}reset(){return this.input=this.value="",this.cursor=0,this.render()}dispatch(e,r){if(!e||r.ctrl||r.code)return this.alert();this.append(e)}append(e){let{cursor:r,input:i}=this.state;this.input=`${i}`.slice(0,r)+e+`${i}`.slice(r),this.moveCursor(String(e).length),this.render()}insert(e){this.append(e)}delete(){let{cursor:e,input:r}=this.state;if(e<=0)return this.alert();this.input=`${r}`.slice(0,e-1)+`${r}`.slice(e),this.moveCursor(-1),this.render()}deleteForward(){let{cursor:e,input:r}=this.state;if(r[e]===void 0)return this.alert();this.input=`${r}`.slice(0,e)+`${r}`.slice(e+1),this.render()}cutForward(){let e=this.cursor;if(this.input.length<=e)return this.alert();this.state.clipboard.push(this.input.slice(e)),this.input=this.input.slice(0,e),this.render()}cutLeft(){let e=this.cursor;if(e===0)return this.alert();let r=this.input.slice(0,e),i=this.input.slice(e),n=r.split(" ");this.state.clipboard.push(n.pop()),this.input=n.join(" "),this.cursor=this.input.length,this.input+=i,this.render()}paste(){if(!this.state.clipboard.length)return this.alert();this.insert(this.state.clipboard.pop()),this.render()}toggleCursor(){this.state.prevCursor?(this.cursor=this.state.prevCursor,this.state.prevCursor=0):(this.state.prevCursor=this.cursor,this.cursor=0),this.render()}first(){this.cursor=0,this.render()}last(){this.cursor=this.input.length-1,this.render()}next(){let e=this.initial!=null?String(this.initial):"";if(!e||!e.startsWith(this.input))return this.alert();this.input=this.initial,this.cursor=this.initial.length,this.render()}prev(){if(!this.input)return this.alert();this.reset()}backward(){return this.left()}forward(){return this.right()}right(){return this.cursor>=this.input.length?this.alert():(this.moveCursor(1),this.render())}left(){return this.cursor<=0?this.alert():(this.moveCursor(-1),this.render())}isValue(e){return!!e}async format(e=this.value){let r=await this.resolve(this.initial,this.state);return this.state.submitted?this.styles.submitted(e||r):f3e(this,{input:e,initial:r,pos:this.cursor})}async render(){let e=this.state.size,r=await this.prefix(),i=await this.separator(),n=await this.message(),s=[r,n,i].filter(Boolean).join(" ");this.state.prompt=s;let o=await this.header(),a=await this.format(),l=await this.error()||await this.hint(),c=await this.footer();l&&!a.includes(l)&&(a+=" "+l),s+=" "+a,this.clear(e),this.write([o,s,c].filter(Boolean).join(` -`)),this.restore()}};Xne.exports=Zne});var ese=E((LCt,$ne)=>{"use strict";var p3e=t=>t.filter((e,r)=>t.lastIndexOf(e)===r),U0=t=>p3e(t).filter(Boolean);$ne.exports=(t,e={},r="")=>{let{past:i=[],present:n=""}=e,s,o;switch(t){case"prev":case"undo":return s=i.slice(0,i.length-1),o=i[i.length-1]||"",{past:U0([r,...s]),present:o};case"next":case"redo":return s=i.slice(1),o=i[0]||"",{past:U0([...s,r]),present:o};case"save":return{past:U0([...i,r]),present:""};case"remove":return o=U0(i.filter(a=>a!==r)),n="",o.length&&(n=o.pop()),{past:o,present:n};default:throw new Error(`Invalid action: "${t}"`)}}});var kN=E((TCt,tse)=>{"use strict";var d3e=Mc(),rse=ese(),ise=class extends d3e{constructor(e){super(e);let r=this.options.history;if(r&&r.store){let i=r.values||this.initial;this.autosave=!!r.autosave,this.store=r.store,this.data=this.store.get("values")||{past:[],present:i},this.initial=this.data.present||this.data.past[this.data.past.length-1]}}completion(e){return this.store?(this.data=rse(e,this.data,this.input),this.data.present?(this.input=this.data.present,this.cursor=this.input.length,this.render()):this.alert()):this.alert()}altUp(){return this.completion("prev")}altDown(){return this.completion("next")}prev(){return this.save(),super.prev()}save(){!this.store||(this.data=rse("save",this.data,this.input),this.store.set("values",this.data))}submit(){return this.store&&this.autosave===!0&&this.save(),super.submit()}};tse.exports=ise});var ose=E((MCt,nse)=>{"use strict";var C3e=Mc(),sse=class extends C3e{format(){return""}};nse.exports=sse});var lse=E((OCt,ase)=>{"use strict";var m3e=Mc(),Ase=class extends m3e{constructor(e={}){super(e);this.sep=this.options.separator||/, */,this.initial=e.initial||""}split(e=this.value){return e?String(e).split(this.sep):[]}format(){let e=this.state.submitted?this.styles.primary:r=>r;return this.list.map(e).join(", ")}async submit(e){let r=this.state.error||await this.validate(this.list,this.state);return r!==!0?(this.state.error=r,super.submit()):(this.value=this.list,super.submit())}get list(){return this.split()}};ase.exports=Ase});var gse=E((KCt,cse)=>{"use strict";var E3e=GA(),use=class extends E3e{constructor(e){super(_(P({},e),{multiple:!0}))}};cse.exports=use});var PN=E((UCt,fse)=>{"use strict";var I3e=Mc(),hse=class extends I3e{constructor(e={}){super(P({style:"number"},e));this.min=this.isValue(e.min)?this.toNumber(e.min):-Infinity,this.max=this.isValue(e.max)?this.toNumber(e.max):Infinity,this.delay=e.delay!=null?e.delay:1e3,this.float=e.float!==!1,this.round=e.round===!0||e.float===!1,this.major=e.major||10,this.minor=e.minor||1,this.initial=e.initial!=null?e.initial:"",this.input=String(this.initial),this.cursor=this.input.length,this.cursorShow()}append(e){return!/[-+.]/.test(e)||e==="."&&this.input.includes(".")?this.alert("invalid number"):super.append(e)}number(e){return super.append(e)}next(){return this.input&&this.input!==this.initial?this.alert():this.isValue(this.initial)?(this.input=this.initial,this.cursor=String(this.initial).length,this.render()):this.alert()}up(e){let r=e||this.minor,i=this.toNumber(this.input);return i>this.max+r?this.alert():(this.input=`${i+r}`,this.render())}down(e){let r=e||this.minor,i=this.toNumber(this.input);return ithis.isValue(r));return this.value=this.toNumber(e||0),super.submit()}};fse.exports=hse});var dse=E((HCt,pse)=>{pse.exports=PN()});var Ese=E((GCt,Cse)=>{"use strict";var y3e=Mc(),mse=class extends y3e{constructor(e){super(e);this.cursorShow()}format(e=this.input){return this.keypressed?(this.state.submitted?this.styles.primary:this.styles.muted)(this.symbols.asterisk.repeat(e.length)):""}};Cse.exports=mse});var Bse=E((jCt,Ise)=>{"use strict";var w3e=js(),B3e=sC(),yse=Mi(),wse=class extends B3e{constructor(e={}){super(e);this.widths=[].concat(e.messageWidth||50),this.align=[].concat(e.align||"left"),this.linebreak=e.linebreak||!1,this.edgeLength=e.edgeLength||3,this.newline=e.newline||` - `;let r=e.startNumber||1;typeof this.scale=="number"&&(this.scaleKey=!1,this.scale=Array(this.scale).fill(0).map((i,n)=>({name:n+r})))}async reset(){return this.tableized=!1,await super.reset(),this.render()}tableize(){if(this.tableized===!0)return;this.tableized=!0;let e=0;for(let r of this.choices){e=Math.max(e,r.message.length),r.scaleIndex=r.initial||2,r.scale=[];for(let i=0;i=this.scale.length-1?this.alert():(e.scaleIndex++,this.render())}left(){let e=this.focused;return e.scaleIndex<=0?this.alert():(e.scaleIndex--,this.render())}indent(){return""}format(){return this.state.submitted?this.choices.map(r=>this.styles.info(r.index)).join(", "):""}pointer(){return""}renderScaleKey(){if(this.scaleKey===!1||this.state.submitted)return"";let e=this.scale.map(i=>` ${i.name} - ${i.message}`);return["",...e].map(i=>this.styles.muted(i)).join(` -`)}renderScaleHeading(e){let r=this.scale.map(l=>l.name);typeof this.options.renderScaleHeading=="function"&&(r=this.options.renderScaleHeading.call(this,e));let i=this.scaleLength-r.join("").length,n=Math.round(i/(r.length-1)),o=r.map(l=>this.styles.strong(l)).join(" ".repeat(n)),a=" ".repeat(this.widths[0]);return this.margin[3]+a+this.margin[1]+o}scaleIndicator(e,r,i){if(typeof this.options.scaleIndicator=="function")return this.options.scaleIndicator.call(this,e,r,i);let n=e.scaleIndex===r.index;return r.disabled?this.styles.hint(this.symbols.radio.disabled):n?this.styles.success(this.symbols.radio.on):this.symbols.radio.off}renderScale(e,r){let i=e.scale.map(s=>this.scaleIndicator(e,s,r)),n=this.term==="Hyper"?"":" ";return i.join(n+this.symbols.line.repeat(this.edgeLength))}async renderChoice(e,r){await this.onChoice(e,r);let i=this.index===r,n=await this.pointer(e,r),s=await e.hint;s&&!yse.hasColor(s)&&(s=this.styles.muted(s));let o=p=>this.margin[3]+p.replace(/\s+$/,"").padEnd(this.widths[0]," "),a=this.newline,l=this.indent(e),c=await this.resolve(e.message,this.state,e,r),u=await this.renderScale(e,r),g=this.margin[1]+this.margin[3];this.scaleLength=w3e.unstyle(u).length,this.widths[0]=Math.min(this.widths[0],this.width-this.scaleLength-g.length);let h=yse.wordWrap(c,{width:this.widths[0],newline:a}).split(` -`).map(p=>o(p)+this.margin[1]);return i&&(u=this.styles.info(u),h=h.map(p=>this.styles.info(p))),h[0]+=u,this.linebreak&&h.push(""),[l+n,h.join(` -`)].filter(Boolean)}async renderChoices(){if(this.state.submitted)return"";this.tableize();let e=this.visible.map(async(n,s)=>await this.renderChoice(n,s)),r=await Promise.all(e),i=await this.renderScaleHeading();return this.margin[0]+[i,...r.map(n=>n.join(" "))].join(` -`)}async render(){let{submitted:e,size:r}=this.state,i=await this.prefix(),n=await this.separator(),s=await this.message(),o="";this.options.promptLine!==!1&&(o=[i,s,n,""].join(" "),this.state.prompt=o);let a=await this.header(),l=await this.format(),c=await this.renderScaleKey(),u=await this.error()||await this.hint(),g=await this.renderChoices(),f=await this.footer(),h=this.emptyError;l&&(o+=l),u&&!o.includes(u)&&(o+=" "+u),e&&!l&&!g.trim()&&this.multiple&&h!=null&&(o+=this.styles.danger(h)),this.clear(r),this.write([a,o,c,g,f].filter(Boolean).join(` -`)),this.state.submitted||this.write(this.margin[2]),this.restore()}submit(){this.value={};for(let e of this.choices)this.value[e.name]=e.scaleIndex;return this.base.submit.call(this)}};Ise.exports=wse});var Sse=E((YCt,Qse)=>{"use strict";var bse=js(),Q3e=(t="")=>typeof t=="string"?t.replace(/^['"]|['"]$/g,""):"",vse=class{constructor(e){this.name=e.key,this.field=e.field||{},this.value=Q3e(e.initial||this.field.initial||""),this.message=e.message||this.name,this.cursor=0,this.input="",this.lines=[]}},b3e=async(t={},e={},r=i=>i)=>{let i=new Set,n=t.fields||[],s=t.template,o=[],a=[],l=[],c=1;typeof s=="function"&&(s=await s());let u=-1,g=()=>s[++u],f=()=>s[u+1],h=p=>{p.line=c,o.push(p)};for(h({type:"bos",value:""});uR.name===I.key);I.field=n.find(R=>R.name===I.key),b||(b=new vse(I),a.push(b)),b.lines.push(I.line-1);continue}let d=o[o.length-1];d.type==="text"&&d.line===c?d.value+=p:h({type:"text",value:p})}return h({type:"eos",value:""}),{input:s,tabstops:o,unique:i,keys:l,items:a}};Qse.exports=async t=>{let e=t.options,r=new Set(e.required===!0?[]:e.required||[]),i=P(P({},e.values),e.initial),{tabstops:n,items:s,keys:o}=await b3e(e,i),a=DN("result",t,e),l=DN("format",t,e),c=DN("validate",t,e,!0),u=t.isValue.bind(t);return async(g={},f=!1)=>{let h=0;g.required=r,g.items=s,g.keys=o,g.output="";let p=async(B,b,R,H)=>{let L=await c(B,b,R,H);return L===!1?"Invalid field "+R.name:L};for(let B of n){let b=B.value,R=B.key;if(B.type!=="template"){b&&(g.output+=b);continue}if(B.type==="template"){let H=s.find(q=>q.name===R);e.required===!0&&g.required.add(H.name);let L=[H.input,g.values[H.value],H.value,b].find(u),J=(H.field||{}).message||B.inner;if(f){let q=await p(g.values[R],g,H,h);if(q&&typeof q=="string"||q===!1){g.invalid.set(R,q);continue}g.invalid.delete(R);let A=await a(g.values[R],g,H,h);g.output+=bse.unstyle(A);continue}H.placeholder=!1;let ne=b;b=await l(b,g,H,h),L!==b?(g.values[R]=L,b=t.styles.typing(L),g.missing.delete(J)):(g.values[R]=void 0,L=`<${J}>`,b=t.styles.primary(L),H.placeholder=!0,g.required.has(R)&&g.missing.add(J)),g.missing.has(J)&&g.validating&&(b=t.styles.warning(L)),g.invalid.has(R)&&g.validating&&(b=t.styles.danger(L)),h===g.index&&(ne!==b?b=t.styles.underline(b):b=t.styles.heading(bse.unstyle(b))),h++}b&&(g.output+=b)}let d=g.output.split(` -`).map(B=>" "+B),m=s.length,I=0;for(let B of s)g.invalid.has(B.name)&&B.lines.forEach(b=>{d[b][0]===" "&&(d[b]=g.styles.danger(g.symbols.bullet)+d[b].slice(1))}),t.isValue(g.values[B.name])&&I++;return g.completed=(I/m*100).toFixed(0),g.output=d.join(` -`),g.output}};function DN(t,e,r,i){return(n,s,o,a)=>typeof o.field[t]=="function"?o.field[t].call(e,n,s,o,a):[i,n].find(l=>e.isValue(l))}});var Pse=E((qCt,xse)=>{"use strict";var v3e=js(),S3e=Sse(),x3e=sf(),kse=class extends x3e{constructor(e){super(e);this.cursorHide(),this.reset(!0)}async initialize(){this.interpolate=await S3e(this),await super.initialize()}async reset(e){this.state.keys=[],this.state.invalid=new Map,this.state.missing=new Set,this.state.completed=0,this.state.values={},e!==!0&&(await this.initialize(),await this.render())}moveCursor(e){let r=this.getItem();this.cursor+=e,r.cursor+=e}dispatch(e,r){if(!r.code&&!r.ctrl&&e!=null&&this.getItem()){this.append(e,r);return}this.alert()}append(e,r){let i=this.getItem(),n=i.input.slice(0,this.cursor),s=i.input.slice(this.cursor);this.input=i.input=`${n}${e}${s}`,this.moveCursor(1),this.render()}delete(){let e=this.getItem();if(this.cursor<=0||!e.input)return this.alert();let r=e.input.slice(this.cursor),i=e.input.slice(0,this.cursor-1);this.input=e.input=`${i}${r}`,this.moveCursor(-1),this.render()}increment(e){return e>=this.state.keys.length-1?0:e+1}decrement(e){return e<=0?this.state.keys.length-1:e-1}first(){this.state.index=0,this.render()}last(){this.state.index=this.state.keys.length-1,this.render()}right(){if(this.cursor>=this.input.length)return this.alert();this.moveCursor(1),this.render()}left(){if(this.cursor<=0)return this.alert();this.moveCursor(-1),this.render()}prev(){this.state.index=this.decrement(this.state.index),this.getItem(),this.render()}next(){this.state.index=this.increment(this.state.index),this.getItem(),this.render()}up(){this.prev()}down(){this.next()}format(e){let r=this.state.completed<100?this.styles.warning:this.styles.success;return this.state.submitted===!0&&this.state.completed!==100&&(r=this.styles.danger),r(`${this.state.completed}% completed`)}async render(){let{index:e,keys:r=[],submitted:i,size:n}=this.state,s=[this.options.newline,` -`].find(B=>B!=null),o=await this.prefix(),a=await this.separator(),l=await this.message(),c=[o,l,a].filter(Boolean).join(" ");this.state.prompt=c;let u=await this.header(),g=await this.error()||"",f=await this.hint()||"",h=i?"":await this.interpolate(this.state),p=this.state.key=r[e]||"",d=await this.format(p),m=await this.footer();d&&(c+=" "+d),f&&!d&&this.state.completed===0&&(c+=" "+f),this.clear(n);let I=[u,c,h,m,g.trim()];this.write(I.filter(Boolean).join(s)),this.restore()}getItem(e){let{items:r,keys:i,index:n}=this.state,s=r.find(o=>o.name===i[n]);return s&&s.input!=null&&(this.input=s.input,this.cursor=s.cursor),s}async submit(){typeof this.interpolate!="function"&&await this.initialize(),await this.interpolate(this.state,!0);let{invalid:e,missing:r,output:i,values:n}=this.state;if(e.size){let a="";for(let[l,c]of e)a+=`Invalid ${l}: ${c} -`;return this.state.error=a,super.submit()}if(r.size)return this.state.error="Required: "+[...r.keys()].join(", "),super.submit();let o=v3e.unstyle(i).split(` -`).map(a=>a.slice(1)).join(` -`);return this.value={values:n,result:o},super.submit()}};xse.exports=kse});var Fse=E((JCt,Dse)=>{"use strict";var k3e="(Use + to sort)",P3e=GA(),Rse=class extends P3e{constructor(e){super(_(P({},e),{reorder:!1,sort:!0,multiple:!0}));this.state.hint=[this.options.hint,k3e].find(this.isValue.bind(this))}indicator(){return""}async renderChoice(e,r){let i=await super.renderChoice(e,r),n=this.symbols.identicalTo+" ",s=this.index===r&&this.sorting?this.styles.muted(n):" ";return this.options.drag===!1&&(s=""),this.options.numbered===!0?s+`${r+1} - `+i:s+i}get selected(){return this.choices}submit(){return this.value=this.choices.map(e=>e.value),super.submit()}};Dse.exports=Rse});var Tse=E((WCt,Nse)=>{"use strict";var D3e=sC(),Lse=class extends D3e{constructor(e={}){super(e);if(this.emptyError=e.emptyError||"No items were selected",this.term=process.env.TERM_PROGRAM,!this.options.header){let r=["","4 - Strongly Agree","3 - Agree","2 - Neutral","1 - Disagree","0 - Strongly Disagree",""];r=r.map(i=>this.styles.muted(i)),this.state.header=r.join(` - `)}}async toChoices(...e){if(this.createdScales)return!1;this.createdScales=!0;let r=await super.toChoices(...e);for(let i of r)i.scale=R3e(5,this.options),i.scaleIdx=2;return r}dispatch(){this.alert()}space(){let e=this.focused,r=e.scale[e.scaleIdx],i=r.selected;return e.scale.forEach(n=>n.selected=!1),r.selected=!i,this.render()}indicator(){return""}pointer(){return""}separator(){return this.styles.muted(this.symbols.ellipsis)}right(){let e=this.focused;return e.scaleIdx>=e.scale.length-1?this.alert():(e.scaleIdx++,this.render())}left(){let e=this.focused;return e.scaleIdx<=0?this.alert():(e.scaleIdx--,this.render())}indent(){return" "}async renderChoice(e,r){await this.onChoice(e,r);let i=this.index===r,n=this.term==="Hyper",s=n?9:8,o=n?"":" ",a=this.symbols.line.repeat(s),l=" ".repeat(s+(n?0:1)),c=b=>(b?this.styles.success("\u25C9"):"\u25EF")+o,u=r+1+".",g=i?this.styles.heading:this.styles.noop,f=await this.resolve(e.message,this.state,e,r),h=this.indent(e),p=h+e.scale.map((b,R)=>c(R===e.scaleIdx)).join(a),d=b=>b===e.scaleIdx?g(b):b,m=h+e.scale.map((b,R)=>d(R)).join(l),I=()=>[u,f].filter(Boolean).join(" "),B=()=>[I(),p,m," "].filter(Boolean).join(` -`);return i&&(p=this.styles.cyan(p),m=this.styles.cyan(m)),B()}async renderChoices(){if(this.state.submitted)return"";let e=this.visible.map(async(i,n)=>await this.renderChoice(i,n)),r=await Promise.all(e);return r.length||r.push(this.styles.danger("No matching choices")),r.join(` -`)}format(){return this.state.submitted?this.choices.map(r=>this.styles.info(r.scaleIdx)).join(", "):""}async render(){let{submitted:e,size:r}=this.state,i=await this.prefix(),n=await this.separator(),s=await this.message(),o=[i,s,n].filter(Boolean).join(" ");this.state.prompt=o;let a=await this.header(),l=await this.format(),c=await this.error()||await this.hint(),u=await this.renderChoices(),g=await this.footer();(l||!c)&&(o+=" "+l),c&&!o.includes(c)&&(o+=" "+c),e&&!l&&!u&&this.multiple&&this.type!=="form"&&(o+=this.styles.danger(this.emptyError)),this.clear(r),this.write([o,a,u,g].filter(Boolean).join(` -`)),this.restore()}submit(){this.value={};for(let e of this.choices)this.value[e.name]=e.scaleIdx;return this.base.submit.call(this)}};function R3e(t,e={}){if(Array.isArray(e.scale))return e.scale.map(i=>P({},i));let r=[];for(let i=1;i{Mse.exports=kN()});var Hse=E((VCt,Kse)=>{"use strict";var F3e=K0(),Use=class extends F3e{async initialize(){await super.initialize(),this.value=this.initial=!!this.options.initial,this.disabled=this.options.disabled||"no",this.enabled=this.options.enabled||"yes",await this.render()}reset(){this.value=this.initial,this.render()}delete(){this.alert()}toggle(){this.value=!this.value,this.render()}enable(){if(this.value===!0)return this.alert();this.value=!0,this.render()}disable(){if(this.value===!1)return this.alert();this.value=!1,this.render()}up(){this.toggle()}down(){this.toggle()}right(){this.toggle()}left(){this.toggle()}next(){this.toggle()}prev(){this.toggle()}dispatch(e="",r){switch(e.toLowerCase()){case" ":return this.toggle();case"1":case"y":case"t":return this.enable();case"0":case"n":case"f":return this.disable();default:return this.alert()}}format(){let e=i=>this.styles.primary.underline(i);return[this.value?this.disabled:e(this.disabled),this.value?e(this.enabled):this.enabled].join(this.styles.muted(" / "))}async render(){let{size:e}=this.state,r=await this.header(),i=await this.prefix(),n=await this.separator(),s=await this.message(),o=await this.format(),a=await this.error()||await this.hint(),l=await this.footer(),c=[i,s,n,o].join(" ");this.state.prompt=c,a&&!c.includes(a)&&(c+=" "+a),this.clear(e),this.write([r,c,l].filter(Boolean).join(` -`)),this.write(this.margin[2]),this.restore()}};Kse.exports=Use});var Yse=E((_Ct,Gse)=>{"use strict";var N3e=GA(),jse=class extends N3e{constructor(e){super(e);if(typeof this.options.correctChoice!="number"||this.options.correctChoice<0)throw new Error("Please specify the index of the correct answer from the list of choices")}async toChoices(e,r){let i=await super.toChoices(e,r);if(i.length<2)throw new Error("Please give at least two choices to the user");if(this.options.correctChoice>i.length)throw new Error("Please specify the index of the correct answer from the list of choices");return i}check(e){return e.index===this.options.correctChoice}async result(e){return{selectedAnswer:e,correctAnswer:this.options.choices[this.options.correctChoice].value,correct:await this.check(this.state)}}};Gse.exports=jse});var Jse=E(RN=>{"use strict";var qse=Mi(),ti=(t,e)=>{qse.defineExport(RN,t,e),qse.defineExport(RN,t.toLowerCase(),e)};ti("AutoComplete",()=>Nne());ti("BasicAuth",()=>Gne());ti("Confirm",()=>Wne());ti("Editable",()=>_ne());ti("Form",()=>O0());ti("Input",()=>kN());ti("Invisible",()=>ose());ti("List",()=>lse());ti("MultiSelect",()=>gse());ti("Numeral",()=>dse());ti("Password",()=>Ese());ti("Scale",()=>Bse());ti("Select",()=>GA());ti("Snippet",()=>Pse());ti("Sort",()=>Fse());ti("Survey",()=>Tse());ti("Text",()=>Ose());ti("Toggle",()=>Hse());ti("Quiz",()=>Yse())});var zse=E((ZCt,Wse)=>{Wse.exports={ArrayPrompt:sC(),AuthPrompt:xN(),BooleanPrompt:K0(),NumberPrompt:PN(),StringPrompt:Mc()}});var aC=E(($Ct,Vse)=>{"use strict";var _se=require("assert"),FN=require("events"),jA=Mi(),No=class extends FN{constructor(e,r){super();this.options=jA.merge({},e),this.answers=P({},r)}register(e,r){if(jA.isObject(e)){for(let n of Object.keys(e))this.register(n,e[n]);return this}_se.equal(typeof r,"function","expected a function");let i=e.toLowerCase();return r.prototype instanceof this.Prompt?this.prompts[i]=r:this.prompts[i]=r(this.Prompt,this),this}async prompt(e=[]){for(let r of[].concat(e))try{typeof r=="function"&&(r=await r.call(this)),await this.ask(jA.merge({},this.options,r))}catch(i){return Promise.reject(i)}return this.answers}async ask(e){typeof e=="function"&&(e=await e.call(this));let r=jA.merge({},this.options,e),{type:i,name:n}=e,{set:s,get:o}=jA;if(typeof i=="function"&&(i=await i.call(this,e,this.answers)),!i)return this.answers[n];_se(this.prompts[i],`Prompt "${i}" is not registered`);let a=new this.prompts[i](r),l=o(this.answers,n);a.state.answers=this.answers,a.enquirer=this,n&&a.on("submit",u=>{this.emit("answer",n,u,a),s(this.answers,n,u)});let c=a.emit.bind(a);return a.emit=(...u)=>(this.emit.call(this,...u),c(...u)),this.emit("prompt",a,this),r.autofill&&l!=null?(a.value=a.input=l,r.autofill==="show"&&await a.submit()):l=a.value=await a.run(),l}use(e){return e.call(this,this),this}set Prompt(e){this._Prompt=e}get Prompt(){return this._Prompt||this.constructor.Prompt}get prompts(){return this.constructor.prompts}static set Prompt(e){this._Prompt=e}static get Prompt(){return this._Prompt||sf()}static get prompts(){return Jse()}static get types(){return zse()}static get prompt(){let e=(r,...i)=>{let n=new this(...i),s=n.emit.bind(n);return n.emit=(...o)=>(e.emit(...o),s(...o)),n.prompt(r)};return jA.mixinEmitter(e,new FN),e}};jA.mixinEmitter(No,new FN);var NN=No.prompts;for(let t of Object.keys(NN)){let e=t.toLowerCase(),r=i=>new NN[t](i).run();No.prompt[e]=r,No[e]=r,No[t]||Reflect.defineProperty(No,t,{get:()=>NN[t]})}var oC=t=>{jA.defineExport(No,t,()=>No.types[t])};oC("ArrayPrompt");oC("AuthPrompt");oC("BooleanPrompt");oC("NumberPrompt");oC("StringPrompt");Vse.exports=No});var loe=E((Gmt,Aoe)=>{function K3e(t,e){for(var r=-1,i=t==null?0:t.length;++r{var U3e=XB(),H3e=jg();function G3e(t,e,r,i){var n=!r;r||(r={});for(var s=-1,o=e.length;++s{var j3e=Af(),Y3e=zg();function q3e(t,e){return t&&j3e(e,Y3e(e),t)}uoe.exports=q3e});var hoe=E((qmt,foe)=>{function J3e(t){var e=[];if(t!=null)for(var r in Object(t))e.push(r);return e}foe.exports=J3e});var doe=E((Jmt,poe)=>{var W3e=Gs(),z3e=u0(),V3e=hoe(),_3e=Object.prototype,X3e=_3e.hasOwnProperty;function Z3e(t){if(!W3e(t))return V3e(t);var e=z3e(t),r=[];for(var i in t)i=="constructor"&&(e||!X3e.call(t,i))||r.push(i);return r}poe.exports=Z3e});var lf=E((Wmt,Coe)=>{var $3e=bF(),eWe=doe(),tWe=Hd();function rWe(t){return tWe(t)?$3e(t,!0):eWe(t)}Coe.exports=rWe});var Eoe=E((zmt,moe)=>{var iWe=Af(),nWe=lf();function sWe(t,e){return t&&iWe(e,nWe(e),t)}moe.exports=sWe});var UN=E((hC,cf)=>{var oWe=Ks(),Ioe=typeof hC=="object"&&hC&&!hC.nodeType&&hC,yoe=Ioe&&typeof cf=="object"&&cf&&!cf.nodeType&&cf,aWe=yoe&&yoe.exports===Ioe,woe=aWe?oWe.Buffer:void 0,Boe=woe?woe.allocUnsafe:void 0;function AWe(t,e){if(e)return t.slice();var r=t.length,i=Boe?Boe(r):new t.constructor(r);return t.copy(i),i}cf.exports=AWe});var HN=E((Vmt,Qoe)=>{function lWe(t,e){var r=-1,i=t.length;for(e||(e=Array(i));++r{var cWe=Af(),uWe=f0();function gWe(t,e){return cWe(t,uWe(t),e)}boe.exports=gWe});var H0=E((Xmt,Soe)=>{var fWe=vF(),hWe=fWe(Object.getPrototypeOf,Object);Soe.exports=hWe});var GN=E((Zmt,xoe)=>{var pWe=$B(),dWe=H0(),CWe=f0(),mWe=RF(),EWe=Object.getOwnPropertySymbols,IWe=EWe?function(t){for(var e=[];t;)pWe(e,CWe(t)),t=dWe(t);return e}:mWe;xoe.exports=IWe});var Poe=E(($mt,koe)=>{var yWe=Af(),wWe=GN();function BWe(t,e){return yWe(t,wWe(t),e)}koe.exports=BWe});var Roe=E((eEt,Doe)=>{var QWe=DF(),bWe=GN(),vWe=lf();function SWe(t){return QWe(t,vWe,bWe)}Doe.exports=SWe});var Noe=E((tEt,Foe)=>{var xWe=Object.prototype,kWe=xWe.hasOwnProperty;function PWe(t){var e=t.length,r=new t.constructor(e);return e&&typeof t[0]=="string"&&kWe.call(t,"index")&&(r.index=t.index,r.input=t.input),r}Foe.exports=PWe});var G0=E((rEt,Loe)=>{var Toe=kF();function DWe(t){var e=new t.constructor(t.byteLength);return new Toe(e).set(new Toe(t)),e}Loe.exports=DWe});var Ooe=E((iEt,Moe)=>{var RWe=G0();function FWe(t,e){var r=e?RWe(t.buffer):t.buffer;return new t.constructor(r,t.byteOffset,t.byteLength)}Moe.exports=FWe});var Uoe=E((nEt,Koe)=>{var NWe=/\w*$/;function LWe(t){var e=new t.constructor(t.source,NWe.exec(t));return e.lastIndex=t.lastIndex,e}Koe.exports=LWe});var qoe=E((sEt,Hoe)=>{var Goe=ac(),joe=Goe?Goe.prototype:void 0,Yoe=joe?joe.valueOf:void 0;function TWe(t){return Yoe?Object(Yoe.call(t)):{}}Hoe.exports=TWe});var jN=E((oEt,Joe)=>{var MWe=G0();function OWe(t,e){var r=e?MWe(t.buffer):t.buffer;return new t.constructor(r,t.byteOffset,t.length)}Joe.exports=OWe});var zoe=E((aEt,Woe)=>{var KWe=G0(),UWe=Ooe(),HWe=Uoe(),GWe=qoe(),jWe=jN(),YWe="[object Boolean]",qWe="[object Date]",JWe="[object Map]",WWe="[object Number]",zWe="[object RegExp]",VWe="[object Set]",_We="[object String]",XWe="[object Symbol]",ZWe="[object ArrayBuffer]",$We="[object DataView]",e8e="[object Float32Array]",t8e="[object Float64Array]",r8e="[object Int8Array]",i8e="[object Int16Array]",n8e="[object Int32Array]",s8e="[object Uint8Array]",o8e="[object Uint8ClampedArray]",a8e="[object Uint16Array]",A8e="[object Uint32Array]";function l8e(t,e,r){var i=t.constructor;switch(e){case ZWe:return KWe(t);case YWe:case qWe:return new i(+t);case $We:return UWe(t,r);case e8e:case t8e:case r8e:case i8e:case n8e:case s8e:case o8e:case a8e:case A8e:return jWe(t,r);case JWe:return new i;case WWe:case _We:return new i(t);case zWe:return HWe(t);case VWe:return new i;case XWe:return GWe(t)}}Woe.exports=l8e});var Xoe=E((AEt,Voe)=>{var c8e=Gs(),_oe=Object.create,u8e=function(){function t(){}return function(e){if(!c8e(e))return{};if(_oe)return _oe(e);t.prototype=e;var r=new t;return t.prototype=void 0,r}}();Voe.exports=u8e});var YN=E((lEt,Zoe)=>{var g8e=Xoe(),f8e=H0(),h8e=u0();function p8e(t){return typeof t.constructor=="function"&&!h8e(t)?g8e(f8e(t)):{}}Zoe.exports=p8e});var eae=E((cEt,$oe)=>{var d8e=jd(),C8e=Qo(),m8e="[object Map]";function E8e(t){return C8e(t)&&d8e(t)==m8e}$oe.exports=E8e});var nae=E((uEt,tae)=>{var I8e=eae(),y8e=A0(),rae=l0(),iae=rae&&rae.isMap,w8e=iae?y8e(iae):I8e;tae.exports=w8e});var oae=E((gEt,sae)=>{var B8e=jd(),Q8e=Qo(),b8e="[object Set]";function v8e(t){return Q8e(t)&&B8e(t)==b8e}sae.exports=v8e});var cae=E((fEt,aae)=>{var S8e=oae(),x8e=A0(),Aae=l0(),lae=Aae&&Aae.isSet,k8e=lae?x8e(lae):S8e;aae.exports=k8e});var pae=E((hEt,uae)=>{var P8e=Gd(),D8e=loe(),R8e=XB(),F8e=goe(),N8e=Eoe(),L8e=UN(),T8e=HN(),M8e=voe(),O8e=Poe(),K8e=FF(),U8e=Roe(),H8e=jd(),G8e=Noe(),j8e=zoe(),Y8e=YN(),q8e=As(),J8e=Od(),W8e=nae(),z8e=Gs(),V8e=cae(),_8e=zg(),X8e=lf(),Z8e=1,$8e=2,e4e=4,gae="[object Arguments]",t4e="[object Array]",r4e="[object Boolean]",i4e="[object Date]",n4e="[object Error]",fae="[object Function]",s4e="[object GeneratorFunction]",o4e="[object Map]",a4e="[object Number]",hae="[object Object]",A4e="[object RegExp]",l4e="[object Set]",c4e="[object String]",u4e="[object Symbol]",g4e="[object WeakMap]",f4e="[object ArrayBuffer]",h4e="[object DataView]",p4e="[object Float32Array]",d4e="[object Float64Array]",C4e="[object Int8Array]",m4e="[object Int16Array]",E4e="[object Int32Array]",I4e="[object Uint8Array]",y4e="[object Uint8ClampedArray]",w4e="[object Uint16Array]",B4e="[object Uint32Array]",rr={};rr[gae]=rr[t4e]=rr[f4e]=rr[h4e]=rr[r4e]=rr[i4e]=rr[p4e]=rr[d4e]=rr[C4e]=rr[m4e]=rr[E4e]=rr[o4e]=rr[a4e]=rr[hae]=rr[A4e]=rr[l4e]=rr[c4e]=rr[u4e]=rr[I4e]=rr[y4e]=rr[w4e]=rr[B4e]=!0;rr[n4e]=rr[fae]=rr[g4e]=!1;function j0(t,e,r,i,n,s){var o,a=e&Z8e,l=e&$8e,c=e&e4e;if(r&&(o=n?r(t,i,n,s):r(t)),o!==void 0)return o;if(!z8e(t))return t;var u=q8e(t);if(u){if(o=G8e(t),!a)return T8e(t,o)}else{var g=H8e(t),f=g==fae||g==s4e;if(J8e(t))return L8e(t,a);if(g==hae||g==gae||f&&!n){if(o=l||f?{}:Y8e(t),!a)return l?O8e(t,N8e(o,t)):M8e(t,F8e(o,t))}else{if(!rr[g])return n?t:{};o=j8e(t,g,a)}}s||(s=new P8e);var h=s.get(t);if(h)return h;s.set(t,o),V8e(t)?t.forEach(function(m){o.add(j0(m,e,r,m,t,s))}):W8e(t)&&t.forEach(function(m,I){o.set(I,j0(m,e,r,I,t,s))});var p=c?l?U8e:K8e:l?X8e:_8e,d=u?void 0:p(t);return D8e(d||t,function(m,I){d&&(I=m,m=t[I]),R8e(o,I,j0(m,e,r,I,t,s))}),o}uae.exports=j0});var qN=E((pEt,dae)=>{var Q4e=pae(),b4e=1,v4e=4;function S4e(t){return Q4e(t,b4e|v4e)}dae.exports=S4e});var mae=E((dEt,Cae)=>{var x4e=tF();function k4e(t,e,r){return t==null?t:x4e(t,e,r)}Cae.exports=k4e});var Qae=E((wEt,Bae)=>{function P4e(t){var e=t==null?0:t.length;return e?t[e-1]:void 0}Bae.exports=P4e});var vae=E((BEt,bae)=>{var D4e=xd(),R4e=zP();function F4e(t,e){return e.length<2?t:D4e(t,R4e(e,0,-1))}bae.exports=F4e});var xae=E((QEt,Sae)=>{var N4e=Gg(),L4e=Qae(),T4e=vae(),M4e=Sc();function O4e(t,e){return e=N4e(e,t),t=T4e(t,e),t==null||delete t[M4e(L4e(e))]}Sae.exports=O4e});var Pae=E((bEt,kae)=>{var K4e=xae();function U4e(t,e){return t==null?!0:K4e(t,e)}kae.exports=U4e});var Kae=E((tIt,Oae)=>{Oae.exports={name:"@yarnpkg/cli",version:"3.1.1",license:"BSD-2-Clause",main:"./sources/index.ts",dependencies:{"@yarnpkg/core":"workspace:^","@yarnpkg/fslib":"workspace:^","@yarnpkg/libzip":"workspace:^","@yarnpkg/parsers":"workspace:^","@yarnpkg/plugin-compat":"workspace:^","@yarnpkg/plugin-dlx":"workspace:^","@yarnpkg/plugin-essentials":"workspace:^","@yarnpkg/plugin-file":"workspace:^","@yarnpkg/plugin-git":"workspace:^","@yarnpkg/plugin-github":"workspace:^","@yarnpkg/plugin-http":"workspace:^","@yarnpkg/plugin-init":"workspace:^","@yarnpkg/plugin-link":"workspace:^","@yarnpkg/plugin-nm":"workspace:^","@yarnpkg/plugin-npm":"workspace:^","@yarnpkg/plugin-npm-cli":"workspace:^","@yarnpkg/plugin-pack":"workspace:^","@yarnpkg/plugin-patch":"workspace:^","@yarnpkg/plugin-pnp":"workspace:^","@yarnpkg/plugin-pnpm":"workspace:^","@yarnpkg/shell":"workspace:^",chalk:"^3.0.0","ci-info":"^3.2.0",clipanion:"^3.0.1",semver:"^7.1.2",tslib:"^1.13.0",typanion:"^3.3.0",yup:"^0.32.9"},devDependencies:{"@types/semver":"^7.1.0","@types/yup":"^0","@yarnpkg/builder":"workspace:^","@yarnpkg/monorepo":"workspace:^","@yarnpkg/pnpify":"workspace:^",micromatch:"^4.0.2",typescript:"^4.5.2"},peerDependencies:{"@yarnpkg/core":"workspace:^"},scripts:{postpack:"rm -rf lib",prepack:'run build:compile "$(pwd)"',"build:cli+hook":"run build:pnp:hook && builder build bundle","build:cli":"builder build bundle","run:cli":"builder run","update-local":"run build:cli --no-git-hash && rsync -a --delete bundles/ bin/"},publishConfig:{main:"./lib/index.js",types:"./lib/index.d.ts",bin:null},files:["/lib/**/*","!/lib/pluginConfiguration.*","!/lib/cli.*"],"@yarnpkg/builder":{bundles:{standard:["@yarnpkg/plugin-essentials","@yarnpkg/plugin-compat","@yarnpkg/plugin-dlx","@yarnpkg/plugin-file","@yarnpkg/plugin-git","@yarnpkg/plugin-github","@yarnpkg/plugin-http","@yarnpkg/plugin-init","@yarnpkg/plugin-link","@yarnpkg/plugin-nm","@yarnpkg/plugin-npm","@yarnpkg/plugin-npm-cli","@yarnpkg/plugin-pack","@yarnpkg/plugin-patch","@yarnpkg/plugin-pnp","@yarnpkg/plugin-pnpm"]}},repository:{type:"git",url:"ssh://git@github.com/yarnpkg/berry.git",directory:"packages/yarnpkg-cli"},engines:{node:">=12 <14 || 14.2 - 14.9 || >14.10.0"}}});var iL=E((SBt,QAe)=>{"use strict";QAe.exports=function(e,r){r===!0&&(r=0);var i=e.indexOf("://"),n=e.substring(0,i).split("+").filter(Boolean);return typeof r=="number"?n[r]:n}});var nL=E((xBt,bAe)=>{"use strict";var sze=iL();function vAe(t){if(Array.isArray(t))return t.indexOf("ssh")!==-1||t.indexOf("rsync")!==-1;if(typeof t!="string")return!1;var e=sze(t);return t=t.substring(t.indexOf("://")+3),vAe(e)?!0:t.indexOf("@"){"use strict";var oze=iL(),aze=nL(),Aze=require("querystring");function lze(t){t=(t||"").trim();var e={protocols:oze(t),protocol:null,port:null,resource:"",user:"",pathname:"",hash:"",search:"",href:t,query:Object.create(null)},r=t.indexOf("://"),i=-1,n=null,s=null;t.startsWith(".")&&(t.startsWith("./")&&(t=t.substring(2)),e.pathname=t,e.protocol="file");var o=t.charAt(1);return e.protocol||(e.protocol=e.protocols[0],e.protocol||(aze(t)?e.protocol="ssh":((o==="/"||o==="~")&&(t=t.substring(2)),e.protocol="file"))),r!==-1&&(t=t.substring(r+3)),s=t.split("/"),e.protocol!=="file"?e.resource=s.shift():e.resource="",n=e.resource.split("@"),n.length===2&&(e.user=n[0],e.resource=n[1]),n=e.resource.split(":"),n.length===2&&(e.resource=n[0],n[1]?(e.port=Number(n[1]),isNaN(e.port)&&(e.port=null,s.unshift(n[1]))):e.port=null),s=s.filter(Boolean),e.protocol==="file"?e.pathname=e.href:e.pathname=e.pathname||(e.protocol!=="file"||e.href[0]==="/"?"/":"")+s.join("/"),n=e.pathname.split("#"),n.length===2&&(e.pathname=n[0],e.hash=n[1]),n=e.pathname.split("?"),n.length===2&&(e.pathname=n[0],e.search=n[1]),e.query=Aze.parse(e.search),e.href=e.href.replace(/\/$/,""),e.pathname=e.pathname.replace(/\/$/,""),e}SAe.exports=lze});var DAe=E((PBt,kAe)=>{"use strict";var cze=typeof URL=="undefined"?require("url").URL:URL,PAe=(t,e)=>e.some(r=>r instanceof RegExp?r.test(t):r===t);kAe.exports=(t,e)=>{e=Object.assign({defaultProtocol:"http:",normalizeProtocol:!0,forceHttp:!1,forceHttps:!1,stripHash:!0,stripWWW:!0,removeQueryParameters:[/^utm_\w+/i],removeTrailingSlash:!0,removeDirectoryIndex:!1,sortQueryParameters:!0},e),Reflect.has(e,"normalizeHttps")&&(e.forceHttp=e.normalizeHttps),Reflect.has(e,"normalizeHttp")&&(e.forceHttps=e.normalizeHttp),Reflect.has(e,"stripFragment")&&(e.stripHash=e.stripFragment),t=t.trim();let r=t.startsWith("//");!r&&/^\.*\//.test(t)||(t=t.replace(/^(?!(?:\w+:)?\/\/)|^\/\//,e.defaultProtocol));let n=new cze(t);if(e.forceHttp&&e.forceHttps)throw new Error("The `forceHttp` and `forceHttps` options cannot be used together");if(e.forceHttp&&n.protocol==="https:"&&(n.protocol="http:"),e.forceHttps&&n.protocol==="http:"&&(n.protocol="https:"),e.stripHash&&(n.hash=""),n.pathname&&(n.pathname=n.pathname.replace(/((?![https?:]).)\/{2,}/g,(s,o)=>/^(?!\/)/g.test(o)?`${o}/`:"/")),n.pathname&&(n.pathname=decodeURI(n.pathname)),e.removeDirectoryIndex===!0&&(e.removeDirectoryIndex=[/^index\.[a-z]+$/]),Array.isArray(e.removeDirectoryIndex)&&e.removeDirectoryIndex.length>0){let s=n.pathname.split("/"),o=s[s.length-1];PAe(o,e.removeDirectoryIndex)&&(s=s.slice(0,s.length-1),n.pathname=s.slice(1).join("/")+"/")}if(n.hostname&&(n.hostname=n.hostname.replace(/\.$/,""),e.stripWWW&&/^www\.([a-z\-\d]{2,63})\.([a-z\.]{2,5})$/.test(n.hostname)&&(n.hostname=n.hostname.replace(/^www\./,""))),Array.isArray(e.removeQueryParameters))for(let s of[...n.searchParams.keys()])PAe(s,e.removeQueryParameters)&&n.searchParams.delete(s);return e.sortQueryParameters&&n.searchParams.sort(),t=n.toString(),(e.removeTrailingSlash||n.pathname==="/")&&(t=t.replace(/\/$/,"")),r&&!e.normalizeProtocol&&(t=t.replace(/^http:\/\//,"//")),t}});var FAe=E((DBt,RAe)=>{"use strict";var uze=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},gze=xAe(),fze=DAe();function hze(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;if(typeof t!="string"||!t.trim())throw new Error("Invalid url.");e&&((typeof e=="undefined"?"undefined":uze(e))!=="object"&&(e={stripFragment:!1}),t=fze(t,e));var r=gze(t);return r}RAe.exports=hze});var TAe=E((RBt,NAe)=>{"use strict";var pze=FAe(),LAe=nL();function dze(t){var e=pze(t);e.token="";var r=e.user.split(":");return r.length===2&&(r[1]==="x-oauth-basic"?e.token=r[0]:r[0]==="x-token-auth"&&(e.token=r[1])),LAe(e.protocols)||LAe(t)?e.protocol="ssh":e.protocols.length?e.protocol=e.protocols[0]:e.protocol="file",e.href=e.href.replace(/\/$/,""),e}NAe.exports=dze});var OAe=E((FBt,MAe)=>{"use strict";var Cze=TAe();function sL(t){if(typeof t!="string")throw new Error("The url must be a string.");var e=Cze(t),r=e.resource.split("."),i=null;switch(e.toString=function(l){return sL.stringify(this,l)},e.source=r.length>2?r.slice(1-r.length).join("."):e.source=e.resource,e.git_suffix=/\.git$/.test(e.pathname),e.name=decodeURIComponent(e.pathname.replace(/^\//,"").replace(/\.git$/,"")),e.owner=decodeURIComponent(e.user),e.source){case"git.cloudforge.com":e.owner=e.user,e.organization=r[0],e.source="cloudforge.com";break;case"visualstudio.com":if(e.resource==="vs-ssh.visualstudio.com"){i=e.name.split("/"),i.length===4&&(e.organization=i[1],e.owner=i[2],e.name=i[3],e.full_name=i[2]+"/"+i[3]);break}else{i=e.name.split("/"),i.length===2?(e.owner=i[1],e.name=i[1],e.full_name="_git/"+e.name):i.length===3?(e.name=i[2],i[0]==="DefaultCollection"?(e.owner=i[2],e.organization=i[0],e.full_name=e.organization+"/_git/"+e.name):(e.owner=i[0],e.full_name=e.owner+"/_git/"+e.name)):i.length===4&&(e.organization=i[0],e.owner=i[1],e.name=i[3],e.full_name=e.organization+"/"+e.owner+"/_git/"+e.name);break}case"dev.azure.com":case"azure.com":if(e.resource==="ssh.dev.azure.com"){i=e.name.split("/"),i.length===4&&(e.organization=i[1],e.owner=i[2],e.name=i[3]);break}else{i=e.name.split("/"),i.length===5?(e.organization=i[0],e.owner=i[1],e.name=i[4],e.full_name="_git/"+e.name):i.length===3?(e.name=i[2],i[0]==="DefaultCollection"?(e.owner=i[2],e.organization=i[0],e.full_name=e.organization+"/_git/"+e.name):(e.owner=i[0],e.full_name=e.owner+"/_git/"+e.name)):i.length===4&&(e.organization=i[0],e.owner=i[1],e.name=i[3],e.full_name=e.organization+"/"+e.owner+"/_git/"+e.name);break}default:i=e.name.split("/");var n=i.length-1;if(i.length>=2){var s=i.indexOf("blob",2),o=i.indexOf("tree",2),a=i.indexOf("commit",2);n=s>0?s-1:o>0?o-1:a>0?a-1:n,e.owner=i.slice(0,n).join("/"),e.name=i[n],a&&(e.commit=i[n+2])}e.ref="",e.filepathtype="",e.filepath="",i.length>n+2&&["blob","tree"].indexOf(i[n+1])>=0&&(e.filepathtype=i[n+1],e.ref=i[n+2],i.length>n+3&&(e.filepath=i.slice(n+3).join("/"))),e.organization=e.owner;break}return e.full_name||(e.full_name=e.owner,e.name&&(e.full_name&&(e.full_name+="/"),e.full_name+=e.name)),e}sL.stringify=function(t,e){e=e||(t.protocols&&t.protocols.length?t.protocols.join("+"):t.protocol);var r=t.port?":"+t.port:"",i=t.user||"git",n=t.git_suffix?".git":"";switch(e){case"ssh":return r?"ssh://"+i+"@"+t.resource+r+"/"+t.full_name+n:i+"@"+t.resource+":"+t.full_name+n;case"git+ssh":case"ssh+git":case"ftp":case"ftps":return e+"://"+i+"@"+t.resource+r+"/"+t.full_name+n;case"http":case"https":var s=t.token?mze(t):t.user&&(t.protocols.includes("http")||t.protocols.includes("https"))?t.user+"@":"";return e+"://"+s+t.resource+r+"/"+t.full_name+n;default:return t.href}};function mze(t){switch(t.source){case"bitbucket.org":return"x-token-auth:"+t.token+"@";default:return t.token+"@"}}MAe.exports=sL});var NL=E((Obt,ole)=>{var Mze=jg(),Oze=Kg();function Kze(t,e,r){(r!==void 0&&!Oze(t[e],r)||r===void 0&&!(e in t))&&Mze(t,e,r)}ole.exports=Kze});var Ale=E((Kbt,ale)=>{var Uze=Hd(),Hze=Qo();function Gze(t){return Hze(t)&&Uze(t)}ale.exports=Gze});var ule=E((Ubt,lle)=>{var jze=Ac(),Yze=H0(),qze=Qo(),Jze="[object Object]",Wze=Function.prototype,zze=Object.prototype,cle=Wze.toString,Vze=zze.hasOwnProperty,_ze=cle.call(Object);function Xze(t){if(!qze(t)||jze(t)!=Jze)return!1;var e=Yze(t);if(e===null)return!0;var r=Vze.call(e,"constructor")&&e.constructor;return typeof r=="function"&&r instanceof r&&cle.call(r)==_ze}lle.exports=Xze});var LL=E((Hbt,gle)=>{function Zze(t,e){if(!(e==="constructor"&&typeof t[e]=="function")&&e!="__proto__")return t[e]}gle.exports=Zze});var hle=E((Gbt,fle)=>{var $ze=Af(),e5e=lf();function t5e(t){return $ze(t,e5e(t))}fle.exports=t5e});var Ile=E((jbt,ple)=>{var dle=NL(),r5e=UN(),i5e=jN(),n5e=HN(),s5e=YN(),Cle=Pd(),mle=As(),o5e=Ale(),a5e=Od(),A5e=zB(),l5e=Gs(),c5e=ule(),u5e=c0(),Ele=LL(),g5e=hle();function f5e(t,e,r,i,n,s,o){var a=Ele(t,r),l=Ele(e,r),c=o.get(l);if(c){dle(t,r,c);return}var u=s?s(a,l,r+"",t,e,o):void 0,g=u===void 0;if(g){var f=mle(l),h=!f&&a5e(l),p=!f&&!h&&u5e(l);u=l,f||h||p?mle(a)?u=a:o5e(a)?u=n5e(a):h?(g=!1,u=r5e(l,!0)):p?(g=!1,u=i5e(l,!0)):u=[]:c5e(l)||Cle(l)?(u=a,Cle(a)?u=g5e(a):(!l5e(a)||A5e(a))&&(u=s5e(l))):g=!1}g&&(o.set(l,u),n(u,l,i,s,o),o.delete(l)),dle(t,r,u)}ple.exports=f5e});var Ble=E((Ybt,yle)=>{var h5e=Gd(),p5e=NL(),d5e=BF(),C5e=Ile(),m5e=Gs(),E5e=lf(),I5e=LL();function wle(t,e,r,i,n){t!==e&&d5e(e,function(s,o){if(n||(n=new h5e),m5e(s))C5e(t,e,o,r,wle,i,n);else{var a=i?i(I5e(t,o),s,o+"",t,e,n):void 0;a===void 0&&(a=s),p5e(t,o,a)}},E5e)}yle.exports=wle});var ble=E((qbt,Qle)=>{var y5e=e0(),w5e=nF(),B5e=sF();function Q5e(t,e){return B5e(w5e(t,e,y5e),t+"")}Qle.exports=Q5e});var Sle=E((Jbt,vle)=>{var b5e=Kg(),v5e=Hd(),S5e=kd(),x5e=Gs();function k5e(t,e,r){if(!x5e(r))return!1;var i=typeof e;return(i=="number"?v5e(r)&&S5e(e,r.length):i=="string"&&e in r)?b5e(r[e],t):!1}vle.exports=k5e});var kle=E((Wbt,xle)=>{var P5e=ble(),D5e=Sle();function R5e(t){return P5e(function(e,r){var i=-1,n=r.length,s=n>1?r[n-1]:void 0,o=n>2?r[2]:void 0;for(s=t.length>3&&typeof s=="function"?(n--,s):void 0,o&&D5e(r[0],r[1],o)&&(s=n<3?void 0:s,n=1),e=Object(e);++i{var F5e=Ble(),N5e=kle(),L5e=N5e(function(t,e,r){F5e(t,e,r)});Ple.exports=L5e});var Wle=E(($vt,Jle)=>{var VL;Jle.exports=()=>(typeof VL=="undefined"&&(VL=require("zlib").brotliDecompressSync(Buffer.from("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","base64")).toString()),VL)});var $le=E(XL=>{function pf(t,e){if(typeof t=="string")return t;if(t){let r,i;if(Array.isArray(t)){for(r=0;r0)return(f=pf(n[g],u))?f.replace("*",c.substring(g.length-1)):Gc(i,c,1)}return Gc(i,c)}}function l6e(t,e={}){let r=0,i,n=e.browser,s=e.fields||["module","main"];for(n&&!s.includes("browser")&&s.unshift("browser");r{var eT;nce.exports=()=>(typeof eT=="undefined"&&(eT=require("zlib").brotliDecompressSync(Buffer.from("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","base64")).toString()),eT)});var gce=E((aT,AT)=>{(function(t){aT&&typeof aT=="object"&&typeof AT!="undefined"?AT.exports=t():typeof define=="function"&&define.amd?define([],t):typeof window!="undefined"?window.isWindows=t():typeof global!="undefined"?global.isWindows=t():typeof self!="undefined"?self.isWindows=t():this.isWindows=t()})(function(){"use strict";return function(){return process&&(process.platform==="win32"||/^(msys|cygwin)$/.test(process.env.OSTYPE))}})});var dce=E((Dxt,fce)=>{"use strict";lT.ifExists=E6e;var mf=require("util"),Es=require("path"),hce=gce(),I6e=/^#!\s*(?:\/usr\/bin\/env)?\s*([^ \t]+)(.*)$/,y6e={createPwshFile:!0,createCmdFile:hce(),fs:require("fs")},w6e=new Map([[".js","node"],[".cjs","node"],[".mjs","node"],[".cmd","cmd"],[".bat","cmd"],[".ps1","pwsh"],[".sh","sh"]]);function pce(t){let e=P(P({},y6e),t),r=e.fs;return e.fs_={chmod:r.chmod?mf.promisify(r.chmod):async()=>{},mkdir:mf.promisify(r.mkdir),readFile:mf.promisify(r.readFile),stat:mf.promisify(r.stat),unlink:mf.promisify(r.unlink),writeFile:mf.promisify(r.writeFile)},e}async function lT(t,e,r){let i=pce(r);await i.fs_.stat(t),await B6e(t,e,i)}function E6e(t,e,r){return lT(t,e,r).catch(()=>{})}function Q6e(t,e){return e.fs_.unlink(t).catch(()=>{})}async function B6e(t,e,r){let i=await S6e(t,r);return await b6e(e,r),v6e(t,e,i,r)}function b6e(t,e){return e.fs_.mkdir(Es.dirname(t),{recursive:!0})}function v6e(t,e,r,i){let n=pce(i),s=[{generator:P6e,extension:""}];return n.createCmdFile&&s.push({generator:k6e,extension:".cmd"}),n.createPwshFile&&s.push({generator:D6e,extension:".ps1"}),Promise.all(s.map(o=>x6e(t,e+o.extension,r,o.generator,n)))}function R6e(t,e){return Q6e(t,e)}function N6e(t,e){return F6e(t,e)}async function S6e(t,e){let n=(await e.fs_.readFile(t,"utf8")).trim().split(/\r*\n/)[0].match(I6e);if(!n){let s=Es.extname(t).toLowerCase();return{program:w6e.get(s)||null,additionalArgs:""}}return{program:n[1],additionalArgs:n[2]}}async function x6e(t,e,r,i,n){let s=n.preserveSymlinks?"--preserve-symlinks":"",o=[r.additionalArgs,s].filter(a=>a).join(" ");return n=Object.assign({},n,{prog:r.program,args:o}),await R6e(e,n),await n.fs_.writeFile(e,i(t,e,n),"utf8"),N6e(e,n)}function k6e(t,e,r){let n=Es.relative(Es.dirname(e),t).split("/").join("\\"),s=Es.isAbsolute(n)?`"${n}"`:`"%~dp0\\${n}"`,o,a=r.prog,l=r.args||"",c=cT(r.nodePath).win32;a?(o=`"%~dp0\\${a}.exe"`,n=s):(a=s,l="",n="");let u=r.progArgs?`${r.progArgs.join(" ")} `:"",g=c?`@SET NODE_PATH=${c}\r -`:"";return o?g+=`@IF EXIST ${o} (\r - ${o} ${l} ${n} ${u}%*\r -) ELSE (\r - @SETLOCAL\r - @SET PATHEXT=%PATHEXT:;.JS;=;%\r - ${a} ${l} ${n} ${u}%*\r -)\r -`:g+=`@${a} ${l} ${n} ${u}%*\r -`,g}function P6e(t,e,r){let i=Es.relative(Es.dirname(e),t),n=r.prog&&r.prog.split("\\").join("/"),s;i=i.split("\\").join("/");let o=Es.isAbsolute(i)?`"${i}"`:`"$basedir/${i}"`,a=r.args||"",l=cT(r.nodePath).posix;n?(s=`"$basedir/${r.prog}"`,i=o):(n=o,a="",i="");let c=r.progArgs?`${r.progArgs.join(" ")} `:"",u=`#!/bin/sh -basedir=$(dirname "$(echo "$0" | sed -e 's,\\\\,/,g')") - -case \`uname\` in - *CYGWIN*) basedir=\`cygpath -w "$basedir"\`;; -esac - -`,g=r.nodePath?`export NODE_PATH="${l}" -`:"";return s?u+=`${g}if [ -x ${s} ]; then - exec ${s} ${a} ${i} ${c}"$@" -else - exec ${n} ${a} ${i} ${c}"$@" -fi -`:u+=`${g}${n} ${a} ${i} ${c}"$@" -exit $? -`,u}function D6e(t,e,r){let i=Es.relative(Es.dirname(e),t),n=r.prog&&r.prog.split("\\").join("/"),s=n&&`"${n}$exe"`,o;i=i.split("\\").join("/");let a=Es.isAbsolute(i)?`"${i}"`:`"$basedir/${i}"`,l=r.args||"",c=cT(r.nodePath),u=c.win32,g=c.posix;s?(o=`"$basedir/${r.prog}$exe"`,i=a):(s=a,l="",i="");let f=r.progArgs?`${r.progArgs.join(" ")} `:"",h=`#!/usr/bin/env pwsh -$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent - -$exe="" -${r.nodePath?`$env_node_path=$env:NODE_PATH -$env:NODE_PATH="${u}" -`:""}if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { - # Fix case when both the Windows and Linux builds of Node - # are installed in the same directory - $exe=".exe" -}`;return r.nodePath&&(h+=` else { - $env:NODE_PATH="${g}" -}`),o?h+=` -$ret=0 -if (Test-Path ${o}) { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & ${o} ${l} ${i} ${f}$args - } else { - & ${o} ${l} ${i} ${f}$args - } - $ret=$LASTEXITCODE -} else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & ${s} ${l} ${i} ${f}$args - } else { - & ${s} ${l} ${i} ${f}$args - } - $ret=$LASTEXITCODE -} -${r.nodePath?`$env:NODE_PATH=$env_node_path -`:""}exit $ret -`:h+=` -# Support pipeline input -if ($MyInvocation.ExpectingInput) { - $input | & ${s} ${l} ${i} ${f}$args -} else { - & ${s} ${l} ${i} ${f}$args -} -${r.nodePath?`$env:NODE_PATH=$env_node_path -`:""}exit $LASTEXITCODE -`,h}function F6e(t,e){return e.fs_.chmod(t,493)}function cT(t){if(!t)return{win32:"",posix:""};let e=typeof t=="string"?t.split(Es.delimiter):Array.from(t),r={};for(let i=0;i`/mnt/${a.toLowerCase()}`):e[i];r.win32=r.win32?`${r.win32};${n}`:n,r.posix=r.posix?`${r.posix}:${s}`:s,r[i]={win32:n,posix:s}}return r}fce.exports=lT});var PT=E((fPt,Nce)=>{Nce.exports=require("stream")});var Oce=E((hPt,Lce)=>{"use strict";function Tce(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter(function(n){return Object.getOwnPropertyDescriptor(t,n).enumerable})),r.push.apply(r,i)}return r}function e9e(t){for(var e=1;e0?this.tail.next=i:this.head=i,this.tail=i,++this.length}},{key:"unshift",value:function(r){var i={data:r,next:this.head};this.length===0&&(this.tail=i),this.head=i,++this.length}},{key:"shift",value:function(){if(this.length!==0){var r=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,r}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(r){if(this.length===0)return"";for(var i=this.head,n=""+i.data;i=i.next;)n+=r+i.data;return n}},{key:"concat",value:function(r){if(this.length===0)return iQ.alloc(0);for(var i=iQ.allocUnsafe(r>>>0),n=this.head,s=0;n;)o9e(n.data,i,s),s+=n.data.length,n=n.next;return i}},{key:"consume",value:function(r,i){var n;return ro.length?o.length:r;if(a===o.length?s+=o:s+=o.slice(0,r),r-=a,r===0){a===o.length?(++n,i.next?this.head=i.next:this.head=this.tail=null):(this.head=i,i.data=o.slice(a));break}++n}return this.length-=n,s}},{key:"_getBuffer",value:function(r){var i=iQ.allocUnsafe(r),n=this.head,s=1;for(n.data.copy(i),r-=n.data.length;n=n.next;){var o=n.data,a=r>o.length?o.length:r;if(o.copy(i,i.length-r,0,a),r-=a,r===0){a===o.length?(++s,n.next?this.head=n.next:this.head=this.tail=null):(this.head=n,n.data=o.slice(a));break}++s}return this.length-=s,i}},{key:s9e,value:function(r,i){return DT(this,e9e({},i,{depth:0,customInspect:!1}))}}]),t}()});var FT=E((pPt,Kce)=>{"use strict";function a9e(t,e){var r=this,i=this._readableState&&this._readableState.destroyed,n=this._writableState&&this._writableState.destroyed;return i||n?(e?e(t):t&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,process.nextTick(RT,this,t)):process.nextTick(RT,this,t)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(t||null,function(s){!e&&s?r._writableState?r._writableState.errorEmitted?process.nextTick(nQ,r):(r._writableState.errorEmitted=!0,process.nextTick(Uce,r,s)):process.nextTick(Uce,r,s):e?(process.nextTick(nQ,r),e(s)):process.nextTick(nQ,r)}),this)}function Uce(t,e){RT(t,e),nQ(t)}function nQ(t){t._writableState&&!t._writableState.emitClose||t._readableState&&!t._readableState.emitClose||t.emit("close")}function A9e(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function RT(t,e){t.emit("error",e)}function l9e(t,e){var r=t._readableState,i=t._writableState;r&&r.autoDestroy||i&&i.autoDestroy?t.destroy(e):t.emit("error",e)}Kce.exports={destroy:a9e,undestroy:A9e,errorOrDestroy:l9e}});var VA=E((dPt,Hce)=>{"use strict";var Gce={};function Is(t,e,r){r||(r=Error);function i(s,o,a){return typeof e=="string"?e:e(s,o,a)}class n extends r{constructor(o,a,l){super(i(o,a,l))}}n.prototype.name=r.name,n.prototype.code=t,Gce[t]=n}function jce(t,e){if(Array.isArray(t)){let r=t.length;return t=t.map(i=>String(i)),r>2?`one of ${e} ${t.slice(0,r-1).join(", ")}, or `+t[r-1]:r===2?`one of ${e} ${t[0]} or ${t[1]}`:`of ${e} ${t[0]}`}else return`of ${e} ${String(t)}`}function c9e(t,e,r){return t.substr(!r||r<0?0:+r,e.length)===e}function u9e(t,e,r){return(r===void 0||r>t.length)&&(r=t.length),t.substring(r-e.length,r)===e}function g9e(t,e,r){return typeof r!="number"&&(r=0),r+e.length>t.length?!1:t.indexOf(e,r)!==-1}Is("ERR_INVALID_OPT_VALUE",function(t,e){return'The value "'+e+'" is invalid for option "'+t+'"'},TypeError);Is("ERR_INVALID_ARG_TYPE",function(t,e,r){let i;typeof e=="string"&&c9e(e,"not ")?(i="must not be",e=e.replace(/^not /,"")):i="must be";let n;if(u9e(t," argument"))n=`The ${t} ${i} ${jce(e,"type")}`;else{let s=g9e(t,".")?"property":"argument";n=`The "${t}" ${s} ${i} ${jce(e,"type")}`}return n+=`. Received type ${typeof r}`,n},TypeError);Is("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF");Is("ERR_METHOD_NOT_IMPLEMENTED",function(t){return"The "+t+" method is not implemented"});Is("ERR_STREAM_PREMATURE_CLOSE","Premature close");Is("ERR_STREAM_DESTROYED",function(t){return"Cannot call "+t+" after a stream was destroyed"});Is("ERR_MULTIPLE_CALLBACK","Callback called multiple times");Is("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable");Is("ERR_STREAM_WRITE_AFTER_END","write after end");Is("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError);Is("ERR_UNKNOWN_ENCODING",function(t){return"Unknown encoding: "+t},TypeError);Is("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event");Hce.exports.codes=Gce});var NT=E((CPt,Yce)=>{"use strict";var f9e=VA().codes.ERR_INVALID_OPT_VALUE;function h9e(t,e,r){return t.highWaterMark!=null?t.highWaterMark:e?t[r]:null}function p9e(t,e,r,i){var n=h9e(e,i,r);if(n!=null){if(!(isFinite(n)&&Math.floor(n)===n)||n<0){var s=i?r:"highWaterMark";throw new f9e(s,n)}return Math.floor(n)}return t.objectMode?16:16*1024}Yce.exports={getHighWaterMark:p9e}});var qce=E((mPt,LT)=>{typeof Object.create=="function"?LT.exports=function(e,r){r&&(e.super_=r,e.prototype=Object.create(r.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:LT.exports=function(e,r){if(r){e.super_=r;var i=function(){};i.prototype=r.prototype,e.prototype=new i,e.prototype.constructor=e}}});var _A=E((EPt,TT)=>{try{if(MT=require("util"),typeof MT.inherits!="function")throw"";TT.exports=MT.inherits}catch(t){TT.exports=qce()}var MT});var Wce=E((IPt,Jce)=>{Jce.exports=require("util").deprecate});var UT=E((yPt,zce)=>{"use strict";zce.exports=Sr;function Vce(t){var e=this;this.next=null,this.entry=null,this.finish=function(){d9e(e,t)}}var If;Sr.WritableState=em;var C9e={deprecate:Wce()},_ce=PT(),sQ=require("buffer").Buffer,m9e=global.Uint8Array||function(){};function E9e(t){return sQ.from(t)}function I9e(t){return sQ.isBuffer(t)||t instanceof m9e}var OT=FT(),y9e=NT(),w9e=y9e.getHighWaterMark,XA=VA().codes,B9e=XA.ERR_INVALID_ARG_TYPE,Q9e=XA.ERR_METHOD_NOT_IMPLEMENTED,b9e=XA.ERR_MULTIPLE_CALLBACK,v9e=XA.ERR_STREAM_CANNOT_PIPE,S9e=XA.ERR_STREAM_DESTROYED,x9e=XA.ERR_STREAM_NULL_VALUES,k9e=XA.ERR_STREAM_WRITE_AFTER_END,P9e=XA.ERR_UNKNOWN_ENCODING,yf=OT.errorOrDestroy;_A()(Sr,_ce);function D9e(){}function em(t,e,r){If=If||Yc(),t=t||{},typeof r!="boolean"&&(r=e instanceof If),this.objectMode=!!t.objectMode,r&&(this.objectMode=this.objectMode||!!t.writableObjectMode),this.highWaterMark=w9e(this,t,"writableHighWaterMark",r),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var i=t.decodeStrings===!1;this.decodeStrings=!i,this.defaultEncoding=t.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(n){R9e(e,n)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=t.emitClose!==!1,this.autoDestroy=!!t.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new Vce(this)}em.prototype.getBuffer=function(){for(var e=this.bufferedRequest,r=[];e;)r.push(e),e=e.next;return r};(function(){try{Object.defineProperty(em.prototype,"buffer",{get:C9e.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch(t){}})();var oQ;typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(oQ=Function.prototype[Symbol.hasInstance],Object.defineProperty(Sr,Symbol.hasInstance,{value:function(e){return oQ.call(this,e)?!0:this!==Sr?!1:e&&e._writableState instanceof em}})):oQ=function(e){return e instanceof this};function Sr(t){If=If||Yc();var e=this instanceof If;if(!e&&!oQ.call(Sr,this))return new Sr(t);this._writableState=new em(t,this,e),this.writable=!0,t&&(typeof t.write=="function"&&(this._write=t.write),typeof t.writev=="function"&&(this._writev=t.writev),typeof t.destroy=="function"&&(this._destroy=t.destroy),typeof t.final=="function"&&(this._final=t.final)),_ce.call(this)}Sr.prototype.pipe=function(){yf(this,new v9e)};function F9e(t,e){var r=new k9e;yf(t,r),process.nextTick(e,r)}function N9e(t,e,r,i){var n;return r===null?n=new x9e:typeof r!="string"&&!e.objectMode&&(n=new B9e("chunk",["string","Buffer"],r)),n?(yf(t,n),process.nextTick(i,n),!1):!0}Sr.prototype.write=function(t,e,r){var i=this._writableState,n=!1,s=!i.objectMode&&I9e(t);return s&&!sQ.isBuffer(t)&&(t=E9e(t)),typeof e=="function"&&(r=e,e=null),s?e="buffer":e||(e=i.defaultEncoding),typeof r!="function"&&(r=D9e),i.ending?F9e(this,r):(s||N9e(this,i,t,r))&&(i.pendingcb++,n=L9e(this,i,s,t,e,r)),n};Sr.prototype.cork=function(){this._writableState.corked++};Sr.prototype.uncork=function(){var t=this._writableState;t.corked&&(t.corked--,!t.writing&&!t.corked&&!t.bufferProcessing&&t.bufferedRequest&&Xce(this,t))};Sr.prototype.setDefaultEncoding=function(e){if(typeof e=="string"&&(e=e.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((e+"").toLowerCase())>-1))throw new P9e(e);return this._writableState.defaultEncoding=e,this};Object.defineProperty(Sr.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}});function T9e(t,e,r){return!t.objectMode&&t.decodeStrings!==!1&&typeof e=="string"&&(e=sQ.from(e,r)),e}Object.defineProperty(Sr.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});function L9e(t,e,r,i,n,s){if(!r){var o=T9e(e,i,n);i!==o&&(r=!0,n="buffer",i=o)}var a=e.objectMode?1:i.length;e.length+=a;var l=e.length{"use strict";var j9e=Object.keys||function(t){var e=[];for(var r in t)e.push(r);return e};eue.exports=Mo;var tue=HT(),GT=UT();_A()(Mo,tue);for(jT=j9e(GT.prototype),aQ=0;aQ{var lQ=require("buffer"),qa=lQ.Buffer;function iue(t,e){for(var r in t)e[r]=t[r]}qa.from&&qa.alloc&&qa.allocUnsafe&&qa.allocUnsafeSlow?rue.exports=lQ:(iue(lQ,YT),YT.Buffer=wf);function wf(t,e,r){return qa(t,e,r)}iue(qa,wf);wf.from=function(t,e,r){if(typeof t=="number")throw new TypeError("Argument must not be a number");return qa(t,e,r)};wf.alloc=function(t,e,r){if(typeof t!="number")throw new TypeError("Argument must be a number");var i=qa(t);return e!==void 0?typeof r=="string"?i.fill(e,r):i.fill(e):i.fill(0),i};wf.allocUnsafe=function(t){if(typeof t!="number")throw new TypeError("Argument must be a number");return qa(t)};wf.allocUnsafeSlow=function(t){if(typeof t!="number")throw new TypeError("Argument must be a number");return lQ.SlowBuffer(t)}});var WT=E(sue=>{"use strict";var qT=nue().Buffer,oue=qT.isEncoding||function(t){switch(t=""+t,t&&t.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function J9e(t){if(!t)return"utf8";for(var e;;)switch(t){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return t;default:if(e)return;t=(""+t).toLowerCase(),e=!0}}function W9e(t){var e=J9e(t);if(typeof e!="string"&&(qT.isEncoding===oue||!oue(t)))throw new Error("Unknown encoding: "+t);return e||t}sue.StringDecoder=rm;function rm(t){this.encoding=W9e(t);var e;switch(this.encoding){case"utf16le":this.text=V9e,this.end=_9e,e=4;break;case"utf8":this.fillLast=z9e,e=4;break;case"base64":this.text=X9e,this.end=Z9e,e=3;break;default:this.write=$9e,this.end=eVe;return}this.lastNeed=0,this.lastTotal=0,this.lastChar=qT.allocUnsafe(e)}rm.prototype.write=function(t){if(t.length===0)return"";var e,r;if(this.lastNeed){if(e=this.fillLast(t),e===void 0)return"";r=this.lastNeed,this.lastNeed=0}else r=0;return r>5==6?2:t>>4==14?3:t>>3==30?4:t>>6==2?-1:-2}function iVe(t,e,r){var i=e.length-1;if(i=0?(n>0&&(t.lastNeed=n-1),n):--i=0?(n>0&&(t.lastNeed=n-2),n):--i=0?(n>0&&(n===2?n=0:t.lastNeed=n-3),n):0))}function nVe(t,e,r){if((e[0]&192)!=128)return t.lastNeed=0,"\uFFFD";if(t.lastNeed>1&&e.length>1){if((e[1]&192)!=128)return t.lastNeed=1,"\uFFFD";if(t.lastNeed>2&&e.length>2&&(e[2]&192)!=128)return t.lastNeed=2,"\uFFFD"}}function z9e(t){var e=this.lastTotal-this.lastNeed,r=nVe(this,t,e);if(r!==void 0)return r;if(this.lastNeed<=t.length)return t.copy(this.lastChar,e,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);t.copy(this.lastChar,e,0,t.length),this.lastNeed-=t.length}function rVe(t,e){var r=iVe(this,t,e);if(!this.lastNeed)return t.toString("utf8",e);this.lastTotal=r;var i=t.length-(r-this.lastNeed);return t.copy(this.lastChar,0,i),t.toString("utf8",e,i)}function tVe(t){var e=t&&t.length?this.write(t):"";return this.lastNeed?e+"\uFFFD":e}function V9e(t,e){if((t.length-e)%2==0){var r=t.toString("utf16le",e);if(r){var i=r.charCodeAt(r.length-1);if(i>=55296&&i<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=t[t.length-2],this.lastChar[1]=t[t.length-1],r.slice(0,-1)}return r}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=t[t.length-1],t.toString("utf16le",e,t.length-1)}function _9e(t){var e=t&&t.length?this.write(t):"";if(this.lastNeed){var r=this.lastTotal-this.lastNeed;return e+this.lastChar.toString("utf16le",0,r)}return e}function X9e(t,e){var r=(t.length-e)%3;return r===0?t.toString("base64",e):(this.lastNeed=3-r,this.lastTotal=3,r===1?this.lastChar[0]=t[t.length-1]:(this.lastChar[0]=t[t.length-2],this.lastChar[1]=t[t.length-1]),t.toString("base64",e,t.length-r))}function Z9e(t){var e=t&&t.length?this.write(t):"";return this.lastNeed?e+this.lastChar.toString("base64",0,3-this.lastNeed):e}function $9e(t){return t.toString(this.encoding)}function eVe(t){return t&&t.length?this.write(t):""}});var cQ=E((QPt,aue)=>{"use strict";var Aue=VA().codes.ERR_STREAM_PREMATURE_CLOSE;function sVe(t){var e=!1;return function(){if(!e){e=!0;for(var r=arguments.length,i=new Array(r),n=0;n{"use strict";var uQ;function ZA(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}var AVe=cQ(),$A=Symbol("lastResolve"),qc=Symbol("lastReject"),im=Symbol("error"),gQ=Symbol("ended"),Jc=Symbol("lastPromise"),zT=Symbol("handlePromise"),Wc=Symbol("stream");function el(t,e){return{value:t,done:e}}function lVe(t){var e=t[$A];if(e!==null){var r=t[Wc].read();r!==null&&(t[Jc]=null,t[$A]=null,t[qc]=null,e(el(r,!1)))}}function cVe(t){process.nextTick(lVe,t)}function uVe(t,e){return function(r,i){t.then(function(){if(e[gQ]){r(el(void 0,!0));return}e[zT](r,i)},i)}}var gVe=Object.getPrototypeOf(function(){}),fVe=Object.setPrototypeOf((uQ={get stream(){return this[Wc]},next:function(){var e=this,r=this[im];if(r!==null)return Promise.reject(r);if(this[gQ])return Promise.resolve(el(void 0,!0));if(this[Wc].destroyed)return new Promise(function(o,a){process.nextTick(function(){e[im]?a(e[im]):o(el(void 0,!0))})});var i=this[Jc],n;if(i)n=new Promise(uVe(i,this));else{var s=this[Wc].read();if(s!==null)return Promise.resolve(el(s,!1));n=new Promise(this[zT])}return this[Jc]=n,n}},ZA(uQ,Symbol.asyncIterator,function(){return this}),ZA(uQ,"return",function(){var e=this;return new Promise(function(r,i){e[Wc].destroy(null,function(n){if(n){i(n);return}r(el(void 0,!0))})})}),uQ),gVe),hVe=function(e){var r,i=Object.create(fVe,(r={},ZA(r,Wc,{value:e,writable:!0}),ZA(r,$A,{value:null,writable:!0}),ZA(r,qc,{value:null,writable:!0}),ZA(r,im,{value:null,writable:!0}),ZA(r,gQ,{value:e._readableState.endEmitted,writable:!0}),ZA(r,zT,{value:function(s,o){var a=i[Wc].read();a?(i[Jc]=null,i[$A]=null,i[qc]=null,s(el(a,!1))):(i[$A]=s,i[qc]=o)},writable:!0}),r));return i[Jc]=null,AVe(e,function(n){if(n&&n.code!=="ERR_STREAM_PREMATURE_CLOSE"){var s=i[qc];s!==null&&(i[Jc]=null,i[$A]=null,i[qc]=null,s(n)),i[im]=n;return}var o=i[$A];o!==null&&(i[Jc]=null,i[$A]=null,i[qc]=null,o(el(void 0,!0))),i[gQ]=!0}),e.on("readable",cVe.bind(null,i)),i};cue.exports=hVe});var pue=E((vPt,gue)=>{"use strict";function fue(t,e,r,i,n,s,o){try{var a=t[s](o),l=a.value}catch(c){r(c);return}a.done?e(l):Promise.resolve(l).then(i,n)}function pVe(t){return function(){var e=this,r=arguments;return new Promise(function(i,n){var s=t.apply(e,r);function o(l){fue(s,i,n,o,a,"next",l)}function a(l){fue(s,i,n,o,a,"throw",l)}o(void 0)})}}function hue(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter(function(n){return Object.getOwnPropertyDescriptor(t,n).enumerable})),r.push.apply(r,i)}return r}function CVe(t){for(var e=1;e{"use strict";due.exports=kt;var Bf;kt.ReadableState=Cue;var SPt=require("events").EventEmitter,mue=function(e,r){return e.listeners(r).length},nm=PT(),fQ=require("buffer").Buffer,IVe=global.Uint8Array||function(){};function yVe(t){return fQ.from(t)}function wVe(t){return fQ.isBuffer(t)||t instanceof IVe}var VT=require("util"),Et;VT&&VT.debuglog?Et=VT.debuglog("stream"):Et=function(){};var BVe=Oce(),_T=FT(),QVe=NT(),bVe=QVe.getHighWaterMark,hQ=VA().codes,vVe=hQ.ERR_INVALID_ARG_TYPE,SVe=hQ.ERR_STREAM_PUSH_AFTER_EOF,xVe=hQ.ERR_METHOD_NOT_IMPLEMENTED,kVe=hQ.ERR_STREAM_UNSHIFT_AFTER_END_EVENT,Qf,XT,ZT;_A()(kt,nm);var sm=_T.errorOrDestroy,$T=["error","close","destroy","pause","resume"];function PVe(t,e,r){if(typeof t.prependListener=="function")return t.prependListener(e,r);!t._events||!t._events[e]?t.on(e,r):Array.isArray(t._events[e])?t._events[e].unshift(r):t._events[e]=[r,t._events[e]]}function Cue(t,e,r){Bf=Bf||Yc(),t=t||{},typeof r!="boolean"&&(r=e instanceof Bf),this.objectMode=!!t.objectMode,r&&(this.objectMode=this.objectMode||!!t.readableObjectMode),this.highWaterMark=bVe(this,t,"readableHighWaterMark",r),this.buffer=new BVe,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=t.emitClose!==!1,this.autoDestroy=!!t.autoDestroy,this.destroyed=!1,this.defaultEncoding=t.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,t.encoding&&(Qf||(Qf=WT().StringDecoder),this.decoder=new Qf(t.encoding),this.encoding=t.encoding)}function kt(t){if(Bf=Bf||Yc(),!(this instanceof kt))return new kt(t);var e=this instanceof Bf;this._readableState=new Cue(t,this,e),this.readable=!0,t&&(typeof t.read=="function"&&(this._read=t.read),typeof t.destroy=="function"&&(this._destroy=t.destroy)),nm.call(this)}Object.defineProperty(kt.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState===void 0?!1:this._readableState.destroyed},set:function(e){!this._readableState||(this._readableState.destroyed=e)}});kt.prototype.destroy=_T.destroy;kt.prototype._undestroy=_T.undestroy;kt.prototype._destroy=function(t,e){e(t)};kt.prototype.push=function(t,e){var r=this._readableState,i;return r.objectMode?i=!0:typeof t=="string"&&(e=e||r.defaultEncoding,e!==r.encoding&&(t=fQ.from(t,e),e=""),i=!0),Eue(this,t,e,!1,i)};kt.prototype.unshift=function(t){return Eue(this,t,null,!0,!1)};function Eue(t,e,r,i,n){Et("readableAddChunk",e);var s=t._readableState;if(e===null)s.reading=!1,RVe(t,s);else{var o;if(n||(o=DVe(s,e)),o)sm(t,o);else if(s.objectMode||e&&e.length>0)if(typeof e!="string"&&!s.objectMode&&Object.getPrototypeOf(e)!==fQ.prototype&&(e=yVe(e)),i)s.endEmitted?sm(t,new kVe):eM(t,s,e,!0);else if(s.ended)sm(t,new SVe);else{if(s.destroyed)return!1;s.reading=!1,s.decoder&&!r?(e=s.decoder.write(e),s.objectMode||e.length!==0?eM(t,s,e,!1):tM(t,s)):eM(t,s,e,!1)}else i||(s.reading=!1,tM(t,s))}return!s.ended&&(s.length=Iue?t=Iue:(t--,t|=t>>>1,t|=t>>>2,t|=t>>>4,t|=t>>>8,t|=t>>>16,t++),t}function yue(t,e){return t<=0||e.length===0&&e.ended?0:e.objectMode?1:t!==t?e.flowing&&e.length?e.buffer.head.data.length:e.length:(t>e.highWaterMark&&(e.highWaterMark=FVe(t)),t<=e.length?t:e.ended?e.length:(e.needReadable=!0,0))}kt.prototype.read=function(t){Et("read",t),t=parseInt(t,10);var e=this._readableState,r=t;if(t!==0&&(e.emittedReadable=!1),t===0&&e.needReadable&&((e.highWaterMark!==0?e.length>=e.highWaterMark:e.length>0)||e.ended))return Et("read: emitReadable",e.length,e.ended),e.length===0&&e.ended?rM(this):pQ(this),null;if(t=yue(t,e),t===0&&e.ended)return e.length===0&&rM(this),null;var i=e.needReadable;Et("need readable",i),(e.length===0||e.length-t0?n=wue(t,e):n=null,n===null?(e.needReadable=e.length<=e.highWaterMark,t=0):(e.length-=t,e.awaitDrain=0),e.length===0&&(e.ended||(e.needReadable=!0),r!==t&&e.ended&&rM(this)),n!==null&&this.emit("data",n),n};function RVe(t,e){if(Et("onEofChunk"),!e.ended){if(e.decoder){var r=e.decoder.end();r&&r.length&&(e.buffer.push(r),e.length+=e.objectMode?1:r.length)}e.ended=!0,e.sync?pQ(t):(e.needReadable=!1,e.emittedReadable||(e.emittedReadable=!0,Bue(t)))}}function pQ(t){var e=t._readableState;Et("emitReadable",e.needReadable,e.emittedReadable),e.needReadable=!1,e.emittedReadable||(Et("emitReadable",e.flowing),e.emittedReadable=!0,process.nextTick(Bue,t))}function Bue(t){var e=t._readableState;Et("emitReadable_",e.destroyed,e.length,e.ended),!e.destroyed&&(e.length||e.ended)&&(t.emit("readable"),e.emittedReadable=!1),e.needReadable=!e.flowing&&!e.ended&&e.length<=e.highWaterMark,iM(t)}function tM(t,e){e.readingMore||(e.readingMore=!0,process.nextTick(NVe,t,e))}function NVe(t,e){for(;!e.reading&&!e.ended&&(e.length1&&Que(i.pipes,t)!==-1)&&!c&&(Et("false write response, pause",i.awaitDrain),i.awaitDrain++),r.pause())}function f(m){Et("onerror",m),d(),t.removeListener("error",f),mue(t,"error")===0&&sm(t,m)}PVe(t,"error",f);function h(){t.removeListener("finish",p),d()}t.once("close",h);function p(){Et("onfinish"),t.removeListener("close",h),d()}t.once("finish",p);function d(){Et("unpipe"),r.unpipe(t)}return t.emit("pipe",r),i.flowing||(Et("pipe resume"),r.resume()),t};function LVe(t){return function(){var r=t._readableState;Et("pipeOnDrain",r.awaitDrain),r.awaitDrain&&r.awaitDrain--,r.awaitDrain===0&&mue(t,"data")&&(r.flowing=!0,iM(t))}}kt.prototype.unpipe=function(t){var e=this._readableState,r={hasUnpiped:!1};if(e.pipesCount===0)return this;if(e.pipesCount===1)return t&&t!==e.pipes?this:(t||(t=e.pipes),e.pipes=null,e.pipesCount=0,e.flowing=!1,t&&t.emit("unpipe",this,r),this);if(!t){var i=e.pipes,n=e.pipesCount;e.pipes=null,e.pipesCount=0,e.flowing=!1;for(var s=0;s0,i.flowing!==!1&&this.resume()):t==="readable"&&!i.endEmitted&&!i.readableListening&&(i.readableListening=i.needReadable=!0,i.flowing=!1,i.emittedReadable=!1,Et("on readable",i.length,i.reading),i.length?pQ(this):i.reading||process.nextTick(TVe,this)),r};kt.prototype.addListener=kt.prototype.on;kt.prototype.removeListener=function(t,e){var r=nm.prototype.removeListener.call(this,t,e);return t==="readable"&&process.nextTick(bue,this),r};kt.prototype.removeAllListeners=function(t){var e=nm.prototype.removeAllListeners.apply(this,arguments);return(t==="readable"||t===void 0)&&process.nextTick(bue,this),e};function bue(t){var e=t._readableState;e.readableListening=t.listenerCount("readable")>0,e.resumeScheduled&&!e.paused?e.flowing=!0:t.listenerCount("data")>0&&t.resume()}function TVe(t){Et("readable nexttick read 0"),t.read(0)}kt.prototype.resume=function(){var t=this._readableState;return t.flowing||(Et("resume"),t.flowing=!t.readableListening,MVe(this,t)),t.paused=!1,this};function MVe(t,e){e.resumeScheduled||(e.resumeScheduled=!0,process.nextTick(OVe,t,e))}function OVe(t,e){Et("resume",e.reading),e.reading||t.read(0),e.resumeScheduled=!1,t.emit("resume"),iM(t),e.flowing&&!e.reading&&t.read(0)}kt.prototype.pause=function(){return Et("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(Et("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this};function iM(t){var e=t._readableState;for(Et("flow",e.flowing);e.flowing&&t.read()!==null;);}kt.prototype.wrap=function(t){var e=this,r=this._readableState,i=!1;t.on("end",function(){if(Et("wrapped end"),r.decoder&&!r.ended){var o=r.decoder.end();o&&o.length&&e.push(o)}e.push(null)}),t.on("data",function(o){if(Et("wrapped data"),r.decoder&&(o=r.decoder.write(o)),!(r.objectMode&&o==null)&&!(!r.objectMode&&(!o||!o.length))){var a=e.push(o);a||(i=!0,t.pause())}});for(var n in t)this[n]===void 0&&typeof t[n]=="function"&&(this[n]=function(a){return function(){return t[a].apply(t,arguments)}}(n));for(var s=0;s<$T.length;s++)t.on($T[s],this.emit.bind(this,$T[s]));return this._read=function(o){Et("wrapped _read",o),i&&(i=!1,t.resume())},this};typeof Symbol=="function"&&(kt.prototype[Symbol.asyncIterator]=function(){return XT===void 0&&(XT=uue()),XT(this)});Object.defineProperty(kt.prototype,"readableHighWaterMark",{enumerable:!1,get:function(){return this._readableState.highWaterMark}});Object.defineProperty(kt.prototype,"readableBuffer",{enumerable:!1,get:function(){return this._readableState&&this._readableState.buffer}});Object.defineProperty(kt.prototype,"readableFlowing",{enumerable:!1,get:function(){return this._readableState.flowing},set:function(e){this._readableState&&(this._readableState.flowing=e)}});kt._fromList=wue;Object.defineProperty(kt.prototype,"readableLength",{enumerable:!1,get:function(){return this._readableState.length}});function wue(t,e){if(e.length===0)return null;var r;return e.objectMode?r=e.buffer.shift():!t||t>=e.length?(e.decoder?r=e.buffer.join(""):e.buffer.length===1?r=e.buffer.first():r=e.buffer.concat(e.length),e.buffer.clear()):r=e.buffer.consume(t,e.decoder),r}function rM(t){var e=t._readableState;Et("endReadable",e.endEmitted),e.endEmitted||(e.ended=!0,process.nextTick(KVe,e,t))}function KVe(t,e){if(Et("endReadableNT",t.endEmitted,t.length),!t.endEmitted&&t.length===0&&(t.endEmitted=!0,e.readable=!1,e.emit("end"),t.autoDestroy)){var r=e._writableState;(!r||r.autoDestroy&&r.finished)&&e.destroy()}}typeof Symbol=="function"&&(kt.from=function(t,e){return ZT===void 0&&(ZT=pue()),ZT(kt,t,e)});function Que(t,e){for(var r=0,i=t.length;r{"use strict";vue.exports=Ja;var dQ=VA().codes,UVe=dQ.ERR_METHOD_NOT_IMPLEMENTED,HVe=dQ.ERR_MULTIPLE_CALLBACK,GVe=dQ.ERR_TRANSFORM_ALREADY_TRANSFORMING,jVe=dQ.ERR_TRANSFORM_WITH_LENGTH_0,CQ=Yc();_A()(Ja,CQ);function YVe(t,e){var r=this._transformState;r.transforming=!1;var i=r.writecb;if(i===null)return this.emit("error",new HVe);r.writechunk=null,r.writecb=null,e!=null&&this.push(e),i(t);var n=this._readableState;n.reading=!1,(n.needReadable||n.length{"use strict";xue.exports=om;var kue=nM();_A()(om,kue);function om(t){if(!(this instanceof om))return new om(t);kue.call(this,t)}om.prototype._transform=function(t,e,r){r(null,t)}});var Lue=E((DPt,Due)=>{"use strict";var sM;function JVe(t){var e=!1;return function(){e||(e=!0,t.apply(void 0,arguments))}}var Rue=VA().codes,WVe=Rue.ERR_MISSING_ARGS,zVe=Rue.ERR_STREAM_DESTROYED;function Fue(t){if(t)throw t}function VVe(t){return t.setHeader&&typeof t.abort=="function"}function _Ve(t,e,r,i){i=JVe(i);var n=!1;t.on("close",function(){n=!0}),sM===void 0&&(sM=cQ()),sM(t,{readable:e,writable:r},function(o){if(o)return i(o);n=!0,i()});var s=!1;return function(o){if(!n&&!s){if(s=!0,VVe(t))return t.abort();if(typeof t.destroy=="function")return t.destroy();i(o||new zVe("pipe"))}}}function Nue(t){t()}function XVe(t,e){return t.pipe(e)}function ZVe(t){return!t.length||typeof t[t.length-1]!="function"?Fue:t.pop()}function $Ve(){for(var t=arguments.length,e=new Array(t),r=0;r0;return _Ve(o,l,c,function(u){n||(n=u),u&&s.forEach(Nue),!l&&(s.forEach(Nue),i(n))})});return e.reduce(XVe)}Due.exports=$Ve});var bf=E((ys,am)=>{var Am=require("stream");process.env.READABLE_STREAM==="disable"&&Am?(am.exports=Am.Readable,Object.assign(am.exports,Am),am.exports.Stream=Am):(ys=am.exports=HT(),ys.Stream=Am||ys,ys.Readable=ys,ys.Writable=UT(),ys.Duplex=Yc(),ys.Transform=nM(),ys.PassThrough=Pue(),ys.finished=cQ(),ys.pipeline=Lue())});var Oue=E((RPt,Tue)=>{"use strict";var{Buffer:_s}=require("buffer"),Mue=Symbol.for("BufferList");function nr(t){if(!(this instanceof nr))return new nr(t);nr._init.call(this,t)}nr._init=function(e){Object.defineProperty(this,Mue,{value:!0}),this._bufs=[],this.length=0,e&&this.append(e)};nr.prototype._new=function(e){return new nr(e)};nr.prototype._offset=function(e){if(e===0)return[0,0];let r=0;for(let i=0;ithis.length||e<0)return;let r=this._offset(e);return this._bufs[r[0]][r[1]]};nr.prototype.slice=function(e,r){return typeof e=="number"&&e<0&&(e+=this.length),typeof r=="number"&&r<0&&(r+=this.length),this.copy(null,0,e,r)};nr.prototype.copy=function(e,r,i,n){if((typeof i!="number"||i<0)&&(i=0),(typeof n!="number"||n>this.length)&&(n=this.length),i>=this.length||n<=0)return e||_s.alloc(0);let s=!!e,o=this._offset(i),a=n-i,l=a,c=s&&r||0,u=o[1];if(i===0&&n===this.length){if(!s)return this._bufs.length===1?this._bufs[0]:_s.concat(this._bufs,this.length);for(let g=0;gf)this._bufs[g].copy(e,c,u),c+=f;else{this._bufs[g].copy(e,c,u,u+l),c+=f;break}l-=f,u&&(u=0)}return e.length>c?e.slice(0,c):e};nr.prototype.shallowSlice=function(e,r){if(e=e||0,r=typeof r!="number"?this.length:r,e<0&&(e+=this.length),r<0&&(r+=this.length),e===r)return this._new();let i=this._offset(e),n=this._offset(r),s=this._bufs.slice(i[0],n[0]+1);return n[1]===0?s.pop():s[s.length-1]=s[s.length-1].slice(0,n[1]),i[1]!==0&&(s[0]=s[0].slice(i[1])),this._new(s)};nr.prototype.toString=function(e,r,i){return this.slice(r,i).toString(e)};nr.prototype.consume=function(e){if(e=Math.trunc(e),Number.isNaN(e)||e<=0)return this;for(;this._bufs.length;)if(e>=this._bufs[0].length)e-=this._bufs[0].length,this.length-=this._bufs[0].length,this._bufs.shift();else{this._bufs[0]=this._bufs[0].slice(e),this.length-=e;break}return this};nr.prototype.duplicate=function(){let e=this._new();for(let r=0;rthis.length?this.length:e;let i=this._offset(e),n=i[0],s=i[1];for(;n=t.length){let l=o.indexOf(t,s);if(l!==-1)return this._reverseOffset([n,l]);s=o.length-t.length+1}else{let l=this._reverseOffset([n,s]);if(this._match(l,t))return l;s++}s=0}return-1};nr.prototype._match=function(t,e){if(this.length-t{"use strict";var oM=bf().Duplex,e7e=_A(),lm=Oue();function Oi(t){if(!(this instanceof Oi))return new Oi(t);if(typeof t=="function"){this._callback=t;let e=function(i){this._callback&&(this._callback(i),this._callback=null)}.bind(this);this.on("pipe",function(i){i.on("error",e)}),this.on("unpipe",function(i){i.removeListener("error",e)}),t=null}lm._init.call(this,t),oM.call(this)}e7e(Oi,oM);Object.assign(Oi.prototype,lm.prototype);Oi.prototype._new=function(e){return new Oi(e)};Oi.prototype._write=function(e,r,i){this._appendBuffer(e),typeof i=="function"&&i()};Oi.prototype._read=function(e){if(!this.length)return this.push(null);e=Math.min(e,this.length),this.push(this.slice(0,e)),this.consume(e)};Oi.prototype.end=function(e){oM.prototype.end.call(this,e),this._callback&&(this._callback(null,this.slice()),this._callback=null)};Oi.prototype._destroy=function(e,r){this._bufs.length=0,this.length=0,r(e)};Oi.prototype._isBufferList=function(e){return e instanceof Oi||e instanceof lm||Oi.isBufferList(e)};Oi.isBufferList=lm.isBufferList;mQ.exports=Oi;mQ.exports.BufferListStream=Oi;mQ.exports.BufferList=lm});var lM=E(vf=>{var t7e=Buffer.alloc,r7e="0000000000000000000",i7e="7777777777777777777",Uue="0".charCodeAt(0),Hue=Buffer.from("ustar\0","binary"),n7e=Buffer.from("00","binary"),s7e=Buffer.from("ustar ","binary"),o7e=Buffer.from(" \0","binary"),a7e=parseInt("7777",8),cm=257,aM=263,A7e=function(t,e,r){return typeof t!="number"?r:(t=~~t,t>=e?e:t>=0||(t+=e,t>=0)?t:0)},l7e=function(t){switch(t){case 0:return"file";case 1:return"link";case 2:return"symlink";case 3:return"character-device";case 4:return"block-device";case 5:return"directory";case 6:return"fifo";case 7:return"contiguous-file";case 72:return"pax-header";case 55:return"pax-global-header";case 27:return"gnu-long-link-path";case 28:case 30:return"gnu-long-path"}return null},c7e=function(t){switch(t){case"file":return 0;case"link":return 1;case"symlink":return 2;case"character-device":return 3;case"block-device":return 4;case"directory":return 5;case"fifo":return 6;case"contiguous-file":return 7;case"pax-header":return 72}return 0},Gue=function(t,e,r,i){for(;re?i7e.slice(0,e)+" ":r7e.slice(0,e-t.length)+t+" "};function u7e(t){var e;if(t[0]===128)e=!0;else if(t[0]===255)e=!1;else return null;for(var r=[],i=t.length-1;i>0;i--){var n=t[i];e?r.push(n):r.push(255-n)}var s=0,o=r.length;for(i=0;i=Math.pow(10,r)&&r++,e+r+t};vf.decodeLongPath=function(t,e){return Sf(t,0,t.length,e)};vf.encodePax=function(t){var e="";t.name&&(e+=AM(" path="+t.name+` -`)),t.linkname&&(e+=AM(" linkpath="+t.linkname+` -`));var r=t.pax;if(r)for(var i in r)e+=AM(" "+i+"="+r[i]+` -`);return Buffer.from(e)};vf.decodePax=function(t){for(var e={};t.length;){for(var r=0;r100;){var n=r.indexOf("/");if(n===-1)return null;i+=i?"/"+r.slice(0,n):r.slice(0,n),r=r.slice(n+1)}return Buffer.byteLength(r)>100||Buffer.byteLength(i)>155||t.linkname&&Buffer.byteLength(t.linkname)>100?null:(e.write(r),e.write(tl(t.mode&a7e,6),100),e.write(tl(t.uid,6),108),e.write(tl(t.gid,6),116),e.write(tl(t.size,11),124),e.write(tl(t.mtime.getTime()/1e3|0,11),136),e[156]=Uue+c7e(t.type),t.linkname&&e.write(t.linkname,157),Hue.copy(e,cm),n7e.copy(e,aM),t.uname&&e.write(t.uname,265),t.gname&&e.write(t.gname,297),e.write(tl(t.devmajor||0,6),329),e.write(tl(t.devminor||0,6),337),i&&e.write(i,345),e.write(tl(jue(e),6),148),e)};vf.decode=function(t,e,r){var i=t[156]===0?0:t[156]-Uue,n=Sf(t,0,100,e),s=rl(t,100,8),o=rl(t,108,8),a=rl(t,116,8),l=rl(t,124,12),c=rl(t,136,12),u=l7e(i),g=t[157]===0?null:Sf(t,157,100,e),f=Sf(t,265,32),h=Sf(t,297,32),p=rl(t,329,8),d=rl(t,337,8),m=jue(t);if(m===8*32)return null;if(m!==rl(t,148,8))throw new Error("Invalid tar header. Maybe the tar is corrupted or it needs to be gunzipped?");if(Hue.compare(t,cm,cm+6)===0)t[345]&&(n=Sf(t,345,155,e)+"/"+n);else if(!(s7e.compare(t,cm,cm+6)===0&&o7e.compare(t,aM,aM+2)===0)){if(!r)throw new Error("Invalid tar header: unknown format.")}return i===0&&n&&n[n.length-1]==="/"&&(i=5),{name:n,mode:s,uid:o,gid:a,size:l,mtime:new Date(1e3*c),type:u,linkname:g,uname:f,gname:h,devmajor:p,devminor:d}}});var _ue=E((LPt,Yue)=>{var que=require("util"),g7e=Kue(),um=lM(),Jue=bf().Writable,Wue=bf().PassThrough,zue=function(){},Vue=function(t){return t&=511,t&&512-t},f7e=function(t,e){var r=new EQ(t,e);return r.end(),r},h7e=function(t,e){return e.path&&(t.name=e.path),e.linkpath&&(t.linkname=e.linkpath),e.size&&(t.size=parseInt(e.size,10)),t.pax=e,t},EQ=function(t,e){this._parent=t,this.offset=e,Wue.call(this,{autoDestroy:!1})};que.inherits(EQ,Wue);EQ.prototype.destroy=function(t){this._parent.destroy(t)};var Wa=function(t){if(!(this instanceof Wa))return new Wa(t);Jue.call(this,t),t=t||{},this._offset=0,this._buffer=g7e(),this._missing=0,this._partial=!1,this._onparse=zue,this._header=null,this._stream=null,this._overflow=null,this._cb=null,this._locked=!1,this._destroyed=!1,this._pax=null,this._paxGlobal=null,this._gnuLongPath=null,this._gnuLongLinkPath=null;var e=this,r=e._buffer,i=function(){e._continue()},n=function(f){if(e._locked=!1,f)return e.destroy(f);e._stream||i()},s=function(){e._stream=null;var f=Vue(e._header.size);f?e._parse(f,o):e._parse(512,g),e._locked||i()},o=function(){e._buffer.consume(Vue(e._header.size)),e._parse(512,g),i()},a=function(){var f=e._header.size;e._paxGlobal=um.decodePax(r.slice(0,f)),r.consume(f),s()},l=function(){var f=e._header.size;e._pax=um.decodePax(r.slice(0,f)),e._paxGlobal&&(e._pax=Object.assign({},e._paxGlobal,e._pax)),r.consume(f),s()},c=function(){var f=e._header.size;this._gnuLongPath=um.decodeLongPath(r.slice(0,f),t.filenameEncoding),r.consume(f),s()},u=function(){var f=e._header.size;this._gnuLongLinkPath=um.decodeLongPath(r.slice(0,f),t.filenameEncoding),r.consume(f),s()},g=function(){var f=e._offset,h;try{h=e._header=um.decode(r.slice(0,512),t.filenameEncoding,t.allowUnknownFormat)}catch(p){e.emit("error",p)}if(r.consume(512),!h){e._parse(512,g),i();return}if(h.type==="gnu-long-path"){e._parse(h.size,c),i();return}if(h.type==="gnu-long-link-path"){e._parse(h.size,u),i();return}if(h.type==="pax-global-header"){e._parse(h.size,a),i();return}if(h.type==="pax-header"){e._parse(h.size,l),i();return}if(e._gnuLongPath&&(h.name=e._gnuLongPath,e._gnuLongPath=null),e._gnuLongLinkPath&&(h.linkname=e._gnuLongLinkPath,e._gnuLongLinkPath=null),e._pax&&(e._header=h=h7e(h,e._pax),e._pax=null),e._locked=!0,!h.size||h.type==="directory"){e._parse(512,g),e.emit("entry",h,f7e(e,f),n);return}e._stream=new EQ(e,f),e.emit("entry",h,e._stream,n),e._parse(h.size,s),i()};this._onheader=g,this._parse(512,g)};que.inherits(Wa,Jue);Wa.prototype.destroy=function(t){this._destroyed||(this._destroyed=!0,t&&this.emit("error",t),this.emit("close"),this._stream&&this._stream.emit("close"))};Wa.prototype._parse=function(t,e){this._destroyed||(this._offset+=t,this._missing=t,e===this._onheader&&(this._partial=!1),this._onparse=e)};Wa.prototype._continue=function(){if(!this._destroyed){var t=this._cb;this._cb=zue,this._overflow?this._write(this._overflow,void 0,t):t()}};Wa.prototype._write=function(t,e,r){if(!this._destroyed){var i=this._stream,n=this._buffer,s=this._missing;if(t.length&&(this._partial=!0),t.lengths&&(o=t.slice(s),t=t.slice(0,s)),i?i.end(t):n.append(t),this._overflow=o,this._onparse()}};Wa.prototype._final=function(t){if(this._partial)return this.destroy(new Error("Unexpected end of data"));t()};Yue.exports=Wa});var Zue=E((TPt,Xue)=>{Xue.exports=require("fs").constants||require("constants")});var ige=E((MPt,$ue)=>{var xf=Zue(),ege=tk(),IQ=_A(),p7e=Buffer.alloc,tge=bf().Readable,kf=bf().Writable,d7e=require("string_decoder").StringDecoder,yQ=lM(),C7e=parseInt("755",8),m7e=parseInt("644",8),rge=p7e(1024),cM=function(){},uM=function(t,e){e&=511,e&&t.push(rge.slice(0,512-e))};function E7e(t){switch(t&xf.S_IFMT){case xf.S_IFBLK:return"block-device";case xf.S_IFCHR:return"character-device";case xf.S_IFDIR:return"directory";case xf.S_IFIFO:return"fifo";case xf.S_IFLNK:return"symlink"}return"file"}var wQ=function(t){kf.call(this),this.written=0,this._to=t,this._destroyed=!1};IQ(wQ,kf);wQ.prototype._write=function(t,e,r){if(this.written+=t.length,this._to.push(t))return r();this._to._drain=r};wQ.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit("close"))};var BQ=function(){kf.call(this),this.linkname="",this._decoder=new d7e("utf-8"),this._destroyed=!1};IQ(BQ,kf);BQ.prototype._write=function(t,e,r){this.linkname+=this._decoder.write(t),r()};BQ.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit("close"))};var gm=function(){kf.call(this),this._destroyed=!1};IQ(gm,kf);gm.prototype._write=function(t,e,r){r(new Error("No body allowed for this entry"))};gm.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit("close"))};var Oo=function(t){if(!(this instanceof Oo))return new Oo(t);tge.call(this,t),this._drain=cM,this._finalized=!1,this._finalizing=!1,this._destroyed=!1,this._stream=null};IQ(Oo,tge);Oo.prototype.entry=function(t,e,r){if(this._stream)throw new Error("already piping an entry");if(!(this._finalized||this._destroyed)){typeof e=="function"&&(r=e,e=null),r||(r=cM);var i=this;if((!t.size||t.type==="symlink")&&(t.size=0),t.type||(t.type=E7e(t.mode)),t.mode||(t.mode=t.type==="directory"?C7e:m7e),t.uid||(t.uid=0),t.gid||(t.gid=0),t.mtime||(t.mtime=new Date),typeof e=="string"&&(e=Buffer.from(e)),Buffer.isBuffer(e)){t.size=e.length,this._encode(t);var n=this.push(e);return uM(i,t.size),n?process.nextTick(r):this._drain=r,new gm}if(t.type==="symlink"&&!t.linkname){var s=new BQ;return ege(s,function(a){if(a)return i.destroy(),r(a);t.linkname=s.linkname,i._encode(t),r()}),s}if(this._encode(t),t.type!=="file"&&t.type!=="contiguous-file")return process.nextTick(r),new gm;var o=new wQ(this);return this._stream=o,ege(o,function(a){if(i._stream=null,a)return i.destroy(),r(a);if(o.written!==t.size)return i.destroy(),r(new Error("size mismatch"));uM(i,t.size),i._finalizing&&i.finalize(),r()}),o}};Oo.prototype.finalize=function(){if(this._stream){this._finalizing=!0;return}this._finalized||(this._finalized=!0,this.push(rge),this.push(null))};Oo.prototype.destroy=function(t){this._destroyed||(this._destroyed=!0,t&&this.emit("error",t),this.emit("close"),this._stream&&this._stream.destroy&&this._stream.destroy())};Oo.prototype._encode=function(t){if(!t.pax){var e=yQ.encode(t);if(e){this.push(e);return}}this._encodePax(t)};Oo.prototype._encodePax=function(t){var e=yQ.encodePax({name:t.name,linkname:t.linkname,pax:t.pax}),r={name:"PaxHeader",mode:t.mode,uid:t.uid,gid:t.gid,size:e.length,mtime:t.mtime,type:"pax-header",linkname:t.linkname&&"PaxHeader",uname:t.uname,gname:t.gname,devmajor:t.devmajor,devminor:t.devminor};this.push(yQ.encode(r)),this.push(e),uM(this,e.length),r.size=t.size,r.type=t.type,this.push(yQ.encode(r))};Oo.prototype._read=function(t){var e=this._drain;this._drain=cM,e()};$ue.exports=Oo});var nge=E(gM=>{gM.extract=_ue();gM.pack=ige()});var Cge=E((oDt,fge)=>{"use strict";var Pf=class{constructor(e,r,i){this.__specs=e||{},Object.keys(this.__specs).forEach(n=>{if(typeof this.__specs[n]=="string"){let s=this.__specs[n],o=this.__specs[s];if(o){let a=o.aliases||[];a.push(n,s),o.aliases=[...new Set(a)],this.__specs[n]=o}else throw new Error(`Alias refers to invalid key: ${s} -> ${n}`)}}),this.__opts=r||{},this.__providers=pge(i.filter(n=>n!=null&&typeof n=="object")),this.__isFiggyPudding=!0}get(e){return mM(this,e,!0)}get[Symbol.toStringTag](){return"FiggyPudding"}forEach(e,r=this){for(let[i,n]of this.entries())e.call(r,n,i,this)}toJSON(){let e={};return this.forEach((r,i)=>{e[i]=r}),e}*entries(e){for(let i of Object.keys(this.__specs))yield[i,this.get(i)];let r=e||this.__opts.other;if(r){let i=new Set;for(let n of this.__providers){let s=n.entries?n.entries(r):R7e(n);for(let[o,a]of s)r(o)&&!i.has(o)&&(i.add(o),yield[o,a])}}}*[Symbol.iterator](){for(let[e,r]of this.entries())yield[e,r]}*keys(){for(let[e]of this.entries())yield e}*values(){for(let[,e]of this.entries())yield e}concat(...e){return new Proxy(new Pf(this.__specs,this.__opts,pge(this.__providers).concat(e)),hge)}};try{let t=require("util");Pf.prototype[t.inspect.custom]=function(e,r){return this[Symbol.toStringTag]+" "+t.inspect(this.toJSON(),r)}}catch(t){}function F7e(t){throw Object.assign(new Error(`invalid config key requested: ${t}`),{code:"EBADKEY"})}function mM(t,e,r){let i=t.__specs[e];if(r&&!i&&(!t.__opts.other||!t.__opts.other(e)))F7e(e);else{i||(i={});let n;for(let s of t.__providers){if(n=dge(e,s),n===void 0&&i.aliases&&i.aliases.length){for(let o of i.aliases)if(o!==e&&(n=dge(o,s),n!==void 0))break}if(n!==void 0)break}return n===void 0&&i.default!==void 0?typeof i.default=="function"?i.default(t):i.default:n}}function dge(t,e){let r;return e.__isFiggyPudding?r=mM(e,t,!1):typeof e.get=="function"?r=e.get(t):r=e[t],r}var hge={has(t,e){return e in t.__specs&&mM(t,e,!1)!==void 0},ownKeys(t){return Object.keys(t.__specs)},get(t,e){return typeof e=="symbol"||e.slice(0,2)==="__"||e in Pf.prototype?t[e]:t.get(e)},set(t,e,r){if(typeof e=="symbol"||e.slice(0,2)==="__")return t[e]=r,!0;throw new Error("figgyPudding options cannot be modified. Use .concat() instead.")},deleteProperty(){throw new Error("figgyPudding options cannot be deleted. Use .concat() and shadow them instead.")}};fge.exports=N7e;function N7e(t,e){function r(...i){return new Proxy(new Pf(t,e,i),hge)}return r}function pge(t){let e=[];return t.forEach(r=>e.unshift(r)),e}function R7e(t){return Object.keys(t).map(e=>[e,t[e]])}});var Ige=E((aDt,Ko)=>{"use strict";var hm=require("crypto"),L7e=Cge(),T7e=require("stream").Transform,mge=["sha256","sha384","sha512"],M7e=/^[a-z0-9+/]+(?:=?=?)$/i,O7e=/^([^-]+)-([^?]+)([?\S*]*)$/,K7e=/^([^-]+)-([A-Za-z0-9+/=]{44,88})(\?[\x21-\x7E]*)*$/,U7e=/^[\x21-\x7E]+$/,on=L7e({algorithms:{default:["sha512"]},error:{default:!1},integrity:{},options:{default:[]},pickAlgorithm:{default:()=>H7e},Promise:{default:()=>Promise},sep:{default:" "},single:{default:!1},size:{},strict:{default:!1}}),zc=class{get isHash(){return!0}constructor(e,r){r=on(r);let i=!!r.strict;this.source=e.trim();let n=this.source.match(i?K7e:O7e);if(!n||i&&!mge.some(o=>o===n[1]))return;this.algorithm=n[1],this.digest=n[2];let s=n[3];this.options=s?s.slice(1).split("?"):[]}hexDigest(){return this.digest&&Buffer.from(this.digest,"base64").toString("hex")}toJSON(){return this.toString()}toString(e){if(e=on(e),e.strict&&!(mge.some(i=>i===this.algorithm)&&this.digest.match(M7e)&&(this.options||[]).every(i=>i.match(U7e))))return"";let r=this.options&&this.options.length?`?${this.options.join("?")}`:"";return`${this.algorithm}-${this.digest}${r}`}},Df=class{get isIntegrity(){return!0}toJSON(){return this.toString()}toString(e){e=on(e);let r=e.sep||" ";return e.strict&&(r=r.replace(/\S+/g," ")),Object.keys(this).map(i=>this[i].map(n=>zc.prototype.toString.call(n,e)).filter(n=>n.length).join(r)).filter(i=>i.length).join(r)}concat(e,r){r=on(r);let i=typeof e=="string"?e:pm(e,r);return Uo(`${this.toString(r)} ${i}`,r)}hexDigest(){return Uo(this,{single:!0}).hexDigest()}match(e,r){r=on(r);let i=Uo(e,r),n=i.pickAlgorithm(r);return this[n]&&i[n]&&this[n].find(s=>i[n].find(o=>s.digest===o.digest))||!1}pickAlgorithm(e){e=on(e);let r=e.pickAlgorithm,i=Object.keys(this);if(!i.length)throw new Error(`No algorithms available for ${JSON.stringify(this.toString())}`);return i.reduce((n,s)=>r(n,s)||n)}};Ko.exports.parse=Uo;function Uo(t,e){if(e=on(e),typeof t=="string")return EM(t,e);if(t.algorithm&&t.digest){let r=new Df;return r[t.algorithm]=[t],EM(pm(r,e),e)}else return EM(pm(t,e),e)}function EM(t,e){return e.single?new zc(t,e):t.trim().split(/\s+/).reduce((r,i)=>{let n=new zc(i,e);if(n.algorithm&&n.digest){let s=n.algorithm;r[s]||(r[s]=[]),r[s].push(n)}return r},new Df)}Ko.exports.stringify=pm;function pm(t,e){return e=on(e),t.algorithm&&t.digest?zc.prototype.toString.call(t,e):typeof t=="string"?pm(Uo(t,e),e):Df.prototype.toString.call(t,e)}Ko.exports.fromHex=G7e;function G7e(t,e,r){r=on(r);let i=r.options&&r.options.length?`?${r.options.join("?")}`:"";return Uo(`${e}-${Buffer.from(t,"hex").toString("base64")}${i}`,r)}Ko.exports.fromData=j7e;function j7e(t,e){e=on(e);let r=e.algorithms,i=e.options&&e.options.length?`?${e.options.join("?")}`:"";return r.reduce((n,s)=>{let o=hm.createHash(s).update(t).digest("base64"),a=new zc(`${s}-${o}${i}`,e);if(a.algorithm&&a.digest){let l=a.algorithm;n[l]||(n[l]=[]),n[l].push(a)}return n},new Df)}Ko.exports.fromStream=Y7e;function Y7e(t,e){e=on(e);let r=e.Promise||Promise,i=IM(e);return new r((n,s)=>{t.pipe(i),t.on("error",s),i.on("error",s);let o;i.on("integrity",a=>{o=a}),i.on("end",()=>n(o)),i.on("data",()=>{})})}Ko.exports.checkData=q7e;function q7e(t,e,r){if(r=on(r),e=Uo(e,r),!Object.keys(e).length){if(r.error)throw Object.assign(new Error("No valid integrity hashes to check against"),{code:"EINTEGRITY"});return!1}let i=e.pickAlgorithm(r),n=hm.createHash(i).update(t).digest("base64"),s=Uo({algorithm:i,digest:n}),o=s.match(e,r);if(o||!r.error)return o;if(typeof r.size=="number"&&t.length!==r.size){let a=new Error(`data size mismatch when checking ${e}. - Wanted: ${r.size} - Found: ${t.length}`);throw a.code="EBADSIZE",a.found=t.length,a.expected=r.size,a.sri=e,a}else{let a=new Error(`Integrity checksum failed when using ${i}: Wanted ${e}, but got ${s}. (${t.length} bytes)`);throw a.code="EINTEGRITY",a.found=s,a.expected=e,a.algorithm=i,a.sri=e,a}}Ko.exports.checkStream=J7e;function J7e(t,e,r){r=on(r);let i=r.Promise||Promise,n=IM(r.concat({integrity:e}));return new i((s,o)=>{t.pipe(n),t.on("error",o),n.on("error",o);let a;n.on("verified",l=>{a=l}),n.on("end",()=>s(a)),n.on("data",()=>{})})}Ko.exports.integrityStream=IM;function IM(t){t=on(t);let e=t.integrity&&Uo(t.integrity,t),r=e&&Object.keys(e).length,i=r&&e.pickAlgorithm(t),n=r&&e[i],s=Array.from(new Set(t.algorithms.concat(i?[i]:[]))),o=s.map(hm.createHash),a=0,l=new T7e({transform(c,u,g){a+=c.length,o.forEach(f=>f.update(c,u)),g(null,c,u)}}).on("end",()=>{let c=t.options&&t.options.length?`?${t.options.join("?")}`:"",u=Uo(o.map((f,h)=>`${s[h]}-${f.digest("base64")}${c}`).join(" "),t),g=r&&u.match(e,t);if(typeof t.size=="number"&&a!==t.size){let f=new Error(`stream size mismatch when checking ${e}. - Wanted: ${t.size} - Found: ${a}`);f.code="EBADSIZE",f.found=a,f.expected=t.size,f.sri=e,l.emit("error",f)}else if(t.integrity&&!g){let f=new Error(`${e} integrity checksum failed when using ${i}: wanted ${n} but got ${u}. (${a} bytes)`);f.code="EINTEGRITY",f.found=u,f.expected=n,f.algorithm=i,f.sri=e,l.emit("error",f)}else l.emit("size",a),l.emit("integrity",u),g&&l.emit("verified",g)});return l}Ko.exports.create=W7e;function W7e(t){t=on(t);let e=t.algorithms,r=t.options.length?`?${t.options.join("?")}`:"",i=e.map(hm.createHash);return{update:function(n,s){return i.forEach(o=>o.update(n,s)),this},digest:function(n){return e.reduce((o,a)=>{let l=i.shift().digest("base64"),c=new zc(`${a}-${l}${r}`,t);if(c.algorithm&&c.digest){let u=c.algorithm;o[u]||(o[u]=[]),o[u].push(c)}return o},new Df)}}}var z7e=new Set(hm.getHashes()),Ege=["md5","whirlpool","sha1","sha224","sha256","sha384","sha512","sha3","sha3-256","sha3-384","sha3-512","sha3_256","sha3_384","sha3_512"].filter(t=>z7e.has(t));function H7e(t,e){return Ege.indexOf(t.toLowerCase())>=Ege.indexOf(e.toLowerCase())?t:e}});var Fd={};it(Fd,{BuildType:()=>Gn,Cache:()=>Qt,Configuration:()=>fe,DEFAULT_LOCK_FILENAME:()=>DR,DEFAULT_RC_FILENAME:()=>PR,FormatType:()=>ps,InstallMode:()=>li,LightReport:()=>Fa,LinkType:()=>gt,Manifest:()=>Ze,MessageName:()=>z,PackageExtensionStatus:()=>ki,PackageExtensionType:()=>oi,Project:()=>Ke,ProjectLookup:()=>KA,Report:()=>Xi,ReportError:()=>nt,SettingsType:()=>ge,StreamReport:()=>Fe,TAG_REGEXP:()=>Rg,TelemetryManager:()=>Rd,ThrowReport:()=>ei,VirtualFetcher:()=>dd,Workspace:()=>Dd,WorkspaceResolver:()=>Yr,YarnVersion:()=>Zr,execUtils:()=>hr,folderUtils:()=>Pb,formatUtils:()=>ue,hashUtils:()=>mn,httpUtils:()=>Zt,miscUtils:()=>de,scriptUtils:()=>Kt,semverUtils:()=>qt,structUtils:()=>S,tgzUtils:()=>Ai,treeUtils:()=>Hs});var hr={};it(hr,{EndStrategy:()=>Pn,execvp:()=>Nhe,pipevp:()=>to});var ch={};it(ch,{AliasFS:()=>Xo,CwdFS:()=>Ft,DEFAULT_COMPRESSION_LEVEL:()=>pl,FakeFS:()=>eA,Filename:()=>wt,JailFS:()=>Zo,LazyFS:()=>oh,LinkStrategy:()=>eh,NoFS:()=>bE,NodeFS:()=>Wt,PortablePath:()=>Se,PosixFS:()=>ah,ProxiedFS:()=>fi,VirtualFS:()=>Pr,ZipFS:()=>Jr,ZipOpenFS:()=>Jn,constants:()=>mr,extendFs:()=>SE,normalizeLineEndings:()=>ul,npath:()=>M,opendir:()=>wE,patchFs:()=>pb,ppath:()=>v,statUtils:()=>rb,toFilename:()=>kr,xfs:()=>T});var mr={};it(mr,{SAFE_TIME:()=>tb,S_IFDIR:()=>zo,S_IFLNK:()=>_o,S_IFMT:()=>kn,S_IFREG:()=>Vo});var kn=61440,zo=16384,Vo=32768,_o=40960,tb=456789e3;var rb={};it(rb,{BigIntStatsEntry:()=>Xf,DEFAULT_MODE:()=>_f,DirEntry:()=>uO,StatEntry:()=>Za,areStatsEqual:()=>nb,clearStats:()=>pE,convertToBigIntStats:()=>dE,makeDefaultStats:()=>Zf,makeEmptyStats:()=>Jfe});var ib=ie(require("util"));var _f=Vo|420,uO=class{constructor(){this.name="";this.mode=0}isBlockDevice(){return!1}isCharacterDevice(){return!1}isDirectory(){return(this.mode&kn)===zo}isFIFO(){return!1}isFile(){return(this.mode&kn)===Vo}isSocket(){return!1}isSymbolicLink(){return(this.mode&kn)===_o}},Za=class{constructor(){this.uid=0;this.gid=0;this.size=0;this.blksize=0;this.atimeMs=0;this.mtimeMs=0;this.ctimeMs=0;this.birthtimeMs=0;this.atime=new Date(0);this.mtime=new Date(0);this.ctime=new Date(0);this.birthtime=new Date(0);this.dev=0;this.ino=0;this.mode=_f;this.nlink=1;this.rdev=0;this.blocks=1}isBlockDevice(){return!1}isCharacterDevice(){return!1}isDirectory(){return(this.mode&kn)===zo}isFIFO(){return!1}isFile(){return(this.mode&kn)===Vo}isSocket(){return!1}isSymbolicLink(){return(this.mode&kn)===_o}},Xf=class{constructor(){this.uid=BigInt(0);this.gid=BigInt(0);this.size=BigInt(0);this.blksize=BigInt(0);this.atimeMs=BigInt(0);this.mtimeMs=BigInt(0);this.ctimeMs=BigInt(0);this.birthtimeMs=BigInt(0);this.atimeNs=BigInt(0);this.mtimeNs=BigInt(0);this.ctimeNs=BigInt(0);this.birthtimeNs=BigInt(0);this.atime=new Date(0);this.mtime=new Date(0);this.ctime=new Date(0);this.birthtime=new Date(0);this.dev=BigInt(0);this.ino=BigInt(0);this.mode=BigInt(_f);this.nlink=BigInt(1);this.rdev=BigInt(0);this.blocks=BigInt(1)}isBlockDevice(){return!1}isCharacterDevice(){return!1}isDirectory(){return(this.mode&BigInt(kn))===BigInt(zo)}isFIFO(){return!1}isFile(){return(this.mode&BigInt(kn))===BigInt(Vo)}isSocket(){return!1}isSymbolicLink(){return(this.mode&BigInt(kn))===BigInt(_o)}};function Zf(){return new Za}function Jfe(){return pE(Zf())}function pE(t){for(let e in t)if(Object.prototype.hasOwnProperty.call(t,e)){let r=t[e];typeof r=="number"?t[e]=0:typeof r=="bigint"?t[e]=BigInt(0):ib.types.isDate(r)&&(t[e]=new Date(0))}return t}function dE(t){let e=new Xf;for(let r in t)if(Object.prototype.hasOwnProperty.call(t,r)){let i=t[r];typeof i=="number"?e[r]=BigInt(i):ib.types.isDate(i)&&(e[r]=new Date(i))}return e.atimeNs=e.atimeMs*BigInt(1e6),e.mtimeNs=e.mtimeMs*BigInt(1e6),e.ctimeNs=e.ctimeMs*BigInt(1e6),e.birthtimeNs=e.birthtimeMs*BigInt(1e6),e}function nb(t,e){if(t.atimeMs!==e.atimeMs||t.birthtimeMs!==e.birthtimeMs||t.blksize!==e.blksize||t.blocks!==e.blocks||t.ctimeMs!==e.ctimeMs||t.dev!==e.dev||t.gid!==e.gid||t.ino!==e.ino||t.isBlockDevice()!==e.isBlockDevice()||t.isCharacterDevice()!==e.isCharacterDevice()||t.isDirectory()!==e.isDirectory()||t.isFIFO()!==e.isFIFO()||t.isFile()!==e.isFile()||t.isSocket()!==e.isSocket()||t.isSymbolicLink()!==e.isSymbolicLink()||t.mode!==e.mode||t.mtimeMs!==e.mtimeMs||t.nlink!==e.nlink||t.rdev!==e.rdev||t.size!==e.size||t.uid!==e.uid)return!1;let r=t,i=e;return!(r.atimeNs!==i.atimeNs||r.mtimeNs!==i.mtimeNs||r.ctimeNs!==i.ctimeNs||r.birthtimeNs!==i.birthtimeNs)}var mE=ie(require("fs"));var $f=ie(require("path")),gO;(function(i){i[i.File=0]="File",i[i.Portable=1]="Portable",i[i.Native=2]="Native"})(gO||(gO={}));var Se={root:"/",dot:"."},wt={nodeModules:"node_modules",manifest:"package.json",lockfile:"yarn.lock",virtual:"__virtual__",pnpJs:".pnp.js",pnpCjs:".pnp.cjs",rc:".yarnrc.yml"},M=Object.create($f.default),v=Object.create($f.default.posix);M.cwd=()=>process.cwd();v.cwd=()=>sb(process.cwd());v.resolve=(...t)=>t.length>0&&v.isAbsolute(t[0])?$f.default.posix.resolve(...t):$f.default.posix.resolve(v.cwd(),...t);var fO=function(t,e,r){return e=t.normalize(e),r=t.normalize(r),e===r?".":(e.endsWith(t.sep)||(e=e+t.sep),r.startsWith(e)?r.slice(e.length):null)};M.fromPortablePath=hO;M.toPortablePath=sb;M.contains=(t,e)=>fO(M,t,e);v.contains=(t,e)=>fO(v,t,e);var Wfe=/^([a-zA-Z]:.*)$/,zfe=/^\\\\(\.\\)?(.*)$/,Vfe=/^\/([a-zA-Z]:.*)$/,_fe=/^\/unc\/(\.dot\/)?(.*)$/;function hO(t){if(process.platform!=="win32")return t;let e,r;if(e=t.match(Vfe))t=e[1];else if(r=t.match(_fe))t=`\\\\${r[1]?".\\":""}${r[2]}`;else return t;return t.replace(/\//g,"\\")}function sb(t){if(process.platform!=="win32")return t;let e,r;return(e=t.match(Wfe))?t=`/${e[1]}`:(r=t.match(zfe))&&(t=`/unc/${r[1]?".dot/":""}${r[2]}`),t.replace(/\\/g,"/")}function CE(t,e){return t===M?hO(e):sb(e)}function kr(t){if(M.parse(t).dir!==""||v.parse(t).dir!=="")throw new Error(`Invalid filename: "${t}"`);return t}var EE=new Date(tb*1e3),eh;(function(r){r.Allow="allow",r.ReadOnly="readOnly"})(eh||(eh={}));async function pO(t,e,r,i,n){let s=t.pathUtils.normalize(e),o=r.pathUtils.normalize(i),a=[],l=[],c=n.stableTime?{mtime:EE,atime:EE}:await r.lstatPromise(o);await t.mkdirpPromise(t.pathUtils.dirname(e),{utimes:[c.atime,c.mtime]});let u=typeof t.lutimesPromise=="function"?t.lutimesPromise.bind(t):t.utimesPromise.bind(t);await ob(a,l,u,t,s,r,o,n);for(let g of a)await g();await Promise.all(l.map(g=>g()))}async function ob(t,e,r,i,n,s,o,a){var f,h;let l=await Xfe(i,n),c=await s.lstatPromise(o),u=a.stableTime?{mtime:EE,atime:EE}:c,g;switch(!0){case c.isDirectory():g=await Zfe(t,e,r,i,n,l,s,o,c,a);break;case c.isFile():g=await $fe(t,e,r,i,n,l,s,o,c,a);break;case c.isSymbolicLink():g=await ehe(t,e,r,i,n,l,s,o,c,a);break;default:throw new Error(`Unsupported file type (${c.mode})`)}return(g||((f=l==null?void 0:l.mtime)==null?void 0:f.getTime())!==u.mtime.getTime()||((h=l==null?void 0:l.atime)==null?void 0:h.getTime())!==u.atime.getTime())&&(e.push(()=>r(n,u.atime,u.mtime)),g=!0),(l===null||(l.mode&511)!=(c.mode&511))&&(e.push(()=>i.chmodPromise(n,c.mode&511)),g=!0),g}async function Xfe(t,e){try{return await t.lstatPromise(e)}catch(r){return null}}async function Zfe(t,e,r,i,n,s,o,a,l,c){if(s!==null&&!s.isDirectory())if(c.overwrite)t.push(async()=>i.removePromise(n)),s=null;else return!1;let u=!1;s===null&&(t.push(async()=>{try{await i.mkdirPromise(n,{mode:l.mode})}catch(f){if(f.code!=="EEXIST")throw f}}),u=!0);let g=await o.readdirPromise(a);if(c.stableSort)for(let f of g.sort())await ob(t,e,r,i,i.pathUtils.join(n,f),o,o.pathUtils.join(a,f),c)&&(u=!0);else(await Promise.all(g.map(async h=>{await ob(t,e,r,i,i.pathUtils.join(n,h),o,o.pathUtils.join(a,h),c)}))).some(h=>h)&&(u=!0);return u}var ab=new WeakMap;function Ab(t,e,r,i,n){return async()=>{await t.linkPromise(r,e),n===eh.ReadOnly&&(i.mode&=~146,await t.chmodPromise(e,i.mode))}}function the(t,e,r,i,n){let s=ab.get(t);return typeof s=="undefined"?async()=>{try{await t.copyFilePromise(r,e,mE.default.constants.COPYFILE_FICLONE_FORCE),ab.set(t,!0)}catch(o){if(o.code==="ENOSYS"||o.code==="ENOTSUP")ab.set(t,!1),await Ab(t,e,r,i,n)();else throw o}}:s?async()=>t.copyFilePromise(r,e,mE.default.constants.COPYFILE_FICLONE_FORCE):Ab(t,e,r,i,n)}async function $fe(t,e,r,i,n,s,o,a,l,c){var f;if(s!==null)if(c.overwrite)t.push(async()=>i.removePromise(n)),s=null;else return!1;let u=(f=c.linkStrategy)!=null?f:null,g=i===o?u!==null?the(i,n,a,l,u):async()=>i.copyFilePromise(a,n,mE.default.constants.COPYFILE_FICLONE):u!==null?Ab(i,n,a,l,u):async()=>i.writeFilePromise(n,await o.readFilePromise(a));return t.push(async()=>g()),!0}async function ehe(t,e,r,i,n,s,o,a,l,c){if(s!==null)if(c.overwrite)t.push(async()=>i.removePromise(n)),s=null;else return!1;return t.push(async()=>{await i.symlinkPromise(CE(i.pathUtils,await o.readlinkPromise(a)),n)}),!0}function qn(t,e){return Object.assign(new Error(`${t}: ${e}`),{code:t})}function IE(t){return qn("EBUSY",t)}function th(t,e){return qn("ENOSYS",`${t}, ${e}`)}function $a(t){return qn("EINVAL",`invalid argument, ${t}`)}function Hi(t){return qn("EBADF",`bad file descriptor, ${t}`)}function bs(t){return qn("ENOENT",`no such file or directory, ${t}`)}function eo(t){return qn("ENOTDIR",`not a directory, ${t}`)}function rh(t){return qn("EISDIR",`illegal operation on a directory, ${t}`)}function yE(t){return qn("EEXIST",`file already exists, ${t}`)}function ln(t){return qn("EROFS",`read-only filesystem, ${t}`)}function dO(t){return qn("ENOTEMPTY",`directory not empty, ${t}`)}function CO(t){return qn("EOPNOTSUPP",`operation not supported, ${t}`)}function mO(){return qn("ERR_DIR_CLOSED","Directory handle was closed")}var lb=class extends Error{constructor(e,r){super(e);this.name="Libzip Error",this.code=r}};var EO=class{constructor(e,r,i={}){this.path=e;this.nextDirent=r;this.opts=i;this.closed=!1}throwIfClosed(){if(this.closed)throw mO()}async*[Symbol.asyncIterator](){try{let e;for(;(e=await this.read())!==null;)yield e}finally{await this.close()}}read(e){let r=this.readSync();return typeof e!="undefined"?e(null,r):Promise.resolve(r)}readSync(){return this.throwIfClosed(),this.nextDirent()}close(e){return this.closeSync(),typeof e!="undefined"?e(null):Promise.resolve()}closeSync(){var e,r;this.throwIfClosed(),(r=(e=this.opts).onClose)==null||r.call(e),this.closed=!0}};function wE(t,e,r,i){let n=()=>{let s=r.shift();return typeof s=="undefined"?null:Object.assign(t.statSync(t.pathUtils.join(e,s)),{name:s})};return new EO(e,n,i)}var IO=ie(require("os"));var eA=class{constructor(e){this.pathUtils=e}async*genTraversePromise(e,{stableSort:r=!1}={}){let i=[e];for(;i.length>0;){let n=i.shift();if((await this.lstatPromise(n)).isDirectory()){let o=await this.readdirPromise(n);if(r)for(let a of o.sort())i.push(this.pathUtils.join(n,a));else throw new Error("Not supported")}else yield n}}async removePromise(e,{recursive:r=!0,maxRetries:i=5}={}){let n;try{n=await this.lstatPromise(e)}catch(s){if(s.code==="ENOENT")return;throw s}if(n.isDirectory()){if(r){let o=await this.readdirPromise(e);await Promise.all(o.map(a=>this.removePromise(this.pathUtils.resolve(e,a))))}let s=0;do try{await this.rmdirPromise(e);break}catch(o){if(o.code==="EBUSY"||o.code==="ENOTEMPTY"){if(i===0)break;await new Promise(a=>setTimeout(a,s*100));continue}else throw o}while(s++{let l;try{[l]=await this.readJsonPromise(i)}catch(c){return Date.now()-s<500}try{return process.kill(l,0),!0}catch(c){return!1}};for(;o===null;)try{o=await this.openPromise(i,"wx")}catch(l){if(l.code==="EEXIST"){if(!await a())try{await this.unlinkPromise(i);continue}catch(c){}if(Date.now()-s<60*1e3)await new Promise(c=>setTimeout(c,n));else throw new Error(`Couldn't acquire a lock in a reasonable time (via ${i})`)}else throw l}await this.writePromise(o,JSON.stringify([process.pid]));try{return await r()}finally{try{await this.closePromise(o),await this.unlinkPromise(i)}catch(l){}}}async readJsonPromise(e){let r=await this.readFilePromise(e,"utf8");try{return JSON.parse(r)}catch(i){throw i.message+=` (in ${e})`,i}}readJsonSync(e){let r=this.readFileSync(e,"utf8");try{return JSON.parse(r)}catch(i){throw i.message+=` (in ${e})`,i}}async writeJsonPromise(e,r){return await this.writeFilePromise(e,`${JSON.stringify(r,null,2)} -`)}writeJsonSync(e,r){return this.writeFileSync(e,`${JSON.stringify(r,null,2)} -`)}async preserveTimePromise(e,r){let i=await this.lstatPromise(e),n=await r();typeof n!="undefined"&&(e=n),this.lutimesPromise?await this.lutimesPromise(e,i.atime,i.mtime):i.isSymbolicLink()||await this.utimesPromise(e,i.atime,i.mtime)}async preserveTimeSync(e,r){let i=this.lstatSync(e),n=r();typeof n!="undefined"&&(e=n),this.lutimesSync?this.lutimesSync(e,i.atime,i.mtime):i.isSymbolicLink()||this.utimesSync(e,i.atime,i.mtime)}},gl=class extends eA{constructor(){super(v)}};function rhe(t){let e=t.match(/\r?\n/g);if(e===null)return IO.EOL;let r=e.filter(n=>n===`\r -`).length,i=e.length-r;return r>i?`\r -`:` -`}function ul(t,e){return e.replace(/\r?\n/g,rhe(t))}var $c=ie(require("fs")),cb=ie(require("stream")),QO=ie(require("util")),ub=ie(require("zlib"));var yO=ie(require("fs"));var Wt=class extends gl{constructor(e=yO.default){super();this.realFs=e,typeof this.realFs.lutimes!="undefined"&&(this.lutimesPromise=this.lutimesPromiseImpl,this.lutimesSync=this.lutimesSyncImpl)}getExtractHint(){return!1}getRealPath(){return Se.root}resolve(e){return v.resolve(e)}async openPromise(e,r,i){return await new Promise((n,s)=>{this.realFs.open(M.fromPortablePath(e),r,i,this.makeCallback(n,s))})}openSync(e,r,i){return this.realFs.openSync(M.fromPortablePath(e),r,i)}async opendirPromise(e,r){return await new Promise((i,n)=>{typeof r!="undefined"?this.realFs.opendir(M.fromPortablePath(e),r,this.makeCallback(i,n)):this.realFs.opendir(M.fromPortablePath(e),this.makeCallback(i,n))}).then(i=>Object.defineProperty(i,"path",{value:e,configurable:!0,writable:!0}))}opendirSync(e,r){let i=typeof r!="undefined"?this.realFs.opendirSync(M.fromPortablePath(e),r):this.realFs.opendirSync(M.fromPortablePath(e));return Object.defineProperty(i,"path",{value:e,configurable:!0,writable:!0})}async readPromise(e,r,i=0,n=0,s=-1){return await new Promise((o,a)=>{this.realFs.read(e,r,i,n,s,(l,c)=>{l?a(l):o(c)})})}readSync(e,r,i,n,s){return this.realFs.readSync(e,r,i,n,s)}async writePromise(e,r,i,n,s){return await new Promise((o,a)=>typeof r=="string"?this.realFs.write(e,r,i,this.makeCallback(o,a)):this.realFs.write(e,r,i,n,s,this.makeCallback(o,a)))}writeSync(e,r,i,n,s){return typeof r=="string"?this.realFs.writeSync(e,r,i):this.realFs.writeSync(e,r,i,n,s)}async closePromise(e){await new Promise((r,i)=>{this.realFs.close(e,this.makeCallback(r,i))})}closeSync(e){this.realFs.closeSync(e)}createReadStream(e,r){let i=e!==null?M.fromPortablePath(e):e;return this.realFs.createReadStream(i,r)}createWriteStream(e,r){let i=e!==null?M.fromPortablePath(e):e;return this.realFs.createWriteStream(i,r)}async realpathPromise(e){return await new Promise((r,i)=>{this.realFs.realpath(M.fromPortablePath(e),{},this.makeCallback(r,i))}).then(r=>M.toPortablePath(r))}realpathSync(e){return M.toPortablePath(this.realFs.realpathSync(M.fromPortablePath(e),{}))}async existsPromise(e){return await new Promise(r=>{this.realFs.exists(M.fromPortablePath(e),r)})}accessSync(e,r){return this.realFs.accessSync(M.fromPortablePath(e),r)}async accessPromise(e,r){return await new Promise((i,n)=>{this.realFs.access(M.fromPortablePath(e),r,this.makeCallback(i,n))})}existsSync(e){return this.realFs.existsSync(M.fromPortablePath(e))}async statPromise(e,r){return await new Promise((i,n)=>{r?this.realFs.stat(M.fromPortablePath(e),r,this.makeCallback(i,n)):this.realFs.stat(M.fromPortablePath(e),this.makeCallback(i,n))})}statSync(e,r){return r?this.realFs.statSync(M.fromPortablePath(e),r):this.realFs.statSync(M.fromPortablePath(e))}async fstatPromise(e,r){return await new Promise((i,n)=>{r?this.realFs.fstat(e,r,this.makeCallback(i,n)):this.realFs.fstat(e,this.makeCallback(i,n))})}fstatSync(e,r){return r?this.realFs.fstatSync(e,r):this.realFs.fstatSync(e)}async lstatPromise(e,r){return await new Promise((i,n)=>{r?this.realFs.lstat(M.fromPortablePath(e),r,this.makeCallback(i,n)):this.realFs.lstat(M.fromPortablePath(e),this.makeCallback(i,n))})}lstatSync(e,r){return r?this.realFs.lstatSync(M.fromPortablePath(e),r):this.realFs.lstatSync(M.fromPortablePath(e))}async chmodPromise(e,r){return await new Promise((i,n)=>{this.realFs.chmod(M.fromPortablePath(e),r,this.makeCallback(i,n))})}chmodSync(e,r){return this.realFs.chmodSync(M.fromPortablePath(e),r)}async chownPromise(e,r,i){return await new Promise((n,s)=>{this.realFs.chown(M.fromPortablePath(e),r,i,this.makeCallback(n,s))})}chownSync(e,r,i){return this.realFs.chownSync(M.fromPortablePath(e),r,i)}async renamePromise(e,r){return await new Promise((i,n)=>{this.realFs.rename(M.fromPortablePath(e),M.fromPortablePath(r),this.makeCallback(i,n))})}renameSync(e,r){return this.realFs.renameSync(M.fromPortablePath(e),M.fromPortablePath(r))}async copyFilePromise(e,r,i=0){return await new Promise((n,s)=>{this.realFs.copyFile(M.fromPortablePath(e),M.fromPortablePath(r),i,this.makeCallback(n,s))})}copyFileSync(e,r,i=0){return this.realFs.copyFileSync(M.fromPortablePath(e),M.fromPortablePath(r),i)}async appendFilePromise(e,r,i){return await new Promise((n,s)=>{let o=typeof e=="string"?M.fromPortablePath(e):e;i?this.realFs.appendFile(o,r,i,this.makeCallback(n,s)):this.realFs.appendFile(o,r,this.makeCallback(n,s))})}appendFileSync(e,r,i){let n=typeof e=="string"?M.fromPortablePath(e):e;i?this.realFs.appendFileSync(n,r,i):this.realFs.appendFileSync(n,r)}async writeFilePromise(e,r,i){return await new Promise((n,s)=>{let o=typeof e=="string"?M.fromPortablePath(e):e;i?this.realFs.writeFile(o,r,i,this.makeCallback(n,s)):this.realFs.writeFile(o,r,this.makeCallback(n,s))})}writeFileSync(e,r,i){let n=typeof e=="string"?M.fromPortablePath(e):e;i?this.realFs.writeFileSync(n,r,i):this.realFs.writeFileSync(n,r)}async unlinkPromise(e){return await new Promise((r,i)=>{this.realFs.unlink(M.fromPortablePath(e),this.makeCallback(r,i))})}unlinkSync(e){return this.realFs.unlinkSync(M.fromPortablePath(e))}async utimesPromise(e,r,i){return await new Promise((n,s)=>{this.realFs.utimes(M.fromPortablePath(e),r,i,this.makeCallback(n,s))})}utimesSync(e,r,i){this.realFs.utimesSync(M.fromPortablePath(e),r,i)}async lutimesPromiseImpl(e,r,i){let n=this.realFs.lutimes;if(typeof n=="undefined")throw th("unavailable Node binding",`lutimes '${e}'`);return await new Promise((s,o)=>{n.call(this.realFs,M.fromPortablePath(e),r,i,this.makeCallback(s,o))})}lutimesSyncImpl(e,r,i){let n=this.realFs.lutimesSync;if(typeof n=="undefined")throw th("unavailable Node binding",`lutimes '${e}'`);n.call(this.realFs,M.fromPortablePath(e),r,i)}async mkdirPromise(e,r){return await new Promise((i,n)=>{this.realFs.mkdir(M.fromPortablePath(e),r,this.makeCallback(i,n))})}mkdirSync(e,r){return this.realFs.mkdirSync(M.fromPortablePath(e),r)}async rmdirPromise(e,r){return await new Promise((i,n)=>{r?this.realFs.rmdir(M.fromPortablePath(e),r,this.makeCallback(i,n)):this.realFs.rmdir(M.fromPortablePath(e),this.makeCallback(i,n))})}rmdirSync(e,r){return this.realFs.rmdirSync(M.fromPortablePath(e),r)}async linkPromise(e,r){return await new Promise((i,n)=>{this.realFs.link(M.fromPortablePath(e),M.fromPortablePath(r),this.makeCallback(i,n))})}linkSync(e,r){return this.realFs.linkSync(M.fromPortablePath(e),M.fromPortablePath(r))}async symlinkPromise(e,r,i){return await new Promise((n,s)=>{this.realFs.symlink(M.fromPortablePath(e.replace(/\/+$/,"")),M.fromPortablePath(r),i,this.makeCallback(n,s))})}symlinkSync(e,r,i){return this.realFs.symlinkSync(M.fromPortablePath(e.replace(/\/+$/,"")),M.fromPortablePath(r),i)}async readFilePromise(e,r){return await new Promise((i,n)=>{let s=typeof e=="string"?M.fromPortablePath(e):e;this.realFs.readFile(s,r,this.makeCallback(i,n))})}readFileSync(e,r){let i=typeof e=="string"?M.fromPortablePath(e):e;return this.realFs.readFileSync(i,r)}async readdirPromise(e,r){return await new Promise((i,n)=>{(r==null?void 0:r.withFileTypes)?this.realFs.readdir(M.fromPortablePath(e),{withFileTypes:!0},this.makeCallback(i,n)):this.realFs.readdir(M.fromPortablePath(e),this.makeCallback(s=>i(s),n))})}readdirSync(e,r){return(r==null?void 0:r.withFileTypes)?this.realFs.readdirSync(M.fromPortablePath(e),{withFileTypes:!0}):this.realFs.readdirSync(M.fromPortablePath(e))}async readlinkPromise(e){return await new Promise((r,i)=>{this.realFs.readlink(M.fromPortablePath(e),this.makeCallback(r,i))}).then(r=>M.toPortablePath(r))}readlinkSync(e){return M.toPortablePath(this.realFs.readlinkSync(M.fromPortablePath(e)))}async truncatePromise(e,r){return await new Promise((i,n)=>{this.realFs.truncate(M.fromPortablePath(e),r,this.makeCallback(i,n))})}truncateSync(e,r){return this.realFs.truncateSync(M.fromPortablePath(e),r)}watch(e,r,i){return this.realFs.watch(M.fromPortablePath(e),r,i)}watchFile(e,r,i){return this.realFs.watchFile(M.fromPortablePath(e),r,i)}unwatchFile(e,r){return this.realFs.unwatchFile(M.fromPortablePath(e),r)}makeCallback(e,r){return(i,n)=>{i?r(i):e(n)}}};var wO=ie(require("events"));var fl;(function(r){r.Change="change",r.Stop="stop"})(fl||(fl={}));var hl;(function(i){i.Ready="ready",i.Running="running",i.Stopped="stopped"})(hl||(hl={}));function BO(t,e){if(t!==e)throw new Error(`Invalid StatWatcher status: expected '${e}', got '${t}'`)}var ih=class extends wO.EventEmitter{constructor(e,r,{bigint:i=!1}={}){super();this.status=hl.Ready;this.changeListeners=new Map;this.startTimeout=null;this.fakeFs=e,this.path=r,this.bigint=i,this.lastStats=this.stat()}static create(e,r,i){let n=new ih(e,r,i);return n.start(),n}start(){BO(this.status,hl.Ready),this.status=hl.Running,this.startTimeout=setTimeout(()=>{this.startTimeout=null,this.fakeFs.existsSync(this.path)||this.emit(fl.Change,this.lastStats,this.lastStats)},3)}stop(){BO(this.status,hl.Running),this.status=hl.Stopped,this.startTimeout!==null&&(clearTimeout(this.startTimeout),this.startTimeout=null),this.emit(fl.Stop)}stat(){try{return this.fakeFs.statSync(this.path,{bigint:this.bigint})}catch(e){let r=this.bigint?new Xf:new Za;return pE(r)}}makeInterval(e){let r=setInterval(()=>{let i=this.stat(),n=this.lastStats;nb(i,n)||(this.lastStats=i,this.emit(fl.Change,i,n))},e.interval);return e.persistent?r:r.unref()}registerChangeListener(e,r){this.addListener(fl.Change,e),this.changeListeners.set(e,this.makeInterval(r))}unregisterChangeListener(e){this.removeListener(fl.Change,e);let r=this.changeListeners.get(e);typeof r!="undefined"&&clearInterval(r),this.changeListeners.delete(e)}unregisterAllChangeListeners(){for(let e of this.changeListeners.keys())this.unregisterChangeListener(e)}hasChangeListeners(){return this.changeListeners.size>0}ref(){for(let e of this.changeListeners.values())e.ref();return this}unref(){for(let e of this.changeListeners.values())e.unref();return this}};var BE=new WeakMap;function QE(t,e,r,i){let n,s,o,a;switch(typeof r){case"function":n=!1,s=!0,o=5007,a=r;break;default:({bigint:n=!1,persistent:s=!0,interval:o=5007}=r),a=i;break}let l=BE.get(t);typeof l=="undefined"&&BE.set(t,l=new Map);let c=l.get(e);return typeof c=="undefined"&&(c=ih.create(t,e,{bigint:n}),l.set(e,c)),c.registerChangeListener(a,{persistent:s,interval:o}),c}function nh(t,e,r){let i=BE.get(t);if(typeof i=="undefined")return;let n=i.get(e);typeof n!="undefined"&&(typeof r=="undefined"?n.unregisterAllChangeListeners():n.unregisterChangeListener(r),n.hasChangeListeners()||(n.stop(),i.delete(e)))}function sh(t){let e=BE.get(t);if(typeof e!="undefined")for(let r of e.keys())nh(t,r)}var pl="mixed";function ihe(t){if(typeof t=="string"&&String(+t)===t)return+t;if(Number.isFinite(t))return t<0?Date.now()/1e3:t;if((0,QO.isDate)(t))return t.getTime()/1e3;throw new Error("Invalid time")}function bO(){return Buffer.from([80,75,5,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0])}var Jr=class extends gl{constructor(e,r){super();this.lzSource=null;this.listings=new Map;this.entries=new Map;this.fileSources=new Map;this.fds=new Map;this.nextFd=0;this.ready=!1;this.readOnly=!1;this.libzip=r.libzip;let i=r;if(this.level=typeof i.level!="undefined"?i.level:pl,e!=null||(e=bO()),typeof e=="string"){let{baseFs:o=new Wt}=i;this.baseFs=o,this.path=e}else this.path=null,this.baseFs=null;if(r.stats)this.stats=r.stats;else if(typeof e=="string")try{this.stats=this.baseFs.statSync(e)}catch(o){if(o.code==="ENOENT"&&i.create)this.stats=Zf();else throw o}else this.stats=Zf();let n=this.libzip.malloc(4);try{let o=0;if(typeof e=="string"&&i.create&&(o|=this.libzip.ZIP_CREATE|this.libzip.ZIP_TRUNCATE),r.readOnly&&(o|=this.libzip.ZIP_RDONLY,this.readOnly=!0),typeof e=="string")this.zip=this.libzip.open(M.fromPortablePath(e),o,n);else{let a=this.allocateUnattachedSource(e);try{this.zip=this.libzip.openFromSource(a,o,n),this.lzSource=a}catch(l){throw this.libzip.source.free(a),l}}if(this.zip===0){let a=this.libzip.struct.errorS();throw this.libzip.error.initWithCode(a,this.libzip.getValue(n,"i32")),this.makeLibzipError(a)}}finally{this.libzip.free(n)}this.listings.set(Se.root,new Set);let s=this.libzip.getNumEntries(this.zip,0);for(let o=0;oe)throw new Error("Overread");let n=this.libzip.HEAPU8.subarray(r,r+e);return Buffer.from(n)}finally{this.libzip.free(r)}}finally{this.libzip.source.close(this.lzSource),this.libzip.source.free(this.lzSource),this.ready=!1}}prepareClose(){if(!this.ready)throw IE("archive closed, close");sh(this)}saveAndClose(){if(!this.path||!this.baseFs)throw new Error("ZipFS cannot be saved and must be discarded when loaded from a buffer");if(this.prepareClose(),this.readOnly){this.discardAndClose();return}let e=this.baseFs.existsSync(this.path)||this.stats.mode===_f?void 0:this.stats.mode;if(this.entries.size===0)this.discardAndClose(),this.baseFs.writeFileSync(this.path,bO(),{mode:e});else{if(this.libzip.close(this.zip)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));typeof e!="undefined"&&this.baseFs.chmodSync(this.path,e)}this.ready=!1}discardAndClose(){this.prepareClose(),this.libzip.discard(this.zip),this.ready=!1}resolve(e){return v.resolve(Se.root,e)}async openPromise(e,r,i){return this.openSync(e,r,i)}openSync(e,r,i){let n=this.nextFd++;return this.fds.set(n,{cursor:0,p:e}),n}hasOpenFileHandles(){return!!this.fds.size}async opendirPromise(e,r){return this.opendirSync(e,r)}opendirSync(e,r={}){let i=this.resolveFilename(`opendir '${e}'`,e);if(!this.entries.has(i)&&!this.listings.has(i))throw bs(`opendir '${e}'`);let n=this.listings.get(i);if(!n)throw eo(`opendir '${e}'`);let s=[...n],o=this.openSync(i,"r");return wE(this,i,s,{onClose:()=>{this.closeSync(o)}})}async readPromise(e,r,i,n,s){return this.readSync(e,r,i,n,s)}readSync(e,r,i=0,n=r.byteLength,s=-1){let o=this.fds.get(e);if(typeof o=="undefined")throw Hi("read");let a;s===-1||s===null?a=o.cursor:a=s;let l=this.readFileSync(o.p);l.copy(r,i,a,a+n);let c=Math.max(0,Math.min(l.length-a,n));return(s===-1||s===null)&&(o.cursor+=c),c}async writePromise(e,r,i,n,s){return typeof r=="string"?this.writeSync(e,r,s):this.writeSync(e,r,i,n,s)}writeSync(e,r,i,n,s){throw typeof this.fds.get(e)=="undefined"?Hi("read"):new Error("Unimplemented")}async closePromise(e){return this.closeSync(e)}closeSync(e){if(typeof this.fds.get(e)=="undefined")throw Hi("read");this.fds.delete(e)}createReadStream(e,{encoding:r}={}){if(e===null)throw new Error("Unimplemented");let i=this.openSync(e,"r"),n=Object.assign(new cb.PassThrough({emitClose:!0,autoDestroy:!0,destroy:(o,a)=>{clearImmediate(s),this.closeSync(i),a(o)}}),{close(){n.destroy()},bytesRead:0,path:e}),s=setImmediate(async()=>{try{let o=await this.readFilePromise(e,r);n.bytesRead=o.length,n.end(o)}catch(o){n.destroy(o)}});return n}createWriteStream(e,{encoding:r}={}){if(this.readOnly)throw ln(`open '${e}'`);if(e===null)throw new Error("Unimplemented");let i=[],n=this.openSync(e,"w"),s=Object.assign(new cb.PassThrough({autoDestroy:!0,emitClose:!0,destroy:(o,a)=>{try{o?a(o):(this.writeFileSync(e,Buffer.concat(i),r),a(null))}catch(l){a(l)}finally{this.closeSync(n)}}}),{bytesWritten:0,path:e,close(){s.destroy()}});return s.on("data",o=>{let a=Buffer.from(o);s.bytesWritten+=a.length,i.push(a)}),s}async realpathPromise(e){return this.realpathSync(e)}realpathSync(e){let r=this.resolveFilename(`lstat '${e}'`,e);if(!this.entries.has(r)&&!this.listings.has(r))throw bs(`lstat '${e}'`);return r}async existsPromise(e){return this.existsSync(e)}existsSync(e){if(!this.ready)throw IE(`archive closed, existsSync '${e}'`);if(this.symlinkCount===0){let i=v.resolve(Se.root,e);return this.entries.has(i)||this.listings.has(i)}let r;try{r=this.resolveFilename(`stat '${e}'`,e)}catch(i){return!1}return this.entries.has(r)||this.listings.has(r)}async accessPromise(e,r){return this.accessSync(e,r)}accessSync(e,r=$c.constants.F_OK){let i=this.resolveFilename(`access '${e}'`,e);if(!this.entries.has(i)&&!this.listings.has(i))throw bs(`access '${e}'`);if(this.readOnly&&r&$c.constants.W_OK)throw ln(`access '${e}'`)}async statPromise(e,r){return this.statSync(e,r)}statSync(e,r){let i=this.resolveFilename(`stat '${e}'`,e);if(!this.entries.has(i)&&!this.listings.has(i))throw bs(`stat '${e}'`);if(e[e.length-1]==="/"&&!this.listings.has(i))throw eo(`stat '${e}'`);return this.statImpl(`stat '${e}'`,i,r)}async fstatPromise(e,r){return this.fstatSync(e,r)}fstatSync(e,r){let i=this.fds.get(e);if(typeof i=="undefined")throw Hi("fstatSync");let{p:n}=i,s=this.resolveFilename(`stat '${n}'`,n);if(!this.entries.has(s)&&!this.listings.has(s))throw bs(`stat '${n}'`);if(n[n.length-1]==="/"&&!this.listings.has(s))throw eo(`stat '${n}'`);return this.statImpl(`fstat '${n}'`,s,r)}async lstatPromise(e,r){return this.lstatSync(e,r)}lstatSync(e,r){let i=this.resolveFilename(`lstat '${e}'`,e,!1);if(!this.entries.has(i)&&!this.listings.has(i))throw bs(`lstat '${e}'`);if(e[e.length-1]==="/"&&!this.listings.has(i))throw eo(`lstat '${e}'`);return this.statImpl(`lstat '${e}'`,i,r)}statImpl(e,r,i={}){let n=this.entries.get(r);if(typeof n!="undefined"){let s=this.libzip.struct.statS();if(this.libzip.statIndex(this.zip,n,0,0,s)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));let a=this.stats.uid,l=this.stats.gid,c=this.libzip.struct.statSize(s)>>>0,u=512,g=Math.ceil(c/u),f=(this.libzip.struct.statMtime(s)>>>0)*1e3,h=f,p=f,d=f,m=new Date(h),I=new Date(p),B=new Date(d),b=new Date(f),R=this.listings.has(r)?zo:this.isSymbolicLink(n)?_o:Vo,H=R===zo?493:420,L=R|this.getUnixMode(n,H)&511,K=this.libzip.struct.statCrc(s),J=Object.assign(new Za,{uid:a,gid:l,size:c,blksize:u,blocks:g,atime:m,birthtime:I,ctime:B,mtime:b,atimeMs:h,birthtimeMs:p,ctimeMs:d,mtimeMs:f,mode:L,crc:K});return i.bigint===!0?dE(J):J}if(this.listings.has(r)){let s=this.stats.uid,o=this.stats.gid,a=0,l=512,c=0,u=this.stats.mtimeMs,g=this.stats.mtimeMs,f=this.stats.mtimeMs,h=this.stats.mtimeMs,p=new Date(u),d=new Date(g),m=new Date(f),I=new Date(h),B=zo|493,b=0,R=Object.assign(new Za,{uid:s,gid:o,size:a,blksize:l,blocks:c,atime:p,birthtime:d,ctime:m,mtime:I,atimeMs:u,birthtimeMs:g,ctimeMs:f,mtimeMs:h,mode:B,crc:b});return i.bigint===!0?dE(R):R}throw new Error("Unreachable")}getUnixMode(e,r){if(this.libzip.file.getExternalAttributes(this.zip,e,0,0,this.libzip.uint08S,this.libzip.uint32S)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));return this.libzip.getValue(this.libzip.uint08S,"i8")>>>0!==this.libzip.ZIP_OPSYS_UNIX?r:this.libzip.getValue(this.libzip.uint32S,"i32")>>>16}registerListing(e){let r=this.listings.get(e);if(r)return r;let i=this.registerListing(v.dirname(e));return r=new Set,i.add(v.basename(e)),this.listings.set(e,r),r}registerEntry(e,r){this.registerListing(v.dirname(e)).add(v.basename(e)),this.entries.set(e,r)}unregisterListing(e){this.listings.delete(e);let r=this.listings.get(v.dirname(e));r==null||r.delete(v.basename(e))}unregisterEntry(e){this.unregisterListing(e);let r=this.entries.get(e);this.entries.delete(e),typeof r!="undefined"&&(this.fileSources.delete(r),this.isSymbolicLink(r)&&this.symlinkCount--)}deleteEntry(e,r){if(this.unregisterEntry(e),this.libzip.delete(this.zip,r)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}resolveFilename(e,r,i=!0){if(!this.ready)throw IE(`archive closed, ${e}`);let n=v.resolve(Se.root,r);if(n==="/")return Se.root;let s=this.entries.get(n);if(i&&s!==void 0)if(this.symlinkCount!==0&&this.isSymbolicLink(s)){let o=this.getFileSource(s).toString();return this.resolveFilename(e,v.resolve(v.dirname(n),o),!0)}else return n;for(;;){let o=this.resolveFilename(e,v.dirname(n),!0),a=this.listings.has(o),l=this.entries.has(o);if(!a&&!l)throw bs(e);if(!a)throw eo(e);if(n=v.resolve(o,v.basename(n)),!i||this.symlinkCount===0)break;let c=this.libzip.name.locate(this.zip,n.slice(1));if(c===-1)break;if(this.isSymbolicLink(c)){let u=this.getFileSource(c).toString();n=v.resolve(v.dirname(n),u)}else break}return n}allocateBuffer(e){Buffer.isBuffer(e)||(e=Buffer.from(e));let r=this.libzip.malloc(e.byteLength);if(!r)throw new Error("Couldn't allocate enough memory");return new Uint8Array(this.libzip.HEAPU8.buffer,r,e.byteLength).set(e),{buffer:r,byteLength:e.byteLength}}allocateUnattachedSource(e){let r=this.libzip.struct.errorS(),{buffer:i,byteLength:n}=this.allocateBuffer(e),s=this.libzip.source.fromUnattachedBuffer(i,n,0,!0,r);if(s===0)throw this.libzip.free(r),this.makeLibzipError(r);return s}allocateSource(e){let{buffer:r,byteLength:i}=this.allocateBuffer(e),n=this.libzip.source.fromBuffer(this.zip,r,i,0,!0);if(n===0)throw this.libzip.free(r),this.makeLibzipError(this.libzip.getError(this.zip));return n}setFileSource(e,r){let i=Buffer.isBuffer(r)?r:Buffer.from(r),n=v.relative(Se.root,e),s=this.allocateSource(r);try{let o=this.libzip.file.add(this.zip,n,s,this.libzip.ZIP_FL_OVERWRITE);if(o===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));if(this.level!=="mixed"){let a;if(this.level===0?a=this.libzip.ZIP_CM_STORE:a=this.libzip.ZIP_CM_DEFLATE,this.libzip.file.setCompression(this.zip,o,0,a,this.level)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}return this.fileSources.set(o,i),o}catch(o){throw this.libzip.source.free(s),o}}isSymbolicLink(e){if(this.symlinkCount===0)return!1;if(this.libzip.file.getExternalAttributes(this.zip,e,0,0,this.libzip.uint08S,this.libzip.uint32S)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));return this.libzip.getValue(this.libzip.uint08S,"i8")>>>0!==this.libzip.ZIP_OPSYS_UNIX?!1:(this.libzip.getValue(this.libzip.uint32S,"i32")>>>16&kn)===_o}getFileSource(e,r={asyncDecompress:!1}){let i=this.fileSources.get(e);if(typeof i!="undefined")return i;let n=this.libzip.struct.statS();if(this.libzip.statIndex(this.zip,e,0,0,n)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));let o=this.libzip.struct.statCompSize(n),a=this.libzip.struct.statCompMethod(n),l=this.libzip.malloc(o);try{let c=this.libzip.fopenIndex(this.zip,e,0,this.libzip.ZIP_FL_COMPRESSED);if(c===0)throw this.makeLibzipError(this.libzip.getError(this.zip));try{let u=this.libzip.fread(c,l,o,0);if(u===-1)throw this.makeLibzipError(this.libzip.file.getError(c));if(uo)throw new Error("Overread");let g=this.libzip.HEAPU8.subarray(l,l+o),f=Buffer.from(g);if(a===0)return this.fileSources.set(e,f),f;if(r.asyncDecompress)return new Promise((h,p)=>{ub.default.inflateRaw(f,(d,m)=>{d?p(d):(this.fileSources.set(e,m),h(m))})});{let h=ub.default.inflateRawSync(f);return this.fileSources.set(e,h),h}}finally{this.libzip.fclose(c)}}finally{this.libzip.free(l)}}async chmodPromise(e,r){return this.chmodSync(e,r)}chmodSync(e,r){if(this.readOnly)throw ln(`chmod '${e}'`);r&=493;let i=this.resolveFilename(`chmod '${e}'`,e,!1),n=this.entries.get(i);if(typeof n=="undefined")throw new Error(`Assertion failed: The entry should have been registered (${i})`);let o=this.getUnixMode(n,Vo|0)&~511|r;if(this.libzip.file.setExternalAttributes(this.zip,n,0,0,this.libzip.ZIP_OPSYS_UNIX,o<<16)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}async chownPromise(e,r,i){return this.chownSync(e,r,i)}chownSync(e,r,i){throw new Error("Unimplemented")}async renamePromise(e,r){return this.renameSync(e,r)}renameSync(e,r){throw new Error("Unimplemented")}async copyFilePromise(e,r,i){let{indexSource:n,indexDest:s,resolvedDestP:o}=this.prepareCopyFile(e,r,i),a=await this.getFileSource(n,{asyncDecompress:!0}),l=this.setFileSource(o,a);l!==s&&this.registerEntry(o,l)}copyFileSync(e,r,i=0){let{indexSource:n,indexDest:s,resolvedDestP:o}=this.prepareCopyFile(e,r,i),a=this.getFileSource(n),l=this.setFileSource(o,a);l!==s&&this.registerEntry(o,l)}prepareCopyFile(e,r,i=0){if(this.readOnly)throw ln(`copyfile '${e} -> '${r}'`);if((i&$c.constants.COPYFILE_FICLONE_FORCE)!=0)throw th("unsupported clone operation",`copyfile '${e}' -> ${r}'`);let n=this.resolveFilename(`copyfile '${e} -> ${r}'`,e),s=this.entries.get(n);if(typeof s=="undefined")throw $a(`copyfile '${e}' -> '${r}'`);let o=this.resolveFilename(`copyfile '${e}' -> ${r}'`,r),a=this.entries.get(o);if((i&($c.constants.COPYFILE_EXCL|$c.constants.COPYFILE_FICLONE_FORCE))!=0&&typeof a!="undefined")throw yE(`copyfile '${e}' -> '${r}'`);return{indexSource:s,resolvedDestP:o,indexDest:a}}async appendFilePromise(e,r,i){if(this.readOnly)throw ln(`open '${e}'`);return typeof i=="undefined"?i={flag:"a"}:typeof i=="string"?i={flag:"a",encoding:i}:typeof i.flag=="undefined"&&(i=P({flag:"a"},i)),this.writeFilePromise(e,r,i)}appendFileSync(e,r,i={}){if(this.readOnly)throw ln(`open '${e}'`);return typeof i=="undefined"?i={flag:"a"}:typeof i=="string"?i={flag:"a",encoding:i}:typeof i.flag=="undefined"&&(i=P({flag:"a"},i)),this.writeFileSync(e,r,i)}fdToPath(e,r){var n;let i=(n=this.fds.get(e))==null?void 0:n.p;if(typeof i=="undefined")throw Hi(r);return i}async writeFilePromise(e,r,i){let{encoding:n,mode:s,index:o,resolvedP:a}=this.prepareWriteFile(e,i);o!==void 0&&typeof i=="object"&&i.flag&&i.flag.includes("a")&&(r=Buffer.concat([await this.getFileSource(o,{asyncDecompress:!0}),Buffer.from(r)])),n!==null&&(r=r.toString(n));let l=this.setFileSource(a,r);l!==o&&this.registerEntry(a,l),s!==null&&await this.chmodPromise(a,s)}writeFileSync(e,r,i){let{encoding:n,mode:s,index:o,resolvedP:a}=this.prepareWriteFile(e,i);o!==void 0&&typeof i=="object"&&i.flag&&i.flag.includes("a")&&(r=Buffer.concat([this.getFileSource(o),Buffer.from(r)])),n!==null&&(r=r.toString(n));let l=this.setFileSource(a,r);l!==o&&this.registerEntry(a,l),s!==null&&this.chmodSync(a,s)}prepareWriteFile(e,r){if(typeof e=="number"&&(e=this.fdToPath(e,"read")),this.readOnly)throw ln(`open '${e}'`);let i=this.resolveFilename(`open '${e}'`,e);if(this.listings.has(i))throw rh(`open '${e}'`);let n=null,s=null;typeof r=="string"?n=r:typeof r=="object"&&({encoding:n=null,mode:s=null}=r);let o=this.entries.get(i);return{encoding:n,mode:s,resolvedP:i,index:o}}async unlinkPromise(e){return this.unlinkSync(e)}unlinkSync(e){if(this.readOnly)throw ln(`unlink '${e}'`);let r=this.resolveFilename(`unlink '${e}'`,e);if(this.listings.has(r))throw rh(`unlink '${e}'`);let i=this.entries.get(r);if(typeof i=="undefined")throw $a(`unlink '${e}'`);this.deleteEntry(r,i)}async utimesPromise(e,r,i){return this.utimesSync(e,r,i)}utimesSync(e,r,i){if(this.readOnly)throw ln(`utimes '${e}'`);let n=this.resolveFilename(`utimes '${e}'`,e);this.utimesImpl(n,i)}async lutimesPromise(e,r,i){return this.lutimesSync(e,r,i)}lutimesSync(e,r,i){if(this.readOnly)throw ln(`lutimes '${e}'`);let n=this.resolveFilename(`utimes '${e}'`,e,!1);this.utimesImpl(n,i)}utimesImpl(e,r){this.listings.has(e)&&(this.entries.has(e)||this.hydrateDirectory(e));let i=this.entries.get(e);if(i===void 0)throw new Error("Unreachable");if(this.libzip.file.setMtime(this.zip,i,0,ihe(r),0)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}async mkdirPromise(e,r){return this.mkdirSync(e,r)}mkdirSync(e,{mode:r=493,recursive:i=!1}={}){if(i){this.mkdirpSync(e,{chmod:r});return}if(this.readOnly)throw ln(`mkdir '${e}'`);let n=this.resolveFilename(`mkdir '${e}'`,e);if(this.entries.has(n)||this.listings.has(n))throw yE(`mkdir '${e}'`);this.hydrateDirectory(n),this.chmodSync(n,r)}async rmdirPromise(e,r){return this.rmdirSync(e,r)}rmdirSync(e,{recursive:r=!1}={}){if(this.readOnly)throw ln(`rmdir '${e}'`);if(r){this.removeSync(e);return}let i=this.resolveFilename(`rmdir '${e}'`,e),n=this.listings.get(i);if(!n)throw eo(`rmdir '${e}'`);if(n.size>0)throw dO(`rmdir '${e}'`);let s=this.entries.get(i);if(typeof s=="undefined")throw $a(`rmdir '${e}'`);this.deleteEntry(e,s)}hydrateDirectory(e){let r=this.libzip.dir.add(this.zip,v.relative(Se.root,e));if(r===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));return this.registerListing(e),this.registerEntry(e,r),r}async linkPromise(e,r){return this.linkSync(e,r)}linkSync(e,r){throw CO(`link '${e}' -> '${r}'`)}async symlinkPromise(e,r){return this.symlinkSync(e,r)}symlinkSync(e,r){if(this.readOnly)throw ln(`symlink '${e}' -> '${r}'`);let i=this.resolveFilename(`symlink '${e}' -> '${r}'`,r);if(this.listings.has(i))throw rh(`symlink '${e}' -> '${r}'`);if(this.entries.has(i))throw yE(`symlink '${e}' -> '${r}'`);let n=this.setFileSource(i,e);if(this.registerEntry(i,n),this.libzip.file.setExternalAttributes(this.zip,n,0,0,this.libzip.ZIP_OPSYS_UNIX,(_o|511)<<16)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));this.symlinkCount+=1}async readFilePromise(e,r){typeof r=="object"&&(r=r?r.encoding:void 0);let i=await this.readFileBuffer(e,{asyncDecompress:!0});return r?i.toString(r):i}readFileSync(e,r){typeof r=="object"&&(r=r?r.encoding:void 0);let i=this.readFileBuffer(e);return r?i.toString(r):i}readFileBuffer(e,r={asyncDecompress:!1}){typeof e=="number"&&(e=this.fdToPath(e,"read"));let i=this.resolveFilename(`open '${e}'`,e);if(!this.entries.has(i)&&!this.listings.has(i))throw bs(`open '${e}'`);if(e[e.length-1]==="/"&&!this.listings.has(i))throw eo(`open '${e}'`);if(this.listings.has(i))throw rh("read");let n=this.entries.get(i);if(n===void 0)throw new Error("Unreachable");return this.getFileSource(n,r)}async readdirPromise(e,r){return this.readdirSync(e,r)}readdirSync(e,r){let i=this.resolveFilename(`scandir '${e}'`,e);if(!this.entries.has(i)&&!this.listings.has(i))throw bs(`scandir '${e}'`);let n=this.listings.get(i);if(!n)throw eo(`scandir '${e}'`);let s=[...n];return(r==null?void 0:r.withFileTypes)?s.map(o=>Object.assign(this.statImpl("lstat",v.join(e,o)),{name:o})):s}async readlinkPromise(e){let r=this.prepareReadlink(e);return(await this.getFileSource(r,{asyncDecompress:!0})).toString()}readlinkSync(e){let r=this.prepareReadlink(e);return this.getFileSource(r).toString()}prepareReadlink(e){let r=this.resolveFilename(`readlink '${e}'`,e,!1);if(!this.entries.has(r)&&!this.listings.has(r))throw bs(`readlink '${e}'`);if(e[e.length-1]==="/"&&!this.listings.has(r))throw eo(`open '${e}'`);if(this.listings.has(r))throw $a(`readlink '${e}'`);let i=this.entries.get(r);if(i===void 0)throw new Error("Unreachable");if(!this.isSymbolicLink(i))throw $a(`readlink '${e}'`);return i}async truncatePromise(e,r=0){let i=this.resolveFilename(`open '${e}'`,e),n=this.entries.get(i);if(typeof n=="undefined")throw $a(`open '${e}'`);let s=await this.getFileSource(n,{asyncDecompress:!0}),o=Buffer.alloc(r,0);return s.copy(o),await this.writeFilePromise(e,o)}truncateSync(e,r=0){let i=this.resolveFilename(`open '${e}'`,e),n=this.entries.get(i);if(typeof n=="undefined")throw $a(`open '${e}'`);let s=this.getFileSource(n),o=Buffer.alloc(r,0);return s.copy(o),this.writeFileSync(e,o)}watch(e,r,i){let n;switch(typeof r){case"function":case"string":case"undefined":n=!0;break;default:({persistent:n=!0}=r);break}if(!n)return{on:()=>{},close:()=>{}};let s=setInterval(()=>{},24*60*60*1e3);return{on:()=>{},close:()=>{clearInterval(s)}}}watchFile(e,r,i){let n=v.resolve(Se.root,e);return QE(this,n,r,i)}unwatchFile(e,r){let i=v.resolve(Se.root,e);return nh(this,i,r)}};var fi=class extends eA{getExtractHint(e){return this.baseFs.getExtractHint(e)}resolve(e){return this.mapFromBase(this.baseFs.resolve(this.mapToBase(e)))}getRealPath(){return this.mapFromBase(this.baseFs.getRealPath())}async openPromise(e,r,i){return this.baseFs.openPromise(this.mapToBase(e),r,i)}openSync(e,r,i){return this.baseFs.openSync(this.mapToBase(e),r,i)}async opendirPromise(e,r){return Object.assign(await this.baseFs.opendirPromise(this.mapToBase(e),r),{path:e})}opendirSync(e,r){return Object.assign(this.baseFs.opendirSync(this.mapToBase(e),r),{path:e})}async readPromise(e,r,i,n,s){return await this.baseFs.readPromise(e,r,i,n,s)}readSync(e,r,i,n,s){return this.baseFs.readSync(e,r,i,n,s)}async writePromise(e,r,i,n,s){return typeof r=="string"?await this.baseFs.writePromise(e,r,i):await this.baseFs.writePromise(e,r,i,n,s)}writeSync(e,r,i,n,s){return typeof r=="string"?this.baseFs.writeSync(e,r,i):this.baseFs.writeSync(e,r,i,n,s)}async closePromise(e){return this.baseFs.closePromise(e)}closeSync(e){this.baseFs.closeSync(e)}createReadStream(e,r){return this.baseFs.createReadStream(e!==null?this.mapToBase(e):e,r)}createWriteStream(e,r){return this.baseFs.createWriteStream(e!==null?this.mapToBase(e):e,r)}async realpathPromise(e){return this.mapFromBase(await this.baseFs.realpathPromise(this.mapToBase(e)))}realpathSync(e){return this.mapFromBase(this.baseFs.realpathSync(this.mapToBase(e)))}async existsPromise(e){return this.baseFs.existsPromise(this.mapToBase(e))}existsSync(e){return this.baseFs.existsSync(this.mapToBase(e))}accessSync(e,r){return this.baseFs.accessSync(this.mapToBase(e),r)}async accessPromise(e,r){return this.baseFs.accessPromise(this.mapToBase(e),r)}async statPromise(e,r){return this.baseFs.statPromise(this.mapToBase(e),r)}statSync(e,r){return this.baseFs.statSync(this.mapToBase(e),r)}async fstatPromise(e,r){return this.baseFs.fstatPromise(e,r)}fstatSync(e,r){return this.baseFs.fstatSync(e,r)}async lstatPromise(e,r){return this.baseFs.lstatPromise(this.mapToBase(e),r)}lstatSync(e,r){return this.baseFs.lstatSync(this.mapToBase(e),r)}async chmodPromise(e,r){return this.baseFs.chmodPromise(this.mapToBase(e),r)}chmodSync(e,r){return this.baseFs.chmodSync(this.mapToBase(e),r)}async chownPromise(e,r,i){return this.baseFs.chownPromise(this.mapToBase(e),r,i)}chownSync(e,r,i){return this.baseFs.chownSync(this.mapToBase(e),r,i)}async renamePromise(e,r){return this.baseFs.renamePromise(this.mapToBase(e),this.mapToBase(r))}renameSync(e,r){return this.baseFs.renameSync(this.mapToBase(e),this.mapToBase(r))}async copyFilePromise(e,r,i=0){return this.baseFs.copyFilePromise(this.mapToBase(e),this.mapToBase(r),i)}copyFileSync(e,r,i=0){return this.baseFs.copyFileSync(this.mapToBase(e),this.mapToBase(r),i)}async appendFilePromise(e,r,i){return this.baseFs.appendFilePromise(this.fsMapToBase(e),r,i)}appendFileSync(e,r,i){return this.baseFs.appendFileSync(this.fsMapToBase(e),r,i)}async writeFilePromise(e,r,i){return this.baseFs.writeFilePromise(this.fsMapToBase(e),r,i)}writeFileSync(e,r,i){return this.baseFs.writeFileSync(this.fsMapToBase(e),r,i)}async unlinkPromise(e){return this.baseFs.unlinkPromise(this.mapToBase(e))}unlinkSync(e){return this.baseFs.unlinkSync(this.mapToBase(e))}async utimesPromise(e,r,i){return this.baseFs.utimesPromise(this.mapToBase(e),r,i)}utimesSync(e,r,i){return this.baseFs.utimesSync(this.mapToBase(e),r,i)}async mkdirPromise(e,r){return this.baseFs.mkdirPromise(this.mapToBase(e),r)}mkdirSync(e,r){return this.baseFs.mkdirSync(this.mapToBase(e),r)}async rmdirPromise(e,r){return this.baseFs.rmdirPromise(this.mapToBase(e),r)}rmdirSync(e,r){return this.baseFs.rmdirSync(this.mapToBase(e),r)}async linkPromise(e,r){return this.baseFs.linkPromise(this.mapToBase(e),this.mapToBase(r))}linkSync(e,r){return this.baseFs.linkSync(this.mapToBase(e),this.mapToBase(r))}async symlinkPromise(e,r,i){let n=this.mapToBase(r);if(this.pathUtils.isAbsolute(e))return this.baseFs.symlinkPromise(this.mapToBase(e),n,i);let s=this.mapToBase(this.pathUtils.join(this.pathUtils.dirname(r),e)),o=this.baseFs.pathUtils.relative(this.baseFs.pathUtils.dirname(n),s);return this.baseFs.symlinkPromise(o,n,i)}symlinkSync(e,r,i){let n=this.mapToBase(r);if(this.pathUtils.isAbsolute(e))return this.baseFs.symlinkSync(this.mapToBase(e),n,i);let s=this.mapToBase(this.pathUtils.join(this.pathUtils.dirname(r),e)),o=this.baseFs.pathUtils.relative(this.baseFs.pathUtils.dirname(n),s);return this.baseFs.symlinkSync(o,n,i)}async readFilePromise(e,r){return r==="utf8"?this.baseFs.readFilePromise(this.fsMapToBase(e),r):this.baseFs.readFilePromise(this.fsMapToBase(e),r)}readFileSync(e,r){return r==="utf8"?this.baseFs.readFileSync(this.fsMapToBase(e),r):this.baseFs.readFileSync(this.fsMapToBase(e),r)}async readdirPromise(e,r){return this.baseFs.readdirPromise(this.mapToBase(e),r)}readdirSync(e,r){return this.baseFs.readdirSync(this.mapToBase(e),r)}async readlinkPromise(e){return this.mapFromBase(await this.baseFs.readlinkPromise(this.mapToBase(e)))}readlinkSync(e){return this.mapFromBase(this.baseFs.readlinkSync(this.mapToBase(e)))}async truncatePromise(e,r){return this.baseFs.truncatePromise(this.mapToBase(e),r)}truncateSync(e,r){return this.baseFs.truncateSync(this.mapToBase(e),r)}watch(e,r,i){return this.baseFs.watch(this.mapToBase(e),r,i)}watchFile(e,r,i){return this.baseFs.watchFile(this.mapToBase(e),r,i)}unwatchFile(e,r){return this.baseFs.unwatchFile(this.mapToBase(e),r)}fsMapToBase(e){return typeof e=="number"?e:this.mapToBase(e)}};var Xo=class extends fi{constructor(e,{baseFs:r,pathUtils:i}){super(i);this.target=e,this.baseFs=r}getRealPath(){return this.target}getBaseFs(){return this.baseFs}mapFromBase(e){return e}mapToBase(e){return e}};var Ft=class extends fi{constructor(e,{baseFs:r=new Wt}={}){super(v);this.target=this.pathUtils.normalize(e),this.baseFs=r}getRealPath(){return this.pathUtils.resolve(this.baseFs.getRealPath(),this.target)}resolve(e){return this.pathUtils.isAbsolute(e)?v.normalize(e):this.baseFs.resolve(v.join(this.target,e))}mapFromBase(e){return e}mapToBase(e){return this.pathUtils.isAbsolute(e)?e:this.pathUtils.join(this.target,e)}};var vO=Se.root,Zo=class extends fi{constructor(e,{baseFs:r=new Wt}={}){super(v);this.target=this.pathUtils.resolve(Se.root,e),this.baseFs=r}getRealPath(){return this.pathUtils.resolve(this.baseFs.getRealPath(),this.pathUtils.relative(Se.root,this.target))}getTarget(){return this.target}getBaseFs(){return this.baseFs}mapToBase(e){let r=this.pathUtils.normalize(e);if(this.pathUtils.isAbsolute(e))return this.pathUtils.resolve(this.target,this.pathUtils.relative(vO,e));if(r.match(/^\.\.\/?/))throw new Error(`Resolving this path (${e}) would escape the jail`);return this.pathUtils.resolve(this.target,e)}mapFromBase(e){return this.pathUtils.resolve(vO,this.pathUtils.relative(this.target,e))}};var oh=class extends fi{constructor(e,r){super(r);this.instance=null;this.factory=e}get baseFs(){return this.instance||(this.instance=this.factory()),this.instance}set baseFs(e){this.instance=e}mapFromBase(e){return e}mapToBase(e){return e}};var ze=()=>Object.assign(new Error("ENOSYS: unsupported filesystem access"),{code:"ENOSYS"}),gb=class extends eA{constructor(){super(v)}getExtractHint(){throw ze()}getRealPath(){throw ze()}resolve(){throw ze()}async openPromise(){throw ze()}openSync(){throw ze()}async opendirPromise(){throw ze()}opendirSync(){throw ze()}async readPromise(){throw ze()}readSync(){throw ze()}async writePromise(){throw ze()}writeSync(){throw ze()}async closePromise(){throw ze()}closeSync(){throw ze()}createWriteStream(){throw ze()}createReadStream(){throw ze()}async realpathPromise(){throw ze()}realpathSync(){throw ze()}async readdirPromise(){throw ze()}readdirSync(){throw ze()}async existsPromise(e){throw ze()}existsSync(e){throw ze()}async accessPromise(){throw ze()}accessSync(){throw ze()}async statPromise(){throw ze()}statSync(){throw ze()}async fstatPromise(e){throw ze()}fstatSync(e){throw ze()}async lstatPromise(e){throw ze()}lstatSync(e){throw ze()}async chmodPromise(){throw ze()}chmodSync(){throw ze()}async chownPromise(){throw ze()}chownSync(){throw ze()}async mkdirPromise(){throw ze()}mkdirSync(){throw ze()}async rmdirPromise(){throw ze()}rmdirSync(){throw ze()}async linkPromise(){throw ze()}linkSync(){throw ze()}async symlinkPromise(){throw ze()}symlinkSync(){throw ze()}async renamePromise(){throw ze()}renameSync(){throw ze()}async copyFilePromise(){throw ze()}copyFileSync(){throw ze()}async appendFilePromise(){throw ze()}appendFileSync(){throw ze()}async writeFilePromise(){throw ze()}writeFileSync(){throw ze()}async unlinkPromise(){throw ze()}unlinkSync(){throw ze()}async utimesPromise(){throw ze()}utimesSync(){throw ze()}async readFilePromise(){throw ze()}readFileSync(){throw ze()}async readlinkPromise(){throw ze()}readlinkSync(){throw ze()}async truncatePromise(){throw ze()}truncateSync(){throw ze()}watch(){throw ze()}watchFile(){throw ze()}unwatchFile(){throw ze()}},bE=gb;bE.instance=new gb;var ah=class extends fi{constructor(e){super(M);this.baseFs=e}mapFromBase(e){return M.fromPortablePath(e)}mapToBase(e){return M.toPortablePath(e)}};var nhe=/^[0-9]+$/,fb=/^(\/(?:[^/]+\/)*?(?:\$\$virtual|__virtual__))((?:\/((?:[^/]+-)?[a-f0-9]+)(?:\/([^/]+))?)?((?:\/.*)?))$/,she=/^([^/]+-)?[a-f0-9]+$/,Pr=class extends fi{static makeVirtualPath(e,r,i){if(v.basename(e)!=="__virtual__")throw new Error('Assertion failed: Virtual folders must be named "__virtual__"');if(!v.basename(r).match(she))throw new Error("Assertion failed: Virtual components must be ended by an hexadecimal hash");let s=v.relative(v.dirname(e),i).split("/"),o=0;for(;o{let r=t.indexOf(e);if(r<=0)return null;let i=r;for(;r>=0&&(i=r+e.length,t[i]!==v.sep);){if(t[r-1]===v.sep)return null;r=t.indexOf(e,i)}return t.length>i&&t[i]!==v.sep?null:t.slice(0,i)},Jn=class extends gl{constructor({libzip:e,baseFs:r=new Wt,filter:i=null,maxOpenFiles:n=Infinity,readOnlyArchives:s=!1,useCache:o=!0,maxAge:a=5e3,fileExtensions:l=null}){super();this.fdMap=new Map;this.nextFd=3;this.isZip=new Set;this.notZip=new Set;this.realPaths=new Map;this.limitOpenFilesTimeout=null;this.libzipFactory=typeof e!="function"?()=>e:e,this.baseFs=r,this.zipInstances=o?new Map:null,this.filter=i,this.maxOpenFiles=n,this.readOnlyArchives=s,this.maxAge=a,this.fileExtensions=l}static async openPromise(e,r){let i=new Jn(r);try{return await e(i)}finally{i.saveAndClose()}}get libzip(){return typeof this.libzipInstance=="undefined"&&(this.libzipInstance=this.libzipFactory()),this.libzipInstance}getExtractHint(e){return this.baseFs.getExtractHint(e)}getRealPath(){return this.baseFs.getRealPath()}saveAndClose(){if(sh(this),this.zipInstances)for(let[e,{zipFs:r}]of this.zipInstances.entries())r.saveAndClose(),this.zipInstances.delete(e)}discardAndClose(){if(sh(this),this.zipInstances)for(let[e,{zipFs:r}]of this.zipInstances.entries())r.discardAndClose(),this.zipInstances.delete(e)}resolve(e){return this.baseFs.resolve(e)}remapFd(e,r){let i=this.nextFd++|$o;return this.fdMap.set(i,[e,r]),i}async openPromise(e,r,i){return await this.makeCallPromise(e,async()=>await this.baseFs.openPromise(e,r,i),async(n,{subPath:s})=>this.remapFd(n,await n.openPromise(s,r,i)))}openSync(e,r,i){return this.makeCallSync(e,()=>this.baseFs.openSync(e,r,i),(n,{subPath:s})=>this.remapFd(n,n.openSync(s,r,i)))}async opendirPromise(e,r){return await this.makeCallPromise(e,async()=>await this.baseFs.opendirPromise(e,r),async(i,{subPath:n})=>await i.opendirPromise(n,r),{requireSubpath:!1})}opendirSync(e,r){return this.makeCallSync(e,()=>this.baseFs.opendirSync(e,r),(i,{subPath:n})=>i.opendirSync(n,r),{requireSubpath:!1})}async readPromise(e,r,i,n,s){if((e&$o)==0)return await this.baseFs.readPromise(e,r,i,n,s);let o=this.fdMap.get(e);if(typeof o=="undefined")throw Hi("read");let[a,l]=o;return await a.readPromise(l,r,i,n,s)}readSync(e,r,i,n,s){if((e&$o)==0)return this.baseFs.readSync(e,r,i,n,s);let o=this.fdMap.get(e);if(typeof o=="undefined")throw Hi("readSync");let[a,l]=o;return a.readSync(l,r,i,n,s)}async writePromise(e,r,i,n,s){if((e&$o)==0)return typeof r=="string"?await this.baseFs.writePromise(e,r,i):await this.baseFs.writePromise(e,r,i,n,s);let o=this.fdMap.get(e);if(typeof o=="undefined")throw Hi("write");let[a,l]=o;return typeof r=="string"?await a.writePromise(l,r,i):await a.writePromise(l,r,i,n,s)}writeSync(e,r,i,n,s){if((e&$o)==0)return typeof r=="string"?this.baseFs.writeSync(e,r,i):this.baseFs.writeSync(e,r,i,n,s);let o=this.fdMap.get(e);if(typeof o=="undefined")throw Hi("writeSync");let[a,l]=o;return typeof r=="string"?a.writeSync(l,r,i):a.writeSync(l,r,i,n,s)}async closePromise(e){if((e&$o)==0)return await this.baseFs.closePromise(e);let r=this.fdMap.get(e);if(typeof r=="undefined")throw Hi("close");this.fdMap.delete(e);let[i,n]=r;return await i.closePromise(n)}closeSync(e){if((e&$o)==0)return this.baseFs.closeSync(e);let r=this.fdMap.get(e);if(typeof r=="undefined")throw Hi("closeSync");this.fdMap.delete(e);let[i,n]=r;return i.closeSync(n)}createReadStream(e,r){return e===null?this.baseFs.createReadStream(e,r):this.makeCallSync(e,()=>this.baseFs.createReadStream(e,r),(i,{subPath:n})=>i.createReadStream(n,r))}createWriteStream(e,r){return e===null?this.baseFs.createWriteStream(e,r):this.makeCallSync(e,()=>this.baseFs.createWriteStream(e,r),(i,{subPath:n})=>i.createWriteStream(n,r))}async realpathPromise(e){return await this.makeCallPromise(e,async()=>await this.baseFs.realpathPromise(e),async(r,{archivePath:i,subPath:n})=>{let s=this.realPaths.get(i);return typeof s=="undefined"&&(s=await this.baseFs.realpathPromise(i),this.realPaths.set(i,s)),this.pathUtils.join(s,this.pathUtils.relative(Se.root,await r.realpathPromise(n)))})}realpathSync(e){return this.makeCallSync(e,()=>this.baseFs.realpathSync(e),(r,{archivePath:i,subPath:n})=>{let s=this.realPaths.get(i);return typeof s=="undefined"&&(s=this.baseFs.realpathSync(i),this.realPaths.set(i,s)),this.pathUtils.join(s,this.pathUtils.relative(Se.root,r.realpathSync(n)))})}async existsPromise(e){return await this.makeCallPromise(e,async()=>await this.baseFs.existsPromise(e),async(r,{subPath:i})=>await r.existsPromise(i))}existsSync(e){return this.makeCallSync(e,()=>this.baseFs.existsSync(e),(r,{subPath:i})=>r.existsSync(i))}async accessPromise(e,r){return await this.makeCallPromise(e,async()=>await this.baseFs.accessPromise(e,r),async(i,{subPath:n})=>await i.accessPromise(n,r))}accessSync(e,r){return this.makeCallSync(e,()=>this.baseFs.accessSync(e,r),(i,{subPath:n})=>i.accessSync(n,r))}async statPromise(e,r){return await this.makeCallPromise(e,async()=>await this.baseFs.statPromise(e,r),async(i,{subPath:n})=>await i.statPromise(n,r))}statSync(e,r){return this.makeCallSync(e,()=>this.baseFs.statSync(e,r),(i,{subPath:n})=>i.statSync(n,r))}async fstatPromise(e,r){if((e&$o)==0)return this.baseFs.fstatPromise(e,r);let i=this.fdMap.get(e);if(typeof i=="undefined")throw Hi("fstat");let[n,s]=i;return n.fstatPromise(s,r)}fstatSync(e,r){if((e&$o)==0)return this.baseFs.fstatSync(e,r);let i=this.fdMap.get(e);if(typeof i=="undefined")throw Hi("fstatSync");let[n,s]=i;return n.fstatSync(s,r)}async lstatPromise(e,r){return await this.makeCallPromise(e,async()=>await this.baseFs.lstatPromise(e,r),async(i,{subPath:n})=>await i.lstatPromise(n,r))}lstatSync(e,r){return this.makeCallSync(e,()=>this.baseFs.lstatSync(e,r),(i,{subPath:n})=>i.lstatSync(n,r))}async chmodPromise(e,r){return await this.makeCallPromise(e,async()=>await this.baseFs.chmodPromise(e,r),async(i,{subPath:n})=>await i.chmodPromise(n,r))}chmodSync(e,r){return this.makeCallSync(e,()=>this.baseFs.chmodSync(e,r),(i,{subPath:n})=>i.chmodSync(n,r))}async chownPromise(e,r,i){return await this.makeCallPromise(e,async()=>await this.baseFs.chownPromise(e,r,i),async(n,{subPath:s})=>await n.chownPromise(s,r,i))}chownSync(e,r,i){return this.makeCallSync(e,()=>this.baseFs.chownSync(e,r,i),(n,{subPath:s})=>n.chownSync(s,r,i))}async renamePromise(e,r){return await this.makeCallPromise(e,async()=>await this.makeCallPromise(r,async()=>await this.baseFs.renamePromise(e,r),async()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})}),async(i,{subPath:n})=>await this.makeCallPromise(r,async()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})},async(s,{subPath:o})=>{if(i!==s)throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"});return await i.renamePromise(n,o)}))}renameSync(e,r){return this.makeCallSync(e,()=>this.makeCallSync(r,()=>this.baseFs.renameSync(e,r),()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})}),(i,{subPath:n})=>this.makeCallSync(r,()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})},(s,{subPath:o})=>{if(i!==s)throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"});return i.renameSync(n,o)}))}async copyFilePromise(e,r,i=0){let n=async(s,o,a,l)=>{if((i&Ah.constants.COPYFILE_FICLONE_FORCE)!=0)throw Object.assign(new Error(`EXDEV: cross-device clone not permitted, copyfile '${o}' -> ${l}'`),{code:"EXDEV"});if(i&Ah.constants.COPYFILE_EXCL&&await this.existsPromise(o))throw Object.assign(new Error(`EEXIST: file already exists, copyfile '${o}' -> '${l}'`),{code:"EEXIST"});let c;try{c=await s.readFilePromise(o)}catch(u){throw Object.assign(new Error(`EINVAL: invalid argument, copyfile '${o}' -> '${l}'`),{code:"EINVAL"})}await a.writeFilePromise(l,c)};return await this.makeCallPromise(e,async()=>await this.makeCallPromise(r,async()=>await this.baseFs.copyFilePromise(e,r,i),async(s,{subPath:o})=>await n(this.baseFs,e,s,o)),async(s,{subPath:o})=>await this.makeCallPromise(r,async()=>await n(s,o,this.baseFs,r),async(a,{subPath:l})=>s!==a?await n(s,o,a,l):await s.copyFilePromise(o,l,i)))}copyFileSync(e,r,i=0){let n=(s,o,a,l)=>{if((i&Ah.constants.COPYFILE_FICLONE_FORCE)!=0)throw Object.assign(new Error(`EXDEV: cross-device clone not permitted, copyfile '${o}' -> ${l}'`),{code:"EXDEV"});if(i&Ah.constants.COPYFILE_EXCL&&this.existsSync(o))throw Object.assign(new Error(`EEXIST: file already exists, copyfile '${o}' -> '${l}'`),{code:"EEXIST"});let c;try{c=s.readFileSync(o)}catch(u){throw Object.assign(new Error(`EINVAL: invalid argument, copyfile '${o}' -> '${l}'`),{code:"EINVAL"})}a.writeFileSync(l,c)};return this.makeCallSync(e,()=>this.makeCallSync(r,()=>this.baseFs.copyFileSync(e,r,i),(s,{subPath:o})=>n(this.baseFs,e,s,o)),(s,{subPath:o})=>this.makeCallSync(r,()=>n(s,o,this.baseFs,r),(a,{subPath:l})=>s!==a?n(s,o,a,l):s.copyFileSync(o,l,i)))}async appendFilePromise(e,r,i){return await this.makeCallPromise(e,async()=>await this.baseFs.appendFilePromise(e,r,i),async(n,{subPath:s})=>await n.appendFilePromise(s,r,i))}appendFileSync(e,r,i){return this.makeCallSync(e,()=>this.baseFs.appendFileSync(e,r,i),(n,{subPath:s})=>n.appendFileSync(s,r,i))}async writeFilePromise(e,r,i){return await this.makeCallPromise(e,async()=>await this.baseFs.writeFilePromise(e,r,i),async(n,{subPath:s})=>await n.writeFilePromise(s,r,i))}writeFileSync(e,r,i){return this.makeCallSync(e,()=>this.baseFs.writeFileSync(e,r,i),(n,{subPath:s})=>n.writeFileSync(s,r,i))}async unlinkPromise(e){return await this.makeCallPromise(e,async()=>await this.baseFs.unlinkPromise(e),async(r,{subPath:i})=>await r.unlinkPromise(i))}unlinkSync(e){return this.makeCallSync(e,()=>this.baseFs.unlinkSync(e),(r,{subPath:i})=>r.unlinkSync(i))}async utimesPromise(e,r,i){return await this.makeCallPromise(e,async()=>await this.baseFs.utimesPromise(e,r,i),async(n,{subPath:s})=>await n.utimesPromise(s,r,i))}utimesSync(e,r,i){return this.makeCallSync(e,()=>this.baseFs.utimesSync(e,r,i),(n,{subPath:s})=>n.utimesSync(s,r,i))}async mkdirPromise(e,r){return await this.makeCallPromise(e,async()=>await this.baseFs.mkdirPromise(e,r),async(i,{subPath:n})=>await i.mkdirPromise(n,r))}mkdirSync(e,r){return this.makeCallSync(e,()=>this.baseFs.mkdirSync(e,r),(i,{subPath:n})=>i.mkdirSync(n,r))}async rmdirPromise(e,r){return await this.makeCallPromise(e,async()=>await this.baseFs.rmdirPromise(e,r),async(i,{subPath:n})=>await i.rmdirPromise(n,r))}rmdirSync(e,r){return this.makeCallSync(e,()=>this.baseFs.rmdirSync(e,r),(i,{subPath:n})=>i.rmdirSync(n,r))}async linkPromise(e,r){return await this.makeCallPromise(r,async()=>await this.baseFs.linkPromise(e,r),async(i,{subPath:n})=>await i.linkPromise(e,n))}linkSync(e,r){return this.makeCallSync(r,()=>this.baseFs.linkSync(e,r),(i,{subPath:n})=>i.linkSync(e,n))}async symlinkPromise(e,r,i){return await this.makeCallPromise(r,async()=>await this.baseFs.symlinkPromise(e,r,i),async(n,{subPath:s})=>await n.symlinkPromise(e,s))}symlinkSync(e,r,i){return this.makeCallSync(r,()=>this.baseFs.symlinkSync(e,r,i),(n,{subPath:s})=>n.symlinkSync(e,s))}async readFilePromise(e,r){return this.makeCallPromise(e,async()=>{switch(r){case"utf8":return await this.baseFs.readFilePromise(e,r);default:return await this.baseFs.readFilePromise(e,r)}},async(i,{subPath:n})=>await i.readFilePromise(n,r))}readFileSync(e,r){return this.makeCallSync(e,()=>{switch(r){case"utf8":return this.baseFs.readFileSync(e,r);default:return this.baseFs.readFileSync(e,r)}},(i,{subPath:n})=>i.readFileSync(n,r))}async readdirPromise(e,r){return await this.makeCallPromise(e,async()=>await this.baseFs.readdirPromise(e,r),async(i,{subPath:n})=>await i.readdirPromise(n,r),{requireSubpath:!1})}readdirSync(e,r){return this.makeCallSync(e,()=>this.baseFs.readdirSync(e,r),(i,{subPath:n})=>i.readdirSync(n,r),{requireSubpath:!1})}async readlinkPromise(e){return await this.makeCallPromise(e,async()=>await this.baseFs.readlinkPromise(e),async(r,{subPath:i})=>await r.readlinkPromise(i))}readlinkSync(e){return this.makeCallSync(e,()=>this.baseFs.readlinkSync(e),(r,{subPath:i})=>r.readlinkSync(i))}async truncatePromise(e,r){return await this.makeCallPromise(e,async()=>await this.baseFs.truncatePromise(e,r),async(i,{subPath:n})=>await i.truncatePromise(n,r))}truncateSync(e,r){return this.makeCallSync(e,()=>this.baseFs.truncateSync(e,r),(i,{subPath:n})=>i.truncateSync(n,r))}watch(e,r,i){return this.makeCallSync(e,()=>this.baseFs.watch(e,r,i),(n,{subPath:s})=>n.watch(s,r,i))}watchFile(e,r,i){return this.makeCallSync(e,()=>this.baseFs.watchFile(e,r,i),()=>QE(this,e,r,i))}unwatchFile(e,r){return this.makeCallSync(e,()=>this.baseFs.unwatchFile(e,r),()=>nh(this,e,r))}async makeCallPromise(e,r,i,{requireSubpath:n=!0}={}){if(typeof e!="string")return await r();let s=this.resolve(e),o=this.findZip(s);return o?n&&o.subPath==="/"?await r():await this.getZipPromise(o.archivePath,async a=>await i(a,o)):await r()}makeCallSync(e,r,i,{requireSubpath:n=!0}={}){if(typeof e!="string")return r();let s=this.resolve(e),o=this.findZip(s);return!o||n&&o.subPath==="/"?r():this.getZipSync(o.archivePath,a=>i(a,o))}findZip(e){if(this.filter&&!this.filter.test(e))return null;let r="";for(;;){let i=e.substr(r.length),n;if(!this.fileExtensions)n=SO(i,".zip");else for(let s of this.fileExtensions)if(n=SO(i,s),n)break;if(!n)return null;if(r=this.pathUtils.join(r,n),this.isZip.has(r)===!1){if(this.notZip.has(r))continue;try{if(!this.baseFs.lstatSync(r).isFile()){this.notZip.add(r);continue}}catch{return null}this.isZip.add(r)}return{archivePath:r,subPath:this.pathUtils.join(Se.root,e.substr(r.length))}}}limitOpenFiles(e){if(this.zipInstances===null)return;let r=Date.now(),i=r+this.maxAge,n=e===null?0:this.zipInstances.size-e;for(let[s,{zipFs:o,expiresAt:a,refCount:l}]of this.zipInstances.entries())if(!(l!==0||o.hasOpenFileHandles())){if(r>=a){o.saveAndClose(),this.zipInstances.delete(s),n-=1;continue}else if(e===null||n<=0){i=a;break}o.saveAndClose(),this.zipInstances.delete(s),n-=1}this.limitOpenFilesTimeout===null&&(e===null&&this.zipInstances.size>0||e!==null)&&(this.limitOpenFilesTimeout=setTimeout(()=>{this.limitOpenFilesTimeout=null,this.limitOpenFiles(null)},i-r).unref())}async getZipPromise(e,r){let i=async()=>({baseFs:this.baseFs,libzip:this.libzip,readOnly:this.readOnlyArchives,stats:await this.baseFs.statPromise(e)});if(this.zipInstances){let n=this.zipInstances.get(e);if(!n){let s=await i();n=this.zipInstances.get(e),n||(n={zipFs:new Jr(e,s),expiresAt:0,refCount:0})}this.zipInstances.delete(e),this.limitOpenFiles(this.maxOpenFiles-1),this.zipInstances.set(e,n),n.expiresAt=Date.now()+this.maxAge,n.refCount+=1;try{return await r(n.zipFs)}finally{n.refCount-=1}}else{let n=new Jr(e,await i());try{return await r(n)}finally{n.saveAndClose()}}}getZipSync(e,r){let i=()=>({baseFs:this.baseFs,libzip:this.libzip,readOnly:this.readOnlyArchives,stats:this.baseFs.statSync(e)});if(this.zipInstances){let n=this.zipInstances.get(e);return n||(n={zipFs:new Jr(e,i()),expiresAt:0,refCount:0}),this.zipInstances.delete(e),this.limitOpenFiles(this.maxOpenFiles-1),this.zipInstances.set(e,n),n.expiresAt=Date.now()+this.maxAge,r(n.zipFs)}else{let n=new Jr(e,i());try{return r(n)}finally{n.saveAndClose()}}}};var lh=ie(require("util"));var vE=ie(require("url"));var hb=class extends fi{constructor(e){super(M);this.baseFs=e}mapFromBase(e){return e}mapToBase(e){return e instanceof vE.URL?(0,vE.fileURLToPath)(e):e}};var ohe=new Set(["accessSync","appendFileSync","createReadStream","createWriteStream","chmodSync","chownSync","closeSync","copyFileSync","linkSync","lstatSync","fstatSync","lutimesSync","mkdirSync","openSync","opendirSync","readSync","readlinkSync","readFileSync","readdirSync","readlinkSync","realpathSync","renameSync","rmdirSync","statSync","symlinkSync","truncateSync","unlinkSync","unwatchFile","utimesSync","watch","watchFile","writeFileSync","writeSync"]),xO=new Set(["accessPromise","appendFilePromise","chmodPromise","chownPromise","closePromise","copyFilePromise","linkPromise","fstatPromise","lstatPromise","lutimesPromise","mkdirPromise","openPromise","opendirPromise","readdirPromise","realpathPromise","readFilePromise","readdirPromise","readlinkPromise","renamePromise","rmdirPromise","statPromise","symlinkPromise","truncatePromise","unlinkPromise","utimesPromise","writeFilePromise","writeSync"]),ahe=new Set(["appendFilePromise","chmodPromise","chownPromise","closePromise","readPromise","readFilePromise","statPromise","truncatePromise","utimesPromise","writePromise","writeFilePromise"]);function pb(t,e){e=new hb(e);let r=(i,n,s)=>{let o=i[n];i[n]=s,typeof(o==null?void 0:o[lh.promisify.custom])!="undefined"&&(s[lh.promisify.custom]=o[lh.promisify.custom])};{r(t,"exists",(i,...n)=>{let o=typeof n[n.length-1]=="function"?n.pop():()=>{};process.nextTick(()=>{e.existsPromise(i).then(a=>{o(a)},()=>{o(!1)})})}),r(t,"read",(i,n,...s)=>{let a=typeof s[s.length-1]=="function"?s.pop():()=>{};process.nextTick(()=>{e.readPromise(i,n,...s).then(l=>{a(null,l,n)},l=>{a(l,0,n)})})});for(let i of xO){let n=i.replace(/Promise$/,"");if(typeof t[n]=="undefined")continue;let s=e[i];if(typeof s=="undefined")continue;r(t,n,(...a)=>{let c=typeof a[a.length-1]=="function"?a.pop():()=>{};process.nextTick(()=>{s.apply(e,a).then(u=>{c(null,u)},u=>{c(u)})})})}t.realpath.native=t.realpath}{r(t,"existsSync",i=>{try{return e.existsSync(i)}catch(n){return!1}});for(let i of ohe){let n=i;if(typeof t[n]=="undefined")continue;let s=e[i];typeof s!="undefined"&&r(t,n,s.bind(e))}t.realpathSync.native=t.realpathSync}{let i=process.emitWarning;process.emitWarning=()=>{};let n;try{n=t.promises}finally{process.emitWarning=i}if(typeof n!="undefined"){for(let o of xO){let a=o.replace(/Promise$/,"");if(typeof n[a]=="undefined")continue;let l=e[o];typeof l!="undefined"&&o!=="open"&&r(n,a,l.bind(e))}class s{constructor(a){this.fd=a}}for(let o of ahe){let a=o.replace(/Promise$/,""),l=e[o];typeof l!="undefined"&&r(s.prototype,a,function(...c){return l.call(e,this.fd,...c)})}r(n,"open",async(...o)=>{let a=await e.openPromise(...o);return new s(a)})}}t.read[lh.promisify.custom]=async(i,n,...s)=>({bytesRead:await e.readPromise(i,n,...s),buffer:n})}function SE(t,e){let r=Object.create(t);return pb(r,e),r}var kO=ie(require("os"));function PO(t){let e=M.toPortablePath(kO.default.tmpdir()),r=Math.ceil(Math.random()*4294967296).toString(16).padStart(8,"0");return v.join(e,`${t}${r}`)}var vs=new Set,DO=!1;function RO(){DO||(DO=!0,process.once("exit",()=>{T.rmtempSync()}))}var T=Object.assign(new Wt,{detachTemp(t){vs.delete(t)},mktempSync(t){for(RO();;){let e=PO("xfs-");try{this.mkdirSync(e)}catch(i){if(i.code==="EEXIST")continue;throw i}let r=this.realpathSync(e);if(vs.add(r),typeof t!="undefined")try{return t(r)}finally{if(vs.has(r)){vs.delete(r);try{this.removeSync(r)}catch{}}}else return r}},async mktempPromise(t){for(RO();;){let e=PO("xfs-");try{await this.mkdirPromise(e)}catch(i){if(i.code==="EEXIST")continue;throw i}let r=await this.realpathPromise(e);if(vs.add(r),typeof t!="undefined")try{return await t(r)}finally{if(vs.has(r)){vs.delete(r);try{await this.removePromise(r)}catch{}}}else return r}},async rmtempPromise(){await Promise.all(Array.from(vs.values()).map(async t=>{try{await T.removePromise(t,{maxRetries:0}),vs.delete(t)}catch{}}))},rmtempSync(){for(let t of vs)try{T.removeSync(t),vs.delete(t)}catch{}}});var vb=ie(bb()),Pn;(function(i){i[i.Never=0]="Never",i[i.ErrorCode=1]="ErrorCode",i[i.Always=2]="Always"})(Pn||(Pn={}));function dl(t){return t!==null&&typeof t.fd=="number"}var Cl=new Set;function Sb(){}function xb(){for(let t of Cl)t.kill()}async function to(t,e,{cwd:r,env:i=process.env,strict:n=!1,stdin:s=null,stdout:o,stderr:a,end:l=2}){let c=["pipe","pipe","pipe"];s===null?c[0]="ignore":dl(s)&&(c[0]=s),dl(o)&&(c[1]=o),dl(a)&&(c[2]=a);let u=(0,vb.default)(t,e,{cwd:M.fromPortablePath(r),env:_(P({},i),{PWD:M.fromPortablePath(r)}),stdio:c});Cl.add(u),Cl.size===1&&(process.on("SIGINT",Sb),process.on("SIGTERM",xb)),!dl(s)&&s!==null&&s.pipe(u.stdin),dl(o)||u.stdout.pipe(o,{end:!1}),dl(a)||u.stderr.pipe(a,{end:!1});let g=()=>{for(let f of new Set([o,a]))dl(f)||f.end()};return new Promise((f,h)=>{u.on("error",p=>{Cl.delete(u),Cl.size===0&&(process.off("SIGINT",Sb),process.off("SIGTERM",xb)),(l===2||l===1)&&g(),h(p)}),u.on("close",(p,d)=>{Cl.delete(u),Cl.size===0&&(process.off("SIGINT",Sb),process.off("SIGTERM",xb)),(l===2||l===1&&p>0)&&g(),p===0||!n?f({code:kb(p,d)}):h(p!==null?new Error(`Child "${t}" exited with exit code ${p}`):new Error(`Child "${t}" exited with signal ${d}`))})})}async function Nhe(t,e,{cwd:r,env:i=process.env,encoding:n="utf8",strict:s=!1}){let o=["ignore","pipe","pipe"],a=[],l=[],c=M.fromPortablePath(r);typeof i.PWD!="undefined"&&(i=_(P({},i),{PWD:c}));let u=(0,vb.default)(t,e,{cwd:c,env:i,stdio:o});return u.stdout.on("data",g=>{a.push(g)}),u.stderr.on("data",g=>{l.push(g)}),await new Promise((g,f)=>{u.on("error",()=>{f()}),u.on("close",(h,p)=>{let d=n==="buffer"?Buffer.concat(a):Buffer.concat(a).toString(n),m=n==="buffer"?Buffer.concat(l):Buffer.concat(l).toString(n);h===0||!s?g({code:kb(h,p),stdout:d,stderr:m}):f(Object.assign(new Error(`Child "${t}" exited with exit code ${h} - -${m}`),{code:kb(h,p),stdout:d,stderr:m}))})})}var Lhe=new Map([["SIGINT",2],["SIGQUIT",3],["SIGKILL",9],["SIGTERM",15]]);function kb(t,e){let r=Lhe.get(e);return typeof r!="undefined"?128+r:t!=null?t:1}var Pb={};it(Pb,{getDefaultGlobalFolder:()=>Rb,getHomeFolder:()=>uh,isFolderInside:()=>Fb});var Db=ie(require("os"));function Rb(){if(process.platform==="win32"){let t=M.toPortablePath(process.env.LOCALAPPDATA||M.join((0,Db.homedir)(),"AppData","Local"));return v.resolve(t,"Yarn/Berry")}if(process.env.XDG_DATA_HOME){let t=M.toPortablePath(process.env.XDG_DATA_HOME);return v.resolve(t,"yarn/berry")}return v.resolve(uh(),".yarn/berry")}function uh(){return M.toPortablePath((0,Db.homedir)()||"/usr/local/share")}function Fb(t,e){let r=v.relative(e,t);return r&&!r.startsWith("..")&&!v.isAbsolute(r)}var ue={};it(ue,{LogLevel:()=>Ts,Style:()=>Gl,Type:()=>Le,addLogFilterSupport:()=>Cp,applyColor:()=>On,applyHyperlink:()=>Ku,applyStyle:()=>Py,json:()=>Uu,mark:()=>xx,pretty:()=>Ve,prettyField:()=>Yl,prettyList:()=>Kx,supportsColor:()=>xy,supportsHyperlinks:()=>Mx,tuple:()=>jl});var pp=ie(jb()),dp=ie(ml()),o3=ie(Nn()),a3=ie(gU());var z;(function(te){te[te.UNNAMED=0]="UNNAMED",te[te.EXCEPTION=1]="EXCEPTION",te[te.MISSING_PEER_DEPENDENCY=2]="MISSING_PEER_DEPENDENCY",te[te.CYCLIC_DEPENDENCIES=3]="CYCLIC_DEPENDENCIES",te[te.DISABLED_BUILD_SCRIPTS=4]="DISABLED_BUILD_SCRIPTS",te[te.BUILD_DISABLED=5]="BUILD_DISABLED",te[te.SOFT_LINK_BUILD=6]="SOFT_LINK_BUILD",te[te.MUST_BUILD=7]="MUST_BUILD",te[te.MUST_REBUILD=8]="MUST_REBUILD",te[te.BUILD_FAILED=9]="BUILD_FAILED",te[te.RESOLVER_NOT_FOUND=10]="RESOLVER_NOT_FOUND",te[te.FETCHER_NOT_FOUND=11]="FETCHER_NOT_FOUND",te[te.LINKER_NOT_FOUND=12]="LINKER_NOT_FOUND",te[te.FETCH_NOT_CACHED=13]="FETCH_NOT_CACHED",te[te.YARN_IMPORT_FAILED=14]="YARN_IMPORT_FAILED",te[te.REMOTE_INVALID=15]="REMOTE_INVALID",te[te.REMOTE_NOT_FOUND=16]="REMOTE_NOT_FOUND",te[te.RESOLUTION_PACK=17]="RESOLUTION_PACK",te[te.CACHE_CHECKSUM_MISMATCH=18]="CACHE_CHECKSUM_MISMATCH",te[te.UNUSED_CACHE_ENTRY=19]="UNUSED_CACHE_ENTRY",te[te.MISSING_LOCKFILE_ENTRY=20]="MISSING_LOCKFILE_ENTRY",te[te.WORKSPACE_NOT_FOUND=21]="WORKSPACE_NOT_FOUND",te[te.TOO_MANY_MATCHING_WORKSPACES=22]="TOO_MANY_MATCHING_WORKSPACES",te[te.CONSTRAINTS_MISSING_DEPENDENCY=23]="CONSTRAINTS_MISSING_DEPENDENCY",te[te.CONSTRAINTS_INCOMPATIBLE_DEPENDENCY=24]="CONSTRAINTS_INCOMPATIBLE_DEPENDENCY",te[te.CONSTRAINTS_EXTRANEOUS_DEPENDENCY=25]="CONSTRAINTS_EXTRANEOUS_DEPENDENCY",te[te.CONSTRAINTS_INVALID_DEPENDENCY=26]="CONSTRAINTS_INVALID_DEPENDENCY",te[te.CANT_SUGGEST_RESOLUTIONS=27]="CANT_SUGGEST_RESOLUTIONS",te[te.FROZEN_LOCKFILE_EXCEPTION=28]="FROZEN_LOCKFILE_EXCEPTION",te[te.CROSS_DRIVE_VIRTUAL_LOCAL=29]="CROSS_DRIVE_VIRTUAL_LOCAL",te[te.FETCH_FAILED=30]="FETCH_FAILED",te[te.DANGEROUS_NODE_MODULES=31]="DANGEROUS_NODE_MODULES",te[te.NODE_GYP_INJECTED=32]="NODE_GYP_INJECTED",te[te.AUTHENTICATION_NOT_FOUND=33]="AUTHENTICATION_NOT_FOUND",te[te.INVALID_CONFIGURATION_KEY=34]="INVALID_CONFIGURATION_KEY",te[te.NETWORK_ERROR=35]="NETWORK_ERROR",te[te.LIFECYCLE_SCRIPT=36]="LIFECYCLE_SCRIPT",te[te.CONSTRAINTS_MISSING_FIELD=37]="CONSTRAINTS_MISSING_FIELD",te[te.CONSTRAINTS_INCOMPATIBLE_FIELD=38]="CONSTRAINTS_INCOMPATIBLE_FIELD",te[te.CONSTRAINTS_EXTRANEOUS_FIELD=39]="CONSTRAINTS_EXTRANEOUS_FIELD",te[te.CONSTRAINTS_INVALID_FIELD=40]="CONSTRAINTS_INVALID_FIELD",te[te.AUTHENTICATION_INVALID=41]="AUTHENTICATION_INVALID",te[te.PROLOG_UNKNOWN_ERROR=42]="PROLOG_UNKNOWN_ERROR",te[te.PROLOG_SYNTAX_ERROR=43]="PROLOG_SYNTAX_ERROR",te[te.PROLOG_EXISTENCE_ERROR=44]="PROLOG_EXISTENCE_ERROR",te[te.STACK_OVERFLOW_RESOLUTION=45]="STACK_OVERFLOW_RESOLUTION",te[te.AUTOMERGE_FAILED_TO_PARSE=46]="AUTOMERGE_FAILED_TO_PARSE",te[te.AUTOMERGE_IMMUTABLE=47]="AUTOMERGE_IMMUTABLE",te[te.AUTOMERGE_SUCCESS=48]="AUTOMERGE_SUCCESS",te[te.AUTOMERGE_REQUIRED=49]="AUTOMERGE_REQUIRED",te[te.DEPRECATED_CLI_SETTINGS=50]="DEPRECATED_CLI_SETTINGS",te[te.PLUGIN_NAME_NOT_FOUND=51]="PLUGIN_NAME_NOT_FOUND",te[te.INVALID_PLUGIN_REFERENCE=52]="INVALID_PLUGIN_REFERENCE",te[te.CONSTRAINTS_AMBIGUITY=53]="CONSTRAINTS_AMBIGUITY",te[te.CACHE_OUTSIDE_PROJECT=54]="CACHE_OUTSIDE_PROJECT",te[te.IMMUTABLE_INSTALL=55]="IMMUTABLE_INSTALL",te[te.IMMUTABLE_CACHE=56]="IMMUTABLE_CACHE",te[te.INVALID_MANIFEST=57]="INVALID_MANIFEST",te[te.PACKAGE_PREPARATION_FAILED=58]="PACKAGE_PREPARATION_FAILED",te[te.INVALID_RANGE_PEER_DEPENDENCY=59]="INVALID_RANGE_PEER_DEPENDENCY",te[te.INCOMPATIBLE_PEER_DEPENDENCY=60]="INCOMPATIBLE_PEER_DEPENDENCY",te[te.DEPRECATED_PACKAGE=61]="DEPRECATED_PACKAGE",te[te.INCOMPATIBLE_OS=62]="INCOMPATIBLE_OS",te[te.INCOMPATIBLE_CPU=63]="INCOMPATIBLE_CPU",te[te.FROZEN_ARTIFACT_EXCEPTION=64]="FROZEN_ARTIFACT_EXCEPTION",te[te.TELEMETRY_NOTICE=65]="TELEMETRY_NOTICE",te[te.PATCH_HUNK_FAILED=66]="PATCH_HUNK_FAILED",te[te.INVALID_CONFIGURATION_VALUE=67]="INVALID_CONFIGURATION_VALUE",te[te.UNUSED_PACKAGE_EXTENSION=68]="UNUSED_PACKAGE_EXTENSION",te[te.REDUNDANT_PACKAGE_EXTENSION=69]="REDUNDANT_PACKAGE_EXTENSION",te[te.AUTO_NM_SUCCESS=70]="AUTO_NM_SUCCESS",te[te.NM_CANT_INSTALL_EXTERNAL_SOFT_LINK=71]="NM_CANT_INSTALL_EXTERNAL_SOFT_LINK",te[te.NM_PRESERVE_SYMLINKS_REQUIRED=72]="NM_PRESERVE_SYMLINKS_REQUIRED",te[te.UPDATE_LOCKFILE_ONLY_SKIP_LINK=73]="UPDATE_LOCKFILE_ONLY_SKIP_LINK",te[te.NM_HARDLINKS_MODE_DOWNGRADED=74]="NM_HARDLINKS_MODE_DOWNGRADED",te[te.PROLOG_INSTANTIATION_ERROR=75]="PROLOG_INSTANTIATION_ERROR",te[te.INCOMPATIBLE_ARCHITECTURE=76]="INCOMPATIBLE_ARCHITECTURE",te[te.GHOST_ARCHITECTURE=77]="GHOST_ARCHITECTURE"})(z||(z={}));function KE(t){return`YN${t.toString(10).padStart(4,"0")}`}var de={};it(de,{BufferStream:()=>OH,CachingStrategy:()=>Dl,DefaultStream:()=>KH,assertNever:()=>Lv,bufferStream:()=>Cu,buildIgnorePattern:()=>DEe,convertMapsToIndexableObjects:()=>aI,dynamicRequire:()=>mu,escapeRegExp:()=>SEe,getArrayWithDefault:()=>hu,getFactoryWithDefault:()=>na,getMapWithDefault:()=>pu,getSetWithDefault:()=>Pl,isIndexableObject:()=>Tv,isPathLike:()=>REe,isTaggedYarnVersion:()=>vEe,mapAndFilter:()=>kl,mapAndFind:()=>MH,overrideType:()=>Nv,parseBoolean:()=>Hh,parseOptionalBoolean:()=>jH,prettifyAsyncErrors:()=>du,prettifySyncErrors:()=>Mv,releaseAfterUseAsync:()=>kEe,replaceEnvVariables:()=>Ov,sortMap:()=>gn,tryParseOptionalBoolean:()=>Kv,validateEnum:()=>xEe});var vh={};it(vh,{Builtins:()=>Iv,Cli:()=>oo,Command:()=>ye,Option:()=>Y,UsageError:()=>me});var yl=0,Eh=1,Gi=2,sv="",hi="\0",Au=-1,ov=/^(-h|--help)(?:=([0-9]+))?$/,UE=/^(--[a-z]+(?:-[a-z]+)*|-[a-zA-Z]+)$/,fU=/^-[a-zA-Z]{2,}$/,av=/^([^=]+)=([\s\S]*)$/,Av=process.env.DEBUG_CLI==="1";var me=class extends Error{constructor(e){super(e);this.clipanion={type:"usage"},this.name="UsageError"}},Ih=class extends Error{constructor(e,r){super();if(this.input=e,this.candidates=r,this.clipanion={type:"none"},this.name="UnknownSyntaxError",this.candidates.length===0)this.message="Command not found, but we're not sure what's the alternative.";else if(this.candidates.every(i=>i.reason!==null&&i.reason===r[0].reason)){let[{reason:i}]=this.candidates;this.message=`${i} - -${this.candidates.map(({usage:n})=>`$ ${n}`).join(` -`)}`}else if(this.candidates.length===1){let[{usage:i}]=this.candidates;this.message=`Command not found; did you mean: - -$ ${i} -${lv(e)}`}else this.message=`Command not found; did you mean one of: - -${this.candidates.map(({usage:i},n)=>`${`${n}.`.padStart(4)} ${i}`).join(` -`)} - -${lv(e)}`}},cv=class extends Error{constructor(e,r){super();this.input=e,this.usages=r,this.clipanion={type:"none"},this.name="AmbiguousSyntaxError",this.message=`Cannot find which to pick amongst the following alternatives: - -${this.usages.map((i,n)=>`${`${n}.`.padStart(4)} ${i}`).join(` -`)} - -${lv(e)}`}},lv=t=>`While running ${t.filter(e=>e!==hi).map(e=>{let r=JSON.stringify(e);return e.match(/\s/)||e.length===0||r!==`"${e}"`?r:e}).join(" ")}`;var yh=Symbol("clipanion/isOption");function ji(t){return _(P({},t),{[yh]:!0})}function so(t,e){return typeof t=="undefined"?[t,e]:typeof t=="object"&&t!==null&&!Array.isArray(t)?[void 0,t]:[t,e]}function HE(t,e=!1){let r=t.replace(/^\.: /,"");return e&&(r=r[0].toLowerCase()+r.slice(1)),r}function wh(t,e){return e.length===1?new me(`${t}: ${HE(e[0],!0)}`):new me(`${t}: -${e.map(r=>` -- ${HE(r)}`).join("")}`)}function Bh(t,e,r){if(typeof r=="undefined")return e;let i=[],n=[],s=a=>{let l=e;return e=a,s.bind(null,l)};if(!r(e,{errors:i,coercions:n,coercion:s}))throw wh(`Invalid value for ${t}`,i);for(let[,a]of n)a();return e}var ye=class{constructor(){this.help=!1}static Usage(e){return e}async catch(e){throw e}async validateAndExecute(){let r=this.constructor.schema;if(typeof r!="undefined"){let{isDict:n,isUnknown:s,applyCascade:o}=await Promise.resolve().then(()=>(Ss(),lu)),a=o(n(s()),r),l=[],c=[];if(!a(this,{errors:l,coercions:c}))throw wh("Invalid option schema",l);for(let[,g]of c)g()}let i=await this.execute();return typeof i!="undefined"?i:0}};ye.isOption=yh;ye.Default=[];function un(t){Av&&console.log(t)}var BU={candidateUsage:null,requiredOptions:[],errorMessage:null,ignoreOptions:!1,path:[],positionals:[],options:[],remainder:null,selectedIndex:Au};function QU(){return{nodes:[qi(),qi(),qi()]}}function nCe(t){let e=QU(),r=[],i=e.nodes.length;for(let n of t){r.push(i);for(let s=0;s{if(e.has(i))return;e.add(i);let n=t.nodes[i];for(let o of Object.values(n.statics))for(let{to:a}of o)r(a);for(let[,{to:o}]of n.dynamics)r(o);for(let{to:o}of n.shortcuts)r(o);let s=new Set(n.shortcuts.map(({to:o})=>o));for(;n.shortcuts.length>0;){let{to:o}=n.shortcuts.shift(),a=t.nodes[o];for(let[l,c]of Object.entries(a.statics)){let u=Object.prototype.hasOwnProperty.call(n.statics,l)?n.statics[l]:n.statics[l]=[];for(let g of c)u.some(({to:f})=>g.to===f)||u.push(g)}for(let[l,c]of a.dynamics)n.dynamics.some(([u,{to:g}])=>l===u&&c.to===g)||n.dynamics.push([l,c]);for(let l of a.shortcuts)s.has(l.to)||(n.shortcuts.push(l),s.add(l.to))}};r(yl)}function oCe(t,{prefix:e=""}={}){if(Av){un(`${e}Nodes are:`);for(let r=0;rl!==Gi).map(({state:l})=>({usage:l.candidateUsage,reason:null})));if(a.every(({node:l})=>l===Gi))throw new Ih(e,a.map(({state:l})=>({usage:l.candidateUsage,reason:l.errorMessage})));i=aCe(a)}if(i.length>0){un(" Results:");for(let s of i)un(` - ${s.node} -> ${JSON.stringify(s.state)}`)}else un(" No results");return i}function ACe(t,e){if(e.selectedIndex!==null)return!0;if(Object.prototype.hasOwnProperty.call(t.statics,hi)){for(let{to:r}of t.statics[hi])if(r===Eh)return!0}return!1}function cCe(t,e,r){let i=r&&e.length>0?[""]:[],n=vU(t,e,r),s=[],o=new Set,a=(l,c,u=!0)=>{let g=[c];for(;g.length>0;){let h=g;g=[];for(let p of h){let d=t.nodes[p],m=Object.keys(d.statics);for(let I of Object.keys(d.statics)){let B=m[0];for(let{to:b,reducer:R}of d.statics[B])R==="pushPath"&&(u||l.push(B),g.push(b))}}u=!1}let f=JSON.stringify(l);o.has(f)||(s.push(l),o.add(f))};for(let{node:l,state:c}of n){if(c.remainder!==null){a([c.remainder],l);continue}let u=t.nodes[l],g=ACe(u,c);for(let[f,h]of Object.entries(u.statics))(g&&f!==hi||!f.startsWith("-")&&h.some(({reducer:p})=>p==="pushPath"))&&a([...i,f],l);if(!!g)for(let[f,{to:h}]of u.dynamics){if(h===Gi)continue;let p=lCe(f,c);if(p!==null)for(let d of p)a([...i,d],l)}}return[...s].sort()}function gCe(t,e){let r=vU(t,[...e,hi]);return uCe(e,r.map(({state:i})=>i))}function aCe(t){let e=0;for(let{state:r}of t)r.path.length>e&&(e=r.path.length);return t.filter(({state:r})=>r.path.length===e)}function uCe(t,e){let r=e.filter(g=>g.selectedIndex!==null);if(r.length===0)throw new Error;let i=r.filter(g=>g.requiredOptions.every(f=>f.some(h=>g.options.find(p=>p.name===h))));if(i.length===0)throw new Ih(t,r.map(g=>({usage:g.candidateUsage,reason:null})));let n=0;for(let g of i)g.path.length>n&&(n=g.path.length);let s=i.filter(g=>g.path.length===n),o=g=>g.positionals.filter(({extra:f})=>!f).length+g.options.length,a=s.map(g=>({state:g,positionalCount:o(g)})),l=0;for(let{positionalCount:g}of a)g>l&&(l=g);let c=a.filter(({positionalCount:g})=>g===l).map(({state:g})=>g),u=fCe(c);if(u.length>1)throw new cv(t,u.map(g=>g.candidateUsage));return u[0]}function fCe(t){let e=[],r=[];for(let i of t)i.selectedIndex===Au?r.push(i):e.push(i);return r.length>0&&e.push(_(P({},BU),{path:SU(...r.map(i=>i.path)),options:r.reduce((i,n)=>i.concat(n.options),[])})),e}function SU(t,e,...r){return e===void 0?Array.from(t):SU(t.filter((i,n)=>i===e[n]),...r)}function qi(){return{dynamics:[],shortcuts:[],statics:{}}}function bU(t){return t===Eh||t===Gi}function Cv(t,e=0){return{to:bU(t.to)?t.to:t.to>2?t.to+e-2:t.to+e,reducer:t.reducer}}function iCe(t,e=0){let r=qi();for(let[i,n]of t.dynamics)r.dynamics.push([i,Cv(n,e)]);for(let i of t.shortcuts)r.shortcuts.push(Cv(i,e));for(let[i,n]of Object.entries(t.statics))r.statics[i]=n.map(s=>Cv(s,e));return r}function pi(t,e,r,i,n){t.nodes[e].dynamics.push([r,{to:i,reducer:n}])}function cu(t,e,r,i){t.nodes[e].shortcuts.push({to:r,reducer:i})}function ta(t,e,r,i,n){(Object.prototype.hasOwnProperty.call(t.nodes[e].statics,r)?t.nodes[e].statics[r]:t.nodes[e].statics[r]=[]).push({to:i,reducer:n})}function jE(t,e,r,i){if(Array.isArray(e)){let[n,...s]=e;return t[n](r,i,...s)}else return t[e](r,i)}function lCe(t,e){let r=Array.isArray(t)?YE[t[0]]:YE[t];if(typeof r.suggest=="undefined")return null;let i=Array.isArray(t)?t.slice(1):[];return r.suggest(e,...i)}var YE={always:()=>!0,isOptionLike:(t,e)=>!t.ignoreOptions&&e!=="-"&&e.startsWith("-"),isNotOptionLike:(t,e)=>t.ignoreOptions||e==="-"||!e.startsWith("-"),isOption:(t,e,r,i)=>!t.ignoreOptions&&e===r,isBatchOption:(t,e,r)=>!t.ignoreOptions&&fU.test(e)&&[...e.slice(1)].every(i=>r.includes(`-${i}`)),isBoundOption:(t,e,r,i)=>{let n=e.match(av);return!t.ignoreOptions&&!!n&&UE.test(n[1])&&r.includes(n[1])&&i.filter(s=>s.names.includes(n[1])).every(s=>s.allowBinding)},isNegatedOption:(t,e,r)=>!t.ignoreOptions&&e===`--no-${r.slice(2)}`,isHelp:(t,e)=>!t.ignoreOptions&&ov.test(e),isUnsupportedOption:(t,e,r)=>!t.ignoreOptions&&e.startsWith("-")&&UE.test(e)&&!r.includes(e),isInvalidOption:(t,e)=>!t.ignoreOptions&&e.startsWith("-")&&!UE.test(e)};YE.isOption.suggest=(t,e,r=!0)=>r?null:[e];var dv={setCandidateState:(t,e,r)=>P(P({},t),r),setSelectedIndex:(t,e,r)=>_(P({},t),{selectedIndex:r}),pushBatch:(t,e)=>_(P({},t),{options:t.options.concat([...e.slice(1)].map(r=>({name:`-${r}`,value:!0})))}),pushBound:(t,e)=>{let[,r,i]=e.match(av);return _(P({},t),{options:t.options.concat({name:r,value:i})})},pushPath:(t,e)=>_(P({},t),{path:t.path.concat(e)}),pushPositional:(t,e)=>_(P({},t),{positionals:t.positionals.concat({value:e,extra:!1})}),pushExtra:(t,e)=>_(P({},t),{positionals:t.positionals.concat({value:e,extra:!0})}),pushExtraNoLimits:(t,e)=>_(P({},t),{positionals:t.positionals.concat({value:e,extra:Ln})}),pushTrue:(t,e,r=e)=>_(P({},t),{options:t.options.concat({name:e,value:!0})}),pushFalse:(t,e,r=e)=>_(P({},t),{options:t.options.concat({name:r,value:!1})}),pushUndefined:(t,e)=>_(P({},t),{options:t.options.concat({name:e,value:void 0})}),pushStringValue:(t,e)=>{var r;let i=_(P({},t),{options:[...t.options]}),n=t.options[t.options.length-1];return n.value=((r=n.value)!==null&&r!==void 0?r:[]).concat([e]),i},setStringValue:(t,e)=>{let r=_(P({},t),{options:[...t.options]}),i=t.options[t.options.length-1];return i.value=e,r},inhibateOptions:t=>_(P({},t),{ignoreOptions:!0}),useHelp:(t,e,r)=>{let[,,i]=e.match(ov);return typeof i!="undefined"?_(P({},t),{options:[{name:"-c",value:String(r)},{name:"-i",value:i}]}):_(P({},t),{options:[{name:"-c",value:String(r)}]})},setError:(t,e,r)=>e===hi?_(P({},t),{errorMessage:`${r}.`}):_(P({},t),{errorMessage:`${r} ("${e}").`}),setOptionArityError:(t,e)=>{let r=t.options[t.options.length-1];return _(P({},t),{errorMessage:`Not enough arguments to option ${r.name}.`})}},Ln=Symbol(),xU=class{constructor(e,r){this.allOptionNames=[],this.arity={leading:[],trailing:[],extra:[],proxy:!1},this.options=[],this.paths=[],this.cliIndex=e,this.cliOpts=r}addPath(e){this.paths.push(e)}setArity({leading:e=this.arity.leading,trailing:r=this.arity.trailing,extra:i=this.arity.extra,proxy:n=this.arity.proxy}){Object.assign(this.arity,{leading:e,trailing:r,extra:i,proxy:n})}addPositional({name:e="arg",required:r=!0}={}){if(!r&&this.arity.extra===Ln)throw new Error("Optional parameters cannot be declared when using .rest() or .proxy()");if(!r&&this.arity.trailing.length>0)throw new Error("Optional parameters cannot be declared after the required trailing positional arguments");!r&&this.arity.extra!==Ln?this.arity.extra.push(e):this.arity.extra!==Ln&&this.arity.extra.length===0?this.arity.leading.push(e):this.arity.trailing.push(e)}addRest({name:e="arg",required:r=0}={}){if(this.arity.extra===Ln)throw new Error("Infinite lists cannot be declared multiple times in the same command");if(this.arity.trailing.length>0)throw new Error("Infinite lists cannot be declared after the required trailing positional arguments");for(let i=0;i1)throw new Error("The arity cannot be higher than 1 when the option only supports the --arg=value syntax");if(!Number.isInteger(i))throw new Error(`The arity must be an integer, got ${i}`);if(i<0)throw new Error(`The arity must be positive, got ${i}`);this.allOptionNames.push(...e),this.options.push({names:e,description:r,arity:i,hidden:n,required:s,allowBinding:o})}setContext(e){this.context=e}usage({detailed:e=!0,inlineOptions:r=!0}={}){let i=[this.cliOpts.binaryName],n=[];if(this.paths.length>0&&i.push(...this.paths[0]),e){for(let{names:o,arity:a,hidden:l,description:c,required:u}of this.options){if(l)continue;let g=[];for(let h=0;h`:`[${f}]`)}i.push(...this.arity.leading.map(o=>`<${o}>`)),this.arity.extra===Ln?i.push("..."):i.push(...this.arity.extra.map(o=>`[${o}]`)),i.push(...this.arity.trailing.map(o=>`<${o}>`))}return{usage:i.join(" "),options:n}}compile(){if(typeof this.context=="undefined")throw new Error("Assertion failed: No context attached");let e=QU(),r=yl,i=this.usage().usage,n=this.options.filter(a=>a.required).map(a=>a.names);r=xs(e,qi()),ta(e,yl,sv,r,["setCandidateState",{candidateUsage:i,requiredOptions:n}]);let s=this.arity.proxy?"always":"isNotOptionLike",o=this.paths.length>0?this.paths:[[]];for(let a of o){let l=r;if(a.length>0){let f=xs(e,qi());cu(e,l,f),this.registerOptions(e,f),l=f}for(let f=0;f0||!this.arity.proxy){let f=xs(e,qi());pi(e,l,"isHelp",f,["useHelp",this.cliIndex]),ta(e,f,hi,Eh,["setSelectedIndex",Au]),this.registerOptions(e,l)}this.arity.leading.length>0&&ta(e,l,hi,Gi,["setError","Not enough positional arguments"]);let c=l;for(let f=0;f0||f+1!==this.arity.leading.length)&&ta(e,h,hi,Gi,["setError","Not enough positional arguments"]),pi(e,c,"isNotOptionLike",h,"pushPositional"),c=h}let u=c;if(this.arity.extra===Ln||this.arity.extra.length>0){let f=xs(e,qi());if(cu(e,c,f),this.arity.extra===Ln){let h=xs(e,qi());this.arity.proxy||this.registerOptions(e,h),pi(e,c,s,h,"pushExtraNoLimits"),pi(e,h,s,h,"pushExtraNoLimits"),cu(e,h,f)}else for(let h=0;h0&&ta(e,u,hi,Gi,["setError","Not enough positional arguments"]);let g=u;for(let f=0;fo.length>s.length?o:s,"");if(i.arity===0)for(let s of i.names)pi(e,r,["isOption",s,i.hidden||s!==n],r,"pushTrue"),s.startsWith("--")&&!s.startsWith("--no-")&&pi(e,r,["isNegatedOption",s],r,["pushFalse",s]);else{let s=xs(e,qi());for(let o of i.names)pi(e,r,["isOption",o,i.hidden||o!==n],s,"pushUndefined");for(let o=0;o=0&&egCe(i,n),suggest:(n,s)=>cCe(i,n,s)}}};var kU=80,mv=Array(kU).fill("\u2501");for(let t=0;t<=24;++t)mv[mv.length-t]=`[38;5;${232+t}m\u2501`;var Ev={header:t=>`\u2501\u2501\u2501 ${t}${t.length`${t}`,error:t=>`${t}`,code:t=>`${t}`},PU={header:t=>t,bold:t=>t,error:t=>t,code:t=>t};function hCe(t){let e=t.split(` -`),r=e.filter(n=>n.match(/\S/)),i=r.length>0?r.reduce((n,s)=>Math.min(n,s.length-s.trimStart().length),Number.MAX_VALUE):0;return e.map(n=>n.slice(i).trimRight()).join(` -`)}function Vn(t,{format:e,paragraphs:r}){return t=t.replace(/\r\n?/g,` -`),t=hCe(t),t=t.replace(/^\n+|\n+$/g,""),t=t.replace(/^(\s*)-([^\n]*?)\n+/gm,`$1-$2 - -`),t=t.replace(/\n(\n)?\n*/g,"$1"),r&&(t=t.split(/\n/).map(i=>{let n=i.match(/^\s*[*-][\t ]+(.*)/);if(!n)return i.match(/(.{1,80})(?: |$)/g).join(` -`);let s=i.length-i.trimStart().length;return n[1].match(new RegExp(`(.{1,${78-s}})(?: |$)`,"g")).map((o,a)=>" ".repeat(s)+(a===0?"- ":" ")+o).join(` -`)}).join(` - -`)),t=t.replace(/(`+)((?:.|[\n])*?)\1/g,(i,n,s)=>e.code(n+s+n)),t=t.replace(/(\*\*)((?:.|[\n])*?)\1/g,(i,n,s)=>e.bold(n+s+n)),t?`${t} -`:""}var bh=class extends ye{constructor(e){super();this.contexts=e,this.commands=[]}static from(e,r){let i=new bh(r);i.path=e.path;for(let n of e.options)switch(n.name){case"-c":i.commands.push(Number(n.value));break;case"-i":i.index=Number(n.value);break}return i}async execute(){let e=this.commands;if(typeof this.index!="undefined"&&this.index>=0&&this.index1){this.context.stdout.write(`Multiple commands match your selection: -`),this.context.stdout.write(` -`);let r=0;for(let i of this.commands)this.context.stdout.write(this.cli.usage(this.contexts[i].commandClass,{prefix:`${r++}. `.padStart(5)}));this.context.stdout.write(` -`),this.context.stdout.write(`Run again with -h= to see the longer details of any of those commands. -`)}}};var DU=Symbol("clipanion/errorCommand");function pCe(){return process.env.FORCE_COLOR==="0"?!1:!!(process.env.FORCE_COLOR==="1"||typeof process.stdout!="undefined"&&process.stdout.isTTY)}var oo=class{constructor({binaryLabel:e,binaryName:r="...",binaryVersion:i,enableColors:n=pCe()}={}){this.registrations=new Map,this.builder=new Qh({binaryName:r}),this.binaryLabel=e,this.binaryName=r,this.binaryVersion=i,this.enableColors=n}static from(e,r={}){let i=new oo(r);for(let n of e)i.register(n);return i}register(e){var r;let i=new Map,n=new e;for(let l in n){let c=n[l];typeof c=="object"&&c!==null&&c[ye.isOption]&&i.set(l,c)}let s=this.builder.command(),o=s.cliIndex,a=(r=e.paths)!==null&&r!==void 0?r:n.paths;if(typeof a!="undefined")for(let l of a)s.addPath(l);this.registrations.set(e,{specs:i,builder:s,index:o});for(let[l,{definition:c}]of i.entries())c(s,l);s.setContext({commandClass:e})}process(e){let{contexts:r,process:i}=this.builder.compile(),n=i(e);switch(n.selectedIndex){case Au:return bh.from(n,r);default:{let{commandClass:s}=r[n.selectedIndex],o=this.registrations.get(s);if(typeof o=="undefined")throw new Error("Assertion failed: Expected the command class to have been registered.");let a=new s;a.path=n.path;try{for(let[l,{transformer:c}]of o.specs.entries())a[l]=c(o.builder,l,n);return a}catch(l){throw l[DU]=a,l}}break}}async run(e,r){let i;if(!Array.isArray(e))i=e;else try{i=this.process(e)}catch(s){return r.stdout.write(this.error(s)),1}if(i.help)return r.stdout.write(this.usage(i,{detailed:!0})),0;i.context=r,i.cli={binaryLabel:this.binaryLabel,binaryName:this.binaryName,binaryVersion:this.binaryVersion,enableColors:this.enableColors,definitions:()=>this.definitions(),error:(s,o)=>this.error(s,o),process:s=>this.process(s),run:(s,o)=>this.run(s,P(P({},r),o)),usage:(s,o)=>this.usage(s,o)};let n;try{n=await i.validateAndExecute().catch(s=>i.catch(s).then(()=>0))}catch(s){return r.stdout.write(this.error(s,{command:i})),1}return n}async runExit(e,r){process.exitCode=await this.run(e,r)}suggest(e,r){let{suggest:i}=this.builder.compile();return i(e,r)}definitions({colored:e=!1}={}){let r=[];for(let[i,{index:n}]of this.registrations){if(typeof i.usage=="undefined")continue;let{usage:s}=this.getUsageByIndex(n,{detailed:!1}),{usage:o,options:a}=this.getUsageByIndex(n,{detailed:!0,inlineOptions:!1}),l=typeof i.usage.category!="undefined"?Vn(i.usage.category,{format:this.format(e),paragraphs:!1}):void 0,c=typeof i.usage.description!="undefined"?Vn(i.usage.description,{format:this.format(e),paragraphs:!1}):void 0,u=typeof i.usage.details!="undefined"?Vn(i.usage.details,{format:this.format(e),paragraphs:!0}):void 0,g=typeof i.usage.examples!="undefined"?i.usage.examples.map(([f,h])=>[Vn(f,{format:this.format(e),paragraphs:!1}),h.replace(/\$0/g,this.binaryName)]):void 0;r.push({path:s,usage:o,category:l,description:c,details:u,examples:g,options:a})}return r}usage(e=null,{colored:r,detailed:i=!1,prefix:n="$ "}={}){var s;if(e===null){for(let l of this.registrations.keys()){let c=l.paths,u=typeof l.usage!="undefined";if(!c||c.length===0||c.length===1&&c[0].length===0||((s=c==null?void 0:c.some(h=>h.length===0))!==null&&s!==void 0?s:!1))if(e){e=null;break}else e=l;else if(u){e=null;continue}}e&&(i=!0)}let o=e!==null&&e instanceof ye?e.constructor:e,a="";if(o)if(i){let{description:l="",details:c="",examples:u=[]}=o.usage||{};l!==""&&(a+=Vn(l,{format:this.format(r),paragraphs:!1}).replace(/^./,h=>h.toUpperCase()),a+=` -`),(c!==""||u.length>0)&&(a+=`${this.format(r).header("Usage")} -`,a+=` -`);let{usage:g,options:f}=this.getUsageByRegistration(o,{inlineOptions:!1});if(a+=`${this.format(r).bold(n)}${g} -`,f.length>0){a+=` -`,a+=`${Ev.header("Options")} -`;let h=f.reduce((p,d)=>Math.max(p,d.definition.length),0);a+=` -`;for(let{definition:p,description:d}of f)a+=` ${this.format(r).bold(p.padEnd(h))} ${Vn(d,{format:this.format(r),paragraphs:!1})}`}if(c!==""&&(a+=` -`,a+=`${this.format(r).header("Details")} -`,a+=` -`,a+=Vn(c,{format:this.format(r),paragraphs:!0})),u.length>0){a+=` -`,a+=`${this.format(r).header("Examples")} -`;for(let[h,p]of u)a+=` -`,a+=Vn(h,{format:this.format(r),paragraphs:!1}),a+=`${p.replace(/^/m,` ${this.format(r).bold(n)}`).replace(/\$0/g,this.binaryName)} -`}}else{let{usage:l}=this.getUsageByRegistration(o);a+=`${this.format(r).bold(n)}${l} -`}else{let l=new Map;for(let[f,{index:h}]of this.registrations.entries()){if(typeof f.usage=="undefined")continue;let p=typeof f.usage.category!="undefined"?Vn(f.usage.category,{format:this.format(r),paragraphs:!1}):null,d=l.get(p);typeof d=="undefined"&&l.set(p,d=[]);let{usage:m}=this.getUsageByIndex(h);d.push({commandClass:f,usage:m})}let c=Array.from(l.keys()).sort((f,h)=>f===null?-1:h===null?1:f.localeCompare(h,"en",{usage:"sort",caseFirst:"upper"})),u=typeof this.binaryLabel!="undefined",g=typeof this.binaryVersion!="undefined";u||g?(u&&g?a+=`${this.format(r).header(`${this.binaryLabel} - ${this.binaryVersion}`)} - -`:u?a+=`${this.format(r).header(`${this.binaryLabel}`)} -`:a+=`${this.format(r).header(`${this.binaryVersion}`)} -`,a+=` ${this.format(r).bold(n)}${this.binaryName} -`):a+=`${this.format(r).bold(n)}${this.binaryName} -`;for(let f of c){let h=l.get(f).slice().sort((d,m)=>d.usage.localeCompare(m.usage,"en",{usage:"sort",caseFirst:"upper"})),p=f!==null?f.trim():"General commands";a+=` -`,a+=`${this.format(r).header(`${p}`)} -`;for(let{commandClass:d,usage:m}of h){let I=d.usage.description||"undocumented";a+=` -`,a+=` ${this.format(r).bold(m)} -`,a+=` ${Vn(I,{format:this.format(r),paragraphs:!1})}`}}a+=` -`,a+=Vn("You can also print more details about any of these commands by calling them with the `-h,--help` flag right after the command name.",{format:this.format(r),paragraphs:!0})}return a}error(e,r){var i,{colored:n,command:s=(i=e[DU])!==null&&i!==void 0?i:null}=r===void 0?{}:r;e instanceof Error||(e=new Error(`Execution failed with a non-error rejection (rejected value: ${JSON.stringify(e)})`));let o="",a=e.name.replace(/([a-z])([A-Z])/g,"$1 $2");a==="Error"&&(a="Internal Error"),o+=`${this.format(n).error(a)}: ${e.message} -`;let l=e.clipanion;return typeof l!="undefined"?l.type==="usage"&&(o+=` -`,o+=this.usage(s)):e.stack&&(o+=`${e.stack.replace(/^.*\n/,"")} -`),o}getUsageByRegistration(e,r){let i=this.registrations.get(e);if(typeof i=="undefined")throw new Error("Assertion failed: Unregistered command");return this.getUsageByIndex(i.index,r)}getUsageByIndex(e,r){return this.builder.getBuilderByIndex(e).usage(r)}format(e=this.enableColors){return e?Ev:PU}};oo.defaultContext={stdin:process.stdin,stdout:process.stdout,stderr:process.stderr};var Iv={};it(Iv,{DefinitionsCommand:()=>qE,HelpCommand:()=>JE,VersionCommand:()=>WE});var qE=class extends ye{async execute(){this.context.stdout.write(`${JSON.stringify(this.cli.definitions(),null,2)} -`)}};qE.paths=[["--clipanion=definitions"]];var JE=class extends ye{async execute(){this.context.stdout.write(this.cli.usage())}};JE.paths=[["-h"],["--help"]];var WE=class extends ye{async execute(){var e;this.context.stdout.write(`${(e=this.cli.binaryVersion)!==null&&e!==void 0?e:""} -`)}};WE.paths=[["-v"],["--version"]];var Y={};it(Y,{Array:()=>RU,Boolean:()=>FU,Counter:()=>NU,Proxy:()=>LU,Rest:()=>TU,String:()=>MU,applyValidator:()=>Bh,cleanValidationError:()=>HE,formatError:()=>wh,isOptionSymbol:()=>yh,makeCommandOption:()=>ji,rerouteArguments:()=>so});function RU(t,e,r){let[i,n]=so(e,r!=null?r:{}),{arity:s=1}=n,o=t.split(","),a=new Set(o);return ji({definition(l){l.addOption({names:o,arity:s,hidden:n==null?void 0:n.hidden,description:n==null?void 0:n.description,required:n.required})},transformer(l,c,u){let g=typeof i!="undefined"?[...i]:void 0;for(let{name:f,value:h}of u.options)!a.has(f)||(g=g!=null?g:[],g.push(h));return g}})}function FU(t,e,r){let[i,n]=so(e,r!=null?r:{}),s=t.split(","),o=new Set(s);return ji({definition(a){a.addOption({names:s,allowBinding:!1,arity:0,hidden:n.hidden,description:n.description,required:n.required})},transformer(a,l,c){let u=i;for(let{name:g,value:f}of c.options)!o.has(g)||(u=f);return u}})}function NU(t,e,r){let[i,n]=so(e,r!=null?r:{}),s=t.split(","),o=new Set(s);return ji({definition(a){a.addOption({names:s,allowBinding:!1,arity:0,hidden:n.hidden,description:n.description,required:n.required})},transformer(a,l,c){let u=i;for(let{name:g,value:f}of c.options)!o.has(g)||(u!=null||(u=0),f?u+=1:u=0);return u}})}function LU(t={}){return ji({definition(e,r){var i;e.addProxy({name:(i=t.name)!==null&&i!==void 0?i:r,required:t.required})},transformer(e,r,i){return i.positionals.map(({value:n})=>n)}})}function TU(t={}){return ji({definition(e,r){var i;e.addRest({name:(i=t.name)!==null&&i!==void 0?i:r,required:t.required})},transformer(e,r,i){let n=o=>{let a=i.positionals[o];return a.extra===Ln||a.extra===!1&&oo)}})}function dCe(t,e,r){let[i,n]=so(e,r!=null?r:{}),{arity:s=1}=n,o=t.split(","),a=new Set(o);return ji({definition(l){l.addOption({names:o,arity:n.tolerateBoolean?0:s,hidden:n.hidden,description:n.description,required:n.required})},transformer(l,c,u){let g,f=i;for(let{name:h,value:p}of u.options)!a.has(h)||(g=h,f=p);return typeof f=="string"?Bh(g!=null?g:c,f,n.validator):f}})}function CCe(t={}){let{required:e=!0}=t;return ji({definition(r,i){var n;r.addPositional({name:(n=t.name)!==null&&n!==void 0?n:i,required:t.required})},transformer(r,i,n){var s;for(let o=0;oJSON.stringify(i)).join(", ")})`);return e}function kl(t,e){let r=[];for(let i of t){let n=e(i);n!==LH&&r.push(n)}return r}var LH=Symbol();kl.skip=LH;function MH(t,e){for(let r of t){let i=e(r);if(i!==TH)return i}}var TH=Symbol();MH.skip=TH;function Tv(t){return typeof t=="object"&&t!==null}function aI(t){if(t instanceof Map&&(t=Object.fromEntries(t)),Tv(t))for(let e of Object.keys(t)){let r=t[e];Tv(r)&&(t[e]=aI(r))}return t}function na(t,e,r){let i=t.get(e);return typeof i=="undefined"&&t.set(e,i=r()),i}function hu(t,e){let r=t.get(e);return typeof r=="undefined"&&t.set(e,r=[]),r}function Pl(t,e){let r=t.get(e);return typeof r=="undefined"&&t.set(e,r=new Set),r}function pu(t,e){let r=t.get(e);return typeof r=="undefined"&&t.set(e,r=new Map),r}async function kEe(t,e){if(e==null)return await t();try{return await t()}finally{await e()}}async function du(t,e){try{return await t()}catch(r){throw r.message=e(r.message),r}}function Mv(t,e){try{return t()}catch(r){throw r.message=e(r.message),r}}async function Cu(t){return await new Promise((e,r)=>{let i=[];t.on("error",n=>{r(n)}),t.on("data",n=>{i.push(n)}),t.on("end",()=>{e(Buffer.concat(i))})})}var OH=class extends Fv.Transform{constructor(){super(...arguments);this.chunks=[]}_transform(e,r,i){if(r!=="buffer"||!Buffer.isBuffer(e))throw new Error("Assertion failed: BufferStream only accept buffers");this.chunks.push(e),i(null,null)}_flush(e){e(null,Buffer.concat(this.chunks))}},KH=class extends Fv.Transform{constructor(e=Buffer.alloc(0)){super();this.active=!0;this.ifEmpty=e}_transform(e,r,i){if(r!=="buffer"||!Buffer.isBuffer(e))throw new Error("Assertion failed: DefaultStream only accept buffers");this.active=!1,i(null,e)}_flush(e){this.active&&this.ifEmpty.length>0?e(null,this.ifEmpty):e(null)}},Uh=eval("require");function UH(t){return Uh(M.fromPortablePath(t))}function HH(path){let physicalPath=M.fromPortablePath(path),currentCacheEntry=Uh.cache[physicalPath];delete Uh.cache[physicalPath];let result;try{result=UH(physicalPath);let freshCacheEntry=Uh.cache[physicalPath],dynamicModule=eval("module"),freshCacheIndex=dynamicModule.children.indexOf(freshCacheEntry);freshCacheIndex!==-1&&dynamicModule.children.splice(freshCacheIndex,1)}finally{Uh.cache[physicalPath]=currentCacheEntry}return result}var GH=new Map;function PEe(t){let e=GH.get(t),r=T.statSync(t);if((e==null?void 0:e.mtime)===r.mtimeMs)return e.instance;let i=HH(t);return GH.set(t,{mtime:r.mtimeMs,instance:i}),i}var Dl;(function(i){i[i.NoCache=0]="NoCache",i[i.FsTime=1]="FsTime",i[i.Node=2]="Node"})(Dl||(Dl={}));function mu(t,{cachingStrategy:e=2}={}){switch(e){case 0:return HH(t);case 1:return PEe(t);case 2:return UH(t);default:throw new Error("Unsupported caching strategy")}}function gn(t,e){let r=Array.from(t);Array.isArray(e)||(e=[e]);let i=[];for(let s of e)i.push(r.map(o=>s(o)));let n=r.map((s,o)=>o);return n.sort((s,o)=>{for(let a of i){let l=a[s]a[o]?1:0;if(l!==0)return l}return 0}),n.map(s=>r[s])}function DEe(t){return t.length===0?null:t.map(e=>`(${FH.default.makeRe(e,{windows:!1,dot:!0}).source})`).join("|")}function Ov(t,{env:e}){let r=/\${(?[\d\w_]+)(?:)?(?:-(?[^}]*))?}/g;return t.replace(r,(...i)=>{let{variableName:n,colon:s,fallback:o}=i[i.length-1],a=Object.prototype.hasOwnProperty.call(e,n),l=e[n];if(l||a&&!s)return l;if(o!=null)return o;throw new me(`Environment variable not found (${n})`)})}function Hh(t){switch(t){case"true":case"1":case 1:case!0:return!0;case"false":case"0":case 0:case!1:return!1;default:throw new Error(`Couldn't parse "${t}" as a boolean`)}}function jH(t){return typeof t=="undefined"?t:Hh(t)}function Kv(t){try{return jH(t)}catch{return null}}function REe(t){return!!(M.isAbsolute(t)||t.match(/^(\.{1,2}|~)\//))}var S={};it(S,{areDescriptorsEqual:()=>i3,areIdentsEqual:()=>cp,areLocatorsEqual:()=>up,areVirtualPackagesEquivalent:()=>XQe,bindDescriptor:()=>VQe,bindLocator:()=>_Qe,convertDescriptorToLocator:()=>By,convertLocatorToDescriptor:()=>WQe,convertPackageToLocator:()=>zQe,convertToIdent:()=>JQe,convertToManifestRange:()=>ebe,copyPackage:()=>ap,devirtualizeDescriptor:()=>Ap,devirtualizeLocator:()=>lp,getIdentVendorPath:()=>Lx,isPackageCompatible:()=>Sy,isVirtualDescriptor:()=>hA,isVirtualLocator:()=>Io,makeDescriptor:()=>Yt,makeIdent:()=>Eo,makeLocator:()=>Vi,makeRange:()=>by,parseDescriptor:()=>pA,parseFileStyleRange:()=>ZQe,parseIdent:()=>En,parseLocator:()=>Hl,parseRange:()=>Tu,prettyDependent:()=>Nx,prettyDescriptor:()=>Xt,prettyIdent:()=>Vr,prettyLocator:()=>lt,prettyLocatorNoColors:()=>Rx,prettyRange:()=>yy,prettyReference:()=>fp,prettyResolution:()=>Fx,prettyWorkspace:()=>hp,renamePackage:()=>op,slugifyIdent:()=>Dx,slugifyLocator:()=>Mu,sortDescriptors:()=>Ou,stringifyDescriptor:()=>In,stringifyIdent:()=>St,stringifyLocator:()=>is,tryParseDescriptor:()=>gp,tryParseIdent:()=>n3,tryParseLocator:()=>Qy,virtualizeDescriptor:()=>kx,virtualizePackage:()=>Px});var Lu=ie(require("querystring")),e3=ie(Or()),t3=ie(wY());var mn={};it(mn,{checksumFile:()=>Ey,checksumPattern:()=>Iy,makeHash:()=>zi});var my=ie(require("crypto")),Sx=ie(vx());function zi(...t){let e=(0,my.createHash)("sha512"),r="";for(let i of t)typeof i=="string"?r+=i:i&&(r&&(e.update(r),r=""),e.update(i));return r&&e.update(r),e.digest("hex")}async function Ey(t,{baseFs:e,algorithm:r}={baseFs:T,algorithm:"sha512"}){let i=await e.openPromise(t,"r");try{let n=65536,s=Buffer.allocUnsafeSlow(n),o=(0,my.createHash)(r),a=0;for(;(a=await e.readPromise(i,s,0,n))!==0;)o.update(a===n?s:s.slice(0,a));return o.digest("hex")}finally{await e.closePromise(i)}}async function Iy(t,{cwd:e}){let i=(await(0,Sx.default)(t,{cwd:M.fromPortablePath(e),expandDirectories:!1,onlyDirectories:!0,unique:!0})).map(a=>`${a}/**/*`),n=await(0,Sx.default)([t,...i],{cwd:M.fromPortablePath(e),expandDirectories:!1,onlyFiles:!1,unique:!0});n.sort();let s=await Promise.all(n.map(async a=>{let l=[Buffer.from(a)],c=M.toPortablePath(a),u=await T.lstatPromise(c);return u.isSymbolicLink()?l.push(Buffer.from(await T.readlinkPromise(c))):u.isFile()&&l.push(await T.readFilePromise(c)),l.join("\0")})),o=(0,my.createHash)("sha512");for(let a of s)o.update(a);return o.digest("hex")}var wy="virtual:",YQe=5,r3=/(os|cpu)=([a-z0-9_-]+)/,qQe=(0,t3.makeParser)(r3);function Eo(t,e){if(t==null?void 0:t.startsWith("@"))throw new Error("Invalid scope: don't prefix it with '@'");return{identHash:zi(t,e),scope:t,name:e}}function Yt(t,e){return{identHash:t.identHash,scope:t.scope,name:t.name,descriptorHash:zi(t.identHash,e),range:e}}function Vi(t,e){return{identHash:t.identHash,scope:t.scope,name:t.name,locatorHash:zi(t.identHash,e),reference:e}}function JQe(t){return{identHash:t.identHash,scope:t.scope,name:t.name}}function By(t){return{identHash:t.identHash,scope:t.scope,name:t.name,locatorHash:t.descriptorHash,reference:t.range}}function WQe(t){return{identHash:t.identHash,scope:t.scope,name:t.name,descriptorHash:t.locatorHash,range:t.reference}}function zQe(t){return{identHash:t.identHash,scope:t.scope,name:t.name,locatorHash:t.locatorHash,reference:t.reference}}function op(t,e){return{identHash:e.identHash,scope:e.scope,name:e.name,locatorHash:e.locatorHash,reference:e.reference,version:t.version,languageName:t.languageName,linkType:t.linkType,conditions:t.conditions,dependencies:new Map(t.dependencies),peerDependencies:new Map(t.peerDependencies),dependenciesMeta:new Map(t.dependenciesMeta),peerDependenciesMeta:new Map(t.peerDependenciesMeta),bin:new Map(t.bin)}}function ap(t){return op(t,t)}function kx(t,e){if(e.includes("#"))throw new Error("Invalid entropy");return Yt(t,`virtual:${e}#${t.range}`)}function Px(t,e){if(e.includes("#"))throw new Error("Invalid entropy");return op(t,Vi(t,`virtual:${e}#${t.reference}`))}function hA(t){return t.range.startsWith(wy)}function Io(t){return t.reference.startsWith(wy)}function Ap(t){if(!hA(t))throw new Error("Not a virtual descriptor");return Yt(t,t.range.replace(/^[^#]*#/,""))}function lp(t){if(!Io(t))throw new Error("Not a virtual descriptor");return Vi(t,t.reference.replace(/^[^#]*#/,""))}function VQe(t,e){return t.range.includes("::")?t:Yt(t,`${t.range}::${Lu.default.stringify(e)}`)}function _Qe(t,e){return t.reference.includes("::")?t:Vi(t,`${t.reference}::${Lu.default.stringify(e)}`)}function cp(t,e){return t.identHash===e.identHash}function i3(t,e){return t.descriptorHash===e.descriptorHash}function up(t,e){return t.locatorHash===e.locatorHash}function XQe(t,e){if(!Io(t))throw new Error("Invalid package type");if(!Io(e))throw new Error("Invalid package type");if(!cp(t,e)||t.dependencies.size!==e.dependencies.size)return!1;for(let r of t.dependencies.values()){let i=e.dependencies.get(r.identHash);if(!i||!i3(r,i))return!1}return!0}function En(t){let e=n3(t);if(!e)throw new Error(`Invalid ident (${t})`);return e}function n3(t){let e=t.match(/^(?:@([^/]+?)\/)?([^/]+)$/);if(!e)return null;let[,r,i]=e,n=typeof r!="undefined"?r:null;return Eo(n,i)}function pA(t,e=!1){let r=gp(t,e);if(!r)throw new Error(`Invalid descriptor (${t})`);return r}function gp(t,e=!1){let r=e?t.match(/^(?:@([^/]+?)\/)?([^/]+?)(?:@(.+))$/):t.match(/^(?:@([^/]+?)\/)?([^/]+?)(?:@(.+))?$/);if(!r)return null;let[,i,n,s]=r;if(s==="unknown")throw new Error(`Invalid range (${t})`);let o=typeof i!="undefined"?i:null,a=typeof s!="undefined"?s:"unknown";return Yt(Eo(o,n),a)}function Hl(t,e=!1){let r=Qy(t,e);if(!r)throw new Error(`Invalid locator (${t})`);return r}function Qy(t,e=!1){let r=e?t.match(/^(?:@([^/]+?)\/)?([^/]+?)(?:@(.+))$/):t.match(/^(?:@([^/]+?)\/)?([^/]+?)(?:@(.+))?$/);if(!r)return null;let[,i,n,s]=r;if(s==="unknown")throw new Error(`Invalid reference (${t})`);let o=typeof i!="undefined"?i:null,a=typeof s!="undefined"?s:"unknown";return Vi(Eo(o,n),a)}function Tu(t,e){let r=t.match(/^([^#:]*:)?((?:(?!::)[^#])*)(?:#((?:(?!::).)*))?(?:::(.*))?$/);if(r===null)throw new Error(`Invalid range (${t})`);let i=typeof r[1]!="undefined"?r[1]:null;if(typeof(e==null?void 0:e.requireProtocol)=="string"&&i!==e.requireProtocol)throw new Error(`Invalid protocol (${i})`);if((e==null?void 0:e.requireProtocol)&&i===null)throw new Error(`Missing protocol (${i})`);let n=typeof r[3]!="undefined"?decodeURIComponent(r[2]):null;if((e==null?void 0:e.requireSource)&&n===null)throw new Error(`Missing source (${t})`);let s=typeof r[3]!="undefined"?decodeURIComponent(r[3]):decodeURIComponent(r[2]),o=(e==null?void 0:e.parseSelector)?Lu.default.parse(s):s,a=typeof r[4]!="undefined"?Lu.default.parse(r[4]):null;return{protocol:i,source:n,selector:o,params:a}}function ZQe(t,{protocol:e}){let{selector:r,params:i}=Tu(t,{requireProtocol:e,requireBindings:!0});if(typeof i.locator!="string")throw new Error(`Assertion failed: Invalid bindings for ${t}`);return{parentLocator:Hl(i.locator,!0),path:r}}function s3(t){return t=t.replace(/%/g,"%25"),t=t.replace(/:/g,"%3A"),t=t.replace(/#/g,"%23"),t}function $Qe(t){return t===null?!1:Object.entries(t).length>0}function by({protocol:t,source:e,selector:r,params:i}){let n="";return t!==null&&(n+=`${t}`),e!==null&&(n+=`${s3(e)}#`),n+=s3(r),$Qe(i)&&(n+=`::${Lu.default.stringify(i)}`),n}function ebe(t){let{params:e,protocol:r,source:i,selector:n}=Tu(t);for(let s in e)s.startsWith("__")&&delete e[s];return by({protocol:r,source:i,params:e,selector:n})}function St(t){return t.scope?`@${t.scope}/${t.name}`:`${t.name}`}function In(t){return t.scope?`@${t.scope}/${t.name}@${t.range}`:`${t.name}@${t.range}`}function is(t){return t.scope?`@${t.scope}/${t.name}@${t.reference}`:`${t.name}@${t.reference}`}function Dx(t){return t.scope!==null?`@${t.scope}-${t.name}`:t.name}function Mu(t){let{protocol:e,selector:r}=Tu(t.reference),i=e!==null?e.replace(/:$/,""):"exotic",n=e3.default.valid(r),s=n!==null?`${i}-${n}`:`${i}`,o=10,a=t.scope?`${Dx(t)}-${s}-${t.locatorHash.slice(0,o)}`:`${Dx(t)}-${s}-${t.locatorHash.slice(0,o)}`;return kr(a)}function Vr(t,e){return e.scope?`${Ve(t,`@${e.scope}/`,Le.SCOPE)}${Ve(t,e.name,Le.NAME)}`:`${Ve(t,e.name,Le.NAME)}`}function vy(t){if(t.startsWith(wy)){let e=vy(t.substr(t.indexOf("#")+1)),r=t.substr(wy.length,YQe);return`${e} [${r}]`}else return t.replace(/\?.*/,"?[...]")}function yy(t,e){return`${Ve(t,vy(e),Le.RANGE)}`}function Xt(t,e){return`${Vr(t,e)}${Ve(t,"@",Le.RANGE)}${yy(t,e.range)}`}function fp(t,e){return`${Ve(t,vy(e),Le.REFERENCE)}`}function lt(t,e){return`${Vr(t,e)}${Ve(t,"@",Le.REFERENCE)}${fp(t,e.reference)}`}function Rx(t){return`${St(t)}@${vy(t.reference)}`}function Ou(t){return gn(t,[e=>St(e),e=>e.range])}function hp(t,e){return Vr(t,e.locator)}function Fx(t,e,r){let i=hA(e)?Ap(e):e;return r===null?`${Xt(t,i)} \u2192 ${xx(t).Cross}`:i.identHash===r.identHash?`${Xt(t,i)} \u2192 ${fp(t,r.reference)}`:`${Xt(t,i)} \u2192 ${lt(t,r)}`}function Nx(t,e,r){return r===null?`${lt(t,e)}`:`${lt(t,e)} (via ${yy(t,r.range)})`}function Lx(t){return`node_modules/${St(t)}`}function Sy(t,e){return t.conditions?qQe(t.conditions,r=>{let[,i,n]=r.match(r3),s=e[i];return s?s.includes(n):!0}):!0}var gt;(function(r){r.HARD="HARD",r.SOFT="SOFT"})(gt||(gt={}));var oi;(function(i){i.Dependency="Dependency",i.PeerDependency="PeerDependency",i.PeerDependencyMeta="PeerDependencyMeta"})(oi||(oi={}));var ki;(function(i){i.Inactive="inactive",i.Redundant="redundant",i.Active="active"})(ki||(ki={}));var Le={NO_HINT:"NO_HINT",NULL:"NULL",SCOPE:"SCOPE",NAME:"NAME",RANGE:"RANGE",REFERENCE:"REFERENCE",NUMBER:"NUMBER",PATH:"PATH",URL:"URL",ADDED:"ADDED",REMOVED:"REMOVED",CODE:"CODE",DURATION:"DURATION",SIZE:"SIZE",IDENT:"IDENT",DESCRIPTOR:"DESCRIPTOR",LOCATOR:"LOCATOR",RESOLUTION:"RESOLUTION",DEPENDENT:"DEPENDENT",PACKAGE_EXTENSION:"PACKAGE_EXTENSION",SETTING:"SETTING"},Gl;(function(e){e[e.BOLD=2]="BOLD"})(Gl||(Gl={}));var Tx=dp.default.GITHUB_ACTIONS?{level:2}:pp.default.supportsColor?{level:pp.default.supportsColor.level}:{level:0},xy=Tx.level!==0,Mx=xy&&!dp.default.GITHUB_ACTIONS&&!dp.default.CIRCLE&&!dp.default.GITLAB,Ox=new pp.default.Instance(Tx),tbe=new Map([[Le.NO_HINT,null],[Le.NULL,["#a853b5",129]],[Le.SCOPE,["#d75f00",166]],[Le.NAME,["#d7875f",173]],[Le.RANGE,["#00afaf",37]],[Le.REFERENCE,["#87afff",111]],[Le.NUMBER,["#ffd700",220]],[Le.PATH,["#d75fd7",170]],[Le.URL,["#d75fd7",170]],[Le.ADDED,["#5faf00",70]],[Le.REMOVED,["#d70000",160]],[Le.CODE,["#87afff",111]],[Le.SIZE,["#ffd700",220]]]),Ls=t=>t,ky={[Le.NUMBER]:Ls({pretty:(t,e)=>`${e}`,json:t=>t}),[Le.IDENT]:Ls({pretty:(t,e)=>Vr(t,e),json:t=>St(t)}),[Le.LOCATOR]:Ls({pretty:(t,e)=>lt(t,e),json:t=>is(t)}),[Le.DESCRIPTOR]:Ls({pretty:(t,e)=>Xt(t,e),json:t=>In(t)}),[Le.RESOLUTION]:Ls({pretty:(t,{descriptor:e,locator:r})=>Fx(t,e,r),json:({descriptor:t,locator:e})=>({descriptor:In(t),locator:e!==null?is(e):null})}),[Le.DEPENDENT]:Ls({pretty:(t,{locator:e,descriptor:r})=>Nx(t,e,r),json:({locator:t,descriptor:e})=>({locator:is(t),descriptor:In(e)})}),[Le.PACKAGE_EXTENSION]:Ls({pretty:(t,e)=>{switch(e.type){case oi.Dependency:return`${Vr(t,e.parentDescriptor)} \u27A4 ${On(t,"dependencies",Le.CODE)} \u27A4 ${Vr(t,e.descriptor)}`;case oi.PeerDependency:return`${Vr(t,e.parentDescriptor)} \u27A4 ${On(t,"peerDependencies",Le.CODE)} \u27A4 ${Vr(t,e.descriptor)}`;case oi.PeerDependencyMeta:return`${Vr(t,e.parentDescriptor)} \u27A4 ${On(t,"peerDependenciesMeta",Le.CODE)} \u27A4 ${Vr(t,En(e.selector))} \u27A4 ${On(t,e.key,Le.CODE)}`;default:throw new Error(`Assertion failed: Unsupported package extension type: ${e.type}`)}},json:t=>{switch(t.type){case oi.Dependency:return`${St(t.parentDescriptor)} > ${St(t.descriptor)}`;case oi.PeerDependency:return`${St(t.parentDescriptor)} >> ${St(t.descriptor)}`;case oi.PeerDependencyMeta:return`${St(t.parentDescriptor)} >> ${t.selector} / ${t.key}`;default:throw new Error(`Assertion failed: Unsupported package extension type: ${t.type}`)}}}),[Le.SETTING]:Ls({pretty:(t,e)=>(t.get(e),Ku(t,On(t,e,Le.CODE),`https://yarnpkg.com/configuration/yarnrc#${e}`)),json:t=>t}),[Le.DURATION]:Ls({pretty:(t,e)=>{if(e>1e3*60){let r=Math.floor(e/1e3/60),i=Math.ceil((e-r*60*1e3)/1e3);return i===0?`${r}m`:`${r}m ${i}s`}else{let r=Math.floor(e/1e3),i=e-r*1e3;return i===0?`${r}s`:`${r}s ${i}ms`}},json:t=>t}),[Le.SIZE]:Ls({pretty:(t,e)=>{let r=["KB","MB","GB","TB"],i=r.length;for(;i>1&&e<1024**i;)i-=1;let n=1024**i,s=Math.floor(e*100/n)/100;return On(t,`${s} ${r[i-1]}`,Le.NUMBER)},json:t=>t}),[Le.PATH]:Ls({pretty:(t,e)=>On(t,M.fromPortablePath(e),Le.PATH),json:t=>M.fromPortablePath(t)})};function jl(t,e){return[e,t]}function Py(t,e,r){return t.get("enableColors")&&r&2&&(e=pp.default.bold(e)),e}function On(t,e,r){if(!t.get("enableColors"))return e;let i=tbe.get(r);if(i===null)return e;let n=typeof i=="undefined"?r:Tx.level>=3?i[0]:i[1],s=typeof n=="number"?Ox.ansi256(n):n.startsWith("#")?Ox.hex(n):Ox[n];if(typeof s!="function")throw new Error(`Invalid format type ${n}`);return s(e)}var rbe=!!process.env.KONSOLE_VERSION;function Ku(t,e,r){return t.get("enableHyperlinks")?rbe?`]8;;${r}\\${e}]8;;\\`:`]8;;${r}\x07${e}]8;;\x07`:e}function Ve(t,e,r){if(e===null)return On(t,"null",Le.NULL);if(Object.prototype.hasOwnProperty.call(ky,r))return ky[r].pretty(t,e);if(typeof e!="string")throw new Error(`Assertion failed: Expected the value to be a string, got ${typeof e}`);return On(t,e,r)}function Kx(t,e,r,{separator:i=", "}={}){return[...e].map(n=>Ve(t,n,r)).join(i)}function Uu(t,e){if(t===null)return null;if(Object.prototype.hasOwnProperty.call(ky,e))return Nv(e),ky[e].json(t);if(typeof t!="string")throw new Error(`Assertion failed: Expected the value to be a string, got ${typeof t}`);return t}function xx(t){return{Check:On(t,"\u2713","green"),Cross:On(t,"\u2718","red"),Question:On(t,"?","cyan")}}function Yl(t,{label:e,value:[r,i]}){return`${Ve(t,e,Le.CODE)}: ${Ve(t,r,i)}`}var Ts;(function(n){n.Error="error",n.Warning="warning",n.Info="info",n.Discard="discard"})(Ts||(Ts={}));function Cp(t,{configuration:e}){let r=e.get("logFilters"),i=new Map,n=new Map,s=[];for(let g of r){let f=g.get("level");if(typeof f=="undefined")continue;let h=g.get("code");typeof h!="undefined"&&i.set(h,f);let p=g.get("text");typeof p!="undefined"&&n.set(p,f);let d=g.get("pattern");typeof d!="undefined"&&s.push([o3.default.matcher(d,{contains:!0}),f])}s.reverse();let o=(g,f,h)=>{if(g===null||g===z.UNNAMED)return h;let p=n.size>0||s.length>0?(0,a3.default)(f):f;if(n.size>0){let d=n.get(p);if(typeof d!="undefined")return d!=null?d:h}if(s.length>0){for(let[d,m]of s)if(d(p))return m!=null?m:h}if(i.size>0){let d=i.get(KE(g));if(typeof d!="undefined")return d!=null?d:h}return h},a=t.reportInfo,l=t.reportWarning,c=t.reportError,u=function(g,f,h,p){switch(o(f,h,p)){case Ts.Info:a.call(g,f,h);break;case Ts.Warning:l.call(g,f!=null?f:z.UNNAMED,h);break;case Ts.Error:c.call(g,f!=null?f:z.UNNAMED,h);break}};t.reportInfo=function(...g){return u(this,...g,Ts.Info)},t.reportWarning=function(...g){return u(this,...g,Ts.Warning)},t.reportError=function(...g){return u(this,...g,Ts.Error)}}var Zt={};it(Zt,{Method:()=>Jl,RequestError:()=>z8.RequestError,del:()=>pxe,get:()=>fxe,getNetworkSettings:()=>Z8,post:()=>iP,put:()=>hxe,request:()=>xp});var q8=ie(zy()),J8=ie(require("https")),W8=ie(require("http")),tP=ie(Nn()),rP=ie(G8()),Vy=ie(require("url"));var j8=ie(require("stream")),Y8=ie(require("string_decoder"));var nt=class extends Error{constructor(e,r,i){super(r);this.reportExtra=i;this.reportCode=e}};function Axe(t){return typeof t.reportCode!="undefined"}var Xi=class{constructor(){this.reportedInfos=new Set;this.reportedWarnings=new Set;this.reportedErrors=new Set}static progressViaCounter(e){let r=0,i,n=new Promise(l=>{i=l}),s=l=>{let c=i;n=new Promise(u=>{i=u}),r=l,c()},o=(l=0)=>{s(r+1)},a=async function*(){for(;r{let o=i.write(s),a;do if(a=o.indexOf(` -`),a!==-1){let l=n+o.substr(0,a);o=o.substr(a+1),n="",e!==null?this.reportInfo(null,`${e} ${l}`):this.reportInfo(null,l)}while(a!==-1);n+=o}),r.on("end",()=>{let s=i.end();s!==""&&(e!==null?this.reportInfo(null,`${e} ${s}`):this.reportInfo(null,s))}),r}};var z8=ie(zy()),V8=new Map,_8=new Map,lxe=new W8.Agent({keepAlive:!0}),cxe=new J8.Agent({keepAlive:!0});function X8(t){let e=new Vy.URL(t),r={host:e.hostname,headers:{}};return e.port&&(r.port=Number(e.port)),{proxy:r}}async function uxe(t){return na(_8,t,()=>T.readFilePromise(t).then(e=>(_8.set(t,e),e)))}function gxe({statusCode:t,statusMessage:e},r){let i=Ve(r,t,Le.NUMBER),n=`https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/${t}`;return Ku(r,`${i}${e?` (${e})`:""}`,n)}async function _y(t,{configuration:e,customErrorMessage:r}){var i,n;try{return await t}catch(s){if(s.name!=="HTTPError")throw s;let o=(n=r==null?void 0:r(s))!=null?n:(i=s.response.body)==null?void 0:i.error;o==null&&(s.message.startsWith("Response code")?o="The remote server failed to provide the requested resource":o=s.message),s instanceof q8.TimeoutError&&s.event==="socket"&&(o+=`(can be increased via ${Ve(e,"httpTimeout",Le.SETTING)})`);let a=new nt(z.NETWORK_ERROR,o,l=>{s.response&&l.reportError(z.NETWORK_ERROR,` ${Yl(e,{label:"Response Code",value:jl(Le.NO_HINT,gxe(s.response,e))})}`),s.request&&(l.reportError(z.NETWORK_ERROR,` ${Yl(e,{label:"Request Method",value:jl(Le.NO_HINT,s.request.options.method)})}`),l.reportError(z.NETWORK_ERROR,` ${Yl(e,{label:"Request URL",value:jl(Le.URL,s.request.requestUrl)})}`)),s.request.redirects.length>0&&l.reportError(z.NETWORK_ERROR,` ${Yl(e,{label:"Request Redirects",value:jl(Le.NO_HINT,Kx(e,s.request.redirects,Le.URL))})}`),s.request.retryCount===s.request.options.retry.limit&&l.reportError(z.NETWORK_ERROR,` ${Yl(e,{label:"Request Retry Count",value:jl(Le.NO_HINT,`${Ve(e,s.request.retryCount,Le.NUMBER)} (can be increased via ${Ve(e,"httpRetry",Le.SETTING)})`)})}`)});throw a.originalError=s,a}}function Z8(t,e){let r=[...e.configuration.get("networkSettings")].sort(([o],[a])=>a.length-o.length),i={enableNetwork:void 0,caFilePath:void 0,httpProxy:void 0,httpsProxy:void 0},n=Object.keys(i),s=typeof t=="string"?new Vy.URL(t):t;for(let[o,a]of r)if(tP.default.isMatch(s.hostname,o))for(let l of n){let c=a.get(l);c!==null&&typeof i[l]=="undefined"&&(i[l]=c)}for(let o of n)typeof i[o]=="undefined"&&(i[o]=e.configuration.get(o));return i}var Jl;(function(n){n.GET="GET",n.PUT="PUT",n.POST="POST",n.DELETE="DELETE"})(Jl||(Jl={}));async function xp(t,e,{configuration:r,headers:i,jsonRequest:n,jsonResponse:s,method:o=Jl.GET}){let a=typeof t=="string"?new Vy.URL(t):t,l=Z8(a,{configuration:r});if(l.enableNetwork===!1)throw new Error(`Request to '${a.href}' has been blocked because of your configuration settings`);if(a.protocol==="http:"&&!tP.default.isMatch(a.hostname,r.get("unsafeHttpWhitelist")))throw new Error(`Unsafe http requests must be explicitly whitelisted in your configuration (${a.hostname})`);let u={agent:{http:l.httpProxy?rP.default.httpOverHttp(X8(l.httpProxy)):lxe,https:l.httpsProxy?rP.default.httpsOverHttp(X8(l.httpsProxy)):cxe},headers:i,method:o};u.responseType=s?"json":"buffer",e!==null&&(Buffer.isBuffer(e)||!n&&typeof e=="string"?u.body=e:u.json=e);let g=r.get("httpTimeout"),f=r.get("httpRetry"),h=r.get("enableStrictSsl"),p=l.caFilePath,{default:d}=await Promise.resolve().then(()=>ie(zy())),m=p?await uxe(p):void 0,I=d.extend(P({timeout:{socket:g},retry:f,https:{rejectUnauthorized:h,certificateAuthority:m}},u));return r.getLimit("networkConcurrency")(()=>I(a))}async function fxe(t,n){var s=n,{configuration:e,jsonResponse:r}=s,i=qr(s,["configuration","jsonResponse"]);let o=na(V8,t,()=>_y(xp(t,null,P({configuration:e},i)),{configuration:e}).then(a=>(V8.set(t,a.body),a.body)));return Buffer.isBuffer(o)===!1&&(o=await o),r?JSON.parse(o.toString()):o}async function hxe(t,e,n){var s=n,{customErrorMessage:r}=s,i=qr(s,["customErrorMessage"]);return(await _y(xp(t,e,_(P({},i),{method:Jl.PUT})),i)).body}async function iP(t,e,n){var s=n,{customErrorMessage:r}=s,i=qr(s,["customErrorMessage"]);return(await _y(xp(t,e,_(P({},i),{method:Jl.POST})),i)).body}async function pxe(t,i){var n=i,{customErrorMessage:e}=n,r=qr(n,["customErrorMessage"]);return(await _y(xp(t,null,_(P({},r),{method:Jl.DELETE})),r)).body}var Kt={};it(Kt,{PackageManager:()=>tn,detectPackageManager:()=>a9,executePackageAccessibleBinary:()=>g9,executePackageScript:()=>Uw,executePackageShellcode:()=>rD,executeWorkspaceAccessibleBinary:()=>qFe,executeWorkspaceLifecycleScript:()=>u9,executeWorkspaceScript:()=>c9,getPackageAccessibleBinaries:()=>Hw,getWorkspaceAccessibleBinaries:()=>l9,hasPackageScript:()=>GFe,hasWorkspaceScript:()=>tD,makeScriptEnv:()=>Vp,maybeExecuteWorkspaceLifecycleScript:()=>YFe,prepareExternalProject:()=>HFe});var Fp={};it(Fp,{getLibzipPromise:()=>$i,getLibzipSync:()=>v4});var yA=["number","number"],nP;(function(D){D[D.ZIP_ER_OK=0]="ZIP_ER_OK",D[D.ZIP_ER_MULTIDISK=1]="ZIP_ER_MULTIDISK",D[D.ZIP_ER_RENAME=2]="ZIP_ER_RENAME",D[D.ZIP_ER_CLOSE=3]="ZIP_ER_CLOSE",D[D.ZIP_ER_SEEK=4]="ZIP_ER_SEEK",D[D.ZIP_ER_READ=5]="ZIP_ER_READ",D[D.ZIP_ER_WRITE=6]="ZIP_ER_WRITE",D[D.ZIP_ER_CRC=7]="ZIP_ER_CRC",D[D.ZIP_ER_ZIPCLOSED=8]="ZIP_ER_ZIPCLOSED",D[D.ZIP_ER_NOENT=9]="ZIP_ER_NOENT",D[D.ZIP_ER_EXISTS=10]="ZIP_ER_EXISTS",D[D.ZIP_ER_OPEN=11]="ZIP_ER_OPEN",D[D.ZIP_ER_TMPOPEN=12]="ZIP_ER_TMPOPEN",D[D.ZIP_ER_ZLIB=13]="ZIP_ER_ZLIB",D[D.ZIP_ER_MEMORY=14]="ZIP_ER_MEMORY",D[D.ZIP_ER_CHANGED=15]="ZIP_ER_CHANGED",D[D.ZIP_ER_COMPNOTSUPP=16]="ZIP_ER_COMPNOTSUPP",D[D.ZIP_ER_EOF=17]="ZIP_ER_EOF",D[D.ZIP_ER_INVAL=18]="ZIP_ER_INVAL",D[D.ZIP_ER_NOZIP=19]="ZIP_ER_NOZIP",D[D.ZIP_ER_INTERNAL=20]="ZIP_ER_INTERNAL",D[D.ZIP_ER_INCONS=21]="ZIP_ER_INCONS",D[D.ZIP_ER_REMOVE=22]="ZIP_ER_REMOVE",D[D.ZIP_ER_DELETED=23]="ZIP_ER_DELETED",D[D.ZIP_ER_ENCRNOTSUPP=24]="ZIP_ER_ENCRNOTSUPP",D[D.ZIP_ER_RDONLY=25]="ZIP_ER_RDONLY",D[D.ZIP_ER_NOPASSWD=26]="ZIP_ER_NOPASSWD",D[D.ZIP_ER_WRONGPASSWD=27]="ZIP_ER_WRONGPASSWD",D[D.ZIP_ER_OPNOTSUPP=28]="ZIP_ER_OPNOTSUPP",D[D.ZIP_ER_INUSE=29]="ZIP_ER_INUSE",D[D.ZIP_ER_TELL=30]="ZIP_ER_TELL",D[D.ZIP_ER_COMPRESSED_DATA=31]="ZIP_ER_COMPRESSED_DATA"})(nP||(nP={}));var $8=t=>({get HEAP8(){return t.HEAP8},get HEAPU8(){return t.HEAPU8},errors:nP,SEEK_SET:0,SEEK_CUR:1,SEEK_END:2,ZIP_CHECKCONS:4,ZIP_CREATE:1,ZIP_EXCL:2,ZIP_TRUNCATE:8,ZIP_RDONLY:16,ZIP_FL_OVERWRITE:8192,ZIP_FL_COMPRESSED:4,ZIP_OPSYS_DOS:0,ZIP_OPSYS_AMIGA:1,ZIP_OPSYS_OPENVMS:2,ZIP_OPSYS_UNIX:3,ZIP_OPSYS_VM_CMS:4,ZIP_OPSYS_ATARI_ST:5,ZIP_OPSYS_OS_2:6,ZIP_OPSYS_MACINTOSH:7,ZIP_OPSYS_Z_SYSTEM:8,ZIP_OPSYS_CPM:9,ZIP_OPSYS_WINDOWS_NTFS:10,ZIP_OPSYS_MVS:11,ZIP_OPSYS_VSE:12,ZIP_OPSYS_ACORN_RISC:13,ZIP_OPSYS_VFAT:14,ZIP_OPSYS_ALTERNATE_MVS:15,ZIP_OPSYS_BEOS:16,ZIP_OPSYS_TANDEM:17,ZIP_OPSYS_OS_400:18,ZIP_OPSYS_OS_X:19,ZIP_CM_DEFAULT:-1,ZIP_CM_STORE:0,ZIP_CM_DEFLATE:8,uint08S:t._malloc(1),uint16S:t._malloc(2),uint32S:t._malloc(4),uint64S:t._malloc(8),malloc:t._malloc,free:t._free,getValue:t.getValue,open:t.cwrap("zip_open","number",["string","number","number"]),openFromSource:t.cwrap("zip_open_from_source","number",["number","number","number"]),close:t.cwrap("zip_close","number",["number"]),discard:t.cwrap("zip_discard",null,["number"]),getError:t.cwrap("zip_get_error","number",["number"]),getName:t.cwrap("zip_get_name","string",["number","number","number"]),getNumEntries:t.cwrap("zip_get_num_entries","number",["number","number"]),delete:t.cwrap("zip_delete","number",["number","number"]),stat:t.cwrap("zip_stat","number",["number","string","number","number"]),statIndex:t.cwrap("zip_stat_index","number",["number",...yA,"number","number"]),fopen:t.cwrap("zip_fopen","number",["number","string","number"]),fopenIndex:t.cwrap("zip_fopen_index","number",["number",...yA,"number"]),fread:t.cwrap("zip_fread","number",["number","number","number","number"]),fclose:t.cwrap("zip_fclose","number",["number"]),dir:{add:t.cwrap("zip_dir_add","number",["number","string"])},file:{add:t.cwrap("zip_file_add","number",["number","string","number","number"]),getError:t.cwrap("zip_file_get_error","number",["number"]),getExternalAttributes:t.cwrap("zip_file_get_external_attributes","number",["number",...yA,"number","number","number"]),setExternalAttributes:t.cwrap("zip_file_set_external_attributes","number",["number",...yA,"number","number","number"]),setMtime:t.cwrap("zip_file_set_mtime","number",["number",...yA,"number","number"]),setCompression:t.cwrap("zip_set_file_compression","number",["number",...yA,"number","number"])},ext:{countSymlinks:t.cwrap("zip_ext_count_symlinks","number",["number"])},error:{initWithCode:t.cwrap("zip_error_init_with_code",null,["number","number"]),strerror:t.cwrap("zip_error_strerror","string",["number"])},name:{locate:t.cwrap("zip_name_locate","number",["number","string","number"])},source:{fromUnattachedBuffer:t.cwrap("zip_source_buffer_create","number",["number","number","number","number"]),fromBuffer:t.cwrap("zip_source_buffer","number",["number","number",...yA,"number"]),free:t.cwrap("zip_source_free",null,["number"]),keep:t.cwrap("zip_source_keep",null,["number"]),open:t.cwrap("zip_source_open","number",["number"]),close:t.cwrap("zip_source_close","number",["number"]),seek:t.cwrap("zip_source_seek","number",["number",...yA,"number"]),tell:t.cwrap("zip_source_tell","number",["number"]),read:t.cwrap("zip_source_read","number",["number","number","number"]),error:t.cwrap("zip_source_error","number",["number"]),setMtime:t.cwrap("zip_source_set_mtime","number",["number","number"])},struct:{stat:t.cwrap("zipstruct_stat","number",[]),statS:t.cwrap("zipstruct_statS","number",[]),statName:t.cwrap("zipstruct_stat_name","string",["number"]),statIndex:t.cwrap("zipstruct_stat_index","number",["number"]),statSize:t.cwrap("zipstruct_stat_size","number",["number"]),statCompSize:t.cwrap("zipstruct_stat_comp_size","number",["number"]),statCompMethod:t.cwrap("zipstruct_stat_comp_method","number",["number"]),statMtime:t.cwrap("zipstruct_stat_mtime","number",["number"]),statCrc:t.cwrap("zipstruct_stat_crc","number",["number"]),error:t.cwrap("zipstruct_error","number",[]),errorS:t.cwrap("zipstruct_errorS","number",[]),errorCodeZip:t.cwrap("zipstruct_error_code_zip","number",["number"])}});var BP=null;function v4(){return BP===null&&(BP=$8(b4())),BP}async function $i(){return v4()}var jp={};it(jp,{ShellError:()=>as,execute:()=>Fw,globUtils:()=>bw});var Hp={};it(Hp,{parseResolution:()=>gw,parseShell:()=>Aw,parseSyml:()=>Ii,stringifyArgument:()=>SP,stringifyArgumentSegment:()=>xP,stringifyArithmeticExpression:()=>uw,stringifyCommand:()=>vP,stringifyCommandChain:()=>rg,stringifyCommandChainThen:()=>bP,stringifyCommandLine:()=>lw,stringifyCommandLineThen:()=>QP,stringifyEnvSegment:()=>cw,stringifyRedirectArgument:()=>Np,stringifyResolution:()=>fw,stringifyShell:()=>tg,stringifyShellLine:()=>tg,stringifySyml:()=>Qa,stringifyValueArgument:()=>ig});var k4=ie(x4());function Aw(t,e={isGlobPattern:()=>!1}){try{return(0,k4.parse)(t,e)}catch(r){throw r.location&&(r.message=r.message.replace(/(\.)?$/,` (line ${r.location.start.line}, column ${r.location.start.column})$1`)),r}}function tg(t,{endSemicolon:e=!1}={}){return t.map(({command:r,type:i},n)=>`${lw(r)}${i===";"?n!==t.length-1||e?";":"":" &"}`).join(" ")}function lw(t){return`${rg(t.chain)}${t.then?` ${QP(t.then)}`:""}`}function QP(t){return`${t.type} ${lw(t.line)}`}function rg(t){return`${vP(t)}${t.then?` ${bP(t.then)}`:""}`}function bP(t){return`${t.type} ${rg(t.chain)}`}function vP(t){switch(t.type){case"command":return`${t.envs.length>0?`${t.envs.map(e=>cw(e)).join(" ")} `:""}${t.args.map(e=>SP(e)).join(" ")}`;case"subshell":return`(${tg(t.subshell)})${t.args.length>0?` ${t.args.map(e=>Np(e)).join(" ")}`:""}`;case"group":return`{ ${tg(t.group,{endSemicolon:!0})} }${t.args.length>0?` ${t.args.map(e=>Np(e)).join(" ")}`:""}`;case"envs":return t.envs.map(e=>cw(e)).join(" ");default:throw new Error(`Unsupported command type: "${t.type}"`)}}function cw(t){return`${t.name}=${t.args[0]?ig(t.args[0]):""}`}function SP(t){switch(t.type){case"redirection":return Np(t);case"argument":return ig(t);default:throw new Error(`Unsupported argument type: "${t.type}"`)}}function Np(t){return`${t.subtype} ${t.args.map(e=>ig(e)).join(" ")}`}function ig(t){return t.segments.map(e=>xP(e)).join("")}function xP(t){let e=(i,n)=>n?`"${i}"`:i,r=i=>i===""?'""':i.match(/[(){}<>$|&; \t"']/)?`$'${i.replace(/\\/g,"\\\\").replace(/'/g,"\\'").replace(/\f/g,"\\f").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\t/g,"\\t").replace(/\v/g,"\\v").replace(/\0/g,"\\0")}'`:i;switch(t.type){case"text":return r(t.text);case"glob":return t.pattern;case"shell":return e(`\${${tg(t.shell)}}`,t.quoted);case"variable":return e(typeof t.defaultValue=="undefined"?`\${${t.name}}`:t.defaultValue.length===0?`\${${t.name}:-}`:`\${${t.name}:-${t.defaultValue.map(i=>ig(i)).join(" ")}}`,t.quoted);case"arithmetic":return`$(( ${uw(t.arithmetic)} ))`;default:throw new Error(`Unsupported argument segment type: "${t.type}"`)}}function uw(t){let e=n=>{switch(n){case"addition":return"+";case"subtraction":return"-";case"multiplication":return"*";case"division":return"/";default:throw new Error(`Can't extract operator from arithmetic expression of type "${n}"`)}},r=(n,s)=>s?`( ${n} )`:n,i=n=>r(uw(n),!["number","variable"].includes(n.type));switch(t.type){case"number":return String(t.value);case"variable":return t.name;default:return`${i(t.left)} ${e(t.type)} ${i(t.right)}`}}var R4=ie(D4());function gw(t){let e=t.match(/^\*{1,2}\/(.*)/);if(e)throw new Error(`The override for '${t}' includes a glob pattern. Glob patterns have been removed since their behaviours don't match what you'd expect. Set the override to '${e[1]}' instead.`);try{return(0,R4.parse)(t)}catch(r){throw r.location&&(r.message=r.message.replace(/(\.)?$/,` (line ${r.location.start.line}, column ${r.location.start.column})$1`)),r}}function fw(t){let e="";return t.from&&(e+=t.from.fullName,t.from.description&&(e+=`@${t.from.description}`),e+="/"),e+=t.descriptor.fullName,t.descriptor.description&&(e+=`@${t.descriptor.description}`),e}var Qw=ie(w5()),b5=ie(Q5()),$De=/^(?![-?:,\][{}#&*!|>'"%@` \t\r\n]).([ \t]*(?![,\][{}:# \t\r\n]).)*$/,v5=["__metadata","version","resolution","dependencies","peerDependencies","dependenciesMeta","peerDependenciesMeta","binaries"],HP=class{constructor(e){this.data=e}};function S5(t){return t.match($De)?t:JSON.stringify(t)}function x5(t){return typeof t=="undefined"?!0:typeof t=="object"&&t!==null?Object.keys(t).every(e=>x5(t[e])):!1}function GP(t,e,r){if(t===null)return`null -`;if(typeof t=="number"||typeof t=="boolean")return`${t.toString()} -`;if(typeof t=="string")return`${S5(t)} -`;if(Array.isArray(t)){if(t.length===0)return`[] -`;let i=" ".repeat(e);return` -${t.map(s=>`${i}- ${GP(s,e+1,!1)}`).join("")}`}if(typeof t=="object"&&t){let i,n;t instanceof HP?(i=t.data,n=!1):(i=t,n=!0);let s=" ".repeat(e),o=Object.keys(i);n&&o.sort((l,c)=>{let u=v5.indexOf(l),g=v5.indexOf(c);return u===-1&&g===-1?lc?1:0:u!==-1&&g===-1?-1:u===-1&&g!==-1?1:u-g});let a=o.filter(l=>!x5(i[l])).map((l,c)=>{let u=i[l],g=S5(l),f=GP(u,e+1,!0),h=c>0||r?s:"";return f.startsWith(` -`)?`${h}${g}:${f}`:`${h}${g}: ${f}`}).join(e===0?` -`:"")||` -`;return r?` -${a}`:`${a}`}throw new Error(`Unsupported value type (${t})`)}function Qa(t){try{let e=GP(t,0,!1);return e!==` -`?e:""}catch(e){throw e.location&&(e.message=e.message.replace(/(\.)?$/,` (line ${e.location.start.line}, column ${e.location.start.column})$1`)),e}}Qa.PreserveOrdering=HP;function eRe(t){return t.endsWith(` -`)||(t+=` -`),(0,b5.parse)(t)}var tRe=/^(#.*(\r?\n))*?#\s+yarn\s+lockfile\s+v1\r?\n/i;function rRe(t){if(tRe.test(t))return eRe(t);let e=(0,Qw.safeLoad)(t,{schema:Qw.FAILSAFE_SCHEMA,json:!0});if(e==null)return{};if(typeof e!="object")throw new Error(`Expected an indexed object, got a ${typeof e} instead. Does your file follow Yaml's rules?`);if(Array.isArray(e))throw new Error("Expected an indexed object, got an array instead. Does your file follow Yaml's rules?");return e}function Ii(t){return rRe(t)}var U5=ie(jb()),H5=ie(require("os")),Kn=ie(require("stream")),G5=ie(require("util"));var as=class extends Error{constructor(e){super(e);this.name="ShellError"}};var bw={};it(bw,{fastGlobOptions:()=>D5,isBraceExpansion:()=>R5,isGlobPattern:()=>iRe,match:()=>nRe,micromatchOptions:()=>Sw});var k5=ie(gy()),P5=ie(require("fs")),vw=ie(Nn()),Sw={strictBrackets:!0},D5={onlyDirectories:!1,onlyFiles:!1};function iRe(t){if(!vw.default.scan(t,Sw).isGlob)return!1;try{vw.default.parse(t,Sw)}catch{return!1}return!0}function nRe(t,{cwd:e,baseFs:r}){return(0,k5.default)(t,_(P({},D5),{cwd:M.fromPortablePath(e),fs:SE(P5.default,new ah(r))}))}function R5(t){return vw.default.scan(t,Sw).isBrace}var F5=ie(bb()),Bo=ie(require("stream")),N5=ie(require("string_decoder")),wn;(function(i){i[i.STDIN=0]="STDIN",i[i.STDOUT=1]="STDOUT",i[i.STDERR=2]="STDERR"})(wn||(wn={}));var sc=new Set;function jP(){}function YP(){for(let t of sc)t.kill()}function L5(t,e,r,i){return n=>{let s=n[0]instanceof Bo.Transform?"pipe":n[0],o=n[1]instanceof Bo.Transform?"pipe":n[1],a=n[2]instanceof Bo.Transform?"pipe":n[2],l=(0,F5.default)(t,e,_(P({},i),{stdio:[s,o,a]}));return sc.add(l),sc.size===1&&(process.on("SIGINT",jP),process.on("SIGTERM",YP)),n[0]instanceof Bo.Transform&&n[0].pipe(l.stdin),n[1]instanceof Bo.Transform&&l.stdout.pipe(n[1],{end:!1}),n[2]instanceof Bo.Transform&&l.stderr.pipe(n[2],{end:!1}),{stdin:l.stdin,promise:new Promise(c=>{l.on("error",u=>{switch(sc.delete(l),sc.size===0&&(process.off("SIGINT",jP),process.off("SIGTERM",YP)),u.code){case"ENOENT":n[2].write(`command not found: ${t} -`),c(127);break;case"EACCES":n[2].write(`permission denied: ${t} -`),c(128);break;default:n[2].write(`uncaught error: ${u.message} -`),c(1);break}}),l.on("exit",u=>{sc.delete(l),sc.size===0&&(process.off("SIGINT",jP),process.off("SIGTERM",YP)),c(u!==null?u:129)})})}}}function T5(t){return e=>{let r=e[0]==="pipe"?new Bo.PassThrough:e[0];return{stdin:r,promise:Promise.resolve().then(()=>t({stdin:r,stdout:e[1],stderr:e[2]}))}}}var Os=class{constructor(e){this.stream=e}close(){}get(){return this.stream}},M5=class{constructor(){this.stream=null}close(){if(this.stream===null)throw new Error("Assertion failed: No stream attached");this.stream.end()}attach(e){this.stream=e}get(){if(this.stream===null)throw new Error("Assertion failed: No stream attached");return this.stream}},Gp=class{constructor(e,r){this.stdin=null;this.stdout=null;this.stderr=null;this.pipe=null;this.ancestor=e,this.implementation=r}static start(e,{stdin:r,stdout:i,stderr:n}){let s=new Gp(null,e);return s.stdin=r,s.stdout=i,s.stderr=n,s}pipeTo(e,r=1){let i=new Gp(this,e),n=new M5;return i.pipe=n,i.stdout=this.stdout,i.stderr=this.stderr,(r&1)==1?this.stdout=n:this.ancestor!==null&&(this.stderr=this.ancestor.stdout),(r&2)==2?this.stderr=n:this.ancestor!==null&&(this.stderr=this.ancestor.stderr),i}async exec(){let e=["ignore","ignore","ignore"];if(this.pipe)e[0]="pipe";else{if(this.stdin===null)throw new Error("Assertion failed: No input stream registered");e[0]=this.stdin.get()}let r;if(this.stdout===null)throw new Error("Assertion failed: No output stream registered");r=this.stdout,e[1]=r.get();let i;if(this.stderr===null)throw new Error("Assertion failed: No error stream registered");i=this.stderr,e[2]=i.get();let n=this.implementation(e);return this.pipe&&this.pipe.attach(n.stdin),await n.promise.then(s=>(r.close(),i.close(),s))}async run(){let e=[];for(let i=this;i;i=i.ancestor)e.push(i.exec());return(await Promise.all(e))[0]}};function xw(t,e){return Gp.start(t,e)}function O5(t,e=null){let r=new Bo.PassThrough,i=new N5.StringDecoder,n="";return r.on("data",s=>{let o=i.write(s),a;do if(a=o.indexOf(` -`),a!==-1){let l=n+o.substr(0,a);o=o.substr(a+1),n="",t(e!==null?`${e} ${l}`:l)}while(a!==-1);n+=o}),r.on("end",()=>{let s=i.end();s!==""&&t(e!==null?`${e} ${s}`:s)}),r}function K5(t,{prefix:e}){return{stdout:O5(r=>t.stdout.write(`${r} -`),t.stdout.isTTY?e:null),stderr:O5(r=>t.stderr.write(`${r} -`),t.stderr.isTTY?e:null)}}var sRe=(0,G5.promisify)(setTimeout);var Fi;(function(r){r[r.Readable=1]="Readable",r[r.Writable=2]="Writable"})(Fi||(Fi={}));function j5(t,e,r){let i=new Kn.PassThrough({autoDestroy:!0});switch(t){case wn.STDIN:(e&1)==1&&r.stdin.pipe(i,{end:!1}),(e&2)==2&&r.stdin instanceof Kn.Writable&&i.pipe(r.stdin,{end:!1});break;case wn.STDOUT:(e&1)==1&&r.stdout.pipe(i,{end:!1}),(e&2)==2&&i.pipe(r.stdout,{end:!1});break;case wn.STDERR:(e&1)==1&&r.stderr.pipe(i,{end:!1}),(e&2)==2&&i.pipe(r.stderr,{end:!1});break;default:throw new as(`Bad file descriptor: "${t}"`)}return i}function kw(t,e={}){let r=P(P({},t),e);return r.environment=P(P({},t.environment),e.environment),r.variables=P(P({},t.variables),e.variables),r}var oRe=new Map([["cd",async([t=(0,H5.homedir)(),...e],r,i)=>{let n=v.resolve(i.cwd,M.toPortablePath(t));if(!(await r.baseFs.statPromise(n).catch(o=>{throw o.code==="ENOENT"?new as(`cd: no such file or directory: ${t}`):o})).isDirectory())throw new as(`cd: not a directory: ${t}`);return i.cwd=n,0}],["pwd",async(t,e,r)=>(r.stdout.write(`${M.fromPortablePath(r.cwd)} -`),0)],[":",async(t,e,r)=>0],["true",async(t,e,r)=>0],["false",async(t,e,r)=>1],["exit",async([t,...e],r,i)=>i.exitCode=parseInt(t!=null?t:i.variables["?"],10)],["echo",async(t,e,r)=>(r.stdout.write(`${t.join(" ")} -`),0)],["sleep",async([t],e,r)=>{if(typeof t=="undefined")throw new as("sleep: missing operand");let i=Number(t);if(Number.isNaN(i))throw new as(`sleep: invalid time interval '${t}'`);return await sRe(1e3*i,0)}],["__ysh_run_procedure",async(t,e,r)=>{let i=r.procedures[t[0]];return await xw(i,{stdin:new Os(r.stdin),stdout:new Os(r.stdout),stderr:new Os(r.stderr)}).run()}],["__ysh_set_redirects",async(t,e,r)=>{let i=r.stdin,n=r.stdout,s=r.stderr,o=[],a=[],l=[],c=0;for(;t[c]!=="--";){let g=t[c++],{type:f,fd:h}=JSON.parse(g),p=B=>{switch(h){case null:case 0:o.push(B);break;default:throw new Error(`Unsupported file descriptor: "${h}"`)}},d=B=>{switch(h){case null:case 1:a.push(B);break;case 2:l.push(B);break;default:throw new Error(`Unsupported file descriptor: "${h}"`)}},m=Number(t[c++]),I=c+m;for(let B=c;Be.baseFs.createReadStream(v.resolve(r.cwd,M.toPortablePath(t[B]))));break;case"<<<":p(()=>{let b=new Kn.PassThrough;return process.nextTick(()=>{b.write(`${t[B]} -`),b.end()}),b});break;case"<&":p(()=>j5(Number(t[B]),1,r));break;case">":case">>":{let b=v.resolve(r.cwd,M.toPortablePath(t[B]));d(b==="/dev/null"?new Kn.Writable({autoDestroy:!0,emitClose:!0,write(R,H,L){setImmediate(L)}}):e.baseFs.createWriteStream(b,f===">>"?{flags:"a"}:void 0))}break;case">&":d(j5(Number(t[B]),2,r));break;default:throw new Error(`Assertion failed: Unsupported redirection type: "${f}"`)}}if(o.length>0){let g=new Kn.PassThrough;i=g;let f=h=>{if(h===o.length)g.end();else{let p=o[h]();p.pipe(g,{end:!1}),p.on("end",()=>{f(h+1)})}};f(0)}if(a.length>0){let g=new Kn.PassThrough;n=g;for(let f of a)g.pipe(f)}if(l.length>0){let g=new Kn.PassThrough;s=g;for(let f of l)g.pipe(f)}let u=await xw(Yp(t.slice(c+1),e,r),{stdin:new Os(i),stdout:new Os(n),stderr:new Os(s)}).run();return await Promise.all(a.map(g=>new Promise((f,h)=>{g.on("error",p=>{h(p)}),g.on("close",()=>{f()}),g.end()}))),await Promise.all(l.map(g=>new Promise((f,h)=>{g.on("error",p=>{h(p)}),g.on("close",()=>{f()}),g.end()}))),u}]]);async function aRe(t,e,r){let i=[],n=new Kn.PassThrough;return n.on("data",s=>i.push(s)),await Pw(t,e,kw(r,{stdout:n})),Buffer.concat(i).toString().replace(/[\r\n]+$/,"")}async function Y5(t,e,r){let i=t.map(async s=>{let o=await oc(s.args,e,r);return{name:s.name,value:o.join(" ")}});return(await Promise.all(i)).reduce((s,o)=>(s[o.name]=o.value,s),{})}function Dw(t){return t.match(/[^ \r\n\t]+/g)||[]}async function q5(t,e,r,i,n=i){switch(t.name){case"$":i(String(process.pid));break;case"#":i(String(e.args.length));break;case"@":if(t.quoted)for(let s of e.args)n(s);else for(let s of e.args){let o=Dw(s);for(let a=0;a=0&&st+e,subtraction:(t,e)=>t-e,multiplication:(t,e)=>t*e,division:(t,e)=>Math.trunc(t/e)};async function qp(t,e,r){if(t.type==="number"){if(Number.isInteger(t.value))return t.value;throw new Error(`Invalid number: "${t.value}", only integers are allowed`)}else if(t.type==="variable"){let i=[];await q5(_(P({},t),{quoted:!0}),e,r,s=>i.push(s));let n=Number(i.join(" "));return Number.isNaN(n)?qp({type:"variable",name:i.join(" ")},e,r):qp({type:"number",value:n},e,r)}else return ARe[t.type](await qp(t.left,e,r),await qp(t.right,e,r))}async function oc(t,e,r){let i=new Map,n=[],s=[],o=u=>{s.push(u)},a=()=>{s.length>0&&n.push(s.join("")),s=[]},l=u=>{o(u),a()},c=(u,g,f)=>{let h=JSON.stringify({type:u,fd:g}),p=i.get(h);typeof p=="undefined"&&i.set(h,p=[]),p.push(f)};for(let u of t){let g=!1;switch(u.type){case"redirection":{let f=await oc(u.args,e,r);for(let h of f)c(u.subtype,u.fd,h)}break;case"argument":for(let f of u.segments)switch(f.type){case"text":o(f.text);break;case"glob":o(f.pattern),g=!0;break;case"shell":{let h=await aRe(f.shell,e,r);if(f.quoted)o(h);else{let p=Dw(h);for(let d=0;d0){let u=[];for(let[g,f]of i.entries())u.splice(u.length,0,g,String(f.length),...f);n.splice(0,0,"__ysh_set_redirects",...u,"--")}return n}function Yp(t,e,r){e.builtins.has(t[0])||(t=["command",...t]);let i=M.fromPortablePath(r.cwd),n=r.environment;typeof n.PWD!="undefined"&&(n=_(P({},n),{PWD:i}));let[s,...o]=t;if(s==="command")return L5(o[0],o.slice(1),e,{cwd:i,env:n});let a=e.builtins.get(s);if(typeof a=="undefined")throw new Error(`Assertion failed: A builtin should exist for "${s}"`);return T5(async({stdin:l,stdout:c,stderr:u})=>{let{stdin:g,stdout:f,stderr:h}=r;r.stdin=l,r.stdout=c,r.stderr=u;try{return await a(o,e,r)}finally{r.stdin=g,r.stdout=f,r.stderr=h}})}function lRe(t,e,r){return i=>{let n=new Kn.PassThrough,s=Pw(t,e,kw(r,{stdin:n}));return{stdin:n,promise:s}}}function cRe(t,e,r){return i=>{let n=new Kn.PassThrough,s=Pw(t,e,r);return{stdin:n,promise:s}}}function J5(t,e,r,i){if(e.length===0)return t;{let n;do n=String(Math.random());while(Object.prototype.hasOwnProperty.call(i.procedures,n));return i.procedures=P({},i.procedures),i.procedures[n]=t,Yp([...e,"__ysh_run_procedure",n],r,i)}}async function W5(t,e,r){let i=t,n=null,s=null;for(;i;){let o=i.then?P({},r):r,a;switch(i.type){case"command":{let l=await oc(i.args,e,r),c=await Y5(i.envs,e,r);a=i.envs.length?Yp(l,e,kw(o,{environment:c})):Yp(l,e,o)}break;case"subshell":{let l=await oc(i.args,e,r),c=lRe(i.subshell,e,o);a=J5(c,l,e,o)}break;case"group":{let l=await oc(i.args,e,r),c=cRe(i.group,e,o);a=J5(c,l,e,o)}break;case"envs":{let l=await Y5(i.envs,e,r);o.environment=P(P({},o.environment),l),a=Yp(["true"],e,o)}break}if(typeof a=="undefined")throw new Error("Assertion failed: An action should have been generated");if(n===null)s=xw(a,{stdin:new Os(o.stdin),stdout:new Os(o.stdout),stderr:new Os(o.stderr)});else{if(s===null)throw new Error("Assertion failed: The execution pipeline should have been setup");switch(n){case"|":s=s.pipeTo(a,wn.STDOUT);break;case"|&":s=s.pipeTo(a,wn.STDOUT|wn.STDERR);break}}i.then?(n=i.then.type,i=i.then.chain):i=null}if(s===null)throw new Error("Assertion failed: The execution pipeline should have been setup");return await s.run()}async function uRe(t,e,r,{background:i=!1}={}){function n(s){let o=["#2E86AB","#A23B72","#F18F01","#C73E1D","#CCE2A3"],a=o[s%o.length];return U5.default.hex(a)}if(i){let s=r.nextBackgroundJobIndex++,o=n(s),a=`[${s}]`,l=o(a),{stdout:c,stderr:u}=K5(r,{prefix:l});return r.backgroundJobs.push(W5(t,e,kw(r,{stdout:c,stderr:u})).catch(g=>u.write(`${g.message} -`)).finally(()=>{r.stdout.isTTY&&r.stdout.write(`Job ${l}, '${o(rg(t))}' has ended -`)})),0}return await W5(t,e,r)}async function gRe(t,e,r,{background:i=!1}={}){let n,s=a=>{n=a,r.variables["?"]=String(a)},o=async a=>{try{return await uRe(a.chain,e,r,{background:i&&typeof a.then=="undefined"})}catch(l){if(!(l instanceof as))throw l;return r.stderr.write(`${l.message} -`),1}};for(s(await o(t));t.then;){if(r.exitCode!==null)return r.exitCode;switch(t.then.type){case"&&":n===0&&s(await o(t.then.line));break;case"||":n!==0&&s(await o(t.then.line));break;default:throw new Error(`Assertion failed: Unsupported command type: "${t.then.type}"`)}t=t.then.line}return n}async function Pw(t,e,r){let i=r.backgroundJobs;r.backgroundJobs=[];let n=0;for(let{command:s,type:o}of t){if(n=await gRe(s,e,r,{background:o==="&"}),r.exitCode!==null)return r.exitCode;r.variables["?"]=String(n)}return await Promise.all(r.backgroundJobs),r.backgroundJobs=i,n}function z5(t){switch(t.type){case"variable":return t.name==="@"||t.name==="#"||t.name==="*"||Number.isFinite(parseInt(t.name,10))||"defaultValue"in t&&!!t.defaultValue&&t.defaultValue.some(e=>Rw(e));case"arithmetic":return qP(t.arithmetic);case"shell":return JP(t.shell);default:return!1}}function Rw(t){switch(t.type){case"redirection":return t.args.some(e=>Rw(e));case"argument":return t.segments.some(e=>z5(e));default:throw new Error(`Assertion failed: Unsupported argument type: "${t.type}"`)}}function qP(t){switch(t.type){case"variable":return z5(t);case"number":return!1;default:return qP(t.left)||qP(t.right)}}function JP(t){return t.some(({command:e})=>{for(;e;){let r=e.chain;for(;r;){let i;switch(r.type){case"subshell":i=JP(r.subshell);break;case"command":i=r.envs.some(n=>n.args.some(s=>Rw(s)))||r.args.some(n=>Rw(n));break}if(i)return!0;if(!r.then)break;r=r.then.chain}if(!e.then)break;e=e.then.line}return!1})}async function Fw(t,e=[],{baseFs:r=new Wt,builtins:i={},cwd:n=M.toPortablePath(process.cwd()),env:s=process.env,stdin:o=process.stdin,stdout:a=process.stdout,stderr:l=process.stderr,variables:c={},glob:u=bw}={}){let g={};for(let[p,d]of Object.entries(s))typeof d!="undefined"&&(g[p]=d);let f=new Map(oRe);for(let[p,d]of Object.entries(i))f.set(p,d);o===null&&(o=new Kn.PassThrough,o.end());let h=Aw(t,u);if(!JP(h)&&h.length>0&&e.length>0){let{command:p}=h[h.length-1];for(;p.then;)p=p.then.line;let d=p.chain;for(;d.then;)d=d.then.chain;d.type==="command"&&(d.args=d.args.concat(e.map(m=>({type:"argument",segments:[{type:"text",text:m}]}))))}return await Pw(h,{args:e,baseFs:r,builtins:f,initialStdin:o,initialStdout:a,initialStderr:l,glob:u},{cwd:n,environment:g,exitCode:null,procedures:{},stdin:o,stdout:a,stderr:l,variables:Object.assign({},c,{["?"]:0}),nextBackgroundJobIndex:1,backgroundJobs:[]})}var s9=ie(ZP()),o9=ie(Wp()),cc=ie(require("stream"));var J6=ie(Or());var zp=class{supportsDescriptor(e,r){return!!(e.range.startsWith(zp.protocol)||r.project.tryWorkspaceByDescriptor(e)!==null)}supportsLocator(e,r){return!!e.reference.startsWith(zp.protocol)}shouldPersistResolution(e,r){return!1}bindDescriptor(e,r,i){return e}getResolutionDependencies(e,r){return[]}async getCandidates(e,r,i){return[i.project.getWorkspaceByDescriptor(e).anchoredLocator]}async getSatisfying(e,r,i){return null}async resolve(e,r){let i=r.project.getWorkspaceByCwd(e.reference.slice(zp.protocol.length));return _(P({},e),{version:i.manifest.version||"0.0.0",languageName:"unknown",linkType:gt.SOFT,conditions:null,dependencies:new Map([...i.manifest.dependencies,...i.manifest.devDependencies]),peerDependencies:new Map([...i.manifest.peerDependencies]),dependenciesMeta:i.manifest.dependenciesMeta,peerDependenciesMeta:i.manifest.peerDependenciesMeta,bin:i.manifest.bin})}},Yr=zp;Yr.protocol="workspace:";var qt={};it(qt,{SemVer:()=>j6.SemVer,satisfiesWithPrereleases:()=>lc,validRange:()=>Us});var Lw=ie(Or()),j6=ie(Or()),Y6=new Map;function lc(t,e,r=!1){if(!t)return!1;let i=`${e}${r}`,n=Y6.get(i);if(typeof n=="undefined")try{n=new Lw.default.Range(e,{includePrerelease:!0,loose:r})}catch{return!1}finally{Y6.set(i,n||null)}else if(n===null)return!1;let s;try{s=new Lw.default.SemVer(t,n)}catch(o){return!1}return n.test(s)?!0:(s.prerelease&&(s.prerelease=[]),n.set.some(o=>{for(let a of o)a.semver.prerelease&&(a.semver.prerelease=[]);return o.every(a=>a.test(s))}))}var q6=new Map;function Us(t){if(t.indexOf(":")!==-1)return null;let e=q6.get(t);if(typeof e!="undefined")return e;try{e=new Lw.default.Range(t)}catch{e=null}return q6.set(t,e),e}var vA=class{constructor(){this.indent=" ";this.name=null;this.version=null;this.os=null;this.cpu=null;this.type=null;this.packageManager=null;this.private=!1;this.license=null;this.main=null;this.module=null;this.browser=null;this.languageName=null;this.bin=new Map;this.scripts=new Map;this.dependencies=new Map;this.devDependencies=new Map;this.peerDependencies=new Map;this.workspaceDefinitions=[];this.dependenciesMeta=new Map;this.peerDependenciesMeta=new Map;this.resolutions=[];this.files=null;this.publishConfig=null;this.installConfig=null;this.preferUnplugged=null;this.raw={};this.errors=[]}static async tryFind(e,{baseFs:r=new Wt}={}){let i=v.join(e,"package.json");return await r.existsPromise(i)?await vA.fromFile(i,{baseFs:r}):null}static async find(e,{baseFs:r}={}){let i=await vA.tryFind(e,{baseFs:r});if(i===null)throw new Error("Manifest not found");return i}static async fromFile(e,{baseFs:r=new Wt}={}){let i=new vA;return await i.loadFile(e,{baseFs:r}),i}static fromText(e){let r=new vA;return r.loadFromText(e),r}static isManifestFieldCompatible(e,r){if(e===null)return!0;let i=!0,n=!1;for(let s of e)if(s[0]==="!"){if(n=!0,r===s.slice(1))return!1}else if(i=!1,s===r)return!0;return n&&i}loadFromText(e){let r;try{r=JSON.parse(z6(e)||"{}")}catch(i){throw i.message+=` (when parsing ${e})`,i}this.load(r),this.indent=W6(e)}async loadFile(e,{baseFs:r=new Wt}){let i=await r.readFilePromise(e,"utf8"),n;try{n=JSON.parse(z6(i)||"{}")}catch(s){throw s.message+=` (when parsing ${e})`,s}this.load(n),this.indent=W6(i)}load(e,{yamlCompatibilityMode:r=!1}={}){if(typeof e!="object"||e===null)throw new Error(`Utterly invalid manifest data (${e})`);this.raw=e;let i=[];if(this.name=null,typeof e.name=="string")try{this.name=En(e.name)}catch(s){i.push(new Error("Parsing failed for the 'name' field"))}if(typeof e.version=="string"?this.version=e.version:this.version=null,Array.isArray(e.os)){let s=[];this.os=s;for(let o of e.os)typeof o!="string"?i.push(new Error("Parsing failed for the 'os' field")):s.push(o)}else this.os=null;if(Array.isArray(e.cpu)){let s=[];this.cpu=s;for(let o of e.cpu)typeof o!="string"?i.push(new Error("Parsing failed for the 'cpu' field")):s.push(o)}else this.cpu=null;if(typeof e.type=="string"?this.type=e.type:this.type=null,typeof e.packageManager=="string"?this.packageManager=e.packageManager:this.packageManager=null,typeof e.private=="boolean"?this.private=e.private:this.private=!1,typeof e.license=="string"?this.license=e.license:this.license=null,typeof e.languageName=="string"?this.languageName=e.languageName:this.languageName=null,typeof e.main=="string"?this.main=en(e.main):this.main=null,typeof e.module=="string"?this.module=en(e.module):this.module=null,e.browser!=null)if(typeof e.browser=="string")this.browser=en(e.browser);else{this.browser=new Map;for(let[s,o]of Object.entries(e.browser))this.browser.set(en(s),typeof o=="string"?en(o):o)}else this.browser=null;if(this.bin=new Map,typeof e.bin=="string")this.name!==null?this.bin.set(this.name.name,en(e.bin)):i.push(new Error("String bin field, but no attached package name"));else if(typeof e.bin=="object"&&e.bin!==null)for(let[s,o]of Object.entries(e.bin)){if(typeof o!="string"){i.push(new Error(`Invalid bin definition for '${s}'`));continue}this.bin.set(s,en(o))}if(this.scripts=new Map,typeof e.scripts=="object"&&e.scripts!==null)for(let[s,o]of Object.entries(e.scripts)){if(typeof o!="string"){i.push(new Error(`Invalid script definition for '${s}'`));continue}this.scripts.set(s,o)}if(this.dependencies=new Map,typeof e.dependencies=="object"&&e.dependencies!==null)for(let[s,o]of Object.entries(e.dependencies)){if(typeof o!="string"){i.push(new Error(`Invalid dependency range for '${s}'`));continue}let a;try{a=En(s)}catch(c){i.push(new Error(`Parsing failed for the dependency name '${s}'`));continue}let l=Yt(a,o);this.dependencies.set(l.identHash,l)}if(this.devDependencies=new Map,typeof e.devDependencies=="object"&&e.devDependencies!==null)for(let[s,o]of Object.entries(e.devDependencies)){if(typeof o!="string"){i.push(new Error(`Invalid dependency range for '${s}'`));continue}let a;try{a=En(s)}catch(c){i.push(new Error(`Parsing failed for the dependency name '${s}'`));continue}let l=Yt(a,o);this.devDependencies.set(l.identHash,l)}if(this.peerDependencies=new Map,typeof e.peerDependencies=="object"&&e.peerDependencies!==null)for(let[s,o]of Object.entries(e.peerDependencies)){let a;try{a=En(s)}catch(c){i.push(new Error(`Parsing failed for the dependency name '${s}'`));continue}(typeof o!="string"||!o.startsWith(Yr.protocol)&&!Us(o))&&(i.push(new Error(`Invalid dependency range for '${s}'`)),o="*");let l=Yt(a,o);this.peerDependencies.set(l.identHash,l)}typeof e.workspaces=="object"&&e.workspaces.nohoist&&i.push(new Error("'nohoist' is deprecated, please use 'installConfig.hoistingLimits' instead"));let n=Array.isArray(e.workspaces)?e.workspaces:typeof e.workspaces=="object"&&e.workspaces!==null&&Array.isArray(e.workspaces.packages)?e.workspaces.packages:[];this.workspaceDefinitions=[];for(let s of n){if(typeof s!="string"){i.push(new Error(`Invalid workspace definition for '${s}'`));continue}this.workspaceDefinitions.push({pattern:s})}if(this.dependenciesMeta=new Map,typeof e.dependenciesMeta=="object"&&e.dependenciesMeta!==null)for(let[s,o]of Object.entries(e.dependenciesMeta)){if(typeof o!="object"||o===null){i.push(new Error(`Invalid meta field for '${s}`));continue}let a=pA(s),l=this.ensureDependencyMeta(a),c=Tw(o.built,{yamlCompatibilityMode:r});if(c===null){i.push(new Error(`Invalid built meta field for '${s}'`));continue}let u=Tw(o.optional,{yamlCompatibilityMode:r});if(u===null){i.push(new Error(`Invalid optional meta field for '${s}'`));continue}let g=Tw(o.unplugged,{yamlCompatibilityMode:r});if(g===null){i.push(new Error(`Invalid unplugged meta field for '${s}'`));continue}Object.assign(l,{built:c,optional:u,unplugged:g})}if(this.peerDependenciesMeta=new Map,typeof e.peerDependenciesMeta=="object"&&e.peerDependenciesMeta!==null)for(let[s,o]of Object.entries(e.peerDependenciesMeta)){if(typeof o!="object"||o===null){i.push(new Error(`Invalid meta field for '${s}'`));continue}let a=pA(s),l=this.ensurePeerDependencyMeta(a),c=Tw(o.optional,{yamlCompatibilityMode:r});if(c===null){i.push(new Error(`Invalid optional meta field for '${s}'`));continue}Object.assign(l,{optional:c})}if(this.resolutions=[],typeof e.resolutions=="object"&&e.resolutions!==null)for(let[s,o]of Object.entries(e.resolutions)){if(typeof o!="string"){i.push(new Error(`Invalid resolution entry for '${s}'`));continue}try{this.resolutions.push({pattern:gw(s),reference:o})}catch(a){i.push(a);continue}}if(Array.isArray(e.files)){this.files=new Set;for(let s of e.files){if(typeof s!="string"){i.push(new Error(`Invalid files entry for '${s}'`));continue}this.files.add(s)}}else this.files=null;if(typeof e.publishConfig=="object"&&e.publishConfig!==null){if(this.publishConfig={},typeof e.publishConfig.access=="string"&&(this.publishConfig.access=e.publishConfig.access),typeof e.publishConfig.main=="string"&&(this.publishConfig.main=en(e.publishConfig.main)),typeof e.publishConfig.module=="string"&&(this.publishConfig.module=en(e.publishConfig.module)),e.publishConfig.browser!=null)if(typeof e.publishConfig.browser=="string")this.publishConfig.browser=en(e.publishConfig.browser);else{this.publishConfig.browser=new Map;for(let[s,o]of Object.entries(e.publishConfig.browser))this.publishConfig.browser.set(en(s),typeof o=="string"?en(o):o)}if(typeof e.publishConfig.registry=="string"&&(this.publishConfig.registry=e.publishConfig.registry),typeof e.publishConfig.bin=="string")this.name!==null?this.publishConfig.bin=new Map([[this.name.name,en(e.publishConfig.bin)]]):i.push(new Error("String bin field, but no attached package name"));else if(typeof e.publishConfig.bin=="object"&&e.publishConfig.bin!==null){this.publishConfig.bin=new Map;for(let[s,o]of Object.entries(e.publishConfig.bin)){if(typeof o!="string"){i.push(new Error(`Invalid bin definition for '${s}'`));continue}this.publishConfig.bin.set(s,en(o))}}if(Array.isArray(e.publishConfig.executableFiles)){this.publishConfig.executableFiles=new Set;for(let s of e.publishConfig.executableFiles){if(typeof s!="string"){i.push(new Error("Invalid executable file definition"));continue}this.publishConfig.executableFiles.add(en(s))}}}else this.publishConfig=null;if(typeof e.installConfig=="object"&&e.installConfig!==null){this.installConfig={};for(let s of Object.keys(e.installConfig))s==="hoistingLimits"?typeof e.installConfig.hoistingLimits=="string"?this.installConfig.hoistingLimits=e.installConfig.hoistingLimits:i.push(new Error("Invalid hoisting limits definition")):s=="selfReferences"?typeof e.installConfig.selfReferences=="boolean"?this.installConfig.selfReferences=e.installConfig.selfReferences:i.push(new Error("Invalid selfReferences definition, must be a boolean value")):i.push(new Error(`Unrecognized installConfig key: ${s}`))}else this.installConfig=null;if(typeof e.optionalDependencies=="object"&&e.optionalDependencies!==null)for(let[s,o]of Object.entries(e.optionalDependencies)){if(typeof o!="string"){i.push(new Error(`Invalid dependency range for '${s}'`));continue}let a;try{a=En(s)}catch(g){i.push(new Error(`Parsing failed for the dependency name '${s}'`));continue}let l=Yt(a,o);this.dependencies.set(l.identHash,l);let c=Yt(a,"unknown"),u=this.ensureDependencyMeta(c);Object.assign(u,{optional:!0})}typeof e.preferUnplugged=="boolean"?this.preferUnplugged=e.preferUnplugged:this.preferUnplugged=null,this.errors=i}getForScope(e){switch(e){case"dependencies":return this.dependencies;case"devDependencies":return this.devDependencies;case"peerDependencies":return this.peerDependencies;default:throw new Error(`Unsupported value ("${e}")`)}}hasConsumerDependency(e){return!!(this.dependencies.has(e.identHash)||this.peerDependencies.has(e.identHash))}hasHardDependency(e){return!!(this.dependencies.has(e.identHash)||this.devDependencies.has(e.identHash))}hasSoftDependency(e){return!!this.peerDependencies.has(e.identHash)}hasDependency(e){return!!(this.hasHardDependency(e)||this.hasSoftDependency(e))}getConditions(){let e=[];return this.os&&this.os.length>0&&e.push(V6("os",this.os)),this.cpu&&this.cpu.length>0&&e.push(V6("cpu",this.cpu)),e.length>0?e.join(" & "):null}isCompatibleWithOS(e){return vA.isManifestFieldCompatible(this.os,e)}isCompatibleWithCPU(e){return vA.isManifestFieldCompatible(this.cpu,e)}ensureDependencyMeta(e){if(e.range!=="unknown"&&!J6.default.valid(e.range))throw new Error(`Invalid meta field range for '${In(e)}'`);let r=St(e),i=e.range!=="unknown"?e.range:null,n=this.dependenciesMeta.get(r);n||this.dependenciesMeta.set(r,n=new Map);let s=n.get(i);return s||n.set(i,s={}),s}ensurePeerDependencyMeta(e){if(e.range!=="unknown")throw new Error(`Invalid meta field range for '${In(e)}'`);let r=St(e),i=this.peerDependenciesMeta.get(r);return i||this.peerDependenciesMeta.set(r,i={}),i}setRawField(e,r,{after:i=[]}={}){let n=new Set(i.filter(s=>Object.prototype.hasOwnProperty.call(this.raw,s)));if(n.size===0||Object.prototype.hasOwnProperty.call(this.raw,e))this.raw[e]=r;else{let s=this.raw,o=this.raw={},a=!1;for(let l of Object.keys(s))o[l]=s[l],a||(n.delete(l),n.size===0&&(o[e]=r,a=!0))}}exportTo(e,{compatibilityMode:r=!0}={}){var s;if(Object.assign(e,this.raw),this.name!==null?e.name=St(this.name):delete e.name,this.version!==null?e.version=this.version:delete e.version,this.os!==null?e.os=this.os:delete e.os,this.cpu!==null?e.cpu=this.cpu:delete e.cpu,this.type!==null?e.type=this.type:delete e.type,this.packageManager!==null?e.packageManager=this.packageManager:delete e.packageManager,this.private?e.private=!0:delete e.private,this.license!==null?e.license=this.license:delete e.license,this.languageName!==null?e.languageName=this.languageName:delete e.languageName,this.main!==null?e.main=this.main:delete e.main,this.module!==null?e.module=this.module:delete e.module,this.browser!==null){let o=this.browser;typeof o=="string"?e.browser=o:o instanceof Map&&(e.browser=Object.assign({},...Array.from(o.keys()).sort().map(a=>({[a]:o.get(a)}))))}else delete e.browser;this.bin.size===1&&this.name!==null&&this.bin.has(this.name.name)?e.bin=this.bin.get(this.name.name):this.bin.size>0?e.bin=Object.assign({},...Array.from(this.bin.keys()).sort().map(o=>({[o]:this.bin.get(o)}))):delete e.bin,this.workspaceDefinitions.length>0?this.raw.workspaces&&!Array.isArray(this.raw.workspaces)?e.workspaces=_(P({},this.raw.workspaces),{packages:this.workspaceDefinitions.map(({pattern:o})=>o)}):e.workspaces=this.workspaceDefinitions.map(({pattern:o})=>o):this.raw.workspaces&&!Array.isArray(this.raw.workspaces)&&Object.keys(this.raw.workspaces).length>0?e.workspaces=this.raw.workspaces:delete e.workspaces;let i=[],n=[];for(let o of this.dependencies.values()){let a=this.dependenciesMeta.get(St(o)),l=!1;if(r&&a){let c=a.get(null);c&&c.optional&&(l=!0)}l?n.push(o):i.push(o)}i.length>0?e.dependencies=Object.assign({},...Ou(i).map(o=>({[St(o)]:o.range}))):delete e.dependencies,n.length>0?e.optionalDependencies=Object.assign({},...Ou(n).map(o=>({[St(o)]:o.range}))):delete e.optionalDependencies,this.devDependencies.size>0?e.devDependencies=Object.assign({},...Ou(this.devDependencies.values()).map(o=>({[St(o)]:o.range}))):delete e.devDependencies,this.peerDependencies.size>0?e.peerDependencies=Object.assign({},...Ou(this.peerDependencies.values()).map(o=>({[St(o)]:o.range}))):delete e.peerDependencies,e.dependenciesMeta={};for(let[o,a]of gn(this.dependenciesMeta.entries(),([l,c])=>l))for(let[l,c]of gn(a.entries(),([u,g])=>u!==null?`0${u}`:"1")){let u=l!==null?In(Yt(En(o),l)):o,g=P({},c);r&&l===null&&delete g.optional,Object.keys(g).length!==0&&(e.dependenciesMeta[u]=g)}if(Object.keys(e.dependenciesMeta).length===0&&delete e.dependenciesMeta,this.peerDependenciesMeta.size>0?e.peerDependenciesMeta=Object.assign({},...gn(this.peerDependenciesMeta.entries(),([o,a])=>o).map(([o,a])=>({[o]:a}))):delete e.peerDependenciesMeta,this.resolutions.length>0?e.resolutions=Object.assign({},...this.resolutions.map(({pattern:o,reference:a})=>({[fw(o)]:a}))):delete e.resolutions,this.files!==null?e.files=Array.from(this.files):delete e.files,this.preferUnplugged!==null?e.preferUnplugged=this.preferUnplugged:delete e.preferUnplugged,this.scripts!==null&&this.scripts.size>0){(s=e.scripts)!=null||(e.scripts={});for(let o of Object.keys(e.scripts))this.scripts.has(o)||delete e.scripts[o];for(let[o,a]of this.scripts.entries())e.scripts[o]=a}else delete e.scripts;return e}},Ze=vA;Ze.fileName="package.json",Ze.allDependencies=["dependencies","devDependencies","peerDependencies"],Ze.hardDependencies=["dependencies","devDependencies"];function W6(t){let e=t.match(/^[ \t]+/m);return e?e[0]:" "}function z6(t){return t.charCodeAt(0)===65279?t.slice(1):t}function en(t){return t.replace(/\\/g,"/")}function Tw(t,{yamlCompatibilityMode:e}){return e?Kv(t):typeof t=="undefined"||typeof t=="boolean"?t:null}function _6(t,e){let r=e.search(/[^!]/);if(r===-1)return"invalid";let i=r%2==0?"":"!",n=e.slice(r);return`${i}${t}=${n}`}function V6(t,e){return e.length===1?_6(t,e[0]):`(${e.map(r=>_6(t,r)).join(" | ")})`}var e9=ie($6()),Ow=ie(ml());var t9=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],r9=80,NFe=new Set([z.FETCH_NOT_CACHED,z.UNUSED_CACHE_ENTRY]),LFe=5,SA=Ow.default.GITHUB_ACTIONS?{start:t=>`::group::${t} -`,end:t=>`::endgroup:: -`}:Ow.default.TRAVIS?{start:t=>`travis_fold:start:${t} -`,end:t=>`travis_fold:end:${t} -`}:Ow.default.GITLAB?{start:t=>`section_start:${Math.floor(Date.now()/1e3)}:${t.toLowerCase().replace(/\W+/g,"_")}[collapsed=true]\r${t} -`,end:t=>`section_end:${Math.floor(Date.now()/1e3)}:${t.toLowerCase().replace(/\W+/g,"_")}\r`}:null,i9=new Date,TFe=["iTerm.app","Apple_Terminal"].includes(process.env.TERM_PROGRAM)||!!process.env.WT_SESSION,MFe=t=>t,Kw=MFe({patrick:{date:[17,3],chars:["\u{1F340}","\u{1F331}"],size:40},simba:{date:[19,7],chars:["\u{1F981}","\u{1F334}"],size:40},jack:{date:[31,10],chars:["\u{1F383}","\u{1F987}"],size:40},hogsfather:{date:[31,12],chars:["\u{1F389}","\u{1F384}"],size:40},default:{chars:["=","-"],size:80}}),OFe=TFe&&Object.keys(Kw).find(t=>{let e=Kw[t];return!(e.date&&(e.date[0]!==i9.getDate()||e.date[1]!==i9.getMonth()+1))})||"default";function n9(t,{configuration:e,json:r}){if(!e.get("enableMessageNames"))return"";let n=KE(t===null?0:t);return!r&&t===null?Ve(e,n,"grey"):n}function eD(t,{configuration:e,json:r}){let i=n9(t,{configuration:e,json:r});if(!i||t===null||t===z.UNNAMED)return i;let n=z[t],s=`https://yarnpkg.com/advanced/error-codes#${i}---${n}`.toLowerCase();return Ku(e,i,s)}var Fe=class extends Xi{constructor({configuration:e,stdout:r,json:i=!1,includeFooter:n=!0,includeLogs:s=!i,includeInfos:o=s,includeWarnings:a=s,forgettableBufferSize:l=LFe,forgettableNames:c=new Set}){super();this.uncommitted=new Set;this.cacheHitCount=0;this.cacheMissCount=0;this.lastCacheMiss=null;this.warningCount=0;this.errorCount=0;this.startTime=Date.now();this.indent=0;this.progress=new Map;this.progressTime=0;this.progressFrame=0;this.progressTimeout=null;this.forgettableLines=[];Cp(this,{configuration:e}),this.configuration=e,this.forgettableBufferSize=l,this.forgettableNames=new Set([...c,...NFe]),this.includeFooter=n,this.includeInfos=o,this.includeWarnings=a,this.json=i,this.stdout=r;let u=this.configuration.get("progressBarStyle")||OFe;if(!Object.prototype.hasOwnProperty.call(Kw,u))throw new Error("Assertion failed: Invalid progress bar style");this.progressStyle=Kw[u];let g="\u27A4 YN0000: \u250C ".length,f=Math.max(0,Math.min(process.stdout.columns-g,80));this.progressMaxScaledSize=Math.floor(this.progressStyle.size*f/80)}static async start(e,r){let i=new this(e),n=process.emitWarning;process.emitWarning=(s,o)=>{if(typeof s!="string"){let l=s;s=l.message,o=o!=null?o:l.name}let a=typeof o!="undefined"?`${o}: ${s}`:s;i.reportWarning(z.UNNAMED,a)};try{await r(i)}catch(s){i.reportExceptionOnce(s)}finally{await i.finalize(),process.emitWarning=n}return i}hasErrors(){return this.errorCount>0}exitCode(){return this.hasErrors()?1:0}reportCacheHit(e){this.cacheHitCount+=1}reportCacheMiss(e,r){this.lastCacheMiss=e,this.cacheMissCount+=1,typeof r!="undefined"&&!this.configuration.get("preferAggregateCacheInfo")&&this.reportInfo(z.FETCH_NOT_CACHED,r)}startTimerSync(e,r,i){let n=typeof r=="function"?{}:r,s=typeof r=="function"?r:i,o={committed:!1,action:()=>{this.reportInfo(null,`\u250C ${e}`),this.indent+=1,SA!==null&&!this.json&&this.includeInfos&&this.stdout.write(SA.start(e))}};n.skipIfEmpty?this.uncommitted.add(o):(o.action(),o.committed=!0);let a=Date.now();try{return s()}catch(l){throw this.reportExceptionOnce(l),l}finally{let l=Date.now();this.uncommitted.delete(o),o.committed&&(this.indent-=1,SA!==null&&!this.json&&this.includeInfos&&this.stdout.write(SA.end(e)),this.configuration.get("enableTimers")&&l-a>200?this.reportInfo(null,`\u2514 Completed in ${Ve(this.configuration,l-a,Le.DURATION)}`):this.reportInfo(null,"\u2514 Completed"))}}async startTimerPromise(e,r,i){let n=typeof r=="function"?{}:r,s=typeof r=="function"?r:i,o={committed:!1,action:()=>{this.reportInfo(null,`\u250C ${e}`),this.indent+=1,SA!==null&&!this.json&&this.includeInfos&&this.stdout.write(SA.start(e))}};n.skipIfEmpty?this.uncommitted.add(o):(o.action(),o.committed=!0);let a=Date.now();try{return await s()}catch(l){throw this.reportExceptionOnce(l),l}finally{let l=Date.now();this.uncommitted.delete(o),o.committed&&(this.indent-=1,SA!==null&&!this.json&&this.includeInfos&&this.stdout.write(SA.end(e)),this.configuration.get("enableTimers")&&l-a>200?this.reportInfo(null,`\u2514 Completed in ${Ve(this.configuration,l-a,Le.DURATION)}`):this.reportInfo(null,"\u2514 Completed"))}}async startCacheReport(e){let r=this.configuration.get("preferAggregateCacheInfo")?{cacheHitCount:this.cacheHitCount,cacheMissCount:this.cacheMissCount}:null;try{return await e()}catch(i){throw this.reportExceptionOnce(i),i}finally{r!==null&&this.reportCacheChanges(r)}}reportSeparator(){this.indent===0?this.writeLineWithForgettableReset(""):this.reportInfo(null,"")}reportInfo(e,r){if(!this.includeInfos)return;this.commit();let i=this.formatNameWithHyperlink(e),n=i?`${i}: `:"",s=`${Ve(this.configuration,"\u27A4","blueBright")} ${n}${this.formatIndent()}${r}`;if(this.json)this.reportJson({type:"info",name:e,displayName:this.formatName(e),indent:this.formatIndent(),data:r});else if(this.forgettableNames.has(e))if(this.forgettableLines.push(s),this.forgettableLines.length>this.forgettableBufferSize){for(;this.forgettableLines.length>this.forgettableBufferSize;)this.forgettableLines.shift();this.writeLines(this.forgettableLines,{truncate:!0})}else this.writeLine(s,{truncate:!0});else this.writeLineWithForgettableReset(s)}reportWarning(e,r){if(this.warningCount+=1,!this.includeWarnings)return;this.commit();let i=this.formatNameWithHyperlink(e),n=i?`${i}: `:"";this.json?this.reportJson({type:"warning",name:e,displayName:this.formatName(e),indent:this.formatIndent(),data:r}):this.writeLineWithForgettableReset(`${Ve(this.configuration,"\u27A4","yellowBright")} ${n}${this.formatIndent()}${r}`)}reportError(e,r){this.errorCount+=1,this.commit();let i=this.formatNameWithHyperlink(e),n=i?`${i}: `:"";this.json?this.reportJson({type:"error",name:e,displayName:this.formatName(e),indent:this.formatIndent(),data:r}):this.writeLineWithForgettableReset(`${Ve(this.configuration,"\u27A4","redBright")} ${n}${this.formatIndent()}${r}`,{truncate:!1})}reportProgress(e){let r=!1,i=Promise.resolve().then(async()=>{let s={progress:0,title:void 0};this.progress.set(e,{definition:s,lastScaledSize:-1}),this.refreshProgress(-1);for await(let{progress:o,title:a}of e)r||s.progress===o&&s.title===a||(s.progress=o,s.title=a,this.refreshProgress());n()}),n=()=>{r||(r=!0,this.progress.delete(e),this.refreshProgress(1))};return _(P({},i),{stop:n})}reportJson(e){this.json&&this.writeLineWithForgettableReset(`${JSON.stringify(e)}`)}async finalize(){if(!this.includeFooter)return;let e="";this.errorCount>0?e="Failed with errors":this.warningCount>0?e="Done with warnings":e="Done";let r=Ve(this.configuration,Date.now()-this.startTime,Le.DURATION),i=this.configuration.get("enableTimers")?`${e} in ${r}`:e;this.errorCount>0?this.reportError(z.UNNAMED,i):this.warningCount>0?this.reportWarning(z.UNNAMED,i):this.reportInfo(z.UNNAMED,i)}writeLine(e,{truncate:r}={}){this.clearProgress({clear:!0}),this.stdout.write(`${this.truncate(e,{truncate:r})} -`),this.writeProgress()}writeLineWithForgettableReset(e,{truncate:r}={}){this.forgettableLines=[],this.writeLine(e,{truncate:r})}writeLines(e,{truncate:r}={}){this.clearProgress({delta:e.length});for(let i of e)this.stdout.write(`${this.truncate(i,{truncate:r})} -`);this.writeProgress()}reportCacheChanges({cacheHitCount:e,cacheMissCount:r}){let i=this.cacheHitCount-e,n=this.cacheMissCount-r;if(i===0&&n===0)return;let s="";this.cacheHitCount>1?s+=`${this.cacheHitCount} packages were already cached`:this.cacheHitCount===1?s+=" - one package was already cached":s+="No packages were cached",this.cacheHitCount>0?this.cacheMissCount>1?s+=`, ${this.cacheMissCount} had to be fetched`:this.cacheMissCount===1&&(s+=`, one had to be fetched (${lt(this.configuration,this.lastCacheMiss)})`):this.cacheMissCount>1?s+=` - ${this.cacheMissCount} packages had to be fetched`:this.cacheMissCount===1&&(s+=` - one package had to be fetched (${lt(this.configuration,this.lastCacheMiss)})`),this.reportInfo(z.FETCH_NOT_CACHED,s)}commit(){let e=this.uncommitted;this.uncommitted=new Set;for(let r of e)r.committed=!0,r.action()}clearProgress({delta:e=0,clear:r=!1}){!this.configuration.get("enableProgressBars")||this.json||this.progress.size+e>0&&(this.stdout.write(`[${this.progress.size+e}A`),(e>0||r)&&this.stdout.write(""))}writeProgress(){if(!this.configuration.get("enableProgressBars")||this.json||(this.progressTimeout!==null&&clearTimeout(this.progressTimeout),this.progressTimeout=null,this.progress.size===0))return;let e=Date.now();e-this.progressTime>r9&&(this.progressFrame=(this.progressFrame+1)%t9.length,this.progressTime=e);let r=t9[this.progressFrame];for(let i of this.progress.values()){let n=this.progressStyle.chars[0].repeat(i.lastScaledSize),s=this.progressStyle.chars[1].repeat(this.progressMaxScaledSize-i.lastScaledSize),o=this.formatName(null),a=o?`${o}: `:"";this.stdout.write(`${Ve(this.configuration,"\u27A4","blueBright")} ${a}${r} ${n}${s} -`)}this.progressTimeout=setTimeout(()=>{this.refreshProgress()},r9)}refreshProgress(e=0){let r=!1;if(this.progress.size===0)r=!0;else for(let i of this.progress.values()){let n=Math.trunc(this.progressMaxScaledSize*i.definition.progress),s=i.lastScaledSize;if(i.lastScaledSize=n,n!==s){r=!0;break}}r&&(this.clearProgress({delta:e}),this.writeProgress())}truncate(e,{truncate:r}={}){return this.configuration.get("enableProgressBars")||(r=!1),typeof r=="undefined"&&(r=this.configuration.get("preferTruncatedLines")),r&&(e=(0,e9.default)(e,0,process.stdout.columns-1)),e}formatName(e){return n9(e,{configuration:this.configuration,json:this.json})}formatNameWithHyperlink(e){return eD(e,{configuration:this.configuration,json:this.json})}formatIndent(){return"\u2502 ".repeat(this.indent)}};var Zr="3.1.1";var tn;(function(n){n.Yarn1="Yarn Classic",n.Yarn2="Yarn",n.Npm="npm",n.Pnpm="pnpm"})(tn||(tn={}));async function ba(t,e,r,i=[]){if(process.platform==="win32"){let n=`@goto #_undefined_# 2>NUL || @title %COMSPEC% & @setlocal & @"${r}" ${i.map(s=>`"${s.replace('"','""')}"`).join(" ")} %*`;await T.writeFilePromise(v.format({dir:t,name:e,ext:".cmd"}),n)}await T.writeFilePromise(v.join(t,e),`#!/bin/sh -exec "${r}" ${i.map(n=>`'${n.replace(/'/g,`'"'"'`)}'`).join(" ")} "$@" -`,{mode:493})}async function a9(t){let e=await Ze.tryFind(t);if(e==null?void 0:e.packageManager){let i=Qy(e.packageManager);if(i==null?void 0:i.name){let n=`found ${JSON.stringify({packageManager:e.packageManager})} in manifest`,[s]=i.reference.split(".");switch(i.name){case"yarn":return{packageManager:Number(s)===1?tn.Yarn1:tn.Yarn2,reason:n};case"npm":return{packageManager:tn.Npm,reason:n};case"pnpm":return{packageManager:tn.Pnpm,reason:n}}}}let r;try{r=await T.readFilePromise(v.join(t,wt.lockfile),"utf8")}catch{}return r!==void 0?r.match(/^__metadata:$/m)?{packageManager:tn.Yarn2,reason:'"__metadata" key found in yarn.lock'}:{packageManager:tn.Yarn1,reason:'"__metadata" key not found in yarn.lock, must be a Yarn classic lockfile'}:T.existsSync(v.join(t,"package-lock.json"))?{packageManager:tn.Npm,reason:`found npm's "package-lock.json" lockfile`}:T.existsSync(v.join(t,"pnpm-lock.yaml"))?{packageManager:tn.Pnpm,reason:`found pnpm's "pnpm-lock.yaml" lockfile`}:null}async function Vp({project:t,locator:e,binFolder:r,lifecycleScript:i}){var l,c;let n={};for(let[u,g]of Object.entries(process.env))typeof g!="undefined"&&(n[u.toLowerCase()!=="path"?u:"PATH"]=g);let s=M.fromPortablePath(r);n.BERRY_BIN_FOLDER=M.fromPortablePath(s);let o=process.env.COREPACK_ROOT?M.join(process.env.COREPACK_ROOT,"dist/yarn.js"):process.argv[1];if(await Promise.all([ba(r,"node",process.execPath),...Zr!==null?[ba(r,"run",process.execPath,[o,"run"]),ba(r,"yarn",process.execPath,[o]),ba(r,"yarnpkg",process.execPath,[o]),ba(r,"node-gyp",process.execPath,[o,"run","--top-level","node-gyp"])]:[]]),t&&(n.INIT_CWD=M.fromPortablePath(t.configuration.startingCwd),n.PROJECT_CWD=M.fromPortablePath(t.cwd)),n.PATH=n.PATH?`${s}${M.delimiter}${n.PATH}`:`${s}`,n.npm_execpath=`${s}${M.sep}yarn`,n.npm_node_execpath=`${s}${M.sep}node`,e){if(!t)throw new Error("Assertion failed: Missing project");let u=t.tryWorkspaceByLocator(e),g=u?(l=u.manifest.version)!=null?l:"":(c=t.storedPackages.get(e.locatorHash).version)!=null?c:"";n.npm_package_name=St(e),n.npm_package_version=g}let a=Zr!==null?`yarn/${Zr}`:`yarn/${mu("@yarnpkg/core").version}-core`;return n.npm_config_user_agent=`${a} npm/? node/${process.versions.node} ${process.platform} ${process.arch}`,i&&(n.npm_lifecycle_event=i),t&&await t.configuration.triggerHook(u=>u.setupScriptEnvironment,t,n,async(u,g,f)=>await ba(r,kr(u),g,f)),n}var KFe=2,UFe=(0,o9.default)(KFe);async function HFe(t,e,{configuration:r,report:i,workspace:n=null,locator:s=null}){await UFe(async()=>{await T.mktempPromise(async o=>{let a=v.join(o,"pack.log"),l=null,{stdout:c,stderr:u}=r.getSubprocessStreams(a,{prefix:M.fromPortablePath(t),report:i}),g=s&&Io(s)?lp(s):s,f=g?is(g):"an external project";c.write(`Packing ${f} from sources -`);let h=await a9(t),p;h!==null?(c.write(`Using ${h.packageManager} for bootstrap. Reason: ${h.reason} - -`),p=h.packageManager):(c.write(`No package manager configuration detected; defaulting to Yarn - -`),p=tn.Yarn2),await T.mktempPromise(async d=>{let m=await Vp({binFolder:d}),B=new Map([[tn.Yarn1,async()=>{let R=n!==null?["workspace",n]:[],H=await to("yarn",["set","version","classic","--only-if-needed"],{cwd:t,env:m,stdin:l,stdout:c,stderr:u,end:Pn.ErrorCode});if(H.code!==0)return H.code;await T.appendFilePromise(v.join(t,".npmignore"),`/.yarn -`),c.write(` -`);let L=await to("yarn",["install"],{cwd:t,env:m,stdin:l,stdout:c,stderr:u,end:Pn.ErrorCode});if(L.code!==0)return L.code;c.write(` -`);let K=await to("yarn",[...R,"pack","--filename",M.fromPortablePath(e)],{cwd:t,env:m,stdin:l,stdout:c,stderr:u});return K.code!==0?K.code:0}],[tn.Yarn2,async()=>{let R=n!==null?["workspace",n]:[];m.YARN_ENABLE_INLINE_BUILDS="1";let H=v.join(t,wt.lockfile);await T.existsPromise(H)||await T.writeFilePromise(H,"");let L=await to("yarn",[...R,"pack","--install-if-needed","--filename",M.fromPortablePath(e)],{cwd:t,env:m,stdin:l,stdout:c,stderr:u});return L.code!==0?L.code:0}],[tn.Npm,async()=>{if(n!==null){let A=new cc.PassThrough,V=Cu(A);A.pipe(c,{end:!1});let W=await to("npm",["--version"],{cwd:t,env:m,stdin:l,stdout:A,stderr:u,end:Pn.Never});if(A.end(),W.code!==0)return c.end(),u.end(),W.code;let X=(await V).toString().trim();if(!lc(X,">=7.x")){let F=Eo(null,"npm"),D=Yt(F,X),he=Yt(F,">=7.x");throw new Error(`Workspaces aren't supported by ${Xt(r,D)}; please upgrade to ${Xt(r,he)} (npm has been detected as the primary package manager for ${Ve(r,t,Le.PATH)})`)}}let R=n!==null?["--workspace",n]:[];delete m.npm_config_user_agent;let H=await to("npm",["install"],{cwd:t,env:m,stdin:l,stdout:c,stderr:u,end:Pn.ErrorCode});if(H.code!==0)return H.code;let L=new cc.PassThrough,K=Cu(L);L.pipe(c);let J=await to("npm",["pack","--silent",...R],{cwd:t,env:m,stdin:l,stdout:L,stderr:u});if(J.code!==0)return J.code;let ne=(await K).toString().trim().replace(/^.*\n/s,""),q=v.resolve(t,M.toPortablePath(ne));return await T.renamePromise(q,e),0}]]).get(p);if(typeof B=="undefined")throw new Error("Assertion failed: Unsupported workflow");let b=await B();if(!(b===0||typeof b=="undefined"))throw T.detachTemp(o),new nt(z.PACKAGE_PREPARATION_FAILED,`Packing the package failed (exit code ${b}, logs can be found here: ${Ve(r,a,Le.PATH)})`)})})})}async function GFe(t,e,{project:r}){let i=r.tryWorkspaceByLocator(t);if(i!==null)return tD(i,e);let n=r.storedPackages.get(t.locatorHash);if(!n)throw new Error(`Package for ${lt(r.configuration,t)} not found in the project`);return await Jn.openPromise(async s=>{let o=r.configuration,a=r.configuration.getLinkers(),l={project:r,report:new Fe({stdout:new cc.PassThrough,configuration:o})},c=a.find(h=>h.supportsPackage(n,l));if(!c)throw new Error(`The package ${lt(r.configuration,n)} isn't supported by any of the available linkers`);let u=await c.findPackageLocation(n,l),g=new Ft(u,{baseFs:s});return(await Ze.find(Se.dot,{baseFs:g})).scripts.has(e)},{libzip:await $i()})}async function Uw(t,e,r,{cwd:i,project:n,stdin:s,stdout:o,stderr:a}){return await T.mktempPromise(async l=>{let{manifest:c,env:u,cwd:g}=await A9(t,{project:n,binFolder:l,cwd:i,lifecycleScript:e}),f=c.scripts.get(e);if(typeof f=="undefined")return 1;let h=async()=>await Fw(f,r,{cwd:g,env:u,stdin:s,stdout:o,stderr:a});return await(await n.configuration.reduceHook(d=>d.wrapScriptExecution,h,n,t,e,{script:f,args:r,cwd:g,env:u,stdin:s,stdout:o,stderr:a}))()})}async function rD(t,e,r,{cwd:i,project:n,stdin:s,stdout:o,stderr:a}){return await T.mktempPromise(async l=>{let{env:c,cwd:u}=await A9(t,{project:n,binFolder:l,cwd:i});return await Fw(e,r,{cwd:u,env:c,stdin:s,stdout:o,stderr:a})})}async function jFe(t,{binFolder:e,cwd:r,lifecycleScript:i}){let n=await Vp({project:t.project,locator:t.anchoredLocator,binFolder:e,lifecycleScript:i});return await Promise.all(Array.from(await l9(t),([s,[,o]])=>ba(e,kr(s),process.execPath,[o]))),typeof r=="undefined"&&(r=v.dirname(await T.realpathPromise(v.join(t.cwd,"package.json")))),{manifest:t.manifest,binFolder:e,env:n,cwd:r}}async function A9(t,{project:e,binFolder:r,cwd:i,lifecycleScript:n}){let s=e.tryWorkspaceByLocator(t);if(s!==null)return jFe(s,{binFolder:r,cwd:i,lifecycleScript:n});let o=e.storedPackages.get(t.locatorHash);if(!o)throw new Error(`Package for ${lt(e.configuration,t)} not found in the project`);return await Jn.openPromise(async a=>{let l=e.configuration,c=e.configuration.getLinkers(),u={project:e,report:new Fe({stdout:new cc.PassThrough,configuration:l})},g=c.find(m=>m.supportsPackage(o,u));if(!g)throw new Error(`The package ${lt(e.configuration,o)} isn't supported by any of the available linkers`);let f=await Vp({project:e,locator:t,binFolder:r,lifecycleScript:n});await Promise.all(Array.from(await Hw(t,{project:e}),([m,[,I]])=>ba(r,kr(m),process.execPath,[I])));let h=await g.findPackageLocation(o,u),p=new Ft(h,{baseFs:a}),d=await Ze.find(Se.dot,{baseFs:p});return typeof i=="undefined"&&(i=h),{manifest:d,binFolder:r,env:f,cwd:i}},{libzip:await $i()})}async function c9(t,e,r,{cwd:i,stdin:n,stdout:s,stderr:o}){return await Uw(t.anchoredLocator,e,r,{cwd:i,project:t.project,stdin:n,stdout:s,stderr:o})}function tD(t,e){return t.manifest.scripts.has(e)}async function u9(t,e,{cwd:r,report:i}){let{configuration:n}=t.project,s=null;await T.mktempPromise(async o=>{let a=v.join(o,`${e}.log`),l=`# This file contains the result of Yarn calling the "${e}" lifecycle script inside a workspace ("${M.fromPortablePath(t.cwd)}") -`,{stdout:c,stderr:u}=n.getSubprocessStreams(a,{report:i,prefix:lt(n,t.anchoredLocator),header:l});i.reportInfo(z.LIFECYCLE_SCRIPT,`Calling the "${e}" lifecycle script`);let g=await c9(t,e,[],{cwd:r,stdin:s,stdout:c,stderr:u});if(c.end(),u.end(),g!==0)throw T.detachTemp(o),new nt(z.LIFECYCLE_SCRIPT,`${(0,s9.default)(e)} script failed (exit code ${Ve(n,g,Le.NUMBER)}, logs can be found here: ${Ve(n,a,Le.PATH)}); run ${Ve(n,`yarn ${e}`,Le.CODE)} to investigate`)})}async function YFe(t,e,r){tD(t,e)&&await u9(t,e,r)}async function Hw(t,{project:e}){let r=e.configuration,i=new Map,n=e.storedPackages.get(t.locatorHash);if(!n)throw new Error(`Package for ${lt(r,t)} not found in the project`);let s=new cc.Writable,o=r.getLinkers(),a={project:e,report:new Fe({configuration:r,stdout:s})},l=new Set([t.locatorHash]);for(let u of n.dependencies.values()){let g=e.storedResolutions.get(u.descriptorHash);if(!g)throw new Error(`Assertion failed: The resolution (${Xt(r,u)}) should have been registered`);l.add(g)}let c=await Promise.all(Array.from(l,async u=>{let g=e.storedPackages.get(u);if(!g)throw new Error(`Assertion failed: The package (${u}) should have been registered`);if(g.bin.size===0)return kl.skip;let f=o.find(p=>p.supportsPackage(g,a));if(!f)return kl.skip;let h=null;try{h=await f.findPackageLocation(g,a)}catch(p){if(p.code==="LOCATOR_NOT_INSTALLED")return kl.skip;throw p}return{dependency:g,packageLocation:h}}));for(let u of c){if(u===kl.skip)continue;let{dependency:g,packageLocation:f}=u;for(let[h,p]of g.bin)i.set(h,[g,M.fromPortablePath(v.resolve(f,p))])}return i}async function l9(t){return await Hw(t.anchoredLocator,{project:t.project})}async function g9(t,e,r,{cwd:i,project:n,stdin:s,stdout:o,stderr:a,nodeArgs:l=[],packageAccessibleBinaries:c}){c!=null||(c=await Hw(t,{project:n}));let u=c.get(e);if(!u)throw new Error(`Binary not found (${e}) for ${lt(n.configuration,t)}`);return await T.mktempPromise(async g=>{let[,f]=u,h=await Vp({project:n,locator:t,binFolder:g});await Promise.all(Array.from(c,([d,[,m]])=>ba(h.BERRY_BIN_FOLDER,kr(d),process.execPath,[m])));let p;try{p=await to(process.execPath,[...l,f,...r],{cwd:i,env:h,stdin:s,stdout:o,stderr:a})}finally{await T.removePromise(h.BERRY_BIN_FOLDER)}return p.code})}async function qFe(t,e,r,{cwd:i,stdin:n,stdout:s,stderr:o,packageAccessibleBinaries:a}){return await g9(t.anchoredLocator,e,r,{project:t.project,cwd:i,stdin:n,stdout:s,stderr:o,packageAccessibleBinaries:a})}var Ai={};it(Ai,{convertToZip:()=>lTe,extractArchiveTo:()=>uTe,makeArchiveFromDirectory:()=>ATe});var d_=ie(require("stream")),C_=ie(Z7());var u_=ie(require("os")),g_=ie(c_()),f_=ie(require("worker_threads")),IR=class{constructor(e){this.source=e;this.pool=[];this.queue=new g_.default({concurrency:Math.max(1,(0,u_.cpus)().length)});let r=setTimeout(()=>{if(!(this.queue.size!==0||this.queue.pending!==0)){for(let i of this.pool)i.terminate();this.pool=[]}},1e3).unref();this.queue.on("idle",()=>{r.refresh()})}run(e){return this.queue.add(()=>{var i;let r=(i=this.pool.pop())!=null?i:new f_.Worker(this.source,{eval:!0,execArgv:[...process.execArgv,"--unhandled-rejections=strict"]});return r.ref(),new Promise((n,s)=>{let o=a=>{a!==0&&s(new Error(`Worker exited with code ${a}`))};r.once("message",a=>{this.pool.push(r),r.unref(),r.off("error",s),r.off("exit",o),n(a)}),r.once("error",s),r.once("exit",o),r.postMessage(e)})})}};var m_=ie(p_());async function ATe(t,{baseFs:e=new Wt,prefixPath:r=Se.root,compressionLevel:i,inMemory:n=!1}={}){let s=await $i(),o;if(n)o=new Jr(null,{libzip:s,level:i});else{let l=await T.mktempPromise(),c=v.join(l,"archive.zip");o=new Jr(c,{create:!0,libzip:s,level:i})}let a=v.resolve(Se.root,r);return await o.copyPromise(a,t,{baseFs:e,stableTime:!0,stableSort:!0}),o}var E_;async function lTe(t,e){let r=await T.mktempPromise(),i=v.join(r,"archive.zip");return E_||(E_=new IR((0,m_.getContent)())),await E_.run({tmpFile:i,tgz:t,opts:e}),new Jr(i,{libzip:await $i(),level:e.compressionLevel})}async function*cTe(t){let e=new C_.default.Parse,r=new d_.PassThrough({objectMode:!0,autoDestroy:!0,emitClose:!0});e.on("entry",i=>{r.write(i)}),e.on("error",i=>{r.destroy(i)}),e.on("close",()=>{r.destroyed||r.end()}),e.end(t);for await(let i of r){let n=i;yield n,n.resume()}}async function uTe(t,e,{stripComponents:r=0,prefixPath:i=Se.dot}={}){var s,o;function n(a){if(a.path[0]==="/")return!0;let l=a.path.split(/\//g);return!!(l.some(c=>c==="..")||l.length<=r)}for await(let a of cTe(t)){if(n(a))continue;let l=v.normalize(M.toPortablePath(a.path)).replace(/\/$/,"").split(/\//g);if(l.length<=r)continue;let c=l.slice(r).join("/"),u=v.join(i,c),g=420;switch((a.type==="Directory"||(((s=a.mode)!=null?s:0)&73)!=0)&&(g|=73),a.type){case"Directory":e.mkdirpSync(v.dirname(u),{chmod:493,utimes:[mr.SAFE_TIME,mr.SAFE_TIME]}),e.mkdirSync(u,{mode:g}),e.utimesSync(u,mr.SAFE_TIME,mr.SAFE_TIME);break;case"OldFile":case"File":e.mkdirpSync(v.dirname(u),{chmod:493,utimes:[mr.SAFE_TIME,mr.SAFE_TIME]}),e.writeFileSync(u,await Cu(a),{mode:g}),e.utimesSync(u,mr.SAFE_TIME,mr.SAFE_TIME);break;case"SymbolicLink":e.mkdirpSync(v.dirname(u),{chmod:493,utimes:[mr.SAFE_TIME,mr.SAFE_TIME]}),e.symlinkSync(a.linkpath,u),(o=e.lutimesSync)==null||o.call(e,u,mr.SAFE_TIME,mr.SAFE_TIME);break}}return e}var Hs={};it(Hs,{emitList:()=>gTe,emitTree:()=>b_,treeNodeToJson:()=>Q_,treeNodeToTreeify:()=>B_});var w_=ie(y_());function B_(t,{configuration:e}){let r={},i=(n,s)=>{let o=Array.isArray(n)?n.entries():Object.entries(n);for(let[a,{label:l,value:c,children:u}]of o){let g=[];typeof l!="undefined"&&g.push(Py(e,l,Gl.BOLD)),typeof c!="undefined"&&g.push(Ve(e,c[0],c[1])),g.length===0&&g.push(Py(e,`${a}`,Gl.BOLD));let f=g.join(": "),h=s[f]={};typeof u!="undefined"&&i(u,h)}};if(typeof t.children=="undefined")throw new Error("The root node must only contain children");return i(t.children,r),r}function Q_(t){let e=r=>{var s;if(typeof r.children=="undefined"){if(typeof r.value=="undefined")throw new Error("Assertion failed: Expected a value to be set if the children are missing");return Uu(r.value[0],r.value[1])}let i=Array.isArray(r.children)?r.children.entries():Object.entries((s=r.children)!=null?s:{}),n=Array.isArray(r.children)?[]:{};for(let[o,a]of i)n[o]=e(a);return typeof r.value=="undefined"?n:{value:Uu(r.value[0],r.value[1]),children:n}};return e(t)}function gTe(t,{configuration:e,stdout:r,json:i}){let n=t.map(s=>({value:s}));b_({children:n},{configuration:e,stdout:r,json:i})}function b_(t,{configuration:e,stdout:r,json:i,separators:n=0}){var o;if(i){let a=Array.isArray(t.children)?t.children.values():Object.values((o=t.children)!=null?o:{});for(let l of a)r.write(`${JSON.stringify(Q_(l))} -`);return}let s=(0,w_.asTree)(B_(t,{configuration:e}),!1,!1);if(n>=1&&(s=s.replace(/^([├└]─)/gm,`\u2502 -$1`).replace(/^│\n/,"")),n>=2)for(let a=0;a<2;++a)s=s.replace(/^([│ ].{2}[├│ ].{2}[^\n]+\n)(([│ ]).{2}[├└].{2}[^\n]*\n[│ ].{2}[│ ].{2}[├└]─)/gm,`$1$3 \u2502 -$2`).replace(/^│\n/,"");if(n>=3)throw new Error("Only the first two levels are accepted by treeUtils.emitTree");r.write(s)}var v_=ie(require("crypto")),BR=ie(require("fs"));var fTe=8,Qt=class{constructor(e,{configuration:r,immutable:i=r.get("enableImmutableCache"),check:n=!1}){this.markedFiles=new Set;this.mutexes=new Map;this.cacheId=`-${(0,v_.randomBytes)(8).toString("hex")}.tmp`;this.configuration=r,this.cwd=e,this.immutable=i,this.check=n;let s=r.get("cacheKeyOverride");if(s!==null)this.cacheKey=`${s}`;else{let o=r.get("compressionLevel"),a=o!==pl?`c${o}`:"";this.cacheKey=[fTe,a].join("")}}static async find(e,{immutable:r,check:i}={}){let n=new Qt(e.get("cacheFolder"),{configuration:e,immutable:r,check:i});return await n.setup(),n}get mirrorCwd(){if(!this.configuration.get("enableMirror"))return null;let e=`${this.configuration.get("globalFolder")}/cache`;return e!==this.cwd?e:null}getVersionFilename(e){return`${Mu(e)}-${this.cacheKey}.zip`}getChecksumFilename(e,r){let n=hTe(r).slice(0,10);return`${Mu(e)}-${n}.zip`}getLocatorPath(e,r,i={}){var s;return this.mirrorCwd===null||((s=i.unstablePackages)==null?void 0:s.has(e.locatorHash))?v.resolve(this.cwd,this.getVersionFilename(e)):r===null||QR(r)!==this.cacheKey?null:v.resolve(this.cwd,this.getChecksumFilename(e,r))}getLocatorMirrorPath(e){let r=this.mirrorCwd;return r!==null?v.resolve(r,this.getVersionFilename(e)):null}async setup(){if(!this.configuration.get("enableGlobalCache"))if(this.immutable){if(!await T.existsPromise(this.cwd))throw new nt(z.IMMUTABLE_CACHE,"Cache path does not exist.")}else{await T.mkdirPromise(this.cwd,{recursive:!0});let e=v.resolve(this.cwd,".gitignore");await T.changeFilePromise(e,`/.gitignore -*.flock -*.tmp -`)}(this.mirrorCwd||!this.immutable)&&await T.mkdirPromise(this.mirrorCwd||this.cwd,{recursive:!0})}async fetchPackageFromCache(e,r,a){var l=a,{onHit:i,onMiss:n,loader:s}=l,o=qr(l,["onHit","onMiss","loader"]);var A;let c=this.getLocatorMirrorPath(e),u=new Wt,g=()=>{let V=new Jr(null,{libzip:H}),W=v.join(Se.root,Lx(e));return V.mkdirSync(W,{recursive:!0}),V.writeJsonSync(v.join(W,wt.manifest),{name:St(e),mocked:!0}),V},f=async(V,W=null)=>{let X=!o.skipIntegrityCheck||!r?`${this.cacheKey}/${await Ey(V)}`:r;if(W!==null){let F=!o.skipIntegrityCheck||!r?`${this.cacheKey}/${await Ey(W)}`:r;if(X!==F)throw new nt(z.CACHE_CHECKSUM_MISMATCH,"The remote archive doesn't match the local checksum - has the local cache been corrupted?")}if(r!==null&&X!==r){let F;switch(this.check?F="throw":QR(r)!==QR(X)?F="update":F=this.configuration.get("checksumBehavior"),F){case"ignore":return r;case"update":return X;default:case"throw":throw new nt(z.CACHE_CHECKSUM_MISMATCH,"The remote archive doesn't match the expected checksum")}}return X},h=async V=>{if(!s)throw new Error(`Cache check required but no loader configured for ${lt(this.configuration,e)}`);let W=await s(),X=W.getRealPath();return W.saveAndClose(),await T.chmodPromise(X,420),await f(V,X)},p=async()=>{if(c===null||!await T.existsPromise(c)){let V=await s(),W=V.getRealPath();return V.saveAndClose(),{source:"loader",path:W}}return{source:"mirror",path:c}},d=async()=>{if(!s)throw new Error(`Cache entry required but missing for ${lt(this.configuration,e)}`);if(this.immutable)throw new nt(z.IMMUTABLE_CACHE,`Cache entry required but missing for ${lt(this.configuration,e)}`);let{path:V,source:W}=await p(),X=await f(V),F=this.getLocatorPath(e,X,o);if(!F)throw new Error("Assertion failed: Expected the cache path to be available");let D=[];W!=="mirror"&&c!==null&&D.push(async()=>{let pe=`${c}${this.cacheId}`;await T.copyFilePromise(V,pe,BR.default.constants.COPYFILE_FICLONE),await T.chmodPromise(pe,420),await T.renamePromise(pe,c)}),(!o.mirrorWriteOnly||c===null)&&D.push(async()=>{let pe=`${F}${this.cacheId}`;await T.copyFilePromise(V,pe,BR.default.constants.COPYFILE_FICLONE),await T.chmodPromise(pe,420),await T.renamePromise(pe,F)});let he=o.mirrorWriteOnly&&c!=null?c:F;return await Promise.all(D.map(pe=>pe())),[!1,he,X]},m=async()=>{let W=(async()=>{var Ne;let X=this.getLocatorPath(e,r,o),F=X!==null?await u.existsPromise(X):!1,D=!!((Ne=o.mockedPackages)==null?void 0:Ne.has(e.locatorHash))&&(!this.check||!F),he=D||F,pe=he?i:n;if(pe&&pe(),he){let Pe=null,qe=X;return D||(Pe=this.check?await h(qe):await f(qe)),[D,qe,Pe]}else return d()})();this.mutexes.set(e.locatorHash,W);try{return await W}finally{this.mutexes.delete(e.locatorHash)}};for(let V;V=this.mutexes.get(e.locatorHash);)await V;let[I,B,b]=await m();this.markedFiles.add(B);let R,H=await $i(),L=I?()=>g():()=>new Jr(B,{baseFs:u,libzip:H,readOnly:!0}),K=new oh(()=>Mv(()=>R=L(),V=>`Failed to open the cache entry for ${lt(this.configuration,e)}: ${V}`),v),J=new Xo(B,{baseFs:K,pathUtils:v}),ne=()=>{R==null||R.discardAndClose()},q=((A=o.unstablePackages)==null?void 0:A.has(e.locatorHash))?null:b;return[J,ne,q]}};function QR(t){let e=t.indexOf("/");return e!==-1?t.slice(0,e):null}function hTe(t){let e=t.indexOf("/");return e!==-1?t.slice(e+1):t}var F_=ie(x_()),NB=ie(ml());var N_=ie(Wp()),kR=ie(require("stream"));var k_={hooks:{reduceDependency:(t,e,r,i,{resolver:n,resolveOptions:s})=>{for(let{pattern:o,reference:a}of e.topLevelWorkspace.manifest.resolutions){if(o.from&&o.from.fullName!==St(r)||o.from&&o.from.description&&o.from.description!==r.reference||o.descriptor.fullName!==St(t)||o.descriptor.description&&o.descriptor.description!==t.range)continue;return n.bindDescriptor(Yt(t,a),e.topLevelWorkspace.anchoredLocator,s)}return t},validateProject:async(t,e)=>{for(let r of t.workspaces){let i=hp(t.configuration,r);await t.configuration.triggerHook(n=>n.validateWorkspace,r,{reportWarning:(n,s)=>e.reportWarning(n,`${i}: ${s}`),reportError:(n,s)=>e.reportError(n,`${i}: ${s}`)})}},validateWorkspace:async(t,e)=>{let{manifest:r}=t;r.resolutions.length&&t.cwd!==t.project.cwd&&r.errors.push(new Error("Resolutions field will be ignored"));for(let i of r.errors)e.reportWarning(z.INVALID_MANIFEST,i.message)}}};var vR=class{constructor(e){this.fetchers=e}supports(e,r){return!!this.tryFetcher(e,r)}getLocalPath(e,r){return this.getFetcher(e,r).getLocalPath(e,r)}async fetch(e,r){return await this.getFetcher(e,r).fetch(e,r)}tryFetcher(e,r){let i=this.fetchers.find(n=>n.supports(e,r));return i||null}getFetcher(e,r){let i=this.fetchers.find(n=>n.supports(e,r));if(!i)throw new nt(z.FETCHER_NOT_FOUND,`${lt(r.project.configuration,e)} isn't supported by any available fetcher`);return i}};var pd=class{constructor(e){this.resolvers=e.filter(r=>r)}supportsDescriptor(e,r){return!!this.tryResolverByDescriptor(e,r)}supportsLocator(e,r){return!!this.tryResolverByLocator(e,r)}shouldPersistResolution(e,r){return this.getResolverByLocator(e,r).shouldPersistResolution(e,r)}bindDescriptor(e,r,i){return this.getResolverByDescriptor(e,i).bindDescriptor(e,r,i)}getResolutionDependencies(e,r){return this.getResolverByDescriptor(e,r).getResolutionDependencies(e,r)}async getCandidates(e,r,i){return await this.getResolverByDescriptor(e,i).getCandidates(e,r,i)}async getSatisfying(e,r,i){return this.getResolverByDescriptor(e,i).getSatisfying(e,r,i)}async resolve(e,r){return await this.getResolverByLocator(e,r).resolve(e,r)}tryResolverByDescriptor(e,r){let i=this.resolvers.find(n=>n.supportsDescriptor(e,r));return i||null}getResolverByDescriptor(e,r){let i=this.resolvers.find(n=>n.supportsDescriptor(e,r));if(!i)throw new Error(`${Xt(r.project.configuration,e)} isn't supported by any available resolver`);return i}tryResolverByLocator(e,r){let i=this.resolvers.find(n=>n.supportsLocator(e,r));return i||null}getResolverByLocator(e,r){let i=this.resolvers.find(n=>n.supportsLocator(e,r));if(!i)throw new Error(`${lt(r.project.configuration,e)} isn't supported by any available resolver`);return i}};var P_=ie(Or());var Rg=/^(?!v)[a-z0-9._-]+$/i,SR=class{supportsDescriptor(e,r){return!!(Us(e.range)||Rg.test(e.range))}supportsLocator(e,r){return!!(P_.default.valid(e.reference)||Rg.test(e.reference))}shouldPersistResolution(e,r){return r.resolver.shouldPersistResolution(this.forwardLocator(e,r),r)}bindDescriptor(e,r,i){return i.resolver.bindDescriptor(this.forwardDescriptor(e,i),r,i)}getResolutionDependencies(e,r){return r.resolver.getResolutionDependencies(this.forwardDescriptor(e,r),r)}async getCandidates(e,r,i){return await i.resolver.getCandidates(this.forwardDescriptor(e,i),r,i)}async getSatisfying(e,r,i){return await i.resolver.getSatisfying(this.forwardDescriptor(e,i),r,i)}async resolve(e,r){let i=await r.resolver.resolve(this.forwardLocator(e,r),r);return op(i,e)}forwardDescriptor(e,r){return Yt(e,`${r.project.configuration.get("defaultProtocol")}${e.range}`)}forwardLocator(e,r){return Vi(e,`${r.project.configuration.get("defaultProtocol")}${e.reference}`)}};var dd=class{supports(e){return!!e.reference.startsWith("virtual:")}getLocalPath(e,r){let i=e.reference.indexOf("#");if(i===-1)throw new Error("Invalid virtual package reference");let n=e.reference.slice(i+1),s=Vi(e,n);return r.fetcher.getLocalPath(s,r)}async fetch(e,r){let i=e.reference.indexOf("#");if(i===-1)throw new Error("Invalid virtual package reference");let n=e.reference.slice(i+1),s=Vi(e,n),o=await r.fetcher.fetch(s,r);return await this.ensureVirtualLink(e,o,r)}getLocatorFilename(e){return Mu(e)}async ensureVirtualLink(e,r,i){let n=r.packageFs.getRealPath(),s=i.project.configuration.get("virtualFolder"),o=this.getLocatorFilename(e),a=Pr.makeVirtualPath(s,o,n),l=new Xo(a,{baseFs:r.packageFs,pathUtils:v});return _(P({},r),{packageFs:l})}};var Fg=class{static isVirtualDescriptor(e){return!!e.range.startsWith(Fg.protocol)}static isVirtualLocator(e){return!!e.reference.startsWith(Fg.protocol)}supportsDescriptor(e,r){return Fg.isVirtualDescriptor(e)}supportsLocator(e,r){return Fg.isVirtualLocator(e)}shouldPersistResolution(e,r){return!1}bindDescriptor(e,r,i){throw new Error('Assertion failed: calling "bindDescriptor" on a virtual descriptor is unsupported')}getResolutionDependencies(e,r){throw new Error('Assertion failed: calling "getResolutionDependencies" on a virtual descriptor is unsupported')}async getCandidates(e,r,i){throw new Error('Assertion failed: calling "getCandidates" on a virtual descriptor is unsupported')}async getSatisfying(e,r,i){throw new Error('Assertion failed: calling "getSatisfying" on a virtual descriptor is unsupported')}async resolve(e,r){throw new Error('Assertion failed: calling "resolve" on a virtual locator is unsupported')}},FB=Fg;FB.protocol="virtual:";var xR=class{supports(e){return!!e.reference.startsWith(Yr.protocol)}getLocalPath(e,r){return this.getWorkspace(e,r).cwd}async fetch(e,r){let i=this.getWorkspace(e,r).cwd;return{packageFs:new Ft(i),prefixPath:Se.dot,localPath:i}}getWorkspace(e,r){return r.project.getWorkspaceByCwd(e.reference.slice(Yr.protocol.length))}};var D_=ie(require("module"));function R_(){return new Set(D_.default.builtinModules||Object.keys(process.binding("natives")))}var dTe=new Set(["binFolder","version","flags","profile","gpg","ignoreNode","wrapOutput","home","confDir"]),LB="yarn_",PR=".yarnrc.yml",DR="yarn.lock",CTe="********",ge;(function(u){u.ANY="ANY",u.BOOLEAN="BOOLEAN",u.ABSOLUTE_PATH="ABSOLUTE_PATH",u.LOCATOR="LOCATOR",u.LOCATOR_LOOSE="LOCATOR_LOOSE",u.NUMBER="NUMBER",u.STRING="STRING",u.SECRET="SECRET",u.SHAPE="SHAPE",u.MAP="MAP"})(ge||(ge={}));var ps=Le,RR={lastUpdateCheck:{description:"Last timestamp we checked whether new Yarn versions were available",type:ge.STRING,default:null},yarnPath:{description:"Path to the local executable that must be used over the global one",type:ge.ABSOLUTE_PATH,default:null},ignorePath:{description:"If true, the local executable will be ignored when using the global one",type:ge.BOOLEAN,default:!1},ignoreCwd:{description:"If true, the `--cwd` flag will be ignored",type:ge.BOOLEAN,default:!1},cacheKeyOverride:{description:"A global cache key override; used only for test purposes",type:ge.STRING,default:null},globalFolder:{description:"Folder where are stored the system-wide settings",type:ge.ABSOLUTE_PATH,default:Rb()},cacheFolder:{description:"Folder where the cache files must be written",type:ge.ABSOLUTE_PATH,default:"./.yarn/cache"},compressionLevel:{description:"Zip files compression level, from 0 to 9 or mixed (a variant of 9, which stores some files uncompressed, when compression doesn't yield good results)",type:ge.NUMBER,values:["mixed",0,1,2,3,4,5,6,7,8,9],default:pl},virtualFolder:{description:"Folder where the virtual packages (cf doc) will be mapped on the disk (must be named __virtual__)",type:ge.ABSOLUTE_PATH,default:"./.yarn/__virtual__"},lockfileFilename:{description:"Name of the files where the Yarn dependency tree entries must be stored",type:ge.STRING,default:DR},installStatePath:{description:"Path of the file where the install state will be persisted",type:ge.ABSOLUTE_PATH,default:"./.yarn/install-state.gz"},immutablePatterns:{description:"Array of glob patterns; files matching them won't be allowed to change during immutable installs",type:ge.STRING,default:[],isArray:!0},rcFilename:{description:"Name of the files where the configuration can be found",type:ge.STRING,default:TB()},enableGlobalCache:{description:"If true, the system-wide cache folder will be used regardless of `cache-folder`",type:ge.BOOLEAN,default:!1},enableColors:{description:"If true, the CLI is allowed to use colors in its output",type:ge.BOOLEAN,default:xy,defaultText:""},enableHyperlinks:{description:"If true, the CLI is allowed to use hyperlinks in its output",type:ge.BOOLEAN,default:Mx,defaultText:""},enableInlineBuilds:{description:"If true, the CLI will print the build output on the command line",type:ge.BOOLEAN,default:NB.isCI,defaultText:""},enableMessageNames:{description:"If true, the CLI will prefix most messages with codes suitable for search engines",type:ge.BOOLEAN,default:!0},enableProgressBars:{description:"If true, the CLI is allowed to show a progress bar for long-running events",type:ge.BOOLEAN,default:!NB.isCI&&process.stdout.isTTY&&process.stdout.columns>22,defaultText:""},enableTimers:{description:"If true, the CLI is allowed to print the time spent executing commands",type:ge.BOOLEAN,default:!0},preferAggregateCacheInfo:{description:"If true, the CLI will only print a one-line report of any cache changes",type:ge.BOOLEAN,default:NB.isCI},preferInteractive:{description:"If true, the CLI will automatically use the interactive mode when called from a TTY",type:ge.BOOLEAN,default:!1},preferTruncatedLines:{description:"If true, the CLI will truncate lines that would go beyond the size of the terminal",type:ge.BOOLEAN,default:!1},progressBarStyle:{description:"Which style of progress bar should be used (only when progress bars are enabled)",type:ge.STRING,default:void 0,defaultText:""},defaultLanguageName:{description:"Default language mode that should be used when a package doesn't offer any insight",type:ge.STRING,default:"node"},defaultProtocol:{description:"Default resolution protocol used when resolving pure semver and tag ranges",type:ge.STRING,default:"npm:"},enableTransparentWorkspaces:{description:"If false, Yarn won't automatically resolve workspace dependencies unless they use the `workspace:` protocol",type:ge.BOOLEAN,default:!0},supportedArchitectures:{description:"Architectures that Yarn will fetch and inject into the resolver",type:ge.SHAPE,properties:{os:{description:"Array of supported process.platform strings, or null to target them all",type:ge.STRING,isArray:!0,isNullable:!0,default:["current"]},cpu:{description:"Array of supported process.arch strings, or null to target them all",type:ge.STRING,isArray:!0,isNullable:!0,default:["current"]}}},enableMirror:{description:"If true, the downloaded packages will be retrieved and stored in both the local and global folders",type:ge.BOOLEAN,default:!0},enableNetwork:{description:"If false, the package manager will refuse to use the network if required to",type:ge.BOOLEAN,default:!0},httpProxy:{description:"URL of the http proxy that must be used for outgoing http requests",type:ge.STRING,default:null},httpsProxy:{description:"URL of the http proxy that must be used for outgoing https requests",type:ge.STRING,default:null},unsafeHttpWhitelist:{description:"List of the hostnames for which http queries are allowed (glob patterns are supported)",type:ge.STRING,default:[],isArray:!0},httpTimeout:{description:"Timeout of each http request in milliseconds",type:ge.NUMBER,default:6e4},httpRetry:{description:"Retry times on http failure",type:ge.NUMBER,default:3},networkConcurrency:{description:"Maximal number of concurrent requests",type:ge.NUMBER,default:50},networkSettings:{description:"Network settings per hostname (glob patterns are supported)",type:ge.MAP,valueDefinition:{description:"",type:ge.SHAPE,properties:{caFilePath:{description:"Path to file containing one or multiple Certificate Authority signing certificates",type:ge.ABSOLUTE_PATH,default:null},enableNetwork:{description:"If false, the package manager will refuse to use the network if required to",type:ge.BOOLEAN,default:null},httpProxy:{description:"URL of the http proxy that must be used for outgoing http requests",type:ge.STRING,default:null},httpsProxy:{description:"URL of the http proxy that must be used for outgoing https requests",type:ge.STRING,default:null}}}},caFilePath:{description:"A path to a file containing one or multiple Certificate Authority signing certificates",type:ge.ABSOLUTE_PATH,default:null},enableStrictSsl:{description:"If false, SSL certificate errors will be ignored",type:ge.BOOLEAN,default:!0},logFilters:{description:"Overrides for log levels",type:ge.SHAPE,isArray:!0,concatenateValues:!0,properties:{code:{description:"Code of the messages covered by this override",type:ge.STRING,default:void 0},text:{description:"Code of the texts covered by this override",type:ge.STRING,default:void 0},pattern:{description:"Code of the patterns covered by this override",type:ge.STRING,default:void 0},level:{description:"Log level override, set to null to remove override",type:ge.STRING,values:Object.values(Ts),isNullable:!0,default:void 0}}},enableTelemetry:{description:"If true, telemetry will be periodically sent, following the rules in https://yarnpkg.com/advanced/telemetry",type:ge.BOOLEAN,default:!0},telemetryInterval:{description:"Minimal amount of time between two telemetry uploads, in days",type:ge.NUMBER,default:7},telemetryUserId:{description:"If you desire to tell us which project you are, you can set this field. Completely optional and opt-in.",type:ge.STRING,default:null},enableScripts:{description:"If true, packages are allowed to have install scripts by default",type:ge.BOOLEAN,default:!0},enableStrictSettings:{description:"If true, unknown settings will cause Yarn to abort",type:ge.BOOLEAN,default:!0},enableImmutableCache:{description:"If true, the cache is reputed immutable and actions that would modify it will throw",type:ge.BOOLEAN,default:!1},checksumBehavior:{description:"Enumeration defining what to do when a checksum doesn't match expectations",type:ge.STRING,default:"throw"},packageExtensions:{description:"Map of package corrections to apply on the dependency tree",type:ge.MAP,valueDefinition:{description:"The extension that will be applied to any package whose version matches the specified range",type:ge.SHAPE,properties:{dependencies:{description:"The set of dependencies that must be made available to the current package in order for it to work properly",type:ge.MAP,valueDefinition:{description:"A range",type:ge.STRING}},peerDependencies:{description:"Inherited dependencies - the consumer of the package will be tasked to provide them",type:ge.MAP,valueDefinition:{description:"A semver range",type:ge.STRING}},peerDependenciesMeta:{description:"Extra information related to the dependencies listed in the peerDependencies field",type:ge.MAP,valueDefinition:{description:"The peerDependency meta",type:ge.SHAPE,properties:{optional:{description:"If true, the selected peer dependency will be marked as optional by the package manager and the consumer omitting it won't be reported as an error",type:ge.BOOLEAN,default:!1}}}}}}}};function NR(t,e,r,i,n){if(i.isArray||i.type===ge.ANY&&Array.isArray(r))return Array.isArray(r)?r.map((s,o)=>FR(t,`${e}[${o}]`,s,i,n)):String(r).split(/,/).map(s=>FR(t,e,s,i,n));if(Array.isArray(r))throw new Error(`Non-array configuration settings "${e}" cannot be an array`);return FR(t,e,r,i,n)}function FR(t,e,r,i,n){var a;switch(i.type){case ge.ANY:return r;case ge.SHAPE:return mTe(t,e,r,i,n);case ge.MAP:return ETe(t,e,r,i,n)}if(r===null&&!i.isNullable&&i.default!==null)throw new Error(`Non-nullable configuration settings "${e}" cannot be set to null`);if((a=i.values)==null?void 0:a.includes(r))return r;let o=(()=>{if(i.type===ge.BOOLEAN&&typeof r!="string")return Hh(r);if(typeof r!="string")throw new Error(`Expected value (${r}) to be a string`);let l=Ov(r,{env:process.env});switch(i.type){case ge.ABSOLUTE_PATH:return v.resolve(n,M.toPortablePath(l));case ge.LOCATOR_LOOSE:return Hl(l,!1);case ge.NUMBER:return parseInt(l);case ge.LOCATOR:return Hl(l);case ge.BOOLEAN:return Hh(l);default:return l}})();if(i.values&&!i.values.includes(o))throw new Error(`Invalid value, expected one of ${i.values.join(", ")}`);return o}function mTe(t,e,r,i,n){if(typeof r!="object"||Array.isArray(r))throw new me(`Object configuration settings "${e}" must be an object`);let s=LR(t,i,{ignoreArrays:!0});if(r===null)return s;for(let[o,a]of Object.entries(r)){let l=`${e}.${o}`;if(!i.properties[o])throw new me(`Unrecognized configuration settings found: ${e}.${o} - run "yarn config -v" to see the list of settings supported in Yarn`);s.set(o,NR(t,l,a,i.properties[o],n))}return s}function ETe(t,e,r,i,n){let s=new Map;if(typeof r!="object"||Array.isArray(r))throw new me(`Map configuration settings "${e}" must be an object`);if(r===null)return s;for(let[o,a]of Object.entries(r)){let l=i.normalizeKeys?i.normalizeKeys(o):o,c=`${e}['${l}']`,u=i.valueDefinition;s.set(l,NR(t,c,a,u,n))}return s}function LR(t,e,{ignoreArrays:r=!1}={}){switch(e.type){case ge.SHAPE:{if(e.isArray&&!r)return[];let i=new Map;for(let[n,s]of Object.entries(e.properties))i.set(n,LR(t,s));return i}break;case ge.MAP:return e.isArray&&!r?[]:new Map;case ge.ABSOLUTE_PATH:return e.default===null?null:t.projectCwd===null?v.isAbsolute(e.default)?v.normalize(e.default):e.isNullable?null:void 0:Array.isArray(e.default)?e.default.map(i=>v.resolve(t.projectCwd,i)):v.resolve(t.projectCwd,e.default);default:return e.default}}function MB(t,e,r){if(e.type===ge.SECRET&&typeof t=="string"&&r.hideSecrets)return CTe;if(e.type===ge.ABSOLUTE_PATH&&typeof t=="string"&&r.getNativePaths)return M.fromPortablePath(t);if(e.isArray&&Array.isArray(t)){let i=[];for(let n of t)i.push(MB(n,e,r));return i}if(e.type===ge.MAP&&t instanceof Map){let i=new Map;for(let[n,s]of t.entries())i.set(n,MB(s,e.valueDefinition,r));return i}if(e.type===ge.SHAPE&&t instanceof Map){let i=new Map;for(let[n,s]of t.entries()){let o=e.properties[n];i.set(n,MB(s,o,r))}return i}return t}function ITe(){let t={};for(let[e,r]of Object.entries(process.env))e=e.toLowerCase(),!!e.startsWith(LB)&&(e=(0,F_.default)(e.slice(LB.length)),t[e]=r);return t}function TB(){let t=`${LB}rc_filename`;for(let[e,r]of Object.entries(process.env))if(e.toLowerCase()===t&&typeof r=="string")return r;return PR}var KA;(function(i){i[i.LOCKFILE=0]="LOCKFILE",i[i.MANIFEST=1]="MANIFEST",i[i.NONE=2]="NONE"})(KA||(KA={}));var Ra=class{constructor(e){this.projectCwd=null;this.plugins=new Map;this.settings=new Map;this.values=new Map;this.sources=new Map;this.invalid=new Map;this.packageExtensions=new Map;this.limits=new Map;this.startingCwd=e}static create(e,r,i){let n=new Ra(e);typeof r!="undefined"&&!(r instanceof Map)&&(n.projectCwd=r),n.importSettings(RR);let s=typeof i!="undefined"?i:r instanceof Map?r:new Map;for(let[o,a]of s)n.activatePlugin(o,a);return n}static async find(e,r,{lookup:i=0,strict:n=!0,usePath:s=!1,useRc:o=!0}={}){let a=ITe();delete a.rcFilename;let l=await Ra.findRcFiles(e),c=await Ra.findHomeRcFile();if(c){let I=l.find(B=>B.path===c.path);I?I.strict=!1:l.push(_(P({},c),{strict:!1}))}let u=({ignoreCwd:I,yarnPath:B,ignorePath:b,lockfileFilename:R})=>({ignoreCwd:I,yarnPath:B,ignorePath:b,lockfileFilename:R}),g=L=>{var K=L,{ignoreCwd:I,yarnPath:B,ignorePath:b,lockfileFilename:R}=K,H=qr(K,["ignoreCwd","yarnPath","ignorePath","lockfileFilename"]);return H},f=new Ra(e);f.importSettings(u(RR)),f.useWithSource("",u(a),e,{strict:!1});for(let{path:I,cwd:B,data:b}of l)f.useWithSource(I,u(b),B,{strict:!1});if(s){let I=f.get("yarnPath"),B=f.get("ignorePath");if(I!==null&&!B)return f}let h=f.get("lockfileFilename"),p;switch(i){case 0:p=await Ra.findProjectCwd(e,h);break;case 1:p=await Ra.findProjectCwd(e,null);break;case 2:T.existsSync(v.join(e,"package.json"))?p=v.resolve(e):p=null;break}f.startingCwd=e,f.projectCwd=p,f.importSettings(g(RR));let d=new Map([["@@core",k_]]),m=I=>"default"in I?I.default:I;if(r!==null){for(let R of r.plugins.keys())d.set(R,m(r.modules.get(R)));let I=new Map;for(let R of R_())I.set(R,()=>mu(R));for(let[R,H]of r.modules)I.set(R,()=>H);let B=new Set,b=async(R,H)=>{let{factory:L,name:K}=mu(R);if(B.has(K))return;let J=new Map(I),ne=A=>{if(J.has(A))return J.get(A)();throw new me(`This plugin cannot access the package referenced via ${A} which is neither a builtin, nor an exposed entry`)},q=await du(async()=>m(await L(ne)),A=>`${A} (when initializing ${K}, defined in ${H})`);I.set(K,()=>q),B.add(K),d.set(K,q)};if(a.plugins)for(let R of a.plugins.split(";")){let H=v.resolve(e,M.toPortablePath(R));await b(H,"")}for(let{path:R,cwd:H,data:L}of l)if(!!o&&!!Array.isArray(L.plugins))for(let K of L.plugins){let J=typeof K!="string"?K.path:K,ne=v.resolve(H,M.toPortablePath(J));await b(ne,R)}}for(let[I,B]of d)f.activatePlugin(I,B);f.useWithSource("",g(a),e,{strict:n});for(let{path:I,cwd:B,data:b,strict:R}of l)f.useWithSource(I,g(b),B,{strict:R!=null?R:n});return f.get("enableGlobalCache")&&(f.values.set("cacheFolder",`${f.get("globalFolder")}/cache`),f.sources.set("cacheFolder","")),await f.refreshPackageExtensions(),f}static async findRcFiles(e){let r=TB(),i=[],n=e,s=null;for(;n!==s;){s=n;let o=v.join(s,r);if(T.existsSync(o)){let a=await T.readFilePromise(o,"utf8"),l;try{l=Ii(a)}catch(c){let u="";throw a.match(/^\s+(?!-)[^:]+\s+\S+/m)&&(u=" (in particular, make sure you list the colons after each key name)"),new me(`Parse error when loading ${o}; please check it's proper Yaml${u}`)}i.push({path:o,cwd:s,data:l})}n=v.dirname(s)}return i}static async findHomeRcFile(){let e=TB(),r=uh(),i=v.join(r,e);if(T.existsSync(i)){let n=await T.readFilePromise(i,"utf8"),s=Ii(n);return{path:i,cwd:r,data:s}}return null}static async findProjectCwd(e,r){let i=null,n=e,s=null;for(;n!==s;){if(s=n,T.existsSync(v.join(s,"package.json"))&&(i=s),r!==null){if(T.existsSync(v.join(s,r))){i=s;break}}else if(i!==null)break;n=v.dirname(s)}return i}static async updateConfiguration(e,r){let i=TB(),n=v.join(e,i),s=T.existsSync(n)?Ii(await T.readFilePromise(n,"utf8")):{},o=!1,a;if(typeof r=="function"){try{a=r(s)}catch{a=r({})}if(a===s)return}else{a=s;for(let l of Object.keys(r)){let c=s[l],u=r[l],g;if(typeof u=="function")try{g=u(c)}catch{g=u(void 0)}else g=u;c!==g&&(a[l]=g,o=!0)}if(!o)return}await T.changeFilePromise(n,Qa(a),{automaticNewlines:!0})}static async updateHomeConfiguration(e){let r=uh();return await Ra.updateConfiguration(r,e)}activatePlugin(e,r){this.plugins.set(e,r),typeof r.configuration!="undefined"&&this.importSettings(r.configuration)}importSettings(e){for(let[r,i]of Object.entries(e))if(i!=null){if(this.settings.has(r))throw new Error(`Cannot redefine settings "${r}"`);this.settings.set(r,i),this.values.set(r,LR(this,i))}}useWithSource(e,r,i,n){try{this.use(e,r,i,n)}catch(s){throw s.message+=` (in ${Ve(this,e,Le.PATH)})`,s}}use(e,r,i,{strict:n=!0,overwrite:s=!1}={}){n=n&&this.get("enableStrictSettings");for(let o of["enableStrictSettings",...Object.keys(r)]){if(typeof r[o]=="undefined"||o==="plugins"||e===""&&dTe.has(o))continue;if(o==="rcFilename")throw new me(`The rcFilename settings can only be set via ${`${LB}RC_FILENAME`.toUpperCase()}, not via a rc file`);let l=this.settings.get(o);if(!l){if(n)throw new me(`Unrecognized or legacy configuration settings found: ${o} - run "yarn config -v" to see the list of settings supported in Yarn`);this.invalid.set(o,e);continue}if(this.sources.has(o)&&!(s||l.type===ge.MAP||l.isArray&&l.concatenateValues))continue;let c;try{c=NR(this,o,r[o],l,i)}catch(u){throw u.message+=` in ${Ve(this,e,Le.PATH)}`,u}if(o==="enableStrictSettings"&&e!==""){n=c;continue}if(l.type===ge.MAP){let u=this.values.get(o);this.values.set(o,new Map(s?[...u,...c]:[...c,...u])),this.sources.set(o,`${this.sources.get(o)}, ${e}`)}else if(l.isArray&&l.concatenateValues){let u=this.values.get(o);this.values.set(o,s?[...u,...c]:[...c,...u]),this.sources.set(o,`${this.sources.get(o)}, ${e}`)}else this.values.set(o,c),this.sources.set(o,e)}}get(e){if(!this.values.has(e))throw new Error(`Invalid configuration key "${e}"`);return this.values.get(e)}getSpecial(e,{hideSecrets:r=!1,getNativePaths:i=!1}){let n=this.get(e),s=this.settings.get(e);if(typeof s=="undefined")throw new me(`Couldn't find a configuration settings named "${e}"`);return MB(n,s,{hideSecrets:r,getNativePaths:i})}getSubprocessStreams(e,{header:r,prefix:i,report:n}){let s,o,a=T.createWriteStream(e);if(this.get("enableInlineBuilds")){let l=n.createStreamReporter(`${i} ${Ve(this,"STDOUT","green")}`),c=n.createStreamReporter(`${i} ${Ve(this,"STDERR","red")}`);s=new kR.PassThrough,s.pipe(l),s.pipe(a),o=new kR.PassThrough,o.pipe(c),o.pipe(a)}else s=a,o=a,typeof r!="undefined"&&s.write(`${r} -`);return{stdout:s,stderr:o}}makeResolver(){let e=[];for(let r of this.plugins.values())for(let i of r.resolvers||[])e.push(new i);return new pd([new FB,new Yr,new SR,...e])}makeFetcher(){let e=[];for(let r of this.plugins.values())for(let i of r.fetchers||[])e.push(new i);return new vR([new dd,new xR,...e])}getLinkers(){let e=[];for(let r of this.plugins.values())for(let i of r.linkers||[])e.push(new i);return e}getSupportedArchitectures(){let e=this.get("supportedArchitectures"),r=e.get("os");r!==null&&(r=r.map(n=>n==="current"?process.platform:n));let i=e.get("cpu");return i!==null&&(i=i.map(n=>n==="current"?process.arch:n)),{os:r,cpu:i}}async refreshPackageExtensions(){this.packageExtensions=new Map;let e=this.packageExtensions,r=(i,n,{userProvided:s=!1}={})=>{if(!Us(i.range))throw new Error("Only semver ranges are allowed as keys for the packageExtensions setting");let o=new Ze;o.load(n,{yamlCompatibilityMode:!0});let a=hu(e,i.identHash),l=[];a.push([i.range,l]);let c={status:ki.Inactive,userProvided:s,parentDescriptor:i};for(let u of o.dependencies.values())l.push(_(P({},c),{type:oi.Dependency,descriptor:u}));for(let u of o.peerDependencies.values())l.push(_(P({},c),{type:oi.PeerDependency,descriptor:u}));for(let[u,g]of o.peerDependenciesMeta)for(let[f,h]of Object.entries(g))l.push(_(P({},c),{type:oi.PeerDependencyMeta,selector:u,key:f,value:h}))};await this.triggerHook(i=>i.registerPackageExtensions,this,r);for(let[i,n]of this.get("packageExtensions"))r(pA(i,!0),aI(n),{userProvided:!0})}normalizePackage(e){let r=ap(e);if(this.packageExtensions==null)throw new Error("refreshPackageExtensions has to be called before normalizing packages");let i=this.packageExtensions.get(e.identHash);if(typeof i!="undefined"){let s=e.version;if(s!==null){for(let[o,a]of i)if(!!lc(s,o))for(let l of a)switch(l.status===ki.Inactive&&(l.status=ki.Redundant),l.type){case oi.Dependency:typeof r.dependencies.get(l.descriptor.identHash)=="undefined"&&(l.status=ki.Active,r.dependencies.set(l.descriptor.identHash,l.descriptor));break;case oi.PeerDependency:typeof r.peerDependencies.get(l.descriptor.identHash)=="undefined"&&(l.status=ki.Active,r.peerDependencies.set(l.descriptor.identHash,l.descriptor));break;case oi.PeerDependencyMeta:{let c=r.peerDependenciesMeta.get(l.selector);(typeof c=="undefined"||!Object.prototype.hasOwnProperty.call(c,l.key)||c[l.key]!==l.value)&&(l.status=ki.Active,na(r.peerDependenciesMeta,l.selector,()=>({}))[l.key]=l.value)}break;default:Lv(l);break}}}let n=s=>s.scope?`${s.scope}__${s.name}`:`${s.name}`;for(let s of r.peerDependenciesMeta.keys()){let o=En(s);r.peerDependencies.has(o.identHash)||r.peerDependencies.set(o.identHash,Yt(o,"*"))}for(let s of r.peerDependencies.values()){if(s.scope==="types")continue;let o=n(s),a=Eo("types",o),l=St(a);r.peerDependencies.has(a.identHash)||r.peerDependenciesMeta.has(l)||(r.peerDependencies.set(a.identHash,Yt(a,"*")),r.peerDependenciesMeta.set(l,{optional:!0}))}return r.dependencies=new Map(gn(r.dependencies,([,s])=>In(s))),r.peerDependencies=new Map(gn(r.peerDependencies,([,s])=>In(s))),r}getLimit(e){return na(this.limits,e,()=>(0,N_.default)(this.get(e)))}async triggerHook(e,...r){for(let i of this.plugins.values()){let n=i.hooks;if(!n)continue;let s=e(n);!s||await s(...r)}}async triggerMultipleHooks(e,r){for(let i of r)await this.triggerHook(e,...i)}async reduceHook(e,r,...i){let n=r;for(let s of this.plugins.values()){let o=s.hooks;if(!o)continue;let a=e(o);!a||(n=await a(n,...i))}return n}async firstHook(e,...r){for(let i of this.plugins.values()){let n=i.hooks;if(!n)continue;let s=e(n);if(!s)continue;let o=await s(...r);if(typeof o!="undefined")return o}return null}},fe=Ra;fe.telemetry=null;var Gn;(function(r){r[r.SCRIPT=0]="SCRIPT",r[r.SHELLCODE=1]="SHELLCODE"})(Gn||(Gn={}));var Fa=class extends Xi{constructor({configuration:e,stdout:r,suggestInstall:i=!0}){super();this.errorCount=0;Cp(this,{configuration:e}),this.configuration=e,this.stdout=r,this.suggestInstall=i}static async start(e,r){let i=new this(e);try{await r(i)}catch(n){i.reportExceptionOnce(n)}finally{await i.finalize()}return i}hasErrors(){return this.errorCount>0}exitCode(){return this.hasErrors()?1:0}reportCacheHit(e){}reportCacheMiss(e){}startTimerSync(e,r,i){return(typeof r=="function"?r:i)()}async startTimerPromise(e,r,i){return await(typeof r=="function"?r:i)()}async startCacheReport(e){return await e()}reportSeparator(){}reportInfo(e,r){}reportWarning(e,r){}reportError(e,r){this.errorCount+=1,this.stdout.write(`${Ve(this.configuration,"\u27A4","redBright")} ${this.formatNameWithHyperlink(e)}: ${r} -`)}reportProgress(e){let r=Promise.resolve().then(async()=>{for await(let{}of e);}),i=()=>{};return _(P({},r),{stop:i})}reportJson(e){}async finalize(){this.errorCount>0&&(this.stdout.write(` -`),this.stdout.write(`${Ve(this.configuration,"\u27A4","redBright")} Errors happened when preparing the environment required to run this command. -`),this.suggestInstall&&this.stdout.write(`${Ve(this.configuration,"\u27A4","redBright")} This might be caused by packages being missing from the lockfile, in which case running "yarn install" might help. -`))}formatNameWithHyperlink(e){return eD(e,{configuration:this.configuration,json:!1})}};var t0=ie(require("crypto")),v$=ie(CX()),r0=ie(Q$()),S$=ie(Wp()),x$=ie(Or()),lF=ie(require("util")),cF=ie(require("v8")),uF=ie(require("zlib"));var iUe=[[/^(git(?:\+(?:https|ssh))?:\/\/.*(?:\.git)?)#(.*)$/,(t,e,r,i)=>`${r}#commit=${i}`],[/^https:\/\/((?:[^/]+?)@)?codeload\.github\.com\/([^/]+\/[^/]+)\/tar\.gz\/([0-9a-f]+)$/,(t,e,r="",i,n)=>`https://${r}github.com/${i}.git#commit=${n}`],[/^https:\/\/((?:[^/]+?)@)?github\.com\/([^/]+\/[^/]+?)(?:\.git)?#([0-9a-f]+)$/,(t,e,r="",i,n)=>`https://${r}github.com/${i}.git#commit=${n}`],[/^https?:\/\/[^/]+\/(?:[^/]+\/)*(?:@.+(?:\/|(?:%2f)))?([^/]+)\/(?:-|download)\/\1-[^/]+\.tgz(?:#|$)/,t=>`npm:${t}`],[/^https:\/\/npm\.pkg\.github\.com\/download\/(?:@[^/]+)\/(?:[^/]+)\/(?:[^/]+)\/(?:[0-9a-f]+)(?:#|$)/,t=>`npm:${t}`],[/^https:\/\/npm\.fontawesome\.com\/(?:@[^/]+)\/([^/]+)\/-\/([^/]+)\/\1-\2.tgz(?:#|$)/,t=>`npm:${t}`],[/^https?:\/\/(?:[^\\.]+)\.jfrog\.io\/.*\/(@[^/]+)\/([^/]+)\/-\/\1\/\2-(?:[.\d\w-]+)\.tgz(?:#|$)/,(t,e)=>by({protocol:"npm:",source:null,selector:t,params:{__archiveUrl:e}})],[/^[^/]+\.tgz#[0-9a-f]+$/,t=>`npm:${t}`]],oF=class{constructor(){this.resolutions=null}async setup(e,{report:r}){let i=v.join(e.cwd,e.configuration.get("lockfileFilename"));if(!T.existsSync(i))return;let n=await T.readFilePromise(i,"utf8"),s=Ii(n);if(Object.prototype.hasOwnProperty.call(s,"__metadata"))return;let o=this.resolutions=new Map;for(let a of Object.keys(s)){let l=gp(a);if(!l){r.reportWarning(z.YARN_IMPORT_FAILED,`Failed to parse the string "${a}" into a proper descriptor`);continue}Us(l.range)&&(l=Yt(l,`npm:${l.range}`));let{version:c,resolved:u}=s[a];if(!u)continue;let g;for(let[h,p]of iUe){let d=u.match(h);if(d){g=p(c,...d);break}}if(!g){r.reportWarning(z.YARN_IMPORT_FAILED,`${Xt(e.configuration,l)}: Only some patterns can be imported from legacy lockfiles (not "${u}")`);continue}let f=l;try{let h=Tu(l.range),p=gp(h.selector,!0);p&&(f=p)}catch{}o.set(l.descriptorHash,Vi(f,g))}}supportsDescriptor(e,r){return this.resolutions?this.resolutions.has(e.descriptorHash):!1}supportsLocator(e,r){return!1}shouldPersistResolution(e,r){throw new Error("Assertion failed: This resolver doesn't support resolving locators to packages")}bindDescriptor(e,r,i){return e}getResolutionDependencies(e,r){return[]}async getCandidates(e,r,i){if(!this.resolutions)throw new Error("Assertion failed: The resolution store should have been setup");let n=this.resolutions.get(e.descriptorHash);if(!n)throw new Error("Assertion failed: The resolution should have been registered");return[n]}async getSatisfying(e,r,i){return null}async resolve(e,r){throw new Error("Assertion failed: This resolver doesn't support resolving locators to packages")}};var aF=class{constructor(e){this.resolver=e}supportsDescriptor(e,r){return!!(r.project.storedResolutions.get(e.descriptorHash)||r.project.originalPackages.has(By(e).locatorHash))}supportsLocator(e,r){return!!(r.project.originalPackages.has(e.locatorHash)&&!r.project.lockfileNeedsRefresh)}shouldPersistResolution(e,r){throw new Error("The shouldPersistResolution method shouldn't be called on the lockfile resolver, which would always answer yes")}bindDescriptor(e,r,i){return e}getResolutionDependencies(e,r){return this.resolver.getResolutionDependencies(e,r)}async getCandidates(e,r,i){let n=i.project.originalPackages.get(By(e).locatorHash);if(n)return[n];let s=i.project.storedResolutions.get(e.descriptorHash);if(!s)throw new Error("Expected the resolution to have been successful - resolution not found");if(n=i.project.originalPackages.get(s),!n)throw new Error("Expected the resolution to have been successful - package not found");return[n]}async getSatisfying(e,r,i){return null}async resolve(e,r){let i=r.project.originalPackages.get(e.locatorHash);if(!i)throw new Error("The lockfile resolver isn't meant to resolve packages - they should already have been stored into a cache");return i}};var AF=class{constructor(e){this.resolver=e}supportsDescriptor(e,r){return this.resolver.supportsDescriptor(e,r)}supportsLocator(e,r){return this.resolver.supportsLocator(e,r)}shouldPersistResolution(e,r){return this.resolver.shouldPersistResolution(e,r)}bindDescriptor(e,r,i){return this.resolver.bindDescriptor(e,r,i)}getResolutionDependencies(e,r){return this.resolver.getResolutionDependencies(e,r)}async getCandidates(e,r,i){throw new nt(z.MISSING_LOCKFILE_ENTRY,`This package doesn't seem to be present in your lockfile; run "yarn install" to update the lockfile`)}async getSatisfying(e,r,i){throw new nt(z.MISSING_LOCKFILE_ENTRY,`This package doesn't seem to be present in your lockfile; run "yarn install" to update the lockfile`)}async resolve(e,r){throw new nt(z.MISSING_LOCKFILE_ENTRY,`This package doesn't seem to be present in your lockfile; run "yarn install" to update the lockfile`)}};var ei=class extends Xi{reportCacheHit(e){}reportCacheMiss(e){}startTimerSync(e,r,i){return(typeof r=="function"?r:i)()}async startTimerPromise(e,r,i){return await(typeof r=="function"?r:i)()}async startCacheReport(e){return await e()}reportSeparator(){}reportInfo(e,r){}reportWarning(e,r){}reportError(e,r){}reportProgress(e){let r=Promise.resolve().then(async()=>{for await(let{}of e);}),i=()=>{};return _(P({},r),{stop:i})}reportJson(e){}async finalize(){}};var b$=ie(vx());var Dd=class{constructor(e,{project:r}){this.workspacesCwds=new Set;this.dependencies=new Map;this.project=r,this.cwd=e}async setup(){this.manifest=T.existsSync(v.join(this.cwd,Ze.fileName))?await Ze.find(this.cwd):new Ze,this.relativeCwd=v.relative(this.project.cwd,this.cwd)||Se.dot;let e=this.manifest.name?this.manifest.name:Eo(null,`${this.computeCandidateName()}-${zi(this.relativeCwd).substr(0,6)}`),r=this.manifest.version?this.manifest.version:"0.0.0";this.locator=Vi(e,r),this.anchoredDescriptor=Yt(this.locator,`${Yr.protocol}${this.relativeCwd}`),this.anchoredLocator=Vi(this.locator,`${Yr.protocol}${this.relativeCwd}`);let i=this.manifest.workspaceDefinitions.map(({pattern:s})=>s),n=await(0,b$.default)(i,{cwd:M.fromPortablePath(this.cwd),expandDirectories:!1,onlyDirectories:!0,onlyFiles:!1,ignore:["**/node_modules","**/.git","**/.yarn"]});n.sort();for(let s of n){let o=v.resolve(this.cwd,M.toPortablePath(s));T.existsSync(v.join(o,"package.json"))&&this.workspacesCwds.add(o)}}accepts(e){var o;let r=e.indexOf(":"),i=r!==-1?e.slice(0,r+1):null,n=r!==-1?e.slice(r+1):e;if(i===Yr.protocol&&v.normalize(n)===this.relativeCwd||i===Yr.protocol&&(n==="*"||n==="^"||n==="~"))return!0;let s=Us(n);return s?i===Yr.protocol?s.test((o=this.manifest.version)!=null?o:"0.0.0"):this.project.configuration.get("enableTransparentWorkspaces")&&this.manifest.version!==null?s.test(this.manifest.version):!1:!1}computeCandidateName(){return this.cwd===this.project.cwd?"root-workspace":`${v.basename(this.cwd)}`||"unnamed-workspace"}getRecursiveWorkspaceDependencies({dependencies:e=Ze.hardDependencies}={}){let r=new Set,i=n=>{for(let s of e)for(let o of n.manifest[s].values()){let a=this.project.tryWorkspaceByDescriptor(o);a===null||r.has(a)||(r.add(a),i(a))}};return i(this),r}getRecursiveWorkspaceDependents({dependencies:e=Ze.hardDependencies}={}){let r=new Set,i=n=>{for(let s of this.project.workspaces)e.some(a=>[...s.manifest[a].values()].some(l=>{let c=this.project.tryWorkspaceByDescriptor(l);return c!==null&&up(c.anchoredLocator,n.anchoredLocator)}))&&!r.has(s)&&(r.add(s),i(s))};return i(this),r}getRecursiveWorkspaceChildren(){let e=[];for(let r of this.workspacesCwds){let i=this.project.workspacesByCwd.get(r);i&&e.push(i,...i.getRecursiveWorkspaceChildren())}return e}async persistManifest(){let e={};this.manifest.exportTo(e);let r=v.join(this.cwd,Ze.fileName),i=`${JSON.stringify(e,null,this.manifest.indent)} -`;await T.changeFilePromise(r,i,{automaticNewlines:!0}),this.manifest.raw=e}};var k$=5,nUe=1,sUe=/ *, */g,P$=/\/$/,oUe=32,aUe=(0,lF.promisify)(uF.default.gzip),AUe=(0,lF.promisify)(uF.default.gunzip),li;(function(r){r.UpdateLockfile="update-lockfile",r.SkipBuild="skip-build"})(li||(li={}));var gF={restoreInstallersCustomData:["installersCustomData"],restoreResolutions:["accessibleLocators","conditionalLocators","disabledLocators","optionalBuilds","storedDescriptors","storedResolutions","storedPackages","lockFileChecksum"],restoreBuildState:["storedBuildState"]},D$=t=>zi(`${nUe}`,t),Ke=class{constructor(e,{configuration:r}){this.resolutionAliases=new Map;this.workspaces=[];this.workspacesByCwd=new Map;this.workspacesByIdent=new Map;this.storedResolutions=new Map;this.storedDescriptors=new Map;this.storedPackages=new Map;this.storedChecksums=new Map;this.storedBuildState=new Map;this.accessibleLocators=new Set;this.conditionalLocators=new Set;this.disabledLocators=new Set;this.originalPackages=new Map;this.optionalBuilds=new Set;this.lockfileNeedsRefresh=!1;this.peerRequirements=new Map;this.installersCustomData=new Map;this.lockFileChecksum=null;this.installStateChecksum=null;this.configuration=r,this.cwd=e}static async find(e,r){var c,u,g;if(!e.projectCwd)throw new me(`No project found in ${r}`);let i=e.projectCwd,n=r,s=null;for(;s!==e.projectCwd;){if(s=n,T.existsSync(v.join(s,wt.manifest))){i=s;break}n=v.dirname(s)}let o=new Ke(e.projectCwd,{configuration:e});(c=fe.telemetry)==null||c.reportProject(o.cwd),await o.setupResolutions(),await o.setupWorkspaces(),(u=fe.telemetry)==null||u.reportWorkspaceCount(o.workspaces.length),(g=fe.telemetry)==null||g.reportDependencyCount(o.workspaces.reduce((f,h)=>f+h.manifest.dependencies.size+h.manifest.devDependencies.size,0));let a=o.tryWorkspaceByCwd(i);if(a)return{project:o,workspace:a,locator:a.anchoredLocator};let l=await o.findLocatorForLocation(`${i}/`,{strict:!0});if(l)return{project:o,locator:l,workspace:null};throw new me(`The nearest package directory (${Ve(e,i,Le.PATH)}) doesn't seem to be part of the project declared in ${Ve(e,o.cwd,Le.PATH)}. - -- If the project directory is right, it might be that you forgot to list ${Ve(e,v.relative(o.cwd,i),Le.PATH)} as a workspace. -- If it isn't, it's likely because you have a yarn.lock or package.json file there, confusing the project root detection.`)}async setupResolutions(){var i;this.storedResolutions=new Map,this.storedDescriptors=new Map,this.storedPackages=new Map,this.lockFileChecksum=null;let e=v.join(this.cwd,this.configuration.get("lockfileFilename")),r=this.configuration.get("defaultLanguageName");if(T.existsSync(e)){let n=await T.readFilePromise(e,"utf8");this.lockFileChecksum=D$(n);let s=Ii(n);if(s.__metadata){let o=s.__metadata.version,a=s.__metadata.cacheKey;this.lockfileNeedsRefresh=o0;){let r=e;e=[];for(let i of r){if(this.workspacesByCwd.has(i))continue;let n=await this.addWorkspace(i),s=this.storedPackages.get(n.anchoredLocator.locatorHash);s&&(n.dependencies=s.dependencies);for(let o of n.workspacesCwds)e.push(o)}}}async addWorkspace(e){let r=new Dd(e,{project:this});await r.setup();let i=this.workspacesByIdent.get(r.locator.identHash);if(typeof i!="undefined")throw new Error(`Duplicate workspace name ${Vr(this.configuration,r.locator)}: ${M.fromPortablePath(e)} conflicts with ${M.fromPortablePath(i.cwd)}`);return this.workspaces.push(r),this.workspacesByCwd.set(e,r),this.workspacesByIdent.set(r.locator.identHash,r),r}get topLevelWorkspace(){return this.getWorkspaceByCwd(this.cwd)}tryWorkspaceByCwd(e){v.isAbsolute(e)||(e=v.resolve(this.cwd,e)),e=v.normalize(e).replace(/\/+$/,"");let r=this.workspacesByCwd.get(e);return r||null}getWorkspaceByCwd(e){let r=this.tryWorkspaceByCwd(e);if(!r)throw new Error(`Workspace not found (${e})`);return r}tryWorkspaceByFilePath(e){let r=null;for(let i of this.workspaces)v.relative(i.cwd,e).startsWith("../")||r&&r.cwd.length>=i.cwd.length||(r=i);return r||null}getWorkspaceByFilePath(e){let r=this.tryWorkspaceByFilePath(e);if(!r)throw new Error(`Workspace not found (${e})`);return r}tryWorkspaceByIdent(e){let r=this.workspacesByIdent.get(e.identHash);return typeof r=="undefined"?null:r}getWorkspaceByIdent(e){let r=this.tryWorkspaceByIdent(e);if(!r)throw new Error(`Workspace not found (${Vr(this.configuration,e)})`);return r}tryWorkspaceByDescriptor(e){let r=this.tryWorkspaceByIdent(e);return r===null||(hA(e)&&(e=Ap(e)),!r.accepts(e.range))?null:r}getWorkspaceByDescriptor(e){let r=this.tryWorkspaceByDescriptor(e);if(r===null)throw new Error(`Workspace not found (${Xt(this.configuration,e)})`);return r}tryWorkspaceByLocator(e){let r=this.tryWorkspaceByIdent(e);return r===null||(Io(e)&&(e=lp(e)),r.locator.locatorHash!==e.locatorHash&&r.anchoredLocator.locatorHash!==e.locatorHash)?null:r}getWorkspaceByLocator(e){let r=this.tryWorkspaceByLocator(e);if(!r)throw new Error(`Workspace not found (${lt(this.configuration,e)})`);return r}refreshWorkspaceDependencies(){for(let e of this.workspaces){let r=this.storedPackages.get(e.anchoredLocator.locatorHash);if(!r)throw new Error(`Assertion failed: Expected workspace ${hp(this.configuration,e)} (${Ve(this.configuration,v.join(e.cwd,wt.manifest),Le.PATH)}) to have been resolved. Run "yarn install" to update the lockfile`);e.dependencies=new Map(r.dependencies)}}forgetResolution(e){let r=n=>{this.storedResolutions.delete(n),this.storedDescriptors.delete(n)},i=n=>{this.originalPackages.delete(n),this.storedPackages.delete(n),this.accessibleLocators.delete(n)};if("descriptorHash"in e){let n=this.storedResolutions.get(e.descriptorHash);r(e.descriptorHash);let s=new Set(this.storedResolutions.values());typeof n!="undefined"&&!s.has(n)&&i(n)}if("locatorHash"in e){i(e.locatorHash);for(let[n,s]of this.storedResolutions)s===e.locatorHash&&r(n)}}forgetTransientResolutions(){let e=this.configuration.makeResolver();for(let r of this.originalPackages.values()){let i;try{i=e.shouldPersistResolution(r,{project:this,resolver:e})}catch{i=!1}i||this.forgetResolution(r)}}forgetVirtualResolutions(){for(let e of this.storedPackages.values())for(let[r,i]of e.dependencies)hA(i)&&e.dependencies.set(r,Ap(i))}getDependencyMeta(e,r){let i={},s=this.topLevelWorkspace.manifest.dependenciesMeta.get(St(e));if(!s)return i;let o=s.get(null);if(o&&Object.assign(i,o),r===null||!x$.default.valid(r))return i;for(let[a,l]of s)a!==null&&a===r&&Object.assign(i,l);return i}async findLocatorForLocation(e,{strict:r=!1}={}){let i=new ei,n=this.configuration.getLinkers(),s={project:this,report:i};for(let o of n){let a=await o.findPackageLocator(e,s);if(a){if(r&&(await o.findPackageLocation(a,s)).replace(P$,"")!==e.replace(P$,""))continue;return a}}return null}async resolveEverything(e){if(!this.workspacesByCwd||!this.workspacesByIdent)throw new Error("Workspaces must have been setup before calling this function");this.forgetVirtualResolutions(),e.lockfileOnly||this.forgetTransientResolutions();let r=e.resolver||this.configuration.makeResolver(),i=new oF;await i.setup(this,{report:e.report});let n=e.lockfileOnly?[new AF(r)]:[i,r],s=new pd([new aF(r),...n]),o=this.configuration.makeFetcher(),a=e.lockfileOnly?{project:this,report:e.report,resolver:s}:{project:this,report:e.report,resolver:s,fetchOptions:{project:this,cache:e.cache,checksums:this.storedChecksums,report:e.report,fetcher:o,cacheOptions:{mirrorWriteOnly:!0}}},l=new Map,c=new Map,u=new Map,g=new Map,f=new Map,h=new Map,p=this.topLevelWorkspace.anchoredLocator,d=new Set,m=[],I=async W=>{let X=await du(async()=>await s.resolve(W,a),D=>`${lt(this.configuration,W)}: ${D}`);if(!up(W,X))throw new Error(`Assertion failed: The locator cannot be changed by the resolver (went from ${lt(this.configuration,W)} to ${lt(this.configuration,X)})`);g.set(X.locatorHash,X);let F=this.configuration.normalizePackage(X);for(let[D,he]of F.dependencies){let pe=await this.configuration.reduceHook(Pe=>Pe.reduceDependency,he,this,F,he,{resolver:s,resolveOptions:a});if(!cp(he,pe))throw new Error("Assertion failed: The descriptor ident cannot be changed through aliases");let Ne=s.bindDescriptor(pe,W,a);F.dependencies.set(D,Ne)}return m.push(Promise.all([...F.dependencies.values()].map(D=>H(D)))),c.set(F.locatorHash,F),F},B=async W=>{let X=f.get(W.locatorHash);if(typeof X!="undefined")return X;let F=Promise.resolve().then(()=>I(W));return f.set(W.locatorHash,F),F},b=async(W,X)=>{let F=await H(X);return l.set(W.descriptorHash,W),u.set(W.descriptorHash,F.locatorHash),F},R=async W=>{let X=this.resolutionAliases.get(W.descriptorHash);if(typeof X!="undefined")return b(W,this.storedDescriptors.get(X));let F=s.getResolutionDependencies(W,a),D=new Map(await Promise.all(F.map(async Ne=>{let Pe=s.bindDescriptor(Ne,p,a),qe=await H(Pe);return d.add(qe.locatorHash),[Ne.descriptorHash,qe]}))),pe=(await du(async()=>await s.getCandidates(W,D,a),Ne=>`${Xt(this.configuration,W)}: ${Ne}`))[0];if(typeof pe=="undefined")throw new Error(`${Xt(this.configuration,W)}: No candidates found`);return l.set(W.descriptorHash,W),u.set(W.descriptorHash,pe.locatorHash),B(pe)},H=W=>{let X=h.get(W.descriptorHash);if(typeof X!="undefined")return X;l.set(W.descriptorHash,W);let F=Promise.resolve().then(()=>R(W));return h.set(W.descriptorHash,F),F};for(let W of this.workspaces){let X=W.anchoredDescriptor;m.push(H(X))}for(;m.length>0;){let W=[...m];m.length=0,await Promise.all(W)}let L=new Set(this.resolutionAliases.values()),K=new Set(c.keys()),J=new Set,ne=new Map;lUe({project:this,report:e.report,accessibleLocators:J,volatileDescriptors:L,optionalBuilds:K,peerRequirements:ne,allDescriptors:l,allResolutions:u,allPackages:c});for(let W of d)K.delete(W);for(let W of L)l.delete(W),u.delete(W);let q=this.configuration.getSupportedArchitectures(),A=new Set,V=new Set;for(let W of c.values())W.conditions!=null&&(!K.has(W.locatorHash)||(Sy(W,q)||(Sy(W,{os:[process.platform],cpu:[process.arch]})&&e.report.reportWarningOnce(z.GHOST_ARCHITECTURE,`${lt(this.configuration,W)}: Your current architecture (${process.platform}-${process.arch}) is supported by this package, but is missing from the ${Ve(this.configuration,"supportedArchitectures",ps.SETTING)} setting`),V.add(W.locatorHash)),A.add(W.locatorHash)));this.storedResolutions=u,this.storedDescriptors=l,this.storedPackages=c,this.accessibleLocators=J,this.conditionalLocators=A,this.disabledLocators=V,this.originalPackages=g,this.optionalBuilds=K,this.peerRequirements=ne,this.refreshWorkspaceDependencies()}async fetchEverything({cache:e,report:r,fetcher:i,mode:n}){let s={mockedPackages:this.disabledLocators,unstablePackages:this.conditionalLocators},o=i||this.configuration.makeFetcher(),a={checksums:this.storedChecksums,project:this,cache:e,fetcher:o,report:r,cacheOptions:s},l=Array.from(new Set(gn(this.storedResolutions.values(),[f=>{let h=this.storedPackages.get(f);if(!h)throw new Error("Assertion failed: The locator should have been registered");return is(h)}])));n===li.UpdateLockfile&&(l=l.filter(f=>!this.storedChecksums.has(f)));let c=!1,u=Xi.progressViaCounter(l.length);r.reportProgress(u);let g=(0,S$.default)(oUe);if(await r.startCacheReport(async()=>{await Promise.all(l.map(f=>g(async()=>{let h=this.storedPackages.get(f);if(!h)throw new Error("Assertion failed: The locator should have been registered");if(Io(h))return;let p;try{p=await o.fetch(h,a)}catch(d){d.message=`${lt(this.configuration,h)}: ${d.message}`,r.reportExceptionOnce(d),c=d;return}p.checksum!=null?this.storedChecksums.set(h.locatorHash,p.checksum):this.storedChecksums.delete(h.locatorHash),p.releaseFs&&p.releaseFs()}).finally(()=>{u.tick()})))}),c)throw c}async linkEverything({cache:e,report:r,fetcher:i,mode:n}){var A,V,W;let s={mockedPackages:this.disabledLocators,unstablePackages:this.conditionalLocators,skipIntegrityCheck:!0},o=i||this.configuration.makeFetcher(),a={checksums:this.storedChecksums,project:this,cache:e,fetcher:o,report:r,skipIntegrityCheck:!0,cacheOptions:s},l=this.configuration.getLinkers(),c={project:this,report:r},u=new Map(l.map(X=>{let F=X.makeInstaller(c),D=F.getCustomDataKey(),he=this.installersCustomData.get(D);return typeof he!="undefined"&&F.attachCustomData(he),[X,F]})),g=new Map,f=new Map,h=new Map,p=new Map(await Promise.all([...this.accessibleLocators].map(async X=>{let F=this.storedPackages.get(X);if(!F)throw new Error("Assertion failed: The locator should have been registered");return[X,await o.fetch(F,a)]}))),d=[];for(let X of this.accessibleLocators){let F=this.storedPackages.get(X);if(typeof F=="undefined")throw new Error("Assertion failed: The locator should have been registered");let D=p.get(F.locatorHash);if(typeof D=="undefined")throw new Error("Assertion failed: The fetch result should have been registered");let he=[],pe=Pe=>{he.push(Pe)},Ne=this.tryWorkspaceByLocator(F);if(Ne!==null){let Pe=[],{scripts:qe}=Ne.manifest;for(let se of["preinstall","install","postinstall"])qe.has(se)&&Pe.push([Gn.SCRIPT,se]);try{for(let[se,be]of u)if(se.supportsPackage(F,c)&&(await be.installPackage(F,D,{holdFetchResult:pe})).buildDirective!==null)throw new Error("Assertion failed: Linkers can't return build directives for workspaces; this responsibility befalls to the Yarn core")}finally{he.length===0?(A=D.releaseFs)==null||A.call(D):d.push(Promise.all(he).catch(()=>{}).then(()=>{var se;(se=D.releaseFs)==null||se.call(D)}))}let re=v.join(D.packageFs.getRealPath(),D.prefixPath);f.set(F.locatorHash,re),!Io(F)&&Pe.length>0&&h.set(F.locatorHash,{directives:Pe,buildLocations:[re]})}else{let Pe=l.find(se=>se.supportsPackage(F,c));if(!Pe)throw new nt(z.LINKER_NOT_FOUND,`${lt(this.configuration,F)} isn't supported by any available linker`);let qe=u.get(Pe);if(!qe)throw new Error("Assertion failed: The installer should have been registered");let re;try{re=await qe.installPackage(F,D,{holdFetchResult:pe})}finally{he.length===0?(V=D.releaseFs)==null||V.call(D):d.push(Promise.all(he).then(()=>{}).then(()=>{var se;(se=D.releaseFs)==null||se.call(D)}))}g.set(F.locatorHash,Pe),f.set(F.locatorHash,re.packageLocation),re.buildDirective&&re.buildDirective.length>0&&re.packageLocation&&h.set(F.locatorHash,{directives:re.buildDirective,buildLocations:[re.packageLocation]})}}let m=new Map;for(let X of this.accessibleLocators){let F=this.storedPackages.get(X);if(!F)throw new Error("Assertion failed: The locator should have been registered");let D=this.tryWorkspaceByLocator(F)!==null,he=async(pe,Ne)=>{let Pe=f.get(F.locatorHash);if(typeof Pe=="undefined")throw new Error(`Assertion failed: The package (${lt(this.configuration,F)}) should have been registered`);let qe=[];for(let re of F.dependencies.values()){let se=this.storedResolutions.get(re.descriptorHash);if(typeof se=="undefined")throw new Error(`Assertion failed: The resolution (${Xt(this.configuration,re)}, from ${lt(this.configuration,F)})should have been registered`);let be=this.storedPackages.get(se);if(typeof be=="undefined")throw new Error(`Assertion failed: The package (${se}, resolved from ${Xt(this.configuration,re)}) should have been registered`);let ae=this.tryWorkspaceByLocator(be)===null?g.get(se):null;if(typeof ae=="undefined")throw new Error(`Assertion failed: The package (${se}, resolved from ${Xt(this.configuration,re)}) should have been registered`);ae===pe||ae===null?f.get(be.locatorHash)!==null&&qe.push([re,be]):!D&&Pe!==null&&hu(m,se).push(Pe)}Pe!==null&&await Ne.attachInternalDependencies(F,qe)};if(D)for(let[pe,Ne]of u)pe.supportsPackage(F,c)&&await he(pe,Ne);else{let pe=g.get(F.locatorHash);if(!pe)throw new Error("Assertion failed: The linker should have been found");let Ne=u.get(pe);if(!Ne)throw new Error("Assertion failed: The installer should have been registered");await he(pe,Ne)}}for(let[X,F]of m){let D=this.storedPackages.get(X);if(!D)throw new Error("Assertion failed: The package should have been registered");let he=g.get(D.locatorHash);if(!he)throw new Error("Assertion failed: The linker should have been found");let pe=u.get(he);if(!pe)throw new Error("Assertion failed: The installer should have been registered");await pe.attachExternalDependents(D,F)}let I=new Map;for(let X of u.values()){let F=await X.finalizeInstall();for(let D of(W=F==null?void 0:F.records)!=null?W:[])h.set(D.locatorHash,{directives:D.buildDirective,buildLocations:D.buildLocations});typeof(F==null?void 0:F.customData)!="undefined"&&I.set(X.getCustomDataKey(),F.customData)}if(this.installersCustomData=I,await Promise.all(d),n===li.SkipBuild)return;let B=new Set(this.storedPackages.keys()),b=new Set(h.keys());for(let X of b)B.delete(X);let R=(0,t0.createHash)("sha512");R.update(process.versions.node),await this.configuration.triggerHook(X=>X.globalHashGeneration,this,X=>{R.update("\0"),R.update(X)});let H=R.digest("hex"),L=new Map,K=X=>{let F=L.get(X.locatorHash);if(typeof F!="undefined")return F;let D=this.storedPackages.get(X.locatorHash);if(typeof D=="undefined")throw new Error("Assertion failed: The package should have been registered");let he=(0,t0.createHash)("sha512");he.update(X.locatorHash),L.set(X.locatorHash,"");for(let pe of D.dependencies.values()){let Ne=this.storedResolutions.get(pe.descriptorHash);if(typeof Ne=="undefined")throw new Error(`Assertion failed: The resolution (${Xt(this.configuration,pe)}) should have been registered`);let Pe=this.storedPackages.get(Ne);if(typeof Pe=="undefined")throw new Error("Assertion failed: The package should have been registered");he.update(K(Pe))}return F=he.digest("hex"),L.set(X.locatorHash,F),F},J=(X,F)=>{let D=(0,t0.createHash)("sha512");D.update(H),D.update(K(X));for(let he of F)D.update(he);return D.digest("hex")},ne=new Map,q=!1;for(;b.size>0;){let X=b.size,F=[];for(let D of b){let he=this.storedPackages.get(D);if(!he)throw new Error("Assertion failed: The package should have been registered");let pe=!0;for(let qe of he.dependencies.values()){let re=this.storedResolutions.get(qe.descriptorHash);if(!re)throw new Error(`Assertion failed: The resolution (${Xt(this.configuration,qe)}) should have been registered`);if(b.has(re)){pe=!1;break}}if(!pe)continue;b.delete(D);let Ne=h.get(he.locatorHash);if(!Ne)throw new Error("Assertion failed: The build directive should have been registered");let Pe=J(he,Ne.buildLocations);if(this.storedBuildState.get(he.locatorHash)===Pe){ne.set(he.locatorHash,Pe);continue}q||(await this.persistInstallStateFile(),q=!0),this.storedBuildState.has(he.locatorHash)?r.reportInfo(z.MUST_REBUILD,`${lt(this.configuration,he)} must be rebuilt because its dependency tree changed`):r.reportInfo(z.MUST_BUILD,`${lt(this.configuration,he)} must be built because it never has been before or the last one failed`);for(let qe of Ne.buildLocations){if(!v.isAbsolute(qe))throw new Error(`Assertion failed: Expected the build location to be absolute (not ${qe})`);F.push((async()=>{for(let[re,se]of Ne.directives){let be=`# This file contains the result of Yarn building a package (${is(he)}) -`;switch(re){case Gn.SCRIPT:be+=`# Script name: ${se} -`;break;case Gn.SHELLCODE:be+=`# Script code: ${se} -`;break}let ae=null;if(!await T.mktempPromise(async De=>{let $=v.join(De,"build.log"),{stdout:G,stderr:Ce}=this.configuration.getSubprocessStreams($,{header:be,prefix:lt(this.configuration,he),report:r}),ee;try{switch(re){case Gn.SCRIPT:ee=await Uw(he,se,[],{cwd:qe,project:this,stdin:ae,stdout:G,stderr:Ce});break;case Gn.SHELLCODE:ee=await rD(he,se,[],{cwd:qe,project:this,stdin:ae,stdout:G,stderr:Ce});break}}catch(Oe){Ce.write(Oe.stack),ee=1}if(G.end(),Ce.end(),ee===0)return ne.set(he.locatorHash,Pe),!0;T.detachTemp(De);let Ue=`${lt(this.configuration,he)} couldn't be built successfully (exit code ${Ve(this.configuration,ee,Le.NUMBER)}, logs can be found here: ${Ve(this.configuration,$,Le.PATH)})`;return this.optionalBuilds.has(he.locatorHash)?(r.reportInfo(z.BUILD_FAILED,Ue),ne.set(he.locatorHash,Pe),!0):(r.reportError(z.BUILD_FAILED,Ue),!1)}))return}})())}}if(await Promise.all(F),X===b.size){let D=Array.from(b).map(he=>{let pe=this.storedPackages.get(he);if(!pe)throw new Error("Assertion failed: The package should have been registered");return lt(this.configuration,pe)}).join(", ");r.reportError(z.CYCLIC_DEPENDENCIES,`Some packages have circular dependencies that make their build order unsatisfiable - as a result they won't be built (affected packages are: ${D})`);break}}this.storedBuildState=ne}async install(e){var a,l;let r=this.configuration.get("nodeLinker");(a=fe.telemetry)==null||a.reportInstall(r),await e.report.startTimerPromise("Project validation",{skipIfEmpty:!0},async()=>{await this.configuration.triggerHook(c=>c.validateProject,this,{reportWarning:e.report.reportWarning.bind(e.report),reportError:e.report.reportError.bind(e.report)})});for(let c of this.configuration.packageExtensions.values())for(let[,u]of c)for(let g of u)g.status=ki.Inactive;let i=v.join(this.cwd,this.configuration.get("lockfileFilename")),n=null;if(e.immutable)try{n=await T.readFilePromise(i,"utf8")}catch(c){throw c.code==="ENOENT"?new nt(z.FROZEN_LOCKFILE_EXCEPTION,"The lockfile would have been created by this install, which is explicitly forbidden."):c}await e.report.startTimerPromise("Resolution step",async()=>{await this.resolveEverything(e)}),await e.report.startTimerPromise("Post-resolution validation",{skipIfEmpty:!0},async()=>{for(let[,c]of this.configuration.packageExtensions)for(let[,u]of c)for(let g of u)if(g.userProvided){let f=Ve(this.configuration,g,Le.PACKAGE_EXTENSION);switch(g.status){case ki.Inactive:e.report.reportWarning(z.UNUSED_PACKAGE_EXTENSION,`${f}: No matching package in the dependency tree; you may not need this rule anymore.`);break;case ki.Redundant:e.report.reportWarning(z.REDUNDANT_PACKAGE_EXTENSION,`${f}: This rule seems redundant when applied on the original package; the extension may have been applied upstream.`);break}}if(n!==null){let c=ul(n,this.generateLockfile());if(c!==n){let u=(0,v$.structuredPatch)(i,i,n,c);e.report.reportSeparator();for(let g of u.hunks){e.report.reportInfo(null,`@@ -${g.oldStart},${g.oldLines} +${g.newStart},${g.newLines} @@`);for(let f of g.lines)f.startsWith("+")?e.report.reportError(z.FROZEN_LOCKFILE_EXCEPTION,Ve(this.configuration,f,Le.ADDED)):f.startsWith("-")?e.report.reportError(z.FROZEN_LOCKFILE_EXCEPTION,Ve(this.configuration,f,Le.REMOVED)):e.report.reportInfo(null,Ve(this.configuration,f,"grey"))}throw e.report.reportSeparator(),new nt(z.FROZEN_LOCKFILE_EXCEPTION,"The lockfile would have been modified by this install, which is explicitly forbidden.")}}});for(let c of this.configuration.packageExtensions.values())for(let[,u]of c)for(let g of u)g.userProvided&&g.status===ki.Active&&((l=fe.telemetry)==null||l.reportPackageExtension(Uu(g,Le.PACKAGE_EXTENSION)));await e.report.startTimerPromise("Fetch step",async()=>{await this.fetchEverything(e),(typeof e.persistProject=="undefined"||e.persistProject)&&e.mode!==li.UpdateLockfile&&await this.cacheCleanup(e)});let s=e.immutable?[...new Set(this.configuration.get("immutablePatterns"))].sort():[],o=await Promise.all(s.map(async c=>Iy(c,{cwd:this.cwd})));(typeof e.persistProject=="undefined"||e.persistProject)&&await this.persist(),await e.report.startTimerPromise("Link step",async()=>{if(e.mode===li.UpdateLockfile){e.report.reportWarning(z.UPDATE_LOCKFILE_ONLY_SKIP_LINK,`Skipped due to ${Ve(this.configuration,"mode=update-lockfile",Le.CODE)}`);return}await this.linkEverything(e);let c=await Promise.all(s.map(async u=>Iy(u,{cwd:this.cwd})));for(let u=0;uc.afterAllInstalled,this,e)}generateLockfile(){let e=new Map;for(let[n,s]of this.storedResolutions.entries()){let o=e.get(s);o||e.set(s,o=new Set),o.add(n)}let r={};r.__metadata={version:k$,cacheKey:void 0};for(let[n,s]of e.entries()){let o=this.originalPackages.get(n);if(!o)continue;let a=[];for(let f of s){let h=this.storedDescriptors.get(f);if(!h)throw new Error("Assertion failed: The descriptor should have been registered");a.push(h)}let l=a.map(f=>In(f)).sort().join(", "),c=new Ze;c.version=o.linkType===gt.HARD?o.version:"0.0.0-use.local",c.languageName=o.languageName,c.dependencies=new Map(o.dependencies),c.peerDependencies=new Map(o.peerDependencies),c.dependenciesMeta=new Map(o.dependenciesMeta),c.peerDependenciesMeta=new Map(o.peerDependenciesMeta),c.bin=new Map(o.bin);let u,g=this.storedChecksums.get(o.locatorHash);if(typeof g!="undefined"){let f=g.indexOf("/");if(f===-1)throw new Error("Assertion failed: Expected the checksum to reference its cache key");let h=g.slice(0,f),p=g.slice(f+1);typeof r.__metadata.cacheKey=="undefined"&&(r.__metadata.cacheKey=h),h===r.__metadata.cacheKey?u=p:u=g}r[l]=_(P({},c.exportTo({},{compatibilityMode:!1})),{linkType:o.linkType.toLowerCase(),resolution:is(o),checksum:u,conditions:o.conditions||void 0})}return`${[`# This file is generated by running "yarn install" inside your project. -`,`# Manual changes might be lost - proceed with caution! -`].join("")} -`+Qa(r)}async persistLockfile(){let e=v.join(this.cwd,this.configuration.get("lockfileFilename")),r="";try{r=await T.readFilePromise(e,"utf8")}catch(s){}let i=this.generateLockfile(),n=ul(r,i);n!==r&&(await T.writeFilePromise(e,n),this.lockFileChecksum=D$(n),this.lockfileNeedsRefresh=!1)}async persistInstallStateFile(){let e=[];for(let o of Object.values(gF))e.push(...o);let r=(0,r0.default)(this,e),i=cF.default.serialize(r),n=zi(i);if(this.installStateChecksum===n)return;let s=this.configuration.get("installStatePath");await T.mkdirPromise(v.dirname(s),{recursive:!0}),await T.writeFilePromise(s,await aUe(i)),this.installStateChecksum=n}async restoreInstallState({restoreInstallersCustomData:e=!0,restoreResolutions:r=!0,restoreBuildState:i=!0}={}){let n=this.configuration.get("installStatePath");if(!T.existsSync(n)){r&&await this.applyLightResolution();return}let s=await AUe(await T.readFilePromise(n));this.installStateChecksum=zi(s);let o=cF.default.deserialize(s);e&&typeof o.installersCustomData!="undefined"&&(this.installersCustomData=o.installersCustomData),i&&Object.assign(this,(0,r0.default)(o,gF.restoreBuildState)),r&&(o.lockFileChecksum===this.lockFileChecksum?(Object.assign(this,(0,r0.default)(o,gF.restoreResolutions)),this.refreshWorkspaceDependencies()):await this.applyLightResolution())}async applyLightResolution(){await this.resolveEverything({lockfileOnly:!0,report:new ei}),await this.persistInstallStateFile()}async persist(){await this.persistLockfile();for(let e of this.workspacesByCwd.values())await e.persistManifest()}async cacheCleanup({cache:e,report:r}){let i=new Set([".gitignore"]);if(!Fb(e.cwd,this.cwd)||!await T.existsPromise(e.cwd))return;let n=this.configuration.get("preferAggregateCacheInfo"),s=0,o=null;for(let a of await T.readdirPromise(e.cwd)){if(i.has(a))continue;let l=v.resolve(e.cwd,a);e.markedFiles.has(l)||(o=a,e.immutable?r.reportError(z.IMMUTABLE_CACHE,`${Ve(this.configuration,v.basename(l),"magenta")} appears to be unused and would be marked for deletion, but the cache is immutable`):(n?s+=1:r.reportInfo(z.UNUSED_CACHE_ENTRY,`${Ve(this.configuration,v.basename(l),"magenta")} appears to be unused - removing`),await T.removePromise(l)))}n&&s!==0&&r.reportInfo(z.UNUSED_CACHE_ENTRY,s>1?`${s} packages appeared to be unused and were removed`:`${o} appeared to be unused and was removed`),e.markedFiles.clear()}};function lUe({project:t,allDescriptors:e,allResolutions:r,allPackages:i,accessibleLocators:n=new Set,optionalBuilds:s=new Set,volatileDescriptors:o=new Set,peerRequirements:a=new Map,report:l,tolerateMissingPackages:c=!1}){var ne;let u=new Map,g=[],f=new Map,h=new Map,p=new Map,d=new Map,m=new Map,I=new Map(t.workspaces.map(q=>{let A=q.anchoredLocator.locatorHash,V=i.get(A);if(typeof V=="undefined"){if(c)return[A,null];throw new Error("Assertion failed: The workspace should have an associated package")}return[A,ap(V)]})),B=()=>{let q=T.mktempSync(),A=v.join(q,"stacktrace.log"),V=String(g.length+1).length,W=g.map((X,F)=>`${`${F+1}.`.padStart(V," ")} ${is(X)} -`).join("");throw T.writeFileSync(A,W),T.detachTemp(q),new nt(z.STACK_OVERFLOW_RESOLUTION,`Encountered a stack overflow when resolving peer dependencies; cf ${M.fromPortablePath(A)}`)},b=q=>{let A=r.get(q.descriptorHash);if(typeof A=="undefined")throw new Error("Assertion failed: The resolution should have been registered");let V=i.get(A);if(!V)throw new Error("Assertion failed: The package could not be found");return V},R=(q,A,V,{top:W,optional:X})=>{g.length>1e3&&B(),g.push(A);let F=H(q,A,V,{top:W,optional:X});return g.pop(),F},H=(q,A,V,{top:W,optional:X})=>{if(n.has(A.locatorHash))return;n.add(A.locatorHash),X||s.delete(A.locatorHash);let F=i.get(A.locatorHash);if(!F){if(c)return;throw new Error(`Assertion failed: The package (${lt(t.configuration,A)}) should have been registered`)}let D=[],he=[],pe=[],Ne=[],Pe=[];for(let re of Array.from(F.dependencies.values())){if(F.peerDependencies.has(re.identHash)&&F.locatorHash!==W)continue;if(hA(re))throw new Error("Assertion failed: Virtual packages shouldn't be encountered when virtualizing a branch");o.delete(re.descriptorHash);let se=X;if(!se){let ee=F.dependenciesMeta.get(St(re));if(typeof ee!="undefined"){let Ue=ee.get(null);typeof Ue!="undefined"&&Ue.optional&&(se=!0)}}let be=r.get(re.descriptorHash);if(!be){if(c)continue;throw new Error(`Assertion failed: The resolution (${Xt(t.configuration,re)}) should have been registered`)}let ae=I.get(be)||i.get(be);if(!ae)throw new Error(`Assertion failed: The package (${be}, resolved from ${Xt(t.configuration,re)}) should have been registered`);if(ae.peerDependencies.size===0){R(re,ae,new Map,{top:W,optional:se});continue}let Ae=u.get(ae.locatorHash);typeof Ae=="number"&&Ae>=2&&B();let De,$,G=new Set,Ce;he.push(()=>{De=kx(re,A.locatorHash),$=Px(ae,A.locatorHash),F.dependencies.delete(re.identHash),F.dependencies.set(De.identHash,De),r.set(De.descriptorHash,$.locatorHash),e.set(De.descriptorHash,De),i.set($.locatorHash,$),D.push([ae,De,$])}),pe.push(()=>{var ee;Ce=new Map;for(let Ue of $.peerDependencies.values()){let Oe=F.dependencies.get(Ue.identHash);if(!Oe&&cp(A,Ue)&&(Oe=q),(!Oe||Oe.range==="missing:")&&$.dependencies.has(Ue.identHash)){$.peerDependencies.delete(Ue.identHash);continue}Oe||(Oe=Yt(Ue,"missing:")),$.dependencies.set(Oe.identHash,Oe),hA(Oe)&&Pl(p,Oe.descriptorHash).add($.locatorHash),f.set(Oe.identHash,Oe),Oe.range==="missing:"&&G.add(Oe.identHash),Ce.set(Ue.identHash,(ee=V.get(Ue.identHash))!=null?ee:$.locatorHash)}$.dependencies=new Map(gn($.dependencies,([Ue,Oe])=>St(Oe)))}),Ne.push(()=>{if(!i.has($.locatorHash))return;let ee=u.get(ae.locatorHash),Ue=typeof ee!="undefined"?ee+1:1;u.set(ae.locatorHash,Ue),R(De,$,Ce,{top:W,optional:se}),u.set(ae.locatorHash,Ue-1)}),Pe.push(()=>{let ee=F.dependencies.get(re.identHash);if(typeof ee=="undefined")throw new Error("Assertion failed: Expected the peer dependency to have been turned into a dependency");let Ue=r.get(ee.descriptorHash);if(typeof Ue=="undefined")throw new Error("Assertion failed: Expected the descriptor to be registered");if(Pl(m,Ue).add(A.locatorHash),!!i.has($.locatorHash)){for(let Oe of $.peerDependencies.values()){let vt=Ce.get(Oe.identHash);if(typeof vt=="undefined")throw new Error("Assertion failed: Expected the peer dependency ident to be registered");hu(pu(d,vt),St(Oe)).push($.locatorHash)}for(let Oe of G)$.dependencies.delete(Oe)}})}for(let re of[...he,...pe])re();let qe;do{qe=!0;for(let[re,se,be]of D){if(!i.has(be.locatorHash))continue;let ae=pu(h,re.locatorHash),Ae=zi(...[...be.dependencies.values()].map(Ce=>{let ee=Ce.range!=="missing:"?r.get(Ce.descriptorHash):"missing:";if(typeof ee=="undefined")throw new Error(`Assertion failed: Expected the resolution for ${Xt(t.configuration,Ce)} to have been registered`);return ee===W?`${ee} (top)`:ee}),se.identHash),De=ae.get(Ae);if(typeof De=="undefined"){ae.set(Ae,se);continue}if(De===se)continue;qe=!1,i.delete(be.locatorHash),e.delete(se.descriptorHash),r.delete(se.descriptorHash),n.delete(be.locatorHash);let $=p.get(se.descriptorHash)||[],G=[F.locatorHash,...$];p.delete(se.descriptorHash);for(let Ce of G){let ee=i.get(Ce);typeof ee!="undefined"&&ee.dependencies.set(se.identHash,De)}}}while(!qe);for(let re of[...Ne,...Pe])re()};for(let q of t.workspaces){let A=q.anchoredLocator;o.delete(q.anchoredDescriptor.descriptorHash),R(q.anchoredDescriptor,A,new Map,{top:A.locatorHash,optional:!1})}var L;(function(V){V[V.NotProvided=0]="NotProvided",V[V.NotCompatible=1]="NotCompatible"})(L||(L={}));let K=[];for(let[q,A]of m){let V=i.get(q);if(typeof V=="undefined")throw new Error("Assertion failed: Expected the root to be registered");let W=d.get(q);if(typeof W!="undefined")for(let X of A){let F=i.get(X);if(typeof F!="undefined")for(let[D,he]of W){let pe=En(D);if(F.peerDependencies.has(pe.identHash))continue;let Ne=`p${zi(X,D,q).slice(0,5)}`;a.set(Ne,{subject:X,requested:pe,rootRequester:q,allRequesters:he});let Pe=V.dependencies.get(pe.identHash);if(typeof Pe!="undefined"){let qe=b(Pe),re=(ne=qe.version)!=null?ne:"0.0.0",se=new Set;for(let ae of he){let Ae=i.get(ae);if(typeof Ae=="undefined")throw new Error("Assertion failed: Expected the link to be registered");let De=Ae.peerDependencies.get(pe.identHash);if(typeof De=="undefined")throw new Error("Assertion failed: Expected the ident to be registered");se.add(De.range)}[...se].every(ae=>{if(ae.startsWith(Yr.protocol)){if(!t.tryWorkspaceByLocator(qe))return!1;ae=ae.slice(Yr.protocol.length),(ae==="^"||ae==="~")&&(ae="*")}return lc(re,ae)})||K.push({type:1,subject:F,requested:pe,requester:V,version:re,hash:Ne,requirementCount:he.length})}else{let qe=V.peerDependenciesMeta.get(D);(qe==null?void 0:qe.optional)||K.push({type:0,subject:F,requested:pe,requester:V,hash:Ne})}}}}let J=[q=>Rx(q.subject),q=>St(q.requested),q=>`${q.type}`];for(let q of gn(K,J))switch(q.type){case 0:l==null||l.reportWarning(z.MISSING_PEER_DEPENDENCY,`${lt(t.configuration,q.subject)} doesn't provide ${Vr(t.configuration,q.requested)} (${Ve(t.configuration,q.hash,Le.CODE)}), requested by ${Vr(t.configuration,q.requester)}`);break;case 1:{let A=q.requirementCount>1?"and some of its descendants request":"requests";l==null||l.reportWarning(z.INCOMPATIBLE_PEER_DEPENDENCY,`${lt(t.configuration,q.subject)} provides ${Vr(t.configuration,q.requested)} (${Ve(t.configuration,q.hash,Le.CODE)}) with version ${fp(t.configuration,q.version)}, which doesn't satisfy what ${Vr(t.configuration,q.requester)} ${A}`)}break}K.length>0&&(l==null||l.reportWarning(z.UNNAMED,`Some peer dependencies are incorrectly met; run ${Ve(t.configuration,"yarn explain peer-requirements ",Le.CODE)} for details, where ${Ve(t.configuration,"",Le.CODE)} is the six-letter p-prefixed code`))}var Po;(function(l){l.VERSION="version",l.COMMAND_NAME="commandName",l.PLUGIN_NAME="pluginName",l.INSTALL_COUNT="installCount",l.PROJECT_COUNT="projectCount",l.WORKSPACE_COUNT="workspaceCount",l.DEPENDENCY_COUNT="dependencyCount",l.EXTENSION="packageExtension"})(Po||(Po={}));var Rd=class{constructor(e,r){this.values=new Map;this.hits=new Map;this.enumerators=new Map;this.configuration=e;let i=this.getRegistryPath();this.isNew=!T.existsSync(i),this.sendReport(r),this.startBuffer()}reportVersion(e){this.reportValue(Po.VERSION,e.replace(/-git\..*/,"-git"))}reportCommandName(e){this.reportValue(Po.COMMAND_NAME,e||"")}reportPluginName(e){this.reportValue(Po.PLUGIN_NAME,e)}reportProject(e){this.reportEnumerator(Po.PROJECT_COUNT,e)}reportInstall(e){this.reportHit(Po.INSTALL_COUNT,e)}reportPackageExtension(e){this.reportValue(Po.EXTENSION,e)}reportWorkspaceCount(e){this.reportValue(Po.WORKSPACE_COUNT,String(e))}reportDependencyCount(e){this.reportValue(Po.DEPENDENCY_COUNT,String(e))}reportValue(e,r){Pl(this.values,e).add(r)}reportEnumerator(e,r){Pl(this.enumerators,e).add(zi(r))}reportHit(e,r="*"){let i=pu(this.hits,e),n=na(i,r,()=>0);i.set(r,n+1)}getRegistryPath(){let e=this.configuration.get("globalFolder");return v.join(e,"telemetry.json")}sendReport(e){var u,g,f;let r=this.getRegistryPath(),i;try{i=T.readJsonSync(r)}catch{i={}}let n=Date.now(),s=this.configuration.get("telemetryInterval")*24*60*60*1e3,a=((u=i.lastUpdate)!=null?u:n+s+Math.floor(s*Math.random()))+s;if(a>n&&i.lastUpdate!=null)return;try{T.mkdirSync(v.dirname(r),{recursive:!0}),T.writeJsonSync(r,{lastUpdate:n})}catch{return}if(a>n||!i.blocks)return;let l=`https://browser-http-intake.logs.datadoghq.eu/v1/input/${e}?ddsource=yarn`,c=h=>iP(l,h,{configuration:this.configuration}).catch(()=>{});for(let[h,p]of Object.entries((g=i.blocks)!=null?g:{})){if(Object.keys(p).length===0)continue;let d=p;d.userId=h,d.reportType="primary";for(let B of Object.keys((f=d.enumerators)!=null?f:{}))d.enumerators[B]=d.enumerators[B].length;c(d);let m=new Map,I=20;for(let[B,b]of Object.entries(d.values))b.length>0&&m.set(B,b.slice(0,I));for(;m.size>0;){let B={};B.userId=h,B.reportType="secondary",B.metrics={};for(let[b,R]of m)B.metrics[b]=R.shift(),R.length===0&&m.delete(b);c(B)}}}applyChanges(){var o,a,l,c,u,g,f,h,p;let e=this.getRegistryPath(),r;try{r=T.readJsonSync(e)}catch{r={}}let i=(o=this.configuration.get("telemetryUserId"))!=null?o:"*",n=r.blocks=(a=r.blocks)!=null?a:{},s=n[i]=(l=n[i])!=null?l:{};for(let d of this.hits.keys()){let m=s.hits=(c=s.hits)!=null?c:{},I=m[d]=(u=m[d])!=null?u:{};for(let[B,b]of this.hits.get(d))I[B]=((g=I[B])!=null?g:0)+b}for(let d of["values","enumerators"])for(let m of this[d].keys()){let I=s[d]=(f=s[d])!=null?f:{};I[m]=[...new Set([...(h=I[m])!=null?h:[],...(p=this[d].get(m))!=null?p:[]])]}T.mkdirSync(v.dirname(e),{recursive:!0}),T.writeJsonSync(e,r)}startBuffer(){process.on("exit",()=>{try{this.applyChanges()}catch{}})}};var fF=ie(require("child_process")),R$=ie(ml());var hF=ie(require("fs"));var Yg=new Map([["constraints",[["constraints","query"],["constraints","source"],["constraints"]]],["exec",[]],["interactive-tools",[["search"],["upgrade-interactive"]]],["stage",[["stage"]]],["typescript",[]],["version",[["version","apply"],["version","check"],["version"]]],["workspace-tools",[["workspaces","focus"],["workspaces","foreach"]]]]);function cUe(t){let e=M.fromPortablePath(t);process.on("SIGINT",()=>{}),e?(0,fF.execFileSync)(process.execPath,[e,...process.argv.slice(2)],{stdio:"inherit",env:_(P({},process.env),{YARN_IGNORE_PATH:"1",YARN_IGNORE_CWD:"1"})}):(0,fF.execFileSync)(e,process.argv.slice(2),{stdio:"inherit",env:_(P({},process.env),{YARN_IGNORE_PATH:"1",YARN_IGNORE_CWD:"1"})})}async function i0({binaryVersion:t,pluginConfiguration:e}){async function r(){let n=new oo({binaryLabel:"Yarn Package Manager",binaryName:"yarn",binaryVersion:t});try{await i(n)}catch(s){process.stdout.write(n.error(s)),process.exitCode=1}}async function i(n){var p,d,m,I,B;let s=process.versions.node,o=">=12 <14 || 14.2 - 14.9 || >14.10.0";if(process.env.YARN_IGNORE_NODE!=="1"&&!qt.satisfiesWithPrereleases(s,o))throw new me(`This tool requires a Node version compatible with ${o} (got ${s}). Upgrade Node, or set \`YARN_IGNORE_NODE=1\` in your environment.`);let a=await fe.find(M.toPortablePath(process.cwd()),e,{usePath:!0,strict:!1}),l=a.get("yarnPath"),c=a.get("ignorePath"),u=a.get("ignoreCwd"),g=M.toPortablePath(M.resolve(process.argv[1])),f=b=>T.readFilePromise(b).catch(()=>Buffer.of());if(!c&&!u&&await(async()=>l===g||Buffer.compare(...await Promise.all([f(l),f(g)]))===0)()){process.env.YARN_IGNORE_PATH="1",process.env.YARN_IGNORE_CWD="1",await i(n);return}else if(l!==null&&!c)if(!T.existsSync(l))process.stdout.write(n.error(new Error(`The "yarn-path" option has been set (in ${a.sources.get("yarnPath")}), but the specified location doesn't exist (${l}).`))),process.exitCode=1;else try{cUe(l)}catch(b){process.exitCode=b.code||1}else{c&&delete process.env.YARN_IGNORE_PATH,a.get("enableTelemetry")&&!R$.isCI&&process.stdout.isTTY&&(fe.telemetry=new Rd(a,"puba9cdc10ec5790a2cf4969dd413a47270")),(p=fe.telemetry)==null||p.reportVersion(t);for(let[L,K]of a.plugins.entries()){Yg.has((m=(d=L.match(/^@yarnpkg\/plugin-(.*)$/))==null?void 0:d[1])!=null?m:"")&&((I=fe.telemetry)==null||I.reportPluginName(L));for(let J of K.commands||[])n.register(J)}let R=n.process(process.argv.slice(2));R.help||(B=fe.telemetry)==null||B.reportCommandName(R.path.join(" "));let H=R.cwd;if(typeof H!="undefined"&&!u){let L=(0,hF.realpathSync)(process.cwd()),K=(0,hF.realpathSync)(H);if(L!==K){process.chdir(H),await r();return}}await n.runExit(R,{cwd:M.toPortablePath(process.cwd()),plugins:e,quiet:!1,stdin:process.stdin,stdout:process.stdout,stderr:process.stderr})}}return r().catch(n=>{process.stdout.write(n.stack||n.message),process.exitCode=1}).finally(()=>T.rmtempPromise())}function F$(t){t.Command.Path=(...e)=>r=>{r.paths=r.paths||[],r.paths.push(e)};for(let e of["Array","Boolean","String","Proxy","Rest","Counter"])t.Command[e]=(...r)=>(i,n)=>{let s=t.Option[e](...r);Object.defineProperty(i,`__${n}`,{configurable:!1,enumerable:!0,get(){return s},set(o){this[n]=o}})};return t}var iC={};it(iC,{BaseCommand:()=>Be,WorkspaceRequiredError:()=>rt,getDynamicLibs:()=>Wie,getPluginConfiguration:()=>F0,main:()=>i0,openWorkspace:()=>rf,pluginCommands:()=>Yg});var Be=class extends ye{constructor(){super(...arguments);this.cwd=Y.String("--cwd",{hidden:!0})}};var rt=class extends me{constructor(e,r){let i=v.relative(e,r),n=v.join(e,Ze.fileName);super(`This command can only be run from within a workspace of your project (${i} isn't a workspace of ${n}).`)}};var dJe=ie(Or());Ss();var CJe=ie(gN()),Wie=()=>new Map([["@yarnpkg/cli",iC],["@yarnpkg/core",Fd],["@yarnpkg/fslib",ch],["@yarnpkg/libzip",Fp],["@yarnpkg/parsers",Hp],["@yarnpkg/shell",jp],["clipanion",vh],["semver",dJe],["typanion",lu],["yup",CJe]]);async function rf(t,e){let{project:r,workspace:i}=await Ke.find(t,e);if(!i)throw new rt(r.cwd,e);return i}var x_e=ie(Or());Ss();var k_e=ie(gN());var hL={};it(hL,{dedupeUtils:()=>zN,default:()=>Qze,suggestUtils:()=>LN});var WAe=ie(ml());var roe=ie(aC());Ss();var LN={};it(LN,{Modifier:()=>Lo,Strategy:()=>Fr,Target:()=>vr,WorkspaceModifier:()=>af,applyModifier:()=>Zse,extractDescriptorFromPath:()=>ON,extractRangeModifier:()=>Xse,fetchDescriptorFrom:()=>MN,findProjectDescriptors:()=>toe,getModifier:()=>AC,getSuggestedDescriptors:()=>lC,makeWorkspaceDescriptor:()=>eoe,toWorkspaceModifier:()=>$se});var TN=ie(Or()),L3e="workspace:",vr;(function(i){i.REGULAR="dependencies",i.DEVELOPMENT="devDependencies",i.PEER="peerDependencies"})(vr||(vr={}));var Lo;(function(i){i.CARET="^",i.TILDE="~",i.EXACT=""})(Lo||(Lo={}));var af;(function(i){i.CARET="^",i.TILDE="~",i.EXACT="*"})(af||(af={}));var Fr;(function(s){s.KEEP="keep",s.REUSE="reuse",s.PROJECT="project",s.LATEST="latest",s.CACHE="cache"})(Fr||(Fr={}));function AC(t,e){return t.exact?Lo.EXACT:t.caret?Lo.CARET:t.tilde?Lo.TILDE:e.configuration.get("defaultSemverRangePrefix")}var T3e=/^([\^~]?)[0-9]+(?:\.[0-9]+){0,2}(?:-\S+)?$/;function Xse(t,{project:e}){let r=t.match(T3e);return r?r[1]:e.configuration.get("defaultSemverRangePrefix")}function Zse(t,e){let{protocol:r,source:i,params:n,selector:s}=S.parseRange(t.range);return TN.default.valid(s)&&(s=`${e}${t.range}`),S.makeDescriptor(t,S.makeRange({protocol:r,source:i,params:n,selector:s}))}function $se(t){switch(t){case Lo.CARET:return af.CARET;case Lo.TILDE:return af.TILDE;case Lo.EXACT:return af.EXACT;default:throw new Error(`Assertion failed: Unknown modifier: "${t}"`)}}function eoe(t,e){return S.makeDescriptor(t.anchoredDescriptor,`${L3e}${$se(e)}`)}async function toe(t,{project:e,target:r}){let i=new Map,n=s=>{let o=i.get(s.descriptorHash);return o||i.set(s.descriptorHash,o={descriptor:s,locators:[]}),o};for(let s of e.workspaces)if(r===vr.PEER){let o=s.manifest.peerDependencies.get(t.identHash);o!==void 0&&n(o).locators.push(s.locator)}else{let o=s.manifest.dependencies.get(t.identHash),a=s.manifest.devDependencies.get(t.identHash);r===vr.DEVELOPMENT?a!==void 0?n(a).locators.push(s.locator):o!==void 0&&n(o).locators.push(s.locator):o!==void 0?n(o).locators.push(s.locator):a!==void 0&&n(a).locators.push(s.locator)}return i}async function ON(t,{cwd:e,workspace:r}){return await M3e(async i=>{v.isAbsolute(t)||(t=v.relative(r.cwd,v.resolve(e,t)),t.match(/^\.{0,2}\//)||(t=`./${t}`));let{project:n}=r,s=await MN(S.makeIdent(null,"archive"),t,{project:r.project,cache:i,workspace:r});if(!s)throw new Error("Assertion failed: The descriptor should have been found");let o=new ei,a=n.configuration.makeResolver(),l=n.configuration.makeFetcher(),c={checksums:n.storedChecksums,project:n,cache:i,fetcher:l,report:o,resolver:a},u=a.bindDescriptor(s,r.anchoredLocator,c),g=S.convertDescriptorToLocator(u),f=await l.fetch(g,c),h=await Ze.find(f.prefixPath,{baseFs:f.packageFs});if(!h.name)throw new Error("Target path doesn't have a name");return S.makeDescriptor(h.name,t)})}async function lC(t,{project:e,workspace:r,cache:i,target:n,modifier:s,strategies:o,maxResults:a=Infinity}){if(!(a>=0))throw new Error(`Invalid maxResults (${a})`);if(t.range!=="unknown")return{suggestions:[{descriptor:t,name:`Use ${S.prettyDescriptor(e.configuration,t)}`,reason:"(unambiguous explicit request)"}],rejections:[]};let l=typeof r!="undefined"&&r!==null&&r.manifest[n].get(t.identHash)||null,c=[],u=[],g=async f=>{try{await f()}catch(h){u.push(h)}};for(let f of o){if(c.length>=a)break;switch(f){case Fr.KEEP:await g(async()=>{l&&c.push({descriptor:l,name:`Keep ${S.prettyDescriptor(e.configuration,l)}`,reason:"(no changes)"})});break;case Fr.REUSE:await g(async()=>{for(let{descriptor:h,locators:p}of(await toe(t,{project:e,target:n})).values()){if(p.length===1&&p[0].locatorHash===r.anchoredLocator.locatorHash&&o.includes(Fr.KEEP))continue;let d=`(originally used by ${S.prettyLocator(e.configuration,p[0])}`;d+=p.length>1?` and ${p.length-1} other${p.length>2?"s":""})`:")",c.push({descriptor:h,name:`Reuse ${S.prettyDescriptor(e.configuration,h)}`,reason:d})}});break;case Fr.CACHE:await g(async()=>{for(let h of e.storedDescriptors.values())h.identHash===t.identHash&&c.push({descriptor:h,name:`Reuse ${S.prettyDescriptor(e.configuration,h)}`,reason:"(already used somewhere in the lockfile)"})});break;case Fr.PROJECT:await g(async()=>{if(r.manifest.name!==null&&t.identHash===r.manifest.name.identHash)return;let h=e.tryWorkspaceByIdent(t);if(h===null)return;let p=eoe(h,s);c.push({descriptor:p,name:`Attach ${S.prettyDescriptor(e.configuration,p)}`,reason:`(local workspace at ${ue.pretty(e.configuration,h.relativeCwd,ue.Type.PATH)})`})});break;case Fr.LATEST:await g(async()=>{if(t.range!=="unknown")c.push({descriptor:t,name:`Use ${S.prettyRange(e.configuration,t.range)}`,reason:"(explicit range requested)"});else if(n===vr.PEER)c.push({descriptor:S.makeDescriptor(t,"*"),name:"Use *",reason:"(catch-all peer dependency pattern)"});else if(!e.configuration.get("enableNetwork"))c.push({descriptor:null,name:"Resolve from latest",reason:ue.pretty(e.configuration,"(unavailable because enableNetwork is toggled off)","grey")});else{let h=await MN(t,"latest",{project:e,cache:i,workspace:r,preserveModifier:!1});h&&(h=Zse(h,s),c.push({descriptor:h,name:`Use ${S.prettyDescriptor(e.configuration,h)}`,reason:"(resolved from latest)"}))}});break}}return{suggestions:c.slice(0,a),rejections:u.slice(0,a)}}async function MN(t,e,{project:r,cache:i,workspace:n,preserveModifier:s=!0}){let o=S.makeDescriptor(t,e),a=new ei,l=r.configuration.makeFetcher(),c=r.configuration.makeResolver(),u={project:r,fetcher:l,cache:i,checksums:r.storedChecksums,report:a,cacheOptions:{skipIntegrityCheck:!0},skipIntegrityCheck:!0},g=_(P({},u),{resolver:c,fetchOptions:u}),f=c.bindDescriptor(o,n.anchoredLocator,g),h=await c.getCandidates(f,new Map,g);if(h.length===0)return null;let p=h[0],{protocol:d,source:m,params:I,selector:B}=S.parseRange(S.convertToManifestRange(p.reference));if(d===r.configuration.get("defaultProtocol")&&(d=null),TN.default.valid(B)&&s!==!1){let b=typeof s=="string"?s:o.range;B=Xse(b,{project:r})+B}return S.makeDescriptor(p,S.makeRange({protocol:d,source:m,params:I,selector:B}))}async function M3e(t){return await T.mktempPromise(async e=>{let r=fe.create(e);return r.useWithSource(e,{enableMirror:!1,compressionLevel:0},e,{overwrite:!0}),await t(new Qt(e,{configuration:r,check:!1,immutable:!1}))})}var cC=class extends Be{constructor(){super(...arguments);this.json=Y.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.exact=Y.Boolean("-E,--exact",!1,{description:"Don't use any semver modifier on the resolved range"});this.tilde=Y.Boolean("-T,--tilde",!1,{description:"Use the `~` semver modifier on the resolved range"});this.caret=Y.Boolean("-C,--caret",!1,{description:"Use the `^` semver modifier on the resolved range"});this.dev=Y.Boolean("-D,--dev",!1,{description:"Add a package as a dev dependency"});this.peer=Y.Boolean("-P,--peer",!1,{description:"Add a package as a peer dependency"});this.optional=Y.Boolean("-O,--optional",!1,{description:"Add / upgrade a package to an optional regular / peer dependency"});this.preferDev=Y.Boolean("--prefer-dev",!1,{description:"Add / upgrade a package to a dev dependency"});this.interactive=Y.Boolean("-i,--interactive",{description:"Reuse the specified package from other workspaces in the project"});this.cached=Y.Boolean("--cached",!1,{description:"Reuse the highest version already used somewhere within the project"});this.mode=Y.String("--mode",{description:"Change what artifacts installs generate",validator:Yi(li)});this.silent=Y.Boolean("--silent",{hidden:!0});this.packages=Y.Rest()}async execute(){var d;let e=await fe.find(this.context.cwd,this.context.plugins),{project:r,workspace:i}=await Ke.find(e,this.context.cwd),n=await Qt.find(e);if(!i)throw new rt(r.cwd,this.context.cwd);await r.restoreInstallState({restoreResolutions:!1});let s=(d=this.interactive)!=null?d:e.get("preferInteractive"),o=AC(this,r),a=[...s?[Fr.REUSE]:[],Fr.PROJECT,...this.cached?[Fr.CACHE]:[],Fr.LATEST],l=s?Infinity:1,c=await Promise.all(this.packages.map(async m=>{let I=m.match(/^\.{0,2}\//)?await ON(m,{cwd:this.context.cwd,workspace:i}):S.parseDescriptor(m),B=O3e(i,I,{dev:this.dev,peer:this.peer,preferDev:this.preferDev,optional:this.optional}),b=await lC(I,{project:r,workspace:i,cache:n,target:B,modifier:o,strategies:a,maxResults:l});return[I,b,B]})),u=await Fa.start({configuration:e,stdout:this.context.stdout,suggestInstall:!1},async m=>{for(let[I,{suggestions:B,rejections:b}]of c)if(B.filter(H=>H.descriptor!==null).length===0){let[H]=b;if(typeof H=="undefined")throw new Error("Assertion failed: Expected an error to have been set");r.configuration.get("enableNetwork")?m.reportError(z.CANT_SUGGEST_RESOLUTIONS,`${S.prettyDescriptor(e,I)} can't be resolved to a satisfying range`):m.reportError(z.CANT_SUGGEST_RESOLUTIONS,`${S.prettyDescriptor(e,I)} can't be resolved to a satisfying range (note: network resolution has been disabled)`),m.reportSeparator(),m.reportExceptionOnce(H)}});if(u.hasErrors())return u.exitCode();let g=!1,f=[],h=[];for(let[,{suggestions:m},I]of c){let B,b=m.filter(K=>K.descriptor!==null),R=b[0].descriptor,H=b.every(K=>S.areDescriptorsEqual(K.descriptor,R));b.length===1||H?B=R:(g=!0,{answer:B}=await(0,roe.prompt)({type:"select",name:"answer",message:"Which range do you want to use?",choices:m.map(({descriptor:K,name:J,reason:ne})=>K?{name:J,hint:ne,descriptor:K}:{name:J,hint:ne,disabled:!0}),onCancel:()=>process.exit(130),result(K){return this.find(K,"descriptor")},stdin:this.context.stdin,stdout:this.context.stdout}));let L=i.manifest[I].get(B.identHash);(typeof L=="undefined"||L.descriptorHash!==B.descriptorHash)&&(i.manifest[I].set(B.identHash,B),this.optional&&(I==="dependencies"?i.manifest.ensureDependencyMeta(_(P({},B),{range:"unknown"})).optional=!0:I==="peerDependencies"&&(i.manifest.ensurePeerDependencyMeta(_(P({},B),{range:"unknown"})).optional=!0)),typeof L=="undefined"?f.push([i,I,B,a]):h.push([i,I,L,B]))}return await e.triggerMultipleHooks(m=>m.afterWorkspaceDependencyAddition,f),await e.triggerMultipleHooks(m=>m.afterWorkspaceDependencyReplacement,h),g&&this.context.stdout.write(` -`),(await Fe.start({configuration:e,json:this.json,stdout:this.context.stdout,includeLogs:!this.context.quiet},async m=>{await r.install({cache:n,report:m,mode:this.mode})})).exitCode()}};cC.paths=[["add"]],cC.usage=ye.Usage({description:"add dependencies to the project",details:"\n This command adds a package to the package.json for the nearest workspace.\n\n - If it didn't exist before, the package will by default be added to the regular `dependencies` field, but this behavior can be overriden thanks to the `-D,--dev` flag (which will cause the dependency to be added to the `devDependencies` field instead) and the `-P,--peer` flag (which will do the same but for `peerDependencies`).\n\n - If the package was already listed in your dependencies, it will by default be upgraded whether it's part of your `dependencies` or `devDependencies` (it won't ever update `peerDependencies`, though).\n\n - If set, the `--prefer-dev` flag will operate as a more flexible `-D,--dev` in that it will add the package to your `devDependencies` if it isn't already listed in either `dependencies` or `devDependencies`, but it will also happily upgrade your `dependencies` if that's what you already use (whereas `-D,--dev` would throw an exception).\n\n - If set, the `-O,--optional` flag will add the package to the `optionalDependencies` field and, in combination with the `-P,--peer` flag, it will add the package as an optional peer dependency. If the package was already listed in your `dependencies`, it will be upgraded to `optionalDependencies`. If the package was already listed in your `peerDependencies`, in combination with the `-P,--peer` flag, it will be upgraded to an optional peer dependency: `\"peerDependenciesMeta\": { \"\": { \"optional\": true } }`\n\n - If the added package doesn't specify a range at all its `latest` tag will be resolved and the returned version will be used to generate a new semver range (using the `^` modifier by default unless otherwise configured via the `defaultSemverRangePrefix` configuration, or the `~` modifier if `-T,--tilde` is specified, or no modifier at all if `-E,--exact` is specified). Two exceptions to this rule: the first one is that if the package is a workspace then its local version will be used, and the second one is that if you use `-P,--peer` the default range will be `*` and won't be resolved at all.\n\n - If the added package specifies a range (such as `^1.0.0`, `latest`, or `rc`), Yarn will add this range as-is in the resulting package.json entry (in particular, tags such as `rc` will be encoded as-is rather than being converted into a semver range).\n\n If the `--cached` option is used, Yarn will preferably reuse the highest version already used somewhere within the project, even if through a transitive dependency.\n\n If the `-i,--interactive` option is used (or if the `preferInteractive` settings is toggled on) the command will first try to check whether other workspaces in the project use the specified package and, if so, will offer to reuse them.\n\n If the `--mode=` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the later will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n\n For a compilation of all the supported protocols, please consult the dedicated page from our website: https://yarnpkg.com/features/protocols.\n ",examples:[["Add a regular package to the current workspace","$0 add lodash"],["Add a specific version for a package to the current workspace","$0 add lodash@1.2.3"],["Add a package from a GitHub repository (the master branch) to the current workspace using a URL","$0 add lodash@https://github.com/lodash/lodash"],["Add a package from a GitHub repository (the master branch) to the current workspace using the GitHub protocol","$0 add lodash@github:lodash/lodash"],["Add a package from a GitHub repository (the master branch) to the current workspace using the GitHub protocol (shorthand)","$0 add lodash@lodash/lodash"],["Add a package from a specific branch of a GitHub repository to the current workspace using the GitHub protocol (shorthand)","$0 add lodash-es@lodash/lodash#es"]]});var ioe=cC;function O3e(t,e,{dev:r,peer:i,preferDev:n,optional:s}){let o=t.manifest[vr.REGULAR].has(e.identHash),a=t.manifest[vr.DEVELOPMENT].has(e.identHash),l=t.manifest[vr.PEER].has(e.identHash);if((r||i)&&o)throw new me(`Package "${S.prettyIdent(t.project.configuration,e)}" is already listed as a regular dependency - remove the -D,-P flags or remove it from your dependencies first`);if(!r&&!i&&l)throw new me(`Package "${S.prettyIdent(t.project.configuration,e)}" is already listed as a peer dependency - use either of -D or -P, or remove it from your peer dependencies first`);if(s&&a)throw new me(`Package "${S.prettyIdent(t.project.configuration,e)}" is already listed as a dev dependency - remove the -O flag or remove it from your dev dependencies first`);if(s&&!i&&l)throw new me(`Package "${S.prettyIdent(t.project.configuration,e)}" is already listed as a peer dependency - remove the -O flag or add the -P flag or remove it from your peer dependencies first`);if((r||n)&&s)throw new me(`Package "${S.prettyIdent(t.project.configuration,e)}" cannot simultaneously be a dev dependency and an optional dependency`);return i?vr.PEER:r||n?vr.DEVELOPMENT:o?vr.REGULAR:a?vr.DEVELOPMENT:vr.REGULAR}var uC=class extends Be{constructor(){super(...arguments);this.verbose=Y.Boolean("-v,--verbose",!1,{description:"Print both the binary name and the locator of the package that provides the binary"});this.json=Y.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.name=Y.String({required:!1})}async execute(){let e=await fe.find(this.context.cwd,this.context.plugins),{project:r,locator:i}=await Ke.find(e,this.context.cwd);if(await r.restoreInstallState(),this.name){let o=(await Kt.getPackageAccessibleBinaries(i,{project:r})).get(this.name);if(!o)throw new me(`Couldn't find a binary named "${this.name}" for package "${S.prettyLocator(e,i)}"`);let[,a]=o;return this.context.stdout.write(`${a} -`),0}return(await Fe.start({configuration:e,json:this.json,stdout:this.context.stdout},async s=>{let o=await Kt.getPackageAccessibleBinaries(i,{project:r}),l=Array.from(o.keys()).reduce((c,u)=>Math.max(c,u.length),0);for(let[c,[u,g]]of o)s.reportJson({name:c,source:S.stringifyIdent(u),path:g});if(this.verbose)for(let[c,[u]]of o)s.reportInfo(null,`${c.padEnd(l," ")} ${S.prettyLocator(e,u)}`);else for(let c of o.keys())s.reportInfo(null,c)})).exitCode()}};uC.paths=[["bin"]],uC.usage=ye.Usage({description:"get the path to a binary script",details:` - When used without arguments, this command will print the list of all the binaries available in the current workspace. Adding the \`-v,--verbose\` flag will cause the output to contain both the binary name and the locator of the package that provides the binary. - - When an argument is specified, this command will just print the path to the binary on the standard output and exit. Note that the reported path may be stored within a zip archive. - `,examples:[["List all the available binaries","$0 bin"],["Print the path to a specific binary","$0 bin eslint"]]});var noe=uC;var gC=class extends Be{constructor(){super(...arguments);this.mirror=Y.Boolean("--mirror",!1,{description:"Remove the global cache files instead of the local cache files"});this.all=Y.Boolean("--all",!1,{description:"Remove both the global cache files and the local cache files of the current project"})}async execute(){let e=await fe.find(this.context.cwd,this.context.plugins),r=await Qt.find(e);return(await Fe.start({configuration:e,stdout:this.context.stdout},async()=>{let n=(this.all||this.mirror)&&r.mirrorCwd!==null,s=!this.mirror;n&&(await T.removePromise(r.mirrorCwd),await e.triggerHook(o=>o.cleanGlobalArtifacts,e)),s&&await T.removePromise(r.cwd)})).exitCode()}};gC.paths=[["cache","clean"],["cache","clear"]],gC.usage=ye.Usage({description:"remove the shared cache files",details:` - This command will remove all the files from the cache. - `,examples:[["Remove all the local archives","$0 cache clean"],["Remove all the archives stored in the ~/.yarn directory","$0 cache clean --mirror"]]});var soe=gC;var ooe=ie(p0()),KN=ie(require("util")),fC=class extends Be{constructor(){super(...arguments);this.json=Y.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.unsafe=Y.Boolean("--no-redacted",!1,{description:"Don't redact secrets (such as tokens) from the output"});this.name=Y.String()}async execute(){let e=await fe.find(this.context.cwd,this.context.plugins),r=this.name.replace(/[.[].*$/,""),i=this.name.replace(/^[^.[]*/,"");if(typeof e.settings.get(r)=="undefined")throw new me(`Couldn't find a configuration settings named "${r}"`);let s=e.getSpecial(r,{hideSecrets:!this.unsafe,getNativePaths:!0}),o=de.convertMapsToIndexableObjects(s),a=i?(0,ooe.default)(o,i):o,l=await Fe.start({configuration:e,includeFooter:!1,json:this.json,stdout:this.context.stdout},async c=>{c.reportJson(a)});if(!this.json){if(typeof a=="string")return this.context.stdout.write(`${a} -`),l.exitCode();KN.inspect.styles.name="cyan",this.context.stdout.write(`${(0,KN.inspect)(a,{depth:Infinity,colors:e.get("enableColors"),compact:!1})} -`)}return l.exitCode()}};fC.paths=[["config","get"]],fC.usage=ye.Usage({description:"read a configuration settings",details:` - This command will print a configuration setting. - - Secrets (such as tokens) will be redacted from the output by default. If this behavior isn't desired, set the \`--no-redacted\` to get the untransformed value. - `,examples:[["Print a simple configuration setting","yarn config get yarnPath"],["Print a complex configuration setting","yarn config get packageExtensions"],["Print a nested field from the configuration",`yarn config get 'npmScopes["my-company"].npmRegistryServer'`],["Print a token from the configuration","yarn config get npmAuthToken --no-redacted"],["Print a configuration setting as JSON","yarn config get packageExtensions --json"]]});var aoe=fC;var Eae=ie(qN()),Iae=ie(p0()),yae=ie(mae()),JN=ie(require("util")),pC=class extends Be{constructor(){super(...arguments);this.json=Y.Boolean("--json",!1,{description:"Set complex configuration settings to JSON values"});this.home=Y.Boolean("-H,--home",!1,{description:"Update the home configuration instead of the project configuration"});this.name=Y.String();this.value=Y.String()}async execute(){let e=await fe.find(this.context.cwd,this.context.plugins),r=()=>{if(!e.projectCwd)throw new me("This command must be run from within a project folder");return e.projectCwd},i=this.name.replace(/[.[].*$/,""),n=this.name.replace(/^[^.[]*\.?/,"");if(typeof e.settings.get(i)=="undefined")throw new me(`Couldn't find a configuration settings named "${i}"`);if(i==="enableStrictSettings")throw new me("This setting only affects the file it's in, and thus cannot be set from the CLI");let o=this.json?JSON.parse(this.value):this.value;await(this.home?h=>fe.updateHomeConfiguration(h):h=>fe.updateConfiguration(r(),h))(h=>{if(n){let p=(0,Eae.default)(h);return(0,yae.default)(p,this.name,o),p}else return _(P({},h),{[i]:o})});let c=(await fe.find(this.context.cwd,this.context.plugins)).getSpecial(i,{hideSecrets:!0,getNativePaths:!0}),u=de.convertMapsToIndexableObjects(c),g=n?(0,Iae.default)(u,n):u;return(await Fe.start({configuration:e,includeFooter:!1,stdout:this.context.stdout},async h=>{JN.inspect.styles.name="cyan",h.reportInfo(z.UNNAMED,`Successfully set ${this.name} to ${(0,JN.inspect)(g,{depth:Infinity,colors:e.get("enableColors"),compact:!1})}`)})).exitCode()}};pC.paths=[["config","set"]],pC.usage=ye.Usage({description:"change a configuration settings",details:` - This command will set a configuration setting. - - When used without the \`--json\` flag, it can only set a simple configuration setting (a string, a number, or a boolean). - - When used with the \`--json\` flag, it can set both simple and complex configuration settings, including Arrays and Objects. - `,examples:[["Set a simple configuration setting (a string, a number, or a boolean)","yarn config set initScope myScope"],["Set a simple configuration setting (a string, a number, or a boolean) using the `--json` flag",'yarn config set initScope --json \\"myScope\\"'],["Set a complex configuration setting (an Array) using the `--json` flag",`yarn config set unsafeHttpWhitelist --json '["*.example.com", "example.com"]'`],["Set a complex configuration setting (an Object) using the `--json` flag",`yarn config set packageExtensions --json '{ "@babel/parser@*": { "dependencies": { "@babel/types": "*" } } }'`],["Set a nested configuration setting",'yarn config set npmScopes.company.npmRegistryServer "https://npm.example.com"'],["Set a nested configuration setting using indexed access for non-simple keys",`yarn config set 'npmRegistries["//npm.example.com"].npmAuthToken' "ffffffff-ffff-ffff-ffff-ffffffffffff"`]]});var wae=pC;var Dae=ie(qN()),Rae=ie(Ld()),Fae=ie(Pae()),dC=class extends Be{constructor(){super(...arguments);this.home=Y.Boolean("-H,--home",!1,{description:"Update the home configuration instead of the project configuration"});this.name=Y.String()}async execute(){let e=await fe.find(this.context.cwd,this.context.plugins),r=()=>{if(!e.projectCwd)throw new me("This command must be run from within a project folder");return e.projectCwd},i=this.name.replace(/[.[].*$/,""),n=this.name.replace(/^[^.[]*\.?/,"");if(typeof e.settings.get(i)=="undefined")throw new me(`Couldn't find a configuration settings named "${i}"`);let o=this.home?l=>fe.updateHomeConfiguration(l):l=>fe.updateConfiguration(r(),l);return(await Fe.start({configuration:e,includeFooter:!1,stdout:this.context.stdout},async l=>{let c=!1;await o(u=>{if(!(0,Rae.default)(u,this.name))return l.reportWarning(z.UNNAMED,`Configuration doesn't contain setting ${this.name}; there is nothing to unset`),c=!0,u;let g=n?(0,Dae.default)(u):P({},u);return(0,Fae.default)(g,this.name),g}),c||l.reportInfo(z.UNNAMED,`Successfully unset ${this.name}`)})).exitCode()}};dC.paths=[["config","unset"]],dC.usage=ye.Usage({description:"unset a configuration setting",details:` - This command will unset a configuration setting. - `,examples:[["Unset a simple configuration setting","yarn config unset initScope"],["Unset a complex configuration setting","yarn config unset packageExtensions"],["Unset a nested configuration setting","yarn config unset npmScopes.company.npmRegistryServer"]]});var Nae=dC;var WN=ie(require("util")),CC=class extends Be{constructor(){super(...arguments);this.verbose=Y.Boolean("-v,--verbose",!1,{description:"Print the setting description on top of the regular key/value information"});this.why=Y.Boolean("--why",!1,{description:"Print the reason why a setting is set a particular way"});this.json=Y.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let e=await fe.find(this.context.cwd,this.context.plugins,{strict:!1});return(await Fe.start({configuration:e,json:this.json,stdout:this.context.stdout},async i=>{if(e.invalid.size>0&&!this.json){for(let[n,s]of e.invalid)i.reportError(z.INVALID_CONFIGURATION_KEY,`Invalid configuration key "${n}" in ${s}`);i.reportSeparator()}if(this.json){let n=de.sortMap(e.settings.keys(),s=>s);for(let s of n){let o=e.settings.get(s),a=e.getSpecial(s,{hideSecrets:!0,getNativePaths:!0}),l=e.sources.get(s);this.verbose?i.reportJson({key:s,effective:a,source:l}):i.reportJson(P({key:s,effective:a,source:l},o))}}else{let n=de.sortMap(e.settings.keys(),a=>a),s=n.reduce((a,l)=>Math.max(a,l.length),0),o={breakLength:Infinity,colors:e.get("enableColors"),maxArrayLength:2};if(this.why||this.verbose){let a=n.map(c=>{let u=e.settings.get(c);if(!u)throw new Error(`Assertion failed: This settings ("${c}") should have been registered`);let g=this.why?e.sources.get(c)||"":u.description;return[c,g]}),l=a.reduce((c,[,u])=>Math.max(c,u.length),0);for(let[c,u]of a)i.reportInfo(null,`${c.padEnd(s," ")} ${u.padEnd(l," ")} ${(0,WN.inspect)(e.getSpecial(c,{hideSecrets:!0,getNativePaths:!0}),o)}`)}else for(let a of n)i.reportInfo(null,`${a.padEnd(s," ")} ${(0,WN.inspect)(e.getSpecial(a,{hideSecrets:!0,getNativePaths:!0}),o)}`)}})).exitCode()}};CC.paths=[["config"]],CC.usage=ye.Usage({description:"display the current configuration",details:` - This command prints the current active configuration settings. - `,examples:[["Print the active configuration settings","$0 config"]]});var Lae=CC;Ss();var zN={};it(zN,{Strategy:()=>Oc,acceptedStrategies:()=>H4e,dedupe:()=>VN});var Tae=ie(Nn()),Oc;(function(e){e.HIGHEST="highest"})(Oc||(Oc={}));var H4e=new Set(Object.values(Oc)),G4e={highest:async(t,e,{resolver:r,fetcher:i,resolveOptions:n,fetchOptions:s})=>{let o=new Map;for(let[a,l]of t.storedResolutions){let c=t.storedDescriptors.get(a);if(typeof c=="undefined")throw new Error(`Assertion failed: The descriptor (${a}) should have been registered`);de.getSetWithDefault(o,c.identHash).add(l)}return Array.from(t.storedDescriptors.values(),async a=>{if(e.length&&!Tae.default.isMatch(S.stringifyIdent(a),e))return null;let l=t.storedResolutions.get(a.descriptorHash);if(typeof l=="undefined")throw new Error(`Assertion failed: The resolution (${a.descriptorHash}) should have been registered`);let c=t.originalPackages.get(l);if(typeof c=="undefined"||!r.shouldPersistResolution(c,n))return null;let u=o.get(a.identHash);if(typeof u=="undefined")throw new Error(`Assertion failed: The resolutions (${a.identHash}) should have been registered`);if(u.size===1)return null;let g=[...u].map(m=>{let I=t.originalPackages.get(m);if(typeof I=="undefined")throw new Error(`Assertion failed: The package (${m}) should have been registered`);return I.reference}),f=await r.getSatisfying(a,g,n),h=f==null?void 0:f[0];if(typeof h=="undefined")return null;let p=h.locatorHash,d=t.originalPackages.get(p);if(typeof d=="undefined")throw new Error(`Assertion failed: The package (${p}) should have been registered`);return p===l?null:{descriptor:a,currentPackage:c,updatedPackage:d}})}};async function VN(t,{strategy:e,patterns:r,cache:i,report:n}){let{configuration:s}=t,o=new ei,a=s.makeResolver(),l=s.makeFetcher(),c={cache:i,checksums:t.storedChecksums,fetcher:l,project:t,report:o,skipIntegrityCheck:!0,cacheOptions:{skipIntegrityCheck:!0}},u={project:t,resolver:a,report:o,fetchOptions:c};return await n.startTimerPromise("Deduplication step",async()=>{let f=await G4e[e](t,r,{resolver:a,resolveOptions:u,fetcher:l,fetchOptions:c}),h=Xi.progressViaCounter(f.length);n.reportProgress(h);let p=0;await Promise.all(f.map(I=>I.then(B=>{if(B===null)return;p++;let{descriptor:b,currentPackage:R,updatedPackage:H}=B;n.reportInfo(z.UNNAMED,`${S.prettyDescriptor(s,b)} can be deduped from ${S.prettyLocator(s,R)} to ${S.prettyLocator(s,H)}`),n.reportJson({descriptor:S.stringifyDescriptor(b),currentResolution:S.stringifyLocator(R),updatedResolution:S.stringifyLocator(H)}),t.storedResolutions.set(b.descriptorHash,H.locatorHash)}).finally(()=>h.tick())));let d;switch(p){case 0:d="No packages";break;case 1:d="One package";break;default:d=`${p} packages`}let m=ue.pretty(s,e,ue.Type.CODE);return n.reportInfo(z.UNNAMED,`${d} can be deduped using the ${m} strategy`),p})}var mC=class extends Be{constructor(){super(...arguments);this.strategy=Y.String("-s,--strategy",Oc.HIGHEST,{description:"The strategy to use when deduping dependencies",validator:Yi(Oc)});this.check=Y.Boolean("-c,--check",!1,{description:"Exit with exit code 1 when duplicates are found, without persisting the dependency tree"});this.json=Y.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.mode=Y.String("--mode",{description:"Change what artifacts installs generate",validator:Yi(li)});this.patterns=Y.Rest()}async execute(){let e=await fe.find(this.context.cwd,this.context.plugins),{project:r}=await Ke.find(e,this.context.cwd),i=await Qt.find(e);await r.restoreInstallState({restoreResolutions:!1});let n=0,s=await Fe.start({configuration:e,includeFooter:!1,stdout:this.context.stdout,json:this.json},async o=>{n=await VN(r,{strategy:this.strategy,patterns:this.patterns,cache:i,report:o})});return s.hasErrors()?s.exitCode():this.check?n?1:0:(await Fe.start({configuration:e,stdout:this.context.stdout,json:this.json},async a=>{await r.install({cache:i,report:a,mode:this.mode})})).exitCode()}};mC.paths=[["dedupe"]],mC.usage=ye.Usage({description:"deduplicate dependencies with overlapping ranges",details:"\n Duplicates are defined as descriptors with overlapping ranges being resolved and locked to different locators. They are a natural consequence of Yarn's deterministic installs, but they can sometimes pile up and unnecessarily increase the size of your project.\n\n This command dedupes dependencies in the current project using different strategies (only one is implemented at the moment):\n\n - `highest`: Reuses (where possible) the locators with the highest versions. This means that dependencies can only be upgraded, never downgraded. It's also guaranteed that it never takes more than a single pass to dedupe the entire dependency tree.\n\n **Note:** Even though it never produces a wrong dependency tree, this command should be used with caution, as it modifies the dependency tree, which can sometimes cause problems when packages don't strictly follow semver recommendations. Because of this, it is recommended to also review the changes manually.\n\n If set, the `-c,--check` flag will only report the found duplicates, without persisting the modified dependency tree. If changes are found, the command will exit with a non-zero exit code, making it suitable for CI purposes.\n\n If the `--mode=` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the later will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n\n This command accepts glob patterns as arguments (if valid Idents and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them.\n\n ### In-depth explanation:\n\n Yarn doesn't deduplicate dependencies by default, otherwise installs wouldn't be deterministic and the lockfile would be useless. What it actually does is that it tries to not duplicate dependencies in the first place.\n\n **Example:** If `foo@^2.3.4` (a dependency of a dependency) has already been resolved to `foo@2.3.4`, running `yarn add foo@*`will cause Yarn to reuse `foo@2.3.4`, even if the latest `foo` is actually `foo@2.10.14`, thus preventing unnecessary duplication.\n\n Duplication happens when Yarn can't unlock dependencies that have already been locked inside the lockfile.\n\n **Example:** If `foo@^2.3.4` (a dependency of a dependency) has already been resolved to `foo@2.3.4`, running `yarn add foo@2.10.14` will cause Yarn to install `foo@2.10.14` because the existing resolution doesn't satisfy the range `2.10.14`. This behavior can lead to (sometimes) unwanted duplication, since now the lockfile contains 2 separate resolutions for the 2 `foo` descriptors, even though they have overlapping ranges, which means that the lockfile can be simplified so that both descriptors resolve to `foo@2.10.14`.\n ",examples:[["Dedupe all packages","$0 dedupe"],["Dedupe all packages using a specific strategy","$0 dedupe --strategy highest"],["Dedupe a specific package","$0 dedupe lodash"],["Dedupe all packages with the `@babel/*` scope","$0 dedupe '@babel/*'"],["Check for duplicates (can be used as a CI step)","$0 dedupe --check"]]});var Mae=mC;var Y0=class extends Be{async execute(){let{plugins:e}=await fe.find(this.context.cwd,this.context.plugins),r=[];for(let o of e){let{commands:a}=o[1];if(a){let c=oo.from(a).definitions();r.push([o[0],c])}}let i=this.cli.definitions(),n=(o,a)=>o.split(" ").slice(1).join()===a.split(" ").slice(1).join(),s=Kae()["@yarnpkg/builder"].bundles.standard;for(let o of r){let a=o[1];for(let l of a)i.find(c=>n(c.path,l.path)).plugin={name:o[0],isDefault:s.includes(o[0])}}this.context.stdout.write(`${JSON.stringify(i,null,2)} -`)}};Y0.paths=[["--clipanion=definitions"]];var Uae=Y0;var q0=class extends Be{async execute(){this.context.stdout.write(this.cli.usage(null))}};q0.paths=[["help"],["--help"],["-h"]];var Hae=q0;var _N=class extends Be{constructor(){super(...arguments);this.leadingArgument=Y.String();this.args=Y.Proxy()}async execute(){if(this.leadingArgument.match(/[\\/]/)&&!S.tryParseIdent(this.leadingArgument)){let e=v.resolve(this.context.cwd,M.toPortablePath(this.leadingArgument));return await this.cli.run(this.args,{cwd:e})}else return await this.cli.run(["run",this.leadingArgument,...this.args])}},Gae=_N;var J0=class extends Be{async execute(){this.context.stdout.write(`${Zr||""} -`)}};J0.paths=[["-v"],["--version"]];var jae=J0;var EC=class extends Be{constructor(){super(...arguments);this.commandName=Y.String();this.args=Y.Proxy()}async execute(){let e=await fe.find(this.context.cwd,this.context.plugins),{project:r,locator:i}=await Ke.find(e,this.context.cwd);return await r.restoreInstallState(),await Kt.executePackageShellcode(i,this.commandName,this.args,{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,project:r})}};EC.paths=[["exec"]],EC.usage=ye.Usage({description:"execute a shell script",details:` - This command simply executes a shell script within the context of the root directory of the active workspace using the portable shell. - - It also makes sure to call it in a way that's compatible with the current project (for example, on PnP projects the environment will be setup in such a way that PnP will be correctly injected into the environment). - `,examples:[["Execute a single shell command","$0 exec echo Hello World"],["Execute a shell script",'$0 exec "tsc & babel src --out-dir lib"']]});var Yae=EC;Ss();var IC=class extends Be{constructor(){super(...arguments);this.hash=Y.String({required:!1,validator:fv(gv(),[hv(/^p[0-9a-f]{5}$/)])})}async execute(){let e=await fe.find(this.context.cwd,this.context.plugins),{project:r}=await Ke.find(e,this.context.cwd);return await r.restoreInstallState({restoreResolutions:!1}),await r.applyLightResolution(),typeof this.hash!="undefined"?await j4e(this.hash,r,{stdout:this.context.stdout}):(await Fe.start({configuration:e,stdout:this.context.stdout,includeFooter:!1},async n=>{var o;let s=[([,a])=>S.stringifyLocator(r.storedPackages.get(a.subject)),([,a])=>S.stringifyIdent(a.requested)];for(let[a,l]of de.sortMap(r.peerRequirements,s)){let c=r.storedPackages.get(l.subject);if(typeof c=="undefined")throw new Error("Assertion failed: Expected the subject package to have been registered");let u=r.storedPackages.get(l.rootRequester);if(typeof u=="undefined")throw new Error("Assertion failed: Expected the root package to have been registered");let g=(o=c.dependencies.get(l.requested.identHash))!=null?o:null,f=ue.pretty(e,a,ue.Type.CODE),h=S.prettyLocator(e,c),p=S.prettyIdent(e,l.requested),d=S.prettyIdent(e,u),m=l.allRequesters.length-1,I=`descendant${m===1?"":"s"}`,B=m>0?` and ${m} ${I}`:"",b=g!==null?"provides":"doesn't provide";n.reportInfo(null,`${f} \u2192 ${h} ${b} ${p} to ${d}${B}`)}})).exitCode()}};IC.paths=[["explain","peer-requirements"]],IC.usage=ye.Usage({description:"explain a set of peer requirements",details:` - A set of peer requirements represents all peer requirements that a dependent must satisfy when providing a given peer request to a requester and its descendants. - - When the hash argument is specified, this command prints a detailed explanation of all requirements of the set corresponding to the hash and whether they're satisfied or not. - - When used without arguments, this command lists all sets of peer requirements and the corresponding hash that can be used to get detailed information about a given set. - - **Note:** A hash is a six-letter p-prefixed code that can be obtained from peer dependency warnings or from the list of all peer requirements (\`yarn explain peer-requirements\`). - `,examples:[["Explain the corresponding set of peer requirements for a hash","$0 explain peer-requirements p1a4ed"],["List all sets of peer requirements","$0 explain peer-requirements"]]});var qae=IC;async function j4e(t,e,r){let{configuration:i}=e,n=e.peerRequirements.get(t);if(typeof n=="undefined")throw new Error(`No peerDependency requirements found for hash: "${t}"`);return(await Fe.start({configuration:i,stdout:r.stdout,includeFooter:!1},async o=>{var I,B;let a=e.storedPackages.get(n.subject);if(typeof a=="undefined")throw new Error("Assertion failed: Expected the subject package to have been registered");let l=e.storedPackages.get(n.rootRequester);if(typeof l=="undefined")throw new Error("Assertion failed: Expected the root package to have been registered");let c=(I=a.dependencies.get(n.requested.identHash))!=null?I:null,u=c!==null?e.storedResolutions.get(c.descriptorHash):null;if(typeof u=="undefined")throw new Error("Assertion failed: Expected the resolution to have been registered");let g=u!==null?e.storedPackages.get(u):null;if(typeof g=="undefined")throw new Error("Assertion failed: Expected the provided package to have been registered");let f=[...n.allRequesters.values()].map(b=>{let R=e.storedPackages.get(b);if(typeof R=="undefined")throw new Error("Assertion failed: Expected the package to be registered");let H=S.devirtualizeLocator(R),L=e.storedPackages.get(H.locatorHash);if(typeof L=="undefined")throw new Error("Assertion failed: Expected the package to be registered");let K=L.peerDependencies.get(n.requested.identHash);if(typeof K=="undefined")throw new Error("Assertion failed: Expected the peer dependency to be registered");return{pkg:R,peerDependency:K}});if(g!==null){let b=f.every(({peerDependency:R})=>qt.satisfiesWithPrereleases(g.version,R.range));o.reportInfo(z.UNNAMED,`${S.prettyLocator(i,a)} provides ${S.prettyLocator(i,g)} with version ${S.prettyReference(i,(B=g.version)!=null?B:"")}, which ${b?"satisfies":"doesn't satisfy"} the following requirements:`)}else o.reportInfo(z.UNNAMED,`${S.prettyLocator(i,a)} doesn't provide ${S.prettyIdent(i,n.requested)}, breaking the following requirements:`);o.reportSeparator();let h=ue.mark(i),p=[];for(let{pkg:b,peerDependency:R}of de.sortMap(f,H=>S.stringifyLocator(H.pkg))){let L=(g!==null?qt.satisfiesWithPrereleases(g.version,R.range):!1)?h.Check:h.Cross;p.push({stringifiedLocator:S.stringifyLocator(b),prettyLocator:S.prettyLocator(i,b),prettyRange:S.prettyRange(i,R.range),mark:L})}let d=Math.max(...p.map(({stringifiedLocator:b})=>b.length)),m=Math.max(...p.map(({prettyRange:b})=>b.length));for(let{stringifiedLocator:b,prettyLocator:R,prettyRange:H,mark:L}of de.sortMap(p,({stringifiedLocator:K})=>K))o.reportInfo(null,`${R.padEnd(d+(R.length-b.length)," ")} \u2192 ${H.padEnd(m," ")} ${L}`);p.length>1&&(o.reportSeparator(),o.reportInfo(z.UNNAMED,`Note: these requirements start with ${S.prettyLocator(e.configuration,l)}`))})).exitCode()}var Jae=ie(Nn()),yC=class extends Be{constructor(){super(...arguments);this.all=Y.Boolean("-A,--all",!1,{description:"Print versions of a package from the whole project"});this.recursive=Y.Boolean("-R,--recursive",!1,{description:"Print information for all packages, including transitive dependencies"});this.extra=Y.Array("-X,--extra",[],{description:"An array of requests of extra data provided by plugins"});this.cache=Y.Boolean("--cache",!1,{description:"Print information about the cache entry of a package (path, size, checksum)"});this.dependents=Y.Boolean("--dependents",!1,{description:"Print all dependents for each matching package"});this.manifest=Y.Boolean("--manifest",!1,{description:"Print data obtained by looking at the package archive (license, homepage, ...)"});this.nameOnly=Y.Boolean("--name-only",!1,{description:"Only print the name for the matching packages"});this.virtuals=Y.Boolean("--virtuals",!1,{description:"Print each instance of the virtual packages"});this.json=Y.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.patterns=Y.Rest()}async execute(){let e=await fe.find(this.context.cwd,this.context.plugins),{project:r,workspace:i}=await Ke.find(e,this.context.cwd),n=await Qt.find(e);if(!i&&!this.all)throw new rt(r.cwd,this.context.cwd);await r.restoreInstallState();let s=new Set(this.extra);this.cache&&s.add("cache"),this.dependents&&s.add("dependents"),this.manifest&&s.add("manifest");let o=(b,{recursive:R})=>{let H=b.anchoredLocator.locatorHash,L=new Map,K=[H];for(;K.length>0;){let J=K.shift();if(L.has(J))continue;let ne=r.storedPackages.get(J);if(typeof ne=="undefined")throw new Error("Assertion failed: Expected the package to be registered");if(L.set(J,ne),S.isVirtualLocator(ne)&&K.push(S.devirtualizeLocator(ne).locatorHash),!(!R&&J!==H))for(let q of ne.dependencies.values()){let A=r.storedResolutions.get(q.descriptorHash);if(typeof A=="undefined")throw new Error("Assertion failed: Expected the resolution to be registered");K.push(A)}}return L.values()},a=({recursive:b})=>{let R=new Map;for(let H of r.workspaces)for(let L of o(H,{recursive:b}))R.set(L.locatorHash,L);return R.values()},l=({all:b,recursive:R})=>b&&R?r.storedPackages.values():b?a({recursive:R}):o(i,{recursive:R}),c=({all:b,recursive:R})=>{let H=l({all:b,recursive:R}),L=this.patterns.map(ne=>{let q=S.parseLocator(ne),A=Jae.default.makeRe(S.stringifyIdent(q)),V=S.isVirtualLocator(q),W=V?S.devirtualizeLocator(q):q;return X=>{let F=S.stringifyIdent(X);if(!A.test(F))return!1;if(q.reference==="unknown")return!0;let D=S.isVirtualLocator(X),he=D?S.devirtualizeLocator(X):X;return!(V&&D&&q.reference!==X.reference||W.reference!==he.reference)}}),K=de.sortMap([...H],ne=>S.stringifyLocator(ne));return{selection:K.filter(ne=>L.length===0||L.some(q=>q(ne))),sortedLookup:K}},{selection:u,sortedLookup:g}=c({all:this.all,recursive:this.recursive});if(u.length===0)throw new me("No package matched your request");let f=new Map;if(this.dependents)for(let b of g)for(let R of b.dependencies.values()){let H=r.storedResolutions.get(R.descriptorHash);if(typeof H=="undefined")throw new Error("Assertion failed: Expected the resolution to be registered");de.getArrayWithDefault(f,H).push(b)}let h=new Map;for(let b of g){if(!S.isVirtualLocator(b))continue;let R=S.devirtualizeLocator(b);de.getArrayWithDefault(h,R.locatorHash).push(b)}let p={},d={children:p},m=e.makeFetcher(),I={project:r,fetcher:m,cache:n,checksums:r.storedChecksums,report:new ei,cacheOptions:{skipIntegrityCheck:!0},skipIntegrityCheck:!0},B=[async(b,R,H)=>{var J,ne;if(!R.has("manifest"))return;let L=await m.fetch(b,I),K;try{K=await Ze.find(L.prefixPath,{baseFs:L.packageFs})}finally{(J=L.releaseFs)==null||J.call(L)}H("Manifest",{License:ue.tuple(ue.Type.NO_HINT,K.license),Homepage:ue.tuple(ue.Type.URL,(ne=K.raw.homepage)!=null?ne:null)})},async(b,R,H)=>{var A;if(!R.has("cache"))return;let L={mockedPackages:r.disabledLocators,unstablePackages:r.conditionalLocators},K=(A=r.storedChecksums.get(b.locatorHash))!=null?A:null,J=n.getLocatorPath(b,K,L),ne;if(J!==null)try{ne=T.statSync(J)}catch{}let q=typeof ne!="undefined"?[ne.size,ue.Type.SIZE]:void 0;H("Cache",{Checksum:ue.tuple(ue.Type.NO_HINT,K),Path:ue.tuple(ue.Type.PATH,J),Size:q})}];for(let b of u){let R=S.isVirtualLocator(b);if(!this.virtuals&&R)continue;let H={},L={value:[b,ue.Type.LOCATOR],children:H};if(p[S.stringifyLocator(b)]=L,this.nameOnly){delete L.children;continue}let K=h.get(b.locatorHash);typeof K!="undefined"&&(H.Instances={label:"Instances",value:ue.tuple(ue.Type.NUMBER,K.length)}),H.Version={label:"Version",value:ue.tuple(ue.Type.NO_HINT,b.version)};let J=(q,A)=>{let V={};if(H[q]=V,Array.isArray(A))V.children=A.map(W=>({value:W}));else{let W={};V.children=W;for(let[X,F]of Object.entries(A))typeof F!="undefined"&&(W[X]={label:X,value:F})}};if(!R){for(let q of B)await q(b,s,J);await e.triggerHook(q=>q.fetchPackageInfo,b,s,J)}b.bin.size>0&&!R&&J("Exported Binaries",[...b.bin.keys()].map(q=>ue.tuple(ue.Type.PATH,q)));let ne=f.get(b.locatorHash);typeof ne!="undefined"&&ne.length>0&&J("Dependents",ne.map(q=>ue.tuple(ue.Type.LOCATOR,q))),b.dependencies.size>0&&!R&&J("Dependencies",[...b.dependencies.values()].map(q=>{var W;let A=r.storedResolutions.get(q.descriptorHash),V=typeof A!="undefined"&&(W=r.storedPackages.get(A))!=null?W:null;return ue.tuple(ue.Type.RESOLUTION,{descriptor:q,locator:V})})),b.peerDependencies.size>0&&R&&J("Peer dependencies",[...b.peerDependencies.values()].map(q=>{var X,F;let A=b.dependencies.get(q.identHash),V=typeof A!="undefined"&&(X=r.storedResolutions.get(A.descriptorHash))!=null?X:null,W=V!==null&&(F=r.storedPackages.get(V))!=null?F:null;return ue.tuple(ue.Type.RESOLUTION,{descriptor:q,locator:W})}))}Hs.emitTree(d,{configuration:e,json:this.json,stdout:this.context.stdout,separators:this.nameOnly?0:2})}};yC.paths=[["info"]],yC.usage=ye.Usage({description:"see information related to packages",details:"\n This command prints various information related to the specified packages, accepting glob patterns.\n\n By default, if the locator reference is missing, Yarn will default to print the information about all the matching direct dependencies of the package for the active workspace. To instead print all versions of the package that are direct dependencies of any of your workspaces, use the `-A,--all` flag. Adding the `-R,--recursive` flag will also report transitive dependencies.\n\n Some fields will be hidden by default in order to keep the output readable, but can be selectively displayed by using additional options (`--dependents`, `--manifest`, `--virtuals`, ...) described in the option descriptions.\n\n Note that this command will only print the information directly related to the selected packages - if you wish to know why the package is there in the first place, use `yarn why` which will do just that (it also provides a `-R,--recursive` flag that may be of some help).\n ",examples:[["Show information about Lodash","$0 info lodash"]]});var Wae=yC;var W0=ie(ml());Ss();var wC=class extends Be{constructor(){super(...arguments);this.json=Y.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.immutable=Y.Boolean("--immutable",{description:"Abort with an error exit code if the lockfile was to be modified"});this.immutableCache=Y.Boolean("--immutable-cache",{description:"Abort with an error exit code if the cache folder was to be modified"});this.checkCache=Y.Boolean("--check-cache",!1,{description:"Always refetch the packages and ensure that their checksums are consistent"});this.inlineBuilds=Y.Boolean("--inline-builds",{description:"Verbosely print the output of the build steps of dependencies"});this.mode=Y.String("--mode",{description:"Change what artifacts installs generate",validator:Yi(li)});this.cacheFolder=Y.String("--cache-folder",{hidden:!0});this.frozenLockfile=Y.Boolean("--frozen-lockfile",{hidden:!0});this.ignoreEngines=Y.Boolean("--ignore-engines",{hidden:!0});this.nonInteractive=Y.Boolean("--non-interactive",{hidden:!0});this.preferOffline=Y.Boolean("--prefer-offline",{hidden:!0});this.production=Y.Boolean("--production",{hidden:!0});this.registry=Y.String("--registry",{hidden:!0});this.silent=Y.Boolean("--silent",{hidden:!0});this.networkTimeout=Y.String("--network-timeout",{hidden:!0})}async execute(){var c;let e=await fe.find(this.context.cwd,this.context.plugins);typeof this.inlineBuilds!="undefined"&&e.useWithSource("",{enableInlineBuilds:this.inlineBuilds},e.startingCwd,{overwrite:!0});let r=!!process.env.FUNCTION_TARGET||!!process.env.GOOGLE_RUNTIME,i=async(u,{error:g})=>{let f=await Fe.start({configuration:e,stdout:this.context.stdout,includeFooter:!1},async h=>{g?h.reportError(z.DEPRECATED_CLI_SETTINGS,u):h.reportWarning(z.DEPRECATED_CLI_SETTINGS,u)});return f.hasErrors()?f.exitCode():null};if(typeof this.ignoreEngines!="undefined"){let u=await i("The --ignore-engines option is deprecated; engine checking isn't a core feature anymore",{error:!W0.default.VERCEL});if(u!==null)return u}if(typeof this.registry!="undefined"){let u=await i("The --registry option is deprecated; prefer setting npmRegistryServer in your .yarnrc.yml file",{error:!1});if(u!==null)return u}if(typeof this.preferOffline!="undefined"){let u=await i("The --prefer-offline flag is deprecated; use the --cached flag with 'yarn add' instead",{error:!W0.default.VERCEL});if(u!==null)return u}if(typeof this.production!="undefined"){let u=await i("The --production option is deprecated on 'install'; use 'yarn workspaces focus' instead",{error:!0});if(u!==null)return u}if(typeof this.nonInteractive!="undefined"){let u=await i("The --non-interactive option is deprecated",{error:!r});if(u!==null)return u}if(typeof this.frozenLockfile!="undefined"&&(await i("The --frozen-lockfile option is deprecated; use --immutable and/or --immutable-cache instead",{error:!1}),this.immutable=this.frozenLockfile),typeof this.cacheFolder!="undefined"){let u=await i("The cache-folder option has been deprecated; use rc settings instead",{error:!W0.default.NETLIFY});if(u!==null)return u}let n=(c=this.immutable)!=null?c:e.get("enableImmutableInstalls");if(e.projectCwd!==null){let u=await Fe.start({configuration:e,json:this.json,stdout:this.context.stdout,includeFooter:!1},async g=>{await Y4e(e,n)&&(g.reportInfo(z.AUTOMERGE_SUCCESS,"Automatically fixed merge conflicts \u{1F44D}"),g.reportSeparator())});if(u.hasErrors())return u.exitCode()}if(e.projectCwd!==null&&typeof e.sources.get("nodeLinker")=="undefined"){let u=e.projectCwd,g;try{g=await T.readFilePromise(v.join(u,wt.lockfile),"utf8")}catch{}if(g==null?void 0:g.includes("yarn lockfile v1")){let f=await Fe.start({configuration:e,json:this.json,stdout:this.context.stdout,includeFooter:!1},async h=>{h.reportInfo(z.AUTO_NM_SUCCESS,"Migrating from Yarn 1; automatically enabling the compatibility node-modules linker \u{1F44D}"),h.reportSeparator(),e.use("",{nodeLinker:"node-modules"},u,{overwrite:!0}),await fe.updateConfiguration(u,{nodeLinker:"node-modules"})});if(f.hasErrors())return f.exitCode()}}if(e.projectCwd!==null){let u=await Fe.start({configuration:e,json:this.json,stdout:this.context.stdout,includeFooter:!1},async g=>{var f;((f=fe.telemetry)==null?void 0:f.isNew)&&(g.reportInfo(z.TELEMETRY_NOTICE,"Yarn will periodically gather anonymous telemetry: https://yarnpkg.com/advanced/telemetry"),g.reportInfo(z.TELEMETRY_NOTICE,`Run ${ue.pretty(e,"yarn config set --home enableTelemetry 0",ue.Type.CODE)} to disable`),g.reportSeparator())});if(u.hasErrors())return u.exitCode()}let{project:s,workspace:o}=await Ke.find(e,this.context.cwd),a=await Qt.find(e,{immutable:this.immutableCache,check:this.checkCache});if(!o)throw new rt(s.cwd,this.context.cwd);return await s.restoreInstallState({restoreResolutions:!1}),(await Fe.start({configuration:e,json:this.json,stdout:this.context.stdout,includeLogs:!0},async u=>{await s.install({cache:a,report:u,immutable:n,mode:this.mode})})).exitCode()}};wC.paths=[["install"],ye.Default],wC.usage=ye.Usage({description:"install the project dependencies",details:` - This command sets up your project if needed. The installation is split into four different steps that each have their own characteristics: - - - **Resolution:** First the package manager will resolve your dependencies. The exact way a dependency version is privileged over another isn't standardized outside of the regular semver guarantees. If a package doesn't resolve to what you would expect, check that all dependencies are correctly declared (also check our website for more information: ). - - - **Fetch:** Then we download all the dependencies if needed, and make sure that they're all stored within our cache (check the value of \`cacheFolder\` in \`yarn config\` to see where the cache files are stored). - - - **Link:** Then we send the dependency tree information to internal plugins tasked with writing them on the disk in some form (for example by generating the .pnp.cjs file you might know). - - - **Build:** Once the dependency tree has been written on the disk, the package manager will now be free to run the build scripts for all packages that might need it, in a topological order compatible with the way they depend on one another. See https://yarnpkg.com/advanced/lifecycle-scripts for detail. - - Note that running this command is not part of the recommended workflow. Yarn supports zero-installs, which means that as long as you store your cache and your .pnp.cjs file inside your repository, everything will work without requiring any install right after cloning your repository or switching branches. - - If the \`--immutable\` option is set (defaults to true on CI), Yarn will abort with an error exit code if the lockfile was to be modified (other paths can be added using the \`immutablePatterns\` configuration setting). For backward compatibility we offer an alias under the name of \`--frozen-lockfile\`, but it will be removed in a later release. - - If the \`--immutable-cache\` option is set, Yarn will abort with an error exit code if the cache folder was to be modified (either because files would be added, or because they'd be removed). - - If the \`--check-cache\` option is set, Yarn will always refetch the packages and will ensure that their checksum matches what's 1/ described in the lockfile 2/ inside the existing cache files (if present). This is recommended as part of your CI workflow if you're both following the Zero-Installs model and accepting PRs from third-parties, as they'd otherwise have the ability to alter the checked-in packages before submitting them. - - If the \`--inline-builds\` option is set, Yarn will verbosely print the output of the build steps of your dependencies (instead of writing them into individual files). This is likely useful mostly for debug purposes only when using Docker-like environments. - - If the \`--mode=\` option is set, Yarn will change which artifacts are generated. The modes currently supported are: - - - \`skip-build\` will not run the build scripts at all. Note that this is different from setting \`enableScripts\` to false because the later will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run. - - - \`update-lockfile\` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost. - `,examples:[["Install the project","$0 install"],["Validate a project when using Zero-Installs","$0 install --immutable --immutable-cache"],["Validate a project when using Zero-Installs (slightly safer if you accept external PRs)","$0 install --immutable --immutable-cache --check-cache"]]});var zae=wC,q4e="|||||||",J4e=">>>>>>>",W4e="=======",Vae="<<<<<<<";async function Y4e(t,e){if(!t.projectCwd)return!1;let r=v.join(t.projectCwd,t.get("lockfileFilename"));if(!await T.existsPromise(r))return!1;let i=await T.readFilePromise(r,"utf8");if(!i.includes(Vae))return!1;if(e)throw new nt(z.AUTOMERGE_IMMUTABLE,"Cannot autofix a lockfile when running an immutable install");let[n,s]=z4e(i),o,a;try{o=Ii(n),a=Ii(s)}catch(c){throw new nt(z.AUTOMERGE_FAILED_TO_PARSE,"The individual variants of the lockfile failed to parse")}let l=P(P({},o),a);for(let[c,u]of Object.entries(l))typeof u=="string"&&delete l[c];return await T.changeFilePromise(r,Qa(l),{automaticNewlines:!0}),!0}function z4e(t){let e=[[],[]],r=t.split(/\r?\n/g),i=!1;for(;r.length>0;){let n=r.shift();if(typeof n=="undefined")throw new Error("Assertion failed: Some lines should remain");if(n.startsWith(Vae)){for(;r.length>0;){let s=r.shift();if(typeof s=="undefined")throw new Error("Assertion failed: Some lines should remain");if(s===W4e){i=!1;break}else if(i||s.startsWith(q4e)){i=!0;continue}else e[0].push(s)}for(;r.length>0;){let s=r.shift();if(typeof s=="undefined")throw new Error("Assertion failed: Some lines should remain");if(s.startsWith(J4e))break;e[1].push(s)}}else e[0].push(n),e[1].push(n)}return[e[0].join(` -`),e[1].join(` -`)]}var BC=class extends Be{constructor(){super(...arguments);this.all=Y.Boolean("-A,--all",!1,{description:"Link all workspaces belonging to the target project to the current one"});this.private=Y.Boolean("-p,--private",!1,{description:"Also link private workspaces belonging to the target project to the current one"});this.relative=Y.Boolean("-r,--relative",!1,{description:"Link workspaces using relative paths instead of absolute paths"});this.destination=Y.String()}async execute(){let e=await fe.find(this.context.cwd,this.context.plugins),{project:r,workspace:i}=await Ke.find(e,this.context.cwd),n=await Qt.find(e);if(!i)throw new rt(r.cwd,this.context.cwd);await r.restoreInstallState({restoreResolutions:!1});let s=v.resolve(this.context.cwd,M.toPortablePath(this.destination)),o=await fe.find(s,this.context.plugins,{useRc:!1,strict:!1}),{project:a,workspace:l}=await Ke.find(o,s);if(r.cwd===a.cwd)throw new me("Invalid destination; Can't link the project to itself");if(!l)throw new rt(a.cwd,s);let c=r.topLevelWorkspace,u=[];if(this.all){for(let f of a.workspaces)f.manifest.name&&(!f.manifest.private||this.private)&&u.push(f);if(u.length===0)throw new me("No workspace found to be linked in the target project")}else{if(!l.manifest.name)throw new me("The target workspace doesn't have a name and thus cannot be linked");if(l.manifest.private&&!this.private)throw new me("The target workspace is marked private - use the --private flag to link it anyway");u.push(l)}for(let f of u){let h=S.stringifyIdent(f.locator),p=this.relative?v.relative(r.cwd,f.cwd):f.cwd;c.manifest.resolutions.push({pattern:{descriptor:{fullName:h}},reference:`portal:${p}`})}return(await Fe.start({configuration:e,stdout:this.context.stdout},async f=>{await r.install({cache:n,report:f})})).exitCode()}};BC.paths=[["link"]],BC.usage=ye.Usage({description:"connect the local project to another one",details:"\n This command will set a new `resolutions` field in the project-level manifest and point it to the workspace at the specified location (even if part of another project).\n ",examples:[["Register a remote workspace for use in the current project","$0 link ~/ts-loader"],["Register all workspaces from a remote project for use in the current project","$0 link ~/jest --all"]]});var _ae=BC;var QC=class extends Be{constructor(){super(...arguments);this.args=Y.Proxy()}async execute(){return this.cli.run(["exec","node",...this.args])}};QC.paths=[["node"]],QC.usage=ye.Usage({description:"run node with the hook already setup",details:` - This command simply runs Node. It also makes sure to call it in a way that's compatible with the current project (for example, on PnP projects the environment will be setup in such a way that PnP will be correctly injected into the environment). - - The Node process will use the exact same version of Node as the one used to run Yarn itself, which might be a good way to ensure that your commands always use a consistent Node version. - `,examples:[["Run a Node script","$0 node ./my-script.js"]]});var Xae=QC;var lAe=ie(require("os"));var rAe=ie(require("os"));var V4e="https://raw.githubusercontent.com/yarnpkg/berry/master/plugins.yml";async function Kc(t){let e=await Zt.get(V4e,{configuration:t});return Ii(e.toString())}var bC=class extends Be{constructor(){super(...arguments);this.json=Y.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let e=await fe.find(this.context.cwd,this.context.plugins);return(await Fe.start({configuration:e,json:this.json,stdout:this.context.stdout},async i=>{let n=await Kc(e);for(let s of Object.entries(n)){let[l,o]=s,a=o,{experimental:c}=a,u=qr(a,["experimental"]);let g=l;c&&(g+=" [experimental]"),i.reportJson(P({name:l,experimental:c},u)),i.reportInfo(null,g)}})).exitCode()}};bC.paths=[["plugin","list"]],bC.usage=ye.Usage({category:"Plugin-related commands",description:"list the available official plugins",details:"\n This command prints the plugins available directly from the Yarn repository. Only those plugins can be referenced by name in `yarn plugin import`.\n ",examples:[["List the official plugins","$0 plugin list"]]});var Zae=bC;var $ae=ie(Or()),vC=class extends Be{constructor(){super(...arguments);this.onlyIfNeeded=Y.Boolean("--only-if-needed",!1,{description:"Only lock the Yarn version if it isn't already locked"});this.version=Y.String()}async execute(){let e=await fe.find(this.context.cwd,this.context.plugins);if(e.get("yarnPath")&&this.onlyIfNeeded)return 0;let r=()=>{if(typeof Zr=="undefined")throw new me("The --install flag can only be used without explicit version specifier from the Yarn CLI");return`file://${process.argv[1]}`},i;if(this.version==="self")i=r();else if(this.version==="latest"||this.version==="berry"||this.version==="stable")i=`https://repo.yarnpkg.com/${await eAe(e,"stable")}/packages/yarnpkg-cli/bin/yarn.js`;else if(this.version==="canary")i=`https://repo.yarnpkg.com/${await eAe(e,"canary")}/packages/yarnpkg-cli/bin/yarn.js`;else if(this.version==="classic")i="https://nightly.yarnpkg.com/latest.js";else if(this.version.match(/^\.{0,2}[\\/]/)||M.isAbsolute(this.version))i=`file://${M.resolve(this.version)}`;else if(qt.satisfiesWithPrereleases(this.version,">=2.0.0"))i=`https://repo.yarnpkg.com/${this.version}/packages/yarnpkg-cli/bin/yarn.js`;else if(qt.satisfiesWithPrereleases(this.version,"^0.x || ^1.x"))i=`https://github.com/yarnpkg/yarn/releases/download/v${this.version}/yarn-${this.version}.js`;else if(qt.validRange(this.version))i=`https://repo.yarnpkg.com/${await _4e(e,this.version)}/packages/yarnpkg-cli/bin/yarn.js`;else throw new me(`Invalid version descriptor "${this.version}"`);return(await Fe.start({configuration:e,stdout:this.context.stdout,includeLogs:!this.context.quiet},async s=>{let o="file://",a;i.startsWith(o)?(s.reportInfo(z.UNNAMED,`Downloading ${ue.pretty(e,i,ps.URL)}`),a=await T.readFilePromise(M.toPortablePath(i.slice(o.length)))):(s.reportInfo(z.UNNAMED,`Retrieving ${ue.pretty(e,i,ps.PATH)}`),a=await Zt.get(i,{configuration:e})),await XN(e,null,a,{report:s})})).exitCode()}};vC.paths=[["set","version"]],vC.usage=ye.Usage({description:"lock the Yarn version used by the project",details:"\n This command will download a specific release of Yarn directly from the Yarn GitHub repository, will store it inside your project, and will change the `yarnPath` settings from your project `.yarnrc.yml` file to point to the new file.\n\n A very good use case for this command is to enforce the version of Yarn used by the any single member of your team inside a same project - by doing this you ensure that you have control on Yarn upgrades and downgrades (including on your deployment servers), and get rid of most of the headaches related to someone using a slightly different version and getting a different behavior than you.\n\n The version specifier can be:\n\n - a tag:\n - `latest` / `berry` / `stable` -> the most recent stable berry (`>=2.0.0`) release\n - `canary` -> the most recent canary (release candidate) berry (`>=2.0.0`) release\n - `classic` -> the most recent classic (`^0.x || ^1.x`) release\n\n - a semver range (e.g. `2.x`) -> the most recent version satisfying the range (limited to berry releases)\n\n - a semver version (e.g. `2.4.1`, `1.22.1`)\n\n - a local file referenced through either a relative or absolute path\n\n - `self` -> the version used to invoke the command\n ",examples:[["Download the latest release from the Yarn repository","$0 set version latest"],["Download the latest canary release from the Yarn repository","$0 set version canary"],["Download the latest classic release from the Yarn repository","$0 set version classic"],["Download the most recent Yarn 3 build","$0 set version 3.x"],["Download a specific Yarn 2 build","$0 set version 2.0.0-rc.30"],["Switch back to a specific Yarn 1 release","$0 set version 1.22.1"],["Use a release from the local filesystem","$0 set version ./yarn.cjs"],["Download the version used to invoke the command","$0 set version self"]]});var tAe=vC;async function _4e(t,e){let i=(await Zt.get("https://repo.yarnpkg.com/tags",{configuration:t,jsonResponse:!0})).tags.filter(n=>qt.satisfiesWithPrereleases(n,e));if(i.length===0)throw new me(`No matching release found for range ${ue.pretty(t,e,ue.Type.RANGE)}.`);return i[0]}async function eAe(t,e){let r=await Zt.get("https://repo.yarnpkg.com/tags",{configuration:t,jsonResponse:!0});if(!r.latest[e])throw new me(`Tag ${ue.pretty(t,e,ue.Type.RANGE)} not found`);return r.latest[e]}async function XN(t,e,r,{report:i}){var g;e===null&&await T.mktempPromise(async f=>{let h=v.join(f,"yarn.cjs");await T.writeFilePromise(h,r);let{stdout:p}=await hr.execvp(process.execPath,[M.fromPortablePath(h),"--version"],{cwd:f,env:_(P({},process.env),{YARN_IGNORE_PATH:"1"})});if(e=p.trim(),!$ae.default.valid(e))throw new Error(`Invalid semver version. ${ue.pretty(t,"yarn --version",ue.Type.CODE)} returned: -${e}`)});let n=(g=t.projectCwd)!=null?g:t.startingCwd,s=v.resolve(n,".yarn/releases"),o=v.resolve(s,`yarn-${e}.cjs`),a=v.relative(t.startingCwd,o),l=v.relative(n,o),c=t.get("yarnPath"),u=c===null||c.startsWith(`${s}/`);if(i.reportInfo(z.UNNAMED,`Saving the new release in ${ue.pretty(t,a,"magenta")}`),await T.removePromise(v.dirname(o)),await T.mkdirPromise(v.dirname(o),{recursive:!0}),await T.writeFilePromise(o,r,{mode:493}),u){await fe.updateConfiguration(n,{yarnPath:l});let f=await Ze.tryFind(n)||new Ze;e&&de.isTaggedYarnVersion(e)&&(f.packageManager=`yarn@${e}`);let h={};f.exportTo(h);let p=v.join(n,Ze.fileName),d=`${JSON.stringify(h,null,f.indent)} -`;await T.changeFilePromise(p,d,{automaticNewlines:!0})}}var X4e=/^[0-9]+$/;function iAe(t){return X4e.test(t)?`pull/${t}/head`:t}var Z4e=({repository:t,branch:e},r)=>[["git","init",M.fromPortablePath(r)],["git","remote","add","origin",t],["git","fetch","origin",iAe(e)],["git","reset","--hard","FETCH_HEAD"]],$4e=({branch:t})=>[["git","fetch","origin",iAe(t),"--force"],["git","reset","--hard","FETCH_HEAD"],["git","clean","-dfx"]],eze=({plugins:t,noMinify:e},r)=>[["yarn","build:cli",...new Array().concat(...t.map(i=>["--plugin",v.resolve(r,i)])),...e?["--no-minify"]:[],"|"]],SC=class extends Be{constructor(){super(...arguments);this.installPath=Y.String("--path",{description:"The path where the repository should be cloned to"});this.repository=Y.String("--repository","https://github.com/yarnpkg/berry.git",{description:"The repository that should be cloned"});this.branch=Y.String("--branch","master",{description:"The branch of the repository that should be cloned"});this.plugins=Y.Array("--plugin",[],{description:"An array of additional plugins that should be included in the bundle"});this.noMinify=Y.Boolean("--no-minify",!1,{description:"Build a bundle for development (debugging) - non-minified and non-mangled"});this.force=Y.Boolean("-f,--force",!1,{description:"Always clone the repository instead of trying to fetch the latest commits"});this.skipPlugins=Y.Boolean("--skip-plugins",!1,{description:"Skip updating the contrib plugins"})}async execute(){let e=await fe.find(this.context.cwd,this.context.plugins),{project:r}=await Ke.find(e,this.context.cwd),i=typeof this.installPath!="undefined"?v.resolve(this.context.cwd,M.toPortablePath(this.installPath)):v.resolve(M.toPortablePath((0,rAe.tmpdir)()),"yarnpkg-sources",mn.makeHash(this.repository).slice(0,6));return(await Fe.start({configuration:e,stdout:this.context.stdout},async s=>{await $N(this,{configuration:e,report:s,target:i}),s.reportSeparator(),s.reportInfo(z.UNNAMED,"Building a fresh bundle"),s.reportSeparator(),await xC(eze(this,i),{configuration:e,context:this.context,target:i}),s.reportSeparator();let o=v.resolve(i,"packages/yarnpkg-cli/bundles/yarn.js"),a=await T.readFilePromise(o);await XN(e,"sources",a,{report:s}),this.skipPlugins||await tze(this,{project:r,report:s,target:i})})).exitCode()}};SC.paths=[["set","version","from","sources"]],SC.usage=ye.Usage({description:"build Yarn from master",details:` - This command will clone the Yarn repository into a temporary folder, then build it. The resulting bundle will then be copied into the local project. - - By default, it also updates all contrib plugins to the same commit the bundle is built from. This behavior can be disabled by using the \`--skip-plugins\` flag. - `,examples:[["Build Yarn from master","$0 set version from sources"]]});var nAe=SC;async function xC(t,{configuration:e,context:r,target:i}){for(let[n,...s]of t){let o=s[s.length-1]==="|";if(o&&s.pop(),o)await hr.pipevp(n,s,{cwd:i,stdin:r.stdin,stdout:r.stdout,stderr:r.stderr,strict:!0});else{r.stdout.write(`${ue.pretty(e,` $ ${[n,...s].join(" ")}`,"grey")} -`);try{await hr.execvp(n,s,{cwd:i,strict:!0})}catch(a){throw r.stdout.write(a.stdout||a.stack),a}}}}async function $N(t,{configuration:e,report:r,target:i}){let n=!1;if(!t.force&&T.existsSync(v.join(i,".git"))){r.reportInfo(z.UNNAMED,"Fetching the latest commits"),r.reportSeparator();try{await xC($4e(t),{configuration:e,context:t.context,target:i}),n=!0}catch(s){r.reportSeparator(),r.reportWarning(z.UNNAMED,"Repository update failed; we'll try to regenerate it")}}n||(r.reportInfo(z.UNNAMED,"Cloning the remote repository"),r.reportSeparator(),await T.removePromise(i),await T.mkdirPromise(i,{recursive:!0}),await xC(Z4e(t,i),{configuration:e,context:t.context,target:i}))}async function tze(t,{project:e,report:r,target:i}){let n=await Kc(e.configuration),s=new Set(Object.keys(n));for(let o of e.configuration.plugins.keys())!s.has(o)||await ZN(o,t,{project:e,report:r,target:i})}var sAe=ie(Or()),oAe=ie(require("url")),aAe=ie(require("vm"));var kC=class extends Be{constructor(){super(...arguments);this.name=Y.String()}async execute(){let e=await fe.find(this.context.cwd,this.context.plugins);return(await Fe.start({configuration:e,stdout:this.context.stdout},async i=>{let{project:n}=await Ke.find(e,this.context.cwd),s,o;if(this.name.match(/^\.{0,2}[\\/]/)||M.isAbsolute(this.name)){let a=v.resolve(this.context.cwd,M.toPortablePath(this.name));i.reportInfo(z.UNNAMED,`Reading ${ue.pretty(e,a,ue.Type.PATH)}`),s=v.relative(n.cwd,a),o=await T.readFilePromise(a)}else{let a;if(this.name.match(/^https?:/)){try{new oAe.URL(this.name)}catch{throw new nt(z.INVALID_PLUGIN_REFERENCE,`Plugin specifier "${this.name}" is neither a plugin name nor a valid url`)}s=this.name,a=this.name}else{let l=S.parseLocator(this.name.replace(/^((@yarnpkg\/)?plugin-)?/,"@yarnpkg/plugin-"));if(l.reference!=="unknown"&&!sAe.default.valid(l.reference))throw new nt(z.UNNAMED,"Official plugins only accept strict version references. Use an explicit URL if you wish to download them from another location.");let c=S.stringifyIdent(l),u=await Kc(e);if(!Object.prototype.hasOwnProperty.call(u,c))throw new nt(z.PLUGIN_NAME_NOT_FOUND,`Couldn't find a plugin named "${c}" on the remote registry. Note that only the plugins referenced on our website (https://github.com/yarnpkg/berry/blob/master/plugins.yml) can be referenced by their name; any other plugin will have to be referenced through its public url (for example https://github.com/yarnpkg/berry/raw/master/packages/plugin-typescript/bin/%40yarnpkg/plugin-typescript.js).`);s=c,a=u[c].url,l.reference!=="unknown"?a=a.replace(/\/master\//,`/${c}/${l.reference}/`):Zr!==null&&(a=a.replace(/\/master\//,`/@yarnpkg/cli/${Zr}/`))}i.reportInfo(z.UNNAMED,`Downloading ${ue.pretty(e,a,"green")}`),o=await Zt.get(a,{configuration:e})}await eL(s,o,{project:n,report:i})})).exitCode()}};kC.paths=[["plugin","import"]],kC.usage=ye.Usage({category:"Plugin-related commands",description:"download a plugin",details:` - This command downloads the specified plugin from its remote location and updates the configuration to reference it in further CLI invocations. - - Three types of plugin references are accepted: - - - If the plugin is stored within the Yarn repository, it can be referenced by name. - - Third-party plugins can be referenced directly through their public urls. - - Local plugins can be referenced by their path on the disk. - - Plugins cannot be downloaded from the npm registry, and aren't allowed to have dependencies (they need to be bundled into a single file, possibly thanks to the \`@yarnpkg/builder\` package). - `,examples:[['Download and activate the "@yarnpkg/plugin-exec" plugin',"$0 plugin import @yarnpkg/plugin-exec"],['Download and activate the "@yarnpkg/plugin-exec" plugin (shorthand)',"$0 plugin import exec"],["Download and activate a community plugin","$0 plugin import https://example.org/path/to/plugin.js"],["Activate a local plugin","$0 plugin import ./path/to/plugin.js"]]});var AAe=kC;async function eL(t,e,{project:r,report:i}){let{configuration:n}=r,s={},o={exports:s};(0,aAe.runInNewContext)(e.toString(),{module:o,exports:s});let a=o.exports.name,l=`.yarn/plugins/${a}.cjs`,c=v.resolve(r.cwd,l);i.reportInfo(z.UNNAMED,`Saving the new plugin in ${ue.pretty(n,l,"magenta")}`),await T.mkdirPromise(v.dirname(c),{recursive:!0}),await T.writeFilePromise(c,e);let u={path:l,spec:t};await fe.updateConfiguration(r.cwd,g=>{let f=[],h=!1;for(let p of g.plugins||[]){let d=typeof p!="string"?p.path:p,m=v.resolve(r.cwd,M.toPortablePath(d)),{name:I}=de.dynamicRequire(m);I!==a?f.push(p):(f.push(u),h=!0)}return h||f.push(u),_(P({},g),{plugins:f})})}var rze=({pluginName:t,noMinify:e},r)=>[["yarn",`build:${t}`,...e?["--no-minify"]:[],"|"]],PC=class extends Be{constructor(){super(...arguments);this.installPath=Y.String("--path",{description:"The path where the repository should be cloned to"});this.repository=Y.String("--repository","https://github.com/yarnpkg/berry.git",{description:"The repository that should be cloned"});this.branch=Y.String("--branch","master",{description:"The branch of the repository that should be cloned"});this.noMinify=Y.Boolean("--no-minify",!1,{description:"Build a plugin for development (debugging) - non-minified and non-mangled"});this.force=Y.Boolean("-f,--force",!1,{description:"Always clone the repository instead of trying to fetch the latest commits"});this.name=Y.String()}async execute(){let e=await fe.find(this.context.cwd,this.context.plugins),r=typeof this.installPath!="undefined"?v.resolve(this.context.cwd,M.toPortablePath(this.installPath)):v.resolve(M.toPortablePath((0,lAe.tmpdir)()),"yarnpkg-sources",mn.makeHash(this.repository).slice(0,6));return(await Fe.start({configuration:e,stdout:this.context.stdout},async n=>{let{project:s}=await Ke.find(e,this.context.cwd),o=S.parseIdent(this.name.replace(/^((@yarnpkg\/)?plugin-)?/,"@yarnpkg/plugin-")),a=S.stringifyIdent(o),l=await Kc(e);if(!Object.prototype.hasOwnProperty.call(l,a))throw new nt(z.PLUGIN_NAME_NOT_FOUND,`Couldn't find a plugin named "${a}" on the remote registry. Note that only the plugins referenced on our website (https://github.com/yarnpkg/berry/blob/master/plugins.yml) can be built and imported from sources.`);let c=a;await $N(this,{configuration:e,report:n,target:r}),await ZN(c,this,{project:s,report:n,target:r})})).exitCode()}};PC.paths=[["plugin","import","from","sources"]],PC.usage=ye.Usage({category:"Plugin-related commands",description:"build a plugin from sources",details:` - This command clones the Yarn repository into a temporary folder, builds the specified contrib plugin and updates the configuration to reference it in further CLI invocations. - - The plugins can be referenced by their short name if sourced from the official Yarn repository. - `,examples:[['Build and activate the "@yarnpkg/plugin-exec" plugin',"$0 plugin import from sources @yarnpkg/plugin-exec"],['Build and activate the "@yarnpkg/plugin-exec" plugin (shorthand)',"$0 plugin import from sources exec"]]});var cAe=PC;async function ZN(t,{context:e,noMinify:r},{project:i,report:n,target:s}){let o=t.replace(/@yarnpkg\//,""),{configuration:a}=i;n.reportSeparator(),n.reportInfo(z.UNNAMED,`Building a fresh ${o}`),n.reportSeparator(),await xC(rze({pluginName:o,noMinify:r},s),{configuration:a,context:e,target:s}),n.reportSeparator();let l=v.resolve(s,`packages/${o}/bundles/${t}.js`),c=await T.readFilePromise(l);await eL(t,c,{project:i,report:n})}var DC=class extends Be{constructor(){super(...arguments);this.name=Y.String()}async execute(){let e=await fe.find(this.context.cwd,this.context.plugins),{project:r}=await Ke.find(e,this.context.cwd);return(await Fe.start({configuration:e,stdout:this.context.stdout},async n=>{let s=this.name,o=S.parseIdent(s);if(!e.plugins.has(s))throw new me(`${S.prettyIdent(e,o)} isn't referenced by the current configuration`);let a=`.yarn/plugins/${s}.cjs`,l=v.resolve(r.cwd,a);T.existsSync(l)&&(n.reportInfo(z.UNNAMED,`Removing ${ue.pretty(e,a,ue.Type.PATH)}...`),await T.removePromise(l)),n.reportInfo(z.UNNAMED,"Updating the configuration..."),await fe.updateConfiguration(r.cwd,c=>{if(!Array.isArray(c.plugins))return c;let u=c.plugins.filter(g=>g.path!==a);return c.plugins.length===u.length?c:_(P({},c),{plugins:u})})})).exitCode()}};DC.paths=[["plugin","remove"]],DC.usage=ye.Usage({category:"Plugin-related commands",description:"remove a plugin",details:` - This command deletes the specified plugin from the .yarn/plugins folder and removes it from the configuration. - - **Note:** The plugins have to be referenced by their name property, which can be obtained using the \`yarn plugin runtime\` command. Shorthands are not allowed. - `,examples:[["Remove a plugin imported from the Yarn repository","$0 plugin remove @yarnpkg/plugin-typescript"],["Remove a plugin imported from a local file","$0 plugin remove my-local-plugin"]]});var uAe=DC;var RC=class extends Be{constructor(){super(...arguments);this.json=Y.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let e=await fe.find(this.context.cwd,this.context.plugins);return(await Fe.start({configuration:e,json:this.json,stdout:this.context.stdout},async i=>{for(let n of e.plugins.keys()){let s=this.context.plugins.plugins.has(n),o=n;s&&(o+=" [builtin]"),i.reportJson({name:n,builtin:s}),i.reportInfo(null,`${o}`)}})).exitCode()}};RC.paths=[["plugin","runtime"]],RC.usage=ye.Usage({category:"Plugin-related commands",description:"list the active plugins",details:` - This command prints the currently active plugins. Will be displayed both builtin plugins and external plugins. - `,examples:[["List the currently active plugins","$0 plugin runtime"]]});var gAe=RC;var FC=class extends Be{constructor(){super(...arguments);this.idents=Y.Rest()}async execute(){let e=await fe.find(this.context.cwd,this.context.plugins),{project:r,workspace:i}=await Ke.find(e,this.context.cwd),n=await Qt.find(e);if(!i)throw new rt(r.cwd,this.context.cwd);let s=new Set;for(let a of this.idents)s.add(S.parseIdent(a).identHash);if(await r.restoreInstallState({restoreResolutions:!1}),await r.resolveEverything({cache:n,report:new ei}),s.size>0)for(let a of r.storedPackages.values())s.has(a.identHash)&&r.storedBuildState.delete(a.locatorHash);else r.storedBuildState.clear();return(await Fe.start({configuration:e,stdout:this.context.stdout,includeLogs:!this.context.quiet},async a=>{await r.install({cache:n,report:a})})).exitCode()}};FC.paths=[["rebuild"]],FC.usage=ye.Usage({description:"rebuild the project's native packages",details:` - This command will automatically cause Yarn to forget about previous compilations of the given packages and to run them again. - - Note that while Yarn forgets the compilation, the previous artifacts aren't erased from the filesystem and may affect the next builds (in good or bad). To avoid this, you may remove the .yarn/unplugged folder, or any other relevant location where packages might have been stored (Yarn may offer a way to do that automatically in the future). - - By default all packages will be rebuilt, but you can filter the list by specifying the names of the packages you want to clear from memory. - `,examples:[["Rebuild all packages","$0 rebuild"],["Rebuild fsevents only","$0 rebuild fsevents"]]});var fAe=FC;var tL=ie(Nn());Ss();var NC=class extends Be{constructor(){super(...arguments);this.all=Y.Boolean("-A,--all",!1,{description:"Apply the operation to all workspaces from the current project"});this.mode=Y.String("--mode",{description:"Change what artifacts installs generate",validator:Yi(li)});this.patterns=Y.Rest()}async execute(){let e=await fe.find(this.context.cwd,this.context.plugins),{project:r,workspace:i}=await Ke.find(e,this.context.cwd),n=await Qt.find(e);if(!i)throw new rt(r.cwd,this.context.cwd);await r.restoreInstallState({restoreResolutions:!1});let s=this.all?r.workspaces:[i],o=[vr.REGULAR,vr.DEVELOPMENT,vr.PEER],a=[],l=!1,c=[];for(let h of this.patterns){let p=!1,d=S.parseIdent(h);for(let m of s){let I=[...m.manifest.peerDependenciesMeta.keys()];for(let B of(0,tL.default)(I,h))m.manifest.peerDependenciesMeta.delete(B),l=!0,p=!0;for(let B of o){let b=m.manifest.getForScope(B),R=[...b.values()].map(H=>S.stringifyIdent(H));for(let H of(0,tL.default)(R,S.stringifyIdent(d))){let{identHash:L}=S.parseIdent(H),K=b.get(L);if(typeof K=="undefined")throw new Error("Assertion failed: Expected the descriptor to be registered");m.manifest[B].delete(L),c.push([m,B,K]),l=!0,p=!0}}}p||a.push(h)}let u=a.length>1?"Patterns":"Pattern",g=a.length>1?"don't":"doesn't",f=this.all?"any":"this";if(a.length>0)throw new me(`${u} ${ue.prettyList(e,a,ps.CODE)} ${g} match any packages referenced by ${f} workspace`);return l?(await e.triggerMultipleHooks(p=>p.afterWorkspaceDependencyRemoval,c),(await Fe.start({configuration:e,stdout:this.context.stdout},async p=>{await r.install({cache:n,report:p,mode:this.mode})})).exitCode()):0}};NC.paths=[["remove"]],NC.usage=ye.Usage({description:"remove dependencies from the project",details:` - This command will remove the packages matching the specified patterns from the current workspace. - - If the \`--mode=\` option is set, Yarn will change which artifacts are generated. The modes currently supported are: - - - \`skip-build\` will not run the build scripts at all. Note that this is different from setting \`enableScripts\` to false because the later will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run. - - - \`update-lockfile\` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost. - - This command accepts glob patterns as arguments (if valid Idents and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them. - `,examples:[["Remove a dependency from the current project","$0 remove lodash"],["Remove a dependency from all workspaces at once","$0 remove lodash --all"],["Remove all dependencies starting with `eslint-`","$0 remove 'eslint-*'"],["Remove all dependencies with the `@babel` scope","$0 remove '@babel/*'"],["Remove all dependencies matching `react-dom` or `react-helmet`","$0 remove 'react-{dom,helmet}'"]]});var hAe=NC;var pAe=ie(require("util")),z0=class extends Be{async execute(){let e=await fe.find(this.context.cwd,this.context.plugins),{project:r,workspace:i}=await Ke.find(e,this.context.cwd);if(!i)throw new rt(r.cwd,this.context.cwd);return(await Fe.start({configuration:e,stdout:this.context.stdout},async s=>{let o=i.manifest.scripts,a=de.sortMap(o.keys(),u=>u),l={breakLength:Infinity,colors:e.get("enableColors"),maxArrayLength:2},c=a.reduce((u,g)=>Math.max(u,g.length),0);for(let[u,g]of o.entries())s.reportInfo(null,`${u.padEnd(c," ")} ${(0,pAe.inspect)(g,l)}`)})).exitCode()}};z0.paths=[["run"]];var dAe=z0;var LC=class extends Be{constructor(){super(...arguments);this.inspect=Y.String("--inspect",!1,{tolerateBoolean:!0,description:"Forwarded to the underlying Node process when executing a binary"});this.inspectBrk=Y.String("--inspect-brk",!1,{tolerateBoolean:!0,description:"Forwarded to the underlying Node process when executing a binary"});this.topLevel=Y.Boolean("-T,--top-level",!1,{description:"Check the root workspace for scripts and/or binaries instead of the current one"});this.binariesOnly=Y.Boolean("-B,--binaries-only",!1,{description:"Ignore any user defined scripts and only check for binaries"});this.silent=Y.Boolean("--silent",{hidden:!0});this.scriptName=Y.String();this.args=Y.Proxy()}async execute(){let e=await fe.find(this.context.cwd,this.context.plugins),{project:r,workspace:i,locator:n}=await Ke.find(e,this.context.cwd);await r.restoreInstallState();let s=this.topLevel?r.topLevelWorkspace.anchoredLocator:n;if(!this.binariesOnly&&await Kt.hasPackageScript(s,this.scriptName,{project:r}))return await Kt.executePackageScript(s,this.scriptName,this.args,{project:r,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr});let o=await Kt.getPackageAccessibleBinaries(s,{project:r});if(o.get(this.scriptName)){let l=[];return this.inspect&&(typeof this.inspect=="string"?l.push(`--inspect=${this.inspect}`):l.push("--inspect")),this.inspectBrk&&(typeof this.inspectBrk=="string"?l.push(`--inspect-brk=${this.inspectBrk}`):l.push("--inspect-brk")),await Kt.executePackageAccessibleBinary(s,this.scriptName,this.args,{cwd:this.context.cwd,project:r,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,nodeArgs:l,packageAccessibleBinaries:o})}if(!this.topLevel&&!this.binariesOnly&&i&&this.scriptName.includes(":")){let c=(await Promise.all(r.workspaces.map(async u=>u.manifest.scripts.has(this.scriptName)?u:null))).filter(u=>u!==null);if(c.length===1)return await Kt.executeWorkspaceScript(c[0],this.scriptName,this.args,{stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr})}if(this.topLevel)throw this.scriptName==="node-gyp"?new me(`Couldn't find a script name "${this.scriptName}" in the top-level (used by ${S.prettyLocator(e,n)}). This typically happens because some package depends on "node-gyp" to build itself, but didn't list it in their dependencies. To fix that, please run "yarn add node-gyp" into your top-level workspace. You also can open an issue on the repository of the specified package to suggest them to use an optional peer dependency.`):new me(`Couldn't find a script name "${this.scriptName}" in the top-level (used by ${S.prettyLocator(e,n)}).`);{if(this.scriptName==="global")throw new me("The 'yarn global' commands have been removed in 2.x - consider using 'yarn dlx' or a third-party plugin instead");let l=[this.scriptName].concat(this.args);for(let[c,u]of Yg)for(let g of u)if(l.length>=g.length&&JSON.stringify(l.slice(0,g.length))===JSON.stringify(g))throw new me(`Couldn't find a script named "${this.scriptName}", but a matching command can be found in the ${c} plugin. You can install it with "yarn plugin import ${c}".`);throw new me(`Couldn't find a script named "${this.scriptName}".`)}}};LC.paths=[["run"]],LC.usage=ye.Usage({description:"run a script defined in the package.json",details:` - This command will run a tool. The exact tool that will be executed will depend on the current state of your workspace: - - - If the \`scripts\` field from your local package.json contains a matching script name, its definition will get executed. - - - Otherwise, if one of the local workspace's dependencies exposes a binary with a matching name, this binary will get executed. - - - Otherwise, if the specified name contains a colon character and if one of the workspaces in the project contains exactly one script with a matching name, then this script will get executed. - - Whatever happens, the cwd of the spawned process will be the workspace that declares the script (which makes it possible to call commands cross-workspaces using the third syntax). - `,examples:[["Run the tests from the local workspace","$0 run test"],['Same thing, but without the "run" keyword',"$0 test"],["Inspect Webpack while running","$0 run --inspect-brk webpack"]]});var CAe=LC;var TC=class extends Be{constructor(){super(...arguments);this.save=Y.Boolean("-s,--save",!1,{description:"Persist the resolution inside the top-level manifest"});this.descriptor=Y.String();this.resolution=Y.String()}async execute(){let e=await fe.find(this.context.cwd,this.context.plugins),{project:r,workspace:i}=await Ke.find(e,this.context.cwd),n=await Qt.find(e);if(await r.restoreInstallState({restoreResolutions:!1}),!i)throw new rt(r.cwd,this.context.cwd);let s=S.parseDescriptor(this.descriptor,!0),o=S.makeDescriptor(s,this.resolution);return r.storedDescriptors.set(s.descriptorHash,s),r.storedDescriptors.set(o.descriptorHash,o),r.resolutionAliases.set(s.descriptorHash,o.descriptorHash),(await Fe.start({configuration:e,stdout:this.context.stdout},async l=>{await r.install({cache:n,report:l})})).exitCode()}};TC.paths=[["set","resolution"]],TC.usage=ye.Usage({description:"enforce a package resolution",details:'\n This command updates the resolution table so that `descriptor` is resolved by `resolution`.\n\n Note that by default this command only affect the current resolution table - meaning that this "manual override" will disappear if you remove the lockfile, or if the package disappear from the table. If you wish to make the enforced resolution persist whatever happens, add the `-s,--save` flag which will also edit the `resolutions` field from your top-level manifest.\n\n Note that no attempt is made at validating that `resolution` is a valid resolution entry for `descriptor`.\n ',examples:[["Force all instances of lodash@npm:^1.2.3 to resolve to 1.5.0","$0 set resolution lodash@npm:^1.2.3 1.5.0"]]});var mAe=TC;var EAe=ie(Nn()),MC=class extends Be{constructor(){super(...arguments);this.all=Y.Boolean("-A,--all",!1,{description:"Unlink all workspaces belonging to the target project from the current one"});this.leadingArguments=Y.Rest()}async execute(){let e=await fe.find(this.context.cwd,this.context.plugins),{project:r,workspace:i}=await Ke.find(e,this.context.cwd),n=await Qt.find(e);if(!i)throw new rt(r.cwd,this.context.cwd);let s=r.topLevelWorkspace,o=new Set;if(this.leadingArguments.length===0&&this.all)for(let{pattern:l,reference:c}of s.manifest.resolutions)c.startsWith("portal:")&&o.add(l.descriptor.fullName);if(this.leadingArguments.length>0)for(let l of this.leadingArguments){let c=v.resolve(this.context.cwd,M.toPortablePath(l));if(de.isPathLike(l)){let u=await fe.find(c,this.context.plugins,{useRc:!1,strict:!1}),{project:g,workspace:f}=await Ke.find(u,c);if(!f)throw new rt(g.cwd,c);if(this.all){for(let h of g.workspaces)h.manifest.name&&o.add(S.stringifyIdent(h.locator));if(o.size===0)throw new me("No workspace found to be unlinked in the target project")}else{if(!f.manifest.name)throw new me("The target workspace doesn't have a name and thus cannot be unlinked");o.add(S.stringifyIdent(f.locator))}}else{let u=[...s.manifest.resolutions.map(({pattern:g})=>g.descriptor.fullName)];for(let g of(0,EAe.default)(u,l))o.add(g)}}return s.manifest.resolutions=s.manifest.resolutions.filter(({pattern:l})=>!o.has(l.descriptor.fullName)),(await Fe.start({configuration:e,stdout:this.context.stdout},async l=>{await r.install({cache:n,report:l})})).exitCode()}};MC.paths=[["unlink"]],MC.usage=ye.Usage({description:"disconnect the local project from another one",details:` - This command will remove any resolutions in the project-level manifest that would have been added via a yarn link with similar arguments. - `,examples:[["Unregister a remote workspace in the current project","$0 unlink ~/ts-loader"],["Unregister all workspaces from a remote project in the current project","$0 unlink ~/jest --all"],["Unregister all previously linked workspaces","$0 unlink --all"],["Unregister all workspaces matching a glob","$0 unlink '@babel/*' 'pkg-{a,b}'"]]});var IAe=MC;var yAe=ie(aC()),rL=ie(Nn());Ss();var uf=class extends Be{constructor(){super(...arguments);this.interactive=Y.Boolean("-i,--interactive",{description:"Offer various choices, depending on the detected upgrade paths"});this.exact=Y.Boolean("-E,--exact",!1,{description:"Don't use any semver modifier on the resolved range"});this.tilde=Y.Boolean("-T,--tilde",!1,{description:"Use the `~` semver modifier on the resolved range"});this.caret=Y.Boolean("-C,--caret",!1,{description:"Use the `^` semver modifier on the resolved range"});this.recursive=Y.Boolean("-R,--recursive",!1,{description:"Resolve again ALL resolutions for those packages"});this.mode=Y.String("--mode",{description:"Change what artifacts installs generate",validator:Yi(li)});this.patterns=Y.Rest()}async execute(){return this.recursive?await this.executeUpRecursive():await this.executeUpClassic()}async executeUpRecursive(){let e=await fe.find(this.context.cwd,this.context.plugins),{project:r,workspace:i}=await Ke.find(e,this.context.cwd),n=await Qt.find(e);if(!i)throw new rt(r.cwd,this.context.cwd);await r.restoreInstallState({restoreResolutions:!1});let s=[...r.storedDescriptors.values()],o=s.map(u=>S.stringifyIdent(u)),a=new Set;for(let u of this.patterns){if(S.parseDescriptor(u).range!=="unknown")throw new me("Ranges aren't allowed when using --recursive");for(let g of(0,rL.default)(o,u)){let f=S.parseIdent(g);a.add(f.identHash)}}let l=s.filter(u=>a.has(u.identHash));for(let u of l)r.storedDescriptors.delete(u.descriptorHash),r.storedResolutions.delete(u.descriptorHash);return(await Fe.start({configuration:e,stdout:this.context.stdout},async u=>{await r.install({cache:n,report:u})})).exitCode()}async executeUpClassic(){var d;let e=await fe.find(this.context.cwd,this.context.plugins),{project:r,workspace:i}=await Ke.find(e,this.context.cwd),n=await Qt.find(e);if(!i)throw new rt(r.cwd,this.context.cwd);await r.restoreInstallState({restoreResolutions:!1});let s=(d=this.interactive)!=null?d:e.get("preferInteractive"),o=AC(this,r),a=s?[Fr.KEEP,Fr.REUSE,Fr.PROJECT,Fr.LATEST]:[Fr.PROJECT,Fr.LATEST],l=[],c=[];for(let m of this.patterns){let I=!1,B=S.parseDescriptor(m);for(let b of r.workspaces)for(let R of[vr.REGULAR,vr.DEVELOPMENT]){let L=[...b.manifest.getForScope(R).values()].map(K=>S.stringifyIdent(K));for(let K of(0,rL.default)(L,S.stringifyIdent(B))){let J=S.parseIdent(K),ne=b.manifest[R].get(J.identHash);if(typeof ne=="undefined")throw new Error("Assertion failed: Expected the descriptor to be registered");let q=S.makeDescriptor(J,B.range);l.push(Promise.resolve().then(async()=>[b,R,ne,await lC(q,{project:r,workspace:b,cache:n,target:R,modifier:o,strategies:a})])),I=!0}}I||c.push(m)}if(c.length>1)throw new me(`Patterns ${ue.prettyList(e,c,ps.CODE)} don't match any packages referenced by any workspace`);if(c.length>0)throw new me(`Pattern ${ue.prettyList(e,c,ps.CODE)} doesn't match any packages referenced by any workspace`);let u=await Promise.all(l),g=await Fa.start({configuration:e,stdout:this.context.stdout,suggestInstall:!1},async m=>{for(let[,,I,{suggestions:B,rejections:b}]of u){let R=B.filter(H=>H.descriptor!==null);if(R.length===0){let[H]=b;if(typeof H=="undefined")throw new Error("Assertion failed: Expected an error to have been set");let L=this.cli.error(H);r.configuration.get("enableNetwork")?m.reportError(z.CANT_SUGGEST_RESOLUTIONS,`${S.prettyDescriptor(e,I)} can't be resolved to a satisfying range - -${L}`):m.reportError(z.CANT_SUGGEST_RESOLUTIONS,`${S.prettyDescriptor(e,I)} can't be resolved to a satisfying range (note: network resolution has been disabled) - -${L}`)}else R.length>1&&!s&&m.reportError(z.CANT_SUGGEST_RESOLUTIONS,`${S.prettyDescriptor(e,I)} has multiple possible upgrade strategies; use -i to disambiguate manually`)}});if(g.hasErrors())return g.exitCode();let f=!1,h=[];for(let[m,I,,{suggestions:B}]of u){let b,R=B.filter(J=>J.descriptor!==null),H=R[0].descriptor,L=R.every(J=>S.areDescriptorsEqual(J.descriptor,H));R.length===1||L?b=H:(f=!0,{answer:b}=await(0,yAe.prompt)({type:"select",name:"answer",message:`Which range to you want to use in ${S.prettyWorkspace(e,m)} \u276F ${I}?`,choices:B.map(({descriptor:J,name:ne,reason:q})=>J?{name:ne,hint:q,descriptor:J}:{name:ne,hint:q,disabled:!0}),onCancel:()=>process.exit(130),result(J){return this.find(J,"descriptor")},stdin:this.context.stdin,stdout:this.context.stdout}));let K=m.manifest[I].get(b.identHash);if(typeof K=="undefined")throw new Error("Assertion failed: This descriptor should have a matching entry");if(K.descriptorHash!==b.descriptorHash)m.manifest[I].set(b.identHash,b),h.push([m,I,K,b]);else{let J=e.makeResolver(),ne={project:r,resolver:J},q=J.bindDescriptor(K,m.anchoredLocator,ne);r.forgetResolution(q)}}return await e.triggerMultipleHooks(m=>m.afterWorkspaceDependencyReplacement,h),f&&this.context.stdout.write(` -`),(await Fe.start({configuration:e,stdout:this.context.stdout},async m=>{await r.install({cache:n,report:m,mode:this.mode})})).exitCode()}};uf.paths=[["up"]],uf.usage=ye.Usage({description:"upgrade dependencies across the project",details:"\n This command upgrades the packages matching the list of specified patterns to their latest available version across the whole project (regardless of whether they're part of `dependencies` or `devDependencies` - `peerDependencies` won't be affected). This is a project-wide command: all workspaces will be upgraded in the process.\n\n If `-R,--recursive` is set the command will change behavior and no other switch will be allowed. When operating under this mode `yarn up` will force all ranges matching the selected packages to be resolved again (often to the highest available versions) before being stored in the lockfile. It however won't touch your manifests anymore, so depending on your needs you might want to run both `yarn up` and `yarn up -R` to cover all bases.\n\n If `-i,--interactive` is set (or if the `preferInteractive` settings is toggled on) the command will offer various choices, depending on the detected upgrade paths. Some upgrades require this flag in order to resolve ambiguities.\n\n The, `-C,--caret`, `-E,--exact` and `-T,--tilde` options have the same meaning as in the `add` command (they change the modifier used when the range is missing or a tag, and are ignored when the range is explicitly set).\n\n If the `--mode=` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the later will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n\n Generally you can see `yarn up` as a counterpart to what was `yarn upgrade --latest` in Yarn 1 (ie it ignores the ranges previously listed in your manifests), but unlike `yarn upgrade` which only upgraded dependencies in the current workspace, `yarn up` will upgrade all workspaces at the same time.\n\n This command accepts glob patterns as arguments (if valid Descriptors and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them.\n\n **Note:** The ranges have to be static, only the package scopes and names can contain glob patterns.\n ",examples:[["Upgrade all instances of lodash to the latest release","$0 up lodash"],["Upgrade all instances of lodash to the latest release, but ask confirmation for each","$0 up lodash -i"],["Upgrade all instances of lodash to 1.2.3","$0 up lodash@1.2.3"],["Upgrade all instances of packages with the `@babel` scope to the latest release","$0 up '@babel/*'"],["Upgrade all instances of packages containing the word `jest` to the latest release","$0 up '*jest*'"],["Upgrade all instances of packages with the `@babel` scope to 7.0.0","$0 up '@babel/*@7.0.0'"]]}),uf.schema=[pv("recursive",Bl.Forbids,["interactive","exact","tilde","caret"],{ignore:[void 0,!1]})];var wAe=uf;var OC=class extends Be{constructor(){super(...arguments);this.recursive=Y.Boolean("-R,--recursive",!1,{description:"List, for each workspace, what are all the paths that lead to the dependency"});this.json=Y.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.peers=Y.Boolean("--peers",!1,{description:"Also print the peer dependencies that match the specified name"});this.package=Y.String()}async execute(){let e=await fe.find(this.context.cwd,this.context.plugins),{project:r,workspace:i}=await Ke.find(e,this.context.cwd);if(!i)throw new rt(r.cwd,this.context.cwd);await r.restoreInstallState();let n=S.parseIdent(this.package).identHash,s=this.recursive?nze(r,n,{configuration:e,peers:this.peers}):ize(r,n,{configuration:e,peers:this.peers});Hs.emitTree(s,{configuration:e,stdout:this.context.stdout,json:this.json,separators:1})}};OC.paths=[["why"]],OC.usage=ye.Usage({description:"display the reason why a package is needed",details:` - This command prints the exact reasons why a package appears in the dependency tree. - - If \`-R,--recursive\` is set, the listing will go in depth and will list, for each workspaces, what are all the paths that lead to the dependency. Note that the display is somewhat optimized in that it will not print the package listing twice for a single package, so if you see a leaf named "Foo" when looking for "Bar", it means that "Foo" already got printed higher in the tree. - `,examples:[["Explain why lodash is used in your project","$0 why lodash"]]});var BAe=OC;function ize(t,e,{configuration:r,peers:i}){let n=de.sortMap(t.storedPackages.values(),a=>S.stringifyLocator(a)),s={},o={children:s};for(let a of n){let l={},c=null;for(let u of a.dependencies.values()){if(!i&&a.peerDependencies.has(u.identHash))continue;let g=t.storedResolutions.get(u.descriptorHash);if(!g)throw new Error("Assertion failed: The resolution should have been registered");let f=t.storedPackages.get(g);if(!f)throw new Error("Assertion failed: The package should have been registered");if(f.identHash!==e)continue;if(c===null){let p=S.stringifyLocator(a);s[p]={value:[a,ue.Type.LOCATOR],children:l}}let h=S.stringifyLocator(f);l[h]={value:[{descriptor:u,locator:f},ue.Type.DEPENDENT]}}}return o}function nze(t,e,{configuration:r,peers:i}){let n=de.sortMap(t.workspaces,f=>S.stringifyLocator(f.anchoredLocator)),s=new Set,o=new Set,a=f=>{if(s.has(f.locatorHash))return o.has(f.locatorHash);if(s.add(f.locatorHash),f.identHash===e)return o.add(f.locatorHash),!0;let h=!1;f.identHash===e&&(h=!0);for(let p of f.dependencies.values()){if(!i&&f.peerDependencies.has(p.identHash))continue;let d=t.storedResolutions.get(p.descriptorHash);if(!d)throw new Error("Assertion failed: The resolution should have been registered");let m=t.storedPackages.get(d);if(!m)throw new Error("Assertion failed: The package should have been registered");a(m)&&(h=!0)}return h&&o.add(f.locatorHash),h};for(let f of n){let h=t.storedPackages.get(f.anchoredLocator.locatorHash);if(!h)throw new Error("Assertion failed: The package should have been registered");a(h)}let l=new Set,c={},u={children:c},g=(f,h,p)=>{if(!o.has(f.locatorHash))return;let d=p!==null?ue.tuple(ue.Type.DEPENDENT,{locator:f,descriptor:p}):ue.tuple(ue.Type.LOCATOR,f),m={},I={value:d,children:m},B=S.stringifyLocator(f);if(h[B]=I,!l.has(f.locatorHash)&&(l.add(f.locatorHash),!(p!==null&&t.tryWorkspaceByLocator(f))))for(let b of f.dependencies.values()){if(!i&&f.peerDependencies.has(b.identHash))continue;let R=t.storedResolutions.get(b.descriptorHash);if(!R)throw new Error("Assertion failed: The resolution should have been registered");let H=t.storedPackages.get(R);if(!H)throw new Error("Assertion failed: The package should have been registered");g(H,m,b)}};for(let f of n){let h=t.storedPackages.get(f.anchoredLocator.locatorHash);if(!h)throw new Error("Assertion failed: The package should have been registered");g(h,c,null)}return u}var fL={};it(fL,{default:()=>wze,gitUtils:()=>Uc});var Uc={};it(Uc,{TreeishProtocols:()=>vn,clone:()=>cL,fetchBase:()=>jAe,fetchChangedFiles:()=>YAe,fetchChangedWorkspaces:()=>Ize,fetchRoot:()=>GAe,isGitUrl:()=>ff,lsRemote:()=>HAe,normalizeLocator:()=>AL,normalizeRepoUrl:()=>KC,resolveUrl:()=>lL,splitRepoUrl:()=>UC});var oL=ie(OAe()),gf=ie(require("querystring")),aL=ie(Or()),KAe=ie(require("url"));function UAe(){return _(P({},process.env),{GIT_SSH_COMMAND:"ssh -o BatchMode=yes"})}var Eze=[/^ssh:/,/^git(?:\+[^:]+)?:/,/^(?:git\+)?https?:[^#]+\/[^#]+(?:\.git)(?:#.*)?$/,/^git@[^#]+\/[^#]+\.git(?:#.*)?$/,/^(?:github:|https:\/\/github\.com\/)?(?!\.{1,2}\/)([a-zA-Z._0-9-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z._0-9-]+?)(?:\.git)?(?:#.*)?$/,/^https:\/\/github\.com\/(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)\/tarball\/(.+)?$/],vn;(function(n){n.Commit="commit",n.Head="head",n.Tag="tag",n.Semver="semver"})(vn||(vn={}));function ff(t){return t?Eze.some(e=>!!t.match(e)):!1}function UC(t){t=KC(t);let e=t.indexOf("#");if(e===-1)return{repo:t,treeish:{protocol:vn.Head,request:"HEAD"},extra:{}};let r=t.slice(0,e),i=t.slice(e+1);if(i.match(/^[a-z]+=/)){let n=gf.default.parse(i);for(let[l,c]of Object.entries(n))if(typeof c!="string")throw new Error(`Assertion failed: The ${l} parameter must be a literal string`);let s=Object.values(vn).find(l=>Object.prototype.hasOwnProperty.call(n,l)),o,a;typeof s!="undefined"?(o=s,a=n[s]):(o=vn.Head,a="HEAD");for(let l of Object.values(vn))delete n[l];return{repo:r,treeish:{protocol:o,request:a},extra:n}}else{let n=i.indexOf(":"),s,o;return n===-1?(s=null,o=i):(s=i.slice(0,n),o=i.slice(n+1)),{repo:r,treeish:{protocol:s,request:o},extra:{}}}}function KC(t,{git:e=!1}={}){var r;if(t=t.replace(/^git\+https:/,"https:"),t=t.replace(/^(?:github:|https:\/\/github\.com\/)?(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)(?:\.git)?(#.*)?$/,"https://github.com/$1/$2.git$3"),t=t.replace(/^https:\/\/github\.com\/(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)\/tarball\/(.+)?$/,"https://github.com/$1/$2.git#$3"),e){t=t.replace(/^git\+([^:]+):/,"$1:");let i;try{i=KAe.default.parse(t)}catch{i=null}i&&i.protocol==="ssh:"&&((r=i.path)==null?void 0:r.startsWith("/:"))&&(t=t.replace(/^ssh:\/\//,""))}return t}function AL(t){return S.makeLocator(t,KC(t.reference))}async function HAe(t,e){let r=KC(t,{git:!0});if(!Zt.getNetworkSettings(`https://${(0,oL.default)(r).resource}`,{configuration:e}).enableNetwork)throw new Error(`Request to '${r}' has been blocked because of your configuration settings`);let n;try{n=await hr.execvp("git",["ls-remote",r],{cwd:e.startingCwd,env:UAe(),strict:!0})}catch(l){throw l.message=`Listing the refs for ${t} failed`,l}let s=new Map,o=/^([a-f0-9]{40})\t([^\n]+)/gm,a;for(;(a=o.exec(n.stdout))!==null;)s.set(a[2],a[1]);return s}async function lL(t,e){let{repo:r,treeish:{protocol:i,request:n},extra:s}=UC(t),o=await HAe(r,e),a=(c,u)=>{switch(c){case vn.Commit:{if(!u.match(/^[a-f0-9]{40}$/))throw new Error("Invalid commit hash");return gf.default.stringify(_(P({},s),{commit:u}))}case vn.Head:{let g=o.get(u==="HEAD"?u:`refs/heads/${u}`);if(typeof g=="undefined")throw new Error(`Unknown head ("${u}")`);return gf.default.stringify(_(P({},s),{commit:g}))}case vn.Tag:{let g=o.get(`refs/tags/${u}`);if(typeof g=="undefined")throw new Error(`Unknown tag ("${u}")`);return gf.default.stringify(_(P({},s),{commit:g}))}case vn.Semver:{let g=qt.validRange(u);if(!g)throw new Error(`Invalid range ("${u}")`);let f=new Map([...o.entries()].filter(([p])=>p.startsWith("refs/tags/")).map(([p,d])=>[aL.default.parse(p.slice(10)),d]).filter(p=>p[0]!==null)),h=aL.default.maxSatisfying([...f.keys()],g);if(h===null)throw new Error(`No matching range ("${u}")`);return gf.default.stringify(_(P({},s),{commit:f.get(h)}))}case null:{let g;if((g=l(vn.Commit,u))!==null||(g=l(vn.Tag,u))!==null||(g=l(vn.Head,u))!==null)return g;throw u.match(/^[a-f0-9]+$/)?new Error(`Couldn't resolve "${u}" as either a commit, a tag, or a head - if a commit, use the 40-characters commit hash`):new Error(`Couldn't resolve "${u}" as either a commit, a tag, or a head`)}default:throw new Error(`Invalid Git resolution protocol ("${c}")`)}},l=(c,u)=>{try{return a(c,u)}catch(g){return null}};return`${r}#${a(i,n)}`}async function cL(t,e){return await e.getLimit("cloneConcurrency")(async()=>{let{repo:r,treeish:{protocol:i,request:n}}=UC(t);if(i!=="commit")throw new Error("Invalid treeish protocol when cloning");let s=KC(r,{git:!0});if(Zt.getNetworkSettings(`https://${(0,oL.default)(s).resource}`,{configuration:e}).enableNetwork===!1)throw new Error(`Request to '${s}' has been blocked because of your configuration settings`);let o=await T.mktempPromise(),a={cwd:o,env:UAe(),strict:!0};try{await hr.execvp("git",["clone","-c core.autocrlf=false",s,M.fromPortablePath(o)],a),await hr.execvp("git",["checkout",`${n}`],a)}catch(l){throw l.message=`Repository clone failed: ${l.message}`,l}return o})}async function GAe(t){let e=null,r,i=t;do r=i,await T.existsPromise(v.join(r,".git"))&&(e=r),i=v.dirname(r);while(e===null&&i!==r);return e}async function jAe(t,{baseRefs:e}){if(e.length===0)throw new me("Can't run this command with zero base refs specified.");let r=[];for(let a of e){let{code:l}=await hr.execvp("git",["merge-base",a,"HEAD"],{cwd:t});l===0&&r.push(a)}if(r.length===0)throw new me(`No ancestor could be found between any of HEAD and ${e.join(", ")}`);let{stdout:i}=await hr.execvp("git",["merge-base","HEAD",...r],{cwd:t,strict:!0}),n=i.trim(),{stdout:s}=await hr.execvp("git",["show","--quiet","--pretty=format:%s",n],{cwd:t,strict:!0}),o=s.trim();return{hash:n,title:o}}async function YAe(t,{base:e,project:r}){let i=de.buildIgnorePattern(r.configuration.get("changesetIgnorePatterns")),{stdout:n}=await hr.execvp("git",["diff","--name-only",`${e}`],{cwd:t,strict:!0}),s=n.split(/\r\n|\r|\n/).filter(c=>c.length>0).map(c=>v.resolve(t,M.toPortablePath(c))),{stdout:o}=await hr.execvp("git",["ls-files","--others","--exclude-standard"],{cwd:t,strict:!0}),a=o.split(/\r\n|\r|\n/).filter(c=>c.length>0).map(c=>v.resolve(t,M.toPortablePath(c))),l=[...new Set([...s,...a].sort())];return i?l.filter(c=>!v.relative(r.cwd,c).match(i)):l}async function Ize({ref:t,project:e}){if(e.configuration.projectCwd===null)throw new me("This command can only be run from within a Yarn project");let r=[v.resolve(e.cwd,e.configuration.get("cacheFolder")),v.resolve(e.cwd,e.configuration.get("installStatePath")),v.resolve(e.cwd,e.configuration.get("lockfileFilename")),v.resolve(e.cwd,e.configuration.get("virtualFolder"))];await e.configuration.triggerHook(o=>o.populateYarnPaths,e,o=>{o!=null&&r.push(o)});let i=await GAe(e.configuration.projectCwd);if(i==null)throw new me("This command can only be run on Git repositories");let n=await jAe(i,{baseRefs:typeof t=="string"?[t]:e.configuration.get("changesetBaseRefs")}),s=await YAe(i,{base:n.hash,project:e});return new Set(de.mapAndFilter(s,o=>{let a=e.tryWorkspaceByFilePath(o);return a===null?de.mapAndFilter.skip:r.some(l=>o.startsWith(l))?de.mapAndFilter.skip:a}))}var uL=class{supports(e,r){return ff(e.reference)}getLocalPath(e,r){return null}async fetch(e,r){let i=r.checksums.get(e.locatorHash)||null,n=AL(e),s=new Map(r.checksums);s.set(n.locatorHash,i);let o=_(P({},r),{checksums:s}),a=await this.downloadHosted(n,o);if(a!==null)return a;let[l,c,u]=await r.cache.fetchPackageFromCache(e,i,P({onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${S.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from the remote repository`),loader:()=>this.cloneFromRemote(n,o),skipIntegrityCheck:r.skipIntegrityCheck},r.cacheOptions));return{packageFs:l,releaseFs:c,prefixPath:S.getIdentVendorPath(e),checksum:u}}async downloadHosted(e,r){return r.project.configuration.reduceHook(i=>i.fetchHostedRepository,null,e,r)}async cloneFromRemote(e,r){let i=await cL(e.reference,r.project.configuration),n=UC(e.reference),s=v.join(i,"package.tgz");await Kt.prepareExternalProject(i,s,{configuration:r.project.configuration,report:r.report,workspace:n.extra.workspace,locator:e});let o=await T.readFilePromise(s);return await de.releaseAfterUseAsync(async()=>await Ai.convertToZip(o,{compressionLevel:r.project.configuration.get("compressionLevel"),prefixPath:S.getIdentVendorPath(e),stripComponents:1}))}};var gL=class{supportsDescriptor(e,r){return ff(e.range)}supportsLocator(e,r){return ff(e.reference)}shouldPersistResolution(e,r){return!0}bindDescriptor(e,r,i){return e}getResolutionDependencies(e,r){return[]}async getCandidates(e,r,i){let n=await lL(e.range,i.project.configuration);return[S.makeLocator(e,n)]}async getSatisfying(e,r,i){return null}async resolve(e,r){if(!r.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let i=await r.fetchOptions.fetcher.fetch(e,r.fetchOptions),n=await de.releaseAfterUseAsync(async()=>await Ze.find(i.prefixPath,{baseFs:i.packageFs}),i.releaseFs);return _(P({},e),{version:n.version||"0.0.0",languageName:n.languageName||r.project.configuration.get("defaultLanguageName"),linkType:gt.HARD,conditions:n.getConditions(),dependencies:n.dependencies,peerDependencies:n.peerDependencies,dependenciesMeta:n.dependenciesMeta,peerDependenciesMeta:n.peerDependenciesMeta,bin:n.bin})}};var yze={configuration:{changesetBaseRefs:{description:"The base git refs that the current HEAD is compared against when detecting changes. Supports git branches, tags, and commits.",type:ge.STRING,isArray:!0,isNullable:!1,default:["master","origin/master","upstream/master","main","origin/main","upstream/main"]},changesetIgnorePatterns:{description:"Array of glob patterns; files matching them will be ignored when fetching the changed files",type:ge.STRING,default:[],isArray:!0},cloneConcurrency:{description:"Maximal number of concurrent clones",type:ge.NUMBER,default:2}},fetchers:[uL],resolvers:[gL]};var wze=yze;var HC=class extends Be{constructor(){super(...arguments);this.since=Y.String("--since",{description:"Only include workspaces that have been changed since the specified ref.",tolerateBoolean:!0});this.recursive=Y.Boolean("-R,--recursive",!1,{description:"Find packages via dependencies/devDependencies instead of using the workspaces field"});this.verbose=Y.Boolean("-v,--verbose",!1,{description:"Also return the cross-dependencies between workspaces"});this.json=Y.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let e=await fe.find(this.context.cwd,this.context.plugins),{project:r}=await Ke.find(e,this.context.cwd);return(await Fe.start({configuration:e,json:this.json,stdout:this.context.stdout},async n=>{let s=this.since?await Uc.fetchChangedWorkspaces({ref:this.since,project:r}):r.workspaces,o=new Set(s);if(this.recursive)for(let a of[...s].map(l=>l.getRecursiveWorkspaceDependents()))for(let l of a)o.add(l);for(let a of o){let{manifest:l}=a,c;if(this.verbose){let u=new Set,g=new Set;for(let f of Ze.hardDependencies)for(let[h,p]of l.getForScope(f)){let d=r.tryWorkspaceByDescriptor(p);d===null?r.workspacesByIdent.has(h)&&g.add(p):u.add(d)}c={workspaceDependencies:Array.from(u).map(f=>f.relativeCwd),mismatchedWorkspaceDependencies:Array.from(g).map(f=>S.stringifyDescriptor(f))}}n.reportInfo(null,`${a.relativeCwd}`),n.reportJson(P({location:a.relativeCwd,name:l.name?S.stringifyIdent(l.name):null},c))}})).exitCode()}};HC.paths=[["workspaces","list"]],HC.usage=ye.Usage({category:"Workspace-related commands",description:"list all available workspaces",details:"\n This command will print the list of all workspaces in the project.\n\n - If `--since` is set, Yarn will only list workspaces that have been modified since the specified ref. By default Yarn will use the refs specified by the `changesetBaseRefs` configuration option.\n\n - If `-R,--recursive` is set, Yarn will find workspaces to run the command on by recursively evaluating `dependencies` and `devDependencies` fields, instead of looking at the `workspaces` fields.\n\n - If both the `-v,--verbose` and `--json` options are set, Yarn will also return the cross-dependencies between each workspaces (useful when you wish to automatically generate Buck / Bazel rules).\n "});var qAe=HC;var GC=class extends Be{constructor(){super(...arguments);this.workspaceName=Y.String();this.commandName=Y.String();this.args=Y.Proxy()}async execute(){let e=await fe.find(this.context.cwd,this.context.plugins),{project:r,workspace:i}=await Ke.find(e,this.context.cwd);if(!i)throw new rt(r.cwd,this.context.cwd);let n=r.workspaces,s=new Map(n.map(a=>{let l=S.convertToIdent(a.locator);return[S.stringifyIdent(l),a]})),o=s.get(this.workspaceName);if(o===void 0){let a=Array.from(s.keys()).sort();throw new me(`Workspace '${this.workspaceName}' not found. Did you mean any of the following: - - ${a.join(` - - `)}?`)}return this.cli.run([this.commandName,...this.args],{cwd:o.cwd})}};GC.paths=[["workspace"]],GC.usage=ye.Usage({category:"Workspace-related commands",description:"run a command within the specified workspace",details:` - This command will run a given sub-command on a single workspace. - `,examples:[["Add a package to a single workspace","yarn workspace components add -D react"],["Run build script on a single workspace","yarn workspace components run build"]]});var JAe=GC;var Bze={configuration:{enableImmutableInstalls:{description:"If true (the default on CI), prevents the install command from modifying the lockfile",type:ge.BOOLEAN,default:WAe.isCI},defaultSemverRangePrefix:{description:"The default save prefix: '^', '~' or ''",type:ge.STRING,values:["^","~",""],default:Lo.CARET}},commands:[soe,aoe,wae,Nae,mAe,nAe,tAe,qAe,Uae,Hae,Gae,jae,ioe,noe,Lae,Mae,Yae,qae,Wae,zae,_ae,IAe,Xae,cAe,AAe,uAe,Zae,gAe,fAe,hAe,dAe,CAe,wAe,BAe,JAe]},Qze=Bze;var mL={};it(mL,{default:()=>vze});var Me={optional:!0},zAe=[["@tailwindcss/aspect-ratio@<0.2.1",{peerDependencies:{tailwindcss:"^2.0.2"}}],["@tailwindcss/line-clamp@<0.2.1",{peerDependencies:{tailwindcss:"^2.0.2"}}],["@fullhuman/postcss-purgecss@3.1.3 || 3.1.3-alpha.0",{peerDependencies:{postcss:"^8.0.0"}}],["@samverschueren/stream-to-observable@<0.3.1",{peerDependenciesMeta:{rxjs:Me,zenObservable:Me}}],["any-observable@<0.5.1",{peerDependenciesMeta:{rxjs:Me,zenObservable:Me}}],["@pm2/agent@<1.0.4",{dependencies:{debug:"*"}}],["debug@<4.2.0",{peerDependenciesMeta:{["supports-color"]:Me}}],["got@<11",{dependencies:{["@types/responselike"]:"^1.0.0",["@types/keyv"]:"^3.1.1"}}],["cacheable-lookup@<4.1.2",{dependencies:{["@types/keyv"]:"^3.1.1"}}],["http-link-dataloader@*",{peerDependencies:{graphql:"^0.13.1 || ^14.0.0"}}],["typescript-language-server@*",{dependencies:{["vscode-jsonrpc"]:"^5.0.1",["vscode-languageserver-protocol"]:"^3.15.0"}}],["postcss-syntax@*",{peerDependenciesMeta:{["postcss-html"]:Me,["postcss-jsx"]:Me,["postcss-less"]:Me,["postcss-markdown"]:Me,["postcss-scss"]:Me}}],["jss-plugin-rule-value-function@<=10.1.1",{dependencies:{["tiny-warning"]:"^1.0.2"}}],["ink-select-input@<4.1.0",{peerDependencies:{react:"^16.8.2"}}],["license-webpack-plugin@<2.3.18",{peerDependenciesMeta:{webpack:Me}}],["snowpack@>=3.3.0",{dependencies:{["node-gyp"]:"^7.1.0"}}],["promise-inflight@*",{peerDependenciesMeta:{bluebird:Me}}],["reactcss@*",{peerDependencies:{react:"*"}}],["react-color@<=2.19.0",{peerDependencies:{react:"*"}}],["gatsby-plugin-i18n@*",{dependencies:{ramda:"^0.24.1"}}],["useragent@^2.0.0",{dependencies:{request:"^2.88.0",yamlparser:"0.0.x",semver:"5.5.x"}}],["@apollographql/apollo-tools@*",{peerDependencies:{graphql:"^14.2.1 || ^15.0.0"}}],["material-table@^2.0.0",{dependencies:{"@babel/runtime":"^7.11.2"}}],["@babel/parser@*",{dependencies:{"@babel/types":"^7.8.3"}}],["fork-ts-checker-webpack-plugin@<=6.3.4",{peerDependencies:{eslint:">= 6",typescript:">= 2.7",webpack:">= 4","vue-template-compiler":"*"},peerDependenciesMeta:{eslint:Me,"vue-template-compiler":Me}}],["rc-animate@<=3.1.1",{peerDependencies:{react:">=16.9.0","react-dom":">=16.9.0"}}],["react-bootstrap-table2-paginator@*",{dependencies:{classnames:"^2.2.6"}}],["react-draggable@<=4.4.3",{peerDependencies:{react:">= 16.3.0","react-dom":">= 16.3.0"}}],["apollo-upload-client@<14",{peerDependencies:{graphql:"14 - 15"}}],["react-instantsearch-core@<=6.7.0",{peerDependencies:{algoliasearch:">= 3.1 < 5"}}],["react-instantsearch-dom@<=6.7.0",{dependencies:{"react-fast-compare":"^3.0.0"}}],["ws@<7.2.1",{peerDependencies:{bufferutil:"^4.0.1","utf-8-validate":"^5.0.2"},peerDependenciesMeta:{bufferutil:Me,"utf-8-validate":Me}}],["react-portal@*",{peerDependencies:{"react-dom":"^15.0.0-0 || ^16.0.0-0 || ^17.0.0-0"}}],["react-scripts@<=4.0.1",{peerDependencies:{react:"*"}}],["testcafe@<=1.10.1",{dependencies:{"@babel/plugin-transform-for-of":"^7.12.1","@babel/runtime":"^7.12.5"}}],["testcafe-legacy-api@<=4.2.0",{dependencies:{"testcafe-hammerhead":"^17.0.1","read-file-relative":"^1.2.0"}}],["@google-cloud/firestore@<=4.9.3",{dependencies:{protobufjs:"^6.8.6"}}],["gatsby-source-apiserver@*",{dependencies:{["babel-polyfill"]:"^6.26.0"}}],["@webpack-cli/package-utils@<=1.0.1-alpha.4",{dependencies:{["cross-spawn"]:"^7.0.3"}}],["gatsby-remark-prismjs@<3.3.28",{dependencies:{lodash:"^4"}}],["gatsby-plugin-favicon@*",{peerDependencies:{webpack:"*"}}],["gatsby-plugin-sharp@*",{dependencies:{debug:"^4.3.1"}}],["gatsby-react-router-scroll@*",{dependencies:{["prop-types"]:"^15.7.2"}}],["@rebass/forms@*",{dependencies:{["@styled-system/should-forward-prop"]:"^5.0.0"},peerDependencies:{react:"^16.8.6"}}],["rebass@*",{peerDependencies:{react:"^16.8.6"}}],["@ant-design/react-slick@<=0.28.3",{peerDependencies:{react:">=16.0.0"}}],["mqtt@<4.2.7",{dependencies:{duplexify:"^4.1.1"}}],["vue-cli-plugin-vuetify@<=2.0.3",{dependencies:{semver:"^6.3.0"},peerDependenciesMeta:{"sass-loader":Me,"vuetify-loader":Me}}],["vue-cli-plugin-vuetify@<=2.0.4",{dependencies:{"null-loader":"^3.0.0"}}],["@vuetify/cli-plugin-utils@<=0.0.4",{dependencies:{semver:"^6.3.0"},peerDependenciesMeta:{"sass-loader":Me}}],["@vue/cli-plugin-typescript@<=5.0.0-alpha.0",{dependencies:{"babel-loader":"^8.1.0"}}],["@vue/cli-plugin-typescript@<=5.0.0-beta.0",{dependencies:{"@babel/core":"^7.12.16"},peerDependencies:{"vue-template-compiler":"^2.0.0"},peerDependenciesMeta:{"vue-template-compiler":Me}}],["cordova-ios@<=6.3.0",{dependencies:{underscore:"^1.9.2"}}],["cordova-lib@<=10.0.1",{dependencies:{underscore:"^1.9.2"}}],["git-node-fs@*",{peerDependencies:{"js-git":"^0.7.8"},peerDependenciesMeta:{"js-git":Me}}],["consolidate@*",{peerDependencies:{velocityjs:"^2.0.1",tinyliquid:"^0.2.34","liquid-node":"^3.0.1",jade:"^1.11.0","then-jade":"*",dust:"^0.3.0","dustjs-helpers":"^1.7.4","dustjs-linkedin":"^2.7.5",swig:"^1.4.2","swig-templates":"^2.0.3","razor-tmpl":"^1.3.1",atpl:">=0.7.6",liquor:"^0.0.5",twig:"^1.15.2",ejs:"^3.1.5",eco:"^1.1.0-rc-3",jazz:"^0.0.18",jqtpl:"~1.1.0",hamljs:"^0.6.2",hamlet:"^0.3.3",whiskers:"^0.4.0","haml-coffee":"^1.14.1","hogan.js":"^3.0.2",templayed:">=0.2.3",handlebars:"^4.7.6",underscore:"^1.11.0",lodash:"^4.17.20",pug:"^3.0.0","then-pug":"*",qejs:"^3.0.5",walrus:"^0.10.1",mustache:"^4.0.1",just:"^0.1.8",ect:"^0.5.9",mote:"^0.2.0",toffee:"^0.3.6",dot:"^1.1.3","bracket-template":"^1.1.5",ractive:"^1.3.12",nunjucks:"^3.2.2",htmling:"^0.0.8","babel-core":"^6.26.3",plates:"~0.4.11","react-dom":"^16.13.1",react:"^16.13.1","arc-templates":"^0.5.3",vash:"^0.13.0",slm:"^2.0.0",marko:"^3.14.4",teacup:"^2.0.0","coffee-script":"^1.12.7",squirrelly:"^5.1.0",twing:"^5.0.2"},peerDependenciesMeta:{velocityjs:Me,tinyliquid:Me,"liquid-node":Me,jade:Me,"then-jade":Me,dust:Me,"dustjs-helpers":Me,"dustjs-linkedin":Me,swig:Me,"swig-templates":Me,"razor-tmpl":Me,atpl:Me,liquor:Me,twig:Me,ejs:Me,eco:Me,jazz:Me,jqtpl:Me,hamljs:Me,hamlet:Me,whiskers:Me,"haml-coffee":Me,"hogan.js":Me,templayed:Me,handlebars:Me,underscore:Me,lodash:Me,pug:Me,"then-pug":Me,qejs:Me,walrus:Me,mustache:Me,just:Me,ect:Me,mote:Me,toffee:Me,dot:Me,"bracket-template":Me,ractive:Me,nunjucks:Me,htmling:Me,"babel-core":Me,plates:Me,"react-dom":Me,react:Me,"arc-templates":Me,vash:Me,slm:Me,marko:Me,teacup:Me,"coffee-script":Me,squirrelly:Me,twing:Me}}],["vue-loader@<=16.3.1",{peerDependencies:{"@vue/compiler-sfc":"^3.0.8",webpack:"^4.1.0 || ^5.0.0-0"}}],["scss-parser@*",{dependencies:{lodash:"^4.17.21"}}],["query-ast@*",{dependencies:{lodash:"^4.17.21"}}],["redux-thunk@<=2.3.0",{peerDependencies:{redux:"^4.0.0"}}],["skypack@<=0.3.2",{dependencies:{tar:"^6.1.0"}}],["@npmcli/metavuln-calculator@*",{dependencies:{"json-parse-even-better-errors":"^2.3.1"}}],["bin-links@*",{dependencies:{"mkdirp-infer-owner":"^1.0.2"}}],["rollup-plugin-polyfill-node@*",{peerDependencies:{rollup:"^1.20.0 || ^2.0.0"}}],["snowpack@*",{dependencies:{"magic-string":"^0.25.7"}}],["elm-webpack-loader@*",{dependencies:{temp:"^0.9.4"}}],["winston-transport@<=4.4.0",{dependencies:{logform:"^2.2.0"}}],["jest-vue-preprocessor@*",{dependencies:{"@babel/core":"7.8.7","@babel/template":"7.8.6"},peerDependencies:{pug:"^2.0.4"},peerDependenciesMeta:{pug:Me}}],["redux-persist@*",{peerDependencies:{react:">=16"},peerDependenciesMeta:{react:Me}}],["sodium@>=3",{dependencies:{"node-gyp":"^3.8.0"}}],["babel-plugin-graphql-tag@<=3.1.0",{peerDependencies:{graphql:"^14.0.0 || ^15.0.0"}}],["@playwright/test@<=1.14.1",{dependencies:{"jest-matcher-utils":"^26.4.2"}}],...["babel-plugin-remove-graphql-queries@<3.14.0-next.1","babel-preset-gatsby-package@<1.14.0-next.1","create-gatsby@<1.14.0-next.1","gatsby-admin@<0.24.0-next.1","gatsby-cli@<3.14.0-next.1","gatsby-core-utils@<2.14.0-next.1","gatsby-design-tokens@<3.14.0-next.1","gatsby-legacy-polyfills@<1.14.0-next.1","gatsby-plugin-benchmark-reporting@<1.14.0-next.1","gatsby-plugin-graphql-config@<0.23.0-next.1","gatsby-plugin-image@<1.14.0-next.1","gatsby-plugin-mdx@<2.14.0-next.1","gatsby-plugin-netlify-cms@<5.14.0-next.1","gatsby-plugin-no-sourcemaps@<3.14.0-next.1","gatsby-plugin-page-creator@<3.14.0-next.1","gatsby-plugin-preact@<5.14.0-next.1","gatsby-plugin-preload-fonts@<2.14.0-next.1","gatsby-plugin-schema-snapshot@<2.14.0-next.1","gatsby-plugin-styletron@<6.14.0-next.1","gatsby-plugin-subfont@<3.14.0-next.1","gatsby-plugin-utils@<1.14.0-next.1","gatsby-recipes@<0.25.0-next.1","gatsby-source-shopify@<5.6.0-next.1","gatsby-source-wikipedia@<3.14.0-next.1","gatsby-transformer-screenshot@<3.14.0-next.1","gatsby-worker@<0.5.0-next.1"].map(t=>[t,{dependencies:{"@babel/runtime":"^7.14.8"}}]),["gatsby-core-utils@<2.14.0-next.1",{dependencies:{got:"8.3.2"}}],["gatsby-plugin-gatsby-cloud@<=3.1.0-next.0",{dependencies:{"gatsby-core-utils":"^2.13.0-next.0"}}],["gatsby-plugin-gatsby-cloud@<=3.2.0-next.1",{peerDependencies:{webpack:"*"}}],["babel-plugin-remove-graphql-queries@<=3.14.0-next.1",{dependencies:{"gatsby-core-utils":"^2.8.0-next.1"}}],["gatsby-plugin-netlify@3.13.0-next.1",{dependencies:{"gatsby-core-utils":"^2.13.0-next.0"}}],["clipanion-v3-codemod@<=0.2.0",{peerDependencies:{jscodeshift:"^0.11.0"}}],["react-live@*",{peerDependencies:{"react-dom":"*",react:"*"}}],["webpack@<4.44.1",{peerDependenciesMeta:{"webpack-cli":Me,"webpack-command":Me}}],["webpack@<5.0.0-beta.23",{peerDependenciesMeta:{"webpack-cli":Me}}],["webpack-dev-server@<3.10.2",{peerDependenciesMeta:{"webpack-cli":Me}}]];var pL;function VAe(){return typeof pL=="undefined"&&(pL=require("zlib").brotliDecompressSync(Buffer.from("G7weAByFTVk3Vs7UfHhq4yykgEM7pbW7TI43SG2S5tvGrwHBAzdz+s/npQ6tgEvobvxisrPIadkXeUAJotBn5bDZ5kAhcRqsIHe3F75Walet5hNalwgFDtxb0BiDUjiUQkjG0yW2hto9HPgiCkm316d6bC0kST72YN7D7rfkhCE9x4J0XwB0yavalxpUu2t9xszHrmtwalOxT7VslsxWcB1qpqZwERUra4psWhTV8BgwWeizurec82Caf1ABL11YMfbf8FJ9JBceZOkgmvrQPbC9DUldX/yMbmX06UQluCEjSwUoyO+EZPIjofr+/oAZUck2enraRD+oWLlnlYnj8xB+gwSo9lmmks4fXv574qSqcWA6z21uYkzMu3EWj+K23RxeQlLqiE35/rC8GcS4CGkKHKKq+zAIQwD9iRDNfiAqueLLpicFFrNsAI4zeTD/eO9MHcnRa5m8UT+M2+V+AkFST4BlKneiAQRSdST8KEAIyFlULt6wa9EBd0Ds28VmpaxquJdVt+nwdEs5xUskI13OVtFyY0UrQIRAlCuvvWivvlSKQfTO+2Q8OyUR1W5RvetaPz4jD27hdtwHFFA1Ptx6Ee/t2cY2rg2G46M1pNDRf2pWhvpy8pqMnuI3++4OF3+7OFIWXGjh+o7Nr2jNvbiYcQdQS1h903/jVFgOpA0yJ78z+x759bFA0rq+6aY5qPB4FzS3oYoLupDUhD9nDz6F6H7hpnlMf18KNKDu4IKjTWwrAnY6MFQw1W6ymOALHlFyCZmQhldg1MQHaMVVQTVgDC60TfaBqG++Y8PEoFhN/PBTZT175KNP/BlHDYGOOBmnBdzqJKplZ/ljiVG0ZBzfqeBRrrUkn6rA54462SgiliKoYVnbeptMdXNfAuaupIEi0bApF10TlgHfmEJAPUVidRVFyDupSem5po5vErPqWKhKbUIp0LozpYsIKK57dM/HKr+nguF+7924IIWMICkQ8JUigs9D+W+c4LnNoRtPPKNRUiCYmP+Jfo2lfKCKw8qpraEeWU3uiNRO6zcyKQoXPR5htmzzLznke7b4YbXW3I1lIRzmgG02Udb58U+7TpwyN7XymCgH+wuPDthZVQvRZuEP+SnLtMicz9m5zASWOBiAcLmkuFlTKuHspSIhCBD0yUPKcxu81A+4YD78rA2vtwsUEday9WNyrShyrl60rWmA+SmbYZkQOwFJWArxRYYc5jGhA5ikxYw1rx3ei4NmeX/lKiwpZ9Ln1tV2Ae7sArvxuVLbJjqJRjW1vFXAyHpvLG+8MJ6T2Ubx5M2KDa2SN6vuIGxJ9WQM9Mk3Q7aCNiZONXllhqq24DmoLbQfW2rYWsOgHWjtOmIQMyMKdiHZDjoyIq5+U700nZ6odJAoYXPQBvFNiQ78d5jaXliBqLTJEqUCwi+LiH2mx92EmNKDsJL74Z613+3lf20pxkV1+erOrjj8pW00vsPaahKUM+05ssd5uwM7K482KWEf3TCwlg/o3e5ngto7qSMz7YteIgCsF1UOcsLk7F7MxWbvrPMY473ew0G+noVL8EPbkmEMftMSeL6HFub/zy+2JQ==","base64")).toString()),pL}var dL;function _Ae(){return typeof dL=="undefined"&&(dL=require("zlib").brotliDecompressSync(Buffer.from("G8MSIIzURnVBnObTcvb3XE6v2S9Qgc2K801Oa5otNKEtK8BINZNcaQHy+9/vf/WXBimwutXC33P2DPc64pps5rz7NGGWaOKNSPL4Y2KRE8twut2lFOIN+OXPtRmPMRhMTILib2bEQx43az2I5d3YS8Roa5UZpF/ujHb3Djd3GDvYUfvFYSUQ39vb2cmifp/rgB4J/65JK3wRBTvMBoNBmn3mbXC63/gbBkW/2IRPri0O8bcsRBsmarF328pAln04nyJFkwUAvNu934supAqLtyerZZpJ8I8suJHhf/ocMV+scKwa8NOiDKIPXw6Ex/EEZD6TEGaW8N5zvNHYF10l6Lfooj7D5W2k3dgvQSbp2Wv8TGOayS978gxlOLVjTGXs66ozewbrjwElLtyrYNnWTfzzdEutgROUFPVMhnMoy8EjJLLlWwIEoySxliim9kYW30JUHiPVyjt0iAw/ZpPmCbUCltYPnq6ZNblIKhTNhqS/oqC9iya5sGKZTOVsTEg34n92uZTf2iPpcZih8rPW8CzA+adIGmyCPcKdLMsBLShd+zuEbTrqpwuh+DLmracZcjPC5Sdf5odDAhKpFuOsQS67RT+1VgWWygSv3YwxDnylc04/PYuaMeIzhBkLrvs7e/OUzRTF56MmfY6rI63QtEjEQzq637zQqJ39nNhu3NmoRRhW/086bHGBUtx0PE0j3aEGvkdh9WJC8y8j8mqqke9/dQ5la+Q3ba4RlhvTbnfQhPDDab3tUifkjKuOsp13mXEmO00Mu88F/M67R7LXfoFDFLNtgCSWjWX+3Jn1371pJTK9xPBiMJafvDjtFyAzu8rxeQ0TKMQXNPs5xxiBOd+BRJP8KP88XPtJIbZKh/cdW8KvBUkpqKpGoiIaA32c3/JnQr4efXt85mXvidOvn/eU3Pase1typLYBalJ14mCso9h79nuMOuCa/kZAOkJHmTjP5RM2WNoPasZUAnT1TAE/NH25hUxcQv6hQWR/m1PKk4ooXMcM4SR1iYU3fUohvqk4RY2hbmTVVIXv6TvqO+0doOjgeVFAcom+RlwJQmOVH7pr1Q9LoJT6n1DeQEB+NHygsATbIwTcOKZlJsY8G4+suX1uQLjUWwLjjs0mvSvZcLTpIGAekeR7GCgl8eo3ndAqEe2XCav4huliHjdbIPBsGJuPX7lrO9HX1UbXRH5opOe1x6JsOSgHZR+EaxuXVhpLLxm6jk1LJtZfHSc6BKPun3CpYYVMJGwEUyk8MTGG0XL5MfEwaXpnc9TKnBmlGn6nHiGREc3ysn47XIBDzA+YvFdjZzVIEDcKGpS6PbUJehFRjEne8D0lVU1XuRtlgszq6pTNlQ/3MzNOEgCWPyTct22V2mEi2krizn5VDo9B19/X2DB3hCGRMM7ONbtnAcIx/OWB1u5uPbW1gsH8irXxT/IzG0PoXWYjhbMsH3KTuoOl5o17PulcgvsfTSnKFM354GWI8luqZnrswWjiXy3G+Vbyo1KMopFmmvBwNELgaS8z8dNZchx/Cl/xjddxhMcyqtzFyONb2Zdu90NkI8pAeufe7YlXrp53v8Dj/l8vWeVspRKBGXScBBPI/HinSTGmLDOGGOCIyH0JFdOZx0gWsacNlQLJMIrBhqRxXxHF/5pseWwejlAAvZ3klZSDSYY8mkToaWejXhgNomeGtx1DTLEUFMRkgF5yFB22WYdJnaWN14r1YJj81hGi45+jrADS5nYRhCiSlCJJ1nL8pYX+HDSMhdTEWyRcgHVp/IsUIZYMfT+YYncUQPgcxNGCHfZ88vDdrcUuaGIl6zhAsiaq7R5dfqrqXH/JcBhfjT8D0azayIyEz75Nxp6YkcyDxlJq3EXnJUpqDohJJOysL1t1uNiHESlvsxPb5cpbW0+ICZqJmUZus1BMW0F5IVBODLIo2zHHjA0=","base64")).toString()),dL}var CL;function XAe(){return typeof CL=="undefined"&&(CL=require("zlib").brotliDecompressSync(Buffer.from("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","base64")).toString()),CL}var ZAe=new Map([[S.makeIdent(null,"fsevents").identHash,VAe],[S.makeIdent(null,"resolve").identHash,_Ae],[S.makeIdent(null,"typescript").identHash,XAe]]),bze={hooks:{registerPackageExtensions:async(t,e)=>{for(let[r,i]of zAe)e(S.parseDescriptor(r,!0),i)},getBuiltinPatch:async(t,e)=>{var s;let r="compat/";if(!e.startsWith(r))return;let i=S.parseIdent(e.slice(r.length)),n=(s=ZAe.get(i.identHash))==null?void 0:s();return typeof n!="undefined"?n:null},reduceDependency:async(t,e,r,i)=>typeof ZAe.get(t.identHash)=="undefined"?t:S.makeDescriptor(t,S.makeRange({protocol:"patch:",source:S.stringifyDescriptor(t),selector:`~builtin`,params:null}))}},vze=bze;var EL={};it(EL,{default:()=>xze});var V0=class extends Be{constructor(){super(...arguments);this.pkg=Y.String("-p,--package",{description:"The package to run the provided command from"});this.quiet=Y.Boolean("-q,--quiet",!1,{description:"Only report critical errors instead of printing the full install logs"});this.command=Y.String();this.args=Y.Proxy()}async execute(){let e=[];this.pkg&&e.push("--package",this.pkg),this.quiet&&e.push("--quiet");let r=S.parseIdent(this.command),i=S.makeIdent(r.scope,`create-${r.name}`);return this.cli.run(["dlx",...e,S.stringifyIdent(i),...this.args])}};V0.paths=[["create"]];var $Ae=V0;var jC=class extends Be{constructor(){super(...arguments);this.packages=Y.Array("-p,--package",{description:"The package(s) to install before running the command"});this.quiet=Y.Boolean("-q,--quiet",!1,{description:"Only report critical errors instead of printing the full install logs"});this.command=Y.String();this.args=Y.Proxy()}async execute(){return fe.telemetry=null,await T.mktempPromise(async e=>{var p;let r=v.join(e,`dlx-${process.pid}`);await T.mkdirPromise(r),await T.writeFilePromise(v.join(r,"package.json"),`{} -`),await T.writeFilePromise(v.join(r,"yarn.lock"),"");let i=v.join(r,".yarnrc.yml"),n=await fe.findProjectCwd(this.context.cwd,wt.lockfile),s=!(await fe.find(this.context.cwd,null,{strict:!1})).get("enableGlobalCache"),o=n!==null?v.join(n,".yarnrc.yml"):null;o!==null&&T.existsSync(o)?(await T.copyFilePromise(o,i),await fe.updateConfiguration(r,d=>{let m=_(P({},d),{enableGlobalCache:s,enableTelemetry:!1});return Array.isArray(d.plugins)&&(m.plugins=d.plugins.map(I=>{let B=typeof I=="string"?I:I.path,b=M.isAbsolute(B)?B:M.resolve(M.fromPortablePath(n),B);return typeof I=="string"?b:{path:b,spec:I.spec}})),m})):await T.writeFilePromise(i,`enableGlobalCache: ${s} -enableTelemetry: false -`);let a=(p=this.packages)!=null?p:[this.command],l=S.parseDescriptor(this.command).name,c=await this.cli.run(["add","--",...a],{cwd:r,quiet:this.quiet});if(c!==0)return c;this.quiet||this.context.stdout.write(` -`);let u=await fe.find(r,this.context.plugins),{project:g,workspace:f}=await Ke.find(u,r);if(f===null)throw new rt(g.cwd,r);await g.restoreInstallState();let h=await Kt.getWorkspaceAccessibleBinaries(f);return h.has(l)===!1&&h.size===1&&typeof this.packages=="undefined"&&(l=Array.from(h)[0][0]),await Kt.executeWorkspaceAccessibleBinary(f,l,this.args,{packageAccessibleBinaries:h,cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr})})}};jC.paths=[["dlx"]],jC.usage=ye.Usage({description:"run a package in a temporary environment",details:"\n This command will install a package within a temporary environment, and run its binary script if it contains any. The binary will run within the current cwd.\n\n By default Yarn will download the package named `command`, but this can be changed through the use of the `-p,--package` flag which will instruct Yarn to still run the same command but from a different package.\n\n Using `yarn dlx` as a replacement of `yarn add` isn't recommended, as it makes your project non-deterministic (Yarn doesn't keep track of the packages installed through `dlx` - neither their name, nor their version).\n ",examples:[["Use create-react-app to create a new React app","yarn dlx create-react-app ./my-app"],["Install multiple packages for a single command",`yarn dlx -p typescript -p ts-node ts-node --transpile-only -e "console.log('hello!')"`]]});var ele=jC;var Sze={commands:[$Ae,ele]},xze=Sze;var xL={};it(xL,{default:()=>Dze,fileUtils:()=>IL});var hf=/^(?:[a-zA-Z]:[\\/]|\.{0,2}\/)/,YC=/^[^?]*\.(?:tar\.gz|tgz)(?:::.*)?$/,Nr="file:";var IL={};it(IL,{makeArchiveFromLocator:()=>_0,makeBufferFromLocator:()=>BL,makeLocator:()=>wL,makeSpec:()=>tle,parseSpec:()=>yL});function yL(t){let{params:e,selector:r}=S.parseRange(t),i=M.toPortablePath(r);return{parentLocator:e&&typeof e.locator=="string"?S.parseLocator(e.locator):null,path:i}}function tle({parentLocator:t,path:e,folderHash:r,protocol:i}){let n=t!==null?{locator:S.stringifyLocator(t)}:{},s=typeof r!="undefined"?{hash:r}:{};return S.makeRange({protocol:i,source:e,selector:e,params:P(P({},s),n)})}function wL(t,{parentLocator:e,path:r,folderHash:i,protocol:n}){return S.makeLocator(t,tle({parentLocator:e,path:r,folderHash:i,protocol:n}))}async function _0(t,{protocol:e,fetchOptions:r,inMemory:i=!1}){let{parentLocator:n,path:s}=S.parseFileStyleRange(t.reference,{protocol:e}),o=v.isAbsolute(s)?{packageFs:new Ft(Se.root),prefixPath:Se.dot,localPath:Se.root}:await r.fetcher.fetch(n,r),a=o.localPath?{packageFs:new Ft(Se.root),prefixPath:v.relative(Se.root,o.localPath)}:o;o!==a&&o.releaseFs&&o.releaseFs();let l=a.packageFs,c=v.join(a.prefixPath,s);return await de.releaseAfterUseAsync(async()=>await Ai.makeArchiveFromDirectory(c,{baseFs:l,prefixPath:S.getIdentVendorPath(t),compressionLevel:r.project.configuration.get("compressionLevel"),inMemory:i}),a.releaseFs)}async function BL(t,{protocol:e,fetchOptions:r}){return(await _0(t,{protocol:e,fetchOptions:r,inMemory:!0})).getBufferAndClose()}var QL=class{supports(e,r){return!!e.reference.startsWith(Nr)}getLocalPath(e,r){let{parentLocator:i,path:n}=S.parseFileStyleRange(e.reference,{protocol:Nr});if(v.isAbsolute(n))return n;let s=r.fetcher.getLocalPath(i,r);return s===null?null:v.resolve(s,n)}async fetch(e,r){let i=r.checksums.get(e.locatorHash)||null,[n,s,o]=await r.cache.fetchPackageFromCache(e,i,P({onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${S.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from the disk`),loader:()=>this.fetchFromDisk(e,r),skipIntegrityCheck:r.skipIntegrityCheck},r.cacheOptions));return{packageFs:n,releaseFs:s,prefixPath:S.getIdentVendorPath(e),localPath:this.getLocalPath(e,r),checksum:o}}async fetchFromDisk(e,r){return _0(e,{protocol:Nr,fetchOptions:r})}};var kze=2,bL=class{supportsDescriptor(e,r){return e.range.match(hf)?!0:!!e.range.startsWith(Nr)}supportsLocator(e,r){return!!e.reference.startsWith(Nr)}shouldPersistResolution(e,r){return!1}bindDescriptor(e,r,i){return hf.test(e.range)&&(e=S.makeDescriptor(e,`${Nr}${e.range}`)),S.bindDescriptor(e,{locator:S.stringifyLocator(r)})}getResolutionDependencies(e,r){return[]}async getCandidates(e,r,i){if(!i.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let{path:n,parentLocator:s}=yL(e.range);if(s===null)throw new Error("Assertion failed: The descriptor should have been bound");let o=await BL(S.makeLocator(e,S.makeRange({protocol:Nr,source:n,selector:n,params:{locator:S.stringifyLocator(s)}})),{protocol:Nr,fetchOptions:i.fetchOptions}),a=mn.makeHash(`${kze}`,o).slice(0,6);return[wL(e,{parentLocator:s,path:n,folderHash:a,protocol:Nr})]}async getSatisfying(e,r,i){return null}async resolve(e,r){if(!r.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let i=await r.fetchOptions.fetcher.fetch(e,r.fetchOptions),n=await de.releaseAfterUseAsync(async()=>await Ze.find(i.prefixPath,{baseFs:i.packageFs}),i.releaseFs);return _(P({},e),{version:n.version||"0.0.0",languageName:n.languageName||r.project.configuration.get("defaultLanguageName"),linkType:gt.HARD,conditions:n.getConditions(),dependencies:n.dependencies,peerDependencies:n.peerDependencies,dependenciesMeta:n.dependenciesMeta,peerDependenciesMeta:n.peerDependenciesMeta,bin:n.bin})}};var vL=class{supports(e,r){return YC.test(e.reference)?!!e.reference.startsWith(Nr):!1}getLocalPath(e,r){return null}async fetch(e,r){let i=r.checksums.get(e.locatorHash)||null,[n,s,o]=await r.cache.fetchPackageFromCache(e,i,P({onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${S.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from the disk`),loader:()=>this.fetchFromDisk(e,r),skipIntegrityCheck:r.skipIntegrityCheck},r.cacheOptions));return{packageFs:n,releaseFs:s,prefixPath:S.getIdentVendorPath(e),checksum:o}}async fetchFromDisk(e,r){let{parentLocator:i,path:n}=S.parseFileStyleRange(e.reference,{protocol:Nr}),s=v.isAbsolute(n)?{packageFs:new Ft(Se.root),prefixPath:Se.dot,localPath:Se.root}:await r.fetcher.fetch(i,r),o=s.localPath?{packageFs:new Ft(Se.root),prefixPath:v.relative(Se.root,s.localPath)}:s;s!==o&&s.releaseFs&&s.releaseFs();let a=o.packageFs,l=v.join(o.prefixPath,n),c=await a.readFilePromise(l);return await de.releaseAfterUseAsync(async()=>await Ai.convertToZip(c,{compressionLevel:r.project.configuration.get("compressionLevel"),prefixPath:S.getIdentVendorPath(e),stripComponents:1}),o.releaseFs)}};var SL=class{supportsDescriptor(e,r){return YC.test(e.range)?!!(e.range.startsWith(Nr)||hf.test(e.range)):!1}supportsLocator(e,r){return YC.test(e.reference)?!!e.reference.startsWith(Nr):!1}shouldPersistResolution(e,r){return!0}bindDescriptor(e,r,i){return hf.test(e.range)&&(e=S.makeDescriptor(e,`${Nr}${e.range}`)),S.bindDescriptor(e,{locator:S.stringifyLocator(r)})}getResolutionDependencies(e,r){return[]}async getCandidates(e,r,i){let n=e.range;return n.startsWith(Nr)&&(n=n.slice(Nr.length)),[S.makeLocator(e,`${Nr}${M.toPortablePath(n)}`)]}async getSatisfying(e,r,i){return null}async resolve(e,r){if(!r.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let i=await r.fetchOptions.fetcher.fetch(e,r.fetchOptions),n=await de.releaseAfterUseAsync(async()=>await Ze.find(i.prefixPath,{baseFs:i.packageFs}),i.releaseFs);return _(P({},e),{version:n.version||"0.0.0",languageName:n.languageName||r.project.configuration.get("defaultLanguageName"),linkType:gt.HARD,conditions:n.getConditions(),dependencies:n.dependencies,peerDependencies:n.peerDependencies,dependenciesMeta:n.dependenciesMeta,peerDependenciesMeta:n.peerDependenciesMeta,bin:n.bin})}};var Pze={fetchers:[vL,QL],resolvers:[SL,bL]},Dze=Pze;var PL={};it(PL,{default:()=>Nze});var rle=ie(require("querystring")),ile=[/^https?:\/\/(?:([^/]+?)@)?github.com\/([^/#]+)\/([^/#]+)\/tarball\/([^/#]+)(?:#(.*))?$/,/^https?:\/\/(?:([^/]+?)@)?github.com\/([^/#]+)\/([^/#]+?)(?:\.git)?(?:#(.*))?$/];function nle(t){return t?ile.some(e=>!!t.match(e)):!1}function sle(t){let e;for(let a of ile)if(e=t.match(a),e)break;if(!e)throw new Error(Rze(t));let[,r,i,n,s="master"]=e,{commit:o}=rle.default.parse(s);return s=o||s.replace(/[^:]*:/,""),{auth:r,username:i,reponame:n,treeish:s}}function Rze(t){return`Input cannot be parsed as a valid GitHub URL ('${t}').`}var kL=class{supports(e,r){return!!nle(e.reference)}getLocalPath(e,r){return null}async fetch(e,r){let i=r.checksums.get(e.locatorHash)||null,[n,s,o]=await r.cache.fetchPackageFromCache(e,i,P({onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${S.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from GitHub`),loader:()=>this.fetchFromNetwork(e,r),skipIntegrityCheck:r.skipIntegrityCheck},r.cacheOptions));return{packageFs:n,releaseFs:s,prefixPath:S.getIdentVendorPath(e),checksum:o}}async fetchFromNetwork(e,r){let i=await Zt.get(this.getLocatorUrl(e,r),{configuration:r.project.configuration});return await T.mktempPromise(async n=>{let s=new Ft(n);await Ai.extractArchiveTo(i,s,{stripComponents:1});let o=Uc.splitRepoUrl(e.reference),a=v.join(n,"package.tgz");await Kt.prepareExternalProject(n,a,{configuration:r.project.configuration,report:r.report,workspace:o.extra.workspace,locator:e});let l=await T.readFilePromise(a);return await Ai.convertToZip(l,{compressionLevel:r.project.configuration.get("compressionLevel"),prefixPath:S.getIdentVendorPath(e),stripComponents:1})})}getLocatorUrl(e,r){let{auth:i,username:n,reponame:s,treeish:o}=sle(e.reference);return`https://${i?`${i}@`:""}github.com/${n}/${s}/archive/${o}.tar.gz`}};var Fze={hooks:{async fetchHostedRepository(t,e,r){if(t!==null)return t;let i=new kL;if(!i.supports(e,r))return null;try{return await i.fetch(e,r)}catch(n){return null}}}},Nze=Fze;var FL={};it(FL,{default:()=>Tze});var qC=/^[^?]*\.(?:tar\.gz|tgz)(?:\?.*)?$/,JC=/^https?:/;var DL=class{supports(e,r){return qC.test(e.reference)?!!JC.test(e.reference):!1}getLocalPath(e,r){return null}async fetch(e,r){let i=r.checksums.get(e.locatorHash)||null,[n,s,o]=await r.cache.fetchPackageFromCache(e,i,P({onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${S.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from the remote server`),loader:()=>this.fetchFromNetwork(e,r),skipIntegrityCheck:r.skipIntegrityCheck},r.cacheOptions));return{packageFs:n,releaseFs:s,prefixPath:S.getIdentVendorPath(e),checksum:o}}async fetchFromNetwork(e,r){let i=await Zt.get(e.reference,{configuration:r.project.configuration});return await Ai.convertToZip(i,{compressionLevel:r.project.configuration.get("compressionLevel"),prefixPath:S.getIdentVendorPath(e),stripComponents:1})}};var RL=class{supportsDescriptor(e,r){return qC.test(e.range)?!!JC.test(e.range):!1}supportsLocator(e,r){return qC.test(e.reference)?!!JC.test(e.reference):!1}shouldPersistResolution(e,r){return!0}bindDescriptor(e,r,i){return e}getResolutionDependencies(e,r){return[]}async getCandidates(e,r,i){return[S.convertDescriptorToLocator(e)]}async getSatisfying(e,r,i){return null}async resolve(e,r){if(!r.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let i=await r.fetchOptions.fetcher.fetch(e,r.fetchOptions),n=await de.releaseAfterUseAsync(async()=>await Ze.find(i.prefixPath,{baseFs:i.packageFs}),i.releaseFs);return _(P({},e),{version:n.version||"0.0.0",languageName:n.languageName||r.project.configuration.get("defaultLanguageName"),linkType:gt.HARD,conditions:n.getConditions(),dependencies:n.dependencies,peerDependencies:n.peerDependencies,dependenciesMeta:n.dependenciesMeta,peerDependenciesMeta:n.peerDependenciesMeta,bin:n.bin})}};var Lze={fetchers:[DL],resolvers:[RL]},Tze=Lze;var ML={};it(ML,{default:()=>M5e});var Rle=ie(Dle()),TL=ie(require("util")),WC=class extends Be{constructor(){super(...arguments);this.private=Y.Boolean("-p,--private",!1,{description:"Initialize a private package"});this.workspace=Y.Boolean("-w,--workspace",!1,{description:"Initialize a workspace root with a `packages/` directory"});this.install=Y.String("-i,--install",!1,{tolerateBoolean:!0,description:"Initialize a package with a specific bundle that will be locked in the project"});this.usev2=Y.Boolean("-2",!1,{hidden:!0});this.yes=Y.Boolean("-y,--yes",{hidden:!0});this.assumeFreshProject=Y.Boolean("--assume-fresh-project",!1,{hidden:!0})}async execute(){let e=await fe.find(this.context.cwd,this.context.plugins),r=typeof this.install=="string"?this.install:this.usev2||this.install===!0?"latest":null;return r!==null?await this.executeProxy(e,r):await this.executeRegular(e)}async executeProxy(e,r){if(e.projectCwd!==null&&e.projectCwd!==this.context.cwd)throw new me("Cannot use the --install flag from within a project subdirectory");T.existsSync(this.context.cwd)||await T.mkdirPromise(this.context.cwd,{recursive:!0});let i=v.join(this.context.cwd,e.get("lockfileFilename"));T.existsSync(i)||await T.writeFilePromise(i,"");let n=await this.cli.run(["set","version",r],{quiet:!0});if(n!==0)return n;let s=[];return this.private&&s.push("-p"),this.workspace&&s.push("-w"),this.yes&&s.push("-y"),await T.mktempPromise(async o=>{let{code:a}=await hr.pipevp("yarn",["init",...s],{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,env:await Kt.makeScriptEnv({binFolder:o})});return a})}async executeRegular(e){var l;let r=null;try{r=(await Ke.find(e,this.context.cwd)).project}catch{r=null}T.existsSync(this.context.cwd)||await T.mkdirPromise(this.context.cwd,{recursive:!0});let i=await Ze.tryFind(this.context.cwd)||new Ze,n=Object.fromEntries(e.get("initFields").entries());i.load(n),i.name=(l=i.name)!=null?l:S.makeIdent(e.get("initScope"),v.basename(this.context.cwd)),i.packageManager=Zr&&de.isTaggedYarnVersion(Zr)?`yarn@${Zr}`:null,typeof i.raw.private=="undefined"&&(this.private||this.workspace&&i.workspaceDefinitions.length===0)&&(i.private=!0),this.workspace&&i.workspaceDefinitions.length===0&&(await T.mkdirPromise(v.join(this.context.cwd,"packages"),{recursive:!0}),i.workspaceDefinitions=[{pattern:"packages/*"}]);let s={};i.exportTo(s),TL.inspect.styles.name="cyan",this.context.stdout.write(`${(0,TL.inspect)(s,{depth:Infinity,colors:!0,compact:!1})} -`);let o=v.join(this.context.cwd,Ze.fileName);await T.changeFilePromise(o,`${JSON.stringify(s,null,2)} -`,{automaticNewlines:!0});let a=v.join(this.context.cwd,"README.md");if(T.existsSync(a)||await T.writeFilePromise(a,`# ${S.stringifyIdent(i.name)} -`),!r||r.cwd===this.context.cwd){let c=v.join(this.context.cwd,wt.lockfile);T.existsSync(c)||await T.writeFilePromise(c,"");let g=["/.yarn/*","!/.yarn/patches","!/.yarn/plugins","!/.yarn/releases","!/.yarn/sdks","","# Swap the comments on the following lines if you don't wish to use zero-installs","# Documentation here: https://yarnpkg.com/features/zero-installs","!/.yarn/cache","#/.pnp.*"].map(m=>`${m} -`).join(""),f=v.join(this.context.cwd,".gitignore");T.existsSync(f)||await T.writeFilePromise(f,g);let h={["*"]:{endOfLine:"lf",insertFinalNewline:!0},["*.{js,json,yml}"]:{charset:"utf-8",indentStyle:"space",indentSize:2}};(0,Rle.default)(h,e.get("initEditorConfig"));let p=`root = true -`;for(let[m,I]of Object.entries(h)){p+=` -[${m}] -`;for(let[B,b]of Object.entries(I))p+=`${B.replace(/[A-Z]/g,H=>`_${H.toLowerCase()}`)} = ${b} -`}let d=v.join(this.context.cwd,".editorconfig");T.existsSync(d)||await T.writeFilePromise(d,p),T.existsSync(v.join(this.context.cwd,".git"))||await hr.execvp("git",["init"],{cwd:this.context.cwd})}}};WC.paths=[["init"]],WC.usage=ye.Usage({description:"create a new package",details:"\n This command will setup a new package in your local directory.\n\n If the `-p,--private` or `-w,--workspace` options are set, the package will be private by default.\n\n If the `-w,--workspace` option is set, the package will be configured to accept a set of workspaces in the `packages/` directory.\n\n If the `-i,--install` option is given a value, Yarn will first download it using `yarn set version` and only then forward the init call to the newly downloaded bundle. Without arguments, the downloaded bundle will be `latest`.\n\n The initial settings of the manifest can be changed by using the `initScope` and `initFields` configuration values. Additionally, Yarn will generate an EditorConfig file whose rules can be altered via `initEditorConfig`, and will initialize a Git repository in the current directory.\n ",examples:[["Create a new package in the local directory","yarn init"],["Create a new private package in the local directory","yarn init -p"],["Create a new package and store the Yarn release inside","yarn init -i=latest"],["Create a new private package and defines it as a workspace root","yarn init -w"]]});var Fle=WC;var T5e={configuration:{initScope:{description:"Scope used when creating packages via the init command",type:ge.STRING,default:null},initFields:{description:"Additional fields to set when creating packages via the init command",type:ge.MAP,valueDefinition:{description:"",type:ge.ANY}},initEditorConfig:{description:"Extra rules to define in the generator editorconfig",type:ge.MAP,valueDefinition:{description:"",type:ge.ANY}}},commands:[Fle]},M5e=T5e;var GL={};it(GL,{default:()=>K5e});var Ua="portal:",Ha="link:";var OL=class{supports(e,r){return!!e.reference.startsWith(Ua)}getLocalPath(e,r){let{parentLocator:i,path:n}=S.parseFileStyleRange(e.reference,{protocol:Ua});if(v.isAbsolute(n))return n;let s=r.fetcher.getLocalPath(i,r);return s===null?null:v.resolve(s,n)}async fetch(e,r){var c;let{parentLocator:i,path:n}=S.parseFileStyleRange(e.reference,{protocol:Ua}),s=v.isAbsolute(n)?{packageFs:new Ft(Se.root),prefixPath:Se.dot,localPath:Se.root}:await r.fetcher.fetch(i,r),o=s.localPath?{packageFs:new Ft(Se.root),prefixPath:v.relative(Se.root,s.localPath),localPath:Se.root}:s;s!==o&&s.releaseFs&&s.releaseFs();let a=o.packageFs,l=v.resolve((c=o.localPath)!=null?c:o.packageFs.getRealPath(),o.prefixPath,n);return s.localPath?{packageFs:new Ft(l,{baseFs:a}),releaseFs:o.releaseFs,prefixPath:Se.dot,localPath:l}:{packageFs:new Zo(l,{baseFs:a}),releaseFs:o.releaseFs,prefixPath:Se.dot}}};var KL=class{supportsDescriptor(e,r){return!!e.range.startsWith(Ua)}supportsLocator(e,r){return!!e.reference.startsWith(Ua)}shouldPersistResolution(e,r){return!1}bindDescriptor(e,r,i){return S.bindDescriptor(e,{locator:S.stringifyLocator(r)})}getResolutionDependencies(e,r){return[]}async getCandidates(e,r,i){let n=e.range.slice(Ua.length);return[S.makeLocator(e,`${Ua}${M.toPortablePath(n)}`)]}async getSatisfying(e,r,i){return null}async resolve(e,r){if(!r.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let i=await r.fetchOptions.fetcher.fetch(e,r.fetchOptions),n=await de.releaseAfterUseAsync(async()=>await Ze.find(i.prefixPath,{baseFs:i.packageFs}),i.releaseFs);return _(P({},e),{version:n.version||"0.0.0",languageName:n.languageName||r.project.configuration.get("defaultLanguageName"),linkType:gt.SOFT,conditions:n.getConditions(),dependencies:new Map([...n.dependencies]),peerDependencies:n.peerDependencies,dependenciesMeta:n.dependenciesMeta,peerDependenciesMeta:n.peerDependenciesMeta,bin:n.bin})}};var UL=class{supports(e,r){return!!e.reference.startsWith(Ha)}getLocalPath(e,r){let{parentLocator:i,path:n}=S.parseFileStyleRange(e.reference,{protocol:Ha});if(v.isAbsolute(n))return n;let s=r.fetcher.getLocalPath(i,r);return s===null?null:v.resolve(s,n)}async fetch(e,r){var c;let{parentLocator:i,path:n}=S.parseFileStyleRange(e.reference,{protocol:Ha}),s=v.isAbsolute(n)?{packageFs:new Ft(Se.root),prefixPath:Se.dot,localPath:Se.root}:await r.fetcher.fetch(i,r),o=s.localPath?{packageFs:new Ft(Se.root),prefixPath:v.relative(Se.root,s.localPath),localPath:Se.root}:s;s!==o&&s.releaseFs&&s.releaseFs();let a=o.packageFs,l=v.resolve((c=o.localPath)!=null?c:o.packageFs.getRealPath(),o.prefixPath,n);return s.localPath?{packageFs:new Ft(l,{baseFs:a}),releaseFs:o.releaseFs,prefixPath:Se.dot,discardFromLookup:!0,localPath:l}:{packageFs:new Zo(l,{baseFs:a}),releaseFs:o.releaseFs,prefixPath:Se.dot,discardFromLookup:!0}}};var HL=class{supportsDescriptor(e,r){return!!e.range.startsWith(Ha)}supportsLocator(e,r){return!!e.reference.startsWith(Ha)}shouldPersistResolution(e,r){return!1}bindDescriptor(e,r,i){return S.bindDescriptor(e,{locator:S.stringifyLocator(r)})}getResolutionDependencies(e,r){return[]}async getCandidates(e,r,i){let n=e.range.slice(Ha.length);return[S.makeLocator(e,`${Ha}${M.toPortablePath(n)}`)]}async getSatisfying(e,r,i){return null}async resolve(e,r){return _(P({},e),{version:"0.0.0",languageName:r.project.configuration.get("defaultLanguageName"),linkType:gt.SOFT,conditions:null,dependencies:new Map,peerDependencies:new Map,dependenciesMeta:new Map,peerDependenciesMeta:new Map,bin:new Map})}};var O5e={fetchers:[UL,OL],resolvers:[HL,KL]},K5e=O5e;var mT={};it(mT,{default:()=>Y6e});var Ga;(function(i){i[i.YES=0]="YES",i[i.NO=1]="NO",i[i.DEPENDS=2]="DEPENDS"})(Ga||(Ga={}));var jL=(t,e)=>`${t}@${e}`,Nle=(t,e)=>{let r=e.indexOf("#"),i=r>=0?e.substring(r+1):e;return jL(t,i)},qs;(function(s){s[s.NONE=-1]="NONE",s[s.PERF=0]="PERF",s[s.CHECK=1]="CHECK",s[s.REASONS=2]="REASONS",s[s.INTENSIVE_CHECK=9]="INTENSIVE_CHECK"})(qs||(qs={}));var Tle=(t,e={})=>{let r=e.debugLevel||Number(process.env.NM_DEBUG_LEVEL||-1),i=e.check||r>=9,n=e.hoistingLimits||new Map,s={check:i,debugLevel:r,hoistingLimits:n,fastLookupPossible:!0},o;s.debugLevel>=0&&(o=Date.now());let a=U5e(t,s),l=!1,c=0;do l=YL(a,[a],new Set([a.locator]),new Map,s).anotherRoundNeeded,s.fastLookupPossible=!1,c++;while(l);if(s.debugLevel>=0&&console.log(`hoist time: ${Date.now()-o}ms, rounds: ${c}`),s.debugLevel>=1){let u=zC(a);if(YL(a,[a],new Set([a.locator]),new Map,s).isGraphChanged)throw new Error(`The hoisting result is not terminal, prev tree: -${u}, next tree: -${zC(a)}`);let f=Lle(a);if(f)throw new Error(`${f}, after hoisting finished: -${zC(a)}`)}return s.debugLevel>=2&&console.log(zC(a)),H5e(a)},G5e=t=>{let e=t[t.length-1],r=new Map,i=new Set,n=s=>{if(!i.has(s)){i.add(s);for(let o of s.hoistedDependencies.values())r.set(o.name,o);for(let o of s.dependencies.values())s.peerNames.has(o.name)||n(o)}};return n(e),r},j5e=t=>{let e=t[t.length-1],r=new Map,i=new Set,n=new Set,s=(o,a)=>{if(i.has(o))return;i.add(o);for(let c of o.hoistedDependencies.values())if(!a.has(c.name)){let u;for(let g of t)u=g.dependencies.get(c.name),u&&r.set(u.name,u)}let l=new Set;for(let c of o.dependencies.values())l.add(c.name);for(let c of o.dependencies.values())o.peerNames.has(c.name)||s(c,l)};return s(e,n),r},Mle=(t,e)=>{if(e.decoupled)return e;let{name:r,references:i,ident:n,locator:s,dependencies:o,originalDependencies:a,hoistedDependencies:l,peerNames:c,reasons:u,isHoistBorder:g,hoistPriority:f,isWorkspace:h,hoistedFrom:p,hoistedTo:d}=e,m={name:r,references:new Set(i),ident:n,locator:s,dependencies:new Map(o),originalDependencies:new Map(a),hoistedDependencies:new Map(l),peerNames:new Set(c),reasons:new Map(u),decoupled:!0,isHoistBorder:g,hoistPriority:f,isWorkspace:h,hoistedFrom:new Map(p),hoistedTo:new Map(d)},I=m.dependencies.get(r);return I&&I.ident==m.ident&&m.dependencies.set(r,m),t.dependencies.set(m.name,m),m},Y5e=(t,e)=>{let r=new Map([[t.name,[t.ident]]]);for(let n of t.dependencies.values())t.peerNames.has(n.name)||r.set(n.name,[n.ident]);let i=Array.from(e.keys());i.sort((n,s)=>{let o=e.get(n),a=e.get(s);return a.hoistPriority!==o.hoistPriority?a.hoistPriority-o.hoistPriority:a.peerDependents.size!==o.peerDependents.size?a.peerDependents.size-o.peerDependents.size:a.dependents.size-o.dependents.size});for(let n of i){let s=n.substring(0,n.indexOf("@",1)),o=n.substring(s.length+1);if(!t.peerNames.has(s)){let a=r.get(s);a||(a=[],r.set(s,a)),a.indexOf(o)<0&&a.push(o)}}return r},qL=t=>{let e=new Set,r=(i,n=new Set)=>{if(!n.has(i)){n.add(i);for(let s of i.peerNames)if(!t.peerNames.has(s)){let o=t.dependencies.get(s);o&&!e.has(o)&&r(o,n)}e.add(i)}};for(let i of t.dependencies.values())t.peerNames.has(i.name)||r(i);return e},YL=(t,e,r,i,n,s=new Set)=>{let o=e[e.length-1];if(s.has(o))return{anotherRoundNeeded:!1,isGraphChanged:!1};s.add(o);let a=J5e(o),l=Y5e(o,a),c=t==o?new Map:n.fastLookupPossible?G5e(e):j5e(e),u,g=!1,f=!1,h=new Map(Array.from(l.entries()).map(([d,m])=>[d,m[0]])),p=new Map;do{let d=q5e(t,e,r,c,h,l,i,p,n);d.isGraphChanged&&(f=!0),d.anotherRoundNeeded&&(g=!0),u=!1;for(let[m,I]of l)I.length>1&&!o.dependencies.has(m)&&(h.delete(m),I.shift(),h.set(m,I[0]),u=!0)}while(u);for(let d of o.dependencies.values())if(!o.peerNames.has(d.name)&&!r.has(d.locator)){r.add(d.locator);let m=YL(t,[...e,d],r,p,n);m.isGraphChanged&&(f=!0),m.anotherRoundNeeded&&(g=!0),r.delete(d.locator)}return{anotherRoundNeeded:g,isGraphChanged:f}},W5e=(t,e,r,i,n,s,o,a,{outputReason:l,fastLookupPossible:c})=>{let u,g=null,f=new Set;l&&(u=`${Array.from(e).map(m=>wi(m)).join("\u2192")}`);let h=r[r.length-1],d=!(i.ident===h.ident);if(l&&!d&&(g="- self-reference"),d&&(d=!i.isWorkspace,l&&!d&&(g="- workspace")),d&&(d=!h.isWorkspace||h.hoistedFrom.has(i.name)||e.size===1,l&&!d&&(g=h.reasons.get(i.name))),d&&(d=!t.peerNames.has(i.name),l&&!d&&(g=`- cannot shadow peer: ${wi(t.originalDependencies.get(i.name).locator)} at ${u}`)),d){let m=!1,I=n.get(i.name);if(m=!I||I.ident===i.ident,l&&!m&&(g=`- filled by: ${wi(I.locator)} at ${u}`),m)for(let B=r.length-1;B>=1;B--){let R=r[B].dependencies.get(i.name);if(R&&R.ident!==i.ident){m=!1;let H=a.get(h);H||(H=new Set,a.set(h,H)),H.add(i.name),l&&(g=`- filled by ${wi(R.locator)} at ${r.slice(0,B).map(L=>wi(L.locator)).join("\u2192")}`);break}}d=m}if(d&&(d=s.get(i.name)===i.ident,l&&!d&&(g=`- filled by: ${wi(o.get(i.name)[0])} at ${u}`)),d){let m=!0,I=new Set(i.peerNames);for(let B=r.length-1;B>=1;B--){let b=r[B];for(let R of I){if(b.peerNames.has(R)&&b.originalDependencies.has(R))continue;let H=b.dependencies.get(R);H&&t.dependencies.get(R)!==H&&(B===r.length-1?f.add(H):(f=null,m=!1,l&&(g=`- peer dependency ${wi(H.locator)} from parent ${wi(b.locator)} was not hoisted to ${u}`))),I.delete(R)}if(!m)break}d=m}if(d&&!c)for(let m of i.hoistedDependencies.values()){let I=n.get(m.name);if(!I||m.ident!==I.ident){d=!1,l&&(g=`- previously hoisted dependency mismatch, needed: ${wi(m.locator)}, available: ${wi(I==null?void 0:I.locator)}`);break}}return f!==null&&f.size>0?{isHoistable:2,dependsOn:f,reason:g}:{isHoistable:d?0:1,reason:g}},q5e=(t,e,r,i,n,s,o,a,l)=>{let c=e[e.length-1],u=new Set,g=!1,f=!1,h=(m,I,B,b)=>{if(u.has(B))return;let R=[...I,B.locator],H=new Map,L=new Map;for(let q of qL(B)){let A=W5e(c,r,[c,...m,B],q,i,n,s,a,{outputReason:l.debugLevel>=2,fastLookupPossible:l.fastLookupPossible});if(L.set(q,A),A.isHoistable===2)for(let V of A.dependsOn){let W=H.get(V.name)||new Set;W.add(q.name),H.set(V.name,W)}}let K=new Set,J=(q,A,V)=>{if(!K.has(q)){K.add(q),L.set(q,{isHoistable:1,reason:V});for(let W of H.get(q.name)||[])J(B.dependencies.get(W),A,l.debugLevel>=2?`- peer dependency ${wi(q.locator)} from parent ${wi(B.locator)} was not hoisted`:"")}};for(let[q,A]of L)A.isHoistable===1&&J(q,A,A.reason);for(let q of L.keys())if(!K.has(q)){f=!0;let A=o.get(B);A&&A.has(q.name)&&(g=!0),B.dependencies.delete(q.name),B.hoistedDependencies.set(q.name,q),B.reasons.delete(q.name);let V=c.dependencies.get(q.name);if(l.debugLevel>=2){let W=Array.from(I).concat([B.locator]).map(F=>wi(F)).join("\u2192"),X=c.hoistedFrom.get(q.name);X||(X=[],c.hoistedFrom.set(q.name,X)),X.push(W),B.hoistedTo.set(q.name,Array.from(e).map(F=>wi(F.locator)).join("\u2192"))}if(!V)c.ident!==q.ident&&(c.dependencies.set(q.name,q),b.add(q));else for(let W of q.references)V.references.add(W)}if(l.check){let q=Lle(t);if(q)throw new Error(`${q}, after hoisting dependencies of ${[c,...m,B].map(A=>wi(A.locator)).join("\u2192")}: -${zC(t)}`)}let ne=qL(B);for(let q of ne)if(K.has(q)){let A=L.get(q);if((n.get(q.name)===q.ident||!B.reasons.has(q.name))&&A.isHoistable!==0&&B.reasons.set(q.name,A.reason),!q.isHoistBorder&&R.indexOf(q.locator)<0){u.add(B);let W=Mle(B,q);h([...m,B],[...I,B.locator],W,d),u.delete(B)}}},p,d=new Set(qL(c));do{p=d,d=new Set;for(let m of p){if(m.locator===c.locator||m.isHoistBorder)continue;let I=Mle(c,m);h([],Array.from(r),I,d)}}while(d.size>0);return{anotherRoundNeeded:g,isGraphChanged:f}},Lle=t=>{let e=[],r=new Set,i=new Set,n=(s,o,a)=>{if(r.has(s)||(r.add(s),i.has(s)))return;let l=new Map(o);for(let c of s.dependencies.values())s.peerNames.has(c.name)||l.set(c.name,c);for(let c of s.originalDependencies.values()){let u=l.get(c.name),g=()=>`${Array.from(i).concat([s]).map(f=>wi(f.locator)).join("\u2192")}`;if(s.peerNames.has(c.name)){let f=o.get(c.name);(f!==u||!f||f.ident!==c.ident)&&e.push(`${g()} - broken peer promise: expected ${c.ident} but found ${f&&f.ident}`)}else{let f=a.hoistedFrom.get(s.name),h=s.hoistedTo.get(c.name),p=`${f?` hoisted from ${f.join(", ")}`:""}`,d=`${h?` hoisted to ${h}`:""}`,m=`${g()}${p}`;u?u.ident!==c.ident&&e.push(`${m} - broken require promise for ${c.name}${d}: expected ${c.ident}, but found: ${u.ident}`):e.push(`${m} - broken require promise: no required dependency ${c.name}${d} found`)}}i.add(s);for(let c of s.dependencies.values())s.peerNames.has(c.name)||n(c,l,s);i.delete(s)};return n(t,t.dependencies,t),e.join(` -`)},U5e=(t,e)=>{let{identName:r,name:i,reference:n,peerNames:s}=t,o={name:i,references:new Set([n]),locator:jL(r,n),ident:Nle(r,n),dependencies:new Map,originalDependencies:new Map,hoistedDependencies:new Map,peerNames:new Set(s),reasons:new Map,decoupled:!0,isHoistBorder:!0,hoistPriority:0,isWorkspace:!0,hoistedFrom:new Map,hoistedTo:new Map},a=new Map([[t,o]]),l=(c,u)=>{let g=a.get(c),f=!!g;if(!g){let{name:h,identName:p,reference:d,peerNames:m,hoistPriority:I,isWorkspace:B}=c,b=e.hoistingLimits.get(u.locator);g={name:h,references:new Set([d]),locator:jL(p,d),ident:Nle(p,d),dependencies:new Map,originalDependencies:new Map,hoistedDependencies:new Map,peerNames:new Set(m),reasons:new Map,decoupled:!0,isHoistBorder:b?b.has(h):!1,hoistPriority:I||0,isWorkspace:B||!1,hoistedFrom:new Map,hoistedTo:new Map},a.set(c,g)}if(u.dependencies.set(c.name,g),u.originalDependencies.set(c.name,g),f){let h=new Set,p=d=>{if(!h.has(d)){h.add(d),d.decoupled=!1;for(let m of d.dependencies.values())d.peerNames.has(m.name)||p(m)}};p(g)}else for(let h of c.dependencies)l(h,g)};for(let c of t.dependencies)l(c,o);return o},JL=t=>t.substring(0,t.indexOf("@",1)),H5e=t=>{let e={name:t.name,identName:JL(t.locator),references:new Set(t.references),dependencies:new Set},r=new Set([t]),i=(n,s,o)=>{let a=r.has(n),l;if(s===n)l=o;else{let{name:c,references:u,locator:g}=n;l={name:c,identName:JL(g),references:u,dependencies:new Set}}if(o.dependencies.add(l),!a){r.add(n);for(let c of n.dependencies.values())n.peerNames.has(c.name)||i(c,n,l);r.delete(n)}};for(let n of t.dependencies.values())i(n,t,e);return e},J5e=t=>{let e=new Map,r=new Set([t]),i=o=>`${o.name}@${o.ident}`,n=o=>{let a=i(o),l=e.get(a);return l||(l={dependents:new Set,peerDependents:new Set,hoistPriority:0},e.set(a,l)),l},s=(o,a)=>{let l=!!r.has(a);if(n(a).dependents.add(o.ident),!l){r.add(a);for(let u of a.dependencies.values()){let g=n(u);g.hoistPriority=Math.max(g.hoistPriority,u.hoistPriority),a.peerNames.has(u.name)?g.peerDependents.add(a.ident):s(a,u)}}};for(let o of t.dependencies.values())t.peerNames.has(o.name)||s(t,o);return e},wi=t=>{if(!t)return"none";let e=t.indexOf("@",1),r=t.substring(0,e);r.endsWith("$wsroot$")&&(r=`wh:${r.replace("$wsroot$","")}`);let i=t.substring(e+1);if(i==="workspace:.")return".";if(i){let n=(i.indexOf("#")>0?i.split("#")[1]:i).replace("npm:","");return i.startsWith("virtual")&&(r=`v:${r}`),n.startsWith("workspace")&&(r=`w:${r}`,n=""),`${r}${n?`@${n}`:""}`}else return`${r}`},Ole=5e4,zC=t=>{let e=0,r=(n,s,o="")=>{if(e>Ole||s.has(n))return"";e++;let a=Array.from(n.dependencies.values()).sort((c,u)=>c.name.localeCompare(u.name)),l="";s.add(n);for(let c=0;c":"")+(f!==u.name?`a:${u.name}:`:"")+wi(u.locator)+(g?` ${g}`:"")+(u!==n&&h.length>0?`, hoisted from: ${h.join(", ")}`:"")} -`,l+=r(u,s,`${o}${cOle?` -Tree is too large, part of the tree has been dunped -`:"")};var Js;(function(r){r.HARD="HARD",r.SOFT="SOFT"})(Js||(Js={}));var Sn;(function(i){i.WORKSPACES="workspaces",i.DEPENDENCIES="dependencies",i.NONE="none"})(Sn||(Sn={}));var Kle="node_modules",Hc="$wsroot$";var VC=(t,e)=>{let{packageTree:r,hoistingLimits:i,errors:n,preserveSymlinksRequired:s}=z5e(t,e),o=null;if(n.length===0){let a=Tle(r,{hoistingLimits:i});o=V5e(t,a,e)}return{tree:o,errors:n,preserveSymlinksRequired:s}},ms=t=>`${t.name}@${t.reference}`,WL=t=>{let e=new Map;for(let[r,i]of t.entries())if(!i.dirList){let n=e.get(i.locator);n||(n={target:i.target,linkType:i.linkType,locations:[],aliases:i.aliases},e.set(i.locator,n)),n.locations.push(r)}for(let r of e.values())r.locations=r.locations.sort((i,n)=>{let s=i.split(v.delimiter).length,o=n.split(v.delimiter).length;return s!==o?o-s:n.localeCompare(i)});return e},Ule=(t,e)=>{let r=S.isVirtualLocator(t)?S.devirtualizeLocator(t):t,i=S.isVirtualLocator(e)?S.devirtualizeLocator(e):e;return S.areLocatorsEqual(r,i)},zL=(t,e,r,i)=>{if(t.linkType!==Js.SOFT)return!1;let n=M.toPortablePath(r.resolveVirtual&&e.reference&&e.reference.startsWith("virtual:")?r.resolveVirtual(t.packageLocation):t.packageLocation);return v.contains(i,n)===null},_5e=t=>{let e=t.getPackageInformation(t.topLevel);if(e===null)throw new Error("Assertion failed: Expected the top-level package to have been registered");if(t.findPackageLocator(e.packageLocation)===null)throw new Error("Assertion failed: Expected the top-level package to have a physical locator");let i=M.toPortablePath(e.packageLocation.slice(0,-1)),n=new Map,s={children:new Map},o=t.getDependencyTreeRoots(),a=new Map,l=new Set,c=(f,h)=>{let p=ms(f);if(l.has(p))return;l.add(p);let d=t.getPackageInformation(f);if(d){let m=h?ms(h):"";if(ms(f)!==m&&d.linkType===Js.SOFT&&!zL(d,f,t,i)){let I=Hle(d,f,t);(!a.get(I)||f.reference.startsWith("workspace:"))&&a.set(I,f)}for(let[I,B]of d.packageDependencies)B!==null&&(d.packagePeers.has(I)||c(t.getLocator(I,B),f))}};for(let f of o)c(f,null);let u=i.split(v.sep);for(let f of a.values()){let h=t.getPackageInformation(f),d=M.toPortablePath(h.packageLocation.slice(0,-1)).split(v.sep).slice(u.length),m=s;for(let I of d){let B=m.children.get(I);B||(B={children:new Map},m.children.set(I,B)),m=B}m.workspaceLocator=f}let g=(f,h)=>{if(f.workspaceLocator){let p=ms(h),d=n.get(p);d||(d=new Set,n.set(p,d)),d.add(f.workspaceLocator)}for(let p of f.children.values())g(p,f.workspaceLocator||h)};for(let f of s.children.values())g(f,s.workspaceLocator);return n},z5e=(t,e)=>{let r=[],i=!1,n=new Map,s=_5e(t),o=t.getPackageInformation(t.topLevel);if(o===null)throw new Error("Assertion failed: Expected the top-level package to have been registered");let a=t.findPackageLocator(o.packageLocation);if(a===null)throw new Error("Assertion failed: Expected the top-level package to have a physical locator");let l=M.toPortablePath(o.packageLocation.slice(0,-1)),c={name:a.name,identName:a.name,reference:a.reference,peerNames:o.packagePeers,dependencies:new Set,isWorkspace:!0},u=new Map,g=(h,p)=>`${ms(p)}:${h}`,f=(h,p,d,m,I,B,b,R)=>{var X,F;let H=g(h,d),L=u.get(H),K=!!L;!K&&d.name===a.name&&d.reference===a.reference&&(L=c,u.set(H,c));let J=zL(p,d,t,l);if(!L){let D=p.linkType===Js.SOFT&&d.name.endsWith(Hc);L={name:h,identName:d.name,reference:d.reference,dependencies:new Set,peerNames:D?new Set:p.packagePeers,isWorkspace:D},u.set(H,L)}let ne;if(J?ne=2:I.linkType===Js.SOFT?ne=1:ne=0,L.hoistPriority=Math.max(L.hoistPriority||0,ne),R&&!J){let D=ms({name:m.identName,reference:m.reference}),he=n.get(D)||new Set;n.set(D,he),he.add(L.name)}let q=new Map(p.packageDependencies);if(e.project){let D=e.project.workspacesByCwd.get(M.toPortablePath(p.packageLocation.slice(0,-1)));if(D){let he=new Set([...Array.from(D.manifest.peerDependencies.values(),pe=>S.stringifyIdent(pe)),...Array.from(D.manifest.peerDependenciesMeta.keys())]);for(let pe of he)q.has(pe)||(q.set(pe,B.get(pe)||null),L.peerNames.add(pe))}}let A=ms({name:d.name.replace(Hc,""),reference:d.reference}),V=s.get(A);if(V)for(let D of V)q.set(`${D.name}${Hc}`,D.reference);(p!==I||p.linkType!==Js.SOFT||!e.selfReferencesByCwd||e.selfReferencesByCwd.get(b))&&m.dependencies.add(L);let W=d!==a&&p.linkType===Js.SOFT&&!d.name.endsWith(Hc)&&!J;if(!K&&!W){let D=new Map;for(let[he,pe]of q)if(pe!==null){let Ne=t.getLocator(he,pe),Pe=t.getLocator(he.replace(Hc,""),pe),qe=t.getPackageInformation(Pe);if(qe===null)throw new Error("Assertion failed: Expected the package to have been registered");let re=zL(qe,Ne,t,l);if(e.validateExternalSoftLinks&&e.project&&re){qe.packageDependencies.size>0&&(i=!0);for(let[De,$]of qe.packageDependencies)if($!==null){let G=S.parseLocator(Array.isArray($)?`${$[0]}@${$[1]}`:`${De}@${$}`);if(ms(G)!==ms(Ne)){let Ce=q.get(De);if(Ce){let ee=S.parseLocator(Array.isArray(Ce)?`${Ce[0]}@${Ce[1]}`:`${De}@${Ce}`);Ule(ee,G)||r.push({messageName:z.NM_CANT_INSTALL_EXTERNAL_SOFT_LINK,text:`Cannot link ${S.prettyIdent(e.project.configuration,S.parseIdent(Ne.name))} into ${S.prettyLocator(e.project.configuration,S.parseLocator(`${d.name}@${d.reference}`))} dependency ${S.prettyLocator(e.project.configuration,G)} conflicts with parent dependency ${S.prettyLocator(e.project.configuration,ee)}`})}else{let ee=D.get(De);if(ee){let Ue=ee.target,Oe=S.parseLocator(Array.isArray(Ue)?`${Ue[0]}@${Ue[1]}`:`${De}@${Ue}`);Ule(Oe,G)||r.push({messageName:z.NM_CANT_INSTALL_EXTERNAL_SOFT_LINK,text:`Cannot link ${S.prettyIdent(e.project.configuration,S.parseIdent(Ne.name))} into ${S.prettyLocator(e.project.configuration,S.parseLocator(`${d.name}@${d.reference}`))} dependency ${S.prettyLocator(e.project.configuration,G)} conflicts with dependency ${S.prettyLocator(e.project.configuration,Oe)} from sibling portal ${S.prettyIdent(e.project.configuration,S.parseIdent(ee.portal.name))}`})}else D.set(De,{target:G.reference,portal:Ne})}}}}let se=(X=e.hoistingLimitsByCwd)==null?void 0:X.get(b),be=re?b:v.relative(l,M.toPortablePath(qe.packageLocation))||Se.dot,ae=(F=e.hoistingLimitsByCwd)==null?void 0:F.get(be),Ae=se===Sn.DEPENDENCIES||ae===Sn.DEPENDENCIES||ae===Sn.WORKSPACES;f(ms(Ne)===ms(d)?h:he,qe,Ne,L,p,q,be,Ae)}}};return f(a.name,o,a,c,o,o.packageDependencies,Se.dot,!1),{packageTree:c,hoistingLimits:n,errors:r,preserveSymlinksRequired:i}};function Hle(t,e,r){let i=r.resolveVirtual&&e.reference&&e.reference.startsWith("virtual:")?r.resolveVirtual(t.packageLocation):t.packageLocation;return M.toPortablePath(i||t.packageLocation)}function X5e(t,e,r){let i=e.getLocator(t.name.replace(Hc,""),t.reference),n=e.getPackageInformation(i);if(n===null)throw new Error("Assertion failed: Expected the package to be registered");let s,o;return r.pnpifyFs?(o=M.toPortablePath(n.packageLocation),s=Js.SOFT):(o=Hle(n,t,e),s=n.linkType),{linkType:s,target:o}}var V5e=(t,e,r)=>{let i=new Map,n=(u,g,f)=>{let{linkType:h,target:p}=X5e(u,t,r);return{locator:ms(u),nodePath:g,target:p,linkType:h,aliases:f}},s=u=>{let[g,f]=u.split("/");return f?{scope:kr(g),name:kr(f)}:{scope:null,name:kr(g)}},o=new Set,a=(u,g,f)=>{if(!o.has(u)){o.add(u);for(let h of u.dependencies){if(h===u)continue;let p=Array.from(h.references).sort(),d={name:h.identName,reference:p[0]},{name:m,scope:I}=s(h.name),B=I?[I,m]:[m],b=v.join(g,Kle),R=v.join(b,...B),H=`${f}/${d.name}`,L=n(d,f,p.slice(1)),K=!1;if(L.linkType===Js.SOFT&&r.project){let J=r.project.workspacesByCwd.get(L.target.slice(0,-1));K=!!(J&&!J.manifest.name)}if(!h.name.endsWith(Hc)&&!K){let J=i.get(R);if(J){if(J.dirList)throw new Error(`Assertion failed: ${R} cannot merge dir node with leaf node`);{let V=S.parseLocator(J.locator),W=S.parseLocator(L.locator);if(J.linkType!==L.linkType)throw new Error(`Assertion failed: ${R} cannot merge nodes with different link types ${J.nodePath}/${S.stringifyLocator(V)} and ${f}/${S.stringifyLocator(W)}`);if(V.identHash!==W.identHash)throw new Error(`Assertion failed: ${R} cannot merge nodes with different idents ${J.nodePath}/${S.stringifyLocator(V)} and ${f}/s${S.stringifyLocator(W)}`);L.aliases=[...L.aliases,...J.aliases,S.parseLocator(J.locator).reference]}}i.set(R,L);let ne=R.split("/"),q=ne.indexOf(Kle),A=ne.length-1;for(;q>=0&&A>q;){let V=M.toPortablePath(ne.slice(0,A).join(v.sep)),W=kr(ne[A]),X=i.get(V);if(!X)i.set(V,{dirList:new Set([W])});else if(X.dirList){if(X.dirList.has(W))break;X.dirList.add(W)}A--}}a(h,L.linkType===Js.SOFT?L.target:R,H)}}},l=n({name:e.name,reference:Array.from(e.references)[0]},"",[]),c=l.target;return i.set(c,l),a(e,c,""),i};var oT={};it(oT,{PnpInstaller:()=>Cf,PnpLinker:()=>jc,default:()=>m6e,getPnpPath:()=>qA,jsInstallUtils:()=>Ws,pnpUtils:()=>nT,quotePathIfNeeded:()=>uce});var lce=ie(Or()),cce=ie(require("url"));var Gle;(function(r){r.HARD="HARD",r.SOFT="SOFT"})(Gle||(Gle={}));var Ht;(function(f){f.DEFAULT="DEFAULT",f.TOP_LEVEL="TOP_LEVEL",f.FALLBACK_EXCLUSION_LIST="FALLBACK_EXCLUSION_LIST",f.FALLBACK_EXCLUSION_ENTRIES="FALLBACK_EXCLUSION_ENTRIES",f.FALLBACK_EXCLUSION_DATA="FALLBACK_EXCLUSION_DATA",f.PACKAGE_REGISTRY_DATA="PACKAGE_REGISTRY_DATA",f.PACKAGE_REGISTRY_ENTRIES="PACKAGE_REGISTRY_ENTRIES",f.PACKAGE_STORE_DATA="PACKAGE_STORE_DATA",f.PACKAGE_STORE_ENTRIES="PACKAGE_STORE_ENTRIES",f.PACKAGE_INFORMATION_DATA="PACKAGE_INFORMATION_DATA",f.PACKAGE_DEPENDENCIES="PACKAGE_DEPENDENCIES",f.PACKAGE_DEPENDENCY="PACKAGE_DEPENDENCY"})(Ht||(Ht={}));var jle={[Ht.DEFAULT]:{collapsed:!1,next:{["*"]:Ht.DEFAULT}},[Ht.TOP_LEVEL]:{collapsed:!1,next:{fallbackExclusionList:Ht.FALLBACK_EXCLUSION_LIST,packageRegistryData:Ht.PACKAGE_REGISTRY_DATA,["*"]:Ht.DEFAULT}},[Ht.FALLBACK_EXCLUSION_LIST]:{collapsed:!1,next:{["*"]:Ht.FALLBACK_EXCLUSION_ENTRIES}},[Ht.FALLBACK_EXCLUSION_ENTRIES]:{collapsed:!0,next:{["*"]:Ht.FALLBACK_EXCLUSION_DATA}},[Ht.FALLBACK_EXCLUSION_DATA]:{collapsed:!0,next:{["*"]:Ht.DEFAULT}},[Ht.PACKAGE_REGISTRY_DATA]:{collapsed:!1,next:{["*"]:Ht.PACKAGE_REGISTRY_ENTRIES}},[Ht.PACKAGE_REGISTRY_ENTRIES]:{collapsed:!0,next:{["*"]:Ht.PACKAGE_STORE_DATA}},[Ht.PACKAGE_STORE_DATA]:{collapsed:!1,next:{["*"]:Ht.PACKAGE_STORE_ENTRIES}},[Ht.PACKAGE_STORE_ENTRIES]:{collapsed:!0,next:{["*"]:Ht.PACKAGE_INFORMATION_DATA}},[Ht.PACKAGE_INFORMATION_DATA]:{collapsed:!1,next:{packageDependencies:Ht.PACKAGE_DEPENDENCIES,["*"]:Ht.DEFAULT}},[Ht.PACKAGE_DEPENDENCIES]:{collapsed:!1,next:{["*"]:Ht.PACKAGE_DEPENDENCY}},[Ht.PACKAGE_DEPENDENCY]:{collapsed:!0,next:{["*"]:Ht.DEFAULT}}};function Z5e(t,e,r){let i="";i+="[";for(let n=0,s=t.length;ns(o)));let n=r.map((s,o)=>o);return n.sort((s,o)=>{for(let a of i){let l=a[s]a[o]?1:0;if(l!==0)return l}return 0}),n.map(s=>r[s])}function r6e(t){let e=new Map,r=_C(t.fallbackExclusionList||[],[({name:i,reference:n})=>i,({name:i,reference:n})=>n]);for(let{name:i,reference:n}of r){let s=e.get(i);typeof s=="undefined"&&e.set(i,s=new Set),s.add(n)}return Array.from(e).map(([i,n])=>[i,Array.from(n)])}function i6e(t){return _C(t.fallbackPool||[],([e])=>e)}function n6e(t){let e=[];for(let[r,i]of _C(t.packageRegistry,([n])=>n===null?"0":`1${n}`)){let n=[];e.push([r,n]);for(let[s,{packageLocation:o,packageDependencies:a,packagePeers:l,linkType:c,discardFromLookup:u}]of _C(i,([g])=>g===null?"0":`1${g}`)){let g=[];r!==null&&s!==null&&!a.has(r)&&g.push([r,s]);for(let[p,d]of _C(a.entries(),([m])=>m))g.push([p,d]);let f=l&&l.size>0?Array.from(l):void 0,h=u||void 0;n.push([s,{packageLocation:o,packageDependencies:g,packagePeers:f,linkType:c,discardFromLookup:h}])}}return e}function XC(t){return{__info:["This file is automatically generated. Do not touch it, or risk","your modifications being lost. We also recommend you not to read","it either without using the @yarnpkg/pnp package, as the data layout","is entirely unspecified and WILL change from a version to another."],dependencyTreeRoots:t.dependencyTreeRoots,enableTopLevelFallback:t.enableTopLevelFallback||!1,ignorePatternData:t.ignorePattern||null,fallbackExclusionList:r6e(t),fallbackPool:i6e(t),packageRegistryData:n6e(t)}}var zle=ie(Wle());function Vle(t,e){return[t?`${t} -`:"",`/* eslint-disable */ - -`,`try { -`,` Object.freeze({}).detectStrictMode = true; -`,`} catch (error) { -`," throw new Error(`The whole PnP file got strict-mode-ified, which is known to break (Emscripten libraries aren't strict mode). This usually happens when the file goes through Babel.`);\n",`} -`,` -`,`var __non_webpack_module__ = module; -`,` -`,`function $$SETUP_STATE(hydrateRuntimeState, basePath) { -`,e.replace(/^/gm," "),`} -`,` -`,(0,zle.default)()].join("")}function s6e(t){return JSON.stringify(t,null,2)}function o6e(t){return[`return hydrateRuntimeState(${qle(t)}, {basePath: basePath || __dirname}); -`].join("")}function a6e(t){return[`var path = require('path'); -`,`var dataLocation = path.resolve(__dirname, ${JSON.stringify(t)}); -`,`return hydrateRuntimeState(require(dataLocation), {basePath: basePath || path.dirname(dataLocation)}); -`].join("")}function _le(t){let e=XC(t),r=o6e(e);return Vle(t.shebang,r)}function Xle(t){let e=XC(t),r=a6e(t.dataLocation),i=Vle(t.shebang,r);return{dataFile:s6e(e),loaderFile:i}}var tce=ie(require("fs")),u6e=ie(require("path")),rce=ie(require("util"));function _L(t,{basePath:e}){let r=M.toPortablePath(e),i=v.resolve(r),n=t.ignorePatternData!==null?new RegExp(t.ignorePatternData):null,s=new Map,o=new Map(t.packageRegistryData.map(([g,f])=>[g,new Map(f.map(([h,p])=>{var b;if(g===null!=(h===null))throw new Error("Assertion failed: The name and reference should be null, or neither should");let d=(b=p.discardFromLookup)!=null?b:!1,m={name:g,reference:h},I=s.get(p.packageLocation);I?(I.discardFromLookup=I.discardFromLookup&&d,d||(I.locator=m)):s.set(p.packageLocation,{locator:m,discardFromLookup:d});let B=null;return[h,{packageDependencies:new Map(p.packageDependencies),packagePeers:new Set(p.packagePeers),linkType:p.linkType,discardFromLookup:d,get packageLocation(){return B||(B=v.join(i,p.packageLocation))}}]}))])),a=new Map(t.fallbackExclusionList.map(([g,f])=>[g,new Set(f)])),l=new Map(t.fallbackPool),c=t.dependencyTreeRoots,u=t.enableTopLevelFallback;return{basePath:r,dependencyTreeRoots:c,enableTopLevelFallback:u,fallbackExclusionList:a,fallbackPool:l,ignorePattern:n,packageLocatorsByLocations:s,packageRegistry:o}}var df=ie(require("module")),ece=ie($le()),ZL=ie(require("util"));var ur;(function(l){l.API_ERROR="API_ERROR",l.BUILTIN_NODE_RESOLUTION_FAILED="BUILTIN_NODE_RESOLUTION_FAILED",l.MISSING_DEPENDENCY="MISSING_DEPENDENCY",l.MISSING_PEER_DEPENDENCY="MISSING_PEER_DEPENDENCY",l.QUALIFIED_PATH_RESOLUTION_FAILED="QUALIFIED_PATH_RESOLUTION_FAILED",l.INTERNAL="INTERNAL",l.UNDECLARED_DEPENDENCY="UNDECLARED_DEPENDENCY",l.UNSUPPORTED="UNSUPPORTED"})(ur||(ur={}));var c6e=new Set([ur.BUILTIN_NODE_RESOLUTION_FAILED,ur.MISSING_DEPENDENCY,ur.MISSING_PEER_DEPENDENCY,ur.QUALIFIED_PATH_RESOLUTION_FAILED,ur.UNDECLARED_DEPENDENCY]);function ui(t,e,r={}){let i=c6e.has(t)?"MODULE_NOT_FOUND":t,n={configurable:!0,writable:!0,enumerable:!1};return Object.defineProperties(new Error(e),{code:_(P({},n),{value:i}),pnpCode:_(P({},n),{value:t}),data:_(P({},n),{value:r})})}function YA(t){return M.normalize(M.fromPortablePath(t))}function $L(t,e){let r=Number(process.env.PNP_ALWAYS_WARN_ON_FALLBACK)>0,i=Number(process.env.PNP_DEBUG_LEVEL),n=new Set(df.Module.builtinModules||Object.keys(process.binding("natives"))),s=re=>n.has(re)||re.startsWith("node:"),o=/^(?![a-zA-Z]:[\\/]|\\\\|\.{0,2}(?:\/|$))((?:node:)?(?:@[^/]+\/)?[^/]+)\/*(.*|)$/,a=/^(\/|\.{1,2}(\/|$))/,l=/\/$/,c=/^\.{0,2}\//,u={name:null,reference:null},g=[],f=new Set;if(t.enableTopLevelFallback===!0&&g.push(u),e.compatibilityMode!==!1)for(let re of["react-scripts","gatsby"]){let se=t.packageRegistry.get(re);if(se)for(let be of se.keys()){if(be===null)throw new Error("Assertion failed: This reference shouldn't be null");g.push({name:re,reference:be})}}let{ignorePattern:h,packageRegistry:p,packageLocatorsByLocations:d}=t;function m(re,se){return{fn:re,args:se,error:null,result:null}}function I(re){var De,$,G,Ce,ee,Ue;let se=(G=($=(De=process.stderr)==null?void 0:De.hasColors)==null?void 0:$.call(De))!=null?G:process.stdout.isTTY,be=(Oe,vt)=>`[${Oe}m${vt}`,ae=re.error;console.error(ae?be("31;1",`\u2716 ${(Ce=re.error)==null?void 0:Ce.message.replace(/\n.*/s,"")}`):be("33;1","\u203C Resolution")),re.args.length>0&&console.error();for(let Oe of re.args)console.error(` ${be("37;1","In \u2190")} ${(0,ZL.inspect)(Oe,{colors:se,compact:!0})}`);re.result&&(console.error(),console.error(` ${be("37;1","Out \u2192")} ${(0,ZL.inspect)(re.result,{colors:se,compact:!0})}`));let Ae=(Ue=(ee=new Error().stack.match(/(?<=^ +)at.*/gm))==null?void 0:ee.slice(2))!=null?Ue:[];if(Ae.length>0){console.error();for(let Oe of Ae)console.error(` ${be("38;5;244",Oe)}`)}console.error()}function B(re,se){if(e.allowDebug===!1)return se;if(Number.isFinite(i)){if(i>=2)return(...be)=>{let ae=m(re,be);try{return ae.result=se(...be)}catch(Ae){throw ae.error=Ae}finally{I(ae)}};if(i>=1)return(...be)=>{try{return se(...be)}catch(ae){let Ae=m(re,be);throw Ae.error=ae,I(Ae),ae}}}return se}function b(re){let se=W(re);if(!se)throw ui(ur.INTERNAL,"Couldn't find a matching entry in the dependency tree for the specified parent (this is probably an internal error)");return se}function R(re){if(re.name===null)return!0;for(let se of t.dependencyTreeRoots)if(se.name===re.name&&se.reference===re.reference)return!0;return!1}let H=new Set(["default","node","require"]);function L(re,se=H){let be=D(v.join(re,"internal.js"),{resolveIgnored:!0,includeDiscardFromLookup:!0});if(be===null)throw ui(ur.INTERNAL,`The locator that owns the "${re}" path can't be found inside the dependency tree (this is probably an internal error)`);let{packageLocation:ae}=b(be),Ae=v.join(ae,wt.manifest);if(!e.fakeFs.existsSync(Ae))return null;let De=JSON.parse(e.fakeFs.readFileSync(Ae,"utf8")),$=v.contains(ae,re);if($===null)throw ui(ur.INTERNAL,"unqualifiedPath doesn't contain the packageLocation (this is probably an internal error)");c.test($)||($=`./${$}`);let G=(0,ece.resolve)(De,v.normalize($),{conditions:se,unsafe:!0});return typeof G=="string"?v.join(ae,G):null}function K(re,se,{extensions:be}){let ae;try{se.push(re),ae=e.fakeFs.statSync(re)}catch(Ae){}if(ae&&!ae.isDirectory())return e.fakeFs.realpathSync(re);if(ae&&ae.isDirectory()){let Ae;try{Ae=JSON.parse(e.fakeFs.readFileSync(v.join(re,wt.manifest),"utf8"))}catch($){}let De;if(Ae&&Ae.main&&(De=v.resolve(re,Ae.main)),De&&De!==re){let $=K(De,se,{extensions:be});if($!==null)return $}}for(let Ae=0,De=be.length;Ae{let G=JSON.stringify($.name);if(ae.has(G))return;ae.add(G);let Ce=X($);for(let ee of Ce)if(b(ee).packagePeers.has(re))Ae(ee);else{let Oe=be.get(ee.name);typeof Oe=="undefined"&&be.set(ee.name,Oe=new Set),Oe.add(ee.reference)}};Ae(se);let De=[];for(let $ of[...be.keys()].sort())for(let G of[...be.get($)].sort())De.push({name:$,reference:G});return De}function D(re,{resolveIgnored:se=!1,includeDiscardFromLookup:be=!1}={}){if(q(re)&&!se)return null;let ae=v.relative(t.basePath,re);ae.match(a)||(ae=`./${ae}`),ae.endsWith("/")||(ae=`${ae}/`);do{let Ae=d.get(ae);if(typeof Ae=="undefined"||Ae.discardFromLookup&&!be){ae=ae.substring(0,ae.lastIndexOf("/",ae.length-2)+1);continue}return Ae.locator}while(ae!=="");return null}function he(re,se,{considerBuiltins:be=!0}={}){if(re==="pnpapi")return M.toPortablePath(e.pnpapiResolution);if(be&&s(re))return null;let ae=YA(re),Ae=se&&YA(se);if(se&&q(se)&&(!v.isAbsolute(re)||D(re)===null)){let G=ne(re,se);if(G===!1)throw ui(ur.BUILTIN_NODE_RESOLUTION_FAILED,`The builtin node resolution algorithm was unable to resolve the requested module (it didn't go through the pnp resolver because the issuer was explicitely ignored by the regexp) - -Require request: "${ae}" -Required by: ${Ae} -`,{request:ae,issuer:Ae});return M.toPortablePath(G)}let De,$=re.match(o);if($){if(!se)throw ui(ur.API_ERROR,"The resolveToUnqualified function must be called with a valid issuer when the path isn't a builtin nor absolute",{request:ae,issuer:Ae});let[,G,Ce]=$,ee=D(se);if(!ee){let yr=ne(re,se);if(yr===!1)throw ui(ur.BUILTIN_NODE_RESOLUTION_FAILED,`The builtin node resolution algorithm was unable to resolve the requested module (it didn't go through the pnp resolver because the issuer doesn't seem to be part of the Yarn-managed dependency tree). - -Require path: "${ae}" -Required by: ${Ae} -`,{request:ae,issuer:Ae});return M.toPortablePath(yr)}let Oe=b(ee).packageDependencies.get(G),vt=null;if(Oe==null&&ee.name!==null){let yr=t.fallbackExclusionList.get(ee.name);if(!yr||!yr.has(ee.reference)){for(let Qi=0,Go=g.length;QiR(Ki))?dt=ui(ur.MISSING_PEER_DEPENDENCY,`${ee.name} tried to access ${G} (a peer dependency) but it isn't provided by your application; this makes the require call ambiguous and unsound. - -Required package: ${G}${G!==ae?` (via "${ae}")`:""} -Required by: ${ee.name}@${ee.reference} (via ${Ae}) -${yr.map(Ki=>`Ancestor breaking the chain: ${Ki.name}@${Ki.reference} -`).join("")} -`,{request:ae,issuer:Ae,issuerLocator:Object.assign({},ee),dependencyName:G,brokenAncestors:yr}):dt=ui(ur.MISSING_PEER_DEPENDENCY,`${ee.name} tried to access ${G} (a peer dependency) but it isn't provided by its ancestors; this makes the require call ambiguous and unsound. - -Required package: ${G}${G!==ae?` (via "${ae}")`:""} -Required by: ${ee.name}@${ee.reference} (via ${Ae}) - -${yr.map(Ki=>`Ancestor breaking the chain: ${Ki.name}@${Ki.reference} -`).join("")} -`,{request:ae,issuer:Ae,issuerLocator:Object.assign({},ee),dependencyName:G,brokenAncestors:yr})}else Oe===void 0&&(!be&&s(re)?R(ee)?dt=ui(ur.UNDECLARED_DEPENDENCY,`Your application tried to access ${G}. While this module is usually interpreted as a Node builtin, your resolver is running inside a non-Node resolution context where such builtins are ignored. Since ${G} isn't otherwise declared in your dependencies, this makes the require call ambiguous and unsound. - -Required package: ${G}${G!==ae?` (via "${ae}")`:""} -Required by: ${Ae} -`,{request:ae,issuer:Ae,dependencyName:G}):dt=ui(ur.UNDECLARED_DEPENDENCY,`${ee.name} tried to access ${G}. While this module is usually interpreted as a Node builtin, your resolver is running inside a non-Node resolution context where such builtins are ignored. Since ${G} isn't otherwise declared in ${ee.name}'s dependencies, this makes the require call ambiguous and unsound. - -Required package: ${G}${G!==ae?` (via "${ae}")`:""} -Required by: ${Ae} -`,{request:ae,issuer:Ae,issuerLocator:Object.assign({},ee),dependencyName:G}):R(ee)?dt=ui(ur.UNDECLARED_DEPENDENCY,`Your application tried to access ${G}, but it isn't declared in your dependencies; this makes the require call ambiguous and unsound. - -Required package: ${G}${G!==ae?` (via "${ae}")`:""} -Required by: ${Ae} -`,{request:ae,issuer:Ae,dependencyName:G}):dt=ui(ur.UNDECLARED_DEPENDENCY,`${ee.name} tried to access ${G}, but it isn't declared in its dependencies; this makes the require call ambiguous and unsound. - -Required package: ${G}${G!==ae?` (via "${ae}")`:""} -Required by: ${ee.name}@${ee.reference} (via ${Ae}) -`,{request:ae,issuer:Ae,issuerLocator:Object.assign({},ee),dependencyName:G}));if(Oe==null){if(vt===null||dt===null)throw dt||new Error("Assertion failed: Expected an error to have been set");Oe=vt;let yr=dt.message.replace(/\n.*/g,"");dt.message=yr,!f.has(yr)&&i!==0&&(f.add(yr),process.emitWarning(dt))}let ri=Array.isArray(Oe)?{name:Oe[0],reference:Oe[1]}:{name:G,reference:Oe},ii=b(ri);if(!ii.packageLocation)throw ui(ur.MISSING_DEPENDENCY,`A dependency seems valid but didn't get installed for some reason. This might be caused by a partial install, such as dev vs prod. - -Required package: ${ri.name}@${ri.reference}${ri.name!==ae?` (via "${ae}")`:""} -Required by: ${ee.name}@${ee.reference} (via ${Ae}) -`,{request:ae,issuer:Ae,dependencyLocator:Object.assign({},ri)});let an=ii.packageLocation;Ce?De=v.join(an,Ce):De=an}else if(v.isAbsolute(re))De=v.normalize(re);else{if(!se)throw ui(ur.API_ERROR,"The resolveToUnqualified function must be called with a valid issuer when the path isn't a builtin nor absolute",{request:ae,issuer:Ae});let G=v.resolve(se);se.match(l)?De=v.normalize(v.join(G,re)):De=v.normalize(v.join(v.dirname(G),re))}return v.normalize(De)}function pe(re,se,be=H){if(a.test(re))return se;let ae=L(se,be);return ae?v.normalize(ae):se}function Ne(re,{extensions:se=Object.keys(df.Module._extensions)}={}){let be=[],ae=K(re,be,{extensions:se});if(ae)return v.normalize(ae);{let Ae=YA(re),De=D(re);if(De){let{packageLocation:$}=b(De);if(!e.fakeFs.existsSync($)){let G=$.includes("/unplugged/")?"Required unplugged package missing from disk. This may happen when switching branches without running installs (unplugged packages must be fully materialized on disk to work).":"Required package missing from disk. If you keep your packages inside your repository then restarting the Node process may be enough. Otherwise, try to run an install first.";throw ui(ur.QUALIFIED_PATH_RESOLUTION_FAILED,`${G} - -Missing package: ${De.name}@${De.reference} -Expected package location: ${YA($)} -`,{unqualifiedPath:Ae})}}throw ui(ur.QUALIFIED_PATH_RESOLUTION_FAILED,`Qualified path resolution failed - none of those files can be found on the disk. - -Source path: ${Ae} -${be.map($=>`Not found: ${YA($)} -`).join("")}`,{unqualifiedPath:Ae})}}function Pe(re,se,{considerBuiltins:be,extensions:ae,conditions:Ae}={}){let De=he(re,se,{considerBuiltins:be});if(re==="pnpapi")return De;if(De===null)return null;let $=()=>se!==null?q(se):!1,G=(!be||!s(re))&&!$()?pe(re,De,Ae):De;try{return Ne(G,{extensions:ae})}catch(Ce){throw Ce.pnpCode==="QUALIFIED_PATH_RESOLUTION_FAILED"&&Object.assign(Ce.data,{request:YA(re),issuer:se&&YA(se)}),Ce}}function qe(re){let se=v.normalize(re),be=Pr.resolveVirtual(se);return be!==se?be:null}return{VERSIONS:A,topLevel:V,getLocator:(re,se)=>Array.isArray(se)?{name:se[0],reference:se[1]}:{name:re,reference:se},getDependencyTreeRoots:()=>[...t.dependencyTreeRoots],getAllLocators(){let re=[];for(let[se,be]of p)for(let ae of be.keys())se!==null&&ae!==null&&re.push({name:se,reference:ae});return re},getPackageInformation:re=>{let se=W(re);if(se===null)return null;let be=M.fromPortablePath(se.packageLocation);return _(P({},se),{packageLocation:be})},findPackageLocator:re=>D(M.toPortablePath(re)),resolveToUnqualified:B("resolveToUnqualified",(re,se,be)=>{let ae=se!==null?M.toPortablePath(se):null,Ae=he(M.toPortablePath(re),ae,be);return Ae===null?null:M.fromPortablePath(Ae)}),resolveUnqualified:B("resolveUnqualified",(re,se)=>M.fromPortablePath(Ne(M.toPortablePath(re),se))),resolveRequest:B("resolveRequest",(re,se,be)=>{let ae=se!==null?M.toPortablePath(se):null,Ae=Pe(M.toPortablePath(re),ae,be);return Ae===null?null:M.fromPortablePath(Ae)}),resolveVirtual:B("resolveVirtual",re=>{let se=qe(M.toPortablePath(re));return se!==null?M.fromPortablePath(se):null})}}var ISt=(0,rce.promisify)(tce.readFile);var ice=(t,e,r)=>{let i=XC(t),n=_L(i,{basePath:e}),s=M.join(e,wt.pnpCjs);return $L(n,{fakeFs:r,pnpapiResolution:s})};var tT=ie(sce());var Ws={};it(Ws,{checkAndReportManifestCompatibility:()=>oce,extractBuildScripts:()=>Z0,getExtractHint:()=>rT,hasBindingGyp:()=>iT});function oce(t,e,{configuration:r,report:i}){return S.isPackageCompatible(t,{os:[process.platform],cpu:[process.arch]})?!0:(i==null||i.reportWarningOnce(z.INCOMPATIBLE_ARCHITECTURE,`${S.prettyLocator(r,t)} The ${process.platform}-${process.arch} architecture is incompatible with this module, ${e} skipped.`),!1)}function Z0(t,e,r,{configuration:i,report:n}){let s=[];for(let a of["preinstall","install","postinstall"])e.manifest.scripts.has(a)&&s.push([Gn.SCRIPT,a]);return!e.manifest.scripts.has("install")&&e.misc.hasBindingGyp&&s.push([Gn.SHELLCODE,"node-gyp rebuild"]),s.length===0?[]:t.linkType!==gt.HARD?(n==null||n.reportWarningOnce(z.SOFT_LINK_BUILD,`${S.prettyLocator(i,t)} lists build scripts, but is referenced through a soft link. Soft links don't support build scripts, so they'll be ignored.`),[]):r&&r.built===!1?(n==null||n.reportInfoOnce(z.BUILD_DISABLED,`${S.prettyLocator(i,t)} lists build scripts, but its build has been explicitly disabled through configuration.`),[]):!i.get("enableScripts")&&!r.built?(n==null||n.reportWarningOnce(z.DISABLED_BUILD_SCRIPTS,`${S.prettyLocator(i,t)} lists build scripts, but all build scripts have been disabled.`),[]):oce(t,"build",{configuration:i,report:n})?s:[]}var g6e=new Set([".exe",".h",".hh",".hpp",".c",".cc",".cpp",".java",".jar",".node"]);function rT(t){return t.packageFs.getExtractHint({relevantExtensions:g6e})}function iT(t){let e=v.join(t.prefixPath,"binding.gyp");return t.packageFs.existsSync(e)}var nT={};it(nT,{getUnpluggedPath:()=>ZC});function ZC(t,{configuration:e}){return v.resolve(e.get("pnpUnpluggedFolder"),S.slugifyLocator(t))}var f6e=new Set([S.makeIdent(null,"nan").identHash,S.makeIdent(null,"node-gyp").identHash,S.makeIdent(null,"node-pre-gyp").identHash,S.makeIdent(null,"node-addon-api").identHash,S.makeIdent(null,"fsevents").identHash]),jc=class{constructor(){this.mode="strict";this.pnpCache=new Map}supportsPackage(e,r){return!(r.project.configuration.get("nodeLinker")!=="pnp"||r.project.configuration.get("pnpMode")!==this.mode)}async findPackageLocation(e,r){let i=qA(r.project).cjs;if(!T.existsSync(i))throw new me(`The project in ${ue.pretty(r.project.configuration,`${r.project.cwd}/package.json`,ue.Type.PATH)} doesn't seem to have been installed - running an install there might help`);let n=de.getFactoryWithDefault(this.pnpCache,i,()=>de.dynamicRequire(i,{cachingStrategy:de.CachingStrategy.FsTime})),s={name:S.stringifyIdent(e),reference:e.reference},o=n.getPackageInformation(s);if(!o)throw new me(`Couldn't find ${S.prettyLocator(r.project.configuration,e)} in the currently installed PnP map - running an install might help`);return M.toPortablePath(o.packageLocation)}async findPackageLocator(e,r){let i=qA(r.project).cjs;if(!T.existsSync(i))return null;let s=de.getFactoryWithDefault(this.pnpCache,i,()=>de.dynamicRequire(i,{cachingStrategy:de.CachingStrategy.FsTime})).findPackageLocator(M.fromPortablePath(e));return s?S.makeLocator(S.parseIdent(s.name),s.reference):null}makeInstaller(e){return new Cf(e)}},Cf=class{constructor(e){this.opts=e;this.mode="strict";this.packageRegistry=new Map;this.virtualTemplates=new Map;this.isESMLoaderRequired=!1;this.customData={store:new Map};this.unpluggedPaths=new Set;this.opts=e}getCustomDataKey(){return JSON.stringify({name:"PnpInstaller",version:2})}attachCustomData(e){this.customData=e}async installPackage(e,r){let i=S.stringifyIdent(e),n=e.reference,s=!!this.opts.project.tryWorkspaceByLocator(e),o=S.isVirtualLocator(e),a=e.peerDependencies.size>0&&!o,l=!a&&!s,c=!a&&e.linkType!==gt.SOFT,u,g;if(l||c){let B=o?S.devirtualizeLocator(e):e;u=this.customData.store.get(B.locatorHash),typeof u=="undefined"&&(u=await h6e(r),e.linkType===gt.HARD&&this.customData.store.set(B.locatorHash,u)),u.manifest.type==="module"&&(this.isESMLoaderRequired=!0),g=this.opts.project.getDependencyMeta(B,e.version)}let f=l?Z0(e,u,g,{configuration:this.opts.project.configuration,report:this.opts.report}):[],h=c?await this.unplugPackageIfNeeded(e,u,r,g):r.packageFs;if(v.isAbsolute(r.prefixPath))throw new Error(`Assertion failed: Expected the prefix path (${r.prefixPath}) to be relative to the parent`);let p=v.resolve(h.getRealPath(),r.prefixPath),d=sT(this.opts.project.cwd,p),m=new Map,I=new Set;if(o){for(let B of e.peerDependencies.values())m.set(S.stringifyIdent(B),null),I.add(S.stringifyIdent(B));if(!s){let B=S.devirtualizeLocator(e);this.virtualTemplates.set(B.locatorHash,{location:sT(this.opts.project.cwd,Pr.resolveVirtual(p)),locator:B})}}return de.getMapWithDefault(this.packageRegistry,i).set(n,{packageLocation:d,packageDependencies:m,packagePeers:I,linkType:e.linkType,discardFromLookup:r.discardFromLookup||!1}),{packageLocation:p,buildDirective:f.length>0?f:null}}async attachInternalDependencies(e,r){let i=this.getPackageInformation(e);for(let[n,s]of r){let o=S.areIdentsEqual(n,s)?s.reference:[S.stringifyIdent(s),s.reference];i.packageDependencies.set(S.stringifyIdent(n),o)}}async attachExternalDependents(e,r){for(let i of r)this.getDiskInformation(i).packageDependencies.set(S.stringifyIdent(e),e.reference)}async finalizeInstall(){if(this.opts.project.configuration.get("pnpMode")!==this.mode)return;let e=qA(this.opts.project);if(T.existsSync(e.cjsLegacy)&&(this.opts.report.reportWarning(z.UNNAMED,`Removing the old ${ue.pretty(this.opts.project.configuration,wt.pnpJs,ue.Type.PATH)} file. You might need to manually update existing references to reference the new ${ue.pretty(this.opts.project.configuration,wt.pnpCjs,ue.Type.PATH)} file. If you use Editor SDKs, you'll have to rerun ${ue.pretty(this.opts.project.configuration,"yarn sdks",ue.Type.CODE)}.`),await T.removePromise(e.cjsLegacy)),this.isEsmEnabled()||await T.removePromise(e.esmLoader),this.opts.project.configuration.get("nodeLinker")!=="pnp"){await T.removePromise(e.cjs),await T.removePromise(this.opts.project.configuration.get("pnpDataPath")),await T.removePromise(e.esmLoader);return}for(let{locator:u,location:g}of this.virtualTemplates.values())de.getMapWithDefault(this.packageRegistry,S.stringifyIdent(u)).set(u.reference,{packageLocation:g,packageDependencies:new Map,packagePeers:new Set,linkType:gt.SOFT,discardFromLookup:!1});this.packageRegistry.set(null,new Map([[null,this.getPackageInformation(this.opts.project.topLevelWorkspace.anchoredLocator)]]));let r=this.opts.project.configuration.get("pnpFallbackMode"),i=this.opts.project.workspaces.map(({anchoredLocator:u})=>({name:S.stringifyIdent(u),reference:u.reference})),n=r!=="none",s=[],o=new Map,a=de.buildIgnorePattern([".yarn/sdks/**",...this.opts.project.configuration.get("pnpIgnorePatterns")]),l=this.packageRegistry,c=this.opts.project.configuration.get("pnpShebang");if(r==="dependencies-only")for(let u of this.opts.project.storedPackages.values())this.opts.project.tryWorkspaceByLocator(u)&&s.push({name:S.stringifyIdent(u),reference:u.reference});return await this.finalizeInstallWithPnp({dependencyTreeRoots:i,enableTopLevelFallback:n,fallbackExclusionList:s,fallbackPool:o,ignorePattern:a,packageRegistry:l,shebang:c}),{customData:this.customData}}async transformPnpSettings(e){}isEsmEnabled(){if(this.opts.project.configuration.sources.has("pnpEnableEsmLoader"))return this.opts.project.configuration.get("pnpEnableEsmLoader");if(this.isESMLoaderRequired)return!0;for(let e of this.opts.project.workspaces)if(e.manifest.type==="module")return!0;return!1}async finalizeInstallWithPnp(e){let r=qA(this.opts.project),i=this.opts.project.configuration.get("pnpDataPath"),n=await this.locateNodeModules(e.ignorePattern);if(n.length>0){this.opts.report.reportWarning(z.DANGEROUS_NODE_MODULES,"One or more node_modules have been detected and will be removed. This operation may take some time.");for(let o of n)await T.removePromise(o)}if(await this.transformPnpSettings(e),this.opts.project.configuration.get("pnpEnableInlining")){let o=_le(e);await T.changeFilePromise(r.cjs,o,{automaticNewlines:!0,mode:493}),await T.removePromise(i)}else{let o=v.relative(v.dirname(r.cjs),i),{dataFile:a,loaderFile:l}=Xle(_(P({},e),{dataLocation:o}));await T.changeFilePromise(r.cjs,l,{automaticNewlines:!0,mode:493}),await T.changeFilePromise(i,a,{automaticNewlines:!0,mode:420})}this.isEsmEnabled()&&(this.opts.report.reportWarning(z.UNNAMED,"ESM support for PnP uses the experimental loader API and is therefore experimental"),await T.changeFilePromise(r.esmLoader,(0,tT.default)(),{automaticNewlines:!0,mode:420}));let s=this.opts.project.configuration.get("pnpUnpluggedFolder");if(this.unpluggedPaths.size===0)await T.removePromise(s);else for(let o of await T.readdirPromise(s)){let a=v.resolve(s,o);this.unpluggedPaths.has(a)||await T.removePromise(a)}}async locateNodeModules(e){let r=[],i=e?new RegExp(e):null;for(let n of this.opts.project.workspaces){let s=v.join(n.cwd,"node_modules");if(i&&i.test(v.relative(this.opts.project.cwd,n.cwd))||!T.existsSync(s))continue;let o=await T.readdirPromise(s,{withFileTypes:!0}),a=o.filter(l=>!l.isDirectory()||l.name===".bin"||!l.name.startsWith("."));if(a.length===o.length)r.push(s);else for(let l of a)r.push(v.join(s,l.name))}return r}async unplugPackageIfNeeded(e,r,i,n){return this.shouldBeUnplugged(e,r,n)?this.unplugPackage(e,i):i.packageFs}shouldBeUnplugged(e,r,i){return typeof i.unplugged!="undefined"?i.unplugged:f6e.has(e.identHash)||e.conditions!=null?!0:r.manifest.preferUnplugged!==null?r.manifest.preferUnplugged:!!(Z0(e,r,i,{configuration:this.opts.project.configuration}).length>0||r.misc.extractHint)}async unplugPackage(e,r){let i=ZC(e,{configuration:this.opts.project.configuration});if(this.opts.project.disabledLocators.has(e.locatorHash))return new Xo(i,{baseFs:r.packageFs,pathUtils:v});this.unpluggedPaths.add(i);let n=v.join(i,r.prefixPath,".ready");return await T.existsPromise(n)?new Ft(i):(this.opts.project.storedBuildState.delete(e.locatorHash),await T.mkdirPromise(i,{recursive:!0}),await T.copyPromise(i,Se.dot,{baseFs:r.packageFs,overwrite:!1}),await T.writeFilePromise(n,""),new Ft(i))}getPackageInformation(e){let r=S.stringifyIdent(e),i=e.reference,n=this.packageRegistry.get(r);if(!n)throw new Error(`Assertion failed: The package information store should have been available (for ${S.prettyIdent(this.opts.project.configuration,e)})`);let s=n.get(i);if(!s)throw new Error(`Assertion failed: The package information should have been available (for ${S.prettyLocator(this.opts.project.configuration,e)})`);return s}getDiskInformation(e){let r=de.getMapWithDefault(this.packageRegistry,"@@disk"),i=sT(this.opts.project.cwd,e);return de.getFactoryWithDefault(r,i,()=>({packageLocation:i,packageDependencies:new Map,packagePeers:new Set,linkType:gt.SOFT,discardFromLookup:!1}))}};function sT(t,e){let r=v.relative(t,e);return r.match(/^\.{0,2}\//)||(r=`./${r}`),r.replace(/\/?$/,"/")}async function h6e(t){var i;let e=(i=await Ze.tryFind(t.prefixPath,{baseFs:t.packageFs}))!=null?i:new Ze,r=new Set(["preinstall","install","postinstall"]);for(let n of e.scripts.keys())r.has(n)||e.scripts.delete(n);return{manifest:{scripts:e.scripts,preferUnplugged:e.preferUnplugged,type:e.type},misc:{extractHint:rT(t),hasBindingGyp:iT(t)}}}var ace=ie(Nn());var $C=class extends Be{constructor(){super(...arguments);this.all=Y.Boolean("-A,--all",!1,{description:"Unplug direct dependencies from the entire project"});this.recursive=Y.Boolean("-R,--recursive",!1,{description:"Unplug both direct and transitive dependencies"});this.json=Y.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.patterns=Y.Rest()}async execute(){let e=await fe.find(this.context.cwd,this.context.plugins),{project:r,workspace:i}=await Ke.find(e,this.context.cwd),n=await Qt.find(e);if(!i)throw new rt(r.cwd,this.context.cwd);if(e.get("nodeLinker")!=="pnp")throw new me("This command can only be used if the `nodeLinker` option is set to `pnp`");await r.restoreInstallState();let s=new Set(this.patterns),o=this.patterns.map(f=>{let h=S.parseDescriptor(f),p=h.range!=="unknown"?h:S.makeDescriptor(h,"*");if(!qt.validRange(p.range))throw new me(`The range of the descriptor patterns must be a valid semver range (${S.prettyDescriptor(e,p)})`);return d=>{let m=S.stringifyIdent(d);return!ace.default.isMatch(m,S.stringifyIdent(p))||d.version&&!qt.satisfiesWithPrereleases(d.version,p.range)?!1:(s.delete(f),!0)}}),a=()=>{let f=[];for(let h of r.storedPackages.values())!r.tryWorkspaceByLocator(h)&&!S.isVirtualLocator(h)&&o.some(p=>p(h))&&f.push(h);return f},l=f=>{let h=new Set,p=[],d=(m,I)=>{if(!h.has(m.locatorHash)&&(h.add(m.locatorHash),!r.tryWorkspaceByLocator(m)&&o.some(B=>B(m))&&p.push(m),!(I>0&&!this.recursive)))for(let B of m.dependencies.values()){let b=r.storedResolutions.get(B.descriptorHash);if(!b)throw new Error("Assertion failed: The resolution should have been registered");let R=r.storedPackages.get(b);if(!R)throw new Error("Assertion failed: The package should have been registered");d(R,I+1)}};for(let m of f){let I=r.storedPackages.get(m.anchoredLocator.locatorHash);if(!I)throw new Error("Assertion failed: The package should have been registered");d(I,0)}return p},c,u;if(this.all&&this.recursive?(c=a(),u="the project"):this.all?(c=l(r.workspaces),u="any workspace"):(c=l([i]),u="this workspace"),s.size>1)throw new me(`Patterns ${ue.prettyList(e,s,ue.Type.CODE)} don't match any packages referenced by ${u}`);if(s.size>0)throw new me(`Pattern ${ue.prettyList(e,s,ue.Type.CODE)} doesn't match any packages referenced by ${u}`);return c=de.sortMap(c,f=>S.stringifyLocator(f)),(await Fe.start({configuration:e,stdout:this.context.stdout,json:this.json},async f=>{var h;for(let p of c){let d=(h=p.version)!=null?h:"unknown",m=r.topLevelWorkspace.manifest.ensureDependencyMeta(S.makeDescriptor(p,d));m.unplugged=!0,f.reportInfo(z.UNNAMED,`Will unpack ${S.prettyLocator(e,p)} to ${ue.pretty(e,ZC(p,{configuration:e}),ue.Type.PATH)}`),f.reportJson({locator:S.stringifyLocator(p),version:d})}await r.topLevelWorkspace.persistManifest(),f.reportSeparator(),await r.install({cache:n,report:f})})).exitCode()}};$C.paths=[["unplug"]],$C.usage=ye.Usage({description:"force the unpacking of a list of packages",details:"\n This command will add the selectors matching the specified patterns to the list of packages that must be unplugged when installed.\n\n A package being unplugged means that instead of being referenced directly through its archive, it will be unpacked at install time in the directory configured via `pnpUnpluggedFolder`. Note that unpacking packages this way is generally not recommended because it'll make it harder to store your packages within the repository. However, it's a good approach to quickly and safely debug some packages, and can even sometimes be required depending on the context (for example when the package contains shellscripts).\n\n Running the command will set a persistent flag inside your top-level `package.json`, in the `dependenciesMeta` field. As such, to undo its effects, you'll need to revert the changes made to the manifest and run `yarn install` to apply the modification.\n\n By default, only direct dependencies from the current workspace are affected. If `-A,--all` is set, direct dependencies from the entire project are affected. Using the `-R,--recursive` flag will affect transitive dependencies as well as direct ones.\n\n This command accepts glob patterns inside the scope and name components (not the range). Make sure to escape the patterns to prevent your own shell from trying to expand them.\n ",examples:[["Unplug the lodash dependency from the active workspace","yarn unplug lodash"],["Unplug all instances of lodash referenced by any workspace","yarn unplug lodash -A"],["Unplug all instances of lodash referenced by the active workspace and its dependencies","yarn unplug lodash -R"],["Unplug all instances of lodash, anywhere","yarn unplug lodash -AR"],["Unplug one specific version of lodash","yarn unplug lodash@1.2.3"],["Unplug all packages with the `@babel` scope","yarn unplug '@babel/*'"],["Unplug all packages (only for testing, not recommended)","yarn unplug -R '*'"]]});var Ace=$C;var qA=t=>({cjs:v.join(t.cwd,wt.pnpCjs),cjsLegacy:v.join(t.cwd,wt.pnpJs),esmLoader:v.join(t.cwd,".pnp.loader.mjs")}),uce=t=>/\s/.test(t)?JSON.stringify(t):t;async function p6e(t,e,r){let i=qA(t),n=`--require ${uce(M.fromPortablePath(i.cjs))}`;if(T.existsSync(i.esmLoader)&&(n=`${n} --experimental-loader ${(0,cce.pathToFileURL)(M.fromPortablePath(i.esmLoader)).href}`),i.cjs.includes(" ")&&lce.default.lt(process.versions.node,"12.0.0"))throw new Error(`Expected the build location to not include spaces when using Node < 12.0.0 (${process.versions.node})`);if(T.existsSync(i.cjs)){let s=e.NODE_OPTIONS||"",o=/\s*--require\s+\S*\.pnp\.c?js\s*/g,a=/\s*--experimental-loader\s+\S*\.pnp\.loader\.mjs\s*/;s=s.replace(o," ").replace(a," ").trim(),s=s?`${n} ${s}`:n,e.NODE_OPTIONS=s}}async function d6e(t,e){let r=qA(t);e(r.cjs),e(r.esmLoader),e(t.configuration.get("pnpDataPath")),e(t.configuration.get("pnpUnpluggedFolder"))}var C6e={hooks:{populateYarnPaths:d6e,setupScriptEnvironment:p6e},configuration:{nodeLinker:{description:'The linker used for installing Node packages, one of: "pnp", "node-modules"',type:ge.STRING,default:"pnp"},pnpMode:{description:"If 'strict', generates standard PnP maps. If 'loose', merges them with the n_m resolution.",type:ge.STRING,default:"strict"},pnpShebang:{description:"String to prepend to the generated PnP script",type:ge.STRING,default:"#!/usr/bin/env node"},pnpIgnorePatterns:{description:"Array of glob patterns; files matching them will use the classic resolution",type:ge.STRING,default:[],isArray:!0},pnpEnableEsmLoader:{description:"If true, Yarn will generate an ESM loader (`.pnp.loader.mjs`). If this is not explicitly set Yarn tries to automatically detect whether ESM support is required.",type:ge.BOOLEAN,default:!1},pnpEnableInlining:{description:"If true, the PnP data will be inlined along with the generated loader",type:ge.BOOLEAN,default:!0},pnpFallbackMode:{description:"If true, the generated PnP loader will follow the top-level fallback rule",type:ge.STRING,default:"dependencies-only"},pnpUnpluggedFolder:{description:"Folder where the unplugged packages must be stored",type:ge.ABSOLUTE_PATH,default:"./.yarn/unplugged"},pnpDataPath:{description:"Path of the file where the PnP data (used by the loader) must be written",type:ge.ABSOLUTE_PATH,default:"./.pnp.data.json"}},linkers:[jc],commands:[Ace]},m6e=C6e;var Cce=ie(dce());var uT=ie(require("crypto")),mce=ie(require("fs")),Ece=1,gi="node_modules",gT=".bin",Ice=".yarn-state.yml",Bi;(function(i){i.CLASSIC="classic",i.HARDLINKS_LOCAL="hardlinks-local",i.HARDLINKS_GLOBAL="hardlinks-global"})(Bi||(Bi={}));var fT=class{constructor(){this.installStateCache=new Map}supportsPackage(e,r){return r.project.configuration.get("nodeLinker")==="node-modules"}async findPackageLocation(e,r){let i=r.project.tryWorkspaceByLocator(e);if(i)return i.cwd;let n=await de.getFactoryWithDefault(this.installStateCache,r.project.cwd,async()=>await hT(r.project,{unrollAliases:!0}));if(n===null)throw new me("Couldn't find the node_modules state file - running an install might help (findPackageLocation)");let s=n.locatorMap.get(S.stringifyLocator(e));if(!s){let a=new me(`Couldn't find ${S.prettyLocator(r.project.configuration,e)} in the currently installed node_modules map - running an install might help`);throw a.code="LOCATOR_NOT_INSTALLED",a}let o=r.project.configuration.startingCwd;return s.locations.find(a=>v.contains(o,a))||s.locations[0]}async findPackageLocator(e,r){let i=await de.getFactoryWithDefault(this.installStateCache,r.project.cwd,async()=>await hT(r.project,{unrollAliases:!0}));if(i===null)return null;let{locationRoot:n,segments:s}=$0(v.resolve(e),{skipPrefix:r.project.cwd}),o=i.locationTree.get(n);if(!o)return null;let a=o.locator;for(let l of s){if(o=o.children.get(l),!o)break;a=o.locator||a}return S.parseLocator(a)}makeInstaller(e){return new yce(e)}},yce=class{constructor(e){this.opts=e;this.localStore=new Map;this.realLocatorChecksums=new Map;this.customData={store:new Map}}getCustomDataKey(){return JSON.stringify({name:"NodeModulesInstaller",version:1})}attachCustomData(e){this.customData=e}async installPackage(e,r){var u;let i=v.resolve(r.packageFs.getRealPath(),r.prefixPath),n=this.customData.store.get(e.locatorHash);if(typeof n=="undefined"&&(n=await L6e(e,r),e.linkType===gt.HARD&&this.customData.store.set(e.locatorHash,n)),!Ws.checkAndReportManifestCompatibility(e,"link",{configuration:this.opts.project.configuration,report:this.opts.report}))return{packageLocation:null,buildDirective:null};let s=new Map,o=new Set;s.has(S.stringifyIdent(e))||s.set(S.stringifyIdent(e),e.reference);let a=e;if(S.isVirtualLocator(e)){a=S.devirtualizeLocator(e);for(let g of e.peerDependencies.values())s.set(S.stringifyIdent(g),null),o.add(S.stringifyIdent(g))}let l={packageLocation:`${M.fromPortablePath(i)}/`,packageDependencies:s,packagePeers:o,linkType:e.linkType,discardFromLookup:(u=r.discardFromLookup)!=null?u:!1};this.localStore.set(e.locatorHash,{pkg:e,customPackageData:n,dependencyMeta:this.opts.project.getDependencyMeta(e,e.version),pnpNode:l});let c=r.checksum?r.checksum.substring(r.checksum.indexOf("/")+1):null;return this.realLocatorChecksums.set(a.locatorHash,c),{packageLocation:i,buildDirective:null}}async attachInternalDependencies(e,r){let i=this.localStore.get(e.locatorHash);if(typeof i=="undefined")throw new Error("Assertion failed: Expected information object to have been registered");for(let[n,s]of r){let o=S.areIdentsEqual(n,s)?s.reference:[S.stringifyIdent(s),s.reference];i.pnpNode.packageDependencies.set(S.stringifyIdent(n),o)}}async attachExternalDependents(e,r){throw new Error("External dependencies haven't been implemented for the node-modules linker")}async finalizeInstall(){if(this.opts.project.configuration.get("nodeLinker")!=="node-modules")return;let e=new Pr({baseFs:new Jn({libzip:await $i(),maxOpenFiles:80,readOnlyArchives:!0})}),r=await hT(this.opts.project),i=this.opts.project.configuration.get("nmMode");(r===null||i!==r.nmMode)&&(this.opts.project.storedBuildState.clear(),r={locatorMap:new Map,binSymlinks:new Map,locationTree:new Map,nmMode:i});let n=new Map(this.opts.project.workspaces.map(f=>{var p,d;let h=this.opts.project.configuration.get("nmHoistingLimits");try{h=de.validateEnum(Sn,(d=(p=f.manifest.installConfig)==null?void 0:p.hoistingLimits)!=null?d:h)}catch(m){let I=S.prettyWorkspace(this.opts.project.configuration,f);this.opts.report.reportWarning(z.INVALID_MANIFEST,`${I}: Invalid 'installConfig.hoistingLimits' value. Expected one of ${Object.values(Sn).join(", ")}, using default: "${h}"`)}return[f.relativeCwd,h]})),s=new Map(this.opts.project.workspaces.map(f=>{var p,d;let h=this.opts.project.configuration.get("nmSelfReferences");return h=(d=(p=f.manifest.installConfig)==null?void 0:p.selfReferences)!=null?d:h,[f.relativeCwd,h]})),o={VERSIONS:{std:1},topLevel:{name:null,reference:null},getLocator:(f,h)=>Array.isArray(h)?{name:h[0],reference:h[1]}:{name:f,reference:h},getDependencyTreeRoots:()=>this.opts.project.workspaces.map(f=>{let h=f.anchoredLocator;return{name:S.stringifyIdent(f.locator),reference:h.reference}}),getPackageInformation:f=>{let h=f.reference===null?this.opts.project.topLevelWorkspace.anchoredLocator:S.makeLocator(S.parseIdent(f.name),f.reference),p=this.localStore.get(h.locatorHash);if(typeof p=="undefined")throw new Error("Assertion failed: Expected the package reference to have been registered");return p.pnpNode},findPackageLocator:f=>{let h=this.opts.project.tryWorkspaceByCwd(M.toPortablePath(f));if(h!==null){let p=h.anchoredLocator;return{name:S.stringifyIdent(p),reference:p.reference}}throw new Error("Assertion failed: Unimplemented")},resolveToUnqualified:()=>{throw new Error("Assertion failed: Unimplemented")},resolveUnqualified:()=>{throw new Error("Assertion failed: Unimplemented")},resolveRequest:()=>{throw new Error("Assertion failed: Unimplemented")},resolveVirtual:f=>M.fromPortablePath(Pr.resolveVirtual(M.toPortablePath(f)))},{tree:a,errors:l,preserveSymlinksRequired:c}=VC(o,{pnpifyFs:!1,validateExternalSoftLinks:!0,hoistingLimitsByCwd:n,project:this.opts.project,selfReferencesByCwd:s});if(!a){for(let{messageName:f,text:h}of l)this.opts.report.reportError(f,h);return}let u=WL(a);await T6e(r,u,{baseFs:e,project:this.opts.project,report:this.opts.report,realLocatorChecksums:this.realLocatorChecksums,loadManifest:async f=>{let h=S.parseLocator(f),p=this.localStore.get(h.locatorHash);if(typeof p=="undefined")throw new Error("Assertion failed: Expected the slot to exist");return p.customPackageData.manifest}});let g=[];for(let[f,h]of u.entries()){if(wce(f))continue;let p=S.parseLocator(f),d=this.localStore.get(p.locatorHash);if(typeof d=="undefined")throw new Error("Assertion failed: Expected the slot to exist");if(this.opts.project.tryWorkspaceByLocator(d.pkg))continue;let m=Ws.extractBuildScripts(d.pkg,d.customPackageData,d.dependencyMeta,{configuration:this.opts.project.configuration,report:this.opts.report});m.length!==0&&g.push({buildLocations:h.locations,locatorHash:p.locatorHash,buildDirective:m})}return c&&this.opts.report.reportWarning(z.NM_PRESERVE_SYMLINKS_REQUIRED,`The application uses portals and that's why ${ue.pretty(this.opts.project.configuration,"--preserve-symlinks",ue.Type.CODE)} Node option is required for launching it`),{customData:this.customData,records:g}}};async function L6e(t,e){var n;let r=(n=await Ze.tryFind(e.prefixPath,{baseFs:e.packageFs}))!=null?n:new Ze,i=new Set(["preinstall","install","postinstall"]);for(let s of r.scripts.keys())i.has(s)||r.scripts.delete(s);return{manifest:{bin:r.bin,scripts:r.scripts},misc:{extractHint:Ws.getExtractHint(e),hasBindingGyp:Ws.hasBindingGyp(e)}}}async function M6e(t,e,r,i){let n="";n+=`# Warning: This file is automatically generated. Removing it is fine, but will -`,n+=`# cause your node_modules installation to become invalidated. -`,n+=` -`,n+=`__metadata: -`,n+=` version: ${Ece} -`,n+=` nmMode: ${i.value} -`;let s=Array.from(e.keys()).sort(),o=S.stringifyLocator(t.topLevelWorkspace.anchoredLocator);for(let c of s){let u=e.get(c);n+=` -`,n+=`${JSON.stringify(c)}: -`,n+=` locations: -`;for(let g of u.locations){let f=v.contains(t.cwd,g);if(f===null)throw new Error(`Assertion failed: Expected the path to be within the project (${g})`);n+=` - ${JSON.stringify(f)} -`}if(u.aliases.length>0){n+=` aliases: -`;for(let g of u.aliases)n+=` - ${JSON.stringify(g)} -`}if(c===o&&r.size>0){n+=` bin: -`;for(let[g,f]of r){let h=v.contains(t.cwd,g);if(h===null)throw new Error(`Assertion failed: Expected the path to be within the project (${g})`);n+=` ${JSON.stringify(h)}: -`;for(let[p,d]of f){let m=v.relative(v.join(g,gi),d);n+=` ${JSON.stringify(p)}: ${JSON.stringify(m)} -`}}}}let a=t.cwd,l=v.join(a,gi,Ice);await T.changeFilePromise(l,n,{automaticNewlines:!0})}async function hT(t,{unrollAliases:e=!1}={}){let r=t.cwd,i=v.join(r,gi,Ice);if(!T.existsSync(i))return null;let n=Ii(await T.readFilePromise(i,"utf8"));if(n.__metadata.version>Ece)return null;let s=n.__metadata.nmMode||Bi.CLASSIC,o=new Map,a=new Map;delete n.__metadata;for(let[l,c]of Object.entries(n)){let u=c.locations.map(f=>v.join(r,f)),g=c.bin;if(g)for(let[f,h]of Object.entries(g)){let p=v.join(r,M.toPortablePath(f)),d=de.getMapWithDefault(a,p);for(let[m,I]of Object.entries(h))d.set(kr(m),M.toPortablePath([p,gi,I].join(v.delimiter)))}if(o.set(l,{target:Se.dot,linkType:gt.HARD,locations:u,aliases:c.aliases||[]}),e&&c.aliases)for(let f of c.aliases){let{scope:h,name:p}=S.parseLocator(l),d=S.makeLocator(S.makeIdent(h,p),f),m=S.stringifyLocator(d);o.set(m,{target:Se.dot,linkType:gt.HARD,locations:u,aliases:[]})}}return{locatorMap:o,binSymlinks:a,locationTree:Bce(o,{skipPrefix:t.cwd}),nmMode:s}}var Ef=async(t,e)=>{if(t.split(v.sep).indexOf(gi)<0)throw new Error(`Assertion failed: trying to remove dir that doesn't contain node_modules: ${t}`);try{if(!e.innerLoop&&(await T.lstatPromise(t)).isSymbolicLink()){await T.unlinkPromise(t);return}let r=await T.readdirPromise(t,{withFileTypes:!0});for(let i of r){let n=v.join(t,kr(i.name));i.isDirectory()?(i.name!==gi||e&&e.innerLoop)&&await Ef(n,{innerLoop:!0,contentsOnly:!1}):await T.unlinkPromise(n)}e.contentsOnly||await T.rmdirPromise(t)}catch(r){if(r.code!=="ENOENT"&&r.code!=="ENOTEMPTY")throw r}},Qce=4,$0=(t,{skipPrefix:e})=>{let r=v.contains(e,t);if(r===null)throw new Error(`Assertion failed: Writing attempt prevented to ${t} which is outside project root: ${e}`);let i=r.split(v.sep).filter(l=>l!==""),n=i.indexOf(gi),s=i.slice(0,n).join(v.sep),o=v.join(e,s),a=i.slice(n);return{locationRoot:o,segments:a}},Bce=(t,{skipPrefix:e})=>{let r=new Map;if(t===null)return r;let i=()=>({children:new Map,linkType:gt.HARD});for(let[n,s]of t.entries()){if(s.linkType===gt.SOFT&&v.contains(e,s.target)!==null){let a=de.getFactoryWithDefault(r,s.target,i);a.locator=n,a.linkType=s.linkType}for(let o of s.locations){let{locationRoot:a,segments:l}=$0(o,{skipPrefix:e}),c=de.getFactoryWithDefault(r,a,i);for(let u=0;u{let r;try{process.platform==="win32"&&(r=await T.lstatPromise(t))}catch(i){}process.platform=="win32"&&(!r||r.isDirectory())?await T.symlinkPromise(t,e,"junction"):await T.symlinkPromise(v.relative(v.dirname(e),t),e)};async function bce(t,e,r){let i=v.join(t,kr(`${uT.default.randomBytes(16).toString("hex")}.tmp`));try{await T.writeFilePromise(i,r);try{await T.linkPromise(i,e)}catch(n){}}finally{await T.unlinkPromise(i)}}async function O6e({srcPath:t,dstPath:e,srcMode:r,globalHardlinksStore:i,baseFs:n,nmMode:s,digest:o}){if(s.value===Bi.HARDLINKS_GLOBAL&&i&&o){let l=v.join(i,o.substring(0,2),`${o.substring(2)}.dat`),c;try{if(await mn.checksumFile(l,{baseFs:T,algorithm:"sha1"})!==o){let g=v.join(i,kr(`${uT.default.randomBytes(16).toString("hex")}.tmp`));await T.renamePromise(l,g);let f=await n.readFilePromise(t);await T.writeFilePromise(g,f);try{await T.linkPromise(g,l),await T.unlinkPromise(g)}catch(h){}}await T.linkPromise(l,e),c=!0}catch(u){c=!1}if(!c){let u=await n.readFilePromise(t);await bce(i,l,u);try{await T.linkPromise(l,e)}catch(g){g&&g.code&&g.code=="EXDEV"&&(s.value=Bi.HARDLINKS_LOCAL,await n.copyFilePromise(t,e))}}}else await n.copyFilePromise(t,e);let a=r&511;a!==420&&await T.chmodPromise(e,a)}var JA;(function(i){i.FILE="file",i.DIRECTORY="directory",i.SYMLINK="symlink"})(JA||(JA={}));var K6e=async(t,e,{baseFs:r,globalHardlinksStore:i,nmMode:n,packageChecksum:s})=>{await T.mkdirPromise(t,{recursive:!0});let o=async(l=Se.dot)=>{let c=v.join(e,l),u=await r.readdirPromise(c,{withFileTypes:!0}),g=new Map;for(let f of u){let h=v.join(l,f.name),p,d=v.join(c,f.name);if(f.isFile()){if(p={kind:JA.FILE,mode:(await r.lstatPromise(d)).mode},n.value===Bi.HARDLINKS_GLOBAL){let m=await mn.checksumFile(d,{baseFs:r,algorithm:"sha1"});p.digest=m}}else if(f.isDirectory())p={kind:JA.DIRECTORY};else if(f.isSymbolicLink())p={kind:JA.SYMLINK,symlinkTo:await r.readlinkPromise(d)};else throw new Error(`Unsupported file type (file: ${d}, mode: 0o${await r.statSync(d).mode.toString(8).padStart(6,"0")})`);if(g.set(h,p),f.isDirectory()&&h!==gi){let m=await o(h);for(let[I,B]of m)g.set(I,B)}}return g},a;if(n.value===Bi.HARDLINKS_GLOBAL&&i&&s){let l=v.join(i,s.substring(0,2),`${s.substring(2)}.json`);try{a=new Map(Object.entries(JSON.parse(await T.readFilePromise(l,"utf8"))))}catch(c){a=await o(),await bce(i,l,Buffer.from(JSON.stringify(Object.fromEntries(a))))}}else a=await o();for(let[l,c]of a){let u=v.join(e,l),g=v.join(t,l);c.kind===JA.DIRECTORY?await T.mkdirPromise(g,{recursive:!0}):c.kind===JA.FILE?await O6e({srcPath:u,dstPath:g,srcMode:c.mode,digest:c.digest,nmMode:n,baseFs:r,globalHardlinksStore:i}):c.kind===JA.SYMLINK&&await pT(v.resolve(v.dirname(g),c.symlinkTo),g)}};function U6e(t,e){let r=new Map([...t]),i=new Map([...e]);for(let[n,s]of t){let o=v.join(n,gi);if(!T.existsSync(o)){s.children.delete(gi);for(let a of i.keys())v.contains(o,a)!==null&&i.delete(a)}}return{locationTree:r,binSymlinks:i}}function wce(t){let e=S.parseDescriptor(t);return S.isVirtualDescriptor(e)&&(e=S.devirtualizeDescriptor(e)),e.range.startsWith("link:")}async function H6e(t,e,r,{loadManifest:i}){let n=new Map;for(let[a,{locations:l}]of t){let c=wce(a)?null:await i(a,l[0]),u=new Map;if(c)for(let[g,f]of c.bin){let h=v.join(l[0],f);f!==""&&T.existsSync(h)&&u.set(g,f)}n.set(a,u)}let s=new Map,o=(a,l,c)=>{let u=new Map,g=v.contains(r,a);if(c.locator&&g!==null){let f=n.get(c.locator);for(let[h,p]of f){let d=v.join(a,M.toPortablePath(p));u.set(kr(h),d)}for(let[h,p]of c.children){let d=v.join(a,h),m=o(d,d,p);m.size>0&&s.set(a,new Map([...s.get(a)||new Map,...m]))}}else for(let[f,h]of c.children){let p=o(v.join(a,f),l,h);for(let[d,m]of p)u.set(d,m)}return u};for(let[a,l]of e){let c=o(a,a,l);c.size>0&&s.set(a,new Map([...s.get(a)||new Map,...c]))}return s}var vce=(t,e)=>{if(!t||!e)return t===e;let r=S.parseLocator(t);S.isVirtualLocator(r)&&(r=S.devirtualizeLocator(r));let i=S.parseLocator(e);return S.isVirtualLocator(i)&&(i=S.devirtualizeLocator(i)),S.areLocatorsEqual(r,i)};function dT(t){return v.join(t.get("globalFolder"),"store")}async function T6e(t,e,{baseFs:r,project:i,report:n,loadManifest:s,realLocatorChecksums:o}){let a=v.join(i.cwd,gi),{locationTree:l,binSymlinks:c}=U6e(t.locationTree,t.binSymlinks),u=Bce(e,{skipPrefix:i.cwd}),g=[],f=async({srcDir:L,dstDir:K,linkType:J,globalHardlinksStore:ne,nmMode:q,packageChecksum:A})=>{let V=(async()=>{try{J===gt.SOFT?(await T.mkdirPromise(v.dirname(K),{recursive:!0}),await pT(v.resolve(L),K)):await K6e(K,L,{baseFs:r,globalHardlinksStore:ne,nmMode:q,packageChecksum:A})}catch(W){throw W.message=`While persisting ${L} -> ${K} ${W.message}`,W}finally{B.tick()}})().then(()=>g.splice(g.indexOf(V),1));g.push(V),g.length>Qce&&await Promise.race(g)},h=async(L,K,J)=>{let ne=(async()=>{let q=async(A,V,W)=>{try{W.innerLoop||await T.mkdirPromise(V,{recursive:!0});let X=await T.readdirPromise(A,{withFileTypes:!0});for(let F of X){if(!W.innerLoop&&F.name===gT)continue;let D=v.join(A,F.name),he=v.join(V,F.name);F.isDirectory()?(F.name!==gi||W&&W.innerLoop)&&(await T.mkdirPromise(he,{recursive:!0}),await q(D,he,_(P({},W),{innerLoop:!0}))):H.value===Bi.HARDLINKS_LOCAL||H.value===Bi.HARDLINKS_GLOBAL?await T.linkPromise(D,he):await T.copyFilePromise(D,he,mce.default.constants.COPYFILE_FICLONE)}}catch(X){throw W.innerLoop||(X.message=`While cloning ${A} -> ${V} ${X.message}`),X}finally{W.innerLoop||B.tick()}};await q(L,K,J)})().then(()=>g.splice(g.indexOf(ne),1));g.push(ne),g.length>Qce&&await Promise.race(g)},p=async(L,K,J)=>{if(!J)K.children.has(gi)&&await Ef(v.join(L,gi),{contentsOnly:!1}),await Ef(L,{contentsOnly:L===a});else for(let[ne,q]of K.children){let A=J.children.get(ne);await p(v.join(L,ne),q,A)}};for(let[L,K]of l){let J=u.get(L);for(let[ne,q]of K.children){if(ne===".")continue;let A=J&&J.children.get(ne);await p(v.join(L,ne),q,A)}}let d=async(L,K,J)=>{if(!J)K.children.has(gi)&&await Ef(v.join(L,gi),{contentsOnly:!0}),await Ef(L,{contentsOnly:K.linkType===gt.HARD});else{vce(K.locator,J.locator)||await Ef(L,{contentsOnly:K.linkType===gt.HARD});for(let[ne,q]of K.children){let A=J.children.get(ne);await d(v.join(L,ne),q,A)}}};for(let[L,K]of u){let J=l.get(L);for(let[ne,q]of K.children){if(ne===".")continue;let A=J&&J.children.get(ne);await d(v.join(L,ne),q,A)}}let m=new Map,I=[];for(let[L,{locations:K}]of t.locatorMap.entries())for(let J of K){let{locationRoot:ne,segments:q}=$0(J,{skipPrefix:i.cwd}),A=u.get(ne),V=ne;if(A){for(let W of q)if(V=v.join(V,W),A=A.children.get(W),!A)break;if(A){let W=vce(A.locator,L),X=e.get(A.locator),F=X.target,D=V,he=X.linkType;if(W)m.has(F)||m.set(F,D);else if(F!==D){let pe=S.parseLocator(A.locator);S.isVirtualLocator(pe)&&(pe=S.devirtualizeLocator(pe)),I.push({srcDir:F,dstDir:D,linkType:he,realLocatorHash:pe.locatorHash})}}}}for(let[L,{locations:K}]of e.entries())for(let J of K){let{locationRoot:ne,segments:q}=$0(J,{skipPrefix:i.cwd}),A=l.get(ne),V=u.get(ne),W=ne,X=e.get(L),F=S.parseLocator(L);S.isVirtualLocator(F)&&(F=S.devirtualizeLocator(F));let D=F.locatorHash,he=X.target,pe=J;if(he===pe)continue;let Ne=X.linkType;for(let Pe of q)V=V.children.get(Pe);if(!A)I.push({srcDir:he,dstDir:pe,linkType:Ne,realLocatorHash:D});else for(let Pe of q)if(W=v.join(W,Pe),A=A.children.get(Pe),!A){I.push({srcDir:he,dstDir:pe,linkType:Ne,realLocatorHash:D});break}}let B=Xi.progressViaCounter(I.length),b=n.reportProgress(B),R=i.configuration.get("nmMode"),H={value:R};try{let L=H.value===Bi.HARDLINKS_GLOBAL?`${dT(i.configuration)}/v1`:null;if(L&&!await T.existsPromise(L)){await T.mkdirpPromise(L);for(let J=0;J<256;J++)await T.mkdirPromise(v.join(L,J.toString(16).padStart(2,"0")))}for(let J of I)(J.linkType===gt.SOFT||!m.has(J.srcDir))&&(m.set(J.srcDir,J.dstDir),await f(_(P({},J),{globalHardlinksStore:L,nmMode:H,packageChecksum:o.get(J.realLocatorHash)||null})));await Promise.all(g),g.length=0;for(let J of I){let ne=m.get(J.srcDir);J.linkType!==gt.SOFT&&J.dstDir!==ne&&await h(ne,J.dstDir,{nmMode:H})}await Promise.all(g),await T.mkdirPromise(a,{recursive:!0});let K=await H6e(e,u,i.cwd,{loadManifest:s});await G6e(c,K,i.cwd),await M6e(i,e,K,H),R==Bi.HARDLINKS_GLOBAL&&H.value==Bi.HARDLINKS_LOCAL&&n.reportWarningOnce(z.NM_HARDLINKS_MODE_DOWNGRADED,"'nmMode' has been downgraded to 'hardlinks-local' due to global cache and install folder being on different devices")}finally{b.stop()}}async function G6e(t,e,r){for(let i of t.keys()){if(v.contains(r,i)===null)throw new Error(`Assertion failed. Excepted bin symlink location to be inside project dir, instead it was at ${i}`);if(!e.has(i)){let n=v.join(i,gi,gT);await T.removePromise(n)}}for(let[i,n]of e){if(v.contains(r,i)===null)throw new Error(`Assertion failed. Excepted bin symlink location to be inside project dir, instead it was at ${i}`);let s=v.join(i,gi,gT),o=t.get(i)||new Map;await T.mkdirPromise(s,{recursive:!0});for(let a of o.keys())n.has(a)||(await T.removePromise(v.join(s,a)),process.platform==="win32"&&await T.removePromise(v.join(s,kr(`${a}.cmd`))));for(let[a,l]of n){let c=o.get(a),u=v.join(s,a);c!==l&&(process.platform==="win32"?await(0,Cce.default)(M.fromPortablePath(l),M.fromPortablePath(u),{createPwshFile:!1}):(await T.removePromise(u),await pT(l,u),v.contains(r,await T.realpathPromise(l))!==null&&await T.chmodPromise(l,493)))}}}var CT=class extends jc{constructor(){super(...arguments);this.mode="loose"}makeInstaller(e){return new Sce(e)}},Sce=class extends Cf{constructor(){super(...arguments);this.mode="loose"}async transformPnpSettings(e){let r=new Pr({baseFs:new Jn({libzip:await $i(),maxOpenFiles:80,readOnlyArchives:!0})}),i=ice(e,this.opts.project.cwd,r),{tree:n,errors:s}=VC(i,{pnpifyFs:!1,project:this.opts.project});if(!n){for(let{messageName:u,text:g}of s)this.opts.report.reportError(u,g);return}let o=new Map;e.fallbackPool=o;let a=(u,g)=>{let f=S.parseLocator(g.locator),h=S.stringifyIdent(f);h===u?o.set(u,f.reference):o.set(u,[h,f.reference])},l=v.join(this.opts.project.cwd,wt.nodeModules),c=n.get(l);if(typeof c!="undefined"){if("target"in c)throw new Error("Assertion failed: Expected the root junction point to be a directory");for(let u of c.dirList){let g=v.join(l,u),f=n.get(g);if(typeof f=="undefined")throw new Error("Assertion failed: Expected the child to have been registered");if("target"in f)a(u,f);else for(let h of f.dirList){let p=v.join(g,h),d=n.get(p);if(typeof d=="undefined")throw new Error("Assertion failed: Expected the subchild to have been registered");if("target"in d)a(`${u}/${h}`,d);else throw new Error("Assertion failed: Expected the leaf junction to be a package")}}}}};var j6e={hooks:{cleanGlobalArtifacts:async t=>{let e=dT(t);await T.removePromise(e)}},configuration:{nmHoistingLimits:{description:"Prevent packages to be hoisted past specific levels",type:ge.STRING,values:[Sn.WORKSPACES,Sn.DEPENDENCIES,Sn.NONE],default:Sn.NONE},nmMode:{description:'If set to "hardlinks-local" Yarn will utilize hardlinks to reduce disk space consumption inside "node_modules" directories. With "hardlinks-global" Yarn will use global content addressable storage to reduce "node_modules" size across all the projects using this option.',type:ge.STRING,values:[Bi.CLASSIC,Bi.HARDLINKS_LOCAL,Bi.HARDLINKS_GLOBAL],default:Bi.CLASSIC},nmSelfReferences:{description:"If set to 'false' the workspace will not be allowed to require itself and corresponding self-referencing symlink will not be created",type:ge.BOOLEAN,default:!0}},linkers:[fT,CT]},Y6e=j6e;var yM={};it(yM,{default:()=>Z7e,npmConfigUtils:()=>gr,npmHttpUtils:()=>Lt,npmPublishUtils:()=>Rf});var Rce=ie(Or());var ir="npm:";var Lt={};it(Lt,{AuthType:()=>jn,customPackageError:()=>W6e,del:()=>_6e,get:()=>zs,getIdentUrl:()=>zA,handleInvalidAuthenticationError:()=>WA,post:()=>z6e,put:()=>V6e});var Pce=ie(aC()),Dce=ie(require("url"));var gr={};it(gr,{RegistryType:()=>ja,getAuditRegistry:()=>q6e,getAuthConfiguration:()=>IT,getDefaultRegistry:()=>eQ,getPublishRegistry:()=>xce,getRegistryConfiguration:()=>kce,getScopeConfiguration:()=>ET,getScopeRegistry:()=>Ya,normalizeRegistry:()=>To});var ja;(function(i){i.AUDIT_REGISTRY="npmAuditRegistry",i.FETCH_REGISTRY="npmRegistryServer",i.PUBLISH_REGISTRY="npmPublishRegistry"})(ja||(ja={}));function To(t){return t.replace(/\/$/,"")}function q6e(t,{configuration:e}){let r=e.get(ja.AUDIT_REGISTRY);return r!==null?To(r):xce(t,{configuration:e})}function xce(t,{configuration:e}){var r;return((r=t.publishConfig)==null?void 0:r.registry)?To(t.publishConfig.registry):t.name?Ya(t.name.scope,{configuration:e,type:ja.PUBLISH_REGISTRY}):eQ({configuration:e,type:ja.PUBLISH_REGISTRY})}function Ya(t,{configuration:e,type:r=ja.FETCH_REGISTRY}){let i=ET(t,{configuration:e});if(i===null)return eQ({configuration:e,type:r});let n=i.get(r);return n===null?eQ({configuration:e,type:r}):To(n)}function eQ({configuration:t,type:e=ja.FETCH_REGISTRY}){let r=t.get(e);return To(r!==null?r:t.get(ja.FETCH_REGISTRY))}function kce(t,{configuration:e}){let r=e.get("npmRegistries"),i=To(t),n=r.get(i);if(typeof n!="undefined")return n;let s=r.get(i.replace(/^[a-z]+:/,""));return typeof s!="undefined"?s:null}function ET(t,{configuration:e}){if(t===null)return null;let i=e.get("npmScopes").get(t);return i||null}function IT(t,{configuration:e,ident:r}){let i=r&&ET(r.scope,{configuration:e});return(i==null?void 0:i.get("npmAuthIdent"))||(i==null?void 0:i.get("npmAuthToken"))?i:kce(t,{configuration:e})||e}var jn;(function(n){n[n.NO_AUTH=0]="NO_AUTH",n[n.BEST_EFFORT=1]="BEST_EFFORT",n[n.CONFIGURATION=2]="CONFIGURATION",n[n.ALWAYS_AUTH=3]="ALWAYS_AUTH"})(jn||(jn={}));async function WA(t,{attemptedAs:e,registry:r,headers:i,configuration:n}){var s,o;if(((s=t.originalError)==null?void 0:s.name)==="HTTPError"&&((o=t.originalError)==null?void 0:o.response.statusCode)===401)throw new nt(z.AUTHENTICATION_INVALID,`Invalid authentication (${typeof e!="string"?`as ${await J6e(r,i,{configuration:n})}`:`attempted as ${e}`})`)}function W6e(t){var e;return((e=t.response)==null?void 0:e.statusCode)===404?"Package not found":null}function zA(t){return t.scope?`/@${t.scope}%2f${t.name}`:`/${t.name}`}async function zs(t,a){var l=a,{configuration:e,headers:r,ident:i,authType:n,registry:s}=l,o=qr(l,["configuration","headers","ident","authType","registry"]);if(i&&typeof s=="undefined"&&(s=Ya(i.scope,{configuration:e})),i&&i.scope&&typeof n=="undefined"&&(n=1),typeof s!="string")throw new Error("Assertion failed: The registry should be a string");let c=await tQ(s,{authType:n,configuration:e,ident:i});c&&(r=_(P({},r),{authorization:c}));try{return await Zt.get(t.charAt(0)==="/"?`${s}${t}`:t,P({configuration:e,headers:r},o))}catch(u){throw await WA(u,{registry:s,configuration:e,headers:r}),u}}async function z6e(t,e,c){var u=c,{attemptedAs:r,configuration:i,headers:n,ident:s,authType:o=3,registry:a}=u,l=qr(u,["attemptedAs","configuration","headers","ident","authType","registry"]);if(s&&typeof a=="undefined"&&(a=Ya(s.scope,{configuration:i})),typeof a!="string")throw new Error("Assertion failed: The registry should be a string");let g=await tQ(a,{authType:o,configuration:i,ident:s});g&&(n=_(P({},n),{authorization:g}));try{return await Zt.post(a+t,e,P({configuration:i,headers:n},l))}catch(f){if(!wT(f))throw await WA(f,{attemptedAs:r,registry:a,configuration:i,headers:n}),f;let h=await yT(),p=P(P({},n),BT(h));try{return await Zt.post(`${a}${t}`,e,P({configuration:i,headers:p},l))}catch(d){throw await WA(d,{attemptedAs:r,registry:a,configuration:i,headers:n}),d}}}async function V6e(t,e,c){var u=c,{attemptedAs:r,configuration:i,headers:n,ident:s,authType:o=3,registry:a}=u,l=qr(u,["attemptedAs","configuration","headers","ident","authType","registry"]);if(s&&typeof a=="undefined"&&(a=Ya(s.scope,{configuration:i})),typeof a!="string")throw new Error("Assertion failed: The registry should be a string");let g=await tQ(a,{authType:o,configuration:i,ident:s});g&&(n=_(P({},n),{authorization:g}));try{return await Zt.put(a+t,e,P({configuration:i,headers:n},l))}catch(f){if(!wT(f))throw await WA(f,{attemptedAs:r,registry:a,configuration:i,headers:n}),f;let h=await yT(),p=P(P({},n),BT(h));try{return await Zt.put(`${a}${t}`,e,P({configuration:i,headers:p},l))}catch(d){throw await WA(d,{attemptedAs:r,registry:a,configuration:i,headers:n}),d}}}async function _6e(t,l){var c=l,{attemptedAs:e,configuration:r,headers:i,ident:n,authType:s=3,registry:o}=c,a=qr(c,["attemptedAs","configuration","headers","ident","authType","registry"]);if(n&&typeof o=="undefined"&&(o=Ya(n.scope,{configuration:r})),typeof o!="string")throw new Error("Assertion failed: The registry should be a string");let u=await tQ(o,{authType:s,configuration:r,ident:n});u&&(i=_(P({},i),{authorization:u}));try{return await Zt.del(o+t,P({configuration:r,headers:i},a))}catch(g){if(!wT(g))throw await WA(g,{attemptedAs:e,registry:o,configuration:r,headers:i}),g;let f=await yT(),h=P(P({},i),BT(f));try{return await Zt.del(`${o}${t}`,P({configuration:r,headers:h},a))}catch(p){throw await WA(p,{attemptedAs:e,registry:o,configuration:r,headers:i}),p}}}async function tQ(t,{authType:e=2,configuration:r,ident:i}){let n=IT(t,{configuration:r,ident:i}),s=X6e(n,e);if(!s)return null;let o=await r.reduceHook(a=>a.getNpmAuthenticationHeader,void 0,t,{configuration:r,ident:i});if(o)return o;if(n.get("npmAuthToken"))return`Bearer ${n.get("npmAuthToken")}`;if(n.get("npmAuthIdent")){let a=n.get("npmAuthIdent");return a.includes(":")?`Basic ${Buffer.from(a).toString("base64")}`:`Basic ${a}`}if(s&&e!==1)throw new nt(z.AUTHENTICATION_NOT_FOUND,"No authentication configured for request");return null}function X6e(t,e){switch(e){case 2:return t.get("npmAlwaysAuth");case 1:case 3:return!0;case 0:return!1;default:throw new Error("Unreachable")}}async function J6e(t,e,{configuration:r}){var i;if(typeof e=="undefined"||typeof e.authorization=="undefined")return"an anonymous user";try{return(i=(await Zt.get(new Dce.URL(`${t}/-/whoami`).href,{configuration:r,headers:e,jsonResponse:!0})).username)!=null?i:"an unknown user"}catch{return"an unknown user"}}async function yT(){if(process.env.TEST_ENV)return process.env.TEST_NPM_2FA_TOKEN||"";let{otp:t}=await(0,Pce.prompt)({type:"password",name:"otp",message:"One-time password:",required:!0,onCancel:()=>process.exit(130)});return t}function wT(t){var e,r;if(((e=t.originalError)==null?void 0:e.name)!=="HTTPError")return!1;try{return((r=t.originalError)==null?void 0:r.response.headers["www-authenticate"].split(/,\s*/).map(n=>n.toLowerCase())).includes("otp")}catch(i){return!1}}function BT(t){return{["npm-otp"]:t}}var QT=class{supports(e,r){if(!e.reference.startsWith(ir))return!1;let{selector:i,params:n}=S.parseRange(e.reference);return!(!Rce.default.valid(i)||n===null||typeof n.__archiveUrl!="string")}getLocalPath(e,r){return null}async fetch(e,r){let i=r.checksums.get(e.locatorHash)||null,[n,s,o]=await r.cache.fetchPackageFromCache(e,i,P({onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${S.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from the remote server`),loader:()=>this.fetchFromNetwork(e,r),skipIntegrityCheck:r.skipIntegrityCheck},r.cacheOptions));return{packageFs:n,releaseFs:s,prefixPath:S.getIdentVendorPath(e),checksum:o}}async fetchFromNetwork(e,r){let{params:i}=S.parseRange(e.reference);if(i===null||typeof i.__archiveUrl!="string")throw new Error("Assertion failed: The archiveUrl querystring parameter should have been available");let n=await zs(i.__archiveUrl,{configuration:r.project.configuration,ident:e});return await Ai.convertToZip(n,{compressionLevel:r.project.configuration.get("compressionLevel"),prefixPath:S.getIdentVendorPath(e),stripComponents:1})}};var bT=class{supportsDescriptor(e,r){return!(!e.range.startsWith(ir)||!S.tryParseDescriptor(e.range.slice(ir.length),!0))}supportsLocator(e,r){return!1}shouldPersistResolution(e,r){throw new Error("Unreachable")}bindDescriptor(e,r,i){return e}getResolutionDependencies(e,r){let i=S.parseDescriptor(e.range.slice(ir.length),!0);return r.resolver.getResolutionDependencies(i,r)}async getCandidates(e,r,i){let n=S.parseDescriptor(e.range.slice(ir.length),!0);return await i.resolver.getCandidates(n,r,i)}async getSatisfying(e,r,i){let n=S.parseDescriptor(e.range.slice(ir.length),!0);return i.resolver.getSatisfying(n,r,i)}resolve(e,r){throw new Error("Unreachable")}};var vT=ie(Or()),Fce=ie(require("url"));var Vs=class{supports(e,r){if(!e.reference.startsWith(ir))return!1;let i=new Fce.URL(e.reference);return!(!vT.default.valid(i.pathname)||i.searchParams.has("__archiveUrl"))}getLocalPath(e,r){return null}async fetch(e,r){let i=r.checksums.get(e.locatorHash)||null,[n,s,o]=await r.cache.fetchPackageFromCache(e,i,P({onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${S.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from the remote registry`),loader:()=>this.fetchFromNetwork(e,r),skipIntegrityCheck:r.skipIntegrityCheck},r.cacheOptions));return{packageFs:n,releaseFs:s,prefixPath:S.getIdentVendorPath(e),checksum:o}}async fetchFromNetwork(e,r){let i;try{i=await zs(Vs.getLocatorUrl(e),{configuration:r.project.configuration,ident:e})}catch(n){i=await zs(Vs.getLocatorUrl(e).replace(/%2f/g,"/"),{configuration:r.project.configuration,ident:e})}return await Ai.convertToZip(i,{compressionLevel:r.project.configuration.get("compressionLevel"),prefixPath:S.getIdentVendorPath(e),stripComponents:1})}static isConventionalTarballUrl(e,r,{configuration:i}){let n=Ya(e.scope,{configuration:i}),s=Vs.getLocatorUrl(e);return r=r.replace(/^https?:(\/\/(?:[^/]+\.)?npmjs.org(?:$|\/))/,"https:$1"),n=n.replace(/^https:\/\/registry\.npmjs\.org($|\/)/,"https://registry.yarnpkg.com$1"),r=r.replace(/^https:\/\/registry\.npmjs\.org($|\/)/,"https://registry.yarnpkg.com$1"),r===n+s||r===n+s.replace(/%2f/g,"/")}static getLocatorUrl(e){let r=vT.default.clean(e.reference.slice(ir.length));if(r===null)throw new nt(z.RESOLVER_NOT_FOUND,"The npm semver resolver got selected, but the version isn't semver");return`${zA(e)}/-/${e.name}-${r}.tgz`}};var ST=ie(Or());var rQ=S.makeIdent(null,"node-gyp"),Z6e=/\b(node-gyp|prebuild-install)\b/,xT=class{supportsDescriptor(e,r){return e.range.startsWith(ir)?!!qt.validRange(e.range.slice(ir.length)):!1}supportsLocator(e,r){if(!e.reference.startsWith(ir))return!1;let{selector:i}=S.parseRange(e.reference);return!!ST.default.valid(i)}shouldPersistResolution(e,r){return!0}bindDescriptor(e,r,i){return e}getResolutionDependencies(e,r){return[]}async getCandidates(e,r,i){let n=qt.validRange(e.range.slice(ir.length));if(n===null)throw new Error(`Expected a valid range, got ${e.range.slice(ir.length)}`);let s=await zs(zA(e),{configuration:i.project.configuration,ident:e,jsonResponse:!0}),o=de.mapAndFilter(Object.keys(s.versions),c=>{try{let u=new qt.SemVer(c);if(n.test(u))return u}catch{}return de.mapAndFilter.skip}),a=o.filter(c=>!s.versions[c.raw].deprecated),l=a.length>0?a:o;return l.sort((c,u)=>-c.compare(u)),l.map(c=>{let u=S.makeLocator(e,`${ir}${c.raw}`),g=s.versions[c.raw].dist.tarball;return Vs.isConventionalTarballUrl(u,g,{configuration:i.project.configuration})?u:S.bindLocator(u,{__archiveUrl:g})})}async getSatisfying(e,r,i){let n=qt.validRange(e.range.slice(ir.length));if(n===null)throw new Error(`Expected a valid range, got ${e.range.slice(ir.length)}`);return de.mapAndFilter(r,s=>{try{let{selector:o}=S.parseRange(s,{requireProtocol:ir}),a=new qt.SemVer(o);if(n.test(a))return{reference:s,version:a}}catch{}return de.mapAndFilter.skip}).sort((s,o)=>-s.version.compare(o.version)).map(({reference:s})=>S.makeLocator(e,s))}async resolve(e,r){let{selector:i}=S.parseRange(e.reference),n=ST.default.clean(i);if(n===null)throw new nt(z.RESOLVER_NOT_FOUND,"The npm semver resolver got selected, but the version isn't semver");let s=await zs(zA(e),{configuration:r.project.configuration,ident:e,jsonResponse:!0});if(!Object.prototype.hasOwnProperty.call(s,"versions"))throw new nt(z.REMOTE_INVALID,'Registry returned invalid data for - missing "versions" field');if(!Object.prototype.hasOwnProperty.call(s.versions,n))throw new nt(z.REMOTE_NOT_FOUND,`Registry failed to return reference "${n}"`);let o=new Ze;if(o.load(s.versions[n]),!o.dependencies.has(rQ.identHash)&&!o.peerDependencies.has(rQ.identHash)){for(let a of o.scripts.values())if(a.match(Z6e)){o.dependencies.set(rQ.identHash,S.makeDescriptor(rQ,"latest")),r.report.reportWarningOnce(z.NODE_GYP_INJECTED,`${S.prettyLocator(r.project.configuration,e)}: Implicit dependencies on node-gyp are discouraged`);break}}return typeof o.raw.deprecated=="string"&&r.report.reportWarningOnce(z.DEPRECATED_PACKAGE,`${S.prettyLocator(r.project.configuration,e)} is deprecated: ${o.raw.deprecated}`),_(P({},e),{version:n,languageName:"node",linkType:gt.HARD,conditions:o.getConditions(),dependencies:o.dependencies,peerDependencies:o.peerDependencies,dependenciesMeta:o.dependenciesMeta,peerDependenciesMeta:o.peerDependenciesMeta,bin:o.bin})}};var kT=class{supportsDescriptor(e,r){return!(!e.range.startsWith(ir)||!Rg.test(e.range.slice(ir.length)))}supportsLocator(e,r){return!1}shouldPersistResolution(e,r){throw new Error("Unreachable")}bindDescriptor(e,r,i){return e}getResolutionDependencies(e,r){return[]}async getCandidates(e,r,i){let n=e.range.slice(ir.length),s=await zs(zA(e),{configuration:i.project.configuration,ident:e,jsonResponse:!0});if(!Object.prototype.hasOwnProperty.call(s,"dist-tags"))throw new nt(z.REMOTE_INVALID,'Registry returned invalid data - missing "dist-tags" field');let o=s["dist-tags"];if(!Object.prototype.hasOwnProperty.call(o,n))throw new nt(z.REMOTE_NOT_FOUND,`Registry failed to return tag "${n}"`);let a=o[n],l=S.makeLocator(e,`${ir}${a}`),c=s.versions[a].dist.tarball;return Vs.isConventionalTarballUrl(l,c,{configuration:i.project.configuration})?[l]:[S.bindLocator(l,{__archiveUrl:c})]}async getSatisfying(e,r,i){return null}async resolve(e,r){throw new Error("Unreachable")}};var Rf={};it(Rf,{getGitHead:()=>_7e,makePublishBody:()=>V7e});var CM={};it(CM,{default:()=>D7e,packUtils:()=>za});var za={};it(za,{genPackList:()=>QQ,genPackStream:()=>dM,genPackageManifest:()=>age,hasPackScripts:()=>hM,prepareForPack:()=>pM});var fM=ie(Nn()),sge=ie(nge()),oge=ie(require("zlib")),I7e=["/package.json","/readme","/readme.*","/license","/license.*","/licence","/licence.*","/changelog","/changelog.*"],y7e=["/package.tgz",".github",".git",".hg","node_modules",".npmignore",".gitignore",".#*",".DS_Store"];async function hM(t){return!!(Kt.hasWorkspaceScript(t,"prepack")||Kt.hasWorkspaceScript(t,"postpack"))}async function pM(t,{report:e},r){await Kt.maybeExecuteWorkspaceLifecycleScript(t,"prepack",{report:e});try{let i=v.join(t.cwd,Ze.fileName);await T.existsPromise(i)&&await t.manifest.loadFile(i,{baseFs:T}),await r()}finally{await Kt.maybeExecuteWorkspaceLifecycleScript(t,"postpack",{report:e})}}async function dM(t,e){var s,o;typeof e=="undefined"&&(e=await QQ(t));let r=new Set;for(let a of(o=(s=t.manifest.publishConfig)==null?void 0:s.executableFiles)!=null?o:new Set)r.add(v.normalize(a));for(let a of t.manifest.bin.values())r.add(v.normalize(a));let i=sge.default.pack();process.nextTick(async()=>{for(let a of e){let l=v.normalize(a),c=v.resolve(t.cwd,l),u=v.join("package",l),g=await T.lstatPromise(c),f={name:u,mtime:new Date(mr.SAFE_TIME*1e3)},h=r.has(l)?493:420,p,d,m=new Promise((B,b)=>{p=B,d=b}),I=B=>{B?d(B):p()};if(g.isFile()){let B;l==="package.json"?B=Buffer.from(JSON.stringify(await age(t),null,2)):B=await T.readFilePromise(c),i.entry(_(P({},f),{mode:h,type:"file"}),B,I)}else g.isSymbolicLink()?i.entry(_(P({},f),{mode:h,type:"symlink",linkname:await T.readlinkPromise(c)}),I):I(new Error(`Unsupported file type ${g.mode} for ${M.fromPortablePath(l)}`));await m}i.finalize()});let n=(0,oge.createGzip)();return i.pipe(n),n}async function age(t){let e=JSON.parse(JSON.stringify(t.manifest.raw));return await t.project.configuration.triggerHook(r=>r.beforeWorkspacePacking,t,e),e}async function QQ(t){var g,f,h,p,d,m,I,B;let e=t.project,r=e.configuration,i={accept:[],reject:[]};for(let b of y7e)i.reject.push(b);for(let b of I7e)i.accept.push(b);i.reject.push(r.get("rcFilename"));let n=b=>{if(b===null||!b.startsWith(`${t.cwd}/`))return;let R=v.relative(t.cwd,b),H=v.resolve(Se.root,R);i.reject.push(H)};n(v.resolve(e.cwd,r.get("lockfileFilename"))),n(r.get("cacheFolder")),n(r.get("globalFolder")),n(r.get("installStatePath")),n(r.get("virtualFolder")),n(r.get("yarnPath")),await r.triggerHook(b=>b.populateYarnPaths,e,b=>{n(b)});for(let b of e.workspaces){let R=v.relative(t.cwd,b.cwd);R!==""&&!R.match(/^(\.\.)?\//)&&i.reject.push(`/${R}`)}let s={accept:[],reject:[]},o=(f=(g=t.manifest.publishConfig)==null?void 0:g.main)!=null?f:t.manifest.main,a=(p=(h=t.manifest.publishConfig)==null?void 0:h.module)!=null?p:t.manifest.module,l=(m=(d=t.manifest.publishConfig)==null?void 0:d.browser)!=null?m:t.manifest.browser,c=(B=(I=t.manifest.publishConfig)==null?void 0:I.bin)!=null?B:t.manifest.bin;o!=null&&s.accept.push(v.resolve(Se.root,o)),a!=null&&s.accept.push(v.resolve(Se.root,a)),typeof l=="string"&&s.accept.push(v.resolve(Se.root,l));for(let b of c.values())s.accept.push(v.resolve(Se.root,b));if(l instanceof Map)for(let[b,R]of l.entries())s.accept.push(v.resolve(Se.root,b)),typeof R=="string"&&s.accept.push(v.resolve(Se.root,R));let u=t.manifest.files!==null;if(u){s.reject.push("/*");for(let b of t.manifest.files)Age(s.accept,b,{cwd:Se.root})}return await w7e(t.cwd,{hasExplicitFileList:u,globalList:i,ignoreList:s})}async function w7e(t,{hasExplicitFileList:e,globalList:r,ignoreList:i}){let n=[],s=new Zo(t),o=[[Se.root,[i]]];for(;o.length>0;){let[a,l]=o.pop(),c=await s.lstatPromise(a);if(!cge(a,{globalList:r,ignoreLists:c.isDirectory()?null:l}))if(c.isDirectory()){let u=await s.readdirPromise(a),g=!1,f=!1;if(!e||a!==Se.root)for(let d of u)g=g||d===".gitignore",f=f||d===".npmignore";let h=f?await lge(s,a,".npmignore"):g?await lge(s,a,".gitignore"):null,p=h!==null?[h].concat(l):l;cge(a,{globalList:r,ignoreLists:l})&&(p=[...l,{accept:[],reject:["**/*"]}]);for(let d of u)o.push([v.resolve(a,d),p])}else(c.isFile()||c.isSymbolicLink())&&n.push(v.relative(Se.root,a))}return n.sort()}async function lge(t,e,r){let i={accept:[],reject:[]},n=await t.readFilePromise(v.join(e,r),"utf8");for(let s of n.split(/\n/g))Age(i.reject,s,{cwd:e});return i}function B7e(t,{cwd:e}){let r=t[0]==="!";return r&&(t=t.slice(1)),t.match(/\.{0,1}\//)&&(t=v.resolve(e,t)),r&&(t=`!${t}`),t}function Age(t,e,{cwd:r}){let i=e.trim();i===""||i[0]==="#"||t.push(B7e(i,{cwd:r}))}function cge(t,{globalList:e,ignoreLists:r}){if(bQ(t,e.accept))return!1;if(bQ(t,e.reject))return!0;if(r!==null)for(let i of r){if(bQ(t,i.accept))return!1;if(bQ(t,i.reject))return!0}return!1}function bQ(t,e){let r=e,i=[];for(let n=0;n{await pM(i,{report:l},async()=>{l.reportJson({base:M.fromPortablePath(i.cwd)});let c=await QQ(i);for(let u of c)l.reportInfo(null,M.fromPortablePath(u)),l.reportJson({location:M.fromPortablePath(u)});if(!this.dryRun){let u=await dM(i,c),g=T.createWriteStream(s);u.pipe(g),await new Promise(f=>{g.on("finish",f)})}}),this.dryRun||(l.reportInfo(z.UNNAMED,`Package archive generated in ${ue.pretty(e,s,ue.Type.PATH)}`),l.reportJson({output:M.fromPortablePath(s)}))})).exitCode()}};fm.paths=[["pack"]],fm.usage=ye.Usage({description:"generate a tarball from the active workspace",details:"\n This command will turn the active workspace into a compressed archive suitable for publishing. The archive will by default be stored at the root of the workspace (`package.tgz`).\n\n If the `-o,---out` is set the archive will be created at the specified path. The `%s` and `%v` variables can be used within the path and will be respectively replaced by the package name and version.\n ",examples:[["Create an archive from the active workspace","yarn pack"],["List the files that would be made part of the workspace's archive","yarn pack --dry-run"],["Name and output the archive in a dedicated folder","yarn pack --out /artifacts/%s-%v.tgz"]]});var gge=fm;function Q7e(t,{workspace:e}){let r=t.replace("%s",b7e(e)).replace("%v",v7e(e));return M.toPortablePath(r)}function b7e(t){return t.manifest.name!==null?S.slugifyIdent(t.manifest.name):"package"}function v7e(t){return t.manifest.version!==null?t.manifest.version:"unknown"}var S7e=["dependencies","devDependencies","peerDependencies"],x7e="workspace:",k7e=(t,e)=>{var i,n;e.publishConfig&&(e.publishConfig.main&&(e.main=e.publishConfig.main),e.publishConfig.browser&&(e.browser=e.publishConfig.browser),e.publishConfig.module&&(e.module=e.publishConfig.module),e.publishConfig.browser&&(e.browser=e.publishConfig.browser),e.publishConfig.exports&&(e.exports=e.publishConfig.exports),e.publishConfig.bin&&(e.bin=e.publishConfig.bin));let r=t.project;for(let s of S7e)for(let o of t.manifest.getForScope(s).values()){let a=r.tryWorkspaceByDescriptor(o),l=S.parseRange(o.range);if(l.protocol===x7e)if(a===null){if(r.tryWorkspaceByIdent(o)===null)throw new nt(z.WORKSPACE_NOT_FOUND,`${S.prettyDescriptor(r.configuration,o)}: No local workspace found for this range`)}else{let c;S.areDescriptorsEqual(o,a.anchoredDescriptor)||l.selector==="*"?c=(i=a.manifest.version)!=null?i:"0.0.0":l.selector==="~"||l.selector==="^"?c=`${l.selector}${(n=a.manifest.version)!=null?n:"0.0.0"}`:c=l.selector,e[s][S.stringifyIdent(o)]=c}}},P7e={hooks:{beforeWorkspacePacking:k7e},commands:[gge]},D7e=P7e;var yge=ie(require("crypto")),wge=ie(Ige()),Bge=ie(require("url"));async function V7e(t,e,{access:r,tag:i,registry:n,gitHead:s}){let o=t.project.configuration,a=t.manifest.name,l=t.manifest.version,c=S.stringifyIdent(a),u=(0,yge.createHash)("sha1").update(e).digest("hex"),g=wge.default.fromData(e).toString();typeof r=="undefined"&&(t.manifest.publishConfig&&typeof t.manifest.publishConfig.access=="string"?r=t.manifest.publishConfig.access:o.get("npmPublishAccess")!==null?r=o.get("npmPublishAccess"):a.scope?r="restricted":r="public");let f=await za.genPackageManifest(t),h=`${c}-${l}.tgz`,p=new Bge.URL(`${To(n)}/${c}/-/${h}`);return{_id:c,_attachments:{[h]:{content_type:"application/octet-stream",data:e.toString("base64"),length:e.length}},name:c,access:r,["dist-tags"]:{[i]:l},versions:{[l]:_(P({},f),{_id:`${c}@${l}`,name:c,version:l,gitHead:s,dist:{shasum:u,integrity:g,tarball:p.toString()}})}}}async function _7e(t){try{let{stdout:e}=await hr.execvp("git",["rev-parse","--revs-only","HEAD"],{cwd:t});return e.trim()===""?void 0:e.trim()}catch{return}}var wM={npmAlwaysAuth:{description:"URL of the selected npm registry (note: npm enterprise isn't supported)",type:ge.BOOLEAN,default:!1},npmAuthIdent:{description:"Authentication identity for the npm registry (_auth in npm and yarn v1)",type:ge.SECRET,default:null},npmAuthToken:{description:"Authentication token for the npm registry (_authToken in npm and yarn v1)",type:ge.SECRET,default:null}},Qge={npmAuditRegistry:{description:"Registry to query for audit reports",type:ge.STRING,default:null},npmPublishRegistry:{description:"Registry to push packages to",type:ge.STRING,default:null},npmRegistryServer:{description:"URL of the selected npm registry (note: npm enterprise isn't supported)",type:ge.STRING,default:"https://registry.yarnpkg.com"}},X7e={configuration:_(P(P({},wM),Qge),{npmScopes:{description:"Settings per package scope",type:ge.MAP,valueDefinition:{description:"",type:ge.SHAPE,properties:P(P({},wM),Qge)}},npmRegistries:{description:"Settings per registry",type:ge.MAP,normalizeKeys:To,valueDefinition:{description:"",type:ge.SHAPE,properties:P({},wM)}}}),fetchers:[QT,Vs],resolvers:[bT,xT,kT]},Z7e=X7e;var vM={};it(vM,{default:()=>a_e});Ss();var Ho;(function(i){i.All="all",i.Production="production",i.Development="development"})(Ho||(Ho={}));var Xs;(function(s){s.Info="info",s.Low="low",s.Moderate="moderate",s.High="high",s.Critical="critical"})(Xs||(Xs={}));var vQ=[Xs.Info,Xs.Low,Xs.Moderate,Xs.High,Xs.Critical];function bge(t,e){let r=[],i=new Set,n=o=>{i.has(o)||(i.add(o),r.push(o))};for(let o of e)n(o);let s=new Set;for(;r.length>0;){let o=r.shift(),a=t.storedResolutions.get(o);if(typeof a=="undefined")throw new Error("Assertion failed: Expected the resolution to have been registered");let l=t.storedPackages.get(a);if(!!l){s.add(o);for(let c of l.dependencies.values())n(c.descriptorHash)}}return s}function $7e(t,e){return new Set([...t].filter(r=>!e.has(r)))}function e_e(t,e,{all:r}){let i=r?t.workspaces:[e],n=i.map(f=>f.manifest),s=new Set(n.map(f=>[...f.dependencies].map(([h,p])=>h)).flat()),o=new Set(n.map(f=>[...f.devDependencies].map(([h,p])=>h)).flat()),a=i.map(f=>[...f.dependencies.values()]).flat(),l=a.filter(f=>s.has(f.identHash)).map(f=>f.descriptorHash),c=a.filter(f=>o.has(f.identHash)).map(f=>f.descriptorHash),u=bge(t,l),g=bge(t,c);return $7e(g,u)}function vge(t){let e={};for(let r of t)e[S.stringifyIdent(r)]=S.parseRange(r.range).selector;return e}function Sge(t){if(typeof t=="undefined")return new Set;let e=vQ.indexOf(t),r=vQ.slice(e);return new Set(r)}function t_e(t,e){let r=Sge(e),i={};for(let n of r)i[n]=t[n];return i}function xge(t,e){var i;let r=t_e(t,e);for(let n of Object.keys(r))if((i=r[n])!=null?i:0>0)return!0;return!1}function kge(t,e){var s;let r={},i={children:r},n=Object.values(t.advisories);if(e!=null){let o=Sge(e);n=n.filter(a=>o.has(a.severity))}for(let o of de.sortMap(n,a=>a.module_name))r[o.module_name]={label:o.module_name,value:ue.tuple(ue.Type.RANGE,o.findings.map(a=>a.version).join(", ")),children:{Issue:{label:"Issue",value:ue.tuple(ue.Type.NO_HINT,o.title)},URL:{label:"URL",value:ue.tuple(ue.Type.URL,o.url)},Severity:{label:"Severity",value:ue.tuple(ue.Type.NO_HINT,o.severity)},["Vulnerable Versions"]:{label:"Vulnerable Versions",value:ue.tuple(ue.Type.RANGE,o.vulnerable_versions)},["Patched Versions"]:{label:"Patched Versions",value:ue.tuple(ue.Type.RANGE,o.patched_versions)},Via:{label:"Via",value:ue.tuple(ue.Type.NO_HINT,Array.from(new Set(o.findings.map(a=>a.paths).flat().map(a=>a.split(">")[0]))).join(", "))},Recommendation:{label:"Recommendation",value:ue.tuple(ue.Type.NO_HINT,(s=o.recommendation)==null?void 0:s.replace(/\n/g," "))}}};return i}function Pge(t,e,{all:r,environment:i}){let n=r?t.workspaces:[e],s=[Ho.All,Ho.Production].includes(i),o=[];if(s)for(let c of n)for(let u of c.manifest.dependencies.values())o.push(u);let a=[Ho.All,Ho.Development].includes(i),l=[];if(a)for(let c of n)for(let u of c.manifest.devDependencies.values())l.push(u);return vge([...o,...l].filter(c=>S.parseRange(c.range).protocol===null))}function Dge(t,e,{all:r}){var s;let i=e_e(t,e,{all:r}),n={};for(let o of t.storedPackages.values())n[S.stringifyIdent(o)]={version:(s=o.version)!=null?s:"0.0.0",integrity:o.identHash,requires:vge(o.dependencies.values()),dev:i.has(S.convertLocatorToDescriptor(o).descriptorHash)};return n}var dm=class extends Be{constructor(){super(...arguments);this.all=Y.Boolean("-A,--all",!1,{description:"Audit dependencies from all workspaces"});this.recursive=Y.Boolean("-R,--recursive",!1,{description:"Audit transitive dependencies as well"});this.environment=Y.String("--environment",Ho.All,{description:"Which environments to cover",validator:Yi(Ho)});this.json=Y.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.severity=Y.String("--severity",Xs.Info,{description:"Minimal severity requested for packages to be displayed",validator:Yi(Xs)})}async execute(){let e=await fe.find(this.context.cwd,this.context.plugins),{project:r,workspace:i}=await Ke.find(e,this.context.cwd);if(!i)throw new rt(r.cwd,this.context.cwd);await r.restoreInstallState();let n=Pge(r,i,{all:this.all,environment:this.environment}),s=Dge(r,i,{all:this.all});if(!this.recursive)for(let f of Object.keys(s))Object.prototype.hasOwnProperty.call(n,f)?s[f].requires={}:delete s[f];let o={requires:n,dependencies:s},a=gr.getAuditRegistry(i.manifest,{configuration:e}),l,c=await Fa.start({configuration:e,stdout:this.context.stdout},async()=>{l=await Lt.post("/-/npm/v1/security/audits/quick",o,{authType:Lt.AuthType.BEST_EFFORT,configuration:e,jsonResponse:!0,registry:a})});if(c.hasErrors())return c.exitCode();let u=xge(l.metadata.vulnerabilities,this.severity);return!this.json&&u?(Hs.emitTree(kge(l,this.severity),{configuration:e,json:this.json,stdout:this.context.stdout,separators:2}),1):(await Fe.start({configuration:e,includeFooter:!1,json:this.json,stdout:this.context.stdout},async f=>{f.reportJson(l),u||f.reportInfo(z.EXCEPTION,"No audit suggestions")})).exitCode()}};dm.paths=[["npm","audit"]],dm.usage=ye.Usage({description:"perform a vulnerability audit against the installed packages",details:` - This command checks for known security reports on the packages you use. The reports are by default extracted from the npm registry, and may or may not be relevant to your actual program (not all vulnerabilities affect all code paths). - - For consistency with our other commands the default is to only check the direct dependencies for the active workspace. To extend this search to all workspaces, use \`-A,--all\`. To extend this search to both direct and transitive dependencies, use \`-R,--recursive\`. - - Applying the \`--severity\` flag will limit the audit table to vulnerabilities of the corresponding severity and above. Valid values are ${vQ.map(e=>`\`${e}\``).join(", ")}. - - If the \`--json\` flag is set, Yarn will print the output exactly as received from the registry. Regardless of this flag, the process will exit with a non-zero exit code if a report is found for the selected packages. - - To understand the dependency tree requiring vulnerable packages, check the raw report with the \`--json\` flag or use \`yarn why \` to get more information as to who depends on them. - `,examples:[["Checks for known security issues with the installed packages. The output is a list of known issues.","yarn npm audit"],["Audit dependencies in all workspaces","yarn npm audit --all"],["Limit auditing to `dependencies` (excludes `devDependencies`)","yarn npm audit --environment production"],["Show audit report as valid JSON","yarn npm audit --json"],["Audit all direct and transitive dependencies","yarn npm audit --recursive"],["Output moderate (or more severe) vulnerabilities","yarn npm audit --severity moderate"]]});var Rge=dm;var BM=ie(Or()),QM=ie(require("util")),Cm=class extends Be{constructor(){super(...arguments);this.fields=Y.String("-f,--fields",{description:"A comma-separated list of manifest fields that should be displayed"});this.json=Y.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.packages=Y.Rest()}async execute(){let e=await fe.find(this.context.cwd,this.context.plugins),{project:r}=await Ke.find(e,this.context.cwd),i=typeof this.fields!="undefined"?new Set(["name",...this.fields.split(/\s*,\s*/)]):null,n=[],s=!1,o=await Fe.start({configuration:e,includeFooter:!1,json:this.json,stdout:this.context.stdout},async a=>{for(let l of this.packages){let c;if(l==="."){let b=r.topLevelWorkspace;if(!b.manifest.name)throw new me(`Missing 'name' field in ${M.fromPortablePath(v.join(b.cwd,wt.manifest))}`);c=S.makeDescriptor(b.manifest.name,"unknown")}else c=S.parseDescriptor(l);let u=Lt.getIdentUrl(c),g=bM(await Lt.get(u,{configuration:e,ident:c,jsonResponse:!0,customErrorMessage:Lt.customPackageError})),f=Object.keys(g.versions).sort(BM.default.compareLoose),p=g["dist-tags"].latest||f[f.length-1],d=qt.validRange(c.range);if(d){let b=BM.default.maxSatisfying(f,d);b!==null?p=b:(a.reportWarning(z.UNNAMED,`Unmet range ${S.prettyRange(e,c.range)}; falling back to the latest version`),s=!0)}else c.range!=="unknown"&&(a.reportWarning(z.UNNAMED,`Invalid range ${S.prettyRange(e,c.range)}; falling back to the latest version`),s=!0);let m=g.versions[p],I=_(P(P({},g),m),{version:p,versions:f}),B;if(i!==null){B={};for(let b of i){let R=I[b];if(typeof R!="undefined")B[b]=R;else{a.reportWarning(z.EXCEPTION,`The '${b}' field doesn't exist inside ${S.prettyIdent(e,c)}'s informations`),s=!0;continue}}}else this.json||(delete I.dist,delete I.readme,delete I.users),B=I;a.reportJson(B),this.json||n.push(B)}});QM.inspect.styles.name="cyan";for(let a of n)(a!==n[0]||s)&&this.context.stdout.write(` -`),this.context.stdout.write(`${(0,QM.inspect)(a,{depth:Infinity,colors:!0,compact:!1})} -`);return o.exitCode()}};Cm.paths=[["npm","info"]],Cm.usage=ye.Usage({category:"Npm-related commands",description:"show information about a package",details:"\n This command will fetch information about a package from the npm registry, and prints it in a tree format.\n\n The package does not have to be installed locally, but needs to have been published (in particular, local changes will be ignored even for workspaces).\n\n Append `@` to the package argument to provide information specific to the latest version that satisfies the range. If the range is invalid or if there is no version satisfying the range, the command will print a warning and fall back to the latest version.\n\n If the `-f,--fields` option is set, it's a comma-separated list of fields which will be used to only display part of the package informations.\n\n By default, this command won't return the `dist`, `readme`, and `users` fields, since they are often very long. To explicitly request those fields, explicitly list them with the `--fields` flag or request the output in JSON mode.\n ",examples:[["Show all available information about react (except the `dist`, `readme`, and `users` fields)","yarn npm info react"],["Show all available information about react as valid JSON (including the `dist`, `readme`, and `users` fields)","yarn npm info react --json"],["Show all available information about react 16.12.0","yarn npm info react@16.12.0"],["Show the description of react","yarn npm info react --fields description"],["Show all available versions of react","yarn npm info react --fields versions"],["Show the readme of react","yarn npm info react --fields readme"],["Show a few fields of react","yarn npm info react --fields homepage,repository"]]});var Fge=Cm;function bM(t){if(Array.isArray(t)){let e=[];for(let r of t)r=bM(r),r&&e.push(r);return e}else if(typeof t=="object"&&t!==null){let e={};for(let r of Object.keys(t)){if(r.startsWith("_"))continue;let i=bM(t[r]);i&&(e[r]=i)}return e}else return t||null}var Nge=ie(aC()),mm=class extends Be{constructor(){super(...arguments);this.scope=Y.String("-s,--scope",{description:"Login to the registry configured for a given scope"});this.publish=Y.Boolean("--publish",!1,{description:"Login to the publish registry"})}async execute(){let e=await fe.find(this.context.cwd,this.context.plugins),r=await SQ({configuration:e,cwd:this.context.cwd,publish:this.publish,scope:this.scope});return(await Fe.start({configuration:e,stdout:this.context.stdout},async n=>{let s=await i_e({registry:r,report:n,stdin:this.context.stdin,stdout:this.context.stdout}),o=`/-/user/org.couchdb.user:${encodeURIComponent(s.name)}`,a=await Lt.put(o,s,{attemptedAs:s.name,configuration:e,registry:r,jsonResponse:!0,authType:Lt.AuthType.NO_AUTH});return await r_e(r,a.token,{configuration:e,scope:this.scope}),n.reportInfo(z.UNNAMED,"Successfully logged in")})).exitCode()}};mm.paths=[["npm","login"]],mm.usage=ye.Usage({category:"Npm-related commands",description:"store new login info to access the npm registry",details:"\n This command will ask you for your username, password, and 2FA One-Time-Password (when it applies). It will then modify your local configuration (in your home folder, never in the project itself) to reference the new tokens thus generated.\n\n Adding the `-s,--scope` flag will cause the authentication to be done against whatever registry is configured for the associated scope (see also `npmScopes`).\n\n Adding the `--publish` flag will cause the authentication to be done against the registry used when publishing the package (see also `publishConfig.registry` and `npmPublishRegistry`).\n ",examples:[["Login to the default registry","yarn npm login"],["Login to the registry linked to the @my-scope registry","yarn npm login --scope my-scope"],["Login to the publish registry for the current package","yarn npm login --publish"]]});var Lge=mm;async function SQ({scope:t,publish:e,configuration:r,cwd:i}){return t&&e?gr.getScopeRegistry(t,{configuration:r,type:gr.RegistryType.PUBLISH_REGISTRY}):t?gr.getScopeRegistry(t,{configuration:r}):e?gr.getPublishRegistry((await rf(r,i)).manifest,{configuration:r}):gr.getDefaultRegistry({configuration:r})}async function r_e(t,e,{configuration:r,scope:i}){let n=o=>a=>{let l=de.isIndexableObject(a)?a:{},c=l[o],u=de.isIndexableObject(c)?c:{};return _(P({},l),{[o]:_(P({},u),{npmAuthToken:e})})},s=i?{npmScopes:n(i)}:{npmRegistries:n(t)};return await fe.updateHomeConfiguration(s)}async function i_e({registry:t,report:e,stdin:r,stdout:i}){if(process.env.TEST_ENV)return{name:process.env.TEST_NPM_USER||"",password:process.env.TEST_NPM_PASSWORD||""};e.reportInfo(z.UNNAMED,`Logging in to ${t}`);let n=!1;t.match(/^https:\/\/npm\.pkg\.github\.com(\/|$)/)&&(e.reportInfo(z.UNNAMED,"You seem to be using the GitHub Package Registry. Tokens must be generated with the 'repo', 'write:packages', and 'read:packages' permissions."),n=!0),e.reportSeparator();let{username:s,password:o}=await(0,Nge.prompt)([{type:"input",name:"username",message:"Username:",required:!0,onCancel:()=>process.exit(130),stdin:r,stdout:i},{type:"password",name:"password",message:n?"Token:":"Password:",required:!0,onCancel:()=>process.exit(130),stdin:r,stdout:i}]);return e.reportSeparator(),{name:s,password:o}}var Ff=new Set(["npmAuthIdent","npmAuthToken"]),Em=class extends Be{constructor(){super(...arguments);this.scope=Y.String("-s,--scope",{description:"Logout of the registry configured for a given scope"});this.publish=Y.Boolean("--publish",!1,{description:"Logout of the publish registry"});this.all=Y.Boolean("-A,--all",!1,{description:"Logout of all registries"})}async execute(){let e=await fe.find(this.context.cwd,this.context.plugins),r=async()=>{var l;let n=await SQ({configuration:e,cwd:this.context.cwd,publish:this.publish,scope:this.scope}),s=await fe.find(this.context.cwd,this.context.plugins),o=S.makeIdent((l=this.scope)!=null?l:null,"pkg");return!gr.getAuthConfiguration(n,{configuration:s,ident:o}).get("npmAuthToken")};return(await Fe.start({configuration:e,stdout:this.context.stdout},async n=>{if(this.all&&(await n_e(),n.reportInfo(z.UNNAMED,"Successfully logged out from everything")),this.scope){await Tge("npmScopes",this.scope),await r()?n.reportInfo(z.UNNAMED,`Successfully logged out from ${this.scope}`):n.reportWarning(z.UNNAMED,"Scope authentication settings removed, but some other ones settings still apply to it");return}let s=await SQ({configuration:e,cwd:this.context.cwd,publish:this.publish});await Tge("npmRegistries",s),await r()?n.reportInfo(z.UNNAMED,`Successfully logged out from ${s}`):n.reportWarning(z.UNNAMED,"Registry authentication settings removed, but some other ones settings still apply to it")})).exitCode()}};Em.paths=[["npm","logout"]],Em.usage=ye.Usage({category:"Npm-related commands",description:"logout of the npm registry",details:"\n This command will log you out by modifying your local configuration (in your home folder, never in the project itself) to delete all credentials linked to a registry.\n\n Adding the `-s,--scope` flag will cause the deletion to be done against whatever registry is configured for the associated scope (see also `npmScopes`).\n\n Adding the `--publish` flag will cause the deletion to be done against the registry used when publishing the package (see also `publishConfig.registry` and `npmPublishRegistry`).\n\n Adding the `-A,--all` flag will cause the deletion to be done against all registries and scopes.\n ",examples:[["Logout of the default registry","yarn npm logout"],["Logout of the @my-scope scope","yarn npm logout --scope my-scope"],["Logout of the publish registry for the current package","yarn npm logout --publish"],["Logout of all registries","yarn npm logout --all"]]});var Mge=Em;function s_e(t,e){let r=t[e];if(!de.isIndexableObject(r))return!1;let i=new Set(Object.keys(r));if([...Ff].every(s=>!i.has(s)))return!1;for(let s of Ff)i.delete(s);if(i.size===0)return t[e]=void 0,!0;let n=P({},r);for(let s of Ff)delete n[s];return t[e]=n,!0}async function n_e(){let t=e=>{let r=!1,i=de.isIndexableObject(e)?P({},e):{};i.npmAuthToken&&(delete i.npmAuthToken,r=!0);for(let n of Object.keys(i))s_e(i,n)&&(r=!0);if(Object.keys(i).length!==0)return r?i:e};return await fe.updateHomeConfiguration({npmRegistries:t,npmScopes:t})}async function Tge(t,e){return await fe.updateHomeConfiguration({[t]:r=>{let i=de.isIndexableObject(r)?r:{};if(!Object.prototype.hasOwnProperty.call(i,e))return r;let n=i[e],s=de.isIndexableObject(n)?n:{},o=new Set(Object.keys(s));if([...Ff].every(l=>!o.has(l)))return r;for(let l of Ff)o.delete(l);if(o.size===0)return Object.keys(i).length===1?void 0:_(P({},i),{[e]:void 0});let a={};for(let l of Ff)a[l]=void 0;return _(P({},i),{[e]:P(P({},s),a)})}})}var Im=class extends Be{constructor(){super(...arguments);this.access=Y.String("--access",{description:"The access for the published package (public or restricted)"});this.tag=Y.String("--tag","latest",{description:"The tag on the registry that the package should be attached to"});this.tolerateRepublish=Y.Boolean("--tolerate-republish",!1,{description:"Warn and exit when republishing an already existing version of a package"})}async execute(){let e=await fe.find(this.context.cwd,this.context.plugins),{project:r,workspace:i}=await Ke.find(e,this.context.cwd);if(!i)throw new rt(r.cwd,this.context.cwd);if(i.manifest.private)throw new me("Private workspaces cannot be published");if(i.manifest.name===null||i.manifest.version===null)throw new me("Workspaces must have valid names and versions to be published on an external registry");await r.restoreInstallState();let n=i.manifest.name,s=i.manifest.version,o=gr.getPublishRegistry(i.manifest,{configuration:e});return(await Fe.start({configuration:e,stdout:this.context.stdout},async l=>{var c,u;if(this.tolerateRepublish)try{let g=await Lt.get(Lt.getIdentUrl(n),{configuration:e,registry:o,ident:n,jsonResponse:!0});if(!Object.prototype.hasOwnProperty.call(g,"versions"))throw new nt(z.REMOTE_INVALID,'Registry returned invalid data for - missing "versions" field');if(Object.prototype.hasOwnProperty.call(g.versions,s)){l.reportWarning(z.UNNAMED,`Registry already knows about version ${s}; skipping.`);return}}catch(g){if(((u=(c=g.originalError)==null?void 0:c.response)==null?void 0:u.statusCode)!==404)throw g}await Kt.maybeExecuteWorkspaceLifecycleScript(i,"prepublish",{report:l}),await za.prepareForPack(i,{report:l},async()=>{let g=await za.genPackList(i);for(let m of g)l.reportInfo(null,m);let f=await za.genPackStream(i,g),h=await de.bufferStream(f),p=await Rf.getGitHead(i.cwd),d=await Rf.makePublishBody(i,h,{access:this.access,tag:this.tag,registry:o,gitHead:p});await Lt.put(Lt.getIdentUrl(n),d,{configuration:e,registry:o,ident:n,jsonResponse:!0})}),l.reportInfo(z.UNNAMED,"Package archive published")})).exitCode()}};Im.paths=[["npm","publish"]],Im.usage=ye.Usage({category:"Npm-related commands",description:"publish the active workspace to the npm registry",details:'\n This command will pack the active workspace into a fresh archive and upload it to the npm registry.\n\n The package will by default be attached to the `latest` tag on the registry, but this behavior can be overriden by using the `--tag` option.\n\n Note that for legacy reasons scoped packages are by default published with an access set to `restricted` (aka "private packages"). This requires you to register for a paid npm plan. In case you simply wish to publish a public scoped package to the registry (for free), just add the `--access public` flag. This behavior can be enabled by default through the `npmPublishAccess` settings.\n ',examples:[["Publish the active workspace","yarn npm publish"]]});var Oge=Im;var Uge=ie(Or());var ym=class extends Be{constructor(){super(...arguments);this.json=Y.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.package=Y.String({required:!1})}async execute(){let e=await fe.find(this.context.cwd,this.context.plugins),{project:r,workspace:i}=await Ke.find(e,this.context.cwd),n;if(typeof this.package!="undefined")n=S.parseIdent(this.package);else{if(!i)throw new rt(r.cwd,this.context.cwd);if(!i.manifest.name)throw new me(`Missing 'name' field in ${M.fromPortablePath(v.join(i.cwd,wt.manifest))}`);n=i.manifest.name}let s=await wm(n,e),a={children:de.sortMap(Object.entries(s),([l])=>l).map(([l,c])=>({value:ue.tuple(ue.Type.RESOLUTION,{descriptor:S.makeDescriptor(n,l),locator:S.makeLocator(n,c)})}))};return Hs.emitTree(a,{configuration:e,json:this.json,stdout:this.context.stdout})}};ym.paths=[["npm","tag","list"]],ym.usage=ye.Usage({category:"Npm-related commands",description:"list all dist-tags of a package",details:` - This command will list all tags of a package from the npm registry. - - If the package is not specified, Yarn will default to the current workspace. - `,examples:[["List all tags of package `my-pkg`","yarn npm tag list my-pkg"]]});var Kge=ym;async function wm(t,e){let r=`/-/package${Lt.getIdentUrl(t)}/dist-tags`;return Lt.get(r,{configuration:e,ident:t,jsonResponse:!0,customErrorMessage:Lt.customPackageError})}var Bm=class extends Be{constructor(){super(...arguments);this.package=Y.String();this.tag=Y.String()}async execute(){let e=await fe.find(this.context.cwd,this.context.plugins),{project:r,workspace:i}=await Ke.find(e,this.context.cwd);if(!i)throw new rt(r.cwd,this.context.cwd);let n=S.parseDescriptor(this.package,!0),s=n.range;if(!Uge.default.valid(s))throw new me(`The range ${ue.pretty(e,n.range,ue.Type.RANGE)} must be a valid semver version`);let o=gr.getPublishRegistry(i.manifest,{configuration:e}),a=ue.pretty(e,n,ue.Type.IDENT),l=ue.pretty(e,s,ue.Type.RANGE),c=ue.pretty(e,this.tag,ue.Type.CODE);return(await Fe.start({configuration:e,stdout:this.context.stdout},async g=>{let f=await wm(n,e);Object.prototype.hasOwnProperty.call(f,this.tag)&&f[this.tag]===s&&g.reportWarning(z.UNNAMED,`Tag ${c} is already set to version ${l}`);let h=`/-/package${Lt.getIdentUrl(n)}/dist-tags/${encodeURIComponent(this.tag)}`;await Lt.put(h,s,{configuration:e,registry:o,ident:n,jsonRequest:!0,jsonResponse:!0}),g.reportInfo(z.UNNAMED,`Tag ${c} added to version ${l} of package ${a}`)})).exitCode()}};Bm.paths=[["npm","tag","add"]],Bm.usage=ye.Usage({category:"Npm-related commands",description:"add a tag for a specific version of a package",details:` - This command will add a tag to the npm registry for a specific version of a package. If the tag already exists, it will be overwritten. - `,examples:[["Add a `beta` tag for version `2.3.4-beta.4` of package `my-pkg`","yarn npm tag add my-pkg@2.3.4-beta.4 beta"]]});var Hge=Bm;var Qm=class extends Be{constructor(){super(...arguments);this.package=Y.String();this.tag=Y.String()}async execute(){if(this.tag==="latest")throw new me("The 'latest' tag cannot be removed.");let e=await fe.find(this.context.cwd,this.context.plugins),{project:r,workspace:i}=await Ke.find(e,this.context.cwd);if(!i)throw new rt(r.cwd,this.context.cwd);let n=S.parseIdent(this.package),s=gr.getPublishRegistry(i.manifest,{configuration:e}),o=ue.pretty(e,this.tag,ue.Type.CODE),a=ue.pretty(e,n,ue.Type.IDENT),l=await wm(n,e);if(!Object.prototype.hasOwnProperty.call(l,this.tag))throw new me(`${o} is not a tag of package ${a}`);return(await Fe.start({configuration:e,stdout:this.context.stdout},async u=>{let g=`/-/package${Lt.getIdentUrl(n)}/dist-tags/${encodeURIComponent(this.tag)}`;await Lt.del(g,{configuration:e,registry:s,ident:n,jsonResponse:!0}),u.reportInfo(z.UNNAMED,`Tag ${o} removed from package ${a}`)})).exitCode()}};Qm.paths=[["npm","tag","remove"]],Qm.usage=ye.Usage({category:"Npm-related commands",description:"remove a tag from a package",details:` - This command will remove a tag from a package from the npm registry. - `,examples:[["Remove the `beta` tag from package `my-pkg`","yarn npm tag remove my-pkg beta"]]});var Gge=Qm;var bm=class extends Be{constructor(){super(...arguments);this.scope=Y.String("-s,--scope",{description:"Print username for the registry configured for a given scope"});this.publish=Y.Boolean("--publish",!1,{description:"Print username for the publish registry"})}async execute(){let e=await fe.find(this.context.cwd,this.context.plugins),r;return this.scope&&this.publish?r=gr.getScopeRegistry(this.scope,{configuration:e,type:gr.RegistryType.PUBLISH_REGISTRY}):this.scope?r=gr.getScopeRegistry(this.scope,{configuration:e}):this.publish?r=gr.getPublishRegistry((await rf(e,this.context.cwd)).manifest,{configuration:e}):r=gr.getDefaultRegistry({configuration:e}),(await Fe.start({configuration:e,stdout:this.context.stdout},async n=>{var o,a;let s;try{s=await Lt.get("/-/whoami",{configuration:e,registry:r,authType:Lt.AuthType.ALWAYS_AUTH,jsonResponse:!0,ident:this.scope?S.makeIdent(this.scope,""):void 0})}catch(l){if(((o=l.response)==null?void 0:o.statusCode)===401||((a=l.response)==null?void 0:a.statusCode)===403){n.reportError(z.AUTHENTICATION_INVALID,"Authentication failed - your credentials may have expired");return}else throw l}n.reportInfo(z.UNNAMED,s.username)})).exitCode()}};bm.paths=[["npm","whoami"]],bm.usage=ye.Usage({category:"Npm-related commands",description:"display the name of the authenticated user",details:"\n Print the username associated with the current authentication settings to the standard output.\n\n When using `-s,--scope`, the username printed will be the one that matches the authentication settings of the registry associated with the given scope (those settings can be overriden using the `npmRegistries` map, and the registry associated with the scope is configured via the `npmScopes` map).\n\n When using `--publish`, the registry we'll select will by default be the one used when publishing packages (`publishConfig.registry` or `npmPublishRegistry` if available, otherwise we'll fallback to the regular `npmRegistryServer`).\n ",examples:[["Print username for the default registry","yarn npm whoami"],["Print username for the registry on a given scope","yarn npm whoami --scope company"]]});var jge=bm;var o_e={configuration:{npmPublishAccess:{description:"Default access of the published packages",type:ge.STRING,default:null}},commands:[Rge,Fge,Lge,Mge,Oge,Hge,Kge,Gge,jge]},a_e=o_e;var NM={};it(NM,{default:()=>B_e,patchUtils:()=>SM});var SM={};it(SM,{applyPatchFile:()=>PQ,diffFolders:()=>DM,extractPackageToDisk:()=>PM,extractPatchFlags:()=>Xge,isParentRequired:()=>kM,loadPatchFiles:()=>km,makeDescriptor:()=>I_e,makeLocator:()=>xM,parseDescriptor:()=>Sm,parseLocator:()=>xm,parsePatchFile:()=>kQ});var vm=class extends Error{constructor(e,r){super(`Cannot apply hunk #${e+1}`);this.hunk=r}};var A_e=/^@@ -(\d+)(,(\d+))? \+(\d+)(,(\d+))? @@.*/;function Nf(t){return v.relative(Se.root,v.resolve(Se.root,M.toPortablePath(t)))}function l_e(t){let e=t.trim().match(A_e);if(!e)throw new Error(`Bad header line: '${t}'`);return{original:{start:Math.max(Number(e[1]),1),length:Number(e[3]||1)},patched:{start:Math.max(Number(e[4]),1),length:Number(e[6]||1)}}}var c_e=420,u_e=493,Lr;(function(i){i.Context="context",i.Insertion="insertion",i.Deletion="deletion"})(Lr||(Lr={}));var Yge=()=>({semverExclusivity:null,diffLineFromPath:null,diffLineToPath:null,oldMode:null,newMode:null,deletedFileMode:null,newFileMode:null,renameFrom:null,renameTo:null,beforeHash:null,afterHash:null,fromPath:null,toPath:null,hunks:null}),g_e=t=>({header:l_e(t),parts:[]}),f_e={["@"]:"header",["-"]:Lr.Deletion,["+"]:Lr.Insertion,[" "]:Lr.Context,["\\"]:"pragma",undefined:Lr.Context};function p_e(t){let e=[],r=Yge(),i="parsing header",n=null,s=null;function o(){n&&(s&&(n.parts.push(s),s=null),r.hunks.push(n),n=null)}function a(){o(),e.push(r),r=Yge()}for(let l=0;l0?"patch":"mode change",B=null;switch(I){case"rename":{if(!u||!g)throw new Error("Bad parser state: rename from & to not given");e.push({type:"rename",semverExclusivity:i,fromPath:Nf(u),toPath:Nf(g)}),B=g}break;case"file deletion":{let b=n||p;if(!b)throw new Error("Bad parse state: no path given for file deletion");e.push({type:"file deletion",semverExclusivity:i,hunk:m&&m[0]||null,path:Nf(b),mode:xQ(l),hash:f})}break;case"file creation":{let b=s||d;if(!b)throw new Error("Bad parse state: no path given for file creation");e.push({type:"file creation",semverExclusivity:i,hunk:m&&m[0]||null,path:Nf(b),mode:xQ(c),hash:h})}break;case"patch":case"mode change":B=d||s;break;default:de.assertNever(I);break}B&&o&&a&&o!==a&&e.push({type:"mode change",semverExclusivity:i,path:Nf(B),oldMode:xQ(o),newMode:xQ(a)}),B&&m&&m.length&&e.push({type:"patch",semverExclusivity:i,path:Nf(B),hunks:m,beforeHash:f,afterHash:h})}if(e.length===0)throw new Error("Unable to parse patch file: No changes found. Make sure the patch is a valid UTF8 encoded string");return e}function xQ(t){let e=parseInt(t,8)&511;if(e!==c_e&&e!==u_e)throw new Error(`Unexpected file mode string: ${t}`);return e}function kQ(t){let e=t.split(/\n/g);return e[e.length-1]===""&&e.pop(),d_e(p_e(e))}function h_e(t){let e=0,r=0;for(let{type:i,lines:n}of t.parts)switch(i){case Lr.Context:r+=n.length,e+=n.length;break;case Lr.Deletion:e+=n.length;break;case Lr.Insertion:r+=n.length;break;default:de.assertNever(i);break}if(e!==t.header.original.length||r!==t.header.patched.length){let i=n=>n<0?n:`+${n}`;throw new Error(`hunk header integrity check failed (expected @@ ${i(t.header.original.length)} ${i(t.header.patched.length)} @@, got @@ ${i(e)} ${i(r)} @@)`)}}async function Lf(t,e,r){let i=await t.lstatPromise(e),n=await r();if(typeof n!="undefined"&&(e=n),t.lutimesPromise)await t.lutimesPromise(e,i.atime,i.mtime);else if(!i.isSymbolicLink())await t.utimesPromise(e,i.atime,i.mtime);else throw new Error("Cannot preserve the time values of a symlink")}async function PQ(t,{baseFs:e=new Wt,dryRun:r=!1,version:i=null}={}){for(let n of t)if(!(n.semverExclusivity!==null&&i!==null&&!qt.satisfiesWithPrereleases(i,n.semverExclusivity)))switch(n.type){case"file deletion":if(r){if(!e.existsSync(n.path))throw new Error(`Trying to delete a file that doesn't exist: ${n.path}`)}else await Lf(e,v.dirname(n.path),async()=>{await e.unlinkPromise(n.path)});break;case"rename":if(r){if(!e.existsSync(n.fromPath))throw new Error(`Trying to move a file that doesn't exist: ${n.fromPath}`)}else await Lf(e,v.dirname(n.fromPath),async()=>{await Lf(e,v.dirname(n.toPath),async()=>{await Lf(e,n.fromPath,async()=>(await e.movePromise(n.fromPath,n.toPath),n.toPath))})});break;case"file creation":if(r){if(e.existsSync(n.path))throw new Error(`Trying to create a file that already exists: ${n.path}`)}else{let s=n.hunk?n.hunk.parts[0].lines.join(` -`)+(n.hunk.parts[0].noNewlineAtEndOfFile?"":` -`):"";await e.mkdirpPromise(v.dirname(n.path),{chmod:493,utimes:[mr.SAFE_TIME,mr.SAFE_TIME]}),await e.writeFilePromise(n.path,s,{mode:n.mode}),await e.utimesPromise(n.path,mr.SAFE_TIME,mr.SAFE_TIME)}break;case"patch":await Lf(e,n.path,async()=>{await C_e(n,{baseFs:e,dryRun:r})});break;case"mode change":{let o=(await e.statPromise(n.path)).mode;if(qge(n.newMode)!==qge(o))continue;await Lf(e,n.path,async()=>{await e.chmodPromise(n.path,n.newMode)})}break;default:de.assertNever(n);break}}function qge(t){return(t&64)>0}function Jge(t){return t.replace(/\s+$/,"")}function m_e(t,e){return Jge(t)===Jge(e)}async function C_e({hunks:t,path:e},{baseFs:r,dryRun:i=!1}){let n=await r.statSync(e).mode,o=(await r.readFileSync(e,"utf8")).split(/\n/),a=[],l=0,c=0;for(let g of t){let f=Math.max(c,g.header.patched.start+l),h=Math.max(0,f-c),p=Math.max(0,o.length-f-g.header.original.length),d=Math.max(h,p),m=0,I=0,B=null;for(;m<=d;){if(m<=h&&(I=f-m,B=Wge(g,o,I),B!==null)){m=-m;break}if(m<=p&&(I=f+m,B=Wge(g,o,I),B!==null))break;m+=1}if(B===null)throw new vm(t.indexOf(g),g);a.push(B),l+=m,c=I+g.header.original.length}if(i)return;let u=0;for(let g of a)for(let f of g)switch(f.type){case"splice":{let h=f.index+u;o.splice(h,f.numToDelete,...f.linesToInsert),u+=f.linesToInsert.length-f.numToDelete}break;case"pop":o.pop();break;case"push":o.push(f.line);break;default:de.assertNever(f);break}await r.writeFilePromise(e,o.join(` -`),{mode:n})}function Wge(t,e,r){let i=[];for(let n of t.parts)switch(n.type){case Lr.Context:case Lr.Deletion:{for(let s of n.lines){let o=e[r];if(o==null||!m_e(o,s))return null;r+=1}n.type===Lr.Deletion&&(i.push({type:"splice",index:r-n.lines.length,numToDelete:n.lines.length,linesToInsert:[]}),n.noNewlineAtEndOfFile&&i.push({type:"push",line:""}))}break;case Lr.Insertion:i.push({type:"splice",index:r,numToDelete:0,linesToInsert:n.lines}),n.noNewlineAtEndOfFile&&i.push({type:"pop"});break;default:de.assertNever(n.type);break}return i}var E_e=/^builtin<([^>]+)>$/;function zge(t,e){let{source:r,selector:i,params:n}=S.parseRange(t);if(r===null)throw new Error("Patch locators must explicitly define their source");let s=i?i.split(/&/).map(c=>M.toPortablePath(c)):[],o=n&&typeof n.locator=="string"?S.parseLocator(n.locator):null,a=n&&typeof n.version=="string"?n.version:null,l=e(r);return{parentLocator:o,sourceItem:l,patchPaths:s,sourceVersion:a}}function Sm(t){let i=zge(t.range,S.parseDescriptor),{sourceItem:e}=i,r=qr(i,["sourceItem"]);return _(P({},r),{sourceDescriptor:e})}function xm(t){let i=zge(t.reference,S.parseLocator),{sourceItem:e}=i,r=qr(i,["sourceItem"]);return _(P({},r),{sourceLocator:e})}function Vge({parentLocator:t,sourceItem:e,patchPaths:r,sourceVersion:i,patchHash:n},s){let o=t!==null?{locator:S.stringifyLocator(t)}:{},a=typeof i!="undefined"?{version:i}:{},l=typeof n!="undefined"?{hash:n}:{};return S.makeRange({protocol:"patch:",source:s(e),selector:r.join("&"),params:P(P(P({},a),l),o)})}function I_e(t,{parentLocator:e,sourceDescriptor:r,patchPaths:i}){return S.makeLocator(t,Vge({parentLocator:e,sourceItem:r,patchPaths:i},S.stringifyDescriptor))}function xM(t,{parentLocator:e,sourcePackage:r,patchPaths:i,patchHash:n}){return S.makeLocator(t,Vge({parentLocator:e,sourceItem:r,sourceVersion:r.version,patchPaths:i,patchHash:n},S.stringifyLocator))}function _ge({onAbsolute:t,onRelative:e,onBuiltin:r},i){i.startsWith("~")&&(i=i.slice(1));let s=i.match(E_e);return s!==null?r(s[1]):v.isAbsolute(i)?t(i):e(i)}function Xge(t){let e=t.startsWith("~");return e&&(t=t.slice(1)),{optional:e}}function kM(t){return _ge({onAbsolute:()=>!1,onRelative:()=>!0,onBuiltin:()=>!1},t)}async function km(t,e,r){let i=t!==null?await r.fetcher.fetch(t,r):null,n=i&&i.localPath?{packageFs:new Ft(Se.root),prefixPath:v.relative(Se.root,i.localPath)}:i;i&&i!==n&&i.releaseFs&&i.releaseFs();let s=await de.releaseAfterUseAsync(async()=>await Promise.all(e.map(async o=>{let a=Xge(o),l=await _ge({onAbsolute:async()=>await T.readFilePromise(o,"utf8"),onRelative:async()=>{if(n===null)throw new Error("Assertion failed: The parent locator should have been fetched");return await n.packageFs.readFilePromise(v.join(n.prefixPath,o),"utf8")},onBuiltin:async c=>await r.project.configuration.firstHook(u=>u.getBuiltinPatch,r.project,c)},o);return _(P({},a),{source:l})})));for(let o of s)typeof o.source=="string"&&(o.source=o.source.replace(/\r\n?/g,` -`));return s}async function PM(t,{cache:e,project:r}){let i=r.storedPackages.get(t.locatorHash);if(typeof i=="undefined")throw new Error("Assertion failed: Expected the package to be registered");let n=r.storedChecksums,s=new ei,o=r.configuration.makeFetcher(),a=await o.fetch(t,{cache:e,project:r,fetcher:o,checksums:n,report:s}),l=await T.mktempPromise(),c=v.join(l,"source"),u=v.join(l,"user"),g=v.join(l,".yarn-patch.json");return await Promise.all([T.copyPromise(c,a.prefixPath,{baseFs:a.packageFs}),T.copyPromise(u,a.prefixPath,{baseFs:a.packageFs}),T.writeJsonPromise(g,{locator:S.stringifyLocator(t),version:i.version})]),T.detachTemp(l),u}async function DM(t,e){let r=M.fromPortablePath(t).replace(/\\/g,"/"),i=M.fromPortablePath(e).replace(/\\/g,"/"),{stdout:n,stderr:s}=await hr.execvp("git",["-c","core.safecrlf=false","diff","--src-prefix=a/","--dst-prefix=b/","--ignore-cr-at-eol","--full-index","--no-index","--text",r,i],{cwd:M.toPortablePath(process.cwd()),env:_(P({},process.env),{GIT_CONFIG_NOSYSTEM:"1",HOME:"",XDG_CONFIG_HOME:"",USERPROFILE:""})});if(s.length>0)throw new Error(`Unable to diff directories. Make sure you have a recent version of 'git' available in PATH. -The following error was reported by 'git': -${s}`);let o=r.startsWith("/")?a=>a.slice(1):a=>a;return n.replace(new RegExp(`(a|b)(${de.escapeRegExp(`/${o(r)}/`)})`,"g"),"$1/").replace(new RegExp(`(a|b)${de.escapeRegExp(`/${o(i)}/`)}`,"g"),"$1/").replace(new RegExp(de.escapeRegExp(`${r}/`),"g"),"").replace(new RegExp(de.escapeRegExp(`${i}/`),"g"),"")}function Zge(t,{configuration:e,report:r}){for(let i of t.parts)for(let n of i.lines)switch(i.type){case Lr.Context:r.reportInfo(null,` ${ue.pretty(e,n,"grey")}`);break;case Lr.Deletion:r.reportError(z.FROZEN_LOCKFILE_EXCEPTION,`- ${ue.pretty(e,n,ue.Type.REMOVED)}`);break;case Lr.Insertion:r.reportError(z.FROZEN_LOCKFILE_EXCEPTION,`+ ${ue.pretty(e,n,ue.Type.ADDED)}`);break;default:de.assertNever(i.type)}}var RM=class{supports(e,r){return!!e.reference.startsWith("patch:")}getLocalPath(e,r){return null}async fetch(e,r){let i=r.checksums.get(e.locatorHash)||null,[n,s,o]=await r.cache.fetchPackageFromCache(e,i,P({onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${S.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from the disk`),loader:()=>this.patchPackage(e,r),skipIntegrityCheck:r.skipIntegrityCheck},r.cacheOptions));return{packageFs:n,releaseFs:s,prefixPath:S.getIdentVendorPath(e),localPath:this.getLocalPath(e,r),checksum:o}}async patchPackage(e,r){let{parentLocator:i,sourceLocator:n,sourceVersion:s,patchPaths:o}=xm(e),a=await km(i,o,r),l=await T.mktempPromise(),c=v.join(l,"current.zip"),u=await r.fetcher.fetch(n,r),g=S.getIdentVendorPath(e),f=await $i(),h=new Jr(c,{libzip:f,create:!0,level:r.project.configuration.get("compressionLevel")});await de.releaseAfterUseAsync(async()=>{await h.copyPromise(g,u.prefixPath,{baseFs:u.packageFs,stableSort:!0})},u.releaseFs),h.saveAndClose();for(let{source:p,optional:d}of a){if(p===null)continue;let m=new Jr(c,{libzip:f,level:r.project.configuration.get("compressionLevel")}),I=new Ft(v.resolve(Se.root,g),{baseFs:m});try{await PQ(kQ(p),{baseFs:I,version:s})}catch(B){if(!(B instanceof vm))throw B;let b=r.project.configuration.get("enableInlineHunks"),R=!b&&!d?" (set enableInlineHunks for details)":"",H=`${S.prettyLocator(r.project.configuration,e)}: ${B.message}${R}`,L=K=>{!b||Zge(B.hunk,{configuration:r.project.configuration,report:K})};if(m.discardAndClose(),d){r.report.reportWarningOnce(z.PATCH_HUNK_FAILED,H,{reportExtra:L});continue}else throw new nt(z.PATCH_HUNK_FAILED,H,L)}m.saveAndClose()}return new Jr(c,{libzip:f,level:r.project.configuration.get("compressionLevel")})}};var y_e=3,FM=class{supportsDescriptor(e,r){return!!e.range.startsWith("patch:")}supportsLocator(e,r){return!!e.reference.startsWith("patch:")}shouldPersistResolution(e,r){return!1}bindDescriptor(e,r,i){let{patchPaths:n}=Sm(e);return n.every(s=>!kM(s))?e:S.bindDescriptor(e,{locator:S.stringifyLocator(r)})}getResolutionDependencies(e,r){let{sourceDescriptor:i}=Sm(e);return[i]}async getCandidates(e,r,i){if(!i.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let{parentLocator:n,sourceDescriptor:s,patchPaths:o}=Sm(e),a=await km(n,o,i.fetchOptions),l=r.get(s.descriptorHash);if(typeof l=="undefined")throw new Error("Assertion failed: The dependency should have been resolved");let c=mn.makeHash(`${y_e}`,...a.map(u=>JSON.stringify(u))).slice(0,6);return[xM(e,{parentLocator:n,sourcePackage:l,patchPaths:o,patchHash:c})]}async getSatisfying(e,r,i){return null}async resolve(e,r){let{sourceLocator:i}=xm(e),n=await r.resolver.resolve(i,r);return P(P({},n),e)}};var Pm=class extends Be{constructor(){super(...arguments);this.save=Y.Boolean("-s,--save",!1,{description:"Add the patch to your resolution entries"});this.patchFolder=Y.String()}async execute(){let e=await fe.find(this.context.cwd,this.context.plugins),{project:r,workspace:i}=await Ke.find(e,this.context.cwd);if(!i)throw new rt(r.cwd,this.context.cwd);await r.restoreInstallState();let n=v.resolve(this.context.cwd,M.toPortablePath(this.patchFolder)),s=v.join(n,"../source"),o=v.join(n,"../.yarn-patch.json");if(!T.existsSync(s))throw new me("The argument folder didn't get created by 'yarn patch'");let a=await DM(s,n),l=await T.readJsonPromise(o),c=S.parseLocator(l.locator,!0);if(!r.storedPackages.has(c.locatorHash))throw new me("No package found in the project for the given locator");if(!this.save){this.context.stdout.write(a);return}let u=e.get("patchFolder"),g=v.join(u,S.slugifyLocator(c));await T.mkdirPromise(u,{recursive:!0}),await T.writeFilePromise(g,a);let f=v.relative(r.cwd,g);r.topLevelWorkspace.manifest.resolutions.push({pattern:{descriptor:{fullName:S.stringifyIdent(c),description:l.version}},reference:`patch:${S.stringifyLocator(c)}#${f}`}),await r.persist()}};Pm.paths=[["patch-commit"]],Pm.usage=ye.Usage({description:"generate a patch out of a directory",details:"\n This will print a patchfile on stdout based on the diff between the folder passed in and the original version of the package. Such file is suitable for consumption with the `patch:` protocol.\n\n Only folders generated by `yarn patch` are accepted as valid input for `yarn patch-commit`.\n "});var $ge=Pm;var Dm=class extends Be{constructor(){super(...arguments);this.json=Y.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.package=Y.String()}async execute(){let e=await fe.find(this.context.cwd,this.context.plugins),{project:r,workspace:i}=await Ke.find(e,this.context.cwd),n=await Qt.find(e);if(!i)throw new rt(r.cwd,this.context.cwd);await r.restoreInstallState();let s=S.parseLocator(this.package);if(s.reference==="unknown"){let o=de.mapAndFilter([...r.storedPackages.values()],a=>a.identHash!==s.identHash?de.mapAndFilter.skip:S.isVirtualLocator(a)?de.mapAndFilter.skip:a);if(o.length===0)throw new me("No package found in the project for the given locator");if(o.length>1)throw new me(`Multiple candidate packages found; explicitly choose one of them (use \`yarn why \` to get more information as to who depends on them): -${o.map(a=>` -- ${S.prettyLocator(e,a)}`).join("")}`);s=o[0]}if(!r.storedPackages.has(s.locatorHash))throw new me("No package found in the project for the given locator");await Fe.start({configuration:e,json:this.json,stdout:this.context.stdout},async o=>{let a=await PM(s,{cache:n,project:r});o.reportJson({locator:S.stringifyLocator(s),path:M.fromPortablePath(a)}),o.reportInfo(z.UNNAMED,`Package ${S.prettyLocator(e,s)} got extracted with success!`),o.reportInfo(z.UNNAMED,`You can now edit the following folder: ${ue.pretty(e,M.fromPortablePath(a),"magenta")}`),o.reportInfo(z.UNNAMED,`Once you are done run ${ue.pretty(e,`yarn patch-commit ${process.platform==="win32"?'"':""}${M.fromPortablePath(a)}${process.platform==="win32"?'"':""}`,"cyan")} and Yarn will store a patchfile based on your changes.`)})}};Dm.paths=[["patch"]],Dm.usage=ye.Usage({description:"prepare a package for patching",details:'\n This command will cause a package to be extracted in a temporary directory (under a folder named "patch-workdir"). This folder will be editable at will; running `yarn patch` inside it will then cause Yarn to generate a patchfile and register it into your top-level manifest (cf the `patch:` protocol).\n '});var efe=Dm;var w_e={configuration:{enableInlineHunks:{description:"If true, the installs will print unmatched patch hunks",type:ge.BOOLEAN,default:!1},patchFolder:{description:"Folder where the patch files must be written",type:ge.ABSOLUTE_PATH,default:"./.yarn/patches"}},commands:[$ge,efe],fetchers:[RM],resolvers:[FM]},B_e=w_e;var TM={};it(TM,{default:()=>S_e});var tfe=ie(Wp()),LM=class{supportsPackage(e,r){return r.project.configuration.get("nodeLinker")==="pnpm"}async findPackageLocation(e,r){return nfe(e,{project:r.project})}async findPackageLocator(e,r){let i=ife(),n=r.project.installersCustomData.get(i);if(!n)throw new me(`The project in ${ue.pretty(r.project.configuration,`${r.project.cwd}/package.json`,ue.Type.PATH)} doesn't seem to have been installed - running an install there might help`);let s=e.match(/(^.*\/node_modules\/(@[^/]*\/)?[^/]+)(\/.*$)/);if(s){let l=n.locatorByPath.get(s[1]);if(l)return l}let o=e,a=e;do{a=o,o=v.dirname(a);let l=n.locatorByPath.get(a);if(l)return l}while(o!==a);return null}makeInstaller(e){return new rfe(e)}},rfe=class{constructor(e){this.opts=e;this.asyncActions=new afe;this.packageLocations=new Map;this.customData={locatorByPath:new Map}}getCustomDataKey(){return ife()}attachCustomData(e){this.customData=e}async installPackage(e,r,i){switch(e.linkType){case gt.SOFT:return this.installPackageSoft(e,r,i);case gt.HARD:return this.installPackageHard(e,r,i)}throw new Error("Assertion failed: Unsupported package link type")}async installPackageSoft(e,r,i){let n=v.resolve(r.packageFs.getRealPath(),r.prefixPath);return this.packageLocations.set(e.locatorHash,n),{packageLocation:n,buildDirective:null}}async installPackageHard(e,r,i){var u;let n=nfe(e,{project:this.opts.project});this.customData.locatorByPath.set(n,S.stringifyLocator(e)),this.packageLocations.set(e.locatorHash,n),i.holdFetchResult(this.asyncActions.set(e.locatorHash,async()=>{await T.mkdirPromise(n,{recursive:!0}),await T.copyPromise(n,r.prefixPath,{baseFs:r.packageFs,overwrite:!1})}));let o=S.isVirtualLocator(e)?S.devirtualizeLocator(e):e,a={manifest:(u=await Ze.tryFind(r.prefixPath,{baseFs:r.packageFs}))!=null?u:new Ze,misc:{hasBindingGyp:Ws.hasBindingGyp(r)}},l=this.opts.project.getDependencyMeta(o,e.version),c=Ws.extractBuildScripts(e,a,l,{configuration:this.opts.project.configuration,report:this.opts.report});return{packageLocation:n,buildDirective:c}}async attachInternalDependencies(e,r){this.opts.project.configuration.get("nodeLinker")==="pnpm"&&(!ofe(e,{project:this.opts.project})||this.asyncActions.reduce(e.locatorHash,async i=>{await i;let n=this.packageLocations.get(e.locatorHash);if(typeof n=="undefined")throw new Error(`Assertion failed: Expected the package to have been registered (${S.stringifyLocator(e)})`);let s=v.join(n,wt.nodeModules);r.length>0&&await T.mkdirpPromise(s);let o=await Q_e(s),a=[];for(let[l,c]of r){let u=c;ofe(c,{project:this.opts.project})||(this.opts.report.reportWarning(z.UNNAMED,"The pnpm linker doesn't support providing different versions to workspaces' peer dependencies"),u=S.devirtualizeLocator(c));let g=this.packageLocations.get(u.locatorHash);if(typeof g=="undefined")throw new Error(`Assertion failed: Expected the package to have been registered (${S.stringifyLocator(c)})`);let f=S.stringifyIdent(l),h=v.join(s,f),p=v.relative(v.dirname(h),g),d=o.get(f);o.delete(f),a.push(Promise.resolve().then(async()=>{if(d){if(d.isSymbolicLink()&&await T.readlinkPromise(h)===p)return;await T.removePromise(h)}await T.mkdirpPromise(v.dirname(h)),process.platform=="win32"?await T.symlinkPromise(g,h,"junction"):await T.symlinkPromise(p,h)}))}for(let l of o.keys())a.push(T.removePromise(v.join(s,l)));await Promise.all(a)}))}async attachExternalDependents(e,r){throw new Error("External dependencies haven't been implemented for the pnpm linker")}async finalizeInstall(){let e=sfe(this.opts.project),r=new Set;for(let s of this.packageLocations.values())r.add(v.basename(s));let i;try{i=await T.readdirPromise(e)}catch{i=[]}let n=[];for(let s of i)r.has(s)||n.push(T.removePromise(v.join(e,s)));await Promise.all(n),await this.asyncActions.wait()}};function ife(){return JSON.stringify({name:"PnpmInstaller",version:1})}function sfe(t){return v.join(t.cwd,wt.nodeModules,".store")}function nfe(t,{project:e}){let r=S.slugifyLocator(t);return v.join(sfe(e),r)}function ofe(t,{project:e}){return!S.isVirtualLocator(t)||!e.tryWorkspaceByLocator(t)}async function Q_e(t){let e=new Map,r=[];try{r=await T.readdirPromise(t,{withFileTypes:!0})}catch(i){if(i.code!=="ENOENT")throw i}try{for(let i of r)if(!i.name.startsWith("."))if(i.name.startsWith("@"))for(let n of await T.readdirPromise(v.join(t,i.name),{withFileTypes:!0}))e.set(`${i.name}/${n.name}`,n);else e.set(i.name,i)}catch(i){if(i.code!=="ENOENT")throw i}return e}function b_e(){let t,e;return{promise:new Promise((i,n)=>{t=i,e=n}),resolve:t,reject:e}}var afe=class{constructor(){this.deferred=new Map;this.promises=new Map;this.limit=(0,tfe.default)(10)}set(e,r){let i=this.deferred.get(e);typeof i=="undefined"&&this.deferred.set(e,i=b_e());let n=this.limit(()=>r());return this.promises.set(e,n),n.then(()=>{this.promises.get(e)===n&&i.resolve()},s=>{this.promises.get(e)===n&&i.reject(s)}),i.promise}reduce(e,r){var n;let i=(n=this.promises.get(e))!=null?n:Promise.resolve();this.set(e,()=>r(i))}async wait(){await Promise.all(this.promises.values())}};var v_e={linkers:[LM]},S_e=v_e;var F0=()=>({modules:new Map([["@yarnpkg/cli",iC],["@yarnpkg/core",Fd],["@yarnpkg/fslib",ch],["@yarnpkg/libzip",Fp],["@yarnpkg/parsers",Hp],["@yarnpkg/shell",jp],["clipanion",F$(vh)],["semver",x_e],["typanion",lu],["yup",k_e],["@yarnpkg/plugin-essentials",hL],["@yarnpkg/plugin-compat",mL],["@yarnpkg/plugin-dlx",EL],["@yarnpkg/plugin-file",xL],["@yarnpkg/plugin-git",fL],["@yarnpkg/plugin-github",PL],["@yarnpkg/plugin-http",FL],["@yarnpkg/plugin-init",ML],["@yarnpkg/plugin-link",GL],["@yarnpkg/plugin-nm",mT],["@yarnpkg/plugin-npm",yM],["@yarnpkg/plugin-npm-cli",vM],["@yarnpkg/plugin-pack",CM],["@yarnpkg/plugin-patch",NM],["@yarnpkg/plugin-pnp",oT],["@yarnpkg/plugin-pnpm",TM]]),plugins:new Set(["@yarnpkg/plugin-essentials","@yarnpkg/plugin-compat","@yarnpkg/plugin-dlx","@yarnpkg/plugin-file","@yarnpkg/plugin-git","@yarnpkg/plugin-github","@yarnpkg/plugin-http","@yarnpkg/plugin-init","@yarnpkg/plugin-link","@yarnpkg/plugin-nm","@yarnpkg/plugin-npm","@yarnpkg/plugin-npm-cli","@yarnpkg/plugin-pack","@yarnpkg/plugin-patch","@yarnpkg/plugin-pnp","@yarnpkg/plugin-pnpm"])});i0({binaryVersion:Zr||"",pluginConfiguration:F0()});})(); -/*! - * buildToken - * Builds OAuth token prefix (helper function) - * - * @name buildToken - * @function - * @param {GitUrl} obj The parsed Git url object. - * @return {String} token prefix - */ -/*! - * fill-range - * - * Copyright (c) 2014-present, Jon Schlinkert. - * Licensed under the MIT License. - */ -/*! - * is-extglob - * - * Copyright (c) 2014-2016, Jon Schlinkert. - * Licensed under the MIT License. - */ -/*! - * is-glob - * - * Copyright (c) 2014-2017, Jon Schlinkert. - * Released under the MIT License. - */ -/*! - * is-number - * - * Copyright (c) 2014-present, Jon Schlinkert. - * Released under the MIT License. - */ -/*! - * is-windows - * - * Copyright © 2015-2018, Jon Schlinkert. - * Released under the MIT License. - */ -/*! - * to-regex-range - * - * Copyright (c) 2015-present, Jon Schlinkert. - * Released under the MIT License. - */ diff --git a/tgui/.yarn/releases/yarn-4.1.1.cjs b/tgui/.yarn/releases/yarn-4.1.1.cjs new file mode 100644 index 000000000000..233bb7a3b2b6 --- /dev/null +++ b/tgui/.yarn/releases/yarn-4.1.1.cjs @@ -0,0 +1,893 @@ +#!/usr/bin/env node +/* eslint-disable */ +//prettier-ignore +(()=>{var Z3e=Object.create;var NR=Object.defineProperty;var $3e=Object.getOwnPropertyDescriptor;var e_e=Object.getOwnPropertyNames;var t_e=Object.getPrototypeOf,r_e=Object.prototype.hasOwnProperty;var ve=(t=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(t,{get:(e,r)=>(typeof require<"u"?require:e)[r]}):t)(function(t){if(typeof require<"u")return require.apply(this,arguments);throw new Error('Dynamic require of "'+t+'" is not supported')});var Et=(t,e)=>()=>(t&&(e=t(t=0)),e);var _=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),Vt=(t,e)=>{for(var r in e)NR(t,r,{get:e[r],enumerable:!0})},n_e=(t,e,r,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of e_e(e))!r_e.call(t,a)&&a!==r&&NR(t,a,{get:()=>e[a],enumerable:!(o=$3e(e,a))||o.enumerable});return t};var $e=(t,e,r)=>(r=t!=null?Z3e(t_e(t)):{},n_e(e||!t||!t.__esModule?NR(r,"default",{value:t,enumerable:!0}):r,t));var vi={};Vt(vi,{SAFE_TIME:()=>x7,S_IFDIR:()=>wD,S_IFLNK:()=>ID,S_IFMT:()=>Ou,S_IFREG:()=>qw});var Ou,wD,qw,ID,x7,k7=Et(()=>{Ou=61440,wD=16384,qw=32768,ID=40960,x7=456789e3});var ar={};Vt(ar,{EBADF:()=>Io,EBUSY:()=>i_e,EEXIST:()=>u_e,EINVAL:()=>o_e,EISDIR:()=>c_e,ENOENT:()=>a_e,ENOSYS:()=>s_e,ENOTDIR:()=>l_e,ENOTEMPTY:()=>f_e,EOPNOTSUPP:()=>p_e,EROFS:()=>A_e,ERR_DIR_CLOSED:()=>LR});function Tl(t,e){return Object.assign(new Error(`${t}: ${e}`),{code:t})}function i_e(t){return Tl("EBUSY",t)}function s_e(t,e){return Tl("ENOSYS",`${t}, ${e}`)}function o_e(t){return Tl("EINVAL",`invalid argument, ${t}`)}function Io(t){return Tl("EBADF",`bad file descriptor, ${t}`)}function a_e(t){return Tl("ENOENT",`no such file or directory, ${t}`)}function l_e(t){return Tl("ENOTDIR",`not a directory, ${t}`)}function c_e(t){return Tl("EISDIR",`illegal operation on a directory, ${t}`)}function u_e(t){return Tl("EEXIST",`file already exists, ${t}`)}function A_e(t){return Tl("EROFS",`read-only filesystem, ${t}`)}function f_e(t){return Tl("ENOTEMPTY",`directory not empty, ${t}`)}function p_e(t){return Tl("EOPNOTSUPP",`operation not supported, ${t}`)}function LR(){return Tl("ERR_DIR_CLOSED","Directory handle was closed")}var BD=Et(()=>{});var Ea={};Vt(Ea,{BigIntStatsEntry:()=>ty,DEFAULT_MODE:()=>UR,DirEntry:()=>OR,StatEntry:()=>ey,areStatsEqual:()=>_R,clearStats:()=>vD,convertToBigIntStats:()=>g_e,makeDefaultStats:()=>Q7,makeEmptyStats:()=>h_e});function Q7(){return new ey}function h_e(){return vD(Q7())}function vD(t){for(let e in t)if(Object.hasOwn(t,e)){let r=t[e];typeof r=="number"?t[e]=0:typeof r=="bigint"?t[e]=BigInt(0):MR.types.isDate(r)&&(t[e]=new Date(0))}return t}function g_e(t){let e=new ty;for(let r in t)if(Object.hasOwn(t,r)){let o=t[r];typeof o=="number"?e[r]=BigInt(o):MR.types.isDate(o)&&(e[r]=new Date(o))}return e.atimeNs=e.atimeMs*BigInt(1e6),e.mtimeNs=e.mtimeMs*BigInt(1e6),e.ctimeNs=e.ctimeMs*BigInt(1e6),e.birthtimeNs=e.birthtimeMs*BigInt(1e6),e}function _R(t,e){if(t.atimeMs!==e.atimeMs||t.birthtimeMs!==e.birthtimeMs||t.blksize!==e.blksize||t.blocks!==e.blocks||t.ctimeMs!==e.ctimeMs||t.dev!==e.dev||t.gid!==e.gid||t.ino!==e.ino||t.isBlockDevice()!==e.isBlockDevice()||t.isCharacterDevice()!==e.isCharacterDevice()||t.isDirectory()!==e.isDirectory()||t.isFIFO()!==e.isFIFO()||t.isFile()!==e.isFile()||t.isSocket()!==e.isSocket()||t.isSymbolicLink()!==e.isSymbolicLink()||t.mode!==e.mode||t.mtimeMs!==e.mtimeMs||t.nlink!==e.nlink||t.rdev!==e.rdev||t.size!==e.size||t.uid!==e.uid)return!1;let r=t,o=e;return!(r.atimeNs!==o.atimeNs||r.mtimeNs!==o.mtimeNs||r.ctimeNs!==o.ctimeNs||r.birthtimeNs!==o.birthtimeNs)}var MR,UR,OR,ey,ty,HR=Et(()=>{MR=$e(ve("util")),UR=33188,OR=class{constructor(){this.name="";this.path="";this.mode=0}isBlockDevice(){return!1}isCharacterDevice(){return!1}isDirectory(){return(this.mode&61440)===16384}isFIFO(){return!1}isFile(){return(this.mode&61440)===32768}isSocket(){return!1}isSymbolicLink(){return(this.mode&61440)===40960}},ey=class{constructor(){this.uid=0;this.gid=0;this.size=0;this.blksize=0;this.atimeMs=0;this.mtimeMs=0;this.ctimeMs=0;this.birthtimeMs=0;this.atime=new Date(0);this.mtime=new Date(0);this.ctime=new Date(0);this.birthtime=new Date(0);this.dev=0;this.ino=0;this.mode=UR;this.nlink=1;this.rdev=0;this.blocks=1}isBlockDevice(){return!1}isCharacterDevice(){return!1}isDirectory(){return(this.mode&61440)===16384}isFIFO(){return!1}isFile(){return(this.mode&61440)===32768}isSocket(){return!1}isSymbolicLink(){return(this.mode&61440)===40960}},ty=class{constructor(){this.uid=BigInt(0);this.gid=BigInt(0);this.size=BigInt(0);this.blksize=BigInt(0);this.atimeMs=BigInt(0);this.mtimeMs=BigInt(0);this.ctimeMs=BigInt(0);this.birthtimeMs=BigInt(0);this.atimeNs=BigInt(0);this.mtimeNs=BigInt(0);this.ctimeNs=BigInt(0);this.birthtimeNs=BigInt(0);this.atime=new Date(0);this.mtime=new Date(0);this.ctime=new Date(0);this.birthtime=new Date(0);this.dev=BigInt(0);this.ino=BigInt(0);this.mode=BigInt(UR);this.nlink=BigInt(1);this.rdev=BigInt(0);this.blocks=BigInt(1)}isBlockDevice(){return!1}isCharacterDevice(){return!1}isDirectory(){return(this.mode&BigInt(61440))===BigInt(16384)}isFIFO(){return!1}isFile(){return(this.mode&BigInt(61440))===BigInt(32768)}isSocket(){return!1}isSymbolicLink(){return(this.mode&BigInt(61440))===BigInt(40960)}}});function C_e(t){let e,r;if(e=t.match(y_e))t=e[1];else if(r=t.match(E_e))t=`\\\\${r[1]?".\\":""}${r[2]}`;else return t;return t.replace(/\//g,"\\")}function w_e(t){t=t.replace(/\\/g,"/");let e,r;return(e=t.match(d_e))?t=`/${e[1]}`:(r=t.match(m_e))&&(t=`/unc/${r[1]?".dot/":""}${r[2]}`),t}function DD(t,e){return t===ue?R7(e):qR(e)}var jw,Bt,dr,ue,V,F7,d_e,m_e,y_e,E_e,qR,R7,Ca=Et(()=>{jw=$e(ve("path")),Bt={root:"/",dot:".",parent:".."},dr={home:"~",nodeModules:"node_modules",manifest:"package.json",lockfile:"yarn.lock",virtual:"__virtual__",pnpJs:".pnp.js",pnpCjs:".pnp.cjs",pnpData:".pnp.data.json",pnpEsmLoader:".pnp.loader.mjs",rc:".yarnrc.yml",env:".env"},ue=Object.create(jw.default),V=Object.create(jw.default.posix);ue.cwd=()=>process.cwd();V.cwd=process.platform==="win32"?()=>qR(process.cwd()):process.cwd;process.platform==="win32"&&(V.resolve=(...t)=>t.length>0&&V.isAbsolute(t[0])?jw.default.posix.resolve(...t):jw.default.posix.resolve(V.cwd(),...t));F7=function(t,e,r){return e=t.normalize(e),r=t.normalize(r),e===r?".":(e.endsWith(t.sep)||(e=e+t.sep),r.startsWith(e)?r.slice(e.length):null)};ue.contains=(t,e)=>F7(ue,t,e);V.contains=(t,e)=>F7(V,t,e);d_e=/^([a-zA-Z]:.*)$/,m_e=/^\/\/(\.\/)?(.*)$/,y_e=/^\/([a-zA-Z]:.*)$/,E_e=/^\/unc\/(\.dot\/)?(.*)$/;qR=process.platform==="win32"?w_e:t=>t,R7=process.platform==="win32"?C_e:t=>t;ue.fromPortablePath=R7;ue.toPortablePath=qR});async function SD(t,e){let r="0123456789abcdef";await t.mkdirPromise(e.indexPath,{recursive:!0});let o=[];for(let a of r)for(let n of r)o.push(t.mkdirPromise(t.pathUtils.join(e.indexPath,`${a}${n}`),{recursive:!0}));return await Promise.all(o),e.indexPath}async function T7(t,e,r,o,a){let n=t.pathUtils.normalize(e),u=r.pathUtils.normalize(o),A=[],p=[],{atime:h,mtime:E}=a.stableTime?{atime:Og,mtime:Og}:await r.lstatPromise(u);await t.mkdirpPromise(t.pathUtils.dirname(e),{utimes:[h,E]}),await jR(A,p,t,n,r,u,{...a,didParentExist:!0});for(let I of A)await I();await Promise.all(p.map(I=>I()))}async function jR(t,e,r,o,a,n,u){let A=u.didParentExist?await N7(r,o):null,p=await a.lstatPromise(n),{atime:h,mtime:E}=u.stableTime?{atime:Og,mtime:Og}:p,I;switch(!0){case p.isDirectory():I=await B_e(t,e,r,o,A,a,n,p,u);break;case p.isFile():I=await S_e(t,e,r,o,A,a,n,p,u);break;case p.isSymbolicLink():I=await P_e(t,e,r,o,A,a,n,p,u);break;default:throw new Error(`Unsupported file type (${p.mode})`)}return(u.linkStrategy?.type!=="HardlinkFromIndex"||!p.isFile())&&((I||A?.mtime?.getTime()!==E.getTime()||A?.atime?.getTime()!==h.getTime())&&(e.push(()=>r.lutimesPromise(o,h,E)),I=!0),(A===null||(A.mode&511)!==(p.mode&511))&&(e.push(()=>r.chmodPromise(o,p.mode&511)),I=!0)),I}async function N7(t,e){try{return await t.lstatPromise(e)}catch{return null}}async function B_e(t,e,r,o,a,n,u,A,p){if(a!==null&&!a.isDirectory())if(p.overwrite)t.push(async()=>r.removePromise(o)),a=null;else return!1;let h=!1;a===null&&(t.push(async()=>{try{await r.mkdirPromise(o,{mode:A.mode})}catch(v){if(v.code!=="EEXIST")throw v}}),h=!0);let E=await n.readdirPromise(u),I=p.didParentExist&&!a?{...p,didParentExist:!1}:p;if(p.stableSort)for(let v of E.sort())await jR(t,e,r,r.pathUtils.join(o,v),n,n.pathUtils.join(u,v),I)&&(h=!0);else(await Promise.all(E.map(async x=>{await jR(t,e,r,r.pathUtils.join(o,x),n,n.pathUtils.join(u,x),I)}))).some(x=>x)&&(h=!0);return h}async function v_e(t,e,r,o,a,n,u,A,p,h){let E=await n.checksumFilePromise(u,{algorithm:"sha1"}),I=420,v=A.mode&511,x=`${E}${v!==I?v.toString(8):""}`,C=r.pathUtils.join(h.indexPath,E.slice(0,2),`${x}.dat`),R;(ce=>(ce[ce.Lock=0]="Lock",ce[ce.Rename=1]="Rename"))(R||={});let L=1,U=await N7(r,C);if(a){let ae=U&&a.dev===U.dev&&a.ino===U.ino,fe=U?.mtimeMs!==I_e;if(ae&&fe&&h.autoRepair&&(L=0,U=null),!ae)if(p.overwrite)t.push(async()=>r.removePromise(o)),a=null;else return!1}let J=!U&&L===1?`${C}.${Math.floor(Math.random()*4294967296).toString(16).padStart(8,"0")}`:null,te=!1;return t.push(async()=>{if(!U&&(L===0&&await r.lockPromise(C,async()=>{let ae=await n.readFilePromise(u);await r.writeFilePromise(C,ae)}),L===1&&J)){let ae=await n.readFilePromise(u);await r.writeFilePromise(J,ae);try{await r.linkPromise(J,C)}catch(fe){if(fe.code==="EEXIST")te=!0,await r.unlinkPromise(J);else throw fe}}a||await r.linkPromise(C,o)}),e.push(async()=>{U||(await r.lutimesPromise(C,Og,Og),v!==I&&await r.chmodPromise(C,v)),J&&!te&&await r.unlinkPromise(J)}),!1}async function D_e(t,e,r,o,a,n,u,A,p){if(a!==null)if(p.overwrite)t.push(async()=>r.removePromise(o)),a=null;else return!1;return t.push(async()=>{let h=await n.readFilePromise(u);await r.writeFilePromise(o,h)}),!0}async function S_e(t,e,r,o,a,n,u,A,p){return p.linkStrategy?.type==="HardlinkFromIndex"?v_e(t,e,r,o,a,n,u,A,p,p.linkStrategy):D_e(t,e,r,o,a,n,u,A,p)}async function P_e(t,e,r,o,a,n,u,A,p){if(a!==null)if(p.overwrite)t.push(async()=>r.removePromise(o)),a=null;else return!1;return t.push(async()=>{await r.symlinkPromise(DD(r.pathUtils,await n.readlinkPromise(u)),o)}),!0}var Og,I_e,GR=Et(()=>{Ca();Og=new Date(456789e3*1e3),I_e=Og.getTime()});function PD(t,e,r,o){let a=()=>{let n=r.shift();if(typeof n>"u")return null;let u=t.pathUtils.join(e,n);return Object.assign(t.statSync(u),{name:n,path:void 0})};return new Gw(e,a,o)}var Gw,L7=Et(()=>{BD();Gw=class{constructor(e,r,o={}){this.path=e;this.nextDirent=r;this.opts=o;this.closed=!1}throwIfClosed(){if(this.closed)throw LR()}async*[Symbol.asyncIterator](){try{let e;for(;(e=await this.read())!==null;)yield e}finally{await this.close()}}read(e){let r=this.readSync();return typeof e<"u"?e(null,r):Promise.resolve(r)}readSync(){return this.throwIfClosed(),this.nextDirent()}close(e){return this.closeSync(),typeof e<"u"?e(null):Promise.resolve()}closeSync(){this.throwIfClosed(),this.opts.onClose?.(),this.closed=!0}}});function O7(t,e){if(t!==e)throw new Error(`Invalid StatWatcher status: expected '${e}', got '${t}'`)}var M7,ry,U7=Et(()=>{M7=ve("events");HR();ry=class extends M7.EventEmitter{constructor(r,o,{bigint:a=!1}={}){super();this.status="ready";this.changeListeners=new Map;this.startTimeout=null;this.fakeFs=r,this.path=o,this.bigint=a,this.lastStats=this.stat()}static create(r,o,a){let n=new ry(r,o,a);return n.start(),n}start(){O7(this.status,"ready"),this.status="running",this.startTimeout=setTimeout(()=>{this.startTimeout=null,this.fakeFs.existsSync(this.path)||this.emit("change",this.lastStats,this.lastStats)},3)}stop(){O7(this.status,"running"),this.status="stopped",this.startTimeout!==null&&(clearTimeout(this.startTimeout),this.startTimeout=null),this.emit("stop")}stat(){try{return this.fakeFs.statSync(this.path,{bigint:this.bigint})}catch{let o=this.bigint?new ty:new ey;return vD(o)}}makeInterval(r){let o=setInterval(()=>{let a=this.stat(),n=this.lastStats;_R(a,n)||(this.lastStats=a,this.emit("change",a,n))},r.interval);return r.persistent?o:o.unref()}registerChangeListener(r,o){this.addListener("change",r),this.changeListeners.set(r,this.makeInterval(o))}unregisterChangeListener(r){this.removeListener("change",r);let o=this.changeListeners.get(r);typeof o<"u"&&clearInterval(o),this.changeListeners.delete(r)}unregisterAllChangeListeners(){for(let r of this.changeListeners.keys())this.unregisterChangeListener(r)}hasChangeListeners(){return this.changeListeners.size>0}ref(){for(let r of this.changeListeners.values())r.ref();return this}unref(){for(let r of this.changeListeners.values())r.unref();return this}}});function ny(t,e,r,o){let a,n,u,A;switch(typeof r){case"function":a=!1,n=!0,u=5007,A=r;break;default:({bigint:a=!1,persistent:n=!0,interval:u=5007}=r),A=o;break}let p=bD.get(t);typeof p>"u"&&bD.set(t,p=new Map);let h=p.get(e);return typeof h>"u"&&(h=ry.create(t,e,{bigint:a}),p.set(e,h)),h.registerChangeListener(A,{persistent:n,interval:u}),h}function Mg(t,e,r){let o=bD.get(t);if(typeof o>"u")return;let a=o.get(e);typeof a>"u"||(typeof r>"u"?a.unregisterAllChangeListeners():a.unregisterChangeListener(r),a.hasChangeListeners()||(a.stop(),o.delete(e)))}function Ug(t){let e=bD.get(t);if(!(typeof e>"u"))for(let r of e.keys())Mg(t,r)}var bD,YR=Et(()=>{U7();bD=new WeakMap});function b_e(t){let e=t.match(/\r?\n/g);if(e===null)return H7.EOL;let r=e.filter(a=>a===`\r +`).length,o=e.length-r;return r>o?`\r +`:` +`}function _g(t,e){return e.replace(/\r?\n/g,b_e(t))}var _7,H7,gf,Mu,Hg=Et(()=>{_7=ve("crypto"),H7=ve("os");GR();Ca();gf=class{constructor(e){this.pathUtils=e}async*genTraversePromise(e,{stableSort:r=!1}={}){let o=[e];for(;o.length>0;){let a=o.shift();if((await this.lstatPromise(a)).isDirectory()){let u=await this.readdirPromise(a);if(r)for(let A of u.sort())o.push(this.pathUtils.join(a,A));else throw new Error("Not supported")}else yield a}}async checksumFilePromise(e,{algorithm:r="sha512"}={}){let o=await this.openPromise(e,"r");try{let n=Buffer.allocUnsafeSlow(65536),u=(0,_7.createHash)(r),A=0;for(;(A=await this.readPromise(o,n,0,65536))!==0;)u.update(A===65536?n:n.slice(0,A));return u.digest("hex")}finally{await this.closePromise(o)}}async removePromise(e,{recursive:r=!0,maxRetries:o=5}={}){let a;try{a=await this.lstatPromise(e)}catch(n){if(n.code==="ENOENT")return;throw n}if(a.isDirectory()){if(r){let n=await this.readdirPromise(e);await Promise.all(n.map(u=>this.removePromise(this.pathUtils.resolve(e,u))))}for(let n=0;n<=o;n++)try{await this.rmdirPromise(e);break}catch(u){if(u.code!=="EBUSY"&&u.code!=="ENOTEMPTY")throw u;nsetTimeout(A,n*100))}}else await this.unlinkPromise(e)}removeSync(e,{recursive:r=!0}={}){let o;try{o=this.lstatSync(e)}catch(a){if(a.code==="ENOENT")return;throw a}if(o.isDirectory()){if(r)for(let a of this.readdirSync(e))this.removeSync(this.pathUtils.resolve(e,a));this.rmdirSync(e)}else this.unlinkSync(e)}async mkdirpPromise(e,{chmod:r,utimes:o}={}){if(e=this.resolve(e),e===this.pathUtils.dirname(e))return;let a=e.split(this.pathUtils.sep),n;for(let u=2;u<=a.length;++u){let A=a.slice(0,u).join(this.pathUtils.sep);if(!this.existsSync(A)){try{await this.mkdirPromise(A)}catch(p){if(p.code==="EEXIST")continue;throw p}if(n??=A,r!=null&&await this.chmodPromise(A,r),o!=null)await this.utimesPromise(A,o[0],o[1]);else{let p=await this.statPromise(this.pathUtils.dirname(A));await this.utimesPromise(A,p.atime,p.mtime)}}}return n}mkdirpSync(e,{chmod:r,utimes:o}={}){if(e=this.resolve(e),e===this.pathUtils.dirname(e))return;let a=e.split(this.pathUtils.sep),n;for(let u=2;u<=a.length;++u){let A=a.slice(0,u).join(this.pathUtils.sep);if(!this.existsSync(A)){try{this.mkdirSync(A)}catch(p){if(p.code==="EEXIST")continue;throw p}if(n??=A,r!=null&&this.chmodSync(A,r),o!=null)this.utimesSync(A,o[0],o[1]);else{let p=this.statSync(this.pathUtils.dirname(A));this.utimesSync(A,p.atime,p.mtime)}}}return n}async copyPromise(e,r,{baseFs:o=this,overwrite:a=!0,stableSort:n=!1,stableTime:u=!1,linkStrategy:A=null}={}){return await T7(this,e,o,r,{overwrite:a,stableSort:n,stableTime:u,linkStrategy:A})}copySync(e,r,{baseFs:o=this,overwrite:a=!0}={}){let n=o.lstatSync(r),u=this.existsSync(e);if(n.isDirectory()){this.mkdirpSync(e);let p=o.readdirSync(r);for(let h of p)this.copySync(this.pathUtils.join(e,h),o.pathUtils.join(r,h),{baseFs:o,overwrite:a})}else if(n.isFile()){if(!u||a){u&&this.removeSync(e);let p=o.readFileSync(r);this.writeFileSync(e,p)}}else if(n.isSymbolicLink()){if(!u||a){u&&this.removeSync(e);let p=o.readlinkSync(r);this.symlinkSync(DD(this.pathUtils,p),e)}}else throw new Error(`Unsupported file type (file: ${r}, mode: 0o${n.mode.toString(8).padStart(6,"0")})`);let A=n.mode&511;this.chmodSync(e,A)}async changeFilePromise(e,r,o={}){return Buffer.isBuffer(r)?this.changeFileBufferPromise(e,r,o):this.changeFileTextPromise(e,r,o)}async changeFileBufferPromise(e,r,{mode:o}={}){let a=Buffer.alloc(0);try{a=await this.readFilePromise(e)}catch{}Buffer.compare(a,r)!==0&&await this.writeFilePromise(e,r,{mode:o})}async changeFileTextPromise(e,r,{automaticNewlines:o,mode:a}={}){let n="";try{n=await this.readFilePromise(e,"utf8")}catch{}let u=o?_g(n,r):r;n!==u&&await this.writeFilePromise(e,u,{mode:a})}changeFileSync(e,r,o={}){return Buffer.isBuffer(r)?this.changeFileBufferSync(e,r,o):this.changeFileTextSync(e,r,o)}changeFileBufferSync(e,r,{mode:o}={}){let a=Buffer.alloc(0);try{a=this.readFileSync(e)}catch{}Buffer.compare(a,r)!==0&&this.writeFileSync(e,r,{mode:o})}changeFileTextSync(e,r,{automaticNewlines:o=!1,mode:a}={}){let n="";try{n=this.readFileSync(e,"utf8")}catch{}let u=o?_g(n,r):r;n!==u&&this.writeFileSync(e,u,{mode:a})}async movePromise(e,r){try{await this.renamePromise(e,r)}catch(o){if(o.code==="EXDEV")await this.copyPromise(r,e),await this.removePromise(e);else throw o}}moveSync(e,r){try{this.renameSync(e,r)}catch(o){if(o.code==="EXDEV")this.copySync(r,e),this.removeSync(e);else throw o}}async lockPromise(e,r){let o=`${e}.flock`,a=1e3/60,n=Date.now(),u=null,A=async()=>{let p;try{[p]=await this.readJsonPromise(o)}catch{return Date.now()-n<500}try{return process.kill(p,0),!0}catch{return!1}};for(;u===null;)try{u=await this.openPromise(o,"wx")}catch(p){if(p.code==="EEXIST"){if(!await A())try{await this.unlinkPromise(o);continue}catch{}if(Date.now()-n<60*1e3)await new Promise(h=>setTimeout(h,a));else throw new Error(`Couldn't acquire a lock in a reasonable time (via ${o})`)}else throw p}await this.writePromise(u,JSON.stringify([process.pid]));try{return await r()}finally{try{await this.closePromise(u),await this.unlinkPromise(o)}catch{}}}async readJsonPromise(e){let r=await this.readFilePromise(e,"utf8");try{return JSON.parse(r)}catch(o){throw o.message+=` (in ${e})`,o}}readJsonSync(e){let r=this.readFileSync(e,"utf8");try{return JSON.parse(r)}catch(o){throw o.message+=` (in ${e})`,o}}async writeJsonPromise(e,r,{compact:o=!1}={}){let a=o?0:2;return await this.writeFilePromise(e,`${JSON.stringify(r,null,a)} +`)}writeJsonSync(e,r,{compact:o=!1}={}){let a=o?0:2;return this.writeFileSync(e,`${JSON.stringify(r,null,a)} +`)}async preserveTimePromise(e,r){let o=await this.lstatPromise(e),a=await r();typeof a<"u"&&(e=a),await this.lutimesPromise(e,o.atime,o.mtime)}async preserveTimeSync(e,r){let o=this.lstatSync(e),a=r();typeof a<"u"&&(e=a),this.lutimesSync(e,o.atime,o.mtime)}},Mu=class extends gf{constructor(){super(V)}}});var Ss,df=Et(()=>{Hg();Ss=class extends gf{getExtractHint(e){return this.baseFs.getExtractHint(e)}resolve(e){return this.mapFromBase(this.baseFs.resolve(this.mapToBase(e)))}getRealPath(){return this.mapFromBase(this.baseFs.getRealPath())}async openPromise(e,r,o){return this.baseFs.openPromise(this.mapToBase(e),r,o)}openSync(e,r,o){return this.baseFs.openSync(this.mapToBase(e),r,o)}async opendirPromise(e,r){return Object.assign(await this.baseFs.opendirPromise(this.mapToBase(e),r),{path:e})}opendirSync(e,r){return Object.assign(this.baseFs.opendirSync(this.mapToBase(e),r),{path:e})}async readPromise(e,r,o,a,n){return await this.baseFs.readPromise(e,r,o,a,n)}readSync(e,r,o,a,n){return this.baseFs.readSync(e,r,o,a,n)}async writePromise(e,r,o,a,n){return typeof r=="string"?await this.baseFs.writePromise(e,r,o):await this.baseFs.writePromise(e,r,o,a,n)}writeSync(e,r,o,a,n){return typeof r=="string"?this.baseFs.writeSync(e,r,o):this.baseFs.writeSync(e,r,o,a,n)}async closePromise(e){return this.baseFs.closePromise(e)}closeSync(e){this.baseFs.closeSync(e)}createReadStream(e,r){return this.baseFs.createReadStream(e!==null?this.mapToBase(e):e,r)}createWriteStream(e,r){return this.baseFs.createWriteStream(e!==null?this.mapToBase(e):e,r)}async realpathPromise(e){return this.mapFromBase(await this.baseFs.realpathPromise(this.mapToBase(e)))}realpathSync(e){return this.mapFromBase(this.baseFs.realpathSync(this.mapToBase(e)))}async existsPromise(e){return this.baseFs.existsPromise(this.mapToBase(e))}existsSync(e){return this.baseFs.existsSync(this.mapToBase(e))}accessSync(e,r){return this.baseFs.accessSync(this.mapToBase(e),r)}async accessPromise(e,r){return this.baseFs.accessPromise(this.mapToBase(e),r)}async statPromise(e,r){return this.baseFs.statPromise(this.mapToBase(e),r)}statSync(e,r){return this.baseFs.statSync(this.mapToBase(e),r)}async fstatPromise(e,r){return this.baseFs.fstatPromise(e,r)}fstatSync(e,r){return this.baseFs.fstatSync(e,r)}lstatPromise(e,r){return this.baseFs.lstatPromise(this.mapToBase(e),r)}lstatSync(e,r){return this.baseFs.lstatSync(this.mapToBase(e),r)}async fchmodPromise(e,r){return this.baseFs.fchmodPromise(e,r)}fchmodSync(e,r){return this.baseFs.fchmodSync(e,r)}async chmodPromise(e,r){return this.baseFs.chmodPromise(this.mapToBase(e),r)}chmodSync(e,r){return this.baseFs.chmodSync(this.mapToBase(e),r)}async fchownPromise(e,r,o){return this.baseFs.fchownPromise(e,r,o)}fchownSync(e,r,o){return this.baseFs.fchownSync(e,r,o)}async chownPromise(e,r,o){return this.baseFs.chownPromise(this.mapToBase(e),r,o)}chownSync(e,r,o){return this.baseFs.chownSync(this.mapToBase(e),r,o)}async renamePromise(e,r){return this.baseFs.renamePromise(this.mapToBase(e),this.mapToBase(r))}renameSync(e,r){return this.baseFs.renameSync(this.mapToBase(e),this.mapToBase(r))}async copyFilePromise(e,r,o=0){return this.baseFs.copyFilePromise(this.mapToBase(e),this.mapToBase(r),o)}copyFileSync(e,r,o=0){return this.baseFs.copyFileSync(this.mapToBase(e),this.mapToBase(r),o)}async appendFilePromise(e,r,o){return this.baseFs.appendFilePromise(this.fsMapToBase(e),r,o)}appendFileSync(e,r,o){return this.baseFs.appendFileSync(this.fsMapToBase(e),r,o)}async writeFilePromise(e,r,o){return this.baseFs.writeFilePromise(this.fsMapToBase(e),r,o)}writeFileSync(e,r,o){return this.baseFs.writeFileSync(this.fsMapToBase(e),r,o)}async unlinkPromise(e){return this.baseFs.unlinkPromise(this.mapToBase(e))}unlinkSync(e){return this.baseFs.unlinkSync(this.mapToBase(e))}async utimesPromise(e,r,o){return this.baseFs.utimesPromise(this.mapToBase(e),r,o)}utimesSync(e,r,o){return this.baseFs.utimesSync(this.mapToBase(e),r,o)}async lutimesPromise(e,r,o){return this.baseFs.lutimesPromise(this.mapToBase(e),r,o)}lutimesSync(e,r,o){return this.baseFs.lutimesSync(this.mapToBase(e),r,o)}async mkdirPromise(e,r){return this.baseFs.mkdirPromise(this.mapToBase(e),r)}mkdirSync(e,r){return this.baseFs.mkdirSync(this.mapToBase(e),r)}async rmdirPromise(e,r){return this.baseFs.rmdirPromise(this.mapToBase(e),r)}rmdirSync(e,r){return this.baseFs.rmdirSync(this.mapToBase(e),r)}async linkPromise(e,r){return this.baseFs.linkPromise(this.mapToBase(e),this.mapToBase(r))}linkSync(e,r){return this.baseFs.linkSync(this.mapToBase(e),this.mapToBase(r))}async symlinkPromise(e,r,o){let a=this.mapToBase(r);if(this.pathUtils.isAbsolute(e))return this.baseFs.symlinkPromise(this.mapToBase(e),a,o);let n=this.mapToBase(this.pathUtils.join(this.pathUtils.dirname(r),e)),u=this.baseFs.pathUtils.relative(this.baseFs.pathUtils.dirname(a),n);return this.baseFs.symlinkPromise(u,a,o)}symlinkSync(e,r,o){let a=this.mapToBase(r);if(this.pathUtils.isAbsolute(e))return this.baseFs.symlinkSync(this.mapToBase(e),a,o);let n=this.mapToBase(this.pathUtils.join(this.pathUtils.dirname(r),e)),u=this.baseFs.pathUtils.relative(this.baseFs.pathUtils.dirname(a),n);return this.baseFs.symlinkSync(u,a,o)}async readFilePromise(e,r){return this.baseFs.readFilePromise(this.fsMapToBase(e),r)}readFileSync(e,r){return this.baseFs.readFileSync(this.fsMapToBase(e),r)}readdirPromise(e,r){return this.baseFs.readdirPromise(this.mapToBase(e),r)}readdirSync(e,r){return this.baseFs.readdirSync(this.mapToBase(e),r)}async readlinkPromise(e){return this.mapFromBase(await this.baseFs.readlinkPromise(this.mapToBase(e)))}readlinkSync(e){return this.mapFromBase(this.baseFs.readlinkSync(this.mapToBase(e)))}async truncatePromise(e,r){return this.baseFs.truncatePromise(this.mapToBase(e),r)}truncateSync(e,r){return this.baseFs.truncateSync(this.mapToBase(e),r)}async ftruncatePromise(e,r){return this.baseFs.ftruncatePromise(e,r)}ftruncateSync(e,r){return this.baseFs.ftruncateSync(e,r)}watch(e,r,o){return this.baseFs.watch(this.mapToBase(e),r,o)}watchFile(e,r,o){return this.baseFs.watchFile(this.mapToBase(e),r,o)}unwatchFile(e,r){return this.baseFs.unwatchFile(this.mapToBase(e),r)}fsMapToBase(e){return typeof e=="number"?e:this.mapToBase(e)}}});var Uu,q7=Et(()=>{df();Uu=class extends Ss{constructor(r,{baseFs:o,pathUtils:a}){super(a);this.target=r,this.baseFs=o}getRealPath(){return this.target}getBaseFs(){return this.baseFs}mapFromBase(r){return r}mapToBase(r){return r}}});function j7(t){let e=t;return typeof t.path=="string"&&(e.path=ue.toPortablePath(t.path)),e}var G7,Tn,qg=Et(()=>{G7=$e(ve("fs"));Hg();Ca();Tn=class extends Mu{constructor(r=G7.default){super();this.realFs=r}getExtractHint(){return!1}getRealPath(){return Bt.root}resolve(r){return V.resolve(r)}async openPromise(r,o,a){return await new Promise((n,u)=>{this.realFs.open(ue.fromPortablePath(r),o,a,this.makeCallback(n,u))})}openSync(r,o,a){return this.realFs.openSync(ue.fromPortablePath(r),o,a)}async opendirPromise(r,o){return await new Promise((a,n)=>{typeof o<"u"?this.realFs.opendir(ue.fromPortablePath(r),o,this.makeCallback(a,n)):this.realFs.opendir(ue.fromPortablePath(r),this.makeCallback(a,n))}).then(a=>{let n=a;return Object.defineProperty(n,"path",{value:r,configurable:!0,writable:!0}),n})}opendirSync(r,o){let n=typeof o<"u"?this.realFs.opendirSync(ue.fromPortablePath(r),o):this.realFs.opendirSync(ue.fromPortablePath(r));return Object.defineProperty(n,"path",{value:r,configurable:!0,writable:!0}),n}async readPromise(r,o,a=0,n=0,u=-1){return await new Promise((A,p)=>{this.realFs.read(r,o,a,n,u,(h,E)=>{h?p(h):A(E)})})}readSync(r,o,a,n,u){return this.realFs.readSync(r,o,a,n,u)}async writePromise(r,o,a,n,u){return await new Promise((A,p)=>typeof o=="string"?this.realFs.write(r,o,a,this.makeCallback(A,p)):this.realFs.write(r,o,a,n,u,this.makeCallback(A,p)))}writeSync(r,o,a,n,u){return typeof o=="string"?this.realFs.writeSync(r,o,a):this.realFs.writeSync(r,o,a,n,u)}async closePromise(r){await new Promise((o,a)=>{this.realFs.close(r,this.makeCallback(o,a))})}closeSync(r){this.realFs.closeSync(r)}createReadStream(r,o){let a=r!==null?ue.fromPortablePath(r):r;return this.realFs.createReadStream(a,o)}createWriteStream(r,o){let a=r!==null?ue.fromPortablePath(r):r;return this.realFs.createWriteStream(a,o)}async realpathPromise(r){return await new Promise((o,a)=>{this.realFs.realpath(ue.fromPortablePath(r),{},this.makeCallback(o,a))}).then(o=>ue.toPortablePath(o))}realpathSync(r){return ue.toPortablePath(this.realFs.realpathSync(ue.fromPortablePath(r),{}))}async existsPromise(r){return await new Promise(o=>{this.realFs.exists(ue.fromPortablePath(r),o)})}accessSync(r,o){return this.realFs.accessSync(ue.fromPortablePath(r),o)}async accessPromise(r,o){return await new Promise((a,n)=>{this.realFs.access(ue.fromPortablePath(r),o,this.makeCallback(a,n))})}existsSync(r){return this.realFs.existsSync(ue.fromPortablePath(r))}async statPromise(r,o){return await new Promise((a,n)=>{o?this.realFs.stat(ue.fromPortablePath(r),o,this.makeCallback(a,n)):this.realFs.stat(ue.fromPortablePath(r),this.makeCallback(a,n))})}statSync(r,o){return o?this.realFs.statSync(ue.fromPortablePath(r),o):this.realFs.statSync(ue.fromPortablePath(r))}async fstatPromise(r,o){return await new Promise((a,n)=>{o?this.realFs.fstat(r,o,this.makeCallback(a,n)):this.realFs.fstat(r,this.makeCallback(a,n))})}fstatSync(r,o){return o?this.realFs.fstatSync(r,o):this.realFs.fstatSync(r)}async lstatPromise(r,o){return await new Promise((a,n)=>{o?this.realFs.lstat(ue.fromPortablePath(r),o,this.makeCallback(a,n)):this.realFs.lstat(ue.fromPortablePath(r),this.makeCallback(a,n))})}lstatSync(r,o){return o?this.realFs.lstatSync(ue.fromPortablePath(r),o):this.realFs.lstatSync(ue.fromPortablePath(r))}async fchmodPromise(r,o){return await new Promise((a,n)=>{this.realFs.fchmod(r,o,this.makeCallback(a,n))})}fchmodSync(r,o){return this.realFs.fchmodSync(r,o)}async chmodPromise(r,o){return await new Promise((a,n)=>{this.realFs.chmod(ue.fromPortablePath(r),o,this.makeCallback(a,n))})}chmodSync(r,o){return this.realFs.chmodSync(ue.fromPortablePath(r),o)}async fchownPromise(r,o,a){return await new Promise((n,u)=>{this.realFs.fchown(r,o,a,this.makeCallback(n,u))})}fchownSync(r,o,a){return this.realFs.fchownSync(r,o,a)}async chownPromise(r,o,a){return await new Promise((n,u)=>{this.realFs.chown(ue.fromPortablePath(r),o,a,this.makeCallback(n,u))})}chownSync(r,o,a){return this.realFs.chownSync(ue.fromPortablePath(r),o,a)}async renamePromise(r,o){return await new Promise((a,n)=>{this.realFs.rename(ue.fromPortablePath(r),ue.fromPortablePath(o),this.makeCallback(a,n))})}renameSync(r,o){return this.realFs.renameSync(ue.fromPortablePath(r),ue.fromPortablePath(o))}async copyFilePromise(r,o,a=0){return await new Promise((n,u)=>{this.realFs.copyFile(ue.fromPortablePath(r),ue.fromPortablePath(o),a,this.makeCallback(n,u))})}copyFileSync(r,o,a=0){return this.realFs.copyFileSync(ue.fromPortablePath(r),ue.fromPortablePath(o),a)}async appendFilePromise(r,o,a){return await new Promise((n,u)=>{let A=typeof r=="string"?ue.fromPortablePath(r):r;a?this.realFs.appendFile(A,o,a,this.makeCallback(n,u)):this.realFs.appendFile(A,o,this.makeCallback(n,u))})}appendFileSync(r,o,a){let n=typeof r=="string"?ue.fromPortablePath(r):r;a?this.realFs.appendFileSync(n,o,a):this.realFs.appendFileSync(n,o)}async writeFilePromise(r,o,a){return await new Promise((n,u)=>{let A=typeof r=="string"?ue.fromPortablePath(r):r;a?this.realFs.writeFile(A,o,a,this.makeCallback(n,u)):this.realFs.writeFile(A,o,this.makeCallback(n,u))})}writeFileSync(r,o,a){let n=typeof r=="string"?ue.fromPortablePath(r):r;a?this.realFs.writeFileSync(n,o,a):this.realFs.writeFileSync(n,o)}async unlinkPromise(r){return await new Promise((o,a)=>{this.realFs.unlink(ue.fromPortablePath(r),this.makeCallback(o,a))})}unlinkSync(r){return this.realFs.unlinkSync(ue.fromPortablePath(r))}async utimesPromise(r,o,a){return await new Promise((n,u)=>{this.realFs.utimes(ue.fromPortablePath(r),o,a,this.makeCallback(n,u))})}utimesSync(r,o,a){this.realFs.utimesSync(ue.fromPortablePath(r),o,a)}async lutimesPromise(r,o,a){return await new Promise((n,u)=>{this.realFs.lutimes(ue.fromPortablePath(r),o,a,this.makeCallback(n,u))})}lutimesSync(r,o,a){this.realFs.lutimesSync(ue.fromPortablePath(r),o,a)}async mkdirPromise(r,o){return await new Promise((a,n)=>{this.realFs.mkdir(ue.fromPortablePath(r),o,this.makeCallback(a,n))})}mkdirSync(r,o){return this.realFs.mkdirSync(ue.fromPortablePath(r),o)}async rmdirPromise(r,o){return await new Promise((a,n)=>{o?this.realFs.rmdir(ue.fromPortablePath(r),o,this.makeCallback(a,n)):this.realFs.rmdir(ue.fromPortablePath(r),this.makeCallback(a,n))})}rmdirSync(r,o){return this.realFs.rmdirSync(ue.fromPortablePath(r),o)}async linkPromise(r,o){return await new Promise((a,n)=>{this.realFs.link(ue.fromPortablePath(r),ue.fromPortablePath(o),this.makeCallback(a,n))})}linkSync(r,o){return this.realFs.linkSync(ue.fromPortablePath(r),ue.fromPortablePath(o))}async symlinkPromise(r,o,a){return await new Promise((n,u)=>{this.realFs.symlink(ue.fromPortablePath(r.replace(/\/+$/,"")),ue.fromPortablePath(o),a,this.makeCallback(n,u))})}symlinkSync(r,o,a){return this.realFs.symlinkSync(ue.fromPortablePath(r.replace(/\/+$/,"")),ue.fromPortablePath(o),a)}async readFilePromise(r,o){return await new Promise((a,n)=>{let u=typeof r=="string"?ue.fromPortablePath(r):r;this.realFs.readFile(u,o,this.makeCallback(a,n))})}readFileSync(r,o){let a=typeof r=="string"?ue.fromPortablePath(r):r;return this.realFs.readFileSync(a,o)}async readdirPromise(r,o){return await new Promise((a,n)=>{o?o.recursive&&process.platform==="win32"?o.withFileTypes?this.realFs.readdir(ue.fromPortablePath(r),o,this.makeCallback(u=>a(u.map(j7)),n)):this.realFs.readdir(ue.fromPortablePath(r),o,this.makeCallback(u=>a(u.map(ue.toPortablePath)),n)):this.realFs.readdir(ue.fromPortablePath(r),o,this.makeCallback(a,n)):this.realFs.readdir(ue.fromPortablePath(r),this.makeCallback(a,n))})}readdirSync(r,o){return o?o.recursive&&process.platform==="win32"?o.withFileTypes?this.realFs.readdirSync(ue.fromPortablePath(r),o).map(j7):this.realFs.readdirSync(ue.fromPortablePath(r),o).map(ue.toPortablePath):this.realFs.readdirSync(ue.fromPortablePath(r),o):this.realFs.readdirSync(ue.fromPortablePath(r))}async readlinkPromise(r){return await new Promise((o,a)=>{this.realFs.readlink(ue.fromPortablePath(r),this.makeCallback(o,a))}).then(o=>ue.toPortablePath(o))}readlinkSync(r){return ue.toPortablePath(this.realFs.readlinkSync(ue.fromPortablePath(r)))}async truncatePromise(r,o){return await new Promise((a,n)=>{this.realFs.truncate(ue.fromPortablePath(r),o,this.makeCallback(a,n))})}truncateSync(r,o){return this.realFs.truncateSync(ue.fromPortablePath(r),o)}async ftruncatePromise(r,o){return await new Promise((a,n)=>{this.realFs.ftruncate(r,o,this.makeCallback(a,n))})}ftruncateSync(r,o){return this.realFs.ftruncateSync(r,o)}watch(r,o,a){return this.realFs.watch(ue.fromPortablePath(r),o,a)}watchFile(r,o,a){return this.realFs.watchFile(ue.fromPortablePath(r),o,a)}unwatchFile(r,o){return this.realFs.unwatchFile(ue.fromPortablePath(r),o)}makeCallback(r,o){return(a,n)=>{a?o(a):r(n)}}}});var gn,Y7=Et(()=>{qg();df();Ca();gn=class extends Ss{constructor(r,{baseFs:o=new Tn}={}){super(V);this.target=this.pathUtils.normalize(r),this.baseFs=o}getRealPath(){return this.pathUtils.resolve(this.baseFs.getRealPath(),this.target)}resolve(r){return this.pathUtils.isAbsolute(r)?V.normalize(r):this.baseFs.resolve(V.join(this.target,r))}mapFromBase(r){return r}mapToBase(r){return this.pathUtils.isAbsolute(r)?r:this.pathUtils.join(this.target,r)}}});var W7,_u,K7=Et(()=>{qg();df();Ca();W7=Bt.root,_u=class extends Ss{constructor(r,{baseFs:o=new Tn}={}){super(V);this.target=this.pathUtils.resolve(Bt.root,r),this.baseFs=o}getRealPath(){return this.pathUtils.resolve(this.baseFs.getRealPath(),this.pathUtils.relative(Bt.root,this.target))}getTarget(){return this.target}getBaseFs(){return this.baseFs}mapToBase(r){let o=this.pathUtils.normalize(r);if(this.pathUtils.isAbsolute(r))return this.pathUtils.resolve(this.target,this.pathUtils.relative(W7,r));if(o.match(/^\.\.\/?/))throw new Error(`Resolving this path (${r}) would escape the jail`);return this.pathUtils.resolve(this.target,r)}mapFromBase(r){return this.pathUtils.resolve(W7,this.pathUtils.relative(this.target,r))}}});var iy,V7=Et(()=>{df();iy=class extends Ss{constructor(r,o){super(o);this.instance=null;this.factory=r}get baseFs(){return this.instance||(this.instance=this.factory()),this.instance}set baseFs(r){this.instance=r}mapFromBase(r){return r}mapToBase(r){return r}}});var jg,wa,Hp,J7=Et(()=>{jg=ve("fs");Hg();qg();YR();BD();Ca();wa=4278190080,Hp=class extends Mu{constructor({baseFs:r=new Tn,filter:o=null,magicByte:a=42,maxOpenFiles:n=1/0,useCache:u=!0,maxAge:A=5e3,typeCheck:p=jg.constants.S_IFREG,getMountPoint:h,factoryPromise:E,factorySync:I}){if(Math.floor(a)!==a||!(a>1&&a<=127))throw new Error("The magic byte must be set to a round value between 1 and 127 included");super();this.fdMap=new Map;this.nextFd=3;this.isMount=new Set;this.notMount=new Set;this.realPaths=new Map;this.limitOpenFilesTimeout=null;this.baseFs=r,this.mountInstances=u?new Map:null,this.factoryPromise=E,this.factorySync=I,this.filter=o,this.getMountPoint=h,this.magic=a<<24,this.maxAge=A,this.maxOpenFiles=n,this.typeCheck=p}getExtractHint(r){return this.baseFs.getExtractHint(r)}getRealPath(){return this.baseFs.getRealPath()}saveAndClose(){if(Ug(this),this.mountInstances)for(let[r,{childFs:o}]of this.mountInstances.entries())o.saveAndClose?.(),this.mountInstances.delete(r)}discardAndClose(){if(Ug(this),this.mountInstances)for(let[r,{childFs:o}]of this.mountInstances.entries())o.discardAndClose?.(),this.mountInstances.delete(r)}resolve(r){return this.baseFs.resolve(r)}remapFd(r,o){let a=this.nextFd++|this.magic;return this.fdMap.set(a,[r,o]),a}async openPromise(r,o,a){return await this.makeCallPromise(r,async()=>await this.baseFs.openPromise(r,o,a),async(n,{subPath:u})=>this.remapFd(n,await n.openPromise(u,o,a)))}openSync(r,o,a){return this.makeCallSync(r,()=>this.baseFs.openSync(r,o,a),(n,{subPath:u})=>this.remapFd(n,n.openSync(u,o,a)))}async opendirPromise(r,o){return await this.makeCallPromise(r,async()=>await this.baseFs.opendirPromise(r,o),async(a,{subPath:n})=>await a.opendirPromise(n,o),{requireSubpath:!1})}opendirSync(r,o){return this.makeCallSync(r,()=>this.baseFs.opendirSync(r,o),(a,{subPath:n})=>a.opendirSync(n,o),{requireSubpath:!1})}async readPromise(r,o,a,n,u){if((r&wa)!==this.magic)return await this.baseFs.readPromise(r,o,a,n,u);let A=this.fdMap.get(r);if(typeof A>"u")throw Io("read");let[p,h]=A;return await p.readPromise(h,o,a,n,u)}readSync(r,o,a,n,u){if((r&wa)!==this.magic)return this.baseFs.readSync(r,o,a,n,u);let A=this.fdMap.get(r);if(typeof A>"u")throw Io("readSync");let[p,h]=A;return p.readSync(h,o,a,n,u)}async writePromise(r,o,a,n,u){if((r&wa)!==this.magic)return typeof o=="string"?await this.baseFs.writePromise(r,o,a):await this.baseFs.writePromise(r,o,a,n,u);let A=this.fdMap.get(r);if(typeof A>"u")throw Io("write");let[p,h]=A;return typeof o=="string"?await p.writePromise(h,o,a):await p.writePromise(h,o,a,n,u)}writeSync(r,o,a,n,u){if((r&wa)!==this.magic)return typeof o=="string"?this.baseFs.writeSync(r,o,a):this.baseFs.writeSync(r,o,a,n,u);let A=this.fdMap.get(r);if(typeof A>"u")throw Io("writeSync");let[p,h]=A;return typeof o=="string"?p.writeSync(h,o,a):p.writeSync(h,o,a,n,u)}async closePromise(r){if((r&wa)!==this.magic)return await this.baseFs.closePromise(r);let o=this.fdMap.get(r);if(typeof o>"u")throw Io("close");this.fdMap.delete(r);let[a,n]=o;return await a.closePromise(n)}closeSync(r){if((r&wa)!==this.magic)return this.baseFs.closeSync(r);let o=this.fdMap.get(r);if(typeof o>"u")throw Io("closeSync");this.fdMap.delete(r);let[a,n]=o;return a.closeSync(n)}createReadStream(r,o){return r===null?this.baseFs.createReadStream(r,o):this.makeCallSync(r,()=>this.baseFs.createReadStream(r,o),(a,{archivePath:n,subPath:u})=>{let A=a.createReadStream(u,o);return A.path=ue.fromPortablePath(this.pathUtils.join(n,u)),A})}createWriteStream(r,o){return r===null?this.baseFs.createWriteStream(r,o):this.makeCallSync(r,()=>this.baseFs.createWriteStream(r,o),(a,{subPath:n})=>a.createWriteStream(n,o))}async realpathPromise(r){return await this.makeCallPromise(r,async()=>await this.baseFs.realpathPromise(r),async(o,{archivePath:a,subPath:n})=>{let u=this.realPaths.get(a);return typeof u>"u"&&(u=await this.baseFs.realpathPromise(a),this.realPaths.set(a,u)),this.pathUtils.join(u,this.pathUtils.relative(Bt.root,await o.realpathPromise(n)))})}realpathSync(r){return this.makeCallSync(r,()=>this.baseFs.realpathSync(r),(o,{archivePath:a,subPath:n})=>{let u=this.realPaths.get(a);return typeof u>"u"&&(u=this.baseFs.realpathSync(a),this.realPaths.set(a,u)),this.pathUtils.join(u,this.pathUtils.relative(Bt.root,o.realpathSync(n)))})}async existsPromise(r){return await this.makeCallPromise(r,async()=>await this.baseFs.existsPromise(r),async(o,{subPath:a})=>await o.existsPromise(a))}existsSync(r){return this.makeCallSync(r,()=>this.baseFs.existsSync(r),(o,{subPath:a})=>o.existsSync(a))}async accessPromise(r,o){return await this.makeCallPromise(r,async()=>await this.baseFs.accessPromise(r,o),async(a,{subPath:n})=>await a.accessPromise(n,o))}accessSync(r,o){return this.makeCallSync(r,()=>this.baseFs.accessSync(r,o),(a,{subPath:n})=>a.accessSync(n,o))}async statPromise(r,o){return await this.makeCallPromise(r,async()=>await this.baseFs.statPromise(r,o),async(a,{subPath:n})=>await a.statPromise(n,o))}statSync(r,o){return this.makeCallSync(r,()=>this.baseFs.statSync(r,o),(a,{subPath:n})=>a.statSync(n,o))}async fstatPromise(r,o){if((r&wa)!==this.magic)return this.baseFs.fstatPromise(r,o);let a=this.fdMap.get(r);if(typeof a>"u")throw Io("fstat");let[n,u]=a;return n.fstatPromise(u,o)}fstatSync(r,o){if((r&wa)!==this.magic)return this.baseFs.fstatSync(r,o);let a=this.fdMap.get(r);if(typeof a>"u")throw Io("fstatSync");let[n,u]=a;return n.fstatSync(u,o)}async lstatPromise(r,o){return await this.makeCallPromise(r,async()=>await this.baseFs.lstatPromise(r,o),async(a,{subPath:n})=>await a.lstatPromise(n,o))}lstatSync(r,o){return this.makeCallSync(r,()=>this.baseFs.lstatSync(r,o),(a,{subPath:n})=>a.lstatSync(n,o))}async fchmodPromise(r,o){if((r&wa)!==this.magic)return this.baseFs.fchmodPromise(r,o);let a=this.fdMap.get(r);if(typeof a>"u")throw Io("fchmod");let[n,u]=a;return n.fchmodPromise(u,o)}fchmodSync(r,o){if((r&wa)!==this.magic)return this.baseFs.fchmodSync(r,o);let a=this.fdMap.get(r);if(typeof a>"u")throw Io("fchmodSync");let[n,u]=a;return n.fchmodSync(u,o)}async chmodPromise(r,o){return await this.makeCallPromise(r,async()=>await this.baseFs.chmodPromise(r,o),async(a,{subPath:n})=>await a.chmodPromise(n,o))}chmodSync(r,o){return this.makeCallSync(r,()=>this.baseFs.chmodSync(r,o),(a,{subPath:n})=>a.chmodSync(n,o))}async fchownPromise(r,o,a){if((r&wa)!==this.magic)return this.baseFs.fchownPromise(r,o,a);let n=this.fdMap.get(r);if(typeof n>"u")throw Io("fchown");let[u,A]=n;return u.fchownPromise(A,o,a)}fchownSync(r,o,a){if((r&wa)!==this.magic)return this.baseFs.fchownSync(r,o,a);let n=this.fdMap.get(r);if(typeof n>"u")throw Io("fchownSync");let[u,A]=n;return u.fchownSync(A,o,a)}async chownPromise(r,o,a){return await this.makeCallPromise(r,async()=>await this.baseFs.chownPromise(r,o,a),async(n,{subPath:u})=>await n.chownPromise(u,o,a))}chownSync(r,o,a){return this.makeCallSync(r,()=>this.baseFs.chownSync(r,o,a),(n,{subPath:u})=>n.chownSync(u,o,a))}async renamePromise(r,o){return await this.makeCallPromise(r,async()=>await this.makeCallPromise(o,async()=>await this.baseFs.renamePromise(r,o),async()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})}),async(a,{subPath:n})=>await this.makeCallPromise(o,async()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})},async(u,{subPath:A})=>{if(a!==u)throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"});return await a.renamePromise(n,A)}))}renameSync(r,o){return this.makeCallSync(r,()=>this.makeCallSync(o,()=>this.baseFs.renameSync(r,o),()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})}),(a,{subPath:n})=>this.makeCallSync(o,()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})},(u,{subPath:A})=>{if(a!==u)throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"});return a.renameSync(n,A)}))}async copyFilePromise(r,o,a=0){let n=async(u,A,p,h)=>{if((a&jg.constants.COPYFILE_FICLONE_FORCE)!==0)throw Object.assign(new Error(`EXDEV: cross-device clone not permitted, copyfile '${A}' -> ${h}'`),{code:"EXDEV"});if(a&jg.constants.COPYFILE_EXCL&&await this.existsPromise(A))throw Object.assign(new Error(`EEXIST: file already exists, copyfile '${A}' -> '${h}'`),{code:"EEXIST"});let E;try{E=await u.readFilePromise(A)}catch{throw Object.assign(new Error(`EINVAL: invalid argument, copyfile '${A}' -> '${h}'`),{code:"EINVAL"})}await p.writeFilePromise(h,E)};return await this.makeCallPromise(r,async()=>await this.makeCallPromise(o,async()=>await this.baseFs.copyFilePromise(r,o,a),async(u,{subPath:A})=>await n(this.baseFs,r,u,A)),async(u,{subPath:A})=>await this.makeCallPromise(o,async()=>await n(u,A,this.baseFs,o),async(p,{subPath:h})=>u!==p?await n(u,A,p,h):await u.copyFilePromise(A,h,a)))}copyFileSync(r,o,a=0){let n=(u,A,p,h)=>{if((a&jg.constants.COPYFILE_FICLONE_FORCE)!==0)throw Object.assign(new Error(`EXDEV: cross-device clone not permitted, copyfile '${A}' -> ${h}'`),{code:"EXDEV"});if(a&jg.constants.COPYFILE_EXCL&&this.existsSync(A))throw Object.assign(new Error(`EEXIST: file already exists, copyfile '${A}' -> '${h}'`),{code:"EEXIST"});let E;try{E=u.readFileSync(A)}catch{throw Object.assign(new Error(`EINVAL: invalid argument, copyfile '${A}' -> '${h}'`),{code:"EINVAL"})}p.writeFileSync(h,E)};return this.makeCallSync(r,()=>this.makeCallSync(o,()=>this.baseFs.copyFileSync(r,o,a),(u,{subPath:A})=>n(this.baseFs,r,u,A)),(u,{subPath:A})=>this.makeCallSync(o,()=>n(u,A,this.baseFs,o),(p,{subPath:h})=>u!==p?n(u,A,p,h):u.copyFileSync(A,h,a)))}async appendFilePromise(r,o,a){return await this.makeCallPromise(r,async()=>await this.baseFs.appendFilePromise(r,o,a),async(n,{subPath:u})=>await n.appendFilePromise(u,o,a))}appendFileSync(r,o,a){return this.makeCallSync(r,()=>this.baseFs.appendFileSync(r,o,a),(n,{subPath:u})=>n.appendFileSync(u,o,a))}async writeFilePromise(r,o,a){return await this.makeCallPromise(r,async()=>await this.baseFs.writeFilePromise(r,o,a),async(n,{subPath:u})=>await n.writeFilePromise(u,o,a))}writeFileSync(r,o,a){return this.makeCallSync(r,()=>this.baseFs.writeFileSync(r,o,a),(n,{subPath:u})=>n.writeFileSync(u,o,a))}async unlinkPromise(r){return await this.makeCallPromise(r,async()=>await this.baseFs.unlinkPromise(r),async(o,{subPath:a})=>await o.unlinkPromise(a))}unlinkSync(r){return this.makeCallSync(r,()=>this.baseFs.unlinkSync(r),(o,{subPath:a})=>o.unlinkSync(a))}async utimesPromise(r,o,a){return await this.makeCallPromise(r,async()=>await this.baseFs.utimesPromise(r,o,a),async(n,{subPath:u})=>await n.utimesPromise(u,o,a))}utimesSync(r,o,a){return this.makeCallSync(r,()=>this.baseFs.utimesSync(r,o,a),(n,{subPath:u})=>n.utimesSync(u,o,a))}async lutimesPromise(r,o,a){return await this.makeCallPromise(r,async()=>await this.baseFs.lutimesPromise(r,o,a),async(n,{subPath:u})=>await n.lutimesPromise(u,o,a))}lutimesSync(r,o,a){return this.makeCallSync(r,()=>this.baseFs.lutimesSync(r,o,a),(n,{subPath:u})=>n.lutimesSync(u,o,a))}async mkdirPromise(r,o){return await this.makeCallPromise(r,async()=>await this.baseFs.mkdirPromise(r,o),async(a,{subPath:n})=>await a.mkdirPromise(n,o))}mkdirSync(r,o){return this.makeCallSync(r,()=>this.baseFs.mkdirSync(r,o),(a,{subPath:n})=>a.mkdirSync(n,o))}async rmdirPromise(r,o){return await this.makeCallPromise(r,async()=>await this.baseFs.rmdirPromise(r,o),async(a,{subPath:n})=>await a.rmdirPromise(n,o))}rmdirSync(r,o){return this.makeCallSync(r,()=>this.baseFs.rmdirSync(r,o),(a,{subPath:n})=>a.rmdirSync(n,o))}async linkPromise(r,o){return await this.makeCallPromise(o,async()=>await this.baseFs.linkPromise(r,o),async(a,{subPath:n})=>await a.linkPromise(r,n))}linkSync(r,o){return this.makeCallSync(o,()=>this.baseFs.linkSync(r,o),(a,{subPath:n})=>a.linkSync(r,n))}async symlinkPromise(r,o,a){return await this.makeCallPromise(o,async()=>await this.baseFs.symlinkPromise(r,o,a),async(n,{subPath:u})=>await n.symlinkPromise(r,u))}symlinkSync(r,o,a){return this.makeCallSync(o,()=>this.baseFs.symlinkSync(r,o,a),(n,{subPath:u})=>n.symlinkSync(r,u))}async readFilePromise(r,o){return this.makeCallPromise(r,async()=>await this.baseFs.readFilePromise(r,o),async(a,{subPath:n})=>await a.readFilePromise(n,o))}readFileSync(r,o){return this.makeCallSync(r,()=>this.baseFs.readFileSync(r,o),(a,{subPath:n})=>a.readFileSync(n,o))}async readdirPromise(r,o){return await this.makeCallPromise(r,async()=>await this.baseFs.readdirPromise(r,o),async(a,{subPath:n})=>await a.readdirPromise(n,o),{requireSubpath:!1})}readdirSync(r,o){return this.makeCallSync(r,()=>this.baseFs.readdirSync(r,o),(a,{subPath:n})=>a.readdirSync(n,o),{requireSubpath:!1})}async readlinkPromise(r){return await this.makeCallPromise(r,async()=>await this.baseFs.readlinkPromise(r),async(o,{subPath:a})=>await o.readlinkPromise(a))}readlinkSync(r){return this.makeCallSync(r,()=>this.baseFs.readlinkSync(r),(o,{subPath:a})=>o.readlinkSync(a))}async truncatePromise(r,o){return await this.makeCallPromise(r,async()=>await this.baseFs.truncatePromise(r,o),async(a,{subPath:n})=>await a.truncatePromise(n,o))}truncateSync(r,o){return this.makeCallSync(r,()=>this.baseFs.truncateSync(r,o),(a,{subPath:n})=>a.truncateSync(n,o))}async ftruncatePromise(r,o){if((r&wa)!==this.magic)return this.baseFs.ftruncatePromise(r,o);let a=this.fdMap.get(r);if(typeof a>"u")throw Io("ftruncate");let[n,u]=a;return n.ftruncatePromise(u,o)}ftruncateSync(r,o){if((r&wa)!==this.magic)return this.baseFs.ftruncateSync(r,o);let a=this.fdMap.get(r);if(typeof a>"u")throw Io("ftruncateSync");let[n,u]=a;return n.ftruncateSync(u,o)}watch(r,o,a){return this.makeCallSync(r,()=>this.baseFs.watch(r,o,a),(n,{subPath:u})=>n.watch(u,o,a))}watchFile(r,o,a){return this.makeCallSync(r,()=>this.baseFs.watchFile(r,o,a),()=>ny(this,r,o,a))}unwatchFile(r,o){return this.makeCallSync(r,()=>this.baseFs.unwatchFile(r,o),()=>Mg(this,r,o))}async makeCallPromise(r,o,a,{requireSubpath:n=!0}={}){if(typeof r!="string")return await o();let u=this.resolve(r),A=this.findMount(u);return A?n&&A.subPath==="/"?await o():await this.getMountPromise(A.archivePath,async p=>await a(p,A)):await o()}makeCallSync(r,o,a,{requireSubpath:n=!0}={}){if(typeof r!="string")return o();let u=this.resolve(r),A=this.findMount(u);return!A||n&&A.subPath==="/"?o():this.getMountSync(A.archivePath,p=>a(p,A))}findMount(r){if(this.filter&&!this.filter.test(r))return null;let o="";for(;;){let a=r.substring(o.length),n=this.getMountPoint(a,o);if(!n)return null;if(o=this.pathUtils.join(o,n),!this.isMount.has(o)){if(this.notMount.has(o))continue;try{if(this.typeCheck!==null&&(this.baseFs.lstatSync(o).mode&jg.constants.S_IFMT)!==this.typeCheck){this.notMount.add(o);continue}}catch{return null}this.isMount.add(o)}return{archivePath:o,subPath:this.pathUtils.join(Bt.root,r.substring(o.length))}}}limitOpenFiles(r){if(this.mountInstances===null)return;let o=Date.now(),a=o+this.maxAge,n=r===null?0:this.mountInstances.size-r;for(let[u,{childFs:A,expiresAt:p,refCount:h}]of this.mountInstances.entries())if(!(h!==0||A.hasOpenFileHandles?.())){if(o>=p){A.saveAndClose?.(),this.mountInstances.delete(u),n-=1;continue}else if(r===null||n<=0){a=p;break}A.saveAndClose?.(),this.mountInstances.delete(u),n-=1}this.limitOpenFilesTimeout===null&&(r===null&&this.mountInstances.size>0||r!==null)&&isFinite(a)&&(this.limitOpenFilesTimeout=setTimeout(()=>{this.limitOpenFilesTimeout=null,this.limitOpenFiles(null)},a-o).unref())}async getMountPromise(r,o){if(this.mountInstances){let a=this.mountInstances.get(r);if(!a){let n=await this.factoryPromise(this.baseFs,r);a=this.mountInstances.get(r),a||(a={childFs:n(),expiresAt:0,refCount:0})}this.mountInstances.delete(r),this.limitOpenFiles(this.maxOpenFiles-1),this.mountInstances.set(r,a),a.expiresAt=Date.now()+this.maxAge,a.refCount+=1;try{return await o(a.childFs)}finally{a.refCount-=1}}else{let a=(await this.factoryPromise(this.baseFs,r))();try{return await o(a)}finally{a.saveAndClose?.()}}}getMountSync(r,o){if(this.mountInstances){let a=this.mountInstances.get(r);return a||(a={childFs:this.factorySync(this.baseFs,r),expiresAt:0,refCount:0}),this.mountInstances.delete(r),this.limitOpenFiles(this.maxOpenFiles-1),this.mountInstances.set(r,a),a.expiresAt=Date.now()+this.maxAge,o(a.childFs)}else{let a=this.factorySync(this.baseFs,r);try{return o(a)}finally{a.saveAndClose?.()}}}}});var Zt,WR,Yw,z7=Et(()=>{Hg();Ca();Zt=()=>Object.assign(new Error("ENOSYS: unsupported filesystem access"),{code:"ENOSYS"}),WR=class extends gf{constructor(){super(V)}getExtractHint(){throw Zt()}getRealPath(){throw Zt()}resolve(){throw Zt()}async openPromise(){throw Zt()}openSync(){throw Zt()}async opendirPromise(){throw Zt()}opendirSync(){throw Zt()}async readPromise(){throw Zt()}readSync(){throw Zt()}async writePromise(){throw Zt()}writeSync(){throw Zt()}async closePromise(){throw Zt()}closeSync(){throw Zt()}createWriteStream(){throw Zt()}createReadStream(){throw Zt()}async realpathPromise(){throw Zt()}realpathSync(){throw Zt()}async readdirPromise(){throw Zt()}readdirSync(){throw Zt()}async existsPromise(e){throw Zt()}existsSync(e){throw Zt()}async accessPromise(){throw Zt()}accessSync(){throw Zt()}async statPromise(){throw Zt()}statSync(){throw Zt()}async fstatPromise(e){throw Zt()}fstatSync(e){throw Zt()}async lstatPromise(e){throw Zt()}lstatSync(e){throw Zt()}async fchmodPromise(){throw Zt()}fchmodSync(){throw Zt()}async chmodPromise(){throw Zt()}chmodSync(){throw Zt()}async fchownPromise(){throw Zt()}fchownSync(){throw Zt()}async chownPromise(){throw Zt()}chownSync(){throw Zt()}async mkdirPromise(){throw Zt()}mkdirSync(){throw Zt()}async rmdirPromise(){throw Zt()}rmdirSync(){throw Zt()}async linkPromise(){throw Zt()}linkSync(){throw Zt()}async symlinkPromise(){throw Zt()}symlinkSync(){throw Zt()}async renamePromise(){throw Zt()}renameSync(){throw Zt()}async copyFilePromise(){throw Zt()}copyFileSync(){throw Zt()}async appendFilePromise(){throw Zt()}appendFileSync(){throw Zt()}async writeFilePromise(){throw Zt()}writeFileSync(){throw Zt()}async unlinkPromise(){throw Zt()}unlinkSync(){throw Zt()}async utimesPromise(){throw Zt()}utimesSync(){throw Zt()}async lutimesPromise(){throw Zt()}lutimesSync(){throw Zt()}async readFilePromise(){throw Zt()}readFileSync(){throw Zt()}async readlinkPromise(){throw Zt()}readlinkSync(){throw Zt()}async truncatePromise(){throw Zt()}truncateSync(){throw Zt()}async ftruncatePromise(e,r){throw Zt()}ftruncateSync(e,r){throw Zt()}watch(){throw Zt()}watchFile(){throw Zt()}unwatchFile(){throw Zt()}},Yw=WR;Yw.instance=new WR});var qp,X7=Et(()=>{df();Ca();qp=class extends Ss{constructor(r){super(ue);this.baseFs=r}mapFromBase(r){return ue.fromPortablePath(r)}mapToBase(r){return ue.toPortablePath(r)}}});var x_e,KR,k_e,mi,Z7=Et(()=>{qg();df();Ca();x_e=/^[0-9]+$/,KR=/^(\/(?:[^/]+\/)*?(?:\$\$virtual|__virtual__))((?:\/((?:[^/]+-)?[a-f0-9]+)(?:\/([^/]+))?)?((?:\/.*)?))$/,k_e=/^([^/]+-)?[a-f0-9]+$/,mi=class extends Ss{constructor({baseFs:r=new Tn}={}){super(V);this.baseFs=r}static makeVirtualPath(r,o,a){if(V.basename(r)!=="__virtual__")throw new Error('Assertion failed: Virtual folders must be named "__virtual__"');if(!V.basename(o).match(k_e))throw new Error("Assertion failed: Virtual components must be ended by an hexadecimal hash");let u=V.relative(V.dirname(r),a).split("/"),A=0;for(;A{VR=$e(ve("buffer")),$7=ve("url"),eY=ve("util");df();Ca();xD=class extends Ss{constructor(r){super(ue);this.baseFs=r}mapFromBase(r){return r}mapToBase(r){if(typeof r=="string")return r;if(r instanceof URL)return(0,$7.fileURLToPath)(r);if(Buffer.isBuffer(r)){let o=r.toString();if(!Q_e(r,o))throw new Error("Non-utf8 buffers are not supported at the moment. Please upvote the following issue if you encounter this error: https://github.com/yarnpkg/berry/issues/4942");return o}throw new Error(`Unsupported path type: ${(0,eY.inspect)(r)}`)}}});var rY,Bo,mf,jp,kD,QD,sy,Tc,Nc,F_e,R_e,T_e,N_e,Ww,nY=Et(()=>{rY=ve("readline"),Bo=Symbol("kBaseFs"),mf=Symbol("kFd"),jp=Symbol("kClosePromise"),kD=Symbol("kCloseResolve"),QD=Symbol("kCloseReject"),sy=Symbol("kRefs"),Tc=Symbol("kRef"),Nc=Symbol("kUnref"),Ww=class{constructor(e,r){this[F_e]=1;this[R_e]=void 0;this[T_e]=void 0;this[N_e]=void 0;this[Bo]=r,this[mf]=e}get fd(){return this[mf]}async appendFile(e,r){try{this[Tc](this.appendFile);let o=(typeof r=="string"?r:r?.encoding)??void 0;return await this[Bo].appendFilePromise(this.fd,e,o?{encoding:o}:void 0)}finally{this[Nc]()}}async chown(e,r){try{return this[Tc](this.chown),await this[Bo].fchownPromise(this.fd,e,r)}finally{this[Nc]()}}async chmod(e){try{return this[Tc](this.chmod),await this[Bo].fchmodPromise(this.fd,e)}finally{this[Nc]()}}createReadStream(e){return this[Bo].createReadStream(null,{...e,fd:this.fd})}createWriteStream(e){return this[Bo].createWriteStream(null,{...e,fd:this.fd})}datasync(){throw new Error("Method not implemented.")}sync(){throw new Error("Method not implemented.")}async read(e,r,o,a){try{this[Tc](this.read);let n;return Buffer.isBuffer(e)?n=e:(e??={},n=e.buffer??Buffer.alloc(16384),r=e.offset||0,o=e.length??n.byteLength,a=e.position??null),r??=0,o??=0,o===0?{bytesRead:o,buffer:n}:{bytesRead:await this[Bo].readPromise(this.fd,n,r,o,a),buffer:n}}finally{this[Nc]()}}async readFile(e){try{this[Tc](this.readFile);let r=(typeof e=="string"?e:e?.encoding)??void 0;return await this[Bo].readFilePromise(this.fd,r)}finally{this[Nc]()}}readLines(e){return(0,rY.createInterface)({input:this.createReadStream(e),crlfDelay:1/0})}async stat(e){try{return this[Tc](this.stat),await this[Bo].fstatPromise(this.fd,e)}finally{this[Nc]()}}async truncate(e){try{return this[Tc](this.truncate),await this[Bo].ftruncatePromise(this.fd,e)}finally{this[Nc]()}}utimes(e,r){throw new Error("Method not implemented.")}async writeFile(e,r){try{this[Tc](this.writeFile);let o=(typeof r=="string"?r:r?.encoding)??void 0;await this[Bo].writeFilePromise(this.fd,e,o)}finally{this[Nc]()}}async write(...e){try{if(this[Tc](this.write),ArrayBuffer.isView(e[0])){let[r,o,a,n]=e;return{bytesWritten:await this[Bo].writePromise(this.fd,r,o??void 0,a??void 0,n??void 0),buffer:r}}else{let[r,o,a]=e;return{bytesWritten:await this[Bo].writePromise(this.fd,r,o,a),buffer:r}}}finally{this[Nc]()}}async writev(e,r){try{this[Tc](this.writev);let o=0;if(typeof r<"u")for(let a of e){let n=await this.write(a,void 0,void 0,r);o+=n.bytesWritten,r+=n.bytesWritten}else for(let a of e){let n=await this.write(a);o+=n.bytesWritten}return{buffers:e,bytesWritten:o}}finally{this[Nc]()}}readv(e,r){throw new Error("Method not implemented.")}close(){if(this[mf]===-1)return Promise.resolve();if(this[jp])return this[jp];if(this[sy]--,this[sy]===0){let e=this[mf];this[mf]=-1,this[jp]=this[Bo].closePromise(e).finally(()=>{this[jp]=void 0})}else this[jp]=new Promise((e,r)=>{this[kD]=e,this[QD]=r}).finally(()=>{this[jp]=void 0,this[QD]=void 0,this[kD]=void 0});return this[jp]}[(Bo,mf,F_e=sy,R_e=jp,T_e=kD,N_e=QD,Tc)](e){if(this[mf]===-1){let r=new Error("file closed");throw r.code="EBADF",r.syscall=e.name,r}this[sy]++}[Nc](){if(this[sy]--,this[sy]===0){let e=this[mf];this[mf]=-1,this[Bo].closePromise(e).then(this[kD],this[QD])}}}});function Kw(t,e){e=new xD(e);let r=(o,a,n)=>{let u=o[a];o[a]=n,typeof u?.[oy.promisify.custom]<"u"&&(n[oy.promisify.custom]=u[oy.promisify.custom])};{r(t,"exists",(o,...a)=>{let u=typeof a[a.length-1]=="function"?a.pop():()=>{};process.nextTick(()=>{e.existsPromise(o).then(A=>{u(A)},()=>{u(!1)})})}),r(t,"read",(...o)=>{let[a,n,u,A,p,h]=o;if(o.length<=3){let E={};o.length<3?h=o[1]:(E=o[1],h=o[2]),{buffer:n=Buffer.alloc(16384),offset:u=0,length:A=n.byteLength,position:p}=E}if(u==null&&(u=0),A|=0,A===0){process.nextTick(()=>{h(null,0,n)});return}p==null&&(p=-1),process.nextTick(()=>{e.readPromise(a,n,u,A,p).then(E=>{h(null,E,n)},E=>{h(E,0,n)})})});for(let o of iY){let a=o.replace(/Promise$/,"");if(typeof t[a]>"u")continue;let n=e[o];if(typeof n>"u")continue;r(t,a,(...A)=>{let h=typeof A[A.length-1]=="function"?A.pop():()=>{};process.nextTick(()=>{n.apply(e,A).then(E=>{h(null,E)},E=>{h(E)})})})}t.realpath.native=t.realpath}{r(t,"existsSync",o=>{try{return e.existsSync(o)}catch{return!1}}),r(t,"readSync",(...o)=>{let[a,n,u,A,p]=o;return o.length<=3&&({offset:u=0,length:A=n.byteLength,position:p}=o[2]||{}),u==null&&(u=0),A|=0,A===0?0:(p==null&&(p=-1),e.readSync(a,n,u,A,p))});for(let o of L_e){let a=o;if(typeof t[a]>"u")continue;let n=e[o];typeof n>"u"||r(t,a,n.bind(e))}t.realpathSync.native=t.realpathSync}{let o=t.promises;for(let a of iY){let n=a.replace(/Promise$/,"");if(typeof o[n]>"u")continue;let u=e[a];typeof u>"u"||a!=="open"&&r(o,n,(A,...p)=>A instanceof Ww?A[n].apply(A,p):u.call(e,A,...p))}r(o,"open",async(...a)=>{let n=await e.openPromise(...a);return new Ww(n,e)})}t.read[oy.promisify.custom]=async(o,a,...n)=>({bytesRead:await e.readPromise(o,a,...n),buffer:a}),t.write[oy.promisify.custom]=async(o,a,...n)=>({bytesWritten:await e.writePromise(o,a,...n),buffer:a})}function FD(t,e){let r=Object.create(t);return Kw(r,e),r}var oy,L_e,iY,sY=Et(()=>{oy=ve("util");tY();nY();L_e=new Set(["accessSync","appendFileSync","createReadStream","createWriteStream","chmodSync","fchmodSync","chownSync","fchownSync","closeSync","copyFileSync","linkSync","lstatSync","fstatSync","lutimesSync","mkdirSync","openSync","opendirSync","readlinkSync","readFileSync","readdirSync","readlinkSync","realpathSync","renameSync","rmdirSync","statSync","symlinkSync","truncateSync","ftruncateSync","unlinkSync","unwatchFile","utimesSync","watch","watchFile","writeFileSync","writeSync"]),iY=new Set(["accessPromise","appendFilePromise","fchmodPromise","chmodPromise","fchownPromise","chownPromise","closePromise","copyFilePromise","linkPromise","fstatPromise","lstatPromise","lutimesPromise","mkdirPromise","openPromise","opendirPromise","readdirPromise","realpathPromise","readFilePromise","readdirPromise","readlinkPromise","renamePromise","rmdirPromise","statPromise","symlinkPromise","truncatePromise","ftruncatePromise","unlinkPromise","utimesPromise","writeFilePromise","writeSync"])});function oY(t){let e=Math.ceil(Math.random()*4294967296).toString(16).padStart(8,"0");return`${t}${e}`}function aY(){if(JR)return JR;let t=ue.toPortablePath(lY.default.tmpdir()),e=oe.realpathSync(t);return process.once("exit",()=>{oe.rmtempSync()}),JR={tmpdir:t,realTmpdir:e}}var lY,Lc,JR,oe,cY=Et(()=>{lY=$e(ve("os"));qg();Ca();Lc=new Set,JR=null;oe=Object.assign(new Tn,{detachTemp(t){Lc.delete(t)},mktempSync(t){let{tmpdir:e,realTmpdir:r}=aY();for(;;){let o=oY("xfs-");try{this.mkdirSync(V.join(e,o))}catch(n){if(n.code==="EEXIST")continue;throw n}let a=V.join(r,o);if(Lc.add(a),typeof t>"u")return a;try{return t(a)}finally{if(Lc.has(a)){Lc.delete(a);try{this.removeSync(a)}catch{}}}}},async mktempPromise(t){let{tmpdir:e,realTmpdir:r}=aY();for(;;){let o=oY("xfs-");try{await this.mkdirPromise(V.join(e,o))}catch(n){if(n.code==="EEXIST")continue;throw n}let a=V.join(r,o);if(Lc.add(a),typeof t>"u")return a;try{return await t(a)}finally{if(Lc.has(a)){Lc.delete(a);try{await this.removePromise(a)}catch{}}}}},async rmtempPromise(){await Promise.all(Array.from(Lc.values()).map(async t=>{try{await oe.removePromise(t,{maxRetries:0}),Lc.delete(t)}catch{}}))},rmtempSync(){for(let t of Lc)try{oe.removeSync(t),Lc.delete(t)}catch{}}})});var Vw={};Vt(Vw,{AliasFS:()=>Uu,BasePortableFakeFS:()=>Mu,CustomDir:()=>Gw,CwdFS:()=>gn,FakeFS:()=>gf,Filename:()=>dr,JailFS:()=>_u,LazyFS:()=>iy,MountFS:()=>Hp,NoFS:()=>Yw,NodeFS:()=>Tn,PortablePath:()=>Bt,PosixFS:()=>qp,ProxiedFS:()=>Ss,VirtualFS:()=>mi,constants:()=>vi,errors:()=>ar,extendFs:()=>FD,normalizeLineEndings:()=>_g,npath:()=>ue,opendir:()=>PD,patchFs:()=>Kw,ppath:()=>V,setupCopyIndex:()=>SD,statUtils:()=>Ea,unwatchAllFiles:()=>Ug,unwatchFile:()=>Mg,watchFile:()=>ny,xfs:()=>oe});var St=Et(()=>{k7();BD();HR();GR();L7();YR();Hg();Ca();Ca();q7();Hg();Y7();K7();V7();J7();z7();qg();X7();df();Z7();sY();cY()});var hY=_((obt,pY)=>{pY.exports=fY;fY.sync=M_e;var uY=ve("fs");function O_e(t,e){var r=e.pathExt!==void 0?e.pathExt:process.env.PATHEXT;if(!r||(r=r.split(";"),r.indexOf("")!==-1))return!0;for(var o=0;o{yY.exports=dY;dY.sync=U_e;var gY=ve("fs");function dY(t,e,r){gY.stat(t,function(o,a){r(o,o?!1:mY(a,e))})}function U_e(t,e){return mY(gY.statSync(t),e)}function mY(t,e){return t.isFile()&&__e(t,e)}function __e(t,e){var r=t.mode,o=t.uid,a=t.gid,n=e.uid!==void 0?e.uid:process.getuid&&process.getuid(),u=e.gid!==void 0?e.gid:process.getgid&&process.getgid(),A=parseInt("100",8),p=parseInt("010",8),h=parseInt("001",8),E=A|p,I=r&h||r&p&&a===u||r&A&&o===n||r&E&&n===0;return I}});var wY=_((cbt,CY)=>{var lbt=ve("fs"),RD;process.platform==="win32"||global.TESTING_WINDOWS?RD=hY():RD=EY();CY.exports=zR;zR.sync=H_e;function zR(t,e,r){if(typeof e=="function"&&(r=e,e={}),!r){if(typeof Promise!="function")throw new TypeError("callback not provided");return new Promise(function(o,a){zR(t,e||{},function(n,u){n?a(n):o(u)})})}RD(t,e||{},function(o,a){o&&(o.code==="EACCES"||e&&e.ignoreErrors)&&(o=null,a=!1),r(o,a)})}function H_e(t,e){try{return RD.sync(t,e||{})}catch(r){if(e&&e.ignoreErrors||r.code==="EACCES")return!1;throw r}}});var bY=_((ubt,PY)=>{var ay=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",IY=ve("path"),q_e=ay?";":":",BY=wY(),vY=t=>Object.assign(new Error(`not found: ${t}`),{code:"ENOENT"}),DY=(t,e)=>{let r=e.colon||q_e,o=t.match(/\//)||ay&&t.match(/\\/)?[""]:[...ay?[process.cwd()]:[],...(e.path||process.env.PATH||"").split(r)],a=ay?e.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",n=ay?a.split(r):[""];return ay&&t.indexOf(".")!==-1&&n[0]!==""&&n.unshift(""),{pathEnv:o,pathExt:n,pathExtExe:a}},SY=(t,e,r)=>{typeof e=="function"&&(r=e,e={}),e||(e={});let{pathEnv:o,pathExt:a,pathExtExe:n}=DY(t,e),u=[],A=h=>new Promise((E,I)=>{if(h===o.length)return e.all&&u.length?E(u):I(vY(t));let v=o[h],x=/^".*"$/.test(v)?v.slice(1,-1):v,C=IY.join(x,t),R=!x&&/^\.[\\\/]/.test(t)?t.slice(0,2)+C:C;E(p(R,h,0))}),p=(h,E,I)=>new Promise((v,x)=>{if(I===a.length)return v(A(E+1));let C=a[I];BY(h+C,{pathExt:n},(R,L)=>{if(!R&&L)if(e.all)u.push(h+C);else return v(h+C);return v(p(h,E,I+1))})});return r?A(0).then(h=>r(null,h),r):A(0)},j_e=(t,e)=>{e=e||{};let{pathEnv:r,pathExt:o,pathExtExe:a}=DY(t,e),n=[];for(let u=0;u{"use strict";var xY=(t={})=>{let e=t.env||process.env;return(t.platform||process.platform)!=="win32"?"PATH":Object.keys(e).reverse().find(o=>o.toUpperCase()==="PATH")||"Path"};XR.exports=xY;XR.exports.default=xY});var TY=_((fbt,RY)=>{"use strict";var QY=ve("path"),G_e=bY(),Y_e=kY();function FY(t,e){let r=t.options.env||process.env,o=process.cwd(),a=t.options.cwd!=null,n=a&&process.chdir!==void 0&&!process.chdir.disabled;if(n)try{process.chdir(t.options.cwd)}catch{}let u;try{u=G_e.sync(t.command,{path:r[Y_e({env:r})],pathExt:e?QY.delimiter:void 0})}catch{}finally{n&&process.chdir(o)}return u&&(u=QY.resolve(a?t.options.cwd:"",u)),u}function W_e(t){return FY(t)||FY(t,!0)}RY.exports=W_e});var NY=_((pbt,$R)=>{"use strict";var ZR=/([()\][%!^"`<>&|;, *?])/g;function K_e(t){return t=t.replace(ZR,"^$1"),t}function V_e(t,e){return t=`${t}`,t=t.replace(/(\\*)"/g,'$1$1\\"'),t=t.replace(/(\\*)$/,"$1$1"),t=`"${t}"`,t=t.replace(ZR,"^$1"),e&&(t=t.replace(ZR,"^$1")),t}$R.exports.command=K_e;$R.exports.argument=V_e});var OY=_((hbt,LY)=>{"use strict";LY.exports=/^#!(.*)/});var UY=_((gbt,MY)=>{"use strict";var J_e=OY();MY.exports=(t="")=>{let e=t.match(J_e);if(!e)return null;let[r,o]=e[0].replace(/#! ?/,"").split(" "),a=r.split("/").pop();return a==="env"?o:o?`${a} ${o}`:a}});var HY=_((dbt,_Y)=>{"use strict";var eT=ve("fs"),z_e=UY();function X_e(t){let r=Buffer.alloc(150),o;try{o=eT.openSync(t,"r"),eT.readSync(o,r,0,150,0),eT.closeSync(o)}catch{}return z_e(r.toString())}_Y.exports=X_e});var YY=_((mbt,GY)=>{"use strict";var Z_e=ve("path"),qY=TY(),jY=NY(),$_e=HY(),e8e=process.platform==="win32",t8e=/\.(?:com|exe)$/i,r8e=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function n8e(t){t.file=qY(t);let e=t.file&&$_e(t.file);return e?(t.args.unshift(t.file),t.command=e,qY(t)):t.file}function i8e(t){if(!e8e)return t;let e=n8e(t),r=!t8e.test(e);if(t.options.forceShell||r){let o=r8e.test(e);t.command=Z_e.normalize(t.command),t.command=jY.command(t.command),t.args=t.args.map(n=>jY.argument(n,o));let a=[t.command].concat(t.args).join(" ");t.args=["/d","/s","/c",`"${a}"`],t.command=process.env.comspec||"cmd.exe",t.options.windowsVerbatimArguments=!0}return t}function s8e(t,e,r){e&&!Array.isArray(e)&&(r=e,e=null),e=e?e.slice(0):[],r=Object.assign({},r);let o={command:t,args:e,options:r,file:void 0,original:{command:t,args:e}};return r.shell?o:i8e(o)}GY.exports=s8e});var VY=_((ybt,KY)=>{"use strict";var tT=process.platform==="win32";function rT(t,e){return Object.assign(new Error(`${e} ${t.command} ENOENT`),{code:"ENOENT",errno:"ENOENT",syscall:`${e} ${t.command}`,path:t.command,spawnargs:t.args})}function o8e(t,e){if(!tT)return;let r=t.emit;t.emit=function(o,a){if(o==="exit"){let n=WY(a,e,"spawn");if(n)return r.call(t,"error",n)}return r.apply(t,arguments)}}function WY(t,e){return tT&&t===1&&!e.file?rT(e.original,"spawn"):null}function a8e(t,e){return tT&&t===1&&!e.file?rT(e.original,"spawnSync"):null}KY.exports={hookChildProcess:o8e,verifyENOENT:WY,verifyENOENTSync:a8e,notFoundError:rT}});var sT=_((Ebt,ly)=>{"use strict";var JY=ve("child_process"),nT=YY(),iT=VY();function zY(t,e,r){let o=nT(t,e,r),a=JY.spawn(o.command,o.args,o.options);return iT.hookChildProcess(a,o),a}function l8e(t,e,r){let o=nT(t,e,r),a=JY.spawnSync(o.command,o.args,o.options);return a.error=a.error||iT.verifyENOENTSync(a.status,o),a}ly.exports=zY;ly.exports.spawn=zY;ly.exports.sync=l8e;ly.exports._parse=nT;ly.exports._enoent=iT});var ZY=_((Cbt,XY)=>{"use strict";function c8e(t,e){function r(){this.constructor=t}r.prototype=e.prototype,t.prototype=new r}function Gg(t,e,r,o){this.message=t,this.expected=e,this.found=r,this.location=o,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,Gg)}c8e(Gg,Error);Gg.buildMessage=function(t,e){var r={literal:function(h){return'"'+a(h.text)+'"'},class:function(h){var E="",I;for(I=0;I0){for(I=1,v=1;I>",P=Br(">>",!1),y=">&",F=Br(">&",!1),z=">",X=Br(">",!1),Z="<<<",ie=Br("<<<",!1),Pe="<&",Ne=Br("<&",!1),ot="<",dt=Br("<",!1),jt=function(N){return{type:"argument",segments:[].concat(...N)}},$t=function(N){return N},bt="$'",an=Br("$'",!1),Qr="'",mr=Br("'",!1),br=function(N){return[{type:"text",text:N}]},Wr='""',Kn=Br('""',!1),Ns=function(){return{type:"text",text:""}},Ti='"',ps=Br('"',!1),io=function(N){return N},Pi=function(N){return{type:"arithmetic",arithmetic:N,quoted:!0}},Ls=function(N){return{type:"shell",shell:N,quoted:!0}},so=function(N){return{type:"variable",...N,quoted:!0}},cc=function(N){return{type:"text",text:N}},cu=function(N){return{type:"arithmetic",arithmetic:N,quoted:!1}},lp=function(N){return{type:"shell",shell:N,quoted:!1}},cp=function(N){return{type:"variable",...N,quoted:!1}},Os=function(N){return{type:"glob",pattern:N}},Dn=/^[^']/,oo=Cs(["'"],!0,!1),Ms=function(N){return N.join("")},ml=/^[^$"]/,yl=Cs(["$",'"'],!0,!1),ao=`\\ +`,Vn=Br(`\\ +`,!1),On=function(){return""},Ni="\\",Mn=Br("\\",!1),_i=/^[\\$"`]/,tr=Cs(["\\","$",'"',"`"],!1,!1),Oe=function(N){return N},ii="\\a",Ma=Br("\\a",!1),hr=function(){return"a"},uc="\\b",uu=Br("\\b",!1),Ac=function(){return"\b"},El=/^[Ee]/,DA=Cs(["E","e"],!1,!1),Au=function(){return"\x1B"},Ce="\\f",Rt=Br("\\f",!1),fc=function(){return"\f"},Hi="\\n",fu=Br("\\n",!1),Yt=function(){return` +`},Cl="\\r",SA=Br("\\r",!1),up=function(){return"\r"},pc="\\t",PA=Br("\\t",!1),Qn=function(){return" "},hi="\\v",hc=Br("\\v",!1),bA=function(){return"\v"},sa=/^[\\'"?]/,Li=Cs(["\\","'",'"',"?"],!1,!1),_o=function(N){return String.fromCharCode(parseInt(N,16))},Ze="\\x",lo=Br("\\x",!1),gc="\\u",pu=Br("\\u",!1),qi="\\U",hu=Br("\\U",!1),xA=function(N){return String.fromCodePoint(parseInt(N,16))},Ua=/^[0-7]/,dc=Cs([["0","7"]],!1,!1),hs=/^[0-9a-fA-f]/,_t=Cs([["0","9"],["a","f"],["A","f"]],!1,!1),Fn=ug(),Ci="{}",oa=Br("{}",!1),co=function(){return"{}"},Us="-",aa=Br("-",!1),la="+",Ho=Br("+",!1),wi=".",gs=Br(".",!1),ds=function(N,K,re){return{type:"number",value:(N==="-"?-1:1)*parseFloat(K.join("")+"."+re.join(""))}},ms=function(N,K){return{type:"number",value:(N==="-"?-1:1)*parseInt(K.join(""))}},_s=function(N){return{type:"variable",...N}},Un=function(N){return{type:"variable",name:N}},Sn=function(N){return N},ys="*",We=Br("*",!1),tt="/",It=Br("/",!1),nr=function(N,K,re){return{type:K==="*"?"multiplication":"division",right:re}},$=function(N,K){return K.reduce((re,pe)=>({left:re,...pe}),N)},ye=function(N,K,re){return{type:K==="+"?"addition":"subtraction",right:re}},Le="$((",pt=Br("$((",!1),ht="))",Tt=Br("))",!1),er=function(N){return N},$r="$(",ji=Br("$(",!1),es=function(N){return N},bi="${",qo=Br("${",!1),kA=":-",QA=Br(":-",!1),Ap=function(N,K){return{name:N,defaultValue:K}},ig=":-}",gu=Br(":-}",!1),sg=function(N){return{name:N,defaultValue:[]}},du=":+",uo=Br(":+",!1),FA=function(N,K){return{name:N,alternativeValue:K}},mc=":+}",ca=Br(":+}",!1),og=function(N){return{name:N,alternativeValue:[]}},yc=function(N){return{name:N}},Pm="$",ag=Br("$",!1),$n=function(N){return e.isGlobPattern(N)},fp=function(N){return N},lg=/^[a-zA-Z0-9_]/,RA=Cs([["a","z"],["A","Z"],["0","9"],"_"],!1,!1),Hs=function(){return cg()},mu=/^[$@*?#a-zA-Z0-9_\-]/,Ha=Cs(["$","@","*","?","#",["a","z"],["A","Z"],["0","9"],"_","-"],!1,!1),Gi=/^[()}<>$|&; \t"']/,ua=Cs(["(",")","}","<",">","$","|","&",";"," "," ",'"',"'"],!1,!1),yu=/^[<>&; \t"']/,Es=Cs(["<",">","&",";"," "," ",'"',"'"],!1,!1),Ec=/^[ \t]/,Cc=Cs([" "," "],!1,!1),G=0,Dt=0,wl=[{line:1,column:1}],xi=0,wc=[],ct=0,Eu;if("startRule"in e){if(!(e.startRule in o))throw new Error(`Can't start parsing from rule "`+e.startRule+'".');a=o[e.startRule]}function cg(){return t.substring(Dt,G)}function yw(){return Ic(Dt,G)}function TA(N,K){throw K=K!==void 0?K:Ic(Dt,G),pg([fg(N)],t.substring(Dt,G),K)}function pp(N,K){throw K=K!==void 0?K:Ic(Dt,G),bm(N,K)}function Br(N,K){return{type:"literal",text:N,ignoreCase:K}}function Cs(N,K,re){return{type:"class",parts:N,inverted:K,ignoreCase:re}}function ug(){return{type:"any"}}function Ag(){return{type:"end"}}function fg(N){return{type:"other",description:N}}function hp(N){var K=wl[N],re;if(K)return K;for(re=N-1;!wl[re];)re--;for(K=wl[re],K={line:K.line,column:K.column};rexi&&(xi=G,wc=[]),wc.push(N))}function bm(N,K){return new Gg(N,null,null,K)}function pg(N,K,re){return new Gg(Gg.buildMessage(N,K),N,K,re)}function hg(){var N,K,re;for(N=G,K=[],re=Qt();re!==r;)K.push(re),re=Qt();return K!==r?(re=Cu(),re===r&&(re=null),re!==r?(Dt=N,K=n(re),N=K):(G=N,N=r)):(G=N,N=r),N}function Cu(){var N,K,re,pe,ze;if(N=G,K=wu(),K!==r){for(re=[],pe=Qt();pe!==r;)re.push(pe),pe=Qt();re!==r?(pe=gg(),pe!==r?(ze=xm(),ze===r&&(ze=null),ze!==r?(Dt=N,K=u(K,pe,ze),N=K):(G=N,N=r)):(G=N,N=r)):(G=N,N=r)}else G=N,N=r;if(N===r)if(N=G,K=wu(),K!==r){for(re=[],pe=Qt();pe!==r;)re.push(pe),pe=Qt();re!==r?(pe=gg(),pe===r&&(pe=null),pe!==r?(Dt=N,K=A(K,pe),N=K):(G=N,N=r)):(G=N,N=r)}else G=N,N=r;return N}function xm(){var N,K,re,pe,ze;for(N=G,K=[],re=Qt();re!==r;)K.push(re),re=Qt();if(K!==r)if(re=Cu(),re!==r){for(pe=[],ze=Qt();ze!==r;)pe.push(ze),ze=Qt();pe!==r?(Dt=N,K=p(re),N=K):(G=N,N=r)}else G=N,N=r;else G=N,N=r;return N}function gg(){var N;return t.charCodeAt(G)===59?(N=h,G++):(N=r,ct===0&&Ct(E)),N===r&&(t.charCodeAt(G)===38?(N=I,G++):(N=r,ct===0&&Ct(v))),N}function wu(){var N,K,re;return N=G,K=Aa(),K!==r?(re=Ew(),re===r&&(re=null),re!==r?(Dt=N,K=x(K,re),N=K):(G=N,N=r)):(G=N,N=r),N}function Ew(){var N,K,re,pe,ze,mt,fr;for(N=G,K=[],re=Qt();re!==r;)K.push(re),re=Qt();if(K!==r)if(re=km(),re!==r){for(pe=[],ze=Qt();ze!==r;)pe.push(ze),ze=Qt();if(pe!==r)if(ze=wu(),ze!==r){for(mt=[],fr=Qt();fr!==r;)mt.push(fr),fr=Qt();mt!==r?(Dt=N,K=C(re,ze),N=K):(G=N,N=r)}else G=N,N=r;else G=N,N=r}else G=N,N=r;else G=N,N=r;return N}function km(){var N;return t.substr(G,2)===R?(N=R,G+=2):(N=r,ct===0&&Ct(L)),N===r&&(t.substr(G,2)===U?(N=U,G+=2):(N=r,ct===0&&Ct(J))),N}function Aa(){var N,K,re;return N=G,K=dg(),K!==r?(re=Bc(),re===r&&(re=null),re!==r?(Dt=N,K=te(K,re),N=K):(G=N,N=r)):(G=N,N=r),N}function Bc(){var N,K,re,pe,ze,mt,fr;for(N=G,K=[],re=Qt();re!==r;)K.push(re),re=Qt();if(K!==r)if(re=Il(),re!==r){for(pe=[],ze=Qt();ze!==r;)pe.push(ze),ze=Qt();if(pe!==r)if(ze=Aa(),ze!==r){for(mt=[],fr=Qt();fr!==r;)mt.push(fr),fr=Qt();mt!==r?(Dt=N,K=ae(re,ze),N=K):(G=N,N=r)}else G=N,N=r;else G=N,N=r}else G=N,N=r;else G=N,N=r;return N}function Il(){var N;return t.substr(G,2)===fe?(N=fe,G+=2):(N=r,ct===0&&Ct(ce)),N===r&&(t.charCodeAt(G)===124?(N=me,G++):(N=r,ct===0&&Ct(he))),N}function Iu(){var N,K,re,pe,ze,mt;if(N=G,K=Cg(),K!==r)if(t.charCodeAt(G)===61?(re=Be,G++):(re=r,ct===0&&Ct(we)),re!==r)if(pe=jo(),pe!==r){for(ze=[],mt=Qt();mt!==r;)ze.push(mt),mt=Qt();ze!==r?(Dt=N,K=g(K,pe),N=K):(G=N,N=r)}else G=N,N=r;else G=N,N=r;else G=N,N=r;if(N===r)if(N=G,K=Cg(),K!==r)if(t.charCodeAt(G)===61?(re=Be,G++):(re=r,ct===0&&Ct(we)),re!==r){for(pe=[],ze=Qt();ze!==r;)pe.push(ze),ze=Qt();pe!==r?(Dt=N,K=Ee(K),N=K):(G=N,N=r)}else G=N,N=r;else G=N,N=r;return N}function dg(){var N,K,re,pe,ze,mt,fr,Cr,yn,oi,Oi;for(N=G,K=[],re=Qt();re!==r;)K.push(re),re=Qt();if(K!==r)if(t.charCodeAt(G)===40?(re=Se,G++):(re=r,ct===0&&Ct(le)),re!==r){for(pe=[],ze=Qt();ze!==r;)pe.push(ze),ze=Qt();if(pe!==r)if(ze=Cu(),ze!==r){for(mt=[],fr=Qt();fr!==r;)mt.push(fr),fr=Qt();if(mt!==r)if(t.charCodeAt(G)===41?(fr=ne,G++):(fr=r,ct===0&&Ct(ee)),fr!==r){for(Cr=[],yn=Qt();yn!==r;)Cr.push(yn),yn=Qt();if(Cr!==r){for(yn=[],oi=qa();oi!==r;)yn.push(oi),oi=qa();if(yn!==r){for(oi=[],Oi=Qt();Oi!==r;)oi.push(Oi),Oi=Qt();oi!==r?(Dt=N,K=Ie(ze,yn),N=K):(G=N,N=r)}else G=N,N=r}else G=N,N=r}else G=N,N=r;else G=N,N=r}else G=N,N=r;else G=N,N=r}else G=N,N=r;else G=N,N=r;if(N===r){for(N=G,K=[],re=Qt();re!==r;)K.push(re),re=Qt();if(K!==r)if(t.charCodeAt(G)===123?(re=Fe,G++):(re=r,ct===0&&Ct(At)),re!==r){for(pe=[],ze=Qt();ze!==r;)pe.push(ze),ze=Qt();if(pe!==r)if(ze=Cu(),ze!==r){for(mt=[],fr=Qt();fr!==r;)mt.push(fr),fr=Qt();if(mt!==r)if(t.charCodeAt(G)===125?(fr=H,G++):(fr=r,ct===0&&Ct(at)),fr!==r){for(Cr=[],yn=Qt();yn!==r;)Cr.push(yn),yn=Qt();if(Cr!==r){for(yn=[],oi=qa();oi!==r;)yn.push(oi),oi=qa();if(yn!==r){for(oi=[],Oi=Qt();Oi!==r;)oi.push(Oi),Oi=Qt();oi!==r?(Dt=N,K=Re(ze,yn),N=K):(G=N,N=r)}else G=N,N=r}else G=N,N=r}else G=N,N=r;else G=N,N=r}else G=N,N=r;else G=N,N=r}else G=N,N=r;else G=N,N=r;if(N===r){for(N=G,K=[],re=Qt();re!==r;)K.push(re),re=Qt();if(K!==r){for(re=[],pe=Iu();pe!==r;)re.push(pe),pe=Iu();if(re!==r){for(pe=[],ze=Qt();ze!==r;)pe.push(ze),ze=Qt();if(pe!==r){if(ze=[],mt=gp(),mt!==r)for(;mt!==r;)ze.push(mt),mt=gp();else ze=r;if(ze!==r){for(mt=[],fr=Qt();fr!==r;)mt.push(fr),fr=Qt();mt!==r?(Dt=N,K=ke(re,ze),N=K):(G=N,N=r)}else G=N,N=r}else G=N,N=r}else G=N,N=r}else G=N,N=r;if(N===r){for(N=G,K=[],re=Qt();re!==r;)K.push(re),re=Qt();if(K!==r){if(re=[],pe=Iu(),pe!==r)for(;pe!==r;)re.push(pe),pe=Iu();else re=r;if(re!==r){for(pe=[],ze=Qt();ze!==r;)pe.push(ze),ze=Qt();pe!==r?(Dt=N,K=xe(re),N=K):(G=N,N=r)}else G=N,N=r}else G=N,N=r}}}return N}function NA(){var N,K,re,pe,ze;for(N=G,K=[],re=Qt();re!==r;)K.push(re),re=Qt();if(K!==r){if(re=[],pe=dp(),pe!==r)for(;pe!==r;)re.push(pe),pe=dp();else re=r;if(re!==r){for(pe=[],ze=Qt();ze!==r;)pe.push(ze),ze=Qt();pe!==r?(Dt=N,K=He(re),N=K):(G=N,N=r)}else G=N,N=r}else G=N,N=r;return N}function gp(){var N,K,re;for(N=G,K=[],re=Qt();re!==r;)K.push(re),re=Qt();if(K!==r?(re=qa(),re!==r?(Dt=N,K=Te(re),N=K):(G=N,N=r)):(G=N,N=r),N===r){for(N=G,K=[],re=Qt();re!==r;)K.push(re),re=Qt();K!==r?(re=dp(),re!==r?(Dt=N,K=Te(re),N=K):(G=N,N=r)):(G=N,N=r)}return N}function qa(){var N,K,re,pe,ze;for(N=G,K=[],re=Qt();re!==r;)K.push(re),re=Qt();return K!==r?(Je.test(t.charAt(G))?(re=t.charAt(G),G++):(re=r,ct===0&&Ct(qe)),re===r&&(re=null),re!==r?(pe=mg(),pe!==r?(ze=dp(),ze!==r?(Dt=N,K=b(re,pe,ze),N=K):(G=N,N=r)):(G=N,N=r)):(G=N,N=r)):(G=N,N=r),N}function mg(){var N;return t.substr(G,2)===w?(N=w,G+=2):(N=r,ct===0&&Ct(P)),N===r&&(t.substr(G,2)===y?(N=y,G+=2):(N=r,ct===0&&Ct(F)),N===r&&(t.charCodeAt(G)===62?(N=z,G++):(N=r,ct===0&&Ct(X)),N===r&&(t.substr(G,3)===Z?(N=Z,G+=3):(N=r,ct===0&&Ct(ie)),N===r&&(t.substr(G,2)===Pe?(N=Pe,G+=2):(N=r,ct===0&&Ct(Ne)),N===r&&(t.charCodeAt(G)===60?(N=ot,G++):(N=r,ct===0&&Ct(dt))))))),N}function dp(){var N,K,re;for(N=G,K=[],re=Qt();re!==r;)K.push(re),re=Qt();return K!==r?(re=jo(),re!==r?(Dt=N,K=Te(re),N=K):(G=N,N=r)):(G=N,N=r),N}function jo(){var N,K,re;if(N=G,K=[],re=ws(),re!==r)for(;re!==r;)K.push(re),re=ws();else K=r;return K!==r&&(Dt=N,K=jt(K)),N=K,N}function ws(){var N,K;return N=G,K=Ii(),K!==r&&(Dt=N,K=$t(K)),N=K,N===r&&(N=G,K=Qm(),K!==r&&(Dt=N,K=$t(K)),N=K,N===r&&(N=G,K=Fm(),K!==r&&(Dt=N,K=$t(K)),N=K,N===r&&(N=G,K=Go(),K!==r&&(Dt=N,K=$t(K)),N=K))),N}function Ii(){var N,K,re,pe;return N=G,t.substr(G,2)===bt?(K=bt,G+=2):(K=r,ct===0&&Ct(an)),K!==r?(re=ln(),re!==r?(t.charCodeAt(G)===39?(pe=Qr,G++):(pe=r,ct===0&&Ct(mr)),pe!==r?(Dt=N,K=br(re),N=K):(G=N,N=r)):(G=N,N=r)):(G=N,N=r),N}function Qm(){var N,K,re,pe;return N=G,t.charCodeAt(G)===39?(K=Qr,G++):(K=r,ct===0&&Ct(mr)),K!==r?(re=yp(),re!==r?(t.charCodeAt(G)===39?(pe=Qr,G++):(pe=r,ct===0&&Ct(mr)),pe!==r?(Dt=N,K=br(re),N=K):(G=N,N=r)):(G=N,N=r)):(G=N,N=r),N}function Fm(){var N,K,re,pe;if(N=G,t.substr(G,2)===Wr?(K=Wr,G+=2):(K=r,ct===0&&Ct(Kn)),K!==r&&(Dt=N,K=Ns()),N=K,N===r)if(N=G,t.charCodeAt(G)===34?(K=Ti,G++):(K=r,ct===0&&Ct(ps)),K!==r){for(re=[],pe=LA();pe!==r;)re.push(pe),pe=LA();re!==r?(t.charCodeAt(G)===34?(pe=Ti,G++):(pe=r,ct===0&&Ct(ps)),pe!==r?(Dt=N,K=io(re),N=K):(G=N,N=r)):(G=N,N=r)}else G=N,N=r;return N}function Go(){var N,K,re;if(N=G,K=[],re=mp(),re!==r)for(;re!==r;)K.push(re),re=mp();else K=r;return K!==r&&(Dt=N,K=io(K)),N=K,N}function LA(){var N,K;return N=G,K=Gr(),K!==r&&(Dt=N,K=Pi(K)),N=K,N===r&&(N=G,K=Ep(),K!==r&&(Dt=N,K=Ls(K)),N=K,N===r&&(N=G,K=Dc(),K!==r&&(Dt=N,K=so(K)),N=K,N===r&&(N=G,K=yg(),K!==r&&(Dt=N,K=cc(K)),N=K))),N}function mp(){var N,K;return N=G,K=Gr(),K!==r&&(Dt=N,K=cu(K)),N=K,N===r&&(N=G,K=Ep(),K!==r&&(Dt=N,K=lp(K)),N=K,N===r&&(N=G,K=Dc(),K!==r&&(Dt=N,K=cp(K)),N=K,N===r&&(N=G,K=Cw(),K!==r&&(Dt=N,K=Os(K)),N=K,N===r&&(N=G,K=pa(),K!==r&&(Dt=N,K=cc(K)),N=K)))),N}function yp(){var N,K,re;for(N=G,K=[],Dn.test(t.charAt(G))?(re=t.charAt(G),G++):(re=r,ct===0&&Ct(oo));re!==r;)K.push(re),Dn.test(t.charAt(G))?(re=t.charAt(G),G++):(re=r,ct===0&&Ct(oo));return K!==r&&(Dt=N,K=Ms(K)),N=K,N}function yg(){var N,K,re;if(N=G,K=[],re=fa(),re===r&&(ml.test(t.charAt(G))?(re=t.charAt(G),G++):(re=r,ct===0&&Ct(yl))),re!==r)for(;re!==r;)K.push(re),re=fa(),re===r&&(ml.test(t.charAt(G))?(re=t.charAt(G),G++):(re=r,ct===0&&Ct(yl)));else K=r;return K!==r&&(Dt=N,K=Ms(K)),N=K,N}function fa(){var N,K,re;return N=G,t.substr(G,2)===ao?(K=ao,G+=2):(K=r,ct===0&&Ct(Vn)),K!==r&&(Dt=N,K=On()),N=K,N===r&&(N=G,t.charCodeAt(G)===92?(K=Ni,G++):(K=r,ct===0&&Ct(Mn)),K!==r?(_i.test(t.charAt(G))?(re=t.charAt(G),G++):(re=r,ct===0&&Ct(tr)),re!==r?(Dt=N,K=Oe(re),N=K):(G=N,N=r)):(G=N,N=r)),N}function ln(){var N,K,re;for(N=G,K=[],re=Ao(),re===r&&(Dn.test(t.charAt(G))?(re=t.charAt(G),G++):(re=r,ct===0&&Ct(oo)));re!==r;)K.push(re),re=Ao(),re===r&&(Dn.test(t.charAt(G))?(re=t.charAt(G),G++):(re=r,ct===0&&Ct(oo)));return K!==r&&(Dt=N,K=Ms(K)),N=K,N}function Ao(){var N,K,re;return N=G,t.substr(G,2)===ii?(K=ii,G+=2):(K=r,ct===0&&Ct(Ma)),K!==r&&(Dt=N,K=hr()),N=K,N===r&&(N=G,t.substr(G,2)===uc?(K=uc,G+=2):(K=r,ct===0&&Ct(uu)),K!==r&&(Dt=N,K=Ac()),N=K,N===r&&(N=G,t.charCodeAt(G)===92?(K=Ni,G++):(K=r,ct===0&&Ct(Mn)),K!==r?(El.test(t.charAt(G))?(re=t.charAt(G),G++):(re=r,ct===0&&Ct(DA)),re!==r?(Dt=N,K=Au(),N=K):(G=N,N=r)):(G=N,N=r),N===r&&(N=G,t.substr(G,2)===Ce?(K=Ce,G+=2):(K=r,ct===0&&Ct(Rt)),K!==r&&(Dt=N,K=fc()),N=K,N===r&&(N=G,t.substr(G,2)===Hi?(K=Hi,G+=2):(K=r,ct===0&&Ct(fu)),K!==r&&(Dt=N,K=Yt()),N=K,N===r&&(N=G,t.substr(G,2)===Cl?(K=Cl,G+=2):(K=r,ct===0&&Ct(SA)),K!==r&&(Dt=N,K=up()),N=K,N===r&&(N=G,t.substr(G,2)===pc?(K=pc,G+=2):(K=r,ct===0&&Ct(PA)),K!==r&&(Dt=N,K=Qn()),N=K,N===r&&(N=G,t.substr(G,2)===hi?(K=hi,G+=2):(K=r,ct===0&&Ct(hc)),K!==r&&(Dt=N,K=bA()),N=K,N===r&&(N=G,t.charCodeAt(G)===92?(K=Ni,G++):(K=r,ct===0&&Ct(Mn)),K!==r?(sa.test(t.charAt(G))?(re=t.charAt(G),G++):(re=r,ct===0&&Ct(Li)),re!==r?(Dt=N,K=Oe(re),N=K):(G=N,N=r)):(G=N,N=r),N===r&&(N=OA()))))))))),N}function OA(){var N,K,re,pe,ze,mt,fr,Cr,yn,oi,Oi,Ig;return N=G,t.charCodeAt(G)===92?(K=Ni,G++):(K=r,ct===0&&Ct(Mn)),K!==r?(re=ja(),re!==r?(Dt=N,K=_o(re),N=K):(G=N,N=r)):(G=N,N=r),N===r&&(N=G,t.substr(G,2)===Ze?(K=Ze,G+=2):(K=r,ct===0&&Ct(lo)),K!==r?(re=G,pe=G,ze=ja(),ze!==r?(mt=si(),mt!==r?(ze=[ze,mt],pe=ze):(G=pe,pe=r)):(G=pe,pe=r),pe===r&&(pe=ja()),pe!==r?re=t.substring(re,G):re=pe,re!==r?(Dt=N,K=_o(re),N=K):(G=N,N=r)):(G=N,N=r),N===r&&(N=G,t.substr(G,2)===gc?(K=gc,G+=2):(K=r,ct===0&&Ct(pu)),K!==r?(re=G,pe=G,ze=si(),ze!==r?(mt=si(),mt!==r?(fr=si(),fr!==r?(Cr=si(),Cr!==r?(ze=[ze,mt,fr,Cr],pe=ze):(G=pe,pe=r)):(G=pe,pe=r)):(G=pe,pe=r)):(G=pe,pe=r),pe!==r?re=t.substring(re,G):re=pe,re!==r?(Dt=N,K=_o(re),N=K):(G=N,N=r)):(G=N,N=r),N===r&&(N=G,t.substr(G,2)===qi?(K=qi,G+=2):(K=r,ct===0&&Ct(hu)),K!==r?(re=G,pe=G,ze=si(),ze!==r?(mt=si(),mt!==r?(fr=si(),fr!==r?(Cr=si(),Cr!==r?(yn=si(),yn!==r?(oi=si(),oi!==r?(Oi=si(),Oi!==r?(Ig=si(),Ig!==r?(ze=[ze,mt,fr,Cr,yn,oi,Oi,Ig],pe=ze):(G=pe,pe=r)):(G=pe,pe=r)):(G=pe,pe=r)):(G=pe,pe=r)):(G=pe,pe=r)):(G=pe,pe=r)):(G=pe,pe=r)):(G=pe,pe=r),pe!==r?re=t.substring(re,G):re=pe,re!==r?(Dt=N,K=xA(re),N=K):(G=N,N=r)):(G=N,N=r)))),N}function ja(){var N;return Ua.test(t.charAt(G))?(N=t.charAt(G),G++):(N=r,ct===0&&Ct(dc)),N}function si(){var N;return hs.test(t.charAt(G))?(N=t.charAt(G),G++):(N=r,ct===0&&Ct(_t)),N}function pa(){var N,K,re,pe,ze;if(N=G,K=[],re=G,t.charCodeAt(G)===92?(pe=Ni,G++):(pe=r,ct===0&&Ct(Mn)),pe!==r?(t.length>G?(ze=t.charAt(G),G++):(ze=r,ct===0&&Ct(Fn)),ze!==r?(Dt=re,pe=Oe(ze),re=pe):(G=re,re=r)):(G=re,re=r),re===r&&(re=G,t.substr(G,2)===Ci?(pe=Ci,G+=2):(pe=r,ct===0&&Ct(oa)),pe!==r&&(Dt=re,pe=co()),re=pe,re===r&&(re=G,pe=G,ct++,ze=Rm(),ct--,ze===r?pe=void 0:(G=pe,pe=r),pe!==r?(t.length>G?(ze=t.charAt(G),G++):(ze=r,ct===0&&Ct(Fn)),ze!==r?(Dt=re,pe=Oe(ze),re=pe):(G=re,re=r)):(G=re,re=r))),re!==r)for(;re!==r;)K.push(re),re=G,t.charCodeAt(G)===92?(pe=Ni,G++):(pe=r,ct===0&&Ct(Mn)),pe!==r?(t.length>G?(ze=t.charAt(G),G++):(ze=r,ct===0&&Ct(Fn)),ze!==r?(Dt=re,pe=Oe(ze),re=pe):(G=re,re=r)):(G=re,re=r),re===r&&(re=G,t.substr(G,2)===Ci?(pe=Ci,G+=2):(pe=r,ct===0&&Ct(oa)),pe!==r&&(Dt=re,pe=co()),re=pe,re===r&&(re=G,pe=G,ct++,ze=Rm(),ct--,ze===r?pe=void 0:(G=pe,pe=r),pe!==r?(t.length>G?(ze=t.charAt(G),G++):(ze=r,ct===0&&Ct(Fn)),ze!==r?(Dt=re,pe=Oe(ze),re=pe):(G=re,re=r)):(G=re,re=r)));else K=r;return K!==r&&(Dt=N,K=Ms(K)),N=K,N}function vc(){var N,K,re,pe,ze,mt;if(N=G,t.charCodeAt(G)===45?(K=Us,G++):(K=r,ct===0&&Ct(aa)),K===r&&(t.charCodeAt(G)===43?(K=la,G++):(K=r,ct===0&&Ct(Ho))),K===r&&(K=null),K!==r){if(re=[],Je.test(t.charAt(G))?(pe=t.charAt(G),G++):(pe=r,ct===0&&Ct(qe)),pe!==r)for(;pe!==r;)re.push(pe),Je.test(t.charAt(G))?(pe=t.charAt(G),G++):(pe=r,ct===0&&Ct(qe));else re=r;if(re!==r)if(t.charCodeAt(G)===46?(pe=wi,G++):(pe=r,ct===0&&Ct(gs)),pe!==r){if(ze=[],Je.test(t.charAt(G))?(mt=t.charAt(G),G++):(mt=r,ct===0&&Ct(qe)),mt!==r)for(;mt!==r;)ze.push(mt),Je.test(t.charAt(G))?(mt=t.charAt(G),G++):(mt=r,ct===0&&Ct(qe));else ze=r;ze!==r?(Dt=N,K=ds(K,re,ze),N=K):(G=N,N=r)}else G=N,N=r;else G=N,N=r}else G=N,N=r;if(N===r){if(N=G,t.charCodeAt(G)===45?(K=Us,G++):(K=r,ct===0&&Ct(aa)),K===r&&(t.charCodeAt(G)===43?(K=la,G++):(K=r,ct===0&&Ct(Ho))),K===r&&(K=null),K!==r){if(re=[],Je.test(t.charAt(G))?(pe=t.charAt(G),G++):(pe=r,ct===0&&Ct(qe)),pe!==r)for(;pe!==r;)re.push(pe),Je.test(t.charAt(G))?(pe=t.charAt(G),G++):(pe=r,ct===0&&Ct(qe));else re=r;re!==r?(Dt=N,K=ms(K,re),N=K):(G=N,N=r)}else G=N,N=r;if(N===r&&(N=G,K=Dc(),K!==r&&(Dt=N,K=_s(K)),N=K,N===r&&(N=G,K=Ga(),K!==r&&(Dt=N,K=Un(K)),N=K,N===r)))if(N=G,t.charCodeAt(G)===40?(K=Se,G++):(K=r,ct===0&&Ct(le)),K!==r){for(re=[],pe=Qt();pe!==r;)re.push(pe),pe=Qt();if(re!==r)if(pe=ts(),pe!==r){for(ze=[],mt=Qt();mt!==r;)ze.push(mt),mt=Qt();ze!==r?(t.charCodeAt(G)===41?(mt=ne,G++):(mt=r,ct===0&&Ct(ee)),mt!==r?(Dt=N,K=Sn(pe),N=K):(G=N,N=r)):(G=N,N=r)}else G=N,N=r;else G=N,N=r}else G=N,N=r}return N}function Bl(){var N,K,re,pe,ze,mt,fr,Cr;if(N=G,K=vc(),K!==r){for(re=[],pe=G,ze=[],mt=Qt();mt!==r;)ze.push(mt),mt=Qt();if(ze!==r)if(t.charCodeAt(G)===42?(mt=ys,G++):(mt=r,ct===0&&Ct(We)),mt===r&&(t.charCodeAt(G)===47?(mt=tt,G++):(mt=r,ct===0&&Ct(It))),mt!==r){for(fr=[],Cr=Qt();Cr!==r;)fr.push(Cr),Cr=Qt();fr!==r?(Cr=vc(),Cr!==r?(Dt=pe,ze=nr(K,mt,Cr),pe=ze):(G=pe,pe=r)):(G=pe,pe=r)}else G=pe,pe=r;else G=pe,pe=r;for(;pe!==r;){for(re.push(pe),pe=G,ze=[],mt=Qt();mt!==r;)ze.push(mt),mt=Qt();if(ze!==r)if(t.charCodeAt(G)===42?(mt=ys,G++):(mt=r,ct===0&&Ct(We)),mt===r&&(t.charCodeAt(G)===47?(mt=tt,G++):(mt=r,ct===0&&Ct(It))),mt!==r){for(fr=[],Cr=Qt();Cr!==r;)fr.push(Cr),Cr=Qt();fr!==r?(Cr=vc(),Cr!==r?(Dt=pe,ze=nr(K,mt,Cr),pe=ze):(G=pe,pe=r)):(G=pe,pe=r)}else G=pe,pe=r;else G=pe,pe=r}re!==r?(Dt=N,K=$(K,re),N=K):(G=N,N=r)}else G=N,N=r;return N}function ts(){var N,K,re,pe,ze,mt,fr,Cr;if(N=G,K=Bl(),K!==r){for(re=[],pe=G,ze=[],mt=Qt();mt!==r;)ze.push(mt),mt=Qt();if(ze!==r)if(t.charCodeAt(G)===43?(mt=la,G++):(mt=r,ct===0&&Ct(Ho)),mt===r&&(t.charCodeAt(G)===45?(mt=Us,G++):(mt=r,ct===0&&Ct(aa))),mt!==r){for(fr=[],Cr=Qt();Cr!==r;)fr.push(Cr),Cr=Qt();fr!==r?(Cr=Bl(),Cr!==r?(Dt=pe,ze=ye(K,mt,Cr),pe=ze):(G=pe,pe=r)):(G=pe,pe=r)}else G=pe,pe=r;else G=pe,pe=r;for(;pe!==r;){for(re.push(pe),pe=G,ze=[],mt=Qt();mt!==r;)ze.push(mt),mt=Qt();if(ze!==r)if(t.charCodeAt(G)===43?(mt=la,G++):(mt=r,ct===0&&Ct(Ho)),mt===r&&(t.charCodeAt(G)===45?(mt=Us,G++):(mt=r,ct===0&&Ct(aa))),mt!==r){for(fr=[],Cr=Qt();Cr!==r;)fr.push(Cr),Cr=Qt();fr!==r?(Cr=Bl(),Cr!==r?(Dt=pe,ze=ye(K,mt,Cr),pe=ze):(G=pe,pe=r)):(G=pe,pe=r)}else G=pe,pe=r;else G=pe,pe=r}re!==r?(Dt=N,K=$(K,re),N=K):(G=N,N=r)}else G=N,N=r;return N}function Gr(){var N,K,re,pe,ze,mt;if(N=G,t.substr(G,3)===Le?(K=Le,G+=3):(K=r,ct===0&&Ct(pt)),K!==r){for(re=[],pe=Qt();pe!==r;)re.push(pe),pe=Qt();if(re!==r)if(pe=ts(),pe!==r){for(ze=[],mt=Qt();mt!==r;)ze.push(mt),mt=Qt();ze!==r?(t.substr(G,2)===ht?(mt=ht,G+=2):(mt=r,ct===0&&Ct(Tt)),mt!==r?(Dt=N,K=er(pe),N=K):(G=N,N=r)):(G=N,N=r)}else G=N,N=r;else G=N,N=r}else G=N,N=r;return N}function Ep(){var N,K,re,pe;return N=G,t.substr(G,2)===$r?(K=$r,G+=2):(K=r,ct===0&&Ct(ji)),K!==r?(re=Cu(),re!==r?(t.charCodeAt(G)===41?(pe=ne,G++):(pe=r,ct===0&&Ct(ee)),pe!==r?(Dt=N,K=es(re),N=K):(G=N,N=r)):(G=N,N=r)):(G=N,N=r),N}function Dc(){var N,K,re,pe,ze,mt;return N=G,t.substr(G,2)===bi?(K=bi,G+=2):(K=r,ct===0&&Ct(qo)),K!==r?(re=Ga(),re!==r?(t.substr(G,2)===kA?(pe=kA,G+=2):(pe=r,ct===0&&Ct(QA)),pe!==r?(ze=NA(),ze!==r?(t.charCodeAt(G)===125?(mt=H,G++):(mt=r,ct===0&&Ct(at)),mt!==r?(Dt=N,K=Ap(re,ze),N=K):(G=N,N=r)):(G=N,N=r)):(G=N,N=r)):(G=N,N=r)):(G=N,N=r),N===r&&(N=G,t.substr(G,2)===bi?(K=bi,G+=2):(K=r,ct===0&&Ct(qo)),K!==r?(re=Ga(),re!==r?(t.substr(G,3)===ig?(pe=ig,G+=3):(pe=r,ct===0&&Ct(gu)),pe!==r?(Dt=N,K=sg(re),N=K):(G=N,N=r)):(G=N,N=r)):(G=N,N=r),N===r&&(N=G,t.substr(G,2)===bi?(K=bi,G+=2):(K=r,ct===0&&Ct(qo)),K!==r?(re=Ga(),re!==r?(t.substr(G,2)===du?(pe=du,G+=2):(pe=r,ct===0&&Ct(uo)),pe!==r?(ze=NA(),ze!==r?(t.charCodeAt(G)===125?(mt=H,G++):(mt=r,ct===0&&Ct(at)),mt!==r?(Dt=N,K=FA(re,ze),N=K):(G=N,N=r)):(G=N,N=r)):(G=N,N=r)):(G=N,N=r)):(G=N,N=r),N===r&&(N=G,t.substr(G,2)===bi?(K=bi,G+=2):(K=r,ct===0&&Ct(qo)),K!==r?(re=Ga(),re!==r?(t.substr(G,3)===mc?(pe=mc,G+=3):(pe=r,ct===0&&Ct(ca)),pe!==r?(Dt=N,K=og(re),N=K):(G=N,N=r)):(G=N,N=r)):(G=N,N=r),N===r&&(N=G,t.substr(G,2)===bi?(K=bi,G+=2):(K=r,ct===0&&Ct(qo)),K!==r?(re=Ga(),re!==r?(t.charCodeAt(G)===125?(pe=H,G++):(pe=r,ct===0&&Ct(at)),pe!==r?(Dt=N,K=yc(re),N=K):(G=N,N=r)):(G=N,N=r)):(G=N,N=r),N===r&&(N=G,t.charCodeAt(G)===36?(K=Pm,G++):(K=r,ct===0&&Ct(ag)),K!==r?(re=Ga(),re!==r?(Dt=N,K=yc(re),N=K):(G=N,N=r)):(G=N,N=r)))))),N}function Cw(){var N,K,re;return N=G,K=Eg(),K!==r?(Dt=G,re=$n(K),re?re=void 0:re=r,re!==r?(Dt=N,K=fp(K),N=K):(G=N,N=r)):(G=N,N=r),N}function Eg(){var N,K,re,pe,ze;if(N=G,K=[],re=G,pe=G,ct++,ze=wg(),ct--,ze===r?pe=void 0:(G=pe,pe=r),pe!==r?(t.length>G?(ze=t.charAt(G),G++):(ze=r,ct===0&&Ct(Fn)),ze!==r?(Dt=re,pe=Oe(ze),re=pe):(G=re,re=r)):(G=re,re=r),re!==r)for(;re!==r;)K.push(re),re=G,pe=G,ct++,ze=wg(),ct--,ze===r?pe=void 0:(G=pe,pe=r),pe!==r?(t.length>G?(ze=t.charAt(G),G++):(ze=r,ct===0&&Ct(Fn)),ze!==r?(Dt=re,pe=Oe(ze),re=pe):(G=re,re=r)):(G=re,re=r);else K=r;return K!==r&&(Dt=N,K=Ms(K)),N=K,N}function Cg(){var N,K,re;if(N=G,K=[],lg.test(t.charAt(G))?(re=t.charAt(G),G++):(re=r,ct===0&&Ct(RA)),re!==r)for(;re!==r;)K.push(re),lg.test(t.charAt(G))?(re=t.charAt(G),G++):(re=r,ct===0&&Ct(RA));else K=r;return K!==r&&(Dt=N,K=Hs()),N=K,N}function Ga(){var N,K,re;if(N=G,K=[],mu.test(t.charAt(G))?(re=t.charAt(G),G++):(re=r,ct===0&&Ct(Ha)),re!==r)for(;re!==r;)K.push(re),mu.test(t.charAt(G))?(re=t.charAt(G),G++):(re=r,ct===0&&Ct(Ha));else K=r;return K!==r&&(Dt=N,K=Hs()),N=K,N}function Rm(){var N;return Gi.test(t.charAt(G))?(N=t.charAt(G),G++):(N=r,ct===0&&Ct(ua)),N}function wg(){var N;return yu.test(t.charAt(G))?(N=t.charAt(G),G++):(N=r,ct===0&&Ct(Es)),N}function Qt(){var N,K;if(N=[],Ec.test(t.charAt(G))?(K=t.charAt(G),G++):(K=r,ct===0&&Ct(Cc)),K!==r)for(;K!==r;)N.push(K),Ec.test(t.charAt(G))?(K=t.charAt(G),G++):(K=r,ct===0&&Ct(Cc));else N=r;return N}if(Eu=a(),Eu!==r&&G===t.length)return Eu;throw Eu!==r&&G!1}){try{return(0,$Y.parse)(t,e)}catch(r){throw r.location&&(r.message=r.message.replace(/(\.)?$/,` (line ${r.location.start.line}, column ${r.location.start.column})$1`)),r}}function cy(t,{endSemicolon:e=!1}={}){return t.map(({command:r,type:o},a)=>`${LD(r)}${o===";"?a!==t.length-1||e?";":"":" &"}`).join(" ")}function LD(t){return`${uy(t.chain)}${t.then?` ${oT(t.then)}`:""}`}function oT(t){return`${t.type} ${LD(t.line)}`}function uy(t){return`${lT(t)}${t.then?` ${aT(t.then)}`:""}`}function aT(t){return`${t.type} ${uy(t.chain)}`}function lT(t){switch(t.type){case"command":return`${t.envs.length>0?`${t.envs.map(e=>TD(e)).join(" ")} `:""}${t.args.map(e=>cT(e)).join(" ")}`;case"subshell":return`(${cy(t.subshell)})${t.args.length>0?` ${t.args.map(e=>Jw(e)).join(" ")}`:""}`;case"group":return`{ ${cy(t.group,{endSemicolon:!0})} }${t.args.length>0?` ${t.args.map(e=>Jw(e)).join(" ")}`:""}`;case"envs":return t.envs.map(e=>TD(e)).join(" ");default:throw new Error(`Unsupported command type: "${t.type}"`)}}function TD(t){return`${t.name}=${t.args[0]?Yg(t.args[0]):""}`}function cT(t){switch(t.type){case"redirection":return Jw(t);case"argument":return Yg(t);default:throw new Error(`Unsupported argument type: "${t.type}"`)}}function Jw(t){return`${t.subtype} ${t.args.map(e=>Yg(e)).join(" ")}`}function Yg(t){return t.segments.map(e=>uT(e)).join("")}function uT(t){let e=(o,a)=>a?`"${o}"`:o,r=o=>o===""?"''":o.match(/[()}<>$|&;"'\n\t ]/)?o.match(/['\t\p{C}]/u)?o.match(/'/)?`"${o.replace(/["$\t\p{C}]/u,f8e)}"`:`$'${o.replace(/[\t\p{C}]/u,tW)}'`:`'${o}'`:o;switch(t.type){case"text":return r(t.text);case"glob":return t.pattern;case"shell":return e(`\${${cy(t.shell)}}`,t.quoted);case"variable":return e(typeof t.defaultValue>"u"?typeof t.alternativeValue>"u"?`\${${t.name}}`:t.alternativeValue.length===0?`\${${t.name}:+}`:`\${${t.name}:+${t.alternativeValue.map(o=>Yg(o)).join(" ")}}`:t.defaultValue.length===0?`\${${t.name}:-}`:`\${${t.name}:-${t.defaultValue.map(o=>Yg(o)).join(" ")}}`,t.quoted);case"arithmetic":return`$(( ${OD(t.arithmetic)} ))`;default:throw new Error(`Unsupported argument segment type: "${t.type}"`)}}function OD(t){let e=a=>{switch(a){case"addition":return"+";case"subtraction":return"-";case"multiplication":return"*";case"division":return"/";default:throw new Error(`Can't extract operator from arithmetic expression of type "${a}"`)}},r=(a,n)=>n?`( ${a} )`:a,o=a=>r(OD(a),!["number","variable"].includes(a.type));switch(t.type){case"number":return String(t.value);case"variable":return t.name;default:return`${o(t.left)} ${e(t.type)} ${o(t.right)}`}}var $Y,eW,A8e,tW,f8e,rW=Et(()=>{$Y=$e(ZY());eW=new Map([["\f","\\f"],[` +`,"\\n"],["\r","\\r"],[" ","\\t"],["\v","\\v"],["\0","\\0"]]),A8e=new Map([["\\","\\\\"],["$","\\$"],['"','\\"'],...Array.from(eW,([t,e])=>[t,`"$'${e}'"`])]),tW=t=>eW.get(t)??`\\x${t.charCodeAt(0).toString(16).padStart(2,"0")}`,f8e=t=>A8e.get(t)??`"$'${tW(t)}'"`});var iW=_((Tbt,nW)=>{"use strict";function p8e(t,e){function r(){this.constructor=t}r.prototype=e.prototype,t.prototype=new r}function Wg(t,e,r,o){this.message=t,this.expected=e,this.found=r,this.location=o,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,Wg)}p8e(Wg,Error);Wg.buildMessage=function(t,e){var r={literal:function(h){return'"'+a(h.text)+'"'},class:function(h){var E="",I;for(I=0;I0){for(I=1,v=1;Ife&&(fe=J,ce=[]),ce.push(qe))}function at(qe,b){return new Wg(qe,null,null,b)}function Re(qe,b,w){return new Wg(Wg.buildMessage(qe,b),qe,b,w)}function ke(){var qe,b,w,P;return qe=J,b=xe(),b!==r?(t.charCodeAt(J)===47?(w=n,J++):(w=r,me===0&&H(u)),w!==r?(P=xe(),P!==r?(te=qe,b=A(b,P),qe=b):(J=qe,qe=r)):(J=qe,qe=r)):(J=qe,qe=r),qe===r&&(qe=J,b=xe(),b!==r&&(te=qe,b=p(b)),qe=b),qe}function xe(){var qe,b,w,P;return qe=J,b=He(),b!==r?(t.charCodeAt(J)===64?(w=h,J++):(w=r,me===0&&H(E)),w!==r?(P=Je(),P!==r?(te=qe,b=I(b,P),qe=b):(J=qe,qe=r)):(J=qe,qe=r)):(J=qe,qe=r),qe===r&&(qe=J,b=He(),b!==r&&(te=qe,b=v(b)),qe=b),qe}function He(){var qe,b,w,P,y;return qe=J,t.charCodeAt(J)===64?(b=h,J++):(b=r,me===0&&H(E)),b!==r?(w=Te(),w!==r?(t.charCodeAt(J)===47?(P=n,J++):(P=r,me===0&&H(u)),P!==r?(y=Te(),y!==r?(te=qe,b=x(),qe=b):(J=qe,qe=r)):(J=qe,qe=r)):(J=qe,qe=r)):(J=qe,qe=r),qe===r&&(qe=J,b=Te(),b!==r&&(te=qe,b=x()),qe=b),qe}function Te(){var qe,b,w;if(qe=J,b=[],C.test(t.charAt(J))?(w=t.charAt(J),J++):(w=r,me===0&&H(R)),w!==r)for(;w!==r;)b.push(w),C.test(t.charAt(J))?(w=t.charAt(J),J++):(w=r,me===0&&H(R));else b=r;return b!==r&&(te=qe,b=x()),qe=b,qe}function Je(){var qe,b,w;if(qe=J,b=[],L.test(t.charAt(J))?(w=t.charAt(J),J++):(w=r,me===0&&H(U)),w!==r)for(;w!==r;)b.push(w),L.test(t.charAt(J))?(w=t.charAt(J),J++):(w=r,me===0&&H(U));else b=r;return b!==r&&(te=qe,b=x()),qe=b,qe}if(he=a(),he!==r&&J===t.length)return he;throw he!==r&&J{sW=$e(iW())});var Vg=_((Lbt,Kg)=>{"use strict";function aW(t){return typeof t>"u"||t===null}function g8e(t){return typeof t=="object"&&t!==null}function d8e(t){return Array.isArray(t)?t:aW(t)?[]:[t]}function m8e(t,e){var r,o,a,n;if(e)for(n=Object.keys(e),r=0,o=n.length;r{"use strict";function zw(t,e){Error.call(this),this.name="YAMLException",this.reason=t,this.mark=e,this.message=(this.reason||"(unknown reason)")+(this.mark?" "+this.mark.toString():""),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack||""}zw.prototype=Object.create(Error.prototype);zw.prototype.constructor=zw;zw.prototype.toString=function(e){var r=this.name+": ";return r+=this.reason||"(unknown reason)",!e&&this.mark&&(r+=" "+this.mark.toString()),r};lW.exports=zw});var AW=_((Mbt,uW)=>{"use strict";var cW=Vg();function AT(t,e,r,o,a){this.name=t,this.buffer=e,this.position=r,this.line=o,this.column=a}AT.prototype.getSnippet=function(e,r){var o,a,n,u,A;if(!this.buffer)return null;for(e=e||4,r=r||75,o="",a=this.position;a>0&&`\0\r +\x85\u2028\u2029`.indexOf(this.buffer.charAt(a-1))===-1;)if(a-=1,this.position-a>r/2-1){o=" ... ",a+=5;break}for(n="",u=this.position;ur/2-1){n=" ... ",u-=5;break}return A=this.buffer.slice(a,u),cW.repeat(" ",e)+o+A+n+` +`+cW.repeat(" ",e+this.position-a+o.length)+"^"};AT.prototype.toString=function(e){var r,o="";return this.name&&(o+='in "'+this.name+'" '),o+="at line "+(this.line+1)+", column "+(this.column+1),e||(r=this.getSnippet(),r&&(o+=`: +`+r)),o};uW.exports=AT});var os=_((Ubt,pW)=>{"use strict";var fW=Ay(),C8e=["kind","resolve","construct","instanceOf","predicate","represent","defaultStyle","styleAliases"],w8e=["scalar","sequence","mapping"];function I8e(t){var e={};return t!==null&&Object.keys(t).forEach(function(r){t[r].forEach(function(o){e[String(o)]=r})}),e}function B8e(t,e){if(e=e||{},Object.keys(e).forEach(function(r){if(C8e.indexOf(r)===-1)throw new fW('Unknown option "'+r+'" is met in definition of "'+t+'" YAML type.')}),this.tag=t,this.kind=e.kind||null,this.resolve=e.resolve||function(){return!0},this.construct=e.construct||function(r){return r},this.instanceOf=e.instanceOf||null,this.predicate=e.predicate||null,this.represent=e.represent||null,this.defaultStyle=e.defaultStyle||null,this.styleAliases=I8e(e.styleAliases||null),w8e.indexOf(this.kind)===-1)throw new fW('Unknown kind "'+this.kind+'" is specified for "'+t+'" YAML type.')}pW.exports=B8e});var Jg=_((_bt,gW)=>{"use strict";var hW=Vg(),_D=Ay(),v8e=os();function fT(t,e,r){var o=[];return t.include.forEach(function(a){r=fT(a,e,r)}),t[e].forEach(function(a){r.forEach(function(n,u){n.tag===a.tag&&n.kind===a.kind&&o.push(u)}),r.push(a)}),r.filter(function(a,n){return o.indexOf(n)===-1})}function D8e(){var t={scalar:{},sequence:{},mapping:{},fallback:{}},e,r;function o(a){t[a.kind][a.tag]=t.fallback[a.tag]=a}for(e=0,r=arguments.length;e{"use strict";var S8e=os();dW.exports=new S8e("tag:yaml.org,2002:str",{kind:"scalar",construct:function(t){return t!==null?t:""}})});var EW=_((qbt,yW)=>{"use strict";var P8e=os();yW.exports=new P8e("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(t){return t!==null?t:[]}})});var wW=_((jbt,CW)=>{"use strict";var b8e=os();CW.exports=new b8e("tag:yaml.org,2002:map",{kind:"mapping",construct:function(t){return t!==null?t:{}}})});var HD=_((Gbt,IW)=>{"use strict";var x8e=Jg();IW.exports=new x8e({explicit:[mW(),EW(),wW()]})});var vW=_((Ybt,BW)=>{"use strict";var k8e=os();function Q8e(t){if(t===null)return!0;var e=t.length;return e===1&&t==="~"||e===4&&(t==="null"||t==="Null"||t==="NULL")}function F8e(){return null}function R8e(t){return t===null}BW.exports=new k8e("tag:yaml.org,2002:null",{kind:"scalar",resolve:Q8e,construct:F8e,predicate:R8e,represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"}},defaultStyle:"lowercase"})});var SW=_((Wbt,DW)=>{"use strict";var T8e=os();function N8e(t){if(t===null)return!1;var e=t.length;return e===4&&(t==="true"||t==="True"||t==="TRUE")||e===5&&(t==="false"||t==="False"||t==="FALSE")}function L8e(t){return t==="true"||t==="True"||t==="TRUE"}function O8e(t){return Object.prototype.toString.call(t)==="[object Boolean]"}DW.exports=new T8e("tag:yaml.org,2002:bool",{kind:"scalar",resolve:N8e,construct:L8e,predicate:O8e,represent:{lowercase:function(t){return t?"true":"false"},uppercase:function(t){return t?"TRUE":"FALSE"},camelcase:function(t){return t?"True":"False"}},defaultStyle:"lowercase"})});var bW=_((Kbt,PW)=>{"use strict";var M8e=Vg(),U8e=os();function _8e(t){return 48<=t&&t<=57||65<=t&&t<=70||97<=t&&t<=102}function H8e(t){return 48<=t&&t<=55}function q8e(t){return 48<=t&&t<=57}function j8e(t){if(t===null)return!1;var e=t.length,r=0,o=!1,a;if(!e)return!1;if(a=t[r],(a==="-"||a==="+")&&(a=t[++r]),a==="0"){if(r+1===e)return!0;if(a=t[++r],a==="b"){for(r++;r=0?"0b"+t.toString(2):"-0b"+t.toString(2).slice(1)},octal:function(t){return t>=0?"0"+t.toString(8):"-0"+t.toString(8).slice(1)},decimal:function(t){return t.toString(10)},hexadecimal:function(t){return t>=0?"0x"+t.toString(16).toUpperCase():"-0x"+t.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}})});var QW=_((Vbt,kW)=>{"use strict";var xW=Vg(),W8e=os(),K8e=new RegExp("^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");function V8e(t){return!(t===null||!K8e.test(t)||t[t.length-1]==="_")}function J8e(t){var e,r,o,a;return e=t.replace(/_/g,"").toLowerCase(),r=e[0]==="-"?-1:1,a=[],"+-".indexOf(e[0])>=0&&(e=e.slice(1)),e===".inf"?r===1?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:e===".nan"?NaN:e.indexOf(":")>=0?(e.split(":").forEach(function(n){a.unshift(parseFloat(n,10))}),e=0,o=1,a.forEach(function(n){e+=n*o,o*=60}),r*e):r*parseFloat(e,10)}var z8e=/^[-+]?[0-9]+e/;function X8e(t,e){var r;if(isNaN(t))switch(e){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===t)switch(e){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===t)switch(e){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(xW.isNegativeZero(t))return"-0.0";return r=t.toString(10),z8e.test(r)?r.replace("e",".e"):r}function Z8e(t){return Object.prototype.toString.call(t)==="[object Number]"&&(t%1!==0||xW.isNegativeZero(t))}kW.exports=new W8e("tag:yaml.org,2002:float",{kind:"scalar",resolve:V8e,construct:J8e,predicate:Z8e,represent:X8e,defaultStyle:"lowercase"})});var pT=_((Jbt,FW)=>{"use strict";var $8e=Jg();FW.exports=new $8e({include:[HD()],implicit:[vW(),SW(),bW(),QW()]})});var hT=_((zbt,RW)=>{"use strict";var eHe=Jg();RW.exports=new eHe({include:[pT()]})});var OW=_((Xbt,LW)=>{"use strict";var tHe=os(),TW=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),NW=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");function rHe(t){return t===null?!1:TW.exec(t)!==null||NW.exec(t)!==null}function nHe(t){var e,r,o,a,n,u,A,p=0,h=null,E,I,v;if(e=TW.exec(t),e===null&&(e=NW.exec(t)),e===null)throw new Error("Date resolve error");if(r=+e[1],o=+e[2]-1,a=+e[3],!e[4])return new Date(Date.UTC(r,o,a));if(n=+e[4],u=+e[5],A=+e[6],e[7]){for(p=e[7].slice(0,3);p.length<3;)p+="0";p=+p}return e[9]&&(E=+e[10],I=+(e[11]||0),h=(E*60+I)*6e4,e[9]==="-"&&(h=-h)),v=new Date(Date.UTC(r,o,a,n,u,A,p)),h&&v.setTime(v.getTime()-h),v}function iHe(t){return t.toISOString()}LW.exports=new tHe("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:rHe,construct:nHe,instanceOf:Date,represent:iHe})});var UW=_((Zbt,MW)=>{"use strict";var sHe=os();function oHe(t){return t==="<<"||t===null}MW.exports=new sHe("tag:yaml.org,2002:merge",{kind:"scalar",resolve:oHe})});var qW=_(($bt,HW)=>{"use strict";var zg;try{_W=ve,zg=_W("buffer").Buffer}catch{}var _W,aHe=os(),gT=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/= +\r`;function lHe(t){if(t===null)return!1;var e,r,o=0,a=t.length,n=gT;for(r=0;r64)){if(e<0)return!1;o+=6}return o%8===0}function cHe(t){var e,r,o=t.replace(/[\r\n=]/g,""),a=o.length,n=gT,u=0,A=[];for(e=0;e>16&255),A.push(u>>8&255),A.push(u&255)),u=u<<6|n.indexOf(o.charAt(e));return r=a%4*6,r===0?(A.push(u>>16&255),A.push(u>>8&255),A.push(u&255)):r===18?(A.push(u>>10&255),A.push(u>>2&255)):r===12&&A.push(u>>4&255),zg?zg.from?zg.from(A):new zg(A):A}function uHe(t){var e="",r=0,o,a,n=t.length,u=gT;for(o=0;o>18&63],e+=u[r>>12&63],e+=u[r>>6&63],e+=u[r&63]),r=(r<<8)+t[o];return a=n%3,a===0?(e+=u[r>>18&63],e+=u[r>>12&63],e+=u[r>>6&63],e+=u[r&63]):a===2?(e+=u[r>>10&63],e+=u[r>>4&63],e+=u[r<<2&63],e+=u[64]):a===1&&(e+=u[r>>2&63],e+=u[r<<4&63],e+=u[64],e+=u[64]),e}function AHe(t){return zg&&zg.isBuffer(t)}HW.exports=new aHe("tag:yaml.org,2002:binary",{kind:"scalar",resolve:lHe,construct:cHe,predicate:AHe,represent:uHe})});var GW=_((txt,jW)=>{"use strict";var fHe=os(),pHe=Object.prototype.hasOwnProperty,hHe=Object.prototype.toString;function gHe(t){if(t===null)return!0;var e=[],r,o,a,n,u,A=t;for(r=0,o=A.length;r{"use strict";var mHe=os(),yHe=Object.prototype.toString;function EHe(t){if(t===null)return!0;var e,r,o,a,n,u=t;for(n=new Array(u.length),e=0,r=u.length;e{"use strict";var wHe=os(),IHe=Object.prototype.hasOwnProperty;function BHe(t){if(t===null)return!0;var e,r=t;for(e in r)if(IHe.call(r,e)&&r[e]!==null)return!1;return!0}function vHe(t){return t!==null?t:{}}KW.exports=new wHe("tag:yaml.org,2002:set",{kind:"mapping",resolve:BHe,construct:vHe})});var py=_((ixt,JW)=>{"use strict";var DHe=Jg();JW.exports=new DHe({include:[hT()],implicit:[OW(),UW()],explicit:[qW(),GW(),WW(),VW()]})});var XW=_((sxt,zW)=>{"use strict";var SHe=os();function PHe(){return!0}function bHe(){}function xHe(){return""}function kHe(t){return typeof t>"u"}zW.exports=new SHe("tag:yaml.org,2002:js/undefined",{kind:"scalar",resolve:PHe,construct:bHe,predicate:kHe,represent:xHe})});var $W=_((oxt,ZW)=>{"use strict";var QHe=os();function FHe(t){if(t===null||t.length===0)return!1;var e=t,r=/\/([gim]*)$/.exec(t),o="";return!(e[0]==="/"&&(r&&(o=r[1]),o.length>3||e[e.length-o.length-1]!=="/"))}function RHe(t){var e=t,r=/\/([gim]*)$/.exec(t),o="";return e[0]==="/"&&(r&&(o=r[1]),e=e.slice(1,e.length-o.length-1)),new RegExp(e,o)}function THe(t){var e="/"+t.source+"/";return t.global&&(e+="g"),t.multiline&&(e+="m"),t.ignoreCase&&(e+="i"),e}function NHe(t){return Object.prototype.toString.call(t)==="[object RegExp]"}ZW.exports=new QHe("tag:yaml.org,2002:js/regexp",{kind:"scalar",resolve:FHe,construct:RHe,predicate:NHe,represent:THe})});var rK=_((axt,tK)=>{"use strict";var qD;try{eK=ve,qD=eK("esprima")}catch{typeof window<"u"&&(qD=window.esprima)}var eK,LHe=os();function OHe(t){if(t===null)return!1;try{var e="("+t+")",r=qD.parse(e,{range:!0});return!(r.type!=="Program"||r.body.length!==1||r.body[0].type!=="ExpressionStatement"||r.body[0].expression.type!=="ArrowFunctionExpression"&&r.body[0].expression.type!=="FunctionExpression")}catch{return!1}}function MHe(t){var e="("+t+")",r=qD.parse(e,{range:!0}),o=[],a;if(r.type!=="Program"||r.body.length!==1||r.body[0].type!=="ExpressionStatement"||r.body[0].expression.type!=="ArrowFunctionExpression"&&r.body[0].expression.type!=="FunctionExpression")throw new Error("Failed to resolve function");return r.body[0].expression.params.forEach(function(n){o.push(n.name)}),a=r.body[0].expression.body.range,r.body[0].expression.body.type==="BlockStatement"?new Function(o,e.slice(a[0]+1,a[1]-1)):new Function(o,"return "+e.slice(a[0],a[1]))}function UHe(t){return t.toString()}function _He(t){return Object.prototype.toString.call(t)==="[object Function]"}tK.exports=new LHe("tag:yaml.org,2002:js/function",{kind:"scalar",resolve:OHe,construct:MHe,predicate:_He,represent:UHe})});var Xw=_((cxt,iK)=>{"use strict";var nK=Jg();iK.exports=nK.DEFAULT=new nK({include:[py()],explicit:[XW(),$W(),rK()]})});var BK=_((uxt,Zw)=>{"use strict";var yf=Vg(),AK=Ay(),HHe=AW(),fK=py(),qHe=Xw(),Yp=Object.prototype.hasOwnProperty,jD=1,pK=2,hK=3,GD=4,dT=1,jHe=2,sK=3,GHe=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,YHe=/[\x85\u2028\u2029]/,WHe=/[,\[\]\{\}]/,gK=/^(?:!|!!|![a-z\-]+!)$/i,dK=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function oK(t){return Object.prototype.toString.call(t)}function Hu(t){return t===10||t===13}function Zg(t){return t===9||t===32}function Ia(t){return t===9||t===32||t===10||t===13}function hy(t){return t===44||t===91||t===93||t===123||t===125}function KHe(t){var e;return 48<=t&&t<=57?t-48:(e=t|32,97<=e&&e<=102?e-97+10:-1)}function VHe(t){return t===120?2:t===117?4:t===85?8:0}function JHe(t){return 48<=t&&t<=57?t-48:-1}function aK(t){return t===48?"\0":t===97?"\x07":t===98?"\b":t===116||t===9?" ":t===110?` +`:t===118?"\v":t===102?"\f":t===114?"\r":t===101?"\x1B":t===32?" ":t===34?'"':t===47?"/":t===92?"\\":t===78?"\x85":t===95?"\xA0":t===76?"\u2028":t===80?"\u2029":""}function zHe(t){return t<=65535?String.fromCharCode(t):String.fromCharCode((t-65536>>10)+55296,(t-65536&1023)+56320)}var mK=new Array(256),yK=new Array(256);for(Xg=0;Xg<256;Xg++)mK[Xg]=aK(Xg)?1:0,yK[Xg]=aK(Xg);var Xg;function XHe(t,e){this.input=t,this.filename=e.filename||null,this.schema=e.schema||qHe,this.onWarning=e.onWarning||null,this.legacy=e.legacy||!1,this.json=e.json||!1,this.listener=e.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=t.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.documents=[]}function EK(t,e){return new AK(e,new HHe(t.filename,t.input,t.position,t.line,t.position-t.lineStart))}function Pr(t,e){throw EK(t,e)}function YD(t,e){t.onWarning&&t.onWarning.call(null,EK(t,e))}var lK={YAML:function(e,r,o){var a,n,u;e.version!==null&&Pr(e,"duplication of %YAML directive"),o.length!==1&&Pr(e,"YAML directive accepts exactly one argument"),a=/^([0-9]+)\.([0-9]+)$/.exec(o[0]),a===null&&Pr(e,"ill-formed argument of the YAML directive"),n=parseInt(a[1],10),u=parseInt(a[2],10),n!==1&&Pr(e,"unacceptable YAML version of the document"),e.version=o[0],e.checkLineBreaks=u<2,u!==1&&u!==2&&YD(e,"unsupported YAML version of the document")},TAG:function(e,r,o){var a,n;o.length!==2&&Pr(e,"TAG directive accepts exactly two arguments"),a=o[0],n=o[1],gK.test(a)||Pr(e,"ill-formed tag handle (first argument) of the TAG directive"),Yp.call(e.tagMap,a)&&Pr(e,'there is a previously declared suffix for "'+a+'" tag handle'),dK.test(n)||Pr(e,"ill-formed tag prefix (second argument) of the TAG directive"),e.tagMap[a]=n}};function Gp(t,e,r,o){var a,n,u,A;if(e1&&(t.result+=yf.repeat(` +`,e-1))}function ZHe(t,e,r){var o,a,n,u,A,p,h,E,I=t.kind,v=t.result,x;if(x=t.input.charCodeAt(t.position),Ia(x)||hy(x)||x===35||x===38||x===42||x===33||x===124||x===62||x===39||x===34||x===37||x===64||x===96||(x===63||x===45)&&(a=t.input.charCodeAt(t.position+1),Ia(a)||r&&hy(a)))return!1;for(t.kind="scalar",t.result="",n=u=t.position,A=!1;x!==0;){if(x===58){if(a=t.input.charCodeAt(t.position+1),Ia(a)||r&&hy(a))break}else if(x===35){if(o=t.input.charCodeAt(t.position-1),Ia(o))break}else{if(t.position===t.lineStart&&WD(t)||r&&hy(x))break;if(Hu(x))if(p=t.line,h=t.lineStart,E=t.lineIndent,Wi(t,!1,-1),t.lineIndent>=e){A=!0,x=t.input.charCodeAt(t.position);continue}else{t.position=u,t.line=p,t.lineStart=h,t.lineIndent=E;break}}A&&(Gp(t,n,u,!1),yT(t,t.line-p),n=u=t.position,A=!1),Zg(x)||(u=t.position+1),x=t.input.charCodeAt(++t.position)}return Gp(t,n,u,!1),t.result?!0:(t.kind=I,t.result=v,!1)}function $He(t,e){var r,o,a;if(r=t.input.charCodeAt(t.position),r!==39)return!1;for(t.kind="scalar",t.result="",t.position++,o=a=t.position;(r=t.input.charCodeAt(t.position))!==0;)if(r===39)if(Gp(t,o,t.position,!0),r=t.input.charCodeAt(++t.position),r===39)o=t.position,t.position++,a=t.position;else return!0;else Hu(r)?(Gp(t,o,a,!0),yT(t,Wi(t,!1,e)),o=a=t.position):t.position===t.lineStart&&WD(t)?Pr(t,"unexpected end of the document within a single quoted scalar"):(t.position++,a=t.position);Pr(t,"unexpected end of the stream within a single quoted scalar")}function e6e(t,e){var r,o,a,n,u,A;if(A=t.input.charCodeAt(t.position),A!==34)return!1;for(t.kind="scalar",t.result="",t.position++,r=o=t.position;(A=t.input.charCodeAt(t.position))!==0;){if(A===34)return Gp(t,r,t.position,!0),t.position++,!0;if(A===92){if(Gp(t,r,t.position,!0),A=t.input.charCodeAt(++t.position),Hu(A))Wi(t,!1,e);else if(A<256&&mK[A])t.result+=yK[A],t.position++;else if((u=VHe(A))>0){for(a=u,n=0;a>0;a--)A=t.input.charCodeAt(++t.position),(u=KHe(A))>=0?n=(n<<4)+u:Pr(t,"expected hexadecimal character");t.result+=zHe(n),t.position++}else Pr(t,"unknown escape sequence");r=o=t.position}else Hu(A)?(Gp(t,r,o,!0),yT(t,Wi(t,!1,e)),r=o=t.position):t.position===t.lineStart&&WD(t)?Pr(t,"unexpected end of the document within a double quoted scalar"):(t.position++,o=t.position)}Pr(t,"unexpected end of the stream within a double quoted scalar")}function t6e(t,e){var r=!0,o,a=t.tag,n,u=t.anchor,A,p,h,E,I,v={},x,C,R,L;if(L=t.input.charCodeAt(t.position),L===91)p=93,I=!1,n=[];else if(L===123)p=125,I=!0,n={};else return!1;for(t.anchor!==null&&(t.anchorMap[t.anchor]=n),L=t.input.charCodeAt(++t.position);L!==0;){if(Wi(t,!0,e),L=t.input.charCodeAt(t.position),L===p)return t.position++,t.tag=a,t.anchor=u,t.kind=I?"mapping":"sequence",t.result=n,!0;r||Pr(t,"missed comma between flow collection entries"),C=x=R=null,h=E=!1,L===63&&(A=t.input.charCodeAt(t.position+1),Ia(A)&&(h=E=!0,t.position++,Wi(t,!0,e))),o=t.line,dy(t,e,jD,!1,!0),C=t.tag,x=t.result,Wi(t,!0,e),L=t.input.charCodeAt(t.position),(E||t.line===o)&&L===58&&(h=!0,L=t.input.charCodeAt(++t.position),Wi(t,!0,e),dy(t,e,jD,!1,!0),R=t.result),I?gy(t,n,v,C,x,R):h?n.push(gy(t,null,v,C,x,R)):n.push(x),Wi(t,!0,e),L=t.input.charCodeAt(t.position),L===44?(r=!0,L=t.input.charCodeAt(++t.position)):r=!1}Pr(t,"unexpected end of the stream within a flow collection")}function r6e(t,e){var r,o,a=dT,n=!1,u=!1,A=e,p=0,h=!1,E,I;if(I=t.input.charCodeAt(t.position),I===124)o=!1;else if(I===62)o=!0;else return!1;for(t.kind="scalar",t.result="";I!==0;)if(I=t.input.charCodeAt(++t.position),I===43||I===45)dT===a?a=I===43?sK:jHe:Pr(t,"repeat of a chomping mode identifier");else if((E=JHe(I))>=0)E===0?Pr(t,"bad explicit indentation width of a block scalar; it cannot be less than one"):u?Pr(t,"repeat of an indentation width identifier"):(A=e+E-1,u=!0);else break;if(Zg(I)){do I=t.input.charCodeAt(++t.position);while(Zg(I));if(I===35)do I=t.input.charCodeAt(++t.position);while(!Hu(I)&&I!==0)}for(;I!==0;){for(mT(t),t.lineIndent=0,I=t.input.charCodeAt(t.position);(!u||t.lineIndentA&&(A=t.lineIndent),Hu(I)){p++;continue}if(t.lineIndente)&&p!==0)Pr(t,"bad indentation of a sequence entry");else if(t.lineIndente)&&(dy(t,e,GD,!0,a)&&(C?v=t.result:x=t.result),C||(gy(t,h,E,I,v,x,n,u),I=v=x=null),Wi(t,!0,-1),L=t.input.charCodeAt(t.position)),t.lineIndent>e&&L!==0)Pr(t,"bad indentation of a mapping entry");else if(t.lineIndente?p=1:t.lineIndent===e?p=0:t.lineIndente?p=1:t.lineIndent===e?p=0:t.lineIndent tag; it should be "scalar", not "'+t.kind+'"'),I=0,v=t.implicitTypes.length;I tag; it should be "'+x.kind+'", not "'+t.kind+'"'),x.resolve(t.result)?(t.result=x.construct(t.result),t.anchor!==null&&(t.anchorMap[t.anchor]=t.result)):Pr(t,"cannot resolve a node with !<"+t.tag+"> explicit tag")):Pr(t,"unknown tag !<"+t.tag+">");return t.listener!==null&&t.listener("close",t),t.tag!==null||t.anchor!==null||E}function a6e(t){var e=t.position,r,o,a,n=!1,u;for(t.version=null,t.checkLineBreaks=t.legacy,t.tagMap={},t.anchorMap={};(u=t.input.charCodeAt(t.position))!==0&&(Wi(t,!0,-1),u=t.input.charCodeAt(t.position),!(t.lineIndent>0||u!==37));){for(n=!0,u=t.input.charCodeAt(++t.position),r=t.position;u!==0&&!Ia(u);)u=t.input.charCodeAt(++t.position);for(o=t.input.slice(r,t.position),a=[],o.length<1&&Pr(t,"directive name must not be less than one character in length");u!==0;){for(;Zg(u);)u=t.input.charCodeAt(++t.position);if(u===35){do u=t.input.charCodeAt(++t.position);while(u!==0&&!Hu(u));break}if(Hu(u))break;for(r=t.position;u!==0&&!Ia(u);)u=t.input.charCodeAt(++t.position);a.push(t.input.slice(r,t.position))}u!==0&&mT(t),Yp.call(lK,o)?lK[o](t,o,a):YD(t,'unknown document directive "'+o+'"')}if(Wi(t,!0,-1),t.lineIndent===0&&t.input.charCodeAt(t.position)===45&&t.input.charCodeAt(t.position+1)===45&&t.input.charCodeAt(t.position+2)===45?(t.position+=3,Wi(t,!0,-1)):n&&Pr(t,"directives end mark is expected"),dy(t,t.lineIndent-1,GD,!1,!0),Wi(t,!0,-1),t.checkLineBreaks&&YHe.test(t.input.slice(e,t.position))&&YD(t,"non-ASCII line breaks are interpreted as content"),t.documents.push(t.result),t.position===t.lineStart&&WD(t)){t.input.charCodeAt(t.position)===46&&(t.position+=3,Wi(t,!0,-1));return}if(t.position"u"&&(r=e,e=null);var o=CK(t,r);if(typeof e!="function")return o;for(var a=0,n=o.length;a"u"&&(r=e,e=null),wK(t,e,yf.extend({schema:fK},r))}function c6e(t,e){return IK(t,yf.extend({schema:fK},e))}Zw.exports.loadAll=wK;Zw.exports.load=IK;Zw.exports.safeLoadAll=l6e;Zw.exports.safeLoad=c6e});var WK=_((Axt,IT)=>{"use strict";var eI=Vg(),tI=Ay(),u6e=Xw(),A6e=py(),QK=Object.prototype.toString,FK=Object.prototype.hasOwnProperty,f6e=9,$w=10,p6e=13,h6e=32,g6e=33,d6e=34,RK=35,m6e=37,y6e=38,E6e=39,C6e=42,TK=44,w6e=45,NK=58,I6e=61,B6e=62,v6e=63,D6e=64,LK=91,OK=93,S6e=96,MK=123,P6e=124,UK=125,vo={};vo[0]="\\0";vo[7]="\\a";vo[8]="\\b";vo[9]="\\t";vo[10]="\\n";vo[11]="\\v";vo[12]="\\f";vo[13]="\\r";vo[27]="\\e";vo[34]='\\"';vo[92]="\\\\";vo[133]="\\N";vo[160]="\\_";vo[8232]="\\L";vo[8233]="\\P";var b6e=["y","Y","yes","Yes","YES","on","On","ON","n","N","no","No","NO","off","Off","OFF"];function x6e(t,e){var r,o,a,n,u,A,p;if(e===null)return{};for(r={},o=Object.keys(e),a=0,n=o.length;a0?t.charCodeAt(n-1):null,v=v&&SK(u,A)}else{for(n=0;no&&t[I+1]!==" ",I=n);else if(!my(u))return KD;A=n>0?t.charCodeAt(n-1):null,v=v&&SK(u,A)}h=h||E&&n-I-1>o&&t[I+1]!==" "}return!p&&!h?v&&!a(t)?HK:qK:r>9&&_K(t)?KD:h?GK:jK}function N6e(t,e,r,o){t.dump=function(){if(e.length===0)return"''";if(!t.noCompatMode&&b6e.indexOf(e)!==-1)return"'"+e+"'";var a=t.indent*Math.max(1,r),n=t.lineWidth===-1?-1:Math.max(Math.min(t.lineWidth,40),t.lineWidth-a),u=o||t.flowLevel>-1&&r>=t.flowLevel;function A(p){return Q6e(t,p)}switch(T6e(e,u,t.indent,n,A)){case HK:return e;case qK:return"'"+e.replace(/'/g,"''")+"'";case jK:return"|"+PK(e,t.indent)+bK(DK(e,a));case GK:return">"+PK(e,t.indent)+bK(DK(L6e(e,n),a));case KD:return'"'+O6e(e,n)+'"';default:throw new tI("impossible error: invalid scalar style")}}()}function PK(t,e){var r=_K(t)?String(e):"",o=t[t.length-1]===` +`,a=o&&(t[t.length-2]===` +`||t===` +`),n=a?"+":o?"":"-";return r+n+` +`}function bK(t){return t[t.length-1]===` +`?t.slice(0,-1):t}function L6e(t,e){for(var r=/(\n+)([^\n]*)/g,o=function(){var h=t.indexOf(` +`);return h=h!==-1?h:t.length,r.lastIndex=h,xK(t.slice(0,h),e)}(),a=t[0]===` +`||t[0]===" ",n,u;u=r.exec(t);){var A=u[1],p=u[2];n=p[0]===" ",o+=A+(!a&&!n&&p!==""?` +`:"")+xK(p,e),a=n}return o}function xK(t,e){if(t===""||t[0]===" ")return t;for(var r=/ [^ ]/g,o,a=0,n,u=0,A=0,p="";o=r.exec(t);)A=o.index,A-a>e&&(n=u>a?u:A,p+=` +`+t.slice(a,n),a=n+1),u=A;return p+=` +`,t.length-a>e&&u>a?p+=t.slice(a,u)+` +`+t.slice(u+1):p+=t.slice(a),p.slice(1)}function O6e(t){for(var e="",r,o,a,n=0;n=55296&&r<=56319&&(o=t.charCodeAt(n+1),o>=56320&&o<=57343)){e+=vK((r-55296)*1024+o-56320+65536),n++;continue}a=vo[r],e+=!a&&my(r)?t[n]:a||vK(r)}return e}function M6e(t,e,r){var o="",a=t.tag,n,u;for(n=0,u=r.length;n1024&&(E+="? "),E+=t.dump+(t.condenseFlow?'"':"")+":"+(t.condenseFlow?"":" "),$g(t,e,h,!1,!1)&&(E+=t.dump,o+=E));t.tag=a,t.dump="{"+o+"}"}function H6e(t,e,r,o){var a="",n=t.tag,u=Object.keys(r),A,p,h,E,I,v;if(t.sortKeys===!0)u.sort();else if(typeof t.sortKeys=="function")u.sort(t.sortKeys);else if(t.sortKeys)throw new tI("sortKeys must be a boolean or a function");for(A=0,p=u.length;A1024,I&&(t.dump&&$w===t.dump.charCodeAt(0)?v+="?":v+="? "),v+=t.dump,I&&(v+=ET(t,e)),$g(t,e+1,E,!0,I)&&(t.dump&&$w===t.dump.charCodeAt(0)?v+=":":v+=": ",v+=t.dump,a+=v));t.tag=n,t.dump=a||"{}"}function kK(t,e,r){var o,a,n,u,A,p;for(a=r?t.explicitTypes:t.implicitTypes,n=0,u=a.length;n tag resolver accepts not "'+p+'" style');t.dump=o}return!0}return!1}function $g(t,e,r,o,a,n){t.tag=null,t.dump=r,kK(t,r,!1)||kK(t,r,!0);var u=QK.call(t.dump);o&&(o=t.flowLevel<0||t.flowLevel>e);var A=u==="[object Object]"||u==="[object Array]",p,h;if(A&&(p=t.duplicates.indexOf(r),h=p!==-1),(t.tag!==null&&t.tag!=="?"||h||t.indent!==2&&e>0)&&(a=!1),h&&t.usedDuplicates[p])t.dump="*ref_"+p;else{if(A&&h&&!t.usedDuplicates[p]&&(t.usedDuplicates[p]=!0),u==="[object Object]")o&&Object.keys(t.dump).length!==0?(H6e(t,e,t.dump,a),h&&(t.dump="&ref_"+p+t.dump)):(_6e(t,e,t.dump),h&&(t.dump="&ref_"+p+" "+t.dump));else if(u==="[object Array]"){var E=t.noArrayIndent&&e>0?e-1:e;o&&t.dump.length!==0?(U6e(t,E,t.dump,a),h&&(t.dump="&ref_"+p+t.dump)):(M6e(t,E,t.dump),h&&(t.dump="&ref_"+p+" "+t.dump))}else if(u==="[object String]")t.tag!=="?"&&N6e(t,t.dump,e,n);else{if(t.skipInvalid)return!1;throw new tI("unacceptable kind of an object to dump "+u)}t.tag!==null&&t.tag!=="?"&&(t.dump="!<"+t.tag+"> "+t.dump)}return!0}function q6e(t,e){var r=[],o=[],a,n;for(CT(t,r,o),a=0,n=o.length;a{"use strict";var VD=BK(),KK=WK();function JD(t){return function(){throw new Error("Function "+t+" is deprecated and cannot be used.")}}ki.exports.Type=os();ki.exports.Schema=Jg();ki.exports.FAILSAFE_SCHEMA=HD();ki.exports.JSON_SCHEMA=pT();ki.exports.CORE_SCHEMA=hT();ki.exports.DEFAULT_SAFE_SCHEMA=py();ki.exports.DEFAULT_FULL_SCHEMA=Xw();ki.exports.load=VD.load;ki.exports.loadAll=VD.loadAll;ki.exports.safeLoad=VD.safeLoad;ki.exports.safeLoadAll=VD.safeLoadAll;ki.exports.dump=KK.dump;ki.exports.safeDump=KK.safeDump;ki.exports.YAMLException=Ay();ki.exports.MINIMAL_SCHEMA=HD();ki.exports.SAFE_SCHEMA=py();ki.exports.DEFAULT_SCHEMA=Xw();ki.exports.scan=JD("scan");ki.exports.parse=JD("parse");ki.exports.compose=JD("compose");ki.exports.addConstructor=JD("addConstructor")});var zK=_((pxt,JK)=>{"use strict";var G6e=VK();JK.exports=G6e});var ZK=_((hxt,XK)=>{"use strict";function Y6e(t,e){function r(){this.constructor=t}r.prototype=e.prototype,t.prototype=new r}function ed(t,e,r,o){this.message=t,this.expected=e,this.found=r,this.location=o,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,ed)}Y6e(ed,Error);ed.buildMessage=function(t,e){var r={literal:function(h){return'"'+a(h.text)+'"'},class:function(h){var E="",I;for(I=0;I0){for(I=1,v=1;I({[pt]:Le})))},fe=function($){return $},ce=function($){return $},me=sa("correct indentation"),he=" ",Be=Qn(" ",!1),we=function($){return $.length===nr*It},g=function($){return $.length===(nr+1)*It},Ee=function(){return nr++,!0},Se=function(){return nr--,!0},le=function(){return SA()},ne=sa("pseudostring"),ee=/^[^\r\n\t ?:,\][{}#&*!|>'"%@`\-]/,Ie=hi(["\r",` +`," "," ","?",":",",","]","[","{","}","#","&","*","!","|",">","'",'"',"%","@","`","-"],!0,!1),Fe=/^[^\r\n\t ,\][{}:#"']/,At=hi(["\r",` +`," "," ",",","]","[","{","}",":","#",'"',"'"],!0,!1),H=function(){return SA().replace(/^ *| *$/g,"")},at="--",Re=Qn("--",!1),ke=/^[a-zA-Z\/0-9]/,xe=hi([["a","z"],["A","Z"],"/",["0","9"]],!1,!1),He=/^[^\r\n\t :,]/,Te=hi(["\r",` +`," "," ",":",","],!0,!1),Je="null",qe=Qn("null",!1),b=function(){return null},w="true",P=Qn("true",!1),y=function(){return!0},F="false",z=Qn("false",!1),X=function(){return!1},Z=sa("string"),ie='"',Pe=Qn('"',!1),Ne=function(){return""},ot=function($){return $},dt=function($){return $.join("")},jt=/^[^"\\\0-\x1F\x7F]/,$t=hi(['"',"\\",["\0",""],"\x7F"],!0,!1),bt='\\"',an=Qn('\\"',!1),Qr=function(){return'"'},mr="\\\\",br=Qn("\\\\",!1),Wr=function(){return"\\"},Kn="\\/",Ns=Qn("\\/",!1),Ti=function(){return"/"},ps="\\b",io=Qn("\\b",!1),Pi=function(){return"\b"},Ls="\\f",so=Qn("\\f",!1),cc=function(){return"\f"},cu="\\n",lp=Qn("\\n",!1),cp=function(){return` +`},Os="\\r",Dn=Qn("\\r",!1),oo=function(){return"\r"},Ms="\\t",ml=Qn("\\t",!1),yl=function(){return" "},ao="\\u",Vn=Qn("\\u",!1),On=function($,ye,Le,pt){return String.fromCharCode(parseInt(`0x${$}${ye}${Le}${pt}`))},Ni=/^[0-9a-fA-F]/,Mn=hi([["0","9"],["a","f"],["A","F"]],!1,!1),_i=sa("blank space"),tr=/^[ \t]/,Oe=hi([" "," "],!1,!1),ii=sa("white space"),Ma=/^[ \t\n\r]/,hr=hi([" "," ",` +`,"\r"],!1,!1),uc=`\r +`,uu=Qn(`\r +`,!1),Ac=` +`,El=Qn(` +`,!1),DA="\r",Au=Qn("\r",!1),Ce=0,Rt=0,fc=[{line:1,column:1}],Hi=0,fu=[],Yt=0,Cl;if("startRule"in e){if(!(e.startRule in o))throw new Error(`Can't start parsing from rule "`+e.startRule+'".');a=o[e.startRule]}function SA(){return t.substring(Rt,Ce)}function up(){return _o(Rt,Ce)}function pc($,ye){throw ye=ye!==void 0?ye:_o(Rt,Ce),gc([sa($)],t.substring(Rt,Ce),ye)}function PA($,ye){throw ye=ye!==void 0?ye:_o(Rt,Ce),lo($,ye)}function Qn($,ye){return{type:"literal",text:$,ignoreCase:ye}}function hi($,ye,Le){return{type:"class",parts:$,inverted:ye,ignoreCase:Le}}function hc(){return{type:"any"}}function bA(){return{type:"end"}}function sa($){return{type:"other",description:$}}function Li($){var ye=fc[$],Le;if(ye)return ye;for(Le=$-1;!fc[Le];)Le--;for(ye=fc[Le],ye={line:ye.line,column:ye.column};Le<$;)t.charCodeAt(Le)===10?(ye.line++,ye.column=1):ye.column++,Le++;return fc[$]=ye,ye}function _o($,ye){var Le=Li($),pt=Li(ye);return{start:{offset:$,line:Le.line,column:Le.column},end:{offset:ye,line:pt.line,column:pt.column}}}function Ze($){CeHi&&(Hi=Ce,fu=[]),fu.push($))}function lo($,ye){return new ed($,null,null,ye)}function gc($,ye,Le){return new ed(ed.buildMessage($,ye),$,ye,Le)}function pu(){var $;return $=xA(),$}function qi(){var $,ye,Le;for($=Ce,ye=[],Le=hu();Le!==r;)ye.push(Le),Le=hu();return ye!==r&&(Rt=$,ye=n(ye)),$=ye,$}function hu(){var $,ye,Le,pt,ht;return $=Ce,ye=hs(),ye!==r?(t.charCodeAt(Ce)===45?(Le=u,Ce++):(Le=r,Yt===0&&Ze(A)),Le!==r?(pt=Sn(),pt!==r?(ht=dc(),ht!==r?(Rt=$,ye=p(ht),$=ye):(Ce=$,$=r)):(Ce=$,$=r)):(Ce=$,$=r)):(Ce=$,$=r),$}function xA(){var $,ye,Le;for($=Ce,ye=[],Le=Ua();Le!==r;)ye.push(Le),Le=Ua();return ye!==r&&(Rt=$,ye=h(ye)),$=ye,$}function Ua(){var $,ye,Le,pt,ht,Tt,er,$r,ji;if($=Ce,ye=Sn(),ye===r&&(ye=null),ye!==r){if(Le=Ce,t.charCodeAt(Ce)===35?(pt=E,Ce++):(pt=r,Yt===0&&Ze(I)),pt!==r){if(ht=[],Tt=Ce,er=Ce,Yt++,$r=tt(),Yt--,$r===r?er=void 0:(Ce=er,er=r),er!==r?(t.length>Ce?($r=t.charAt(Ce),Ce++):($r=r,Yt===0&&Ze(v)),$r!==r?(er=[er,$r],Tt=er):(Ce=Tt,Tt=r)):(Ce=Tt,Tt=r),Tt!==r)for(;Tt!==r;)ht.push(Tt),Tt=Ce,er=Ce,Yt++,$r=tt(),Yt--,$r===r?er=void 0:(Ce=er,er=r),er!==r?(t.length>Ce?($r=t.charAt(Ce),Ce++):($r=r,Yt===0&&Ze(v)),$r!==r?(er=[er,$r],Tt=er):(Ce=Tt,Tt=r)):(Ce=Tt,Tt=r);else ht=r;ht!==r?(pt=[pt,ht],Le=pt):(Ce=Le,Le=r)}else Ce=Le,Le=r;if(Le===r&&(Le=null),Le!==r){if(pt=[],ht=We(),ht!==r)for(;ht!==r;)pt.push(ht),ht=We();else pt=r;pt!==r?(Rt=$,ye=x(),$=ye):(Ce=$,$=r)}else Ce=$,$=r}else Ce=$,$=r;if($===r&&($=Ce,ye=hs(),ye!==r?(Le=oa(),Le!==r?(pt=Sn(),pt===r&&(pt=null),pt!==r?(t.charCodeAt(Ce)===58?(ht=C,Ce++):(ht=r,Yt===0&&Ze(R)),ht!==r?(Tt=Sn(),Tt===r&&(Tt=null),Tt!==r?(er=dc(),er!==r?(Rt=$,ye=L(Le,er),$=ye):(Ce=$,$=r)):(Ce=$,$=r)):(Ce=$,$=r)):(Ce=$,$=r)):(Ce=$,$=r)):(Ce=$,$=r),$===r&&($=Ce,ye=hs(),ye!==r?(Le=co(),Le!==r?(pt=Sn(),pt===r&&(pt=null),pt!==r?(t.charCodeAt(Ce)===58?(ht=C,Ce++):(ht=r,Yt===0&&Ze(R)),ht!==r?(Tt=Sn(),Tt===r&&(Tt=null),Tt!==r?(er=dc(),er!==r?(Rt=$,ye=L(Le,er),$=ye):(Ce=$,$=r)):(Ce=$,$=r)):(Ce=$,$=r)):(Ce=$,$=r)):(Ce=$,$=r)):(Ce=$,$=r),$===r))){if($=Ce,ye=hs(),ye!==r)if(Le=co(),Le!==r)if(pt=Sn(),pt!==r)if(ht=aa(),ht!==r){if(Tt=[],er=We(),er!==r)for(;er!==r;)Tt.push(er),er=We();else Tt=r;Tt!==r?(Rt=$,ye=L(Le,ht),$=ye):(Ce=$,$=r)}else Ce=$,$=r;else Ce=$,$=r;else Ce=$,$=r;else Ce=$,$=r;if($===r)if($=Ce,ye=hs(),ye!==r)if(Le=co(),Le!==r){if(pt=[],ht=Ce,Tt=Sn(),Tt===r&&(Tt=null),Tt!==r?(t.charCodeAt(Ce)===44?(er=U,Ce++):(er=r,Yt===0&&Ze(J)),er!==r?($r=Sn(),$r===r&&($r=null),$r!==r?(ji=co(),ji!==r?(Rt=ht,Tt=te(Le,ji),ht=Tt):(Ce=ht,ht=r)):(Ce=ht,ht=r)):(Ce=ht,ht=r)):(Ce=ht,ht=r),ht!==r)for(;ht!==r;)pt.push(ht),ht=Ce,Tt=Sn(),Tt===r&&(Tt=null),Tt!==r?(t.charCodeAt(Ce)===44?(er=U,Ce++):(er=r,Yt===0&&Ze(J)),er!==r?($r=Sn(),$r===r&&($r=null),$r!==r?(ji=co(),ji!==r?(Rt=ht,Tt=te(Le,ji),ht=Tt):(Ce=ht,ht=r)):(Ce=ht,ht=r)):(Ce=ht,ht=r)):(Ce=ht,ht=r);else pt=r;pt!==r?(ht=Sn(),ht===r&&(ht=null),ht!==r?(t.charCodeAt(Ce)===58?(Tt=C,Ce++):(Tt=r,Yt===0&&Ze(R)),Tt!==r?(er=Sn(),er===r&&(er=null),er!==r?($r=dc(),$r!==r?(Rt=$,ye=ae(Le,pt,$r),$=ye):(Ce=$,$=r)):(Ce=$,$=r)):(Ce=$,$=r)):(Ce=$,$=r)):(Ce=$,$=r)}else Ce=$,$=r;else Ce=$,$=r}return $}function dc(){var $,ye,Le,pt,ht,Tt,er;if($=Ce,ye=Ce,Yt++,Le=Ce,pt=tt(),pt!==r?(ht=_t(),ht!==r?(t.charCodeAt(Ce)===45?(Tt=u,Ce++):(Tt=r,Yt===0&&Ze(A)),Tt!==r?(er=Sn(),er!==r?(pt=[pt,ht,Tt,er],Le=pt):(Ce=Le,Le=r)):(Ce=Le,Le=r)):(Ce=Le,Le=r)):(Ce=Le,Le=r),Yt--,Le!==r?(Ce=ye,ye=void 0):ye=r,ye!==r?(Le=We(),Le!==r?(pt=Fn(),pt!==r?(ht=qi(),ht!==r?(Tt=Ci(),Tt!==r?(Rt=$,ye=fe(ht),$=ye):(Ce=$,$=r)):(Ce=$,$=r)):(Ce=$,$=r)):(Ce=$,$=r)):(Ce=$,$=r),$===r&&($=Ce,ye=tt(),ye!==r?(Le=Fn(),Le!==r?(pt=xA(),pt!==r?(ht=Ci(),ht!==r?(Rt=$,ye=fe(pt),$=ye):(Ce=$,$=r)):(Ce=$,$=r)):(Ce=$,$=r)):(Ce=$,$=r),$===r))if($=Ce,ye=Us(),ye!==r){if(Le=[],pt=We(),pt!==r)for(;pt!==r;)Le.push(pt),pt=We();else Le=r;Le!==r?(Rt=$,ye=ce(ye),$=ye):(Ce=$,$=r)}else Ce=$,$=r;return $}function hs(){var $,ye,Le;for(Yt++,$=Ce,ye=[],t.charCodeAt(Ce)===32?(Le=he,Ce++):(Le=r,Yt===0&&Ze(Be));Le!==r;)ye.push(Le),t.charCodeAt(Ce)===32?(Le=he,Ce++):(Le=r,Yt===0&&Ze(Be));return ye!==r?(Rt=Ce,Le=we(ye),Le?Le=void 0:Le=r,Le!==r?(ye=[ye,Le],$=ye):(Ce=$,$=r)):(Ce=$,$=r),Yt--,$===r&&(ye=r,Yt===0&&Ze(me)),$}function _t(){var $,ye,Le;for($=Ce,ye=[],t.charCodeAt(Ce)===32?(Le=he,Ce++):(Le=r,Yt===0&&Ze(Be));Le!==r;)ye.push(Le),t.charCodeAt(Ce)===32?(Le=he,Ce++):(Le=r,Yt===0&&Ze(Be));return ye!==r?(Rt=Ce,Le=g(ye),Le?Le=void 0:Le=r,Le!==r?(ye=[ye,Le],$=ye):(Ce=$,$=r)):(Ce=$,$=r),$}function Fn(){var $;return Rt=Ce,$=Ee(),$?$=void 0:$=r,$}function Ci(){var $;return Rt=Ce,$=Se(),$?$=void 0:$=r,$}function oa(){var $;return $=ds(),$===r&&($=la()),$}function co(){var $,ye,Le;if($=ds(),$===r){if($=Ce,ye=[],Le=Ho(),Le!==r)for(;Le!==r;)ye.push(Le),Le=Ho();else ye=r;ye!==r&&(Rt=$,ye=le()),$=ye}return $}function Us(){var $;return $=wi(),$===r&&($=gs(),$===r&&($=ds(),$===r&&($=la()))),$}function aa(){var $;return $=wi(),$===r&&($=ds(),$===r&&($=Ho())),$}function la(){var $,ye,Le,pt,ht,Tt;if(Yt++,$=Ce,ee.test(t.charAt(Ce))?(ye=t.charAt(Ce),Ce++):(ye=r,Yt===0&&Ze(Ie)),ye!==r){for(Le=[],pt=Ce,ht=Sn(),ht===r&&(ht=null),ht!==r?(Fe.test(t.charAt(Ce))?(Tt=t.charAt(Ce),Ce++):(Tt=r,Yt===0&&Ze(At)),Tt!==r?(ht=[ht,Tt],pt=ht):(Ce=pt,pt=r)):(Ce=pt,pt=r);pt!==r;)Le.push(pt),pt=Ce,ht=Sn(),ht===r&&(ht=null),ht!==r?(Fe.test(t.charAt(Ce))?(Tt=t.charAt(Ce),Ce++):(Tt=r,Yt===0&&Ze(At)),Tt!==r?(ht=[ht,Tt],pt=ht):(Ce=pt,pt=r)):(Ce=pt,pt=r);Le!==r?(Rt=$,ye=H(),$=ye):(Ce=$,$=r)}else Ce=$,$=r;return Yt--,$===r&&(ye=r,Yt===0&&Ze(ne)),$}function Ho(){var $,ye,Le,pt,ht;if($=Ce,t.substr(Ce,2)===at?(ye=at,Ce+=2):(ye=r,Yt===0&&Ze(Re)),ye===r&&(ye=null),ye!==r)if(ke.test(t.charAt(Ce))?(Le=t.charAt(Ce),Ce++):(Le=r,Yt===0&&Ze(xe)),Le!==r){for(pt=[],He.test(t.charAt(Ce))?(ht=t.charAt(Ce),Ce++):(ht=r,Yt===0&&Ze(Te));ht!==r;)pt.push(ht),He.test(t.charAt(Ce))?(ht=t.charAt(Ce),Ce++):(ht=r,Yt===0&&Ze(Te));pt!==r?(Rt=$,ye=H(),$=ye):(Ce=$,$=r)}else Ce=$,$=r;else Ce=$,$=r;return $}function wi(){var $,ye;return $=Ce,t.substr(Ce,4)===Je?(ye=Je,Ce+=4):(ye=r,Yt===0&&Ze(qe)),ye!==r&&(Rt=$,ye=b()),$=ye,$}function gs(){var $,ye;return $=Ce,t.substr(Ce,4)===w?(ye=w,Ce+=4):(ye=r,Yt===0&&Ze(P)),ye!==r&&(Rt=$,ye=y()),$=ye,$===r&&($=Ce,t.substr(Ce,5)===F?(ye=F,Ce+=5):(ye=r,Yt===0&&Ze(z)),ye!==r&&(Rt=$,ye=X()),$=ye),$}function ds(){var $,ye,Le,pt;return Yt++,$=Ce,t.charCodeAt(Ce)===34?(ye=ie,Ce++):(ye=r,Yt===0&&Ze(Pe)),ye!==r?(t.charCodeAt(Ce)===34?(Le=ie,Ce++):(Le=r,Yt===0&&Ze(Pe)),Le!==r?(Rt=$,ye=Ne(),$=ye):(Ce=$,$=r)):(Ce=$,$=r),$===r&&($=Ce,t.charCodeAt(Ce)===34?(ye=ie,Ce++):(ye=r,Yt===0&&Ze(Pe)),ye!==r?(Le=ms(),Le!==r?(t.charCodeAt(Ce)===34?(pt=ie,Ce++):(pt=r,Yt===0&&Ze(Pe)),pt!==r?(Rt=$,ye=ot(Le),$=ye):(Ce=$,$=r)):(Ce=$,$=r)):(Ce=$,$=r)),Yt--,$===r&&(ye=r,Yt===0&&Ze(Z)),$}function ms(){var $,ye,Le;if($=Ce,ye=[],Le=_s(),Le!==r)for(;Le!==r;)ye.push(Le),Le=_s();else ye=r;return ye!==r&&(Rt=$,ye=dt(ye)),$=ye,$}function _s(){var $,ye,Le,pt,ht,Tt;return jt.test(t.charAt(Ce))?($=t.charAt(Ce),Ce++):($=r,Yt===0&&Ze($t)),$===r&&($=Ce,t.substr(Ce,2)===bt?(ye=bt,Ce+=2):(ye=r,Yt===0&&Ze(an)),ye!==r&&(Rt=$,ye=Qr()),$=ye,$===r&&($=Ce,t.substr(Ce,2)===mr?(ye=mr,Ce+=2):(ye=r,Yt===0&&Ze(br)),ye!==r&&(Rt=$,ye=Wr()),$=ye,$===r&&($=Ce,t.substr(Ce,2)===Kn?(ye=Kn,Ce+=2):(ye=r,Yt===0&&Ze(Ns)),ye!==r&&(Rt=$,ye=Ti()),$=ye,$===r&&($=Ce,t.substr(Ce,2)===ps?(ye=ps,Ce+=2):(ye=r,Yt===0&&Ze(io)),ye!==r&&(Rt=$,ye=Pi()),$=ye,$===r&&($=Ce,t.substr(Ce,2)===Ls?(ye=Ls,Ce+=2):(ye=r,Yt===0&&Ze(so)),ye!==r&&(Rt=$,ye=cc()),$=ye,$===r&&($=Ce,t.substr(Ce,2)===cu?(ye=cu,Ce+=2):(ye=r,Yt===0&&Ze(lp)),ye!==r&&(Rt=$,ye=cp()),$=ye,$===r&&($=Ce,t.substr(Ce,2)===Os?(ye=Os,Ce+=2):(ye=r,Yt===0&&Ze(Dn)),ye!==r&&(Rt=$,ye=oo()),$=ye,$===r&&($=Ce,t.substr(Ce,2)===Ms?(ye=Ms,Ce+=2):(ye=r,Yt===0&&Ze(ml)),ye!==r&&(Rt=$,ye=yl()),$=ye,$===r&&($=Ce,t.substr(Ce,2)===ao?(ye=ao,Ce+=2):(ye=r,Yt===0&&Ze(Vn)),ye!==r?(Le=Un(),Le!==r?(pt=Un(),pt!==r?(ht=Un(),ht!==r?(Tt=Un(),Tt!==r?(Rt=$,ye=On(Le,pt,ht,Tt),$=ye):(Ce=$,$=r)):(Ce=$,$=r)):(Ce=$,$=r)):(Ce=$,$=r)):(Ce=$,$=r)))))))))),$}function Un(){var $;return Ni.test(t.charAt(Ce))?($=t.charAt(Ce),Ce++):($=r,Yt===0&&Ze(Mn)),$}function Sn(){var $,ye;if(Yt++,$=[],tr.test(t.charAt(Ce))?(ye=t.charAt(Ce),Ce++):(ye=r,Yt===0&&Ze(Oe)),ye!==r)for(;ye!==r;)$.push(ye),tr.test(t.charAt(Ce))?(ye=t.charAt(Ce),Ce++):(ye=r,Yt===0&&Ze(Oe));else $=r;return Yt--,$===r&&(ye=r,Yt===0&&Ze(_i)),$}function ys(){var $,ye;if(Yt++,$=[],Ma.test(t.charAt(Ce))?(ye=t.charAt(Ce),Ce++):(ye=r,Yt===0&&Ze(hr)),ye!==r)for(;ye!==r;)$.push(ye),Ma.test(t.charAt(Ce))?(ye=t.charAt(Ce),Ce++):(ye=r,Yt===0&&Ze(hr));else $=r;return Yt--,$===r&&(ye=r,Yt===0&&Ze(ii)),$}function We(){var $,ye,Le,pt,ht,Tt;if($=Ce,ye=tt(),ye!==r){for(Le=[],pt=Ce,ht=Sn(),ht===r&&(ht=null),ht!==r?(Tt=tt(),Tt!==r?(ht=[ht,Tt],pt=ht):(Ce=pt,pt=r)):(Ce=pt,pt=r);pt!==r;)Le.push(pt),pt=Ce,ht=Sn(),ht===r&&(ht=null),ht!==r?(Tt=tt(),Tt!==r?(ht=[ht,Tt],pt=ht):(Ce=pt,pt=r)):(Ce=pt,pt=r);Le!==r?(ye=[ye,Le],$=ye):(Ce=$,$=r)}else Ce=$,$=r;return $}function tt(){var $;return t.substr(Ce,2)===uc?($=uc,Ce+=2):($=r,Yt===0&&Ze(uu)),$===r&&(t.charCodeAt(Ce)===10?($=Ac,Ce++):($=r,Yt===0&&Ze(El)),$===r&&(t.charCodeAt(Ce)===13?($=DA,Ce++):($=r,Yt===0&&Ze(Au)))),$}let It=2,nr=0;if(Cl=a(),Cl!==r&&Ce===t.length)return Cl;throw Cl!==r&&Ce"u"?!0:typeof t=="object"&&t!==null&&!Array.isArray(t)?Object.keys(t).every(e=>rV(t[e])):!1}function BT(t,e,r){if(t===null)return`null +`;if(typeof t=="number"||typeof t=="boolean")return`${t.toString()} +`;if(typeof t=="string")return`${eV(t)} +`;if(Array.isArray(t)){if(t.length===0)return`[] +`;let o=" ".repeat(e);return` +${t.map(n=>`${o}- ${BT(n,e+1,!1)}`).join("")}`}if(typeof t=="object"&&t){let[o,a]=t instanceof zD?[t.data,!1]:[t,!0],n=" ".repeat(e),u=Object.keys(o);a&&u.sort((p,h)=>{let E=$K.indexOf(p),I=$K.indexOf(h);return E===-1&&I===-1?ph?1:0:E!==-1&&I===-1?-1:E===-1&&I!==-1?1:E-I});let A=u.filter(p=>!rV(o[p])).map((p,h)=>{let E=o[p],I=eV(p),v=BT(E,e+1,!0),x=h>0||r?n:"",C=I.length>1024?`? ${I} +${x}:`:`${I}:`,R=v.startsWith(` +`)?v:` ${v}`;return`${x}${C}${R}`}).join(e===0?` +`:"")||` +`;return r?` +${A}`:`${A}`}throw new Error(`Unsupported value type (${t})`)}function Ba(t){try{let e=BT(t,0,!1);return e!==` +`?e:""}catch(e){throw e.location&&(e.message=e.message.replace(/(\.)?$/,` (line ${e.location.start.line}, column ${e.location.start.column})$1`)),e}}function V6e(t){return t.endsWith(` +`)||(t+=` +`),(0,tV.parse)(t)}function z6e(t){if(J6e.test(t))return V6e(t);let e=(0,XD.safeLoad)(t,{schema:XD.FAILSAFE_SCHEMA,json:!0});if(e==null)return{};if(typeof e!="object")throw new Error(`Expected an indexed object, got a ${typeof e} instead. Does your file follow Yaml's rules?`);if(Array.isArray(e))throw new Error("Expected an indexed object, got an array instead. Does your file follow Yaml's rules?");return e}function Ki(t){return z6e(t)}var XD,tV,K6e,$K,zD,J6e,nV=Et(()=>{XD=$e(zK()),tV=$e(ZK()),K6e=/^(?![-?:,\][{}#&*!|>'"%@` \t\r\n]).([ \t]*(?![,\][{}:# \t\r\n]).)*$/,$K=["__metadata","version","resolution","dependencies","peerDependencies","dependenciesMeta","peerDependenciesMeta","binaries"],zD=class{constructor(e){this.data=e}};Ba.PreserveOrdering=zD;J6e=/^(#.*(\r?\n))*?#\s+yarn\s+lockfile\s+v1\r?\n/i});var rI={};Vt(rI,{parseResolution:()=>MD,parseShell:()=>ND,parseSyml:()=>Ki,stringifyArgument:()=>cT,stringifyArgumentSegment:()=>uT,stringifyArithmeticExpression:()=>OD,stringifyCommand:()=>lT,stringifyCommandChain:()=>uy,stringifyCommandChainThen:()=>aT,stringifyCommandLine:()=>LD,stringifyCommandLineThen:()=>oT,stringifyEnvSegment:()=>TD,stringifyRedirectArgument:()=>Jw,stringifyResolution:()=>UD,stringifyShell:()=>cy,stringifyShellLine:()=>cy,stringifySyml:()=>Ba,stringifyValueArgument:()=>Yg});var Nl=Et(()=>{rW();oW();nV()});var sV=_((Ext,vT)=>{"use strict";var X6e=t=>{let e=!1,r=!1,o=!1;for(let a=0;a{if(!(typeof t=="string"||Array.isArray(t)))throw new TypeError("Expected the input to be `string | string[]`");e=Object.assign({pascalCase:!1},e);let r=a=>e.pascalCase?a.charAt(0).toUpperCase()+a.slice(1):a;return Array.isArray(t)?t=t.map(a=>a.trim()).filter(a=>a.length).join("-"):t=t.trim(),t.length===0?"":t.length===1?e.pascalCase?t.toUpperCase():t.toLowerCase():(t!==t.toLowerCase()&&(t=X6e(t)),t=t.replace(/^[_.\- ]+/,"").toLowerCase().replace(/[_.\- ]+(\w|$)/g,(a,n)=>n.toUpperCase()).replace(/\d+(\w|$)/g,a=>a.toUpperCase()),r(t))};vT.exports=iV;vT.exports.default=iV});var oV=_((Cxt,Z6e)=>{Z6e.exports=[{name:"AppVeyor",constant:"APPVEYOR",env:"APPVEYOR",pr:"APPVEYOR_PULL_REQUEST_NUMBER"},{name:"Azure Pipelines",constant:"AZURE_PIPELINES",env:"SYSTEM_TEAMFOUNDATIONCOLLECTIONURI",pr:"SYSTEM_PULLREQUEST_PULLREQUESTID"},{name:"Appcircle",constant:"APPCIRCLE",env:"AC_APPCIRCLE"},{name:"Bamboo",constant:"BAMBOO",env:"bamboo_planKey"},{name:"Bitbucket Pipelines",constant:"BITBUCKET",env:"BITBUCKET_COMMIT",pr:"BITBUCKET_PR_ID"},{name:"Bitrise",constant:"BITRISE",env:"BITRISE_IO",pr:"BITRISE_PULL_REQUEST"},{name:"Buddy",constant:"BUDDY",env:"BUDDY_WORKSPACE_ID",pr:"BUDDY_EXECUTION_PULL_REQUEST_ID"},{name:"Buildkite",constant:"BUILDKITE",env:"BUILDKITE",pr:{env:"BUILDKITE_PULL_REQUEST",ne:"false"}},{name:"CircleCI",constant:"CIRCLE",env:"CIRCLECI",pr:"CIRCLE_PULL_REQUEST"},{name:"Cirrus CI",constant:"CIRRUS",env:"CIRRUS_CI",pr:"CIRRUS_PR"},{name:"AWS CodeBuild",constant:"CODEBUILD",env:"CODEBUILD_BUILD_ARN"},{name:"Codefresh",constant:"CODEFRESH",env:"CF_BUILD_ID",pr:{any:["CF_PULL_REQUEST_NUMBER","CF_PULL_REQUEST_ID"]}},{name:"Codeship",constant:"CODESHIP",env:{CI_NAME:"codeship"}},{name:"Drone",constant:"DRONE",env:"DRONE",pr:{DRONE_BUILD_EVENT:"pull_request"}},{name:"dsari",constant:"DSARI",env:"DSARI"},{name:"GitHub Actions",constant:"GITHUB_ACTIONS",env:"GITHUB_ACTIONS",pr:{GITHUB_EVENT_NAME:"pull_request"}},{name:"GitLab CI",constant:"GITLAB",env:"GITLAB_CI",pr:"CI_MERGE_REQUEST_ID"},{name:"GoCD",constant:"GOCD",env:"GO_PIPELINE_LABEL"},{name:"LayerCI",constant:"LAYERCI",env:"LAYERCI",pr:"LAYERCI_PULL_REQUEST"},{name:"Hudson",constant:"HUDSON",env:"HUDSON_URL"},{name:"Jenkins",constant:"JENKINS",env:["JENKINS_URL","BUILD_ID"],pr:{any:["ghprbPullId","CHANGE_ID"]}},{name:"Magnum CI",constant:"MAGNUM",env:"MAGNUM"},{name:"Netlify CI",constant:"NETLIFY",env:"NETLIFY",pr:{env:"PULL_REQUEST",ne:"false"}},{name:"Nevercode",constant:"NEVERCODE",env:"NEVERCODE",pr:{env:"NEVERCODE_PULL_REQUEST",ne:"false"}},{name:"Render",constant:"RENDER",env:"RENDER",pr:{IS_PULL_REQUEST:"true"}},{name:"Sail CI",constant:"SAIL",env:"SAILCI",pr:"SAIL_PULL_REQUEST_NUMBER"},{name:"Semaphore",constant:"SEMAPHORE",env:"SEMAPHORE",pr:"PULL_REQUEST_NUMBER"},{name:"Screwdriver",constant:"SCREWDRIVER",env:"SCREWDRIVER",pr:{env:"SD_PULL_REQUEST",ne:"false"}},{name:"Shippable",constant:"SHIPPABLE",env:"SHIPPABLE",pr:{IS_PULL_REQUEST:"true"}},{name:"Solano CI",constant:"SOLANO",env:"TDDIUM",pr:"TDDIUM_PR_ID"},{name:"Strider CD",constant:"STRIDER",env:"STRIDER"},{name:"TaskCluster",constant:"TASKCLUSTER",env:["TASK_ID","RUN_ID"]},{name:"TeamCity",constant:"TEAMCITY",env:"TEAMCITY_VERSION"},{name:"Travis CI",constant:"TRAVIS",env:"TRAVIS",pr:{env:"TRAVIS_PULL_REQUEST",ne:"false"}},{name:"Vercel",constant:"VERCEL",env:"NOW_BUILDER"},{name:"Visual Studio App Center",constant:"APPCENTER",env:"APPCENTER_BUILD_ID"}]});var td=_(Xa=>{"use strict";var lV=oV(),qu=process.env;Object.defineProperty(Xa,"_vendors",{value:lV.map(function(t){return t.constant})});Xa.name=null;Xa.isPR=null;lV.forEach(function(t){let r=(Array.isArray(t.env)?t.env:[t.env]).every(function(o){return aV(o)});if(Xa[t.constant]=r,r)switch(Xa.name=t.name,typeof t.pr){case"string":Xa.isPR=!!qu[t.pr];break;case"object":"env"in t.pr?Xa.isPR=t.pr.env in qu&&qu[t.pr.env]!==t.pr.ne:"any"in t.pr?Xa.isPR=t.pr.any.some(function(o){return!!qu[o]}):Xa.isPR=aV(t.pr);break;default:Xa.isPR=null}});Xa.isCI=!!(qu.CI||qu.CONTINUOUS_INTEGRATION||qu.BUILD_NUMBER||qu.RUN_ID||Xa.name);function aV(t){return typeof t=="string"?!!qu[t]:Object.keys(t).every(function(e){return qu[e]===t[e]})}});var Hn,cn,rd,DT,ZD,cV,ST,PT,$D=Et(()=>{(function(t){t.StartOfInput="\0",t.EndOfInput="",t.EndOfPartialInput=""})(Hn||(Hn={}));(function(t){t[t.InitialNode=0]="InitialNode",t[t.SuccessNode=1]="SuccessNode",t[t.ErrorNode=2]="ErrorNode",t[t.CustomNode=3]="CustomNode"})(cn||(cn={}));rd=-1,DT=/^(-h|--help)(?:=([0-9]+))?$/,ZD=/^(--[a-z]+(?:-[a-z]+)*|-[a-zA-Z]+)$/,cV=/^-[a-zA-Z]{2,}$/,ST=/^([^=]+)=([\s\S]*)$/,PT=process.env.DEBUG_CLI==="1"});var it,yy,eS,bT,tS=Et(()=>{$D();it=class extends Error{constructor(e){super(e),this.clipanion={type:"usage"},this.name="UsageError"}},yy=class extends Error{constructor(e,r){if(super(),this.input=e,this.candidates=r,this.clipanion={type:"none"},this.name="UnknownSyntaxError",this.candidates.length===0)this.message="Command not found, but we're not sure what's the alternative.";else if(this.candidates.every(o=>o.reason!==null&&o.reason===r[0].reason)){let[{reason:o}]=this.candidates;this.message=`${o} + +${this.candidates.map(({usage:a})=>`$ ${a}`).join(` +`)}`}else if(this.candidates.length===1){let[{usage:o}]=this.candidates;this.message=`Command not found; did you mean: + +$ ${o} +${bT(e)}`}else this.message=`Command not found; did you mean one of: + +${this.candidates.map(({usage:o},a)=>`${`${a}.`.padStart(4)} ${o}`).join(` +`)} + +${bT(e)}`}},eS=class extends Error{constructor(e,r){super(),this.input=e,this.usages=r,this.clipanion={type:"none"},this.name="AmbiguousSyntaxError",this.message=`Cannot find which to pick amongst the following alternatives: + +${this.usages.map((o,a)=>`${`${a}.`.padStart(4)} ${o}`).join(` +`)} + +${bT(e)}`}},bT=t=>`While running ${t.filter(e=>e!==Hn.EndOfInput&&e!==Hn.EndOfPartialInput).map(e=>{let r=JSON.stringify(e);return e.match(/\s/)||e.length===0||r!==`"${e}"`?r:e}).join(" ")}`});function $6e(t){let e=t.split(` +`),r=e.filter(a=>a.match(/\S/)),o=r.length>0?r.reduce((a,n)=>Math.min(a,n.length-n.trimStart().length),Number.MAX_VALUE):0;return e.map(a=>a.slice(o).trimRight()).join(` +`)}function Do(t,{format:e,paragraphs:r}){return t=t.replace(/\r\n?/g,` +`),t=$6e(t),t=t.replace(/^\n+|\n+$/g,""),t=t.replace(/^(\s*)-([^\n]*?)\n+/gm,`$1-$2 + +`),t=t.replace(/\n(\n)?\n*/g,(o,a)=>a||" "),r&&(t=t.split(/\n/).map(o=>{let a=o.match(/^\s*[*-][\t ]+(.*)/);if(!a)return o.match(/(.{1,80})(?: |$)/g).join(` +`);let n=o.length-o.trimStart().length;return a[1].match(new RegExp(`(.{1,${78-n}})(?: |$)`,"g")).map((u,A)=>" ".repeat(n)+(A===0?"- ":" ")+u).join(` +`)}).join(` + +`)),t=t.replace(/(`+)((?:.|[\n])*?)\1/g,(o,a,n)=>e.code(a+n+a)),t=t.replace(/(\*\*)((?:.|[\n])*?)\1/g,(o,a,n)=>e.bold(a+n+a)),t?`${t} +`:""}var xT,uV,AV,kT=Et(()=>{xT=Array(80).fill("\u2501");for(let t=0;t<=24;++t)xT[xT.length-t]=`\x1B[38;5;${232+t}m\u2501`;uV={header:t=>`\x1B[1m\u2501\u2501\u2501 ${t}${t.length<80-5?` ${xT.slice(t.length+5).join("")}`:":"}\x1B[0m`,bold:t=>`\x1B[1m${t}\x1B[22m`,error:t=>`\x1B[31m\x1B[1m${t}\x1B[22m\x1B[39m`,code:t=>`\x1B[36m${t}\x1B[39m`},AV={header:t=>t,bold:t=>t,error:t=>t,code:t=>t}});function Ko(t){return{...t,[nI]:!0}}function ju(t,e){return typeof t>"u"?[t,e]:typeof t=="object"&&t!==null&&!Array.isArray(t)?[void 0,t]:[t,e]}function rS(t,{mergeName:e=!1}={}){let r=t.match(/^([^:]+): (.*)$/m);if(!r)return"validation failed";let[,o,a]=r;return e&&(a=a[0].toLowerCase()+a.slice(1)),a=o!=="."||!e?`${o.replace(/^\.(\[|$)/,"$1")}: ${a}`:`: ${a}`,a}function iI(t,e){return e.length===1?new it(`${t}${rS(e[0],{mergeName:!0})}`):new it(`${t}: +${e.map(r=>` +- ${rS(r)}`).join("")}`)}function nd(t,e,r){if(typeof r>"u")return e;let o=[],a=[],n=A=>{let p=e;return e=A,n.bind(null,p)};if(!r(e,{errors:o,coercions:a,coercion:n}))throw iI(`Invalid value for ${t}`,o);for(let[,A]of a)A();return e}var nI,Ef=Et(()=>{tS();nI=Symbol("clipanion/isOption")});var Vo={};Vt(Vo,{KeyRelationship:()=>Gu,TypeAssertionError:()=>Kp,applyCascade:()=>aI,as:()=>yqe,assert:()=>gqe,assertWithErrors:()=>dqe,cascade:()=>oS,fn:()=>Eqe,hasAtLeastOneKey:()=>OT,hasExactLength:()=>dV,hasForbiddenKeys:()=>Mqe,hasKeyRelationship:()=>cI,hasMaxLength:()=>wqe,hasMinLength:()=>Cqe,hasMutuallyExclusiveKeys:()=>Uqe,hasRequiredKeys:()=>Oqe,hasUniqueItems:()=>Iqe,isArray:()=>nS,isAtLeast:()=>NT,isAtMost:()=>Dqe,isBase64:()=>Rqe,isBoolean:()=>aqe,isDate:()=>cqe,isDict:()=>fqe,isEnum:()=>Ks,isHexColor:()=>Fqe,isISO8601:()=>Qqe,isInExclusiveRange:()=>Pqe,isInInclusiveRange:()=>Sqe,isInstanceOf:()=>hqe,isInteger:()=>LT,isJSON:()=>Tqe,isLiteral:()=>pV,isLowerCase:()=>bqe,isMap:()=>Aqe,isNegative:()=>Bqe,isNullable:()=>Lqe,isNumber:()=>RT,isObject:()=>hV,isOneOf:()=>TT,isOptional:()=>Nqe,isPartial:()=>pqe,isPayload:()=>lqe,isPositive:()=>vqe,isRecord:()=>sS,isSet:()=>uqe,isString:()=>Cy,isTuple:()=>iS,isUUID4:()=>kqe,isUnknown:()=>FT,isUpperCase:()=>xqe,makeTrait:()=>gV,makeValidator:()=>Hr,matchesRegExp:()=>oI,softAssert:()=>mqe});function qn(t){return t===null?"null":t===void 0?"undefined":t===""?"an empty string":typeof t=="symbol"?`<${t.toString()}>`:Array.isArray(t)?"an array":JSON.stringify(t)}function Ey(t,e){if(t.length===0)return"nothing";if(t.length===1)return qn(t[0]);let r=t.slice(0,-1),o=t[t.length-1],a=t.length>2?`, ${e} `:` ${e} `;return`${r.map(n=>qn(n)).join(", ")}${a}${qn(o)}`}function Wp(t,e){var r,o,a;return typeof e=="number"?`${(r=t?.p)!==null&&r!==void 0?r:"."}[${e}]`:eqe.test(e)?`${(o=t?.p)!==null&&o!==void 0?o:""}.${e}`:`${(a=t?.p)!==null&&a!==void 0?a:"."}[${JSON.stringify(e)}]`}function QT(t,e,r){return t===1?e:r}function pr({errors:t,p:e}={},r){return t?.push(`${e??"."}: ${r}`),!1}function sqe(t,e){return r=>{t[e]=r}}function Yu(t,e){return r=>{let o=t[e];return t[e]=r,Yu(t,e).bind(null,o)}}function sI(t,e,r){let o=()=>(t(r()),a),a=()=>(t(e),o);return o}function FT(){return Hr({test:(t,e)=>!0})}function pV(t){return Hr({test:(e,r)=>e!==t?pr(r,`Expected ${qn(t)} (got ${qn(e)})`):!0})}function Cy(){return Hr({test:(t,e)=>typeof t!="string"?pr(e,`Expected a string (got ${qn(t)})`):!0})}function Ks(t){let e=Array.isArray(t)?t:Object.values(t),r=e.every(a=>typeof a=="string"||typeof a=="number"),o=new Set(e);return o.size===1?pV([...o][0]):Hr({test:(a,n)=>o.has(a)?!0:r?pr(n,`Expected one of ${Ey(e,"or")} (got ${qn(a)})`):pr(n,`Expected a valid enumeration value (got ${qn(a)})`)})}function aqe(){return Hr({test:(t,e)=>{var r;if(typeof t!="boolean"){if(typeof e?.coercions<"u"){if(typeof e?.coercion>"u")return pr(e,"Unbound coercion result");let o=oqe.get(t);if(typeof o<"u")return e.coercions.push([(r=e.p)!==null&&r!==void 0?r:".",e.coercion.bind(null,o)]),!0}return pr(e,`Expected a boolean (got ${qn(t)})`)}return!0}})}function RT(){return Hr({test:(t,e)=>{var r;if(typeof t!="number"){if(typeof e?.coercions<"u"){if(typeof e?.coercion>"u")return pr(e,"Unbound coercion result");let o;if(typeof t=="string"){let a;try{a=JSON.parse(t)}catch{}if(typeof a=="number")if(JSON.stringify(a)===t)o=a;else return pr(e,`Received a number that can't be safely represented by the runtime (${t})`)}if(typeof o<"u")return e.coercions.push([(r=e.p)!==null&&r!==void 0?r:".",e.coercion.bind(null,o)]),!0}return pr(e,`Expected a number (got ${qn(t)})`)}return!0}})}function lqe(t){return Hr({test:(e,r)=>{var o;if(typeof r?.coercions>"u")return pr(r,"The isPayload predicate can only be used with coercion enabled");if(typeof r.coercion>"u")return pr(r,"Unbound coercion result");if(typeof e!="string")return pr(r,`Expected a string (got ${qn(e)})`);let a;try{a=JSON.parse(e)}catch{return pr(r,`Expected a JSON string (got ${qn(e)})`)}let n={value:a};return t(a,Object.assign(Object.assign({},r),{coercion:Yu(n,"value")}))?(r.coercions.push([(o=r.p)!==null&&o!==void 0?o:".",r.coercion.bind(null,n.value)]),!0):!1}})}function cqe(){return Hr({test:(t,e)=>{var r;if(!(t instanceof Date)){if(typeof e?.coercions<"u"){if(typeof e?.coercion>"u")return pr(e,"Unbound coercion result");let o;if(typeof t=="string"&&fV.test(t))o=new Date(t);else{let a;if(typeof t=="string"){let n;try{n=JSON.parse(t)}catch{}typeof n=="number"&&(a=n)}else typeof t=="number"&&(a=t);if(typeof a<"u")if(Number.isSafeInteger(a)||!Number.isSafeInteger(a*1e3))o=new Date(a*1e3);else return pr(e,`Received a timestamp that can't be safely represented by the runtime (${t})`)}if(typeof o<"u")return e.coercions.push([(r=e.p)!==null&&r!==void 0?r:".",e.coercion.bind(null,o)]),!0}return pr(e,`Expected a date (got ${qn(t)})`)}return!0}})}function nS(t,{delimiter:e}={}){return Hr({test:(r,o)=>{var a;let n=r;if(typeof r=="string"&&typeof e<"u"&&typeof o?.coercions<"u"){if(typeof o?.coercion>"u")return pr(o,"Unbound coercion result");r=r.split(e)}if(!Array.isArray(r))return pr(o,`Expected an array (got ${qn(r)})`);let u=!0;for(let A=0,p=r.length;A{var n,u;if(Object.getPrototypeOf(o).toString()==="[object Set]")if(typeof a?.coercions<"u"){if(typeof a?.coercion>"u")return pr(a,"Unbound coercion result");let A=[...o],p=[...o];if(!r(p,Object.assign(Object.assign({},a),{coercion:void 0})))return!1;let h=()=>p.some((E,I)=>E!==A[I])?new Set(p):o;return a.coercions.push([(n=a.p)!==null&&n!==void 0?n:".",sI(a.coercion,o,h)]),!0}else{let A=!0;for(let p of o)if(A=t(p,Object.assign({},a))&&A,!A&&a?.errors==null)break;return A}if(typeof a?.coercions<"u"){if(typeof a?.coercion>"u")return pr(a,"Unbound coercion result");let A={value:o};return r(o,Object.assign(Object.assign({},a),{coercion:Yu(A,"value")}))?(a.coercions.push([(u=a.p)!==null&&u!==void 0?u:".",sI(a.coercion,o,()=>new Set(A.value))]),!0):!1}return pr(a,`Expected a set (got ${qn(o)})`)}})}function Aqe(t,e){let r=nS(iS([t,e])),o=sS(e,{keys:t});return Hr({test:(a,n)=>{var u,A,p;if(Object.getPrototypeOf(a).toString()==="[object Map]")if(typeof n?.coercions<"u"){if(typeof n?.coercion>"u")return pr(n,"Unbound coercion result");let h=[...a],E=[...a];if(!r(E,Object.assign(Object.assign({},n),{coercion:void 0})))return!1;let I=()=>E.some((v,x)=>v[0]!==h[x][0]||v[1]!==h[x][1])?new Map(E):a;return n.coercions.push([(u=n.p)!==null&&u!==void 0?u:".",sI(n.coercion,a,I)]),!0}else{let h=!0;for(let[E,I]of a)if(h=t(E,Object.assign({},n))&&h,!h&&n?.errors==null||(h=e(I,Object.assign(Object.assign({},n),{p:Wp(n,E)}))&&h,!h&&n?.errors==null))break;return h}if(typeof n?.coercions<"u"){if(typeof n?.coercion>"u")return pr(n,"Unbound coercion result");let h={value:a};return Array.isArray(a)?r(a,Object.assign(Object.assign({},n),{coercion:void 0}))?(n.coercions.push([(A=n.p)!==null&&A!==void 0?A:".",sI(n.coercion,a,()=>new Map(h.value))]),!0):!1:o(a,Object.assign(Object.assign({},n),{coercion:Yu(h,"value")}))?(n.coercions.push([(p=n.p)!==null&&p!==void 0?p:".",sI(n.coercion,a,()=>new Map(Object.entries(h.value)))]),!0):!1}return pr(n,`Expected a map (got ${qn(a)})`)}})}function iS(t,{delimiter:e}={}){let r=dV(t.length);return Hr({test:(o,a)=>{var n;if(typeof o=="string"&&typeof e<"u"&&typeof a?.coercions<"u"){if(typeof a?.coercion>"u")return pr(a,"Unbound coercion result");o=o.split(e),a.coercions.push([(n=a.p)!==null&&n!==void 0?n:".",a.coercion.bind(null,o)])}if(!Array.isArray(o))return pr(a,`Expected a tuple (got ${qn(o)})`);let u=r(o,Object.assign({},a));for(let A=0,p=o.length;A{var n;if(Array.isArray(o)&&typeof a?.coercions<"u")return typeof a?.coercion>"u"?pr(a,"Unbound coercion result"):r(o,Object.assign(Object.assign({},a),{coercion:void 0}))?(o=Object.fromEntries(o),a.coercions.push([(n=a.p)!==null&&n!==void 0?n:".",a.coercion.bind(null,o)]),!0):!1;if(typeof o!="object"||o===null)return pr(a,`Expected an object (got ${qn(o)})`);let u=Object.keys(o),A=!0;for(let p=0,h=u.length;p{if(typeof a!="object"||a===null)return pr(n,`Expected an object (got ${qn(a)})`);let u=new Set([...r,...Object.keys(a)]),A={},p=!0;for(let h of u){if(h==="constructor"||h==="__proto__")p=pr(Object.assign(Object.assign({},n),{p:Wp(n,h)}),"Unsafe property name");else{let E=Object.prototype.hasOwnProperty.call(t,h)?t[h]:void 0,I=Object.prototype.hasOwnProperty.call(a,h)?a[h]:void 0;typeof E<"u"?p=E(I,Object.assign(Object.assign({},n),{p:Wp(n,h),coercion:Yu(a,h)}))&&p:e===null?p=pr(Object.assign(Object.assign({},n),{p:Wp(n,h)}),`Extraneous property (got ${qn(I)})`):Object.defineProperty(A,h,{enumerable:!0,get:()=>I,set:sqe(a,h)})}if(!p&&n?.errors==null)break}return e!==null&&(p||n?.errors!=null)&&(p=e(A,n)&&p),p}});return Object.assign(o,{properties:t})}function pqe(t){return hV(t,{extra:sS(FT())})}function gV(t){return()=>t}function Hr({test:t}){return gV(t)()}function gqe(t,e){if(!e(t))throw new Kp}function dqe(t,e){let r=[];if(!e(t,{errors:r}))throw new Kp({errors:r})}function mqe(t,e){}function yqe(t,e,{coerce:r=!1,errors:o,throw:a}={}){let n=o?[]:void 0;if(!r){if(e(t,{errors:n}))return a?t:{value:t,errors:void 0};if(a)throw new Kp({errors:n});return{value:void 0,errors:n??!0}}let u={value:t},A=Yu(u,"value"),p=[];if(!e(t,{errors:n,coercion:A,coercions:p})){if(a)throw new Kp({errors:n});return{value:void 0,errors:n??!0}}for(let[,h]of p)h();return a?u.value:{value:u.value,errors:void 0}}function Eqe(t,e){let r=iS(t);return(...o)=>{if(!r(o))throw new Kp;return e(...o)}}function Cqe(t){return Hr({test:(e,r)=>e.length>=t?!0:pr(r,`Expected to have a length of at least ${t} elements (got ${e.length})`)})}function wqe(t){return Hr({test:(e,r)=>e.length<=t?!0:pr(r,`Expected to have a length of at most ${t} elements (got ${e.length})`)})}function dV(t){return Hr({test:(e,r)=>e.length!==t?pr(r,`Expected to have a length of exactly ${t} elements (got ${e.length})`):!0})}function Iqe({map:t}={}){return Hr({test:(e,r)=>{let o=new Set,a=new Set;for(let n=0,u=e.length;nt<=0?!0:pr(e,`Expected to be negative (got ${t})`)})}function vqe(){return Hr({test:(t,e)=>t>=0?!0:pr(e,`Expected to be positive (got ${t})`)})}function NT(t){return Hr({test:(e,r)=>e>=t?!0:pr(r,`Expected to be at least ${t} (got ${e})`)})}function Dqe(t){return Hr({test:(e,r)=>e<=t?!0:pr(r,`Expected to be at most ${t} (got ${e})`)})}function Sqe(t,e){return Hr({test:(r,o)=>r>=t&&r<=e?!0:pr(o,`Expected to be in the [${t}; ${e}] range (got ${r})`)})}function Pqe(t,e){return Hr({test:(r,o)=>r>=t&&re!==Math.round(e)?pr(r,`Expected to be an integer (got ${e})`):!t&&!Number.isSafeInteger(e)?pr(r,`Expected to be a safe integer (got ${e})`):!0})}function oI(t){return Hr({test:(e,r)=>t.test(e)?!0:pr(r,`Expected to match the pattern ${t.toString()} (got ${qn(e)})`)})}function bqe(){return Hr({test:(t,e)=>t!==t.toLowerCase()?pr(e,`Expected to be all-lowercase (got ${t})`):!0})}function xqe(){return Hr({test:(t,e)=>t!==t.toUpperCase()?pr(e,`Expected to be all-uppercase (got ${t})`):!0})}function kqe(){return Hr({test:(t,e)=>iqe.test(t)?!0:pr(e,`Expected to be a valid UUID v4 (got ${qn(t)})`)})}function Qqe(){return Hr({test:(t,e)=>fV.test(t)?!0:pr(e,`Expected to be a valid ISO 8601 date string (got ${qn(t)})`)})}function Fqe({alpha:t=!1}){return Hr({test:(e,r)=>(t?tqe.test(e):rqe.test(e))?!0:pr(r,`Expected to be a valid hexadecimal color string (got ${qn(e)})`)})}function Rqe(){return Hr({test:(t,e)=>nqe.test(t)?!0:pr(e,`Expected to be a valid base 64 string (got ${qn(t)})`)})}function Tqe(t=FT()){return Hr({test:(e,r)=>{let o;try{o=JSON.parse(e)}catch{return pr(r,`Expected to be a valid JSON string (got ${qn(e)})`)}return t(o,r)}})}function oS(t,...e){let r=Array.isArray(e[0])?e[0]:e;return Hr({test:(o,a)=>{var n,u;let A={value:o},p=typeof a?.coercions<"u"?Yu(A,"value"):void 0,h=typeof a?.coercions<"u"?[]:void 0;if(!t(o,Object.assign(Object.assign({},a),{coercion:p,coercions:h})))return!1;let E=[];if(typeof h<"u")for(let[,I]of h)E.push(I());try{if(typeof a?.coercions<"u"){if(A.value!==o){if(typeof a?.coercion>"u")return pr(a,"Unbound coercion result");a.coercions.push([(n=a.p)!==null&&n!==void 0?n:".",a.coercion.bind(null,A.value)])}(u=a?.coercions)===null||u===void 0||u.push(...h)}return r.every(I=>I(A.value,a))}finally{for(let I of E)I()}}})}function aI(t,...e){let r=Array.isArray(e[0])?e[0]:e;return oS(t,r)}function Nqe(t){return Hr({test:(e,r)=>typeof e>"u"?!0:t(e,r)})}function Lqe(t){return Hr({test:(e,r)=>e===null?!0:t(e,r)})}function Oqe(t,e){var r;let o=new Set(t),a=lI[(r=e?.missingIf)!==null&&r!==void 0?r:"missing"];return Hr({test:(n,u)=>{let A=new Set(Object.keys(n)),p=[];for(let h of o)a(A,h,n)||p.push(h);return p.length>0?pr(u,`Missing required ${QT(p.length,"property","properties")} ${Ey(p,"and")}`):!0}})}function OT(t,e){var r;let o=new Set(t),a=lI[(r=e?.missingIf)!==null&&r!==void 0?r:"missing"];return Hr({test:(n,u)=>Object.keys(n).some(h=>a(o,h,n))?!0:pr(u,`Missing at least one property from ${Ey(Array.from(o),"or")}`)})}function Mqe(t,e){var r;let o=new Set(t),a=lI[(r=e?.missingIf)!==null&&r!==void 0?r:"missing"];return Hr({test:(n,u)=>{let A=new Set(Object.keys(n)),p=[];for(let h of o)a(A,h,n)&&p.push(h);return p.length>0?pr(u,`Forbidden ${QT(p.length,"property","properties")} ${Ey(p,"and")}`):!0}})}function Uqe(t,e){var r;let o=new Set(t),a=lI[(r=e?.missingIf)!==null&&r!==void 0?r:"missing"];return Hr({test:(n,u)=>{let A=new Set(Object.keys(n)),p=[];for(let h of o)a(A,h,n)&&p.push(h);return p.length>1?pr(u,`Mutually exclusive properties ${Ey(p,"and")}`):!0}})}function cI(t,e,r,o){var a,n;let u=new Set((a=o?.ignore)!==null&&a!==void 0?a:[]),A=lI[(n=o?.missingIf)!==null&&n!==void 0?n:"missing"],p=new Set(r),h=_qe[e],E=e===Gu.Forbids?"or":"and";return Hr({test:(I,v)=>{let x=new Set(Object.keys(I));if(!A(x,t,I)||u.has(I[t]))return!0;let C=[];for(let R of p)(A(x,R,I)&&!u.has(I[R]))!==h.expect&&C.push(R);return C.length>=1?pr(v,`Property "${t}" ${h.message} ${QT(C.length,"property","properties")} ${Ey(C,E)}`):!0}})}var eqe,tqe,rqe,nqe,iqe,fV,oqe,hqe,TT,Kp,lI,Gu,_qe,Za=Et(()=>{eqe=/^[a-zA-Z_][a-zA-Z0-9_]*$/;tqe=/^#[0-9a-f]{6}$/i,rqe=/^#[0-9a-f]{6}([0-9a-f]{2})?$/i,nqe=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/,iqe=/^[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89aAbB][a-f0-9]{3}-[a-f0-9]{12}$/i,fV=/^(?:[1-9]\d{3}(-?)(?:(?:0[1-9]|1[0-2])\1(?:0[1-9]|1\d|2[0-8])|(?:0[13-9]|1[0-2])\1(?:29|30)|(?:0[13578]|1[02])(?:\1)31|00[1-9]|0[1-9]\d|[12]\d{2}|3(?:[0-5]\d|6[0-5]))|(?:[1-9]\d(?:0[48]|[2468][048]|[13579][26])|(?:[2468][048]|[13579][26])00)(?:(-?)02(?:\2)29|-?366))T(?:[01]\d|2[0-3])(:?)[0-5]\d(?:\3[0-5]\d)?(?:Z|[+-][01]\d(?:\3[0-5]\d)?)$/;oqe=new Map([["true",!0],["True",!0],["1",!0],[1,!0],["false",!1],["False",!1],["0",!1],[0,!1]]);hqe=t=>Hr({test:(e,r)=>e instanceof t?!0:pr(r,`Expected an instance of ${t.name} (got ${qn(e)})`)}),TT=(t,{exclusive:e=!1}={})=>Hr({test:(r,o)=>{var a,n,u;let A=[],p=typeof o?.errors<"u"?[]:void 0;for(let h=0,E=t.length;h1?pr(o,`Expected to match exactly a single predicate (matched ${A.join(", ")})`):(u=o?.errors)===null||u===void 0||u.push(...p),!1}});Kp=class extends Error{constructor({errors:e}={}){let r="Type mismatch";if(e&&e.length>0){r+=` +`;for(let o of e)r+=` +- ${o}`}super(r)}};lI={missing:(t,e)=>t.has(e),undefined:(t,e,r)=>t.has(e)&&typeof r[e]<"u",nil:(t,e,r)=>t.has(e)&&r[e]!=null,falsy:(t,e,r)=>t.has(e)&&!!r[e]};(function(t){t.Forbids="Forbids",t.Requires="Requires"})(Gu||(Gu={}));_qe={[Gu.Forbids]:{expect:!1,message:"forbids using"},[Gu.Requires]:{expect:!0,message:"requires using"}}});var nt,Vp=Et(()=>{Ef();nt=class{constructor(){this.help=!1}static Usage(e){return e}async catch(e){throw e}async validateAndExecute(){let r=this.constructor.schema;if(Array.isArray(r)){let{isDict:a,isUnknown:n,applyCascade:u}=await Promise.resolve().then(()=>(Za(),Vo)),A=u(a(n()),r),p=[],h=[];if(!A(this,{errors:p,coercions:h}))throw iI("Invalid option schema",p);for(let[,I]of h)I()}else if(r!=null)throw new Error("Invalid command schema");let o=await this.execute();return typeof o<"u"?o:0}};nt.isOption=nI;nt.Default=[]});function va(t){PT&&console.log(t)}function yV(){let t={nodes:[]};for(let e=0;e{if(e.has(o))return;e.add(o);let a=t.nodes[o];for(let u of Object.values(a.statics))for(let{to:A}of u)r(A);for(let[,{to:u}]of a.dynamics)r(u);for(let{to:u}of a.shortcuts)r(u);let n=new Set(a.shortcuts.map(({to:u})=>u));for(;a.shortcuts.length>0;){let{to:u}=a.shortcuts.shift(),A=t.nodes[u];for(let[p,h]of Object.entries(A.statics)){let E=Object.prototype.hasOwnProperty.call(a.statics,p)?a.statics[p]:a.statics[p]=[];for(let I of h)E.some(({to:v})=>I.to===v)||E.push(I)}for(let[p,h]of A.dynamics)a.dynamics.some(([E,{to:I}])=>p===E&&h.to===I)||a.dynamics.push([p,h]);for(let p of A.shortcuts)n.has(p.to)||(a.shortcuts.push(p),n.add(p.to))}};r(cn.InitialNode)}function jqe(t,{prefix:e=""}={}){if(PT){va(`${e}Nodes are:`);for(let r=0;rE!==cn.ErrorNode).map(({state:E})=>({usage:E.candidateUsage,reason:null})));if(h.every(({node:E})=>E===cn.ErrorNode))throw new yy(e,h.map(({state:E})=>({usage:E.candidateUsage,reason:E.errorMessage})));o=Wqe(h)}if(o.length>0){va(" Results:");for(let n of o)va(` - ${n.node} -> ${JSON.stringify(n.state)}`)}else va(" No results");return o}function Yqe(t,e,{endToken:r=Hn.EndOfInput}={}){let o=Gqe(t,[...e,r]);return Kqe(e,o.map(({state:a})=>a))}function Wqe(t){let e=0;for(let{state:r}of t)r.path.length>e&&(e=r.path.length);return t.filter(({state:r})=>r.path.length===e)}function Kqe(t,e){let r=e.filter(v=>v.selectedIndex!==null),o=r.filter(v=>!v.partial);if(o.length>0&&(r=o),r.length===0)throw new Error;let a=r.filter(v=>v.selectedIndex===rd||v.requiredOptions.every(x=>x.some(C=>v.options.find(R=>R.name===C))));if(a.length===0)throw new yy(t,r.map(v=>({usage:v.candidateUsage,reason:null})));let n=0;for(let v of a)v.path.length>n&&(n=v.path.length);let u=a.filter(v=>v.path.length===n),A=v=>v.positionals.filter(({extra:x})=>!x).length+v.options.length,p=u.map(v=>({state:v,positionalCount:A(v)})),h=0;for(let{positionalCount:v}of p)v>h&&(h=v);let E=p.filter(({positionalCount:v})=>v===h).map(({state:v})=>v),I=Vqe(E);if(I.length>1)throw new eS(t,I.map(v=>v.candidateUsage));return I[0]}function Vqe(t){let e=[],r=[];for(let o of t)o.selectedIndex===rd?r.push(o):e.push(o);return r.length>0&&e.push({...mV,path:EV(...r.map(o=>o.path)),options:r.reduce((o,a)=>o.concat(a.options),[])}),e}function EV(t,e,...r){return e===void 0?Array.from(t):EV(t.filter((o,a)=>o===e[a]),...r)}function $a(){return{dynamics:[],shortcuts:[],statics:{}}}function CV(t){return t===cn.SuccessNode||t===cn.ErrorNode}function MT(t,e=0){return{to:CV(t.to)?t.to:t.to>=cn.CustomNode?t.to+e-cn.CustomNode+1:t.to+e,reducer:t.reducer}}function Jqe(t,e=0){let r=$a();for(let[o,a]of t.dynamics)r.dynamics.push([o,MT(a,e)]);for(let o of t.shortcuts)r.shortcuts.push(MT(o,e));for(let[o,a]of Object.entries(t.statics))r.statics[o]=a.map(n=>MT(n,e));return r}function Ps(t,e,r,o,a){t.nodes[e].dynamics.push([r,{to:o,reducer:a}])}function wy(t,e,r,o){t.nodes[e].shortcuts.push({to:r,reducer:o})}function Jo(t,e,r,o,a){(Object.prototype.hasOwnProperty.call(t.nodes[e].statics,r)?t.nodes[e].statics[r]:t.nodes[e].statics[r]=[]).push({to:o,reducer:a})}function aS(t,e,r,o,a){if(Array.isArray(e)){let[n,...u]=e;return t[n](r,o,a,...u)}else return t[e](r,o,a)}var mV,zqe,UT,el,_T,Iy,lS=Et(()=>{$D();tS();mV={candidateUsage:null,requiredOptions:[],errorMessage:null,ignoreOptions:!1,path:[],positionals:[],options:[],remainder:null,selectedIndex:rd,partial:!1,tokens:[]};zqe={always:()=>!0,isOptionLike:(t,e)=>!t.ignoreOptions&&e!=="-"&&e.startsWith("-"),isNotOptionLike:(t,e)=>t.ignoreOptions||e==="-"||!e.startsWith("-"),isOption:(t,e,r,o)=>!t.ignoreOptions&&e===o,isBatchOption:(t,e,r,o)=>!t.ignoreOptions&&cV.test(e)&&[...e.slice(1)].every(a=>o.has(`-${a}`)),isBoundOption:(t,e,r,o,a)=>{let n=e.match(ST);return!t.ignoreOptions&&!!n&&ZD.test(n[1])&&o.has(n[1])&&a.filter(u=>u.nameSet.includes(n[1])).every(u=>u.allowBinding)},isNegatedOption:(t,e,r,o)=>!t.ignoreOptions&&e===`--no-${o.slice(2)}`,isHelp:(t,e)=>!t.ignoreOptions&&DT.test(e),isUnsupportedOption:(t,e,r,o)=>!t.ignoreOptions&&e.startsWith("-")&&ZD.test(e)&&!o.has(e),isInvalidOption:(t,e)=>!t.ignoreOptions&&e.startsWith("-")&&!ZD.test(e)},UT={setCandidateState:(t,e,r,o)=>({...t,...o}),setSelectedIndex:(t,e,r,o)=>({...t,selectedIndex:o}),setPartialIndex:(t,e,r,o)=>({...t,selectedIndex:o,partial:!0}),pushBatch:(t,e,r,o)=>{let a=t.options.slice(),n=t.tokens.slice();for(let u=1;u{let[,o,a]=e.match(ST),n=t.options.concat({name:o,value:a}),u=t.tokens.concat([{segmentIndex:r,type:"option",slice:[0,o.length],option:o},{segmentIndex:r,type:"assign",slice:[o.length,o.length+1]},{segmentIndex:r,type:"value",slice:[o.length+1,o.length+a.length+1]}]);return{...t,options:n,tokens:u}},pushPath:(t,e,r)=>{let o=t.path.concat(e),a=t.tokens.concat({segmentIndex:r,type:"path"});return{...t,path:o,tokens:a}},pushPositional:(t,e,r)=>{let o=t.positionals.concat({value:e,extra:!1}),a=t.tokens.concat({segmentIndex:r,type:"positional"});return{...t,positionals:o,tokens:a}},pushExtra:(t,e,r)=>{let o=t.positionals.concat({value:e,extra:!0}),a=t.tokens.concat({segmentIndex:r,type:"positional"});return{...t,positionals:o,tokens:a}},pushExtraNoLimits:(t,e,r)=>{let o=t.positionals.concat({value:e,extra:el}),a=t.tokens.concat({segmentIndex:r,type:"positional"});return{...t,positionals:o,tokens:a}},pushTrue:(t,e,r,o)=>{let a=t.options.concat({name:o,value:!0}),n=t.tokens.concat({segmentIndex:r,type:"option",option:o});return{...t,options:a,tokens:n}},pushFalse:(t,e,r,o)=>{let a=t.options.concat({name:o,value:!1}),n=t.tokens.concat({segmentIndex:r,type:"option",option:o});return{...t,options:a,tokens:n}},pushUndefined:(t,e,r,o)=>{let a=t.options.concat({name:e,value:void 0}),n=t.tokens.concat({segmentIndex:r,type:"option",option:e});return{...t,options:a,tokens:n}},pushStringValue:(t,e,r)=>{var o;let a=t.options[t.options.length-1],n=t.options.slice(),u=t.tokens.concat({segmentIndex:r,type:"value"});return a.value=((o=a.value)!==null&&o!==void 0?o:[]).concat([e]),{...t,options:n,tokens:u}},setStringValue:(t,e,r)=>{let o=t.options[t.options.length-1],a=t.options.slice(),n=t.tokens.concat({segmentIndex:r,type:"value"});return o.value=e,{...t,options:a,tokens:n}},inhibateOptions:t=>({...t,ignoreOptions:!0}),useHelp:(t,e,r,o)=>{let[,,a]=e.match(DT);return typeof a<"u"?{...t,options:[{name:"-c",value:String(o)},{name:"-i",value:a}]}:{...t,options:[{name:"-c",value:String(o)}]}},setError:(t,e,r,o)=>e===Hn.EndOfInput||e===Hn.EndOfPartialInput?{...t,errorMessage:`${o}.`}:{...t,errorMessage:`${o} ("${e}").`},setOptionArityError:(t,e)=>{let r=t.options[t.options.length-1];return{...t,errorMessage:`Not enough arguments to option ${r.name}.`}}},el=Symbol(),_T=class{constructor(e,r){this.allOptionNames=new Map,this.arity={leading:[],trailing:[],extra:[],proxy:!1},this.options=[],this.paths=[],this.cliIndex=e,this.cliOpts=r}addPath(e){this.paths.push(e)}setArity({leading:e=this.arity.leading,trailing:r=this.arity.trailing,extra:o=this.arity.extra,proxy:a=this.arity.proxy}){Object.assign(this.arity,{leading:e,trailing:r,extra:o,proxy:a})}addPositional({name:e="arg",required:r=!0}={}){if(!r&&this.arity.extra===el)throw new Error("Optional parameters cannot be declared when using .rest() or .proxy()");if(!r&&this.arity.trailing.length>0)throw new Error("Optional parameters cannot be declared after the required trailing positional arguments");!r&&this.arity.extra!==el?this.arity.extra.push(e):this.arity.extra!==el&&this.arity.extra.length===0?this.arity.leading.push(e):this.arity.trailing.push(e)}addRest({name:e="arg",required:r=0}={}){if(this.arity.extra===el)throw new Error("Infinite lists cannot be declared multiple times in the same command");if(this.arity.trailing.length>0)throw new Error("Infinite lists cannot be declared after the required trailing positional arguments");for(let o=0;o1)throw new Error("The arity cannot be higher than 1 when the option only supports the --arg=value syntax");if(!Number.isInteger(o))throw new Error(`The arity must be an integer, got ${o}`);if(o<0)throw new Error(`The arity must be positive, got ${o}`);let A=e.reduce((p,h)=>h.length>p.length?h:p,"");for(let p of e)this.allOptionNames.set(p,A);this.options.push({preferredName:A,nameSet:e,description:r,arity:o,hidden:a,required:n,allowBinding:u})}setContext(e){this.context=e}usage({detailed:e=!0,inlineOptions:r=!0}={}){let o=[this.cliOpts.binaryName],a=[];if(this.paths.length>0&&o.push(...this.paths[0]),e){for(let{preferredName:u,nameSet:A,arity:p,hidden:h,description:E,required:I}of this.options){if(h)continue;let v=[];for(let C=0;C`:`[${x}]`)}o.push(...this.arity.leading.map(u=>`<${u}>`)),this.arity.extra===el?o.push("..."):o.push(...this.arity.extra.map(u=>`[${u}]`)),o.push(...this.arity.trailing.map(u=>`<${u}>`))}return{usage:o.join(" "),options:a}}compile(){if(typeof this.context>"u")throw new Error("Assertion failed: No context attached");let e=yV(),r=cn.InitialNode,o=this.usage().usage,a=this.options.filter(A=>A.required).map(A=>A.nameSet);r=Oc(e,$a()),Jo(e,cn.InitialNode,Hn.StartOfInput,r,["setCandidateState",{candidateUsage:o,requiredOptions:a}]);let n=this.arity.proxy?"always":"isNotOptionLike",u=this.paths.length>0?this.paths:[[]];for(let A of u){let p=r;if(A.length>0){let v=Oc(e,$a());wy(e,p,v),this.registerOptions(e,v),p=v}for(let v=0;v0||!this.arity.proxy){let v=Oc(e,$a());Ps(e,p,"isHelp",v,["useHelp",this.cliIndex]),Ps(e,v,"always",v,"pushExtra"),Jo(e,v,Hn.EndOfInput,cn.SuccessNode,["setSelectedIndex",rd]),this.registerOptions(e,p)}this.arity.leading.length>0&&(Jo(e,p,Hn.EndOfInput,cn.ErrorNode,["setError","Not enough positional arguments"]),Jo(e,p,Hn.EndOfPartialInput,cn.SuccessNode,["setPartialIndex",this.cliIndex]));let h=p;for(let v=0;v0||v+1!==this.arity.leading.length)&&(Jo(e,x,Hn.EndOfInput,cn.ErrorNode,["setError","Not enough positional arguments"]),Jo(e,x,Hn.EndOfPartialInput,cn.SuccessNode,["setPartialIndex",this.cliIndex])),Ps(e,h,"isNotOptionLike",x,"pushPositional"),h=x}let E=h;if(this.arity.extra===el||this.arity.extra.length>0){let v=Oc(e,$a());if(wy(e,h,v),this.arity.extra===el){let x=Oc(e,$a());this.arity.proxy||this.registerOptions(e,x),Ps(e,h,n,x,"pushExtraNoLimits"),Ps(e,x,n,x,"pushExtraNoLimits"),wy(e,x,v)}else for(let x=0;x0)&&this.registerOptions(e,C),Ps(e,E,n,C,"pushExtra"),wy(e,C,v),E=C}E=v}this.arity.trailing.length>0&&(Jo(e,E,Hn.EndOfInput,cn.ErrorNode,["setError","Not enough positional arguments"]),Jo(e,E,Hn.EndOfPartialInput,cn.SuccessNode,["setPartialIndex",this.cliIndex]));let I=E;for(let v=0;v=0&&e{let u=n?Hn.EndOfPartialInput:Hn.EndOfInput;return Yqe(o,a,{endToken:u})}}}}});function IV(){return cS.default&&"getColorDepth"in cS.default.WriteStream.prototype?cS.default.WriteStream.prototype.getColorDepth():process.env.FORCE_COLOR==="0"?1:process.env.FORCE_COLOR==="1"||typeof process.stdout<"u"&&process.stdout.isTTY?8:1}function BV(t){let e=wV;if(typeof e>"u"){if(t.stdout===process.stdout&&t.stderr===process.stderr)return null;let{AsyncLocalStorage:r}=ve("async_hooks");e=wV=new r;let o=process.stdout._write;process.stdout._write=function(n,u,A){let p=e.getStore();return typeof p>"u"?o.call(this,n,u,A):p.stdout.write(n,u,A)};let a=process.stderr._write;process.stderr._write=function(n,u,A){let p=e.getStore();return typeof p>"u"?a.call(this,n,u,A):p.stderr.write(n,u,A)}}return r=>e.run(t,r)}var cS,wV,vV=Et(()=>{cS=$e(ve("tty"),1)});var By,DV=Et(()=>{Vp();By=class extends nt{constructor(e){super(),this.contexts=e,this.commands=[]}static from(e,r){let o=new By(r);o.path=e.path;for(let a of e.options)switch(a.name){case"-c":o.commands.push(Number(a.value));break;case"-i":o.index=Number(a.value);break}return o}async execute(){let e=this.commands;if(typeof this.index<"u"&&this.index>=0&&this.index1){this.context.stdout.write(`Multiple commands match your selection: +`),this.context.stdout.write(` +`);let r=0;for(let o of this.commands)this.context.stdout.write(this.cli.usage(this.contexts[o].commandClass,{prefix:`${r++}. `.padStart(5)}));this.context.stdout.write(` +`),this.context.stdout.write(`Run again with -h= to see the longer details of any of those commands. +`)}}}});async function bV(...t){let{resolvedOptions:e,resolvedCommandClasses:r,resolvedArgv:o,resolvedContext:a}=kV(t);return as.from(r,e).runExit(o,a)}async function xV(...t){let{resolvedOptions:e,resolvedCommandClasses:r,resolvedArgv:o,resolvedContext:a}=kV(t);return as.from(r,e).run(o,a)}function kV(t){let e,r,o,a;switch(typeof process<"u"&&typeof process.argv<"u"&&(o=process.argv.slice(2)),t.length){case 1:r=t[0];break;case 2:t[0]&&t[0].prototype instanceof nt||Array.isArray(t[0])?(r=t[0],Array.isArray(t[1])?o=t[1]:a=t[1]):(e=t[0],r=t[1]);break;case 3:Array.isArray(t[2])?(e=t[0],r=t[1],o=t[2]):t[0]&&t[0].prototype instanceof nt||Array.isArray(t[0])?(r=t[0],o=t[1],a=t[2]):(e=t[0],r=t[1],a=t[2]);break;default:e=t[0],r=t[1],o=t[2],a=t[3];break}if(typeof o>"u")throw new Error("The argv parameter must be provided when running Clipanion outside of a Node context");return{resolvedOptions:e,resolvedCommandClasses:r,resolvedArgv:o,resolvedContext:a}}function PV(t){return t()}var SV,as,QV=Et(()=>{$D();lS();kT();vV();Vp();DV();SV=Symbol("clipanion/errorCommand");as=class{constructor({binaryLabel:e,binaryName:r="...",binaryVersion:o,enableCapture:a=!1,enableColors:n}={}){this.registrations=new Map,this.builder=new Iy({binaryName:r}),this.binaryLabel=e,this.binaryName=r,this.binaryVersion=o,this.enableCapture=a,this.enableColors=n}static from(e,r={}){let o=new as(r),a=Array.isArray(e)?e:[e];for(let n of a)o.register(n);return o}register(e){var r;let o=new Map,a=new e;for(let p in a){let h=a[p];typeof h=="object"&&h!==null&&h[nt.isOption]&&o.set(p,h)}let n=this.builder.command(),u=n.cliIndex,A=(r=e.paths)!==null&&r!==void 0?r:a.paths;if(typeof A<"u")for(let p of A)n.addPath(p);this.registrations.set(e,{specs:o,builder:n,index:u});for(let[p,{definition:h}]of o.entries())h(n,p);n.setContext({commandClass:e})}process(e,r){let{input:o,context:a,partial:n}=typeof e=="object"&&Array.isArray(e)?{input:e,context:r}:e,{contexts:u,process:A}=this.builder.compile(),p=A(o,{partial:n}),h={...as.defaultContext,...a};switch(p.selectedIndex){case rd:{let E=By.from(p,u);return E.context=h,E.tokens=p.tokens,E}default:{let{commandClass:E}=u[p.selectedIndex],I=this.registrations.get(E);if(typeof I>"u")throw new Error("Assertion failed: Expected the command class to have been registered.");let v=new E;v.context=h,v.tokens=p.tokens,v.path=p.path;try{for(let[x,{transformer:C}]of I.specs.entries())v[x]=C(I.builder,x,p,h);return v}catch(x){throw x[SV]=v,x}}break}}async run(e,r){var o,a;let n,u={...as.defaultContext,...r},A=(o=this.enableColors)!==null&&o!==void 0?o:u.colorDepth>1;if(!Array.isArray(e))n=e;else try{n=this.process(e,u)}catch(E){return u.stdout.write(this.error(E,{colored:A})),1}if(n.help)return u.stdout.write(this.usage(n,{colored:A,detailed:!0})),0;n.context=u,n.cli={binaryLabel:this.binaryLabel,binaryName:this.binaryName,binaryVersion:this.binaryVersion,enableCapture:this.enableCapture,enableColors:this.enableColors,definitions:()=>this.definitions(),definition:E=>this.definition(E),error:(E,I)=>this.error(E,I),format:E=>this.format(E),process:(E,I)=>this.process(E,{...u,...I}),run:(E,I)=>this.run(E,{...u,...I}),usage:(E,I)=>this.usage(E,I)};let p=this.enableCapture&&(a=BV(u))!==null&&a!==void 0?a:PV,h;try{h=await p(()=>n.validateAndExecute().catch(E=>n.catch(E).then(()=>0)))}catch(E){return u.stdout.write(this.error(E,{colored:A,command:n})),1}return h}async runExit(e,r){process.exitCode=await this.run(e,r)}definition(e,{colored:r=!1}={}){if(!e.usage)return null;let{usage:o}=this.getUsageByRegistration(e,{detailed:!1}),{usage:a,options:n}=this.getUsageByRegistration(e,{detailed:!0,inlineOptions:!1}),u=typeof e.usage.category<"u"?Do(e.usage.category,{format:this.format(r),paragraphs:!1}):void 0,A=typeof e.usage.description<"u"?Do(e.usage.description,{format:this.format(r),paragraphs:!1}):void 0,p=typeof e.usage.details<"u"?Do(e.usage.details,{format:this.format(r),paragraphs:!0}):void 0,h=typeof e.usage.examples<"u"?e.usage.examples.map(([E,I])=>[Do(E,{format:this.format(r),paragraphs:!1}),I.replace(/\$0/g,this.binaryName)]):void 0;return{path:o,usage:a,category:u,description:A,details:p,examples:h,options:n}}definitions({colored:e=!1}={}){let r=[];for(let o of this.registrations.keys()){let a=this.definition(o,{colored:e});!a||r.push(a)}return r}usage(e=null,{colored:r,detailed:o=!1,prefix:a="$ "}={}){var n;if(e===null){for(let p of this.registrations.keys()){let h=p.paths,E=typeof p.usage<"u";if(!h||h.length===0||h.length===1&&h[0].length===0||((n=h?.some(x=>x.length===0))!==null&&n!==void 0?n:!1))if(e){e=null;break}else e=p;else if(E){e=null;continue}}e&&(o=!0)}let u=e!==null&&e instanceof nt?e.constructor:e,A="";if(u)if(o){let{description:p="",details:h="",examples:E=[]}=u.usage||{};p!==""&&(A+=Do(p,{format:this.format(r),paragraphs:!1}).replace(/^./,x=>x.toUpperCase()),A+=` +`),(h!==""||E.length>0)&&(A+=`${this.format(r).header("Usage")} +`,A+=` +`);let{usage:I,options:v}=this.getUsageByRegistration(u,{inlineOptions:!1});if(A+=`${this.format(r).bold(a)}${I} +`,v.length>0){A+=` +`,A+=`${this.format(r).header("Options")} +`;let x=v.reduce((C,R)=>Math.max(C,R.definition.length),0);A+=` +`;for(let{definition:C,description:R}of v)A+=` ${this.format(r).bold(C.padEnd(x))} ${Do(R,{format:this.format(r),paragraphs:!1})}`}if(h!==""&&(A+=` +`,A+=`${this.format(r).header("Details")} +`,A+=` +`,A+=Do(h,{format:this.format(r),paragraphs:!0})),E.length>0){A+=` +`,A+=`${this.format(r).header("Examples")} +`;for(let[x,C]of E)A+=` +`,A+=Do(x,{format:this.format(r),paragraphs:!1}),A+=`${C.replace(/^/m,` ${this.format(r).bold(a)}`).replace(/\$0/g,this.binaryName)} +`}}else{let{usage:p}=this.getUsageByRegistration(u);A+=`${this.format(r).bold(a)}${p} +`}else{let p=new Map;for(let[v,{index:x}]of this.registrations.entries()){if(typeof v.usage>"u")continue;let C=typeof v.usage.category<"u"?Do(v.usage.category,{format:this.format(r),paragraphs:!1}):null,R=p.get(C);typeof R>"u"&&p.set(C,R=[]);let{usage:L}=this.getUsageByIndex(x);R.push({commandClass:v,usage:L})}let h=Array.from(p.keys()).sort((v,x)=>v===null?-1:x===null?1:v.localeCompare(x,"en",{usage:"sort",caseFirst:"upper"})),E=typeof this.binaryLabel<"u",I=typeof this.binaryVersion<"u";E||I?(E&&I?A+=`${this.format(r).header(`${this.binaryLabel} - ${this.binaryVersion}`)} + +`:E?A+=`${this.format(r).header(`${this.binaryLabel}`)} +`:A+=`${this.format(r).header(`${this.binaryVersion}`)} +`,A+=` ${this.format(r).bold(a)}${this.binaryName} +`):A+=`${this.format(r).bold(a)}${this.binaryName} +`;for(let v of h){let x=p.get(v).slice().sort((R,L)=>R.usage.localeCompare(L.usage,"en",{usage:"sort",caseFirst:"upper"})),C=v!==null?v.trim():"General commands";A+=` +`,A+=`${this.format(r).header(`${C}`)} +`;for(let{commandClass:R,usage:L}of x){let U=R.usage.description||"undocumented";A+=` +`,A+=` ${this.format(r).bold(L)} +`,A+=` ${Do(U,{format:this.format(r),paragraphs:!1})}`}}A+=` +`,A+=Do("You can also print more details about any of these commands by calling them with the `-h,--help` flag right after the command name.",{format:this.format(r),paragraphs:!0})}return A}error(e,r){var o,{colored:a,command:n=(o=e[SV])!==null&&o!==void 0?o:null}=r===void 0?{}:r;(!e||typeof e!="object"||!("stack"in e))&&(e=new Error(`Execution failed with a non-error rejection (rejected value: ${JSON.stringify(e)})`));let u="",A=e.name.replace(/([a-z])([A-Z])/g,"$1 $2");A==="Error"&&(A="Internal Error"),u+=`${this.format(a).error(A)}: ${e.message} +`;let p=e.clipanion;return typeof p<"u"?p.type==="usage"&&(u+=` +`,u+=this.usage(n)):e.stack&&(u+=`${e.stack.replace(/^.*\n/,"")} +`),u}format(e){var r;return((r=e??this.enableColors)!==null&&r!==void 0?r:as.defaultContext.colorDepth>1)?uV:AV}getUsageByRegistration(e,r){let o=this.registrations.get(e);if(typeof o>"u")throw new Error("Assertion failed: Unregistered command");return this.getUsageByIndex(o.index,r)}getUsageByIndex(e,r){return this.builder.getBuilderByIndex(e).usage(r)}};as.defaultContext={env:process.env,stdin:process.stdin,stdout:process.stdout,stderr:process.stderr,colorDepth:IV()}});var uI,FV=Et(()=>{Vp();uI=class extends nt{async execute(){this.context.stdout.write(`${JSON.stringify(this.cli.definitions(),null,2)} +`)}};uI.paths=[["--clipanion=definitions"]]});var AI,RV=Et(()=>{Vp();AI=class extends nt{async execute(){this.context.stdout.write(this.cli.usage())}};AI.paths=[["-h"],["--help"]]});function uS(t={}){return Ko({definition(e,r){var o;e.addProxy({name:(o=t.name)!==null&&o!==void 0?o:r,required:t.required})},transformer(e,r,o){return o.positionals.map(({value:a})=>a)}})}var HT=Et(()=>{Ef()});var fI,TV=Et(()=>{Vp();HT();fI=class extends nt{constructor(){super(...arguments),this.args=uS()}async execute(){this.context.stdout.write(`${JSON.stringify(this.cli.process(this.args).tokens,null,2)} +`)}};fI.paths=[["--clipanion=tokens"]]});var pI,NV=Et(()=>{Vp();pI=class extends nt{async execute(){var e;this.context.stdout.write(`${(e=this.cli.binaryVersion)!==null&&e!==void 0?e:""} +`)}};pI.paths=[["-v"],["--version"]]});var qT={};Vt(qT,{DefinitionsCommand:()=>uI,HelpCommand:()=>AI,TokensCommand:()=>fI,VersionCommand:()=>pI});var LV=Et(()=>{FV();RV();TV();NV()});function OV(t,e,r){let[o,a]=ju(e,r??{}),{arity:n=1}=a,u=t.split(","),A=new Set(u);return Ko({definition(p){p.addOption({names:u,arity:n,hidden:a?.hidden,description:a?.description,required:a.required})},transformer(p,h,E){let I,v=typeof o<"u"?[...o]:void 0;for(let{name:x,value:C}of E.options)!A.has(x)||(I=x,v=v??[],v.push(C));return typeof v<"u"?nd(I??h,v,a.validator):v}})}var MV=Et(()=>{Ef()});function UV(t,e,r){let[o,a]=ju(e,r??{}),n=t.split(","),u=new Set(n);return Ko({definition(A){A.addOption({names:n,allowBinding:!1,arity:0,hidden:a.hidden,description:a.description,required:a.required})},transformer(A,p,h){let E=o;for(let{name:I,value:v}of h.options)!u.has(I)||(E=v);return E}})}var _V=Et(()=>{Ef()});function HV(t,e,r){let[o,a]=ju(e,r??{}),n=t.split(","),u=new Set(n);return Ko({definition(A){A.addOption({names:n,allowBinding:!1,arity:0,hidden:a.hidden,description:a.description,required:a.required})},transformer(A,p,h){let E=o;for(let{name:I,value:v}of h.options)!u.has(I)||(E??(E=0),v?E+=1:E=0);return E}})}var qV=Et(()=>{Ef()});function jV(t={}){return Ko({definition(e,r){var o;e.addRest({name:(o=t.name)!==null&&o!==void 0?o:r,required:t.required})},transformer(e,r,o){let a=u=>{let A=o.positionals[u];return A.extra===el||A.extra===!1&&uu)}})}var GV=Et(()=>{lS();Ef()});function Xqe(t,e,r){let[o,a]=ju(e,r??{}),{arity:n=1}=a,u=t.split(","),A=new Set(u);return Ko({definition(p){p.addOption({names:u,arity:a.tolerateBoolean?0:n,hidden:a.hidden,description:a.description,required:a.required})},transformer(p,h,E,I){let v,x=o;typeof a.env<"u"&&I.env[a.env]&&(v=a.env,x=I.env[a.env]);for(let{name:C,value:R}of E.options)!A.has(C)||(v=C,x=R);return typeof x=="string"?nd(v??h,x,a.validator):x}})}function Zqe(t={}){let{required:e=!0}=t;return Ko({definition(r,o){var a;r.addPositional({name:(a=t.name)!==null&&a!==void 0?a:o,required:t.required})},transformer(r,o,a){var n;for(let u=0;u{lS();Ef()});var ge={};Vt(ge,{Array:()=>OV,Boolean:()=>UV,Counter:()=>HV,Proxy:()=>uS,Rest:()=>jV,String:()=>YV,applyValidator:()=>nd,cleanValidationError:()=>rS,formatError:()=>iI,isOptionSymbol:()=>nI,makeCommandOption:()=>Ko,rerouteArguments:()=>ju});var KV=Et(()=>{Ef();HT();MV();_V();qV();GV();WV()});var hI={};Vt(hI,{Builtins:()=>qT,Cli:()=>as,Command:()=>nt,Option:()=>ge,UsageError:()=>it,formatMarkdownish:()=>Do,run:()=>xV,runExit:()=>bV});var qt=Et(()=>{tS();kT();Vp();QV();LV();KV()});var VV=_((Pkt,$qe)=>{$qe.exports={name:"dotenv",version:"16.3.1",description:"Loads environment variables from .env file",main:"lib/main.js",types:"lib/main.d.ts",exports:{".":{types:"./lib/main.d.ts",require:"./lib/main.js",default:"./lib/main.js"},"./config":"./config.js","./config.js":"./config.js","./lib/env-options":"./lib/env-options.js","./lib/env-options.js":"./lib/env-options.js","./lib/cli-options":"./lib/cli-options.js","./lib/cli-options.js":"./lib/cli-options.js","./package.json":"./package.json"},scripts:{"dts-check":"tsc --project tests/types/tsconfig.json",lint:"standard","lint-readme":"standard-markdown",pretest:"npm run lint && npm run dts-check",test:"tap tests/*.js --100 -Rspec",prerelease:"npm test",release:"standard-version"},repository:{type:"git",url:"git://github.com/motdotla/dotenv.git"},funding:"https://github.com/motdotla/dotenv?sponsor=1",keywords:["dotenv","env",".env","environment","variables","config","settings"],readmeFilename:"README.md",license:"BSD-2-Clause",devDependencies:{"@definitelytyped/dtslint":"^0.0.133","@types/node":"^18.11.3",decache:"^4.6.1",sinon:"^14.0.1",standard:"^17.0.0","standard-markdown":"^7.1.0","standard-version":"^9.5.0",tap:"^16.3.0",tar:"^6.1.11",typescript:"^4.8.4"},engines:{node:">=12"},browser:{fs:!1}}});var ZV=_((bkt,Cf)=>{var JV=ve("fs"),GT=ve("path"),eje=ve("os"),tje=ve("crypto"),rje=VV(),YT=rje.version,nje=/(?:^|^)\s*(?:export\s+)?([\w.-]+)(?:\s*=\s*?|:\s+?)(\s*'(?:\\'|[^'])*'|\s*"(?:\\"|[^"])*"|\s*`(?:\\`|[^`])*`|[^#\r\n]+)?\s*(?:#.*)?(?:$|$)/mg;function ije(t){let e={},r=t.toString();r=r.replace(/\r\n?/mg,` +`);let o;for(;(o=nje.exec(r))!=null;){let a=o[1],n=o[2]||"";n=n.trim();let u=n[0];n=n.replace(/^(['"`])([\s\S]*)\1$/mg,"$2"),u==='"'&&(n=n.replace(/\\n/g,` +`),n=n.replace(/\\r/g,"\r")),e[a]=n}return e}function sje(t){let e=XV(t),r=bs.configDotenv({path:e});if(!r.parsed)throw new Error(`MISSING_DATA: Cannot parse ${e} for an unknown reason`);let o=zV(t).split(","),a=o.length,n;for(let u=0;u=a)throw A}return bs.parse(n)}function oje(t){console.log(`[dotenv@${YT}][INFO] ${t}`)}function aje(t){console.log(`[dotenv@${YT}][WARN] ${t}`)}function jT(t){console.log(`[dotenv@${YT}][DEBUG] ${t}`)}function zV(t){return t&&t.DOTENV_KEY&&t.DOTENV_KEY.length>0?t.DOTENV_KEY:process.env.DOTENV_KEY&&process.env.DOTENV_KEY.length>0?process.env.DOTENV_KEY:""}function lje(t,e){let r;try{r=new URL(e)}catch(A){throw A.code==="ERR_INVALID_URL"?new Error("INVALID_DOTENV_KEY: Wrong format. Must be in valid uri format like dotenv://:key_1234@dotenv.org/vault/.env.vault?environment=development"):A}let o=r.password;if(!o)throw new Error("INVALID_DOTENV_KEY: Missing key part");let a=r.searchParams.get("environment");if(!a)throw new Error("INVALID_DOTENV_KEY: Missing environment part");let n=`DOTENV_VAULT_${a.toUpperCase()}`,u=t.parsed[n];if(!u)throw new Error(`NOT_FOUND_DOTENV_ENVIRONMENT: Cannot locate environment ${n} in your .env.vault file.`);return{ciphertext:u,key:o}}function XV(t){let e=GT.resolve(process.cwd(),".env");return t&&t.path&&t.path.length>0&&(e=t.path),e.endsWith(".vault")?e:`${e}.vault`}function cje(t){return t[0]==="~"?GT.join(eje.homedir(),t.slice(1)):t}function uje(t){oje("Loading env from encrypted .env.vault");let e=bs._parseVault(t),r=process.env;return t&&t.processEnv!=null&&(r=t.processEnv),bs.populate(r,e,t),{parsed:e}}function Aje(t){let e=GT.resolve(process.cwd(),".env"),r="utf8",o=Boolean(t&&t.debug);t&&(t.path!=null&&(e=cje(t.path)),t.encoding!=null&&(r=t.encoding));try{let a=bs.parse(JV.readFileSync(e,{encoding:r})),n=process.env;return t&&t.processEnv!=null&&(n=t.processEnv),bs.populate(n,a,t),{parsed:a}}catch(a){return o&&jT(`Failed to load ${e} ${a.message}`),{error:a}}}function fje(t){let e=XV(t);return zV(t).length===0?bs.configDotenv(t):JV.existsSync(e)?bs._configVault(t):(aje(`You set DOTENV_KEY but you are missing a .env.vault file at ${e}. Did you forget to build it?`),bs.configDotenv(t))}function pje(t,e){let r=Buffer.from(e.slice(-64),"hex"),o=Buffer.from(t,"base64"),a=o.slice(0,12),n=o.slice(-16);o=o.slice(12,-16);try{let u=tje.createDecipheriv("aes-256-gcm",r,a);return u.setAuthTag(n),`${u.update(o)}${u.final()}`}catch(u){let A=u instanceof RangeError,p=u.message==="Invalid key length",h=u.message==="Unsupported state or unable to authenticate data";if(A||p){let E="INVALID_DOTENV_KEY: It must be 64 characters long (or more)";throw new Error(E)}else if(h){let E="DECRYPTION_FAILED: Please check your DOTENV_KEY";throw new Error(E)}else throw console.error("Error: ",u.code),console.error("Error: ",u.message),u}}function hje(t,e,r={}){let o=Boolean(r&&r.debug),a=Boolean(r&&r.override);if(typeof e!="object")throw new Error("OBJECT_REQUIRED: Please check the processEnv argument being passed to populate");for(let n of Object.keys(e))Object.prototype.hasOwnProperty.call(t,n)?(a===!0&&(t[n]=e[n]),o&&jT(a===!0?`"${n}" is already defined and WAS overwritten`:`"${n}" is already defined and was NOT overwritten`)):t[n]=e[n]}var bs={configDotenv:Aje,_configVault:uje,_parseVault:sje,config:fje,decrypt:pje,parse:ije,populate:hje};Cf.exports.configDotenv=bs.configDotenv;Cf.exports._configVault=bs._configVault;Cf.exports._parseVault=bs._parseVault;Cf.exports.config=bs.config;Cf.exports.decrypt=bs.decrypt;Cf.exports.parse=bs.parse;Cf.exports.populate=bs.populate;Cf.exports=bs});var eJ=_((xkt,$V)=>{"use strict";$V.exports=(t,...e)=>new Promise(r=>{r(t(...e))})});var id=_((kkt,WT)=>{"use strict";var gje=eJ(),tJ=t=>{if(t<1)throw new TypeError("Expected `concurrency` to be a number from 1 and up");let e=[],r=0,o=()=>{r--,e.length>0&&e.shift()()},a=(A,p,...h)=>{r++;let E=gje(A,...h);p(E),E.then(o,o)},n=(A,p,...h)=>{rnew Promise(h=>n(A,h,...p));return Object.defineProperties(u,{activeCount:{get:()=>r},pendingCount:{get:()=>e.length}}),u};WT.exports=tJ;WT.exports.default=tJ});function Wu(t){return`YN${t.toString(10).padStart(4,"0")}`}function AS(t){let e=Number(t.slice(2));if(typeof wr[e]>"u")throw new Error(`Unknown message name: "${t}"`);return e}var wr,fS=Et(()=>{wr=(Oe=>(Oe[Oe.UNNAMED=0]="UNNAMED",Oe[Oe.EXCEPTION=1]="EXCEPTION",Oe[Oe.MISSING_PEER_DEPENDENCY=2]="MISSING_PEER_DEPENDENCY",Oe[Oe.CYCLIC_DEPENDENCIES=3]="CYCLIC_DEPENDENCIES",Oe[Oe.DISABLED_BUILD_SCRIPTS=4]="DISABLED_BUILD_SCRIPTS",Oe[Oe.BUILD_DISABLED=5]="BUILD_DISABLED",Oe[Oe.SOFT_LINK_BUILD=6]="SOFT_LINK_BUILD",Oe[Oe.MUST_BUILD=7]="MUST_BUILD",Oe[Oe.MUST_REBUILD=8]="MUST_REBUILD",Oe[Oe.BUILD_FAILED=9]="BUILD_FAILED",Oe[Oe.RESOLVER_NOT_FOUND=10]="RESOLVER_NOT_FOUND",Oe[Oe.FETCHER_NOT_FOUND=11]="FETCHER_NOT_FOUND",Oe[Oe.LINKER_NOT_FOUND=12]="LINKER_NOT_FOUND",Oe[Oe.FETCH_NOT_CACHED=13]="FETCH_NOT_CACHED",Oe[Oe.YARN_IMPORT_FAILED=14]="YARN_IMPORT_FAILED",Oe[Oe.REMOTE_INVALID=15]="REMOTE_INVALID",Oe[Oe.REMOTE_NOT_FOUND=16]="REMOTE_NOT_FOUND",Oe[Oe.RESOLUTION_PACK=17]="RESOLUTION_PACK",Oe[Oe.CACHE_CHECKSUM_MISMATCH=18]="CACHE_CHECKSUM_MISMATCH",Oe[Oe.UNUSED_CACHE_ENTRY=19]="UNUSED_CACHE_ENTRY",Oe[Oe.MISSING_LOCKFILE_ENTRY=20]="MISSING_LOCKFILE_ENTRY",Oe[Oe.WORKSPACE_NOT_FOUND=21]="WORKSPACE_NOT_FOUND",Oe[Oe.TOO_MANY_MATCHING_WORKSPACES=22]="TOO_MANY_MATCHING_WORKSPACES",Oe[Oe.CONSTRAINTS_MISSING_DEPENDENCY=23]="CONSTRAINTS_MISSING_DEPENDENCY",Oe[Oe.CONSTRAINTS_INCOMPATIBLE_DEPENDENCY=24]="CONSTRAINTS_INCOMPATIBLE_DEPENDENCY",Oe[Oe.CONSTRAINTS_EXTRANEOUS_DEPENDENCY=25]="CONSTRAINTS_EXTRANEOUS_DEPENDENCY",Oe[Oe.CONSTRAINTS_INVALID_DEPENDENCY=26]="CONSTRAINTS_INVALID_DEPENDENCY",Oe[Oe.CANT_SUGGEST_RESOLUTIONS=27]="CANT_SUGGEST_RESOLUTIONS",Oe[Oe.FROZEN_LOCKFILE_EXCEPTION=28]="FROZEN_LOCKFILE_EXCEPTION",Oe[Oe.CROSS_DRIVE_VIRTUAL_LOCAL=29]="CROSS_DRIVE_VIRTUAL_LOCAL",Oe[Oe.FETCH_FAILED=30]="FETCH_FAILED",Oe[Oe.DANGEROUS_NODE_MODULES=31]="DANGEROUS_NODE_MODULES",Oe[Oe.NODE_GYP_INJECTED=32]="NODE_GYP_INJECTED",Oe[Oe.AUTHENTICATION_NOT_FOUND=33]="AUTHENTICATION_NOT_FOUND",Oe[Oe.INVALID_CONFIGURATION_KEY=34]="INVALID_CONFIGURATION_KEY",Oe[Oe.NETWORK_ERROR=35]="NETWORK_ERROR",Oe[Oe.LIFECYCLE_SCRIPT=36]="LIFECYCLE_SCRIPT",Oe[Oe.CONSTRAINTS_MISSING_FIELD=37]="CONSTRAINTS_MISSING_FIELD",Oe[Oe.CONSTRAINTS_INCOMPATIBLE_FIELD=38]="CONSTRAINTS_INCOMPATIBLE_FIELD",Oe[Oe.CONSTRAINTS_EXTRANEOUS_FIELD=39]="CONSTRAINTS_EXTRANEOUS_FIELD",Oe[Oe.CONSTRAINTS_INVALID_FIELD=40]="CONSTRAINTS_INVALID_FIELD",Oe[Oe.AUTHENTICATION_INVALID=41]="AUTHENTICATION_INVALID",Oe[Oe.PROLOG_UNKNOWN_ERROR=42]="PROLOG_UNKNOWN_ERROR",Oe[Oe.PROLOG_SYNTAX_ERROR=43]="PROLOG_SYNTAX_ERROR",Oe[Oe.PROLOG_EXISTENCE_ERROR=44]="PROLOG_EXISTENCE_ERROR",Oe[Oe.STACK_OVERFLOW_RESOLUTION=45]="STACK_OVERFLOW_RESOLUTION",Oe[Oe.AUTOMERGE_FAILED_TO_PARSE=46]="AUTOMERGE_FAILED_TO_PARSE",Oe[Oe.AUTOMERGE_IMMUTABLE=47]="AUTOMERGE_IMMUTABLE",Oe[Oe.AUTOMERGE_SUCCESS=48]="AUTOMERGE_SUCCESS",Oe[Oe.AUTOMERGE_REQUIRED=49]="AUTOMERGE_REQUIRED",Oe[Oe.DEPRECATED_CLI_SETTINGS=50]="DEPRECATED_CLI_SETTINGS",Oe[Oe.PLUGIN_NAME_NOT_FOUND=51]="PLUGIN_NAME_NOT_FOUND",Oe[Oe.INVALID_PLUGIN_REFERENCE=52]="INVALID_PLUGIN_REFERENCE",Oe[Oe.CONSTRAINTS_AMBIGUITY=53]="CONSTRAINTS_AMBIGUITY",Oe[Oe.CACHE_OUTSIDE_PROJECT=54]="CACHE_OUTSIDE_PROJECT",Oe[Oe.IMMUTABLE_INSTALL=55]="IMMUTABLE_INSTALL",Oe[Oe.IMMUTABLE_CACHE=56]="IMMUTABLE_CACHE",Oe[Oe.INVALID_MANIFEST=57]="INVALID_MANIFEST",Oe[Oe.PACKAGE_PREPARATION_FAILED=58]="PACKAGE_PREPARATION_FAILED",Oe[Oe.INVALID_RANGE_PEER_DEPENDENCY=59]="INVALID_RANGE_PEER_DEPENDENCY",Oe[Oe.INCOMPATIBLE_PEER_DEPENDENCY=60]="INCOMPATIBLE_PEER_DEPENDENCY",Oe[Oe.DEPRECATED_PACKAGE=61]="DEPRECATED_PACKAGE",Oe[Oe.INCOMPATIBLE_OS=62]="INCOMPATIBLE_OS",Oe[Oe.INCOMPATIBLE_CPU=63]="INCOMPATIBLE_CPU",Oe[Oe.FROZEN_ARTIFACT_EXCEPTION=64]="FROZEN_ARTIFACT_EXCEPTION",Oe[Oe.TELEMETRY_NOTICE=65]="TELEMETRY_NOTICE",Oe[Oe.PATCH_HUNK_FAILED=66]="PATCH_HUNK_FAILED",Oe[Oe.INVALID_CONFIGURATION_VALUE=67]="INVALID_CONFIGURATION_VALUE",Oe[Oe.UNUSED_PACKAGE_EXTENSION=68]="UNUSED_PACKAGE_EXTENSION",Oe[Oe.REDUNDANT_PACKAGE_EXTENSION=69]="REDUNDANT_PACKAGE_EXTENSION",Oe[Oe.AUTO_NM_SUCCESS=70]="AUTO_NM_SUCCESS",Oe[Oe.NM_CANT_INSTALL_EXTERNAL_SOFT_LINK=71]="NM_CANT_INSTALL_EXTERNAL_SOFT_LINK",Oe[Oe.NM_PRESERVE_SYMLINKS_REQUIRED=72]="NM_PRESERVE_SYMLINKS_REQUIRED",Oe[Oe.UPDATE_LOCKFILE_ONLY_SKIP_LINK=73]="UPDATE_LOCKFILE_ONLY_SKIP_LINK",Oe[Oe.NM_HARDLINKS_MODE_DOWNGRADED=74]="NM_HARDLINKS_MODE_DOWNGRADED",Oe[Oe.PROLOG_INSTANTIATION_ERROR=75]="PROLOG_INSTANTIATION_ERROR",Oe[Oe.INCOMPATIBLE_ARCHITECTURE=76]="INCOMPATIBLE_ARCHITECTURE",Oe[Oe.GHOST_ARCHITECTURE=77]="GHOST_ARCHITECTURE",Oe[Oe.RESOLUTION_MISMATCH=78]="RESOLUTION_MISMATCH",Oe[Oe.PROLOG_LIMIT_EXCEEDED=79]="PROLOG_LIMIT_EXCEEDED",Oe[Oe.NETWORK_DISABLED=80]="NETWORK_DISABLED",Oe[Oe.NETWORK_UNSAFE_HTTP=81]="NETWORK_UNSAFE_HTTP",Oe[Oe.RESOLUTION_FAILED=82]="RESOLUTION_FAILED",Oe[Oe.AUTOMERGE_GIT_ERROR=83]="AUTOMERGE_GIT_ERROR",Oe[Oe.CONSTRAINTS_CHECK_FAILED=84]="CONSTRAINTS_CHECK_FAILED",Oe[Oe.UPDATED_RESOLUTION_RECORD=85]="UPDATED_RESOLUTION_RECORD",Oe[Oe.EXPLAIN_PEER_DEPENDENCIES_CTA=86]="EXPLAIN_PEER_DEPENDENCIES_CTA",Oe[Oe.MIGRATION_SUCCESS=87]="MIGRATION_SUCCESS",Oe[Oe.VERSION_NOTICE=88]="VERSION_NOTICE",Oe[Oe.TIPS_NOTICE=89]="TIPS_NOTICE",Oe[Oe.OFFLINE_MODE_ENABLED=90]="OFFLINE_MODE_ENABLED",Oe))(wr||{})});var gI=_((Fkt,rJ)=>{var dje="2.0.0",mje=Number.MAX_SAFE_INTEGER||9007199254740991,yje=16,Eje=256-6,Cje=["major","premajor","minor","preminor","patch","prepatch","prerelease"];rJ.exports={MAX_LENGTH:256,MAX_SAFE_COMPONENT_LENGTH:yje,MAX_SAFE_BUILD_LENGTH:Eje,MAX_SAFE_INTEGER:mje,RELEASE_TYPES:Cje,SEMVER_SPEC_VERSION:dje,FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2}});var dI=_((Rkt,nJ)=>{var wje=typeof process=="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...t)=>console.error("SEMVER",...t):()=>{};nJ.exports=wje});var vy=_((wf,iJ)=>{var{MAX_SAFE_COMPONENT_LENGTH:KT,MAX_SAFE_BUILD_LENGTH:Ije,MAX_LENGTH:Bje}=gI(),vje=dI();wf=iJ.exports={};var Dje=wf.re=[],Sje=wf.safeRe=[],lr=wf.src=[],cr=wf.t={},Pje=0,VT="[a-zA-Z0-9-]",bje=[["\\s",1],["\\d",Bje],[VT,Ije]],xje=t=>{for(let[e,r]of bje)t=t.split(`${e}*`).join(`${e}{0,${r}}`).split(`${e}+`).join(`${e}{1,${r}}`);return t},Jr=(t,e,r)=>{let o=xje(e),a=Pje++;vje(t,a,e),cr[t]=a,lr[a]=e,Dje[a]=new RegExp(e,r?"g":void 0),Sje[a]=new RegExp(o,r?"g":void 0)};Jr("NUMERICIDENTIFIER","0|[1-9]\\d*");Jr("NUMERICIDENTIFIERLOOSE","\\d+");Jr("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${VT}*`);Jr("MAINVERSION",`(${lr[cr.NUMERICIDENTIFIER]})\\.(${lr[cr.NUMERICIDENTIFIER]})\\.(${lr[cr.NUMERICIDENTIFIER]})`);Jr("MAINVERSIONLOOSE",`(${lr[cr.NUMERICIDENTIFIERLOOSE]})\\.(${lr[cr.NUMERICIDENTIFIERLOOSE]})\\.(${lr[cr.NUMERICIDENTIFIERLOOSE]})`);Jr("PRERELEASEIDENTIFIER",`(?:${lr[cr.NUMERICIDENTIFIER]}|${lr[cr.NONNUMERICIDENTIFIER]})`);Jr("PRERELEASEIDENTIFIERLOOSE",`(?:${lr[cr.NUMERICIDENTIFIERLOOSE]}|${lr[cr.NONNUMERICIDENTIFIER]})`);Jr("PRERELEASE",`(?:-(${lr[cr.PRERELEASEIDENTIFIER]}(?:\\.${lr[cr.PRERELEASEIDENTIFIER]})*))`);Jr("PRERELEASELOOSE",`(?:-?(${lr[cr.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${lr[cr.PRERELEASEIDENTIFIERLOOSE]})*))`);Jr("BUILDIDENTIFIER",`${VT}+`);Jr("BUILD",`(?:\\+(${lr[cr.BUILDIDENTIFIER]}(?:\\.${lr[cr.BUILDIDENTIFIER]})*))`);Jr("FULLPLAIN",`v?${lr[cr.MAINVERSION]}${lr[cr.PRERELEASE]}?${lr[cr.BUILD]}?`);Jr("FULL",`^${lr[cr.FULLPLAIN]}$`);Jr("LOOSEPLAIN",`[v=\\s]*${lr[cr.MAINVERSIONLOOSE]}${lr[cr.PRERELEASELOOSE]}?${lr[cr.BUILD]}?`);Jr("LOOSE",`^${lr[cr.LOOSEPLAIN]}$`);Jr("GTLT","((?:<|>)?=?)");Jr("XRANGEIDENTIFIERLOOSE",`${lr[cr.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`);Jr("XRANGEIDENTIFIER",`${lr[cr.NUMERICIDENTIFIER]}|x|X|\\*`);Jr("XRANGEPLAIN",`[v=\\s]*(${lr[cr.XRANGEIDENTIFIER]})(?:\\.(${lr[cr.XRANGEIDENTIFIER]})(?:\\.(${lr[cr.XRANGEIDENTIFIER]})(?:${lr[cr.PRERELEASE]})?${lr[cr.BUILD]}?)?)?`);Jr("XRANGEPLAINLOOSE",`[v=\\s]*(${lr[cr.XRANGEIDENTIFIERLOOSE]})(?:\\.(${lr[cr.XRANGEIDENTIFIERLOOSE]})(?:\\.(${lr[cr.XRANGEIDENTIFIERLOOSE]})(?:${lr[cr.PRERELEASELOOSE]})?${lr[cr.BUILD]}?)?)?`);Jr("XRANGE",`^${lr[cr.GTLT]}\\s*${lr[cr.XRANGEPLAIN]}$`);Jr("XRANGELOOSE",`^${lr[cr.GTLT]}\\s*${lr[cr.XRANGEPLAINLOOSE]}$`);Jr("COERCE",`(^|[^\\d])(\\d{1,${KT}})(?:\\.(\\d{1,${KT}}))?(?:\\.(\\d{1,${KT}}))?(?:$|[^\\d])`);Jr("COERCERTL",lr[cr.COERCE],!0);Jr("LONETILDE","(?:~>?)");Jr("TILDETRIM",`(\\s*)${lr[cr.LONETILDE]}\\s+`,!0);wf.tildeTrimReplace="$1~";Jr("TILDE",`^${lr[cr.LONETILDE]}${lr[cr.XRANGEPLAIN]}$`);Jr("TILDELOOSE",`^${lr[cr.LONETILDE]}${lr[cr.XRANGEPLAINLOOSE]}$`);Jr("LONECARET","(?:\\^)");Jr("CARETTRIM",`(\\s*)${lr[cr.LONECARET]}\\s+`,!0);wf.caretTrimReplace="$1^";Jr("CARET",`^${lr[cr.LONECARET]}${lr[cr.XRANGEPLAIN]}$`);Jr("CARETLOOSE",`^${lr[cr.LONECARET]}${lr[cr.XRANGEPLAINLOOSE]}$`);Jr("COMPARATORLOOSE",`^${lr[cr.GTLT]}\\s*(${lr[cr.LOOSEPLAIN]})$|^$`);Jr("COMPARATOR",`^${lr[cr.GTLT]}\\s*(${lr[cr.FULLPLAIN]})$|^$`);Jr("COMPARATORTRIM",`(\\s*)${lr[cr.GTLT]}\\s*(${lr[cr.LOOSEPLAIN]}|${lr[cr.XRANGEPLAIN]})`,!0);wf.comparatorTrimReplace="$1$2$3";Jr("HYPHENRANGE",`^\\s*(${lr[cr.XRANGEPLAIN]})\\s+-\\s+(${lr[cr.XRANGEPLAIN]})\\s*$`);Jr("HYPHENRANGELOOSE",`^\\s*(${lr[cr.XRANGEPLAINLOOSE]})\\s+-\\s+(${lr[cr.XRANGEPLAINLOOSE]})\\s*$`);Jr("STAR","(<|>)?=?\\s*\\*");Jr("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$");Jr("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")});var pS=_((Tkt,sJ)=>{var kje=Object.freeze({loose:!0}),Qje=Object.freeze({}),Fje=t=>t?typeof t!="object"?kje:t:Qje;sJ.exports=Fje});var JT=_((Nkt,lJ)=>{var oJ=/^[0-9]+$/,aJ=(t,e)=>{let r=oJ.test(t),o=oJ.test(e);return r&&o&&(t=+t,e=+e),t===e?0:r&&!o?-1:o&&!r?1:taJ(e,t);lJ.exports={compareIdentifiers:aJ,rcompareIdentifiers:Rje}});var So=_((Lkt,fJ)=>{var hS=dI(),{MAX_LENGTH:cJ,MAX_SAFE_INTEGER:gS}=gI(),{safeRe:uJ,t:AJ}=vy(),Tje=pS(),{compareIdentifiers:Dy}=JT(),tl=class{constructor(e,r){if(r=Tje(r),e instanceof tl){if(e.loose===!!r.loose&&e.includePrerelease===!!r.includePrerelease)return e;e=e.version}else if(typeof e!="string")throw new TypeError(`Invalid version. Must be a string. Got type "${typeof e}".`);if(e.length>cJ)throw new TypeError(`version is longer than ${cJ} characters`);hS("SemVer",e,r),this.options=r,this.loose=!!r.loose,this.includePrerelease=!!r.includePrerelease;let o=e.trim().match(r.loose?uJ[AJ.LOOSE]:uJ[AJ.FULL]);if(!o)throw new TypeError(`Invalid Version: ${e}`);if(this.raw=e,this.major=+o[1],this.minor=+o[2],this.patch=+o[3],this.major>gS||this.major<0)throw new TypeError("Invalid major version");if(this.minor>gS||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>gS||this.patch<0)throw new TypeError("Invalid patch version");o[4]?this.prerelease=o[4].split(".").map(a=>{if(/^[0-9]+$/.test(a)){let n=+a;if(n>=0&&n=0;)typeof this.prerelease[n]=="number"&&(this.prerelease[n]++,n=-2);if(n===-1){if(r===this.prerelease.join(".")&&o===!1)throw new Error("invalid increment argument: identifier already exists");this.prerelease.push(a)}}if(r){let n=[r,a];o===!1&&(n=[r]),Dy(this.prerelease[0],r)===0?isNaN(this.prerelease[1])&&(this.prerelease=n):this.prerelease=n}break}default:throw new Error(`invalid increment argument: ${e}`)}return this.raw=this.format(),this.build.length&&(this.raw+=`+${this.build.join(".")}`),this}};fJ.exports=tl});var sd=_((Okt,hJ)=>{var pJ=So(),Nje=(t,e,r=!1)=>{if(t instanceof pJ)return t;try{return new pJ(t,e)}catch(o){if(!r)return null;throw o}};hJ.exports=Nje});var dJ=_((Mkt,gJ)=>{var Lje=sd(),Oje=(t,e)=>{let r=Lje(t,e);return r?r.version:null};gJ.exports=Oje});var yJ=_((Ukt,mJ)=>{var Mje=sd(),Uje=(t,e)=>{let r=Mje(t.trim().replace(/^[=v]+/,""),e);return r?r.version:null};mJ.exports=Uje});var wJ=_((_kt,CJ)=>{var EJ=So(),_je=(t,e,r,o,a)=>{typeof r=="string"&&(a=o,o=r,r=void 0);try{return new EJ(t instanceof EJ?t.version:t,r).inc(e,o,a).version}catch{return null}};CJ.exports=_je});var vJ=_((Hkt,BJ)=>{var IJ=sd(),Hje=(t,e)=>{let r=IJ(t,null,!0),o=IJ(e,null,!0),a=r.compare(o);if(a===0)return null;let n=a>0,u=n?r:o,A=n?o:r,p=!!u.prerelease.length;if(!!A.prerelease.length&&!p)return!A.patch&&!A.minor?"major":u.patch?"patch":u.minor?"minor":"major";let E=p?"pre":"";return r.major!==o.major?E+"major":r.minor!==o.minor?E+"minor":r.patch!==o.patch?E+"patch":"prerelease"};BJ.exports=Hje});var SJ=_((qkt,DJ)=>{var qje=So(),jje=(t,e)=>new qje(t,e).major;DJ.exports=jje});var bJ=_((jkt,PJ)=>{var Gje=So(),Yje=(t,e)=>new Gje(t,e).minor;PJ.exports=Yje});var kJ=_((Gkt,xJ)=>{var Wje=So(),Kje=(t,e)=>new Wje(t,e).patch;xJ.exports=Kje});var FJ=_((Ykt,QJ)=>{var Vje=sd(),Jje=(t,e)=>{let r=Vje(t,e);return r&&r.prerelease.length?r.prerelease:null};QJ.exports=Jje});var Ll=_((Wkt,TJ)=>{var RJ=So(),zje=(t,e,r)=>new RJ(t,r).compare(new RJ(e,r));TJ.exports=zje});var LJ=_((Kkt,NJ)=>{var Xje=Ll(),Zje=(t,e,r)=>Xje(e,t,r);NJ.exports=Zje});var MJ=_((Vkt,OJ)=>{var $je=Ll(),eGe=(t,e)=>$je(t,e,!0);OJ.exports=eGe});var dS=_((Jkt,_J)=>{var UJ=So(),tGe=(t,e,r)=>{let o=new UJ(t,r),a=new UJ(e,r);return o.compare(a)||o.compareBuild(a)};_J.exports=tGe});var qJ=_((zkt,HJ)=>{var rGe=dS(),nGe=(t,e)=>t.sort((r,o)=>rGe(r,o,e));HJ.exports=nGe});var GJ=_((Xkt,jJ)=>{var iGe=dS(),sGe=(t,e)=>t.sort((r,o)=>iGe(o,r,e));jJ.exports=sGe});var mI=_((Zkt,YJ)=>{var oGe=Ll(),aGe=(t,e,r)=>oGe(t,e,r)>0;YJ.exports=aGe});var mS=_(($kt,WJ)=>{var lGe=Ll(),cGe=(t,e,r)=>lGe(t,e,r)<0;WJ.exports=cGe});var zT=_((eQt,KJ)=>{var uGe=Ll(),AGe=(t,e,r)=>uGe(t,e,r)===0;KJ.exports=AGe});var XT=_((tQt,VJ)=>{var fGe=Ll(),pGe=(t,e,r)=>fGe(t,e,r)!==0;VJ.exports=pGe});var yS=_((rQt,JJ)=>{var hGe=Ll(),gGe=(t,e,r)=>hGe(t,e,r)>=0;JJ.exports=gGe});var ES=_((nQt,zJ)=>{var dGe=Ll(),mGe=(t,e,r)=>dGe(t,e,r)<=0;zJ.exports=mGe});var ZT=_((iQt,XJ)=>{var yGe=zT(),EGe=XT(),CGe=mI(),wGe=yS(),IGe=mS(),BGe=ES(),vGe=(t,e,r,o)=>{switch(e){case"===":return typeof t=="object"&&(t=t.version),typeof r=="object"&&(r=r.version),t===r;case"!==":return typeof t=="object"&&(t=t.version),typeof r=="object"&&(r=r.version),t!==r;case"":case"=":case"==":return yGe(t,r,o);case"!=":return EGe(t,r,o);case">":return CGe(t,r,o);case">=":return wGe(t,r,o);case"<":return IGe(t,r,o);case"<=":return BGe(t,r,o);default:throw new TypeError(`Invalid operator: ${e}`)}};XJ.exports=vGe});var $J=_((sQt,ZJ)=>{var DGe=So(),SGe=sd(),{safeRe:CS,t:wS}=vy(),PGe=(t,e)=>{if(t instanceof DGe)return t;if(typeof t=="number"&&(t=String(t)),typeof t!="string")return null;e=e||{};let r=null;if(!e.rtl)r=t.match(CS[wS.COERCE]);else{let o;for(;(o=CS[wS.COERCERTL].exec(t))&&(!r||r.index+r[0].length!==t.length);)(!r||o.index+o[0].length!==r.index+r[0].length)&&(r=o),CS[wS.COERCERTL].lastIndex=o.index+o[1].length+o[2].length;CS[wS.COERCERTL].lastIndex=-1}return r===null?null:SGe(`${r[2]}.${r[3]||"0"}.${r[4]||"0"}`,e)};ZJ.exports=PGe});var tz=_((oQt,ez)=>{"use strict";ez.exports=function(t){t.prototype[Symbol.iterator]=function*(){for(let e=this.head;e;e=e.next)yield e.value}}});var IS=_((aQt,rz)=>{"use strict";rz.exports=Cn;Cn.Node=od;Cn.create=Cn;function Cn(t){var e=this;if(e instanceof Cn||(e=new Cn),e.tail=null,e.head=null,e.length=0,t&&typeof t.forEach=="function")t.forEach(function(a){e.push(a)});else if(arguments.length>0)for(var r=0,o=arguments.length;r1)r=e;else if(this.head)o=this.head.next,r=this.head.value;else throw new TypeError("Reduce of empty list with no initial value");for(var a=0;o!==null;a++)r=t(r,o.value,a),o=o.next;return r};Cn.prototype.reduceReverse=function(t,e){var r,o=this.tail;if(arguments.length>1)r=e;else if(this.tail)o=this.tail.prev,r=this.tail.value;else throw new TypeError("Reduce of empty list with no initial value");for(var a=this.length-1;o!==null;a--)r=t(r,o.value,a),o=o.prev;return r};Cn.prototype.toArray=function(){for(var t=new Array(this.length),e=0,r=this.head;r!==null;e++)t[e]=r.value,r=r.next;return t};Cn.prototype.toArrayReverse=function(){for(var t=new Array(this.length),e=0,r=this.tail;r!==null;e++)t[e]=r.value,r=r.prev;return t};Cn.prototype.slice=function(t,e){e=e||this.length,e<0&&(e+=this.length),t=t||0,t<0&&(t+=this.length);var r=new Cn;if(ethis.length&&(e=this.length);for(var o=0,a=this.head;a!==null&&othis.length&&(e=this.length);for(var o=this.length,a=this.tail;a!==null&&o>e;o--)a=a.prev;for(;a!==null&&o>t;o--,a=a.prev)r.push(a.value);return r};Cn.prototype.splice=function(t,e,...r){t>this.length&&(t=this.length-1),t<0&&(t=this.length+t);for(var o=0,a=this.head;a!==null&&o{"use strict";var QGe=IS(),ad=Symbol("max"),Bf=Symbol("length"),Sy=Symbol("lengthCalculator"),EI=Symbol("allowStale"),ld=Symbol("maxAge"),If=Symbol("dispose"),nz=Symbol("noDisposeOnSet"),xs=Symbol("lruList"),Mc=Symbol("cache"),sz=Symbol("updateAgeOnGet"),$T=()=>1,tN=class{constructor(e){if(typeof e=="number"&&(e={max:e}),e||(e={}),e.max&&(typeof e.max!="number"||e.max<0))throw new TypeError("max must be a non-negative number");let r=this[ad]=e.max||1/0,o=e.length||$T;if(this[Sy]=typeof o!="function"?$T:o,this[EI]=e.stale||!1,e.maxAge&&typeof e.maxAge!="number")throw new TypeError("maxAge must be a number");this[ld]=e.maxAge||0,this[If]=e.dispose,this[nz]=e.noDisposeOnSet||!1,this[sz]=e.updateAgeOnGet||!1,this.reset()}set max(e){if(typeof e!="number"||e<0)throw new TypeError("max must be a non-negative number");this[ad]=e||1/0,yI(this)}get max(){return this[ad]}set allowStale(e){this[EI]=!!e}get allowStale(){return this[EI]}set maxAge(e){if(typeof e!="number")throw new TypeError("maxAge must be a non-negative number");this[ld]=e,yI(this)}get maxAge(){return this[ld]}set lengthCalculator(e){typeof e!="function"&&(e=$T),e!==this[Sy]&&(this[Sy]=e,this[Bf]=0,this[xs].forEach(r=>{r.length=this[Sy](r.value,r.key),this[Bf]+=r.length})),yI(this)}get lengthCalculator(){return this[Sy]}get length(){return this[Bf]}get itemCount(){return this[xs].length}rforEach(e,r){r=r||this;for(let o=this[xs].tail;o!==null;){let a=o.prev;iz(this,e,o,r),o=a}}forEach(e,r){r=r||this;for(let o=this[xs].head;o!==null;){let a=o.next;iz(this,e,o,r),o=a}}keys(){return this[xs].toArray().map(e=>e.key)}values(){return this[xs].toArray().map(e=>e.value)}reset(){this[If]&&this[xs]&&this[xs].length&&this[xs].forEach(e=>this[If](e.key,e.value)),this[Mc]=new Map,this[xs]=new QGe,this[Bf]=0}dump(){return this[xs].map(e=>BS(this,e)?!1:{k:e.key,v:e.value,e:e.now+(e.maxAge||0)}).toArray().filter(e=>e)}dumpLru(){return this[xs]}set(e,r,o){if(o=o||this[ld],o&&typeof o!="number")throw new TypeError("maxAge must be a number");let a=o?Date.now():0,n=this[Sy](r,e);if(this[Mc].has(e)){if(n>this[ad])return Py(this,this[Mc].get(e)),!1;let p=this[Mc].get(e).value;return this[If]&&(this[nz]||this[If](e,p.value)),p.now=a,p.maxAge=o,p.value=r,this[Bf]+=n-p.length,p.length=n,this.get(e),yI(this),!0}let u=new rN(e,r,n,a,o);return u.length>this[ad]?(this[If]&&this[If](e,r),!1):(this[Bf]+=u.length,this[xs].unshift(u),this[Mc].set(e,this[xs].head),yI(this),!0)}has(e){if(!this[Mc].has(e))return!1;let r=this[Mc].get(e).value;return!BS(this,r)}get(e){return eN(this,e,!0)}peek(e){return eN(this,e,!1)}pop(){let e=this[xs].tail;return e?(Py(this,e),e.value):null}del(e){Py(this,this[Mc].get(e))}load(e){this.reset();let r=Date.now();for(let o=e.length-1;o>=0;o--){let a=e[o],n=a.e||0;if(n===0)this.set(a.k,a.v);else{let u=n-r;u>0&&this.set(a.k,a.v,u)}}}prune(){this[Mc].forEach((e,r)=>eN(this,r,!1))}},eN=(t,e,r)=>{let o=t[Mc].get(e);if(o){let a=o.value;if(BS(t,a)){if(Py(t,o),!t[EI])return}else r&&(t[sz]&&(o.value.now=Date.now()),t[xs].unshiftNode(o));return a.value}},BS=(t,e)=>{if(!e||!e.maxAge&&!t[ld])return!1;let r=Date.now()-e.now;return e.maxAge?r>e.maxAge:t[ld]&&r>t[ld]},yI=t=>{if(t[Bf]>t[ad])for(let e=t[xs].tail;t[Bf]>t[ad]&&e!==null;){let r=e.prev;Py(t,e),e=r}},Py=(t,e)=>{if(e){let r=e.value;t[If]&&t[If](r.key,r.value),t[Bf]-=r.length,t[Mc].delete(r.key),t[xs].removeNode(e)}},rN=class{constructor(e,r,o,a,n){this.key=e,this.value=r,this.length=o,this.now=a,this.maxAge=n||0}},iz=(t,e,r,o)=>{let a=r.value;BS(t,a)&&(Py(t,r),t[EI]||(a=void 0)),a&&e.call(o,a.value,a.key,t)};oz.exports=tN});var Ol=_((cQt,Az)=>{var cd=class{constructor(e,r){if(r=RGe(r),e instanceof cd)return e.loose===!!r.loose&&e.includePrerelease===!!r.includePrerelease?e:new cd(e.raw,r);if(e instanceof nN)return this.raw=e.value,this.set=[[e]],this.format(),this;if(this.options=r,this.loose=!!r.loose,this.includePrerelease=!!r.includePrerelease,this.raw=e.trim().split(/\s+/).join(" "),this.set=this.raw.split("||").map(o=>this.parseRange(o.trim())).filter(o=>o.length),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${this.raw}`);if(this.set.length>1){let o=this.set[0];if(this.set=this.set.filter(a=>!cz(a[0])),this.set.length===0)this.set=[o];else if(this.set.length>1){for(let a of this.set)if(a.length===1&&_Ge(a[0])){this.set=[a];break}}}this.format()}format(){return this.range=this.set.map(e=>e.join(" ").trim()).join("||").trim(),this.range}toString(){return this.range}parseRange(e){let o=((this.options.includePrerelease&&MGe)|(this.options.loose&&UGe))+":"+e,a=lz.get(o);if(a)return a;let n=this.options.loose,u=n?Da[zo.HYPHENRANGELOOSE]:Da[zo.HYPHENRANGE];e=e.replace(u,zGe(this.options.includePrerelease)),ci("hyphen replace",e),e=e.replace(Da[zo.COMPARATORTRIM],NGe),ci("comparator trim",e),e=e.replace(Da[zo.TILDETRIM],LGe),ci("tilde trim",e),e=e.replace(Da[zo.CARETTRIM],OGe),ci("caret trim",e);let A=e.split(" ").map(I=>HGe(I,this.options)).join(" ").split(/\s+/).map(I=>JGe(I,this.options));n&&(A=A.filter(I=>(ci("loose invalid filter",I,this.options),!!I.match(Da[zo.COMPARATORLOOSE])))),ci("range list",A);let p=new Map,h=A.map(I=>new nN(I,this.options));for(let I of h){if(cz(I))return[I];p.set(I.value,I)}p.size>1&&p.has("")&&p.delete("");let E=[...p.values()];return lz.set(o,E),E}intersects(e,r){if(!(e instanceof cd))throw new TypeError("a Range is required");return this.set.some(o=>uz(o,r)&&e.set.some(a=>uz(a,r)&&o.every(n=>a.every(u=>n.intersects(u,r)))))}test(e){if(!e)return!1;if(typeof e=="string")try{e=new TGe(e,this.options)}catch{return!1}for(let r=0;rt.value==="<0.0.0-0",_Ge=t=>t.value==="",uz=(t,e)=>{let r=!0,o=t.slice(),a=o.pop();for(;r&&o.length;)r=o.every(n=>a.intersects(n,e)),a=o.pop();return r},HGe=(t,e)=>(ci("comp",t,e),t=GGe(t,e),ci("caret",t),t=qGe(t,e),ci("tildes",t),t=WGe(t,e),ci("xrange",t),t=VGe(t,e),ci("stars",t),t),Xo=t=>!t||t.toLowerCase()==="x"||t==="*",qGe=(t,e)=>t.trim().split(/\s+/).map(r=>jGe(r,e)).join(" "),jGe=(t,e)=>{let r=e.loose?Da[zo.TILDELOOSE]:Da[zo.TILDE];return t.replace(r,(o,a,n,u,A)=>{ci("tilde",t,o,a,n,u,A);let p;return Xo(a)?p="":Xo(n)?p=`>=${a}.0.0 <${+a+1}.0.0-0`:Xo(u)?p=`>=${a}.${n}.0 <${a}.${+n+1}.0-0`:A?(ci("replaceTilde pr",A),p=`>=${a}.${n}.${u}-${A} <${a}.${+n+1}.0-0`):p=`>=${a}.${n}.${u} <${a}.${+n+1}.0-0`,ci("tilde return",p),p})},GGe=(t,e)=>t.trim().split(/\s+/).map(r=>YGe(r,e)).join(" "),YGe=(t,e)=>{ci("caret",t,e);let r=e.loose?Da[zo.CARETLOOSE]:Da[zo.CARET],o=e.includePrerelease?"-0":"";return t.replace(r,(a,n,u,A,p)=>{ci("caret",t,a,n,u,A,p);let h;return Xo(n)?h="":Xo(u)?h=`>=${n}.0.0${o} <${+n+1}.0.0-0`:Xo(A)?n==="0"?h=`>=${n}.${u}.0${o} <${n}.${+u+1}.0-0`:h=`>=${n}.${u}.0${o} <${+n+1}.0.0-0`:p?(ci("replaceCaret pr",p),n==="0"?u==="0"?h=`>=${n}.${u}.${A}-${p} <${n}.${u}.${+A+1}-0`:h=`>=${n}.${u}.${A}-${p} <${n}.${+u+1}.0-0`:h=`>=${n}.${u}.${A}-${p} <${+n+1}.0.0-0`):(ci("no pr"),n==="0"?u==="0"?h=`>=${n}.${u}.${A}${o} <${n}.${u}.${+A+1}-0`:h=`>=${n}.${u}.${A}${o} <${n}.${+u+1}.0-0`:h=`>=${n}.${u}.${A} <${+n+1}.0.0-0`),ci("caret return",h),h})},WGe=(t,e)=>(ci("replaceXRanges",t,e),t.split(/\s+/).map(r=>KGe(r,e)).join(" ")),KGe=(t,e)=>{t=t.trim();let r=e.loose?Da[zo.XRANGELOOSE]:Da[zo.XRANGE];return t.replace(r,(o,a,n,u,A,p)=>{ci("xRange",t,o,a,n,u,A,p);let h=Xo(n),E=h||Xo(u),I=E||Xo(A),v=I;return a==="="&&v&&(a=""),p=e.includePrerelease?"-0":"",h?a===">"||a==="<"?o="<0.0.0-0":o="*":a&&v?(E&&(u=0),A=0,a===">"?(a=">=",E?(n=+n+1,u=0,A=0):(u=+u+1,A=0)):a==="<="&&(a="<",E?n=+n+1:u=+u+1),a==="<"&&(p="-0"),o=`${a+n}.${u}.${A}${p}`):E?o=`>=${n}.0.0${p} <${+n+1}.0.0-0`:I&&(o=`>=${n}.${u}.0${p} <${n}.${+u+1}.0-0`),ci("xRange return",o),o})},VGe=(t,e)=>(ci("replaceStars",t,e),t.trim().replace(Da[zo.STAR],"")),JGe=(t,e)=>(ci("replaceGTE0",t,e),t.trim().replace(Da[e.includePrerelease?zo.GTE0PRE:zo.GTE0],"")),zGe=t=>(e,r,o,a,n,u,A,p,h,E,I,v,x)=>(Xo(o)?r="":Xo(a)?r=`>=${o}.0.0${t?"-0":""}`:Xo(n)?r=`>=${o}.${a}.0${t?"-0":""}`:u?r=`>=${r}`:r=`>=${r}${t?"-0":""}`,Xo(h)?p="":Xo(E)?p=`<${+h+1}.0.0-0`:Xo(I)?p=`<${h}.${+E+1}.0-0`:v?p=`<=${h}.${E}.${I}-${v}`:t?p=`<${h}.${E}.${+I+1}-0`:p=`<=${p}`,`${r} ${p}`.trim()),XGe=(t,e,r)=>{for(let o=0;o0){let a=t[o].semver;if(a.major===e.major&&a.minor===e.minor&&a.patch===e.patch)return!0}return!1}return!0}});var CI=_((uQt,mz)=>{var wI=Symbol("SemVer ANY"),by=class{static get ANY(){return wI}constructor(e,r){if(r=fz(r),e instanceof by){if(e.loose===!!r.loose)return e;e=e.value}e=e.trim().split(/\s+/).join(" "),sN("comparator",e,r),this.options=r,this.loose=!!r.loose,this.parse(e),this.semver===wI?this.value="":this.value=this.operator+this.semver.version,sN("comp",this)}parse(e){let r=this.options.loose?pz[hz.COMPARATORLOOSE]:pz[hz.COMPARATOR],o=e.match(r);if(!o)throw new TypeError(`Invalid comparator: ${e}`);this.operator=o[1]!==void 0?o[1]:"",this.operator==="="&&(this.operator=""),o[2]?this.semver=new gz(o[2],this.options.loose):this.semver=wI}toString(){return this.value}test(e){if(sN("Comparator.test",e,this.options.loose),this.semver===wI||e===wI)return!0;if(typeof e=="string")try{e=new gz(e,this.options)}catch{return!1}return iN(e,this.operator,this.semver,this.options)}intersects(e,r){if(!(e instanceof by))throw new TypeError("a Comparator is required");return this.operator===""?this.value===""?!0:new dz(e.value,r).test(this.value):e.operator===""?e.value===""?!0:new dz(this.value,r).test(e.semver):(r=fz(r),r.includePrerelease&&(this.value==="<0.0.0-0"||e.value==="<0.0.0-0")||!r.includePrerelease&&(this.value.startsWith("<0.0.0")||e.value.startsWith("<0.0.0"))?!1:!!(this.operator.startsWith(">")&&e.operator.startsWith(">")||this.operator.startsWith("<")&&e.operator.startsWith("<")||this.semver.version===e.semver.version&&this.operator.includes("=")&&e.operator.includes("=")||iN(this.semver,"<",e.semver,r)&&this.operator.startsWith(">")&&e.operator.startsWith("<")||iN(this.semver,">",e.semver,r)&&this.operator.startsWith("<")&&e.operator.startsWith(">")))}};mz.exports=by;var fz=pS(),{safeRe:pz,t:hz}=vy(),iN=ZT(),sN=dI(),gz=So(),dz=Ol()});var II=_((AQt,yz)=>{var ZGe=Ol(),$Ge=(t,e,r)=>{try{e=new ZGe(e,r)}catch{return!1}return e.test(t)};yz.exports=$Ge});var Cz=_((fQt,Ez)=>{var e5e=Ol(),t5e=(t,e)=>new e5e(t,e).set.map(r=>r.map(o=>o.value).join(" ").trim().split(" "));Ez.exports=t5e});var Iz=_((pQt,wz)=>{var r5e=So(),n5e=Ol(),i5e=(t,e,r)=>{let o=null,a=null,n=null;try{n=new n5e(e,r)}catch{return null}return t.forEach(u=>{n.test(u)&&(!o||a.compare(u)===-1)&&(o=u,a=new r5e(o,r))}),o};wz.exports=i5e});var vz=_((hQt,Bz)=>{var s5e=So(),o5e=Ol(),a5e=(t,e,r)=>{let o=null,a=null,n=null;try{n=new o5e(e,r)}catch{return null}return t.forEach(u=>{n.test(u)&&(!o||a.compare(u)===1)&&(o=u,a=new s5e(o,r))}),o};Bz.exports=a5e});var Pz=_((gQt,Sz)=>{var oN=So(),l5e=Ol(),Dz=mI(),c5e=(t,e)=>{t=new l5e(t,e);let r=new oN("0.0.0");if(t.test(r)||(r=new oN("0.0.0-0"),t.test(r)))return r;r=null;for(let o=0;o{let A=new oN(u.semver.version);switch(u.operator){case">":A.prerelease.length===0?A.patch++:A.prerelease.push(0),A.raw=A.format();case"":case">=":(!n||Dz(A,n))&&(n=A);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${u.operator}`)}}),n&&(!r||Dz(r,n))&&(r=n)}return r&&t.test(r)?r:null};Sz.exports=c5e});var xz=_((dQt,bz)=>{var u5e=Ol(),A5e=(t,e)=>{try{return new u5e(t,e).range||"*"}catch{return null}};bz.exports=A5e});var vS=_((mQt,Rz)=>{var f5e=So(),Fz=CI(),{ANY:p5e}=Fz,h5e=Ol(),g5e=II(),kz=mI(),Qz=mS(),d5e=ES(),m5e=yS(),y5e=(t,e,r,o)=>{t=new f5e(t,o),e=new h5e(e,o);let a,n,u,A,p;switch(r){case">":a=kz,n=d5e,u=Qz,A=">",p=">=";break;case"<":a=Qz,n=m5e,u=kz,A="<",p="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(g5e(t,e,o))return!1;for(let h=0;h{x.semver===p5e&&(x=new Fz(">=0.0.0")),I=I||x,v=v||x,a(x.semver,I.semver,o)?I=x:u(x.semver,v.semver,o)&&(v=x)}),I.operator===A||I.operator===p||(!v.operator||v.operator===A)&&n(t,v.semver))return!1;if(v.operator===p&&u(t,v.semver))return!1}return!0};Rz.exports=y5e});var Nz=_((yQt,Tz)=>{var E5e=vS(),C5e=(t,e,r)=>E5e(t,e,">",r);Tz.exports=C5e});var Oz=_((EQt,Lz)=>{var w5e=vS(),I5e=(t,e,r)=>w5e(t,e,"<",r);Lz.exports=I5e});var _z=_((CQt,Uz)=>{var Mz=Ol(),B5e=(t,e,r)=>(t=new Mz(t,r),e=new Mz(e,r),t.intersects(e,r));Uz.exports=B5e});var qz=_((wQt,Hz)=>{var v5e=II(),D5e=Ll();Hz.exports=(t,e,r)=>{let o=[],a=null,n=null,u=t.sort((E,I)=>D5e(E,I,r));for(let E of u)v5e(E,e,r)?(n=E,a||(a=E)):(n&&o.push([a,n]),n=null,a=null);a&&o.push([a,null]);let A=[];for(let[E,I]of o)E===I?A.push(E):!I&&E===u[0]?A.push("*"):I?E===u[0]?A.push(`<=${I}`):A.push(`${E} - ${I}`):A.push(`>=${E}`);let p=A.join(" || "),h=typeof e.raw=="string"?e.raw:String(e);return p.length{var jz=Ol(),lN=CI(),{ANY:aN}=lN,BI=II(),cN=Ll(),S5e=(t,e,r={})=>{if(t===e)return!0;t=new jz(t,r),e=new jz(e,r);let o=!1;e:for(let a of t.set){for(let n of e.set){let u=b5e(a,n,r);if(o=o||u!==null,u)continue e}if(o)return!1}return!0},P5e=[new lN(">=0.0.0-0")],Gz=[new lN(">=0.0.0")],b5e=(t,e,r)=>{if(t===e)return!0;if(t.length===1&&t[0].semver===aN){if(e.length===1&&e[0].semver===aN)return!0;r.includePrerelease?t=P5e:t=Gz}if(e.length===1&&e[0].semver===aN){if(r.includePrerelease)return!0;e=Gz}let o=new Set,a,n;for(let x of t)x.operator===">"||x.operator===">="?a=Yz(a,x,r):x.operator==="<"||x.operator==="<="?n=Wz(n,x,r):o.add(x.semver);if(o.size>1)return null;let u;if(a&&n){if(u=cN(a.semver,n.semver,r),u>0)return null;if(u===0&&(a.operator!==">="||n.operator!=="<="))return null}for(let x of o){if(a&&!BI(x,String(a),r)||n&&!BI(x,String(n),r))return null;for(let C of e)if(!BI(x,String(C),r))return!1;return!0}let A,p,h,E,I=n&&!r.includePrerelease&&n.semver.prerelease.length?n.semver:!1,v=a&&!r.includePrerelease&&a.semver.prerelease.length?a.semver:!1;I&&I.prerelease.length===1&&n.operator==="<"&&I.prerelease[0]===0&&(I=!1);for(let x of e){if(E=E||x.operator===">"||x.operator===">=",h=h||x.operator==="<"||x.operator==="<=",a){if(v&&x.semver.prerelease&&x.semver.prerelease.length&&x.semver.major===v.major&&x.semver.minor===v.minor&&x.semver.patch===v.patch&&(v=!1),x.operator===">"||x.operator===">="){if(A=Yz(a,x,r),A===x&&A!==a)return!1}else if(a.operator===">="&&!BI(a.semver,String(x),r))return!1}if(n){if(I&&x.semver.prerelease&&x.semver.prerelease.length&&x.semver.major===I.major&&x.semver.minor===I.minor&&x.semver.patch===I.patch&&(I=!1),x.operator==="<"||x.operator==="<="){if(p=Wz(n,x,r),p===x&&p!==n)return!1}else if(n.operator==="<="&&!BI(n.semver,String(x),r))return!1}if(!x.operator&&(n||a)&&u!==0)return!1}return!(a&&h&&!n&&u!==0||n&&E&&!a&&u!==0||v||I)},Yz=(t,e,r)=>{if(!t)return e;let o=cN(t.semver,e.semver,r);return o>0?t:o<0||e.operator===">"&&t.operator===">="?e:t},Wz=(t,e,r)=>{if(!t)return e;let o=cN(t.semver,e.semver,r);return o<0?t:o>0||e.operator==="<"&&t.operator==="<="?e:t};Kz.exports=S5e});var zn=_((BQt,Xz)=>{var uN=vy(),Jz=gI(),x5e=So(),zz=JT(),k5e=sd(),Q5e=dJ(),F5e=yJ(),R5e=wJ(),T5e=vJ(),N5e=SJ(),L5e=bJ(),O5e=kJ(),M5e=FJ(),U5e=Ll(),_5e=LJ(),H5e=MJ(),q5e=dS(),j5e=qJ(),G5e=GJ(),Y5e=mI(),W5e=mS(),K5e=zT(),V5e=XT(),J5e=yS(),z5e=ES(),X5e=ZT(),Z5e=$J(),$5e=CI(),e9e=Ol(),t9e=II(),r9e=Cz(),n9e=Iz(),i9e=vz(),s9e=Pz(),o9e=xz(),a9e=vS(),l9e=Nz(),c9e=Oz(),u9e=_z(),A9e=qz(),f9e=Vz();Xz.exports={parse:k5e,valid:Q5e,clean:F5e,inc:R5e,diff:T5e,major:N5e,minor:L5e,patch:O5e,prerelease:M5e,compare:U5e,rcompare:_5e,compareLoose:H5e,compareBuild:q5e,sort:j5e,rsort:G5e,gt:Y5e,lt:W5e,eq:K5e,neq:V5e,gte:J5e,lte:z5e,cmp:X5e,coerce:Z5e,Comparator:$5e,Range:e9e,satisfies:t9e,toComparators:r9e,maxSatisfying:n9e,minSatisfying:i9e,minVersion:s9e,validRange:o9e,outside:a9e,gtr:l9e,ltr:c9e,intersects:u9e,simplifyRange:A9e,subset:f9e,SemVer:x5e,re:uN.re,src:uN.src,tokens:uN.t,SEMVER_SPEC_VERSION:Jz.SEMVER_SPEC_VERSION,RELEASE_TYPES:Jz.RELEASE_TYPES,compareIdentifiers:zz.compareIdentifiers,rcompareIdentifiers:zz.rcompareIdentifiers}});var $z=_((vQt,Zz)=>{"use strict";function p9e(t,e){function r(){this.constructor=t}r.prototype=e.prototype,t.prototype=new r}function ud(t,e,r,o){this.message=t,this.expected=e,this.found=r,this.location=o,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,ud)}p9e(ud,Error);ud.buildMessage=function(t,e){var r={literal:function(h){return'"'+a(h.text)+'"'},class:function(h){var E="",I;for(I=0;I0){for(I=1,v=1;I{switch(Ne[1]){case"|":return Pe|Ne[3];case"&":return Pe&Ne[3];case"^":return Pe^Ne[3]}},Z)},v="!",x=Re("!",!1),C=function(Z){return!Z},R="(",L=Re("(",!1),U=")",J=Re(")",!1),te=function(Z){return Z},ae=/^[^ \t\n\r()!|&\^]/,fe=ke([" "," ",` +`,"\r","(",")","!","|","&","^"],!0,!1),ce=function(Z){return e.queryPattern.test(Z)},me=function(Z){return e.checkFn(Z)},he=Te("whitespace"),Be=/^[ \t\n\r]/,we=ke([" "," ",` +`,"\r"],!1,!1),g=0,Ee=0,Se=[{line:1,column:1}],le=0,ne=[],ee=0,Ie;if("startRule"in e){if(!(e.startRule in o))throw new Error(`Can't start parsing from rule "`+e.startRule+'".');a=o[e.startRule]}function Fe(){return t.substring(Ee,g)}function At(){return qe(Ee,g)}function H(Z,ie){throw ie=ie!==void 0?ie:qe(Ee,g),P([Te(Z)],t.substring(Ee,g),ie)}function at(Z,ie){throw ie=ie!==void 0?ie:qe(Ee,g),w(Z,ie)}function Re(Z,ie){return{type:"literal",text:Z,ignoreCase:ie}}function ke(Z,ie,Pe){return{type:"class",parts:Z,inverted:ie,ignoreCase:Pe}}function xe(){return{type:"any"}}function He(){return{type:"end"}}function Te(Z){return{type:"other",description:Z}}function Je(Z){var ie=Se[Z],Pe;if(ie)return ie;for(Pe=Z-1;!Se[Pe];)Pe--;for(ie=Se[Pe],ie={line:ie.line,column:ie.column};Pele&&(le=g,ne=[]),ne.push(Z))}function w(Z,ie){return new ud(Z,null,null,ie)}function P(Z,ie,Pe){return new ud(ud.buildMessage(Z,ie),Z,ie,Pe)}function y(){var Z,ie,Pe,Ne,ot,dt,jt,$t;if(Z=g,ie=F(),ie!==r){for(Pe=[],Ne=g,ot=X(),ot!==r?(t.charCodeAt(g)===124?(dt=n,g++):(dt=r,ee===0&&b(u)),dt===r&&(t.charCodeAt(g)===38?(dt=A,g++):(dt=r,ee===0&&b(p)),dt===r&&(t.charCodeAt(g)===94?(dt=h,g++):(dt=r,ee===0&&b(E)))),dt!==r?(jt=X(),jt!==r?($t=F(),$t!==r?(ot=[ot,dt,jt,$t],Ne=ot):(g=Ne,Ne=r)):(g=Ne,Ne=r)):(g=Ne,Ne=r)):(g=Ne,Ne=r);Ne!==r;)Pe.push(Ne),Ne=g,ot=X(),ot!==r?(t.charCodeAt(g)===124?(dt=n,g++):(dt=r,ee===0&&b(u)),dt===r&&(t.charCodeAt(g)===38?(dt=A,g++):(dt=r,ee===0&&b(p)),dt===r&&(t.charCodeAt(g)===94?(dt=h,g++):(dt=r,ee===0&&b(E)))),dt!==r?(jt=X(),jt!==r?($t=F(),$t!==r?(ot=[ot,dt,jt,$t],Ne=ot):(g=Ne,Ne=r)):(g=Ne,Ne=r)):(g=Ne,Ne=r)):(g=Ne,Ne=r);Pe!==r?(Ee=Z,ie=I(ie,Pe),Z=ie):(g=Z,Z=r)}else g=Z,Z=r;return Z}function F(){var Z,ie,Pe,Ne,ot,dt;return Z=g,t.charCodeAt(g)===33?(ie=v,g++):(ie=r,ee===0&&b(x)),ie!==r?(Pe=F(),Pe!==r?(Ee=Z,ie=C(Pe),Z=ie):(g=Z,Z=r)):(g=Z,Z=r),Z===r&&(Z=g,t.charCodeAt(g)===40?(ie=R,g++):(ie=r,ee===0&&b(L)),ie!==r?(Pe=X(),Pe!==r?(Ne=y(),Ne!==r?(ot=X(),ot!==r?(t.charCodeAt(g)===41?(dt=U,g++):(dt=r,ee===0&&b(J)),dt!==r?(Ee=Z,ie=te(Ne),Z=ie):(g=Z,Z=r)):(g=Z,Z=r)):(g=Z,Z=r)):(g=Z,Z=r)):(g=Z,Z=r),Z===r&&(Z=z())),Z}function z(){var Z,ie,Pe,Ne,ot;if(Z=g,ie=X(),ie!==r){if(Pe=g,Ne=[],ae.test(t.charAt(g))?(ot=t.charAt(g),g++):(ot=r,ee===0&&b(fe)),ot!==r)for(;ot!==r;)Ne.push(ot),ae.test(t.charAt(g))?(ot=t.charAt(g),g++):(ot=r,ee===0&&b(fe));else Ne=r;Ne!==r?Pe=t.substring(Pe,g):Pe=Ne,Pe!==r?(Ee=g,Ne=ce(Pe),Ne?Ne=void 0:Ne=r,Ne!==r?(Ee=Z,ie=me(Pe),Z=ie):(g=Z,Z=r)):(g=Z,Z=r)}else g=Z,Z=r;return Z}function X(){var Z,ie;for(ee++,Z=[],Be.test(t.charAt(g))?(ie=t.charAt(g),g++):(ie=r,ee===0&&b(we));ie!==r;)Z.push(ie),Be.test(t.charAt(g))?(ie=t.charAt(g),g++):(ie=r,ee===0&&b(we));return ee--,Z===r&&(ie=r,ee===0&&b(he)),Z}if(Ie=a(),Ie!==r&&g===t.length)return Ie;throw Ie!==r&&g{var{parse:g9e}=$z();DS.makeParser=(t=/[a-z]+/)=>(e,r)=>g9e(e,{queryPattern:t,checkFn:r});DS.parse=DS.makeParser()});var rX=_((SQt,tX)=>{"use strict";tX.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}});var AN=_((PQt,iX)=>{var vI=rX(),nX={};for(let t of Object.keys(vI))nX[vI[t]]=t;var Ar={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};iX.exports=Ar;for(let t of Object.keys(Ar)){if(!("channels"in Ar[t]))throw new Error("missing channels property: "+t);if(!("labels"in Ar[t]))throw new Error("missing channel labels property: "+t);if(Ar[t].labels.length!==Ar[t].channels)throw new Error("channel and label counts mismatch: "+t);let{channels:e,labels:r}=Ar[t];delete Ar[t].channels,delete Ar[t].labels,Object.defineProperty(Ar[t],"channels",{value:e}),Object.defineProperty(Ar[t],"labels",{value:r})}Ar.rgb.hsl=function(t){let e=t[0]/255,r=t[1]/255,o=t[2]/255,a=Math.min(e,r,o),n=Math.max(e,r,o),u=n-a,A,p;n===a?A=0:e===n?A=(r-o)/u:r===n?A=2+(o-e)/u:o===n&&(A=4+(e-r)/u),A=Math.min(A*60,360),A<0&&(A+=360);let h=(a+n)/2;return n===a?p=0:h<=.5?p=u/(n+a):p=u/(2-n-a),[A,p*100,h*100]};Ar.rgb.hsv=function(t){let e,r,o,a,n,u=t[0]/255,A=t[1]/255,p=t[2]/255,h=Math.max(u,A,p),E=h-Math.min(u,A,p),I=function(v){return(h-v)/6/E+1/2};return E===0?(a=0,n=0):(n=E/h,e=I(u),r=I(A),o=I(p),u===h?a=o-r:A===h?a=1/3+e-o:p===h&&(a=2/3+r-e),a<0?a+=1:a>1&&(a-=1)),[a*360,n*100,h*100]};Ar.rgb.hwb=function(t){let e=t[0],r=t[1],o=t[2],a=Ar.rgb.hsl(t)[0],n=1/255*Math.min(e,Math.min(r,o));return o=1-1/255*Math.max(e,Math.max(r,o)),[a,n*100,o*100]};Ar.rgb.cmyk=function(t){let e=t[0]/255,r=t[1]/255,o=t[2]/255,a=Math.min(1-e,1-r,1-o),n=(1-e-a)/(1-a)||0,u=(1-r-a)/(1-a)||0,A=(1-o-a)/(1-a)||0;return[n*100,u*100,A*100,a*100]};function d9e(t,e){return(t[0]-e[0])**2+(t[1]-e[1])**2+(t[2]-e[2])**2}Ar.rgb.keyword=function(t){let e=nX[t];if(e)return e;let r=1/0,o;for(let a of Object.keys(vI)){let n=vI[a],u=d9e(t,n);u.04045?((e+.055)/1.055)**2.4:e/12.92,r=r>.04045?((r+.055)/1.055)**2.4:r/12.92,o=o>.04045?((o+.055)/1.055)**2.4:o/12.92;let a=e*.4124+r*.3576+o*.1805,n=e*.2126+r*.7152+o*.0722,u=e*.0193+r*.1192+o*.9505;return[a*100,n*100,u*100]};Ar.rgb.lab=function(t){let e=Ar.rgb.xyz(t),r=e[0],o=e[1],a=e[2];r/=95.047,o/=100,a/=108.883,r=r>.008856?r**(1/3):7.787*r+16/116,o=o>.008856?o**(1/3):7.787*o+16/116,a=a>.008856?a**(1/3):7.787*a+16/116;let n=116*o-16,u=500*(r-o),A=200*(o-a);return[n,u,A]};Ar.hsl.rgb=function(t){let e=t[0]/360,r=t[1]/100,o=t[2]/100,a,n,u;if(r===0)return u=o*255,[u,u,u];o<.5?a=o*(1+r):a=o+r-o*r;let A=2*o-a,p=[0,0,0];for(let h=0;h<3;h++)n=e+1/3*-(h-1),n<0&&n++,n>1&&n--,6*n<1?u=A+(a-A)*6*n:2*n<1?u=a:3*n<2?u=A+(a-A)*(2/3-n)*6:u=A,p[h]=u*255;return p};Ar.hsl.hsv=function(t){let e=t[0],r=t[1]/100,o=t[2]/100,a=r,n=Math.max(o,.01);o*=2,r*=o<=1?o:2-o,a*=n<=1?n:2-n;let u=(o+r)/2,A=o===0?2*a/(n+a):2*r/(o+r);return[e,A*100,u*100]};Ar.hsv.rgb=function(t){let e=t[0]/60,r=t[1]/100,o=t[2]/100,a=Math.floor(e)%6,n=e-Math.floor(e),u=255*o*(1-r),A=255*o*(1-r*n),p=255*o*(1-r*(1-n));switch(o*=255,a){case 0:return[o,p,u];case 1:return[A,o,u];case 2:return[u,o,p];case 3:return[u,A,o];case 4:return[p,u,o];case 5:return[o,u,A]}};Ar.hsv.hsl=function(t){let e=t[0],r=t[1]/100,o=t[2]/100,a=Math.max(o,.01),n,u;u=(2-r)*o;let A=(2-r)*a;return n=r*a,n/=A<=1?A:2-A,n=n||0,u/=2,[e,n*100,u*100]};Ar.hwb.rgb=function(t){let e=t[0]/360,r=t[1]/100,o=t[2]/100,a=r+o,n;a>1&&(r/=a,o/=a);let u=Math.floor(6*e),A=1-o;n=6*e-u,(u&1)!==0&&(n=1-n);let p=r+n*(A-r),h,E,I;switch(u){default:case 6:case 0:h=A,E=p,I=r;break;case 1:h=p,E=A,I=r;break;case 2:h=r,E=A,I=p;break;case 3:h=r,E=p,I=A;break;case 4:h=p,E=r,I=A;break;case 5:h=A,E=r,I=p;break}return[h*255,E*255,I*255]};Ar.cmyk.rgb=function(t){let e=t[0]/100,r=t[1]/100,o=t[2]/100,a=t[3]/100,n=1-Math.min(1,e*(1-a)+a),u=1-Math.min(1,r*(1-a)+a),A=1-Math.min(1,o*(1-a)+a);return[n*255,u*255,A*255]};Ar.xyz.rgb=function(t){let e=t[0]/100,r=t[1]/100,o=t[2]/100,a,n,u;return a=e*3.2406+r*-1.5372+o*-.4986,n=e*-.9689+r*1.8758+o*.0415,u=e*.0557+r*-.204+o*1.057,a=a>.0031308?1.055*a**(1/2.4)-.055:a*12.92,n=n>.0031308?1.055*n**(1/2.4)-.055:n*12.92,u=u>.0031308?1.055*u**(1/2.4)-.055:u*12.92,a=Math.min(Math.max(0,a),1),n=Math.min(Math.max(0,n),1),u=Math.min(Math.max(0,u),1),[a*255,n*255,u*255]};Ar.xyz.lab=function(t){let e=t[0],r=t[1],o=t[2];e/=95.047,r/=100,o/=108.883,e=e>.008856?e**(1/3):7.787*e+16/116,r=r>.008856?r**(1/3):7.787*r+16/116,o=o>.008856?o**(1/3):7.787*o+16/116;let a=116*r-16,n=500*(e-r),u=200*(r-o);return[a,n,u]};Ar.lab.xyz=function(t){let e=t[0],r=t[1],o=t[2],a,n,u;n=(e+16)/116,a=r/500+n,u=n-o/200;let A=n**3,p=a**3,h=u**3;return n=A>.008856?A:(n-16/116)/7.787,a=p>.008856?p:(a-16/116)/7.787,u=h>.008856?h:(u-16/116)/7.787,a*=95.047,n*=100,u*=108.883,[a,n,u]};Ar.lab.lch=function(t){let e=t[0],r=t[1],o=t[2],a;a=Math.atan2(o,r)*360/2/Math.PI,a<0&&(a+=360);let u=Math.sqrt(r*r+o*o);return[e,u,a]};Ar.lch.lab=function(t){let e=t[0],r=t[1],a=t[2]/360*2*Math.PI,n=r*Math.cos(a),u=r*Math.sin(a);return[e,n,u]};Ar.rgb.ansi16=function(t,e=null){let[r,o,a]=t,n=e===null?Ar.rgb.hsv(t)[2]:e;if(n=Math.round(n/50),n===0)return 30;let u=30+(Math.round(a/255)<<2|Math.round(o/255)<<1|Math.round(r/255));return n===2&&(u+=60),u};Ar.hsv.ansi16=function(t){return Ar.rgb.ansi16(Ar.hsv.rgb(t),t[2])};Ar.rgb.ansi256=function(t){let e=t[0],r=t[1],o=t[2];return e===r&&r===o?e<8?16:e>248?231:Math.round((e-8)/247*24)+232:16+36*Math.round(e/255*5)+6*Math.round(r/255*5)+Math.round(o/255*5)};Ar.ansi16.rgb=function(t){let e=t%10;if(e===0||e===7)return t>50&&(e+=3.5),e=e/10.5*255,[e,e,e];let r=(~~(t>50)+1)*.5,o=(e&1)*r*255,a=(e>>1&1)*r*255,n=(e>>2&1)*r*255;return[o,a,n]};Ar.ansi256.rgb=function(t){if(t>=232){let n=(t-232)*10+8;return[n,n,n]}t-=16;let e,r=Math.floor(t/36)/5*255,o=Math.floor((e=t%36)/6)/5*255,a=e%6/5*255;return[r,o,a]};Ar.rgb.hex=function(t){let r=(((Math.round(t[0])&255)<<16)+((Math.round(t[1])&255)<<8)+(Math.round(t[2])&255)).toString(16).toUpperCase();return"000000".substring(r.length)+r};Ar.hex.rgb=function(t){let e=t.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!e)return[0,0,0];let r=e[0];e[0].length===3&&(r=r.split("").map(A=>A+A).join(""));let o=parseInt(r,16),a=o>>16&255,n=o>>8&255,u=o&255;return[a,n,u]};Ar.rgb.hcg=function(t){let e=t[0]/255,r=t[1]/255,o=t[2]/255,a=Math.max(Math.max(e,r),o),n=Math.min(Math.min(e,r),o),u=a-n,A,p;return u<1?A=n/(1-u):A=0,u<=0?p=0:a===e?p=(r-o)/u%6:a===r?p=2+(o-e)/u:p=4+(e-r)/u,p/=6,p%=1,[p*360,u*100,A*100]};Ar.hsl.hcg=function(t){let e=t[1]/100,r=t[2]/100,o=r<.5?2*e*r:2*e*(1-r),a=0;return o<1&&(a=(r-.5*o)/(1-o)),[t[0],o*100,a*100]};Ar.hsv.hcg=function(t){let e=t[1]/100,r=t[2]/100,o=e*r,a=0;return o<1&&(a=(r-o)/(1-o)),[t[0],o*100,a*100]};Ar.hcg.rgb=function(t){let e=t[0]/360,r=t[1]/100,o=t[2]/100;if(r===0)return[o*255,o*255,o*255];let a=[0,0,0],n=e%1*6,u=n%1,A=1-u,p=0;switch(Math.floor(n)){case 0:a[0]=1,a[1]=u,a[2]=0;break;case 1:a[0]=A,a[1]=1,a[2]=0;break;case 2:a[0]=0,a[1]=1,a[2]=u;break;case 3:a[0]=0,a[1]=A,a[2]=1;break;case 4:a[0]=u,a[1]=0,a[2]=1;break;default:a[0]=1,a[1]=0,a[2]=A}return p=(1-r)*o,[(r*a[0]+p)*255,(r*a[1]+p)*255,(r*a[2]+p)*255]};Ar.hcg.hsv=function(t){let e=t[1]/100,r=t[2]/100,o=e+r*(1-e),a=0;return o>0&&(a=e/o),[t[0],a*100,o*100]};Ar.hcg.hsl=function(t){let e=t[1]/100,o=t[2]/100*(1-e)+.5*e,a=0;return o>0&&o<.5?a=e/(2*o):o>=.5&&o<1&&(a=e/(2*(1-o))),[t[0],a*100,o*100]};Ar.hcg.hwb=function(t){let e=t[1]/100,r=t[2]/100,o=e+r*(1-e);return[t[0],(o-e)*100,(1-o)*100]};Ar.hwb.hcg=function(t){let e=t[1]/100,o=1-t[2]/100,a=o-e,n=0;return a<1&&(n=(o-a)/(1-a)),[t[0],a*100,n*100]};Ar.apple.rgb=function(t){return[t[0]/65535*255,t[1]/65535*255,t[2]/65535*255]};Ar.rgb.apple=function(t){return[t[0]/255*65535,t[1]/255*65535,t[2]/255*65535]};Ar.gray.rgb=function(t){return[t[0]/100*255,t[0]/100*255,t[0]/100*255]};Ar.gray.hsl=function(t){return[0,0,t[0]]};Ar.gray.hsv=Ar.gray.hsl;Ar.gray.hwb=function(t){return[0,100,t[0]]};Ar.gray.cmyk=function(t){return[0,0,0,t[0]]};Ar.gray.lab=function(t){return[t[0],0,0]};Ar.gray.hex=function(t){let e=Math.round(t[0]/100*255)&255,o=((e<<16)+(e<<8)+e).toString(16).toUpperCase();return"000000".substring(o.length)+o};Ar.rgb.gray=function(t){return[(t[0]+t[1]+t[2])/3/255*100]}});var oX=_((bQt,sX)=>{var SS=AN();function m9e(){let t={},e=Object.keys(SS);for(let r=e.length,o=0;o{var fN=AN(),w9e=oX(),xy={},I9e=Object.keys(fN);function B9e(t){let e=function(...r){let o=r[0];return o==null?o:(o.length>1&&(r=o),t(r))};return"conversion"in t&&(e.conversion=t.conversion),e}function v9e(t){let e=function(...r){let o=r[0];if(o==null)return o;o.length>1&&(r=o);let a=t(r);if(typeof a=="object")for(let n=a.length,u=0;u{xy[t]={},Object.defineProperty(xy[t],"channels",{value:fN[t].channels}),Object.defineProperty(xy[t],"labels",{value:fN[t].labels});let e=w9e(t);Object.keys(e).forEach(o=>{let a=e[o];xy[t][o]=v9e(a),xy[t][o].raw=B9e(a)})});aX.exports=xy});var DI=_((kQt,pX)=>{"use strict";var cX=(t,e)=>(...r)=>`\x1B[${t(...r)+e}m`,uX=(t,e)=>(...r)=>{let o=t(...r);return`\x1B[${38+e};5;${o}m`},AX=(t,e)=>(...r)=>{let o=t(...r);return`\x1B[${38+e};2;${o[0]};${o[1]};${o[2]}m`},PS=t=>t,fX=(t,e,r)=>[t,e,r],ky=(t,e,r)=>{Object.defineProperty(t,e,{get:()=>{let o=r();return Object.defineProperty(t,e,{value:o,enumerable:!0,configurable:!0}),o},enumerable:!0,configurable:!0})},pN,Qy=(t,e,r,o)=>{pN===void 0&&(pN=lX());let a=o?10:0,n={};for(let[u,A]of Object.entries(pN)){let p=u==="ansi16"?"ansi":u;u===e?n[p]=t(r,a):typeof A=="object"&&(n[p]=t(A[e],a))}return n};function D9e(){let t=new Map,e={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};e.color.gray=e.color.blackBright,e.bgColor.bgGray=e.bgColor.bgBlackBright,e.color.grey=e.color.blackBright,e.bgColor.bgGrey=e.bgColor.bgBlackBright;for(let[r,o]of Object.entries(e)){for(let[a,n]of Object.entries(o))e[a]={open:`\x1B[${n[0]}m`,close:`\x1B[${n[1]}m`},o[a]=e[a],t.set(n[0],n[1]);Object.defineProperty(e,r,{value:o,enumerable:!1})}return Object.defineProperty(e,"codes",{value:t,enumerable:!1}),e.color.close="\x1B[39m",e.bgColor.close="\x1B[49m",ky(e.color,"ansi",()=>Qy(cX,"ansi16",PS,!1)),ky(e.color,"ansi256",()=>Qy(uX,"ansi256",PS,!1)),ky(e.color,"ansi16m",()=>Qy(AX,"rgb",fX,!1)),ky(e.bgColor,"ansi",()=>Qy(cX,"ansi16",PS,!0)),ky(e.bgColor,"ansi256",()=>Qy(uX,"ansi256",PS,!0)),ky(e.bgColor,"ansi16m",()=>Qy(AX,"rgb",fX,!0)),e}Object.defineProperty(pX,"exports",{enumerable:!0,get:D9e})});var gX=_((QQt,hX)=>{"use strict";hX.exports=(t,e=process.argv)=>{let r=t.startsWith("-")?"":t.length===1?"-":"--",o=e.indexOf(r+t),a=e.indexOf("--");return o!==-1&&(a===-1||o{"use strict";var S9e=ve("os"),dX=ve("tty"),Ml=gX(),{env:ls}=process,Jp;Ml("no-color")||Ml("no-colors")||Ml("color=false")||Ml("color=never")?Jp=0:(Ml("color")||Ml("colors")||Ml("color=true")||Ml("color=always"))&&(Jp=1);"FORCE_COLOR"in ls&&(ls.FORCE_COLOR==="true"?Jp=1:ls.FORCE_COLOR==="false"?Jp=0:Jp=ls.FORCE_COLOR.length===0?1:Math.min(parseInt(ls.FORCE_COLOR,10),3));function hN(t){return t===0?!1:{level:t,hasBasic:!0,has256:t>=2,has16m:t>=3}}function gN(t,e){if(Jp===0)return 0;if(Ml("color=16m")||Ml("color=full")||Ml("color=truecolor"))return 3;if(Ml("color=256"))return 2;if(t&&!e&&Jp===void 0)return 0;let r=Jp||0;if(ls.TERM==="dumb")return r;if(process.platform==="win32"){let o=S9e.release().split(".");return Number(o[0])>=10&&Number(o[2])>=10586?Number(o[2])>=14931?3:2:1}if("CI"in ls)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI"].some(o=>o in ls)||ls.CI_NAME==="codeship"?1:r;if("TEAMCITY_VERSION"in ls)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(ls.TEAMCITY_VERSION)?1:0;if("GITHUB_ACTIONS"in ls)return 1;if(ls.COLORTERM==="truecolor")return 3;if("TERM_PROGRAM"in ls){let o=parseInt((ls.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(ls.TERM_PROGRAM){case"iTerm.app":return o>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(ls.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(ls.TERM)||"COLORTERM"in ls?1:r}function P9e(t){let e=gN(t,t&&t.isTTY);return hN(e)}mX.exports={supportsColor:P9e,stdout:hN(gN(!0,dX.isatty(1))),stderr:hN(gN(!0,dX.isatty(2)))}});var EX=_((RQt,yX)=>{"use strict";var b9e=(t,e,r)=>{let o=t.indexOf(e);if(o===-1)return t;let a=e.length,n=0,u="";do u+=t.substr(n,o-n)+e+r,n=o+a,o=t.indexOf(e,n);while(o!==-1);return u+=t.substr(n),u},x9e=(t,e,r,o)=>{let a=0,n="";do{let u=t[o-1]==="\r";n+=t.substr(a,(u?o-1:o)-a)+e+(u?`\r +`:` +`)+r,a=o+1,o=t.indexOf(` +`,a)}while(o!==-1);return n+=t.substr(a),n};yX.exports={stringReplaceAll:b9e,stringEncaseCRLFWithFirstIndex:x9e}});var vX=_((TQt,BX)=>{"use strict";var k9e=/(?:\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi,CX=/(?:^|\.)(\w+)(?:\(([^)]*)\))?/g,Q9e=/^(['"])((?:\\.|(?!\1)[^\\])*)\1$/,F9e=/\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.)|([^\\])/gi,R9e=new Map([["n",` +`],["r","\r"],["t"," "],["b","\b"],["f","\f"],["v","\v"],["0","\0"],["\\","\\"],["e","\x1B"],["a","\x07"]]);function IX(t){let e=t[0]==="u",r=t[1]==="{";return e&&!r&&t.length===5||t[0]==="x"&&t.length===3?String.fromCharCode(parseInt(t.slice(1),16)):e&&r?String.fromCodePoint(parseInt(t.slice(2,-1),16)):R9e.get(t)||t}function T9e(t,e){let r=[],o=e.trim().split(/\s*,\s*/g),a;for(let n of o){let u=Number(n);if(!Number.isNaN(u))r.push(u);else if(a=n.match(Q9e))r.push(a[2].replace(F9e,(A,p,h)=>p?IX(p):h));else throw new Error(`Invalid Chalk template style argument: ${n} (in style '${t}')`)}return r}function N9e(t){CX.lastIndex=0;let e=[],r;for(;(r=CX.exec(t))!==null;){let o=r[1];if(r[2]){let a=T9e(o,r[2]);e.push([o].concat(a))}else e.push([o])}return e}function wX(t,e){let r={};for(let a of e)for(let n of a.styles)r[n[0]]=a.inverse?null:n.slice(1);let o=t;for(let[a,n]of Object.entries(r))if(!!Array.isArray(n)){if(!(a in o))throw new Error(`Unknown Chalk style: ${a}`);o=n.length>0?o[a](...n):o[a]}return o}BX.exports=(t,e)=>{let r=[],o=[],a=[];if(e.replace(k9e,(n,u,A,p,h,E)=>{if(u)a.push(IX(u));else if(p){let I=a.join("");a=[],o.push(r.length===0?I:wX(t,r)(I)),r.push({inverse:A,styles:N9e(p)})}else if(h){if(r.length===0)throw new Error("Found extraneous } in Chalk template literal");o.push(wX(t,r)(a.join(""))),a=[],r.pop()}else a.push(E)}),o.push(a.join("")),r.length>0){let n=`Chalk template literal is missing ${r.length} closing bracket${r.length===1?"":"s"} (\`}\`)`;throw new Error(n)}return o.join("")}});var IN=_((NQt,bX)=>{"use strict";var SI=DI(),{stdout:yN,stderr:EN}=dN(),{stringReplaceAll:L9e,stringEncaseCRLFWithFirstIndex:O9e}=EX(),DX=["ansi","ansi","ansi256","ansi16m"],Fy=Object.create(null),M9e=(t,e={})=>{if(e.level>3||e.level<0)throw new Error("The `level` option should be an integer from 0 to 3");let r=yN?yN.level:0;t.level=e.level===void 0?r:e.level},CN=class{constructor(e){return SX(e)}},SX=t=>{let e={};return M9e(e,t),e.template=(...r)=>H9e(e.template,...r),Object.setPrototypeOf(e,bS.prototype),Object.setPrototypeOf(e.template,e),e.template.constructor=()=>{throw new Error("`chalk.constructor()` is deprecated. Use `new chalk.Instance()` instead.")},e.template.Instance=CN,e.template};function bS(t){return SX(t)}for(let[t,e]of Object.entries(SI))Fy[t]={get(){let r=xS(this,wN(e.open,e.close,this._styler),this._isEmpty);return Object.defineProperty(this,t,{value:r}),r}};Fy.visible={get(){let t=xS(this,this._styler,!0);return Object.defineProperty(this,"visible",{value:t}),t}};var PX=["rgb","hex","keyword","hsl","hsv","hwb","ansi","ansi256"];for(let t of PX)Fy[t]={get(){let{level:e}=this;return function(...r){let o=wN(SI.color[DX[e]][t](...r),SI.color.close,this._styler);return xS(this,o,this._isEmpty)}}};for(let t of PX){let e="bg"+t[0].toUpperCase()+t.slice(1);Fy[e]={get(){let{level:r}=this;return function(...o){let a=wN(SI.bgColor[DX[r]][t](...o),SI.bgColor.close,this._styler);return xS(this,a,this._isEmpty)}}}}var U9e=Object.defineProperties(()=>{},{...Fy,level:{enumerable:!0,get(){return this._generator.level},set(t){this._generator.level=t}}}),wN=(t,e,r)=>{let o,a;return r===void 0?(o=t,a=e):(o=r.openAll+t,a=e+r.closeAll),{open:t,close:e,openAll:o,closeAll:a,parent:r}},xS=(t,e,r)=>{let o=(...a)=>_9e(o,a.length===1?""+a[0]:a.join(" "));return o.__proto__=U9e,o._generator=t,o._styler=e,o._isEmpty=r,o},_9e=(t,e)=>{if(t.level<=0||!e)return t._isEmpty?"":e;let r=t._styler;if(r===void 0)return e;let{openAll:o,closeAll:a}=r;if(e.indexOf("\x1B")!==-1)for(;r!==void 0;)e=L9e(e,r.close,r.open),r=r.parent;let n=e.indexOf(` +`);return n!==-1&&(e=O9e(e,a,o,n)),o+e+a},mN,H9e=(t,...e)=>{let[r]=e;if(!Array.isArray(r))return e.join(" ");let o=e.slice(1),a=[r.raw[0]];for(let n=1;n{"use strict";Ul.isInteger=t=>typeof t=="number"?Number.isInteger(t):typeof t=="string"&&t.trim()!==""?Number.isInteger(Number(t)):!1;Ul.find=(t,e)=>t.nodes.find(r=>r.type===e);Ul.exceedsLimit=(t,e,r=1,o)=>o===!1||!Ul.isInteger(t)||!Ul.isInteger(e)?!1:(Number(e)-Number(t))/Number(r)>=o;Ul.escapeNode=(t,e=0,r)=>{let o=t.nodes[e];!o||(r&&o.type===r||o.type==="open"||o.type==="close")&&o.escaped!==!0&&(o.value="\\"+o.value,o.escaped=!0)};Ul.encloseBrace=t=>t.type!=="brace"?!1:t.commas>>0+t.ranges>>0===0?(t.invalid=!0,!0):!1;Ul.isInvalidBrace=t=>t.type!=="brace"?!1:t.invalid===!0||t.dollar?!0:t.commas>>0+t.ranges>>0===0||t.open!==!0||t.close!==!0?(t.invalid=!0,!0):!1;Ul.isOpenOrClose=t=>t.type==="open"||t.type==="close"?!0:t.open===!0||t.close===!0;Ul.reduce=t=>t.reduce((e,r)=>(r.type==="text"&&e.push(r.value),r.type==="range"&&(r.type="text"),e),[]);Ul.flatten=(...t)=>{let e=[],r=o=>{for(let a=0;a{"use strict";var xX=kS();kX.exports=(t,e={})=>{let r=(o,a={})=>{let n=e.escapeInvalid&&xX.isInvalidBrace(a),u=o.invalid===!0&&e.escapeInvalid===!0,A="";if(o.value)return(n||u)&&xX.isOpenOrClose(o)?"\\"+o.value:o.value;if(o.value)return o.value;if(o.nodes)for(let p of o.nodes)A+=r(p);return A};return r(t)}});var FX=_((MQt,QX)=>{"use strict";QX.exports=function(t){return typeof t=="number"?t-t===0:typeof t=="string"&&t.trim()!==""?Number.isFinite?Number.isFinite(+t):isFinite(+t):!1}});var HX=_((UQt,_X)=>{"use strict";var RX=FX(),Ad=(t,e,r)=>{if(RX(t)===!1)throw new TypeError("toRegexRange: expected the first argument to be a number");if(e===void 0||t===e)return String(t);if(RX(e)===!1)throw new TypeError("toRegexRange: expected the second argument to be a number.");let o={relaxZeros:!0,...r};typeof o.strictZeros=="boolean"&&(o.relaxZeros=o.strictZeros===!1);let a=String(o.relaxZeros),n=String(o.shorthand),u=String(o.capture),A=String(o.wrap),p=t+":"+e+"="+a+n+u+A;if(Ad.cache.hasOwnProperty(p))return Ad.cache[p].result;let h=Math.min(t,e),E=Math.max(t,e);if(Math.abs(h-E)===1){let R=t+"|"+e;return o.capture?`(${R})`:o.wrap===!1?R:`(?:${R})`}let I=UX(t)||UX(e),v={min:t,max:e,a:h,b:E},x=[],C=[];if(I&&(v.isPadded=I,v.maxLen=String(v.max).length),h<0){let R=E<0?Math.abs(E):1;C=TX(R,Math.abs(h),v,o),h=v.a=0}return E>=0&&(x=TX(h,E,v,o)),v.negatives=C,v.positives=x,v.result=q9e(C,x,o),o.capture===!0?v.result=`(${v.result})`:o.wrap!==!1&&x.length+C.length>1&&(v.result=`(?:${v.result})`),Ad.cache[p]=v,v.result};function q9e(t,e,r){let o=BN(t,e,"-",!1,r)||[],a=BN(e,t,"",!1,r)||[],n=BN(t,e,"-?",!0,r)||[];return o.concat(n).concat(a).join("|")}function j9e(t,e){let r=1,o=1,a=LX(t,r),n=new Set([e]);for(;t<=a&&a<=e;)n.add(a),r+=1,a=LX(t,r);for(a=OX(e+1,o)-1;t1&&A.count.pop(),A.count.push(E.count[0]),A.string=A.pattern+MX(A.count),u=h+1;continue}r.isPadded&&(I=V9e(h,r,o)),E.string=I+E.pattern+MX(E.count),n.push(E),u=h+1,A=E}return n}function BN(t,e,r,o,a){let n=[];for(let u of t){let{string:A}=u;!o&&!NX(e,"string",A)&&n.push(r+A),o&&NX(e,"string",A)&&n.push(r+A)}return n}function Y9e(t,e){let r=[];for(let o=0;oe?1:e>t?-1:0}function NX(t,e,r){return t.some(o=>o[e]===r)}function LX(t,e){return Number(String(t).slice(0,-e)+"9".repeat(e))}function OX(t,e){return t-t%Math.pow(10,e)}function MX(t){let[e=0,r=""]=t;return r||e>1?`{${e+(r?","+r:"")}}`:""}function K9e(t,e,r){return`[${t}${e-t===1?"":"-"}${e}]`}function UX(t){return/^-?(0+)\d/.test(t)}function V9e(t,e,r){if(!e.isPadded)return t;let o=Math.abs(e.maxLen-String(t).length),a=r.relaxZeros!==!1;switch(o){case 0:return"";case 1:return a?"0?":"0";case 2:return a?"0{0,2}":"00";default:return a?`0{0,${o}}`:`0{${o}}`}}Ad.cache={};Ad.clearCache=()=>Ad.cache={};_X.exports=Ad});var SN=_((_Qt,JX)=>{"use strict";var J9e=ve("util"),GX=HX(),qX=t=>t!==null&&typeof t=="object"&&!Array.isArray(t),z9e=t=>e=>t===!0?Number(e):String(e),vN=t=>typeof t=="number"||typeof t=="string"&&t!=="",bI=t=>Number.isInteger(+t),DN=t=>{let e=`${t}`,r=-1;if(e[0]==="-"&&(e=e.slice(1)),e==="0")return!1;for(;e[++r]==="0";);return r>0},X9e=(t,e,r)=>typeof t=="string"||typeof e=="string"?!0:r.stringify===!0,Z9e=(t,e,r)=>{if(e>0){let o=t[0]==="-"?"-":"";o&&(t=t.slice(1)),t=o+t.padStart(o?e-1:e,"0")}return r===!1?String(t):t},jX=(t,e)=>{let r=t[0]==="-"?"-":"";for(r&&(t=t.slice(1),e--);t.length{t.negatives.sort((u,A)=>uA?1:0),t.positives.sort((u,A)=>uA?1:0);let r=e.capture?"":"?:",o="",a="",n;return t.positives.length&&(o=t.positives.join("|")),t.negatives.length&&(a=`-(${r}${t.negatives.join("|")})`),o&&a?n=`${o}|${a}`:n=o||a,e.wrap?`(${r}${n})`:n},YX=(t,e,r,o)=>{if(r)return GX(t,e,{wrap:!1,...o});let a=String.fromCharCode(t);if(t===e)return a;let n=String.fromCharCode(e);return`[${a}-${n}]`},WX=(t,e,r)=>{if(Array.isArray(t)){let o=r.wrap===!0,a=r.capture?"":"?:";return o?`(${a}${t.join("|")})`:t.join("|")}return GX(t,e,r)},KX=(...t)=>new RangeError("Invalid range arguments: "+J9e.inspect(...t)),VX=(t,e,r)=>{if(r.strictRanges===!0)throw KX([t,e]);return[]},e7e=(t,e)=>{if(e.strictRanges===!0)throw new TypeError(`Expected step "${t}" to be a number`);return[]},t7e=(t,e,r=1,o={})=>{let a=Number(t),n=Number(e);if(!Number.isInteger(a)||!Number.isInteger(n)){if(o.strictRanges===!0)throw KX([t,e]);return[]}a===0&&(a=0),n===0&&(n=0);let u=a>n,A=String(t),p=String(e),h=String(r);r=Math.max(Math.abs(r),1);let E=DN(A)||DN(p)||DN(h),I=E?Math.max(A.length,p.length,h.length):0,v=E===!1&&X9e(t,e,o)===!1,x=o.transform||z9e(v);if(o.toRegex&&r===1)return YX(jX(t,I),jX(e,I),!0,o);let C={negatives:[],positives:[]},R=J=>C[J<0?"negatives":"positives"].push(Math.abs(J)),L=[],U=0;for(;u?a>=n:a<=n;)o.toRegex===!0&&r>1?R(a):L.push(Z9e(x(a,U),I,v)),a=u?a-r:a+r,U++;return o.toRegex===!0?r>1?$9e(C,o):WX(L,null,{wrap:!1,...o}):L},r7e=(t,e,r=1,o={})=>{if(!bI(t)&&t.length>1||!bI(e)&&e.length>1)return VX(t,e,o);let a=o.transform||(v=>String.fromCharCode(v)),n=`${t}`.charCodeAt(0),u=`${e}`.charCodeAt(0),A=n>u,p=Math.min(n,u),h=Math.max(n,u);if(o.toRegex&&r===1)return YX(p,h,!1,o);let E=[],I=0;for(;A?n>=u:n<=u;)E.push(a(n,I)),n=A?n-r:n+r,I++;return o.toRegex===!0?WX(E,null,{wrap:!1,options:o}):E},RS=(t,e,r,o={})=>{if(e==null&&vN(t))return[t];if(!vN(t)||!vN(e))return VX(t,e,o);if(typeof r=="function")return RS(t,e,1,{transform:r});if(qX(r))return RS(t,e,0,r);let a={...o};return a.capture===!0&&(a.wrap=!0),r=r||a.step||1,bI(r)?bI(t)&&bI(e)?t7e(t,e,r,a):r7e(t,e,Math.max(Math.abs(r),1),a):r!=null&&!qX(r)?e7e(r,a):RS(t,e,1,r)};JX.exports=RS});var ZX=_((HQt,XX)=>{"use strict";var n7e=SN(),zX=kS(),i7e=(t,e={})=>{let r=(o,a={})=>{let n=zX.isInvalidBrace(a),u=o.invalid===!0&&e.escapeInvalid===!0,A=n===!0||u===!0,p=e.escapeInvalid===!0?"\\":"",h="";if(o.isOpen===!0||o.isClose===!0)return p+o.value;if(o.type==="open")return A?p+o.value:"(";if(o.type==="close")return A?p+o.value:")";if(o.type==="comma")return o.prev.type==="comma"?"":A?o.value:"|";if(o.value)return o.value;if(o.nodes&&o.ranges>0){let E=zX.reduce(o.nodes),I=n7e(...E,{...e,wrap:!1,toRegex:!0});if(I.length!==0)return E.length>1&&I.length>1?`(${I})`:I}if(o.nodes)for(let E of o.nodes)h+=r(E,o);return h};return r(t)};XX.exports=i7e});var tZ=_((qQt,eZ)=>{"use strict";var s7e=SN(),$X=QS(),Ry=kS(),fd=(t="",e="",r=!1)=>{let o=[];if(t=[].concat(t),e=[].concat(e),!e.length)return t;if(!t.length)return r?Ry.flatten(e).map(a=>`{${a}}`):e;for(let a of t)if(Array.isArray(a))for(let n of a)o.push(fd(n,e,r));else for(let n of e)r===!0&&typeof n=="string"&&(n=`{${n}}`),o.push(Array.isArray(n)?fd(a,n,r):a+n);return Ry.flatten(o)},o7e=(t,e={})=>{let r=e.rangeLimit===void 0?1e3:e.rangeLimit,o=(a,n={})=>{a.queue=[];let u=n,A=n.queue;for(;u.type!=="brace"&&u.type!=="root"&&u.parent;)u=u.parent,A=u.queue;if(a.invalid||a.dollar){A.push(fd(A.pop(),$X(a,e)));return}if(a.type==="brace"&&a.invalid!==!0&&a.nodes.length===2){A.push(fd(A.pop(),["{}"]));return}if(a.nodes&&a.ranges>0){let I=Ry.reduce(a.nodes);if(Ry.exceedsLimit(...I,e.step,r))throw new RangeError("expanded array length exceeds range limit. Use options.rangeLimit to increase or disable the limit.");let v=s7e(...I,e);v.length===0&&(v=$X(a,e)),A.push(fd(A.pop(),v)),a.nodes=[];return}let p=Ry.encloseBrace(a),h=a.queue,E=a;for(;E.type!=="brace"&&E.type!=="root"&&E.parent;)E=E.parent,h=E.queue;for(let I=0;I{"use strict";rZ.exports={MAX_LENGTH:1024*64,CHAR_0:"0",CHAR_9:"9",CHAR_UPPERCASE_A:"A",CHAR_LOWERCASE_A:"a",CHAR_UPPERCASE_Z:"Z",CHAR_LOWERCASE_Z:"z",CHAR_LEFT_PARENTHESES:"(",CHAR_RIGHT_PARENTHESES:")",CHAR_ASTERISK:"*",CHAR_AMPERSAND:"&",CHAR_AT:"@",CHAR_BACKSLASH:"\\",CHAR_BACKTICK:"`",CHAR_CARRIAGE_RETURN:"\r",CHAR_CIRCUMFLEX_ACCENT:"^",CHAR_COLON:":",CHAR_COMMA:",",CHAR_DOLLAR:"$",CHAR_DOT:".",CHAR_DOUBLE_QUOTE:'"',CHAR_EQUAL:"=",CHAR_EXCLAMATION_MARK:"!",CHAR_FORM_FEED:"\f",CHAR_FORWARD_SLASH:"/",CHAR_HASH:"#",CHAR_HYPHEN_MINUS:"-",CHAR_LEFT_ANGLE_BRACKET:"<",CHAR_LEFT_CURLY_BRACE:"{",CHAR_LEFT_SQUARE_BRACKET:"[",CHAR_LINE_FEED:` +`,CHAR_NO_BREAK_SPACE:"\xA0",CHAR_PERCENT:"%",CHAR_PLUS:"+",CHAR_QUESTION_MARK:"?",CHAR_RIGHT_ANGLE_BRACKET:">",CHAR_RIGHT_CURLY_BRACE:"}",CHAR_RIGHT_SQUARE_BRACKET:"]",CHAR_SEMICOLON:";",CHAR_SINGLE_QUOTE:"'",CHAR_SPACE:" ",CHAR_TAB:" ",CHAR_UNDERSCORE:"_",CHAR_VERTICAL_LINE:"|",CHAR_ZERO_WIDTH_NOBREAK_SPACE:"\uFEFF"}});var lZ=_((GQt,aZ)=>{"use strict";var a7e=QS(),{MAX_LENGTH:iZ,CHAR_BACKSLASH:PN,CHAR_BACKTICK:l7e,CHAR_COMMA:c7e,CHAR_DOT:u7e,CHAR_LEFT_PARENTHESES:A7e,CHAR_RIGHT_PARENTHESES:f7e,CHAR_LEFT_CURLY_BRACE:p7e,CHAR_RIGHT_CURLY_BRACE:h7e,CHAR_LEFT_SQUARE_BRACKET:sZ,CHAR_RIGHT_SQUARE_BRACKET:oZ,CHAR_DOUBLE_QUOTE:g7e,CHAR_SINGLE_QUOTE:d7e,CHAR_NO_BREAK_SPACE:m7e,CHAR_ZERO_WIDTH_NOBREAK_SPACE:y7e}=nZ(),E7e=(t,e={})=>{if(typeof t!="string")throw new TypeError("Expected a string");let r=e||{},o=typeof r.maxLength=="number"?Math.min(iZ,r.maxLength):iZ;if(t.length>o)throw new SyntaxError(`Input length (${t.length}), exceeds max characters (${o})`);let a={type:"root",input:t,nodes:[]},n=[a],u=a,A=a,p=0,h=t.length,E=0,I=0,v,x={},C=()=>t[E++],R=L=>{if(L.type==="text"&&A.type==="dot"&&(A.type="text"),A&&A.type==="text"&&L.type==="text"){A.value+=L.value;return}return u.nodes.push(L),L.parent=u,L.prev=A,A=L,L};for(R({type:"bos"});E0){if(u.ranges>0){u.ranges=0;let L=u.nodes.shift();u.nodes=[L,{type:"text",value:a7e(u)}]}R({type:"comma",value:v}),u.commas++;continue}if(v===u7e&&I>0&&u.commas===0){let L=u.nodes;if(I===0||L.length===0){R({type:"text",value:v});continue}if(A.type==="dot"){if(u.range=[],A.value+=v,A.type="range",u.nodes.length!==3&&u.nodes.length!==5){u.invalid=!0,u.ranges=0,A.type="text";continue}u.ranges++,u.args=[];continue}if(A.type==="range"){L.pop();let U=L[L.length-1];U.value+=A.value+v,A=U,u.ranges--;continue}R({type:"dot",value:v});continue}R({type:"text",value:v})}do if(u=n.pop(),u.type!=="root"){u.nodes.forEach(J=>{J.nodes||(J.type==="open"&&(J.isOpen=!0),J.type==="close"&&(J.isClose=!0),J.nodes||(J.type="text"),J.invalid=!0)});let L=n[n.length-1],U=L.nodes.indexOf(u);L.nodes.splice(U,1,...u.nodes)}while(n.length>0);return R({type:"eos"}),a};aZ.exports=E7e});var AZ=_((YQt,uZ)=>{"use strict";var cZ=QS(),C7e=ZX(),w7e=tZ(),I7e=lZ(),rl=(t,e={})=>{let r=[];if(Array.isArray(t))for(let o of t){let a=rl.create(o,e);Array.isArray(a)?r.push(...a):r.push(a)}else r=[].concat(rl.create(t,e));return e&&e.expand===!0&&e.nodupes===!0&&(r=[...new Set(r)]),r};rl.parse=(t,e={})=>I7e(t,e);rl.stringify=(t,e={})=>cZ(typeof t=="string"?rl.parse(t,e):t,e);rl.compile=(t,e={})=>(typeof t=="string"&&(t=rl.parse(t,e)),C7e(t,e));rl.expand=(t,e={})=>{typeof t=="string"&&(t=rl.parse(t,e));let r=w7e(t,e);return e.noempty===!0&&(r=r.filter(Boolean)),e.nodupes===!0&&(r=[...new Set(r)]),r};rl.create=(t,e={})=>t===""||t.length<3?[t]:e.expand!==!0?rl.compile(t,e):rl.expand(t,e);uZ.exports=rl});var xI=_((WQt,dZ)=>{"use strict";var B7e=ve("path"),Ku="\\\\/",fZ=`[^${Ku}]`,vf="\\.",v7e="\\+",D7e="\\?",TS="\\/",S7e="(?=.)",pZ="[^/]",bN=`(?:${TS}|$)`,hZ=`(?:^|${TS})`,xN=`${vf}{1,2}${bN}`,P7e=`(?!${vf})`,b7e=`(?!${hZ}${xN})`,x7e=`(?!${vf}{0,1}${bN})`,k7e=`(?!${xN})`,Q7e=`[^.${TS}]`,F7e=`${pZ}*?`,gZ={DOT_LITERAL:vf,PLUS_LITERAL:v7e,QMARK_LITERAL:D7e,SLASH_LITERAL:TS,ONE_CHAR:S7e,QMARK:pZ,END_ANCHOR:bN,DOTS_SLASH:xN,NO_DOT:P7e,NO_DOTS:b7e,NO_DOT_SLASH:x7e,NO_DOTS_SLASH:k7e,QMARK_NO_DOT:Q7e,STAR:F7e,START_ANCHOR:hZ},R7e={...gZ,SLASH_LITERAL:`[${Ku}]`,QMARK:fZ,STAR:`${fZ}*?`,DOTS_SLASH:`${vf}{1,2}(?:[${Ku}]|$)`,NO_DOT:`(?!${vf})`,NO_DOTS:`(?!(?:^|[${Ku}])${vf}{1,2}(?:[${Ku}]|$))`,NO_DOT_SLASH:`(?!${vf}{0,1}(?:[${Ku}]|$))`,NO_DOTS_SLASH:`(?!${vf}{1,2}(?:[${Ku}]|$))`,QMARK_NO_DOT:`[^.${Ku}]`,START_ANCHOR:`(?:^|[${Ku}])`,END_ANCHOR:`(?:[${Ku}]|$)`},T7e={alnum:"a-zA-Z0-9",alpha:"a-zA-Z",ascii:"\\x00-\\x7F",blank:" \\t",cntrl:"\\x00-\\x1F\\x7F",digit:"0-9",graph:"\\x21-\\x7E",lower:"a-z",print:"\\x20-\\x7E ",punct:"\\-!\"#$%&'()\\*+,./:;<=>?@[\\]^_`{|}~",space:" \\t\\r\\n\\v\\f",upper:"A-Z",word:"A-Za-z0-9_",xdigit:"A-Fa-f0-9"};dZ.exports={MAX_LENGTH:1024*64,POSIX_REGEX_SOURCE:T7e,REGEX_BACKSLASH:/\\(?![*+?^${}(|)[\]])/g,REGEX_NON_SPECIAL_CHARS:/^[^@![\].,$*+?^{}()|\\/]+/,REGEX_SPECIAL_CHARS:/[-*+?.^${}(|)[\]]/,REGEX_SPECIAL_CHARS_BACKREF:/(\\?)((\W)(\3*))/g,REGEX_SPECIAL_CHARS_GLOBAL:/([-*+?.^${}(|)[\]])/g,REGEX_REMOVE_BACKSLASH:/(?:\[.*?[^\\]\]|\\(?=.))/g,REPLACEMENTS:{"***":"*","**/**":"**","**/**/**":"**"},CHAR_0:48,CHAR_9:57,CHAR_UPPERCASE_A:65,CHAR_LOWERCASE_A:97,CHAR_UPPERCASE_Z:90,CHAR_LOWERCASE_Z:122,CHAR_LEFT_PARENTHESES:40,CHAR_RIGHT_PARENTHESES:41,CHAR_ASTERISK:42,CHAR_AMPERSAND:38,CHAR_AT:64,CHAR_BACKWARD_SLASH:92,CHAR_CARRIAGE_RETURN:13,CHAR_CIRCUMFLEX_ACCENT:94,CHAR_COLON:58,CHAR_COMMA:44,CHAR_DOT:46,CHAR_DOUBLE_QUOTE:34,CHAR_EQUAL:61,CHAR_EXCLAMATION_MARK:33,CHAR_FORM_FEED:12,CHAR_FORWARD_SLASH:47,CHAR_GRAVE_ACCENT:96,CHAR_HASH:35,CHAR_HYPHEN_MINUS:45,CHAR_LEFT_ANGLE_BRACKET:60,CHAR_LEFT_CURLY_BRACE:123,CHAR_LEFT_SQUARE_BRACKET:91,CHAR_LINE_FEED:10,CHAR_NO_BREAK_SPACE:160,CHAR_PERCENT:37,CHAR_PLUS:43,CHAR_QUESTION_MARK:63,CHAR_RIGHT_ANGLE_BRACKET:62,CHAR_RIGHT_CURLY_BRACE:125,CHAR_RIGHT_SQUARE_BRACKET:93,CHAR_SEMICOLON:59,CHAR_SINGLE_QUOTE:39,CHAR_SPACE:32,CHAR_TAB:9,CHAR_UNDERSCORE:95,CHAR_VERTICAL_LINE:124,CHAR_ZERO_WIDTH_NOBREAK_SPACE:65279,SEP:B7e.sep,extglobChars(t){return{"!":{type:"negate",open:"(?:(?!(?:",close:`))${t.STAR})`},"?":{type:"qmark",open:"(?:",close:")?"},"+":{type:"plus",open:"(?:",close:")+"},"*":{type:"star",open:"(?:",close:")*"},"@":{type:"at",open:"(?:",close:")"}}},globChars(t){return t===!0?R7e:gZ}}});var kI=_(Sa=>{"use strict";var N7e=ve("path"),L7e=process.platform==="win32",{REGEX_BACKSLASH:O7e,REGEX_REMOVE_BACKSLASH:M7e,REGEX_SPECIAL_CHARS:U7e,REGEX_SPECIAL_CHARS_GLOBAL:_7e}=xI();Sa.isObject=t=>t!==null&&typeof t=="object"&&!Array.isArray(t);Sa.hasRegexChars=t=>U7e.test(t);Sa.isRegexChar=t=>t.length===1&&Sa.hasRegexChars(t);Sa.escapeRegex=t=>t.replace(_7e,"\\$1");Sa.toPosixSlashes=t=>t.replace(O7e,"/");Sa.removeBackslashes=t=>t.replace(M7e,e=>e==="\\"?"":e);Sa.supportsLookbehinds=()=>{let t=process.version.slice(1).split(".").map(Number);return t.length===3&&t[0]>=9||t[0]===8&&t[1]>=10};Sa.isWindows=t=>t&&typeof t.windows=="boolean"?t.windows:L7e===!0||N7e.sep==="\\";Sa.escapeLast=(t,e,r)=>{let o=t.lastIndexOf(e,r);return o===-1?t:t[o-1]==="\\"?Sa.escapeLast(t,e,o-1):`${t.slice(0,o)}\\${t.slice(o)}`};Sa.removePrefix=(t,e={})=>{let r=t;return r.startsWith("./")&&(r=r.slice(2),e.prefix="./"),r};Sa.wrapOutput=(t,e={},r={})=>{let o=r.contains?"":"^",a=r.contains?"":"$",n=`${o}(?:${t})${a}`;return e.negated===!0&&(n=`(?:^(?!${n}).*$)`),n}});var vZ=_((VQt,BZ)=>{"use strict";var mZ=kI(),{CHAR_ASTERISK:kN,CHAR_AT:H7e,CHAR_BACKWARD_SLASH:QI,CHAR_COMMA:q7e,CHAR_DOT:QN,CHAR_EXCLAMATION_MARK:FN,CHAR_FORWARD_SLASH:IZ,CHAR_LEFT_CURLY_BRACE:RN,CHAR_LEFT_PARENTHESES:TN,CHAR_LEFT_SQUARE_BRACKET:j7e,CHAR_PLUS:G7e,CHAR_QUESTION_MARK:yZ,CHAR_RIGHT_CURLY_BRACE:Y7e,CHAR_RIGHT_PARENTHESES:EZ,CHAR_RIGHT_SQUARE_BRACKET:W7e}=xI(),CZ=t=>t===IZ||t===QI,wZ=t=>{t.isPrefix!==!0&&(t.depth=t.isGlobstar?1/0:1)},K7e=(t,e)=>{let r=e||{},o=t.length-1,a=r.parts===!0||r.scanToEnd===!0,n=[],u=[],A=[],p=t,h=-1,E=0,I=0,v=!1,x=!1,C=!1,R=!1,L=!1,U=!1,J=!1,te=!1,ae=!1,fe=!1,ce=0,me,he,Be={value:"",depth:0,isGlob:!1},we=()=>h>=o,g=()=>p.charCodeAt(h+1),Ee=()=>(me=he,p.charCodeAt(++h));for(;h0&&(le=p.slice(0,E),p=p.slice(E),I-=E),Se&&C===!0&&I>0?(Se=p.slice(0,I),ne=p.slice(I)):C===!0?(Se="",ne=p):Se=p,Se&&Se!==""&&Se!=="/"&&Se!==p&&CZ(Se.charCodeAt(Se.length-1))&&(Se=Se.slice(0,-1)),r.unescape===!0&&(ne&&(ne=mZ.removeBackslashes(ne)),Se&&J===!0&&(Se=mZ.removeBackslashes(Se)));let ee={prefix:le,input:t,start:E,base:Se,glob:ne,isBrace:v,isBracket:x,isGlob:C,isExtglob:R,isGlobstar:L,negated:te,negatedExtglob:ae};if(r.tokens===!0&&(ee.maxDepth=0,CZ(he)||u.push(Be),ee.tokens=u),r.parts===!0||r.tokens===!0){let Ie;for(let Fe=0;Fe{"use strict";var NS=xI(),nl=kI(),{MAX_LENGTH:LS,POSIX_REGEX_SOURCE:V7e,REGEX_NON_SPECIAL_CHARS:J7e,REGEX_SPECIAL_CHARS_BACKREF:z7e,REPLACEMENTS:DZ}=NS,X7e=(t,e)=>{if(typeof e.expandRange=="function")return e.expandRange(...t,e);t.sort();let r=`[${t.join("-")}]`;try{new RegExp(r)}catch{return t.map(a=>nl.escapeRegex(a)).join("..")}return r},Ty=(t,e)=>`Missing ${t}: "${e}" - use "\\\\${e}" to match literal characters`,NN=(t,e)=>{if(typeof t!="string")throw new TypeError("Expected a string");t=DZ[t]||t;let r={...e},o=typeof r.maxLength=="number"?Math.min(LS,r.maxLength):LS,a=t.length;if(a>o)throw new SyntaxError(`Input length: ${a}, exceeds maximum allowed length: ${o}`);let n={type:"bos",value:"",output:r.prepend||""},u=[n],A=r.capture?"":"?:",p=nl.isWindows(e),h=NS.globChars(p),E=NS.extglobChars(h),{DOT_LITERAL:I,PLUS_LITERAL:v,SLASH_LITERAL:x,ONE_CHAR:C,DOTS_SLASH:R,NO_DOT:L,NO_DOT_SLASH:U,NO_DOTS_SLASH:J,QMARK:te,QMARK_NO_DOT:ae,STAR:fe,START_ANCHOR:ce}=h,me=b=>`(${A}(?:(?!${ce}${b.dot?R:I}).)*?)`,he=r.dot?"":L,Be=r.dot?te:ae,we=r.bash===!0?me(r):fe;r.capture&&(we=`(${we})`),typeof r.noext=="boolean"&&(r.noextglob=r.noext);let g={input:t,index:-1,start:0,dot:r.dot===!0,consumed:"",output:"",prefix:"",backtrack:!1,negated:!1,brackets:0,braces:0,parens:0,quotes:0,globstar:!1,tokens:u};t=nl.removePrefix(t,g),a=t.length;let Ee=[],Se=[],le=[],ne=n,ee,Ie=()=>g.index===a-1,Fe=g.peek=(b=1)=>t[g.index+b],At=g.advance=()=>t[++g.index]||"",H=()=>t.slice(g.index+1),at=(b="",w=0)=>{g.consumed+=b,g.index+=w},Re=b=>{g.output+=b.output!=null?b.output:b.value,at(b.value)},ke=()=>{let b=1;for(;Fe()==="!"&&(Fe(2)!=="("||Fe(3)==="?");)At(),g.start++,b++;return b%2===0?!1:(g.negated=!0,g.start++,!0)},xe=b=>{g[b]++,le.push(b)},He=b=>{g[b]--,le.pop()},Te=b=>{if(ne.type==="globstar"){let w=g.braces>0&&(b.type==="comma"||b.type==="brace"),P=b.extglob===!0||Ee.length&&(b.type==="pipe"||b.type==="paren");b.type!=="slash"&&b.type!=="paren"&&!w&&!P&&(g.output=g.output.slice(0,-ne.output.length),ne.type="star",ne.value="*",ne.output=we,g.output+=ne.output)}if(Ee.length&&b.type!=="paren"&&(Ee[Ee.length-1].inner+=b.value),(b.value||b.output)&&Re(b),ne&&ne.type==="text"&&b.type==="text"){ne.value+=b.value,ne.output=(ne.output||"")+b.value;return}b.prev=ne,u.push(b),ne=b},Je=(b,w)=>{let P={...E[w],conditions:1,inner:""};P.prev=ne,P.parens=g.parens,P.output=g.output;let y=(r.capture?"(":"")+P.open;xe("parens"),Te({type:b,value:w,output:g.output?"":C}),Te({type:"paren",extglob:!0,value:At(),output:y}),Ee.push(P)},qe=b=>{let w=b.close+(r.capture?")":""),P;if(b.type==="negate"){let y=we;if(b.inner&&b.inner.length>1&&b.inner.includes("/")&&(y=me(r)),(y!==we||Ie()||/^\)+$/.test(H()))&&(w=b.close=`)$))${y}`),b.inner.includes("*")&&(P=H())&&/^\.[^\\/.]+$/.test(P)){let F=NN(P,{...e,fastpaths:!1}).output;w=b.close=`)${F})${y})`}b.prev.type==="bos"&&(g.negatedExtglob=!0)}Te({type:"paren",extglob:!0,value:ee,output:w}),He("parens")};if(r.fastpaths!==!1&&!/(^[*!]|[/()[\]{}"])/.test(t)){let b=!1,w=t.replace(z7e,(P,y,F,z,X,Z)=>z==="\\"?(b=!0,P):z==="?"?y?y+z+(X?te.repeat(X.length):""):Z===0?Be+(X?te.repeat(X.length):""):te.repeat(F.length):z==="."?I.repeat(F.length):z==="*"?y?y+z+(X?we:""):we:y?P:`\\${P}`);return b===!0&&(r.unescape===!0?w=w.replace(/\\/g,""):w=w.replace(/\\+/g,P=>P.length%2===0?"\\\\":P?"\\":"")),w===t&&r.contains===!0?(g.output=t,g):(g.output=nl.wrapOutput(w,g,e),g)}for(;!Ie();){if(ee=At(),ee==="\0")continue;if(ee==="\\"){let P=Fe();if(P==="/"&&r.bash!==!0||P==="."||P===";")continue;if(!P){ee+="\\",Te({type:"text",value:ee});continue}let y=/^\\+/.exec(H()),F=0;if(y&&y[0].length>2&&(F=y[0].length,g.index+=F,F%2!==0&&(ee+="\\")),r.unescape===!0?ee=At():ee+=At(),g.brackets===0){Te({type:"text",value:ee});continue}}if(g.brackets>0&&(ee!=="]"||ne.value==="["||ne.value==="[^")){if(r.posix!==!1&&ee===":"){let P=ne.value.slice(1);if(P.includes("[")&&(ne.posix=!0,P.includes(":"))){let y=ne.value.lastIndexOf("["),F=ne.value.slice(0,y),z=ne.value.slice(y+2),X=V7e[z];if(X){ne.value=F+X,g.backtrack=!0,At(),!n.output&&u.indexOf(ne)===1&&(n.output=C);continue}}}(ee==="["&&Fe()!==":"||ee==="-"&&Fe()==="]")&&(ee=`\\${ee}`),ee==="]"&&(ne.value==="["||ne.value==="[^")&&(ee=`\\${ee}`),r.posix===!0&&ee==="!"&&ne.value==="["&&(ee="^"),ne.value+=ee,Re({value:ee});continue}if(g.quotes===1&&ee!=='"'){ee=nl.escapeRegex(ee),ne.value+=ee,Re({value:ee});continue}if(ee==='"'){g.quotes=g.quotes===1?0:1,r.keepQuotes===!0&&Te({type:"text",value:ee});continue}if(ee==="("){xe("parens"),Te({type:"paren",value:ee});continue}if(ee===")"){if(g.parens===0&&r.strictBrackets===!0)throw new SyntaxError(Ty("opening","("));let P=Ee[Ee.length-1];if(P&&g.parens===P.parens+1){qe(Ee.pop());continue}Te({type:"paren",value:ee,output:g.parens?")":"\\)"}),He("parens");continue}if(ee==="["){if(r.nobracket===!0||!H().includes("]")){if(r.nobracket!==!0&&r.strictBrackets===!0)throw new SyntaxError(Ty("closing","]"));ee=`\\${ee}`}else xe("brackets");Te({type:"bracket",value:ee});continue}if(ee==="]"){if(r.nobracket===!0||ne&&ne.type==="bracket"&&ne.value.length===1){Te({type:"text",value:ee,output:`\\${ee}`});continue}if(g.brackets===0){if(r.strictBrackets===!0)throw new SyntaxError(Ty("opening","["));Te({type:"text",value:ee,output:`\\${ee}`});continue}He("brackets");let P=ne.value.slice(1);if(ne.posix!==!0&&P[0]==="^"&&!P.includes("/")&&(ee=`/${ee}`),ne.value+=ee,Re({value:ee}),r.literalBrackets===!1||nl.hasRegexChars(P))continue;let y=nl.escapeRegex(ne.value);if(g.output=g.output.slice(0,-ne.value.length),r.literalBrackets===!0){g.output+=y,ne.value=y;continue}ne.value=`(${A}${y}|${ne.value})`,g.output+=ne.value;continue}if(ee==="{"&&r.nobrace!==!0){xe("braces");let P={type:"brace",value:ee,output:"(",outputIndex:g.output.length,tokensIndex:g.tokens.length};Se.push(P),Te(P);continue}if(ee==="}"){let P=Se[Se.length-1];if(r.nobrace===!0||!P){Te({type:"text",value:ee,output:ee});continue}let y=")";if(P.dots===!0){let F=u.slice(),z=[];for(let X=F.length-1;X>=0&&(u.pop(),F[X].type!=="brace");X--)F[X].type!=="dots"&&z.unshift(F[X].value);y=X7e(z,r),g.backtrack=!0}if(P.comma!==!0&&P.dots!==!0){let F=g.output.slice(0,P.outputIndex),z=g.tokens.slice(P.tokensIndex);P.value=P.output="\\{",ee=y="\\}",g.output=F;for(let X of z)g.output+=X.output||X.value}Te({type:"brace",value:ee,output:y}),He("braces"),Se.pop();continue}if(ee==="|"){Ee.length>0&&Ee[Ee.length-1].conditions++,Te({type:"text",value:ee});continue}if(ee===","){let P=ee,y=Se[Se.length-1];y&&le[le.length-1]==="braces"&&(y.comma=!0,P="|"),Te({type:"comma",value:ee,output:P});continue}if(ee==="/"){if(ne.type==="dot"&&g.index===g.start+1){g.start=g.index+1,g.consumed="",g.output="",u.pop(),ne=n;continue}Te({type:"slash",value:ee,output:x});continue}if(ee==="."){if(g.braces>0&&ne.type==="dot"){ne.value==="."&&(ne.output=I);let P=Se[Se.length-1];ne.type="dots",ne.output+=ee,ne.value+=ee,P.dots=!0;continue}if(g.braces+g.parens===0&&ne.type!=="bos"&&ne.type!=="slash"){Te({type:"text",value:ee,output:I});continue}Te({type:"dot",value:ee,output:I});continue}if(ee==="?"){if(!(ne&&ne.value==="(")&&r.noextglob!==!0&&Fe()==="("&&Fe(2)!=="?"){Je("qmark",ee);continue}if(ne&&ne.type==="paren"){let y=Fe(),F=ee;if(y==="<"&&!nl.supportsLookbehinds())throw new Error("Node.js v10 or higher is required for regex lookbehinds");(ne.value==="("&&!/[!=<:]/.test(y)||y==="<"&&!/<([!=]|\w+>)/.test(H()))&&(F=`\\${ee}`),Te({type:"text",value:ee,output:F});continue}if(r.dot!==!0&&(ne.type==="slash"||ne.type==="bos")){Te({type:"qmark",value:ee,output:ae});continue}Te({type:"qmark",value:ee,output:te});continue}if(ee==="!"){if(r.noextglob!==!0&&Fe()==="("&&(Fe(2)!=="?"||!/[!=<:]/.test(Fe(3)))){Je("negate",ee);continue}if(r.nonegate!==!0&&g.index===0){ke();continue}}if(ee==="+"){if(r.noextglob!==!0&&Fe()==="("&&Fe(2)!=="?"){Je("plus",ee);continue}if(ne&&ne.value==="("||r.regex===!1){Te({type:"plus",value:ee,output:v});continue}if(ne&&(ne.type==="bracket"||ne.type==="paren"||ne.type==="brace")||g.parens>0){Te({type:"plus",value:ee});continue}Te({type:"plus",value:v});continue}if(ee==="@"){if(r.noextglob!==!0&&Fe()==="("&&Fe(2)!=="?"){Te({type:"at",extglob:!0,value:ee,output:""});continue}Te({type:"text",value:ee});continue}if(ee!=="*"){(ee==="$"||ee==="^")&&(ee=`\\${ee}`);let P=J7e.exec(H());P&&(ee+=P[0],g.index+=P[0].length),Te({type:"text",value:ee});continue}if(ne&&(ne.type==="globstar"||ne.star===!0)){ne.type="star",ne.star=!0,ne.value+=ee,ne.output=we,g.backtrack=!0,g.globstar=!0,at(ee);continue}let b=H();if(r.noextglob!==!0&&/^\([^?]/.test(b)){Je("star",ee);continue}if(ne.type==="star"){if(r.noglobstar===!0){at(ee);continue}let P=ne.prev,y=P.prev,F=P.type==="slash"||P.type==="bos",z=y&&(y.type==="star"||y.type==="globstar");if(r.bash===!0&&(!F||b[0]&&b[0]!=="/")){Te({type:"star",value:ee,output:""});continue}let X=g.braces>0&&(P.type==="comma"||P.type==="brace"),Z=Ee.length&&(P.type==="pipe"||P.type==="paren");if(!F&&P.type!=="paren"&&!X&&!Z){Te({type:"star",value:ee,output:""});continue}for(;b.slice(0,3)==="/**";){let ie=t[g.index+4];if(ie&&ie!=="/")break;b=b.slice(3),at("/**",3)}if(P.type==="bos"&&Ie()){ne.type="globstar",ne.value+=ee,ne.output=me(r),g.output=ne.output,g.globstar=!0,at(ee);continue}if(P.type==="slash"&&P.prev.type!=="bos"&&!z&&Ie()){g.output=g.output.slice(0,-(P.output+ne.output).length),P.output=`(?:${P.output}`,ne.type="globstar",ne.output=me(r)+(r.strictSlashes?")":"|$)"),ne.value+=ee,g.globstar=!0,g.output+=P.output+ne.output,at(ee);continue}if(P.type==="slash"&&P.prev.type!=="bos"&&b[0]==="/"){let ie=b[1]!==void 0?"|$":"";g.output=g.output.slice(0,-(P.output+ne.output).length),P.output=`(?:${P.output}`,ne.type="globstar",ne.output=`${me(r)}${x}|${x}${ie})`,ne.value+=ee,g.output+=P.output+ne.output,g.globstar=!0,at(ee+At()),Te({type:"slash",value:"/",output:""});continue}if(P.type==="bos"&&b[0]==="/"){ne.type="globstar",ne.value+=ee,ne.output=`(?:^|${x}|${me(r)}${x})`,g.output=ne.output,g.globstar=!0,at(ee+At()),Te({type:"slash",value:"/",output:""});continue}g.output=g.output.slice(0,-ne.output.length),ne.type="globstar",ne.output=me(r),ne.value+=ee,g.output+=ne.output,g.globstar=!0,at(ee);continue}let w={type:"star",value:ee,output:we};if(r.bash===!0){w.output=".*?",(ne.type==="bos"||ne.type==="slash")&&(w.output=he+w.output),Te(w);continue}if(ne&&(ne.type==="bracket"||ne.type==="paren")&&r.regex===!0){w.output=ee,Te(w);continue}(g.index===g.start||ne.type==="slash"||ne.type==="dot")&&(ne.type==="dot"?(g.output+=U,ne.output+=U):r.dot===!0?(g.output+=J,ne.output+=J):(g.output+=he,ne.output+=he),Fe()!=="*"&&(g.output+=C,ne.output+=C)),Te(w)}for(;g.brackets>0;){if(r.strictBrackets===!0)throw new SyntaxError(Ty("closing","]"));g.output=nl.escapeLast(g.output,"["),He("brackets")}for(;g.parens>0;){if(r.strictBrackets===!0)throw new SyntaxError(Ty("closing",")"));g.output=nl.escapeLast(g.output,"("),He("parens")}for(;g.braces>0;){if(r.strictBrackets===!0)throw new SyntaxError(Ty("closing","}"));g.output=nl.escapeLast(g.output,"{"),He("braces")}if(r.strictSlashes!==!0&&(ne.type==="star"||ne.type==="bracket")&&Te({type:"maybe_slash",value:"",output:`${x}?`}),g.backtrack===!0){g.output="";for(let b of g.tokens)g.output+=b.output!=null?b.output:b.value,b.suffix&&(g.output+=b.suffix)}return g};NN.fastpaths=(t,e)=>{let r={...e},o=typeof r.maxLength=="number"?Math.min(LS,r.maxLength):LS,a=t.length;if(a>o)throw new SyntaxError(`Input length: ${a}, exceeds maximum allowed length: ${o}`);t=DZ[t]||t;let n=nl.isWindows(e),{DOT_LITERAL:u,SLASH_LITERAL:A,ONE_CHAR:p,DOTS_SLASH:h,NO_DOT:E,NO_DOTS:I,NO_DOTS_SLASH:v,STAR:x,START_ANCHOR:C}=NS.globChars(n),R=r.dot?I:E,L=r.dot?v:E,U=r.capture?"":"?:",J={negated:!1,prefix:""},te=r.bash===!0?".*?":x;r.capture&&(te=`(${te})`);let ae=he=>he.noglobstar===!0?te:`(${U}(?:(?!${C}${he.dot?h:u}).)*?)`,fe=he=>{switch(he){case"*":return`${R}${p}${te}`;case".*":return`${u}${p}${te}`;case"*.*":return`${R}${te}${u}${p}${te}`;case"*/*":return`${R}${te}${A}${p}${L}${te}`;case"**":return R+ae(r);case"**/*":return`(?:${R}${ae(r)}${A})?${L}${p}${te}`;case"**/*.*":return`(?:${R}${ae(r)}${A})?${L}${te}${u}${p}${te}`;case"**/.*":return`(?:${R}${ae(r)}${A})?${u}${p}${te}`;default:{let Be=/^(.*?)\.(\w+)$/.exec(he);if(!Be)return;let we=fe(Be[1]);return we?we+u+Be[2]:void 0}}},ce=nl.removePrefix(t,J),me=fe(ce);return me&&r.strictSlashes!==!0&&(me+=`${A}?`),me};SZ.exports=NN});var xZ=_((zQt,bZ)=>{"use strict";var Z7e=ve("path"),$7e=vZ(),LN=PZ(),ON=kI(),eYe=xI(),tYe=t=>t&&typeof t=="object"&&!Array.isArray(t),Mi=(t,e,r=!1)=>{if(Array.isArray(t)){let E=t.map(v=>Mi(v,e,r));return v=>{for(let x of E){let C=x(v);if(C)return C}return!1}}let o=tYe(t)&&t.tokens&&t.input;if(t===""||typeof t!="string"&&!o)throw new TypeError("Expected pattern to be a non-empty string");let a=e||{},n=ON.isWindows(e),u=o?Mi.compileRe(t,e):Mi.makeRe(t,e,!1,!0),A=u.state;delete u.state;let p=()=>!1;if(a.ignore){let E={...e,ignore:null,onMatch:null,onResult:null};p=Mi(a.ignore,E,r)}let h=(E,I=!1)=>{let{isMatch:v,match:x,output:C}=Mi.test(E,u,e,{glob:t,posix:n}),R={glob:t,state:A,regex:u,posix:n,input:E,output:C,match:x,isMatch:v};return typeof a.onResult=="function"&&a.onResult(R),v===!1?(R.isMatch=!1,I?R:!1):p(E)?(typeof a.onIgnore=="function"&&a.onIgnore(R),R.isMatch=!1,I?R:!1):(typeof a.onMatch=="function"&&a.onMatch(R),I?R:!0)};return r&&(h.state=A),h};Mi.test=(t,e,r,{glob:o,posix:a}={})=>{if(typeof t!="string")throw new TypeError("Expected input to be a string");if(t==="")return{isMatch:!1,output:""};let n=r||{},u=n.format||(a?ON.toPosixSlashes:null),A=t===o,p=A&&u?u(t):t;return A===!1&&(p=u?u(t):t,A=p===o),(A===!1||n.capture===!0)&&(n.matchBase===!0||n.basename===!0?A=Mi.matchBase(t,e,r,a):A=e.exec(p)),{isMatch:Boolean(A),match:A,output:p}};Mi.matchBase=(t,e,r,o=ON.isWindows(r))=>(e instanceof RegExp?e:Mi.makeRe(e,r)).test(Z7e.basename(t));Mi.isMatch=(t,e,r)=>Mi(e,r)(t);Mi.parse=(t,e)=>Array.isArray(t)?t.map(r=>Mi.parse(r,e)):LN(t,{...e,fastpaths:!1});Mi.scan=(t,e)=>$7e(t,e);Mi.compileRe=(t,e,r=!1,o=!1)=>{if(r===!0)return t.output;let a=e||{},n=a.contains?"":"^",u=a.contains?"":"$",A=`${n}(?:${t.output})${u}`;t&&t.negated===!0&&(A=`^(?!${A}).*$`);let p=Mi.toRegex(A,e);return o===!0&&(p.state=t),p};Mi.makeRe=(t,e={},r=!1,o=!1)=>{if(!t||typeof t!="string")throw new TypeError("Expected a non-empty string");let a={negated:!1,fastpaths:!0};return e.fastpaths!==!1&&(t[0]==="."||t[0]==="*")&&(a.output=LN.fastpaths(t,e)),a.output||(a=LN(t,e)),Mi.compileRe(a,e,r,o)};Mi.toRegex=(t,e)=>{try{let r=e||{};return new RegExp(t,r.flags||(r.nocase?"i":""))}catch(r){if(e&&e.debug===!0)throw r;return/$^/}};Mi.constants=eYe;bZ.exports=Mi});var QZ=_((XQt,kZ)=>{"use strict";kZ.exports=xZ()});var Zo=_((ZQt,NZ)=>{"use strict";var RZ=ve("util"),TZ=AZ(),Vu=QZ(),MN=kI(),FZ=t=>t===""||t==="./",yi=(t,e,r)=>{e=[].concat(e),t=[].concat(t);let o=new Set,a=new Set,n=new Set,u=0,A=E=>{n.add(E.output),r&&r.onResult&&r.onResult(E)};for(let E=0;E!o.has(E));if(r&&h.length===0){if(r.failglob===!0)throw new Error(`No matches found for "${e.join(", ")}"`);if(r.nonull===!0||r.nullglob===!0)return r.unescape?e.map(E=>E.replace(/\\/g,"")):e}return h};yi.match=yi;yi.matcher=(t,e)=>Vu(t,e);yi.isMatch=(t,e,r)=>Vu(e,r)(t);yi.any=yi.isMatch;yi.not=(t,e,r={})=>{e=[].concat(e).map(String);let o=new Set,a=[],n=A=>{r.onResult&&r.onResult(A),a.push(A.output)},u=new Set(yi(t,e,{...r,onResult:n}));for(let A of a)u.has(A)||o.add(A);return[...o]};yi.contains=(t,e,r)=>{if(typeof t!="string")throw new TypeError(`Expected a string: "${RZ.inspect(t)}"`);if(Array.isArray(e))return e.some(o=>yi.contains(t,o,r));if(typeof e=="string"){if(FZ(t)||FZ(e))return!1;if(t.includes(e)||t.startsWith("./")&&t.slice(2).includes(e))return!0}return yi.isMatch(t,e,{...r,contains:!0})};yi.matchKeys=(t,e,r)=>{if(!MN.isObject(t))throw new TypeError("Expected the first argument to be an object");let o=yi(Object.keys(t),e,r),a={};for(let n of o)a[n]=t[n];return a};yi.some=(t,e,r)=>{let o=[].concat(t);for(let a of[].concat(e)){let n=Vu(String(a),r);if(o.some(u=>n(u)))return!0}return!1};yi.every=(t,e,r)=>{let o=[].concat(t);for(let a of[].concat(e)){let n=Vu(String(a),r);if(!o.every(u=>n(u)))return!1}return!0};yi.all=(t,e,r)=>{if(typeof t!="string")throw new TypeError(`Expected a string: "${RZ.inspect(t)}"`);return[].concat(e).every(o=>Vu(o,r)(t))};yi.capture=(t,e,r)=>{let o=MN.isWindows(r),n=Vu.makeRe(String(t),{...r,capture:!0}).exec(o?MN.toPosixSlashes(e):e);if(n)return n.slice(1).map(u=>u===void 0?"":u)};yi.makeRe=(...t)=>Vu.makeRe(...t);yi.scan=(...t)=>Vu.scan(...t);yi.parse=(t,e)=>{let r=[];for(let o of[].concat(t||[]))for(let a of TZ(String(o),e))r.push(Vu.parse(a,e));return r};yi.braces=(t,e)=>{if(typeof t!="string")throw new TypeError("Expected a string");return e&&e.nobrace===!0||!/\{.*\}/.test(t)?[t]:TZ(t,e)};yi.braceExpand=(t,e)=>{if(typeof t!="string")throw new TypeError("Expected a string");return yi.braces(t,{...e,expand:!0})};NZ.exports=yi});var OZ=_(($Qt,LZ)=>{"use strict";LZ.exports=({onlyFirst:t=!1}={})=>{let e=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(e,t?void 0:"g")}});var OS=_((eFt,MZ)=>{"use strict";var rYe=OZ();MZ.exports=t=>typeof t=="string"?t.replace(rYe(),""):t});var _Z=_((tFt,UZ)=>{function nYe(){this.__data__=[],this.size=0}UZ.exports=nYe});var Ny=_((rFt,HZ)=>{function iYe(t,e){return t===e||t!==t&&e!==e}HZ.exports=iYe});var FI=_((nFt,qZ)=>{var sYe=Ny();function oYe(t,e){for(var r=t.length;r--;)if(sYe(t[r][0],e))return r;return-1}qZ.exports=oYe});var GZ=_((iFt,jZ)=>{var aYe=FI(),lYe=Array.prototype,cYe=lYe.splice;function uYe(t){var e=this.__data__,r=aYe(e,t);if(r<0)return!1;var o=e.length-1;return r==o?e.pop():cYe.call(e,r,1),--this.size,!0}jZ.exports=uYe});var WZ=_((sFt,YZ)=>{var AYe=FI();function fYe(t){var e=this.__data__,r=AYe(e,t);return r<0?void 0:e[r][1]}YZ.exports=fYe});var VZ=_((oFt,KZ)=>{var pYe=FI();function hYe(t){return pYe(this.__data__,t)>-1}KZ.exports=hYe});var zZ=_((aFt,JZ)=>{var gYe=FI();function dYe(t,e){var r=this.__data__,o=gYe(r,t);return o<0?(++this.size,r.push([t,e])):r[o][1]=e,this}JZ.exports=dYe});var RI=_((lFt,XZ)=>{var mYe=_Z(),yYe=GZ(),EYe=WZ(),CYe=VZ(),wYe=zZ();function Ly(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e{var IYe=RI();function BYe(){this.__data__=new IYe,this.size=0}ZZ.exports=BYe});var t$=_((uFt,e$)=>{function vYe(t){var e=this.__data__,r=e.delete(t);return this.size=e.size,r}e$.exports=vYe});var n$=_((AFt,r$)=>{function DYe(t){return this.__data__.get(t)}r$.exports=DYe});var s$=_((fFt,i$)=>{function SYe(t){return this.__data__.has(t)}i$.exports=SYe});var UN=_((pFt,o$)=>{var PYe=typeof global=="object"&&global&&global.Object===Object&&global;o$.exports=PYe});var _l=_((hFt,a$)=>{var bYe=UN(),xYe=typeof self=="object"&&self&&self.Object===Object&&self,kYe=bYe||xYe||Function("return this")();a$.exports=kYe});var pd=_((gFt,l$)=>{var QYe=_l(),FYe=QYe.Symbol;l$.exports=FYe});var f$=_((dFt,A$)=>{var c$=pd(),u$=Object.prototype,RYe=u$.hasOwnProperty,TYe=u$.toString,TI=c$?c$.toStringTag:void 0;function NYe(t){var e=RYe.call(t,TI),r=t[TI];try{t[TI]=void 0;var o=!0}catch{}var a=TYe.call(t);return o&&(e?t[TI]=r:delete t[TI]),a}A$.exports=NYe});var h$=_((mFt,p$)=>{var LYe=Object.prototype,OYe=LYe.toString;function MYe(t){return OYe.call(t)}p$.exports=MYe});var hd=_((yFt,m$)=>{var g$=pd(),UYe=f$(),_Ye=h$(),HYe="[object Null]",qYe="[object Undefined]",d$=g$?g$.toStringTag:void 0;function jYe(t){return t==null?t===void 0?qYe:HYe:d$&&d$ in Object(t)?UYe(t):_Ye(t)}m$.exports=jYe});var il=_((EFt,y$)=>{function GYe(t){var e=typeof t;return t!=null&&(e=="object"||e=="function")}y$.exports=GYe});var MS=_((CFt,E$)=>{var YYe=hd(),WYe=il(),KYe="[object AsyncFunction]",VYe="[object Function]",JYe="[object GeneratorFunction]",zYe="[object Proxy]";function XYe(t){if(!WYe(t))return!1;var e=YYe(t);return e==VYe||e==JYe||e==KYe||e==zYe}E$.exports=XYe});var w$=_((wFt,C$)=>{var ZYe=_l(),$Ye=ZYe["__core-js_shared__"];C$.exports=$Ye});var v$=_((IFt,B$)=>{var _N=w$(),I$=function(){var t=/[^.]+$/.exec(_N&&_N.keys&&_N.keys.IE_PROTO||"");return t?"Symbol(src)_1."+t:""}();function eWe(t){return!!I$&&I$ in t}B$.exports=eWe});var HN=_((BFt,D$)=>{var tWe=Function.prototype,rWe=tWe.toString;function nWe(t){if(t!=null){try{return rWe.call(t)}catch{}try{return t+""}catch{}}return""}D$.exports=nWe});var P$=_((vFt,S$)=>{var iWe=MS(),sWe=v$(),oWe=il(),aWe=HN(),lWe=/[\\^$.*+?()[\]{}|]/g,cWe=/^\[object .+?Constructor\]$/,uWe=Function.prototype,AWe=Object.prototype,fWe=uWe.toString,pWe=AWe.hasOwnProperty,hWe=RegExp("^"+fWe.call(pWe).replace(lWe,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function gWe(t){if(!oWe(t)||sWe(t))return!1;var e=iWe(t)?hWe:cWe;return e.test(aWe(t))}S$.exports=gWe});var x$=_((DFt,b$)=>{function dWe(t,e){return t?.[e]}b$.exports=dWe});var zp=_((SFt,k$)=>{var mWe=P$(),yWe=x$();function EWe(t,e){var r=yWe(t,e);return mWe(r)?r:void 0}k$.exports=EWe});var US=_((PFt,Q$)=>{var CWe=zp(),wWe=_l(),IWe=CWe(wWe,"Map");Q$.exports=IWe});var NI=_((bFt,F$)=>{var BWe=zp(),vWe=BWe(Object,"create");F$.exports=vWe});var N$=_((xFt,T$)=>{var R$=NI();function DWe(){this.__data__=R$?R$(null):{},this.size=0}T$.exports=DWe});var O$=_((kFt,L$)=>{function SWe(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e}L$.exports=SWe});var U$=_((QFt,M$)=>{var PWe=NI(),bWe="__lodash_hash_undefined__",xWe=Object.prototype,kWe=xWe.hasOwnProperty;function QWe(t){var e=this.__data__;if(PWe){var r=e[t];return r===bWe?void 0:r}return kWe.call(e,t)?e[t]:void 0}M$.exports=QWe});var H$=_((FFt,_$)=>{var FWe=NI(),RWe=Object.prototype,TWe=RWe.hasOwnProperty;function NWe(t){var e=this.__data__;return FWe?e[t]!==void 0:TWe.call(e,t)}_$.exports=NWe});var j$=_((RFt,q$)=>{var LWe=NI(),OWe="__lodash_hash_undefined__";function MWe(t,e){var r=this.__data__;return this.size+=this.has(t)?0:1,r[t]=LWe&&e===void 0?OWe:e,this}q$.exports=MWe});var Y$=_((TFt,G$)=>{var UWe=N$(),_We=O$(),HWe=U$(),qWe=H$(),jWe=j$();function Oy(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e{var W$=Y$(),GWe=RI(),YWe=US();function WWe(){this.size=0,this.__data__={hash:new W$,map:new(YWe||GWe),string:new W$}}K$.exports=WWe});var z$=_((LFt,J$)=>{function KWe(t){var e=typeof t;return e=="string"||e=="number"||e=="symbol"||e=="boolean"?t!=="__proto__":t===null}J$.exports=KWe});var LI=_((OFt,X$)=>{var VWe=z$();function JWe(t,e){var r=t.__data__;return VWe(e)?r[typeof e=="string"?"string":"hash"]:r.map}X$.exports=JWe});var $$=_((MFt,Z$)=>{var zWe=LI();function XWe(t){var e=zWe(this,t).delete(t);return this.size-=e?1:0,e}Z$.exports=XWe});var tee=_((UFt,eee)=>{var ZWe=LI();function $We(t){return ZWe(this,t).get(t)}eee.exports=$We});var nee=_((_Ft,ree)=>{var eKe=LI();function tKe(t){return eKe(this,t).has(t)}ree.exports=tKe});var see=_((HFt,iee)=>{var rKe=LI();function nKe(t,e){var r=rKe(this,t),o=r.size;return r.set(t,e),this.size+=r.size==o?0:1,this}iee.exports=nKe});var _S=_((qFt,oee)=>{var iKe=V$(),sKe=$$(),oKe=tee(),aKe=nee(),lKe=see();function My(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e{var cKe=RI(),uKe=US(),AKe=_S(),fKe=200;function pKe(t,e){var r=this.__data__;if(r instanceof cKe){var o=r.__data__;if(!uKe||o.length{var hKe=RI(),gKe=$Z(),dKe=t$(),mKe=n$(),yKe=s$(),EKe=lee();function Uy(t){var e=this.__data__=new hKe(t);this.size=e.size}Uy.prototype.clear=gKe;Uy.prototype.delete=dKe;Uy.prototype.get=mKe;Uy.prototype.has=yKe;Uy.prototype.set=EKe;cee.exports=Uy});var Aee=_((YFt,uee)=>{var CKe="__lodash_hash_undefined__";function wKe(t){return this.__data__.set(t,CKe),this}uee.exports=wKe});var pee=_((WFt,fee)=>{function IKe(t){return this.__data__.has(t)}fee.exports=IKe});var gee=_((KFt,hee)=>{var BKe=_S(),vKe=Aee(),DKe=pee();function qS(t){var e=-1,r=t==null?0:t.length;for(this.__data__=new BKe;++e{function SKe(t,e){for(var r=-1,o=t==null?0:t.length;++r{function PKe(t,e){return t.has(e)}yee.exports=PKe});var qN=_((zFt,Cee)=>{var bKe=gee(),xKe=mee(),kKe=Eee(),QKe=1,FKe=2;function RKe(t,e,r,o,a,n){var u=r&QKe,A=t.length,p=e.length;if(A!=p&&!(u&&p>A))return!1;var h=n.get(t),E=n.get(e);if(h&&E)return h==e&&E==t;var I=-1,v=!0,x=r&FKe?new bKe:void 0;for(n.set(t,e),n.set(e,t);++I{var TKe=_l(),NKe=TKe.Uint8Array;wee.exports=NKe});var Bee=_((ZFt,Iee)=>{function LKe(t){var e=-1,r=Array(t.size);return t.forEach(function(o,a){r[++e]=[a,o]}),r}Iee.exports=LKe});var Dee=_(($Ft,vee)=>{function OKe(t){var e=-1,r=Array(t.size);return t.forEach(function(o){r[++e]=o}),r}vee.exports=OKe});var kee=_((eRt,xee)=>{var See=pd(),Pee=jN(),MKe=Ny(),UKe=qN(),_Ke=Bee(),HKe=Dee(),qKe=1,jKe=2,GKe="[object Boolean]",YKe="[object Date]",WKe="[object Error]",KKe="[object Map]",VKe="[object Number]",JKe="[object RegExp]",zKe="[object Set]",XKe="[object String]",ZKe="[object Symbol]",$Ke="[object ArrayBuffer]",eVe="[object DataView]",bee=See?See.prototype:void 0,GN=bee?bee.valueOf:void 0;function tVe(t,e,r,o,a,n,u){switch(r){case eVe:if(t.byteLength!=e.byteLength||t.byteOffset!=e.byteOffset)return!1;t=t.buffer,e=e.buffer;case $Ke:return!(t.byteLength!=e.byteLength||!n(new Pee(t),new Pee(e)));case GKe:case YKe:case VKe:return MKe(+t,+e);case WKe:return t.name==e.name&&t.message==e.message;case JKe:case XKe:return t==e+"";case KKe:var A=_Ke;case zKe:var p=o&qKe;if(A||(A=HKe),t.size!=e.size&&!p)return!1;var h=u.get(t);if(h)return h==e;o|=jKe,u.set(t,e);var E=UKe(A(t),A(e),o,a,n,u);return u.delete(t),E;case ZKe:if(GN)return GN.call(t)==GN.call(e)}return!1}xee.exports=tVe});var jS=_((tRt,Qee)=>{function rVe(t,e){for(var r=-1,o=e.length,a=t.length;++r{var nVe=Array.isArray;Fee.exports=nVe});var YN=_((nRt,Ree)=>{var iVe=jS(),sVe=Hl();function oVe(t,e,r){var o=e(t);return sVe(t)?o:iVe(o,r(t))}Ree.exports=oVe});var Nee=_((iRt,Tee)=>{function aVe(t,e){for(var r=-1,o=t==null?0:t.length,a=0,n=[];++r{function lVe(){return[]}Lee.exports=lVe});var GS=_((oRt,Mee)=>{var cVe=Nee(),uVe=WN(),AVe=Object.prototype,fVe=AVe.propertyIsEnumerable,Oee=Object.getOwnPropertySymbols,pVe=Oee?function(t){return t==null?[]:(t=Object(t),cVe(Oee(t),function(e){return fVe.call(t,e)}))}:uVe;Mee.exports=pVe});var _ee=_((aRt,Uee)=>{function hVe(t,e){for(var r=-1,o=Array(t);++r{function gVe(t){return t!=null&&typeof t=="object"}Hee.exports=gVe});var jee=_((cRt,qee)=>{var dVe=hd(),mVe=Ju(),yVe="[object Arguments]";function EVe(t){return mVe(t)&&dVe(t)==yVe}qee.exports=EVe});var OI=_((uRt,Wee)=>{var Gee=jee(),CVe=Ju(),Yee=Object.prototype,wVe=Yee.hasOwnProperty,IVe=Yee.propertyIsEnumerable,BVe=Gee(function(){return arguments}())?Gee:function(t){return CVe(t)&&wVe.call(t,"callee")&&!IVe.call(t,"callee")};Wee.exports=BVe});var Vee=_((ARt,Kee)=>{function vVe(){return!1}Kee.exports=vVe});var UI=_((MI,_y)=>{var DVe=_l(),SVe=Vee(),Xee=typeof MI=="object"&&MI&&!MI.nodeType&&MI,Jee=Xee&&typeof _y=="object"&&_y&&!_y.nodeType&&_y,PVe=Jee&&Jee.exports===Xee,zee=PVe?DVe.Buffer:void 0,bVe=zee?zee.isBuffer:void 0,xVe=bVe||SVe;_y.exports=xVe});var _I=_((fRt,Zee)=>{var kVe=9007199254740991,QVe=/^(?:0|[1-9]\d*)$/;function FVe(t,e){var r=typeof t;return e=e??kVe,!!e&&(r=="number"||r!="symbol"&&QVe.test(t))&&t>-1&&t%1==0&&t{var RVe=9007199254740991;function TVe(t){return typeof t=="number"&&t>-1&&t%1==0&&t<=RVe}$ee.exports=TVe});var tte=_((hRt,ete)=>{var NVe=hd(),LVe=YS(),OVe=Ju(),MVe="[object Arguments]",UVe="[object Array]",_Ve="[object Boolean]",HVe="[object Date]",qVe="[object Error]",jVe="[object Function]",GVe="[object Map]",YVe="[object Number]",WVe="[object Object]",KVe="[object RegExp]",VVe="[object Set]",JVe="[object String]",zVe="[object WeakMap]",XVe="[object ArrayBuffer]",ZVe="[object DataView]",$Ve="[object Float32Array]",eJe="[object Float64Array]",tJe="[object Int8Array]",rJe="[object Int16Array]",nJe="[object Int32Array]",iJe="[object Uint8Array]",sJe="[object Uint8ClampedArray]",oJe="[object Uint16Array]",aJe="[object Uint32Array]",ui={};ui[$Ve]=ui[eJe]=ui[tJe]=ui[rJe]=ui[nJe]=ui[iJe]=ui[sJe]=ui[oJe]=ui[aJe]=!0;ui[MVe]=ui[UVe]=ui[XVe]=ui[_Ve]=ui[ZVe]=ui[HVe]=ui[qVe]=ui[jVe]=ui[GVe]=ui[YVe]=ui[WVe]=ui[KVe]=ui[VVe]=ui[JVe]=ui[zVe]=!1;function lJe(t){return OVe(t)&&LVe(t.length)&&!!ui[NVe(t)]}ete.exports=lJe});var WS=_((gRt,rte)=>{function cJe(t){return function(e){return t(e)}}rte.exports=cJe});var KS=_((HI,Hy)=>{var uJe=UN(),nte=typeof HI=="object"&&HI&&!HI.nodeType&&HI,qI=nte&&typeof Hy=="object"&&Hy&&!Hy.nodeType&&Hy,AJe=qI&&qI.exports===nte,KN=AJe&&uJe.process,fJe=function(){try{var t=qI&&qI.require&&qI.require("util").types;return t||KN&&KN.binding&&KN.binding("util")}catch{}}();Hy.exports=fJe});var VS=_((dRt,ote)=>{var pJe=tte(),hJe=WS(),ite=KS(),ste=ite&&ite.isTypedArray,gJe=ste?hJe(ste):pJe;ote.exports=gJe});var VN=_((mRt,ate)=>{var dJe=_ee(),mJe=OI(),yJe=Hl(),EJe=UI(),CJe=_I(),wJe=VS(),IJe=Object.prototype,BJe=IJe.hasOwnProperty;function vJe(t,e){var r=yJe(t),o=!r&&mJe(t),a=!r&&!o&&EJe(t),n=!r&&!o&&!a&&wJe(t),u=r||o||a||n,A=u?dJe(t.length,String):[],p=A.length;for(var h in t)(e||BJe.call(t,h))&&!(u&&(h=="length"||a&&(h=="offset"||h=="parent")||n&&(h=="buffer"||h=="byteLength"||h=="byteOffset")||CJe(h,p)))&&A.push(h);return A}ate.exports=vJe});var JS=_((yRt,lte)=>{var DJe=Object.prototype;function SJe(t){var e=t&&t.constructor,r=typeof e=="function"&&e.prototype||DJe;return t===r}lte.exports=SJe});var JN=_((ERt,cte)=>{function PJe(t,e){return function(r){return t(e(r))}}cte.exports=PJe});var Ate=_((CRt,ute)=>{var bJe=JN(),xJe=bJe(Object.keys,Object);ute.exports=xJe});var pte=_((wRt,fte)=>{var kJe=JS(),QJe=Ate(),FJe=Object.prototype,RJe=FJe.hasOwnProperty;function TJe(t){if(!kJe(t))return QJe(t);var e=[];for(var r in Object(t))RJe.call(t,r)&&r!="constructor"&&e.push(r);return e}fte.exports=TJe});var jI=_((IRt,hte)=>{var NJe=MS(),LJe=YS();function OJe(t){return t!=null&&LJe(t.length)&&!NJe(t)}hte.exports=OJe});var zS=_((BRt,gte)=>{var MJe=VN(),UJe=pte(),_Je=jI();function HJe(t){return _Je(t)?MJe(t):UJe(t)}gte.exports=HJe});var zN=_((vRt,dte)=>{var qJe=YN(),jJe=GS(),GJe=zS();function YJe(t){return qJe(t,GJe,jJe)}dte.exports=YJe});var Ete=_((DRt,yte)=>{var mte=zN(),WJe=1,KJe=Object.prototype,VJe=KJe.hasOwnProperty;function JJe(t,e,r,o,a,n){var u=r&WJe,A=mte(t),p=A.length,h=mte(e),E=h.length;if(p!=E&&!u)return!1;for(var I=p;I--;){var v=A[I];if(!(u?v in e:VJe.call(e,v)))return!1}var x=n.get(t),C=n.get(e);if(x&&C)return x==e&&C==t;var R=!0;n.set(t,e),n.set(e,t);for(var L=u;++I{var zJe=zp(),XJe=_l(),ZJe=zJe(XJe,"DataView");Cte.exports=ZJe});var Bte=_((PRt,Ite)=>{var $Je=zp(),eze=_l(),tze=$Je(eze,"Promise");Ite.exports=tze});var Dte=_((bRt,vte)=>{var rze=zp(),nze=_l(),ize=rze(nze,"Set");vte.exports=ize});var Pte=_((xRt,Ste)=>{var sze=zp(),oze=_l(),aze=sze(oze,"WeakMap");Ste.exports=aze});var GI=_((kRt,Tte)=>{var XN=wte(),ZN=US(),$N=Bte(),eL=Dte(),tL=Pte(),Rte=hd(),qy=HN(),bte="[object Map]",lze="[object Object]",xte="[object Promise]",kte="[object Set]",Qte="[object WeakMap]",Fte="[object DataView]",cze=qy(XN),uze=qy(ZN),Aze=qy($N),fze=qy(eL),pze=qy(tL),gd=Rte;(XN&&gd(new XN(new ArrayBuffer(1)))!=Fte||ZN&&gd(new ZN)!=bte||$N&&gd($N.resolve())!=xte||eL&&gd(new eL)!=kte||tL&&gd(new tL)!=Qte)&&(gd=function(t){var e=Rte(t),r=e==lze?t.constructor:void 0,o=r?qy(r):"";if(o)switch(o){case cze:return Fte;case uze:return bte;case Aze:return xte;case fze:return kte;case pze:return Qte}return e});Tte.exports=gd});var qte=_((QRt,Hte)=>{var rL=HS(),hze=qN(),gze=kee(),dze=Ete(),Nte=GI(),Lte=Hl(),Ote=UI(),mze=VS(),yze=1,Mte="[object Arguments]",Ute="[object Array]",XS="[object Object]",Eze=Object.prototype,_te=Eze.hasOwnProperty;function Cze(t,e,r,o,a,n){var u=Lte(t),A=Lte(e),p=u?Ute:Nte(t),h=A?Ute:Nte(e);p=p==Mte?XS:p,h=h==Mte?XS:h;var E=p==XS,I=h==XS,v=p==h;if(v&&Ote(t)){if(!Ote(e))return!1;u=!0,E=!1}if(v&&!E)return n||(n=new rL),u||mze(t)?hze(t,e,r,o,a,n):gze(t,e,p,r,o,a,n);if(!(r&yze)){var x=E&&_te.call(t,"__wrapped__"),C=I&&_te.call(e,"__wrapped__");if(x||C){var R=x?t.value():t,L=C?e.value():e;return n||(n=new rL),a(R,L,r,o,n)}}return v?(n||(n=new rL),dze(t,e,r,o,a,n)):!1}Hte.exports=Cze});var Wte=_((FRt,Yte)=>{var wze=qte(),jte=Ju();function Gte(t,e,r,o,a){return t===e?!0:t==null||e==null||!jte(t)&&!jte(e)?t!==t&&e!==e:wze(t,e,r,o,Gte,a)}Yte.exports=Gte});var Vte=_((RRt,Kte)=>{var Ize=Wte();function Bze(t,e){return Ize(t,e)}Kte.exports=Bze});var nL=_((TRt,Jte)=>{var vze=zp(),Dze=function(){try{var t=vze(Object,"defineProperty");return t({},"",{}),t}catch{}}();Jte.exports=Dze});var ZS=_((NRt,Xte)=>{var zte=nL();function Sze(t,e,r){e=="__proto__"&&zte?zte(t,e,{configurable:!0,enumerable:!0,value:r,writable:!0}):t[e]=r}Xte.exports=Sze});var iL=_((LRt,Zte)=>{var Pze=ZS(),bze=Ny();function xze(t,e,r){(r!==void 0&&!bze(t[e],r)||r===void 0&&!(e in t))&&Pze(t,e,r)}Zte.exports=xze});var ere=_((ORt,$te)=>{function kze(t){return function(e,r,o){for(var a=-1,n=Object(e),u=o(e),A=u.length;A--;){var p=u[t?A:++a];if(r(n[p],p,n)===!1)break}return e}}$te.exports=kze});var rre=_((MRt,tre)=>{var Qze=ere(),Fze=Qze();tre.exports=Fze});var sL=_((YI,jy)=>{var Rze=_l(),ore=typeof YI=="object"&&YI&&!YI.nodeType&&YI,nre=ore&&typeof jy=="object"&&jy&&!jy.nodeType&&jy,Tze=nre&&nre.exports===ore,ire=Tze?Rze.Buffer:void 0,sre=ire?ire.allocUnsafe:void 0;function Nze(t,e){if(e)return t.slice();var r=t.length,o=sre?sre(r):new t.constructor(r);return t.copy(o),o}jy.exports=Nze});var $S=_((URt,lre)=>{var are=jN();function Lze(t){var e=new t.constructor(t.byteLength);return new are(e).set(new are(t)),e}lre.exports=Lze});var oL=_((_Rt,cre)=>{var Oze=$S();function Mze(t,e){var r=e?Oze(t.buffer):t.buffer;return new t.constructor(r,t.byteOffset,t.length)}cre.exports=Mze});var eP=_((HRt,ure)=>{function Uze(t,e){var r=-1,o=t.length;for(e||(e=Array(o));++r{var _ze=il(),Are=Object.create,Hze=function(){function t(){}return function(e){if(!_ze(e))return{};if(Are)return Are(e);t.prototype=e;var r=new t;return t.prototype=void 0,r}}();fre.exports=Hze});var tP=_((jRt,hre)=>{var qze=JN(),jze=qze(Object.getPrototypeOf,Object);hre.exports=jze});var aL=_((GRt,gre)=>{var Gze=pre(),Yze=tP(),Wze=JS();function Kze(t){return typeof t.constructor=="function"&&!Wze(t)?Gze(Yze(t)):{}}gre.exports=Kze});var mre=_((YRt,dre)=>{var Vze=jI(),Jze=Ju();function zze(t){return Jze(t)&&Vze(t)}dre.exports=zze});var lL=_((WRt,Ere)=>{var Xze=hd(),Zze=tP(),$ze=Ju(),eXe="[object Object]",tXe=Function.prototype,rXe=Object.prototype,yre=tXe.toString,nXe=rXe.hasOwnProperty,iXe=yre.call(Object);function sXe(t){if(!$ze(t)||Xze(t)!=eXe)return!1;var e=Zze(t);if(e===null)return!0;var r=nXe.call(e,"constructor")&&e.constructor;return typeof r=="function"&&r instanceof r&&yre.call(r)==iXe}Ere.exports=sXe});var cL=_((KRt,Cre)=>{function oXe(t,e){if(!(e==="constructor"&&typeof t[e]=="function")&&e!="__proto__")return t[e]}Cre.exports=oXe});var rP=_((VRt,wre)=>{var aXe=ZS(),lXe=Ny(),cXe=Object.prototype,uXe=cXe.hasOwnProperty;function AXe(t,e,r){var o=t[e];(!(uXe.call(t,e)&&lXe(o,r))||r===void 0&&!(e in t))&&aXe(t,e,r)}wre.exports=AXe});var dd=_((JRt,Ire)=>{var fXe=rP(),pXe=ZS();function hXe(t,e,r,o){var a=!r;r||(r={});for(var n=-1,u=e.length;++n{function gXe(t){var e=[];if(t!=null)for(var r in Object(t))e.push(r);return e}Bre.exports=gXe});var Sre=_((XRt,Dre)=>{var dXe=il(),mXe=JS(),yXe=vre(),EXe=Object.prototype,CXe=EXe.hasOwnProperty;function wXe(t){if(!dXe(t))return yXe(t);var e=mXe(t),r=[];for(var o in t)o=="constructor"&&(e||!CXe.call(t,o))||r.push(o);return r}Dre.exports=wXe});var Gy=_((ZRt,Pre)=>{var IXe=VN(),BXe=Sre(),vXe=jI();function DXe(t){return vXe(t)?IXe(t,!0):BXe(t)}Pre.exports=DXe});var xre=_(($Rt,bre)=>{var SXe=dd(),PXe=Gy();function bXe(t){return SXe(t,PXe(t))}bre.exports=bXe});var Nre=_((eTt,Tre)=>{var kre=iL(),xXe=sL(),kXe=oL(),QXe=eP(),FXe=aL(),Qre=OI(),Fre=Hl(),RXe=mre(),TXe=UI(),NXe=MS(),LXe=il(),OXe=lL(),MXe=VS(),Rre=cL(),UXe=xre();function _Xe(t,e,r,o,a,n,u){var A=Rre(t,r),p=Rre(e,r),h=u.get(p);if(h){kre(t,r,h);return}var E=n?n(A,p,r+"",t,e,u):void 0,I=E===void 0;if(I){var v=Fre(p),x=!v&&TXe(p),C=!v&&!x&&MXe(p);E=p,v||x||C?Fre(A)?E=A:RXe(A)?E=QXe(A):x?(I=!1,E=xXe(p,!0)):C?(I=!1,E=kXe(p,!0)):E=[]:OXe(p)||Qre(p)?(E=A,Qre(A)?E=UXe(A):(!LXe(A)||NXe(A))&&(E=FXe(p))):I=!1}I&&(u.set(p,E),a(E,p,o,n,u),u.delete(p)),kre(t,r,E)}Tre.exports=_Xe});var Mre=_((tTt,Ore)=>{var HXe=HS(),qXe=iL(),jXe=rre(),GXe=Nre(),YXe=il(),WXe=Gy(),KXe=cL();function Lre(t,e,r,o,a){t!==e&&jXe(e,function(n,u){if(a||(a=new HXe),YXe(n))GXe(t,e,u,r,Lre,o,a);else{var A=o?o(KXe(t,u),n,u+"",t,e,a):void 0;A===void 0&&(A=n),qXe(t,u,A)}},WXe)}Ore.exports=Lre});var uL=_((rTt,Ure)=>{function VXe(t){return t}Ure.exports=VXe});var Hre=_((nTt,_re)=>{function JXe(t,e,r){switch(r.length){case 0:return t.call(e);case 1:return t.call(e,r[0]);case 2:return t.call(e,r[0],r[1]);case 3:return t.call(e,r[0],r[1],r[2])}return t.apply(e,r)}_re.exports=JXe});var AL=_((iTt,jre)=>{var zXe=Hre(),qre=Math.max;function XXe(t,e,r){return e=qre(e===void 0?t.length-1:e,0),function(){for(var o=arguments,a=-1,n=qre(o.length-e,0),u=Array(n);++a{function ZXe(t){return function(){return t}}Gre.exports=ZXe});var Vre=_((oTt,Kre)=>{var $Xe=Yre(),Wre=nL(),eZe=uL(),tZe=Wre?function(t,e){return Wre(t,"toString",{configurable:!0,enumerable:!1,value:$Xe(e),writable:!0})}:eZe;Kre.exports=tZe});var zre=_((aTt,Jre)=>{var rZe=800,nZe=16,iZe=Date.now;function sZe(t){var e=0,r=0;return function(){var o=iZe(),a=nZe-(o-r);if(r=o,a>0){if(++e>=rZe)return arguments[0]}else e=0;return t.apply(void 0,arguments)}}Jre.exports=sZe});var fL=_((lTt,Xre)=>{var oZe=Vre(),aZe=zre(),lZe=aZe(oZe);Xre.exports=lZe});var $re=_((cTt,Zre)=>{var cZe=uL(),uZe=AL(),AZe=fL();function fZe(t,e){return AZe(uZe(t,e,cZe),t+"")}Zre.exports=fZe});var tne=_((uTt,ene)=>{var pZe=Ny(),hZe=jI(),gZe=_I(),dZe=il();function mZe(t,e,r){if(!dZe(r))return!1;var o=typeof e;return(o=="number"?hZe(r)&&gZe(e,r.length):o=="string"&&e in r)?pZe(r[e],t):!1}ene.exports=mZe});var nne=_((ATt,rne)=>{var yZe=$re(),EZe=tne();function CZe(t){return yZe(function(e,r){var o=-1,a=r.length,n=a>1?r[a-1]:void 0,u=a>2?r[2]:void 0;for(n=t.length>3&&typeof n=="function"?(a--,n):void 0,u&&EZe(r[0],r[1],u)&&(n=a<3?void 0:n,a=1),e=Object(e);++o{var wZe=Mre(),IZe=nne(),BZe=IZe(function(t,e,r,o){wZe(t,e,r,o)});ine.exports=BZe});var _e={};Vt(_e,{AsyncActions:()=>gL,BufferStream:()=>hL,CachingStrategy:()=>mne,DefaultStream:()=>dL,allSettledSafe:()=>Uc,assertNever:()=>yL,bufferStream:()=>Vy,buildIgnorePattern:()=>kZe,convertMapsToIndexableObjects:()=>iP,dynamicRequire:()=>Df,escapeRegExp:()=>DZe,getArrayWithDefault:()=>Yy,getFactoryWithDefault:()=>ol,getMapWithDefault:()=>Wy,getSetWithDefault:()=>md,groupBy:()=>wL,isIndexableObject:()=>pL,isPathLike:()=>QZe,isTaggedYarnVersion:()=>vZe,makeDeferred:()=>hne,mapAndFilter:()=>sl,mapAndFind:()=>KI,mergeIntoTarget:()=>Ene,overrideType:()=>SZe,parseBoolean:()=>VI,parseInt:()=>Jy,parseOptionalBoolean:()=>yne,plural:()=>nP,prettifyAsyncErrors:()=>Ky,prettifySyncErrors:()=>EL,releaseAfterUseAsync:()=>bZe,replaceEnvVariables:()=>sP,sortMap:()=>ks,toMerged:()=>FZe,tryParseOptionalBoolean:()=>CL,validateEnum:()=>PZe});function vZe(t){return!!(Ane.default.valid(t)&&t.match(/^[^-]+(-rc\.[0-9]+)?$/))}function nP(t,{one:e,more:r,zero:o=r}){return t===0?o:t===1?e:r}function DZe(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function SZe(t){}function yL(t){throw new Error(`Assertion failed: Unexpected object '${t}'`)}function PZe(t,e){let r=Object.values(t);if(!r.includes(e))throw new it(`Invalid value for enumeration: ${JSON.stringify(e)} (expected one of ${r.map(o=>JSON.stringify(o)).join(", ")})`);return e}function sl(t,e){let r=[];for(let o of t){let a=e(o);a!==fne&&r.push(a)}return r}function KI(t,e){for(let r of t){let o=e(r);if(o!==pne)return o}}function pL(t){return typeof t=="object"&&t!==null}async function Uc(t){let e=await Promise.allSettled(t),r=[];for(let o of e){if(o.status==="rejected")throw o.reason;r.push(o.value)}return r}function iP(t){if(t instanceof Map&&(t=Object.fromEntries(t)),pL(t))for(let e of Object.keys(t)){let r=t[e];pL(r)&&(t[e]=iP(r))}return t}function ol(t,e,r){let o=t.get(e);return typeof o>"u"&&t.set(e,o=r()),o}function Yy(t,e){let r=t.get(e);return typeof r>"u"&&t.set(e,r=[]),r}function md(t,e){let r=t.get(e);return typeof r>"u"&&t.set(e,r=new Set),r}function Wy(t,e){let r=t.get(e);return typeof r>"u"&&t.set(e,r=new Map),r}async function bZe(t,e){if(e==null)return await t();try{return await t()}finally{await e()}}async function Ky(t,e){try{return await t()}catch(r){throw r.message=e(r.message),r}}function EL(t,e){try{return t()}catch(r){throw r.message=e(r.message),r}}async function Vy(t){return await new Promise((e,r)=>{let o=[];t.on("error",a=>{r(a)}),t.on("data",a=>{o.push(a)}),t.on("end",()=>{e(Buffer.concat(o))})})}function hne(){let t,e;return{promise:new Promise((o,a)=>{t=o,e=a}),resolve:t,reject:e}}function gne(t){return WI(ue.fromPortablePath(t))}function dne(path){let physicalPath=ue.fromPortablePath(path),currentCacheEntry=WI.cache[physicalPath];delete WI.cache[physicalPath];let result;try{result=gne(physicalPath);let freshCacheEntry=WI.cache[physicalPath],dynamicModule=eval("module"),freshCacheIndex=dynamicModule.children.indexOf(freshCacheEntry);freshCacheIndex!==-1&&dynamicModule.children.splice(freshCacheIndex,1)}finally{WI.cache[physicalPath]=currentCacheEntry}return result}function xZe(t){let e=one.get(t),r=oe.statSync(t);if(e?.mtime===r.mtimeMs)return e.instance;let o=dne(t);return one.set(t,{mtime:r.mtimeMs,instance:o}),o}function Df(t,{cachingStrategy:e=2}={}){switch(e){case 0:return dne(t);case 1:return xZe(t);case 2:return gne(t);default:throw new Error("Unsupported caching strategy")}}function ks(t,e){let r=Array.from(t);Array.isArray(e)||(e=[e]);let o=[];for(let n of e)o.push(r.map(u=>n(u)));let a=r.map((n,u)=>u);return a.sort((n,u)=>{for(let A of o){let p=A[n]A[u]?1:0;if(p!==0)return p}return 0}),a.map(n=>r[n])}function kZe(t){return t.length===0?null:t.map(e=>`(${cne.default.makeRe(e,{windows:!1,dot:!0}).source})`).join("|")}function sP(t,{env:e}){let r=/\${(?[\d\w_]+)(?:)?(?:-(?[^}]*))?}/g;return t.replace(r,(...o)=>{let{variableName:a,colon:n,fallback:u}=o[o.length-1],A=Object.hasOwn(e,a),p=e[a];if(p||A&&!n)return p;if(u!=null)return u;throw new it(`Environment variable not found (${a})`)})}function VI(t){switch(t){case"true":case"1":case 1:case!0:return!0;case"false":case"0":case 0:case!1:return!1;default:throw new Error(`Couldn't parse "${t}" as a boolean`)}}function yne(t){return typeof t>"u"?t:VI(t)}function CL(t){try{return yne(t)}catch{return null}}function QZe(t){return!!(ue.isAbsolute(t)||t.match(/^(\.{1,2}|~)\//))}function Ene(t,...e){let r=u=>({value:u}),o=r(t),a=e.map(u=>r(u)),{value:n}=(0,lne.default)(o,...a,(u,A)=>{if(Array.isArray(u)&&Array.isArray(A)){for(let p of A)u.find(h=>(0,ane.default)(h,p))||u.push(p);return u}});return n}function FZe(...t){return Ene({},...t)}function wL(t,e){let r=Object.create(null);for(let o of t){let a=o[e];r[a]??=[],r[a].push(o)}return r}function Jy(t){return typeof t=="string"?Number.parseInt(t,10):t}var ane,lne,cne,une,Ane,mL,fne,pne,hL,gL,dL,WI,one,mne,ql=Et(()=>{St();qt();ane=$e(Vte()),lne=$e(sne()),cne=$e(Zo()),une=$e(id()),Ane=$e(zn()),mL=ve("stream");fne=Symbol();sl.skip=fne;pne=Symbol();KI.skip=pne;hL=class extends mL.Transform{constructor(){super(...arguments);this.chunks=[]}_transform(r,o,a){if(o!=="buffer"||!Buffer.isBuffer(r))throw new Error("Assertion failed: BufferStream only accept buffers");this.chunks.push(r),a(null,null)}_flush(r){r(null,Buffer.concat(this.chunks))}};gL=class{constructor(e){this.deferred=new Map;this.promises=new Map;this.limit=(0,une.default)(e)}set(e,r){let o=this.deferred.get(e);typeof o>"u"&&this.deferred.set(e,o=hne());let a=this.limit(()=>r());return this.promises.set(e,a),a.then(()=>{this.promises.get(e)===a&&o.resolve()},n=>{this.promises.get(e)===a&&o.reject(n)}),o.promise}reduce(e,r){let o=this.promises.get(e)??Promise.resolve();this.set(e,()=>r(o))}async wait(){await Promise.all(this.promises.values())}},dL=class extends mL.Transform{constructor(r=Buffer.alloc(0)){super();this.active=!0;this.ifEmpty=r}_transform(r,o,a){if(o!=="buffer"||!Buffer.isBuffer(r))throw new Error("Assertion failed: DefaultStream only accept buffers");this.active=!1,a(null,r)}_flush(r){this.active&&this.ifEmpty.length>0?r(null,this.ifEmpty):r(null)}},WI=eval("require");one=new Map;mne=(o=>(o[o.NoCache=0]="NoCache",o[o.FsTime=1]="FsTime",o[o.Node=2]="Node",o))(mne||{})});var zy,IL,BL,Cne=Et(()=>{zy=(r=>(r.HARD="HARD",r.SOFT="SOFT",r))(zy||{}),IL=(o=>(o.Dependency="Dependency",o.PeerDependency="PeerDependency",o.PeerDependencyMeta="PeerDependencyMeta",o))(IL||{}),BL=(o=>(o.Inactive="inactive",o.Redundant="redundant",o.Active="active",o))(BL||{})});var de={};Vt(de,{LogLevel:()=>uP,Style:()=>aP,Type:()=>yt,addLogFilterSupport:()=>XI,applyColor:()=>Vs,applyHyperlink:()=>Zy,applyStyle:()=>yd,json:()=>Ed,jsonOrPretty:()=>NZe,mark:()=>bL,pretty:()=>Mt,prettyField:()=>zu,prettyList:()=>PL,prettyTruncatedLocatorList:()=>cP,stripAnsi:()=>Xy.default,supportsColor:()=>lP,supportsHyperlinks:()=>SL,tuple:()=>_c});function wne(t){let e=["KiB","MiB","GiB","TiB"],r=e.length;for(;r>1&&t<1024**r;)r-=1;let o=1024**r;return`${Math.floor(t*100/o)/100} ${e[r-1]}`}function _c(t,e){return[e,t]}function yd(t,e,r){return t.get("enableColors")&&r&2&&(e=zI.default.bold(e)),e}function Vs(t,e,r){if(!t.get("enableColors"))return e;let o=RZe.get(r);if(o===null)return e;let a=typeof o>"u"?r:DL.level>=3?o[0]:o[1],n=typeof a=="number"?vL.ansi256(a):a.startsWith("#")?vL.hex(a):vL[a];if(typeof n!="function")throw new Error(`Invalid format type ${a}`);return n(e)}function Zy(t,e,r){return t.get("enableHyperlinks")?TZe?`\x1B]8;;${r}\x1B\\${e}\x1B]8;;\x1B\\`:`\x1B]8;;${r}\x07${e}\x1B]8;;\x07`:e}function Mt(t,e,r){if(e===null)return Vs(t,"null",yt.NULL);if(Object.hasOwn(oP,r))return oP[r].pretty(t,e);if(typeof e!="string")throw new Error(`Assertion failed: Expected the value to be a string, got ${typeof e}`);return Vs(t,e,r)}function PL(t,e,r,{separator:o=", "}={}){return[...e].map(a=>Mt(t,a,r)).join(o)}function Ed(t,e){if(t===null)return null;if(Object.hasOwn(oP,e))return oP[e].json(t);if(typeof t!="string")throw new Error(`Assertion failed: Expected the value to be a string, got ${typeof t}`);return t}function NZe(t,e,[r,o]){return t?Ed(r,o):Mt(e,r,o)}function bL(t){return{Check:Vs(t,"\u2713","green"),Cross:Vs(t,"\u2718","red"),Question:Vs(t,"?","cyan")}}function zu(t,{label:e,value:[r,o]}){return`${Mt(t,e,yt.CODE)}: ${Mt(t,r,o)}`}function cP(t,e,r){let o=[],a=[...e],n=r;for(;a.length>0;){let h=a[0],E=`${qr(t,h)}, `,I=xL(h).length+2;if(o.length>0&&nh).join("").slice(0,-2);let u="X".repeat(a.length.toString().length),A=`and ${u} more.`,p=a.length;for(;o.length>1&&nh).join(""),A.replace(u,Mt(t,p,yt.NUMBER))].join("")}function XI(t,{configuration:e}){let r=e.get("logFilters"),o=new Map,a=new Map,n=[];for(let I of r){let v=I.get("level");if(typeof v>"u")continue;let x=I.get("code");typeof x<"u"&&o.set(x,v);let C=I.get("text");typeof C<"u"&&a.set(C,v);let R=I.get("pattern");typeof R<"u"&&n.push([Ine.default.matcher(R,{contains:!0}),v])}n.reverse();let u=(I,v,x)=>{if(I===null||I===0)return x;let C=a.size>0||n.length>0?(0,Xy.default)(v):v;if(a.size>0){let R=a.get(C);if(typeof R<"u")return R??x}if(n.length>0){for(let[R,L]of n)if(R(C))return L??x}if(o.size>0){let R=o.get(Wu(I));if(typeof R<"u")return R??x}return x},A=t.reportInfo,p=t.reportWarning,h=t.reportError,E=function(I,v,x,C){switch(u(v,x,C)){case"info":A.call(I,v,x);break;case"warning":p.call(I,v??0,x);break;case"error":h.call(I,v??0,x);break}};t.reportInfo=function(...I){return E(this,...I,"info")},t.reportWarning=function(...I){return E(this,...I,"warning")},t.reportError=function(...I){return E(this,...I,"error")}}var zI,JI,Ine,Xy,Bne,yt,aP,DL,lP,SL,vL,RZe,Po,oP,TZe,uP,jl=Et(()=>{St();zI=$e(IN()),JI=$e(td());qt();Ine=$e(Zo()),Xy=$e(OS()),Bne=ve("util");fS();bo();yt={NO_HINT:"NO_HINT",ID:"ID",NULL:"NULL",SCOPE:"SCOPE",NAME:"NAME",RANGE:"RANGE",REFERENCE:"REFERENCE",NUMBER:"NUMBER",PATH:"PATH",URL:"URL",ADDED:"ADDED",REMOVED:"REMOVED",CODE:"CODE",INSPECT:"INSPECT",DURATION:"DURATION",SIZE:"SIZE",SIZE_DIFF:"SIZE_DIFF",IDENT:"IDENT",DESCRIPTOR:"DESCRIPTOR",LOCATOR:"LOCATOR",RESOLUTION:"RESOLUTION",DEPENDENT:"DEPENDENT",PACKAGE_EXTENSION:"PACKAGE_EXTENSION",SETTING:"SETTING",MARKDOWN:"MARKDOWN",MARKDOWN_INLINE:"MARKDOWN_INLINE"},aP=(e=>(e[e.BOLD=2]="BOLD",e))(aP||{}),DL=JI.default.GITHUB_ACTIONS?{level:2}:zI.default.supportsColor?{level:zI.default.supportsColor.level}:{level:0},lP=DL.level!==0,SL=lP&&!JI.default.GITHUB_ACTIONS&&!JI.default.CIRCLE&&!JI.default.GITLAB,vL=new zI.default.Instance(DL),RZe=new Map([[yt.NO_HINT,null],[yt.NULL,["#a853b5",129]],[yt.SCOPE,["#d75f00",166]],[yt.NAME,["#d7875f",173]],[yt.RANGE,["#00afaf",37]],[yt.REFERENCE,["#87afff",111]],[yt.NUMBER,["#ffd700",220]],[yt.PATH,["#d75fd7",170]],[yt.URL,["#d75fd7",170]],[yt.ADDED,["#5faf00",70]],[yt.REMOVED,["#ff3131",160]],[yt.CODE,["#87afff",111]],[yt.SIZE,["#ffd700",220]]]),Po=t=>t;oP={[yt.ID]:Po({pretty:(t,e)=>typeof e=="number"?Vs(t,`${e}`,yt.NUMBER):Vs(t,e,yt.CODE),json:t=>t}),[yt.INSPECT]:Po({pretty:(t,e)=>(0,Bne.inspect)(e,{depth:1/0,colors:t.get("enableColors"),compact:!0,breakLength:1/0}),json:t=>t}),[yt.NUMBER]:Po({pretty:(t,e)=>Vs(t,`${e}`,yt.NUMBER),json:t=>t}),[yt.IDENT]:Po({pretty:(t,e)=>cs(t,e),json:t=>fn(t)}),[yt.LOCATOR]:Po({pretty:(t,e)=>qr(t,e),json:t=>ba(t)}),[yt.DESCRIPTOR]:Po({pretty:(t,e)=>jn(t,e),json:t=>Pa(t)}),[yt.RESOLUTION]:Po({pretty:(t,{descriptor:e,locator:r})=>ZI(t,e,r),json:({descriptor:t,locator:e})=>({descriptor:Pa(t),locator:e!==null?ba(e):null})}),[yt.DEPENDENT]:Po({pretty:(t,{locator:e,descriptor:r})=>kL(t,e,r),json:({locator:t,descriptor:e})=>({locator:ba(t),descriptor:Pa(e)})}),[yt.PACKAGE_EXTENSION]:Po({pretty:(t,e)=>{switch(e.type){case"Dependency":return`${cs(t,e.parentDescriptor)} \u27A4 ${Vs(t,"dependencies",yt.CODE)} \u27A4 ${cs(t,e.descriptor)}`;case"PeerDependency":return`${cs(t,e.parentDescriptor)} \u27A4 ${Vs(t,"peerDependencies",yt.CODE)} \u27A4 ${cs(t,e.descriptor)}`;case"PeerDependencyMeta":return`${cs(t,e.parentDescriptor)} \u27A4 ${Vs(t,"peerDependenciesMeta",yt.CODE)} \u27A4 ${cs(t,Js(e.selector))} \u27A4 ${Vs(t,e.key,yt.CODE)}`;default:throw new Error(`Assertion failed: Unsupported package extension type: ${e.type}`)}},json:t=>{switch(t.type){case"Dependency":return`${fn(t.parentDescriptor)} > ${fn(t.descriptor)}`;case"PeerDependency":return`${fn(t.parentDescriptor)} >> ${fn(t.descriptor)}`;case"PeerDependencyMeta":return`${fn(t.parentDescriptor)} >> ${t.selector} / ${t.key}`;default:throw new Error(`Assertion failed: Unsupported package extension type: ${t.type}`)}}}),[yt.SETTING]:Po({pretty:(t,e)=>(t.get(e),Zy(t,Vs(t,e,yt.CODE),`https://yarnpkg.com/configuration/yarnrc#${e}`)),json:t=>t}),[yt.DURATION]:Po({pretty:(t,e)=>{if(e>1e3*60){let r=Math.floor(e/1e3/60),o=Math.ceil((e-r*60*1e3)/1e3);return o===0?`${r}m`:`${r}m ${o}s`}else{let r=Math.floor(e/1e3),o=e-r*1e3;return o===0?`${r}s`:`${r}s ${o}ms`}},json:t=>t}),[yt.SIZE]:Po({pretty:(t,e)=>Vs(t,wne(e),yt.NUMBER),json:t=>t}),[yt.SIZE_DIFF]:Po({pretty:(t,e)=>{let r=e>=0?"+":"-",o=r==="+"?yt.REMOVED:yt.ADDED;return Vs(t,`${r} ${wne(Math.max(Math.abs(e),1))}`,o)},json:t=>t}),[yt.PATH]:Po({pretty:(t,e)=>Vs(t,ue.fromPortablePath(e),yt.PATH),json:t=>ue.fromPortablePath(t)}),[yt.MARKDOWN]:Po({pretty:(t,{text:e,format:r,paragraphs:o})=>Do(e,{format:r,paragraphs:o}),json:({text:t})=>t}),[yt.MARKDOWN_INLINE]:Po({pretty:(t,e)=>(e=e.replace(/(`+)((?:.|[\n])*?)\1/g,(r,o,a)=>Mt(t,o+a+o,yt.CODE)),e=e.replace(/(\*\*)((?:.|[\n])*?)\1/g,(r,o,a)=>yd(t,a,2)),e),json:t=>t})};TZe=!!process.env.KONSOLE_VERSION;uP=(a=>(a.Error="error",a.Warning="warning",a.Info="info",a.Discard="discard",a))(uP||{})});var vne=_($y=>{"use strict";Object.defineProperty($y,"__esModule",{value:!0});$y.splitWhen=$y.flatten=void 0;function LZe(t){return t.reduce((e,r)=>[].concat(e,r),[])}$y.flatten=LZe;function OZe(t,e){let r=[[]],o=0;for(let a of t)e(a)?(o++,r[o]=[]):r[o].push(a);return r}$y.splitWhen=OZe});var Dne=_(AP=>{"use strict";Object.defineProperty(AP,"__esModule",{value:!0});AP.isEnoentCodeError=void 0;function MZe(t){return t.code==="ENOENT"}AP.isEnoentCodeError=MZe});var Sne=_(fP=>{"use strict";Object.defineProperty(fP,"__esModule",{value:!0});fP.createDirentFromStats=void 0;var QL=class{constructor(e,r){this.name=e,this.isBlockDevice=r.isBlockDevice.bind(r),this.isCharacterDevice=r.isCharacterDevice.bind(r),this.isDirectory=r.isDirectory.bind(r),this.isFIFO=r.isFIFO.bind(r),this.isFile=r.isFile.bind(r),this.isSocket=r.isSocket.bind(r),this.isSymbolicLink=r.isSymbolicLink.bind(r)}};function UZe(t,e){return new QL(t,e)}fP.createDirentFromStats=UZe});var Pne=_(Xu=>{"use strict";Object.defineProperty(Xu,"__esModule",{value:!0});Xu.removeLeadingDotSegment=Xu.escape=Xu.makeAbsolute=Xu.unixify=void 0;var _Ze=ve("path"),HZe=2,qZe=/(\\?)([()*?[\]{|}]|^!|[!+@](?=\())/g;function jZe(t){return t.replace(/\\/g,"/")}Xu.unixify=jZe;function GZe(t,e){return _Ze.resolve(t,e)}Xu.makeAbsolute=GZe;function YZe(t){return t.replace(qZe,"\\$2")}Xu.escape=YZe;function WZe(t){if(t.charAt(0)==="."){let e=t.charAt(1);if(e==="/"||e==="\\")return t.slice(HZe)}return t}Xu.removeLeadingDotSegment=WZe});var xne=_((PTt,bne)=>{bne.exports=function(e){if(typeof e!="string"||e==="")return!1;for(var r;r=/(\\).|([@?!+*]\(.*\))/g.exec(e);){if(r[2])return!0;e=e.slice(r.index+r[0].length)}return!1}});var Fne=_((bTt,Qne)=>{var KZe=xne(),kne={"{":"}","(":")","[":"]"},VZe=function(t){if(t[0]==="!")return!0;for(var e=0,r=-2,o=-2,a=-2,n=-2,u=-2;ee&&(u===-1||u>o||(u=t.indexOf("\\",e),u===-1||u>o)))||a!==-1&&t[e]==="{"&&t[e+1]!=="}"&&(a=t.indexOf("}",e),a>e&&(u=t.indexOf("\\",e),u===-1||u>a))||n!==-1&&t[e]==="("&&t[e+1]==="?"&&/[:!=]/.test(t[e+2])&&t[e+3]!==")"&&(n=t.indexOf(")",e),n>e&&(u=t.indexOf("\\",e),u===-1||u>n))||r!==-1&&t[e]==="("&&t[e+1]!=="|"&&(rr&&(u=t.indexOf("\\",r),u===-1||u>n))))return!0;if(t[e]==="\\"){var A=t[e+1];e+=2;var p=kne[A];if(p){var h=t.indexOf(p,e);h!==-1&&(e=h+1)}if(t[e]==="!")return!0}else e++}return!1},JZe=function(t){if(t[0]==="!")return!0;for(var e=0;e{"use strict";var zZe=Fne(),XZe=ve("path").posix.dirname,ZZe=ve("os").platform()==="win32",FL="/",$Ze=/\\/g,e$e=/[\{\[].*[\}\]]$/,t$e=/(^|[^\\])([\{\[]|\([^\)]+$)/,r$e=/\\([\!\*\?\|\[\]\(\)\{\}])/g;Rne.exports=function(e,r){var o=Object.assign({flipBackslashes:!0},r);o.flipBackslashes&&ZZe&&e.indexOf(FL)<0&&(e=e.replace($Ze,FL)),e$e.test(e)&&(e+=FL),e+="a";do e=XZe(e);while(zZe(e)||t$e.test(e));return e.replace(r$e,"$1")}});var qne=_(jr=>{"use strict";Object.defineProperty(jr,"__esModule",{value:!0});jr.matchAny=jr.convertPatternsToRe=jr.makeRe=jr.getPatternParts=jr.expandBraceExpansion=jr.expandPatternsWithBraceExpansion=jr.isAffectDepthOfReadingPattern=jr.endsWithSlashGlobStar=jr.hasGlobStar=jr.getBaseDirectory=jr.isPatternRelatedToParentDirectory=jr.getPatternsOutsideCurrentDirectory=jr.getPatternsInsideCurrentDirectory=jr.getPositivePatterns=jr.getNegativePatterns=jr.isPositivePattern=jr.isNegativePattern=jr.convertToNegativePattern=jr.convertToPositivePattern=jr.isDynamicPattern=jr.isStaticPattern=void 0;var n$e=ve("path"),i$e=Tne(),RL=Zo(),Nne="**",s$e="\\",o$e=/[*?]|^!/,a$e=/\[[^[]*]/,l$e=/(?:^|[^!*+?@])\([^(]*\|[^|]*\)/,c$e=/[!*+?@]\([^(]*\)/,u$e=/,|\.\./;function Lne(t,e={}){return!One(t,e)}jr.isStaticPattern=Lne;function One(t,e={}){return t===""?!1:!!(e.caseSensitiveMatch===!1||t.includes(s$e)||o$e.test(t)||a$e.test(t)||l$e.test(t)||e.extglob!==!1&&c$e.test(t)||e.braceExpansion!==!1&&A$e(t))}jr.isDynamicPattern=One;function A$e(t){let e=t.indexOf("{");if(e===-1)return!1;let r=t.indexOf("}",e+1);if(r===-1)return!1;let o=t.slice(e,r);return u$e.test(o)}function f$e(t){return pP(t)?t.slice(1):t}jr.convertToPositivePattern=f$e;function p$e(t){return"!"+t}jr.convertToNegativePattern=p$e;function pP(t){return t.startsWith("!")&&t[1]!=="("}jr.isNegativePattern=pP;function Mne(t){return!pP(t)}jr.isPositivePattern=Mne;function h$e(t){return t.filter(pP)}jr.getNegativePatterns=h$e;function g$e(t){return t.filter(Mne)}jr.getPositivePatterns=g$e;function d$e(t){return t.filter(e=>!TL(e))}jr.getPatternsInsideCurrentDirectory=d$e;function m$e(t){return t.filter(TL)}jr.getPatternsOutsideCurrentDirectory=m$e;function TL(t){return t.startsWith("..")||t.startsWith("./..")}jr.isPatternRelatedToParentDirectory=TL;function y$e(t){return i$e(t,{flipBackslashes:!1})}jr.getBaseDirectory=y$e;function E$e(t){return t.includes(Nne)}jr.hasGlobStar=E$e;function Une(t){return t.endsWith("/"+Nne)}jr.endsWithSlashGlobStar=Une;function C$e(t){let e=n$e.basename(t);return Une(t)||Lne(e)}jr.isAffectDepthOfReadingPattern=C$e;function w$e(t){return t.reduce((e,r)=>e.concat(_ne(r)),[])}jr.expandPatternsWithBraceExpansion=w$e;function _ne(t){return RL.braces(t,{expand:!0,nodupes:!0})}jr.expandBraceExpansion=_ne;function I$e(t,e){let{parts:r}=RL.scan(t,Object.assign(Object.assign({},e),{parts:!0}));return r.length===0&&(r=[t]),r[0].startsWith("/")&&(r[0]=r[0].slice(1),r.unshift("")),r}jr.getPatternParts=I$e;function Hne(t,e){return RL.makeRe(t,e)}jr.makeRe=Hne;function B$e(t,e){return t.map(r=>Hne(r,e))}jr.convertPatternsToRe=B$e;function v$e(t,e){return e.some(r=>r.test(t))}jr.matchAny=v$e});var Wne=_((QTt,Yne)=>{"use strict";var D$e=ve("stream"),jne=D$e.PassThrough,S$e=Array.prototype.slice;Yne.exports=P$e;function P$e(){let t=[],e=S$e.call(arguments),r=!1,o=e[e.length-1];o&&!Array.isArray(o)&&o.pipe==null?e.pop():o={};let a=o.end!==!1,n=o.pipeError===!0;o.objectMode==null&&(o.objectMode=!0),o.highWaterMark==null&&(o.highWaterMark=64*1024);let u=jne(o);function A(){for(let E=0,I=arguments.length;E0||(r=!1,p())}function x(C){function R(){C.removeListener("merge2UnpipeEnd",R),C.removeListener("end",R),n&&C.removeListener("error",L),v()}function L(U){u.emit("error",U)}if(C._readableState.endEmitted)return v();C.on("merge2UnpipeEnd",R),C.on("end",R),n&&C.on("error",L),C.pipe(u,{end:!1}),C.resume()}for(let C=0;C{"use strict";Object.defineProperty(hP,"__esModule",{value:!0});hP.merge=void 0;var b$e=Wne();function x$e(t){let e=b$e(t);return t.forEach(r=>{r.once("error",o=>e.emit("error",o))}),e.once("close",()=>Kne(t)),e.once("end",()=>Kne(t)),e}hP.merge=x$e;function Kne(t){t.forEach(e=>e.emit("close"))}});var Jne=_(eE=>{"use strict";Object.defineProperty(eE,"__esModule",{value:!0});eE.isEmpty=eE.isString=void 0;function k$e(t){return typeof t=="string"}eE.isString=k$e;function Q$e(t){return t===""}eE.isEmpty=Q$e});var Sf=_(xo=>{"use strict";Object.defineProperty(xo,"__esModule",{value:!0});xo.string=xo.stream=xo.pattern=xo.path=xo.fs=xo.errno=xo.array=void 0;var F$e=vne();xo.array=F$e;var R$e=Dne();xo.errno=R$e;var T$e=Sne();xo.fs=T$e;var N$e=Pne();xo.path=N$e;var L$e=qne();xo.pattern=L$e;var O$e=Vne();xo.stream=O$e;var M$e=Jne();xo.string=M$e});var Zne=_(ko=>{"use strict";Object.defineProperty(ko,"__esModule",{value:!0});ko.convertPatternGroupToTask=ko.convertPatternGroupsToTasks=ko.groupPatternsByBaseDirectory=ko.getNegativePatternsAsPositive=ko.getPositivePatterns=ko.convertPatternsToTasks=ko.generate=void 0;var Pf=Sf();function U$e(t,e){let r=zne(t),o=Xne(t,e.ignore),a=r.filter(p=>Pf.pattern.isStaticPattern(p,e)),n=r.filter(p=>Pf.pattern.isDynamicPattern(p,e)),u=NL(a,o,!1),A=NL(n,o,!0);return u.concat(A)}ko.generate=U$e;function NL(t,e,r){let o=[],a=Pf.pattern.getPatternsOutsideCurrentDirectory(t),n=Pf.pattern.getPatternsInsideCurrentDirectory(t),u=LL(a),A=LL(n);return o.push(...OL(u,e,r)),"."in A?o.push(ML(".",n,e,r)):o.push(...OL(A,e,r)),o}ko.convertPatternsToTasks=NL;function zne(t){return Pf.pattern.getPositivePatterns(t)}ko.getPositivePatterns=zne;function Xne(t,e){return Pf.pattern.getNegativePatterns(t).concat(e).map(Pf.pattern.convertToPositivePattern)}ko.getNegativePatternsAsPositive=Xne;function LL(t){let e={};return t.reduce((r,o)=>{let a=Pf.pattern.getBaseDirectory(o);return a in r?r[a].push(o):r[a]=[o],r},e)}ko.groupPatternsByBaseDirectory=LL;function OL(t,e,r){return Object.keys(t).map(o=>ML(o,t[o],e,r))}ko.convertPatternGroupsToTasks=OL;function ML(t,e,r,o){return{dynamic:o,positive:e,negative:r,base:t,patterns:[].concat(e,r.map(Pf.pattern.convertToNegativePattern))}}ko.convertPatternGroupToTask=ML});var eie=_(tE=>{"use strict";Object.defineProperty(tE,"__esModule",{value:!0});tE.removeDuplicateSlashes=tE.transform=void 0;var _$e=/(?!^)\/{2,}/g;function H$e(t){return t.map(e=>$ne(e))}tE.transform=H$e;function $ne(t){return t.replace(_$e,"/")}tE.removeDuplicateSlashes=$ne});var rie=_(gP=>{"use strict";Object.defineProperty(gP,"__esModule",{value:!0});gP.read=void 0;function q$e(t,e,r){e.fs.lstat(t,(o,a)=>{if(o!==null){tie(r,o);return}if(!a.isSymbolicLink()||!e.followSymbolicLink){UL(r,a);return}e.fs.stat(t,(n,u)=>{if(n!==null){if(e.throwErrorOnBrokenSymbolicLink){tie(r,n);return}UL(r,a);return}e.markSymbolicLink&&(u.isSymbolicLink=()=>!0),UL(r,u)})})}gP.read=q$e;function tie(t,e){t(e)}function UL(t,e){t(null,e)}});var nie=_(dP=>{"use strict";Object.defineProperty(dP,"__esModule",{value:!0});dP.read=void 0;function j$e(t,e){let r=e.fs.lstatSync(t);if(!r.isSymbolicLink()||!e.followSymbolicLink)return r;try{let o=e.fs.statSync(t);return e.markSymbolicLink&&(o.isSymbolicLink=()=>!0),o}catch(o){if(!e.throwErrorOnBrokenSymbolicLink)return r;throw o}}dP.read=j$e});var iie=_(Xp=>{"use strict";Object.defineProperty(Xp,"__esModule",{value:!0});Xp.createFileSystemAdapter=Xp.FILE_SYSTEM_ADAPTER=void 0;var mP=ve("fs");Xp.FILE_SYSTEM_ADAPTER={lstat:mP.lstat,stat:mP.stat,lstatSync:mP.lstatSync,statSync:mP.statSync};function G$e(t){return t===void 0?Xp.FILE_SYSTEM_ADAPTER:Object.assign(Object.assign({},Xp.FILE_SYSTEM_ADAPTER),t)}Xp.createFileSystemAdapter=G$e});var sie=_(HL=>{"use strict";Object.defineProperty(HL,"__esModule",{value:!0});var Y$e=iie(),_L=class{constructor(e={}){this._options=e,this.followSymbolicLink=this._getValue(this._options.followSymbolicLink,!0),this.fs=Y$e.createFileSystemAdapter(this._options.fs),this.markSymbolicLink=this._getValue(this._options.markSymbolicLink,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!0)}_getValue(e,r){return e??r}};HL.default=_L});var Cd=_(Zp=>{"use strict";Object.defineProperty(Zp,"__esModule",{value:!0});Zp.statSync=Zp.stat=Zp.Settings=void 0;var oie=rie(),W$e=nie(),qL=sie();Zp.Settings=qL.default;function K$e(t,e,r){if(typeof e=="function"){oie.read(t,jL(),e);return}oie.read(t,jL(e),r)}Zp.stat=K$e;function V$e(t,e){let r=jL(e);return W$e.read(t,r)}Zp.statSync=V$e;function jL(t={}){return t instanceof qL.default?t:new qL.default(t)}});var lie=_((qTt,aie)=>{aie.exports=J$e;function J$e(t,e){var r,o,a,n=!0;Array.isArray(t)?(r=[],o=t.length):(a=Object.keys(t),r={},o=a.length);function u(p){function h(){e&&e(p,r),e=null}n?process.nextTick(h):h()}function A(p,h,E){r[p]=E,(--o===0||h)&&u(h)}o?a?a.forEach(function(p){t[p](function(h,E){A(p,h,E)})}):t.forEach(function(p,h){p(function(E,I){A(h,E,I)})}):u(null),n=!1}});var YL=_(EP=>{"use strict";Object.defineProperty(EP,"__esModule",{value:!0});EP.IS_SUPPORT_READDIR_WITH_FILE_TYPES=void 0;var yP=process.versions.node.split(".");if(yP[0]===void 0||yP[1]===void 0)throw new Error(`Unexpected behavior. The 'process.versions.node' variable has invalid value: ${process.versions.node}`);var cie=Number.parseInt(yP[0],10),z$e=Number.parseInt(yP[1],10),uie=10,X$e=10,Z$e=cie>uie,$$e=cie===uie&&z$e>=X$e;EP.IS_SUPPORT_READDIR_WITH_FILE_TYPES=Z$e||$$e});var Aie=_(CP=>{"use strict";Object.defineProperty(CP,"__esModule",{value:!0});CP.createDirentFromStats=void 0;var WL=class{constructor(e,r){this.name=e,this.isBlockDevice=r.isBlockDevice.bind(r),this.isCharacterDevice=r.isCharacterDevice.bind(r),this.isDirectory=r.isDirectory.bind(r),this.isFIFO=r.isFIFO.bind(r),this.isFile=r.isFile.bind(r),this.isSocket=r.isSocket.bind(r),this.isSymbolicLink=r.isSymbolicLink.bind(r)}};function eet(t,e){return new WL(t,e)}CP.createDirentFromStats=eet});var KL=_(wP=>{"use strict";Object.defineProperty(wP,"__esModule",{value:!0});wP.fs=void 0;var tet=Aie();wP.fs=tet});var VL=_(IP=>{"use strict";Object.defineProperty(IP,"__esModule",{value:!0});IP.joinPathSegments=void 0;function ret(t,e,r){return t.endsWith(r)?t+e:t+r+e}IP.joinPathSegments=ret});var mie=_($p=>{"use strict";Object.defineProperty($p,"__esModule",{value:!0});$p.readdir=$p.readdirWithFileTypes=$p.read=void 0;var net=Cd(),fie=lie(),iet=YL(),pie=KL(),hie=VL();function set(t,e,r){if(!e.stats&&iet.IS_SUPPORT_READDIR_WITH_FILE_TYPES){gie(t,e,r);return}die(t,e,r)}$p.read=set;function gie(t,e,r){e.fs.readdir(t,{withFileTypes:!0},(o,a)=>{if(o!==null){BP(r,o);return}let n=a.map(A=>({dirent:A,name:A.name,path:hie.joinPathSegments(t,A.name,e.pathSegmentSeparator)}));if(!e.followSymbolicLinks){JL(r,n);return}let u=n.map(A=>oet(A,e));fie(u,(A,p)=>{if(A!==null){BP(r,A);return}JL(r,p)})})}$p.readdirWithFileTypes=gie;function oet(t,e){return r=>{if(!t.dirent.isSymbolicLink()){r(null,t);return}e.fs.stat(t.path,(o,a)=>{if(o!==null){if(e.throwErrorOnBrokenSymbolicLink){r(o);return}r(null,t);return}t.dirent=pie.fs.createDirentFromStats(t.name,a),r(null,t)})}}function die(t,e,r){e.fs.readdir(t,(o,a)=>{if(o!==null){BP(r,o);return}let n=a.map(u=>{let A=hie.joinPathSegments(t,u,e.pathSegmentSeparator);return p=>{net.stat(A,e.fsStatSettings,(h,E)=>{if(h!==null){p(h);return}let I={name:u,path:A,dirent:pie.fs.createDirentFromStats(u,E)};e.stats&&(I.stats=E),p(null,I)})}});fie(n,(u,A)=>{if(u!==null){BP(r,u);return}JL(r,A)})})}$p.readdir=die;function BP(t,e){t(e)}function JL(t,e){t(null,e)}});var Iie=_(eh=>{"use strict";Object.defineProperty(eh,"__esModule",{value:!0});eh.readdir=eh.readdirWithFileTypes=eh.read=void 0;var aet=Cd(),cet=YL(),yie=KL(),Eie=VL();function uet(t,e){return!e.stats&&cet.IS_SUPPORT_READDIR_WITH_FILE_TYPES?Cie(t,e):wie(t,e)}eh.read=uet;function Cie(t,e){return e.fs.readdirSync(t,{withFileTypes:!0}).map(o=>{let a={dirent:o,name:o.name,path:Eie.joinPathSegments(t,o.name,e.pathSegmentSeparator)};if(a.dirent.isSymbolicLink()&&e.followSymbolicLinks)try{let n=e.fs.statSync(a.path);a.dirent=yie.fs.createDirentFromStats(a.name,n)}catch(n){if(e.throwErrorOnBrokenSymbolicLink)throw n}return a})}eh.readdirWithFileTypes=Cie;function wie(t,e){return e.fs.readdirSync(t).map(o=>{let a=Eie.joinPathSegments(t,o,e.pathSegmentSeparator),n=aet.statSync(a,e.fsStatSettings),u={name:o,path:a,dirent:yie.fs.createDirentFromStats(o,n)};return e.stats&&(u.stats=n),u})}eh.readdir=wie});var Bie=_(th=>{"use strict";Object.defineProperty(th,"__esModule",{value:!0});th.createFileSystemAdapter=th.FILE_SYSTEM_ADAPTER=void 0;var rE=ve("fs");th.FILE_SYSTEM_ADAPTER={lstat:rE.lstat,stat:rE.stat,lstatSync:rE.lstatSync,statSync:rE.statSync,readdir:rE.readdir,readdirSync:rE.readdirSync};function Aet(t){return t===void 0?th.FILE_SYSTEM_ADAPTER:Object.assign(Object.assign({},th.FILE_SYSTEM_ADAPTER),t)}th.createFileSystemAdapter=Aet});var vie=_(XL=>{"use strict";Object.defineProperty(XL,"__esModule",{value:!0});var fet=ve("path"),pet=Cd(),het=Bie(),zL=class{constructor(e={}){this._options=e,this.followSymbolicLinks=this._getValue(this._options.followSymbolicLinks,!1),this.fs=het.createFileSystemAdapter(this._options.fs),this.pathSegmentSeparator=this._getValue(this._options.pathSegmentSeparator,fet.sep),this.stats=this._getValue(this._options.stats,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!0),this.fsStatSettings=new pet.Settings({followSymbolicLink:this.followSymbolicLinks,fs:this.fs,throwErrorOnBrokenSymbolicLink:this.throwErrorOnBrokenSymbolicLink})}_getValue(e,r){return e??r}};XL.default=zL});var vP=_(rh=>{"use strict";Object.defineProperty(rh,"__esModule",{value:!0});rh.Settings=rh.scandirSync=rh.scandir=void 0;var Die=mie(),get=Iie(),ZL=vie();rh.Settings=ZL.default;function det(t,e,r){if(typeof e=="function"){Die.read(t,$L(),e);return}Die.read(t,$L(e),r)}rh.scandir=det;function met(t,e){let r=$L(e);return get.read(t,r)}rh.scandirSync=met;function $L(t={}){return t instanceof ZL.default?t:new ZL.default(t)}});var Pie=_((ZTt,Sie)=>{"use strict";function yet(t){var e=new t,r=e;function o(){var n=e;return n.next?e=n.next:(e=new t,r=e),n.next=null,n}function a(n){r.next=n,r=n}return{get:o,release:a}}Sie.exports=yet});var xie=_(($Tt,eO)=>{"use strict";var Eet=Pie();function bie(t,e,r){if(typeof t=="function"&&(r=e,e=t,t=null),r<1)throw new Error("fastqueue concurrency must be greater than 1");var o=Eet(Cet),a=null,n=null,u=0,A=null,p={push:R,drain:Gl,saturated:Gl,pause:E,paused:!1,concurrency:r,running:h,resume:x,idle:C,length:I,getQueue:v,unshift:L,empty:Gl,kill:J,killAndDrain:te,error:ae};return p;function h(){return u}function E(){p.paused=!0}function I(){for(var fe=a,ce=0;fe;)fe=fe.next,ce++;return ce}function v(){for(var fe=a,ce=[];fe;)ce.push(fe.value),fe=fe.next;return ce}function x(){if(!!p.paused){p.paused=!1;for(var fe=0;fe{"use strict";Object.defineProperty(Zu,"__esModule",{value:!0});Zu.joinPathSegments=Zu.replacePathSegmentSeparator=Zu.isAppliedFilter=Zu.isFatalError=void 0;function Iet(t,e){return t.errorFilter===null?!0:!t.errorFilter(e)}Zu.isFatalError=Iet;function Bet(t,e){return t===null||t(e)}Zu.isAppliedFilter=Bet;function vet(t,e){return t.split(/[/\\]/).join(e)}Zu.replacePathSegmentSeparator=vet;function Det(t,e,r){return t===""?e:t.endsWith(r)?t+e:t+r+e}Zu.joinPathSegments=Det});var nO=_(rO=>{"use strict";Object.defineProperty(rO,"__esModule",{value:!0});var Pet=DP(),tO=class{constructor(e,r){this._root=e,this._settings=r,this._root=Pet.replacePathSegmentSeparator(e,r.pathSegmentSeparator)}};rO.default=tO});var oO=_(sO=>{"use strict";Object.defineProperty(sO,"__esModule",{value:!0});var bet=ve("events"),xet=vP(),ket=xie(),SP=DP(),Qet=nO(),iO=class extends Qet.default{constructor(e,r){super(e,r),this._settings=r,this._scandir=xet.scandir,this._emitter=new bet.EventEmitter,this._queue=ket(this._worker.bind(this),this._settings.concurrency),this._isFatalError=!1,this._isDestroyed=!1,this._queue.drain=()=>{this._isFatalError||this._emitter.emit("end")}}read(){return this._isFatalError=!1,this._isDestroyed=!1,setImmediate(()=>{this._pushToQueue(this._root,this._settings.basePath)}),this._emitter}get isDestroyed(){return this._isDestroyed}destroy(){if(this._isDestroyed)throw new Error("The reader is already destroyed");this._isDestroyed=!0,this._queue.killAndDrain()}onEntry(e){this._emitter.on("entry",e)}onError(e){this._emitter.once("error",e)}onEnd(e){this._emitter.once("end",e)}_pushToQueue(e,r){let o={directory:e,base:r};this._queue.push(o,a=>{a!==null&&this._handleError(a)})}_worker(e,r){this._scandir(e.directory,this._settings.fsScandirSettings,(o,a)=>{if(o!==null){r(o,void 0);return}for(let n of a)this._handleEntry(n,e.base);r(null,void 0)})}_handleError(e){this._isDestroyed||!SP.isFatalError(this._settings,e)||(this._isFatalError=!0,this._isDestroyed=!0,this._emitter.emit("error",e))}_handleEntry(e,r){if(this._isDestroyed||this._isFatalError)return;let o=e.path;r!==void 0&&(e.path=SP.joinPathSegments(r,e.name,this._settings.pathSegmentSeparator)),SP.isAppliedFilter(this._settings.entryFilter,e)&&this._emitEntry(e),e.dirent.isDirectory()&&SP.isAppliedFilter(this._settings.deepFilter,e)&&this._pushToQueue(o,r===void 0?void 0:e.path)}_emitEntry(e){this._emitter.emit("entry",e)}};sO.default=iO});var kie=_(lO=>{"use strict";Object.defineProperty(lO,"__esModule",{value:!0});var Fet=oO(),aO=class{constructor(e,r){this._root=e,this._settings=r,this._reader=new Fet.default(this._root,this._settings),this._storage=[]}read(e){this._reader.onError(r=>{Ret(e,r)}),this._reader.onEntry(r=>{this._storage.push(r)}),this._reader.onEnd(()=>{Tet(e,this._storage)}),this._reader.read()}};lO.default=aO;function Ret(t,e){t(e)}function Tet(t,e){t(null,e)}});var Qie=_(uO=>{"use strict";Object.defineProperty(uO,"__esModule",{value:!0});var Net=ve("stream"),Let=oO(),cO=class{constructor(e,r){this._root=e,this._settings=r,this._reader=new Let.default(this._root,this._settings),this._stream=new Net.Readable({objectMode:!0,read:()=>{},destroy:()=>{this._reader.isDestroyed||this._reader.destroy()}})}read(){return this._reader.onError(e=>{this._stream.emit("error",e)}),this._reader.onEntry(e=>{this._stream.push(e)}),this._reader.onEnd(()=>{this._stream.push(null)}),this._reader.read(),this._stream}};uO.default=cO});var Fie=_(fO=>{"use strict";Object.defineProperty(fO,"__esModule",{value:!0});var Oet=vP(),PP=DP(),Met=nO(),AO=class extends Met.default{constructor(){super(...arguments),this._scandir=Oet.scandirSync,this._storage=[],this._queue=new Set}read(){return this._pushToQueue(this._root,this._settings.basePath),this._handleQueue(),this._storage}_pushToQueue(e,r){this._queue.add({directory:e,base:r})}_handleQueue(){for(let e of this._queue.values())this._handleDirectory(e.directory,e.base)}_handleDirectory(e,r){try{let o=this._scandir(e,this._settings.fsScandirSettings);for(let a of o)this._handleEntry(a,r)}catch(o){this._handleError(o)}}_handleError(e){if(!!PP.isFatalError(this._settings,e))throw e}_handleEntry(e,r){let o=e.path;r!==void 0&&(e.path=PP.joinPathSegments(r,e.name,this._settings.pathSegmentSeparator)),PP.isAppliedFilter(this._settings.entryFilter,e)&&this._pushToStorage(e),e.dirent.isDirectory()&&PP.isAppliedFilter(this._settings.deepFilter,e)&&this._pushToQueue(o,r===void 0?void 0:e.path)}_pushToStorage(e){this._storage.push(e)}};fO.default=AO});var Rie=_(hO=>{"use strict";Object.defineProperty(hO,"__esModule",{value:!0});var Uet=Fie(),pO=class{constructor(e,r){this._root=e,this._settings=r,this._reader=new Uet.default(this._root,this._settings)}read(){return this._reader.read()}};hO.default=pO});var Tie=_(dO=>{"use strict";Object.defineProperty(dO,"__esModule",{value:!0});var _et=ve("path"),Het=vP(),gO=class{constructor(e={}){this._options=e,this.basePath=this._getValue(this._options.basePath,void 0),this.concurrency=this._getValue(this._options.concurrency,Number.POSITIVE_INFINITY),this.deepFilter=this._getValue(this._options.deepFilter,null),this.entryFilter=this._getValue(this._options.entryFilter,null),this.errorFilter=this._getValue(this._options.errorFilter,null),this.pathSegmentSeparator=this._getValue(this._options.pathSegmentSeparator,_et.sep),this.fsScandirSettings=new Het.Settings({followSymbolicLinks:this._options.followSymbolicLinks,fs:this._options.fs,pathSegmentSeparator:this._options.pathSegmentSeparator,stats:this._options.stats,throwErrorOnBrokenSymbolicLink:this._options.throwErrorOnBrokenSymbolicLink})}_getValue(e,r){return e??r}};dO.default=gO});var xP=_($u=>{"use strict";Object.defineProperty($u,"__esModule",{value:!0});$u.Settings=$u.walkStream=$u.walkSync=$u.walk=void 0;var Nie=kie(),qet=Qie(),jet=Rie(),mO=Tie();$u.Settings=mO.default;function Get(t,e,r){if(typeof e=="function"){new Nie.default(t,bP()).read(e);return}new Nie.default(t,bP(e)).read(r)}$u.walk=Get;function Yet(t,e){let r=bP(e);return new jet.default(t,r).read()}$u.walkSync=Yet;function Wet(t,e){let r=bP(e);return new qet.default(t,r).read()}$u.walkStream=Wet;function bP(t={}){return t instanceof mO.default?t:new mO.default(t)}});var kP=_(EO=>{"use strict";Object.defineProperty(EO,"__esModule",{value:!0});var Ket=ve("path"),Vet=Cd(),Lie=Sf(),yO=class{constructor(e){this._settings=e,this._fsStatSettings=new Vet.Settings({followSymbolicLink:this._settings.followSymbolicLinks,fs:this._settings.fs,throwErrorOnBrokenSymbolicLink:this._settings.followSymbolicLinks})}_getFullEntryPath(e){return Ket.resolve(this._settings.cwd,e)}_makeEntry(e,r){let o={name:r,path:r,dirent:Lie.fs.createDirentFromStats(r,e)};return this._settings.stats&&(o.stats=e),o}_isFatalError(e){return!Lie.errno.isEnoentCodeError(e)&&!this._settings.suppressErrors}};EO.default=yO});var IO=_(wO=>{"use strict";Object.defineProperty(wO,"__esModule",{value:!0});var Jet=ve("stream"),zet=Cd(),Xet=xP(),Zet=kP(),CO=class extends Zet.default{constructor(){super(...arguments),this._walkStream=Xet.walkStream,this._stat=zet.stat}dynamic(e,r){return this._walkStream(e,r)}static(e,r){let o=e.map(this._getFullEntryPath,this),a=new Jet.PassThrough({objectMode:!0});a._write=(n,u,A)=>this._getEntry(o[n],e[n],r).then(p=>{p!==null&&r.entryFilter(p)&&a.push(p),n===o.length-1&&a.end(),A()}).catch(A);for(let n=0;nthis._makeEntry(a,r)).catch(a=>{if(o.errorFilter(a))return null;throw a})}_getStat(e){return new Promise((r,o)=>{this._stat(e,this._fsStatSettings,(a,n)=>a===null?r(n):o(a))})}};wO.default=CO});var Oie=_(vO=>{"use strict";Object.defineProperty(vO,"__esModule",{value:!0});var $et=xP(),ett=kP(),ttt=IO(),BO=class extends ett.default{constructor(){super(...arguments),this._walkAsync=$et.walk,this._readerStream=new ttt.default(this._settings)}dynamic(e,r){return new Promise((o,a)=>{this._walkAsync(e,r,(n,u)=>{n===null?o(u):a(n)})})}async static(e,r){let o=[],a=this._readerStream.static(e,r);return new Promise((n,u)=>{a.once("error",u),a.on("data",A=>o.push(A)),a.once("end",()=>n(o))})}};vO.default=BO});var Mie=_(SO=>{"use strict";Object.defineProperty(SO,"__esModule",{value:!0});var nE=Sf(),DO=class{constructor(e,r,o){this._patterns=e,this._settings=r,this._micromatchOptions=o,this._storage=[],this._fillStorage()}_fillStorage(){let e=nE.pattern.expandPatternsWithBraceExpansion(this._patterns);for(let r of e){let o=this._getPatternSegments(r),a=this._splitSegmentsIntoSections(o);this._storage.push({complete:a.length<=1,pattern:r,segments:o,sections:a})}}_getPatternSegments(e){return nE.pattern.getPatternParts(e,this._micromatchOptions).map(o=>nE.pattern.isDynamicPattern(o,this._settings)?{dynamic:!0,pattern:o,patternRe:nE.pattern.makeRe(o,this._micromatchOptions)}:{dynamic:!1,pattern:o})}_splitSegmentsIntoSections(e){return nE.array.splitWhen(e,r=>r.dynamic&&nE.pattern.hasGlobStar(r.pattern))}};SO.default=DO});var Uie=_(bO=>{"use strict";Object.defineProperty(bO,"__esModule",{value:!0});var rtt=Mie(),PO=class extends rtt.default{match(e){let r=e.split("/"),o=r.length,a=this._storage.filter(n=>!n.complete||n.segments.length>o);for(let n of a){let u=n.sections[0];if(!n.complete&&o>u.length||r.every((p,h)=>{let E=n.segments[h];return!!(E.dynamic&&E.patternRe.test(p)||!E.dynamic&&E.pattern===p)}))return!0}return!1}};bO.default=PO});var _ie=_(kO=>{"use strict";Object.defineProperty(kO,"__esModule",{value:!0});var QP=Sf(),ntt=Uie(),xO=class{constructor(e,r){this._settings=e,this._micromatchOptions=r}getFilter(e,r,o){let a=this._getMatcher(r),n=this._getNegativePatternsRe(o);return u=>this._filter(e,u,a,n)}_getMatcher(e){return new ntt.default(e,this._settings,this._micromatchOptions)}_getNegativePatternsRe(e){let r=e.filter(QP.pattern.isAffectDepthOfReadingPattern);return QP.pattern.convertPatternsToRe(r,this._micromatchOptions)}_filter(e,r,o,a){if(this._isSkippedByDeep(e,r.path)||this._isSkippedSymbolicLink(r))return!1;let n=QP.path.removeLeadingDotSegment(r.path);return this._isSkippedByPositivePatterns(n,o)?!1:this._isSkippedByNegativePatterns(n,a)}_isSkippedByDeep(e,r){return this._settings.deep===1/0?!1:this._getEntryLevel(e,r)>=this._settings.deep}_getEntryLevel(e,r){let o=r.split("/").length;if(e==="")return o;let a=e.split("/").length;return o-a}_isSkippedSymbolicLink(e){return!this._settings.followSymbolicLinks&&e.dirent.isSymbolicLink()}_isSkippedByPositivePatterns(e,r){return!this._settings.baseNameMatch&&!r.match(e)}_isSkippedByNegativePatterns(e,r){return!QP.pattern.matchAny(e,r)}};kO.default=xO});var Hie=_(FO=>{"use strict";Object.defineProperty(FO,"__esModule",{value:!0});var wd=Sf(),QO=class{constructor(e,r){this._settings=e,this._micromatchOptions=r,this.index=new Map}getFilter(e,r){let o=wd.pattern.convertPatternsToRe(e,this._micromatchOptions),a=wd.pattern.convertPatternsToRe(r,this._micromatchOptions);return n=>this._filter(n,o,a)}_filter(e,r,o){if(this._settings.unique&&this._isDuplicateEntry(e)||this._onlyFileFilter(e)||this._onlyDirectoryFilter(e)||this._isSkippedByAbsoluteNegativePatterns(e.path,o))return!1;let a=this._settings.baseNameMatch?e.name:e.path,n=e.dirent.isDirectory(),u=this._isMatchToPatterns(a,r,n)&&!this._isMatchToPatterns(e.path,o,n);return this._settings.unique&&u&&this._createIndexRecord(e),u}_isDuplicateEntry(e){return this.index.has(e.path)}_createIndexRecord(e){this.index.set(e.path,void 0)}_onlyFileFilter(e){return this._settings.onlyFiles&&!e.dirent.isFile()}_onlyDirectoryFilter(e){return this._settings.onlyDirectories&&!e.dirent.isDirectory()}_isSkippedByAbsoluteNegativePatterns(e,r){if(!this._settings.absolute)return!1;let o=wd.path.makeAbsolute(this._settings.cwd,e);return wd.pattern.matchAny(o,r)}_isMatchToPatterns(e,r,o){let a=wd.path.removeLeadingDotSegment(e),n=wd.pattern.matchAny(a,r);return!n&&o?wd.pattern.matchAny(a+"/",r):n}};FO.default=QO});var qie=_(TO=>{"use strict";Object.defineProperty(TO,"__esModule",{value:!0});var itt=Sf(),RO=class{constructor(e){this._settings=e}getFilter(){return e=>this._isNonFatalError(e)}_isNonFatalError(e){return itt.errno.isEnoentCodeError(e)||this._settings.suppressErrors}};TO.default=RO});var Gie=_(LO=>{"use strict";Object.defineProperty(LO,"__esModule",{value:!0});var jie=Sf(),NO=class{constructor(e){this._settings=e}getTransformer(){return e=>this._transform(e)}_transform(e){let r=e.path;return this._settings.absolute&&(r=jie.path.makeAbsolute(this._settings.cwd,r),r=jie.path.unixify(r)),this._settings.markDirectories&&e.dirent.isDirectory()&&(r+="/"),this._settings.objectMode?Object.assign(Object.assign({},e),{path:r}):r}};LO.default=NO});var FP=_(MO=>{"use strict";Object.defineProperty(MO,"__esModule",{value:!0});var stt=ve("path"),ott=_ie(),att=Hie(),ltt=qie(),ctt=Gie(),OO=class{constructor(e){this._settings=e,this.errorFilter=new ltt.default(this._settings),this.entryFilter=new att.default(this._settings,this._getMicromatchOptions()),this.deepFilter=new ott.default(this._settings,this._getMicromatchOptions()),this.entryTransformer=new ctt.default(this._settings)}_getRootDirectory(e){return stt.resolve(this._settings.cwd,e.base)}_getReaderOptions(e){let r=e.base==="."?"":e.base;return{basePath:r,pathSegmentSeparator:"/",concurrency:this._settings.concurrency,deepFilter:this.deepFilter.getFilter(r,e.positive,e.negative),entryFilter:this.entryFilter.getFilter(e.positive,e.negative),errorFilter:this.errorFilter.getFilter(),followSymbolicLinks:this._settings.followSymbolicLinks,fs:this._settings.fs,stats:this._settings.stats,throwErrorOnBrokenSymbolicLink:this._settings.throwErrorOnBrokenSymbolicLink,transform:this.entryTransformer.getTransformer()}}_getMicromatchOptions(){return{dot:this._settings.dot,matchBase:this._settings.baseNameMatch,nobrace:!this._settings.braceExpansion,nocase:!this._settings.caseSensitiveMatch,noext:!this._settings.extglob,noglobstar:!this._settings.globstar,posix:!0,strictSlashes:!1}}};MO.default=OO});var Yie=_(_O=>{"use strict";Object.defineProperty(_O,"__esModule",{value:!0});var utt=Oie(),Att=FP(),UO=class extends Att.default{constructor(){super(...arguments),this._reader=new utt.default(this._settings)}async read(e){let r=this._getRootDirectory(e),o=this._getReaderOptions(e);return(await this.api(r,e,o)).map(n=>o.transform(n))}api(e,r,o){return r.dynamic?this._reader.dynamic(e,o):this._reader.static(r.patterns,o)}};_O.default=UO});var Wie=_(qO=>{"use strict";Object.defineProperty(qO,"__esModule",{value:!0});var ftt=ve("stream"),ptt=IO(),htt=FP(),HO=class extends htt.default{constructor(){super(...arguments),this._reader=new ptt.default(this._settings)}read(e){let r=this._getRootDirectory(e),o=this._getReaderOptions(e),a=this.api(r,e,o),n=new ftt.Readable({objectMode:!0,read:()=>{}});return a.once("error",u=>n.emit("error",u)).on("data",u=>n.emit("data",o.transform(u))).once("end",()=>n.emit("end")),n.once("close",()=>a.destroy()),n}api(e,r,o){return r.dynamic?this._reader.dynamic(e,o):this._reader.static(r.patterns,o)}};qO.default=HO});var Kie=_(GO=>{"use strict";Object.defineProperty(GO,"__esModule",{value:!0});var gtt=Cd(),dtt=xP(),mtt=kP(),jO=class extends mtt.default{constructor(){super(...arguments),this._walkSync=dtt.walkSync,this._statSync=gtt.statSync}dynamic(e,r){return this._walkSync(e,r)}static(e,r){let o=[];for(let a of e){let n=this._getFullEntryPath(a),u=this._getEntry(n,a,r);u===null||!r.entryFilter(u)||o.push(u)}return o}_getEntry(e,r,o){try{let a=this._getStat(e);return this._makeEntry(a,r)}catch(a){if(o.errorFilter(a))return null;throw a}}_getStat(e){return this._statSync(e,this._fsStatSettings)}};GO.default=jO});var Vie=_(WO=>{"use strict";Object.defineProperty(WO,"__esModule",{value:!0});var ytt=Kie(),Ett=FP(),YO=class extends Ett.default{constructor(){super(...arguments),this._reader=new ytt.default(this._settings)}read(e){let r=this._getRootDirectory(e),o=this._getReaderOptions(e);return this.api(r,e,o).map(o.transform)}api(e,r,o){return r.dynamic?this._reader.dynamic(e,o):this._reader.static(r.patterns,o)}};WO.default=YO});var Jie=_(sE=>{"use strict";Object.defineProperty(sE,"__esModule",{value:!0});sE.DEFAULT_FILE_SYSTEM_ADAPTER=void 0;var iE=ve("fs"),Ctt=ve("os"),wtt=Math.max(Ctt.cpus().length,1);sE.DEFAULT_FILE_SYSTEM_ADAPTER={lstat:iE.lstat,lstatSync:iE.lstatSync,stat:iE.stat,statSync:iE.statSync,readdir:iE.readdir,readdirSync:iE.readdirSync};var KO=class{constructor(e={}){this._options=e,this.absolute=this._getValue(this._options.absolute,!1),this.baseNameMatch=this._getValue(this._options.baseNameMatch,!1),this.braceExpansion=this._getValue(this._options.braceExpansion,!0),this.caseSensitiveMatch=this._getValue(this._options.caseSensitiveMatch,!0),this.concurrency=this._getValue(this._options.concurrency,wtt),this.cwd=this._getValue(this._options.cwd,process.cwd()),this.deep=this._getValue(this._options.deep,1/0),this.dot=this._getValue(this._options.dot,!1),this.extglob=this._getValue(this._options.extglob,!0),this.followSymbolicLinks=this._getValue(this._options.followSymbolicLinks,!0),this.fs=this._getFileSystemMethods(this._options.fs),this.globstar=this._getValue(this._options.globstar,!0),this.ignore=this._getValue(this._options.ignore,[]),this.markDirectories=this._getValue(this._options.markDirectories,!1),this.objectMode=this._getValue(this._options.objectMode,!1),this.onlyDirectories=this._getValue(this._options.onlyDirectories,!1),this.onlyFiles=this._getValue(this._options.onlyFiles,!0),this.stats=this._getValue(this._options.stats,!1),this.suppressErrors=this._getValue(this._options.suppressErrors,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!1),this.unique=this._getValue(this._options.unique,!0),this.onlyDirectories&&(this.onlyFiles=!1),this.stats&&(this.objectMode=!0)}_getValue(e,r){return e===void 0?r:e}_getFileSystemMethods(e={}){return Object.assign(Object.assign({},sE.DEFAULT_FILE_SYSTEM_ADAPTER),e)}};sE.default=KO});var RP=_((vNt,Zie)=>{"use strict";var zie=Zne(),Xie=eie(),Itt=Yie(),Btt=Wie(),vtt=Vie(),VO=Jie(),Id=Sf();async function JO(t,e){oE(t);let r=zO(t,Itt.default,e),o=await Promise.all(r);return Id.array.flatten(o)}(function(t){function e(u,A){oE(u);let p=zO(u,vtt.default,A);return Id.array.flatten(p)}t.sync=e;function r(u,A){oE(u);let p=zO(u,Btt.default,A);return Id.stream.merge(p)}t.stream=r;function o(u,A){oE(u);let p=Xie.transform([].concat(u)),h=new VO.default(A);return zie.generate(p,h)}t.generateTasks=o;function a(u,A){oE(u);let p=new VO.default(A);return Id.pattern.isDynamicPattern(u,p)}t.isDynamicPattern=a;function n(u){return oE(u),Id.path.escape(u)}t.escapePath=n})(JO||(JO={}));function zO(t,e,r){let o=Xie.transform([].concat(t)),a=new VO.default(r),n=zie.generate(o,a),u=new e(a);return n.map(u.read,u)}function oE(t){if(![].concat(t).every(o=>Id.string.isString(o)&&!Id.string.isEmpty(o)))throw new TypeError("Patterns must be a string (non empty) or an array of strings")}Zie.exports=JO});var wn={};Vt(wn,{checksumFile:()=>NP,checksumPattern:()=>LP,makeHash:()=>zs});function zs(...t){let e=(0,TP.createHash)("sha512"),r="";for(let o of t)typeof o=="string"?r+=o:o&&(r&&(e.update(r),r=""),e.update(o));return r&&e.update(r),e.digest("hex")}async function NP(t,{baseFs:e,algorithm:r}={baseFs:oe,algorithm:"sha512"}){let o=await e.openPromise(t,"r");try{let n=Buffer.allocUnsafeSlow(65536),u=(0,TP.createHash)(r),A=0;for(;(A=await e.readPromise(o,n,0,65536))!==0;)u.update(A===65536?n:n.slice(0,A));return u.digest("hex")}finally{await e.closePromise(o)}}async function LP(t,{cwd:e}){let o=(await(0,XO.default)(t,{cwd:ue.fromPortablePath(e),onlyDirectories:!0})).map(A=>`${A}/**/*`),a=await(0,XO.default)([t,...o],{cwd:ue.fromPortablePath(e),onlyFiles:!1});a.sort();let n=await Promise.all(a.map(async A=>{let p=[Buffer.from(A)],h=ue.toPortablePath(A),E=await oe.lstatPromise(h);return E.isSymbolicLink()?p.push(Buffer.from(await oe.readlinkPromise(h))):E.isFile()&&p.push(await oe.readFilePromise(h)),p.join("\0")})),u=(0,TP.createHash)("sha512");for(let A of n)u.update(A);return u.digest("hex")}var TP,XO,nh=Et(()=>{St();TP=ve("crypto"),XO=$e(RP())});var W={};Vt(W,{areDescriptorsEqual:()=>nse,areIdentsEqual:()=>n1,areLocatorsEqual:()=>i1,areVirtualPackagesEquivalent:()=>Rtt,bindDescriptor:()=>Qtt,bindLocator:()=>Ftt,convertDescriptorToLocator:()=>OP,convertLocatorToDescriptor:()=>$O,convertPackageToLocator:()=>btt,convertToIdent:()=>Ptt,convertToManifestRange:()=>jtt,copyPackage:()=>e1,devirtualizeDescriptor:()=>t1,devirtualizeLocator:()=>r1,ensureDevirtualizedDescriptor:()=>xtt,ensureDevirtualizedLocator:()=>ktt,getIdentVendorPath:()=>nM,isPackageCompatible:()=>qP,isVirtualDescriptor:()=>bf,isVirtualLocator:()=>Hc,makeDescriptor:()=>In,makeIdent:()=>eA,makeLocator:()=>Qs,makeRange:()=>_P,parseDescriptor:()=>ih,parseFileStyleRange:()=>Htt,parseIdent:()=>Js,parseLocator:()=>xf,parseRange:()=>Bd,prettyDependent:()=>kL,prettyDescriptor:()=>jn,prettyIdent:()=>cs,prettyLocator:()=>qr,prettyLocatorNoColors:()=>xL,prettyRange:()=>cE,prettyReference:()=>o1,prettyResolution:()=>ZI,prettyWorkspace:()=>a1,renamePackage:()=>eM,slugifyIdent:()=>ZO,slugifyLocator:()=>lE,sortDescriptors:()=>uE,stringifyDescriptor:()=>Pa,stringifyIdent:()=>fn,stringifyLocator:()=>ba,tryParseDescriptor:()=>s1,tryParseIdent:()=>ise,tryParseLocator:()=>UP,tryParseRange:()=>_tt,virtualizeDescriptor:()=>tM,virtualizePackage:()=>rM});function eA(t,e){if(t?.startsWith("@"))throw new Error("Invalid scope: don't prefix it with '@'");return{identHash:zs(t,e),scope:t,name:e}}function In(t,e){return{identHash:t.identHash,scope:t.scope,name:t.name,descriptorHash:zs(t.identHash,e),range:e}}function Qs(t,e){return{identHash:t.identHash,scope:t.scope,name:t.name,locatorHash:zs(t.identHash,e),reference:e}}function Ptt(t){return{identHash:t.identHash,scope:t.scope,name:t.name}}function OP(t){return{identHash:t.identHash,scope:t.scope,name:t.name,locatorHash:t.descriptorHash,reference:t.range}}function $O(t){return{identHash:t.identHash,scope:t.scope,name:t.name,descriptorHash:t.locatorHash,range:t.reference}}function btt(t){return{identHash:t.identHash,scope:t.scope,name:t.name,locatorHash:t.locatorHash,reference:t.reference}}function eM(t,e){return{identHash:e.identHash,scope:e.scope,name:e.name,locatorHash:e.locatorHash,reference:e.reference,version:t.version,languageName:t.languageName,linkType:t.linkType,conditions:t.conditions,dependencies:new Map(t.dependencies),peerDependencies:new Map(t.peerDependencies),dependenciesMeta:new Map(t.dependenciesMeta),peerDependenciesMeta:new Map(t.peerDependenciesMeta),bin:new Map(t.bin)}}function e1(t){return eM(t,t)}function tM(t,e){if(e.includes("#"))throw new Error("Invalid entropy");return In(t,`virtual:${e}#${t.range}`)}function rM(t,e){if(e.includes("#"))throw new Error("Invalid entropy");return eM(t,Qs(t,`virtual:${e}#${t.reference}`))}function bf(t){return t.range.startsWith($I)}function Hc(t){return t.reference.startsWith($I)}function t1(t){if(!bf(t))throw new Error("Not a virtual descriptor");return In(t,t.range.replace(MP,""))}function r1(t){if(!Hc(t))throw new Error("Not a virtual descriptor");return Qs(t,t.reference.replace(MP,""))}function xtt(t){return bf(t)?In(t,t.range.replace(MP,"")):t}function ktt(t){return Hc(t)?Qs(t,t.reference.replace(MP,"")):t}function Qtt(t,e){return t.range.includes("::")?t:In(t,`${t.range}::${aE.default.stringify(e)}`)}function Ftt(t,e){return t.reference.includes("::")?t:Qs(t,`${t.reference}::${aE.default.stringify(e)}`)}function n1(t,e){return t.identHash===e.identHash}function nse(t,e){return t.descriptorHash===e.descriptorHash}function i1(t,e){return t.locatorHash===e.locatorHash}function Rtt(t,e){if(!Hc(t))throw new Error("Invalid package type");if(!Hc(e))throw new Error("Invalid package type");if(!n1(t,e)||t.dependencies.size!==e.dependencies.size)return!1;for(let r of t.dependencies.values()){let o=e.dependencies.get(r.identHash);if(!o||!nse(r,o))return!1}return!0}function Js(t){let e=ise(t);if(!e)throw new Error(`Invalid ident (${t})`);return e}function ise(t){let e=t.match(Ttt);if(!e)return null;let[,r,o]=e;return eA(typeof r<"u"?r:null,o)}function ih(t,e=!1){let r=s1(t,e);if(!r)throw new Error(`Invalid descriptor (${t})`);return r}function s1(t,e=!1){let r=e?t.match(Ntt):t.match(Ltt);if(!r)return null;let[,o,a,n]=r;if(n==="unknown")throw new Error(`Invalid range (${t})`);let u=typeof o<"u"?o:null,A=typeof n<"u"?n:"unknown";return In(eA(u,a),A)}function xf(t,e=!1){let r=UP(t,e);if(!r)throw new Error(`Invalid locator (${t})`);return r}function UP(t,e=!1){let r=e?t.match(Ott):t.match(Mtt);if(!r)return null;let[,o,a,n]=r;if(n==="unknown")throw new Error(`Invalid reference (${t})`);let u=typeof o<"u"?o:null,A=typeof n<"u"?n:"unknown";return Qs(eA(u,a),A)}function Bd(t,e){let r=t.match(Utt);if(r===null)throw new Error(`Invalid range (${t})`);let o=typeof r[1]<"u"?r[1]:null;if(typeof e?.requireProtocol=="string"&&o!==e.requireProtocol)throw new Error(`Invalid protocol (${o})`);if(e?.requireProtocol&&o===null)throw new Error(`Missing protocol (${o})`);let a=typeof r[3]<"u"?decodeURIComponent(r[2]):null;if(e?.requireSource&&a===null)throw new Error(`Missing source (${t})`);let n=typeof r[3]<"u"?decodeURIComponent(r[3]):decodeURIComponent(r[2]),u=e?.parseSelector?aE.default.parse(n):n,A=typeof r[4]<"u"?aE.default.parse(r[4]):null;return{protocol:o,source:a,selector:u,params:A}}function _tt(t,e){try{return Bd(t,e)}catch{return null}}function Htt(t,{protocol:e}){let{selector:r,params:o}=Bd(t,{requireProtocol:e,requireBindings:!0});if(typeof o.locator!="string")throw new Error(`Assertion failed: Invalid bindings for ${t}`);return{parentLocator:xf(o.locator,!0),path:r}}function $ie(t){return t=t.replaceAll("%","%25"),t=t.replaceAll(":","%3A"),t=t.replaceAll("#","%23"),t}function qtt(t){return t===null?!1:Object.entries(t).length>0}function _P({protocol:t,source:e,selector:r,params:o}){let a="";return t!==null&&(a+=`${t}`),e!==null&&(a+=`${$ie(e)}#`),a+=$ie(r),qtt(o)&&(a+=`::${aE.default.stringify(o)}`),a}function jtt(t){let{params:e,protocol:r,source:o,selector:a}=Bd(t);for(let n in e)n.startsWith("__")&&delete e[n];return _P({protocol:r,source:o,params:e,selector:a})}function fn(t){return t.scope?`@${t.scope}/${t.name}`:`${t.name}`}function Pa(t){return t.scope?`@${t.scope}/${t.name}@${t.range}`:`${t.name}@${t.range}`}function ba(t){return t.scope?`@${t.scope}/${t.name}@${t.reference}`:`${t.name}@${t.reference}`}function ZO(t){return t.scope!==null?`@${t.scope}-${t.name}`:t.name}function lE(t){let{protocol:e,selector:r}=Bd(t.reference),o=e!==null?e.replace(Gtt,""):"exotic",a=ese.default.valid(r),n=a!==null?`${o}-${a}`:`${o}`,u=10;return t.scope?`${ZO(t)}-${n}-${t.locatorHash.slice(0,u)}`:`${ZO(t)}-${n}-${t.locatorHash.slice(0,u)}`}function cs(t,e){return e.scope?`${Mt(t,`@${e.scope}/`,yt.SCOPE)}${Mt(t,e.name,yt.NAME)}`:`${Mt(t,e.name,yt.NAME)}`}function HP(t){if(t.startsWith($I)){let e=HP(t.substring(t.indexOf("#")+1)),r=t.substring($I.length,$I.length+Dtt);return`${e} [${r}]`}else return t.replace(Ytt,"?[...]")}function cE(t,e){return`${Mt(t,HP(e),yt.RANGE)}`}function jn(t,e){return`${cs(t,e)}${Mt(t,"@",yt.RANGE)}${cE(t,e.range)}`}function o1(t,e){return`${Mt(t,HP(e),yt.REFERENCE)}`}function qr(t,e){return`${cs(t,e)}${Mt(t,"@",yt.REFERENCE)}${o1(t,e.reference)}`}function xL(t){return`${fn(t)}@${HP(t.reference)}`}function uE(t){return ks(t,[e=>fn(e),e=>e.range])}function a1(t,e){return cs(t,e.anchoredLocator)}function ZI(t,e,r){let o=bf(e)?t1(e):e;return r===null?`${jn(t,o)} \u2192 ${bL(t).Cross}`:o.identHash===r.identHash?`${jn(t,o)} \u2192 ${o1(t,r.reference)}`:`${jn(t,o)} \u2192 ${qr(t,r)}`}function kL(t,e,r){return r===null?`${qr(t,e)}`:`${qr(t,e)} (via ${cE(t,r.range)})`}function nM(t){return`node_modules/${fn(t)}`}function qP(t,e){return t.conditions?Stt(t.conditions,r=>{let[,o,a]=r.match(rse),n=e[o];return n?n.includes(a):!0}):!0}var aE,ese,tse,$I,Dtt,rse,Stt,MP,Ttt,Ntt,Ltt,Ott,Mtt,Utt,Gtt,Ytt,bo=Et(()=>{aE=$e(ve("querystring")),ese=$e(zn()),tse=$e(eX());jl();nh();ql();bo();$I="virtual:",Dtt=5,rse=/(os|cpu|libc)=([a-z0-9_-]+)/,Stt=(0,tse.makeParser)(rse);MP=/^[^#]*#/;Ttt=/^(?:@([^/]+?)\/)?([^@/]+)$/;Ntt=/^(?:@([^/]+?)\/)?([^@/]+?)(?:@(.+))$/,Ltt=/^(?:@([^/]+?)\/)?([^@/]+?)(?:@(.+))?$/;Ott=/^(?:@([^/]+?)\/)?([^@/]+?)(?:@(.+))$/,Mtt=/^(?:@([^/]+?)\/)?([^@/]+?)(?:@(.+))?$/;Utt=/^([^#:]*:)?((?:(?!::)[^#])*)(?:#((?:(?!::).)*))?(?:::(.*))?$/;Gtt=/:$/;Ytt=/\?.*/});var sse,ose=Et(()=>{bo();sse={hooks:{reduceDependency:(t,e,r,o,{resolver:a,resolveOptions:n})=>{for(let{pattern:u,reference:A}of e.topLevelWorkspace.manifest.resolutions){if(u.from&&(u.from.fullName!==fn(r)||e.configuration.normalizeLocator(Qs(Js(u.from.fullName),u.from.description??r.reference)).locatorHash!==r.locatorHash)||u.descriptor.fullName!==fn(t)||e.configuration.normalizeDependency(In(xf(u.descriptor.fullName),u.descriptor.description??t.range)).descriptorHash!==t.descriptorHash)continue;return a.bindDescriptor(e.configuration.normalizeDependency(In(t,A)),e.topLevelWorkspace.anchoredLocator,n)}return t},validateProject:async(t,e)=>{for(let r of t.workspaces){let o=a1(t.configuration,r);await t.configuration.triggerHook(a=>a.validateWorkspace,r,{reportWarning:(a,n)=>e.reportWarning(a,`${o}: ${n}`),reportError:(a,n)=>e.reportError(a,`${o}: ${n}`)})}},validateWorkspace:async(t,e)=>{let{manifest:r}=t;r.resolutions.length&&t.cwd!==t.project.cwd&&r.errors.push(new Error("Resolutions field will be ignored"));for(let o of r.errors)e.reportWarning(57,o.message)}}}});var l1,Xn,vd=Et(()=>{l1=class{supportsDescriptor(e,r){return!!(e.range.startsWith(l1.protocol)||r.project.tryWorkspaceByDescriptor(e)!==null)}supportsLocator(e,r){return!!e.reference.startsWith(l1.protocol)}shouldPersistResolution(e,r){return!1}bindDescriptor(e,r,o){return e}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,o){return[o.project.getWorkspaceByDescriptor(e).anchoredLocator]}async getSatisfying(e,r,o,a){let[n]=await this.getCandidates(e,r,a);return{locators:o.filter(u=>u.locatorHash===n.locatorHash),sorted:!1}}async resolve(e,r){let o=r.project.getWorkspaceByCwd(e.reference.slice(l1.protocol.length));return{...e,version:o.manifest.version||"0.0.0",languageName:"unknown",linkType:"SOFT",conditions:null,dependencies:r.project.configuration.normalizeDependencyMap(new Map([...o.manifest.dependencies,...o.manifest.devDependencies])),peerDependencies:new Map([...o.manifest.peerDependencies]),dependenciesMeta:o.manifest.dependenciesMeta,peerDependenciesMeta:o.manifest.peerDependenciesMeta,bin:o.manifest.bin}}},Xn=l1;Xn.protocol="workspace:"});var kr={};Vt(kr,{SemVer:()=>Ase.SemVer,clean:()=>Ktt,getComparator:()=>cse,mergeComparators:()=>iM,satisfiesWithPrereleases:()=>kf,simplifyRanges:()=>sM,stringifyComparator:()=>use,validRange:()=>xa});function kf(t,e,r=!1){if(!t)return!1;let o=`${e}${r}`,a=ase.get(o);if(typeof a>"u")try{a=new sh.default.Range(e,{includePrerelease:!0,loose:r})}catch{return!1}finally{ase.set(o,a||null)}else if(a===null)return!1;let n;try{n=new sh.default.SemVer(t,a)}catch{return!1}return a.test(n)?!0:(n.prerelease&&(n.prerelease=[]),a.set.some(u=>{for(let A of u)A.semver.prerelease&&(A.semver.prerelease=[]);return u.every(A=>A.test(n))}))}function xa(t){if(t.indexOf(":")!==-1)return null;let e=lse.get(t);if(typeof e<"u")return e;try{e=new sh.default.Range(t)}catch{e=null}return lse.set(t,e),e}function Ktt(t){let e=Wtt.exec(t);return e?e[1]:null}function cse(t){if(t.semver===sh.default.Comparator.ANY)return{gt:null,lt:null};switch(t.operator){case"":return{gt:[">=",t.semver],lt:["<=",t.semver]};case">":case">=":return{gt:[t.operator,t.semver],lt:null};case"<":case"<=":return{gt:null,lt:[t.operator,t.semver]};default:throw new Error(`Assertion failed: Unexpected comparator operator (${t.operator})`)}}function iM(t){if(t.length===0)return null;let e=null,r=null;for(let o of t){if(o.gt){let a=e!==null?sh.default.compare(o.gt[1],e[1]):null;(a===null||a>0||a===0&&o.gt[0]===">")&&(e=o.gt)}if(o.lt){let a=r!==null?sh.default.compare(o.lt[1],r[1]):null;(a===null||a<0||a===0&&o.lt[0]==="<")&&(r=o.lt)}}if(e&&r){let o=sh.default.compare(e[1],r[1]);if(o===0&&(e[0]===">"||r[0]==="<")||o>0)return null}return{gt:e,lt:r}}function use(t){if(t.gt&&t.lt){if(t.gt[0]===">="&&t.lt[0]==="<="&&t.gt[1].version===t.lt[1].version)return t.gt[1].version;if(t.gt[0]===">="&&t.lt[0]==="<"){if(t.lt[1].version===`${t.gt[1].major+1}.0.0-0`)return`^${t.gt[1].version}`;if(t.lt[1].version===`${t.gt[1].major}.${t.gt[1].minor+1}.0-0`)return`~${t.gt[1].version}`}}let e=[];return t.gt&&e.push(t.gt[0]+t.gt[1].version),t.lt&&e.push(t.lt[0]+t.lt[1].version),e.length?e.join(" "):"*"}function sM(t){let e=t.map(o=>xa(o).set.map(a=>a.map(n=>cse(n)))),r=e.shift().map(o=>iM(o)).filter(o=>o!==null);for(let o of e){let a=[];for(let n of r)for(let u of o){let A=iM([n,...u]);A!==null&&a.push(A)}r=a}return r.length===0?null:r.map(o=>use(o)).join(" || ")}var sh,Ase,ase,lse,Wtt,Qf=Et(()=>{sh=$e(zn()),Ase=$e(zn()),ase=new Map;lse=new Map;Wtt=/^(?:[\sv=]*?)((0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?)(?:\s*)$/});function fse(t){let e=t.match(/^[ \t]+/m);return e?e[0]:" "}function pse(t){return t.charCodeAt(0)===65279?t.slice(1):t}function $o(t){return t.replace(/\\/g,"/")}function jP(t,{yamlCompatibilityMode:e}){return e?CL(t):typeof t>"u"||typeof t=="boolean"?t:null}function hse(t,e){let r=e.search(/[^!]/);if(r===-1)return"invalid";let o=r%2===0?"":"!",a=e.slice(r);return`${o}${t}=${a}`}function oM(t,e){return e.length===1?hse(t,e[0]):`(${e.map(r=>hse(t,r)).join(" | ")})`}var gse,AE,Ot,fE=Et(()=>{St();Nl();gse=$e(zn());vd();ql();Qf();bo();AE=class{constructor(){this.indent=" ";this.name=null;this.version=null;this.os=null;this.cpu=null;this.libc=null;this.type=null;this.packageManager=null;this.private=!1;this.license=null;this.main=null;this.module=null;this.browser=null;this.languageName=null;this.bin=new Map;this.scripts=new Map;this.dependencies=new Map;this.devDependencies=new Map;this.peerDependencies=new Map;this.workspaceDefinitions=[];this.dependenciesMeta=new Map;this.peerDependenciesMeta=new Map;this.resolutions=[];this.files=null;this.publishConfig=null;this.installConfig=null;this.preferUnplugged=null;this.raw={};this.errors=[]}static async tryFind(e,{baseFs:r=new Tn}={}){let o=V.join(e,"package.json");try{return await AE.fromFile(o,{baseFs:r})}catch(a){if(a.code==="ENOENT")return null;throw a}}static async find(e,{baseFs:r}={}){let o=await AE.tryFind(e,{baseFs:r});if(o===null)throw new Error("Manifest not found");return o}static async fromFile(e,{baseFs:r=new Tn}={}){let o=new AE;return await o.loadFile(e,{baseFs:r}),o}static fromText(e){let r=new AE;return r.loadFromText(e),r}loadFromText(e){let r;try{r=JSON.parse(pse(e)||"{}")}catch(o){throw o.message+=` (when parsing ${e})`,o}this.load(r),this.indent=fse(e)}async loadFile(e,{baseFs:r=new Tn}){let o=await r.readFilePromise(e,"utf8"),a;try{a=JSON.parse(pse(o)||"{}")}catch(n){throw n.message+=` (when parsing ${e})`,n}this.load(a),this.indent=fse(o)}load(e,{yamlCompatibilityMode:r=!1}={}){if(typeof e!="object"||e===null)throw new Error(`Utterly invalid manifest data (${e})`);this.raw=e;let o=[];if(this.name=null,typeof e.name=="string")try{this.name=Js(e.name)}catch{o.push(new Error("Parsing failed for the 'name' field"))}if(typeof e.version=="string"?this.version=e.version:this.version=null,Array.isArray(e.os)){let n=[];this.os=n;for(let u of e.os)typeof u!="string"?o.push(new Error("Parsing failed for the 'os' field")):n.push(u)}else this.os=null;if(Array.isArray(e.cpu)){let n=[];this.cpu=n;for(let u of e.cpu)typeof u!="string"?o.push(new Error("Parsing failed for the 'cpu' field")):n.push(u)}else this.cpu=null;if(Array.isArray(e.libc)){let n=[];this.libc=n;for(let u of e.libc)typeof u!="string"?o.push(new Error("Parsing failed for the 'libc' field")):n.push(u)}else this.libc=null;if(typeof e.type=="string"?this.type=e.type:this.type=null,typeof e.packageManager=="string"?this.packageManager=e.packageManager:this.packageManager=null,typeof e.private=="boolean"?this.private=e.private:this.private=!1,typeof e.license=="string"?this.license=e.license:this.license=null,typeof e.languageName=="string"?this.languageName=e.languageName:this.languageName=null,typeof e.main=="string"?this.main=$o(e.main):this.main=null,typeof e.module=="string"?this.module=$o(e.module):this.module=null,e.browser!=null)if(typeof e.browser=="string")this.browser=$o(e.browser);else{this.browser=new Map;for(let[n,u]of Object.entries(e.browser))this.browser.set($o(n),typeof u=="string"?$o(u):u)}else this.browser=null;if(this.bin=new Map,typeof e.bin=="string")e.bin.trim()===""?o.push(new Error("Invalid bin field")):this.name!==null?this.bin.set(this.name.name,$o(e.bin)):o.push(new Error("String bin field, but no attached package name"));else if(typeof e.bin=="object"&&e.bin!==null)for(let[n,u]of Object.entries(e.bin)){if(typeof u!="string"||u.trim()===""){o.push(new Error(`Invalid bin definition for '${n}'`));continue}let A=Js(n);this.bin.set(A.name,$o(u))}if(this.scripts=new Map,typeof e.scripts=="object"&&e.scripts!==null)for(let[n,u]of Object.entries(e.scripts)){if(typeof u!="string"){o.push(new Error(`Invalid script definition for '${n}'`));continue}this.scripts.set(n,u)}if(this.dependencies=new Map,typeof e.dependencies=="object"&&e.dependencies!==null)for(let[n,u]of Object.entries(e.dependencies)){if(typeof u!="string"){o.push(new Error(`Invalid dependency range for '${n}'`));continue}let A;try{A=Js(n)}catch{o.push(new Error(`Parsing failed for the dependency name '${n}'`));continue}let p=In(A,u);this.dependencies.set(p.identHash,p)}if(this.devDependencies=new Map,typeof e.devDependencies=="object"&&e.devDependencies!==null)for(let[n,u]of Object.entries(e.devDependencies)){if(typeof u!="string"){o.push(new Error(`Invalid dependency range for '${n}'`));continue}let A;try{A=Js(n)}catch{o.push(new Error(`Parsing failed for the dependency name '${n}'`));continue}let p=In(A,u);this.devDependencies.set(p.identHash,p)}if(this.peerDependencies=new Map,typeof e.peerDependencies=="object"&&e.peerDependencies!==null)for(let[n,u]of Object.entries(e.peerDependencies)){let A;try{A=Js(n)}catch{o.push(new Error(`Parsing failed for the dependency name '${n}'`));continue}(typeof u!="string"||!u.startsWith(Xn.protocol)&&!xa(u))&&(o.push(new Error(`Invalid dependency range for '${n}'`)),u="*");let p=In(A,u);this.peerDependencies.set(p.identHash,p)}typeof e.workspaces=="object"&&e.workspaces!==null&&e.workspaces.nohoist&&o.push(new Error("'nohoist' is deprecated, please use 'installConfig.hoistingLimits' instead"));let a=Array.isArray(e.workspaces)?e.workspaces:typeof e.workspaces=="object"&&e.workspaces!==null&&Array.isArray(e.workspaces.packages)?e.workspaces.packages:[];this.workspaceDefinitions=[];for(let n of a){if(typeof n!="string"){o.push(new Error(`Invalid workspace definition for '${n}'`));continue}this.workspaceDefinitions.push({pattern:n})}if(this.dependenciesMeta=new Map,typeof e.dependenciesMeta=="object"&&e.dependenciesMeta!==null)for(let[n,u]of Object.entries(e.dependenciesMeta)){if(typeof u!="object"||u===null){o.push(new Error(`Invalid meta field for '${n}`));continue}let A=ih(n),p=this.ensureDependencyMeta(A),h=jP(u.built,{yamlCompatibilityMode:r});if(h===null){o.push(new Error(`Invalid built meta field for '${n}'`));continue}let E=jP(u.optional,{yamlCompatibilityMode:r});if(E===null){o.push(new Error(`Invalid optional meta field for '${n}'`));continue}let I=jP(u.unplugged,{yamlCompatibilityMode:r});if(I===null){o.push(new Error(`Invalid unplugged meta field for '${n}'`));continue}Object.assign(p,{built:h,optional:E,unplugged:I})}if(this.peerDependenciesMeta=new Map,typeof e.peerDependenciesMeta=="object"&&e.peerDependenciesMeta!==null)for(let[n,u]of Object.entries(e.peerDependenciesMeta)){if(typeof u!="object"||u===null){o.push(new Error(`Invalid meta field for '${n}'`));continue}let A=ih(n),p=this.ensurePeerDependencyMeta(A),h=jP(u.optional,{yamlCompatibilityMode:r});if(h===null){o.push(new Error(`Invalid optional meta field for '${n}'`));continue}Object.assign(p,{optional:h})}if(this.resolutions=[],typeof e.resolutions=="object"&&e.resolutions!==null)for(let[n,u]of Object.entries(e.resolutions)){if(typeof u!="string"){o.push(new Error(`Invalid resolution entry for '${n}'`));continue}try{this.resolutions.push({pattern:MD(n),reference:u})}catch(A){o.push(A);continue}}if(Array.isArray(e.files)){this.files=new Set;for(let n of e.files){if(typeof n!="string"){o.push(new Error(`Invalid files entry for '${n}'`));continue}this.files.add(n)}}else this.files=null;if(typeof e.publishConfig=="object"&&e.publishConfig!==null){if(this.publishConfig={},typeof e.publishConfig.access=="string"&&(this.publishConfig.access=e.publishConfig.access),typeof e.publishConfig.main=="string"&&(this.publishConfig.main=$o(e.publishConfig.main)),typeof e.publishConfig.module=="string"&&(this.publishConfig.module=$o(e.publishConfig.module)),e.publishConfig.browser!=null)if(typeof e.publishConfig.browser=="string")this.publishConfig.browser=$o(e.publishConfig.browser);else{this.publishConfig.browser=new Map;for(let[n,u]of Object.entries(e.publishConfig.browser))this.publishConfig.browser.set($o(n),typeof u=="string"?$o(u):u)}if(typeof e.publishConfig.registry=="string"&&(this.publishConfig.registry=e.publishConfig.registry),typeof e.publishConfig.bin=="string")this.name!==null?this.publishConfig.bin=new Map([[this.name.name,$o(e.publishConfig.bin)]]):o.push(new Error("String bin field, but no attached package name"));else if(typeof e.publishConfig.bin=="object"&&e.publishConfig.bin!==null){this.publishConfig.bin=new Map;for(let[n,u]of Object.entries(e.publishConfig.bin)){if(typeof u!="string"){o.push(new Error(`Invalid bin definition for '${n}'`));continue}this.publishConfig.bin.set(n,$o(u))}}if(Array.isArray(e.publishConfig.executableFiles)){this.publishConfig.executableFiles=new Set;for(let n of e.publishConfig.executableFiles){if(typeof n!="string"){o.push(new Error("Invalid executable file definition"));continue}this.publishConfig.executableFiles.add($o(n))}}}else this.publishConfig=null;if(typeof e.installConfig=="object"&&e.installConfig!==null){this.installConfig={};for(let n of Object.keys(e.installConfig))n==="hoistingLimits"?typeof e.installConfig.hoistingLimits=="string"?this.installConfig.hoistingLimits=e.installConfig.hoistingLimits:o.push(new Error("Invalid hoisting limits definition")):n=="selfReferences"?typeof e.installConfig.selfReferences=="boolean"?this.installConfig.selfReferences=e.installConfig.selfReferences:o.push(new Error("Invalid selfReferences definition, must be a boolean value")):o.push(new Error(`Unrecognized installConfig key: ${n}`))}else this.installConfig=null;if(typeof e.optionalDependencies=="object"&&e.optionalDependencies!==null)for(let[n,u]of Object.entries(e.optionalDependencies)){if(typeof u!="string"){o.push(new Error(`Invalid dependency range for '${n}'`));continue}let A;try{A=Js(n)}catch{o.push(new Error(`Parsing failed for the dependency name '${n}'`));continue}let p=In(A,u);this.dependencies.set(p.identHash,p);let h=In(A,"unknown"),E=this.ensureDependencyMeta(h);Object.assign(E,{optional:!0})}typeof e.preferUnplugged=="boolean"?this.preferUnplugged=e.preferUnplugged:this.preferUnplugged=null,this.errors=o}getForScope(e){switch(e){case"dependencies":return this.dependencies;case"devDependencies":return this.devDependencies;case"peerDependencies":return this.peerDependencies;default:throw new Error(`Unsupported value ("${e}")`)}}hasConsumerDependency(e){return!!(this.dependencies.has(e.identHash)||this.peerDependencies.has(e.identHash))}hasHardDependency(e){return!!(this.dependencies.has(e.identHash)||this.devDependencies.has(e.identHash))}hasSoftDependency(e){return!!this.peerDependencies.has(e.identHash)}hasDependency(e){return!!(this.hasHardDependency(e)||this.hasSoftDependency(e))}getConditions(){let e=[];return this.os&&this.os.length>0&&e.push(oM("os",this.os)),this.cpu&&this.cpu.length>0&&e.push(oM("cpu",this.cpu)),this.libc&&this.libc.length>0&&e.push(oM("libc",this.libc)),e.length>0?e.join(" & "):null}ensureDependencyMeta(e){if(e.range!=="unknown"&&!gse.default.valid(e.range))throw new Error(`Invalid meta field range for '${Pa(e)}'`);let r=fn(e),o=e.range!=="unknown"?e.range:null,a=this.dependenciesMeta.get(r);a||this.dependenciesMeta.set(r,a=new Map);let n=a.get(o);return n||a.set(o,n={}),n}ensurePeerDependencyMeta(e){if(e.range!=="unknown")throw new Error(`Invalid meta field range for '${Pa(e)}'`);let r=fn(e),o=this.peerDependenciesMeta.get(r);return o||this.peerDependenciesMeta.set(r,o={}),o}setRawField(e,r,{after:o=[]}={}){let a=new Set(o.filter(n=>Object.hasOwn(this.raw,n)));if(a.size===0||Object.hasOwn(this.raw,e))this.raw[e]=r;else{let n=this.raw,u=this.raw={},A=!1;for(let p of Object.keys(n))u[p]=n[p],A||(a.delete(p),a.size===0&&(u[e]=r,A=!0))}}exportTo(e,{compatibilityMode:r=!0}={}){if(Object.assign(e,this.raw),this.name!==null?e.name=fn(this.name):delete e.name,this.version!==null?e.version=this.version:delete e.version,this.os!==null?e.os=this.os:delete e.os,this.cpu!==null?e.cpu=this.cpu:delete e.cpu,this.type!==null?e.type=this.type:delete e.type,this.packageManager!==null?e.packageManager=this.packageManager:delete e.packageManager,this.private?e.private=!0:delete e.private,this.license!==null?e.license=this.license:delete e.license,this.languageName!==null?e.languageName=this.languageName:delete e.languageName,this.main!==null?e.main=this.main:delete e.main,this.module!==null?e.module=this.module:delete e.module,this.browser!==null){let n=this.browser;typeof n=="string"?e.browser=n:n instanceof Map&&(e.browser=Object.assign({},...Array.from(n.keys()).sort().map(u=>({[u]:n.get(u)}))))}else delete e.browser;this.bin.size===1&&this.name!==null&&this.bin.has(this.name.name)?e.bin=this.bin.get(this.name.name):this.bin.size>0?e.bin=Object.assign({},...Array.from(this.bin.keys()).sort().map(n=>({[n]:this.bin.get(n)}))):delete e.bin,this.workspaceDefinitions.length>0?this.raw.workspaces&&!Array.isArray(this.raw.workspaces)?e.workspaces={...this.raw.workspaces,packages:this.workspaceDefinitions.map(({pattern:n})=>n)}:e.workspaces=this.workspaceDefinitions.map(({pattern:n})=>n):this.raw.workspaces&&!Array.isArray(this.raw.workspaces)&&Object.keys(this.raw.workspaces).length>0?e.workspaces=this.raw.workspaces:delete e.workspaces;let o=[],a=[];for(let n of this.dependencies.values()){let u=this.dependenciesMeta.get(fn(n)),A=!1;if(r&&u){let p=u.get(null);p&&p.optional&&(A=!0)}A?a.push(n):o.push(n)}o.length>0?e.dependencies=Object.assign({},...uE(o).map(n=>({[fn(n)]:n.range}))):delete e.dependencies,a.length>0?e.optionalDependencies=Object.assign({},...uE(a).map(n=>({[fn(n)]:n.range}))):delete e.optionalDependencies,this.devDependencies.size>0?e.devDependencies=Object.assign({},...uE(this.devDependencies.values()).map(n=>({[fn(n)]:n.range}))):delete e.devDependencies,this.peerDependencies.size>0?e.peerDependencies=Object.assign({},...uE(this.peerDependencies.values()).map(n=>({[fn(n)]:n.range}))):delete e.peerDependencies,e.dependenciesMeta={};for(let[n,u]of ks(this.dependenciesMeta.entries(),([A,p])=>A))for(let[A,p]of ks(u.entries(),([h,E])=>h!==null?`0${h}`:"1")){let h=A!==null?Pa(In(Js(n),A)):n,E={...p};r&&A===null&&delete E.optional,Object.keys(E).length!==0&&(e.dependenciesMeta[h]=E)}if(Object.keys(e.dependenciesMeta).length===0&&delete e.dependenciesMeta,this.peerDependenciesMeta.size>0?e.peerDependenciesMeta=Object.assign({},...ks(this.peerDependenciesMeta.entries(),([n,u])=>n).map(([n,u])=>({[n]:u}))):delete e.peerDependenciesMeta,this.resolutions.length>0?e.resolutions=Object.assign({},...this.resolutions.map(({pattern:n,reference:u})=>({[UD(n)]:u}))):delete e.resolutions,this.files!==null?e.files=Array.from(this.files):delete e.files,this.preferUnplugged!==null?e.preferUnplugged=this.preferUnplugged:delete e.preferUnplugged,this.scripts!==null&&this.scripts.size>0){e.scripts??={};for(let n of Object.keys(e.scripts))this.scripts.has(n)||delete e.scripts[n];for(let[n,u]of this.scripts.entries())e.scripts[n]=u}else delete e.scripts;return e}},Ot=AE;Ot.fileName="package.json",Ot.allDependencies=["dependencies","devDependencies","peerDependencies"],Ot.hardDependencies=["dependencies","devDependencies"]});var mse=_((UNt,dse)=>{var Vtt=_l(),Jtt=function(){return Vtt.Date.now()};dse.exports=Jtt});var Ese=_((_Nt,yse)=>{var ztt=/\s/;function Xtt(t){for(var e=t.length;e--&&ztt.test(t.charAt(e)););return e}yse.exports=Xtt});var wse=_((HNt,Cse)=>{var Ztt=Ese(),$tt=/^\s+/;function ert(t){return t&&t.slice(0,Ztt(t)+1).replace($tt,"")}Cse.exports=ert});var pE=_((qNt,Ise)=>{var trt=hd(),rrt=Ju(),nrt="[object Symbol]";function irt(t){return typeof t=="symbol"||rrt(t)&&trt(t)==nrt}Ise.exports=irt});var Sse=_((jNt,Dse)=>{var srt=wse(),Bse=il(),ort=pE(),vse=0/0,art=/^[-+]0x[0-9a-f]+$/i,lrt=/^0b[01]+$/i,crt=/^0o[0-7]+$/i,urt=parseInt;function Art(t){if(typeof t=="number")return t;if(ort(t))return vse;if(Bse(t)){var e=typeof t.valueOf=="function"?t.valueOf():t;t=Bse(e)?e+"":e}if(typeof t!="string")return t===0?t:+t;t=srt(t);var r=lrt.test(t);return r||crt.test(t)?urt(t.slice(2),r?2:8):art.test(t)?vse:+t}Dse.exports=Art});var xse=_((GNt,bse)=>{var frt=il(),aM=mse(),Pse=Sse(),prt="Expected a function",hrt=Math.max,grt=Math.min;function drt(t,e,r){var o,a,n,u,A,p,h=0,E=!1,I=!1,v=!0;if(typeof t!="function")throw new TypeError(prt);e=Pse(e)||0,frt(r)&&(E=!!r.leading,I="maxWait"in r,n=I?hrt(Pse(r.maxWait)||0,e):n,v="trailing"in r?!!r.trailing:v);function x(ce){var me=o,he=a;return o=a=void 0,h=ce,u=t.apply(he,me),u}function C(ce){return h=ce,A=setTimeout(U,e),E?x(ce):u}function R(ce){var me=ce-p,he=ce-h,Be=e-me;return I?grt(Be,n-he):Be}function L(ce){var me=ce-p,he=ce-h;return p===void 0||me>=e||me<0||I&&he>=n}function U(){var ce=aM();if(L(ce))return J(ce);A=setTimeout(U,R(ce))}function J(ce){return A=void 0,v&&o?x(ce):(o=a=void 0,u)}function te(){A!==void 0&&clearTimeout(A),h=0,o=p=a=A=void 0}function ae(){return A===void 0?u:J(aM())}function fe(){var ce=aM(),me=L(ce);if(o=arguments,a=this,p=ce,me){if(A===void 0)return C(p);if(I)return clearTimeout(A),A=setTimeout(U,e),x(p)}return A===void 0&&(A=setTimeout(U,e)),u}return fe.cancel=te,fe.flush=ae,fe}bse.exports=drt});var lM=_((YNt,kse)=>{var mrt=xse(),yrt=il(),Ert="Expected a function";function Crt(t,e,r){var o=!0,a=!0;if(typeof t!="function")throw new TypeError(Ert);return yrt(r)&&(o="leading"in r?!!r.leading:o,a="trailing"in r?!!r.trailing:a),mrt(t,e,{leading:o,maxWait:e,trailing:a})}kse.exports=Crt});function Irt(t){return typeof t.reportCode<"u"}var Qse,Fse,Rse,wrt,zt,Xs,Yl=Et(()=>{Qse=$e(lM()),Fse=ve("stream"),Rse=ve("string_decoder"),wrt=15,zt=class extends Error{constructor(r,o,a){super(o);this.reportExtra=a;this.reportCode=r}};Xs=class{constructor(){this.cacheHits=new Set;this.cacheMisses=new Set;this.reportedInfos=new Set;this.reportedWarnings=new Set;this.reportedErrors=new Set}getRecommendedLength(){return 180}reportCacheHit(e){this.cacheHits.add(e.locatorHash)}reportCacheMiss(e,r){this.cacheMisses.add(e.locatorHash)}static progressViaCounter(e){let r=0,o,a=new Promise(p=>{o=p}),n=p=>{let h=o;a=new Promise(E=>{o=E}),r=p,h()},u=(p=0)=>{n(r+1)},A=async function*(){for(;r{r=u}),a=(0,Qse.default)(u=>{let A=r;o=new Promise(p=>{r=p}),e=u,A()},1e3/wrt),n=async function*(){for(;;)await o,yield{title:e}}();return{[Symbol.asyncIterator](){return n},hasProgress:!1,hasTitle:!0,setTitle:a}}async startProgressPromise(e,r){let o=this.reportProgress(e);try{return await r(e)}finally{o.stop()}}startProgressSync(e,r){let o=this.reportProgress(e);try{return r(e)}finally{o.stop()}}reportInfoOnce(e,r,o){let a=o&&o.key?o.key:r;this.reportedInfos.has(a)||(this.reportedInfos.add(a),this.reportInfo(e,r),o?.reportExtra?.(this))}reportWarningOnce(e,r,o){let a=o&&o.key?o.key:r;this.reportedWarnings.has(a)||(this.reportedWarnings.add(a),this.reportWarning(e,r),o?.reportExtra?.(this))}reportErrorOnce(e,r,o){let a=o&&o.key?o.key:r;this.reportedErrors.has(a)||(this.reportedErrors.add(a),this.reportError(e,r),o?.reportExtra?.(this))}reportExceptionOnce(e){Irt(e)?this.reportErrorOnce(e.reportCode,e.message,{key:e,reportExtra:e.reportExtra}):this.reportErrorOnce(1,e.stack||e.message,{key:e})}createStreamReporter(e=null){let r=new Fse.PassThrough,o=new Rse.StringDecoder,a="";return r.on("data",n=>{let u=o.write(n),A;do if(A=u.indexOf(` +`),A!==-1){let p=a+u.substring(0,A);u=u.substring(A+1),a="",e!==null?this.reportInfo(null,`${e} ${p}`):this.reportInfo(null,p)}while(A!==-1);a+=u}),r.on("end",()=>{let n=o.end();n!==""&&(e!==null?this.reportInfo(null,`${e} ${n}`):this.reportInfo(null,n))}),r}}});var hE,cM=Et(()=>{Yl();bo();hE=class{constructor(e){this.fetchers=e}supports(e,r){return!!this.tryFetcher(e,r)}getLocalPath(e,r){return this.getFetcher(e,r).getLocalPath(e,r)}async fetch(e,r){return await this.getFetcher(e,r).fetch(e,r)}tryFetcher(e,r){let o=this.fetchers.find(a=>a.supports(e,r));return o||null}getFetcher(e,r){let o=this.fetchers.find(a=>a.supports(e,r));if(!o)throw new zt(11,`${qr(r.project.configuration,e)} isn't supported by any available fetcher`);return o}}});var Dd,uM=Et(()=>{bo();Dd=class{constructor(e){this.resolvers=e.filter(r=>r)}supportsDescriptor(e,r){return!!this.tryResolverByDescriptor(e,r)}supportsLocator(e,r){return!!this.tryResolverByLocator(e,r)}shouldPersistResolution(e,r){return this.getResolverByLocator(e,r).shouldPersistResolution(e,r)}bindDescriptor(e,r,o){return this.getResolverByDescriptor(e,o).bindDescriptor(e,r,o)}getResolutionDependencies(e,r){return this.getResolverByDescriptor(e,r).getResolutionDependencies(e,r)}async getCandidates(e,r,o){return await this.getResolverByDescriptor(e,o).getCandidates(e,r,o)}async getSatisfying(e,r,o,a){return this.getResolverByDescriptor(e,a).getSatisfying(e,r,o,a)}async resolve(e,r){return await this.getResolverByLocator(e,r).resolve(e,r)}tryResolverByDescriptor(e,r){let o=this.resolvers.find(a=>a.supportsDescriptor(e,r));return o||null}getResolverByDescriptor(e,r){let o=this.resolvers.find(a=>a.supportsDescriptor(e,r));if(!o)throw new Error(`${jn(r.project.configuration,e)} isn't supported by any available resolver`);return o}tryResolverByLocator(e,r){let o=this.resolvers.find(a=>a.supportsLocator(e,r));return o||null}getResolverByLocator(e,r){let o=this.resolvers.find(a=>a.supportsLocator(e,r));if(!o)throw new Error(`${qr(r.project.configuration,e)} isn't supported by any available resolver`);return o}}});var gE,AM=Et(()=>{St();bo();gE=class{supports(e){return!!e.reference.startsWith("virtual:")}getLocalPath(e,r){let o=e.reference.indexOf("#");if(o===-1)throw new Error("Invalid virtual package reference");let a=e.reference.slice(o+1),n=Qs(e,a);return r.fetcher.getLocalPath(n,r)}async fetch(e,r){let o=e.reference.indexOf("#");if(o===-1)throw new Error("Invalid virtual package reference");let a=e.reference.slice(o+1),n=Qs(e,a),u=await r.fetcher.fetch(n,r);return await this.ensureVirtualLink(e,u,r)}getLocatorFilename(e){return lE(e)}async ensureVirtualLink(e,r,o){let a=r.packageFs.getRealPath(),n=o.project.configuration.get("virtualFolder"),u=this.getLocatorFilename(e),A=mi.makeVirtualPath(n,u,a),p=new Uu(A,{baseFs:r.packageFs,pathUtils:V});return{...r,packageFs:p}}}});var dE,c1,Tse=Et(()=>{dE=class{static isVirtualDescriptor(e){return!!e.range.startsWith(dE.protocol)}static isVirtualLocator(e){return!!e.reference.startsWith(dE.protocol)}supportsDescriptor(e,r){return dE.isVirtualDescriptor(e)}supportsLocator(e,r){return dE.isVirtualLocator(e)}shouldPersistResolution(e,r){return!1}bindDescriptor(e,r,o){throw new Error('Assertion failed: calling "bindDescriptor" on a virtual descriptor is unsupported')}getResolutionDependencies(e,r){throw new Error('Assertion failed: calling "getResolutionDependencies" on a virtual descriptor is unsupported')}async getCandidates(e,r,o){throw new Error('Assertion failed: calling "getCandidates" on a virtual descriptor is unsupported')}async getSatisfying(e,r,o,a){throw new Error('Assertion failed: calling "getSatisfying" on a virtual descriptor is unsupported')}async resolve(e,r){throw new Error('Assertion failed: calling "resolve" on a virtual locator is unsupported')}},c1=dE;c1.protocol="virtual:"});var mE,fM=Et(()=>{St();vd();mE=class{supports(e){return!!e.reference.startsWith(Xn.protocol)}getLocalPath(e,r){return this.getWorkspace(e,r).cwd}async fetch(e,r){let o=this.getWorkspace(e,r).cwd;return{packageFs:new gn(o),prefixPath:Bt.dot,localPath:o}}getWorkspace(e,r){return r.project.getWorkspaceByCwd(e.reference.slice(Xn.protocol.length))}}});function u1(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}function Nse(t){return typeof t>"u"?3:u1(t)?0:Array.isArray(t)?1:2}function gM(t,e){return Object.hasOwn(t,e)}function vrt(t){return u1(t)&&gM(t,"onConflict")&&typeof t.onConflict=="string"}function Drt(t){if(typeof t>"u")return{onConflict:"default",value:t};if(!vrt(t))return{onConflict:"default",value:t};if(gM(t,"value"))return t;let{onConflict:e,...r}=t;return{onConflict:e,value:r}}function Lse(t,e){let r=u1(t)&&gM(t,e)?t[e]:void 0;return Drt(r)}function yE(t,e){return[t,e,Ose]}function dM(t){return Array.isArray(t)?t[2]===Ose:!1}function pM(t,e){if(u1(t)){let r={};for(let o of Object.keys(t))r[o]=pM(t[o],e);return yE(e,r)}return Array.isArray(t)?yE(e,t.map(r=>pM(r,e))):yE(e,t)}function hM(t,e,r,o,a){let n,u=[],A=a,p=0;for(let E=a-1;E>=o;--E){let[I,v]=t[E],{onConflict:x,value:C}=Lse(v,r),R=Nse(C);if(R!==3){if(n??=R,R!==n||x==="hardReset"){p=A;break}if(R===2)return yE(I,C);if(u.unshift([I,C]),x==="reset"){p=E;break}x==="extend"&&E===o&&(o=0),A=E}}if(typeof n>"u")return null;let h=u.map(([E])=>E).join(", ");switch(n){case 1:return yE(h,new Array().concat(...u.map(([E,I])=>I.map(v=>pM(v,E)))));case 0:{let E=Object.assign({},...u.map(([,R])=>R)),I=Object.keys(E),v={},x=t.map(([R,L])=>[R,Lse(L,r).value]),C=Brt(x,([R,L])=>{let U=Nse(L);return U!==0&&U!==3});if(C!==-1){let R=x.slice(C+1);for(let L of I)v[L]=hM(R,e,L,0,R.length)}else for(let R of I)v[R]=hM(x,e,R,p,x.length);return yE(h,v)}default:throw new Error("Assertion failed: Non-extendable value type")}}function Mse(t){return hM(t.map(([e,r])=>[e,{["."]:r}]),[],".",0,t.length)}function A1(t){return dM(t)?t[1]:t}function GP(t){let e=dM(t)?t[1]:t;if(Array.isArray(e))return e.map(r=>GP(r));if(u1(e)){let r={};for(let[o,a]of Object.entries(e))r[o]=GP(a);return r}return e}function mM(t){return dM(t)?t[0]:null}var Brt,Ose,Use=Et(()=>{Brt=(t,e,r)=>{let o=[...t];return o.reverse(),o.findIndex(e,r)};Ose=Symbol()});var YP={};Vt(YP,{getDefaultGlobalFolder:()=>EM,getHomeFolder:()=>EE,isFolderInside:()=>CM});function EM(){if(process.platform==="win32"){let t=ue.toPortablePath(process.env.LOCALAPPDATA||ue.join((0,yM.homedir)(),"AppData","Local"));return V.resolve(t,"Yarn/Berry")}if(process.env.XDG_DATA_HOME){let t=ue.toPortablePath(process.env.XDG_DATA_HOME);return V.resolve(t,"yarn/berry")}return V.resolve(EE(),".yarn/berry")}function EE(){return ue.toPortablePath((0,yM.homedir)()||"/usr/local/share")}function CM(t,e){let r=V.relative(e,t);return r&&!r.startsWith("..")&&!V.isAbsolute(r)}var yM,WP=Et(()=>{St();yM=ve("os")});var jse=_(CE=>{"use strict";var iLt=ve("net"),Prt=ve("tls"),wM=ve("http"),_se=ve("https"),brt=ve("events"),sLt=ve("assert"),xrt=ve("util");CE.httpOverHttp=krt;CE.httpsOverHttp=Qrt;CE.httpOverHttps=Frt;CE.httpsOverHttps=Rrt;function krt(t){var e=new Ff(t);return e.request=wM.request,e}function Qrt(t){var e=new Ff(t);return e.request=wM.request,e.createSocket=Hse,e.defaultPort=443,e}function Frt(t){var e=new Ff(t);return e.request=_se.request,e}function Rrt(t){var e=new Ff(t);return e.request=_se.request,e.createSocket=Hse,e.defaultPort=443,e}function Ff(t){var e=this;e.options=t||{},e.proxyOptions=e.options.proxy||{},e.maxSockets=e.options.maxSockets||wM.Agent.defaultMaxSockets,e.requests=[],e.sockets=[],e.on("free",function(o,a,n,u){for(var A=qse(a,n,u),p=0,h=e.requests.length;p=this.maxSockets){n.requests.push(u);return}n.createSocket(u,function(A){A.on("free",p),A.on("close",h),A.on("agentRemove",h),e.onSocket(A);function p(){n.emit("free",A,u)}function h(E){n.removeSocket(A),A.removeListener("free",p),A.removeListener("close",h),A.removeListener("agentRemove",h)}})};Ff.prototype.createSocket=function(e,r){var o=this,a={};o.sockets.push(a);var n=IM({},o.proxyOptions,{method:"CONNECT",path:e.host+":"+e.port,agent:!1,headers:{host:e.host+":"+e.port}});e.localAddress&&(n.localAddress=e.localAddress),n.proxyAuth&&(n.headers=n.headers||{},n.headers["Proxy-Authorization"]="Basic "+new Buffer(n.proxyAuth).toString("base64")),oh("making CONNECT request");var u=o.request(n);u.useChunkedEncodingByDefault=!1,u.once("response",A),u.once("upgrade",p),u.once("connect",h),u.once("error",E),u.end();function A(I){I.upgrade=!0}function p(I,v,x){process.nextTick(function(){h(I,v,x)})}function h(I,v,x){if(u.removeAllListeners(),v.removeAllListeners(),I.statusCode!==200){oh("tunneling socket could not be established, statusCode=%d",I.statusCode),v.destroy();var C=new Error("tunneling socket could not be established, statusCode="+I.statusCode);C.code="ECONNRESET",e.request.emit("error",C),o.removeSocket(a);return}if(x.length>0){oh("got illegal response body from proxy"),v.destroy();var C=new Error("got illegal response body from proxy");C.code="ECONNRESET",e.request.emit("error",C),o.removeSocket(a);return}return oh("tunneling connection has established"),o.sockets[o.sockets.indexOf(a)]=v,r(v)}function E(I){u.removeAllListeners(),oh(`tunneling socket could not be established, cause=%s +`,I.message,I.stack);var v=new Error("tunneling socket could not be established, cause="+I.message);v.code="ECONNRESET",e.request.emit("error",v),o.removeSocket(a)}};Ff.prototype.removeSocket=function(e){var r=this.sockets.indexOf(e);if(r!==-1){this.sockets.splice(r,1);var o=this.requests.shift();o&&this.createSocket(o,function(a){o.request.onSocket(a)})}};function Hse(t,e){var r=this;Ff.prototype.createSocket.call(r,t,function(o){var a=t.request.getHeader("host"),n=IM({},r.options,{socket:o,servername:a?a.replace(/:.*$/,""):t.host}),u=Prt.connect(0,n);r.sockets[r.sockets.indexOf(o)]=u,e(u)})}function qse(t,e,r){return typeof t=="string"?{host:t,port:e,localAddress:r}:t}function IM(t){for(var e=1,r=arguments.length;e{Gse.exports=jse()});var Tf=_((Rf,KP)=>{"use strict";Object.defineProperty(Rf,"__esModule",{value:!0});var Wse=["Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","BigInt64Array","BigUint64Array"];function Trt(t){return Wse.includes(t)}var Nrt=["Function","Generator","AsyncGenerator","GeneratorFunction","AsyncGeneratorFunction","AsyncFunction","Observable","Array","Buffer","Object","RegExp","Date","Error","Map","Set","WeakMap","WeakSet","ArrayBuffer","SharedArrayBuffer","DataView","Promise","URL","FormData","URLSearchParams","HTMLElement",...Wse];function Lrt(t){return Nrt.includes(t)}var Ort=["null","undefined","string","number","bigint","boolean","symbol"];function Mrt(t){return Ort.includes(t)}function wE(t){return e=>typeof e===t}var{toString:Kse}=Object.prototype,f1=t=>{let e=Kse.call(t).slice(8,-1);if(/HTML\w+Element/.test(e)&&be.domElement(t))return"HTMLElement";if(Lrt(e))return e},ei=t=>e=>f1(e)===t;function be(t){if(t===null)return"null";switch(typeof t){case"undefined":return"undefined";case"string":return"string";case"number":return"number";case"boolean":return"boolean";case"function":return"Function";case"bigint":return"bigint";case"symbol":return"symbol";default:}if(be.observable(t))return"Observable";if(be.array(t))return"Array";if(be.buffer(t))return"Buffer";let e=f1(t);if(e)return e;if(t instanceof String||t instanceof Boolean||t instanceof Number)throw new TypeError("Please don't use object wrappers for primitive types");return"Object"}be.undefined=wE("undefined");be.string=wE("string");var Urt=wE("number");be.number=t=>Urt(t)&&!be.nan(t);be.bigint=wE("bigint");be.function_=wE("function");be.null_=t=>t===null;be.class_=t=>be.function_(t)&&t.toString().startsWith("class ");be.boolean=t=>t===!0||t===!1;be.symbol=wE("symbol");be.numericString=t=>be.string(t)&&!be.emptyStringOrWhitespace(t)&&!Number.isNaN(Number(t));be.array=(t,e)=>Array.isArray(t)?be.function_(e)?t.every(e):!0:!1;be.buffer=t=>{var e,r,o,a;return(a=(o=(r=(e=t)===null||e===void 0?void 0:e.constructor)===null||r===void 0?void 0:r.isBuffer)===null||o===void 0?void 0:o.call(r,t))!==null&&a!==void 0?a:!1};be.nullOrUndefined=t=>be.null_(t)||be.undefined(t);be.object=t=>!be.null_(t)&&(typeof t=="object"||be.function_(t));be.iterable=t=>{var e;return be.function_((e=t)===null||e===void 0?void 0:e[Symbol.iterator])};be.asyncIterable=t=>{var e;return be.function_((e=t)===null||e===void 0?void 0:e[Symbol.asyncIterator])};be.generator=t=>be.iterable(t)&&be.function_(t.next)&&be.function_(t.throw);be.asyncGenerator=t=>be.asyncIterable(t)&&be.function_(t.next)&&be.function_(t.throw);be.nativePromise=t=>ei("Promise")(t);var _rt=t=>{var e,r;return be.function_((e=t)===null||e===void 0?void 0:e.then)&&be.function_((r=t)===null||r===void 0?void 0:r.catch)};be.promise=t=>be.nativePromise(t)||_rt(t);be.generatorFunction=ei("GeneratorFunction");be.asyncGeneratorFunction=t=>f1(t)==="AsyncGeneratorFunction";be.asyncFunction=t=>f1(t)==="AsyncFunction";be.boundFunction=t=>be.function_(t)&&!t.hasOwnProperty("prototype");be.regExp=ei("RegExp");be.date=ei("Date");be.error=ei("Error");be.map=t=>ei("Map")(t);be.set=t=>ei("Set")(t);be.weakMap=t=>ei("WeakMap")(t);be.weakSet=t=>ei("WeakSet")(t);be.int8Array=ei("Int8Array");be.uint8Array=ei("Uint8Array");be.uint8ClampedArray=ei("Uint8ClampedArray");be.int16Array=ei("Int16Array");be.uint16Array=ei("Uint16Array");be.int32Array=ei("Int32Array");be.uint32Array=ei("Uint32Array");be.float32Array=ei("Float32Array");be.float64Array=ei("Float64Array");be.bigInt64Array=ei("BigInt64Array");be.bigUint64Array=ei("BigUint64Array");be.arrayBuffer=ei("ArrayBuffer");be.sharedArrayBuffer=ei("SharedArrayBuffer");be.dataView=ei("DataView");be.directInstanceOf=(t,e)=>Object.getPrototypeOf(t)===e.prototype;be.urlInstance=t=>ei("URL")(t);be.urlString=t=>{if(!be.string(t))return!1;try{return new URL(t),!0}catch{return!1}};be.truthy=t=>Boolean(t);be.falsy=t=>!t;be.nan=t=>Number.isNaN(t);be.primitive=t=>be.null_(t)||Mrt(typeof t);be.integer=t=>Number.isInteger(t);be.safeInteger=t=>Number.isSafeInteger(t);be.plainObject=t=>{if(Kse.call(t)!=="[object Object]")return!1;let e=Object.getPrototypeOf(t);return e===null||e===Object.getPrototypeOf({})};be.typedArray=t=>Trt(f1(t));var Hrt=t=>be.safeInteger(t)&&t>=0;be.arrayLike=t=>!be.nullOrUndefined(t)&&!be.function_(t)&&Hrt(t.length);be.inRange=(t,e)=>{if(be.number(e))return t>=Math.min(0,e)&&t<=Math.max(e,0);if(be.array(e)&&e.length===2)return t>=Math.min(...e)&&t<=Math.max(...e);throw new TypeError(`Invalid range: ${JSON.stringify(e)}`)};var qrt=1,jrt=["innerHTML","ownerDocument","style","attributes","nodeValue"];be.domElement=t=>be.object(t)&&t.nodeType===qrt&&be.string(t.nodeName)&&!be.plainObject(t)&&jrt.every(e=>e in t);be.observable=t=>{var e,r,o,a;return t?t===((r=(e=t)[Symbol.observable])===null||r===void 0?void 0:r.call(e))||t===((a=(o=t)["@@observable"])===null||a===void 0?void 0:a.call(o)):!1};be.nodeStream=t=>be.object(t)&&be.function_(t.pipe)&&!be.observable(t);be.infinite=t=>t===1/0||t===-1/0;var Vse=t=>e=>be.integer(e)&&Math.abs(e%2)===t;be.evenInteger=Vse(0);be.oddInteger=Vse(1);be.emptyArray=t=>be.array(t)&&t.length===0;be.nonEmptyArray=t=>be.array(t)&&t.length>0;be.emptyString=t=>be.string(t)&&t.length===0;be.nonEmptyString=t=>be.string(t)&&t.length>0;var Grt=t=>be.string(t)&&!/\S/.test(t);be.emptyStringOrWhitespace=t=>be.emptyString(t)||Grt(t);be.emptyObject=t=>be.object(t)&&!be.map(t)&&!be.set(t)&&Object.keys(t).length===0;be.nonEmptyObject=t=>be.object(t)&&!be.map(t)&&!be.set(t)&&Object.keys(t).length>0;be.emptySet=t=>be.set(t)&&t.size===0;be.nonEmptySet=t=>be.set(t)&&t.size>0;be.emptyMap=t=>be.map(t)&&t.size===0;be.nonEmptyMap=t=>be.map(t)&&t.size>0;be.propertyKey=t=>be.any([be.string,be.number,be.symbol],t);be.formData=t=>ei("FormData")(t);be.urlSearchParams=t=>ei("URLSearchParams")(t);var Jse=(t,e,r)=>{if(!be.function_(e))throw new TypeError(`Invalid predicate: ${JSON.stringify(e)}`);if(r.length===0)throw new TypeError("Invalid number of values");return t.call(r,e)};be.any=(t,...e)=>(be.array(t)?t:[t]).some(o=>Jse(Array.prototype.some,o,e));be.all=(t,...e)=>Jse(Array.prototype.every,t,e);var Ht=(t,e,r,o={})=>{if(!t){let{multipleValues:a}=o,n=a?`received values of types ${[...new Set(r.map(u=>`\`${be(u)}\``))].join(", ")}`:`received value of type \`${be(r)}\``;throw new TypeError(`Expected value which is \`${e}\`, ${n}.`)}};Rf.assert={undefined:t=>Ht(be.undefined(t),"undefined",t),string:t=>Ht(be.string(t),"string",t),number:t=>Ht(be.number(t),"number",t),bigint:t=>Ht(be.bigint(t),"bigint",t),function_:t=>Ht(be.function_(t),"Function",t),null_:t=>Ht(be.null_(t),"null",t),class_:t=>Ht(be.class_(t),"Class",t),boolean:t=>Ht(be.boolean(t),"boolean",t),symbol:t=>Ht(be.symbol(t),"symbol",t),numericString:t=>Ht(be.numericString(t),"string with a number",t),array:(t,e)=>{Ht(be.array(t),"Array",t),e&&t.forEach(e)},buffer:t=>Ht(be.buffer(t),"Buffer",t),nullOrUndefined:t=>Ht(be.nullOrUndefined(t),"null or undefined",t),object:t=>Ht(be.object(t),"Object",t),iterable:t=>Ht(be.iterable(t),"Iterable",t),asyncIterable:t=>Ht(be.asyncIterable(t),"AsyncIterable",t),generator:t=>Ht(be.generator(t),"Generator",t),asyncGenerator:t=>Ht(be.asyncGenerator(t),"AsyncGenerator",t),nativePromise:t=>Ht(be.nativePromise(t),"native Promise",t),promise:t=>Ht(be.promise(t),"Promise",t),generatorFunction:t=>Ht(be.generatorFunction(t),"GeneratorFunction",t),asyncGeneratorFunction:t=>Ht(be.asyncGeneratorFunction(t),"AsyncGeneratorFunction",t),asyncFunction:t=>Ht(be.asyncFunction(t),"AsyncFunction",t),boundFunction:t=>Ht(be.boundFunction(t),"Function",t),regExp:t=>Ht(be.regExp(t),"RegExp",t),date:t=>Ht(be.date(t),"Date",t),error:t=>Ht(be.error(t),"Error",t),map:t=>Ht(be.map(t),"Map",t),set:t=>Ht(be.set(t),"Set",t),weakMap:t=>Ht(be.weakMap(t),"WeakMap",t),weakSet:t=>Ht(be.weakSet(t),"WeakSet",t),int8Array:t=>Ht(be.int8Array(t),"Int8Array",t),uint8Array:t=>Ht(be.uint8Array(t),"Uint8Array",t),uint8ClampedArray:t=>Ht(be.uint8ClampedArray(t),"Uint8ClampedArray",t),int16Array:t=>Ht(be.int16Array(t),"Int16Array",t),uint16Array:t=>Ht(be.uint16Array(t),"Uint16Array",t),int32Array:t=>Ht(be.int32Array(t),"Int32Array",t),uint32Array:t=>Ht(be.uint32Array(t),"Uint32Array",t),float32Array:t=>Ht(be.float32Array(t),"Float32Array",t),float64Array:t=>Ht(be.float64Array(t),"Float64Array",t),bigInt64Array:t=>Ht(be.bigInt64Array(t),"BigInt64Array",t),bigUint64Array:t=>Ht(be.bigUint64Array(t),"BigUint64Array",t),arrayBuffer:t=>Ht(be.arrayBuffer(t),"ArrayBuffer",t),sharedArrayBuffer:t=>Ht(be.sharedArrayBuffer(t),"SharedArrayBuffer",t),dataView:t=>Ht(be.dataView(t),"DataView",t),urlInstance:t=>Ht(be.urlInstance(t),"URL",t),urlString:t=>Ht(be.urlString(t),"string with a URL",t),truthy:t=>Ht(be.truthy(t),"truthy",t),falsy:t=>Ht(be.falsy(t),"falsy",t),nan:t=>Ht(be.nan(t),"NaN",t),primitive:t=>Ht(be.primitive(t),"primitive",t),integer:t=>Ht(be.integer(t),"integer",t),safeInteger:t=>Ht(be.safeInteger(t),"integer",t),plainObject:t=>Ht(be.plainObject(t),"plain object",t),typedArray:t=>Ht(be.typedArray(t),"TypedArray",t),arrayLike:t=>Ht(be.arrayLike(t),"array-like",t),domElement:t=>Ht(be.domElement(t),"HTMLElement",t),observable:t=>Ht(be.observable(t),"Observable",t),nodeStream:t=>Ht(be.nodeStream(t),"Node.js Stream",t),infinite:t=>Ht(be.infinite(t),"infinite number",t),emptyArray:t=>Ht(be.emptyArray(t),"empty array",t),nonEmptyArray:t=>Ht(be.nonEmptyArray(t),"non-empty array",t),emptyString:t=>Ht(be.emptyString(t),"empty string",t),nonEmptyString:t=>Ht(be.nonEmptyString(t),"non-empty string",t),emptyStringOrWhitespace:t=>Ht(be.emptyStringOrWhitespace(t),"empty string or whitespace",t),emptyObject:t=>Ht(be.emptyObject(t),"empty object",t),nonEmptyObject:t=>Ht(be.nonEmptyObject(t),"non-empty object",t),emptySet:t=>Ht(be.emptySet(t),"empty set",t),nonEmptySet:t=>Ht(be.nonEmptySet(t),"non-empty set",t),emptyMap:t=>Ht(be.emptyMap(t),"empty map",t),nonEmptyMap:t=>Ht(be.nonEmptyMap(t),"non-empty map",t),propertyKey:t=>Ht(be.propertyKey(t),"PropertyKey",t),formData:t=>Ht(be.formData(t),"FormData",t),urlSearchParams:t=>Ht(be.urlSearchParams(t),"URLSearchParams",t),evenInteger:t=>Ht(be.evenInteger(t),"even integer",t),oddInteger:t=>Ht(be.oddInteger(t),"odd integer",t),directInstanceOf:(t,e)=>Ht(be.directInstanceOf(t,e),"T",t),inRange:(t,e)=>Ht(be.inRange(t,e),"in range",t),any:(t,...e)=>Ht(be.any(t,...e),"predicate returns truthy for any value",e,{multipleValues:!0}),all:(t,...e)=>Ht(be.all(t,...e),"predicate returns truthy for all values",e,{multipleValues:!0})};Object.defineProperties(be,{class:{value:be.class_},function:{value:be.function_},null:{value:be.null_}});Object.defineProperties(Rf.assert,{class:{value:Rf.assert.class_},function:{value:Rf.assert.function_},null:{value:Rf.assert.null_}});Rf.default=be;KP.exports=be;KP.exports.default=be;KP.exports.assert=Rf.assert});var zse=_((lLt,BM)=>{"use strict";var VP=class extends Error{constructor(e){super(e||"Promise was canceled"),this.name="CancelError"}get isCanceled(){return!0}},IE=class{static fn(e){return(...r)=>new IE((o,a,n)=>{r.push(n),e(...r).then(o,a)})}constructor(e){this._cancelHandlers=[],this._isPending=!0,this._isCanceled=!1,this._rejectOnCancel=!0,this._promise=new Promise((r,o)=>{this._reject=o;let a=A=>{this._isPending=!1,r(A)},n=A=>{this._isPending=!1,o(A)},u=A=>{if(!this._isPending)throw new Error("The `onCancel` handler was attached after the promise settled.");this._cancelHandlers.push(A)};return Object.defineProperties(u,{shouldReject:{get:()=>this._rejectOnCancel,set:A=>{this._rejectOnCancel=A}}}),e(a,n,u)})}then(e,r){return this._promise.then(e,r)}catch(e){return this._promise.catch(e)}finally(e){return this._promise.finally(e)}cancel(e){if(!(!this._isPending||this._isCanceled)){if(this._cancelHandlers.length>0)try{for(let r of this._cancelHandlers)r()}catch(r){this._reject(r)}this._isCanceled=!0,this._rejectOnCancel&&this._reject(new VP(e))}}get isCanceled(){return this._isCanceled}};Object.setPrototypeOf(IE.prototype,Promise.prototype);BM.exports=IE;BM.exports.CancelError=VP});var Xse=_((DM,SM)=>{"use strict";Object.defineProperty(DM,"__esModule",{value:!0});var Yrt=ve("tls"),vM=(t,e)=>{let r;typeof e=="function"?r={connect:e}:r=e;let o=typeof r.connect=="function",a=typeof r.secureConnect=="function",n=typeof r.close=="function",u=()=>{o&&r.connect(),t instanceof Yrt.TLSSocket&&a&&(t.authorized?r.secureConnect():t.authorizationError||t.once("secureConnect",r.secureConnect)),n&&t.once("close",r.close)};t.writable&&!t.connecting?u():t.connecting?t.once("connect",u):t.destroyed&&n&&r.close(t._hadError)};DM.default=vM;SM.exports=vM;SM.exports.default=vM});var Zse=_((bM,xM)=>{"use strict";Object.defineProperty(bM,"__esModule",{value:!0});var Wrt=Xse(),Krt=Number(process.versions.node.split(".")[0]),PM=t=>{let e={start:Date.now(),socket:void 0,lookup:void 0,connect:void 0,secureConnect:void 0,upload:void 0,response:void 0,end:void 0,error:void 0,abort:void 0,phases:{wait:void 0,dns:void 0,tcp:void 0,tls:void 0,request:void 0,firstByte:void 0,download:void 0,total:void 0}};t.timings=e;let r=u=>{let A=u.emit.bind(u);u.emit=(p,...h)=>(p==="error"&&(e.error=Date.now(),e.phases.total=e.error-e.start,u.emit=A),A(p,...h))};r(t),t.prependOnceListener("abort",()=>{e.abort=Date.now(),(!e.response||Krt>=13)&&(e.phases.total=Date.now()-e.start)});let o=u=>{e.socket=Date.now(),e.phases.wait=e.socket-e.start;let A=()=>{e.lookup=Date.now(),e.phases.dns=e.lookup-e.socket};u.prependOnceListener("lookup",A),Wrt.default(u,{connect:()=>{e.connect=Date.now(),e.lookup===void 0&&(u.removeListener("lookup",A),e.lookup=e.connect,e.phases.dns=e.lookup-e.socket),e.phases.tcp=e.connect-e.lookup},secureConnect:()=>{e.secureConnect=Date.now(),e.phases.tls=e.secureConnect-e.connect}})};t.socket?o(t.socket):t.prependOnceListener("socket",o);let a=()=>{var u;e.upload=Date.now(),e.phases.request=e.upload-(u=e.secureConnect,u??e.connect)};return(()=>typeof t.writableFinished=="boolean"?t.writableFinished:t.finished&&t.outputSize===0&&(!t.socket||t.socket.writableLength===0))()?a():t.prependOnceListener("finish",a),t.prependOnceListener("response",u=>{e.response=Date.now(),e.phases.firstByte=e.response-e.upload,u.timings=e,r(u),u.prependOnceListener("end",()=>{e.end=Date.now(),e.phases.download=e.end-e.response,e.phases.total=e.end-e.start})}),e};bM.default=PM;xM.exports=PM;xM.exports.default=PM});var soe=_((cLt,FM)=>{"use strict";var{V4MAPPED:Vrt,ADDRCONFIG:Jrt,ALL:ioe,promises:{Resolver:$se},lookup:zrt}=ve("dns"),{promisify:kM}=ve("util"),Xrt=ve("os"),BE=Symbol("cacheableLookupCreateConnection"),QM=Symbol("cacheableLookupInstance"),eoe=Symbol("expires"),Zrt=typeof ioe=="number",toe=t=>{if(!(t&&typeof t.createConnection=="function"))throw new Error("Expected an Agent instance as the first argument")},$rt=t=>{for(let e of t)e.family!==6&&(e.address=`::ffff:${e.address}`,e.family=6)},roe=()=>{let t=!1,e=!1;for(let r of Object.values(Xrt.networkInterfaces()))for(let o of r)if(!o.internal&&(o.family==="IPv6"?e=!0:t=!0,t&&e))return{has4:t,has6:e};return{has4:t,has6:e}},ent=t=>Symbol.iterator in t,noe={ttl:!0},tnt={all:!0},JP=class{constructor({cache:e=new Map,maxTtl:r=1/0,fallbackDuration:o=3600,errorTtl:a=.15,resolver:n=new $se,lookup:u=zrt}={}){if(this.maxTtl=r,this.errorTtl=a,this._cache=e,this._resolver=n,this._dnsLookup=kM(u),this._resolver instanceof $se?(this._resolve4=this._resolver.resolve4.bind(this._resolver),this._resolve6=this._resolver.resolve6.bind(this._resolver)):(this._resolve4=kM(this._resolver.resolve4.bind(this._resolver)),this._resolve6=kM(this._resolver.resolve6.bind(this._resolver))),this._iface=roe(),this._pending={},this._nextRemovalTime=!1,this._hostnamesToFallback=new Set,o<1)this._fallback=!1;else{this._fallback=!0;let A=setInterval(()=>{this._hostnamesToFallback.clear()},o*1e3);A.unref&&A.unref()}this.lookup=this.lookup.bind(this),this.lookupAsync=this.lookupAsync.bind(this)}set servers(e){this.clear(),this._resolver.setServers(e)}get servers(){return this._resolver.getServers()}lookup(e,r,o){if(typeof r=="function"?(o=r,r={}):typeof r=="number"&&(r={family:r}),!o)throw new Error("Callback must be a function.");this.lookupAsync(e,r).then(a=>{r.all?o(null,a):o(null,a.address,a.family,a.expires,a.ttl)},o)}async lookupAsync(e,r={}){typeof r=="number"&&(r={family:r});let o=await this.query(e);if(r.family===6){let a=o.filter(n=>n.family===6);r.hints&Vrt&&(Zrt&&r.hints&ioe||a.length===0)?$rt(o):o=a}else r.family===4&&(o=o.filter(a=>a.family===4));if(r.hints&Jrt){let{_iface:a}=this;o=o.filter(n=>n.family===6?a.has6:a.has4)}if(o.length===0){let a=new Error(`cacheableLookup ENOTFOUND ${e}`);throw a.code="ENOTFOUND",a.hostname=e,a}return r.all?o:o[0]}async query(e){let r=await this._cache.get(e);if(!r){let o=this._pending[e];if(o)r=await o;else{let a=this.queryAndCache(e);this._pending[e]=a,r=await a}}return r=r.map(o=>({...o})),r}async _resolve(e){let r=async h=>{try{return await h}catch(E){if(E.code==="ENODATA"||E.code==="ENOTFOUND")return[];throw E}},[o,a]=await Promise.all([this._resolve4(e,noe),this._resolve6(e,noe)].map(h=>r(h))),n=0,u=0,A=0,p=Date.now();for(let h of o)h.family=4,h.expires=p+h.ttl*1e3,n=Math.max(n,h.ttl);for(let h of a)h.family=6,h.expires=p+h.ttl*1e3,u=Math.max(u,h.ttl);return o.length>0?a.length>0?A=Math.min(n,u):A=n:A=u,{entries:[...o,...a],cacheTtl:A}}async _lookup(e){try{return{entries:await this._dnsLookup(e,{all:!0}),cacheTtl:0}}catch{return{entries:[],cacheTtl:0}}}async _set(e,r,o){if(this.maxTtl>0&&o>0){o=Math.min(o,this.maxTtl)*1e3,r[eoe]=Date.now()+o;try{await this._cache.set(e,r,o)}catch(a){this.lookupAsync=async()=>{let n=new Error("Cache Error. Please recreate the CacheableLookup instance.");throw n.cause=a,n}}ent(this._cache)&&this._tick(o)}}async queryAndCache(e){if(this._hostnamesToFallback.has(e))return this._dnsLookup(e,tnt);try{let r=await this._resolve(e);r.entries.length===0&&this._fallback&&(r=await this._lookup(e),r.entries.length!==0&&this._hostnamesToFallback.add(e));let o=r.entries.length===0?this.errorTtl:r.cacheTtl;return await this._set(e,r.entries,o),delete this._pending[e],r.entries}catch(r){throw delete this._pending[e],r}}_tick(e){let r=this._nextRemovalTime;(!r||e{this._nextRemovalTime=!1;let o=1/0,a=Date.now();for(let[n,u]of this._cache){let A=u[eoe];a>=A?this._cache.delete(n):A("lookup"in r||(r.lookup=this.lookup),e[BE](r,o))}uninstall(e){if(toe(e),e[BE]){if(e[QM]!==this)throw new Error("The agent is not owned by this CacheableLookup instance");e.createConnection=e[BE],delete e[BE],delete e[QM]}}updateInterfaceInfo(){let{_iface:e}=this;this._iface=roe(),(e.has4&&!this._iface.has4||e.has6&&!this._iface.has6)&&this._cache.clear()}clear(e){if(e){this._cache.delete(e);return}this._cache.clear()}};FM.exports=JP;FM.exports.default=JP});var loe=_((uLt,RM)=>{"use strict";var rnt=typeof URL>"u"?ve("url").URL:URL,nnt="text/plain",int="us-ascii",ooe=(t,e)=>e.some(r=>r instanceof RegExp?r.test(t):r===t),snt=(t,{stripHash:e})=>{let r=t.match(/^data:([^,]*?),([^#]*?)(?:#(.*))?$/);if(!r)throw new Error(`Invalid URL: ${t}`);let o=r[1].split(";"),a=r[2],n=e?"":r[3],u=!1;o[o.length-1]==="base64"&&(o.pop(),u=!0);let A=(o.shift()||"").toLowerCase(),h=[...o.map(E=>{let[I,v=""]=E.split("=").map(x=>x.trim());return I==="charset"&&(v=v.toLowerCase(),v===int)?"":`${I}${v?`=${v}`:""}`}).filter(Boolean)];return u&&h.push("base64"),(h.length!==0||A&&A!==nnt)&&h.unshift(A),`data:${h.join(";")},${u?a.trim():a}${n?`#${n}`:""}`},aoe=(t,e)=>{if(e={defaultProtocol:"http:",normalizeProtocol:!0,forceHttp:!1,forceHttps:!1,stripAuthentication:!0,stripHash:!1,stripWWW:!0,removeQueryParameters:[/^utm_\w+/i],removeTrailingSlash:!0,removeDirectoryIndex:!1,sortQueryParameters:!0,...e},Reflect.has(e,"normalizeHttps"))throw new Error("options.normalizeHttps is renamed to options.forceHttp");if(Reflect.has(e,"normalizeHttp"))throw new Error("options.normalizeHttp is renamed to options.forceHttps");if(Reflect.has(e,"stripFragment"))throw new Error("options.stripFragment is renamed to options.stripHash");if(t=t.trim(),/^data:/i.test(t))return snt(t,e);let r=t.startsWith("//");!r&&/^\.*\//.test(t)||(t=t.replace(/^(?!(?:\w+:)?\/\/)|^\/\//,e.defaultProtocol));let a=new rnt(t);if(e.forceHttp&&e.forceHttps)throw new Error("The `forceHttp` and `forceHttps` options cannot be used together");if(e.forceHttp&&a.protocol==="https:"&&(a.protocol="http:"),e.forceHttps&&a.protocol==="http:"&&(a.protocol="https:"),e.stripAuthentication&&(a.username="",a.password=""),e.stripHash&&(a.hash=""),a.pathname&&(a.pathname=a.pathname.replace(/((?!:).|^)\/{2,}/g,(n,u)=>/^(?!\/)/g.test(u)?`${u}/`:"/")),a.pathname&&(a.pathname=decodeURI(a.pathname)),e.removeDirectoryIndex===!0&&(e.removeDirectoryIndex=[/^index\.[a-z]+$/]),Array.isArray(e.removeDirectoryIndex)&&e.removeDirectoryIndex.length>0){let n=a.pathname.split("/"),u=n[n.length-1];ooe(u,e.removeDirectoryIndex)&&(n=n.slice(0,n.length-1),a.pathname=n.slice(1).join("/")+"/")}if(a.hostname&&(a.hostname=a.hostname.replace(/\.$/,""),e.stripWWW&&/^www\.([a-z\-\d]{2,63})\.([a-z.]{2,5})$/.test(a.hostname)&&(a.hostname=a.hostname.replace(/^www\./,""))),Array.isArray(e.removeQueryParameters))for(let n of[...a.searchParams.keys()])ooe(n,e.removeQueryParameters)&&a.searchParams.delete(n);return e.sortQueryParameters&&a.searchParams.sort(),e.removeTrailingSlash&&(a.pathname=a.pathname.replace(/\/$/,"")),t=a.toString(),(e.removeTrailingSlash||a.pathname==="/")&&a.hash===""&&(t=t.replace(/\/$/,"")),r&&!e.normalizeProtocol&&(t=t.replace(/^http:\/\//,"//")),e.stripProtocol&&(t=t.replace(/^(?:https?:)?\/\//,"")),t};RM.exports=aoe;RM.exports.default=aoe});var Aoe=_((ALt,uoe)=>{uoe.exports=coe;function coe(t,e){if(t&&e)return coe(t)(e);if(typeof t!="function")throw new TypeError("need wrapper function");return Object.keys(t).forEach(function(o){r[o]=t[o]}),r;function r(){for(var o=new Array(arguments.length),a=0;a{var foe=Aoe();TM.exports=foe(zP);TM.exports.strict=foe(poe);zP.proto=zP(function(){Object.defineProperty(Function.prototype,"once",{value:function(){return zP(this)},configurable:!0}),Object.defineProperty(Function.prototype,"onceStrict",{value:function(){return poe(this)},configurable:!0})});function zP(t){var e=function(){return e.called?e.value:(e.called=!0,e.value=t.apply(this,arguments))};return e.called=!1,e}function poe(t){var e=function(){if(e.called)throw new Error(e.onceError);return e.called=!0,e.value=t.apply(this,arguments)},r=t.name||"Function wrapped with `once`";return e.onceError=r+" shouldn't be called more than once",e.called=!1,e}});var LM=_((pLt,goe)=>{var ont=NM(),ant=function(){},lnt=function(t){return t.setHeader&&typeof t.abort=="function"},cnt=function(t){return t.stdio&&Array.isArray(t.stdio)&&t.stdio.length===3},hoe=function(t,e,r){if(typeof e=="function")return hoe(t,null,e);e||(e={}),r=ont(r||ant);var o=t._writableState,a=t._readableState,n=e.readable||e.readable!==!1&&t.readable,u=e.writable||e.writable!==!1&&t.writable,A=function(){t.writable||p()},p=function(){u=!1,n||r.call(t)},h=function(){n=!1,u||r.call(t)},E=function(C){r.call(t,C?new Error("exited with error code: "+C):null)},I=function(C){r.call(t,C)},v=function(){if(n&&!(a&&a.ended))return r.call(t,new Error("premature close"));if(u&&!(o&&o.ended))return r.call(t,new Error("premature close"))},x=function(){t.req.on("finish",p)};return lnt(t)?(t.on("complete",p),t.on("abort",v),t.req?x():t.on("request",x)):u&&!o&&(t.on("end",A),t.on("close",A)),cnt(t)&&t.on("exit",E),t.on("end",h),t.on("finish",p),e.error!==!1&&t.on("error",I),t.on("close",v),function(){t.removeListener("complete",p),t.removeListener("abort",v),t.removeListener("request",x),t.req&&t.req.removeListener("finish",p),t.removeListener("end",A),t.removeListener("close",A),t.removeListener("finish",p),t.removeListener("exit",E),t.removeListener("end",h),t.removeListener("error",I),t.removeListener("close",v)}};goe.exports=hoe});var yoe=_((hLt,moe)=>{var unt=NM(),Ant=LM(),OM=ve("fs"),p1=function(){},fnt=/^v?\.0/.test(process.version),XP=function(t){return typeof t=="function"},pnt=function(t){return!fnt||!OM?!1:(t instanceof(OM.ReadStream||p1)||t instanceof(OM.WriteStream||p1))&&XP(t.close)},hnt=function(t){return t.setHeader&&XP(t.abort)},gnt=function(t,e,r,o){o=unt(o);var a=!1;t.on("close",function(){a=!0}),Ant(t,{readable:e,writable:r},function(u){if(u)return o(u);a=!0,o()});var n=!1;return function(u){if(!a&&!n){if(n=!0,pnt(t))return t.close(p1);if(hnt(t))return t.abort();if(XP(t.destroy))return t.destroy();o(u||new Error("stream was destroyed"))}}},doe=function(t){t()},dnt=function(t,e){return t.pipe(e)},mnt=function(){var t=Array.prototype.slice.call(arguments),e=XP(t[t.length-1]||p1)&&t.pop()||p1;if(Array.isArray(t[0])&&(t=t[0]),t.length<2)throw new Error("pump requires two streams per minimum");var r,o=t.map(function(a,n){var u=n0;return gnt(a,u,A,function(p){r||(r=p),p&&o.forEach(doe),!u&&(o.forEach(doe),e(r))})});return t.reduce(dnt)};moe.exports=mnt});var Coe=_((gLt,Eoe)=>{"use strict";var{PassThrough:ynt}=ve("stream");Eoe.exports=t=>{t={...t};let{array:e}=t,{encoding:r}=t,o=r==="buffer",a=!1;e?a=!(r||o):r=r||"utf8",o&&(r=null);let n=new ynt({objectMode:a});r&&n.setEncoding(r);let u=0,A=[];return n.on("data",p=>{A.push(p),a?u=A.length:u+=p.length}),n.getBufferedValue=()=>e?A:o?Buffer.concat(A,u):A.join(""),n.getBufferedLength=()=>u,n}});var woe=_((dLt,vE)=>{"use strict";var Ent=yoe(),Cnt=Coe(),ZP=class extends Error{constructor(){super("maxBuffer exceeded"),this.name="MaxBufferError"}};async function $P(t,e){if(!t)return Promise.reject(new Error("Expected a stream"));e={maxBuffer:1/0,...e};let{maxBuffer:r}=e,o;return await new Promise((a,n)=>{let u=A=>{A&&(A.bufferedData=o.getBufferedValue()),n(A)};o=Ent(t,Cnt(e),A=>{if(A){u(A);return}a()}),o.on("data",()=>{o.getBufferedLength()>r&&u(new ZP)})}),o.getBufferedValue()}vE.exports=$P;vE.exports.default=$P;vE.exports.buffer=(t,e)=>$P(t,{...e,encoding:"buffer"});vE.exports.array=(t,e)=>$P(t,{...e,array:!0});vE.exports.MaxBufferError=ZP});var Boe=_((yLt,Ioe)=>{"use strict";var wnt=new Set([200,203,204,206,300,301,404,405,410,414,501]),Int=new Set([200,203,204,300,301,302,303,307,308,404,405,410,414,501]),Bnt=new Set([500,502,503,504]),vnt={date:!0,connection:!0,"keep-alive":!0,"proxy-authenticate":!0,"proxy-authorization":!0,te:!0,trailer:!0,"transfer-encoding":!0,upgrade:!0},Dnt={"content-length":!0,"content-encoding":!0,"transfer-encoding":!0,"content-range":!0};function Sd(t){let e=parseInt(t,10);return isFinite(e)?e:0}function Snt(t){return t?Bnt.has(t.status):!0}function MM(t){let e={};if(!t)return e;let r=t.trim().split(/\s*,\s*/);for(let o of r){let[a,n]=o.split(/\s*=\s*/,2);e[a]=n===void 0?!0:n.replace(/^"|"$/g,"")}return e}function Pnt(t){let e=[];for(let r in t){let o=t[r];e.push(o===!0?r:r+"="+o)}if(!!e.length)return e.join(", ")}Ioe.exports=class{constructor(e,r,{shared:o,cacheHeuristic:a,immutableMinTimeToLive:n,ignoreCargoCult:u,_fromObject:A}={}){if(A){this._fromObject(A);return}if(!r||!r.headers)throw Error("Response headers missing");this._assertRequestHasHeaders(e),this._responseTime=this.now(),this._isShared=o!==!1,this._cacheHeuristic=a!==void 0?a:.1,this._immutableMinTtl=n!==void 0?n:24*3600*1e3,this._status="status"in r?r.status:200,this._resHeaders=r.headers,this._rescc=MM(r.headers["cache-control"]),this._method="method"in e?e.method:"GET",this._url=e.url,this._host=e.headers.host,this._noAuthorization=!e.headers.authorization,this._reqHeaders=r.headers.vary?e.headers:null,this._reqcc=MM(e.headers["cache-control"]),u&&"pre-check"in this._rescc&&"post-check"in this._rescc&&(delete this._rescc["pre-check"],delete this._rescc["post-check"],delete this._rescc["no-cache"],delete this._rescc["no-store"],delete this._rescc["must-revalidate"],this._resHeaders=Object.assign({},this._resHeaders,{"cache-control":Pnt(this._rescc)}),delete this._resHeaders.expires,delete this._resHeaders.pragma),r.headers["cache-control"]==null&&/no-cache/.test(r.headers.pragma)&&(this._rescc["no-cache"]=!0)}now(){return Date.now()}storable(){return!!(!this._reqcc["no-store"]&&(this._method==="GET"||this._method==="HEAD"||this._method==="POST"&&this._hasExplicitExpiration())&&Int.has(this._status)&&!this._rescc["no-store"]&&(!this._isShared||!this._rescc.private)&&(!this._isShared||this._noAuthorization||this._allowsStoringAuthenticated())&&(this._resHeaders.expires||this._rescc["max-age"]||this._isShared&&this._rescc["s-maxage"]||this._rescc.public||wnt.has(this._status)))}_hasExplicitExpiration(){return this._isShared&&this._rescc["s-maxage"]||this._rescc["max-age"]||this._resHeaders.expires}_assertRequestHasHeaders(e){if(!e||!e.headers)throw Error("Request headers missing")}satisfiesWithoutRevalidation(e){this._assertRequestHasHeaders(e);let r=MM(e.headers["cache-control"]);return r["no-cache"]||/no-cache/.test(e.headers.pragma)||r["max-age"]&&this.age()>r["max-age"]||r["min-fresh"]&&this.timeToLive()<1e3*r["min-fresh"]||this.stale()&&!(r["max-stale"]&&!this._rescc["must-revalidate"]&&(r["max-stale"]===!0||r["max-stale"]>this.age()-this.maxAge()))?!1:this._requestMatches(e,!1)}_requestMatches(e,r){return(!this._url||this._url===e.url)&&this._host===e.headers.host&&(!e.method||this._method===e.method||r&&e.method==="HEAD")&&this._varyMatches(e)}_allowsStoringAuthenticated(){return this._rescc["must-revalidate"]||this._rescc.public||this._rescc["s-maxage"]}_varyMatches(e){if(!this._resHeaders.vary)return!0;if(this._resHeaders.vary==="*")return!1;let r=this._resHeaders.vary.trim().toLowerCase().split(/\s*,\s*/);for(let o of r)if(e.headers[o]!==this._reqHeaders[o])return!1;return!0}_copyWithoutHopByHopHeaders(e){let r={};for(let o in e)vnt[o]||(r[o]=e[o]);if(e.connection){let o=e.connection.trim().split(/\s*,\s*/);for(let a of o)delete r[a]}if(r.warning){let o=r.warning.split(/,/).filter(a=>!/^\s*1[0-9][0-9]/.test(a));o.length?r.warning=o.join(",").trim():delete r.warning}return r}responseHeaders(){let e=this._copyWithoutHopByHopHeaders(this._resHeaders),r=this.age();return r>3600*24&&!this._hasExplicitExpiration()&&this.maxAge()>3600*24&&(e.warning=(e.warning?`${e.warning}, `:"")+'113 - "rfc7234 5.5.4"'),e.age=`${Math.round(r)}`,e.date=new Date(this.now()).toUTCString(),e}date(){let e=Date.parse(this._resHeaders.date);return isFinite(e)?e:this._responseTime}age(){let e=this._ageValue(),r=(this.now()-this._responseTime)/1e3;return e+r}_ageValue(){return Sd(this._resHeaders.age)}maxAge(){if(!this.storable()||this._rescc["no-cache"]||this._isShared&&this._resHeaders["set-cookie"]&&!this._rescc.public&&!this._rescc.immutable||this._resHeaders.vary==="*")return 0;if(this._isShared){if(this._rescc["proxy-revalidate"])return 0;if(this._rescc["s-maxage"])return Sd(this._rescc["s-maxage"])}if(this._rescc["max-age"])return Sd(this._rescc["max-age"]);let e=this._rescc.immutable?this._immutableMinTtl:0,r=this.date();if(this._resHeaders.expires){let o=Date.parse(this._resHeaders.expires);return Number.isNaN(o)||oo)return Math.max(e,(r-o)/1e3*this._cacheHeuristic)}return e}timeToLive(){let e=this.maxAge()-this.age(),r=e+Sd(this._rescc["stale-if-error"]),o=e+Sd(this._rescc["stale-while-revalidate"]);return Math.max(0,e,r,o)*1e3}stale(){return this.maxAge()<=this.age()}_useStaleIfError(){return this.maxAge()+Sd(this._rescc["stale-if-error"])>this.age()}useStaleWhileRevalidate(){return this.maxAge()+Sd(this._rescc["stale-while-revalidate"])>this.age()}static fromObject(e){return new this(void 0,void 0,{_fromObject:e})}_fromObject(e){if(this._responseTime)throw Error("Reinitialized");if(!e||e.v!==1)throw Error("Invalid serialization");this._responseTime=e.t,this._isShared=e.sh,this._cacheHeuristic=e.ch,this._immutableMinTtl=e.imm!==void 0?e.imm:24*3600*1e3,this._status=e.st,this._resHeaders=e.resh,this._rescc=e.rescc,this._method=e.m,this._url=e.u,this._host=e.h,this._noAuthorization=e.a,this._reqHeaders=e.reqh,this._reqcc=e.reqcc}toObject(){return{v:1,t:this._responseTime,sh:this._isShared,ch:this._cacheHeuristic,imm:this._immutableMinTtl,st:this._status,resh:this._resHeaders,rescc:this._rescc,m:this._method,u:this._url,h:this._host,a:this._noAuthorization,reqh:this._reqHeaders,reqcc:this._reqcc}}revalidationHeaders(e){this._assertRequestHasHeaders(e);let r=this._copyWithoutHopByHopHeaders(e.headers);if(delete r["if-range"],!this._requestMatches(e,!0)||!this.storable())return delete r["if-none-match"],delete r["if-modified-since"],r;if(this._resHeaders.etag&&(r["if-none-match"]=r["if-none-match"]?`${r["if-none-match"]}, ${this._resHeaders.etag}`:this._resHeaders.etag),r["accept-ranges"]||r["if-match"]||r["if-unmodified-since"]||this._method&&this._method!="GET"){if(delete r["if-modified-since"],r["if-none-match"]){let a=r["if-none-match"].split(/,/).filter(n=>!/^\s*W\//.test(n));a.length?r["if-none-match"]=a.join(",").trim():delete r["if-none-match"]}}else this._resHeaders["last-modified"]&&!r["if-modified-since"]&&(r["if-modified-since"]=this._resHeaders["last-modified"]);return r}revalidatedPolicy(e,r){if(this._assertRequestHasHeaders(e),this._useStaleIfError()&&Snt(r))return{modified:!1,matches:!1,policy:this};if(!r||!r.headers)throw Error("Response headers missing");let o=!1;if(r.status!==void 0&&r.status!=304?o=!1:r.headers.etag&&!/^\s*W\//.test(r.headers.etag)?o=this._resHeaders.etag&&this._resHeaders.etag.replace(/^\s*W\//,"")===r.headers.etag:this._resHeaders.etag&&r.headers.etag?o=this._resHeaders.etag.replace(/^\s*W\//,"")===r.headers.etag.replace(/^\s*W\//,""):this._resHeaders["last-modified"]?o=this._resHeaders["last-modified"]===r.headers["last-modified"]:!this._resHeaders.etag&&!this._resHeaders["last-modified"]&&!r.headers.etag&&!r.headers["last-modified"]&&(o=!0),!o)return{policy:new this.constructor(e,r),modified:r.status!=304,matches:!1};let a={};for(let u in this._resHeaders)a[u]=u in r.headers&&!Dnt[u]?r.headers[u]:this._resHeaders[u];let n=Object.assign({},r,{status:this._status,method:this._method,headers:a});return{policy:new this.constructor(e,n,{shared:this._isShared,cacheHeuristic:this._cacheHeuristic,immutableMinTimeToLive:this._immutableMinTtl}),modified:!1,matches:!0}}}});var eb=_((ELt,voe)=>{"use strict";voe.exports=t=>{let e={};for(let[r,o]of Object.entries(t))e[r.toLowerCase()]=o;return e}});var Soe=_((CLt,Doe)=>{"use strict";var bnt=ve("stream").Readable,xnt=eb(),UM=class extends bnt{constructor(e,r,o,a){if(typeof e!="number")throw new TypeError("Argument `statusCode` should be a number");if(typeof r!="object")throw new TypeError("Argument `headers` should be an object");if(!(o instanceof Buffer))throw new TypeError("Argument `body` should be a buffer");if(typeof a!="string")throw new TypeError("Argument `url` should be a string");super(),this.statusCode=e,this.headers=xnt(r),this.body=o,this.url=a}_read(){this.push(this.body),this.push(null)}};Doe.exports=UM});var boe=_((wLt,Poe)=>{"use strict";var knt=["destroy","setTimeout","socket","headers","trailers","rawHeaders","statusCode","httpVersion","httpVersionMinor","httpVersionMajor","rawTrailers","statusMessage"];Poe.exports=(t,e)=>{let r=new Set(Object.keys(t).concat(knt));for(let o of r)o in e||(e[o]=typeof t[o]=="function"?t[o].bind(t):t[o])}});var koe=_((ILt,xoe)=>{"use strict";var Qnt=ve("stream").PassThrough,Fnt=boe(),Rnt=t=>{if(!(t&&t.pipe))throw new TypeError("Parameter `response` must be a response stream.");let e=new Qnt;return Fnt(t,e),t.pipe(e)};xoe.exports=Rnt});var Qoe=_(_M=>{_M.stringify=function t(e){if(typeof e>"u")return e;if(e&&Buffer.isBuffer(e))return JSON.stringify(":base64:"+e.toString("base64"));if(e&&e.toJSON&&(e=e.toJSON()),e&&typeof e=="object"){var r="",o=Array.isArray(e);r=o?"[":"{";var a=!0;for(var n in e){var u=typeof e[n]=="function"||!o&&typeof e[n]>"u";Object.hasOwnProperty.call(e,n)&&!u&&(a||(r+=","),a=!1,o?e[n]==null?r+="null":r+=t(e[n]):e[n]!==void 0&&(r+=t(n)+":"+t(e[n])))}return r+=o?"]":"}",r}else return typeof e=="string"?JSON.stringify(/^:/.test(e)?":"+e:e):typeof e>"u"?"null":JSON.stringify(e)};_M.parse=function(t){return JSON.parse(t,function(e,r){return typeof r=="string"?/^:base64:/.test(r)?Buffer.from(r.substring(8),"base64"):/^:/.test(r)?r.substring(1):r:r})}});var Toe=_((vLt,Roe)=>{"use strict";var Tnt=ve("events"),Foe=Qoe(),Nnt=t=>{let e={redis:"@keyv/redis",mongodb:"@keyv/mongo",mongo:"@keyv/mongo",sqlite:"@keyv/sqlite",postgresql:"@keyv/postgres",postgres:"@keyv/postgres",mysql:"@keyv/mysql"};if(t.adapter||t.uri){let r=t.adapter||/^[^:]*/.exec(t.uri)[0];return new(ve(e[r]))(t)}return new Map},HM=class extends Tnt{constructor(e,r){if(super(),this.opts=Object.assign({namespace:"keyv",serialize:Foe.stringify,deserialize:Foe.parse},typeof e=="string"?{uri:e}:e,r),!this.opts.store){let o=Object.assign({},this.opts);this.opts.store=Nnt(o)}typeof this.opts.store.on=="function"&&this.opts.store.on("error",o=>this.emit("error",o)),this.opts.store.namespace=this.opts.namespace}_getKeyPrefix(e){return`${this.opts.namespace}:${e}`}get(e,r){e=this._getKeyPrefix(e);let{store:o}=this.opts;return Promise.resolve().then(()=>o.get(e)).then(a=>typeof a=="string"?this.opts.deserialize(a):a).then(a=>{if(a!==void 0){if(typeof a.expires=="number"&&Date.now()>a.expires){this.delete(e);return}return r&&r.raw?a:a.value}})}set(e,r,o){e=this._getKeyPrefix(e),typeof o>"u"&&(o=this.opts.ttl),o===0&&(o=void 0);let{store:a}=this.opts;return Promise.resolve().then(()=>{let n=typeof o=="number"?Date.now()+o:null;return r={value:r,expires:n},this.opts.serialize(r)}).then(n=>a.set(e,n,o)).then(()=>!0)}delete(e){e=this._getKeyPrefix(e);let{store:r}=this.opts;return Promise.resolve().then(()=>r.delete(e))}clear(){let{store:e}=this.opts;return Promise.resolve().then(()=>e.clear())}};Roe.exports=HM});var Ooe=_((SLt,Loe)=>{"use strict";var Lnt=ve("events"),tb=ve("url"),Ont=loe(),Mnt=woe(),qM=Boe(),Noe=Soe(),Unt=eb(),_nt=koe(),Hnt=Toe(),qc=class{constructor(e,r){if(typeof e!="function")throw new TypeError("Parameter `request` must be a function");return this.cache=new Hnt({uri:typeof r=="string"&&r,store:typeof r!="string"&&r,namespace:"cacheable-request"}),this.createCacheableRequest(e)}createCacheableRequest(e){return(r,o)=>{let a;if(typeof r=="string")a=jM(tb.parse(r)),r={};else if(r instanceof tb.URL)a=jM(tb.parse(r.toString())),r={};else{let[I,...v]=(r.path||"").split("?"),x=v.length>0?`?${v.join("?")}`:"";a=jM({...r,pathname:I,search:x})}r={headers:{},method:"GET",cache:!0,strictTtl:!1,automaticFailover:!1,...r,...qnt(a)},r.headers=Unt(r.headers);let n=new Lnt,u=Ont(tb.format(a),{stripWWW:!1,removeTrailingSlash:!1,stripAuthentication:!1}),A=`${r.method}:${u}`,p=!1,h=!1,E=I=>{h=!0;let v=!1,x,C=new Promise(L=>{x=()=>{v||(v=!0,L())}}),R=L=>{if(p&&!I.forceRefresh){L.status=L.statusCode;let J=qM.fromObject(p.cachePolicy).revalidatedPolicy(I,L);if(!J.modified){let te=J.policy.responseHeaders();L=new Noe(p.statusCode,te,p.body,p.url),L.cachePolicy=J.policy,L.fromCache=!0}}L.fromCache||(L.cachePolicy=new qM(I,L,I),L.fromCache=!1);let U;I.cache&&L.cachePolicy.storable()?(U=_nt(L),(async()=>{try{let J=Mnt.buffer(L);if(await Promise.race([C,new Promise(ce=>L.once("end",ce))]),v)return;let te=await J,ae={cachePolicy:L.cachePolicy.toObject(),url:L.url,statusCode:L.fromCache?p.statusCode:L.statusCode,body:te},fe=I.strictTtl?L.cachePolicy.timeToLive():void 0;I.maxTtl&&(fe=fe?Math.min(fe,I.maxTtl):I.maxTtl),await this.cache.set(A,ae,fe)}catch(J){n.emit("error",new qc.CacheError(J))}})()):I.cache&&p&&(async()=>{try{await this.cache.delete(A)}catch(J){n.emit("error",new qc.CacheError(J))}})(),n.emit("response",U||L),typeof o=="function"&&o(U||L)};try{let L=e(I,R);L.once("error",x),L.once("abort",x),n.emit("request",L)}catch(L){n.emit("error",new qc.RequestError(L))}};return(async()=>{let I=async x=>{await Promise.resolve();let C=x.cache?await this.cache.get(A):void 0;if(typeof C>"u")return E(x);let R=qM.fromObject(C.cachePolicy);if(R.satisfiesWithoutRevalidation(x)&&!x.forceRefresh){let L=R.responseHeaders(),U=new Noe(C.statusCode,L,C.body,C.url);U.cachePolicy=R,U.fromCache=!0,n.emit("response",U),typeof o=="function"&&o(U)}else p=C,x.headers=R.revalidationHeaders(x),E(x)},v=x=>n.emit("error",new qc.CacheError(x));this.cache.once("error",v),n.on("response",()=>this.cache.removeListener("error",v));try{await I(r)}catch(x){r.automaticFailover&&!h&&E(r),n.emit("error",new qc.CacheError(x))}})(),n}}};function qnt(t){let e={...t};return e.path=`${t.pathname||"/"}${t.search||""}`,delete e.pathname,delete e.search,e}function jM(t){return{protocol:t.protocol,auth:t.auth,hostname:t.hostname||t.host||"localhost",port:t.port,pathname:t.pathname,search:t.search}}qc.RequestError=class extends Error{constructor(t){super(t.message),this.name="RequestError",Object.assign(this,t)}};qc.CacheError=class extends Error{constructor(t){super(t.message),this.name="CacheError",Object.assign(this,t)}};Loe.exports=qc});var Uoe=_((xLt,Moe)=>{"use strict";var jnt=["aborted","complete","headers","httpVersion","httpVersionMinor","httpVersionMajor","method","rawHeaders","rawTrailers","setTimeout","socket","statusCode","statusMessage","trailers","url"];Moe.exports=(t,e)=>{if(e._readableState.autoDestroy)throw new Error("The second stream must have the `autoDestroy` option set to `false`");let r=new Set(Object.keys(t).concat(jnt)),o={};for(let a of r)a in e||(o[a]={get(){let n=t[a];return typeof n=="function"?n.bind(t):n},set(n){t[a]=n},enumerable:!0,configurable:!1});return Object.defineProperties(e,o),t.once("aborted",()=>{e.destroy(),e.emit("aborted")}),t.once("close",()=>{t.complete&&e.readable?e.once("end",()=>{e.emit("close")}):e.emit("close")}),e}});var Hoe=_((kLt,_oe)=>{"use strict";var{Transform:Gnt,PassThrough:Ynt}=ve("stream"),GM=ve("zlib"),Wnt=Uoe();_oe.exports=t=>{let e=(t.headers["content-encoding"]||"").toLowerCase();if(!["gzip","deflate","br"].includes(e))return t;let r=e==="br";if(r&&typeof GM.createBrotliDecompress!="function")return t.destroy(new Error("Brotli is not supported on Node.js < 12")),t;let o=!0,a=new Gnt({transform(A,p,h){o=!1,h(null,A)},flush(A){A()}}),n=new Ynt({autoDestroy:!1,destroy(A,p){t.destroy(),p(A)}}),u=r?GM.createBrotliDecompress():GM.createUnzip();return u.once("error",A=>{if(o&&!t.readable){n.end();return}n.destroy(A)}),Wnt(t,n),t.pipe(a).pipe(u).pipe(n),n}});var WM=_((QLt,qoe)=>{"use strict";var YM=class{constructor(e={}){if(!(e.maxSize&&e.maxSize>0))throw new TypeError("`maxSize` must be a number greater than 0");this.maxSize=e.maxSize,this.onEviction=e.onEviction,this.cache=new Map,this.oldCache=new Map,this._size=0}_set(e,r){if(this.cache.set(e,r),this._size++,this._size>=this.maxSize){if(this._size=0,typeof this.onEviction=="function")for(let[o,a]of this.oldCache.entries())this.onEviction(o,a);this.oldCache=this.cache,this.cache=new Map}}get(e){if(this.cache.has(e))return this.cache.get(e);if(this.oldCache.has(e)){let r=this.oldCache.get(e);return this.oldCache.delete(e),this._set(e,r),r}}set(e,r){return this.cache.has(e)?this.cache.set(e,r):this._set(e,r),this}has(e){return this.cache.has(e)||this.oldCache.has(e)}peek(e){if(this.cache.has(e))return this.cache.get(e);if(this.oldCache.has(e))return this.oldCache.get(e)}delete(e){let r=this.cache.delete(e);return r&&this._size--,this.oldCache.delete(e)||r}clear(){this.cache.clear(),this.oldCache.clear(),this._size=0}*keys(){for(let[e]of this)yield e}*values(){for(let[,e]of this)yield e}*[Symbol.iterator](){for(let e of this.cache)yield e;for(let e of this.oldCache){let[r]=e;this.cache.has(r)||(yield e)}}get size(){let e=0;for(let r of this.oldCache.keys())this.cache.has(r)||e++;return Math.min(this._size+e,this.maxSize)}};qoe.exports=YM});var VM=_((FLt,Woe)=>{"use strict";var Knt=ve("events"),Vnt=ve("tls"),Jnt=ve("http2"),znt=WM(),ea=Symbol("currentStreamsCount"),joe=Symbol("request"),Wl=Symbol("cachedOriginSet"),DE=Symbol("gracefullyClosing"),Xnt=["maxDeflateDynamicTableSize","maxSessionMemory","maxHeaderListPairs","maxOutstandingPings","maxReservedRemoteStreams","maxSendHeaderBlockLength","paddingStrategy","localAddress","path","rejectUnauthorized","minDHSize","ca","cert","clientCertEngine","ciphers","key","pfx","servername","minVersion","maxVersion","secureProtocol","crl","honorCipherOrder","ecdhCurve","dhparam","secureOptions","sessionIdContext"],Znt=(t,e,r)=>{let o=0,a=t.length;for(;o>>1;r(t[n],e)?o=n+1:a=n}return o},$nt=(t,e)=>t.remoteSettings.maxConcurrentStreams>e.remoteSettings.maxConcurrentStreams,KM=(t,e)=>{for(let r of t)r[Wl].lengthe[Wl].includes(o))&&r[ea]+e[ea]<=e.remoteSettings.maxConcurrentStreams&&Yoe(r)},eit=(t,e)=>{for(let r of t)e[Wl].lengthr[Wl].includes(o))&&e[ea]+r[ea]<=r.remoteSettings.maxConcurrentStreams&&Yoe(e)},Goe=({agent:t,isFree:e})=>{let r={};for(let o in t.sessions){let n=t.sessions[o].filter(u=>{let A=u[tA.kCurrentStreamsCount]{t[DE]=!0,t[ea]===0&&t.close()},tA=class extends Knt{constructor({timeout:e=6e4,maxSessions:r=1/0,maxFreeSessions:o=10,maxCachedTlsSessions:a=100}={}){super(),this.sessions={},this.queue={},this.timeout=e,this.maxSessions=r,this.maxFreeSessions=o,this._freeSessionsCount=0,this._sessionsCount=0,this.settings={enablePush:!1},this.tlsSessionCache=new znt({maxSize:a})}static normalizeOrigin(e,r){return typeof e=="string"&&(e=new URL(e)),r&&e.hostname!==r&&(e.hostname=r),e.origin}normalizeOptions(e){let r="";if(e)for(let o of Xnt)e[o]&&(r+=`:${e[o]}`);return r}_tryToCreateNewSession(e,r){if(!(e in this.queue)||!(r in this.queue[e]))return;let o=this.queue[e][r];this._sessionsCount{Array.isArray(o)?(o=[...o],a()):o=[{resolve:a,reject:n}];let u=this.normalizeOptions(r),A=tA.normalizeOrigin(e,r&&r.servername);if(A===void 0){for(let{reject:E}of o)E(new TypeError("The `origin` argument needs to be a string or an URL object"));return}if(u in this.sessions){let E=this.sessions[u],I=-1,v=-1,x;for(let C of E){let R=C.remoteSettings.maxConcurrentStreams;if(R=R||C[DE]||C.destroyed)continue;x||(I=R),L>v&&(x=C,v=L)}}if(x){if(o.length!==1){for(let{reject:C}of o){let R=new Error(`Expected the length of listeners to be 1, got ${o.length}. +Please report this to https://github.com/szmarczak/http2-wrapper/`);C(R)}return}o[0].resolve(x);return}}if(u in this.queue){if(A in this.queue[u]){this.queue[u][A].listeners.push(...o),this._tryToCreateNewSession(u,A);return}}else this.queue[u]={};let p=()=>{u in this.queue&&this.queue[u][A]===h&&(delete this.queue[u][A],Object.keys(this.queue[u]).length===0&&delete this.queue[u])},h=()=>{let E=`${A}:${u}`,I=!1;try{let v=Jnt.connect(e,{createConnection:this.createConnection,settings:this.settings,session:this.tlsSessionCache.get(E),...r});v[ea]=0,v[DE]=!1;let x=()=>v[ea]{this.tlsSessionCache.set(E,L)}),v.once("error",L=>{for(let{reject:U}of o)U(L);this.tlsSessionCache.delete(E)}),v.setTimeout(this.timeout,()=>{v.destroy()}),v.once("close",()=>{if(I){C&&this._freeSessionsCount--,this._sessionsCount--;let L=this.sessions[u];L.splice(L.indexOf(v),1),L.length===0&&delete this.sessions[u]}else{let L=new Error("Session closed without receiving a SETTINGS frame");L.code="HTTP2WRAPPER_NOSETTINGS";for(let{reject:U}of o)U(L);p()}this._tryToCreateNewSession(u,A)});let R=()=>{if(!(!(u in this.queue)||!x())){for(let L of v[Wl])if(L in this.queue[u]){let{listeners:U}=this.queue[u][L];for(;U.length!==0&&x();)U.shift().resolve(v);let J=this.queue[u];if(J[L].listeners.length===0&&(delete J[L],Object.keys(J).length===0)){delete this.queue[u];break}if(!x())break}}};v.on("origin",()=>{v[Wl]=v.originSet,x()&&(R(),KM(this.sessions[u],v))}),v.once("remoteSettings",()=>{if(v.ref(),v.unref(),this._sessionsCount++,h.destroyed){let L=new Error("Agent has been destroyed");for(let U of o)U.reject(L);v.destroy();return}v[Wl]=v.originSet;{let L=this.sessions;if(u in L){let U=L[u];U.splice(Znt(U,v,$nt),0,v)}else L[u]=[v]}this._freeSessionsCount+=1,I=!0,this.emit("session",v),R(),p(),v[ea]===0&&this._freeSessionsCount>this.maxFreeSessions&&v.close(),o.length!==0&&(this.getSession(A,r,o),o.length=0),v.on("remoteSettings",()=>{R(),KM(this.sessions[u],v)})}),v[joe]=v.request,v.request=(L,U)=>{if(v[DE])throw new Error("The session is gracefully closing. No new streams are allowed.");let J=v[joe](L,U);return v.ref(),++v[ea],v[ea]===v.remoteSettings.maxConcurrentStreams&&this._freeSessionsCount--,J.once("close",()=>{if(C=x(),--v[ea],!v.destroyed&&!v.closed&&(eit(this.sessions[u],v),x()&&!v.closed)){C||(this._freeSessionsCount++,C=!0);let te=v[ea]===0;te&&v.unref(),te&&(this._freeSessionsCount>this.maxFreeSessions||v[DE])?v.close():(KM(this.sessions[u],v),R())}}),J}}catch(v){for(let x of o)x.reject(v);p()}};h.listeners=o,h.completed=!1,h.destroyed=!1,this.queue[u][A]=h,this._tryToCreateNewSession(u,A)})}request(e,r,o,a){return new Promise((n,u)=>{this.getSession(e,r,[{reject:u,resolve:A=>{try{n(A.request(o,a))}catch(p){u(p)}}}])})}createConnection(e,r){return tA.connect(e,r)}static connect(e,r){r.ALPNProtocols=["h2"];let o=e.port||443,a=e.hostname||e.host;return typeof r.servername>"u"&&(r.servername=a),Vnt.connect(o,a,r)}closeFreeSessions(){for(let e of Object.values(this.sessions))for(let r of e)r[ea]===0&&r.close()}destroy(e){for(let r of Object.values(this.sessions))for(let o of r)o.destroy(e);for(let r of Object.values(this.queue))for(let o of Object.values(r))o.destroyed=!0;this.queue={}}get freeSessions(){return Goe({agent:this,isFree:!0})}get busySessions(){return Goe({agent:this,isFree:!1})}};tA.kCurrentStreamsCount=ea;tA.kGracefullyClosing=DE;Woe.exports={Agent:tA,globalAgent:new tA}});var zM=_((RLt,Koe)=>{"use strict";var{Readable:tit}=ve("stream"),JM=class extends tit{constructor(e,r){super({highWaterMark:r,autoDestroy:!1}),this.statusCode=null,this.statusMessage="",this.httpVersion="2.0",this.httpVersionMajor=2,this.httpVersionMinor=0,this.headers={},this.trailers={},this.req=null,this.aborted=!1,this.complete=!1,this.upgrade=null,this.rawHeaders=[],this.rawTrailers=[],this.socket=e,this.connection=e,this._dumped=!1}_destroy(e){this.req._request.destroy(e)}setTimeout(e,r){return this.req.setTimeout(e,r),this}_dump(){this._dumped||(this._dumped=!0,this.removeAllListeners("data"),this.resume())}_read(){this.req&&this.req._request.resume()}};Koe.exports=JM});var XM=_((TLt,Voe)=>{"use strict";Voe.exports=t=>{let e={protocol:t.protocol,hostname:typeof t.hostname=="string"&&t.hostname.startsWith("[")?t.hostname.slice(1,-1):t.hostname,host:t.host,hash:t.hash,search:t.search,pathname:t.pathname,href:t.href,path:`${t.pathname||""}${t.search||""}`};return typeof t.port=="string"&&t.port.length!==0&&(e.port=Number(t.port)),(t.username||t.password)&&(e.auth=`${t.username||""}:${t.password||""}`),e}});var zoe=_((NLt,Joe)=>{"use strict";Joe.exports=(t,e,r)=>{for(let o of r)t.on(o,(...a)=>e.emit(o,...a))}});var Zoe=_((LLt,Xoe)=>{"use strict";Xoe.exports=t=>{switch(t){case":method":case":scheme":case":authority":case":path":return!0;default:return!1}}});var eae=_((MLt,$oe)=>{"use strict";var SE=(t,e,r)=>{$oe.exports[e]=class extends t{constructor(...a){super(typeof r=="string"?r:r(a)),this.name=`${super.name} [${e}]`,this.code=e}}};SE(TypeError,"ERR_INVALID_ARG_TYPE",t=>{let e=t[0].includes(".")?"property":"argument",r=t[1],o=Array.isArray(r);return o&&(r=`${r.slice(0,-1).join(", ")} or ${r.slice(-1)}`),`The "${t[0]}" ${e} must be ${o?"one of":"of"} type ${r}. Received ${typeof t[2]}`});SE(TypeError,"ERR_INVALID_PROTOCOL",t=>`Protocol "${t[0]}" not supported. Expected "${t[1]}"`);SE(Error,"ERR_HTTP_HEADERS_SENT",t=>`Cannot ${t[0]} headers after they are sent to the client`);SE(TypeError,"ERR_INVALID_HTTP_TOKEN",t=>`${t[0]} must be a valid HTTP token [${t[1]}]`);SE(TypeError,"ERR_HTTP_INVALID_HEADER_VALUE",t=>`Invalid value "${t[0]} for header "${t[1]}"`);SE(TypeError,"ERR_INVALID_CHAR",t=>`Invalid character in ${t[0]} [${t[1]}]`)});var r4=_((ULt,aae)=>{"use strict";var rit=ve("http2"),{Writable:nit}=ve("stream"),{Agent:tae,globalAgent:iit}=VM(),sit=zM(),oit=XM(),ait=zoe(),lit=Zoe(),{ERR_INVALID_ARG_TYPE:ZM,ERR_INVALID_PROTOCOL:cit,ERR_HTTP_HEADERS_SENT:rae,ERR_INVALID_HTTP_TOKEN:uit,ERR_HTTP_INVALID_HEADER_VALUE:Ait,ERR_INVALID_CHAR:fit}=eae(),{HTTP2_HEADER_STATUS:nae,HTTP2_HEADER_METHOD:iae,HTTP2_HEADER_PATH:sae,HTTP2_METHOD_CONNECT:pit}=rit.constants,Qo=Symbol("headers"),$M=Symbol("origin"),e4=Symbol("session"),oae=Symbol("options"),rb=Symbol("flushedHeaders"),h1=Symbol("jobs"),hit=/^[\^`\-\w!#$%&*+.|~]+$/,git=/[^\t\u0020-\u007E\u0080-\u00FF]/,t4=class extends nit{constructor(e,r,o){super({autoDestroy:!1});let a=typeof e=="string"||e instanceof URL;if(a&&(e=oit(e instanceof URL?e:new URL(e))),typeof r=="function"||r===void 0?(o=r,r=a?e:{...e}):r={...e,...r},r.h2session)this[e4]=r.h2session;else if(r.agent===!1)this.agent=new tae({maxFreeSessions:0});else if(typeof r.agent>"u"||r.agent===null)typeof r.createConnection=="function"?(this.agent=new tae({maxFreeSessions:0}),this.agent.createConnection=r.createConnection):this.agent=iit;else if(typeof r.agent.request=="function")this.agent=r.agent;else throw new ZM("options.agent",["Agent-like Object","undefined","false"],r.agent);if(r.protocol&&r.protocol!=="https:")throw new cit(r.protocol,"https:");let n=r.port||r.defaultPort||this.agent&&this.agent.defaultPort||443,u=r.hostname||r.host||"localhost";delete r.hostname,delete r.host,delete r.port;let{timeout:A}=r;if(r.timeout=void 0,this[Qo]=Object.create(null),this[h1]=[],this.socket=null,this.connection=null,this.method=r.method||"GET",this.path=r.path,this.res=null,this.aborted=!1,this.reusedSocket=!1,r.headers)for(let[p,h]of Object.entries(r.headers))this.setHeader(p,h);r.auth&&!("authorization"in this[Qo])&&(this[Qo].authorization="Basic "+Buffer.from(r.auth).toString("base64")),r.session=r.tlsSession,r.path=r.socketPath,this[oae]=r,n===443?(this[$M]=`https://${u}`,":authority"in this[Qo]||(this[Qo][":authority"]=u)):(this[$M]=`https://${u}:${n}`,":authority"in this[Qo]||(this[Qo][":authority"]=`${u}:${n}`)),A&&this.setTimeout(A),o&&this.once("response",o),this[rb]=!1}get method(){return this[Qo][iae]}set method(e){e&&(this[Qo][iae]=e.toUpperCase())}get path(){return this[Qo][sae]}set path(e){e&&(this[Qo][sae]=e)}get _mustNotHaveABody(){return this.method==="GET"||this.method==="HEAD"||this.method==="DELETE"}_write(e,r,o){if(this._mustNotHaveABody){o(new Error("The GET, HEAD and DELETE methods must NOT have a body"));return}this.flushHeaders();let a=()=>this._request.write(e,r,o);this._request?a():this[h1].push(a)}_final(e){if(this.destroyed)return;this.flushHeaders();let r=()=>{if(this._mustNotHaveABody){e();return}this._request.end(e)};this._request?r():this[h1].push(r)}abort(){this.res&&this.res.complete||(this.aborted||process.nextTick(()=>this.emit("abort")),this.aborted=!0,this.destroy())}_destroy(e,r){this.res&&this.res._dump(),this._request&&this._request.destroy(),r(e)}async flushHeaders(){if(this[rb]||this.destroyed)return;this[rb]=!0;let e=this.method===pit,r=o=>{if(this._request=o,this.destroyed){o.destroy();return}e||ait(o,this,["timeout","continue","close","error"]);let a=u=>(...A)=>{!this.writable&&!this.destroyed?u(...A):this.once("finish",()=>{u(...A)})};o.once("response",a((u,A,p)=>{let h=new sit(this.socket,o.readableHighWaterMark);this.res=h,h.req=this,h.statusCode=u[nae],h.headers=u,h.rawHeaders=p,h.once("end",()=>{this.aborted?(h.aborted=!0,h.emit("aborted")):(h.complete=!0,h.socket=null,h.connection=null)}),e?(h.upgrade=!0,this.emit("connect",h,o,Buffer.alloc(0))?this.emit("close"):o.destroy()):(o.on("data",E=>{!h._dumped&&!h.push(E)&&o.pause()}),o.once("end",()=>{h.push(null)}),this.emit("response",h)||h._dump())})),o.once("headers",a(u=>this.emit("information",{statusCode:u[nae]}))),o.once("trailers",a((u,A,p)=>{let{res:h}=this;h.trailers=u,h.rawTrailers=p}));let{socket:n}=o.session;this.socket=n,this.connection=n;for(let u of this[h1])u();this.emit("socket",this.socket)};if(this[e4])try{r(this[e4].request(this[Qo]))}catch(o){this.emit("error",o)}else{this.reusedSocket=!0;try{r(await this.agent.request(this[$M],this[oae],this[Qo]))}catch(o){this.emit("error",o)}}}getHeader(e){if(typeof e!="string")throw new ZM("name","string",e);return this[Qo][e.toLowerCase()]}get headersSent(){return this[rb]}removeHeader(e){if(typeof e!="string")throw new ZM("name","string",e);if(this.headersSent)throw new rae("remove");delete this[Qo][e.toLowerCase()]}setHeader(e,r){if(this.headersSent)throw new rae("set");if(typeof e!="string"||!hit.test(e)&&!lit(e))throw new uit("Header name",e);if(typeof r>"u")throw new Ait(r,e);if(git.test(r))throw new fit("header content",e);this[Qo][e.toLowerCase()]=r}setNoDelay(){}setSocketKeepAlive(){}setTimeout(e,r){let o=()=>this._request.setTimeout(e,r);return this._request?o():this[h1].push(o),this}get maxHeadersCount(){if(!this.destroyed&&this._request)return this._request.session.localSettings.maxHeaderListSize}set maxHeadersCount(e){}};aae.exports=t4});var cae=_((_Lt,lae)=>{"use strict";var dit=ve("tls");lae.exports=(t={})=>new Promise((e,r)=>{let o=dit.connect(t,()=>{t.resolveSocket?(o.off("error",r),e({alpnProtocol:o.alpnProtocol,socket:o})):(o.destroy(),e({alpnProtocol:o.alpnProtocol}))});o.on("error",r)})});var Aae=_((HLt,uae)=>{"use strict";var mit=ve("net");uae.exports=t=>{let e=t.host,r=t.headers&&t.headers.host;return r&&(r.startsWith("[")?r.indexOf("]")===-1?e=r:e=r.slice(1,-1):e=r.split(":",1)[0]),mit.isIP(e)?"":e}});var hae=_((qLt,i4)=>{"use strict";var fae=ve("http"),n4=ve("https"),yit=cae(),Eit=WM(),Cit=r4(),wit=Aae(),Iit=XM(),nb=new Eit({maxSize:100}),g1=new Map,pae=(t,e,r)=>{e._httpMessage={shouldKeepAlive:!0};let o=()=>{t.emit("free",e,r)};e.on("free",o);let a=()=>{t.removeSocket(e,r)};e.on("close",a);let n=()=>{t.removeSocket(e,r),e.off("close",a),e.off("free",o),e.off("agentRemove",n)};e.on("agentRemove",n),t.emit("free",e,r)},Bit=async t=>{let e=`${t.host}:${t.port}:${t.ALPNProtocols.sort()}`;if(!nb.has(e)){if(g1.has(e))return(await g1.get(e)).alpnProtocol;let{path:r,agent:o}=t;t.path=t.socketPath;let a=yit(t);g1.set(e,a);try{let{socket:n,alpnProtocol:u}=await a;if(nb.set(e,u),t.path=r,u==="h2")n.destroy();else{let{globalAgent:A}=n4,p=n4.Agent.prototype.createConnection;o?o.createConnection===p?pae(o,n,t):n.destroy():A.createConnection===p?pae(A,n,t):n.destroy()}return g1.delete(e),u}catch(n){throw g1.delete(e),n}}return nb.get(e)};i4.exports=async(t,e,r)=>{if((typeof t=="string"||t instanceof URL)&&(t=Iit(new URL(t))),typeof e=="function"&&(r=e,e=void 0),e={ALPNProtocols:["h2","http/1.1"],...t,...e,resolveSocket:!0},!Array.isArray(e.ALPNProtocols)||e.ALPNProtocols.length===0)throw new Error("The `ALPNProtocols` option must be an Array with at least one entry");e.protocol=e.protocol||"https:";let o=e.protocol==="https:";e.host=e.hostname||e.host||"localhost",e.session=e.tlsSession,e.servername=e.servername||wit(e),e.port=e.port||(o?443:80),e._defaultAgent=o?n4.globalAgent:fae.globalAgent;let a=e.agent;if(a){if(a.addRequest)throw new Error("The `options.agent` object can contain only `http`, `https` or `http2` properties");e.agent=a[o?"https":"http"]}return o&&await Bit(e)==="h2"?(a&&(e.agent=a.http2),new Cit(e,r)):fae.request(e,r)};i4.exports.protocolCache=nb});var dae=_((jLt,gae)=>{"use strict";var vit=ve("http2"),Dit=VM(),s4=r4(),Sit=zM(),Pit=hae(),bit=(t,e,r)=>new s4(t,e,r),xit=(t,e,r)=>{let o=new s4(t,e,r);return o.end(),o};gae.exports={...vit,ClientRequest:s4,IncomingMessage:Sit,...Dit,request:bit,get:xit,auto:Pit}});var a4=_(o4=>{"use strict";Object.defineProperty(o4,"__esModule",{value:!0});var mae=Tf();o4.default=t=>mae.default.nodeStream(t)&&mae.default.function_(t.getBoundary)});var wae=_(l4=>{"use strict";Object.defineProperty(l4,"__esModule",{value:!0});var Eae=ve("fs"),Cae=ve("util"),yae=Tf(),kit=a4(),Qit=Cae.promisify(Eae.stat);l4.default=async(t,e)=>{if(e&&"content-length"in e)return Number(e["content-length"]);if(!t)return 0;if(yae.default.string(t))return Buffer.byteLength(t);if(yae.default.buffer(t))return t.length;if(kit.default(t))return Cae.promisify(t.getLength.bind(t))();if(t instanceof Eae.ReadStream){let{size:r}=await Qit(t.path);return r===0?void 0:r}}});var u4=_(c4=>{"use strict";Object.defineProperty(c4,"__esModule",{value:!0});function Fit(t,e,r){let o={};for(let a of r)o[a]=(...n)=>{e.emit(a,...n)},t.on(a,o[a]);return()=>{for(let a of r)t.off(a,o[a])}}c4.default=Fit});var Iae=_(A4=>{"use strict";Object.defineProperty(A4,"__esModule",{value:!0});A4.default=()=>{let t=[];return{once(e,r,o){e.once(r,o),t.push({origin:e,event:r,fn:o})},unhandleAll(){for(let e of t){let{origin:r,event:o,fn:a}=e;r.removeListener(o,a)}t.length=0}}}});var vae=_(d1=>{"use strict";Object.defineProperty(d1,"__esModule",{value:!0});d1.TimeoutError=void 0;var Rit=ve("net"),Tit=Iae(),Bae=Symbol("reentry"),Nit=()=>{},ib=class extends Error{constructor(e,r){super(`Timeout awaiting '${r}' for ${e}ms`),this.event=r,this.name="TimeoutError",this.code="ETIMEDOUT"}};d1.TimeoutError=ib;d1.default=(t,e,r)=>{if(Bae in t)return Nit;t[Bae]=!0;let o=[],{once:a,unhandleAll:n}=Tit.default(),u=(I,v,x)=>{var C;let R=setTimeout(v,I,I,x);(C=R.unref)===null||C===void 0||C.call(R);let L=()=>{clearTimeout(R)};return o.push(L),L},{host:A,hostname:p}=r,h=(I,v)=>{t.destroy(new ib(I,v))},E=()=>{for(let I of o)I();n()};if(t.once("error",I=>{if(E(),t.listenerCount("error")===0)throw I}),t.once("close",E),a(t,"response",I=>{a(I,"end",E)}),typeof e.request<"u"&&u(e.request,h,"request"),typeof e.socket<"u"){let I=()=>{h(e.socket,"socket")};t.setTimeout(e.socket,I),o.push(()=>{t.removeListener("timeout",I)})}return a(t,"socket",I=>{var v;let{socketPath:x}=t;if(I.connecting){let C=Boolean(x??Rit.isIP((v=p??A)!==null&&v!==void 0?v:"")!==0);if(typeof e.lookup<"u"&&!C&&typeof I.address().address>"u"){let R=u(e.lookup,h,"lookup");a(I,"lookup",R)}if(typeof e.connect<"u"){let R=()=>u(e.connect,h,"connect");C?a(I,"connect",R()):a(I,"lookup",L=>{L===null&&a(I,"connect",R())})}typeof e.secureConnect<"u"&&r.protocol==="https:"&&a(I,"connect",()=>{let R=u(e.secureConnect,h,"secureConnect");a(I,"secureConnect",R)})}if(typeof e.send<"u"){let C=()=>u(e.send,h,"send");I.connecting?a(I,"connect",()=>{a(t,"upload-complete",C())}):a(t,"upload-complete",C())}}),typeof e.response<"u"&&a(t,"upload-complete",()=>{let I=u(e.response,h,"response");a(t,"response",I)}),E}});var Sae=_(f4=>{"use strict";Object.defineProperty(f4,"__esModule",{value:!0});var Dae=Tf();f4.default=t=>{t=t;let e={protocol:t.protocol,hostname:Dae.default.string(t.hostname)&&t.hostname.startsWith("[")?t.hostname.slice(1,-1):t.hostname,host:t.host,hash:t.hash,search:t.search,pathname:t.pathname,href:t.href,path:`${t.pathname||""}${t.search||""}`};return Dae.default.string(t.port)&&t.port.length>0&&(e.port=Number(t.port)),(t.username||t.password)&&(e.auth=`${t.username||""}:${t.password||""}`),e}});var Pae=_(p4=>{"use strict";Object.defineProperty(p4,"__esModule",{value:!0});var Lit=ve("url"),Oit=["protocol","host","hostname","port","pathname","search"];p4.default=(t,e)=>{var r,o;if(e.path){if(e.pathname)throw new TypeError("Parameters `path` and `pathname` are mutually exclusive.");if(e.search)throw new TypeError("Parameters `path` and `search` are mutually exclusive.");if(e.searchParams)throw new TypeError("Parameters `path` and `searchParams` are mutually exclusive.")}if(e.search&&e.searchParams)throw new TypeError("Parameters `search` and `searchParams` are mutually exclusive.");if(!t){if(!e.protocol)throw new TypeError("No URL protocol specified");t=`${e.protocol}//${(o=(r=e.hostname)!==null&&r!==void 0?r:e.host)!==null&&o!==void 0?o:""}`}let a=new Lit.URL(t);if(e.path){let n=e.path.indexOf("?");n===-1?e.pathname=e.path:(e.pathname=e.path.slice(0,n),e.search=e.path.slice(n+1)),delete e.path}for(let n of Oit)e[n]&&(a[n]=e[n].toString());return a}});var bae=_(g4=>{"use strict";Object.defineProperty(g4,"__esModule",{value:!0});var h4=class{constructor(){this.weakMap=new WeakMap,this.map=new Map}set(e,r){typeof e=="object"?this.weakMap.set(e,r):this.map.set(e,r)}get(e){return typeof e=="object"?this.weakMap.get(e):this.map.get(e)}has(e){return typeof e=="object"?this.weakMap.has(e):this.map.has(e)}};g4.default=h4});var m4=_(d4=>{"use strict";Object.defineProperty(d4,"__esModule",{value:!0});var Mit=async t=>{let e=[],r=0;for await(let o of t)e.push(o),r+=Buffer.byteLength(o);return Buffer.isBuffer(e[0])?Buffer.concat(e,r):Buffer.from(e.join(""))};d4.default=Mit});var kae=_(Pd=>{"use strict";Object.defineProperty(Pd,"__esModule",{value:!0});Pd.dnsLookupIpVersionToFamily=Pd.isDnsLookupIpVersion=void 0;var xae={auto:0,ipv4:4,ipv6:6};Pd.isDnsLookupIpVersion=t=>t in xae;Pd.dnsLookupIpVersionToFamily=t=>{if(Pd.isDnsLookupIpVersion(t))return xae[t];throw new Error("Invalid DNS lookup IP version")}});var y4=_(sb=>{"use strict";Object.defineProperty(sb,"__esModule",{value:!0});sb.isResponseOk=void 0;sb.isResponseOk=t=>{let{statusCode:e}=t,r=t.request.options.followRedirect?299:399;return e>=200&&e<=r||e===304}});var Fae=_(E4=>{"use strict";Object.defineProperty(E4,"__esModule",{value:!0});var Qae=new Set;E4.default=t=>{Qae.has(t)||(Qae.add(t),process.emitWarning(`Got: ${t}`,{type:"DeprecationWarning"}))}});var Rae=_(C4=>{"use strict";Object.defineProperty(C4,"__esModule",{value:!0});var Ai=Tf(),Uit=(t,e)=>{if(Ai.default.null_(t.encoding))throw new TypeError("To get a Buffer, set `options.responseType` to `buffer` instead");Ai.assert.any([Ai.default.string,Ai.default.undefined],t.encoding),Ai.assert.any([Ai.default.boolean,Ai.default.undefined],t.resolveBodyOnly),Ai.assert.any([Ai.default.boolean,Ai.default.undefined],t.methodRewriting),Ai.assert.any([Ai.default.boolean,Ai.default.undefined],t.isStream),Ai.assert.any([Ai.default.string,Ai.default.undefined],t.responseType),t.responseType===void 0&&(t.responseType="text");let{retry:r}=t;if(e?t.retry={...e.retry}:t.retry={calculateDelay:o=>o.computedValue,limit:0,methods:[],statusCodes:[],errorCodes:[],maxRetryAfter:void 0},Ai.default.object(r)?(t.retry={...t.retry,...r},t.retry.methods=[...new Set(t.retry.methods.map(o=>o.toUpperCase()))],t.retry.statusCodes=[...new Set(t.retry.statusCodes)],t.retry.errorCodes=[...new Set(t.retry.errorCodes)]):Ai.default.number(r)&&(t.retry.limit=r),Ai.default.undefined(t.retry.maxRetryAfter)&&(t.retry.maxRetryAfter=Math.min(...[t.timeout.request,t.timeout.connect].filter(Ai.default.number))),Ai.default.object(t.pagination)){e&&(t.pagination={...e.pagination,...t.pagination});let{pagination:o}=t;if(!Ai.default.function_(o.transform))throw new Error("`options.pagination.transform` must be implemented");if(!Ai.default.function_(o.shouldContinue))throw new Error("`options.pagination.shouldContinue` must be implemented");if(!Ai.default.function_(o.filter))throw new TypeError("`options.pagination.filter` must be implemented");if(!Ai.default.function_(o.paginate))throw new Error("`options.pagination.paginate` must be implemented")}return t.responseType==="json"&&t.headers.accept===void 0&&(t.headers.accept="application/json"),t};C4.default=Uit});var Tae=_(m1=>{"use strict";Object.defineProperty(m1,"__esModule",{value:!0});m1.retryAfterStatusCodes=void 0;m1.retryAfterStatusCodes=new Set([413,429,503]);var _it=({attemptCount:t,retryOptions:e,error:r,retryAfter:o})=>{if(t>e.limit)return 0;let a=e.methods.includes(r.options.method),n=e.errorCodes.includes(r.code),u=r.response&&e.statusCodes.includes(r.response.statusCode);if(!a||!n&&!u)return 0;if(r.response){if(o)return e.maxRetryAfter===void 0||o>e.maxRetryAfter?0:o;if(r.response.statusCode===413)return 0}let A=Math.random()*100;return 2**(t-1)*1e3+A};m1.default=_it});var C1=_(Bn=>{"use strict";Object.defineProperty(Bn,"__esModule",{value:!0});Bn.UnsupportedProtocolError=Bn.ReadError=Bn.TimeoutError=Bn.UploadError=Bn.CacheError=Bn.HTTPError=Bn.MaxRedirectsError=Bn.RequestError=Bn.setNonEnumerableProperties=Bn.knownHookEvents=Bn.withoutBody=Bn.kIsNormalizedAlready=void 0;var Nae=ve("util"),Lae=ve("stream"),Hit=ve("fs"),ah=ve("url"),Oae=ve("http"),w4=ve("http"),qit=ve("https"),jit=Zse(),Git=soe(),Mae=Ooe(),Yit=Hoe(),Wit=dae(),Kit=eb(),st=Tf(),Vit=wae(),Uae=a4(),Jit=u4(),_ae=vae(),zit=Sae(),Hae=Pae(),Xit=bae(),Zit=m4(),qae=kae(),$it=y4(),lh=Fae(),est=Rae(),tst=Tae(),I4,Zs=Symbol("request"),lb=Symbol("response"),PE=Symbol("responseSize"),bE=Symbol("downloadedSize"),xE=Symbol("bodySize"),kE=Symbol("uploadedSize"),ob=Symbol("serverResponsesPiped"),jae=Symbol("unproxyEvents"),Gae=Symbol("isFromCache"),B4=Symbol("cancelTimeouts"),Yae=Symbol("startedReading"),QE=Symbol("stopReading"),ab=Symbol("triggerRead"),ch=Symbol("body"),y1=Symbol("jobs"),Wae=Symbol("originalResponse"),Kae=Symbol("retryTimeout");Bn.kIsNormalizedAlready=Symbol("isNormalizedAlready");var rst=st.default.string(process.versions.brotli);Bn.withoutBody=new Set(["GET","HEAD"]);Bn.knownHookEvents=["init","beforeRequest","beforeRedirect","beforeError","beforeRetry","afterResponse"];function nst(t){for(let e in t){let r=t[e];if(!st.default.string(r)&&!st.default.number(r)&&!st.default.boolean(r)&&!st.default.null_(r)&&!st.default.undefined(r))throw new TypeError(`The \`searchParams\` value '${String(r)}' must be a string, number, boolean or null`)}}function ist(t){return st.default.object(t)&&!("statusCode"in t)}var v4=new Xit.default,sst=async t=>new Promise((e,r)=>{let o=a=>{r(a)};t.pending||e(),t.once("error",o),t.once("ready",()=>{t.off("error",o),e()})}),ost=new Set([300,301,302,303,304,307,308]),ast=["context","body","json","form"];Bn.setNonEnumerableProperties=(t,e)=>{let r={};for(let o of t)if(!!o)for(let a of ast)a in o&&(r[a]={writable:!0,configurable:!0,enumerable:!1,value:o[a]});Object.defineProperties(e,r)};var Vi=class extends Error{constructor(e,r,o){var a;if(super(e),Error.captureStackTrace(this,this.constructor),this.name="RequestError",this.code=r.code,o instanceof db?(Object.defineProperty(this,"request",{enumerable:!1,value:o}),Object.defineProperty(this,"response",{enumerable:!1,value:o[lb]}),Object.defineProperty(this,"options",{enumerable:!1,value:o.options})):Object.defineProperty(this,"options",{enumerable:!1,value:o}),this.timings=(a=this.request)===null||a===void 0?void 0:a.timings,st.default.string(r.stack)&&st.default.string(this.stack)){let n=this.stack.indexOf(this.message)+this.message.length,u=this.stack.slice(n).split(` +`).reverse(),A=r.stack.slice(r.stack.indexOf(r.message)+r.message.length).split(` +`).reverse();for(;A.length!==0&&A[0]===u[0];)u.shift();this.stack=`${this.stack.slice(0,n)}${u.reverse().join(` +`)}${A.reverse().join(` +`)}`}}};Bn.RequestError=Vi;var ub=class extends Vi{constructor(e){super(`Redirected ${e.options.maxRedirects} times. Aborting.`,{},e),this.name="MaxRedirectsError"}};Bn.MaxRedirectsError=ub;var Ab=class extends Vi{constructor(e){super(`Response code ${e.statusCode} (${e.statusMessage})`,{},e.request),this.name="HTTPError"}};Bn.HTTPError=Ab;var fb=class extends Vi{constructor(e,r){super(e.message,e,r),this.name="CacheError"}};Bn.CacheError=fb;var pb=class extends Vi{constructor(e,r){super(e.message,e,r),this.name="UploadError"}};Bn.UploadError=pb;var hb=class extends Vi{constructor(e,r,o){super(e.message,e,o),this.name="TimeoutError",this.event=e.event,this.timings=r}};Bn.TimeoutError=hb;var E1=class extends Vi{constructor(e,r){super(e.message,e,r),this.name="ReadError"}};Bn.ReadError=E1;var gb=class extends Vi{constructor(e){super(`Unsupported protocol "${e.url.protocol}"`,{},e),this.name="UnsupportedProtocolError"}};Bn.UnsupportedProtocolError=gb;var lst=["socket","connect","continue","information","upgrade","timeout"],db=class extends Lae.Duplex{constructor(e,r={},o){super({autoDestroy:!1,highWaterMark:0}),this[bE]=0,this[kE]=0,this.requestInitialized=!1,this[ob]=new Set,this.redirects=[],this[QE]=!1,this[ab]=!1,this[y1]=[],this.retryCount=0,this._progressCallbacks=[];let a=()=>this._unlockWrite(),n=()=>this._lockWrite();this.on("pipe",h=>{h.prependListener("data",a),h.on("data",n),h.prependListener("end",a),h.on("end",n)}),this.on("unpipe",h=>{h.off("data",a),h.off("data",n),h.off("end",a),h.off("end",n)}),this.on("pipe",h=>{h instanceof w4.IncomingMessage&&(this.options.headers={...h.headers,...this.options.headers})});let{json:u,body:A,form:p}=r;if((u||A||p)&&this._lockWrite(),Bn.kIsNormalizedAlready in r)this.options=r;else try{this.options=this.constructor.normalizeArguments(e,r,o)}catch(h){st.default.nodeStream(r.body)&&r.body.destroy(),this.destroy(h);return}(async()=>{var h;try{this.options.body instanceof Hit.ReadStream&&await sst(this.options.body);let{url:E}=this.options;if(!E)throw new TypeError("Missing `url` property");if(this.requestUrl=E.toString(),decodeURI(this.requestUrl),await this._finalizeBody(),await this._makeRequest(),this.destroyed){(h=this[Zs])===null||h===void 0||h.destroy();return}for(let I of this[y1])I();this[y1].length=0,this.requestInitialized=!0}catch(E){if(E instanceof Vi){this._beforeError(E);return}this.destroyed||this.destroy(E)}})()}static normalizeArguments(e,r,o){var a,n,u,A,p;let h=r;if(st.default.object(e)&&!st.default.urlInstance(e))r={...o,...e,...r};else{if(e&&r&&r.url!==void 0)throw new TypeError("The `url` option is mutually exclusive with the `input` argument");r={...o,...r},e!==void 0&&(r.url=e),st.default.urlInstance(r.url)&&(r.url=new ah.URL(r.url.toString()))}if(r.cache===!1&&(r.cache=void 0),r.dnsCache===!1&&(r.dnsCache=void 0),st.assert.any([st.default.string,st.default.undefined],r.method),st.assert.any([st.default.object,st.default.undefined],r.headers),st.assert.any([st.default.string,st.default.urlInstance,st.default.undefined],r.prefixUrl),st.assert.any([st.default.object,st.default.undefined],r.cookieJar),st.assert.any([st.default.object,st.default.string,st.default.undefined],r.searchParams),st.assert.any([st.default.object,st.default.string,st.default.undefined],r.cache),st.assert.any([st.default.object,st.default.number,st.default.undefined],r.timeout),st.assert.any([st.default.object,st.default.undefined],r.context),st.assert.any([st.default.object,st.default.undefined],r.hooks),st.assert.any([st.default.boolean,st.default.undefined],r.decompress),st.assert.any([st.default.boolean,st.default.undefined],r.ignoreInvalidCookies),st.assert.any([st.default.boolean,st.default.undefined],r.followRedirect),st.assert.any([st.default.number,st.default.undefined],r.maxRedirects),st.assert.any([st.default.boolean,st.default.undefined],r.throwHttpErrors),st.assert.any([st.default.boolean,st.default.undefined],r.http2),st.assert.any([st.default.boolean,st.default.undefined],r.allowGetBody),st.assert.any([st.default.string,st.default.undefined],r.localAddress),st.assert.any([qae.isDnsLookupIpVersion,st.default.undefined],r.dnsLookupIpVersion),st.assert.any([st.default.object,st.default.undefined],r.https),st.assert.any([st.default.boolean,st.default.undefined],r.rejectUnauthorized),r.https&&(st.assert.any([st.default.boolean,st.default.undefined],r.https.rejectUnauthorized),st.assert.any([st.default.function_,st.default.undefined],r.https.checkServerIdentity),st.assert.any([st.default.string,st.default.object,st.default.array,st.default.undefined],r.https.certificateAuthority),st.assert.any([st.default.string,st.default.object,st.default.array,st.default.undefined],r.https.key),st.assert.any([st.default.string,st.default.object,st.default.array,st.default.undefined],r.https.certificate),st.assert.any([st.default.string,st.default.undefined],r.https.passphrase),st.assert.any([st.default.string,st.default.buffer,st.default.array,st.default.undefined],r.https.pfx)),st.assert.any([st.default.object,st.default.undefined],r.cacheOptions),st.default.string(r.method)?r.method=r.method.toUpperCase():r.method="GET",r.headers===o?.headers?r.headers={...r.headers}:r.headers=Kit({...o?.headers,...r.headers}),"slashes"in r)throw new TypeError("The legacy `url.Url` has been deprecated. Use `URL` instead.");if("auth"in r)throw new TypeError("Parameter `auth` is deprecated. Use `username` / `password` instead.");if("searchParams"in r&&r.searchParams&&r.searchParams!==o?.searchParams){let x;if(st.default.string(r.searchParams)||r.searchParams instanceof ah.URLSearchParams)x=new ah.URLSearchParams(r.searchParams);else{nst(r.searchParams),x=new ah.URLSearchParams;for(let C in r.searchParams){let R=r.searchParams[C];R===null?x.append(C,""):R!==void 0&&x.append(C,R)}}(a=o?.searchParams)===null||a===void 0||a.forEach((C,R)=>{x.has(R)||x.append(R,C)}),r.searchParams=x}if(r.username=(n=r.username)!==null&&n!==void 0?n:"",r.password=(u=r.password)!==null&&u!==void 0?u:"",st.default.undefined(r.prefixUrl)?r.prefixUrl=(A=o?.prefixUrl)!==null&&A!==void 0?A:"":(r.prefixUrl=r.prefixUrl.toString(),r.prefixUrl!==""&&!r.prefixUrl.endsWith("/")&&(r.prefixUrl+="/")),st.default.string(r.url)){if(r.url.startsWith("/"))throw new Error("`input` must not start with a slash when using `prefixUrl`");r.url=Hae.default(r.prefixUrl+r.url,r)}else(st.default.undefined(r.url)&&r.prefixUrl!==""||r.protocol)&&(r.url=Hae.default(r.prefixUrl,r));if(r.url){"port"in r&&delete r.port;let{prefixUrl:x}=r;Object.defineProperty(r,"prefixUrl",{set:R=>{let L=r.url;if(!L.href.startsWith(R))throw new Error(`Cannot change \`prefixUrl\` from ${x} to ${R}: ${L.href}`);r.url=new ah.URL(R+L.href.slice(x.length)),x=R},get:()=>x});let{protocol:C}=r.url;if(C==="unix:"&&(C="http:",r.url=new ah.URL(`http://unix${r.url.pathname}${r.url.search}`)),r.searchParams&&(r.url.search=r.searchParams.toString()),C!=="http:"&&C!=="https:")throw new gb(r);r.username===""?r.username=r.url.username:r.url.username=r.username,r.password===""?r.password=r.url.password:r.url.password=r.password}let{cookieJar:E}=r;if(E){let{setCookie:x,getCookieString:C}=E;st.assert.function_(x),st.assert.function_(C),x.length===4&&C.length===0&&(x=Nae.promisify(x.bind(r.cookieJar)),C=Nae.promisify(C.bind(r.cookieJar)),r.cookieJar={setCookie:x,getCookieString:C})}let{cache:I}=r;if(I&&(v4.has(I)||v4.set(I,new Mae((x,C)=>{let R=x[Zs](x,C);return st.default.promise(R)&&(R.once=(L,U)=>{if(L==="error")R.catch(U);else if(L==="abort")(async()=>{try{(await R).once("abort",U)}catch{}})();else throw new Error(`Unknown HTTP2 promise event: ${L}`);return R}),R},I))),r.cacheOptions={...r.cacheOptions},r.dnsCache===!0)I4||(I4=new Git.default),r.dnsCache=I4;else if(!st.default.undefined(r.dnsCache)&&!r.dnsCache.lookup)throw new TypeError(`Parameter \`dnsCache\` must be a CacheableLookup instance or a boolean, got ${st.default(r.dnsCache)}`);st.default.number(r.timeout)?r.timeout={request:r.timeout}:o&&r.timeout!==o.timeout?r.timeout={...o.timeout,...r.timeout}:r.timeout={...r.timeout},r.context||(r.context={});let v=r.hooks===o?.hooks;r.hooks={...r.hooks};for(let x of Bn.knownHookEvents)if(x in r.hooks)if(st.default.array(r.hooks[x]))r.hooks[x]=[...r.hooks[x]];else throw new TypeError(`Parameter \`${x}\` must be an Array, got ${st.default(r.hooks[x])}`);else r.hooks[x]=[];if(o&&!v)for(let x of Bn.knownHookEvents)o.hooks[x].length>0&&(r.hooks[x]=[...o.hooks[x],...r.hooks[x]]);if("family"in r&&lh.default('"options.family" was never documented, please use "options.dnsLookupIpVersion"'),o?.https&&(r.https={...o.https,...r.https}),"rejectUnauthorized"in r&&lh.default('"options.rejectUnauthorized" is now deprecated, please use "options.https.rejectUnauthorized"'),"checkServerIdentity"in r&&lh.default('"options.checkServerIdentity" was never documented, please use "options.https.checkServerIdentity"'),"ca"in r&&lh.default('"options.ca" was never documented, please use "options.https.certificateAuthority"'),"key"in r&&lh.default('"options.key" was never documented, please use "options.https.key"'),"cert"in r&&lh.default('"options.cert" was never documented, please use "options.https.certificate"'),"passphrase"in r&&lh.default('"options.passphrase" was never documented, please use "options.https.passphrase"'),"pfx"in r&&lh.default('"options.pfx" was never documented, please use "options.https.pfx"'),"followRedirects"in r)throw new TypeError("The `followRedirects` option does not exist. Use `followRedirect` instead.");if(r.agent){for(let x in r.agent)if(x!=="http"&&x!=="https"&&x!=="http2")throw new TypeError(`Expected the \`options.agent\` properties to be \`http\`, \`https\` or \`http2\`, got \`${x}\``)}return r.maxRedirects=(p=r.maxRedirects)!==null&&p!==void 0?p:0,Bn.setNonEnumerableProperties([o,h],r),est.default(r,o)}_lockWrite(){let e=()=>{throw new TypeError("The payload has been already provided")};this.write=e,this.end=e}_unlockWrite(){this.write=super.write,this.end=super.end}async _finalizeBody(){let{options:e}=this,{headers:r}=e,o=!st.default.undefined(e.form),a=!st.default.undefined(e.json),n=!st.default.undefined(e.body),u=o||a||n,A=Bn.withoutBody.has(e.method)&&!(e.method==="GET"&&e.allowGetBody);if(this._cannotHaveBody=A,u){if(A)throw new TypeError(`The \`${e.method}\` method cannot be used with a body`);if([n,o,a].filter(p=>p).length>1)throw new TypeError("The `body`, `json` and `form` options are mutually exclusive");if(n&&!(e.body instanceof Lae.Readable)&&!st.default.string(e.body)&&!st.default.buffer(e.body)&&!Uae.default(e.body))throw new TypeError("The `body` option must be a stream.Readable, string or Buffer");if(o&&!st.default.object(e.form))throw new TypeError("The `form` option must be an Object");{let p=!st.default.string(r["content-type"]);n?(Uae.default(e.body)&&p&&(r["content-type"]=`multipart/form-data; boundary=${e.body.getBoundary()}`),this[ch]=e.body):o?(p&&(r["content-type"]="application/x-www-form-urlencoded"),this[ch]=new ah.URLSearchParams(e.form).toString()):(p&&(r["content-type"]="application/json"),this[ch]=e.stringifyJson(e.json));let h=await Vit.default(this[ch],e.headers);st.default.undefined(r["content-length"])&&st.default.undefined(r["transfer-encoding"])&&!A&&!st.default.undefined(h)&&(r["content-length"]=String(h))}}else A?this._lockWrite():this._unlockWrite();this[xE]=Number(r["content-length"])||void 0}async _onResponseBase(e){let{options:r}=this,{url:o}=r;this[Wae]=e,r.decompress&&(e=Yit(e));let a=e.statusCode,n=e;n.statusMessage=n.statusMessage?n.statusMessage:Oae.STATUS_CODES[a],n.url=r.url.toString(),n.requestUrl=this.requestUrl,n.redirectUrls=this.redirects,n.request=this,n.isFromCache=e.fromCache||!1,n.ip=this.ip,n.retryCount=this.retryCount,this[Gae]=n.isFromCache,this[PE]=Number(e.headers["content-length"])||void 0,this[lb]=e,e.once("end",()=>{this[PE]=this[bE],this.emit("downloadProgress",this.downloadProgress)}),e.once("error",A=>{e.destroy(),this._beforeError(new E1(A,this))}),e.once("aborted",()=>{this._beforeError(new E1({name:"Error",message:"The server aborted pending request",code:"ECONNRESET"},this))}),this.emit("downloadProgress",this.downloadProgress);let u=e.headers["set-cookie"];if(st.default.object(r.cookieJar)&&u){let A=u.map(async p=>r.cookieJar.setCookie(p,o.toString()));r.ignoreInvalidCookies&&(A=A.map(async p=>p.catch(()=>{})));try{await Promise.all(A)}catch(p){this._beforeError(p);return}}if(r.followRedirect&&e.headers.location&&ost.has(a)){if(e.resume(),this[Zs]&&(this[B4](),delete this[Zs],this[jae]()),(a===303&&r.method!=="GET"&&r.method!=="HEAD"||!r.methodRewriting)&&(r.method="GET","body"in r&&delete r.body,"json"in r&&delete r.json,"form"in r&&delete r.form,this[ch]=void 0,delete r.headers["content-length"]),this.redirects.length>=r.maxRedirects){this._beforeError(new ub(this));return}try{let p=Buffer.from(e.headers.location,"binary").toString(),h=new ah.URL(p,o),E=h.toString();decodeURI(E),h.hostname!==o.hostname||h.port!==o.port?("host"in r.headers&&delete r.headers.host,"cookie"in r.headers&&delete r.headers.cookie,"authorization"in r.headers&&delete r.headers.authorization,(r.username||r.password)&&(r.username="",r.password="")):(h.username=r.username,h.password=r.password),this.redirects.push(E),r.url=h;for(let I of r.hooks.beforeRedirect)await I(r,n);this.emit("redirect",n,r),await this._makeRequest()}catch(p){this._beforeError(p);return}return}if(r.isStream&&r.throwHttpErrors&&!$it.isResponseOk(n)){this._beforeError(new Ab(n));return}e.on("readable",()=>{this[ab]&&this._read()}),this.on("resume",()=>{e.resume()}),this.on("pause",()=>{e.pause()}),e.once("end",()=>{this.push(null)}),this.emit("response",e);for(let A of this[ob])if(!A.headersSent){for(let p in e.headers){let h=r.decompress?p!=="content-encoding":!0,E=e.headers[p];h&&A.setHeader(p,E)}A.statusCode=a}}async _onResponse(e){try{await this._onResponseBase(e)}catch(r){this._beforeError(r)}}_onRequest(e){let{options:r}=this,{timeout:o,url:a}=r;jit.default(e),this[B4]=_ae.default(e,o,a);let n=r.cache?"cacheableResponse":"response";e.once(n,p=>{this._onResponse(p)}),e.once("error",p=>{var h;e.destroy(),(h=e.res)===null||h===void 0||h.removeAllListeners("end"),p=p instanceof _ae.TimeoutError?new hb(p,this.timings,this):new Vi(p.message,p,this),this._beforeError(p)}),this[jae]=Jit.default(e,this,lst),this[Zs]=e,this.emit("uploadProgress",this.uploadProgress);let u=this[ch],A=this.redirects.length===0?this:e;st.default.nodeStream(u)?(u.pipe(A),u.once("error",p=>{this._beforeError(new pb(p,this))})):(this._unlockWrite(),st.default.undefined(u)?(this._cannotHaveBody||this._noPipe)&&(A.end(),this._lockWrite()):(this._writeRequest(u,void 0,()=>{}),A.end(),this._lockWrite())),this.emit("request",e)}async _createCacheableRequest(e,r){return new Promise((o,a)=>{Object.assign(r,zit.default(e)),delete r.url;let n,u=v4.get(r.cache)(r,async A=>{A._readableState.autoDestroy=!1,n&&(await n).emit("cacheableResponse",A),o(A)});r.url=e,u.once("error",a),u.once("request",async A=>{n=A,o(n)})})}async _makeRequest(){var e,r,o,a,n;let{options:u}=this,{headers:A}=u;for(let U in A)if(st.default.undefined(A[U]))delete A[U];else if(st.default.null_(A[U]))throw new TypeError(`Use \`undefined\` instead of \`null\` to delete the \`${U}\` header`);if(u.decompress&&st.default.undefined(A["accept-encoding"])&&(A["accept-encoding"]=rst?"gzip, deflate, br":"gzip, deflate"),u.cookieJar){let U=await u.cookieJar.getCookieString(u.url.toString());st.default.nonEmptyString(U)&&(u.headers.cookie=U)}for(let U of u.hooks.beforeRequest){let J=await U(u);if(!st.default.undefined(J)){u.request=()=>J;break}}u.body&&this[ch]!==u.body&&(this[ch]=u.body);let{agent:p,request:h,timeout:E,url:I}=u;if(u.dnsCache&&!("lookup"in u)&&(u.lookup=u.dnsCache.lookup),I.hostname==="unix"){let U=/(?.+?):(?.+)/.exec(`${I.pathname}${I.search}`);if(U?.groups){let{socketPath:J,path:te}=U.groups;Object.assign(u,{socketPath:J,path:te,host:""})}}let v=I.protocol==="https:",x;u.http2?x=Wit.auto:x=v?qit.request:Oae.request;let C=(e=u.request)!==null&&e!==void 0?e:x,R=u.cache?this._createCacheableRequest:C;p&&!u.http2&&(u.agent=p[v?"https":"http"]),u[Zs]=C,delete u.request,delete u.timeout;let L=u;if(L.shared=(r=u.cacheOptions)===null||r===void 0?void 0:r.shared,L.cacheHeuristic=(o=u.cacheOptions)===null||o===void 0?void 0:o.cacheHeuristic,L.immutableMinTimeToLive=(a=u.cacheOptions)===null||a===void 0?void 0:a.immutableMinTimeToLive,L.ignoreCargoCult=(n=u.cacheOptions)===null||n===void 0?void 0:n.ignoreCargoCult,u.dnsLookupIpVersion!==void 0)try{L.family=qae.dnsLookupIpVersionToFamily(u.dnsLookupIpVersion)}catch{throw new Error("Invalid `dnsLookupIpVersion` option value")}u.https&&("rejectUnauthorized"in u.https&&(L.rejectUnauthorized=u.https.rejectUnauthorized),u.https.checkServerIdentity&&(L.checkServerIdentity=u.https.checkServerIdentity),u.https.certificateAuthority&&(L.ca=u.https.certificateAuthority),u.https.certificate&&(L.cert=u.https.certificate),u.https.key&&(L.key=u.https.key),u.https.passphrase&&(L.passphrase=u.https.passphrase),u.https.pfx&&(L.pfx=u.https.pfx));try{let U=await R(I,L);st.default.undefined(U)&&(U=x(I,L)),u.request=h,u.timeout=E,u.agent=p,u.https&&("rejectUnauthorized"in u.https&&delete L.rejectUnauthorized,u.https.checkServerIdentity&&delete L.checkServerIdentity,u.https.certificateAuthority&&delete L.ca,u.https.certificate&&delete L.cert,u.https.key&&delete L.key,u.https.passphrase&&delete L.passphrase,u.https.pfx&&delete L.pfx),ist(U)?this._onRequest(U):this.writable?(this.once("finish",()=>{this._onResponse(U)}),this._unlockWrite(),this.end(),this._lockWrite()):this._onResponse(U)}catch(U){throw U instanceof Mae.CacheError?new fb(U,this):new Vi(U.message,U,this)}}async _error(e){try{for(let r of this.options.hooks.beforeError)e=await r(e)}catch(r){e=new Vi(r.message,r,this)}this.destroy(e)}_beforeError(e){if(this[QE])return;let{options:r}=this,o=this.retryCount+1;this[QE]=!0,e instanceof Vi||(e=new Vi(e.message,e,this));let a=e,{response:n}=a;(async()=>{if(n&&!n.body){n.setEncoding(this._readableState.encoding);try{n.rawBody=await Zit.default(n),n.body=n.rawBody.toString()}catch{}}if(this.listenerCount("retry")!==0){let u;try{let A;n&&"retry-after"in n.headers&&(A=Number(n.headers["retry-after"]),Number.isNaN(A)?(A=Date.parse(n.headers["retry-after"])-Date.now(),A<=0&&(A=1)):A*=1e3),u=await r.retry.calculateDelay({attemptCount:o,retryOptions:r.retry,error:a,retryAfter:A,computedValue:tst.default({attemptCount:o,retryOptions:r.retry,error:a,retryAfter:A,computedValue:0})})}catch(A){this._error(new Vi(A.message,A,this));return}if(u){let A=async()=>{try{for(let p of this.options.hooks.beforeRetry)await p(this.options,a,o)}catch(p){this._error(new Vi(p.message,e,this));return}this.destroyed||(this.destroy(),this.emit("retry",o,e))};this[Kae]=setTimeout(A,u);return}}this._error(a)})()}_read(){this[ab]=!0;let e=this[lb];if(e&&!this[QE]){e.readableLength&&(this[ab]=!1);let r;for(;(r=e.read())!==null;){this[bE]+=r.length,this[Yae]=!0;let o=this.downloadProgress;o.percent<1&&this.emit("downloadProgress",o),this.push(r)}}}_write(e,r,o){let a=()=>{this._writeRequest(e,r,o)};this.requestInitialized?a():this[y1].push(a)}_writeRequest(e,r,o){this[Zs].destroyed||(this._progressCallbacks.push(()=>{this[kE]+=Buffer.byteLength(e,r);let a=this.uploadProgress;a.percent<1&&this.emit("uploadProgress",a)}),this[Zs].write(e,r,a=>{!a&&this._progressCallbacks.length>0&&this._progressCallbacks.shift()(),o(a)}))}_final(e){let r=()=>{for(;this._progressCallbacks.length!==0;)this._progressCallbacks.shift()();if(!(Zs in this)){e();return}if(this[Zs].destroyed){e();return}this[Zs].end(o=>{o||(this[xE]=this[kE],this.emit("uploadProgress",this.uploadProgress),this[Zs].emit("upload-complete")),e(o)})};this.requestInitialized?r():this[y1].push(r)}_destroy(e,r){var o;this[QE]=!0,clearTimeout(this[Kae]),Zs in this&&(this[B4](),!((o=this[lb])===null||o===void 0)&&o.complete||this[Zs].destroy()),e!==null&&!st.default.undefined(e)&&!(e instanceof Vi)&&(e=new Vi(e.message,e,this)),r(e)}get _isAboutToError(){return this[QE]}get ip(){var e;return(e=this.socket)===null||e===void 0?void 0:e.remoteAddress}get aborted(){var e,r,o;return((r=(e=this[Zs])===null||e===void 0?void 0:e.destroyed)!==null&&r!==void 0?r:this.destroyed)&&!(!((o=this[Wae])===null||o===void 0)&&o.complete)}get socket(){var e,r;return(r=(e=this[Zs])===null||e===void 0?void 0:e.socket)!==null&&r!==void 0?r:void 0}get downloadProgress(){let e;return this[PE]?e=this[bE]/this[PE]:this[PE]===this[bE]?e=1:e=0,{percent:e,transferred:this[bE],total:this[PE]}}get uploadProgress(){let e;return this[xE]?e=this[kE]/this[xE]:this[xE]===this[kE]?e=1:e=0,{percent:e,transferred:this[kE],total:this[xE]}}get timings(){var e;return(e=this[Zs])===null||e===void 0?void 0:e.timings}get isFromCache(){return this[Gae]}pipe(e,r){if(this[Yae])throw new Error("Failed to pipe. The response has been emitted already.");return e instanceof w4.ServerResponse&&this[ob].add(e),super.pipe(e,r)}unpipe(e){return e instanceof w4.ServerResponse&&this[ob].delete(e),super.unpipe(e),this}};Bn.default=db});var w1=_(jc=>{"use strict";var cst=jc&&jc.__createBinding||(Object.create?function(t,e,r,o){o===void 0&&(o=r),Object.defineProperty(t,o,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,o){o===void 0&&(o=r),t[o]=e[r]}),ust=jc&&jc.__exportStar||function(t,e){for(var r in t)r!=="default"&&!Object.prototype.hasOwnProperty.call(e,r)&&cst(e,t,r)};Object.defineProperty(jc,"__esModule",{value:!0});jc.CancelError=jc.ParseError=void 0;var Vae=C1(),D4=class extends Vae.RequestError{constructor(e,r){let{options:o}=r.request;super(`${e.message} in "${o.url.toString()}"`,e,r.request),this.name="ParseError"}};jc.ParseError=D4;var S4=class extends Vae.RequestError{constructor(e){super("Promise was canceled",{},e),this.name="CancelError"}get isCanceled(){return!0}};jc.CancelError=S4;ust(C1(),jc)});var zae=_(P4=>{"use strict";Object.defineProperty(P4,"__esModule",{value:!0});var Jae=w1(),Ast=(t,e,r,o)=>{let{rawBody:a}=t;try{if(e==="text")return a.toString(o);if(e==="json")return a.length===0?"":r(a.toString());if(e==="buffer")return a;throw new Jae.ParseError({message:`Unknown body type '${e}'`,name:"Error"},t)}catch(n){throw new Jae.ParseError(n,t)}};P4.default=Ast});var b4=_(uh=>{"use strict";var fst=uh&&uh.__createBinding||(Object.create?function(t,e,r,o){o===void 0&&(o=r),Object.defineProperty(t,o,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,o){o===void 0&&(o=r),t[o]=e[r]}),pst=uh&&uh.__exportStar||function(t,e){for(var r in t)r!=="default"&&!Object.prototype.hasOwnProperty.call(e,r)&&fst(e,t,r)};Object.defineProperty(uh,"__esModule",{value:!0});var hst=ve("events"),gst=Tf(),dst=zse(),mb=w1(),Xae=zae(),Zae=C1(),mst=u4(),yst=m4(),$ae=y4(),Est=["request","response","redirect","uploadProgress","downloadProgress"];function ele(t){let e,r,o=new hst.EventEmitter,a=new dst((u,A,p)=>{let h=E=>{let I=new Zae.default(void 0,t);I.retryCount=E,I._noPipe=!0,p(()=>I.destroy()),p.shouldReject=!1,p(()=>A(new mb.CancelError(I))),e=I,I.once("response",async C=>{var R;if(C.retryCount=E,C.request.aborted)return;let L;try{L=await yst.default(I),C.rawBody=L}catch{return}if(I._isAboutToError)return;let U=((R=C.headers["content-encoding"])!==null&&R!==void 0?R:"").toLowerCase(),J=["gzip","deflate","br"].includes(U),{options:te}=I;if(J&&!te.decompress)C.body=L;else try{C.body=Xae.default(C,te.responseType,te.parseJson,te.encoding)}catch(ae){if(C.body=L.toString(),$ae.isResponseOk(C)){I._beforeError(ae);return}}try{for(let[ae,fe]of te.hooks.afterResponse.entries())C=await fe(C,async ce=>{let me=Zae.default.normalizeArguments(void 0,{...ce,retry:{calculateDelay:()=>0},throwHttpErrors:!1,resolveBodyOnly:!1},te);me.hooks.afterResponse=me.hooks.afterResponse.slice(0,ae);for(let Be of me.hooks.beforeRetry)await Be(me);let he=ele(me);return p(()=>{he.catch(()=>{}),he.cancel()}),he})}catch(ae){I._beforeError(new mb.RequestError(ae.message,ae,I));return}if(!$ae.isResponseOk(C)){I._beforeError(new mb.HTTPError(C));return}r=C,u(I.options.resolveBodyOnly?C.body:C)});let v=C=>{if(a.isCanceled)return;let{options:R}=I;if(C instanceof mb.HTTPError&&!R.throwHttpErrors){let{response:L}=C;u(I.options.resolveBodyOnly?L.body:L);return}A(C)};I.once("error",v);let x=I.options.body;I.once("retry",(C,R)=>{var L,U;if(x===((L=R.request)===null||L===void 0?void 0:L.options.body)&&gst.default.nodeStream((U=R.request)===null||U===void 0?void 0:U.options.body)){v(R);return}h(C)}),mst.default(I,o,Est)};h(0)});a.on=(u,A)=>(o.on(u,A),a);let n=u=>{let A=(async()=>{await a;let{options:p}=r.request;return Xae.default(r,u,p.parseJson,p.encoding)})();return Object.defineProperties(A,Object.getOwnPropertyDescriptors(a)),A};return a.json=()=>{let{headers:u}=e.options;return!e.writableFinished&&u.accept===void 0&&(u.accept="application/json"),n("json")},a.buffer=()=>n("buffer"),a.text=()=>n("text"),a}uh.default=ele;pst(w1(),uh)});var tle=_(x4=>{"use strict";Object.defineProperty(x4,"__esModule",{value:!0});var Cst=w1();function wst(t,...e){let r=(async()=>{if(t instanceof Cst.RequestError)try{for(let a of e)if(a)for(let n of a)t=await n(t)}catch(a){t=a}throw t})(),o=()=>r;return r.json=o,r.text=o,r.buffer=o,r.on=o,r}x4.default=wst});var ile=_(k4=>{"use strict";Object.defineProperty(k4,"__esModule",{value:!0});var rle=Tf();function nle(t){for(let e of Object.values(t))(rle.default.plainObject(e)||rle.default.array(e))&&nle(e);return Object.freeze(t)}k4.default=nle});var ole=_(sle=>{"use strict";Object.defineProperty(sle,"__esModule",{value:!0})});var Q4=_(Vl=>{"use strict";var Ist=Vl&&Vl.__createBinding||(Object.create?function(t,e,r,o){o===void 0&&(o=r),Object.defineProperty(t,o,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,o){o===void 0&&(o=r),t[o]=e[r]}),Bst=Vl&&Vl.__exportStar||function(t,e){for(var r in t)r!=="default"&&!Object.prototype.hasOwnProperty.call(e,r)&&Ist(e,t,r)};Object.defineProperty(Vl,"__esModule",{value:!0});Vl.defaultHandler=void 0;var ale=Tf(),Kl=b4(),vst=tle(),Eb=C1(),Dst=ile(),Sst={RequestError:Kl.RequestError,CacheError:Kl.CacheError,ReadError:Kl.ReadError,HTTPError:Kl.HTTPError,MaxRedirectsError:Kl.MaxRedirectsError,TimeoutError:Kl.TimeoutError,ParseError:Kl.ParseError,CancelError:Kl.CancelError,UnsupportedProtocolError:Kl.UnsupportedProtocolError,UploadError:Kl.UploadError},Pst=async t=>new Promise(e=>{setTimeout(e,t)}),{normalizeArguments:yb}=Eb.default,lle=(...t)=>{let e;for(let r of t)e=yb(void 0,r,e);return e},bst=t=>t.isStream?new Eb.default(void 0,t):Kl.default(t),xst=t=>"defaults"in t&&"options"in t.defaults,kst=["get","post","put","patch","head","delete"];Vl.defaultHandler=(t,e)=>e(t);var cle=(t,e)=>{if(t)for(let r of t)r(e)},ule=t=>{t._rawHandlers=t.handlers,t.handlers=t.handlers.map(o=>(a,n)=>{let u,A=o(a,p=>(u=n(p),u));if(A!==u&&!a.isStream&&u){let p=A,{then:h,catch:E,finally:I}=p;Object.setPrototypeOf(p,Object.getPrototypeOf(u)),Object.defineProperties(p,Object.getOwnPropertyDescriptors(u)),p.then=h,p.catch=E,p.finally=I}return A});let e=(o,a={},n)=>{var u,A;let p=0,h=E=>t.handlers[p++](E,p===t.handlers.length?bst:h);if(ale.default.plainObject(o)){let E={...o,...a};Eb.setNonEnumerableProperties([o,a],E),a=E,o=void 0}try{let E;try{cle(t.options.hooks.init,a),cle((u=a.hooks)===null||u===void 0?void 0:u.init,a)}catch(v){E=v}let I=yb(o,a,n??t.options);if(I[Eb.kIsNormalizedAlready]=!0,E)throw new Kl.RequestError(E.message,E,I);return h(I)}catch(E){if(a.isStream)throw E;return vst.default(E,t.options.hooks.beforeError,(A=a.hooks)===null||A===void 0?void 0:A.beforeError)}};e.extend=(...o)=>{let a=[t.options],n=[...t._rawHandlers],u;for(let A of o)xst(A)?(a.push(A.defaults.options),n.push(...A.defaults._rawHandlers),u=A.defaults.mutableDefaults):(a.push(A),"handlers"in A&&n.push(...A.handlers),u=A.mutableDefaults);return n=n.filter(A=>A!==Vl.defaultHandler),n.length===0&&n.push(Vl.defaultHandler),ule({options:lle(...a),handlers:n,mutableDefaults:Boolean(u)})};let r=async function*(o,a){let n=yb(o,a,t.options);n.resolveBodyOnly=!1;let u=n.pagination;if(!ale.default.object(u))throw new TypeError("`options.pagination` must be implemented");let A=[],{countLimit:p}=u,h=0;for(;h{let n=[];for await(let u of r(o,a))n.push(u);return n},e.paginate.each=r,e.stream=(o,a)=>e(o,{...a,isStream:!0});for(let o of kst)e[o]=(a,n)=>e(a,{...n,method:o}),e.stream[o]=(a,n)=>e(a,{...n,method:o,isStream:!0});return Object.assign(e,Sst),Object.defineProperty(e,"defaults",{value:t.mutableDefaults?t:Dst.default(t),writable:t.mutableDefaults,configurable:t.mutableDefaults,enumerable:!0}),e.mergeOptions=lle,e};Vl.default=ule;Bst(ole(),Vl)});var ple=_((Nf,Cb)=>{"use strict";var Qst=Nf&&Nf.__createBinding||(Object.create?function(t,e,r,o){o===void 0&&(o=r),Object.defineProperty(t,o,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,o){o===void 0&&(o=r),t[o]=e[r]}),Ale=Nf&&Nf.__exportStar||function(t,e){for(var r in t)r!=="default"&&!Object.prototype.hasOwnProperty.call(e,r)&&Qst(e,t,r)};Object.defineProperty(Nf,"__esModule",{value:!0});var Fst=ve("url"),fle=Q4(),Rst={options:{method:"GET",retry:{limit:2,methods:["GET","PUT","HEAD","DELETE","OPTIONS","TRACE"],statusCodes:[408,413,429,500,502,503,504,521,522,524],errorCodes:["ETIMEDOUT","ECONNRESET","EADDRINUSE","ECONNREFUSED","EPIPE","ENOTFOUND","ENETUNREACH","EAI_AGAIN"],maxRetryAfter:void 0,calculateDelay:({computedValue:t})=>t},timeout:{},headers:{"user-agent":"got (https://github.com/sindresorhus/got)"},hooks:{init:[],beforeRequest:[],beforeRedirect:[],beforeRetry:[],beforeError:[],afterResponse:[]},cache:void 0,dnsCache:void 0,decompress:!0,throwHttpErrors:!0,followRedirect:!0,isStream:!1,responseType:"text",resolveBodyOnly:!1,maxRedirects:10,prefixUrl:"",methodRewriting:!0,ignoreInvalidCookies:!1,context:{},http2:!1,allowGetBody:!1,https:void 0,pagination:{transform:t=>t.request.options.responseType==="json"?t.body:JSON.parse(t.body),paginate:t=>{if(!Reflect.has(t.headers,"link"))return!1;let e=t.headers.link.split(","),r;for(let o of e){let a=o.split(";");if(a[1].includes("next")){r=a[0].trimStart().trim(),r=r.slice(1,-1);break}}return r?{url:new Fst.URL(r)}:!1},filter:()=>!0,shouldContinue:()=>!0,countLimit:1/0,backoff:0,requestLimit:1e4,stackAllItems:!0},parseJson:t=>JSON.parse(t),stringifyJson:t=>JSON.stringify(t),cacheOptions:{}},handlers:[fle.defaultHandler],mutableDefaults:!1},F4=fle.default(Rst);Nf.default=F4;Cb.exports=F4;Cb.exports.default=F4;Cb.exports.__esModule=!0;Ale(Q4(),Nf);Ale(b4(),Nf)});var nn={};Vt(nn,{Method:()=>Cle,del:()=>Mst,get:()=>L4,getNetworkSettings:()=>Ele,post:()=>O4,put:()=>Ost,request:()=>I1});function dle(t){let e=new URL(t),r={host:e.hostname,headers:{}};return e.port&&(r.port=Number(e.port)),e.username&&e.password&&(r.proxyAuth=`${e.username}:${e.password}`),{proxy:r}}async function R4(t){return ol(gle,t,()=>oe.readFilePromise(t).then(e=>(gle.set(t,e),e)))}function Lst({statusCode:t,statusMessage:e},r){let o=Mt(r,t,yt.NUMBER),a=`https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/${t}`;return Zy(r,`${o}${e?` (${e})`:""}`,a)}async function wb(t,{configuration:e,customErrorMessage:r}){try{return await t}catch(o){if(o.name!=="HTTPError")throw o;let a=r?.(o,e)??o.response.body?.error;a==null&&(o.message.startsWith("Response code")?a="The remote server failed to provide the requested resource":a=o.message),o.code==="ETIMEDOUT"&&o.event==="socket"&&(a+=`(can be increased via ${Mt(e,"httpTimeout",yt.SETTING)})`);let n=new zt(35,a,u=>{o.response&&u.reportError(35,` ${zu(e,{label:"Response Code",value:_c(yt.NO_HINT,Lst(o.response,e))})}`),o.request&&(u.reportError(35,` ${zu(e,{label:"Request Method",value:_c(yt.NO_HINT,o.request.options.method)})}`),u.reportError(35,` ${zu(e,{label:"Request URL",value:_c(yt.URL,o.request.requestUrl)})}`)),o.request.redirects.length>0&&u.reportError(35,` ${zu(e,{label:"Request Redirects",value:_c(yt.NO_HINT,PL(e,o.request.redirects,yt.URL))})}`),o.request.retryCount===o.request.options.retry.limit&&u.reportError(35,` ${zu(e,{label:"Request Retry Count",value:_c(yt.NO_HINT,`${Mt(e,o.request.retryCount,yt.NUMBER)} (can be increased via ${Mt(e,"httpRetry",yt.SETTING)})`)})}`)});throw n.originalError=o,n}}function Ele(t,e){let r=[...e.configuration.get("networkSettings")].sort(([u],[A])=>A.length-u.length),o={enableNetwork:void 0,httpsCaFilePath:void 0,httpProxy:void 0,httpsProxy:void 0,httpsKeyFilePath:void 0,httpsCertFilePath:void 0},a=Object.keys(o),n=typeof t=="string"?new URL(t):t;for(let[u,A]of r)if(N4.default.isMatch(n.hostname,u))for(let p of a){let h=A.get(p);h!==null&&typeof o[p]>"u"&&(o[p]=h)}for(let u of a)typeof o[u]>"u"&&(o[u]=e.configuration.get(u));return o}async function I1(t,e,{configuration:r,headers:o,jsonRequest:a,jsonResponse:n,method:u="GET",wrapNetworkRequest:A}){let p={target:t,body:e,configuration:r,headers:o,jsonRequest:a,jsonResponse:n,method:u},h=async()=>await Ust(t,e,p),E=typeof A<"u"?await A(h,p):h;return await(await r.reduceHook(v=>v.wrapNetworkRequest,E,p))()}async function L4(t,{configuration:e,jsonResponse:r,customErrorMessage:o,wrapNetworkRequest:a,...n}){let u=()=>wb(I1(t,null,{configuration:e,wrapNetworkRequest:a,...n}),{configuration:e,customErrorMessage:o}).then(p=>p.body),A=await(typeof a<"u"?u():ol(hle,t,()=>u().then(p=>(hle.set(t,p),p))));return r?JSON.parse(A.toString()):A}async function Ost(t,e,{customErrorMessage:r,...o}){return(await wb(I1(t,e,{...o,method:"PUT"}),{customErrorMessage:r,configuration:o.configuration})).body}async function O4(t,e,{customErrorMessage:r,...o}){return(await wb(I1(t,e,{...o,method:"POST"}),{customErrorMessage:r,configuration:o.configuration})).body}async function Mst(t,{customErrorMessage:e,...r}){return(await wb(I1(t,null,{...r,method:"DELETE"}),{customErrorMessage:e,configuration:r.configuration})).body}async function Ust(t,e,{configuration:r,headers:o,jsonRequest:a,jsonResponse:n,method:u="GET"}){let A=typeof t=="string"?new URL(t):t,p=Ele(A,{configuration:r});if(p.enableNetwork===!1)throw new zt(80,`Request to '${A.href}' has been blocked because of your configuration settings`);if(A.protocol==="http:"&&!N4.default.isMatch(A.hostname,r.get("unsafeHttpWhitelist")))throw new zt(81,`Unsafe http requests must be explicitly whitelisted in your configuration (${A.hostname})`);let E={agent:{http:p.httpProxy?T4.default.httpOverHttp(dle(p.httpProxy)):Tst,https:p.httpsProxy?T4.default.httpsOverHttp(dle(p.httpsProxy)):Nst},headers:o,method:u};E.responseType=n?"json":"buffer",e!==null&&(Buffer.isBuffer(e)||!a&&typeof e=="string"?E.body=e:E.json=e);let I=r.get("httpTimeout"),v=r.get("httpRetry"),x=r.get("enableStrictSsl"),C=p.httpsCaFilePath,R=p.httpsCertFilePath,L=p.httpsKeyFilePath,{default:U}=await Promise.resolve().then(()=>$e(ple())),J=C?await R4(C):void 0,te=R?await R4(R):void 0,ae=L?await R4(L):void 0,fe=U.extend({timeout:{socket:I},retry:v,https:{rejectUnauthorized:x,certificateAuthority:J,certificate:te,key:ae},...E});return r.getLimit("networkConcurrency")(()=>fe(A))}var mle,yle,N4,T4,hle,gle,Tst,Nst,Cle,Ib=Et(()=>{St();mle=ve("https"),yle=ve("http"),N4=$e(Zo()),T4=$e(Yse());Yl();jl();ql();hle=new Map,gle=new Map,Tst=new yle.Agent({keepAlive:!0}),Nst=new mle.Agent({keepAlive:!0});Cle=(a=>(a.GET="GET",a.PUT="PUT",a.POST="POST",a.DELETE="DELETE",a))(Cle||{})});var Ji={};Vt(Ji,{availableParallelism:()=>U4,getArchitecture:()=>B1,getArchitectureName:()=>Gst,getArchitectureSet:()=>M4,getCaller:()=>Vst,major:()=>_st,openUrl:()=>Hst});function jst(){if(process.platform==="darwin"||process.platform==="win32")return null;let t;try{t=oe.readFileSync(qst)}catch{}if(typeof t<"u"){if(t&&t.includes("GLIBC"))return"glibc";if(t&&t.includes("musl"))return"musl"}let r=(process.report?.getReport()??{}).sharedObjects??[],o=/\/(?:(ld-linux-|[^/]+-linux-gnu\/)|(libc.musl-|ld-musl-))/;return KI(r,a=>{let n=a.match(o);if(!n)return KI.skip;if(n[1])return"glibc";if(n[2])return"musl";throw new Error("Assertion failed: Expected the libc variant to have been detected")})??null}function B1(){return Ile=Ile??{os:process.platform,cpu:process.arch,libc:jst()}}function Gst(t=B1()){return t.libc?`${t.os}-${t.cpu}-${t.libc}`:`${t.os}-${t.cpu}`}function M4(){let t=B1();return Ble=Ble??{os:[t.os],cpu:[t.cpu],libc:t.libc?[t.libc]:[]}}function Kst(t){let e=Yst.exec(t);if(!e)return null;let r=e[2]&&e[2].indexOf("native")===0,o=e[2]&&e[2].indexOf("eval")===0,a=Wst.exec(e[2]);return o&&a!=null&&(e[2]=a[1],e[3]=a[2],e[4]=a[3]),{file:r?null:e[2],methodName:e[1]||"",arguments:r?[e[2]]:[],line:e[3]?+e[3]:null,column:e[4]?+e[4]:null}}function Vst(){let e=new Error().stack.split(` +`)[3];return Kst(e)}function U4(){return typeof Bb.default.availableParallelism<"u"?Bb.default.availableParallelism():Math.max(1,Bb.default.cpus().length)}var Bb,_st,wle,Hst,qst,Ile,Ble,Yst,Wst,vb=Et(()=>{St();Bb=$e(ve("os"));Db();ql();_st=Number(process.versions.node.split(".")[0]),wle=new Map([["darwin","open"],["linux","xdg-open"],["win32","explorer.exe"]]).get(process.platform),Hst=typeof wle<"u"?async t=>{try{return await _4(wle,[t],{cwd:V.cwd()}),!0}catch{return!1}}:void 0,qst="/usr/bin/ldd";Yst=/^\s*at (.*?) ?\(((?:file|https?|blob|chrome-extension|native|eval|webpack||\/|[a-z]:\\|\\\\).*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i,Wst=/\((\S*)(?::(\d+))(?::(\d+))\)/});function Y4(t,e,r,o,a){let n=A1(r);if(o.isArray||o.type==="ANY"&&Array.isArray(n))return Array.isArray(n)?n.map((u,A)=>H4(t,`${e}[${A}]`,u,o,a)):String(n).split(/,/).map(u=>H4(t,e,u,o,a));if(Array.isArray(n))throw new Error(`Non-array configuration settings "${e}" cannot be an array`);return H4(t,e,r,o,a)}function H4(t,e,r,o,a){let n=A1(r);switch(o.type){case"ANY":return GP(n);case"SHAPE":return Zst(t,e,r,o,a);case"MAP":return $st(t,e,r,o,a)}if(n===null&&!o.isNullable&&o.default!==null)throw new Error(`Non-nullable configuration settings "${e}" cannot be set to null`);if(o.values?.includes(n))return n;let A=(()=>{if(o.type==="BOOLEAN"&&typeof n!="string")return VI(n);if(typeof n!="string")throw new Error(`Expected configuration setting "${e}" to be a string, got ${typeof n}`);let p=sP(n,{env:t.env});switch(o.type){case"ABSOLUTE_PATH":{let h=a,E=mM(r);return E&&E[0]!=="<"&&(h=V.dirname(E)),V.resolve(h,ue.toPortablePath(p))}case"LOCATOR_LOOSE":return xf(p,!1);case"NUMBER":return parseInt(p);case"LOCATOR":return xf(p);case"BOOLEAN":return VI(p);default:return p}})();if(o.values&&!o.values.includes(A))throw new Error(`Invalid value, expected one of ${o.values.join(", ")}`);return A}function Zst(t,e,r,o,a){let n=A1(r);if(typeof n!="object"||Array.isArray(n))throw new it(`Object configuration settings "${e}" must be an object`);let u=W4(t,o,{ignoreArrays:!0});if(n===null)return u;for(let[A,p]of Object.entries(n)){let h=`${e}.${A}`;if(!o.properties[A])throw new it(`Unrecognized configuration settings found: ${e}.${A} - run "yarn config -v" to see the list of settings supported in Yarn`);u.set(A,Y4(t,h,p,o.properties[A],a))}return u}function $st(t,e,r,o,a){let n=A1(r),u=new Map;if(typeof n!="object"||Array.isArray(n))throw new it(`Map configuration settings "${e}" must be an object`);if(n===null)return u;for(let[A,p]of Object.entries(n)){let h=o.normalizeKeys?o.normalizeKeys(A):A,E=`${e}['${h}']`,I=o.valueDefinition;u.set(h,Y4(t,E,p,I,a))}return u}function W4(t,e,{ignoreArrays:r=!1}={}){switch(e.type){case"SHAPE":{if(e.isArray&&!r)return[];let o=new Map;for(let[a,n]of Object.entries(e.properties))o.set(a,W4(t,n));return o}case"MAP":return e.isArray&&!r?[]:new Map;case"ABSOLUTE_PATH":return e.default===null?null:t.projectCwd===null?Array.isArray(e.default)?e.default.map(o=>V.normalize(o)):V.isAbsolute(e.default)?V.normalize(e.default):e.isNullable?null:void 0:Array.isArray(e.default)?e.default.map(o=>V.resolve(t.projectCwd,o)):V.resolve(t.projectCwd,e.default);default:return e.default}}function Pb(t,e,r){if(e.type==="SECRET"&&typeof t=="string"&&r.hideSecrets)return Xst;if(e.type==="ABSOLUTE_PATH"&&typeof t=="string"&&r.getNativePaths)return ue.fromPortablePath(t);if(e.isArray&&Array.isArray(t)){let o=[];for(let a of t)o.push(Pb(a,e,r));return o}if(e.type==="MAP"&&t instanceof Map){if(t.size===0)return;let o=new Map;for(let[a,n]of t.entries()){let u=Pb(n,e.valueDefinition,r);typeof u<"u"&&o.set(a,u)}return o}if(e.type==="SHAPE"&&t instanceof Map){if(t.size===0)return;let o=new Map;for(let[a,n]of t.entries()){let u=e.properties[a],A=Pb(n,u,r);typeof A<"u"&&o.set(a,A)}return o}return t}function eot(){let t={};for(let[e,r]of Object.entries(process.env))e=e.toLowerCase(),e.startsWith(bb)&&(e=(0,Dle.default)(e.slice(bb.length)),t[e]=r);return t}function j4(){let t=`${bb}rc_filename`;for(let[e,r]of Object.entries(process.env))if(e.toLowerCase()===t&&typeof r=="string")return r;return G4}async function vle(t){try{return await oe.readFilePromise(t)}catch{return Buffer.of()}}async function tot(t,e){return Buffer.compare(...await Promise.all([vle(t),vle(e)]))===0}async function rot(t,e){let[r,o]=await Promise.all([oe.statPromise(t),oe.statPromise(e)]);return r.dev===o.dev&&r.ino===o.ino}async function iot({configuration:t,selfPath:e}){let r=t.get("yarnPath");return t.get("ignorePath")||r===null||r===e||await not(r,e)?null:r}var Dle,Lf,Sle,Ple,ble,q4,Jst,v1,zst,FE,bb,G4,Xst,D1,xle,xb,Sb,not,rA,Ke,S1=Et(()=>{St();Nl();Dle=$e(sV()),Lf=$e(td());qt();Sle=$e(ZV()),Ple=ve("module"),ble=$e(id()),q4=ve("stream");ose();fE();cM();uM();AM();Tse();fM();vd();Use();WP();jl();nh();Ib();ql();vb();Qf();bo();Jst=function(){if(!Lf.GITHUB_ACTIONS||!process.env.GITHUB_EVENT_PATH)return!1;let t=ue.toPortablePath(process.env.GITHUB_EVENT_PATH),e;try{e=oe.readJsonSync(t)}catch{return!1}return!(!("repository"in e)||!e.repository||(e.repository.private??!0))}(),v1=new Set(["@yarnpkg/plugin-constraints","@yarnpkg/plugin-exec","@yarnpkg/plugin-interactive-tools","@yarnpkg/plugin-stage","@yarnpkg/plugin-typescript","@yarnpkg/plugin-version","@yarnpkg/plugin-workspace-tools"]),zst=new Set(["isTestEnv","injectNpmUser","injectNpmPassword","injectNpm2FaToken","zipDataEpilogue","cacheCheckpointOverride","cacheVersionOverride","lockfileVersionOverride","binFolder","version","flags","profile","gpg","ignoreNode","wrapOutput","home","confDir","registry","ignoreCwd"]),FE=/^(?!v)[a-z0-9._-]+$/i,bb="yarn_",G4=".yarnrc.yml",Xst="********",D1=(E=>(E.ANY="ANY",E.BOOLEAN="BOOLEAN",E.ABSOLUTE_PATH="ABSOLUTE_PATH",E.LOCATOR="LOCATOR",E.LOCATOR_LOOSE="LOCATOR_LOOSE",E.NUMBER="NUMBER",E.STRING="STRING",E.SECRET="SECRET",E.SHAPE="SHAPE",E.MAP="MAP",E))(D1||{}),xle=yt,xb=(r=>(r.JUNCTIONS="junctions",r.SYMLINKS="symlinks",r))(xb||{}),Sb={lastUpdateCheck:{description:"Last timestamp we checked whether new Yarn versions were available",type:"STRING",default:null},yarnPath:{description:"Path to the local executable that must be used over the global one",type:"ABSOLUTE_PATH",default:null},ignorePath:{description:"If true, the local executable will be ignored when using the global one",type:"BOOLEAN",default:!1},globalFolder:{description:"Folder where all system-global files are stored",type:"ABSOLUTE_PATH",default:EM()},cacheFolder:{description:"Folder where the cache files must be written",type:"ABSOLUTE_PATH",default:"./.yarn/cache"},compressionLevel:{description:"Zip files compression level, from 0 to 9 or mixed (a variant of 9, which stores some files uncompressed, when compression doesn't yield good results)",type:"NUMBER",values:["mixed",0,1,2,3,4,5,6,7,8,9],default:0},virtualFolder:{description:"Folder where the virtual packages (cf doc) will be mapped on the disk (must be named __virtual__)",type:"ABSOLUTE_PATH",default:"./.yarn/__virtual__"},installStatePath:{description:"Path of the file where the install state will be persisted",type:"ABSOLUTE_PATH",default:"./.yarn/install-state.gz"},immutablePatterns:{description:"Array of glob patterns; files matching them won't be allowed to change during immutable installs",type:"STRING",default:[],isArray:!0},rcFilename:{description:"Name of the files where the configuration can be found",type:"STRING",default:j4()},enableGlobalCache:{description:"If true, the system-wide cache folder will be used regardless of `cache-folder`",type:"BOOLEAN",default:!0},cacheMigrationMode:{description:"Defines the conditions under which Yarn upgrades should cause the cache archives to be regenerated.",type:"STRING",values:["always","match-spec","required-only"],default:"always"},enableColors:{description:"If true, the CLI is allowed to use colors in its output",type:"BOOLEAN",default:lP,defaultText:""},enableHyperlinks:{description:"If true, the CLI is allowed to use hyperlinks in its output",type:"BOOLEAN",default:SL,defaultText:""},enableInlineBuilds:{description:"If true, the CLI will print the build output on the command line",type:"BOOLEAN",default:Lf.isCI,defaultText:""},enableMessageNames:{description:"If true, the CLI will prefix most messages with codes suitable for search engines",type:"BOOLEAN",default:!0},enableProgressBars:{description:"If true, the CLI is allowed to show a progress bar for long-running events",type:"BOOLEAN",default:!Lf.isCI,defaultText:""},enableTimers:{description:"If true, the CLI is allowed to print the time spent executing commands",type:"BOOLEAN",default:!0},enableTips:{description:"If true, installs will print a helpful message every day of the week",type:"BOOLEAN",default:!Lf.isCI,defaultText:""},preferInteractive:{description:"If true, the CLI will automatically use the interactive mode when called from a TTY",type:"BOOLEAN",default:!1},preferTruncatedLines:{description:"If true, the CLI will truncate lines that would go beyond the size of the terminal",type:"BOOLEAN",default:!1},progressBarStyle:{description:"Which style of progress bar should be used (only when progress bars are enabled)",type:"STRING",default:void 0,defaultText:""},defaultLanguageName:{description:"Default language mode that should be used when a package doesn't offer any insight",type:"STRING",default:"node"},defaultProtocol:{description:"Default resolution protocol used when resolving pure semver and tag ranges",type:"STRING",default:"npm:"},enableTransparentWorkspaces:{description:"If false, Yarn won't automatically resolve workspace dependencies unless they use the `workspace:` protocol",type:"BOOLEAN",default:!0},supportedArchitectures:{description:"Architectures that Yarn will fetch and inject into the resolver",type:"SHAPE",properties:{os:{description:"Array of supported process.platform strings, or null to target them all",type:"STRING",isArray:!0,isNullable:!0,default:["current"]},cpu:{description:"Array of supported process.arch strings, or null to target them all",type:"STRING",isArray:!0,isNullable:!0,default:["current"]},libc:{description:"Array of supported libc libraries, or null to target them all",type:"STRING",isArray:!0,isNullable:!0,default:["current"]}}},enableMirror:{description:"If true, the downloaded packages will be retrieved and stored in both the local and global folders",type:"BOOLEAN",default:!0},enableNetwork:{description:"If false, Yarn will refuse to use the network if required to",type:"BOOLEAN",default:!0},enableOfflineMode:{description:"If true, Yarn will attempt to retrieve files and metadata from the global cache rather than the network",type:"BOOLEAN",default:!1},httpProxy:{description:"URL of the http proxy that must be used for outgoing http requests",type:"STRING",default:null},httpsProxy:{description:"URL of the http proxy that must be used for outgoing https requests",type:"STRING",default:null},unsafeHttpWhitelist:{description:"List of the hostnames for which http queries are allowed (glob patterns are supported)",type:"STRING",default:[],isArray:!0},httpTimeout:{description:"Timeout of each http request in milliseconds",type:"NUMBER",default:6e4},httpRetry:{description:"Retry times on http failure",type:"NUMBER",default:3},networkConcurrency:{description:"Maximal number of concurrent requests",type:"NUMBER",default:50},taskPoolConcurrency:{description:"Maximal amount of concurrent heavy task processing",type:"NUMBER",default:U4()},taskPoolMode:{description:"Execution strategy for heavy tasks",type:"STRING",values:["async","workers"],default:"workers"},networkSettings:{description:"Network settings per hostname (glob patterns are supported)",type:"MAP",valueDefinition:{description:"",type:"SHAPE",properties:{httpsCaFilePath:{description:"Path to file containing one or multiple Certificate Authority signing certificates",type:"ABSOLUTE_PATH",default:null},enableNetwork:{description:"If false, the package manager will refuse to use the network if required to",type:"BOOLEAN",default:null},httpProxy:{description:"URL of the http proxy that must be used for outgoing http requests",type:"STRING",default:null},httpsProxy:{description:"URL of the http proxy that must be used for outgoing https requests",type:"STRING",default:null},httpsKeyFilePath:{description:"Path to file containing private key in PEM format",type:"ABSOLUTE_PATH",default:null},httpsCertFilePath:{description:"Path to file containing certificate chain in PEM format",type:"ABSOLUTE_PATH",default:null}}}},httpsCaFilePath:{description:"A path to a file containing one or multiple Certificate Authority signing certificates",type:"ABSOLUTE_PATH",default:null},httpsKeyFilePath:{description:"Path to file containing private key in PEM format",type:"ABSOLUTE_PATH",default:null},httpsCertFilePath:{description:"Path to file containing certificate chain in PEM format",type:"ABSOLUTE_PATH",default:null},enableStrictSsl:{description:"If false, SSL certificate errors will be ignored",type:"BOOLEAN",default:!0},logFilters:{description:"Overrides for log levels",type:"SHAPE",isArray:!0,concatenateValues:!0,properties:{code:{description:"Code of the messages covered by this override",type:"STRING",default:void 0},text:{description:"Code of the texts covered by this override",type:"STRING",default:void 0},pattern:{description:"Code of the patterns covered by this override",type:"STRING",default:void 0},level:{description:"Log level override, set to null to remove override",type:"STRING",values:Object.values(uP),isNullable:!0,default:void 0}}},enableTelemetry:{description:"If true, telemetry will be periodically sent, following the rules in https://yarnpkg.com/advanced/telemetry",type:"BOOLEAN",default:!0},telemetryInterval:{description:"Minimal amount of time between two telemetry uploads, in days",type:"NUMBER",default:7},telemetryUserId:{description:"If you desire to tell us which project you are, you can set this field. Completely optional and opt-in.",type:"STRING",default:null},enableHardenedMode:{description:"If true, automatically enable --check-resolutions --refresh-lockfile on installs",type:"BOOLEAN",default:Lf.isPR&&Jst,defaultText:""},enableScripts:{description:"If true, packages are allowed to have install scripts by default",type:"BOOLEAN",default:!0},enableStrictSettings:{description:"If true, unknown settings will cause Yarn to abort",type:"BOOLEAN",default:!0},enableImmutableCache:{description:"If true, the cache is reputed immutable and actions that would modify it will throw",type:"BOOLEAN",default:!1},checksumBehavior:{description:"Enumeration defining what to do when a checksum doesn't match expectations",type:"STRING",default:"throw"},injectEnvironmentFiles:{description:"List of all the environment files that Yarn should inject inside the process when it starts",type:"ABSOLUTE_PATH",default:[".env.yarn?"],isArray:!0},packageExtensions:{description:"Map of package corrections to apply on the dependency tree",type:"MAP",valueDefinition:{description:"The extension that will be applied to any package whose version matches the specified range",type:"SHAPE",properties:{dependencies:{description:"The set of dependencies that must be made available to the current package in order for it to work properly",type:"MAP",valueDefinition:{description:"A range",type:"STRING"}},peerDependencies:{description:"Inherited dependencies - the consumer of the package will be tasked to provide them",type:"MAP",valueDefinition:{description:"A semver range",type:"STRING"}},peerDependenciesMeta:{description:"Extra information related to the dependencies listed in the peerDependencies field",type:"MAP",valueDefinition:{description:"The peerDependency meta",type:"SHAPE",properties:{optional:{description:"If true, the selected peer dependency will be marked as optional by the package manager and the consumer omitting it won't be reported as an error",type:"BOOLEAN",default:!1}}}}}}}};not=process.platform==="win32"?tot:rot;rA=class{constructor(e){this.isCI=Lf.isCI;this.projectCwd=null;this.plugins=new Map;this.settings=new Map;this.values=new Map;this.sources=new Map;this.invalid=new Map;this.env={};this.limits=new Map;this.packageExtensions=null;this.startingCwd=e}static create(e,r,o){let a=new rA(e);typeof r<"u"&&!(r instanceof Map)&&(a.projectCwd=r),a.importSettings(Sb);let n=typeof o<"u"?o:r instanceof Map?r:new Map;for(let[u,A]of n)a.activatePlugin(u,A);return a}static async find(e,r,{strict:o=!0,usePathCheck:a=null,useRc:n=!0}={}){let u=eot();delete u.rcFilename;let A=new rA(e),p=await rA.findRcFiles(e),h=await rA.findFolderRcFile(EE());h&&(p.find(me=>me.path===h.path)||p.unshift(h));let E=Mse(p.map(ce=>[ce.path,ce.data])),I=Bt.dot,v=new Set(Object.keys(Sb)),x=({yarnPath:ce,ignorePath:me,injectEnvironmentFiles:he})=>({yarnPath:ce,ignorePath:me,injectEnvironmentFiles:he}),C=({yarnPath:ce,ignorePath:me,injectEnvironmentFiles:he,...Be})=>{let we={};for(let[g,Ee]of Object.entries(Be))v.has(g)&&(we[g]=Ee);return we},R=({yarnPath:ce,ignorePath:me,...he})=>{let Be={};for(let[we,g]of Object.entries(he))v.has(we)||(Be[we]=g);return Be};if(A.importSettings(x(Sb)),A.useWithSource("",x(u),e,{strict:!1}),E){let[ce,me]=E;A.useWithSource(ce,x(me),I,{strict:!1})}if(a){if(await iot({configuration:A,selfPath:a})!==null)return A;A.useWithSource("",{ignorePath:!0},e,{strict:!1,overwrite:!0})}let L=await rA.findProjectCwd(e);A.startingCwd=e,A.projectCwd=L;let U=Object.assign(Object.create(null),process.env);A.env=U;let J=await Promise.all(A.get("injectEnvironmentFiles").map(async ce=>{let me=ce.endsWith("?")?await oe.readFilePromise(ce.slice(0,-1),"utf8").catch(()=>""):await oe.readFilePromise(ce,"utf8");return(0,Sle.parse)(me)}));for(let ce of J)for(let[me,he]of Object.entries(ce))A.env[me]=sP(he,{env:U});if(A.importSettings(C(Sb)),A.useWithSource("",C(u),e,{strict:o}),E){let[ce,me]=E;A.useWithSource(ce,C(me),I,{strict:o})}let te=ce=>"default"in ce?ce.default:ce,ae=new Map([["@@core",sse]]);if(r!==null)for(let ce of r.plugins.keys())ae.set(ce,te(r.modules.get(ce)));for(let[ce,me]of ae)A.activatePlugin(ce,me);let fe=new Map([]);if(r!==null){let ce=new Map;for(let Be of Ple.builtinModules)ce.set(Be,()=>Df(Be));for(let[Be,we]of r.modules)ce.set(Be,()=>we);let me=new Set,he=async(Be,we)=>{let{factory:g,name:Ee}=Df(Be);if(!g||me.has(Ee))return;let Se=new Map(ce),le=ee=>{if(Se.has(ee))return Se.get(ee)();throw new it(`This plugin cannot access the package referenced via ${ee} which is neither a builtin, nor an exposed entry`)},ne=await Ky(async()=>te(await g(le)),ee=>`${ee} (when initializing ${Ee}, defined in ${we})`);ce.set(Ee,()=>ne),me.add(Ee),fe.set(Ee,ne)};if(u.plugins)for(let Be of u.plugins.split(";")){let we=V.resolve(e,ue.toPortablePath(Be));await he(we,"")}for(let{path:Be,cwd:we,data:g}of p)if(!!n&&!!Array.isArray(g.plugins))for(let Ee of g.plugins){let Se=typeof Ee!="string"?Ee.path:Ee,le=Ee?.spec??"",ne=Ee?.checksum??"";if(v1.has(le))continue;let ee=V.resolve(we,ue.toPortablePath(Se));if(!await oe.existsPromise(ee)){if(!le){let At=Mt(A,V.basename(ee,".cjs"),yt.NAME),H=Mt(A,".gitignore",yt.NAME),at=Mt(A,A.values.get("rcFilename"),yt.NAME),Re=Mt(A,"https://yarnpkg.com/getting-started/qa#which-files-should-be-gitignored",yt.URL);throw new it(`Missing source for the ${At} plugin - please try to remove the plugin from ${at} then reinstall it manually. This error usually occurs because ${H} is incorrect, check ${Re} to make sure your plugin folder isn't gitignored.`)}if(!le.match(/^https?:/)){let At=Mt(A,V.basename(ee,".cjs"),yt.NAME),H=Mt(A,A.values.get("rcFilename"),yt.NAME);throw new it(`Failed to recognize the source for the ${At} plugin - please try to delete the plugin from ${H} then reinstall it manually.`)}let Ie=await L4(le,{configuration:A}),Fe=zs(Ie);if(ne&&ne!==Fe){let At=Mt(A,V.basename(ee,".cjs"),yt.NAME),H=Mt(A,A.values.get("rcFilename"),yt.NAME),at=Mt(A,`yarn plugin import ${le}`,yt.CODE);throw new it(`Failed to fetch the ${At} plugin from its remote location: its checksum seems to have changed. If this is expected, please remove the plugin from ${H} then run ${at} to reimport it.`)}await oe.mkdirPromise(V.dirname(ee),{recursive:!0}),await oe.writeFilePromise(ee,Ie)}await he(ee,Be)}}for(let[ce,me]of fe)A.activatePlugin(ce,me);if(A.useWithSource("",R(u),e,{strict:o}),E){let[ce,me]=E;A.useWithSource(ce,R(me),I,{strict:o})}return A.get("enableGlobalCache")&&(A.values.set("cacheFolder",`${A.get("globalFolder")}/cache`),A.sources.set("cacheFolder","")),A}static async findRcFiles(e){let r=j4(),o=[],a=e,n=null;for(;a!==n;){n=a;let u=V.join(n,r);if(oe.existsSync(u)){let A=await oe.readFilePromise(u,"utf8"),p;try{p=Ki(A)}catch{let E="";throw A.match(/^\s+(?!-)[^:]+\s+\S+/m)&&(E=" (in particular, make sure you list the colons after each key name)"),new it(`Parse error when loading ${u}; please check it's proper Yaml${E}`)}o.unshift({path:u,cwd:n,data:p})}a=V.dirname(n)}return o}static async findFolderRcFile(e){let r=V.join(e,dr.rc),o;try{o=await oe.readFilePromise(r,"utf8")}catch(n){if(n.code==="ENOENT")return null;throw n}let a=Ki(o);return{path:r,cwd:e,data:a}}static async findProjectCwd(e){let r=null,o=e,a=null;for(;o!==a;){if(a=o,oe.existsSync(V.join(a,dr.lockfile)))return a;oe.existsSync(V.join(a,dr.manifest))&&(r=a),o=V.dirname(a)}return r}static async updateConfiguration(e,r,o={}){let a=j4(),n=V.join(e,a),u=oe.existsSync(n)?Ki(await oe.readFilePromise(n,"utf8")):{},A=!1,p;if(typeof r=="function"){try{p=r(u)}catch{p=r({})}if(p===u)return!1}else{p=u;for(let h of Object.keys(r)){let E=u[h],I=r[h],v;if(typeof I=="function")try{v=I(E)}catch{v=I(void 0)}else v=I;E!==v&&(v===rA.deleteProperty?delete p[h]:p[h]=v,A=!0)}if(!A)return!1}return await oe.changeFilePromise(n,Ba(p),{automaticNewlines:!0}),!0}static async addPlugin(e,r){r.length!==0&&await rA.updateConfiguration(e,o=>{let a=o.plugins??[];if(a.length===0)return{...o,plugins:r};let n=[],u=[...r];for(let A of a){let p=typeof A!="string"?A.path:A,h=u.find(E=>E.path===p);h?(n.push(h),u=u.filter(E=>E!==h)):n.push(A)}return n.push(...u),{...o,plugins:n}})}static async updateHomeConfiguration(e){let r=EE();return await rA.updateConfiguration(r,e)}activatePlugin(e,r){this.plugins.set(e,r),typeof r.configuration<"u"&&this.importSettings(r.configuration)}importSettings(e){for(let[r,o]of Object.entries(e))if(o!=null){if(this.settings.has(r))throw new Error(`Cannot redefine settings "${r}"`);this.settings.set(r,o),this.values.set(r,W4(this,o))}}useWithSource(e,r,o,a){try{this.use(e,r,o,a)}catch(n){throw n.message+=` (in ${Mt(this,e,yt.PATH)})`,n}}use(e,r,o,{strict:a=!0,overwrite:n=!1}={}){a=a&&this.get("enableStrictSettings");for(let u of["enableStrictSettings",...Object.keys(r)]){let A=r[u],p=mM(A);if(p&&(e=p),typeof A>"u"||u==="plugins"||e===""&&zst.has(u))continue;if(u==="rcFilename")throw new it(`The rcFilename settings can only be set via ${`${bb}RC_FILENAME`.toUpperCase()}, not via a rc file`);let h=this.settings.get(u);if(!h){let I=EE(),v=e[0]!=="<"?V.dirname(e):null;if(a&&!(v!==null?I===v:!1))throw new it(`Unrecognized or legacy configuration settings found: ${u} - run "yarn config -v" to see the list of settings supported in Yarn`);this.invalid.set(u,e);continue}if(this.sources.has(u)&&!(n||h.type==="MAP"||h.isArray&&h.concatenateValues))continue;let E;try{E=Y4(this,u,A,h,o)}catch(I){throw I.message+=` in ${Mt(this,e,yt.PATH)}`,I}if(u==="enableStrictSettings"&&e!==""){a=E;continue}if(h.type==="MAP"){let I=this.values.get(u);this.values.set(u,new Map(n?[...I,...E]:[...E,...I])),this.sources.set(u,`${this.sources.get(u)}, ${e}`)}else if(h.isArray&&h.concatenateValues){let I=this.values.get(u);this.values.set(u,n?[...I,...E]:[...E,...I]),this.sources.set(u,`${this.sources.get(u)}, ${e}`)}else this.values.set(u,E),this.sources.set(u,e)}}get(e){if(!this.values.has(e))throw new Error(`Invalid configuration key "${e}"`);return this.values.get(e)}getSpecial(e,{hideSecrets:r=!1,getNativePaths:o=!1}){let a=this.get(e),n=this.settings.get(e);if(typeof n>"u")throw new it(`Couldn't find a configuration settings named "${e}"`);return Pb(a,n,{hideSecrets:r,getNativePaths:o})}getSubprocessStreams(e,{header:r,prefix:o,report:a}){let n,u,A=oe.createWriteStream(e);if(this.get("enableInlineBuilds")){let p=a.createStreamReporter(`${o} ${Mt(this,"STDOUT","green")}`),h=a.createStreamReporter(`${o} ${Mt(this,"STDERR","red")}`);n=new q4.PassThrough,n.pipe(p),n.pipe(A),u=new q4.PassThrough,u.pipe(h),u.pipe(A)}else n=A,u=A,typeof r<"u"&&n.write(`${r} +`);return{stdout:n,stderr:u}}makeResolver(){let e=[];for(let r of this.plugins.values())for(let o of r.resolvers||[])e.push(new o);return new Dd([new c1,new Xn,...e])}makeFetcher(){let e=[];for(let r of this.plugins.values())for(let o of r.fetchers||[])e.push(new o);return new hE([new gE,new mE,...e])}getLinkers(){let e=[];for(let r of this.plugins.values())for(let o of r.linkers||[])e.push(new o);return e}getSupportedArchitectures(){let e=B1(),r=this.get("supportedArchitectures"),o=r.get("os");o!==null&&(o=o.map(u=>u==="current"?e.os:u));let a=r.get("cpu");a!==null&&(a=a.map(u=>u==="current"?e.cpu:u));let n=r.get("libc");return n!==null&&(n=sl(n,u=>u==="current"?e.libc??sl.skip:u)),{os:o,cpu:a,libc:n}}async getPackageExtensions(){if(this.packageExtensions!==null)return this.packageExtensions;this.packageExtensions=new Map;let e=this.packageExtensions,r=(o,a,{userProvided:n=!1}={})=>{if(!xa(o.range))throw new Error("Only semver ranges are allowed as keys for the packageExtensions setting");let u=new Ot;u.load(a,{yamlCompatibilityMode:!0});let A=Yy(e,o.identHash),p=[];A.push([o.range,p]);let h={status:"inactive",userProvided:n,parentDescriptor:o};for(let E of u.dependencies.values())p.push({...h,type:"Dependency",descriptor:E});for(let E of u.peerDependencies.values())p.push({...h,type:"PeerDependency",descriptor:E});for(let[E,I]of u.peerDependenciesMeta)for(let[v,x]of Object.entries(I))p.push({...h,type:"PeerDependencyMeta",selector:E,key:v,value:x})};await this.triggerHook(o=>o.registerPackageExtensions,this,r);for(let[o,a]of this.get("packageExtensions"))r(ih(o,!0),iP(a),{userProvided:!0});return e}normalizeLocator(e){return xa(e.reference)?Qs(e,`${this.get("defaultProtocol")}${e.reference}`):FE.test(e.reference)?Qs(e,`${this.get("defaultProtocol")}${e.reference}`):e}normalizeDependency(e){return xa(e.range)?In(e,`${this.get("defaultProtocol")}${e.range}`):FE.test(e.range)?In(e,`${this.get("defaultProtocol")}${e.range}`):e}normalizeDependencyMap(e){return new Map([...e].map(([r,o])=>[r,this.normalizeDependency(o)]))}normalizePackage(e,{packageExtensions:r}){let o=e1(e),a=r.get(e.identHash);if(typeof a<"u"){let u=e.version;if(u!==null){for(let[A,p]of a)if(!!kf(u,A))for(let h of p)switch(h.status==="inactive"&&(h.status="redundant"),h.type){case"Dependency":typeof o.dependencies.get(h.descriptor.identHash)>"u"&&(h.status="active",o.dependencies.set(h.descriptor.identHash,this.normalizeDependency(h.descriptor)));break;case"PeerDependency":typeof o.peerDependencies.get(h.descriptor.identHash)>"u"&&(h.status="active",o.peerDependencies.set(h.descriptor.identHash,h.descriptor));break;case"PeerDependencyMeta":{let E=o.peerDependenciesMeta.get(h.selector);(typeof E>"u"||!Object.hasOwn(E,h.key)||E[h.key]!==h.value)&&(h.status="active",ol(o.peerDependenciesMeta,h.selector,()=>({}))[h.key]=h.value)}break;default:yL(h)}}}let n=u=>u.scope?`${u.scope}__${u.name}`:`${u.name}`;for(let u of o.peerDependenciesMeta.keys()){let A=Js(u);o.peerDependencies.has(A.identHash)||o.peerDependencies.set(A.identHash,In(A,"*"))}for(let u of o.peerDependencies.values()){if(u.scope==="types")continue;let A=n(u),p=eA("types",A),h=fn(p);o.peerDependencies.has(p.identHash)||o.peerDependenciesMeta.has(h)||(o.peerDependencies.set(p.identHash,In(p,"*")),o.peerDependenciesMeta.set(h,{optional:!0}))}return o.dependencies=new Map(ks(o.dependencies,([,u])=>Pa(u))),o.peerDependencies=new Map(ks(o.peerDependencies,([,u])=>Pa(u))),o}getLimit(e){return ol(this.limits,e,()=>(0,ble.default)(this.get(e)))}async triggerHook(e,...r){for(let o of this.plugins.values()){let a=o.hooks;if(!a)continue;let n=e(a);!n||await n(...r)}}async triggerMultipleHooks(e,r){for(let o of r)await this.triggerHook(e,...o)}async reduceHook(e,r,...o){let a=r;for(let n of this.plugins.values()){let u=n.hooks;if(!u)continue;let A=e(u);!A||(a=await A(a,...o))}return a}async firstHook(e,...r){for(let o of this.plugins.values()){let a=o.hooks;if(!a)continue;let n=e(a);if(!n)continue;let u=await n(...r);if(typeof u<"u")return u}return null}},Ke=rA;Ke.deleteProperty=Symbol(),Ke.telemetry=null});var Ur={};Vt(Ur,{EndStrategy:()=>z4,ExecError:()=>kb,PipeError:()=>P1,execvp:()=>_4,pipevp:()=>Gc});function bd(t){return t!==null&&typeof t.fd=="number"}function K4(){}function V4(){for(let t of xd)t.kill()}async function Gc(t,e,{cwd:r,env:o=process.env,strict:a=!1,stdin:n=null,stdout:u,stderr:A,end:p=2}){let h=["pipe","pipe","pipe"];n===null?h[0]="ignore":bd(n)&&(h[0]=n),bd(u)&&(h[1]=u),bd(A)&&(h[2]=A);let E=(0,J4.default)(t,e,{cwd:ue.fromPortablePath(r),env:{...o,PWD:ue.fromPortablePath(r)},stdio:h});xd.add(E),xd.size===1&&(process.on("SIGINT",K4),process.on("SIGTERM",V4)),!bd(n)&&n!==null&&n.pipe(E.stdin),bd(u)||E.stdout.pipe(u,{end:!1}),bd(A)||E.stderr.pipe(A,{end:!1});let I=()=>{for(let v of new Set([u,A]))bd(v)||v.end()};return new Promise((v,x)=>{E.on("error",C=>{xd.delete(E),xd.size===0&&(process.off("SIGINT",K4),process.off("SIGTERM",V4)),(p===2||p===1)&&I(),x(C)}),E.on("close",(C,R)=>{xd.delete(E),xd.size===0&&(process.off("SIGINT",K4),process.off("SIGTERM",V4)),(p===2||p===1&&C!==0)&&I(),C===0||!a?v({code:X4(C,R)}):x(new P1({fileName:t,code:C,signal:R}))})})}async function _4(t,e,{cwd:r,env:o=process.env,encoding:a="utf8",strict:n=!1}){let u=["ignore","pipe","pipe"],A=[],p=[],h=ue.fromPortablePath(r);typeof o.PWD<"u"&&(o={...o,PWD:h});let E=(0,J4.default)(t,e,{cwd:h,env:o,stdio:u});return E.stdout.on("data",I=>{A.push(I)}),E.stderr.on("data",I=>{p.push(I)}),await new Promise((I,v)=>{E.on("error",x=>{let C=Ke.create(r),R=Mt(C,t,yt.PATH);v(new zt(1,`Process ${R} failed to spawn`,L=>{L.reportError(1,` ${zu(C,{label:"Thrown Error",value:_c(yt.NO_HINT,x.message)})}`)}))}),E.on("close",(x,C)=>{let R=a==="buffer"?Buffer.concat(A):Buffer.concat(A).toString(a),L=a==="buffer"?Buffer.concat(p):Buffer.concat(p).toString(a);x===0||!n?I({code:X4(x,C),stdout:R,stderr:L}):v(new kb({fileName:t,code:x,signal:C,stdout:R,stderr:L}))})})}function X4(t,e){let r=sot.get(e);return typeof r<"u"?128+r:t??1}function oot(t,e,{configuration:r,report:o}){o.reportError(1,` ${zu(r,t!==null?{label:"Exit Code",value:_c(yt.NUMBER,t)}:{label:"Exit Signal",value:_c(yt.CODE,e)})}`)}var J4,z4,P1,kb,xd,sot,Db=Et(()=>{St();J4=$e(sT());S1();Yl();jl();z4=(o=>(o[o.Never=0]="Never",o[o.ErrorCode=1]="ErrorCode",o[o.Always=2]="Always",o))(z4||{}),P1=class extends zt{constructor({fileName:r,code:o,signal:a}){let n=Ke.create(V.cwd()),u=Mt(n,r,yt.PATH);super(1,`Child ${u} reported an error`,A=>{oot(o,a,{configuration:n,report:A})});this.code=X4(o,a)}},kb=class extends P1{constructor({fileName:r,code:o,signal:a,stdout:n,stderr:u}){super({fileName:r,code:o,signal:a});this.stdout=n,this.stderr=u}};xd=new Set;sot=new Map([["SIGINT",2],["SIGQUIT",3],["SIGKILL",9],["SIGTERM",15]])});function Qle(t){kle=t}function b1(){return typeof Z4>"u"&&(Z4=kle()),Z4}var Z4,kle,$4=Et(()=>{kle=()=>{throw new Error("Assertion failed: No libzip instance is available, and no factory was configured")}});var Fle=_((Qb,tU)=>{var aot=Object.assign({},ve("fs")),eU=function(){var t=typeof document<"u"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename<"u"&&(t=t||__filename),function(e){e=e||{};var r=typeof e<"u"?e:{},o,a;r.ready=new Promise(function(We,tt){o=We,a=tt});var n={},u;for(u in r)r.hasOwnProperty(u)&&(n[u]=r[u]);var A=[],p="./this.program",h=function(We,tt){throw tt},E=!1,I=!0,v="";function x(We){return r.locateFile?r.locateFile(We,v):v+We}var C,R,L,U;I&&(E?v=ve("path").dirname(v)+"/":v=__dirname+"/",C=function(tt,It){var nr=ii(tt);return nr?It?nr:nr.toString():(L||(L=aot),U||(U=ve("path")),tt=U.normalize(tt),L.readFileSync(tt,It?null:"utf8"))},R=function(tt){var It=C(tt,!0);return It.buffer||(It=new Uint8Array(It)),Ee(It.buffer),It},process.argv.length>1&&(p=process.argv[1].replace(/\\/g,"/")),A=process.argv.slice(2),h=function(We){process.exit(We)},r.inspect=function(){return"[Emscripten Module object]"});var J=r.print||console.log.bind(console),te=r.printErr||console.warn.bind(console);for(u in n)n.hasOwnProperty(u)&&(r[u]=n[u]);n=null,r.arguments&&(A=r.arguments),r.thisProgram&&(p=r.thisProgram),r.quit&&(h=r.quit);var ae=0,fe=function(We){ae=We},ce;r.wasmBinary&&(ce=r.wasmBinary);var me=r.noExitRuntime||!0;typeof WebAssembly!="object"&&Ti("no native wasm support detected");function he(We,tt,It){switch(tt=tt||"i8",tt.charAt(tt.length-1)==="*"&&(tt="i32"),tt){case"i1":return He[We>>0];case"i8":return He[We>>0];case"i16":return cp((We>>1)*2);case"i32":return Os((We>>2)*4);case"i64":return Os((We>>2)*4);case"float":return cu((We>>2)*4);case"double":return lp((We>>3)*8);default:Ti("invalid type for getValue: "+tt)}return null}var Be,we=!1,g;function Ee(We,tt){We||Ti("Assertion failed: "+tt)}function Se(We){var tt=r["_"+We];return Ee(tt,"Cannot call unknown function "+We+", make sure it is exported"),tt}function le(We,tt,It,nr,$){var ye={string:function(es){var bi=0;if(es!=null&&es!==0){var qo=(es.length<<2)+1;bi=Un(qo),At(es,bi,qo)}return bi},array:function(es){var bi=Un(es.length);return Re(es,bi),bi}};function Le(es){return tt==="string"?Ie(es):tt==="boolean"?Boolean(es):es}var pt=Se(We),ht=[],Tt=0;if(nr)for(var er=0;er=It)&&Te[nr];)++nr;return ee.decode(Te.subarray(We,nr))}function Fe(We,tt,It,nr){if(!(nr>0))return 0;for(var $=It,ye=It+nr-1,Le=0;Le=55296&&pt<=57343){var ht=We.charCodeAt(++Le);pt=65536+((pt&1023)<<10)|ht&1023}if(pt<=127){if(It>=ye)break;tt[It++]=pt}else if(pt<=2047){if(It+1>=ye)break;tt[It++]=192|pt>>6,tt[It++]=128|pt&63}else if(pt<=65535){if(It+2>=ye)break;tt[It++]=224|pt>>12,tt[It++]=128|pt>>6&63,tt[It++]=128|pt&63}else{if(It+3>=ye)break;tt[It++]=240|pt>>18,tt[It++]=128|pt>>12&63,tt[It++]=128|pt>>6&63,tt[It++]=128|pt&63}}return tt[It]=0,It-$}function At(We,tt,It){return Fe(We,Te,tt,It)}function H(We){for(var tt=0,It=0;It=55296&&nr<=57343&&(nr=65536+((nr&1023)<<10)|We.charCodeAt(++It)&1023),nr<=127?++tt:nr<=2047?tt+=2:nr<=65535?tt+=3:tt+=4}return tt}function at(We){var tt=H(We)+1,It=Li(tt);return It&&Fe(We,He,It,tt),It}function Re(We,tt){He.set(We,tt)}function ke(We,tt){return We%tt>0&&(We+=tt-We%tt),We}var xe,He,Te,Je,qe,b,w,P,y,F;function z(We){xe=We,r.HEAP_DATA_VIEW=F=new DataView(We),r.HEAP8=He=new Int8Array(We),r.HEAP16=Je=new Int16Array(We),r.HEAP32=b=new Int32Array(We),r.HEAPU8=Te=new Uint8Array(We),r.HEAPU16=qe=new Uint16Array(We),r.HEAPU32=w=new Uint32Array(We),r.HEAPF32=P=new Float32Array(We),r.HEAPF64=y=new Float64Array(We)}var X=r.INITIAL_MEMORY||16777216,Z,ie=[],Pe=[],Ne=[],ot=!1;function dt(){if(r.preRun)for(typeof r.preRun=="function"&&(r.preRun=[r.preRun]);r.preRun.length;)bt(r.preRun.shift());oo(ie)}function jt(){ot=!0,oo(Pe)}function $t(){if(r.postRun)for(typeof r.postRun=="function"&&(r.postRun=[r.postRun]);r.postRun.length;)Qr(r.postRun.shift());oo(Ne)}function bt(We){ie.unshift(We)}function an(We){Pe.unshift(We)}function Qr(We){Ne.unshift(We)}var mr=0,br=null,Wr=null;function Kn(We){mr++,r.monitorRunDependencies&&r.monitorRunDependencies(mr)}function Ns(We){if(mr--,r.monitorRunDependencies&&r.monitorRunDependencies(mr),mr==0&&(br!==null&&(clearInterval(br),br=null),Wr)){var tt=Wr;Wr=null,tt()}}r.preloadedImages={},r.preloadedAudios={};function Ti(We){r.onAbort&&r.onAbort(We),We+="",te(We),we=!0,g=1,We="abort("+We+"). Build with -s ASSERTIONS=1 for more info.";var tt=new WebAssembly.RuntimeError(We);throw a(tt),tt}var ps="data:application/octet-stream;base64,";function io(We){return We.startsWith(ps)}var Pi="data:application/octet-stream;base64,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QCAAKAJIIgEgASADaiADEAcaAkAgAyAAKAJsIgFNBEAgACABIANrNgJsDAELIABCADcCbAsgACAAKAJoIANrIgE2AmggACAAKAJYIANrNgJYIAEgACgChC5JBEAgACABNgKELgsgAEH8gAEoAgARAwAgAiADaiECCwJAIAAoAgAiASgCBCIERQ0AIAAoAjwhBSAAIAIgBCACIARJGyICBH8gACgCSCAAKAJoaiAFaiEFIAEgBCACazYCBAJAAkACQAJAIAEoAhwiBCgCFEEBaw4CAQACCyAEQaABaiAFIAEoAgAgAkHcgAEoAgARCAAMAgsgASABKAIwIAUgASgCACACQcSAASgCABEEADYCMAwBCyAFIAEoAgAgAhAHGgsgASABKAIAIAJqNgIAIAEgASgCCCACajYCCCAAKAI8BSAFCyACaiICNgI8AkAgACgChC4iASACakEDSQ0AIAAoAmggAWshAQJAIAAoAnRBgQhPBEAgACAAIAAoAkggAWoiAi0AACACLQABIAAoAnwRAAA2AlQMAQsgAUUNACAAIAFBAWsgACgChAERAgAaCyAAKAKELiAAKAI8IgJBAUZrIgRFDQAgACABIAQgACgCgAERBQAgACAAKAKELiAEazYChC4gACgCPCECCyACQYUCSw0AIAAoAgAoAgRFDQAgACgCMCEBDAELCwJAIAAoAkQiAiAAKAJAIgNNDQAgAAJ/IAAoAjwgACgCaGoiASADSwRAIAAoAkggAWpBACACIAFrIgNBggIgA0GCAkkbIgMQGSABIANqDAELIAFBggJqIgEgA00NASAAKAJIIANqQQAgAiADayICIAEgA2siAyACIANJGyIDEBkgACgCQCADags2AkALC50CAQF/AkAgAAJ/IAAoAqAuIgFBwABGBEAgACgCBCAAKAIQaiAAKQOYLjcAACAAQgA3A5guIAAgACgCEEEIajYCEEEADAELIAFBIE4EQCAAKAIEIAAoAhBqIAApA5guPgAAIAAgAEGcLmo1AgA3A5guIAAgACgCEEEEajYCECAAIAAoAqAuQSBrIgE2AqAuCyABQRBOBEAgACgCBCAAKAIQaiAAKQOYLj0AACAAIAAoAhBBAmo2AhAgACAAKQOYLkIQiDcDmC4gACAAKAKgLkEQayIBNgKgLgsgAUEISA0BIAAgACgCECIBQQFqNgIQ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KAJUIgEEfyABQQAgARAiEBkgACgCVAVBAAsQBiAAQQA2AlQLC9wMAgl/AX4jAEFAaiIGJAACQAJAAkACQAJAIAEoAjBBABAjIgVBAkZBACABKAI4QQAQIyIEQQFGGw0AIAVBAUZBACAEQQJGGw0AIAVBAkciAw0BIARBAkcNAQsgASABLwEMQYAQcjsBDEEAIQMMAQsgASABLwEMQf/vA3E7AQxBACEFIANFBEBB9eABIAEoAjAgAEEIahBpIgVFDQILIAJBgAJxBEAgBSEDDAELIARBAkcEQCAFIQMMAQtB9cYBIAEoAjggAEEIahBpIgNFBEAgBRAcDAILIAMgBTYCAAsgASABLwEMQf7/A3EgAS8BUiIFQQBHcjsBDAJAAkACQAJAAn8CQAJAIAEpAyhC/v///w9WDQAgASkDIEL+////D1YNACACQYAEcUUNASABKQNIQv////8PVA0BCyAFQYECa0H//wNxQQNJIQdBAQwBCyAFQYECa0H//wNxIQQgAkGACnFBgApHDQEgBEEDSSEHQQALIQkgBkIcEBciBEUEQCAAQQhqIgAEQCAAQQA2AgQgAEEONgIACyADEBwMBQsgAkGACHEhBQJAAkAgAkGAAnEEQAJAIAUNACABKQMgQv////8PVg0AIAEpAyhCgICAgBBUDQMLIAQgASkDKBAYIAEpAyAhDAwBCwJAAkACQCAFDQAgASkDIEL/////D1YNACABKQMoIgxC/////w9WDQEgASkDSEKAgICAEFQNBAsgASkDKCIMQv////8PVA0BCyAEIAwQGAsgASkDICIMQv////8PWgRAIAQgDBAYCyABKQNIIgxC/////w9UDQELIAQgDBAYCyAELQAARQRAIABBCGoiAARAIABBADYCBCAAQRQ2AgALIAQQCCADEBwMBQtBASEKQQEgBC0AAAR+IAQpAxAFQgALp0H//wNxIAYQRyEFIAQQCCAFIAM2AgAgBw0BDAILIAMhBSAEQQJLDQELIAZCBxAXIgRFBEAgAEEIaiIABEAgAEEANgIEIABBDjYCAAsgBRAcDAMLIARBAhANIARBhxJBAhAsIAQgAS0AUhBwIAQgAS8BEBANIAQtAABFBEAgAEEIaiIABEAgAEEANgIEIABBFDYCAAsgBBAIDAILQYGyAkEHIAYQRyEDIAQQCCADIAU2AgBBASEL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NgIEIABB7A42AhggGiEdDAMLIARB/wFxIgJBwABxRQRAIAggDSADLwECQQJ0aiAdp0F/IAJ0QX9zcUECdGoiAy0AASICayEIIB0gAq2IIR0gAy0AACIERQ0HDAELCyAEQSBxBEAgB0G//gA2AgQgASECDAgLIAdB0f4ANgIEIABB0A42AhggASECDAcLIB1BfyAGdEF/c62DIBt8IhunIQUgCCAEQQ9xIgNrIQggGiAErUIPg4ghHSABIBdrIgYgAjMBAiAaQX8gA3RBf3Otg3ynIgRPDQIgBCAGayIGIBlNDQEgBygCjEdFDQEgB0HR/gA2AgQgAEG5DDYCGAsgASECIAshBQwFCwJAIA5FBEAgDCARIAZraiEDDAELIAYgDk0EQCAMIA4gBmtqIQMMAQsgDCARIAYgDmsiBmtqIQMgBSAGTQ0AIAUgBmshBQJAAkAgASADTSABIA8gAWusIhogBq0iGyAaIBtUGyIapyIGaiICIANLcQ0AIAMgBmogAUsgASADT3ENACABIAMgBhAHGiACIQEMAQsgASADIAMgAWsiASABQR91IgFqIAFzIgIQByACaiEBIBogAq0iHn0iHFANACACIANqIQIDQAJAIBwgHiAcIB5UGyIbQiBUBEAgGyEaDAELIBsiGkIgfSIgQgWIQgF8QgODIh9QRQRAA0AgASACKQAANwAAIAEgAikAGDcAGCABIAIpABA3ABAgASACKQAINwAIIBpCIH0hGiACQSBqIQIgAUEgaiEBIB9CAX0iH0IAUg0ACwsgIELgAFQNAANAIAEgAikAADcAACABIAIpABg3ABggASACKQAQNwAQIAEgAikACDcACCABIAIpADg3ADggASACKQAwNwAwIAEgAikAKDcAKCABIAIpACA3ACAgASACKQBYNwBYIAEgAikAUDcAUCABIAIpAEg3AEggASACKQBANwBAIAEgAikAYDcAYCABIAIpAGg3AGggASACKQBwNwBwIAEgAikAeDcAeCACQYABaiECIAFBgAFqIQEgGkKAAX0iGkIfVg0ACwsgGkIQWgRAIAEgAikAADcAACABIAIpAAg3AAggGkIQfSEaIAJBEGohAiABQRBqIQELIBpCCFoEQCABIAIpAAA3AAAgGkIIfSEaIAJBCGohAiABQQhqIQELIBpCBFoEQCABIAIoAAA2AAAgGkIEfSEaIAJBBGohAiABQQRqIQELIBpCAloEQCABIAIvAAA7AAAgGkICfSEaIAJBAmohAiABQQJqIQELIBwgG30hHCAaUEUEQCABIAItAAA6AAAgAkEBaiECIAFBAWohAQsgHEIAUg0ACwsgDiEGIAwhAwsgBSAGSwRAAkACQCABIANNIAEgDyABa6wiGiAGrSIbIBogG1QbIhqnIglqIgIgA0txDQAgAyAJaiABSyABIANPcQ0AIAEgAyAJEAcaDAELIAEgAyADIAFrIgEgAUEfdSIBaiABcyIBEAcgAWohAiAaIAGtIh59IhxQDQAgASADaiEBA0ACQCAcIB4gHCAeVBsiG0IgVARAIBshGgwBCyAbIhpCIH0iIEIFiEIBfEIDgyIfUEUEQANAIAIgASkAADcAACACIAEpABg3ABggAiABKQAQNwAQIAIgASkACDcACCAaQiB9IRogAUEgaiEBIAJBIGohAiAfQgF9Ih9CAFINAAsLICBC4ABUDQADQCACIAEpAAA3AAAgAiABKQAYNwAYIAIgASkAEDcAECACIAEpAAg3AAggAiABKQA4NwA4IAIgASkAMDcAMCACIAEpACg3ACggAiABKQAgNwAgIAIgASkAWDcAWCACIAEpAFA3AFAgAiABKQBINwBIIAIgASkAQDcAQCACIAEpAGA3AGAgAiABKQBoNwBoIAIgASkAcDcAcCACIAEpAHg3AHggAUGAAWohASACQYABaiECIBpCgAF9IhpCH1YNAAsLIBpCEFoEQCACIAEpAAA3AAAgAiABKQAINwAIIBpCEH0hGiACQRBqIQIgAUEQaiEBCyAaQghaBEAgAiABKQAANwAAIBpCCH0hGiACQQhqIQIgAUEIaiEBCyAaQgRaBEAgAiABKAAANgAAIBpCBH0hGiACQQRqIQIgAUEEaiEBCyAaQgJaBEAgAiABLwAAOwAAIBpCAn0hGiACQQJqIQIgAUECaiEBCyAcIBt9IRwgGlBFBEAgAiABLQAAOgAAIAJBAWohAiABQQFqIQELIBxCAFINAAsLIAUgBmshAUEAIARrIQUCQCAEQQdLBEAgBCEDDAELIAEgBE0EQCAEIQMMAQsgAiAEayEFA0ACQCACIAUpAAA3AAAgBEEBdCEDIAEgBGshASACIARqIQIgBEEDSw0AIAMhBCABIANLDQELC0EAIANrIQULIAIgBWohBAJAIAUgDyACa6wiGiABrSIbIBogG1QbIhqnIgFIIAVBf0pxDQAgBUEBSCABIARqIAJLcQ0AIAIgBCABEAcgAWohAgwDCyACIAQgAyADQR91IgFqIAFzIgEQByABaiECIBogAa0iHn0iHFANAiABIARqIQEDQAJAIBwgHiAcIB5UGyIbQiBUBEAgGyEaDAELIBsiGkIgfSIgQgWIQgF8QgODIh9QRQRAA0AgAiABKQAANwAAIAIgASkAGDcAGCACIAEpABA3ABAgAiABKQAINwAIIBpCIH0hGiABQSBqIQEgAkEgaiECIB9CAX0iH0IAUg0ACwsgIELgAFQNAANAIAIgASkAADcAACACIAEpABg3ABggAiABKQAQNwAQIAIgASkACDcACCACIAEpADg3ADggAiABKQAwNwAwIAIgASkAKDcAKCACIAEpACA3ACAgAiABKQBYNwBYIAIgASkAUDcAUCACIAEpAEg3AEggAiABKQBANwBAIAIgASkAYDcAYCACIAEpAGg3AGggAiABKQBwNwBwIAIgASkAeDcAeCABQYABaiEBIAJBgAFqIQIgGkKAAX0iGkIfVg0ACwsgGkIQWgRAIAIgASkAADcAACACIAEpAAg3AAggGkIQfSEaIAJBEGohAiABQRBqIQELIBpCCFoEQCACIAEpAAA3AAAgGkIIfSEaIAJBCGohAiABQQhqIQELIBpCBFoEQCACIAEoAAA2AAAgGkIEfSEaIAJBBGohAiABQQRqIQELIBpCAloEQCACIAEvAAA7AAAgGkICfSEaIAJBAmohAiABQQJqIQELIBwgG30hHCAaUEUEQCACIAEtAAA6AAAgAkEBaiECIAFBAWohAQsgHFBFDQALDAILAkAgASADTSABIA8gAWusIhogBa0iGyAaIBtUGyIapyIEaiICIANLcQ0AIAMgBGogAUsgASADT3ENACABIAMgBBAHGgwCCyABIAMgAyABayIBIAFBH3UiAWogAXMiARAHIAFqIQIgGiABrSIefSIcUA0BIAEgA2ohAQNAAkAgHCAeIBwgHlQbIhtCIFQEQCAbIRoMAQsgGyIaQiB9IiBCBYhCAXxCA4MiH1BFBEADQCACIAEpAAA3AAAgAiABKQAYNwAYIAIgASkAEDcAECACIAEpAAg3AAggGkIgfSEaIAFBIGohASACQSBqIQIgH0IBfSIfQgBSDQALCyAgQuAAVA0AA0AgAiABKQAANwAAIAIgASkAGDcAGCACIAEpABA3ABAgAiABKQAINwAIIAIgASkAODcAOCACIAEpADA3ADAgAiABKQAoNwAoIAIgASkAIDcAICACIAEpAFg3AFggAiABKQBQNwBQIAIgASkASDcASCACIAEpAEA3AEAgAiABKQBgNwBgIAIgASkAaDcAaCACIAEpAHA3AHAgAiABKQB4NwB4IAFBgAFqIQEgAkGAAWohAiAaQoABfSIaQh9WDQALCyAaQhBaBEAgAiABKQAANwAAIAIgASkACDcACCAaQhB9IRogAkEQaiECIAFBEGohAQsgGkIIWgRAIAIgASkAADcAACAaQgh9IRogAkEIaiECIAFBCGohAQsgGkIEWgRAIAIgASgAADYAACAaQgR9IRogAkEEaiECIAFBBGohAQsgGkICWgRAIAIgAS8AADsAACAaQgJ9IRogAkECaiECIAFBAmohAQsgHCAbfSEcIBpQRQRAIAIgAS0AADoAACACQQFqIQIgAUEBaiEBCyAcUEUNAAsMAQsCQAJAIBYEQAJAIAQgBUkEQCAHKAKYRyAESw0BCyABIARrIQMCQEEAIARrIgVBf0ogDyABa6wiGiAbIBogG1QbIhqnIgIgBUpxDQAgBUEBSCACIANqIAFLcQ0AIAEgAyACEAcgAmohAgwFCyABIAMgBCAEQR91IgFqIAFzIgEQByABaiECIBogAa0iHn0iHFANBCABIANqIQEDQAJAIBwgHiAcIB5UGyIbQiBUBEAgGyEaDAELIBsiGkIgfSIgQgWIQgF8QgODIh9QRQRAA0AgAiABKQAANwAAIAIgASkAGDcAGCACIAEpABA3ABAgAiABKQAINwAIIBpCIH0hGiABQSBqIQEgAkEgaiECIB9CAX0iH0IAUg0ACwsgIELgAFQNAANAIAIgASkAADcAACACIAEpABg3ABggAiABKQAQNwAQIAIgASkACDcACCACIAEpADg3ADggAiABKQAwNwAwIAIgASkAKDcAKCACIAEpACA3ACAgAiABKQBYNwBYIAIgASkAUDcAUCACIAEpAEg3AEggAiABKQBANwBAIAIgASkAYDcAYCACIAEpAGg3AGggAiABKQBwNwBwIAIgASkAeDcAeCABQYABaiEBIAJBgAFqIQIgGkKAAX0iGkIfVg0ACwsgGkIQWgRAIAIgASkAADcAACACIAEpAAg3AAggGkIQfSEaIAJBEGohAiABQRBqIQELIBpCCFoEQCACIAEpAAA3AAAgGkIIfSEaIAJBCGohAiABQQhqIQELIBpCBFoEQCACIAEoAAA2AAAgGkIEfSEaIAJBBGohAiABQQRqIQELIBpCAloEQCACIAEvAAA7AAAgGkICfSEaIAJBAmohAiABQQJqIQELIBwgG30hHCAaUEUEQCACIAEtAAA6AAAgAkEBaiECIAFBAWohAQsgHFBFDQALDAQLIBAgAWsiCUEBaiIGIAUgBSAGSxshAyABIARrIQIgAUEHcUUNAiADRQ0CIAEgAi0AADoAACACQQFqIQIgAUEBaiIGQQdxQQAgA0EBayIFGw0BIAYhASAFIQMgCSEGDAILAkAgBCAFSQRAIAcoAphHIARLDQELIAEgASAEayIGKQAANwAAIAEgBUEBa0EHcUEBaiIDaiECIAUgA2siBEUNAyADIAZqIQEDQCACIAEpAAA3AAAgAUEIaiEBIAJBCGohAiAEQQhrIgQNAAsMAwsgASAEIAUQPyECDAILIAEgAi0AADoAASAJQQFrIQYgA0ECayEFIAJBAWohAgJAIAFBAmoiCkEHcUUNACAFRQ0AIAEgAi0AADoAAiAJQQJrIQYgA0EDayEFIAJBAWohAgJAIAFBA2oiCkEHcUUNACAFRQ0AIAEgAi0AADoAAyAJQQNrIQYgA0EEayEFIAJBAWohAgJAIAFBBGoiCkEHcUUNACAFRQ0AIAEgAi0AADoABCAJQQRrIQYgA0EFayEFIAJBAWohAgJAIAFBBWoiCkEHcUUNACAFRQ0AIAEgAi0AADoABSAJQQVrIQYgA0EGayEFIAJBAWohAgJAIAFBBmoiCkEHcUUNACAFRQ0AIAEgAi0AADoABiAJQQZrIQYgA0EHayEFIAJBAWohAgJAIAFBB2oiCkEHcUUNACAFRQ0AIAEgAi0AADoAByAJQQdrIQYgA0EIayEDIAFBCGohASACQQFqIQIMBgsgCiEBIAUhAwwFCyAKIQEgBSEDDAQLIAohASAFIQMMAwsgCiEBIAUhAwwCCyAKIQEgBSEDDAELIAohASAFIQMLAkACQCAGQRdNBEAgA0UNASADQQFrIQUgA0EHcSIEBEADQCABIAItAAA6AAAgA0EBayEDIAFBAWohASACQQFqIQIgBEEBayIEDQALCyAFQQdJDQEDQCABIAItAAA6AAAgASACLQABOgABIAEgAi0AAjoAAiABIAItAAM6AAMgASACLQAEOgAEIAEgAi0ABToABSABIAItAAY6AAYgASACLQAHOgAHIAFBCGohASACQQhqIQIgA0EIayIDDQALDAELIAMNAQsgASECDAELIAEgBCADED8hAgsgCyEFDAELIAEgAy0AAjoAACABQQFqIQILIAUgFE8NACACIBNJDQELCyAAIAI2AgwgACAFIAhBA3ZrIgE2AgAgACATIAJrQYMCajYCECAAIBQgAWtBDmo2AgQgByAIQQdxIgA2AogBIAcgHUJ/IACthkJ/hYM+AoQBC+cFAQR/IAMgAiACIANLGyEEIAAgAWshAgJAIABBB3FFDQAgBEUNACAAIAItAAA6AAAgA0EBayEGIAJBAWohAiAAQQFqIgdBB3FBACAEQQFrIgUbRQRAIAchACAFIQQgBiEDDAELIAAgAi0AADoAASADQQJrIQYgBEECayEFIAJBAWohAgJAIABBAmoiB0EHcUUNACAFRQ0AIAAgAi0AADoAAiADQQNrIQYgBEEDayEFIAJBAWohAgJAIABBA2oiB0EHcUUNACAFRQ0AIAAgAi0AADoAAyADQQRrIQYgBEEEayEFIAJBAWohAgJAIABBBGoiB0EHcUUNACAFRQ0AIAAgAi0AADoABCADQQVrIQYgBEEFayEFIAJBAWohAgJAIABBBWoiB0EHcUUNACAFRQ0AIAAgAi0AADoABSADQQZrIQYgBEEGayEFIAJBAWohAgJAIABBBmoiB0EHcUUNACAFRQ0AIAAgAi0AADoABiADQQdrIQYgBEEHayEFIAJBAWohAgJAIABBB2oiB0EHcUUNACAFRQ0AIAAgAi0AADoAByADQQhrIQMgBEEIayEEIABBCGohACACQQFqIQIMBgsgByEAIAUhBCAGIQMMBQsgByEAIAUhBCAGIQMMBAsgByEAIAUhBCAGIQMMAwsgByEAIAUhBCAGIQMMAgsgByEAIAUhBCAGIQMMAQsgByEAIAUhBCAGIQMLAkAgA0EXTQRAIARFDQEgBEEBayEBIARBB3EiAwRAA0AgACACLQAAOgAAIARBAWshBCAAQQFqIQAgAkEBaiECIANBAWsiAw0ACwsgAUEHSQ0BA0AgACACLQAAOgAAIAAgAi0AAToAASAAIAItAAI6AAIgACACLQADOgADIAAgAi0ABDoABCAAIAItAAU6AAUgACACLQAGOgAGIAAgAi0ABzoAByAAQQhqIQAgAkEIaiECIARBCGsiBA0ACwwBCyAERQ0AIAAgASAEED8hAAsgAAvyCAEXfyAAKAJoIgwgACgCMEGGAmsiBWtBACAFIAxJGyENIAAoAnQhAiAAKAKQASEPIAAoAkgiDiAMaiIJIAAoAnAiBUECIAUbIgVBAWsiBmoiAy0AASESIAMtAAAhEyAGIA5qIQZBAyEDIAAoApQBIRYgACgCPCEUIAAoAkwhECAAKAI4IRECQAJ/IAVBA0kEQCANIQggDgwBCyAAIABBACAJLQABIAAoAnwRAAAgCS0AAiAAKAJ8EQAAIQoDQCAAIAogAyAJai0AACAAKAJ8EQAAIQogACgCUCAKQQF0ai8BACIIIAEgCCABQf//A3FJIggbIQEgA0ECayAHIAgbIQcgA0EBaiIDIAVNDQALIAFB//8DcSAHIA1qIghB//8DcU0NASAGIAdB//8DcSIDayEGIA4gA2sLIQMCQAJAIAwgAUH//wNxTQ0AIAIgAkECdiAFIA9JGyEKIA1B//8DcSEVIAlBAmohDyAJQQRrIRcDQAJAAkAgBiABQf//A3EiC2otAAAgE0cNACAGIAtBAWoiAWotAAAgEkcNACADIAtqIgItAAAgCS0AAEcNACABIANqLQAAIAktAAFGDQELIApBAWsiCkUNAiAQIAsgEXFBAXRqLwEAIgEgCEH//wNxSw0BDAILIAJBAmohAUEAIQQgDyECAkADQCACLQAAIAEtAABHDQEgAi0AASABLQABRwRAIARBAXIhBAwCCyACLQACIAEtAAJHBEAgBEECciEEDAILIAItAAMgAS0AA0cEQCAEQQNyIQQMAgsgAi0ABCABLQAERwRAIARBBHIhBAwCCyACLQAFIAEtAAVHBEAgBEEFciEEDAILIAItAAYgAS0ABkcEQCAEQQZyIQQMAgsgAi0AByABLQAHRwRAIARBB3IhBAwCCyABQQhqIQEgAkEIaiECIARB+AFJIRggBEEIaiEEIBgNAAtBgAIhBAsCQAJAIAUgBEECaiICSQRAIAAgCyAHQf//A3FrIgY2AmwgAiAUSwRAIBQPCyACIBZPBEAgAg8LIAkgBEEBaiIFaiIBLQABIRIgAS0AACETAkAgAkEESQ0AIAIgBmogDE8NACAGQf//A3EhCCAEQQFrIQtBACEDQQAhBwNAIBAgAyAIaiARcUEBdGovAQAiASAGQf//A3FJBEAgAyAVaiABTw0IIAMhByABIQYLIANBAWoiAyALTQ0ACyAAIAAgAEEAIAIgF2oiAS0AACAAKAJ8EQAAIAEtAAEgACgCfBEAACABLQACIAAoAnwRAAAhASAAKAJQIAFBAXRqLwEAIgEgBkH//wNxTwRAIAdB//8DcSEDIAYhAQwDCyAEQQJrIgdB//8DcSIDIBVqIAFPDQYMAgsgAyAFaiEGIAIhBQsgCkEBayIKRQ0DIBAgCyARcUEBdGovAQAiASAIQf//A3FNDQMMAQsgByANaiEIIA4gA2siAyAFaiEGIAIhBQsgDCABQf//A3FLDQALCyAFDwsgAiEFCyAFIAAoAjwiACAAIAVLGwuGBQETfyAAKAJ0IgMgA0ECdiAAKAJwIgNBAiADGyIDIAAoApABSRshByAAKAJoIgogACgCMEGGAmsiBWtB//8DcUEAIAUgCkkbIQwgACgCSCIIIApqIgkgA0EBayICaiIFLQABIQ0gBS0AACEOIAlBAmohBSACIAhqIQsgACgClAEhEiAAKAI8IQ8gACgCTCEQIAAoAjghESAAKAKIAUEFSCETA0ACQCAKIAFB//8DcU0NAANAAkACQCALIAFB//8DcSIGai0AACAORw0AIAsgBkEBaiIBai0AACANRw0AIAYgCGoiAi0AACAJLQAARw0AIAEgCGotAAAgCS0AAUYNAQsgB0EBayIHRQ0CIAwgECAGIBFxQQF0ai8BACIBSQ0BDAILCyACQQJqIQRBACECIAUhAQJAA0AgAS0AACAELQAARw0BIAEtAAEgBC0AAUcEQCACQQFyIQIMAgsgAS0AAiAELQACRwRAIAJBAnIhAgwCCyABLQADIAQtAANHBEAgAkEDciECDAILIAEtAAQgBC0ABEcEQCACQQRyIQIMAgsgAS0ABSAELQAFRwRAIAJBBXIhAgwCCyABLQAGIAQtAAZHBEAgAkEGciECDAILIAEtAAcgBC0AB0cEQCACQQdyIQIMAgsgBEEIaiEEIAFBCGohASACQfgBSSEUIAJBCGohAiAUDQALQYACIQILAkAgAyACQQJqIgFJBEAgACAGNgJsIAEgD0sEQCAPDwsgASASTwRAIAEPCyAIIAJBAWoiA2ohCyADIAlqIgMtAAEhDSADLQAAIQ4gASEDDAELIBMNAQsgB0EBayIHRQ0AIAwgECAGIBFxQQF0ai8BACIBSQ0BCwsgAwvLAQECfwJAA0AgAC0AACABLQAARw0BIAAtAAEgAS0AAUcEQCACQQFyDwsgAC0AAiABLQACRwRAIAJBAnIPCyAALQADIAEtAANHBEAgAkEDcg8LIAAtAAQgAS0ABEcEQCACQQRyDwsgAC0ABSABLQAFRwRAIAJBBXIPCyAALQAGIAEtAAZHBEAgAkEGcg8LIAAtAAcgAS0AB0cEQCACQQdyDwsgAUEIaiEBIABBCGohACACQfgBSSEDIAJBCGohAiADDQALQYACIQILIAIL5wwBB38gAEF/cyEAIAJBF08EQAJAIAFBA3FFDQAgAS0AACAAQf8BcXNBAnRB0BhqKAIAIABBCHZzIQAgAkEBayIEQQAgAUEBaiIDQQNxG0UEQCAEIQIgAyEBDAELIAEtAAEgAEH/AXFzQQJ0QdAYaigCACAAQQh2cyEAIAFBAmohAwJAIAJBAmsiBEUNACADQQNxRQ0AIAEtAAIgAEH/AXFzQQJ0QdAYaigCACAAQQh2cyEAIAFBA2ohAwJAIAJBA2siBEUNACADQQNxRQ0AIAEtAAMgAEH/AXFzQQJ0QdAYaigCACAAQQh2cyEAIAFBBGohASACQQRrIQIMAgsgBCECIAMhAQwBCyAEIQIgAyEBCyACQRRuIgNBbGwhCQJAIANBAWsiCEUEQEEAIQQMAQsgA0EUbCABakEUayEDQQAhBANAIAEoAhAgB3MiB0EWdkH8B3FB0DhqKAIAIAdBDnZB/AdxQdAwaigCACAHQQZ2QfwHcUHQKGooAgAgB0H/AXFBAnRB0CBqKAIAc3NzIQcgASgCDCAGcyIGQRZ2QfwHcUHQOGooAgAgBkEOdkH8B3FB0DBqKAIAIAZBBnZB/AdxQdAoaigCACAGQf8BcUECdEHQIGooAgBzc3MhBiABKAIIIAVzIgVBFnZB/AdxQdA4aigCACAFQQ52QfwHcUHQMGooAgAgBUEGdkH8B3FB0ChqKAIAIAVB/wFxQQJ0QdAgaigCAHNzcyEFIAEoAgQgBHMiBEEWdkH8B3FB0DhqKAIAIARBDnZB/AdxQdAwaigCACAEQQZ2QfwHcUHQKGooAgAgBEH/AXFBAnRB0CBqKAIAc3NzIQQgASgCACAAcyIAQRZ2QfwHcUHQOGooAgAgAEEOdkH8B3FB0DBqKAIAIABBBnZB/AdxQdAoaigCACAAQf8BcUECdEHQIGooAgBzc3MhACABQRRqIQEgCEEBayIIDQALIAMhAQsgAiAJaiECIAEoAhAgASgCDCABKAIIIAEoAgQgASgCACAAcyIAQQh2IABB/wFxQQJ0QdAYaigCAHMiAEEIdiAAQf8BcUECdEHQGGooAgBzIgBBCHYgAEH/AXFBAnRB0BhqKAIAcyIAQf8BcUECdEHQGGooAgAgBHNzIABBCHZzIgBBCHYgAEH/AXFBAnRB0BhqKAIAcyIAQQh2IABB/wFxQQJ0QdAYaigCAHMiAEEIdiAAQf8BcUECdEHQGGooAgBzIgBB/wFxQQJ0QdAYaigCACAFc3MgAEEIdnMiAEEIdiAAQf8BcUECdEHQGGooAgBzIgBBCHYgAEH/AXFBAnRB0BhqKAIAcyIAQQh2IABB/wFxQQJ0QdAYaigCAHMiAEH/AXFBAnRB0BhqKAIAIAZzcyAAQQh2cyIAQQh2IABB/wFxQQJ0QdAYaigCAHMiAEEIdiAAQf8BcUECdEHQGGooAgBzIgBBCHYgAEH/AXFBAnRB0BhqKAIAcyIAQf8BcUECdEHQGGooAgAgB3NzIABBCHZzIgBBCHYgAEH/AXFBAnRB0BhqKAIAcyIAQQh2IABB/wFxQQJ0QdAYaigCAHMiAEEIdiAAQf8BcUECdEHQGGooAgBzIgBBCHYgAEH/AXFBAnRB0BhqKAIAcyEAIAFBFGohAQsgAkEHSwRAA0AgAS0AByABLQAGIAEtAAUgAS0ABCABLQADIAEtAAIgAS0AASABLQAAIABB/wFxc0ECdEHQGGooAgAgAEEIdnMiAEH/AXFzQQJ0QdAYaigCACAAQQh2cyIAQf8BcXNBAnRB0BhqKAIAIABBCHZzIgBB/wFxc0ECdEHQGGooAgAgAEEIdnMiAEH/AXFzQQJ0QdAYaigCACAAQQh2cyIAQf8BcXNBAnRB0BhqKAIAIABBCHZzIgBB/wFxc0ECdEHQGGooAgAgAEEIdnMiAEH/AXFzQQJ0QdAYaigCACAAQQh2cyEAIAFBCGohASACQQhrIgJBB0sNAAsLAkAgAkUNACACQQFxBH8gAS0AACAAQf8BcXNBAnRB0BhqKAIAIABBCHZzIQAgAUEBaiEBIAJBAWsFIAILIQMgAkEBRg0AA0AgAS0AASABLQAAIABB/wFxc0ECdEHQGGooAgAgAEEIdnMiAEH/AXFzQQJ0QdAYaigCACAAQQh2cyEAIAFBAmohASADQQJrIgMNAAsLIABBf3MLwgIBA38jAEEQayIIJAACfwJAIAAEQCAEDQEgBVANAQsgBgRAIAZBADYCBCAGQRI2AgALQQAMAQtBgAEQCSIHRQRAIAYEQCAGQQA2AgQgBkEONgIAC0EADAELIAcgATcDCCAHQgA3AwAgB0EoaiIJECogByAFNwMYIAcgBDYCECAHIAM6AGAgB0EANgJsIAdCADcCZCAAKQMYIQEgCEF/NgIIIAhCjoCAgPAANwMAIAdBECAIECQgAUL/gQGDhCIBNwNwIAcgAadBBnZBAXE6AHgCQCACRQ0AIAkgAhBgQX9KDQAgBxAGQQAMAQsgBhBfIgIEQCAAIAAoAjBBAWo2AjAgAiAHNgIIIAJBATYCBCACIAA2AgAgAkI/IAAgB0EAQgBBDkEBEQoAIgEgAUIAUxs3AxgLIAILIQAgCEEQaiQAIAALYgEBf0E4EAkiAUUEQCAABEAgAEEANgIEIABBDjYCAAtBAA8LIAFBADYCCCABQgA3AwAgAUIANwMgIAFCgICAgBA3AiwgAUEAOgAoIAFBADYCFCABQgA3AgwgAUEAOwE0IAELuwEBAX4gASkDACICQgKDUEUEQCAAIAEpAxA3AxALIAJCBINQRQRAIAAgASkDGDcDGAsgAkIIg1BFBEAgACABKQMgNwMgCyACQhCDUEUEQCAAIAEoAig2AigLIAJCIINQRQRAIAAgASgCLDYCLAsgAkLAAINQRQRAIAAgAS8BMDsBMAsgAkKAAYNQRQRAIAAgAS8BMjsBMgsgAkKAAoNQRQRAIAAgASgCNDYCNAsgACAAKQMAIAKENwMAQQALGQAgAUUEQEEADwsgACABKAIAIAEzAQQQGws3AQJ/IABBACABG0UEQCAAIAFGDwsgAC8BBCIDIAEvAQRGBH8gACgCACABKAIAIAMQPQVBAQtFCyIBAX8gAUUEQEEADwsgARAJIgJFBEBBAA8LIAIgACABEAcLKQAgACABIAIgAyAEEEUiAEUEQEEADwsgACACQQAgBBA1IQEgABAGIAELcQEBfgJ/AkAgAkJ/VwRAIAMEQCADQQA2AgQgA0EUNgIACwwBCyAAIAEgAhARIgRCf1cEQCADBEAgAyAAKAIMNgIAIAMgACgCEDYCBAsMAQtBACACIARXDQEaIAMEQCADQQA2AgQgA0ERNgIACwtBfwsLNQAgACABIAJBABAmIgBFBEBBfw8LIAMEQCADIAAtAAk6AAALIAQEQCAEIAAoAkQ2AgALQQAL/AECAn8BfiMAQRBrIgMkAAJAIAAgA0EOaiABQYAGQQAQRiIARQRAIAIhAAwBCyADLwEOIgFBBUkEQCACIQAMAQsgAC0AAEEBRwRAIAIhAAwBCyAAIAGtQv//A4MQFyIBRQRAIAIhAAwBCyABEH0aAkAgARAVIAIEfwJ/IAIvAQQhAEEAIAIoAgAiBEUNABpBACAEIABB1IABKAIAEQAACwVBAAtHBEAgAiEADAELIAEgAS0AAAR+IAEpAwggASkDEH0FQgALIgVC//8DgxATIAWnQf//A3FBgBBBABA1IgBFBEAgAiEADAELIAIQEAsgARAICyADQRBqJAAgAAvmDwIIfwJ+IwBB4ABrIgckAEEeQS4gAxshCwJAAkAgAgRAIAIiBSIGLQAABH4gBikDCCAGKQMQfQVCAAsgC61aDQEgBARAIARBADYCBCAEQRM2AgALQn8hDQwCCyABIAutIAcgBBAtIgUNAEJ/IQ0MAQsgBUIEEBMoAABBoxJBqBIgAxsoAABHBEAgBARAIARBADYCBCAEQRM2AgALQn8hDSACDQEgBRAIDAELIABCADcDICAAQQA2AhggAEL/////DzcDECAAQQA7AQwgAEG/hig2AgggAEEBOgAGIABBADsBBCAAQQA2AgAgAEIANwNIIABBgIDYjXg2AkQgAEIANwMoIABCADcDMCAAQgA3AzggAEFAa0EAOwEAIABCADcDUCAAIAMEf0EABSAFEAwLOwEIIAAgBRAMOwEKIAAgBRAMOwEMIAAgBRAMNgIQIAUQDCEGIAUQDCEJIAdBADYCWCAHQgA3A1AgB0IANwNIIAcgCUEfcTYCPCAHIAZBC3Y2AjggByAGQQV2QT9xNgI0IAcgBkEBdEE+cTYCMCAHIAlBCXZB0ABqNgJEIAcgCUEFdkEPcUEBazYCQCAAIAdBMGoQBTYCFCAAIAUQFTYCGCAAIAUQFa03AyAgACAFEBWtNwMoIAUQDCEIIAUQDCEGIAACfiADBEBBACEJIABBADYCRCAAQQA7AUAgAEEANgI8QgAMAQsgBRAMIQkgACAFEAw2AjwgACAFEAw7AUAgACAFEBU2AkQgBRAVrQs3A0ggBS0AAEUEQCAEBEAgBEEANgIEIARBFDYCAAtCfyENIAINASAFEAgMAQsCQCAALwEMIgpBAXEEQCAKQcAAcQRAIABB//8DOwFSDAILIABBATsBUgwBCyAAQQA7AVILIABBADYCOCAAQgA3AzAgBiAIaiAJaiEKAkAgAgRAIAUtAAAEfiAFKQMIIAUpAxB9BUIACyAKrVoNASAEBEAgBEEANgIEIARBFTYCAAtCfyENDAILIAUQCCABIAqtQQAgBBAtIgUNAEJ/IQ0MAQsCQCAIRQ0AIAAgBSABIAhBASAEEGQiCDYCMCAIRQRAIAQoAgBBEUYEQCAEBEAgBEEANgIEIARBFTYCAAsLQn8hDSACDQIgBRAIDAILIAAtAA1BCHFFDQAgCEECECNBBUcNACAEBEAgBEEANgIEIARBFTYCAAtCfyENIAINASAFEAgMAQsgAEE0aiEIAkAgBkUNACAFIAEgBkEAIAQQRSIMRQRAQn8hDSACDQIgBRAIDAILIAwgBkGAAkGABCADGyAIIAQQbiEGIAwQBiAGRQRAQn8hDSACDQIgBRAIDAILIANFDQAgAEEBOgAECwJAIAlFDQAgACAFIAEgCUEAIAQQZCIBNgI4IAFFBEBCfyENIAINAiAFEAgMAgsgAC0ADUEIcUUNACABQQIQI0EFRw0AIAQEQCAEQQA2AgQgBEEVNgIAC0J/IQ0gAg0BIAUQCAwBCyAAIAAoAjRB9eABIAAoAjAQZzYCMCAAIAAoAjRB9cYBIAAoAjgQZzYCOAJAAkAgACkDKEL/////D1ENACAAKQMgQv////8PUQ0AIAApA0hC/////w9SDQELAkACQAJAIAgoAgAgB0EwakEBQYACQYAEIAMbIAQQRiIBRQRAIAJFDQEMAgsgASAHMwEwEBciAUUEQCAEBEAgBEEANgIEIARBDjYCAAsgAkUNAQwCCwJAIAApAyhC/////w9RBEAgACABEB03AygMAQsgA0UNAEEAIQYCQCABKQMQIg5CCHwiDSAOVA0AIAEpAwggDVQNACABIA03AxBBASEGCyABIAY6AAALIAApAyBC/////w9RBEAgACABEB03AyALAkAgAw0AIAApA0hC/////w9RBEAgACABEB03A0gLIAAoAjxB//8DRw0AIAAgARAVNgI8CyABLQAABH8gASkDECABKQMIUQVBAAsNAiAEBEAgBEEANgIEIARBFTYCAAsgARAIIAINAQsgBRAIC0J/IQ0MAgsgARAICyAFLQAARQRAIAQEQCAEQQA2AgQgBEEUNgIAC0J/IQ0gAg0BIAUQCAwBCyACRQRAIAUQCAtCfyENIAApA0hCf1cEQCAEBEAgBEEWNgIEIARBBDYCAAsMAQsjAEEQayIDJABBASEBAkAgACgCEEHjAEcNAEEAIQECQCAAKAI0IANBDmpBgbICQYAGQQAQRiICBEAgAy8BDiIFQQZLDQELIAQEQCAEQQA2AgQgBEEVNgIACwwBCyACIAWtQv//A4MQFyICRQRAIAQEQCAEQQA2AgQgBEEUNgIACwwBC0EBIQECQAJAAkAgAhAMQQFrDgICAQALQQAhASAEBEAgBEEANgIEIARBGDYCAAsgAhAIDAILIAApAyhCE1YhAQsgAkICEBMvAABBwYoBRwRAQQAhASAEBEAgBEEANgIEIARBGDYCAAsgAhAIDAELIAIQfUEBayIFQf8BcUEDTwRAQQAhASAEBEAgBEEANgIEIARBGDYCAAsgAhAIDAELIAMvAQ5BB0cEQEEAIQEgBARAIARBADYCBCAEQRU2AgALIAIQCAwBCyAAIAE6AAYgACAFQf8BcUGBAmo7AVIgACACEAw2AhAgAhAIQQEhAQsgA0EQaiQAIAFFDQAgCCAIKAIAEG02AgAgCiALaq0hDQsgB0HgAGokACANC4ECAQR/IwBBEGsiBCQAAkAgASAEQQxqQcAAQQAQJSIGRQ0AIAQoAgxBBWoiA0GAgARPBEAgAgRAIAJBADYCBCACQRI2AgALDAELQQAgA60QFyIDRQRAIAIEQCACQQA2AgQgAkEONgIACwwBCyADQQEQcCADIAEEfwJ/IAEvAQQhBUEAIAEoAgAiAUUNABpBACABIAVB1IABKAIAEQAACwVBAAsQEiADIAYgBCgCDBAsAn8gAy0AAEUEQCACBEAgAkEANgIEIAJBFDYCAAtBAAwBCyAAIAMtAAAEfiADKQMQBUIAC6dB//8DcSADKAIEEEcLIQUgAxAICyAEQRBqJAAgBQvgAQICfwF+QTAQCSICRQRAIAEEQCABQQA2AgQgAUEONgIAC0EADwsgAkIANwMIIAJBADYCACACQgA3AxAgAkIANwMYIAJCADcDICACQgA3ACUgAFAEQCACDwsCQCAAQv////8AVg0AIACnQQR0EAkiA0UNACACIAM2AgBBACEBQgEhBANAIAMgAUEEdGoiAUIANwIAIAFCADcABSAAIARSBEAgBKchASAEQgF8IQQMAQsLIAIgADcDCCACIAA3AxAgAg8LIAEEQCABQQA2AgQgAUEONgIAC0EAEBAgAhAGQQAL7gECA38BfiMAQRBrIgQkAAJAIARBDGpCBBAXIgNFBEBBfyECDAELAkAgAQRAIAJBgAZxIQUDQAJAIAUgASgCBHFFDQACQCADKQMIQgBUBEAgA0EAOgAADAELIANCADcDECADQQE6AAALIAMgAS8BCBANIAMgAS8BChANIAMtAABFBEAgAEEIaiIABEAgAEEANgIEIABBFDYCAAtBfyECDAQLQX8hAiAAIARBDGpCBBAbQQBIDQMgATMBCiIGUA0AIAAgASgCDCAGEBtBAEgNAwsgASgCACIBDQALC0EAIQILIAMQCAsgBEEQaiQAIAILPAEBfyAABEAgAUGABnEhAQNAIAEgACgCBHEEQCACIAAvAQpqQQRqIQILIAAoAgAiAA0ACwsgAkH//wNxC5wBAQN/IABFBEBBAA8LIAAhAwNAAn8CQAJAIAAvAQgiAUH04AFNBEAgAUEBRg0BIAFB9cYBRg0BDAILIAFBgbICRg0AIAFB9eABRw0BCyAAKAIAIQEgAEEANgIAIAAoAgwQBiAAEAYgASADIAAgA0YbIQMCQCACRQRAQQAhAgwBCyACIAE2AgALIAEMAQsgACICKAIACyIADQALIAMLsgQCBX8BfgJAAkACQCAAIAGtEBciAQRAIAEtAAANAUEAIQAMAgsgBARAIARBADYCBCAEQQ42AgALQQAPC0EAIQADQCABLQAABH4gASkDCCABKQMQfQVCAAtCBFQNASABEAwhByABIAEQDCIGrRATIghFBEBBACECIAQEQCAEQQA2AgQgBEEVNgIACyABEAggAEUNAwNAIAAoAgAhASAAKAIMEAYg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DCAAQRg2AggLDAMLIAAgBiAFLwFqQQAgBCABEQYAIQEgBhALIAFFDQILAkAgDUUEQCABIQMMAQsgACABIAUvAWgQgQEhAyABEAsgA0UNAQsCQCAJRSAMckUEQCADIQEMAQsgACADQQEQgAEhASADEAsgAUUNAQsgASEDDAELQQAhAwsgBUHwAGokACADC4UBAQF/IAFFBEAgAEEIaiIABEAgAEEANgIEIABBEjYCAAtBAA8LQTgQCSIDRQRAIABBCGoiAARAIABBADYCBCAAQQ42AgALQQAPCyADQQA2AhAgA0IANwIIIANCADcDKCADQQA2AgQgAyACNgIAIANCADcDGCADQQA2AjAgACABQTsgAxBCCw8AIAAgASACQQBBABCCAQusAgECfyABRQRAIABBCGoiAARAIABBADYCBCAAQRI2AgALQQAPCwJAIAJBfUsNACACQf//A3FBCEYNACAAQQhqIgAEQCAAQQA2AgQgAEEQNgIAC0EADwsCQEGwwAAQCSIFBEAgBUEANgIIIAVCADcCACAFQYiBAUGogQEgAxs2AqhAIAUgAjYCFCAFIAM6ABAgBUEAOgAPIAVBADsBDCAFIAMgAkF9SyIGcToADiAFQQggAiAGG0H//wNxIAQgBUGIgQFBqIEBIAMbKAIAEQAAIgI2AqxAIAINASAFEDEgBRAGCyAAQQhqIgAEQCAAQQA2AgQgAEEONgIAC0EADwsgACABQTogBRBCIgAEfyAABSAFKAKsQCAFKAKoQCgCBBEDACAFEDEgBRAGQQALC6ABAQF/IAIgACgCBCIDIAIgA0kbIgIEQCAAIAMgAms2AgQCQAJAAkACQCAAKAIcIgMoAhRBAWsOAgEAAgsgA0GgAWogASAAKAIAIAJB3IABKAIAEQgADAILIAAgACgCMCABIAAoAgAgAkHEgAEoAgARBAA2AjAMAQsgASAAKAIAIAIQBxoLIAAgACgCACACajYCACAAIAAoAgggAmo2AggLC7cCAQR/QX4hAgJAIABFDQAgACgCIEUNACAAKAIkIgRFDQAgACgCHCIBRQ0AIAEoAgAgAEcNAAJAAkAgASgCICIDQTlrDjkBAgICAgICAgICAgIBAgICAQICAgICAgICAgICAgICAgICAQICAgICAgICAgICAQICAgICAgICAgEACyADQZoFRg0AIANBKkcN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DCABajYCDCAGIAYoAgggAWo2AgggBSAFKAIUIAFqNgIUIAUgBSgCECABazYCECAGIAYoAhAgAWsiATYCECABDQAgBiAGKAIENgIIC0EAIQRBACEJIAMoAhBFDQAMCgsgAygCHCgCJCEGIAMgAygCGCIBQQFqNgIYIAEgBmotAAAhASADIARBAWo2AhAgAygCBCAEaiABOgAAIAEEQCADKAIQIQQMAQsLIAMoAhwoAixFDQAgAygCECIGIAlNDQAgBQJ/IAUoAjAhBEEAIAMoAgQgCWoiAUUNABogBCABIAYgCWtB1IABKAIAEQAACzYCMAsgA0HnADYCIAsCQCADKAIcKAIsBEAgAygCDCADKAIQIgFBAmpJBH8gBRAKIAMoAhANAkEABSABCyADKAIEaiAFKAIwOwAAIAMgAygCEEECajYCECADQaABakHkgAEoAgARAQAaCyADQfEANgIgIAUQCiADKAIQRQ0BDAcLDAYLIAUoAgQNAQsgAygCPA0AIApFDQEgAygCIEGaBUYNAQsCfyADKAKIASIBRQRAIAMgChCFAQwBCwJAAkACQCADKAKMAUECaw4CAAECCwJ/AkADQAJAAkAgAygCPA0AIAMQLyADKAI8DQAgCg0BQQAMBAsgAygCSCADKAJoai0AACEEIAMgAygC8C0iAUEBajYC8C0gASADKALsLWpBADoAACADIAMoAvAtIgFBAWo2AvAtIAEgAygC7C1qQQA6AAAgAyADKALwLSIBQQFqNgLwLSABIAMoAuwtaiAEOgAAIAMgBEECdGoiASABLwHkAUEBajsB5AEgAyADKAI8QQFrNgI8IAMgAygCaEEBaiIBNgJoIAMoAvAtIAMoAvQtRw0BQQAhBCADIAMoAlgiBkEATgR/IAMoAkggBmoFQQALIAEgBmtBABAPIAMgAygCaDYCWCADKAIAEAogAygCACgCEA0BDAILCyADQQA2AoQuIApBBEYEQCADIAMoAlgiAUEATgR/IAMoAkggAWoFQQALIAMoAmggAWtBARAPIAMgAygCaDYCWCADKAIAEApBA0ECIAMoAgAoAhAbDAILIAMoAvAtBEBBACEEIAMgAygCWCIBQQBOBH8gAygCSCABagVBAAsgAygCaCABa0EAEA8gAyADKAJoNgJYIAMoAgAQCiADKAIAKAIQRQ0BC0EBIQQLIAQL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bGl0ZXJhbC9sZW5ndGhzIHNldABpbnZhbGlkIGNvZGUgbGVuZ3RocyBzZXQAdW5rbm93biBoZWFkZXIgZmxhZ3Mgc2V0AGludmFsaWQgZGlzdGFuY2VzIHNldABpbnZhbGlkIGJpdCBsZW5ndGggcmVwZWF0AEZpbGUgYWxyZWFkeSBleGlzdHMAdG9vIG1hbnkgbGVuZ3RoIG9yIGRpc3RhbmNlIHN5bWJvbHMAaW52YWxpZCBzdG9yZWQgYmxvY2sgbGVuZ3RocwAlcyVzJXMAYnVmZmVyIGVycm9yAE5vIGVycm9yAHN0cmVhbSBlcnJvcgBUZWxsIGVycm9yAEludGVybmFsIGVycm9yAFNlZWsgZXJyb3IAV3JpdGUgZXJyb3IAZmlsZSBlcnJvcgBSZWFkIGVycm9yAFpsaWIgZXJyb3IAZGF0YSBlcnJvcgBDUkMgZXJyb3IAaW5jb21wYXRpYmxlIHZlcnNpb24AaW52YWxpZCBjb2RlIC0tIG1pc3NpbmcgZW5kLW9mLWJsb2NrAGluY29ycmVjdCBoZWFkZXIgY2hlY2sAaW5jb3JyZWN0IGxlbmd0aCBjaGVjawBpbmNvcnJlY3QgZGF0YSBjaGVjawBpbnZhbGlkIGRpc3RhbmNlIHRvbyBmYXIgYmFjawBoZWFkZXIgY3JjIG1pc21hdGNoADEuMi4xMy56bGliLW5nAGludmFsaWQgd2luZG93IHNpemUAUmVhZC1vbmx5IGFyY2hpdmUATm90IGEgemlwIGFyY2hpdmUAUmVzb3VyY2Ugc3RpbGwgaW4gdXNlAE1hbGxvYyBmYWlsdXJlAGludmFsaWQgYmxvY2sgdHlwZQBGYWlsdXJlIHRvIGNyZWF0ZSB0ZW1wb3JhcnkgZmlsZQBDYW4ndCBvcGVuIGZpbGUATm8gc3VjaCBmaWxlAFByZW1hdHVyZSBlbmQgb2YgZmlsZQBDYW4ndCByZW1vdmUgZmlsZQBpbnZhbGlkIGxpdGVyYWwvbGVuZ3RoIGNvZGUAaW52YWxpZCBkaXN0YW5jZSBjb2RlAHVua25vd24gY29tcHJlc3Npb24gbWV0aG9kAHN0cmVhbSBlbmQAQ29tcHJlc3NlZCBkYXRhIGludmFsaWQATXVsdGktZGlzayB6aXAgYXJjaGl2ZXMgbm90IHN1cHBvcnRl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UgAIANIACAAyAAgAsgAIAHIACADyAAgACgAIAIoACABKAAgAygAIACoACACqAAgAagAIAOoACAAaAAgAmgAIAFoACADaAAgAOgAIALoACAB6AAgA+gAIAAYACACGAAgARgAIAMYACAAmAAgApgAIAGYACADmAAgAFgAIAJYACABWAAgA1gAIADYACAC2AAgAdgAIAPYACAAOAAgAjgAIAE4ACADOAAgALgAIAK4ACABuAAgA7gAIAB4ACACeAAgAXgAIAN4ACAA+AAgAvgAIAH4ACAD+AAgAAQAIAIEACABBAAgAwQAIACEACAChAAgAYQAIAOEACAARAAgAkQAIAFEACADRAAgAMQAIALEACABxAAgA8QAIAAkACACJAAgASQAIAMkACAApAAgAqQAIAGkACADpAAgAGQAIAJkACABZAAgA2QAIADkACAC5AAgAeQAIAPkACAAFAAgAhQAIAEUACADFAAgAJQAIAKUACABlAAgA5QAIABUACACVAAgAVQAIANUACAA1AAgAtQAIAHUACAD1AAgADQAIAI0ACABNAAgAzQAIAC0ACACtAAgAbQAIAO0ACAAdAAgAnQAIAF0ACADdAAgAPQAIAL0ACAB9AAgA/QAIABMACQATAQkAkwAJAJMBCQBTAAkAUwEJANMACQDTAQkAMwAJADMBCQCzAAkAswEJAHMACQBzAQkA8wAJAPMBCQALAAkACwEJAIsACQCLAQkASwAJAEsBCQDLAAkAywEJACsACQArAQkAqwAJAKsBCQBrAAkAawEJAOsACQDrAQkAGwAJABsBCQCbAAkAmwEJAFsACQBbAQkA2wAJANsBCQA7AAkAOwEJALsACQC7AQkAewAJAHsBCQD7AAkA+wEJAAcACQAHAQkAhwAJAIcBCQBHAAkARwEJAMcACQDHAQkAJwAJACcBCQCnAAkApwEJAGcACQBnAQkA5wAJAOcBCQAXAAkAFwEJAJcACQCXAQkAVwAJAFcBCQDXAAkA1wEJADcACQA3AQkAtwAJALcBCQB3AAkAdwEJAPcACQD3AQkADwAJAA8BCQCPAAkAjwEJAE8ACQBPAQkAzwAJAM8BCQAvAAkALwEJAK8ACQCvAQkAbwAJAG8BCQDvAAkA7wEJAB8ACQAfAQkAnwAJAJ8BCQBfAAkAXwEJAN8ACQDfAQkAPwAJAD8BCQC/AAkA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SXMgYSBkaXJlY3RvcnkAVGV4dCBmaWxlIGJ1c3kARXhlYyBmb3JtYXQgZXJyb3IASW52YWxpZCBhcmd1bWVudABBcmd1bWVudCBsaXN0IHRvbyBsb25nAFN5bWJvbGljIGxpbmsgbG9vcABGaWxlbmFtZSB0b28gbG9uZwBUb28gbWFueSBvcGVuIGZpbGVzIGluIHN5c3RlbQBObyBmaWxlIGRlc2NyaXB0b3JzIGF2YWlsYWJsZQBCYWQgZmlsZSBkZXNjcmlwdG9yAE5vIGNoaWxkIHByb2Nlc3MAQmFkIGFkZHJlc3MARmlsZSB0b28gbGFyZ2UAVG9vIG1hbnkgbGlua3MATm8gbG9ja3MgYXZhaWxhYmxlAFJlc291cmNlIGRlYWRsb2NrIHdvdWxkIG9jY3VyAFN0YXRlIG5vdCByZWNvdmVyYWJsZQBQcmV2aW91cyBvd25lciBkaWVkAE9wZXJhdGlvbiBjYW5jZWxlZABGdW5jdGlvbiBub3QgaW1wbGVtZW50ZWQATm8gbWVzc2FnZSBvZiBkZXNpcmVkIHR5cGUASWRlbnRpZmllciByZW1vdmVkAERldmljZSBub3QgYSBzdHJlYW0ATm8gZGF0YSBhdmFpbGFibGUARGV2aWNlIHRpbWVvdXQAT3V0IG9mIHN0cmVhbXMgcmVzb3VyY2VzAExpbmsgaGFzIGJlZW4gc2V2ZXJlZABQcm90b2NvbCBlcnJvcgBCYWQgbWVzc2FnZQBGaWxlIGRlc2NyaXB0b3IgaW4gYmFkIHN0YXRlAE5vdCBhIHNvY2tldABEZXN0aW5hdGlvbiBhZGRyZXNzIHJlcXVpcmVkAE1lc3NhZ2UgdG9vIGxhcmdlAFByb3RvY29sIHdyb25nIHR5cGUgZm9yIHNvY2tldABQcm90b2NvbCBub3QgYXZhaWxhYmxlAFByb3RvY29sIG5vdCBzdXBwb3J0ZWQAU29ja2V0IHR5cGUgbm90IHN1cHBvcnRlZABOb3Qgc3VwcG9ydGVkAFByb3RvY29sIGZhbWlseSBub3Qgc3VwcG9ydGVkAEFkZHJlc3MgZmFtaWx5IG5vdCBzdXBwb3J0ZWQgYnkgcHJvdG9jb2wAQWRkcmVzcyBub3QgYXZhaWxhYmxlAE5ldHdvcmsgaXMgZG93bgBOZXR3b3JrIHVucmVhY2hhYmxlAENvbm5lY3Rpb24gcmVzZXQgYnkgbmV0d29yawBDb25uZWN0aW9uIGFib3J0ZWQATm8gYnVmZmVyIHNwYWNlIGF2YWlsYWJsZQBTb2NrZXQgaXMgY29ubmVjdGVkAFNvY2tldCBub3QgY29ubmVjdGVkAENhbm5vdCBzZW5kIGFmdGVyIHNvY2tldCBzaHV0ZG93bgBPcGVyYXRpb24gYWxyZWFkeSBpbiBwcm9ncmVzcwBPcGVyYXRpb24gaW4gcHJvZ3Jlc3MAU3RhbGUgZmlsZSBoYW5kbGUAUmVtb3RlIEkvTyBlcnJvcgBRdW90YSBleGNlZWRlZABObyBtZWRpdW0gZm91bmQAV3JvbmcgbWVkaXVtIHR5cGUATm8gZXJyb3IgaW5mb3JtYXRpb24AQcCAAQuFARMAAAAUAAAAFQAAABYAAAAXAAAAGAAAABkAAAAaAAAAGwAAABwAAAAdAAAAHgAAAB8AAAAgAAAAIQAAACIAAAAjAAAAgERQADEAAAAyAAAAMwAAADQAAAA1AAAANgAAADcAAAA4AAAAOQAAADIAAAAzAAAANAAAADUAAAA2AAAANwAAADgAQfSCAQsCXEQAQbCDAQsQ/////////////////////w==";io(Pi)||(Pi=x(Pi));function Ls(We){try{if(We==Pi&&ce)return new Uint8Array(ce);var tt=ii(We);if(tt)return tt;if(R)return R(We);throw"sync fetching of the wasm failed: you can preload it to Module['wasmBinary'] manually, or emcc.py will do that for you when generating HTML (but not JS)"}catch(It){Ti(It)}}function so(We,tt){var It,nr,$;try{$=Ls(We),nr=new WebAssembly.Module($),It=new WebAssembly.Instance(nr,tt)}catch(Le){var ye=Le.toString();throw te("failed to compile wasm module: "+ye),(ye.includes("imported Memory")||ye.includes("memory import"))&&te("Memory size incompatibility issues may be due to changing INITIAL_MEMORY at runtime to something too large. Use ALLOW_MEMORY_GROWTH to allow any size memory (and also make sure not to set INITIAL_MEMORY at runtime to something smaller than it was at compile time)."),Le}return[It,nr]}function cc(){var We={a:Ma};function tt($,ye){var Le=$.exports;r.asm=Le,Be=r.asm.g,z(Be.buffer),Z=r.asm.W,an(r.asm.h),Ns("wasm-instantiate")}if(Kn("wasm-instantiate"),r.instantiateWasm)try{var It=r.instantiateWasm(We,tt);return It}catch($){return te("Module.instantiateWasm callback failed with error: "+$),!1}var nr=so(Pi,We);return tt(nr[0]),r.asm}function cu(We){return F.getFloat32(We,!0)}function lp(We){return F.getFloat64(We,!0)}function cp(We){return F.getInt16(We,!0)}function Os(We){return F.getInt32(We,!0)}function Dn(We,tt){F.setInt32(We,tt,!0)}function oo(We){for(;We.length>0;){var tt=We.shift();if(typeof tt=="function"){tt(r);continue}var It=tt.func;typeof It=="number"?tt.arg===void 0?Z.get(It)():Z.get(It)(tt.arg):It(tt.arg===void 0?null:tt.arg)}}function Ms(We,tt){var It=new Date(Os((We>>2)*4)*1e3);Dn((tt>>2)*4,It.getUTCSeconds()),Dn((tt+4>>2)*4,It.getUTCMinutes()),Dn((tt+8>>2)*4,It.getUTCHours()),Dn((tt+12>>2)*4,It.getUTCDate()),Dn((tt+16>>2)*4,It.getUTCMonth()),Dn((tt+20>>2)*4,It.getUTCFullYear()-1900),Dn((tt+24>>2)*4,It.getUTCDay()),Dn((tt+36>>2)*4,0),Dn((tt+32>>2)*4,0);var nr=Date.UTC(It.getUTCFullYear(),0,1,0,0,0,0),$=(It.getTime()-nr)/(1e3*60*60*24)|0;return Dn((tt+28>>2)*4,$),Ms.GMTString||(Ms.GMTString=at("GMT")),Dn((tt+40>>2)*4,Ms.GMTString),tt}function ml(We,tt){return Ms(We,tt)}function yl(We,tt,It){Te.copyWithin(We,tt,tt+It)}function ao(We){try{return Be.grow(We-xe.byteLength+65535>>>16),z(Be.buffer),1}catch{}}function Vn(We){var tt=Te.length;We=We>>>0;var It=2147483648;if(We>It)return!1;for(var nr=1;nr<=4;nr*=2){var $=tt*(1+.2/nr);$=Math.min($,We+100663296);var ye=Math.min(It,ke(Math.max(We,$),65536)),Le=ao(ye);if(Le)return!0}return!1}function On(We){fe(We)}function Ni(We){var tt=Date.now()/1e3|0;return We&&Dn((We>>2)*4,tt),tt}function Mn(){if(Mn.called)return;Mn.called=!0;var We=new Date().getFullYear(),tt=new Date(We,0,1),It=new Date(We,6,1),nr=tt.getTimezoneOffset(),$=It.getTimezoneOffset(),ye=Math.max(nr,$);Dn((ds()>>2)*4,ye*60),Dn((gs()>>2)*4,Number(nr!=$));function Le($r){var ji=$r.toTimeString().match(/\(([A-Za-z ]+)\)$/);return ji?ji[1]:"GMT"}var pt=Le(tt),ht=Le(It),Tt=at(pt),er=at(ht);$>2)*4,Tt),Dn((wi()+4>>2)*4,er)):(Dn((wi()>>2)*4,er),Dn((wi()+4>>2)*4,Tt))}function _i(We){Mn();var tt=Date.UTC(Os((We+20>>2)*4)+1900,Os((We+16>>2)*4),Os((We+12>>2)*4),Os((We+8>>2)*4),Os((We+4>>2)*4),Os((We>>2)*4),0),It=new Date(tt);Dn((We+24>>2)*4,It.getUTCDay());var nr=Date.UTC(It.getUTCFullYear(),0,1,0,0,0,0),$=(It.getTime()-nr)/(1e3*60*60*24)|0;return Dn((We+28>>2)*4,$),It.getTime()/1e3|0}var tr=typeof atob=="function"?atob:function(We){var tt="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",It="",nr,$,ye,Le,pt,ht,Tt,er=0;We=We.replace(/[^A-Za-z0-9\+\/\=]/g,"");do Le=tt.indexOf(We.charAt(er++)),pt=tt.indexOf(We.charAt(er++)),ht=tt.indexOf(We.charAt(er++)),Tt=tt.indexOf(We.charAt(er++)),nr=Le<<2|pt>>4,$=(pt&15)<<4|ht>>2,ye=(ht&3)<<6|Tt,It=It+String.fromCharCode(nr),ht!==64&&(It=It+String.fromCharCode($)),Tt!==64&&(It=It+String.fromCharCode(ye));while(er0||(dt(),mr>0))return;function tt(){Sn||(Sn=!0,r.calledRun=!0,!we&&(jt(),o(r),r.onRuntimeInitialized&&r.onRuntimeInitialized(),$t()))}r.setStatus?(r.setStatus("Running..."),setTimeout(function(){setTimeout(function(){r.setStatus("")},1),tt()},1)):tt()}if(r.run=ys,r.preInit)for(typeof r.preInit=="function"&&(r.preInit=[r.preInit]);r.preInit.length>0;)r.preInit.pop()();return ys(),e}}();typeof Qb=="object"&&typeof tU=="object"?tU.exports=eU:typeof define=="function"&&define.amd?define([],function(){return eU}):typeof Qb=="object"&&(Qb.createModule=eU)});var Of,Rle,Tle,Nle=Et(()=>{Of=["number","number"],Rle=(ee=>(ee[ee.ZIP_ER_OK=0]="ZIP_ER_OK",ee[ee.ZIP_ER_MULTIDISK=1]="ZIP_ER_MULTIDISK",ee[ee.ZIP_ER_RENAME=2]="ZIP_ER_RENAME",ee[ee.ZIP_ER_CLOSE=3]="ZIP_ER_CLOSE",ee[ee.ZIP_ER_SEEK=4]="ZIP_ER_SEEK",ee[ee.ZIP_ER_READ=5]="ZIP_ER_READ",ee[ee.ZIP_ER_WRITE=6]="ZIP_ER_WRITE",ee[ee.ZIP_ER_CRC=7]="ZIP_ER_CRC",ee[ee.ZIP_ER_ZIPCLOSED=8]="ZIP_ER_ZIPCLOSED",ee[ee.ZIP_ER_NOENT=9]="ZIP_ER_NOENT",ee[ee.ZIP_ER_EXISTS=10]="ZIP_ER_EXISTS",ee[ee.ZIP_ER_OPEN=11]="ZIP_ER_OPEN",ee[ee.ZIP_ER_TMPOPEN=12]="ZIP_ER_TMPOPEN",ee[ee.ZIP_ER_ZLIB=13]="ZIP_ER_ZLIB",ee[ee.ZIP_ER_MEMORY=14]="ZIP_ER_MEMORY",ee[ee.ZIP_ER_CHANGED=15]="ZIP_ER_CHANGED",ee[ee.ZIP_ER_COMPNOTSUPP=16]="ZIP_ER_COMPNOTSUPP",ee[ee.ZIP_ER_EOF=17]="ZIP_ER_EOF",ee[ee.ZIP_ER_INVAL=18]="ZIP_ER_INVAL",ee[ee.ZIP_ER_NOZIP=19]="ZIP_ER_NOZIP",ee[ee.ZIP_ER_INTERNAL=20]="ZIP_ER_INTERNAL",ee[ee.ZIP_ER_INCONS=21]="ZIP_ER_INCONS",ee[ee.ZIP_ER_REMOVE=22]="ZIP_ER_REMOVE",ee[ee.ZIP_ER_DELETED=23]="ZIP_ER_DELETED",ee[ee.ZIP_ER_ENCRNOTSUPP=24]="ZIP_ER_ENCRNOTSUPP",ee[ee.ZIP_ER_RDONLY=25]="ZIP_ER_RDONLY",ee[ee.ZIP_ER_NOPASSWD=26]="ZIP_ER_NOPASSWD",ee[ee.ZIP_ER_WRONGPASSWD=27]="ZIP_ER_WRONGPASSWD",ee[ee.ZIP_ER_OPNOTSUPP=28]="ZIP_ER_OPNOTSUPP",ee[ee.ZIP_ER_INUSE=29]="ZIP_ER_INUSE",ee[ee.ZIP_ER_TELL=30]="ZIP_ER_TELL",ee[ee.ZIP_ER_COMPRESSED_DATA=31]="ZIP_ER_COMPRESSED_DATA",ee))(Rle||{}),Tle=t=>({get HEAPU8(){return t.HEAPU8},errors:Rle,SEEK_SET:0,SEEK_CUR:1,SEEK_END:2,ZIP_CHECKCONS:4,ZIP_EXCL:2,ZIP_RDONLY:16,ZIP_FL_OVERWRITE:8192,ZIP_FL_COMPRESSED:4,ZIP_OPSYS_DOS:0,ZIP_OPSYS_AMIGA:1,ZIP_OPSYS_OPENVMS:2,ZIP_OPSYS_UNIX:3,ZIP_OPSYS_VM_CMS:4,ZIP_OPSYS_ATARI_ST:5,ZIP_OPSYS_OS_2:6,ZIP_OPSYS_MACINTOSH:7,ZIP_OPSYS_Z_SYSTEM:8,ZIP_OPSYS_CPM:9,ZIP_OPSYS_WINDOWS_NTFS:10,ZIP_OPSYS_MVS:11,ZIP_OPSYS_VSE:12,ZIP_OPSYS_ACORN_RISC:13,ZIP_OPSYS_VFAT:14,ZIP_OPSYS_ALTERNATE_MVS:15,ZIP_OPSYS_BEOS:16,ZIP_OPSYS_TANDEM:17,ZIP_OPSYS_OS_400:18,ZIP_OPSYS_OS_X:19,ZIP_CM_DEFAULT:-1,ZIP_CM_STORE:0,ZIP_CM_DEFLATE:8,uint08S:t._malloc(1),uint32S:t._malloc(4),malloc:t._malloc,free:t._free,getValue:t.getValue,openFromSource:t.cwrap("zip_open_from_source","number",["number","number","number"]),close:t.cwrap("zip_close","number",["number"]),discard:t.cwrap("zip_discard",null,["number"]),getError:t.cwrap("zip_get_error","number",["number"]),getName:t.cwrap("zip_get_name","string",["number","number","number"]),getNumEntries:t.cwrap("zip_get_num_entries","number",["number","number"]),delete:t.cwrap("zip_delete","number",["number","number"]),statIndex:t.cwrap("zip_stat_index","number",["number",...Of,"number","number"]),fopenIndex:t.cwrap("zip_fopen_index","number",["number",...Of,"number"]),fread:t.cwrap("zip_fread","number",["number","number","number","number"]),fclose:t.cwrap("zip_fclose","number",["number"]),dir:{add:t.cwrap("zip_dir_add","number",["number","string"])},file:{add:t.cwrap("zip_file_add","number",["number","string","number","number"]),getError:t.cwrap("zip_file_get_error","number",["number"]),getExternalAttributes:t.cwrap("zip_file_get_external_attributes","number",["number",...Of,"number","number","number"]),setExternalAttributes:t.cwrap("zip_file_set_external_attributes","number",["number",...Of,"number","number","number"]),setMtime:t.cwrap("zip_file_set_mtime","number",["number",...Of,"number","number"]),setCompression:t.cwrap("zip_set_file_compression","number",["number",...Of,"number","number"])},ext:{countSymlinks:t.cwrap("zip_ext_count_symlinks","number",["number"])},error:{initWithCode:t.cwrap("zip_error_init_with_code",null,["number","number"]),strerror:t.cwrap("zip_error_strerror","string",["number"])},name:{locate:t.cwrap("zip_name_locate","number",["number","string","number"])},source:{fromUnattachedBuffer:t.cwrap("zip_source_buffer_create","number",["number",...Of,"number","number"]),fromBuffer:t.cwrap("zip_source_buffer","number",["number","number",...Of,"number"]),free:t.cwrap("zip_source_free",null,["number"]),keep:t.cwrap("zip_source_keep",null,["number"]),open:t.cwrap("zip_source_open","number",["number"]),close:t.cwrap("zip_source_close","number",["number"]),seek:t.cwrap("zip_source_seek","number",["number",...Of,"number"]),tell:t.cwrap("zip_source_tell","number",["number"]),read:t.cwrap("zip_source_read","number",["number","number","number"]),error:t.cwrap("zip_source_error","number",["number"])},struct:{statS:t.cwrap("zipstruct_statS","number",[]),statSize:t.cwrap("zipstruct_stat_size","number",["number"]),statCompSize:t.cwrap("zipstruct_stat_comp_size","number",["number"]),statCompMethod:t.cwrap("zipstruct_stat_comp_method","number",["number"]),statMtime:t.cwrap("zipstruct_stat_mtime","number",["number"]),statCrc:t.cwrap("zipstruct_stat_crc","number",["number"]),errorS:t.cwrap("zipstruct_errorS","number",[]),errorCodeZip:t.cwrap("zipstruct_error_code_zip","number",["number"])}})});function rU(t,e){let r=t.indexOf(e);if(r<=0)return null;let o=r;for(;r>=0&&(o=r+e.length,t[o]!==V.sep);){if(t[r-1]===V.sep)return null;r=t.indexOf(e,o)}return t.length>o&&t[o]!==V.sep?null:t.slice(0,o)}var Jl,Lle=Et(()=>{St();St();nA();Jl=class extends Hp{static async openPromise(e,r){let o=new Jl(r);try{return await e(o)}finally{o.saveAndClose()}}constructor(e={}){let r=e.fileExtensions,o=e.readOnlyArchives,a=typeof r>"u"?A=>rU(A,".zip"):A=>{for(let p of r){let h=rU(A,p);if(h)return h}return null},n=(A,p)=>new zi(p,{baseFs:A,readOnly:o,stats:A.statSync(p)}),u=async(A,p)=>{let h={baseFs:A,readOnly:o,stats:await A.statPromise(p)};return()=>new zi(p,h)};super({...e,factorySync:n,factoryPromise:u,getMountPoint:a})}}});function lot(t){if(typeof t=="string"&&String(+t)===t)return+t;if(typeof t=="number"&&Number.isFinite(t))return t<0?Date.now()/1e3:t;if(Ole.types.isDate(t))return t.getTime()/1e3;throw new Error("Invalid time")}function Fb(){return Buffer.from([80,75,5,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0])}var ta,nU,Ole,iU,Mle,Rb,zi,sU=Et(()=>{St();St();St();St();St();St();ta=ve("fs"),nU=ve("stream"),Ole=ve("util"),iU=$e(ve("zlib"));$4();Mle="mixed";Rb=class extends Error{constructor(r,o){super(r);this.name="Libzip Error",this.code=o}},zi=class extends Mu{constructor(r,o={}){super();this.listings=new Map;this.entries=new Map;this.fileSources=new Map;this.fds=new Map;this.nextFd=0;this.ready=!1;this.readOnly=!1;let a=o;if(this.level=typeof a.level<"u"?a.level:Mle,r??=Fb(),typeof r=="string"){let{baseFs:A=new Tn}=a;this.baseFs=A,this.path=r}else this.path=null,this.baseFs=null;if(o.stats)this.stats=o.stats;else if(typeof r=="string")try{this.stats=this.baseFs.statSync(r)}catch(A){if(A.code==="ENOENT"&&a.create)this.stats=Ea.makeDefaultStats();else throw A}else this.stats=Ea.makeDefaultStats();this.libzip=b1();let n=this.libzip.malloc(4);try{let A=0;o.readOnly&&(A|=this.libzip.ZIP_RDONLY,this.readOnly=!0),typeof r=="string"&&(r=a.create?Fb():this.baseFs.readFileSync(r));let p=this.allocateUnattachedSource(r);try{this.zip=this.libzip.openFromSource(p,A,n),this.lzSource=p}catch(h){throw this.libzip.source.free(p),h}if(this.zip===0){let h=this.libzip.struct.errorS();throw this.libzip.error.initWithCode(h,this.libzip.getValue(n,"i32")),this.makeLibzipError(h)}}finally{this.libzip.free(n)}this.listings.set(Bt.root,new Set);let u=this.libzip.getNumEntries(this.zip,0);for(let A=0;Ar)throw new Error("Overread");let n=Buffer.from(this.libzip.HEAPU8.subarray(o,o+r));return process.env.YARN_IS_TEST_ENV&&process.env.YARN_ZIP_DATA_EPILOGUE&&(n=Buffer.concat([n,Buffer.from(process.env.YARN_ZIP_DATA_EPILOGUE)])),n}finally{this.libzip.free(o)}}finally{this.libzip.source.close(this.lzSource),this.libzip.source.free(this.lzSource),this.ready=!1}}discardAndClose(){this.prepareClose(),this.libzip.discard(this.zip),this.ready=!1}saveAndClose(){if(!this.path||!this.baseFs)throw new Error("ZipFS cannot be saved and must be discarded when loaded from a buffer");if(this.readOnly){this.discardAndClose();return}let r=this.baseFs.existsSync(this.path)||this.stats.mode===Ea.DEFAULT_MODE?void 0:this.stats.mode;this.baseFs.writeFileSync(this.path,this.getBufferAndClose(),{mode:r}),this.ready=!1}resolve(r){return V.resolve(Bt.root,r)}async openPromise(r,o,a){return this.openSync(r,o,a)}openSync(r,o,a){let n=this.nextFd++;return this.fds.set(n,{cursor:0,p:r}),n}hasOpenFileHandles(){return!!this.fds.size}async opendirPromise(r,o){return this.opendirSync(r,o)}opendirSync(r,o={}){let a=this.resolveFilename(`opendir '${r}'`,r);if(!this.entries.has(a)&&!this.listings.has(a))throw ar.ENOENT(`opendir '${r}'`);let n=this.listings.get(a);if(!n)throw ar.ENOTDIR(`opendir '${r}'`);let u=[...n],A=this.openSync(a,"r");return PD(this,a,u,{onClose:()=>{this.closeSync(A)}})}async readPromise(r,o,a,n,u){return this.readSync(r,o,a,n,u)}readSync(r,o,a=0,n=o.byteLength,u=-1){let A=this.fds.get(r);if(typeof A>"u")throw ar.EBADF("read");let p=u===-1||u===null?A.cursor:u,h=this.readFileSync(A.p);h.copy(o,a,p,p+n);let E=Math.max(0,Math.min(h.length-p,n));return(u===-1||u===null)&&(A.cursor+=E),E}async writePromise(r,o,a,n,u){return typeof o=="string"?this.writeSync(r,o,u):this.writeSync(r,o,a,n,u)}writeSync(r,o,a,n,u){throw typeof this.fds.get(r)>"u"?ar.EBADF("read"):new Error("Unimplemented")}async closePromise(r){return this.closeSync(r)}closeSync(r){if(typeof this.fds.get(r)>"u")throw ar.EBADF("read");this.fds.delete(r)}createReadStream(r,{encoding:o}={}){if(r===null)throw new Error("Unimplemented");let a=this.openSync(r,"r"),n=Object.assign(new nU.PassThrough({emitClose:!0,autoDestroy:!0,destroy:(A,p)=>{clearImmediate(u),this.closeSync(a),p(A)}}),{close(){n.destroy()},bytesRead:0,path:r,pending:!1}),u=setImmediate(async()=>{try{let A=await this.readFilePromise(r,o);n.bytesRead=A.length,n.end(A)}catch(A){n.destroy(A)}});return n}createWriteStream(r,{encoding:o}={}){if(this.readOnly)throw ar.EROFS(`open '${r}'`);if(r===null)throw new Error("Unimplemented");let a=[],n=this.openSync(r,"w"),u=Object.assign(new nU.PassThrough({autoDestroy:!0,emitClose:!0,destroy:(A,p)=>{try{A?p(A):(this.writeFileSync(r,Buffer.concat(a),o),p(null))}catch(h){p(h)}finally{this.closeSync(n)}}}),{close(){u.destroy()},bytesWritten:0,path:r,pending:!1});return u.on("data",A=>{let p=Buffer.from(A);u.bytesWritten+=p.length,a.push(p)}),u}async realpathPromise(r){return this.realpathSync(r)}realpathSync(r){let o=this.resolveFilename(`lstat '${r}'`,r);if(!this.entries.has(o)&&!this.listings.has(o))throw ar.ENOENT(`lstat '${r}'`);return o}async existsPromise(r){return this.existsSync(r)}existsSync(r){if(!this.ready)throw ar.EBUSY(`archive closed, existsSync '${r}'`);if(this.symlinkCount===0){let a=V.resolve(Bt.root,r);return this.entries.has(a)||this.listings.has(a)}let o;try{o=this.resolveFilename(`stat '${r}'`,r,void 0,!1)}catch{return!1}return o===void 0?!1:this.entries.has(o)||this.listings.has(o)}async accessPromise(r,o){return this.accessSync(r,o)}accessSync(r,o=ta.constants.F_OK){let a=this.resolveFilename(`access '${r}'`,r);if(!this.entries.has(a)&&!this.listings.has(a))throw ar.ENOENT(`access '${r}'`);if(this.readOnly&&o&ta.constants.W_OK)throw ar.EROFS(`access '${r}'`)}async statPromise(r,o={bigint:!1}){return o.bigint?this.statSync(r,{bigint:!0}):this.statSync(r)}statSync(r,o={bigint:!1,throwIfNoEntry:!0}){let a=this.resolveFilename(`stat '${r}'`,r,void 0,o.throwIfNoEntry);if(a!==void 0){if(!this.entries.has(a)&&!this.listings.has(a)){if(o.throwIfNoEntry===!1)return;throw ar.ENOENT(`stat '${r}'`)}if(r[r.length-1]==="/"&&!this.listings.has(a))throw ar.ENOTDIR(`stat '${r}'`);return this.statImpl(`stat '${r}'`,a,o)}}async fstatPromise(r,o){return this.fstatSync(r,o)}fstatSync(r,o){let a=this.fds.get(r);if(typeof a>"u")throw ar.EBADF("fstatSync");let{p:n}=a,u=this.resolveFilename(`stat '${n}'`,n);if(!this.entries.has(u)&&!this.listings.has(u))throw ar.ENOENT(`stat '${n}'`);if(n[n.length-1]==="/"&&!this.listings.has(u))throw ar.ENOTDIR(`stat '${n}'`);return this.statImpl(`fstat '${n}'`,u,o)}async lstatPromise(r,o={bigint:!1}){return o.bigint?this.lstatSync(r,{bigint:!0}):this.lstatSync(r)}lstatSync(r,o={bigint:!1,throwIfNoEntry:!0}){let a=this.resolveFilename(`lstat '${r}'`,r,!1,o.throwIfNoEntry);if(a!==void 0){if(!this.entries.has(a)&&!this.listings.has(a)){if(o.throwIfNoEntry===!1)return;throw ar.ENOENT(`lstat '${r}'`)}if(r[r.length-1]==="/"&&!this.listings.has(a))throw ar.ENOTDIR(`lstat '${r}'`);return this.statImpl(`lstat '${r}'`,a,o)}}statImpl(r,o,a={}){let n=this.entries.get(o);if(typeof n<"u"){let u=this.libzip.struct.statS();if(this.libzip.statIndex(this.zip,n,0,0,u)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));let p=this.stats.uid,h=this.stats.gid,E=this.libzip.struct.statSize(u)>>>0,I=512,v=Math.ceil(E/I),x=(this.libzip.struct.statMtime(u)>>>0)*1e3,C=x,R=x,L=x,U=new Date(C),J=new Date(R),te=new Date(L),ae=new Date(x),fe=this.listings.has(o)?ta.constants.S_IFDIR:this.isSymbolicLink(n)?ta.constants.S_IFLNK:ta.constants.S_IFREG,ce=fe===ta.constants.S_IFDIR?493:420,me=fe|this.getUnixMode(n,ce)&511,he=this.libzip.struct.statCrc(u),Be=Object.assign(new Ea.StatEntry,{uid:p,gid:h,size:E,blksize:I,blocks:v,atime:U,birthtime:J,ctime:te,mtime:ae,atimeMs:C,birthtimeMs:R,ctimeMs:L,mtimeMs:x,mode:me,crc:he});return a.bigint===!0?Ea.convertToBigIntStats(Be):Be}if(this.listings.has(o)){let u=this.stats.uid,A=this.stats.gid,p=0,h=512,E=0,I=this.stats.mtimeMs,v=this.stats.mtimeMs,x=this.stats.mtimeMs,C=this.stats.mtimeMs,R=new Date(I),L=new Date(v),U=new Date(x),J=new Date(C),te=ta.constants.S_IFDIR|493,ae=0,fe=Object.assign(new Ea.StatEntry,{uid:u,gid:A,size:p,blksize:h,blocks:E,atime:R,birthtime:L,ctime:U,mtime:J,atimeMs:I,birthtimeMs:v,ctimeMs:x,mtimeMs:C,mode:te,crc:ae});return a.bigint===!0?Ea.convertToBigIntStats(fe):fe}throw new Error("Unreachable")}getUnixMode(r,o){if(this.libzip.file.getExternalAttributes(this.zip,r,0,0,this.libzip.uint08S,this.libzip.uint32S)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));return this.libzip.getValue(this.libzip.uint08S,"i8")>>>0!==this.libzip.ZIP_OPSYS_UNIX?o:this.libzip.getValue(this.libzip.uint32S,"i32")>>>16}registerListing(r){let o=this.listings.get(r);if(o)return o;this.registerListing(V.dirname(r)).add(V.basename(r));let n=new Set;return this.listings.set(r,n),n}registerEntry(r,o){this.registerListing(V.dirname(r)).add(V.basename(r)),this.entries.set(r,o)}unregisterListing(r){this.listings.delete(r),this.listings.get(V.dirname(r))?.delete(V.basename(r))}unregisterEntry(r){this.unregisterListing(r);let o=this.entries.get(r);this.entries.delete(r),!(typeof o>"u")&&(this.fileSources.delete(o),this.isSymbolicLink(o)&&this.symlinkCount--)}deleteEntry(r,o){if(this.unregisterEntry(r),this.libzip.delete(this.zip,o)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}resolveFilename(r,o,a=!0,n=!0){if(!this.ready)throw ar.EBUSY(`archive closed, ${r}`);let u=V.resolve(Bt.root,o);if(u==="/")return Bt.root;let A=this.entries.get(u);if(a&&A!==void 0)if(this.symlinkCount!==0&&this.isSymbolicLink(A)){let p=this.getFileSource(A).toString();return this.resolveFilename(r,V.resolve(V.dirname(u),p),!0,n)}else return u;for(;;){let p=this.resolveFilename(r,V.dirname(u),!0,n);if(p===void 0)return p;let h=this.listings.has(p),E=this.entries.has(p);if(!h&&!E){if(n===!1)return;throw ar.ENOENT(r)}if(!h)throw ar.ENOTDIR(r);if(u=V.resolve(p,V.basename(u)),!a||this.symlinkCount===0)break;let I=this.libzip.name.locate(this.zip,u.slice(1),0);if(I===-1)break;if(this.isSymbolicLink(I)){let v=this.getFileSource(I).toString();u=V.resolve(V.dirname(u),v)}else break}return u}allocateBuffer(r){Buffer.isBuffer(r)||(r=Buffer.from(r));let o=this.libzip.malloc(r.byteLength);if(!o)throw new Error("Couldn't allocate enough memory");return new Uint8Array(this.libzip.HEAPU8.buffer,o,r.byteLength).set(r),{buffer:o,byteLength:r.byteLength}}allocateUnattachedSource(r){let o=this.libzip.struct.errorS(),{buffer:a,byteLength:n}=this.allocateBuffer(r),u=this.libzip.source.fromUnattachedBuffer(a,n,0,1,o);if(u===0)throw this.libzip.free(o),this.makeLibzipError(o);return u}allocateSource(r){let{buffer:o,byteLength:a}=this.allocateBuffer(r),n=this.libzip.source.fromBuffer(this.zip,o,a,0,1);if(n===0)throw this.libzip.free(o),this.makeLibzipError(this.libzip.getError(this.zip));return n}setFileSource(r,o){let a=Buffer.isBuffer(o)?o:Buffer.from(o),n=V.relative(Bt.root,r),u=this.allocateSource(o);try{let A=this.libzip.file.add(this.zip,n,u,this.libzip.ZIP_FL_OVERWRITE);if(A===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));if(this.level!=="mixed"){let p=this.level===0?this.libzip.ZIP_CM_STORE:this.libzip.ZIP_CM_DEFLATE;if(this.libzip.file.setCompression(this.zip,A,0,p,this.level)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}return this.fileSources.set(A,a),A}catch(A){throw this.libzip.source.free(u),A}}isSymbolicLink(r){if(this.symlinkCount===0)return!1;if(this.libzip.file.getExternalAttributes(this.zip,r,0,0,this.libzip.uint08S,this.libzip.uint32S)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));return this.libzip.getValue(this.libzip.uint08S,"i8")>>>0!==this.libzip.ZIP_OPSYS_UNIX?!1:(this.libzip.getValue(this.libzip.uint32S,"i32")>>>16&ta.constants.S_IFMT)===ta.constants.S_IFLNK}getFileSource(r,o={asyncDecompress:!1}){let a=this.fileSources.get(r);if(typeof a<"u")return a;let n=this.libzip.struct.statS();if(this.libzip.statIndex(this.zip,r,0,0,n)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));let A=this.libzip.struct.statCompSize(n),p=this.libzip.struct.statCompMethod(n),h=this.libzip.malloc(A);try{let E=this.libzip.fopenIndex(this.zip,r,0,this.libzip.ZIP_FL_COMPRESSED);if(E===0)throw this.makeLibzipError(this.libzip.getError(this.zip));try{let I=this.libzip.fread(E,h,A,0);if(I===-1)throw this.makeLibzipError(this.libzip.file.getError(E));if(IA)throw new Error("Overread");let v=this.libzip.HEAPU8.subarray(h,h+A),x=Buffer.from(v);if(p===0)return this.fileSources.set(r,x),x;if(o.asyncDecompress)return new Promise((C,R)=>{iU.default.inflateRaw(x,(L,U)=>{L?R(L):(this.fileSources.set(r,U),C(U))})});{let C=iU.default.inflateRawSync(x);return this.fileSources.set(r,C),C}}finally{this.libzip.fclose(E)}}finally{this.libzip.free(h)}}async fchmodPromise(r,o){return this.chmodPromise(this.fdToPath(r,"fchmod"),o)}fchmodSync(r,o){return this.chmodSync(this.fdToPath(r,"fchmodSync"),o)}async chmodPromise(r,o){return this.chmodSync(r,o)}chmodSync(r,o){if(this.readOnly)throw ar.EROFS(`chmod '${r}'`);o&=493;let a=this.resolveFilename(`chmod '${r}'`,r,!1),n=this.entries.get(a);if(typeof n>"u")throw new Error(`Assertion failed: The entry should have been registered (${a})`);let A=this.getUnixMode(n,ta.constants.S_IFREG|0)&-512|o;if(this.libzip.file.setExternalAttributes(this.zip,n,0,0,this.libzip.ZIP_OPSYS_UNIX,A<<16)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}async fchownPromise(r,o,a){return this.chownPromise(this.fdToPath(r,"fchown"),o,a)}fchownSync(r,o,a){return this.chownSync(this.fdToPath(r,"fchownSync"),o,a)}async chownPromise(r,o,a){return this.chownSync(r,o,a)}chownSync(r,o,a){throw new Error("Unimplemented")}async renamePromise(r,o){return this.renameSync(r,o)}renameSync(r,o){throw new Error("Unimplemented")}async copyFilePromise(r,o,a){let{indexSource:n,indexDest:u,resolvedDestP:A}=this.prepareCopyFile(r,o,a),p=await this.getFileSource(n,{asyncDecompress:!0}),h=this.setFileSource(A,p);h!==u&&this.registerEntry(A,h)}copyFileSync(r,o,a=0){let{indexSource:n,indexDest:u,resolvedDestP:A}=this.prepareCopyFile(r,o,a),p=this.getFileSource(n),h=this.setFileSource(A,p);h!==u&&this.registerEntry(A,h)}prepareCopyFile(r,o,a=0){if(this.readOnly)throw ar.EROFS(`copyfile '${r} -> '${o}'`);if((a&ta.constants.COPYFILE_FICLONE_FORCE)!==0)throw ar.ENOSYS("unsupported clone operation",`copyfile '${r}' -> ${o}'`);let n=this.resolveFilename(`copyfile '${r} -> ${o}'`,r),u=this.entries.get(n);if(typeof u>"u")throw ar.EINVAL(`copyfile '${r}' -> '${o}'`);let A=this.resolveFilename(`copyfile '${r}' -> ${o}'`,o),p=this.entries.get(A);if((a&(ta.constants.COPYFILE_EXCL|ta.constants.COPYFILE_FICLONE_FORCE))!==0&&typeof p<"u")throw ar.EEXIST(`copyfile '${r}' -> '${o}'`);return{indexSource:u,resolvedDestP:A,indexDest:p}}async appendFilePromise(r,o,a){if(this.readOnly)throw ar.EROFS(`open '${r}'`);return typeof a>"u"?a={flag:"a"}:typeof a=="string"?a={flag:"a",encoding:a}:typeof a.flag>"u"&&(a={flag:"a",...a}),this.writeFilePromise(r,o,a)}appendFileSync(r,o,a={}){if(this.readOnly)throw ar.EROFS(`open '${r}'`);return typeof a>"u"?a={flag:"a"}:typeof a=="string"?a={flag:"a",encoding:a}:typeof a.flag>"u"&&(a={flag:"a",...a}),this.writeFileSync(r,o,a)}fdToPath(r,o){let a=this.fds.get(r)?.p;if(typeof a>"u")throw ar.EBADF(o);return a}async writeFilePromise(r,o,a){let{encoding:n,mode:u,index:A,resolvedP:p}=this.prepareWriteFile(r,a);A!==void 0&&typeof a=="object"&&a.flag&&a.flag.includes("a")&&(o=Buffer.concat([await this.getFileSource(A,{asyncDecompress:!0}),Buffer.from(o)])),n!==null&&(o=o.toString(n));let h=this.setFileSource(p,o);h!==A&&this.registerEntry(p,h),u!==null&&await this.chmodPromise(p,u)}writeFileSync(r,o,a){let{encoding:n,mode:u,index:A,resolvedP:p}=this.prepareWriteFile(r,a);A!==void 0&&typeof a=="object"&&a.flag&&a.flag.includes("a")&&(o=Buffer.concat([this.getFileSource(A),Buffer.from(o)])),n!==null&&(o=o.toString(n));let h=this.setFileSource(p,o);h!==A&&this.registerEntry(p,h),u!==null&&this.chmodSync(p,u)}prepareWriteFile(r,o){if(typeof r=="number"&&(r=this.fdToPath(r,"read")),this.readOnly)throw ar.EROFS(`open '${r}'`);let a=this.resolveFilename(`open '${r}'`,r);if(this.listings.has(a))throw ar.EISDIR(`open '${r}'`);let n=null,u=null;typeof o=="string"?n=o:typeof o=="object"&&({encoding:n=null,mode:u=null}=o);let A=this.entries.get(a);return{encoding:n,mode:u,resolvedP:a,index:A}}async unlinkPromise(r){return this.unlinkSync(r)}unlinkSync(r){if(this.readOnly)throw ar.EROFS(`unlink '${r}'`);let o=this.resolveFilename(`unlink '${r}'`,r);if(this.listings.has(o))throw ar.EISDIR(`unlink '${r}'`);let a=this.entries.get(o);if(typeof a>"u")throw ar.EINVAL(`unlink '${r}'`);this.deleteEntry(o,a)}async utimesPromise(r,o,a){return this.utimesSync(r,o,a)}utimesSync(r,o,a){if(this.readOnly)throw ar.EROFS(`utimes '${r}'`);let n=this.resolveFilename(`utimes '${r}'`,r);this.utimesImpl(n,a)}async lutimesPromise(r,o,a){return this.lutimesSync(r,o,a)}lutimesSync(r,o,a){if(this.readOnly)throw ar.EROFS(`lutimes '${r}'`);let n=this.resolveFilename(`utimes '${r}'`,r,!1);this.utimesImpl(n,a)}utimesImpl(r,o){this.listings.has(r)&&(this.entries.has(r)||this.hydrateDirectory(r));let a=this.entries.get(r);if(a===void 0)throw new Error("Unreachable");if(this.libzip.file.setMtime(this.zip,a,0,lot(o),0)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}async mkdirPromise(r,o){return this.mkdirSync(r,o)}mkdirSync(r,{mode:o=493,recursive:a=!1}={}){if(a)return this.mkdirpSync(r,{chmod:o});if(this.readOnly)throw ar.EROFS(`mkdir '${r}'`);let n=this.resolveFilename(`mkdir '${r}'`,r);if(this.entries.has(n)||this.listings.has(n))throw ar.EEXIST(`mkdir '${r}'`);this.hydrateDirectory(n),this.chmodSync(n,o)}async rmdirPromise(r,o){return this.rmdirSync(r,o)}rmdirSync(r,{recursive:o=!1}={}){if(this.readOnly)throw ar.EROFS(`rmdir '${r}'`);if(o){this.removeSync(r);return}let a=this.resolveFilename(`rmdir '${r}'`,r),n=this.listings.get(a);if(!n)throw ar.ENOTDIR(`rmdir '${r}'`);if(n.size>0)throw ar.ENOTEMPTY(`rmdir '${r}'`);let u=this.entries.get(a);if(typeof u>"u")throw ar.EINVAL(`rmdir '${r}'`);this.deleteEntry(r,u)}hydrateDirectory(r){let o=this.libzip.dir.add(this.zip,V.relative(Bt.root,r));if(o===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));return this.registerListing(r),this.registerEntry(r,o),o}async linkPromise(r,o){return this.linkSync(r,o)}linkSync(r,o){throw ar.EOPNOTSUPP(`link '${r}' -> '${o}'`)}async symlinkPromise(r,o){return this.symlinkSync(r,o)}symlinkSync(r,o){if(this.readOnly)throw ar.EROFS(`symlink '${r}' -> '${o}'`);let a=this.resolveFilename(`symlink '${r}' -> '${o}'`,o);if(this.listings.has(a))throw ar.EISDIR(`symlink '${r}' -> '${o}'`);if(this.entries.has(a))throw ar.EEXIST(`symlink '${r}' -> '${o}'`);let n=this.setFileSource(a,r);if(this.registerEntry(a,n),this.libzip.file.setExternalAttributes(this.zip,n,0,0,this.libzip.ZIP_OPSYS_UNIX,(ta.constants.S_IFLNK|511)<<16)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));this.symlinkCount+=1}async readFilePromise(r,o){typeof o=="object"&&(o=o?o.encoding:void 0);let a=await this.readFileBuffer(r,{asyncDecompress:!0});return o?a.toString(o):a}readFileSync(r,o){typeof o=="object"&&(o=o?o.encoding:void 0);let a=this.readFileBuffer(r);return o?a.toString(o):a}readFileBuffer(r,o={asyncDecompress:!1}){typeof r=="number"&&(r=this.fdToPath(r,"read"));let a=this.resolveFilename(`open '${r}'`,r);if(!this.entries.has(a)&&!this.listings.has(a))throw ar.ENOENT(`open '${r}'`);if(r[r.length-1]==="/"&&!this.listings.has(a))throw ar.ENOTDIR(`open '${r}'`);if(this.listings.has(a))throw ar.EISDIR("read");let n=this.entries.get(a);if(n===void 0)throw new Error("Unreachable");return this.getFileSource(n,o)}async readdirPromise(r,o){return this.readdirSync(r,o)}readdirSync(r,o){let a=this.resolveFilename(`scandir '${r}'`,r);if(!this.entries.has(a)&&!this.listings.has(a))throw ar.ENOENT(`scandir '${r}'`);let n=this.listings.get(a);if(!n)throw ar.ENOTDIR(`scandir '${r}'`);if(o?.recursive)if(o?.withFileTypes){let u=Array.from(n,A=>Object.assign(this.statImpl("lstat",V.join(r,A)),{name:A,path:Bt.dot}));for(let A of u){if(!A.isDirectory())continue;let p=V.join(A.path,A.name),h=this.listings.get(V.join(a,p));for(let E of h)u.push(Object.assign(this.statImpl("lstat",V.join(r,p,E)),{name:E,path:p}))}return u}else{let u=[...n];for(let A of u){let p=this.listings.get(V.join(a,A));if(!(typeof p>"u"))for(let h of p)u.push(V.join(A,h))}return u}else return o?.withFileTypes?Array.from(n,u=>Object.assign(this.statImpl("lstat",V.join(r,u)),{name:u,path:void 0})):[...n]}async readlinkPromise(r){let o=this.prepareReadlink(r);return(await this.getFileSource(o,{asyncDecompress:!0})).toString()}readlinkSync(r){let o=this.prepareReadlink(r);return this.getFileSource(o).toString()}prepareReadlink(r){let o=this.resolveFilename(`readlink '${r}'`,r,!1);if(!this.entries.has(o)&&!this.listings.has(o))throw ar.ENOENT(`readlink '${r}'`);if(r[r.length-1]==="/"&&!this.listings.has(o))throw ar.ENOTDIR(`open '${r}'`);if(this.listings.has(o))throw ar.EINVAL(`readlink '${r}'`);let a=this.entries.get(o);if(a===void 0)throw new Error("Unreachable");if(!this.isSymbolicLink(a))throw ar.EINVAL(`readlink '${r}'`);return a}async truncatePromise(r,o=0){let a=this.resolveFilename(`open '${r}'`,r),n=this.entries.get(a);if(typeof n>"u")throw ar.EINVAL(`open '${r}'`);let u=await this.getFileSource(n,{asyncDecompress:!0}),A=Buffer.alloc(o,0);return u.copy(A),await this.writeFilePromise(r,A)}truncateSync(r,o=0){let a=this.resolveFilename(`open '${r}'`,r),n=this.entries.get(a);if(typeof n>"u")throw ar.EINVAL(`open '${r}'`);let u=this.getFileSource(n),A=Buffer.alloc(o,0);return u.copy(A),this.writeFileSync(r,A)}async ftruncatePromise(r,o){return this.truncatePromise(this.fdToPath(r,"ftruncate"),o)}ftruncateSync(r,o){return this.truncateSync(this.fdToPath(r,"ftruncateSync"),o)}watch(r,o,a){let n;switch(typeof o){case"function":case"string":case"undefined":n=!0;break;default:({persistent:n=!0}=o);break}if(!n)return{on:()=>{},close:()=>{}};let u=setInterval(()=>{},24*60*60*1e3);return{on:()=>{},close:()=>{clearInterval(u)}}}watchFile(r,o,a){let n=V.resolve(Bt.root,r);return ny(this,n,o,a)}unwatchFile(r,o){let a=V.resolve(Bt.root,r);return Mg(this,a,o)}}});function _le(t,e,r=Buffer.alloc(0),o){let a=new zi(r),n=I=>I===e||I.startsWith(`${e}/`)?I.slice(0,e.length):null,u=async(I,v)=>()=>a,A=(I,v)=>a,p={...t},h=new Tn(p),E=new Hp({baseFs:h,getMountPoint:n,factoryPromise:u,factorySync:A,magicByte:21,maxAge:1/0,typeCheck:o?.typeCheck});return Kw(Ule.default,new qp(E)),a}var Ule,Hle=Et(()=>{St();Ule=$e(ve("fs"));sU()});var qle=Et(()=>{Lle();sU();Hle()});var x1={};Vt(x1,{DEFAULT_COMPRESSION_LEVEL:()=>Mle,LibzipError:()=>Rb,ZipFS:()=>zi,ZipOpenFS:()=>Jl,getArchivePart:()=>rU,getLibzipPromise:()=>uot,getLibzipSync:()=>cot,makeEmptyArchive:()=>Fb,mountMemoryDrive:()=>_le});function cot(){return b1()}async function uot(){return b1()}var jle,nA=Et(()=>{$4();jle=$e(Fle());Nle();qle();Qle(()=>{let t=(0,jle.default)();return Tle(t)})});var RE,Gle=Et(()=>{St();qt();k1();RE=class extends nt{constructor(){super(...arguments);this.cwd=ge.String("--cwd",process.cwd(),{description:"The directory to run the command in"});this.commandName=ge.String();this.args=ge.Proxy()}async execute(){let r=this.args.length>0?`${this.commandName} ${this.args.join(" ")}`:this.commandName;return await TE(r,[],{cwd:ue.toPortablePath(this.cwd),stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr})}};RE.usage={description:"run a command using yarn's portable shell",details:` + This command will run a command using Yarn's portable shell. + + Make sure to escape glob patterns, redirections, and other features that might be expanded by your own shell. + + Note: To escape something from Yarn's shell, you might have to escape it twice, the first time from your own shell. + + Note: Don't use this command in Yarn scripts, as Yarn's shell is automatically used. + + For a list of features, visit: https://github.com/yarnpkg/berry/blob/master/packages/yarnpkg-shell/README.md. + `,examples:[["Run a simple command","$0 echo Hello"],["Run a command with a glob pattern","$0 echo '*.js'"],["Run a command with a redirection","$0 echo Hello World '>' hello.txt"],["Run a command with an escaped glob pattern (The double escape is needed in Unix shells)",`$0 echo '"*.js"'`],["Run a command with a variable (Double quotes are needed in Unix shells, to prevent them from expanding the variable)",'$0 "GREETING=Hello echo $GREETING World"']]}});var al,Yle=Et(()=>{al=class extends Error{constructor(e){super(e),this.name="ShellError"}}});var Lb={};Vt(Lb,{fastGlobOptions:()=>Vle,isBraceExpansion:()=>oU,isGlobPattern:()=>Aot,match:()=>fot,micromatchOptions:()=>Nb});function Aot(t){if(!Tb.default.scan(t,Nb).isGlob)return!1;try{Tb.default.parse(t,Nb)}catch{return!1}return!0}function fot(t,{cwd:e,baseFs:r}){return(0,Wle.default)(t,{...Vle,cwd:ue.fromPortablePath(e),fs:FD(Kle.default,new qp(r))})}function oU(t){return Tb.default.scan(t,Nb).isBrace}var Wle,Kle,Tb,Nb,Vle,Jle=Et(()=>{St();Wle=$e(RP()),Kle=$e(ve("fs")),Tb=$e(Zo()),Nb={strictBrackets:!0},Vle={onlyDirectories:!1,onlyFiles:!1}});function aU(){}function lU(){for(let t of kd)t.kill()}function $le(t,e,r,o){return a=>{let n=a[0]instanceof iA.Transform?"pipe":a[0],u=a[1]instanceof iA.Transform?"pipe":a[1],A=a[2]instanceof iA.Transform?"pipe":a[2],p=(0,Xle.default)(t,e,{...o,stdio:[n,u,A]});return kd.add(p),kd.size===1&&(process.on("SIGINT",aU),process.on("SIGTERM",lU)),a[0]instanceof iA.Transform&&a[0].pipe(p.stdin),a[1]instanceof iA.Transform&&p.stdout.pipe(a[1],{end:!1}),a[2]instanceof iA.Transform&&p.stderr.pipe(a[2],{end:!1}),{stdin:p.stdin,promise:new Promise(h=>{p.on("error",E=>{switch(kd.delete(p),kd.size===0&&(process.off("SIGINT",aU),process.off("SIGTERM",lU)),E.code){case"ENOENT":a[2].write(`command not found: ${t} +`),h(127);break;case"EACCES":a[2].write(`permission denied: ${t} +`),h(128);break;default:a[2].write(`uncaught error: ${E.message} +`),h(1);break}}),p.on("close",E=>{kd.delete(p),kd.size===0&&(process.off("SIGINT",aU),process.off("SIGTERM",lU)),h(E!==null?E:129)})})}}}function ece(t){return e=>{let r=e[0]==="pipe"?new iA.PassThrough:e[0];return{stdin:r,promise:Promise.resolve().then(()=>t({stdin:r,stdout:e[1],stderr:e[2]}))}}}function Ob(t,e){return NE.start(t,e)}function zle(t,e=null){let r=new iA.PassThrough,o=new Zle.StringDecoder,a="";return r.on("data",n=>{let u=o.write(n),A;do if(A=u.indexOf(` +`),A!==-1){let p=a+u.substring(0,A);u=u.substring(A+1),a="",t(e!==null?`${e} ${p}`:p)}while(A!==-1);a+=u}),r.on("end",()=>{let n=o.end();n!==""&&t(e!==null?`${e} ${n}`:n)}),r}function tce(t,{prefix:e}){return{stdout:zle(r=>t.stdout.write(`${r} +`),t.stdout.isTTY?e:null),stderr:zle(r=>t.stderr.write(`${r} +`),t.stderr.isTTY?e:null)}}var Xle,iA,Zle,kd,zl,cU,NE,uU=Et(()=>{Xle=$e(sT()),iA=ve("stream"),Zle=ve("string_decoder"),kd=new Set;zl=class{constructor(e){this.stream=e}close(){}get(){return this.stream}},cU=class{constructor(){this.stream=null}close(){if(this.stream===null)throw new Error("Assertion failed: No stream attached");this.stream.end()}attach(e){this.stream=e}get(){if(this.stream===null)throw new Error("Assertion failed: No stream attached");return this.stream}},NE=class{constructor(e,r){this.stdin=null;this.stdout=null;this.stderr=null;this.pipe=null;this.ancestor=e,this.implementation=r}static start(e,{stdin:r,stdout:o,stderr:a}){let n=new NE(null,e);return n.stdin=r,n.stdout=o,n.stderr=a,n}pipeTo(e,r=1){let o=new NE(this,e),a=new cU;return o.pipe=a,o.stdout=this.stdout,o.stderr=this.stderr,(r&1)===1?this.stdout=a:this.ancestor!==null&&(this.stderr=this.ancestor.stdout),(r&2)===2?this.stderr=a:this.ancestor!==null&&(this.stderr=this.ancestor.stderr),o}async exec(){let e=["ignore","ignore","ignore"];if(this.pipe)e[0]="pipe";else{if(this.stdin===null)throw new Error("Assertion failed: No input stream registered");e[0]=this.stdin.get()}let r;if(this.stdout===null)throw new Error("Assertion failed: No output stream registered");r=this.stdout,e[1]=r.get();let o;if(this.stderr===null)throw new Error("Assertion failed: No error stream registered");o=this.stderr,e[2]=o.get();let a=this.implementation(e);return this.pipe&&this.pipe.attach(a.stdin),await a.promise.then(n=>(r.close(),o.close(),n))}async run(){let e=[];for(let o=this;o;o=o.ancestor)e.push(o.exec());return(await Promise.all(e))[0]}}});var T1={};Vt(T1,{EntryCommand:()=>RE,ShellError:()=>al,execute:()=>TE,globUtils:()=>Lb});function rce(t,e,r){let o=new ll.PassThrough({autoDestroy:!0});switch(t){case 0:(e&1)===1&&r.stdin.pipe(o,{end:!1}),(e&2)===2&&r.stdin instanceof ll.Writable&&o.pipe(r.stdin,{end:!1});break;case 1:(e&1)===1&&r.stdout.pipe(o,{end:!1}),(e&2)===2&&o.pipe(r.stdout,{end:!1});break;case 2:(e&1)===1&&r.stderr.pipe(o,{end:!1}),(e&2)===2&&o.pipe(r.stderr,{end:!1});break;default:throw new al(`Bad file descriptor: "${t}"`)}return o}function Ub(t,e={}){let r={...t,...e};return r.environment={...t.environment,...e.environment},r.variables={...t.variables,...e.variables},r}async function hot(t,e,r){let o=[],a=new ll.PassThrough;return a.on("data",n=>o.push(n)),await _b(t,e,Ub(r,{stdout:a})),Buffer.concat(o).toString().replace(/[\r\n]+$/,"")}async function nce(t,e,r){let o=t.map(async n=>{let u=await Qd(n.args,e,r);return{name:n.name,value:u.join(" ")}});return(await Promise.all(o)).reduce((n,u)=>(n[u.name]=u.value,n),{})}function Mb(t){return t.match(/[^ \r\n\t]+/g)||[]}async function cce(t,e,r,o,a=o){switch(t.name){case"$":o(String(process.pid));break;case"#":o(String(e.args.length));break;case"@":if(t.quoted)for(let n of e.args)a(n);else for(let n of e.args){let u=Mb(n);for(let A=0;A=0&&n"u"&&(t.defaultValue?u=(await Qd(t.defaultValue,e,r)).join(" "):t.alternativeValue&&(u="")),typeof u>"u")throw A?new al(`Unbound argument #${n}`):new al(`Unbound variable "${t.name}"`);if(t.quoted)o(u);else{let p=Mb(u);for(let E=0;Eo.push(n));let a=Number(o.join(" "));return Number.isNaN(a)?Q1({type:"variable",name:o.join(" ")},e,r):Q1({type:"number",value:a},e,r)}else return got[t.type](await Q1(t.left,e,r),await Q1(t.right,e,r))}async function Qd(t,e,r){let o=new Map,a=[],n=[],u=E=>{n.push(E)},A=()=>{n.length>0&&a.push(n.join("")),n=[]},p=E=>{u(E),A()},h=(E,I,v)=>{let x=JSON.stringify({type:E,fd:I}),C=o.get(x);typeof C>"u"&&o.set(x,C=[]),C.push(v)};for(let E of t){let I=!1;switch(E.type){case"redirection":{let v=await Qd(E.args,e,r);for(let x of v)h(E.subtype,E.fd,x)}break;case"argument":for(let v of E.segments)switch(v.type){case"text":u(v.text);break;case"glob":u(v.pattern),I=!0;break;case"shell":{let x=await hot(v.shell,e,r);if(v.quoted)u(x);else{let C=Mb(x);for(let R=0;R"u")throw new Error("Assertion failed: Expected a glob pattern to have been set");let x=await e.glob.match(v,{cwd:r.cwd,baseFs:e.baseFs});if(x.length===0){let C=oU(v)?". Note: Brace expansion of arbitrary strings isn't currently supported. For more details, please read this issue: https://github.com/yarnpkg/berry/issues/22":"";throw new al(`No matches found: "${v}"${C}`)}for(let C of x.sort())p(C)}}if(o.size>0){let E=[];for(let[I,v]of o.entries())E.splice(E.length,0,I,String(v.length),...v);a.splice(0,0,"__ysh_set_redirects",...E,"--")}return a}function F1(t,e,r){e.builtins.has(t[0])||(t=["command",...t]);let o=ue.fromPortablePath(r.cwd),a=r.environment;typeof a.PWD<"u"&&(a={...a,PWD:o});let[n,...u]=t;if(n==="command")return $le(u[0],u.slice(1),e,{cwd:o,env:a});let A=e.builtins.get(n);if(typeof A>"u")throw new Error(`Assertion failed: A builtin should exist for "${n}"`);return ece(async({stdin:p,stdout:h,stderr:E})=>{let{stdin:I,stdout:v,stderr:x}=r;r.stdin=p,r.stdout=h,r.stderr=E;try{return await A(u,e,r)}finally{r.stdin=I,r.stdout=v,r.stderr=x}})}function dot(t,e,r){return o=>{let a=new ll.PassThrough,n=_b(t,e,Ub(r,{stdin:a}));return{stdin:a,promise:n}}}function mot(t,e,r){return o=>{let a=new ll.PassThrough,n=_b(t,e,r);return{stdin:a,promise:n}}}function ice(t,e,r,o){if(e.length===0)return t;{let a;do a=String(Math.random());while(Object.hasOwn(o.procedures,a));return o.procedures={...o.procedures},o.procedures[a]=t,F1([...e,"__ysh_run_procedure",a],r,o)}}async function sce(t,e,r){let o=t,a=null,n=null;for(;o;){let u=o.then?{...r}:r,A;switch(o.type){case"command":{let p=await Qd(o.args,e,r),h=await nce(o.envs,e,r);A=o.envs.length?F1(p,e,Ub(u,{environment:h})):F1(p,e,u)}break;case"subshell":{let p=await Qd(o.args,e,r),h=dot(o.subshell,e,u);A=ice(h,p,e,u)}break;case"group":{let p=await Qd(o.args,e,r),h=mot(o.group,e,u);A=ice(h,p,e,u)}break;case"envs":{let p=await nce(o.envs,e,r);u.environment={...u.environment,...p},A=F1(["true"],e,u)}break}if(typeof A>"u")throw new Error("Assertion failed: An action should have been generated");if(a===null)n=Ob(A,{stdin:new zl(u.stdin),stdout:new zl(u.stdout),stderr:new zl(u.stderr)});else{if(n===null)throw new Error("Assertion failed: The execution pipeline should have been setup");switch(a){case"|":n=n.pipeTo(A,1);break;case"|&":n=n.pipeTo(A,3);break}}o.then?(a=o.then.type,o=o.then.chain):o=null}if(n===null)throw new Error("Assertion failed: The execution pipeline should have been setup");return await n.run()}async function yot(t,e,r,{background:o=!1}={}){function a(n){let u=["#2E86AB","#A23B72","#F18F01","#C73E1D","#CCE2A3"],A=u[n%u.length];return oce.default.hex(A)}if(o){let n=r.nextBackgroundJobIndex++,u=a(n),A=`[${n}]`,p=u(A),{stdout:h,stderr:E}=tce(r,{prefix:p});return r.backgroundJobs.push(sce(t,e,Ub(r,{stdout:h,stderr:E})).catch(I=>E.write(`${I.message} +`)).finally(()=>{r.stdout.isTTY&&r.stdout.write(`Job ${p}, '${u(uy(t))}' has ended +`)})),0}return await sce(t,e,r)}async function Eot(t,e,r,{background:o=!1}={}){let a,n=A=>{a=A,r.variables["?"]=String(A)},u=async A=>{try{return await yot(A.chain,e,r,{background:o&&typeof A.then>"u"})}catch(p){if(!(p instanceof al))throw p;return r.stderr.write(`${p.message} +`),1}};for(n(await u(t));t.then;){if(r.exitCode!==null)return r.exitCode;switch(t.then.type){case"&&":a===0&&n(await u(t.then.line));break;case"||":a!==0&&n(await u(t.then.line));break;default:throw new Error(`Assertion failed: Unsupported command type: "${t.then.type}"`)}t=t.then.line}return a}async function _b(t,e,r){let o=r.backgroundJobs;r.backgroundJobs=[];let a=0;for(let{command:n,type:u}of t){if(a=await Eot(n,e,r,{background:u==="&"}),r.exitCode!==null)return r.exitCode;r.variables["?"]=String(a)}return await Promise.all(r.backgroundJobs),r.backgroundJobs=o,a}function uce(t){switch(t.type){case"variable":return t.name==="@"||t.name==="#"||t.name==="*"||Number.isFinite(parseInt(t.name,10))||"defaultValue"in t&&!!t.defaultValue&&t.defaultValue.some(e=>R1(e))||"alternativeValue"in t&&!!t.alternativeValue&&t.alternativeValue.some(e=>R1(e));case"arithmetic":return AU(t.arithmetic);case"shell":return fU(t.shell);default:return!1}}function R1(t){switch(t.type){case"redirection":return t.args.some(e=>R1(e));case"argument":return t.segments.some(e=>uce(e));default:throw new Error(`Assertion failed: Unsupported argument type: "${t.type}"`)}}function AU(t){switch(t.type){case"variable":return uce(t);case"number":return!1;default:return AU(t.left)||AU(t.right)}}function fU(t){return t.some(({command:e})=>{for(;e;){let r=e.chain;for(;r;){let o;switch(r.type){case"subshell":o=fU(r.subshell);break;case"command":o=r.envs.some(a=>a.args.some(n=>R1(n)))||r.args.some(a=>R1(a));break}if(o)return!0;if(!r.then)break;r=r.then.chain}if(!e.then)break;e=e.then.line}return!1})}async function TE(t,e=[],{baseFs:r=new Tn,builtins:o={},cwd:a=ue.toPortablePath(process.cwd()),env:n=process.env,stdin:u=process.stdin,stdout:A=process.stdout,stderr:p=process.stderr,variables:h={},glob:E=Lb}={}){let I={};for(let[C,R]of Object.entries(n))typeof R<"u"&&(I[C]=R);let v=new Map(pot);for(let[C,R]of Object.entries(o))v.set(C,R);u===null&&(u=new ll.PassThrough,u.end());let x=ND(t,E);if(!fU(x)&&x.length>0&&e.length>0){let{command:C}=x[x.length-1];for(;C.then;)C=C.then.line;let R=C.chain;for(;R.then;)R=R.then.chain;R.type==="command"&&(R.args=R.args.concat(e.map(L=>({type:"argument",segments:[{type:"text",text:L}]}))))}return await _b(x,{args:e,baseFs:r,builtins:v,initialStdin:u,initialStdout:A,initialStderr:p,glob:E},{cwd:a,environment:I,exitCode:null,procedures:{},stdin:u,stdout:A,stderr:p,variables:Object.assign({},h,{["?"]:0}),nextBackgroundJobIndex:1,backgroundJobs:[]})}var oce,ace,ll,lce,pot,got,k1=Et(()=>{St();Nl();oce=$e(IN()),ace=ve("os"),ll=ve("stream"),lce=ve("timers/promises");Gle();Yle();Jle();uU();uU();pot=new Map([["cd",async([t=(0,ace.homedir)(),...e],r,o)=>{let a=V.resolve(o.cwd,ue.toPortablePath(t));if(!(await r.baseFs.statPromise(a).catch(u=>{throw u.code==="ENOENT"?new al(`cd: no such file or directory: ${t}`):u})).isDirectory())throw new al(`cd: not a directory: ${t}`);return o.cwd=a,0}],["pwd",async(t,e,r)=>(r.stdout.write(`${ue.fromPortablePath(r.cwd)} +`),0)],[":",async(t,e,r)=>0],["true",async(t,e,r)=>0],["false",async(t,e,r)=>1],["exit",async([t,...e],r,o)=>o.exitCode=parseInt(t??o.variables["?"],10)],["echo",async(t,e,r)=>(r.stdout.write(`${t.join(" ")} +`),0)],["sleep",async([t],e,r)=>{if(typeof t>"u")throw new al("sleep: missing operand");let o=Number(t);if(Number.isNaN(o))throw new al(`sleep: invalid time interval '${t}'`);return await(0,lce.setTimeout)(1e3*o,0)}],["__ysh_run_procedure",async(t,e,r)=>{let o=r.procedures[t[0]];return await Ob(o,{stdin:new zl(r.stdin),stdout:new zl(r.stdout),stderr:new zl(r.stderr)}).run()}],["__ysh_set_redirects",async(t,e,r)=>{let o=r.stdin,a=r.stdout,n=r.stderr,u=[],A=[],p=[],h=0;for(;t[h]!=="--";){let I=t[h++],{type:v,fd:x}=JSON.parse(I),C=J=>{switch(x){case null:case 0:u.push(J);break;default:throw new Error(`Unsupported file descriptor: "${x}"`)}},R=J=>{switch(x){case null:case 1:A.push(J);break;case 2:p.push(J);break;default:throw new Error(`Unsupported file descriptor: "${x}"`)}},L=Number(t[h++]),U=h+L;for(let J=h;Je.baseFs.createReadStream(V.resolve(r.cwd,ue.toPortablePath(t[J]))));break;case"<<<":C(()=>{let te=new ll.PassThrough;return process.nextTick(()=>{te.write(`${t[J]} +`),te.end()}),te});break;case"<&":C(()=>rce(Number(t[J]),1,r));break;case">":case">>":{let te=V.resolve(r.cwd,ue.toPortablePath(t[J]));R(te==="/dev/null"?new ll.Writable({autoDestroy:!0,emitClose:!0,write(ae,fe,ce){setImmediate(ce)}}):e.baseFs.createWriteStream(te,v===">>"?{flags:"a"}:void 0))}break;case">&":R(rce(Number(t[J]),2,r));break;default:throw new Error(`Assertion failed: Unsupported redirection type: "${v}"`)}}if(u.length>0){let I=new ll.PassThrough;o=I;let v=x=>{if(x===u.length)I.end();else{let C=u[x]();C.pipe(I,{end:!1}),C.on("end",()=>{v(x+1)})}};v(0)}if(A.length>0){let I=new ll.PassThrough;a=I;for(let v of A)I.pipe(v)}if(p.length>0){let I=new ll.PassThrough;n=I;for(let v of p)I.pipe(v)}let E=await Ob(F1(t.slice(h+1),e,r),{stdin:new zl(o),stdout:new zl(a),stderr:new zl(n)}).run();return await Promise.all(A.map(I=>new Promise((v,x)=>{I.on("error",C=>{x(C)}),I.on("close",()=>{v()}),I.end()}))),await Promise.all(p.map(I=>new Promise((v,x)=>{I.on("error",C=>{x(C)}),I.on("close",()=>{v()}),I.end()}))),E}]]);got={addition:(t,e)=>t+e,subtraction:(t,e)=>t-e,multiplication:(t,e)=>t*e,division:(t,e)=>Math.trunc(t/e)}});var Hb=_((r4t,Ace)=>{function Cot(t,e){for(var r=-1,o=t==null?0:t.length,a=Array(o);++r{var fce=pd(),wot=Hb(),Iot=Hl(),Bot=pE(),vot=1/0,pce=fce?fce.prototype:void 0,hce=pce?pce.toString:void 0;function gce(t){if(typeof t=="string")return t;if(Iot(t))return wot(t,gce)+"";if(Bot(t))return hce?hce.call(t):"";var e=t+"";return e=="0"&&1/t==-vot?"-0":e}dce.exports=gce});var N1=_((i4t,yce)=>{var Dot=mce();function Sot(t){return t==null?"":Dot(t)}yce.exports=Sot});var pU=_((s4t,Ece)=>{function Pot(t,e,r){var o=-1,a=t.length;e<0&&(e=-e>a?0:a+e),r=r>a?a:r,r<0&&(r+=a),a=e>r?0:r-e>>>0,e>>>=0;for(var n=Array(a);++o{var bot=pU();function xot(t,e,r){var o=t.length;return r=r===void 0?o:r,!e&&r>=o?t:bot(t,e,r)}Cce.exports=xot});var hU=_((a4t,Ice)=>{var kot="\\ud800-\\udfff",Qot="\\u0300-\\u036f",Fot="\\ufe20-\\ufe2f",Rot="\\u20d0-\\u20ff",Tot=Qot+Fot+Rot,Not="\\ufe0e\\ufe0f",Lot="\\u200d",Oot=RegExp("["+Lot+kot+Tot+Not+"]");function Mot(t){return Oot.test(t)}Ice.exports=Mot});var vce=_((l4t,Bce)=>{function Uot(t){return t.split("")}Bce.exports=Uot});var Fce=_((c4t,Qce)=>{var Dce="\\ud800-\\udfff",_ot="\\u0300-\\u036f",Hot="\\ufe20-\\ufe2f",qot="\\u20d0-\\u20ff",jot=_ot+Hot+qot,Got="\\ufe0e\\ufe0f",Yot="["+Dce+"]",gU="["+jot+"]",dU="\\ud83c[\\udffb-\\udfff]",Wot="(?:"+gU+"|"+dU+")",Sce="[^"+Dce+"]",Pce="(?:\\ud83c[\\udde6-\\uddff]){2}",bce="[\\ud800-\\udbff][\\udc00-\\udfff]",Kot="\\u200d",xce=Wot+"?",kce="["+Got+"]?",Vot="(?:"+Kot+"(?:"+[Sce,Pce,bce].join("|")+")"+kce+xce+")*",Jot=kce+xce+Vot,zot="(?:"+[Sce+gU+"?",gU,Pce,bce,Yot].join("|")+")",Xot=RegExp(dU+"(?="+dU+")|"+zot+Jot,"g");function Zot(t){return t.match(Xot)||[]}Qce.exports=Zot});var Tce=_((u4t,Rce)=>{var $ot=vce(),eat=hU(),tat=Fce();function rat(t){return eat(t)?tat(t):$ot(t)}Rce.exports=rat});var Lce=_((A4t,Nce)=>{var nat=wce(),iat=hU(),sat=Tce(),oat=N1();function aat(t){return function(e){e=oat(e);var r=iat(e)?sat(e):void 0,o=r?r[0]:e.charAt(0),a=r?nat(r,1).join(""):e.slice(1);return o[t]()+a}}Nce.exports=aat});var Mce=_((f4t,Oce)=>{var lat=Lce(),cat=lat("toUpperCase");Oce.exports=cat});var mU=_((p4t,Uce)=>{var uat=N1(),Aat=Mce();function fat(t){return Aat(uat(t).toLowerCase())}Uce.exports=fat});var _ce=_((h4t,qb)=>{function pat(){var t=0,e=1,r=2,o=3,a=4,n=5,u=6,A=7,p=8,h=9,E=10,I=11,v=12,x=13,C=14,R=15,L=16,U=17,J=0,te=1,ae=2,fe=3,ce=4;function me(g,Ee){return 55296<=g.charCodeAt(Ee)&&g.charCodeAt(Ee)<=56319&&56320<=g.charCodeAt(Ee+1)&&g.charCodeAt(Ee+1)<=57343}function he(g,Ee){Ee===void 0&&(Ee=0);var Se=g.charCodeAt(Ee);if(55296<=Se&&Se<=56319&&Ee=1){var le=g.charCodeAt(Ee-1),ne=Se;return 55296<=le&&le<=56319?(le-55296)*1024+(ne-56320)+65536:ne}return Se}function Be(g,Ee,Se){var le=[g].concat(Ee).concat([Se]),ne=le[le.length-2],ee=Se,Ie=le.lastIndexOf(C);if(Ie>1&&le.slice(1,Ie).every(function(H){return H==o})&&[o,x,U].indexOf(g)==-1)return ae;var Fe=le.lastIndexOf(a);if(Fe>0&&le.slice(1,Fe).every(function(H){return H==a})&&[v,a].indexOf(ne)==-1)return le.filter(function(H){return H==a}).length%2==1?fe:ce;if(ne==t&&ee==e)return J;if(ne==r||ne==t||ne==e)return ee==C&&Ee.every(function(H){return H==o})?ae:te;if(ee==r||ee==t||ee==e)return te;if(ne==u&&(ee==u||ee==A||ee==h||ee==E))return J;if((ne==h||ne==A)&&(ee==A||ee==p))return J;if((ne==E||ne==p)&&ee==p)return J;if(ee==o||ee==R)return J;if(ee==n)return J;if(ne==v)return J;var At=le.indexOf(o)!=-1?le.lastIndexOf(o)-1:le.length-2;return[x,U].indexOf(le[At])!=-1&&le.slice(At+1,-1).every(function(H){return H==o})&&ee==C||ne==R&&[L,U].indexOf(ee)!=-1?J:Ee.indexOf(a)!=-1?ae:ne==a&&ee==a?J:te}this.nextBreak=function(g,Ee){if(Ee===void 0&&(Ee=0),Ee<0)return 0;if(Ee>=g.length-1)return g.length;for(var Se=we(he(g,Ee)),le=[],ne=Ee+1;ne{var hat=/^(.*?)(\x1b\[[^m]+m|\x1b\]8;;.*?(\x1b\\|\u0007))/,jb;function gat(){if(jb)return jb;if(typeof Intl.Segmenter<"u"){let t=new Intl.Segmenter("en",{granularity:"grapheme"});return jb=e=>Array.from(t.segment(e),({segment:r})=>r)}else{let t=_ce(),e=new t;return jb=r=>e.splitGraphemes(r)}}Hce.exports=(t,e=0,r=t.length)=>{if(e<0||r<0)throw new RangeError("Negative indices aren't supported by this implementation");let o=r-e,a="",n=0,u=0;for(;t.length>0;){let A=t.match(hat)||[t,t,void 0],p=gat()(A[1]),h=Math.min(e-n,p.length);p=p.slice(h);let E=Math.min(o-u,p.length);a+=p.slice(0,E).join(""),n+=h,u+=E,typeof A[2]<"u"&&(a+=A[2]),t=t.slice(A[0].length)}return a}});var rn,L1=Et(()=>{rn=process.env.YARN_IS_TEST_ENV?"0.0.0":"4.1.1"});function Vce(t,{configuration:e,json:r}){if(!e.get("enableMessageNames"))return"";let a=Wu(t===null?0:t);return!r&&t===null?Mt(e,a,"grey"):a}function yU(t,{configuration:e,json:r}){let o=Vce(t,{configuration:e,json:r});if(!o||t===null||t===0)return o;let a=wr[t],n=`https://yarnpkg.com/advanced/error-codes#${o}---${a}`.toLowerCase();return Zy(e,o,n)}async function LE({configuration:t,stdout:e,forceError:r},o){let a=await Nt.start({configuration:t,stdout:e,includeFooter:!1},async n=>{let u=!1,A=!1;for(let p of o)typeof p.option<"u"&&(p.error||r?(A=!0,n.reportError(50,p.message)):(u=!0,n.reportWarning(50,p.message)),p.callback?.());u&&!A&&n.reportSeparator()});return a.hasErrors()?a.exitCode():null}var Wce,Gb,dat,jce,Gce,Ah,Kce,Yce,mat,yat,Yb,Eat,Nt,O1=Et(()=>{Wce=$e(qce()),Gb=$e(td());fS();Yl();L1();jl();dat="\xB7",jce=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],Gce=80,Ah=Gb.default.GITHUB_ACTIONS?{start:t=>`::group::${t} +`,end:t=>`::endgroup:: +`}:Gb.default.TRAVIS?{start:t=>`travis_fold:start:${t} +`,end:t=>`travis_fold:end:${t} +`}:Gb.default.GITLAB?{start:t=>`section_start:${Math.floor(Date.now()/1e3)}:${t.toLowerCase().replace(/\W+/g,"_")}[collapsed=true]\r\x1B[0K${t} +`,end:t=>`section_end:${Math.floor(Date.now()/1e3)}:${t.toLowerCase().replace(/\W+/g,"_")}\r\x1B[0K`}:null,Kce=Ah!==null,Yce=new Date,mat=["iTerm.app","Apple_Terminal","WarpTerminal","vscode"].includes(process.env.TERM_PROGRAM)||!!process.env.WT_SESSION,yat=t=>t,Yb=yat({patrick:{date:[17,3],chars:["\u{1F340}","\u{1F331}"],size:40},simba:{date:[19,7],chars:["\u{1F981}","\u{1F334}"],size:40},jack:{date:[31,10],chars:["\u{1F383}","\u{1F987}"],size:40},hogsfather:{date:[31,12],chars:["\u{1F389}","\u{1F384}"],size:40},default:{chars:["=","-"],size:80}}),Eat=mat&&Object.keys(Yb).find(t=>{let e=Yb[t];return!(e.date&&(e.date[0]!==Yce.getDate()||e.date[1]!==Yce.getMonth()+1))})||"default";Nt=class extends Xs{constructor({configuration:r,stdout:o,json:a=!1,forceSectionAlignment:n=!1,includeNames:u=!0,includePrefix:A=!0,includeFooter:p=!0,includeLogs:h=!a,includeInfos:E=h,includeWarnings:I=h}){super();this.uncommitted=new Set;this.warningCount=0;this.errorCount=0;this.timerFooter=[];this.startTime=Date.now();this.indent=0;this.level=0;this.progress=new Map;this.progressTime=0;this.progressFrame=0;this.progressTimeout=null;this.progressStyle=null;this.progressMaxScaledSize=null;if(XI(this,{configuration:r}),this.configuration=r,this.forceSectionAlignment=n,this.includeNames=u,this.includePrefix=A,this.includeFooter=p,this.includeInfos=E,this.includeWarnings=I,this.json=a,this.stdout=o,r.get("enableProgressBars")&&!a&&o.isTTY&&o.columns>22){let v=r.get("progressBarStyle")||Eat;if(!Object.hasOwn(Yb,v))throw new Error("Assertion failed: Invalid progress bar style");this.progressStyle=Yb[v];let x=Math.min(this.getRecommendedLength(),80);this.progressMaxScaledSize=Math.floor(this.progressStyle.size*x/80)}}static async start(r,o){let a=new this(r),n=process.emitWarning;process.emitWarning=(u,A)=>{if(typeof u!="string"){let h=u;u=h.message,A=A??h.name}let p=typeof A<"u"?`${A}: ${u}`:u;a.reportWarning(0,p)},r.includeVersion&&a.reportInfo(0,yd(r.configuration,`Yarn ${rn}`,2));try{await o(a)}catch(u){a.reportExceptionOnce(u)}finally{await a.finalize(),process.emitWarning=n}return a}hasErrors(){return this.errorCount>0}exitCode(){return this.hasErrors()?1:0}getRecommendedLength(){let o=this.progressStyle!==null?this.stdout.columns-1:super.getRecommendedLength();return Math.max(40,o-12-this.indent*2)}startSectionSync({reportHeader:r,reportFooter:o,skipIfEmpty:a},n){let u={committed:!1,action:()=>{r?.()}};a?this.uncommitted.add(u):(u.action(),u.committed=!0);let A=Date.now();try{return n()}catch(p){throw this.reportExceptionOnce(p),p}finally{let p=Date.now();this.uncommitted.delete(u),u.committed&&o?.(p-A)}}async startSectionPromise({reportHeader:r,reportFooter:o,skipIfEmpty:a},n){let u={committed:!1,action:()=>{r?.()}};a?this.uncommitted.add(u):(u.action(),u.committed=!0);let A=Date.now();try{return await n()}catch(p){throw this.reportExceptionOnce(p),p}finally{let p=Date.now();this.uncommitted.delete(u),u.committed&&o?.(p-A)}}startTimerImpl(r,o,a){return{cb:typeof o=="function"?o:a,reportHeader:()=>{this.level+=1,this.reportInfo(null,`\u250C ${r}`),this.indent+=1,Ah!==null&&!this.json&&this.includeInfos&&this.stdout.write(Ah.start(r))},reportFooter:A=>{if(this.indent-=1,Ah!==null&&!this.json&&this.includeInfos){this.stdout.write(Ah.end(r));for(let p of this.timerFooter)p()}this.configuration.get("enableTimers")&&A>200?this.reportInfo(null,`\u2514 Completed in ${Mt(this.configuration,A,yt.DURATION)}`):this.reportInfo(null,"\u2514 Completed"),this.level-=1},skipIfEmpty:(typeof o=="function"?{}:o).skipIfEmpty}}startTimerSync(r,o,a){let{cb:n,...u}=this.startTimerImpl(r,o,a);return this.startSectionSync(u,n)}async startTimerPromise(r,o,a){let{cb:n,...u}=this.startTimerImpl(r,o,a);return this.startSectionPromise(u,n)}reportSeparator(){this.indent===0?this.writeLine(""):this.reportInfo(null,"")}reportInfo(r,o){if(!this.includeInfos)return;this.commit();let a=this.formatNameWithHyperlink(r),n=a?`${a}: `:"",u=`${this.formatPrefix(n,"blueBright")}${o}`;this.json?this.reportJson({type:"info",name:r,displayName:this.formatName(r),indent:this.formatIndent(),data:o}):this.writeLine(u)}reportWarning(r,o){if(this.warningCount+=1,!this.includeWarnings)return;this.commit();let a=this.formatNameWithHyperlink(r),n=a?`${a}: `:"";this.json?this.reportJson({type:"warning",name:r,displayName:this.formatName(r),indent:this.formatIndent(),data:o}):this.writeLine(`${this.formatPrefix(n,"yellowBright")}${o}`)}reportError(r,o){this.errorCount+=1,this.timerFooter.push(()=>this.reportErrorImpl(r,o)),this.reportErrorImpl(r,o)}reportErrorImpl(r,o){this.commit();let a=this.formatNameWithHyperlink(r),n=a?`${a}: `:"";this.json?this.reportJson({type:"error",name:r,displayName:this.formatName(r),indent:this.formatIndent(),data:o}):this.writeLine(`${this.formatPrefix(n,"redBright")}${o}`,{truncate:!1})}reportFold(r,o){if(!Ah)return;let a=`${Ah.start(r)}${o}${Ah.end(r)}`;this.timerFooter.push(()=>this.stdout.write(a))}reportProgress(r){if(this.progressStyle===null)return{...Promise.resolve(),stop:()=>{}};if(r.hasProgress&&r.hasTitle)throw new Error("Unimplemented: Progress bars can't have both progress and titles.");let o=!1,a=Promise.resolve().then(async()=>{let u={progress:r.hasProgress?0:void 0,title:r.hasTitle?"":void 0};this.progress.set(r,{definition:u,lastScaledSize:r.hasProgress?-1:void 0,lastTitle:void 0}),this.refreshProgress({delta:-1});for await(let{progress:A,title:p}of r)o||u.progress===A&&u.title===p||(u.progress=A,u.title=p,this.refreshProgress());n()}),n=()=>{o||(o=!0,this.progress.delete(r),this.refreshProgress({delta:1}))};return{...a,stop:n}}reportJson(r){this.json&&this.writeLine(`${JSON.stringify(r)}`)}async finalize(){if(!this.includeFooter)return;let r="";this.errorCount>0?r="Failed with errors":this.warningCount>0?r="Done with warnings":r="Done";let o=Mt(this.configuration,Date.now()-this.startTime,yt.DURATION),a=this.configuration.get("enableTimers")?`${r} in ${o}`:r;this.errorCount>0?this.reportError(0,a):this.warningCount>0?this.reportWarning(0,a):this.reportInfo(0,a)}writeLine(r,{truncate:o}={}){this.clearProgress({clear:!0}),this.stdout.write(`${this.truncate(r,{truncate:o})} +`),this.writeProgress()}writeLines(r,{truncate:o}={}){this.clearProgress({delta:r.length});for(let a of r)this.stdout.write(`${this.truncate(a,{truncate:o})} +`);this.writeProgress()}commit(){let r=this.uncommitted;this.uncommitted=new Set;for(let o of r)o.committed=!0,o.action()}clearProgress({delta:r=0,clear:o=!1}){this.progressStyle!==null&&this.progress.size+r>0&&(this.stdout.write(`\x1B[${this.progress.size+r}A`),(r>0||o)&&this.stdout.write("\x1B[0J"))}writeProgress(){if(this.progressStyle===null||(this.progressTimeout!==null&&clearTimeout(this.progressTimeout),this.progressTimeout=null,this.progress.size===0))return;let r=Date.now();r-this.progressTime>Gce&&(this.progressFrame=(this.progressFrame+1)%jce.length,this.progressTime=r);let o=jce[this.progressFrame];for(let a of this.progress.values()){let n="";if(typeof a.lastScaledSize<"u"){let h=this.progressStyle.chars[0].repeat(a.lastScaledSize),E=this.progressStyle.chars[1].repeat(this.progressMaxScaledSize-a.lastScaledSize);n=` ${h}${E}`}let u=this.formatName(null),A=u?`${u}: `:"",p=a.definition.title?` ${a.definition.title}`:"";this.stdout.write(`${Mt(this.configuration,"\u27A4","blueBright")} ${A}${o}${n}${p} +`)}this.progressTimeout=setTimeout(()=>{this.refreshProgress({force:!0})},Gce)}refreshProgress({delta:r=0,force:o=!1}={}){let a=!1,n=!1;if(o||this.progress.size===0)a=!0;else for(let u of this.progress.values()){let A=typeof u.definition.progress<"u"?Math.trunc(this.progressMaxScaledSize*u.definition.progress):void 0,p=u.lastScaledSize;u.lastScaledSize=A;let h=u.lastTitle;if(u.lastTitle=u.definition.title,A!==p||(n=h!==u.definition.title)){a=!0;break}}a&&(this.clearProgress({delta:r,clear:n}),this.writeProgress())}truncate(r,{truncate:o}={}){return this.progressStyle===null&&(o=!1),typeof o>"u"&&(o=this.configuration.get("preferTruncatedLines")),o&&(r=(0,Wce.default)(r,0,this.stdout.columns-1)),r}formatName(r){return this.includeNames?Vce(r,{configuration:this.configuration,json:this.json}):""}formatPrefix(r,o){return this.includePrefix?`${Mt(this.configuration,"\u27A4",o)} ${r}${this.formatIndent()}`:""}formatNameWithHyperlink(r){return this.includeNames?yU(r,{configuration:this.configuration,json:this.json}):""}formatIndent(){return this.level>0||!this.forceSectionAlignment?"\u2502 ".repeat(this.indent):`${dat} `}}});var un={};Vt(un,{PackageManager:()=>Xce,detectPackageManager:()=>Zce,executePackageAccessibleBinary:()=>nue,executePackageScript:()=>Wb,executePackageShellcode:()=>EU,executeWorkspaceAccessibleBinary:()=>Sat,executeWorkspaceLifecycleScript:()=>tue,executeWorkspaceScript:()=>eue,getPackageAccessibleBinaries:()=>Kb,getWorkspaceAccessibleBinaries:()=>rue,hasPackageScript:()=>Bat,hasWorkspaceScript:()=>CU,isNodeScript:()=>wU,makeScriptEnv:()=>M1,maybeExecuteWorkspaceLifecycleScript:()=>Dat,prepareExternalProject:()=>Iat});async function fh(t,e,r,o=[]){if(process.platform==="win32"){let a=`@goto #_undefined_# 2>NUL || @title %COMSPEC% & @setlocal & @"${r}" ${o.map(n=>`"${n.replace('"','""')}"`).join(" ")} %*`;await oe.writeFilePromise(V.format({dir:t,name:e,ext:".cmd"}),a)}await oe.writeFilePromise(V.join(t,e),`#!/bin/sh +exec "${r}" ${o.map(a=>`'${a.replace(/'/g,`'"'"'`)}'`).join(" ")} "$@" +`,{mode:493})}async function Zce(t){let e=await Ot.tryFind(t);if(e?.packageManager){let o=UP(e.packageManager);if(o?.name){let a=`found ${JSON.stringify({packageManager:e.packageManager})} in manifest`,[n]=o.reference.split(".");switch(o.name){case"yarn":return{packageManagerField:!0,packageManager:Number(n)===1?"Yarn Classic":"Yarn",reason:a};case"npm":return{packageManagerField:!0,packageManager:"npm",reason:a};case"pnpm":return{packageManagerField:!0,packageManager:"pnpm",reason:a}}}}let r;try{r=await oe.readFilePromise(V.join(t,dr.lockfile),"utf8")}catch{}return r!==void 0?r.match(/^__metadata:$/m)?{packageManager:"Yarn",reason:'"__metadata" key found in yarn.lock'}:{packageManager:"Yarn Classic",reason:'"__metadata" key not found in yarn.lock, must be a Yarn classic lockfile'}:oe.existsSync(V.join(t,"package-lock.json"))?{packageManager:"npm",reason:`found npm's "package-lock.json" lockfile`}:oe.existsSync(V.join(t,"pnpm-lock.yaml"))?{packageManager:"pnpm",reason:`found pnpm's "pnpm-lock.yaml" lockfile`}:null}async function M1({project:t,locator:e,binFolder:r,ignoreCorepack:o,lifecycleScript:a,baseEnv:n=t?.configuration.env??process.env}){let u={};for(let[E,I]of Object.entries(n))typeof I<"u"&&(u[E.toLowerCase()!=="path"?E:"PATH"]=I);let A=ue.fromPortablePath(r);u.BERRY_BIN_FOLDER=ue.fromPortablePath(A);let p=process.env.COREPACK_ROOT&&!o?ue.join(process.env.COREPACK_ROOT,"dist/yarn.js"):process.argv[1];if(await Promise.all([fh(r,"node",process.execPath),...rn!==null?[fh(r,"run",process.execPath,[p,"run"]),fh(r,"yarn",process.execPath,[p]),fh(r,"yarnpkg",process.execPath,[p]),fh(r,"node-gyp",process.execPath,[p,"run","--top-level","node-gyp"])]:[]]),t&&(u.INIT_CWD=ue.fromPortablePath(t.configuration.startingCwd),u.PROJECT_CWD=ue.fromPortablePath(t.cwd)),u.PATH=u.PATH?`${A}${ue.delimiter}${u.PATH}`:`${A}`,u.npm_execpath=`${A}${ue.sep}yarn`,u.npm_node_execpath=`${A}${ue.sep}node`,e){if(!t)throw new Error("Assertion failed: Missing project");let E=t.tryWorkspaceByLocator(e),I=E?E.manifest.version??"":t.storedPackages.get(e.locatorHash).version??"";u.npm_package_name=fn(e),u.npm_package_version=I;let v;if(E)v=E.cwd;else{let x=t.storedPackages.get(e.locatorHash);if(!x)throw new Error(`Package for ${qr(t.configuration,e)} not found in the project`);let C=t.configuration.getLinkers(),R={project:t,report:new Nt({stdout:new ph.PassThrough,configuration:t.configuration})},L=C.find(U=>U.supportsPackage(x,R));if(!L)throw new Error(`The package ${qr(t.configuration,x)} isn't supported by any of the available linkers`);v=await L.findPackageLocation(x,R)}u.npm_package_json=ue.fromPortablePath(V.join(v,dr.manifest))}let h=rn!==null?`yarn/${rn}`:`yarn/${Df("@yarnpkg/core").version}-core`;return u.npm_config_user_agent=`${h} npm/? node/${process.version} ${process.platform} ${process.arch}`,a&&(u.npm_lifecycle_event=a),t&&await t.configuration.triggerHook(E=>E.setupScriptEnvironment,t,u,async(E,I,v)=>await fh(r,E,I,v)),u}async function Iat(t,e,{configuration:r,report:o,workspace:a=null,locator:n=null}){await wat(async()=>{await oe.mktempPromise(async u=>{let A=V.join(u,"pack.log"),p=null,{stdout:h,stderr:E}=r.getSubprocessStreams(A,{prefix:ue.fromPortablePath(t),report:o}),I=n&&Hc(n)?r1(n):n,v=I?ba(I):"an external project";h.write(`Packing ${v} from sources +`);let x=await Zce(t),C;x!==null?(h.write(`Using ${x.packageManager} for bootstrap. Reason: ${x.reason} + +`),C=x.packageManager):(h.write(`No package manager configuration detected; defaulting to Yarn + +`),C="Yarn");let R=C==="Yarn"&&!x?.packageManagerField;await oe.mktempPromise(async L=>{let U=await M1({binFolder:L,ignoreCorepack:R}),te=new Map([["Yarn Classic",async()=>{let fe=a!==null?["workspace",a]:[],ce=V.join(t,dr.manifest),me=await oe.readFilePromise(ce),he=await Gc(process.execPath,[process.argv[1],"set","version","classic","--only-if-needed","--yarn-path"],{cwd:t,env:U,stdin:p,stdout:h,stderr:E,end:1});if(he.code!==0)return he.code;await oe.writeFilePromise(ce,me),await oe.appendFilePromise(V.join(t,".npmignore"),`/.yarn +`),h.write(` +`),delete U.NODE_ENV;let Be=await Gc("yarn",["install"],{cwd:t,env:U,stdin:p,stdout:h,stderr:E,end:1});if(Be.code!==0)return Be.code;h.write(` +`);let we=await Gc("yarn",[...fe,"pack","--filename",ue.fromPortablePath(e)],{cwd:t,env:U,stdin:p,stdout:h,stderr:E});return we.code!==0?we.code:0}],["Yarn",async()=>{let fe=a!==null?["workspace",a]:[];U.YARN_ENABLE_INLINE_BUILDS="1";let ce=V.join(t,dr.lockfile);await oe.existsPromise(ce)||await oe.writeFilePromise(ce,"");let me=await Gc("yarn",[...fe,"pack","--install-if-needed","--filename",ue.fromPortablePath(e)],{cwd:t,env:U,stdin:p,stdout:h,stderr:E});return me.code!==0?me.code:0}],["npm",async()=>{if(a!==null){let Ee=new ph.PassThrough,Se=Vy(Ee);Ee.pipe(h,{end:!1});let le=await Gc("npm",["--version"],{cwd:t,env:U,stdin:p,stdout:Ee,stderr:E,end:0});if(Ee.end(),le.code!==0)return h.end(),E.end(),le.code;let ne=(await Se).toString().trim();if(!kf(ne,">=7.x")){let ee=eA(null,"npm"),Ie=In(ee,ne),Fe=In(ee,">=7.x");throw new Error(`Workspaces aren't supported by ${jn(r,Ie)}; please upgrade to ${jn(r,Fe)} (npm has been detected as the primary package manager for ${Mt(r,t,yt.PATH)})`)}}let fe=a!==null?["--workspace",a]:[];delete U.npm_config_user_agent,delete U.npm_config_production,delete U.NPM_CONFIG_PRODUCTION,delete U.NODE_ENV;let ce=await Gc("npm",["install","--legacy-peer-deps"],{cwd:t,env:U,stdin:p,stdout:h,stderr:E,end:1});if(ce.code!==0)return ce.code;let me=new ph.PassThrough,he=Vy(me);me.pipe(h);let Be=await Gc("npm",["pack","--silent",...fe],{cwd:t,env:U,stdin:p,stdout:me,stderr:E});if(Be.code!==0)return Be.code;let we=(await he).toString().trim().replace(/^.*\n/s,""),g=V.resolve(t,ue.toPortablePath(we));return await oe.renamePromise(g,e),0}]]).get(C);if(typeof te>"u")throw new Error("Assertion failed: Unsupported workflow");let ae=await te();if(!(ae===0||typeof ae>"u"))throw oe.detachTemp(u),new zt(58,`Packing the package failed (exit code ${ae}, logs can be found here: ${Mt(r,A,yt.PATH)})`)})})})}async function Bat(t,e,{project:r}){let o=r.tryWorkspaceByLocator(t);if(o!==null)return CU(o,e);let a=r.storedPackages.get(t.locatorHash);if(!a)throw new Error(`Package for ${qr(r.configuration,t)} not found in the project`);return await Jl.openPromise(async n=>{let u=r.configuration,A=r.configuration.getLinkers(),p={project:r,report:new Nt({stdout:new ph.PassThrough,configuration:u})},h=A.find(x=>x.supportsPackage(a,p));if(!h)throw new Error(`The package ${qr(r.configuration,a)} isn't supported by any of the available linkers`);let E=await h.findPackageLocation(a,p),I=new gn(E,{baseFs:n});return(await Ot.find(Bt.dot,{baseFs:I})).scripts.has(e)})}async function Wb(t,e,r,{cwd:o,project:a,stdin:n,stdout:u,stderr:A}){return await oe.mktempPromise(async p=>{let{manifest:h,env:E,cwd:I}=await $ce(t,{project:a,binFolder:p,cwd:o,lifecycleScript:e}),v=h.scripts.get(e);if(typeof v>"u")return 1;let x=async()=>await TE(v,r,{cwd:I,env:E,stdin:n,stdout:u,stderr:A});return await(await a.configuration.reduceHook(R=>R.wrapScriptExecution,x,a,t,e,{script:v,args:r,cwd:I,env:E,stdin:n,stdout:u,stderr:A}))()})}async function EU(t,e,r,{cwd:o,project:a,stdin:n,stdout:u,stderr:A}){return await oe.mktempPromise(async p=>{let{env:h,cwd:E}=await $ce(t,{project:a,binFolder:p,cwd:o});return await TE(e,r,{cwd:E,env:h,stdin:n,stdout:u,stderr:A})})}async function vat(t,{binFolder:e,cwd:r,lifecycleScript:o}){let a=await M1({project:t.project,locator:t.anchoredLocator,binFolder:e,lifecycleScript:o});return await IU(e,await rue(t)),typeof r>"u"&&(r=V.dirname(await oe.realpathPromise(V.join(t.cwd,"package.json")))),{manifest:t.manifest,binFolder:e,env:a,cwd:r}}async function $ce(t,{project:e,binFolder:r,cwd:o,lifecycleScript:a}){let n=e.tryWorkspaceByLocator(t);if(n!==null)return vat(n,{binFolder:r,cwd:o,lifecycleScript:a});let u=e.storedPackages.get(t.locatorHash);if(!u)throw new Error(`Package for ${qr(e.configuration,t)} not found in the project`);return await Jl.openPromise(async A=>{let p=e.configuration,h=e.configuration.getLinkers(),E={project:e,report:new Nt({stdout:new ph.PassThrough,configuration:p})},I=h.find(L=>L.supportsPackage(u,E));if(!I)throw new Error(`The package ${qr(e.configuration,u)} isn't supported by any of the available linkers`);let v=await M1({project:e,locator:t,binFolder:r,lifecycleScript:a});await IU(r,await Kb(t,{project:e}));let x=await I.findPackageLocation(u,E),C=new gn(x,{baseFs:A}),R=await Ot.find(Bt.dot,{baseFs:C});return typeof o>"u"&&(o=x),{manifest:R,binFolder:r,env:v,cwd:o}})}async function eue(t,e,r,{cwd:o,stdin:a,stdout:n,stderr:u}){return await Wb(t.anchoredLocator,e,r,{cwd:o,project:t.project,stdin:a,stdout:n,stderr:u})}function CU(t,e){return t.manifest.scripts.has(e)}async function tue(t,e,{cwd:r,report:o}){let{configuration:a}=t.project,n=null;await oe.mktempPromise(async u=>{let A=V.join(u,`${e}.log`),p=`# This file contains the result of Yarn calling the "${e}" lifecycle script inside a workspace ("${ue.fromPortablePath(t.cwd)}") +`,{stdout:h,stderr:E}=a.getSubprocessStreams(A,{report:o,prefix:qr(a,t.anchoredLocator),header:p});o.reportInfo(36,`Calling the "${e}" lifecycle script`);let I=await eue(t,e,[],{cwd:r,stdin:n,stdout:h,stderr:E});if(h.end(),E.end(),I!==0)throw oe.detachTemp(u),new zt(36,`${(0,Jce.default)(e)} script failed (exit code ${Mt(a,I,yt.NUMBER)}, logs can be found here: ${Mt(a,A,yt.PATH)}); run ${Mt(a,`yarn ${e}`,yt.CODE)} to investigate`)})}async function Dat(t,e,r){CU(t,e)&&await tue(t,e,r)}function wU(t){let e=V.extname(t);if(e.match(/\.[cm]?[jt]sx?$/))return!0;if(e===".exe"||e===".bin")return!1;let r=Buffer.alloc(4),o;try{o=oe.openSync(t,"r")}catch{return!0}try{oe.readSync(o,r,0,r.length,0)}finally{oe.closeSync(o)}let a=r.readUint32BE();return!(a===3405691582||a===3489328638||a===2135247942||(a&4294901760)===1297743872)}async function Kb(t,{project:e}){let r=e.configuration,o=new Map,a=e.storedPackages.get(t.locatorHash);if(!a)throw new Error(`Package for ${qr(r,t)} not found in the project`);let n=new ph.Writable,u=r.getLinkers(),A={project:e,report:new Nt({configuration:r,stdout:n})},p=new Set([t.locatorHash]);for(let E of a.dependencies.values()){let I=e.storedResolutions.get(E.descriptorHash);if(!I)throw new Error(`Assertion failed: The resolution (${jn(r,E)}) should have been registered`);p.add(I)}let h=await Promise.all(Array.from(p,async E=>{let I=e.storedPackages.get(E);if(!I)throw new Error(`Assertion failed: The package (${E}) should have been registered`);if(I.bin.size===0)return sl.skip;let v=u.find(C=>C.supportsPackage(I,A));if(!v)return sl.skip;let x=null;try{x=await v.findPackageLocation(I,A)}catch(C){if(C.code==="LOCATOR_NOT_INSTALLED")return sl.skip;throw C}return{dependency:I,packageLocation:x}}));for(let E of h){if(E===sl.skip)continue;let{dependency:I,packageLocation:v}=E;for(let[x,C]of I.bin){let R=V.resolve(v,C);o.set(x,[I,ue.fromPortablePath(R),wU(R)])}}return o}async function rue(t){return await Kb(t.anchoredLocator,{project:t.project})}async function IU(t,e){await Promise.all(Array.from(e,([r,[,o,a]])=>a?fh(t,r,process.execPath,[o]):fh(t,r,o,[])))}async function nue(t,e,r,{cwd:o,project:a,stdin:n,stdout:u,stderr:A,nodeArgs:p=[],packageAccessibleBinaries:h}){h??=await Kb(t,{project:a});let E=h.get(e);if(!E)throw new Error(`Binary not found (${e}) for ${qr(a.configuration,t)}`);return await oe.mktempPromise(async I=>{let[,v]=E,x=await M1({project:a,locator:t,binFolder:I});await IU(x.BERRY_BIN_FOLDER,h);let C=wU(ue.toPortablePath(v))?Gc(process.execPath,[...p,v,...r],{cwd:o,env:x,stdin:n,stdout:u,stderr:A}):Gc(v,r,{cwd:o,env:x,stdin:n,stdout:u,stderr:A}),R;try{R=await C}finally{await oe.removePromise(x.BERRY_BIN_FOLDER)}return R.code})}async function Sat(t,e,r,{cwd:o,stdin:a,stdout:n,stderr:u,packageAccessibleBinaries:A}){return await nue(t.anchoredLocator,e,r,{project:t.project,cwd:o,stdin:a,stdout:n,stderr:u,packageAccessibleBinaries:A})}var Jce,zce,ph,Xce,Cat,wat,BU=Et(()=>{St();St();nA();k1();Jce=$e(mU()),zce=$e(id()),ph=ve("stream");fE();Yl();O1();L1();Db();jl();ql();Qf();bo();Xce=(a=>(a.Yarn1="Yarn Classic",a.Yarn2="Yarn",a.Npm="npm",a.Pnpm="pnpm",a))(Xce||{});Cat=2,wat=(0,zce.default)(Cat)});var OE=_((L4t,sue)=>{"use strict";var iue=new Map([["C","cwd"],["f","file"],["z","gzip"],["P","preservePaths"],["U","unlink"],["strip-components","strip"],["stripComponents","strip"],["keep-newer","newer"],["keepNewer","newer"],["keep-newer-files","newer"],["keepNewerFiles","newer"],["k","keep"],["keep-existing","keep"],["keepExisting","keep"],["m","noMtime"],["no-mtime","noMtime"],["p","preserveOwner"],["L","follow"],["h","follow"]]);sue.exports=t=>t?Object.keys(t).map(e=>[iue.has(e)?iue.get(e):e,t[e]]).reduce((e,r)=>(e[r[0]]=r[1],e),Object.create(null)):{}});var UE=_((O4t,hue)=>{"use strict";var oue=typeof process=="object"&&process?process:{stdout:null,stderr:null},Pat=ve("events"),aue=ve("stream"),lue=ve("string_decoder").StringDecoder,Mf=Symbol("EOF"),Uf=Symbol("maybeEmitEnd"),hh=Symbol("emittedEnd"),Vb=Symbol("emittingEnd"),U1=Symbol("emittedError"),Jb=Symbol("closed"),cue=Symbol("read"),zb=Symbol("flush"),uue=Symbol("flushChunk"),ka=Symbol("encoding"),_f=Symbol("decoder"),Xb=Symbol("flowing"),_1=Symbol("paused"),ME=Symbol("resume"),Fs=Symbol("bufferLength"),vU=Symbol("bufferPush"),DU=Symbol("bufferShift"),Fo=Symbol("objectMode"),Ro=Symbol("destroyed"),SU=Symbol("emitData"),Aue=Symbol("emitEnd"),PU=Symbol("emitEnd2"),Hf=Symbol("async"),H1=t=>Promise.resolve().then(t),fue=global._MP_NO_ITERATOR_SYMBOLS_!=="1",bat=fue&&Symbol.asyncIterator||Symbol("asyncIterator not implemented"),xat=fue&&Symbol.iterator||Symbol("iterator not implemented"),kat=t=>t==="end"||t==="finish"||t==="prefinish",Qat=t=>t instanceof ArrayBuffer||typeof t=="object"&&t.constructor&&t.constructor.name==="ArrayBuffer"&&t.byteLength>=0,Fat=t=>!Buffer.isBuffer(t)&&ArrayBuffer.isView(t),Zb=class{constructor(e,r,o){this.src=e,this.dest=r,this.opts=o,this.ondrain=()=>e[ME](),r.on("drain",this.ondrain)}unpipe(){this.dest.removeListener("drain",this.ondrain)}proxyErrors(){}end(){this.unpipe(),this.opts.end&&this.dest.end()}},bU=class extends Zb{unpipe(){this.src.removeListener("error",this.proxyErrors),super.unpipe()}constructor(e,r,o){super(e,r,o),this.proxyErrors=a=>r.emit("error",a),e.on("error",this.proxyErrors)}};hue.exports=class pue extends aue{constructor(e){super(),this[Xb]=!1,this[_1]=!1,this.pipes=[],this.buffer=[],this[Fo]=e&&e.objectMode||!1,this[Fo]?this[ka]=null:this[ka]=e&&e.encoding||null,this[ka]==="buffer"&&(this[ka]=null),this[Hf]=e&&!!e.async||!1,this[_f]=this[ka]?new lue(this[ka]):null,this[Mf]=!1,this[hh]=!1,this[Vb]=!1,this[Jb]=!1,this[U1]=null,this.writable=!0,this.readable=!0,this[Fs]=0,this[Ro]=!1}get bufferLength(){return this[Fs]}get encoding(){return this[ka]}set encoding(e){if(this[Fo])throw new Error("cannot set encoding in objectMode");if(this[ka]&&e!==this[ka]&&(this[_f]&&this[_f].lastNeed||this[Fs]))throw new Error("cannot change encoding");this[ka]!==e&&(this[_f]=e?new lue(e):null,this.buffer.length&&(this.buffer=this.buffer.map(r=>this[_f].write(r)))),this[ka]=e}setEncoding(e){this.encoding=e}get objectMode(){return this[Fo]}set objectMode(e){this[Fo]=this[Fo]||!!e}get async(){return this[Hf]}set async(e){this[Hf]=this[Hf]||!!e}write(e,r,o){if(this[Mf])throw new Error("write after end");if(this[Ro])return this.emit("error",Object.assign(new Error("Cannot call write after a stream was destroyed"),{code:"ERR_STREAM_DESTROYED"})),!0;typeof r=="function"&&(o=r,r="utf8"),r||(r="utf8");let a=this[Hf]?H1:n=>n();return!this[Fo]&&!Buffer.isBuffer(e)&&(Fat(e)?e=Buffer.from(e.buffer,e.byteOffset,e.byteLength):Qat(e)?e=Buffer.from(e):typeof e!="string"&&(this.objectMode=!0)),this[Fo]?(this.flowing&&this[Fs]!==0&&this[zb](!0),this.flowing?this.emit("data",e):this[vU](e),this[Fs]!==0&&this.emit("readable"),o&&a(o),this.flowing):e.length?(typeof e=="string"&&!(r===this[ka]&&!this[_f].lastNeed)&&(e=Buffer.from(e,r)),Buffer.isBuffer(e)&&this[ka]&&(e=this[_f].write(e)),this.flowing&&this[Fs]!==0&&this[zb](!0),this.flowing?this.emit("data",e):this[vU](e),this[Fs]!==0&&this.emit("readable"),o&&a(o),this.flowing):(this[Fs]!==0&&this.emit("readable"),o&&a(o),this.flowing)}read(e){if(this[Ro])return null;if(this[Fs]===0||e===0||e>this[Fs])return this[Uf](),null;this[Fo]&&(e=null),this.buffer.length>1&&!this[Fo]&&(this.encoding?this.buffer=[this.buffer.join("")]:this.buffer=[Buffer.concat(this.buffer,this[Fs])]);let r=this[cue](e||null,this.buffer[0]);return this[Uf](),r}[cue](e,r){return e===r.length||e===null?this[DU]():(this.buffer[0]=r.slice(e),r=r.slice(0,e),this[Fs]-=e),this.emit("data",r),!this.buffer.length&&!this[Mf]&&this.emit("drain"),r}end(e,r,o){return typeof e=="function"&&(o=e,e=null),typeof r=="function"&&(o=r,r="utf8"),e&&this.write(e,r),o&&this.once("end",o),this[Mf]=!0,this.writable=!1,(this.flowing||!this[_1])&&this[Uf](),this}[ME](){this[Ro]||(this[_1]=!1,this[Xb]=!0,this.emit("resume"),this.buffer.length?this[zb]():this[Mf]?this[Uf]():this.emit("drain"))}resume(){return this[ME]()}pause(){this[Xb]=!1,this[_1]=!0}get destroyed(){return this[Ro]}get flowing(){return this[Xb]}get paused(){return this[_1]}[vU](e){this[Fo]?this[Fs]+=1:this[Fs]+=e.length,this.buffer.push(e)}[DU](){return this.buffer.length&&(this[Fo]?this[Fs]-=1:this[Fs]-=this.buffer[0].length),this.buffer.shift()}[zb](e){do;while(this[uue](this[DU]()));!e&&!this.buffer.length&&!this[Mf]&&this.emit("drain")}[uue](e){return e?(this.emit("data",e),this.flowing):!1}pipe(e,r){if(this[Ro])return;let o=this[hh];return r=r||{},e===oue.stdout||e===oue.stderr?r.end=!1:r.end=r.end!==!1,r.proxyErrors=!!r.proxyErrors,o?r.end&&e.end():(this.pipes.push(r.proxyErrors?new bU(this,e,r):new Zb(this,e,r)),this[Hf]?H1(()=>this[ME]()):this[ME]()),e}unpipe(e){let r=this.pipes.find(o=>o.dest===e);r&&(this.pipes.splice(this.pipes.indexOf(r),1),r.unpipe())}addListener(e,r){return this.on(e,r)}on(e,r){let o=super.on(e,r);return e==="data"&&!this.pipes.length&&!this.flowing?this[ME]():e==="readable"&&this[Fs]!==0?super.emit("readable"):kat(e)&&this[hh]?(super.emit(e),this.removeAllListeners(e)):e==="error"&&this[U1]&&(this[Hf]?H1(()=>r.call(this,this[U1])):r.call(this,this[U1])),o}get emittedEnd(){return this[hh]}[Uf](){!this[Vb]&&!this[hh]&&!this[Ro]&&this.buffer.length===0&&this[Mf]&&(this[Vb]=!0,this.emit("end"),this.emit("prefinish"),this.emit("finish"),this[Jb]&&this.emit("close"),this[Vb]=!1)}emit(e,r,...o){if(e!=="error"&&e!=="close"&&e!==Ro&&this[Ro])return;if(e==="data")return r?this[Hf]?H1(()=>this[SU](r)):this[SU](r):!1;if(e==="end")return this[Aue]();if(e==="close"){if(this[Jb]=!0,!this[hh]&&!this[Ro])return;let n=super.emit("close");return this.removeAllListeners("close"),n}else if(e==="error"){this[U1]=r;let n=super.emit("error",r);return this[Uf](),n}else if(e==="resume"){let n=super.emit("resume");return this[Uf](),n}else if(e==="finish"||e==="prefinish"){let n=super.emit(e);return this.removeAllListeners(e),n}let a=super.emit(e,r,...o);return this[Uf](),a}[SU](e){for(let o of this.pipes)o.dest.write(e)===!1&&this.pause();let r=super.emit("data",e);return this[Uf](),r}[Aue](){this[hh]||(this[hh]=!0,this.readable=!1,this[Hf]?H1(()=>this[PU]()):this[PU]())}[PU](){if(this[_f]){let r=this[_f].end();if(r){for(let o of this.pipes)o.dest.write(r);super.emit("data",r)}}for(let r of this.pipes)r.end();let e=super.emit("end");return this.removeAllListeners("end"),e}collect(){let e=[];this[Fo]||(e.dataLength=0);let r=this.promise();return this.on("data",o=>{e.push(o),this[Fo]||(e.dataLength+=o.length)}),r.then(()=>e)}concat(){return this[Fo]?Promise.reject(new Error("cannot concat in objectMode")):this.collect().then(e=>this[Fo]?Promise.reject(new Error("cannot concat in objectMode")):this[ka]?e.join(""):Buffer.concat(e,e.dataLength))}promise(){return new Promise((e,r)=>{this.on(Ro,()=>r(new Error("stream destroyed"))),this.on("error",o=>r(o)),this.on("end",()=>e())})}[bat](){return{next:()=>{let r=this.read();if(r!==null)return Promise.resolve({done:!1,value:r});if(this[Mf])return Promise.resolve({done:!0});let o=null,a=null,n=h=>{this.removeListener("data",u),this.removeListener("end",A),a(h)},u=h=>{this.removeListener("error",n),this.removeListener("end",A),this.pause(),o({value:h,done:!!this[Mf]})},A=()=>{this.removeListener("error",n),this.removeListener("data",u),o({done:!0})},p=()=>n(new Error("stream destroyed"));return new Promise((h,E)=>{a=E,o=h,this.once(Ro,p),this.once("error",n),this.once("end",A),this.once("data",u)})}}}[xat](){return{next:()=>{let r=this.read();return{value:r,done:r===null}}}}destroy(e){return this[Ro]?(e?this.emit("error",e):this.emit(Ro),this):(this[Ro]=!0,this.buffer.length=0,this[Fs]=0,typeof this.close=="function"&&!this[Jb]&&this.close(),e?this.emit("error",e):this.emit(Ro),this)}static isStream(e){return!!e&&(e instanceof pue||e instanceof aue||e instanceof Pat&&(typeof e.pipe=="function"||typeof e.write=="function"&&typeof e.end=="function"))}}});var due=_((M4t,gue)=>{var Rat=ve("zlib").constants||{ZLIB_VERNUM:4736};gue.exports=Object.freeze(Object.assign(Object.create(null),{Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_VERSION_ERROR:-6,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,DEFLATE:1,INFLATE:2,GZIP:3,GUNZIP:4,DEFLATERAW:5,INFLATERAW:6,UNZIP:7,BROTLI_DECODE:8,BROTLI_ENCODE:9,Z_MIN_WINDOWBITS:8,Z_MAX_WINDOWBITS:15,Z_DEFAULT_WINDOWBITS:15,Z_MIN_CHUNK:64,Z_MAX_CHUNK:1/0,Z_DEFAULT_CHUNK:16384,Z_MIN_MEMLEVEL:1,Z_MAX_MEMLEVEL:9,Z_DEFAULT_MEMLEVEL:8,Z_MIN_LEVEL:-1,Z_MAX_LEVEL:9,Z_DEFAULT_LEVEL:-1,BROTLI_OPERATION_PROCESS:0,BROTLI_OPERATION_FLUSH:1,BROTLI_OPERATION_FINISH:2,BROTLI_OPERATION_EMIT_METADATA:3,BROTLI_MODE_GENERIC:0,BROTLI_MODE_TEXT:1,BROTLI_MODE_FONT:2,BROTLI_DEFAULT_MODE:0,BROTLI_MIN_QUALITY:0,BROTLI_MAX_QUALITY:11,BROTLI_DEFAULT_QUALITY:11,BROTLI_MIN_WINDOW_BITS:10,BROTLI_MAX_WINDOW_BITS:24,BROTLI_LARGE_MAX_WINDOW_BITS:30,BROTLI_DEFAULT_WINDOW:22,BROTLI_MIN_INPUT_BLOCK_BITS:16,BROTLI_MAX_INPUT_BLOCK_BITS:24,BROTLI_PARAM_MODE:0,BROTLI_PARAM_QUALITY:1,BROTLI_PARAM_LGWIN:2,BROTLI_PARAM_LGBLOCK:3,BROTLI_PARAM_DISABLE_LITERAL_CONTEXT_MODELING:4,BROTLI_PARAM_SIZE_HINT:5,BROTLI_PARAM_LARGE_WINDOW:6,BROTLI_PARAM_NPOSTFIX:7,BROTLI_PARAM_NDIRECT:8,BROTLI_DECODER_RESULT_ERROR:0,BROTLI_DECODER_RESULT_SUCCESS:1,BROTLI_DECODER_RESULT_NEEDS_MORE_INPUT:2,BROTLI_DECODER_RESULT_NEEDS_MORE_OUTPUT:3,BROTLI_DECODER_PARAM_DISABLE_RING_BUFFER_REALLOCATION:0,BROTLI_DECODER_PARAM_LARGE_WINDOW:1,BROTLI_DECODER_NO_ERROR:0,BROTLI_DECODER_SUCCESS:1,BROTLI_DECODER_NEEDS_MORE_INPUT:2,BROTLI_DECODER_NEEDS_MORE_OUTPUT:3,BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_NIBBLE:-1,BROTLI_DECODER_ERROR_FORMAT_RESERVED:-2,BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_META_NIBBLE:-3,BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_ALPHABET:-4,BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_SAME:-5,BROTLI_DECODER_ERROR_FORMAT_CL_SPACE:-6,BROTLI_DECODER_ERROR_FORMAT_HUFFMAN_SPACE:-7,BROTLI_DECODER_ERROR_FORMAT_CONTEXT_MAP_REPEAT:-8,BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_1:-9,BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_2:-10,BROTLI_DECODER_ERROR_FORMAT_TRANSFORM:-11,BROTLI_DECODER_ERROR_FORMAT_DICTIONARY:-12,BROTLI_DECODER_ERROR_FORMAT_WINDOW_BITS:-13,BROTLI_DECODER_ERROR_FORMAT_PADDING_1:-14,BROTLI_DECODER_ERROR_FORMAT_PADDING_2:-15,BROTLI_DECODER_ERROR_FORMAT_DISTANCE:-16,BROTLI_DECODER_ERROR_DICTIONARY_NOT_SET:-19,BROTLI_DECODER_ERROR_INVALID_ARGUMENTS:-20,BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MODES:-21,BROTLI_DECODER_ERROR_ALLOC_TREE_GROUPS:-22,BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MAP:-25,BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_1:-26,BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_2:-27,BROTLI_DECODER_ERROR_ALLOC_BLOCK_TYPE_TREES:-30,BROTLI_DECODER_ERROR_UNREACHABLE:-31},Rat))});var GU=_(cl=>{"use strict";var RU=ve("assert"),gh=ve("buffer").Buffer,Eue=ve("zlib"),Fd=cl.constants=due(),Tat=UE(),mue=gh.concat,Rd=Symbol("_superWrite"),HE=class extends Error{constructor(e){super("zlib: "+e.message),this.code=e.code,this.errno=e.errno,this.code||(this.code="ZLIB_ERROR"),this.message="zlib: "+e.message,Error.captureStackTrace(this,this.constructor)}get name(){return"ZlibError"}},Nat=Symbol("opts"),q1=Symbol("flushFlag"),yue=Symbol("finishFlushFlag"),jU=Symbol("fullFlushFlag"),ti=Symbol("handle"),$b=Symbol("onError"),_E=Symbol("sawError"),xU=Symbol("level"),kU=Symbol("strategy"),QU=Symbol("ended"),U4t=Symbol("_defaultFullFlush"),ex=class extends Tat{constructor(e,r){if(!e||typeof e!="object")throw new TypeError("invalid options for ZlibBase constructor");super(e),this[_E]=!1,this[QU]=!1,this[Nat]=e,this[q1]=e.flush,this[yue]=e.finishFlush;try{this[ti]=new Eue[r](e)}catch(o){throw new HE(o)}this[$b]=o=>{this[_E]||(this[_E]=!0,this.close(),this.emit("error",o))},this[ti].on("error",o=>this[$b](new HE(o))),this.once("end",()=>this.close)}close(){this[ti]&&(this[ti].close(),this[ti]=null,this.emit("close"))}reset(){if(!this[_E])return RU(this[ti],"zlib binding closed"),this[ti].reset()}flush(e){this.ended||(typeof e!="number"&&(e=this[jU]),this.write(Object.assign(gh.alloc(0),{[q1]:e})))}end(e,r,o){return e&&this.write(e,r),this.flush(this[yue]),this[QU]=!0,super.end(null,null,o)}get ended(){return this[QU]}write(e,r,o){if(typeof r=="function"&&(o=r,r="utf8"),typeof e=="string"&&(e=gh.from(e,r)),this[_E])return;RU(this[ti],"zlib binding closed");let a=this[ti]._handle,n=a.close;a.close=()=>{};let u=this[ti].close;this[ti].close=()=>{},gh.concat=h=>h;let A;try{let h=typeof e[q1]=="number"?e[q1]:this[q1];A=this[ti]._processChunk(e,h),gh.concat=mue}catch(h){gh.concat=mue,this[$b](new HE(h))}finally{this[ti]&&(this[ti]._handle=a,a.close=n,this[ti].close=u,this[ti].removeAllListeners("error"))}this[ti]&&this[ti].on("error",h=>this[$b](new HE(h)));let p;if(A)if(Array.isArray(A)&&A.length>0){p=this[Rd](gh.from(A[0]));for(let h=1;h{this.flush(a),n()};try{this[ti].params(e,r)}finally{this[ti].flush=o}this[ti]&&(this[xU]=e,this[kU]=r)}}}},TU=class extends qf{constructor(e){super(e,"Deflate")}},NU=class extends qf{constructor(e){super(e,"Inflate")}},FU=Symbol("_portable"),LU=class extends qf{constructor(e){super(e,"Gzip"),this[FU]=e&&!!e.portable}[Rd](e){return this[FU]?(this[FU]=!1,e[9]=255,super[Rd](e)):super[Rd](e)}},OU=class extends qf{constructor(e){super(e,"Gunzip")}},MU=class extends qf{constructor(e){super(e,"DeflateRaw")}},UU=class extends qf{constructor(e){super(e,"InflateRaw")}},_U=class extends qf{constructor(e){super(e,"Unzip")}},tx=class extends ex{constructor(e,r){e=e||{},e.flush=e.flush||Fd.BROTLI_OPERATION_PROCESS,e.finishFlush=e.finishFlush||Fd.BROTLI_OPERATION_FINISH,super(e,r),this[jU]=Fd.BROTLI_OPERATION_FLUSH}},HU=class extends tx{constructor(e){super(e,"BrotliCompress")}},qU=class extends tx{constructor(e){super(e,"BrotliDecompress")}};cl.Deflate=TU;cl.Inflate=NU;cl.Gzip=LU;cl.Gunzip=OU;cl.DeflateRaw=MU;cl.InflateRaw=UU;cl.Unzip=_U;typeof Eue.BrotliCompress=="function"?(cl.BrotliCompress=HU,cl.BrotliDecompress=qU):cl.BrotliCompress=cl.BrotliDecompress=class{constructor(){throw new Error("Brotli is not supported in this version of Node.js")}}});var qE=_((q4t,Cue)=>{var Lat=process.env.TESTING_TAR_FAKE_PLATFORM||process.platform;Cue.exports=Lat!=="win32"?t=>t:t=>t&&t.replace(/\\/g,"/")});var rx=_((G4t,wue)=>{"use strict";var Oat=UE(),YU=qE(),WU=Symbol("slurp");wue.exports=class extends Oat{constructor(e,r,o){switch(super(),this.pause(),this.extended=r,this.globalExtended=o,this.header=e,this.startBlockSize=512*Math.ceil(e.size/512),this.blockRemain=this.startBlockSize,this.remain=e.size,this.type=e.type,this.meta=!1,this.ignore=!1,this.type){case"File":case"OldFile":case"Link":case"SymbolicLink":case"CharacterDevice":case"BlockDevice":case"Directory":case"FIFO":case"ContiguousFile":case"GNUDumpDir":break;case"NextFileHasLongLinkpath":case"NextFileHasLongPath":case"OldGnuLongPath":case"GlobalExtendedHeader":case"ExtendedHeader":case"OldExtendedHeader":this.meta=!0;break;default:this.ignore=!0}this.path=YU(e.path),this.mode=e.mode,this.mode&&(this.mode=this.mode&4095),this.uid=e.uid,this.gid=e.gid,this.uname=e.uname,this.gname=e.gname,this.size=e.size,this.mtime=e.mtime,this.atime=e.atime,this.ctime=e.ctime,this.linkpath=YU(e.linkpath),this.uname=e.uname,this.gname=e.gname,r&&this[WU](r),o&&this[WU](o,!0)}write(e){let r=e.length;if(r>this.blockRemain)throw new Error("writing more to entry than is appropriate");let o=this.remain,a=this.blockRemain;return this.remain=Math.max(0,o-r),this.blockRemain=Math.max(0,a-r),this.ignore?!0:o>=r?super.write(e):super.write(e.slice(0,o))}[WU](e,r){for(let o in e)e[o]!==null&&e[o]!==void 0&&!(r&&o==="path")&&(this[o]=o==="path"||o==="linkpath"?YU(e[o]):e[o])}}});var KU=_(nx=>{"use strict";nx.name=new Map([["0","File"],["","OldFile"],["1","Link"],["2","SymbolicLink"],["3","CharacterDevice"],["4","BlockDevice"],["5","Directory"],["6","FIFO"],["7","ContiguousFile"],["g","GlobalExtendedHeader"],["x","ExtendedHeader"],["A","SolarisACL"],["D","GNUDumpDir"],["I","Inode"],["K","NextFileHasLongLinkpath"],["L","NextFileHasLongPath"],["M","ContinuationFile"],["N","OldGnuLongPath"],["S","SparseFile"],["V","TapeVolumeHeader"],["X","OldExtendedHeader"]]);nx.code=new Map(Array.from(nx.name).map(t=>[t[1],t[0]]))});var Due=_((W4t,vue)=>{"use strict";var Mat=(t,e)=>{if(Number.isSafeInteger(t))t<0?_at(t,e):Uat(t,e);else throw Error("cannot encode number outside of javascript safe integer range");return e},Uat=(t,e)=>{e[0]=128;for(var r=e.length;r>1;r--)e[r-1]=t&255,t=Math.floor(t/256)},_at=(t,e)=>{e[0]=255;var r=!1;t=t*-1;for(var o=e.length;o>1;o--){var a=t&255;t=Math.floor(t/256),r?e[o-1]=Iue(a):a===0?e[o-1]=0:(r=!0,e[o-1]=Bue(a))}},Hat=t=>{let e=t[0],r=e===128?jat(t.slice(1,t.length)):e===255?qat(t):null;if(r===null)throw Error("invalid base256 encoding");if(!Number.isSafeInteger(r))throw Error("parsed number outside of javascript safe integer range");return r},qat=t=>{for(var e=t.length,r=0,o=!1,a=e-1;a>-1;a--){var n=t[a],u;o?u=Iue(n):n===0?u=n:(o=!0,u=Bue(n)),u!==0&&(r-=u*Math.pow(256,e-a-1))}return r},jat=t=>{for(var e=t.length,r=0,o=e-1;o>-1;o--){var a=t[o];a!==0&&(r+=a*Math.pow(256,e-o-1))}return r},Iue=t=>(255^t)&255,Bue=t=>(255^t)+1&255;vue.exports={encode:Mat,parse:Hat}});var GE=_((K4t,Pue)=>{"use strict";var VU=KU(),jE=ve("path").posix,Sue=Due(),JU=Symbol("slurp"),ul=Symbol("type"),ZU=class{constructor(e,r,o,a){this.cksumValid=!1,this.needPax=!1,this.nullBlock=!1,this.block=null,this.path=null,this.mode=null,this.uid=null,this.gid=null,this.size=null,this.mtime=null,this.cksum=null,this[ul]="0",this.linkpath=null,this.uname=null,this.gname=null,this.devmaj=0,this.devmin=0,this.atime=null,this.ctime=null,Buffer.isBuffer(e)?this.decode(e,r||0,o,a):e&&this.set(e)}decode(e,r,o,a){if(r||(r=0),!e||!(e.length>=r+512))throw new Error("need 512 bytes for header");if(this.path=Td(e,r,100),this.mode=dh(e,r+100,8),this.uid=dh(e,r+108,8),this.gid=dh(e,r+116,8),this.size=dh(e,r+124,12),this.mtime=zU(e,r+136,12),this.cksum=dh(e,r+148,12),this[JU](o),this[JU](a,!0),this[ul]=Td(e,r+156,1),this[ul]===""&&(this[ul]="0"),this[ul]==="0"&&this.path.substr(-1)==="/"&&(this[ul]="5"),this[ul]==="5"&&(this.size=0),this.linkpath=Td(e,r+157,100),e.slice(r+257,r+265).toString()==="ustar\x0000")if(this.uname=Td(e,r+265,32),this.gname=Td(e,r+297,32),this.devmaj=dh(e,r+329,8),this.devmin=dh(e,r+337,8),e[r+475]!==0){let u=Td(e,r+345,155);this.path=u+"/"+this.path}else{let u=Td(e,r+345,130);u&&(this.path=u+"/"+this.path),this.atime=zU(e,r+476,12),this.ctime=zU(e,r+488,12)}let n=8*32;for(let u=r;u=r+512))throw new Error("need 512 bytes for header");let o=this.ctime||this.atime?130:155,a=Gat(this.path||"",o),n=a[0],u=a[1];this.needPax=a[2],this.needPax=Nd(e,r,100,n)||this.needPax,this.needPax=mh(e,r+100,8,this.mode)||this.needPax,this.needPax=mh(e,r+108,8,this.uid)||this.needPax,this.needPax=mh(e,r+116,8,this.gid)||this.needPax,this.needPax=mh(e,r+124,12,this.size)||this.needPax,this.needPax=XU(e,r+136,12,this.mtime)||this.needPax,e[r+156]=this[ul].charCodeAt(0),this.needPax=Nd(e,r+157,100,this.linkpath)||this.needPax,e.write("ustar\x0000",r+257,8),this.needPax=Nd(e,r+265,32,this.uname)||this.needPax,this.needPax=Nd(e,r+297,32,this.gname)||this.needPax,this.needPax=mh(e,r+329,8,this.devmaj)||this.needPax,this.needPax=mh(e,r+337,8,this.devmin)||this.needPax,this.needPax=Nd(e,r+345,o,u)||this.needPax,e[r+475]!==0?this.needPax=Nd(e,r+345,155,u)||this.needPax:(this.needPax=Nd(e,r+345,130,u)||this.needPax,this.needPax=XU(e,r+476,12,this.atime)||this.needPax,this.needPax=XU(e,r+488,12,this.ctime)||this.needPax);let A=8*32;for(let p=r;p{let o=t,a="",n,u=jE.parse(t).root||".";if(Buffer.byteLength(o)<100)n=[o,a,!1];else{a=jE.dirname(o),o=jE.basename(o);do Buffer.byteLength(o)<=100&&Buffer.byteLength(a)<=e?n=[o,a,!1]:Buffer.byteLength(o)>100&&Buffer.byteLength(a)<=e?n=[o.substr(0,100-1),a,!0]:(o=jE.join(jE.basename(a),o),a=jE.dirname(a));while(a!==u&&!n);n||(n=[t.substr(0,100-1),"",!0])}return n},Td=(t,e,r)=>t.slice(e,e+r).toString("utf8").replace(/\0.*/,""),zU=(t,e,r)=>Yat(dh(t,e,r)),Yat=t=>t===null?null:new Date(t*1e3),dh=(t,e,r)=>t[e]&128?Sue.parse(t.slice(e,e+r)):Kat(t,e,r),Wat=t=>isNaN(t)?null:t,Kat=(t,e,r)=>Wat(parseInt(t.slice(e,e+r).toString("utf8").replace(/\0.*$/,"").trim(),8)),Vat={12:8589934591,8:2097151},mh=(t,e,r,o)=>o===null?!1:o>Vat[r]||o<0?(Sue.encode(o,t.slice(e,e+r)),!0):(Jat(t,e,r,o),!1),Jat=(t,e,r,o)=>t.write(zat(o,r),e,r,"ascii"),zat=(t,e)=>Xat(Math.floor(t).toString(8),e),Xat=(t,e)=>(t.length===e-1?t:new Array(e-t.length-1).join("0")+t+" ")+"\0",XU=(t,e,r,o)=>o===null?!1:mh(t,e,r,o.getTime()/1e3),Zat=new Array(156).join("\0"),Nd=(t,e,r,o)=>o===null?!1:(t.write(o+Zat,e,r,"utf8"),o.length!==Buffer.byteLength(o)||o.length>r);Pue.exports=ZU});var ix=_((V4t,bue)=>{"use strict";var $at=GE(),elt=ve("path"),j1=class{constructor(e,r){this.atime=e.atime||null,this.charset=e.charset||null,this.comment=e.comment||null,this.ctime=e.ctime||null,this.gid=e.gid||null,this.gname=e.gname||null,this.linkpath=e.linkpath||null,this.mtime=e.mtime||null,this.path=e.path||null,this.size=e.size||null,this.uid=e.uid||null,this.uname=e.uname||null,this.dev=e.dev||null,this.ino=e.ino||null,this.nlink=e.nlink||null,this.global=r||!1}encode(){let e=this.encodeBody();if(e==="")return null;let r=Buffer.byteLength(e),o=512*Math.ceil(1+r/512),a=Buffer.allocUnsafe(o);for(let n=0;n<512;n++)a[n]=0;new $at({path:("PaxHeader/"+elt.basename(this.path)).slice(0,99),mode:this.mode||420,uid:this.uid||null,gid:this.gid||null,size:r,mtime:this.mtime||null,type:this.global?"GlobalExtendedHeader":"ExtendedHeader",linkpath:"",uname:this.uname||"",gname:this.gname||"",devmaj:0,devmin:0,atime:this.atime||null,ctime:this.ctime||null}).encode(a),a.write(e,512,r,"utf8");for(let n=r+512;n=Math.pow(10,n)&&(n+=1),n+a+o}};j1.parse=(t,e,r)=>new j1(tlt(rlt(t),e),r);var tlt=(t,e)=>e?Object.keys(t).reduce((r,o)=>(r[o]=t[o],r),e):t,rlt=t=>t.replace(/\n$/,"").split(` +`).reduce(nlt,Object.create(null)),nlt=(t,e)=>{let r=parseInt(e,10);if(r!==Buffer.byteLength(e)+1)return t;e=e.substr((r+" ").length);let o=e.split("="),a=o.shift().replace(/^SCHILY\.(dev|ino|nlink)/,"$1");if(!a)return t;let n=o.join("=");return t[a]=/^([A-Z]+\.)?([mac]|birth|creation)time$/.test(a)?new Date(n*1e3):/^[0-9]+$/.test(n)?+n:n,t};bue.exports=j1});var YE=_((J4t,xue)=>{xue.exports=t=>{let e=t.length-1,r=-1;for(;e>-1&&t.charAt(e)==="/";)r=e,e--;return r===-1?t:t.slice(0,r)}});var sx=_((z4t,kue)=>{"use strict";kue.exports=t=>class extends t{warn(e,r,o={}){this.file&&(o.file=this.file),this.cwd&&(o.cwd=this.cwd),o.code=r instanceof Error&&r.code||e,o.tarCode=e,!this.strict&&o.recoverable!==!1?(r instanceof Error&&(o=Object.assign(r,o),r=r.message),this.emit("warn",o.tarCode,r,o)):r instanceof Error?this.emit("error",Object.assign(r,o)):this.emit("error",Object.assign(new Error(`${e}: ${r}`),o))}}});var e3=_((Z4t,Que)=>{"use strict";var ox=["|","<",">","?",":"],$U=ox.map(t=>String.fromCharCode(61440+t.charCodeAt(0))),ilt=new Map(ox.map((t,e)=>[t,$U[e]])),slt=new Map($U.map((t,e)=>[t,ox[e]]));Que.exports={encode:t=>ox.reduce((e,r)=>e.split(r).join(ilt.get(r)),t),decode:t=>$U.reduce((e,r)=>e.split(r).join(slt.get(r)),t)}});var t3=_(($4t,Rue)=>{var{isAbsolute:olt,parse:Fue}=ve("path").win32;Rue.exports=t=>{let e="",r=Fue(t);for(;olt(t)||r.root;){let o=t.charAt(0)==="/"&&t.slice(0,4)!=="//?/"?"/":r.root;t=t.substr(o.length),e+=o,r=Fue(t)}return[e,t]}});var Nue=_((eUt,Tue)=>{"use strict";Tue.exports=(t,e,r)=>(t&=4095,r&&(t=(t|384)&-19),e&&(t&256&&(t|=64),t&32&&(t|=8),t&4&&(t|=1)),t)});var A3=_((nUt,Jue)=>{"use strict";var que=UE(),jue=ix(),Gue=GE(),oA=ve("fs"),Lue=ve("path"),sA=qE(),alt=YE(),Yue=(t,e)=>e?(t=sA(t).replace(/^\.(\/|$)/,""),alt(e)+"/"+t):sA(t),llt=16*1024*1024,Oue=Symbol("process"),Mue=Symbol("file"),Uue=Symbol("directory"),n3=Symbol("symlink"),_ue=Symbol("hardlink"),G1=Symbol("header"),ax=Symbol("read"),i3=Symbol("lstat"),lx=Symbol("onlstat"),s3=Symbol("onread"),o3=Symbol("onreadlink"),a3=Symbol("openfile"),l3=Symbol("onopenfile"),yh=Symbol("close"),cx=Symbol("mode"),c3=Symbol("awaitDrain"),r3=Symbol("ondrain"),aA=Symbol("prefix"),Hue=Symbol("hadError"),Wue=sx(),clt=e3(),Kue=t3(),Vue=Nue(),ux=Wue(class extends que{constructor(e,r){if(r=r||{},super(r),typeof e!="string")throw new TypeError("path is required");this.path=sA(e),this.portable=!!r.portable,this.myuid=process.getuid&&process.getuid()||0,this.myuser=process.env.USER||"",this.maxReadSize=r.maxReadSize||llt,this.linkCache=r.linkCache||new Map,this.statCache=r.statCache||new Map,this.preservePaths=!!r.preservePaths,this.cwd=sA(r.cwd||process.cwd()),this.strict=!!r.strict,this.noPax=!!r.noPax,this.noMtime=!!r.noMtime,this.mtime=r.mtime||null,this.prefix=r.prefix?sA(r.prefix):null,this.fd=null,this.blockLen=null,this.blockRemain=null,this.buf=null,this.offset=null,this.length=null,this.pos=null,this.remain=null,typeof r.onwarn=="function"&&this.on("warn",r.onwarn);let o=!1;if(!this.preservePaths){let[a,n]=Kue(this.path);a&&(this.path=n,o=a)}this.win32=!!r.win32||process.platform==="win32",this.win32&&(this.path=clt.decode(this.path.replace(/\\/g,"/")),e=e.replace(/\\/g,"/")),this.absolute=sA(r.absolute||Lue.resolve(this.cwd,e)),this.path===""&&(this.path="./"),o&&this.warn("TAR_ENTRY_INFO",`stripping ${o} from absolute path`,{entry:this,path:o+this.path}),this.statCache.has(this.absolute)?this[lx](this.statCache.get(this.absolute)):this[i3]()}emit(e,...r){return e==="error"&&(this[Hue]=!0),super.emit(e,...r)}[i3](){oA.lstat(this.absolute,(e,r)=>{if(e)return this.emit("error",e);this[lx](r)})}[lx](e){this.statCache.set(this.absolute,e),this.stat=e,e.isFile()||(e.size=0),this.type=Alt(e),this.emit("stat",e),this[Oue]()}[Oue](){switch(this.type){case"File":return this[Mue]();case"Directory":return this[Uue]();case"SymbolicLink":return this[n3]();default:return this.end()}}[cx](e){return Vue(e,this.type==="Directory",this.portable)}[aA](e){return Yue(e,this.prefix)}[G1](){this.type==="Directory"&&this.portable&&(this.noMtime=!0),this.header=new Gue({path:this[aA](this.path),linkpath:this.type==="Link"?this[aA](this.linkpath):this.linkpath,mode:this[cx](this.stat.mode),uid:this.portable?null:this.stat.uid,gid:this.portable?null:this.stat.gid,size:this.stat.size,mtime:this.noMtime?null:this.mtime||this.stat.mtime,type:this.type,uname:this.portable?null:this.stat.uid===this.myuid?this.myuser:"",atime:this.portable?null:this.stat.atime,ctime:this.portable?null:this.stat.ctime}),this.header.encode()&&!this.noPax&&super.write(new jue({atime:this.portable?null:this.header.atime,ctime:this.portable?null:this.header.ctime,gid:this.portable?null:this.header.gid,mtime:this.noMtime?null:this.mtime||this.header.mtime,path:this[aA](this.path),linkpath:this.type==="Link"?this[aA](this.linkpath):this.linkpath,size:this.header.size,uid:this.portable?null:this.header.uid,uname:this.portable?null:this.header.uname,dev:this.portable?null:this.stat.dev,ino:this.portable?null:this.stat.ino,nlink:this.portable?null:this.stat.nlink}).encode()),super.write(this.header.block)}[Uue](){this.path.substr(-1)!=="/"&&(this.path+="/"),this.stat.size=0,this[G1](),this.end()}[n3](){oA.readlink(this.absolute,(e,r)=>{if(e)return this.emit("error",e);this[o3](r)})}[o3](e){this.linkpath=sA(e),this[G1](),this.end()}[_ue](e){this.type="Link",this.linkpath=sA(Lue.relative(this.cwd,e)),this.stat.size=0,this[G1](),this.end()}[Mue](){if(this.stat.nlink>1){let e=this.stat.dev+":"+this.stat.ino;if(this.linkCache.has(e)){let r=this.linkCache.get(e);if(r.indexOf(this.cwd)===0)return this[_ue](r)}this.linkCache.set(e,this.absolute)}if(this[G1](),this.stat.size===0)return this.end();this[a3]()}[a3](){oA.open(this.absolute,"r",(e,r)=>{if(e)return this.emit("error",e);this[l3](r)})}[l3](e){if(this.fd=e,this[Hue])return this[yh]();this.blockLen=512*Math.ceil(this.stat.size/512),this.blockRemain=this.blockLen;let r=Math.min(this.blockLen,this.maxReadSize);this.buf=Buffer.allocUnsafe(r),this.offset=0,this.pos=0,this.remain=this.stat.size,this.length=this.buf.length,this[ax]()}[ax](){let{fd:e,buf:r,offset:o,length:a,pos:n}=this;oA.read(e,r,o,a,n,(u,A)=>{if(u)return this[yh](()=>this.emit("error",u));this[s3](A)})}[yh](e){oA.close(this.fd,e)}[s3](e){if(e<=0&&this.remain>0){let a=new Error("encountered unexpected EOF");return a.path=this.absolute,a.syscall="read",a.code="EOF",this[yh](()=>this.emit("error",a))}if(e>this.remain){let a=new Error("did not encounter expected EOF");return a.path=this.absolute,a.syscall="read",a.code="EOF",this[yh](()=>this.emit("error",a))}if(e===this.remain)for(let a=e;athis[r3]())}[c3](e){this.once("drain",e)}write(e){if(this.blockRemaine?this.emit("error",e):this.end());this.offset>=this.length&&(this.buf=Buffer.allocUnsafe(Math.min(this.blockRemain,this.buf.length)),this.offset=0),this.length=this.buf.length-this.offset,this[ax]()}}),u3=class extends ux{[i3](){this[lx](oA.lstatSync(this.absolute))}[n3](){this[o3](oA.readlinkSync(this.absolute))}[a3](){this[l3](oA.openSync(this.absolute,"r"))}[ax](){let e=!0;try{let{fd:r,buf:o,offset:a,length:n,pos:u}=this,A=oA.readSync(r,o,a,n,u);this[s3](A),e=!1}finally{if(e)try{this[yh](()=>{})}catch{}}}[c3](e){e()}[yh](e){oA.closeSync(this.fd),e()}},ult=Wue(class extends que{constructor(e,r){r=r||{},super(r),this.preservePaths=!!r.preservePaths,this.portable=!!r.portable,this.strict=!!r.strict,this.noPax=!!r.noPax,this.noMtime=!!r.noMtime,this.readEntry=e,this.type=e.type,this.type==="Directory"&&this.portable&&(this.noMtime=!0),this.prefix=r.prefix||null,this.path=sA(e.path),this.mode=this[cx](e.mode),this.uid=this.portable?null:e.uid,this.gid=this.portable?null:e.gid,this.uname=this.portable?null:e.uname,this.gname=this.portable?null:e.gname,this.size=e.size,this.mtime=this.noMtime?null:r.mtime||e.mtime,this.atime=this.portable?null:e.atime,this.ctime=this.portable?null:e.ctime,this.linkpath=sA(e.linkpath),typeof r.onwarn=="function"&&this.on("warn",r.onwarn);let o=!1;if(!this.preservePaths){let[a,n]=Kue(this.path);a&&(this.path=n,o=a)}this.remain=e.size,this.blockRemain=e.startBlockSize,this.header=new Gue({path:this[aA](this.path),linkpath:this.type==="Link"?this[aA](this.linkpath):this.linkpath,mode:this.mode,uid:this.portable?null:this.uid,gid:this.portable?null:this.gid,size:this.size,mtime:this.noMtime?null:this.mtime,type:this.type,uname:this.portable?null:this.uname,atime:this.portable?null:this.atime,ctime:this.portable?null:this.ctime}),o&&this.warn("TAR_ENTRY_INFO",`stripping ${o} from absolute path`,{entry:this,path:o+this.path}),this.header.encode()&&!this.noPax&&super.write(new jue({atime:this.portable?null:this.atime,ctime:this.portable?null:this.ctime,gid:this.portable?null:this.gid,mtime:this.noMtime?null:this.mtime,path:this[aA](this.path),linkpath:this.type==="Link"?this[aA](this.linkpath):this.linkpath,size:this.size,uid:this.portable?null:this.uid,uname:this.portable?null:this.uname,dev:this.portable?null:this.readEntry.dev,ino:this.portable?null:this.readEntry.ino,nlink:this.portable?null:this.readEntry.nlink}).encode()),super.write(this.header.block),e.pipe(this)}[aA](e){return Yue(e,this.prefix)}[cx](e){return Vue(e,this.type==="Directory",this.portable)}write(e){let r=e.length;if(r>this.blockRemain)throw new Error("writing more to entry than is appropriate");return this.blockRemain-=r,super.write(e)}end(){return this.blockRemain&&super.write(Buffer.alloc(this.blockRemain)),super.end()}});ux.Sync=u3;ux.Tar=ult;var Alt=t=>t.isFile()?"File":t.isDirectory()?"Directory":t.isSymbolicLink()?"SymbolicLink":"Unsupported";Jue.exports=ux});var Ex=_((sUt,rAe)=>{"use strict";var mx=class{constructor(e,r){this.path=e||"./",this.absolute=r,this.entry=null,this.stat=null,this.readdir=null,this.pending=!1,this.ignore=!1,this.piped=!1}},flt=UE(),plt=GU(),hlt=rx(),C3=A3(),glt=C3.Sync,dlt=C3.Tar,mlt=IS(),zue=Buffer.alloc(1024),px=Symbol("onStat"),Ax=Symbol("ended"),lA=Symbol("queue"),WE=Symbol("current"),Ld=Symbol("process"),fx=Symbol("processing"),Xue=Symbol("processJob"),cA=Symbol("jobs"),f3=Symbol("jobDone"),hx=Symbol("addFSEntry"),Zue=Symbol("addTarEntry"),d3=Symbol("stat"),m3=Symbol("readdir"),gx=Symbol("onreaddir"),dx=Symbol("pipe"),$ue=Symbol("entry"),p3=Symbol("entryOpt"),y3=Symbol("writeEntryClass"),tAe=Symbol("write"),h3=Symbol("ondrain"),yx=ve("fs"),eAe=ve("path"),ylt=sx(),g3=qE(),w3=ylt(class extends flt{constructor(e){super(e),e=e||Object.create(null),this.opt=e,this.file=e.file||"",this.cwd=e.cwd||process.cwd(),this.maxReadSize=e.maxReadSize,this.preservePaths=!!e.preservePaths,this.strict=!!e.strict,this.noPax=!!e.noPax,this.prefix=g3(e.prefix||""),this.linkCache=e.linkCache||new Map,this.statCache=e.statCache||new Map,this.readdirCache=e.readdirCache||new Map,this[y3]=C3,typeof e.onwarn=="function"&&this.on("warn",e.onwarn),this.portable=!!e.portable,this.zip=null,e.gzip?(typeof e.gzip!="object"&&(e.gzip={}),this.portable&&(e.gzip.portable=!0),this.zip=new plt.Gzip(e.gzip),this.zip.on("data",r=>super.write(r)),this.zip.on("end",r=>super.end()),this.zip.on("drain",r=>this[h3]()),this.on("resume",r=>this.zip.resume())):this.on("drain",this[h3]),this.noDirRecurse=!!e.noDirRecurse,this.follow=!!e.follow,this.noMtime=!!e.noMtime,this.mtime=e.mtime||null,this.filter=typeof e.filter=="function"?e.filter:r=>!0,this[lA]=new mlt,this[cA]=0,this.jobs=+e.jobs||4,this[fx]=!1,this[Ax]=!1}[tAe](e){return super.write(e)}add(e){return this.write(e),this}end(e){return e&&this.write(e),this[Ax]=!0,this[Ld](),this}write(e){if(this[Ax])throw new Error("write after end");return e instanceof hlt?this[Zue](e):this[hx](e),this.flowing}[Zue](e){let r=g3(eAe.resolve(this.cwd,e.path));if(!this.filter(e.path,e))e.resume();else{let o=new mx(e.path,r,!1);o.entry=new dlt(e,this[p3](o)),o.entry.on("end",a=>this[f3](o)),this[cA]+=1,this[lA].push(o)}this[Ld]()}[hx](e){let r=g3(eAe.resolve(this.cwd,e));this[lA].push(new mx(e,r)),this[Ld]()}[d3](e){e.pending=!0,this[cA]+=1;let r=this.follow?"stat":"lstat";yx[r](e.absolute,(o,a)=>{e.pending=!1,this[cA]-=1,o?this.emit("error",o):this[px](e,a)})}[px](e,r){this.statCache.set(e.absolute,r),e.stat=r,this.filter(e.path,r)||(e.ignore=!0),this[Ld]()}[m3](e){e.pending=!0,this[cA]+=1,yx.readdir(e.absolute,(r,o)=>{if(e.pending=!1,this[cA]-=1,r)return this.emit("error",r);this[gx](e,o)})}[gx](e,r){this.readdirCache.set(e.absolute,r),e.readdir=r,this[Ld]()}[Ld](){if(!this[fx]){this[fx]=!0;for(let e=this[lA].head;e!==null&&this[cA]this.warn(r,o,a),noPax:this.noPax,cwd:this.cwd,absolute:e.absolute,preservePaths:this.preservePaths,maxReadSize:this.maxReadSize,strict:this.strict,portable:this.portable,linkCache:this.linkCache,statCache:this.statCache,noMtime:this.noMtime,mtime:this.mtime,prefix:this.prefix}}[$ue](e){this[cA]+=1;try{return new this[y3](e.path,this[p3](e)).on("end",()=>this[f3](e)).on("error",r=>this.emit("error",r))}catch(r){this.emit("error",r)}}[h3](){this[WE]&&this[WE].entry&&this[WE].entry.resume()}[dx](e){e.piped=!0,e.readdir&&e.readdir.forEach(a=>{let n=e.path,u=n==="./"?"":n.replace(/\/*$/,"/");this[hx](u+a)});let r=e.entry,o=this.zip;o?r.on("data",a=>{o.write(a)||r.pause()}):r.on("data",a=>{super.write(a)||r.pause()})}pause(){return this.zip&&this.zip.pause(),super.pause()}}),E3=class extends w3{constructor(e){super(e),this[y3]=glt}pause(){}resume(){}[d3](e){let r=this.follow?"statSync":"lstatSync";this[px](e,yx[r](e.absolute))}[m3](e,r){this[gx](e,yx.readdirSync(e.absolute))}[dx](e){let r=e.entry,o=this.zip;e.readdir&&e.readdir.forEach(a=>{let n=e.path,u=n==="./"?"":n.replace(/\/*$/,"/");this[hx](u+a)}),o?r.on("data",a=>{o.write(a)}):r.on("data",a=>{super[tAe](a)})}};w3.Sync=E3;rAe.exports=w3});var eC=_(W1=>{"use strict";var Elt=UE(),Clt=ve("events").EventEmitter,Qa=ve("fs"),v3=Qa.writev;if(!v3){let t=process.binding("fs"),e=t.FSReqWrap||t.FSReqCallback;v3=(r,o,a,n)=>{let u=(p,h)=>n(p,h,o),A=new e;A.oncomplete=u,t.writeBuffers(r,o,a,A)}}var ZE=Symbol("_autoClose"),Yc=Symbol("_close"),Y1=Symbol("_ended"),Gn=Symbol("_fd"),nAe=Symbol("_finished"),Ch=Symbol("_flags"),I3=Symbol("_flush"),D3=Symbol("_handleChunk"),S3=Symbol("_makeBuf"),vx=Symbol("_mode"),Cx=Symbol("_needDrain"),zE=Symbol("_onerror"),$E=Symbol("_onopen"),B3=Symbol("_onread"),VE=Symbol("_onwrite"),wh=Symbol("_open"),jf=Symbol("_path"),Od=Symbol("_pos"),uA=Symbol("_queue"),JE=Symbol("_read"),iAe=Symbol("_readSize"),Eh=Symbol("_reading"),wx=Symbol("_remain"),sAe=Symbol("_size"),Ix=Symbol("_write"),KE=Symbol("_writing"),Bx=Symbol("_defaultFlag"),XE=Symbol("_errored"),Dx=class extends Elt{constructor(e,r){if(r=r||{},super(r),this.readable=!0,this.writable=!1,typeof e!="string")throw new TypeError("path must be a string");this[XE]=!1,this[Gn]=typeof r.fd=="number"?r.fd:null,this[jf]=e,this[iAe]=r.readSize||16*1024*1024,this[Eh]=!1,this[sAe]=typeof r.size=="number"?r.size:1/0,this[wx]=this[sAe],this[ZE]=typeof r.autoClose=="boolean"?r.autoClose:!0,typeof this[Gn]=="number"?this[JE]():this[wh]()}get fd(){return this[Gn]}get path(){return this[jf]}write(){throw new TypeError("this is a readable stream")}end(){throw new TypeError("this is a readable stream")}[wh](){Qa.open(this[jf],"r",(e,r)=>this[$E](e,r))}[$E](e,r){e?this[zE](e):(this[Gn]=r,this.emit("open",r),this[JE]())}[S3](){return Buffer.allocUnsafe(Math.min(this[iAe],this[wx]))}[JE](){if(!this[Eh]){this[Eh]=!0;let e=this[S3]();if(e.length===0)return process.nextTick(()=>this[B3](null,0,e));Qa.read(this[Gn],e,0,e.length,null,(r,o,a)=>this[B3](r,o,a))}}[B3](e,r,o){this[Eh]=!1,e?this[zE](e):this[D3](r,o)&&this[JE]()}[Yc](){if(this[ZE]&&typeof this[Gn]=="number"){let e=this[Gn];this[Gn]=null,Qa.close(e,r=>r?this.emit("error",r):this.emit("close"))}}[zE](e){this[Eh]=!0,this[Yc](),this.emit("error",e)}[D3](e,r){let o=!1;return this[wx]-=e,e>0&&(o=super.write(ethis[$E](e,r))}[$E](e,r){this[Bx]&&this[Ch]==="r+"&&e&&e.code==="ENOENT"?(this[Ch]="w",this[wh]()):e?this[zE](e):(this[Gn]=r,this.emit("open",r),this[I3]())}end(e,r){return e&&this.write(e,r),this[Y1]=!0,!this[KE]&&!this[uA].length&&typeof this[Gn]=="number"&&this[VE](null,0),this}write(e,r){return typeof e=="string"&&(e=Buffer.from(e,r)),this[Y1]?(this.emit("error",new Error("write() after end()")),!1):this[Gn]===null||this[KE]||this[uA].length?(this[uA].push(e),this[Cx]=!0,!1):(this[KE]=!0,this[Ix](e),!0)}[Ix](e){Qa.write(this[Gn],e,0,e.length,this[Od],(r,o)=>this[VE](r,o))}[VE](e,r){e?this[zE](e):(this[Od]!==null&&(this[Od]+=r),this[uA].length?this[I3]():(this[KE]=!1,this[Y1]&&!this[nAe]?(this[nAe]=!0,this[Yc](),this.emit("finish")):this[Cx]&&(this[Cx]=!1,this.emit("drain"))))}[I3](){if(this[uA].length===0)this[Y1]&&this[VE](null,0);else if(this[uA].length===1)this[Ix](this[uA].pop());else{let e=this[uA];this[uA]=[],v3(this[Gn],e,this[Od],(r,o)=>this[VE](r,o))}}[Yc](){if(this[ZE]&&typeof this[Gn]=="number"){let e=this[Gn];this[Gn]=null,Qa.close(e,r=>r?this.emit("error",r):this.emit("close"))}}},b3=class extends Sx{[wh](){let e;if(this[Bx]&&this[Ch]==="r+")try{e=Qa.openSync(this[jf],this[Ch],this[vx])}catch(r){if(r.code==="ENOENT")return this[Ch]="w",this[wh]();throw r}else e=Qa.openSync(this[jf],this[Ch],this[vx]);this[$E](null,e)}[Yc](){if(this[ZE]&&typeof this[Gn]=="number"){let e=this[Gn];this[Gn]=null,Qa.closeSync(e),this.emit("close")}}[Ix](e){let r=!0;try{this[VE](null,Qa.writeSync(this[Gn],e,0,e.length,this[Od])),r=!1}finally{if(r)try{this[Yc]()}catch{}}}};W1.ReadStream=Dx;W1.ReadStreamSync=P3;W1.WriteStream=Sx;W1.WriteStreamSync=b3});var Rx=_((lUt,fAe)=>{"use strict";var wlt=sx(),Ilt=GE(),Blt=ve("events"),vlt=IS(),Dlt=1024*1024,Slt=rx(),oAe=ix(),Plt=GU(),x3=Buffer.from([31,139]),Xl=Symbol("state"),Md=Symbol("writeEntry"),Gf=Symbol("readEntry"),k3=Symbol("nextEntry"),aAe=Symbol("processEntry"),Zl=Symbol("extendedHeader"),K1=Symbol("globalExtendedHeader"),Ih=Symbol("meta"),lAe=Symbol("emitMeta"),fi=Symbol("buffer"),Yf=Symbol("queue"),Ud=Symbol("ended"),cAe=Symbol("emittedEnd"),_d=Symbol("emit"),Fa=Symbol("unzip"),Px=Symbol("consumeChunk"),bx=Symbol("consumeChunkSub"),Q3=Symbol("consumeBody"),uAe=Symbol("consumeMeta"),AAe=Symbol("consumeHeader"),xx=Symbol("consuming"),F3=Symbol("bufferConcat"),R3=Symbol("maybeEnd"),V1=Symbol("writing"),Bh=Symbol("aborted"),kx=Symbol("onDone"),Hd=Symbol("sawValidEntry"),Qx=Symbol("sawNullBlock"),Fx=Symbol("sawEOF"),blt=t=>!0;fAe.exports=wlt(class extends Blt{constructor(e){e=e||{},super(e),this.file=e.file||"",this[Hd]=null,this.on(kx,r=>{(this[Xl]==="begin"||this[Hd]===!1)&&this.warn("TAR_BAD_ARCHIVE","Unrecognized archive format")}),e.ondone?this.on(kx,e.ondone):this.on(kx,r=>{this.emit("prefinish"),this.emit("finish"),this.emit("end"),this.emit("close")}),this.strict=!!e.strict,this.maxMetaEntrySize=e.maxMetaEntrySize||Dlt,this.filter=typeof e.filter=="function"?e.filter:blt,this.writable=!0,this.readable=!1,this[Yf]=new vlt,this[fi]=null,this[Gf]=null,this[Md]=null,this[Xl]="begin",this[Ih]="",this[Zl]=null,this[K1]=null,this[Ud]=!1,this[Fa]=null,this[Bh]=!1,this[Qx]=!1,this[Fx]=!1,typeof e.onwarn=="function"&&this.on("warn",e.onwarn),typeof e.onentry=="function"&&this.on("entry",e.onentry)}[AAe](e,r){this[Hd]===null&&(this[Hd]=!1);let o;try{o=new Ilt(e,r,this[Zl],this[K1])}catch(a){return this.warn("TAR_ENTRY_INVALID",a)}if(o.nullBlock)this[Qx]?(this[Fx]=!0,this[Xl]==="begin"&&(this[Xl]="header"),this[_d]("eof")):(this[Qx]=!0,this[_d]("nullBlock"));else if(this[Qx]=!1,!o.cksumValid)this.warn("TAR_ENTRY_INVALID","checksum failure",{header:o});else if(!o.path)this.warn("TAR_ENTRY_INVALID","path is required",{header:o});else{let a=o.type;if(/^(Symbolic)?Link$/.test(a)&&!o.linkpath)this.warn("TAR_ENTRY_INVALID","linkpath required",{header:o});else if(!/^(Symbolic)?Link$/.test(a)&&o.linkpath)this.warn("TAR_ENTRY_INVALID","linkpath forbidden",{header:o});else{let n=this[Md]=new Slt(o,this[Zl],this[K1]);if(!this[Hd])if(n.remain){let u=()=>{n.invalid||(this[Hd]=!0)};n.on("end",u)}else this[Hd]=!0;n.meta?n.size>this.maxMetaEntrySize?(n.ignore=!0,this[_d]("ignoredEntry",n),this[Xl]="ignore",n.resume()):n.size>0&&(this[Ih]="",n.on("data",u=>this[Ih]+=u),this[Xl]="meta"):(this[Zl]=null,n.ignore=n.ignore||!this.filter(n.path,n),n.ignore?(this[_d]("ignoredEntry",n),this[Xl]=n.remain?"ignore":"header",n.resume()):(n.remain?this[Xl]="body":(this[Xl]="header",n.end()),this[Gf]?this[Yf].push(n):(this[Yf].push(n),this[k3]())))}}}[aAe](e){let r=!0;return e?Array.isArray(e)?this.emit.apply(this,e):(this[Gf]=e,this.emit("entry",e),e.emittedEnd||(e.on("end",o=>this[k3]()),r=!1)):(this[Gf]=null,r=!1),r}[k3](){do;while(this[aAe](this[Yf].shift()));if(!this[Yf].length){let e=this[Gf];!e||e.flowing||e.size===e.remain?this[V1]||this.emit("drain"):e.once("drain",o=>this.emit("drain"))}}[Q3](e,r){let o=this[Md],a=o.blockRemain,n=a>=e.length&&r===0?e:e.slice(r,r+a);return o.write(n),o.blockRemain||(this[Xl]="header",this[Md]=null,o.end()),n.length}[uAe](e,r){let o=this[Md],a=this[Q3](e,r);return this[Md]||this[lAe](o),a}[_d](e,r,o){!this[Yf].length&&!this[Gf]?this.emit(e,r,o):this[Yf].push([e,r,o])}[lAe](e){switch(this[_d]("meta",this[Ih]),e.type){case"ExtendedHeader":case"OldExtendedHeader":this[Zl]=oAe.parse(this[Ih],this[Zl],!1);break;case"GlobalExtendedHeader":this[K1]=oAe.parse(this[Ih],this[K1],!0);break;case"NextFileHasLongPath":case"OldGnuLongPath":this[Zl]=this[Zl]||Object.create(null),this[Zl].path=this[Ih].replace(/\0.*/,"");break;case"NextFileHasLongLinkpath":this[Zl]=this[Zl]||Object.create(null),this[Zl].linkpath=this[Ih].replace(/\0.*/,"");break;default:throw new Error("unknown meta: "+e.type)}}abort(e){this[Bh]=!0,this.emit("abort",e),this.warn("TAR_ABORT",e,{recoverable:!1})}write(e){if(this[Bh])return;if(this[Fa]===null&&e){if(this[fi]&&(e=Buffer.concat([this[fi],e]),this[fi]=null),e.lengththis[Px](n)),this[Fa].on("error",n=>this.abort(n)),this[Fa].on("end",n=>{this[Ud]=!0,this[Px]()}),this[V1]=!0;let a=this[Fa][o?"end":"write"](e);return this[V1]=!1,a}}this[V1]=!0,this[Fa]?this[Fa].write(e):this[Px](e),this[V1]=!1;let r=this[Yf].length?!1:this[Gf]?this[Gf].flowing:!0;return!r&&!this[Yf].length&&this[Gf].once("drain",o=>this.emit("drain")),r}[F3](e){e&&!this[Bh]&&(this[fi]=this[fi]?Buffer.concat([this[fi],e]):e)}[R3](){if(this[Ud]&&!this[cAe]&&!this[Bh]&&!this[xx]){this[cAe]=!0;let e=this[Md];if(e&&e.blockRemain){let r=this[fi]?this[fi].length:0;this.warn("TAR_BAD_ARCHIVE",`Truncated input (needed ${e.blockRemain} more bytes, only ${r} available)`,{entry:e}),this[fi]&&e.write(this[fi]),e.end()}this[_d](kx)}}[Px](e){if(this[xx])this[F3](e);else if(!e&&!this[fi])this[R3]();else{if(this[xx]=!0,this[fi]){this[F3](e);let r=this[fi];this[fi]=null,this[bx](r)}else this[bx](e);for(;this[fi]&&this[fi].length>=512&&!this[Bh]&&!this[Fx];){let r=this[fi];this[fi]=null,this[bx](r)}this[xx]=!1}(!this[fi]||this[Ud])&&this[R3]()}[bx](e){let r=0,o=e.length;for(;r+512<=o&&!this[Bh]&&!this[Fx];)switch(this[Xl]){case"begin":case"header":this[AAe](e,r),r+=512;break;case"ignore":case"body":r+=this[Q3](e,r);break;case"meta":r+=this[uAe](e,r);break;default:throw new Error("invalid state: "+this[Xl])}r{"use strict";var xlt=OE(),hAe=Rx(),tC=ve("fs"),klt=eC(),pAe=ve("path"),T3=YE();dAe.exports=(t,e,r)=>{typeof t=="function"?(r=t,e=null,t={}):Array.isArray(t)&&(e=t,t={}),typeof e=="function"&&(r=e,e=null),e?e=Array.from(e):e=[];let o=xlt(t);if(o.sync&&typeof r=="function")throw new TypeError("callback not supported for sync tar functions");if(!o.file&&typeof r=="function")throw new TypeError("callback only supported with file option");return e.length&&Flt(o,e),o.noResume||Qlt(o),o.file&&o.sync?Rlt(o):o.file?Tlt(o,r):gAe(o)};var Qlt=t=>{let e=t.onentry;t.onentry=e?r=>{e(r),r.resume()}:r=>r.resume()},Flt=(t,e)=>{let r=new Map(e.map(n=>[T3(n),!0])),o=t.filter,a=(n,u)=>{let A=u||pAe.parse(n).root||".",p=n===A?!1:r.has(n)?r.get(n):a(pAe.dirname(n),A);return r.set(n,p),p};t.filter=o?(n,u)=>o(n,u)&&a(T3(n)):n=>a(T3(n))},Rlt=t=>{let e=gAe(t),r=t.file,o=!0,a;try{let n=tC.statSync(r),u=t.maxReadSize||16*1024*1024;if(n.size{let r=new hAe(t),o=t.maxReadSize||16*1024*1024,a=t.file,n=new Promise((u,A)=>{r.on("error",A),r.on("end",u),tC.stat(a,(p,h)=>{if(p)A(p);else{let E=new klt.ReadStream(a,{readSize:o,size:h.size});E.on("error",A),E.pipe(r)}})});return e?n.then(e,e):n},gAe=t=>new hAe(t)});var IAe=_((uUt,wAe)=>{"use strict";var Nlt=OE(),Nx=Ex(),mAe=eC(),yAe=Tx(),EAe=ve("path");wAe.exports=(t,e,r)=>{if(typeof e=="function"&&(r=e),Array.isArray(t)&&(e=t,t={}),!e||!Array.isArray(e)||!e.length)throw new TypeError("no files or directories specified");e=Array.from(e);let o=Nlt(t);if(o.sync&&typeof r=="function")throw new TypeError("callback not supported for sync tar functions");if(!o.file&&typeof r=="function")throw new TypeError("callback only supported with file option");return o.file&&o.sync?Llt(o,e):o.file?Olt(o,e,r):o.sync?Mlt(o,e):Ult(o,e)};var Llt=(t,e)=>{let r=new Nx.Sync(t),o=new mAe.WriteStreamSync(t.file,{mode:t.mode||438});r.pipe(o),CAe(r,e)},Olt=(t,e,r)=>{let o=new Nx(t),a=new mAe.WriteStream(t.file,{mode:t.mode||438});o.pipe(a);let n=new Promise((u,A)=>{a.on("error",A),a.on("close",u),o.on("error",A)});return N3(o,e),r?n.then(r,r):n},CAe=(t,e)=>{e.forEach(r=>{r.charAt(0)==="@"?yAe({file:EAe.resolve(t.cwd,r.substr(1)),sync:!0,noResume:!0,onentry:o=>t.add(o)}):t.add(r)}),t.end()},N3=(t,e)=>{for(;e.length;){let r=e.shift();if(r.charAt(0)==="@")return yAe({file:EAe.resolve(t.cwd,r.substr(1)),noResume:!0,onentry:o=>t.add(o)}).then(o=>N3(t,e));t.add(r)}t.end()},Mlt=(t,e)=>{let r=new Nx.Sync(t);return CAe(r,e),r},Ult=(t,e)=>{let r=new Nx(t);return N3(r,e),r}});var L3=_((AUt,xAe)=>{"use strict";var _lt=OE(),BAe=Ex(),Al=ve("fs"),vAe=eC(),DAe=Tx(),SAe=ve("path"),PAe=GE();xAe.exports=(t,e,r)=>{let o=_lt(t);if(!o.file)throw new TypeError("file is required");if(o.gzip)throw new TypeError("cannot append to compressed archives");if(!e||!Array.isArray(e)||!e.length)throw new TypeError("no files or directories specified");return e=Array.from(e),o.sync?Hlt(o,e):jlt(o,e,r)};var Hlt=(t,e)=>{let r=new BAe.Sync(t),o=!0,a,n;try{try{a=Al.openSync(t.file,"r+")}catch(p){if(p.code==="ENOENT")a=Al.openSync(t.file,"w+");else throw p}let u=Al.fstatSync(a),A=Buffer.alloc(512);e:for(n=0;nu.size)break;n+=h,t.mtimeCache&&t.mtimeCache.set(p.path,p.mtime)}o=!1,qlt(t,r,n,a,e)}finally{if(o)try{Al.closeSync(a)}catch{}}},qlt=(t,e,r,o,a)=>{let n=new vAe.WriteStreamSync(t.file,{fd:o,start:r});e.pipe(n),Glt(e,a)},jlt=(t,e,r)=>{e=Array.from(e);let o=new BAe(t),a=(u,A,p)=>{let h=(C,R)=>{C?Al.close(u,L=>p(C)):p(null,R)},E=0;if(A===0)return h(null,0);let I=0,v=Buffer.alloc(512),x=(C,R)=>{if(C)return h(C);if(I+=R,I<512&&R)return Al.read(u,v,I,v.length-I,E+I,x);if(E===0&&v[0]===31&&v[1]===139)return h(new Error("cannot append to compressed archives"));if(I<512)return h(null,E);let L=new PAe(v);if(!L.cksumValid)return h(null,E);let U=512*Math.ceil(L.size/512);if(E+U+512>A||(E+=U+512,E>=A))return h(null,E);t.mtimeCache&&t.mtimeCache.set(L.path,L.mtime),I=0,Al.read(u,v,0,512,E,x)};Al.read(u,v,0,512,E,x)},n=new Promise((u,A)=>{o.on("error",A);let p="r+",h=(E,I)=>{if(E&&E.code==="ENOENT"&&p==="r+")return p="w+",Al.open(t.file,p,h);if(E)return A(E);Al.fstat(I,(v,x)=>{if(v)return Al.close(I,()=>A(v));a(I,x.size,(C,R)=>{if(C)return A(C);let L=new vAe.WriteStream(t.file,{fd:I,start:R});o.pipe(L),L.on("error",A),L.on("close",u),bAe(o,e)})})};Al.open(t.file,p,h)});return r?n.then(r,r):n},Glt=(t,e)=>{e.forEach(r=>{r.charAt(0)==="@"?DAe({file:SAe.resolve(t.cwd,r.substr(1)),sync:!0,noResume:!0,onentry:o=>t.add(o)}):t.add(r)}),t.end()},bAe=(t,e)=>{for(;e.length;){let r=e.shift();if(r.charAt(0)==="@")return DAe({file:SAe.resolve(t.cwd,r.substr(1)),noResume:!0,onentry:o=>t.add(o)}).then(o=>bAe(t,e));t.add(r)}t.end()}});var QAe=_((fUt,kAe)=>{"use strict";var Ylt=OE(),Wlt=L3();kAe.exports=(t,e,r)=>{let o=Ylt(t);if(!o.file)throw new TypeError("file is required");if(o.gzip)throw new TypeError("cannot append to compressed archives");if(!e||!Array.isArray(e)||!e.length)throw new TypeError("no files or directories specified");return e=Array.from(e),Klt(o),Wlt(o,e,r)};var Klt=t=>{let e=t.filter;t.mtimeCache||(t.mtimeCache=new Map),t.filter=e?(r,o)=>e(r,o)&&!(t.mtimeCache.get(r)>o.mtime):(r,o)=>!(t.mtimeCache.get(r)>o.mtime)}});var TAe=_((pUt,RAe)=>{var{promisify:FAe}=ve("util"),vh=ve("fs"),Vlt=t=>{if(!t)t={mode:511,fs:vh};else if(typeof t=="object")t={mode:511,fs:vh,...t};else if(typeof t=="number")t={mode:t,fs:vh};else if(typeof t=="string")t={mode:parseInt(t,8),fs:vh};else throw new TypeError("invalid options argument");return t.mkdir=t.mkdir||t.fs.mkdir||vh.mkdir,t.mkdirAsync=FAe(t.mkdir),t.stat=t.stat||t.fs.stat||vh.stat,t.statAsync=FAe(t.stat),t.statSync=t.statSync||t.fs.statSync||vh.statSync,t.mkdirSync=t.mkdirSync||t.fs.mkdirSync||vh.mkdirSync,t};RAe.exports=Vlt});var LAe=_((hUt,NAe)=>{var Jlt=process.platform,{resolve:zlt,parse:Xlt}=ve("path"),Zlt=t=>{if(/\0/.test(t))throw Object.assign(new TypeError("path must be a string without null bytes"),{path:t,code:"ERR_INVALID_ARG_VALUE"});if(t=zlt(t),Jlt==="win32"){let e=/[*|"<>?:]/,{root:r}=Xlt(t);if(e.test(t.substr(r.length)))throw Object.assign(new Error("Illegal characters in path."),{path:t,code:"EINVAL"})}return t};NAe.exports=Zlt});var HAe=_((gUt,_Ae)=>{var{dirname:OAe}=ve("path"),MAe=(t,e,r=void 0)=>r===e?Promise.resolve():t.statAsync(e).then(o=>o.isDirectory()?r:void 0,o=>o.code==="ENOENT"?MAe(t,OAe(e),e):void 0),UAe=(t,e,r=void 0)=>{if(r!==e)try{return t.statSync(e).isDirectory()?r:void 0}catch(o){return o.code==="ENOENT"?UAe(t,OAe(e),e):void 0}};_Ae.exports={findMade:MAe,findMadeSync:UAe}});var U3=_((dUt,jAe)=>{var{dirname:qAe}=ve("path"),O3=(t,e,r)=>{e.recursive=!1;let o=qAe(t);return o===t?e.mkdirAsync(t,e).catch(a=>{if(a.code!=="EISDIR")throw a}):e.mkdirAsync(t,e).then(()=>r||t,a=>{if(a.code==="ENOENT")return O3(o,e).then(n=>O3(t,e,n));if(a.code!=="EEXIST"&&a.code!=="EROFS")throw a;return e.statAsync(t).then(n=>{if(n.isDirectory())return r;throw a},()=>{throw a})})},M3=(t,e,r)=>{let o=qAe(t);if(e.recursive=!1,o===t)try{return e.mkdirSync(t,e)}catch(a){if(a.code!=="EISDIR")throw a;return}try{return e.mkdirSync(t,e),r||t}catch(a){if(a.code==="ENOENT")return M3(t,e,M3(o,e,r));if(a.code!=="EEXIST"&&a.code!=="EROFS")throw a;try{if(!e.statSync(t).isDirectory())throw a}catch{throw a}}};jAe.exports={mkdirpManual:O3,mkdirpManualSync:M3}});var WAe=_((mUt,YAe)=>{var{dirname:GAe}=ve("path"),{findMade:$lt,findMadeSync:ect}=HAe(),{mkdirpManual:tct,mkdirpManualSync:rct}=U3(),nct=(t,e)=>(e.recursive=!0,GAe(t)===t?e.mkdirAsync(t,e):$lt(e,t).then(o=>e.mkdirAsync(t,e).then(()=>o).catch(a=>{if(a.code==="ENOENT")return tct(t,e);throw a}))),ict=(t,e)=>{if(e.recursive=!0,GAe(t)===t)return e.mkdirSync(t,e);let o=ect(e,t);try{return e.mkdirSync(t,e),o}catch(a){if(a.code==="ENOENT")return rct(t,e);throw a}};YAe.exports={mkdirpNative:nct,mkdirpNativeSync:ict}});var zAe=_((yUt,JAe)=>{var KAe=ve("fs"),sct=process.version,_3=sct.replace(/^v/,"").split("."),VAe=+_3[0]>10||+_3[0]==10&&+_3[1]>=12,oct=VAe?t=>t.mkdir===KAe.mkdir:()=>!1,act=VAe?t=>t.mkdirSync===KAe.mkdirSync:()=>!1;JAe.exports={useNative:oct,useNativeSync:act}});var rfe=_((EUt,tfe)=>{var rC=TAe(),nC=LAe(),{mkdirpNative:XAe,mkdirpNativeSync:ZAe}=WAe(),{mkdirpManual:$Ae,mkdirpManualSync:efe}=U3(),{useNative:lct,useNativeSync:cct}=zAe(),iC=(t,e)=>(t=nC(t),e=rC(e),lct(e)?XAe(t,e):$Ae(t,e)),uct=(t,e)=>(t=nC(t),e=rC(e),cct(e)?ZAe(t,e):efe(t,e));iC.sync=uct;iC.native=(t,e)=>XAe(nC(t),rC(e));iC.manual=(t,e)=>$Ae(nC(t),rC(e));iC.nativeSync=(t,e)=>ZAe(nC(t),rC(e));iC.manualSync=(t,e)=>efe(nC(t),rC(e));tfe.exports=iC});var cfe=_((CUt,lfe)=>{"use strict";var $l=ve("fs"),qd=ve("path"),Act=$l.lchown?"lchown":"chown",fct=$l.lchownSync?"lchownSync":"chownSync",ife=$l.lchown&&!process.version.match(/v1[1-9]+\./)&&!process.version.match(/v10\.[6-9]/),nfe=(t,e,r)=>{try{return $l[fct](t,e,r)}catch(o){if(o.code!=="ENOENT")throw o}},pct=(t,e,r)=>{try{return $l.chownSync(t,e,r)}catch(o){if(o.code!=="ENOENT")throw o}},hct=ife?(t,e,r,o)=>a=>{!a||a.code!=="EISDIR"?o(a):$l.chown(t,e,r,o)}:(t,e,r,o)=>o,H3=ife?(t,e,r)=>{try{return nfe(t,e,r)}catch(o){if(o.code!=="EISDIR")throw o;pct(t,e,r)}}:(t,e,r)=>nfe(t,e,r),gct=process.version,sfe=(t,e,r)=>$l.readdir(t,e,r),dct=(t,e)=>$l.readdirSync(t,e);/^v4\./.test(gct)&&(sfe=(t,e,r)=>$l.readdir(t,r));var Lx=(t,e,r,o)=>{$l[Act](t,e,r,hct(t,e,r,a=>{o(a&&a.code!=="ENOENT"?a:null)}))},ofe=(t,e,r,o,a)=>{if(typeof e=="string")return $l.lstat(qd.resolve(t,e),(n,u)=>{if(n)return a(n.code!=="ENOENT"?n:null);u.name=e,ofe(t,u,r,o,a)});if(e.isDirectory())q3(qd.resolve(t,e.name),r,o,n=>{if(n)return a(n);let u=qd.resolve(t,e.name);Lx(u,r,o,a)});else{let n=qd.resolve(t,e.name);Lx(n,r,o,a)}},q3=(t,e,r,o)=>{sfe(t,{withFileTypes:!0},(a,n)=>{if(a){if(a.code==="ENOENT")return o();if(a.code!=="ENOTDIR"&&a.code!=="ENOTSUP")return o(a)}if(a||!n.length)return Lx(t,e,r,o);let u=n.length,A=null,p=h=>{if(!A){if(h)return o(A=h);if(--u===0)return Lx(t,e,r,o)}};n.forEach(h=>ofe(t,h,e,r,p))})},mct=(t,e,r,o)=>{if(typeof e=="string")try{let a=$l.lstatSync(qd.resolve(t,e));a.name=e,e=a}catch(a){if(a.code==="ENOENT")return;throw a}e.isDirectory()&&afe(qd.resolve(t,e.name),r,o),H3(qd.resolve(t,e.name),r,o)},afe=(t,e,r)=>{let o;try{o=dct(t,{withFileTypes:!0})}catch(a){if(a.code==="ENOENT")return;if(a.code==="ENOTDIR"||a.code==="ENOTSUP")return H3(t,e,r);throw a}return o&&o.length&&o.forEach(a=>mct(t,a,e,r)),H3(t,e,r)};lfe.exports=q3;q3.sync=afe});var pfe=_((wUt,j3)=>{"use strict";var ufe=rfe(),ec=ve("fs"),Ox=ve("path"),Afe=cfe(),Wc=qE(),Mx=class extends Error{constructor(e,r){super("Cannot extract through symbolic link"),this.path=r,this.symlink=e}get name(){return"SylinkError"}},Ux=class extends Error{constructor(e,r){super(r+": Cannot cd into '"+e+"'"),this.path=e,this.code=r}get name(){return"CwdError"}},_x=(t,e)=>t.get(Wc(e)),J1=(t,e,r)=>t.set(Wc(e),r),yct=(t,e)=>{ec.stat(t,(r,o)=>{(r||!o.isDirectory())&&(r=new Ux(t,r&&r.code||"ENOTDIR")),e(r)})};j3.exports=(t,e,r)=>{t=Wc(t);let o=e.umask,a=e.mode|448,n=(a&o)!==0,u=e.uid,A=e.gid,p=typeof u=="number"&&typeof A=="number"&&(u!==e.processUid||A!==e.processGid),h=e.preserve,E=e.unlink,I=e.cache,v=Wc(e.cwd),x=(L,U)=>{L?r(L):(J1(I,t,!0),U&&p?Afe(U,u,A,J=>x(J)):n?ec.chmod(t,a,r):r())};if(I&&_x(I,t)===!0)return x();if(t===v)return yct(t,x);if(h)return ufe(t,{mode:a}).then(L=>x(null,L),x);let R=Wc(Ox.relative(v,t)).split("/");Hx(v,R,a,I,E,v,null,x)};var Hx=(t,e,r,o,a,n,u,A)=>{if(!e.length)return A(null,u);let p=e.shift(),h=Wc(Ox.resolve(t+"/"+p));if(_x(o,h))return Hx(h,e,r,o,a,n,u,A);ec.mkdir(h,r,ffe(h,e,r,o,a,n,u,A))},ffe=(t,e,r,o,a,n,u,A)=>p=>{p?ec.lstat(t,(h,E)=>{if(h)h.path=h.path&&Wc(h.path),A(h);else if(E.isDirectory())Hx(t,e,r,o,a,n,u,A);else if(a)ec.unlink(t,I=>{if(I)return A(I);ec.mkdir(t,r,ffe(t,e,r,o,a,n,u,A))});else{if(E.isSymbolicLink())return A(new Mx(t,t+"/"+e.join("/")));A(p)}}):(u=u||t,Hx(t,e,r,o,a,n,u,A))},Ect=t=>{let e=!1,r="ENOTDIR";try{e=ec.statSync(t).isDirectory()}catch(o){r=o.code}finally{if(!e)throw new Ux(t,r)}};j3.exports.sync=(t,e)=>{t=Wc(t);let r=e.umask,o=e.mode|448,a=(o&r)!==0,n=e.uid,u=e.gid,A=typeof n=="number"&&typeof u=="number"&&(n!==e.processUid||u!==e.processGid),p=e.preserve,h=e.unlink,E=e.cache,I=Wc(e.cwd),v=L=>{J1(E,t,!0),L&&A&&Afe.sync(L,n,u),a&&ec.chmodSync(t,o)};if(E&&_x(E,t)===!0)return v();if(t===I)return Ect(I),v();if(p)return v(ufe.sync(t,o));let C=Wc(Ox.relative(I,t)).split("/"),R=null;for(let L=C.shift(),U=I;L&&(U+="/"+L);L=C.shift())if(U=Wc(Ox.resolve(U)),!_x(E,U))try{ec.mkdirSync(U,o),R=R||U,J1(E,U,!0)}catch{let te=ec.lstatSync(U);if(te.isDirectory()){J1(E,U,!0);continue}else if(h){ec.unlinkSync(U),ec.mkdirSync(U,o),R=R||U,J1(E,U,!0);continue}else if(te.isSymbolicLink())return new Mx(U,U+"/"+C.join("/"))}return v(R)}});var Y3=_((IUt,hfe)=>{var G3=Object.create(null),{hasOwnProperty:Cct}=Object.prototype;hfe.exports=t=>(Cct.call(G3,t)||(G3[t]=t.normalize("NFKD")),G3[t])});var yfe=_((BUt,mfe)=>{var gfe=ve("assert"),wct=Y3(),Ict=YE(),{join:dfe}=ve("path"),Bct=process.env.TESTING_TAR_FAKE_PLATFORM||process.platform,vct=Bct==="win32";mfe.exports=()=>{let t=new Map,e=new Map,r=h=>h.split("/").slice(0,-1).reduce((I,v)=>(I.length&&(v=dfe(I[I.length-1],v)),I.push(v||"/"),I),[]),o=new Set,a=h=>{let E=e.get(h);if(!E)throw new Error("function does not have any path reservations");return{paths:E.paths.map(I=>t.get(I)),dirs:[...E.dirs].map(I=>t.get(I))}},n=h=>{let{paths:E,dirs:I}=a(h);return E.every(v=>v[0]===h)&&I.every(v=>v[0]instanceof Set&&v[0].has(h))},u=h=>o.has(h)||!n(h)?!1:(o.add(h),h(()=>A(h)),!0),A=h=>{if(!o.has(h))return!1;let{paths:E,dirs:I}=e.get(h),v=new Set;return E.forEach(x=>{let C=t.get(x);gfe.equal(C[0],h),C.length===1?t.delete(x):(C.shift(),typeof C[0]=="function"?v.add(C[0]):C[0].forEach(R=>v.add(R)))}),I.forEach(x=>{let C=t.get(x);gfe(C[0]instanceof Set),C[0].size===1&&C.length===1?t.delete(x):C[0].size===1?(C.shift(),v.add(C[0])):C[0].delete(h)}),o.delete(h),v.forEach(x=>u(x)),!0};return{check:n,reserve:(h,E)=>{h=vct?["win32 parallelization disabled"]:h.map(v=>wct(Ict(dfe(v))).toLowerCase());let I=new Set(h.map(v=>r(v)).reduce((v,x)=>v.concat(x)));return e.set(E,{dirs:I,paths:h}),h.forEach(v=>{let x=t.get(v);x?x.push(E):t.set(v,[E])}),I.forEach(v=>{let x=t.get(v);x?x[x.length-1]instanceof Set?x[x.length-1].add(E):x.push(new Set([E])):t.set(v,[new Set([E])])}),u(E)}}}});var wfe=_((vUt,Cfe)=>{var Dct=process.platform,Sct=Dct==="win32",Pct=global.__FAKE_TESTING_FS__||ve("fs"),{O_CREAT:bct,O_TRUNC:xct,O_WRONLY:kct,UV_FS_O_FILEMAP:Efe=0}=Pct.constants,Qct=Sct&&!!Efe,Fct=512*1024,Rct=Efe|xct|bct|kct;Cfe.exports=Qct?t=>t"w"});var e_=_((DUt,Nfe)=>{"use strict";var Tct=ve("assert"),Nct=Rx(),vn=ve("fs"),Lct=eC(),Wf=ve("path"),Ffe=pfe(),Ife=e3(),Oct=yfe(),Mct=t3(),fl=qE(),Uct=YE(),_ct=Y3(),Bfe=Symbol("onEntry"),V3=Symbol("checkFs"),vfe=Symbol("checkFs2"),Gx=Symbol("pruneCache"),J3=Symbol("isReusable"),tc=Symbol("makeFs"),z3=Symbol("file"),X3=Symbol("directory"),Yx=Symbol("link"),Dfe=Symbol("symlink"),Sfe=Symbol("hardlink"),Pfe=Symbol("unsupported"),bfe=Symbol("checkPath"),Dh=Symbol("mkdir"),To=Symbol("onError"),qx=Symbol("pending"),xfe=Symbol("pend"),sC=Symbol("unpend"),W3=Symbol("ended"),K3=Symbol("maybeClose"),Z3=Symbol("skip"),z1=Symbol("doChown"),X1=Symbol("uid"),Z1=Symbol("gid"),$1=Symbol("checkedCwd"),Rfe=ve("crypto"),Tfe=wfe(),Hct=process.env.TESTING_TAR_FAKE_PLATFORM||process.platform,e2=Hct==="win32",qct=(t,e)=>{if(!e2)return vn.unlink(t,e);let r=t+".DELETE."+Rfe.randomBytes(16).toString("hex");vn.rename(t,r,o=>{if(o)return e(o);vn.unlink(r,e)})},jct=t=>{if(!e2)return vn.unlinkSync(t);let e=t+".DELETE."+Rfe.randomBytes(16).toString("hex");vn.renameSync(t,e),vn.unlinkSync(e)},kfe=(t,e,r)=>t===t>>>0?t:e===e>>>0?e:r,Qfe=t=>_ct(Uct(fl(t))).toLowerCase(),Gct=(t,e)=>{e=Qfe(e);for(let r of t.keys()){let o=Qfe(r);(o===e||o.indexOf(e+"/")===0)&&t.delete(r)}},Yct=t=>{for(let e of t.keys())t.delete(e)},t2=class extends Nct{constructor(e){if(e||(e={}),e.ondone=r=>{this[W3]=!0,this[K3]()},super(e),this[$1]=!1,this.reservations=Oct(),this.transform=typeof e.transform=="function"?e.transform:null,this.writable=!0,this.readable=!1,this[qx]=0,this[W3]=!1,this.dirCache=e.dirCache||new Map,typeof e.uid=="number"||typeof e.gid=="number"){if(typeof e.uid!="number"||typeof e.gid!="number")throw new TypeError("cannot set owner without number uid and gid");if(e.preserveOwner)throw new TypeError("cannot preserve owner in archive and also set owner explicitly");this.uid=e.uid,this.gid=e.gid,this.setOwner=!0}else this.uid=null,this.gid=null,this.setOwner=!1;e.preserveOwner===void 0&&typeof e.uid!="number"?this.preserveOwner=process.getuid&&process.getuid()===0:this.preserveOwner=!!e.preserveOwner,this.processUid=(this.preserveOwner||this.setOwner)&&process.getuid?process.getuid():null,this.processGid=(this.preserveOwner||this.setOwner)&&process.getgid?process.getgid():null,this.forceChown=e.forceChown===!0,this.win32=!!e.win32||e2,this.newer=!!e.newer,this.keep=!!e.keep,this.noMtime=!!e.noMtime,this.preservePaths=!!e.preservePaths,this.unlink=!!e.unlink,this.cwd=fl(Wf.resolve(e.cwd||process.cwd())),this.strip=+e.strip||0,this.processUmask=e.noChmod?0:process.umask(),this.umask=typeof e.umask=="number"?e.umask:this.processUmask,this.dmode=e.dmode||511&~this.umask,this.fmode=e.fmode||438&~this.umask,this.on("entry",r=>this[Bfe](r))}warn(e,r,o={}){return(e==="TAR_BAD_ARCHIVE"||e==="TAR_ABORT")&&(o.recoverable=!1),super.warn(e,r,o)}[K3](){this[W3]&&this[qx]===0&&(this.emit("prefinish"),this.emit("finish"),this.emit("end"),this.emit("close"))}[bfe](e){if(this.strip){let r=fl(e.path).split("/");if(r.length=this.strip)e.linkpath=o.slice(this.strip).join("/");else return!1}}if(!this.preservePaths){let r=fl(e.path),o=r.split("/");if(o.includes("..")||e2&&/^[a-z]:\.\.$/i.test(o[0]))return this.warn("TAR_ENTRY_ERROR","path contains '..'",{entry:e,path:r}),!1;let[a,n]=Mct(r);a&&(e.path=n,this.warn("TAR_ENTRY_INFO",`stripping ${a} from absolute path`,{entry:e,path:r}))}if(Wf.isAbsolute(e.path)?e.absolute=fl(Wf.resolve(e.path)):e.absolute=fl(Wf.resolve(this.cwd,e.path)),!this.preservePaths&&e.absolute.indexOf(this.cwd+"/")!==0&&e.absolute!==this.cwd)return this.warn("TAR_ENTRY_ERROR","path escaped extraction target",{entry:e,path:fl(e.path),resolvedPath:e.absolute,cwd:this.cwd}),!1;if(e.absolute===this.cwd&&e.type!=="Directory"&&e.type!=="GNUDumpDir")return!1;if(this.win32){let{root:r}=Wf.win32.parse(e.absolute);e.absolute=r+Ife.encode(e.absolute.substr(r.length));let{root:o}=Wf.win32.parse(e.path);e.path=o+Ife.encode(e.path.substr(o.length))}return!0}[Bfe](e){if(!this[bfe](e))return e.resume();switch(Tct.equal(typeof e.absolute,"string"),e.type){case"Directory":case"GNUDumpDir":e.mode&&(e.mode=e.mode|448);case"File":case"OldFile":case"ContiguousFile":case"Link":case"SymbolicLink":return this[V3](e);case"CharacterDevice":case"BlockDevice":case"FIFO":default:return this[Pfe](e)}}[To](e,r){e.name==="CwdError"?this.emit("error",e):(this.warn("TAR_ENTRY_ERROR",e,{entry:r}),this[sC](),r.resume())}[Dh](e,r,o){Ffe(fl(e),{uid:this.uid,gid:this.gid,processUid:this.processUid,processGid:this.processGid,umask:this.processUmask,preserve:this.preservePaths,unlink:this.unlink,cache:this.dirCache,cwd:this.cwd,mode:r,noChmod:this.noChmod},o)}[z1](e){return this.forceChown||this.preserveOwner&&(typeof e.uid=="number"&&e.uid!==this.processUid||typeof e.gid=="number"&&e.gid!==this.processGid)||typeof this.uid=="number"&&this.uid!==this.processUid||typeof this.gid=="number"&&this.gid!==this.processGid}[X1](e){return kfe(this.uid,e.uid,this.processUid)}[Z1](e){return kfe(this.gid,e.gid,this.processGid)}[z3](e,r){let o=e.mode&4095||this.fmode,a=new Lct.WriteStream(e.absolute,{flags:Tfe(e.size),mode:o,autoClose:!1});a.on("error",p=>{a.fd&&vn.close(a.fd,()=>{}),a.write=()=>!0,this[To](p,e),r()});let n=1,u=p=>{if(p){a.fd&&vn.close(a.fd,()=>{}),this[To](p,e),r();return}--n===0&&vn.close(a.fd,h=>{h?this[To](h,e):this[sC](),r()})};a.on("finish",p=>{let h=e.absolute,E=a.fd;if(e.mtime&&!this.noMtime){n++;let I=e.atime||new Date,v=e.mtime;vn.futimes(E,I,v,x=>x?vn.utimes(h,I,v,C=>u(C&&x)):u())}if(this[z1](e)){n++;let I=this[X1](e),v=this[Z1](e);vn.fchown(E,I,v,x=>x?vn.chown(h,I,v,C=>u(C&&x)):u())}u()});let A=this.transform&&this.transform(e)||e;A!==e&&(A.on("error",p=>{this[To](p,e),r()}),e.pipe(A)),A.pipe(a)}[X3](e,r){let o=e.mode&4095||this.dmode;this[Dh](e.absolute,o,a=>{if(a){this[To](a,e),r();return}let n=1,u=A=>{--n===0&&(r(),this[sC](),e.resume())};e.mtime&&!this.noMtime&&(n++,vn.utimes(e.absolute,e.atime||new Date,e.mtime,u)),this[z1](e)&&(n++,vn.chown(e.absolute,this[X1](e),this[Z1](e),u)),u()})}[Pfe](e){e.unsupported=!0,this.warn("TAR_ENTRY_UNSUPPORTED",`unsupported entry type: ${e.type}`,{entry:e}),e.resume()}[Dfe](e,r){this[Yx](e,e.linkpath,"symlink",r)}[Sfe](e,r){let o=fl(Wf.resolve(this.cwd,e.linkpath));this[Yx](e,o,"link",r)}[xfe](){this[qx]++}[sC](){this[qx]--,this[K3]()}[Z3](e){this[sC](),e.resume()}[J3](e,r){return e.type==="File"&&!this.unlink&&r.isFile()&&r.nlink<=1&&!e2}[V3](e){this[xfe]();let r=[e.path];e.linkpath&&r.push(e.linkpath),this.reservations.reserve(r,o=>this[vfe](e,o))}[Gx](e){e.type==="SymbolicLink"?Yct(this.dirCache):e.type!=="Directory"&&Gct(this.dirCache,e.absolute)}[vfe](e,r){this[Gx](e);let o=A=>{this[Gx](e),r(A)},a=()=>{this[Dh](this.cwd,this.dmode,A=>{if(A){this[To](A,e),o();return}this[$1]=!0,n()})},n=()=>{if(e.absolute!==this.cwd){let A=fl(Wf.dirname(e.absolute));if(A!==this.cwd)return this[Dh](A,this.dmode,p=>{if(p){this[To](p,e),o();return}u()})}u()},u=()=>{vn.lstat(e.absolute,(A,p)=>{if(p&&(this.keep||this.newer&&p.mtime>e.mtime)){this[Z3](e),o();return}if(A||this[J3](e,p))return this[tc](null,e,o);if(p.isDirectory()){if(e.type==="Directory"){let h=!this.noChmod&&e.mode&&(p.mode&4095)!==e.mode,E=I=>this[tc](I,e,o);return h?vn.chmod(e.absolute,e.mode,E):E()}if(e.absolute!==this.cwd)return vn.rmdir(e.absolute,h=>this[tc](h,e,o))}if(e.absolute===this.cwd)return this[tc](null,e,o);qct(e.absolute,h=>this[tc](h,e,o))})};this[$1]?n():a()}[tc](e,r,o){if(e){this[To](e,r),o();return}switch(r.type){case"File":case"OldFile":case"ContiguousFile":return this[z3](r,o);case"Link":return this[Sfe](r,o);case"SymbolicLink":return this[Dfe](r,o);case"Directory":case"GNUDumpDir":return this[X3](r,o)}}[Yx](e,r,o,a){vn[o](r,e.absolute,n=>{n?this[To](n,e):(this[sC](),e.resume()),a()})}},jx=t=>{try{return[null,t()]}catch(e){return[e,null]}},$3=class extends t2{[tc](e,r){return super[tc](e,r,()=>{})}[V3](e){if(this[Gx](e),!this[$1]){let n=this[Dh](this.cwd,this.dmode);if(n)return this[To](n,e);this[$1]=!0}if(e.absolute!==this.cwd){let n=fl(Wf.dirname(e.absolute));if(n!==this.cwd){let u=this[Dh](n,this.dmode);if(u)return this[To](u,e)}}let[r,o]=jx(()=>vn.lstatSync(e.absolute));if(o&&(this.keep||this.newer&&o.mtime>e.mtime))return this[Z3](e);if(r||this[J3](e,o))return this[tc](null,e);if(o.isDirectory()){if(e.type==="Directory"){let u=!this.noChmod&&e.mode&&(o.mode&4095)!==e.mode,[A]=u?jx(()=>{vn.chmodSync(e.absolute,e.mode)}):[];return this[tc](A,e)}let[n]=jx(()=>vn.rmdirSync(e.absolute));this[tc](n,e)}let[a]=e.absolute===this.cwd?[]:jx(()=>jct(e.absolute));this[tc](a,e)}[z3](e,r){let o=e.mode&4095||this.fmode,a=A=>{let p;try{vn.closeSync(n)}catch(h){p=h}(A||p)&&this[To](A||p,e),r()},n;try{n=vn.openSync(e.absolute,Tfe(e.size),o)}catch(A){return a(A)}let u=this.transform&&this.transform(e)||e;u!==e&&(u.on("error",A=>this[To](A,e)),e.pipe(u)),u.on("data",A=>{try{vn.writeSync(n,A,0,A.length)}catch(p){a(p)}}),u.on("end",A=>{let p=null;if(e.mtime&&!this.noMtime){let h=e.atime||new Date,E=e.mtime;try{vn.futimesSync(n,h,E)}catch(I){try{vn.utimesSync(e.absolute,h,E)}catch{p=I}}}if(this[z1](e)){let h=this[X1](e),E=this[Z1](e);try{vn.fchownSync(n,h,E)}catch(I){try{vn.chownSync(e.absolute,h,E)}catch{p=p||I}}}a(p)})}[X3](e,r){let o=e.mode&4095||this.dmode,a=this[Dh](e.absolute,o);if(a){this[To](a,e),r();return}if(e.mtime&&!this.noMtime)try{vn.utimesSync(e.absolute,e.atime||new Date,e.mtime)}catch{}if(this[z1](e))try{vn.chownSync(e.absolute,this[X1](e),this[Z1](e))}catch{}r(),e.resume()}[Dh](e,r){try{return Ffe.sync(fl(e),{uid:this.uid,gid:this.gid,processUid:this.processUid,processGid:this.processGid,umask:this.processUmask,preserve:this.preservePaths,unlink:this.unlink,cache:this.dirCache,cwd:this.cwd,mode:r})}catch(o){return o}}[Yx](e,r,o,a){try{vn[o+"Sync"](r,e.absolute),a(),e.resume()}catch(n){return this[To](n,e)}}};t2.Sync=$3;Nfe.exports=t2});var _fe=_((SUt,Ufe)=>{"use strict";var Wct=OE(),Wx=e_(),Ofe=ve("fs"),Mfe=eC(),Lfe=ve("path"),t_=YE();Ufe.exports=(t,e,r)=>{typeof t=="function"?(r=t,e=null,t={}):Array.isArray(t)&&(e=t,t={}),typeof e=="function"&&(r=e,e=null),e?e=Array.from(e):e=[];let o=Wct(t);if(o.sync&&typeof r=="function")throw new TypeError("callback not supported for sync tar functions");if(!o.file&&typeof r=="function")throw new TypeError("callback only supported with file option");return e.length&&Kct(o,e),o.file&&o.sync?Vct(o):o.file?Jct(o,r):o.sync?zct(o):Xct(o)};var Kct=(t,e)=>{let r=new Map(e.map(n=>[t_(n),!0])),o=t.filter,a=(n,u)=>{let A=u||Lfe.parse(n).root||".",p=n===A?!1:r.has(n)?r.get(n):a(Lfe.dirname(n),A);return r.set(n,p),p};t.filter=o?(n,u)=>o(n,u)&&a(t_(n)):n=>a(t_(n))},Vct=t=>{let e=new Wx.Sync(t),r=t.file,o=Ofe.statSync(r),a=t.maxReadSize||16*1024*1024;new Mfe.ReadStreamSync(r,{readSize:a,size:o.size}).pipe(e)},Jct=(t,e)=>{let r=new Wx(t),o=t.maxReadSize||16*1024*1024,a=t.file,n=new Promise((u,A)=>{r.on("error",A),r.on("close",u),Ofe.stat(a,(p,h)=>{if(p)A(p);else{let E=new Mfe.ReadStream(a,{readSize:o,size:h.size});E.on("error",A),E.pipe(r)}})});return e?n.then(e,e):n},zct=t=>new Wx.Sync(t),Xct=t=>new Wx(t)});var Hfe=_(us=>{"use strict";us.c=us.create=IAe();us.r=us.replace=L3();us.t=us.list=Tx();us.u=us.update=QAe();us.x=us.extract=_fe();us.Pack=Ex();us.Unpack=e_();us.Parse=Rx();us.ReadEntry=rx();us.WriteEntry=A3();us.Header=GE();us.Pax=ix();us.types=KU()});var r_,qfe,Sh,r2,n2,jfe=Et(()=>{r_=$e(id()),qfe=ve("worker_threads"),Sh=Symbol("kTaskInfo"),r2=class{constructor(e,r){this.fn=e;this.limit=(0,r_.default)(r.poolSize)}run(e){return this.limit(()=>this.fn(e))}},n2=class{constructor(e,r){this.source=e;this.workers=[];this.limit=(0,r_.default)(r.poolSize),this.cleanupInterval=setInterval(()=>{if(this.limit.pendingCount===0&&this.limit.activeCount===0){let o=this.workers.pop();o?o.terminate():clearInterval(this.cleanupInterval)}},5e3).unref()}createWorker(){this.cleanupInterval.refresh();let e=new qfe.Worker(this.source,{eval:!0,execArgv:[...process.execArgv,"--unhandled-rejections=strict"]});return e.on("message",r=>{if(!e[Sh])throw new Error("Assertion failed: Worker sent a result without having a task assigned");e[Sh].resolve(r),e[Sh]=null,e.unref(),this.workers.push(e)}),e.on("error",r=>{e[Sh]?.reject(r),e[Sh]=null}),e.on("exit",r=>{r!==0&&e[Sh]?.reject(new Error(`Worker exited with code ${r}`)),e[Sh]=null}),e}run(e){return this.limit(()=>{let r=this.workers.pop()??this.createWorker();return r.ref(),new Promise((o,a)=>{r[Sh]={resolve:o,reject:a},r.postMessage(e)})})}}});var Yfe=_((kUt,Gfe)=>{var n_;Gfe.exports.getContent=()=>(typeof n_>"u"&&(n_=ve("zlib").brotliDecompressSync(Buffer.from("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","base64")).toString()),n_)});var Xi={};Vt(Xi,{convertToZip:()=>tut,convertToZipWorker:()=>o_,extractArchiveTo:()=>zfe,getDefaultTaskPool:()=>Vfe,getTaskPoolForConfiguration:()=>Jfe,makeArchiveFromDirectory:()=>eut});function Zct(t,e){switch(t){case"async":return new r2(o_,{poolSize:e});case"workers":return new n2((0,s_.getContent)(),{poolSize:e});default:throw new Error(`Assertion failed: Unknown value ${t} for taskPoolMode`)}}function Vfe(){return typeof i_>"u"&&(i_=Zct("workers",Ji.availableParallelism())),i_}function Jfe(t){return typeof t>"u"?Vfe():ol($ct,t,()=>{let e=t.get("taskPoolMode"),r=t.get("taskPoolConcurrency");switch(e){case"async":return new r2(o_,{poolSize:r});case"workers":return new n2((0,s_.getContent)(),{poolSize:r});default:throw new Error(`Assertion failed: Unknown value ${e} for taskPoolMode`)}})}async function o_(t){let{tmpFile:e,tgz:r,compressionLevel:o,extractBufferOpts:a}=t,n=new zi(e,{create:!0,level:o,stats:Ea.makeDefaultStats()}),u=Buffer.from(r.buffer,r.byteOffset,r.byteLength);return await zfe(u,n,a),n.saveAndClose(),e}async function eut(t,{baseFs:e=new Tn,prefixPath:r=Bt.root,compressionLevel:o,inMemory:a=!1}={}){let n;if(a)n=new zi(null,{level:o});else{let A=await oe.mktempPromise(),p=V.join(A,"archive.zip");n=new zi(p,{create:!0,level:o})}let u=V.resolve(Bt.root,r);return await n.copyPromise(u,t,{baseFs:e,stableTime:!0,stableSort:!0}),n}async function tut(t,e={}){let r=await oe.mktempPromise(),o=V.join(r,"archive.zip"),a=e.compressionLevel??e.configuration?.get("compressionLevel")??"mixed",n={prefixPath:e.prefixPath,stripComponents:e.stripComponents};return await(e.taskPool??Jfe(e.configuration)).run({tmpFile:o,tgz:t,compressionLevel:a,extractBufferOpts:n}),new zi(o,{level:e.compressionLevel})}async function*rut(t){let e=new Kfe.default.Parse,r=new Wfe.PassThrough({objectMode:!0,autoDestroy:!0,emitClose:!0});e.on("entry",o=>{r.write(o)}),e.on("error",o=>{r.destroy(o)}),e.on("close",()=>{r.destroyed||r.end()}),e.end(t);for await(let o of r){let a=o;yield a,a.resume()}}async function zfe(t,e,{stripComponents:r=0,prefixPath:o=Bt.dot}={}){function a(n){if(n.path[0]==="/")return!0;let u=n.path.split(/\//g);return!!(u.some(A=>A==="..")||u.length<=r)}for await(let n of rut(t)){if(a(n))continue;let u=V.normalize(ue.toPortablePath(n.path)).replace(/\/$/,"").split(/\//g);if(u.length<=r)continue;let A=u.slice(r).join("/"),p=V.join(o,A),h=420;switch((n.type==="Directory"||((n.mode??0)&73)!==0)&&(h|=73),n.type){case"Directory":e.mkdirpSync(V.dirname(p),{chmod:493,utimes:[vi.SAFE_TIME,vi.SAFE_TIME]}),e.mkdirSync(p,{mode:h}),e.utimesSync(p,vi.SAFE_TIME,vi.SAFE_TIME);break;case"OldFile":case"File":e.mkdirpSync(V.dirname(p),{chmod:493,utimes:[vi.SAFE_TIME,vi.SAFE_TIME]}),e.writeFileSync(p,await Vy(n),{mode:h}),e.utimesSync(p,vi.SAFE_TIME,vi.SAFE_TIME);break;case"SymbolicLink":e.mkdirpSync(V.dirname(p),{chmod:493,utimes:[vi.SAFE_TIME,vi.SAFE_TIME]}),e.symlinkSync(n.linkpath,p),e.lutimesSync(p,vi.SAFE_TIME,vi.SAFE_TIME);break}}return e}var Wfe,Kfe,s_,i_,$ct,Xfe=Et(()=>{Ye();St();nA();Wfe=ve("stream"),Kfe=$e(Hfe());jfe();ql();s_=$e(Yfe());$ct=new WeakMap});var $fe=_((a_,Zfe)=>{(function(t,e){typeof a_=="object"?Zfe.exports=e():typeof define=="function"&&define.amd?define(e):t.treeify=e()})(a_,function(){function t(a,n){var u=n?"\u2514":"\u251C";return a?u+="\u2500 ":u+="\u2500\u2500\u2510",u}function e(a,n){var u=[];for(var A in a)!a.hasOwnProperty(A)||n&&typeof a[A]=="function"||u.push(A);return u}function r(a,n,u,A,p,h,E){var I="",v=0,x,C,R=A.slice(0);if(R.push([n,u])&&A.length>0&&(A.forEach(function(U,J){J>0&&(I+=(U[1]?" ":"\u2502")+" "),!C&&U[0]===n&&(C=!0)}),I+=t(a,u)+a,p&&(typeof n!="object"||n instanceof Date)&&(I+=": "+n),C&&(I+=" (circular ref.)"),E(I)),!C&&typeof n=="object"){var L=e(n,h);L.forEach(function(U){x=++v===L.length,r(U,n[U],x,R,p,h,E)})}}var o={};return o.asLines=function(a,n,u,A){var p=typeof u!="function"?u:!1;r(".",a,!1,[],n,p,A||u)},o.asTree=function(a,n,u){var A="";return r(".",a,!1,[],n,u,function(p){A+=p+` +`}),A},o})});var $s={};Vt($s,{emitList:()=>nut,emitTree:()=>npe,treeNodeToJson:()=>rpe,treeNodeToTreeify:()=>tpe});function tpe(t,{configuration:e}){let r={},o=0,a=(n,u)=>{let A=Array.isArray(n)?n.entries():Object.entries(n);for(let[p,h]of A){if(!h)continue;let{label:E,value:I,children:v}=h,x=[];typeof E<"u"&&x.push(yd(e,E,2)),typeof I<"u"&&x.push(Mt(e,I[0],I[1])),x.length===0&&x.push(yd(e,`${p}`,2));let C=x.join(": ").trim(),R=`\0${o++}\0`,L=u[`${R}${C}`]={};typeof v<"u"&&a(v,L)}};if(typeof t.children>"u")throw new Error("The root node must only contain children");return a(t.children,r),r}function rpe(t){let e=r=>{if(typeof r.children>"u"){if(typeof r.value>"u")throw new Error("Assertion failed: Expected a value to be set if the children are missing");return Ed(r.value[0],r.value[1])}let o=Array.isArray(r.children)?r.children.entries():Object.entries(r.children??{}),a=Array.isArray(r.children)?[]:{};for(let[n,u]of o)u&&(a[iut(n)]=e(u));return typeof r.value>"u"?a:{value:Ed(r.value[0],r.value[1]),children:a}};return e(t)}function nut(t,{configuration:e,stdout:r,json:o}){let a=t.map(n=>({value:n}));npe({children:a},{configuration:e,stdout:r,json:o})}function npe(t,{configuration:e,stdout:r,json:o,separators:a=0}){if(o){let u=Array.isArray(t.children)?t.children.values():Object.values(t.children??{});for(let A of u)A&&r.write(`${JSON.stringify(rpe(A))} +`);return}let n=(0,epe.asTree)(tpe(t,{configuration:e}),!1,!1);if(n=n.replace(/\0[0-9]+\0/g,""),a>=1&&(n=n.replace(/^([├└]─)/gm,`\u2502 +$1`).replace(/^│\n/,"")),a>=2)for(let u=0;u<2;++u)n=n.replace(/^([│ ].{2}[├│ ].{2}[^\n]+\n)(([│ ]).{2}[├└].{2}[^\n]*\n[│ ].{2}[│ ].{2}[├└]─)/gm,`$1$3 \u2502 +$2`).replace(/^│\n/,"");if(a>=3)throw new Error("Only the first two levels are accepted by treeUtils.emitTree");r.write(n)}function iut(t){return typeof t=="string"?t.replace(/^\0[0-9]+\0/,""):t}var epe,ipe=Et(()=>{epe=$e($fe());jl()});function i2(t){let e=t.match(sut);if(!e?.groups)throw new Error("Assertion failed: Expected the checksum to match the requested pattern");let r=e.groups.cacheVersion?parseInt(e.groups.cacheVersion):null;return{cacheKey:e.groups.cacheKey??null,cacheVersion:r,cacheSpec:e.groups.cacheSpec??null,hash:e.groups.hash}}var spe,l_,c_,Kx,Lr,sut,u_=Et(()=>{Ye();St();St();nA();spe=ve("crypto"),l_=$e(ve("fs"));Yl();nh();ql();bo();c_=Jy(process.env.YARN_CACHE_CHECKPOINT_OVERRIDE??process.env.YARN_CACHE_VERSION_OVERRIDE??9),Kx=Jy(process.env.YARN_CACHE_VERSION_OVERRIDE??10),Lr=class{constructor(e,{configuration:r,immutable:o=r.get("enableImmutableCache"),check:a=!1}){this.markedFiles=new Set;this.mutexes=new Map;this.cacheId=`-${(0,spe.randomBytes)(8).toString("hex")}.tmp`;this.configuration=r,this.cwd=e,this.immutable=o,this.check=a;let{cacheSpec:n,cacheKey:u}=Lr.getCacheKey(r);this.cacheSpec=n,this.cacheKey=u}static async find(e,{immutable:r,check:o}={}){let a=new Lr(e.get("cacheFolder"),{configuration:e,immutable:r,check:o});return await a.setup(),a}static getCacheKey(e){let r=e.get("compressionLevel"),o=r!=="mixed"?`c${r}`:"";return{cacheKey:[Kx,o].join(""),cacheSpec:o}}get mirrorCwd(){if(!this.configuration.get("enableMirror"))return null;let e=`${this.configuration.get("globalFolder")}/cache`;return e!==this.cwd?e:null}getVersionFilename(e){return`${lE(e)}-${this.cacheKey}.zip`}getChecksumFilename(e,r){let a=i2(r).hash.slice(0,10);return`${lE(e)}-${a}.zip`}isChecksumCompatible(e){if(e===null)return!1;let{cacheVersion:r,cacheSpec:o}=i2(e);if(r===null||r{let he=new zi,Be=V.join(Bt.root,nM(e));return he.mkdirSync(Be,{recursive:!0}),he.writeJsonSync(V.join(Be,dr.manifest),{name:fn(e),mocked:!0}),he},E=async(he,{isColdHit:Be,controlPath:we=null})=>{if(we===null&&u.unstablePackages?.has(e.locatorHash))return{isValid:!0,hash:null};let g=r&&!Be?i2(r).cacheKey:this.cacheKey,Ee=!u.skipIntegrityCheck||!r?`${g}/${await NP(he)}`:r;if(we!==null){let le=!u.skipIntegrityCheck||!r?`${this.cacheKey}/${await NP(we)}`:r;if(Ee!==le)throw new zt(18,"The remote archive doesn't match the local checksum - has the local cache been corrupted?")}let Se=null;switch(r!==null&&Ee!==r&&(this.check?Se="throw":i2(r).cacheKey!==i2(Ee).cacheKey?Se="update":Se=this.configuration.get("checksumBehavior")),Se){case null:case"update":return{isValid:!0,hash:Ee};case"ignore":return{isValid:!0,hash:r};case"reset":return{isValid:!1,hash:r};default:case"throw":throw new zt(18,"The remote archive doesn't match the expected checksum")}},I=async he=>{if(!n)throw new Error(`Cache check required but no loader configured for ${qr(this.configuration,e)}`);let Be=await n(),we=Be.getRealPath();Be.saveAndClose(),await oe.chmodPromise(we,420);let g=await E(he,{controlPath:we,isColdHit:!1});if(!g.isValid)throw new Error("Assertion failed: Expected a valid checksum");return g.hash},v=async()=>{if(A===null||!await oe.existsPromise(A)){let he=await n(),Be=he.getRealPath();return he.saveAndClose(),{source:"loader",path:Be}}return{source:"mirror",path:A}},x=async()=>{if(!n)throw new Error(`Cache entry required but missing for ${qr(this.configuration,e)}`);if(this.immutable)throw new zt(56,`Cache entry required but missing for ${qr(this.configuration,e)}`);let{path:he,source:Be}=await v(),{hash:we}=await E(he,{isColdHit:!0}),g=this.getLocatorPath(e,we),Ee=[];Be!=="mirror"&&A!==null&&Ee.push(async()=>{let le=`${A}${this.cacheId}`;await oe.copyFilePromise(he,le,l_.default.constants.COPYFILE_FICLONE),await oe.chmodPromise(le,420),await oe.renamePromise(le,A)}),(!u.mirrorWriteOnly||A===null)&&Ee.push(async()=>{let le=`${g}${this.cacheId}`;await oe.copyFilePromise(he,le,l_.default.constants.COPYFILE_FICLONE),await oe.chmodPromise(le,420),await oe.renamePromise(le,g)});let Se=u.mirrorWriteOnly?A??g:g;return await Promise.all(Ee.map(le=>le())),[!1,Se,we]},C=async()=>{let Be=(async()=>{let we=u.unstablePackages?.has(e.locatorHash),g=we||!r||this.isChecksumCompatible(r)?this.getLocatorPath(e,r):null,Ee=g!==null?this.markedFiles.has(g)||await p.existsPromise(g):!1,Se=!!u.mockedPackages?.has(e.locatorHash)&&(!this.check||!Ee),le=Se||Ee,ne=le?o:a;if(ne&&ne(),le){let ee=null,Ie=g;if(!Se)if(this.check)ee=await I(Ie);else{let Fe=await E(Ie,{isColdHit:!1});if(Fe.isValid)ee=Fe.hash;else return x()}return[Se,Ie,ee]}else{if(this.immutable&&we)throw new zt(56,`Cache entry required but missing for ${qr(this.configuration,e)}; consider defining ${de.pretty(this.configuration,"supportedArchitectures",de.Type.CODE)} to cache packages for multiple systems`);return x()}})();this.mutexes.set(e.locatorHash,Be);try{return await Be}finally{this.mutexes.delete(e.locatorHash)}};for(let he;he=this.mutexes.get(e.locatorHash);)await he;let[R,L,U]=await C();R||this.markedFiles.add(L);let J,te=R?()=>h():()=>new zi(L,{baseFs:p,readOnly:!0}),ae=new iy(()=>EL(()=>J=te(),he=>`Failed to open the cache entry for ${qr(this.configuration,e)}: ${he}`),V),fe=new Uu(L,{baseFs:ae,pathUtils:V}),ce=()=>{J?.discardAndClose()},me=u.unstablePackages?.has(e.locatorHash)?null:U;return[fe,ce,me]}},sut=/^(?:(?(?[0-9]+)(?.*))\/)?(?.*)$/});var Vx,ope=Et(()=>{Vx=(r=>(r[r.SCRIPT=0]="SCRIPT",r[r.SHELLCODE=1]="SHELLCODE",r))(Vx||{})});var out,oC,A_=Et(()=>{St();Nl();Qf();bo();out=[[/^(git(?:\+(?:https|ssh))?:\/\/.*(?:\.git)?)#(.*)$/,(t,e,r,o)=>`${r}#commit=${o}`],[/^https:\/\/((?:[^/]+?)@)?codeload\.github\.com\/([^/]+\/[^/]+)\/tar\.gz\/([0-9a-f]+)$/,(t,e,r="",o,a)=>`https://${r}github.com/${o}.git#commit=${a}`],[/^https:\/\/((?:[^/]+?)@)?github\.com\/([^/]+\/[^/]+?)(?:\.git)?#([0-9a-f]+)$/,(t,e,r="",o,a)=>`https://${r}github.com/${o}.git#commit=${a}`],[/^https?:\/\/[^/]+\/(?:[^/]+\/)*(?:@.+(?:\/|(?:%2f)))?([^/]+)\/(?:-|download)\/\1-[^/]+\.tgz(?:#|$)/,t=>`npm:${t}`],[/^https:\/\/npm\.pkg\.github\.com\/download\/(?:@[^/]+)\/(?:[^/]+)\/(?:[^/]+)\/(?:[0-9a-f]+)(?:#|$)/,t=>`npm:${t}`],[/^https:\/\/npm\.fontawesome\.com\/(?:@[^/]+)\/([^/]+)\/-\/([^/]+)\/\1-\2.tgz(?:#|$)/,t=>`npm:${t}`],[/^https?:\/\/[^/]+\/.*\/(@[^/]+)\/([^/]+)\/-\/\1\/\2-(?:[.\d\w-]+)\.tgz(?:#|$)/,(t,e)=>_P({protocol:"npm:",source:null,selector:t,params:{__archiveUrl:e}})],[/^[^/]+\.tgz#[0-9a-f]+$/,t=>`npm:${t}`]],oC=class{constructor(e){this.resolver=e;this.resolutions=null}async setup(e,{report:r}){let o=V.join(e.cwd,dr.lockfile);if(!oe.existsSync(o))return;let a=await oe.readFilePromise(o,"utf8"),n=Ki(a);if(Object.hasOwn(n,"__metadata"))return;let u=this.resolutions=new Map;for(let A of Object.keys(n)){let p=s1(A);if(!p){r.reportWarning(14,`Failed to parse the string "${A}" into a proper descriptor`);continue}let h=xa(p.range)?In(p,`npm:${p.range}`):p,{version:E,resolved:I}=n[A];if(!I)continue;let v;for(let[C,R]of out){let L=I.match(C);if(L){v=R(E,...L);break}}if(!v){r.reportWarning(14,`${jn(e.configuration,h)}: Only some patterns can be imported from legacy lockfiles (not "${I}")`);continue}let x=h;try{let C=Bd(h.range),R=s1(C.selector,!0);R&&(x=R)}catch{}u.set(h.descriptorHash,Qs(x,v))}}supportsDescriptor(e,r){return this.resolutions?this.resolutions.has(e.descriptorHash):!1}supportsLocator(e,r){return!1}shouldPersistResolution(e,r){throw new Error("Assertion failed: This resolver doesn't support resolving locators to packages")}bindDescriptor(e,r,o){return e}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,o){if(!this.resolutions)throw new Error("Assertion failed: The resolution store should have been setup");let a=this.resolutions.get(e.descriptorHash);if(!a)throw new Error("Assertion failed: The resolution should have been registered");let n=$O(a),u=o.project.configuration.normalizeDependency(n);return await this.resolver.getCandidates(u,r,o)}async getSatisfying(e,r,o,a){let[n]=await this.getCandidates(e,r,a);return{locators:o.filter(u=>u.locatorHash===n.locatorHash),sorted:!1}}async resolve(e,r){throw new Error("Assertion failed: This resolver doesn't support resolving locators to packages")}}});var AA,ape=Et(()=>{Yl();O1();jl();AA=class extends Xs{constructor({configuration:r,stdout:o,suggestInstall:a=!0}){super();this.errorCount=0;XI(this,{configuration:r}),this.configuration=r,this.stdout=o,this.suggestInstall=a}static async start(r,o){let a=new this(r);try{await o(a)}catch(n){a.reportExceptionOnce(n)}finally{await a.finalize()}return a}hasErrors(){return this.errorCount>0}exitCode(){return this.hasErrors()?1:0}reportCacheHit(r){}reportCacheMiss(r){}startSectionSync(r,o){return o()}async startSectionPromise(r,o){return await o()}startTimerSync(r,o,a){return(typeof o=="function"?o:a)()}async startTimerPromise(r,o,a){return await(typeof o=="function"?o:a)()}reportSeparator(){}reportInfo(r,o){}reportWarning(r,o){}reportError(r,o){this.errorCount+=1,this.stdout.write(`${Mt(this.configuration,"\u27A4","redBright")} ${this.formatNameWithHyperlink(r)}: ${o} +`)}reportProgress(r){return{...Promise.resolve().then(async()=>{for await(let{}of r);}),stop:()=>{}}}reportJson(r){}reportFold(r,o){}async finalize(){this.errorCount>0&&(this.stdout.write(` +`),this.stdout.write(`${Mt(this.configuration,"\u27A4","redBright")} Errors happened when preparing the environment required to run this command. +`),this.suggestInstall&&this.stdout.write(`${Mt(this.configuration,"\u27A4","redBright")} This might be caused by packages being missing from the lockfile, in which case running "yarn install" might help. +`))}formatNameWithHyperlink(r){return yU(r,{configuration:this.configuration,json:!1})}}});var aC,f_=Et(()=>{bo();aC=class{constructor(e){this.resolver=e}supportsDescriptor(e,r){return!!(r.project.storedResolutions.get(e.descriptorHash)||r.project.originalPackages.has(OP(e).locatorHash))}supportsLocator(e,r){return!!(r.project.originalPackages.has(e.locatorHash)&&!r.project.lockfileNeedsRefresh)}shouldPersistResolution(e,r){throw new Error("The shouldPersistResolution method shouldn't be called on the lockfile resolver, which would always answer yes")}bindDescriptor(e,r,o){return e}getResolutionDependencies(e,r){return this.resolver.getResolutionDependencies(e,r)}async getCandidates(e,r,o){let a=o.project.storedResolutions.get(e.descriptorHash);if(a){let u=o.project.originalPackages.get(a);if(u)return[u]}let n=o.project.originalPackages.get(OP(e).locatorHash);if(n)return[n];throw new Error("Resolution expected from the lockfile data")}async getSatisfying(e,r,o,a){let[n]=await this.getCandidates(e,r,a);return{locators:o.filter(u=>u.locatorHash===n.locatorHash),sorted:!1}}async resolve(e,r){let o=r.project.originalPackages.get(e.locatorHash);if(!o)throw new Error("The lockfile resolver isn't meant to resolve packages - they should already have been stored into a cache");return o}}});function Kf(){}function aut(t,e,r,o,a){for(var n=0,u=e.length,A=0,p=0;nx.length?R:x}),h.value=t.join(E)}else h.value=t.join(r.slice(A,A+h.count));A+=h.count,h.added||(p+=h.count)}}var v=e[u-1];return u>1&&typeof v.value=="string"&&(v.added||v.removed)&&t.equals("",v.value)&&(e[u-2].value+=v.value,e.pop()),e}function lut(t){return{newPos:t.newPos,components:t.components.slice(0)}}function cut(t,e){if(typeof t=="function")e.callback=t;else if(t)for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r]);return e}function upe(t,e,r){return r=cut(r,{ignoreWhitespace:!0}),m_.diff(t,e,r)}function uut(t,e,r){return y_.diff(t,e,r)}function Jx(t){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Jx=function(e){return typeof e}:Jx=function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Jx(t)}function p_(t){return put(t)||hut(t)||gut(t)||dut()}function put(t){if(Array.isArray(t))return h_(t)}function hut(t){if(typeof Symbol<"u"&&Symbol.iterator in Object(t))return Array.from(t)}function gut(t,e){if(!!t){if(typeof t=="string")return h_(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);if(r==="Object"&&t.constructor&&(r=t.constructor.name),r==="Map"||r==="Set")return Array.from(t);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return h_(t,e)}}function h_(t,e){(e==null||e>t.length)&&(e=t.length);for(var r=0,o=new Array(e);r"u"&&(u.context=4);var A=uut(r,o,u);if(!A)return;A.push({value:"",lines:[]});function p(U){return U.map(function(J){return" "+J})}for(var h=[],E=0,I=0,v=[],x=1,C=1,R=function(J){var te=A[J],ae=te.lines||te.value.replace(/\n$/,"").split(` +`);if(te.lines=ae,te.added||te.removed){var fe;if(!E){var ce=A[J-1];E=x,I=C,ce&&(v=u.context>0?p(ce.lines.slice(-u.context)):[],E-=v.length,I-=v.length)}(fe=v).push.apply(fe,p_(ae.map(function(le){return(te.added?"+":"-")+le}))),te.added?C+=ae.length:x+=ae.length}else{if(E)if(ae.length<=u.context*2&&J=A.length-2&&ae.length<=u.context){var g=/\n$/.test(r),Ee=/\n$/.test(o),Se=ae.length==0&&v.length>we.oldLines;!g&&Se&&r.length>0&&v.splice(we.oldLines,0,"\\ No newline at end of file"),(!g&&!Se||!Ee)&&v.push("\\ No newline at end of file")}h.push(we),E=0,I=0,v=[]}x+=ae.length,C+=ae.length}},L=0;L{Kf.prototype={diff:function(e,r){var o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},a=o.callback;typeof o=="function"&&(a=o,o={}),this.options=o;var n=this;function u(R){return a?(setTimeout(function(){a(void 0,R)},0),!0):R}e=this.castInput(e),r=this.castInput(r),e=this.removeEmpty(this.tokenize(e)),r=this.removeEmpty(this.tokenize(r));var A=r.length,p=e.length,h=1,E=A+p;o.maxEditLength&&(E=Math.min(E,o.maxEditLength));var I=[{newPos:-1,components:[]}],v=this.extractCommon(I[0],r,e,0);if(I[0].newPos+1>=A&&v+1>=p)return u([{value:this.join(r),count:r.length}]);function x(){for(var R=-1*h;R<=h;R+=2){var L=void 0,U=I[R-1],J=I[R+1],te=(J?J.newPos:0)-R;U&&(I[R-1]=void 0);var ae=U&&U.newPos+1=A&&te+1>=p)return u(aut(n,L.components,r,e,n.useLongestToken));I[R]=L}h++}if(a)(function R(){setTimeout(function(){if(h>E)return a();x()||R()},0)})();else for(;h<=E;){var C=x();if(C)return C}},pushComponent:function(e,r,o){var a=e[e.length-1];a&&a.added===r&&a.removed===o?e[e.length-1]={count:a.count+1,added:r,removed:o}:e.push({count:1,added:r,removed:o})},extractCommon:function(e,r,o,a){for(var n=r.length,u=o.length,A=e.newPos,p=A-a,h=0;A+1"u"?r:u}:o;return typeof t=="string"?t:JSON.stringify(g_(t,null,null,a),a," ")};s2.equals=function(t,e){return Kf.prototype.equals.call(s2,t.replace(/,([\r\n])/g,"$1"),e.replace(/,([\r\n])/g,"$1"))};d_=new Kf;d_.tokenize=function(t){return t.slice()};d_.join=d_.removeEmpty=function(t){return t}});var ppe=_((s3t,fpe)=>{var yut=Hl(),Eut=pE(),Cut=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,wut=/^\w*$/;function Iut(t,e){if(yut(t))return!1;var r=typeof t;return r=="number"||r=="symbol"||r=="boolean"||t==null||Eut(t)?!0:wut.test(t)||!Cut.test(t)||e!=null&&t in Object(e)}fpe.exports=Iut});var dpe=_((o3t,gpe)=>{var hpe=_S(),But="Expected a function";function C_(t,e){if(typeof t!="function"||e!=null&&typeof e!="function")throw new TypeError(But);var r=function(){var o=arguments,a=e?e.apply(this,o):o[0],n=r.cache;if(n.has(a))return n.get(a);var u=t.apply(this,o);return r.cache=n.set(a,u)||n,u};return r.cache=new(C_.Cache||hpe),r}C_.Cache=hpe;gpe.exports=C_});var ype=_((a3t,mpe)=>{var vut=dpe(),Dut=500;function Sut(t){var e=vut(t,function(o){return r.size===Dut&&r.clear(),o}),r=e.cache;return e}mpe.exports=Sut});var w_=_((l3t,Epe)=>{var Put=ype(),but=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,xut=/\\(\\)?/g,kut=Put(function(t){var e=[];return t.charCodeAt(0)===46&&e.push(""),t.replace(but,function(r,o,a,n){e.push(a?n.replace(xut,"$1"):o||r)}),e});Epe.exports=kut});var jd=_((c3t,Cpe)=>{var Qut=Hl(),Fut=ppe(),Rut=w_(),Tut=N1();function Nut(t,e){return Qut(t)?t:Fut(t,e)?[t]:Rut(Tut(t))}Cpe.exports=Nut});var lC=_((u3t,wpe)=>{var Lut=pE(),Out=1/0;function Mut(t){if(typeof t=="string"||Lut(t))return t;var e=t+"";return e=="0"&&1/t==-Out?"-0":e}wpe.exports=Mut});var zx=_((A3t,Ipe)=>{var Uut=jd(),_ut=lC();function Hut(t,e){e=Uut(e,t);for(var r=0,o=e.length;t!=null&&r{var qut=rP(),jut=jd(),Gut=_I(),Bpe=il(),Yut=lC();function Wut(t,e,r,o){if(!Bpe(t))return t;e=jut(e,t);for(var a=-1,n=e.length,u=n-1,A=t;A!=null&&++a{var Kut=zx(),Vut=I_(),Jut=jd();function zut(t,e,r){for(var o=-1,a=e.length,n={};++o{function Xut(t,e){return t!=null&&e in Object(t)}Ppe.exports=Xut});var B_=_((g3t,xpe)=>{var Zut=jd(),$ut=OI(),eAt=Hl(),tAt=_I(),rAt=YS(),nAt=lC();function iAt(t,e,r){e=Zut(e,t);for(var o=-1,a=e.length,n=!1;++o{var sAt=bpe(),oAt=B_();function aAt(t,e){return t!=null&&oAt(t,e,sAt)}kpe.exports=aAt});var Rpe=_((m3t,Fpe)=>{var lAt=Spe(),cAt=Qpe();function uAt(t,e){return lAt(t,e,function(r,o){return cAt(t,o)})}Fpe.exports=uAt});var Ope=_((y3t,Lpe)=>{var Tpe=pd(),AAt=OI(),fAt=Hl(),Npe=Tpe?Tpe.isConcatSpreadable:void 0;function pAt(t){return fAt(t)||AAt(t)||!!(Npe&&t&&t[Npe])}Lpe.exports=pAt});var _pe=_((E3t,Upe)=>{var hAt=jS(),gAt=Ope();function Mpe(t,e,r,o,a){var n=-1,u=t.length;for(r||(r=gAt),a||(a=[]);++n0&&r(A)?e>1?Mpe(A,e-1,r,o,a):hAt(a,A):o||(a[a.length]=A)}return a}Upe.exports=Mpe});var qpe=_((C3t,Hpe)=>{var dAt=_pe();function mAt(t){var e=t==null?0:t.length;return e?dAt(t,1):[]}Hpe.exports=mAt});var v_=_((w3t,jpe)=>{var yAt=qpe(),EAt=AL(),CAt=fL();function wAt(t){return CAt(EAt(t,void 0,yAt),t+"")}jpe.exports=wAt});var D_=_((I3t,Gpe)=>{var IAt=Rpe(),BAt=v_(),vAt=BAt(function(t,e){return t==null?{}:IAt(t,e)});Gpe.exports=vAt});var Xx,Ype=Et(()=>{Yl();Xx=class{constructor(e){this.resolver=e}supportsDescriptor(e,r){return this.resolver.supportsDescriptor(e,r)}supportsLocator(e,r){return this.resolver.supportsLocator(e,r)}shouldPersistResolution(e,r){return this.resolver.shouldPersistResolution(e,r)}bindDescriptor(e,r,o){return this.resolver.bindDescriptor(e,r,o)}getResolutionDependencies(e,r){return this.resolver.getResolutionDependencies(e,r)}async getCandidates(e,r,o){throw new zt(20,`This package doesn't seem to be present in your lockfile; run "yarn install" to update the lockfile`)}async getSatisfying(e,r,o,a){throw new zt(20,`This package doesn't seem to be present in your lockfile; run "yarn install" to update the lockfile`)}async resolve(e,r){throw new zt(20,`This package doesn't seem to be present in your lockfile; run "yarn install" to update the lockfile`)}}});var Qi,S_=Et(()=>{Yl();Qi=class extends Xs{reportCacheHit(e){}reportCacheMiss(e){}startSectionSync(e,r){return r()}async startSectionPromise(e,r){return await r()}startTimerSync(e,r,o){return(typeof r=="function"?r:o)()}async startTimerPromise(e,r,o){return await(typeof r=="function"?r:o)()}reportSeparator(){}reportInfo(e,r){}reportWarning(e,r){}reportError(e,r){}reportProgress(e){return{...Promise.resolve().then(async()=>{for await(let{}of e);}),stop:()=>{}}}reportJson(e){}reportFold(e,r){}async finalize(){}}});var Wpe,cC,P_=Et(()=>{St();Wpe=$e(RP());fE();vd();jl();nh();Qf();bo();cC=class{constructor(e,{project:r}){this.workspacesCwds=new Set;this.project=r,this.cwd=e}async setup(){this.manifest=await Ot.tryFind(this.cwd)??new Ot,this.relativeCwd=V.relative(this.project.cwd,this.cwd)||Bt.dot;let e=this.manifest.name?this.manifest.name:eA(null,`${this.computeCandidateName()}-${zs(this.relativeCwd).substring(0,6)}`);this.anchoredDescriptor=In(e,`${Xn.protocol}${this.relativeCwd}`),this.anchoredLocator=Qs(e,`${Xn.protocol}${this.relativeCwd}`);let r=this.manifest.workspaceDefinitions.map(({pattern:a})=>a);if(r.length===0)return;let o=await(0,Wpe.default)(r,{cwd:ue.fromPortablePath(this.cwd),onlyDirectories:!0,ignore:["**/node_modules","**/.git","**/.yarn"]});o.sort(),await o.reduce(async(a,n)=>{let u=V.resolve(this.cwd,ue.toPortablePath(n)),A=await oe.existsPromise(V.join(u,"package.json"));await a,A&&this.workspacesCwds.add(u)},Promise.resolve())}get anchoredPackage(){let e=this.project.storedPackages.get(this.anchoredLocator.locatorHash);if(!e)throw new Error(`Assertion failed: Expected workspace ${a1(this.project.configuration,this)} (${Mt(this.project.configuration,V.join(this.cwd,dr.manifest),yt.PATH)}) to have been resolved. Run "yarn install" to update the lockfile`);return e}accepts(e){let r=e.indexOf(":"),o=r!==-1?e.slice(0,r+1):null,a=r!==-1?e.slice(r+1):e;if(o===Xn.protocol&&V.normalize(a)===this.relativeCwd||o===Xn.protocol&&(a==="*"||a==="^"||a==="~"))return!0;let n=xa(a);return n?o===Xn.protocol?n.test(this.manifest.version??"0.0.0"):this.project.configuration.get("enableTransparentWorkspaces")&&this.manifest.version!==null?n.test(this.manifest.version):!1:!1}computeCandidateName(){return this.cwd===this.project.cwd?"root-workspace":`${V.basename(this.cwd)}`||"unnamed-workspace"}getRecursiveWorkspaceDependencies({dependencies:e=Ot.hardDependencies}={}){let r=new Set,o=a=>{for(let n of e)for(let u of a.manifest[n].values()){let A=this.project.tryWorkspaceByDescriptor(u);A===null||r.has(A)||(r.add(A),o(A))}};return o(this),r}getRecursiveWorkspaceDependents({dependencies:e=Ot.hardDependencies}={}){let r=new Set,o=a=>{for(let n of this.project.workspaces)e.some(A=>[...n.manifest[A].values()].some(p=>{let h=this.project.tryWorkspaceByDescriptor(p);return h!==null&&i1(h.anchoredLocator,a.anchoredLocator)}))&&!r.has(n)&&(r.add(n),o(n))};return o(this),r}getRecursiveWorkspaceChildren(){let e=new Set([this]);for(let r of e)for(let o of r.workspacesCwds){let a=this.project.workspacesByCwd.get(o);a&&e.add(a)}return e.delete(this),Array.from(e)}async persistManifest(){let e={};this.manifest.exportTo(e);let r=V.join(this.cwd,Ot.fileName),o=`${JSON.stringify(e,null,this.manifest.indent)} +`;await oe.changeFilePromise(r,o,{automaticNewlines:!0}),this.manifest.raw=e}}});function kAt({project:t,allDescriptors:e,allResolutions:r,allPackages:o,accessibleLocators:a=new Set,optionalBuilds:n=new Set,peerRequirements:u=new Map,peerWarnings:A=[],volatileDescriptors:p=new Set}){let h=new Map,E=[],I=new Map,v=new Map,x=new Map,C=new Map,R=new Map,L=new Map(t.workspaces.map(ce=>{let me=ce.anchoredLocator.locatorHash,he=o.get(me);if(typeof he>"u")throw new Error("Assertion failed: The workspace should have an associated package");return[me,e1(he)]})),U=()=>{let ce=oe.mktempSync(),me=V.join(ce,"stacktrace.log"),he=String(E.length+1).length,Be=E.map((we,g)=>`${`${g+1}.`.padStart(he," ")} ${ba(we)} +`).join("");throw oe.writeFileSync(me,Be),oe.detachTemp(ce),new zt(45,`Encountered a stack overflow when resolving peer dependencies; cf ${ue.fromPortablePath(me)}`)},J=ce=>{let me=r.get(ce.descriptorHash);if(typeof me>"u")throw new Error("Assertion failed: The resolution should have been registered");let he=o.get(me);if(!he)throw new Error("Assertion failed: The package could not be found");return he},te=(ce,me,he,{top:Be,optional:we})=>{E.length>1e3&&U(),E.push(me);let g=ae(ce,me,he,{top:Be,optional:we});return E.pop(),g},ae=(ce,me,he,{top:Be,optional:we})=>{if(we||n.delete(me.locatorHash),a.has(me.locatorHash))return;a.add(me.locatorHash);let g=o.get(me.locatorHash);if(!g)throw new Error(`Assertion failed: The package (${qr(t.configuration,me)}) should have been registered`);let Ee=[],Se=[],le=[],ne=[],ee=[];for(let Fe of Array.from(g.dependencies.values())){if(g.peerDependencies.has(Fe.identHash)&&g.locatorHash!==Be)continue;if(bf(Fe))throw new Error("Assertion failed: Virtual packages shouldn't be encountered when virtualizing a branch");p.delete(Fe.descriptorHash);let At=we;if(!At){let Te=g.dependenciesMeta.get(fn(Fe));if(typeof Te<"u"){let Je=Te.get(null);typeof Je<"u"&&Je.optional&&(At=!0)}}let H=r.get(Fe.descriptorHash);if(!H)throw new Error(`Assertion failed: The resolution (${jn(t.configuration,Fe)}) should have been registered`);let at=L.get(H)||o.get(H);if(!at)throw new Error(`Assertion failed: The package (${H}, resolved from ${jn(t.configuration,Fe)}) should have been registered`);if(at.peerDependencies.size===0){te(Fe,at,new Map,{top:Be,optional:At});continue}let Re,ke,xe=new Set,He;Se.push(()=>{Re=tM(Fe,me.locatorHash),ke=rM(at,me.locatorHash),g.dependencies.delete(Fe.identHash),g.dependencies.set(Re.identHash,Re),r.set(Re.descriptorHash,ke.locatorHash),e.set(Re.descriptorHash,Re),o.set(ke.locatorHash,ke),Ee.push([at,Re,ke])}),le.push(()=>{He=new Map;for(let Te of ke.peerDependencies.values()){let Je=g.dependencies.get(Te.identHash);if(!Je&&n1(me,Te)&&(ce.identHash===me.identHash?Je=ce:(Je=In(me,ce.range),e.set(Je.descriptorHash,Je),r.set(Je.descriptorHash,me.locatorHash),p.delete(Je.descriptorHash))),(!Je||Je.range==="missing:")&&ke.dependencies.has(Te.identHash)){ke.peerDependencies.delete(Te.identHash);continue}Je||(Je=In(Te,"missing:")),ke.dependencies.set(Je.identHash,Je),bf(Je)&&md(x,Je.descriptorHash).add(ke.locatorHash),I.set(Je.identHash,Je),Je.range==="missing:"&&xe.add(Je.identHash),He.set(Te.identHash,he.get(Te.identHash)??ke.locatorHash)}ke.dependencies=new Map(ks(ke.dependencies,([Te,Je])=>fn(Je)))}),ne.push(()=>{if(!o.has(ke.locatorHash))return;let Te=h.get(at.locatorHash);typeof Te=="number"&&Te>=2&&U();let Je=h.get(at.locatorHash),qe=typeof Je<"u"?Je+1:1;h.set(at.locatorHash,qe),te(Re,ke,He,{top:Be,optional:At}),h.set(at.locatorHash,qe-1)}),ee.push(()=>{let Te=g.dependencies.get(Fe.identHash);if(typeof Te>"u")throw new Error("Assertion failed: Expected the peer dependency to have been turned into a dependency");let Je=r.get(Te.descriptorHash);if(typeof Je>"u")throw new Error("Assertion failed: Expected the descriptor to be registered");if(md(R,Je).add(me.locatorHash),!!o.has(ke.locatorHash)){for(let qe of ke.peerDependencies.values()){let b=He.get(qe.identHash);if(typeof b>"u")throw new Error("Assertion failed: Expected the peer dependency ident to be registered");Yy(Wy(C,b),fn(qe)).push(ke.locatorHash)}for(let qe of xe)ke.dependencies.delete(qe)}})}for(let Fe of[...Se,...le])Fe();let Ie;do{Ie=!0;for(let[Fe,At,H]of Ee){let at=Wy(v,Fe.locatorHash),Re=zs(...[...H.dependencies.values()].map(Te=>{let Je=Te.range!=="missing:"?r.get(Te.descriptorHash):"missing:";if(typeof Je>"u")throw new Error(`Assertion failed: Expected the resolution for ${jn(t.configuration,Te)} to have been registered`);return Je===Be?`${Je} (top)`:Je}),At.identHash),ke=at.get(Re);if(typeof ke>"u"){at.set(Re,At);continue}if(ke===At)continue;o.delete(H.locatorHash),e.delete(At.descriptorHash),r.delete(At.descriptorHash),a.delete(H.locatorHash);let xe=x.get(At.descriptorHash)||[],He=[g.locatorHash,...xe];x.delete(At.descriptorHash);for(let Te of He){let Je=o.get(Te);typeof Je>"u"||(Je.dependencies.get(At.identHash).descriptorHash!==ke.descriptorHash&&(Ie=!1),Je.dependencies.set(At.identHash,ke))}}}while(!Ie);for(let Fe of[...ne,...ee])Fe()};for(let ce of t.workspaces){let me=ce.anchoredLocator;p.delete(ce.anchoredDescriptor.descriptorHash),te(ce.anchoredDescriptor,me,new Map,{top:me.locatorHash,optional:!1})}let fe=new Map;for(let[ce,me]of R){let he=o.get(ce);if(typeof he>"u")throw new Error("Assertion failed: Expected the root to be registered");let Be=C.get(ce);if(!(typeof Be>"u"))for(let we of me){let g=o.get(we);if(!(typeof g>"u")&&!!t.tryWorkspaceByLocator(g))for(let[Ee,Se]of Be){let le=Js(Ee);if(g.peerDependencies.has(le.identHash))continue;let ne=`p${zs(we,Ee,ce).slice(0,5)}`;u.set(ne,{subject:we,requested:le,rootRequester:ce,allRequesters:Se});let ee=he.dependencies.get(le.identHash);if(typeof ee<"u"){let Ie=J(ee),Fe=Ie.version??"0.0.0",At=new Set;for(let at of Se){let Re=o.get(at);if(typeof Re>"u")throw new Error("Assertion failed: Expected the link to be registered");let ke=Re.peerDependencies.get(le.identHash);if(typeof ke>"u")throw new Error("Assertion failed: Expected the ident to be registered");At.add(ke.range)}if(![...At].every(at=>{if(at.startsWith(Xn.protocol)){if(!t.tryWorkspaceByLocator(Ie))return!1;at=at.slice(Xn.protocol.length),(at==="^"||at==="~")&&(at="*")}return kf(Fe,at)})){let at=ol(fe,Ie.locatorHash,()=>({type:2,requested:le,subject:Ie,dependents:new Map,requesters:new Map,links:new Map,version:Fe,hash:`p${Ie.locatorHash.slice(0,5)}`}));at.dependents.set(g.locatorHash,g),at.requesters.set(he.locatorHash,he);for(let Re of Se)at.links.set(Re,o.get(Re));A.push({type:1,subject:g,requested:le,requester:he,version:Fe,hash:ne,requirementCount:Se.length})}}else he.peerDependenciesMeta.get(Ee)?.optional||A.push({type:0,subject:g,requested:le,requester:he,hash:ne})}}}A.push(...fe.values())}function QAt(t,e){let r=wL(t.peerWarnings,"type"),o=r[2]?.map(n=>{let u=Array.from(n.links.values(),E=>{let I=t.storedPackages.get(E.locatorHash);if(typeof I>"u")throw new Error("Assertion failed: Expected the package to be registered");let v=I.peerDependencies.get(n.requested.identHash);if(typeof v>"u")throw new Error("Assertion failed: Expected the ident to be registered");return v.range}),A=n.links.size>1?"and other dependencies request":"requests",p=sM(u),h=p?cE(t.configuration,p):Mt(t.configuration,"but they have non-overlapping ranges!","redBright");return`${cs(t.configuration,n.requested)} is listed by your project with version ${o1(t.configuration,n.version)}, which doesn't satisfy what ${cs(t.configuration,n.requesters.values().next().value)} (${Mt(t.configuration,n.hash,yt.CODE)}) ${A} (${h}).`})??[],a=r[0]?.map(n=>`${qr(t.configuration,n.subject)} doesn't provide ${cs(t.configuration,n.requested)} (${Mt(t.configuration,n.hash,yt.CODE)}), requested by ${cs(t.configuration,n.requester)}.`)??[];e.startSectionSync({reportFooter:()=>{e.reportWarning(86,`Some peer dependencies are incorrectly met; run ${Mt(t.configuration,"yarn explain peer-requirements ",yt.CODE)} for details, where ${Mt(t.configuration,"",yt.CODE)} is the six-letter p-prefixed code.`)},skipIfEmpty:!0},()=>{for(let n of ks(o,u=>Xy.default(u)))e.reportWarning(60,n);for(let n of ks(a,u=>Xy.default(u)))e.reportWarning(2,n)})}var Zx,$x,ek,Jpe,k_,x_,Q_,tk,DAt,SAt,Kpe,PAt,bAt,xAt,pl,b_,rk,Vpe,Pt,zpe=Et(()=>{St();St();Nl();qt();Zx=ve("crypto");E_();$x=$e(D_()),ek=$e(id()),Jpe=$e(zn()),k_=ve("util"),x_=$e(ve("v8")),Q_=$e(ve("zlib"));u_();S1();A_();f_();fE();uM();Yl();Ype();O1();S_();vd();P_();WP();jl();nh();ql();vb();BU();Qf();bo();tk=Jy(process.env.YARN_LOCKFILE_VERSION_OVERRIDE??8),DAt=3,SAt=/ *, */g,Kpe=/\/$/,PAt=32,bAt=(0,k_.promisify)(Q_.default.gzip),xAt=(0,k_.promisify)(Q_.default.gunzip),pl=(r=>(r.UpdateLockfile="update-lockfile",r.SkipBuild="skip-build",r))(pl||{}),b_={restoreLinkersCustomData:["linkersCustomData"],restoreResolutions:["accessibleLocators","conditionalLocators","disabledLocators","optionalBuilds","storedDescriptors","storedResolutions","storedPackages","lockFileChecksum"],restoreBuildState:["skippedBuilds","storedBuildState"]},rk=(o=>(o[o.NotProvided=0]="NotProvided",o[o.NotCompatible=1]="NotCompatible",o[o.NotCompatibleAggregate=2]="NotCompatibleAggregate",o))(rk||{}),Vpe=t=>zs(`${DAt}`,t),Pt=class{constructor(e,{configuration:r}){this.resolutionAliases=new Map;this.workspaces=[];this.workspacesByCwd=new Map;this.workspacesByIdent=new Map;this.storedResolutions=new Map;this.storedDescriptors=new Map;this.storedPackages=new Map;this.storedChecksums=new Map;this.storedBuildState=new Map;this.accessibleLocators=new Set;this.conditionalLocators=new Set;this.disabledLocators=new Set;this.originalPackages=new Map;this.optionalBuilds=new Set;this.skippedBuilds=new Set;this.lockfileLastVersion=null;this.lockfileNeedsRefresh=!1;this.peerRequirements=new Map;this.peerWarnings=[];this.linkersCustomData=new Map;this.lockFileChecksum=null;this.installStateChecksum=null;this.configuration=r,this.cwd=e}static async find(e,r){if(!e.projectCwd)throw new it(`No project found in ${r}`);let o=e.projectCwd,a=r,n=null;for(;n!==e.projectCwd;){if(n=a,oe.existsSync(V.join(n,dr.manifest))){o=n;break}a=V.dirname(n)}let u=new Pt(e.projectCwd,{configuration:e});Ke.telemetry?.reportProject(u.cwd),await u.setupResolutions(),await u.setupWorkspaces(),Ke.telemetry?.reportWorkspaceCount(u.workspaces.length),Ke.telemetry?.reportDependencyCount(u.workspaces.reduce((C,R)=>C+R.manifest.dependencies.size+R.manifest.devDependencies.size,0));let A=u.tryWorkspaceByCwd(o);if(A)return{project:u,workspace:A,locator:A.anchoredLocator};let p=await u.findLocatorForLocation(`${o}/`,{strict:!0});if(p)return{project:u,locator:p,workspace:null};let h=Mt(e,u.cwd,yt.PATH),E=Mt(e,V.relative(u.cwd,o),yt.PATH),I=`- If ${h} isn't intended to be a project, remove any yarn.lock and/or package.json file there.`,v=`- If ${h} is intended to be a project, it might be that you forgot to list ${E} in its workspace configuration.`,x=`- Finally, if ${h} is fine and you intend ${E} to be treated as a completely separate project (not even a workspace), create an empty yarn.lock file in it.`;throw new it(`The nearest package directory (${Mt(e,o,yt.PATH)}) doesn't seem to be part of the project declared in ${Mt(e,u.cwd,yt.PATH)}. + +${[I,v,x].join(` +`)}`)}async setupResolutions(){this.storedResolutions=new Map,this.storedDescriptors=new Map,this.storedPackages=new Map,this.lockFileChecksum=null;let e=V.join(this.cwd,dr.lockfile),r=this.configuration.get("defaultLanguageName");if(oe.existsSync(e)){let o=await oe.readFilePromise(e,"utf8");this.lockFileChecksum=Vpe(o);let a=Ki(o);if(a.__metadata){let n=a.__metadata.version,u=a.__metadata.cacheKey;this.lockfileLastVersion=n,this.lockfileNeedsRefresh=n"u")throw new Error(`Assertion failed: Expected the lockfile entry to have a resolution field (${A})`);let h=xf(p.resolution,!0),E=new Ot;E.load(p,{yamlCompatibilityMode:!0});let I=E.version,v=E.languageName||r,x=p.linkType.toUpperCase(),C=p.conditions??null,R=E.dependencies,L=E.peerDependencies,U=E.dependenciesMeta,J=E.peerDependenciesMeta,te=E.bin;if(p.checksum!=null){let fe=typeof u<"u"&&!p.checksum.includes("/")?`${u}/${p.checksum}`:p.checksum;this.storedChecksums.set(h.locatorHash,fe)}let ae={...h,version:I,languageName:v,linkType:x,conditions:C,dependencies:R,peerDependencies:L,dependenciesMeta:U,peerDependenciesMeta:J,bin:te};this.originalPackages.set(ae.locatorHash,ae);for(let fe of A.split(SAt)){let ce=ih(fe);n<=6&&(ce=this.configuration.normalizeDependency(ce),ce=In(ce,ce.range.replace(/^patch:[^@]+@(?!npm(:|%3A))/,"$1npm%3A"))),this.storedDescriptors.set(ce.descriptorHash,ce),this.storedResolutions.set(ce.descriptorHash,h.locatorHash)}}}else o.includes("yarn lockfile v1")&&(this.lockfileLastVersion=-1)}}async setupWorkspaces(){this.workspaces=[],this.workspacesByCwd=new Map,this.workspacesByIdent=new Map;let e=new Set,r=(0,ek.default)(4),o=async(a,n)=>{if(e.has(n))return a;e.add(n);let u=new cC(n,{project:this});await r(()=>u.setup());let A=a.then(()=>{this.addWorkspace(u)});return Array.from(u.workspacesCwds).reduce(o,A)};await o(Promise.resolve(),this.cwd)}addWorkspace(e){let r=this.workspacesByIdent.get(e.anchoredLocator.identHash);if(typeof r<"u")throw new Error(`Duplicate workspace name ${cs(this.configuration,e.anchoredLocator)}: ${ue.fromPortablePath(e.cwd)} conflicts with ${ue.fromPortablePath(r.cwd)}`);this.workspaces.push(e),this.workspacesByCwd.set(e.cwd,e),this.workspacesByIdent.set(e.anchoredLocator.identHash,e)}get topLevelWorkspace(){return this.getWorkspaceByCwd(this.cwd)}tryWorkspaceByCwd(e){V.isAbsolute(e)||(e=V.resolve(this.cwd,e)),e=V.normalize(e).replace(/\/+$/,"");let r=this.workspacesByCwd.get(e);return r||null}getWorkspaceByCwd(e){let r=this.tryWorkspaceByCwd(e);if(!r)throw new Error(`Workspace not found (${e})`);return r}tryWorkspaceByFilePath(e){let r=null;for(let o of this.workspaces)V.relative(o.cwd,e).startsWith("../")||r&&r.cwd.length>=o.cwd.length||(r=o);return r||null}getWorkspaceByFilePath(e){let r=this.tryWorkspaceByFilePath(e);if(!r)throw new Error(`Workspace not found (${e})`);return r}tryWorkspaceByIdent(e){let r=this.workspacesByIdent.get(e.identHash);return typeof r>"u"?null:r}getWorkspaceByIdent(e){let r=this.tryWorkspaceByIdent(e);if(!r)throw new Error(`Workspace not found (${cs(this.configuration,e)})`);return r}tryWorkspaceByDescriptor(e){if(e.range.startsWith(Xn.protocol)){let o=e.range.slice(Xn.protocol.length);if(o!=="^"&&o!=="~"&&o!=="*"&&!xa(o))return this.tryWorkspaceByCwd(o)}let r=this.tryWorkspaceByIdent(e);return r===null||(bf(e)&&(e=t1(e)),!r.accepts(e.range))?null:r}getWorkspaceByDescriptor(e){let r=this.tryWorkspaceByDescriptor(e);if(r===null)throw new Error(`Workspace not found (${jn(this.configuration,e)})`);return r}tryWorkspaceByLocator(e){let r=this.tryWorkspaceByIdent(e);return r===null||(Hc(e)&&(e=r1(e)),r.anchoredLocator.locatorHash!==e.locatorHash)?null:r}getWorkspaceByLocator(e){let r=this.tryWorkspaceByLocator(e);if(!r)throw new Error(`Workspace not found (${qr(this.configuration,e)})`);return r}deleteDescriptor(e){this.storedResolutions.delete(e),this.storedDescriptors.delete(e)}deleteLocator(e){this.originalPackages.delete(e),this.storedPackages.delete(e),this.accessibleLocators.delete(e)}forgetResolution(e){if("descriptorHash"in e){let r=this.storedResolutions.get(e.descriptorHash);this.deleteDescriptor(e.descriptorHash);let o=new Set(this.storedResolutions.values());typeof r<"u"&&!o.has(r)&&this.deleteLocator(r)}if("locatorHash"in e){this.deleteLocator(e.locatorHash);for(let[r,o]of this.storedResolutions)o===e.locatorHash&&this.deleteDescriptor(r)}}forgetTransientResolutions(){let e=this.configuration.makeResolver(),r=new Map;for(let[o,a]of this.storedResolutions.entries()){let n=r.get(a);n||r.set(a,n=new Set),n.add(o)}for(let o of this.originalPackages.values()){let a;try{a=e.shouldPersistResolution(o,{project:this,resolver:e})}catch{a=!1}if(!a){this.deleteLocator(o.locatorHash);let n=r.get(o.locatorHash);if(n){r.delete(o.locatorHash);for(let u of n)this.deleteDescriptor(u)}}}}forgetVirtualResolutions(){for(let e of this.storedPackages.values())for(let[r,o]of e.dependencies)bf(o)&&e.dependencies.set(r,t1(o))}getDependencyMeta(e,r){let o={},n=this.topLevelWorkspace.manifest.dependenciesMeta.get(fn(e));if(!n)return o;let u=n.get(null);if(u&&Object.assign(o,u),r===null||!Jpe.default.valid(r))return o;for(let[A,p]of n)A!==null&&A===r&&Object.assign(o,p);return o}async findLocatorForLocation(e,{strict:r=!1}={}){let o=new Qi,a=this.configuration.getLinkers(),n={project:this,report:o};for(let u of a){let A=await u.findPackageLocator(e,n);if(A){if(r&&(await u.findPackageLocation(A,n)).replace(Kpe,"")!==e.replace(Kpe,""))continue;return A}}return null}async loadUserConfig(){let e=V.join(this.cwd,".pnp.cjs");await oe.existsPromise(e)&&Df(e).setup();let r=V.join(this.cwd,"yarn.config.cjs");return await oe.existsPromise(r)?Df(r):null}async preparePackage(e,{resolver:r,resolveOptions:o}){let a=await this.configuration.getPackageExtensions(),n=this.configuration.normalizePackage(e,{packageExtensions:a});for(let[u,A]of n.dependencies){let p=await this.configuration.reduceHook(E=>E.reduceDependency,A,this,n,A,{resolver:r,resolveOptions:o});if(!n1(A,p))throw new Error("Assertion failed: The descriptor ident cannot be changed through aliases");let h=r.bindDescriptor(p,n,o);n.dependencies.set(u,h)}return n}async resolveEverything(e){if(!this.workspacesByCwd||!this.workspacesByIdent)throw new Error("Workspaces must have been setup before calling this function");this.forgetVirtualResolutions();let r=new Map(this.originalPackages),o=[];e.lockfileOnly||this.forgetTransientResolutions();let a=e.resolver||this.configuration.makeResolver(),n=new oC(a);await n.setup(this,{report:e.report});let u=e.lockfileOnly?[new Xx(a)]:[n,a],A=new Dd([new aC(a),...u]),p=new Dd([...u]),h=this.configuration.makeFetcher(),E=e.lockfileOnly?{project:this,report:e.report,resolver:A}:{project:this,report:e.report,resolver:A,fetchOptions:{project:this,cache:e.cache,checksums:this.storedChecksums,report:e.report,fetcher:h,cacheOptions:{mirrorWriteOnly:!0}}},I=new Map,v=new Map,x=new Map,C=new Map,R=new Map,L=new Map,U=this.topLevelWorkspace.anchoredLocator,J=new Set,te=[],ae=M4(),fe=this.configuration.getSupportedArchitectures();await e.report.startProgressPromise(Xs.progressViaTitle(),async le=>{let ne=async H=>{let at=await Ky(async()=>await A.resolve(H,E),He=>`${qr(this.configuration,H)}: ${He}`);if(!i1(H,at))throw new Error(`Assertion failed: The locator cannot be changed by the resolver (went from ${qr(this.configuration,H)} to ${qr(this.configuration,at)})`);C.set(at.locatorHash,at),!r.delete(at.locatorHash)&&!this.tryWorkspaceByLocator(at)&&o.push(at);let ke=await this.preparePackage(at,{resolver:A,resolveOptions:E}),xe=Uc([...ke.dependencies.values()].map(He=>At(He)));return te.push(xe),xe.catch(()=>{}),v.set(ke.locatorHash,ke),ke},ee=async H=>{let at=R.get(H.locatorHash);if(typeof at<"u")return at;let Re=Promise.resolve().then(()=>ne(H));return R.set(H.locatorHash,Re),Re},Ie=async(H,at)=>{let Re=await At(at);return I.set(H.descriptorHash,H),x.set(H.descriptorHash,Re.locatorHash),Re},Fe=async H=>{le.setTitle(jn(this.configuration,H));let at=this.resolutionAliases.get(H.descriptorHash);if(typeof at<"u")return Ie(H,this.storedDescriptors.get(at));let Re=A.getResolutionDependencies(H,E),ke=Object.fromEntries(await Uc(Object.entries(Re).map(async([Te,Je])=>{let qe=A.bindDescriptor(Je,U,E),b=await At(qe);return J.add(b.locatorHash),[Te,b]}))),He=(await Ky(async()=>await A.getCandidates(H,ke,E),Te=>`${jn(this.configuration,H)}: ${Te}`))[0];if(typeof He>"u")throw new zt(82,`${jn(this.configuration,H)}: No candidates found`);if(e.checkResolutions){let{locators:Te}=await p.getSatisfying(H,ke,[He],{...E,resolver:p});if(!Te.find(Je=>Je.locatorHash===He.locatorHash))throw new zt(78,`Invalid resolution ${ZI(this.configuration,H,He)}`)}return I.set(H.descriptorHash,H),x.set(H.descriptorHash,He.locatorHash),ee(He)},At=H=>{let at=L.get(H.descriptorHash);if(typeof at<"u")return at;I.set(H.descriptorHash,H);let Re=Promise.resolve().then(()=>Fe(H));return L.set(H.descriptorHash,Re),Re};for(let H of this.workspaces){let at=H.anchoredDescriptor;te.push(At(at))}for(;te.length>0;){let H=[...te];te.length=0,await Uc(H)}});let ce=sl(r.values(),le=>this.tryWorkspaceByLocator(le)?sl.skip:le);if(o.length>0||ce.length>0){let le=new Set(this.workspaces.flatMap(H=>{let at=v.get(H.anchoredLocator.locatorHash);if(!at)throw new Error("Assertion failed: The workspace should have been resolved");return Array.from(at.dependencies.values(),Re=>{let ke=x.get(Re.descriptorHash);if(!ke)throw new Error("Assertion failed: The resolution should have been registered");return ke})})),ne=H=>le.has(H.locatorHash)?"0":"1",ee=H=>ba(H),Ie=ks(o,[ne,ee]),Fe=ks(ce,[ne,ee]),At=e.report.getRecommendedLength();Ie.length>0&&e.report.reportInfo(85,`${Mt(this.configuration,"+",yt.ADDED)} ${cP(this.configuration,Ie,At)}`),Fe.length>0&&e.report.reportInfo(85,`${Mt(this.configuration,"-",yt.REMOVED)} ${cP(this.configuration,Fe,At)}`)}let me=new Set(this.resolutionAliases.values()),he=new Set(v.keys()),Be=new Set,we=new Map,g=[];kAt({project:this,accessibleLocators:Be,volatileDescriptors:me,optionalBuilds:he,peerRequirements:we,peerWarnings:g,allDescriptors:I,allResolutions:x,allPackages:v});for(let le of J)he.delete(le);for(let le of me)I.delete(le),x.delete(le);let Ee=new Set,Se=new Set;for(let le of v.values())le.conditions!=null&&(!he.has(le.locatorHash)||(qP(le,fe)||(qP(le,ae)&&e.report.reportWarningOnce(77,`${qr(this.configuration,le)}: Your current architecture (${process.platform}-${process.arch}) is supported by this package, but is missing from the ${Mt(this.configuration,"supportedArchitectures",yt.SETTING)} setting`),Se.add(le.locatorHash)),Ee.add(le.locatorHash)));this.storedResolutions=x,this.storedDescriptors=I,this.storedPackages=v,this.accessibleLocators=Be,this.conditionalLocators=Ee,this.disabledLocators=Se,this.originalPackages=C,this.optionalBuilds=he,this.peerRequirements=we,this.peerWarnings=g}async fetchEverything({cache:e,report:r,fetcher:o,mode:a,persistProject:n=!0}){let u={mockedPackages:this.disabledLocators,unstablePackages:this.conditionalLocators},A=o||this.configuration.makeFetcher(),p={checksums:this.storedChecksums,project:this,cache:e,fetcher:A,report:r,cacheOptions:u},h=Array.from(new Set(ks(this.storedResolutions.values(),[C=>{let R=this.storedPackages.get(C);if(!R)throw new Error("Assertion failed: The locator should have been registered");return ba(R)}])));a==="update-lockfile"&&(h=h.filter(C=>!this.storedChecksums.has(C)));let E=!1,I=Xs.progressViaCounter(h.length);await r.reportProgress(I);let v=(0,ek.default)(PAt);if(await Uc(h.map(C=>v(async()=>{let R=this.storedPackages.get(C);if(!R)throw new Error("Assertion failed: The locator should have been registered");if(Hc(R))return;let L;try{L=await A.fetch(R,p)}catch(U){U.message=`${qr(this.configuration,R)}: ${U.message}`,r.reportExceptionOnce(U),E=U;return}L.checksum!=null?this.storedChecksums.set(R.locatorHash,L.checksum):this.storedChecksums.delete(R.locatorHash),L.releaseFs&&L.releaseFs()}).finally(()=>{I.tick()}))),E)throw E;let x=n&&a!=="update-lockfile"?await this.cacheCleanup({cache:e,report:r}):null;if(r.cacheMisses.size>0||x){let R=(await Promise.all([...r.cacheMisses].map(async ce=>{let me=this.storedPackages.get(ce),he=this.storedChecksums.get(ce)??null,Be=e.getLocatorPath(me,he);return(await oe.statPromise(Be)).size}))).reduce((ce,me)=>ce+me,0)-(x?.size??0),L=r.cacheMisses.size,U=x?.count??0,J=`${nP(L,{zero:"No new packages",one:"A package was",more:`${Mt(this.configuration,L,yt.NUMBER)} packages were`})} added to the project`,te=`${nP(U,{zero:"none were",one:"one was",more:`${Mt(this.configuration,U,yt.NUMBER)} were`})} removed`,ae=R!==0?` (${Mt(this.configuration,R,yt.SIZE_DIFF)})`:"",fe=U>0?L>0?`${J}, and ${te}${ae}.`:`${J}, but ${te}${ae}.`:`${J}${ae}.`;r.reportInfo(13,fe)}}async linkEverything({cache:e,report:r,fetcher:o,mode:a}){let n={mockedPackages:this.disabledLocators,unstablePackages:this.conditionalLocators,skipIntegrityCheck:!0},u=o||this.configuration.makeFetcher(),A={checksums:this.storedChecksums,project:this,cache:e,fetcher:u,report:r,cacheOptions:n},p=this.configuration.getLinkers(),h={project:this,report:r},E=new Map(p.map(le=>{let ne=le.makeInstaller(h),ee=le.getCustomDataKey(),Ie=this.linkersCustomData.get(ee);return typeof Ie<"u"&&ne.attachCustomData(Ie),[le,ne]})),I=new Map,v=new Map,x=new Map,C=new Map(await Uc([...this.accessibleLocators].map(async le=>{let ne=this.storedPackages.get(le);if(!ne)throw new Error("Assertion failed: The locator should have been registered");return[le,await u.fetch(ne,A)]}))),R=[],L=new Set,U=[];for(let le of this.accessibleLocators){let ne=this.storedPackages.get(le);if(typeof ne>"u")throw new Error("Assertion failed: The locator should have been registered");let ee=C.get(ne.locatorHash);if(typeof ee>"u")throw new Error("Assertion failed: The fetch result should have been registered");let Ie=[],Fe=H=>{Ie.push(H)},At=this.tryWorkspaceByLocator(ne);if(At!==null){let H=[],{scripts:at}=At.manifest;for(let ke of["preinstall","install","postinstall"])at.has(ke)&&H.push({type:0,script:ke});try{for(let[ke,xe]of E)if(ke.supportsPackage(ne,h)&&(await xe.installPackage(ne,ee,{holdFetchResult:Fe})).buildRequest!==null)throw new Error("Assertion failed: Linkers can't return build directives for workspaces; this responsibility befalls to the Yarn core")}finally{Ie.length===0?ee.releaseFs?.():R.push(Uc(Ie).catch(()=>{}).then(()=>{ee.releaseFs?.()}))}let Re=V.join(ee.packageFs.getRealPath(),ee.prefixPath);v.set(ne.locatorHash,Re),!Hc(ne)&&H.length>0&&x.set(ne.locatorHash,{buildDirectives:H,buildLocations:[Re]})}else{let H=p.find(ke=>ke.supportsPackage(ne,h));if(!H)throw new zt(12,`${qr(this.configuration,ne)} isn't supported by any available linker`);let at=E.get(H);if(!at)throw new Error("Assertion failed: The installer should have been registered");let Re;try{Re=await at.installPackage(ne,ee,{holdFetchResult:Fe})}finally{Ie.length===0?ee.releaseFs?.():R.push(Uc(Ie).then(()=>{}).then(()=>{ee.releaseFs?.()}))}I.set(ne.locatorHash,H),v.set(ne.locatorHash,Re.packageLocation),Re.buildRequest&&Re.packageLocation&&(Re.buildRequest.skipped?(L.add(ne.locatorHash),this.skippedBuilds.has(ne.locatorHash)||U.push([ne,Re.buildRequest.explain])):x.set(ne.locatorHash,{buildDirectives:Re.buildRequest.directives,buildLocations:[Re.packageLocation]}))}}let J=new Map;for(let le of this.accessibleLocators){let ne=this.storedPackages.get(le);if(!ne)throw new Error("Assertion failed: The locator should have been registered");let ee=this.tryWorkspaceByLocator(ne)!==null,Ie=async(Fe,At)=>{let H=v.get(ne.locatorHash);if(typeof H>"u")throw new Error(`Assertion failed: The package (${qr(this.configuration,ne)}) should have been registered`);let at=[];for(let Re of ne.dependencies.values()){let ke=this.storedResolutions.get(Re.descriptorHash);if(typeof ke>"u")throw new Error(`Assertion failed: The resolution (${jn(this.configuration,Re)}, from ${qr(this.configuration,ne)})should have been registered`);let xe=this.storedPackages.get(ke);if(typeof xe>"u")throw new Error(`Assertion failed: The package (${ke}, resolved from ${jn(this.configuration,Re)}) should have been registered`);let He=this.tryWorkspaceByLocator(xe)===null?I.get(ke):null;if(typeof He>"u")throw new Error(`Assertion failed: The package (${ke}, resolved from ${jn(this.configuration,Re)}) should have been registered`);He===Fe||He===null?v.get(xe.locatorHash)!==null&&at.push([Re,xe]):!ee&&H!==null&&Yy(J,ke).push(H)}H!==null&&await At.attachInternalDependencies(ne,at)};if(ee)for(let[Fe,At]of E)Fe.supportsPackage(ne,h)&&await Ie(Fe,At);else{let Fe=I.get(ne.locatorHash);if(!Fe)throw new Error("Assertion failed: The linker should have been found");let At=E.get(Fe);if(!At)throw new Error("Assertion failed: The installer should have been registered");await Ie(Fe,At)}}for(let[le,ne]of J){let ee=this.storedPackages.get(le);if(!ee)throw new Error("Assertion failed: The package should have been registered");let Ie=I.get(ee.locatorHash);if(!Ie)throw new Error("Assertion failed: The linker should have been found");let Fe=E.get(Ie);if(!Fe)throw new Error("Assertion failed: The installer should have been registered");await Fe.attachExternalDependents(ee,ne)}let te=new Map;for(let[le,ne]of E){let ee=await ne.finalizeInstall();for(let Ie of ee?.records??[])Ie.buildRequest.skipped?(L.add(Ie.locator.locatorHash),this.skippedBuilds.has(Ie.locator.locatorHash)||U.push([Ie.locator,Ie.buildRequest.explain])):x.set(Ie.locator.locatorHash,{buildDirectives:Ie.buildRequest.directives,buildLocations:Ie.buildLocations});typeof ee?.customData<"u"&&te.set(le.getCustomDataKey(),ee.customData)}if(this.linkersCustomData=te,await Uc(R),a==="skip-build")return;for(let[,le]of ks(U,([ne])=>ba(ne)))le(r);let ae=new Set(this.storedPackages.keys()),fe=new Set(x.keys());for(let le of fe)ae.delete(le);let ce=(0,Zx.createHash)("sha512");ce.update(process.versions.node),await this.configuration.triggerHook(le=>le.globalHashGeneration,this,le=>{ce.update("\0"),ce.update(le)});let me=ce.digest("hex"),he=new Map,Be=le=>{let ne=he.get(le.locatorHash);if(typeof ne<"u")return ne;let ee=this.storedPackages.get(le.locatorHash);if(typeof ee>"u")throw new Error("Assertion failed: The package should have been registered");let Ie=(0,Zx.createHash)("sha512");Ie.update(le.locatorHash),he.set(le.locatorHash,"");for(let Fe of ee.dependencies.values()){let At=this.storedResolutions.get(Fe.descriptorHash);if(typeof At>"u")throw new Error(`Assertion failed: The resolution (${jn(this.configuration,Fe)}) should have been registered`);let H=this.storedPackages.get(At);if(typeof H>"u")throw new Error("Assertion failed: The package should have been registered");Ie.update(Be(H))}return ne=Ie.digest("hex"),he.set(le.locatorHash,ne),ne},we=(le,ne)=>{let ee=(0,Zx.createHash)("sha512");ee.update(me),ee.update(Be(le));for(let Ie of ne)ee.update(Ie);return ee.digest("hex")},g=new Map,Ee=!1,Se=le=>{let ne=new Set([le.locatorHash]);for(let ee of ne){let Ie=this.storedPackages.get(ee);if(!Ie)throw new Error("Assertion failed: The package should have been registered");for(let Fe of Ie.dependencies.values()){let At=this.storedResolutions.get(Fe.descriptorHash);if(!At)throw new Error(`Assertion failed: The resolution (${jn(this.configuration,Fe)}) should have been registered`);if(At!==le.locatorHash&&fe.has(At))return!1;let H=this.storedPackages.get(At);if(!H)throw new Error("Assertion failed: The package should have been registered");let at=this.tryWorkspaceByLocator(H);if(at){if(at.anchoredLocator.locatorHash!==le.locatorHash&&fe.has(at.anchoredLocator.locatorHash))return!1;ne.add(at.anchoredLocator.locatorHash)}ne.add(At)}}return!0};for(;fe.size>0;){let le=fe.size,ne=[];for(let ee of fe){let Ie=this.storedPackages.get(ee);if(!Ie)throw new Error("Assertion failed: The package should have been registered");if(!Se(Ie))continue;let Fe=x.get(Ie.locatorHash);if(!Fe)throw new Error("Assertion failed: The build directive should have been registered");let At=we(Ie,Fe.buildLocations);if(this.storedBuildState.get(Ie.locatorHash)===At){g.set(Ie.locatorHash,At),fe.delete(ee);continue}Ee||(await this.persistInstallStateFile(),Ee=!0),this.storedBuildState.has(Ie.locatorHash)?r.reportInfo(8,`${qr(this.configuration,Ie)} must be rebuilt because its dependency tree changed`):r.reportInfo(7,`${qr(this.configuration,Ie)} must be built because it never has been before or the last one failed`);let H=Fe.buildLocations.map(async at=>{if(!V.isAbsolute(at))throw new Error(`Assertion failed: Expected the build location to be absolute (not ${at})`);for(let Re of Fe.buildDirectives){let ke=`# This file contains the result of Yarn building a package (${ba(Ie)}) +`;switch(Re.type){case 0:ke+=`# Script name: ${Re.script} +`;break;case 1:ke+=`# Script code: ${Re.script} +`;break}let xe=null;if(!await oe.mktempPromise(async Te=>{let Je=V.join(Te,"build.log"),{stdout:qe,stderr:b}=this.configuration.getSubprocessStreams(Je,{header:ke,prefix:qr(this.configuration,Ie),report:r}),w;try{switch(Re.type){case 0:w=await Wb(Ie,Re.script,[],{cwd:at,project:this,stdin:xe,stdout:qe,stderr:b});break;case 1:w=await EU(Ie,Re.script,[],{cwd:at,project:this,stdin:xe,stdout:qe,stderr:b});break}}catch(F){b.write(F.stack),w=1}if(qe.end(),b.end(),w===0)return!0;oe.detachTemp(Te);let P=`${qr(this.configuration,Ie)} couldn't be built successfully (exit code ${Mt(this.configuration,w,yt.NUMBER)}, logs can be found here: ${Mt(this.configuration,Je,yt.PATH)})`,y=this.optionalBuilds.has(Ie.locatorHash);return y?r.reportInfo(9,P):r.reportError(9,P),Kce&&r.reportFold(ue.fromPortablePath(Je),oe.readFileSync(Je,"utf8")),y}))return!1}return!0});ne.push(...H,Promise.allSettled(H).then(at=>{fe.delete(ee),at.every(Re=>Re.status==="fulfilled"&&Re.value===!0)&&g.set(Ie.locatorHash,At)}))}if(await Uc(ne),le===fe.size){let ee=Array.from(fe).map(Ie=>{let Fe=this.storedPackages.get(Ie);if(!Fe)throw new Error("Assertion failed: The package should have been registered");return qr(this.configuration,Fe)}).join(", ");r.reportError(3,`Some packages have circular dependencies that make their build order unsatisfiable - as a result they won't be built (affected packages are: ${ee})`);break}}this.storedBuildState=g,this.skippedBuilds=L}async installWithNewReport(e,r){return(await Nt.start({configuration:this.configuration,json:e.json,stdout:e.stdout,forceSectionAlignment:!0,includeLogs:!e.json&&!e.quiet,includeVersion:!0},async a=>{await this.install({...r,report:a})})).exitCode()}async install(e){let r=this.configuration.get("nodeLinker");Ke.telemetry?.reportInstall(r);let o=!1;if(await e.report.startTimerPromise("Project validation",{skipIfEmpty:!0},async()=>{this.configuration.get("enableOfflineMode")&&e.report.reportWarning(90,"Offline work is enabled; Yarn won't fetch packages from the remote registry if it can avoid it"),await this.configuration.triggerHook(E=>E.validateProject,this,{reportWarning:(E,I)=>{e.report.reportWarning(E,I)},reportError:(E,I)=>{e.report.reportError(E,I),o=!0}})}),o)return;let a=await this.configuration.getPackageExtensions();for(let E of a.values())for(let[,I]of E)for(let v of I)v.status="inactive";let n=V.join(this.cwd,dr.lockfile),u=null;if(e.immutable)try{u=await oe.readFilePromise(n,"utf8")}catch(E){throw E.code==="ENOENT"?new zt(28,"The lockfile would have been created by this install, which is explicitly forbidden."):E}await e.report.startTimerPromise("Resolution step",async()=>{await this.resolveEverything(e)}),await e.report.startTimerPromise("Post-resolution validation",{skipIfEmpty:!0},async()=>{QAt(this,e.report);for(let[,E]of a)for(let[,I]of E)for(let v of I)if(v.userProvided){let x=Mt(this.configuration,v,yt.PACKAGE_EXTENSION);switch(v.status){case"inactive":e.report.reportWarning(68,`${x}: No matching package in the dependency tree; you may not need this rule anymore.`);break;case"redundant":e.report.reportWarning(69,`${x}: This rule seems redundant when applied on the original package; the extension may have been applied upstream.`);break}}if(u!==null){let E=_g(u,this.generateLockfile());if(E!==u){let I=Ape(n,n,u,E,void 0,void 0,{maxEditLength:100});if(I){e.report.reportSeparator();for(let v of I.hunks){e.report.reportInfo(null,`@@ -${v.oldStart},${v.oldLines} +${v.newStart},${v.newLines} @@`);for(let x of v.lines)x.startsWith("+")?e.report.reportError(28,Mt(this.configuration,x,yt.ADDED)):x.startsWith("-")?e.report.reportError(28,Mt(this.configuration,x,yt.REMOVED)):e.report.reportInfo(null,Mt(this.configuration,x,"grey"))}e.report.reportSeparator()}throw new zt(28,"The lockfile would have been modified by this install, which is explicitly forbidden.")}}});for(let E of a.values())for(let[,I]of E)for(let v of I)v.userProvided&&v.status==="active"&&Ke.telemetry?.reportPackageExtension(Ed(v,yt.PACKAGE_EXTENSION));await e.report.startTimerPromise("Fetch step",async()=>{await this.fetchEverything(e)});let A=e.immutable?[...new Set(this.configuration.get("immutablePatterns"))].sort():[],p=await Promise.all(A.map(async E=>LP(E,{cwd:this.cwd})));(typeof e.persistProject>"u"||e.persistProject)&&await this.persist(),await e.report.startTimerPromise("Link step",async()=>{if(e.mode==="update-lockfile"){e.report.reportWarning(73,`Skipped due to ${Mt(this.configuration,"mode=update-lockfile",yt.CODE)}`);return}await this.linkEverything(e);let E=await Promise.all(A.map(async I=>LP(I,{cwd:this.cwd})));for(let I=0;I{await this.configuration.triggerHook(E=>E.validateProjectAfterInstall,this,{reportWarning:(E,I)=>{e.report.reportWarning(E,I)},reportError:(E,I)=>{e.report.reportError(E,I),h=!0}})}),!h&&await this.configuration.triggerHook(E=>E.afterAllInstalled,this,e)}generateLockfile(){let e=new Map;for(let[n,u]of this.storedResolutions.entries()){let A=e.get(u);A||e.set(u,A=new Set),A.add(n)}let r={},{cacheKey:o}=Lr.getCacheKey(this.configuration);r.__metadata={version:tk,cacheKey:o};for(let[n,u]of e.entries()){let A=this.originalPackages.get(n);if(!A)continue;let p=[];for(let I of u){let v=this.storedDescriptors.get(I);if(!v)throw new Error("Assertion failed: The descriptor should have been registered");p.push(v)}let h=p.map(I=>Pa(I)).sort().join(", "),E=new Ot;E.version=A.linkType==="HARD"?A.version:"0.0.0-use.local",E.languageName=A.languageName,E.dependencies=new Map(A.dependencies),E.peerDependencies=new Map(A.peerDependencies),E.dependenciesMeta=new Map(A.dependenciesMeta),E.peerDependenciesMeta=new Map(A.peerDependenciesMeta),E.bin=new Map(A.bin),r[h]={...E.exportTo({},{compatibilityMode:!1}),linkType:A.linkType.toLowerCase(),resolution:ba(A),checksum:this.storedChecksums.get(A.locatorHash),conditions:A.conditions||void 0}}return`${[`# This file is generated by running "yarn install" inside your project. +`,`# Manual changes might be lost - proceed with caution! +`].join("")} +`+Ba(r)}async persistLockfile(){let e=V.join(this.cwd,dr.lockfile),r="";try{r=await oe.readFilePromise(e,"utf8")}catch{}let o=this.generateLockfile(),a=_g(r,o);a!==r&&(await oe.writeFilePromise(e,a),this.lockFileChecksum=Vpe(a),this.lockfileNeedsRefresh=!1)}async persistInstallStateFile(){let e=[];for(let u of Object.values(b_))e.push(...u);let r=(0,$x.default)(this,e),o=x_.default.serialize(r),a=zs(o);if(this.installStateChecksum===a)return;let n=this.configuration.get("installStatePath");await oe.mkdirPromise(V.dirname(n),{recursive:!0}),await oe.writeFilePromise(n,await bAt(o)),this.installStateChecksum=a}async restoreInstallState({restoreLinkersCustomData:e=!0,restoreResolutions:r=!0,restoreBuildState:o=!0}={}){let a=this.configuration.get("installStatePath"),n;try{let u=await xAt(await oe.readFilePromise(a));n=x_.default.deserialize(u),this.installStateChecksum=zs(u)}catch{r&&await this.applyLightResolution();return}e&&typeof n.linkersCustomData<"u"&&(this.linkersCustomData=n.linkersCustomData),o&&Object.assign(this,(0,$x.default)(n,b_.restoreBuildState)),r&&(n.lockFileChecksum===this.lockFileChecksum?Object.assign(this,(0,$x.default)(n,b_.restoreResolutions)):await this.applyLightResolution())}async applyLightResolution(){await this.resolveEverything({lockfileOnly:!0,report:new Qi}),await this.persistInstallStateFile()}async persist(){let e=(0,ek.default)(4);await Promise.all([this.persistLockfile(),...this.workspaces.map(r=>e(()=>r.persistManifest()))])}async cacheCleanup({cache:e,report:r}){if(this.configuration.get("enableGlobalCache"))return null;let o=new Set([".gitignore"]);if(!CM(e.cwd,this.cwd)||!await oe.existsPromise(e.cwd))return null;let a=[];for(let u of await oe.readdirPromise(e.cwd)){if(o.has(u))continue;let A=V.resolve(e.cwd,u);e.markedFiles.has(A)||(e.immutable?r.reportError(56,`${Mt(this.configuration,V.basename(A),"magenta")} appears to be unused and would be marked for deletion, but the cache is immutable`):a.push(oe.lstatPromise(A).then(async p=>(await oe.removePromise(A),p.size))))}if(a.length===0)return null;let n=await Promise.all(a);return{count:a.length,size:n.reduce((u,A)=>u+A,0)}}}});function FAt(t){let o=Math.floor(t.timeNow/864e5),a=t.updateInterval*864e5,n=t.state.lastUpdate??t.timeNow+a+Math.floor(a*t.randomInitialInterval),u=n+a,A=t.state.lastTips??o*864e5,p=A+864e5+8*36e5-t.timeZone,h=u<=t.timeNow,E=p<=t.timeNow,I=null;return(h||E||!t.state.lastUpdate||!t.state.lastTips)&&(I={},I.lastUpdate=h?t.timeNow:n,I.lastTips=A,I.blocks=h?{}:t.state.blocks,I.displayedTips=t.state.displayedTips),{nextState:I,triggerUpdate:h,triggerTips:E,nextTips:E?o*864e5:A}}var uC,Xpe=Et(()=>{St();L1();nh();Ib();ql();Qf();uC=class{constructor(e,r){this.values=new Map;this.hits=new Map;this.enumerators=new Map;this.nextTips=0;this.displayedTips=[];this.shouldCommitTips=!1;this.configuration=e;let o=this.getRegistryPath();this.isNew=!oe.existsSync(o),this.shouldShowTips=!1,this.sendReport(r),this.startBuffer()}commitTips(){this.shouldShowTips&&(this.shouldCommitTips=!0)}selectTip(e){let r=new Set(this.displayedTips),o=A=>A&&rn?kf(rn,A):!1,a=e.map((A,p)=>p).filter(A=>e[A]&&o(e[A]?.selector));if(a.length===0)return null;let n=a.filter(A=>!r.has(A));if(n.length===0){let A=Math.floor(a.length*.2);this.displayedTips=A>0?this.displayedTips.slice(-A):[],n=a.filter(p=>!r.has(p))}let u=n[Math.floor(Math.random()*n.length)];return this.displayedTips.push(u),this.commitTips(),e[u]}reportVersion(e){this.reportValue("version",e.replace(/-git\..*/,"-git"))}reportCommandName(e){this.reportValue("commandName",e||"")}reportPluginName(e){this.reportValue("pluginName",e)}reportProject(e){this.reportEnumerator("projectCount",e)}reportInstall(e){this.reportHit("installCount",e)}reportPackageExtension(e){this.reportValue("packageExtension",e)}reportWorkspaceCount(e){this.reportValue("workspaceCount",String(e))}reportDependencyCount(e){this.reportValue("dependencyCount",String(e))}reportValue(e,r){md(this.values,e).add(r)}reportEnumerator(e,r){md(this.enumerators,e).add(zs(r))}reportHit(e,r="*"){let o=Wy(this.hits,e),a=ol(o,r,()=>0);o.set(r,a+1)}getRegistryPath(){let e=this.configuration.get("globalFolder");return V.join(e,"telemetry.json")}sendReport(e){let r=this.getRegistryPath(),o;try{o=oe.readJsonSync(r)}catch{o={}}let{nextState:a,triggerUpdate:n,triggerTips:u,nextTips:A}=FAt({state:o,timeNow:Date.now(),timeZone:new Date().getTimezoneOffset()*60*1e3,randomInitialInterval:Math.random(),updateInterval:this.configuration.get("telemetryInterval")});if(this.nextTips=A,this.displayedTips=o.displayedTips??[],a!==null)try{oe.mkdirSync(V.dirname(r),{recursive:!0}),oe.writeJsonSync(r,a)}catch{return!1}if(u&&this.configuration.get("enableTips")&&(this.shouldShowTips=!0),n){let p=o.blocks??{};if(Object.keys(p).length===0){let h=`https://browser-http-intake.logs.datadoghq.eu/v1/input/${e}?ddsource=yarn`,E=I=>O4(h,I,{configuration:this.configuration}).catch(()=>{});for(let[I,v]of Object.entries(o.blocks??{})){if(Object.keys(v).length===0)continue;let x=v;x.userId=I,x.reportType="primary";for(let L of Object.keys(x.enumerators??{}))x.enumerators[L]=x.enumerators[L].length;E(x);let C=new Map,R=20;for(let[L,U]of Object.entries(x.values))U.length>0&&C.set(L,U.slice(0,R));for(;C.size>0;){let L={};L.userId=I,L.reportType="secondary",L.metrics={};for(let[U,J]of C)L.metrics[U]=J.shift(),J.length===0&&C.delete(U);E(L)}}}}return!0}applyChanges(){let e=this.getRegistryPath(),r;try{r=oe.readJsonSync(e)}catch{r={}}let o=this.configuration.get("telemetryUserId")??"*",a=r.blocks=r.blocks??{},n=a[o]=a[o]??{};for(let u of this.hits.keys()){let A=n.hits=n.hits??{},p=A[u]=A[u]??{};for(let[h,E]of this.hits.get(u))p[h]=(p[h]??0)+E}for(let u of["values","enumerators"])for(let A of this[u].keys()){let p=n[u]=n[u]??{};p[A]=[...new Set([...p[A]??[],...this[u].get(A)??[]])]}this.shouldCommitTips&&(r.lastTips=this.nextTips,r.displayedTips=this.displayedTips),oe.mkdirSync(V.dirname(e),{recursive:!0}),oe.writeJsonSync(e,r)}startBuffer(){process.on("exit",()=>{try{this.applyChanges()}catch{}})}}});var o2={};Vt(o2,{BuildDirectiveType:()=>Vx,CACHE_CHECKPOINT:()=>c_,CACHE_VERSION:()=>Kx,Cache:()=>Lr,Configuration:()=>Ke,DEFAULT_RC_FILENAME:()=>G4,FormatType:()=>xle,InstallMode:()=>pl,LEGACY_PLUGINS:()=>v1,LOCKFILE_VERSION:()=>tk,LegacyMigrationResolver:()=>oC,LightReport:()=>AA,LinkType:()=>zy,LockfileResolver:()=>aC,Manifest:()=>Ot,MessageName:()=>wr,MultiFetcher:()=>hE,PackageExtensionStatus:()=>BL,PackageExtensionType:()=>IL,PeerWarningType:()=>rk,Project:()=>Pt,Report:()=>Xs,ReportError:()=>zt,SettingsType:()=>D1,StreamReport:()=>Nt,TAG_REGEXP:()=>FE,TelemetryManager:()=>uC,ThrowReport:()=>Qi,VirtualFetcher:()=>gE,WindowsLinkType:()=>xb,Workspace:()=>cC,WorkspaceFetcher:()=>mE,WorkspaceResolver:()=>Xn,YarnVersion:()=>rn,execUtils:()=>Ur,folderUtils:()=>YP,formatUtils:()=>de,hashUtils:()=>wn,httpUtils:()=>nn,miscUtils:()=>_e,nodeUtils:()=>Ji,parseMessageName:()=>AS,reportOptionDeprecations:()=>LE,scriptUtils:()=>un,semverUtils:()=>kr,stringifyMessageName:()=>Wu,structUtils:()=>W,tgzUtils:()=>Xi,treeUtils:()=>$s});var Ye=Et(()=>{Db();WP();jl();nh();Ib();ql();vb();BU();Qf();bo();Xfe();ipe();u_();S1();S1();ope();A_();ape();f_();fE();fS();cM();zpe();Yl();O1();Xpe();S_();AM();fM();vd();P_();L1();Cne()});var nhe=_((K_t,l2)=>{"use strict";var TAt=process.env.TERM_PROGRAM==="Hyper",NAt=process.platform==="win32",ehe=process.platform==="linux",F_={ballotDisabled:"\u2612",ballotOff:"\u2610",ballotOn:"\u2611",bullet:"\u2022",bulletWhite:"\u25E6",fullBlock:"\u2588",heart:"\u2764",identicalTo:"\u2261",line:"\u2500",mark:"\u203B",middot:"\xB7",minus:"\uFF0D",multiplication:"\xD7",obelus:"\xF7",pencilDownRight:"\u270E",pencilRight:"\u270F",pencilUpRight:"\u2710",percent:"%",pilcrow2:"\u2761",pilcrow:"\xB6",plusMinus:"\xB1",section:"\xA7",starsOff:"\u2606",starsOn:"\u2605",upDownArrow:"\u2195"},the=Object.assign({},F_,{check:"\u221A",cross:"\xD7",ellipsisLarge:"...",ellipsis:"...",info:"i",question:"?",questionSmall:"?",pointer:">",pointerSmall:"\xBB",radioOff:"( )",radioOn:"(*)",warning:"\u203C"}),rhe=Object.assign({},F_,{ballotCross:"\u2718",check:"\u2714",cross:"\u2716",ellipsisLarge:"\u22EF",ellipsis:"\u2026",info:"\u2139",question:"?",questionFull:"\uFF1F",questionSmall:"\uFE56",pointer:ehe?"\u25B8":"\u276F",pointerSmall:ehe?"\u2023":"\u203A",radioOff:"\u25EF",radioOn:"\u25C9",warning:"\u26A0"});l2.exports=NAt&&!TAt?the:rhe;Reflect.defineProperty(l2.exports,"common",{enumerable:!1,value:F_});Reflect.defineProperty(l2.exports,"windows",{enumerable:!1,value:the});Reflect.defineProperty(l2.exports,"other",{enumerable:!1,value:rhe})});var Kc=_((V_t,R_)=>{"use strict";var LAt=t=>t!==null&&typeof t=="object"&&!Array.isArray(t),OAt=/[\u001b\u009b][[\]#;?()]*(?:(?:(?:[^\W_]*;?[^\W_]*)\u0007)|(?:(?:[0-9]{1,4}(;[0-9]{0,4})*)?[~0-9=<>cf-nqrtyA-PRZ]))/g,ihe=()=>{let t={enabled:!0,visible:!0,styles:{},keys:{}};"FORCE_COLOR"in process.env&&(t.enabled=process.env.FORCE_COLOR!=="0");let e=n=>{let u=n.open=`\x1B[${n.codes[0]}m`,A=n.close=`\x1B[${n.codes[1]}m`,p=n.regex=new RegExp(`\\u001b\\[${n.codes[1]}m`,"g");return n.wrap=(h,E)=>{h.includes(A)&&(h=h.replace(p,A+u));let I=u+h+A;return E?I.replace(/\r*\n/g,`${A}$&${u}`):I},n},r=(n,u,A)=>typeof n=="function"?n(u):n.wrap(u,A),o=(n,u)=>{if(n===""||n==null)return"";if(t.enabled===!1)return n;if(t.visible===!1)return"";let A=""+n,p=A.includes(` +`),h=u.length;for(h>0&&u.includes("unstyle")&&(u=[...new Set(["unstyle",...u])].reverse());h-- >0;)A=r(t.styles[u[h]],A,p);return A},a=(n,u,A)=>{t.styles[n]=e({name:n,codes:u}),(t.keys[A]||(t.keys[A]=[])).push(n),Reflect.defineProperty(t,n,{configurable:!0,enumerable:!0,set(h){t.alias(n,h)},get(){let h=E=>o(E,h.stack);return Reflect.setPrototypeOf(h,t),h.stack=this.stack?this.stack.concat(n):[n],h}})};return a("reset",[0,0],"modifier"),a("bold",[1,22],"modifier"),a("dim",[2,22],"modifier"),a("italic",[3,23],"modifier"),a("underline",[4,24],"modifier"),a("inverse",[7,27],"modifier"),a("hidden",[8,28],"modifier"),a("strikethrough",[9,29],"modifier"),a("black",[30,39],"color"),a("red",[31,39],"color"),a("green",[32,39],"color"),a("yellow",[33,39],"color"),a("blue",[34,39],"color"),a("magenta",[35,39],"color"),a("cyan",[36,39],"color"),a("white",[37,39],"color"),a("gray",[90,39],"color"),a("grey",[90,39],"color"),a("bgBlack",[40,49],"bg"),a("bgRed",[41,49],"bg"),a("bgGreen",[42,49],"bg"),a("bgYellow",[43,49],"bg"),a("bgBlue",[44,49],"bg"),a("bgMagenta",[45,49],"bg"),a("bgCyan",[46,49],"bg"),a("bgWhite",[47,49],"bg"),a("blackBright",[90,39],"bright"),a("redBright",[91,39],"bright"),a("greenBright",[92,39],"bright"),a("yellowBright",[93,39],"bright"),a("blueBright",[94,39],"bright"),a("magentaBright",[95,39],"bright"),a("cyanBright",[96,39],"bright"),a("whiteBright",[97,39],"bright"),a("bgBlackBright",[100,49],"bgBright"),a("bgRedBright",[101,49],"bgBright"),a("bgGreenBright",[102,49],"bgBright"),a("bgYellowBright",[103,49],"bgBright"),a("bgBlueBright",[104,49],"bgBright"),a("bgMagentaBright",[105,49],"bgBright"),a("bgCyanBright",[106,49],"bgBright"),a("bgWhiteBright",[107,49],"bgBright"),t.ansiRegex=OAt,t.hasColor=t.hasAnsi=n=>(t.ansiRegex.lastIndex=0,typeof n=="string"&&n!==""&&t.ansiRegex.test(n)),t.alias=(n,u)=>{let A=typeof u=="string"?t[u]:u;if(typeof A!="function")throw new TypeError("Expected alias to be the name of an existing color (string) or a function");A.stack||(Reflect.defineProperty(A,"name",{value:n}),t.styles[n]=A,A.stack=[n]),Reflect.defineProperty(t,n,{configurable:!0,enumerable:!0,set(p){t.alias(n,p)},get(){let p=h=>o(h,p.stack);return Reflect.setPrototypeOf(p,t),p.stack=this.stack?this.stack.concat(A.stack):A.stack,p}})},t.theme=n=>{if(!LAt(n))throw new TypeError("Expected theme to be an object");for(let u of Object.keys(n))t.alias(u,n[u]);return t},t.alias("unstyle",n=>typeof n=="string"&&n!==""?(t.ansiRegex.lastIndex=0,n.replace(t.ansiRegex,"")):""),t.alias("noop",n=>n),t.none=t.clear=t.noop,t.stripColor=t.unstyle,t.symbols=nhe(),t.define=a,t};R_.exports=ihe();R_.exports.create=ihe});var No=_(sn=>{"use strict";var MAt=Object.prototype.toString,rc=Kc(),she=!1,T_=[],ohe={yellow:"blue",cyan:"red",green:"magenta",black:"white",blue:"yellow",red:"cyan",magenta:"green",white:"black"};sn.longest=(t,e)=>t.reduce((r,o)=>Math.max(r,e?o[e].length:o.length),0);sn.hasColor=t=>!!t&&rc.hasColor(t);var ik=sn.isObject=t=>t!==null&&typeof t=="object"&&!Array.isArray(t);sn.nativeType=t=>MAt.call(t).slice(8,-1).toLowerCase().replace(/\s/g,"");sn.isAsyncFn=t=>sn.nativeType(t)==="asyncfunction";sn.isPrimitive=t=>t!=null&&typeof t!="object"&&typeof t!="function";sn.resolve=(t,e,...r)=>typeof e=="function"?e.call(t,...r):e;sn.scrollDown=(t=[])=>[...t.slice(1),t[0]];sn.scrollUp=(t=[])=>[t.pop(),...t];sn.reorder=(t=[])=>{let e=t.slice();return e.sort((r,o)=>r.index>o.index?1:r.index{let o=t.length,a=r===o?0:r<0?o-1:r,n=t[e];t[e]=t[a],t[a]=n};sn.width=(t,e=80)=>{let r=t&&t.columns?t.columns:e;return t&&typeof t.getWindowSize=="function"&&(r=t.getWindowSize()[0]),process.platform==="win32"?r-1:r};sn.height=(t,e=20)=>{let r=t&&t.rows?t.rows:e;return t&&typeof t.getWindowSize=="function"&&(r=t.getWindowSize()[1]),r};sn.wordWrap=(t,e={})=>{if(!t)return t;typeof e=="number"&&(e={width:e});let{indent:r="",newline:o=` +`+r,width:a=80}=e,n=(o+r).match(/[^\S\n]/g)||[];a-=n.length;let u=`.{1,${a}}([\\s\\u200B]+|$)|[^\\s\\u200B]+?([\\s\\u200B]+|$)`,A=t.trim(),p=new RegExp(u,"g"),h=A.match(p)||[];return h=h.map(E=>E.replace(/\n$/,"")),e.padEnd&&(h=h.map(E=>E.padEnd(a," "))),e.padStart&&(h=h.map(E=>E.padStart(a," "))),r+h.join(o)};sn.unmute=t=>{let e=t.stack.find(o=>rc.keys.color.includes(o));return e?rc[e]:t.stack.find(o=>o.slice(2)==="bg")?rc[e.slice(2)]:o=>o};sn.pascal=t=>t?t[0].toUpperCase()+t.slice(1):"";sn.inverse=t=>{if(!t||!t.stack)return t;let e=t.stack.find(o=>rc.keys.color.includes(o));if(e){let o=rc["bg"+sn.pascal(e)];return o?o.black:t}let r=t.stack.find(o=>o.slice(0,2)==="bg");return r?rc[r.slice(2).toLowerCase()]||t:rc.none};sn.complement=t=>{if(!t||!t.stack)return t;let e=t.stack.find(o=>rc.keys.color.includes(o)),r=t.stack.find(o=>o.slice(0,2)==="bg");if(e&&!r)return rc[ohe[e]||e];if(r){let o=r.slice(2).toLowerCase(),a=ohe[o];return a&&rc["bg"+sn.pascal(a)]||t}return rc.none};sn.meridiem=t=>{let e=t.getHours(),r=t.getMinutes(),o=e>=12?"pm":"am";e=e%12;let a=e===0?12:e,n=r<10?"0"+r:r;return a+":"+n+" "+o};sn.set=(t={},e="",r)=>e.split(".").reduce((o,a,n,u)=>{let A=u.length-1>n?o[a]||{}:r;return!sn.isObject(A)&&n{let o=t[e]==null?e.split(".").reduce((a,n)=>a&&a[n],t):t[e];return o??r};sn.mixin=(t,e)=>{if(!ik(t))return e;if(!ik(e))return t;for(let r of Object.keys(e)){let o=Object.getOwnPropertyDescriptor(e,r);if(o.hasOwnProperty("value"))if(t.hasOwnProperty(r)&&ik(o.value)){let a=Object.getOwnPropertyDescriptor(t,r);ik(a.value)?t[r]=sn.merge({},t[r],e[r]):Reflect.defineProperty(t,r,o)}else Reflect.defineProperty(t,r,o);else Reflect.defineProperty(t,r,o)}return t};sn.merge=(...t)=>{let e={};for(let r of t)sn.mixin(e,r);return e};sn.mixinEmitter=(t,e)=>{let r=e.constructor.prototype;for(let o of Object.keys(r)){let a=r[o];typeof a=="function"?sn.define(t,o,a.bind(e)):sn.define(t,o,a)}};sn.onExit=t=>{let e=(r,o)=>{she||(she=!0,T_.forEach(a=>a()),r===!0&&process.exit(128+o))};T_.length===0&&(process.once("SIGTERM",e.bind(null,!0,15)),process.once("SIGINT",e.bind(null,!0,2)),process.once("exit",e)),T_.push(t)};sn.define=(t,e,r)=>{Reflect.defineProperty(t,e,{value:r})};sn.defineExport=(t,e,r)=>{let o;Reflect.defineProperty(t,e,{enumerable:!0,configurable:!0,set(a){o=a},get(){return o?o():r()}})}});var ahe=_(hC=>{"use strict";hC.ctrl={a:"first",b:"backward",c:"cancel",d:"deleteForward",e:"last",f:"forward",g:"reset",i:"tab",k:"cutForward",l:"reset",n:"newItem",m:"cancel",j:"submit",p:"search",r:"remove",s:"save",u:"undo",w:"cutLeft",x:"toggleCursor",v:"paste"};hC.shift={up:"shiftUp",down:"shiftDown",left:"shiftLeft",right:"shiftRight",tab:"prev"};hC.fn={up:"pageUp",down:"pageDown",left:"pageLeft",right:"pageRight",delete:"deleteForward"};hC.option={b:"backward",f:"forward",d:"cutRight",left:"cutLeft",up:"altUp",down:"altDown"};hC.keys={pageup:"pageUp",pagedown:"pageDown",home:"home",end:"end",cancel:"cancel",delete:"deleteForward",backspace:"delete",down:"down",enter:"submit",escape:"cancel",left:"left",space:"space",number:"number",return:"submit",right:"right",tab:"next",up:"up"}});var uhe=_((X_t,che)=>{"use strict";var lhe=ve("readline"),UAt=ahe(),_At=/^(?:\x1b)([a-zA-Z0-9])$/,HAt=/^(?:\x1b+)(O|N|\[|\[\[)(?:(\d+)(?:;(\d+))?([~^$])|(?:1;)?(\d+)?([a-zA-Z]))/,qAt={OP:"f1",OQ:"f2",OR:"f3",OS:"f4","[11~":"f1","[12~":"f2","[13~":"f3","[14~":"f4","[[A":"f1","[[B":"f2","[[C":"f3","[[D":"f4","[[E":"f5","[15~":"f5","[17~":"f6","[18~":"f7","[19~":"f8","[20~":"f9","[21~":"f10","[23~":"f11","[24~":"f12","[A":"up","[B":"down","[C":"right","[D":"left","[E":"clear","[F":"end","[H":"home",OA:"up",OB:"down",OC:"right",OD:"left",OE:"clear",OF:"end",OH:"home","[1~":"home","[2~":"insert","[3~":"delete","[4~":"end","[5~":"pageup","[6~":"pagedown","[[5~":"pageup","[[6~":"pagedown","[7~":"home","[8~":"end","[a":"up","[b":"down","[c":"right","[d":"left","[e":"clear","[2$":"insert","[3$":"delete","[5$":"pageup","[6$":"pagedown","[7$":"home","[8$":"end",Oa:"up",Ob:"down",Oc:"right",Od:"left",Oe:"clear","[2^":"insert","[3^":"delete","[5^":"pageup","[6^":"pagedown","[7^":"home","[8^":"end","[Z":"tab"};function jAt(t){return["[a","[b","[c","[d","[e","[2$","[3$","[5$","[6$","[7$","[8$","[Z"].includes(t)}function GAt(t){return["Oa","Ob","Oc","Od","Oe","[2^","[3^","[5^","[6^","[7^","[8^"].includes(t)}var sk=(t="",e={})=>{let r,o={name:e.name,ctrl:!1,meta:!1,shift:!1,option:!1,sequence:t,raw:t,...e};if(Buffer.isBuffer(t)?t[0]>127&&t[1]===void 0?(t[0]-=128,t="\x1B"+String(t)):t=String(t):t!==void 0&&typeof t!="string"?t=String(t):t||(t=o.sequence||""),o.sequence=o.sequence||t||o.name,t==="\r")o.raw=void 0,o.name="return";else if(t===` +`)o.name="enter";else if(t===" ")o.name="tab";else if(t==="\b"||t==="\x7F"||t==="\x1B\x7F"||t==="\x1B\b")o.name="backspace",o.meta=t.charAt(0)==="\x1B";else if(t==="\x1B"||t==="\x1B\x1B")o.name="escape",o.meta=t.length===2;else if(t===" "||t==="\x1B ")o.name="space",o.meta=t.length===2;else if(t<="")o.name=String.fromCharCode(t.charCodeAt(0)+"a".charCodeAt(0)-1),o.ctrl=!0;else if(t.length===1&&t>="0"&&t<="9")o.name="number";else if(t.length===1&&t>="a"&&t<="z")o.name=t;else if(t.length===1&&t>="A"&&t<="Z")o.name=t.toLowerCase(),o.shift=!0;else if(r=_At.exec(t))o.meta=!0,o.shift=/^[A-Z]$/.test(r[1]);else if(r=HAt.exec(t)){let a=[...t];a[0]==="\x1B"&&a[1]==="\x1B"&&(o.option=!0);let n=[r[1],r[2],r[4],r[6]].filter(Boolean).join(""),u=(r[3]||r[5]||1)-1;o.ctrl=!!(u&4),o.meta=!!(u&10),o.shift=!!(u&1),o.code=n,o.name=qAt[n],o.shift=jAt(n)||o.shift,o.ctrl=GAt(n)||o.ctrl}return o};sk.listen=(t={},e)=>{let{stdin:r}=t;if(!r||r!==process.stdin&&!r.isTTY)throw new Error("Invalid stream passed");let o=lhe.createInterface({terminal:!0,input:r});lhe.emitKeypressEvents(r,o);let a=(A,p)=>e(A,sk(A,p),o),n=r.isRaw;return r.isTTY&&r.setRawMode(!0),r.on("keypress",a),o.resume(),()=>{r.isTTY&&r.setRawMode(n),r.removeListener("keypress",a),o.pause(),o.close()}};sk.action=(t,e,r)=>{let o={...UAt,...r};return e.ctrl?(e.action=o.ctrl[e.name],e):e.option&&o.option?(e.action=o.option[e.name],e):e.shift?(e.action=o.shift[e.name],e):(e.action=o.keys[e.name],e)};che.exports=sk});var fhe=_((Z_t,Ahe)=>{"use strict";Ahe.exports=t=>{t.timers=t.timers||{};let e=t.options.timers;if(!!e)for(let r of Object.keys(e)){let o=e[r];typeof o=="number"&&(o={interval:o}),YAt(t,r,o)}};function YAt(t,e,r={}){let o=t.timers[e]={name:e,start:Date.now(),ms:0,tick:0},a=r.interval||120;o.frames=r.frames||[],o.loading=!0;let n=setInterval(()=>{o.ms=Date.now()-o.start,o.tick++,t.render()},a);return o.stop=()=>{o.loading=!1,clearInterval(n)},Reflect.defineProperty(o,"interval",{value:n}),t.once("close",()=>o.stop()),o.stop}});var hhe=_(($_t,phe)=>{"use strict";var{define:WAt,width:KAt}=No(),N_=class{constructor(e){let r=e.options;WAt(this,"_prompt",e),this.type=e.type,this.name=e.name,this.message="",this.header="",this.footer="",this.error="",this.hint="",this.input="",this.cursor=0,this.index=0,this.lines=0,this.tick=0,this.prompt="",this.buffer="",this.width=KAt(r.stdout||process.stdout),Object.assign(this,r),this.name=this.name||this.message,this.message=this.message||this.name,this.symbols=e.symbols,this.styles=e.styles,this.required=new Set,this.cancelled=!1,this.submitted=!1}clone(){let e={...this};return e.status=this.status,e.buffer=Buffer.from(e.buffer),delete e.clone,e}set color(e){this._color=e}get color(){let e=this.prompt.styles;if(this.cancelled)return e.cancelled;if(this.submitted)return e.submitted;let r=this._color||e[this.status];return typeof r=="function"?r:e.pending}set loading(e){this._loading=e}get loading(){return typeof this._loading=="boolean"?this._loading:this.loadingChoices?"choices":!1}get status(){return this.cancelled?"cancelled":this.submitted?"submitted":"pending"}};phe.exports=N_});var dhe=_((e8t,ghe)=>{"use strict";var L_=No(),eo=Kc(),O_={default:eo.noop,noop:eo.noop,set inverse(t){this._inverse=t},get inverse(){return this._inverse||L_.inverse(this.primary)},set complement(t){this._complement=t},get complement(){return this._complement||L_.complement(this.primary)},primary:eo.cyan,success:eo.green,danger:eo.magenta,strong:eo.bold,warning:eo.yellow,muted:eo.dim,disabled:eo.gray,dark:eo.dim.gray,underline:eo.underline,set info(t){this._info=t},get info(){return this._info||this.primary},set em(t){this._em=t},get em(){return this._em||this.primary.underline},set heading(t){this._heading=t},get heading(){return this._heading||this.muted.underline},set pending(t){this._pending=t},get pending(){return this._pending||this.primary},set submitted(t){this._submitted=t},get submitted(){return this._submitted||this.success},set cancelled(t){this._cancelled=t},get cancelled(){return this._cancelled||this.danger},set typing(t){this._typing=t},get typing(){return this._typing||this.dim},set placeholder(t){this._placeholder=t},get placeholder(){return this._placeholder||this.primary.dim},set highlight(t){this._highlight=t},get highlight(){return this._highlight||this.inverse}};O_.merge=(t={})=>{t.styles&&typeof t.styles.enabled=="boolean"&&(eo.enabled=t.styles.enabled),t.styles&&typeof t.styles.visible=="boolean"&&(eo.visible=t.styles.visible);let e=L_.merge({},O_,t.styles);delete e.merge;for(let r of Object.keys(eo))e.hasOwnProperty(r)||Reflect.defineProperty(e,r,{get:()=>eo[r]});for(let r of Object.keys(eo.styles))e.hasOwnProperty(r)||Reflect.defineProperty(e,r,{get:()=>eo[r]});return e};ghe.exports=O_});var yhe=_((t8t,mhe)=>{"use strict";var M_=process.platform==="win32",Vf=Kc(),VAt=No(),U_={...Vf.symbols,upDownDoubleArrow:"\u21D5",upDownDoubleArrow2:"\u2B0D",upDownArrow:"\u2195",asterisk:"*",asterism:"\u2042",bulletWhite:"\u25E6",electricArrow:"\u2301",ellipsisLarge:"\u22EF",ellipsisSmall:"\u2026",fullBlock:"\u2588",identicalTo:"\u2261",indicator:Vf.symbols.check,leftAngle:"\u2039",mark:"\u203B",minus:"\u2212",multiplication:"\xD7",obelus:"\xF7",percent:"%",pilcrow:"\xB6",pilcrow2:"\u2761",pencilUpRight:"\u2710",pencilDownRight:"\u270E",pencilRight:"\u270F",plus:"+",plusMinus:"\xB1",pointRight:"\u261E",rightAngle:"\u203A",section:"\xA7",hexagon:{off:"\u2B21",on:"\u2B22",disabled:"\u2B22"},ballot:{on:"\u2611",off:"\u2610",disabled:"\u2612"},stars:{on:"\u2605",off:"\u2606",disabled:"\u2606"},folder:{on:"\u25BC",off:"\u25B6",disabled:"\u25B6"},prefix:{pending:Vf.symbols.question,submitted:Vf.symbols.check,cancelled:Vf.symbols.cross},separator:{pending:Vf.symbols.pointerSmall,submitted:Vf.symbols.middot,cancelled:Vf.symbols.middot},radio:{off:M_?"( )":"\u25EF",on:M_?"(*)":"\u25C9",disabled:M_?"(|)":"\u24BE"},numbers:["\u24EA","\u2460","\u2461","\u2462","\u2463","\u2464","\u2465","\u2466","\u2467","\u2468","\u2469","\u246A","\u246B","\u246C","\u246D","\u246E","\u246F","\u2470","\u2471","\u2472","\u2473","\u3251","\u3252","\u3253","\u3254","\u3255","\u3256","\u3257","\u3258","\u3259","\u325A","\u325B","\u325C","\u325D","\u325E","\u325F","\u32B1","\u32B2","\u32B3","\u32B4","\u32B5","\u32B6","\u32B7","\u32B8","\u32B9","\u32BA","\u32BB","\u32BC","\u32BD","\u32BE","\u32BF"]};U_.merge=t=>{let e=VAt.merge({},Vf.symbols,U_,t.symbols);return delete e.merge,e};mhe.exports=U_});var Che=_((r8t,Ehe)=>{"use strict";var JAt=dhe(),zAt=yhe(),XAt=No();Ehe.exports=t=>{t.options=XAt.merge({},t.options.theme,t.options),t.symbols=zAt.merge(t.options),t.styles=JAt.merge(t.options)}});var Dhe=_((Bhe,vhe)=>{"use strict";var whe=process.env.TERM_PROGRAM==="Apple_Terminal",ZAt=Kc(),__=No(),Vc=vhe.exports=Bhe,Di="\x1B[",Ihe="\x07",H_=!1,Ph=Vc.code={bell:Ihe,beep:Ihe,beginning:`${Di}G`,down:`${Di}J`,esc:Di,getPosition:`${Di}6n`,hide:`${Di}?25l`,line:`${Di}2K`,lineEnd:`${Di}K`,lineStart:`${Di}1K`,restorePosition:Di+(whe?"8":"u"),savePosition:Di+(whe?"7":"s"),screen:`${Di}2J`,show:`${Di}?25h`,up:`${Di}1J`},Gd=Vc.cursor={get hidden(){return H_},hide(){return H_=!0,Ph.hide},show(){return H_=!1,Ph.show},forward:(t=1)=>`${Di}${t}C`,backward:(t=1)=>`${Di}${t}D`,nextLine:(t=1)=>`${Di}E`.repeat(t),prevLine:(t=1)=>`${Di}F`.repeat(t),up:(t=1)=>t?`${Di}${t}A`:"",down:(t=1)=>t?`${Di}${t}B`:"",right:(t=1)=>t?`${Di}${t}C`:"",left:(t=1)=>t?`${Di}${t}D`:"",to(t,e){return e?`${Di}${e+1};${t+1}H`:`${Di}${t+1}G`},move(t=0,e=0){let r="";return r+=t<0?Gd.left(-t):t>0?Gd.right(t):"",r+=e<0?Gd.up(-e):e>0?Gd.down(e):"",r},restore(t={}){let{after:e,cursor:r,initial:o,input:a,prompt:n,size:u,value:A}=t;if(o=__.isPrimitive(o)?String(o):"",a=__.isPrimitive(a)?String(a):"",A=__.isPrimitive(A)?String(A):"",u){let p=Vc.cursor.up(u)+Vc.cursor.to(n.length),h=a.length-r;return h>0&&(p+=Vc.cursor.left(h)),p}if(A||e){let p=!a&&!!o?-o.length:-a.length+r;return e&&(p-=e.length),a===""&&o&&!n.includes(o)&&(p+=o.length),Vc.cursor.move(p)}}},q_=Vc.erase={screen:Ph.screen,up:Ph.up,down:Ph.down,line:Ph.line,lineEnd:Ph.lineEnd,lineStart:Ph.lineStart,lines(t){let e="";for(let r=0;r{if(!e)return q_.line+Gd.to(0);let r=n=>[...ZAt.unstyle(n)].length,o=t.split(/\r?\n/),a=0;for(let n of o)a+=1+Math.floor(Math.max(r(n)-1,0)/e);return(q_.line+Gd.prevLine()).repeat(a-1)+q_.line+Gd.to(0)}});var gC=_((n8t,Phe)=>{"use strict";var $At=ve("events"),She=Kc(),j_=uhe(),eft=fhe(),tft=hhe(),rft=Che(),Ra=No(),Yd=Dhe(),c2=class extends $At{constructor(e={}){super(),this.name=e.name,this.type=e.type,this.options=e,rft(this),eft(this),this.state=new tft(this),this.initial=[e.initial,e.default].find(r=>r!=null),this.stdout=e.stdout||process.stdout,this.stdin=e.stdin||process.stdin,this.scale=e.scale||1,this.term=this.options.term||process.env.TERM_PROGRAM,this.margin=ift(this.options.margin),this.setMaxListeners(0),nft(this)}async keypress(e,r={}){this.keypressed=!0;let o=j_.action(e,j_(e,r),this.options.actions);this.state.keypress=o,this.emit("keypress",e,o),this.emit("state",this.state.clone());let a=this.options[o.action]||this[o.action]||this.dispatch;if(typeof a=="function")return await a.call(this,e,o);this.alert()}alert(){delete this.state.alert,this.options.show===!1?this.emit("alert"):this.stdout.write(Yd.code.beep)}cursorHide(){this.stdout.write(Yd.cursor.hide()),Ra.onExit(()=>this.cursorShow())}cursorShow(){this.stdout.write(Yd.cursor.show())}write(e){!e||(this.stdout&&this.state.show!==!1&&this.stdout.write(e),this.state.buffer+=e)}clear(e=0){let r=this.state.buffer;this.state.buffer="",!(!r&&!e||this.options.show===!1)&&this.stdout.write(Yd.cursor.down(e)+Yd.clear(r,this.width))}restore(){if(this.state.closed||this.options.show===!1)return;let{prompt:e,after:r,rest:o}=this.sections(),{cursor:a,initial:n="",input:u="",value:A=""}=this,p=this.state.size=o.length,h={after:r,cursor:a,initial:n,input:u,prompt:e,size:p,value:A},E=Yd.cursor.restore(h);E&&this.stdout.write(E)}sections(){let{buffer:e,input:r,prompt:o}=this.state;o=She.unstyle(o);let a=She.unstyle(e),n=a.indexOf(o),u=a.slice(0,n),p=a.slice(n).split(` +`),h=p[0],E=p[p.length-1],v=(o+(r?" "+r:"")).length,x=ve.call(this,this.value),this.result=()=>o.call(this,this.value),typeof r.initial=="function"&&(this.initial=await r.initial.call(this,this)),typeof r.onRun=="function"&&await r.onRun.call(this,this),typeof r.onSubmit=="function"){let a=r.onSubmit.bind(this),n=this.submit.bind(this);delete this.options.onSubmit,this.submit=async()=>(await a(this.name,this.value,this),n())}await this.start(),await this.render()}render(){throw new Error("expected prompt to have a custom render method")}run(){return new Promise(async(e,r)=>{if(this.once("submit",e),this.once("cancel",r),await this.skip())return this.render=()=>{},this.submit();await this.initialize(),this.emit("run")})}async element(e,r,o){let{options:a,state:n,symbols:u,timers:A}=this,p=A&&A[e];n.timer=p;let h=a[e]||n[e]||u[e],E=r&&r[e]!=null?r[e]:await h;if(E==="")return E;let I=await this.resolve(E,n,r,o);return!I&&r&&r[e]?this.resolve(h,n,r,o):I}async prefix(){let e=await this.element("prefix")||this.symbols,r=this.timers&&this.timers.prefix,o=this.state;return o.timer=r,Ra.isObject(e)&&(e=e[o.status]||e.pending),Ra.hasColor(e)?e:(this.styles[o.status]||this.styles.pending)(e)}async message(){let e=await this.element("message");return Ra.hasColor(e)?e:this.styles.strong(e)}async separator(){let e=await this.element("separator")||this.symbols,r=this.timers&&this.timers.separator,o=this.state;o.timer=r;let a=e[o.status]||e.pending||o.separator,n=await this.resolve(a,o);return Ra.isObject(n)&&(n=n[o.status]||n.pending),Ra.hasColor(n)?n:this.styles.muted(n)}async pointer(e,r){let o=await this.element("pointer",e,r);if(typeof o=="string"&&Ra.hasColor(o))return o;if(o){let a=this.styles,n=this.index===r,u=n?a.primary:h=>h,A=await this.resolve(o[n?"on":"off"]||o,this.state),p=Ra.hasColor(A)?A:u(A);return n?p:" ".repeat(A.length)}}async indicator(e,r){let o=await this.element("indicator",e,r);if(typeof o=="string"&&Ra.hasColor(o))return o;if(o){let a=this.styles,n=e.enabled===!0,u=n?a.success:a.dark,A=o[n?"on":"off"]||o;return Ra.hasColor(A)?A:u(A)}return""}body(){return null}footer(){if(this.state.status==="pending")return this.element("footer")}header(){if(this.state.status==="pending")return this.element("header")}async hint(){if(this.state.status==="pending"&&!this.isValue(this.state.input)){let e=await this.element("hint");return Ra.hasColor(e)?e:this.styles.muted(e)}}error(e){return this.state.submitted?"":e||this.state.error}format(e){return e}result(e){return e}validate(e){return this.options.required===!0?this.isValue(e):!0}isValue(e){return e!=null&&e!==""}resolve(e,...r){return Ra.resolve(this,e,...r)}get base(){return c2.prototype}get style(){return this.styles[this.state.status]}get height(){return this.options.rows||Ra.height(this.stdout,25)}get width(){return this.options.columns||Ra.width(this.stdout,80)}get size(){return{width:this.width,height:this.height}}set cursor(e){this.state.cursor=e}get cursor(){return this.state.cursor}set input(e){this.state.input=e}get input(){return this.state.input}set value(e){this.state.value=e}get value(){let{input:e,value:r}=this.state,o=[r,e].find(this.isValue.bind(this));return this.isValue(o)?o:this.initial}static get prompt(){return e=>new this(e).run()}};function nft(t){let e=a=>t[a]===void 0||typeof t[a]=="function",r=["actions","choices","initial","margin","roles","styles","symbols","theme","timers","value"],o=["body","footer","error","header","hint","indicator","message","prefix","separator","skip"];for(let a of Object.keys(t.options)){if(r.includes(a)||/^on[A-Z]/.test(a))continue;let n=t.options[a];typeof n=="function"&&e(a)?o.includes(a)||(t[a]=n.bind(t)):typeof t[a]!="function"&&(t[a]=n)}}function ift(t){typeof t=="number"&&(t=[t,t,t,t]);let e=[].concat(t||[]),r=a=>a%2===0?` +`:" ",o=[];for(let a=0;a<4;a++){let n=r(a);e[a]?o.push(n.repeat(e[a])):o.push("")}return o}Phe.exports=c2});var khe=_((i8t,xhe)=>{"use strict";var sft=No(),bhe={default(t,e){return e},checkbox(t,e){throw new Error("checkbox role is not implemented yet")},editable(t,e){throw new Error("editable role is not implemented yet")},expandable(t,e){throw new Error("expandable role is not implemented yet")},heading(t,e){return e.disabled="",e.indicator=[e.indicator," "].find(r=>r!=null),e.message=e.message||"",e},input(t,e){throw new Error("input role is not implemented yet")},option(t,e){return bhe.default(t,e)},radio(t,e){throw new Error("radio role is not implemented yet")},separator(t,e){return e.disabled="",e.indicator=[e.indicator," "].find(r=>r!=null),e.message=e.message||t.symbols.line.repeat(5),e},spacer(t,e){return e}};xhe.exports=(t,e={})=>{let r=sft.merge({},bhe,e.roles);return r[t]||r.default}});var u2=_((s8t,Rhe)=>{"use strict";var oft=Kc(),aft=gC(),lft=khe(),ok=No(),{reorder:G_,scrollUp:cft,scrollDown:uft,isObject:Qhe,swap:Aft}=ok,Y_=class extends aft{constructor(e){super(e),this.cursorHide(),this.maxSelected=e.maxSelected||1/0,this.multiple=e.multiple||!1,this.initial=e.initial||0,this.delay=e.delay||0,this.longest=0,this.num=""}async initialize(){typeof this.options.initial=="function"&&(this.initial=await this.options.initial.call(this)),await this.reset(!0),await super.initialize()}async reset(){let{choices:e,initial:r,autofocus:o,suggest:a}=this.options;if(this.state._choices=[],this.state.choices=[],this.choices=await Promise.all(await this.toChoices(e)),this.choices.forEach(n=>n.enabled=!1),typeof a!="function"&&this.selectable.length===0)throw new Error("At least one choice must be selectable");Qhe(r)&&(r=Object.keys(r)),Array.isArray(r)?(o!=null&&(this.index=this.findIndex(o)),r.forEach(n=>this.enable(this.find(n))),await this.render()):(o!=null&&(r=o),typeof r=="string"&&(r=this.findIndex(r)),typeof r=="number"&&r>-1&&(this.index=Math.max(0,Math.min(r,this.choices.length)),this.enable(this.find(this.index)))),this.isDisabled(this.focused)&&await this.down()}async toChoices(e,r){this.state.loadingChoices=!0;let o=[],a=0,n=async(u,A)=>{typeof u=="function"&&(u=await u.call(this)),u instanceof Promise&&(u=await u);for(let p=0;p(this.state.loadingChoices=!1,u))}async toChoice(e,r,o){if(typeof e=="function"&&(e=await e.call(this,this)),e instanceof Promise&&(e=await e),typeof e=="string"&&(e={name:e}),e.normalized)return e;e.normalized=!0;let a=e.value;if(e=lft(e.role,this.options)(this,e),typeof e.disabled=="string"&&!e.hint&&(e.hint=e.disabled,e.disabled=!0),e.disabled===!0&&e.hint==null&&(e.hint="(disabled)"),e.index!=null)return e;e.name=e.name||e.key||e.title||e.value||e.message,e.message=e.message||e.name||"",e.value=[e.value,e.name].find(this.isValue.bind(this)),e.input="",e.index=r,e.cursor=0,ok.define(e,"parent",o),e.level=o?o.level+1:1,e.indent==null&&(e.indent=o?o.indent+" ":e.indent||""),e.path=o?o.path+"."+e.name:e.name,e.enabled=!!(this.multiple&&!this.isDisabled(e)&&(e.enabled||this.isSelected(e))),this.isDisabled(e)||(this.longest=Math.max(this.longest,oft.unstyle(e.message).length));let u={...e};return e.reset=(A=u.input,p=u.value)=>{for(let h of Object.keys(u))e[h]=u[h];e.input=A,e.value=p},a==null&&typeof e.initial=="function"&&(e.input=await e.initial.call(this,this.state,e,r)),e}async onChoice(e,r){this.emit("choice",e,r,this),typeof e.onChoice=="function"&&await e.onChoice.call(this,this.state,e,r)}async addChoice(e,r,o){let a=await this.toChoice(e,r,o);return this.choices.push(a),this.index=this.choices.length-1,this.limit=this.choices.length,a}async newItem(e,r,o){let a={name:"New choice name?",editable:!0,newChoice:!0,...e},n=await this.addChoice(a,r,o);return n.updateChoice=()=>{delete n.newChoice,n.name=n.message=n.input,n.input="",n.cursor=0},this.render()}indent(e){return e.indent==null?e.level>1?" ".repeat(e.level-1):"":e.indent}dispatch(e,r){if(this.multiple&&this[r.name])return this[r.name]();this.alert()}focus(e,r){return typeof r!="boolean"&&(r=e.enabled),r&&!e.enabled&&this.selected.length>=this.maxSelected?this.alert():(this.index=e.index,e.enabled=r&&!this.isDisabled(e),e)}space(){return this.multiple?(this.toggle(this.focused),this.render()):this.alert()}a(){if(this.maxSelectedr.enabled);return this.choices.forEach(r=>r.enabled=!e),this.render()}i(){return this.choices.length-this.selected.length>this.maxSelected?this.alert():(this.choices.forEach(e=>e.enabled=!e.enabled),this.render())}g(e=this.focused){return this.choices.some(r=>!!r.parent)?(this.toggle(e.parent&&!e.choices?e.parent:e),this.render()):this.a()}toggle(e,r){if(!e.enabled&&this.selected.length>=this.maxSelected)return this.alert();typeof r!="boolean"&&(r=!e.enabled),e.enabled=r,e.choices&&e.choices.forEach(a=>this.toggle(a,r));let o=e.parent;for(;o;){let a=o.choices.filter(n=>this.isDisabled(n));o.enabled=a.every(n=>n.enabled===!0),o=o.parent}return Fhe(this,this.choices),this.emit("toggle",e,this),e}enable(e){return this.selected.length>=this.maxSelected?this.alert():(e.enabled=!this.isDisabled(e),e.choices&&e.choices.forEach(this.enable.bind(this)),e)}disable(e){return e.enabled=!1,e.choices&&e.choices.forEach(this.disable.bind(this)),e}number(e){this.num+=e;let r=o=>{let a=Number(o);if(a>this.choices.length-1)return this.alert();let n=this.focused,u=this.choices.find(A=>a===A.index);if(!u.enabled&&this.selected.length>=this.maxSelected)return this.alert();if(this.visible.indexOf(u)===-1){let A=G_(this.choices),p=A.indexOf(u);if(n.index>p){let h=A.slice(p,p+this.limit),E=A.filter(I=>!h.includes(I));this.choices=h.concat(E)}else{let h=p-this.limit+1;this.choices=A.slice(h).concat(A.slice(0,h))}}return this.index=this.choices.indexOf(u),this.toggle(this.focused),this.render()};return clearTimeout(this.numberTimeout),new Promise(o=>{let a=this.choices.length,n=this.num,u=(A=!1,p)=>{clearTimeout(this.numberTimeout),A&&(p=r(n)),this.num="",o(p)};if(n==="0"||n.length===1&&Number(n+"0")>a)return u(!0);if(Number(n)>a)return u(!1,this.alert());this.numberTimeout=setTimeout(()=>u(!0),this.delay)})}home(){return this.choices=G_(this.choices),this.index=0,this.render()}end(){let e=this.choices.length-this.limit,r=G_(this.choices);return this.choices=r.slice(e).concat(r.slice(0,e)),this.index=this.limit-1,this.render()}first(){return this.index=0,this.render()}last(){return this.index=this.visible.length-1,this.render()}prev(){return this.visible.length<=1?this.alert():this.up()}next(){return this.visible.length<=1?this.alert():this.down()}right(){return this.cursor>=this.input.length?this.alert():(this.cursor++,this.render())}left(){return this.cursor<=0?this.alert():(this.cursor--,this.render())}up(){let e=this.choices.length,r=this.visible.length,o=this.index;return this.options.scroll===!1&&o===0?this.alert():e>r&&o===0?this.scrollUp():(this.index=(o-1%e+e)%e,this.isDisabled()?this.up():this.render())}down(){let e=this.choices.length,r=this.visible.length,o=this.index;return this.options.scroll===!1&&o===r-1?this.alert():e>r&&o===r-1?this.scrollDown():(this.index=(o+1)%e,this.isDisabled()?this.down():this.render())}scrollUp(e=0){return this.choices=cft(this.choices),this.index=e,this.isDisabled()?this.up():this.render()}scrollDown(e=this.visible.length-1){return this.choices=uft(this.choices),this.index=e,this.isDisabled()?this.down():this.render()}async shiftUp(){if(this.options.sort===!0){this.sorting=!0,this.swap(this.index-1),await this.up(),this.sorting=!1;return}return this.scrollUp(this.index)}async shiftDown(){if(this.options.sort===!0){this.sorting=!0,this.swap(this.index+1),await this.down(),this.sorting=!1;return}return this.scrollDown(this.index)}pageUp(){return this.visible.length<=1?this.alert():(this.limit=Math.max(this.limit-1,0),this.index=Math.min(this.limit-1,this.index),this._limit=this.limit,this.isDisabled()?this.up():this.render())}pageDown(){return this.visible.length>=this.choices.length?this.alert():(this.index=Math.max(0,this.index),this.limit=Math.min(this.limit+1,this.choices.length),this._limit=this.limit,this.isDisabled()?this.down():this.render())}swap(e){Aft(this.choices,this.index,e)}isDisabled(e=this.focused){return e&&["disabled","collapsed","hidden","completing","readonly"].some(o=>e[o]===!0)?!0:e&&e.role==="heading"}isEnabled(e=this.focused){if(Array.isArray(e))return e.every(r=>this.isEnabled(r));if(e.choices){let r=e.choices.filter(o=>!this.isDisabled(o));return e.enabled&&r.every(o=>this.isEnabled(o))}return e.enabled&&!this.isDisabled(e)}isChoice(e,r){return e.name===r||e.index===Number(r)}isSelected(e){return Array.isArray(this.initial)?this.initial.some(r=>this.isChoice(e,r)):this.isChoice(e,this.initial)}map(e=[],r="value"){return[].concat(e||[]).reduce((o,a)=>(o[a]=this.find(a,r),o),{})}filter(e,r){let a=typeof e=="function"?e:(A,p)=>[A.name,p].includes(e),u=(this.options.multiple?this.state._choices:this.choices).filter(a);return r?u.map(A=>A[r]):u}find(e,r){if(Qhe(e))return r?e[r]:e;let a=typeof e=="function"?e:(u,A)=>[u.name,A].includes(e),n=this.choices.find(a);if(n)return r?n[r]:n}findIndex(e){return this.choices.indexOf(this.find(e))}async submit(){let e=this.focused;if(!e)return this.alert();if(e.newChoice)return e.input?(e.updateChoice(),this.render()):this.alert();if(this.choices.some(u=>u.newChoice))return this.alert();let{reorder:r,sort:o}=this.options,a=this.multiple===!0,n=this.selected;return n===void 0?this.alert():(Array.isArray(n)&&r!==!1&&o!==!0&&(n=ok.reorder(n)),this.value=a?n.map(u=>u.name):n.name,super.submit())}set choices(e=[]){this.state._choices=this.state._choices||[],this.state.choices=e;for(let r of e)this.state._choices.some(o=>o.name===r.name)||this.state._choices.push(r);if(!this._initial&&this.options.initial){this._initial=!0;let r=this.initial;if(typeof r=="string"||typeof r=="number"){let o=this.find(r);o&&(this.initial=o.index,this.focus(o,!0))}}}get choices(){return Fhe(this,this.state.choices||[])}set visible(e){this.state.visible=e}get visible(){return(this.state.visible||this.choices).slice(0,this.limit)}set limit(e){this.state.limit=e}get limit(){let{state:e,options:r,choices:o}=this,a=e.limit||this._limit||r.limit||o.length;return Math.min(a,this.height)}set value(e){super.value=e}get value(){return typeof super.value!="string"&&super.value===this.initial?this.input:super.value}set index(e){this.state.index=e}get index(){return Math.max(0,this.state?this.state.index:0)}get enabled(){return this.filter(this.isEnabled.bind(this))}get focused(){let e=this.choices[this.index];return e&&this.state.submitted&&this.multiple!==!0&&(e.enabled=!0),e}get selectable(){return this.choices.filter(e=>!this.isDisabled(e))}get selected(){return this.multiple?this.enabled:this.focused}};function Fhe(t,e){if(e instanceof Promise)return e;if(typeof e=="function"){if(ok.isAsyncFn(e))return e;e=e.call(t,t)}for(let r of e){if(Array.isArray(r.choices)){let o=r.choices.filter(a=>!t.isDisabled(a));r.enabled=o.every(a=>a.enabled===!0)}t.isDisabled(r)===!0&&delete r.enabled}return e}Rhe.exports=Y_});var bh=_((o8t,The)=>{"use strict";var fft=u2(),W_=No(),K_=class extends fft{constructor(e){super(e),this.emptyError=this.options.emptyError||"No items were selected"}async dispatch(e,r){if(this.multiple)return this[r.name]?await this[r.name](e,r):await super.dispatch(e,r);this.alert()}separator(){if(this.options.separator)return super.separator();let e=this.styles.muted(this.symbols.ellipsis);return this.state.submitted?super.separator():e}pointer(e,r){return!this.multiple||this.options.pointer?super.pointer(e,r):""}indicator(e,r){return this.multiple?super.indicator(e,r):""}choiceMessage(e,r){let o=this.resolve(e.message,this.state,e,r);return e.role==="heading"&&!W_.hasColor(o)&&(o=this.styles.strong(o)),this.resolve(o,this.state,e,r)}choiceSeparator(){return":"}async renderChoice(e,r){await this.onChoice(e,r);let o=this.index===r,a=await this.pointer(e,r),n=await this.indicator(e,r)+(e.pad||""),u=await this.resolve(e.hint,this.state,e,r);u&&!W_.hasColor(u)&&(u=this.styles.muted(u));let A=this.indent(e),p=await this.choiceMessage(e,r),h=()=>[this.margin[3],A+a+n,p,this.margin[1],u].filter(Boolean).join(" ");return e.role==="heading"?h():e.disabled?(W_.hasColor(p)||(p=this.styles.disabled(p)),h()):(o&&(p=this.styles.em(p)),h())}async renderChoices(){if(this.state.loading==="choices")return this.styles.warning("Loading choices");if(this.state.submitted)return"";let e=this.visible.map(async(n,u)=>await this.renderChoice(n,u)),r=await Promise.all(e);r.length||r.push(this.styles.danger("No matching choices"));let o=this.margin[0]+r.join(` +`),a;return this.options.choicesHeader&&(a=await this.resolve(this.options.choicesHeader,this.state)),[a,o].filter(Boolean).join(` +`)}format(){return!this.state.submitted||this.state.cancelled?"":Array.isArray(this.selected)?this.selected.map(e=>this.styles.primary(e.name)).join(", "):this.styles.primary(this.selected.name)}async render(){let{submitted:e,size:r}=this.state,o="",a=await this.header(),n=await this.prefix(),u=await this.separator(),A=await this.message();this.options.promptLine!==!1&&(o=[n,A,u,""].join(" "),this.state.prompt=o);let p=await this.format(),h=await this.error()||await this.hint(),E=await this.renderChoices(),I=await this.footer();p&&(o+=p),h&&!o.includes(h)&&(o+=" "+h),e&&!p&&!E.trim()&&this.multiple&&this.emptyError!=null&&(o+=this.styles.danger(this.emptyError)),this.clear(r),this.write([a,o,E,I].filter(Boolean).join(` +`)),this.write(this.margin[2]),this.restore()}};The.exports=K_});var Lhe=_((a8t,Nhe)=>{"use strict";var pft=bh(),hft=(t,e)=>{let r=t.toLowerCase();return o=>{let n=o.toLowerCase().indexOf(r),u=e(o.slice(n,n+r.length));return n>=0?o.slice(0,n)+u+o.slice(n+r.length):o}},V_=class extends pft{constructor(e){super(e),this.cursorShow()}moveCursor(e){this.state.cursor+=e}dispatch(e){return this.append(e)}space(e){return this.options.multiple?super.space(e):this.append(e)}append(e){let{cursor:r,input:o}=this.state;return this.input=o.slice(0,r)+e+o.slice(r),this.moveCursor(1),this.complete()}delete(){let{cursor:e,input:r}=this.state;return r?(this.input=r.slice(0,e-1)+r.slice(e),this.moveCursor(-1),this.complete()):this.alert()}deleteForward(){let{cursor:e,input:r}=this.state;return r[e]===void 0?this.alert():(this.input=`${r}`.slice(0,e)+`${r}`.slice(e+1),this.complete())}number(e){return this.append(e)}async complete(){this.completing=!0,this.choices=await this.suggest(this.input,this.state._choices),this.state.limit=void 0,this.index=Math.min(Math.max(this.visible.length-1,0),this.index),await this.render(),this.completing=!1}suggest(e=this.input,r=this.state._choices){if(typeof this.options.suggest=="function")return this.options.suggest.call(this,e,r);let o=e.toLowerCase();return r.filter(a=>a.message.toLowerCase().includes(o))}pointer(){return""}format(){if(!this.focused)return this.input;if(this.options.multiple&&this.state.submitted)return this.selected.map(e=>this.styles.primary(e.message)).join(", ");if(this.state.submitted){let e=this.value=this.input=this.focused.value;return this.styles.primary(e)}return this.input}async render(){if(this.state.status!=="pending")return super.render();let e=this.options.highlight?this.options.highlight.bind(this):this.styles.placeholder,r=hft(this.input,e),o=this.choices;this.choices=o.map(a=>({...a,message:r(a.message)})),await super.render(),this.choices=o}submit(){return this.options.multiple&&(this.value=this.selected.map(e=>e.name)),super.submit()}};Nhe.exports=V_});var z_=_((l8t,Ohe)=>{"use strict";var J_=No();Ohe.exports=(t,e={})=>{t.cursorHide();let{input:r="",initial:o="",pos:a,showCursor:n=!0,color:u}=e,A=u||t.styles.placeholder,p=J_.inverse(t.styles.primary),h=R=>p(t.styles.black(R)),E=r,I=" ",v=h(I);if(t.blink&&t.blink.off===!0&&(h=R=>R,v=""),n&&a===0&&o===""&&r==="")return h(I);if(n&&a===0&&(r===o||r===""))return h(o[0])+A(o.slice(1));o=J_.isPrimitive(o)?`${o}`:"",r=J_.isPrimitive(r)?`${r}`:"";let x=o&&o.startsWith(r)&&o!==r,C=x?h(o[r.length]):v;if(a!==r.length&&n===!0&&(E=r.slice(0,a)+h(r[a])+r.slice(a+1),C=""),n===!1&&(C=""),x){let R=t.styles.unstyle(E+C);return E+C+A(o.slice(R.length))}return E+C}});var ak=_((c8t,Mhe)=>{"use strict";var gft=Kc(),dft=bh(),mft=z_(),X_=class extends dft{constructor(e){super({...e,multiple:!0}),this.type="form",this.initial=this.options.initial,this.align=[this.options.align,"right"].find(r=>r!=null),this.emptyError="",this.values={}}async reset(e){return await super.reset(),e===!0&&(this._index=this.index),this.index=this._index,this.values={},this.choices.forEach(r=>r.reset&&r.reset()),this.render()}dispatch(e){return!!e&&this.append(e)}append(e){let r=this.focused;if(!r)return this.alert();let{cursor:o,input:a}=r;return r.value=r.input=a.slice(0,o)+e+a.slice(o),r.cursor++,this.render()}delete(){let e=this.focused;if(!e||e.cursor<=0)return this.alert();let{cursor:r,input:o}=e;return e.value=e.input=o.slice(0,r-1)+o.slice(r),e.cursor--,this.render()}deleteForward(){let e=this.focused;if(!e)return this.alert();let{cursor:r,input:o}=e;if(o[r]===void 0)return this.alert();let a=`${o}`.slice(0,r)+`${o}`.slice(r+1);return e.value=e.input=a,this.render()}right(){let e=this.focused;return e?e.cursor>=e.input.length?this.alert():(e.cursor++,this.render()):this.alert()}left(){let e=this.focused;return e?e.cursor<=0?this.alert():(e.cursor--,this.render()):this.alert()}space(e,r){return this.dispatch(e,r)}number(e,r){return this.dispatch(e,r)}next(){let e=this.focused;if(!e)return this.alert();let{initial:r,input:o}=e;return r&&r.startsWith(o)&&o!==r?(e.value=e.input=r,e.cursor=e.value.length,this.render()):super.next()}prev(){let e=this.focused;return e?e.cursor===0?super.prev():(e.value=e.input="",e.cursor=0,this.render()):this.alert()}separator(){return""}format(e){return this.state.submitted?"":super.format(e)}pointer(){return""}indicator(e){return e.input?"\u29BF":"\u2299"}async choiceSeparator(e,r){let o=await this.resolve(e.separator,this.state,e,r)||":";return o?" "+this.styles.disabled(o):""}async renderChoice(e,r){await this.onChoice(e,r);let{state:o,styles:a}=this,{cursor:n,initial:u="",name:A,hint:p,input:h=""}=e,{muted:E,submitted:I,primary:v,danger:x}=a,C=p,R=this.index===r,L=e.validate||(()=>!0),U=await this.choiceSeparator(e,r),J=e.message;this.align==="right"&&(J=J.padStart(this.longest+1," ")),this.align==="left"&&(J=J.padEnd(this.longest+1," "));let te=this.values[A]=h||u,ae=h?"success":"dark";await L.call(e,te,this.state)!==!0&&(ae="danger");let fe=a[ae],ce=fe(await this.indicator(e,r))+(e.pad||""),me=this.indent(e),he=()=>[me,ce,J+U,h,C].filter(Boolean).join(" ");if(o.submitted)return J=gft.unstyle(J),h=I(h),C="",he();if(e.format)h=await e.format.call(this,h,e,r);else{let Be=this.styles.muted;h=mft(this,{input:h,initial:u,pos:n,showCursor:R,color:Be})}return this.isValue(h)||(h=this.styles.muted(this.symbols.ellipsis)),e.result&&(this.values[A]=await e.result.call(this,te,e,r)),R&&(J=v(J)),e.error?h+=(h?" ":"")+x(e.error.trim()):e.hint&&(h+=(h?" ":"")+E(e.hint.trim())),he()}async submit(){return this.value=this.values,super.base.submit.call(this)}};Mhe.exports=X_});var Z_=_((u8t,_he)=>{"use strict";var yft=ak(),Eft=()=>{throw new Error("expected prompt to have a custom authenticate method")},Uhe=(t=Eft)=>{class e extends yft{constructor(o){super(o)}async submit(){this.value=await t.call(this,this.values,this.state),super.base.submit.call(this)}static create(o){return Uhe(o)}}return e};_he.exports=Uhe()});var jhe=_((A8t,qhe)=>{"use strict";var Cft=Z_();function wft(t,e){return t.username===this.options.username&&t.password===this.options.password}var Hhe=(t=wft)=>{let e=[{name:"username",message:"username"},{name:"password",message:"password",format(o){return this.options.showPassword?o:(this.state.submitted?this.styles.primary:this.styles.muted)(this.symbols.asterisk.repeat(o.length))}}];class r extends Cft.create(t){constructor(a){super({...a,choices:e})}static create(a){return Hhe(a)}}return r};qhe.exports=Hhe()});var lk=_((f8t,Ghe)=>{"use strict";var Ift=gC(),{isPrimitive:Bft,hasColor:vft}=No(),$_=class extends Ift{constructor(e){super(e),this.cursorHide()}async initialize(){let e=await this.resolve(this.initial,this.state);this.input=await this.cast(e),await super.initialize()}dispatch(e){return this.isValue(e)?(this.input=e,this.submit()):this.alert()}format(e){let{styles:r,state:o}=this;return o.submitted?r.success(e):r.primary(e)}cast(e){return this.isTrue(e)}isTrue(e){return/^[ty1]/i.test(e)}isFalse(e){return/^[fn0]/i.test(e)}isValue(e){return Bft(e)&&(this.isTrue(e)||this.isFalse(e))}async hint(){if(this.state.status==="pending"){let e=await this.element("hint");return vft(e)?e:this.styles.muted(e)}}async render(){let{input:e,size:r}=this.state,o=await this.prefix(),a=await this.separator(),n=await this.message(),u=this.styles.muted(this.default),A=[o,n,u,a].filter(Boolean).join(" ");this.state.prompt=A;let p=await this.header(),h=this.value=this.cast(e),E=await this.format(h),I=await this.error()||await this.hint(),v=await this.footer();I&&!A.includes(I)&&(E+=" "+I),A+=" "+E,this.clear(r),this.write([p,A,v].filter(Boolean).join(` +`)),this.restore()}set value(e){super.value=e}get value(){return this.cast(super.value)}};Ghe.exports=$_});var Whe=_((p8t,Yhe)=>{"use strict";var Dft=lk(),e8=class extends Dft{constructor(e){super(e),this.default=this.options.default||(this.initial?"(Y/n)":"(y/N)")}};Yhe.exports=e8});var Vhe=_((h8t,Khe)=>{"use strict";var Sft=bh(),Pft=ak(),dC=Pft.prototype,t8=class extends Sft{constructor(e){super({...e,multiple:!0}),this.align=[this.options.align,"left"].find(r=>r!=null),this.emptyError="",this.values={}}dispatch(e,r){let o=this.focused,a=o.parent||{};return!o.editable&&!a.editable&&(e==="a"||e==="i")?super[e]():dC.dispatch.call(this,e,r)}append(e,r){return dC.append.call(this,e,r)}delete(e,r){return dC.delete.call(this,e,r)}space(e){return this.focused.editable?this.append(e):super.space()}number(e){return this.focused.editable?this.append(e):super.number(e)}next(){return this.focused.editable?dC.next.call(this):super.next()}prev(){return this.focused.editable?dC.prev.call(this):super.prev()}async indicator(e,r){let o=e.indicator||"",a=e.editable?o:super.indicator(e,r);return await this.resolve(a,this.state,e,r)||""}indent(e){return e.role==="heading"?"":e.editable?" ":" "}async renderChoice(e,r){return e.indent="",e.editable?dC.renderChoice.call(this,e,r):super.renderChoice(e,r)}error(){return""}footer(){return this.state.error}async validate(){let e=!0;for(let r of this.choices){if(typeof r.validate!="function"||r.role==="heading")continue;let o=r.parent?this.value[r.parent.name]:this.value;if(r.editable?o=r.value===r.name?r.initial||"":r.value:this.isDisabled(r)||(o=r.enabled===!0),e=await r.validate(o,this.state),e!==!0)break}return e!==!0&&(this.state.error=typeof e=="string"?e:"Invalid Input"),e}submit(){if(this.focused.newChoice===!0)return super.submit();if(this.choices.some(e=>e.newChoice))return this.alert();this.value={};for(let e of this.choices){let r=e.parent?this.value[e.parent.name]:this.value;if(e.role==="heading"){this.value[e.name]={};continue}e.editable?r[e.name]=e.value===e.name?e.initial||"":e.value:this.isDisabled(e)||(r[e.name]=e.enabled===!0)}return this.base.submit.call(this)}};Khe.exports=t8});var Wd=_((g8t,Jhe)=>{"use strict";var bft=gC(),xft=z_(),{isPrimitive:kft}=No(),r8=class extends bft{constructor(e){super(e),this.initial=kft(this.initial)?String(this.initial):"",this.initial&&this.cursorHide(),this.state.prevCursor=0,this.state.clipboard=[]}async keypress(e,r={}){let o=this.state.prevKeypress;return this.state.prevKeypress=r,this.options.multiline===!0&&r.name==="return"&&(!o||o.name!=="return")?this.append(` +`,r):super.keypress(e,r)}moveCursor(e){this.cursor+=e}reset(){return this.input=this.value="",this.cursor=0,this.render()}dispatch(e,r){if(!e||r.ctrl||r.code)return this.alert();this.append(e)}append(e){let{cursor:r,input:o}=this.state;this.input=`${o}`.slice(0,r)+e+`${o}`.slice(r),this.moveCursor(String(e).length),this.render()}insert(e){this.append(e)}delete(){let{cursor:e,input:r}=this.state;if(e<=0)return this.alert();this.input=`${r}`.slice(0,e-1)+`${r}`.slice(e),this.moveCursor(-1),this.render()}deleteForward(){let{cursor:e,input:r}=this.state;if(r[e]===void 0)return this.alert();this.input=`${r}`.slice(0,e)+`${r}`.slice(e+1),this.render()}cutForward(){let e=this.cursor;if(this.input.length<=e)return this.alert();this.state.clipboard.push(this.input.slice(e)),this.input=this.input.slice(0,e),this.render()}cutLeft(){let e=this.cursor;if(e===0)return this.alert();let r=this.input.slice(0,e),o=this.input.slice(e),a=r.split(" ");this.state.clipboard.push(a.pop()),this.input=a.join(" "),this.cursor=this.input.length,this.input+=o,this.render()}paste(){if(!this.state.clipboard.length)return this.alert();this.insert(this.state.clipboard.pop()),this.render()}toggleCursor(){this.state.prevCursor?(this.cursor=this.state.prevCursor,this.state.prevCursor=0):(this.state.prevCursor=this.cursor,this.cursor=0),this.render()}first(){this.cursor=0,this.render()}last(){this.cursor=this.input.length-1,this.render()}next(){let e=this.initial!=null?String(this.initial):"";if(!e||!e.startsWith(this.input))return this.alert();this.input=this.initial,this.cursor=this.initial.length,this.render()}prev(){if(!this.input)return this.alert();this.reset()}backward(){return this.left()}forward(){return this.right()}right(){return this.cursor>=this.input.length?this.alert():(this.moveCursor(1),this.render())}left(){return this.cursor<=0?this.alert():(this.moveCursor(-1),this.render())}isValue(e){return!!e}async format(e=this.value){let r=await this.resolve(this.initial,this.state);return this.state.submitted?this.styles.submitted(e||r):xft(this,{input:e,initial:r,pos:this.cursor})}async render(){let e=this.state.size,r=await this.prefix(),o=await this.separator(),a=await this.message(),n=[r,a,o].filter(Boolean).join(" ");this.state.prompt=n;let u=await this.header(),A=await this.format(),p=await this.error()||await this.hint(),h=await this.footer();p&&!A.includes(p)&&(A+=" "+p),n+=" "+A,this.clear(e),this.write([u,n,h].filter(Boolean).join(` +`)),this.restore()}};Jhe.exports=r8});var Xhe=_((d8t,zhe)=>{"use strict";var Qft=t=>t.filter((e,r)=>t.lastIndexOf(e)===r),ck=t=>Qft(t).filter(Boolean);zhe.exports=(t,e={},r="")=>{let{past:o=[],present:a=""}=e,n,u;switch(t){case"prev":case"undo":return n=o.slice(0,o.length-1),u=o[o.length-1]||"",{past:ck([r,...n]),present:u};case"next":case"redo":return n=o.slice(1),u=o[0]||"",{past:ck([...n,r]),present:u};case"save":return{past:ck([...o,r]),present:""};case"remove":return u=ck(o.filter(A=>A!==r)),a="",u.length&&(a=u.pop()),{past:u,present:a};default:throw new Error(`Invalid action: "${t}"`)}}});var i8=_((m8t,$he)=>{"use strict";var Fft=Wd(),Zhe=Xhe(),n8=class extends Fft{constructor(e){super(e);let r=this.options.history;if(r&&r.store){let o=r.values||this.initial;this.autosave=!!r.autosave,this.store=r.store,this.data=this.store.get("values")||{past:[],present:o},this.initial=this.data.present||this.data.past[this.data.past.length-1]}}completion(e){return this.store?(this.data=Zhe(e,this.data,this.input),this.data.present?(this.input=this.data.present,this.cursor=this.input.length,this.render()):this.alert()):this.alert()}altUp(){return this.completion("prev")}altDown(){return this.completion("next")}prev(){return this.save(),super.prev()}save(){!this.store||(this.data=Zhe("save",this.data,this.input),this.store.set("values",this.data))}submit(){return this.store&&this.autosave===!0&&this.save(),super.submit()}};$he.exports=n8});var t0e=_((y8t,e0e)=>{"use strict";var Rft=Wd(),s8=class extends Rft{format(){return""}};e0e.exports=s8});var n0e=_((E8t,r0e)=>{"use strict";var Tft=Wd(),o8=class extends Tft{constructor(e={}){super(e),this.sep=this.options.separator||/, */,this.initial=e.initial||""}split(e=this.value){return e?String(e).split(this.sep):[]}format(){let e=this.state.submitted?this.styles.primary:r=>r;return this.list.map(e).join(", ")}async submit(e){let r=this.state.error||await this.validate(this.list,this.state);return r!==!0?(this.state.error=r,super.submit()):(this.value=this.list,super.submit())}get list(){return this.split()}};r0e.exports=o8});var s0e=_((C8t,i0e)=>{"use strict";var Nft=bh(),a8=class extends Nft{constructor(e){super({...e,multiple:!0})}};i0e.exports=a8});var c8=_((w8t,o0e)=>{"use strict";var Lft=Wd(),l8=class extends Lft{constructor(e={}){super({style:"number",...e}),this.min=this.isValue(e.min)?this.toNumber(e.min):-1/0,this.max=this.isValue(e.max)?this.toNumber(e.max):1/0,this.delay=e.delay!=null?e.delay:1e3,this.float=e.float!==!1,this.round=e.round===!0||e.float===!1,this.major=e.major||10,this.minor=e.minor||1,this.initial=e.initial!=null?e.initial:"",this.input=String(this.initial),this.cursor=this.input.length,this.cursorShow()}append(e){return!/[-+.]/.test(e)||e==="."&&this.input.includes(".")?this.alert("invalid number"):super.append(e)}number(e){return super.append(e)}next(){return this.input&&this.input!==this.initial?this.alert():this.isValue(this.initial)?(this.input=this.initial,this.cursor=String(this.initial).length,this.render()):this.alert()}up(e){let r=e||this.minor,o=this.toNumber(this.input);return o>this.max+r?this.alert():(this.input=`${o+r}`,this.render())}down(e){let r=e||this.minor,o=this.toNumber(this.input);return othis.isValue(r));return this.value=this.toNumber(e||0),super.submit()}};o0e.exports=l8});var l0e=_((I8t,a0e)=>{a0e.exports=c8()});var u0e=_((B8t,c0e)=>{"use strict";var Oft=Wd(),u8=class extends Oft{constructor(e){super(e),this.cursorShow()}format(e=this.input){return this.keypressed?(this.state.submitted?this.styles.primary:this.styles.muted)(this.symbols.asterisk.repeat(e.length)):""}};c0e.exports=u8});var p0e=_((v8t,f0e)=>{"use strict";var Mft=Kc(),Uft=u2(),A0e=No(),A8=class extends Uft{constructor(e={}){super(e),this.widths=[].concat(e.messageWidth||50),this.align=[].concat(e.align||"left"),this.linebreak=e.linebreak||!1,this.edgeLength=e.edgeLength||3,this.newline=e.newline||` + `;let r=e.startNumber||1;typeof this.scale=="number"&&(this.scaleKey=!1,this.scale=Array(this.scale).fill(0).map((o,a)=>({name:a+r})))}async reset(){return this.tableized=!1,await super.reset(),this.render()}tableize(){if(this.tableized===!0)return;this.tableized=!0;let e=0;for(let r of this.choices){e=Math.max(e,r.message.length),r.scaleIndex=r.initial||2,r.scale=[];for(let o=0;o=this.scale.length-1?this.alert():(e.scaleIndex++,this.render())}left(){let e=this.focused;return e.scaleIndex<=0?this.alert():(e.scaleIndex--,this.render())}indent(){return""}format(){return this.state.submitted?this.choices.map(r=>this.styles.info(r.index)).join(", "):""}pointer(){return""}renderScaleKey(){return this.scaleKey===!1||this.state.submitted?"":["",...this.scale.map(o=>` ${o.name} - ${o.message}`)].map(o=>this.styles.muted(o)).join(` +`)}renderScaleHeading(e){let r=this.scale.map(p=>p.name);typeof this.options.renderScaleHeading=="function"&&(r=this.options.renderScaleHeading.call(this,e));let o=this.scaleLength-r.join("").length,a=Math.round(o/(r.length-1)),u=r.map(p=>this.styles.strong(p)).join(" ".repeat(a)),A=" ".repeat(this.widths[0]);return this.margin[3]+A+this.margin[1]+u}scaleIndicator(e,r,o){if(typeof this.options.scaleIndicator=="function")return this.options.scaleIndicator.call(this,e,r,o);let a=e.scaleIndex===r.index;return r.disabled?this.styles.hint(this.symbols.radio.disabled):a?this.styles.success(this.symbols.radio.on):this.symbols.radio.off}renderScale(e,r){let o=e.scale.map(n=>this.scaleIndicator(e,n,r)),a=this.term==="Hyper"?"":" ";return o.join(a+this.symbols.line.repeat(this.edgeLength))}async renderChoice(e,r){await this.onChoice(e,r);let o=this.index===r,a=await this.pointer(e,r),n=await e.hint;n&&!A0e.hasColor(n)&&(n=this.styles.muted(n));let u=C=>this.margin[3]+C.replace(/\s+$/,"").padEnd(this.widths[0]," "),A=this.newline,p=this.indent(e),h=await this.resolve(e.message,this.state,e,r),E=await this.renderScale(e,r),I=this.margin[1]+this.margin[3];this.scaleLength=Mft.unstyle(E).length,this.widths[0]=Math.min(this.widths[0],this.width-this.scaleLength-I.length);let x=A0e.wordWrap(h,{width:this.widths[0],newline:A}).split(` +`).map(C=>u(C)+this.margin[1]);return o&&(E=this.styles.info(E),x=x.map(C=>this.styles.info(C))),x[0]+=E,this.linebreak&&x.push(""),[p+a,x.join(` +`)].filter(Boolean)}async renderChoices(){if(this.state.submitted)return"";this.tableize();let e=this.visible.map(async(a,n)=>await this.renderChoice(a,n)),r=await Promise.all(e),o=await this.renderScaleHeading();return this.margin[0]+[o,...r.map(a=>a.join(" "))].join(` +`)}async render(){let{submitted:e,size:r}=this.state,o=await this.prefix(),a=await this.separator(),n=await this.message(),u="";this.options.promptLine!==!1&&(u=[o,n,a,""].join(" "),this.state.prompt=u);let A=await this.header(),p=await this.format(),h=await this.renderScaleKey(),E=await this.error()||await this.hint(),I=await this.renderChoices(),v=await this.footer(),x=this.emptyError;p&&(u+=p),E&&!u.includes(E)&&(u+=" "+E),e&&!p&&!I.trim()&&this.multiple&&x!=null&&(u+=this.styles.danger(x)),this.clear(r),this.write([A,u,h,I,v].filter(Boolean).join(` +`)),this.state.submitted||this.write(this.margin[2]),this.restore()}submit(){this.value={};for(let e of this.choices)this.value[e.name]=e.scaleIndex;return this.base.submit.call(this)}};f0e.exports=A8});var d0e=_((D8t,g0e)=>{"use strict";var h0e=Kc(),_ft=(t="")=>typeof t=="string"?t.replace(/^['"]|['"]$/g,""):"",p8=class{constructor(e){this.name=e.key,this.field=e.field||{},this.value=_ft(e.initial||this.field.initial||""),this.message=e.message||this.name,this.cursor=0,this.input="",this.lines=[]}},Hft=async(t={},e={},r=o=>o)=>{let o=new Set,a=t.fields||[],n=t.template,u=[],A=[],p=[],h=1;typeof n=="function"&&(n=await n());let E=-1,I=()=>n[++E],v=()=>n[E+1],x=C=>{C.line=h,u.push(C)};for(x({type:"bos",value:""});Eae.name===U.key);U.field=a.find(ae=>ae.name===U.key),te||(te=new p8(U),A.push(te)),te.lines.push(U.line-1);continue}let R=u[u.length-1];R.type==="text"&&R.line===h?R.value+=C:x({type:"text",value:C})}return x({type:"eos",value:""}),{input:n,tabstops:u,unique:o,keys:p,items:A}};g0e.exports=async t=>{let e=t.options,r=new Set(e.required===!0?[]:e.required||[]),o={...e.values,...e.initial},{tabstops:a,items:n,keys:u}=await Hft(e,o),A=f8("result",t,e),p=f8("format",t,e),h=f8("validate",t,e,!0),E=t.isValue.bind(t);return async(I={},v=!1)=>{let x=0;I.required=r,I.items=n,I.keys=u,I.output="";let C=async(J,te,ae,fe)=>{let ce=await h(J,te,ae,fe);return ce===!1?"Invalid field "+ae.name:ce};for(let J of a){let te=J.value,ae=J.key;if(J.type!=="template"){te&&(I.output+=te);continue}if(J.type==="template"){let fe=n.find(we=>we.name===ae);e.required===!0&&I.required.add(fe.name);let ce=[fe.input,I.values[fe.value],fe.value,te].find(E),he=(fe.field||{}).message||J.inner;if(v){let we=await C(I.values[ae],I,fe,x);if(we&&typeof we=="string"||we===!1){I.invalid.set(ae,we);continue}I.invalid.delete(ae);let g=await A(I.values[ae],I,fe,x);I.output+=h0e.unstyle(g);continue}fe.placeholder=!1;let Be=te;te=await p(te,I,fe,x),ce!==te?(I.values[ae]=ce,te=t.styles.typing(ce),I.missing.delete(he)):(I.values[ae]=void 0,ce=`<${he}>`,te=t.styles.primary(ce),fe.placeholder=!0,I.required.has(ae)&&I.missing.add(he)),I.missing.has(he)&&I.validating&&(te=t.styles.warning(ce)),I.invalid.has(ae)&&I.validating&&(te=t.styles.danger(ce)),x===I.index&&(Be!==te?te=t.styles.underline(te):te=t.styles.heading(h0e.unstyle(te))),x++}te&&(I.output+=te)}let R=I.output.split(` +`).map(J=>" "+J),L=n.length,U=0;for(let J of n)I.invalid.has(J.name)&&J.lines.forEach(te=>{R[te][0]===" "&&(R[te]=I.styles.danger(I.symbols.bullet)+R[te].slice(1))}),t.isValue(I.values[J.name])&&U++;return I.completed=(U/L*100).toFixed(0),I.output=R.join(` +`),I.output}};function f8(t,e,r,o){return(a,n,u,A)=>typeof u.field[t]=="function"?u.field[t].call(e,a,n,u,A):[o,a].find(p=>e.isValue(p))}});var y0e=_((S8t,m0e)=>{"use strict";var qft=Kc(),jft=d0e(),Gft=gC(),h8=class extends Gft{constructor(e){super(e),this.cursorHide(),this.reset(!0)}async initialize(){this.interpolate=await jft(this),await super.initialize()}async reset(e){this.state.keys=[],this.state.invalid=new Map,this.state.missing=new Set,this.state.completed=0,this.state.values={},e!==!0&&(await this.initialize(),await this.render())}moveCursor(e){let r=this.getItem();this.cursor+=e,r.cursor+=e}dispatch(e,r){if(!r.code&&!r.ctrl&&e!=null&&this.getItem()){this.append(e,r);return}this.alert()}append(e,r){let o=this.getItem(),a=o.input.slice(0,this.cursor),n=o.input.slice(this.cursor);this.input=o.input=`${a}${e}${n}`,this.moveCursor(1),this.render()}delete(){let e=this.getItem();if(this.cursor<=0||!e.input)return this.alert();let r=e.input.slice(this.cursor),o=e.input.slice(0,this.cursor-1);this.input=e.input=`${o}${r}`,this.moveCursor(-1),this.render()}increment(e){return e>=this.state.keys.length-1?0:e+1}decrement(e){return e<=0?this.state.keys.length-1:e-1}first(){this.state.index=0,this.render()}last(){this.state.index=this.state.keys.length-1,this.render()}right(){if(this.cursor>=this.input.length)return this.alert();this.moveCursor(1),this.render()}left(){if(this.cursor<=0)return this.alert();this.moveCursor(-1),this.render()}prev(){this.state.index=this.decrement(this.state.index),this.getItem(),this.render()}next(){this.state.index=this.increment(this.state.index),this.getItem(),this.render()}up(){this.prev()}down(){this.next()}format(e){let r=this.state.completed<100?this.styles.warning:this.styles.success;return this.state.submitted===!0&&this.state.completed!==100&&(r=this.styles.danger),r(`${this.state.completed}% completed`)}async render(){let{index:e,keys:r=[],submitted:o,size:a}=this.state,n=[this.options.newline,` +`].find(J=>J!=null),u=await this.prefix(),A=await this.separator(),p=await this.message(),h=[u,p,A].filter(Boolean).join(" ");this.state.prompt=h;let E=await this.header(),I=await this.error()||"",v=await this.hint()||"",x=o?"":await this.interpolate(this.state),C=this.state.key=r[e]||"",R=await this.format(C),L=await this.footer();R&&(h+=" "+R),v&&!R&&this.state.completed===0&&(h+=" "+v),this.clear(a);let U=[E,h,x,L,I.trim()];this.write(U.filter(Boolean).join(n)),this.restore()}getItem(e){let{items:r,keys:o,index:a}=this.state,n=r.find(u=>u.name===o[a]);return n&&n.input!=null&&(this.input=n.input,this.cursor=n.cursor),n}async submit(){typeof this.interpolate!="function"&&await this.initialize(),await this.interpolate(this.state,!0);let{invalid:e,missing:r,output:o,values:a}=this.state;if(e.size){let A="";for(let[p,h]of e)A+=`Invalid ${p}: ${h} +`;return this.state.error=A,super.submit()}if(r.size)return this.state.error="Required: "+[...r.keys()].join(", "),super.submit();let u=qft.unstyle(o).split(` +`).map(A=>A.slice(1)).join(` +`);return this.value={values:a,result:u},super.submit()}};m0e.exports=h8});var C0e=_((P8t,E0e)=>{"use strict";var Yft="(Use + to sort)",Wft=bh(),g8=class extends Wft{constructor(e){super({...e,reorder:!1,sort:!0,multiple:!0}),this.state.hint=[this.options.hint,Yft].find(this.isValue.bind(this))}indicator(){return""}async renderChoice(e,r){let o=await super.renderChoice(e,r),a=this.symbols.identicalTo+" ",n=this.index===r&&this.sorting?this.styles.muted(a):" ";return this.options.drag===!1&&(n=""),this.options.numbered===!0?n+`${r+1} - `+o:n+o}get selected(){return this.choices}submit(){return this.value=this.choices.map(e=>e.value),super.submit()}};E0e.exports=g8});var I0e=_((b8t,w0e)=>{"use strict";var Kft=u2(),d8=class extends Kft{constructor(e={}){if(super(e),this.emptyError=e.emptyError||"No items were selected",this.term=process.env.TERM_PROGRAM,!this.options.header){let r=["","4 - Strongly Agree","3 - Agree","2 - Neutral","1 - Disagree","0 - Strongly Disagree",""];r=r.map(o=>this.styles.muted(o)),this.state.header=r.join(` + `)}}async toChoices(...e){if(this.createdScales)return!1;this.createdScales=!0;let r=await super.toChoices(...e);for(let o of r)o.scale=Vft(5,this.options),o.scaleIdx=2;return r}dispatch(){this.alert()}space(){let e=this.focused,r=e.scale[e.scaleIdx],o=r.selected;return e.scale.forEach(a=>a.selected=!1),r.selected=!o,this.render()}indicator(){return""}pointer(){return""}separator(){return this.styles.muted(this.symbols.ellipsis)}right(){let e=this.focused;return e.scaleIdx>=e.scale.length-1?this.alert():(e.scaleIdx++,this.render())}left(){let e=this.focused;return e.scaleIdx<=0?this.alert():(e.scaleIdx--,this.render())}indent(){return" "}async renderChoice(e,r){await this.onChoice(e,r);let o=this.index===r,a=this.term==="Hyper",n=a?9:8,u=a?"":" ",A=this.symbols.line.repeat(n),p=" ".repeat(n+(a?0:1)),h=te=>(te?this.styles.success("\u25C9"):"\u25EF")+u,E=r+1+".",I=o?this.styles.heading:this.styles.noop,v=await this.resolve(e.message,this.state,e,r),x=this.indent(e),C=x+e.scale.map((te,ae)=>h(ae===e.scaleIdx)).join(A),R=te=>te===e.scaleIdx?I(te):te,L=x+e.scale.map((te,ae)=>R(ae)).join(p),U=()=>[E,v].filter(Boolean).join(" "),J=()=>[U(),C,L," "].filter(Boolean).join(` +`);return o&&(C=this.styles.cyan(C),L=this.styles.cyan(L)),J()}async renderChoices(){if(this.state.submitted)return"";let e=this.visible.map(async(o,a)=>await this.renderChoice(o,a)),r=await Promise.all(e);return r.length||r.push(this.styles.danger("No matching choices")),r.join(` +`)}format(){return this.state.submitted?this.choices.map(r=>this.styles.info(r.scaleIdx)).join(", "):""}async render(){let{submitted:e,size:r}=this.state,o=await this.prefix(),a=await this.separator(),n=await this.message(),u=[o,n,a].filter(Boolean).join(" ");this.state.prompt=u;let A=await this.header(),p=await this.format(),h=await this.error()||await this.hint(),E=await this.renderChoices(),I=await this.footer();(p||!h)&&(u+=" "+p),h&&!u.includes(h)&&(u+=" "+h),e&&!p&&!E&&this.multiple&&this.type!=="form"&&(u+=this.styles.danger(this.emptyError)),this.clear(r),this.write([u,A,E,I].filter(Boolean).join(` +`)),this.restore()}submit(){this.value={};for(let e of this.choices)this.value[e.name]=e.scaleIdx;return this.base.submit.call(this)}};function Vft(t,e={}){if(Array.isArray(e.scale))return e.scale.map(o=>({...o}));let r=[];for(let o=1;o{B0e.exports=i8()});var S0e=_((k8t,D0e)=>{"use strict";var Jft=lk(),m8=class extends Jft{async initialize(){await super.initialize(),this.value=this.initial=!!this.options.initial,this.disabled=this.options.disabled||"no",this.enabled=this.options.enabled||"yes",await this.render()}reset(){this.value=this.initial,this.render()}delete(){this.alert()}toggle(){this.value=!this.value,this.render()}enable(){if(this.value===!0)return this.alert();this.value=!0,this.render()}disable(){if(this.value===!1)return this.alert();this.value=!1,this.render()}up(){this.toggle()}down(){this.toggle()}right(){this.toggle()}left(){this.toggle()}next(){this.toggle()}prev(){this.toggle()}dispatch(e="",r){switch(e.toLowerCase()){case" ":return this.toggle();case"1":case"y":case"t":return this.enable();case"0":case"n":case"f":return this.disable();default:return this.alert()}}format(){let e=o=>this.styles.primary.underline(o);return[this.value?this.disabled:e(this.disabled),this.value?e(this.enabled):this.enabled].join(this.styles.muted(" / "))}async render(){let{size:e}=this.state,r=await this.header(),o=await this.prefix(),a=await this.separator(),n=await this.message(),u=await this.format(),A=await this.error()||await this.hint(),p=await this.footer(),h=[o,n,a,u].join(" ");this.state.prompt=h,A&&!h.includes(A)&&(h+=" "+A),this.clear(e),this.write([r,h,p].filter(Boolean).join(` +`)),this.write(this.margin[2]),this.restore()}};D0e.exports=m8});var b0e=_((Q8t,P0e)=>{"use strict";var zft=bh(),y8=class extends zft{constructor(e){if(super(e),typeof this.options.correctChoice!="number"||this.options.correctChoice<0)throw new Error("Please specify the index of the correct answer from the list of choices")}async toChoices(e,r){let o=await super.toChoices(e,r);if(o.length<2)throw new Error("Please give at least two choices to the user");if(this.options.correctChoice>o.length)throw new Error("Please specify the index of the correct answer from the list of choices");return o}check(e){return e.index===this.options.correctChoice}async result(e){return{selectedAnswer:e,correctAnswer:this.options.choices[this.options.correctChoice].value,correct:await this.check(this.state)}}};P0e.exports=y8});var k0e=_(E8=>{"use strict";var x0e=No(),As=(t,e)=>{x0e.defineExport(E8,t,e),x0e.defineExport(E8,t.toLowerCase(),e)};As("AutoComplete",()=>Lhe());As("BasicAuth",()=>jhe());As("Confirm",()=>Whe());As("Editable",()=>Vhe());As("Form",()=>ak());As("Input",()=>i8());As("Invisible",()=>t0e());As("List",()=>n0e());As("MultiSelect",()=>s0e());As("Numeral",()=>l0e());As("Password",()=>u0e());As("Scale",()=>p0e());As("Select",()=>bh());As("Snippet",()=>y0e());As("Sort",()=>C0e());As("Survey",()=>I0e());As("Text",()=>v0e());As("Toggle",()=>S0e());As("Quiz",()=>b0e())});var F0e=_((R8t,Q0e)=>{Q0e.exports={ArrayPrompt:u2(),AuthPrompt:Z_(),BooleanPrompt:lk(),NumberPrompt:c8(),StringPrompt:Wd()}});var f2=_((T8t,T0e)=>{"use strict";var R0e=ve("assert"),w8=ve("events"),xh=No(),Jc=class extends w8{constructor(e,r){super(),this.options=xh.merge({},e),this.answers={...r}}register(e,r){if(xh.isObject(e)){for(let a of Object.keys(e))this.register(a,e[a]);return this}R0e.equal(typeof r,"function","expected a function");let o=e.toLowerCase();return r.prototype instanceof this.Prompt?this.prompts[o]=r:this.prompts[o]=r(this.Prompt,this),this}async prompt(e=[]){for(let r of[].concat(e))try{typeof r=="function"&&(r=await r.call(this)),await this.ask(xh.merge({},this.options,r))}catch(o){return Promise.reject(o)}return this.answers}async ask(e){typeof e=="function"&&(e=await e.call(this));let r=xh.merge({},this.options,e),{type:o,name:a}=e,{set:n,get:u}=xh;if(typeof o=="function"&&(o=await o.call(this,e,this.answers)),!o)return this.answers[a];R0e(this.prompts[o],`Prompt "${o}" is not registered`);let A=new this.prompts[o](r),p=u(this.answers,a);A.state.answers=this.answers,A.enquirer=this,a&&A.on("submit",E=>{this.emit("answer",a,E,A),n(this.answers,a,E)});let h=A.emit.bind(A);return A.emit=(...E)=>(this.emit.call(this,...E),h(...E)),this.emit("prompt",A,this),r.autofill&&p!=null?(A.value=A.input=p,r.autofill==="show"&&await A.submit()):p=A.value=await A.run(),p}use(e){return e.call(this,this),this}set Prompt(e){this._Prompt=e}get Prompt(){return this._Prompt||this.constructor.Prompt}get prompts(){return this.constructor.prompts}static set Prompt(e){this._Prompt=e}static get Prompt(){return this._Prompt||gC()}static get prompts(){return k0e()}static get types(){return F0e()}static get prompt(){let e=(r,...o)=>{let a=new this(...o),n=a.emit.bind(a);return a.emit=(...u)=>(e.emit(...u),n(...u)),a.prompt(r)};return xh.mixinEmitter(e,new w8),e}};xh.mixinEmitter(Jc,new w8);var C8=Jc.prompts;for(let t of Object.keys(C8)){let e=t.toLowerCase(),r=o=>new C8[t](o).run();Jc.prompt[e]=r,Jc[e]=r,Jc[t]||Reflect.defineProperty(Jc,t,{get:()=>C8[t]})}var A2=t=>{xh.defineExport(Jc,t,()=>Jc.types[t])};A2("ArrayPrompt");A2("AuthPrompt");A2("BooleanPrompt");A2("NumberPrompt");A2("StringPrompt");T0e.exports=Jc});var d2=_((dHt,H0e)=>{var rpt=zx();function npt(t,e,r){var o=t==null?void 0:rpt(t,e);return o===void 0?r:o}H0e.exports=npt});var G0e=_((IHt,j0e)=>{function ipt(t,e){for(var r=-1,o=t==null?0:t.length;++r{var spt=dd(),opt=zS();function apt(t,e){return t&&spt(e,opt(e),t)}Y0e.exports=apt});var V0e=_((vHt,K0e)=>{var lpt=dd(),cpt=Gy();function upt(t,e){return t&&lpt(e,cpt(e),t)}K0e.exports=upt});var z0e=_((DHt,J0e)=>{var Apt=dd(),fpt=GS();function ppt(t,e){return Apt(t,fpt(t),e)}J0e.exports=ppt});var P8=_((SHt,X0e)=>{var hpt=jS(),gpt=tP(),dpt=GS(),mpt=WN(),ypt=Object.getOwnPropertySymbols,Ept=ypt?function(t){for(var e=[];t;)hpt(e,dpt(t)),t=gpt(t);return e}:mpt;X0e.exports=Ept});var $0e=_((PHt,Z0e)=>{var Cpt=dd(),wpt=P8();function Ipt(t,e){return Cpt(t,wpt(t),e)}Z0e.exports=Ipt});var b8=_((bHt,ege)=>{var Bpt=YN(),vpt=P8(),Dpt=Gy();function Spt(t){return Bpt(t,Dpt,vpt)}ege.exports=Spt});var rge=_((xHt,tge)=>{var Ppt=Object.prototype,bpt=Ppt.hasOwnProperty;function xpt(t){var e=t.length,r=new t.constructor(e);return e&&typeof t[0]=="string"&&bpt.call(t,"index")&&(r.index=t.index,r.input=t.input),r}tge.exports=xpt});var ige=_((kHt,nge)=>{var kpt=$S();function Qpt(t,e){var r=e?kpt(t.buffer):t.buffer;return new t.constructor(r,t.byteOffset,t.byteLength)}nge.exports=Qpt});var oge=_((QHt,sge)=>{var Fpt=/\w*$/;function Rpt(t){var e=new t.constructor(t.source,Fpt.exec(t));return e.lastIndex=t.lastIndex,e}sge.exports=Rpt});var Age=_((FHt,uge)=>{var age=pd(),lge=age?age.prototype:void 0,cge=lge?lge.valueOf:void 0;function Tpt(t){return cge?Object(cge.call(t)):{}}uge.exports=Tpt});var pge=_((RHt,fge)=>{var Npt=$S(),Lpt=ige(),Opt=oge(),Mpt=Age(),Upt=oL(),_pt="[object Boolean]",Hpt="[object Date]",qpt="[object Map]",jpt="[object Number]",Gpt="[object RegExp]",Ypt="[object Set]",Wpt="[object String]",Kpt="[object Symbol]",Vpt="[object ArrayBuffer]",Jpt="[object DataView]",zpt="[object Float32Array]",Xpt="[object Float64Array]",Zpt="[object Int8Array]",$pt="[object Int16Array]",eht="[object Int32Array]",tht="[object Uint8Array]",rht="[object Uint8ClampedArray]",nht="[object Uint16Array]",iht="[object Uint32Array]";function sht(t,e,r){var o=t.constructor;switch(e){case Vpt:return Npt(t);case _pt:case Hpt:return new o(+t);case Jpt:return Lpt(t,r);case zpt:case Xpt:case Zpt:case $pt:case eht:case tht:case rht:case nht:case iht:return Upt(t,r);case qpt:return new o;case jpt:case Wpt:return new o(t);case Gpt:return Opt(t);case Ypt:return new o;case Kpt:return Mpt(t)}}fge.exports=sht});var gge=_((THt,hge)=>{var oht=GI(),aht=Ju(),lht="[object Map]";function cht(t){return aht(t)&&oht(t)==lht}hge.exports=cht});var Ege=_((NHt,yge)=>{var uht=gge(),Aht=WS(),dge=KS(),mge=dge&&dge.isMap,fht=mge?Aht(mge):uht;yge.exports=fht});var wge=_((LHt,Cge)=>{var pht=GI(),hht=Ju(),ght="[object Set]";function dht(t){return hht(t)&&pht(t)==ght}Cge.exports=dht});var Dge=_((OHt,vge)=>{var mht=wge(),yht=WS(),Ige=KS(),Bge=Ige&&Ige.isSet,Eht=Bge?yht(Bge):mht;vge.exports=Eht});var x8=_((MHt,xge)=>{var Cht=HS(),wht=G0e(),Iht=rP(),Bht=W0e(),vht=V0e(),Dht=sL(),Sht=eP(),Pht=z0e(),bht=$0e(),xht=zN(),kht=b8(),Qht=GI(),Fht=rge(),Rht=pge(),Tht=aL(),Nht=Hl(),Lht=UI(),Oht=Ege(),Mht=il(),Uht=Dge(),_ht=zS(),Hht=Gy(),qht=1,jht=2,Ght=4,Sge="[object Arguments]",Yht="[object Array]",Wht="[object Boolean]",Kht="[object Date]",Vht="[object Error]",Pge="[object Function]",Jht="[object GeneratorFunction]",zht="[object Map]",Xht="[object Number]",bge="[object Object]",Zht="[object RegExp]",$ht="[object Set]",e0t="[object String]",t0t="[object Symbol]",r0t="[object WeakMap]",n0t="[object ArrayBuffer]",i0t="[object DataView]",s0t="[object Float32Array]",o0t="[object Float64Array]",a0t="[object Int8Array]",l0t="[object Int16Array]",c0t="[object Int32Array]",u0t="[object Uint8Array]",A0t="[object Uint8ClampedArray]",f0t="[object Uint16Array]",p0t="[object Uint32Array]",ri={};ri[Sge]=ri[Yht]=ri[n0t]=ri[i0t]=ri[Wht]=ri[Kht]=ri[s0t]=ri[o0t]=ri[a0t]=ri[l0t]=ri[c0t]=ri[zht]=ri[Xht]=ri[bge]=ri[Zht]=ri[$ht]=ri[e0t]=ri[t0t]=ri[u0t]=ri[A0t]=ri[f0t]=ri[p0t]=!0;ri[Vht]=ri[Pge]=ri[r0t]=!1;function Ak(t,e,r,o,a,n){var u,A=e&qht,p=e&jht,h=e&Ght;if(r&&(u=a?r(t,o,a,n):r(t)),u!==void 0)return u;if(!Mht(t))return t;var E=Nht(t);if(E){if(u=Fht(t),!A)return Sht(t,u)}else{var I=Qht(t),v=I==Pge||I==Jht;if(Lht(t))return Dht(t,A);if(I==bge||I==Sge||v&&!a){if(u=p||v?{}:Tht(t),!A)return p?bht(t,vht(u,t)):Pht(t,Bht(u,t))}else{if(!ri[I])return a?t:{};u=Rht(t,I,A)}}n||(n=new Cht);var x=n.get(t);if(x)return x;n.set(t,u),Uht(t)?t.forEach(function(L){u.add(Ak(L,e,r,L,t,n))}):Oht(t)&&t.forEach(function(L,U){u.set(U,Ak(L,e,r,U,t,n))});var C=h?p?kht:xht:p?Hht:_ht,R=E?void 0:C(t);return wht(R||t,function(L,U){R&&(U=L,L=t[U]),Iht(u,U,Ak(L,e,r,U,t,n))}),u}xge.exports=Ak});var k8=_((UHt,kge)=>{var h0t=x8(),g0t=1,d0t=4;function m0t(t){return h0t(t,g0t|d0t)}kge.exports=m0t});var Q8=_((_Ht,Qge)=>{var y0t=I_();function E0t(t,e,r){return t==null?t:y0t(t,e,r)}Qge.exports=E0t});var Lge=_((WHt,Nge)=>{var C0t=Object.prototype,w0t=C0t.hasOwnProperty;function I0t(t,e){return t!=null&&w0t.call(t,e)}Nge.exports=I0t});var Mge=_((KHt,Oge)=>{var B0t=Lge(),v0t=B_();function D0t(t,e){return t!=null&&v0t(t,e,B0t)}Oge.exports=D0t});var _ge=_((VHt,Uge)=>{function S0t(t){var e=t==null?0:t.length;return e?t[e-1]:void 0}Uge.exports=S0t});var qge=_((JHt,Hge)=>{var P0t=zx(),b0t=pU();function x0t(t,e){return e.length<2?t:P0t(t,b0t(e,0,-1))}Hge.exports=x0t});var R8=_((zHt,jge)=>{var k0t=jd(),Q0t=_ge(),F0t=qge(),R0t=lC();function T0t(t,e){return e=k0t(e,t),t=F0t(t,e),t==null||delete t[R0t(Q0t(e))]}jge.exports=T0t});var T8=_((XHt,Gge)=>{var N0t=R8();function L0t(t,e){return t==null?!0:N0t(t,e)}Gge.exports=L0t});var Jge=_((S6t,U0t)=>{U0t.exports={name:"@yarnpkg/cli",version:"4.1.1",license:"BSD-2-Clause",main:"./sources/index.ts",exports:{".":"./sources/index.ts","./polyfills":"./sources/polyfills.ts","./package.json":"./package.json"},dependencies:{"@yarnpkg/core":"workspace:^","@yarnpkg/fslib":"workspace:^","@yarnpkg/libzip":"workspace:^","@yarnpkg/parsers":"workspace:^","@yarnpkg/plugin-compat":"workspace:^","@yarnpkg/plugin-constraints":"workspace:^","@yarnpkg/plugin-dlx":"workspace:^","@yarnpkg/plugin-essentials":"workspace:^","@yarnpkg/plugin-exec":"workspace:^","@yarnpkg/plugin-file":"workspace:^","@yarnpkg/plugin-git":"workspace:^","@yarnpkg/plugin-github":"workspace:^","@yarnpkg/plugin-http":"workspace:^","@yarnpkg/plugin-init":"workspace:^","@yarnpkg/plugin-interactive-tools":"workspace:^","@yarnpkg/plugin-link":"workspace:^","@yarnpkg/plugin-nm":"workspace:^","@yarnpkg/plugin-npm":"workspace:^","@yarnpkg/plugin-npm-cli":"workspace:^","@yarnpkg/plugin-pack":"workspace:^","@yarnpkg/plugin-patch":"workspace:^","@yarnpkg/plugin-pnp":"workspace:^","@yarnpkg/plugin-pnpm":"workspace:^","@yarnpkg/plugin-stage":"workspace:^","@yarnpkg/plugin-typescript":"workspace:^","@yarnpkg/plugin-version":"workspace:^","@yarnpkg/plugin-workspace-tools":"workspace:^","@yarnpkg/shell":"workspace:^","ci-info":"^3.2.0",clipanion:"^4.0.0-rc.2",semver:"^7.1.2",tslib:"^2.4.0",typanion:"^3.14.0"},devDependencies:{"@types/semver":"^7.1.0","@yarnpkg/builder":"workspace:^","@yarnpkg/monorepo":"workspace:^","@yarnpkg/pnpify":"workspace:^"},peerDependencies:{"@yarnpkg/core":"workspace:^"},scripts:{postpack:"rm -rf lib",prepack:'run build:compile "$(pwd)"',"build:cli+hook":"run build:pnp:hook && builder build bundle","build:cli":"builder build bundle","run:cli":"builder run","update-local":"run build:cli --no-git-hash && rsync -a --delete bundles/ bin/"},publishConfig:{main:"./lib/index.js",bin:null,exports:{".":"./lib/index.js","./package.json":"./package.json"}},files:["/lib/**/*","!/lib/pluginConfiguration.*","!/lib/cli.*"],"@yarnpkg/builder":{bundles:{standard:["@yarnpkg/plugin-essentials","@yarnpkg/plugin-compat","@yarnpkg/plugin-constraints","@yarnpkg/plugin-dlx","@yarnpkg/plugin-exec","@yarnpkg/plugin-file","@yarnpkg/plugin-git","@yarnpkg/plugin-github","@yarnpkg/plugin-http","@yarnpkg/plugin-init","@yarnpkg/plugin-interactive-tools","@yarnpkg/plugin-link","@yarnpkg/plugin-nm","@yarnpkg/plugin-npm","@yarnpkg/plugin-npm-cli","@yarnpkg/plugin-pack","@yarnpkg/plugin-patch","@yarnpkg/plugin-pnp","@yarnpkg/plugin-pnpm","@yarnpkg/plugin-stage","@yarnpkg/plugin-typescript","@yarnpkg/plugin-version","@yarnpkg/plugin-workspace-tools"]}},repository:{type:"git",url:"ssh://git@github.com/yarnpkg/berry.git",directory:"packages/yarnpkg-cli"},engines:{node:">=18.12.0"}}});var j8=_((n5t,ade)=>{"use strict";ade.exports=function(e,r){r===!0&&(r=0);var o="";if(typeof e=="string")try{o=new URL(e).protocol}catch{}else e&&e.constructor===URL&&(o=e.protocol);var a=o.split(/\:|\+/).filter(Boolean);return typeof r=="number"?a[r]:a}});var cde=_((i5t,lde)=>{"use strict";var igt=j8();function sgt(t){var e={protocols:[],protocol:null,port:null,resource:"",host:"",user:"",password:"",pathname:"",hash:"",search:"",href:t,query:{},parse_failed:!1};try{var r=new URL(t);e.protocols=igt(r),e.protocol=e.protocols[0],e.port=r.port,e.resource=r.hostname,e.host=r.host,e.user=r.username||"",e.password=r.password||"",e.pathname=r.pathname,e.hash=r.hash.slice(1),e.search=r.search.slice(1),e.href=r.href,e.query=Object.fromEntries(r.searchParams)}catch{e.protocols=["file"],e.protocol=e.protocols[0],e.port="",e.resource="",e.user="",e.pathname="",e.hash="",e.search="",e.href=t,e.query={},e.parse_failed=!0}return e}lde.exports=sgt});var fde=_((s5t,Ade)=>{"use strict";var ogt=cde();function agt(t){return t&&typeof t=="object"&&"default"in t?t:{default:t}}var lgt=agt(ogt),cgt="text/plain",ugt="us-ascii",ude=(t,e)=>e.some(r=>r instanceof RegExp?r.test(t):r===t),Agt=(t,{stripHash:e})=>{let r=/^data:(?[^,]*?),(?[^#]*?)(?:#(?.*))?$/.exec(t);if(!r)throw new Error(`Invalid URL: ${t}`);let{type:o,data:a,hash:n}=r.groups,u=o.split(";");n=e?"":n;let A=!1;u[u.length-1]==="base64"&&(u.pop(),A=!0);let p=(u.shift()||"").toLowerCase(),E=[...u.map(I=>{let[v,x=""]=I.split("=").map(C=>C.trim());return v==="charset"&&(x=x.toLowerCase(),x===ugt)?"":`${v}${x?`=${x}`:""}`}).filter(Boolean)];return A&&E.push("base64"),(E.length>0||p&&p!==cgt)&&E.unshift(p),`data:${E.join(";")},${A?a.trim():a}${n?`#${n}`:""}`};function fgt(t,e){if(e={defaultProtocol:"http:",normalizeProtocol:!0,forceHttp:!1,forceHttps:!1,stripAuthentication:!0,stripHash:!1,stripTextFragment:!0,stripWWW:!0,removeQueryParameters:[/^utm_\w+/i],removeTrailingSlash:!0,removeSingleSlash:!0,removeDirectoryIndex:!1,sortQueryParameters:!0,...e},t=t.trim(),/^data:/i.test(t))return Agt(t,e);if(/^view-source:/i.test(t))throw new Error("`view-source:` is not supported as it is a non-standard protocol");let r=t.startsWith("//");!r&&/^\.*\//.test(t)||(t=t.replace(/^(?!(?:\w+:)?\/\/)|^\/\//,e.defaultProtocol));let a=new URL(t);if(e.forceHttp&&e.forceHttps)throw new Error("The `forceHttp` and `forceHttps` options cannot be used together");if(e.forceHttp&&a.protocol==="https:"&&(a.protocol="http:"),e.forceHttps&&a.protocol==="http:"&&(a.protocol="https:"),e.stripAuthentication&&(a.username="",a.password=""),e.stripHash?a.hash="":e.stripTextFragment&&(a.hash=a.hash.replace(/#?:~:text.*?$/i,"")),a.pathname){let u=/\b[a-z][a-z\d+\-.]{1,50}:\/\//g,A=0,p="";for(;;){let E=u.exec(a.pathname);if(!E)break;let I=E[0],v=E.index,x=a.pathname.slice(A,v);p+=x.replace(/\/{2,}/g,"/"),p+=I,A=v+I.length}let h=a.pathname.slice(A,a.pathname.length);p+=h.replace(/\/{2,}/g,"/"),a.pathname=p}if(a.pathname)try{a.pathname=decodeURI(a.pathname)}catch{}if(e.removeDirectoryIndex===!0&&(e.removeDirectoryIndex=[/^index\.[a-z]+$/]),Array.isArray(e.removeDirectoryIndex)&&e.removeDirectoryIndex.length>0){let u=a.pathname.split("/"),A=u[u.length-1];ude(A,e.removeDirectoryIndex)&&(u=u.slice(0,-1),a.pathname=u.slice(1).join("/")+"/")}if(a.hostname&&(a.hostname=a.hostname.replace(/\.$/,""),e.stripWWW&&/^www\.(?!www\.)[a-z\-\d]{1,63}\.[a-z.\-\d]{2,63}$/.test(a.hostname)&&(a.hostname=a.hostname.replace(/^www\./,""))),Array.isArray(e.removeQueryParameters))for(let u of[...a.searchParams.keys()])ude(u,e.removeQueryParameters)&&a.searchParams.delete(u);if(e.removeQueryParameters===!0&&(a.search=""),e.sortQueryParameters){a.searchParams.sort();try{a.search=decodeURIComponent(a.search)}catch{}}e.removeTrailingSlash&&(a.pathname=a.pathname.replace(/\/$/,""));let n=t;return t=a.toString(),!e.removeSingleSlash&&a.pathname==="/"&&!n.endsWith("/")&&a.hash===""&&(t=t.replace(/\/$/,"")),(e.removeTrailingSlash||a.pathname==="/")&&a.hash===""&&e.removeSingleSlash&&(t=t.replace(/\/$/,"")),r&&!e.normalizeProtocol&&(t=t.replace(/^http:\/\//,"//")),e.stripProtocol&&(t=t.replace(/^(?:https?:)?\/\//,"")),t}var G8=(t,e=!1)=>{let r=/^(?:([a-z_][a-z0-9_-]{0,31})@|https?:\/\/)([\w\.\-@]+)[\/:]([\~,\.\w,\-,\_,\/]+?(?:\.git|\/)?)$/,o=n=>{let u=new Error(n);throw u.subject_url=t,u};(typeof t!="string"||!t.trim())&&o("Invalid url."),t.length>G8.MAX_INPUT_LENGTH&&o("Input exceeds maximum length. If needed, change the value of parseUrl.MAX_INPUT_LENGTH."),e&&(typeof e!="object"&&(e={stripHash:!1}),t=fgt(t,e));let a=lgt.default(t);if(a.parse_failed){let n=a.href.match(r);n?(a.protocols=["ssh"],a.protocol="ssh",a.resource=n[2],a.host=n[2],a.user=n[1],a.pathname=`/${n[3]}`,a.parse_failed=!1):o("URL parsing failed.")}return a};G8.MAX_INPUT_LENGTH=2048;Ade.exports=G8});var gde=_((o5t,hde)=>{"use strict";var pgt=j8();function pde(t){if(Array.isArray(t))return t.indexOf("ssh")!==-1||t.indexOf("rsync")!==-1;if(typeof t!="string")return!1;var e=pgt(t);if(t=t.substring(t.indexOf("://")+3),pde(e))return!0;var r=new RegExp(".([a-zA-Z\\d]+):(\\d+)/");return!t.match(r)&&t.indexOf("@"){"use strict";var hgt=fde(),dde=gde();function ggt(t){var e=hgt(t);return e.token="",e.password==="x-oauth-basic"?e.token=e.user:e.user==="x-token-auth"&&(e.token=e.password),dde(e.protocols)||e.protocols.length===0&&dde(t)?e.protocol="ssh":e.protocols.length?e.protocol=e.protocols[0]:(e.protocol="file",e.protocols=["file"]),e.href=e.href.replace(/\/$/,""),e}mde.exports=ggt});var Cde=_((l5t,Ede)=>{"use strict";var dgt=yde();function Y8(t){if(typeof t!="string")throw new Error("The url must be a string.");var e=/^([a-z\d-]{1,39})\/([-\.\w]{1,100})$/i;e.test(t)&&(t="https://github.com/"+t);var r=dgt(t),o=r.resource.split("."),a=null;switch(r.toString=function(L){return Y8.stringify(this,L)},r.source=o.length>2?o.slice(1-o.length).join("."):r.source=r.resource,r.git_suffix=/\.git$/.test(r.pathname),r.name=decodeURIComponent((r.pathname||r.href).replace(/(^\/)|(\/$)/g,"").replace(/\.git$/,"")),r.owner=decodeURIComponent(r.user),r.source){case"git.cloudforge.com":r.owner=r.user,r.organization=o[0],r.source="cloudforge.com";break;case"visualstudio.com":if(r.resource==="vs-ssh.visualstudio.com"){a=r.name.split("/"),a.length===4&&(r.organization=a[1],r.owner=a[2],r.name=a[3],r.full_name=a[2]+"/"+a[3]);break}else{a=r.name.split("/"),a.length===2?(r.owner=a[1],r.name=a[1],r.full_name="_git/"+r.name):a.length===3?(r.name=a[2],a[0]==="DefaultCollection"?(r.owner=a[2],r.organization=a[0],r.full_name=r.organization+"/_git/"+r.name):(r.owner=a[0],r.full_name=r.owner+"/_git/"+r.name)):a.length===4&&(r.organization=a[0],r.owner=a[1],r.name=a[3],r.full_name=r.organization+"/"+r.owner+"/_git/"+r.name);break}case"dev.azure.com":case"azure.com":if(r.resource==="ssh.dev.azure.com"){a=r.name.split("/"),a.length===4&&(r.organization=a[1],r.owner=a[2],r.name=a[3]);break}else{a=r.name.split("/"),a.length===5?(r.organization=a[0],r.owner=a[1],r.name=a[4],r.full_name="_git/"+r.name):a.length===3?(r.name=a[2],a[0]==="DefaultCollection"?(r.owner=a[2],r.organization=a[0],r.full_name=r.organization+"/_git/"+r.name):(r.owner=a[0],r.full_name=r.owner+"/_git/"+r.name)):a.length===4&&(r.organization=a[0],r.owner=a[1],r.name=a[3],r.full_name=r.organization+"/"+r.owner+"/_git/"+r.name),r.query&&r.query.path&&(r.filepath=r.query.path.replace(/^\/+/g,"")),r.query&&r.query.version&&(r.ref=r.query.version.replace(/^GB/,""));break}default:a=r.name.split("/");var n=a.length-1;if(a.length>=2){var u=a.indexOf("-",2),A=a.indexOf("blob",2),p=a.indexOf("tree",2),h=a.indexOf("commit",2),E=a.indexOf("src",2),I=a.indexOf("raw",2),v=a.indexOf("edit",2);n=u>0?u-1:A>0?A-1:p>0?p-1:h>0?h-1:E>0?E-1:I>0?I-1:v>0?v-1:n,r.owner=a.slice(0,n).join("/"),r.name=a[n],h&&(r.commit=a[n+2])}r.ref="",r.filepathtype="",r.filepath="";var x=a.length>n&&a[n+1]==="-"?n+1:n;a.length>x+2&&["raw","src","blob","tree","edit"].indexOf(a[x+1])>=0&&(r.filepathtype=a[x+1],r.ref=a[x+2],a.length>x+3&&(r.filepath=a.slice(x+3).join("/"))),r.organization=r.owner;break}r.full_name||(r.full_name=r.owner,r.name&&(r.full_name&&(r.full_name+="/"),r.full_name+=r.name)),r.owner.startsWith("scm/")&&(r.source="bitbucket-server",r.owner=r.owner.replace("scm/",""),r.organization=r.owner,r.full_name=r.owner+"/"+r.name);var C=/(projects|users)\/(.*?)\/repos\/(.*?)((\/.*$)|$)/,R=C.exec(r.pathname);return R!=null&&(r.source="bitbucket-server",R[1]==="users"?r.owner="~"+R[2]:r.owner=R[2],r.organization=r.owner,r.name=R[3],a=R[4].split("/"),a.length>1&&(["raw","browse"].indexOf(a[1])>=0?(r.filepathtype=a[1],a.length>2&&(r.filepath=a.slice(2).join("/"))):a[1]==="commits"&&a.length>2&&(r.commit=a[2])),r.full_name=r.owner+"/"+r.name,r.query.at?r.ref=r.query.at:r.ref=""),r}Y8.stringify=function(t,e){e=e||(t.protocols&&t.protocols.length?t.protocols.join("+"):t.protocol);var r=t.port?":"+t.port:"",o=t.user||"git",a=t.git_suffix?".git":"";switch(e){case"ssh":return r?"ssh://"+o+"@"+t.resource+r+"/"+t.full_name+a:o+"@"+t.resource+":"+t.full_name+a;case"git+ssh":case"ssh+git":case"ftp":case"ftps":return e+"://"+o+"@"+t.resource+r+"/"+t.full_name+a;case"http":case"https":var n=t.token?mgt(t):t.user&&(t.protocols.includes("http")||t.protocols.includes("https"))?t.user+"@":"";return e+"://"+n+t.resource+r+"/"+ygt(t)+a;default:return t.href}};function mgt(t){switch(t.source){case"bitbucket.org":return"x-token-auth:"+t.token+"@";default:return t.token+"@"}}function ygt(t){switch(t.source){case"bitbucket-server":return"scm/"+t.full_name;default:return""+t.full_name}}Ede.exports=Y8});var Lde=_((H9t,Nde)=>{var xgt=Hb(),kgt=eP(),Qgt=Hl(),Fgt=pE(),Rgt=w_(),Tgt=lC(),Ngt=N1();function Lgt(t){return Qgt(t)?xgt(t,Tgt):Fgt(t)?[t]:kgt(Rgt(Ngt(t)))}Nde.exports=Lgt});function _gt(t,e){return e===1&&Ugt.has(t[0])}function B2(t){let e=Array.isArray(t)?t:(0,Ude.default)(t);return e.map((o,a)=>Ogt.test(o)?`[${o}]`:Mgt.test(o)&&!_gt(e,a)?`.${o}`:`[${JSON.stringify(o)}]`).join("").replace(/^\./,"")}function Hgt(t,e){let r=[];if(e.methodName!==null&&r.push(de.pretty(t,e.methodName,de.Type.CODE)),e.file!==null){let o=[];o.push(de.pretty(t,e.file,de.Type.PATH)),e.line!==null&&(o.push(de.pretty(t,e.line,de.Type.NUMBER)),e.column!==null&&o.push(de.pretty(t,e.column,de.Type.NUMBER))),r.push(`(${o.join(de.pretty(t,":","grey"))})`)}return r.join(" ")}function gk(t,{manifestUpdates:e,reportedErrors:r},{fix:o}={}){let a=new Map,n=new Map,u=[...r.keys()].map(A=>[A,new Map]);for(let[A,p]of[...u,...e]){let h=r.get(A)?.map(x=>({text:x,fixable:!1}))??[],E=!1,I=t.getWorkspaceByCwd(A),v=I.manifest.exportTo({});for(let[x,C]of p){if(C.size>1){let R=[...C].map(([L,U])=>{let J=de.pretty(t.configuration,L,de.Type.INSPECT),te=U.size>0?Hgt(t.configuration,U.values().next().value):null;return te!==null?` +${J} at ${te}`:` +${J}`}).join("");h.push({text:`Conflict detected in constraint targeting ${de.pretty(t.configuration,x,de.Type.CODE)}; conflicting values are:${R}`,fixable:!1})}else{let[[R]]=C,L=(0,Ode.default)(v,x);if(JSON.stringify(L)===JSON.stringify(R))continue;if(!o){let U=typeof L>"u"?`Missing field ${de.pretty(t.configuration,x,de.Type.CODE)}; expected ${de.pretty(t.configuration,R,de.Type.INSPECT)}`:typeof R>"u"?`Extraneous field ${de.pretty(t.configuration,x,de.Type.CODE)} currently set to ${de.pretty(t.configuration,L,de.Type.INSPECT)}`:`Invalid field ${de.pretty(t.configuration,x,de.Type.CODE)}; expected ${de.pretty(t.configuration,R,de.Type.INSPECT)}, found ${de.pretty(t.configuration,L,de.Type.INSPECT)}`;h.push({text:U,fixable:!0});continue}typeof R>"u"?(0,_de.default)(v,x):(0,Mde.default)(v,x,R),E=!0}E&&a.set(I,v)}h.length>0&&n.set(I,h)}return{changedWorkspaces:a,remainingErrors:n}}function Hde(t,{configuration:e}){let r={children:[]};for(let[o,a]of t){let n=[];for(let A of a){let p=A.text.split(/\n/);A.fixable&&(p[0]=`${de.pretty(e,"\u2699","gray")} ${p[0]}`),n.push({value:de.tuple(de.Type.NO_HINT,p[0]),children:p.slice(1).map(h=>({value:de.tuple(de.Type.NO_HINT,h)}))})}let u={value:de.tuple(de.Type.LOCATOR,o.anchoredLocator),children:_e.sortMap(n,A=>A.value[1])};r.children.push(u)}return r.children=_e.sortMap(r.children,o=>o.value[1]),r}var Ode,Mde,Ude,_de,wC,Ogt,Mgt,Ugt,v2=Et(()=>{Ye();Ode=$e(d2()),Mde=$e(Q8()),Ude=$e(Lde()),_de=$e(T8()),wC=class{constructor(e){this.indexedFields=e;this.items=[];this.indexes={};this.clear()}clear(){this.items=[];for(let e of this.indexedFields)this.indexes[e]=new Map}insert(e){this.items.push(e);for(let r of this.indexedFields){let o=Object.hasOwn(e,r)?e[r]:void 0;if(typeof o>"u")continue;_e.getArrayWithDefault(this.indexes[r],o).push(e)}return e}find(e){if(typeof e>"u")return this.items;let r=Object.entries(e);if(r.length===0)return this.items;let o=[],a;for(let[u,A]of r){let p=u,h=Object.hasOwn(this.indexes,p)?this.indexes[p]:void 0;if(typeof h>"u"){o.push([p,A]);continue}let E=new Set(h.get(A)??[]);if(E.size===0)return[];if(typeof a>"u")a=E;else for(let I of a)E.has(I)||a.delete(I);if(a.size===0)break}let n=[...a??[]];return o.length>0&&(n=n.filter(u=>{for(let[A,p]of o)if(!(typeof p<"u"?Object.hasOwn(u,A)&&u[A]===p:Object.hasOwn(u,A)===!1))return!1;return!0})),n}},Ogt=/^[0-9]+$/,Mgt=/^[a-zA-Z0-9_]+$/,Ugt=new Set(["scripts",...Ot.allDependencies])});var qde=_(($9t,sH)=>{var qgt;(function(t){var e=function(){return{"append/2":[new t.type.Rule(new t.type.Term("append",[new t.type.Var("X"),new t.type.Var("L")]),new t.type.Term("foldl",[new t.type.Term("append",[]),new t.type.Var("X"),new t.type.Term("[]",[]),new t.type.Var("L")]))],"append/3":[new t.type.Rule(new t.type.Term("append",[new t.type.Term("[]",[]),new t.type.Var("X"),new t.type.Var("X")]),null),new t.type.Rule(new t.type.Term("append",[new t.type.Term(".",[new t.type.Var("H"),new t.type.Var("T")]),new t.type.Var("X"),new t.type.Term(".",[new t.type.Var("H"),new t.type.Var("S")])]),new t.type.Term("append",[new t.type.Var("T"),new t.type.Var("X"),new t.type.Var("S")]))],"member/2":[new t.type.Rule(new t.type.Term("member",[new t.type.Var("X"),new t.type.Term(".",[new t.type.Var("X"),new t.type.Var("_")])]),null),new t.type.Rule(new t.type.Term("member",[new t.type.Var("X"),new t.type.Term(".",[new t.type.Var("_"),new t.type.Var("Xs")])]),new t.type.Term("member",[new t.type.Var("X"),new t.type.Var("Xs")]))],"permutation/2":[new t.type.Rule(new t.type.Term("permutation",[new t.type.Term("[]",[]),new t.type.Term("[]",[])]),null),new t.type.Rule(new t.type.Term("permutation",[new t.type.Term(".",[new t.type.Var("H"),new t.type.Var("T")]),new t.type.Var("S")]),new t.type.Term(",",[new t.type.Term("permutation",[new t.type.Var("T"),new t.type.Var("P")]),new t.type.Term(",",[new t.type.Term("append",[new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("P")]),new t.type.Term("append",[new t.type.Var("X"),new t.type.Term(".",[new t.type.Var("H"),new t.type.Var("Y")]),new t.type.Var("S")])])]))],"maplist/2":[new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("_"),new t.type.Term("[]",[])]),null),new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Term(".",[new t.type.Var("X"),new t.type.Var("Xs")])]),new t.type.Term(",",[new t.type.Term("call",[new t.type.Var("P"),new t.type.Var("X")]),new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Var("Xs")])]))],"maplist/3":[new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("_"),new t.type.Term("[]",[]),new t.type.Term("[]",[])]),null),new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Term(".",[new t.type.Var("A"),new t.type.Var("As")]),new t.type.Term(".",[new t.type.Var("B"),new t.type.Var("Bs")])]),new t.type.Term(",",[new t.type.Term("call",[new t.type.Var("P"),new t.type.Var("A"),new t.type.Var("B")]),new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Var("As"),new t.type.Var("Bs")])]))],"maplist/4":[new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("_"),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[])]),null),new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Term(".",[new t.type.Var("A"),new t.type.Var("As")]),new t.type.Term(".",[new t.type.Var("B"),new t.type.Var("Bs")]),new t.type.Term(".",[new t.type.Var("C"),new t.type.Var("Cs")])]),new t.type.Term(",",[new t.type.Term("call",[new t.type.Var("P"),new t.type.Var("A"),new t.type.Var("B"),new t.type.Var("C")]),new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Var("As"),new t.type.Var("Bs"),new t.type.Var("Cs")])]))],"maplist/5":[new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("_"),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[])]),null),new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Term(".",[new t.type.Var("A"),new t.type.Var("As")]),new t.type.Term(".",[new t.type.Var("B"),new t.type.Var("Bs")]),new t.type.Term(".",[new t.type.Var("C"),new t.type.Var("Cs")]),new t.type.Term(".",[new t.type.Var("D"),new t.type.Var("Ds")])]),new t.type.Term(",",[new t.type.Term("call",[new t.type.Var("P"),new t.type.Var("A"),new t.type.Var("B"),new t.type.Var("C"),new t.type.Var("D")]),new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Var("As"),new t.type.Var("Bs"),new t.type.Var("Cs"),new t.type.Var("Ds")])]))],"maplist/6":[new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("_"),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[])]),null),new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Term(".",[new t.type.Var("A"),new t.type.Var("As")]),new t.type.Term(".",[new t.type.Var("B"),new t.type.Var("Bs")]),new t.type.Term(".",[new t.type.Var("C"),new t.type.Var("Cs")]),new t.type.Term(".",[new t.type.Var("D"),new t.type.Var("Ds")]),new t.type.Term(".",[new t.type.Var("E"),new t.type.Var("Es")])]),new t.type.Term(",",[new t.type.Term("call",[new t.type.Var("P"),new t.type.Var("A"),new t.type.Var("B"),new t.type.Var("C"),new t.type.Var("D"),new t.type.Var("E")]),new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Var("As"),new t.type.Var("Bs"),new t.type.Var("Cs"),new t.type.Var("Ds"),new t.type.Var("Es")])]))],"maplist/7":[new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("_"),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[])]),null),new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Term(".",[new t.type.Var("A"),new t.type.Var("As")]),new t.type.Term(".",[new t.type.Var("B"),new t.type.Var("Bs")]),new t.type.Term(".",[new t.type.Var("C"),new t.type.Var("Cs")]),new t.type.Term(".",[new t.type.Var("D"),new t.type.Var("Ds")]),new t.type.Term(".",[new t.type.Var("E"),new t.type.Var("Es")]),new t.type.Term(".",[new t.type.Var("F"),new t.type.Var("Fs")])]),new t.type.Term(",",[new t.type.Term("call",[new t.type.Var("P"),new t.type.Var("A"),new t.type.Var("B"),new t.type.Var("C"),new t.type.Var("D"),new t.type.Var("E"),new t.type.Var("F")]),new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Var("As"),new t.type.Var("Bs"),new t.type.Var("Cs"),new t.type.Var("Ds"),new t.type.Var("Es"),new t.type.Var("Fs")])]))],"maplist/8":[new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("_"),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[])]),null),new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Term(".",[new t.type.Var("A"),new t.type.Var("As")]),new t.type.Term(".",[new t.type.Var("B"),new t.type.Var("Bs")]),new t.type.Term(".",[new t.type.Var("C"),new t.type.Var("Cs")]),new t.type.Term(".",[new t.type.Var("D"),new t.type.Var("Ds")]),new t.type.Term(".",[new t.type.Var("E"),new t.type.Var("Es")]),new t.type.Term(".",[new t.type.Var("F"),new t.type.Var("Fs")]),new t.type.Term(".",[new t.type.Var("G"),new t.type.Var("Gs")])]),new t.type.Term(",",[new t.type.Term("call",[new t.type.Var("P"),new t.type.Var("A"),new t.type.Var("B"),new t.type.Var("C"),new t.type.Var("D"),new t.type.Var("E"),new t.type.Var("F"),new t.type.Var("G")]),new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Var("As"),new t.type.Var("Bs"),new t.type.Var("Cs"),new t.type.Var("Ds"),new t.type.Var("Es"),new t.type.Var("Fs"),new t.type.Var("Gs")])]))],"include/3":[new t.type.Rule(new t.type.Term("include",[new t.type.Var("_"),new t.type.Term("[]",[]),new t.type.Term("[]",[])]),null),new t.type.Rule(new t.type.Term("include",[new t.type.Var("P"),new t.type.Term(".",[new t.type.Var("H"),new t.type.Var("T")]),new t.type.Var("L")]),new t.type.Term(",",[new t.type.Term("=..",[new t.type.Var("P"),new t.type.Var("A")]),new t.type.Term(",",[new t.type.Term("append",[new t.type.Var("A"),new t.type.Term(".",[new t.type.Var("H"),new t.type.Term("[]",[])]),new t.type.Var("B")]),new t.type.Term(",",[new t.type.Term("=..",[new t.type.Var("F"),new t.type.Var("B")]),new t.type.Term(",",[new t.type.Term(";",[new t.type.Term(",",[new t.type.Term("call",[new t.type.Var("F")]),new t.type.Term(",",[new t.type.Term("=",[new t.type.Var("L"),new t.type.Term(".",[new t.type.Var("H"),new t.type.Var("S")])]),new t.type.Term("!",[])])]),new t.type.Term("=",[new t.type.Var("L"),new t.type.Var("S")])]),new t.type.Term("include",[new t.type.Var("P"),new t.type.Var("T"),new t.type.Var("S")])])])])]))],"exclude/3":[new t.type.Rule(new t.type.Term("exclude",[new t.type.Var("_"),new t.type.Term("[]",[]),new t.type.Term("[]",[])]),null),new t.type.Rule(new t.type.Term("exclude",[new t.type.Var("P"),new t.type.Term(".",[new t.type.Var("H"),new t.type.Var("T")]),new t.type.Var("S")]),new t.type.Term(",",[new t.type.Term("exclude",[new t.type.Var("P"),new t.type.Var("T"),new t.type.Var("E")]),new t.type.Term(",",[new t.type.Term("=..",[new t.type.Var("P"),new t.type.Var("L")]),new t.type.Term(",",[new t.type.Term("append",[new t.type.Var("L"),new t.type.Term(".",[new t.type.Var("H"),new t.type.Term("[]",[])]),new t.type.Var("Q")]),new t.type.Term(",",[new t.type.Term("=..",[new t.type.Var("R"),new t.type.Var("Q")]),new t.type.Term(";",[new t.type.Term(",",[new t.type.Term("call",[new t.type.Var("R")]),new t.type.Term(",",[new t.type.Term("!",[]),new t.type.Term("=",[new t.type.Var("S"),new t.type.Var("E")])])]),new t.type.Term("=",[new t.type.Var("S"),new t.type.Term(".",[new t.type.Var("H"),new t.type.Var("E")])])])])])])]))],"foldl/4":[new t.type.Rule(new t.type.Term("foldl",[new t.type.Var("_"),new t.type.Term("[]",[]),new t.type.Var("I"),new t.type.Var("I")]),null),new t.type.Rule(new t.type.Term("foldl",[new t.type.Var("P"),new t.type.Term(".",[new t.type.Var("H"),new t.type.Var("T")]),new t.type.Var("I"),new t.type.Var("R")]),new t.type.Term(",",[new t.type.Term("=..",[new t.type.Var("P"),new t.type.Var("L")]),new t.type.Term(",",[new t.type.Term("append",[new t.type.Var("L"),new t.type.Term(".",[new t.type.Var("I"),new t.type.Term(".",[new t.type.Var("H"),new t.type.Term(".",[new t.type.Var("X"),new t.type.Term("[]",[])])])]),new t.type.Var("L2")]),new t.type.Term(",",[new t.type.Term("=..",[new t.type.Var("P2"),new t.type.Var("L2")]),new t.type.Term(",",[new t.type.Term("call",[new t.type.Var("P2")]),new t.type.Term("foldl",[new t.type.Var("P"),new t.type.Var("T"),new t.type.Var("X"),new t.type.Var("R")])])])])]))],"select/3":[new t.type.Rule(new t.type.Term("select",[new t.type.Var("E"),new t.type.Term(".",[new t.type.Var("E"),new t.type.Var("Xs")]),new t.type.Var("Xs")]),null),new t.type.Rule(new t.type.Term("select",[new t.type.Var("E"),new t.type.Term(".",[new t.type.Var("X"),new t.type.Var("Xs")]),new t.type.Term(".",[new t.type.Var("X"),new t.type.Var("Ys")])]),new t.type.Term("select",[new t.type.Var("E"),new t.type.Var("Xs"),new t.type.Var("Ys")]))],"sum_list/2":[new t.type.Rule(new t.type.Term("sum_list",[new t.type.Term("[]",[]),new t.type.Num(0,!1)]),null),new t.type.Rule(new t.type.Term("sum_list",[new t.type.Term(".",[new t.type.Var("X"),new t.type.Var("Xs")]),new t.type.Var("S")]),new t.type.Term(",",[new t.type.Term("sum_list",[new t.type.Var("Xs"),new t.type.Var("Y")]),new t.type.Term("is",[new t.type.Var("S"),new t.type.Term("+",[new t.type.Var("X"),new t.type.Var("Y")])])]))],"max_list/2":[new t.type.Rule(new t.type.Term("max_list",[new t.type.Term(".",[new t.type.Var("X"),new t.type.Term("[]",[])]),new t.type.Var("X")]),null),new t.type.Rule(new t.type.Term("max_list",[new t.type.Term(".",[new t.type.Var("X"),new t.type.Var("Xs")]),new t.type.Var("S")]),new t.type.Term(",",[new t.type.Term("max_list",[new t.type.Var("Xs"),new t.type.Var("Y")]),new t.type.Term(";",[new t.type.Term(",",[new t.type.Term(">=",[new t.type.Var("X"),new t.type.Var("Y")]),new t.type.Term(",",[new t.type.Term("=",[new t.type.Var("S"),new t.type.Var("X")]),new t.type.Term("!",[])])]),new t.type.Term("=",[new t.type.Var("S"),new t.type.Var("Y")])])]))],"min_list/2":[new t.type.Rule(new t.type.Term("min_list",[new t.type.Term(".",[new t.type.Var("X"),new t.type.Term("[]",[])]),new t.type.Var("X")]),null),new t.type.Rule(new t.type.Term("min_list",[new t.type.Term(".",[new t.type.Var("X"),new t.type.Var("Xs")]),new t.type.Var("S")]),new t.type.Term(",",[new t.type.Term("min_list",[new t.type.Var("Xs"),new t.type.Var("Y")]),new t.type.Term(";",[new t.type.Term(",",[new t.type.Term("=<",[new t.type.Var("X"),new t.type.Var("Y")]),new t.type.Term(",",[new t.type.Term("=",[new t.type.Var("S"),new t.type.Var("X")]),new t.type.Term("!",[])])]),new t.type.Term("=",[new t.type.Var("S"),new t.type.Var("Y")])])]))],"prod_list/2":[new t.type.Rule(new t.type.Term("prod_list",[new t.type.Term("[]",[]),new t.type.Num(1,!1)]),null),new t.type.Rule(new t.type.Term("prod_list",[new t.type.Term(".",[new t.type.Var("X"),new t.type.Var("Xs")]),new t.type.Var("S")]),new t.type.Term(",",[new t.type.Term("prod_list",[new t.type.Var("Xs"),new t.type.Var("Y")]),new t.type.Term("is",[new t.type.Var("S"),new t.type.Term("*",[new t.type.Var("X"),new t.type.Var("Y")])])]))],"last/2":[new t.type.Rule(new t.type.Term("last",[new t.type.Term(".",[new t.type.Var("X"),new t.type.Term("[]",[])]),new t.type.Var("X")]),null),new t.type.Rule(new t.type.Term("last",[new t.type.Term(".",[new t.type.Var("_"),new t.type.Var("Xs")]),new t.type.Var("X")]),new t.type.Term("last",[new t.type.Var("Xs"),new t.type.Var("X")]))],"prefix/2":[new t.type.Rule(new t.type.Term("prefix",[new t.type.Var("Part"),new t.type.Var("Whole")]),new t.type.Term("append",[new t.type.Var("Part"),new t.type.Var("_"),new t.type.Var("Whole")]))],"nth0/3":[new t.type.Rule(new t.type.Term("nth0",[new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("Z")]),new t.type.Term(";",[new t.type.Term("->",[new t.type.Term("var",[new t.type.Var("X")]),new t.type.Term("nth",[new t.type.Num(0,!1),new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("Z"),new t.type.Var("_")])]),new t.type.Term(",",[new t.type.Term(">=",[new t.type.Var("X"),new t.type.Num(0,!1)]),new t.type.Term(",",[new t.type.Term("nth",[new t.type.Num(0,!1),new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("Z"),new t.type.Var("_")]),new t.type.Term("!",[])])])]))],"nth1/3":[new t.type.Rule(new t.type.Term("nth1",[new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("Z")]),new t.type.Term(";",[new t.type.Term("->",[new t.type.Term("var",[new t.type.Var("X")]),new t.type.Term("nth",[new t.type.Num(1,!1),new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("Z"),new t.type.Var("_")])]),new t.type.Term(",",[new t.type.Term(">",[new t.type.Var("X"),new t.type.Num(0,!1)]),new t.type.Term(",",[new t.type.Term("nth",[new t.type.Num(1,!1),new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("Z"),new t.type.Var("_")]),new t.type.Term("!",[])])])]))],"nth0/4":[new t.type.Rule(new t.type.Term("nth0",[new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("Z"),new t.type.Var("W")]),new t.type.Term(";",[new t.type.Term("->",[new t.type.Term("var",[new t.type.Var("X")]),new t.type.Term("nth",[new t.type.Num(0,!1),new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("Z"),new t.type.Var("W")])]),new t.type.Term(",",[new t.type.Term(">=",[new t.type.Var("X"),new t.type.Num(0,!1)]),new t.type.Term(",",[new t.type.Term("nth",[new t.type.Num(0,!1),new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("Z"),new t.type.Var("W")]),new t.type.Term("!",[])])])]))],"nth1/4":[new t.type.Rule(new t.type.Term("nth1",[new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("Z"),new t.type.Var("W")]),new t.type.Term(";",[new t.type.Term("->",[new t.type.Term("var",[new t.type.Var("X")]),new t.type.Term("nth",[new t.type.Num(1,!1),new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("Z"),new t.type.Var("W")])]),new t.type.Term(",",[new t.type.Term(">",[new t.type.Var("X"),new t.type.Num(0,!1)]),new t.type.Term(",",[new t.type.Term("nth",[new t.type.Num(1,!1),new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("Z"),new t.type.Var("W")]),new t.type.Term("!",[])])])]))],"nth/5":[new t.type.Rule(new t.type.Term("nth",[new t.type.Var("N"),new t.type.Var("N"),new t.type.Term(".",[new t.type.Var("X"),new t.type.Var("Xs")]),new t.type.Var("X"),new t.type.Var("Xs")]),null),new t.type.Rule(new t.type.Term("nth",[new t.type.Var("N"),new t.type.Var("O"),new t.type.Term(".",[new t.type.Var("X"),new t.type.Var("Xs")]),new t.type.Var("Y"),new t.type.Term(".",[new t.type.Var("X"),new t.type.Var("Ys")])]),new t.type.Term(",",[new t.type.Term("is",[new t.type.Var("M"),new t.type.Term("+",[new t.type.Var("N"),new t.type.Num(1,!1)])]),new t.type.Term("nth",[new t.type.Var("M"),new t.type.Var("O"),new t.type.Var("Xs"),new t.type.Var("Y"),new t.type.Var("Ys")])]))],"length/2":function(o,a,n){var u=n.args[0],A=n.args[1];if(!t.type.is_variable(A)&&!t.type.is_integer(A))o.throw_error(t.error.type("integer",A,n.indicator));else if(t.type.is_integer(A)&&A.value<0)o.throw_error(t.error.domain("not_less_than_zero",A,n.indicator));else{var p=new t.type.Term("length",[u,new t.type.Num(0,!1),A]);t.type.is_integer(A)&&(p=new t.type.Term(",",[p,new t.type.Term("!",[])])),o.prepend([new t.type.State(a.goal.replace(p),a.substitution,a)])}},"length/3":[new t.type.Rule(new t.type.Term("length",[new t.type.Term("[]",[]),new t.type.Var("N"),new t.type.Var("N")]),null),new t.type.Rule(new t.type.Term("length",[new t.type.Term(".",[new t.type.Var("_"),new t.type.Var("X")]),new t.type.Var("A"),new t.type.Var("N")]),new t.type.Term(",",[new t.type.Term("succ",[new t.type.Var("A"),new t.type.Var("B")]),new t.type.Term("length",[new t.type.Var("X"),new t.type.Var("B"),new t.type.Var("N")])]))],"replicate/3":function(o,a,n){var u=n.args[0],A=n.args[1],p=n.args[2];if(t.type.is_variable(A))o.throw_error(t.error.instantiation(n.indicator));else if(!t.type.is_integer(A))o.throw_error(t.error.type("integer",A,n.indicator));else if(A.value<0)o.throw_error(t.error.domain("not_less_than_zero",A,n.indicator));else if(!t.type.is_variable(p)&&!t.type.is_list(p))o.throw_error(t.error.type("list",p,n.indicator));else{for(var h=new t.type.Term("[]"),E=0;E0;I--)E[I].equals(E[I-1])&&E.splice(I,1);for(var v=new t.type.Term("[]"),I=E.length-1;I>=0;I--)v=new t.type.Term(".",[E[I],v]);o.prepend([new t.type.State(a.goal.replace(new t.type.Term("=",[v,A])),a.substitution,a)])}}},"msort/2":function(o,a,n){var u=n.args[0],A=n.args[1];if(t.type.is_variable(u))o.throw_error(t.error.instantiation(n.indicator));else if(!t.type.is_variable(A)&&!t.type.is_fully_list(A))o.throw_error(t.error.type("list",A,n.indicator));else{for(var p=[],h=u;h.indicator==="./2";)p.push(h.args[0]),h=h.args[1];if(t.type.is_variable(h))o.throw_error(t.error.instantiation(n.indicator));else if(!t.type.is_empty_list(h))o.throw_error(t.error.type("list",u,n.indicator));else{for(var E=p.sort(t.compare),I=new t.type.Term("[]"),v=E.length-1;v>=0;v--)I=new t.type.Term(".",[E[v],I]);o.prepend([new t.type.State(a.goal.replace(new t.type.Term("=",[I,A])),a.substitution,a)])}}},"keysort/2":function(o,a,n){var u=n.args[0],A=n.args[1];if(t.type.is_variable(u))o.throw_error(t.error.instantiation(n.indicator));else if(!t.type.is_variable(A)&&!t.type.is_fully_list(A))o.throw_error(t.error.type("list",A,n.indicator));else{for(var p=[],h,E=u;E.indicator==="./2";){if(h=E.args[0],t.type.is_variable(h)){o.throw_error(t.error.instantiation(n.indicator));return}else if(!t.type.is_term(h)||h.indicator!=="-/2"){o.throw_error(t.error.type("pair",h,n.indicator));return}h.args[0].pair=h.args[1],p.push(h.args[0]),E=E.args[1]}if(t.type.is_variable(E))o.throw_error(t.error.instantiation(n.indicator));else if(!t.type.is_empty_list(E))o.throw_error(t.error.type("list",u,n.indicator));else{for(var I=p.sort(t.compare),v=new t.type.Term("[]"),x=I.length-1;x>=0;x--)v=new t.type.Term(".",[new t.type.Term("-",[I[x],I[x].pair]),v]),delete I[x].pair;o.prepend([new t.type.State(a.goal.replace(new t.type.Term("=",[v,A])),a.substitution,a)])}}},"take/3":function(o,a,n){var u=n.args[0],A=n.args[1],p=n.args[2];if(t.type.is_variable(A)||t.type.is_variable(u))o.throw_error(t.error.instantiation(n.indicator));else if(!t.type.is_list(A))o.throw_error(t.error.type("list",A,n.indicator));else if(!t.type.is_integer(u))o.throw_error(t.error.type("integer",u,n.indicator));else if(!t.type.is_variable(p)&&!t.type.is_list(p))o.throw_error(t.error.type("list",p,n.indicator));else{for(var h=u.value,E=[],I=A;h>0&&I.indicator==="./2";)E.push(I.args[0]),I=I.args[1],h--;if(h===0){for(var v=new t.type.Term("[]"),h=E.length-1;h>=0;h--)v=new t.type.Term(".",[E[h],v]);o.prepend([new t.type.State(a.goal.replace(new t.type.Term("=",[v,p])),a.substitution,a)])}}},"drop/3":function(o,a,n){var u=n.args[0],A=n.args[1],p=n.args[2];if(t.type.is_variable(A)||t.type.is_variable(u))o.throw_error(t.error.instantiation(n.indicator));else if(!t.type.is_list(A))o.throw_error(t.error.type("list",A,n.indicator));else if(!t.type.is_integer(u))o.throw_error(t.error.type("integer",u,n.indicator));else if(!t.type.is_variable(p)&&!t.type.is_list(p))o.throw_error(t.error.type("list",p,n.indicator));else{for(var h=u.value,E=[],I=A;h>0&&I.indicator==="./2";)E.push(I.args[0]),I=I.args[1],h--;h===0&&o.prepend([new t.type.State(a.goal.replace(new t.type.Term("=",[I,p])),a.substitution,a)])}},"reverse/2":function(o,a,n){var u=n.args[0],A=n.args[1],p=t.type.is_instantiated_list(u),h=t.type.is_instantiated_list(A);if(t.type.is_variable(u)&&t.type.is_variable(A))o.throw_error(t.error.instantiation(n.indicator));else if(!t.type.is_variable(u)&&!t.type.is_fully_list(u))o.throw_error(t.error.type("list",u,n.indicator));else if(!t.type.is_variable(A)&&!t.type.is_fully_list(A))o.throw_error(t.error.type("list",A,n.indicator));else if(!p&&!h)o.throw_error(t.error.instantiation(n.indicator));else{for(var E=p?u:A,I=new t.type.Term("[]",[]);E.indicator==="./2";)I=new t.type.Term(".",[E.args[0],I]),E=E.args[1];o.prepend([new t.type.State(a.goal.replace(new t.type.Term("=",[I,p?A:u])),a.substitution,a)])}},"list_to_set/2":function(o,a,n){var u=n.args[0],A=n.args[1];if(t.type.is_variable(u))o.throw_error(t.error.instantiation(n.indicator));else{for(var p=u,h=[];p.indicator==="./2";)h.push(p.args[0]),p=p.args[1];if(t.type.is_variable(p))o.throw_error(t.error.instantiation(n.indicator));else if(!t.type.is_term(p)||p.indicator!=="[]/0")o.throw_error(t.error.type("list",u,n.indicator));else{for(var E=[],I=new t.type.Term("[]",[]),v,x=0;x=0;x--)I=new t.type.Term(".",[E[x],I]);o.prepend([new t.type.State(a.goal.replace(new t.type.Term("=",[A,I])),a.substitution,a)])}}}}},r=["append/2","append/3","member/2","permutation/2","maplist/2","maplist/3","maplist/4","maplist/5","maplist/6","maplist/7","maplist/8","include/3","exclude/3","foldl/4","sum_list/2","max_list/2","min_list/2","prod_list/2","last/2","prefix/2","nth0/3","nth1/3","nth0/4","nth1/4","length/2","replicate/3","select/3","sort/2","msort/2","keysort/2","take/3","drop/3","reverse/2","list_to_set/2"];typeof sH<"u"?sH.exports=function(o){t=o,new t.type.Module("lists",e(),r)}:new t.type.Module("lists",e(),r)})(qgt)});var nme=_(Yr=>{"use strict";var $d=process.platform==="win32",oH="aes-256-cbc",jgt="sha256",Yde="The current environment doesn't support interactive reading from TTY.",Yn=ve("fs"),jde=process.binding("tty_wrap").TTY,lH=ve("child_process"),c0=ve("path"),cH={prompt:"> ",hideEchoBack:!1,mask:"*",limit:[],limitMessage:"Input another, please.$<( [)limit(])>",defaultInput:"",trueValue:[],falseValue:[],caseSensitive:!1,keepWhitespace:!1,encoding:"utf8",bufferSize:1024,print:void 0,history:!0,cd:!1,phContent:void 0,preCheck:void 0},zf="none",Xc,BC,Gde=!1,l0,mk,aH,Ggt=0,hH="",Zd=[],yk,Wde=!1,uH=!1,D2=!1;function Kde(t){function e(r){return r.replace(/[^\w\u0080-\uFFFF]/g,function(o){return"#"+o.charCodeAt(0)+";"})}return mk.concat(function(r){var o=[];return Object.keys(r).forEach(function(a){r[a]==="boolean"?t[a]&&o.push("--"+a):r[a]==="string"&&t[a]&&o.push("--"+a,e(t[a]))}),o}({display:"string",displayOnly:"boolean",keyIn:"boolean",hideEchoBack:"boolean",mask:"string",limit:"string",caseSensitive:"boolean"}))}function Ygt(t,e){function r(U){var J,te="",ae;for(aH=aH||ve("os").tmpdir();;){J=c0.join(aH,U+te);try{ae=Yn.openSync(J,"wx")}catch(fe){if(fe.code==="EEXIST"){te++;continue}else throw fe}Yn.closeSync(ae);break}return J}var o,a,n,u={},A,p,h=r("readline-sync.stdout"),E=r("readline-sync.stderr"),I=r("readline-sync.exit"),v=r("readline-sync.done"),x=ve("crypto"),C,R,L;C=x.createHash(jgt),C.update(""+process.pid+Ggt+++Math.random()),L=C.digest("hex"),R=x.createDecipher(oH,L),o=Kde(t),$d?(a=process.env.ComSpec||"cmd.exe",process.env.Q='"',n=["/V:ON","/S","/C","(%Q%"+a+"%Q% /V:ON /S /C %Q%%Q%"+l0+"%Q%"+o.map(function(U){return" %Q%"+U+"%Q%"}).join("")+" & (echo !ERRORLEVEL!)>%Q%"+I+"%Q%%Q%) 2>%Q%"+E+"%Q% |%Q%"+process.execPath+"%Q% %Q%"+__dirname+"\\encrypt.js%Q% %Q%"+oH+"%Q% %Q%"+L+"%Q% >%Q%"+h+"%Q% & (echo 1)>%Q%"+v+"%Q%"]):(a="/bin/sh",n=["-c",'("'+l0+'"'+o.map(function(U){return" '"+U.replace(/'/g,"'\\''")+"'"}).join("")+'; echo $?>"'+I+'") 2>"'+E+'" |"'+process.execPath+'" "'+__dirname+'/encrypt.js" "'+oH+'" "'+L+'" >"'+h+'"; echo 1 >"'+v+'"']),D2&&D2("_execFileSync",o);try{lH.spawn(a,n,e)}catch(U){u.error=new Error(U.message),u.error.method="_execFileSync - spawn",u.error.program=a,u.error.args=n}for(;Yn.readFileSync(v,{encoding:t.encoding}).trim()!=="1";);return(A=Yn.readFileSync(I,{encoding:t.encoding}).trim())==="0"?u.input=R.update(Yn.readFileSync(h,{encoding:"binary"}),"hex",t.encoding)+R.final(t.encoding):(p=Yn.readFileSync(E,{encoding:t.encoding}).trim(),u.error=new Error(Yde+(p?` +`+p:"")),u.error.method="_execFileSync",u.error.program=a,u.error.args=n,u.error.extMessage=p,u.error.exitCode=+A),Yn.unlinkSync(h),Yn.unlinkSync(E),Yn.unlinkSync(I),Yn.unlinkSync(v),u}function Wgt(t){var e,r={},o,a={env:process.env,encoding:t.encoding};if(l0||($d?process.env.PSModulePath?(l0="powershell.exe",mk=["-ExecutionPolicy","Bypass","-File",__dirname+"\\read.ps1"]):(l0="cscript.exe",mk=["//nologo",__dirname+"\\read.cs.js"]):(l0="/bin/sh",mk=[__dirname+"/read.sh"])),$d&&!process.env.PSModulePath&&(a.stdio=[process.stdin]),lH.execFileSync){e=Kde(t),D2&&D2("execFileSync",e);try{r.input=lH.execFileSync(l0,e,a)}catch(n){o=n.stderr?(n.stderr+"").trim():"",r.error=new Error(Yde+(o?` +`+o:"")),r.error.method="execFileSync",r.error.program=l0,r.error.args=e,r.error.extMessage=o,r.error.exitCode=n.status,r.error.code=n.code,r.error.signal=n.signal}}else r=Ygt(t,a);return r.error||(r.input=r.input.replace(/^\s*'|'\s*$/g,""),t.display=""),r}function AH(t){var e="",r=t.display,o=!t.display&&t.keyIn&&t.hideEchoBack&&!t.mask;function a(){var n=Wgt(t);if(n.error)throw n.error;return n.input}return uH&&uH(t),function(){var n,u,A;function p(){return n||(n=process.binding("fs"),u=process.binding("constants")),n}if(typeof zf=="string")if(zf=null,$d){if(A=function(h){var E=h.replace(/^\D+/,"").split("."),I=0;return(E[0]=+E[0])&&(I+=E[0]*1e4),(E[1]=+E[1])&&(I+=E[1]*100),(E[2]=+E[2])&&(I+=E[2]),I}(process.version),!(A>=20302&&A<40204||A>=5e4&&A<50100||A>=50600&&A<60200)&&process.stdin.isTTY)process.stdin.pause(),zf=process.stdin.fd,BC=process.stdin._handle;else try{zf=p().open("CONIN$",u.O_RDWR,parseInt("0666",8)),BC=new jde(zf,!0)}catch{}if(process.stdout.isTTY)Xc=process.stdout.fd;else{try{Xc=Yn.openSync("\\\\.\\CON","w")}catch{}if(typeof Xc!="number")try{Xc=p().open("CONOUT$",u.O_RDWR,parseInt("0666",8))}catch{}}}else{if(process.stdin.isTTY){process.stdin.pause();try{zf=Yn.openSync("/dev/tty","r"),BC=process.stdin._handle}catch{}}else try{zf=Yn.openSync("/dev/tty","r"),BC=new jde(zf,!1)}catch{}if(process.stdout.isTTY)Xc=process.stdout.fd;else try{Xc=Yn.openSync("/dev/tty","w")}catch{}}}(),function(){var n,u,A=!t.hideEchoBack&&!t.keyIn,p,h,E,I,v;yk="";function x(C){return C===Gde?!0:BC.setRawMode(C)!==0?!1:(Gde=C,!0)}if(Wde||!BC||typeof Xc!="number"&&(t.display||!A)){e=a();return}if(t.display&&(Yn.writeSync(Xc,t.display),t.display=""),!t.displayOnly){if(!x(!A)){e=a();return}for(h=t.keyIn?1:t.bufferSize,p=Buffer.allocUnsafe&&Buffer.alloc?Buffer.alloc(h):new Buffer(h),t.keyIn&&t.limit&&(u=new RegExp("[^"+t.limit+"]","g"+(t.caseSensitive?"":"i")));;){E=0;try{E=Yn.readSync(zf,p,0,h)}catch(C){if(C.code!=="EOF"){x(!1),e+=a();return}}if(E>0?(I=p.toString(t.encoding,0,E),yk+=I):(I=` +`,yk+=String.fromCharCode(0)),I&&typeof(v=(I.match(/^(.*?)[\r\n]/)||[])[1])=="string"&&(I=v,n=!0),I&&(I=I.replace(/[\x00-\x08\x0b\x0c\x0e-\x1f\x7f]/g,"")),I&&u&&(I=I.replace(u,"")),I&&(A||(t.hideEchoBack?t.mask&&Yn.writeSync(Xc,new Array(I.length+1).join(t.mask)):Yn.writeSync(Xc,I)),e+=I),!t.keyIn&&n||t.keyIn&&e.length>=h)break}!A&&!o&&Yn.writeSync(Xc,` +`),x(!1)}}(),t.print&&!o&&t.print(r+(t.displayOnly?"":(t.hideEchoBack?new Array(e.length+1).join(t.mask):e)+` +`),t.encoding),t.displayOnly?"":hH=t.keepWhitespace||t.keyIn?e:e.trim()}function Kgt(t,e){var r=[];function o(a){a!=null&&(Array.isArray(a)?a.forEach(o):(!e||e(a))&&r.push(a))}return o(t),r}function gH(t){return t.replace(/[\x00-\x7f]/g,function(e){return"\\x"+("00"+e.charCodeAt().toString(16)).substr(-2)})}function Rs(){var t=Array.prototype.slice.call(arguments),e,r;return t.length&&typeof t[0]=="boolean"&&(r=t.shift(),r&&(e=Object.keys(cH),t.unshift(cH))),t.reduce(function(o,a){return a==null||(a.hasOwnProperty("noEchoBack")&&!a.hasOwnProperty("hideEchoBack")&&(a.hideEchoBack=a.noEchoBack,delete a.noEchoBack),a.hasOwnProperty("noTrim")&&!a.hasOwnProperty("keepWhitespace")&&(a.keepWhitespace=a.noTrim,delete a.noTrim),r||(e=Object.keys(a)),e.forEach(function(n){var u;if(!!a.hasOwnProperty(n))switch(u=a[n],n){case"mask":case"limitMessage":case"defaultInput":case"encoding":u=u!=null?u+"":"",u&&n!=="limitMessage"&&(u=u.replace(/[\r\n]/g,"")),o[n]=u;break;case"bufferSize":!isNaN(u=parseInt(u,10))&&typeof u=="number"&&(o[n]=u);break;case"displayOnly":case"keyIn":case"hideEchoBack":case"caseSensitive":case"keepWhitespace":case"history":case"cd":o[n]=!!u;break;case"limit":case"trueValue":case"falseValue":o[n]=Kgt(u,function(A){var p=typeof A;return p==="string"||p==="number"||p==="function"||A instanceof RegExp}).map(function(A){return typeof A=="string"?A.replace(/[\r\n]/g,""):A});break;case"print":case"phContent":case"preCheck":o[n]=typeof u=="function"?u:void 0;break;case"prompt":case"display":o[n]=u??"";break}})),o},{})}function fH(t,e,r){return e.some(function(o){var a=typeof o;return a==="string"?r?t===o:t.toLowerCase()===o.toLowerCase():a==="number"?parseFloat(t)===o:a==="function"?o(t):o instanceof RegExp?o.test(t):!1})}function dH(t,e){var r=c0.normalize($d?(process.env.HOMEDRIVE||"")+(process.env.HOMEPATH||""):process.env.HOME||"").replace(/[\/\\]+$/,"");return t=c0.normalize(t),e?t.replace(/^~(?=\/|\\|$)/,r):t.replace(new RegExp("^"+gH(r)+"(?=\\/|\\\\|$)",$d?"i":""),"~")}function vC(t,e){var r="(?:\\(([\\s\\S]*?)\\))?(\\w+|.-.)(?:\\(([\\s\\S]*?)\\))?",o=new RegExp("(\\$)?(\\$<"+r+">)","g"),a=new RegExp("(\\$)?(\\$\\{"+r+"\\})","g");function n(u,A,p,h,E,I){var v;return A||typeof(v=e(E))!="string"?p:v?(h||"")+v+(I||""):""}return t.replace(o,n).replace(a,n)}function Vde(t,e,r){var o,a=[],n=-1,u=0,A="",p;function h(E,I){return I.length>3?(E.push(I[0]+"..."+I[I.length-1]),p=!0):I.length&&(E=E.concat(I)),E}return o=t.reduce(function(E,I){return E.concat((I+"").split(""))},[]).reduce(function(E,I){var v,x;return e||(I=I.toLowerCase()),v=/^\d$/.test(I)?1:/^[A-Z]$/.test(I)?2:/^[a-z]$/.test(I)?3:0,r&&v===0?A+=I:(x=I.charCodeAt(0),v&&v===n&&x===u+1?a.push(I):(E=h(E,a),a=[I],n=v),u=x),E},[]),o=h(o,a),A&&(o.push(A),p=!0),{values:o,suppressed:p}}function Jde(t,e){return t.join(t.length>2?", ":e?" / ":"/")}function zde(t,e){var r,o,a={},n;if(e.phContent&&(r=e.phContent(t,e)),typeof r!="string")switch(t){case"hideEchoBack":case"mask":case"defaultInput":case"caseSensitive":case"keepWhitespace":case"encoding":case"bufferSize":case"history":case"cd":r=e.hasOwnProperty(t)?typeof e[t]=="boolean"?e[t]?"on":"off":e[t]+"":"";break;case"limit":case"trueValue":case"falseValue":o=e[e.hasOwnProperty(t+"Src")?t+"Src":t],e.keyIn?(a=Vde(o,e.caseSensitive),o=a.values):o=o.filter(function(u){var A=typeof u;return A==="string"||A==="number"}),r=Jde(o,a.suppressed);break;case"limitCount":case"limitCountNotZero":r=e[e.hasOwnProperty("limitSrc")?"limitSrc":"limit"].length,r=r||t!=="limitCountNotZero"?r+"":"";break;case"lastInput":r=hH;break;case"cwd":case"CWD":case"cwdHome":r=process.cwd(),t==="CWD"?r=c0.basename(r):t==="cwdHome"&&(r=dH(r));break;case"date":case"time":case"localeDate":case"localeTime":r=new Date()["to"+t.replace(/^./,function(u){return u.toUpperCase()})+"String"]();break;default:typeof(n=(t.match(/^history_m(\d+)$/)||[])[1])=="string"&&(r=Zd[Zd.length-n]||"")}return r}function Xde(t){var e=/^(.)-(.)$/.exec(t),r="",o,a,n,u;if(!e)return null;for(o=e[1].charCodeAt(0),a=e[2].charCodeAt(0),u=o +And the length must be: $`,trueValue:null,falseValue:null,caseSensitive:!0},e,{history:!1,cd:!1,phContent:function(x){return x==="charlist"?r.text:x==="length"?o+"..."+a:null}}),u,A,p,h,E,I,v;for(e=e||{},u=vC(e.charlist?e.charlist+"":"$",Xde),(isNaN(o=parseInt(e.min,10))||typeof o!="number")&&(o=12),(isNaN(a=parseInt(e.max,10))||typeof a!="number")&&(a=24),h=new RegExp("^["+gH(u)+"]{"+o+","+a+"}$"),r=Vde([u],n.caseSensitive,!0),r.text=Jde(r.values,r.suppressed),A=e.confirmMessage!=null?e.confirmMessage:"Reinput a same one to confirm it: ",p=e.unmatchMessage!=null?e.unmatchMessage:"It differs from first one. Hit only the Enter key if you want to retry from first one.",t==null&&(t="Input new password: "),E=n.limitMessage;!v;)n.limit=h,n.limitMessage=E,I=Yr.question(t,n),n.limit=[I,""],n.limitMessage=p,v=Yr.question(A,n);return I};function eme(t,e,r){var o;function a(n){return o=r(n),!isNaN(o)&&typeof o=="number"}return Yr.question(t,Rs({limitMessage:"Input valid number, please."},e,{limit:a,cd:!1})),o}Yr.questionInt=function(t,e){return eme(t,e,function(r){return parseInt(r,10)})};Yr.questionFloat=function(t,e){return eme(t,e,parseFloat)};Yr.questionPath=function(t,e){var r,o="",a=Rs({hideEchoBack:!1,limitMessage:`$Input valid path, please.$<( Min:)min>$<( Max:)max>`,history:!0,cd:!0},e,{keepWhitespace:!1,limit:function(n){var u,A,p;n=dH(n,!0),o="";function h(E){E.split(/\/|\\/).reduce(function(I,v){var x=c0.resolve(I+=v+c0.sep);if(!Yn.existsSync(x))Yn.mkdirSync(x);else if(!Yn.statSync(x).isDirectory())throw new Error("Non directory already exists: "+x);return I},"")}try{if(u=Yn.existsSync(n),r=u?Yn.realpathSync(n):c0.resolve(n),!e.hasOwnProperty("exists")&&!u||typeof e.exists=="boolean"&&e.exists!==u)return o=(u?"Already exists":"No such file or directory")+": "+r,!1;if(!u&&e.create&&(e.isDirectory?h(r):(h(c0.dirname(r)),Yn.closeSync(Yn.openSync(r,"w"))),r=Yn.realpathSync(r)),u&&(e.min||e.max||e.isFile||e.isDirectory)){if(A=Yn.statSync(r),e.isFile&&!A.isFile())return o="Not file: "+r,!1;if(e.isDirectory&&!A.isDirectory())return o="Not directory: "+r,!1;if(e.min&&A.size<+e.min||e.max&&A.size>+e.max)return o="Size "+A.size+" is out of range: "+r,!1}if(typeof e.validate=="function"&&(p=e.validate(r))!==!0)return typeof p=="string"&&(o=p),!1}catch(E){return o=E+"",!1}return!0},phContent:function(n){return n==="error"?o:n!=="min"&&n!=="max"?null:e.hasOwnProperty(n)?e[n]+"":""}});return e=e||{},t==null&&(t='Input path (you can "cd" and "pwd"): '),Yr.question(t,a),r};function tme(t,e){var r={},o={};return typeof t=="object"?(Object.keys(t).forEach(function(a){typeof t[a]=="function"&&(o[e.caseSensitive?a:a.toLowerCase()]=t[a])}),r.preCheck=function(a){var n;return r.args=pH(a),n=r.args[0]||"",e.caseSensitive||(n=n.toLowerCase()),r.hRes=n!=="_"&&o.hasOwnProperty(n)?o[n].apply(a,r.args.slice(1)):o.hasOwnProperty("_")?o._.apply(a,r.args):null,{res:a,forceNext:!1}},o.hasOwnProperty("_")||(r.limit=function(){var a=r.args[0]||"";return e.caseSensitive||(a=a.toLowerCase()),o.hasOwnProperty(a)})):r.preCheck=function(a){return r.args=pH(a),r.hRes=typeof t=="function"?t.apply(a,r.args):!0,{res:a,forceNext:!1}},r}Yr.promptCL=function(t,e){var r=Rs({hideEchoBack:!1,limitMessage:"Requested command is not available.",caseSensitive:!1,history:!0},e),o=tme(t,r);return r.limit=o.limit,r.preCheck=o.preCheck,Yr.prompt(r),o.args};Yr.promptLoop=function(t,e){for(var r=Rs({hideEchoBack:!1,trueValue:null,falseValue:null,caseSensitive:!1,history:!0},e);!t(Yr.prompt(r)););};Yr.promptCLLoop=function(t,e){var r=Rs({hideEchoBack:!1,limitMessage:"Requested command is not available.",caseSensitive:!1,history:!0},e),o=tme(t,r);for(r.limit=o.limit,r.preCheck=o.preCheck;Yr.prompt(r),!o.hRes;);};Yr.promptSimShell=function(t){return Yr.prompt(Rs({hideEchoBack:!1,history:!0},t,{prompt:function(){return $d?"$>":(process.env.USER||"")+(process.env.HOSTNAME?"@"+process.env.HOSTNAME.replace(/\..*$/,""):"")+":$$ "}()}))};function rme(t,e,r){var o;return t==null&&(t="Are you sure? "),(!e||e.guide!==!1)&&(t+="")&&(t=t.replace(/\s*:?\s*$/,"")+" [y/n]: "),o=Yr.keyIn(t,Rs(e,{hideEchoBack:!1,limit:r,trueValue:"y",falseValue:"n",caseSensitive:!1})),typeof o=="boolean"?o:""}Yr.keyInYN=function(t,e){return rme(t,e)};Yr.keyInYNStrict=function(t,e){return rme(t,e,"yn")};Yr.keyInPause=function(t,e){t==null&&(t="Continue..."),(!e||e.guide!==!1)&&(t+="")&&(t=t.replace(/\s+$/,"")+" (Hit any key)"),Yr.keyIn(t,Rs({limit:null},e,{hideEchoBack:!0,mask:""}))};Yr.keyInSelect=function(t,e,r){var o=Rs({hideEchoBack:!1},r,{trueValue:null,falseValue:null,caseSensitive:!1,phContent:function(p){return p==="itemsCount"?t.length+"":p==="firstItem"?(t[0]+"").trim():p==="lastItem"?(t[t.length-1]+"").trim():null}}),a="",n={},u=49,A=` +`;if(!Array.isArray(t)||!t.length||t.length>35)throw"`items` must be Array (max length: 35).";return t.forEach(function(p,h){var E=String.fromCharCode(u);a+=E,n[E]=h,A+="["+E+"] "+(p+"").trim()+` +`,u=u===57?97:u+1}),(!r||r.cancel!==!1)&&(a+="0",n[0]=-1,A+="[0] "+(r&&r.cancel!=null&&typeof r.cancel!="boolean"?(r.cancel+"").trim():"CANCEL")+` +`),o.limit=a,A+=` +`,e==null&&(e="Choose one from list: "),(e+="")&&((!r||r.guide!==!1)&&(e=e.replace(/\s*:?\s*$/,"")+" [$]: "),A+=e),n[Yr.keyIn(A,o).toLowerCase()]};Yr.getRawInput=function(){return yk};function S2(t,e){var r;return e.length&&(r={},r[t]=e[0]),Yr.setDefaultOptions(r)[t]}Yr.setPrint=function(){return S2("print",arguments)};Yr.setPrompt=function(){return S2("prompt",arguments)};Yr.setEncoding=function(){return S2("encoding",arguments)};Yr.setMask=function(){return S2("mask",arguments)};Yr.setBufferSize=function(){return S2("bufferSize",arguments)}});var mH=_((t7t,hl)=>{(function(){var t={major:0,minor:2,patch:66,status:"beta"};tau_file_system={files:{},open:function(w,P,y){var F=tau_file_system.files[w];if(!F){if(y==="read")return null;F={path:w,text:"",type:P,get:function(z,X){return X===this.text.length||X>this.text.length?"end_of_file":this.text.substring(X,X+z)},put:function(z,X){return X==="end_of_file"?(this.text+=z,!0):X==="past_end_of_file"?null:(this.text=this.text.substring(0,X)+z+this.text.substring(X+z.length),!0)},get_byte:function(z){if(z==="end_of_stream")return-1;var X=Math.floor(z/2);if(this.text.length<=X)return-1;var Z=n(this.text[Math.floor(z/2)],0);return z%2===0?Z&255:Z/256>>>0},put_byte:function(z,X){var Z=X==="end_of_stream"?this.text.length:Math.floor(X/2);if(this.text.length>>0,ie=(ie&255)<<8|z&255):(ie=ie&255,ie=(z&255)<<8|ie&255),this.text.length===Z?this.text+=u(ie):this.text=this.text.substring(0,Z)+u(ie)+this.text.substring(Z+1),!0},flush:function(){return!0},close:function(){var z=tau_file_system.files[this.path];return z?!0:null}},tau_file_system.files[w]=F}return y==="write"&&(F.text=""),F}},tau_user_input={buffer:"",get:function(w,P){for(var y;tau_user_input.buffer.length\?\@\^\~\\]+|'(?:[^']*?(?:\\(?:x?\d+)?\\)*(?:'')*(?:\\')*)*')/,number:/^(?:0o[0-7]+|0x[0-9a-fA-F]+|0b[01]+|0'(?:''|\\[abfnrtv\\'"`]|\\x?\d+\\|[^\\])|\d+(?:\.\d+(?:[eE][+-]?\d+)?)?)/,string:/^(?:"([^"]|""|\\")*"|`([^`]|``|\\`)*`)/,l_brace:/^(?:\[)/,r_brace:/^(?:\])/,l_bracket:/^(?:\{)/,r_bracket:/^(?:\})/,bar:/^(?:\|)/,l_paren:/^(?:\()/,r_paren:/^(?:\))/};function L(w,P){return w.get_flag("char_conversion").id==="on"?P.replace(/./g,function(y){return w.get_char_conversion(y)}):P}function U(w){this.thread=w,this.text="",this.tokens=[]}U.prototype.set_last_tokens=function(w){return this.tokens=w},U.prototype.new_text=function(w){this.text=w,this.tokens=[]},U.prototype.get_tokens=function(w){var P,y=0,F=0,z=0,X=[],Z=!1;if(w){var ie=this.tokens[w-1];y=ie.len,P=L(this.thread,this.text.substr(ie.len)),F=ie.line,z=ie.start}else P=this.text;if(/^\s*$/.test(P))return null;for(;P!=="";){var Pe=[],Ne=!1;if(/^\n/.exec(P)!==null){F++,z=0,y++,P=P.replace(/\n/,""),Z=!0;continue}for(var ot in R)if(R.hasOwnProperty(ot)){var dt=R[ot].exec(P);dt&&Pe.push({value:dt[0],name:ot,matches:dt})}if(!Pe.length)return this.set_last_tokens([{value:P,matches:[],name:"lexical",line:F,start:z}]);var ie=r(Pe,function(Qr,mr){return Qr.value.length>=mr.value.length?Qr:mr});switch(ie.start=z,ie.line=F,P=P.replace(ie.value,""),z+=ie.value.length,y+=ie.value.length,ie.name){case"atom":ie.raw=ie.value,ie.value.charAt(0)==="'"&&(ie.value=v(ie.value.substr(1,ie.value.length-2),"'"),ie.value===null&&(ie.name="lexical",ie.value="unknown escape sequence"));break;case"number":ie.float=ie.value.substring(0,2)!=="0x"&&ie.value.match(/[.eE]/)!==null&&ie.value!=="0'.",ie.value=C(ie.value),ie.blank=Ne;break;case"string":var jt=ie.value.charAt(0);ie.value=v(ie.value.substr(1,ie.value.length-2),jt),ie.value===null&&(ie.name="lexical",ie.value="unknown escape sequence");break;case"whitespace":var $t=X[X.length-1];$t&&($t.space=!0),Ne=!0;continue;case"r_bracket":X.length>0&&X[X.length-1].name==="l_bracket"&&(ie=X.pop(),ie.name="atom",ie.value="{}",ie.raw="{}",ie.space=!1);break;case"r_brace":X.length>0&&X[X.length-1].name==="l_brace"&&(ie=X.pop(),ie.name="atom",ie.value="[]",ie.raw="[]",ie.space=!1);break}ie.len=y,X.push(ie),Ne=!1}var bt=this.set_last_tokens(X);return bt.length===0?null:bt};function J(w,P,y,F,z){if(!P[y])return{type:A,value:b.error.syntax(P[y-1],"expression expected",!0)};var X;if(F==="0"){var Z=P[y];switch(Z.name){case"number":return{type:p,len:y+1,value:new b.type.Num(Z.value,Z.float)};case"variable":return{type:p,len:y+1,value:new b.type.Var(Z.value)};case"string":var ie;switch(w.get_flag("double_quotes").id){case"atom":ie=new H(Z.value,[]);break;case"codes":ie=new H("[]",[]);for(var Pe=Z.value.length-1;Pe>=0;Pe--)ie=new H(".",[new b.type.Num(n(Z.value,Pe),!1),ie]);break;case"chars":ie=new H("[]",[]);for(var Pe=Z.value.length-1;Pe>=0;Pe--)ie=new H(".",[new b.type.Term(Z.value.charAt(Pe),[]),ie]);break}return{type:p,len:y+1,value:ie};case"l_paren":var bt=J(w,P,y+1,w.__get_max_priority(),!0);return bt.type!==p?bt:P[bt.len]&&P[bt.len].name==="r_paren"?(bt.len++,bt):{type:A,derived:!0,value:b.error.syntax(P[bt.len]?P[bt.len]:P[bt.len-1],") or operator expected",!P[bt.len])};case"l_bracket":var bt=J(w,P,y+1,w.__get_max_priority(),!0);return bt.type!==p?bt:P[bt.len]&&P[bt.len].name==="r_bracket"?(bt.len++,bt.value=new H("{}",[bt.value]),bt):{type:A,derived:!0,value:b.error.syntax(P[bt.len]?P[bt.len]:P[bt.len-1],"} or operator expected",!P[bt.len])}}var Ne=te(w,P,y,z);return Ne.type===p||Ne.derived||(Ne=ae(w,P,y),Ne.type===p||Ne.derived)?Ne:{type:A,derived:!1,value:b.error.syntax(P[y],"unexpected token")}}var ot=w.__get_max_priority(),dt=w.__get_next_priority(F),jt=y;if(P[y].name==="atom"&&P[y+1]&&(P[y].space||P[y+1].name!=="l_paren")){var Z=P[y++],$t=w.__lookup_operator_classes(F,Z.value);if($t&&$t.indexOf("fy")>-1){var bt=J(w,P,y,F,z);if(bt.type!==A)return Z.value==="-"&&!Z.space&&b.type.is_number(bt.value)?{value:new b.type.Num(-bt.value.value,bt.value.is_float),len:bt.len,type:p}:{value:new b.type.Term(Z.value,[bt.value]),len:bt.len,type:p};X=bt}else if($t&&$t.indexOf("fx")>-1){var bt=J(w,P,y,dt,z);if(bt.type!==A)return{value:new b.type.Term(Z.value,[bt.value]),len:bt.len,type:p};X=bt}}y=jt;var bt=J(w,P,y,dt,z);if(bt.type===p){y=bt.len;var Z=P[y];if(P[y]&&(P[y].name==="atom"&&w.__lookup_operator_classes(F,Z.value)||P[y].name==="bar"&&w.__lookup_operator_classes(F,"|"))){var an=dt,Qr=F,$t=w.__lookup_operator_classes(F,Z.value);if($t.indexOf("xf")>-1)return{value:new b.type.Term(Z.value,[bt.value]),len:++bt.len,type:p};if($t.indexOf("xfx")>-1){var mr=J(w,P,y+1,an,z);return mr.type===p?{value:new b.type.Term(Z.value,[bt.value,mr.value]),len:mr.len,type:p}:(mr.derived=!0,mr)}else if($t.indexOf("xfy")>-1){var mr=J(w,P,y+1,Qr,z);return mr.type===p?{value:new b.type.Term(Z.value,[bt.value,mr.value]),len:mr.len,type:p}:(mr.derived=!0,mr)}else if(bt.type!==A)for(;;){y=bt.len;var Z=P[y];if(Z&&Z.name==="atom"&&w.__lookup_operator_classes(F,Z.value)){var $t=w.__lookup_operator_classes(F,Z.value);if($t.indexOf("yf")>-1)bt={value:new b.type.Term(Z.value,[bt.value]),len:++y,type:p};else if($t.indexOf("yfx")>-1){var mr=J(w,P,++y,an,z);if(mr.type===A)return mr.derived=!0,mr;y=mr.len,bt={value:new b.type.Term(Z.value,[bt.value,mr.value]),len:y,type:p}}else break}else break}}else X={type:A,value:b.error.syntax(P[bt.len-1],"operator expected")};return bt}return bt}function te(w,P,y,F){if(!P[y]||P[y].name==="atom"&&P[y].raw==="."&&!F&&(P[y].space||!P[y+1]||P[y+1].name!=="l_paren"))return{type:A,derived:!1,value:b.error.syntax(P[y-1],"unfounded token")};var z=P[y],X=[];if(P[y].name==="atom"&&P[y].raw!==","){if(y++,P[y-1].space)return{type:p,len:y,value:new b.type.Term(z.value,X)};if(P[y]&&P[y].name==="l_paren"){if(P[y+1]&&P[y+1].name==="r_paren")return{type:A,derived:!0,value:b.error.syntax(P[y+1],"argument expected")};var Z=J(w,P,++y,"999",!0);if(Z.type===A)return Z.derived?Z:{type:A,derived:!0,value:b.error.syntax(P[y]?P[y]:P[y-1],"argument expected",!P[y])};for(X.push(Z.value),y=Z.len;P[y]&&P[y].name==="atom"&&P[y].value===",";){if(Z=J(w,P,y+1,"999",!0),Z.type===A)return Z.derived?Z:{type:A,derived:!0,value:b.error.syntax(P[y+1]?P[y+1]:P[y],"argument expected",!P[y+1])};X.push(Z.value),y=Z.len}if(P[y]&&P[y].name==="r_paren")y++;else return{type:A,derived:!0,value:b.error.syntax(P[y]?P[y]:P[y-1],", or ) expected",!P[y])}}return{type:p,len:y,value:new b.type.Term(z.value,X)}}return{type:A,derived:!1,value:b.error.syntax(P[y],"term expected")}}function ae(w,P,y){if(!P[y])return{type:A,derived:!1,value:b.error.syntax(P[y-1],"[ expected")};if(P[y]&&P[y].name==="l_brace"){var F=J(w,P,++y,"999",!0),z=[F.value],X=void 0;if(F.type===A)return P[y]&&P[y].name==="r_brace"?{type:p,len:y+1,value:new b.type.Term("[]",[])}:{type:A,derived:!0,value:b.error.syntax(P[y],"] expected")};for(y=F.len;P[y]&&P[y].name==="atom"&&P[y].value===",";){if(F=J(w,P,y+1,"999",!0),F.type===A)return F.derived?F:{type:A,derived:!0,value:b.error.syntax(P[y+1]?P[y+1]:P[y],"argument expected",!P[y+1])};z.push(F.value),y=F.len}var Z=!1;if(P[y]&&P[y].name==="bar"){if(Z=!0,F=J(w,P,y+1,"999",!0),F.type===A)return F.derived?F:{type:A,derived:!0,value:b.error.syntax(P[y+1]?P[y+1]:P[y],"argument expected",!P[y+1])};X=F.value,y=F.len}return P[y]&&P[y].name==="r_brace"?{type:p,len:y+1,value:g(z,X)}:{type:A,derived:!0,value:b.error.syntax(P[y]?P[y]:P[y-1],Z?"] expected":", or | or ] expected",!P[y])}}return{type:A,derived:!1,value:b.error.syntax(P[y],"list expected")}}function fe(w,P,y){var F=P[y].line,z=J(w,P,y,w.__get_max_priority(),!1),X=null,Z;if(z.type!==A)if(y=z.len,P[y]&&P[y].name==="atom"&&P[y].raw===".")if(y++,b.type.is_term(z.value)){if(z.value.indicator===":-/2"?(X=new b.type.Rule(z.value.args[0],we(z.value.args[1])),Z={value:X,len:y,type:p}):z.value.indicator==="-->/2"?(X=he(new b.type.Rule(z.value.args[0],z.value.args[1]),w),X.body=we(X.body),Z={value:X,len:y,type:b.type.is_rule(X)?p:A}):(X=new b.type.Rule(z.value,null),Z={value:X,len:y,type:p}),X){var ie=X.singleton_variables();ie.length>0&&w.throw_warning(b.warning.singleton(ie,X.head.indicator,F))}return Z}else return{type:A,value:b.error.syntax(P[y],"callable expected")};else return{type:A,value:b.error.syntax(P[y]?P[y]:P[y-1],". or operator expected")};return z}function ce(w,P,y){y=y||{},y.from=y.from?y.from:"$tau-js",y.reconsult=y.reconsult!==void 0?y.reconsult:!0;var F=new U(w),z={},X;F.new_text(P);var Z=0,ie=F.get_tokens(Z);do{if(ie===null||!ie[Z])break;var Pe=fe(w,ie,Z);if(Pe.type===A)return new H("throw",[Pe.value]);if(Pe.value.body===null&&Pe.value.head.indicator==="?-/1"){var Ne=new Je(w.session);Ne.add_goal(Pe.value.head.args[0]),Ne.answer(function(dt){b.type.is_error(dt)?w.throw_warning(dt.args[0]):(dt===!1||dt===null)&&w.throw_warning(b.warning.failed_goal(Pe.value.head.args[0],Pe.len))}),Z=Pe.len;var ot=!0}else if(Pe.value.body===null&&Pe.value.head.indicator===":-/1"){var ot=w.run_directive(Pe.value.head.args[0]);Z=Pe.len,Pe.value.head.args[0].indicator==="char_conversion/2"&&(ie=F.get_tokens(Z),Z=0)}else{X=Pe.value.head.indicator,y.reconsult!==!1&&z[X]!==!0&&!w.is_multifile_predicate(X)&&(w.session.rules[X]=a(w.session.rules[X]||[],function(jt){return jt.dynamic}),z[X]=!0);var ot=w.add_rule(Pe.value,y);Z=Pe.len}if(!ot)return ot}while(!0);return!0}function me(w,P){var y=new U(w);y.new_text(P);var F=0;do{var z=y.get_tokens(F);if(z===null)break;var X=J(w,z,0,w.__get_max_priority(),!1);if(X.type!==A){var Z=X.len,ie=Z;if(z[Z]&&z[Z].name==="atom"&&z[Z].raw===".")w.add_goal(we(X.value));else{var Pe=z[Z];return new H("throw",[b.error.syntax(Pe||z[Z-1],". or operator expected",!Pe)])}F=X.len+1}else return new H("throw",[X.value])}while(!0);return!0}function he(w,P){w=w.rename(P);var y=P.next_free_variable(),F=Be(w.body,y,P);return F.error?F.value:(w.body=F.value,w.head.args=w.head.args.concat([y,F.variable]),w.head=new H(w.head.id,w.head.args),w)}function Be(w,P,y){var F;if(b.type.is_term(w)&&w.indicator==="!/0")return{value:w,variable:P,error:!1};if(b.type.is_term(w)&&w.indicator===",/2"){var z=Be(w.args[0],P,y);if(z.error)return z;var X=Be(w.args[1],z.variable,y);return X.error?X:{value:new H(",",[z.value,X.value]),variable:X.variable,error:!1}}else{if(b.type.is_term(w)&&w.indicator==="{}/1")return{value:w.args[0],variable:P,error:!1};if(b.type.is_empty_list(w))return{value:new H("true",[]),variable:P,error:!1};if(b.type.is_list(w)){F=y.next_free_variable();for(var Z=w,ie;Z.indicator==="./2";)ie=Z,Z=Z.args[1];return b.type.is_variable(Z)?{value:b.error.instantiation("DCG"),variable:P,error:!0}:b.type.is_empty_list(Z)?(ie.args[1]=F,{value:new H("=",[P,w]),variable:F,error:!1}):{value:b.error.type("list",w,"DCG"),variable:P,error:!0}}else return b.type.is_callable(w)?(F=y.next_free_variable(),w.args=w.args.concat([P,F]),w=new H(w.id,w.args),{value:w,variable:F,error:!1}):{value:b.error.type("callable",w,"DCG"),variable:P,error:!0}}}function we(w){return b.type.is_variable(w)?new H("call",[w]):b.type.is_term(w)&&[",/2",";/2","->/2"].indexOf(w.indicator)!==-1?new H(w.id,[we(w.args[0]),we(w.args[1])]):w}function g(w,P){for(var y=P||new b.type.Term("[]",[]),F=w.length-1;F>=0;F--)y=new b.type.Term(".",[w[F],y]);return y}function Ee(w,P){for(var y=w.length-1;y>=0;y--)w[y]===P&&w.splice(y,1)}function Se(w){for(var P={},y=[],F=0;F=0;P--)if(w.charAt(P)==="/")return new H("/",[new H(w.substring(0,P)),new Fe(parseInt(w.substring(P+1)),!1)])}function Ie(w){this.id=w}function Fe(w,P){this.is_float=P!==void 0?P:parseInt(w)!==w,this.value=this.is_float?w:parseInt(w)}var At=0;function H(w,P,y){this.ref=y||++At,this.id=w,this.args=P||[],this.indicator=w+"/"+this.args.length}var at=0;function Re(w,P,y,F,z,X){this.id=at++,this.stream=w,this.mode=P,this.alias=y,this.type=F!==void 0?F:"text",this.reposition=z!==void 0?z:!0,this.eof_action=X!==void 0?X:"eof_code",this.position=this.mode==="append"?"end_of_stream":0,this.output=this.mode==="write"||this.mode==="append",this.input=this.mode==="read"}function ke(w){w=w||{},this.links=w}function xe(w,P,y){P=P||new ke,y=y||null,this.goal=w,this.substitution=P,this.parent=y}function He(w,P,y){this.head=w,this.body=P,this.dynamic=y||!1}function Te(w){w=w===void 0||w<=0?1e3:w,this.rules={},this.src_predicates={},this.rename=0,this.modules=[],this.thread=new Je(this),this.total_threads=1,this.renamed_variables={},this.public_predicates={},this.multifile_predicates={},this.limit=w,this.streams={user_input:new Re(typeof hl<"u"&&hl.exports?nodejs_user_input:tau_user_input,"read","user_input","text",!1,"reset"),user_output:new Re(typeof hl<"u"&&hl.exports?nodejs_user_output:tau_user_output,"write","user_output","text",!1,"eof_code")},this.file_system=typeof hl<"u"&&hl.exports?nodejs_file_system:tau_file_system,this.standard_input=this.streams.user_input,this.standard_output=this.streams.user_output,this.current_input=this.streams.user_input,this.current_output=this.streams.user_output,this.format_success=function(P){return P.substitution},this.format_error=function(P){return P.goal},this.flag={bounded:b.flag.bounded.value,max_integer:b.flag.max_integer.value,min_integer:b.flag.min_integer.value,integer_rounding_function:b.flag.integer_rounding_function.value,char_conversion:b.flag.char_conversion.value,debug:b.flag.debug.value,max_arity:b.flag.max_arity.value,unknown:b.flag.unknown.value,double_quotes:b.flag.double_quotes.value,occurs_check:b.flag.occurs_check.value,dialect:b.flag.dialect.value,version_data:b.flag.version_data.value,nodejs:b.flag.nodejs.value},this.__loaded_modules=[],this.__char_conversion={},this.__operators={1200:{":-":["fx","xfx"],"-->":["xfx"],"?-":["fx"]},1100:{";":["xfy"]},1050:{"->":["xfy"]},1e3:{",":["xfy"]},900:{"\\+":["fy"]},700:{"=":["xfx"],"\\=":["xfx"],"==":["xfx"],"\\==":["xfx"],"@<":["xfx"],"@=<":["xfx"],"@>":["xfx"],"@>=":["xfx"],"=..":["xfx"],is:["xfx"],"=:=":["xfx"],"=\\=":["xfx"],"<":["xfx"],"=<":["xfx"],">":["xfx"],">=":["xfx"]},600:{":":["xfy"]},500:{"+":["yfx"],"-":["yfx"],"/\\":["yfx"],"\\/":["yfx"]},400:{"*":["yfx"],"/":["yfx"],"//":["yfx"],rem:["yfx"],mod:["yfx"],"<<":["yfx"],">>":["yfx"]},200:{"**":["xfx"],"^":["xfy"],"-":["fy"],"+":["fy"],"\\":["fy"]}}}function Je(w){this.epoch=Date.now(),this.session=w,this.session.total_threads++,this.total_steps=0,this.cpu_time=0,this.cpu_time_last=0,this.points=[],this.debugger=!1,this.debugger_states=[],this.level="top_level/0",this.__calls=[],this.current_limit=this.session.limit,this.warnings=[]}function qe(w,P,y){this.id=w,this.rules=P,this.exports=y,b.module[w]=this}qe.prototype.exports_predicate=function(w){return this.exports.indexOf(w)!==-1},Ie.prototype.unify=function(w,P){if(P&&e(w.variables(),this.id)!==-1&&!b.type.is_variable(w))return null;var y={};return y[this.id]=w,new ke(y)},Fe.prototype.unify=function(w,P){return b.type.is_number(w)&&this.value===w.value&&this.is_float===w.is_float?new ke:null},H.prototype.unify=function(w,P){if(b.type.is_term(w)&&this.indicator===w.indicator){for(var y=new ke,F=0;F=0){var F=this.args[0].value,z=Math.floor(F/26),X=F%26;return"ABCDEFGHIJKLMNOPQRSTUVWXYZ"[X]+(z!==0?z:"")}switch(this.indicator){case"[]/0":case"{}/0":case"!/0":return this.id;case"{}/1":return"{"+this.args[0].toString(w)+"}";case"./2":for(var Z="["+this.args[0].toString(w),ie=this.args[1];ie.indicator==="./2";)Z+=", "+ie.args[0].toString(w),ie=ie.args[1];return ie.indicator!=="[]/0"&&(Z+="|"+ie.toString(w)),Z+="]",Z;case",/2":return"("+this.args[0].toString(w)+", "+this.args[1].toString(w)+")";default:var Pe=this.id,Ne=w.session?w.session.lookup_operator(this.id,this.args.length):null;if(w.session===void 0||w.ignore_ops||Ne===null)return w.quoted&&!/^(!|,|;|[a-z][0-9a-zA-Z_]*)$/.test(Pe)&&Pe!=="{}"&&Pe!=="[]"&&(Pe="'"+x(Pe)+"'"),Pe+(this.args.length?"("+o(this.args,function($t){return $t.toString(w)}).join(", ")+")":"");var ot=Ne.priority>P.priority||Ne.priority===P.priority&&(Ne.class==="xfy"&&this.indicator!==P.indicator||Ne.class==="yfx"&&this.indicator!==P.indicator||this.indicator===P.indicator&&Ne.class==="yfx"&&y==="right"||this.indicator===P.indicator&&Ne.class==="xfy"&&y==="left");Ne.indicator=this.indicator;var dt=ot?"(":"",jt=ot?")":"";return this.args.length===0?"("+this.id+")":["fy","fx"].indexOf(Ne.class)!==-1?dt+Pe+" "+this.args[0].toString(w,Ne)+jt:["yf","xf"].indexOf(Ne.class)!==-1?dt+this.args[0].toString(w,Ne)+" "+Pe+jt:dt+this.args[0].toString(w,Ne,"left")+" "+this.id+" "+this.args[1].toString(w,Ne,"right")+jt}},Re.prototype.toString=function(w){return"("+this.id+")"},ke.prototype.toString=function(w){var P="{";for(var y in this.links)!this.links.hasOwnProperty(y)||(P!=="{"&&(P+=", "),P+=y+"/"+this.links[y].toString(w));return P+="}",P},xe.prototype.toString=function(w){return this.goal===null?"<"+this.substitution.toString(w)+">":"<"+this.goal.toString(w)+", "+this.substitution.toString(w)+">"},He.prototype.toString=function(w){return this.body?this.head.toString(w)+" :- "+this.body.toString(w)+".":this.head.toString(w)+"."},Te.prototype.toString=function(w){for(var P="",y=0;y=0;z--)F=new H(".",[P[z],F]);return F}return new H(this.id,o(this.args,function(X){return X.apply(w)}),this.ref)},Re.prototype.apply=function(w){return this},He.prototype.apply=function(w){return new He(this.head.apply(w),this.body!==null?this.body.apply(w):null)},ke.prototype.apply=function(w){var P,y={};for(P in this.links)!this.links.hasOwnProperty(P)||(y[P]=this.links[P].apply(w));return new ke(y)},H.prototype.select=function(){for(var w=this;w.indicator===",/2";)w=w.args[0];return w},H.prototype.replace=function(w){return this.indicator===",/2"?this.args[0].indicator===",/2"?new H(",",[this.args[0].replace(w),this.args[1]]):w===null?this.args[1]:new H(",",[w,this.args[1]]):w},H.prototype.search=function(w){if(b.type.is_term(w)&&w.ref!==void 0&&this.ref===w.ref)return!0;for(var P=0;PP&&F0&&(P=this.head_point().substitution.domain());e(P,b.format_variable(this.session.rename))!==-1;)this.session.rename++;if(w.id==="_")return new Ie(b.format_variable(this.session.rename));this.session.renamed_variables[w.id]=b.format_variable(this.session.rename)}return new Ie(this.session.renamed_variables[w.id])},Te.prototype.next_free_variable=function(){return this.thread.next_free_variable()},Je.prototype.next_free_variable=function(){this.session.rename++;var w=[];for(this.points.length>0&&(w=this.head_point().substitution.domain());e(w,b.format_variable(this.session.rename))!==-1;)this.session.rename++;return new Ie(b.format_variable(this.session.rename))},Te.prototype.is_public_predicate=function(w){return!this.public_predicates.hasOwnProperty(w)||this.public_predicates[w]===!0},Je.prototype.is_public_predicate=function(w){return this.session.is_public_predicate(w)},Te.prototype.is_multifile_predicate=function(w){return this.multifile_predicates.hasOwnProperty(w)&&this.multifile_predicates[w]===!0},Je.prototype.is_multifile_predicate=function(w){return this.session.is_multifile_predicate(w)},Te.prototype.prepend=function(w){return this.thread.prepend(w)},Je.prototype.prepend=function(w){for(var P=w.length-1;P>=0;P--)this.points.push(w[P])},Te.prototype.success=function(w,P){return this.thread.success(w,P)},Je.prototype.success=function(w,y){var y=typeof y>"u"?w:y;this.prepend([new xe(w.goal.replace(null),w.substitution,y)])},Te.prototype.throw_error=function(w){return this.thread.throw_error(w)},Je.prototype.throw_error=function(w){this.prepend([new xe(new H("throw",[w]),new ke,null,null)])},Te.prototype.step_rule=function(w,P){return this.thread.step_rule(w,P)},Je.prototype.step_rule=function(w,P){var y=P.indicator;if(w==="user"&&(w=null),w===null&&this.session.rules.hasOwnProperty(y))return this.session.rules[y];for(var F=w===null?this.session.modules:e(this.session.modules,w)===-1?[]:[w],z=0;z1)&&this.again()},Te.prototype.answers=function(w,P,y){return this.thread.answers(w,P,y)},Je.prototype.answers=function(w,P,y){var F=P||1e3,z=this;if(P<=0){y&&y();return}this.answer(function(X){w(X),X!==!1?setTimeout(function(){z.answers(w,P-1,y)},1):y&&y()})},Te.prototype.again=function(w){return this.thread.again(w)},Je.prototype.again=function(w){for(var P,y=Date.now();this.__calls.length>0;){for(this.warnings=[],w!==!1&&(this.current_limit=this.session.limit);this.current_limit>0&&this.points.length>0&&this.head_point().goal!==null&&!b.type.is_error(this.head_point().goal);)if(this.current_limit--,this.step()===!0)return;var F=Date.now();this.cpu_time_last=F-y,this.cpu_time+=this.cpu_time_last;var z=this.__calls.shift();this.current_limit<=0?z(null):this.points.length===0?z(!1):b.type.is_error(this.head_point().goal)?(P=this.session.format_error(this.points.pop()),this.points=[],z(P)):(this.debugger&&this.debugger_states.push(this.head_point()),P=this.session.format_success(this.points.pop()),z(P))}},Te.prototype.unfold=function(w){if(w.body===null)return!1;var P=w.head,y=w.body,F=y.select(),z=new Je(this),X=[];z.add_goal(F),z.step();for(var Z=z.points.length-1;Z>=0;Z--){var ie=z.points[Z],Pe=P.apply(ie.substitution),Ne=y.replace(ie.goal);Ne!==null&&(Ne=Ne.apply(ie.substitution)),X.push(new He(Pe,Ne))}var ot=this.rules[P.indicator],dt=e(ot,w);return X.length>0&&dt!==-1?(ot.splice.apply(ot,[dt,1].concat(X)),!0):!1},Je.prototype.unfold=function(w){return this.session.unfold(w)},Ie.prototype.interpret=function(w){return b.error.instantiation(w.level)},Fe.prototype.interpret=function(w){return this},H.prototype.interpret=function(w){return b.type.is_unitary_list(this)?this.args[0].interpret(w):b.operate(w,this)},Ie.prototype.compare=function(w){return this.idw.id?1:0},Fe.prototype.compare=function(w){if(this.value===w.value&&this.is_float===w.is_float)return 0;if(this.valuew.value)return 1},H.prototype.compare=function(w){if(this.args.lengthw.args.length||this.args.length===w.args.length&&this.id>w.id)return 1;for(var P=0;PF)return 1;if(w.constructor===Fe){if(w.is_float&&P.is_float)return 0;if(w.is_float)return-1;if(P.is_float)return 1}return 0},is_substitution:function(w){return w instanceof ke},is_state:function(w){return w instanceof xe},is_rule:function(w){return w instanceof He},is_variable:function(w){return w instanceof Ie},is_stream:function(w){return w instanceof Re},is_anonymous_var:function(w){return w instanceof Ie&&w.id==="_"},is_callable:function(w){return w instanceof H},is_number:function(w){return w instanceof Fe},is_integer:function(w){return w instanceof Fe&&!w.is_float},is_float:function(w){return w instanceof Fe&&w.is_float},is_term:function(w){return w instanceof H},is_atom:function(w){return w instanceof H&&w.args.length===0},is_ground:function(w){if(w instanceof Ie)return!1;if(w instanceof H){for(var P=0;P0},is_list:function(w){return w instanceof H&&(w.indicator==="[]/0"||w.indicator==="./2")},is_empty_list:function(w){return w instanceof H&&w.indicator==="[]/0"},is_non_empty_list:function(w){return w instanceof H&&w.indicator==="./2"},is_fully_list:function(w){for(;w instanceof H&&w.indicator==="./2";)w=w.args[1];return w instanceof Ie||w instanceof H&&w.indicator==="[]/0"},is_instantiated_list:function(w){for(;w instanceof H&&w.indicator==="./2";)w=w.args[1];return w instanceof H&&w.indicator==="[]/0"},is_unitary_list:function(w){return w instanceof H&&w.indicator==="./2"&&w.args[1]instanceof H&&w.args[1].indicator==="[]/0"},is_character:function(w){return w instanceof H&&(w.id.length===1||w.id.length>0&&w.id.length<=2&&n(w.id,0)>=65536)},is_character_code:function(w){return w instanceof Fe&&!w.is_float&&w.value>=0&&w.value<=1114111},is_byte:function(w){return w instanceof Fe&&!w.is_float&&w.value>=0&&w.value<=255},is_operator:function(w){return w instanceof H&&b.arithmetic.evaluation[w.indicator]},is_directive:function(w){return w instanceof H&&b.directive[w.indicator]!==void 0},is_builtin:function(w){return w instanceof H&&b.predicate[w.indicator]!==void 0},is_error:function(w){return w instanceof H&&w.indicator==="throw/1"},is_predicate_indicator:function(w){return w instanceof H&&w.indicator==="//2"&&w.args[0]instanceof H&&w.args[0].args.length===0&&w.args[1]instanceof Fe&&w.args[1].is_float===!1},is_flag:function(w){return w instanceof H&&w.args.length===0&&b.flag[w.id]!==void 0},is_value_flag:function(w,P){if(!b.type.is_flag(w))return!1;for(var y in b.flag[w.id].allowed)if(!!b.flag[w.id].allowed.hasOwnProperty(y)&&b.flag[w.id].allowed[y].equals(P))return!0;return!1},is_io_mode:function(w){return b.type.is_atom(w)&&["read","write","append"].indexOf(w.id)!==-1},is_stream_option:function(w){return b.type.is_term(w)&&(w.indicator==="alias/1"&&b.type.is_atom(w.args[0])||w.indicator==="reposition/1"&&b.type.is_atom(w.args[0])&&(w.args[0].id==="true"||w.args[0].id==="false")||w.indicator==="type/1"&&b.type.is_atom(w.args[0])&&(w.args[0].id==="text"||w.args[0].id==="binary")||w.indicator==="eof_action/1"&&b.type.is_atom(w.args[0])&&(w.args[0].id==="error"||w.args[0].id==="eof_code"||w.args[0].id==="reset"))},is_stream_position:function(w){return b.type.is_integer(w)&&w.value>=0||b.type.is_atom(w)&&(w.id==="end_of_stream"||w.id==="past_end_of_stream")},is_stream_property:function(w){return b.type.is_term(w)&&(w.indicator==="input/0"||w.indicator==="output/0"||w.indicator==="alias/1"&&(b.type.is_variable(w.args[0])||b.type.is_atom(w.args[0]))||w.indicator==="file_name/1"&&(b.type.is_variable(w.args[0])||b.type.is_atom(w.args[0]))||w.indicator==="position/1"&&(b.type.is_variable(w.args[0])||b.type.is_stream_position(w.args[0]))||w.indicator==="reposition/1"&&(b.type.is_variable(w.args[0])||b.type.is_atom(w.args[0])&&(w.args[0].id==="true"||w.args[0].id==="false"))||w.indicator==="type/1"&&(b.type.is_variable(w.args[0])||b.type.is_atom(w.args[0])&&(w.args[0].id==="text"||w.args[0].id==="binary"))||w.indicator==="mode/1"&&(b.type.is_variable(w.args[0])||b.type.is_atom(w.args[0])&&(w.args[0].id==="read"||w.args[0].id==="write"||w.args[0].id==="append"))||w.indicator==="eof_action/1"&&(b.type.is_variable(w.args[0])||b.type.is_atom(w.args[0])&&(w.args[0].id==="error"||w.args[0].id==="eof_code"||w.args[0].id==="reset"))||w.indicator==="end_of_stream/1"&&(b.type.is_variable(w.args[0])||b.type.is_atom(w.args[0])&&(w.args[0].id==="at"||w.args[0].id==="past"||w.args[0].id==="not")))},is_streamable:function(w){return w.__proto__.stream!==void 0},is_read_option:function(w){return b.type.is_term(w)&&["variables/1","variable_names/1","singletons/1"].indexOf(w.indicator)!==-1},is_write_option:function(w){return b.type.is_term(w)&&(w.indicator==="quoted/1"&&b.type.is_atom(w.args[0])&&(w.args[0].id==="true"||w.args[0].id==="false")||w.indicator==="ignore_ops/1"&&b.type.is_atom(w.args[0])&&(w.args[0].id==="true"||w.args[0].id==="false")||w.indicator==="numbervars/1"&&b.type.is_atom(w.args[0])&&(w.args[0].id==="true"||w.args[0].id==="false"))},is_close_option:function(w){return b.type.is_term(w)&&w.indicator==="force/1"&&b.type.is_atom(w.args[0])&&(w.args[0].id==="true"||w.args[0].id==="false")},is_modifiable_flag:function(w){return b.type.is_flag(w)&&b.flag[w.id].changeable},is_module:function(w){return w instanceof H&&w.indicator==="library/1"&&w.args[0]instanceof H&&w.args[0].args.length===0&&b.module[w.args[0].id]!==void 0}},arithmetic:{evaluation:{"e/0":{type_args:null,type_result:!0,fn:function(w){return Math.E}},"pi/0":{type_args:null,type_result:!0,fn:function(w){return Math.PI}},"tau/0":{type_args:null,type_result:!0,fn:function(w){return 2*Math.PI}},"epsilon/0":{type_args:null,type_result:!0,fn:function(w){return Number.EPSILON}},"+/1":{type_args:null,type_result:null,fn:function(w,P){return w}},"-/1":{type_args:null,type_result:null,fn:function(w,P){return-w}},"\\/1":{type_args:!1,type_result:!1,fn:function(w,P){return~w}},"abs/1":{type_args:null,type_result:null,fn:function(w,P){return Math.abs(w)}},"sign/1":{type_args:null,type_result:null,fn:function(w,P){return Math.sign(w)}},"float_integer_part/1":{type_args:!0,type_result:!1,fn:function(w,P){return parseInt(w)}},"float_fractional_part/1":{type_args:!0,type_result:!0,fn:function(w,P){return w-parseInt(w)}},"float/1":{type_args:null,type_result:!0,fn:function(w,P){return parseFloat(w)}},"floor/1":{type_args:!0,type_result:!1,fn:function(w,P){return Math.floor(w)}},"truncate/1":{type_args:!0,type_result:!1,fn:function(w,P){return parseInt(w)}},"round/1":{type_args:!0,type_result:!1,fn:function(w,P){return Math.round(w)}},"ceiling/1":{type_args:!0,type_result:!1,fn:function(w,P){return Math.ceil(w)}},"sin/1":{type_args:null,type_result:!0,fn:function(w,P){return Math.sin(w)}},"cos/1":{type_args:null,type_result:!0,fn:function(w,P){return Math.cos(w)}},"tan/1":{type_args:null,type_result:!0,fn:function(w,P){return Math.tan(w)}},"asin/1":{type_args:null,type_result:!0,fn:function(w,P){return Math.asin(w)}},"acos/1":{type_args:null,type_result:!0,fn:function(w,P){return Math.acos(w)}},"atan/1":{type_args:null,type_result:!0,fn:function(w,P){return Math.atan(w)}},"atan2/2":{type_args:null,type_result:!0,fn:function(w,P,y){return Math.atan2(w,P)}},"exp/1":{type_args:null,type_result:!0,fn:function(w,P){return Math.exp(w)}},"sqrt/1":{type_args:null,type_result:!0,fn:function(w,P){return Math.sqrt(w)}},"log/1":{type_args:null,type_result:!0,fn:function(w,P){return w>0?Math.log(w):b.error.evaluation("undefined",P.__call_indicator)}},"+/2":{type_args:null,type_result:null,fn:function(w,P,y){return w+P}},"-/2":{type_args:null,type_result:null,fn:function(w,P,y){return w-P}},"*/2":{type_args:null,type_result:null,fn:function(w,P,y){return w*P}},"//2":{type_args:null,type_result:!0,fn:function(w,P,y){return P?w/P:b.error.evaluation("zero_division",y.__call_indicator)}},"///2":{type_args:!1,type_result:!1,fn:function(w,P,y){return P?parseInt(w/P):b.error.evaluation("zero_division",y.__call_indicator)}},"**/2":{type_args:null,type_result:!0,fn:function(w,P,y){return Math.pow(w,P)}},"^/2":{type_args:null,type_result:null,fn:function(w,P,y){return Math.pow(w,P)}},"<>/2":{type_args:!1,type_result:!1,fn:function(w,P,y){return w>>P}},"/\\/2":{type_args:!1,type_result:!1,fn:function(w,P,y){return w&P}},"\\//2":{type_args:!1,type_result:!1,fn:function(w,P,y){return w|P}},"xor/2":{type_args:!1,type_result:!1,fn:function(w,P,y){return w^P}},"rem/2":{type_args:!1,type_result:!1,fn:function(w,P,y){return P?w%P:b.error.evaluation("zero_division",y.__call_indicator)}},"mod/2":{type_args:!1,type_result:!1,fn:function(w,P,y){return P?w-parseInt(w/P)*P:b.error.evaluation("zero_division",y.__call_indicator)}},"max/2":{type_args:null,type_result:null,fn:function(w,P,y){return Math.max(w,P)}},"min/2":{type_args:null,type_result:null,fn:function(w,P,y){return Math.min(w,P)}}}},directive:{"dynamic/1":function(w,P){var y=P.args[0];if(b.type.is_variable(y))w.throw_error(b.error.instantiation(P.indicator));else if(!b.type.is_compound(y)||y.indicator!=="//2")w.throw_error(b.error.type("predicate_indicator",y,P.indicator));else if(b.type.is_variable(y.args[0])||b.type.is_variable(y.args[1]))w.throw_error(b.error.instantiation(P.indicator));else if(!b.type.is_atom(y.args[0]))w.throw_error(b.error.type("atom",y.args[0],P.indicator));else if(!b.type.is_integer(y.args[1]))w.throw_error(b.error.type("integer",y.args[1],P.indicator));else{var F=P.args[0].args[0].id+"/"+P.args[0].args[1].value;w.session.public_predicates[F]=!0,w.session.rules[F]||(w.session.rules[F]=[])}},"multifile/1":function(w,P){var y=P.args[0];b.type.is_variable(y)?w.throw_error(b.error.instantiation(P.indicator)):!b.type.is_compound(y)||y.indicator!=="//2"?w.throw_error(b.error.type("predicate_indicator",y,P.indicator)):b.type.is_variable(y.args[0])||b.type.is_variable(y.args[1])?w.throw_error(b.error.instantiation(P.indicator)):b.type.is_atom(y.args[0])?b.type.is_integer(y.args[1])?w.session.multifile_predicates[P.args[0].args[0].id+"/"+P.args[0].args[1].value]=!0:w.throw_error(b.error.type("integer",y.args[1],P.indicator)):w.throw_error(b.error.type("atom",y.args[0],P.indicator))},"set_prolog_flag/2":function(w,P){var y=P.args[0],F=P.args[1];b.type.is_variable(y)||b.type.is_variable(F)?w.throw_error(b.error.instantiation(P.indicator)):b.type.is_atom(y)?b.type.is_flag(y)?b.type.is_value_flag(y,F)?b.type.is_modifiable_flag(y)?w.session.flag[y.id]=F:w.throw_error(b.error.permission("modify","flag",y)):w.throw_error(b.error.domain("flag_value",new H("+",[y,F]),P.indicator)):w.throw_error(b.error.domain("prolog_flag",y,P.indicator)):w.throw_error(b.error.type("atom",y,P.indicator))},"use_module/1":function(w,P){var y=P.args[0];if(b.type.is_variable(y))w.throw_error(b.error.instantiation(P.indicator));else if(!b.type.is_term(y))w.throw_error(b.error.type("term",y,P.indicator));else if(b.type.is_module(y)){var F=y.args[0].id;e(w.session.modules,F)===-1&&w.session.modules.push(F)}},"char_conversion/2":function(w,P){var y=P.args[0],F=P.args[1];b.type.is_variable(y)||b.type.is_variable(F)?w.throw_error(b.error.instantiation(P.indicator)):b.type.is_character(y)?b.type.is_character(F)?y.id===F.id?delete w.session.__char_conversion[y.id]:w.session.__char_conversion[y.id]=F.id:w.throw_error(b.error.type("character",F,P.indicator)):w.throw_error(b.error.type("character",y,P.indicator))},"op/3":function(w,P){var y=P.args[0],F=P.args[1],z=P.args[2];if(b.type.is_variable(y)||b.type.is_variable(F)||b.type.is_variable(z))w.throw_error(b.error.instantiation(P.indicator));else if(!b.type.is_integer(y))w.throw_error(b.error.type("integer",y,P.indicator));else if(!b.type.is_atom(F))w.throw_error(b.error.type("atom",F,P.indicator));else if(!b.type.is_atom(z))w.throw_error(b.error.type("atom",z,P.indicator));else if(y.value<0||y.value>1200)w.throw_error(b.error.domain("operator_priority",y,P.indicator));else if(z.id===",")w.throw_error(b.error.permission("modify","operator",z,P.indicator));else if(z.id==="|"&&(y.value<1001||F.id.length!==3))w.throw_error(b.error.permission("modify","operator",z,P.indicator));else if(["fy","fx","yf","xf","xfx","yfx","xfy"].indexOf(F.id)===-1)w.throw_error(b.error.domain("operator_specifier",F,P.indicator));else{var X={prefix:null,infix:null,postfix:null};for(var Z in w.session.__operators)if(!!w.session.__operators.hasOwnProperty(Z)){var ie=w.session.__operators[Z][z.id];ie&&(e(ie,"fx")!==-1&&(X.prefix={priority:Z,type:"fx"}),e(ie,"fy")!==-1&&(X.prefix={priority:Z,type:"fy"}),e(ie,"xf")!==-1&&(X.postfix={priority:Z,type:"xf"}),e(ie,"yf")!==-1&&(X.postfix={priority:Z,type:"yf"}),e(ie,"xfx")!==-1&&(X.infix={priority:Z,type:"xfx"}),e(ie,"xfy")!==-1&&(X.infix={priority:Z,type:"xfy"}),e(ie,"yfx")!==-1&&(X.infix={priority:Z,type:"yfx"}))}var Pe;switch(F.id){case"fy":case"fx":Pe="prefix";break;case"yf":case"xf":Pe="postfix";break;default:Pe="infix";break}if(((X.prefix&&Pe==="prefix"||X.postfix&&Pe==="postfix"||X.infix&&Pe==="infix")&&X[Pe].type!==F.id||X.infix&&Pe==="postfix"||X.postfix&&Pe==="infix")&&y.value!==0)w.throw_error(b.error.permission("create","operator",z,P.indicator));else return X[Pe]&&(Ee(w.session.__operators[X[Pe].priority][z.id],F.id),w.session.__operators[X[Pe].priority][z.id].length===0&&delete w.session.__operators[X[Pe].priority][z.id]),y.value>0&&(w.session.__operators[y.value]||(w.session.__operators[y.value.toString()]={}),w.session.__operators[y.value][z.id]||(w.session.__operators[y.value][z.id]=[]),w.session.__operators[y.value][z.id].push(F.id)),!0}}},predicate:{"op/3":function(w,P,y){b.directive["op/3"](w,y)&&w.success(P)},"current_op/3":function(w,P,y){var F=y.args[0],z=y.args[1],X=y.args[2],Z=[];for(var ie in w.session.__operators)for(var Pe in w.session.__operators[ie])for(var Ne=0;Ne/2"){var F=w.points,z=w.session.format_success,X=w.session.format_error;w.session.format_success=function(Ne){return Ne.substitution},w.session.format_error=function(Ne){return Ne.goal},w.points=[new xe(y.args[0].args[0],P.substitution,P)];var Z=function(Ne){w.points=F,w.session.format_success=z,w.session.format_error=X,Ne===!1?w.prepend([new xe(P.goal.replace(y.args[1]),P.substitution,P)]):b.type.is_error(Ne)?w.throw_error(Ne.args[0]):Ne===null?(w.prepend([P]),w.__calls.shift()(null)):w.prepend([new xe(P.goal.replace(y.args[0].args[1]).apply(Ne),P.substitution.apply(Ne),P)])};w.__calls.unshift(Z)}else{var ie=new xe(P.goal.replace(y.args[0]),P.substitution,P),Pe=new xe(P.goal.replace(y.args[1]),P.substitution,P);w.prepend([ie,Pe])}},"!/0":function(w,P,y){var F,z,X=[];for(F=P,z=null;F.parent!==null&&F.parent.goal.search(y);)if(z=F,F=F.parent,F.goal!==null){var Z=F.goal.select();if(Z&&Z.id==="call"&&Z.search(y)){F=z;break}}for(var ie=w.points.length-1;ie>=0;ie--){for(var Pe=w.points[ie],Ne=Pe.parent;Ne!==null&&Ne!==F.parent;)Ne=Ne.parent;Ne===null&&Ne!==F.parent&&X.push(Pe)}w.points=X.reverse(),w.success(P)},"\\+/1":function(w,P,y){var F=y.args[0];b.type.is_variable(F)?w.throw_error(b.error.instantiation(w.level)):b.type.is_callable(F)?w.prepend([new xe(P.goal.replace(new H(",",[new H(",",[new H("call",[F]),new H("!",[])]),new H("fail",[])])),P.substitution,P),new xe(P.goal.replace(null),P.substitution,P)]):w.throw_error(b.error.type("callable",F,w.level))},"->/2":function(w,P,y){var F=P.goal.replace(new H(",",[y.args[0],new H(",",[new H("!"),y.args[1]])]));w.prepend([new xe(F,P.substitution,P)])},"fail/0":function(w,P,y){},"false/0":function(w,P,y){},"true/0":function(w,P,y){w.success(P)},"call/1":ne(1),"call/2":ne(2),"call/3":ne(3),"call/4":ne(4),"call/5":ne(5),"call/6":ne(6),"call/7":ne(7),"call/8":ne(8),"once/1":function(w,P,y){var F=y.args[0];w.prepend([new xe(P.goal.replace(new H(",",[new H("call",[F]),new H("!",[])])),P.substitution,P)])},"forall/2":function(w,P,y){var F=y.args[0],z=y.args[1];w.prepend([new xe(P.goal.replace(new H("\\+",[new H(",",[new H("call",[F]),new H("\\+",[new H("call",[z])])])])),P.substitution,P)])},"repeat/0":function(w,P,y){w.prepend([new xe(P.goal.replace(null),P.substitution,P),P])},"throw/1":function(w,P,y){b.type.is_variable(y.args[0])?w.throw_error(b.error.instantiation(w.level)):w.throw_error(y.args[0])},"catch/3":function(w,P,y){var F=w.points;w.points=[],w.prepend([new xe(y.args[0],P.substitution,P)]);var z=w.session.format_success,X=w.session.format_error;w.session.format_success=function(ie){return ie.substitution},w.session.format_error=function(ie){return ie.goal};var Z=function(ie){var Pe=w.points;if(w.points=F,w.session.format_success=z,w.session.format_error=X,b.type.is_error(ie)){for(var Ne=[],ot=w.points.length-1;ot>=0;ot--){for(var $t=w.points[ot],dt=$t.parent;dt!==null&&dt!==P.parent;)dt=dt.parent;dt===null&&dt!==P.parent&&Ne.push($t)}w.points=Ne;var jt=w.get_flag("occurs_check").indicator==="true/0",$t=new xe,bt=b.unify(ie.args[0],y.args[1],jt);bt!==null?($t.substitution=P.substitution.apply(bt),$t.goal=P.goal.replace(y.args[2]).apply(bt),$t.parent=P,w.prepend([$t])):w.throw_error(ie.args[0])}else if(ie!==!1){for(var an=ie===null?[]:[new xe(P.goal.apply(ie).replace(null),P.substitution.apply(ie),P)],Qr=[],ot=Pe.length-1;ot>=0;ot--){Qr.push(Pe[ot]);var mr=Pe[ot].goal!==null?Pe[ot].goal.select():null;if(b.type.is_term(mr)&&mr.indicator==="!/0")break}var br=o(Qr,function(Wr){return Wr.goal===null&&(Wr.goal=new H("true",[])),Wr=new xe(P.goal.replace(new H("catch",[Wr.goal,y.args[1],y.args[2]])),P.substitution.apply(Wr.substitution),Wr.parent),Wr.exclude=y.args[0].variables(),Wr}).reverse();w.prepend(br),w.prepend(an),ie===null&&(this.current_limit=0,w.__calls.shift()(null))}};w.__calls.unshift(Z)},"=/2":function(w,P,y){var F=w.get_flag("occurs_check").indicator==="true/0",z=new xe,X=b.unify(y.args[0],y.args[1],F);X!==null&&(z.goal=P.goal.apply(X).replace(null),z.substitution=P.substitution.apply(X),z.parent=P,w.prepend([z]))},"unify_with_occurs_check/2":function(w,P,y){var F=new xe,z=b.unify(y.args[0],y.args[1],!0);z!==null&&(F.goal=P.goal.apply(z).replace(null),F.substitution=P.substitution.apply(z),F.parent=P,w.prepend([F]))},"\\=/2":function(w,P,y){var F=w.get_flag("occurs_check").indicator==="true/0",z=b.unify(y.args[0],y.args[1],F);z===null&&w.success(P)},"subsumes_term/2":function(w,P,y){var F=w.get_flag("occurs_check").indicator==="true/0",z=b.unify(y.args[1],y.args[0],F);z!==null&&y.args[1].apply(z).equals(y.args[1])&&w.success(P)},"findall/3":function(w,P,y){var F=y.args[0],z=y.args[1],X=y.args[2];if(b.type.is_variable(z))w.throw_error(b.error.instantiation(y.indicator));else if(!b.type.is_callable(z))w.throw_error(b.error.type("callable",z,y.indicator));else if(!b.type.is_variable(X)&&!b.type.is_list(X))w.throw_error(b.error.type("list",X,y.indicator));else{var Z=w.next_free_variable(),ie=new H(",",[z,new H("=",[Z,F])]),Pe=w.points,Ne=w.session.limit,ot=w.session.format_success;w.session.format_success=function($t){return $t.substitution},w.add_goal(ie,!0,P);var dt=[],jt=function($t){if($t!==!1&&$t!==null&&!b.type.is_error($t))w.__calls.unshift(jt),dt.push($t.links[Z.id]),w.session.limit=w.current_limit;else if(w.points=Pe,w.session.limit=Ne,w.session.format_success=ot,b.type.is_error($t))w.throw_error($t.args[0]);else if(w.current_limit>0){for(var bt=new H("[]"),an=dt.length-1;an>=0;an--)bt=new H(".",[dt[an],bt]);w.prepend([new xe(P.goal.replace(new H("=",[X,bt])),P.substitution,P)])}};w.__calls.unshift(jt)}},"bagof/3":function(w,P,y){var F,z=y.args[0],X=y.args[1],Z=y.args[2];if(b.type.is_variable(X))w.throw_error(b.error.instantiation(y.indicator));else if(!b.type.is_callable(X))w.throw_error(b.error.type("callable",X,y.indicator));else if(!b.type.is_variable(Z)&&!b.type.is_list(Z))w.throw_error(b.error.type("list",Z,y.indicator));else{var ie=w.next_free_variable(),Pe;X.indicator==="^/2"?(Pe=X.args[0].variables(),X=X.args[1]):Pe=[],Pe=Pe.concat(z.variables());for(var Ne=X.variables().filter(function(br){return e(Pe,br)===-1}),ot=new H("[]"),dt=Ne.length-1;dt>=0;dt--)ot=new H(".",[new Ie(Ne[dt]),ot]);var jt=new H(",",[X,new H("=",[ie,new H(",",[ot,z])])]),$t=w.points,bt=w.session.limit,an=w.session.format_success;w.session.format_success=function(br){return br.substitution},w.add_goal(jt,!0,P);var Qr=[],mr=function(br){if(br!==!1&&br!==null&&!b.type.is_error(br)){w.__calls.unshift(mr);var Wr=!1,Kn=br.links[ie.id].args[0],Ns=br.links[ie.id].args[1];for(var Ti in Qr)if(!!Qr.hasOwnProperty(Ti)){var ps=Qr[Ti];if(ps.variables.equals(Kn)){ps.answers.push(Ns),Wr=!0;break}}Wr||Qr.push({variables:Kn,answers:[Ns]}),w.session.limit=w.current_limit}else if(w.points=$t,w.session.limit=bt,w.session.format_success=an,b.type.is_error(br))w.throw_error(br.args[0]);else if(w.current_limit>0){for(var io=[],Pi=0;Pi=0;so--)Ls=new H(".",[br[so],Ls]);io.push(new xe(P.goal.replace(new H(",",[new H("=",[ot,Qr[Pi].variables]),new H("=",[Z,Ls])])),P.substitution,P))}w.prepend(io)}};w.__calls.unshift(mr)}},"setof/3":function(w,P,y){var F,z=y.args[0],X=y.args[1],Z=y.args[2];if(b.type.is_variable(X))w.throw_error(b.error.instantiation(y.indicator));else if(!b.type.is_callable(X))w.throw_error(b.error.type("callable",X,y.indicator));else if(!b.type.is_variable(Z)&&!b.type.is_list(Z))w.throw_error(b.error.type("list",Z,y.indicator));else{var ie=w.next_free_variable(),Pe;X.indicator==="^/2"?(Pe=X.args[0].variables(),X=X.args[1]):Pe=[],Pe=Pe.concat(z.variables());for(var Ne=X.variables().filter(function(br){return e(Pe,br)===-1}),ot=new H("[]"),dt=Ne.length-1;dt>=0;dt--)ot=new H(".",[new Ie(Ne[dt]),ot]);var jt=new H(",",[X,new H("=",[ie,new H(",",[ot,z])])]),$t=w.points,bt=w.session.limit,an=w.session.format_success;w.session.format_success=function(br){return br.substitution},w.add_goal(jt,!0,P);var Qr=[],mr=function(br){if(br!==!1&&br!==null&&!b.type.is_error(br)){w.__calls.unshift(mr);var Wr=!1,Kn=br.links[ie.id].args[0],Ns=br.links[ie.id].args[1];for(var Ti in Qr)if(!!Qr.hasOwnProperty(Ti)){var ps=Qr[Ti];if(ps.variables.equals(Kn)){ps.answers.push(Ns),Wr=!0;break}}Wr||Qr.push({variables:Kn,answers:[Ns]}),w.session.limit=w.current_limit}else if(w.points=$t,w.session.limit=bt,w.session.format_success=an,b.type.is_error(br))w.throw_error(br.args[0]);else if(w.current_limit>0){for(var io=[],Pi=0;Pi=0;so--)Ls=new H(".",[br[so],Ls]);io.push(new xe(P.goal.replace(new H(",",[new H("=",[ot,Qr[Pi].variables]),new H("=",[Z,Ls])])),P.substitution,P))}w.prepend(io)}};w.__calls.unshift(mr)}},"functor/3":function(w,P,y){var F,z=y.args[0],X=y.args[1],Z=y.args[2];if(b.type.is_variable(z)&&(b.type.is_variable(X)||b.type.is_variable(Z)))w.throw_error(b.error.instantiation("functor/3"));else if(!b.type.is_variable(Z)&&!b.type.is_integer(Z))w.throw_error(b.error.type("integer",y.args[2],"functor/3"));else if(!b.type.is_variable(X)&&!b.type.is_atomic(X))w.throw_error(b.error.type("atomic",y.args[1],"functor/3"));else if(b.type.is_integer(X)&&b.type.is_integer(Z)&&Z.value!==0)w.throw_error(b.error.type("atom",y.args[1],"functor/3"));else if(b.type.is_variable(z)){if(y.args[2].value>=0){for(var ie=[],Pe=0;Pe0&&F<=y.args[1].args.length){var z=new H("=",[y.args[1].args[F-1],y.args[2]]);w.prepend([new xe(P.goal.replace(z),P.substitution,P)])}}},"=../2":function(w,P,y){var F;if(b.type.is_variable(y.args[0])&&(b.type.is_variable(y.args[1])||b.type.is_non_empty_list(y.args[1])&&b.type.is_variable(y.args[1].args[0])))w.throw_error(b.error.instantiation(y.indicator));else if(!b.type.is_fully_list(y.args[1]))w.throw_error(b.error.type("list",y.args[1],y.indicator));else if(b.type.is_variable(y.args[0])){if(!b.type.is_variable(y.args[1])){var X=[];for(F=y.args[1].args[1];F.indicator==="./2";)X.push(F.args[0]),F=F.args[1];b.type.is_variable(y.args[0])&&b.type.is_variable(F)?w.throw_error(b.error.instantiation(y.indicator)):X.length===0&&b.type.is_compound(y.args[1].args[0])?w.throw_error(b.error.type("atomic",y.args[1].args[0],y.indicator)):X.length>0&&(b.type.is_compound(y.args[1].args[0])||b.type.is_number(y.args[1].args[0]))?w.throw_error(b.error.type("atom",y.args[1].args[0],y.indicator)):X.length===0?w.prepend([new xe(P.goal.replace(new H("=",[y.args[1].args[0],y.args[0]],P)),P.substitution,P)]):w.prepend([new xe(P.goal.replace(new H("=",[new H(y.args[1].args[0].id,X),y.args[0]])),P.substitution,P)])}}else{if(b.type.is_atomic(y.args[0]))F=new H(".",[y.args[0],new H("[]")]);else{F=new H("[]");for(var z=y.args[0].args.length-1;z>=0;z--)F=new H(".",[y.args[0].args[z],F]);F=new H(".",[new H(y.args[0].id),F])}w.prepend([new xe(P.goal.replace(new H("=",[F,y.args[1]])),P.substitution,P)])}},"copy_term/2":function(w,P,y){var F=y.args[0].rename(w);w.prepend([new xe(P.goal.replace(new H("=",[F,y.args[1]])),P.substitution,P.parent)])},"term_variables/2":function(w,P,y){var F=y.args[0],z=y.args[1];if(!b.type.is_fully_list(z))w.throw_error(b.error.type("list",z,y.indicator));else{var X=g(o(Se(F.variables()),function(Z){return new Ie(Z)}));w.prepend([new xe(P.goal.replace(new H("=",[z,X])),P.substitution,P)])}},"clause/2":function(w,P,y){if(b.type.is_variable(y.args[0]))w.throw_error(b.error.instantiation(y.indicator));else if(!b.type.is_callable(y.args[0]))w.throw_error(b.error.type("callable",y.args[0],y.indicator));else if(!b.type.is_variable(y.args[1])&&!b.type.is_callable(y.args[1]))w.throw_error(b.error.type("callable",y.args[1],y.indicator));else if(w.session.rules[y.args[0].indicator]!==void 0)if(w.is_public_predicate(y.args[0].indicator)){var F=[];for(var z in w.session.rules[y.args[0].indicator])if(!!w.session.rules[y.args[0].indicator].hasOwnProperty(z)){var X=w.session.rules[y.args[0].indicator][z];w.session.renamed_variables={},X=X.rename(w),X.body===null&&(X.body=new H("true"));var Z=new H(",",[new H("=",[X.head,y.args[0]]),new H("=",[X.body,y.args[1]])]);F.push(new xe(P.goal.replace(Z),P.substitution,P))}w.prepend(F)}else w.throw_error(b.error.permission("access","private_procedure",y.args[0].indicator,y.indicator))},"current_predicate/1":function(w,P,y){var F=y.args[0];if(!b.type.is_variable(F)&&(!b.type.is_compound(F)||F.indicator!=="//2"))w.throw_error(b.error.type("predicate_indicator",F,y.indicator));else if(!b.type.is_variable(F)&&!b.type.is_variable(F.args[0])&&!b.type.is_atom(F.args[0]))w.throw_error(b.error.type("atom",F.args[0],y.indicator));else if(!b.type.is_variable(F)&&!b.type.is_variable(F.args[1])&&!b.type.is_integer(F.args[1]))w.throw_error(b.error.type("integer",F.args[1],y.indicator));else{var z=[];for(var X in w.session.rules)if(!!w.session.rules.hasOwnProperty(X)){var Z=X.lastIndexOf("/"),ie=X.substr(0,Z),Pe=parseInt(X.substr(Z+1,X.length-(Z+1))),Ne=new H("/",[new H(ie),new Fe(Pe,!1)]),ot=new H("=",[Ne,F]);z.push(new xe(P.goal.replace(ot),P.substitution,P))}w.prepend(z)}},"asserta/1":function(w,P,y){if(b.type.is_variable(y.args[0]))w.throw_error(b.error.instantiation(y.indicator));else if(!b.type.is_callable(y.args[0]))w.throw_error(b.error.type("callable",y.args[0],y.indicator));else{var F,z;y.args[0].indicator===":-/2"?(F=y.args[0].args[0],z=we(y.args[0].args[1])):(F=y.args[0],z=null),b.type.is_callable(F)?z!==null&&!b.type.is_callable(z)?w.throw_error(b.error.type("callable",z,y.indicator)):w.is_public_predicate(F.indicator)?(w.session.rules[F.indicator]===void 0&&(w.session.rules[F.indicator]=[]),w.session.public_predicates[F.indicator]=!0,w.session.rules[F.indicator]=[new He(F,z,!0)].concat(w.session.rules[F.indicator]),w.success(P)):w.throw_error(b.error.permission("modify","static_procedure",F.indicator,y.indicator)):w.throw_error(b.error.type("callable",F,y.indicator))}},"assertz/1":function(w,P,y){if(b.type.is_variable(y.args[0]))w.throw_error(b.error.instantiation(y.indicator));else if(!b.type.is_callable(y.args[0]))w.throw_error(b.error.type("callable",y.args[0],y.indicator));else{var F,z;y.args[0].indicator===":-/2"?(F=y.args[0].args[0],z=we(y.args[0].args[1])):(F=y.args[0],z=null),b.type.is_callable(F)?z!==null&&!b.type.is_callable(z)?w.throw_error(b.error.type("callable",z,y.indicator)):w.is_public_predicate(F.indicator)?(w.session.rules[F.indicator]===void 0&&(w.session.rules[F.indicator]=[]),w.session.public_predicates[F.indicator]=!0,w.session.rules[F.indicator].push(new He(F,z,!0)),w.success(P)):w.throw_error(b.error.permission("modify","static_procedure",F.indicator,y.indicator)):w.throw_error(b.error.type("callable",F,y.indicator))}},"retract/1":function(w,P,y){if(b.type.is_variable(y.args[0]))w.throw_error(b.error.instantiation(y.indicator));else if(!b.type.is_callable(y.args[0]))w.throw_error(b.error.type("callable",y.args[0],y.indicator));else{var F,z;if(y.args[0].indicator===":-/2"?(F=y.args[0].args[0],z=y.args[0].args[1]):(F=y.args[0],z=new H("true")),typeof P.retract>"u")if(w.is_public_predicate(F.indicator)){if(w.session.rules[F.indicator]!==void 0){for(var X=[],Z=0;Zw.get_flag("max_arity").value)w.throw_error(b.error.representation("max_arity",y.indicator));else{var F=y.args[0].args[0].id+"/"+y.args[0].args[1].value;w.is_public_predicate(F)?(delete w.session.rules[F],w.success(P)):w.throw_error(b.error.permission("modify","static_procedure",F,y.indicator))}},"atom_length/2":function(w,P,y){if(b.type.is_variable(y.args[0]))w.throw_error(b.error.instantiation(y.indicator));else if(!b.type.is_atom(y.args[0]))w.throw_error(b.error.type("atom",y.args[0],y.indicator));else if(!b.type.is_variable(y.args[1])&&!b.type.is_integer(y.args[1]))w.throw_error(b.error.type("integer",y.args[1],y.indicator));else if(b.type.is_integer(y.args[1])&&y.args[1].value<0)w.throw_error(b.error.domain("not_less_than_zero",y.args[1],y.indicator));else{var F=new Fe(y.args[0].id.length,!1);w.prepend([new xe(P.goal.replace(new H("=",[F,y.args[1]])),P.substitution,P)])}},"atom_concat/3":function(w,P,y){var F,z,X=y.args[0],Z=y.args[1],ie=y.args[2];if(b.type.is_variable(ie)&&(b.type.is_variable(X)||b.type.is_variable(Z)))w.throw_error(b.error.instantiation(y.indicator));else if(!b.type.is_variable(X)&&!b.type.is_atom(X))w.throw_error(b.error.type("atom",X,y.indicator));else if(!b.type.is_variable(Z)&&!b.type.is_atom(Z))w.throw_error(b.error.type("atom",Z,y.indicator));else if(!b.type.is_variable(ie)&&!b.type.is_atom(ie))w.throw_error(b.error.type("atom",ie,y.indicator));else{var Pe=b.type.is_variable(X),Ne=b.type.is_variable(Z);if(!Pe&&!Ne)z=new H("=",[ie,new H(X.id+Z.id)]),w.prepend([new xe(P.goal.replace(z),P.substitution,P)]);else if(Pe&&!Ne)F=ie.id.substr(0,ie.id.length-Z.id.length),F+Z.id===ie.id&&(z=new H("=",[X,new H(F)]),w.prepend([new xe(P.goal.replace(z),P.substitution,P)]));else if(Ne&&!Pe)F=ie.id.substr(X.id.length),X.id+F===ie.id&&(z=new H("=",[Z,new H(F)]),w.prepend([new xe(P.goal.replace(z),P.substitution,P)]));else{for(var ot=[],dt=0;dt<=ie.id.length;dt++){var jt=new H(ie.id.substr(0,dt)),$t=new H(ie.id.substr(dt));z=new H(",",[new H("=",[jt,X]),new H("=",[$t,Z])]),ot.push(new xe(P.goal.replace(z),P.substitution,P))}w.prepend(ot)}}},"sub_atom/5":function(w,P,y){var F,z=y.args[0],X=y.args[1],Z=y.args[2],ie=y.args[3],Pe=y.args[4];if(b.type.is_variable(z))w.throw_error(b.error.instantiation(y.indicator));else if(!b.type.is_variable(X)&&!b.type.is_integer(X))w.throw_error(b.error.type("integer",X,y.indicator));else if(!b.type.is_variable(Z)&&!b.type.is_integer(Z))w.throw_error(b.error.type("integer",Z,y.indicator));else if(!b.type.is_variable(ie)&&!b.type.is_integer(ie))w.throw_error(b.error.type("integer",ie,y.indicator));else if(b.type.is_integer(X)&&X.value<0)w.throw_error(b.error.domain("not_less_than_zero",X,y.indicator));else if(b.type.is_integer(Z)&&Z.value<0)w.throw_error(b.error.domain("not_less_than_zero",Z,y.indicator));else if(b.type.is_integer(ie)&&ie.value<0)w.throw_error(b.error.domain("not_less_than_zero",ie,y.indicator));else{var Ne=[],ot=[],dt=[];if(b.type.is_variable(X))for(F=0;F<=z.id.length;F++)Ne.push(F);else Ne.push(X.value);if(b.type.is_variable(Z))for(F=0;F<=z.id.length;F++)ot.push(F);else ot.push(Z.value);if(b.type.is_variable(ie))for(F=0;F<=z.id.length;F++)dt.push(F);else dt.push(ie.value);var jt=[];for(var $t in Ne)if(!!Ne.hasOwnProperty($t)){F=Ne[$t];for(var bt in ot)if(!!ot.hasOwnProperty(bt)){var an=ot[bt],Qr=z.id.length-F-an;if(e(dt,Qr)!==-1&&F+an+Qr===z.id.length){var mr=z.id.substr(F,an);if(z.id===z.id.substr(0,F)+mr+z.id.substr(F+an,Qr)){var br=new H("=",[new H(mr),Pe]),Wr=new H("=",[X,new Fe(F)]),Kn=new H("=",[Z,new Fe(an)]),Ns=new H("=",[ie,new Fe(Qr)]),Ti=new H(",",[new H(",",[new H(",",[Wr,Kn]),Ns]),br]);jt.push(new xe(P.goal.replace(Ti),P.substitution,P))}}}}w.prepend(jt)}},"atom_chars/2":function(w,P,y){var F=y.args[0],z=y.args[1];if(b.type.is_variable(F)&&b.type.is_variable(z))w.throw_error(b.error.instantiation(y.indicator));else if(!b.type.is_variable(F)&&!b.type.is_atom(F))w.throw_error(b.error.type("atom",F,y.indicator));else if(b.type.is_variable(F)){for(var ie=z,Pe=b.type.is_variable(F),Ne="";ie.indicator==="./2";){if(b.type.is_character(ie.args[0]))Ne+=ie.args[0].id;else if(b.type.is_variable(ie.args[0])&&Pe){w.throw_error(b.error.instantiation(y.indicator));return}else if(!b.type.is_variable(ie.args[0])){w.throw_error(b.error.type("character",ie.args[0],y.indicator));return}ie=ie.args[1]}b.type.is_variable(ie)&&Pe?w.throw_error(b.error.instantiation(y.indicator)):!b.type.is_empty_list(ie)&&!b.type.is_variable(ie)?w.throw_error(b.error.type("list",z,y.indicator)):w.prepend([new xe(P.goal.replace(new H("=",[new H(Ne),F])),P.substitution,P)])}else{for(var X=new H("[]"),Z=F.id.length-1;Z>=0;Z--)X=new H(".",[new H(F.id.charAt(Z)),X]);w.prepend([new xe(P.goal.replace(new H("=",[z,X])),P.substitution,P)])}},"atom_codes/2":function(w,P,y){var F=y.args[0],z=y.args[1];if(b.type.is_variable(F)&&b.type.is_variable(z))w.throw_error(b.error.instantiation(y.indicator));else if(!b.type.is_variable(F)&&!b.type.is_atom(F))w.throw_error(b.error.type("atom",F,y.indicator));else if(b.type.is_variable(F)){for(var ie=z,Pe=b.type.is_variable(F),Ne="";ie.indicator==="./2";){if(b.type.is_character_code(ie.args[0]))Ne+=u(ie.args[0].value);else if(b.type.is_variable(ie.args[0])&&Pe){w.throw_error(b.error.instantiation(y.indicator));return}else if(!b.type.is_variable(ie.args[0])){w.throw_error(b.error.representation("character_code",y.indicator));return}ie=ie.args[1]}b.type.is_variable(ie)&&Pe?w.throw_error(b.error.instantiation(y.indicator)):!b.type.is_empty_list(ie)&&!b.type.is_variable(ie)?w.throw_error(b.error.type("list",z,y.indicator)):w.prepend([new xe(P.goal.replace(new H("=",[new H(Ne),F])),P.substitution,P)])}else{for(var X=new H("[]"),Z=F.id.length-1;Z>=0;Z--)X=new H(".",[new Fe(n(F.id,Z),!1),X]);w.prepend([new xe(P.goal.replace(new H("=",[z,X])),P.substitution,P)])}},"char_code/2":function(w,P,y){var F=y.args[0],z=y.args[1];if(b.type.is_variable(F)&&b.type.is_variable(z))w.throw_error(b.error.instantiation(y.indicator));else if(!b.type.is_variable(F)&&!b.type.is_character(F))w.throw_error(b.error.type("character",F,y.indicator));else if(!b.type.is_variable(z)&&!b.type.is_integer(z))w.throw_error(b.error.type("integer",z,y.indicator));else if(!b.type.is_variable(z)&&!b.type.is_character_code(z))w.throw_error(b.error.representation("character_code",y.indicator));else if(b.type.is_variable(z)){var X=new Fe(n(F.id,0),!1);w.prepend([new xe(P.goal.replace(new H("=",[X,z])),P.substitution,P)])}else{var Z=new H(u(z.value));w.prepend([new xe(P.goal.replace(new H("=",[Z,F])),P.substitution,P)])}},"number_chars/2":function(w,P,y){var F,z=y.args[0],X=y.args[1];if(b.type.is_variable(z)&&b.type.is_variable(X))w.throw_error(b.error.instantiation(y.indicator));else if(!b.type.is_variable(z)&&!b.type.is_number(z))w.throw_error(b.error.type("number",z,y.indicator));else if(!b.type.is_variable(X)&&!b.type.is_list(X))w.throw_error(b.error.type("list",X,y.indicator));else{var Z=b.type.is_variable(z);if(!b.type.is_variable(X)){var ie=X,Pe=!0;for(F="";ie.indicator==="./2";){if(b.type.is_character(ie.args[0]))F+=ie.args[0].id;else if(b.type.is_variable(ie.args[0]))Pe=!1;else if(!b.type.is_variable(ie.args[0])){w.throw_error(b.error.type("character",ie.args[0],y.indicator));return}ie=ie.args[1]}if(Pe=Pe&&b.type.is_empty_list(ie),!b.type.is_empty_list(ie)&&!b.type.is_variable(ie)){w.throw_error(b.error.type("list",X,y.indicator));return}if(!Pe&&Z){w.throw_error(b.error.instantiation(y.indicator));return}else if(Pe)if(b.type.is_variable(ie)&&Z){w.throw_error(b.error.instantiation(y.indicator));return}else{var Ne=w.parse(F),ot=Ne.value;!b.type.is_number(ot)||Ne.tokens[Ne.tokens.length-1].space?w.throw_error(b.error.syntax_by_predicate("parseable_number",y.indicator)):w.prepend([new xe(P.goal.replace(new H("=",[z,ot])),P.substitution,P)]);return}}if(!Z){F=z.toString();for(var dt=new H("[]"),jt=F.length-1;jt>=0;jt--)dt=new H(".",[new H(F.charAt(jt)),dt]);w.prepend([new xe(P.goal.replace(new H("=",[X,dt])),P.substitution,P)])}}},"number_codes/2":function(w,P,y){var F,z=y.args[0],X=y.args[1];if(b.type.is_variable(z)&&b.type.is_variable(X))w.throw_error(b.error.instantiation(y.indicator));else if(!b.type.is_variable(z)&&!b.type.is_number(z))w.throw_error(b.error.type("number",z,y.indicator));else if(!b.type.is_variable(X)&&!b.type.is_list(X))w.throw_error(b.error.type("list",X,y.indicator));else{var Z=b.type.is_variable(z);if(!b.type.is_variable(X)){var ie=X,Pe=!0;for(F="";ie.indicator==="./2";){if(b.type.is_character_code(ie.args[0]))F+=u(ie.args[0].value);else if(b.type.is_variable(ie.args[0]))Pe=!1;else if(!b.type.is_variable(ie.args[0])){w.throw_error(b.error.type("character_code",ie.args[0],y.indicator));return}ie=ie.args[1]}if(Pe=Pe&&b.type.is_empty_list(ie),!b.type.is_empty_list(ie)&&!b.type.is_variable(ie)){w.throw_error(b.error.type("list",X,y.indicator));return}if(!Pe&&Z){w.throw_error(b.error.instantiation(y.indicator));return}else if(Pe)if(b.type.is_variable(ie)&&Z){w.throw_error(b.error.instantiation(y.indicator));return}else{var Ne=w.parse(F),ot=Ne.value;!b.type.is_number(ot)||Ne.tokens[Ne.tokens.length-1].space?w.throw_error(b.error.syntax_by_predicate("parseable_number",y.indicator)):w.prepend([new xe(P.goal.replace(new H("=",[z,ot])),P.substitution,P)]);return}}if(!Z){F=z.toString();for(var dt=new H("[]"),jt=F.length-1;jt>=0;jt--)dt=new H(".",[new Fe(n(F,jt),!1),dt]);w.prepend([new xe(P.goal.replace(new H("=",[X,dt])),P.substitution,P)])}}},"upcase_atom/2":function(w,P,y){var F=y.args[0],z=y.args[1];b.type.is_variable(F)?w.throw_error(b.error.instantiation(y.indicator)):b.type.is_atom(F)?!b.type.is_variable(z)&&!b.type.is_atom(z)?w.throw_error(b.error.type("atom",z,y.indicator)):w.prepend([new xe(P.goal.replace(new H("=",[z,new H(F.id.toUpperCase(),[])])),P.substitution,P)]):w.throw_error(b.error.type("atom",F,y.indicator))},"downcase_atom/2":function(w,P,y){var F=y.args[0],z=y.args[1];b.type.is_variable(F)?w.throw_error(b.error.instantiation(y.indicator)):b.type.is_atom(F)?!b.type.is_variable(z)&&!b.type.is_atom(z)?w.throw_error(b.error.type("atom",z,y.indicator)):w.prepend([new xe(P.goal.replace(new H("=",[z,new H(F.id.toLowerCase(),[])])),P.substitution,P)]):w.throw_error(b.error.type("atom",F,y.indicator))},"atomic_list_concat/2":function(w,P,y){var F=y.args[0],z=y.args[1];w.prepend([new xe(P.goal.replace(new H("atomic_list_concat",[F,new H("",[]),z])),P.substitution,P)])},"atomic_list_concat/3":function(w,P,y){var F=y.args[0],z=y.args[1],X=y.args[2];if(b.type.is_variable(z)||b.type.is_variable(F)&&b.type.is_variable(X))w.throw_error(b.error.instantiation(y.indicator));else if(!b.type.is_variable(F)&&!b.type.is_list(F))w.throw_error(b.error.type("list",F,y.indicator));else if(!b.type.is_variable(X)&&!b.type.is_atom(X))w.throw_error(b.error.type("atom",X,y.indicator));else if(b.type.is_variable(X)){for(var ie="",Pe=F;b.type.is_term(Pe)&&Pe.indicator==="./2";){if(!b.type.is_atom(Pe.args[0])&&!b.type.is_number(Pe.args[0])){w.throw_error(b.error.type("atomic",Pe.args[0],y.indicator));return}ie!==""&&(ie+=z.id),b.type.is_atom(Pe.args[0])?ie+=Pe.args[0].id:ie+=""+Pe.args[0].value,Pe=Pe.args[1]}ie=new H(ie,[]),b.type.is_variable(Pe)?w.throw_error(b.error.instantiation(y.indicator)):!b.type.is_term(Pe)||Pe.indicator!=="[]/0"?w.throw_error(b.error.type("list",F,y.indicator)):w.prepend([new xe(P.goal.replace(new H("=",[ie,X])),P.substitution,P)])}else{var Z=g(o(X.id.split(z.id),function(Ne){return new H(Ne,[])}));w.prepend([new xe(P.goal.replace(new H("=",[Z,F])),P.substitution,P)])}},"@=/2":function(w,P,y){b.compare(y.args[0],y.args[1])>0&&w.success(P)},"@>=/2":function(w,P,y){b.compare(y.args[0],y.args[1])>=0&&w.success(P)},"compare/3":function(w,P,y){var F=y.args[0],z=y.args[1],X=y.args[2];if(!b.type.is_variable(F)&&!b.type.is_atom(F))w.throw_error(b.error.type("atom",F,y.indicator));else if(b.type.is_atom(F)&&["<",">","="].indexOf(F.id)===-1)w.throw_error(b.type.domain("order",F,y.indicator));else{var Z=b.compare(z,X);Z=Z===0?"=":Z===-1?"<":">",w.prepend([new xe(P.goal.replace(new H("=",[F,new H(Z,[])])),P.substitution,P)])}},"is/2":function(w,P,y){var F=y.args[1].interpret(w);b.type.is_number(F)?w.prepend([new xe(P.goal.replace(new H("=",[y.args[0],F],w.level)),P.substitution,P)]):w.throw_error(F)},"between/3":function(w,P,y){var F=y.args[0],z=y.args[1],X=y.args[2];if(b.type.is_variable(F)||b.type.is_variable(z))w.throw_error(b.error.instantiation(y.indicator));else if(!b.type.is_integer(F))w.throw_error(b.error.type("integer",F,y.indicator));else if(!b.type.is_integer(z))w.throw_error(b.error.type("integer",z,y.indicator));else if(!b.type.is_variable(X)&&!b.type.is_integer(X))w.throw_error(b.error.type("integer",X,y.indicator));else if(b.type.is_variable(X)){var Z=[new xe(P.goal.replace(new H("=",[X,F])),P.substitution,P)];F.value=X.value&&w.success(P)},"succ/2":function(w,P,y){var F=y.args[0],z=y.args[1];b.type.is_variable(F)&&b.type.is_variable(z)?w.throw_error(b.error.instantiation(y.indicator)):!b.type.is_variable(F)&&!b.type.is_integer(F)?w.throw_error(b.error.type("integer",F,y.indicator)):!b.type.is_variable(z)&&!b.type.is_integer(z)?w.throw_error(b.error.type("integer",z,y.indicator)):!b.type.is_variable(F)&&F.value<0?w.throw_error(b.error.domain("not_less_than_zero",F,y.indicator)):!b.type.is_variable(z)&&z.value<0?w.throw_error(b.error.domain("not_less_than_zero",z,y.indicator)):(b.type.is_variable(z)||z.value>0)&&(b.type.is_variable(F)?w.prepend([new xe(P.goal.replace(new H("=",[F,new Fe(z.value-1,!1)])),P.substitution,P)]):w.prepend([new xe(P.goal.replace(new H("=",[z,new Fe(F.value+1,!1)])),P.substitution,P)]))},"=:=/2":function(w,P,y){var F=b.arithmetic_compare(w,y.args[0],y.args[1]);b.type.is_term(F)?w.throw_error(F):F===0&&w.success(P)},"=\\=/2":function(w,P,y){var F=b.arithmetic_compare(w,y.args[0],y.args[1]);b.type.is_term(F)?w.throw_error(F):F!==0&&w.success(P)},"/2":function(w,P,y){var F=b.arithmetic_compare(w,y.args[0],y.args[1]);b.type.is_term(F)?w.throw_error(F):F>0&&w.success(P)},">=/2":function(w,P,y){var F=b.arithmetic_compare(w,y.args[0],y.args[1]);b.type.is_term(F)?w.throw_error(F):F>=0&&w.success(P)},"var/1":function(w,P,y){b.type.is_variable(y.args[0])&&w.success(P)},"atom/1":function(w,P,y){b.type.is_atom(y.args[0])&&w.success(P)},"atomic/1":function(w,P,y){b.type.is_atomic(y.args[0])&&w.success(P)},"compound/1":function(w,P,y){b.type.is_compound(y.args[0])&&w.success(P)},"integer/1":function(w,P,y){b.type.is_integer(y.args[0])&&w.success(P)},"float/1":function(w,P,y){b.type.is_float(y.args[0])&&w.success(P)},"number/1":function(w,P,y){b.type.is_number(y.args[0])&&w.success(P)},"nonvar/1":function(w,P,y){b.type.is_variable(y.args[0])||w.success(P)},"ground/1":function(w,P,y){y.variables().length===0&&w.success(P)},"acyclic_term/1":function(w,P,y){for(var F=P.substitution.apply(P.substitution),z=y.args[0].variables(),X=0;X0?bt[bt.length-1]:null,bt!==null&&(jt=J(w,bt,0,w.__get_max_priority(),!1))}if(jt.type===p&&jt.len===bt.length-1&&an.value==="."){jt=jt.value.rename(w);var Qr=new H("=",[z,jt]);if(ie.variables){var mr=g(o(Se(jt.variables()),function(br){return new Ie(br)}));Qr=new H(",",[Qr,new H("=",[ie.variables,mr])])}if(ie.variable_names){var mr=g(o(Se(jt.variables()),function(Wr){var Kn;for(Kn in w.session.renamed_variables)if(w.session.renamed_variables.hasOwnProperty(Kn)&&w.session.renamed_variables[Kn]===Wr)break;return new H("=",[new H(Kn,[]),new Ie(Wr)])}));Qr=new H(",",[Qr,new H("=",[ie.variable_names,mr])])}if(ie.singletons){var mr=g(o(new He(jt,null).singleton_variables(),function(Wr){var Kn;for(Kn in w.session.renamed_variables)if(w.session.renamed_variables.hasOwnProperty(Kn)&&w.session.renamed_variables[Kn]===Wr)break;return new H("=",[new H(Kn,[]),new Ie(Wr)])}));Qr=new H(",",[Qr,new H("=",[ie.singletons,mr])])}w.prepend([new xe(P.goal.replace(Qr),P.substitution,P)])}else jt.type===p?w.throw_error(b.error.syntax(bt[jt.len],"unexpected token",!1)):w.throw_error(jt.value)}}},"write/1":function(w,P,y){var F=y.args[0];w.prepend([new xe(P.goal.replace(new H(",",[new H("current_output",[new Ie("S")]),new H("write",[new Ie("S"),F])])),P.substitution,P)])},"write/2":function(w,P,y){var F=y.args[0],z=y.args[1];w.prepend([new xe(P.goal.replace(new H("write_term",[F,z,new H(".",[new H("quoted",[new H("false",[])]),new H(".",[new H("ignore_ops",[new H("false")]),new H(".",[new H("numbervars",[new H("true")]),new H("[]",[])])])])])),P.substitution,P)])},"writeq/1":function(w,P,y){var F=y.args[0];w.prepend([new xe(P.goal.replace(new H(",",[new H("current_output",[new Ie("S")]),new H("writeq",[new Ie("S"),F])])),P.substitution,P)])},"writeq/2":function(w,P,y){var F=y.args[0],z=y.args[1];w.prepend([new xe(P.goal.replace(new H("write_term",[F,z,new H(".",[new H("quoted",[new H("true",[])]),new H(".",[new H("ignore_ops",[new H("false")]),new H(".",[new H("numbervars",[new H("true")]),new H("[]",[])])])])])),P.substitution,P)])},"write_canonical/1":function(w,P,y){var F=y.args[0];w.prepend([new xe(P.goal.replace(new H(",",[new H("current_output",[new Ie("S")]),new H("write_canonical",[new Ie("S"),F])])),P.substitution,P)])},"write_canonical/2":function(w,P,y){var F=y.args[0],z=y.args[1];w.prepend([new xe(P.goal.replace(new H("write_term",[F,z,new H(".",[new H("quoted",[new H("true",[])]),new H(".",[new H("ignore_ops",[new H("true")]),new H(".",[new H("numbervars",[new H("false")]),new H("[]",[])])])])])),P.substitution,P)])},"write_term/2":function(w,P,y){var F=y.args[0],z=y.args[1];w.prepend([new xe(P.goal.replace(new H(",",[new H("current_output",[new Ie("S")]),new H("write_term",[new Ie("S"),F,z])])),P.substitution,P)])},"write_term/3":function(w,P,y){var F=y.args[0],z=y.args[1],X=y.args[2],Z=b.type.is_stream(F)?F:w.get_stream_by_alias(F.id);if(b.type.is_variable(F)||b.type.is_variable(X))w.throw_error(b.error.instantiation(y.indicator));else if(!b.type.is_list(X))w.throw_error(b.error.type("list",X,y.indicator));else if(!b.type.is_stream(F)&&!b.type.is_atom(F))w.throw_error(b.error.domain("stream_or_alias",F,y.indicator));else if(!b.type.is_stream(Z)||Z.stream===null)w.throw_error(b.error.existence("stream",F,y.indicator));else if(Z.input)w.throw_error(b.error.permission("output","stream",F,y.indicator));else if(Z.type==="binary")w.throw_error(b.error.permission("output","binary_stream",F,y.indicator));else if(Z.position==="past_end_of_stream"&&Z.eof_action==="error")w.throw_error(b.error.permission("output","past_end_of_stream",F,y.indicator));else{for(var ie={},Pe=X,Ne;b.type.is_term(Pe)&&Pe.indicator==="./2";){if(Ne=Pe.args[0],b.type.is_variable(Ne)){w.throw_error(b.error.instantiation(y.indicator));return}else if(!b.type.is_write_option(Ne)){w.throw_error(b.error.domain("write_option",Ne,y.indicator));return}ie[Ne.id]=Ne.args[0].id==="true",Pe=Pe.args[1]}if(Pe.indicator!=="[]/0"){b.type.is_variable(Pe)?w.throw_error(b.error.instantiation(y.indicator)):w.throw_error(b.error.type("list",X,y.indicator));return}else{ie.session=w.session;var ot=z.toString(ie);Z.stream.put(ot,Z.position),typeof Z.position=="number"&&(Z.position+=ot.length),w.success(P)}}},"halt/0":function(w,P,y){w.points=[]},"halt/1":function(w,P,y){var F=y.args[0];b.type.is_variable(F)?w.throw_error(b.error.instantiation(y.indicator)):b.type.is_integer(F)?w.points=[]:w.throw_error(b.error.type("integer",F,y.indicator))},"current_prolog_flag/2":function(w,P,y){var F=y.args[0],z=y.args[1];if(!b.type.is_variable(F)&&!b.type.is_atom(F))w.throw_error(b.error.type("atom",F,y.indicator));else if(!b.type.is_variable(F)&&!b.type.is_flag(F))w.throw_error(b.error.domain("prolog_flag",F,y.indicator));else{var X=[];for(var Z in b.flag)if(!!b.flag.hasOwnProperty(Z)){var ie=new H(",",[new H("=",[new H(Z),F]),new H("=",[w.get_flag(Z),z])]);X.push(new xe(P.goal.replace(ie),P.substitution,P))}w.prepend(X)}},"set_prolog_flag/2":function(w,P,y){var F=y.args[0],z=y.args[1];b.type.is_variable(F)||b.type.is_variable(z)?w.throw_error(b.error.instantiation(y.indicator)):b.type.is_atom(F)?b.type.is_flag(F)?b.type.is_value_flag(F,z)?b.type.is_modifiable_flag(F)?(w.session.flag[F.id]=z,w.success(P)):w.throw_error(b.error.permission("modify","flag",F)):w.throw_error(b.error.domain("flag_value",new H("+",[F,z]),y.indicator)):w.throw_error(b.error.domain("prolog_flag",F,y.indicator)):w.throw_error(b.error.type("atom",F,y.indicator))}},flag:{bounded:{allowed:[new H("true"),new H("false")],value:new H("true"),changeable:!1},max_integer:{allowed:[new Fe(Number.MAX_SAFE_INTEGER)],value:new Fe(Number.MAX_SAFE_INTEGER),changeable:!1},min_integer:{allowed:[new Fe(Number.MIN_SAFE_INTEGER)],value:new Fe(Number.MIN_SAFE_INTEGER),changeable:!1},integer_rounding_function:{allowed:[new H("down"),new H("toward_zero")],value:new H("toward_zero"),changeable:!1},char_conversion:{allowed:[new H("on"),new H("off")],value:new H("on"),changeable:!0},debug:{allowed:[new H("on"),new H("off")],value:new H("off"),changeable:!0},max_arity:{allowed:[new H("unbounded")],value:new H("unbounded"),changeable:!1},unknown:{allowed:[new H("error"),new H("fail"),new H("warning")],value:new H("error"),changeable:!0},double_quotes:{allowed:[new H("chars"),new H("codes"),new H("atom")],value:new H("codes"),changeable:!0},occurs_check:{allowed:[new H("false"),new H("true")],value:new H("false"),changeable:!0},dialect:{allowed:[new H("tau")],value:new H("tau"),changeable:!1},version_data:{allowed:[new H("tau",[new Fe(t.major,!1),new Fe(t.minor,!1),new Fe(t.patch,!1),new H(t.status)])],value:new H("tau",[new Fe(t.major,!1),new Fe(t.minor,!1),new Fe(t.patch,!1),new H(t.status)]),changeable:!1},nodejs:{allowed:[new H("yes"),new H("no")],value:new H(typeof hl<"u"&&hl.exports?"yes":"no"),changeable:!1}},unify:function(w,P,y){y=y===void 0?!1:y;for(var F=[{left:w,right:P}],z={};F.length!==0;){var X=F.pop();if(w=X.left,P=X.right,b.type.is_term(w)&&b.type.is_term(P)){if(w.indicator!==P.indicator)return null;for(var Z=0;Zz.value?1:0:z}else return F},operate:function(w,P){if(b.type.is_operator(P)){for(var y=b.type.is_operator(P),F=[],z,X=!1,Z=0;Zw.get_flag("max_integer").value||z0?w.start+w.matches[0].length:w.start,z=y?new H("token_not_found"):new H("found",[new H(w.value.toString())]),X=new H(".",[new H("line",[new Fe(w.line+1)]),new H(".",[new H("column",[new Fe(F+1)]),new H(".",[z,new H("[]",[])])])]);return new H("error",[new H("syntax_error",[new H(P)]),X])},syntax_by_predicate:function(w,P){return new H("error",[new H("syntax_error",[new H(w)]),ee(P)])}},warning:{singleton:function(w,P,y){for(var F=new H("[]"),z=w.length-1;z>=0;z--)F=new H(".",[new Ie(w[z]),F]);return new H("warning",[new H("singleton_variables",[F,ee(P)]),new H(".",[new H("line",[new Fe(y,!1)]),new H("[]")])])},failed_goal:function(w,P){return new H("warning",[new H("failed_goal",[w]),new H(".",[new H("line",[new Fe(P,!1)]),new H("[]")])])}},format_variable:function(w){return"_"+w},format_answer:function(w,P,F){P instanceof Te&&(P=P.thread);var F=F||{};if(F.session=P?P.session:void 0,b.type.is_error(w))return"uncaught exception: "+w.args[0].toString();if(w===!1)return"false.";if(w===null)return"limit exceeded ;";var z=0,X="";if(b.type.is_substitution(w)){var Z=w.domain(!0);w=w.filter(function(Ne,ot){return!b.type.is_variable(ot)||Z.indexOf(ot.id)!==-1&&Ne!==ot.id})}for(var ie in w.links)!w.links.hasOwnProperty(ie)||(z++,X!==""&&(X+=", "),X+=ie.toString(F)+" = "+w.links[ie].toString(F));var Pe=typeof P>"u"||P.points.length>0?" ;":".";return z===0?"true"+Pe:X+Pe},flatten_error:function(w){if(!b.type.is_error(w))return null;w=w.args[0];var P={};return P.type=w.args[0].id,P.thrown=P.type==="syntax_error"?null:w.args[1].id,P.expected=null,P.found=null,P.representation=null,P.existence=null,P.existence_type=null,P.line=null,P.column=null,P.permission_operation=null,P.permission_type=null,P.evaluation_type=null,P.type==="type_error"||P.type==="domain_error"?(P.expected=w.args[0].args[0].id,P.found=w.args[0].args[1].toString()):P.type==="syntax_error"?w.args[1].indicator==="./2"?(P.expected=w.args[0].args[0].id,P.found=w.args[1].args[1].args[1].args[0],P.found=P.found.id==="token_not_found"?P.found.id:P.found.args[0].id,P.line=w.args[1].args[0].args[0].value,P.column=w.args[1].args[1].args[0].args[0].value):P.thrown=w.args[1].id:P.type==="permission_error"?(P.found=w.args[0].args[2].toString(),P.permission_operation=w.args[0].args[0].id,P.permission_type=w.args[0].args[1].id):P.type==="evaluation_error"?P.evaluation_type=w.args[0].args[0].id:P.type==="representation_error"?P.representation=w.args[0].args[0].id:P.type==="existence_error"&&(P.existence=w.args[0].args[1].toString(),P.existence_type=w.args[0].args[0].id),P},create:function(w){return new b.type.Session(w)}};typeof hl<"u"?hl.exports=b:window.pl=b})()});function ime(t,e,r){t.prepend(r.map(o=>new Ta.default.type.State(e.goal.replace(o),e.substitution,e)))}function yH(t){let e=ome.get(t.session);if(e==null)throw new Error("Assertion failed: A project should have been registered for the active session");return e}function ame(t,e){ome.set(t,e),t.consult(`:- use_module(library(${zgt.id})).`)}var EH,Ta,sme,u0,Vgt,Jgt,ome,zgt,lme=Et(()=>{Ye();EH=$e(d2()),Ta=$e(mH()),sme=$e(ve("vm")),{is_atom:u0,is_variable:Vgt,is_instantiated_list:Jgt}=Ta.default.type;ome=new WeakMap;zgt=new Ta.default.type.Module("constraints",{["project_workspaces_by_descriptor/3"]:(t,e,r)=>{let[o,a,n]=r.args;if(!u0(o)||!u0(a)){t.throw_error(Ta.default.error.instantiation(r.indicator));return}let u=W.parseIdent(o.id),A=W.makeDescriptor(u,a.id),h=yH(t).tryWorkspaceByDescriptor(A);Vgt(n)&&h!==null&&ime(t,e,[new Ta.default.type.Term("=",[n,new Ta.default.type.Term(String(h.relativeCwd))])]),u0(n)&&h!==null&&h.relativeCwd===n.id&&t.success(e)},["workspace_field/3"]:(t,e,r)=>{let[o,a,n]=r.args;if(!u0(o)||!u0(a)){t.throw_error(Ta.default.error.instantiation(r.indicator));return}let A=yH(t).tryWorkspaceByCwd(o.id);if(A==null)return;let p=(0,EH.default)(A.manifest.raw,a.id);typeof p>"u"||ime(t,e,[new Ta.default.type.Term("=",[n,new Ta.default.type.Term(typeof p=="object"?JSON.stringify(p):p)])])},["workspace_field_test/3"]:(t,e,r)=>{let[o,a,n]=r.args;t.prepend([new Ta.default.type.State(e.goal.replace(new Ta.default.type.Term("workspace_field_test",[o,a,n,new Ta.default.type.Term("[]",[])])),e.substitution,e)])},["workspace_field_test/4"]:(t,e,r)=>{let[o,a,n,u]=r.args;if(!u0(o)||!u0(a)||!u0(n)||!Jgt(u)){t.throw_error(Ta.default.error.instantiation(r.indicator));return}let p=yH(t).tryWorkspaceByCwd(o.id);if(p==null)return;let h=(0,EH.default)(p.manifest.raw,a.id);if(typeof h>"u")return;let E={$$:h};for(let[v,x]of u.toJavaScript().entries())E[`$${v}`]=x;sme.default.runInNewContext(n.id,E)&&t.success(e)}},["project_workspaces_by_descriptor/3","workspace_field/3","workspace_field_test/3","workspace_field_test/4"])});var b2={};Vt(b2,{Constraints:()=>P2,DependencyType:()=>fme});function to(t){if(t instanceof DC.default.type.Num)return t.value;if(t instanceof DC.default.type.Term)switch(t.indicator){case"throw/1":return to(t.args[0]);case"error/1":return to(t.args[0]);case"error/2":if(t.args[0]instanceof DC.default.type.Term&&t.args[0].indicator==="syntax_error/1")return Object.assign(to(t.args[0]),...to(t.args[1]));{let e=to(t.args[0]);return e.message+=` (in ${to(t.args[1])})`,e}case"syntax_error/1":return new zt(43,`Syntax error: ${to(t.args[0])}`);case"existence_error/2":return new zt(44,`Existence error: ${to(t.args[0])} ${to(t.args[1])} not found`);case"instantiation_error/0":return new zt(75,"Instantiation error: an argument is variable when an instantiated argument was expected");case"line/1":return{line:to(t.args[0])};case"column/1":return{column:to(t.args[0])};case"found/1":return{found:to(t.args[0])};case"./2":return[to(t.args[0])].concat(to(t.args[1]));case"//2":return`${to(t.args[0])}/${to(t.args[1])}`;default:return t.id}throw`couldn't pretty print because of unsupported node ${t}`}function ume(t){let e;try{e=to(t)}catch(r){throw typeof r=="string"?new zt(42,`Unknown error: ${t} (note: ${r})`):r}return typeof e.line<"u"&&typeof e.column<"u"&&(e.message+=` at line ${e.line}, column ${e.column}`),e}function em(t){return t.id==="null"?null:`${t.toJavaScript()}`}function Xgt(t){if(t.id==="null")return null;{let e=t.toJavaScript();if(typeof e!="string")return JSON.stringify(e);try{return JSON.stringify(JSON.parse(e))}catch{return JSON.stringify(e)}}}function A0(t){return typeof t=="string"?`'${t}'`:"[]"}var Ame,DC,fme,cme,CH,P2,x2=Et(()=>{Ye();Ye();St();Ame=$e(qde()),DC=$e(mH());v2();lme();(0,Ame.default)(DC.default);fme=(o=>(o.Dependencies="dependencies",o.DevDependencies="devDependencies",o.PeerDependencies="peerDependencies",o))(fme||{}),cme=["dependencies","devDependencies","peerDependencies"];CH=class{constructor(e,r){let o=1e3*e.workspaces.length;this.session=DC.default.create(o),ame(this.session,e),this.session.consult(":- use_module(library(lists))."),this.session.consult(r)}fetchNextAnswer(){return new Promise(e=>{this.session.answer(r=>{e(r)})})}async*makeQuery(e){let r=this.session.query(e);if(r!==!0)throw ume(r);for(;;){let o=await this.fetchNextAnswer();if(o===null)throw new zt(79,"Resolution limit exceeded");if(!o)break;if(o.id==="throw")throw ume(o);yield o}}};P2=class{constructor(e){this.source="";this.project=e;let r=e.configuration.get("constraintsPath");oe.existsSync(r)&&(this.source=oe.readFileSync(r,"utf8"))}static async find(e){return new P2(e)}getProjectDatabase(){let e="";for(let r of cme)e+=`dependency_type(${r}). +`;for(let r of this.project.workspacesByCwd.values()){let o=r.relativeCwd;e+=`workspace(${A0(o)}). +`,e+=`workspace_ident(${A0(o)}, ${A0(W.stringifyIdent(r.anchoredLocator))}). +`,e+=`workspace_version(${A0(o)}, ${A0(r.manifest.version)}). +`;for(let a of cme)for(let n of r.manifest[a].values())e+=`workspace_has_dependency(${A0(o)}, ${A0(W.stringifyIdent(n))}, ${A0(n.range)}, ${a}). +`}return e+=`workspace(_) :- false. +`,e+=`workspace_ident(_, _) :- false. +`,e+=`workspace_version(_, _) :- false. +`,e+=`workspace_has_dependency(_, _, _, _) :- false. +`,e}getDeclarations(){let e="";return e+=`gen_enforced_dependency(_, _, _, _) :- false. +`,e+=`gen_enforced_field(_, _, _) :- false. +`,e}get fullSource(){return`${this.getProjectDatabase()} +${this.source} +${this.getDeclarations()}`}createSession(){return new CH(this.project,this.fullSource)}async processClassic(){let e=this.createSession();return{enforcedDependencies:await this.genEnforcedDependencies(e),enforcedFields:await this.genEnforcedFields(e)}}async process(){let{enforcedDependencies:e,enforcedFields:r}=await this.processClassic(),o=new Map;for(let{workspace:a,dependencyIdent:n,dependencyRange:u,dependencyType:A}of e){let p=B2([A,W.stringifyIdent(n)]),h=_e.getMapWithDefault(o,a.cwd);_e.getMapWithDefault(h,p).set(u??void 0,new Set)}for(let{workspace:a,fieldPath:n,fieldValue:u}of r){let A=B2(n),p=_e.getMapWithDefault(o,a.cwd);_e.getMapWithDefault(p,A).set(JSON.parse(u)??void 0,new Set)}return{manifestUpdates:o,reportedErrors:new Map}}async genEnforcedDependencies(e){let r=[];for await(let o of e.makeQuery("workspace(WorkspaceCwd), dependency_type(DependencyType), gen_enforced_dependency(WorkspaceCwd, DependencyIdent, DependencyRange, DependencyType).")){let a=V.resolve(this.project.cwd,em(o.links.WorkspaceCwd)),n=em(o.links.DependencyIdent),u=em(o.links.DependencyRange),A=em(o.links.DependencyType);if(a===null||n===null)throw new Error("Invalid rule");let p=this.project.getWorkspaceByCwd(a),h=W.parseIdent(n);r.push({workspace:p,dependencyIdent:h,dependencyRange:u,dependencyType:A})}return _e.sortMap(r,[({dependencyRange:o})=>o!==null?"0":"1",({workspace:o})=>W.stringifyIdent(o.anchoredLocator),({dependencyIdent:o})=>W.stringifyIdent(o)])}async genEnforcedFields(e){let r=[];for await(let o of e.makeQuery("workspace(WorkspaceCwd), gen_enforced_field(WorkspaceCwd, FieldPath, FieldValue).")){let a=V.resolve(this.project.cwd,em(o.links.WorkspaceCwd)),n=em(o.links.FieldPath),u=Xgt(o.links.FieldValue);if(a===null||n===null)throw new Error("Invalid rule");let A=this.project.getWorkspaceByCwd(a);r.push({workspace:A,fieldPath:n,fieldValue:u})}return _e.sortMap(r,[({workspace:o})=>W.stringifyIdent(o.anchoredLocator),({fieldPath:o})=>o])}async*query(e){let r=this.createSession();for await(let o of r.makeQuery(e)){let a={};for(let[n,u]of Object.entries(o.links))n!=="_"&&(a[n]=em(u));yield a}}}});var wme=_(Ik=>{"use strict";Object.defineProperty(Ik,"__esModule",{value:!0});function G2(t){let e=[...t.caches],r=e.shift();return r===void 0?Cme():{get(o,a,n={miss:()=>Promise.resolve()}){return r.get(o,a,n).catch(()=>G2({caches:e}).get(o,a,n))},set(o,a){return r.set(o,a).catch(()=>G2({caches:e}).set(o,a))},delete(o){return r.delete(o).catch(()=>G2({caches:e}).delete(o))},clear(){return r.clear().catch(()=>G2({caches:e}).clear())}}}function Cme(){return{get(t,e,r={miss:()=>Promise.resolve()}){return e().then(a=>Promise.all([a,r.miss(a)])).then(([a])=>a)},set(t,e){return Promise.resolve(e)},delete(t){return Promise.resolve()},clear(){return Promise.resolve()}}}Ik.createFallbackableCache=G2;Ik.createNullCache=Cme});var Bme=_((QWt,Ime)=>{Ime.exports=wme()});var vme=_(TH=>{"use strict";Object.defineProperty(TH,"__esModule",{value:!0});function ddt(t={serializable:!0}){let e={};return{get(r,o,a={miss:()=>Promise.resolve()}){let n=JSON.stringify(r);if(n in e)return Promise.resolve(t.serializable?JSON.parse(e[n]):e[n]);let u=o(),A=a&&a.miss||(()=>Promise.resolve());return u.then(p=>A(p)).then(()=>u)},set(r,o){return e[JSON.stringify(r)]=t.serializable?JSON.stringify(o):o,Promise.resolve(o)},delete(r){return delete e[JSON.stringify(r)],Promise.resolve()},clear(){return e={},Promise.resolve()}}}TH.createInMemoryCache=ddt});var Sme=_((RWt,Dme)=>{Dme.exports=vme()});var bme=_(Zc=>{"use strict";Object.defineProperty(Zc,"__esModule",{value:!0});function mdt(t,e,r){let o={"x-algolia-api-key":r,"x-algolia-application-id":e};return{headers(){return t===NH.WithinHeaders?o:{}},queryParameters(){return t===NH.WithinQueryParameters?o:{}}}}function ydt(t){let e=0,r=()=>(e++,new Promise(o=>{setTimeout(()=>{o(t(r))},Math.min(100*e,1e3))}));return t(r)}function Pme(t,e=(r,o)=>Promise.resolve()){return Object.assign(t,{wait(r){return Pme(t.then(o=>Promise.all([e(o,r),o])).then(o=>o[1]))}})}function Edt(t){let e=t.length-1;for(e;e>0;e--){let r=Math.floor(Math.random()*(e+1)),o=t[e];t[e]=t[r],t[r]=o}return t}function Cdt(t,e){return e&&Object.keys(e).forEach(r=>{t[r]=e[r](t)}),t}function wdt(t,...e){let r=0;return t.replace(/%s/g,()=>encodeURIComponent(e[r++]))}var Idt="4.14.2",Bdt=t=>()=>t.transporter.requester.destroy(),NH={WithinQueryParameters:0,WithinHeaders:1};Zc.AuthMode=NH;Zc.addMethods=Cdt;Zc.createAuth=mdt;Zc.createRetryablePromise=ydt;Zc.createWaitablePromise=Pme;Zc.destroy=Bdt;Zc.encode=wdt;Zc.shuffle=Edt;Zc.version=Idt});var Y2=_((NWt,xme)=>{xme.exports=bme()});var kme=_(LH=>{"use strict";Object.defineProperty(LH,"__esModule",{value:!0});var vdt={Delete:"DELETE",Get:"GET",Post:"POST",Put:"PUT"};LH.MethodEnum=vdt});var W2=_((OWt,Qme)=>{Qme.exports=kme()});var Wme=_(Fi=>{"use strict";Object.defineProperty(Fi,"__esModule",{value:!0});var Rme=W2();function OH(t,e){let r=t||{},o=r.data||{};return Object.keys(r).forEach(a=>{["timeout","headers","queryParameters","data","cacheable"].indexOf(a)===-1&&(o[a]=r[a])}),{data:Object.entries(o).length>0?o:void 0,timeout:r.timeout||e,headers:r.headers||{},queryParameters:r.queryParameters||{},cacheable:r.cacheable}}var K2={Read:1,Write:2,Any:3},xC={Up:1,Down:2,Timeouted:3},Tme=2*60*1e3;function UH(t,e=xC.Up){return{...t,status:e,lastUpdate:Date.now()}}function Nme(t){return t.status===xC.Up||Date.now()-t.lastUpdate>Tme}function Lme(t){return t.status===xC.Timeouted&&Date.now()-t.lastUpdate<=Tme}function _H(t){return typeof t=="string"?{protocol:"https",url:t,accept:K2.Any}:{protocol:t.protocol||"https",url:t.url,accept:t.accept||K2.Any}}function Ddt(t,e){return Promise.all(e.map(r=>t.get(r,()=>Promise.resolve(UH(r))))).then(r=>{let o=r.filter(A=>Nme(A)),a=r.filter(A=>Lme(A)),n=[...o,...a],u=n.length>0?n.map(A=>_H(A)):e;return{getTimeout(A,p){return(a.length===0&&A===0?1:a.length+3+A)*p},statelessHosts:u}})}var Sdt=({isTimedOut:t,status:e})=>!t&&~~e===0,Pdt=t=>{let e=t.status;return t.isTimedOut||Sdt(t)||~~(e/100)!==2&&~~(e/100)!==4},bdt=({status:t})=>~~(t/100)===2,xdt=(t,e)=>Pdt(t)?e.onRetry(t):bdt(t)?e.onSuccess(t):e.onFail(t);function Fme(t,e,r,o){let a=[],n=Hme(r,o),u=qme(t,o),A=r.method,p=r.method!==Rme.MethodEnum.Get?{}:{...r.data,...o.data},h={"x-algolia-agent":t.userAgent.value,...t.queryParameters,...p,...o.queryParameters},E=0,I=(v,x)=>{let C=v.pop();if(C===void 0)throw Yme(MH(a));let R={data:n,headers:u,method:A,url:Ume(C,r.path,h),connectTimeout:x(E,t.timeouts.connect),responseTimeout:x(E,o.timeout)},L=J=>{let te={request:R,response:J,host:C,triesLeft:v.length};return a.push(te),te},U={onSuccess:J=>Ome(J),onRetry(J){let te=L(J);return J.isTimedOut&&E++,Promise.all([t.logger.info("Retryable failure",HH(te)),t.hostsCache.set(C,UH(C,J.isTimedOut?xC.Timeouted:xC.Down))]).then(()=>I(v,x))},onFail(J){throw L(J),Mme(J,MH(a))}};return t.requester.send(R).then(J=>xdt(J,U))};return Ddt(t.hostsCache,e).then(v=>I([...v.statelessHosts].reverse(),v.getTimeout))}function kdt(t){let{hostsCache:e,logger:r,requester:o,requestsCache:a,responsesCache:n,timeouts:u,userAgent:A,hosts:p,queryParameters:h,headers:E}=t,I={hostsCache:e,logger:r,requester:o,requestsCache:a,responsesCache:n,timeouts:u,userAgent:A,headers:E,queryParameters:h,hosts:p.map(v=>_H(v)),read(v,x){let C=OH(x,I.timeouts.read),R=()=>Fme(I,I.hosts.filter(J=>(J.accept&K2.Read)!==0),v,C);if((C.cacheable!==void 0?C.cacheable:v.cacheable)!==!0)return R();let U={request:v,mappedRequestOptions:C,transporter:{queryParameters:I.queryParameters,headers:I.headers}};return I.responsesCache.get(U,()=>I.requestsCache.get(U,()=>I.requestsCache.set(U,R()).then(J=>Promise.all([I.requestsCache.delete(U),J]),J=>Promise.all([I.requestsCache.delete(U),Promise.reject(J)])).then(([J,te])=>te)),{miss:J=>I.responsesCache.set(U,J)})},write(v,x){return Fme(I,I.hosts.filter(C=>(C.accept&K2.Write)!==0),v,OH(x,I.timeouts.write))}};return I}function Qdt(t){let e={value:`Algolia for JavaScript (${t})`,add(r){let o=`; ${r.segment}${r.version!==void 0?` (${r.version})`:""}`;return e.value.indexOf(o)===-1&&(e.value=`${e.value}${o}`),e}};return e}function Ome(t){try{return JSON.parse(t.content)}catch(e){throw Gme(e.message,t)}}function Mme({content:t,status:e},r){let o=t;try{o=JSON.parse(t).message}catch{}return jme(o,e,r)}function Fdt(t,...e){let r=0;return t.replace(/%s/g,()=>encodeURIComponent(e[r++]))}function Ume(t,e,r){let o=_me(r),a=`${t.protocol}://${t.url}/${e.charAt(0)==="/"?e.substr(1):e}`;return o.length&&(a+=`?${o}`),a}function _me(t){let e=r=>Object.prototype.toString.call(r)==="[object Object]"||Object.prototype.toString.call(r)==="[object Array]";return Object.keys(t).map(r=>Fdt("%s=%s",r,e(t[r])?JSON.stringify(t[r]):t[r])).join("&")}function Hme(t,e){if(t.method===Rme.MethodEnum.Get||t.data===void 0&&e.data===void 0)return;let r=Array.isArray(t.data)?t.data:{...t.data,...e.data};return JSON.stringify(r)}function qme(t,e){let r={...t.headers,...e.headers},o={};return Object.keys(r).forEach(a=>{let n=r[a];o[a.toLowerCase()]=n}),o}function MH(t){return t.map(e=>HH(e))}function HH(t){let e=t.request.headers["x-algolia-api-key"]?{"x-algolia-api-key":"*****"}:{};return{...t,request:{...t.request,headers:{...t.request.headers,...e}}}}function jme(t,e,r){return{name:"ApiError",message:t,status:e,transporterStackTrace:r}}function Gme(t,e){return{name:"DeserializationError",message:t,response:e}}function Yme(t){return{name:"RetryError",message:"Unreachable hosts - your application id may be incorrect. If the error persists, contact support@algolia.com.",transporterStackTrace:t}}Fi.CallEnum=K2;Fi.HostStatusEnum=xC;Fi.createApiError=jme;Fi.createDeserializationError=Gme;Fi.createMappedRequestOptions=OH;Fi.createRetryError=Yme;Fi.createStatefulHost=UH;Fi.createStatelessHost=_H;Fi.createTransporter=kdt;Fi.createUserAgent=Qdt;Fi.deserializeFailure=Mme;Fi.deserializeSuccess=Ome;Fi.isStatefulHostTimeouted=Lme;Fi.isStatefulHostUp=Nme;Fi.serializeData=Hme;Fi.serializeHeaders=qme;Fi.serializeQueryParameters=_me;Fi.serializeUrl=Ume;Fi.stackFrameWithoutCredentials=HH;Fi.stackTraceWithoutCredentials=MH});var V2=_((UWt,Kme)=>{Kme.exports=Wme()});var Vme=_(m0=>{"use strict";Object.defineProperty(m0,"__esModule",{value:!0});var kC=Y2(),Rdt=V2(),J2=W2(),Tdt=t=>{let e=t.region||"us",r=kC.createAuth(kC.AuthMode.WithinHeaders,t.appId,t.apiKey),o=Rdt.createTransporter({hosts:[{url:`analytics.${e}.algolia.com`}],...t,headers:{...r.headers(),"content-type":"application/json",...t.headers},queryParameters:{...r.queryParameters(),...t.queryParameters}}),a=t.appId;return kC.addMethods({appId:a,transporter:o},t.methods)},Ndt=t=>(e,r)=>t.transporter.write({method:J2.MethodEnum.Post,path:"2/abtests",data:e},r),Ldt=t=>(e,r)=>t.transporter.write({method:J2.MethodEnum.Delete,path:kC.encode("2/abtests/%s",e)},r),Odt=t=>(e,r)=>t.transporter.read({method:J2.MethodEnum.Get,path:kC.encode("2/abtests/%s",e)},r),Mdt=t=>e=>t.transporter.read({method:J2.MethodEnum.Get,path:"2/abtests"},e),Udt=t=>(e,r)=>t.transporter.write({method:J2.MethodEnum.Post,path:kC.encode("2/abtests/%s/stop",e)},r);m0.addABTest=Ndt;m0.createAnalyticsClient=Tdt;m0.deleteABTest=Ldt;m0.getABTest=Odt;m0.getABTests=Mdt;m0.stopABTest=Udt});var zme=_((HWt,Jme)=>{Jme.exports=Vme()});var Zme=_(z2=>{"use strict";Object.defineProperty(z2,"__esModule",{value:!0});var qH=Y2(),_dt=V2(),Xme=W2(),Hdt=t=>{let e=t.region||"us",r=qH.createAuth(qH.AuthMode.WithinHeaders,t.appId,t.apiKey),o=_dt.createTransporter({hosts:[{url:`personalization.${e}.algolia.com`}],...t,headers:{...r.headers(),"content-type":"application/json",...t.headers},queryParameters:{...r.queryParameters(),...t.queryParameters}});return qH.addMethods({appId:t.appId,transporter:o},t.methods)},qdt=t=>e=>t.transporter.read({method:Xme.MethodEnum.Get,path:"1/strategies/personalization"},e),jdt=t=>(e,r)=>t.transporter.write({method:Xme.MethodEnum.Post,path:"1/strategies/personalization",data:e},r);z2.createPersonalizationClient=Hdt;z2.getPersonalizationStrategy=qdt;z2.setPersonalizationStrategy=jdt});var eye=_((jWt,$me)=>{$me.exports=Zme()});var hye=_(Ft=>{"use strict";Object.defineProperty(Ft,"__esModule",{value:!0});var Gt=Y2(),Na=V2(),Ir=W2(),Gdt=ve("crypto");function Bk(t){let e=r=>t.request(r).then(o=>{if(t.batch!==void 0&&t.batch(o.hits),!t.shouldStop(o))return o.cursor?e({cursor:o.cursor}):e({page:(r.page||0)+1})});return e({})}var Ydt=t=>{let e=t.appId,r=Gt.createAuth(t.authMode!==void 0?t.authMode:Gt.AuthMode.WithinHeaders,e,t.apiKey),o=Na.createTransporter({hosts:[{url:`${e}-dsn.algolia.net`,accept:Na.CallEnum.Read},{url:`${e}.algolia.net`,accept:Na.CallEnum.Write}].concat(Gt.shuffle([{url:`${e}-1.algolianet.com`},{url:`${e}-2.algolianet.com`},{url:`${e}-3.algolianet.com`}])),...t,headers:{...r.headers(),"content-type":"application/x-www-form-urlencoded",...t.headers},queryParameters:{...r.queryParameters(),...t.queryParameters}}),a={transporter:o,appId:e,addAlgoliaAgent(n,u){o.userAgent.add({segment:n,version:u})},clearCache(){return Promise.all([o.requestsCache.clear(),o.responsesCache.clear()]).then(()=>{})}};return Gt.addMethods(a,t.methods)};function tye(){return{name:"MissingObjectIDError",message:"All objects must have an unique objectID (like a primary key) to be valid. Algolia is also able to generate objectIDs automatically but *it's not recommended*. To do it, use the `{'autoGenerateObjectIDIfNotExist': true}` option."}}function rye(){return{name:"ObjectNotFoundError",message:"Object not found."}}function nye(){return{name:"ValidUntilNotFoundError",message:"ValidUntil not found in given secured api key."}}var Wdt=t=>(e,r)=>{let{queryParameters:o,...a}=r||{},n={acl:e,...o!==void 0?{queryParameters:o}:{}},u=(A,p)=>Gt.createRetryablePromise(h=>X2(t)(A.key,p).catch(E=>{if(E.status!==404)throw E;return h()}));return Gt.createWaitablePromise(t.transporter.write({method:Ir.MethodEnum.Post,path:"1/keys",data:n},a),u)},Kdt=t=>(e,r,o)=>{let a=Na.createMappedRequestOptions(o);return a.queryParameters["X-Algolia-User-ID"]=e,t.transporter.write({method:Ir.MethodEnum.Post,path:"1/clusters/mapping",data:{cluster:r}},a)},Vdt=t=>(e,r,o)=>t.transporter.write({method:Ir.MethodEnum.Post,path:"1/clusters/mapping/batch",data:{users:e,cluster:r}},o),Jdt=t=>(e,r)=>Gt.createWaitablePromise(t.transporter.write({method:Ir.MethodEnum.Post,path:Gt.encode("/1/dictionaries/%s/batch",e),data:{clearExistingDictionaryEntries:!0,requests:{action:"addEntry",body:[]}}},r),(o,a)=>QC(t)(o.taskID,a)),vk=t=>(e,r,o)=>{let a=(n,u)=>Z2(t)(e,{methods:{waitTask:Zi}}).waitTask(n.taskID,u);return Gt.createWaitablePromise(t.transporter.write({method:Ir.MethodEnum.Post,path:Gt.encode("1/indexes/%s/operation",e),data:{operation:"copy",destination:r}},o),a)},zdt=t=>(e,r,o)=>vk(t)(e,r,{...o,scope:[Sk.Rules]}),Xdt=t=>(e,r,o)=>vk(t)(e,r,{...o,scope:[Sk.Settings]}),Zdt=t=>(e,r,o)=>vk(t)(e,r,{...o,scope:[Sk.Synonyms]}),$dt=t=>(e,r)=>e.method===Ir.MethodEnum.Get?t.transporter.read(e,r):t.transporter.write(e,r),emt=t=>(e,r)=>{let o=(a,n)=>Gt.createRetryablePromise(u=>X2(t)(e,n).then(u).catch(A=>{if(A.status!==404)throw A}));return Gt.createWaitablePromise(t.transporter.write({method:Ir.MethodEnum.Delete,path:Gt.encode("1/keys/%s",e)},r),o)},tmt=t=>(e,r,o)=>{let a=r.map(n=>({action:"deleteEntry",body:{objectID:n}}));return Gt.createWaitablePromise(t.transporter.write({method:Ir.MethodEnum.Post,path:Gt.encode("/1/dictionaries/%s/batch",e),data:{clearExistingDictionaryEntries:!1,requests:a}},o),(n,u)=>QC(t)(n.taskID,u))},rmt=()=>(t,e)=>{let r=Na.serializeQueryParameters(e),o=Gdt.createHmac("sha256",t).update(r).digest("hex");return Buffer.from(o+r).toString("base64")},X2=t=>(e,r)=>t.transporter.read({method:Ir.MethodEnum.Get,path:Gt.encode("1/keys/%s",e)},r),iye=t=>(e,r)=>t.transporter.read({method:Ir.MethodEnum.Get,path:Gt.encode("1/task/%s",e.toString())},r),nmt=t=>e=>t.transporter.read({method:Ir.MethodEnum.Get,path:"/1/dictionaries/*/settings"},e),imt=t=>e=>t.transporter.read({method:Ir.MethodEnum.Get,path:"1/logs"},e),smt=()=>t=>{let e=Buffer.from(t,"base64").toString("ascii"),r=/validUntil=(\d+)/,o=e.match(r);if(o===null)throw nye();return parseInt(o[1],10)-Math.round(new Date().getTime()/1e3)},omt=t=>e=>t.transporter.read({method:Ir.MethodEnum.Get,path:"1/clusters/mapping/top"},e),amt=t=>(e,r)=>t.transporter.read({method:Ir.MethodEnum.Get,path:Gt.encode("1/clusters/mapping/%s",e)},r),lmt=t=>e=>{let{retrieveMappings:r,...o}=e||{};return r===!0&&(o.getClusters=!0),t.transporter.read({method:Ir.MethodEnum.Get,path:"1/clusters/mapping/pending"},o)},Z2=t=>(e,r={})=>{let o={transporter:t.transporter,appId:t.appId,indexName:e};return Gt.addMethods(o,r.methods)},cmt=t=>e=>t.transporter.read({method:Ir.MethodEnum.Get,path:"1/keys"},e),umt=t=>e=>t.transporter.read({method:Ir.MethodEnum.Get,path:"1/clusters"},e),Amt=t=>e=>t.transporter.read({method:Ir.MethodEnum.Get,path:"1/indexes"},e),fmt=t=>e=>t.transporter.read({method:Ir.MethodEnum.Get,path:"1/clusters/mapping"},e),pmt=t=>(e,r,o)=>{let a=(n,u)=>Z2(t)(e,{methods:{waitTask:Zi}}).waitTask(n.taskID,u);return Gt.createWaitablePromise(t.transporter.write({method:Ir.MethodEnum.Post,path:Gt.encode("1/indexes/%s/operation",e),data:{operation:"move",destination:r}},o),a)},hmt=t=>(e,r)=>{let o=(a,n)=>Promise.all(Object.keys(a.taskID).map(u=>Z2(t)(u,{methods:{waitTask:Zi}}).waitTask(a.taskID[u],n)));return Gt.createWaitablePromise(t.transporter.write({method:Ir.MethodEnum.Post,path:"1/indexes/*/batch",data:{requests:e}},r),o)},gmt=t=>(e,r)=>t.transporter.read({method:Ir.MethodEnum.Post,path:"1/indexes/*/objects",data:{requests:e}},r),dmt=t=>(e,r)=>{let o=e.map(a=>({...a,params:Na.serializeQueryParameters(a.params||{})}));return t.transporter.read({method:Ir.MethodEnum.Post,path:"1/indexes/*/queries",data:{requests:o},cacheable:!0},r)},mmt=t=>(e,r)=>Promise.all(e.map(o=>{let{facetName:a,facetQuery:n,...u}=o.params;return Z2(t)(o.indexName,{methods:{searchForFacetValues:Aye}}).searchForFacetValues(a,n,{...r,...u})})),ymt=t=>(e,r)=>{let o=Na.createMappedRequestOptions(r);return o.queryParameters["X-Algolia-User-ID"]=e,t.transporter.write({method:Ir.MethodEnum.Delete,path:"1/clusters/mapping"},o)},Emt=t=>(e,r,o)=>{let a=r.map(n=>({action:"addEntry",body:n}));return Gt.createWaitablePromise(t.transporter.write({method:Ir.MethodEnum.Post,path:Gt.encode("/1/dictionaries/%s/batch",e),data:{clearExistingDictionaryEntries:!0,requests:a}},o),(n,u)=>QC(t)(n.taskID,u))},Cmt=t=>(e,r)=>{let o=(a,n)=>Gt.createRetryablePromise(u=>X2(t)(e,n).catch(A=>{if(A.status!==404)throw A;return u()}));return Gt.createWaitablePromise(t.transporter.write({method:Ir.MethodEnum.Post,path:Gt.encode("1/keys/%s/restore",e)},r),o)},wmt=t=>(e,r,o)=>{let a=r.map(n=>({action:"addEntry",body:n}));return Gt.createWaitablePromise(t.transporter.write({method:Ir.MethodEnum.Post,path:Gt.encode("/1/dictionaries/%s/batch",e),data:{clearExistingDictionaryEntries:!1,requests:a}},o),(n,u)=>QC(t)(n.taskID,u))},Imt=t=>(e,r,o)=>t.transporter.read({method:Ir.MethodEnum.Post,path:Gt.encode("/1/dictionaries/%s/search",e),data:{query:r},cacheable:!0},o),Bmt=t=>(e,r)=>t.transporter.read({method:Ir.MethodEnum.Post,path:"1/clusters/mapping/search",data:{query:e}},r),vmt=t=>(e,r)=>Gt.createWaitablePromise(t.transporter.write({method:Ir.MethodEnum.Put,path:"/1/dictionaries/*/settings",data:e},r),(o,a)=>QC(t)(o.taskID,a)),Dmt=t=>(e,r)=>{let o=Object.assign({},r),{queryParameters:a,...n}=r||{},u=a?{queryParameters:a}:{},A=["acl","indexes","referers","restrictSources","queryParameters","description","maxQueriesPerIPPerHour","maxHitsPerQuery"],p=E=>Object.keys(o).filter(I=>A.indexOf(I)!==-1).every(I=>E[I]===o[I]),h=(E,I)=>Gt.createRetryablePromise(v=>X2(t)(e,I).then(x=>p(x)?Promise.resolve():v()));return Gt.createWaitablePromise(t.transporter.write({method:Ir.MethodEnum.Put,path:Gt.encode("1/keys/%s",e),data:u},n),h)},QC=t=>(e,r)=>Gt.createRetryablePromise(o=>iye(t)(e,r).then(a=>a.status!=="published"?o():void 0)),sye=t=>(e,r)=>{let o=(a,n)=>Zi(t)(a.taskID,n);return Gt.createWaitablePromise(t.transporter.write({method:Ir.MethodEnum.Post,path:Gt.encode("1/indexes/%s/batch",t.indexName),data:{requests:e}},r),o)},Smt=t=>e=>Bk({shouldStop:r=>r.cursor===void 0,...e,request:r=>t.transporter.read({method:Ir.MethodEnum.Post,path:Gt.encode("1/indexes/%s/browse",t.indexName),data:r},e)}),Pmt=t=>e=>{let r={hitsPerPage:1e3,...e};return Bk({shouldStop:o=>o.hits.length({...a,hits:a.hits.map(n=>(delete n._highlightResult,n))}))}})},bmt=t=>e=>{let r={hitsPerPage:1e3,...e};return Bk({shouldStop:o=>o.hits.length({...a,hits:a.hits.map(n=>(delete n._highlightResult,n))}))}})},Dk=t=>(e,r,o)=>{let{batchSize:a,...n}=o||{},u={taskIDs:[],objectIDs:[]},A=(p=0)=>{let h=[],E;for(E=p;E({action:r,body:I})),n).then(I=>(u.objectIDs=u.objectIDs.concat(I.objectIDs),u.taskIDs.push(I.taskID),E++,A(E)))};return Gt.createWaitablePromise(A(),(p,h)=>Promise.all(p.taskIDs.map(E=>Zi(t)(E,h))))},xmt=t=>e=>Gt.createWaitablePromise(t.transporter.write({method:Ir.MethodEnum.Post,path:Gt.encode("1/indexes/%s/clear",t.indexName)},e),(r,o)=>Zi(t)(r.taskID,o)),kmt=t=>e=>{let{forwardToReplicas:r,...o}=e||{},a=Na.createMappedRequestOptions(o);return r&&(a.queryParameters.forwardToReplicas=1),Gt.createWaitablePromise(t.transporter.write({method:Ir.MethodEnum.Post,path:Gt.encode("1/indexes/%s/rules/clear",t.indexName)},a),(n,u)=>Zi(t)(n.taskID,u))},Qmt=t=>e=>{let{forwardToReplicas:r,...o}=e||{},a=Na.createMappedRequestOptions(o);return r&&(a.queryParameters.forwardToReplicas=1),Gt.createWaitablePromise(t.transporter.write({method:Ir.MethodEnum.Post,path:Gt.encode("1/indexes/%s/synonyms/clear",t.indexName)},a),(n,u)=>Zi(t)(n.taskID,u))},Fmt=t=>(e,r)=>Gt.createWaitablePromise(t.transporter.write({method:Ir.MethodEnum.Post,path:Gt.encode("1/indexes/%s/deleteByQuery",t.indexName),data:e},r),(o,a)=>Zi(t)(o.taskID,a)),Rmt=t=>e=>Gt.createWaitablePromise(t.transporter.write({method:Ir.MethodEnum.Delete,path:Gt.encode("1/indexes/%s",t.indexName)},e),(r,o)=>Zi(t)(r.taskID,o)),Tmt=t=>(e,r)=>Gt.createWaitablePromise(oye(t)([e],r).then(o=>({taskID:o.taskIDs[0]})),(o,a)=>Zi(t)(o.taskID,a)),oye=t=>(e,r)=>{let o=e.map(a=>({objectID:a}));return Dk(t)(o,nm.DeleteObject,r)},Nmt=t=>(e,r)=>{let{forwardToReplicas:o,...a}=r||{},n=Na.createMappedRequestOptions(a);return o&&(n.queryParameters.forwardToReplicas=1),Gt.createWaitablePromise(t.transporter.write({method:Ir.MethodEnum.Delete,path:Gt.encode("1/indexes/%s/rules/%s",t.indexName,e)},n),(u,A)=>Zi(t)(u.taskID,A))},Lmt=t=>(e,r)=>{let{forwardToReplicas:o,...a}=r||{},n=Na.createMappedRequestOptions(a);return o&&(n.queryParameters.forwardToReplicas=1),Gt.createWaitablePromise(t.transporter.write({method:Ir.MethodEnum.Delete,path:Gt.encode("1/indexes/%s/synonyms/%s",t.indexName,e)},n),(u,A)=>Zi(t)(u.taskID,A))},Omt=t=>e=>aye(t)(e).then(()=>!0).catch(r=>{if(r.status!==404)throw r;return!1}),Mmt=t=>(e,r,o)=>t.transporter.read({method:Ir.MethodEnum.Post,path:Gt.encode("1/answers/%s/prediction",t.indexName),data:{query:e,queryLanguages:r},cacheable:!0},o),Umt=t=>(e,r)=>{let{query:o,paginate:a,...n}=r||{},u=0,A=()=>uye(t)(o||"",{...n,page:u}).then(p=>{for(let[h,E]of Object.entries(p.hits))if(e(E))return{object:E,position:parseInt(h,10),page:u};if(u++,a===!1||u>=p.nbPages)throw rye();return A()});return A()},_mt=t=>(e,r)=>t.transporter.read({method:Ir.MethodEnum.Get,path:Gt.encode("1/indexes/%s/%s",t.indexName,e)},r),Hmt=()=>(t,e)=>{for(let[r,o]of Object.entries(t.hits))if(o.objectID===e)return parseInt(r,10);return-1},qmt=t=>(e,r)=>{let{attributesToRetrieve:o,...a}=r||{},n=e.map(u=>({indexName:t.indexName,objectID:u,...o?{attributesToRetrieve:o}:{}}));return t.transporter.read({method:Ir.MethodEnum.Post,path:"1/indexes/*/objects",data:{requests:n}},a)},jmt=t=>(e,r)=>t.transporter.read({method:Ir.MethodEnum.Get,path:Gt.encode("1/indexes/%s/rules/%s",t.indexName,e)},r),aye=t=>e=>t.transporter.read({method:Ir.MethodEnum.Get,path:Gt.encode("1/indexes/%s/settings",t.indexName),data:{getVersion:2}},e),Gmt=t=>(e,r)=>t.transporter.read({method:Ir.MethodEnum.Get,path:Gt.encode("1/indexes/%s/synonyms/%s",t.indexName,e)},r),lye=t=>(e,r)=>t.transporter.read({method:Ir.MethodEnum.Get,path:Gt.encode("1/indexes/%s/task/%s",t.indexName,e.toString())},r),Ymt=t=>(e,r)=>Gt.createWaitablePromise(cye(t)([e],r).then(o=>({objectID:o.objectIDs[0],taskID:o.taskIDs[0]})),(o,a)=>Zi(t)(o.taskID,a)),cye=t=>(e,r)=>{let{createIfNotExists:o,...a}=r||{},n=o?nm.PartialUpdateObject:nm.PartialUpdateObjectNoCreate;return Dk(t)(e,n,a)},Wmt=t=>(e,r)=>{let{safe:o,autoGenerateObjectIDIfNotExist:a,batchSize:n,...u}=r||{},A=(C,R,L,U)=>Gt.createWaitablePromise(t.transporter.write({method:Ir.MethodEnum.Post,path:Gt.encode("1/indexes/%s/operation",C),data:{operation:L,destination:R}},U),(J,te)=>Zi(t)(J.taskID,te)),p=Math.random().toString(36).substring(7),h=`${t.indexName}_tmp_${p}`,E=jH({appId:t.appId,transporter:t.transporter,indexName:h}),I=[],v=A(t.indexName,h,"copy",{...u,scope:["settings","synonyms","rules"]});I.push(v);let x=(o?v.wait(u):v).then(()=>{let C=E(e,{...u,autoGenerateObjectIDIfNotExist:a,batchSize:n});return I.push(C),o?C.wait(u):C}).then(()=>{let C=A(h,t.indexName,"move",u);return I.push(C),o?C.wait(u):C}).then(()=>Promise.all(I)).then(([C,R,L])=>({objectIDs:R.objectIDs,taskIDs:[C.taskID,...R.taskIDs,L.taskID]}));return Gt.createWaitablePromise(x,(C,R)=>Promise.all(I.map(L=>L.wait(R))))},Kmt=t=>(e,r)=>GH(t)(e,{...r,clearExistingRules:!0}),Vmt=t=>(e,r)=>YH(t)(e,{...r,clearExistingSynonyms:!0}),Jmt=t=>(e,r)=>Gt.createWaitablePromise(jH(t)([e],r).then(o=>({objectID:o.objectIDs[0],taskID:o.taskIDs[0]})),(o,a)=>Zi(t)(o.taskID,a)),jH=t=>(e,r)=>{let{autoGenerateObjectIDIfNotExist:o,...a}=r||{},n=o?nm.AddObject:nm.UpdateObject;if(n===nm.UpdateObject){for(let u of e)if(u.objectID===void 0)return Gt.createWaitablePromise(Promise.reject(tye()))}return Dk(t)(e,n,a)},zmt=t=>(e,r)=>GH(t)([e],r),GH=t=>(e,r)=>{let{forwardToReplicas:o,clearExistingRules:a,...n}=r||{},u=Na.createMappedRequestOptions(n);return o&&(u.queryParameters.forwardToReplicas=1),a&&(u.queryParameters.clearExistingRules=1),Gt.createWaitablePromise(t.transporter.write({method:Ir.MethodEnum.Post,path:Gt.encode("1/indexes/%s/rules/batch",t.indexName),data:e},u),(A,p)=>Zi(t)(A.taskID,p))},Xmt=t=>(e,r)=>YH(t)([e],r),YH=t=>(e,r)=>{let{forwardToReplicas:o,clearExistingSynonyms:a,replaceExistingSynonyms:n,...u}=r||{},A=Na.createMappedRequestOptions(u);return o&&(A.queryParameters.forwardToReplicas=1),(n||a)&&(A.queryParameters.replaceExistingSynonyms=1),Gt.createWaitablePromise(t.transporter.write({method:Ir.MethodEnum.Post,path:Gt.encode("1/indexes/%s/synonyms/batch",t.indexName),data:e},A),(p,h)=>Zi(t)(p.taskID,h))},uye=t=>(e,r)=>t.transporter.read({method:Ir.MethodEnum.Post,path:Gt.encode("1/indexes/%s/query",t.indexName),data:{query:e},cacheable:!0},r),Aye=t=>(e,r,o)=>t.transporter.read({method:Ir.MethodEnum.Post,path:Gt.encode("1/indexes/%s/facets/%s/query",t.indexName,e),data:{facetQuery:r},cacheable:!0},o),fye=t=>(e,r)=>t.transporter.read({method:Ir.MethodEnum.Post,path:Gt.encode("1/indexes/%s/rules/search",t.indexName),data:{query:e}},r),pye=t=>(e,r)=>t.transporter.read({method:Ir.MethodEnum.Post,path:Gt.encode("1/indexes/%s/synonyms/search",t.indexName),data:{query:e}},r),Zmt=t=>(e,r)=>{let{forwardToReplicas:o,...a}=r||{},n=Na.createMappedRequestOptions(a);return o&&(n.queryParameters.forwardToReplicas=1),Gt.createWaitablePromise(t.transporter.write({method:Ir.MethodEnum.Put,path:Gt.encode("1/indexes/%s/settings",t.indexName),data:e},n),(u,A)=>Zi(t)(u.taskID,A))},Zi=t=>(e,r)=>Gt.createRetryablePromise(o=>lye(t)(e,r).then(a=>a.status!=="published"?o():void 0)),$mt={AddObject:"addObject",Analytics:"analytics",Browser:"browse",DeleteIndex:"deleteIndex",DeleteObject:"deleteObject",EditSettings:"editSettings",ListIndexes:"listIndexes",Logs:"logs",Personalization:"personalization",Recommendation:"recommendation",Search:"search",SeeUnretrievableAttributes:"seeUnretrievableAttributes",Settings:"settings",Usage:"usage"},nm={AddObject:"addObject",UpdateObject:"updateObject",PartialUpdateObject:"partialUpdateObject",PartialUpdateObjectNoCreate:"partialUpdateObjectNoCreate",DeleteObject:"deleteObject",DeleteIndex:"delete",ClearIndex:"clear"},Sk={Settings:"settings",Synonyms:"synonyms",Rules:"rules"},eyt={None:"none",StopIfEnoughMatches:"stopIfEnoughMatches"},tyt={Synonym:"synonym",OneWaySynonym:"oneWaySynonym",AltCorrection1:"altCorrection1",AltCorrection2:"altCorrection2",Placeholder:"placeholder"};Ft.ApiKeyACLEnum=$mt;Ft.BatchActionEnum=nm;Ft.ScopeEnum=Sk;Ft.StrategyEnum=eyt;Ft.SynonymEnum=tyt;Ft.addApiKey=Wdt;Ft.assignUserID=Kdt;Ft.assignUserIDs=Vdt;Ft.batch=sye;Ft.browseObjects=Smt;Ft.browseRules=Pmt;Ft.browseSynonyms=bmt;Ft.chunkedBatch=Dk;Ft.clearDictionaryEntries=Jdt;Ft.clearObjects=xmt;Ft.clearRules=kmt;Ft.clearSynonyms=Qmt;Ft.copyIndex=vk;Ft.copyRules=zdt;Ft.copySettings=Xdt;Ft.copySynonyms=Zdt;Ft.createBrowsablePromise=Bk;Ft.createMissingObjectIDError=tye;Ft.createObjectNotFoundError=rye;Ft.createSearchClient=Ydt;Ft.createValidUntilNotFoundError=nye;Ft.customRequest=$dt;Ft.deleteApiKey=emt;Ft.deleteBy=Fmt;Ft.deleteDictionaryEntries=tmt;Ft.deleteIndex=Rmt;Ft.deleteObject=Tmt;Ft.deleteObjects=oye;Ft.deleteRule=Nmt;Ft.deleteSynonym=Lmt;Ft.exists=Omt;Ft.findAnswers=Mmt;Ft.findObject=Umt;Ft.generateSecuredApiKey=rmt;Ft.getApiKey=X2;Ft.getAppTask=iye;Ft.getDictionarySettings=nmt;Ft.getLogs=imt;Ft.getObject=_mt;Ft.getObjectPosition=Hmt;Ft.getObjects=qmt;Ft.getRule=jmt;Ft.getSecuredApiKeyRemainingValidity=smt;Ft.getSettings=aye;Ft.getSynonym=Gmt;Ft.getTask=lye;Ft.getTopUserIDs=omt;Ft.getUserID=amt;Ft.hasPendingMappings=lmt;Ft.initIndex=Z2;Ft.listApiKeys=cmt;Ft.listClusters=umt;Ft.listIndices=Amt;Ft.listUserIDs=fmt;Ft.moveIndex=pmt;Ft.multipleBatch=hmt;Ft.multipleGetObjects=gmt;Ft.multipleQueries=dmt;Ft.multipleSearchForFacetValues=mmt;Ft.partialUpdateObject=Ymt;Ft.partialUpdateObjects=cye;Ft.removeUserID=ymt;Ft.replaceAllObjects=Wmt;Ft.replaceAllRules=Kmt;Ft.replaceAllSynonyms=Vmt;Ft.replaceDictionaryEntries=Emt;Ft.restoreApiKey=Cmt;Ft.saveDictionaryEntries=wmt;Ft.saveObject=Jmt;Ft.saveObjects=jH;Ft.saveRule=zmt;Ft.saveRules=GH;Ft.saveSynonym=Xmt;Ft.saveSynonyms=YH;Ft.search=uye;Ft.searchDictionaryEntries=Imt;Ft.searchForFacetValues=Aye;Ft.searchRules=fye;Ft.searchSynonyms=pye;Ft.searchUserIDs=Bmt;Ft.setDictionarySettings=vmt;Ft.setSettings=Zmt;Ft.updateApiKey=Dmt;Ft.waitAppTask=QC;Ft.waitTask=Zi});var dye=_((YWt,gye)=>{gye.exports=hye()});var mye=_(Pk=>{"use strict";Object.defineProperty(Pk,"__esModule",{value:!0});function ryt(){return{debug(t,e){return Promise.resolve()},info(t,e){return Promise.resolve()},error(t,e){return Promise.resolve()}}}var nyt={Debug:1,Info:2,Error:3};Pk.LogLevelEnum=nyt;Pk.createNullLogger=ryt});var Eye=_((KWt,yye)=>{yye.exports=mye()});var Bye=_(WH=>{"use strict";Object.defineProperty(WH,"__esModule",{value:!0});var Cye=ve("http"),wye=ve("https"),iyt=ve("url"),Iye={keepAlive:!0},syt=new Cye.Agent(Iye),oyt=new wye.Agent(Iye);function ayt({agent:t,httpAgent:e,httpsAgent:r,requesterOptions:o={}}={}){let a=e||t||syt,n=r||t||oyt;return{send(u){return new Promise(A=>{let p=iyt.parse(u.url),h=p.query===null?p.pathname:`${p.pathname}?${p.query}`,E={...o,agent:p.protocol==="https:"?n:a,hostname:p.hostname,path:h,method:u.method,headers:{...o&&o.headers?o.headers:{},...u.headers},...p.port!==void 0?{port:p.port||""}:{}},I=(p.protocol==="https:"?wye:Cye).request(E,R=>{let L=[];R.on("data",U=>{L=L.concat(U)}),R.on("end",()=>{clearTimeout(x),clearTimeout(C),A({status:R.statusCode||0,content:Buffer.concat(L).toString(),isTimedOut:!1})})}),v=(R,L)=>setTimeout(()=>{I.abort(),A({status:0,content:L,isTimedOut:!0})},R*1e3),x=v(u.connectTimeout,"Connection timeout"),C;I.on("error",R=>{clearTimeout(x),clearTimeout(C),A({status:0,content:R.message,isTimedOut:!1})}),I.once("response",()=>{clearTimeout(x),C=v(u.responseTimeout,"Socket timeout")}),u.data!==void 0&&I.write(u.data),I.end()})},destroy(){return a.destroy(),n.destroy(),Promise.resolve()}}}WH.createNodeHttpRequester=ayt});var Dye=_((JWt,vye)=>{vye.exports=Bye()});var xye=_((zWt,bye)=>{"use strict";var Sye=Bme(),lyt=Sme(),FC=zme(),VH=Y2(),KH=eye(),Ut=dye(),cyt=Eye(),uyt=Dye(),Ayt=V2();function Pye(t,e,r){let o={appId:t,apiKey:e,timeouts:{connect:2,read:5,write:30},requester:uyt.createNodeHttpRequester(),logger:cyt.createNullLogger(),responsesCache:Sye.createNullCache(),requestsCache:Sye.createNullCache(),hostsCache:lyt.createInMemoryCache(),userAgent:Ayt.createUserAgent(VH.version).add({segment:"Node.js",version:process.versions.node})},a={...o,...r},n=()=>u=>KH.createPersonalizationClient({...o,...u,methods:{getPersonalizationStrategy:KH.getPersonalizationStrategy,setPersonalizationStrategy:KH.setPersonalizationStrategy}});return Ut.createSearchClient({...a,methods:{search:Ut.multipleQueries,searchForFacetValues:Ut.multipleSearchForFacetValues,multipleBatch:Ut.multipleBatch,multipleGetObjects:Ut.multipleGetObjects,multipleQueries:Ut.multipleQueries,copyIndex:Ut.copyIndex,copySettings:Ut.copySettings,copyRules:Ut.copyRules,copySynonyms:Ut.copySynonyms,moveIndex:Ut.moveIndex,listIndices:Ut.listIndices,getLogs:Ut.getLogs,listClusters:Ut.listClusters,multipleSearchForFacetValues:Ut.multipleSearchForFacetValues,getApiKey:Ut.getApiKey,addApiKey:Ut.addApiKey,listApiKeys:Ut.listApiKeys,updateApiKey:Ut.updateApiKey,deleteApiKey:Ut.deleteApiKey,restoreApiKey:Ut.restoreApiKey,assignUserID:Ut.assignUserID,assignUserIDs:Ut.assignUserIDs,getUserID:Ut.getUserID,searchUserIDs:Ut.searchUserIDs,listUserIDs:Ut.listUserIDs,getTopUserIDs:Ut.getTopUserIDs,removeUserID:Ut.removeUserID,hasPendingMappings:Ut.hasPendingMappings,generateSecuredApiKey:Ut.generateSecuredApiKey,getSecuredApiKeyRemainingValidity:Ut.getSecuredApiKeyRemainingValidity,destroy:VH.destroy,clearDictionaryEntries:Ut.clearDictionaryEntries,deleteDictionaryEntries:Ut.deleteDictionaryEntries,getDictionarySettings:Ut.getDictionarySettings,getAppTask:Ut.getAppTask,replaceDictionaryEntries:Ut.replaceDictionaryEntries,saveDictionaryEntries:Ut.saveDictionaryEntries,searchDictionaryEntries:Ut.searchDictionaryEntries,setDictionarySettings:Ut.setDictionarySettings,waitAppTask:Ut.waitAppTask,customRequest:Ut.customRequest,initIndex:u=>A=>Ut.initIndex(u)(A,{methods:{batch:Ut.batch,delete:Ut.deleteIndex,findAnswers:Ut.findAnswers,getObject:Ut.getObject,getObjects:Ut.getObjects,saveObject:Ut.saveObject,saveObjects:Ut.saveObjects,search:Ut.search,searchForFacetValues:Ut.searchForFacetValues,waitTask:Ut.waitTask,setSettings:Ut.setSettings,getSettings:Ut.getSettings,partialUpdateObject:Ut.partialUpdateObject,partialUpdateObjects:Ut.partialUpdateObjects,deleteObject:Ut.deleteObject,deleteObjects:Ut.deleteObjects,deleteBy:Ut.deleteBy,clearObjects:Ut.clearObjects,browseObjects:Ut.browseObjects,getObjectPosition:Ut.getObjectPosition,findObject:Ut.findObject,exists:Ut.exists,saveSynonym:Ut.saveSynonym,saveSynonyms:Ut.saveSynonyms,getSynonym:Ut.getSynonym,searchSynonyms:Ut.searchSynonyms,browseSynonyms:Ut.browseSynonyms,deleteSynonym:Ut.deleteSynonym,clearSynonyms:Ut.clearSynonyms,replaceAllObjects:Ut.replaceAllObjects,replaceAllSynonyms:Ut.replaceAllSynonyms,searchRules:Ut.searchRules,getRule:Ut.getRule,deleteRule:Ut.deleteRule,saveRule:Ut.saveRule,saveRules:Ut.saveRules,replaceAllRules:Ut.replaceAllRules,browseRules:Ut.browseRules,clearRules:Ut.clearRules}}),initAnalytics:()=>u=>FC.createAnalyticsClient({...o,...u,methods:{addABTest:FC.addABTest,getABTest:FC.getABTest,getABTests:FC.getABTests,stopABTest:FC.stopABTest,deleteABTest:FC.deleteABTest}}),initPersonalization:n,initRecommendation:()=>u=>(a.logger.info("The `initRecommendation` method is deprecated. Use `initPersonalization` instead."),n()(u))}})}Pye.version=VH.version;bye.exports=Pye});var zH=_((XWt,JH)=>{var kye=xye();JH.exports=kye;JH.exports.default=kye});var $H=_(($Wt,Rye)=>{"use strict";var Fye=Object.getOwnPropertySymbols,pyt=Object.prototype.hasOwnProperty,hyt=Object.prototype.propertyIsEnumerable;function gyt(t){if(t==null)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(t)}function dyt(){try{if(!Object.assign)return!1;var t=new String("abc");if(t[5]="de",Object.getOwnPropertyNames(t)[0]==="5")return!1;for(var e={},r=0;r<10;r++)e["_"+String.fromCharCode(r)]=r;var o=Object.getOwnPropertyNames(e).map(function(n){return e[n]});if(o.join("")!=="0123456789")return!1;var a={};return"abcdefghijklmnopqrst".split("").forEach(function(n){a[n]=n}),Object.keys(Object.assign({},a)).join("")==="abcdefghijklmnopqrst"}catch{return!1}}Rye.exports=dyt()?Object.assign:function(t,e){for(var r,o=gyt(t),a,n=1;n{"use strict";var i6=$H(),$c=typeof Symbol=="function"&&Symbol.for,$2=$c?Symbol.for("react.element"):60103,myt=$c?Symbol.for("react.portal"):60106,yyt=$c?Symbol.for("react.fragment"):60107,Eyt=$c?Symbol.for("react.strict_mode"):60108,Cyt=$c?Symbol.for("react.profiler"):60114,wyt=$c?Symbol.for("react.provider"):60109,Iyt=$c?Symbol.for("react.context"):60110,Byt=$c?Symbol.for("react.forward_ref"):60112,vyt=$c?Symbol.for("react.suspense"):60113,Dyt=$c?Symbol.for("react.memo"):60115,Syt=$c?Symbol.for("react.lazy"):60116,Tye=typeof Symbol=="function"&&Symbol.iterator;function eB(t){for(var e="https://reactjs.org/docs/error-decoder.html?invariant="+t,r=1;rbk.length&&bk.push(t)}function t6(t,e,r,o){var a=typeof t;(a==="undefined"||a==="boolean")&&(t=null);var n=!1;if(t===null)n=!0;else switch(a){case"string":case"number":n=!0;break;case"object":switch(t.$$typeof){case $2:case myt:n=!0}}if(n)return r(o,t,e===""?"."+e6(t,0):e),1;if(n=0,e=e===""?".":e+":",Array.isArray(t))for(var u=0;u{"use strict";Wye.exports=Yye()});var u6=_((rKt,c6)=>{"use strict";var An=c6.exports;c6.exports.default=An;var Ln="\x1B[",tB="\x1B]",TC="\x07",xk=";",Kye=process.env.TERM_PROGRAM==="Apple_Terminal";An.cursorTo=(t,e)=>{if(typeof t!="number")throw new TypeError("The `x` argument is required");return typeof e!="number"?Ln+(t+1)+"G":Ln+(e+1)+";"+(t+1)+"H"};An.cursorMove=(t,e)=>{if(typeof t!="number")throw new TypeError("The `x` argument is required");let r="";return t<0?r+=Ln+-t+"D":t>0&&(r+=Ln+t+"C"),e<0?r+=Ln+-e+"A":e>0&&(r+=Ln+e+"B"),r};An.cursorUp=(t=1)=>Ln+t+"A";An.cursorDown=(t=1)=>Ln+t+"B";An.cursorForward=(t=1)=>Ln+t+"C";An.cursorBackward=(t=1)=>Ln+t+"D";An.cursorLeft=Ln+"G";An.cursorSavePosition=Kye?"\x1B7":Ln+"s";An.cursorRestorePosition=Kye?"\x1B8":Ln+"u";An.cursorGetPosition=Ln+"6n";An.cursorNextLine=Ln+"E";An.cursorPrevLine=Ln+"F";An.cursorHide=Ln+"?25l";An.cursorShow=Ln+"?25h";An.eraseLines=t=>{let e="";for(let r=0;r[tB,"8",xk,xk,e,TC,t,tB,"8",xk,xk,TC].join("");An.image=(t,e={})=>{let r=`${tB}1337;File=inline=1`;return e.width&&(r+=`;width=${e.width}`),e.height&&(r+=`;height=${e.height}`),e.preserveAspectRatio===!1&&(r+=";preserveAspectRatio=0"),r+":"+t.toString("base64")+TC};An.iTerm={setCwd:(t=process.cwd())=>`${tB}50;CurrentDir=${t}${TC}`,annotation:(t,e={})=>{let r=`${tB}1337;`,o=typeof e.x<"u",a=typeof e.y<"u";if((o||a)&&!(o&&a&&typeof e.length<"u"))throw new Error("`x`, `y` and `length` must be defined when `x` or `y` is defined");return t=t.replace(/\|/g,""),r+=e.isHidden?"AddHiddenAnnotation=":"AddAnnotation=",e.length>0?r+=(o?[t,e.length,e.x,e.y]:[e.length,t]).join("|"):r+=t,r+TC}}});var Jye=_((nKt,A6)=>{"use strict";var Vye=(t,e)=>{for(let r of Reflect.ownKeys(e))Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(e,r));return t};A6.exports=Vye;A6.exports.default=Vye});var Xye=_((iKt,Qk)=>{"use strict";var Fyt=Jye(),kk=new WeakMap,zye=(t,e={})=>{if(typeof t!="function")throw new TypeError("Expected a function");let r,o=0,a=t.displayName||t.name||"",n=function(...u){if(kk.set(n,++o),o===1)r=t.apply(this,u),t=null;else if(e.throw===!0)throw new Error(`Function \`${a}\` can only be called once`);return r};return Fyt(n,t),kk.set(n,o),n};Qk.exports=zye;Qk.exports.default=zye;Qk.exports.callCount=t=>{if(!kk.has(t))throw new Error(`The given function \`${t.name}\` is not wrapped by the \`onetime\` package`);return kk.get(t)}});var Zye=_((sKt,Fk)=>{Fk.exports=["SIGABRT","SIGALRM","SIGHUP","SIGINT","SIGTERM"];process.platform!=="win32"&&Fk.exports.push("SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT");process.platform==="linux"&&Fk.exports.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT","SIGUNUSED")});var h6=_((oKt,OC)=>{var Ei=global.process,im=function(t){return t&&typeof t=="object"&&typeof t.removeListener=="function"&&typeof t.emit=="function"&&typeof t.reallyExit=="function"&&typeof t.listeners=="function"&&typeof t.kill=="function"&&typeof t.pid=="number"&&typeof t.on=="function"};im(Ei)?($ye=ve("assert"),NC=Zye(),eEe=/^win/i.test(Ei.platform),rB=ve("events"),typeof rB!="function"&&(rB=rB.EventEmitter),Ei.__signal_exit_emitter__?Ts=Ei.__signal_exit_emitter__:(Ts=Ei.__signal_exit_emitter__=new rB,Ts.count=0,Ts.emitted={}),Ts.infinite||(Ts.setMaxListeners(1/0),Ts.infinite=!0),OC.exports=function(t,e){if(!im(global.process))return function(){};$ye.equal(typeof t,"function","a callback must be provided for exit handler"),LC===!1&&f6();var r="exit";e&&e.alwaysLast&&(r="afterexit");var o=function(){Ts.removeListener(r,t),Ts.listeners("exit").length===0&&Ts.listeners("afterexit").length===0&&Rk()};return Ts.on(r,t),o},Rk=function(){!LC||!im(global.process)||(LC=!1,NC.forEach(function(e){try{Ei.removeListener(e,Tk[e])}catch{}}),Ei.emit=Nk,Ei.reallyExit=p6,Ts.count-=1)},OC.exports.unload=Rk,sm=function(e,r,o){Ts.emitted[e]||(Ts.emitted[e]=!0,Ts.emit(e,r,o))},Tk={},NC.forEach(function(t){Tk[t]=function(){if(!!im(global.process)){var r=Ei.listeners(t);r.length===Ts.count&&(Rk(),sm("exit",null,t),sm("afterexit",null,t),eEe&&t==="SIGHUP"&&(t="SIGINT"),Ei.kill(Ei.pid,t))}}}),OC.exports.signals=function(){return NC},LC=!1,f6=function(){LC||!im(global.process)||(LC=!0,Ts.count+=1,NC=NC.filter(function(e){try{return Ei.on(e,Tk[e]),!0}catch{return!1}}),Ei.emit=rEe,Ei.reallyExit=tEe)},OC.exports.load=f6,p6=Ei.reallyExit,tEe=function(e){!im(global.process)||(Ei.exitCode=e||0,sm("exit",Ei.exitCode,null),sm("afterexit",Ei.exitCode,null),p6.call(Ei,Ei.exitCode))},Nk=Ei.emit,rEe=function(e,r){if(e==="exit"&&im(global.process)){r!==void 0&&(Ei.exitCode=r);var o=Nk.apply(this,arguments);return sm("exit",Ei.exitCode,null),sm("afterexit",Ei.exitCode,null),o}else return Nk.apply(this,arguments)}):OC.exports=function(){return function(){}};var $ye,NC,eEe,rB,Ts,Rk,sm,Tk,LC,f6,p6,tEe,Nk,rEe});var iEe=_((aKt,nEe)=>{"use strict";var Ryt=Xye(),Tyt=h6();nEe.exports=Ryt(()=>{Tyt(()=>{process.stderr.write("\x1B[?25h")},{alwaysLast:!0})})});var g6=_(MC=>{"use strict";var Nyt=iEe(),Lk=!1;MC.show=(t=process.stderr)=>{!t.isTTY||(Lk=!1,t.write("\x1B[?25h"))};MC.hide=(t=process.stderr)=>{!t.isTTY||(Nyt(),Lk=!0,t.write("\x1B[?25l"))};MC.toggle=(t,e)=>{t!==void 0&&(Lk=t),Lk?MC.show(e):MC.hide(e)}});var lEe=_(nB=>{"use strict";var aEe=nB&&nB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(nB,"__esModule",{value:!0});var sEe=aEe(u6()),oEe=aEe(g6()),Lyt=(t,{showCursor:e=!1}={})=>{let r=0,o="",a=!1,n=u=>{!e&&!a&&(oEe.default.hide(),a=!0);let A=u+` +`;A!==o&&(o=A,t.write(sEe.default.eraseLines(r)+A),r=A.split(` +`).length)};return n.clear=()=>{t.write(sEe.default.eraseLines(r)),o="",r=0},n.done=()=>{o="",r=0,e||(oEe.default.show(),a=!1)},n};nB.default={create:Lyt}});var cEe=_((uKt,Oyt)=>{Oyt.exports=[{name:"AppVeyor",constant:"APPVEYOR",env:"APPVEYOR",pr:"APPVEYOR_PULL_REQUEST_NUMBER"},{name:"Azure Pipelines",constant:"AZURE_PIPELINES",env:"SYSTEM_TEAMFOUNDATIONCOLLECTIONURI",pr:"SYSTEM_PULLREQUEST_PULLREQUESTID"},{name:"Bamboo",constant:"BAMBOO",env:"bamboo_planKey"},{name:"Bitbucket Pipelines",constant:"BITBUCKET",env:"BITBUCKET_COMMIT",pr:"BITBUCKET_PR_ID"},{name:"Bitrise",constant:"BITRISE",env:"BITRISE_IO",pr:"BITRISE_PULL_REQUEST"},{name:"Buddy",constant:"BUDDY",env:"BUDDY_WORKSPACE_ID",pr:"BUDDY_EXECUTION_PULL_REQUEST_ID"},{name:"Buildkite",constant:"BUILDKITE",env:"BUILDKITE",pr:{env:"BUILDKITE_PULL_REQUEST",ne:"false"}},{name:"CircleCI",constant:"CIRCLE",env:"CIRCLECI",pr:"CIRCLE_PULL_REQUEST"},{name:"Cirrus CI",constant:"CIRRUS",env:"CIRRUS_CI",pr:"CIRRUS_PR"},{name:"AWS CodeBuild",constant:"CODEBUILD",env:"CODEBUILD_BUILD_ARN"},{name:"Codeship",constant:"CODESHIP",env:{CI_NAME:"codeship"}},{name:"Drone",constant:"DRONE",env:"DRONE",pr:{DRONE_BUILD_EVENT:"pull_request"}},{name:"dsari",constant:"DSARI",env:"DSARI"},{name:"GitLab CI",constant:"GITLAB",env:"GITLAB_CI"},{name:"GoCD",constant:"GOCD",env:"GO_PIPELINE_LABEL"},{name:"Hudson",constant:"HUDSON",env:"HUDSON_URL"},{name:"Jenkins",constant:"JENKINS",env:["JENKINS_URL","BUILD_ID"],pr:{any:["ghprbPullId","CHANGE_ID"]}},{name:"Magnum CI",constant:"MAGNUM",env:"MAGNUM"},{name:"Netlify CI",constant:"NETLIFY",env:"NETLIFY_BUILD_BASE",pr:{env:"PULL_REQUEST",ne:"false"}},{name:"Sail CI",constant:"SAIL",env:"SAILCI",pr:"SAIL_PULL_REQUEST_NUMBER"},{name:"Semaphore",constant:"SEMAPHORE",env:"SEMAPHORE",pr:"PULL_REQUEST_NUMBER"},{name:"Shippable",constant:"SHIPPABLE",env:"SHIPPABLE",pr:{IS_PULL_REQUEST:"true"}},{name:"Solano CI",constant:"SOLANO",env:"TDDIUM",pr:"TDDIUM_PR_ID"},{name:"Strider CD",constant:"STRIDER",env:"STRIDER"},{name:"TaskCluster",constant:"TASKCLUSTER",env:["TASK_ID","RUN_ID"]},{name:"TeamCity",constant:"TEAMCITY",env:"TEAMCITY_VERSION"},{name:"Travis CI",constant:"TRAVIS",env:"TRAVIS",pr:{env:"TRAVIS_PULL_REQUEST",ne:"false"}}]});var fEe=_(gl=>{"use strict";var AEe=cEe(),pA=process.env;Object.defineProperty(gl,"_vendors",{value:AEe.map(function(t){return t.constant})});gl.name=null;gl.isPR=null;AEe.forEach(function(t){var e=Array.isArray(t.env)?t.env:[t.env],r=e.every(function(o){return uEe(o)});if(gl[t.constant]=r,r)switch(gl.name=t.name,typeof t.pr){case"string":gl.isPR=!!pA[t.pr];break;case"object":"env"in t.pr?gl.isPR=t.pr.env in pA&&pA[t.pr.env]!==t.pr.ne:"any"in t.pr?gl.isPR=t.pr.any.some(function(o){return!!pA[o]}):gl.isPR=uEe(t.pr);break;default:gl.isPR=null}});gl.isCI=!!(pA.CI||pA.CONTINUOUS_INTEGRATION||pA.BUILD_NUMBER||pA.RUN_ID||gl.name);function uEe(t){return typeof t=="string"?!!pA[t]:Object.keys(t).every(function(e){return pA[e]===t[e]})}});var hEe=_((fKt,pEe)=>{"use strict";pEe.exports=fEe().isCI});var dEe=_((pKt,gEe)=>{"use strict";var Myt=t=>{let e=new Set;do for(let r of Reflect.ownKeys(t))e.add([t,r]);while((t=Reflect.getPrototypeOf(t))&&t!==Object.prototype);return e};gEe.exports=(t,{include:e,exclude:r}={})=>{let o=a=>{let n=u=>typeof u=="string"?a===u:u.test(a);return e?e.some(n):r?!r.some(n):!0};for(let[a,n]of Myt(t.constructor.prototype)){if(n==="constructor"||!o(n))continue;let u=Reflect.getOwnPropertyDescriptor(a,n);u&&typeof u.value=="function"&&(t[n]=t[n].bind(t))}return t}});var BEe=_(kn=>{"use strict";Object.defineProperty(kn,"__esModule",{value:!0});var _C,oB,Hk,qk,I6;typeof window>"u"||typeof MessageChannel!="function"?(UC=null,d6=null,m6=function(){if(UC!==null)try{var t=kn.unstable_now();UC(!0,t),UC=null}catch(e){throw setTimeout(m6,0),e}},mEe=Date.now(),kn.unstable_now=function(){return Date.now()-mEe},_C=function(t){UC!==null?setTimeout(_C,0,t):(UC=t,setTimeout(m6,0))},oB=function(t,e){d6=setTimeout(t,e)},Hk=function(){clearTimeout(d6)},qk=function(){return!1},I6=kn.unstable_forceFrameRate=function(){}):(Ok=window.performance,y6=window.Date,yEe=window.setTimeout,EEe=window.clearTimeout,typeof console<"u"&&(CEe=window.cancelAnimationFrame,typeof window.requestAnimationFrame!="function"&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills"),typeof CEe!="function"&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills")),typeof Ok=="object"&&typeof Ok.now=="function"?kn.unstable_now=function(){return Ok.now()}:(wEe=y6.now(),kn.unstable_now=function(){return y6.now()-wEe}),iB=!1,sB=null,Mk=-1,E6=5,C6=0,qk=function(){return kn.unstable_now()>=C6},I6=function(){},kn.unstable_forceFrameRate=function(t){0>t||125_k(u,r))p!==void 0&&0>_k(p,u)?(t[o]=p,t[A]=r,o=A):(t[o]=u,t[n]=r,o=n);else if(p!==void 0&&0>_k(p,r))t[o]=p,t[A]=r,o=A;else break e}}return e}return null}function _k(t,e){var r=t.sortIndex-e.sortIndex;return r!==0?r:t.id-e.id}var eu=[],y0=[],Uyt=1,na=null,Lo=3,Gk=!1,om=!1,aB=!1;function Yk(t){for(var e=nc(y0);e!==null;){if(e.callback===null)jk(y0);else if(e.startTime<=t)jk(y0),e.sortIndex=e.expirationTime,B6(eu,e);else break;e=nc(y0)}}function v6(t){if(aB=!1,Yk(t),!om)if(nc(eu)!==null)om=!0,_C(D6);else{var e=nc(y0);e!==null&&oB(v6,e.startTime-t)}}function D6(t,e){om=!1,aB&&(aB=!1,Hk()),Gk=!0;var r=Lo;try{for(Yk(e),na=nc(eu);na!==null&&(!(na.expirationTime>e)||t&&!qk());){var o=na.callback;if(o!==null){na.callback=null,Lo=na.priorityLevel;var a=o(na.expirationTime<=e);e=kn.unstable_now(),typeof a=="function"?na.callback=a:na===nc(eu)&&jk(eu),Yk(e)}else jk(eu);na=nc(eu)}if(na!==null)var n=!0;else{var u=nc(y0);u!==null&&oB(v6,u.startTime-e),n=!1}return n}finally{na=null,Lo=r,Gk=!1}}function IEe(t){switch(t){case 1:return-1;case 2:return 250;case 5:return 1073741823;case 4:return 1e4;default:return 5e3}}var _yt=I6;kn.unstable_ImmediatePriority=1;kn.unstable_UserBlockingPriority=2;kn.unstable_NormalPriority=3;kn.unstable_IdlePriority=5;kn.unstable_LowPriority=4;kn.unstable_runWithPriority=function(t,e){switch(t){case 1:case 2:case 3:case 4:case 5:break;default:t=3}var r=Lo;Lo=t;try{return e()}finally{Lo=r}};kn.unstable_next=function(t){switch(Lo){case 1:case 2:case 3:var e=3;break;default:e=Lo}var r=Lo;Lo=e;try{return t()}finally{Lo=r}};kn.unstable_scheduleCallback=function(t,e,r){var o=kn.unstable_now();if(typeof r=="object"&&r!==null){var a=r.delay;a=typeof a=="number"&&0o?(t.sortIndex=a,B6(y0,t),nc(eu)===null&&t===nc(y0)&&(aB?Hk():aB=!0,oB(v6,a-o))):(t.sortIndex=r,B6(eu,t),om||Gk||(om=!0,_C(D6))),t};kn.unstable_cancelCallback=function(t){t.callback=null};kn.unstable_wrapCallback=function(t){var e=Lo;return function(){var r=Lo;Lo=e;try{return t.apply(this,arguments)}finally{Lo=r}}};kn.unstable_getCurrentPriorityLevel=function(){return Lo};kn.unstable_shouldYield=function(){var t=kn.unstable_now();Yk(t);var e=nc(eu);return e!==na&&na!==null&&e!==null&&e.callback!==null&&e.startTime<=t&&e.expirationTime{"use strict";vEe.exports=BEe()});var DEe=_((dKt,lB)=>{lB.exports=function t(e){"use strict";var r=$H(),o=on(),a=S6();function n(S){for(var D="https://reactjs.org/docs/error-decoder.html?invariant="+S,T=1;Tao||(S.current=yl[ao],yl[ao]=null,ao--)}function On(S,D){ao++,yl[ao]=S.current,S.current=D}var Ni={},Mn={current:Ni},_i={current:!1},tr=Ni;function Oe(S,D){var T=S.type.contextTypes;if(!T)return Ni;var q=S.stateNode;if(q&&q.__reactInternalMemoizedUnmaskedChildContext===D)return q.__reactInternalMemoizedMaskedChildContext;var Y={},Ae;for(Ae in T)Y[Ae]=D[Ae];return q&&(S=S.stateNode,S.__reactInternalMemoizedUnmaskedChildContext=D,S.__reactInternalMemoizedMaskedChildContext=Y),Y}function ii(S){return S=S.childContextTypes,S!=null}function Ma(S){Vn(_i,S),Vn(Mn,S)}function hr(S){Vn(_i,S),Vn(Mn,S)}function uc(S,D,T){if(Mn.current!==Ni)throw Error(n(168));On(Mn,D,S),On(_i,T,S)}function uu(S,D,T){var q=S.stateNode;if(S=D.childContextTypes,typeof q.getChildContext!="function")return T;q=q.getChildContext();for(var Y in q)if(!(Y in S))throw Error(n(108,he(D)||"Unknown",Y));return r({},T,{},q)}function Ac(S){var D=S.stateNode;return D=D&&D.__reactInternalMemoizedMergedChildContext||Ni,tr=Mn.current,On(Mn,D,S),On(_i,_i.current,S),!0}function El(S,D,T){var q=S.stateNode;if(!q)throw Error(n(169));T?(D=uu(S,D,tr),q.__reactInternalMemoizedMergedChildContext=D,Vn(_i,S),Vn(Mn,S),On(Mn,D,S)):Vn(_i,S),On(_i,T,S)}var DA=a.unstable_runWithPriority,Au=a.unstable_scheduleCallback,Ce=a.unstable_cancelCallback,Rt=a.unstable_shouldYield,fc=a.unstable_requestPaint,Hi=a.unstable_now,fu=a.unstable_getCurrentPriorityLevel,Yt=a.unstable_ImmediatePriority,Cl=a.unstable_UserBlockingPriority,SA=a.unstable_NormalPriority,up=a.unstable_LowPriority,pc=a.unstable_IdlePriority,PA={},Qn=fc!==void 0?fc:function(){},hi=null,hc=null,bA=!1,sa=Hi(),Li=1e4>sa?Hi:function(){return Hi()-sa};function _o(){switch(fu()){case Yt:return 99;case Cl:return 98;case SA:return 97;case up:return 96;case pc:return 95;default:throw Error(n(332))}}function Ze(S){switch(S){case 99:return Yt;case 98:return Cl;case 97:return SA;case 96:return up;case 95:return pc;default:throw Error(n(332))}}function lo(S,D){return S=Ze(S),DA(S,D)}function gc(S,D,T){return S=Ze(S),Au(S,D,T)}function pu(S){return hi===null?(hi=[S],hc=Au(Yt,hu)):hi.push(S),PA}function qi(){if(hc!==null){var S=hc;hc=null,Ce(S)}hu()}function hu(){if(!bA&&hi!==null){bA=!0;var S=0;try{var D=hi;lo(99,function(){for(;S=D&&(jo=!0),S.firstContext=null)}function ms(S,D){if(aa!==S&&D!==!1&&D!==0)if((typeof D!="number"||D===1073741823)&&(aa=S,D=1073741823),D={context:S,observedBits:D,next:null},Us===null){if(co===null)throw Error(n(308));Us=D,co.dependencies={expirationTime:0,firstContext:D,responders:null}}else Us=Us.next=D;return b?S._currentValue:S._currentValue2}var _s=!1;function Un(S){return{baseState:S,firstUpdate:null,lastUpdate:null,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null}}function Sn(S){return{baseState:S.baseState,firstUpdate:S.firstUpdate,lastUpdate:S.lastUpdate,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null}}function ys(S,D){return{expirationTime:S,suspenseConfig:D,tag:0,payload:null,callback:null,next:null,nextEffect:null}}function We(S,D){S.lastUpdate===null?S.firstUpdate=S.lastUpdate=D:(S.lastUpdate.next=D,S.lastUpdate=D)}function tt(S,D){var T=S.alternate;if(T===null){var q=S.updateQueue,Y=null;q===null&&(q=S.updateQueue=Un(S.memoizedState))}else q=S.updateQueue,Y=T.updateQueue,q===null?Y===null?(q=S.updateQueue=Un(S.memoizedState),Y=T.updateQueue=Un(T.memoizedState)):q=S.updateQueue=Sn(Y):Y===null&&(Y=T.updateQueue=Sn(q));Y===null||q===Y?We(q,D):q.lastUpdate===null||Y.lastUpdate===null?(We(q,D),We(Y,D)):(We(q,D),Y.lastUpdate=D)}function It(S,D){var T=S.updateQueue;T=T===null?S.updateQueue=Un(S.memoizedState):nr(S,T),T.lastCapturedUpdate===null?T.firstCapturedUpdate=T.lastCapturedUpdate=D:(T.lastCapturedUpdate.next=D,T.lastCapturedUpdate=D)}function nr(S,D){var T=S.alternate;return T!==null&&D===T.updateQueue&&(D=S.updateQueue=Sn(D)),D}function $(S,D,T,q,Y,Ae){switch(T.tag){case 1:return S=T.payload,typeof S=="function"?S.call(Ae,q,Y):S;case 3:S.effectTag=S.effectTag&-4097|64;case 0:if(S=T.payload,Y=typeof S=="function"?S.call(Ae,q,Y):S,Y==null)break;return r({},q,Y);case 2:_s=!0}return q}function ye(S,D,T,q,Y){_s=!1,D=nr(S,D);for(var Ae=D.baseState,De=null,vt=0,wt=D.firstUpdate,xt=Ae;wt!==null;){var _r=wt.expirationTime;_rbn?(ai=Fr,Fr=null):ai=Fr.sibling;var tn=di(rt,Fr,ft[bn],Wt);if(tn===null){Fr===null&&(Fr=ai);break}S&&Fr&&tn.alternate===null&&D(rt,Fr),Ve=Ae(tn,Ve,bn),Pn===null?vr=tn:Pn.sibling=tn,Pn=tn,Fr=ai}if(bn===ft.length)return T(rt,Fr),vr;if(Fr===null){for(;bnbn?(ai=Fr,Fr=null):ai=Fr.sibling;var ho=di(rt,Fr,tn.value,Wt);if(ho===null){Fr===null&&(Fr=ai);break}S&&Fr&&ho.alternate===null&&D(rt,Fr),Ve=Ae(ho,Ve,bn),Pn===null?vr=ho:Pn.sibling=ho,Pn=ho,Fr=ai}if(tn.done)return T(rt,Fr),vr;if(Fr===null){for(;!tn.done;bn++,tn=ft.next())tn=is(rt,tn.value,Wt),tn!==null&&(Ve=Ae(tn,Ve,bn),Pn===null?vr=tn:Pn.sibling=tn,Pn=tn);return vr}for(Fr=q(rt,Fr);!tn.done;bn++,tn=ft.next())tn=po(Fr,rt,bn,tn.value,Wt),tn!==null&&(S&&tn.alternate!==null&&Fr.delete(tn.key===null?bn:tn.key),Ve=Ae(tn,Ve,bn),Pn===null?vr=tn:Pn.sibling=tn,Pn=tn);return S&&Fr.forEach(function(vF){return D(rt,vF)}),vr}return function(rt,Ve,ft,Wt){var vr=typeof ft=="object"&&ft!==null&&ft.type===E&&ft.key===null;vr&&(ft=ft.props.children);var Pn=typeof ft=="object"&&ft!==null;if(Pn)switch(ft.$$typeof){case p:e:{for(Pn=ft.key,vr=Ve;vr!==null;){if(vr.key===Pn)if(vr.tag===7?ft.type===E:vr.elementType===ft.type){T(rt,vr.sibling),Ve=Y(vr,ft.type===E?ft.props.children:ft.props,Wt),Ve.ref=QA(rt,vr,ft),Ve.return=rt,rt=Ve;break e}else{T(rt,vr);break}else D(rt,vr);vr=vr.sibling}ft.type===E?(Ve=bu(ft.props.children,rt.mode,Wt,ft.key),Ve.return=rt,rt=Ve):(Wt=qm(ft.type,ft.key,ft.props,null,rt.mode,Wt),Wt.ref=QA(rt,Ve,ft),Wt.return=rt,rt=Wt)}return De(rt);case h:e:{for(vr=ft.key;Ve!==null;){if(Ve.key===vr)if(Ve.tag===4&&Ve.stateNode.containerInfo===ft.containerInfo&&Ve.stateNode.implementation===ft.implementation){T(rt,Ve.sibling),Ve=Y(Ve,ft.children||[],Wt),Ve.return=rt,rt=Ve;break e}else{T(rt,Ve);break}else D(rt,Ve);Ve=Ve.sibling}Ve=Rw(ft,rt.mode,Wt),Ve.return=rt,rt=Ve}return De(rt)}if(typeof ft=="string"||typeof ft=="number")return ft=""+ft,Ve!==null&&Ve.tag===6?(T(rt,Ve.sibling),Ve=Y(Ve,ft,Wt),Ve.return=rt,rt=Ve):(T(rt,Ve),Ve=Fw(ft,rt.mode,Wt),Ve.return=rt,rt=Ve),De(rt);if(kA(ft))return VA(rt,Ve,ft,Wt);if(ce(ft))return Yo(rt,Ve,ft,Wt);if(Pn&&Ap(rt,ft),typeof ft>"u"&&!vr)switch(rt.tag){case 1:case 0:throw rt=rt.type,Error(n(152,rt.displayName||rt.name||"Component"))}return T(rt,Ve)}}var gu=ig(!0),sg=ig(!1),du={},uo={current:du},FA={current:du},mc={current:du};function ca(S){if(S===du)throw Error(n(174));return S}function og(S,D){On(mc,D,S),On(FA,S,S),On(uo,du,S),D=ne(D),Vn(uo,S),On(uo,D,S)}function yc(S){Vn(uo,S),Vn(FA,S),Vn(mc,S)}function Pm(S){var D=ca(mc.current),T=ca(uo.current);D=ee(T,S.type,D),T!==D&&(On(FA,S,S),On(uo,D,S))}function ag(S){FA.current===S&&(Vn(uo,S),Vn(FA,S))}var $n={current:0};function fp(S){for(var D=S;D!==null;){if(D.tag===13){var T=D.memoizedState;if(T!==null&&(T=T.dehydrated,T===null||Ls(T)||so(T)))return D}else if(D.tag===19&&D.memoizedProps.revealOrder!==void 0){if((D.effectTag&64)!==0)return D}else if(D.child!==null){D.child.return=D,D=D.child;continue}if(D===S)break;for(;D.sibling===null;){if(D.return===null||D.return===S)return null;D=D.return}D.sibling.return=D.return,D=D.sibling}return null}function lg(S,D){return{responder:S,props:D}}var RA=u.ReactCurrentDispatcher,Hs=u.ReactCurrentBatchConfig,mu=0,Ha=null,Gi=null,ua=null,yu=null,Es=null,Ec=null,Cc=0,G=null,Dt=0,wl=!1,xi=null,wc=0;function ct(){throw Error(n(321))}function Eu(S,D){if(D===null)return!1;for(var T=0;TCc&&(Cc=_r,Hm(Cc))):(Pw(_r,wt.suspenseConfig),Ae=wt.eagerReducer===S?wt.eagerState:S(Ae,wt.action)),De=wt,wt=wt.next}while(wt!==null&&wt!==q);xt||(vt=De,Y=Ae),hs(Ae,D.memoizedState)||(jo=!0),D.memoizedState=Ae,D.baseUpdate=vt,D.baseState=Y,T.lastRenderedState=Ae}return[D.memoizedState,T.dispatch]}function ug(S){var D=TA();return typeof S=="function"&&(S=S()),D.memoizedState=D.baseState=S,S=D.queue={last:null,dispatch:null,lastRenderedReducer:Br,lastRenderedState:S},S=S.dispatch=gg.bind(null,Ha,S),[D.memoizedState,S]}function Ag(S){return Cs(Br,S)}function fg(S,D,T,q){return S={tag:S,create:D,destroy:T,deps:q,next:null},G===null?(G={lastEffect:null},G.lastEffect=S.next=S):(D=G.lastEffect,D===null?G.lastEffect=S.next=S:(T=D.next,D.next=S,S.next=T,G.lastEffect=S)),S}function hp(S,D,T,q){var Y=TA();Dt|=S,Y.memoizedState=fg(D,T,void 0,q===void 0?null:q)}function Ic(S,D,T,q){var Y=pp();q=q===void 0?null:q;var Ae=void 0;if(Gi!==null){var De=Gi.memoizedState;if(Ae=De.destroy,q!==null&&Eu(q,De.deps)){fg(0,T,Ae,q);return}}Dt|=S,Y.memoizedState=fg(D,T,Ae,q)}function Ct(S,D){return hp(516,192,S,D)}function bm(S,D){return Ic(516,192,S,D)}function pg(S,D){if(typeof D=="function")return S=S(),D(S),function(){D(null)};if(D!=null)return S=S(),D.current=S,function(){D.current=null}}function hg(){}function Cu(S,D){return TA().memoizedState=[S,D===void 0?null:D],S}function xm(S,D){var T=pp();D=D===void 0?null:D;var q=T.memoizedState;return q!==null&&D!==null&&Eu(D,q[1])?q[0]:(T.memoizedState=[S,D],S)}function gg(S,D,T){if(!(25>wc))throw Error(n(301));var q=S.alternate;if(S===Ha||q!==null&&q===Ha)if(wl=!0,S={expirationTime:mu,suspenseConfig:null,action:T,eagerReducer:null,eagerState:null,next:null},xi===null&&(xi=new Map),T=xi.get(D),T===void 0)xi.set(D,S);else{for(D=T;D.next!==null;)D=D.next;D.next=S}else{var Y=ga(),Ae=ht.suspense;Y=qA(Y,S,Ae),Ae={expirationTime:Y,suspenseConfig:Ae,action:T,eagerReducer:null,eagerState:null,next:null};var De=D.last;if(De===null)Ae.next=Ae;else{var vt=De.next;vt!==null&&(Ae.next=vt),De.next=Ae}if(D.last=Ae,S.expirationTime===0&&(q===null||q.expirationTime===0)&&(q=D.lastRenderedReducer,q!==null))try{var wt=D.lastRenderedState,xt=q(wt,T);if(Ae.eagerReducer=q,Ae.eagerState=xt,hs(xt,wt))return}catch{}finally{}Pc(S,Y)}}var wu={readContext:ms,useCallback:ct,useContext:ct,useEffect:ct,useImperativeHandle:ct,useLayoutEffect:ct,useMemo:ct,useReducer:ct,useRef:ct,useState:ct,useDebugValue:ct,useResponder:ct,useDeferredValue:ct,useTransition:ct},Ew={readContext:ms,useCallback:Cu,useContext:ms,useEffect:Ct,useImperativeHandle:function(S,D,T){return T=T!=null?T.concat([S]):null,hp(4,36,pg.bind(null,D,S),T)},useLayoutEffect:function(S,D){return hp(4,36,S,D)},useMemo:function(S,D){var T=TA();return D=D===void 0?null:D,S=S(),T.memoizedState=[S,D],S},useReducer:function(S,D,T){var q=TA();return D=T!==void 0?T(D):D,q.memoizedState=q.baseState=D,S=q.queue={last:null,dispatch:null,lastRenderedReducer:S,lastRenderedState:D},S=S.dispatch=gg.bind(null,Ha,S),[q.memoizedState,S]},useRef:function(S){var D=TA();return S={current:S},D.memoizedState=S},useState:ug,useDebugValue:hg,useResponder:lg,useDeferredValue:function(S,D){var T=ug(S),q=T[0],Y=T[1];return Ct(function(){a.unstable_next(function(){var Ae=Hs.suspense;Hs.suspense=D===void 0?null:D;try{Y(S)}finally{Hs.suspense=Ae}})},[S,D]),q},useTransition:function(S){var D=ug(!1),T=D[0],q=D[1];return[Cu(function(Y){q(!0),a.unstable_next(function(){var Ae=Hs.suspense;Hs.suspense=S===void 0?null:S;try{q(!1),Y()}finally{Hs.suspense=Ae}})},[S,T]),T]}},km={readContext:ms,useCallback:xm,useContext:ms,useEffect:bm,useImperativeHandle:function(S,D,T){return T=T!=null?T.concat([S]):null,Ic(4,36,pg.bind(null,D,S),T)},useLayoutEffect:function(S,D){return Ic(4,36,S,D)},useMemo:function(S,D){var T=pp();D=D===void 0?null:D;var q=T.memoizedState;return q!==null&&D!==null&&Eu(D,q[1])?q[0]:(S=S(),T.memoizedState=[S,D],S)},useReducer:Cs,useRef:function(){return pp().memoizedState},useState:Ag,useDebugValue:hg,useResponder:lg,useDeferredValue:function(S,D){var T=Ag(S),q=T[0],Y=T[1];return bm(function(){a.unstable_next(function(){var Ae=Hs.suspense;Hs.suspense=D===void 0?null:D;try{Y(S)}finally{Hs.suspense=Ae}})},[S,D]),q},useTransition:function(S){var D=Ag(!1),T=D[0],q=D[1];return[xm(function(Y){q(!0),a.unstable_next(function(){var Ae=Hs.suspense;Hs.suspense=S===void 0?null:S;try{q(!1),Y()}finally{Hs.suspense=Ae}})},[S,T]),T]}},Aa=null,Bc=null,Il=!1;function Iu(S,D){var T=Dl(5,null,null,0);T.elementType="DELETED",T.type="DELETED",T.stateNode=D,T.return=S,T.effectTag=8,S.lastEffect!==null?(S.lastEffect.nextEffect=T,S.lastEffect=T):S.firstEffect=S.lastEffect=T}function dg(S,D){switch(S.tag){case 5:return D=io(D,S.type,S.pendingProps),D!==null?(S.stateNode=D,!0):!1;case 6:return D=Pi(D,S.pendingProps),D!==null?(S.stateNode=D,!0):!1;case 13:return!1;default:return!1}}function NA(S){if(Il){var D=Bc;if(D){var T=D;if(!dg(S,D)){if(D=cc(T),!D||!dg(S,D)){S.effectTag=S.effectTag&-1025|2,Il=!1,Aa=S;return}Iu(Aa,T)}Aa=S,Bc=cu(D)}else S.effectTag=S.effectTag&-1025|2,Il=!1,Aa=S}}function gp(S){for(S=S.return;S!==null&&S.tag!==5&&S.tag!==3&&S.tag!==13;)S=S.return;Aa=S}function qa(S){if(!y||S!==Aa)return!1;if(!Il)return gp(S),Il=!0,!1;var D=S.type;if(S.tag!==5||D!=="head"&&D!=="body"&&!ke(D,S.memoizedProps))for(D=Bc;D;)Iu(S,D),D=cc(D);if(gp(S),S.tag===13){if(!y)throw Error(n(316));if(S=S.memoizedState,S=S!==null?S.dehydrated:null,!S)throw Error(n(317));Bc=Os(S)}else Bc=Aa?cc(S.stateNode):null;return!0}function mg(){y&&(Bc=Aa=null,Il=!1)}var dp=u.ReactCurrentOwner,jo=!1;function ws(S,D,T,q){D.child=S===null?sg(D,null,T,q):gu(D,S.child,T,q)}function Ii(S,D,T,q,Y){T=T.render;var Ae=D.ref;return ds(D,Y),q=cg(S,D,T,q,Ae,Y),S!==null&&!jo?(D.updateQueue=S.updateQueue,D.effectTag&=-517,S.expirationTime<=Y&&(S.expirationTime=0),si(S,D,Y)):(D.effectTag|=1,ws(S,D,q,Y),D.child)}function Qm(S,D,T,q,Y,Ae){if(S===null){var De=T.type;return typeof De=="function"&&!Qw(De)&&De.defaultProps===void 0&&T.compare===null&&T.defaultProps===void 0?(D.tag=15,D.type=De,Fm(S,D,De,q,Y,Ae)):(S=qm(T.type,null,q,null,D.mode,Ae),S.ref=D.ref,S.return=D,D.child=S)}return De=S.child,YD)&&HA.set(S,D)))}}function Dg(S,D){S.expirationTimeS?D:S)}function fo(S){if(S.lastExpiredTime!==0)S.callbackExpirationTime=1073741823,S.callbackPriority=99,S.callbackNode=pu(Sw.bind(null,S));else{var D=_m(S),T=S.callbackNode;if(D===0)T!==null&&(S.callbackNode=null,S.callbackExpirationTime=0,S.callbackPriority=90);else{var q=ga();if(D===1073741823?q=99:D===1||D===2?q=95:(q=10*(1073741821-D)-10*(1073741821-q),q=0>=q?99:250>=q?98:5250>=q?97:95),T!==null){var Y=S.callbackPriority;if(S.callbackExpirationTime===D&&Y>=q)return;T!==PA&&Ce(T)}S.callbackExpirationTime=D,S.callbackPriority=q,D=D===1073741823?pu(Sw.bind(null,S)):gc(q,Wv.bind(null,S),{timeout:10*(1073741821-D)-Li()}),S.callbackNode=D}}}function Wv(S,D){if(Um=0,D)return D=ga(),jm(S,D),fo(S),null;var T=_m(S);if(T!==0){if(D=S.callbackNode,(yr&(rs|qs))!==En)throw Error(n(327));if(Bp(),S===gi&&T===ns||Su(S,T),Or!==null){var q=yr;yr|=rs;var Y=GA(S);do try{pF();break}catch(vt){jA(S,vt)}while(1);if(la(),yr=q,Cp.current=Y,Yi===Nm)throw D=Lm,Su(S,T),KA(S,T),fo(S),D;if(Or===null)switch(Y=S.finishedWork=S.current.alternate,S.finishedExpirationTime=T,q=Yi,gi=null,q){case Bu:case Nm:throw Error(n(345));case Bi:jm(S,2=T){S.lastPingedTime=T,Su(S,T);break}}if(Ae=_m(S),Ae!==0&&Ae!==T)break;if(q!==0&&q!==T){S.lastPingedTime=q;break}S.timeoutHandle=Te(Pu.bind(null,S),Y);break}Pu(S);break;case vl:if(KA(S,T),q=S.lastSuspendedTime,T===q&&(S.nextKnownPendingLevel=bw(Y)),UA&&(Y=S.lastPingedTime,Y===0||Y>=T)){S.lastPingedTime=T,Su(S,T);break}if(Y=_m(S),Y!==0&&Y!==T)break;if(q!==0&&q!==T){S.lastPingedTime=q;break}if(MA!==1073741823?q=10*(1073741821-MA)-Li():Ya===1073741823?q=0:(q=10*(1073741821-Ya)-5e3,Y=Li(),T=10*(1073741821-T)-Y,q=Y-q,0>q&&(q=0),q=(120>q?120:480>q?480:1080>q?1080:1920>q?1920:3e3>q?3e3:4320>q?4320:1960*ww(q/1960))-q,T=q?q=0:(Y=De.busyDelayMs|0,Ae=Li()-(10*(1073741821-Ae)-(De.timeoutMs|0||5e3)),q=Ae<=Y?0:Y+q-Ae),10 component higher in the tree to provide a loading indicator or placeholder to display.`+ml(Y))}Yi!==Sc&&(Yi=Bi),Ae=Eg(Ae,Y),wt=q;do{switch(wt.tag){case 3:De=Ae,wt.effectTag|=4096,wt.expirationTime=D;var Ve=Gv(wt,De,D);It(wt,Ve);break e;case 1:De=Ae;var ft=wt.type,Wt=wt.stateNode;if((wt.effectTag&64)===0&&(typeof ft.getDerivedStateFromError=="function"||Wt!==null&&typeof Wt.componentDidCatch=="function"&&(Du===null||!Du.has(Wt)))){wt.effectTag|=4096,wt.expirationTime=D;var vr=Yv(wt,De,D);It(wt,vr);break e}}wt=wt.return}while(wt!==null)}Or=zv(Or)}catch(Pn){D=Pn;continue}break}while(1)}function GA(){var S=Cp.current;return Cp.current=wu,S===null?wu:S}function Pw(S,D){Swp&&(wp=S)}function fF(){for(;Or!==null;)Or=Jv(Or)}function pF(){for(;Or!==null&&!Rt();)Or=Jv(Or)}function Jv(S){var D=Zv(S.alternate,S,ns);return S.memoizedProps=S.pendingProps,D===null&&(D=zv(S)),Iw.current=null,D}function zv(S){Or=S;do{var D=Or.alternate;if(S=Or.return,(Or.effectTag&2048)===0){e:{var T=D;D=Or;var q=ns,Y=D.pendingProps;switch(D.tag){case 2:break;case 16:break;case 15:case 0:break;case 1:ii(D.type)&&Ma(D);break;case 3:yc(D),hr(D),Y=D.stateNode,Y.pendingContext&&(Y.context=Y.pendingContext,Y.pendingContext=null),(T===null||T.child===null)&&qa(D)&&pa(D),Bl(D);break;case 5:ag(D);var Ae=ca(mc.current);if(q=D.type,T!==null&&D.stateNode!=null)ts(T,D,q,Y,Ae),T.ref!==D.ref&&(D.effectTag|=128);else if(Y){if(T=ca(uo.current),qa(D)){if(Y=D,!y)throw Error(n(175));T=lp(Y.stateNode,Y.type,Y.memoizedProps,Ae,T,Y),Y.updateQueue=T,T=T!==null,T&&pa(D)}else{var De=At(q,Y,Ae,T,D);vc(De,D,!1,!1),D.stateNode=De,at(De,q,Y,Ae,T)&&pa(D)}D.ref!==null&&(D.effectTag|=128)}else if(D.stateNode===null)throw Error(n(166));break;case 6:if(T&&D.stateNode!=null)Gr(T,D,T.memoizedProps,Y);else{if(typeof Y!="string"&&D.stateNode===null)throw Error(n(166));if(T=ca(mc.current),Ae=ca(uo.current),qa(D)){if(T=D,!y)throw Error(n(176));(T=cp(T.stateNode,T.memoizedProps,T))&&pa(D)}else D.stateNode=He(Y,T,Ae,D)}break;case 11:break;case 13:if(Vn($n,D),Y=D.memoizedState,(D.effectTag&64)!==0){D.expirationTime=q;break e}Y=Y!==null,Ae=!1,T===null?D.memoizedProps.fallback!==void 0&&qa(D):(q=T.memoizedState,Ae=q!==null,Y||q===null||(q=T.child.sibling,q!==null&&(De=D.firstEffect,De!==null?(D.firstEffect=q,q.nextEffect=De):(D.firstEffect=D.lastEffect=q,q.nextEffect=null),q.effectTag=8))),Y&&!Ae&&(D.mode&2)!==0&&(T===null&&D.memoizedProps.unstable_avoidThisFallback!==!0||($n.current&1)!==0?Yi===Bu&&(Yi=ha):((Yi===Bu||Yi===ha)&&(Yi=vl),wp!==0&&gi!==null&&(KA(gi,ns),eD(gi,wp)))),P&&Y&&(D.effectTag|=4),w&&(Y||Ae)&&(D.effectTag|=4);break;case 7:break;case 8:break;case 12:break;case 4:yc(D),Bl(D);break;case 10:wi(D);break;case 9:break;case 14:break;case 17:ii(D.type)&&Ma(D);break;case 19:if(Vn($n,D),Y=D.memoizedState,Y===null)break;if(Ae=(D.effectTag&64)!==0,De=Y.rendering,De===null){if(Ae)Dc(Y,!1);else if(Yi!==Bu||T!==null&&(T.effectTag&64)!==0)for(T=D.child;T!==null;){if(De=fp(T),De!==null){for(D.effectTag|=64,Dc(Y,!1),T=De.updateQueue,T!==null&&(D.updateQueue=T,D.effectTag|=4),Y.lastEffect===null&&(D.firstEffect=null),D.lastEffect=Y.lastEffect,T=q,Y=D.child;Y!==null;)Ae=Y,q=T,Ae.effectTag&=2,Ae.nextEffect=null,Ae.firstEffect=null,Ae.lastEffect=null,De=Ae.alternate,De===null?(Ae.childExpirationTime=0,Ae.expirationTime=q,Ae.child=null,Ae.memoizedProps=null,Ae.memoizedState=null,Ae.updateQueue=null,Ae.dependencies=null):(Ae.childExpirationTime=De.childExpirationTime,Ae.expirationTime=De.expirationTime,Ae.child=De.child,Ae.memoizedProps=De.memoizedProps,Ae.memoizedState=De.memoizedState,Ae.updateQueue=De.updateQueue,q=De.dependencies,Ae.dependencies=q===null?null:{expirationTime:q.expirationTime,firstContext:q.firstContext,responders:q.responders}),Y=Y.sibling;On($n,$n.current&1|2,D),D=D.child;break e}T=T.sibling}}else{if(!Ae)if(T=fp(De),T!==null){if(D.effectTag|=64,Ae=!0,T=T.updateQueue,T!==null&&(D.updateQueue=T,D.effectTag|=4),Dc(Y,!0),Y.tail===null&&Y.tailMode==="hidden"&&!De.alternate){D=D.lastEffect=Y.lastEffect,D!==null&&(D.nextEffect=null);break}}else Li()>Y.tailExpiration&&1Y&&(Y=q),De>Y&&(Y=De),Ae=Ae.sibling;T.childExpirationTime=Y}if(D!==null)return D;S!==null&&(S.effectTag&2048)===0&&(S.firstEffect===null&&(S.firstEffect=Or.firstEffect),Or.lastEffect!==null&&(S.lastEffect!==null&&(S.lastEffect.nextEffect=Or.firstEffect),S.lastEffect=Or.lastEffect),1S?D:S}function Pu(S){var D=_o();return lo(99,hF.bind(null,S,D)),null}function hF(S,D){do Bp();while(Bg!==null);if((yr&(rs|qs))!==En)throw Error(n(327));var T=S.finishedWork,q=S.finishedExpirationTime;if(T===null)return null;if(S.finishedWork=null,S.finishedExpirationTime=0,T===S.current)throw Error(n(177));S.callbackNode=null,S.callbackExpirationTime=0,S.callbackPriority=90,S.nextKnownPendingLevel=0;var Y=bw(T);if(S.firstPendingTime=Y,q<=S.lastSuspendedTime?S.firstSuspendedTime=S.lastSuspendedTime=S.nextKnownPendingLevel=0:q<=S.firstSuspendedTime&&(S.firstSuspendedTime=q-1),q<=S.lastPingedTime&&(S.lastPingedTime=0),q<=S.lastExpiredTime&&(S.lastExpiredTime=0),S===gi&&(Or=gi=null,ns=0),1=T?ln(S,D,T):(On($n,$n.current&1,D),D=si(S,D,T),D!==null?D.sibling:null);On($n,$n.current&1,D);break;case 19:if(q=D.childExpirationTime>=T,(S.effectTag&64)!==0){if(q)return ja(S,D,T);D.effectTag|=64}if(Y=D.memoizedState,Y!==null&&(Y.rendering=null,Y.tail=null),On($n,$n.current,D),!q)return null}return si(S,D,T)}jo=!1}}else jo=!1;switch(D.expirationTime=0,D.tag){case 2:if(q=D.type,S!==null&&(S.alternate=null,D.alternate=null,D.effectTag|=2),S=D.pendingProps,Y=Oe(D,Mn.current),ds(D,T),Y=cg(null,D,q,S,Y,T),D.effectTag|=1,typeof Y=="object"&&Y!==null&&typeof Y.render=="function"&&Y.$$typeof===void 0){if(D.tag=1,yw(),ii(q)){var Ae=!0;Ac(D)}else Ae=!1;D.memoizedState=Y.state!==null&&Y.state!==void 0?Y.state:null;var De=q.getDerivedStateFromProps;typeof De=="function"&&er(D,q,De,S),Y.updater=$r,D.stateNode=Y,Y._reactInternalFiber=D,qo(D,q,S,T),D=yp(null,D,q,!0,Ae,T)}else D.tag=0,ws(null,D,Y,T),D=D.child;return D;case 16:if(Y=D.elementType,S!==null&&(S.alternate=null,D.alternate=null,D.effectTag|=2),S=D.pendingProps,me(Y),Y._status!==1)throw Y._result;switch(Y=Y._result,D.type=Y,Ae=D.tag=wF(Y),S=Ci(Y,S),Ae){case 0:D=LA(null,D,Y,S,T);break;case 1:D=mp(null,D,Y,S,T);break;case 11:D=Ii(null,D,Y,S,T);break;case 14:D=Qm(null,D,Y,Ci(Y.type,S),q,T);break;default:throw Error(n(306,Y,""))}return D;case 0:return q=D.type,Y=D.pendingProps,Y=D.elementType===q?Y:Ci(q,Y),LA(S,D,q,Y,T);case 1:return q=D.type,Y=D.pendingProps,Y=D.elementType===q?Y:Ci(q,Y),mp(S,D,q,Y,T);case 3:if(yg(D),q=D.updateQueue,q===null)throw Error(n(282));if(Y=D.memoizedState,Y=Y!==null?Y.element:null,ye(D,q,D.pendingProps,null,T),q=D.memoizedState.element,q===Y)mg(),D=si(S,D,T);else{if((Y=D.stateNode.hydrate)&&(y?(Bc=cu(D.stateNode.containerInfo),Aa=D,Y=Il=!0):Y=!1),Y)for(T=sg(D,null,q,T),D.child=T;T;)T.effectTag=T.effectTag&-3|1024,T=T.sibling;else ws(S,D,q,T),mg();D=D.child}return D;case 5:return Pm(D),S===null&&NA(D),q=D.type,Y=D.pendingProps,Ae=S!==null?S.memoizedProps:null,De=Y.children,ke(q,Y)?De=null:Ae!==null&&ke(q,Ae)&&(D.effectTag|=16),Go(S,D),D.mode&4&&T!==1&&xe(q,Y)?(D.expirationTime=D.childExpirationTime=1,D=null):(ws(S,D,De,T),D=D.child),D;case 6:return S===null&&NA(D),null;case 13:return ln(S,D,T);case 4:return og(D,D.stateNode.containerInfo),q=D.pendingProps,S===null?D.child=gu(D,null,q,T):ws(S,D,q,T),D.child;case 11:return q=D.type,Y=D.pendingProps,Y=D.elementType===q?Y:Ci(q,Y),Ii(S,D,q,Y,T);case 7:return ws(S,D,D.pendingProps,T),D.child;case 8:return ws(S,D,D.pendingProps.children,T),D.child;case 12:return ws(S,D,D.pendingProps.children,T),D.child;case 10:e:{if(q=D.type._context,Y=D.pendingProps,De=D.memoizedProps,Ae=Y.value,Ho(D,Ae),De!==null){var vt=De.value;if(Ae=hs(vt,Ae)?0:(typeof q._calculateChangedBits=="function"?q._calculateChangedBits(vt,Ae):1073741823)|0,Ae===0){if(De.children===Y.children&&!_i.current){D=si(S,D,T);break e}}else for(vt=D.child,vt!==null&&(vt.return=D);vt!==null;){var wt=vt.dependencies;if(wt!==null){De=vt.child;for(var xt=wt.firstContext;xt!==null;){if(xt.context===q&&(xt.observedBits&Ae)!==0){vt.tag===1&&(xt=ys(T,null),xt.tag=2,tt(vt,xt)),vt.expirationTime"u")return!1;var D=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(D.isDisabled||!D.supportsFiber)return!0;try{var T=D.inject(S);xw=function(q){try{D.onCommitFiberRoot(T,q,void 0,(q.current.effectTag&64)===64)}catch{}},kw=function(q){try{D.onCommitFiberUnmount(T,q)}catch{}}}catch{}return!0}function CF(S,D,T,q){this.tag=S,this.key=T,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=D,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=q,this.effectTag=0,this.lastEffect=this.firstEffect=this.nextEffect=null,this.childExpirationTime=this.expirationTime=0,this.alternate=null}function Dl(S,D,T,q){return new CF(S,D,T,q)}function Qw(S){return S=S.prototype,!(!S||!S.isReactComponent)}function wF(S){if(typeof S=="function")return Qw(S)?1:0;if(S!=null){if(S=S.$$typeof,S===L)return 11;if(S===te)return 14}return 2}function WA(S,D){var T=S.alternate;return T===null?(T=Dl(S.tag,D,S.key,S.mode),T.elementType=S.elementType,T.type=S.type,T.stateNode=S.stateNode,T.alternate=S,S.alternate=T):(T.pendingProps=D,T.effectTag=0,T.nextEffect=null,T.firstEffect=null,T.lastEffect=null),T.childExpirationTime=S.childExpirationTime,T.expirationTime=S.expirationTime,T.child=S.child,T.memoizedProps=S.memoizedProps,T.memoizedState=S.memoizedState,T.updateQueue=S.updateQueue,D=S.dependencies,T.dependencies=D===null?null:{expirationTime:D.expirationTime,firstContext:D.firstContext,responders:D.responders},T.sibling=S.sibling,T.index=S.index,T.ref=S.ref,T}function qm(S,D,T,q,Y,Ae){var De=2;if(q=S,typeof S=="function")Qw(S)&&(De=1);else if(typeof S=="string")De=5;else e:switch(S){case E:return bu(T.children,Y,Ae,D);case R:De=8,Y|=7;break;case I:De=8,Y|=1;break;case v:return S=Dl(12,T,D,Y|8),S.elementType=v,S.type=v,S.expirationTime=Ae,S;case U:return S=Dl(13,T,D,Y),S.type=U,S.elementType=U,S.expirationTime=Ae,S;case J:return S=Dl(19,T,D,Y),S.elementType=J,S.expirationTime=Ae,S;default:if(typeof S=="object"&&S!==null)switch(S.$$typeof){case x:De=10;break e;case C:De=9;break e;case L:De=11;break e;case te:De=14;break e;case ae:De=16,q=null;break e}throw Error(n(130,S==null?S:typeof S,""))}return D=Dl(De,T,D,Y),D.elementType=S,D.type=q,D.expirationTime=Ae,D}function bu(S,D,T,q){return S=Dl(7,S,q,D),S.expirationTime=T,S}function Fw(S,D,T){return S=Dl(6,S,null,D),S.expirationTime=T,S}function Rw(S,D,T){return D=Dl(4,S.children!==null?S.children:[],S.key,D),D.expirationTime=T,D.stateNode={containerInfo:S.containerInfo,pendingChildren:null,implementation:S.implementation},D}function IF(S,D,T){this.tag=D,this.current=null,this.containerInfo=S,this.pingCache=this.pendingChildren=null,this.finishedExpirationTime=0,this.finishedWork=null,this.timeoutHandle=qe,this.pendingContext=this.context=null,this.hydrate=T,this.callbackNode=null,this.callbackPriority=90,this.lastExpiredTime=this.lastPingedTime=this.nextKnownPendingLevel=this.lastSuspendedTime=this.firstSuspendedTime=this.firstPendingTime=0}function $v(S,D){var T=S.firstSuspendedTime;return S=S.lastSuspendedTime,T!==0&&T>=D&&S<=D}function KA(S,D){var T=S.firstSuspendedTime,q=S.lastSuspendedTime;TD||T===0)&&(S.lastSuspendedTime=D),D<=S.lastPingedTime&&(S.lastPingedTime=0),D<=S.lastExpiredTime&&(S.lastExpiredTime=0)}function eD(S,D){D>S.firstPendingTime&&(S.firstPendingTime=D);var T=S.firstSuspendedTime;T!==0&&(D>=T?S.firstSuspendedTime=S.lastSuspendedTime=S.nextKnownPendingLevel=0:D>=S.lastSuspendedTime&&(S.lastSuspendedTime=D+1),D>S.nextKnownPendingLevel&&(S.nextKnownPendingLevel=D))}function jm(S,D){var T=S.lastExpiredTime;(T===0||T>D)&&(S.lastExpiredTime=D)}function tD(S){var D=S._reactInternalFiber;if(D===void 0)throw typeof S.render=="function"?Error(n(188)):Error(n(268,Object.keys(S)));return S=Ee(D),S===null?null:S.stateNode}function rD(S,D){S=S.memoizedState,S!==null&&S.dehydrated!==null&&S.retryTime{"use strict";SEe.exports=DEe()});var xEe=_((yKt,bEe)=>{"use strict";var Hyt={ALIGN_COUNT:8,ALIGN_AUTO:0,ALIGN_FLEX_START:1,ALIGN_CENTER:2,ALIGN_FLEX_END:3,ALIGN_STRETCH:4,ALIGN_BASELINE:5,ALIGN_SPACE_BETWEEN:6,ALIGN_SPACE_AROUND:7,DIMENSION_COUNT:2,DIMENSION_WIDTH:0,DIMENSION_HEIGHT:1,DIRECTION_COUNT:3,DIRECTION_INHERIT:0,DIRECTION_LTR:1,DIRECTION_RTL:2,DISPLAY_COUNT:2,DISPLAY_FLEX:0,DISPLAY_NONE:1,EDGE_COUNT:9,EDGE_LEFT:0,EDGE_TOP:1,EDGE_RIGHT:2,EDGE_BOTTOM:3,EDGE_START:4,EDGE_END:5,EDGE_HORIZONTAL:6,EDGE_VERTICAL:7,EDGE_ALL:8,EXPERIMENTAL_FEATURE_COUNT:1,EXPERIMENTAL_FEATURE_WEB_FLEX_BASIS:0,FLEX_DIRECTION_COUNT:4,FLEX_DIRECTION_COLUMN:0,FLEX_DIRECTION_COLUMN_REVERSE:1,FLEX_DIRECTION_ROW:2,FLEX_DIRECTION_ROW_REVERSE:3,JUSTIFY_COUNT:6,JUSTIFY_FLEX_START:0,JUSTIFY_CENTER:1,JUSTIFY_FLEX_END:2,JUSTIFY_SPACE_BETWEEN:3,JUSTIFY_SPACE_AROUND:4,JUSTIFY_SPACE_EVENLY:5,LOG_LEVEL_COUNT:6,LOG_LEVEL_ERROR:0,LOG_LEVEL_WARN:1,LOG_LEVEL_INFO:2,LOG_LEVEL_DEBUG:3,LOG_LEVEL_VERBOSE:4,LOG_LEVEL_FATAL:5,MEASURE_MODE_COUNT:3,MEASURE_MODE_UNDEFINED:0,MEASURE_MODE_EXACTLY:1,MEASURE_MODE_AT_MOST:2,NODE_TYPE_COUNT:2,NODE_TYPE_DEFAULT:0,NODE_TYPE_TEXT:1,OVERFLOW_COUNT:3,OVERFLOW_VISIBLE:0,OVERFLOW_HIDDEN:1,OVERFLOW_SCROLL:2,POSITION_TYPE_COUNT:2,POSITION_TYPE_RELATIVE:0,POSITION_TYPE_ABSOLUTE:1,PRINT_OPTIONS_COUNT:3,PRINT_OPTIONS_LAYOUT:1,PRINT_OPTIONS_STYLE:2,PRINT_OPTIONS_CHILDREN:4,UNIT_COUNT:4,UNIT_UNDEFINED:0,UNIT_POINT:1,UNIT_PERCENT:2,UNIT_AUTO:3,WRAP_COUNT:3,WRAP_NO_WRAP:0,WRAP_WRAP:1,WRAP_WRAP_REVERSE:2};bEe.exports=Hyt});var REe=_((EKt,FEe)=>{"use strict";var qyt=Object.assign||function(t){for(var e=1;e"}}]),t}(),kEe=function(){Wk(t,null,[{key:"fromJS",value:function(r){var o=r.width,a=r.height;return new t(o,a)}}]);function t(e,r){b6(this,t),this.width=e,this.height=r}return Wk(t,[{key:"fromJS",value:function(r){r(this.width,this.height)}},{key:"toString",value:function(){return""}}]),t}(),QEe=function(){function t(e,r){b6(this,t),this.unit=e,this.value=r}return Wk(t,[{key:"fromJS",value:function(r){r(this.unit,this.value)}},{key:"toString",value:function(){switch(this.unit){case tu.UNIT_POINT:return String(this.value);case tu.UNIT_PERCENT:return this.value+"%";case tu.UNIT_AUTO:return"auto";default:return this.value+"?"}}},{key:"valueOf",value:function(){return this.value}}]),t}();FEe.exports=function(t,e){function r(u,A,p){var h=u[A];u[A]=function(){for(var E=arguments.length,I=Array(E),v=0;v1?I-1:0),x=1;x1&&arguments[1]!==void 0?arguments[1]:NaN,p=arguments.length>2&&arguments[2]!==void 0?arguments[2]:NaN,h=arguments.length>3&&arguments[3]!==void 0?arguments[3]:tu.DIRECTION_LTR;return u.call(this,A,p,h)}),qyt({Config:e.Config,Node:e.Node,Layout:t("Layout",jyt),Size:t("Size",kEe),Value:t("Value",QEe),getInstanceCount:function(){return e.getInstanceCount.apply(e,arguments)}},tu)}});var TEe=_((exports,module)=>{(function(t,e){typeof define=="function"&&define.amd?define([],function(){return e}):typeof module=="object"&&module.exports?module.exports=e:(t.nbind=t.nbind||{}).init=e})(exports,function(Module,cb){typeof Module=="function"&&(cb=Module,Module={}),Module.onRuntimeInitialized=function(t,e){return function(){t&&t.apply(this,arguments);try{Module.ccall("nbind_init")}catch(r){e(r);return}e(null,{bind:Module._nbind_value,reflect:Module.NBind.reflect,queryType:Module.NBind.queryType,toggleLightGC:Module.toggleLightGC,lib:Module})}}(Module.onRuntimeInitialized,cb);var Module;Module||(Module=(typeof Module<"u"?Module:null)||{});var moduleOverrides={};for(var key in Module)Module.hasOwnProperty(key)&&(moduleOverrides[key]=Module[key]);var ENVIRONMENT_IS_WEB=!1,ENVIRONMENT_IS_WORKER=!1,ENVIRONMENT_IS_NODE=!1,ENVIRONMENT_IS_SHELL=!1;if(Module.ENVIRONMENT)if(Module.ENVIRONMENT==="WEB")ENVIRONMENT_IS_WEB=!0;else if(Module.ENVIRONMENT==="WORKER")ENVIRONMENT_IS_WORKER=!0;else if(Module.ENVIRONMENT==="NODE")ENVIRONMENT_IS_NODE=!0;else if(Module.ENVIRONMENT==="SHELL")ENVIRONMENT_IS_SHELL=!0;else throw new Error("The provided Module['ENVIRONMENT'] value is not valid. It must be one of: WEB|WORKER|NODE|SHELL.");else ENVIRONMENT_IS_WEB=typeof window=="object",ENVIRONMENT_IS_WORKER=typeof importScripts=="function",ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof ve=="function"&&!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER,ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;if(ENVIRONMENT_IS_NODE){Module.print||(Module.print=console.log),Module.printErr||(Module.printErr=console.warn);var nodeFS,nodePath;Module.read=function(e,r){nodeFS||(nodeFS={}("")),nodePath||(nodePath={}("")),e=nodePath.normalize(e);var o=nodeFS.readFileSync(e);return r?o:o.toString()},Module.readBinary=function(e){var r=Module.read(e,!0);return r.buffer||(r=new Uint8Array(r)),assert(r.buffer),r},Module.load=function(e){globalEval(read(e))},Module.thisProgram||(process.argv.length>1?Module.thisProgram=process.argv[1].replace(/\\/g,"/"):Module.thisProgram="unknown-program"),Module.arguments=process.argv.slice(2),typeof module<"u"&&(module.exports=Module),Module.inspect=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_SHELL)Module.print||(Module.print=print),typeof printErr<"u"&&(Module.printErr=printErr),typeof read<"u"?Module.read=read:Module.read=function(){throw"no read() available"},Module.readBinary=function(e){if(typeof readbuffer=="function")return new Uint8Array(readbuffer(e));var r=read(e,"binary");return assert(typeof r=="object"),r},typeof scriptArgs<"u"?Module.arguments=scriptArgs:typeof arguments<"u"&&(Module.arguments=arguments),typeof quit=="function"&&(Module.quit=function(t,e){quit(t)});else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(Module.read=function(e){var r=new XMLHttpRequest;return r.open("GET",e,!1),r.send(null),r.responseText},ENVIRONMENT_IS_WORKER&&(Module.readBinary=function(e){var r=new XMLHttpRequest;return r.open("GET",e,!1),r.responseType="arraybuffer",r.send(null),new Uint8Array(r.response)}),Module.readAsync=function(e,r,o){var a=new XMLHttpRequest;a.open("GET",e,!0),a.responseType="arraybuffer",a.onload=function(){a.status==200||a.status==0&&a.response?r(a.response):o()},a.onerror=o,a.send(null)},typeof arguments<"u"&&(Module.arguments=arguments),typeof console<"u")Module.print||(Module.print=function(e){console.log(e)}),Module.printErr||(Module.printErr=function(e){console.warn(e)});else{var TRY_USE_DUMP=!1;Module.print||(Module.print=TRY_USE_DUMP&&typeof dump<"u"?function(t){dump(t)}:function(t){})}ENVIRONMENT_IS_WORKER&&(Module.load=importScripts),typeof Module.setWindowTitle>"u"&&(Module.setWindowTitle=function(t){document.title=t})}else throw"Unknown runtime environment. Where are we?";function globalEval(t){eval.call(null,t)}!Module.load&&Module.read&&(Module.load=function(e){globalEval(Module.read(e))}),Module.print||(Module.print=function(){}),Module.printErr||(Module.printErr=Module.print),Module.arguments||(Module.arguments=[]),Module.thisProgram||(Module.thisProgram="./this.program"),Module.quit||(Module.quit=function(t,e){throw e}),Module.print=Module.print,Module.printErr=Module.printErr,Module.preRun=[],Module.postRun=[];for(var key in moduleOverrides)moduleOverrides.hasOwnProperty(key)&&(Module[key]=moduleOverrides[key]);moduleOverrides=void 0;var Runtime={setTempRet0:function(t){return tempRet0=t,t},getTempRet0:function(){return tempRet0},stackSave:function(){return STACKTOP},stackRestore:function(t){STACKTOP=t},getNativeTypeSize:function(t){switch(t){case"i1":case"i8":return 1;case"i16":return 2;case"i32":return 4;case"i64":return 8;case"float":return 4;case"double":return 8;default:{if(t[t.length-1]==="*")return Runtime.QUANTUM_SIZE;if(t[0]==="i"){var e=parseInt(t.substr(1));return assert(e%8===0),e/8}else return 0}}},getNativeFieldSize:function(t){return Math.max(Runtime.getNativeTypeSize(t),Runtime.QUANTUM_SIZE)},STACK_ALIGN:16,prepVararg:function(t,e){return e==="double"||e==="i64"?t&7&&(assert((t&7)===4),t+=4):assert((t&3)===0),t},getAlignSize:function(t,e,r){return!r&&(t=="i64"||t=="double")?8:t?Math.min(e||(t?Runtime.getNativeFieldSize(t):0),Runtime.QUANTUM_SIZE):Math.min(e,8)},dynCall:function(t,e,r){return r&&r.length?Module["dynCall_"+t].apply(null,[e].concat(r)):Module["dynCall_"+t].call(null,e)},functionPointers:[],addFunction:function(t){for(var e=0;e>2],r=(e+t+15|0)&-16;if(HEAP32[DYNAMICTOP_PTR>>2]=r,r>=TOTAL_MEMORY){var o=enlargeMemory();if(!o)return HEAP32[DYNAMICTOP_PTR>>2]=e,0}return e},alignMemory:function(t,e){var r=t=Math.ceil(t/(e||16))*(e||16);return r},makeBigInt:function(t,e,r){var o=r?+(t>>>0)+ +(e>>>0)*4294967296:+(t>>>0)+ +(e|0)*4294967296;return o},GLOBAL_BASE:8,QUANTUM_SIZE:4,__dummy__:0};Module.Runtime=Runtime;var ABORT=0,EXITSTATUS=0;function assert(t,e){t||abort("Assertion failed: "+e)}function getCFunc(ident){var func=Module["_"+ident];if(!func)try{func=eval("_"+ident)}catch(t){}return assert(func,"Cannot call unknown function "+ident+" (perhaps LLVM optimizations or closure removed it?)"),func}var cwrap,ccall;(function(){var JSfuncs={stackSave:function(){Runtime.stackSave()},stackRestore:function(){Runtime.stackRestore()},arrayToC:function(t){var e=Runtime.stackAlloc(t.length);return writeArrayToMemory(t,e),e},stringToC:function(t){var e=0;if(t!=null&&t!==0){var r=(t.length<<2)+1;e=Runtime.stackAlloc(r),stringToUTF8(t,e,r)}return e}},toC={string:JSfuncs.stringToC,array:JSfuncs.arrayToC};ccall=function(e,r,o,a,n){var u=getCFunc(e),A=[],p=0;if(a)for(var h=0;h>0]=e;break;case"i8":HEAP8[t>>0]=e;break;case"i16":HEAP16[t>>1]=e;break;case"i32":HEAP32[t>>2]=e;break;case"i64":tempI64=[e>>>0,(tempDouble=e,+Math_abs(tempDouble)>=1?tempDouble>0?(Math_min(+Math_floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[t>>2]=tempI64[0],HEAP32[t+4>>2]=tempI64[1];break;case"float":HEAPF32[t>>2]=e;break;case"double":HEAPF64[t>>3]=e;break;default:abort("invalid type for setValue: "+r)}}Module.setValue=setValue;function getValue(t,e,r){switch(e=e||"i8",e.charAt(e.length-1)==="*"&&(e="i32"),e){case"i1":return HEAP8[t>>0];case"i8":return HEAP8[t>>0];case"i16":return HEAP16[t>>1];case"i32":return HEAP32[t>>2];case"i64":return HEAP32[t>>2];case"float":return HEAPF32[t>>2];case"double":return HEAPF64[t>>3];default:abort("invalid type for setValue: "+e)}return null}Module.getValue=getValue;var ALLOC_NORMAL=0,ALLOC_STACK=1,ALLOC_STATIC=2,ALLOC_DYNAMIC=3,ALLOC_NONE=4;Module.ALLOC_NORMAL=ALLOC_NORMAL,Module.ALLOC_STACK=ALLOC_STACK,Module.ALLOC_STATIC=ALLOC_STATIC,Module.ALLOC_DYNAMIC=ALLOC_DYNAMIC,Module.ALLOC_NONE=ALLOC_NONE;function allocate(t,e,r,o){var a,n;typeof t=="number"?(a=!0,n=t):(a=!1,n=t.length);var u=typeof e=="string"?e:null,A;if(r==ALLOC_NONE?A=o:A=[typeof _malloc=="function"?_malloc:Runtime.staticAlloc,Runtime.stackAlloc,Runtime.staticAlloc,Runtime.dynamicAlloc][r===void 0?ALLOC_STATIC:r](Math.max(n,u?1:e.length)),a){var o=A,p;for(assert((A&3)==0),p=A+(n&-4);o>2]=0;for(p=A+n;o>0]=0;return A}if(u==="i8")return t.subarray||t.slice?HEAPU8.set(t,A):HEAPU8.set(new Uint8Array(t),A),A;for(var h=0,E,I,v;h>0],r|=o,!(o==0&&!e||(a++,e&&a==e)););e||(e=a);var n="";if(r<128){for(var u=1024,A;e>0;)A=String.fromCharCode.apply(String,HEAPU8.subarray(t,t+Math.min(e,u))),n=n?n+A:A,t+=u,e-=u;return n}return Module.UTF8ToString(t)}Module.Pointer_stringify=Pointer_stringify;function AsciiToString(t){for(var e="";;){var r=HEAP8[t++>>0];if(!r)return e;e+=String.fromCharCode(r)}}Module.AsciiToString=AsciiToString;function stringToAscii(t,e){return writeAsciiToMemory(t,e,!1)}Module.stringToAscii=stringToAscii;var UTF8Decoder=typeof TextDecoder<"u"?new TextDecoder("utf8"):void 0;function UTF8ArrayToString(t,e){for(var r=e;t[r];)++r;if(r-e>16&&t.subarray&&UTF8Decoder)return UTF8Decoder.decode(t.subarray(e,r));for(var o,a,n,u,A,p,h="";;){if(o=t[e++],!o)return h;if(!(o&128)){h+=String.fromCharCode(o);continue}if(a=t[e++]&63,(o&224)==192){h+=String.fromCharCode((o&31)<<6|a);continue}if(n=t[e++]&63,(o&240)==224?o=(o&15)<<12|a<<6|n:(u=t[e++]&63,(o&248)==240?o=(o&7)<<18|a<<12|n<<6|u:(A=t[e++]&63,(o&252)==248?o=(o&3)<<24|a<<18|n<<12|u<<6|A:(p=t[e++]&63,o=(o&1)<<30|a<<24|n<<18|u<<12|A<<6|p))),o<65536)h+=String.fromCharCode(o);else{var E=o-65536;h+=String.fromCharCode(55296|E>>10,56320|E&1023)}}}Module.UTF8ArrayToString=UTF8ArrayToString;function UTF8ToString(t){return UTF8ArrayToString(HEAPU8,t)}Module.UTF8ToString=UTF8ToString;function stringToUTF8Array(t,e,r,o){if(!(o>0))return 0;for(var a=r,n=r+o-1,u=0;u=55296&&A<=57343&&(A=65536+((A&1023)<<10)|t.charCodeAt(++u)&1023),A<=127){if(r>=n)break;e[r++]=A}else if(A<=2047){if(r+1>=n)break;e[r++]=192|A>>6,e[r++]=128|A&63}else if(A<=65535){if(r+2>=n)break;e[r++]=224|A>>12,e[r++]=128|A>>6&63,e[r++]=128|A&63}else if(A<=2097151){if(r+3>=n)break;e[r++]=240|A>>18,e[r++]=128|A>>12&63,e[r++]=128|A>>6&63,e[r++]=128|A&63}else if(A<=67108863){if(r+4>=n)break;e[r++]=248|A>>24,e[r++]=128|A>>18&63,e[r++]=128|A>>12&63,e[r++]=128|A>>6&63,e[r++]=128|A&63}else{if(r+5>=n)break;e[r++]=252|A>>30,e[r++]=128|A>>24&63,e[r++]=128|A>>18&63,e[r++]=128|A>>12&63,e[r++]=128|A>>6&63,e[r++]=128|A&63}}return e[r]=0,r-a}Module.stringToUTF8Array=stringToUTF8Array;function stringToUTF8(t,e,r){return stringToUTF8Array(t,HEAPU8,e,r)}Module.stringToUTF8=stringToUTF8;function lengthBytesUTF8(t){for(var e=0,r=0;r=55296&&o<=57343&&(o=65536+((o&1023)<<10)|t.charCodeAt(++r)&1023),o<=127?++e:o<=2047?e+=2:o<=65535?e+=3:o<=2097151?e+=4:o<=67108863?e+=5:e+=6}return e}Module.lengthBytesUTF8=lengthBytesUTF8;var UTF16Decoder=typeof TextDecoder<"u"?new TextDecoder("utf-16le"):void 0;function demangle(t){var e=Module.___cxa_demangle||Module.__cxa_demangle;if(e){try{var r=t.substr(1),o=lengthBytesUTF8(r)+1,a=_malloc(o);stringToUTF8(r,a,o);var n=_malloc(4),u=e(a,0,0,n);if(getValue(n,"i32")===0&&u)return Pointer_stringify(u)}catch{}finally{a&&_free(a),n&&_free(n),u&&_free(u)}return t}return Runtime.warnOnce("warning: build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling"),t}function demangleAll(t){var e=/__Z[\w\d_]+/g;return t.replace(e,function(r){var o=demangle(r);return r===o?r:r+" ["+o+"]"})}function jsStackTrace(){var t=new Error;if(!t.stack){try{throw new Error(0)}catch(e){t=e}if(!t.stack)return"(no stack trace available)"}return t.stack.toString()}function stackTrace(){var t=jsStackTrace();return Module.extraStackTrace&&(t+=` +`+Module.extraStackTrace()),demangleAll(t)}Module.stackTrace=stackTrace;var HEAP,buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferViews(){Module.HEAP8=HEAP8=new Int8Array(buffer),Module.HEAP16=HEAP16=new Int16Array(buffer),Module.HEAP32=HEAP32=new Int32Array(buffer),Module.HEAPU8=HEAPU8=new Uint8Array(buffer),Module.HEAPU16=HEAPU16=new Uint16Array(buffer),Module.HEAPU32=HEAPU32=new Uint32Array(buffer),Module.HEAPF32=HEAPF32=new Float32Array(buffer),Module.HEAPF64=HEAPF64=new Float64Array(buffer)}var STATIC_BASE,STATICTOP,staticSealed,STACK_BASE,STACKTOP,STACK_MAX,DYNAMIC_BASE,DYNAMICTOP_PTR;STATIC_BASE=STATICTOP=STACK_BASE=STACKTOP=STACK_MAX=DYNAMIC_BASE=DYNAMICTOP_PTR=0,staticSealed=!1;function abortOnCannotGrowMemory(){abort("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+TOTAL_MEMORY+", (2) compile with -s ALLOW_MEMORY_GROWTH=1 which allows increasing the size at runtime but prevents some optimizations, (3) set Module.TOTAL_MEMORY to a higher value before the program runs, or (4) if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 ")}function enlargeMemory(){abortOnCannotGrowMemory()}var TOTAL_STACK=Module.TOTAL_STACK||5242880,TOTAL_MEMORY=Module.TOTAL_MEMORY||134217728;TOTAL_MEMORY0;){var e=t.shift();if(typeof e=="function"){e();continue}var r=e.func;typeof r=="number"?e.arg===void 0?Module.dynCall_v(r):Module.dynCall_vi(r,e.arg):r(e.arg===void 0?null:e.arg)}}var __ATPRERUN__=[],__ATINIT__=[],__ATMAIN__=[],__ATEXIT__=[],__ATPOSTRUN__=[],runtimeInitialized=!1,runtimeExited=!1;function preRun(){if(Module.preRun)for(typeof Module.preRun=="function"&&(Module.preRun=[Module.preRun]);Module.preRun.length;)addOnPreRun(Module.preRun.shift());callRuntimeCallbacks(__ATPRERUN__)}function ensureInitRuntime(){runtimeInitialized||(runtimeInitialized=!0,callRuntimeCallbacks(__ATINIT__))}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){callRuntimeCallbacks(__ATEXIT__),runtimeExited=!0}function postRun(){if(Module.postRun)for(typeof Module.postRun=="function"&&(Module.postRun=[Module.postRun]);Module.postRun.length;)addOnPostRun(Module.postRun.shift());callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(t){__ATPRERUN__.unshift(t)}Module.addOnPreRun=addOnPreRun;function addOnInit(t){__ATINIT__.unshift(t)}Module.addOnInit=addOnInit;function addOnPreMain(t){__ATMAIN__.unshift(t)}Module.addOnPreMain=addOnPreMain;function addOnExit(t){__ATEXIT__.unshift(t)}Module.addOnExit=addOnExit;function addOnPostRun(t){__ATPOSTRUN__.unshift(t)}Module.addOnPostRun=addOnPostRun;function intArrayFromString(t,e,r){var o=r>0?r:lengthBytesUTF8(t)+1,a=new Array(o),n=stringToUTF8Array(t,a,0,a.length);return e&&(a.length=n),a}Module.intArrayFromString=intArrayFromString;function intArrayToString(t){for(var e=[],r=0;r255&&(o&=255),e.push(String.fromCharCode(o))}return e.join("")}Module.intArrayToString=intArrayToString;function writeStringToMemory(t,e,r){Runtime.warnOnce("writeStringToMemory is deprecated and should not be called! Use stringToUTF8() instead!");var o,a;r&&(a=e+lengthBytesUTF8(t),o=HEAP8[a]),stringToUTF8(t,e,1/0),r&&(HEAP8[a]=o)}Module.writeStringToMemory=writeStringToMemory;function writeArrayToMemory(t,e){HEAP8.set(t,e)}Module.writeArrayToMemory=writeArrayToMemory;function writeAsciiToMemory(t,e,r){for(var o=0;o>0]=t.charCodeAt(o);r||(HEAP8[e>>0]=0)}if(Module.writeAsciiToMemory=writeAsciiToMemory,(!Math.imul||Math.imul(4294967295,5)!==-5)&&(Math.imul=function t(e,r){var o=e>>>16,a=e&65535,n=r>>>16,u=r&65535;return a*u+(o*u+a*n<<16)|0}),Math.imul=Math.imul,!Math.fround){var froundBuffer=new Float32Array(1);Math.fround=function(t){return froundBuffer[0]=t,froundBuffer[0]}}Math.fround=Math.fround,Math.clz32||(Math.clz32=function(t){t=t>>>0;for(var e=0;e<32;e++)if(t&1<<31-e)return e;return 32}),Math.clz32=Math.clz32,Math.trunc||(Math.trunc=function(t){return t<0?Math.ceil(t):Math.floor(t)}),Math.trunc=Math.trunc;var Math_abs=Math.abs,Math_cos=Math.cos,Math_sin=Math.sin,Math_tan=Math.tan,Math_acos=Math.acos,Math_asin=Math.asin,Math_atan=Math.atan,Math_atan2=Math.atan2,Math_exp=Math.exp,Math_log=Math.log,Math_sqrt=Math.sqrt,Math_ceil=Math.ceil,Math_floor=Math.floor,Math_pow=Math.pow,Math_imul=Math.imul,Math_fround=Math.fround,Math_round=Math.round,Math_min=Math.min,Math_clz32=Math.clz32,Math_trunc=Math.trunc,runDependencies=0,runDependencyWatcher=null,dependenciesFulfilled=null;function getUniqueRunDependency(t){return t}function addRunDependency(t){runDependencies++,Module.monitorRunDependencies&&Module.monitorRunDependencies(runDependencies)}Module.addRunDependency=addRunDependency;function removeRunDependency(t){if(runDependencies--,Module.monitorRunDependencies&&Module.monitorRunDependencies(runDependencies),runDependencies==0&&(runDependencyWatcher!==null&&(clearInterval(runDependencyWatcher),runDependencyWatcher=null),dependenciesFulfilled)){var e=dependenciesFulfilled;dependenciesFulfilled=null,e()}}Module.removeRunDependency=removeRunDependency,Module.preloadedImages={},Module.preloadedAudios={};var ASM_CONSTS=[function(t,e,r,o,a,n,u,A){return _nbind.callbackSignatureList[t].apply(this,arguments)}];function _emscripten_asm_const_iiiiiiii(t,e,r,o,a,n,u,A){return ASM_CONSTS[t](e,r,o,a,n,u,A)}function _emscripten_asm_const_iiiii(t,e,r,o,a){return ASM_CONSTS[t](e,r,o,a)}function _emscripten_asm_const_iiidddddd(t,e,r,o,a,n,u,A,p){return ASM_CONSTS[t](e,r,o,a,n,u,A,p)}function _emscripten_asm_const_iiididi(t,e,r,o,a,n,u){return ASM_CONSTS[t](e,r,o,a,n,u)}function _emscripten_asm_const_iiii(t,e,r,o){return ASM_CONSTS[t](e,r,o)}function _emscripten_asm_const_iiiid(t,e,r,o,a){return ASM_CONSTS[t](e,r,o,a)}function _emscripten_asm_const_iiiiii(t,e,r,o,a,n){return ASM_CONSTS[t](e,r,o,a,n)}STATIC_BASE=Runtime.GLOBAL_BASE,STATICTOP=STATIC_BASE+12800,__ATINIT__.push({func:function(){__GLOBAL__sub_I_Yoga_cpp()}},{func:function(){__GLOBAL__sub_I_nbind_cc()}},{func:function(){__GLOBAL__sub_I_common_cc()}},{func:function(){__GLOBAL__sub_I_Binding_cc()}}),allocate([0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,127,0,0,192,127,0,0,192,127,0,0,192,127,3,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,3,0,0,0,0,0,192,127,3,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,127,0,0,192,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,127,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,127,0,0,192,127,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,128,191,0,0,128,191,0,0,192,127,0,0,0,0,0,0,0,0,0,0,128,63,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,3,0,0,0,1,0,0,0,2,0,0,0,0,0,0,0,190,12,0,0,200,12,0,0,208,12,0,0,216,12,0,0,230,12,0,0,242,12,0,0,1,0,0,0,3,0,0,0,0,0,0,0,2,0,0,0,0,0,192,127,3,0,0,0,180,45,0,0,181,45,0,0,182,45,0,0,181,45,0,0,182,45,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,1,0,0,0,4,0,0,0,183,45,0,0,181,45,0,0,181,45,0,0,181,45,0,0,181,45,0,0,181,45,0,0,181,45,0,0,184,45,0,0,185,45,0,0,181,45,0,0,181,45,0,0,182,45,0,0,186,45,0,0,185,45,0,0,148,4,0,0,3,0,0,0,187,45,0,0,164,4,0,0,188,45,0,0,2,0,0,0,189,45,0,0,164,4,0,0,188,45,0,0,185,45,0,0,164,4,0,0,185,45,0,0,164,4,0,0,188,45,0,0,181,45,0,0,182,45,0,0,181,45,0,0,0,0,0,0,0,0,0,0,1,0,0,0,5,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,183,45,0,0,182,45,0,0,181,45,0,0,190,45,0,0,190,45,0,0,182,45,0,0,182,45,0,0,185,45,0,0,181,45,0,0,185,45,0,0,182,45,0,0,181,45,0,0,185,45,0,0,182,45,0,0,185,45,0,0,48,5,0,0,3,0,0,0,56,5,0,0,1,0,0,0,189,45,0,0,185,45,0,0,164,4,0,0,76,5,0,0,2,0,0,0,191,45,0,0,186,45,0,0,182,45,0,0,185,45,0,0,192,45,0,0,185,45,0,0,182,45,0,0,186,45,0,0,185,45,0,0,76,5,0,0,76,5,0,0,136,5,0,0,182,45,0,0,181,45,0,0,2,0,0,0,190,45,0,0,136,5,0,0,56,19,0,0,156,5,0,0,2,0,0,0,184,45,0,0,0,0,0,0,0,0,0,0,1,0,0,0,8,0,0,0,9,0,0,0,1,0,0,0,10,0,0,0,204,5,0,0,181,45,0,0,181,45,0,0,2,0,0,0,180,45,0,0,204,5,0,0,2,0,0,0,195,45,0,0,236,5,0,0,97,19,0,0,198,45,0,0,211,45,0,0,212,45,0,0,213,45,0,0,214,45,0,0,215,45,0,0,188,45,0,0,182,45,0,0,216,45,0,0,217,45,0,0,218,45,0,0,219,45,0,0,192,45,0,0,181,45,0,0,0,0,0,0,185,45,0,0,110,19,0,0,186,45,0,0,115,19,0,0,221,45,0,0,120,19,0,0,148,4,0,0,132,19,0,0,96,6,0,0,145,19,0,0,222,45,0,0,164,19,0,0,223,45,0,0,173,19,0,0,0,0,0,0,3,0,0,0,104,6,0,0,1,0,0,0,187,45,0,0,0,0,0,0,0,0,0,0,1,0,0,0,11,0,0,0,12,0,0,0,1,0,0,0,13,0,0,0,185,45,0,0,224,45,0,0,164,6,0,0,188,45,0,0,172,6,0,0,180,6,0,0,2,0,0,0,188,6,0,0,7,0,0,0,224,45,0,0,7,0,0,0,164,6,0,0,1,0,0,0,213,45,0,0,185,45,0,0,224,45,0,0,172,6,0,0,185,45,0,0,224,45,0,0,164,6,0,0,185,45,0,0,224,45,0,0,211,45,0,0,211,45,0,0,222,45,0,0,211,45,0,0,224,45,0,0,222,45,0,0,211,45,0,0,224,45,0,0,172,6,0,0,222,45,0,0,211,45,0,0,224,45,0,0,188,45,0,0,222,45,0,0,211,45,0,0,40,7,0,0,188,45,0,0,2,0,0,0,224,45,0,0,185,45,0,0,188,45,0,0,188,45,0,0,188,45,0,0,188,45,0,0,222,45,0,0,224,45,0,0,148,4,0,0,185,45,0,0,148,4,0,0,148,4,0,0,148,4,0,0,148,4,0,0,148,4,0,0,185,45,0,0,164,6,0,0,148,4,0,0,0,0,0,0,0,0,0,0,1,0,0,0,14,0,0,0,15,0,0,0,1,0,0,0,16,0,0,0,148,7,0,0,2,0,0,0,225,45,0,0,183,45,0,0,188,45,0,0,168,7,0,0,5,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,234,45,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,148,45,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,28,9,0,0,5,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,2,0,0,0,242,45,0,0,0,4,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,67,111,117,108,100,32,110,111,116,32,97,108,108,111,99,97,116,101,32,109,101,109,111,114,121,32,102,111,114,32,110,111,100,101,0,67,97,110,110,111,116,32,114,101,115,101,116,32,97,32,110,111,100,101,32,119,104,105,99,104,32,115,116,105,108,108,32,104,97,115,32,99,104,105,108,100,114,101,110,32,97,116,116,97,99,104,101,100,0,67,97,110,110,111,116,32,114,101,115,101,116,32,97,32,110,111,100,101,32,115,116,105,108,108,32,97,116,116,97,99,104,101,100,32,116,111,32,97,32,112,97,114,101,110,116,0,67,111,117,108,100,32,110,111,116,32,97,108,108,111,99,97,116,101,32,109,101,109,111,114,121,32,102,111,114,32,99,111,110,102,105,103,0,67,97,110,110,111,116,32,115,101,116,32,109,101,97,115,117,114,101,32,102,117,110,99,116,105,111,110,58,32,78,111,100,101,115,32,119,105,116,104,32,109,101,97,115,117,114,101,32,102,117,110,99,116,105,111,110,115,32,99,97,110,110,111,116,32,104,97,118,101,32,99,104,105,108,100,114,101,110,46,0,67,104,105,108,100,32,97,108,114,101,97,100,121,32,104,97,115,32,97,32,112,97,114,101,110,116,44,32,105,116,32,109,117,115,116,32,98,101,32,114,101,109,111,118,101,100,32,102,105,114,115,116,46,0,67,97,110,110,111,116,32,97,100,100,32,99,104,105,108,100,58,32,78,111,100,101,115,32,119,105,116,104,32,109,101,97,115,117,114,101,32,102,117,110,99,116,105,111,110,115,32,99,97,110,110,111,116,32,104,97,118,101,32,99,104,105,108,100,114,101,110,46,0,79,110,108,121,32,108,101,97,102,32,110,111,100,101,115,32,119,105,116,104,32,99,117,115,116,111,109,32,109,101,97,115,117,114,101,32,102,117,110,99,116,105,111,110,115,115,104,111,117,108,100,32,109,97,110,117,97,108,108,121,32,109,97,114,107,32,116,104,101,109,115,101,108,118,101,115,32,97,115,32,100,105,114,116,121,0,67,97,110,110,111,116,32,103,101,116,32,108,97,121,111,117,116,32,112,114,111,112,101,114,116,105,101,115,32,111,102,32,109,117,108,116,105,45,101,100,103,101,32,115,104,111,114,116,104,97,110,100,115,0,37,115,37,100,46,123,91,115,107,105,112,112,101,100,93,32,0,119,109,58,32,37,115,44,32,104,109,58,32,37,115,44,32,97,119,58,32,37,102,32,97,104,58,32,37,102,32,61,62,32,100,58,32,40,37,102,44,32,37,102,41,32,37,115,10,0,37,115,37,100,46,123,37,115,0,42,0,119,109,58,32,37,115,44,32,104,109,58,32,37,115,44,32,97,119,58,32,37,102,32,97,104,58,32,37,102,32,37,115,10,0,37,115,37,100,46,125,37,115,0,119,109,58,32,37,115,44,32,104,109,58,32,37,115,44,32,100,58,32,40,37,102,44,32,37,102,41,32,37,115,10,0,79,117,116,32,111,102,32,99,97,99,104,101,32,101,110,116,114,105,101,115,33,10,0,83,99,97,108,101,32,102,97,99,116,111,114,32,115,104,111,117,108,100,32,110,111,116,32,98,101,32,108,101,115,115,32,116,104,97,110,32,122,101,114,111,0,105,110,105,116,105,97,108,0,37,115,10,0,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,0,85,78,68,69,70,73,78,69,68,0,69,88,65,67,84,76,89,0,65,84,95,77,79,83,84,0,76,65,89,95,85,78,68,69,70,73,78,69,68,0,76,65,89,95,69,88,65,67,84,76,89,0,76,65,89,95,65,84,95,77,79,83,84,0,97,118,97,105,108,97,98,108,101,87,105,100,116,104,32,105,115,32,105,110,100,101,102,105,110,105,116,101,32,115,111,32,119,105,100,116,104,77,101,97,115,117,114,101,77,111,100,101,32,109,117,115,116,32,98,101,32,89,71,77,101,97,115,117,114,101,77,111,100,101,85,110,100,101,102,105,110,101,100,0,97,118,97,105,108,97,98,108,101,72,101,105,103,104,116,32,105,115,32,105,110,100,101,102,105,110,105,116,101,32,115,111,32,104,101,105,103,104,116,77,101,97,115,117,114,101,77,111,100,101,32,109,117,115,116,32,98,101,32,89,71,77,101,97,115,117,114,101,77,111,100,101,85,110,100,101,102,105,110,101,100,0,102,108,101,120,0,115,116,114,101,116,99,104,0,109,117,108,116,105,108,105,110,101,45,115,116,114,101,116,99,104,0,69,120,112,101,99,116,101,100,32,110,111,100,101,32,116,111,32,104,97,118,101,32,99,117,115,116,111,109,32,109,101,97,115,117,114,101,32,102,117,110,99,116,105,111,110,0,109,101,97,115,117,114,101,0,69,120,112,101,99,116,32,99,117,115,116,111,109,32,98,97,115,101,108,105,110,101,32,102,117,110,99,116,105,111,110,32,116,111,32,110,111,116,32,114,101,116,117,114,110,32,78,97,78,0,97,98,115,45,109,101,97,115,117,114,101,0,97,98,115,45,108,97,121,111,117,116,0,78,111,100,101,0,99,114,101,97,116,101,68,101,102,97,117,108,116,0,99,114,101,97,116,101,87,105,116,104,67,111,110,102,105,103,0,100,101,115,116,114,111,121,0,114,101,115,101,116,0,99,111,112,121,83,116,121,108,101,0,115,101,116,80,111,115,105,116,105,111,110,84,121,112,101,0,115,101,116,80,111,115,105,116,105,111,110,0,115,101,116,80,111,115,105,116,105,111,110,80,101,114,99,101,110,116,0,115,101,116,65,108,105,103,110,67,111,110,116,101,110,116,0,115,101,116,65,108,105,103,110,73,116,101,109,115,0,115,101,116,65,108,105,103,110,83,101,108,102,0,115,101,116,70,108,101,120,68,105,114,101,99,116,105,111,110,0,115,101,116,70,108,101,120,87,114,97,112,0,115,101,116,74,117,115,116,105,102,121,67,111,110,116,101,110,116,0,115,101,116,77,97,114,103,105,110,0,115,101,116,77,97,114,103,105,110,80,101,114,99,101,110,116,0,115,101,116,77,97,114,103,105,110,65,117,116,111,0,115,101,116,79,118,101,114,102,108,111,119,0,115,101,116,68,105,115,112,108,97,121,0,115,101,116,70,108,101,120,0,115,101,116,70,108,101,120,66,97,115,105,115,0,115,101,116,70,108,101,120,66,97,115,105,115,80,101,114,99,101,110,116,0,115,101,116,70,108,101,120,71,114,111,119,0,115,101,116,70,108,101,120,83,104,114,105,110,107,0,115,101,116,87,105,100,116,104,0,115,101,116,87,105,100,116,104,80,101,114,99,101,110,116,0,115,101,116,87,105,100,116,104,65,117,116,111,0,115,101,116,72,101,105,103,104,116,0,115,101,116,72,101,105,103,104,116,80,101,114,99,101,110,116,0,115,101,116,72,101,105,103,104,116,65,117,116,111,0,115,101,116,77,105,110,87,105,100,116,104,0,115,101,116,77,105,110,87,105,100,116,104,80,101,114,99,101,110,116,0,115,101,116,77,105,110,72,101,105,103,104,116,0,115,101,116,77,105,110,72,101,105,103,104,116,80,101,114,99,101,110,116,0,115,101,116,77,97,120,87,105,100,116,104,0,115,101,116,77,97,120,87,105,100,116,104,80,101,114,99,101,110,116,0,115,101,116,77,97,120,72,101,105,103,104,116,0,115,101,116,77,97,120,72,101,105,103,104,116,80,101,114,99,101,110,116,0,115,101,116,65,115,112,101,99,116,82,97,116,105,111,0,115,101,116,66,111,114,100,101,114,0,115,101,116,80,97,100,100,105,110,103,0,115,101,116,80,97,100,100,105,110,103,80,101,114,99,101,110,116,0,103,101,116,80,111,115,105,116,105,111,110,84,121,112,101,0,103,101,116,80,111,115,105,116,105,111,110,0,103,101,116,65,108,105,103,110,67,111,110,116,101,110,116,0,103,101,116,65,108,105,103,110,73,116,101,109,115,0,103,101,116,65,108,105,103,110,83,101,108,102,0,103,101,116,70,108,101,120,68,105,114,101,99,116,105,111,110,0,103,101,116,70,108,101,120,87,114,97,112,0,103,101,116,74,117,115,116,105,102,121,67,111,110,116,101,110,116,0,103,101,116,77,97,114,103,105,110,0,103,101,116,70,108,101,120,66,97,115,105,115,0,103,101,116,70,108,101,120,71,114,111,119,0,103,101,116,70,108,101,120,83,104,114,105,110,107,0,103,101,116,87,105,100,116,104,0,103,101,116,72,101,105,103,104,116,0,103,101,116,77,105,110,87,105,100,116,104,0,103,101,116,77,105,110,72,101,105,103,104,116,0,103,101,116,77,97,120,87,105,100,116,104,0,103,101,116,77,97,120,72,101,105,103,104,116,0,103,101,116,65,115,112,101,99,116,82,97,116,105,111,0,103,101,116,66,111,114,100,101,114,0,103,101,116,79,118,101,114,102,108,111,119,0,103,101,116,68,105,115,112,108,97,121,0,103,101,116,80,97,100,100,105,110,103,0,105,110,115,101,114,116,67,104,105,108,100,0,114,101,109,111,118,101,67,104,105,108,100,0,103,101,116,67,104,105,108,100,67,111,117,110,116,0,103,101,116,80,97,114,101,110,116,0,103,101,116,67,104,105,108,100,0,115,101,116,77,101,97,115,117,114,101,70,117,110,99,0,117,110,115,101,116,77,101,97,115,117,114,101,70,117,110,99,0,109,97,114,107,68,105,114,116,121,0,105,115,68,105,114,116,121,0,99,97,108,99,117,108,97,116,101,76,97,121,111,117,116,0,103,101,116,67,111,109,112,117,116,101,100,76,101,102,116,0,103,101,116,67,111,109,112,117,116,101,100,82,105,103,104,116,0,103,101,116,67,111,109,112,117,116,101,100,84,111,112,0,103,101,116,67,111,109,112,117,116,101,100,66,111,116,116,111,109,0,103,101,116,67,111,109,112,117,116,101,100,87,105,100,116,104,0,103,101,116,67,111,109,112,117,116,101,100,72,101,105,103,104,116,0,103,101,116,67,111,109,112,117,116,101,100,76,97,121,111,117,116,0,103,101,116,67,111,109,112,117,116,101,100,77,97,114,103,105,110,0,103,101,116,67,111,109,112,117,116,101,100,66,111,114,100,101,114,0,103,101,116,67,111,109,112,117,116,101,100,80,97,100,100,105,110,103,0,67,111,110,102,105,103,0,99,114,101,97,116,101,0,115,101,116,69,120,112,101,114,105,109,101,110,116,97,108,70,101,97,116,117,114,101,69,110,97,98,108,101,100,0,115,101,116,80,111,105,110,116,83,99,97,108,101,70,97,99,116,111,114,0,105,115,69,120,112,101,114,105,109,101,110,116,97,108,70,101,97,116,117,114,101,69,110,97,98,108,101,100,0,86,97,108,117,101,0,76,97,121,111,117,116,0,83,105,122,101,0,103,101,116,73,110,115,116,97,110,99,101,67,111,117,110,116,0,73,110,116,54,52,0,1,1,1,2,2,4,4,4,4,8,8,4,8,118,111,105,100,0,98,111,111,108,0,115,116,100,58,58,115,116,114,105,110,103,0,99,98,70,117,110,99,116,105,111,110,32,38,0,99,111,110,115,116,32,99,98,70,117,110,99,116,105,111,110,32,38,0,69,120,116,101,114,110,97,108,0,66,117,102,102,101,114,0,78,66,105,110,100,73,68,0,78,66,105,110,100,0,98,105,110,100,95,118,97,108,117,101,0,114,101,102,108,101,99,116,0,113,117,101,114,121,84,121,112,101,0,108,97,108,108,111,99,0,108,114,101,115,101,116,0,123,114,101,116,117,114,110,40,95,110,98,105,110,100,46,99,97,108,108,98,97,99,107,83,105,103,110,97,116,117,114,101,76,105,115,116,91,36,48,93,46,97,112,112,108,121,40,116,104,105,115,44,97,114,103,117,109,101,110,116,115,41,41,59,125,0,95,110,98,105,110,100,95,110,101,119,0,17,0,10,0,17,17,17,0,0,0,0,5,0,0,0,0,0,0,9,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,15,10,17,17,17,3,10,7,0,1,19,9,11,11,0,0,9,6,11,0,0,11,0,6,17,0,0,0,17,17,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,10,10,17,17,17,0,10,0,0,2,0,9,11,0,0,0,9,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,0,0,0,0,13,0,0,0,4,13,0,0,0,0,9,14,0,0,0,0,0,14,0,0,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,15,0,0,0,0,15,0,0,0,0,9,16,0,0,0,0,0,16,0,0,16,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,10,0,0,0,0,9,11,0,0,0,0,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,45,43,32,32,32,48,88,48,120,0,40,110,117,108,108,41,0,45,48,88,43,48,88,32,48,88,45,48,120,43,48,120,32,48,120,0,105,110,102,0,73,78,70,0,110,97,110,0,78,65,78,0,48,49,50,51,52,53,54,55,56,57,65,66,67,68,69,70,46,0,84,33,34,25,13,1,2,3,17,75,28,12,16,4,11,29,18,30,39,104,110,111,112,113,98,32,5,6,15,19,20,21,26,8,22,7,40,36,23,24,9,10,14,27,31,37,35,131,130,125,38,42,43,60,61,62,63,67,71,74,77,88,89,90,91,92,93,94,95,96,97,99,100,101,102,103,105,106,107,108,114,115,116,121,122,123,124,0,73,108,108,101,103,97,108,32,98,121,116,101,32,115,101,113,117,101,110,99,101,0,68,111,109,97,105,110,32,101,114,114,111,114,0,82,101,115,117,108,116,32,110,111,116,32,114,101,112,114,101,115,101,110,116,97,98,108,101,0,78,111,116,32,97,32,116,116,121,0,80,101,114,109,105,115,115,105,111,110,32,100,101,110,105,101,100,0,79,112,101,114,97,116,105,111,110,32,110,111,116,32,112,101,114,109,105,116,116,101,100,0,78,111,32,115,117,99,104,32,102,105,108,101,32,111,114,32,100,105,114,101,99,116,111,114,121,0,78,111,32,115,117,99,104,32,112,114,111,99,101,115,115,0,70,105,108,101,32,101,120,105,115,116,115,0,86,97,108,117,101,32,116,111,111,32,108,97,114,103,101,32,102,111,114,32,100,97,116,97,32,116,121,112,101,0,78,111,32,115,112,97,99,101,32,108,101,102,116,32,111,110,32,100,101,118,105,99,101,0,79,117,116,32,111,102,32,109,101,109,111,114,121,0,82,101,115,111,117,114,99,101,32,98,117,115,121,0,73,110,116,101,114,114,117,112,116,101,100,32,115,121,115,116,101,109,32,99,97,108,108,0,82,101,115,111,117,114,99,101,32,116,101,109,112,111,114,97,114,105,108,121,32,117,110,97,118,97,105,108,97,98,108,101,0,73,110,118,97,108,105,100,32,115,101,101,107,0,67,114,111,115,115,45,100,101,118,105,99,101,32,108,105,110,107,0,82,101,97,100,45,111,110,108,121,32,102,105,108,101,32,115,121,115,116,101,109,0,68,105,114,101,99,116,111,114,121,32,110,111,116,32,101,109,112,116,121,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,112,101,101,114,0,79,112,101,114,97,116,105,111,110,32,116,105,109,101,100,32,111,117,116,0,67,111,110,110,101,99,116,105,111,110,32,114,101,102,117,115,101,100,0,72,111,115,116,32,105,115,32,100,111,119,110,0,72,111,115,116,32,105,115,32,117,110,114,101,97,99,104,97,98,108,101,0,65,100,100,114,101,115,115,32,105,110,32,117,115,101,0,66,114,111,107,101,110,32,112,105,112,101,0,73,47,79,32,101,114,114,111,114,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,32,111,114,32,97,100,100,114,101,115,115,0,66,108,111,99,107,32,100,101,118,105,99,101,32,114,101,113,117,105,114,101,100,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,0,78,111,116,32,97,32,100,105,114,101,99,116,111,114,121,0,73,115,32,97,32,100,105,114,101,99,116,111,114,121,0,84,101,120,116,32,102,105,108,101,32,98,117,115,121,0,69,120,101,99,32,102,111,114,109,97,116,32,101,114,114,111,114,0,73,110,118,97,108,105,100,32,97,114,103,117,109,101,110,116,0,65,114,103,117,109,101,110,116,32,108,105,115,116,32,116,111,111,32,108,111,110,103,0,83,121,109,98,111,108,105,99,32,108,105,110,107,32,108,111,111,112,0,70,105,108,101,110,97,109,101,32,116,111,111,32,108,111,110,103,0,84,111,111,32,109,97,110,121,32,111,112,101,110,32,102,105,108,101,115,32,105,110,32,115,121,115,116,101,109,0,78,111,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,115,32,97,118,97,105,108,97,98,108,101,0,66,97,100,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,0,78,111,32,99,104,105,108,100,32,112,114,111,99,101,115,115,0,66,97,100,32,97,100,100,114,101,115,115,0,70,105,108,101,32,116,111,111,32,108,97,114,103,101,0,84,111,111,32,109,97,110,121,32,108,105,110,107,115,0,78,111,32,108,111,99,107,115,32,97,118,97,105,108,97,98,108,101,0,82,101,115,111,117,114,99,101,32,100,101,97,100,108,111,99,107,32,119,111,117,108,100,32,111,99,99,117,114,0,83,116,97,116,101,32,110,111,116,32,114,101,99,111,118,101,114,97,98,108,101,0,80,114,101,118,105,111,117,115,32,111,119,110,101,114,32,100,105,101,100,0,79,112,101,114,97,116,105,111,110,32,99,97,110,99,101,108,101,100,0,70,117,110,99,116,105,111,110,32,110,111,116,32,105,109,112,108,101,109,101,110,116,101,100,0,78,111,32,109,101,115,115,97,103,101,32,111,102,32,100,101,115,105,114,101,100,32,116,121,112,101,0,73,100,101,110,116,105,102,105,101,114,32,114,101,109,111,118,101,100,0,68,101,118,105,99,101,32,110,111,116,32,97,32,115,116,114,101,97,109,0,78,111,32,100,97,116,97,32,97,118,97,105,108,97,98,108,101,0,68,101,118,105,99,101,32,116,105,109,101,111,117,116,0,79,117,116,32,111,102,32,115,116,114,101,97,109,115,32,114,101,115,111,117,114,99,101,115,0,76,105,110,107,32,104,97,115,32,98,101,101,110,32,115,101,118,101,114,101,100,0,80,114,111,116,111,99,111,108,32,101,114,114,111,114,0,66,97,100,32,109,101,115,115,97,103,101,0,70,105,108,101,32,100,101,115,99,114,105,112,116,111,114,32,105,110,32,98,97,100,32,115,116,97,116,101,0,78,111,116,32,97,32,115,111,99,107,101,116,0,68,101,115,116,105,110,97,116,105,111,110,32,97,100,100,114,101,115,115,32,114,101,113,117,105,114,101,100,0,77,101,115,115,97,103,101,32,116,111,111,32,108,97,114,103,101,0,80,114,111,116,111,99,111,108,32,119,114,111,110,103,32,116,121,112,101,32,102,111,114,32,115,111,99,107,101,116,0,80,114,111,116,111,99,111,108,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,80,114,111,116,111,99,111,108,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,83,111,99,107,101,116,32,116,121,112,101,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,78,111,116,32,115,117,112,112,111,114,116,101,100,0,80,114,111,116,111,99,111,108,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,65,100,100,114,101,115,115,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,32,98,121,32,112,114,111,116,111,99,111,108,0,65,100,100,114,101,115,115,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,78,101,116,119,111,114,107,32,105,115,32,100,111,119,110,0,78,101,116,119,111,114,107,32,117,110,114,101,97,99,104,97,98,108,101,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,110,101,116,119,111,114,107,0,67,111,110,110,101,99,116,105,111,110,32,97,98,111,114,116,101,100,0,78,111,32,98,117,102,102,101,114,32,115,112,97,99,101,32,97,118,97,105,108,97,98,108,101,0,83,111,99,107,101,116,32,105,115,32,99,111,110,110,101,99,116,101,100,0,83,111,99,107,101,116,32,110,111,116,32,99,111,110,110,101,99,116,101,100,0,67,97,110,110,111,116,32,115,101,110,100,32,97,102,116,101,114,32,115,111,99,107,101,116,32,115,104,117,116,100,111,119,110,0,79,112,101,114,97,116,105,111,110,32,97,108,114,101,97,100,121,32,105,110,32,112,114,111,103,114,101,115,115,0,79,112,101,114,97,116,105,111,110,32,105,110,32,112,114,111,103,114,101,115,115,0,83,116,97,108,101,32,102,105,108,101,32,104,97,110,100,108,101,0,82,101,109,111,116,101,32,73,47,79,32,101,114,114,111,114,0,81,117,111,116,97,32,101,120,99,101,101,100,101,100,0,78,111,32,109,101,100,105,117,109,32,102,111,117,110,100,0,87,114,111,110,103,32,109,101,100,105,117,109,32,116,121,112,101,0,78,111,32,101,114,114,111,114,32,105,110,102,111,114,109,97,116,105,111,110,0,0],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE);var tempDoublePtr=STATICTOP;STATICTOP+=16;function _atexit(t,e){__ATEXIT__.unshift({func:t,arg:e})}function ___cxa_atexit(){return _atexit.apply(null,arguments)}function _abort(){Module.abort()}function __ZN8facebook4yoga14YGNodeToStringEPNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEP6YGNode14YGPrintOptionsj(){Module.printErr("missing function: _ZN8facebook4yoga14YGNodeToStringEPNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEP6YGNode14YGPrintOptionsj"),abort(-1)}function __decorate(t,e,r,o){var a=arguments.length,n=a<3?e:o===null?o=Object.getOwnPropertyDescriptor(e,r):o,u;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")n=Reflect.decorate(t,e,r,o);else for(var A=t.length-1;A>=0;A--)(u=t[A])&&(n=(a<3?u(n):a>3?u(e,r,n):u(e,r))||n);return a>3&&n&&Object.defineProperty(e,r,n),n}function _defineHidden(t){return function(e,r){Object.defineProperty(e,r,{configurable:!1,enumerable:!1,value:t,writable:!0})}}var _nbind={};function __nbind_free_external(t){_nbind.externalList[t].dereference(t)}function __nbind_reference_external(t){_nbind.externalList[t].reference()}function _llvm_stackrestore(t){var e=_llvm_stacksave,r=e.LLVM_SAVEDSTACKS[t];e.LLVM_SAVEDSTACKS.splice(t,1),Runtime.stackRestore(r)}function __nbind_register_pool(t,e,r,o){_nbind.Pool.pageSize=t,_nbind.Pool.usedPtr=e/4,_nbind.Pool.rootPtr=r,_nbind.Pool.pagePtr=o/4,HEAP32[e/4]=16909060,HEAP8[e]==1&&(_nbind.bigEndian=!0),HEAP32[e/4]=0,_nbind.makeTypeKindTbl=(n={},n[1024]=_nbind.PrimitiveType,n[64]=_nbind.Int64Type,n[2048]=_nbind.BindClass,n[3072]=_nbind.BindClassPtr,n[4096]=_nbind.SharedClassPtr,n[5120]=_nbind.ArrayType,n[6144]=_nbind.ArrayType,n[7168]=_nbind.CStringType,n[9216]=_nbind.CallbackType,n[10240]=_nbind.BindType,n),_nbind.makeTypeNameTbl={Buffer:_nbind.BufferType,External:_nbind.ExternalType,Int64:_nbind.Int64Type,_nbind_new:_nbind.CreateValueType,bool:_nbind.BooleanType,"cbFunction &":_nbind.CallbackType,"const cbFunction &":_nbind.CallbackType,"const std::string &":_nbind.StringType,"std::string":_nbind.StringType},Module.toggleLightGC=_nbind.toggleLightGC,_nbind.callUpcast=Module.dynCall_ii;var a=_nbind.makeType(_nbind.constructType,{flags:2048,id:0,name:""});a.proto=Module,_nbind.BindClass.list.push(a);var n}function _emscripten_set_main_loop_timing(t,e){if(Browser.mainLoop.timingMode=t,Browser.mainLoop.timingValue=e,!Browser.mainLoop.func)return 1;if(t==0)Browser.mainLoop.scheduler=function(){var u=Math.max(0,Browser.mainLoop.tickStartTime+e-_emscripten_get_now())|0;setTimeout(Browser.mainLoop.runner,u)},Browser.mainLoop.method="timeout";else if(t==1)Browser.mainLoop.scheduler=function(){Browser.requestAnimationFrame(Browser.mainLoop.runner)},Browser.mainLoop.method="rAF";else if(t==2){if(!window.setImmediate){let n=function(u){u.source===window&&u.data===o&&(u.stopPropagation(),r.shift()())};var a=n,r=[],o="setimmediate";window.addEventListener("message",n,!0),window.setImmediate=function(A){r.push(A),ENVIRONMENT_IS_WORKER?(Module.setImmediates===void 0&&(Module.setImmediates=[]),Module.setImmediates.push(A),window.postMessage({target:o})):window.postMessage(o,"*")}}Browser.mainLoop.scheduler=function(){window.setImmediate(Browser.mainLoop.runner)},Browser.mainLoop.method="immediate"}return 0}function _emscripten_get_now(){abort()}function _emscripten_set_main_loop(t,e,r,o,a){Module.noExitRuntime=!0,assert(!Browser.mainLoop.func,"emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters."),Browser.mainLoop.func=t,Browser.mainLoop.arg=o;var n;typeof o<"u"?n=function(){Module.dynCall_vi(t,o)}:n=function(){Module.dynCall_v(t)};var u=Browser.mainLoop.currentlyRunningMainloop;if(Browser.mainLoop.runner=function(){if(!ABORT){if(Browser.mainLoop.queue.length>0){var p=Date.now(),h=Browser.mainLoop.queue.shift();if(h.func(h.arg),Browser.mainLoop.remainingBlockers){var E=Browser.mainLoop.remainingBlockers,I=E%1==0?E-1:Math.floor(E);h.counted?Browser.mainLoop.remainingBlockers=I:(I=I+.5,Browser.mainLoop.remainingBlockers=(8*E+I)/9)}if(console.log('main loop blocker "'+h.name+'" took '+(Date.now()-p)+" ms"),Browser.mainLoop.updateStatus(),u1&&Browser.mainLoop.currentFrameNumber%Browser.mainLoop.timingValue!=0){Browser.mainLoop.scheduler();return}else Browser.mainLoop.timingMode==0&&(Browser.mainLoop.tickStartTime=_emscripten_get_now());Browser.mainLoop.method==="timeout"&&Module.ctx&&(Module.printErr("Looks like you are rendering without using requestAnimationFrame for the main loop. You should use 0 for the frame rate in emscripten_set_main_loop in order to use requestAnimationFrame, as that can greatly improve your frame rates!"),Browser.mainLoop.method=""),Browser.mainLoop.runIter(n),!(u0?_emscripten_set_main_loop_timing(0,1e3/e):_emscripten_set_main_loop_timing(1,1),Browser.mainLoop.scheduler()),r)throw"SimulateInfiniteLoop"}var Browser={mainLoop:{scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:function(){Browser.mainLoop.scheduler=null,Browser.mainLoop.currentlyRunningMainloop++},resume:function(){Browser.mainLoop.currentlyRunningMainloop++;var t=Browser.mainLoop.timingMode,e=Browser.mainLoop.timingValue,r=Browser.mainLoop.func;Browser.mainLoop.func=null,_emscripten_set_main_loop(r,0,!1,Browser.mainLoop.arg,!0),_emscripten_set_main_loop_timing(t,e),Browser.mainLoop.scheduler()},updateStatus:function(){if(Module.setStatus){var t=Module.statusMessage||"Please wait...",e=Browser.mainLoop.remainingBlockers,r=Browser.mainLoop.expectedBlockers;e?e"u"&&(console.log("warning: Browser does not support creating object URLs. Built-in browser image decoding will not be available."),Module.noImageDecoding=!0);var t={};t.canHandle=function(n){return!Module.noImageDecoding&&/\.(jpg|jpeg|png|bmp)$/i.test(n)},t.handle=function(n,u,A,p){var h=null;if(Browser.hasBlobConstructor)try{h=new Blob([n],{type:Browser.getMimetype(u)}),h.size!==n.length&&(h=new Blob([new Uint8Array(n).buffer],{type:Browser.getMimetype(u)}))}catch(x){Runtime.warnOnce("Blob constructor present but fails: "+x+"; falling back to blob builder")}if(!h){var E=new Browser.BlobBuilder;E.append(new Uint8Array(n).buffer),h=E.getBlob()}var I=Browser.URLObject.createObjectURL(h),v=new Image;v.onload=function(){assert(v.complete,"Image "+u+" could not be decoded");var C=document.createElement("canvas");C.width=v.width,C.height=v.height;var R=C.getContext("2d");R.drawImage(v,0,0),Module.preloadedImages[u]=C,Browser.URLObject.revokeObjectURL(I),A&&A(n)},v.onerror=function(C){console.log("Image "+I+" could not be decoded"),p&&p()},v.src=I},Module.preloadPlugins.push(t);var e={};e.canHandle=function(n){return!Module.noAudioDecoding&&n.substr(-4)in{".ogg":1,".wav":1,".mp3":1}},e.handle=function(n,u,A,p){var h=!1;function E(R){h||(h=!0,Module.preloadedAudios[u]=R,A&&A(n))}function I(){h||(h=!0,Module.preloadedAudios[u]=new Audio,p&&p())}if(Browser.hasBlobConstructor){try{var v=new Blob([n],{type:Browser.getMimetype(u)})}catch{return I()}var x=Browser.URLObject.createObjectURL(v),C=new Audio;C.addEventListener("canplaythrough",function(){E(C)},!1),C.onerror=function(L){if(h)return;console.log("warning: browser could not fully decode audio "+u+", trying slower base64 approach");function U(J){for(var te="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",ae="=",fe="",ce=0,me=0,he=0;he=6;){var Be=ce>>me-6&63;me-=6,fe+=te[Be]}return me==2?(fe+=te[(ce&3)<<4],fe+=ae+ae):me==4&&(fe+=te[(ce&15)<<2],fe+=ae),fe}C.src="data:audio/x-"+u.substr(-3)+";base64,"+U(n),E(C)},C.src=x,Browser.safeSetTimeout(function(){E(C)},1e4)}else return I()},Module.preloadPlugins.push(e);function r(){Browser.pointerLock=document.pointerLockElement===Module.canvas||document.mozPointerLockElement===Module.canvas||document.webkitPointerLockElement===Module.canvas||document.msPointerLockElement===Module.canvas}var o=Module.canvas;o&&(o.requestPointerLock=o.requestPointerLock||o.mozRequestPointerLock||o.webkitRequestPointerLock||o.msRequestPointerLock||function(){},o.exitPointerLock=document.exitPointerLock||document.mozExitPointerLock||document.webkitExitPointerLock||document.msExitPointerLock||function(){},o.exitPointerLock=o.exitPointerLock.bind(document),document.addEventListener("pointerlockchange",r,!1),document.addEventListener("mozpointerlockchange",r,!1),document.addEventListener("webkitpointerlockchange",r,!1),document.addEventListener("mspointerlockchange",r,!1),Module.elementPointerLock&&o.addEventListener("click",function(a){!Browser.pointerLock&&Module.canvas.requestPointerLock&&(Module.canvas.requestPointerLock(),a.preventDefault())},!1))},createContext:function(t,e,r,o){if(e&&Module.ctx&&t==Module.canvas)return Module.ctx;var a,n;if(e){var u={antialias:!1,alpha:!1};if(o)for(var A in o)u[A]=o[A];n=GL.createContext(t,u),n&&(a=GL.getContext(n).GLctx)}else a=t.getContext("2d");return a?(r&&(e||assert(typeof GLctx>"u","cannot set in module if GLctx is used, but we are a non-GL context that would replace it"),Module.ctx=a,e&&GL.makeContextCurrent(n),Module.useWebGL=e,Browser.moduleContextCreatedCallbacks.forEach(function(p){p()}),Browser.init()),a):null},destroyContext:function(t,e,r){},fullscreenHandlersInstalled:!1,lockPointer:void 0,resizeCanvas:void 0,requestFullscreen:function(t,e,r){Browser.lockPointer=t,Browser.resizeCanvas=e,Browser.vrDevice=r,typeof Browser.lockPointer>"u"&&(Browser.lockPointer=!0),typeof Browser.resizeCanvas>"u"&&(Browser.resizeCanvas=!1),typeof Browser.vrDevice>"u"&&(Browser.vrDevice=null);var o=Module.canvas;function a(){Browser.isFullscreen=!1;var u=o.parentNode;(document.fullscreenElement||document.mozFullScreenElement||document.msFullscreenElement||document.webkitFullscreenElement||document.webkitCurrentFullScreenElement)===u?(o.exitFullscreen=document.exitFullscreen||document.cancelFullScreen||document.mozCancelFullScreen||document.msExitFullscreen||document.webkitCancelFullScreen||function(){},o.exitFullscreen=o.exitFullscreen.bind(document),Browser.lockPointer&&o.requestPointerLock(),Browser.isFullscreen=!0,Browser.resizeCanvas&&Browser.setFullscreenCanvasSize()):(u.parentNode.insertBefore(o,u),u.parentNode.removeChild(u),Browser.resizeCanvas&&Browser.setWindowedCanvasSize()),Module.onFullScreen&&Module.onFullScreen(Browser.isFullscreen),Module.onFullscreen&&Module.onFullscreen(Browser.isFullscreen),Browser.updateCanvasDimensions(o)}Browser.fullscreenHandlersInstalled||(Browser.fullscreenHandlersInstalled=!0,document.addEventListener("fullscreenchange",a,!1),document.addEventListener("mozfullscreenchange",a,!1),document.addEventListener("webkitfullscreenchange",a,!1),document.addEventListener("MSFullscreenChange",a,!1));var n=document.createElement("div");o.parentNode.insertBefore(n,o),n.appendChild(o),n.requestFullscreen=n.requestFullscreen||n.mozRequestFullScreen||n.msRequestFullscreen||(n.webkitRequestFullscreen?function(){n.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT)}:null)||(n.webkitRequestFullScreen?function(){n.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT)}:null),r?n.requestFullscreen({vrDisplay:r}):n.requestFullscreen()},requestFullScreen:function(t,e,r){return Module.printErr("Browser.requestFullScreen() is deprecated. Please call Browser.requestFullscreen instead."),Browser.requestFullScreen=function(o,a,n){return Browser.requestFullscreen(o,a,n)},Browser.requestFullscreen(t,e,r)},nextRAF:0,fakeRequestAnimationFrame:function(t){var e=Date.now();if(Browser.nextRAF===0)Browser.nextRAF=e+1e3/60;else for(;e+2>=Browser.nextRAF;)Browser.nextRAF+=1e3/60;var r=Math.max(Browser.nextRAF-e,0);setTimeout(t,r)},requestAnimationFrame:function t(e){typeof window>"u"?Browser.fakeRequestAnimationFrame(e):(window.requestAnimationFrame||(window.requestAnimationFrame=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame||Browser.fakeRequestAnimationFrame),window.requestAnimationFrame(e))},safeCallback:function(t){return function(){if(!ABORT)return t.apply(null,arguments)}},allowAsyncCallbacks:!0,queuedAsyncCallbacks:[],pauseAsyncCallbacks:function(){Browser.allowAsyncCallbacks=!1},resumeAsyncCallbacks:function(){if(Browser.allowAsyncCallbacks=!0,Browser.queuedAsyncCallbacks.length>0){var t=Browser.queuedAsyncCallbacks;Browser.queuedAsyncCallbacks=[],t.forEach(function(e){e()})}},safeRequestAnimationFrame:function(t){return Browser.requestAnimationFrame(function(){ABORT||(Browser.allowAsyncCallbacks?t():Browser.queuedAsyncCallbacks.push(t))})},safeSetTimeout:function(t,e){return Module.noExitRuntime=!0,setTimeout(function(){ABORT||(Browser.allowAsyncCallbacks?t():Browser.queuedAsyncCallbacks.push(t))},e)},safeSetInterval:function(t,e){return Module.noExitRuntime=!0,setInterval(function(){ABORT||Browser.allowAsyncCallbacks&&t()},e)},getMimetype:function(t){return{jpg:"image/jpeg",jpeg:"image/jpeg",png:"image/png",bmp:"image/bmp",ogg:"audio/ogg",wav:"audio/wav",mp3:"audio/mpeg"}[t.substr(t.lastIndexOf(".")+1)]},getUserMedia:function(t){window.getUserMedia||(window.getUserMedia=navigator.getUserMedia||navigator.mozGetUserMedia),window.getUserMedia(t)},getMovementX:function(t){return t.movementX||t.mozMovementX||t.webkitMovementX||0},getMovementY:function(t){return t.movementY||t.mozMovementY||t.webkitMovementY||0},getMouseWheelDelta:function(t){var e=0;switch(t.type){case"DOMMouseScroll":e=t.detail;break;case"mousewheel":e=t.wheelDelta;break;case"wheel":e=t.deltaY;break;default:throw"unrecognized mouse wheel event: "+t.type}return e},mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseEvent:function(t){if(Browser.pointerLock)t.type!="mousemove"&&"mozMovementX"in t?Browser.mouseMovementX=Browser.mouseMovementY=0:(Browser.mouseMovementX=Browser.getMovementX(t),Browser.mouseMovementY=Browser.getMovementY(t)),typeof SDL<"u"?(Browser.mouseX=SDL.mouseX+Browser.mouseMovementX,Browser.mouseY=SDL.mouseY+Browser.mouseMovementY):(Browser.mouseX+=Browser.mouseMovementX,Browser.mouseY+=Browser.mouseMovementY);else{var e=Module.canvas.getBoundingClientRect(),r=Module.canvas.width,o=Module.canvas.height,a=typeof window.scrollX<"u"?window.scrollX:window.pageXOffset,n=typeof window.scrollY<"u"?window.scrollY:window.pageYOffset;if(t.type==="touchstart"||t.type==="touchend"||t.type==="touchmove"){var u=t.touch;if(u===void 0)return;var A=u.pageX-(a+e.left),p=u.pageY-(n+e.top);A=A*(r/e.width),p=p*(o/e.height);var h={x:A,y:p};if(t.type==="touchstart")Browser.lastTouches[u.identifier]=h,Browser.touches[u.identifier]=h;else if(t.type==="touchend"||t.type==="touchmove"){var E=Browser.touches[u.identifier];E||(E=h),Browser.lastTouches[u.identifier]=E,Browser.touches[u.identifier]=h}return}var I=t.pageX-(a+e.left),v=t.pageY-(n+e.top);I=I*(r/e.width),v=v*(o/e.height),Browser.mouseMovementX=I-Browser.mouseX,Browser.mouseMovementY=v-Browser.mouseY,Browser.mouseX=I,Browser.mouseY=v}},asyncLoad:function(t,e,r,o){var a=o?"":"al "+t;Module.readAsync(t,function(n){assert(n,'Loading data file "'+t+'" failed (no arrayBuffer).'),e(new Uint8Array(n)),a&&removeRunDependency(a)},function(n){if(r)r();else throw'Loading data file "'+t+'" failed.'}),a&&addRunDependency(a)},resizeListeners:[],updateResizeListeners:function(){var t=Module.canvas;Browser.resizeListeners.forEach(function(e){e(t.width,t.height)})},setCanvasSize:function(t,e,r){var o=Module.canvas;Browser.updateCanvasDimensions(o,t,e),r||Browser.updateResizeListeners()},windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize:function(){if(typeof SDL<"u"){var t=HEAPU32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2];t=t|8388608,HEAP32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2]=t}Browser.updateResizeListeners()},setWindowedCanvasSize:function(){if(typeof SDL<"u"){var t=HEAPU32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2];t=t&-8388609,HEAP32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2]=t}Browser.updateResizeListeners()},updateCanvasDimensions:function(t,e,r){e&&r?(t.widthNative=e,t.heightNative=r):(e=t.widthNative,r=t.heightNative);var o=e,a=r;if(Module.forcedAspectRatio&&Module.forcedAspectRatio>0&&(o/a>2];return e},getStr:function(){var t=Pointer_stringify(SYSCALLS.get());return t},get64:function(){var t=SYSCALLS.get(),e=SYSCALLS.get();return t>=0?assert(e===0):assert(e===-1),t},getZero:function(){assert(SYSCALLS.get()===0)}};function ___syscall6(t,e){SYSCALLS.varargs=e;try{var r=SYSCALLS.getStreamFromFD();return FS.close(r),0}catch(o){return(typeof FS>"u"||!(o instanceof FS.ErrnoError))&&abort(o),-o.errno}}function ___syscall54(t,e){SYSCALLS.varargs=e;try{return 0}catch(r){return(typeof FS>"u"||!(r instanceof FS.ErrnoError))&&abort(r),-r.errno}}function _typeModule(t){var e=[[0,1,"X"],[1,1,"const X"],[128,1,"X *"],[256,1,"X &"],[384,1,"X &&"],[512,1,"std::shared_ptr"],[640,1,"std::unique_ptr"],[5120,1,"std::vector"],[6144,2,"std::array"],[9216,-1,"std::function"]];function r(p,h,E,I,v,x){if(h==1){var C=I&896;(C==128||C==256||C==384)&&(p="X const")}var R;return x?R=E.replace("X",p).replace("Y",v):R=p.replace("X",E).replace("Y",v),R.replace(/([*&]) (?=[*&])/g,"$1")}function o(p,h,E,I,v){throw new Error(p+" type "+E.replace("X",h+"?")+(I?" with flag "+I:"")+" in "+v)}function a(p,h,E,I,v,x,C,R){x===void 0&&(x="X"),R===void 0&&(R=1);var L=E(p);if(L)return L;var U=I(p),J=U.placeholderFlag,te=e[J];C&&te&&(x=r(C[2],C[0],x,te[0],"?",!0));var ae;J==0&&(ae="Unbound"),J>=10&&(ae="Corrupt"),R>20&&(ae="Deeply nested"),ae&&o(ae,p,x,J,v||"?");var fe=U.paramList[0],ce=a(fe,h,E,I,v,x,te,R+1),me,he={flags:te[0],id:p,name:"",paramList:[ce]},Be=[],we="?";switch(U.placeholderFlag){case 1:me=ce.spec;break;case 2:if((ce.flags&15360)==1024&&ce.spec.ptrSize==1){he.flags=7168;break}case 3:case 6:case 5:me=ce.spec,ce.flags&15360;break;case 8:we=""+U.paramList[1],he.paramList.push(U.paramList[1]);break;case 9:for(var g=0,Ee=U.paramList[1];g>2]=t),t}function _llvm_stacksave(){var t=_llvm_stacksave;return t.LLVM_SAVEDSTACKS||(t.LLVM_SAVEDSTACKS=[]),t.LLVM_SAVEDSTACKS.push(Runtime.stackSave()),t.LLVM_SAVEDSTACKS.length-1}function ___syscall140(t,e){SYSCALLS.varargs=e;try{var r=SYSCALLS.getStreamFromFD(),o=SYSCALLS.get(),a=SYSCALLS.get(),n=SYSCALLS.get(),u=SYSCALLS.get(),A=a;return FS.llseek(r,A,u),HEAP32[n>>2]=r.position,r.getdents&&A===0&&u===0&&(r.getdents=null),0}catch(p){return(typeof FS>"u"||!(p instanceof FS.ErrnoError))&&abort(p),-p.errno}}function ___syscall146(t,e){SYSCALLS.varargs=e;try{var r=SYSCALLS.get(),o=SYSCALLS.get(),a=SYSCALLS.get(),n=0;___syscall146.buffer||(___syscall146.buffers=[null,[],[]],___syscall146.printChar=function(E,I){var v=___syscall146.buffers[E];assert(v),I===0||I===10?((E===1?Module.print:Module.printErr)(UTF8ArrayToString(v,0)),v.length=0):v.push(I)});for(var u=0;u>2],p=HEAP32[o+(u*8+4)>>2],h=0;h"u"||!(E instanceof FS.ErrnoError))&&abort(E),-E.errno}}function __nbind_finish(){for(var t=0,e=_nbind.BindClass.list;tt.pageSize/2||e>t.pageSize-r){var o=_nbind.typeNameTbl.NBind.proto;return o.lalloc(e)}else return HEAPU32[t.usedPtr]=r+e,t.rootPtr+r},t.lreset=function(e,r){var o=HEAPU32[t.pagePtr];if(o){var a=_nbind.typeNameTbl.NBind.proto;a.lreset(e,r)}else HEAPU32[t.usedPtr]=e},t}();_nbind.Pool=Pool;function constructType(t,e){var r=t==10240?_nbind.makeTypeNameTbl[e.name]||_nbind.BindType:_nbind.makeTypeKindTbl[t],o=new r(e);return typeIdTbl[e.id]=o,_nbind.typeNameTbl[e.name]=o,o}_nbind.constructType=constructType;function getType(t){return typeIdTbl[t]}_nbind.getType=getType;function queryType(t){var e=HEAPU8[t],r=_nbind.structureList[e][1];t/=4,r<0&&(++t,r=HEAPU32[t]+1);var o=Array.prototype.slice.call(HEAPU32.subarray(t+1,t+1+r));return e==9&&(o=[o[0],o.slice(1)]),{paramList:o,placeholderFlag:e}}_nbind.queryType=queryType;function getTypes(t,e){return t.map(function(r){return typeof r=="number"?_nbind.getComplexType(r,constructType,getType,queryType,e):_nbind.typeNameTbl[r]})}_nbind.getTypes=getTypes;function readTypeIdList(t,e){return Array.prototype.slice.call(HEAPU32,t/4,t/4+e)}_nbind.readTypeIdList=readTypeIdList;function readAsciiString(t){for(var e=t;HEAPU8[e++];);return String.fromCharCode.apply("",HEAPU8.subarray(t,e-1))}_nbind.readAsciiString=readAsciiString;function readPolicyList(t){var e={};if(t)for(;;){var r=HEAPU32[t/4];if(!r)break;e[readAsciiString(r)]=!0,t+=4}return e}_nbind.readPolicyList=readPolicyList;function getDynCall(t,e){var r={float32_t:"d",float64_t:"d",int64_t:"d",uint64_t:"d",void:"v"},o=t.map(function(n){return r[n.name]||"i"}).join(""),a=Module["dynCall_"+o];if(!a)throw new Error("dynCall_"+o+" not found for "+e+"("+t.map(function(n){return n.name}).join(", ")+")");return a}_nbind.getDynCall=getDynCall;function addMethod(t,e,r,o){var a=t[e];t.hasOwnProperty(e)&&a?((a.arity||a.arity===0)&&(a=_nbind.makeOverloader(a,a.arity),t[e]=a),a.addMethod(r,o)):(r.arity=o,t[e]=r)}_nbind.addMethod=addMethod;function throwError(t){throw new Error(t)}_nbind.throwError=throwError,_nbind.bigEndian=!1,_a=_typeModule(_typeModule),_nbind.Type=_a.Type,_nbind.makeType=_a.makeType,_nbind.getComplexType=_a.getComplexType,_nbind.structureList=_a.structureList;var BindType=function(t){__extends(e,t);function e(){var r=t!==null&&t.apply(this,arguments)||this;return r.heap=HEAPU32,r.ptrSize=4,r}return e.prototype.needsWireRead=function(r){return!!this.wireRead||!!this.makeWireRead},e.prototype.needsWireWrite=function(r){return!!this.wireWrite||!!this.makeWireWrite},e}(_nbind.Type);_nbind.BindType=BindType;var PrimitiveType=function(t){__extends(e,t);function e(r){var o=t.call(this,r)||this,a=r.flags&32?{32:HEAPF32,64:HEAPF64}:r.flags&8?{8:HEAPU8,16:HEAPU16,32:HEAPU32}:{8:HEAP8,16:HEAP16,32:HEAP32};return o.heap=a[r.ptrSize*8],o.ptrSize=r.ptrSize,o}return e.prototype.needsWireWrite=function(r){return!!r&&!!r.Strict},e.prototype.makeWireWrite=function(r,o){return o&&o.Strict&&function(a){if(typeof a=="number")return a;throw new Error("Type mismatch")}},e}(BindType);_nbind.PrimitiveType=PrimitiveType;function pushCString(t,e){if(t==null){if(e&&e.Nullable)return 0;throw new Error("Type mismatch")}if(e&&e.Strict){if(typeof t!="string")throw new Error("Type mismatch")}else t=t.toString();var r=Module.lengthBytesUTF8(t)+1,o=_nbind.Pool.lalloc(r);return Module.stringToUTF8Array(t,HEAPU8,o,r),o}_nbind.pushCString=pushCString;function popCString(t){return t===0?null:Module.Pointer_stringify(t)}_nbind.popCString=popCString;var CStringType=function(t){__extends(e,t);function e(){var r=t!==null&&t.apply(this,arguments)||this;return r.wireRead=popCString,r.wireWrite=pushCString,r.readResources=[_nbind.resources.pool],r.writeResources=[_nbind.resources.pool],r}return e.prototype.makeWireWrite=function(r,o){return function(a){return pushCString(a,o)}},e}(BindType);_nbind.CStringType=CStringType;var BooleanType=function(t){__extends(e,t);function e(){var r=t!==null&&t.apply(this,arguments)||this;return r.wireRead=function(o){return!!o},r}return e.prototype.needsWireWrite=function(r){return!!r&&!!r.Strict},e.prototype.makeWireRead=function(r){return"!!("+r+")"},e.prototype.makeWireWrite=function(r,o){return o&&o.Strict&&function(a){if(typeof a=="boolean")return a;throw new Error("Type mismatch")}||r},e}(BindType);_nbind.BooleanType=BooleanType;var Wrapper=function(){function t(){}return t.prototype.persist=function(){this.__nbindState|=1},t}();_nbind.Wrapper=Wrapper;function makeBound(t,e){var r=function(o){__extends(a,o);function a(n,u,A,p){var h=o.call(this)||this;if(!(h instanceof a))return new(Function.prototype.bind.apply(a,Array.prototype.concat.apply([null],arguments)));var E=u,I=A,v=p;if(n!==_nbind.ptrMarker){var x=h.__nbindConstructor.apply(h,arguments);E=4608,v=HEAPU32[x/4],I=HEAPU32[x/4+1]}var C={configurable:!0,enumerable:!1,value:null,writable:!1},R={__nbindFlags:E,__nbindPtr:I};v&&(R.__nbindShared=v,_nbind.mark(h));for(var L=0,U=Object.keys(R);L>=1;var r=_nbind.valueList[t];return _nbind.valueList[t]=firstFreeValue,firstFreeValue=t,r}else{if(e)return _nbind.popShared(t,e);throw new Error("Invalid value slot "+t)}}_nbind.popValue=popValue;var valueBase=18446744073709552e3;function push64(t){return typeof t=="number"?t:pushValue(t)*4096+valueBase}function pop64(t){return t=3?u=Buffer.from(n):u=new Buffer(n),u.copy(o)}else getBuffer(o).set(n)}}_nbind.commitBuffer=commitBuffer;var dirtyList=[],gcTimer=0;function sweep(){for(var t=0,e=dirtyList;t>2]=DYNAMIC_BASE,staticSealed=!0;function invoke_viiiii(t,e,r,o,a,n){try{Module.dynCall_viiiii(t,e,r,o,a,n)}catch(u){if(typeof u!="number"&&u!=="longjmp")throw u;Module.setThrew(1,0)}}function invoke_vif(t,e,r){try{Module.dynCall_vif(t,e,r)}catch(o){if(typeof o!="number"&&o!=="longjmp")throw o;Module.setThrew(1,0)}}function invoke_vid(t,e,r){try{Module.dynCall_vid(t,e,r)}catch(o){if(typeof o!="number"&&o!=="longjmp")throw o;Module.setThrew(1,0)}}function invoke_fiff(t,e,r,o){try{return Module.dynCall_fiff(t,e,r,o)}catch(a){if(typeof a!="number"&&a!=="longjmp")throw a;Module.setThrew(1,0)}}function invoke_vi(t,e){try{Module.dynCall_vi(t,e)}catch(r){if(typeof r!="number"&&r!=="longjmp")throw r;Module.setThrew(1,0)}}function invoke_vii(t,e,r){try{Module.dynCall_vii(t,e,r)}catch(o){if(typeof o!="number"&&o!=="longjmp")throw o;Module.setThrew(1,0)}}function invoke_ii(t,e){try{return Module.dynCall_ii(t,e)}catch(r){if(typeof r!="number"&&r!=="longjmp")throw r;Module.setThrew(1,0)}}function invoke_viddi(t,e,r,o,a){try{Module.dynCall_viddi(t,e,r,o,a)}catch(n){if(typeof n!="number"&&n!=="longjmp")throw n;Module.setThrew(1,0)}}function invoke_vidd(t,e,r,o){try{Module.dynCall_vidd(t,e,r,o)}catch(a){if(typeof a!="number"&&a!=="longjmp")throw a;Module.setThrew(1,0)}}function invoke_iiii(t,e,r,o){try{return Module.dynCall_iiii(t,e,r,o)}catch(a){if(typeof a!="number"&&a!=="longjmp")throw a;Module.setThrew(1,0)}}function invoke_diii(t,e,r,o){try{return Module.dynCall_diii(t,e,r,o)}catch(a){if(typeof a!="number"&&a!=="longjmp")throw a;Module.setThrew(1,0)}}function invoke_di(t,e){try{return Module.dynCall_di(t,e)}catch(r){if(typeof r!="number"&&r!=="longjmp")throw r;Module.setThrew(1,0)}}function invoke_iid(t,e,r){try{return Module.dynCall_iid(t,e,r)}catch(o){if(typeof o!="number"&&o!=="longjmp")throw o;Module.setThrew(1,0)}}function invoke_iii(t,e,r){try{return Module.dynCall_iii(t,e,r)}catch(o){if(typeof o!="number"&&o!=="longjmp")throw o;Module.setThrew(1,0)}}function invoke_viiddi(t,e,r,o,a,n){try{Module.dynCall_viiddi(t,e,r,o,a,n)}catch(u){if(typeof u!="number"&&u!=="longjmp")throw u;Module.setThrew(1,0)}}function invoke_viiiiii(t,e,r,o,a,n,u){try{Module.dynCall_viiiiii(t,e,r,o,a,n,u)}catch(A){if(typeof A!="number"&&A!=="longjmp")throw A;Module.setThrew(1,0)}}function invoke_dii(t,e,r){try{return Module.dynCall_dii(t,e,r)}catch(o){if(typeof o!="number"&&o!=="longjmp")throw o;Module.setThrew(1,0)}}function invoke_i(t){try{return Module.dynCall_i(t)}catch(e){if(typeof e!="number"&&e!=="longjmp")throw e;Module.setThrew(1,0)}}function invoke_iiiiii(t,e,r,o,a,n){try{return Module.dynCall_iiiiii(t,e,r,o,a,n)}catch(u){if(typeof u!="number"&&u!=="longjmp")throw u;Module.setThrew(1,0)}}function invoke_viiid(t,e,r,o,a){try{Module.dynCall_viiid(t,e,r,o,a)}catch(n){if(typeof n!="number"&&n!=="longjmp")throw n;Module.setThrew(1,0)}}function invoke_viififi(t,e,r,o,a,n,u){try{Module.dynCall_viififi(t,e,r,o,a,n,u)}catch(A){if(typeof A!="number"&&A!=="longjmp")throw A;Module.setThrew(1,0)}}function invoke_viii(t,e,r,o){try{Module.dynCall_viii(t,e,r,o)}catch(a){if(typeof a!="number"&&a!=="longjmp")throw a;Module.setThrew(1,0)}}function invoke_v(t){try{Module.dynCall_v(t)}catch(e){if(typeof e!="number"&&e!=="longjmp")throw e;Module.setThrew(1,0)}}function invoke_viid(t,e,r,o){try{Module.dynCall_viid(t,e,r,o)}catch(a){if(typeof a!="number"&&a!=="longjmp")throw a;Module.setThrew(1,0)}}function invoke_idd(t,e,r){try{return Module.dynCall_idd(t,e,r)}catch(o){if(typeof o!="number"&&o!=="longjmp")throw o;Module.setThrew(1,0)}}function invoke_viiii(t,e,r,o,a){try{Module.dynCall_viiii(t,e,r,o,a)}catch(n){if(typeof n!="number"&&n!=="longjmp")throw n;Module.setThrew(1,0)}}Module.asmGlobalArg={Math,Int8Array,Int16Array,Int32Array,Uint8Array,Uint16Array,Uint32Array,Float32Array,Float64Array,NaN:NaN,Infinity:1/0},Module.asmLibraryArg={abort,assert,enlargeMemory,getTotalMemory,abortOnCannotGrowMemory,invoke_viiiii,invoke_vif,invoke_vid,invoke_fiff,invoke_vi,invoke_vii,invoke_ii,invoke_viddi,invoke_vidd,invoke_iiii,invoke_diii,invoke_di,invoke_iid,invoke_iii,invoke_viiddi,invoke_viiiiii,invoke_dii,invoke_i,invoke_iiiiii,invoke_viiid,invoke_viififi,invoke_viii,invoke_v,invoke_viid,invoke_idd,invoke_viiii,_emscripten_asm_const_iiiii,_emscripten_asm_const_iiidddddd,_emscripten_asm_const_iiiid,__nbind_reference_external,_emscripten_asm_const_iiiiiiii,_removeAccessorPrefix,_typeModule,__nbind_register_pool,__decorate,_llvm_stackrestore,___cxa_atexit,__extends,__nbind_get_value_object,__ZN8facebook4yoga14YGNodeToStringEPNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEP6YGNode14YGPrintOptionsj,_emscripten_set_main_loop_timing,__nbind_register_primitive,__nbind_register_type,_emscripten_memcpy_big,__nbind_register_function,___setErrNo,__nbind_register_class,__nbind_finish,_abort,_nbind_value,_llvm_stacksave,___syscall54,_defineHidden,_emscripten_set_main_loop,_emscripten_get_now,__nbind_register_callback_signature,_emscripten_asm_const_iiiiii,__nbind_free_external,_emscripten_asm_const_iiii,_emscripten_asm_const_iiididi,___syscall6,_atexit,___syscall140,___syscall146,DYNAMICTOP_PTR,tempDoublePtr,ABORT,STACKTOP,STACK_MAX,cttz_i8,___dso_handle};var asm=function(t,e,r){var o=new t.Int8Array(r),a=new t.Int16Array(r),n=new t.Int32Array(r),u=new t.Uint8Array(r),A=new t.Uint16Array(r),p=new t.Uint32Array(r),h=new t.Float32Array(r),E=new t.Float64Array(r),I=e.DYNAMICTOP_PTR|0,v=e.tempDoublePtr|0,x=e.ABORT|0,C=e.STACKTOP|0,R=e.STACK_MAX|0,L=e.cttz_i8|0,U=e.___dso_handle|0,J=0,te=0,ae=0,fe=0,ce=t.NaN,me=t.Infinity,he=0,Be=0,we=0,g=0,Ee=0,Se=0,le=t.Math.floor,ne=t.Math.abs,ee=t.Math.sqrt,Ie=t.Math.pow,Fe=t.Math.cos,At=t.Math.sin,H=t.Math.tan,at=t.Math.acos,Re=t.Math.asin,ke=t.Math.atan,xe=t.Math.atan2,He=t.Math.exp,Te=t.Math.log,Je=t.Math.ceil,qe=t.Math.imul,b=t.Math.min,w=t.Math.max,P=t.Math.clz32,y=t.Math.fround,F=e.abort,z=e.assert,X=e.enlargeMemory,Z=e.getTotalMemory,ie=e.abortOnCannotGrowMemory,Pe=e.invoke_viiiii,Ne=e.invoke_vif,ot=e.invoke_vid,dt=e.invoke_fiff,jt=e.invoke_vi,$t=e.invoke_vii,bt=e.invoke_ii,an=e.invoke_viddi,Qr=e.invoke_vidd,mr=e.invoke_iiii,br=e.invoke_diii,Wr=e.invoke_di,Kn=e.invoke_iid,Ns=e.invoke_iii,Ti=e.invoke_viiddi,ps=e.invoke_viiiiii,io=e.invoke_dii,Pi=e.invoke_i,Ls=e.invoke_iiiiii,so=e.invoke_viiid,cc=e.invoke_viififi,cu=e.invoke_viii,lp=e.invoke_v,cp=e.invoke_viid,Os=e.invoke_idd,Dn=e.invoke_viiii,oo=e._emscripten_asm_const_iiiii,Ms=e._emscripten_asm_const_iiidddddd,ml=e._emscripten_asm_const_iiiid,yl=e.__nbind_reference_external,ao=e._emscripten_asm_const_iiiiiiii,Vn=e._removeAccessorPrefix,On=e._typeModule,Ni=e.__nbind_register_pool,Mn=e.__decorate,_i=e._llvm_stackrestore,tr=e.___cxa_atexit,Oe=e.__extends,ii=e.__nbind_get_value_object,Ma=e.__ZN8facebook4yoga14YGNodeToStringEPNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEP6YGNode14YGPrintOptionsj,hr=e._emscripten_set_main_loop_timing,uc=e.__nbind_register_primitive,uu=e.__nbind_register_type,Ac=e._emscripten_memcpy_big,El=e.__nbind_register_function,DA=e.___setErrNo,Au=e.__nbind_register_class,Ce=e.__nbind_finish,Rt=e._abort,fc=e._nbind_value,Hi=e._llvm_stacksave,fu=e.___syscall54,Yt=e._defineHidden,Cl=e._emscripten_set_main_loop,SA=e._emscripten_get_now,up=e.__nbind_register_callback_signature,pc=e._emscripten_asm_const_iiiiii,PA=e.__nbind_free_external,Qn=e._emscripten_asm_const_iiii,hi=e._emscripten_asm_const_iiididi,hc=e.___syscall6,bA=e._atexit,sa=e.___syscall140,Li=e.___syscall146,_o=y(0);let Ze=y(0);function lo(s){s=s|0;var l=0;return l=C,C=C+s|0,C=C+15&-16,l|0}function gc(){return C|0}function pu(s){s=s|0,C=s}function qi(s,l){s=s|0,l=l|0,C=s,R=l}function hu(s,l){s=s|0,l=l|0,J||(J=s,te=l)}function xA(s){s=s|0,Se=s}function Ua(){return Se|0}function dc(){var s=0,l=0;Dr(8104,8,400)|0,Dr(8504,408,540)|0,s=9044,l=s+44|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));o[9088]=0,o[9089]=1,n[2273]=0,n[2274]=948,n[2275]=948,tr(17,8104,U|0)|0}function hs(s){s=s|0,pt(s+948|0)}function _t(s){return s=y(s),((Du(s)|0)&2147483647)>>>0>2139095040|0}function Fn(s,l,c){s=s|0,l=l|0,c=c|0;e:do if(n[s+(l<<3)+4>>2]|0)s=s+(l<<3)|0;else{if((l|2|0)==3&&n[s+60>>2]|0){s=s+56|0;break}switch(l|0){case 0:case 2:case 4:case 5:{if(n[s+52>>2]|0){s=s+48|0;break e}break}default:}if(n[s+68>>2]|0){s=s+64|0;break}else{s=(l|1|0)==5?948:c;break}}while(0);return s|0}function Ci(s){s=s|0;var l=0;return l=pD(1e3)|0,oa(s,(l|0)!=0,2456),n[2276]=(n[2276]|0)+1,Dr(l|0,8104,1e3)|0,o[s+2>>0]|0&&(n[l+4>>2]=2,n[l+12>>2]=4),n[l+976>>2]=s,l|0}function oa(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0;d=C,C=C+16|0,f=d,l||(n[f>>2]=c,Eg(s,5,3197,f)),C=d}function co(){return Ci(956)|0}function Us(s){s=s|0;var l=0;return l=Kt(1e3)|0,aa(l,s),oa(n[s+976>>2]|0,1,2456),n[2276]=(n[2276]|0)+1,n[l+944>>2]=0,l|0}function aa(s,l){s=s|0,l=l|0;var c=0;Dr(s|0,l|0,948)|0,Rm(s+948|0,l+948|0),c=s+960|0,s=l+960|0,l=c+40|0;do n[c>>2]=n[s>>2],c=c+4|0,s=s+4|0;while((c|0)<(l|0))}function la(s){s=s|0;var l=0,c=0,f=0,d=0;if(l=s+944|0,c=n[l>>2]|0,c|0&&(Ho(c+948|0,s)|0,n[l>>2]=0),c=wi(s)|0,c|0){l=0;do n[(gs(s,l)|0)+944>>2]=0,l=l+1|0;while((l|0)!=(c|0))}c=s+948|0,f=n[c>>2]|0,d=s+952|0,l=n[d>>2]|0,(l|0)!=(f|0)&&(n[d>>2]=l+(~((l+-4-f|0)>>>2)<<2)),ds(c),hD(s),n[2276]=(n[2276]|0)+-1}function Ho(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0;f=n[s>>2]|0,k=s+4|0,c=n[k>>2]|0,m=c;e:do if((f|0)==(c|0))d=f,B=4;else for(s=f;;){if((n[s>>2]|0)==(l|0)){d=s,B=4;break e}if(s=s+4|0,(s|0)==(c|0)){s=0;break}}while(0);return(B|0)==4&&((d|0)!=(c|0)?(f=d+4|0,s=m-f|0,l=s>>2,l&&(Mw(d|0,f|0,s|0)|0,c=n[k>>2]|0),s=d+(l<<2)|0,(c|0)==(s|0)||(n[k>>2]=c+(~((c+-4-s|0)>>>2)<<2)),s=1):s=0),s|0}function wi(s){return s=s|0,(n[s+952>>2]|0)-(n[s+948>>2]|0)>>2|0}function gs(s,l){s=s|0,l=l|0;var c=0;return c=n[s+948>>2]|0,(n[s+952>>2]|0)-c>>2>>>0>l>>>0?s=n[c+(l<<2)>>2]|0:s=0,s|0}function ds(s){s=s|0;var l=0,c=0,f=0,d=0;f=C,C=C+32|0,l=f,d=n[s>>2]|0,c=(n[s+4>>2]|0)-d|0,((n[s+8>>2]|0)-d|0)>>>0>c>>>0&&(d=c>>2,Ip(l,d,d,s+8|0),Bg(s,l),_A(l)),C=f}function ms(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0,M=0;M=wi(s)|0;do if(M|0){if((n[(gs(s,0)|0)+944>>2]|0)==(s|0)){if(!(Ho(s+948|0,l)|0))break;Dr(l+400|0,8504,540)|0,n[l+944>>2]=0,Le(s);break}B=n[(n[s+976>>2]|0)+12>>2]|0,k=s+948|0,Q=(B|0)==0,c=0,m=0;do f=n[(n[k>>2]|0)+(m<<2)>>2]|0,(f|0)==(l|0)?Le(s):(d=Us(f)|0,n[(n[k>>2]|0)+(c<<2)>>2]=d,n[d+944>>2]=s,Q||TR[B&15](f,d,s,c),c=c+1|0),m=m+1|0;while((m|0)!=(M|0));if(c>>>0>>0){Q=s+948|0,k=s+952|0,B=c,c=n[k>>2]|0;do m=(n[Q>>2]|0)+(B<<2)|0,f=m+4|0,d=c-f|0,l=d>>2,l&&(Mw(m|0,f|0,d|0)|0,c=n[k>>2]|0),d=c,f=m+(l<<2)|0,(d|0)!=(f|0)&&(c=d+(~((d+-4-f|0)>>>2)<<2)|0,n[k>>2]=c),B=B+1|0;while((B|0)!=(M|0))}}while(0)}function _s(s){s=s|0;var l=0,c=0,f=0,d=0;Un(s,(wi(s)|0)==0,2491),Un(s,(n[s+944>>2]|0)==0,2545),l=s+948|0,c=n[l>>2]|0,f=s+952|0,d=n[f>>2]|0,(d|0)!=(c|0)&&(n[f>>2]=d+(~((d+-4-c|0)>>>2)<<2)),ds(l),l=s+976|0,c=n[l>>2]|0,Dr(s|0,8104,1e3)|0,o[c+2>>0]|0&&(n[s+4>>2]=2,n[s+12>>2]=4),n[l>>2]=c}function Un(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0;d=C,C=C+16|0,f=d,l||(n[f>>2]=c,Ao(s,5,3197,f)),C=d}function Sn(){return n[2276]|0}function ys(){var s=0;return s=pD(20)|0,We((s|0)!=0,2592),n[2277]=(n[2277]|0)+1,n[s>>2]=n[239],n[s+4>>2]=n[240],n[s+8>>2]=n[241],n[s+12>>2]=n[242],n[s+16>>2]=n[243],s|0}function We(s,l){s=s|0,l=l|0;var c=0,f=0;f=C,C=C+16|0,c=f,s||(n[c>>2]=l,Ao(0,5,3197,c)),C=f}function tt(s){s=s|0,hD(s),n[2277]=(n[2277]|0)+-1}function It(s,l){s=s|0,l=l|0;var c=0;l?(Un(s,(wi(s)|0)==0,2629),c=1):(c=0,l=0),n[s+964>>2]=l,n[s+988>>2]=c}function nr(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;f=C,C=C+16|0,m=f+8|0,d=f+4|0,B=f,n[d>>2]=l,Un(s,(n[l+944>>2]|0)==0,2709),Un(s,(n[s+964>>2]|0)==0,2763),$(s),l=s+948|0,n[B>>2]=(n[l>>2]|0)+(c<<2),n[m>>2]=n[B>>2],ye(l,m,d)|0,n[(n[d>>2]|0)+944>>2]=s,Le(s),C=f}function $(s){s=s|0;var l=0,c=0,f=0,d=0,m=0,B=0,k=0;if(c=wi(s)|0,c|0&&(n[(gs(s,0)|0)+944>>2]|0)!=(s|0)){f=n[(n[s+976>>2]|0)+12>>2]|0,d=s+948|0,m=(f|0)==0,l=0;do B=n[(n[d>>2]|0)+(l<<2)>>2]|0,k=Us(B)|0,n[(n[d>>2]|0)+(l<<2)>>2]=k,n[k+944>>2]=s,m||TR[f&15](B,k,s,l),l=l+1|0;while((l|0)!=(c|0))}}function ye(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0,j=0,se=0,Ge=0,Me=0,Qe=0,et=0,Xe=0;et=C,C=C+64|0,j=et+52|0,k=et+48|0,se=et+28|0,Ge=et+24|0,Me=et+20|0,Qe=et,f=n[s>>2]|0,m=f,l=f+((n[l>>2]|0)-m>>2<<2)|0,f=s+4|0,d=n[f>>2]|0,B=s+8|0;do if(d>>>0<(n[B>>2]|0)>>>0){if((l|0)==(d|0)){n[l>>2]=n[c>>2],n[f>>2]=(n[f>>2]|0)+4;break}HA(s,l,d,l+4|0),l>>>0<=c>>>0&&(c=(n[f>>2]|0)>>>0>c>>>0?c+4|0:c),n[l>>2]=n[c>>2]}else{f=(d-m>>2)+1|0,d=N(s)|0,d>>>0>>0&&zr(s),O=n[s>>2]|0,M=(n[B>>2]|0)-O|0,m=M>>1,Ip(Qe,M>>2>>>0>>1>>>0?m>>>0>>0?f:m:d,l-O>>2,s+8|0),O=Qe+8|0,f=n[O>>2]|0,m=Qe+12|0,M=n[m>>2]|0,B=M,Q=f;do if((f|0)==(M|0)){if(M=Qe+4|0,f=n[M>>2]|0,Xe=n[Qe>>2]|0,d=Xe,f>>>0<=Xe>>>0){f=B-d>>1,f=(f|0)==0?1:f,Ip(se,f,f>>>2,n[Qe+16>>2]|0),n[Ge>>2]=n[M>>2],n[Me>>2]=n[O>>2],n[k>>2]=n[Ge>>2],n[j>>2]=n[Me>>2],Dw(se,k,j),f=n[Qe>>2]|0,n[Qe>>2]=n[se>>2],n[se>>2]=f,f=se+4|0,Xe=n[M>>2]|0,n[M>>2]=n[f>>2],n[f>>2]=Xe,f=se+8|0,Xe=n[O>>2]|0,n[O>>2]=n[f>>2],n[f>>2]=Xe,f=se+12|0,Xe=n[m>>2]|0,n[m>>2]=n[f>>2],n[f>>2]=Xe,_A(se),f=n[O>>2]|0;break}m=f,B=((m-d>>2)+1|0)/-2|0,k=f+(B<<2)|0,d=Q-m|0,m=d>>2,m&&(Mw(k|0,f|0,d|0)|0,f=n[M>>2]|0),Xe=k+(m<<2)|0,n[O>>2]=Xe,n[M>>2]=f+(B<<2),f=Xe}while(0);n[f>>2]=n[c>>2],n[O>>2]=(n[O>>2]|0)+4,l=vg(s,Qe,l)|0,_A(Qe)}while(0);return C=et,l|0}function Le(s){s=s|0;var l=0;do{if(l=s+984|0,o[l>>0]|0)break;o[l>>0]=1,h[s+504>>2]=y(ce),s=n[s+944>>2]|0}while((s|0)!=0)}function pt(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-4-f|0)>>>2)<<2)),gt(c))}function ht(s){return s=s|0,n[s+944>>2]|0}function Tt(s){s=s|0,Un(s,(n[s+964>>2]|0)!=0,2832),Le(s)}function er(s){return s=s|0,(o[s+984>>0]|0)!=0|0}function $r(s,l){s=s|0,l=l|0,QUe(s,l,400)|0&&(Dr(s|0,l|0,400)|0,Le(s))}function ji(s){s=s|0;var l=Ze;return l=y(h[s+44>>2]),s=_t(l)|0,y(s?y(0):l)}function es(s){s=s|0;var l=Ze;return l=y(h[s+48>>2]),_t(l)|0&&(l=o[(n[s+976>>2]|0)+2>>0]|0?y(1):y(0)),y(l)}function bi(s,l){s=s|0,l=l|0,n[s+980>>2]=l}function qo(s){return s=s|0,n[s+980>>2]|0}function kA(s,l){s=s|0,l=l|0;var c=0;c=s+4|0,(n[c>>2]|0)!=(l|0)&&(n[c>>2]=l,Le(s))}function QA(s){return s=s|0,n[s+4>>2]|0}function Ap(s,l){s=s|0,l=l|0;var c=0;c=s+8|0,(n[c>>2]|0)!=(l|0)&&(n[c>>2]=l,Le(s))}function ig(s){return s=s|0,n[s+8>>2]|0}function gu(s,l){s=s|0,l=l|0;var c=0;c=s+12|0,(n[c>>2]|0)!=(l|0)&&(n[c>>2]=l,Le(s))}function sg(s){return s=s|0,n[s+12>>2]|0}function du(s,l){s=s|0,l=l|0;var c=0;c=s+16|0,(n[c>>2]|0)!=(l|0)&&(n[c>>2]=l,Le(s))}function uo(s){return s=s|0,n[s+16>>2]|0}function FA(s,l){s=s|0,l=l|0;var c=0;c=s+20|0,(n[c>>2]|0)!=(l|0)&&(n[c>>2]=l,Le(s))}function mc(s){return s=s|0,n[s+20>>2]|0}function ca(s,l){s=s|0,l=l|0;var c=0;c=s+24|0,(n[c>>2]|0)!=(l|0)&&(n[c>>2]=l,Le(s))}function og(s){return s=s|0,n[s+24>>2]|0}function yc(s,l){s=s|0,l=l|0;var c=0;c=s+28|0,(n[c>>2]|0)!=(l|0)&&(n[c>>2]=l,Le(s))}function Pm(s){return s=s|0,n[s+28>>2]|0}function ag(s,l){s=s|0,l=l|0;var c=0;c=s+32|0,(n[c>>2]|0)!=(l|0)&&(n[c>>2]=l,Le(s))}function $n(s){return s=s|0,n[s+32>>2]|0}function fp(s,l){s=s|0,l=l|0;var c=0;c=s+36|0,(n[c>>2]|0)!=(l|0)&&(n[c>>2]=l,Le(s))}function lg(s){return s=s|0,n[s+36>>2]|0}function RA(s,l){s=s|0,l=y(l);var c=0;c=s+40|0,y(h[c>>2])!=l&&(h[c>>2]=l,Le(s))}function Hs(s,l){s=s|0,l=y(l);var c=0;c=s+44|0,y(h[c>>2])!=l&&(h[c>>2]=l,Le(s))}function mu(s,l){s=s|0,l=y(l);var c=0;c=s+48|0,y(h[c>>2])!=l&&(h[c>>2]=l,Le(s))}function Ha(s,l){s=s|0,l=y(l);var c=0,f=0,d=0,m=0;m=_t(l)|0,c=(m^1)&1,f=s+52|0,d=s+56|0,m|y(h[f>>2])==l&&(n[d>>2]|0)==(c|0)||(h[f>>2]=l,n[d>>2]=c,Le(s))}function Gi(s,l){s=s|0,l=y(l);var c=0,f=0;f=s+52|0,c=s+56|0,y(h[f>>2])==l&&(n[c>>2]|0)==2||(h[f>>2]=l,f=_t(l)|0,n[c>>2]=f?3:2,Le(s))}function ua(s,l){s=s|0,l=l|0;var c=0,f=0;f=l+52|0,c=n[f+4>>2]|0,l=s,n[l>>2]=n[f>>2],n[l+4>>2]=c}function yu(s,l,c){s=s|0,l=l|0,c=y(c);var f=0,d=0,m=0;m=_t(c)|0,f=(m^1)&1,d=s+132+(l<<3)|0,l=s+132+(l<<3)+4|0,m|y(h[d>>2])==c&&(n[l>>2]|0)==(f|0)||(h[d>>2]=c,n[l>>2]=f,Le(s))}function Es(s,l,c){s=s|0,l=l|0,c=y(c);var f=0,d=0,m=0;m=_t(c)|0,f=m?0:2,d=s+132+(l<<3)|0,l=s+132+(l<<3)+4|0,m|y(h[d>>2])==c&&(n[l>>2]|0)==(f|0)||(h[d>>2]=c,n[l>>2]=f,Le(s))}function Ec(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=l+132+(c<<3)|0,l=n[f+4>>2]|0,c=s,n[c>>2]=n[f>>2],n[c+4>>2]=l}function Cc(s,l,c){s=s|0,l=l|0,c=y(c);var f=0,d=0,m=0;m=_t(c)|0,f=(m^1)&1,d=s+60+(l<<3)|0,l=s+60+(l<<3)+4|0,m|y(h[d>>2])==c&&(n[l>>2]|0)==(f|0)||(h[d>>2]=c,n[l>>2]=f,Le(s))}function G(s,l,c){s=s|0,l=l|0,c=y(c);var f=0,d=0,m=0;m=_t(c)|0,f=m?0:2,d=s+60+(l<<3)|0,l=s+60+(l<<3)+4|0,m|y(h[d>>2])==c&&(n[l>>2]|0)==(f|0)||(h[d>>2]=c,n[l>>2]=f,Le(s))}function Dt(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=l+60+(c<<3)|0,l=n[f+4>>2]|0,c=s,n[c>>2]=n[f>>2],n[c+4>>2]=l}function wl(s,l){s=s|0,l=l|0;var c=0;c=s+60+(l<<3)+4|0,(n[c>>2]|0)!=3&&(h[s+60+(l<<3)>>2]=y(ce),n[c>>2]=3,Le(s))}function xi(s,l,c){s=s|0,l=l|0,c=y(c);var f=0,d=0,m=0;m=_t(c)|0,f=(m^1)&1,d=s+204+(l<<3)|0,l=s+204+(l<<3)+4|0,m|y(h[d>>2])==c&&(n[l>>2]|0)==(f|0)||(h[d>>2]=c,n[l>>2]=f,Le(s))}function wc(s,l,c){s=s|0,l=l|0,c=y(c);var f=0,d=0,m=0;m=_t(c)|0,f=m?0:2,d=s+204+(l<<3)|0,l=s+204+(l<<3)+4|0,m|y(h[d>>2])==c&&(n[l>>2]|0)==(f|0)||(h[d>>2]=c,n[l>>2]=f,Le(s))}function ct(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=l+204+(c<<3)|0,l=n[f+4>>2]|0,c=s,n[c>>2]=n[f>>2],n[c+4>>2]=l}function Eu(s,l,c){s=s|0,l=l|0,c=y(c);var f=0,d=0,m=0;m=_t(c)|0,f=(m^1)&1,d=s+276+(l<<3)|0,l=s+276+(l<<3)+4|0,m|y(h[d>>2])==c&&(n[l>>2]|0)==(f|0)||(h[d>>2]=c,n[l>>2]=f,Le(s))}function cg(s,l){return s=s|0,l=l|0,y(h[s+276+(l<<3)>>2])}function yw(s,l){s=s|0,l=y(l);var c=0,f=0,d=0,m=0;m=_t(l)|0,c=(m^1)&1,f=s+348|0,d=s+352|0,m|y(h[f>>2])==l&&(n[d>>2]|0)==(c|0)||(h[f>>2]=l,n[d>>2]=c,Le(s))}function TA(s,l){s=s|0,l=y(l);var c=0,f=0;f=s+348|0,c=s+352|0,y(h[f>>2])==l&&(n[c>>2]|0)==2||(h[f>>2]=l,f=_t(l)|0,n[c>>2]=f?3:2,Le(s))}function pp(s){s=s|0;var l=0;l=s+352|0,(n[l>>2]|0)!=3&&(h[s+348>>2]=y(ce),n[l>>2]=3,Le(s))}function Br(s,l){s=s|0,l=l|0;var c=0,f=0;f=l+348|0,c=n[f+4>>2]|0,l=s,n[l>>2]=n[f>>2],n[l+4>>2]=c}function Cs(s,l){s=s|0,l=y(l);var c=0,f=0,d=0,m=0;m=_t(l)|0,c=(m^1)&1,f=s+356|0,d=s+360|0,m|y(h[f>>2])==l&&(n[d>>2]|0)==(c|0)||(h[f>>2]=l,n[d>>2]=c,Le(s))}function ug(s,l){s=s|0,l=y(l);var c=0,f=0;f=s+356|0,c=s+360|0,y(h[f>>2])==l&&(n[c>>2]|0)==2||(h[f>>2]=l,f=_t(l)|0,n[c>>2]=f?3:2,Le(s))}function Ag(s){s=s|0;var l=0;l=s+360|0,(n[l>>2]|0)!=3&&(h[s+356>>2]=y(ce),n[l>>2]=3,Le(s))}function fg(s,l){s=s|0,l=l|0;var c=0,f=0;f=l+356|0,c=n[f+4>>2]|0,l=s,n[l>>2]=n[f>>2],n[l+4>>2]=c}function hp(s,l){s=s|0,l=y(l);var c=0,f=0,d=0,m=0;m=_t(l)|0,c=(m^1)&1,f=s+364|0,d=s+368|0,m|y(h[f>>2])==l&&(n[d>>2]|0)==(c|0)||(h[f>>2]=l,n[d>>2]=c,Le(s))}function Ic(s,l){s=s|0,l=y(l);var c=0,f=0,d=0,m=0;m=_t(l)|0,c=m?0:2,f=s+364|0,d=s+368|0,m|y(h[f>>2])==l&&(n[d>>2]|0)==(c|0)||(h[f>>2]=l,n[d>>2]=c,Le(s))}function Ct(s,l){s=s|0,l=l|0;var c=0,f=0;f=l+364|0,c=n[f+4>>2]|0,l=s,n[l>>2]=n[f>>2],n[l+4>>2]=c}function bm(s,l){s=s|0,l=y(l);var c=0,f=0,d=0,m=0;m=_t(l)|0,c=(m^1)&1,f=s+372|0,d=s+376|0,m|y(h[f>>2])==l&&(n[d>>2]|0)==(c|0)||(h[f>>2]=l,n[d>>2]=c,Le(s))}function pg(s,l){s=s|0,l=y(l);var c=0,f=0,d=0,m=0;m=_t(l)|0,c=m?0:2,f=s+372|0,d=s+376|0,m|y(h[f>>2])==l&&(n[d>>2]|0)==(c|0)||(h[f>>2]=l,n[d>>2]=c,Le(s))}function hg(s,l){s=s|0,l=l|0;var c=0,f=0;f=l+372|0,c=n[f+4>>2]|0,l=s,n[l>>2]=n[f>>2],n[l+4>>2]=c}function Cu(s,l){s=s|0,l=y(l);var c=0,f=0,d=0,m=0;m=_t(l)|0,c=(m^1)&1,f=s+380|0,d=s+384|0,m|y(h[f>>2])==l&&(n[d>>2]|0)==(c|0)||(h[f>>2]=l,n[d>>2]=c,Le(s))}function xm(s,l){s=s|0,l=y(l);var c=0,f=0,d=0,m=0;m=_t(l)|0,c=m?0:2,f=s+380|0,d=s+384|0,m|y(h[f>>2])==l&&(n[d>>2]|0)==(c|0)||(h[f>>2]=l,n[d>>2]=c,Le(s))}function gg(s,l){s=s|0,l=l|0;var c=0,f=0;f=l+380|0,c=n[f+4>>2]|0,l=s,n[l>>2]=n[f>>2],n[l+4>>2]=c}function wu(s,l){s=s|0,l=y(l);var c=0,f=0,d=0,m=0;m=_t(l)|0,c=(m^1)&1,f=s+388|0,d=s+392|0,m|y(h[f>>2])==l&&(n[d>>2]|0)==(c|0)||(h[f>>2]=l,n[d>>2]=c,Le(s))}function Ew(s,l){s=s|0,l=y(l);var c=0,f=0,d=0,m=0;m=_t(l)|0,c=m?0:2,f=s+388|0,d=s+392|0,m|y(h[f>>2])==l&&(n[d>>2]|0)==(c|0)||(h[f>>2]=l,n[d>>2]=c,Le(s))}function km(s,l){s=s|0,l=l|0;var c=0,f=0;f=l+388|0,c=n[f+4>>2]|0,l=s,n[l>>2]=n[f>>2],n[l+4>>2]=c}function Aa(s,l){s=s|0,l=y(l);var c=0;c=s+396|0,y(h[c>>2])!=l&&(h[c>>2]=l,Le(s))}function Bc(s){return s=s|0,y(h[s+396>>2])}function Il(s){return s=s|0,y(h[s+400>>2])}function Iu(s){return s=s|0,y(h[s+404>>2])}function dg(s){return s=s|0,y(h[s+408>>2])}function NA(s){return s=s|0,y(h[s+412>>2])}function gp(s){return s=s|0,y(h[s+416>>2])}function qa(s){return s=s|0,y(h[s+420>>2])}function mg(s,l){switch(s=s|0,l=l|0,Un(s,(l|0)<6,2918),l|0){case 0:{l=(n[s+496>>2]|0)==2?5:4;break}case 2:{l=(n[s+496>>2]|0)==2?4:5;break}default:}return y(h[s+424+(l<<2)>>2])}function dp(s,l){switch(s=s|0,l=l|0,Un(s,(l|0)<6,2918),l|0){case 0:{l=(n[s+496>>2]|0)==2?5:4;break}case 2:{l=(n[s+496>>2]|0)==2?4:5;break}default:}return y(h[s+448+(l<<2)>>2])}function jo(s,l){switch(s=s|0,l=l|0,Un(s,(l|0)<6,2918),l|0){case 0:{l=(n[s+496>>2]|0)==2?5:4;break}case 2:{l=(n[s+496>>2]|0)==2?4:5;break}default:}return y(h[s+472+(l<<2)>>2])}function ws(s,l){s=s|0,l=l|0;var c=0,f=Ze;return c=n[s+4>>2]|0,(c|0)==(n[l+4>>2]|0)?c?(f=y(h[s>>2]),s=y(ne(y(f-y(h[l>>2]))))>2]=0,n[f+4>>2]=0,n[f+8>>2]=0,Ma(f|0,s|0,l|0,0),Ao(s,3,(o[f+11>>0]|0)<0?n[f>>2]|0:f,c),e3e(f),C=c}function Go(s,l,c,f){s=y(s),l=y(l),c=c|0,f=f|0;var d=Ze;s=y(s*l),d=y(bR(s,y(1)));do if(Ii(d,y(0))|0)s=y(s-d);else{if(s=y(s-d),Ii(d,y(1))|0){s=y(s+y(1));break}if(c){s=y(s+y(1));break}f||(d>y(.5)?d=y(1):(f=Ii(d,y(.5))|0,d=y(f?1:0)),s=y(s+d))}while(0);return y(s/l)}function LA(s,l,c,f,d,m,B,k,Q,M,O,j,se){s=s|0,l=y(l),c=c|0,f=y(f),d=d|0,m=y(m),B=B|0,k=y(k),Q=y(Q),M=y(M),O=y(O),j=y(j),se=se|0;var Ge=0,Me=Ze,Qe=Ze,et=Ze,Xe=Ze,lt=Ze,Ue=Ze;return Q>2]),Me!=y(0))?(et=y(Go(l,Me,0,0)),Xe=y(Go(f,Me,0,0)),Qe=y(Go(m,Me,0,0)),Me=y(Go(k,Me,0,0))):(Qe=m,et=l,Me=k,Xe=f),(d|0)==(s|0)?Ge=Ii(Qe,et)|0:Ge=0,(B|0)==(c|0)?se=Ii(Me,Xe)|0:se=0,!Ge&&(lt=y(l-O),!(mp(s,lt,Q)|0))&&!(yp(s,lt,d,Q)|0)?Ge=yg(s,lt,d,m,Q)|0:Ge=1,!se&&(Ue=y(f-j),!(mp(c,Ue,M)|0))&&!(yp(c,Ue,B,M)|0)?se=yg(c,Ue,B,k,M)|0:se=1,se=Ge&se),se|0}function mp(s,l,c){return s=s|0,l=y(l),c=y(c),(s|0)==1?s=Ii(l,c)|0:s=0,s|0}function yp(s,l,c,f){return s=s|0,l=y(l),c=c|0,f=y(f),(s|0)==2&(c|0)==0?l>=f?s=1:s=Ii(l,f)|0:s=0,s|0}function yg(s,l,c,f,d){return s=s|0,l=y(l),c=c|0,f=y(f),d=y(d),(s|0)==2&(c|0)==2&f>l?d<=l?s=1:s=Ii(l,d)|0:s=0,s|0}function fa(s,l,c,f,d,m,B,k,Q,M,O){s=s|0,l=y(l),c=y(c),f=f|0,d=d|0,m=m|0,B=y(B),k=y(k),Q=Q|0,M=M|0,O=O|0;var j=0,se=0,Ge=0,Me=0,Qe=Ze,et=Ze,Xe=0,lt=0,Ue=0,je=0,Lt=0,Mr=0,or=0,Xt=0,Sr=0,Nr=0,ir=0,xn=Ze,go=Ze,mo=Ze,yo=0,ya=0;ir=C,C=C+160|0,Xt=ir+152|0,or=ir+120|0,Mr=ir+104|0,Ue=ir+72|0,Me=ir+56|0,Lt=ir+8|0,lt=ir,je=(n[2279]|0)+1|0,n[2279]=je,Sr=s+984|0,(o[Sr>>0]|0)!=0&&(n[s+512>>2]|0)!=(n[2278]|0)?Xe=4:(n[s+516>>2]|0)==(f|0)?Nr=0:Xe=4,(Xe|0)==4&&(n[s+520>>2]=0,n[s+924>>2]=-1,n[s+928>>2]=-1,h[s+932>>2]=y(-1),h[s+936>>2]=y(-1),Nr=1);e:do if(n[s+964>>2]|0)if(Qe=y(ln(s,2,B)),et=y(ln(s,0,B)),j=s+916|0,mo=y(h[j>>2]),go=y(h[s+920>>2]),xn=y(h[s+932>>2]),LA(d,l,m,c,n[s+924>>2]|0,mo,n[s+928>>2]|0,go,xn,y(h[s+936>>2]),Qe,et,O)|0)Xe=22;else if(Ge=n[s+520>>2]|0,!Ge)Xe=21;else for(se=0;;){if(j=s+524+(se*24|0)|0,xn=y(h[j>>2]),go=y(h[s+524+(se*24|0)+4>>2]),mo=y(h[s+524+(se*24|0)+16>>2]),LA(d,l,m,c,n[s+524+(se*24|0)+8>>2]|0,xn,n[s+524+(se*24|0)+12>>2]|0,go,mo,y(h[s+524+(se*24|0)+20>>2]),Qe,et,O)|0){Xe=22;break e}if(se=se+1|0,se>>>0>=Ge>>>0){Xe=21;break}}else{if(Q){if(j=s+916|0,!(Ii(y(h[j>>2]),l)|0)){Xe=21;break}if(!(Ii(y(h[s+920>>2]),c)|0)){Xe=21;break}if((n[s+924>>2]|0)!=(d|0)){Xe=21;break}j=(n[s+928>>2]|0)==(m|0)?j:0,Xe=22;break}if(Ge=n[s+520>>2]|0,!Ge)Xe=21;else for(se=0;;){if(j=s+524+(se*24|0)|0,Ii(y(h[j>>2]),l)|0&&Ii(y(h[s+524+(se*24|0)+4>>2]),c)|0&&(n[s+524+(se*24|0)+8>>2]|0)==(d|0)&&(n[s+524+(se*24|0)+12>>2]|0)==(m|0)){Xe=22;break e}if(se=se+1|0,se>>>0>=Ge>>>0){Xe=21;break}}}while(0);do if((Xe|0)==21)o[11697]|0?(j=0,Xe=28):(j=0,Xe=31);else if((Xe|0)==22){if(se=(o[11697]|0)!=0,!((j|0)!=0&(Nr^1)))if(se){Xe=28;break}else{Xe=31;break}Me=j+16|0,n[s+908>>2]=n[Me>>2],Ge=j+20|0,n[s+912>>2]=n[Ge>>2],(o[11698]|0)==0|se^1||(n[lt>>2]=OA(je)|0,n[lt+4>>2]=je,Ao(s,4,2972,lt),se=n[s+972>>2]|0,se|0&&tf[se&127](s),d=ja(d,Q)|0,m=ja(m,Q)|0,ya=+y(h[Me>>2]),yo=+y(h[Ge>>2]),n[Lt>>2]=d,n[Lt+4>>2]=m,E[Lt+8>>3]=+l,E[Lt+16>>3]=+c,E[Lt+24>>3]=ya,E[Lt+32>>3]=yo,n[Lt+40>>2]=M,Ao(s,4,2989,Lt))}while(0);return(Xe|0)==28&&(se=OA(je)|0,n[Me>>2]=se,n[Me+4>>2]=je,n[Me+8>>2]=Nr?3047:11699,Ao(s,4,3038,Me),se=n[s+972>>2]|0,se|0&&tf[se&127](s),Lt=ja(d,Q)|0,Xe=ja(m,Q)|0,n[Ue>>2]=Lt,n[Ue+4>>2]=Xe,E[Ue+8>>3]=+l,E[Ue+16>>3]=+c,n[Ue+24>>2]=M,Ao(s,4,3049,Ue),Xe=31),(Xe|0)==31&&(si(s,l,c,f,d,m,B,k,Q,O),o[11697]|0&&(se=n[2279]|0,Lt=OA(se)|0,n[Mr>>2]=Lt,n[Mr+4>>2]=se,n[Mr+8>>2]=Nr?3047:11699,Ao(s,4,3083,Mr),se=n[s+972>>2]|0,se|0&&tf[se&127](s),Lt=ja(d,Q)|0,Mr=ja(m,Q)|0,yo=+y(h[s+908>>2]),ya=+y(h[s+912>>2]),n[or>>2]=Lt,n[or+4>>2]=Mr,E[or+8>>3]=yo,E[or+16>>3]=ya,n[or+24>>2]=M,Ao(s,4,3092,or)),n[s+516>>2]=f,j||(se=s+520|0,j=n[se>>2]|0,(j|0)==16&&(o[11697]|0&&Ao(s,4,3124,Xt),n[se>>2]=0,j=0),Q?j=s+916|0:(n[se>>2]=j+1,j=s+524+(j*24|0)|0),h[j>>2]=l,h[j+4>>2]=c,n[j+8>>2]=d,n[j+12>>2]=m,n[j+16>>2]=n[s+908>>2],n[j+20>>2]=n[s+912>>2],j=0)),Q&&(n[s+416>>2]=n[s+908>>2],n[s+420>>2]=n[s+912>>2],o[s+985>>0]=1,o[Sr>>0]=0),n[2279]=(n[2279]|0)+-1,n[s+512>>2]=n[2278],C=ir,Nr|(j|0)==0|0}function ln(s,l,c){s=s|0,l=l|0,c=y(c);var f=Ze;return f=y(K(s,l,c)),y(f+y(re(s,l,c)))}function Ao(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;m=C,C=C+16|0,d=m,n[d>>2]=f,s?f=n[s+976>>2]|0:f=0,Cg(f,s,l,c,d),C=m}function OA(s){return s=s|0,(s>>>0>60?3201:3201+(60-s)|0)|0}function ja(s,l){s=s|0,l=l|0;var c=0,f=0,d=0;return d=C,C=C+32|0,c=d+12|0,f=d,n[c>>2]=n[254],n[c+4>>2]=n[255],n[c+8>>2]=n[256],n[f>>2]=n[257],n[f+4>>2]=n[258],n[f+8>>2]=n[259],(s|0)>2?s=11699:s=n[(l?f:c)+(s<<2)>>2]|0,C=d,s|0}function si(s,l,c,f,d,m,B,k,Q,M){s=s|0,l=y(l),c=y(c),f=f|0,d=d|0,m=m|0,B=y(B),k=y(k),Q=Q|0,M=M|0;var O=0,j=0,se=0,Ge=0,Me=Ze,Qe=Ze,et=Ze,Xe=Ze,lt=Ze,Ue=Ze,je=Ze,Lt=0,Mr=0,or=0,Xt=Ze,Sr=Ze,Nr=0,ir=Ze,xn=0,go=0,mo=0,yo=0,ya=0,Fp=0,Rp=0,bl=0,Tp=0,Fu=0,Ru=0,Np=0,Lp=0,Op=0,Xr=0,xl=0,Mp=0,xc=0,Up=Ze,_p=Ze,Tu=Ze,Nu=Ze,kc=Ze,js=0,za=0,Wo=0,kl=0,nf=0,sf=Ze,Lu=Ze,of=Ze,af=Ze,Gs=Ze,vs=Ze,Ql=0,Rn=Ze,lf=Ze,Eo=Ze,Qc=Ze,Co=Ze,Fc=Ze,cf=0,uf=0,Rc=Ze,Ys=Ze,Fl=0,Af=0,ff=0,pf=0,xr=Ze,Jn=0,Ds=0,wo=0,Ws=0,Rr=0,ur=0,Rl=0,Jt=Ze,hf=0,li=0;Rl=C,C=C+16|0,js=Rl+12|0,za=Rl+8|0,Wo=Rl+4|0,kl=Rl,Un(s,(d|0)==0|(_t(l)|0)^1,3326),Un(s,(m|0)==0|(_t(c)|0)^1,3406),Ds=mt(s,f)|0,n[s+496>>2]=Ds,Rr=fr(2,Ds)|0,ur=fr(0,Ds)|0,h[s+440>>2]=y(K(s,Rr,B)),h[s+444>>2]=y(re(s,Rr,B)),h[s+428>>2]=y(K(s,ur,B)),h[s+436>>2]=y(re(s,ur,B)),h[s+464>>2]=y(Cr(s,Rr)),h[s+468>>2]=y(yn(s,Rr)),h[s+452>>2]=y(Cr(s,ur)),h[s+460>>2]=y(yn(s,ur)),h[s+488>>2]=y(oi(s,Rr,B)),h[s+492>>2]=y(Oi(s,Rr,B)),h[s+476>>2]=y(oi(s,ur,B)),h[s+484>>2]=y(Oi(s,ur,B));do if(n[s+964>>2]|0)Ig(s,l,c,d,m,B,k);else{if(wo=s+948|0,Ws=(n[s+952>>2]|0)-(n[wo>>2]|0)>>2,!Ws){Gv(s,l,c,d,m,B,k);break}if(!Q&&Yv(s,l,c,d,m,B,k)|0)break;$(s),xl=s+508|0,o[xl>>0]=0,Rr=fr(n[s+4>>2]|0,Ds)|0,ur=ww(Rr,Ds)|0,Jn=pe(Rr)|0,Mp=n[s+8>>2]|0,Af=s+28|0,xc=(n[Af>>2]|0)!=0,Co=Jn?B:k,Rc=Jn?k:B,Up=y(Cp(s,Rr,B)),_p=y(Iw(s,Rr,B)),Me=y(Cp(s,ur,B)),Fc=y(En(s,Rr,B)),Ys=y(En(s,ur,B)),or=Jn?d:m,Fl=Jn?m:d,xr=Jn?Fc:Ys,lt=Jn?Ys:Fc,Qc=y(ln(s,2,B)),Xe=y(ln(s,0,B)),Qe=y(y(Gr(s+364|0,B))-xr),et=y(y(Gr(s+380|0,B))-xr),Ue=y(y(Gr(s+372|0,k))-lt),je=y(y(Gr(s+388|0,k))-lt),Tu=Jn?Qe:Ue,Nu=Jn?et:je,Qc=y(l-Qc),l=y(Qc-xr),_t(l)|0?xr=l:xr=y(_n(y(Tg(l,et)),Qe)),lf=y(c-Xe),l=y(lf-lt),_t(l)|0?Eo=l:Eo=y(_n(y(Tg(l,je)),Ue)),Qe=Jn?xr:Eo,Rn=Jn?Eo:xr;e:do if((or|0)==1)for(f=0,j=0;;){if(O=gs(s,j)|0,!f)y(rs(O))>y(0)&&y(qs(O))>y(0)?f=O:f=0;else if(Tm(O)|0){Ge=0;break e}if(j=j+1|0,j>>>0>=Ws>>>0){Ge=f;break}}else Ge=0;while(0);Lt=Ge+500|0,Mr=Ge+504|0,f=0,O=0,l=y(0),se=0;do{if(j=n[(n[wo>>2]|0)+(se<<2)>>2]|0,(n[j+36>>2]|0)==1)Bu(j),o[j+985>>0]=1,o[j+984>>0]=0;else{Bl(j),Q&&Ep(j,mt(j,Ds)|0,Qe,Rn,xr);do if((n[j+24>>2]|0)!=1)if((j|0)==(Ge|0)){n[Lt>>2]=n[2278],h[Mr>>2]=y(0);break}else{Nm(s,j,xr,d,Eo,xr,Eo,m,Ds,M);break}else O|0&&(n[O+960>>2]=j),n[j+960>>2]=0,O=j,f=(f|0)==0?j:f;while(0);vs=y(h[j+504>>2]),l=y(l+y(vs+y(ln(j,Rr,xr))))}se=se+1|0}while((se|0)!=(Ws|0));for(mo=l>Qe,Ql=xc&((or|0)==2&mo)?1:or,xn=(Fl|0)==1,ya=xn&(Q^1),Fp=(Ql|0)==1,Rp=(Ql|0)==2,bl=976+(Rr<<2)|0,Tp=(Fl|2|0)==2,Op=xn&(xc^1),Fu=1040+(ur<<2)|0,Ru=1040+(Rr<<2)|0,Np=976+(ur<<2)|0,Lp=(Fl|0)!=1,mo=xc&((or|0)!=0&mo),go=s+976|0,xn=xn^1,l=Qe,Nr=0,yo=0,vs=y(0),kc=y(0);;){e:do if(Nr>>>0>>0)for(Mr=n[wo>>2]|0,se=0,je=y(0),Ue=y(0),et=y(0),Qe=y(0),j=0,O=0,Ge=Nr;;){if(Lt=n[Mr+(Ge<<2)>>2]|0,(n[Lt+36>>2]|0)!=1&&(n[Lt+940>>2]=yo,(n[Lt+24>>2]|0)!=1)){if(Xe=y(ln(Lt,Rr,xr)),Xr=n[bl>>2]|0,c=y(Gr(Lt+380+(Xr<<3)|0,Co)),lt=y(h[Lt+504>>2]),c=y(Tg(c,lt)),c=y(_n(y(Gr(Lt+364+(Xr<<3)|0,Co)),c)),xc&(se|0)!=0&y(Xe+y(Ue+c))>l){m=se,Xe=je,or=Ge;break e}Xe=y(Xe+c),c=y(Ue+Xe),Xe=y(je+Xe),Tm(Lt)|0&&(et=y(et+y(rs(Lt))),Qe=y(Qe-y(lt*y(qs(Lt))))),O|0&&(n[O+960>>2]=Lt),n[Lt+960>>2]=0,se=se+1|0,O=Lt,j=(j|0)==0?Lt:j}else Xe=je,c=Ue;if(Ge=Ge+1|0,Ge>>>0>>0)je=Xe,Ue=c;else{m=se,or=Ge;break}}else m=0,Xe=y(0),et=y(0),Qe=y(0),j=0,or=Nr;while(0);Xr=et>y(0)&ety(0)&QeNu&((_t(Nu)|0)^1))l=Nu,Xr=51;else if(o[(n[go>>2]|0)+3>>0]|0)Xr=51;else{if(Xt!=y(0)&&y(rs(s))!=y(0)){Xr=53;break}l=Xe,Xr=53}while(0);if((Xr|0)==51&&(Xr=0,_t(l)|0?Xr=53:(Sr=y(l-Xe),ir=l)),(Xr|0)==53&&(Xr=0,Xe>2]|0,Ge=Sry(0),Ue=y(Sr/Xt),et=y(0),Xe=y(0),l=y(0),O=j;do c=y(Gr(O+380+(se<<3)|0,Co)),Qe=y(Gr(O+364+(se<<3)|0,Co)),Qe=y(Tg(c,y(_n(Qe,y(h[O+504>>2]))))),Ge?(c=y(Qe*y(qs(O))),c!=y(-0)&&(Jt=y(Qe-y(lt*c)),sf=y(Bi(O,Rr,Jt,ir,xr)),Jt!=sf)&&(et=y(et-y(sf-Qe)),l=y(l+c))):Lt&&(Lu=y(rs(O)),Lu!=y(0))&&(Jt=y(Qe+y(Ue*Lu)),of=y(Bi(O,Rr,Jt,ir,xr)),Jt!=of)&&(et=y(et-y(of-Qe)),Xe=y(Xe-Lu)),O=n[O+960>>2]|0;while((O|0)!=0);if(l=y(je+l),Qe=y(Sr+et),nf)l=y(0);else{lt=y(Xt+Xe),Ge=n[bl>>2]|0,Lt=Qey(0),lt=y(Qe/lt),l=y(0);do{Jt=y(Gr(j+380+(Ge<<3)|0,Co)),et=y(Gr(j+364+(Ge<<3)|0,Co)),et=y(Tg(Jt,y(_n(et,y(h[j+504>>2]))))),Lt?(Jt=y(et*y(qs(j))),Qe=y(-Jt),Jt!=y(-0)?(Jt=y(Ue*Qe),Qe=y(Bi(j,Rr,y(et+(Mr?Qe:Jt)),ir,xr))):Qe=et):se&&(af=y(rs(j)),af!=y(0))?Qe=y(Bi(j,Rr,y(et+y(lt*af)),ir,xr)):Qe=et,l=y(l-y(Qe-et)),Xe=y(ln(j,Rr,xr)),c=y(ln(j,ur,xr)),Qe=y(Qe+Xe),h[za>>2]=Qe,n[kl>>2]=1,et=y(h[j+396>>2]);e:do if(_t(et)|0){O=_t(Rn)|0;do if(!O){if(mo|(ts(j,ur,Rn)|0|xn)||(ha(s,j)|0)!=4||(n[(vl(j,ur)|0)+4>>2]|0)==3||(n[(Sc(j,ur)|0)+4>>2]|0)==3)break;h[js>>2]=Rn,n[Wo>>2]=1;break e}while(0);if(ts(j,ur,Rn)|0){O=n[j+992+(n[Np>>2]<<2)>>2]|0,Jt=y(c+y(Gr(O,Rn))),h[js>>2]=Jt,O=Lp&(n[O+4>>2]|0)==2,n[Wo>>2]=((_t(Jt)|0|O)^1)&1;break}else{h[js>>2]=Rn,n[Wo>>2]=O?0:2;break}}else Jt=y(Qe-Xe),Xt=y(Jt/et),Jt=y(et*Jt),n[Wo>>2]=1,h[js>>2]=y(c+(Jn?Xt:Jt));while(0);yr(j,Rr,ir,xr,kl,za),yr(j,ur,Rn,xr,Wo,js);do if(!(ts(j,ur,Rn)|0)&&(ha(s,j)|0)==4){if((n[(vl(j,ur)|0)+4>>2]|0)==3){O=0;break}O=(n[(Sc(j,ur)|0)+4>>2]|0)!=3}else O=0;while(0);Jt=y(h[za>>2]),Xt=y(h[js>>2]),hf=n[kl>>2]|0,li=n[Wo>>2]|0,fa(j,Jn?Jt:Xt,Jn?Xt:Jt,Ds,Jn?hf:li,Jn?li:hf,xr,Eo,Q&(O^1),3488,M)|0,o[xl>>0]=o[xl>>0]|o[j+508>>0],j=n[j+960>>2]|0}while((j|0)!=0)}}else l=y(0);if(l=y(Sr+l),li=l>0]=li|u[xl>>0],Rp&l>y(0)?(O=n[bl>>2]|0,(n[s+364+(O<<3)+4>>2]|0)!=0&&(Gs=y(Gr(s+364+(O<<3)|0,Co)),Gs>=y(0))?Qe=y(_n(y(0),y(Gs-y(ir-l)))):Qe=y(0)):Qe=l,Lt=Nr>>>0>>0,Lt){Ge=n[wo>>2]|0,se=Nr,O=0;do j=n[Ge+(se<<2)>>2]|0,n[j+24>>2]|0||(O=((n[(vl(j,Rr)|0)+4>>2]|0)==3&1)+O|0,O=O+((n[(Sc(j,Rr)|0)+4>>2]|0)==3&1)|0),se=se+1|0;while((se|0)!=(or|0));O?(Xe=y(0),c=y(0)):Xr=101}else Xr=101;e:do if((Xr|0)==101)switch(Xr=0,Mp|0){case 1:{O=0,Xe=y(Qe*y(.5)),c=y(0);break e}case 2:{O=0,Xe=Qe,c=y(0);break e}case 3:{if(m>>>0<=1){O=0,Xe=y(0),c=y(0);break e}c=y((m+-1|0)>>>0),O=0,Xe=y(0),c=y(y(_n(Qe,y(0)))/c);break e}case 5:{c=y(Qe/y((m+1|0)>>>0)),O=0,Xe=c;break e}case 4:{c=y(Qe/y(m>>>0)),O=0,Xe=y(c*y(.5));break e}default:{O=0,Xe=y(0),c=y(0);break e}}while(0);if(l=y(Up+Xe),Lt){et=y(Qe/y(O|0)),se=n[wo>>2]|0,j=Nr,Qe=y(0);do{O=n[se+(j<<2)>>2]|0;e:do if((n[O+36>>2]|0)!=1){switch(n[O+24>>2]|0){case 1:{if(gi(O,Rr)|0){if(!Q)break e;Jt=y(Or(O,Rr,ir)),Jt=y(Jt+y(Cr(s,Rr))),Jt=y(Jt+y(K(O,Rr,xr))),h[O+400+(n[Ru>>2]<<2)>>2]=Jt;break e}break}case 0:if(li=(n[(vl(O,Rr)|0)+4>>2]|0)==3,Jt=y(et+l),l=li?Jt:l,Q&&(li=O+400+(n[Ru>>2]<<2)|0,h[li>>2]=y(l+y(h[li>>2]))),li=(n[(Sc(O,Rr)|0)+4>>2]|0)==3,Jt=y(et+l),l=li?Jt:l,ya){Jt=y(c+y(ln(O,Rr,xr))),Qe=Rn,l=y(l+y(Jt+y(h[O+504>>2])));break e}else{l=y(l+y(c+y(ns(O,Rr,xr)))),Qe=y(_n(Qe,y(ns(O,ur,xr))));break e}default:}Q&&(Jt=y(Xe+y(Cr(s,Rr))),li=O+400+(n[Ru>>2]<<2)|0,h[li>>2]=y(Jt+y(h[li>>2])))}while(0);j=j+1|0}while((j|0)!=(or|0))}else Qe=y(0);if(c=y(_p+l),Tp?Xe=y(y(Bi(s,ur,y(Ys+Qe),Rc,B))-Ys):Xe=Rn,et=y(y(Bi(s,ur,y(Ys+(Op?Rn:Qe)),Rc,B))-Ys),Lt&Q){j=Nr;do{se=n[(n[wo>>2]|0)+(j<<2)>>2]|0;do if((n[se+36>>2]|0)!=1){if((n[se+24>>2]|0)==1){if(gi(se,ur)|0){if(Jt=y(Or(se,ur,Rn)),Jt=y(Jt+y(Cr(s,ur))),Jt=y(Jt+y(K(se,ur,xr))),O=n[Fu>>2]|0,h[se+400+(O<<2)>>2]=Jt,!(_t(Jt)|0))break}else O=n[Fu>>2]|0;Jt=y(Cr(s,ur)),h[se+400+(O<<2)>>2]=y(Jt+y(K(se,ur,xr)));break}O=ha(s,se)|0;do if((O|0)==4){if((n[(vl(se,ur)|0)+4>>2]|0)==3){Xr=139;break}if((n[(Sc(se,ur)|0)+4>>2]|0)==3){Xr=139;break}if(ts(se,ur,Rn)|0){l=Me;break}hf=n[se+908+(n[bl>>2]<<2)>>2]|0,n[js>>2]=hf,l=y(h[se+396>>2]),li=_t(l)|0,Qe=(n[v>>2]=hf,y(h[v>>2])),li?l=et:(Sr=y(ln(se,ur,xr)),Jt=y(Qe/l),l=y(l*Qe),l=y(Sr+(Jn?Jt:l))),h[za>>2]=l,h[js>>2]=y(y(ln(se,Rr,xr))+Qe),n[Wo>>2]=1,n[kl>>2]=1,yr(se,Rr,ir,xr,Wo,js),yr(se,ur,Rn,xr,kl,za),l=y(h[js>>2]),Sr=y(h[za>>2]),Jt=Jn?l:Sr,l=Jn?Sr:l,li=((_t(Jt)|0)^1)&1,fa(se,Jt,l,Ds,li,((_t(l)|0)^1)&1,xr,Eo,1,3493,M)|0,l=Me}else Xr=139;while(0);e:do if((Xr|0)==139){Xr=0,l=y(Xe-y(ns(se,ur,xr)));do if((n[(vl(se,ur)|0)+4>>2]|0)==3){if((n[(Sc(se,ur)|0)+4>>2]|0)!=3)break;l=y(Me+y(_n(y(0),y(l*y(.5)))));break e}while(0);if((n[(Sc(se,ur)|0)+4>>2]|0)==3){l=Me;break}if((n[(vl(se,ur)|0)+4>>2]|0)==3){l=y(Me+y(_n(y(0),l)));break}switch(O|0){case 1:{l=Me;break e}case 2:{l=y(Me+y(l*y(.5)));break e}default:{l=y(Me+l);break e}}}while(0);Jt=y(vs+l),li=se+400+(n[Fu>>2]<<2)|0,h[li>>2]=y(Jt+y(h[li>>2]))}while(0);j=j+1|0}while((j|0)!=(or|0))}if(vs=y(vs+et),kc=y(_n(kc,c)),m=yo+1|0,or>>>0>=Ws>>>0)break;l=ir,Nr=or,yo=m}do if(Q){if(O=m>>>0>1,!O&&!(Yi(s)|0))break;if(!(_t(Rn)|0)){l=y(Rn-vs);e:do switch(n[s+12>>2]|0){case 3:{Me=y(Me+l),Ue=y(0);break}case 2:{Me=y(Me+y(l*y(.5))),Ue=y(0);break}case 4:{Rn>vs?Ue=y(l/y(m>>>0)):Ue=y(0);break}case 7:if(Rn>vs){Me=y(Me+y(l/y(m<<1>>>0))),Ue=y(l/y(m>>>0)),Ue=O?Ue:y(0);break e}else{Me=y(Me+y(l*y(.5))),Ue=y(0);break e}case 6:{Ue=y(l/y(yo>>>0)),Ue=Rn>vs&O?Ue:y(0);break}default:Ue=y(0)}while(0);if(m|0)for(Lt=1040+(ur<<2)|0,Mr=976+(ur<<2)|0,Ge=0,j=0;;){e:do if(j>>>0>>0)for(Qe=y(0),et=y(0),l=y(0),se=j;;){O=n[(n[wo>>2]|0)+(se<<2)>>2]|0;do if((n[O+36>>2]|0)!=1&&(n[O+24>>2]|0)==0){if((n[O+940>>2]|0)!=(Ge|0))break e;if(Lm(O,ur)|0&&(Jt=y(h[O+908+(n[Mr>>2]<<2)>>2]),l=y(_n(l,y(Jt+y(ln(O,ur,xr)))))),(ha(s,O)|0)!=5)break;Gs=y(Ya(O)),Gs=y(Gs+y(K(O,0,xr))),Jt=y(h[O+912>>2]),Jt=y(y(Jt+y(ln(O,0,xr)))-Gs),Gs=y(_n(et,Gs)),Jt=y(_n(Qe,Jt)),Qe=Jt,et=Gs,l=y(_n(l,y(Gs+Jt)))}while(0);if(O=se+1|0,O>>>0>>0)se=O;else{se=O;break}}else et=y(0),l=y(0),se=j;while(0);if(lt=y(Ue+l),c=Me,Me=y(Me+lt),j>>>0>>0){Xe=y(c+et),O=j;do{j=n[(n[wo>>2]|0)+(O<<2)>>2]|0;e:do if((n[j+36>>2]|0)!=1&&(n[j+24>>2]|0)==0)switch(ha(s,j)|0){case 1:{Jt=y(c+y(K(j,ur,xr))),h[j+400+(n[Lt>>2]<<2)>>2]=Jt;break e}case 3:{Jt=y(y(Me-y(re(j,ur,xr)))-y(h[j+908+(n[Mr>>2]<<2)>>2])),h[j+400+(n[Lt>>2]<<2)>>2]=Jt;break e}case 2:{Jt=y(c+y(y(lt-y(h[j+908+(n[Mr>>2]<<2)>>2]))*y(.5))),h[j+400+(n[Lt>>2]<<2)>>2]=Jt;break e}case 4:{if(Jt=y(c+y(K(j,ur,xr))),h[j+400+(n[Lt>>2]<<2)>>2]=Jt,ts(j,ur,Rn)|0||(Jn?(Qe=y(h[j+908>>2]),l=y(Qe+y(ln(j,Rr,xr))),et=lt):(et=y(h[j+912>>2]),et=y(et+y(ln(j,ur,xr))),l=lt,Qe=y(h[j+908>>2])),Ii(l,Qe)|0&&Ii(et,y(h[j+912>>2]))|0))break e;fa(j,l,et,Ds,1,1,xr,Eo,1,3501,M)|0;break e}case 5:{h[j+404>>2]=y(y(Xe-y(Ya(j)))+y(Or(j,0,Rn)));break e}default:break e}while(0);O=O+1|0}while((O|0)!=(se|0))}if(Ge=Ge+1|0,(Ge|0)==(m|0))break;j=se}}}while(0);if(h[s+908>>2]=y(Bi(s,2,Qc,B,B)),h[s+912>>2]=y(Bi(s,0,lf,k,B)),(Ql|0)!=0&&(cf=n[s+32>>2]|0,uf=(Ql|0)==2,!(uf&(cf|0)!=2))?uf&(cf|0)==2&&(l=y(Fc+ir),l=y(_n(y(Tg(l,y(MA(s,Rr,kc,Co)))),Fc)),Xr=198):(l=y(Bi(s,Rr,kc,Co,B)),Xr=198),(Xr|0)==198&&(h[s+908+(n[976+(Rr<<2)>>2]<<2)>>2]=l),(Fl|0)!=0&&(ff=n[s+32>>2]|0,pf=(Fl|0)==2,!(pf&(ff|0)!=2))?pf&(ff|0)==2&&(l=y(Ys+Rn),l=y(_n(y(Tg(l,y(MA(s,ur,y(Ys+vs),Rc)))),Ys)),Xr=204):(l=y(Bi(s,ur,y(Ys+vs),Rc,B)),Xr=204),(Xr|0)==204&&(h[s+908+(n[976+(ur<<2)>>2]<<2)>>2]=l),Q){if((n[Af>>2]|0)==2){j=976+(ur<<2)|0,se=1040+(ur<<2)|0,O=0;do Ge=gs(s,O)|0,n[Ge+24>>2]|0||(hf=n[j>>2]|0,Jt=y(h[s+908+(hf<<2)>>2]),li=Ge+400+(n[se>>2]<<2)|0,Jt=y(Jt-y(h[li>>2])),h[li>>2]=y(Jt-y(h[Ge+908+(hf<<2)>>2]))),O=O+1|0;while((O|0)!=(Ws|0))}if(f|0){O=Jn?Ql:d;do Om(s,f,xr,O,Eo,Ds,M),f=n[f+960>>2]|0;while((f|0)!=0)}if(O=(Rr|2|0)==3,j=(ur|2|0)==3,O|j){f=0;do se=n[(n[wo>>2]|0)+(f<<2)>>2]|0,(n[se+36>>2]|0)!=1&&(O&&wp(s,se,Rr),j&&wp(s,se,ur)),f=f+1|0;while((f|0)!=(Ws|0))}}}while(0);C=Rl}function pa(s,l){s=s|0,l=y(l);var c=0;oa(s,l>=y(0),3147),c=l==y(0),h[s+4>>2]=c?y(0):l}function vc(s,l,c,f){s=s|0,l=y(l),c=y(c),f=f|0;var d=Ze,m=Ze,B=0,k=0,Q=0;n[2278]=(n[2278]|0)+1,Bl(s),ts(s,2,l)|0?(d=y(Gr(n[s+992>>2]|0,l)),Q=1,d=y(d+y(ln(s,2,l)))):(d=y(Gr(s+380|0,l)),d>=y(0)?Q=2:(Q=((_t(l)|0)^1)&1,d=l)),ts(s,0,c)|0?(m=y(Gr(n[s+996>>2]|0,c)),k=1,m=y(m+y(ln(s,0,l)))):(m=y(Gr(s+388|0,c)),m>=y(0)?k=2:(k=((_t(c)|0)^1)&1,m=c)),B=s+976|0,fa(s,d,m,f,Q,k,l,c,1,3189,n[B>>2]|0)|0&&(Ep(s,n[s+496>>2]|0,l,c,l),Dc(s,y(h[(n[B>>2]|0)+4>>2]),y(0),y(0)),o[11696]|0)&&Qm(s,7)}function Bl(s){s=s|0;var l=0,c=0,f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0;k=C,C=C+32|0,B=k+24|0,m=k+16|0,f=k+8|0,d=k,c=0;do l=s+380+(c<<3)|0,(n[s+380+(c<<3)+4>>2]|0)!=0&&(Q=l,M=n[Q+4>>2]|0,O=f,n[O>>2]=n[Q>>2],n[O+4>>2]=M,O=s+364+(c<<3)|0,M=n[O+4>>2]|0,Q=d,n[Q>>2]=n[O>>2],n[Q+4>>2]=M,n[m>>2]=n[f>>2],n[m+4>>2]=n[f+4>>2],n[B>>2]=n[d>>2],n[B+4>>2]=n[d+4>>2],ws(m,B)|0)||(l=s+348+(c<<3)|0),n[s+992+(c<<2)>>2]=l,c=c+1|0;while((c|0)!=2);C=k}function ts(s,l,c){s=s|0,l=l|0,c=y(c);var f=0;switch(s=n[s+992+(n[976+(l<<2)>>2]<<2)>>2]|0,n[s+4>>2]|0){case 0:case 3:{s=0;break}case 1:{y(h[s>>2])>2])>2]|0){case 2:{l=y(y(y(h[s>>2])*l)/y(100));break}case 1:{l=y(h[s>>2]);break}default:l=y(ce)}return y(l)}function Ep(s,l,c,f,d){s=s|0,l=l|0,c=y(c),f=y(f),d=y(d);var m=0,B=Ze;l=n[s+944>>2]|0?l:1,m=fr(n[s+4>>2]|0,l)|0,l=ww(m,l)|0,c=y(Mm(s,m,c)),f=y(Mm(s,l,f)),B=y(c+y(K(s,m,d))),h[s+400+(n[1040+(m<<2)>>2]<<2)>>2]=B,c=y(c+y(re(s,m,d))),h[s+400+(n[1e3+(m<<2)>>2]<<2)>>2]=c,c=y(f+y(K(s,l,d))),h[s+400+(n[1040+(l<<2)>>2]<<2)>>2]=c,d=y(f+y(re(s,l,d))),h[s+400+(n[1e3+(l<<2)>>2]<<2)>>2]=d}function Dc(s,l,c,f){s=s|0,l=y(l),c=y(c),f=y(f);var d=0,m=0,B=Ze,k=Ze,Q=0,M=0,O=Ze,j=0,se=Ze,Ge=Ze,Me=Ze,Qe=Ze;if(l!=y(0)&&(d=s+400|0,Qe=y(h[d>>2]),m=s+404|0,Me=y(h[m>>2]),j=s+416|0,Ge=y(h[j>>2]),M=s+420|0,B=y(h[M>>2]),se=y(Qe+c),O=y(Me+f),f=y(se+Ge),k=y(O+B),Q=(n[s+988>>2]|0)==1,h[d>>2]=y(Go(Qe,l,0,Q)),h[m>>2]=y(Go(Me,l,0,Q)),c=y(bR(y(Ge*l),y(1))),Ii(c,y(0))|0?m=0:m=(Ii(c,y(1))|0)^1,c=y(bR(y(B*l),y(1))),Ii(c,y(0))|0?d=0:d=(Ii(c,y(1))|0)^1,Qe=y(Go(f,l,Q&m,Q&(m^1))),h[j>>2]=y(Qe-y(Go(se,l,0,Q))),Qe=y(Go(k,l,Q&d,Q&(d^1))),h[M>>2]=y(Qe-y(Go(O,l,0,Q))),m=(n[s+952>>2]|0)-(n[s+948>>2]|0)>>2,m|0)){d=0;do Dc(gs(s,d)|0,l,se,O),d=d+1|0;while((d|0)!=(m|0))}}function Cw(s,l,c,f,d){switch(s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,c|0){case 5:case 0:{s=i7(n[489]|0,f,d)|0;break}default:s=zUe(f,d)|0}return s|0}function Eg(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;d=C,C=C+16|0,m=d,n[m>>2]=f,Cg(s,0,l,c,m),C=d}function Cg(s,l,c,f,d){if(s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,s=s|0?s:956,D7[n[s+8>>2]&1](s,l,c,f,d)|0,(c|0)==5)Rt();else return}function Ga(s,l,c){s=s|0,l=l|0,c=c|0,o[s+l>>0]=c&1}function Rm(s,l){s=s|0,l=l|0;var c=0,f=0;n[s>>2]=0,n[s+4>>2]=0,n[s+8>>2]=0,c=l+4|0,f=(n[c>>2]|0)-(n[l>>2]|0)>>2,f|0&&(wg(s,f),Qt(s,n[l>>2]|0,n[c>>2]|0,f))}function wg(s,l){s=s|0,l=l|0;var c=0;if((N(s)|0)>>>0>>0&&zr(s),l>>>0>1073741823)Rt();else{c=Kt(l<<2)|0,n[s+4>>2]=c,n[s>>2]=c,n[s+8>>2]=c+(l<<2);return}}function Qt(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,f=s+4|0,s=c-l|0,(s|0)>0&&(Dr(n[f>>2]|0,l|0,s|0)|0,n[f>>2]=(n[f>>2]|0)+(s>>>2<<2))}function N(s){return s=s|0,1073741823}function K(s,l,c){return s=s|0,l=l|0,c=y(c),pe(l)|0&&(n[s+96>>2]|0)!=0?s=s+92|0:s=Fn(s+60|0,n[1040+(l<<2)>>2]|0,992)|0,y(ze(s,c))}function re(s,l,c){return s=s|0,l=l|0,c=y(c),pe(l)|0&&(n[s+104>>2]|0)!=0?s=s+100|0:s=Fn(s+60|0,n[1e3+(l<<2)>>2]|0,992)|0,y(ze(s,c))}function pe(s){return s=s|0,(s|1|0)==3|0}function ze(s,l){return s=s|0,l=y(l),(n[s+4>>2]|0)==3?l=y(0):l=y(Gr(s,l)),y(l)}function mt(s,l){return s=s|0,l=l|0,s=n[s>>2]|0,((s|0)==0?(l|0)>1?l:1:s)|0}function fr(s,l){s=s|0,l=l|0;var c=0;e:do if((l|0)==2){switch(s|0){case 2:{s=3;break e}case 3:break;default:{c=4;break e}}s=2}else c=4;while(0);return s|0}function Cr(s,l){s=s|0,l=l|0;var c=Ze;return pe(l)|0&&(n[s+312>>2]|0)!=0&&(c=y(h[s+308>>2]),c>=y(0))||(c=y(_n(y(h[(Fn(s+276|0,n[1040+(l<<2)>>2]|0,992)|0)>>2]),y(0)))),y(c)}function yn(s,l){s=s|0,l=l|0;var c=Ze;return pe(l)|0&&(n[s+320>>2]|0)!=0&&(c=y(h[s+316>>2]),c>=y(0))||(c=y(_n(y(h[(Fn(s+276|0,n[1e3+(l<<2)>>2]|0,992)|0)>>2]),y(0)))),y(c)}function oi(s,l,c){s=s|0,l=l|0,c=y(c);var f=Ze;return pe(l)|0&&(n[s+240>>2]|0)!=0&&(f=y(Gr(s+236|0,c)),f>=y(0))||(f=y(_n(y(Gr(Fn(s+204|0,n[1040+(l<<2)>>2]|0,992)|0,c)),y(0)))),y(f)}function Oi(s,l,c){s=s|0,l=l|0,c=y(c);var f=Ze;return pe(l)|0&&(n[s+248>>2]|0)!=0&&(f=y(Gr(s+244|0,c)),f>=y(0))||(f=y(_n(y(Gr(Fn(s+204|0,n[1e3+(l<<2)>>2]|0,992)|0,c)),y(0)))),y(f)}function Ig(s,l,c,f,d,m,B){s=s|0,l=y(l),c=y(c),f=f|0,d=d|0,m=y(m),B=y(B);var k=Ze,Q=Ze,M=Ze,O=Ze,j=Ze,se=Ze,Ge=0,Me=0,Qe=0;Qe=C,C=C+16|0,Ge=Qe,Me=s+964|0,Un(s,(n[Me>>2]|0)!=0,3519),k=y(En(s,2,l)),Q=y(En(s,0,l)),M=y(ln(s,2,l)),O=y(ln(s,0,l)),_t(l)|0?j=l:j=y(_n(y(0),y(y(l-M)-k))),_t(c)|0?se=c:se=y(_n(y(0),y(y(c-O)-Q))),(f|0)==1&(d|0)==1?(h[s+908>>2]=y(Bi(s,2,y(l-M),m,m)),l=y(Bi(s,0,y(c-O),B,m))):(S7[n[Me>>2]&1](Ge,s,j,f,se,d),j=y(k+y(h[Ge>>2])),se=y(l-M),h[s+908>>2]=y(Bi(s,2,(f|2|0)==2?j:se,m,m)),se=y(Q+y(h[Ge+4>>2])),l=y(c-O),l=y(Bi(s,0,(d|2|0)==2?se:l,B,m))),h[s+912>>2]=l,C=Qe}function Gv(s,l,c,f,d,m,B){s=s|0,l=y(l),c=y(c),f=f|0,d=d|0,m=y(m),B=y(B);var k=Ze,Q=Ze,M=Ze,O=Ze;M=y(En(s,2,m)),k=y(En(s,0,m)),O=y(ln(s,2,m)),Q=y(ln(s,0,m)),l=y(l-O),h[s+908>>2]=y(Bi(s,2,(f|2|0)==2?M:l,m,m)),c=y(c-Q),h[s+912>>2]=y(Bi(s,0,(d|2|0)==2?k:c,B,m))}function Yv(s,l,c,f,d,m,B){s=s|0,l=y(l),c=y(c),f=f|0,d=d|0,m=y(m),B=y(B);var k=0,Q=Ze,M=Ze;return k=(f|0)==2,!(l<=y(0)&k)&&!(c<=y(0)&(d|0)==2)&&!((f|0)==1&(d|0)==1)?s=0:(Q=y(ln(s,0,m)),M=y(ln(s,2,m)),k=l>2]=y(Bi(s,2,k?y(0):l,m,m)),l=y(c-Q),k=c>2]=y(Bi(s,0,k?y(0):l,B,m)),s=1),s|0}function ww(s,l){return s=s|0,l=l|0,UA(s)|0?s=fr(2,l)|0:s=0,s|0}function Cp(s,l,c){return s=s|0,l=l|0,c=y(c),c=y(oi(s,l,c)),y(c+y(Cr(s,l)))}function Iw(s,l,c){return s=s|0,l=l|0,c=y(c),c=y(Oi(s,l,c)),y(c+y(yn(s,l)))}function En(s,l,c){s=s|0,l=l|0,c=y(c);var f=Ze;return f=y(Cp(s,l,c)),y(f+y(Iw(s,l,c)))}function Tm(s){return s=s|0,n[s+24>>2]|0?s=0:y(rs(s))!=y(0)?s=1:s=y(qs(s))!=y(0),s|0}function rs(s){s=s|0;var l=Ze;if(n[s+944>>2]|0){if(l=y(h[s+44>>2]),_t(l)|0)return l=y(h[s+40>>2]),s=l>y(0)&((_t(l)|0)^1),y(s?l:y(0))}else l=y(0);return y(l)}function qs(s){s=s|0;var l=Ze,c=0,f=Ze;do if(n[s+944>>2]|0){if(l=y(h[s+48>>2]),_t(l)|0){if(c=o[(n[s+976>>2]|0)+2>>0]|0,c<<24>>24==0&&(f=y(h[s+40>>2]),f>24?y(1):y(0)}}else l=y(0);while(0);return y(l)}function Bu(s){s=s|0;var l=0,c=0;if(Xm(s+400|0,0,540)|0,o[s+985>>0]=1,$(s),c=wi(s)|0,c|0){l=s+948|0,s=0;do Bu(n[(n[l>>2]|0)+(s<<2)>>2]|0),s=s+1|0;while((s|0)!=(c|0))}}function Nm(s,l,c,f,d,m,B,k,Q,M){s=s|0,l=l|0,c=y(c),f=f|0,d=y(d),m=y(m),B=y(B),k=k|0,Q=Q|0,M=M|0;var O=0,j=Ze,se=0,Ge=0,Me=Ze,Qe=Ze,et=0,Xe=Ze,lt=0,Ue=Ze,je=0,Lt=0,Mr=0,or=0,Xt=0,Sr=0,Nr=0,ir=0,xn=0,go=0;xn=C,C=C+16|0,Mr=xn+12|0,or=xn+8|0,Xt=xn+4|0,Sr=xn,ir=fr(n[s+4>>2]|0,Q)|0,je=pe(ir)|0,j=y(Gr(Bw(l)|0,je?m:B)),Lt=ts(l,2,m)|0,Nr=ts(l,0,B)|0;do if(!(_t(j)|0)&&!(_t(je?c:d)|0)){if(O=l+504|0,!(_t(y(h[O>>2]))|0)&&(!(vw(n[l+976>>2]|0,0)|0)||(n[l+500>>2]|0)==(n[2278]|0)))break;h[O>>2]=y(_n(j,y(En(l,ir,m))))}else se=7;while(0);do if((se|0)==7){if(lt=je^1,!(lt|Lt^1)){B=y(Gr(n[l+992>>2]|0,m)),h[l+504>>2]=y(_n(B,y(En(l,2,m))));break}if(!(je|Nr^1)){B=y(Gr(n[l+996>>2]|0,B)),h[l+504>>2]=y(_n(B,y(En(l,0,m))));break}h[Mr>>2]=y(ce),h[or>>2]=y(ce),n[Xt>>2]=0,n[Sr>>2]=0,Xe=y(ln(l,2,m)),Ue=y(ln(l,0,m)),Lt?(Me=y(Xe+y(Gr(n[l+992>>2]|0,m))),h[Mr>>2]=Me,n[Xt>>2]=1,Ge=1):(Ge=0,Me=y(ce)),Nr?(j=y(Ue+y(Gr(n[l+996>>2]|0,B))),h[or>>2]=j,n[Sr>>2]=1,O=1):(O=0,j=y(ce)),se=n[s+32>>2]|0,je&(se|0)==2?se=2:_t(Me)|0&&!(_t(c)|0)&&(h[Mr>>2]=c,n[Xt>>2]=2,Ge=2,Me=c),!((se|0)==2<)&&_t(j)|0&&!(_t(d)|0)&&(h[or>>2]=d,n[Sr>>2]=2,O=2,j=d),Qe=y(h[l+396>>2]),et=_t(Qe)|0;do if(et)se=Ge;else{if((Ge|0)==1<){h[or>>2]=y(y(Me-Xe)/Qe),n[Sr>>2]=1,O=1,se=1;break}je&(O|0)==1?(h[Mr>>2]=y(Qe*y(j-Ue)),n[Xt>>2]=1,O=1,se=1):se=Ge}while(0);go=_t(c)|0,Ge=(ha(s,l)|0)!=4,!(je|Lt|((f|0)!=1|go)|(Ge|(se|0)==1))&&(h[Mr>>2]=c,n[Xt>>2]=1,!et)&&(h[or>>2]=y(y(c-Xe)/Qe),n[Sr>>2]=1,O=1),!(Nr|lt|((k|0)!=1|(_t(d)|0))|(Ge|(O|0)==1))&&(h[or>>2]=d,n[Sr>>2]=1,!et)&&(h[Mr>>2]=y(Qe*y(d-Ue)),n[Xt>>2]=1),yr(l,2,m,m,Xt,Mr),yr(l,0,B,m,Sr,or),c=y(h[Mr>>2]),d=y(h[or>>2]),fa(l,c,d,Q,n[Xt>>2]|0,n[Sr>>2]|0,m,B,0,3565,M)|0,B=y(h[l+908+(n[976+(ir<<2)>>2]<<2)>>2]),h[l+504>>2]=y(_n(B,y(En(l,ir,m))))}while(0);n[l+500>>2]=n[2278],C=xn}function Bi(s,l,c,f,d){return s=s|0,l=l|0,c=y(c),f=y(f),d=y(d),f=y(MA(s,l,c,f)),y(_n(f,y(En(s,l,d))))}function ha(s,l){return s=s|0,l=l|0,l=l+20|0,l=n[((n[l>>2]|0)==0?s+16|0:l)>>2]|0,(l|0)==5&&UA(n[s+4>>2]|0)|0&&(l=1),l|0}function vl(s,l){return s=s|0,l=l|0,pe(l)|0&&(n[s+96>>2]|0)!=0?l=4:l=n[1040+(l<<2)>>2]|0,s+60+(l<<3)|0}function Sc(s,l){return s=s|0,l=l|0,pe(l)|0&&(n[s+104>>2]|0)!=0?l=5:l=n[1e3+(l<<2)>>2]|0,s+60+(l<<3)|0}function yr(s,l,c,f,d,m){switch(s=s|0,l=l|0,c=y(c),f=y(f),d=d|0,m=m|0,c=y(Gr(s+380+(n[976+(l<<2)>>2]<<3)|0,c)),c=y(c+y(ln(s,l,f))),n[d>>2]|0){case 2:case 1:{d=_t(c)|0,f=y(h[m>>2]),h[m>>2]=d|f>2]=2,h[m>>2]=c);break}default:}}function gi(s,l){return s=s|0,l=l|0,s=s+132|0,pe(l)|0&&(n[(Fn(s,4,948)|0)+4>>2]|0)!=0?s=1:s=(n[(Fn(s,n[1040+(l<<2)>>2]|0,948)|0)+4>>2]|0)!=0,s|0}function Or(s,l,c){s=s|0,l=l|0,c=y(c);var f=0,d=0;return s=s+132|0,pe(l)|0&&(f=Fn(s,4,948)|0,(n[f+4>>2]|0)!=0)?d=4:(f=Fn(s,n[1040+(l<<2)>>2]|0,948)|0,n[f+4>>2]|0?d=4:c=y(0)),(d|0)==4&&(c=y(Gr(f,c))),y(c)}function ns(s,l,c){s=s|0,l=l|0,c=y(c);var f=Ze;return f=y(h[s+908+(n[976+(l<<2)>>2]<<2)>>2]),f=y(f+y(K(s,l,c))),y(f+y(re(s,l,c)))}function Yi(s){s=s|0;var l=0,c=0,f=0;e:do if(UA(n[s+4>>2]|0)|0)l=0;else if((n[s+16>>2]|0)!=5)if(c=wi(s)|0,!c)l=0;else for(l=0;;){if(f=gs(s,l)|0,(n[f+24>>2]|0)==0&&(n[f+20>>2]|0)==5){l=1;break e}if(l=l+1|0,l>>>0>=c>>>0){l=0;break}}else l=1;while(0);return l|0}function Lm(s,l){s=s|0,l=l|0;var c=Ze;return c=y(h[s+908+(n[976+(l<<2)>>2]<<2)>>2]),c>=y(0)&((_t(c)|0)^1)|0}function Ya(s){s=s|0;var l=Ze,c=0,f=0,d=0,m=0,B=0,k=0,Q=Ze;if(c=n[s+968>>2]|0,c)Q=y(h[s+908>>2]),l=y(h[s+912>>2]),l=y(w7[c&0](s,Q,l)),Un(s,(_t(l)|0)^1,3573);else{m=wi(s)|0;do if(m|0){for(c=0,d=0;;){if(f=gs(s,d)|0,n[f+940>>2]|0){B=8;break}if((n[f+24>>2]|0)!=1)if(k=(ha(s,f)|0)==5,k){c=f;break}else c=(c|0)==0?f:c;if(d=d+1|0,d>>>0>=m>>>0){B=8;break}}if((B|0)==8&&!c)break;return l=y(Ya(c)),y(l+y(h[c+404>>2]))}while(0);l=y(h[s+912>>2])}return y(l)}function MA(s,l,c,f){s=s|0,l=l|0,c=y(c),f=y(f);var d=Ze,m=0;return UA(l)|0?(l=1,m=3):pe(l)|0?(l=0,m=3):(f=y(ce),d=y(ce)),(m|0)==3&&(d=y(Gr(s+364+(l<<3)|0,f)),f=y(Gr(s+380+(l<<3)|0,f))),m=f=y(0)&((_t(f)|0)^1)),c=m?f:c,m=d>=y(0)&((_t(d)|0)^1)&c>2]|0,m)|0,Me=ww(et,m)|0,Qe=pe(et)|0,j=y(ln(l,2,c)),se=y(ln(l,0,c)),ts(l,2,c)|0?k=y(j+y(Gr(n[l+992>>2]|0,c))):gi(l,2)|0&&sr(l,2)|0?(k=y(h[s+908>>2]),Q=y(Cr(s,2)),Q=y(k-y(Q+y(yn(s,2)))),k=y(Or(l,2,c)),k=y(Bi(l,2,y(Q-y(k+y(vu(l,2,c)))),c,c))):k=y(ce),ts(l,0,d)|0?Q=y(se+y(Gr(n[l+996>>2]|0,d))):gi(l,0)|0&&sr(l,0)|0?(Q=y(h[s+912>>2]),lt=y(Cr(s,0)),lt=y(Q-y(lt+y(yn(s,0)))),Q=y(Or(l,0,d)),Q=y(Bi(l,0,y(lt-y(Q+y(vu(l,0,d)))),d,c))):Q=y(ce),M=_t(k)|0,O=_t(Q)|0;do if(M^O&&(Ge=y(h[l+396>>2]),!(_t(Ge)|0)))if(M){k=y(j+y(y(Q-se)*Ge));break}else{lt=y(se+y(y(k-j)/Ge)),Q=O?lt:Q;break}while(0);O=_t(k)|0,M=_t(Q)|0,O|M&&(Ue=(O^1)&1,f=c>y(0)&((f|0)!=0&O),k=Qe?k:f?c:k,fa(l,k,Q,m,Qe?Ue:f?2:Ue,O&(M^1)&1,k,Q,0,3623,B)|0,k=y(h[l+908>>2]),k=y(k+y(ln(l,2,c))),Q=y(h[l+912>>2]),Q=y(Q+y(ln(l,0,c)))),fa(l,k,Q,m,1,1,k,Q,1,3635,B)|0,sr(l,et)|0&&!(gi(l,et)|0)?(Ue=n[976+(et<<2)>>2]|0,lt=y(h[s+908+(Ue<<2)>>2]),lt=y(lt-y(h[l+908+(Ue<<2)>>2])),lt=y(lt-y(yn(s,et))),lt=y(lt-y(re(l,et,c))),lt=y(lt-y(vu(l,et,Qe?c:d))),h[l+400+(n[1040+(et<<2)>>2]<<2)>>2]=lt):Xe=21;do if((Xe|0)==21){if(!(gi(l,et)|0)&&(n[s+8>>2]|0)==1){Ue=n[976+(et<<2)>>2]|0,lt=y(h[s+908+(Ue<<2)>>2]),lt=y(y(lt-y(h[l+908+(Ue<<2)>>2]))*y(.5)),h[l+400+(n[1040+(et<<2)>>2]<<2)>>2]=lt;break}!(gi(l,et)|0)&&(n[s+8>>2]|0)==2&&(Ue=n[976+(et<<2)>>2]|0,lt=y(h[s+908+(Ue<<2)>>2]),lt=y(lt-y(h[l+908+(Ue<<2)>>2])),h[l+400+(n[1040+(et<<2)>>2]<<2)>>2]=lt)}while(0);sr(l,Me)|0&&!(gi(l,Me)|0)?(Ue=n[976+(Me<<2)>>2]|0,lt=y(h[s+908+(Ue<<2)>>2]),lt=y(lt-y(h[l+908+(Ue<<2)>>2])),lt=y(lt-y(yn(s,Me))),lt=y(lt-y(re(l,Me,c))),lt=y(lt-y(vu(l,Me,Qe?d:c))),h[l+400+(n[1040+(Me<<2)>>2]<<2)>>2]=lt):Xe=30;do if((Xe|0)==30&&!(gi(l,Me)|0)){if((ha(s,l)|0)==2){Ue=n[976+(Me<<2)>>2]|0,lt=y(h[s+908+(Ue<<2)>>2]),lt=y(y(lt-y(h[l+908+(Ue<<2)>>2]))*y(.5)),h[l+400+(n[1040+(Me<<2)>>2]<<2)>>2]=lt;break}Ue=(ha(s,l)|0)==3,Ue^(n[s+28>>2]|0)==2&&(Ue=n[976+(Me<<2)>>2]|0,lt=y(h[s+908+(Ue<<2)>>2]),lt=y(lt-y(h[l+908+(Ue<<2)>>2])),h[l+400+(n[1040+(Me<<2)>>2]<<2)>>2]=lt)}while(0)}function wp(s,l,c){s=s|0,l=l|0,c=c|0;var f=Ze,d=0;d=n[976+(c<<2)>>2]|0,f=y(h[l+908+(d<<2)>>2]),f=y(y(h[s+908+(d<<2)>>2])-f),f=y(f-y(h[l+400+(n[1040+(c<<2)>>2]<<2)>>2])),h[l+400+(n[1e3+(c<<2)>>2]<<2)>>2]=f}function UA(s){return s=s|0,(s|1|0)==1|0}function Bw(s){s=s|0;var l=Ze;switch(n[s+56>>2]|0){case 0:case 3:{l=y(h[s+40>>2]),l>y(0)&((_t(l)|0)^1)?s=o[(n[s+976>>2]|0)+2>>0]|0?1056:992:s=1056;break}default:s=s+52|0}return s|0}function vw(s,l){return s=s|0,l=l|0,(o[s+l>>0]|0)!=0|0}function sr(s,l){return s=s|0,l=l|0,s=s+132|0,pe(l)|0&&(n[(Fn(s,5,948)|0)+4>>2]|0)!=0?s=1:s=(n[(Fn(s,n[1e3+(l<<2)>>2]|0,948)|0)+4>>2]|0)!=0,s|0}function vu(s,l,c){s=s|0,l=l|0,c=y(c);var f=0,d=0;return s=s+132|0,pe(l)|0&&(f=Fn(s,5,948)|0,(n[f+4>>2]|0)!=0)?d=4:(f=Fn(s,n[1e3+(l<<2)>>2]|0,948)|0,n[f+4>>2]|0?d=4:c=y(0)),(d|0)==4&&(c=y(Gr(f,c))),y(c)}function Mm(s,l,c){return s=s|0,l=l|0,c=y(c),gi(s,l)|0?c=y(Or(s,l,c)):c=y(-y(vu(s,l,c))),y(c)}function Du(s){return s=y(s),h[v>>2]=s,n[v>>2]|0|0}function Ip(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>1073741823)Rt();else{d=Kt(l<<2)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c<<2)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<2)}function Bg(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>2)<<2)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function _A(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-4-l|0)>>>2)<<2)),s=n[s>>2]|0,s|0&>(s)}function HA(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0;if(B=s+4|0,k=n[B>>2]|0,d=k-f|0,m=d>>2,s=l+(m<<2)|0,s>>>0>>0){f=k;do n[f>>2]=n[s>>2],s=s+4|0,f=(n[B>>2]|0)+4|0,n[B>>2]=f;while(s>>>0>>0)}m|0&&Mw(k+(0-m<<2)|0,l|0,d|0)|0}function vg(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0;return k=l+4|0,Q=n[k>>2]|0,d=n[s>>2]|0,B=c,m=B-d|0,f=Q+(0-(m>>2)<<2)|0,n[k>>2]=f,(m|0)>0&&Dr(f|0,d|0,m|0)|0,d=s+4|0,m=l+8|0,f=(n[d>>2]|0)-B|0,(f|0)>0&&(Dr(n[m>>2]|0,c|0,f|0)|0,n[m>>2]=(n[m>>2]|0)+(f>>>2<<2)),B=n[s>>2]|0,n[s>>2]=n[k>>2],n[k>>2]=B,B=n[d>>2]|0,n[d>>2]=n[m>>2],n[m>>2]=B,B=s+8|0,c=l+12|0,s=n[B>>2]|0,n[B>>2]=n[c>>2],n[c>>2]=s,n[l>>2]=n[k>>2],Q|0}function Dw(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;if(B=n[l>>2]|0,m=n[c>>2]|0,(B|0)!=(m|0)){d=s+8|0,c=((m+-4-B|0)>>>2)+1|0,s=B,f=n[d>>2]|0;do n[f>>2]=n[s>>2],f=(n[d>>2]|0)+4|0,n[d>>2]=f,s=s+4|0;while((s|0)!=(m|0));n[l>>2]=B+(c<<2)}}function Um(){dc()}function ga(){var s=0;return s=Kt(4)|0,qA(s),s|0}function qA(s){s=s|0,n[s>>2]=ys()|0}function Pc(s){s=s|0,s|0&&(Dg(s),gt(s))}function Dg(s){s=s|0,tt(n[s>>2]|0)}function _m(s,l,c){s=s|0,l=l|0,c=c|0,Ga(n[s>>2]|0,l,c)}function fo(s,l){s=s|0,l=y(l),pa(n[s>>2]|0,l)}function Wv(s,l){return s=s|0,l=l|0,vw(n[s>>2]|0,l)|0}function Sw(){var s=0;return s=Kt(8)|0,Kv(s,0),s|0}function Kv(s,l){s=s|0,l=l|0,l?l=Ci(n[l>>2]|0)|0:l=co()|0,n[s>>2]=l,n[s+4>>2]=0,bi(l,s)}function AF(s){s=s|0;var l=0;return l=Kt(8)|0,Kv(l,s),l|0}function Vv(s){s=s|0,s|0&&(Su(s),gt(s))}function Su(s){s=s|0;var l=0;la(n[s>>2]|0),l=s+4|0,s=n[l>>2]|0,n[l>>2]=0,s|0&&(jA(s),gt(s))}function jA(s){s=s|0,GA(s)}function GA(s){s=s|0,s=n[s>>2]|0,s|0&&PA(s|0)}function Pw(s){return s=s|0,qo(s)|0}function Hm(s){s=s|0;var l=0,c=0;c=s+4|0,l=n[c>>2]|0,n[c>>2]=0,l|0&&(jA(l),gt(l)),_s(n[s>>2]|0)}function fF(s,l){s=s|0,l=l|0,$r(n[s>>2]|0,n[l>>2]|0)}function pF(s,l){s=s|0,l=l|0,ca(n[s>>2]|0,l)}function Jv(s,l,c){s=s|0,l=l|0,c=+c,yu(n[s>>2]|0,l,y(c))}function zv(s,l,c){s=s|0,l=l|0,c=+c,Es(n[s>>2]|0,l,y(c))}function bw(s,l){s=s|0,l=l|0,gu(n[s>>2]|0,l)}function Pu(s,l){s=s|0,l=l|0,du(n[s>>2]|0,l)}function hF(s,l){s=s|0,l=l|0,FA(n[s>>2]|0,l)}function gF(s,l){s=s|0,l=l|0,kA(n[s>>2]|0,l)}function Bp(s,l){s=s|0,l=l|0,yc(n[s>>2]|0,l)}function dF(s,l){s=s|0,l=l|0,Ap(n[s>>2]|0,l)}function Xv(s,l,c){s=s|0,l=l|0,c=+c,Cc(n[s>>2]|0,l,y(c))}function YA(s,l,c){s=s|0,l=l|0,c=+c,G(n[s>>2]|0,l,y(c))}function mF(s,l){s=s|0,l=l|0,wl(n[s>>2]|0,l)}function yF(s,l){s=s|0,l=l|0,ag(n[s>>2]|0,l)}function Zv(s,l){s=s|0,l=l|0,fp(n[s>>2]|0,l)}function xw(s,l){s=s|0,l=+l,RA(n[s>>2]|0,y(l))}function kw(s,l){s=s|0,l=+l,Ha(n[s>>2]|0,y(l))}function EF(s,l){s=s|0,l=+l,Gi(n[s>>2]|0,y(l))}function CF(s,l){s=s|0,l=+l,Hs(n[s>>2]|0,y(l))}function Dl(s,l){s=s|0,l=+l,mu(n[s>>2]|0,y(l))}function Qw(s,l){s=s|0,l=+l,yw(n[s>>2]|0,y(l))}function wF(s,l){s=s|0,l=+l,TA(n[s>>2]|0,y(l))}function WA(s){s=s|0,pp(n[s>>2]|0)}function qm(s,l){s=s|0,l=+l,Cs(n[s>>2]|0,y(l))}function bu(s,l){s=s|0,l=+l,ug(n[s>>2]|0,y(l))}function Fw(s){s=s|0,Ag(n[s>>2]|0)}function Rw(s,l){s=s|0,l=+l,hp(n[s>>2]|0,y(l))}function IF(s,l){s=s|0,l=+l,Ic(n[s>>2]|0,y(l))}function $v(s,l){s=s|0,l=+l,bm(n[s>>2]|0,y(l))}function KA(s,l){s=s|0,l=+l,pg(n[s>>2]|0,y(l))}function eD(s,l){s=s|0,l=+l,Cu(n[s>>2]|0,y(l))}function jm(s,l){s=s|0,l=+l,xm(n[s>>2]|0,y(l))}function tD(s,l){s=s|0,l=+l,wu(n[s>>2]|0,y(l))}function rD(s,l){s=s|0,l=+l,Ew(n[s>>2]|0,y(l))}function Gm(s,l){s=s|0,l=+l,Aa(n[s>>2]|0,y(l))}function nD(s,l,c){s=s|0,l=l|0,c=+c,Eu(n[s>>2]|0,l,y(c))}function BF(s,l,c){s=s|0,l=l|0,c=+c,xi(n[s>>2]|0,l,y(c))}function S(s,l,c){s=s|0,l=l|0,c=+c,wc(n[s>>2]|0,l,y(c))}function D(s){return s=s|0,og(n[s>>2]|0)|0}function T(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0;f=C,C=C+16|0,d=f,Ec(d,n[l>>2]|0,c),q(s,d),C=f}function q(s,l){s=s|0,l=l|0,Y(s,n[l+4>>2]|0,+y(h[l>>2]))}function Y(s,l,c){s=s|0,l=l|0,c=+c,n[s>>2]=l,E[s+8>>3]=c}function Ae(s){return s=s|0,sg(n[s>>2]|0)|0}function De(s){return s=s|0,uo(n[s>>2]|0)|0}function vt(s){return s=s|0,mc(n[s>>2]|0)|0}function wt(s){return s=s|0,QA(n[s>>2]|0)|0}function xt(s){return s=s|0,Pm(n[s>>2]|0)|0}function _r(s){return s=s|0,ig(n[s>>2]|0)|0}function is(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0;f=C,C=C+16|0,d=f,Dt(d,n[l>>2]|0,c),q(s,d),C=f}function di(s){return s=s|0,$n(n[s>>2]|0)|0}function po(s){return s=s|0,lg(n[s>>2]|0)|0}function VA(s,l){s=s|0,l=l|0;var c=0,f=0;c=C,C=C+16|0,f=c,ua(f,n[l>>2]|0),q(s,f),C=c}function Yo(s){return s=s|0,+ +y(ji(n[s>>2]|0))}function rt(s){return s=s|0,+ +y(es(n[s>>2]|0))}function Ve(s,l){s=s|0,l=l|0;var c=0,f=0;c=C,C=C+16|0,f=c,Br(f,n[l>>2]|0),q(s,f),C=c}function ft(s,l){s=s|0,l=l|0;var c=0,f=0;c=C,C=C+16|0,f=c,fg(f,n[l>>2]|0),q(s,f),C=c}function Wt(s,l){s=s|0,l=l|0;var c=0,f=0;c=C,C=C+16|0,f=c,Ct(f,n[l>>2]|0),q(s,f),C=c}function vr(s,l){s=s|0,l=l|0;var c=0,f=0;c=C,C=C+16|0,f=c,hg(f,n[l>>2]|0),q(s,f),C=c}function Pn(s,l){s=s|0,l=l|0;var c=0,f=0;c=C,C=C+16|0,f=c,gg(f,n[l>>2]|0),q(s,f),C=c}function Fr(s,l){s=s|0,l=l|0;var c=0,f=0;c=C,C=C+16|0,f=c,km(f,n[l>>2]|0),q(s,f),C=c}function bn(s){return s=s|0,+ +y(Bc(n[s>>2]|0))}function ai(s,l){return s=s|0,l=l|0,+ +y(cg(n[s>>2]|0,l))}function tn(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0;f=C,C=C+16|0,d=f,ct(d,n[l>>2]|0,c),q(s,d),C=f}function ho(s,l,c){s=s|0,l=l|0,c=c|0,nr(n[s>>2]|0,n[l>>2]|0,c)}function vF(s,l){s=s|0,l=l|0,ms(n[s>>2]|0,n[l>>2]|0)}function eve(s){return s=s|0,wi(n[s>>2]|0)|0}function tve(s){return s=s|0,s=ht(n[s>>2]|0)|0,s?s=Pw(s)|0:s=0,s|0}function rve(s,l){return s=s|0,l=l|0,s=gs(n[s>>2]|0,l)|0,s?s=Pw(s)|0:s=0,s|0}function nve(s,l){s=s|0,l=l|0;var c=0,f=0;f=Kt(4)|0,zG(f,l),c=s+4|0,l=n[c>>2]|0,n[c>>2]=f,l|0&&(jA(l),gt(l)),It(n[s>>2]|0,1)}function zG(s,l){s=s|0,l=l|0,gve(s,l)}function ive(s,l,c,f,d,m){s=s|0,l=l|0,c=y(c),f=f|0,d=y(d),m=m|0;var B=0,k=0;B=C,C=C+16|0,k=B,sve(k,qo(l)|0,+c,f,+d,m),h[s>>2]=y(+E[k>>3]),h[s+4>>2]=y(+E[k+8>>3]),C=B}function sve(s,l,c,f,d,m){s=s|0,l=l|0,c=+c,f=f|0,d=+d,m=m|0;var B=0,k=0,Q=0,M=0,O=0;B=C,C=C+32|0,O=B+8|0,M=B+20|0,Q=B,k=B+16|0,E[O>>3]=c,n[M>>2]=f,E[Q>>3]=d,n[k>>2]=m,ove(s,n[l+4>>2]|0,O,M,Q,k),C=B}function ove(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0;var B=0,k=0;B=C,C=C+16|0,k=B,Ka(k),l=da(l)|0,ave(s,l,+E[c>>3],n[f>>2]|0,+E[d>>3],n[m>>2]|0),Va(k),C=B}function da(s){return s=s|0,n[s>>2]|0}function ave(s,l,c,f,d,m){s=s|0,l=l|0,c=+c,f=f|0,d=+d,m=m|0;var B=0;B=Sl(lve()|0)|0,c=+JA(c),f=DF(f)|0,d=+JA(d),cve(s,hi(0,B|0,l|0,+c,f|0,+d,DF(m)|0)|0)}function lve(){var s=0;return o[7608]|0||(pve(9120),s=7608,n[s>>2]=1,n[s+4>>2]=0),9120}function Sl(s){return s=s|0,n[s+8>>2]|0}function JA(s){return s=+s,+ +SF(s)}function DF(s){return s=s|0,ZG(s)|0}function cve(s,l){s=s|0,l=l|0;var c=0,f=0,d=0;d=C,C=C+32|0,c=d,f=l,f&1?(uve(c,0),ii(f|0,c|0)|0,Ave(s,c),fve(c)):(n[s>>2]=n[l>>2],n[s+4>>2]=n[l+4>>2],n[s+8>>2]=n[l+8>>2],n[s+12>>2]=n[l+12>>2]),C=d}function uve(s,l){s=s|0,l=l|0,XG(s,l),n[s+8>>2]=0,o[s+24>>0]=0}function Ave(s,l){s=s|0,l=l|0,l=l+8|0,n[s>>2]=n[l>>2],n[s+4>>2]=n[l+4>>2],n[s+8>>2]=n[l+8>>2],n[s+12>>2]=n[l+12>>2]}function fve(s){s=s|0,o[s+24>>0]=0}function XG(s,l){s=s|0,l=l|0,n[s>>2]=l}function ZG(s){return s=s|0,s|0}function SF(s){return s=+s,+s}function pve(s){s=s|0,Pl(s,hve()|0,4)}function hve(){return 1064}function Pl(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,n[s+4>>2]=c,n[s+8>>2]=up(l|0,c+1|0)|0}function gve(s,l){s=s|0,l=l|0,l=n[l>>2]|0,n[s>>2]=l,yl(l|0)}function dve(s){s=s|0;var l=0,c=0;c=s+4|0,l=n[c>>2]|0,n[c>>2]=0,l|0&&(jA(l),gt(l)),It(n[s>>2]|0,0)}function mve(s){s=s|0,Tt(n[s>>2]|0)}function yve(s){return s=s|0,er(n[s>>2]|0)|0}function Eve(s,l,c,f){s=s|0,l=+l,c=+c,f=f|0,vc(n[s>>2]|0,y(l),y(c),f)}function Cve(s){return s=s|0,+ +y(Il(n[s>>2]|0))}function wve(s){return s=s|0,+ +y(dg(n[s>>2]|0))}function Ive(s){return s=s|0,+ +y(Iu(n[s>>2]|0))}function Bve(s){return s=s|0,+ +y(NA(n[s>>2]|0))}function vve(s){return s=s|0,+ +y(gp(n[s>>2]|0))}function Dve(s){return s=s|0,+ +y(qa(n[s>>2]|0))}function Sve(s,l){s=s|0,l=l|0,E[s>>3]=+y(Il(n[l>>2]|0)),E[s+8>>3]=+y(dg(n[l>>2]|0)),E[s+16>>3]=+y(Iu(n[l>>2]|0)),E[s+24>>3]=+y(NA(n[l>>2]|0)),E[s+32>>3]=+y(gp(n[l>>2]|0)),E[s+40>>3]=+y(qa(n[l>>2]|0))}function Pve(s,l){return s=s|0,l=l|0,+ +y(mg(n[s>>2]|0,l))}function bve(s,l){return s=s|0,l=l|0,+ +y(dp(n[s>>2]|0,l))}function xve(s,l){return s=s|0,l=l|0,+ +y(jo(n[s>>2]|0,l))}function kve(){return Sn()|0}function Qve(){Fve(),Rve(),Tve(),Nve(),Lve(),Ove()}function Fve(){LNe(11713,4938,1)}function Rve(){tNe(10448)}function Tve(){LTe(10408)}function Nve(){sTe(10324)}function Lve(){pFe(10096)}function Ove(){Mve(9132)}function Mve(s){s=s|0;var l=0,c=0,f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0,j=0,se=0,Ge=0,Me=0,Qe=0,et=0,Xe=0,lt=0,Ue=0,je=0,Lt=0,Mr=0,or=0,Xt=0,Sr=0,Nr=0,ir=0,xn=0,go=0,mo=0,yo=0,ya=0,Fp=0,Rp=0,bl=0,Tp=0,Fu=0,Ru=0,Np=0,Lp=0,Op=0,Xr=0,xl=0,Mp=0,xc=0,Up=0,_p=0,Tu=0,Nu=0,kc=0,js=0,za=0,Wo=0,kl=0,nf=0,sf=0,Lu=0,of=0,af=0,Gs=0,vs=0,Ql=0,Rn=0,lf=0,Eo=0,Qc=0,Co=0,Fc=0,cf=0,uf=0,Rc=0,Ys=0,Fl=0,Af=0,ff=0,pf=0,xr=0,Jn=0,Ds=0,wo=0,Ws=0,Rr=0,ur=0,Rl=0;l=C,C=C+672|0,c=l+656|0,Rl=l+648|0,ur=l+640|0,Rr=l+632|0,Ws=l+624|0,wo=l+616|0,Ds=l+608|0,Jn=l+600|0,xr=l+592|0,pf=l+584|0,ff=l+576|0,Af=l+568|0,Fl=l+560|0,Ys=l+552|0,Rc=l+544|0,uf=l+536|0,cf=l+528|0,Fc=l+520|0,Co=l+512|0,Qc=l+504|0,Eo=l+496|0,lf=l+488|0,Rn=l+480|0,Ql=l+472|0,vs=l+464|0,Gs=l+456|0,af=l+448|0,of=l+440|0,Lu=l+432|0,sf=l+424|0,nf=l+416|0,kl=l+408|0,Wo=l+400|0,za=l+392|0,js=l+384|0,kc=l+376|0,Nu=l+368|0,Tu=l+360|0,_p=l+352|0,Up=l+344|0,xc=l+336|0,Mp=l+328|0,xl=l+320|0,Xr=l+312|0,Op=l+304|0,Lp=l+296|0,Np=l+288|0,Ru=l+280|0,Fu=l+272|0,Tp=l+264|0,bl=l+256|0,Rp=l+248|0,Fp=l+240|0,ya=l+232|0,yo=l+224|0,mo=l+216|0,go=l+208|0,xn=l+200|0,ir=l+192|0,Nr=l+184|0,Sr=l+176|0,Xt=l+168|0,or=l+160|0,Mr=l+152|0,Lt=l+144|0,je=l+136|0,Ue=l+128|0,lt=l+120|0,Xe=l+112|0,et=l+104|0,Qe=l+96|0,Me=l+88|0,Ge=l+80|0,se=l+72|0,j=l+64|0,O=l+56|0,M=l+48|0,Q=l+40|0,k=l+32|0,B=l+24|0,m=l+16|0,d=l+8|0,f=l,Uve(s,3646),_ve(s,3651,2)|0,Hve(s,3665,2)|0,qve(s,3682,18)|0,n[Rl>>2]=19,n[Rl+4>>2]=0,n[c>>2]=n[Rl>>2],n[c+4>>2]=n[Rl+4>>2],Tw(s,3690,c)|0,n[ur>>2]=1,n[ur+4>>2]=0,n[c>>2]=n[ur>>2],n[c+4>>2]=n[ur+4>>2],jve(s,3696,c)|0,n[Rr>>2]=2,n[Rr+4>>2]=0,n[c>>2]=n[Rr>>2],n[c+4>>2]=n[Rr+4>>2],xu(s,3706,c)|0,n[Ws>>2]=1,n[Ws+4>>2]=0,n[c>>2]=n[Ws>>2],n[c+4>>2]=n[Ws+4>>2],Sg(s,3722,c)|0,n[wo>>2]=2,n[wo+4>>2]=0,n[c>>2]=n[wo>>2],n[c+4>>2]=n[wo+4>>2],Sg(s,3734,c)|0,n[Ds>>2]=3,n[Ds+4>>2]=0,n[c>>2]=n[Ds>>2],n[c+4>>2]=n[Ds+4>>2],xu(s,3753,c)|0,n[Jn>>2]=4,n[Jn+4>>2]=0,n[c>>2]=n[Jn>>2],n[c+4>>2]=n[Jn+4>>2],xu(s,3769,c)|0,n[xr>>2]=5,n[xr+4>>2]=0,n[c>>2]=n[xr>>2],n[c+4>>2]=n[xr+4>>2],xu(s,3783,c)|0,n[pf>>2]=6,n[pf+4>>2]=0,n[c>>2]=n[pf>>2],n[c+4>>2]=n[pf+4>>2],xu(s,3796,c)|0,n[ff>>2]=7,n[ff+4>>2]=0,n[c>>2]=n[ff>>2],n[c+4>>2]=n[ff+4>>2],xu(s,3813,c)|0,n[Af>>2]=8,n[Af+4>>2]=0,n[c>>2]=n[Af>>2],n[c+4>>2]=n[Af+4>>2],xu(s,3825,c)|0,n[Fl>>2]=3,n[Fl+4>>2]=0,n[c>>2]=n[Fl>>2],n[c+4>>2]=n[Fl+4>>2],Sg(s,3843,c)|0,n[Ys>>2]=4,n[Ys+4>>2]=0,n[c>>2]=n[Ys>>2],n[c+4>>2]=n[Ys+4>>2],Sg(s,3853,c)|0,n[Rc>>2]=9,n[Rc+4>>2]=0,n[c>>2]=n[Rc>>2],n[c+4>>2]=n[Rc+4>>2],xu(s,3870,c)|0,n[uf>>2]=10,n[uf+4>>2]=0,n[c>>2]=n[uf>>2],n[c+4>>2]=n[uf+4>>2],xu(s,3884,c)|0,n[cf>>2]=11,n[cf+4>>2]=0,n[c>>2]=n[cf>>2],n[c+4>>2]=n[cf+4>>2],xu(s,3896,c)|0,n[Fc>>2]=1,n[Fc+4>>2]=0,n[c>>2]=n[Fc>>2],n[c+4>>2]=n[Fc+4>>2],Is(s,3907,c)|0,n[Co>>2]=2,n[Co+4>>2]=0,n[c>>2]=n[Co>>2],n[c+4>>2]=n[Co+4>>2],Is(s,3915,c)|0,n[Qc>>2]=3,n[Qc+4>>2]=0,n[c>>2]=n[Qc>>2],n[c+4>>2]=n[Qc+4>>2],Is(s,3928,c)|0,n[Eo>>2]=4,n[Eo+4>>2]=0,n[c>>2]=n[Eo>>2],n[c+4>>2]=n[Eo+4>>2],Is(s,3948,c)|0,n[lf>>2]=5,n[lf+4>>2]=0,n[c>>2]=n[lf>>2],n[c+4>>2]=n[lf+4>>2],Is(s,3960,c)|0,n[Rn>>2]=6,n[Rn+4>>2]=0,n[c>>2]=n[Rn>>2],n[c+4>>2]=n[Rn+4>>2],Is(s,3974,c)|0,n[Ql>>2]=7,n[Ql+4>>2]=0,n[c>>2]=n[Ql>>2],n[c+4>>2]=n[Ql+4>>2],Is(s,3983,c)|0,n[vs>>2]=20,n[vs+4>>2]=0,n[c>>2]=n[vs>>2],n[c+4>>2]=n[vs+4>>2],Tw(s,3999,c)|0,n[Gs>>2]=8,n[Gs+4>>2]=0,n[c>>2]=n[Gs>>2],n[c+4>>2]=n[Gs+4>>2],Is(s,4012,c)|0,n[af>>2]=9,n[af+4>>2]=0,n[c>>2]=n[af>>2],n[c+4>>2]=n[af+4>>2],Is(s,4022,c)|0,n[of>>2]=21,n[of+4>>2]=0,n[c>>2]=n[of>>2],n[c+4>>2]=n[of+4>>2],Tw(s,4039,c)|0,n[Lu>>2]=10,n[Lu+4>>2]=0,n[c>>2]=n[Lu>>2],n[c+4>>2]=n[Lu+4>>2],Is(s,4053,c)|0,n[sf>>2]=11,n[sf+4>>2]=0,n[c>>2]=n[sf>>2],n[c+4>>2]=n[sf+4>>2],Is(s,4065,c)|0,n[nf>>2]=12,n[nf+4>>2]=0,n[c>>2]=n[nf>>2],n[c+4>>2]=n[nf+4>>2],Is(s,4084,c)|0,n[kl>>2]=13,n[kl+4>>2]=0,n[c>>2]=n[kl>>2],n[c+4>>2]=n[kl+4>>2],Is(s,4097,c)|0,n[Wo>>2]=14,n[Wo+4>>2]=0,n[c>>2]=n[Wo>>2],n[c+4>>2]=n[Wo+4>>2],Is(s,4117,c)|0,n[za>>2]=15,n[za+4>>2]=0,n[c>>2]=n[za>>2],n[c+4>>2]=n[za+4>>2],Is(s,4129,c)|0,n[js>>2]=16,n[js+4>>2]=0,n[c>>2]=n[js>>2],n[c+4>>2]=n[js+4>>2],Is(s,4148,c)|0,n[kc>>2]=17,n[kc+4>>2]=0,n[c>>2]=n[kc>>2],n[c+4>>2]=n[kc+4>>2],Is(s,4161,c)|0,n[Nu>>2]=18,n[Nu+4>>2]=0,n[c>>2]=n[Nu>>2],n[c+4>>2]=n[Nu+4>>2],Is(s,4181,c)|0,n[Tu>>2]=5,n[Tu+4>>2]=0,n[c>>2]=n[Tu>>2],n[c+4>>2]=n[Tu+4>>2],Sg(s,4196,c)|0,n[_p>>2]=6,n[_p+4>>2]=0,n[c>>2]=n[_p>>2],n[c+4>>2]=n[_p+4>>2],Sg(s,4206,c)|0,n[Up>>2]=7,n[Up+4>>2]=0,n[c>>2]=n[Up>>2],n[c+4>>2]=n[Up+4>>2],Sg(s,4217,c)|0,n[xc>>2]=3,n[xc+4>>2]=0,n[c>>2]=n[xc>>2],n[c+4>>2]=n[xc+4>>2],zA(s,4235,c)|0,n[Mp>>2]=1,n[Mp+4>>2]=0,n[c>>2]=n[Mp>>2],n[c+4>>2]=n[Mp+4>>2],PF(s,4251,c)|0,n[xl>>2]=4,n[xl+4>>2]=0,n[c>>2]=n[xl>>2],n[c+4>>2]=n[xl+4>>2],zA(s,4263,c)|0,n[Xr>>2]=5,n[Xr+4>>2]=0,n[c>>2]=n[Xr>>2],n[c+4>>2]=n[Xr+4>>2],zA(s,4279,c)|0,n[Op>>2]=6,n[Op+4>>2]=0,n[c>>2]=n[Op>>2],n[c+4>>2]=n[Op+4>>2],zA(s,4293,c)|0,n[Lp>>2]=7,n[Lp+4>>2]=0,n[c>>2]=n[Lp>>2],n[c+4>>2]=n[Lp+4>>2],zA(s,4306,c)|0,n[Np>>2]=8,n[Np+4>>2]=0,n[c>>2]=n[Np>>2],n[c+4>>2]=n[Np+4>>2],zA(s,4323,c)|0,n[Ru>>2]=9,n[Ru+4>>2]=0,n[c>>2]=n[Ru>>2],n[c+4>>2]=n[Ru+4>>2],zA(s,4335,c)|0,n[Fu>>2]=2,n[Fu+4>>2]=0,n[c>>2]=n[Fu>>2],n[c+4>>2]=n[Fu+4>>2],PF(s,4353,c)|0,n[Tp>>2]=12,n[Tp+4>>2]=0,n[c>>2]=n[Tp>>2],n[c+4>>2]=n[Tp+4>>2],Pg(s,4363,c)|0,n[bl>>2]=1,n[bl+4>>2]=0,n[c>>2]=n[bl>>2],n[c+4>>2]=n[bl+4>>2],XA(s,4376,c)|0,n[Rp>>2]=2,n[Rp+4>>2]=0,n[c>>2]=n[Rp>>2],n[c+4>>2]=n[Rp+4>>2],XA(s,4388,c)|0,n[Fp>>2]=13,n[Fp+4>>2]=0,n[c>>2]=n[Fp>>2],n[c+4>>2]=n[Fp+4>>2],Pg(s,4402,c)|0,n[ya>>2]=14,n[ya+4>>2]=0,n[c>>2]=n[ya>>2],n[c+4>>2]=n[ya+4>>2],Pg(s,4411,c)|0,n[yo>>2]=15,n[yo+4>>2]=0,n[c>>2]=n[yo>>2],n[c+4>>2]=n[yo+4>>2],Pg(s,4421,c)|0,n[mo>>2]=16,n[mo+4>>2]=0,n[c>>2]=n[mo>>2],n[c+4>>2]=n[mo+4>>2],Pg(s,4433,c)|0,n[go>>2]=17,n[go+4>>2]=0,n[c>>2]=n[go>>2],n[c+4>>2]=n[go+4>>2],Pg(s,4446,c)|0,n[xn>>2]=18,n[xn+4>>2]=0,n[c>>2]=n[xn>>2],n[c+4>>2]=n[xn+4>>2],Pg(s,4458,c)|0,n[ir>>2]=3,n[ir+4>>2]=0,n[c>>2]=n[ir>>2],n[c+4>>2]=n[ir+4>>2],XA(s,4471,c)|0,n[Nr>>2]=1,n[Nr+4>>2]=0,n[c>>2]=n[Nr>>2],n[c+4>>2]=n[Nr+4>>2],iD(s,4486,c)|0,n[Sr>>2]=10,n[Sr+4>>2]=0,n[c>>2]=n[Sr>>2],n[c+4>>2]=n[Sr+4>>2],zA(s,4496,c)|0,n[Xt>>2]=11,n[Xt+4>>2]=0,n[c>>2]=n[Xt>>2],n[c+4>>2]=n[Xt+4>>2],zA(s,4508,c)|0,n[or>>2]=3,n[or+4>>2]=0,n[c>>2]=n[or>>2],n[c+4>>2]=n[or+4>>2],PF(s,4519,c)|0,n[Mr>>2]=4,n[Mr+4>>2]=0,n[c>>2]=n[Mr>>2],n[c+4>>2]=n[Mr+4>>2],Gve(s,4530,c)|0,n[Lt>>2]=19,n[Lt+4>>2]=0,n[c>>2]=n[Lt>>2],n[c+4>>2]=n[Lt+4>>2],Yve(s,4542,c)|0,n[je>>2]=12,n[je+4>>2]=0,n[c>>2]=n[je>>2],n[c+4>>2]=n[je+4>>2],Wve(s,4554,c)|0,n[Ue>>2]=13,n[Ue+4>>2]=0,n[c>>2]=n[Ue>>2],n[c+4>>2]=n[Ue+4>>2],Kve(s,4568,c)|0,n[lt>>2]=2,n[lt+4>>2]=0,n[c>>2]=n[lt>>2],n[c+4>>2]=n[lt+4>>2],Vve(s,4578,c)|0,n[Xe>>2]=20,n[Xe+4>>2]=0,n[c>>2]=n[Xe>>2],n[c+4>>2]=n[Xe+4>>2],Jve(s,4587,c)|0,n[et>>2]=22,n[et+4>>2]=0,n[c>>2]=n[et>>2],n[c+4>>2]=n[et+4>>2],Tw(s,4602,c)|0,n[Qe>>2]=23,n[Qe+4>>2]=0,n[c>>2]=n[Qe>>2],n[c+4>>2]=n[Qe+4>>2],Tw(s,4619,c)|0,n[Me>>2]=14,n[Me+4>>2]=0,n[c>>2]=n[Me>>2],n[c+4>>2]=n[Me+4>>2],zve(s,4629,c)|0,n[Ge>>2]=1,n[Ge+4>>2]=0,n[c>>2]=n[Ge>>2],n[c+4>>2]=n[Ge+4>>2],Xve(s,4637,c)|0,n[se>>2]=4,n[se+4>>2]=0,n[c>>2]=n[se>>2],n[c+4>>2]=n[se+4>>2],XA(s,4653,c)|0,n[j>>2]=5,n[j+4>>2]=0,n[c>>2]=n[j>>2],n[c+4>>2]=n[j+4>>2],XA(s,4669,c)|0,n[O>>2]=6,n[O+4>>2]=0,n[c>>2]=n[O>>2],n[c+4>>2]=n[O+4>>2],XA(s,4686,c)|0,n[M>>2]=7,n[M+4>>2]=0,n[c>>2]=n[M>>2],n[c+4>>2]=n[M+4>>2],XA(s,4701,c)|0,n[Q>>2]=8,n[Q+4>>2]=0,n[c>>2]=n[Q>>2],n[c+4>>2]=n[Q+4>>2],XA(s,4719,c)|0,n[k>>2]=9,n[k+4>>2]=0,n[c>>2]=n[k>>2],n[c+4>>2]=n[k+4>>2],XA(s,4736,c)|0,n[B>>2]=21,n[B+4>>2]=0,n[c>>2]=n[B>>2],n[c+4>>2]=n[B+4>>2],Zve(s,4754,c)|0,n[m>>2]=2,n[m+4>>2]=0,n[c>>2]=n[m>>2],n[c+4>>2]=n[m+4>>2],iD(s,4772,c)|0,n[d>>2]=3,n[d+4>>2]=0,n[c>>2]=n[d>>2],n[c+4>>2]=n[d+4>>2],iD(s,4790,c)|0,n[f>>2]=4,n[f+4>>2]=0,n[c>>2]=n[f>>2],n[c+4>>2]=n[f+4>>2],iD(s,4808,c)|0,C=l}function Uve(s,l){s=s|0,l=l|0;var c=0;c=iFe()|0,n[s>>2]=c,sFe(c,l),xp(n[s>>2]|0)}function _ve(s,l,c){return s=s|0,l=l|0,c=c|0,GQe(s,pn(l)|0,c,0),s|0}function Hve(s,l,c){return s=s|0,l=l|0,c=c|0,bQe(s,pn(l)|0,c,0),s|0}function qve(s,l,c){return s=s|0,l=l|0,c=c|0,hQe(s,pn(l)|0,c,0),s|0}function Tw(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],Zke(s,l,d),C=f,s|0}function jve(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],Rke(s,l,d),C=f,s|0}function xu(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],mke(s,l,d),C=f,s|0}function Sg(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],tke(s,l,d),C=f,s|0}function Is(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],Uxe(s,l,d),C=f,s|0}function zA(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],Bxe(s,l,d),C=f,s|0}function PF(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],axe(s,l,d),C=f,s|0}function Pg(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],Rbe(s,l,d),C=f,s|0}function XA(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],mbe(s,l,d),C=f,s|0}function iD(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],tbe(s,l,d),C=f,s|0}function Gve(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],UPe(s,l,d),C=f,s|0}function Yve(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],BPe(s,l,d),C=f,s|0}function Wve(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],lPe(s,l,d),C=f,s|0}function Kve(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],KSe(s,l,d),C=f,s|0}function Vve(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],kSe(s,l,d),C=f,s|0}function Jve(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],pSe(s,l,d),C=f,s|0}function zve(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],XDe(s,l,d),C=f,s|0}function Xve(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],RDe(s,l,d),C=f,s|0}function Zve(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],$ve(s,l,d),C=f,s|0}function $ve(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=pn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],eDe(s,c,d,1),C=f}function pn(s){return s=s|0,s|0}function eDe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,Q=0,M=0,O=0;d=C,C=C+32|0,m=d+16|0,O=d+8|0,k=d,M=n[c>>2]|0,Q=n[c+4>>2]|0,B=n[s>>2]|0,s=bF()|0,n[O>>2]=M,n[O+4>>2]=Q,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=tDe(m)|0,n[k>>2]=M,n[k+4>>2]=Q,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],hn(B,l,s,c,rDe(m,f)|0,f),C=d}function bF(){var s=0,l=0;if(o[7616]|0||(t5(9136),tr(24,9136,U|0)|0,l=7616,n[l>>2]=1,n[l+4>>2]=0),!(Tr(9136)|0)){s=9136,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));t5(9136)}return 9136}function tDe(s){return s=s|0,0}function rDe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0,j=0;return O=C,C=C+32|0,d=O+24|0,B=O+16|0,k=O,Q=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=bF()|0,M=j+24|0,s=gr(l,4)|0,n[Q>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],e5(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(sDe(M,k,Q),s=n[l>>2]|0),C=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function hn(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0;var B=0,k=0,Q=0,M=0,O=0,j=0,se=0,Ge=0;B=C,C=C+32|0,se=B+24|0,j=B+20|0,Q=B+16|0,O=B+12|0,M=B+8|0,k=B+4|0,Ge=B,n[j>>2]=l,n[Q>>2]=c,n[O>>2]=f,n[M>>2]=d,n[k>>2]=m,m=s+28|0,n[Ge>>2]=n[m>>2],n[se>>2]=n[Ge>>2],nDe(s+24|0,se,j,O,M,Q,k)|0,n[m>>2]=n[n[m>>2]>>2],C=B}function nDe(s,l,c,f,d,m,B){return s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0,B=B|0,s=iDe(l)|0,l=Kt(24)|0,$G(l+4|0,n[c>>2]|0,n[f>>2]|0,n[d>>2]|0,n[m>>2]|0,n[B>>2]|0),n[l>>2]=n[s>>2],n[s>>2]=l,l|0}function iDe(s){return s=s|0,n[s>>2]|0}function $G(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0,n[s>>2]=l,n[s+4>>2]=c,n[s+8>>2]=f,n[s+12>>2]=d,n[s+16>>2]=m}function gr(s,l){return s=s|0,l=l|0,l|s|0}function e5(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function sDe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0,j=0,se=0;if(M=C,C=C+48|0,f=M+32|0,B=M+24|0,k=M,Q=s+4|0,d=(((n[Q>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=oDe(s)|0,m>>>0>>0)zr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,aDe(k,se>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[Q>>2]|0)-O|0)/12|0,s+8|0),Q=k+8|0,m=n[Q>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],e5(m,f,c),n[Q>>2]=(n[Q>>2]|0)+12,lDe(s,k),cDe(k),C=M;return}}function oDe(s){return s=s|0,357913941}function aDe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Kt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function lDe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function cDe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&>(s)}function t5(s){s=s|0,fDe(s)}function uDe(s){s=s|0,ADe(s+24|0)}function Tr(s){return s=s|0,n[s>>2]|0}function ADe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),gt(c))}function fDe(s){s=s|0;var l=0;l=Kr()|0,Vr(s,2,3,l,pDe()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function Kr(){return 9228}function pDe(){return 1140}function hDe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0;return c=C,C=C+16|0,f=c+8|0,d=c,m=gDe(s)|0,s=n[m+4>>2]|0,n[d>>2]=n[m>>2],n[d+4>>2]=s,n[f>>2]=n[d>>2],n[f+4>>2]=n[d+4>>2],l=dDe(l,f)|0,C=c,l|0}function Vr(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0,n[s>>2]=l,n[s+4>>2]=c,n[s+8>>2]=f,n[s+12>>2]=d,n[s+16>>2]=m}function gDe(s){return s=s|0,(n[(bF()|0)+24>>2]|0)+(s*12|0)|0}function dDe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0;return d=C,C=C+48|0,f=d,c=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(c=n[(n[s>>2]|0)+c>>2]|0),rf[c&31](f,s),f=mDe(f)|0,C=d,f|0}function mDe(s){s=s|0;var l=0,c=0,f=0,d=0;return d=C,C=C+32|0,l=d+12|0,c=d,f=xF(r5()|0)|0,f?(kF(l,f),QF(c,l),yDe(s,c),s=FF(l)|0):s=EDe(s)|0,C=d,s|0}function r5(){var s=0;return o[7632]|0||(xDe(9184),tr(25,9184,U|0)|0,s=7632,n[s>>2]=1,n[s+4>>2]=0),9184}function xF(s){return s=s|0,n[s+36>>2]|0}function kF(s,l){s=s|0,l=l|0,n[s>>2]=l,n[s+4>>2]=s,n[s+8>>2]=0}function QF(s,l){s=s|0,l=l|0,n[s>>2]=n[l>>2],n[s+4>>2]=n[l+4>>2],n[s+8>>2]=0}function yDe(s,l){s=s|0,l=l|0,BDe(l,s,s+8|0,s+16|0,s+24|0,s+32|0,s+40|0)|0}function FF(s){return s=s|0,n[(n[s+4>>2]|0)+8>>2]|0}function EDe(s){s=s|0;var l=0,c=0,f=0,d=0,m=0,B=0,k=0,Q=0;Q=C,C=C+16|0,c=Q+4|0,f=Q,d=Wa(8)|0,m=d,B=Kt(48)|0,k=B,l=k+48|0;do n[k>>2]=n[s>>2],k=k+4|0,s=s+4|0;while((k|0)<(l|0));return l=m+4|0,n[l>>2]=B,k=Kt(8)|0,B=n[l>>2]|0,n[f>>2]=0,n[c>>2]=n[f>>2],n5(k,B,c),n[d>>2]=k,C=Q,m|0}function n5(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,c=Kt(16)|0,n[c+4>>2]=0,n[c+8>>2]=0,n[c>>2]=1092,n[c+12>>2]=l,n[s+4>>2]=c}function CDe(s){s=s|0,zm(s),gt(s)}function wDe(s){s=s|0,s=n[s+12>>2]|0,s|0&>(s)}function IDe(s){s=s|0,gt(s)}function BDe(s,l,c,f,d,m,B){return s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0,B=B|0,m=vDe(n[s>>2]|0,l,c,f,d,m,B)|0,B=s+4|0,n[(n[B>>2]|0)+8>>2]=m,n[(n[B>>2]|0)+8>>2]|0}function vDe(s,l,c,f,d,m,B){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0,B=B|0;var k=0,Q=0;return k=C,C=C+16|0,Q=k,Ka(Q),s=da(s)|0,B=DDe(s,+E[l>>3],+E[c>>3],+E[f>>3],+E[d>>3],+E[m>>3],+E[B>>3])|0,Va(Q),C=k,B|0}function DDe(s,l,c,f,d,m,B){s=s|0,l=+l,c=+c,f=+f,d=+d,m=+m,B=+B;var k=0;return k=Sl(SDe()|0)|0,l=+JA(l),c=+JA(c),f=+JA(f),d=+JA(d),m=+JA(m),Ms(0,k|0,s|0,+l,+c,+f,+d,+m,+ +JA(B))|0}function SDe(){var s=0;return o[7624]|0||(PDe(9172),s=7624,n[s>>2]=1,n[s+4>>2]=0),9172}function PDe(s){s=s|0,Pl(s,bDe()|0,6)}function bDe(){return 1112}function xDe(s){s=s|0,vp(s)}function kDe(s){s=s|0,i5(s+24|0),s5(s+16|0)}function i5(s){s=s|0,FDe(s)}function s5(s){s=s|0,QDe(s)}function QDe(s){s=s|0;var l=0,c=0;if(l=n[s>>2]|0,l|0)do c=l,l=n[l>>2]|0,gt(c);while((l|0)!=0);n[s>>2]=0}function FDe(s){s=s|0;var l=0,c=0;if(l=n[s>>2]|0,l|0)do c=l,l=n[l>>2]|0,gt(c);while((l|0)!=0);n[s>>2]=0}function vp(s){s=s|0;var l=0;n[s+16>>2]=0,n[s+20>>2]=0,l=s+24|0,n[l>>2]=0,n[s+28>>2]=l,n[s+36>>2]=0,o[s+40>>0]=0,o[s+41>>0]=0}function RDe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=pn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],TDe(s,c,d,0),C=f}function TDe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,Q=0,M=0,O=0;d=C,C=C+32|0,m=d+16|0,O=d+8|0,k=d,M=n[c>>2]|0,Q=n[c+4>>2]|0,B=n[s>>2]|0,s=RF()|0,n[O>>2]=M,n[O+4>>2]=Q,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=NDe(m)|0,n[k>>2]=M,n[k+4>>2]=Q,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],hn(B,l,s,c,LDe(m,f)|0,f),C=d}function RF(){var s=0,l=0;if(o[7640]|0||(a5(9232),tr(26,9232,U|0)|0,l=7640,n[l>>2]=1,n[l+4>>2]=0),!(Tr(9232)|0)){s=9232,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));a5(9232)}return 9232}function NDe(s){return s=s|0,0}function LDe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0,j=0;return O=C,C=C+32|0,d=O+24|0,B=O+16|0,k=O,Q=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=RF()|0,M=j+24|0,s=gr(l,4)|0,n[Q>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],o5(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(ODe(M,k,Q),s=n[l>>2]|0),C=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function o5(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function ODe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0,j=0,se=0;if(M=C,C=C+48|0,f=M+32|0,B=M+24|0,k=M,Q=s+4|0,d=(((n[Q>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=MDe(s)|0,m>>>0>>0)zr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,UDe(k,se>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[Q>>2]|0)-O|0)/12|0,s+8|0),Q=k+8|0,m=n[Q>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],o5(m,f,c),n[Q>>2]=(n[Q>>2]|0)+12,_De(s,k),HDe(k),C=M;return}}function MDe(s){return s=s|0,357913941}function UDe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Kt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function _De(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function HDe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&>(s)}function a5(s){s=s|0,GDe(s)}function qDe(s){s=s|0,jDe(s+24|0)}function jDe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),gt(c))}function GDe(s){s=s|0;var l=0;l=Kr()|0,Vr(s,2,1,l,YDe()|0,3),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function YDe(){return 1144}function WDe(s,l,c,f,d){s=s|0,l=l|0,c=+c,f=+f,d=d|0;var m=0,B=0,k=0,Q=0;m=C,C=C+16|0,B=m+8|0,k=m,Q=KDe(s)|0,s=n[Q+4>>2]|0,n[k>>2]=n[Q>>2],n[k+4>>2]=s,n[B>>2]=n[k>>2],n[B+4>>2]=n[k+4>>2],VDe(l,B,c,f,d),C=m}function KDe(s){return s=s|0,(n[(RF()|0)+24>>2]|0)+(s*12|0)|0}function VDe(s,l,c,f,d){s=s|0,l=l|0,c=+c,f=+f,d=d|0;var m=0,B=0,k=0,Q=0,M=0;M=C,C=C+16|0,B=M+2|0,k=M+1|0,Q=M,m=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(m=n[(n[s>>2]|0)+m>>2]|0),ku(B,c),c=+Qu(B,c),ku(k,f),f=+Qu(k,f),ZA(Q,d),Q=$A(Q,d)|0,I7[m&1](s,c,f,Q),C=M}function ku(s,l){s=s|0,l=+l}function Qu(s,l){return s=s|0,l=+l,+ +zDe(l)}function ZA(s,l){s=s|0,l=l|0}function $A(s,l){return s=s|0,l=l|0,JDe(l)|0}function JDe(s){return s=s|0,s|0}function zDe(s){return s=+s,+s}function XDe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=pn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],ZDe(s,c,d,1),C=f}function ZDe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,Q=0,M=0,O=0;d=C,C=C+32|0,m=d+16|0,O=d+8|0,k=d,M=n[c>>2]|0,Q=n[c+4>>2]|0,B=n[s>>2]|0,s=TF()|0,n[O>>2]=M,n[O+4>>2]=Q,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=$De(m)|0,n[k>>2]=M,n[k+4>>2]=Q,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],hn(B,l,s,c,eSe(m,f)|0,f),C=d}function TF(){var s=0,l=0;if(o[7648]|0||(c5(9268),tr(27,9268,U|0)|0,l=7648,n[l>>2]=1,n[l+4>>2]=0),!(Tr(9268)|0)){s=9268,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));c5(9268)}return 9268}function $De(s){return s=s|0,0}function eSe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0,j=0;return O=C,C=C+32|0,d=O+24|0,B=O+16|0,k=O,Q=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=TF()|0,M=j+24|0,s=gr(l,4)|0,n[Q>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],l5(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(tSe(M,k,Q),s=n[l>>2]|0),C=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function l5(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function tSe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0,j=0,se=0;if(M=C,C=C+48|0,f=M+32|0,B=M+24|0,k=M,Q=s+4|0,d=(((n[Q>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=rSe(s)|0,m>>>0>>0)zr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,nSe(k,se>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[Q>>2]|0)-O|0)/12|0,s+8|0),Q=k+8|0,m=n[Q>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],l5(m,f,c),n[Q>>2]=(n[Q>>2]|0)+12,iSe(s,k),sSe(k),C=M;return}}function rSe(s){return s=s|0,357913941}function nSe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Kt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function iSe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function sSe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&>(s)}function c5(s){s=s|0,lSe(s)}function oSe(s){s=s|0,aSe(s+24|0)}function aSe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),gt(c))}function lSe(s){s=s|0;var l=0;l=Kr()|0,Vr(s,2,4,l,cSe()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function cSe(){return 1160}function uSe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0;return c=C,C=C+16|0,f=c+8|0,d=c,m=ASe(s)|0,s=n[m+4>>2]|0,n[d>>2]=n[m>>2],n[d+4>>2]=s,n[f>>2]=n[d>>2],n[f+4>>2]=n[d+4>>2],l=fSe(l,f)|0,C=c,l|0}function ASe(s){return s=s|0,(n[(TF()|0)+24>>2]|0)+(s*12|0)|0}function fSe(s,l){s=s|0,l=l|0;var c=0;return c=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(c=n[(n[s>>2]|0)+c>>2]|0),u5(Lg[c&31](s)|0)|0}function u5(s){return s=s|0,s&1|0}function pSe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=pn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],hSe(s,c,d,0),C=f}function hSe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,Q=0,M=0,O=0;d=C,C=C+32|0,m=d+16|0,O=d+8|0,k=d,M=n[c>>2]|0,Q=n[c+4>>2]|0,B=n[s>>2]|0,s=NF()|0,n[O>>2]=M,n[O+4>>2]=Q,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=gSe(m)|0,n[k>>2]=M,n[k+4>>2]=Q,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],hn(B,l,s,c,dSe(m,f)|0,f),C=d}function NF(){var s=0,l=0;if(o[7656]|0||(f5(9304),tr(28,9304,U|0)|0,l=7656,n[l>>2]=1,n[l+4>>2]=0),!(Tr(9304)|0)){s=9304,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));f5(9304)}return 9304}function gSe(s){return s=s|0,0}function dSe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0,j=0;return O=C,C=C+32|0,d=O+24|0,B=O+16|0,k=O,Q=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=NF()|0,M=j+24|0,s=gr(l,4)|0,n[Q>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],A5(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(mSe(M,k,Q),s=n[l>>2]|0),C=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function A5(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function mSe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0,j=0,se=0;if(M=C,C=C+48|0,f=M+32|0,B=M+24|0,k=M,Q=s+4|0,d=(((n[Q>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=ySe(s)|0,m>>>0>>0)zr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,ESe(k,se>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[Q>>2]|0)-O|0)/12|0,s+8|0),Q=k+8|0,m=n[Q>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],A5(m,f,c),n[Q>>2]=(n[Q>>2]|0)+12,CSe(s,k),wSe(k),C=M;return}}function ySe(s){return s=s|0,357913941}function ESe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Kt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function CSe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function wSe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&>(s)}function f5(s){s=s|0,vSe(s)}function ISe(s){s=s|0,BSe(s+24|0)}function BSe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),gt(c))}function vSe(s){s=s|0;var l=0;l=Kr()|0,Vr(s,2,5,l,DSe()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function DSe(){return 1164}function SSe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;f=C,C=C+16|0,d=f+8|0,m=f,B=PSe(s)|0,s=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=s,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],bSe(l,d,c),C=f}function PSe(s){return s=s|0,(n[(NF()|0)+24>>2]|0)+(s*12|0)|0}function bSe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0;m=C,C=C+16|0,d=m,f=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(f=n[(n[s>>2]|0)+f>>2]|0),Dp(d,c),c=Sp(d,c)|0,rf[f&31](s,c),Pp(d),C=m}function Dp(s,l){s=s|0,l=l|0,xSe(s,l)}function Sp(s,l){return s=s|0,l=l|0,s|0}function Pp(s){s=s|0,jA(s)}function xSe(s,l){s=s|0,l=l|0,LF(s,l)}function LF(s,l){s=s|0,l=l|0,n[s>>2]=l}function kSe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=pn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],QSe(s,c,d,0),C=f}function QSe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,Q=0,M=0,O=0;d=C,C=C+32|0,m=d+16|0,O=d+8|0,k=d,M=n[c>>2]|0,Q=n[c+4>>2]|0,B=n[s>>2]|0,s=OF()|0,n[O>>2]=M,n[O+4>>2]=Q,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=FSe(m)|0,n[k>>2]=M,n[k+4>>2]=Q,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],hn(B,l,s,c,RSe(m,f)|0,f),C=d}function OF(){var s=0,l=0;if(o[7664]|0||(h5(9340),tr(29,9340,U|0)|0,l=7664,n[l>>2]=1,n[l+4>>2]=0),!(Tr(9340)|0)){s=9340,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));h5(9340)}return 9340}function FSe(s){return s=s|0,0}function RSe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0,j=0;return O=C,C=C+32|0,d=O+24|0,B=O+16|0,k=O,Q=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=OF()|0,M=j+24|0,s=gr(l,4)|0,n[Q>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],p5(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(TSe(M,k,Q),s=n[l>>2]|0),C=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function p5(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function TSe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0,j=0,se=0;if(M=C,C=C+48|0,f=M+32|0,B=M+24|0,k=M,Q=s+4|0,d=(((n[Q>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=NSe(s)|0,m>>>0>>0)zr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,LSe(k,se>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[Q>>2]|0)-O|0)/12|0,s+8|0),Q=k+8|0,m=n[Q>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],p5(m,f,c),n[Q>>2]=(n[Q>>2]|0)+12,OSe(s,k),MSe(k),C=M;return}}function NSe(s){return s=s|0,357913941}function LSe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Kt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function OSe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function MSe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&>(s)}function h5(s){s=s|0,HSe(s)}function USe(s){s=s|0,_Se(s+24|0)}function _Se(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),gt(c))}function HSe(s){s=s|0;var l=0;l=Kr()|0,Vr(s,2,4,l,qSe()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function qSe(){return 1180}function jSe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=GSe(s)|0,s=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=s,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],c=YSe(l,d,c)|0,C=f,c|0}function GSe(s){return s=s|0,(n[(OF()|0)+24>>2]|0)+(s*12|0)|0}function YSe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0;return m=C,C=C+16|0,d=m,f=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(f=n[(n[s>>2]|0)+f>>2]|0),bg(d,c),d=xg(d,c)|0,d=sD(RR[f&15](s,d)|0)|0,C=m,d|0}function bg(s,l){s=s|0,l=l|0}function xg(s,l){return s=s|0,l=l|0,WSe(l)|0}function sD(s){return s=s|0,s|0}function WSe(s){return s=s|0,s|0}function KSe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=pn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],VSe(s,c,d,0),C=f}function VSe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,Q=0,M=0,O=0;d=C,C=C+32|0,m=d+16|0,O=d+8|0,k=d,M=n[c>>2]|0,Q=n[c+4>>2]|0,B=n[s>>2]|0,s=MF()|0,n[O>>2]=M,n[O+4>>2]=Q,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=JSe(m)|0,n[k>>2]=M,n[k+4>>2]=Q,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],hn(B,l,s,c,zSe(m,f)|0,f),C=d}function MF(){var s=0,l=0;if(o[7672]|0||(d5(9376),tr(30,9376,U|0)|0,l=7672,n[l>>2]=1,n[l+4>>2]=0),!(Tr(9376)|0)){s=9376,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));d5(9376)}return 9376}function JSe(s){return s=s|0,0}function zSe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0,j=0;return O=C,C=C+32|0,d=O+24|0,B=O+16|0,k=O,Q=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=MF()|0,M=j+24|0,s=gr(l,4)|0,n[Q>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],g5(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(XSe(M,k,Q),s=n[l>>2]|0),C=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function g5(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function XSe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0,j=0,se=0;if(M=C,C=C+48|0,f=M+32|0,B=M+24|0,k=M,Q=s+4|0,d=(((n[Q>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=ZSe(s)|0,m>>>0>>0)zr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,$Se(k,se>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[Q>>2]|0)-O|0)/12|0,s+8|0),Q=k+8|0,m=n[Q>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],g5(m,f,c),n[Q>>2]=(n[Q>>2]|0)+12,ePe(s,k),tPe(k),C=M;return}}function ZSe(s){return s=s|0,357913941}function $Se(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Kt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function ePe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function tPe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&>(s)}function d5(s){s=s|0,iPe(s)}function rPe(s){s=s|0,nPe(s+24|0)}function nPe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),gt(c))}function iPe(s){s=s|0;var l=0;l=Kr()|0,Vr(s,2,5,l,m5()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function m5(){return 1196}function sPe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0;return c=C,C=C+16|0,f=c+8|0,d=c,m=oPe(s)|0,s=n[m+4>>2]|0,n[d>>2]=n[m>>2],n[d+4>>2]=s,n[f>>2]=n[d>>2],n[f+4>>2]=n[d+4>>2],l=aPe(l,f)|0,C=c,l|0}function oPe(s){return s=s|0,(n[(MF()|0)+24>>2]|0)+(s*12|0)|0}function aPe(s,l){s=s|0,l=l|0;var c=0;return c=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(c=n[(n[s>>2]|0)+c>>2]|0),sD(Lg[c&31](s)|0)|0}function lPe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=pn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],cPe(s,c,d,1),C=f}function cPe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,Q=0,M=0,O=0;d=C,C=C+32|0,m=d+16|0,O=d+8|0,k=d,M=n[c>>2]|0,Q=n[c+4>>2]|0,B=n[s>>2]|0,s=UF()|0,n[O>>2]=M,n[O+4>>2]=Q,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=uPe(m)|0,n[k>>2]=M,n[k+4>>2]=Q,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],hn(B,l,s,c,APe(m,f)|0,f),C=d}function UF(){var s=0,l=0;if(o[7680]|0||(E5(9412),tr(31,9412,U|0)|0,l=7680,n[l>>2]=1,n[l+4>>2]=0),!(Tr(9412)|0)){s=9412,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));E5(9412)}return 9412}function uPe(s){return s=s|0,0}function APe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0,j=0;return O=C,C=C+32|0,d=O+24|0,B=O+16|0,k=O,Q=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=UF()|0,M=j+24|0,s=gr(l,4)|0,n[Q>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],y5(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(fPe(M,k,Q),s=n[l>>2]|0),C=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function y5(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function fPe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0,j=0,se=0;if(M=C,C=C+48|0,f=M+32|0,B=M+24|0,k=M,Q=s+4|0,d=(((n[Q>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=pPe(s)|0,m>>>0>>0)zr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,hPe(k,se>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[Q>>2]|0)-O|0)/12|0,s+8|0),Q=k+8|0,m=n[Q>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],y5(m,f,c),n[Q>>2]=(n[Q>>2]|0)+12,gPe(s,k),dPe(k),C=M;return}}function pPe(s){return s=s|0,357913941}function hPe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Kt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function gPe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function dPe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&>(s)}function E5(s){s=s|0,EPe(s)}function mPe(s){s=s|0,yPe(s+24|0)}function yPe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),gt(c))}function EPe(s){s=s|0;var l=0;l=Kr()|0,Vr(s,2,6,l,C5()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function C5(){return 1200}function CPe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0;return c=C,C=C+16|0,f=c+8|0,d=c,m=wPe(s)|0,s=n[m+4>>2]|0,n[d>>2]=n[m>>2],n[d+4>>2]=s,n[f>>2]=n[d>>2],n[f+4>>2]=n[d+4>>2],l=IPe(l,f)|0,C=c,l|0}function wPe(s){return s=s|0,(n[(UF()|0)+24>>2]|0)+(s*12|0)|0}function IPe(s,l){s=s|0,l=l|0;var c=0;return c=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(c=n[(n[s>>2]|0)+c>>2]|0),oD(Lg[c&31](s)|0)|0}function oD(s){return s=s|0,s|0}function BPe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=pn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],vPe(s,c,d,0),C=f}function vPe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,Q=0,M=0,O=0;d=C,C=C+32|0,m=d+16|0,O=d+8|0,k=d,M=n[c>>2]|0,Q=n[c+4>>2]|0,B=n[s>>2]|0,s=_F()|0,n[O>>2]=M,n[O+4>>2]=Q,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=DPe(m)|0,n[k>>2]=M,n[k+4>>2]=Q,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],hn(B,l,s,c,SPe(m,f)|0,f),C=d}function _F(){var s=0,l=0;if(o[7688]|0||(I5(9448),tr(32,9448,U|0)|0,l=7688,n[l>>2]=1,n[l+4>>2]=0),!(Tr(9448)|0)){s=9448,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));I5(9448)}return 9448}function DPe(s){return s=s|0,0}function SPe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0,j=0;return O=C,C=C+32|0,d=O+24|0,B=O+16|0,k=O,Q=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=_F()|0,M=j+24|0,s=gr(l,4)|0,n[Q>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],w5(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(PPe(M,k,Q),s=n[l>>2]|0),C=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function w5(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function PPe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0,j=0,se=0;if(M=C,C=C+48|0,f=M+32|0,B=M+24|0,k=M,Q=s+4|0,d=(((n[Q>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=bPe(s)|0,m>>>0>>0)zr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,xPe(k,se>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[Q>>2]|0)-O|0)/12|0,s+8|0),Q=k+8|0,m=n[Q>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],w5(m,f,c),n[Q>>2]=(n[Q>>2]|0)+12,kPe(s,k),QPe(k),C=M;return}}function bPe(s){return s=s|0,357913941}function xPe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Kt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function kPe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function QPe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&>(s)}function I5(s){s=s|0,TPe(s)}function FPe(s){s=s|0,RPe(s+24|0)}function RPe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),gt(c))}function TPe(s){s=s|0;var l=0;l=Kr()|0,Vr(s,2,6,l,B5()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function B5(){return 1204}function NPe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;f=C,C=C+16|0,d=f+8|0,m=f,B=LPe(s)|0,s=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=s,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],OPe(l,d,c),C=f}function LPe(s){return s=s|0,(n[(_F()|0)+24>>2]|0)+(s*12|0)|0}function OPe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0;m=C,C=C+16|0,d=m,f=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(f=n[(n[s>>2]|0)+f>>2]|0),HF(d,c),d=qF(d,c)|0,rf[f&31](s,d),C=m}function HF(s,l){s=s|0,l=l|0}function qF(s,l){return s=s|0,l=l|0,MPe(l)|0}function MPe(s){return s=s|0,s|0}function UPe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=pn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],_Pe(s,c,d,0),C=f}function _Pe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,Q=0,M=0,O=0;d=C,C=C+32|0,m=d+16|0,O=d+8|0,k=d,M=n[c>>2]|0,Q=n[c+4>>2]|0,B=n[s>>2]|0,s=jF()|0,n[O>>2]=M,n[O+4>>2]=Q,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=HPe(m)|0,n[k>>2]=M,n[k+4>>2]=Q,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],hn(B,l,s,c,qPe(m,f)|0,f),C=d}function jF(){var s=0,l=0;if(o[7696]|0||(D5(9484),tr(33,9484,U|0)|0,l=7696,n[l>>2]=1,n[l+4>>2]=0),!(Tr(9484)|0)){s=9484,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));D5(9484)}return 9484}function HPe(s){return s=s|0,0}function qPe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0,j=0;return O=C,C=C+32|0,d=O+24|0,B=O+16|0,k=O,Q=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=jF()|0,M=j+24|0,s=gr(l,4)|0,n[Q>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],v5(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(jPe(M,k,Q),s=n[l>>2]|0),C=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function v5(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function jPe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0,j=0,se=0;if(M=C,C=C+48|0,f=M+32|0,B=M+24|0,k=M,Q=s+4|0,d=(((n[Q>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=GPe(s)|0,m>>>0>>0)zr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,YPe(k,se>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[Q>>2]|0)-O|0)/12|0,s+8|0),Q=k+8|0,m=n[Q>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],v5(m,f,c),n[Q>>2]=(n[Q>>2]|0)+12,WPe(s,k),KPe(k),C=M;return}}function GPe(s){return s=s|0,357913941}function YPe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Kt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function WPe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function KPe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&>(s)}function D5(s){s=s|0,zPe(s)}function VPe(s){s=s|0,JPe(s+24|0)}function JPe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),gt(c))}function zPe(s){s=s|0;var l=0;l=Kr()|0,Vr(s,2,1,l,XPe()|0,2),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function XPe(){return 1212}function ZPe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0;d=C,C=C+16|0,m=d+8|0,B=d,k=$Pe(s)|0,s=n[k+4>>2]|0,n[B>>2]=n[k>>2],n[B+4>>2]=s,n[m>>2]=n[B>>2],n[m+4>>2]=n[B+4>>2],ebe(l,m,c,f),C=d}function $Pe(s){return s=s|0,(n[(jF()|0)+24>>2]|0)+(s*12|0)|0}function ebe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0;k=C,C=C+16|0,m=k+1|0,B=k,d=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(d=n[(n[s>>2]|0)+d>>2]|0),HF(m,c),m=qF(m,c)|0,bg(B,f),B=xg(B,f)|0,Hw[d&15](s,m,B),C=k}function tbe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=pn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],rbe(s,c,d,1),C=f}function rbe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,Q=0,M=0,O=0;d=C,C=C+32|0,m=d+16|0,O=d+8|0,k=d,M=n[c>>2]|0,Q=n[c+4>>2]|0,B=n[s>>2]|0,s=GF()|0,n[O>>2]=M,n[O+4>>2]=Q,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=nbe(m)|0,n[k>>2]=M,n[k+4>>2]=Q,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],hn(B,l,s,c,ibe(m,f)|0,f),C=d}function GF(){var s=0,l=0;if(o[7704]|0||(P5(9520),tr(34,9520,U|0)|0,l=7704,n[l>>2]=1,n[l+4>>2]=0),!(Tr(9520)|0)){s=9520,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));P5(9520)}return 9520}function nbe(s){return s=s|0,0}function ibe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0,j=0;return O=C,C=C+32|0,d=O+24|0,B=O+16|0,k=O,Q=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=GF()|0,M=j+24|0,s=gr(l,4)|0,n[Q>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],S5(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(sbe(M,k,Q),s=n[l>>2]|0),C=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function S5(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function sbe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0,j=0,se=0;if(M=C,C=C+48|0,f=M+32|0,B=M+24|0,k=M,Q=s+4|0,d=(((n[Q>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=obe(s)|0,m>>>0>>0)zr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,abe(k,se>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[Q>>2]|0)-O|0)/12|0,s+8|0),Q=k+8|0,m=n[Q>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],S5(m,f,c),n[Q>>2]=(n[Q>>2]|0)+12,lbe(s,k),cbe(k),C=M;return}}function obe(s){return s=s|0,357913941}function abe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Kt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function lbe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function cbe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&>(s)}function P5(s){s=s|0,fbe(s)}function ube(s){s=s|0,Abe(s+24|0)}function Abe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),gt(c))}function fbe(s){s=s|0;var l=0;l=Kr()|0,Vr(s,2,1,l,pbe()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function pbe(){return 1224}function hbe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;return d=C,C=C+16|0,m=d+8|0,B=d,k=gbe(s)|0,s=n[k+4>>2]|0,n[B>>2]=n[k>>2],n[B+4>>2]=s,n[m>>2]=n[B>>2],n[m+4>>2]=n[B+4>>2],f=+dbe(l,m,c),C=d,+f}function gbe(s){return s=s|0,(n[(GF()|0)+24>>2]|0)+(s*12|0)|0}function dbe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return m=C,C=C+16|0,d=m,f=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(f=n[(n[s>>2]|0)+f>>2]|0),ZA(d,c),d=$A(d,c)|0,B=+SF(+v7[f&7](s,d)),C=m,+B}function mbe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=pn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],ybe(s,c,d,1),C=f}function ybe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,Q=0,M=0,O=0;d=C,C=C+32|0,m=d+16|0,O=d+8|0,k=d,M=n[c>>2]|0,Q=n[c+4>>2]|0,B=n[s>>2]|0,s=YF()|0,n[O>>2]=M,n[O+4>>2]=Q,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=Ebe(m)|0,n[k>>2]=M,n[k+4>>2]=Q,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],hn(B,l,s,c,Cbe(m,f)|0,f),C=d}function YF(){var s=0,l=0;if(o[7712]|0||(x5(9556),tr(35,9556,U|0)|0,l=7712,n[l>>2]=1,n[l+4>>2]=0),!(Tr(9556)|0)){s=9556,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));x5(9556)}return 9556}function Ebe(s){return s=s|0,0}function Cbe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0,j=0;return O=C,C=C+32|0,d=O+24|0,B=O+16|0,k=O,Q=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=YF()|0,M=j+24|0,s=gr(l,4)|0,n[Q>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],b5(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(wbe(M,k,Q),s=n[l>>2]|0),C=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function b5(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function wbe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0,j=0,se=0;if(M=C,C=C+48|0,f=M+32|0,B=M+24|0,k=M,Q=s+4|0,d=(((n[Q>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=Ibe(s)|0,m>>>0>>0)zr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,Bbe(k,se>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[Q>>2]|0)-O|0)/12|0,s+8|0),Q=k+8|0,m=n[Q>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],b5(m,f,c),n[Q>>2]=(n[Q>>2]|0)+12,vbe(s,k),Dbe(k),C=M;return}}function Ibe(s){return s=s|0,357913941}function Bbe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Kt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function vbe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function Dbe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&>(s)}function x5(s){s=s|0,bbe(s)}function Sbe(s){s=s|0,Pbe(s+24|0)}function Pbe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),gt(c))}function bbe(s){s=s|0;var l=0;l=Kr()|0,Vr(s,2,5,l,xbe()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function xbe(){return 1232}function kbe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=Qbe(s)|0,s=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=s,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],c=+Fbe(l,d),C=f,+c}function Qbe(s){return s=s|0,(n[(YF()|0)+24>>2]|0)+(s*12|0)|0}function Fbe(s,l){s=s|0,l=l|0;var c=0;return c=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(c=n[(n[s>>2]|0)+c>>2]|0),+ +SF(+B7[c&15](s))}function Rbe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=pn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],Tbe(s,c,d,1),C=f}function Tbe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,Q=0,M=0,O=0;d=C,C=C+32|0,m=d+16|0,O=d+8|0,k=d,M=n[c>>2]|0,Q=n[c+4>>2]|0,B=n[s>>2]|0,s=WF()|0,n[O>>2]=M,n[O+4>>2]=Q,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=Nbe(m)|0,n[k>>2]=M,n[k+4>>2]=Q,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],hn(B,l,s,c,Lbe(m,f)|0,f),C=d}function WF(){var s=0,l=0;if(o[7720]|0||(Q5(9592),tr(36,9592,U|0)|0,l=7720,n[l>>2]=1,n[l+4>>2]=0),!(Tr(9592)|0)){s=9592,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));Q5(9592)}return 9592}function Nbe(s){return s=s|0,0}function Lbe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0,j=0;return O=C,C=C+32|0,d=O+24|0,B=O+16|0,k=O,Q=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=WF()|0,M=j+24|0,s=gr(l,4)|0,n[Q>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],k5(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(Obe(M,k,Q),s=n[l>>2]|0),C=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function k5(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function Obe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0,j=0,se=0;if(M=C,C=C+48|0,f=M+32|0,B=M+24|0,k=M,Q=s+4|0,d=(((n[Q>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=Mbe(s)|0,m>>>0>>0)zr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,Ube(k,se>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[Q>>2]|0)-O|0)/12|0,s+8|0),Q=k+8|0,m=n[Q>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],k5(m,f,c),n[Q>>2]=(n[Q>>2]|0)+12,_be(s,k),Hbe(k),C=M;return}}function Mbe(s){return s=s|0,357913941}function Ube(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Kt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function _be(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function Hbe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&>(s)}function Q5(s){s=s|0,Gbe(s)}function qbe(s){s=s|0,jbe(s+24|0)}function jbe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),gt(c))}function Gbe(s){s=s|0;var l=0;l=Kr()|0,Vr(s,2,7,l,Ybe()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function Ybe(){return 1276}function Wbe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0;return c=C,C=C+16|0,f=c+8|0,d=c,m=Kbe(s)|0,s=n[m+4>>2]|0,n[d>>2]=n[m>>2],n[d+4>>2]=s,n[f>>2]=n[d>>2],n[f+4>>2]=n[d+4>>2],l=Vbe(l,f)|0,C=c,l|0}function Kbe(s){return s=s|0,(n[(WF()|0)+24>>2]|0)+(s*12|0)|0}function Vbe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0;return d=C,C=C+16|0,f=d,c=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(c=n[(n[s>>2]|0)+c>>2]|0),rf[c&31](f,s),f=F5(f)|0,C=d,f|0}function F5(s){s=s|0;var l=0,c=0,f=0,d=0;return d=C,C=C+32|0,l=d+12|0,c=d,f=xF(R5()|0)|0,f?(kF(l,f),QF(c,l),Jbe(s,c),s=FF(l)|0):s=zbe(s)|0,C=d,s|0}function R5(){var s=0;return o[7736]|0||(oxe(9640),tr(25,9640,U|0)|0,s=7736,n[s>>2]=1,n[s+4>>2]=0),9640}function Jbe(s,l){s=s|0,l=l|0,exe(l,s,s+8|0)|0}function zbe(s){s=s|0;var l=0,c=0,f=0,d=0,m=0,B=0,k=0;return c=C,C=C+16|0,d=c+4|0,B=c,f=Wa(8)|0,l=f,k=Kt(16)|0,n[k>>2]=n[s>>2],n[k+4>>2]=n[s+4>>2],n[k+8>>2]=n[s+8>>2],n[k+12>>2]=n[s+12>>2],m=l+4|0,n[m>>2]=k,s=Kt(8)|0,m=n[m>>2]|0,n[B>>2]=0,n[d>>2]=n[B>>2],KF(s,m,d),n[f>>2]=s,C=c,l|0}function KF(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,c=Kt(16)|0,n[c+4>>2]=0,n[c+8>>2]=0,n[c>>2]=1244,n[c+12>>2]=l,n[s+4>>2]=c}function Xbe(s){s=s|0,zm(s),gt(s)}function Zbe(s){s=s|0,s=n[s+12>>2]|0,s|0&>(s)}function $be(s){s=s|0,gt(s)}function exe(s,l,c){return s=s|0,l=l|0,c=c|0,l=txe(n[s>>2]|0,l,c)|0,c=s+4|0,n[(n[c>>2]|0)+8>>2]=l,n[(n[c>>2]|0)+8>>2]|0}function txe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0;return f=C,C=C+16|0,d=f,Ka(d),s=da(s)|0,c=rxe(s,n[l>>2]|0,+E[c>>3])|0,Va(d),C=f,c|0}function rxe(s,l,c){s=s|0,l=l|0,c=+c;var f=0;return f=Sl(nxe()|0)|0,l=DF(l)|0,ml(0,f|0,s|0,l|0,+ +JA(c))|0}function nxe(){var s=0;return o[7728]|0||(ixe(9628),s=7728,n[s>>2]=1,n[s+4>>2]=0),9628}function ixe(s){s=s|0,Pl(s,sxe()|0,2)}function sxe(){return 1264}function oxe(s){s=s|0,vp(s)}function axe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=pn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],lxe(s,c,d,1),C=f}function lxe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,Q=0,M=0,O=0;d=C,C=C+32|0,m=d+16|0,O=d+8|0,k=d,M=n[c>>2]|0,Q=n[c+4>>2]|0,B=n[s>>2]|0,s=VF()|0,n[O>>2]=M,n[O+4>>2]=Q,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=cxe(m)|0,n[k>>2]=M,n[k+4>>2]=Q,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],hn(B,l,s,c,uxe(m,f)|0,f),C=d}function VF(){var s=0,l=0;if(o[7744]|0||(N5(9684),tr(37,9684,U|0)|0,l=7744,n[l>>2]=1,n[l+4>>2]=0),!(Tr(9684)|0)){s=9684,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));N5(9684)}return 9684}function cxe(s){return s=s|0,0}function uxe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0,j=0;return O=C,C=C+32|0,d=O+24|0,B=O+16|0,k=O,Q=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=VF()|0,M=j+24|0,s=gr(l,4)|0,n[Q>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],T5(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(Axe(M,k,Q),s=n[l>>2]|0),C=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function T5(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function Axe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0,j=0,se=0;if(M=C,C=C+48|0,f=M+32|0,B=M+24|0,k=M,Q=s+4|0,d=(((n[Q>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=fxe(s)|0,m>>>0>>0)zr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,pxe(k,se>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[Q>>2]|0)-O|0)/12|0,s+8|0),Q=k+8|0,m=n[Q>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],T5(m,f,c),n[Q>>2]=(n[Q>>2]|0)+12,hxe(s,k),gxe(k),C=M;return}}function fxe(s){return s=s|0,357913941}function pxe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Kt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function hxe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function gxe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&>(s)}function N5(s){s=s|0,yxe(s)}function dxe(s){s=s|0,mxe(s+24|0)}function mxe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),gt(c))}function yxe(s){s=s|0;var l=0;l=Kr()|0,Vr(s,2,5,l,Exe()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function Exe(){return 1280}function Cxe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=wxe(s)|0,s=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=s,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],c=Ixe(l,d,c)|0,C=f,c|0}function wxe(s){return s=s|0,(n[(VF()|0)+24>>2]|0)+(s*12|0)|0}function Ixe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return B=C,C=C+32|0,d=B,m=B+16|0,f=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(f=n[(n[s>>2]|0)+f>>2]|0),ZA(m,c),m=$A(m,c)|0,Hw[f&15](d,s,m),m=F5(d)|0,C=B,m|0}function Bxe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=pn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],vxe(s,c,d,1),C=f}function vxe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,Q=0,M=0,O=0;d=C,C=C+32|0,m=d+16|0,O=d+8|0,k=d,M=n[c>>2]|0,Q=n[c+4>>2]|0,B=n[s>>2]|0,s=JF()|0,n[O>>2]=M,n[O+4>>2]=Q,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=Dxe(m)|0,n[k>>2]=M,n[k+4>>2]=Q,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],hn(B,l,s,c,Sxe(m,f)|0,f),C=d}function JF(){var s=0,l=0;if(o[7752]|0||(O5(9720),tr(38,9720,U|0)|0,l=7752,n[l>>2]=1,n[l+4>>2]=0),!(Tr(9720)|0)){s=9720,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));O5(9720)}return 9720}function Dxe(s){return s=s|0,0}function Sxe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0,j=0;return O=C,C=C+32|0,d=O+24|0,B=O+16|0,k=O,Q=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=JF()|0,M=j+24|0,s=gr(l,4)|0,n[Q>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],L5(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(Pxe(M,k,Q),s=n[l>>2]|0),C=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function L5(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function Pxe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0,j=0,se=0;if(M=C,C=C+48|0,f=M+32|0,B=M+24|0,k=M,Q=s+4|0,d=(((n[Q>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=bxe(s)|0,m>>>0>>0)zr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,xxe(k,se>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[Q>>2]|0)-O|0)/12|0,s+8|0),Q=k+8|0,m=n[Q>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],L5(m,f,c),n[Q>>2]=(n[Q>>2]|0)+12,kxe(s,k),Qxe(k),C=M;return}}function bxe(s){return s=s|0,357913941}function xxe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Kt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function kxe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function Qxe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&>(s)}function O5(s){s=s|0,Txe(s)}function Fxe(s){s=s|0,Rxe(s+24|0)}function Rxe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),gt(c))}function Txe(s){s=s|0;var l=0;l=Kr()|0,Vr(s,2,8,l,Nxe()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function Nxe(){return 1288}function Lxe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0;return c=C,C=C+16|0,f=c+8|0,d=c,m=Oxe(s)|0,s=n[m+4>>2]|0,n[d>>2]=n[m>>2],n[d+4>>2]=s,n[f>>2]=n[d>>2],n[f+4>>2]=n[d+4>>2],l=Mxe(l,f)|0,C=c,l|0}function Oxe(s){return s=s|0,(n[(JF()|0)+24>>2]|0)+(s*12|0)|0}function Mxe(s,l){s=s|0,l=l|0;var c=0;return c=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(c=n[(n[s>>2]|0)+c>>2]|0),ZG(Lg[c&31](s)|0)|0}function Uxe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=pn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],_xe(s,c,d,0),C=f}function _xe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,Q=0,M=0,O=0;d=C,C=C+32|0,m=d+16|0,O=d+8|0,k=d,M=n[c>>2]|0,Q=n[c+4>>2]|0,B=n[s>>2]|0,s=zF()|0,n[O>>2]=M,n[O+4>>2]=Q,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=Hxe(m)|0,n[k>>2]=M,n[k+4>>2]=Q,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],hn(B,l,s,c,qxe(m,f)|0,f),C=d}function zF(){var s=0,l=0;if(o[7760]|0||(U5(9756),tr(39,9756,U|0)|0,l=7760,n[l>>2]=1,n[l+4>>2]=0),!(Tr(9756)|0)){s=9756,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));U5(9756)}return 9756}function Hxe(s){return s=s|0,0}function qxe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0,j=0;return O=C,C=C+32|0,d=O+24|0,B=O+16|0,k=O,Q=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=zF()|0,M=j+24|0,s=gr(l,4)|0,n[Q>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],M5(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(jxe(M,k,Q),s=n[l>>2]|0),C=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function M5(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function jxe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0,j=0,se=0;if(M=C,C=C+48|0,f=M+32|0,B=M+24|0,k=M,Q=s+4|0,d=(((n[Q>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=Gxe(s)|0,m>>>0>>0)zr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,Yxe(k,se>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[Q>>2]|0)-O|0)/12|0,s+8|0),Q=k+8|0,m=n[Q>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],M5(m,f,c),n[Q>>2]=(n[Q>>2]|0)+12,Wxe(s,k),Kxe(k),C=M;return}}function Gxe(s){return s=s|0,357913941}function Yxe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Kt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function Wxe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function Kxe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&>(s)}function U5(s){s=s|0,zxe(s)}function Vxe(s){s=s|0,Jxe(s+24|0)}function Jxe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),gt(c))}function zxe(s){s=s|0;var l=0;l=Kr()|0,Vr(s,2,8,l,Xxe()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function Xxe(){return 1292}function Zxe(s,l,c){s=s|0,l=l|0,c=+c;var f=0,d=0,m=0,B=0;f=C,C=C+16|0,d=f+8|0,m=f,B=$xe(s)|0,s=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=s,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],eke(l,d,c),C=f}function $xe(s){return s=s|0,(n[(zF()|0)+24>>2]|0)+(s*12|0)|0}function eke(s,l,c){s=s|0,l=l|0,c=+c;var f=0,d=0,m=0;m=C,C=C+16|0,d=m,f=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(f=n[(n[s>>2]|0)+f>>2]|0),ku(d,c),c=+Qu(d,c),C7[f&31](s,c),C=m}function tke(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=pn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],rke(s,c,d,0),C=f}function rke(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,Q=0,M=0,O=0;d=C,C=C+32|0,m=d+16|0,O=d+8|0,k=d,M=n[c>>2]|0,Q=n[c+4>>2]|0,B=n[s>>2]|0,s=XF()|0,n[O>>2]=M,n[O+4>>2]=Q,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=nke(m)|0,n[k>>2]=M,n[k+4>>2]=Q,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],hn(B,l,s,c,ike(m,f)|0,f),C=d}function XF(){var s=0,l=0;if(o[7768]|0||(H5(9792),tr(40,9792,U|0)|0,l=7768,n[l>>2]=1,n[l+4>>2]=0),!(Tr(9792)|0)){s=9792,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));H5(9792)}return 9792}function nke(s){return s=s|0,0}function ike(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0,j=0;return O=C,C=C+32|0,d=O+24|0,B=O+16|0,k=O,Q=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=XF()|0,M=j+24|0,s=gr(l,4)|0,n[Q>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],_5(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(ske(M,k,Q),s=n[l>>2]|0),C=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function _5(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function ske(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0,j=0,se=0;if(M=C,C=C+48|0,f=M+32|0,B=M+24|0,k=M,Q=s+4|0,d=(((n[Q>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=oke(s)|0,m>>>0>>0)zr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,ake(k,se>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[Q>>2]|0)-O|0)/12|0,s+8|0),Q=k+8|0,m=n[Q>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],_5(m,f,c),n[Q>>2]=(n[Q>>2]|0)+12,lke(s,k),cke(k),C=M;return}}function oke(s){return s=s|0,357913941}function ake(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Kt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function lke(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function cke(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&>(s)}function H5(s){s=s|0,fke(s)}function uke(s){s=s|0,Ake(s+24|0)}function Ake(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),gt(c))}function fke(s){s=s|0;var l=0;l=Kr()|0,Vr(s,2,1,l,pke()|0,2),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function pke(){return 1300}function hke(s,l,c,f){s=s|0,l=l|0,c=c|0,f=+f;var d=0,m=0,B=0,k=0;d=C,C=C+16|0,m=d+8|0,B=d,k=gke(s)|0,s=n[k+4>>2]|0,n[B>>2]=n[k>>2],n[B+4>>2]=s,n[m>>2]=n[B>>2],n[m+4>>2]=n[B+4>>2],dke(l,m,c,f),C=d}function gke(s){return s=s|0,(n[(XF()|0)+24>>2]|0)+(s*12|0)|0}function dke(s,l,c,f){s=s|0,l=l|0,c=c|0,f=+f;var d=0,m=0,B=0,k=0;k=C,C=C+16|0,m=k+1|0,B=k,d=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(d=n[(n[s>>2]|0)+d>>2]|0),ZA(m,c),m=$A(m,c)|0,ku(B,f),f=+Qu(B,f),b7[d&15](s,m,f),C=k}function mke(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=pn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],yke(s,c,d,0),C=f}function yke(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,Q=0,M=0,O=0;d=C,C=C+32|0,m=d+16|0,O=d+8|0,k=d,M=n[c>>2]|0,Q=n[c+4>>2]|0,B=n[s>>2]|0,s=ZF()|0,n[O>>2]=M,n[O+4>>2]=Q,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=Eke(m)|0,n[k>>2]=M,n[k+4>>2]=Q,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],hn(B,l,s,c,Cke(m,f)|0,f),C=d}function ZF(){var s=0,l=0;if(o[7776]|0||(j5(9828),tr(41,9828,U|0)|0,l=7776,n[l>>2]=1,n[l+4>>2]=0),!(Tr(9828)|0)){s=9828,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));j5(9828)}return 9828}function Eke(s){return s=s|0,0}function Cke(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0,j=0;return O=C,C=C+32|0,d=O+24|0,B=O+16|0,k=O,Q=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=ZF()|0,M=j+24|0,s=gr(l,4)|0,n[Q>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],q5(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(wke(M,k,Q),s=n[l>>2]|0),C=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function q5(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function wke(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0,j=0,se=0;if(M=C,C=C+48|0,f=M+32|0,B=M+24|0,k=M,Q=s+4|0,d=(((n[Q>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=Ike(s)|0,m>>>0>>0)zr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,Bke(k,se>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[Q>>2]|0)-O|0)/12|0,s+8|0),Q=k+8|0,m=n[Q>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],q5(m,f,c),n[Q>>2]=(n[Q>>2]|0)+12,vke(s,k),Dke(k),C=M;return}}function Ike(s){return s=s|0,357913941}function Bke(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Kt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function vke(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function Dke(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&>(s)}function j5(s){s=s|0,bke(s)}function Ske(s){s=s|0,Pke(s+24|0)}function Pke(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),gt(c))}function bke(s){s=s|0;var l=0;l=Kr()|0,Vr(s,2,7,l,xke()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function xke(){return 1312}function kke(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;f=C,C=C+16|0,d=f+8|0,m=f,B=Qke(s)|0,s=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=s,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],Fke(l,d,c),C=f}function Qke(s){return s=s|0,(n[(ZF()|0)+24>>2]|0)+(s*12|0)|0}function Fke(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0;m=C,C=C+16|0,d=m,f=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(f=n[(n[s>>2]|0)+f>>2]|0),ZA(d,c),d=$A(d,c)|0,rf[f&31](s,d),C=m}function Rke(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=pn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],Tke(s,c,d,0),C=f}function Tke(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,Q=0,M=0,O=0;d=C,C=C+32|0,m=d+16|0,O=d+8|0,k=d,M=n[c>>2]|0,Q=n[c+4>>2]|0,B=n[s>>2]|0,s=$F()|0,n[O>>2]=M,n[O+4>>2]=Q,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=Nke(m)|0,n[k>>2]=M,n[k+4>>2]=Q,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],hn(B,l,s,c,Lke(m,f)|0,f),C=d}function $F(){var s=0,l=0;if(o[7784]|0||(Y5(9864),tr(42,9864,U|0)|0,l=7784,n[l>>2]=1,n[l+4>>2]=0),!(Tr(9864)|0)){s=9864,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));Y5(9864)}return 9864}function Nke(s){return s=s|0,0}function Lke(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0,j=0;return O=C,C=C+32|0,d=O+24|0,B=O+16|0,k=O,Q=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=$F()|0,M=j+24|0,s=gr(l,4)|0,n[Q>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],G5(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(Oke(M,k,Q),s=n[l>>2]|0),C=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function G5(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function Oke(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0,j=0,se=0;if(M=C,C=C+48|0,f=M+32|0,B=M+24|0,k=M,Q=s+4|0,d=(((n[Q>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=Mke(s)|0,m>>>0>>0)zr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,Uke(k,se>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[Q>>2]|0)-O|0)/12|0,s+8|0),Q=k+8|0,m=n[Q>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],G5(m,f,c),n[Q>>2]=(n[Q>>2]|0)+12,_ke(s,k),Hke(k),C=M;return}}function Mke(s){return s=s|0,357913941}function Uke(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Kt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function _ke(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function Hke(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&>(s)}function Y5(s){s=s|0,Gke(s)}function qke(s){s=s|0,jke(s+24|0)}function jke(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),gt(c))}function Gke(s){s=s|0;var l=0;l=Kr()|0,Vr(s,2,8,l,Yke()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function Yke(){return 1320}function Wke(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;f=C,C=C+16|0,d=f+8|0,m=f,B=Kke(s)|0,s=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=s,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],Vke(l,d,c),C=f}function Kke(s){return s=s|0,(n[($F()|0)+24>>2]|0)+(s*12|0)|0}function Vke(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0;m=C,C=C+16|0,d=m,f=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(f=n[(n[s>>2]|0)+f>>2]|0),Jke(d,c),d=zke(d,c)|0,rf[f&31](s,d),C=m}function Jke(s,l){s=s|0,l=l|0}function zke(s,l){return s=s|0,l=l|0,Xke(l)|0}function Xke(s){return s=s|0,s|0}function Zke(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=pn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],$ke(s,c,d,0),C=f}function $ke(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,Q=0,M=0,O=0;d=C,C=C+32|0,m=d+16|0,O=d+8|0,k=d,M=n[c>>2]|0,Q=n[c+4>>2]|0,B=n[s>>2]|0,s=eR()|0,n[O>>2]=M,n[O+4>>2]=Q,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=eQe(m)|0,n[k>>2]=M,n[k+4>>2]=Q,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],hn(B,l,s,c,tQe(m,f)|0,f),C=d}function eR(){var s=0,l=0;if(o[7792]|0||(K5(9900),tr(43,9900,U|0)|0,l=7792,n[l>>2]=1,n[l+4>>2]=0),!(Tr(9900)|0)){s=9900,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));K5(9900)}return 9900}function eQe(s){return s=s|0,0}function tQe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0,j=0;return O=C,C=C+32|0,d=O+24|0,B=O+16|0,k=O,Q=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=eR()|0,M=j+24|0,s=gr(l,4)|0,n[Q>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],W5(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(rQe(M,k,Q),s=n[l>>2]|0),C=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function W5(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function rQe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0,j=0,se=0;if(M=C,C=C+48|0,f=M+32|0,B=M+24|0,k=M,Q=s+4|0,d=(((n[Q>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=nQe(s)|0,m>>>0>>0)zr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,iQe(k,se>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[Q>>2]|0)-O|0)/12|0,s+8|0),Q=k+8|0,m=n[Q>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],W5(m,f,c),n[Q>>2]=(n[Q>>2]|0)+12,sQe(s,k),oQe(k),C=M;return}}function nQe(s){return s=s|0,357913941}function iQe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Kt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function sQe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function oQe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&>(s)}function K5(s){s=s|0,cQe(s)}function aQe(s){s=s|0,lQe(s+24|0)}function lQe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),gt(c))}function cQe(s){s=s|0;var l=0;l=Kr()|0,Vr(s,2,22,l,uQe()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function uQe(){return 1344}function AQe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0;c=C,C=C+16|0,f=c+8|0,d=c,m=fQe(s)|0,s=n[m+4>>2]|0,n[d>>2]=n[m>>2],n[d+4>>2]=s,n[f>>2]=n[d>>2],n[f+4>>2]=n[d+4>>2],pQe(l,f),C=c}function fQe(s){return s=s|0,(n[(eR()|0)+24>>2]|0)+(s*12|0)|0}function pQe(s,l){s=s|0,l=l|0;var c=0;c=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(c=n[(n[s>>2]|0)+c>>2]|0),tf[c&127](s)}function hQe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;m=n[s>>2]|0,d=tR()|0,s=gQe(c)|0,hn(m,l,d,s,dQe(c,f)|0,f)}function tR(){var s=0,l=0;if(o[7800]|0||(J5(9936),tr(44,9936,U|0)|0,l=7800,n[l>>2]=1,n[l+4>>2]=0),!(Tr(9936)|0)){s=9936,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));J5(9936)}return 9936}function gQe(s){return s=s|0,s|0}function dQe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0;return k=C,C=C+16|0,d=k,m=k+4|0,n[d>>2]=s,Q=tR()|0,B=Q+24|0,l=gr(l,4)|0,n[m>>2]=l,c=Q+28|0,f=n[c>>2]|0,f>>>0<(n[Q+32>>2]|0)>>>0?(V5(f,s,l),l=(n[c>>2]|0)+8|0,n[c>>2]=l):(mQe(B,d,m),l=n[c>>2]|0),C=k,(l-(n[B>>2]|0)>>3)+-1|0}function V5(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,n[s+4>>2]=c}function mQe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0;if(k=C,C=C+32|0,d=k,m=s+4|0,B=((n[m>>2]|0)-(n[s>>2]|0)>>3)+1|0,f=yQe(s)|0,f>>>0>>0)zr(s);else{Q=n[s>>2]|0,O=(n[s+8>>2]|0)-Q|0,M=O>>2,EQe(d,O>>3>>>0>>1>>>0?M>>>0>>0?B:M:f,(n[m>>2]|0)-Q>>3,s+8|0),B=d+8|0,V5(n[B>>2]|0,n[l>>2]|0,n[c>>2]|0),n[B>>2]=(n[B>>2]|0)+8,CQe(s,d),wQe(d),C=k;return}}function yQe(s){return s=s|0,536870911}function EQe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>536870911)Rt();else{d=Kt(l<<3)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c<<3)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<3)}function CQe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function wQe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-8-l|0)>>>3)<<3)),s=n[s>>2]|0,s|0&>(s)}function J5(s){s=s|0,vQe(s)}function IQe(s){s=s|0,BQe(s+24|0)}function BQe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),gt(c))}function vQe(s){s=s|0;var l=0;l=Kr()|0,Vr(s,1,23,l,B5()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function DQe(s,l){s=s|0,l=l|0,PQe(n[(SQe(s)|0)>>2]|0,l)}function SQe(s){return s=s|0,(n[(tR()|0)+24>>2]|0)+(s<<3)|0}function PQe(s,l){s=s|0,l=l|0;var c=0,f=0;c=C,C=C+16|0,f=c,HF(f,l),l=qF(f,l)|0,tf[s&127](l),C=c}function bQe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;m=n[s>>2]|0,d=rR()|0,s=xQe(c)|0,hn(m,l,d,s,kQe(c,f)|0,f)}function rR(){var s=0,l=0;if(o[7808]|0||(X5(9972),tr(45,9972,U|0)|0,l=7808,n[l>>2]=1,n[l+4>>2]=0),!(Tr(9972)|0)){s=9972,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));X5(9972)}return 9972}function xQe(s){return s=s|0,s|0}function kQe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0;return k=C,C=C+16|0,d=k,m=k+4|0,n[d>>2]=s,Q=rR()|0,B=Q+24|0,l=gr(l,4)|0,n[m>>2]=l,c=Q+28|0,f=n[c>>2]|0,f>>>0<(n[Q+32>>2]|0)>>>0?(z5(f,s,l),l=(n[c>>2]|0)+8|0,n[c>>2]=l):(QQe(B,d,m),l=n[c>>2]|0),C=k,(l-(n[B>>2]|0)>>3)+-1|0}function z5(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,n[s+4>>2]=c}function QQe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0;if(k=C,C=C+32|0,d=k,m=s+4|0,B=((n[m>>2]|0)-(n[s>>2]|0)>>3)+1|0,f=FQe(s)|0,f>>>0>>0)zr(s);else{Q=n[s>>2]|0,O=(n[s+8>>2]|0)-Q|0,M=O>>2,RQe(d,O>>3>>>0>>1>>>0?M>>>0>>0?B:M:f,(n[m>>2]|0)-Q>>3,s+8|0),B=d+8|0,z5(n[B>>2]|0,n[l>>2]|0,n[c>>2]|0),n[B>>2]=(n[B>>2]|0)+8,TQe(s,d),NQe(d),C=k;return}}function FQe(s){return s=s|0,536870911}function RQe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>536870911)Rt();else{d=Kt(l<<3)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c<<3)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<3)}function TQe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function NQe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-8-l|0)>>>3)<<3)),s=n[s>>2]|0,s|0&>(s)}function X5(s){s=s|0,MQe(s)}function LQe(s){s=s|0,OQe(s+24|0)}function OQe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),gt(c))}function MQe(s){s=s|0;var l=0;l=Kr()|0,Vr(s,1,9,l,UQe()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function UQe(){return 1348}function _Qe(s,l){return s=s|0,l=l|0,qQe(n[(HQe(s)|0)>>2]|0,l)|0}function HQe(s){return s=s|0,(n[(rR()|0)+24>>2]|0)+(s<<3)|0}function qQe(s,l){s=s|0,l=l|0;var c=0,f=0;return c=C,C=C+16|0,f=c,Z5(f,l),l=$5(f,l)|0,l=sD(Lg[s&31](l)|0)|0,C=c,l|0}function Z5(s,l){s=s|0,l=l|0}function $5(s,l){return s=s|0,l=l|0,jQe(l)|0}function jQe(s){return s=s|0,s|0}function GQe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;m=n[s>>2]|0,d=nR()|0,s=YQe(c)|0,hn(m,l,d,s,WQe(c,f)|0,f)}function nR(){var s=0,l=0;if(o[7816]|0||(t9(10008),tr(46,10008,U|0)|0,l=7816,n[l>>2]=1,n[l+4>>2]=0),!(Tr(10008)|0)){s=10008,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));t9(10008)}return 10008}function YQe(s){return s=s|0,s|0}function WQe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0;return k=C,C=C+16|0,d=k,m=k+4|0,n[d>>2]=s,Q=nR()|0,B=Q+24|0,l=gr(l,4)|0,n[m>>2]=l,c=Q+28|0,f=n[c>>2]|0,f>>>0<(n[Q+32>>2]|0)>>>0?(e9(f,s,l),l=(n[c>>2]|0)+8|0,n[c>>2]=l):(KQe(B,d,m),l=n[c>>2]|0),C=k,(l-(n[B>>2]|0)>>3)+-1|0}function e9(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,n[s+4>>2]=c}function KQe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0;if(k=C,C=C+32|0,d=k,m=s+4|0,B=((n[m>>2]|0)-(n[s>>2]|0)>>3)+1|0,f=VQe(s)|0,f>>>0>>0)zr(s);else{Q=n[s>>2]|0,O=(n[s+8>>2]|0)-Q|0,M=O>>2,JQe(d,O>>3>>>0>>1>>>0?M>>>0>>0?B:M:f,(n[m>>2]|0)-Q>>3,s+8|0),B=d+8|0,e9(n[B>>2]|0,n[l>>2]|0,n[c>>2]|0),n[B>>2]=(n[B>>2]|0)+8,zQe(s,d),XQe(d),C=k;return}}function VQe(s){return s=s|0,536870911}function JQe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>536870911)Rt();else{d=Kt(l<<3)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c<<3)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<3)}function zQe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function XQe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-8-l|0)>>>3)<<3)),s=n[s>>2]|0,s|0&>(s)}function t9(s){s=s|0,eFe(s)}function ZQe(s){s=s|0,$Qe(s+24|0)}function $Qe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),gt(c))}function eFe(s){s=s|0;var l=0;l=Kr()|0,Vr(s,1,15,l,m5()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function tFe(s){return s=s|0,nFe(n[(rFe(s)|0)>>2]|0)|0}function rFe(s){return s=s|0,(n[(nR()|0)+24>>2]|0)+(s<<3)|0}function nFe(s){return s=s|0,sD(CD[s&7]()|0)|0}function iFe(){var s=0;return o[7832]|0||(fFe(10052),tr(25,10052,U|0)|0,s=7832,n[s>>2]=1,n[s+4>>2]=0),10052}function sFe(s,l){s=s|0,l=l|0,n[s>>2]=oFe()|0,n[s+4>>2]=aFe()|0,n[s+12>>2]=l,n[s+8>>2]=lFe()|0,n[s+32>>2]=2}function oFe(){return 11709}function aFe(){return 1188}function lFe(){return aD()|0}function cFe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,(bp(f,896)|0)==512?c|0&&(uFe(c),gt(c)):l|0&&(Su(l),gt(l))}function bp(s,l){return s=s|0,l=l|0,l&s|0}function uFe(s){s=s|0,s=n[s+4>>2]|0,s|0&&kp(s)}function aD(){var s=0;return o[7824]|0||(n[2511]=AFe()|0,n[2512]=0,s=7824,n[s>>2]=1,n[s+4>>2]=0),10044}function AFe(){return 0}function fFe(s){s=s|0,vp(s)}function pFe(s){s=s|0;var l=0,c=0,f=0,d=0,m=0;l=C,C=C+32|0,c=l+24|0,m=l+16|0,d=l+8|0,f=l,hFe(s,4827),gFe(s,4834,3)|0,dFe(s,3682,47)|0,n[m>>2]=9,n[m+4>>2]=0,n[c>>2]=n[m>>2],n[c+4>>2]=n[m+4>>2],mFe(s,4841,c)|0,n[d>>2]=1,n[d+4>>2]=0,n[c>>2]=n[d>>2],n[c+4>>2]=n[d+4>>2],yFe(s,4871,c)|0,n[f>>2]=10,n[f+4>>2]=0,n[c>>2]=n[f>>2],n[c+4>>2]=n[f+4>>2],EFe(s,4891,c)|0,C=l}function hFe(s,l){s=s|0,l=l|0;var c=0;c=XRe()|0,n[s>>2]=c,ZRe(c,l),xp(n[s>>2]|0)}function gFe(s,l,c){return s=s|0,l=l|0,c=c|0,NRe(s,pn(l)|0,c,0),s|0}function dFe(s,l,c){return s=s|0,l=l|0,c=c|0,CRe(s,pn(l)|0,c,0),s|0}function mFe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],tRe(s,l,d),C=f,s|0}function yFe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],LFe(s,l,d),C=f,s|0}function EFe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],CFe(s,l,d),C=f,s|0}function CFe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=pn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],wFe(s,c,d,1),C=f}function wFe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,Q=0,M=0,O=0;d=C,C=C+32|0,m=d+16|0,O=d+8|0,k=d,M=n[c>>2]|0,Q=n[c+4>>2]|0,B=n[s>>2]|0,s=iR()|0,n[O>>2]=M,n[O+4>>2]=Q,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=IFe(m)|0,n[k>>2]=M,n[k+4>>2]=Q,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],hn(B,l,s,c,BFe(m,f)|0,f),C=d}function iR(){var s=0,l=0;if(o[7840]|0||(n9(10100),tr(48,10100,U|0)|0,l=7840,n[l>>2]=1,n[l+4>>2]=0),!(Tr(10100)|0)){s=10100,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));n9(10100)}return 10100}function IFe(s){return s=s|0,0}function BFe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0,j=0;return O=C,C=C+32|0,d=O+24|0,B=O+16|0,k=O,Q=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=iR()|0,M=j+24|0,s=gr(l,4)|0,n[Q>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],r9(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(vFe(M,k,Q),s=n[l>>2]|0),C=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function r9(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function vFe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0,j=0,se=0;if(M=C,C=C+48|0,f=M+32|0,B=M+24|0,k=M,Q=s+4|0,d=(((n[Q>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=DFe(s)|0,m>>>0>>0)zr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,SFe(k,se>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[Q>>2]|0)-O|0)/12|0,s+8|0),Q=k+8|0,m=n[Q>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],r9(m,f,c),n[Q>>2]=(n[Q>>2]|0)+12,PFe(s,k),bFe(k),C=M;return}}function DFe(s){return s=s|0,357913941}function SFe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Kt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function PFe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function bFe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&>(s)}function n9(s){s=s|0,QFe(s)}function xFe(s){s=s|0,kFe(s+24|0)}function kFe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),gt(c))}function QFe(s){s=s|0;var l=0;l=Kr()|0,Vr(s,2,6,l,FFe()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function FFe(){return 1364}function RFe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=TFe(s)|0,s=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=s,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],c=NFe(l,d,c)|0,C=f,c|0}function TFe(s){return s=s|0,(n[(iR()|0)+24>>2]|0)+(s*12|0)|0}function NFe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0;return m=C,C=C+16|0,d=m,f=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(f=n[(n[s>>2]|0)+f>>2]|0),ZA(d,c),d=$A(d,c)|0,d=u5(RR[f&15](s,d)|0)|0,C=m,d|0}function LFe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=pn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],OFe(s,c,d,0),C=f}function OFe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,Q=0,M=0,O=0;d=C,C=C+32|0,m=d+16|0,O=d+8|0,k=d,M=n[c>>2]|0,Q=n[c+4>>2]|0,B=n[s>>2]|0,s=sR()|0,n[O>>2]=M,n[O+4>>2]=Q,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=MFe(m)|0,n[k>>2]=M,n[k+4>>2]=Q,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],hn(B,l,s,c,UFe(m,f)|0,f),C=d}function sR(){var s=0,l=0;if(o[7848]|0||(s9(10136),tr(49,10136,U|0)|0,l=7848,n[l>>2]=1,n[l+4>>2]=0),!(Tr(10136)|0)){s=10136,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));s9(10136)}return 10136}function MFe(s){return s=s|0,0}function UFe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0,j=0;return O=C,C=C+32|0,d=O+24|0,B=O+16|0,k=O,Q=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=sR()|0,M=j+24|0,s=gr(l,4)|0,n[Q>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],i9(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(_Fe(M,k,Q),s=n[l>>2]|0),C=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function i9(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function _Fe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0,j=0,se=0;if(M=C,C=C+48|0,f=M+32|0,B=M+24|0,k=M,Q=s+4|0,d=(((n[Q>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=HFe(s)|0,m>>>0>>0)zr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,qFe(k,se>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[Q>>2]|0)-O|0)/12|0,s+8|0),Q=k+8|0,m=n[Q>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],i9(m,f,c),n[Q>>2]=(n[Q>>2]|0)+12,jFe(s,k),GFe(k),C=M;return}}function HFe(s){return s=s|0,357913941}function qFe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Kt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function jFe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function GFe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&>(s)}function s9(s){s=s|0,KFe(s)}function YFe(s){s=s|0,WFe(s+24|0)}function WFe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),gt(c))}function KFe(s){s=s|0;var l=0;l=Kr()|0,Vr(s,2,9,l,VFe()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function VFe(){return 1372}function JFe(s,l,c){s=s|0,l=l|0,c=+c;var f=0,d=0,m=0,B=0;f=C,C=C+16|0,d=f+8|0,m=f,B=zFe(s)|0,s=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=s,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],XFe(l,d,c),C=f}function zFe(s){return s=s|0,(n[(sR()|0)+24>>2]|0)+(s*12|0)|0}function XFe(s,l,c){s=s|0,l=l|0,c=+c;var f=0,d=0,m=0,B=Ze;m=C,C=C+16|0,d=m,f=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(f=n[(n[s>>2]|0)+f>>2]|0),ZFe(d,c),B=y($Fe(d,c)),E7[f&1](s,B),C=m}function ZFe(s,l){s=s|0,l=+l}function $Fe(s,l){return s=s|0,l=+l,y(eRe(l))}function eRe(s){return s=+s,y(s)}function tRe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=pn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],rRe(s,c,d,0),C=f}function rRe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,Q=0,M=0,O=0;d=C,C=C+32|0,m=d+16|0,O=d+8|0,k=d,M=n[c>>2]|0,Q=n[c+4>>2]|0,B=n[s>>2]|0,s=oR()|0,n[O>>2]=M,n[O+4>>2]=Q,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=nRe(m)|0,n[k>>2]=M,n[k+4>>2]=Q,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],hn(B,l,s,c,iRe(m,f)|0,f),C=d}function oR(){var s=0,l=0;if(o[7856]|0||(a9(10172),tr(50,10172,U|0)|0,l=7856,n[l>>2]=1,n[l+4>>2]=0),!(Tr(10172)|0)){s=10172,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));a9(10172)}return 10172}function nRe(s){return s=s|0,0}function iRe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0,j=0;return O=C,C=C+32|0,d=O+24|0,B=O+16|0,k=O,Q=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=oR()|0,M=j+24|0,s=gr(l,4)|0,n[Q>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],o9(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(sRe(M,k,Q),s=n[l>>2]|0),C=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function o9(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function sRe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0,j=0,se=0;if(M=C,C=C+48|0,f=M+32|0,B=M+24|0,k=M,Q=s+4|0,d=(((n[Q>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=oRe(s)|0,m>>>0>>0)zr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,aRe(k,se>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[Q>>2]|0)-O|0)/12|0,s+8|0),Q=k+8|0,m=n[Q>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],o9(m,f,c),n[Q>>2]=(n[Q>>2]|0)+12,lRe(s,k),cRe(k),C=M;return}}function oRe(s){return s=s|0,357913941}function aRe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Kt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function lRe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function cRe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&>(s)}function a9(s){s=s|0,fRe(s)}function uRe(s){s=s|0,ARe(s+24|0)}function ARe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),gt(c))}function fRe(s){s=s|0;var l=0;l=Kr()|0,Vr(s,2,3,l,pRe()|0,2),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function pRe(){return 1380}function hRe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0;d=C,C=C+16|0,m=d+8|0,B=d,k=gRe(s)|0,s=n[k+4>>2]|0,n[B>>2]=n[k>>2],n[B+4>>2]=s,n[m>>2]=n[B>>2],n[m+4>>2]=n[B+4>>2],dRe(l,m,c,f),C=d}function gRe(s){return s=s|0,(n[(oR()|0)+24>>2]|0)+(s*12|0)|0}function dRe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0;k=C,C=C+16|0,m=k+1|0,B=k,d=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(d=n[(n[s>>2]|0)+d>>2]|0),ZA(m,c),m=$A(m,c)|0,mRe(B,f),B=yRe(B,f)|0,Hw[d&15](s,m,B),C=k}function mRe(s,l){s=s|0,l=l|0}function yRe(s,l){return s=s|0,l=l|0,ERe(l)|0}function ERe(s){return s=s|0,(s|0)!=0|0}function CRe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;m=n[s>>2]|0,d=aR()|0,s=wRe(c)|0,hn(m,l,d,s,IRe(c,f)|0,f)}function aR(){var s=0,l=0;if(o[7864]|0||(c9(10208),tr(51,10208,U|0)|0,l=7864,n[l>>2]=1,n[l+4>>2]=0),!(Tr(10208)|0)){s=10208,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));c9(10208)}return 10208}function wRe(s){return s=s|0,s|0}function IRe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0;return k=C,C=C+16|0,d=k,m=k+4|0,n[d>>2]=s,Q=aR()|0,B=Q+24|0,l=gr(l,4)|0,n[m>>2]=l,c=Q+28|0,f=n[c>>2]|0,f>>>0<(n[Q+32>>2]|0)>>>0?(l9(f,s,l),l=(n[c>>2]|0)+8|0,n[c>>2]=l):(BRe(B,d,m),l=n[c>>2]|0),C=k,(l-(n[B>>2]|0)>>3)+-1|0}function l9(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,n[s+4>>2]=c}function BRe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0;if(k=C,C=C+32|0,d=k,m=s+4|0,B=((n[m>>2]|0)-(n[s>>2]|0)>>3)+1|0,f=vRe(s)|0,f>>>0>>0)zr(s);else{Q=n[s>>2]|0,O=(n[s+8>>2]|0)-Q|0,M=O>>2,DRe(d,O>>3>>>0>>1>>>0?M>>>0>>0?B:M:f,(n[m>>2]|0)-Q>>3,s+8|0),B=d+8|0,l9(n[B>>2]|0,n[l>>2]|0,n[c>>2]|0),n[B>>2]=(n[B>>2]|0)+8,SRe(s,d),PRe(d),C=k;return}}function vRe(s){return s=s|0,536870911}function DRe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>536870911)Rt();else{d=Kt(l<<3)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c<<3)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<3)}function SRe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function PRe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-8-l|0)>>>3)<<3)),s=n[s>>2]|0,s|0&>(s)}function c9(s){s=s|0,kRe(s)}function bRe(s){s=s|0,xRe(s+24|0)}function xRe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),gt(c))}function kRe(s){s=s|0;var l=0;l=Kr()|0,Vr(s,1,24,l,QRe()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function QRe(){return 1392}function FRe(s,l){s=s|0,l=l|0,TRe(n[(RRe(s)|0)>>2]|0,l)}function RRe(s){return s=s|0,(n[(aR()|0)+24>>2]|0)+(s<<3)|0}function TRe(s,l){s=s|0,l=l|0;var c=0,f=0;c=C,C=C+16|0,f=c,Z5(f,l),l=$5(f,l)|0,tf[s&127](l),C=c}function NRe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;m=n[s>>2]|0,d=lR()|0,s=LRe(c)|0,hn(m,l,d,s,ORe(c,f)|0,f)}function lR(){var s=0,l=0;if(o[7872]|0||(A9(10244),tr(52,10244,U|0)|0,l=7872,n[l>>2]=1,n[l+4>>2]=0),!(Tr(10244)|0)){s=10244,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));A9(10244)}return 10244}function LRe(s){return s=s|0,s|0}function ORe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0;return k=C,C=C+16|0,d=k,m=k+4|0,n[d>>2]=s,Q=lR()|0,B=Q+24|0,l=gr(l,4)|0,n[m>>2]=l,c=Q+28|0,f=n[c>>2]|0,f>>>0<(n[Q+32>>2]|0)>>>0?(u9(f,s,l),l=(n[c>>2]|0)+8|0,n[c>>2]=l):(MRe(B,d,m),l=n[c>>2]|0),C=k,(l-(n[B>>2]|0)>>3)+-1|0}function u9(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,n[s+4>>2]=c}function MRe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0;if(k=C,C=C+32|0,d=k,m=s+4|0,B=((n[m>>2]|0)-(n[s>>2]|0)>>3)+1|0,f=URe(s)|0,f>>>0>>0)zr(s);else{Q=n[s>>2]|0,O=(n[s+8>>2]|0)-Q|0,M=O>>2,_Re(d,O>>3>>>0>>1>>>0?M>>>0>>0?B:M:f,(n[m>>2]|0)-Q>>3,s+8|0),B=d+8|0,u9(n[B>>2]|0,n[l>>2]|0,n[c>>2]|0),n[B>>2]=(n[B>>2]|0)+8,HRe(s,d),qRe(d),C=k;return}}function URe(s){return s=s|0,536870911}function _Re(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>536870911)Rt();else{d=Kt(l<<3)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c<<3)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<3)}function HRe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function qRe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-8-l|0)>>>3)<<3)),s=n[s>>2]|0,s|0&>(s)}function A9(s){s=s|0,YRe(s)}function jRe(s){s=s|0,GRe(s+24|0)}function GRe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),gt(c))}function YRe(s){s=s|0;var l=0;l=Kr()|0,Vr(s,1,16,l,WRe()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function WRe(){return 1400}function KRe(s){return s=s|0,JRe(n[(VRe(s)|0)>>2]|0)|0}function VRe(s){return s=s|0,(n[(lR()|0)+24>>2]|0)+(s<<3)|0}function JRe(s){return s=s|0,zRe(CD[s&7]()|0)|0}function zRe(s){return s=s|0,s|0}function XRe(){var s=0;return o[7880]|0||(iTe(10280),tr(25,10280,U|0)|0,s=7880,n[s>>2]=1,n[s+4>>2]=0),10280}function ZRe(s,l){s=s|0,l=l|0,n[s>>2]=$Re()|0,n[s+4>>2]=eTe()|0,n[s+12>>2]=l,n[s+8>>2]=tTe()|0,n[s+32>>2]=4}function $Re(){return 11711}function eTe(){return 1356}function tTe(){return aD()|0}function rTe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,(bp(f,896)|0)==512?c|0&&(nTe(c),gt(c)):l|0&&(Dg(l),gt(l))}function nTe(s){s=s|0,s=n[s+4>>2]|0,s|0&&kp(s)}function iTe(s){s=s|0,vp(s)}function sTe(s){s=s|0,oTe(s,4920),aTe(s)|0,lTe(s)|0}function oTe(s,l){s=s|0,l=l|0;var c=0;c=R5()|0,n[s>>2]=c,xTe(c,l),xp(n[s>>2]|0)}function aTe(s){s=s|0;var l=0;return l=n[s>>2]|0,kg(l,ETe()|0),s|0}function lTe(s){s=s|0;var l=0;return l=n[s>>2]|0,kg(l,cTe()|0),s|0}function cTe(){var s=0;return o[7888]|0||(f9(10328),tr(53,10328,U|0)|0,s=7888,n[s>>2]=1,n[s+4>>2]=0),Tr(10328)|0||f9(10328),10328}function kg(s,l){s=s|0,l=l|0,hn(s,0,l,0,0,0)}function f9(s){s=s|0,fTe(s),Qg(s,10)}function uTe(s){s=s|0,ATe(s+24|0)}function ATe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),gt(c))}function fTe(s){s=s|0;var l=0;l=Kr()|0,Vr(s,5,1,l,dTe()|0,2),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function pTe(s,l,c){s=s|0,l=l|0,c=+c,hTe(s,l,c)}function Qg(s,l){s=s|0,l=l|0,n[s+20>>2]=l}function hTe(s,l,c){s=s|0,l=l|0,c=+c;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,m=f+8|0,k=f+13|0,d=f,B=f+12|0,ZA(k,l),n[m>>2]=$A(k,l)|0,ku(B,c),E[d>>3]=+Qu(B,c),gTe(s,m,d),C=f}function gTe(s,l,c){s=s|0,l=l|0,c=c|0,Y(s+8|0,n[l>>2]|0,+E[c>>3]),o[s+24>>0]=1}function dTe(){return 1404}function mTe(s,l){return s=s|0,l=+l,yTe(s,l)|0}function yTe(s,l){s=s|0,l=+l;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0;return f=C,C=C+16|0,m=f+4|0,B=f+8|0,k=f,d=Wa(8)|0,c=d,Q=Kt(16)|0,ZA(m,s),s=$A(m,s)|0,ku(B,l),Y(Q,s,+Qu(B,l)),B=c+4|0,n[B>>2]=Q,s=Kt(8)|0,B=n[B>>2]|0,n[k>>2]=0,n[m>>2]=n[k>>2],KF(s,B,m),n[d>>2]=s,C=f,c|0}function ETe(){var s=0;return o[7896]|0||(p9(10364),tr(54,10364,U|0)|0,s=7896,n[s>>2]=1,n[s+4>>2]=0),Tr(10364)|0||p9(10364),10364}function p9(s){s=s|0,ITe(s),Qg(s,55)}function CTe(s){s=s|0,wTe(s+24|0)}function wTe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),gt(c))}function ITe(s){s=s|0;var l=0;l=Kr()|0,Vr(s,5,4,l,STe()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function BTe(s){s=s|0,vTe(s)}function vTe(s){s=s|0,DTe(s)}function DTe(s){s=s|0,h9(s+8|0),o[s+24>>0]=1}function h9(s){s=s|0,n[s>>2]=0,E[s+8>>3]=0}function STe(){return 1424}function PTe(){return bTe()|0}function bTe(){var s=0,l=0,c=0,f=0,d=0,m=0,B=0;return l=C,C=C+16|0,d=l+4|0,B=l,c=Wa(8)|0,s=c,f=Kt(16)|0,h9(f),m=s+4|0,n[m>>2]=f,f=Kt(8)|0,m=n[m>>2]|0,n[B>>2]=0,n[d>>2]=n[B>>2],KF(f,m,d),n[c>>2]=f,C=l,s|0}function xTe(s,l){s=s|0,l=l|0,n[s>>2]=kTe()|0,n[s+4>>2]=QTe()|0,n[s+12>>2]=l,n[s+8>>2]=FTe()|0,n[s+32>>2]=5}function kTe(){return 11710}function QTe(){return 1416}function FTe(){return lD()|0}function RTe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,(bp(f,896)|0)==512?c|0&&(TTe(c),gt(c)):l|0&>(l)}function TTe(s){s=s|0,s=n[s+4>>2]|0,s|0&&kp(s)}function lD(){var s=0;return o[7904]|0||(n[2600]=NTe()|0,n[2601]=0,s=7904,n[s>>2]=1,n[s+4>>2]=0),10400}function NTe(){return n[357]|0}function LTe(s){s=s|0,OTe(s,4926),MTe(s)|0}function OTe(s,l){s=s|0,l=l|0;var c=0;c=r5()|0,n[s>>2]=c,JTe(c,l),xp(n[s>>2]|0)}function MTe(s){s=s|0;var l=0;return l=n[s>>2]|0,kg(l,UTe()|0),s|0}function UTe(){var s=0;return o[7912]|0||(g9(10412),tr(56,10412,U|0)|0,s=7912,n[s>>2]=1,n[s+4>>2]=0),Tr(10412)|0||g9(10412),10412}function g9(s){s=s|0,qTe(s),Qg(s,57)}function _Te(s){s=s|0,HTe(s+24|0)}function HTe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),gt(c))}function qTe(s){s=s|0;var l=0;l=Kr()|0,Vr(s,5,5,l,WTe()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function jTe(s){s=s|0,GTe(s)}function GTe(s){s=s|0,YTe(s)}function YTe(s){s=s|0;var l=0,c=0;l=s+8|0,c=l+48|0;do n[l>>2]=0,l=l+4|0;while((l|0)<(c|0));o[s+56>>0]=1}function WTe(){return 1432}function KTe(){return VTe()|0}function VTe(){var s=0,l=0,c=0,f=0,d=0,m=0,B=0,k=0;B=C,C=C+16|0,s=B+4|0,l=B,c=Wa(8)|0,f=c,d=Kt(48)|0,m=d,k=m+48|0;do n[m>>2]=0,m=m+4|0;while((m|0)<(k|0));return m=f+4|0,n[m>>2]=d,k=Kt(8)|0,m=n[m>>2]|0,n[l>>2]=0,n[s>>2]=n[l>>2],n5(k,m,s),n[c>>2]=k,C=B,f|0}function JTe(s,l){s=s|0,l=l|0,n[s>>2]=zTe()|0,n[s+4>>2]=XTe()|0,n[s+12>>2]=l,n[s+8>>2]=ZTe()|0,n[s+32>>2]=6}function zTe(){return 11704}function XTe(){return 1436}function ZTe(){return lD()|0}function $Te(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,(bp(f,896)|0)==512?c|0&&(eNe(c),gt(c)):l|0&>(l)}function eNe(s){s=s|0,s=n[s+4>>2]|0,s|0&&kp(s)}function tNe(s){s=s|0,rNe(s,4933),nNe(s)|0,iNe(s)|0}function rNe(s,l){s=s|0,l=l|0;var c=0;c=bNe()|0,n[s>>2]=c,xNe(c,l),xp(n[s>>2]|0)}function nNe(s){s=s|0;var l=0;return l=n[s>>2]|0,kg(l,yNe()|0),s|0}function iNe(s){s=s|0;var l=0;return l=n[s>>2]|0,kg(l,sNe()|0),s|0}function sNe(){var s=0;return o[7920]|0||(d9(10452),tr(58,10452,U|0)|0,s=7920,n[s>>2]=1,n[s+4>>2]=0),Tr(10452)|0||d9(10452),10452}function d9(s){s=s|0,lNe(s),Qg(s,1)}function oNe(s){s=s|0,aNe(s+24|0)}function aNe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),gt(c))}function lNe(s){s=s|0;var l=0;l=Kr()|0,Vr(s,5,1,l,fNe()|0,2),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function cNe(s,l,c){s=s|0,l=+l,c=+c,uNe(s,l,c)}function uNe(s,l,c){s=s|0,l=+l,c=+c;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+32|0,m=f+8|0,k=f+17|0,d=f,B=f+16|0,ku(k,l),E[m>>3]=+Qu(k,l),ku(B,c),E[d>>3]=+Qu(B,c),ANe(s,m,d),C=f}function ANe(s,l,c){s=s|0,l=l|0,c=c|0,m9(s+8|0,+E[l>>3],+E[c>>3]),o[s+24>>0]=1}function m9(s,l,c){s=s|0,l=+l,c=+c,E[s>>3]=l,E[s+8>>3]=c}function fNe(){return 1472}function pNe(s,l){return s=+s,l=+l,hNe(s,l)|0}function hNe(s,l){s=+s,l=+l;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0;return f=C,C=C+16|0,B=f+4|0,k=f+8|0,Q=f,d=Wa(8)|0,c=d,m=Kt(16)|0,ku(B,s),s=+Qu(B,s),ku(k,l),m9(m,s,+Qu(k,l)),k=c+4|0,n[k>>2]=m,m=Kt(8)|0,k=n[k>>2]|0,n[Q>>2]=0,n[B>>2]=n[Q>>2],y9(m,k,B),n[d>>2]=m,C=f,c|0}function y9(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,c=Kt(16)|0,n[c+4>>2]=0,n[c+8>>2]=0,n[c>>2]=1452,n[c+12>>2]=l,n[s+4>>2]=c}function gNe(s){s=s|0,zm(s),gt(s)}function dNe(s){s=s|0,s=n[s+12>>2]|0,s|0&>(s)}function mNe(s){s=s|0,gt(s)}function yNe(){var s=0;return o[7928]|0||(E9(10488),tr(59,10488,U|0)|0,s=7928,n[s>>2]=1,n[s+4>>2]=0),Tr(10488)|0||E9(10488),10488}function E9(s){s=s|0,wNe(s),Qg(s,60)}function ENe(s){s=s|0,CNe(s+24|0)}function CNe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),gt(c))}function wNe(s){s=s|0;var l=0;l=Kr()|0,Vr(s,5,6,l,DNe()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function INe(s){s=s|0,BNe(s)}function BNe(s){s=s|0,vNe(s)}function vNe(s){s=s|0,C9(s+8|0),o[s+24>>0]=1}function C9(s){s=s|0,n[s>>2]=0,n[s+4>>2]=0,n[s+8>>2]=0,n[s+12>>2]=0}function DNe(){return 1492}function SNe(){return PNe()|0}function PNe(){var s=0,l=0,c=0,f=0,d=0,m=0,B=0;return l=C,C=C+16|0,d=l+4|0,B=l,c=Wa(8)|0,s=c,f=Kt(16)|0,C9(f),m=s+4|0,n[m>>2]=f,f=Kt(8)|0,m=n[m>>2]|0,n[B>>2]=0,n[d>>2]=n[B>>2],y9(f,m,d),n[c>>2]=f,C=l,s|0}function bNe(){var s=0;return o[7936]|0||(NNe(10524),tr(25,10524,U|0)|0,s=7936,n[s>>2]=1,n[s+4>>2]=0),10524}function xNe(s,l){s=s|0,l=l|0,n[s>>2]=kNe()|0,n[s+4>>2]=QNe()|0,n[s+12>>2]=l,n[s+8>>2]=FNe()|0,n[s+32>>2]=7}function kNe(){return 11700}function QNe(){return 1484}function FNe(){return lD()|0}function RNe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,(bp(f,896)|0)==512?c|0&&(TNe(c),gt(c)):l|0&>(l)}function TNe(s){s=s|0,s=n[s+4>>2]|0,s|0&&kp(s)}function NNe(s){s=s|0,vp(s)}function LNe(s,l,c){s=s|0,l=l|0,c=c|0,s=pn(l)|0,l=ONe(c)|0,c=MNe(c,0)|0,hLe(s,l,c,cR()|0,0)}function ONe(s){return s=s|0,s|0}function MNe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0;return k=C,C=C+16|0,d=k,m=k+4|0,n[d>>2]=s,Q=cR()|0,B=Q+24|0,l=gr(l,4)|0,n[m>>2]=l,c=Q+28|0,f=n[c>>2]|0,f>>>0<(n[Q+32>>2]|0)>>>0?(I9(f,s,l),l=(n[c>>2]|0)+8|0,n[c>>2]=l):(YNe(B,d,m),l=n[c>>2]|0),C=k,(l-(n[B>>2]|0)>>3)+-1|0}function cR(){var s=0,l=0;if(o[7944]|0||(w9(10568),tr(61,10568,U|0)|0,l=7944,n[l>>2]=1,n[l+4>>2]=0),!(Tr(10568)|0)){s=10568,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));w9(10568)}return 10568}function w9(s){s=s|0,HNe(s)}function UNe(s){s=s|0,_Ne(s+24|0)}function _Ne(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),gt(c))}function HNe(s){s=s|0;var l=0;l=Kr()|0,Vr(s,1,17,l,C5()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function qNe(s){return s=s|0,GNe(n[(jNe(s)|0)>>2]|0)|0}function jNe(s){return s=s|0,(n[(cR()|0)+24>>2]|0)+(s<<3)|0}function GNe(s){return s=s|0,oD(CD[s&7]()|0)|0}function I9(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,n[s+4>>2]=c}function YNe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0;if(k=C,C=C+32|0,d=k,m=s+4|0,B=((n[m>>2]|0)-(n[s>>2]|0)>>3)+1|0,f=WNe(s)|0,f>>>0>>0)zr(s);else{Q=n[s>>2]|0,O=(n[s+8>>2]|0)-Q|0,M=O>>2,KNe(d,O>>3>>>0>>1>>>0?M>>>0>>0?B:M:f,(n[m>>2]|0)-Q>>3,s+8|0),B=d+8|0,I9(n[B>>2]|0,n[l>>2]|0,n[c>>2]|0),n[B>>2]=(n[B>>2]|0)+8,VNe(s,d),JNe(d),C=k;return}}function WNe(s){return s=s|0,536870911}function KNe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>536870911)Rt();else{d=Kt(l<<3)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c<<3)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<3)}function VNe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function JNe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-8-l|0)>>>3)<<3)),s=n[s>>2]|0,s|0&>(s)}function zNe(){XNe()}function XNe(){ZNe(10604)}function ZNe(s){s=s|0,$Ne(s,4955)}function $Ne(s,l){s=s|0,l=l|0;var c=0;c=eLe()|0,n[s>>2]=c,tLe(c,l),xp(n[s>>2]|0)}function eLe(){var s=0;return o[7952]|0||(uLe(10612),tr(25,10612,U|0)|0,s=7952,n[s>>2]=1,n[s+4>>2]=0),10612}function tLe(s,l){s=s|0,l=l|0,n[s>>2]=sLe()|0,n[s+4>>2]=oLe()|0,n[s+12>>2]=l,n[s+8>>2]=aLe()|0,n[s+32>>2]=8}function xp(s){s=s|0;var l=0,c=0;l=C,C=C+16|0,c=l,Ym()|0,n[c>>2]=s,rLe(10608,c),C=l}function Ym(){return o[11714]|0||(n[2652]=0,tr(62,10608,U|0)|0,o[11714]=1),10608}function rLe(s,l){s=s|0,l=l|0;var c=0;c=Kt(8)|0,n[c+4>>2]=n[l>>2],n[c>>2]=n[s>>2],n[s>>2]=c}function nLe(s){s=s|0,iLe(s)}function iLe(s){s=s|0;var l=0,c=0;if(l=n[s>>2]|0,l|0)do c=l,l=n[l>>2]|0,gt(c);while((l|0)!=0);n[s>>2]=0}function sLe(){return 11715}function oLe(){return 1496}function aLe(){return aD()|0}function lLe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,(bp(f,896)|0)==512?c|0&&(cLe(c),gt(c)):l|0&>(l)}function cLe(s){s=s|0,s=n[s+4>>2]|0,s|0&&kp(s)}function uLe(s){s=s|0,vp(s)}function ALe(s,l){s=s|0,l=l|0;var c=0,f=0;Ym()|0,c=n[2652]|0;e:do if(c|0){for(;f=n[c+4>>2]|0,!(f|0&&(n7(uR(f)|0,s)|0)==0);)if(c=n[c>>2]|0,!c)break e;fLe(f,l)}while(0)}function uR(s){return s=s|0,n[s+12>>2]|0}function fLe(s,l){s=s|0,l=l|0;var c=0;s=s+36|0,c=n[s>>2]|0,c|0&&(jA(c),gt(c)),c=Kt(4)|0,zG(c,l),n[s>>2]=c}function AR(){return o[11716]|0||(n[2664]=0,tr(63,10656,U|0)|0,o[11716]=1),10656}function B9(){var s=0;return o[11717]|0?s=n[2665]|0:(pLe(),n[2665]=1504,o[11717]=1,s=1504),s|0}function pLe(){o[11740]|0||(o[11718]=gr(gr(8,0)|0,0)|0,o[11719]=gr(gr(0,0)|0,0)|0,o[11720]=gr(gr(0,16)|0,0)|0,o[11721]=gr(gr(8,0)|0,0)|0,o[11722]=gr(gr(0,0)|0,0)|0,o[11723]=gr(gr(8,0)|0,0)|0,o[11724]=gr(gr(0,0)|0,0)|0,o[11725]=gr(gr(8,0)|0,0)|0,o[11726]=gr(gr(0,0)|0,0)|0,o[11727]=gr(gr(8,0)|0,0)|0,o[11728]=gr(gr(0,0)|0,0)|0,o[11729]=gr(gr(0,0)|0,32)|0,o[11730]=gr(gr(0,0)|0,32)|0,o[11740]=1)}function v9(){return 1572}function hLe(s,l,c,f,d){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0;var m=0,B=0,k=0,Q=0,M=0,O=0;m=C,C=C+32|0,O=m+16|0,M=m+12|0,Q=m+8|0,k=m+4|0,B=m,n[O>>2]=s,n[M>>2]=l,n[Q>>2]=c,n[k>>2]=f,n[B>>2]=d,AR()|0,gLe(10656,O,M,Q,k,B),C=m}function gLe(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0;var B=0;B=Kt(24)|0,$G(B+4|0,n[l>>2]|0,n[c>>2]|0,n[f>>2]|0,n[d>>2]|0,n[m>>2]|0),n[B>>2]=n[s>>2],n[s>>2]=B}function D9(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0,j=0,se=0,Ge=0,Me=0,Qe=0,et=0,Xe=0,lt=0;if(lt=C,C=C+32|0,Me=lt+20|0,Qe=lt+8|0,et=lt+4|0,Xe=lt,l=n[l>>2]|0,l|0){Ge=Me+4|0,Q=Me+8|0,M=Qe+4|0,O=Qe+8|0,j=Qe+8|0,se=Me+8|0;do{if(B=l+4|0,k=fR(B)|0,k|0){if(d=Nw(k)|0,n[Me>>2]=0,n[Ge>>2]=0,n[Q>>2]=0,f=(Lw(k)|0)+1|0,dLe(Me,f),f|0)for(;f=f+-1|0,bc(Qe,n[d>>2]|0),m=n[Ge>>2]|0,m>>>0<(n[se>>2]|0)>>>0?(n[m>>2]=n[Qe>>2],n[Ge>>2]=(n[Ge>>2]|0)+4):pR(Me,Qe),f;)d=d+4|0;f=Ow(k)|0,n[Qe>>2]=0,n[M>>2]=0,n[O>>2]=0;e:do if(n[f>>2]|0)for(d=0,m=0;;){if((d|0)==(m|0)?mLe(Qe,f):(n[d>>2]=n[f>>2],n[M>>2]=(n[M>>2]|0)+4),f=f+4|0,!(n[f>>2]|0))break e;d=n[M>>2]|0,m=n[j>>2]|0}while(0);n[et>>2]=cD(B)|0,n[Xe>>2]=Tr(k)|0,yLe(c,s,et,Xe,Me,Qe),hR(Qe),ef(Me)}l=n[l>>2]|0}while((l|0)!=0)}C=lt}function fR(s){return s=s|0,n[s+12>>2]|0}function Nw(s){return s=s|0,n[s+12>>2]|0}function Lw(s){return s=s|0,n[s+16>>2]|0}function dLe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0;d=C,C=C+32|0,c=d,f=n[s>>2]|0,(n[s+8>>2]|0)-f>>2>>>0>>0&&(R9(c,l,(n[s+4>>2]|0)-f>>2,s+8|0),T9(s,c),N9(c)),C=d}function pR(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0,M=0;if(B=C,C=C+32|0,c=B,f=s+4|0,d=((n[f>>2]|0)-(n[s>>2]|0)>>2)+1|0,m=F9(s)|0,m>>>0>>0)zr(s);else{k=n[s>>2]|0,M=(n[s+8>>2]|0)-k|0,Q=M>>1,R9(c,M>>2>>>0>>1>>>0?Q>>>0>>0?d:Q:m,(n[f>>2]|0)-k>>2,s+8|0),m=c+8|0,n[n[m>>2]>>2]=n[l>>2],n[m>>2]=(n[m>>2]|0)+4,T9(s,c),N9(c),C=B;return}}function Ow(s){return s=s|0,n[s+8>>2]|0}function mLe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0,M=0;if(B=C,C=C+32|0,c=B,f=s+4|0,d=((n[f>>2]|0)-(n[s>>2]|0)>>2)+1|0,m=Q9(s)|0,m>>>0>>0)zr(s);else{k=n[s>>2]|0,M=(n[s+8>>2]|0)-k|0,Q=M>>1,OLe(c,M>>2>>>0>>1>>>0?Q>>>0>>0?d:Q:m,(n[f>>2]|0)-k>>2,s+8|0),m=c+8|0,n[n[m>>2]>>2]=n[l>>2],n[m>>2]=(n[m>>2]|0)+4,MLe(s,c),ULe(c),C=B;return}}function cD(s){return s=s|0,n[s>>2]|0}function yLe(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0,ELe(s,l,c,f,d,m)}function hR(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-4-f|0)>>>2)<<2)),gt(c))}function ef(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-4-f|0)>>>2)<<2)),gt(c))}function ELe(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0;var B=0,k=0,Q=0,M=0,O=0,j=0;B=C,C=C+48|0,O=B+40|0,k=B+32|0,j=B+24|0,Q=B+12|0,M=B,Ka(k),s=da(s)|0,n[j>>2]=n[l>>2],c=n[c>>2]|0,f=n[f>>2]|0,gR(Q,d),CLe(M,m),n[O>>2]=n[j>>2],wLe(s,O,c,f,Q,M),hR(M),ef(Q),Va(k),C=B}function gR(s,l){s=s|0,l=l|0;var c=0,f=0;n[s>>2]=0,n[s+4>>2]=0,n[s+8>>2]=0,c=l+4|0,f=(n[c>>2]|0)-(n[l>>2]|0)>>2,f|0&&(NLe(s,f),LLe(s,n[l>>2]|0,n[c>>2]|0,f))}function CLe(s,l){s=s|0,l=l|0;var c=0,f=0;n[s>>2]=0,n[s+4>>2]=0,n[s+8>>2]=0,c=l+4|0,f=(n[c>>2]|0)-(n[l>>2]|0)>>2,f|0&&(RLe(s,f),TLe(s,n[l>>2]|0,n[c>>2]|0,f))}function wLe(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0;var B=0,k=0,Q=0,M=0,O=0,j=0;B=C,C=C+32|0,O=B+28|0,j=B+24|0,k=B+12|0,Q=B,M=Sl(ILe()|0)|0,n[j>>2]=n[l>>2],n[O>>2]=n[j>>2],l=Fg(O)|0,c=S9(c)|0,f=dR(f)|0,n[k>>2]=n[d>>2],O=d+4|0,n[k+4>>2]=n[O>>2],j=d+8|0,n[k+8>>2]=n[j>>2],n[j>>2]=0,n[O>>2]=0,n[d>>2]=0,d=mR(k)|0,n[Q>>2]=n[m>>2],O=m+4|0,n[Q+4>>2]=n[O>>2],j=m+8|0,n[Q+8>>2]=n[j>>2],n[j>>2]=0,n[O>>2]=0,n[m>>2]=0,ao(0,M|0,s|0,l|0,c|0,f|0,d|0,BLe(Q)|0)|0,hR(Q),ef(k),C=B}function ILe(){var s=0;return o[7968]|0||(QLe(10708),s=7968,n[s>>2]=1,n[s+4>>2]=0),10708}function Fg(s){return s=s|0,b9(s)|0}function S9(s){return s=s|0,P9(s)|0}function dR(s){return s=s|0,oD(s)|0}function mR(s){return s=s|0,DLe(s)|0}function BLe(s){return s=s|0,vLe(s)|0}function vLe(s){s=s|0;var l=0,c=0,f=0;if(f=(n[s+4>>2]|0)-(n[s>>2]|0)|0,c=f>>2,f=Wa(f+4|0)|0,n[f>>2]=c,c|0){l=0;do n[f+4+(l<<2)>>2]=P9(n[(n[s>>2]|0)+(l<<2)>>2]|0)|0,l=l+1|0;while((l|0)!=(c|0))}return f|0}function P9(s){return s=s|0,s|0}function DLe(s){s=s|0;var l=0,c=0,f=0;if(f=(n[s+4>>2]|0)-(n[s>>2]|0)|0,c=f>>2,f=Wa(f+4|0)|0,n[f>>2]=c,c|0){l=0;do n[f+4+(l<<2)>>2]=b9((n[s>>2]|0)+(l<<2)|0)|0,l=l+1|0;while((l|0)!=(c|0))}return f|0}function b9(s){s=s|0;var l=0,c=0,f=0,d=0;return d=C,C=C+32|0,l=d+12|0,c=d,f=xF(x9()|0)|0,f?(kF(l,f),QF(c,l),aUe(s,c),s=FF(l)|0):s=SLe(s)|0,C=d,s|0}function x9(){var s=0;return o[7960]|0||(kLe(10664),tr(25,10664,U|0)|0,s=7960,n[s>>2]=1,n[s+4>>2]=0),10664}function SLe(s){s=s|0;var l=0,c=0,f=0,d=0,m=0,B=0,k=0;return c=C,C=C+16|0,d=c+4|0,B=c,f=Wa(8)|0,l=f,k=Kt(4)|0,n[k>>2]=n[s>>2],m=l+4|0,n[m>>2]=k,s=Kt(8)|0,m=n[m>>2]|0,n[B>>2]=0,n[d>>2]=n[B>>2],k9(s,m,d),n[f>>2]=s,C=c,l|0}function k9(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,c=Kt(16)|0,n[c+4>>2]=0,n[c+8>>2]=0,n[c>>2]=1656,n[c+12>>2]=l,n[s+4>>2]=c}function PLe(s){s=s|0,zm(s),gt(s)}function bLe(s){s=s|0,s=n[s+12>>2]|0,s|0&>(s)}function xLe(s){s=s|0,gt(s)}function kLe(s){s=s|0,vp(s)}function QLe(s){s=s|0,Pl(s,FLe()|0,5)}function FLe(){return 1676}function RLe(s,l){s=s|0,l=l|0;var c=0;if((Q9(s)|0)>>>0>>0&&zr(s),l>>>0>1073741823)Rt();else{c=Kt(l<<2)|0,n[s+4>>2]=c,n[s>>2]=c,n[s+8>>2]=c+(l<<2);return}}function TLe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,f=s+4|0,s=c-l|0,(s|0)>0&&(Dr(n[f>>2]|0,l|0,s|0)|0,n[f>>2]=(n[f>>2]|0)+(s>>>2<<2))}function Q9(s){return s=s|0,1073741823}function NLe(s,l){s=s|0,l=l|0;var c=0;if((F9(s)|0)>>>0>>0&&zr(s),l>>>0>1073741823)Rt();else{c=Kt(l<<2)|0,n[s+4>>2]=c,n[s>>2]=c,n[s+8>>2]=c+(l<<2);return}}function LLe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,f=s+4|0,s=c-l|0,(s|0)>0&&(Dr(n[f>>2]|0,l|0,s|0)|0,n[f>>2]=(n[f>>2]|0)+(s>>>2<<2))}function F9(s){return s=s|0,1073741823}function OLe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>1073741823)Rt();else{d=Kt(l<<2)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c<<2)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<2)}function MLe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>2)<<2)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function ULe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-4-l|0)>>>2)<<2)),s=n[s>>2]|0,s|0&>(s)}function R9(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>1073741823)Rt();else{d=Kt(l<<2)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c<<2)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<2)}function T9(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>2)<<2)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function N9(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-4-l|0)>>>2)<<2)),s=n[s>>2]|0,s|0&>(s)}function _Le(s,l,c,f,d){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0;var m=0,B=0,k=0,Q=0,M=0,O=0,j=0,se=0,Ge=0,Me=0,Qe=0;if(Qe=C,C=C+32|0,O=Qe+20|0,j=Qe+12|0,M=Qe+16|0,se=Qe+4|0,Ge=Qe,Me=Qe+8|0,k=B9()|0,m=n[k>>2]|0,B=n[m>>2]|0,B|0)for(Q=n[k+8>>2]|0,k=n[k+4>>2]|0;bc(O,B),HLe(s,O,k,Q),m=m+4|0,B=n[m>>2]|0,B;)Q=Q+1|0,k=k+1|0;if(m=v9()|0,B=n[m>>2]|0,B|0)do bc(O,B),n[j>>2]=n[m+4>>2],qLe(l,O,j),m=m+8|0,B=n[m>>2]|0;while((B|0)!=0);if(m=n[(Ym()|0)>>2]|0,m|0)do l=n[m+4>>2]|0,bc(O,n[(Wm(l)|0)>>2]|0),n[j>>2]=uR(l)|0,jLe(c,O,j),m=n[m>>2]|0;while((m|0)!=0);if(bc(M,0),m=AR()|0,n[O>>2]=n[M>>2],D9(O,m,d),m=n[(Ym()|0)>>2]|0,m|0){s=O+4|0,l=O+8|0,c=O+8|0;do{if(Q=n[m+4>>2]|0,bc(j,n[(Wm(Q)|0)>>2]|0),GLe(se,L9(Q)|0),B=n[se>>2]|0,B|0){n[O>>2]=0,n[s>>2]=0,n[l>>2]=0;do bc(Ge,n[(Wm(n[B+4>>2]|0)|0)>>2]|0),k=n[s>>2]|0,k>>>0<(n[c>>2]|0)>>>0?(n[k>>2]=n[Ge>>2],n[s>>2]=(n[s>>2]|0)+4):pR(O,Ge),B=n[B>>2]|0;while((B|0)!=0);YLe(f,j,O),ef(O)}n[Me>>2]=n[j>>2],M=O9(Q)|0,n[O>>2]=n[Me>>2],D9(O,M,d),s5(se),m=n[m>>2]|0}while((m|0)!=0)}C=Qe}function HLe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,nOe(s,l,c,f)}function qLe(s,l,c){s=s|0,l=l|0,c=c|0,rOe(s,l,c)}function Wm(s){return s=s|0,s|0}function jLe(s,l,c){s=s|0,l=l|0,c=c|0,ZLe(s,l,c)}function L9(s){return s=s|0,s+16|0}function GLe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0;if(m=C,C=C+16|0,d=m+8|0,c=m,n[s>>2]=0,f=n[l>>2]|0,n[d>>2]=f,n[c>>2]=s,c=XLe(c)|0,f|0){if(f=Kt(12)|0,B=(M9(d)|0)+4|0,s=n[B+4>>2]|0,l=f+4|0,n[l>>2]=n[B>>2],n[l+4>>2]=s,l=n[n[d>>2]>>2]|0,n[d>>2]=l,!l)s=f;else for(l=f;s=Kt(12)|0,Q=(M9(d)|0)+4|0,k=n[Q+4>>2]|0,B=s+4|0,n[B>>2]=n[Q>>2],n[B+4>>2]=k,n[l>>2]=s,B=n[n[d>>2]>>2]|0,n[d>>2]=B,B;)l=s;n[s>>2]=n[c>>2],n[c>>2]=f}C=m}function YLe(s,l,c){s=s|0,l=l|0,c=c|0,WLe(s,l,c)}function O9(s){return s=s|0,s+24|0}function WLe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+32|0,B=f+24|0,d=f+16|0,k=f+12|0,m=f,Ka(d),s=da(s)|0,n[k>>2]=n[l>>2],gR(m,c),n[B>>2]=n[k>>2],KLe(s,B,m),ef(m),Va(d),C=f}function KLe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+32|0,B=f+16|0,k=f+12|0,d=f,m=Sl(VLe()|0)|0,n[k>>2]=n[l>>2],n[B>>2]=n[k>>2],l=Fg(B)|0,n[d>>2]=n[c>>2],B=c+4|0,n[d+4>>2]=n[B>>2],k=c+8|0,n[d+8>>2]=n[k>>2],n[k>>2]=0,n[B>>2]=0,n[c>>2]=0,oo(0,m|0,s|0,l|0,mR(d)|0)|0,ef(d),C=f}function VLe(){var s=0;return o[7976]|0||(JLe(10720),s=7976,n[s>>2]=1,n[s+4>>2]=0),10720}function JLe(s){s=s|0,Pl(s,zLe()|0,2)}function zLe(){return 1732}function XLe(s){return s=s|0,n[s>>2]|0}function M9(s){return s=s|0,n[s>>2]|0}function ZLe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;f=C,C=C+32|0,m=f+16|0,d=f+8|0,B=f,Ka(d),s=da(s)|0,n[B>>2]=n[l>>2],c=n[c>>2]|0,n[m>>2]=n[B>>2],U9(s,m,c),Va(d),C=f}function U9(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;f=C,C=C+16|0,m=f+4|0,B=f,d=Sl($Le()|0)|0,n[B>>2]=n[l>>2],n[m>>2]=n[B>>2],l=Fg(m)|0,oo(0,d|0,s|0,l|0,S9(c)|0)|0,C=f}function $Le(){var s=0;return o[7984]|0||(eOe(10732),s=7984,n[s>>2]=1,n[s+4>>2]=0),10732}function eOe(s){s=s|0,Pl(s,tOe()|0,2)}function tOe(){return 1744}function rOe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;f=C,C=C+32|0,m=f+16|0,d=f+8|0,B=f,Ka(d),s=da(s)|0,n[B>>2]=n[l>>2],c=n[c>>2]|0,n[m>>2]=n[B>>2],U9(s,m,c),Va(d),C=f}function nOe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0;d=C,C=C+32|0,B=d+16|0,m=d+8|0,k=d,Ka(m),s=da(s)|0,n[k>>2]=n[l>>2],c=o[c>>0]|0,f=o[f>>0]|0,n[B>>2]=n[k>>2],iOe(s,B,c,f),Va(m),C=d}function iOe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0;d=C,C=C+16|0,B=d+4|0,k=d,m=Sl(sOe()|0)|0,n[k>>2]=n[l>>2],n[B>>2]=n[k>>2],l=Fg(B)|0,c=Km(c)|0,pc(0,m|0,s|0,l|0,c|0,Km(f)|0)|0,C=d}function sOe(){var s=0;return o[7992]|0||(aOe(10744),s=7992,n[s>>2]=1,n[s+4>>2]=0),10744}function Km(s){return s=s|0,oOe(s)|0}function oOe(s){return s=s|0,s&255|0}function aOe(s){s=s|0,Pl(s,lOe()|0,3)}function lOe(){return 1756}function cOe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0,j=0,se=0;switch(se=C,C=C+32|0,k=se+8|0,Q=se+4|0,M=se+20|0,O=se,LF(s,0),f=oUe(l)|0,n[k>>2]=0,j=k+4|0,n[j>>2]=0,n[k+8>>2]=0,f<<24>>24){case 0:{o[M>>0]=0,uOe(Q,c,M),uD(s,Q)|0,GA(Q);break}case 8:{j=BR(l)|0,o[M>>0]=8,bc(O,n[j+4>>2]|0),AOe(Q,c,M,O,j+8|0),uD(s,Q)|0,GA(Q);break}case 9:{if(m=BR(l)|0,l=n[m+4>>2]|0,l|0)for(B=k+8|0,d=m+12|0;l=l+-1|0,bc(Q,n[d>>2]|0),f=n[j>>2]|0,f>>>0<(n[B>>2]|0)>>>0?(n[f>>2]=n[Q>>2],n[j>>2]=(n[j>>2]|0)+4):pR(k,Q),l;)d=d+4|0;o[M>>0]=9,bc(O,n[m+8>>2]|0),fOe(Q,c,M,O,k),uD(s,Q)|0,GA(Q);break}default:j=BR(l)|0,o[M>>0]=f,bc(O,n[j+4>>2]|0),pOe(Q,c,M,O),uD(s,Q)|0,GA(Q)}ef(k),C=se}function uOe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0;f=C,C=C+16|0,d=f,Ka(d),l=da(l)|0,SOe(s,l,o[c>>0]|0),Va(d),C=f}function uD(s,l){s=s|0,l=l|0;var c=0;return c=n[s>>2]|0,c|0&&PA(c|0),n[s>>2]=n[l>>2],n[l>>2]=0,s|0}function AOe(s,l,c,f,d){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0;var m=0,B=0,k=0,Q=0;m=C,C=C+32|0,k=m+16|0,B=m+8|0,Q=m,Ka(B),l=da(l)|0,c=o[c>>0]|0,n[Q>>2]=n[f>>2],d=n[d>>2]|0,n[k>>2]=n[Q>>2],IOe(s,l,c,k,d),Va(B),C=m}function fOe(s,l,c,f,d){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0;var m=0,B=0,k=0,Q=0,M=0;m=C,C=C+32|0,Q=m+24|0,B=m+16|0,M=m+12|0,k=m,Ka(B),l=da(l)|0,c=o[c>>0]|0,n[M>>2]=n[f>>2],gR(k,d),n[Q>>2]=n[M>>2],yOe(s,l,c,Q,k),ef(k),Va(B),C=m}function pOe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0;d=C,C=C+32|0,B=d+16|0,m=d+8|0,k=d,Ka(m),l=da(l)|0,c=o[c>>0]|0,n[k>>2]=n[f>>2],n[B>>2]=n[k>>2],hOe(s,l,c,B),Va(m),C=d}function hOe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0;d=C,C=C+16|0,m=d+4|0,k=d,B=Sl(gOe()|0)|0,c=Km(c)|0,n[k>>2]=n[f>>2],n[m>>2]=n[k>>2],AD(s,oo(0,B|0,l|0,c|0,Fg(m)|0)|0),C=d}function gOe(){var s=0;return o[8e3]|0||(dOe(10756),s=8e3,n[s>>2]=1,n[s+4>>2]=0),10756}function AD(s,l){s=s|0,l=l|0,LF(s,l)}function dOe(s){s=s|0,Pl(s,mOe()|0,2)}function mOe(){return 1772}function yOe(s,l,c,f,d){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0;var m=0,B=0,k=0,Q=0,M=0;m=C,C=C+32|0,Q=m+16|0,M=m+12|0,B=m,k=Sl(EOe()|0)|0,c=Km(c)|0,n[M>>2]=n[f>>2],n[Q>>2]=n[M>>2],f=Fg(Q)|0,n[B>>2]=n[d>>2],Q=d+4|0,n[B+4>>2]=n[Q>>2],M=d+8|0,n[B+8>>2]=n[M>>2],n[M>>2]=0,n[Q>>2]=0,n[d>>2]=0,AD(s,pc(0,k|0,l|0,c|0,f|0,mR(B)|0)|0),ef(B),C=m}function EOe(){var s=0;return o[8008]|0||(COe(10768),s=8008,n[s>>2]=1,n[s+4>>2]=0),10768}function COe(s){s=s|0,Pl(s,wOe()|0,3)}function wOe(){return 1784}function IOe(s,l,c,f,d){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0;var m=0,B=0,k=0,Q=0;m=C,C=C+16|0,k=m+4|0,Q=m,B=Sl(BOe()|0)|0,c=Km(c)|0,n[Q>>2]=n[f>>2],n[k>>2]=n[Q>>2],f=Fg(k)|0,AD(s,pc(0,B|0,l|0,c|0,f|0,dR(d)|0)|0),C=m}function BOe(){var s=0;return o[8016]|0||(vOe(10780),s=8016,n[s>>2]=1,n[s+4>>2]=0),10780}function vOe(s){s=s|0,Pl(s,DOe()|0,3)}function DOe(){return 1800}function SOe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=Sl(POe()|0)|0,AD(s,Qn(0,f|0,l|0,Km(c)|0)|0)}function POe(){var s=0;return o[8024]|0||(bOe(10792),s=8024,n[s>>2]=1,n[s+4>>2]=0),10792}function bOe(s){s=s|0,Pl(s,xOe()|0,1)}function xOe(){return 1816}function kOe(){QOe(),FOe(),ROe()}function QOe(){n[2702]=p7(65536)|0}function FOe(){$Oe(10856)}function ROe(){TOe(10816)}function TOe(s){s=s|0,NOe(s,5044),LOe(s)|0}function NOe(s,l){s=s|0,l=l|0;var c=0;c=x9()|0,n[s>>2]=c,KOe(c,l),xp(n[s>>2]|0)}function LOe(s){s=s|0;var l=0;return l=n[s>>2]|0,kg(l,OOe()|0),s|0}function OOe(){var s=0;return o[8032]|0||(_9(10820),tr(64,10820,U|0)|0,s=8032,n[s>>2]=1,n[s+4>>2]=0),Tr(10820)|0||_9(10820),10820}function _9(s){s=s|0,_Oe(s),Qg(s,25)}function MOe(s){s=s|0,UOe(s+24|0)}function UOe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),gt(c))}function _Oe(s){s=s|0;var l=0;l=Kr()|0,Vr(s,5,18,l,GOe()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function HOe(s,l){s=s|0,l=l|0,qOe(s,l)}function qOe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0;c=C,C=C+16|0,f=c,d=c+4|0,bg(d,l),n[f>>2]=xg(d,l)|0,jOe(s,f),C=c}function jOe(s,l){s=s|0,l=l|0,H9(s+4|0,n[l>>2]|0),o[s+8>>0]=1}function H9(s,l){s=s|0,l=l|0,n[s>>2]=l}function GOe(){return 1824}function YOe(s){return s=s|0,WOe(s)|0}function WOe(s){s=s|0;var l=0,c=0,f=0,d=0,m=0,B=0,k=0;return c=C,C=C+16|0,d=c+4|0,B=c,f=Wa(8)|0,l=f,k=Kt(4)|0,bg(d,s),H9(k,xg(d,s)|0),m=l+4|0,n[m>>2]=k,s=Kt(8)|0,m=n[m>>2]|0,n[B>>2]=0,n[d>>2]=n[B>>2],k9(s,m,d),n[f>>2]=s,C=c,l|0}function Wa(s){s=s|0;var l=0,c=0;return s=s+7&-8,s>>>0<=32768&&(l=n[2701]|0,s>>>0<=(65536-l|0)>>>0)?(c=(n[2702]|0)+l|0,n[2701]=l+s,s=c):(s=p7(s+8|0)|0,n[s>>2]=n[2703],n[2703]=s,s=s+8|0),s|0}function KOe(s,l){s=s|0,l=l|0,n[s>>2]=VOe()|0,n[s+4>>2]=JOe()|0,n[s+12>>2]=l,n[s+8>>2]=zOe()|0,n[s+32>>2]=9}function VOe(){return 11744}function JOe(){return 1832}function zOe(){return lD()|0}function XOe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,(bp(f,896)|0)==512?c|0&&(ZOe(c),gt(c)):l|0&>(l)}function ZOe(s){s=s|0,s=n[s+4>>2]|0,s|0&&kp(s)}function $Oe(s){s=s|0,eMe(s,5052),tMe(s)|0,rMe(s,5058,26)|0,nMe(s,5069,1)|0,iMe(s,5077,10)|0,sMe(s,5087,19)|0,oMe(s,5094,27)|0}function eMe(s,l){s=s|0,l=l|0;var c=0;c=Z4e()|0,n[s>>2]=c,$4e(c,l),xp(n[s>>2]|0)}function tMe(s){s=s|0;var l=0;return l=n[s>>2]|0,kg(l,M4e()|0),s|0}function rMe(s,l,c){return s=s|0,l=l|0,c=c|0,C4e(s,pn(l)|0,c,0),s|0}function nMe(s,l,c){return s=s|0,l=l|0,c=c|0,s4e(s,pn(l)|0,c,0),s|0}function iMe(s,l,c){return s=s|0,l=l|0,c=c|0,OMe(s,pn(l)|0,c,0),s|0}function sMe(s,l,c){return s=s|0,l=l|0,c=c|0,IMe(s,pn(l)|0,c,0),s|0}function q9(s,l){s=s|0,l=l|0;var c=0,f=0;e:for(;;){for(c=n[2703]|0;;){if((c|0)==(l|0))break e;if(f=n[c>>2]|0,n[2703]=f,!c)c=f;else break}gt(c)}n[2701]=s}function oMe(s,l,c){return s=s|0,l=l|0,c=c|0,aMe(s,pn(l)|0,c,0),s|0}function aMe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;m=n[s>>2]|0,d=yR()|0,s=lMe(c)|0,hn(m,l,d,s,cMe(c,f)|0,f)}function yR(){var s=0,l=0;if(o[8040]|0||(G9(10860),tr(65,10860,U|0)|0,l=8040,n[l>>2]=1,n[l+4>>2]=0),!(Tr(10860)|0)){s=10860,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));G9(10860)}return 10860}function lMe(s){return s=s|0,s|0}function cMe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0;return k=C,C=C+16|0,d=k,m=k+4|0,n[d>>2]=s,Q=yR()|0,B=Q+24|0,l=gr(l,4)|0,n[m>>2]=l,c=Q+28|0,f=n[c>>2]|0,f>>>0<(n[Q+32>>2]|0)>>>0?(j9(f,s,l),l=(n[c>>2]|0)+8|0,n[c>>2]=l):(uMe(B,d,m),l=n[c>>2]|0),C=k,(l-(n[B>>2]|0)>>3)+-1|0}function j9(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,n[s+4>>2]=c}function uMe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0;if(k=C,C=C+32|0,d=k,m=s+4|0,B=((n[m>>2]|0)-(n[s>>2]|0)>>3)+1|0,f=AMe(s)|0,f>>>0>>0)zr(s);else{Q=n[s>>2]|0,O=(n[s+8>>2]|0)-Q|0,M=O>>2,fMe(d,O>>3>>>0>>1>>>0?M>>>0>>0?B:M:f,(n[m>>2]|0)-Q>>3,s+8|0),B=d+8|0,j9(n[B>>2]|0,n[l>>2]|0,n[c>>2]|0),n[B>>2]=(n[B>>2]|0)+8,pMe(s,d),hMe(d),C=k;return}}function AMe(s){return s=s|0,536870911}function fMe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>536870911)Rt();else{d=Kt(l<<3)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c<<3)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<3)}function pMe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function hMe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-8-l|0)>>>3)<<3)),s=n[s>>2]|0,s|0&>(s)}function G9(s){s=s|0,mMe(s)}function gMe(s){s=s|0,dMe(s+24|0)}function dMe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),gt(c))}function mMe(s){s=s|0;var l=0;l=Kr()|0,Vr(s,1,11,l,yMe()|0,2),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function yMe(){return 1840}function EMe(s,l,c){s=s|0,l=l|0,c=c|0,wMe(n[(CMe(s)|0)>>2]|0,l,c)}function CMe(s){return s=s|0,(n[(yR()|0)+24>>2]|0)+(s<<3)|0}function wMe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0;f=C,C=C+16|0,m=f+1|0,d=f,bg(m,l),l=xg(m,l)|0,bg(d,c),c=xg(d,c)|0,rf[s&31](l,c),C=f}function IMe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;m=n[s>>2]|0,d=ER()|0,s=BMe(c)|0,hn(m,l,d,s,vMe(c,f)|0,f)}function ER(){var s=0,l=0;if(o[8048]|0||(W9(10896),tr(66,10896,U|0)|0,l=8048,n[l>>2]=1,n[l+4>>2]=0),!(Tr(10896)|0)){s=10896,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));W9(10896)}return 10896}function BMe(s){return s=s|0,s|0}function vMe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0;return k=C,C=C+16|0,d=k,m=k+4|0,n[d>>2]=s,Q=ER()|0,B=Q+24|0,l=gr(l,4)|0,n[m>>2]=l,c=Q+28|0,f=n[c>>2]|0,f>>>0<(n[Q+32>>2]|0)>>>0?(Y9(f,s,l),l=(n[c>>2]|0)+8|0,n[c>>2]=l):(DMe(B,d,m),l=n[c>>2]|0),C=k,(l-(n[B>>2]|0)>>3)+-1|0}function Y9(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,n[s+4>>2]=c}function DMe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0;if(k=C,C=C+32|0,d=k,m=s+4|0,B=((n[m>>2]|0)-(n[s>>2]|0)>>3)+1|0,f=SMe(s)|0,f>>>0>>0)zr(s);else{Q=n[s>>2]|0,O=(n[s+8>>2]|0)-Q|0,M=O>>2,PMe(d,O>>3>>>0>>1>>>0?M>>>0>>0?B:M:f,(n[m>>2]|0)-Q>>3,s+8|0),B=d+8|0,Y9(n[B>>2]|0,n[l>>2]|0,n[c>>2]|0),n[B>>2]=(n[B>>2]|0)+8,bMe(s,d),xMe(d),C=k;return}}function SMe(s){return s=s|0,536870911}function PMe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>536870911)Rt();else{d=Kt(l<<3)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c<<3)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<3)}function bMe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function xMe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-8-l|0)>>>3)<<3)),s=n[s>>2]|0,s|0&>(s)}function W9(s){s=s|0,FMe(s)}function kMe(s){s=s|0,QMe(s+24|0)}function QMe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),gt(c))}function FMe(s){s=s|0;var l=0;l=Kr()|0,Vr(s,1,11,l,RMe()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function RMe(){return 1852}function TMe(s,l){return s=s|0,l=l|0,LMe(n[(NMe(s)|0)>>2]|0,l)|0}function NMe(s){return s=s|0,(n[(ER()|0)+24>>2]|0)+(s<<3)|0}function LMe(s,l){s=s|0,l=l|0;var c=0,f=0;return c=C,C=C+16|0,f=c,bg(f,l),l=xg(f,l)|0,l=oD(Lg[s&31](l)|0)|0,C=c,l|0}function OMe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;m=n[s>>2]|0,d=CR()|0,s=MMe(c)|0,hn(m,l,d,s,UMe(c,f)|0,f)}function CR(){var s=0,l=0;if(o[8056]|0||(V9(10932),tr(67,10932,U|0)|0,l=8056,n[l>>2]=1,n[l+4>>2]=0),!(Tr(10932)|0)){s=10932,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));V9(10932)}return 10932}function MMe(s){return s=s|0,s|0}function UMe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0;return k=C,C=C+16|0,d=k,m=k+4|0,n[d>>2]=s,Q=CR()|0,B=Q+24|0,l=gr(l,4)|0,n[m>>2]=l,c=Q+28|0,f=n[c>>2]|0,f>>>0<(n[Q+32>>2]|0)>>>0?(K9(f,s,l),l=(n[c>>2]|0)+8|0,n[c>>2]=l):(_Me(B,d,m),l=n[c>>2]|0),C=k,(l-(n[B>>2]|0)>>3)+-1|0}function K9(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,n[s+4>>2]=c}function _Me(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0;if(k=C,C=C+32|0,d=k,m=s+4|0,B=((n[m>>2]|0)-(n[s>>2]|0)>>3)+1|0,f=HMe(s)|0,f>>>0>>0)zr(s);else{Q=n[s>>2]|0,O=(n[s+8>>2]|0)-Q|0,M=O>>2,qMe(d,O>>3>>>0>>1>>>0?M>>>0>>0?B:M:f,(n[m>>2]|0)-Q>>3,s+8|0),B=d+8|0,K9(n[B>>2]|0,n[l>>2]|0,n[c>>2]|0),n[B>>2]=(n[B>>2]|0)+8,jMe(s,d),GMe(d),C=k;return}}function HMe(s){return s=s|0,536870911}function qMe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>536870911)Rt();else{d=Kt(l<<3)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c<<3)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<3)}function jMe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function GMe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-8-l|0)>>>3)<<3)),s=n[s>>2]|0,s|0&>(s)}function V9(s){s=s|0,KMe(s)}function YMe(s){s=s|0,WMe(s+24|0)}function WMe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),gt(c))}function KMe(s){s=s|0;var l=0;l=Kr()|0,Vr(s,1,7,l,VMe()|0,2),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function VMe(){return 1860}function JMe(s,l,c){return s=s|0,l=l|0,c=c|0,XMe(n[(zMe(s)|0)>>2]|0,l,c)|0}function zMe(s){return s=s|0,(n[(CR()|0)+24>>2]|0)+(s<<3)|0}function XMe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0;return f=C,C=C+32|0,B=f+12|0,m=f+8|0,k=f,Q=f+16|0,d=f+4|0,ZMe(Q,l),$Me(k,Q,l),Dp(d,c),c=Sp(d,c)|0,n[B>>2]=n[k>>2],Hw[s&15](m,B,c),c=e4e(m)|0,GA(m),Pp(d),C=f,c|0}function ZMe(s,l){s=s|0,l=l|0}function $Me(s,l,c){s=s|0,l=l|0,c=c|0,t4e(s,c)}function e4e(s){return s=s|0,da(s)|0}function t4e(s,l){s=s|0,l=l|0;var c=0,f=0,d=0;d=C,C=C+16|0,c=d,f=l,f&1?(r4e(c,0),ii(f|0,c|0)|0,n4e(s,c),i4e(c)):n[s>>2]=n[l>>2],C=d}function r4e(s,l){s=s|0,l=l|0,XG(s,l),n[s+4>>2]=0,o[s+8>>0]=0}function n4e(s,l){s=s|0,l=l|0,n[s>>2]=n[l+4>>2]}function i4e(s){s=s|0,o[s+8>>0]=0}function s4e(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;m=n[s>>2]|0,d=wR()|0,s=o4e(c)|0,hn(m,l,d,s,a4e(c,f)|0,f)}function wR(){var s=0,l=0;if(o[8064]|0||(z9(10968),tr(68,10968,U|0)|0,l=8064,n[l>>2]=1,n[l+4>>2]=0),!(Tr(10968)|0)){s=10968,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));z9(10968)}return 10968}function o4e(s){return s=s|0,s|0}function a4e(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0;return k=C,C=C+16|0,d=k,m=k+4|0,n[d>>2]=s,Q=wR()|0,B=Q+24|0,l=gr(l,4)|0,n[m>>2]=l,c=Q+28|0,f=n[c>>2]|0,f>>>0<(n[Q+32>>2]|0)>>>0?(J9(f,s,l),l=(n[c>>2]|0)+8|0,n[c>>2]=l):(l4e(B,d,m),l=n[c>>2]|0),C=k,(l-(n[B>>2]|0)>>3)+-1|0}function J9(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,n[s+4>>2]=c}function l4e(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0;if(k=C,C=C+32|0,d=k,m=s+4|0,B=((n[m>>2]|0)-(n[s>>2]|0)>>3)+1|0,f=c4e(s)|0,f>>>0>>0)zr(s);else{Q=n[s>>2]|0,O=(n[s+8>>2]|0)-Q|0,M=O>>2,u4e(d,O>>3>>>0>>1>>>0?M>>>0>>0?B:M:f,(n[m>>2]|0)-Q>>3,s+8|0),B=d+8|0,J9(n[B>>2]|0,n[l>>2]|0,n[c>>2]|0),n[B>>2]=(n[B>>2]|0)+8,A4e(s,d),f4e(d),C=k;return}}function c4e(s){return s=s|0,536870911}function u4e(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>536870911)Rt();else{d=Kt(l<<3)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c<<3)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<3)}function A4e(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function f4e(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-8-l|0)>>>3)<<3)),s=n[s>>2]|0,s|0&>(s)}function z9(s){s=s|0,g4e(s)}function p4e(s){s=s|0,h4e(s+24|0)}function h4e(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),gt(c))}function g4e(s){s=s|0;var l=0;l=Kr()|0,Vr(s,1,1,l,d4e()|0,5),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function d4e(){return 1872}function m4e(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0,E4e(n[(y4e(s)|0)>>2]|0,l,c,f,d,m)}function y4e(s){return s=s|0,(n[(wR()|0)+24>>2]|0)+(s<<3)|0}function E4e(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0;var B=0,k=0,Q=0,M=0,O=0,j=0;B=C,C=C+32|0,k=B+16|0,Q=B+12|0,M=B+8|0,O=B+4|0,j=B,Dp(k,l),l=Sp(k,l)|0,Dp(Q,c),c=Sp(Q,c)|0,Dp(M,f),f=Sp(M,f)|0,Dp(O,d),d=Sp(O,d)|0,Dp(j,m),m=Sp(j,m)|0,y7[s&1](l,c,f,d,m),Pp(j),Pp(O),Pp(M),Pp(Q),Pp(k),C=B}function C4e(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;m=n[s>>2]|0,d=IR()|0,s=w4e(c)|0,hn(m,l,d,s,I4e(c,f)|0,f)}function IR(){var s=0,l=0;if(o[8072]|0||(Z9(11004),tr(69,11004,U|0)|0,l=8072,n[l>>2]=1,n[l+4>>2]=0),!(Tr(11004)|0)){s=11004,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));Z9(11004)}return 11004}function w4e(s){return s=s|0,s|0}function I4e(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0;return k=C,C=C+16|0,d=k,m=k+4|0,n[d>>2]=s,Q=IR()|0,B=Q+24|0,l=gr(l,4)|0,n[m>>2]=l,c=Q+28|0,f=n[c>>2]|0,f>>>0<(n[Q+32>>2]|0)>>>0?(X9(f,s,l),l=(n[c>>2]|0)+8|0,n[c>>2]=l):(B4e(B,d,m),l=n[c>>2]|0),C=k,(l-(n[B>>2]|0)>>3)+-1|0}function X9(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,n[s+4>>2]=c}function B4e(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0;if(k=C,C=C+32|0,d=k,m=s+4|0,B=((n[m>>2]|0)-(n[s>>2]|0)>>3)+1|0,f=v4e(s)|0,f>>>0>>0)zr(s);else{Q=n[s>>2]|0,O=(n[s+8>>2]|0)-Q|0,M=O>>2,D4e(d,O>>3>>>0>>1>>>0?M>>>0>>0?B:M:f,(n[m>>2]|0)-Q>>3,s+8|0),B=d+8|0,X9(n[B>>2]|0,n[l>>2]|0,n[c>>2]|0),n[B>>2]=(n[B>>2]|0)+8,S4e(s,d),P4e(d),C=k;return}}function v4e(s){return s=s|0,536870911}function D4e(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>536870911)Rt();else{d=Kt(l<<3)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c<<3)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<3)}function S4e(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function P4e(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-8-l|0)>>>3)<<3)),s=n[s>>2]|0,s|0&>(s)}function Z9(s){s=s|0,k4e(s)}function b4e(s){s=s|0,x4e(s+24|0)}function x4e(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),gt(c))}function k4e(s){s=s|0;var l=0;l=Kr()|0,Vr(s,1,12,l,Q4e()|0,2),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function Q4e(){return 1896}function F4e(s,l,c){s=s|0,l=l|0,c=c|0,T4e(n[(R4e(s)|0)>>2]|0,l,c)}function R4e(s){return s=s|0,(n[(IR()|0)+24>>2]|0)+(s<<3)|0}function T4e(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0;f=C,C=C+16|0,m=f+4|0,d=f,N4e(m,l),l=L4e(m,l)|0,Dp(d,c),c=Sp(d,c)|0,rf[s&31](l,c),Pp(d),C=f}function N4e(s,l){s=s|0,l=l|0}function L4e(s,l){return s=s|0,l=l|0,O4e(l)|0}function O4e(s){return s=s|0,s|0}function M4e(){var s=0;return o[8080]|0||($9(11040),tr(70,11040,U|0)|0,s=8080,n[s>>2]=1,n[s+4>>2]=0),Tr(11040)|0||$9(11040),11040}function $9(s){s=s|0,H4e(s),Qg(s,71)}function U4e(s){s=s|0,_4e(s+24|0)}function _4e(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),gt(c))}function H4e(s){s=s|0;var l=0;l=Kr()|0,Vr(s,5,7,l,Y4e()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function q4e(s){s=s|0,j4e(s)}function j4e(s){s=s|0,G4e(s)}function G4e(s){s=s|0,o[s+8>>0]=1}function Y4e(){return 1936}function W4e(){return K4e()|0}function K4e(){var s=0,l=0,c=0,f=0,d=0,m=0,B=0;return l=C,C=C+16|0,d=l+4|0,B=l,c=Wa(8)|0,s=c,m=s+4|0,n[m>>2]=Kt(1)|0,f=Kt(8)|0,m=n[m>>2]|0,n[B>>2]=0,n[d>>2]=n[B>>2],V4e(f,m,d),n[c>>2]=f,C=l,s|0}function V4e(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,c=Kt(16)|0,n[c+4>>2]=0,n[c+8>>2]=0,n[c>>2]=1916,n[c+12>>2]=l,n[s+4>>2]=c}function J4e(s){s=s|0,zm(s),gt(s)}function z4e(s){s=s|0,s=n[s+12>>2]|0,s|0&>(s)}function X4e(s){s=s|0,gt(s)}function Z4e(){var s=0;return o[8088]|0||(sUe(11076),tr(25,11076,U|0)|0,s=8088,n[s>>2]=1,n[s+4>>2]=0),11076}function $4e(s,l){s=s|0,l=l|0,n[s>>2]=eUe()|0,n[s+4>>2]=tUe()|0,n[s+12>>2]=l,n[s+8>>2]=rUe()|0,n[s+32>>2]=10}function eUe(){return 11745}function tUe(){return 1940}function rUe(){return aD()|0}function nUe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,(bp(f,896)|0)==512?c|0&&(iUe(c),gt(c)):l|0&>(l)}function iUe(s){s=s|0,s=n[s+4>>2]|0,s|0&&kp(s)}function sUe(s){s=s|0,vp(s)}function bc(s,l){s=s|0,l=l|0,n[s>>2]=l}function BR(s){return s=s|0,n[s>>2]|0}function oUe(s){return s=s|0,o[n[s>>2]>>0]|0}function aUe(s,l){s=s|0,l=l|0;var c=0,f=0;c=C,C=C+16|0,f=c,n[f>>2]=n[s>>2],lUe(l,f)|0,C=c}function lUe(s,l){s=s|0,l=l|0;var c=0;return c=cUe(n[s>>2]|0,l)|0,l=s+4|0,n[(n[l>>2]|0)+8>>2]=c,n[(n[l>>2]|0)+8>>2]|0}function cUe(s,l){s=s|0,l=l|0;var c=0,f=0;return c=C,C=C+16|0,f=c,Ka(f),s=da(s)|0,l=uUe(s,n[l>>2]|0)|0,Va(f),C=c,l|0}function Ka(s){s=s|0,n[s>>2]=n[2701],n[s+4>>2]=n[2703]}function uUe(s,l){s=s|0,l=l|0;var c=0;return c=Sl(AUe()|0)|0,Qn(0,c|0,s|0,dR(l)|0)|0}function Va(s){s=s|0,q9(n[s>>2]|0,n[s+4>>2]|0)}function AUe(){var s=0;return o[8096]|0||(fUe(11120),s=8096,n[s>>2]=1,n[s+4>>2]=0),11120}function fUe(s){s=s|0,Pl(s,pUe()|0,1)}function pUe(){return 1948}function hUe(){gUe()}function gUe(){var s=0,l=0,c=0,f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0,j=0,se=0,Ge=0,Me=0,Qe=0;if(Me=C,C=C+16|0,O=Me+4|0,j=Me,Ni(65536,10804,n[2702]|0,10812),c=B9()|0,l=n[c>>2]|0,s=n[l>>2]|0,s|0)for(f=n[c+8>>2]|0,c=n[c+4>>2]|0;uc(s|0,u[c>>0]|0|0,o[f>>0]|0),l=l+4|0,s=n[l>>2]|0,s;)f=f+1|0,c=c+1|0;if(s=v9()|0,l=n[s>>2]|0,l|0)do uu(l|0,n[s+4>>2]|0),s=s+8|0,l=n[s>>2]|0;while((l|0)!=0);uu(dUe()|0,5167),M=Ym()|0,s=n[M>>2]|0;e:do if(s|0){do mUe(n[s+4>>2]|0),s=n[s>>2]|0;while((s|0)!=0);if(s=n[M>>2]|0,s|0){Q=M;do{for(;d=s,s=n[s>>2]|0,d=n[d+4>>2]|0,!!(yUe(d)|0);)if(n[j>>2]=Q,n[O>>2]=n[j>>2],EUe(M,O)|0,!s)break e;if(CUe(d),Q=n[Q>>2]|0,l=e7(d)|0,m=Hi()|0,B=C,C=C+((1*(l<<2)|0)+15&-16)|0,k=C,C=C+((1*(l<<2)|0)+15&-16)|0,l=n[(L9(d)|0)>>2]|0,l|0)for(c=B,f=k;n[c>>2]=n[(Wm(n[l+4>>2]|0)|0)>>2],n[f>>2]=n[l+8>>2],l=n[l>>2]|0,l;)c=c+4|0,f=f+4|0;Qe=Wm(d)|0,l=wUe(d)|0,c=e7(d)|0,f=IUe(d)|0,Au(Qe|0,l|0,B|0,k|0,c|0,f|0,uR(d)|0),_i(m|0)}while((s|0)!=0)}}while(0);if(s=n[(AR()|0)>>2]|0,s|0)do Qe=s+4|0,M=fR(Qe)|0,d=Ow(M)|0,m=Nw(M)|0,B=(Lw(M)|0)+1|0,k=fD(M)|0,Q=t7(Qe)|0,M=Tr(M)|0,O=cD(Qe)|0,j=vR(Qe)|0,El(0,d|0,m|0,B|0,k|0,Q|0,M|0,O|0,j|0,DR(Qe)|0),s=n[s>>2]|0;while((s|0)!=0);s=n[(Ym()|0)>>2]|0;e:do if(s|0){t:for(;;){if(l=n[s+4>>2]|0,l|0&&(se=n[(Wm(l)|0)>>2]|0,Ge=n[(O9(l)|0)>>2]|0,Ge|0)){c=Ge;do{l=c+4|0,f=fR(l)|0;r:do if(f|0)switch(Tr(f)|0){case 0:break t;case 4:case 3:case 2:{k=Ow(f)|0,Q=Nw(f)|0,M=(Lw(f)|0)+1|0,O=fD(f)|0,j=Tr(f)|0,Qe=cD(l)|0,El(se|0,k|0,Q|0,M|0,O|0,0,j|0,Qe|0,vR(l)|0,DR(l)|0);break r}case 1:{B=Ow(f)|0,k=Nw(f)|0,Q=(Lw(f)|0)+1|0,M=fD(f)|0,O=t7(l)|0,j=Tr(f)|0,Qe=cD(l)|0,El(se|0,B|0,k|0,Q|0,M|0,O|0,j|0,Qe|0,vR(l)|0,DR(l)|0);break r}case 5:{M=Ow(f)|0,O=Nw(f)|0,j=(Lw(f)|0)+1|0,Qe=fD(f)|0,El(se|0,M|0,O|0,j|0,Qe|0,BUe(f)|0,Tr(f)|0,0,0,0);break r}default:break r}while(0);c=n[c>>2]|0}while((c|0)!=0)}if(s=n[s>>2]|0,!s)break e}Rt()}while(0);Ce(),C=Me}function dUe(){return 11703}function mUe(s){s=s|0,o[s+40>>0]=0}function yUe(s){return s=s|0,(o[s+40>>0]|0)!=0|0}function EUe(s,l){return s=s|0,l=l|0,l=vUe(l)|0,s=n[l>>2]|0,n[l>>2]=n[s>>2],gt(s),n[l>>2]|0}function CUe(s){s=s|0,o[s+40>>0]=1}function e7(s){return s=s|0,n[s+20>>2]|0}function wUe(s){return s=s|0,n[s+8>>2]|0}function IUe(s){return s=s|0,n[s+32>>2]|0}function fD(s){return s=s|0,n[s+4>>2]|0}function t7(s){return s=s|0,n[s+4>>2]|0}function vR(s){return s=s|0,n[s+8>>2]|0}function DR(s){return s=s|0,n[s+16>>2]|0}function BUe(s){return s=s|0,n[s+20>>2]|0}function vUe(s){return s=s|0,n[s>>2]|0}function pD(s){s=s|0;var l=0,c=0,f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0,j=0,se=0,Ge=0,Me=0,Qe=0,et=0,Xe=0,lt=0,Ue=0,je=0,Lt=0;Lt=C,C=C+16|0,se=Lt;do if(s>>>0<245){if(M=s>>>0<11?16:s+11&-8,s=M>>>3,j=n[2783]|0,c=j>>>s,c&3|0)return l=(c&1^1)+s|0,s=11172+(l<<1<<2)|0,c=s+8|0,f=n[c>>2]|0,d=f+8|0,m=n[d>>2]|0,(s|0)==(m|0)?n[2783]=j&~(1<>2]=s,n[c>>2]=m),je=l<<3,n[f+4>>2]=je|3,je=f+je+4|0,n[je>>2]=n[je>>2]|1,je=d,C=Lt,je|0;if(O=n[2785]|0,M>>>0>O>>>0){if(c|0)return l=2<>>12&16,l=l>>>B,c=l>>>5&8,l=l>>>c,d=l>>>2&4,l=l>>>d,s=l>>>1&2,l=l>>>s,f=l>>>1&1,f=(c|B|d|s|f)+(l>>>f)|0,l=11172+(f<<1<<2)|0,s=l+8|0,d=n[s>>2]|0,B=d+8|0,c=n[B>>2]|0,(l|0)==(c|0)?(s=j&~(1<>2]=l,n[s>>2]=c,s=j),m=(f<<3)-M|0,n[d+4>>2]=M|3,f=d+M|0,n[f+4>>2]=m|1,n[f+m>>2]=m,O|0&&(d=n[2788]|0,l=O>>>3,c=11172+(l<<1<<2)|0,l=1<>2]|0):(n[2783]=s|l,l=c,s=c+8|0),n[s>>2]=d,n[l+12>>2]=d,n[d+8>>2]=l,n[d+12>>2]=c),n[2785]=m,n[2788]=f,je=B,C=Lt,je|0;if(k=n[2784]|0,k){if(c=(k&0-k)+-1|0,B=c>>>12&16,c=c>>>B,m=c>>>5&8,c=c>>>m,Q=c>>>2&4,c=c>>>Q,f=c>>>1&2,c=c>>>f,s=c>>>1&1,s=n[11436+((m|B|Q|f|s)+(c>>>s)<<2)>>2]|0,c=(n[s+4>>2]&-8)-M|0,f=n[s+16+(((n[s+16>>2]|0)==0&1)<<2)>>2]|0,!f)Q=s,m=c;else{do B=(n[f+4>>2]&-8)-M|0,Q=B>>>0>>0,c=Q?B:c,s=Q?f:s,f=n[f+16+(((n[f+16>>2]|0)==0&1)<<2)>>2]|0;while((f|0)!=0);Q=s,m=c}if(B=Q+M|0,Q>>>0>>0){d=n[Q+24>>2]|0,l=n[Q+12>>2]|0;do if((l|0)==(Q|0)){if(s=Q+20|0,l=n[s>>2]|0,!l&&(s=Q+16|0,l=n[s>>2]|0,!l)){c=0;break}for(;;){if(c=l+20|0,f=n[c>>2]|0,f|0){l=f,s=c;continue}if(c=l+16|0,f=n[c>>2]|0,f)l=f,s=c;else break}n[s>>2]=0,c=l}else c=n[Q+8>>2]|0,n[c+12>>2]=l,n[l+8>>2]=c,c=l;while(0);do if(d|0){if(l=n[Q+28>>2]|0,s=11436+(l<<2)|0,(Q|0)==(n[s>>2]|0)){if(n[s>>2]=c,!c){n[2784]=k&~(1<>2]|0)!=(Q|0)&1)<<2)>>2]=c,!c)break;n[c+24>>2]=d,l=n[Q+16>>2]|0,l|0&&(n[c+16>>2]=l,n[l+24>>2]=c),l=n[Q+20>>2]|0,l|0&&(n[c+20>>2]=l,n[l+24>>2]=c)}while(0);return m>>>0<16?(je=m+M|0,n[Q+4>>2]=je|3,je=Q+je+4|0,n[je>>2]=n[je>>2]|1):(n[Q+4>>2]=M|3,n[B+4>>2]=m|1,n[B+m>>2]=m,O|0&&(f=n[2788]|0,l=O>>>3,c=11172+(l<<1<<2)|0,l=1<>2]|0):(n[2783]=j|l,l=c,s=c+8|0),n[s>>2]=f,n[l+12>>2]=f,n[f+8>>2]=l,n[f+12>>2]=c),n[2785]=m,n[2788]=B),je=Q+8|0,C=Lt,je|0}else j=M}else j=M}else j=M}else if(s>>>0<=4294967231)if(s=s+11|0,M=s&-8,Q=n[2784]|0,Q){f=0-M|0,s=s>>>8,s?M>>>0>16777215?k=31:(j=(s+1048320|0)>>>16&8,Ue=s<>>16&4,Ue=Ue<>>16&2,k=14-(O|j|k)+(Ue<>>15)|0,k=M>>>(k+7|0)&1|k<<1):k=0,c=n[11436+(k<<2)>>2]|0;e:do if(!c)c=0,s=0,Ue=57;else for(s=0,B=M<<((k|0)==31?0:25-(k>>>1)|0),m=0;;){if(d=(n[c+4>>2]&-8)-M|0,d>>>0>>0)if(d)s=c,f=d;else{s=c,f=0,d=c,Ue=61;break e}if(d=n[c+20>>2]|0,c=n[c+16+(B>>>31<<2)>>2]|0,m=(d|0)==0|(d|0)==(c|0)?m:d,d=(c|0)==0,d){c=m,Ue=57;break}else B=B<<((d^1)&1)}while(0);if((Ue|0)==57){if((c|0)==0&(s|0)==0){if(s=2<>>12&16,j=j>>>B,m=j>>>5&8,j=j>>>m,k=j>>>2&4,j=j>>>k,O=j>>>1&2,j=j>>>O,c=j>>>1&1,s=0,c=n[11436+((m|B|k|O|c)+(j>>>c)<<2)>>2]|0}c?(d=c,Ue=61):(k=s,B=f)}if((Ue|0)==61)for(;;)if(Ue=0,c=(n[d+4>>2]&-8)-M|0,j=c>>>0>>0,c=j?c:f,s=j?d:s,d=n[d+16+(((n[d+16>>2]|0)==0&1)<<2)>>2]|0,d)f=c,Ue=61;else{k=s,B=c;break}if((k|0)!=0&&B>>>0<((n[2785]|0)-M|0)>>>0){if(m=k+M|0,k>>>0>=m>>>0)return je=0,C=Lt,je|0;d=n[k+24>>2]|0,l=n[k+12>>2]|0;do if((l|0)==(k|0)){if(s=k+20|0,l=n[s>>2]|0,!l&&(s=k+16|0,l=n[s>>2]|0,!l)){l=0;break}for(;;){if(c=l+20|0,f=n[c>>2]|0,f|0){l=f,s=c;continue}if(c=l+16|0,f=n[c>>2]|0,f)l=f,s=c;else break}n[s>>2]=0}else je=n[k+8>>2]|0,n[je+12>>2]=l,n[l+8>>2]=je;while(0);do if(d){if(s=n[k+28>>2]|0,c=11436+(s<<2)|0,(k|0)==(n[c>>2]|0)){if(n[c>>2]=l,!l){f=Q&~(1<>2]|0)!=(k|0)&1)<<2)>>2]=l,!l){f=Q;break}n[l+24>>2]=d,s=n[k+16>>2]|0,s|0&&(n[l+16>>2]=s,n[s+24>>2]=l),s=n[k+20>>2]|0,s&&(n[l+20>>2]=s,n[s+24>>2]=l),f=Q}else f=Q;while(0);do if(B>>>0>=16){if(n[k+4>>2]=M|3,n[m+4>>2]=B|1,n[m+B>>2]=B,l=B>>>3,B>>>0<256){c=11172+(l<<1<<2)|0,s=n[2783]|0,l=1<>2]|0):(n[2783]=s|l,l=c,s=c+8|0),n[s>>2]=m,n[l+12>>2]=m,n[m+8>>2]=l,n[m+12>>2]=c;break}if(l=B>>>8,l?B>>>0>16777215?l=31:(Ue=(l+1048320|0)>>>16&8,je=l<>>16&4,je=je<>>16&2,l=14-(lt|Ue|l)+(je<>>15)|0,l=B>>>(l+7|0)&1|l<<1):l=0,c=11436+(l<<2)|0,n[m+28>>2]=l,s=m+16|0,n[s+4>>2]=0,n[s>>2]=0,s=1<>2]=m,n[m+24>>2]=c,n[m+12>>2]=m,n[m+8>>2]=m;break}for(s=B<<((l|0)==31?0:25-(l>>>1)|0),c=n[c>>2]|0;;){if((n[c+4>>2]&-8|0)==(B|0)){Ue=97;break}if(f=c+16+(s>>>31<<2)|0,l=n[f>>2]|0,l)s=s<<1,c=l;else{Ue=96;break}}if((Ue|0)==96){n[f>>2]=m,n[m+24>>2]=c,n[m+12>>2]=m,n[m+8>>2]=m;break}else if((Ue|0)==97){Ue=c+8|0,je=n[Ue>>2]|0,n[je+12>>2]=m,n[Ue>>2]=m,n[m+8>>2]=je,n[m+12>>2]=c,n[m+24>>2]=0;break}}else je=B+M|0,n[k+4>>2]=je|3,je=k+je+4|0,n[je>>2]=n[je>>2]|1;while(0);return je=k+8|0,C=Lt,je|0}else j=M}else j=M;else j=-1;while(0);if(c=n[2785]|0,c>>>0>=j>>>0)return l=c-j|0,s=n[2788]|0,l>>>0>15?(je=s+j|0,n[2788]=je,n[2785]=l,n[je+4>>2]=l|1,n[je+l>>2]=l,n[s+4>>2]=j|3):(n[2785]=0,n[2788]=0,n[s+4>>2]=c|3,je=s+c+4|0,n[je>>2]=n[je>>2]|1),je=s+8|0,C=Lt,je|0;if(B=n[2786]|0,B>>>0>j>>>0)return lt=B-j|0,n[2786]=lt,je=n[2789]|0,Ue=je+j|0,n[2789]=Ue,n[Ue+4>>2]=lt|1,n[je+4>>2]=j|3,je=je+8|0,C=Lt,je|0;if(n[2901]|0?s=n[2903]|0:(n[2903]=4096,n[2902]=4096,n[2904]=-1,n[2905]=-1,n[2906]=0,n[2894]=0,s=se&-16^1431655768,n[se>>2]=s,n[2901]=s,s=4096),k=j+48|0,Q=j+47|0,m=s+Q|0,d=0-s|0,M=m&d,M>>>0<=j>>>0||(s=n[2893]|0,s|0&&(O=n[2891]|0,se=O+M|0,se>>>0<=O>>>0|se>>>0>s>>>0)))return je=0,C=Lt,je|0;e:do if(n[2894]&4)l=0,Ue=133;else{c=n[2789]|0;t:do if(c){for(f=11580;s=n[f>>2]|0,!(s>>>0<=c>>>0&&(Qe=f+4|0,(s+(n[Qe>>2]|0)|0)>>>0>c>>>0));)if(s=n[f+8>>2]|0,s)f=s;else{Ue=118;break t}if(l=m-B&d,l>>>0<2147483647)if(s=Qp(l|0)|0,(s|0)==((n[f>>2]|0)+(n[Qe>>2]|0)|0)){if((s|0)!=-1){B=l,m=s,Ue=135;break e}}else f=s,Ue=126;else l=0}else Ue=118;while(0);do if((Ue|0)==118)if(c=Qp(0)|0,(c|0)!=-1&&(l=c,Ge=n[2902]|0,Me=Ge+-1|0,l=((Me&l|0)==0?0:(Me+l&0-Ge)-l|0)+M|0,Ge=n[2891]|0,Me=l+Ge|0,l>>>0>j>>>0&l>>>0<2147483647)){if(Qe=n[2893]|0,Qe|0&&Me>>>0<=Ge>>>0|Me>>>0>Qe>>>0){l=0;break}if(s=Qp(l|0)|0,(s|0)==(c|0)){B=l,m=c,Ue=135;break e}else f=s,Ue=126}else l=0;while(0);do if((Ue|0)==126){if(c=0-l|0,!(k>>>0>l>>>0&(l>>>0<2147483647&(f|0)!=-1)))if((f|0)==-1){l=0;break}else{B=l,m=f,Ue=135;break e}if(s=n[2903]|0,s=Q-l+s&0-s,s>>>0>=2147483647){B=l,m=f,Ue=135;break e}if((Qp(s|0)|0)==-1){Qp(c|0)|0,l=0;break}else{B=s+l|0,m=f,Ue=135;break e}}while(0);n[2894]=n[2894]|4,Ue=133}while(0);if((Ue|0)==133&&M>>>0<2147483647&&(lt=Qp(M|0)|0,Qe=Qp(0)|0,et=Qe-lt|0,Xe=et>>>0>(j+40|0)>>>0,!((lt|0)==-1|Xe^1|lt>>>0>>0&((lt|0)!=-1&(Qe|0)!=-1)^1))&&(B=Xe?et:l,m=lt,Ue=135),(Ue|0)==135){l=(n[2891]|0)+B|0,n[2891]=l,l>>>0>(n[2892]|0)>>>0&&(n[2892]=l),Q=n[2789]|0;do if(Q){for(l=11580;;){if(s=n[l>>2]|0,c=l+4|0,f=n[c>>2]|0,(m|0)==(s+f|0)){Ue=145;break}if(d=n[l+8>>2]|0,d)l=d;else break}if((Ue|0)==145&&(n[l+12>>2]&8|0)==0&&Q>>>0>>0&Q>>>0>=s>>>0){n[c>>2]=f+B,je=Q+8|0,je=(je&7|0)==0?0:0-je&7,Ue=Q+je|0,je=(n[2786]|0)+(B-je)|0,n[2789]=Ue,n[2786]=je,n[Ue+4>>2]=je|1,n[Ue+je+4>>2]=40,n[2790]=n[2905];break}for(m>>>0<(n[2787]|0)>>>0&&(n[2787]=m),c=m+B|0,l=11580;;){if((n[l>>2]|0)==(c|0)){Ue=153;break}if(s=n[l+8>>2]|0,s)l=s;else break}if((Ue|0)==153&&(n[l+12>>2]&8|0)==0){n[l>>2]=m,O=l+4|0,n[O>>2]=(n[O>>2]|0)+B,O=m+8|0,O=m+((O&7|0)==0?0:0-O&7)|0,l=c+8|0,l=c+((l&7|0)==0?0:0-l&7)|0,M=O+j|0,k=l-O-j|0,n[O+4>>2]=j|3;do if((l|0)!=(Q|0)){if((l|0)==(n[2788]|0)){je=(n[2785]|0)+k|0,n[2785]=je,n[2788]=M,n[M+4>>2]=je|1,n[M+je>>2]=je;break}if(s=n[l+4>>2]|0,(s&3|0)==1){B=s&-8,f=s>>>3;e:do if(s>>>0<256)if(s=n[l+8>>2]|0,c=n[l+12>>2]|0,(c|0)==(s|0)){n[2783]=n[2783]&~(1<>2]=c,n[c+8>>2]=s;break}else{m=n[l+24>>2]|0,s=n[l+12>>2]|0;do if((s|0)==(l|0)){if(f=l+16|0,c=f+4|0,s=n[c>>2]|0,!s)if(s=n[f>>2]|0,s)c=f;else{s=0;break}for(;;){if(f=s+20|0,d=n[f>>2]|0,d|0){s=d,c=f;continue}if(f=s+16|0,d=n[f>>2]|0,d)s=d,c=f;else break}n[c>>2]=0}else je=n[l+8>>2]|0,n[je+12>>2]=s,n[s+8>>2]=je;while(0);if(!m)break;c=n[l+28>>2]|0,f=11436+(c<<2)|0;do if((l|0)!=(n[f>>2]|0)){if(n[m+16+(((n[m+16>>2]|0)!=(l|0)&1)<<2)>>2]=s,!s)break e}else{if(n[f>>2]=s,s|0)break;n[2784]=n[2784]&~(1<>2]=m,c=l+16|0,f=n[c>>2]|0,f|0&&(n[s+16>>2]=f,n[f+24>>2]=s),c=n[c+4>>2]|0,!c)break;n[s+20>>2]=c,n[c+24>>2]=s}while(0);l=l+B|0,d=B+k|0}else d=k;if(l=l+4|0,n[l>>2]=n[l>>2]&-2,n[M+4>>2]=d|1,n[M+d>>2]=d,l=d>>>3,d>>>0<256){c=11172+(l<<1<<2)|0,s=n[2783]|0,l=1<>2]|0):(n[2783]=s|l,l=c,s=c+8|0),n[s>>2]=M,n[l+12>>2]=M,n[M+8>>2]=l,n[M+12>>2]=c;break}l=d>>>8;do if(!l)l=0;else{if(d>>>0>16777215){l=31;break}Ue=(l+1048320|0)>>>16&8,je=l<>>16&4,je=je<>>16&2,l=14-(lt|Ue|l)+(je<>>15)|0,l=d>>>(l+7|0)&1|l<<1}while(0);if(f=11436+(l<<2)|0,n[M+28>>2]=l,s=M+16|0,n[s+4>>2]=0,n[s>>2]=0,s=n[2784]|0,c=1<>2]=M,n[M+24>>2]=f,n[M+12>>2]=M,n[M+8>>2]=M;break}for(s=d<<((l|0)==31?0:25-(l>>>1)|0),c=n[f>>2]|0;;){if((n[c+4>>2]&-8|0)==(d|0)){Ue=194;break}if(f=c+16+(s>>>31<<2)|0,l=n[f>>2]|0,l)s=s<<1,c=l;else{Ue=193;break}}if((Ue|0)==193){n[f>>2]=M,n[M+24>>2]=c,n[M+12>>2]=M,n[M+8>>2]=M;break}else if((Ue|0)==194){Ue=c+8|0,je=n[Ue>>2]|0,n[je+12>>2]=M,n[Ue>>2]=M,n[M+8>>2]=je,n[M+12>>2]=c,n[M+24>>2]=0;break}}else je=(n[2786]|0)+k|0,n[2786]=je,n[2789]=M,n[M+4>>2]=je|1;while(0);return je=O+8|0,C=Lt,je|0}for(l=11580;s=n[l>>2]|0,!(s>>>0<=Q>>>0&&(je=s+(n[l+4>>2]|0)|0,je>>>0>Q>>>0));)l=n[l+8>>2]|0;d=je+-47|0,s=d+8|0,s=d+((s&7|0)==0?0:0-s&7)|0,d=Q+16|0,s=s>>>0>>0?Q:s,l=s+8|0,c=m+8|0,c=(c&7|0)==0?0:0-c&7,Ue=m+c|0,c=B+-40-c|0,n[2789]=Ue,n[2786]=c,n[Ue+4>>2]=c|1,n[Ue+c+4>>2]=40,n[2790]=n[2905],c=s+4|0,n[c>>2]=27,n[l>>2]=n[2895],n[l+4>>2]=n[2896],n[l+8>>2]=n[2897],n[l+12>>2]=n[2898],n[2895]=m,n[2896]=B,n[2898]=0,n[2897]=l,l=s+24|0;do Ue=l,l=l+4|0,n[l>>2]=7;while((Ue+8|0)>>>0>>0);if((s|0)!=(Q|0)){if(m=s-Q|0,n[c>>2]=n[c>>2]&-2,n[Q+4>>2]=m|1,n[s>>2]=m,l=m>>>3,m>>>0<256){c=11172+(l<<1<<2)|0,s=n[2783]|0,l=1<>2]|0):(n[2783]=s|l,l=c,s=c+8|0),n[s>>2]=Q,n[l+12>>2]=Q,n[Q+8>>2]=l,n[Q+12>>2]=c;break}if(l=m>>>8,l?m>>>0>16777215?c=31:(Ue=(l+1048320|0)>>>16&8,je=l<>>16&4,je=je<>>16&2,c=14-(lt|Ue|c)+(je<>>15)|0,c=m>>>(c+7|0)&1|c<<1):c=0,f=11436+(c<<2)|0,n[Q+28>>2]=c,n[Q+20>>2]=0,n[d>>2]=0,l=n[2784]|0,s=1<>2]=Q,n[Q+24>>2]=f,n[Q+12>>2]=Q,n[Q+8>>2]=Q;break}for(s=m<<((c|0)==31?0:25-(c>>>1)|0),c=n[f>>2]|0;;){if((n[c+4>>2]&-8|0)==(m|0)){Ue=216;break}if(f=c+16+(s>>>31<<2)|0,l=n[f>>2]|0,l)s=s<<1,c=l;else{Ue=215;break}}if((Ue|0)==215){n[f>>2]=Q,n[Q+24>>2]=c,n[Q+12>>2]=Q,n[Q+8>>2]=Q;break}else if((Ue|0)==216){Ue=c+8|0,je=n[Ue>>2]|0,n[je+12>>2]=Q,n[Ue>>2]=Q,n[Q+8>>2]=je,n[Q+12>>2]=c,n[Q+24>>2]=0;break}}}else{je=n[2787]|0,(je|0)==0|m>>>0>>0&&(n[2787]=m),n[2895]=m,n[2896]=B,n[2898]=0,n[2792]=n[2901],n[2791]=-1,l=0;do je=11172+(l<<1<<2)|0,n[je+12>>2]=je,n[je+8>>2]=je,l=l+1|0;while((l|0)!=32);je=m+8|0,je=(je&7|0)==0?0:0-je&7,Ue=m+je|0,je=B+-40-je|0,n[2789]=Ue,n[2786]=je,n[Ue+4>>2]=je|1,n[Ue+je+4>>2]=40,n[2790]=n[2905]}while(0);if(l=n[2786]|0,l>>>0>j>>>0)return lt=l-j|0,n[2786]=lt,je=n[2789]|0,Ue=je+j|0,n[2789]=Ue,n[Ue+4>>2]=lt|1,n[je+4>>2]=j|3,je=je+8|0,C=Lt,je|0}return n[(Vm()|0)>>2]=12,je=0,C=Lt,je|0}function hD(s){s=s|0;var l=0,c=0,f=0,d=0,m=0,B=0,k=0,Q=0;if(!!s){c=s+-8|0,d=n[2787]|0,s=n[s+-4>>2]|0,l=s&-8,Q=c+l|0;do if(s&1)k=c,B=c;else{if(f=n[c>>2]|0,!(s&3)||(B=c+(0-f)|0,m=f+l|0,B>>>0>>0))return;if((B|0)==(n[2788]|0)){if(s=Q+4|0,l=n[s>>2]|0,(l&3|0)!=3){k=B,l=m;break}n[2785]=m,n[s>>2]=l&-2,n[B+4>>2]=m|1,n[B+m>>2]=m;return}if(c=f>>>3,f>>>0<256)if(s=n[B+8>>2]|0,l=n[B+12>>2]|0,(l|0)==(s|0)){n[2783]=n[2783]&~(1<>2]=l,n[l+8>>2]=s,k=B,l=m;break}d=n[B+24>>2]|0,s=n[B+12>>2]|0;do if((s|0)==(B|0)){if(c=B+16|0,l=c+4|0,s=n[l>>2]|0,!s)if(s=n[c>>2]|0,s)l=c;else{s=0;break}for(;;){if(c=s+20|0,f=n[c>>2]|0,f|0){s=f,l=c;continue}if(c=s+16|0,f=n[c>>2]|0,f)s=f,l=c;else break}n[l>>2]=0}else k=n[B+8>>2]|0,n[k+12>>2]=s,n[s+8>>2]=k;while(0);if(d){if(l=n[B+28>>2]|0,c=11436+(l<<2)|0,(B|0)==(n[c>>2]|0)){if(n[c>>2]=s,!s){n[2784]=n[2784]&~(1<>2]|0)!=(B|0)&1)<<2)>>2]=s,!s){k=B,l=m;break}n[s+24>>2]=d,l=B+16|0,c=n[l>>2]|0,c|0&&(n[s+16>>2]=c,n[c+24>>2]=s),l=n[l+4>>2]|0,l?(n[s+20>>2]=l,n[l+24>>2]=s,k=B,l=m):(k=B,l=m)}else k=B,l=m}while(0);if(!(B>>>0>=Q>>>0)&&(s=Q+4|0,f=n[s>>2]|0,!!(f&1))){if(f&2)n[s>>2]=f&-2,n[k+4>>2]=l|1,n[B+l>>2]=l,d=l;else{if(s=n[2788]|0,(Q|0)==(n[2789]|0)){if(Q=(n[2786]|0)+l|0,n[2786]=Q,n[2789]=k,n[k+4>>2]=Q|1,(k|0)!=(s|0))return;n[2788]=0,n[2785]=0;return}if((Q|0)==(s|0)){Q=(n[2785]|0)+l|0,n[2785]=Q,n[2788]=B,n[k+4>>2]=Q|1,n[B+Q>>2]=Q;return}d=(f&-8)+l|0,c=f>>>3;do if(f>>>0<256)if(l=n[Q+8>>2]|0,s=n[Q+12>>2]|0,(s|0)==(l|0)){n[2783]=n[2783]&~(1<>2]=s,n[s+8>>2]=l;break}else{m=n[Q+24>>2]|0,s=n[Q+12>>2]|0;do if((s|0)==(Q|0)){if(c=Q+16|0,l=c+4|0,s=n[l>>2]|0,!s)if(s=n[c>>2]|0,s)l=c;else{c=0;break}for(;;){if(c=s+20|0,f=n[c>>2]|0,f|0){s=f,l=c;continue}if(c=s+16|0,f=n[c>>2]|0,f)s=f,l=c;else break}n[l>>2]=0,c=s}else c=n[Q+8>>2]|0,n[c+12>>2]=s,n[s+8>>2]=c,c=s;while(0);if(m|0){if(s=n[Q+28>>2]|0,l=11436+(s<<2)|0,(Q|0)==(n[l>>2]|0)){if(n[l>>2]=c,!c){n[2784]=n[2784]&~(1<>2]|0)!=(Q|0)&1)<<2)>>2]=c,!c)break;n[c+24>>2]=m,s=Q+16|0,l=n[s>>2]|0,l|0&&(n[c+16>>2]=l,n[l+24>>2]=c),s=n[s+4>>2]|0,s|0&&(n[c+20>>2]=s,n[s+24>>2]=c)}}while(0);if(n[k+4>>2]=d|1,n[B+d>>2]=d,(k|0)==(n[2788]|0)){n[2785]=d;return}}if(s=d>>>3,d>>>0<256){c=11172+(s<<1<<2)|0,l=n[2783]|0,s=1<>2]|0):(n[2783]=l|s,s=c,l=c+8|0),n[l>>2]=k,n[s+12>>2]=k,n[k+8>>2]=s,n[k+12>>2]=c;return}s=d>>>8,s?d>>>0>16777215?s=31:(B=(s+1048320|0)>>>16&8,Q=s<>>16&4,Q=Q<>>16&2,s=14-(m|B|s)+(Q<>>15)|0,s=d>>>(s+7|0)&1|s<<1):s=0,f=11436+(s<<2)|0,n[k+28>>2]=s,n[k+20>>2]=0,n[k+16>>2]=0,l=n[2784]|0,c=1<>>1)|0),c=n[f>>2]|0;;){if((n[c+4>>2]&-8|0)==(d|0)){s=73;break}if(f=c+16+(l>>>31<<2)|0,s=n[f>>2]|0,s)l=l<<1,c=s;else{s=72;break}}if((s|0)==72){n[f>>2]=k,n[k+24>>2]=c,n[k+12>>2]=k,n[k+8>>2]=k;break}else if((s|0)==73){B=c+8|0,Q=n[B>>2]|0,n[Q+12>>2]=k,n[B>>2]=k,n[k+8>>2]=Q,n[k+12>>2]=c,n[k+24>>2]=0;break}}else n[2784]=l|c,n[f>>2]=k,n[k+24>>2]=f,n[k+12>>2]=k,n[k+8>>2]=k;while(0);if(Q=(n[2791]|0)+-1|0,n[2791]=Q,!Q)s=11588;else return;for(;s=n[s>>2]|0,s;)s=s+8|0;n[2791]=-1}}}function DUe(){return 11628}function SUe(s){s=s|0;var l=0,c=0;return l=C,C=C+16|0,c=l,n[c>>2]=xUe(n[s+60>>2]|0)|0,s=gD(hc(6,c|0)|0)|0,C=l,s|0}function r7(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0,j=0,se=0,Ge=0;j=C,C=C+48|0,M=j+16|0,m=j,d=j+32|0,k=s+28|0,f=n[k>>2]|0,n[d>>2]=f,Q=s+20|0,f=(n[Q>>2]|0)-f|0,n[d+4>>2]=f,n[d+8>>2]=l,n[d+12>>2]=c,f=f+c|0,B=s+60|0,n[m>>2]=n[B>>2],n[m+4>>2]=d,n[m+8>>2]=2,m=gD(Li(146,m|0)|0)|0;e:do if((f|0)!=(m|0)){for(l=2;!((m|0)<0);)if(f=f-m|0,Ge=n[d+4>>2]|0,se=m>>>0>Ge>>>0,d=se?d+8|0:d,l=(se<<31>>31)+l|0,Ge=m-(se?Ge:0)|0,n[d>>2]=(n[d>>2]|0)+Ge,se=d+4|0,n[se>>2]=(n[se>>2]|0)-Ge,n[M>>2]=n[B>>2],n[M+4>>2]=d,n[M+8>>2]=l,m=gD(Li(146,M|0)|0)|0,(f|0)==(m|0)){O=3;break e}n[s+16>>2]=0,n[k>>2]=0,n[Q>>2]=0,n[s>>2]=n[s>>2]|32,(l|0)==2?c=0:c=c-(n[d+4>>2]|0)|0}else O=3;while(0);return(O|0)==3&&(Ge=n[s+44>>2]|0,n[s+16>>2]=Ge+(n[s+48>>2]|0),n[k>>2]=Ge,n[Q>>2]=Ge),C=j,c|0}function PUe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0;return d=C,C=C+32|0,m=d,f=d+20|0,n[m>>2]=n[s+60>>2],n[m+4>>2]=0,n[m+8>>2]=l,n[m+12>>2]=f,n[m+16>>2]=c,(gD(sa(140,m|0)|0)|0)<0?(n[f>>2]=-1,s=-1):s=n[f>>2]|0,C=d,s|0}function gD(s){return s=s|0,s>>>0>4294963200&&(n[(Vm()|0)>>2]=0-s,s=-1),s|0}function Vm(){return(bUe()|0)+64|0}function bUe(){return SR()|0}function SR(){return 2084}function xUe(s){return s=s|0,s|0}function kUe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0;return d=C,C=C+32|0,f=d,n[s+36>>2]=1,(n[s>>2]&64|0)==0&&(n[f>>2]=n[s+60>>2],n[f+4>>2]=21523,n[f+8>>2]=d+16,fu(54,f|0)|0)&&(o[s+75>>0]=-1),f=r7(s,l,c)|0,C=d,f|0}function n7(s,l){s=s|0,l=l|0;var c=0,f=0;if(c=o[s>>0]|0,f=o[l>>0]|0,c<<24>>24==0||c<<24>>24!=f<<24>>24)s=f;else{do s=s+1|0,l=l+1|0,c=o[s>>0]|0,f=o[l>>0]|0;while(!(c<<24>>24==0||c<<24>>24!=f<<24>>24));s=f}return(c&255)-(s&255)|0}function QUe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0;e:do if(!c)s=0;else{for(;f=o[s>>0]|0,d=o[l>>0]|0,f<<24>>24==d<<24>>24;)if(c=c+-1|0,c)s=s+1|0,l=l+1|0;else{s=0;break e}s=(f&255)-(d&255)|0}while(0);return s|0}function i7(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0,j=0,se=0,Ge=0,Me=0,Qe=0;Qe=C,C=C+224|0,O=Qe+120|0,j=Qe+80|0,Ge=Qe,Me=Qe+136|0,f=j,d=f+40|0;do n[f>>2]=0,f=f+4|0;while((f|0)<(d|0));return n[O>>2]=n[c>>2],(PR(0,l,O,Ge,j)|0)<0?c=-1:((n[s+76>>2]|0)>-1?se=FUe(s)|0:se=0,c=n[s>>2]|0,M=c&32,(o[s+74>>0]|0)<1&&(n[s>>2]=c&-33),f=s+48|0,n[f>>2]|0?c=PR(s,l,O,Ge,j)|0:(d=s+44|0,m=n[d>>2]|0,n[d>>2]=Me,B=s+28|0,n[B>>2]=Me,k=s+20|0,n[k>>2]=Me,n[f>>2]=80,Q=s+16|0,n[Q>>2]=Me+80,c=PR(s,l,O,Ge,j)|0,m&&(ED[n[s+36>>2]&7](s,0,0)|0,c=(n[k>>2]|0)==0?-1:c,n[d>>2]=m,n[f>>2]=0,n[Q>>2]=0,n[B>>2]=0,n[k>>2]=0)),f=n[s>>2]|0,n[s>>2]=f|M,se|0&&RUe(s),c=(f&32|0)==0?c:-1),C=Qe,c|0}function PR(s,l,c,f,d){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0;var m=0,B=0,k=0,Q=0,M=0,O=0,j=0,se=0,Ge=0,Me=0,Qe=0,et=0,Xe=0,lt=0,Ue=0,je=0,Lt=0,Mr=0,or=0,Xt=0,Sr=0,Nr=0,ir=0;ir=C,C=C+64|0,or=ir+16|0,Xt=ir,Lt=ir+24|0,Sr=ir+8|0,Nr=ir+20|0,n[or>>2]=l,lt=(s|0)!=0,Ue=Lt+40|0,je=Ue,Lt=Lt+39|0,Mr=Sr+4|0,B=0,m=0,O=0;e:for(;;){do if((m|0)>-1)if((B|0)>(2147483647-m|0)){n[(Vm()|0)>>2]=75,m=-1;break}else{m=B+m|0;break}while(0);if(B=o[l>>0]|0,B<<24>>24)k=l;else{Xe=87;break}t:for(;;){switch(B<<24>>24){case 37:{B=k,Xe=9;break t}case 0:{B=k;break t}default:}et=k+1|0,n[or>>2]=et,B=o[et>>0]|0,k=et}t:do if((Xe|0)==9)for(;;){if(Xe=0,(o[k+1>>0]|0)!=37)break t;if(B=B+1|0,k=k+2|0,n[or>>2]=k,(o[k>>0]|0)==37)Xe=9;else break}while(0);if(B=B-l|0,lt&&ss(s,l,B),B|0){l=k;continue}Q=k+1|0,B=(o[Q>>0]|0)+-48|0,B>>>0<10?(et=(o[k+2>>0]|0)==36,Qe=et?B:-1,O=et?1:O,Q=et?k+3|0:Q):Qe=-1,n[or>>2]=Q,B=o[Q>>0]|0,k=(B<<24>>24)+-32|0;t:do if(k>>>0<32)for(M=0,j=B;;){if(B=1<>2]=Q,B=o[Q>>0]|0,k=(B<<24>>24)+-32|0,k>>>0>=32)break;j=B}else M=0;while(0);if(B<<24>>24==42){if(k=Q+1|0,B=(o[k>>0]|0)+-48|0,B>>>0<10&&(o[Q+2>>0]|0)==36)n[d+(B<<2)>>2]=10,B=n[f+((o[k>>0]|0)+-48<<3)>>2]|0,O=1,Q=Q+3|0;else{if(O|0){m=-1;break}lt?(O=(n[c>>2]|0)+(4-1)&~(4-1),B=n[O>>2]|0,n[c>>2]=O+4,O=0,Q=k):(B=0,O=0,Q=k)}n[or>>2]=Q,et=(B|0)<0,B=et?0-B|0:B,M=et?M|8192:M}else{if(B=s7(or)|0,(B|0)<0){m=-1;break}Q=n[or>>2]|0}do if((o[Q>>0]|0)==46){if((o[Q+1>>0]|0)!=42){n[or>>2]=Q+1,k=s7(or)|0,Q=n[or>>2]|0;break}if(j=Q+2|0,k=(o[j>>0]|0)+-48|0,k>>>0<10&&(o[Q+3>>0]|0)==36){n[d+(k<<2)>>2]=10,k=n[f+((o[j>>0]|0)+-48<<3)>>2]|0,Q=Q+4|0,n[or>>2]=Q;break}if(O|0){m=-1;break e}lt?(et=(n[c>>2]|0)+(4-1)&~(4-1),k=n[et>>2]|0,n[c>>2]=et+4):k=0,n[or>>2]=j,Q=j}else k=-1;while(0);for(Me=0;;){if(((o[Q>>0]|0)+-65|0)>>>0>57){m=-1;break e}if(et=Q+1|0,n[or>>2]=et,j=o[(o[Q>>0]|0)+-65+(5178+(Me*58|0))>>0]|0,se=j&255,(se+-1|0)>>>0<8)Me=se,Q=et;else break}if(!(j<<24>>24)){m=-1;break}Ge=(Qe|0)>-1;do if(j<<24>>24==19)if(Ge){m=-1;break e}else Xe=49;else{if(Ge){n[d+(Qe<<2)>>2]=se,Ge=f+(Qe<<3)|0,Qe=n[Ge+4>>2]|0,Xe=Xt,n[Xe>>2]=n[Ge>>2],n[Xe+4>>2]=Qe,Xe=49;break}if(!lt){m=0;break e}o7(Xt,se,c)}while(0);if((Xe|0)==49&&(Xe=0,!lt)){B=0,l=et;continue}Q=o[Q>>0]|0,Q=(Me|0)!=0&(Q&15|0)==3?Q&-33:Q,Ge=M&-65537,Qe=(M&8192|0)==0?M:Ge;t:do switch(Q|0){case 110:switch((Me&255)<<24>>24){case 0:{n[n[Xt>>2]>>2]=m,B=0,l=et;continue e}case 1:{n[n[Xt>>2]>>2]=m,B=0,l=et;continue e}case 2:{B=n[Xt>>2]|0,n[B>>2]=m,n[B+4>>2]=((m|0)<0)<<31>>31,B=0,l=et;continue e}case 3:{a[n[Xt>>2]>>1]=m,B=0,l=et;continue e}case 4:{o[n[Xt>>2]>>0]=m,B=0,l=et;continue e}case 6:{n[n[Xt>>2]>>2]=m,B=0,l=et;continue e}case 7:{B=n[Xt>>2]|0,n[B>>2]=m,n[B+4>>2]=((m|0)<0)<<31>>31,B=0,l=et;continue e}default:{B=0,l=et;continue e}}case 112:{Q=120,k=k>>>0>8?k:8,l=Qe|8,Xe=61;break}case 88:case 120:{l=Qe,Xe=61;break}case 111:{Q=Xt,l=n[Q>>2]|0,Q=n[Q+4>>2]|0,se=NUe(l,Q,Ue)|0,Ge=je-se|0,M=0,j=5642,k=(Qe&8|0)==0|(k|0)>(Ge|0)?k:Ge+1|0,Ge=Qe,Xe=67;break}case 105:case 100:if(Q=Xt,l=n[Q>>2]|0,Q=n[Q+4>>2]|0,(Q|0)<0){l=dD(0,0,l|0,Q|0)|0,Q=Se,M=Xt,n[M>>2]=l,n[M+4>>2]=Q,M=1,j=5642,Xe=66;break t}else{M=(Qe&2049|0)!=0&1,j=(Qe&2048|0)==0?(Qe&1|0)==0?5642:5644:5643,Xe=66;break t}case 117:{Q=Xt,M=0,j=5642,l=n[Q>>2]|0,Q=n[Q+4>>2]|0,Xe=66;break}case 99:{o[Lt>>0]=n[Xt>>2],l=Lt,M=0,j=5642,se=Ue,Q=1,k=Ge;break}case 109:{Q=LUe(n[(Vm()|0)>>2]|0)|0,Xe=71;break}case 115:{Q=n[Xt>>2]|0,Q=Q|0?Q:5652,Xe=71;break}case 67:{n[Sr>>2]=n[Xt>>2],n[Mr>>2]=0,n[Xt>>2]=Sr,se=-1,Q=Sr,Xe=75;break}case 83:{l=n[Xt>>2]|0,k?(se=k,Q=l,Xe=75):(Bs(s,32,B,0,Qe),l=0,Xe=84);break}case 65:case 71:case 70:case 69:case 97:case 103:case 102:case 101:{B=MUe(s,+E[Xt>>3],B,k,Qe,Q)|0,l=et;continue e}default:M=0,j=5642,se=Ue,Q=k,k=Qe}while(0);t:do if((Xe|0)==61)Qe=Xt,Me=n[Qe>>2]|0,Qe=n[Qe+4>>2]|0,se=TUe(Me,Qe,Ue,Q&32)|0,j=(l&8|0)==0|(Me|0)==0&(Qe|0)==0,M=j?0:2,j=j?5642:5642+(Q>>4)|0,Ge=l,l=Me,Q=Qe,Xe=67;else if((Xe|0)==66)se=Jm(l,Q,Ue)|0,Ge=Qe,Xe=67;else if((Xe|0)==71)Xe=0,Qe=OUe(Q,0,k)|0,Me=(Qe|0)==0,l=Q,M=0,j=5642,se=Me?Q+k|0:Qe,Q=Me?k:Qe-Q|0,k=Ge;else if((Xe|0)==75){for(Xe=0,j=Q,l=0,k=0;M=n[j>>2]|0,!(!M||(k=a7(Nr,M)|0,(k|0)<0|k>>>0>(se-l|0)>>>0));)if(l=k+l|0,se>>>0>l>>>0)j=j+4|0;else break;if((k|0)<0){m=-1;break e}if(Bs(s,32,B,l,Qe),!l)l=0,Xe=84;else for(M=0;;){if(k=n[Q>>2]|0,!k){Xe=84;break t}if(k=a7(Nr,k)|0,M=k+M|0,(M|0)>(l|0)){Xe=84;break t}if(ss(s,Nr,k),M>>>0>=l>>>0){Xe=84;break}else Q=Q+4|0}}while(0);if((Xe|0)==67)Xe=0,Q=(l|0)!=0|(Q|0)!=0,Qe=(k|0)!=0|Q,Q=((Q^1)&1)+(je-se)|0,l=Qe?se:Ue,se=Ue,Q=Qe?(k|0)>(Q|0)?k:Q:k,k=(k|0)>-1?Ge&-65537:Ge;else if((Xe|0)==84){Xe=0,Bs(s,32,B,l,Qe^8192),B=(B|0)>(l|0)?B:l,l=et;continue}Me=se-l|0,Ge=(Q|0)<(Me|0)?Me:Q,Qe=Ge+M|0,B=(B|0)<(Qe|0)?Qe:B,Bs(s,32,B,Qe,k),ss(s,j,M),Bs(s,48,B,Qe,k^65536),Bs(s,48,Ge,Me,0),ss(s,l,Me),Bs(s,32,B,Qe,k^8192),l=et}e:do if((Xe|0)==87&&!s)if(!O)m=0;else{for(m=1;l=n[d+(m<<2)>>2]|0,!!l;)if(o7(f+(m<<3)|0,l,c),m=m+1|0,(m|0)>=10){m=1;break e}for(;;){if(n[d+(m<<2)>>2]|0){m=-1;break e}if(m=m+1|0,(m|0)>=10){m=1;break}}}while(0);return C=ir,m|0}function FUe(s){return s=s|0,0}function RUe(s){s=s|0}function ss(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]&32||KUe(l,c,s)|0}function s7(s){s=s|0;var l=0,c=0,f=0;if(c=n[s>>2]|0,f=(o[c>>0]|0)+-48|0,f>>>0<10){l=0;do l=f+(l*10|0)|0,c=c+1|0,n[s>>2]=c,f=(o[c>>0]|0)+-48|0;while(f>>>0<10)}else l=0;return l|0}function o7(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0;e:do if(l>>>0<=20)do switch(l|0){case 9:{f=(n[c>>2]|0)+(4-1)&~(4-1),l=n[f>>2]|0,n[c>>2]=f+4,n[s>>2]=l;break e}case 10:{f=(n[c>>2]|0)+(4-1)&~(4-1),l=n[f>>2]|0,n[c>>2]=f+4,f=s,n[f>>2]=l,n[f+4>>2]=((l|0)<0)<<31>>31;break e}case 11:{f=(n[c>>2]|0)+(4-1)&~(4-1),l=n[f>>2]|0,n[c>>2]=f+4,f=s,n[f>>2]=l,n[f+4>>2]=0;break e}case 12:{f=(n[c>>2]|0)+(8-1)&~(8-1),l=f,d=n[l>>2]|0,l=n[l+4>>2]|0,n[c>>2]=f+8,f=s,n[f>>2]=d,n[f+4>>2]=l;break e}case 13:{d=(n[c>>2]|0)+(4-1)&~(4-1),f=n[d>>2]|0,n[c>>2]=d+4,f=(f&65535)<<16>>16,d=s,n[d>>2]=f,n[d+4>>2]=((f|0)<0)<<31>>31;break e}case 14:{d=(n[c>>2]|0)+(4-1)&~(4-1),f=n[d>>2]|0,n[c>>2]=d+4,d=s,n[d>>2]=f&65535,n[d+4>>2]=0;break e}case 15:{d=(n[c>>2]|0)+(4-1)&~(4-1),f=n[d>>2]|0,n[c>>2]=d+4,f=(f&255)<<24>>24,d=s,n[d>>2]=f,n[d+4>>2]=((f|0)<0)<<31>>31;break e}case 16:{d=(n[c>>2]|0)+(4-1)&~(4-1),f=n[d>>2]|0,n[c>>2]=d+4,d=s,n[d>>2]=f&255,n[d+4>>2]=0;break e}case 17:{d=(n[c>>2]|0)+(8-1)&~(8-1),m=+E[d>>3],n[c>>2]=d+8,E[s>>3]=m;break e}case 18:{d=(n[c>>2]|0)+(8-1)&~(8-1),m=+E[d>>3],n[c>>2]=d+8,E[s>>3]=m;break e}default:break e}while(0);while(0)}function TUe(s,l,c,f){if(s=s|0,l=l|0,c=c|0,f=f|0,!((s|0)==0&(l|0)==0))do c=c+-1|0,o[c>>0]=u[5694+(s&15)>>0]|0|f,s=mD(s|0,l|0,4)|0,l=Se;while(!((s|0)==0&(l|0)==0));return c|0}function NUe(s,l,c){if(s=s|0,l=l|0,c=c|0,!((s|0)==0&(l|0)==0))do c=c+-1|0,o[c>>0]=s&7|48,s=mD(s|0,l|0,3)|0,l=Se;while(!((s|0)==0&(l|0)==0));return c|0}function Jm(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;if(l>>>0>0|(l|0)==0&s>>>0>4294967295){for(;f=QR(s|0,l|0,10,0)|0,c=c+-1|0,o[c>>0]=f&255|48,f=s,s=kR(s|0,l|0,10,0)|0,l>>>0>9|(l|0)==9&f>>>0>4294967295;)l=Se;l=s}else l=s;if(l)for(;c=c+-1|0,o[c>>0]=(l>>>0)%10|0|48,!(l>>>0<10);)l=(l>>>0)/10|0;return c|0}function LUe(s){return s=s|0,jUe(s,n[(qUe()|0)+188>>2]|0)|0}function OUe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;m=l&255,f=(c|0)!=0;e:do if(f&(s&3|0)!=0)for(d=l&255;;){if((o[s>>0]|0)==d<<24>>24){B=6;break e}if(s=s+1|0,c=c+-1|0,f=(c|0)!=0,!(f&(s&3|0)!=0)){B=5;break}}else B=5;while(0);(B|0)==5&&(f?B=6:c=0);e:do if((B|0)==6&&(d=l&255,(o[s>>0]|0)!=d<<24>>24)){f=qe(m,16843009)|0;t:do if(c>>>0>3){for(;m=n[s>>2]^f,!((m&-2139062144^-2139062144)&m+-16843009|0);)if(s=s+4|0,c=c+-4|0,c>>>0<=3){B=11;break t}}else B=11;while(0);if((B|0)==11&&!c){c=0;break}for(;;){if((o[s>>0]|0)==d<<24>>24)break e;if(s=s+1|0,c=c+-1|0,!c){c=0;break}}}while(0);return(c|0?s:0)|0}function Bs(s,l,c,f,d){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0;var m=0,B=0;if(B=C,C=C+256|0,m=B,(c|0)>(f|0)&(d&73728|0)==0){if(d=c-f|0,Xm(m|0,l|0,(d>>>0<256?d:256)|0)|0,d>>>0>255){l=c-f|0;do ss(s,m,256),d=d+-256|0;while(d>>>0>255);d=l&255}ss(s,m,d)}C=B}function a7(s,l){return s=s|0,l=l|0,s?s=_Ue(s,l,0)|0:s=0,s|0}function MUe(s,l,c,f,d,m){s=s|0,l=+l,c=c|0,f=f|0,d=d|0,m=m|0;var B=0,k=0,Q=0,M=0,O=0,j=0,se=0,Ge=0,Me=0,Qe=0,et=0,Xe=0,lt=0,Ue=0,je=0,Lt=0,Mr=0,or=0,Xt=0,Sr=0,Nr=0,ir=0,xn=0;xn=C,C=C+560|0,Q=xn+8|0,et=xn,ir=xn+524|0,Nr=ir,M=xn+512|0,n[et>>2]=0,Sr=M+12|0,l7(l)|0,(Se|0)<0?(l=-l,or=1,Mr=5659):(or=(d&2049|0)!=0&1,Mr=(d&2048|0)==0?(d&1|0)==0?5660:5665:5662),l7(l)|0,Xt=Se&2146435072;do if(Xt>>>0<2146435072|(Xt|0)==2146435072&0<0){if(Ge=+UUe(l,et)*2,B=Ge!=0,B&&(n[et>>2]=(n[et>>2]|0)+-1),lt=m|32,(lt|0)==97){Me=m&32,se=(Me|0)==0?Mr:Mr+9|0,j=or|2,B=12-f|0;do if(f>>>0>11|(B|0)==0)l=Ge;else{l=8;do B=B+-1|0,l=l*16;while((B|0)!=0);if((o[se>>0]|0)==45){l=-(l+(-Ge-l));break}else{l=Ge+l-l;break}}while(0);k=n[et>>2]|0,B=(k|0)<0?0-k|0:k,B=Jm(B,((B|0)<0)<<31>>31,Sr)|0,(B|0)==(Sr|0)&&(B=M+11|0,o[B>>0]=48),o[B+-1>>0]=(k>>31&2)+43,O=B+-2|0,o[O>>0]=m+15,M=(f|0)<1,Q=(d&8|0)==0,B=ir;do Xt=~~l,k=B+1|0,o[B>>0]=u[5694+Xt>>0]|Me,l=(l-+(Xt|0))*16,(k-Nr|0)==1&&!(Q&(M&l==0))?(o[k>>0]=46,B=B+2|0):B=k;while(l!=0);Xt=B-Nr|0,Nr=Sr-O|0,Sr=(f|0)!=0&(Xt+-2|0)<(f|0)?f+2|0:Xt,B=Nr+j+Sr|0,Bs(s,32,c,B,d),ss(s,se,j),Bs(s,48,c,B,d^65536),ss(s,ir,Xt),Bs(s,48,Sr-Xt|0,0,0),ss(s,O,Nr),Bs(s,32,c,B,d^8192);break}k=(f|0)<0?6:f,B?(B=(n[et>>2]|0)+-28|0,n[et>>2]=B,l=Ge*268435456):(l=Ge,B=n[et>>2]|0),Xt=(B|0)<0?Q:Q+288|0,Q=Xt;do je=~~l>>>0,n[Q>>2]=je,Q=Q+4|0,l=(l-+(je>>>0))*1e9;while(l!=0);if((B|0)>0)for(M=Xt,j=Q;;){if(O=(B|0)<29?B:29,B=j+-4|0,B>>>0>=M>>>0){Q=0;do Ue=h7(n[B>>2]|0,0,O|0)|0,Ue=xR(Ue|0,Se|0,Q|0,0)|0,je=Se,Xe=QR(Ue|0,je|0,1e9,0)|0,n[B>>2]=Xe,Q=kR(Ue|0,je|0,1e9,0)|0,B=B+-4|0;while(B>>>0>=M>>>0);Q&&(M=M+-4|0,n[M>>2]=Q)}for(Q=j;!(Q>>>0<=M>>>0);)if(B=Q+-4|0,!(n[B>>2]|0))Q=B;else break;if(B=(n[et>>2]|0)-O|0,n[et>>2]=B,(B|0)>0)j=Q;else break}else M=Xt;if((B|0)<0){f=((k+25|0)/9|0)+1|0,Qe=(lt|0)==102;do{if(Me=0-B|0,Me=(Me|0)<9?Me:9,M>>>0>>0){O=(1<>>Me,se=0,B=M;do je=n[B>>2]|0,n[B>>2]=(je>>>Me)+se,se=qe(je&O,j)|0,B=B+4|0;while(B>>>0>>0);B=(n[M>>2]|0)==0?M+4|0:M,se?(n[Q>>2]=se,M=B,B=Q+4|0):(M=B,B=Q)}else M=(n[M>>2]|0)==0?M+4|0:M,B=Q;Q=Qe?Xt:M,Q=(B-Q>>2|0)>(f|0)?Q+(f<<2)|0:B,B=(n[et>>2]|0)+Me|0,n[et>>2]=B}while((B|0)<0);B=M,f=Q}else B=M,f=Q;if(je=Xt,B>>>0>>0){if(Q=(je-B>>2)*9|0,O=n[B>>2]|0,O>>>0>=10){M=10;do M=M*10|0,Q=Q+1|0;while(O>>>0>=M>>>0)}}else Q=0;if(Qe=(lt|0)==103,Xe=(k|0)!=0,M=k-((lt|0)!=102?Q:0)+((Xe&Qe)<<31>>31)|0,(M|0)<(((f-je>>2)*9|0)+-9|0)){if(M=M+9216|0,Me=Xt+4+(((M|0)/9|0)+-1024<<2)|0,M=((M|0)%9|0)+1|0,(M|0)<9){O=10;do O=O*10|0,M=M+1|0;while((M|0)!=9)}else O=10;if(j=n[Me>>2]|0,se=(j>>>0)%(O>>>0)|0,M=(Me+4|0)==(f|0),M&(se|0)==0)M=Me;else if(Ge=(((j>>>0)/(O>>>0)|0)&1|0)==0?9007199254740992:9007199254740994,Ue=(O|0)/2|0,l=se>>>0>>0?.5:M&(se|0)==(Ue|0)?1:1.5,or&&(Ue=(o[Mr>>0]|0)==45,l=Ue?-l:l,Ge=Ue?-Ge:Ge),M=j-se|0,n[Me>>2]=M,Ge+l!=Ge){if(Ue=M+O|0,n[Me>>2]=Ue,Ue>>>0>999999999)for(Q=Me;M=Q+-4|0,n[Q>>2]=0,M>>>0>>0&&(B=B+-4|0,n[B>>2]=0),Ue=(n[M>>2]|0)+1|0,n[M>>2]=Ue,Ue>>>0>999999999;)Q=M;else M=Me;if(Q=(je-B>>2)*9|0,j=n[B>>2]|0,j>>>0>=10){O=10;do O=O*10|0,Q=Q+1|0;while(j>>>0>=O>>>0)}}else M=Me;M=M+4|0,M=f>>>0>M>>>0?M:f,Ue=B}else M=f,Ue=B;for(lt=M;;){if(lt>>>0<=Ue>>>0){et=0;break}if(B=lt+-4|0,!(n[B>>2]|0))lt=B;else{et=1;break}}f=0-Q|0;do if(Qe)if(B=((Xe^1)&1)+k|0,(B|0)>(Q|0)&(Q|0)>-5?(O=m+-1|0,k=B+-1-Q|0):(O=m+-2|0,k=B+-1|0),B=d&8,B)Me=B;else{if(et&&(Lt=n[lt+-4>>2]|0,(Lt|0)!=0))if((Lt>>>0)%10|0)M=0;else{M=0,B=10;do B=B*10|0,M=M+1|0;while(!((Lt>>>0)%(B>>>0)|0|0))}else M=9;if(B=((lt-je>>2)*9|0)+-9|0,(O|32|0)==102){Me=B-M|0,Me=(Me|0)>0?Me:0,k=(k|0)<(Me|0)?k:Me,Me=0;break}else{Me=B+Q-M|0,Me=(Me|0)>0?Me:0,k=(k|0)<(Me|0)?k:Me,Me=0;break}}else O=m,Me=d&8;while(0);if(Qe=k|Me,j=(Qe|0)!=0&1,se=(O|32|0)==102,se)Xe=0,B=(Q|0)>0?Q:0;else{if(B=(Q|0)<0?f:Q,B=Jm(B,((B|0)<0)<<31>>31,Sr)|0,M=Sr,(M-B|0)<2)do B=B+-1|0,o[B>>0]=48;while((M-B|0)<2);o[B+-1>>0]=(Q>>31&2)+43,B=B+-2|0,o[B>>0]=O,Xe=B,B=M-B|0}if(B=or+1+k+j+B|0,Bs(s,32,c,B,d),ss(s,Mr,or),Bs(s,48,c,B,d^65536),se){O=Ue>>>0>Xt>>>0?Xt:Ue,Me=ir+9|0,j=Me,se=ir+8|0,M=O;do{if(Q=Jm(n[M>>2]|0,0,Me)|0,(M|0)==(O|0))(Q|0)==(Me|0)&&(o[se>>0]=48,Q=se);else if(Q>>>0>ir>>>0){Xm(ir|0,48,Q-Nr|0)|0;do Q=Q+-1|0;while(Q>>>0>ir>>>0)}ss(s,Q,j-Q|0),M=M+4|0}while(M>>>0<=Xt>>>0);if(Qe|0&&ss(s,5710,1),M>>>0>>0&(k|0)>0)for(;;){if(Q=Jm(n[M>>2]|0,0,Me)|0,Q>>>0>ir>>>0){Xm(ir|0,48,Q-Nr|0)|0;do Q=Q+-1|0;while(Q>>>0>ir>>>0)}if(ss(s,Q,(k|0)<9?k:9),M=M+4|0,Q=k+-9|0,M>>>0>>0&(k|0)>9)k=Q;else{k=Q;break}}Bs(s,48,k+9|0,9,0)}else{if(Qe=et?lt:Ue+4|0,(k|0)>-1){et=ir+9|0,Me=(Me|0)==0,f=et,j=0-Nr|0,se=ir+8|0,O=Ue;do{Q=Jm(n[O>>2]|0,0,et)|0,(Q|0)==(et|0)&&(o[se>>0]=48,Q=se);do if((O|0)==(Ue|0)){if(M=Q+1|0,ss(s,Q,1),Me&(k|0)<1){Q=M;break}ss(s,5710,1),Q=M}else{if(Q>>>0<=ir>>>0)break;Xm(ir|0,48,Q+j|0)|0;do Q=Q+-1|0;while(Q>>>0>ir>>>0)}while(0);Nr=f-Q|0,ss(s,Q,(k|0)>(Nr|0)?Nr:k),k=k-Nr|0,O=O+4|0}while(O>>>0>>0&(k|0)>-1)}Bs(s,48,k+18|0,18,0),ss(s,Xe,Sr-Xe|0)}Bs(s,32,c,B,d^8192)}else ir=(m&32|0)!=0,B=or+3|0,Bs(s,32,c,B,d&-65537),ss(s,Mr,or),ss(s,l!=l|!1?ir?5686:5690:ir?5678:5682,3),Bs(s,32,c,B,d^8192);while(0);return C=xn,((B|0)<(c|0)?c:B)|0}function l7(s){s=+s;var l=0;return E[v>>3]=s,l=n[v>>2]|0,Se=n[v+4>>2]|0,l|0}function UUe(s,l){return s=+s,l=l|0,+ +c7(s,l)}function c7(s,l){s=+s,l=l|0;var c=0,f=0,d=0;switch(E[v>>3]=s,c=n[v>>2]|0,f=n[v+4>>2]|0,d=mD(c|0,f|0,52)|0,d&2047){case 0:{s!=0?(s=+c7(s*18446744073709552e3,l),c=(n[l>>2]|0)+-64|0):c=0,n[l>>2]=c;break}case 2047:break;default:n[l>>2]=(d&2047)+-1022,n[v>>2]=c,n[v+4>>2]=f&-2146435073|1071644672,s=+E[v>>3]}return+s}function _Ue(s,l,c){s=s|0,l=l|0,c=c|0;do if(s){if(l>>>0<128){o[s>>0]=l,s=1;break}if(!(n[n[(HUe()|0)+188>>2]>>2]|0))if((l&-128|0)==57216){o[s>>0]=l,s=1;break}else{n[(Vm()|0)>>2]=84,s=-1;break}if(l>>>0<2048){o[s>>0]=l>>>6|192,o[s+1>>0]=l&63|128,s=2;break}if(l>>>0<55296|(l&-8192|0)==57344){o[s>>0]=l>>>12|224,o[s+1>>0]=l>>>6&63|128,o[s+2>>0]=l&63|128,s=3;break}if((l+-65536|0)>>>0<1048576){o[s>>0]=l>>>18|240,o[s+1>>0]=l>>>12&63|128,o[s+2>>0]=l>>>6&63|128,o[s+3>>0]=l&63|128,s=4;break}else{n[(Vm()|0)>>2]=84,s=-1;break}}else s=1;while(0);return s|0}function HUe(){return SR()|0}function qUe(){return SR()|0}function jUe(s,l){s=s|0,l=l|0;var c=0,f=0;for(f=0;;){if((u[5712+f>>0]|0)==(s|0)){s=2;break}if(c=f+1|0,(c|0)==87){c=5800,f=87,s=5;break}else f=c}if((s|0)==2&&(f?(c=5800,s=5):c=5800),(s|0)==5)for(;;){do s=c,c=c+1|0;while((o[s>>0]|0)!=0);if(f=f+-1|0,f)s=5;else break}return GUe(c,n[l+20>>2]|0)|0}function GUe(s,l){return s=s|0,l=l|0,YUe(s,l)|0}function YUe(s,l){return s=s|0,l=l|0,l?l=WUe(n[l>>2]|0,n[l+4>>2]|0,s)|0:l=0,(l|0?l:s)|0}function WUe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0,j=0,se=0;se=(n[s>>2]|0)+1794895138|0,m=Rg(n[s+8>>2]|0,se)|0,f=Rg(n[s+12>>2]|0,se)|0,d=Rg(n[s+16>>2]|0,se)|0;e:do if(m>>>0>>2>>>0&&(j=l-(m<<2)|0,f>>>0>>0&d>>>0>>0)&&((d|f)&3|0)==0){for(j=f>>>2,O=d>>>2,M=0;;){if(k=m>>>1,Q=M+k|0,B=Q<<1,d=B+j|0,f=Rg(n[s+(d<<2)>>2]|0,se)|0,d=Rg(n[s+(d+1<<2)>>2]|0,se)|0,!(d>>>0>>0&f>>>0<(l-d|0)>>>0)){f=0;break e}if(o[s+(d+f)>>0]|0){f=0;break e}if(f=n7(c,s+d|0)|0,!f)break;if(f=(f|0)<0,(m|0)==1){f=0;break e}else M=f?M:Q,m=f?k:m-k|0}f=B+O|0,d=Rg(n[s+(f<<2)>>2]|0,se)|0,f=Rg(n[s+(f+1<<2)>>2]|0,se)|0,f>>>0>>0&d>>>0<(l-f|0)>>>0?f=(o[s+(f+d)>>0]|0)==0?s+f|0:0:f=0}else f=0;while(0);return f|0}function Rg(s,l){s=s|0,l=l|0;var c=0;return c=m7(s|0)|0,((l|0)==0?s:c)|0}function KUe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=c+16|0,d=n[f>>2]|0,d?m=5:VUe(c)|0?f=0:(d=n[f>>2]|0,m=5);e:do if((m|0)==5){if(k=c+20|0,B=n[k>>2]|0,f=B,(d-B|0)>>>0>>0){f=ED[n[c+36>>2]&7](c,s,l)|0;break}t:do if((o[c+75>>0]|0)>-1){for(B=l;;){if(!B){m=0,d=s;break t}if(d=B+-1|0,(o[s+d>>0]|0)==10)break;B=d}if(f=ED[n[c+36>>2]&7](c,s,B)|0,f>>>0>>0)break e;m=B,d=s+B|0,l=l-B|0,f=n[k>>2]|0}else m=0,d=s;while(0);Dr(f|0,d|0,l|0)|0,n[k>>2]=(n[k>>2]|0)+l,f=m+l|0}while(0);return f|0}function VUe(s){s=s|0;var l=0,c=0;return l=s+74|0,c=o[l>>0]|0,o[l>>0]=c+255|c,l=n[s>>2]|0,l&8?(n[s>>2]=l|32,s=-1):(n[s+8>>2]=0,n[s+4>>2]=0,c=n[s+44>>2]|0,n[s+28>>2]=c,n[s+20>>2]=c,n[s+16>>2]=c+(n[s+48>>2]|0),s=0),s|0}function _n(s,l){s=y(s),l=y(l);var c=0,f=0;c=u7(s)|0;do if((c&2147483647)>>>0<=2139095040){if(f=u7(l)|0,(f&2147483647)>>>0<=2139095040)if((f^c|0)<0){s=(c|0)<0?l:s;break}else{s=s>2]=s,n[v>>2]|0|0}function Tg(s,l){s=y(s),l=y(l);var c=0,f=0;c=A7(s)|0;do if((c&2147483647)>>>0<=2139095040){if(f=A7(l)|0,(f&2147483647)>>>0<=2139095040)if((f^c|0)<0){s=(c|0)<0?s:l;break}else{s=s>2]=s,n[v>>2]|0|0}function bR(s,l){s=y(s),l=y(l);var c=0,f=0,d=0,m=0,B=0,k=0,Q=0,M=0;m=(h[v>>2]=s,n[v>>2]|0),k=(h[v>>2]=l,n[v>>2]|0),c=m>>>23&255,B=k>>>23&255,Q=m&-2147483648,d=k<<1;e:do if((d|0)!=0&&!((c|0)==255|((JUe(l)|0)&2147483647)>>>0>2139095040)){if(f=m<<1,f>>>0<=d>>>0)return l=y(s*y(0)),y((f|0)==(d|0)?l:s);if(c)f=m&8388607|8388608;else{if(c=m<<9,(c|0)>-1){f=c,c=0;do c=c+-1|0,f=f<<1;while((f|0)>-1)}else c=0;f=m<<1-c}if(B)k=k&8388607|8388608;else{if(m=k<<9,(m|0)>-1){d=0;do d=d+-1|0,m=m<<1;while((m|0)>-1)}else d=0;B=d,k=k<<1-d}d=f-k|0,m=(d|0)>-1;t:do if((c|0)>(B|0)){for(;;){if(m)if(d)f=d;else break;if(f=f<<1,c=c+-1|0,d=f-k|0,m=(d|0)>-1,(c|0)<=(B|0))break t}l=y(s*y(0));break e}while(0);if(m)if(d)f=d;else{l=y(s*y(0));break}if(f>>>0<8388608)do f=f<<1,c=c+-1|0;while(f>>>0<8388608);(c|0)>0?c=f+-8388608|c<<23:c=f>>>(1-c|0),l=(n[v>>2]=c|Q,y(h[v>>2]))}else M=3;while(0);return(M|0)==3&&(l=y(s*l),l=y(l/l)),y(l)}function JUe(s){return s=y(s),h[v>>2]=s,n[v>>2]|0|0}function zUe(s,l){return s=s|0,l=l|0,i7(n[582]|0,s,l)|0}function zr(s){s=s|0,Rt()}function zm(s){s=s|0}function XUe(s,l){return s=s|0,l=l|0,0}function ZUe(s){return s=s|0,(f7(s+4|0)|0)==-1?(tf[n[(n[s>>2]|0)+8>>2]&127](s),s=1):s=0,s|0}function f7(s){s=s|0;var l=0;return l=n[s>>2]|0,n[s>>2]=l+-1,l+-1|0}function kp(s){s=s|0,ZUe(s)|0&&$Ue(s)}function $Ue(s){s=s|0;var l=0;l=s+8|0,(n[l>>2]|0)!=0&&(f7(l)|0)!=-1||tf[n[(n[s>>2]|0)+16>>2]&127](s)}function Kt(s){s=s|0;var l=0;for(l=(s|0)==0?1:s;s=pD(l)|0,!(s|0);){if(s=t3e()|0,!s){s=0;break}P7[s&0]()}return s|0}function p7(s){return s=s|0,Kt(s)|0}function gt(s){s=s|0,hD(s)}function e3e(s){s=s|0,(o[s+11>>0]|0)<0&>(n[s>>2]|0)}function t3e(){var s=0;return s=n[2923]|0,n[2923]=s+0,s|0}function r3e(){}function dD(s,l,c,f){return s=s|0,l=l|0,c=c|0,f=f|0,f=l-f-(c>>>0>s>>>0|0)>>>0,Se=f,s-c>>>0|0|0}function xR(s,l,c,f){return s=s|0,l=l|0,c=c|0,f=f|0,c=s+c>>>0,Se=l+f+(c>>>0>>0|0)>>>0,c|0|0}function Xm(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;if(m=s+c|0,l=l&255,(c|0)>=67){for(;s&3;)o[s>>0]=l,s=s+1|0;for(f=m&-4|0,d=f-64|0,B=l|l<<8|l<<16|l<<24;(s|0)<=(d|0);)n[s>>2]=B,n[s+4>>2]=B,n[s+8>>2]=B,n[s+12>>2]=B,n[s+16>>2]=B,n[s+20>>2]=B,n[s+24>>2]=B,n[s+28>>2]=B,n[s+32>>2]=B,n[s+36>>2]=B,n[s+40>>2]=B,n[s+44>>2]=B,n[s+48>>2]=B,n[s+52>>2]=B,n[s+56>>2]=B,n[s+60>>2]=B,s=s+64|0;for(;(s|0)<(f|0);)n[s>>2]=B,s=s+4|0}for(;(s|0)<(m|0);)o[s>>0]=l,s=s+1|0;return m-c|0}function h7(s,l,c){return s=s|0,l=l|0,c=c|0,(c|0)<32?(Se=l<>>32-c,s<>>c,s>>>c|(l&(1<>>c-32|0)}function Dr(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0;if((c|0)>=8192)return Ac(s|0,l|0,c|0)|0;if(m=s|0,d=s+c|0,(s&3)==(l&3)){for(;s&3;){if(!c)return m|0;o[s>>0]=o[l>>0]|0,s=s+1|0,l=l+1|0,c=c-1|0}for(c=d&-4|0,f=c-64|0;(s|0)<=(f|0);)n[s>>2]=n[l>>2],n[s+4>>2]=n[l+4>>2],n[s+8>>2]=n[l+8>>2],n[s+12>>2]=n[l+12>>2],n[s+16>>2]=n[l+16>>2],n[s+20>>2]=n[l+20>>2],n[s+24>>2]=n[l+24>>2],n[s+28>>2]=n[l+28>>2],n[s+32>>2]=n[l+32>>2],n[s+36>>2]=n[l+36>>2],n[s+40>>2]=n[l+40>>2],n[s+44>>2]=n[l+44>>2],n[s+48>>2]=n[l+48>>2],n[s+52>>2]=n[l+52>>2],n[s+56>>2]=n[l+56>>2],n[s+60>>2]=n[l+60>>2],s=s+64|0,l=l+64|0;for(;(s|0)<(c|0);)n[s>>2]=n[l>>2],s=s+4|0,l=l+4|0}else for(c=d-4|0;(s|0)<(c|0);)o[s>>0]=o[l>>0]|0,o[s+1>>0]=o[l+1>>0]|0,o[s+2>>0]=o[l+2>>0]|0,o[s+3>>0]=o[l+3>>0]|0,s=s+4|0,l=l+4|0;for(;(s|0)<(d|0);)o[s>>0]=o[l>>0]|0,s=s+1|0,l=l+1|0;return m|0}function g7(s){s=s|0;var l=0;return l=o[L+(s&255)>>0]|0,(l|0)<8?l|0:(l=o[L+(s>>8&255)>>0]|0,(l|0)<8?l+8|0:(l=o[L+(s>>16&255)>>0]|0,(l|0)<8?l+16|0:(o[L+(s>>>24)>>0]|0)+24|0))}function d7(s,l,c,f,d){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0;var m=0,B=0,k=0,Q=0,M=0,O=0,j=0,se=0,Ge=0,Me=0;if(O=s,Q=l,M=Q,B=c,se=f,k=se,!M)return m=(d|0)!=0,k?m?(n[d>>2]=s|0,n[d+4>>2]=l&0,se=0,d=0,Se=se,d|0):(se=0,d=0,Se=se,d|0):(m&&(n[d>>2]=(O>>>0)%(B>>>0),n[d+4>>2]=0),se=0,d=(O>>>0)/(B>>>0)>>>0,Se=se,d|0);m=(k|0)==0;do if(B){if(!m){if(m=(P(k|0)|0)-(P(M|0)|0)|0,m>>>0<=31){j=m+1|0,k=31-m|0,l=m-31>>31,B=j,s=O>>>(j>>>0)&l|M<>>(j>>>0)&l,m=0,k=O<>2]=s|0,n[d+4>>2]=Q|l&0,se=0,d=0,Se=se,d|0):(se=0,d=0,Se=se,d|0)}if(m=B-1|0,m&B|0){k=(P(B|0)|0)+33-(P(M|0)|0)|0,Me=64-k|0,j=32-k|0,Q=j>>31,Ge=k-32|0,l=Ge>>31,B=k,s=j-1>>31&M>>>(Ge>>>0)|(M<>>(k>>>0))&l,l=l&M>>>(k>>>0),m=O<>>(Ge>>>0))&Q|O<>31;break}return d|0&&(n[d>>2]=m&O,n[d+4>>2]=0),(B|0)==1?(Ge=Q|l&0,Me=s|0|0,Se=Ge,Me|0):(Me=g7(B|0)|0,Ge=M>>>(Me>>>0)|0,Me=M<<32-Me|O>>>(Me>>>0)|0,Se=Ge,Me|0)}else{if(m)return d|0&&(n[d>>2]=(M>>>0)%(B>>>0),n[d+4>>2]=0),Ge=0,Me=(M>>>0)/(B>>>0)>>>0,Se=Ge,Me|0;if(!O)return d|0&&(n[d>>2]=0,n[d+4>>2]=(M>>>0)%(k>>>0)),Ge=0,Me=(M>>>0)/(k>>>0)>>>0,Se=Ge,Me|0;if(m=k-1|0,!(m&k))return d|0&&(n[d>>2]=s|0,n[d+4>>2]=m&M|l&0),Ge=0,Me=M>>>((g7(k|0)|0)>>>0),Se=Ge,Me|0;if(m=(P(k|0)|0)-(P(M|0)|0)|0,m>>>0<=30){l=m+1|0,k=31-m|0,B=l,s=M<>>(l>>>0),l=M>>>(l>>>0),m=0,k=O<>2]=s|0,n[d+4>>2]=Q|l&0,Ge=0,Me=0,Se=Ge,Me|0):(Ge=0,Me=0,Se=Ge,Me|0)}while(0);if(!B)M=k,Q=0,k=0;else{j=c|0|0,O=se|f&0,M=xR(j|0,O|0,-1,-1)|0,c=Se,Q=k,k=0;do f=Q,Q=m>>>31|Q<<1,m=k|m<<1,f=s<<1|f>>>31|0,se=s>>>31|l<<1|0,dD(M|0,c|0,f|0,se|0)|0,Me=Se,Ge=Me>>31|((Me|0)<0?-1:0)<<1,k=Ge&1,s=dD(f|0,se|0,Ge&j|0,(((Me|0)<0?-1:0)>>31|((Me|0)<0?-1:0)<<1)&O|0)|0,l=Se,B=B-1|0;while((B|0)!=0);M=Q,Q=0}return B=0,d|0&&(n[d>>2]=s,n[d+4>>2]=l),Ge=(m|0)>>>31|(M|B)<<1|(B<<1|m>>>31)&0|Q,Me=(m<<1|0>>>31)&-2|k,Se=Ge,Me|0}function kR(s,l,c,f){return s=s|0,l=l|0,c=c|0,f=f|0,d7(s,l,c,f,0)|0}function Qp(s){s=s|0;var l=0,c=0;return c=s+15&-16|0,l=n[I>>2]|0,s=l+c|0,(c|0)>0&(s|0)<(l|0)|(s|0)<0?(ie()|0,DA(12),-1):(n[I>>2]=s,(s|0)>(Z()|0)&&(X()|0)==0?(n[I>>2]=l,DA(12),-1):l|0)}function Mw(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;if((l|0)<(s|0)&(s|0)<(l+c|0)){for(f=s,l=l+c|0,s=s+c|0;(c|0)>0;)s=s-1|0,l=l-1|0,c=c-1|0,o[s>>0]=o[l>>0]|0;s=f}else Dr(s,l,c)|0;return s|0}function QR(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;return m=C,C=C+16|0,d=m|0,d7(s,l,c,f,d)|0,C=m,Se=n[d+4>>2]|0,n[d>>2]|0|0}function m7(s){return s=s|0,(s&255)<<24|(s>>8&255)<<16|(s>>16&255)<<8|s>>>24|0}function n3e(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0,y7[s&1](l|0,c|0,f|0,d|0,m|0)}function i3e(s,l,c){s=s|0,l=l|0,c=y(c),E7[s&1](l|0,y(c))}function s3e(s,l,c){s=s|0,l=l|0,c=+c,C7[s&31](l|0,+c)}function o3e(s,l,c,f){return s=s|0,l=l|0,c=y(c),f=y(f),y(w7[s&0](l|0,y(c),y(f)))}function a3e(s,l){s=s|0,l=l|0,tf[s&127](l|0)}function l3e(s,l,c){s=s|0,l=l|0,c=c|0,rf[s&31](l|0,c|0)}function c3e(s,l){return s=s|0,l=l|0,Lg[s&31](l|0)|0}function u3e(s,l,c,f,d){s=s|0,l=l|0,c=+c,f=+f,d=d|0,I7[s&1](l|0,+c,+f,d|0)}function A3e(s,l,c,f){s=s|0,l=l|0,c=+c,f=+f,Y3e[s&1](l|0,+c,+f)}function f3e(s,l,c,f){return s=s|0,l=l|0,c=c|0,f=f|0,ED[s&7](l|0,c|0,f|0)|0}function p3e(s,l,c,f){return s=s|0,l=l|0,c=c|0,f=f|0,+W3e[s&1](l|0,c|0,f|0)}function h3e(s,l){return s=s|0,l=l|0,+B7[s&15](l|0)}function g3e(s,l,c){return s=s|0,l=l|0,c=+c,K3e[s&1](l|0,+c)|0}function d3e(s,l,c){return s=s|0,l=l|0,c=c|0,RR[s&15](l|0,c|0)|0}function m3e(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=+f,d=+d,m=m|0,V3e[s&1](l|0,c|0,+f,+d,m|0)}function y3e(s,l,c,f,d,m,B){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0,B=B|0,J3e[s&1](l|0,c|0,f|0,d|0,m|0,B|0)}function E3e(s,l,c){return s=s|0,l=l|0,c=c|0,+v7[s&7](l|0,c|0)}function C3e(s){return s=s|0,CD[s&7]()|0}function w3e(s,l,c,f,d,m){return s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0,D7[s&1](l|0,c|0,f|0,d|0,m|0)|0}function I3e(s,l,c,f,d){s=s|0,l=l|0,c=c|0,f=f|0,d=+d,z3e[s&1](l|0,c|0,f|0,+d)}function B3e(s,l,c,f,d,m,B){s=s|0,l=l|0,c=c|0,f=y(f),d=d|0,m=y(m),B=B|0,S7[s&1](l|0,c|0,y(f),d|0,y(m),B|0)}function v3e(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,Hw[s&15](l|0,c|0,f|0)}function D3e(s){s=s|0,P7[s&0]()}function S3e(s,l,c,f){s=s|0,l=l|0,c=c|0,f=+f,b7[s&15](l|0,c|0,+f)}function P3e(s,l,c){return s=s|0,l=+l,c=+c,X3e[s&1](+l,+c)|0}function b3e(s,l,c,f,d){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,TR[s&15](l|0,c|0,f|0,d|0)}function x3e(s,l,c,f,d){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,F(0)}function k3e(s,l){s=s|0,l=y(l),F(1)}function ma(s,l){s=s|0,l=+l,F(2)}function Q3e(s,l,c){return s=s|0,l=y(l),c=y(c),F(3),Ze}function Er(s){s=s|0,F(4)}function Uw(s,l){s=s|0,l=l|0,F(5)}function Ja(s){return s=s|0,F(6),0}function F3e(s,l,c,f){s=s|0,l=+l,c=+c,f=f|0,F(7)}function R3e(s,l,c){s=s|0,l=+l,c=+c,F(8)}function T3e(s,l,c){return s=s|0,l=l|0,c=c|0,F(9),0}function N3e(s,l,c){return s=s|0,l=l|0,c=c|0,F(10),0}function Ng(s){return s=s|0,F(11),0}function L3e(s,l){return s=s|0,l=+l,F(12),0}function _w(s,l){return s=s|0,l=l|0,F(13),0}function O3e(s,l,c,f,d){s=s|0,l=l|0,c=+c,f=+f,d=d|0,F(14)}function M3e(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0,F(15)}function FR(s,l){return s=s|0,l=l|0,F(16),0}function U3e(){return F(17),0}function _3e(s,l,c,f,d){return s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,F(18),0}function H3e(s,l,c,f){s=s|0,l=l|0,c=c|0,f=+f,F(19)}function q3e(s,l,c,f,d,m){s=s|0,l=l|0,c=y(c),f=f|0,d=y(d),m=m|0,F(20)}function yD(s,l,c){s=s|0,l=l|0,c=c|0,F(21)}function j3e(){F(22)}function Zm(s,l,c){s=s|0,l=l|0,c=+c,F(23)}function G3e(s,l){return s=+s,l=+l,F(24),0}function $m(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,F(25)}var y7=[x3e,_Le],E7=[k3e,fo],C7=[ma,xw,kw,EF,CF,Dl,Qw,wF,qm,bu,Rw,IF,$v,KA,eD,jm,tD,rD,Gm,ma,ma,ma,ma,ma,ma,ma,ma,ma,ma,ma,ma,ma],w7=[Q3e],tf=[Er,zm,CDe,wDe,IDe,Xbe,Zbe,$be,gNe,dNe,mNe,PLe,bLe,xLe,J4e,z4e,X4e,hs,Vv,Hm,WA,Fw,dve,mve,uDe,kDe,qDe,oSe,ISe,USe,rPe,mPe,FPe,VPe,ube,Sbe,qbe,dxe,Fxe,Vxe,uke,Ske,qke,aQe,IQe,LQe,ZQe,Pc,xFe,YFe,uRe,bRe,jRe,uTe,CTe,BTe,_Te,jTe,oNe,ENe,INe,UNe,nLe,i5,MOe,gMe,kMe,YMe,p4e,b4e,U4e,q4e,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er],rf=[Uw,fF,pF,bw,Pu,hF,gF,Bp,dF,mF,yF,Zv,VA,Ve,ft,Wt,vr,Pn,Fr,vF,nve,Sve,AQe,DQe,FRe,HOe,ALe,q9,Uw,Uw,Uw,Uw],Lg=[Ja,SUe,AF,D,Ae,De,vt,wt,xt,_r,di,po,eve,tve,yve,tFe,KRe,qNe,YOe,Wa,Ja,Ja,Ja,Ja,Ja,Ja,Ja,Ja,Ja,Ja,Ja,Ja],I7=[F3e,Eve],Y3e=[R3e,cNe],ED=[T3e,r7,PUe,kUe,jSe,Cxe,RFe,JMe],W3e=[N3e,hbe],B7=[Ng,Yo,rt,bn,Cve,wve,Ive,Bve,vve,Dve,Ng,Ng,Ng,Ng,Ng,Ng],K3e=[L3e,mTe],RR=[_w,XUe,rve,hDe,uSe,sPe,CPe,Wbe,Lxe,_Qe,Wv,TMe,_w,_w,_w,_w],V3e=[O3e,WDe],J3e=[M3e,m4e],v7=[FR,ai,Pve,bve,xve,kbe,FR,FR],CD=[U3e,kve,Sw,ga,PTe,KTe,SNe,W4e],D7=[_3e,Cw],z3e=[H3e,hke],S7=[q3e,ive],Hw=[yD,T,is,tn,ho,SSe,NPe,kke,Wke,_m,cOe,EMe,F4e,yD,yD,yD],P7=[j3e],b7=[Zm,Jv,zv,Xv,YA,nD,BF,S,Zxe,JFe,pTe,Zm,Zm,Zm,Zm,Zm],X3e=[G3e,pNe],TR=[$m,ZPe,cFe,hRe,rTe,RTe,$Te,RNe,lLe,XOe,nUe,$m,$m,$m,$m,$m];return{_llvm_bswap_i32:m7,dynCall_idd:P3e,dynCall_i:C3e,_i64Subtract:dD,___udivdi3:kR,dynCall_vif:i3e,setThrew:hu,dynCall_viii:v3e,_bitshift64Lshr:mD,_bitshift64Shl:h7,dynCall_vi:a3e,dynCall_viiddi:m3e,dynCall_diii:p3e,dynCall_iii:d3e,_memset:Xm,_sbrk:Qp,_memcpy:Dr,__GLOBAL__sub_I_Yoga_cpp:Um,dynCall_vii:l3e,___uremdi3:QR,dynCall_vid:s3e,stackAlloc:lo,_nbind_init:hUe,getTempRet0:Ua,dynCall_di:h3e,dynCall_iid:g3e,setTempRet0:xA,_i64Add:xR,dynCall_fiff:o3e,dynCall_iiii:f3e,_emscripten_get_global_libc:DUe,dynCall_viid:S3e,dynCall_viiid:I3e,dynCall_viififi:B3e,dynCall_ii:c3e,__GLOBAL__sub_I_Binding_cc:kOe,dynCall_viiii:b3e,dynCall_iiiiii:w3e,stackSave:gc,dynCall_viiiii:n3e,__GLOBAL__sub_I_nbind_cc:Qve,dynCall_vidd:A3e,_free:hD,runPostSets:r3e,dynCall_viiiiii:y3e,establishStackSpace:qi,_memmove:Mw,stackRestore:pu,_malloc:pD,__GLOBAL__sub_I_common_cc:zNe,dynCall_viddi:u3e,dynCall_dii:E3e,dynCall_v:D3e}}(Module.asmGlobalArg,Module.asmLibraryArg,buffer),_llvm_bswap_i32=Module._llvm_bswap_i32=asm._llvm_bswap_i32,getTempRet0=Module.getTempRet0=asm.getTempRet0,___udivdi3=Module.___udivdi3=asm.___udivdi3,setThrew=Module.setThrew=asm.setThrew,_bitshift64Lshr=Module._bitshift64Lshr=asm._bitshift64Lshr,_bitshift64Shl=Module._bitshift64Shl=asm._bitshift64Shl,_memset=Module._memset=asm._memset,_sbrk=Module._sbrk=asm._sbrk,_memcpy=Module._memcpy=asm._memcpy,stackAlloc=Module.stackAlloc=asm.stackAlloc,___uremdi3=Module.___uremdi3=asm.___uremdi3,_nbind_init=Module._nbind_init=asm._nbind_init,_i64Subtract=Module._i64Subtract=asm._i64Subtract,setTempRet0=Module.setTempRet0=asm.setTempRet0,_i64Add=Module._i64Add=asm._i64Add,_emscripten_get_global_libc=Module._emscripten_get_global_libc=asm._emscripten_get_global_libc,__GLOBAL__sub_I_Yoga_cpp=Module.__GLOBAL__sub_I_Yoga_cpp=asm.__GLOBAL__sub_I_Yoga_cpp,__GLOBAL__sub_I_Binding_cc=Module.__GLOBAL__sub_I_Binding_cc=asm.__GLOBAL__sub_I_Binding_cc,stackSave=Module.stackSave=asm.stackSave,__GLOBAL__sub_I_nbind_cc=Module.__GLOBAL__sub_I_nbind_cc=asm.__GLOBAL__sub_I_nbind_cc,_free=Module._free=asm._free,runPostSets=Module.runPostSets=asm.runPostSets,establishStackSpace=Module.establishStackSpace=asm.establishStackSpace,_memmove=Module._memmove=asm._memmove,stackRestore=Module.stackRestore=asm.stackRestore,_malloc=Module._malloc=asm._malloc,__GLOBAL__sub_I_common_cc=Module.__GLOBAL__sub_I_common_cc=asm.__GLOBAL__sub_I_common_cc,dynCall_viiiii=Module.dynCall_viiiii=asm.dynCall_viiiii,dynCall_vif=Module.dynCall_vif=asm.dynCall_vif,dynCall_vid=Module.dynCall_vid=asm.dynCall_vid,dynCall_fiff=Module.dynCall_fiff=asm.dynCall_fiff,dynCall_vi=Module.dynCall_vi=asm.dynCall_vi,dynCall_vii=Module.dynCall_vii=asm.dynCall_vii,dynCall_ii=Module.dynCall_ii=asm.dynCall_ii,dynCall_viddi=Module.dynCall_viddi=asm.dynCall_viddi,dynCall_vidd=Module.dynCall_vidd=asm.dynCall_vidd,dynCall_iiii=Module.dynCall_iiii=asm.dynCall_iiii,dynCall_diii=Module.dynCall_diii=asm.dynCall_diii,dynCall_di=Module.dynCall_di=asm.dynCall_di,dynCall_iid=Module.dynCall_iid=asm.dynCall_iid,dynCall_iii=Module.dynCall_iii=asm.dynCall_iii,dynCall_viiddi=Module.dynCall_viiddi=asm.dynCall_viiddi,dynCall_viiiiii=Module.dynCall_viiiiii=asm.dynCall_viiiiii,dynCall_dii=Module.dynCall_dii=asm.dynCall_dii,dynCall_i=Module.dynCall_i=asm.dynCall_i,dynCall_iiiiii=Module.dynCall_iiiiii=asm.dynCall_iiiiii,dynCall_viiid=Module.dynCall_viiid=asm.dynCall_viiid,dynCall_viififi=Module.dynCall_viififi=asm.dynCall_viififi,dynCall_viii=Module.dynCall_viii=asm.dynCall_viii,dynCall_v=Module.dynCall_v=asm.dynCall_v,dynCall_viid=Module.dynCall_viid=asm.dynCall_viid,dynCall_idd=Module.dynCall_idd=asm.dynCall_idd,dynCall_viiii=Module.dynCall_viiii=asm.dynCall_viiii;Runtime.stackAlloc=Module.stackAlloc,Runtime.stackSave=Module.stackSave,Runtime.stackRestore=Module.stackRestore,Runtime.establishStackSpace=Module.establishStackSpace,Runtime.setTempRet0=Module.setTempRet0,Runtime.getTempRet0=Module.getTempRet0,Module.asm=asm;function ExitStatus(t){this.name="ExitStatus",this.message="Program terminated with exit("+t+")",this.status=t}ExitStatus.prototype=new Error,ExitStatus.prototype.constructor=ExitStatus;var initialStackTop,preloadStartTime=null,calledMain=!1;dependenciesFulfilled=function t(){Module.calledRun||run(),Module.calledRun||(dependenciesFulfilled=t)},Module.callMain=Module.callMain=function t(e){e=e||[],ensureInitRuntime();var r=e.length+1;function o(){for(var p=0;p<4-1;p++)a.push(0)}var a=[allocate(intArrayFromString(Module.thisProgram),"i8",ALLOC_NORMAL)];o();for(var n=0;n0||(preRun(),runDependencies>0)||Module.calledRun)return;function e(){Module.calledRun||(Module.calledRun=!0,!ABORT&&(ensureInitRuntime(),preMain(),Module.onRuntimeInitialized&&Module.onRuntimeInitialized(),Module._main&&shouldRunNow&&Module.callMain(t),postRun()))}Module.setStatus?(Module.setStatus("Running..."),setTimeout(function(){setTimeout(function(){Module.setStatus("")},1),e()},1)):e()}Module.run=Module.run=run;function exit(t,e){e&&Module.noExitRuntime||(Module.noExitRuntime||(ABORT=!0,EXITSTATUS=t,STACKTOP=initialStackTop,exitRuntime(),Module.onExit&&Module.onExit(t)),ENVIRONMENT_IS_NODE&&process.exit(t),Module.quit(t,new ExitStatus(t)))}Module.exit=Module.exit=exit;var abortDecorators=[];function abort(t){Module.onAbort&&Module.onAbort(t),t!==void 0?(Module.print(t),Module.printErr(t),t=JSON.stringify(t)):t="",ABORT=!0,EXITSTATUS=1;var e=` +If this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information.`,r="abort("+t+") at "+stackTrace()+e;throw abortDecorators&&abortDecorators.forEach(function(o){r=o(r,t)}),r}if(Module.abort=Module.abort=abort,Module.preInit)for(typeof Module.preInit=="function"&&(Module.preInit=[Module.preInit]);Module.preInit.length>0;)Module.preInit.pop()();var shouldRunNow=!0;Module.noInitialRun&&(shouldRunNow=!1),run()})});var am=_((wKt,NEe)=>{"use strict";var Gyt=REe(),Yyt=TEe(),x6=!1,k6=null;Yyt({},function(t,e){if(!x6){if(x6=!0,t)throw t;k6=e}});if(!x6)throw new Error("Failed to load the yoga module - it needed to be loaded synchronously, but didn't");NEe.exports=Gyt(k6.bind,k6.lib)});var F6=_((IKt,Q6)=>{"use strict";var LEe=t=>Number.isNaN(t)?!1:t>=4352&&(t<=4447||t===9001||t===9002||11904<=t&&t<=12871&&t!==12351||12880<=t&&t<=19903||19968<=t&&t<=42182||43360<=t&&t<=43388||44032<=t&&t<=55203||63744<=t&&t<=64255||65040<=t&&t<=65049||65072<=t&&t<=65131||65281<=t&&t<=65376||65504<=t&&t<=65510||110592<=t&&t<=110593||127488<=t&&t<=127569||131072<=t&&t<=262141);Q6.exports=LEe;Q6.exports.default=LEe});var MEe=_((BKt,OEe)=>{"use strict";OEe.exports=function(){return/\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F|\uD83D\uDC68(?:\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68\uD83C\uDFFB|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|[\u2695\u2696\u2708]\uFE0F|\uD83D[\uDC66\uDC67]|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708])\uFE0F|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C[\uDFFB-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)\uD83C\uDFFB|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB\uDFFC])|\uD83D\uDC69(?:\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB-\uDFFD])|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|(?:(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)\uFE0F|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\u200D[\u2640\u2642])|\uD83C\uDFF4\u200D\u2620)\uFE0F|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF4\uD83C\uDDF2|\uD83C\uDDF6\uD83C\uDDE6|[#\*0-9]\uFE0F\u20E3|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270A-\u270D]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC70\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDCAA\uDD74\uDD7A\uDD90\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD36\uDDB5\uDDB6\uDDBB\uDDD2-\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5\uDEEB\uDEEC\uDEF4-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g}});var Kk=_((vKt,R6)=>{"use strict";var Wyt=OS(),Kyt=F6(),Vyt=MEe(),UEe=t=>{if(typeof t!="string"||t.length===0||(t=Wyt(t),t.length===0))return 0;t=t.replace(Vyt()," ");let e=0;for(let r=0;r=127&&o<=159||o>=768&&o<=879||(o>65535&&r++,e+=Kyt(o)?2:1)}return e};R6.exports=UEe;R6.exports.default=UEe});var N6=_((DKt,T6)=>{"use strict";var Jyt=Kk(),_Ee=t=>{let e=0;for(let r of t.split(` +`))e=Math.max(e,Jyt(r));return e};T6.exports=_Ee;T6.exports.default=_Ee});var HEe=_(cB=>{"use strict";var zyt=cB&&cB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(cB,"__esModule",{value:!0});var Xyt=zyt(N6()),L6={};cB.default=t=>{if(t.length===0)return{width:0,height:0};if(L6[t])return L6[t];let e=Xyt.default(t),r=t.split(` +`).length;return L6[t]={width:e,height:r},{width:e,height:r}}});var qEe=_(uB=>{"use strict";var Zyt=uB&&uB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(uB,"__esModule",{value:!0});var dn=Zyt(am()),$yt=(t,e)=>{"position"in e&&t.setPositionType(e.position==="absolute"?dn.default.POSITION_TYPE_ABSOLUTE:dn.default.POSITION_TYPE_RELATIVE)},eEt=(t,e)=>{"marginLeft"in e&&t.setMargin(dn.default.EDGE_START,e.marginLeft||0),"marginRight"in e&&t.setMargin(dn.default.EDGE_END,e.marginRight||0),"marginTop"in e&&t.setMargin(dn.default.EDGE_TOP,e.marginTop||0),"marginBottom"in e&&t.setMargin(dn.default.EDGE_BOTTOM,e.marginBottom||0)},tEt=(t,e)=>{"paddingLeft"in e&&t.setPadding(dn.default.EDGE_LEFT,e.paddingLeft||0),"paddingRight"in e&&t.setPadding(dn.default.EDGE_RIGHT,e.paddingRight||0),"paddingTop"in e&&t.setPadding(dn.default.EDGE_TOP,e.paddingTop||0),"paddingBottom"in e&&t.setPadding(dn.default.EDGE_BOTTOM,e.paddingBottom||0)},rEt=(t,e)=>{var r;"flexGrow"in e&&t.setFlexGrow((r=e.flexGrow)!==null&&r!==void 0?r:0),"flexShrink"in e&&t.setFlexShrink(typeof e.flexShrink=="number"?e.flexShrink:1),"flexDirection"in e&&(e.flexDirection==="row"&&t.setFlexDirection(dn.default.FLEX_DIRECTION_ROW),e.flexDirection==="row-reverse"&&t.setFlexDirection(dn.default.FLEX_DIRECTION_ROW_REVERSE),e.flexDirection==="column"&&t.setFlexDirection(dn.default.FLEX_DIRECTION_COLUMN),e.flexDirection==="column-reverse"&&t.setFlexDirection(dn.default.FLEX_DIRECTION_COLUMN_REVERSE)),"flexBasis"in e&&(typeof e.flexBasis=="number"?t.setFlexBasis(e.flexBasis):typeof e.flexBasis=="string"?t.setFlexBasisPercent(Number.parseInt(e.flexBasis,10)):t.setFlexBasis(NaN)),"alignItems"in e&&((e.alignItems==="stretch"||!e.alignItems)&&t.setAlignItems(dn.default.ALIGN_STRETCH),e.alignItems==="flex-start"&&t.setAlignItems(dn.default.ALIGN_FLEX_START),e.alignItems==="center"&&t.setAlignItems(dn.default.ALIGN_CENTER),e.alignItems==="flex-end"&&t.setAlignItems(dn.default.ALIGN_FLEX_END)),"alignSelf"in e&&((e.alignSelf==="auto"||!e.alignSelf)&&t.setAlignSelf(dn.default.ALIGN_AUTO),e.alignSelf==="flex-start"&&t.setAlignSelf(dn.default.ALIGN_FLEX_START),e.alignSelf==="center"&&t.setAlignSelf(dn.default.ALIGN_CENTER),e.alignSelf==="flex-end"&&t.setAlignSelf(dn.default.ALIGN_FLEX_END)),"justifyContent"in e&&((e.justifyContent==="flex-start"||!e.justifyContent)&&t.setJustifyContent(dn.default.JUSTIFY_FLEX_START),e.justifyContent==="center"&&t.setJustifyContent(dn.default.JUSTIFY_CENTER),e.justifyContent==="flex-end"&&t.setJustifyContent(dn.default.JUSTIFY_FLEX_END),e.justifyContent==="space-between"&&t.setJustifyContent(dn.default.JUSTIFY_SPACE_BETWEEN),e.justifyContent==="space-around"&&t.setJustifyContent(dn.default.JUSTIFY_SPACE_AROUND))},nEt=(t,e)=>{var r,o;"width"in e&&(typeof e.width=="number"?t.setWidth(e.width):typeof e.width=="string"?t.setWidthPercent(Number.parseInt(e.width,10)):t.setWidthAuto()),"height"in e&&(typeof e.height=="number"?t.setHeight(e.height):typeof e.height=="string"?t.setHeightPercent(Number.parseInt(e.height,10)):t.setHeightAuto()),"minWidth"in e&&(typeof e.minWidth=="string"?t.setMinWidthPercent(Number.parseInt(e.minWidth,10)):t.setMinWidth((r=e.minWidth)!==null&&r!==void 0?r:0)),"minHeight"in e&&(typeof e.minHeight=="string"?t.setMinHeightPercent(Number.parseInt(e.minHeight,10)):t.setMinHeight((o=e.minHeight)!==null&&o!==void 0?o:0))},iEt=(t,e)=>{"display"in e&&t.setDisplay(e.display==="flex"?dn.default.DISPLAY_FLEX:dn.default.DISPLAY_NONE)},sEt=(t,e)=>{if("borderStyle"in e){let r=typeof e.borderStyle=="string"?1:0;t.setBorder(dn.default.EDGE_TOP,r),t.setBorder(dn.default.EDGE_BOTTOM,r),t.setBorder(dn.default.EDGE_LEFT,r),t.setBorder(dn.default.EDGE_RIGHT,r)}};uB.default=(t,e={})=>{$yt(t,e),eEt(t,e),tEt(t,e),rEt(t,e),nEt(t,e),iEt(t,e),sEt(t,e)}});var YEe=_((bKt,GEe)=>{"use strict";var AB=Kk(),oEt=OS(),aEt=DI(),M6=new Set(["\x1B","\x9B"]),lEt=39,jEe=t=>`${M6.values().next().value}[${t}m`,cEt=t=>t.split(" ").map(e=>AB(e)),O6=(t,e,r)=>{let o=[...e],a=!1,n=AB(oEt(t[t.length-1]));for(let[u,A]of o.entries()){let p=AB(A);if(n+p<=r?t[t.length-1]+=A:(t.push(A),n=0),M6.has(A))a=!0;else if(a&&A==="m"){a=!1;continue}a||(n+=p,n===r&&u0&&t.length>1&&(t[t.length-2]+=t.pop())},uEt=t=>{let e=t.split(" "),r=e.length;for(;r>0&&!(AB(e[r-1])>0);)r--;return r===e.length?t:e.slice(0,r).join(" ")+e.slice(r).join("")},AEt=(t,e,r={})=>{if(r.trim!==!1&&t.trim()==="")return"";let o="",a="",n,u=cEt(t),A=[""];for(let[p,h]of t.split(" ").entries()){r.trim!==!1&&(A[A.length-1]=A[A.length-1].trimLeft());let E=AB(A[A.length-1]);if(p!==0&&(E>=e&&(r.wordWrap===!1||r.trim===!1)&&(A.push(""),E=0),(E>0||r.trim===!1)&&(A[A.length-1]+=" ",E++)),r.hard&&u[p]>e){let I=e-E,v=1+Math.floor((u[p]-I-1)/e);Math.floor((u[p]-1)/e)e&&E>0&&u[p]>0){if(r.wordWrap===!1&&Ee&&r.wordWrap===!1){O6(A,h,e);continue}A[A.length-1]+=h}r.trim!==!1&&(A=A.map(uEt)),o=A.join(` +`);for(let[p,h]of[...o].entries()){if(a+=h,M6.has(h)){let I=parseFloat(/\d[^m]*/.exec(o.slice(p,p+4)));n=I===lEt?null:I}let E=aEt.codes.get(Number(n));n&&E&&(o[p+1]===` +`?a+=jEe(E):h===` +`&&(a+=jEe(n)))}return a};GEe.exports=(t,e,r)=>String(t).normalize().replace(/\r\n/g,` +`).split(` +`).map(o=>AEt(o,e,r)).join(` +`)});var VEe=_((xKt,KEe)=>{"use strict";var WEe="[\uD800-\uDBFF][\uDC00-\uDFFF]",fEt=t=>t&&t.exact?new RegExp(`^${WEe}$`):new RegExp(WEe,"g");KEe.exports=fEt});var U6=_((kKt,ZEe)=>{"use strict";var pEt=F6(),hEt=VEe(),JEe=DI(),XEe=["\x1B","\x9B"],Vk=t=>`${XEe[0]}[${t}m`,zEe=(t,e,r)=>{let o=[];t=[...t];for(let a of t){let n=a;a.match(";")&&(a=a.split(";")[0][0]+"0");let u=JEe.codes.get(parseInt(a,10));if(u){let A=t.indexOf(u.toString());A>=0?t.splice(A,1):o.push(Vk(e?u:n))}else if(e){o.push(Vk(0));break}else o.push(Vk(n))}if(e&&(o=o.filter((a,n)=>o.indexOf(a)===n),r!==void 0)){let a=Vk(JEe.codes.get(parseInt(r,10)));o=o.reduce((n,u)=>u===a?[u,...n]:[...n,u],[])}return o.join("")};ZEe.exports=(t,e,r)=>{let o=[...t.normalize()],a=[];r=typeof r=="number"?r:o.length;let n=!1,u,A=0,p="";for(let[h,E]of o.entries()){let I=!1;if(XEe.includes(E)){let v=/\d[^m]*/.exec(t.slice(h,h+18));u=v&&v.length>0?v[0]:void 0,Ae&&A<=r)p+=E;else if(A===e&&!n&&u!==void 0)p=zEe(a);else if(A>=r){p+=zEe(a,!0,u);break}}return p}});var eCe=_((QKt,$Ee)=>{"use strict";var E0=U6(),gEt=Kk();function Jk(t,e,r){if(t.charAt(e)===" ")return e;for(let o=1;o<=3;o++)if(r){if(t.charAt(e+o)===" ")return e+o}else if(t.charAt(e-o)===" ")return e-o;return e}$Ee.exports=(t,e,r)=>{r={position:"end",preferTruncationOnSpace:!1,...r};let{position:o,space:a,preferTruncationOnSpace:n}=r,u="\u2026",A=1;if(typeof t!="string")throw new TypeError(`Expected \`input\` to be a string, got ${typeof t}`);if(typeof e!="number")throw new TypeError(`Expected \`columns\` to be a number, got ${typeof e}`);if(e<1)return"";if(e===1)return u;let p=gEt(t);if(p<=e)return t;if(o==="start"){if(n){let h=Jk(t,p-e+1,!0);return u+E0(t,h,p).trim()}return a===!0&&(u+=" ",A=2),u+E0(t,p-e+A,p)}if(o==="middle"){a===!0&&(u=" "+u+" ",A=3);let h=Math.floor(e/2);if(n){let E=Jk(t,h),I=Jk(t,p-(e-h)+1,!0);return E0(t,0,E)+u+E0(t,I,p).trim()}return E0(t,0,h)+u+E0(t,p-(e-h)+A,p)}if(o==="end"){if(n){let h=Jk(t,e-1);return E0(t,0,h)+u}return a===!0&&(u=" "+u,A=2),E0(t,0,e-A)+u}throw new Error(`Expected \`options.position\` to be either \`start\`, \`middle\` or \`end\`, got ${o}`)}});var H6=_(fB=>{"use strict";var tCe=fB&&fB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(fB,"__esModule",{value:!0});var dEt=tCe(YEe()),mEt=tCe(eCe()),_6={};fB.default=(t,e,r)=>{let o=t+String(e)+String(r);if(_6[o])return _6[o];let a=t;if(r==="wrap"&&(a=dEt.default(t,e,{trim:!1,hard:!0})),r.startsWith("truncate")){let n="end";r==="truncate-middle"&&(n="middle"),r==="truncate-start"&&(n="start"),a=mEt.default(t,e,{position:n})}return _6[o]=a,a}});var j6=_(q6=>{"use strict";Object.defineProperty(q6,"__esModule",{value:!0});var rCe=t=>{let e="";if(t.childNodes.length>0)for(let r of t.childNodes){let o="";r.nodeName==="#text"?o=r.nodeValue:((r.nodeName==="ink-text"||r.nodeName==="ink-virtual-text")&&(o=rCe(r)),o.length>0&&typeof r.internal_transform=="function"&&(o=r.internal_transform(o))),e+=o}return e};q6.default=rCe});var G6=_(pi=>{"use strict";var pB=pi&&pi.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(pi,"__esModule",{value:!0});pi.setTextNodeValue=pi.createTextNode=pi.setStyle=pi.setAttribute=pi.removeChildNode=pi.insertBeforeNode=pi.appendChildNode=pi.createNode=pi.TEXT_NAME=void 0;var yEt=pB(am()),nCe=pB(HEe()),EEt=pB(qEe()),CEt=pB(H6()),wEt=pB(j6());pi.TEXT_NAME="#text";pi.createNode=t=>{var e;let r={nodeName:t,style:{},attributes:{},childNodes:[],parentNode:null,yogaNode:t==="ink-virtual-text"?void 0:yEt.default.Node.create()};return t==="ink-text"&&((e=r.yogaNode)===null||e===void 0||e.setMeasureFunc(IEt.bind(null,r))),r};pi.appendChildNode=(t,e)=>{var r;e.parentNode&&pi.removeChildNode(e.parentNode,e),e.parentNode=t,t.childNodes.push(e),e.yogaNode&&((r=t.yogaNode)===null||r===void 0||r.insertChild(e.yogaNode,t.yogaNode.getChildCount())),(t.nodeName==="ink-text"||t.nodeName==="ink-virtual-text")&&zk(t)};pi.insertBeforeNode=(t,e,r)=>{var o,a;e.parentNode&&pi.removeChildNode(e.parentNode,e),e.parentNode=t;let n=t.childNodes.indexOf(r);if(n>=0){t.childNodes.splice(n,0,e),e.yogaNode&&((o=t.yogaNode)===null||o===void 0||o.insertChild(e.yogaNode,n));return}t.childNodes.push(e),e.yogaNode&&((a=t.yogaNode)===null||a===void 0||a.insertChild(e.yogaNode,t.yogaNode.getChildCount())),(t.nodeName==="ink-text"||t.nodeName==="ink-virtual-text")&&zk(t)};pi.removeChildNode=(t,e)=>{var r,o;e.yogaNode&&((o=(r=e.parentNode)===null||r===void 0?void 0:r.yogaNode)===null||o===void 0||o.removeChild(e.yogaNode)),e.parentNode=null;let a=t.childNodes.indexOf(e);a>=0&&t.childNodes.splice(a,1),(t.nodeName==="ink-text"||t.nodeName==="ink-virtual-text")&&zk(t)};pi.setAttribute=(t,e,r)=>{t.attributes[e]=r};pi.setStyle=(t,e)=>{t.style=e,t.yogaNode&&EEt.default(t.yogaNode,e)};pi.createTextNode=t=>{let e={nodeName:"#text",nodeValue:t,yogaNode:void 0,parentNode:null,style:{}};return pi.setTextNodeValue(e,t),e};var IEt=function(t,e){var r,o;let a=t.nodeName==="#text"?t.nodeValue:wEt.default(t),n=nCe.default(a);if(n.width<=e||n.width>=1&&e>0&&e<1)return n;let u=(o=(r=t.style)===null||r===void 0?void 0:r.textWrap)!==null&&o!==void 0?o:"wrap",A=CEt.default(a,e,u);return nCe.default(A)},iCe=t=>{var e;if(!(!t||!t.parentNode))return(e=t.yogaNode)!==null&&e!==void 0?e:iCe(t.parentNode)},zk=t=>{let e=iCe(t);e?.markDirty()};pi.setTextNodeValue=(t,e)=>{typeof e!="string"&&(e=String(e)),t.nodeValue=e,zk(t)}});var cCe=_(hB=>{"use strict";var lCe=hB&&hB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(hB,"__esModule",{value:!0});var sCe=S6(),BEt=lCe(PEe()),oCe=lCe(am()),Oo=G6(),aCe=t=>{t?.unsetMeasureFunc(),t?.freeRecursive()};hB.default=BEt.default({schedulePassiveEffects:sCe.unstable_scheduleCallback,cancelPassiveEffects:sCe.unstable_cancelCallback,now:Date.now,getRootHostContext:()=>({isInsideText:!1}),prepareForCommit:()=>{},resetAfterCommit:t=>{if(t.isStaticDirty){t.isStaticDirty=!1,typeof t.onImmediateRender=="function"&&t.onImmediateRender();return}typeof t.onRender=="function"&&t.onRender()},getChildHostContext:(t,e)=>{let r=t.isInsideText,o=e==="ink-text"||e==="ink-virtual-text";return r===o?t:{isInsideText:o}},shouldSetTextContent:()=>!1,createInstance:(t,e,r,o)=>{if(o.isInsideText&&t==="ink-box")throw new Error(" can\u2019t be nested inside component");let a=t==="ink-text"&&o.isInsideText?"ink-virtual-text":t,n=Oo.createNode(a);for(let[u,A]of Object.entries(e))u!=="children"&&(u==="style"?Oo.setStyle(n,A):u==="internal_transform"?n.internal_transform=A:u==="internal_static"?n.internal_static=!0:Oo.setAttribute(n,u,A));return n},createTextInstance:(t,e,r)=>{if(!r.isInsideText)throw new Error(`Text string "${t}" must be rendered inside component`);return Oo.createTextNode(t)},resetTextContent:()=>{},hideTextInstance:t=>{Oo.setTextNodeValue(t,"")},unhideTextInstance:(t,e)=>{Oo.setTextNodeValue(t,e)},getPublicInstance:t=>t,hideInstance:t=>{var e;(e=t.yogaNode)===null||e===void 0||e.setDisplay(oCe.default.DISPLAY_NONE)},unhideInstance:t=>{var e;(e=t.yogaNode)===null||e===void 0||e.setDisplay(oCe.default.DISPLAY_FLEX)},appendInitialChild:Oo.appendChildNode,appendChild:Oo.appendChildNode,insertBefore:Oo.insertBeforeNode,finalizeInitialChildren:(t,e,r,o)=>(t.internal_static&&(o.isStaticDirty=!0,o.staticNode=t),!1),supportsMutation:!0,appendChildToContainer:Oo.appendChildNode,insertInContainerBefore:Oo.insertBeforeNode,removeChildFromContainer:(t,e)=>{Oo.removeChildNode(t,e),aCe(e.yogaNode)},prepareUpdate:(t,e,r,o,a)=>{t.internal_static&&(a.isStaticDirty=!0);let n={},u=Object.keys(o);for(let A of u)if(o[A]!==r[A]){if(A==="style"&&typeof o.style=="object"&&typeof r.style=="object"){let h=o.style,E=r.style,I=Object.keys(h);for(let v of I){if(v==="borderStyle"||v==="borderColor"){if(typeof n.style!="object"){let x={};n.style=x}n.style.borderStyle=h.borderStyle,n.style.borderColor=h.borderColor}if(h[v]!==E[v]){if(typeof n.style!="object"){let x={};n.style=x}n.style[v]=h[v]}}continue}n[A]=o[A]}return n},commitUpdate:(t,e)=>{for(let[r,o]of Object.entries(e))r!=="children"&&(r==="style"?Oo.setStyle(t,o):r==="internal_transform"?t.internal_transform=o:r==="internal_static"?t.internal_static=!0:Oo.setAttribute(t,r,o))},commitTextUpdate:(t,e,r)=>{Oo.setTextNodeValue(t,r)},removeChild:(t,e)=>{Oo.removeChildNode(t,e),aCe(e.yogaNode)}})});var ACe=_((LKt,uCe)=>{"use strict";uCe.exports=(t,e=1,r)=>{if(r={indent:" ",includeEmptyLines:!1,...r},typeof t!="string")throw new TypeError(`Expected \`input\` to be a \`string\`, got \`${typeof t}\``);if(typeof e!="number")throw new TypeError(`Expected \`count\` to be a \`number\`, got \`${typeof e}\``);if(typeof r.indent!="string")throw new TypeError(`Expected \`options.indent\` to be a \`string\`, got \`${typeof r.indent}\``);if(e===0)return t;let o=r.includeEmptyLines?/^/gm:/^(?!\s*$)/gm;return t.replace(o,r.indent.repeat(e))}});var fCe=_(gB=>{"use strict";var vEt=gB&&gB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(gB,"__esModule",{value:!0});var Xk=vEt(am());gB.default=t=>t.getComputedWidth()-t.getComputedPadding(Xk.default.EDGE_LEFT)-t.getComputedPadding(Xk.default.EDGE_RIGHT)-t.getComputedBorder(Xk.default.EDGE_LEFT)-t.getComputedBorder(Xk.default.EDGE_RIGHT)});var pCe=_((MKt,DEt)=>{DEt.exports={single:{topLeft:"\u250C",topRight:"\u2510",bottomRight:"\u2518",bottomLeft:"\u2514",vertical:"\u2502",horizontal:"\u2500"},double:{topLeft:"\u2554",topRight:"\u2557",bottomRight:"\u255D",bottomLeft:"\u255A",vertical:"\u2551",horizontal:"\u2550"},round:{topLeft:"\u256D",topRight:"\u256E",bottomRight:"\u256F",bottomLeft:"\u2570",vertical:"\u2502",horizontal:"\u2500"},bold:{topLeft:"\u250F",topRight:"\u2513",bottomRight:"\u251B",bottomLeft:"\u2517",vertical:"\u2503",horizontal:"\u2501"},singleDouble:{topLeft:"\u2553",topRight:"\u2556",bottomRight:"\u255C",bottomLeft:"\u2559",vertical:"\u2551",horizontal:"\u2500"},doubleSingle:{topLeft:"\u2552",topRight:"\u2555",bottomRight:"\u255B",bottomLeft:"\u2558",vertical:"\u2502",horizontal:"\u2550"},classic:{topLeft:"+",topRight:"+",bottomRight:"+",bottomLeft:"+",vertical:"|",horizontal:"-"}}});var gCe=_((UKt,Y6)=>{"use strict";var hCe=pCe();Y6.exports=hCe;Y6.exports.default=hCe});var mCe=_((_Kt,dCe)=>{"use strict";var SEt=(t,e,r)=>{let o=t.indexOf(e);if(o===-1)return t;let a=e.length,n=0,u="";do u+=t.substr(n,o-n)+e+r,n=o+a,o=t.indexOf(e,n);while(o!==-1);return u+=t.substr(n),u},PEt=(t,e,r,o)=>{let a=0,n="";do{let u=t[o-1]==="\r";n+=t.substr(a,(u?o-1:o)-a)+e+(u?`\r +`:` +`)+r,a=o+1,o=t.indexOf(` +`,a)}while(o!==-1);return n+=t.substr(a),n};dCe.exports={stringReplaceAll:SEt,stringEncaseCRLFWithFirstIndex:PEt}});var ICe=_((HKt,wCe)=>{"use strict";var bEt=/(?:\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi,yCe=/(?:^|\.)(\w+)(?:\(([^)]*)\))?/g,xEt=/^(['"])((?:\\.|(?!\1)[^\\])*)\1$/,kEt=/\\(u(?:[a-f\d]{4}|{[a-f\d]{1,6}})|x[a-f\d]{2}|.)|([^\\])/gi,QEt=new Map([["n",` +`],["r","\r"],["t"," "],["b","\b"],["f","\f"],["v","\v"],["0","\0"],["\\","\\"],["e","\x1B"],["a","\x07"]]);function CCe(t){let e=t[0]==="u",r=t[1]==="{";return e&&!r&&t.length===5||t[0]==="x"&&t.length===3?String.fromCharCode(parseInt(t.slice(1),16)):e&&r?String.fromCodePoint(parseInt(t.slice(2,-1),16)):QEt.get(t)||t}function FEt(t,e){let r=[],o=e.trim().split(/\s*,\s*/g),a;for(let n of o){let u=Number(n);if(!Number.isNaN(u))r.push(u);else if(a=n.match(xEt))r.push(a[2].replace(kEt,(A,p,h)=>p?CCe(p):h));else throw new Error(`Invalid Chalk template style argument: ${n} (in style '${t}')`)}return r}function REt(t){yCe.lastIndex=0;let e=[],r;for(;(r=yCe.exec(t))!==null;){let o=r[1];if(r[2]){let a=FEt(o,r[2]);e.push([o].concat(a))}else e.push([o])}return e}function ECe(t,e){let r={};for(let a of e)for(let n of a.styles)r[n[0]]=a.inverse?null:n.slice(1);let o=t;for(let[a,n]of Object.entries(r))if(!!Array.isArray(n)){if(!(a in o))throw new Error(`Unknown Chalk style: ${a}`);o=n.length>0?o[a](...n):o[a]}return o}wCe.exports=(t,e)=>{let r=[],o=[],a=[];if(e.replace(bEt,(n,u,A,p,h,E)=>{if(u)a.push(CCe(u));else if(p){let I=a.join("");a=[],o.push(r.length===0?I:ECe(t,r)(I)),r.push({inverse:A,styles:REt(p)})}else if(h){if(r.length===0)throw new Error("Found extraneous } in Chalk template literal");o.push(ECe(t,r)(a.join(""))),a=[],r.pop()}else a.push(E)}),o.push(a.join("")),r.length>0){let n=`Chalk template literal is missing ${r.length} closing bracket${r.length===1?"":"s"} (\`}\`)`;throw new Error(n)}return o.join("")}});var rQ=_((qKt,bCe)=>{"use strict";var dB=DI(),{stdout:K6,stderr:V6}=dN(),{stringReplaceAll:TEt,stringEncaseCRLFWithFirstIndex:NEt}=mCe(),{isArray:Zk}=Array,vCe=["ansi","ansi","ansi256","ansi16m"],HC=Object.create(null),LEt=(t,e={})=>{if(e.level&&!(Number.isInteger(e.level)&&e.level>=0&&e.level<=3))throw new Error("The `level` option should be an integer from 0 to 3");let r=K6?K6.level:0;t.level=e.level===void 0?r:e.level},J6=class{constructor(e){return DCe(e)}},DCe=t=>{let e={};return LEt(e,t),e.template=(...r)=>PCe(e.template,...r),Object.setPrototypeOf(e,$k.prototype),Object.setPrototypeOf(e.template,e),e.template.constructor=()=>{throw new Error("`chalk.constructor()` is deprecated. Use `new chalk.Instance()` instead.")},e.template.Instance=J6,e.template};function $k(t){return DCe(t)}for(let[t,e]of Object.entries(dB))HC[t]={get(){let r=eQ(this,z6(e.open,e.close,this._styler),this._isEmpty);return Object.defineProperty(this,t,{value:r}),r}};HC.visible={get(){let t=eQ(this,this._styler,!0);return Object.defineProperty(this,"visible",{value:t}),t}};var SCe=["rgb","hex","keyword","hsl","hsv","hwb","ansi","ansi256"];for(let t of SCe)HC[t]={get(){let{level:e}=this;return function(...r){let o=z6(dB.color[vCe[e]][t](...r),dB.color.close,this._styler);return eQ(this,o,this._isEmpty)}}};for(let t of SCe){let e="bg"+t[0].toUpperCase()+t.slice(1);HC[e]={get(){let{level:r}=this;return function(...o){let a=z6(dB.bgColor[vCe[r]][t](...o),dB.bgColor.close,this._styler);return eQ(this,a,this._isEmpty)}}}}var OEt=Object.defineProperties(()=>{},{...HC,level:{enumerable:!0,get(){return this._generator.level},set(t){this._generator.level=t}}}),z6=(t,e,r)=>{let o,a;return r===void 0?(o=t,a=e):(o=r.openAll+t,a=e+r.closeAll),{open:t,close:e,openAll:o,closeAll:a,parent:r}},eQ=(t,e,r)=>{let o=(...a)=>Zk(a[0])&&Zk(a[0].raw)?BCe(o,PCe(o,...a)):BCe(o,a.length===1?""+a[0]:a.join(" "));return Object.setPrototypeOf(o,OEt),o._generator=t,o._styler=e,o._isEmpty=r,o},BCe=(t,e)=>{if(t.level<=0||!e)return t._isEmpty?"":e;let r=t._styler;if(r===void 0)return e;let{openAll:o,closeAll:a}=r;if(e.indexOf("\x1B")!==-1)for(;r!==void 0;)e=TEt(e,r.close,r.open),r=r.parent;let n=e.indexOf(` +`);return n!==-1&&(e=NEt(e,a,o,n)),o+e+a},W6,PCe=(t,...e)=>{let[r]=e;if(!Zk(r)||!Zk(r.raw))return e.join(" ");let o=e.slice(1),a=[r.raw[0]];for(let n=1;n{"use strict";var MEt=yB&&yB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(yB,"__esModule",{value:!0});var mB=MEt(rQ()),UEt=/^(rgb|hsl|hsv|hwb)\(\s?(\d+),\s?(\d+),\s?(\d+)\s?\)$/,_Et=/^(ansi|ansi256)\(\s?(\d+)\s?\)$/,nQ=(t,e)=>e==="foreground"?t:"bg"+t[0].toUpperCase()+t.slice(1);yB.default=(t,e,r)=>{if(!e)return t;if(e in mB.default){let a=nQ(e,r);return mB.default[a](t)}if(e.startsWith("#")){let a=nQ("hex",r);return mB.default[a](e)(t)}if(e.startsWith("ansi")){let a=_Et.exec(e);if(!a)return t;let n=nQ(a[1],r),u=Number(a[2]);return mB.default[n](u)(t)}if(e.startsWith("rgb")||e.startsWith("hsl")||e.startsWith("hsv")||e.startsWith("hwb")){let a=UEt.exec(e);if(!a)return t;let n=nQ(a[1],r),u=Number(a[2]),A=Number(a[3]),p=Number(a[4]);return mB.default[n](u,A,p)(t)}return t}});var kCe=_(EB=>{"use strict";var xCe=EB&&EB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(EB,"__esModule",{value:!0});var HEt=xCe(gCe()),Z6=xCe(X6());EB.default=(t,e,r,o)=>{if(typeof r.style.borderStyle=="string"){let a=r.yogaNode.getComputedWidth(),n=r.yogaNode.getComputedHeight(),u=r.style.borderColor,A=HEt.default[r.style.borderStyle],p=Z6.default(A.topLeft+A.horizontal.repeat(a-2)+A.topRight,u,"foreground"),h=(Z6.default(A.vertical,u,"foreground")+` +`).repeat(n-2),E=Z6.default(A.bottomLeft+A.horizontal.repeat(a-2)+A.bottomRight,u,"foreground");o.write(t,e,p,{transformers:[]}),o.write(t,e+1,h,{transformers:[]}),o.write(t+a-1,e+1,h,{transformers:[]}),o.write(t,e+n-1,E,{transformers:[]})}}});var FCe=_(CB=>{"use strict";var lm=CB&&CB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(CB,"__esModule",{value:!0});var qEt=lm(am()),jEt=lm(N6()),GEt=lm(ACe()),YEt=lm(H6()),WEt=lm(fCe()),KEt=lm(j6()),VEt=lm(kCe()),JEt=(t,e)=>{var r;let o=(r=t.childNodes[0])===null||r===void 0?void 0:r.yogaNode;if(o){let a=o.getComputedLeft(),n=o.getComputedTop();e=` +`.repeat(n)+GEt.default(e,a)}return e},QCe=(t,e,r)=>{var o;let{offsetX:a=0,offsetY:n=0,transformers:u=[],skipStaticElements:A}=r;if(A&&t.internal_static)return;let{yogaNode:p}=t;if(p){if(p.getDisplay()===qEt.default.DISPLAY_NONE)return;let h=a+p.getComputedLeft(),E=n+p.getComputedTop(),I=u;if(typeof t.internal_transform=="function"&&(I=[t.internal_transform,...u]),t.nodeName==="ink-text"){let v=KEt.default(t);if(v.length>0){let x=jEt.default(v),C=WEt.default(p);if(x>C){let R=(o=t.style.textWrap)!==null&&o!==void 0?o:"wrap";v=YEt.default(v,C,R)}v=JEt(t,v),e.write(h,E,v,{transformers:I})}return}if(t.nodeName==="ink-box"&&VEt.default(h,E,t,e),t.nodeName==="ink-root"||t.nodeName==="ink-box")for(let v of t.childNodes)QCe(v,e,{offsetX:h,offsetY:E,transformers:I,skipStaticElements:A})}};CB.default=QCe});var TCe=_((WKt,RCe)=>{"use strict";RCe.exports=t=>{t=Object.assign({onlyFirst:!1},t);let e=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:[a-zA-Z\\d]*(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(e,t.onlyFirst?void 0:"g")}});var LCe=_((KKt,$6)=>{"use strict";var zEt=TCe(),NCe=t=>typeof t=="string"?t.replace(zEt(),""):t;$6.exports=NCe;$6.exports.default=NCe});var UCe=_((VKt,MCe)=>{"use strict";var OCe="[\uD800-\uDBFF][\uDC00-\uDFFF]";MCe.exports=t=>t&&t.exact?new RegExp(`^${OCe}$`):new RegExp(OCe,"g")});var HCe=_((JKt,eq)=>{"use strict";var XEt=LCe(),ZEt=UCe(),_Ce=t=>XEt(t).replace(ZEt()," ").length;eq.exports=_Ce;eq.exports.default=_Ce});var GCe=_(wB=>{"use strict";var jCe=wB&&wB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(wB,"__esModule",{value:!0});var qCe=jCe(U6()),$Et=jCe(HCe()),tq=class{constructor(e){this.writes=[];let{width:r,height:o}=e;this.width=r,this.height=o}write(e,r,o,a){let{transformers:n}=a;!o||this.writes.push({x:e,y:r,text:o,transformers:n})}get(){let e=[];for(let o=0;oo.trimRight()).join(` +`),height:e.length}}};wB.default=tq});var KCe=_(IB=>{"use strict";var rq=IB&&IB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(IB,"__esModule",{value:!0});var eCt=rq(am()),YCe=rq(FCe()),WCe=rq(GCe());IB.default=(t,e)=>{var r;if(t.yogaNode.setWidth(e),t.yogaNode){t.yogaNode.calculateLayout(void 0,void 0,eCt.default.DIRECTION_LTR);let o=new WCe.default({width:t.yogaNode.getComputedWidth(),height:t.yogaNode.getComputedHeight()});YCe.default(t,o,{skipStaticElements:!0});let a;!((r=t.staticNode)===null||r===void 0)&&r.yogaNode&&(a=new WCe.default({width:t.staticNode.yogaNode.getComputedWidth(),height:t.staticNode.yogaNode.getComputedHeight()}),YCe.default(t.staticNode,a,{skipStaticElements:!1}));let{output:n,height:u}=o.get();return{output:n,outputHeight:u,staticOutput:a?`${a.get().output} +`:""}}return{output:"",outputHeight:0,staticOutput:""}}});var XCe=_((ZKt,zCe)=>{"use strict";var VCe=ve("stream"),JCe=["assert","count","countReset","debug","dir","dirxml","error","group","groupCollapsed","groupEnd","info","log","table","time","timeEnd","timeLog","trace","warn"],nq={},tCt=t=>{let e=new VCe.PassThrough,r=new VCe.PassThrough;e.write=a=>t("stdout",a),r.write=a=>t("stderr",a);let o=new console.Console(e,r);for(let a of JCe)nq[a]=console[a],console[a]=o[a];return()=>{for(let a of JCe)console[a]=nq[a];nq={}}};zCe.exports=tCt});var sq=_(iq=>{"use strict";Object.defineProperty(iq,"__esModule",{value:!0});iq.default=new WeakMap});var aq=_(oq=>{"use strict";Object.defineProperty(oq,"__esModule",{value:!0});var rCt=on(),ZCe=rCt.createContext({exit:()=>{}});ZCe.displayName="InternalAppContext";oq.default=ZCe});var cq=_(lq=>{"use strict";Object.defineProperty(lq,"__esModule",{value:!0});var nCt=on(),$Ce=nCt.createContext({stdin:void 0,setRawMode:()=>{},isRawModeSupported:!1,internal_exitOnCtrlC:!0});$Ce.displayName="InternalStdinContext";lq.default=$Ce});var Aq=_(uq=>{"use strict";Object.defineProperty(uq,"__esModule",{value:!0});var iCt=on(),ewe=iCt.createContext({stdout:void 0,write:()=>{}});ewe.displayName="InternalStdoutContext";uq.default=ewe});var pq=_(fq=>{"use strict";Object.defineProperty(fq,"__esModule",{value:!0});var sCt=on(),twe=sCt.createContext({stderr:void 0,write:()=>{}});twe.displayName="InternalStderrContext";fq.default=twe});var iQ=_(hq=>{"use strict";Object.defineProperty(hq,"__esModule",{value:!0});var oCt=on(),rwe=oCt.createContext({activeId:void 0,add:()=>{},remove:()=>{},activate:()=>{},deactivate:()=>{},enableFocus:()=>{},disableFocus:()=>{},focusNext:()=>{},focusPrevious:()=>{}});rwe.displayName="InternalFocusContext";hq.default=rwe});var iwe=_((sVt,nwe)=>{"use strict";var aCt=/[|\\{}()[\]^$+*?.-]/g;nwe.exports=t=>{if(typeof t!="string")throw new TypeError("Expected a string");return t.replace(aCt,"\\$&")}});var lwe=_((oVt,awe)=>{"use strict";var lCt=iwe(),cCt=typeof process=="object"&&process&&typeof process.cwd=="function"?process.cwd():".",owe=[].concat(ve("module").builtinModules,"bootstrap_node","node").map(t=>new RegExp(`(?:\\((?:node:)?${t}(?:\\.js)?:\\d+:\\d+\\)$|^\\s*at (?:node:)?${t}(?:\\.js)?:\\d+:\\d+$)`));owe.push(/\((?:node:)?internal\/[^:]+:\d+:\d+\)$/,/\s*at (?:node:)?internal\/[^:]+:\d+:\d+$/,/\/\.node-spawn-wrap-\w+-\w+\/node:\d+:\d+\)?$/);var BB=class{constructor(e){e={ignoredPackages:[],...e},"internals"in e||(e.internals=BB.nodeInternals()),"cwd"in e||(e.cwd=cCt),this._cwd=e.cwd.replace(/\\/g,"/"),this._internals=[].concat(e.internals,uCt(e.ignoredPackages)),this._wrapCallSite=e.wrapCallSite||!1}static nodeInternals(){return[...owe]}clean(e,r=0){r=" ".repeat(r),Array.isArray(e)||(e=e.split(` +`)),!/^\s*at /.test(e[0])&&/^\s*at /.test(e[1])&&(e=e.slice(1));let o=!1,a=null,n=[];return e.forEach(u=>{if(u=u.replace(/\\/g,"/"),this._internals.some(p=>p.test(u)))return;let A=/^\s*at /.test(u);o?u=u.trimEnd().replace(/^(\s+)at /,"$1"):(u=u.trim(),A&&(u=u.slice(3))),u=u.replace(`${this._cwd}/`,""),u&&(A?(a&&(n.push(a),a=null),n.push(u)):(o=!0,a=u))}),n.map(u=>`${r}${u} +`).join("")}captureString(e,r=this.captureString){typeof e=="function"&&(r=e,e=1/0);let{stackTraceLimit:o}=Error;e&&(Error.stackTraceLimit=e);let a={};Error.captureStackTrace(a,r);let{stack:n}=a;return Error.stackTraceLimit=o,this.clean(n)}capture(e,r=this.capture){typeof e=="function"&&(r=e,e=1/0);let{prepareStackTrace:o,stackTraceLimit:a}=Error;Error.prepareStackTrace=(A,p)=>this._wrapCallSite?p.map(this._wrapCallSite):p,e&&(Error.stackTraceLimit=e);let n={};Error.captureStackTrace(n,r);let{stack:u}=n;return Object.assign(Error,{prepareStackTrace:o,stackTraceLimit:a}),u}at(e=this.at){let[r]=this.capture(1,e);if(!r)return{};let o={line:r.getLineNumber(),column:r.getColumnNumber()};swe(o,r.getFileName(),this._cwd),r.isConstructor()&&(o.constructor=!0),r.isEval()&&(o.evalOrigin=r.getEvalOrigin()),r.isNative()&&(o.native=!0);let a;try{a=r.getTypeName()}catch{}a&&a!=="Object"&&a!=="[object Object]"&&(o.type=a);let n=r.getFunctionName();n&&(o.function=n);let u=r.getMethodName();return u&&n!==u&&(o.method=u),o}parseLine(e){let r=e&&e.match(ACt);if(!r)return null;let o=r[1]==="new",a=r[2],n=r[3],u=r[4],A=Number(r[5]),p=Number(r[6]),h=r[7],E=r[8],I=r[9],v=r[10]==="native",x=r[11]===")",C,R={};if(E&&(R.line=Number(E)),I&&(R.column=Number(I)),x&&h){let L=0;for(let U=h.length-1;U>0;U--)if(h.charAt(U)===")")L++;else if(h.charAt(U)==="("&&h.charAt(U-1)===" "&&(L--,L===-1&&h.charAt(U-1)===" ")){let J=h.slice(0,U-1);h=h.slice(U+1),a+=` (${J}`;break}}if(a){let L=a.match(fCt);L&&(a=L[1],C=L[2])}return swe(R,h,this._cwd),o&&(R.constructor=!0),n&&(R.evalOrigin=n,R.evalLine=A,R.evalColumn=p,R.evalFile=u&&u.replace(/\\/g,"/")),v&&(R.native=!0),a&&(R.function=a),C&&a!==C&&(R.method=C),R}};function swe(t,e,r){e&&(e=e.replace(/\\/g,"/"),e.startsWith(`${r}/`)&&(e=e.slice(r.length+1)),t.file=e)}function uCt(t){if(t.length===0)return[];let e=t.map(r=>lCt(r));return new RegExp(`[/\\\\]node_modules[/\\\\](?:${e.join("|")})[/\\\\][^:]+:\\d+:\\d+`)}var ACt=new RegExp("^(?:\\s*at )?(?:(new) )?(?:(.*?) \\()?(?:eval at ([^ ]+) \\((.+?):(\\d+):(\\d+)\\), )?(?:(.+?):(\\d+):(\\d+)|(native))(\\)?)$"),fCt=/^(.*?) \[as (.*?)\]$/;awe.exports=BB});var uwe=_((aVt,cwe)=>{"use strict";cwe.exports=(t,e)=>t.replace(/^\t+/gm,r=>" ".repeat(r.length*(e||2)))});var fwe=_((lVt,Awe)=>{"use strict";var pCt=uwe(),hCt=(t,e)=>{let r=[],o=t-e,a=t+e;for(let n=o;n<=a;n++)r.push(n);return r};Awe.exports=(t,e,r)=>{if(typeof t!="string")throw new TypeError("Source code is missing.");if(!e||e<1)throw new TypeError("Line number must start from `1`.");if(t=pCt(t).split(/\r?\n/),!(e>t.length))return r={around:3,...r},hCt(e,r.around).filter(o=>t[o-1]!==void 0).map(o=>({line:o,value:t[o-1]}))}});var sQ=_(ru=>{"use strict";var gCt=ru&&ru.__createBinding||(Object.create?function(t,e,r,o){o===void 0&&(o=r),Object.defineProperty(t,o,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,o){o===void 0&&(o=r),t[o]=e[r]}),dCt=ru&&ru.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),mCt=ru&&ru.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.hasOwnProperty.call(t,r)&&gCt(e,t,r);return dCt(e,t),e},yCt=ru&&ru.__rest||function(t,e){var r={};for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&e.indexOf(o)<0&&(r[o]=t[o]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var a=0,o=Object.getOwnPropertySymbols(t);a{var{children:r}=t,o=yCt(t,["children"]);let a=Object.assign(Object.assign({},o),{marginLeft:o.marginLeft||o.marginX||o.margin||0,marginRight:o.marginRight||o.marginX||o.margin||0,marginTop:o.marginTop||o.marginY||o.margin||0,marginBottom:o.marginBottom||o.marginY||o.margin||0,paddingLeft:o.paddingLeft||o.paddingX||o.padding||0,paddingRight:o.paddingRight||o.paddingX||o.padding||0,paddingTop:o.paddingTop||o.paddingY||o.padding||0,paddingBottom:o.paddingBottom||o.paddingY||o.padding||0});return pwe.default.createElement("ink-box",{ref:e,style:a},r)});gq.displayName="Box";gq.defaultProps={flexDirection:"row",flexGrow:0,flexShrink:1};ru.default=gq});var yq=_(vB=>{"use strict";var dq=vB&&vB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(vB,"__esModule",{value:!0});var ECt=dq(on()),qC=dq(rQ()),hwe=dq(X6()),mq=({color:t,backgroundColor:e,dimColor:r,bold:o,italic:a,underline:n,strikethrough:u,inverse:A,wrap:p,children:h})=>{if(h==null)return null;let E=I=>(r&&(I=qC.default.dim(I)),t&&(I=hwe.default(I,t,"foreground")),e&&(I=hwe.default(I,e,"background")),o&&(I=qC.default.bold(I)),a&&(I=qC.default.italic(I)),n&&(I=qC.default.underline(I)),u&&(I=qC.default.strikethrough(I)),A&&(I=qC.default.inverse(I)),I);return ECt.default.createElement("ink-text",{style:{flexGrow:0,flexShrink:1,flexDirection:"row",textWrap:p},internal_transform:E},h)};mq.displayName="Text";mq.defaultProps={dimColor:!1,bold:!1,italic:!1,underline:!1,strikethrough:!1,wrap:"wrap"};vB.default=mq});var ywe=_(nu=>{"use strict";var CCt=nu&&nu.__createBinding||(Object.create?function(t,e,r,o){o===void 0&&(o=r),Object.defineProperty(t,o,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,o){o===void 0&&(o=r),t[o]=e[r]}),wCt=nu&&nu.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),ICt=nu&&nu.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.hasOwnProperty.call(t,r)&&CCt(e,t,r);return wCt(e,t),e},DB=nu&&nu.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(nu,"__esModule",{value:!0});var gwe=ICt(ve("fs")),fs=DB(on()),dwe=DB(lwe()),BCt=DB(fwe()),Zf=DB(sQ()),hA=DB(yq()),mwe=new dwe.default({cwd:process.cwd(),internals:dwe.default.nodeInternals()}),vCt=({error:t})=>{let e=t.stack?t.stack.split(` +`).slice(1):void 0,r=e?mwe.parseLine(e[0]):void 0,o,a=0;if(r?.file&&r?.line&&gwe.existsSync(r.file)){let n=gwe.readFileSync(r.file,"utf8");if(o=BCt.default(n,r.line),o)for(let{line:u}of o)a=Math.max(a,String(u).length)}return fs.default.createElement(Zf.default,{flexDirection:"column",padding:1},fs.default.createElement(Zf.default,null,fs.default.createElement(hA.default,{backgroundColor:"red",color:"white"}," ","ERROR"," "),fs.default.createElement(hA.default,null," ",t.message)),r&&fs.default.createElement(Zf.default,{marginTop:1},fs.default.createElement(hA.default,{dimColor:!0},r.file,":",r.line,":",r.column)),r&&o&&fs.default.createElement(Zf.default,{marginTop:1,flexDirection:"column"},o.map(({line:n,value:u})=>fs.default.createElement(Zf.default,{key:n},fs.default.createElement(Zf.default,{width:a+1},fs.default.createElement(hA.default,{dimColor:n!==r.line,backgroundColor:n===r.line?"red":void 0,color:n===r.line?"white":void 0},String(n).padStart(a," "),":")),fs.default.createElement(hA.default,{key:n,backgroundColor:n===r.line?"red":void 0,color:n===r.line?"white":void 0}," "+u)))),t.stack&&fs.default.createElement(Zf.default,{marginTop:1,flexDirection:"column"},t.stack.split(` +`).slice(1).map(n=>{let u=mwe.parseLine(n);return u?fs.default.createElement(Zf.default,{key:n},fs.default.createElement(hA.default,{dimColor:!0},"- "),fs.default.createElement(hA.default,{dimColor:!0,bold:!0},u.function),fs.default.createElement(hA.default,{dimColor:!0,color:"gray"}," ","(",u.file,":",u.line,":",u.column,")")):fs.default.createElement(Zf.default,{key:n},fs.default.createElement(hA.default,{dimColor:!0},"- "),fs.default.createElement(hA.default,{dimColor:!0,bold:!0},n))})))};nu.default=vCt});var Cwe=_(iu=>{"use strict";var DCt=iu&&iu.__createBinding||(Object.create?function(t,e,r,o){o===void 0&&(o=r),Object.defineProperty(t,o,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,o){o===void 0&&(o=r),t[o]=e[r]}),SCt=iu&&iu.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),PCt=iu&&iu.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.hasOwnProperty.call(t,r)&&DCt(e,t,r);return SCt(e,t),e},um=iu&&iu.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(iu,"__esModule",{value:!0});var cm=PCt(on()),Ewe=um(g6()),bCt=um(aq()),xCt=um(cq()),kCt=um(Aq()),QCt=um(pq()),FCt=um(iQ()),RCt=um(ywe()),TCt=" ",NCt="\x1B[Z",LCt="\x1B",oQ=class extends cm.PureComponent{constructor(){super(...arguments),this.state={isFocusEnabled:!0,activeFocusId:void 0,focusables:[],error:void 0},this.rawModeEnabledCount=0,this.handleSetRawMode=e=>{let{stdin:r}=this.props;if(!this.isRawModeSupported())throw r===process.stdin?new Error(`Raw mode is not supported on the current process.stdin, which Ink uses as input stream by default. +Read about how to prevent this error on https://github.com/vadimdemedes/ink/#israwmodesupported`):new Error(`Raw mode is not supported on the stdin provided to Ink. +Read about how to prevent this error on https://github.com/vadimdemedes/ink/#israwmodesupported`);if(r.setEncoding("utf8"),e){this.rawModeEnabledCount===0&&(r.addListener("data",this.handleInput),r.resume(),r.setRawMode(!0)),this.rawModeEnabledCount++;return}--this.rawModeEnabledCount===0&&(r.setRawMode(!1),r.removeListener("data",this.handleInput),r.pause())},this.handleInput=e=>{e===""&&this.props.exitOnCtrlC&&this.handleExit(),e===LCt&&this.state.activeFocusId&&this.setState({activeFocusId:void 0}),this.state.isFocusEnabled&&this.state.focusables.length>0&&(e===TCt&&this.focusNext(),e===NCt&&this.focusPrevious())},this.handleExit=e=>{this.isRawModeSupported()&&this.handleSetRawMode(!1),this.props.onExit(e)},this.enableFocus=()=>{this.setState({isFocusEnabled:!0})},this.disableFocus=()=>{this.setState({isFocusEnabled:!1})},this.focusNext=()=>{this.setState(e=>{let r=e.focusables[0].id;return{activeFocusId:this.findNextFocusable(e)||r}})},this.focusPrevious=()=>{this.setState(e=>{let r=e.focusables[e.focusables.length-1].id;return{activeFocusId:this.findPreviousFocusable(e)||r}})},this.addFocusable=(e,{autoFocus:r})=>{this.setState(o=>{let a=o.activeFocusId;return!a&&r&&(a=e),{activeFocusId:a,focusables:[...o.focusables,{id:e,isActive:!0}]}})},this.removeFocusable=e=>{this.setState(r=>({activeFocusId:r.activeFocusId===e?void 0:r.activeFocusId,focusables:r.focusables.filter(o=>o.id!==e)}))},this.activateFocusable=e=>{this.setState(r=>({focusables:r.focusables.map(o=>o.id!==e?o:{id:e,isActive:!0})}))},this.deactivateFocusable=e=>{this.setState(r=>({activeFocusId:r.activeFocusId===e?void 0:r.activeFocusId,focusables:r.focusables.map(o=>o.id!==e?o:{id:e,isActive:!1})}))},this.findNextFocusable=e=>{let r=e.focusables.findIndex(o=>o.id===e.activeFocusId);for(let o=r+1;o{let r=e.focusables.findIndex(o=>o.id===e.activeFocusId);for(let o=r-1;o>=0;o--)if(e.focusables[o].isActive)return e.focusables[o].id}}static getDerivedStateFromError(e){return{error:e}}isRawModeSupported(){return this.props.stdin.isTTY}render(){return cm.default.createElement(bCt.default.Provider,{value:{exit:this.handleExit}},cm.default.createElement(xCt.default.Provider,{value:{stdin:this.props.stdin,setRawMode:this.handleSetRawMode,isRawModeSupported:this.isRawModeSupported(),internal_exitOnCtrlC:this.props.exitOnCtrlC}},cm.default.createElement(kCt.default.Provider,{value:{stdout:this.props.stdout,write:this.props.writeToStdout}},cm.default.createElement(QCt.default.Provider,{value:{stderr:this.props.stderr,write:this.props.writeToStderr}},cm.default.createElement(FCt.default.Provider,{value:{activeId:this.state.activeFocusId,add:this.addFocusable,remove:this.removeFocusable,activate:this.activateFocusable,deactivate:this.deactivateFocusable,enableFocus:this.enableFocus,disableFocus:this.disableFocus,focusNext:this.focusNext,focusPrevious:this.focusPrevious}},this.state.error?cm.default.createElement(RCt.default,{error:this.state.error}):this.props.children)))))}componentDidMount(){Ewe.default.hide(this.props.stdout)}componentWillUnmount(){Ewe.default.show(this.props.stdout),this.isRawModeSupported()&&this.handleSetRawMode(!1)}componentDidCatch(e){this.handleExit(e)}};iu.default=oQ;oQ.displayName="InternalApp"});var Bwe=_(su=>{"use strict";var OCt=su&&su.__createBinding||(Object.create?function(t,e,r,o){o===void 0&&(o=r),Object.defineProperty(t,o,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,o){o===void 0&&(o=r),t[o]=e[r]}),MCt=su&&su.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),UCt=su&&su.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.hasOwnProperty.call(t,r)&&OCt(e,t,r);return MCt(e,t),e},ou=su&&su.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(su,"__esModule",{value:!0});var _Ct=ou(on()),wwe=lM(),HCt=ou(lEe()),qCt=ou(u6()),jCt=ou(hEe()),GCt=ou(dEe()),Eq=ou(cCe()),YCt=ou(KCe()),WCt=ou(h6()),KCt=ou(XCe()),VCt=UCt(G6()),JCt=ou(sq()),zCt=ou(Cwe()),jC=process.env.CI==="false"?!1:jCt.default,Iwe=()=>{},Cq=class{constructor(e){this.resolveExitPromise=()=>{},this.rejectExitPromise=()=>{},this.unsubscribeExit=()=>{},this.onRender=()=>{if(this.isUnmounted)return;let{output:r,outputHeight:o,staticOutput:a}=YCt.default(this.rootNode,this.options.stdout.columns||80),n=a&&a!==` +`;if(this.options.debug){n&&(this.fullStaticOutput+=a),this.options.stdout.write(this.fullStaticOutput+r);return}if(jC){n&&this.options.stdout.write(a),this.lastOutput=r;return}if(n&&(this.fullStaticOutput+=a),o>=this.options.stdout.rows){this.options.stdout.write(qCt.default.clearTerminal+this.fullStaticOutput+r),this.lastOutput=r;return}n&&(this.log.clear(),this.options.stdout.write(a),this.log(r)),!n&&r!==this.lastOutput&&this.throttledLog(r),this.lastOutput=r},GCt.default(this),this.options=e,this.rootNode=VCt.createNode("ink-root"),this.rootNode.onRender=e.debug?this.onRender:wwe(this.onRender,32,{leading:!0,trailing:!0}),this.rootNode.onImmediateRender=this.onRender,this.log=HCt.default.create(e.stdout),this.throttledLog=e.debug?this.log:wwe(this.log,void 0,{leading:!0,trailing:!0}),this.isUnmounted=!1,this.lastOutput="",this.fullStaticOutput="",this.container=Eq.default.createContainer(this.rootNode,!1,!1),this.unsubscribeExit=WCt.default(this.unmount,{alwaysLast:!1}),e.patchConsole&&this.patchConsole(),jC||(e.stdout.on("resize",this.onRender),this.unsubscribeResize=()=>{e.stdout.off("resize",this.onRender)})}render(e){let r=_Ct.default.createElement(zCt.default,{stdin:this.options.stdin,stdout:this.options.stdout,stderr:this.options.stderr,writeToStdout:this.writeToStdout,writeToStderr:this.writeToStderr,exitOnCtrlC:this.options.exitOnCtrlC,onExit:this.unmount},e);Eq.default.updateContainer(r,this.container,null,Iwe)}writeToStdout(e){if(!this.isUnmounted){if(this.options.debug){this.options.stdout.write(e+this.fullStaticOutput+this.lastOutput);return}if(jC){this.options.stdout.write(e);return}this.log.clear(),this.options.stdout.write(e),this.log(this.lastOutput)}}writeToStderr(e){if(!this.isUnmounted){if(this.options.debug){this.options.stderr.write(e),this.options.stdout.write(this.fullStaticOutput+this.lastOutput);return}if(jC){this.options.stderr.write(e);return}this.log.clear(),this.options.stderr.write(e),this.log(this.lastOutput)}}unmount(e){this.isUnmounted||(this.onRender(),this.unsubscribeExit(),typeof this.restoreConsole=="function"&&this.restoreConsole(),typeof this.unsubscribeResize=="function"&&this.unsubscribeResize(),jC?this.options.stdout.write(this.lastOutput+` +`):this.options.debug||this.log.done(),this.isUnmounted=!0,Eq.default.updateContainer(null,this.container,null,Iwe),JCt.default.delete(this.options.stdout),e instanceof Error?this.rejectExitPromise(e):this.resolveExitPromise())}waitUntilExit(){return this.exitPromise||(this.exitPromise=new Promise((e,r)=>{this.resolveExitPromise=e,this.rejectExitPromise=r})),this.exitPromise}clear(){!jC&&!this.options.debug&&this.log.clear()}patchConsole(){this.options.debug||(this.restoreConsole=KCt.default((e,r)=>{e==="stdout"&&this.writeToStdout(r),e==="stderr"&&(r.startsWith("The above error occurred")||this.writeToStderr(r))}))}};su.default=Cq});var Dwe=_(SB=>{"use strict";var vwe=SB&&SB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(SB,"__esModule",{value:!0});var XCt=vwe(Bwe()),aQ=vwe(sq()),ZCt=ve("stream"),$Ct=(t,e)=>{let r=Object.assign({stdout:process.stdout,stdin:process.stdin,stderr:process.stderr,debug:!1,exitOnCtrlC:!0,patchConsole:!0},ewt(e)),o=twt(r.stdout,()=>new XCt.default(r));return o.render(t),{rerender:o.render,unmount:()=>o.unmount(),waitUntilExit:o.waitUntilExit,cleanup:()=>aQ.default.delete(r.stdout),clear:o.clear}};SB.default=$Ct;var ewt=(t={})=>t instanceof ZCt.Stream?{stdout:t,stdin:process.stdin}:t,twt=(t,e)=>{let r;return aQ.default.has(t)?r=aQ.default.get(t):(r=e(),aQ.default.set(t,r)),r}});var Pwe=_($f=>{"use strict";var rwt=$f&&$f.__createBinding||(Object.create?function(t,e,r,o){o===void 0&&(o=r),Object.defineProperty(t,o,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,o){o===void 0&&(o=r),t[o]=e[r]}),nwt=$f&&$f.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),iwt=$f&&$f.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.hasOwnProperty.call(t,r)&&rwt(e,t,r);return nwt(e,t),e};Object.defineProperty($f,"__esModule",{value:!0});var PB=iwt(on()),Swe=t=>{let{items:e,children:r,style:o}=t,[a,n]=PB.useState(0),u=PB.useMemo(()=>e.slice(a),[e,a]);PB.useLayoutEffect(()=>{n(e.length)},[e.length]);let A=u.map((h,E)=>r(h,a+E)),p=PB.useMemo(()=>Object.assign({position:"absolute",flexDirection:"column"},o),[o]);return PB.default.createElement("ink-box",{internal_static:!0,style:p},A)};Swe.displayName="Static";$f.default=Swe});var xwe=_(bB=>{"use strict";var swt=bB&&bB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(bB,"__esModule",{value:!0});var owt=swt(on()),bwe=({children:t,transform:e})=>t==null?null:owt.default.createElement("ink-text",{style:{flexGrow:0,flexShrink:1,flexDirection:"row"},internal_transform:e},t);bwe.displayName="Transform";bB.default=bwe});var Qwe=_(xB=>{"use strict";var awt=xB&&xB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(xB,"__esModule",{value:!0});var lwt=awt(on()),kwe=({count:t=1})=>lwt.default.createElement("ink-text",null,` +`.repeat(t));kwe.displayName="Newline";xB.default=kwe});var Twe=_(kB=>{"use strict";var Fwe=kB&&kB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(kB,"__esModule",{value:!0});var cwt=Fwe(on()),uwt=Fwe(sQ()),Rwe=()=>cwt.default.createElement(uwt.default,{flexGrow:1});Rwe.displayName="Spacer";kB.default=Rwe});var lQ=_(QB=>{"use strict";var Awt=QB&&QB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(QB,"__esModule",{value:!0});var fwt=on(),pwt=Awt(cq()),hwt=()=>fwt.useContext(pwt.default);QB.default=hwt});var Lwe=_(FB=>{"use strict";var gwt=FB&&FB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(FB,"__esModule",{value:!0});var Nwe=on(),dwt=gwt(lQ()),mwt=(t,e={})=>{let{stdin:r,setRawMode:o,internal_exitOnCtrlC:a}=dwt.default();Nwe.useEffect(()=>{if(e.isActive!==!1)return o(!0),()=>{o(!1)}},[e.isActive,o]),Nwe.useEffect(()=>{if(e.isActive===!1)return;let n=u=>{let A=String(u),p={upArrow:A==="\x1B[A",downArrow:A==="\x1B[B",leftArrow:A==="\x1B[D",rightArrow:A==="\x1B[C",pageDown:A==="\x1B[6~",pageUp:A==="\x1B[5~",return:A==="\r",escape:A==="\x1B",ctrl:!1,shift:!1,tab:A===" "||A==="\x1B[Z",backspace:A==="\b",delete:A==="\x7F"||A==="\x1B[3~",meta:!1};A<=""&&!p.return&&(A=String.fromCharCode(A.charCodeAt(0)+"a".charCodeAt(0)-1),p.ctrl=!0),A.startsWith("\x1B")&&(A=A.slice(1),p.meta=!0);let h=A>="A"&&A<="Z",E=A>="\u0410"&&A<="\u042F";A.length===1&&(h||E)&&(p.shift=!0),p.tab&&A==="[Z"&&(p.shift=!0),(p.tab||p.backspace||p.delete)&&(A=""),(!(A==="c"&&p.ctrl)||!a)&&t(A,p)};return r?.on("data",n),()=>{r?.off("data",n)}},[e.isActive,r,a,t])};FB.default=mwt});var Owe=_(RB=>{"use strict";var ywt=RB&&RB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(RB,"__esModule",{value:!0});var Ewt=on(),Cwt=ywt(aq()),wwt=()=>Ewt.useContext(Cwt.default);RB.default=wwt});var Mwe=_(TB=>{"use strict";var Iwt=TB&&TB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(TB,"__esModule",{value:!0});var Bwt=on(),vwt=Iwt(Aq()),Dwt=()=>Bwt.useContext(vwt.default);TB.default=Dwt});var Uwe=_(NB=>{"use strict";var Swt=NB&&NB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(NB,"__esModule",{value:!0});var Pwt=on(),bwt=Swt(pq()),xwt=()=>Pwt.useContext(bwt.default);NB.default=xwt});var Hwe=_(OB=>{"use strict";var _we=OB&&OB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(OB,"__esModule",{value:!0});var LB=on(),kwt=_we(iQ()),Qwt=_we(lQ()),Fwt=({isActive:t=!0,autoFocus:e=!1}={})=>{let{isRawModeSupported:r,setRawMode:o}=Qwt.default(),{activeId:a,add:n,remove:u,activate:A,deactivate:p}=LB.useContext(kwt.default),h=LB.useMemo(()=>Math.random().toString().slice(2,7),[]);return LB.useEffect(()=>(n(h,{autoFocus:e}),()=>{u(h)}),[h,e]),LB.useEffect(()=>{t?A(h):p(h)},[t,h]),LB.useEffect(()=>{if(!(!r||!t))return o(!0),()=>{o(!1)}},[t]),{isFocused:Boolean(h)&&a===h}};OB.default=Fwt});var qwe=_(MB=>{"use strict";var Rwt=MB&&MB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(MB,"__esModule",{value:!0});var Twt=on(),Nwt=Rwt(iQ()),Lwt=()=>{let t=Twt.useContext(Nwt.default);return{enableFocus:t.enableFocus,disableFocus:t.disableFocus,focusNext:t.focusNext,focusPrevious:t.focusPrevious}};MB.default=Lwt});var jwe=_(wq=>{"use strict";Object.defineProperty(wq,"__esModule",{value:!0});wq.default=t=>{var e,r,o,a;return{width:(r=(e=t.yogaNode)===null||e===void 0?void 0:e.getComputedWidth())!==null&&r!==void 0?r:0,height:(a=(o=t.yogaNode)===null||o===void 0?void 0:o.getComputedHeight())!==null&&a!==void 0?a:0}}});var ic=_(ro=>{"use strict";Object.defineProperty(ro,"__esModule",{value:!0});var Owt=Dwe();Object.defineProperty(ro,"render",{enumerable:!0,get:function(){return Owt.default}});var Mwt=sQ();Object.defineProperty(ro,"Box",{enumerable:!0,get:function(){return Mwt.default}});var Uwt=yq();Object.defineProperty(ro,"Text",{enumerable:!0,get:function(){return Uwt.default}});var _wt=Pwe();Object.defineProperty(ro,"Static",{enumerable:!0,get:function(){return _wt.default}});var Hwt=xwe();Object.defineProperty(ro,"Transform",{enumerable:!0,get:function(){return Hwt.default}});var qwt=Qwe();Object.defineProperty(ro,"Newline",{enumerable:!0,get:function(){return qwt.default}});var jwt=Twe();Object.defineProperty(ro,"Spacer",{enumerable:!0,get:function(){return jwt.default}});var Gwt=Lwe();Object.defineProperty(ro,"useInput",{enumerable:!0,get:function(){return Gwt.default}});var Ywt=Owe();Object.defineProperty(ro,"useApp",{enumerable:!0,get:function(){return Ywt.default}});var Wwt=lQ();Object.defineProperty(ro,"useStdin",{enumerable:!0,get:function(){return Wwt.default}});var Kwt=Mwe();Object.defineProperty(ro,"useStdout",{enumerable:!0,get:function(){return Kwt.default}});var Vwt=Uwe();Object.defineProperty(ro,"useStderr",{enumerable:!0,get:function(){return Vwt.default}});var Jwt=Hwe();Object.defineProperty(ro,"useFocus",{enumerable:!0,get:function(){return Jwt.default}});var zwt=qwe();Object.defineProperty(ro,"useFocusManager",{enumerable:!0,get:function(){return zwt.default}});var Xwt=jwe();Object.defineProperty(ro,"measureElement",{enumerable:!0,get:function(){return Xwt.default}})});var Bq={};Vt(Bq,{Gem:()=>Iq});var Gwe,Am,Iq,cQ=Et(()=>{Gwe=$e(ic()),Am=$e(on()),Iq=(0,Am.memo)(({active:t})=>{let e=(0,Am.useMemo)(()=>t?"\u25C9":"\u25EF",[t]),r=(0,Am.useMemo)(()=>t?"green":"yellow",[t]);return Am.default.createElement(Gwe.Text,{color:r},e)})});var Wwe={};Vt(Wwe,{useKeypress:()=>fm});function fm({active:t},e,r){let{stdin:o}=(0,Ywe.useStdin)(),a=(0,uQ.useCallback)((n,u)=>e(n,u),r);(0,uQ.useEffect)(()=>{if(!(!t||!o))return o.on("keypress",a),()=>{o.off("keypress",a)}},[t,a,o])}var Ywe,uQ,UB=Et(()=>{Ywe=$e(ic()),uQ=$e(on())});var Vwe={};Vt(Vwe,{FocusRequest:()=>Kwe,useFocusRequest:()=>vq});var Kwe,vq,Dq=Et(()=>{UB();Kwe=(r=>(r.BEFORE="before",r.AFTER="after",r))(Kwe||{}),vq=function({active:t},e,r){fm({active:t},(o,a)=>{a.name==="tab"&&(a.shift?e("before"):e("after"))},r)}});var Jwe={};Vt(Jwe,{useListInput:()=>_B});var _B,AQ=Et(()=>{UB();_B=function(t,e,{active:r,minus:o,plus:a,set:n,loop:u=!0}){fm({active:r},(A,p)=>{let h=e.indexOf(t);switch(p.name){case o:{let E=h-1;if(u){n(e[(e.length+E)%e.length]);return}if(E<0)return;n(e[E])}break;case a:{let E=h+1;if(u){n(e[E%e.length]);return}if(E>=e.length)return;n(e[E])}break}},[e,t,a,n,u])}});var fQ={};Vt(fQ,{ScrollableItems:()=>Zwt});var C0,La,Zwt,pQ=Et(()=>{C0=$e(ic()),La=$e(on());Dq();AQ();Zwt=({active:t=!0,children:e=[],radius:r=10,size:o=1,loop:a=!0,onFocusRequest:n,willReachEnd:u})=>{let A=L=>{if(L.key===null)throw new Error("Expected all children to have a key");return L.key},p=La.default.Children.map(e,L=>A(L)),h=p[0],[E,I]=(0,La.useState)(h),v=p.indexOf(E);(0,La.useEffect)(()=>{p.includes(E)||I(h)},[e]),(0,La.useEffect)(()=>{u&&v>=p.length-2&&u()},[v]),vq({active:t&&!!n},L=>{n?.(L)},[n]),_B(E,p,{active:t,minus:"up",plus:"down",set:I,loop:a});let x=v-r,C=v+r;C>p.length&&(x-=C-p.length,C=p.length),x<0&&(C+=-x,x=0),C>=p.length&&(C=p.length-1);let R=[];for(let L=x;L<=C;++L){let U=p[L],J=t&&U===E;R.push(La.default.createElement(C0.Box,{key:U,height:o},La.default.createElement(C0.Box,{marginLeft:1,marginRight:1},La.default.createElement(C0.Text,null,J?La.default.createElement(C0.Text,{color:"cyan",bold:!0},">"):" ")),La.default.createElement(C0.Box,null,La.default.cloneElement(e[L],{active:J}))))}return La.default.createElement(C0.Box,{flexDirection:"column",width:"100%"},R)}});var zwe,ep,Xwe,Sq,Zwe,Pq=Et(()=>{zwe=$e(ic()),ep=$e(on()),Xwe=ve("readline"),Sq=ep.default.createContext(null),Zwe=({children:t})=>{let{stdin:e,setRawMode:r}=(0,zwe.useStdin)();(0,ep.useEffect)(()=>{r&&r(!0),e&&(0,Xwe.emitKeypressEvents)(e)},[e,r]);let[o,a]=(0,ep.useState)(new Map),n=(0,ep.useMemo)(()=>({getAll:()=>o,get:u=>o.get(u),set:(u,A)=>a(new Map([...o,[u,A]]))}),[o,a]);return ep.default.createElement(Sq.Provider,{value:n,children:t})}});var bq={};Vt(bq,{useMinistore:()=>$wt});function $wt(t,e){let r=(0,hQ.useContext)(Sq);if(r===null)throw new Error("Expected this hook to run with a ministore context attached");if(typeof t>"u")return r.getAll();let o=(0,hQ.useCallback)(n=>{r.set(t,n)},[t,r.set]),a=r.get(t);return typeof a>"u"&&(a=e),[a,o]}var hQ,xq=Et(()=>{hQ=$e(on());Pq()});var dQ={};Vt(dQ,{renderForm:()=>eIt});async function eIt(t,e,{stdin:r,stdout:o,stderr:a}){let n,u=p=>{let{exit:h}=(0,gQ.useApp)();fm({active:!0},(E,I)=>{I.name==="return"&&(n=p,h())},[h,p])},{waitUntilExit:A}=(0,gQ.render)(kq.default.createElement(Zwe,null,kq.default.createElement(t,{...e,useSubmit:u})),{stdin:r,stdout:o,stderr:a});return await A(),n}var gQ,kq,mQ=Et(()=>{gQ=$e(ic()),kq=$e(on());Pq();UB()});var rIe=_(HB=>{"use strict";Object.defineProperty(HB,"__esModule",{value:!0});HB.UncontrolledTextInput=void 0;var eIe=on(),Qq=on(),$we=ic(),pm=rQ(),tIe=({value:t,placeholder:e="",focus:r=!0,mask:o,highlightPastedText:a=!1,showCursor:n=!0,onChange:u,onSubmit:A})=>{let[{cursorOffset:p,cursorWidth:h},E]=Qq.useState({cursorOffset:(t||"").length,cursorWidth:0});Qq.useEffect(()=>{E(R=>{if(!r||!n)return R;let L=t||"";return R.cursorOffset>L.length-1?{cursorOffset:L.length,cursorWidth:0}:R})},[t,r,n]);let I=a?h:0,v=o?o.repeat(t.length):t,x=v,C=e?pm.grey(e):void 0;if(n&&r){C=e.length>0?pm.inverse(e[0])+pm.grey(e.slice(1)):pm.inverse(" "),x=v.length>0?"":pm.inverse(" ");let R=0;for(let L of v)R>=p-I&&R<=p?x+=pm.inverse(L):x+=L,R++;v.length>0&&p===v.length&&(x+=pm.inverse(" "))}return $we.useInput((R,L)=>{if(L.upArrow||L.downArrow||L.ctrl&&R==="c"||L.tab||L.shift&&L.tab)return;if(L.return){A&&A(t);return}let U=p,J=t,te=0;L.leftArrow?n&&U--:L.rightArrow?n&&U++:L.backspace||L.delete?p>0&&(J=t.slice(0,p-1)+t.slice(p,t.length),U--):(J=t.slice(0,p)+R+t.slice(p,t.length),U+=R.length,R.length>1&&(te=R.length)),p<0&&(U=0),p>t.length&&(U=t.length),E({cursorOffset:U,cursorWidth:te}),J!==t&&u(J)},{isActive:r}),eIe.createElement($we.Text,null,e?v.length>0?x:C:x)};HB.default=tIe;HB.UncontrolledTextInput=t=>{let[e,r]=Qq.useState("");return eIe.createElement(tIe,Object.assign({},t,{value:e,onChange:r}))}});var sIe={};Vt(sIe,{Pad:()=>Fq});var nIe,iIe,Fq,Rq=Et(()=>{nIe=$e(ic()),iIe=$e(on()),Fq=({length:t,active:e})=>{if(t===0)return null;let r=t>1?` ${"-".repeat(t-1)}`:" ";return iIe.default.createElement(nIe.Text,{dimColor:!e},r)}});var oIe={};Vt(oIe,{ItemOptions:()=>tIt});var jB,I0,tIt,aIe=Et(()=>{jB=$e(ic()),I0=$e(on());AQ();cQ();Rq();tIt=function({active:t,skewer:e,options:r,value:o,onChange:a,sizes:n=[]}){let u=r.filter(({label:p})=>!!p).map(({value:p})=>p),A=r.findIndex(p=>p.value===o&&p.label!="");return _B(o,u,{active:t,minus:"left",plus:"right",set:a}),I0.default.createElement(I0.default.Fragment,null,r.map(({label:p},h)=>{let E=h===A,I=n[h]-1||0,v=p.replace(/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g,""),x=Math.max(0,I-v.length-2);return p?I0.default.createElement(jB.Box,{key:p,width:I,marginLeft:1},I0.default.createElement(jB.Text,{wrap:"truncate"},I0.default.createElement(Iq,{active:E})," ",p),e?I0.default.createElement(Fq,{active:t,length:x}):null):I0.default.createElement(jB.Box,{key:`spacer-${h}`,width:I,marginLeft:1})}))}});var BIe=_((zJt,IIe)=>{var qq;IIe.exports=()=>(typeof qq>"u"&&(qq=ve("zlib").brotliDecompressSync(Buffer.from("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","base64")).toString()),qq)});var GIe=_((wzt,jIe)=>{var Xq=Symbol("arg flag"),Oa=class extends Error{constructor(e,r){super(e),this.name="ArgError",this.code=r,Object.setPrototypeOf(this,Oa.prototype)}};function sv(t,{argv:e=process.argv.slice(2),permissive:r=!1,stopAtPositional:o=!1}={}){if(!t)throw new Oa("argument specification object is required","ARG_CONFIG_NO_SPEC");let a={_:[]},n={},u={};for(let A of Object.keys(t)){if(!A)throw new Oa("argument key cannot be an empty string","ARG_CONFIG_EMPTY_KEY");if(A[0]!=="-")throw new Oa(`argument key must start with '-' but found: '${A}'`,"ARG_CONFIG_NONOPT_KEY");if(A.length===1)throw new Oa(`argument key must have a name; singular '-' keys are not allowed: ${A}`,"ARG_CONFIG_NONAME_KEY");if(typeof t[A]=="string"){n[A]=t[A];continue}let p=t[A],h=!1;if(Array.isArray(p)&&p.length===1&&typeof p[0]=="function"){let[E]=p;p=(I,v,x=[])=>(x.push(E(I,v,x[x.length-1])),x),h=E===Boolean||E[Xq]===!0}else if(typeof p=="function")h=p===Boolean||p[Xq]===!0;else throw new Oa(`type missing or not a function or valid array type: ${A}`,"ARG_CONFIG_VAD_TYPE");if(A[1]!=="-"&&A.length>2)throw new Oa(`short argument keys (with a single hyphen) must have only one character: ${A}`,"ARG_CONFIG_SHORTOPT_TOOLONG");u[A]=[p,h]}for(let A=0,p=e.length;A0){a._=a._.concat(e.slice(A));break}if(h==="--"){a._=a._.concat(e.slice(A+1));break}if(h.length>1&&h[0]==="-"){let E=h[1]==="-"||h.length===2?[h]:h.slice(1).split("").map(I=>`-${I}`);for(let I=0;I1&&e[A+1][0]==="-"&&!(e[A+1].match(/^-?\d*(\.(?=\d))?\d*$/)&&(L===Number||typeof BigInt<"u"&&L===BigInt))){let J=x===R?"":` (alias for ${R})`;throw new Oa(`option requires argument: ${x}${J}`,"ARG_MISSING_REQUIRED_LONGARG")}a[R]=L(e[A+1],R,a[R]),++A}else a[R]=L(C,R,a[R])}}else a._.push(h)}return a}sv.flag=t=>(t[Xq]=!0,t);sv.COUNT=sv.flag((t,e,r)=>(r||0)+1);sv.ArgError=Oa;jIe.exports=sv});var ZIe=_((Jzt,XIe)=>{var tj;XIe.exports=()=>(typeof tj>"u"&&(tj=ve("zlib").brotliDecompressSync(Buffer.from("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","base64")).toString()),tj)});var n1e=_((aj,lj)=>{(function(t){aj&&typeof aj=="object"&&typeof lj<"u"?lj.exports=t():typeof define=="function"&&define.amd?define([],t):typeof window<"u"?window.isWindows=t():typeof global<"u"?global.isWindows=t():typeof self<"u"?self.isWindows=t():this.isWindows=t()})(function(){"use strict";return function(){return process&&(process.platform==="win32"||/^(msys|cygwin)$/.test(process.env.OSTYPE))}})});var a1e=_((KXt,o1e)=>{"use strict";cj.ifExists=ZIt;var YC=ve("util"),sc=ve("path"),i1e=n1e(),JIt=/^#!\s*(?:\/usr\/bin\/env)?\s*([^ \t]+)(.*)$/,zIt={createPwshFile:!0,createCmdFile:i1e(),fs:ve("fs")},XIt=new Map([[".js","node"],[".cjs","node"],[".mjs","node"],[".cmd","cmd"],[".bat","cmd"],[".ps1","pwsh"],[".sh","sh"]]);function s1e(t){let e={...zIt,...t},r=e.fs;return e.fs_={chmod:r.chmod?YC.promisify(r.chmod):async()=>{},mkdir:YC.promisify(r.mkdir),readFile:YC.promisify(r.readFile),stat:YC.promisify(r.stat),unlink:YC.promisify(r.unlink),writeFile:YC.promisify(r.writeFile)},e}async function cj(t,e,r){let o=s1e(r);await o.fs_.stat(t),await e1t(t,e,o)}function ZIt(t,e,r){return cj(t,e,r).catch(()=>{})}function $It(t,e){return e.fs_.unlink(t).catch(()=>{})}async function e1t(t,e,r){let o=await s1t(t,r);return await t1t(e,r),r1t(t,e,o,r)}function t1t(t,e){return e.fs_.mkdir(sc.dirname(t),{recursive:!0})}function r1t(t,e,r,o){let a=s1e(o),n=[{generator:l1t,extension:""}];return a.createCmdFile&&n.push({generator:a1t,extension:".cmd"}),a.createPwshFile&&n.push({generator:c1t,extension:".ps1"}),Promise.all(n.map(u=>o1t(t,e+u.extension,r,u.generator,a)))}function n1t(t,e){return $It(t,e)}function i1t(t,e){return u1t(t,e)}async function s1t(t,e){let a=(await e.fs_.readFile(t,"utf8")).trim().split(/\r*\n/)[0].match(JIt);if(!a){let n=sc.extname(t).toLowerCase();return{program:XIt.get(n)||null,additionalArgs:""}}return{program:a[1],additionalArgs:a[2]}}async function o1t(t,e,r,o,a){let n=a.preserveSymlinks?"--preserve-symlinks":"",u=[r.additionalArgs,n].filter(A=>A).join(" ");return a=Object.assign({},a,{prog:r.program,args:u}),await n1t(e,a),await a.fs_.writeFile(e,o(t,e,a),"utf8"),i1t(e,a)}function a1t(t,e,r){let a=sc.relative(sc.dirname(e),t).split("/").join("\\"),n=sc.isAbsolute(a)?`"${a}"`:`"%~dp0\\${a}"`,u,A=r.prog,p=r.args||"",h=uj(r.nodePath).win32;A?(u=`"%~dp0\\${A}.exe"`,a=n):(A=n,p="",a="");let E=r.progArgs?`${r.progArgs.join(" ")} `:"",I=h?`@SET NODE_PATH=${h}\r +`:"";return u?I+=`@IF EXIST ${u} (\r + ${u} ${p} ${a} ${E}%*\r +) ELSE (\r + @SETLOCAL\r + @SET PATHEXT=%PATHEXT:;.JS;=;%\r + ${A} ${p} ${a} ${E}%*\r +)\r +`:I+=`@${A} ${p} ${a} ${E}%*\r +`,I}function l1t(t,e,r){let o=sc.relative(sc.dirname(e),t),a=r.prog&&r.prog.split("\\").join("/"),n;o=o.split("\\").join("/");let u=sc.isAbsolute(o)?`"${o}"`:`"$basedir/${o}"`,A=r.args||"",p=uj(r.nodePath).posix;a?(n=`"$basedir/${r.prog}"`,o=u):(a=u,A="",o="");let h=r.progArgs?`${r.progArgs.join(" ")} `:"",E=`#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\\\,/,g')") + +case \`uname\` in + *CYGWIN*) basedir=\`cygpath -w "$basedir"\`;; +esac + +`,I=r.nodePath?`export NODE_PATH="${p}" +`:"";return n?E+=`${I}if [ -x ${n} ]; then + exec ${n} ${A} ${o} ${h}"$@" +else + exec ${a} ${A} ${o} ${h}"$@" +fi +`:E+=`${I}${a} ${A} ${o} ${h}"$@" +exit $? +`,E}function c1t(t,e,r){let o=sc.relative(sc.dirname(e),t),a=r.prog&&r.prog.split("\\").join("/"),n=a&&`"${a}$exe"`,u;o=o.split("\\").join("/");let A=sc.isAbsolute(o)?`"${o}"`:`"$basedir/${o}"`,p=r.args||"",h=uj(r.nodePath),E=h.win32,I=h.posix;n?(u=`"$basedir/${r.prog}$exe"`,o=A):(n=A,p="",o="");let v=r.progArgs?`${r.progArgs.join(" ")} `:"",x=`#!/usr/bin/env pwsh +$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent + +$exe="" +${r.nodePath?`$env_node_path=$env:NODE_PATH +$env:NODE_PATH="${E}" +`:""}if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { + # Fix case when both the Windows and Linux builds of Node + # are installed in the same directory + $exe=".exe" +}`;return r.nodePath&&(x+=` else { + $env:NODE_PATH="${I}" +}`),u?x+=` +$ret=0 +if (Test-Path ${u}) { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & ${u} ${p} ${o} ${v}$args + } else { + & ${u} ${p} ${o} ${v}$args + } + $ret=$LASTEXITCODE +} else { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & ${n} ${p} ${o} ${v}$args + } else { + & ${n} ${p} ${o} ${v}$args + } + $ret=$LASTEXITCODE +} +${r.nodePath?`$env:NODE_PATH=$env_node_path +`:""}exit $ret +`:x+=` +# Support pipeline input +if ($MyInvocation.ExpectingInput) { + $input | & ${n} ${p} ${o} ${v}$args +} else { + & ${n} ${p} ${o} ${v}$args +} +${r.nodePath?`$env:NODE_PATH=$env_node_path +`:""}exit $LASTEXITCODE +`,x}function u1t(t,e){return e.fs_.chmod(t,493)}function uj(t){if(!t)return{win32:"",posix:""};let e=typeof t=="string"?t.split(sc.delimiter):Array.from(t),r={};for(let o=0;o`/mnt/${A.toLowerCase()}`):e[o];r.win32=r.win32?`${r.win32};${a}`:a,r.posix=r.posix?`${r.posix}:${n}`:n,r[o]={win32:a,posix:n}}return r}o1e.exports=cj});var vj=_((h$t,b1e)=>{b1e.exports=ve("stream")});var F1e=_((g$t,Q1e)=>{"use strict";function x1e(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);e&&(o=o.filter(function(a){return Object.getOwnPropertyDescriptor(t,a).enumerable})),r.push.apply(r,o)}return r}function O1t(t){for(var e=1;e0?this.tail.next=o:this.head=o,this.tail=o,++this.length}},{key:"unshift",value:function(r){var o={data:r,next:this.head};this.length===0&&(this.tail=o),this.head=o,++this.length}},{key:"shift",value:function(){if(this.length!==0){var r=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,r}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(r){if(this.length===0)return"";for(var o=this.head,a=""+o.data;o=o.next;)a+=r+o.data;return a}},{key:"concat",value:function(r){if(this.length===0)return xQ.alloc(0);for(var o=xQ.allocUnsafe(r>>>0),a=this.head,n=0;a;)G1t(a.data,o,n),n+=a.data.length,a=a.next;return o}},{key:"consume",value:function(r,o){var a;return ru.length?u.length:r;if(A===u.length?n+=u:n+=u.slice(0,r),r-=A,r===0){A===u.length?(++a,o.next?this.head=o.next:this.head=this.tail=null):(this.head=o,o.data=u.slice(A));break}++a}return this.length-=a,n}},{key:"_getBuffer",value:function(r){var o=xQ.allocUnsafe(r),a=this.head,n=1;for(a.data.copy(o),r-=a.data.length;a=a.next;){var u=a.data,A=r>u.length?u.length:r;if(u.copy(o,o.length-r,0,A),r-=A,r===0){A===u.length?(++n,a.next?this.head=a.next:this.head=this.tail=null):(this.head=a,a.data=u.slice(A));break}++n}return this.length-=n,o}},{key:j1t,value:function(r,o){return Dj(this,O1t({},o,{depth:0,customInspect:!1}))}}]),t}()});var Pj=_((d$t,T1e)=>{"use strict";function Y1t(t,e){var r=this,o=this._readableState&&this._readableState.destroyed,a=this._writableState&&this._writableState.destroyed;return o||a?(e?e(t):t&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,process.nextTick(Sj,this,t)):process.nextTick(Sj,this,t)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(t||null,function(n){!e&&n?r._writableState?r._writableState.errorEmitted?process.nextTick(kQ,r):(r._writableState.errorEmitted=!0,process.nextTick(R1e,r,n)):process.nextTick(R1e,r,n):e?(process.nextTick(kQ,r),e(n)):process.nextTick(kQ,r)}),this)}function R1e(t,e){Sj(t,e),kQ(t)}function kQ(t){t._writableState&&!t._writableState.emitClose||t._readableState&&!t._readableState.emitClose||t.emit("close")}function W1t(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function Sj(t,e){t.emit("error",e)}function K1t(t,e){var r=t._readableState,o=t._writableState;r&&r.autoDestroy||o&&o.autoDestroy?t.destroy(e):t.emit("error",e)}T1e.exports={destroy:Y1t,undestroy:W1t,errorOrDestroy:K1t}});var Q0=_((m$t,O1e)=>{"use strict";var L1e={};function ac(t,e,r){r||(r=Error);function o(n,u,A){return typeof e=="string"?e:e(n,u,A)}class a extends r{constructor(u,A,p){super(o(u,A,p))}}a.prototype.name=r.name,a.prototype.code=t,L1e[t]=a}function N1e(t,e){if(Array.isArray(t)){let r=t.length;return t=t.map(o=>String(o)),r>2?`one of ${e} ${t.slice(0,r-1).join(", ")}, or `+t[r-1]:r===2?`one of ${e} ${t[0]} or ${t[1]}`:`of ${e} ${t[0]}`}else return`of ${e} ${String(t)}`}function V1t(t,e,r){return t.substr(!r||r<0?0:+r,e.length)===e}function J1t(t,e,r){return(r===void 0||r>t.length)&&(r=t.length),t.substring(r-e.length,r)===e}function z1t(t,e,r){return typeof r!="number"&&(r=0),r+e.length>t.length?!1:t.indexOf(e,r)!==-1}ac("ERR_INVALID_OPT_VALUE",function(t,e){return'The value "'+e+'" is invalid for option "'+t+'"'},TypeError);ac("ERR_INVALID_ARG_TYPE",function(t,e,r){let o;typeof e=="string"&&V1t(e,"not ")?(o="must not be",e=e.replace(/^not /,"")):o="must be";let a;if(J1t(t," argument"))a=`The ${t} ${o} ${N1e(e,"type")}`;else{let n=z1t(t,".")?"property":"argument";a=`The "${t}" ${n} ${o} ${N1e(e,"type")}`}return a+=`. Received type ${typeof r}`,a},TypeError);ac("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF");ac("ERR_METHOD_NOT_IMPLEMENTED",function(t){return"The "+t+" method is not implemented"});ac("ERR_STREAM_PREMATURE_CLOSE","Premature close");ac("ERR_STREAM_DESTROYED",function(t){return"Cannot call "+t+" after a stream was destroyed"});ac("ERR_MULTIPLE_CALLBACK","Callback called multiple times");ac("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable");ac("ERR_STREAM_WRITE_AFTER_END","write after end");ac("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError);ac("ERR_UNKNOWN_ENCODING",function(t){return"Unknown encoding: "+t},TypeError);ac("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event");O1e.exports.codes=L1e});var bj=_((y$t,M1e)=>{"use strict";var X1t=Q0().codes.ERR_INVALID_OPT_VALUE;function Z1t(t,e,r){return t.highWaterMark!=null?t.highWaterMark:e?t[r]:null}function $1t(t,e,r,o){var a=Z1t(e,o,r);if(a!=null){if(!(isFinite(a)&&Math.floor(a)===a)||a<0){var n=o?r:"highWaterMark";throw new X1t(n,a)}return Math.floor(a)}return t.objectMode?16:16*1024}M1e.exports={getHighWaterMark:$1t}});var U1e=_((E$t,xj)=>{typeof Object.create=="function"?xj.exports=function(e,r){r&&(e.super_=r,e.prototype=Object.create(r.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:xj.exports=function(e,r){if(r){e.super_=r;var o=function(){};o.prototype=r.prototype,e.prototype=new o,e.prototype.constructor=e}}});var F0=_((C$t,Qj)=>{try{if(kj=ve("util"),typeof kj.inherits!="function")throw"";Qj.exports=kj.inherits}catch{Qj.exports=U1e()}var kj});var H1e=_((w$t,_1e)=>{_1e.exports=ve("util").deprecate});var Tj=_((I$t,K1e)=>{"use strict";K1e.exports=Ri;function j1e(t){var e=this;this.next=null,this.entry=null,this.finish=function(){S2t(e,t)}}var zC;Ri.WritableState=mv;var e2t={deprecate:H1e()},G1e=vj(),FQ=ve("buffer").Buffer,t2t=global.Uint8Array||function(){};function r2t(t){return FQ.from(t)}function n2t(t){return FQ.isBuffer(t)||t instanceof t2t}var Rj=Pj(),i2t=bj(),s2t=i2t.getHighWaterMark,R0=Q0().codes,o2t=R0.ERR_INVALID_ARG_TYPE,a2t=R0.ERR_METHOD_NOT_IMPLEMENTED,l2t=R0.ERR_MULTIPLE_CALLBACK,c2t=R0.ERR_STREAM_CANNOT_PIPE,u2t=R0.ERR_STREAM_DESTROYED,A2t=R0.ERR_STREAM_NULL_VALUES,f2t=R0.ERR_STREAM_WRITE_AFTER_END,p2t=R0.ERR_UNKNOWN_ENCODING,XC=Rj.errorOrDestroy;F0()(Ri,G1e);function h2t(){}function mv(t,e,r){zC=zC||Cm(),t=t||{},typeof r!="boolean"&&(r=e instanceof zC),this.objectMode=!!t.objectMode,r&&(this.objectMode=this.objectMode||!!t.writableObjectMode),this.highWaterMark=s2t(this,t,"writableHighWaterMark",r),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var o=t.decodeStrings===!1;this.decodeStrings=!o,this.defaultEncoding=t.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(a){w2t(e,a)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=t.emitClose!==!1,this.autoDestroy=!!t.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new j1e(this)}mv.prototype.getBuffer=function(){for(var e=this.bufferedRequest,r=[];e;)r.push(e),e=e.next;return r};(function(){try{Object.defineProperty(mv.prototype,"buffer",{get:e2t.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch{}})();var QQ;typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(QQ=Function.prototype[Symbol.hasInstance],Object.defineProperty(Ri,Symbol.hasInstance,{value:function(e){return QQ.call(this,e)?!0:this!==Ri?!1:e&&e._writableState instanceof mv}})):QQ=function(e){return e instanceof this};function Ri(t){zC=zC||Cm();var e=this instanceof zC;if(!e&&!QQ.call(Ri,this))return new Ri(t);this._writableState=new mv(t,this,e),this.writable=!0,t&&(typeof t.write=="function"&&(this._write=t.write),typeof t.writev=="function"&&(this._writev=t.writev),typeof t.destroy=="function"&&(this._destroy=t.destroy),typeof t.final=="function"&&(this._final=t.final)),G1e.call(this)}Ri.prototype.pipe=function(){XC(this,new c2t)};function g2t(t,e){var r=new f2t;XC(t,r),process.nextTick(e,r)}function d2t(t,e,r,o){var a;return r===null?a=new A2t:typeof r!="string"&&!e.objectMode&&(a=new o2t("chunk",["string","Buffer"],r)),a?(XC(t,a),process.nextTick(o,a),!1):!0}Ri.prototype.write=function(t,e,r){var o=this._writableState,a=!1,n=!o.objectMode&&n2t(t);return n&&!FQ.isBuffer(t)&&(t=r2t(t)),typeof e=="function"&&(r=e,e=null),n?e="buffer":e||(e=o.defaultEncoding),typeof r!="function"&&(r=h2t),o.ending?g2t(this,r):(n||d2t(this,o,t,r))&&(o.pendingcb++,a=y2t(this,o,n,t,e,r)),a};Ri.prototype.cork=function(){this._writableState.corked++};Ri.prototype.uncork=function(){var t=this._writableState;t.corked&&(t.corked--,!t.writing&&!t.corked&&!t.bufferProcessing&&t.bufferedRequest&&Y1e(this,t))};Ri.prototype.setDefaultEncoding=function(e){if(typeof e=="string"&&(e=e.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((e+"").toLowerCase())>-1))throw new p2t(e);return this._writableState.defaultEncoding=e,this};Object.defineProperty(Ri.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}});function m2t(t,e,r){return!t.objectMode&&t.decodeStrings!==!1&&typeof e=="string"&&(e=FQ.from(e,r)),e}Object.defineProperty(Ri.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});function y2t(t,e,r,o,a,n){if(!r){var u=m2t(e,o,a);o!==u&&(r=!0,a="buffer",o=u)}var A=e.objectMode?1:o.length;e.length+=A;var p=e.length{"use strict";var P2t=Object.keys||function(t){var e=[];for(var r in t)e.push(r);return e};J1e.exports=EA;var V1e=Oj(),Lj=Tj();F0()(EA,V1e);for(Nj=P2t(Lj.prototype),RQ=0;RQ{var NQ=ve("buffer"),ip=NQ.Buffer;function z1e(t,e){for(var r in t)e[r]=t[r]}ip.from&&ip.alloc&&ip.allocUnsafe&&ip.allocUnsafeSlow?X1e.exports=NQ:(z1e(NQ,Mj),Mj.Buffer=ZC);function ZC(t,e,r){return ip(t,e,r)}z1e(ip,ZC);ZC.from=function(t,e,r){if(typeof t=="number")throw new TypeError("Argument must not be a number");return ip(t,e,r)};ZC.alloc=function(t,e,r){if(typeof t!="number")throw new TypeError("Argument must be a number");var o=ip(t);return e!==void 0?typeof r=="string"?o.fill(e,r):o.fill(e):o.fill(0),o};ZC.allocUnsafe=function(t){if(typeof t!="number")throw new TypeError("Argument must be a number");return ip(t)};ZC.allocUnsafeSlow=function(t){if(typeof t!="number")throw new TypeError("Argument must be a number");return NQ.SlowBuffer(t)}});var Hj=_(e2e=>{"use strict";var _j=Z1e().Buffer,$1e=_j.isEncoding||function(t){switch(t=""+t,t&&t.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function k2t(t){if(!t)return"utf8";for(var e;;)switch(t){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return t;default:if(e)return;t=(""+t).toLowerCase(),e=!0}}function Q2t(t){var e=k2t(t);if(typeof e!="string"&&(_j.isEncoding===$1e||!$1e(t)))throw new Error("Unknown encoding: "+t);return e||t}e2e.StringDecoder=yv;function yv(t){this.encoding=Q2t(t);var e;switch(this.encoding){case"utf16le":this.text=O2t,this.end=M2t,e=4;break;case"utf8":this.fillLast=T2t,e=4;break;case"base64":this.text=U2t,this.end=_2t,e=3;break;default:this.write=H2t,this.end=q2t;return}this.lastNeed=0,this.lastTotal=0,this.lastChar=_j.allocUnsafe(e)}yv.prototype.write=function(t){if(t.length===0)return"";var e,r;if(this.lastNeed){if(e=this.fillLast(t),e===void 0)return"";r=this.lastNeed,this.lastNeed=0}else r=0;return r>5===6?2:t>>4===14?3:t>>3===30?4:t>>6===2?-1:-2}function F2t(t,e,r){var o=e.length-1;if(o=0?(a>0&&(t.lastNeed=a-1),a):--o=0?(a>0&&(t.lastNeed=a-2),a):--o=0?(a>0&&(a===2?a=0:t.lastNeed=a-3),a):0))}function R2t(t,e,r){if((e[0]&192)!==128)return t.lastNeed=0,"\uFFFD";if(t.lastNeed>1&&e.length>1){if((e[1]&192)!==128)return t.lastNeed=1,"\uFFFD";if(t.lastNeed>2&&e.length>2&&(e[2]&192)!==128)return t.lastNeed=2,"\uFFFD"}}function T2t(t){var e=this.lastTotal-this.lastNeed,r=R2t(this,t,e);if(r!==void 0)return r;if(this.lastNeed<=t.length)return t.copy(this.lastChar,e,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);t.copy(this.lastChar,e,0,t.length),this.lastNeed-=t.length}function N2t(t,e){var r=F2t(this,t,e);if(!this.lastNeed)return t.toString("utf8",e);this.lastTotal=r;var o=t.length-(r-this.lastNeed);return t.copy(this.lastChar,0,o),t.toString("utf8",e,o)}function L2t(t){var e=t&&t.length?this.write(t):"";return this.lastNeed?e+"\uFFFD":e}function O2t(t,e){if((t.length-e)%2===0){var r=t.toString("utf16le",e);if(r){var o=r.charCodeAt(r.length-1);if(o>=55296&&o<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=t[t.length-2],this.lastChar[1]=t[t.length-1],r.slice(0,-1)}return r}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=t[t.length-1],t.toString("utf16le",e,t.length-1)}function M2t(t){var e=t&&t.length?this.write(t):"";if(this.lastNeed){var r=this.lastTotal-this.lastNeed;return e+this.lastChar.toString("utf16le",0,r)}return e}function U2t(t,e){var r=(t.length-e)%3;return r===0?t.toString("base64",e):(this.lastNeed=3-r,this.lastTotal=3,r===1?this.lastChar[0]=t[t.length-1]:(this.lastChar[0]=t[t.length-2],this.lastChar[1]=t[t.length-1]),t.toString("base64",e,t.length-r))}function _2t(t){var e=t&&t.length?this.write(t):"";return this.lastNeed?e+this.lastChar.toString("base64",0,3-this.lastNeed):e}function H2t(t){return t.toString(this.encoding)}function q2t(t){return t&&t.length?this.write(t):""}});var LQ=_((D$t,n2e)=>{"use strict";var t2e=Q0().codes.ERR_STREAM_PREMATURE_CLOSE;function j2t(t){var e=!1;return function(){if(!e){e=!0;for(var r=arguments.length,o=new Array(r),a=0;a{"use strict";var OQ;function T0(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}var W2t=LQ(),N0=Symbol("lastResolve"),wm=Symbol("lastReject"),Ev=Symbol("error"),MQ=Symbol("ended"),Im=Symbol("lastPromise"),qj=Symbol("handlePromise"),Bm=Symbol("stream");function L0(t,e){return{value:t,done:e}}function K2t(t){var e=t[N0];if(e!==null){var r=t[Bm].read();r!==null&&(t[Im]=null,t[N0]=null,t[wm]=null,e(L0(r,!1)))}}function V2t(t){process.nextTick(K2t,t)}function J2t(t,e){return function(r,o){t.then(function(){if(e[MQ]){r(L0(void 0,!0));return}e[qj](r,o)},o)}}var z2t=Object.getPrototypeOf(function(){}),X2t=Object.setPrototypeOf((OQ={get stream(){return this[Bm]},next:function(){var e=this,r=this[Ev];if(r!==null)return Promise.reject(r);if(this[MQ])return Promise.resolve(L0(void 0,!0));if(this[Bm].destroyed)return new Promise(function(u,A){process.nextTick(function(){e[Ev]?A(e[Ev]):u(L0(void 0,!0))})});var o=this[Im],a;if(o)a=new Promise(J2t(o,this));else{var n=this[Bm].read();if(n!==null)return Promise.resolve(L0(n,!1));a=new Promise(this[qj])}return this[Im]=a,a}},T0(OQ,Symbol.asyncIterator,function(){return this}),T0(OQ,"return",function(){var e=this;return new Promise(function(r,o){e[Bm].destroy(null,function(a){if(a){o(a);return}r(L0(void 0,!0))})})}),OQ),z2t),Z2t=function(e){var r,o=Object.create(X2t,(r={},T0(r,Bm,{value:e,writable:!0}),T0(r,N0,{value:null,writable:!0}),T0(r,wm,{value:null,writable:!0}),T0(r,Ev,{value:null,writable:!0}),T0(r,MQ,{value:e._readableState.endEmitted,writable:!0}),T0(r,qj,{value:function(n,u){var A=o[Bm].read();A?(o[Im]=null,o[N0]=null,o[wm]=null,n(L0(A,!1))):(o[N0]=n,o[wm]=u)},writable:!0}),r));return o[Im]=null,W2t(e,function(a){if(a&&a.code!=="ERR_STREAM_PREMATURE_CLOSE"){var n=o[wm];n!==null&&(o[Im]=null,o[N0]=null,o[wm]=null,n(a)),o[Ev]=a;return}var u=o[N0];u!==null&&(o[Im]=null,o[N0]=null,o[wm]=null,u(L0(void 0,!0))),o[MQ]=!0}),e.on("readable",V2t.bind(null,o)),o};i2e.exports=Z2t});var c2e=_((P$t,l2e)=>{"use strict";function o2e(t,e,r,o,a,n,u){try{var A=t[n](u),p=A.value}catch(h){r(h);return}A.done?e(p):Promise.resolve(p).then(o,a)}function $2t(t){return function(){var e=this,r=arguments;return new Promise(function(o,a){var n=t.apply(e,r);function u(p){o2e(n,o,a,u,A,"next",p)}function A(p){o2e(n,o,a,u,A,"throw",p)}u(void 0)})}}function a2e(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);e&&(o=o.filter(function(a){return Object.getOwnPropertyDescriptor(t,a).enumerable})),r.push.apply(r,o)}return r}function eBt(t){for(var e=1;e{"use strict";E2e.exports=mn;var $C;mn.ReadableState=p2e;var b$t=ve("events").EventEmitter,f2e=function(e,r){return e.listeners(r).length},wv=vj(),UQ=ve("buffer").Buffer,iBt=global.Uint8Array||function(){};function sBt(t){return UQ.from(t)}function oBt(t){return UQ.isBuffer(t)||t instanceof iBt}var jj=ve("util"),en;jj&&jj.debuglog?en=jj.debuglog("stream"):en=function(){};var aBt=F1e(),zj=Pj(),lBt=bj(),cBt=lBt.getHighWaterMark,_Q=Q0().codes,uBt=_Q.ERR_INVALID_ARG_TYPE,ABt=_Q.ERR_STREAM_PUSH_AFTER_EOF,fBt=_Q.ERR_METHOD_NOT_IMPLEMENTED,pBt=_Q.ERR_STREAM_UNSHIFT_AFTER_END_EVENT,ew,Gj,Yj;F0()(mn,wv);var Cv=zj.errorOrDestroy,Wj=["error","close","destroy","pause","resume"];function hBt(t,e,r){if(typeof t.prependListener=="function")return t.prependListener(e,r);!t._events||!t._events[e]?t.on(e,r):Array.isArray(t._events[e])?t._events[e].unshift(r):t._events[e]=[r,t._events[e]]}function p2e(t,e,r){$C=$C||Cm(),t=t||{},typeof r!="boolean"&&(r=e instanceof $C),this.objectMode=!!t.objectMode,r&&(this.objectMode=this.objectMode||!!t.readableObjectMode),this.highWaterMark=cBt(this,t,"readableHighWaterMark",r),this.buffer=new aBt,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=t.emitClose!==!1,this.autoDestroy=!!t.autoDestroy,this.destroyed=!1,this.defaultEncoding=t.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,t.encoding&&(ew||(ew=Hj().StringDecoder),this.decoder=new ew(t.encoding),this.encoding=t.encoding)}function mn(t){if($C=$C||Cm(),!(this instanceof mn))return new mn(t);var e=this instanceof $C;this._readableState=new p2e(t,this,e),this.readable=!0,t&&(typeof t.read=="function"&&(this._read=t.read),typeof t.destroy=="function"&&(this._destroy=t.destroy)),wv.call(this)}Object.defineProperty(mn.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState===void 0?!1:this._readableState.destroyed},set:function(e){!this._readableState||(this._readableState.destroyed=e)}});mn.prototype.destroy=zj.destroy;mn.prototype._undestroy=zj.undestroy;mn.prototype._destroy=function(t,e){e(t)};mn.prototype.push=function(t,e){var r=this._readableState,o;return r.objectMode?o=!0:typeof t=="string"&&(e=e||r.defaultEncoding,e!==r.encoding&&(t=UQ.from(t,e),e=""),o=!0),h2e(this,t,e,!1,o)};mn.prototype.unshift=function(t){return h2e(this,t,null,!0,!1)};function h2e(t,e,r,o,a){en("readableAddChunk",e);var n=t._readableState;if(e===null)n.reading=!1,mBt(t,n);else{var u;if(a||(u=gBt(n,e)),u)Cv(t,u);else if(n.objectMode||e&&e.length>0)if(typeof e!="string"&&!n.objectMode&&Object.getPrototypeOf(e)!==UQ.prototype&&(e=sBt(e)),o)n.endEmitted?Cv(t,new pBt):Kj(t,n,e,!0);else if(n.ended)Cv(t,new ABt);else{if(n.destroyed)return!1;n.reading=!1,n.decoder&&!r?(e=n.decoder.write(e),n.objectMode||e.length!==0?Kj(t,n,e,!1):Jj(t,n)):Kj(t,n,e,!1)}else o||(n.reading=!1,Jj(t,n))}return!n.ended&&(n.length=u2e?t=u2e:(t--,t|=t>>>1,t|=t>>>2,t|=t>>>4,t|=t>>>8,t|=t>>>16,t++),t}function A2e(t,e){return t<=0||e.length===0&&e.ended?0:e.objectMode?1:t!==t?e.flowing&&e.length?e.buffer.head.data.length:e.length:(t>e.highWaterMark&&(e.highWaterMark=dBt(t)),t<=e.length?t:e.ended?e.length:(e.needReadable=!0,0))}mn.prototype.read=function(t){en("read",t),t=parseInt(t,10);var e=this._readableState,r=t;if(t!==0&&(e.emittedReadable=!1),t===0&&e.needReadable&&((e.highWaterMark!==0?e.length>=e.highWaterMark:e.length>0)||e.ended))return en("read: emitReadable",e.length,e.ended),e.length===0&&e.ended?Vj(this):HQ(this),null;if(t=A2e(t,e),t===0&&e.ended)return e.length===0&&Vj(this),null;var o=e.needReadable;en("need readable",o),(e.length===0||e.length-t0?a=m2e(t,e):a=null,a===null?(e.needReadable=e.length<=e.highWaterMark,t=0):(e.length-=t,e.awaitDrain=0),e.length===0&&(e.ended||(e.needReadable=!0),r!==t&&e.ended&&Vj(this)),a!==null&&this.emit("data",a),a};function mBt(t,e){if(en("onEofChunk"),!e.ended){if(e.decoder){var r=e.decoder.end();r&&r.length&&(e.buffer.push(r),e.length+=e.objectMode?1:r.length)}e.ended=!0,e.sync?HQ(t):(e.needReadable=!1,e.emittedReadable||(e.emittedReadable=!0,g2e(t)))}}function HQ(t){var e=t._readableState;en("emitReadable",e.needReadable,e.emittedReadable),e.needReadable=!1,e.emittedReadable||(en("emitReadable",e.flowing),e.emittedReadable=!0,process.nextTick(g2e,t))}function g2e(t){var e=t._readableState;en("emitReadable_",e.destroyed,e.length,e.ended),!e.destroyed&&(e.length||e.ended)&&(t.emit("readable"),e.emittedReadable=!1),e.needReadable=!e.flowing&&!e.ended&&e.length<=e.highWaterMark,Xj(t)}function Jj(t,e){e.readingMore||(e.readingMore=!0,process.nextTick(yBt,t,e))}function yBt(t,e){for(;!e.reading&&!e.ended&&(e.length1&&y2e(o.pipes,t)!==-1)&&!h&&(en("false write response, pause",o.awaitDrain),o.awaitDrain++),r.pause())}function v(L){en("onerror",L),R(),t.removeListener("error",v),f2e(t,"error")===0&&Cv(t,L)}hBt(t,"error",v);function x(){t.removeListener("finish",C),R()}t.once("close",x);function C(){en("onfinish"),t.removeListener("close",x),R()}t.once("finish",C);function R(){en("unpipe"),r.unpipe(t)}return t.emit("pipe",r),o.flowing||(en("pipe resume"),r.resume()),t};function EBt(t){return function(){var r=t._readableState;en("pipeOnDrain",r.awaitDrain),r.awaitDrain&&r.awaitDrain--,r.awaitDrain===0&&f2e(t,"data")&&(r.flowing=!0,Xj(t))}}mn.prototype.unpipe=function(t){var e=this._readableState,r={hasUnpiped:!1};if(e.pipesCount===0)return this;if(e.pipesCount===1)return t&&t!==e.pipes?this:(t||(t=e.pipes),e.pipes=null,e.pipesCount=0,e.flowing=!1,t&&t.emit("unpipe",this,r),this);if(!t){var o=e.pipes,a=e.pipesCount;e.pipes=null,e.pipesCount=0,e.flowing=!1;for(var n=0;n0,o.flowing!==!1&&this.resume()):t==="readable"&&!o.endEmitted&&!o.readableListening&&(o.readableListening=o.needReadable=!0,o.flowing=!1,o.emittedReadable=!1,en("on readable",o.length,o.reading),o.length?HQ(this):o.reading||process.nextTick(CBt,this)),r};mn.prototype.addListener=mn.prototype.on;mn.prototype.removeListener=function(t,e){var r=wv.prototype.removeListener.call(this,t,e);return t==="readable"&&process.nextTick(d2e,this),r};mn.prototype.removeAllListeners=function(t){var e=wv.prototype.removeAllListeners.apply(this,arguments);return(t==="readable"||t===void 0)&&process.nextTick(d2e,this),e};function d2e(t){var e=t._readableState;e.readableListening=t.listenerCount("readable")>0,e.resumeScheduled&&!e.paused?e.flowing=!0:t.listenerCount("data")>0&&t.resume()}function CBt(t){en("readable nexttick read 0"),t.read(0)}mn.prototype.resume=function(){var t=this._readableState;return t.flowing||(en("resume"),t.flowing=!t.readableListening,wBt(this,t)),t.paused=!1,this};function wBt(t,e){e.resumeScheduled||(e.resumeScheduled=!0,process.nextTick(IBt,t,e))}function IBt(t,e){en("resume",e.reading),e.reading||t.read(0),e.resumeScheduled=!1,t.emit("resume"),Xj(t),e.flowing&&!e.reading&&t.read(0)}mn.prototype.pause=function(){return en("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(en("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this};function Xj(t){var e=t._readableState;for(en("flow",e.flowing);e.flowing&&t.read()!==null;);}mn.prototype.wrap=function(t){var e=this,r=this._readableState,o=!1;t.on("end",function(){if(en("wrapped end"),r.decoder&&!r.ended){var u=r.decoder.end();u&&u.length&&e.push(u)}e.push(null)}),t.on("data",function(u){if(en("wrapped data"),r.decoder&&(u=r.decoder.write(u)),!(r.objectMode&&u==null)&&!(!r.objectMode&&(!u||!u.length))){var A=e.push(u);A||(o=!0,t.pause())}});for(var a in t)this[a]===void 0&&typeof t[a]=="function"&&(this[a]=function(A){return function(){return t[A].apply(t,arguments)}}(a));for(var n=0;n=e.length?(e.decoder?r=e.buffer.join(""):e.buffer.length===1?r=e.buffer.first():r=e.buffer.concat(e.length),e.buffer.clear()):r=e.buffer.consume(t,e.decoder),r}function Vj(t){var e=t._readableState;en("endReadable",e.endEmitted),e.endEmitted||(e.ended=!0,process.nextTick(BBt,e,t))}function BBt(t,e){if(en("endReadableNT",t.endEmitted,t.length),!t.endEmitted&&t.length===0&&(t.endEmitted=!0,e.readable=!1,e.emit("end"),t.autoDestroy)){var r=e._writableState;(!r||r.autoDestroy&&r.finished)&&e.destroy()}}typeof Symbol=="function"&&(mn.from=function(t,e){return Yj===void 0&&(Yj=c2e()),Yj(mn,t,e)});function y2e(t,e){for(var r=0,o=t.length;r{"use strict";w2e.exports=sp;var qQ=Q0().codes,vBt=qQ.ERR_METHOD_NOT_IMPLEMENTED,DBt=qQ.ERR_MULTIPLE_CALLBACK,SBt=qQ.ERR_TRANSFORM_ALREADY_TRANSFORMING,PBt=qQ.ERR_TRANSFORM_WITH_LENGTH_0,jQ=Cm();F0()(sp,jQ);function bBt(t,e){var r=this._transformState;r.transforming=!1;var o=r.writecb;if(o===null)return this.emit("error",new DBt);r.writechunk=null,r.writecb=null,e!=null&&this.push(e),o(t);var a=this._readableState;a.reading=!1,(a.needReadable||a.length{"use strict";B2e.exports=Iv;var I2e=Zj();F0()(Iv,I2e);function Iv(t){if(!(this instanceof Iv))return new Iv(t);I2e.call(this,t)}Iv.prototype._transform=function(t,e,r){r(null,t)}});var x2e=_((F$t,b2e)=>{"use strict";var $j;function kBt(t){var e=!1;return function(){e||(e=!0,t.apply(void 0,arguments))}}var P2e=Q0().codes,QBt=P2e.ERR_MISSING_ARGS,FBt=P2e.ERR_STREAM_DESTROYED;function D2e(t){if(t)throw t}function RBt(t){return t.setHeader&&typeof t.abort=="function"}function TBt(t,e,r,o){o=kBt(o);var a=!1;t.on("close",function(){a=!0}),$j===void 0&&($j=LQ()),$j(t,{readable:e,writable:r},function(u){if(u)return o(u);a=!0,o()});var n=!1;return function(u){if(!a&&!n){if(n=!0,RBt(t))return t.abort();if(typeof t.destroy=="function")return t.destroy();o(u||new FBt("pipe"))}}}function S2e(t){t()}function NBt(t,e){return t.pipe(e)}function LBt(t){return!t.length||typeof t[t.length-1]!="function"?D2e:t.pop()}function OBt(){for(var t=arguments.length,e=new Array(t),r=0;r0;return TBt(u,p,h,function(E){a||(a=E),E&&n.forEach(S2e),!p&&(n.forEach(S2e),o(a))})});return e.reduce(NBt)}b2e.exports=OBt});var tw=_((lc,vv)=>{var Bv=ve("stream");process.env.READABLE_STREAM==="disable"&&Bv?(vv.exports=Bv.Readable,Object.assign(vv.exports,Bv),vv.exports.Stream=Bv):(lc=vv.exports=Oj(),lc.Stream=Bv||lc,lc.Readable=lc,lc.Writable=Tj(),lc.Duplex=Cm(),lc.Transform=Zj(),lc.PassThrough=v2e(),lc.finished=LQ(),lc.pipeline=x2e())});var F2e=_((R$t,Q2e)=>{"use strict";var{Buffer:lu}=ve("buffer"),k2e=Symbol.for("BufferList");function ni(t){if(!(this instanceof ni))return new ni(t);ni._init.call(this,t)}ni._init=function(e){Object.defineProperty(this,k2e,{value:!0}),this._bufs=[],this.length=0,e&&this.append(e)};ni.prototype._new=function(e){return new ni(e)};ni.prototype._offset=function(e){if(e===0)return[0,0];let r=0;for(let o=0;othis.length||e<0)return;let r=this._offset(e);return this._bufs[r[0]][r[1]]};ni.prototype.slice=function(e,r){return typeof e=="number"&&e<0&&(e+=this.length),typeof r=="number"&&r<0&&(r+=this.length),this.copy(null,0,e,r)};ni.prototype.copy=function(e,r,o,a){if((typeof o!="number"||o<0)&&(o=0),(typeof a!="number"||a>this.length)&&(a=this.length),o>=this.length||a<=0)return e||lu.alloc(0);let n=!!e,u=this._offset(o),A=a-o,p=A,h=n&&r||0,E=u[1];if(o===0&&a===this.length){if(!n)return this._bufs.length===1?this._bufs[0]:lu.concat(this._bufs,this.length);for(let I=0;Iv)this._bufs[I].copy(e,h,E),h+=v;else{this._bufs[I].copy(e,h,E,E+p),h+=v;break}p-=v,E&&(E=0)}return e.length>h?e.slice(0,h):e};ni.prototype.shallowSlice=function(e,r){if(e=e||0,r=typeof r!="number"?this.length:r,e<0&&(e+=this.length),r<0&&(r+=this.length),e===r)return this._new();let o=this._offset(e),a=this._offset(r),n=this._bufs.slice(o[0],a[0]+1);return a[1]===0?n.pop():n[n.length-1]=n[n.length-1].slice(0,a[1]),o[1]!==0&&(n[0]=n[0].slice(o[1])),this._new(n)};ni.prototype.toString=function(e,r,o){return this.slice(r,o).toString(e)};ni.prototype.consume=function(e){if(e=Math.trunc(e),Number.isNaN(e)||e<=0)return this;for(;this._bufs.length;)if(e>=this._bufs[0].length)e-=this._bufs[0].length,this.length-=this._bufs[0].length,this._bufs.shift();else{this._bufs[0]=this._bufs[0].slice(e),this.length-=e;break}return this};ni.prototype.duplicate=function(){let e=this._new();for(let r=0;rthis.length?this.length:e;let o=this._offset(e),a=o[0],n=o[1];for(;a=t.length){let p=u.indexOf(t,n);if(p!==-1)return this._reverseOffset([a,p]);n=u.length-t.length+1}else{let p=this._reverseOffset([a,n]);if(this._match(p,t))return p;n++}n=0}return-1};ni.prototype._match=function(t,e){if(this.length-t{"use strict";var eG=tw().Duplex,MBt=F0(),Dv=F2e();function Uo(t){if(!(this instanceof Uo))return new Uo(t);if(typeof t=="function"){this._callback=t;let e=function(o){this._callback&&(this._callback(o),this._callback=null)}.bind(this);this.on("pipe",function(o){o.on("error",e)}),this.on("unpipe",function(o){o.removeListener("error",e)}),t=null}Dv._init.call(this,t),eG.call(this)}MBt(Uo,eG);Object.assign(Uo.prototype,Dv.prototype);Uo.prototype._new=function(e){return new Uo(e)};Uo.prototype._write=function(e,r,o){this._appendBuffer(e),typeof o=="function"&&o()};Uo.prototype._read=function(e){if(!this.length)return this.push(null);e=Math.min(e,this.length),this.push(this.slice(0,e)),this.consume(e)};Uo.prototype.end=function(e){eG.prototype.end.call(this,e),this._callback&&(this._callback(null,this.slice()),this._callback=null)};Uo.prototype._destroy=function(e,r){this._bufs.length=0,this.length=0,r(e)};Uo.prototype._isBufferList=function(e){return e instanceof Uo||e instanceof Dv||Uo.isBufferList(e)};Uo.isBufferList=Dv.isBufferList;GQ.exports=Uo;GQ.exports.BufferListStream=Uo;GQ.exports.BufferList=Dv});var nG=_(nw=>{var UBt=Buffer.alloc,_Bt="0000000000000000000",HBt="7777777777777777777",T2e="0".charCodeAt(0),N2e=Buffer.from("ustar\0","binary"),qBt=Buffer.from("00","binary"),jBt=Buffer.from("ustar ","binary"),GBt=Buffer.from(" \0","binary"),YBt=parseInt("7777",8),Sv=257,rG=263,WBt=function(t,e,r){return typeof t!="number"?r:(t=~~t,t>=e?e:t>=0||(t+=e,t>=0)?t:0)},KBt=function(t){switch(t){case 0:return"file";case 1:return"link";case 2:return"symlink";case 3:return"character-device";case 4:return"block-device";case 5:return"directory";case 6:return"fifo";case 7:return"contiguous-file";case 72:return"pax-header";case 55:return"pax-global-header";case 27:return"gnu-long-link-path";case 28:case 30:return"gnu-long-path"}return null},VBt=function(t){switch(t){case"file":return 0;case"link":return 1;case"symlink":return 2;case"character-device":return 3;case"block-device":return 4;case"directory":return 5;case"fifo":return 6;case"contiguous-file":return 7;case"pax-header":return 72}return 0},L2e=function(t,e,r,o){for(;re?HBt.slice(0,e)+" ":_Bt.slice(0,e-t.length)+t+" "};function JBt(t){var e;if(t[0]===128)e=!0;else if(t[0]===255)e=!1;else return null;for(var r=[],o=t.length-1;o>0;o--){var a=t[o];e?r.push(a):r.push(255-a)}var n=0,u=r.length;for(o=0;o=Math.pow(10,r)&&r++,e+r+t};nw.decodeLongPath=function(t,e){return rw(t,0,t.length,e)};nw.encodePax=function(t){var e="";t.name&&(e+=tG(" path="+t.name+` +`)),t.linkname&&(e+=tG(" linkpath="+t.linkname+` +`));var r=t.pax;if(r)for(var o in r)e+=tG(" "+o+"="+r[o]+` +`);return Buffer.from(e)};nw.decodePax=function(t){for(var e={};t.length;){for(var r=0;r100;){var a=r.indexOf("/");if(a===-1)return null;o+=o?"/"+r.slice(0,a):r.slice(0,a),r=r.slice(a+1)}return Buffer.byteLength(r)>100||Buffer.byteLength(o)>155||t.linkname&&Buffer.byteLength(t.linkname)>100?null:(e.write(r),e.write(O0(t.mode&YBt,6),100),e.write(O0(t.uid,6),108),e.write(O0(t.gid,6),116),e.write(O0(t.size,11),124),e.write(O0(t.mtime.getTime()/1e3|0,11),136),e[156]=T2e+VBt(t.type),t.linkname&&e.write(t.linkname,157),N2e.copy(e,Sv),qBt.copy(e,rG),t.uname&&e.write(t.uname,265),t.gname&&e.write(t.gname,297),e.write(O0(t.devmajor||0,6),329),e.write(O0(t.devminor||0,6),337),o&&e.write(o,345),e.write(O0(O2e(e),6),148),e)};nw.decode=function(t,e,r){var o=t[156]===0?0:t[156]-T2e,a=rw(t,0,100,e),n=M0(t,100,8),u=M0(t,108,8),A=M0(t,116,8),p=M0(t,124,12),h=M0(t,136,12),E=KBt(o),I=t[157]===0?null:rw(t,157,100,e),v=rw(t,265,32),x=rw(t,297,32),C=M0(t,329,8),R=M0(t,337,8),L=O2e(t);if(L===8*32)return null;if(L!==M0(t,148,8))throw new Error("Invalid tar header. Maybe the tar is corrupted or it needs to be gunzipped?");if(N2e.compare(t,Sv,Sv+6)===0)t[345]&&(a=rw(t,345,155,e)+"/"+a);else if(!(jBt.compare(t,Sv,Sv+6)===0&&GBt.compare(t,rG,rG+2)===0)){if(!r)throw new Error("Invalid tar header: unknown format.")}return o===0&&a&&a[a.length-1]==="/"&&(o=5),{name:a,mode:n,uid:u,gid:A,size:p,mtime:new Date(1e3*h),type:E,linkname:I,uname:v,gname:x,devmajor:C,devminor:R}}});var G2e=_((L$t,j2e)=>{var U2e=ve("util"),zBt=R2e(),Pv=nG(),_2e=tw().Writable,H2e=tw().PassThrough,q2e=function(){},M2e=function(t){return t&=511,t&&512-t},XBt=function(t,e){var r=new YQ(t,e);return r.end(),r},ZBt=function(t,e){return e.path&&(t.name=e.path),e.linkpath&&(t.linkname=e.linkpath),e.size&&(t.size=parseInt(e.size,10)),t.pax=e,t},YQ=function(t,e){this._parent=t,this.offset=e,H2e.call(this,{autoDestroy:!1})};U2e.inherits(YQ,H2e);YQ.prototype.destroy=function(t){this._parent.destroy(t)};var op=function(t){if(!(this instanceof op))return new op(t);_2e.call(this,t),t=t||{},this._offset=0,this._buffer=zBt(),this._missing=0,this._partial=!1,this._onparse=q2e,this._header=null,this._stream=null,this._overflow=null,this._cb=null,this._locked=!1,this._destroyed=!1,this._pax=null,this._paxGlobal=null,this._gnuLongPath=null,this._gnuLongLinkPath=null;var e=this,r=e._buffer,o=function(){e._continue()},a=function(v){if(e._locked=!1,v)return e.destroy(v);e._stream||o()},n=function(){e._stream=null;var v=M2e(e._header.size);v?e._parse(v,u):e._parse(512,I),e._locked||o()},u=function(){e._buffer.consume(M2e(e._header.size)),e._parse(512,I),o()},A=function(){var v=e._header.size;e._paxGlobal=Pv.decodePax(r.slice(0,v)),r.consume(v),n()},p=function(){var v=e._header.size;e._pax=Pv.decodePax(r.slice(0,v)),e._paxGlobal&&(e._pax=Object.assign({},e._paxGlobal,e._pax)),r.consume(v),n()},h=function(){var v=e._header.size;this._gnuLongPath=Pv.decodeLongPath(r.slice(0,v),t.filenameEncoding),r.consume(v),n()},E=function(){var v=e._header.size;this._gnuLongLinkPath=Pv.decodeLongPath(r.slice(0,v),t.filenameEncoding),r.consume(v),n()},I=function(){var v=e._offset,x;try{x=e._header=Pv.decode(r.slice(0,512),t.filenameEncoding,t.allowUnknownFormat)}catch(C){e.emit("error",C)}if(r.consume(512),!x){e._parse(512,I),o();return}if(x.type==="gnu-long-path"){e._parse(x.size,h),o();return}if(x.type==="gnu-long-link-path"){e._parse(x.size,E),o();return}if(x.type==="pax-global-header"){e._parse(x.size,A),o();return}if(x.type==="pax-header"){e._parse(x.size,p),o();return}if(e._gnuLongPath&&(x.name=e._gnuLongPath,e._gnuLongPath=null),e._gnuLongLinkPath&&(x.linkname=e._gnuLongLinkPath,e._gnuLongLinkPath=null),e._pax&&(e._header=x=ZBt(x,e._pax),e._pax=null),e._locked=!0,!x.size||x.type==="directory"){e._parse(512,I),e.emit("entry",x,XBt(e,v),a);return}e._stream=new YQ(e,v),e.emit("entry",x,e._stream,a),e._parse(x.size,n),o()};this._onheader=I,this._parse(512,I)};U2e.inherits(op,_2e);op.prototype.destroy=function(t){this._destroyed||(this._destroyed=!0,t&&this.emit("error",t),this.emit("close"),this._stream&&this._stream.emit("close"))};op.prototype._parse=function(t,e){this._destroyed||(this._offset+=t,this._missing=t,e===this._onheader&&(this._partial=!1),this._onparse=e)};op.prototype._continue=function(){if(!this._destroyed){var t=this._cb;this._cb=q2e,this._overflow?this._write(this._overflow,void 0,t):t()}};op.prototype._write=function(t,e,r){if(!this._destroyed){var o=this._stream,a=this._buffer,n=this._missing;if(t.length&&(this._partial=!0),t.lengthn&&(u=t.slice(n),t=t.slice(0,n)),o?o.end(t):a.append(t),this._overflow=u,this._onparse()}};op.prototype._final=function(t){if(this._partial)return this.destroy(new Error("Unexpected end of data"));t()};j2e.exports=op});var W2e=_((O$t,Y2e)=>{Y2e.exports=ve("fs").constants||ve("constants")});var X2e=_((M$t,z2e)=>{var iw=W2e(),K2e=LM(),KQ=F0(),$Bt=Buffer.alloc,V2e=tw().Readable,sw=tw().Writable,evt=ve("string_decoder").StringDecoder,WQ=nG(),tvt=parseInt("755",8),rvt=parseInt("644",8),J2e=$Bt(1024),sG=function(){},iG=function(t,e){e&=511,e&&t.push(J2e.slice(0,512-e))};function nvt(t){switch(t&iw.S_IFMT){case iw.S_IFBLK:return"block-device";case iw.S_IFCHR:return"character-device";case iw.S_IFDIR:return"directory";case iw.S_IFIFO:return"fifo";case iw.S_IFLNK:return"symlink"}return"file"}var VQ=function(t){sw.call(this),this.written=0,this._to=t,this._destroyed=!1};KQ(VQ,sw);VQ.prototype._write=function(t,e,r){if(this.written+=t.length,this._to.push(t))return r();this._to._drain=r};VQ.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit("close"))};var JQ=function(){sw.call(this),this.linkname="",this._decoder=new evt("utf-8"),this._destroyed=!1};KQ(JQ,sw);JQ.prototype._write=function(t,e,r){this.linkname+=this._decoder.write(t),r()};JQ.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit("close"))};var bv=function(){sw.call(this),this._destroyed=!1};KQ(bv,sw);bv.prototype._write=function(t,e,r){r(new Error("No body allowed for this entry"))};bv.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit("close"))};var CA=function(t){if(!(this instanceof CA))return new CA(t);V2e.call(this,t),this._drain=sG,this._finalized=!1,this._finalizing=!1,this._destroyed=!1,this._stream=null};KQ(CA,V2e);CA.prototype.entry=function(t,e,r){if(this._stream)throw new Error("already piping an entry");if(!(this._finalized||this._destroyed)){typeof e=="function"&&(r=e,e=null),r||(r=sG);var o=this;if((!t.size||t.type==="symlink")&&(t.size=0),t.type||(t.type=nvt(t.mode)),t.mode||(t.mode=t.type==="directory"?tvt:rvt),t.uid||(t.uid=0),t.gid||(t.gid=0),t.mtime||(t.mtime=new Date),typeof e=="string"&&(e=Buffer.from(e)),Buffer.isBuffer(e)){t.size=e.length,this._encode(t);var a=this.push(e);return iG(o,t.size),a?process.nextTick(r):this._drain=r,new bv}if(t.type==="symlink"&&!t.linkname){var n=new JQ;return K2e(n,function(A){if(A)return o.destroy(),r(A);t.linkname=n.linkname,o._encode(t),r()}),n}if(this._encode(t),t.type!=="file"&&t.type!=="contiguous-file")return process.nextTick(r),new bv;var u=new VQ(this);return this._stream=u,K2e(u,function(A){if(o._stream=null,A)return o.destroy(),r(A);if(u.written!==t.size)return o.destroy(),r(new Error("size mismatch"));iG(o,t.size),o._finalizing&&o.finalize(),r()}),u}};CA.prototype.finalize=function(){if(this._stream){this._finalizing=!0;return}this._finalized||(this._finalized=!0,this.push(J2e),this.push(null))};CA.prototype.destroy=function(t){this._destroyed||(this._destroyed=!0,t&&this.emit("error",t),this.emit("close"),this._stream&&this._stream.destroy&&this._stream.destroy())};CA.prototype._encode=function(t){if(!t.pax){var e=WQ.encode(t);if(e){this.push(e);return}}this._encodePax(t)};CA.prototype._encodePax=function(t){var e=WQ.encodePax({name:t.name,linkname:t.linkname,pax:t.pax}),r={name:"PaxHeader",mode:t.mode,uid:t.uid,gid:t.gid,size:e.length,mtime:t.mtime,type:"pax-header",linkname:t.linkname&&"PaxHeader",uname:t.uname,gname:t.gname,devmajor:t.devmajor,devminor:t.devminor};this.push(WQ.encode(r)),this.push(e),iG(this,e.length),r.size=t.size,r.type=t.type,this.push(WQ.encode(r))};CA.prototype._read=function(t){var e=this._drain;this._drain=sG,e()};z2e.exports=CA});var Z2e=_(oG=>{oG.extract=G2e();oG.pack=X2e()});var uBe=_((ier,cBe)=>{"use strict";var vm=class{constructor(e,r,o){this.__specs=e||{},Object.keys(this.__specs).forEach(a=>{if(typeof this.__specs[a]=="string"){let n=this.__specs[a],u=this.__specs[n];if(u){let A=u.aliases||[];A.push(a,n),u.aliases=[...new Set(A)],this.__specs[a]=u}else throw new Error(`Alias refers to invalid key: ${n} -> ${a}`)}}),this.__opts=r||{},this.__providers=aBe(o.filter(a=>a!=null&&typeof a=="object")),this.__isFiggyPudding=!0}get(e){return fG(this,e,!0)}get[Symbol.toStringTag](){return"FiggyPudding"}forEach(e,r=this){for(let[o,a]of this.entries())e.call(r,a,o,this)}toJSON(){let e={};return this.forEach((r,o)=>{e[o]=r}),e}*entries(e){for(let o of Object.keys(this.__specs))yield[o,this.get(o)];let r=e||this.__opts.other;if(r){let o=new Set;for(let a of this.__providers){let n=a.entries?a.entries(r):yvt(a);for(let[u,A]of n)r(u)&&!o.has(u)&&(o.add(u),yield[u,A])}}}*[Symbol.iterator](){for(let[e,r]of this.entries())yield[e,r]}*keys(){for(let[e]of this.entries())yield e}*values(){for(let[,e]of this.entries())yield e}concat(...e){return new Proxy(new vm(this.__specs,this.__opts,aBe(this.__providers).concat(e)),lBe)}};try{let t=ve("util");vm.prototype[t.inspect.custom]=function(e,r){return this[Symbol.toStringTag]+" "+t.inspect(this.toJSON(),r)}}catch{}function dvt(t){throw Object.assign(new Error(`invalid config key requested: ${t}`),{code:"EBADKEY"})}function fG(t,e,r){let o=t.__specs[e];if(r&&!o&&(!t.__opts.other||!t.__opts.other(e)))dvt(e);else{o||(o={});let a;for(let n of t.__providers){if(a=oBe(e,n),a===void 0&&o.aliases&&o.aliases.length){for(let u of o.aliases)if(u!==e&&(a=oBe(u,n),a!==void 0))break}if(a!==void 0)break}return a===void 0&&o.default!==void 0?typeof o.default=="function"?o.default(t):o.default:a}}function oBe(t,e){let r;return e.__isFiggyPudding?r=fG(e,t,!1):typeof e.get=="function"?r=e.get(t):r=e[t],r}var lBe={has(t,e){return e in t.__specs&&fG(t,e,!1)!==void 0},ownKeys(t){return Object.keys(t.__specs)},get(t,e){return typeof e=="symbol"||e.slice(0,2)==="__"||e in vm.prototype?t[e]:t.get(e)},set(t,e,r){if(typeof e=="symbol"||e.slice(0,2)==="__")return t[e]=r,!0;throw new Error("figgyPudding options cannot be modified. Use .concat() instead.")},deleteProperty(){throw new Error("figgyPudding options cannot be deleted. Use .concat() and shadow them instead.")}};cBe.exports=mvt;function mvt(t,e){function r(...o){return new Proxy(new vm(t,e,o),lBe)}return r}function aBe(t){let e=[];return t.forEach(r=>e.unshift(r)),e}function yvt(t){return Object.keys(t).map(e=>[e,t[e]])}});var pBe=_((ser,BA)=>{"use strict";var kv=ve("crypto"),Evt=uBe(),Cvt=ve("stream").Transform,ABe=["sha256","sha384","sha512"],wvt=/^[a-z0-9+/]+(?:=?=?)$/i,Ivt=/^([^-]+)-([^?]+)([?\S*]*)$/,Bvt=/^([^-]+)-([A-Za-z0-9+/=]{44,88})(\?[\x21-\x7E]*)*$/,vvt=/^[\x21-\x7E]+$/,ia=Evt({algorithms:{default:["sha512"]},error:{default:!1},integrity:{},options:{default:[]},pickAlgorithm:{default:()=>Fvt},Promise:{default:()=>Promise},sep:{default:" "},single:{default:!1},size:{},strict:{default:!1}}),_0=class{get isHash(){return!0}constructor(e,r){r=ia(r);let o=!!r.strict;this.source=e.trim();let a=this.source.match(o?Bvt:Ivt);if(!a||o&&!ABe.some(u=>u===a[1]))return;this.algorithm=a[1],this.digest=a[2];let n=a[3];this.options=n?n.slice(1).split("?"):[]}hexDigest(){return this.digest&&Buffer.from(this.digest,"base64").toString("hex")}toJSON(){return this.toString()}toString(e){if(e=ia(e),e.strict&&!(ABe.some(o=>o===this.algorithm)&&this.digest.match(wvt)&&(this.options||[]).every(o=>o.match(vvt))))return"";let r=this.options&&this.options.length?`?${this.options.join("?")}`:"";return`${this.algorithm}-${this.digest}${r}`}},Dm=class{get isIntegrity(){return!0}toJSON(){return this.toString()}toString(e){e=ia(e);let r=e.sep||" ";return e.strict&&(r=r.replace(/\S+/g," ")),Object.keys(this).map(o=>this[o].map(a=>_0.prototype.toString.call(a,e)).filter(a=>a.length).join(r)).filter(o=>o.length).join(r)}concat(e,r){r=ia(r);let o=typeof e=="string"?e:xv(e,r);return IA(`${this.toString(r)} ${o}`,r)}hexDigest(){return IA(this,{single:!0}).hexDigest()}match(e,r){r=ia(r);let o=IA(e,r),a=o.pickAlgorithm(r);return this[a]&&o[a]&&this[a].find(n=>o[a].find(u=>n.digest===u.digest))||!1}pickAlgorithm(e){e=ia(e);let r=e.pickAlgorithm,o=Object.keys(this);if(!o.length)throw new Error(`No algorithms available for ${JSON.stringify(this.toString())}`);return o.reduce((a,n)=>r(a,n)||a)}};BA.exports.parse=IA;function IA(t,e){if(e=ia(e),typeof t=="string")return pG(t,e);if(t.algorithm&&t.digest){let r=new Dm;return r[t.algorithm]=[t],pG(xv(r,e),e)}else return pG(xv(t,e),e)}function pG(t,e){return e.single?new _0(t,e):t.trim().split(/\s+/).reduce((r,o)=>{let a=new _0(o,e);if(a.algorithm&&a.digest){let n=a.algorithm;r[n]||(r[n]=[]),r[n].push(a)}return r},new Dm)}BA.exports.stringify=xv;function xv(t,e){return e=ia(e),t.algorithm&&t.digest?_0.prototype.toString.call(t,e):typeof t=="string"?xv(IA(t,e),e):Dm.prototype.toString.call(t,e)}BA.exports.fromHex=Dvt;function Dvt(t,e,r){r=ia(r);let o=r.options&&r.options.length?`?${r.options.join("?")}`:"";return IA(`${e}-${Buffer.from(t,"hex").toString("base64")}${o}`,r)}BA.exports.fromData=Svt;function Svt(t,e){e=ia(e);let r=e.algorithms,o=e.options&&e.options.length?`?${e.options.join("?")}`:"";return r.reduce((a,n)=>{let u=kv.createHash(n).update(t).digest("base64"),A=new _0(`${n}-${u}${o}`,e);if(A.algorithm&&A.digest){let p=A.algorithm;a[p]||(a[p]=[]),a[p].push(A)}return a},new Dm)}BA.exports.fromStream=Pvt;function Pvt(t,e){e=ia(e);let r=e.Promise||Promise,o=hG(e);return new r((a,n)=>{t.pipe(o),t.on("error",n),o.on("error",n);let u;o.on("integrity",A=>{u=A}),o.on("end",()=>a(u)),o.on("data",()=>{})})}BA.exports.checkData=bvt;function bvt(t,e,r){if(r=ia(r),e=IA(e,r),!Object.keys(e).length){if(r.error)throw Object.assign(new Error("No valid integrity hashes to check against"),{code:"EINTEGRITY"});return!1}let o=e.pickAlgorithm(r),a=kv.createHash(o).update(t).digest("base64"),n=IA({algorithm:o,digest:a}),u=n.match(e,r);if(u||!r.error)return u;if(typeof r.size=="number"&&t.length!==r.size){let A=new Error(`data size mismatch when checking ${e}. + Wanted: ${r.size} + Found: ${t.length}`);throw A.code="EBADSIZE",A.found=t.length,A.expected=r.size,A.sri=e,A}else{let A=new Error(`Integrity checksum failed when using ${o}: Wanted ${e}, but got ${n}. (${t.length} bytes)`);throw A.code="EINTEGRITY",A.found=n,A.expected=e,A.algorithm=o,A.sri=e,A}}BA.exports.checkStream=xvt;function xvt(t,e,r){r=ia(r);let o=r.Promise||Promise,a=hG(r.concat({integrity:e}));return new o((n,u)=>{t.pipe(a),t.on("error",u),a.on("error",u);let A;a.on("verified",p=>{A=p}),a.on("end",()=>n(A)),a.on("data",()=>{})})}BA.exports.integrityStream=hG;function hG(t){t=ia(t);let e=t.integrity&&IA(t.integrity,t),r=e&&Object.keys(e).length,o=r&&e.pickAlgorithm(t),a=r&&e[o],n=Array.from(new Set(t.algorithms.concat(o?[o]:[]))),u=n.map(kv.createHash),A=0,p=new Cvt({transform(h,E,I){A+=h.length,u.forEach(v=>v.update(h,E)),I(null,h,E)}}).on("end",()=>{let h=t.options&&t.options.length?`?${t.options.join("?")}`:"",E=IA(u.map((v,x)=>`${n[x]}-${v.digest("base64")}${h}`).join(" "),t),I=r&&E.match(e,t);if(typeof t.size=="number"&&A!==t.size){let v=new Error(`stream size mismatch when checking ${e}. + Wanted: ${t.size} + Found: ${A}`);v.code="EBADSIZE",v.found=A,v.expected=t.size,v.sri=e,p.emit("error",v)}else if(t.integrity&&!I){let v=new Error(`${e} integrity checksum failed when using ${o}: wanted ${a} but got ${E}. (${A} bytes)`);v.code="EINTEGRITY",v.found=E,v.expected=a,v.algorithm=o,v.sri=e,p.emit("error",v)}else p.emit("size",A),p.emit("integrity",E),I&&p.emit("verified",I)});return p}BA.exports.create=kvt;function kvt(t){t=ia(t);let e=t.algorithms,r=t.options.length?`?${t.options.join("?")}`:"",o=e.map(kv.createHash);return{update:function(a,n){return o.forEach(u=>u.update(a,n)),this},digest:function(a){return e.reduce((u,A)=>{let p=o.shift().digest("base64"),h=new _0(`${A}-${p}${r}`,t);if(h.algorithm&&h.digest){let E=h.algorithm;u[E]||(u[E]=[]),u[E].push(h)}return u},new Dm)}}}var Qvt=new Set(kv.getHashes()),fBe=["md5","whirlpool","sha1","sha224","sha256","sha384","sha512","sha3","sha3-256","sha3-384","sha3-512","sha3_256","sha3_384","sha3_512"].filter(t=>Qvt.has(t));function Fvt(t,e){return fBe.indexOf(t.toLowerCase())>=fBe.indexOf(e.toLowerCase())?t:e}});var qBe=_((lir,HBe)=>{var FDt=lL();function RDt(t){return FDt(t)?void 0:t}HBe.exports=RDt});var GBe=_((cir,jBe)=>{var TDt=Hb(),NDt=x8(),LDt=R8(),ODt=jd(),MDt=dd(),UDt=qBe(),_Dt=v_(),HDt=b8(),qDt=1,jDt=2,GDt=4,YDt=_Dt(function(t,e){var r={};if(t==null)return r;var o=!1;e=TDt(e,function(n){return n=ODt(n,t),o||(o=n.length>1),n}),MDt(t,HDt(t),r),o&&(r=NDt(r,qDt|jDt|GDt,UDt));for(var a=e.length;a--;)LDt(r,e[a]);return r});jBe.exports=YDt});St();Ye();St();var JBe=ve("child_process"),zBe=$e(td());qt();var AC=new Map([]);var a2={};Vt(a2,{BaseCommand:()=>ut,WorkspaceRequiredError:()=>rr,getCli:()=>$pe,getDynamicLibs:()=>Zpe,getPluginConfiguration:()=>pC,openWorkspace:()=>fC,pluginCommands:()=>AC,runExit:()=>nk});qt();var ut=class extends nt{constructor(){super(...arguments);this.cwd=ge.String("--cwd",{hidden:!0})}validateAndExecute(){if(typeof this.cwd<"u")throw new it("The --cwd option is ambiguous when used anywhere else than the very first parameter provided in the command line, before even the command path");return super.validateAndExecute()}};Ye();St();qt();var rr=class extends it{constructor(e,r){let o=V.relative(e,r),a=V.join(e,Ot.fileName);super(`This command can only be run from within a workspace of your project (${o} isn't a workspace of ${a}).`)}};Ye();St();nA();Nl();k1();qt();var RAt=$e(zn());Za();var Zpe=()=>new Map([["@yarnpkg/cli",a2],["@yarnpkg/core",o2],["@yarnpkg/fslib",Vw],["@yarnpkg/libzip",x1],["@yarnpkg/parsers",rI],["@yarnpkg/shell",T1],["clipanion",hI],["semver",RAt],["typanion",Vo]]);Ye();async function fC(t,e){let{project:r,workspace:o}=await Pt.find(t,e);if(!o)throw new rr(r.cwd,e);return o}Ye();St();nA();Nl();k1();qt();var eSt=$e(zn());Za();var $8={};Vt($8,{AddCommand:()=>kh,BinCommand:()=>Qh,CacheCleanCommand:()=>Fh,ClipanionCommand:()=>Kd,ConfigCommand:()=>Lh,ConfigGetCommand:()=>Rh,ConfigSetCommand:()=>Th,ConfigUnsetCommand:()=>Nh,DedupeCommand:()=>Oh,EntryCommand:()=>mC,ExecCommand:()=>Mh,ExplainCommand:()=>Hh,ExplainPeerRequirementsCommand:()=>Uh,HelpCommand:()=>Vd,InfoCommand:()=>qh,LinkCommand:()=>Gh,NodeCommand:()=>Yh,PluginCheckCommand:()=>Wh,PluginImportCommand:()=>Jh,PluginImportSourcesCommand:()=>zh,PluginListCommand:()=>Kh,PluginRemoveCommand:()=>Xh,PluginRuntimeCommand:()=>Zh,RebuildCommand:()=>$h,RemoveCommand:()=>e0,RunCommand:()=>t0,RunIndexCommand:()=>Xd,SetResolutionCommand:()=>r0,SetVersionCommand:()=>_h,SetVersionSourcesCommand:()=>Vh,UnlinkCommand:()=>n0,UpCommand:()=>Jf,VersionCommand:()=>Jd,WhyCommand:()=>i0,WorkspaceCommand:()=>a0,WorkspacesListCommand:()=>o0,YarnCommand:()=>jh,dedupeUtils:()=>pk,default:()=>Sgt,suggestUtils:()=>zc});var kde=$e(td());Ye();Ye();Ye();qt();var _0e=$e(f2());Za();var zc={};Vt(zc,{Modifier:()=>B8,Strategy:()=>uk,Target:()=>p2,WorkspaceModifier:()=>N0e,applyModifier:()=>$ft,extractDescriptorFromPath:()=>v8,extractRangeModifier:()=>L0e,fetchDescriptorFrom:()=>D8,findProjectDescriptors:()=>U0e,getModifier:()=>h2,getSuggestedDescriptors:()=>g2,makeWorkspaceDescriptor:()=>M0e,toWorkspaceModifier:()=>O0e});Ye();Ye();St();var I8=$e(zn()),Xft="workspace:",p2=(o=>(o.REGULAR="dependencies",o.DEVELOPMENT="devDependencies",o.PEER="peerDependencies",o))(p2||{}),B8=(o=>(o.CARET="^",o.TILDE="~",o.EXACT="",o))(B8||{}),N0e=(o=>(o.CARET="^",o.TILDE="~",o.EXACT="*",o))(N0e||{}),uk=(n=>(n.KEEP="keep",n.REUSE="reuse",n.PROJECT="project",n.LATEST="latest",n.CACHE="cache",n))(uk||{});function h2(t,e){return t.exact?"":t.caret?"^":t.tilde?"~":e.configuration.get("defaultSemverRangePrefix")}var Zft=/^([\^~]?)[0-9]+(?:\.[0-9]+){0,2}(?:-\S+)?$/;function L0e(t,{project:e}){let r=t.match(Zft);return r?r[1]:e.configuration.get("defaultSemverRangePrefix")}function $ft(t,e){let{protocol:r,source:o,params:a,selector:n}=W.parseRange(t.range);return I8.default.valid(n)&&(n=`${e}${t.range}`),W.makeDescriptor(t,W.makeRange({protocol:r,source:o,params:a,selector:n}))}function O0e(t){switch(t){case"^":return"^";case"~":return"~";case"":return"*";default:throw new Error(`Assertion failed: Unknown modifier: "${t}"`)}}function M0e(t,e){return W.makeDescriptor(t.anchoredDescriptor,`${Xft}${O0e(e)}`)}async function U0e(t,{project:e,target:r}){let o=new Map,a=n=>{let u=o.get(n.descriptorHash);return u||o.set(n.descriptorHash,u={descriptor:n,locators:[]}),u};for(let n of e.workspaces)if(r==="peerDependencies"){let u=n.manifest.peerDependencies.get(t.identHash);u!==void 0&&a(u).locators.push(n.anchoredLocator)}else{let u=n.manifest.dependencies.get(t.identHash),A=n.manifest.devDependencies.get(t.identHash);r==="devDependencies"?A!==void 0?a(A).locators.push(n.anchoredLocator):u!==void 0&&a(u).locators.push(n.anchoredLocator):u!==void 0?a(u).locators.push(n.anchoredLocator):A!==void 0&&a(A).locators.push(n.anchoredLocator)}return o}async function v8(t,{cwd:e,workspace:r}){return await ept(async o=>{V.isAbsolute(t)||(t=V.relative(r.cwd,V.resolve(e,t)),t.match(/^\.{0,2}\//)||(t=`./${t}`));let{project:a}=r,n=await D8(W.makeIdent(null,"archive"),t,{project:r.project,cache:o,workspace:r});if(!n)throw new Error("Assertion failed: The descriptor should have been found");let u=new Qi,A=a.configuration.makeResolver(),p=a.configuration.makeFetcher(),h={checksums:a.storedChecksums,project:a,cache:o,fetcher:p,report:u,resolver:A},E=A.bindDescriptor(n,r.anchoredLocator,h),I=W.convertDescriptorToLocator(E),v=await p.fetch(I,h),x=await Ot.find(v.prefixPath,{baseFs:v.packageFs});if(!x.name)throw new Error("Target path doesn't have a name");return W.makeDescriptor(x.name,t)})}async function g2(t,{project:e,workspace:r,cache:o,target:a,fixed:n,modifier:u,strategies:A,maxResults:p=1/0}){if(!(p>=0))throw new Error(`Invalid maxResults (${p})`);let[h,E]=t.range!=="unknown"?n||kr.validRange(t.range)||!t.range.match(/^[a-z0-9._-]+$/i)?[t.range,"latest"]:["unknown",t.range]:["unknown","latest"];if(h!=="unknown")return{suggestions:[{descriptor:t,name:`Use ${W.prettyDescriptor(e.configuration,t)}`,reason:"(unambiguous explicit request)"}],rejections:[]};let I=typeof r<"u"&&r!==null&&r.manifest[a].get(t.identHash)||null,v=[],x=[],C=async R=>{try{await R()}catch(L){x.push(L)}};for(let R of A){if(v.length>=p)break;switch(R){case"keep":await C(async()=>{I&&v.push({descriptor:I,name:`Keep ${W.prettyDescriptor(e.configuration,I)}`,reason:"(no changes)"})});break;case"reuse":await C(async()=>{for(let{descriptor:L,locators:U}of(await U0e(t,{project:e,target:a})).values()){if(U.length===1&&U[0].locatorHash===r.anchoredLocator.locatorHash&&A.includes("keep"))continue;let J=`(originally used by ${W.prettyLocator(e.configuration,U[0])}`;J+=U.length>1?` and ${U.length-1} other${U.length>2?"s":""})`:")",v.push({descriptor:L,name:`Reuse ${W.prettyDescriptor(e.configuration,L)}`,reason:J})}});break;case"cache":await C(async()=>{for(let L of e.storedDescriptors.values())L.identHash===t.identHash&&v.push({descriptor:L,name:`Reuse ${W.prettyDescriptor(e.configuration,L)}`,reason:"(already used somewhere in the lockfile)"})});break;case"project":await C(async()=>{if(r.manifest.name!==null&&t.identHash===r.manifest.name.identHash)return;let L=e.tryWorkspaceByIdent(t);if(L===null)return;let U=M0e(L,u);v.push({descriptor:U,name:`Attach ${W.prettyDescriptor(e.configuration,U)}`,reason:`(local workspace at ${de.pretty(e.configuration,L.relativeCwd,de.Type.PATH)})`})});break;case"latest":{let L=e.configuration.get("enableNetwork"),U=e.configuration.get("enableOfflineMode");await C(async()=>{if(a==="peerDependencies")v.push({descriptor:W.makeDescriptor(t,"*"),name:"Use *",reason:"(catch-all peer dependency pattern)"});else if(!L&&!U)v.push({descriptor:null,name:"Resolve from latest",reason:de.pretty(e.configuration,"(unavailable because enableNetwork is toggled off)","grey")});else{let J=await D8(t,E,{project:e,cache:o,workspace:r,modifier:u});J&&v.push({descriptor:J,name:`Use ${W.prettyDescriptor(e.configuration,J)}`,reason:`(resolved from ${U?"the cache":"latest"})`})}})}break}}return{suggestions:v.slice(0,p),rejections:x.slice(0,p)}}async function D8(t,e,{project:r,cache:o,workspace:a,preserveModifier:n=!0,modifier:u}){let A=r.configuration.normalizeDependency(W.makeDescriptor(t,e)),p=new Qi,h=r.configuration.makeFetcher(),E=r.configuration.makeResolver(),I={project:r,fetcher:h,cache:o,checksums:r.storedChecksums,report:p,cacheOptions:{skipIntegrityCheck:!0}},v={...I,resolver:E,fetchOptions:I},x=E.bindDescriptor(A,a.anchoredLocator,v),C=await E.getCandidates(x,{},v);if(C.length===0)return null;let R=C[0],{protocol:L,source:U,params:J,selector:te}=W.parseRange(W.convertToManifestRange(R.reference));if(L===r.configuration.get("defaultProtocol")&&(L=null),I8.default.valid(te)){let ae=te;if(typeof u<"u")te=u+te;else if(n!==!1){let me=typeof n=="string"?n:A.range;te=L0e(me,{project:r})+te}let fe=W.makeDescriptor(R,W.makeRange({protocol:L,source:U,params:J,selector:te}));(await E.getCandidates(r.configuration.normalizeDependency(fe),{},v)).length!==1&&(te=ae)}return W.makeDescriptor(R,W.makeRange({protocol:L,source:U,params:J,selector:te}))}async function ept(t){return await oe.mktempPromise(async e=>{let r=Ke.create(e);return r.useWithSource(e,{enableMirror:!1,compressionLevel:0},e,{overwrite:!0}),await t(new Lr(e,{configuration:r,check:!1,immutable:!1}))})}var kh=class extends ut{constructor(){super(...arguments);this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.fixed=ge.Boolean("-F,--fixed",!1,{description:"Store dependency tags as-is instead of resolving them"});this.exact=ge.Boolean("-E,--exact",!1,{description:"Don't use any semver modifier on the resolved range"});this.tilde=ge.Boolean("-T,--tilde",!1,{description:"Use the `~` semver modifier on the resolved range"});this.caret=ge.Boolean("-C,--caret",!1,{description:"Use the `^` semver modifier on the resolved range"});this.dev=ge.Boolean("-D,--dev",!1,{description:"Add a package as a dev dependency"});this.peer=ge.Boolean("-P,--peer",!1,{description:"Add a package as a peer dependency"});this.optional=ge.Boolean("-O,--optional",!1,{description:"Add / upgrade a package to an optional regular / peer dependency"});this.preferDev=ge.Boolean("--prefer-dev",!1,{description:"Add / upgrade a package to a dev dependency"});this.interactive=ge.Boolean("-i,--interactive",{description:"Reuse the specified package from other workspaces in the project"});this.cached=ge.Boolean("--cached",!1,{description:"Reuse the highest version already used somewhere within the project"});this.mode=ge.String("--mode",{description:"Change what artifacts installs generate",validator:Ks(pl)});this.silent=ge.Boolean("--silent",{hidden:!0});this.packages=ge.Rest()}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Pt.find(r,this.context.cwd),n=await Lr.find(r);if(!a)throw new rr(o.cwd,this.context.cwd);await o.restoreInstallState({restoreResolutions:!1});let u=this.fixed,A=this.interactive??r.get("preferInteractive"),p=A||r.get("preferReuse"),h=h2(this,o),E=[p?"reuse":void 0,"project",this.cached?"cache":void 0,"latest"].filter(U=>typeof U<"u"),I=A?1/0:1,v=await Promise.all(this.packages.map(async U=>{let J=U.match(/^\.{0,2}\//)?await v8(U,{cwd:this.context.cwd,workspace:a}):W.tryParseDescriptor(U),te=U.match(/^(https?:|git@github)/);if(te)throw new it(`It seems you are trying to add a package using a ${de.pretty(r,`${te[0]}...`,de.Type.RANGE)} url; we now require package names to be explicitly specified. +Try running the command again with the package name prefixed: ${de.pretty(r,"yarn add",de.Type.CODE)} ${de.pretty(r,W.makeDescriptor(W.makeIdent(null,"my-package"),`${te[0]}...`),de.Type.DESCRIPTOR)}`);if(!J)throw new it(`The ${de.pretty(r,U,de.Type.CODE)} string didn't match the required format (package-name@range). Did you perhaps forget to explicitly reference the package name?`);let ae=tpt(a,J,{dev:this.dev,peer:this.peer,preferDev:this.preferDev,optional:this.optional});return await Promise.all(ae.map(async ce=>{let me=await g2(J,{project:o,workspace:a,cache:n,fixed:u,target:ce,modifier:h,strategies:E,maxResults:I});return{request:J,suggestedDescriptors:me,target:ce}}))})).then(U=>U.flat()),x=await AA.start({configuration:r,stdout:this.context.stdout,suggestInstall:!1},async U=>{for(let{request:J,suggestedDescriptors:{suggestions:te,rejections:ae}}of v)if(te.filter(ce=>ce.descriptor!==null).length===0){let[ce]=ae;if(typeof ce>"u")throw new Error("Assertion failed: Expected an error to have been set");o.configuration.get("enableNetwork")?U.reportError(27,`${W.prettyDescriptor(r,J)} can't be resolved to a satisfying range`):U.reportError(27,`${W.prettyDescriptor(r,J)} can't be resolved to a satisfying range (note: network resolution has been disabled)`),U.reportSeparator(),U.reportExceptionOnce(ce)}});if(x.hasErrors())return x.exitCode();let C=!1,R=[],L=[];for(let{suggestedDescriptors:{suggestions:U},target:J}of v){let te,ae=U.filter(he=>he.descriptor!==null),fe=ae[0].descriptor,ce=ae.every(he=>W.areDescriptorsEqual(he.descriptor,fe));ae.length===1||ce?te=fe:(C=!0,{answer:te}=await(0,_0e.prompt)({type:"select",name:"answer",message:"Which range do you want to use?",choices:U.map(({descriptor:he,name:Be,reason:we})=>he?{name:Be,hint:we,descriptor:he}:{name:Be,hint:we,disabled:!0}),onCancel:()=>process.exit(130),result(he){return this.find(he,"descriptor")},stdin:this.context.stdin,stdout:this.context.stdout}));let me=a.manifest[J].get(te.identHash);(typeof me>"u"||me.descriptorHash!==te.descriptorHash)&&(a.manifest[J].set(te.identHash,te),this.optional&&(J==="dependencies"?a.manifest.ensureDependencyMeta({...te,range:"unknown"}).optional=!0:J==="peerDependencies"&&(a.manifest.ensurePeerDependencyMeta({...te,range:"unknown"}).optional=!0)),typeof me>"u"?R.push([a,J,te,E]):L.push([a,J,me,te]))}return await r.triggerMultipleHooks(U=>U.afterWorkspaceDependencyAddition,R),await r.triggerMultipleHooks(U=>U.afterWorkspaceDependencyReplacement,L),C&&this.context.stdout.write(` +`),await o.installWithNewReport({json:this.json,stdout:this.context.stdout,quiet:this.context.quiet},{cache:n,mode:this.mode})}};kh.paths=[["add"]],kh.usage=nt.Usage({description:"add dependencies to the project",details:"\n This command adds a package to the package.json for the nearest workspace.\n\n - If it didn't exist before, the package will by default be added to the regular `dependencies` field, but this behavior can be overriden thanks to the `-D,--dev` flag (which will cause the dependency to be added to the `devDependencies` field instead) and the `-P,--peer` flag (which will do the same but for `peerDependencies`).\n\n - If the package was already listed in your dependencies, it will by default be upgraded whether it's part of your `dependencies` or `devDependencies` (it won't ever update `peerDependencies`, though).\n\n - If set, the `--prefer-dev` flag will operate as a more flexible `-D,--dev` in that it will add the package to your `devDependencies` if it isn't already listed in either `dependencies` or `devDependencies`, but it will also happily upgrade your `dependencies` if that's what you already use (whereas `-D,--dev` would throw an exception).\n\n - If set, the `-O,--optional` flag will add the package to the `optionalDependencies` field and, in combination with the `-P,--peer` flag, it will add the package as an optional peer dependency. If the package was already listed in your `dependencies`, it will be upgraded to `optionalDependencies`. If the package was already listed in your `peerDependencies`, in combination with the `-P,--peer` flag, it will be upgraded to an optional peer dependency: `\"peerDependenciesMeta\": { \"\": { \"optional\": true } }`\n\n - If the added package doesn't specify a range at all its `latest` tag will be resolved and the returned version will be used to generate a new semver range (using the `^` modifier by default unless otherwise configured via the `defaultSemverRangePrefix` configuration, or the `~` modifier if `-T,--tilde` is specified, or no modifier at all if `-E,--exact` is specified). Two exceptions to this rule: the first one is that if the package is a workspace then its local version will be used, and the second one is that if you use `-P,--peer` the default range will be `*` and won't be resolved at all.\n\n - If the added package specifies a range (such as `^1.0.0`, `latest`, or `rc`), Yarn will add this range as-is in the resulting package.json entry (in particular, tags such as `rc` will be encoded as-is rather than being converted into a semver range).\n\n If the `--cached` option is used, Yarn will preferably reuse the highest version already used somewhere within the project, even if through a transitive dependency.\n\n If the `-i,--interactive` option is used (or if the `preferInteractive` settings is toggled on) the command will first try to check whether other workspaces in the project use the specified package and, if so, will offer to reuse them.\n\n If the `--mode=` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n\n For a compilation of all the supported protocols, please consult the dedicated page from our website: https://yarnpkg.com/protocols.\n ",examples:[["Add a regular package to the current workspace","$0 add lodash"],["Add a specific version for a package to the current workspace","$0 add lodash@1.2.3"],["Add a package from a GitHub repository (the master branch) to the current workspace using a URL","$0 add lodash@https://github.com/lodash/lodash"],["Add a package from a GitHub repository (the master branch) to the current workspace using the GitHub protocol","$0 add lodash@github:lodash/lodash"],["Add a package from a GitHub repository (the master branch) to the current workspace using the GitHub protocol (shorthand)","$0 add lodash@lodash/lodash"],["Add a package from a specific branch of a GitHub repository to the current workspace using the GitHub protocol (shorthand)","$0 add lodash-es@lodash/lodash#es"]]});function tpt(t,e,{dev:r,peer:o,preferDev:a,optional:n}){let u=t.manifest["dependencies"].has(e.identHash),A=t.manifest["devDependencies"].has(e.identHash),p=t.manifest["peerDependencies"].has(e.identHash);if((r||o)&&u)throw new it(`Package "${W.prettyIdent(t.project.configuration,e)}" is already listed as a regular dependency - remove the -D,-P flags or remove it from your dependencies first`);if(!r&&!o&&p)throw new it(`Package "${W.prettyIdent(t.project.configuration,e)}" is already listed as a peer dependency - use either of -D or -P, or remove it from your peer dependencies first`);if(n&&A)throw new it(`Package "${W.prettyIdent(t.project.configuration,e)}" is already listed as a dev dependency - remove the -O flag or remove it from your dev dependencies first`);if(n&&!o&&p)throw new it(`Package "${W.prettyIdent(t.project.configuration,e)}" is already listed as a peer dependency - remove the -O flag or add the -P flag or remove it from your peer dependencies first`);if((r||a)&&n)throw new it(`Package "${W.prettyIdent(t.project.configuration,e)}" cannot simultaneously be a dev dependency and an optional dependency`);let h=[];return o&&h.push("peerDependencies"),(r||a)&&h.push("devDependencies"),n&&h.push("dependencies"),h.length>0?h:A?["devDependencies"]:p?["peerDependencies"]:["dependencies"]}Ye();Ye();qt();var Qh=class extends ut{constructor(){super(...arguments);this.verbose=ge.Boolean("-v,--verbose",!1,{description:"Print both the binary name and the locator of the package that provides the binary"});this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.name=ge.String({required:!1})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,locator:a}=await Pt.find(r,this.context.cwd);if(await o.restoreInstallState(),this.name){let A=(await un.getPackageAccessibleBinaries(a,{project:o})).get(this.name);if(!A)throw new it(`Couldn't find a binary named "${this.name}" for package "${W.prettyLocator(r,a)}"`);let[,p]=A;return this.context.stdout.write(`${p} +`),0}return(await Nt.start({configuration:r,json:this.json,stdout:this.context.stdout},async u=>{let A=await un.getPackageAccessibleBinaries(a,{project:o}),h=Array.from(A.keys()).reduce((E,I)=>Math.max(E,I.length),0);for(let[E,[I,v]]of A)u.reportJson({name:E,source:W.stringifyIdent(I),path:v});if(this.verbose)for(let[E,[I]]of A)u.reportInfo(null,`${E.padEnd(h," ")} ${W.prettyLocator(r,I)}`);else for(let E of A.keys())u.reportInfo(null,E)})).exitCode()}};Qh.paths=[["bin"]],Qh.usage=nt.Usage({description:"get the path to a binary script",details:` + When used without arguments, this command will print the list of all the binaries available in the current workspace. Adding the \`-v,--verbose\` flag will cause the output to contain both the binary name and the locator of the package that provides the binary. + + When an argument is specified, this command will just print the path to the binary on the standard output and exit. Note that the reported path may be stored within a zip archive. + `,examples:[["List all the available binaries","$0 bin"],["Print the path to a specific binary","$0 bin eslint"]]});Ye();St();qt();var Fh=class extends ut{constructor(){super(...arguments);this.mirror=ge.Boolean("--mirror",!1,{description:"Remove the global cache files instead of the local cache files"});this.all=ge.Boolean("--all",!1,{description:"Remove both the global cache files and the local cache files of the current project"})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),o=await Lr.find(r);return(await Nt.start({configuration:r,stdout:this.context.stdout},async()=>{let n=(this.all||this.mirror)&&o.mirrorCwd!==null,u=!this.mirror;n&&(await oe.removePromise(o.mirrorCwd),await r.triggerHook(A=>A.cleanGlobalArtifacts,r)),u&&await oe.removePromise(o.cwd)})).exitCode()}};Fh.paths=[["cache","clean"],["cache","clear"]],Fh.usage=nt.Usage({description:"remove the shared cache files",details:` + This command will remove all the files from the cache. + `,examples:[["Remove all the local archives","$0 cache clean"],["Remove all the archives stored in the ~/.yarn directory","$0 cache clean --mirror"]]});Ye();qt();var q0e=$e(d2()),S8=ve("util"),Rh=class extends ut{constructor(){super(...arguments);this.why=ge.Boolean("--why",!1,{description:"Print the explanation for why a setting has its value"});this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.unsafe=ge.Boolean("--no-redacted",!1,{description:"Don't redact secrets (such as tokens) from the output"});this.name=ge.String()}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),o=this.name.replace(/[.[].*$/,""),a=this.name.replace(/^[^.[]*/,"");if(typeof r.settings.get(o)>"u")throw new it(`Couldn't find a configuration settings named "${o}"`);let u=r.getSpecial(o,{hideSecrets:!this.unsafe,getNativePaths:!0}),A=_e.convertMapsToIndexableObjects(u),p=a?(0,q0e.default)(A,a):A,h=await Nt.start({configuration:r,includeFooter:!1,json:this.json,stdout:this.context.stdout},async E=>{E.reportJson(p)});if(!this.json){if(typeof p=="string")return this.context.stdout.write(`${p} +`),h.exitCode();S8.inspect.styles.name="cyan",this.context.stdout.write(`${(0,S8.inspect)(p,{depth:1/0,colors:r.get("enableColors"),compact:!1})} +`)}return h.exitCode()}};Rh.paths=[["config","get"]],Rh.usage=nt.Usage({description:"read a configuration settings",details:` + This command will print a configuration setting. + + Secrets (such as tokens) will be redacted from the output by default. If this behavior isn't desired, set the \`--no-redacted\` to get the untransformed value. + `,examples:[["Print a simple configuration setting","yarn config get yarnPath"],["Print a complex configuration setting","yarn config get packageExtensions"],["Print a nested field from the configuration",`yarn config get 'npmScopes["my-company"].npmRegistryServer'`],["Print a token from the configuration","yarn config get npmAuthToken --no-redacted"],["Print a configuration setting as JSON","yarn config get packageExtensions --json"]]});Ye();qt();var Fge=$e(k8()),Rge=$e(d2()),Tge=$e(Q8()),F8=ve("util"),Th=class extends ut{constructor(){super(...arguments);this.json=ge.Boolean("--json",!1,{description:"Set complex configuration settings to JSON values"});this.home=ge.Boolean("-H,--home",!1,{description:"Update the home configuration instead of the project configuration"});this.name=ge.String();this.value=ge.String()}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),o=()=>{if(!r.projectCwd)throw new it("This command must be run from within a project folder");return r.projectCwd},a=this.name.replace(/[.[].*$/,""),n=this.name.replace(/^[^.[]*\.?/,"");if(typeof r.settings.get(a)>"u")throw new it(`Couldn't find a configuration settings named "${a}"`);if(a==="enableStrictSettings")throw new it("This setting only affects the file it's in, and thus cannot be set from the CLI");let A=this.json?JSON.parse(this.value):this.value;await(this.home?C=>Ke.updateHomeConfiguration(C):C=>Ke.updateConfiguration(o(),C))(C=>{if(n){let R=(0,Fge.default)(C);return(0,Tge.default)(R,this.name,A),R}else return{...C,[a]:A}});let E=(await Ke.find(this.context.cwd,this.context.plugins)).getSpecial(a,{hideSecrets:!0,getNativePaths:!0}),I=_e.convertMapsToIndexableObjects(E),v=n?(0,Rge.default)(I,n):I;return(await Nt.start({configuration:r,includeFooter:!1,stdout:this.context.stdout},async C=>{F8.inspect.styles.name="cyan",C.reportInfo(0,`Successfully set ${this.name} to ${(0,F8.inspect)(v,{depth:1/0,colors:r.get("enableColors"),compact:!1})}`)})).exitCode()}};Th.paths=[["config","set"]],Th.usage=nt.Usage({description:"change a configuration settings",details:` + This command will set a configuration setting. + + When used without the \`--json\` flag, it can only set a simple configuration setting (a string, a number, or a boolean). + + When used with the \`--json\` flag, it can set both simple and complex configuration settings, including Arrays and Objects. + `,examples:[["Set a simple configuration setting (a string, a number, or a boolean)","yarn config set initScope myScope"],["Set a simple configuration setting (a string, a number, or a boolean) using the `--json` flag",'yarn config set initScope --json \\"myScope\\"'],["Set a complex configuration setting (an Array) using the `--json` flag",`yarn config set unsafeHttpWhitelist --json '["*.example.com", "example.com"]'`],["Set a complex configuration setting (an Object) using the `--json` flag",`yarn config set packageExtensions --json '{ "@babel/parser@*": { "dependencies": { "@babel/types": "*" } } }'`],["Set a nested configuration setting",'yarn config set npmScopes.company.npmRegistryServer "https://npm.example.com"'],["Set a nested configuration setting using indexed access for non-simple keys",`yarn config set 'npmRegistries["//npm.example.com"].npmAuthToken' "ffffffff-ffff-ffff-ffff-ffffffffffff"`]]});Ye();qt();var Yge=$e(k8()),Wge=$e(Mge()),Kge=$e(T8()),Nh=class extends ut{constructor(){super(...arguments);this.home=ge.Boolean("-H,--home",!1,{description:"Update the home configuration instead of the project configuration"});this.name=ge.String()}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),o=()=>{if(!r.projectCwd)throw new it("This command must be run from within a project folder");return r.projectCwd},a=this.name.replace(/[.[].*$/,""),n=this.name.replace(/^[^.[]*\.?/,"");if(typeof r.settings.get(a)>"u")throw new it(`Couldn't find a configuration settings named "${a}"`);let A=this.home?h=>Ke.updateHomeConfiguration(h):h=>Ke.updateConfiguration(o(),h);return(await Nt.start({configuration:r,includeFooter:!1,stdout:this.context.stdout},async h=>{let E=!1;await A(I=>{if(!(0,Wge.default)(I,this.name))return h.reportWarning(0,`Configuration doesn't contain setting ${this.name}; there is nothing to unset`),E=!0,I;let v=n?(0,Yge.default)(I):{...I};return(0,Kge.default)(v,this.name),v}),E||h.reportInfo(0,`Successfully unset ${this.name}`)})).exitCode()}};Nh.paths=[["config","unset"]],Nh.usage=nt.Usage({description:"unset a configuration setting",details:` + This command will unset a configuration setting. + `,examples:[["Unset a simple configuration setting","yarn config unset initScope"],["Unset a complex configuration setting","yarn config unset packageExtensions"],["Unset a nested configuration setting","yarn config unset npmScopes.company.npmRegistryServer"]]});Ye();St();qt();var fk=ve("util"),Lh=class extends ut{constructor(){super(...arguments);this.noDefaults=ge.Boolean("--no-defaults",!1,{description:"Omit the default values from the display"});this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.verbose=ge.Boolean("-v,--verbose",{hidden:!0});this.why=ge.Boolean("--why",{hidden:!0});this.names=ge.Rest()}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins,{strict:!1}),o=await LE({configuration:r,stdout:this.context.stdout,forceError:this.json},[{option:this.verbose,message:"The --verbose option is deprecated, the settings' descriptions are now always displayed"},{option:this.why,message:"The --why option is deprecated, the settings' sources are now always displayed"}]);if(o!==null)return o;let a=this.names.length>0?[...new Set(this.names)].sort():[...r.settings.keys()].sort(),n,u=await Nt.start({configuration:r,json:this.json,stdout:this.context.stdout,includeFooter:!1},async A=>{if(r.invalid.size>0&&!this.json){for(let[p,h]of r.invalid)A.reportError(34,`Invalid configuration key "${p}" in ${h}`);A.reportSeparator()}if(this.json)for(let p of a){let h=r.settings.get(p);typeof h>"u"&&A.reportError(34,`No configuration key named "${p}"`);let E=r.getSpecial(p,{hideSecrets:!0,getNativePaths:!0}),I=r.sources.get(p)??"",v=I&&I[0]!=="<"?ue.fromPortablePath(I):I;A.reportJson({key:p,effective:E,source:v,...h})}else{let p={breakLength:1/0,colors:r.get("enableColors"),maxArrayLength:2},h={},E={children:h};for(let I of a){if(this.noDefaults&&!r.sources.has(I))continue;let v=r.settings.get(I),x=r.sources.get(I)??"",C=r.getSpecial(I,{hideSecrets:!0,getNativePaths:!0}),R={Description:{label:"Description",value:de.tuple(de.Type.MARKDOWN,{text:v.description,format:this.cli.format(),paragraphs:!1})},Source:{label:"Source",value:de.tuple(x[0]==="<"?de.Type.CODE:de.Type.PATH,x)}};h[I]={value:de.tuple(de.Type.CODE,I),children:R};let L=(U,J)=>{for(let[te,ae]of J)if(ae instanceof Map){let fe={};U[te]={children:fe},L(fe,ae)}else U[te]={label:te,value:de.tuple(de.Type.NO_HINT,(0,fk.inspect)(ae,p))}};C instanceof Map?L(R,C):R.Value={label:"Value",value:de.tuple(de.Type.NO_HINT,(0,fk.inspect)(C,p))}}a.length!==1&&(n=void 0),$s.emitTree(E,{configuration:r,json:this.json,stdout:this.context.stdout,separators:2})}});if(!this.json&&typeof n<"u"){let A=a[0],p=(0,fk.inspect)(r.getSpecial(A,{hideSecrets:!0,getNativePaths:!0}),{colors:r.get("enableColors")});this.context.stdout.write(` +`),this.context.stdout.write(`${p} +`)}return u.exitCode()}};Lh.paths=[["config"]],Lh.usage=nt.Usage({description:"display the current configuration",details:` + This command prints the current active configuration settings. + `,examples:[["Print the active configuration settings","$0 config"]]});Ye();qt();Za();var pk={};Vt(pk,{Strategy:()=>m2,acceptedStrategies:()=>O0t,dedupe:()=>N8});Ye();Ye();var Vge=$e(Zo()),m2=(e=>(e.HIGHEST="highest",e))(m2||{}),O0t=new Set(Object.values(m2)),M0t={highest:async(t,e,{resolver:r,fetcher:o,resolveOptions:a,fetchOptions:n})=>{let u=new Map;for(let[p,h]of t.storedResolutions){let E=t.storedDescriptors.get(p);if(typeof E>"u")throw new Error(`Assertion failed: The descriptor (${p}) should have been registered`);_e.getSetWithDefault(u,E.identHash).add(h)}let A=new Map(_e.mapAndFilter(t.storedDescriptors.values(),p=>W.isVirtualDescriptor(p)?_e.mapAndFilter.skip:[p.descriptorHash,_e.makeDeferred()]));for(let p of t.storedDescriptors.values()){let h=A.get(p.descriptorHash);if(typeof h>"u")throw new Error(`Assertion failed: The descriptor (${p.descriptorHash}) should have been registered`);let E=t.storedResolutions.get(p.descriptorHash);if(typeof E>"u")throw new Error(`Assertion failed: The resolution (${p.descriptorHash}) should have been registered`);let I=t.originalPackages.get(E);if(typeof I>"u")throw new Error(`Assertion failed: The package (${E}) should have been registered`);Promise.resolve().then(async()=>{let v=r.getResolutionDependencies(p,a),x=Object.fromEntries(await _e.allSettledSafe(Object.entries(v).map(async([te,ae])=>{let fe=A.get(ae.descriptorHash);if(typeof fe>"u")throw new Error(`Assertion failed: The descriptor (${ae.descriptorHash}) should have been registered`);let ce=await fe.promise;if(!ce)throw new Error("Assertion failed: Expected the dependency to have been through the dedupe process itself");return[te,ce.updatedPackage]})));if(e.length&&!Vge.default.isMatch(W.stringifyIdent(p),e)||!r.shouldPersistResolution(I,a))return I;let C=u.get(p.identHash);if(typeof C>"u")throw new Error(`Assertion failed: The resolutions (${p.identHash}) should have been registered`);if(C.size===1)return I;let R=[...C].map(te=>{let ae=t.originalPackages.get(te);if(typeof ae>"u")throw new Error(`Assertion failed: The package (${te}) should have been registered`);return ae}),L=await r.getSatisfying(p,x,R,a),U=L.locators?.[0];if(typeof U>"u"||!L.sorted)return I;let J=t.originalPackages.get(U.locatorHash);if(typeof J>"u")throw new Error(`Assertion failed: The package (${U.locatorHash}) should have been registered`);return J}).then(async v=>{let x=await t.preparePackage(v,{resolver:r,resolveOptions:a});h.resolve({descriptor:p,currentPackage:I,updatedPackage:v,resolvedPackage:x})}).catch(v=>{h.reject(v)})}return[...A.values()].map(p=>p.promise)}};async function N8(t,{strategy:e,patterns:r,cache:o,report:a}){let{configuration:n}=t,u=new Qi,A=n.makeResolver(),p=n.makeFetcher(),h={cache:o,checksums:t.storedChecksums,fetcher:p,project:t,report:u,cacheOptions:{skipIntegrityCheck:!0}},E={project:t,resolver:A,report:u,fetchOptions:h};return await a.startTimerPromise("Deduplication step",async()=>{let I=M0t[e],v=await I(t,r,{resolver:A,resolveOptions:E,fetcher:p,fetchOptions:h}),x=Xs.progressViaCounter(v.length);await a.reportProgress(x);let C=0;await Promise.all(v.map(U=>U.then(J=>{if(J===null||J.currentPackage.locatorHash===J.updatedPackage.locatorHash)return;C++;let{descriptor:te,currentPackage:ae,updatedPackage:fe}=J;a.reportInfo(0,`${W.prettyDescriptor(n,te)} can be deduped from ${W.prettyLocator(n,ae)} to ${W.prettyLocator(n,fe)}`),a.reportJson({descriptor:W.stringifyDescriptor(te),currentResolution:W.stringifyLocator(ae),updatedResolution:W.stringifyLocator(fe)}),t.storedResolutions.set(te.descriptorHash,fe.locatorHash)}).finally(()=>x.tick())));let R;switch(C){case 0:R="No packages";break;case 1:R="One package";break;default:R=`${C} packages`}let L=de.pretty(n,e,de.Type.CODE);return a.reportInfo(0,`${R} can be deduped using the ${L} strategy`),C})}var Oh=class extends ut{constructor(){super(...arguments);this.strategy=ge.String("-s,--strategy","highest",{description:"The strategy to use when deduping dependencies",validator:Ks(m2)});this.check=ge.Boolean("-c,--check",!1,{description:"Exit with exit code 1 when duplicates are found, without persisting the dependency tree"});this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.mode=ge.String("--mode",{description:"Change what artifacts installs generate",validator:Ks(pl)});this.patterns=ge.Rest()}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o}=await Pt.find(r,this.context.cwd),a=await Lr.find(r);await o.restoreInstallState({restoreResolutions:!1});let n=0,u=await Nt.start({configuration:r,includeFooter:!1,stdout:this.context.stdout,json:this.json},async A=>{n=await N8(o,{strategy:this.strategy,patterns:this.patterns,cache:a,report:A})});return u.hasErrors()?u.exitCode():this.check?n?1:0:await o.installWithNewReport({json:this.json,stdout:this.context.stdout},{cache:a,mode:this.mode})}};Oh.paths=[["dedupe"]],Oh.usage=nt.Usage({description:"deduplicate dependencies with overlapping ranges",details:"\n Duplicates are defined as descriptors with overlapping ranges being resolved and locked to different locators. They are a natural consequence of Yarn's deterministic installs, but they can sometimes pile up and unnecessarily increase the size of your project.\n\n This command dedupes dependencies in the current project using different strategies (only one is implemented at the moment):\n\n - `highest`: Reuses (where possible) the locators with the highest versions. This means that dependencies can only be upgraded, never downgraded. It's also guaranteed that it never takes more than a single pass to dedupe the entire dependency tree.\n\n **Note:** Even though it never produces a wrong dependency tree, this command should be used with caution, as it modifies the dependency tree, which can sometimes cause problems when packages don't strictly follow semver recommendations. Because of this, it is recommended to also review the changes manually.\n\n If set, the `-c,--check` flag will only report the found duplicates, without persisting the modified dependency tree. If changes are found, the command will exit with a non-zero exit code, making it suitable for CI purposes.\n\n If the `--mode=` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n\n This command accepts glob patterns as arguments (if valid Idents and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them.\n\n ### In-depth explanation:\n\n Yarn doesn't deduplicate dependencies by default, otherwise installs wouldn't be deterministic and the lockfile would be useless. What it actually does is that it tries to not duplicate dependencies in the first place.\n\n **Example:** If `foo@^2.3.4` (a dependency of a dependency) has already been resolved to `foo@2.3.4`, running `yarn add foo@*`will cause Yarn to reuse `foo@2.3.4`, even if the latest `foo` is actually `foo@2.10.14`, thus preventing unnecessary duplication.\n\n Duplication happens when Yarn can't unlock dependencies that have already been locked inside the lockfile.\n\n **Example:** If `foo@^2.3.4` (a dependency of a dependency) has already been resolved to `foo@2.3.4`, running `yarn add foo@2.10.14` will cause Yarn to install `foo@2.10.14` because the existing resolution doesn't satisfy the range `2.10.14`. This behavior can lead to (sometimes) unwanted duplication, since now the lockfile contains 2 separate resolutions for the 2 `foo` descriptors, even though they have overlapping ranges, which means that the lockfile can be simplified so that both descriptors resolve to `foo@2.10.14`.\n ",examples:[["Dedupe all packages","$0 dedupe"],["Dedupe all packages using a specific strategy","$0 dedupe --strategy highest"],["Dedupe a specific package","$0 dedupe lodash"],["Dedupe all packages with the `@babel/*` scope","$0 dedupe '@babel/*'"],["Check for duplicates (can be used as a CI step)","$0 dedupe --check"]]});Ye();qt();var Kd=class extends ut{async execute(){let{plugins:e}=await Ke.find(this.context.cwd,this.context.plugins),r=[];for(let u of e){let{commands:A}=u[1];if(A){let h=as.from(A).definitions();r.push([u[0],h])}}let o=this.cli.definitions(),a=(u,A)=>u.split(" ").slice(1).join()===A.split(" ").slice(1).join(),n=Jge()["@yarnpkg/builder"].bundles.standard;for(let u of r){let A=u[1];for(let p of A)o.find(h=>a(h.path,p.path)).plugin={name:u[0],isDefault:n.includes(u[0])}}this.context.stdout.write(`${JSON.stringify(o,null,2)} +`)}};Kd.paths=[["--clipanion=definitions"]];var Vd=class extends ut{async execute(){this.context.stdout.write(this.cli.usage(null))}};Vd.paths=[["help"],["--help"],["-h"]];Ye();St();qt();var mC=class extends ut{constructor(){super(...arguments);this.leadingArgument=ge.String();this.args=ge.Proxy()}async execute(){if(this.leadingArgument.match(/[\\/]/)&&!W.tryParseIdent(this.leadingArgument)){let r=V.resolve(this.context.cwd,ue.toPortablePath(this.leadingArgument));return await this.cli.run(this.args,{cwd:r})}else return await this.cli.run(["run",this.leadingArgument,...this.args])}};Ye();var Jd=class extends ut{async execute(){this.context.stdout.write(`${rn||""} +`)}};Jd.paths=[["-v"],["--version"]];Ye();Ye();qt();var Mh=class extends ut{constructor(){super(...arguments);this.commandName=ge.String();this.args=ge.Proxy()}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,locator:a}=await Pt.find(r,this.context.cwd);return await o.restoreInstallState(),await un.executePackageShellcode(a,this.commandName,this.args,{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,project:o})}};Mh.paths=[["exec"]],Mh.usage=nt.Usage({description:"execute a shell script",details:` + This command simply executes a shell script within the context of the root directory of the active workspace using the portable shell. + + It also makes sure to call it in a way that's compatible with the current project (for example, on PnP projects the environment will be setup in such a way that PnP will be correctly injected into the environment). + `,examples:[["Execute a single shell command","$0 exec echo Hello World"],["Execute a shell script",'$0 exec "tsc & babel src --out-dir lib"']]});Ye();qt();Za();var Uh=class extends ut{constructor(){super(...arguments);this.hash=ge.String({validator:oS(Cy(),[oI(/^p[0-9a-f]{5}$/)])})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o}=await Pt.find(r,this.context.cwd);return await o.restoreInstallState({restoreResolutions:!1}),await o.applyLightResolution(),await _0t(this.hash,o,{stdout:this.context.stdout})}};Uh.paths=[["explain","peer-requirements"]],Uh.usage=nt.Usage({description:"explain a set of peer requirements",details:` + A set of peer requirements represents all peer requirements that a dependent must satisfy when providing a given peer request to a requester and its descendants. + + When the hash argument is specified, this command prints a detailed explanation of all requirements of the set corresponding to the hash and whether they're satisfied or not. + + When used without arguments, this command lists all sets of peer requirements and the corresponding hash that can be used to get detailed information about a given set. + + **Note:** A hash is a six-letter p-prefixed code that can be obtained from peer dependency warnings or from the list of all peer requirements (\`yarn explain peer-requirements\`). + `,examples:[["Explain the corresponding set of peer requirements for a hash","$0 explain peer-requirements p1a4ed"],["List all sets of peer requirements","$0 explain peer-requirements"]]});async function _0t(t,e,r){let o=e.peerWarnings.find(n=>n.hash===t);if(typeof o>"u")throw new Error(`No peerDependency requirements found for hash: "${t}"`);return(await Nt.start({configuration:e.configuration,stdout:r.stdout,includeFooter:!1,includePrefix:!1},async n=>{let u=de.mark(e.configuration);switch(o.type){case 2:{n.reportInfo(0,`We have a problem with ${de.pretty(e.configuration,o.requested,de.Type.IDENT)}, which is provided with version ${W.prettyReference(e.configuration,o.version)}.`),n.reportInfo(0,"It is needed by the following direct dependencies of workspaces in your project:"),n.reportSeparator();for(let h of o.requesters.values()){let E=e.storedPackages.get(h.locatorHash);if(!E)throw new Error("Assertion failed: Expected the package to be registered");let I=E?.peerDependencies.get(o.requested.identHash);if(!I)throw new Error("Assertion failed: Expected the package to list the peer dependency");let v=kr.satisfiesWithPrereleases(o.version,I.range)?u.Check:u.Cross;n.reportInfo(null,` ${v} ${W.prettyLocator(e.configuration,h)} (via ${W.prettyRange(e.configuration,I.range)})`)}let A=[...o.links.values()].filter(h=>!o.requesters.has(h.locatorHash));if(A.length>0){n.reportSeparator(),n.reportInfo(0,`However, those packages themselves have more dependencies listing ${W.prettyIdent(e.configuration,o.requested)} as peer dependency:`),n.reportSeparator();for(let h of A){let E=e.storedPackages.get(h.locatorHash);if(!E)throw new Error("Assertion failed: Expected the package to be registered");let I=E?.peerDependencies.get(o.requested.identHash);if(!I)throw new Error("Assertion failed: Expected the package to list the peer dependency");let v=kr.satisfiesWithPrereleases(o.version,I.range)?u.Check:u.Cross;n.reportInfo(null,` ${v} ${W.prettyLocator(e.configuration,h)} (via ${W.prettyRange(e.configuration,I.range)})`)}}let p=Array.from(o.links.values(),h=>{let E=e.storedPackages.get(h.locatorHash);if(typeof E>"u")throw new Error("Assertion failed: Expected the package to be registered");let I=E.peerDependencies.get(o.requested.identHash);if(typeof I>"u")throw new Error("Assertion failed: Expected the ident to be registered");return I.range});if(p.length>1){let h=kr.simplifyRanges(p);n.reportSeparator(),h===null?(n.reportInfo(0,"Unfortunately, put together, we found no single range that can satisfy all those peer requirements."),n.reportInfo(0,`Your best option may be to try to upgrade some dependencies with ${de.pretty(e.configuration,"yarn up",de.Type.CODE)}, or silence the warning via ${de.pretty(e.configuration,"logFilters",de.Type.CODE)}.`)):n.reportInfo(0,`Put together, the final range we computed is ${de.pretty(e.configuration,h,de.Type.RANGE)}`)}}break;default:n.reportInfo(0,`The ${de.pretty(e.configuration,"yarn explain peer-requirements",de.Type.CODE)} command doesn't support this warning type yet.`);break}})).exitCode()}Ye();qt();Za();Ye();Ye();St();qt();var zge=$e(zn()),_h=class extends ut{constructor(){super(...arguments);this.useYarnPath=ge.Boolean("--yarn-path",{description:"Set the yarnPath setting even if the version can be accessed by Corepack"});this.onlyIfNeeded=ge.Boolean("--only-if-needed",!1,{description:"Only lock the Yarn version if it isn't already locked"});this.version=ge.String()}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins);if(this.onlyIfNeeded&&r.get("yarnPath")){let A=r.sources.get("yarnPath");if(!A)throw new Error("Assertion failed: Expected 'yarnPath' to have a source");let p=r.projectCwd??r.startingCwd;if(V.contains(p,A))return 0}let o=()=>{if(typeof rn>"u")throw new it("The --install flag can only be used without explicit version specifier from the Yarn CLI");return`file://${process.argv[1]}`},a,n=(A,p)=>({version:p,url:A.replace(/\{\}/g,p)});if(this.version==="self")a={url:o(),version:rn??"self"};else if(this.version==="latest"||this.version==="berry"||this.version==="stable")a=n("https://repo.yarnpkg.com/{}/packages/yarnpkg-cli/bin/yarn.js",await y2(r,"stable"));else if(this.version==="canary")a=n("https://repo.yarnpkg.com/{}/packages/yarnpkg-cli/bin/yarn.js",await y2(r,"canary"));else if(this.version==="classic")a={url:"https://classic.yarnpkg.com/latest.js",version:"classic"};else if(this.version.match(/^https?:/))a={url:this.version,version:"remote"};else if(this.version.match(/^\.{0,2}[\\/]/)||ue.isAbsolute(this.version))a={url:`file://${V.resolve(ue.toPortablePath(this.version))}`,version:"file"};else if(kr.satisfiesWithPrereleases(this.version,">=2.0.0"))a=n("https://repo.yarnpkg.com/{}/packages/yarnpkg-cli/bin/yarn.js",this.version);else if(kr.satisfiesWithPrereleases(this.version,"^0.x || ^1.x"))a=n("https://github.com/yarnpkg/yarn/releases/download/v{}/yarn-{}.js",this.version);else if(kr.validRange(this.version))a=n("https://repo.yarnpkg.com/{}/packages/yarnpkg-cli/bin/yarn.js",await H0t(r,this.version));else throw new it(`Invalid version descriptor "${this.version}"`);return(await Nt.start({configuration:r,stdout:this.context.stdout,includeLogs:!this.context.quiet},async A=>{let p=async()=>{let h="file://";return a.url.startsWith(h)?(A.reportInfo(0,`Retrieving ${de.pretty(r,a.url,de.Type.PATH)}`),await oe.readFilePromise(a.url.slice(h.length))):(A.reportInfo(0,`Downloading ${de.pretty(r,a.url,de.Type.URL)}`),await nn.get(a.url,{configuration:r}))};await L8(r,a.version,p,{report:A,useYarnPath:this.useYarnPath})})).exitCode()}};_h.paths=[["set","version"]],_h.usage=nt.Usage({description:"lock the Yarn version used by the project",details:"\n This command will set a specific release of Yarn to be used by Corepack: https://nodejs.org/api/corepack.html.\n\n By default it only will set the `packageManager` field at the root of your project, but if the referenced release cannot be represented this way, if you already have `yarnPath` configured, or if you set the `--yarn-path` command line flag, then the release will also be downloaded from the Yarn GitHub repository, stored inside your project, and referenced via the `yarnPath` settings from your project `.yarnrc.yml` file.\n\n A very good use case for this command is to enforce the version of Yarn used by any single member of your team inside the same project - by doing this you ensure that you have control over Yarn upgrades and downgrades (including on your deployment servers), and get rid of most of the headaches related to someone using a slightly different version and getting different behavior.\n\n The version specifier can be:\n\n - a tag:\n - `latest` / `berry` / `stable` -> the most recent stable berry (`>=2.0.0`) release\n - `canary` -> the most recent canary (release candidate) berry (`>=2.0.0`) release\n - `classic` -> the most recent classic (`^0.x || ^1.x`) release\n\n - a semver range (e.g. `2.x`) -> the most recent version satisfying the range (limited to berry releases)\n\n - a semver version (e.g. `2.4.1`, `1.22.1`)\n\n - a local file referenced through either a relative or absolute path\n\n - `self` -> the version used to invoke the command\n ",examples:[["Download the latest release from the Yarn repository","$0 set version latest"],["Download the latest canary release from the Yarn repository","$0 set version canary"],["Download the latest classic release from the Yarn repository","$0 set version classic"],["Download the most recent Yarn 3 build","$0 set version 3.x"],["Download a specific Yarn 2 build","$0 set version 2.0.0-rc.30"],["Switch back to a specific Yarn 1 release","$0 set version 1.22.1"],["Use a release from the local filesystem","$0 set version ./yarn.cjs"],["Use a release from a URL","$0 set version https://repo.yarnpkg.com/3.1.0/packages/yarnpkg-cli/bin/yarn.js"],["Download the version used to invoke the command","$0 set version self"]]});async function H0t(t,e){let o=(await nn.get("https://repo.yarnpkg.com/tags",{configuration:t,jsonResponse:!0})).tags.filter(a=>kr.satisfiesWithPrereleases(a,e));if(o.length===0)throw new it(`No matching release found for range ${de.pretty(t,e,de.Type.RANGE)}.`);return o[0]}async function y2(t,e){let r=await nn.get("https://repo.yarnpkg.com/tags",{configuration:t,jsonResponse:!0});if(!r.latest[e])throw new it(`Tag ${de.pretty(t,e,de.Type.RANGE)} not found`);return r.latest[e]}async function L8(t,e,r,{report:o,useYarnPath:a}){let n,u=async()=>(typeof n>"u"&&(n=await r()),n);if(e===null){let te=await u();await oe.mktempPromise(async ae=>{let fe=V.join(ae,"yarn.cjs");await oe.writeFilePromise(fe,te);let{stdout:ce}=await Ur.execvp(process.execPath,[ue.fromPortablePath(fe),"--version"],{cwd:ae,env:{...t.env,YARN_IGNORE_PATH:"1"}});if(e=ce.trim(),!zge.default.valid(e))throw new Error(`Invalid semver version. ${de.pretty(t,"yarn --version",de.Type.CODE)} returned: +${e}`)})}let A=t.projectCwd??t.startingCwd,p=V.resolve(A,".yarn/releases"),h=V.resolve(p,`yarn-${e}.cjs`),E=V.relative(t.startingCwd,h),I=_e.isTaggedYarnVersion(e),v=t.get("yarnPath"),x=!I,C=x||!!v||!!a;if(a===!1){if(x)throw new zt(0,"You explicitly opted out of yarnPath usage in your command line, but the version you specified cannot be represented by Corepack");C=!1}else!C&&!process.env.COREPACK_ROOT&&(o.reportWarning(0,`You don't seem to have ${de.applyHyperlink(t,"Corepack","https://nodejs.org/api/corepack.html")} enabled; we'll have to rely on ${de.applyHyperlink(t,"yarnPath","https://yarnpkg.com/configuration/yarnrc#yarnPath")} instead`),C=!0);if(C){let te=await u();o.reportInfo(0,`Saving the new release in ${de.pretty(t,E,"magenta")}`),await oe.removePromise(V.dirname(h)),await oe.mkdirPromise(V.dirname(h),{recursive:!0}),await oe.writeFilePromise(h,te,{mode:493}),await Ke.updateConfiguration(A,{yarnPath:V.relative(A,h)})}else await oe.removePromise(V.dirname(h)),await Ke.updateConfiguration(A,{yarnPath:Ke.deleteProperty});let R=await Ot.tryFind(A)||new Ot;R.packageManager=`yarn@${I?e:await y2(t,"stable")}`;let L={};R.exportTo(L);let U=V.join(A,Ot.fileName),J=`${JSON.stringify(L,null,R.indent)} +`;return await oe.changeFilePromise(U,J,{automaticNewlines:!0}),{bundleVersion:e}}function Xge(t){return wr[AS(t)]}var q0t=/## (?YN[0-9]{4}) - `(?[A-Z_]+)`\n\n(?
              (?:.(?!##))+)/gs;async function j0t(t){let r=`https://repo.yarnpkg.com/${_e.isTaggedYarnVersion(rn)?rn:await y2(t,"canary")}/packages/gatsby/content/advanced/error-codes.md`,o=await nn.get(r,{configuration:t});return new Map(Array.from(o.toString().matchAll(q0t),({groups:a})=>{if(!a)throw new Error("Assertion failed: Expected the match to have been successful");let n=Xge(a.code);if(a.name!==n)throw new Error(`Assertion failed: Invalid error code data: Expected "${a.name}" to be named "${n}"`);return[a.code,a.details]}))}var Hh=class extends ut{constructor(){super(...arguments);this.code=ge.String({required:!1,validator:aI(Cy(),[oI(/^YN[0-9]{4}$/)])});this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins);if(typeof this.code<"u"){let o=Xge(this.code),a=de.pretty(r,o,de.Type.CODE),n=this.cli.format().header(`${this.code} - ${a}`),A=(await j0t(r)).get(this.code),p=typeof A<"u"?de.jsonOrPretty(this.json,r,de.tuple(de.Type.MARKDOWN,{text:A,format:this.cli.format(),paragraphs:!0})):`This error code does not have a description. + +You can help us by editing this page on GitHub \u{1F642}: +${de.jsonOrPretty(this.json,r,de.tuple(de.Type.URL,"https://github.com/yarnpkg/berry/blob/master/packages/gatsby/content/advanced/error-codes.md"))} +`;this.json?this.context.stdout.write(`${JSON.stringify({code:this.code,name:o,details:p})} +`):this.context.stdout.write(`${n} + +${p} +`)}else{let o={children:_e.mapAndFilter(Object.entries(wr),([a,n])=>Number.isNaN(Number(a))?_e.mapAndFilter.skip:{label:Wu(Number(a)),value:de.tuple(de.Type.CODE,n)})};$s.emitTree(o,{configuration:r,stdout:this.context.stdout,json:this.json})}}};Hh.paths=[["explain"]],Hh.usage=nt.Usage({description:"explain an error code",details:` + When the code argument is specified, this command prints its name and its details. + + When used without arguments, this command lists all error codes and their names. + `,examples:[["Explain an error code","$0 explain YN0006"],["List all error codes","$0 explain"]]});Ye();St();qt();var Zge=$e(Zo()),qh=class extends ut{constructor(){super(...arguments);this.all=ge.Boolean("-A,--all",!1,{description:"Print versions of a package from the whole project"});this.recursive=ge.Boolean("-R,--recursive",!1,{description:"Print information for all packages, including transitive dependencies"});this.extra=ge.Array("-X,--extra",[],{description:"An array of requests of extra data provided by plugins"});this.cache=ge.Boolean("--cache",!1,{description:"Print information about the cache entry of a package (path, size, checksum)"});this.dependents=ge.Boolean("--dependents",!1,{description:"Print all dependents for each matching package"});this.manifest=ge.Boolean("--manifest",!1,{description:"Print data obtained by looking at the package archive (license, homepage, ...)"});this.nameOnly=ge.Boolean("--name-only",!1,{description:"Only print the name for the matching packages"});this.virtuals=ge.Boolean("--virtuals",!1,{description:"Print each instance of the virtual packages"});this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.patterns=ge.Rest()}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Pt.find(r,this.context.cwd),n=await Lr.find(r);if(!a&&!this.all)throw new rr(o.cwd,this.context.cwd);await o.restoreInstallState();let u=new Set(this.extra);this.cache&&u.add("cache"),this.dependents&&u.add("dependents"),this.manifest&&u.add("manifest");let A=(ae,{recursive:fe})=>{let ce=ae.anchoredLocator.locatorHash,me=new Map,he=[ce];for(;he.length>0;){let Be=he.shift();if(me.has(Be))continue;let we=o.storedPackages.get(Be);if(typeof we>"u")throw new Error("Assertion failed: Expected the package to be registered");if(me.set(Be,we),W.isVirtualLocator(we)&&he.push(W.devirtualizeLocator(we).locatorHash),!(!fe&&Be!==ce))for(let g of we.dependencies.values()){let Ee=o.storedResolutions.get(g.descriptorHash);if(typeof Ee>"u")throw new Error("Assertion failed: Expected the resolution to be registered");he.push(Ee)}}return me.values()},p=({recursive:ae})=>{let fe=new Map;for(let ce of o.workspaces)for(let me of A(ce,{recursive:ae}))fe.set(me.locatorHash,me);return fe.values()},h=({all:ae,recursive:fe})=>ae&&fe?o.storedPackages.values():ae?p({recursive:fe}):A(a,{recursive:fe}),E=({all:ae,recursive:fe})=>{let ce=h({all:ae,recursive:fe}),me=this.patterns.map(we=>{let g=W.parseLocator(we),Ee=Zge.default.makeRe(W.stringifyIdent(g)),Se=W.isVirtualLocator(g),le=Se?W.devirtualizeLocator(g):g;return ne=>{let ee=W.stringifyIdent(ne);if(!Ee.test(ee))return!1;if(g.reference==="unknown")return!0;let Ie=W.isVirtualLocator(ne),Fe=Ie?W.devirtualizeLocator(ne):ne;return!(Se&&Ie&&g.reference!==ne.reference||le.reference!==Fe.reference)}}),he=_e.sortMap([...ce],we=>W.stringifyLocator(we));return{selection:he.filter(we=>me.length===0||me.some(g=>g(we))),sortedLookup:he}},{selection:I,sortedLookup:v}=E({all:this.all,recursive:this.recursive});if(I.length===0)throw new it("No package matched your request");let x=new Map;if(this.dependents)for(let ae of v)for(let fe of ae.dependencies.values()){let ce=o.storedResolutions.get(fe.descriptorHash);if(typeof ce>"u")throw new Error("Assertion failed: Expected the resolution to be registered");_e.getArrayWithDefault(x,ce).push(ae)}let C=new Map;for(let ae of v){if(!W.isVirtualLocator(ae))continue;let fe=W.devirtualizeLocator(ae);_e.getArrayWithDefault(C,fe.locatorHash).push(ae)}let R={},L={children:R},U=r.makeFetcher(),J={project:o,fetcher:U,cache:n,checksums:o.storedChecksums,report:new Qi,cacheOptions:{skipIntegrityCheck:!0}},te=[async(ae,fe,ce)=>{if(!fe.has("manifest"))return;let me=await U.fetch(ae,J),he;try{he=await Ot.find(me.prefixPath,{baseFs:me.packageFs})}finally{me.releaseFs?.()}ce("Manifest",{License:de.tuple(de.Type.NO_HINT,he.license),Homepage:de.tuple(de.Type.URL,he.raw.homepage??null)})},async(ae,fe,ce)=>{if(!fe.has("cache"))return;let me=o.storedChecksums.get(ae.locatorHash)??null,he=n.getLocatorPath(ae,me),Be;if(he!==null)try{Be=await oe.statPromise(he)}catch{}let we=typeof Be<"u"?[Be.size,de.Type.SIZE]:void 0;ce("Cache",{Checksum:de.tuple(de.Type.NO_HINT,me),Path:de.tuple(de.Type.PATH,he),Size:we})}];for(let ae of I){let fe=W.isVirtualLocator(ae);if(!this.virtuals&&fe)continue;let ce={},me={value:[ae,de.Type.LOCATOR],children:ce};if(R[W.stringifyLocator(ae)]=me,this.nameOnly){delete me.children;continue}let he=C.get(ae.locatorHash);typeof he<"u"&&(ce.Instances={label:"Instances",value:de.tuple(de.Type.NUMBER,he.length)}),ce.Version={label:"Version",value:de.tuple(de.Type.NO_HINT,ae.version)};let Be=(g,Ee)=>{let Se={};if(ce[g]=Se,Array.isArray(Ee))Se.children=Ee.map(le=>({value:le}));else{let le={};Se.children=le;for(let[ne,ee]of Object.entries(Ee))typeof ee>"u"||(le[ne]={label:ne,value:ee})}};if(!fe){for(let g of te)await g(ae,u,Be);await r.triggerHook(g=>g.fetchPackageInfo,ae,u,Be)}ae.bin.size>0&&!fe&&Be("Exported Binaries",[...ae.bin.keys()].map(g=>de.tuple(de.Type.PATH,g)));let we=x.get(ae.locatorHash);typeof we<"u"&&we.length>0&&Be("Dependents",we.map(g=>de.tuple(de.Type.LOCATOR,g))),ae.dependencies.size>0&&!fe&&Be("Dependencies",[...ae.dependencies.values()].map(g=>{let Ee=o.storedResolutions.get(g.descriptorHash),Se=typeof Ee<"u"?o.storedPackages.get(Ee)??null:null;return de.tuple(de.Type.RESOLUTION,{descriptor:g,locator:Se})})),ae.peerDependencies.size>0&&fe&&Be("Peer dependencies",[...ae.peerDependencies.values()].map(g=>{let Ee=ae.dependencies.get(g.identHash),Se=typeof Ee<"u"?o.storedResolutions.get(Ee.descriptorHash)??null:null,le=Se!==null?o.storedPackages.get(Se)??null:null;return de.tuple(de.Type.RESOLUTION,{descriptor:g,locator:le})}))}$s.emitTree(L,{configuration:r,json:this.json,stdout:this.context.stdout,separators:this.nameOnly?0:2})}};qh.paths=[["info"]],qh.usage=nt.Usage({description:"see information related to packages",details:"\n This command prints various information related to the specified packages, accepting glob patterns.\n\n By default, if the locator reference is missing, Yarn will default to print the information about all the matching direct dependencies of the package for the active workspace. To instead print all versions of the package that are direct dependencies of any of your workspaces, use the `-A,--all` flag. Adding the `-R,--recursive` flag will also report transitive dependencies.\n\n Some fields will be hidden by default in order to keep the output readable, but can be selectively displayed by using additional options (`--dependents`, `--manifest`, `--virtuals`, ...) described in the option descriptions.\n\n Note that this command will only print the information directly related to the selected packages - if you wish to know why the package is there in the first place, use `yarn why` which will do just that (it also provides a `-R,--recursive` flag that may be of some help).\n ",examples:[["Show information about Lodash","$0 info lodash"]]});Ye();St();Nl();var hk=$e(td());qt();var O8=$e(zn());Za();var G0t=[{selector:t=>t===-1,name:"nodeLinker",value:"node-modules"},{selector:t=>t!==-1&&t<8,name:"enableGlobalCache",value:!1},{selector:t=>t!==-1&&t<8,name:"compressionLevel",value:"mixed"}],jh=class extends ut{constructor(){super(...arguments);this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.immutable=ge.Boolean("--immutable",{description:"Abort with an error exit code if the lockfile was to be modified"});this.immutableCache=ge.Boolean("--immutable-cache",{description:"Abort with an error exit code if the cache folder was to be modified"});this.refreshLockfile=ge.Boolean("--refresh-lockfile",{description:"Refresh the package metadata stored in the lockfile"});this.checkCache=ge.Boolean("--check-cache",{description:"Always refetch the packages and ensure that their checksums are consistent"});this.checkResolutions=ge.Boolean("--check-resolutions",{description:"Validates that the package resolutions are coherent"});this.inlineBuilds=ge.Boolean("--inline-builds",{description:"Verbosely print the output of the build steps of dependencies"});this.mode=ge.String("--mode",{description:"Change what artifacts installs generate",validator:Ks(pl)});this.cacheFolder=ge.String("--cache-folder",{hidden:!0});this.frozenLockfile=ge.Boolean("--frozen-lockfile",{hidden:!0});this.ignoreEngines=ge.Boolean("--ignore-engines",{hidden:!0});this.nonInteractive=ge.Boolean("--non-interactive",{hidden:!0});this.preferOffline=ge.Boolean("--prefer-offline",{hidden:!0});this.production=ge.Boolean("--production",{hidden:!0});this.registry=ge.String("--registry",{hidden:!0});this.silent=ge.Boolean("--silent",{hidden:!0});this.networkTimeout=ge.String("--network-timeout",{hidden:!0})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins);typeof this.inlineBuilds<"u"&&r.useWithSource("",{enableInlineBuilds:this.inlineBuilds},r.startingCwd,{overwrite:!0});let o=!!process.env.FUNCTION_TARGET||!!process.env.GOOGLE_RUNTIME,a=await LE({configuration:r,stdout:this.context.stdout},[{option:this.ignoreEngines,message:"The --ignore-engines option is deprecated; engine checking isn't a core feature anymore",error:!hk.default.VERCEL},{option:this.registry,message:"The --registry option is deprecated; prefer setting npmRegistryServer in your .yarnrc.yml file"},{option:this.preferOffline,message:"The --prefer-offline flag is deprecated; use the --cached flag with 'yarn add' instead",error:!hk.default.VERCEL},{option:this.production,message:"The --production option is deprecated on 'install'; use 'yarn workspaces focus' instead",error:!0},{option:this.nonInteractive,message:"The --non-interactive option is deprecated",error:!o},{option:this.frozenLockfile,message:"The --frozen-lockfile option is deprecated; use --immutable and/or --immutable-cache instead",callback:()=>this.immutable=this.frozenLockfile},{option:this.cacheFolder,message:"The cache-folder option has been deprecated; use rc settings instead",error:!hk.default.NETLIFY}]);if(a!==null)return a;let n=this.mode==="update-lockfile";if(n&&(this.immutable||this.immutableCache))throw new it(`${de.pretty(r,"--immutable",de.Type.CODE)} and ${de.pretty(r,"--immutable-cache",de.Type.CODE)} cannot be used with ${de.pretty(r,"--mode=update-lockfile",de.Type.CODE)}`);let u=(this.immutable??r.get("enableImmutableInstalls"))&&!n,A=this.immutableCache&&!n;if(r.projectCwd!==null){let R=await Nt.start({configuration:r,json:this.json,stdout:this.context.stdout,includeFooter:!1},async L=>{let U=!1;await K0t(r,u)&&(L.reportInfo(48,"Automatically removed core plugins that are now builtins \u{1F44D}"),U=!0),await W0t(r,u)&&(L.reportInfo(48,"Automatically fixed merge conflicts \u{1F44D}"),U=!0),U&&L.reportSeparator()});if(R.hasErrors())return R.exitCode()}if(r.projectCwd!==null){let R=await Nt.start({configuration:r,json:this.json,stdout:this.context.stdout,includeFooter:!1},async L=>{if(Ke.telemetry?.isNew)Ke.telemetry.commitTips(),L.reportInfo(65,"Yarn will periodically gather anonymous telemetry: https://yarnpkg.com/advanced/telemetry"),L.reportInfo(65,`Run ${de.pretty(r,"yarn config set --home enableTelemetry 0",de.Type.CODE)} to disable`),L.reportSeparator();else if(Ke.telemetry?.shouldShowTips){let U=await nn.get("https://repo.yarnpkg.com/tags",{configuration:r,jsonResponse:!0}).catch(()=>null);if(U!==null){let J=null;if(rn!==null){let ae=O8.default.prerelease(rn)?"canary":"stable",fe=U.latest[ae];O8.default.gt(fe,rn)&&(J=[ae,fe])}if(J)Ke.telemetry.commitTips(),L.reportInfo(88,`${de.applyStyle(r,`A new ${J[0]} version of Yarn is available:`,de.Style.BOLD)} ${W.prettyReference(r,J[1])}!`),L.reportInfo(88,`Upgrade now by running ${de.pretty(r,`yarn set version ${J[1]}`,de.Type.CODE)}`),L.reportSeparator();else{let te=Ke.telemetry.selectTip(U.tips);te&&(L.reportInfo(89,de.pretty(r,te.message,de.Type.MARKDOWN_INLINE)),te.url&&L.reportInfo(89,`Learn more at ${te.url}`),L.reportSeparator())}}}});if(R.hasErrors())return R.exitCode()}let{project:p,workspace:h}=await Pt.find(r,this.context.cwd),E=p.lockfileLastVersion;if(E!==null){let R=await Nt.start({configuration:r,json:this.json,stdout:this.context.stdout,includeFooter:!1},async L=>{let U={};for(let J of G0t)J.selector(E)&&typeof r.sources.get(J.name)>"u"&&(r.use("",{[J.name]:J.value},p.cwd,{overwrite:!0}),U[J.name]=J.value);Object.keys(U).length>0&&(await Ke.updateConfiguration(p.cwd,U),L.reportInfo(87,"Migrated your project to the latest Yarn version \u{1F680}"),L.reportSeparator())});if(R.hasErrors())return R.exitCode()}let I=await Lr.find(r,{immutable:A,check:this.checkCache});if(!h)throw new rr(p.cwd,this.context.cwd);await p.restoreInstallState({restoreResolutions:!1});let v=r.get("enableHardenedMode");v&&typeof r.sources.get("enableHardenedMode")>"u"&&await Nt.start({configuration:r,json:this.json,stdout:this.context.stdout,includeFooter:!1},async R=>{R.reportWarning(0,"Yarn detected that the current workflow is executed from a public pull request. For safety the hardened mode has been enabled."),R.reportWarning(0,`It will prevent malicious lockfile manipulations, in exchange for a slower install time. You can opt-out if necessary; check our ${de.applyHyperlink(r,"documentation","https://yarnpkg.com/features/security#hardened-mode")} for more details.`),R.reportSeparator()}),(this.refreshLockfile??v)&&(p.lockfileNeedsRefresh=!0);let x=this.checkResolutions??v;return(await Nt.start({configuration:r,json:this.json,stdout:this.context.stdout,forceSectionAlignment:!0,includeLogs:!0,includeVersion:!0},async R=>{await p.install({cache:I,report:R,immutable:u,checkResolutions:x,mode:this.mode})})).exitCode()}};jh.paths=[["install"],nt.Default],jh.usage=nt.Usage({description:"install the project dependencies",details:"\n This command sets up your project if needed. The installation is split into four different steps that each have their own characteristics:\n\n - **Resolution:** First the package manager will resolve your dependencies. The exact way a dependency version is privileged over another isn't standardized outside of the regular semver guarantees. If a package doesn't resolve to what you would expect, check that all dependencies are correctly declared (also check our website for more information: ).\n\n - **Fetch:** Then we download all the dependencies if needed, and make sure that they're all stored within our cache (check the value of `cacheFolder` in `yarn config` to see where the cache files are stored).\n\n - **Link:** Then we send the dependency tree information to internal plugins tasked with writing them on the disk in some form (for example by generating the `.pnp.cjs` file you might know).\n\n - **Build:** Once the dependency tree has been written on the disk, the package manager will now be free to run the build scripts for all packages that might need it, in a topological order compatible with the way they depend on one another. See https://yarnpkg.com/advanced/lifecycle-scripts for detail.\n\n Note that running this command is not part of the recommended workflow. Yarn supports zero-installs, which means that as long as you store your cache and your `.pnp.cjs` file inside your repository, everything will work without requiring any install right after cloning your repository or switching branches.\n\n If the `--immutable` option is set (defaults to true on CI), Yarn will abort with an error exit code if the lockfile was to be modified (other paths can be added using the `immutablePatterns` configuration setting). For backward compatibility we offer an alias under the name of `--frozen-lockfile`, but it will be removed in a later release.\n\n If the `--immutable-cache` option is set, Yarn will abort with an error exit code if the cache folder was to be modified (either because files would be added, or because they'd be removed).\n\n If the `--refresh-lockfile` option is set, Yarn will keep the same resolution for the packages currently in the lockfile but will refresh their metadata. If used together with `--immutable`, it can validate that the lockfile information are consistent. This flag is enabled by default when Yarn detects it runs within a pull request context.\n\n If the `--check-cache` option is set, Yarn will always refetch the packages and will ensure that their checksum matches what's 1/ described in the lockfile 2/ inside the existing cache files (if present). This is recommended as part of your CI workflow if you're both following the Zero-Installs model and accepting PRs from third-parties, as they'd otherwise have the ability to alter the checked-in packages before submitting them.\n\n If the `--inline-builds` option is set, Yarn will verbosely print the output of the build steps of your dependencies (instead of writing them into individual files). This is likely useful mostly for debug purposes only when using Docker-like environments.\n\n If the `--mode=` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n ",examples:[["Install the project","$0 install"],["Validate a project when using Zero-Installs","$0 install --immutable --immutable-cache"],["Validate a project when using Zero-Installs (slightly safer if you accept external PRs)","$0 install --immutable --immutable-cache --check-cache"]]});var Y0t="<<<<<<<";async function W0t(t,e){if(!t.projectCwd)return!1;let r=V.join(t.projectCwd,dr.lockfile);if(!await oe.existsPromise(r)||!(await oe.readFilePromise(r,"utf8")).includes(Y0t))return!1;if(e)throw new zt(47,"Cannot autofix a lockfile when running an immutable install");let a=await Ur.execvp("git",["rev-parse","MERGE_HEAD","HEAD"],{cwd:t.projectCwd});if(a.code!==0&&(a=await Ur.execvp("git",["rev-parse","REBASE_HEAD","HEAD"],{cwd:t.projectCwd})),a.code!==0&&(a=await Ur.execvp("git",["rev-parse","CHERRY_PICK_HEAD","HEAD"],{cwd:t.projectCwd})),a.code!==0)throw new zt(83,"Git returned an error when trying to find the commits pertaining to the conflict");let n=await Promise.all(a.stdout.trim().split(/\n/).map(async A=>{let p=await Ur.execvp("git",["show",`${A}:./${dr.lockfile}`],{cwd:t.projectCwd});if(p.code!==0)throw new zt(83,`Git returned an error when trying to access the lockfile content in ${A}`);try{return Ki(p.stdout)}catch{throw new zt(46,"A variant of the conflicting lockfile failed to parse")}}));n=n.filter(A=>!!A.__metadata);for(let A of n){if(A.__metadata.version<7)for(let p of Object.keys(A)){if(p==="__metadata")continue;let h=W.parseDescriptor(p,!0),E=t.normalizeDependency(h),I=W.stringifyDescriptor(E);I!==p&&(A[I]=A[p],delete A[p])}for(let p of Object.keys(A)){if(p==="__metadata")continue;let h=A[p].checksum;typeof h=="string"&&h.includes("/")||(A[p].checksum=`${A.__metadata.cacheKey}/${h}`)}}let u=Object.assign({},...n);u.__metadata.version=`${Math.min(...n.map(A=>parseInt(A.__metadata.version??0)))}`,u.__metadata.cacheKey="merged";for(let[A,p]of Object.entries(u))typeof p=="string"&&delete u[A];return await oe.changeFilePromise(r,Ba(u),{automaticNewlines:!0}),!0}async function K0t(t,e){if(!t.projectCwd)return!1;let r=[],o=V.join(t.projectCwd,".yarn/plugins/@yarnpkg");return await Ke.updateConfiguration(t.projectCwd,{plugins:n=>{if(!Array.isArray(n))return n;let u=n.filter(A=>{if(!A.path)return!0;let p=V.resolve(t.projectCwd,A.path),h=v1.has(A.spec)&&V.contains(o,p);return h&&r.push(p),!h});return u.length===0?Ke.deleteProperty:u.length===n.length?n:u}},{immutable:e})?(await Promise.all(r.map(async n=>{await oe.removePromise(n)})),!0):!1}Ye();St();qt();var Gh=class extends ut{constructor(){super(...arguments);this.all=ge.Boolean("-A,--all",!1,{description:"Link all workspaces belonging to the target projects to the current one"});this.private=ge.Boolean("-p,--private",!1,{description:"Also link private workspaces belonging to the target projects to the current one"});this.relative=ge.Boolean("-r,--relative",!1,{description:"Link workspaces using relative paths instead of absolute paths"});this.destinations=ge.Rest()}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Pt.find(r,this.context.cwd),n=await Lr.find(r);if(!a)throw new rr(o.cwd,this.context.cwd);await o.restoreInstallState({restoreResolutions:!1});let u=o.topLevelWorkspace,A=[];for(let p of this.destinations){let h=V.resolve(this.context.cwd,ue.toPortablePath(p)),E=await Ke.find(h,this.context.plugins,{useRc:!1,strict:!1}),{project:I,workspace:v}=await Pt.find(E,h);if(o.cwd===I.cwd)throw new it(`Invalid destination '${p}'; Can't link the project to itself`);if(!v)throw new rr(I.cwd,h);if(this.all){let x=!1;for(let C of I.workspaces)C.manifest.name&&(!C.manifest.private||this.private)&&(A.push(C),x=!0);if(!x)throw new it(`No workspace found to be linked in the target project: ${p}`)}else{if(!v.manifest.name)throw new it(`The target workspace at '${p}' doesn't have a name and thus cannot be linked`);if(v.manifest.private&&!this.private)throw new it(`The target workspace at '${p}' is marked private - use the --private flag to link it anyway`);A.push(v)}}for(let p of A){let h=W.stringifyIdent(p.anchoredLocator),E=this.relative?V.relative(o.cwd,p.cwd):p.cwd;u.manifest.resolutions.push({pattern:{descriptor:{fullName:h}},reference:`portal:${E}`})}return await o.installWithNewReport({stdout:this.context.stdout},{cache:n})}};Gh.paths=[["link"]],Gh.usage=nt.Usage({description:"connect the local project to another one",details:"\n This command will set a new `resolutions` field in the project-level manifest and point it to the workspace at the specified location (even if part of another project).\n ",examples:[["Register one or more remote workspaces for use in the current project","$0 link ~/ts-loader ~/jest"],["Register all workspaces from a remote project for use in the current project","$0 link ~/jest --all"]]});qt();var Yh=class extends ut{constructor(){super(...arguments);this.args=ge.Proxy()}async execute(){return this.cli.run(["exec","node",...this.args])}};Yh.paths=[["node"]],Yh.usage=nt.Usage({description:"run node with the hook already setup",details:` + This command simply runs Node. It also makes sure to call it in a way that's compatible with the current project (for example, on PnP projects the environment will be setup in such a way that PnP will be correctly injected into the environment). + + The Node process will use the exact same version of Node as the one used to run Yarn itself, which might be a good way to ensure that your commands always use a consistent Node version. + `,examples:[["Run a Node script","$0 node ./my-script.js"]]});Ye();qt();var Wh=class extends ut{constructor(){super(...arguments);this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),o=await Ke.findRcFiles(this.context.cwd);return(await Nt.start({configuration:r,json:this.json,stdout:this.context.stdout},async n=>{for(let u of o)if(!!u.data?.plugins)for(let A of u.data.plugins){if(!A.checksum||!A.spec.match(/^https?:/))continue;let p=await nn.get(A.spec,{configuration:r}),h=wn.makeHash(p);if(A.checksum===h)continue;let E=de.pretty(r,A.path,de.Type.PATH),I=de.pretty(r,A.spec,de.Type.URL),v=`${E} is different from the file provided by ${I}`;n.reportJson({...A,newChecksum:h}),n.reportError(0,v)}})).exitCode()}};Wh.paths=[["plugin","check"]],Wh.usage=nt.Usage({category:"Plugin-related commands",description:"find all third-party plugins that differ from their own spec",details:` + Check only the plugins from https. + + If this command detects any plugin differences in the CI environment, it will throw an error. + `,examples:[["find all third-party plugins that differ from their own spec","$0 plugin check"]]});Ye();Ye();St();qt();var nde=ve("os");Ye();St();qt();var $ge=ve("os");Ye();Nl();qt();var V0t="https://raw.githubusercontent.com/yarnpkg/berry/master/plugins.yml";async function zd(t,e){let r=await nn.get(V0t,{configuration:t}),o=Ki(r.toString());return Object.fromEntries(Object.entries(o).filter(([a,n])=>!e||kr.satisfiesWithPrereleases(e,n.range??"<4.0.0-rc.1")))}var Kh=class extends ut{constructor(){super(...arguments);this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins);return(await Nt.start({configuration:r,json:this.json,stdout:this.context.stdout},async a=>{let n=await zd(r,rn);for(let[u,{experimental:A,...p}]of Object.entries(n)){let h=u;A&&(h+=" [experimental]"),a.reportJson({name:u,experimental:A,...p}),a.reportInfo(null,h)}})).exitCode()}};Kh.paths=[["plugin","list"]],Kh.usage=nt.Usage({category:"Plugin-related commands",description:"list the available official plugins",details:"\n This command prints the plugins available directly from the Yarn repository. Only those plugins can be referenced by name in `yarn plugin import`.\n ",examples:[["List the official plugins","$0 plugin list"]]});var J0t=/^[0-9]+$/,z0t=process.platform==="win32";function ede(t){return J0t.test(t)?`pull/${t}/head`:t}var X0t=({repository:t,branch:e},r)=>[["git","init",ue.fromPortablePath(r)],["git","remote","add","origin",t],["git","fetch","origin","--depth=1",ede(e)],["git","reset","--hard","FETCH_HEAD"]],Z0t=({branch:t})=>[["git","fetch","origin","--depth=1",ede(t),"--force"],["git","reset","--hard","FETCH_HEAD"],["git","clean","-dfx","-e","packages/yarnpkg-cli/bundles"]],$0t=({plugins:t,noMinify:e},r,o)=>[["yarn","build:cli",...new Array().concat(...t.map(a=>["--plugin",V.resolve(o,a)])),...e?["--no-minify"]:[],"|"],[z0t?"move":"mv","packages/yarnpkg-cli/bundles/yarn.js",ue.fromPortablePath(r),"|"]],Vh=class extends ut{constructor(){super(...arguments);this.installPath=ge.String("--path",{description:"The path where the repository should be cloned to"});this.repository=ge.String("--repository","https://github.com/yarnpkg/berry.git",{description:"The repository that should be cloned"});this.branch=ge.String("--branch","master",{description:"The branch of the repository that should be cloned"});this.plugins=ge.Array("--plugin",[],{description:"An array of additional plugins that should be included in the bundle"});this.dryRun=ge.Boolean("-n,--dry-run",!1,{description:"If set, the bundle will be built but not added to the project"});this.noMinify=ge.Boolean("--no-minify",!1,{description:"Build a bundle for development (debugging) - non-minified and non-mangled"});this.force=ge.Boolean("-f,--force",!1,{description:"Always clone the repository instead of trying to fetch the latest commits"});this.skipPlugins=ge.Boolean("--skip-plugins",!1,{description:"Skip updating the contrib plugins"})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o}=await Pt.find(r,this.context.cwd),a=typeof this.installPath<"u"?V.resolve(this.context.cwd,ue.toPortablePath(this.installPath)):V.resolve(ue.toPortablePath((0,$ge.tmpdir)()),"yarnpkg-sources",wn.makeHash(this.repository).slice(0,6));return(await Nt.start({configuration:r,stdout:this.context.stdout},async u=>{await M8(this,{configuration:r,report:u,target:a}),u.reportSeparator(),u.reportInfo(0,"Building a fresh bundle"),u.reportSeparator();let A=await Ur.execvp("git",["rev-parse","--short","HEAD"],{cwd:a,strict:!0}),p=V.join(a,`packages/yarnpkg-cli/bundles/yarn-${A.stdout.trim()}.js`);oe.existsSync(p)||(await E2($0t(this,p,a),{configuration:r,context:this.context,target:a}),u.reportSeparator());let h=await oe.readFilePromise(p);if(!this.dryRun){let{bundleVersion:E}=await L8(r,null,async()=>h,{report:u});this.skipPlugins||await egt(this,E,{project:o,report:u,target:a})}})).exitCode()}};Vh.paths=[["set","version","from","sources"]],Vh.usage=nt.Usage({description:"build Yarn from master",details:` + This command will clone the Yarn repository into a temporary folder, then build it. The resulting bundle will then be copied into the local project. + + By default, it also updates all contrib plugins to the same commit the bundle is built from. This behavior can be disabled by using the \`--skip-plugins\` flag. + `,examples:[["Build Yarn from master","$0 set version from sources"]]});async function E2(t,{configuration:e,context:r,target:o}){for(let[a,...n]of t){let u=n[n.length-1]==="|";if(u&&n.pop(),u)await Ur.pipevp(a,n,{cwd:o,stdin:r.stdin,stdout:r.stdout,stderr:r.stderr,strict:!0});else{r.stdout.write(`${de.pretty(e,` $ ${[a,...n].join(" ")}`,"grey")} +`);try{await Ur.execvp(a,n,{cwd:o,strict:!0})}catch(A){throw r.stdout.write(A.stdout||A.stack),A}}}}async function M8(t,{configuration:e,report:r,target:o}){let a=!1;if(!t.force&&oe.existsSync(V.join(o,".git"))){r.reportInfo(0,"Fetching the latest commits"),r.reportSeparator();try{await E2(Z0t(t),{configuration:e,context:t.context,target:o}),a=!0}catch{r.reportSeparator(),r.reportWarning(0,"Repository update failed; we'll try to regenerate it")}}a||(r.reportInfo(0,"Cloning the remote repository"),r.reportSeparator(),await oe.removePromise(o),await oe.mkdirPromise(o,{recursive:!0}),await E2(X0t(t,o),{configuration:e,context:t.context,target:o}))}async function egt(t,e,{project:r,report:o,target:a}){let n=await zd(r.configuration,e),u=new Set(Object.keys(n));for(let A of r.configuration.plugins.keys())!u.has(A)||await U8(A,t,{project:r,report:o,target:a})}Ye();Ye();St();qt();var tde=$e(zn()),rde=ve("vm");var Jh=class extends ut{constructor(){super(...arguments);this.name=ge.String();this.checksum=ge.Boolean("--checksum",!0,{description:"Whether to care if this plugin is modified"})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins);return(await Nt.start({configuration:r,stdout:this.context.stdout},async a=>{let{project:n}=await Pt.find(r,this.context.cwd),u,A;if(this.name.match(/^\.{0,2}[\\/]/)||ue.isAbsolute(this.name)){let p=V.resolve(this.context.cwd,ue.toPortablePath(this.name));a.reportInfo(0,`Reading ${de.pretty(r,p,de.Type.PATH)}`),u=V.relative(n.cwd,p),A=await oe.readFilePromise(p)}else{let p;if(this.name.match(/^https?:/)){try{new URL(this.name)}catch{throw new zt(52,`Plugin specifier "${this.name}" is neither a plugin name nor a valid url`)}u=this.name,p=this.name}else{let h=W.parseLocator(this.name.replace(/^((@yarnpkg\/)?plugin-)?/,"@yarnpkg/plugin-"));if(h.reference!=="unknown"&&!tde.default.valid(h.reference))throw new zt(0,"Official plugins only accept strict version references. Use an explicit URL if you wish to download them from another location.");let E=W.stringifyIdent(h),I=await zd(r,rn);if(!Object.hasOwn(I,E)){let v=`Couldn't find a plugin named ${W.prettyIdent(r,h)} on the remote registry. +`;throw r.plugins.has(E)?v+=`A plugin named ${W.prettyIdent(r,h)} is already installed; possibly attempting to import a built-in plugin.`:v+=`Note that only the plugins referenced on our website (${de.pretty(r,"https://github.com/yarnpkg/berry/blob/master/plugins.yml",de.Type.URL)}) can be referenced by their name; any other plugin will have to be referenced through its public url (for example ${de.pretty(r,"https://github.com/yarnpkg/berry/raw/master/packages/plugin-typescript/bin/%40yarnpkg/plugin-typescript.js",de.Type.URL)}).`,new zt(51,v)}u=E,p=I[E].url,h.reference!=="unknown"?p=p.replace(/\/master\//,`/${E}/${h.reference}/`):rn!==null&&(p=p.replace(/\/master\//,`/@yarnpkg/cli/${rn}/`))}a.reportInfo(0,`Downloading ${de.pretty(r,p,"green")}`),A=await nn.get(p,{configuration:r})}await _8(u,A,{checksum:this.checksum,project:n,report:a})})).exitCode()}};Jh.paths=[["plugin","import"]],Jh.usage=nt.Usage({category:"Plugin-related commands",description:"download a plugin",details:` + This command downloads the specified plugin from its remote location and updates the configuration to reference it in further CLI invocations. + + Three types of plugin references are accepted: + + - If the plugin is stored within the Yarn repository, it can be referenced by name. + - Third-party plugins can be referenced directly through their public urls. + - Local plugins can be referenced by their path on the disk. + + If the \`--no-checksum\` option is set, Yarn will no longer care if the plugin is modified. + + Plugins cannot be downloaded from the npm registry, and aren't allowed to have dependencies (they need to be bundled into a single file, possibly thanks to the \`@yarnpkg/builder\` package). + `,examples:[['Download and activate the "@yarnpkg/plugin-exec" plugin',"$0 plugin import @yarnpkg/plugin-exec"],['Download and activate the "@yarnpkg/plugin-exec" plugin (shorthand)',"$0 plugin import exec"],["Download and activate a community plugin","$0 plugin import https://example.org/path/to/plugin.js"],["Activate a local plugin","$0 plugin import ./path/to/plugin.js"]]});async function _8(t,e,{checksum:r=!0,project:o,report:a}){let{configuration:n}=o,u={},A={exports:u};(0,rde.runInNewContext)(e.toString(),{module:A,exports:u});let h=`.yarn/plugins/${A.exports.name}.cjs`,E=V.resolve(o.cwd,h);a.reportInfo(0,`Saving the new plugin in ${de.pretty(n,h,"magenta")}`),await oe.mkdirPromise(V.dirname(E),{recursive:!0}),await oe.writeFilePromise(E,e);let I={path:h,spec:t};r&&(I.checksum=wn.makeHash(e)),await Ke.addPlugin(o.cwd,[I])}var tgt=({pluginName:t,noMinify:e},r)=>[["yarn",`build:${t}`,...e?["--no-minify"]:[],"|"]],zh=class extends ut{constructor(){super(...arguments);this.installPath=ge.String("--path",{description:"The path where the repository should be cloned to"});this.repository=ge.String("--repository","https://github.com/yarnpkg/berry.git",{description:"The repository that should be cloned"});this.branch=ge.String("--branch","master",{description:"The branch of the repository that should be cloned"});this.noMinify=ge.Boolean("--no-minify",!1,{description:"Build a plugin for development (debugging) - non-minified and non-mangled"});this.force=ge.Boolean("-f,--force",!1,{description:"Always clone the repository instead of trying to fetch the latest commits"});this.name=ge.String()}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),o=typeof this.installPath<"u"?V.resolve(this.context.cwd,ue.toPortablePath(this.installPath)):V.resolve(ue.toPortablePath((0,nde.tmpdir)()),"yarnpkg-sources",wn.makeHash(this.repository).slice(0,6));return(await Nt.start({configuration:r,stdout:this.context.stdout},async n=>{let{project:u}=await Pt.find(r,this.context.cwd),A=W.parseIdent(this.name.replace(/^((@yarnpkg\/)?plugin-)?/,"@yarnpkg/plugin-")),p=W.stringifyIdent(A),h=await zd(r,rn);if(!Object.hasOwn(h,p))throw new zt(51,`Couldn't find a plugin named "${p}" on the remote registry. Note that only the plugins referenced on our website (https://github.com/yarnpkg/berry/blob/master/plugins.yml) can be built and imported from sources.`);let E=p;await M8(this,{configuration:r,report:n,target:o}),await U8(E,this,{project:u,report:n,target:o})})).exitCode()}};zh.paths=[["plugin","import","from","sources"]],zh.usage=nt.Usage({category:"Plugin-related commands",description:"build a plugin from sources",details:` + This command clones the Yarn repository into a temporary folder, builds the specified contrib plugin and updates the configuration to reference it in further CLI invocations. + + The plugins can be referenced by their short name if sourced from the official Yarn repository. + `,examples:[['Build and activate the "@yarnpkg/plugin-exec" plugin',"$0 plugin import from sources @yarnpkg/plugin-exec"],['Build and activate the "@yarnpkg/plugin-exec" plugin (shorthand)',"$0 plugin import from sources exec"]]});async function U8(t,{context:e,noMinify:r},{project:o,report:a,target:n}){let u=t.replace(/@yarnpkg\//,""),{configuration:A}=o;a.reportSeparator(),a.reportInfo(0,`Building a fresh ${u}`),a.reportSeparator(),await E2(tgt({pluginName:u,noMinify:r},n),{configuration:A,context:e,target:n}),a.reportSeparator();let p=V.resolve(n,`packages/${u}/bundles/${t}.js`),h=await oe.readFilePromise(p);await _8(t,h,{project:o,report:a})}Ye();St();qt();var Xh=class extends ut{constructor(){super(...arguments);this.name=ge.String()}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o}=await Pt.find(r,this.context.cwd);return(await Nt.start({configuration:r,stdout:this.context.stdout},async n=>{let u=this.name,A=W.parseIdent(u);if(!r.plugins.has(u))throw new it(`${W.prettyIdent(r,A)} isn't referenced by the current configuration`);let p=`.yarn/plugins/${u}.cjs`,h=V.resolve(o.cwd,p);oe.existsSync(h)&&(n.reportInfo(0,`Removing ${de.pretty(r,p,de.Type.PATH)}...`),await oe.removePromise(h)),n.reportInfo(0,"Updating the configuration..."),await Ke.updateConfiguration(o.cwd,{plugins:E=>{if(!Array.isArray(E))return E;let I=E.filter(v=>v.path!==p);return I.length===0?Ke.deleteProperty:I.length===E.length?E:I}})})).exitCode()}};Xh.paths=[["plugin","remove"]],Xh.usage=nt.Usage({category:"Plugin-related commands",description:"remove a plugin",details:` + This command deletes the specified plugin from the .yarn/plugins folder and removes it from the configuration. + + **Note:** The plugins have to be referenced by their name property, which can be obtained using the \`yarn plugin runtime\` command. Shorthands are not allowed. + `,examples:[["Remove a plugin imported from the Yarn repository","$0 plugin remove @yarnpkg/plugin-typescript"],["Remove a plugin imported from a local file","$0 plugin remove my-local-plugin"]]});Ye();qt();var Zh=class extends ut{constructor(){super(...arguments);this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins);return(await Nt.start({configuration:r,json:this.json,stdout:this.context.stdout},async a=>{for(let n of r.plugins.keys()){let u=this.context.plugins.plugins.has(n),A=n;u&&(A+=" [builtin]"),a.reportJson({name:n,builtin:u}),a.reportInfo(null,`${A}`)}})).exitCode()}};Zh.paths=[["plugin","runtime"]],Zh.usage=nt.Usage({category:"Plugin-related commands",description:"list the active plugins",details:` + This command prints the currently active plugins. Will be displayed both builtin plugins and external plugins. + `,examples:[["List the currently active plugins","$0 plugin runtime"]]});Ye();Ye();qt();var $h=class extends ut{constructor(){super(...arguments);this.idents=ge.Rest()}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Pt.find(r,this.context.cwd),n=await Lr.find(r);if(!a)throw new rr(o.cwd,this.context.cwd);let u=new Set;for(let A of this.idents)u.add(W.parseIdent(A).identHash);if(await o.restoreInstallState({restoreResolutions:!1}),await o.resolveEverything({cache:n,report:new Qi}),u.size>0)for(let A of o.storedPackages.values())u.has(A.identHash)&&(o.storedBuildState.delete(A.locatorHash),o.skippedBuilds.delete(A.locatorHash));else o.storedBuildState.clear(),o.skippedBuilds.clear();return await o.installWithNewReport({stdout:this.context.stdout,quiet:this.context.quiet},{cache:n})}};$h.paths=[["rebuild"]],$h.usage=nt.Usage({description:"rebuild the project's native packages",details:` + This command will automatically cause Yarn to forget about previous compilations of the given packages and to run them again. + + Note that while Yarn forgets the compilation, the previous artifacts aren't erased from the filesystem and may affect the next builds (in good or bad). To avoid this, you may remove the .yarn/unplugged folder, or any other relevant location where packages might have been stored (Yarn may offer a way to do that automatically in the future). + + By default all packages will be rebuilt, but you can filter the list by specifying the names of the packages you want to clear from memory. + `,examples:[["Rebuild all packages","$0 rebuild"],["Rebuild fsevents only","$0 rebuild fsevents"]]});Ye();Ye();Ye();qt();var H8=$e(Zo());Za();var e0=class extends ut{constructor(){super(...arguments);this.all=ge.Boolean("-A,--all",!1,{description:"Apply the operation to all workspaces from the current project"});this.mode=ge.String("--mode",{description:"Change what artifacts installs generate",validator:Ks(pl)});this.patterns=ge.Rest()}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Pt.find(r,this.context.cwd),n=await Lr.find(r);if(!a)throw new rr(o.cwd,this.context.cwd);await o.restoreInstallState({restoreResolutions:!1});let u=this.all?o.workspaces:[a],A=["dependencies","devDependencies","peerDependencies"],p=[],h=!1,E=[];for(let C of this.patterns){let R=!1,L=W.parseIdent(C);for(let U of u){let J=[...U.manifest.peerDependenciesMeta.keys()];for(let te of(0,H8.default)(J,C))U.manifest.peerDependenciesMeta.delete(te),h=!0,R=!0;for(let te of A){let ae=U.manifest.getForScope(te),fe=[...ae.values()].map(ce=>W.stringifyIdent(ce));for(let ce of(0,H8.default)(fe,W.stringifyIdent(L))){let{identHash:me}=W.parseIdent(ce),he=ae.get(me);if(typeof he>"u")throw new Error("Assertion failed: Expected the descriptor to be registered");U.manifest[te].delete(me),E.push([U,te,he]),h=!0,R=!0}}}R||p.push(C)}let I=p.length>1?"Patterns":"Pattern",v=p.length>1?"don't":"doesn't",x=this.all?"any":"this";if(p.length>0)throw new it(`${I} ${de.prettyList(r,p,de.Type.CODE)} ${v} match any packages referenced by ${x} workspace`);return h?(await r.triggerMultipleHooks(C=>C.afterWorkspaceDependencyRemoval,E),await o.installWithNewReport({stdout:this.context.stdout},{cache:n,mode:this.mode})):0}};e0.paths=[["remove"]],e0.usage=nt.Usage({description:"remove dependencies from the project",details:` + This command will remove the packages matching the specified patterns from the current workspace. + + If the \`--mode=\` option is set, Yarn will change which artifacts are generated. The modes currently supported are: + + - \`skip-build\` will not run the build scripts at all. Note that this is different from setting \`enableScripts\` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run. + + - \`update-lockfile\` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost. + + This command accepts glob patterns as arguments (if valid Idents and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them. + `,examples:[["Remove a dependency from the current project","$0 remove lodash"],["Remove a dependency from all workspaces at once","$0 remove lodash --all"],["Remove all dependencies starting with `eslint-`","$0 remove 'eslint-*'"],["Remove all dependencies with the `@babel` scope","$0 remove '@babel/*'"],["Remove all dependencies matching `react-dom` or `react-helmet`","$0 remove 'react-{dom,helmet}'"]]});Ye();Ye();qt();var ide=ve("util"),Xd=class extends ut{constructor(){super(...arguments);this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Pt.find(r,this.context.cwd);if(!a)throw new rr(o.cwd,this.context.cwd);return(await Nt.start({configuration:r,stdout:this.context.stdout,json:this.json},async u=>{let A=a.manifest.scripts,p=_e.sortMap(A.keys(),I=>I),h={breakLength:1/0,colors:r.get("enableColors"),maxArrayLength:2},E=p.reduce((I,v)=>Math.max(I,v.length),0);for(let[I,v]of A.entries())u.reportInfo(null,`${I.padEnd(E," ")} ${(0,ide.inspect)(v,h)}`),u.reportJson({name:I,script:v})})).exitCode()}};Xd.paths=[["run"]];Ye();Ye();qt();var t0=class extends ut{constructor(){super(...arguments);this.inspect=ge.String("--inspect",!1,{tolerateBoolean:!0,description:"Forwarded to the underlying Node process when executing a binary"});this.inspectBrk=ge.String("--inspect-brk",!1,{tolerateBoolean:!0,description:"Forwarded to the underlying Node process when executing a binary"});this.topLevel=ge.Boolean("-T,--top-level",!1,{description:"Check the root workspace for scripts and/or binaries instead of the current one"});this.binariesOnly=ge.Boolean("-B,--binaries-only",!1,{description:"Ignore any user defined scripts and only check for binaries"});this.require=ge.String("--require",{description:"Forwarded to the underlying Node process when executing a binary"});this.silent=ge.Boolean("--silent",{hidden:!0});this.scriptName=ge.String();this.args=ge.Proxy()}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,workspace:a,locator:n}=await Pt.find(r,this.context.cwd);await o.restoreInstallState();let u=this.topLevel?o.topLevelWorkspace.anchoredLocator:n;if(!this.binariesOnly&&await un.hasPackageScript(u,this.scriptName,{project:o}))return await un.executePackageScript(u,this.scriptName,this.args,{project:o,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr});let A=await un.getPackageAccessibleBinaries(u,{project:o});if(A.get(this.scriptName)){let h=[];return this.inspect&&(typeof this.inspect=="string"?h.push(`--inspect=${this.inspect}`):h.push("--inspect")),this.inspectBrk&&(typeof this.inspectBrk=="string"?h.push(`--inspect-brk=${this.inspectBrk}`):h.push("--inspect-brk")),this.require&&h.push(`--require=${this.require}`),await un.executePackageAccessibleBinary(u,this.scriptName,this.args,{cwd:this.context.cwd,project:o,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,nodeArgs:h,packageAccessibleBinaries:A})}if(!this.topLevel&&!this.binariesOnly&&a&&this.scriptName.includes(":")){let E=(await Promise.all(o.workspaces.map(async I=>I.manifest.scripts.has(this.scriptName)?I:null))).filter(I=>I!==null);if(E.length===1)return await un.executeWorkspaceScript(E[0],this.scriptName,this.args,{stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr})}if(this.topLevel)throw this.scriptName==="node-gyp"?new it(`Couldn't find a script name "${this.scriptName}" in the top-level (used by ${W.prettyLocator(r,n)}). This typically happens because some package depends on "node-gyp" to build itself, but didn't list it in their dependencies. To fix that, please run "yarn add node-gyp" into your top-level workspace. You also can open an issue on the repository of the specified package to suggest them to use an optional peer dependency.`):new it(`Couldn't find a script name "${this.scriptName}" in the top-level (used by ${W.prettyLocator(r,n)}).`);{if(this.scriptName==="global")throw new it("The 'yarn global' commands have been removed in 2.x - consider using 'yarn dlx' or a third-party plugin instead");let h=[this.scriptName].concat(this.args);for(let[E,I]of AC)for(let v of I)if(h.length>=v.length&&JSON.stringify(h.slice(0,v.length))===JSON.stringify(v))throw new it(`Couldn't find a script named "${this.scriptName}", but a matching command can be found in the ${E} plugin. You can install it with "yarn plugin import ${E}".`);throw new it(`Couldn't find a script named "${this.scriptName}".`)}}};t0.paths=[["run"]],t0.usage=nt.Usage({description:"run a script defined in the package.json",details:` + This command will run a tool. The exact tool that will be executed will depend on the current state of your workspace: + + - If the \`scripts\` field from your local package.json contains a matching script name, its definition will get executed. + + - Otherwise, if one of the local workspace's dependencies exposes a binary with a matching name, this binary will get executed. + + - Otherwise, if the specified name contains a colon character and if one of the workspaces in the project contains exactly one script with a matching name, then this script will get executed. + + Whatever happens, the cwd of the spawned process will be the workspace that declares the script (which makes it possible to call commands cross-workspaces using the third syntax). + `,examples:[["Run the tests from the local workspace","$0 run test"],['Same thing, but without the "run" keyword',"$0 test"],["Inspect Webpack while running","$0 run --inspect-brk webpack"]]});Ye();Ye();qt();var r0=class extends ut{constructor(){super(...arguments);this.descriptor=ge.String();this.resolution=ge.String()}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Pt.find(r,this.context.cwd),n=await Lr.find(r);if(await o.restoreInstallState({restoreResolutions:!1}),!a)throw new rr(o.cwd,this.context.cwd);let u=W.parseDescriptor(this.descriptor,!0),A=W.makeDescriptor(u,this.resolution);return o.storedDescriptors.set(u.descriptorHash,u),o.storedDescriptors.set(A.descriptorHash,A),o.resolutionAliases.set(u.descriptorHash,A.descriptorHash),await o.installWithNewReport({stdout:this.context.stdout},{cache:n})}};r0.paths=[["set","resolution"]],r0.usage=nt.Usage({description:"enforce a package resolution",details:'\n This command updates the resolution table so that `descriptor` is resolved by `resolution`.\n\n Note that by default this command only affect the current resolution table - meaning that this "manual override" will disappear if you remove the lockfile, or if the package disappear from the table. If you wish to make the enforced resolution persist whatever happens, edit the `resolutions` field in your top-level manifest.\n\n Note that no attempt is made at validating that `resolution` is a valid resolution entry for `descriptor`.\n ',examples:[["Force all instances of lodash@npm:^1.2.3 to resolve to 1.5.0","$0 set resolution lodash@npm:^1.2.3 1.5.0"]]});Ye();St();qt();var sde=$e(Zo()),n0=class extends ut{constructor(){super(...arguments);this.all=ge.Boolean("-A,--all",!1,{description:"Unlink all workspaces belonging to the target project from the current one"});this.leadingArguments=ge.Rest()}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Pt.find(r,this.context.cwd),n=await Lr.find(r);if(!a)throw new rr(o.cwd,this.context.cwd);let u=o.topLevelWorkspace,A=new Set;if(this.leadingArguments.length===0&&this.all)for(let{pattern:p,reference:h}of u.manifest.resolutions)h.startsWith("portal:")&&A.add(p.descriptor.fullName);if(this.leadingArguments.length>0)for(let p of this.leadingArguments){let h=V.resolve(this.context.cwd,ue.toPortablePath(p));if(_e.isPathLike(p)){let E=await Ke.find(h,this.context.plugins,{useRc:!1,strict:!1}),{project:I,workspace:v}=await Pt.find(E,h);if(!v)throw new rr(I.cwd,h);if(this.all){for(let x of I.workspaces)x.manifest.name&&A.add(W.stringifyIdent(x.anchoredLocator));if(A.size===0)throw new it("No workspace found to be unlinked in the target project")}else{if(!v.manifest.name)throw new it("The target workspace doesn't have a name and thus cannot be unlinked");A.add(W.stringifyIdent(v.anchoredLocator))}}else{let E=[...u.manifest.resolutions.map(({pattern:I})=>I.descriptor.fullName)];for(let I of(0,sde.default)(E,p))A.add(I)}}return u.manifest.resolutions=u.manifest.resolutions.filter(({pattern:p})=>!A.has(p.descriptor.fullName)),await o.installWithNewReport({stdout:this.context.stdout,quiet:this.context.quiet},{cache:n})}};n0.paths=[["unlink"]],n0.usage=nt.Usage({description:"disconnect the local project from another one",details:` + This command will remove any resolutions in the project-level manifest that would have been added via a yarn link with similar arguments. + `,examples:[["Unregister a remote workspace in the current project","$0 unlink ~/ts-loader"],["Unregister all workspaces from a remote project in the current project","$0 unlink ~/jest --all"],["Unregister all previously linked workspaces","$0 unlink --all"],["Unregister all workspaces matching a glob","$0 unlink '@babel/*' 'pkg-{a,b}'"]]});Ye();Ye();Ye();qt();var ode=$e(f2()),q8=$e(Zo());Za();var Jf=class extends ut{constructor(){super(...arguments);this.interactive=ge.Boolean("-i,--interactive",{description:"Offer various choices, depending on the detected upgrade paths"});this.fixed=ge.Boolean("-F,--fixed",!1,{description:"Store dependency tags as-is instead of resolving them"});this.exact=ge.Boolean("-E,--exact",!1,{description:"Don't use any semver modifier on the resolved range"});this.tilde=ge.Boolean("-T,--tilde",!1,{description:"Use the `~` semver modifier on the resolved range"});this.caret=ge.Boolean("-C,--caret",!1,{description:"Use the `^` semver modifier on the resolved range"});this.recursive=ge.Boolean("-R,--recursive",!1,{description:"Resolve again ALL resolutions for those packages"});this.mode=ge.String("--mode",{description:"Change what artifacts installs generate",validator:Ks(pl)});this.patterns=ge.Rest()}async execute(){return this.recursive?await this.executeUpRecursive():await this.executeUpClassic()}async executeUpRecursive(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Pt.find(r,this.context.cwd),n=await Lr.find(r);if(!a)throw new rr(o.cwd,this.context.cwd);await o.restoreInstallState({restoreResolutions:!1});let u=[...o.storedDescriptors.values()],A=u.map(E=>W.stringifyIdent(E)),p=new Set;for(let E of this.patterns){if(W.parseDescriptor(E).range!=="unknown")throw new it("Ranges aren't allowed when using --recursive");for(let I of(0,q8.default)(A,E)){let v=W.parseIdent(I);p.add(v.identHash)}}let h=u.filter(E=>p.has(E.identHash));for(let E of h)o.storedDescriptors.delete(E.descriptorHash),o.storedResolutions.delete(E.descriptorHash);return await o.installWithNewReport({stdout:this.context.stdout},{cache:n,mode:this.mode})}async executeUpClassic(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Pt.find(r,this.context.cwd),n=await Lr.find(r);if(!a)throw new rr(o.cwd,this.context.cwd);await o.restoreInstallState({restoreResolutions:!1});let u=this.fixed,A=this.interactive??r.get("preferInteractive"),p=h2(this,o),h=A?["keep","reuse","project","latest"]:["project","latest"],E=[],I=[];for(let L of this.patterns){let U=!1,J=W.parseDescriptor(L),te=W.stringifyIdent(J);for(let ae of o.workspaces)for(let fe of["dependencies","devDependencies"]){let me=[...ae.manifest.getForScope(fe).values()].map(Be=>W.stringifyIdent(Be)),he=te==="*"?me:(0,q8.default)(me,te);for(let Be of he){let we=W.parseIdent(Be),g=ae.manifest[fe].get(we.identHash);if(typeof g>"u")throw new Error("Assertion failed: Expected the descriptor to be registered");let Ee=W.makeDescriptor(we,J.range);E.push(Promise.resolve().then(async()=>[ae,fe,g,await g2(Ee,{project:o,workspace:ae,cache:n,target:fe,fixed:u,modifier:p,strategies:h})])),U=!0}}U||I.push(L)}if(I.length>1)throw new it(`Patterns ${de.prettyList(r,I,de.Type.CODE)} don't match any packages referenced by any workspace`);if(I.length>0)throw new it(`Pattern ${de.prettyList(r,I,de.Type.CODE)} doesn't match any packages referenced by any workspace`);let v=await Promise.all(E),x=await AA.start({configuration:r,stdout:this.context.stdout,suggestInstall:!1},async L=>{for(let[,,U,{suggestions:J,rejections:te}]of v){let ae=J.filter(fe=>fe.descriptor!==null);if(ae.length===0){let[fe]=te;if(typeof fe>"u")throw new Error("Assertion failed: Expected an error to have been set");let ce=this.cli.error(fe);o.configuration.get("enableNetwork")?L.reportError(27,`${W.prettyDescriptor(r,U)} can't be resolved to a satisfying range + +${ce}`):L.reportError(27,`${W.prettyDescriptor(r,U)} can't be resolved to a satisfying range (note: network resolution has been disabled) + +${ce}`)}else ae.length>1&&!A&&L.reportError(27,`${W.prettyDescriptor(r,U)} has multiple possible upgrade strategies; use -i to disambiguate manually`)}});if(x.hasErrors())return x.exitCode();let C=!1,R=[];for(let[L,U,,{suggestions:J}]of v){let te,ae=J.filter(he=>he.descriptor!==null),fe=ae[0].descriptor,ce=ae.every(he=>W.areDescriptorsEqual(he.descriptor,fe));ae.length===1||ce?te=fe:(C=!0,{answer:te}=await(0,ode.prompt)({type:"select",name:"answer",message:`Which range do you want to use in ${W.prettyWorkspace(r,L)} \u276F ${U}?`,choices:J.map(({descriptor:he,name:Be,reason:we})=>he?{name:Be,hint:we,descriptor:he}:{name:Be,hint:we,disabled:!0}),onCancel:()=>process.exit(130),result(he){return this.find(he,"descriptor")},stdin:this.context.stdin,stdout:this.context.stdout}));let me=L.manifest[U].get(te.identHash);if(typeof me>"u")throw new Error("Assertion failed: This descriptor should have a matching entry");if(me.descriptorHash!==te.descriptorHash)L.manifest[U].set(te.identHash,te),R.push([L,U,me,te]);else{let he=r.makeResolver(),Be={project:o,resolver:he},we=r.normalizeDependency(me),g=he.bindDescriptor(we,L.anchoredLocator,Be);o.forgetResolution(g)}}return await r.triggerMultipleHooks(L=>L.afterWorkspaceDependencyReplacement,R),C&&this.context.stdout.write(` +`),await o.installWithNewReport({stdout:this.context.stdout},{cache:n,mode:this.mode})}};Jf.paths=[["up"]],Jf.usage=nt.Usage({description:"upgrade dependencies across the project",details:"\n This command upgrades the packages matching the list of specified patterns to their latest available version across the whole project (regardless of whether they're part of `dependencies` or `devDependencies` - `peerDependencies` won't be affected). This is a project-wide command: all workspaces will be upgraded in the process.\n\n If `-R,--recursive` is set the command will change behavior and no other switch will be allowed. When operating under this mode `yarn up` will force all ranges matching the selected packages to be resolved again (often to the highest available versions) before being stored in the lockfile. It however won't touch your manifests anymore, so depending on your needs you might want to run both `yarn up` and `yarn up -R` to cover all bases.\n\n If `-i,--interactive` is set (or if the `preferInteractive` settings is toggled on) the command will offer various choices, depending on the detected upgrade paths. Some upgrades require this flag in order to resolve ambiguities.\n\n The, `-C,--caret`, `-E,--exact` and `-T,--tilde` options have the same meaning as in the `add` command (they change the modifier used when the range is missing or a tag, and are ignored when the range is explicitly set).\n\n If the `--mode=` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n\n Generally you can see `yarn up` as a counterpart to what was `yarn upgrade --latest` in Yarn 1 (ie it ignores the ranges previously listed in your manifests), but unlike `yarn upgrade` which only upgraded dependencies in the current workspace, `yarn up` will upgrade all workspaces at the same time.\n\n This command accepts glob patterns as arguments (if valid Descriptors and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them.\n\n **Note:** The ranges have to be static, only the package scopes and names can contain glob patterns.\n ",examples:[["Upgrade all instances of lodash to the latest release","$0 up lodash"],["Upgrade all instances of lodash to the latest release, but ask confirmation for each","$0 up lodash -i"],["Upgrade all instances of lodash to 1.2.3","$0 up lodash@1.2.3"],["Upgrade all instances of packages with the `@babel` scope to the latest release","$0 up '@babel/*'"],["Upgrade all instances of packages containing the word `jest` to the latest release","$0 up '*jest*'"],["Upgrade all instances of packages with the `@babel` scope to 7.0.0","$0 up '@babel/*@7.0.0'"]]}),Jf.schema=[cI("recursive",Gu.Forbids,["interactive","exact","tilde","caret"],{ignore:[void 0,!1]})];Ye();Ye();Ye();qt();var i0=class extends ut{constructor(){super(...arguments);this.recursive=ge.Boolean("-R,--recursive",!1,{description:"List, for each workspace, what are all the paths that lead to the dependency"});this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.peers=ge.Boolean("--peers",!1,{description:"Also print the peer dependencies that match the specified name"});this.package=ge.String()}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Pt.find(r,this.context.cwd);if(!a)throw new rr(o.cwd,this.context.cwd);await o.restoreInstallState();let n=W.parseIdent(this.package).identHash,u=this.recursive?ngt(o,n,{configuration:r,peers:this.peers}):rgt(o,n,{configuration:r,peers:this.peers});$s.emitTree(u,{configuration:r,stdout:this.context.stdout,json:this.json,separators:1})}};i0.paths=[["why"]],i0.usage=nt.Usage({description:"display the reason why a package is needed",details:` + This command prints the exact reasons why a package appears in the dependency tree. + + If \`-R,--recursive\` is set, the listing will go in depth and will list, for each workspaces, what are all the paths that lead to the dependency. Note that the display is somewhat optimized in that it will not print the package listing twice for a single package, so if you see a leaf named "Foo" when looking for "Bar", it means that "Foo" already got printed higher in the tree. + `,examples:[["Explain why lodash is used in your project","$0 why lodash"]]});function rgt(t,e,{configuration:r,peers:o}){let a=_e.sortMap(t.storedPackages.values(),A=>W.stringifyLocator(A)),n={},u={children:n};for(let A of a){let p={};for(let E of A.dependencies.values()){if(!o&&A.peerDependencies.has(E.identHash))continue;let I=t.storedResolutions.get(E.descriptorHash);if(!I)throw new Error("Assertion failed: The resolution should have been registered");let v=t.storedPackages.get(I);if(!v)throw new Error("Assertion failed: The package should have been registered");if(v.identHash!==e)continue;{let C=W.stringifyLocator(A);n[C]={value:[A,de.Type.LOCATOR],children:p}}let x=W.stringifyLocator(v);p[x]={value:[{descriptor:E,locator:v},de.Type.DEPENDENT]}}}return u}function ngt(t,e,{configuration:r,peers:o}){let a=_e.sortMap(t.workspaces,v=>W.stringifyLocator(v.anchoredLocator)),n=new Set,u=new Set,A=v=>{if(n.has(v.locatorHash))return u.has(v.locatorHash);if(n.add(v.locatorHash),v.identHash===e)return u.add(v.locatorHash),!0;let x=!1;v.identHash===e&&(x=!0);for(let C of v.dependencies.values()){if(!o&&v.peerDependencies.has(C.identHash))continue;let R=t.storedResolutions.get(C.descriptorHash);if(!R)throw new Error("Assertion failed: The resolution should have been registered");let L=t.storedPackages.get(R);if(!L)throw new Error("Assertion failed: The package should have been registered");A(L)&&(x=!0)}return x&&u.add(v.locatorHash),x};for(let v of a)A(v.anchoredPackage);let p=new Set,h={},E={children:h},I=(v,x,C)=>{if(!u.has(v.locatorHash))return;let R=C!==null?de.tuple(de.Type.DEPENDENT,{locator:v,descriptor:C}):de.tuple(de.Type.LOCATOR,v),L={},U={value:R,children:L},J=W.stringifyLocator(v);if(x[J]=U,!p.has(v.locatorHash)&&(p.add(v.locatorHash),!(C!==null&&t.tryWorkspaceByLocator(v))))for(let te of v.dependencies.values()){if(!o&&v.peerDependencies.has(te.identHash))continue;let ae=t.storedResolutions.get(te.descriptorHash);if(!ae)throw new Error("Assertion failed: The resolution should have been registered");let fe=t.storedPackages.get(ae);if(!fe)throw new Error("Assertion failed: The package should have been registered");I(fe,L,te)}};for(let v of a)I(v.anchoredPackage,h,null);return E}Ye();var Z8={};Vt(Z8,{GitFetcher:()=>w2,GitResolver:()=>I2,default:()=>vgt,gitUtils:()=>ra});Ye();St();var ra={};Vt(ra,{TreeishProtocols:()=>C2,clone:()=>X8,fetchBase:()=>bde,fetchChangedFiles:()=>xde,fetchChangedWorkspaces:()=>Igt,fetchRoot:()=>Pde,isGitUrl:()=>CC,lsRemote:()=>Sde,normalizeLocator:()=>wgt,normalizeRepoUrl:()=>yC,resolveUrl:()=>z8,splitRepoUrl:()=>s0,validateRepoUrl:()=>J8});Ye();St();qt();var Bde=$e(Cde()),vde=$e(mU()),EC=$e(ve("querystring")),K8=$e(zn());function W8(t,e,r){let o=t.indexOf(r);return t.lastIndexOf(e,o>-1?o:1/0)}function wde(t){try{return new URL(t)}catch{return}}function Egt(t){let e=W8(t,"@","#"),r=W8(t,":","#");return r>e&&(t=`${t.slice(0,r)}/${t.slice(r+1)}`),W8(t,":","#")===-1&&t.indexOf("//")===-1&&(t=`ssh://${t}`),t}function Ide(t){return wde(t)||wde(Egt(t))}function yC(t,{git:e=!1}={}){if(t=t.replace(/^git\+https:/,"https:"),t=t.replace(/^(?:github:|https:\/\/github\.com\/|git:\/\/github\.com\/)?(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)(?:\.git)?(#.*)?$/,"https://github.com/$1/$2.git$3"),t=t.replace(/^https:\/\/github\.com\/(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)\/tarball\/(.+)?$/,"https://github.com/$1/$2.git#$3"),e){let r=Ide(t);r&&(t=r.href),t=t.replace(/^git\+([^:]+):/,"$1:")}return t}function Dde(){return{...process.env,GIT_SSH_COMMAND:process.env.GIT_SSH_COMMAND||`${process.env.GIT_SSH||"ssh"} -o BatchMode=yes`}}var Cgt=[/^ssh:/,/^git(?:\+[^:]+)?:/,/^(?:git\+)?https?:[^#]+\/[^#]+(?:\.git)(?:#.*)?$/,/^git@[^#]+\/[^#]+\.git(?:#.*)?$/,/^(?:github:|https:\/\/github\.com\/)?(?!\.{1,2}\/)([a-zA-Z._0-9-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z._0-9-]+?)(?:\.git)?(?:#.*)?$/,/^https:\/\/github\.com\/(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)\/tarball\/(.+)?$/],C2=(a=>(a.Commit="commit",a.Head="head",a.Tag="tag",a.Semver="semver",a))(C2||{});function CC(t){return t?Cgt.some(e=>!!t.match(e)):!1}function s0(t){t=yC(t);let e=t.indexOf("#");if(e===-1)return{repo:t,treeish:{protocol:"head",request:"HEAD"},extra:{}};let r=t.slice(0,e),o=t.slice(e+1);if(o.match(/^[a-z]+=/)){let a=EC.default.parse(o);for(let[p,h]of Object.entries(a))if(typeof h!="string")throw new Error(`Assertion failed: The ${p} parameter must be a literal string`);let n=Object.values(C2).find(p=>Object.hasOwn(a,p)),[u,A]=typeof n<"u"?[n,a[n]]:["head","HEAD"];for(let p of Object.values(C2))delete a[p];return{repo:r,treeish:{protocol:u,request:A},extra:a}}else{let a=o.indexOf(":"),[n,u]=a===-1?[null,o]:[o.slice(0,a),o.slice(a+1)];return{repo:r,treeish:{protocol:n,request:u},extra:{}}}}function wgt(t){return W.makeLocator(t,yC(t.reference))}function J8(t,{configuration:e}){let r=yC(t,{git:!0});if(!nn.getNetworkSettings(`https://${(0,Bde.default)(r).resource}`,{configuration:e}).enableNetwork)throw new zt(80,`Request to '${r}' has been blocked because of your configuration settings`);return r}async function Sde(t,e){let r=J8(t,{configuration:e}),o=await V8("listing refs",["ls-remote",r],{cwd:e.startingCwd,env:Dde()},{configuration:e,normalizedRepoUrl:r}),a=new Map,n=/^([a-f0-9]{40})\t([^\n]+)/gm,u;for(;(u=n.exec(o.stdout))!==null;)a.set(u[2],u[1]);return a}async function z8(t,e){let{repo:r,treeish:{protocol:o,request:a},extra:n}=s0(t),u=await Sde(r,e),A=(h,E)=>{switch(h){case"commit":{if(!E.match(/^[a-f0-9]{40}$/))throw new Error("Invalid commit hash");return EC.default.stringify({...n,commit:E})}case"head":{let I=u.get(E==="HEAD"?E:`refs/heads/${E}`);if(typeof I>"u")throw new Error(`Unknown head ("${E}")`);return EC.default.stringify({...n,commit:I})}case"tag":{let I=u.get(`refs/tags/${E}`);if(typeof I>"u")throw new Error(`Unknown tag ("${E}")`);return EC.default.stringify({...n,commit:I})}case"semver":{let I=kr.validRange(E);if(!I)throw new Error(`Invalid range ("${E}")`);let v=new Map([...u.entries()].filter(([C])=>C.startsWith("refs/tags/")).map(([C,R])=>[K8.default.parse(C.slice(10)),R]).filter(C=>C[0]!==null)),x=K8.default.maxSatisfying([...v.keys()],I);if(x===null)throw new Error(`No matching range ("${E}")`);return EC.default.stringify({...n,commit:v.get(x)})}case null:{let I;if((I=p("commit",E))!==null||(I=p("tag",E))!==null||(I=p("head",E))!==null)return I;throw E.match(/^[a-f0-9]+$/)?new Error(`Couldn't resolve "${E}" as either a commit, a tag, or a head - if a commit, use the 40-characters commit hash`):new Error(`Couldn't resolve "${E}" as either a commit, a tag, or a head`)}default:throw new Error(`Invalid Git resolution protocol ("${h}")`)}},p=(h,E)=>{try{return A(h,E)}catch{return null}};return yC(`${r}#${A(o,a)}`)}async function X8(t,e){return await e.getLimit("cloneConcurrency")(async()=>{let{repo:r,treeish:{protocol:o,request:a}}=s0(t);if(o!=="commit")throw new Error("Invalid treeish protocol when cloning");let n=J8(r,{configuration:e}),u=await oe.mktempPromise(),A={cwd:u,env:Dde()};return await V8("cloning the repository",["clone","-c core.autocrlf=false",n,ue.fromPortablePath(u)],A,{configuration:e,normalizedRepoUrl:n}),await V8("switching branch",["checkout",`${a}`],A,{configuration:e,normalizedRepoUrl:n}),u})}async function Pde(t){let e,r=t;do{if(e=r,await oe.existsPromise(V.join(e,".git")))return e;r=V.dirname(e)}while(r!==e);return null}async function bde(t,{baseRefs:e}){if(e.length===0)throw new it("Can't run this command with zero base refs specified.");let r=[];for(let A of e){let{code:p}=await Ur.execvp("git",["merge-base",A,"HEAD"],{cwd:t});p===0&&r.push(A)}if(r.length===0)throw new it(`No ancestor could be found between any of HEAD and ${e.join(", ")}`);let{stdout:o}=await Ur.execvp("git",["merge-base","HEAD",...r],{cwd:t,strict:!0}),a=o.trim(),{stdout:n}=await Ur.execvp("git",["show","--quiet","--pretty=format:%s",a],{cwd:t,strict:!0}),u=n.trim();return{hash:a,title:u}}async function xde(t,{base:e,project:r}){let o=_e.buildIgnorePattern(r.configuration.get("changesetIgnorePatterns")),{stdout:a}=await Ur.execvp("git",["diff","--name-only",`${e}`],{cwd:t,strict:!0}),n=a.split(/\r\n|\r|\n/).filter(h=>h.length>0).map(h=>V.resolve(t,ue.toPortablePath(h))),{stdout:u}=await Ur.execvp("git",["ls-files","--others","--exclude-standard"],{cwd:t,strict:!0}),A=u.split(/\r\n|\r|\n/).filter(h=>h.length>0).map(h=>V.resolve(t,ue.toPortablePath(h))),p=[...new Set([...n,...A].sort())];return o?p.filter(h=>!V.relative(r.cwd,h).match(o)):p}async function Igt({ref:t,project:e}){if(e.configuration.projectCwd===null)throw new it("This command can only be run from within a Yarn project");let r=[V.resolve(e.cwd,dr.lockfile),V.resolve(e.cwd,e.configuration.get("cacheFolder")),V.resolve(e.cwd,e.configuration.get("installStatePath")),V.resolve(e.cwd,e.configuration.get("virtualFolder"))];await e.configuration.triggerHook(u=>u.populateYarnPaths,e,u=>{u!=null&&r.push(u)});let o=await Pde(e.configuration.projectCwd);if(o==null)throw new it("This command can only be run on Git repositories");let a=await bde(o,{baseRefs:typeof t=="string"?[t]:e.configuration.get("changesetBaseRefs")}),n=await xde(o,{base:a.hash,project:e});return new Set(_e.mapAndFilter(n,u=>{let A=e.tryWorkspaceByFilePath(u);return A===null?_e.mapAndFilter.skip:r.some(p=>u.startsWith(p))?_e.mapAndFilter.skip:A}))}async function V8(t,e,r,{configuration:o,normalizedRepoUrl:a}){try{return await Ur.execvp("git",e,{...r,strict:!0})}catch(n){if(!(n instanceof Ur.ExecError))throw n;let u=n.reportExtra,A=n.stderr.toString();throw new zt(1,`Failed ${t}`,p=>{p.reportError(1,` ${de.prettyField(o,{label:"Repository URL",value:de.tuple(de.Type.URL,a)})}`);for(let h of A.matchAll(/^(.+?): (.*)$/gm)){let[,E,I]=h;E=E.toLowerCase();let v=E==="error"?"Error":`${(0,vde.default)(E)} Error`;p.reportError(1,` ${de.prettyField(o,{label:v,value:de.tuple(de.Type.NO_HINT,I)})}`)}u?.(p)})}}var w2=class{supports(e,r){return CC(e.reference)}getLocalPath(e,r){return null}async fetch(e,r){let o=r.checksums.get(e.locatorHash)||null,a=new Map(r.checksums);a.set(e.locatorHash,o);let n={...r,checksums:a},u=await this.downloadHosted(e,n);if(u!==null)return u;let[A,p,h]=await r.cache.fetchPackageFromCache(e,o,{onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${W.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from the remote repository`),loader:()=>this.cloneFromRemote(e,n),...r.cacheOptions});return{packageFs:A,releaseFs:p,prefixPath:W.getIdentVendorPath(e),checksum:h}}async downloadHosted(e,r){return r.project.configuration.reduceHook(o=>o.fetchHostedRepository,null,e,r)}async cloneFromRemote(e,r){let o=await X8(e.reference,r.project.configuration),a=s0(e.reference),n=V.join(o,"package.tgz");await un.prepareExternalProject(o,n,{configuration:r.project.configuration,report:r.report,workspace:a.extra.workspace,locator:e});let u=await oe.readFilePromise(n);return await _e.releaseAfterUseAsync(async()=>await Xi.convertToZip(u,{configuration:r.project.configuration,prefixPath:W.getIdentVendorPath(e),stripComponents:1}))}};Ye();Ye();var I2=class{supportsDescriptor(e,r){return CC(e.range)}supportsLocator(e,r){return CC(e.reference)}shouldPersistResolution(e,r){return!0}bindDescriptor(e,r,o){return e}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,o){let a=await z8(e.range,o.project.configuration);return[W.makeLocator(e,a)]}async getSatisfying(e,r,o,a){let n=s0(e.range);return{locators:o.filter(A=>{if(A.identHash!==e.identHash)return!1;let p=s0(A.reference);return!(n.repo!==p.repo||n.treeish.protocol==="commit"&&n.treeish.request!==p.treeish.request)}),sorted:!1}}async resolve(e,r){if(!r.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let o=await r.fetchOptions.fetcher.fetch(e,r.fetchOptions),a=await _e.releaseAfterUseAsync(async()=>await Ot.find(o.prefixPath,{baseFs:o.packageFs}),o.releaseFs);return{...e,version:a.version||"0.0.0",languageName:a.languageName||r.project.configuration.get("defaultLanguageName"),linkType:"HARD",conditions:a.getConditions(),dependencies:r.project.configuration.normalizeDependencyMap(a.dependencies),peerDependencies:a.peerDependencies,dependenciesMeta:a.dependenciesMeta,peerDependenciesMeta:a.peerDependenciesMeta,bin:a.bin}}};var Bgt={configuration:{changesetBaseRefs:{description:"The base git refs that the current HEAD is compared against when detecting changes. Supports git branches, tags, and commits.",type:"STRING",isArray:!0,isNullable:!1,default:["master","origin/master","upstream/master","main","origin/main","upstream/main"]},changesetIgnorePatterns:{description:"Array of glob patterns; files matching them will be ignored when fetching the changed files",type:"STRING",default:[],isArray:!0},cloneConcurrency:{description:"Maximal number of concurrent clones",type:"NUMBER",default:2}},fetchers:[w2],resolvers:[I2]};var vgt=Bgt;qt();var o0=class extends ut{constructor(){super(...arguments);this.since=ge.String("--since",{description:"Only include workspaces that have been changed since the specified ref.",tolerateBoolean:!0});this.recursive=ge.Boolean("-R,--recursive",!1,{description:"Find packages via dependencies/devDependencies instead of using the workspaces field"});this.noPrivate=ge.Boolean("--no-private",{description:"Exclude workspaces that have the private field set to true"});this.verbose=ge.Boolean("-v,--verbose",!1,{description:"Also return the cross-dependencies between workspaces"});this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o}=await Pt.find(r,this.context.cwd);return(await Nt.start({configuration:r,json:this.json,stdout:this.context.stdout},async n=>{let u=this.since?await ra.fetchChangedWorkspaces({ref:this.since,project:o}):o.workspaces,A=new Set(u);if(this.recursive)for(let p of[...u].map(h=>h.getRecursiveWorkspaceDependents()))for(let h of p)A.add(h);for(let p of A){let{manifest:h}=p;if(h.private&&this.noPrivate)continue;let E;if(this.verbose){let I=new Set,v=new Set;for(let x of Ot.hardDependencies)for(let[C,R]of h.getForScope(x)){let L=o.tryWorkspaceByDescriptor(R);L===null?o.workspacesByIdent.has(C)&&v.add(R):I.add(L)}E={workspaceDependencies:Array.from(I).map(x=>x.relativeCwd),mismatchedWorkspaceDependencies:Array.from(v).map(x=>W.stringifyDescriptor(x))}}n.reportInfo(null,`${p.relativeCwd}`),n.reportJson({location:p.relativeCwd,name:h.name?W.stringifyIdent(h.name):null,...E})}})).exitCode()}};o0.paths=[["workspaces","list"]],o0.usage=nt.Usage({category:"Workspace-related commands",description:"list all available workspaces",details:"\n This command will print the list of all workspaces in the project.\n\n - If `--since` is set, Yarn will only list workspaces that have been modified since the specified ref. By default Yarn will use the refs specified by the `changesetBaseRefs` configuration option.\n\n - If `-R,--recursive` is set, Yarn will find workspaces to run the command on by recursively evaluating `dependencies` and `devDependencies` fields, instead of looking at the `workspaces` fields.\n\n - If `--no-private` is set, Yarn will not list any workspaces that have the `private` field set to `true`.\n\n - If both the `-v,--verbose` and `--json` options are set, Yarn will also return the cross-dependencies between each workspaces (useful when you wish to automatically generate Buck / Bazel rules).\n "});Ye();Ye();qt();var a0=class extends ut{constructor(){super(...arguments);this.workspaceName=ge.String();this.commandName=ge.String();this.args=ge.Proxy()}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Pt.find(r,this.context.cwd);if(!a)throw new rr(o.cwd,this.context.cwd);let n=o.workspaces,u=new Map(n.map(p=>[W.stringifyIdent(p.anchoredLocator),p])),A=u.get(this.workspaceName);if(A===void 0){let p=Array.from(u.keys()).sort();throw new it(`Workspace '${this.workspaceName}' not found. Did you mean any of the following: + - ${p.join(` + - `)}?`)}return this.cli.run([this.commandName,...this.args],{cwd:A.cwd})}};a0.paths=[["workspace"]],a0.usage=nt.Usage({category:"Workspace-related commands",description:"run a command within the specified workspace",details:` + This command will run a given sub-command on a single workspace. + `,examples:[["Add a package to a single workspace","yarn workspace components add -D react"],["Run build script on a single workspace","yarn workspace components run build"]]});var Dgt={configuration:{enableImmutableInstalls:{description:"If true (the default on CI), prevents the install command from modifying the lockfile",type:"BOOLEAN",default:kde.isCI},defaultSemverRangePrefix:{description:"The default save prefix: '^', '~' or ''",type:"STRING",values:["^","~",""],default:"^"},preferReuse:{description:"If true, `yarn add` will attempt to reuse the most common dependency range in other workspaces.",type:"BOOLEAN",default:!1}},commands:[Fh,Rh,Th,Nh,r0,Vh,_h,o0,Kd,Vd,mC,Jd,kh,Qh,Lh,Oh,Mh,Uh,Hh,qh,jh,Gh,n0,Yh,Wh,zh,Jh,Xh,Kh,Zh,$h,e0,Xd,t0,Jf,i0,a0]},Sgt=Dgt;var iH={};Vt(iH,{default:()=>bgt});Ye();var kt={optional:!0},eH=[["@tailwindcss/aspect-ratio@<0.2.1",{peerDependencies:{tailwindcss:"^2.0.2"}}],["@tailwindcss/line-clamp@<0.2.1",{peerDependencies:{tailwindcss:"^2.0.2"}}],["@fullhuman/postcss-purgecss@3.1.3 || 3.1.3-alpha.0",{peerDependencies:{postcss:"^8.0.0"}}],["@samverschueren/stream-to-observable@<0.3.1",{peerDependenciesMeta:{rxjs:kt,zenObservable:kt}}],["any-observable@<0.5.1",{peerDependenciesMeta:{rxjs:kt,zenObservable:kt}}],["@pm2/agent@<1.0.4",{dependencies:{debug:"*"}}],["debug@<4.2.0",{peerDependenciesMeta:{["supports-color"]:kt}}],["got@<11",{dependencies:{["@types/responselike"]:"^1.0.0",["@types/keyv"]:"^3.1.1"}}],["cacheable-lookup@<4.1.2",{dependencies:{["@types/keyv"]:"^3.1.1"}}],["http-link-dataloader@*",{peerDependencies:{graphql:"^0.13.1 || ^14.0.0"}}],["typescript-language-server@*",{dependencies:{["vscode-jsonrpc"]:"^5.0.1",["vscode-languageserver-protocol"]:"^3.15.0"}}],["postcss-syntax@*",{peerDependenciesMeta:{["postcss-html"]:kt,["postcss-jsx"]:kt,["postcss-less"]:kt,["postcss-markdown"]:kt,["postcss-scss"]:kt}}],["jss-plugin-rule-value-function@<=10.1.1",{dependencies:{["tiny-warning"]:"^1.0.2"}}],["ink-select-input@<4.1.0",{peerDependencies:{react:"^16.8.2"}}],["license-webpack-plugin@<2.3.18",{peerDependenciesMeta:{webpack:kt}}],["snowpack@>=3.3.0",{dependencies:{["node-gyp"]:"^7.1.0"}}],["promise-inflight@*",{peerDependenciesMeta:{bluebird:kt}}],["reactcss@*",{peerDependencies:{react:"*"}}],["react-color@<=2.19.0",{peerDependencies:{react:"*"}}],["gatsby-plugin-i18n@*",{dependencies:{ramda:"^0.24.1"}}],["useragent@^2.0.0",{dependencies:{request:"^2.88.0",yamlparser:"0.0.x",semver:"5.5.x"}}],["@apollographql/apollo-tools@<=0.5.2",{peerDependencies:{graphql:"^14.2.1 || ^15.0.0"}}],["material-table@^2.0.0",{dependencies:{"@babel/runtime":"^7.11.2"}}],["@babel/parser@*",{dependencies:{"@babel/types":"^7.8.3"}}],["fork-ts-checker-webpack-plugin@<=6.3.4",{peerDependencies:{eslint:">= 6",typescript:">= 2.7",webpack:">= 4","vue-template-compiler":"*"},peerDependenciesMeta:{eslint:kt,"vue-template-compiler":kt}}],["rc-animate@<=3.1.1",{peerDependencies:{react:">=16.9.0","react-dom":">=16.9.0"}}],["react-bootstrap-table2-paginator@*",{dependencies:{classnames:"^2.2.6"}}],["react-draggable@<=4.4.3",{peerDependencies:{react:">= 16.3.0","react-dom":">= 16.3.0"}}],["apollo-upload-client@<14",{peerDependencies:{graphql:"14 - 15"}}],["react-instantsearch-core@<=6.7.0",{peerDependencies:{algoliasearch:">= 3.1 < 5"}}],["react-instantsearch-dom@<=6.7.0",{dependencies:{"react-fast-compare":"^3.0.0"}}],["ws@<7.2.1",{peerDependencies:{bufferutil:"^4.0.1","utf-8-validate":"^5.0.2"},peerDependenciesMeta:{bufferutil:kt,"utf-8-validate":kt}}],["react-portal@<4.2.2",{peerDependencies:{"react-dom":"^15.0.0-0 || ^16.0.0-0 || ^17.0.0-0"}}],["react-scripts@<=4.0.1",{peerDependencies:{react:"*"}}],["testcafe@<=1.10.1",{dependencies:{"@babel/plugin-transform-for-of":"^7.12.1","@babel/runtime":"^7.12.5"}}],["testcafe-legacy-api@<=4.2.0",{dependencies:{"testcafe-hammerhead":"^17.0.1","read-file-relative":"^1.2.0"}}],["@google-cloud/firestore@<=4.9.3",{dependencies:{protobufjs:"^6.8.6"}}],["gatsby-source-apiserver@*",{dependencies:{["babel-polyfill"]:"^6.26.0"}}],["@webpack-cli/package-utils@<=1.0.1-alpha.4",{dependencies:{["cross-spawn"]:"^7.0.3"}}],["gatsby-remark-prismjs@<3.3.28",{dependencies:{lodash:"^4"}}],["gatsby-plugin-favicon@*",{peerDependencies:{webpack:"*"}}],["gatsby-plugin-sharp@<=4.6.0-next.3",{dependencies:{debug:"^4.3.1"}}],["gatsby-react-router-scroll@<=5.6.0-next.0",{dependencies:{["prop-types"]:"^15.7.2"}}],["@rebass/forms@*",{dependencies:{["@styled-system/should-forward-prop"]:"^5.0.0"},peerDependencies:{react:"^16.8.6"}}],["rebass@*",{peerDependencies:{react:"^16.8.6"}}],["@ant-design/react-slick@<=0.28.3",{peerDependencies:{react:">=16.0.0"}}],["mqtt@<4.2.7",{dependencies:{duplexify:"^4.1.1"}}],["vue-cli-plugin-vuetify@<=2.0.3",{dependencies:{semver:"^6.3.0"},peerDependenciesMeta:{"sass-loader":kt,"vuetify-loader":kt}}],["vue-cli-plugin-vuetify@<=2.0.4",{dependencies:{"null-loader":"^3.0.0"}}],["vue-cli-plugin-vuetify@>=2.4.3",{peerDependencies:{vue:"*"}}],["@vuetify/cli-plugin-utils@<=0.0.4",{dependencies:{semver:"^6.3.0"},peerDependenciesMeta:{"sass-loader":kt}}],["@vue/cli-plugin-typescript@<=5.0.0-alpha.0",{dependencies:{"babel-loader":"^8.1.0"}}],["@vue/cli-plugin-typescript@<=5.0.0-beta.0",{dependencies:{"@babel/core":"^7.12.16"},peerDependencies:{"vue-template-compiler":"^2.0.0"},peerDependenciesMeta:{"vue-template-compiler":kt}}],["cordova-ios@<=6.3.0",{dependencies:{underscore:"^1.9.2"}}],["cordova-lib@<=10.0.1",{dependencies:{underscore:"^1.9.2"}}],["git-node-fs@*",{peerDependencies:{"js-git":"^0.7.8"},peerDependenciesMeta:{"js-git":kt}}],["consolidate@<0.16.0",{peerDependencies:{mustache:"^3.0.0"},peerDependenciesMeta:{mustache:kt}}],["consolidate@<=0.16.0",{peerDependencies:{velocityjs:"^2.0.1",tinyliquid:"^0.2.34","liquid-node":"^3.0.1",jade:"^1.11.0","then-jade":"*",dust:"^0.3.0","dustjs-helpers":"^1.7.4","dustjs-linkedin":"^2.7.5",swig:"^1.4.2","swig-templates":"^2.0.3","razor-tmpl":"^1.3.1",atpl:">=0.7.6",liquor:"^0.0.5",twig:"^1.15.2",ejs:"^3.1.5",eco:"^1.1.0-rc-3",jazz:"^0.0.18",jqtpl:"~1.1.0",hamljs:"^0.6.2",hamlet:"^0.3.3",whiskers:"^0.4.0","haml-coffee":"^1.14.1","hogan.js":"^3.0.2",templayed:">=0.2.3",handlebars:"^4.7.6",underscore:"^1.11.0",lodash:"^4.17.20",pug:"^3.0.0","then-pug":"*",qejs:"^3.0.5",walrus:"^0.10.1",mustache:"^4.0.1",just:"^0.1.8",ect:"^0.5.9",mote:"^0.2.0",toffee:"^0.3.6",dot:"^1.1.3","bracket-template":"^1.1.5",ractive:"^1.3.12",nunjucks:"^3.2.2",htmling:"^0.0.8","babel-core":"^6.26.3",plates:"~0.4.11","react-dom":"^16.13.1",react:"^16.13.1","arc-templates":"^0.5.3",vash:"^0.13.0",slm:"^2.0.0",marko:"^3.14.4",teacup:"^2.0.0","coffee-script":"^1.12.7",squirrelly:"^5.1.0",twing:"^5.0.2"},peerDependenciesMeta:{velocityjs:kt,tinyliquid:kt,"liquid-node":kt,jade:kt,"then-jade":kt,dust:kt,"dustjs-helpers":kt,"dustjs-linkedin":kt,swig:kt,"swig-templates":kt,"razor-tmpl":kt,atpl:kt,liquor:kt,twig:kt,ejs:kt,eco:kt,jazz:kt,jqtpl:kt,hamljs:kt,hamlet:kt,whiskers:kt,"haml-coffee":kt,"hogan.js":kt,templayed:kt,handlebars:kt,underscore:kt,lodash:kt,pug:kt,"then-pug":kt,qejs:kt,walrus:kt,mustache:kt,just:kt,ect:kt,mote:kt,toffee:kt,dot:kt,"bracket-template":kt,ractive:kt,nunjucks:kt,htmling:kt,"babel-core":kt,plates:kt,"react-dom":kt,react:kt,"arc-templates":kt,vash:kt,slm:kt,marko:kt,teacup:kt,"coffee-script":kt,squirrelly:kt,twing:kt}}],["vue-loader@<=16.3.3",{peerDependencies:{"@vue/compiler-sfc":"^3.0.8",webpack:"^4.1.0 || ^5.0.0-0"},peerDependenciesMeta:{"@vue/compiler-sfc":kt}}],["vue-loader@^16.7.0",{peerDependencies:{"@vue/compiler-sfc":"^3.0.8",vue:"^3.2.13"},peerDependenciesMeta:{"@vue/compiler-sfc":kt,vue:kt}}],["scss-parser@<=1.0.5",{dependencies:{lodash:"^4.17.21"}}],["query-ast@<1.0.5",{dependencies:{lodash:"^4.17.21"}}],["redux-thunk@<=2.3.0",{peerDependencies:{redux:"^4.0.0"}}],["skypack@<=0.3.2",{dependencies:{tar:"^6.1.0"}}],["@npmcli/metavuln-calculator@<2.0.0",{dependencies:{"json-parse-even-better-errors":"^2.3.1"}}],["bin-links@<2.3.0",{dependencies:{"mkdirp-infer-owner":"^1.0.2"}}],["rollup-plugin-polyfill-node@<=0.8.0",{peerDependencies:{rollup:"^1.20.0 || ^2.0.0"}}],["snowpack@<3.8.6",{dependencies:{"magic-string":"^0.25.7"}}],["elm-webpack-loader@*",{dependencies:{temp:"^0.9.4"}}],["winston-transport@<=4.4.0",{dependencies:{logform:"^2.2.0"}}],["jest-vue-preprocessor@*",{dependencies:{"@babel/core":"7.8.7","@babel/template":"7.8.6"},peerDependencies:{pug:"^2.0.4"},peerDependenciesMeta:{pug:kt}}],["redux-persist@*",{peerDependencies:{react:">=16"},peerDependenciesMeta:{react:kt}}],["sodium@>=3",{dependencies:{"node-gyp":"^3.8.0"}}],["babel-plugin-graphql-tag@<=3.1.0",{peerDependencies:{graphql:"^14.0.0 || ^15.0.0"}}],["@playwright/test@<=1.14.1",{dependencies:{"jest-matcher-utils":"^26.4.2"}}],...["babel-plugin-remove-graphql-queries@<3.14.0-next.1","babel-preset-gatsby-package@<1.14.0-next.1","create-gatsby@<1.14.0-next.1","gatsby-admin@<0.24.0-next.1","gatsby-cli@<3.14.0-next.1","gatsby-core-utils@<2.14.0-next.1","gatsby-design-tokens@<3.14.0-next.1","gatsby-legacy-polyfills@<1.14.0-next.1","gatsby-plugin-benchmark-reporting@<1.14.0-next.1","gatsby-plugin-graphql-config@<0.23.0-next.1","gatsby-plugin-image@<1.14.0-next.1","gatsby-plugin-mdx@<2.14.0-next.1","gatsby-plugin-netlify-cms@<5.14.0-next.1","gatsby-plugin-no-sourcemaps@<3.14.0-next.1","gatsby-plugin-page-creator@<3.14.0-next.1","gatsby-plugin-preact@<5.14.0-next.1","gatsby-plugin-preload-fonts@<2.14.0-next.1","gatsby-plugin-schema-snapshot@<2.14.0-next.1","gatsby-plugin-styletron@<6.14.0-next.1","gatsby-plugin-subfont@<3.14.0-next.1","gatsby-plugin-utils@<1.14.0-next.1","gatsby-recipes@<0.25.0-next.1","gatsby-source-shopify@<5.6.0-next.1","gatsby-source-wikipedia@<3.14.0-next.1","gatsby-transformer-screenshot@<3.14.0-next.1","gatsby-worker@<0.5.0-next.1"].map(t=>[t,{dependencies:{"@babel/runtime":"^7.14.8"}}]),["gatsby-core-utils@<2.14.0-next.1",{dependencies:{got:"8.3.2"}}],["gatsby-plugin-gatsby-cloud@<=3.1.0-next.0",{dependencies:{"gatsby-core-utils":"^2.13.0-next.0"}}],["gatsby-plugin-gatsby-cloud@<=3.2.0-next.1",{peerDependencies:{webpack:"*"}}],["babel-plugin-remove-graphql-queries@<=3.14.0-next.1",{dependencies:{"gatsby-core-utils":"^2.8.0-next.1"}}],["gatsby-plugin-netlify@3.13.0-next.1",{dependencies:{"gatsby-core-utils":"^2.13.0-next.0"}}],["clipanion-v3-codemod@<=0.2.0",{peerDependencies:{jscodeshift:"^0.11.0"}}],["react-live@*",{peerDependencies:{"react-dom":"*",react:"*"}}],["webpack@<4.44.1",{peerDependenciesMeta:{"webpack-cli":kt,"webpack-command":kt}}],["webpack@<5.0.0-beta.23",{peerDependenciesMeta:{"webpack-cli":kt}}],["webpack-dev-server@<3.10.2",{peerDependenciesMeta:{"webpack-cli":kt}}],["@docusaurus/responsive-loader@<1.5.0",{peerDependenciesMeta:{sharp:kt,jimp:kt}}],["eslint-module-utils@*",{peerDependenciesMeta:{"eslint-import-resolver-node":kt,"eslint-import-resolver-typescript":kt,"eslint-import-resolver-webpack":kt,"@typescript-eslint/parser":kt}}],["eslint-plugin-import@*",{peerDependenciesMeta:{"@typescript-eslint/parser":kt}}],["critters-webpack-plugin@<3.0.2",{peerDependenciesMeta:{"html-webpack-plugin":kt}}],["terser@<=5.10.0",{dependencies:{acorn:"^8.5.0"}}],["babel-preset-react-app@10.0.x <10.0.2",{dependencies:{"@babel/plugin-proposal-private-property-in-object":"^7.16.7"}}],["eslint-config-react-app@*",{peerDependenciesMeta:{typescript:kt}}],["@vue/eslint-config-typescript@<11.0.0",{peerDependenciesMeta:{typescript:kt}}],["unplugin-vue2-script-setup@<0.9.1",{peerDependencies:{"@vue/composition-api":"^1.4.3","@vue/runtime-dom":"^3.2.26"}}],["@cypress/snapshot@*",{dependencies:{debug:"^3.2.7"}}],["auto-relay@<=0.14.0",{peerDependencies:{"reflect-metadata":"^0.1.13"}}],["vue-template-babel-compiler@<1.2.0",{peerDependencies:{["vue-template-compiler"]:"^2.6.0"}}],["@parcel/transformer-image@<2.5.0",{peerDependencies:{["@parcel/core"]:"*"}}],["@parcel/transformer-js@<2.5.0",{peerDependencies:{["@parcel/core"]:"*"}}],["parcel@*",{peerDependenciesMeta:{["@parcel/core"]:kt}}],["react-scripts@*",{peerDependencies:{eslint:"*"}}],["focus-trap-react@^8.0.0",{dependencies:{tabbable:"^5.3.2"}}],["react-rnd@<10.3.7",{peerDependencies:{react:">=16.3.0","react-dom":">=16.3.0"}}],["connect-mongo@<5.0.0",{peerDependencies:{"express-session":"^1.17.1"}}],["vue-i18n@<9",{peerDependencies:{vue:"^2"}}],["vue-router@<4",{peerDependencies:{vue:"^2"}}],["unified@<10",{dependencies:{"@types/unist":"^2.0.0"}}],["react-github-btn@<=1.3.0",{peerDependencies:{react:">=16.3.0"}}],["react-dev-utils@*",{peerDependencies:{typescript:">=2.7",webpack:">=4"},peerDependenciesMeta:{typescript:kt}}],["@asyncapi/react-component@<=1.0.0-next.39",{peerDependencies:{react:">=16.8.0","react-dom":">=16.8.0"}}],["xo@*",{peerDependencies:{webpack:">=1.11.0"},peerDependenciesMeta:{webpack:kt}}],["babel-plugin-remove-graphql-queries@<=4.20.0-next.0",{dependencies:{"@babel/types":"^7.15.4"}}],["gatsby-plugin-page-creator@<=4.20.0-next.1",{dependencies:{"fs-extra":"^10.1.0"}}],["gatsby-plugin-utils@<=3.14.0-next.1",{dependencies:{fastq:"^1.13.0"},peerDependencies:{graphql:"^15.0.0"}}],["gatsby-plugin-mdx@<3.1.0-next.1",{dependencies:{mkdirp:"^1.0.4"}}],["gatsby-plugin-mdx@^2",{peerDependencies:{gatsby:"^3.0.0-next"}}],["fdir@<=5.2.0",{peerDependencies:{picomatch:"2.x"},peerDependenciesMeta:{picomatch:kt}}],["babel-plugin-transform-typescript-metadata@<=0.3.2",{peerDependencies:{"@babel/core":"^7","@babel/traverse":"^7"},peerDependenciesMeta:{"@babel/traverse":kt}}],["graphql-compose@>=9.0.10",{peerDependencies:{graphql:"^14.2.0 || ^15.0.0 || ^16.0.0"}}],["vite-plugin-vuetify@<=1.0.2",{peerDependencies:{vue:"^3.0.0"}}],["webpack-plugin-vuetify@<=2.0.1",{peerDependencies:{vue:"^3.2.6"}}]];var tH;function Qde(){return typeof tH>"u"&&(tH=ve("zlib").brotliDecompressSync(Buffer.from("G7weAByFTVk3Vs7UfHhq4yykgEM7pbW7TI43SG2S5tvGrwHBAzdz+s/npQ6tgEvobvxisrPIadkXeUAJotBn5bDZ5kAhcRqsIHe3F75Walet5hNalwgFDtxb0BiDUjiUQkjG0yW2hto9HPgiCkm316d6bC0kST72YN7D7rfkhCE9x4J0XwB0yavalxpUu2t9xszHrmtwalOxT7VslsxWcB1qpqZwERUra4psWhTV8BgwWeizurec82Caf1ABL11YMfbf8FJ9JBceZOkgmvrQPbC9DUldX/yMbmX06UQluCEjSwUoyO+EZPIjofr+/oAZUck2enraRD+oWLlnlYnj8xB+gwSo9lmmks4fXv574qSqcWA6z21uYkzMu3EWj+K23RxeQlLqiE35/rC8GcS4CGkKHKKq+zAIQwD9iRDNfiAqueLLpicFFrNsAI4zeTD/eO9MHcnRa5m8UT+M2+V+AkFST4BlKneiAQRSdST8KEAIyFlULt6wa9EBd0Ds28VmpaxquJdVt+nwdEs5xUskI13OVtFyY0UrQIRAlCuvvWivvlSKQfTO+2Q8OyUR1W5RvetaPz4jD27hdtwHFFA1Ptx6Ee/t2cY2rg2G46M1pNDRf2pWhvpy8pqMnuI3++4OF3+7OFIWXGjh+o7Nr2jNvbiYcQdQS1h903/jVFgOpA0yJ78z+x759bFA0rq+6aY5qPB4FzS3oYoLupDUhD9nDz6F6H7hpnlMf18KNKDu4IKjTWwrAnY6MFQw1W6ymOALHlFyCZmQhldg1MQHaMVVQTVgDC60TfaBqG++Y8PEoFhN/PBTZT175KNP/BlHDYGOOBmnBdzqJKplZ/ljiVG0ZBzfqeBRrrUkn6rA54462SgiliKoYVnbeptMdXNfAuaupIEi0bApF10TlgHfmEJAPUVidRVFyDupSem5po5vErPqWKhKbUIp0LozpYsIKK57dM/HKr+nguF+7924IIWMICkQ8JUigs9D+W+c4LnNoRtPPKNRUiCYmP+Jfo2lfKCKw8qpraEeWU3uiNRO6zcyKQoXPR5htmzzLznke7b4YbXW3I1lIRzmgG02Udb58U+7TpwyN7XymCgH+wuPDthZVQvRZuEP+SnLtMicz9m5zASWOBiAcLmkuFlTKuHspSIhCBD0yUPKcxu81A+4YD78rA2vtwsUEday9WNyrShyrl60rWmA+SmbYZkQOwFJWArxRYYc5jGhA5ikxYw1rx3ei4NmeX/lKiwpZ9Ln1tV2Ae7sArvxuVLbJjqJRjW1vFXAyHpvLG+8MJ6T2Ubx5M2KDa2SN6vuIGxJ9WQM9Mk3Q7aCNiZONXllhqq24DmoLbQfW2rYWsOgHWjtOmIQMyMKdiHZDjoyIq5+U700nZ6odJAoYXPQBvFNiQ78d5jaXliBqLTJEqUCwi+LiH2mx92EmNKDsJL74Z613+3lf20pxkV1+erOrjj8pW00vsPaahKUM+05ssd5uwM7K482KWEf3TCwlg/o3e5ngto7qSMz7YteIgCsF1UOcsLk7F7MxWbvrPMY473ew0G+noVL8EPbkmEMftMSeL6HFub/zy+2JQ==","base64")).toString()),tH}var rH;function Fde(){return typeof rH>"u"&&(rH=ve("zlib").brotliDecompressSync(Buffer.from("G8MSIIzURnVBnObTcvb3XE6v2S9Qgc2K801Oa5otNKEtK8BINZNcaQHy+9/vf/WXBimwutXC33P2DPc64pps5rz7NGGWaOKNSPL4Y2KRE8twut2lFOIN+OXPtRmPMRhMTILib2bEQx43az2I5d3YS8Roa5UZpF/ujHb3Djd3GDvYUfvFYSUQ39vb2cmifp/rgB4J/65JK3wRBTvMBoNBmn3mbXC63/gbBkW/2IRPri0O8bcsRBsmarF328pAln04nyJFkwUAvNu934supAqLtyerZZpJ8I8suJHhf/ocMV+scKwa8NOiDKIPXw6Ex/EEZD6TEGaW8N5zvNHYF10l6Lfooj7D5W2k3dgvQSbp2Wv8TGOayS978gxlOLVjTGXs66ozewbrjwElLtyrYNnWTfzzdEutgROUFPVMhnMoy8EjJLLlWwIEoySxliim9kYW30JUHiPVyjt0iAw/ZpPmCbUCltYPnq6ZNblIKhTNhqS/oqC9iya5sGKZTOVsTEg34n92uZTf2iPpcZih8rPW8CzA+adIGmyCPcKdLMsBLShd+zuEbTrqpwuh+DLmracZcjPC5Sdf5odDAhKpFuOsQS67RT+1VgWWygSv3YwxDnylc04/PYuaMeIzhBkLrvs7e/OUzRTF56MmfY6rI63QtEjEQzq637zQqJ39nNhu3NmoRRhW/086bHGBUtx0PE0j3aEGvkdh9WJC8y8j8mqqke9/dQ5la+Q3ba4RlhvTbnfQhPDDab3tUifkjKuOsp13mXEmO00Mu88F/M67R7LXfoFDFLNtgCSWjWX+3Jn1371pJTK9xPBiMJafvDjtFyAzu8rxeQ0TKMQXNPs5xxiBOd+BRJP8KP88XPtJIbZKh/cdW8KvBUkpqKpGoiIaA32c3/JnQr4efXt85mXvidOvn/eU3Pase1typLYBalJ14mCso9h79nuMOuCa/kZAOkJHmTjP5RM2WNoPasZUAnT1TAE/NH25hUxcQv6hQWR/m1PKk4ooXMcM4SR1iYU3fUohvqk4RY2hbmTVVIXv6TvqO+0doOjgeVFAcom+RlwJQmOVH7pr1Q9LoJT6n1DeQEB+NHygsATbIwTcOKZlJsY8G4+suX1uQLjUWwLjjs0mvSvZcLTpIGAekeR7GCgl8eo3ndAqEe2XCav4huliHjdbIPBsGJuPX7lrO9HX1UbXRH5opOe1x6JsOSgHZR+EaxuXVhpLLxm6jk1LJtZfHSc6BKPun3CpYYVMJGwEUyk8MTGG0XL5MfEwaXpnc9TKnBmlGn6nHiGREc3ysn47XIBDzA+YvFdjZzVIEDcKGpS6PbUJehFRjEne8D0lVU1XuRtlgszq6pTNlQ/3MzNOEgCWPyTct22V2mEi2krizn5VDo9B19/X2DB3hCGRMM7ONbtnAcIx/OWB1u5uPbW1gsH8irXxT/IzG0PoXWYjhbMsH3KTuoOl5o17PulcgvsfTSnKFM354GWI8luqZnrswWjiXy3G+Vbyo1KMopFmmvBwNELgaS8z8dNZchx/Cl/xjddxhMcyqtzFyONb2Zdu90NkI8pAeufe7YlXrp53v8Dj/l8vWeVspRKBGXScBBPI/HinSTGmLDOGGOCIyH0JFdOZx0gWsacNlQLJMIrBhqRxXxHF/5pseWwejlAAvZ3klZSDSYY8mkToaWejXhgNomeGtx1DTLEUFMRkgF5yFB22WYdJnaWN14r1YJj81hGi45+jrADS5nYRhCiSlCJJ1nL8pYX+HDSMhdTEWyRcgHVp/IsUIZYMfT+YYncUQPgcxNGCHfZ88vDdrcUuaGIl6zhAsiaq7R5dfqrqXH/JcBhfjT8D0azayIyEz75Nxp6YkcyDxlJq3EXnJUpqDohJJOysL1t1uNiHESlvsxPb5cpbW0+ICZqJmUZus1BMW0F5IVBODLIo2zHHjA0=","base64")).toString()),rH}var nH;function Rde(){return typeof nH>"u"&&(nH=ve("zlib").brotliDecompressSync(Buffer.from("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","base64")).toString()),nH}var Tde=new Map([[W.makeIdent(null,"fsevents").identHash,Qde],[W.makeIdent(null,"resolve").identHash,Fde],[W.makeIdent(null,"typescript").identHash,Rde]]),Pgt={hooks:{registerPackageExtensions:async(t,e)=>{for(let[r,o]of eH)e(W.parseDescriptor(r,!0),o)},getBuiltinPatch:async(t,e)=>{let r="compat/";if(!e.startsWith(r))return;let o=W.parseIdent(e.slice(r.length)),a=Tde.get(o.identHash)?.();return typeof a<"u"?a:null},reduceDependency:async(t,e,r,o)=>typeof Tde.get(t.identHash)>"u"?t:W.makeDescriptor(t,W.makeRange({protocol:"patch:",source:W.stringifyDescriptor(t),selector:`optional!builtin`,params:null}))}},bgt=Pgt;var wH={};Vt(wH,{ConstraintsCheckCommand:()=>h0,ConstraintsQueryCommand:()=>f0,ConstraintsSourceCommand:()=>p0,default:()=>tdt});Ye();Ye();v2();var IC=class{constructor(e){this.project=e}createEnvironment(){let e=new wC(["cwd","ident"]),r=new wC(["workspace","type","ident"]),o=new wC(["ident"]),a={manifestUpdates:new Map,reportedErrors:new Map},n=new Map,u=new Map;for(let A of this.project.storedPackages.values()){let p=Array.from(A.peerDependencies.values(),h=>[W.stringifyIdent(h),h.range]);n.set(A.locatorHash,{workspace:null,ident:W.stringifyIdent(A),version:A.version,dependencies:new Map,peerDependencies:new Map(p.filter(([h])=>A.peerDependenciesMeta.get(h)?.optional!==!0)),optionalPeerDependencies:new Map(p.filter(([h])=>A.peerDependenciesMeta.get(h)?.optional===!0))})}for(let A of this.project.storedPackages.values()){let p=n.get(A.locatorHash);p.dependencies=new Map(Array.from(A.dependencies.values(),h=>{let E=this.project.storedResolutions.get(h.descriptorHash);if(typeof E>"u")throw new Error("Assertion failed: The resolution should have been registered");let I=n.get(E);if(typeof I>"u")throw new Error("Assertion failed: The package should have been registered");return[W.stringifyIdent(h),I]})),p.dependencies.delete(p.ident)}for(let A of this.project.workspaces){let p=W.stringifyIdent(A.anchoredLocator),h=A.manifest.exportTo({}),E=n.get(A.anchoredLocator.locatorHash);if(typeof E>"u")throw new Error("Assertion failed: The package should have been registered");let I=(R,L,{caller:U=Ji.getCaller()}={})=>{let J=B2(R),te=_e.getMapWithDefault(a.manifestUpdates,A.cwd),ae=_e.getMapWithDefault(te,J),fe=_e.getSetWithDefault(ae,L);U!==null&&fe.add(U)},v=R=>I(R,void 0,{caller:Ji.getCaller()}),x=R=>{_e.getArrayWithDefault(a.reportedErrors,A.cwd).push(R)},C=e.insert({cwd:A.relativeCwd,ident:p,manifest:h,pkg:E,set:I,unset:v,error:x});u.set(A,C);for(let R of Ot.allDependencies)for(let L of A.manifest[R].values()){let U=W.stringifyIdent(L),J=()=>{I([R,U],void 0,{caller:Ji.getCaller()})},te=fe=>{I([R,U],fe,{caller:Ji.getCaller()})},ae=null;if(R!=="peerDependencies"&&(R!=="dependencies"||!A.manifest.devDependencies.has(L.identHash))){let fe=A.anchoredPackage.dependencies.get(L.identHash);if(fe){if(typeof fe>"u")throw new Error("Assertion failed: The dependency should have been registered");let ce=this.project.storedResolutions.get(fe.descriptorHash);if(typeof ce>"u")throw new Error("Assertion failed: The resolution should have been registered");let me=n.get(ce);if(typeof me>"u")throw new Error("Assertion failed: The package should have been registered");ae=me}}r.insert({workspace:C,ident:U,range:L.range,type:R,resolution:ae,update:te,delete:J,error:x})}}for(let A of this.project.storedPackages.values()){let p=this.project.tryWorkspaceByLocator(A);if(!p)continue;let h=u.get(p);if(typeof h>"u")throw new Error("Assertion failed: The workspace should have been registered");let E=n.get(A.locatorHash);if(typeof E>"u")throw new Error("Assertion failed: The package should have been registered");E.workspace=h}return{workspaces:e,dependencies:r,packages:o,result:a}}async process(){let e=this.createEnvironment(),r={Yarn:{workspace:a=>e.workspaces.find(a)[0]??null,workspaces:a=>e.workspaces.find(a),dependency:a=>e.dependencies.find(a)[0]??null,dependencies:a=>e.dependencies.find(a),package:a=>e.packages.find(a)[0]??null,packages:a=>e.packages.find(a)}},o=await this.project.loadUserConfig();return o?.constraints?(await o.constraints(r),e.result):null}};Ye();Ye();qt();var f0=class extends ut{constructor(){super(...arguments);this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.query=ge.String()}async execute(){let{Constraints:r}=await Promise.resolve().then(()=>(x2(),b2)),o=await Ke.find(this.context.cwd,this.context.plugins),{project:a}=await Pt.find(o,this.context.cwd),n=await r.find(a),u=this.query;return u.endsWith(".")||(u=`${u}.`),(await Nt.start({configuration:o,json:this.json,stdout:this.context.stdout},async p=>{for await(let h of n.query(u)){let E=Array.from(Object.entries(h)),I=E.length,v=E.reduce((x,[C])=>Math.max(x,C.length),0);for(let x=0;x(x2(),b2)),o=await Ke.find(this.context.cwd,this.context.plugins),{project:a}=await Pt.find(o,this.context.cwd),n=await r.find(a);this.context.stdout.write(this.verbose?n.fullSource:n.source)}};p0.paths=[["constraints","source"]],p0.usage=nt.Usage({category:"Constraints-related commands",description:"print the source code for the constraints",details:"\n This command will print the Prolog source code used by the constraints engine. Adding the `-v,--verbose` flag will print the *full* source code, including the fact database automatically compiled from the workspace manifests.\n ",examples:[["Prints the source code","yarn constraints source"],["Print the source code and the fact database","yarn constraints source -v"]]});Ye();Ye();qt();v2();var h0=class extends ut{constructor(){super(...arguments);this.fix=ge.Boolean("--fix",!1,{description:"Attempt to automatically fix unambiguous issues, following a multi-pass process"});this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o}=await Pt.find(r,this.context.cwd);await o.restoreInstallState();let a=await o.loadUserConfig(),n;if(a?.constraints)n=new IC(o);else{let{Constraints:h}=await Promise.resolve().then(()=>(x2(),b2));n=await h.find(o)}let u,A=!1,p=!1;for(let h=this.fix?10:1;h>0;--h){let E=await n.process();if(!E)break;let{changedWorkspaces:I,remainingErrors:v}=gk(o,E,{fix:this.fix}),x=[];for(let[C,R]of I){let L=C.manifest.indent;C.manifest=new Ot,C.manifest.indent=L,C.manifest.load(R),x.push(C.persistManifest())}if(await Promise.all(x),!(I.size>0&&h>1)){u=Hde(v,{configuration:r}),A=!1,p=!0;for(let[,C]of v)for(let R of C)R.fixable?A=!0:p=!1}}if(u.children.length===0)return 0;if(A){let h=p?`Those errors can all be fixed by running ${de.pretty(r,"yarn constraints --fix",de.Type.CODE)}`:`Errors prefixed by '\u2699' can be fixed by running ${de.pretty(r,"yarn constraints --fix",de.Type.CODE)}`;await Nt.start({configuration:r,stdout:this.context.stdout,includeNames:!1,includeFooter:!1},async E=>{E.reportInfo(0,h),E.reportSeparator()})}return u.children=_e.sortMap(u.children,h=>h.value[1]),$s.emitTree(u,{configuration:r,stdout:this.context.stdout,json:this.json,separators:1}),1}};h0.paths=[["constraints"]],h0.usage=nt.Usage({category:"Constraints-related commands",description:"check that the project constraints are met",details:` + This command will run constraints on your project and emit errors for each one that is found but isn't met. If any error is emitted the process will exit with a non-zero exit code. + + If the \`--fix\` flag is used, Yarn will attempt to automatically fix the issues the best it can, following a multi-pass process (with a maximum of 10 iterations). Some ambiguous patterns cannot be autofixed, in which case you'll have to manually specify the right resolution. + + For more information as to how to write constraints, please consult our dedicated page on our website: https://yarnpkg.com/features/constraints. + `,examples:[["Check that all constraints are satisfied","yarn constraints"],["Autofix all unmet constraints","yarn constraints --fix"]]});v2();var edt={configuration:{enableConstraintsChecks:{description:"If true, constraints will run during installs",type:"BOOLEAN",default:!1},constraintsPath:{description:"The path of the constraints file.",type:"ABSOLUTE_PATH",default:"./constraints.pro"}},commands:[f0,p0,h0],hooks:{async validateProjectAfterInstall(t,{reportError:e}){if(!t.configuration.get("enableConstraintsChecks"))return;let r=await t.loadUserConfig(),o;if(r?.constraints)o=new IC(t);else{let{Constraints:u}=await Promise.resolve().then(()=>(x2(),b2));o=await u.find(t)}let a=await o.process();if(!a)return;let{remainingErrors:n}=gk(t,a);if(n.size!==0)if(t.configuration.isCI)for(let[u,A]of n)for(let p of A)e(84,`${de.pretty(t.configuration,u.anchoredLocator,de.Type.IDENT)}: ${p.text}`);else e(84,`Constraint check failed; run ${de.pretty(t.configuration,"yarn constraints",de.Type.CODE)} for more details`)}}},tdt=edt;var IH={};Vt(IH,{CreateCommand:()=>tm,DlxCommand:()=>g0,default:()=>ndt});Ye();qt();var tm=class extends ut{constructor(){super(...arguments);this.pkg=ge.String("-p,--package",{description:"The package to run the provided command from"});this.quiet=ge.Boolean("-q,--quiet",!1,{description:"Only report critical errors instead of printing the full install logs"});this.command=ge.String();this.args=ge.Proxy()}async execute(){let r=[];this.pkg&&r.push("--package",this.pkg),this.quiet&&r.push("--quiet");let o=this.command.replace(/^(@[^@/]+)(@|$)/,"$1/create$2"),a=W.parseDescriptor(o),n=a.name.match(/^create(-|$)/)?a:a.scope?W.makeIdent(a.scope,`create-${a.name}`):W.makeIdent(null,`create-${a.name}`),u=W.stringifyIdent(n);return a.range!=="unknown"&&(u+=`@${a.range}`),this.cli.run(["dlx",...r,u,...this.args])}};tm.paths=[["create"]];Ye();Ye();St();qt();var g0=class extends ut{constructor(){super(...arguments);this.packages=ge.Array("-p,--package",{description:"The package(s) to install before running the command"});this.quiet=ge.Boolean("-q,--quiet",!1,{description:"Only report critical errors instead of printing the full install logs"});this.command=ge.String();this.args=ge.Proxy()}async execute(){return Ke.telemetry=null,await oe.mktempPromise(async r=>{let o=V.join(r,`dlx-${process.pid}`);await oe.mkdirPromise(o),await oe.writeFilePromise(V.join(o,"package.json"),`{} +`),await oe.writeFilePromise(V.join(o,"yarn.lock"),"");let a=V.join(o,".yarnrc.yml"),n=await Ke.findProjectCwd(this.context.cwd),A={enableGlobalCache:!(await Ke.find(this.context.cwd,null,{strict:!1})).get("enableGlobalCache"),enableTelemetry:!1,logFilters:[{code:Wu(68),level:de.LogLevel.Discard}]},p=n!==null?V.join(n,".yarnrc.yml"):null;p!==null&&oe.existsSync(p)?(await oe.copyFilePromise(p,a),await Ke.updateConfiguration(o,L=>{let U=_e.toMerged(L,A);return Array.isArray(L.plugins)&&(U.plugins=L.plugins.map(J=>{let te=typeof J=="string"?J:J.path,ae=ue.isAbsolute(te)?te:ue.resolve(ue.fromPortablePath(n),te);return typeof J=="string"?ae:{path:ae,spec:J.spec}})),U})):await oe.writeJsonPromise(a,A);let h=this.packages??[this.command],E=W.parseDescriptor(this.command).name,I=await this.cli.run(["add","--fixed","--",...h],{cwd:o,quiet:this.quiet});if(I!==0)return I;this.quiet||this.context.stdout.write(` +`);let v=await Ke.find(o,this.context.plugins),{project:x,workspace:C}=await Pt.find(v,o);if(C===null)throw new rr(x.cwd,o);await x.restoreInstallState();let R=await un.getWorkspaceAccessibleBinaries(C);return R.has(E)===!1&&R.size===1&&typeof this.packages>"u"&&(E=Array.from(R)[0][0]),await un.executeWorkspaceAccessibleBinary(C,E,this.args,{packageAccessibleBinaries:R,cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr})})}};g0.paths=[["dlx"]],g0.usage=nt.Usage({description:"run a package in a temporary environment",details:"\n This command will install a package within a temporary environment, and run its binary script if it contains any. The binary will run within the current cwd.\n\n By default Yarn will download the package named `command`, but this can be changed through the use of the `-p,--package` flag which will instruct Yarn to still run the same command but from a different package.\n\n Using `yarn dlx` as a replacement of `yarn add` isn't recommended, as it makes your project non-deterministic (Yarn doesn't keep track of the packages installed through `dlx` - neither their name, nor their version).\n ",examples:[["Use create-react-app to create a new React app","yarn dlx create-react-app ./my-app"],["Install multiple packages for a single command",`yarn dlx -p typescript -p ts-node ts-node --transpile-only -e "console.log('hello!')"`]]});var rdt={commands:[tm,g0]},ndt=rdt;var DH={};Vt(DH,{ExecFetcher:()=>Q2,ExecResolver:()=>F2,default:()=>odt,execUtils:()=>Ek});Ye();Ye();St();var fA="exec:";var Ek={};Vt(Ek,{loadGeneratorFile:()=>k2,makeLocator:()=>vH,makeSpec:()=>pme,parseSpec:()=>BH});Ye();St();function BH(t){let{params:e,selector:r}=W.parseRange(t),o=ue.toPortablePath(r);return{parentLocator:e&&typeof e.locator=="string"?W.parseLocator(e.locator):null,path:o}}function pme({parentLocator:t,path:e,generatorHash:r,protocol:o}){let a=t!==null?{locator:W.stringifyLocator(t)}:{},n=typeof r<"u"?{hash:r}:{};return W.makeRange({protocol:o,source:e,selector:e,params:{...n,...a}})}function vH(t,{parentLocator:e,path:r,generatorHash:o,protocol:a}){return W.makeLocator(t,pme({parentLocator:e,path:r,generatorHash:o,protocol:a}))}async function k2(t,e,r){let{parentLocator:o,path:a}=W.parseFileStyleRange(t,{protocol:e}),n=V.isAbsolute(a)?{packageFs:new gn(Bt.root),prefixPath:Bt.dot,localPath:Bt.root}:await r.fetcher.fetch(o,r),u=n.localPath?{packageFs:new gn(Bt.root),prefixPath:V.relative(Bt.root,n.localPath)}:n;n!==u&&n.releaseFs&&n.releaseFs();let A=u.packageFs,p=V.join(u.prefixPath,a);return await A.readFilePromise(p,"utf8")}var Q2=class{supports(e,r){return!!e.reference.startsWith(fA)}getLocalPath(e,r){let{parentLocator:o,path:a}=W.parseFileStyleRange(e.reference,{protocol:fA});if(V.isAbsolute(a))return a;let n=r.fetcher.getLocalPath(o,r);return n===null?null:V.resolve(n,a)}async fetch(e,r){let o=r.checksums.get(e.locatorHash)||null,[a,n,u]=await r.cache.fetchPackageFromCache(e,o,{onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e),loader:()=>this.fetchFromDisk(e,r),...r.cacheOptions});return{packageFs:a,releaseFs:n,prefixPath:W.getIdentVendorPath(e),localPath:this.getLocalPath(e,r),checksum:u}}async fetchFromDisk(e,r){let o=await k2(e.reference,fA,r);return oe.mktempPromise(async a=>{let n=V.join(a,"generator.js");return await oe.writeFilePromise(n,o),oe.mktempPromise(async u=>{if(await this.generatePackage(u,e,n,r),!oe.existsSync(V.join(u,"build")))throw new Error("The script should have generated a build directory");return await Xi.makeArchiveFromDirectory(V.join(u,"build"),{prefixPath:W.getIdentVendorPath(e),compressionLevel:r.project.configuration.get("compressionLevel")})})})}async generatePackage(e,r,o,a){return await oe.mktempPromise(async n=>{let u=await un.makeScriptEnv({project:a.project,binFolder:n}),A=V.join(e,"runtime.js");return await oe.mktempPromise(async p=>{let h=V.join(p,"buildfile.log"),E=V.join(e,"generator"),I=V.join(e,"build");await oe.mkdirPromise(E),await oe.mkdirPromise(I);let v={tempDir:ue.fromPortablePath(E),buildDir:ue.fromPortablePath(I),locator:W.stringifyLocator(r)};await oe.writeFilePromise(A,` + // Expose 'Module' as a global variable + Object.defineProperty(global, 'Module', { + get: () => require('module'), + configurable: true, + enumerable: false, + }); + + // Expose non-hidden built-in modules as global variables + for (const name of Module.builtinModules.filter((name) => name !== 'module' && !name.startsWith('_'))) { + Object.defineProperty(global, name, { + get: () => require(name), + configurable: true, + enumerable: false, + }); + } + + // Expose the 'execEnv' global variable + Object.defineProperty(global, 'execEnv', { + value: { + ...${JSON.stringify(v)}, + }, + enumerable: true, + }); + `);let x=u.NODE_OPTIONS||"",C=/\s*--require\s+\S*\.pnp\.c?js\s*/g;x=x.replace(C," ").trim(),u.NODE_OPTIONS=x;let{stdout:R,stderr:L}=a.project.configuration.getSubprocessStreams(h,{header:`# This file contains the result of Yarn generating a package (${W.stringifyLocator(r)}) +`,prefix:W.prettyLocator(a.project.configuration,r),report:a.report}),{code:U}=await Ur.pipevp(process.execPath,["--require",ue.fromPortablePath(A),ue.fromPortablePath(o),W.stringifyIdent(r)],{cwd:e,env:u,stdin:null,stdout:R,stderr:L});if(U!==0)throw oe.detachTemp(p),new Error(`Package generation failed (exit code ${U}, logs can be found here: ${de.pretty(a.project.configuration,h,de.Type.PATH)})`)})})}};Ye();Ye();var idt=2,F2=class{supportsDescriptor(e,r){return!!e.range.startsWith(fA)}supportsLocator(e,r){return!!e.reference.startsWith(fA)}shouldPersistResolution(e,r){return!1}bindDescriptor(e,r,o){return W.bindDescriptor(e,{locator:W.stringifyLocator(r)})}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,o){if(!o.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let{path:a,parentLocator:n}=BH(e.range);if(n===null)throw new Error("Assertion failed: The descriptor should have been bound");let u=await k2(W.makeRange({protocol:fA,source:a,selector:a,params:{locator:W.stringifyLocator(n)}}),fA,o.fetchOptions),A=wn.makeHash(`${idt}`,u).slice(0,6);return[vH(e,{parentLocator:n,path:a,generatorHash:A,protocol:fA})]}async getSatisfying(e,r,o,a){let[n]=await this.getCandidates(e,r,a);return{locators:o.filter(u=>u.locatorHash===n.locatorHash),sorted:!1}}async resolve(e,r){if(!r.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let o=await r.fetchOptions.fetcher.fetch(e,r.fetchOptions),a=await _e.releaseAfterUseAsync(async()=>await Ot.find(o.prefixPath,{baseFs:o.packageFs}),o.releaseFs);return{...e,version:a.version||"0.0.0",languageName:a.languageName||r.project.configuration.get("defaultLanguageName"),linkType:"HARD",conditions:a.getConditions(),dependencies:r.project.configuration.normalizeDependencyMap(a.dependencies),peerDependencies:a.peerDependencies,dependenciesMeta:a.dependenciesMeta,peerDependenciesMeta:a.peerDependenciesMeta,bin:a.bin}}};var sdt={fetchers:[Q2],resolvers:[F2]},odt=sdt;var PH={};Vt(PH,{FileFetcher:()=>L2,FileResolver:()=>O2,TarballFileFetcher:()=>M2,TarballFileResolver:()=>U2,default:()=>cdt,fileUtils:()=>rm});Ye();St();var SC=/^(?:[a-zA-Z]:[\\/]|\.{0,2}\/)/,R2=/^[^?]*\.(?:tar\.gz|tgz)(?:::.*)?$/,Ui="file:";var rm={};Vt(rm,{fetchArchiveFromLocator:()=>N2,makeArchiveFromLocator:()=>Ck,makeBufferFromLocator:()=>SH,makeLocator:()=>PC,makeSpec:()=>hme,parseSpec:()=>T2});Ye();St();function T2(t){let{params:e,selector:r}=W.parseRange(t),o=ue.toPortablePath(r);return{parentLocator:e&&typeof e.locator=="string"?W.parseLocator(e.locator):null,path:o}}function hme({parentLocator:t,path:e,hash:r,protocol:o}){let a=t!==null?{locator:W.stringifyLocator(t)}:{},n=typeof r<"u"?{hash:r}:{};return W.makeRange({protocol:o,source:e,selector:e,params:{...n,...a}})}function PC(t,{parentLocator:e,path:r,hash:o,protocol:a}){return W.makeLocator(t,hme({parentLocator:e,path:r,hash:o,protocol:a}))}async function N2(t,e){let{parentLocator:r,path:o}=W.parseFileStyleRange(t.reference,{protocol:Ui}),a=V.isAbsolute(o)?{packageFs:new gn(Bt.root),prefixPath:Bt.dot,localPath:Bt.root}:await e.fetcher.fetch(r,e),n=a.localPath?{packageFs:new gn(Bt.root),prefixPath:V.relative(Bt.root,a.localPath)}:a;a!==n&&a.releaseFs&&a.releaseFs();let u=n.packageFs,A=V.join(n.prefixPath,o);return await _e.releaseAfterUseAsync(async()=>await u.readFilePromise(A),n.releaseFs)}async function Ck(t,{protocol:e,fetchOptions:r,inMemory:o=!1}){let{parentLocator:a,path:n}=W.parseFileStyleRange(t.reference,{protocol:e}),u=V.isAbsolute(n)?{packageFs:new gn(Bt.root),prefixPath:Bt.dot,localPath:Bt.root}:await r.fetcher.fetch(a,r),A=u.localPath?{packageFs:new gn(Bt.root),prefixPath:V.relative(Bt.root,u.localPath)}:u;u!==A&&u.releaseFs&&u.releaseFs();let p=A.packageFs,h=V.join(A.prefixPath,n);return await _e.releaseAfterUseAsync(async()=>await Xi.makeArchiveFromDirectory(h,{baseFs:p,prefixPath:W.getIdentVendorPath(t),compressionLevel:r.project.configuration.get("compressionLevel"),inMemory:o}),A.releaseFs)}async function SH(t,{protocol:e,fetchOptions:r}){return(await Ck(t,{protocol:e,fetchOptions:r,inMemory:!0})).getBufferAndClose()}var L2=class{supports(e,r){return!!e.reference.startsWith(Ui)}getLocalPath(e,r){let{parentLocator:o,path:a}=W.parseFileStyleRange(e.reference,{protocol:Ui});if(V.isAbsolute(a))return a;let n=r.fetcher.getLocalPath(o,r);return n===null?null:V.resolve(n,a)}async fetch(e,r){let o=r.checksums.get(e.locatorHash)||null,[a,n,u]=await r.cache.fetchPackageFromCache(e,o,{onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${W.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from the disk`),loader:()=>this.fetchFromDisk(e,r),...r.cacheOptions});return{packageFs:a,releaseFs:n,prefixPath:W.getIdentVendorPath(e),localPath:this.getLocalPath(e,r),checksum:u}}async fetchFromDisk(e,r){return Ck(e,{protocol:Ui,fetchOptions:r})}};Ye();Ye();var adt=2,O2=class{supportsDescriptor(e,r){return e.range.match(SC)?!0:!!e.range.startsWith(Ui)}supportsLocator(e,r){return!!e.reference.startsWith(Ui)}shouldPersistResolution(e,r){return!1}bindDescriptor(e,r,o){return SC.test(e.range)&&(e=W.makeDescriptor(e,`${Ui}${e.range}`)),W.bindDescriptor(e,{locator:W.stringifyLocator(r)})}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,o){if(!o.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let{path:a,parentLocator:n}=T2(e.range);if(n===null)throw new Error("Assertion failed: The descriptor should have been bound");let u=await SH(W.makeLocator(e,W.makeRange({protocol:Ui,source:a,selector:a,params:{locator:W.stringifyLocator(n)}})),{protocol:Ui,fetchOptions:o.fetchOptions}),A=wn.makeHash(`${adt}`,u).slice(0,6);return[PC(e,{parentLocator:n,path:a,hash:A,protocol:Ui})]}async getSatisfying(e,r,o,a){let[n]=await this.getCandidates(e,r,a);return{locators:o.filter(u=>u.locatorHash===n.locatorHash),sorted:!1}}async resolve(e,r){if(!r.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let o=await r.fetchOptions.fetcher.fetch(e,r.fetchOptions),a=await _e.releaseAfterUseAsync(async()=>await Ot.find(o.prefixPath,{baseFs:o.packageFs}),o.releaseFs);return{...e,version:a.version||"0.0.0",languageName:a.languageName||r.project.configuration.get("defaultLanguageName"),linkType:"HARD",conditions:a.getConditions(),dependencies:r.project.configuration.normalizeDependencyMap(a.dependencies),peerDependencies:a.peerDependencies,dependenciesMeta:a.dependenciesMeta,peerDependenciesMeta:a.peerDependenciesMeta,bin:a.bin}}};Ye();var M2=class{supports(e,r){return R2.test(e.reference)?!!e.reference.startsWith(Ui):!1}getLocalPath(e,r){return null}async fetch(e,r){let o=r.checksums.get(e.locatorHash)||null,[a,n,u]=await r.cache.fetchPackageFromCache(e,o,{onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${W.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from the disk`),loader:()=>this.fetchFromDisk(e,r),...r.cacheOptions});return{packageFs:a,releaseFs:n,prefixPath:W.getIdentVendorPath(e),checksum:u}}async fetchFromDisk(e,r){let o=await N2(e,r);return await Xi.convertToZip(o,{configuration:r.project.configuration,prefixPath:W.getIdentVendorPath(e),stripComponents:1})}};Ye();Ye();Ye();var U2=class{supportsDescriptor(e,r){return R2.test(e.range)?!!(e.range.startsWith(Ui)||SC.test(e.range)):!1}supportsLocator(e,r){return R2.test(e.reference)?!!e.reference.startsWith(Ui):!1}shouldPersistResolution(e,r){return!1}bindDescriptor(e,r,o){return SC.test(e.range)&&(e=W.makeDescriptor(e,`${Ui}${e.range}`)),W.bindDescriptor(e,{locator:W.stringifyLocator(r)})}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,o){if(!o.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let{path:a,parentLocator:n}=T2(e.range);if(n===null)throw new Error("Assertion failed: The descriptor should have been bound");let u=PC(e,{parentLocator:n,path:a,hash:"",protocol:Ui}),A=await N2(u,o.fetchOptions),p=wn.makeHash(A).slice(0,6);return[PC(e,{parentLocator:n,path:a,hash:p,protocol:Ui})]}async getSatisfying(e,r,o,a){let[n]=await this.getCandidates(e,r,a);return{locators:o.filter(u=>u.locatorHash===n.locatorHash),sorted:!1}}async resolve(e,r){if(!r.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let o=await r.fetchOptions.fetcher.fetch(e,r.fetchOptions),a=await _e.releaseAfterUseAsync(async()=>await Ot.find(o.prefixPath,{baseFs:o.packageFs}),o.releaseFs);return{...e,version:a.version||"0.0.0",languageName:a.languageName||r.project.configuration.get("defaultLanguageName"),linkType:"HARD",conditions:a.getConditions(),dependencies:r.project.configuration.normalizeDependencyMap(a.dependencies),peerDependencies:a.peerDependencies,dependenciesMeta:a.dependenciesMeta,peerDependenciesMeta:a.peerDependenciesMeta,bin:a.bin}}};var ldt={fetchers:[M2,L2],resolvers:[U2,O2]},cdt=ldt;var kH={};Vt(kH,{GithubFetcher:()=>_2,default:()=>Adt,githubUtils:()=>wk});Ye();St();var wk={};Vt(wk,{invalidGithubUrlMessage:()=>mme,isGithubUrl:()=>bH,parseGithubUrl:()=>xH});var gme=$e(ve("querystring")),dme=[/^https?:\/\/(?:([^/]+?)@)?github.com\/([^/#]+)\/([^/#]+)\/tarball\/([^/#]+)(?:#(.*))?$/,/^https?:\/\/(?:([^/]+?)@)?github.com\/([^/#]+)\/([^/#]+?)(?:\.git)?(?:#(.*))?$/];function bH(t){return t?dme.some(e=>!!t.match(e)):!1}function xH(t){let e;for(let A of dme)if(e=t.match(A),e)break;if(!e)throw new Error(mme(t));let[,r,o,a,n="master"]=e,{commit:u}=gme.default.parse(n);return n=u||n.replace(/[^:]*:/,""),{auth:r,username:o,reponame:a,treeish:n}}function mme(t){return`Input cannot be parsed as a valid GitHub URL ('${t}').`}var _2=class{supports(e,r){return!!bH(e.reference)}getLocalPath(e,r){return null}async fetch(e,r){let o=r.checksums.get(e.locatorHash)||null,[a,n,u]=await r.cache.fetchPackageFromCache(e,o,{onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${W.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from GitHub`),loader:()=>this.fetchFromNetwork(e,r),...r.cacheOptions});return{packageFs:a,releaseFs:n,prefixPath:W.getIdentVendorPath(e),checksum:u}}async fetchFromNetwork(e,r){let o=await nn.get(this.getLocatorUrl(e,r),{configuration:r.project.configuration});return await oe.mktempPromise(async a=>{let n=new gn(a);await Xi.extractArchiveTo(o,n,{stripComponents:1});let u=ra.splitRepoUrl(e.reference),A=V.join(a,"package.tgz");await un.prepareExternalProject(a,A,{configuration:r.project.configuration,report:r.report,workspace:u.extra.workspace,locator:e});let p=await oe.readFilePromise(A);return await Xi.convertToZip(p,{configuration:r.project.configuration,prefixPath:W.getIdentVendorPath(e),stripComponents:1})})}getLocatorUrl(e,r){let{auth:o,username:a,reponame:n,treeish:u}=xH(e.reference);return`https://${o?`${o}@`:""}github.com/${a}/${n}/archive/${u}.tar.gz`}};var udt={hooks:{async fetchHostedRepository(t,e,r){if(t!==null)return t;let o=new _2;if(!o.supports(e,r))return null;try{return await o.fetch(e,r)}catch{return null}}}},Adt=udt;var QH={};Vt(QH,{TarballHttpFetcher:()=>q2,TarballHttpResolver:()=>j2,default:()=>pdt});Ye();function H2(t){let e;try{e=new URL(t)}catch{return!1}return!(e.protocol!=="http:"&&e.protocol!=="https:"||!e.pathname.match(/(\.tar\.gz|\.tgz|\/[^.]+)$/))}var q2=class{supports(e,r){return H2(e.reference)}getLocalPath(e,r){return null}async fetch(e,r){let o=r.checksums.get(e.locatorHash)||null,[a,n,u]=await r.cache.fetchPackageFromCache(e,o,{onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${W.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from the remote server`),loader:()=>this.fetchFromNetwork(e,r),...r.cacheOptions});return{packageFs:a,releaseFs:n,prefixPath:W.getIdentVendorPath(e),checksum:u}}async fetchFromNetwork(e,r){let o=await nn.get(e.reference,{configuration:r.project.configuration});return await Xi.convertToZip(o,{configuration:r.project.configuration,prefixPath:W.getIdentVendorPath(e),stripComponents:1})}};Ye();Ye();var j2=class{supportsDescriptor(e,r){return H2(e.range)}supportsLocator(e,r){return H2(e.reference)}shouldPersistResolution(e,r){return!0}bindDescriptor(e,r,o){return e}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,o){return[W.convertDescriptorToLocator(e)]}async getSatisfying(e,r,o,a){let[n]=await this.getCandidates(e,r,a);return{locators:o.filter(u=>u.locatorHash===n.locatorHash),sorted:!1}}async resolve(e,r){if(!r.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let o=await r.fetchOptions.fetcher.fetch(e,r.fetchOptions),a=await _e.releaseAfterUseAsync(async()=>await Ot.find(o.prefixPath,{baseFs:o.packageFs}),o.releaseFs);return{...e,version:a.version||"0.0.0",languageName:a.languageName||r.project.configuration.get("defaultLanguageName"),linkType:"HARD",conditions:a.getConditions(),dependencies:r.project.configuration.normalizeDependencyMap(a.dependencies),peerDependencies:a.peerDependencies,dependenciesMeta:a.dependenciesMeta,peerDependenciesMeta:a.peerDependenciesMeta,bin:a.bin}}};var fdt={fetchers:[q2],resolvers:[j2]},pdt=fdt;var FH={};Vt(FH,{InitCommand:()=>d0,default:()=>gdt});Ye();Ye();St();qt();var d0=class extends ut{constructor(){super(...arguments);this.private=ge.Boolean("-p,--private",!1,{description:"Initialize a private package"});this.workspace=ge.Boolean("-w,--workspace",!1,{description:"Initialize a workspace root with a `packages/` directory"});this.install=ge.String("-i,--install",!1,{tolerateBoolean:!0,description:"Initialize a package with a specific bundle that will be locked in the project"});this.name=ge.String("-n,--name",{description:"Initialize a package with the given name"});this.usev2=ge.Boolean("-2",!1,{hidden:!0});this.yes=ge.Boolean("-y,--yes",{hidden:!0})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),o=typeof this.install=="string"?this.install:this.usev2||this.install===!0?"latest":null;return o!==null?await this.executeProxy(r,o):await this.executeRegular(r)}async executeProxy(r,o){if(r.projectCwd!==null&&r.projectCwd!==this.context.cwd)throw new it("Cannot use the --install flag from within a project subdirectory");oe.existsSync(this.context.cwd)||await oe.mkdirPromise(this.context.cwd,{recursive:!0});let a=V.join(this.context.cwd,dr.lockfile);oe.existsSync(a)||await oe.writeFilePromise(a,"");let n=await this.cli.run(["set","version",o],{quiet:!0});if(n!==0)return n;let u=[];return this.private&&u.push("-p"),this.workspace&&u.push("-w"),this.name&&u.push(`-n=${this.name}`),this.yes&&u.push("-y"),await oe.mktempPromise(async A=>{let{code:p}=await Ur.pipevp("yarn",["init",...u],{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,env:await un.makeScriptEnv({binFolder:A})});return p})}async executeRegular(r){let o=null;try{o=(await Pt.find(r,this.context.cwd)).project}catch{o=null}oe.existsSync(this.context.cwd)||await oe.mkdirPromise(this.context.cwd,{recursive:!0});let a=await Ot.tryFind(this.context.cwd),n=a??new Ot,u=Object.fromEntries(r.get("initFields").entries());n.load(u),n.name=n.name??W.makeIdent(r.get("initScope"),this.name??V.basename(this.context.cwd)),n.packageManager=rn&&_e.isTaggedYarnVersion(rn)?`yarn@${rn}`:null,(!a&&this.workspace||this.private)&&(n.private=!0),this.workspace&&n.workspaceDefinitions.length===0&&(await oe.mkdirPromise(V.join(this.context.cwd,"packages"),{recursive:!0}),n.workspaceDefinitions=[{pattern:"packages/*"}]);let A={};n.exportTo(A);let p=V.join(this.context.cwd,Ot.fileName);await oe.changeFilePromise(p,`${JSON.stringify(A,null,2)} +`,{automaticNewlines:!0});let h=[p],E=V.join(this.context.cwd,"README.md");if(oe.existsSync(E)||(await oe.writeFilePromise(E,`# ${W.stringifyIdent(n.name)} +`),h.push(E)),!o||o.cwd===this.context.cwd){let I=V.join(this.context.cwd,dr.lockfile);oe.existsSync(I)||(await oe.writeFilePromise(I,""),h.push(I));let x=[".yarn/*","!.yarn/patches","!.yarn/plugins","!.yarn/releases","!.yarn/sdks","!.yarn/versions","","# Swap the comments on the following lines if you wish to use zero-installs","# In that case, don't forget to run `yarn config set enableGlobalCache false`!","# Documentation here: https://yarnpkg.com/features/caching#zero-installs","","#!.yarn/cache",".pnp.*"].map(fe=>`${fe} +`).join(""),C=V.join(this.context.cwd,".gitignore");oe.existsSync(C)||(await oe.writeFilePromise(C,x),h.push(C));let L=["/.yarn/** linguist-vendored","/.yarn/releases/* binary","/.yarn/plugins/**/* binary","/.pnp.* binary linguist-generated"].map(fe=>`${fe} +`).join(""),U=V.join(this.context.cwd,".gitattributes");oe.existsSync(U)||(await oe.writeFilePromise(U,L),h.push(U));let J={["*"]:{endOfLine:"lf",insertFinalNewline:!0},["*.{js,json,yml}"]:{charset:"utf-8",indentStyle:"space",indentSize:2}};_e.mergeIntoTarget(J,r.get("initEditorConfig"));let te=`root = true +`;for(let[fe,ce]of Object.entries(J)){te+=` +[${fe}] +`;for(let[me,he]of Object.entries(ce)){let Be=me.replace(/[A-Z]/g,we=>`_${we.toLowerCase()}`);te+=`${Be} = ${he} +`}}let ae=V.join(this.context.cwd,".editorconfig");oe.existsSync(ae)||(await oe.writeFilePromise(ae,te),h.push(ae)),await this.cli.run(["install"],{quiet:!0}),oe.existsSync(V.join(this.context.cwd,".git"))||(await Ur.execvp("git",["init"],{cwd:this.context.cwd}),await Ur.execvp("git",["add","--",...h],{cwd:this.context.cwd}),await Ur.execvp("git",["commit","--allow-empty","-m","First commit"],{cwd:this.context.cwd}))}}};d0.paths=[["init"]],d0.usage=nt.Usage({description:"create a new package",details:"\n This command will setup a new package in your local directory.\n\n If the `-p,--private` or `-w,--workspace` options are set, the package will be private by default.\n\n If the `-w,--workspace` option is set, the package will be configured to accept a set of workspaces in the `packages/` directory.\n\n If the `-i,--install` option is given a value, Yarn will first download it using `yarn set version` and only then forward the init call to the newly downloaded bundle. Without arguments, the downloaded bundle will be `latest`.\n\n The initial settings of the manifest can be changed by using the `initScope` and `initFields` configuration values. Additionally, Yarn will generate an EditorConfig file whose rules can be altered via `initEditorConfig`, and will initialize a Git repository in the current directory.\n ",examples:[["Create a new package in the local directory","yarn init"],["Create a new private package in the local directory","yarn init -p"],["Create a new package and store the Yarn release inside","yarn init -i=latest"],["Create a new private package and defines it as a workspace root","yarn init -w"]]});var hdt={configuration:{initScope:{description:"Scope used when creating packages via the init command",type:"STRING",default:null},initFields:{description:"Additional fields to set when creating packages via the init command",type:"MAP",valueDefinition:{description:"",type:"ANY"}},initEditorConfig:{description:"Extra rules to define in the generator editorconfig",type:"MAP",valueDefinition:{description:"",type:"ANY"}}},commands:[d0]},gdt=hdt;var Tq={};Vt(Tq,{SearchCommand:()=>w0,UpgradeInteractiveCommand:()=>B0,default:()=>nIt});Ye();var Eme=$e(ve("os"));function bC({stdout:t}){if(Eme.default.endianness()==="BE")throw new Error("Interactive commands cannot be used on big-endian systems because ink depends on yoga-layout-prebuilt which only supports little-endian architectures");if(!t.isTTY)throw new Error("Interactive commands can only be used inside a TTY environment")}qt();var Qye=$e(zH()),XH={appId:"OFCNCOG2CU",apiKey:"6fe4476ee5a1832882e326b506d14126",indexName:"npm-search"},fyt=(0,Qye.default)(XH.appId,XH.apiKey).initIndex(XH.indexName),ZH=async(t,e=0)=>await fyt.search(t,{analyticsTags:["yarn-plugin-interactive-tools"],attributesToRetrieve:["name","version","owner","repository","humanDownloadsLast30Days"],page:e,hitsPerPage:10});var qB=["regular","dev","peer"],w0=class extends ut{async execute(){bC(this.context);let{Gem:e}=await Promise.resolve().then(()=>(cQ(),Bq)),{ScrollableItems:r}=await Promise.resolve().then(()=>(pQ(),fQ)),{useKeypress:o}=await Promise.resolve().then(()=>(UB(),Wwe)),{useMinistore:a}=await Promise.resolve().then(()=>(xq(),bq)),{renderForm:n}=await Promise.resolve().then(()=>(mQ(),dQ)),{default:u}=await Promise.resolve().then(()=>$e(rIe())),{Box:A,Text:p}=await Promise.resolve().then(()=>$e(ic())),{default:h,useEffect:E,useState:I}=await Promise.resolve().then(()=>$e(on())),v=await Ke.find(this.context.cwd,this.context.plugins),x=()=>h.createElement(A,{flexDirection:"row"},h.createElement(A,{flexDirection:"column",width:48},h.createElement(A,null,h.createElement(p,null,"Press ",h.createElement(p,{bold:!0,color:"cyanBright"},""),"/",h.createElement(p,{bold:!0,color:"cyanBright"},"")," to move between packages.")),h.createElement(A,null,h.createElement(p,null,"Press ",h.createElement(p,{bold:!0,color:"cyanBright"},"")," to select a package.")),h.createElement(A,null,h.createElement(p,null,"Press ",h.createElement(p,{bold:!0,color:"cyanBright"},"")," again to change the target."))),h.createElement(A,{flexDirection:"column"},h.createElement(A,{marginLeft:1},h.createElement(p,null,"Press ",h.createElement(p,{bold:!0,color:"cyanBright"},"")," to install the selected packages.")),h.createElement(A,{marginLeft:1},h.createElement(p,null,"Press ",h.createElement(p,{bold:!0,color:"cyanBright"},"")," to abort.")))),C=()=>h.createElement(h.Fragment,null,h.createElement(A,{width:15},h.createElement(p,{bold:!0,underline:!0,color:"gray"},"Owner")),h.createElement(A,{width:11},h.createElement(p,{bold:!0,underline:!0,color:"gray"},"Version")),h.createElement(A,{width:10},h.createElement(p,{bold:!0,underline:!0,color:"gray"},"Downloads"))),R=()=>h.createElement(A,{width:17},h.createElement(p,{bold:!0,underline:!0,color:"gray"},"Target")),L=({hit:he,active:Be})=>{let[we,g]=a(he.name,null);o({active:Be},(le,ne)=>{if(ne.name!=="space")return;if(!we){g(qB[0]);return}let ee=qB.indexOf(we)+1;ee===qB.length?g(null):g(qB[ee])},[we,g]);let Ee=W.parseIdent(he.name),Se=W.prettyIdent(v,Ee);return h.createElement(A,null,h.createElement(A,{width:45},h.createElement(p,{bold:!0,wrap:"wrap"},Se)),h.createElement(A,{width:14,marginLeft:1},h.createElement(p,{bold:!0,wrap:"truncate"},he.owner.name)),h.createElement(A,{width:10,marginLeft:1},h.createElement(p,{italic:!0,wrap:"truncate"},he.version)),h.createElement(A,{width:16,marginLeft:1},h.createElement(p,null,he.humanDownloadsLast30Days)))},U=({name:he,active:Be})=>{let[we]=a(he,null),g=W.parseIdent(he);return h.createElement(A,null,h.createElement(A,{width:47},h.createElement(p,{bold:!0}," - ",W.prettyIdent(v,g))),qB.map(Ee=>h.createElement(A,{key:Ee,width:14,marginLeft:1},h.createElement(p,null," ",h.createElement(e,{active:we===Ee})," ",h.createElement(p,{bold:!0},Ee)))))},J=()=>h.createElement(A,{marginTop:1},h.createElement(p,null,"Powered by Algolia.")),ae=await n(({useSubmit:he})=>{let Be=a();he(Be);let we=Array.from(Be.keys()).filter(H=>Be.get(H)!==null),[g,Ee]=I(""),[Se,le]=I(0),[ne,ee]=I([]),Ie=H=>{H.match(/\t| /)||Ee(H)},Fe=async()=>{le(0);let H=await ZH(g);H.query===g&&ee(H.hits)},At=async()=>{let H=await ZH(g,Se+1);H.query===g&&H.page-1===Se&&(le(H.page),ee([...ne,...H.hits]))};return E(()=>{g?Fe():ee([])},[g]),h.createElement(A,{flexDirection:"column"},h.createElement(x,null),h.createElement(A,{flexDirection:"row",marginTop:1},h.createElement(p,{bold:!0},"Search: "),h.createElement(A,{width:41},h.createElement(u,{value:g,onChange:Ie,placeholder:"i.e. babel, webpack, react...",showCursor:!1})),h.createElement(C,null)),ne.length?h.createElement(r,{radius:2,loop:!1,children:ne.map(H=>h.createElement(L,{key:H.name,hit:H,active:!1})),willReachEnd:At}):h.createElement(p,{color:"gray"},"Start typing..."),h.createElement(A,{flexDirection:"row",marginTop:1},h.createElement(A,{width:49},h.createElement(p,{bold:!0},"Selected:")),h.createElement(R,null)),we.length?we.map(H=>h.createElement(U,{key:H,name:H,active:!1})):h.createElement(p,{color:"gray"},"No selected packages..."),h.createElement(J,null))},{},{stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr});if(typeof ae>"u")return 1;let fe=Array.from(ae.keys()).filter(he=>ae.get(he)==="regular"),ce=Array.from(ae.keys()).filter(he=>ae.get(he)==="dev"),me=Array.from(ae.keys()).filter(he=>ae.get(he)==="peer");return fe.length&&await this.cli.run(["add",...fe]),ce.length&&await this.cli.run(["add","--dev",...ce]),me&&await this.cli.run(["add","--peer",...me]),0}};w0.paths=[["search"]],w0.usage=nt.Usage({category:"Interactive commands",description:"open the search interface",details:` + This command opens a fullscreen terminal interface where you can search for and install packages from the npm registry. + `,examples:[["Open the search window","yarn search"]]});Ye();qt();E_();var cIe=$e(zn()),lIe=/^((?:[\^~]|>=?)?)([0-9]+)(\.[0-9]+)(\.[0-9]+)((?:-\S+)?)$/,uIe=(t,e)=>t.length>0?[t.slice(0,e)].concat(uIe(t.slice(e),e)):[],B0=class extends ut{async execute(){bC(this.context);let{ItemOptions:e}=await Promise.resolve().then(()=>(aIe(),oIe)),{Pad:r}=await Promise.resolve().then(()=>(Rq(),sIe)),{ScrollableItems:o}=await Promise.resolve().then(()=>(pQ(),fQ)),{useMinistore:a}=await Promise.resolve().then(()=>(xq(),bq)),{renderForm:n}=await Promise.resolve().then(()=>(mQ(),dQ)),{Box:u,Text:A}=await Promise.resolve().then(()=>$e(ic())),{default:p,useEffect:h,useRef:E,useState:I}=await Promise.resolve().then(()=>$e(on())),v=await Ke.find(this.context.cwd,this.context.plugins),{project:x,workspace:C}=await Pt.find(v,this.context.cwd),R=await Lr.find(v);if(!C)throw new rr(x.cwd,this.context.cwd);await x.restoreInstallState({restoreResolutions:!1});let L=this.context.stdout.rows-7,U=(Ee,Se)=>{let le=upe(Ee,Se),ne="";for(let ee of le)ee.added?ne+=de.pretty(v,ee.value,"green"):ee.removed||(ne+=ee.value);return ne},J=(Ee,Se)=>{if(Ee===Se)return Se;let le=W.parseRange(Ee),ne=W.parseRange(Se),ee=le.selector.match(lIe),Ie=ne.selector.match(lIe);if(!ee||!Ie)return U(Ee,Se);let Fe=["gray","red","yellow","green","magenta"],At=null,H="";for(let at=1;at{let ne=await zc.fetchDescriptorFrom(Ee,le,{project:x,cache:R,preserveModifier:Se,workspace:C});return ne!==null?ne.range:Ee.range},ae=async Ee=>{let Se=cIe.default.valid(Ee.range)?`^${Ee.range}`:Ee.range,[le,ne]=await Promise.all([te(Ee,Ee.range,Se).catch(()=>null),te(Ee,Ee.range,"latest").catch(()=>null)]),ee=[{value:null,label:Ee.range}];return le&&le!==Ee.range?ee.push({value:le,label:J(Ee.range,le)}):ee.push({value:null,label:""}),ne&&ne!==le&&ne!==Ee.range?ee.push({value:ne,label:J(Ee.range,ne)}):ee.push({value:null,label:""}),ee},fe=()=>p.createElement(u,{flexDirection:"row"},p.createElement(u,{flexDirection:"column",width:49},p.createElement(u,{marginLeft:1},p.createElement(A,null,"Press ",p.createElement(A,{bold:!0,color:"cyanBright"},""),"/",p.createElement(A,{bold:!0,color:"cyanBright"},"")," to select packages.")),p.createElement(u,{marginLeft:1},p.createElement(A,null,"Press ",p.createElement(A,{bold:!0,color:"cyanBright"},""),"/",p.createElement(A,{bold:!0,color:"cyanBright"},"")," to select versions."))),p.createElement(u,{flexDirection:"column"},p.createElement(u,{marginLeft:1},p.createElement(A,null,"Press ",p.createElement(A,{bold:!0,color:"cyanBright"},"")," to install.")),p.createElement(u,{marginLeft:1},p.createElement(A,null,"Press ",p.createElement(A,{bold:!0,color:"cyanBright"},"")," to abort.")))),ce=()=>p.createElement(u,{flexDirection:"row",paddingTop:1,paddingBottom:1},p.createElement(u,{width:50},p.createElement(A,{bold:!0},p.createElement(A,{color:"greenBright"},"?")," Pick the packages you want to upgrade.")),p.createElement(u,{width:17},p.createElement(A,{bold:!0,underline:!0,color:"gray"},"Current")),p.createElement(u,{width:17},p.createElement(A,{bold:!0,underline:!0,color:"gray"},"Range")),p.createElement(u,{width:17},p.createElement(A,{bold:!0,underline:!0,color:"gray"},"Latest"))),me=({active:Ee,descriptor:Se,suggestions:le})=>{let[ne,ee]=a(Se.descriptorHash,null),Ie=W.stringifyIdent(Se),Fe=Math.max(0,45-Ie.length);return p.createElement(p.Fragment,null,p.createElement(u,null,p.createElement(u,{width:45},p.createElement(A,{bold:!0},W.prettyIdent(v,Se)),p.createElement(r,{active:Ee,length:Fe})),p.createElement(e,{active:Ee,options:le,value:ne,skewer:!0,onChange:ee,sizes:[17,17,17]})))},he=({dependencies:Ee})=>{let[Se,le]=I(Ee.map(()=>null)),ne=E(!0),ee=async Ie=>{let Fe=await ae(Ie);return Fe.filter(At=>At.label!=="").length<=1?null:{descriptor:Ie,suggestions:Fe}};return h(()=>()=>{ne.current=!1},[]),h(()=>{let Ie=Math.trunc(L*1.75),Fe=Ee.slice(0,Ie),At=Ee.slice(Ie),H=uIe(At,L),at=Fe.map(ee).reduce(async(Re,ke)=>{await Re;let xe=await ke;xe!==null&&(!ne.current||le(He=>{let Te=He.findIndex(qe=>qe===null),Je=[...He];return Je[Te]=xe,Je}))},Promise.resolve());H.reduce((Re,ke)=>Promise.all(ke.map(xe=>Promise.resolve().then(()=>ee(xe)))).then(async xe=>{xe=xe.filter(He=>He!==null),await Re,ne.current&&le(He=>{let Te=He.findIndex(Je=>Je===null);return He.slice(0,Te).concat(xe).concat(He.slice(Te+xe.length))})}),at).then(()=>{ne.current&&le(Re=>Re.filter(ke=>ke!==null))})},[]),Se.length?p.createElement(o,{radius:L>>1,children:Se.map((Ie,Fe)=>Ie!==null?p.createElement(me,{key:Fe,active:!1,descriptor:Ie.descriptor,suggestions:Ie.suggestions}):p.createElement(A,{key:Fe},"Loading..."))}):p.createElement(A,null,"No upgrades found")},we=await n(({useSubmit:Ee})=>{Ee(a());let Se=new Map;for(let ne of x.workspaces)for(let ee of["dependencies","devDependencies"])for(let Ie of ne.manifest[ee].values())x.tryWorkspaceByDescriptor(Ie)===null&&(Ie.range.startsWith("link:")||Se.set(Ie.descriptorHash,Ie));let le=_e.sortMap(Se.values(),ne=>W.stringifyDescriptor(ne));return p.createElement(u,{flexDirection:"column"},p.createElement(fe,null),p.createElement(ce,null),p.createElement(he,{dependencies:le}))},{},{stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr});if(typeof we>"u")return 1;let g=!1;for(let Ee of x.workspaces)for(let Se of["dependencies","devDependencies"]){let le=Ee.manifest[Se];for(let ne of le.values()){let ee=we.get(ne.descriptorHash);typeof ee<"u"&&ee!==null&&(le.set(ne.identHash,W.makeDescriptor(ne,ee)),g=!0)}}return g?await x.installWithNewReport({quiet:this.context.quiet,stdout:this.context.stdout},{cache:R}):0}};B0.paths=[["upgrade-interactive"]],B0.usage=nt.Usage({category:"Interactive commands",description:"open the upgrade interface",details:` + This command opens a fullscreen terminal interface where you can see any out of date packages used by your application, their status compared to the latest versions available on the remote registry, and select packages to upgrade. + `,examples:[["Open the upgrade window","yarn upgrade-interactive"]]});var rIt={commands:[w0,B0]},nIt=rIt;var Nq={};Vt(Nq,{LinkFetcher:()=>GB,LinkResolver:()=>YB,PortalFetcher:()=>WB,PortalResolver:()=>KB,default:()=>sIt});Ye();St();var tp="portal:",rp="link:";var GB=class{supports(e,r){return!!e.reference.startsWith(rp)}getLocalPath(e,r){let{parentLocator:o,path:a}=W.parseFileStyleRange(e.reference,{protocol:rp});if(V.isAbsolute(a))return a;let n=r.fetcher.getLocalPath(o,r);return n===null?null:V.resolve(n,a)}async fetch(e,r){let{parentLocator:o,path:a}=W.parseFileStyleRange(e.reference,{protocol:rp}),n=V.isAbsolute(a)?{packageFs:new gn(Bt.root),prefixPath:Bt.dot,localPath:Bt.root}:await r.fetcher.fetch(o,r),u=n.localPath?{packageFs:new gn(Bt.root),prefixPath:V.relative(Bt.root,n.localPath),localPath:Bt.root}:n;n!==u&&n.releaseFs&&n.releaseFs();let A=u.packageFs,p=V.resolve(u.localPath??u.packageFs.getRealPath(),u.prefixPath,a);return n.localPath?{packageFs:new gn(p,{baseFs:A}),releaseFs:u.releaseFs,prefixPath:Bt.dot,discardFromLookup:!0,localPath:p}:{packageFs:new _u(p,{baseFs:A}),releaseFs:u.releaseFs,prefixPath:Bt.dot,discardFromLookup:!0}}};Ye();St();var YB=class{supportsDescriptor(e,r){return!!e.range.startsWith(rp)}supportsLocator(e,r){return!!e.reference.startsWith(rp)}shouldPersistResolution(e,r){return!1}bindDescriptor(e,r,o){return W.bindDescriptor(e,{locator:W.stringifyLocator(r)})}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,o){let a=e.range.slice(rp.length);return[W.makeLocator(e,`${rp}${ue.toPortablePath(a)}`)]}async getSatisfying(e,r,o,a){let[n]=await this.getCandidates(e,r,a);return{locators:o.filter(u=>u.locatorHash===n.locatorHash),sorted:!1}}async resolve(e,r){return{...e,version:"0.0.0",languageName:r.project.configuration.get("defaultLanguageName"),linkType:"SOFT",conditions:null,dependencies:new Map,peerDependencies:new Map,dependenciesMeta:new Map,peerDependenciesMeta:new Map,bin:new Map}}};Ye();St();var WB=class{supports(e,r){return!!e.reference.startsWith(tp)}getLocalPath(e,r){let{parentLocator:o,path:a}=W.parseFileStyleRange(e.reference,{protocol:tp});if(V.isAbsolute(a))return a;let n=r.fetcher.getLocalPath(o,r);return n===null?null:V.resolve(n,a)}async fetch(e,r){let{parentLocator:o,path:a}=W.parseFileStyleRange(e.reference,{protocol:tp}),n=V.isAbsolute(a)?{packageFs:new gn(Bt.root),prefixPath:Bt.dot,localPath:Bt.root}:await r.fetcher.fetch(o,r),u=n.localPath?{packageFs:new gn(Bt.root),prefixPath:V.relative(Bt.root,n.localPath),localPath:Bt.root}:n;n!==u&&n.releaseFs&&n.releaseFs();let A=u.packageFs,p=V.resolve(u.localPath??u.packageFs.getRealPath(),u.prefixPath,a);return n.localPath?{packageFs:new gn(p,{baseFs:A}),releaseFs:u.releaseFs,prefixPath:Bt.dot,localPath:p}:{packageFs:new _u(p,{baseFs:A}),releaseFs:u.releaseFs,prefixPath:Bt.dot}}};Ye();Ye();St();var KB=class{supportsDescriptor(e,r){return!!e.range.startsWith(tp)}supportsLocator(e,r){return!!e.reference.startsWith(tp)}shouldPersistResolution(e,r){return!1}bindDescriptor(e,r,o){return W.bindDescriptor(e,{locator:W.stringifyLocator(r)})}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,o){let a=e.range.slice(tp.length);return[W.makeLocator(e,`${tp}${ue.toPortablePath(a)}`)]}async getSatisfying(e,r,o,a){let[n]=await this.getCandidates(e,r,a);return{locators:o.filter(u=>u.locatorHash===n.locatorHash),sorted:!1}}async resolve(e,r){if(!r.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let o=await r.fetchOptions.fetcher.fetch(e,r.fetchOptions),a=await _e.releaseAfterUseAsync(async()=>await Ot.find(o.prefixPath,{baseFs:o.packageFs}),o.releaseFs);return{...e,version:a.version||"0.0.0",languageName:a.languageName||r.project.configuration.get("defaultLanguageName"),linkType:"SOFT",conditions:a.getConditions(),dependencies:r.project.configuration.normalizeDependencyMap(a.dependencies),peerDependencies:a.peerDependencies,dependenciesMeta:a.dependenciesMeta,peerDependenciesMeta:a.peerDependenciesMeta,bin:a.bin}}};var iIt={fetchers:[GB,WB],resolvers:[YB,KB]},sIt=iIt;var yj={};Vt(yj,{NodeModulesLinker:()=>lv,NodeModulesMode:()=>hj,PnpLooseLinker:()=>cv,default:()=>w1t});St();Ye();St();St();var Oq=(t,e)=>`${t}@${e}`,AIe=(t,e)=>{let r=e.indexOf("#"),o=r>=0?e.substring(r+1):e;return Oq(t,o)};var hIe=(t,e={})=>{let r=e.debugLevel||Number(process.env.NM_DEBUG_LEVEL||-1),o=e.check||r>=9,a=e.hoistingLimits||new Map,n={check:o,debugLevel:r,hoistingLimits:a,fastLookupPossible:!0},u;n.debugLevel>=0&&(u=Date.now());let A=fIt(t,n),p=!1,h=0;do p=Mq(A,[A],new Set([A.locator]),new Map,n).anotherRoundNeeded,n.fastLookupPossible=!1,h++;while(p);if(n.debugLevel>=0&&console.log(`hoist time: ${Date.now()-u}ms, rounds: ${h}`),n.debugLevel>=1){let E=VB(A);if(Mq(A,[A],new Set([A.locator]),new Map,n).isGraphChanged)throw new Error(`The hoisting result is not terminal, prev tree: +${E}, next tree: +${VB(A)}`);let v=gIe(A);if(v)throw new Error(`${v}, after hoisting finished: +${VB(A)}`)}return n.debugLevel>=2&&console.log(VB(A)),pIt(A)},oIt=t=>{let e=t[t.length-1],r=new Map,o=new Set,a=n=>{if(!o.has(n)){o.add(n);for(let u of n.hoistedDependencies.values())r.set(u.name,u);for(let u of n.dependencies.values())n.peerNames.has(u.name)||a(u)}};return a(e),r},aIt=t=>{let e=t[t.length-1],r=new Map,o=new Set,a=new Set,n=(u,A)=>{if(o.has(u))return;o.add(u);for(let h of u.hoistedDependencies.values())if(!A.has(h.name)){let E;for(let I of t)E=I.dependencies.get(h.name),E&&r.set(E.name,E)}let p=new Set;for(let h of u.dependencies.values())p.add(h.name);for(let h of u.dependencies.values())u.peerNames.has(h.name)||n(h,p)};return n(e,a),r},fIe=(t,e)=>{if(e.decoupled)return e;let{name:r,references:o,ident:a,locator:n,dependencies:u,originalDependencies:A,hoistedDependencies:p,peerNames:h,reasons:E,isHoistBorder:I,hoistPriority:v,dependencyKind:x,hoistedFrom:C,hoistedTo:R}=e,L={name:r,references:new Set(o),ident:a,locator:n,dependencies:new Map(u),originalDependencies:new Map(A),hoistedDependencies:new Map(p),peerNames:new Set(h),reasons:new Map(E),decoupled:!0,isHoistBorder:I,hoistPriority:v,dependencyKind:x,hoistedFrom:new Map(C),hoistedTo:new Map(R)},U=L.dependencies.get(r);return U&&U.ident==L.ident&&L.dependencies.set(r,L),t.dependencies.set(L.name,L),L},lIt=(t,e)=>{let r=new Map([[t.name,[t.ident]]]);for(let a of t.dependencies.values())t.peerNames.has(a.name)||r.set(a.name,[a.ident]);let o=Array.from(e.keys());o.sort((a,n)=>{let u=e.get(a),A=e.get(n);return A.hoistPriority!==u.hoistPriority?A.hoistPriority-u.hoistPriority:A.peerDependents.size!==u.peerDependents.size?A.peerDependents.size-u.peerDependents.size:A.dependents.size-u.dependents.size});for(let a of o){let n=a.substring(0,a.indexOf("@",1)),u=a.substring(n.length+1);if(!t.peerNames.has(n)){let A=r.get(n);A||(A=[],r.set(n,A)),A.indexOf(u)<0&&A.push(u)}}return r},Lq=t=>{let e=new Set,r=(o,a=new Set)=>{if(!a.has(o)){a.add(o);for(let n of o.peerNames)if(!t.peerNames.has(n)){let u=t.dependencies.get(n);u&&!e.has(u)&&r(u,a)}e.add(o)}};for(let o of t.dependencies.values())t.peerNames.has(o.name)||r(o);return e},Mq=(t,e,r,o,a,n=new Set)=>{let u=e[e.length-1];if(n.has(u))return{anotherRoundNeeded:!1,isGraphChanged:!1};n.add(u);let A=hIt(u),p=lIt(u,A),h=t==u?new Map:a.fastLookupPossible?oIt(e):aIt(e),E,I=!1,v=!1,x=new Map(Array.from(p.entries()).map(([R,L])=>[R,L[0]])),C=new Map;do{let R=AIt(t,e,r,h,x,p,o,C,a);R.isGraphChanged&&(v=!0),R.anotherRoundNeeded&&(I=!0),E=!1;for(let[L,U]of p)U.length>1&&!u.dependencies.has(L)&&(x.delete(L),U.shift(),x.set(L,U[0]),E=!0)}while(E);for(let R of u.dependencies.values())if(!u.peerNames.has(R.name)&&!r.has(R.locator)){r.add(R.locator);let L=Mq(t,[...e,R],r,C,a);L.isGraphChanged&&(v=!0),L.anotherRoundNeeded&&(I=!0),r.delete(R.locator)}return{anotherRoundNeeded:I,isGraphChanged:v}},cIt=t=>{for(let[e,r]of t.dependencies)if(!t.peerNames.has(e)&&r.ident!==t.ident)return!0;return!1},uIt=(t,e,r,o,a,n,u,A,{outputReason:p,fastLookupPossible:h})=>{let E,I=null,v=new Set;p&&(E=`${Array.from(e).map(L=>no(L)).join("\u2192")}`);let x=r[r.length-1],R=!(o.ident===x.ident);if(p&&!R&&(I="- self-reference"),R&&(R=o.dependencyKind!==1,p&&!R&&(I="- workspace")),R&&o.dependencyKind===2&&(R=!cIt(o),p&&!R&&(I="- external soft link with unhoisted dependencies")),R&&(R=x.dependencyKind!==1||x.hoistedFrom.has(o.name)||e.size===1,p&&!R&&(I=x.reasons.get(o.name))),R&&(R=!t.peerNames.has(o.name),p&&!R&&(I=`- cannot shadow peer: ${no(t.originalDependencies.get(o.name).locator)} at ${E}`)),R){let L=!1,U=a.get(o.name);if(L=!U||U.ident===o.ident,p&&!L&&(I=`- filled by: ${no(U.locator)} at ${E}`),L)for(let J=r.length-1;J>=1;J--){let ae=r[J].dependencies.get(o.name);if(ae&&ae.ident!==o.ident){L=!1;let fe=A.get(x);fe||(fe=new Set,A.set(x,fe)),fe.add(o.name),p&&(I=`- filled by ${no(ae.locator)} at ${r.slice(0,J).map(ce=>no(ce.locator)).join("\u2192")}`);break}}R=L}if(R&&(R=n.get(o.name)===o.ident,p&&!R&&(I=`- filled by: ${no(u.get(o.name)[0])} at ${E}`)),R){let L=!0,U=new Set(o.peerNames);for(let J=r.length-1;J>=1;J--){let te=r[J];for(let ae of U){if(te.peerNames.has(ae)&&te.originalDependencies.has(ae))continue;let fe=te.dependencies.get(ae);fe&&t.dependencies.get(ae)!==fe&&(J===r.length-1?v.add(fe):(v=null,L=!1,p&&(I=`- peer dependency ${no(fe.locator)} from parent ${no(te.locator)} was not hoisted to ${E}`))),U.delete(ae)}if(!L)break}R=L}if(R&&!h)for(let L of o.hoistedDependencies.values()){let U=a.get(L.name)||t.dependencies.get(L.name);if(!U||L.ident!==U.ident){R=!1,p&&(I=`- previously hoisted dependency mismatch, needed: ${no(L.locator)}, available: ${no(U?.locator)}`);break}}return v!==null&&v.size>0?{isHoistable:2,dependsOn:v,reason:I}:{isHoistable:R?0:1,reason:I}},yQ=t=>`${t.name}@${t.locator}`,AIt=(t,e,r,o,a,n,u,A,p)=>{let h=e[e.length-1],E=new Set,I=!1,v=!1,x=(U,J,te,ae,fe)=>{if(E.has(ae))return;let ce=[...J,yQ(ae)],me=[...te,yQ(ae)],he=new Map,Be=new Map;for(let le of Lq(ae)){let ne=uIt(h,r,[h,...U,ae],le,o,a,n,A,{outputReason:p.debugLevel>=2,fastLookupPossible:p.fastLookupPossible});if(Be.set(le,ne),ne.isHoistable===2)for(let ee of ne.dependsOn){let Ie=he.get(ee.name)||new Set;Ie.add(le.name),he.set(ee.name,Ie)}}let we=new Set,g=(le,ne,ee)=>{if(!we.has(le)){we.add(le),Be.set(le,{isHoistable:1,reason:ee});for(let Ie of he.get(le.name)||[])g(ae.dependencies.get(Ie),ne,p.debugLevel>=2?`- peer dependency ${no(le.locator)} from parent ${no(ae.locator)} was not hoisted`:"")}};for(let[le,ne]of Be)ne.isHoistable===1&&g(le,ne,ne.reason);let Ee=!1;for(let le of Be.keys())if(!we.has(le)){v=!0;let ne=u.get(ae);ne&&ne.has(le.name)&&(I=!0),Ee=!0,ae.dependencies.delete(le.name),ae.hoistedDependencies.set(le.name,le),ae.reasons.delete(le.name);let ee=h.dependencies.get(le.name);if(p.debugLevel>=2){let Ie=Array.from(J).concat([ae.locator]).map(At=>no(At)).join("\u2192"),Fe=h.hoistedFrom.get(le.name);Fe||(Fe=[],h.hoistedFrom.set(le.name,Fe)),Fe.push(Ie),ae.hoistedTo.set(le.name,Array.from(e).map(At=>no(At.locator)).join("\u2192"))}if(!ee)h.ident!==le.ident&&(h.dependencies.set(le.name,le),fe.add(le));else for(let Ie of le.references)ee.references.add(Ie)}if(ae.dependencyKind===2&&Ee&&(I=!0),p.check){let le=gIe(t);if(le)throw new Error(`${le}, after hoisting dependencies of ${[h,...U,ae].map(ne=>no(ne.locator)).join("\u2192")}: +${VB(t)}`)}let Se=Lq(ae);for(let le of Se)if(we.has(le)){let ne=Be.get(le);if((a.get(le.name)===le.ident||!ae.reasons.has(le.name))&&ne.isHoistable!==0&&ae.reasons.set(le.name,ne.reason),!le.isHoistBorder&&me.indexOf(yQ(le))<0){E.add(ae);let Ie=fIe(ae,le);x([...U,ae],ce,me,Ie,R),E.delete(ae)}}},C,R=new Set(Lq(h)),L=Array.from(e).map(U=>yQ(U));do{C=R,R=new Set;for(let U of C){if(U.locator===h.locator||U.isHoistBorder)continue;let J=fIe(h,U);x([],Array.from(r),L,J,R)}}while(R.size>0);return{anotherRoundNeeded:I,isGraphChanged:v}},gIe=t=>{let e=[],r=new Set,o=new Set,a=(n,u,A)=>{if(r.has(n)||(r.add(n),o.has(n)))return;let p=new Map(u);for(let h of n.dependencies.values())n.peerNames.has(h.name)||p.set(h.name,h);for(let h of n.originalDependencies.values()){let E=p.get(h.name),I=()=>`${Array.from(o).concat([n]).map(v=>no(v.locator)).join("\u2192")}`;if(n.peerNames.has(h.name)){let v=u.get(h.name);(v!==E||!v||v.ident!==h.ident)&&e.push(`${I()} - broken peer promise: expected ${h.ident} but found ${v&&v.ident}`)}else{let v=A.hoistedFrom.get(n.name),x=n.hoistedTo.get(h.name),C=`${v?` hoisted from ${v.join(", ")}`:""}`,R=`${x?` hoisted to ${x}`:""}`,L=`${I()}${C}`;E?E.ident!==h.ident&&e.push(`${L} - broken require promise for ${h.name}${R}: expected ${h.ident}, but found: ${E.ident}`):e.push(`${L} - broken require promise: no required dependency ${h.name}${R} found`)}}o.add(n);for(let h of n.dependencies.values())n.peerNames.has(h.name)||a(h,p,n);o.delete(n)};return a(t,t.dependencies,t),e.join(` +`)},fIt=(t,e)=>{let{identName:r,name:o,reference:a,peerNames:n}=t,u={name:o,references:new Set([a]),locator:Oq(r,a),ident:AIe(r,a),dependencies:new Map,originalDependencies:new Map,hoistedDependencies:new Map,peerNames:new Set(n),reasons:new Map,decoupled:!0,isHoistBorder:!0,hoistPriority:0,dependencyKind:1,hoistedFrom:new Map,hoistedTo:new Map},A=new Map([[t,u]]),p=(h,E)=>{let I=A.get(h),v=!!I;if(!I){let{name:x,identName:C,reference:R,peerNames:L,hoistPriority:U,dependencyKind:J}=h,te=e.hoistingLimits.get(E.locator);I={name:x,references:new Set([R]),locator:Oq(C,R),ident:AIe(C,R),dependencies:new Map,originalDependencies:new Map,hoistedDependencies:new Map,peerNames:new Set(L),reasons:new Map,decoupled:!0,isHoistBorder:te?te.has(x):!1,hoistPriority:U||0,dependencyKind:J||0,hoistedFrom:new Map,hoistedTo:new Map},A.set(h,I)}if(E.dependencies.set(h.name,I),E.originalDependencies.set(h.name,I),v){let x=new Set,C=R=>{if(!x.has(R)){x.add(R),R.decoupled=!1;for(let L of R.dependencies.values())R.peerNames.has(L.name)||C(L)}};C(I)}else for(let x of h.dependencies)p(x,I)};for(let h of t.dependencies)p(h,u);return u},Uq=t=>t.substring(0,t.indexOf("@",1)),pIt=t=>{let e={name:t.name,identName:Uq(t.locator),references:new Set(t.references),dependencies:new Set},r=new Set([t]),o=(a,n,u)=>{let A=r.has(a),p;if(n===a)p=u;else{let{name:h,references:E,locator:I}=a;p={name:h,identName:Uq(I),references:E,dependencies:new Set}}if(u.dependencies.add(p),!A){r.add(a);for(let h of a.dependencies.values())a.peerNames.has(h.name)||o(h,a,p);r.delete(a)}};for(let a of t.dependencies.values())o(a,t,e);return e},hIt=t=>{let e=new Map,r=new Set([t]),o=u=>`${u.name}@${u.ident}`,a=u=>{let A=o(u),p=e.get(A);return p||(p={dependents:new Set,peerDependents:new Set,hoistPriority:0},e.set(A,p)),p},n=(u,A)=>{let p=!!r.has(A);if(a(A).dependents.add(u.ident),!p){r.add(A);for(let E of A.dependencies.values()){let I=a(E);I.hoistPriority=Math.max(I.hoistPriority,E.hoistPriority),A.peerNames.has(E.name)?I.peerDependents.add(A.ident):n(A,E)}}};for(let u of t.dependencies.values())t.peerNames.has(u.name)||n(t,u);return e},no=t=>{if(!t)return"none";let e=t.indexOf("@",1),r=t.substring(0,e);r.endsWith("$wsroot$")&&(r=`wh:${r.replace("$wsroot$","")}`);let o=t.substring(e+1);if(o==="workspace:.")return".";if(o){let a=(o.indexOf("#")>0?o.split("#")[1]:o).replace("npm:","");return o.startsWith("virtual")&&(r=`v:${r}`),a.startsWith("workspace")&&(r=`w:${r}`,a=""),`${r}${a?`@${a}`:""}`}else return`${r}`},pIe=5e4,VB=t=>{let e=0,r=(a,n,u="")=>{if(e>pIe||n.has(a))return"";e++;let A=Array.from(a.dependencies.values()).sort((h,E)=>h.name===E.name?0:h.name>E.name?1:-1),p="";n.add(a);for(let h=0;h":"")+(v!==E.name?`a:${E.name}:`:"")+no(E.locator)+(I?` ${I}`:"")} +`,p+=r(E,n,`${u}${hpIe?` +Tree is too large, part of the tree has been dunped +`:"")};var JB=(o=>(o.WORKSPACES="workspaces",o.DEPENDENCIES="dependencies",o.NONE="none",o))(JB||{}),dIe="node_modules",v0="$wsroot$";var zB=(t,e)=>{let{packageTree:r,hoistingLimits:o,errors:a,preserveSymlinksRequired:n}=dIt(t,e),u=null;if(a.length===0){let A=hIe(r,{hoistingLimits:o});u=yIt(t,A,e)}return{tree:u,errors:a,preserveSymlinksRequired:n}},gA=t=>`${t.name}@${t.reference}`,Hq=t=>{let e=new Map;for(let[r,o]of t.entries())if(!o.dirList){let a=e.get(o.locator);a||(a={target:o.target,linkType:o.linkType,locations:[],aliases:o.aliases},e.set(o.locator,a)),a.locations.push(r)}for(let r of e.values())r.locations=r.locations.sort((o,a)=>{let n=o.split(V.delimiter).length,u=a.split(V.delimiter).length;return a===o?0:n!==u?u-n:a>o?1:-1});return e},mIe=(t,e)=>{let r=W.isVirtualLocator(t)?W.devirtualizeLocator(t):t,o=W.isVirtualLocator(e)?W.devirtualizeLocator(e):e;return W.areLocatorsEqual(r,o)},_q=(t,e,r,o)=>{if(t.linkType!=="SOFT")return!1;let a=ue.toPortablePath(r.resolveVirtual&&e.reference&&e.reference.startsWith("virtual:")?r.resolveVirtual(t.packageLocation):t.packageLocation);return V.contains(o,a)===null},gIt=t=>{let e=t.getPackageInformation(t.topLevel);if(e===null)throw new Error("Assertion failed: Expected the top-level package to have been registered");if(t.findPackageLocator(e.packageLocation)===null)throw new Error("Assertion failed: Expected the top-level package to have a physical locator");let o=ue.toPortablePath(e.packageLocation.slice(0,-1)),a=new Map,n={children:new Map},u=t.getDependencyTreeRoots(),A=new Map,p=new Set,h=(v,x)=>{let C=gA(v);if(p.has(C))return;p.add(C);let R=t.getPackageInformation(v);if(R){let L=x?gA(x):"";if(gA(v)!==L&&R.linkType==="SOFT"&&!v.reference.startsWith("link:")&&!_q(R,v,t,o)){let U=yIe(R,v,t);(!A.get(U)||v.reference.startsWith("workspace:"))&&A.set(U,v)}for(let[U,J]of R.packageDependencies)J!==null&&(R.packagePeers.has(U)||h(t.getLocator(U,J),v))}};for(let v of u)h(v,null);let E=o.split(V.sep);for(let v of A.values()){let x=t.getPackageInformation(v),R=ue.toPortablePath(x.packageLocation.slice(0,-1)).split(V.sep).slice(E.length),L=n;for(let U of R){let J=L.children.get(U);J||(J={children:new Map},L.children.set(U,J)),L=J}L.workspaceLocator=v}let I=(v,x)=>{if(v.workspaceLocator){let C=gA(x),R=a.get(C);R||(R=new Set,a.set(C,R)),R.add(v.workspaceLocator)}for(let C of v.children.values())I(C,v.workspaceLocator||x)};for(let v of n.children.values())I(v,n.workspaceLocator);return a},dIt=(t,e)=>{let r=[],o=!1,a=new Map,n=gIt(t),u=t.getPackageInformation(t.topLevel);if(u===null)throw new Error("Assertion failed: Expected the top-level package to have been registered");let A=t.findPackageLocator(u.packageLocation);if(A===null)throw new Error("Assertion failed: Expected the top-level package to have a physical locator");let p=ue.toPortablePath(u.packageLocation.slice(0,-1)),h={name:A.name,identName:A.name,reference:A.reference,peerNames:u.packagePeers,dependencies:new Set,dependencyKind:1},E=new Map,I=(x,C)=>`${gA(C)}:${x}`,v=(x,C,R,L,U,J,te,ae)=>{let fe=I(x,R),ce=E.get(fe),me=!!ce;!me&&R.name===A.name&&R.reference===A.reference&&(ce=h,E.set(fe,h));let he=_q(C,R,t,p);if(!ce){let le=0;he?le=2:C.linkType==="SOFT"&&R.name.endsWith(v0)&&(le=1),ce={name:x,identName:R.name,reference:R.reference,dependencies:new Set,peerNames:le===1?new Set:C.packagePeers,dependencyKind:le},E.set(fe,ce)}let Be;if(he?Be=2:U.linkType==="SOFT"?Be=1:Be=0,ce.hoistPriority=Math.max(ce.hoistPriority||0,Be),ae&&!he){let le=gA({name:L.identName,reference:L.reference}),ne=a.get(le)||new Set;a.set(le,ne),ne.add(ce.name)}let we=new Map(C.packageDependencies);if(e.project){let le=e.project.workspacesByCwd.get(ue.toPortablePath(C.packageLocation.slice(0,-1)));if(le){let ne=new Set([...Array.from(le.manifest.peerDependencies.values(),ee=>W.stringifyIdent(ee)),...Array.from(le.manifest.peerDependenciesMeta.keys())]);for(let ee of ne)we.has(ee)||(we.set(ee,J.get(ee)||null),ce.peerNames.add(ee))}}let g=gA({name:R.name.replace(v0,""),reference:R.reference}),Ee=n.get(g);if(Ee)for(let le of Ee)we.set(`${le.name}${v0}`,le.reference);(C!==U||C.linkType!=="SOFT"||!he&&(!e.selfReferencesByCwd||e.selfReferencesByCwd.get(te)))&&L.dependencies.add(ce);let Se=R!==A&&C.linkType==="SOFT"&&!R.name.endsWith(v0)&&!he;if(!me&&!Se){let le=new Map;for(let[ne,ee]of we)if(ee!==null){let Ie=t.getLocator(ne,ee),Fe=t.getLocator(ne.replace(v0,""),ee),At=t.getPackageInformation(Fe);if(At===null)throw new Error("Assertion failed: Expected the package to have been registered");let H=_q(At,Ie,t,p);if(e.validateExternalSoftLinks&&e.project&&H){At.packageDependencies.size>0&&(o=!0);for(let[He,Te]of At.packageDependencies)if(Te!==null){let Je=W.parseLocator(Array.isArray(Te)?`${Te[0]}@${Te[1]}`:`${He}@${Te}`);if(gA(Je)!==gA(Ie)){let qe=we.get(He);if(qe){let b=W.parseLocator(Array.isArray(qe)?`${qe[0]}@${qe[1]}`:`${He}@${qe}`);mIe(b,Je)||r.push({messageName:71,text:`Cannot link ${W.prettyIdent(e.project.configuration,W.parseIdent(Ie.name))} into ${W.prettyLocator(e.project.configuration,W.parseLocator(`${R.name}@${R.reference}`))} dependency ${W.prettyLocator(e.project.configuration,Je)} conflicts with parent dependency ${W.prettyLocator(e.project.configuration,b)}`})}else{let b=le.get(He);if(b){let w=b.target,P=W.parseLocator(Array.isArray(w)?`${w[0]}@${w[1]}`:`${He}@${w}`);mIe(P,Je)||r.push({messageName:71,text:`Cannot link ${W.prettyIdent(e.project.configuration,W.parseIdent(Ie.name))} into ${W.prettyLocator(e.project.configuration,W.parseLocator(`${R.name}@${R.reference}`))} dependency ${W.prettyLocator(e.project.configuration,Je)} conflicts with dependency ${W.prettyLocator(e.project.configuration,P)} from sibling portal ${W.prettyIdent(e.project.configuration,W.parseIdent(b.portal.name))}`})}else le.set(He,{target:Je.reference,portal:Ie})}}}}let at=e.hoistingLimitsByCwd?.get(te),Re=H?te:V.relative(p,ue.toPortablePath(At.packageLocation))||Bt.dot,ke=e.hoistingLimitsByCwd?.get(Re);v(ne,At,Ie,ce,C,we,Re,at==="dependencies"||ke==="dependencies"||ke==="workspaces")}}};return v(A.name,u,A,h,u,u.packageDependencies,Bt.dot,!1),{packageTree:h,hoistingLimits:a,errors:r,preserveSymlinksRequired:o}};function yIe(t,e,r){let o=r.resolveVirtual&&e.reference&&e.reference.startsWith("virtual:")?r.resolveVirtual(t.packageLocation):t.packageLocation;return ue.toPortablePath(o||t.packageLocation)}function mIt(t,e,r){let o=e.getLocator(t.name.replace(v0,""),t.reference),a=e.getPackageInformation(o);if(a===null)throw new Error("Assertion failed: Expected the package to be registered");return r.pnpifyFs?{linkType:"SOFT",target:ue.toPortablePath(a.packageLocation)}:{linkType:a.linkType,target:yIe(a,t,e)}}var yIt=(t,e,r)=>{let o=new Map,a=(E,I,v)=>{let{linkType:x,target:C}=mIt(E,t,r);return{locator:gA(E),nodePath:I,target:C,linkType:x,aliases:v}},n=E=>{let[I,v]=E.split("/");return v?{scope:I,name:v}:{scope:null,name:I}},u=new Set,A=(E,I,v)=>{if(u.has(E))return;u.add(E);let x=Array.from(E.references).sort().join("#");for(let C of E.dependencies){let R=Array.from(C.references).sort().join("#");if(C.identName===E.identName.replace(v0,"")&&R===x)continue;let L=Array.from(C.references).sort(),U={name:C.identName,reference:L[0]},{name:J,scope:te}=n(C.name),ae=te?[te,J]:[J],fe=V.join(I,dIe),ce=V.join(fe,...ae),me=`${v}/${U.name}`,he=a(U,v,L.slice(1)),Be=!1;if(he.linkType==="SOFT"&&r.project){let we=r.project.workspacesByCwd.get(he.target.slice(0,-1));Be=!!(we&&!we.manifest.name)}if(!C.name.endsWith(v0)&&!Be){let we=o.get(ce);if(we){if(we.dirList)throw new Error(`Assertion failed: ${ce} cannot merge dir node with leaf node`);{let Se=W.parseLocator(we.locator),le=W.parseLocator(he.locator);if(we.linkType!==he.linkType)throw new Error(`Assertion failed: ${ce} cannot merge nodes with different link types ${we.nodePath}/${W.stringifyLocator(Se)} and ${v}/${W.stringifyLocator(le)}`);if(Se.identHash!==le.identHash)throw new Error(`Assertion failed: ${ce} cannot merge nodes with different idents ${we.nodePath}/${W.stringifyLocator(Se)} and ${v}/s${W.stringifyLocator(le)}`);he.aliases=[...he.aliases,...we.aliases,W.parseLocator(we.locator).reference]}}o.set(ce,he);let g=ce.split("/"),Ee=g.indexOf(dIe);for(let Se=g.length-1;Ee>=0&&Se>Ee;Se--){let le=ue.toPortablePath(g.slice(0,Se).join(V.sep)),ne=g[Se],ee=o.get(le);if(!ee)o.set(le,{dirList:new Set([ne])});else if(ee.dirList){if(ee.dirList.has(ne))break;ee.dirList.add(ne)}}}A(C,he.linkType==="SOFT"?he.target:ce,me)}},p=a({name:e.name,reference:Array.from(e.references)[0]},"",[]),h=p.target;return o.set(h,p),A(e,h,""),o};Ye();Ye();St();St();nA();Nl();var oj={};Vt(oj,{PnpInstaller:()=>mm,PnpLinker:()=>P0,UnplugCommand:()=>x0,default:()=>VIt,getPnpPath:()=>b0,jsInstallUtils:()=>yA,pnpUtils:()=>av,quotePathIfNeeded:()=>r1e});St();var t1e=ve("url");Ye();Ye();St();St();var EIe={["DEFAULT"]:{collapsed:!1,next:{["*"]:"DEFAULT"}},["TOP_LEVEL"]:{collapsed:!1,next:{fallbackExclusionList:"FALLBACK_EXCLUSION_LIST",packageRegistryData:"PACKAGE_REGISTRY_DATA",["*"]:"DEFAULT"}},["FALLBACK_EXCLUSION_LIST"]:{collapsed:!1,next:{["*"]:"FALLBACK_EXCLUSION_ENTRIES"}},["FALLBACK_EXCLUSION_ENTRIES"]:{collapsed:!0,next:{["*"]:"FALLBACK_EXCLUSION_DATA"}},["FALLBACK_EXCLUSION_DATA"]:{collapsed:!0,next:{["*"]:"DEFAULT"}},["PACKAGE_REGISTRY_DATA"]:{collapsed:!1,next:{["*"]:"PACKAGE_REGISTRY_ENTRIES"}},["PACKAGE_REGISTRY_ENTRIES"]:{collapsed:!0,next:{["*"]:"PACKAGE_STORE_DATA"}},["PACKAGE_STORE_DATA"]:{collapsed:!1,next:{["*"]:"PACKAGE_STORE_ENTRIES"}},["PACKAGE_STORE_ENTRIES"]:{collapsed:!0,next:{["*"]:"PACKAGE_INFORMATION_DATA"}},["PACKAGE_INFORMATION_DATA"]:{collapsed:!1,next:{packageDependencies:"PACKAGE_DEPENDENCIES",["*"]:"DEFAULT"}},["PACKAGE_DEPENDENCIES"]:{collapsed:!1,next:{["*"]:"PACKAGE_DEPENDENCY"}},["PACKAGE_DEPENDENCY"]:{collapsed:!0,next:{["*"]:"DEFAULT"}}};function EIt(t,e,r){let o="";o+="[";for(let a=0,n=t.length;a"u"||(A!==0&&(a+=", "),a+=JSON.stringify(p),a+=": ",a+=EQ(p,h,e,r).replace(/^ +/g,""),A+=1)}return a+="}",a}function IIt(t,e,r){let o=Object.keys(t),a=`${r} `,n="";n+=r,n+=`{ +`;let u=0;for(let A=0,p=o.length;A"u"||(u!==0&&(n+=",",n+=` +`),n+=a,n+=JSON.stringify(h),n+=": ",n+=EQ(h,E,e,a).replace(/^ +/g,""),u+=1)}return u!==0&&(n+=` +`),n+=r,n+="}",n}function EQ(t,e,r,o){let{next:a}=EIe[r],n=a[t]||a["*"];return CIe(e,n,o)}function CIe(t,e,r){let{collapsed:o}=EIe[e];return Array.isArray(t)?o?EIt(t,e,r):CIt(t,e,r):typeof t=="object"&&t!==null?o?wIt(t,e,r):IIt(t,e,r):JSON.stringify(t)}function wIe(t){return CIe(t,"TOP_LEVEL","")}function XB(t,e){let r=Array.from(t);Array.isArray(e)||(e=[e]);let o=[];for(let n of e)o.push(r.map(u=>n(u)));let a=r.map((n,u)=>u);return a.sort((n,u)=>{for(let A of o){let p=A[n]A[u]?1:0;if(p!==0)return p}return 0}),a.map(n=>r[n])}function BIt(t){let e=new Map,r=XB(t.fallbackExclusionList||[],[({name:o,reference:a})=>o,({name:o,reference:a})=>a]);for(let{name:o,reference:a}of r){let n=e.get(o);typeof n>"u"&&e.set(o,n=new Set),n.add(a)}return Array.from(e).map(([o,a])=>[o,Array.from(a)])}function vIt(t){return XB(t.fallbackPool||[],([e])=>e)}function DIt(t){let e=[];for(let[r,o]of XB(t.packageRegistry,([a])=>a===null?"0":`1${a}`)){let a=[];e.push([r,a]);for(let[n,{packageLocation:u,packageDependencies:A,packagePeers:p,linkType:h,discardFromLookup:E}]of XB(o,([I])=>I===null?"0":`1${I}`)){let I=[];r!==null&&n!==null&&!A.has(r)&&I.push([r,n]);for(let[C,R]of XB(A.entries(),([L])=>L))I.push([C,R]);let v=p&&p.size>0?Array.from(p):void 0,x=E||void 0;a.push([n,{packageLocation:u,packageDependencies:I,packagePeers:v,linkType:h,discardFromLookup:x}])}}return e}function ZB(t){return{__info:["This file is automatically generated. Do not touch it, or risk","your modifications being lost."],dependencyTreeRoots:t.dependencyTreeRoots,enableTopLevelFallback:t.enableTopLevelFallback||!1,ignorePatternData:t.ignorePattern||null,fallbackExclusionList:BIt(t),fallbackPool:vIt(t),packageRegistryData:DIt(t)}}var vIe=$e(BIe());function DIe(t,e){return[t?`${t} +`:"",`/* eslint-disable */ +`,`"use strict"; +`,` +`,e,` +`,(0,vIe.default)()].join("")}function SIt(t){return JSON.stringify(t,null,2)}function PIt(t){return`'${t.replace(/\\/g,"\\\\").replace(/'/g,"\\'").replace(/\n/g,`\\ +`)}'`}function bIt(t){return[`const RAW_RUNTIME_STATE = +`,`${PIt(wIe(t))}; + +`,`function $$SETUP_STATE(hydrateRuntimeState, basePath) { +`,` return hydrateRuntimeState(JSON.parse(RAW_RUNTIME_STATE), {basePath: basePath || __dirname}); +`,`} +`].join("")}function xIt(){return[`function $$SETUP_STATE(hydrateRuntimeState, basePath) { +`,` const fs = require('fs'); +`,` const path = require('path'); +`,` const pnpDataFilepath = path.resolve(__dirname, ${JSON.stringify(dr.pnpData)}); +`,` return hydrateRuntimeState(JSON.parse(fs.readFileSync(pnpDataFilepath, 'utf8')), {basePath: basePath || __dirname}); +`,`} +`].join("")}function SIe(t){let e=ZB(t),r=bIt(e);return DIe(t.shebang,r)}function PIe(t){let e=ZB(t),r=xIt(),o=DIe(t.shebang,r);return{dataFile:SIt(e),loaderFile:o}}St();function jq(t,{basePath:e}){let r=ue.toPortablePath(e),o=V.resolve(r),a=t.ignorePatternData!==null?new RegExp(t.ignorePatternData):null,n=new Map,u=new Map(t.packageRegistryData.map(([I,v])=>[I,new Map(v.map(([x,C])=>{if(I===null!=(x===null))throw new Error("Assertion failed: The name and reference should be null, or neither should");let R=C.discardFromLookup??!1,L={name:I,reference:x},U=n.get(C.packageLocation);U?(U.discardFromLookup=U.discardFromLookup&&R,R||(U.locator=L)):n.set(C.packageLocation,{locator:L,discardFromLookup:R});let J=null;return[x,{packageDependencies:new Map(C.packageDependencies),packagePeers:new Set(C.packagePeers),linkType:C.linkType,discardFromLookup:R,get packageLocation(){return J||(J=V.join(o,C.packageLocation))}}]}))])),A=new Map(t.fallbackExclusionList.map(([I,v])=>[I,new Set(v)])),p=new Map(t.fallbackPool),h=t.dependencyTreeRoots,E=t.enableTopLevelFallback;return{basePath:r,dependencyTreeRoots:h,enableTopLevelFallback:E,fallbackExclusionList:A,fallbackPool:p,ignorePattern:a,packageLocatorsByLocations:n,packageRegistry:u}}St();St();var np=ve("module"),dm=ve("url"),$q=ve("util");var Mo=ve("url");var QIe=$e(ve("assert"));var Gq=Array.isArray,$B=JSON.stringify,ev=Object.getOwnPropertyNames,hm=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),Yq=(t,e)=>RegExp.prototype.exec.call(t,e),Wq=(t,...e)=>RegExp.prototype[Symbol.replace].apply(t,e),D0=(t,...e)=>String.prototype.endsWith.apply(t,e),Kq=(t,...e)=>String.prototype.includes.apply(t,e),Vq=(t,...e)=>String.prototype.lastIndexOf.apply(t,e),tv=(t,...e)=>String.prototype.indexOf.apply(t,e),bIe=(t,...e)=>String.prototype.replace.apply(t,e),S0=(t,...e)=>String.prototype.slice.apply(t,e),dA=(t,...e)=>String.prototype.startsWith.apply(t,e),xIe=Map,kIe=JSON.parse;function rv(t,e,r){return class extends r{constructor(...o){super(e(...o)),this.code=t,this.name=`${r.name} [${t}]`}}}var FIe=rv("ERR_PACKAGE_IMPORT_NOT_DEFINED",(t,e,r)=>`Package import specifier "${t}" is not defined${e?` in package ${e}package.json`:""} imported from ${r}`,TypeError),Jq=rv("ERR_INVALID_MODULE_SPECIFIER",(t,e,r=void 0)=>`Invalid module "${t}" ${e}${r?` imported from ${r}`:""}`,TypeError),RIe=rv("ERR_INVALID_PACKAGE_TARGET",(t,e,r,o=!1,a=void 0)=>{let n=typeof r=="string"&&!o&&r.length&&!dA(r,"./");return e==="."?((0,QIe.default)(o===!1),`Invalid "exports" main target ${$B(r)} defined in the package config ${t}package.json${a?` imported from ${a}`:""}${n?'; targets must start with "./"':""}`):`Invalid "${o?"imports":"exports"}" target ${$B(r)} defined for '${e}' in the package config ${t}package.json${a?` imported from ${a}`:""}${n?'; targets must start with "./"':""}`},Error),nv=rv("ERR_INVALID_PACKAGE_CONFIG",(t,e,r)=>`Invalid package config ${t}${e?` while importing ${e}`:""}${r?`. ${r}`:""}`,Error),TIe=rv("ERR_PACKAGE_PATH_NOT_EXPORTED",(t,e,r=void 0)=>e==="."?`No "exports" main defined in ${t}package.json${r?` imported from ${r}`:""}`:`Package subpath '${e}' is not defined by "exports" in ${t}package.json${r?` imported from ${r}`:""}`,Error);var wQ=ve("url");function NIe(t,e){let r=Object.create(null);for(let o=0;oe):t+e}iv(r,t,o,u,a)}Yq(OIe,S0(t,2))!==null&&iv(r,t,o,u,a);let p=new URL(t,o),h=p.pathname,E=new URL(".",o).pathname;if(dA(h,E)||iv(r,t,o,u,a),e==="")return p;if(Yq(OIe,e)!==null){let I=n?bIe(r,"*",()=>e):r+e;FIt(I,o,u,a)}return n?new URL(Wq(MIe,p.href,()=>e)):new URL(e,p)}function TIt(t){let e=+t;return`${e}`!==t?!1:e>=0&&e<4294967295}function GC(t,e,r,o,a,n,u,A){if(typeof e=="string")return RIt(e,r,o,t,a,n,u,A);if(Gq(e)){if(e.length===0)return null;let p;for(let h=0;hn?-1:n>a||r===-1?1:o===-1||t.length>e.length?-1:e.length>t.length?1:0}function NIt(t,e,r){if(typeof t=="string"||Gq(t))return!0;if(typeof t!="object"||t===null)return!1;let o=ev(t),a=!1,n=0;for(let u=0;u=h.length&&D0(e,I)&&_Ie(n,h)===1&&Vq(h,"*")===E&&(n=h,u=S0(e,E,e.length-I.length))}}if(n){let p=r[n],h=GC(t,p,u,n,o,!0,!1,a);return h==null&&zq(e,t,o),h}zq(e,t,o)}function qIe({name:t,base:e,conditions:r,readFileSyncFn:o}){if(t==="#"||dA(t,"#/")||D0(t,"/")){let u="is not a valid internal imports specifier name";throw new Jq(t,u,(0,Mo.fileURLToPath)(e))}let a,n=LIe(e,o);if(n.exists){a=(0,Mo.pathToFileURL)(n.pjsonPath);let u=n.imports;if(u)if(hm(u,t)&&!Kq(t,"*")){let A=GC(a,u[t],"",t,e,!1,!0,r);if(A!=null)return A}else{let A="",p,h=ev(u);for(let E=0;E=I.length&&D0(t,x)&&_Ie(A,I)===1&&Vq(I,"*")===v&&(A=I,p=S0(t,v,t.length-x.length))}}if(A){let E=u[A],I=GC(a,E,p,A,e,!0,!0,r);if(I!=null)return I}}}QIt(t,a,e)}St();var OIt=new Set(["BUILTIN_NODE_RESOLUTION_FAILED","MISSING_DEPENDENCY","MISSING_PEER_DEPENDENCY","QUALIFIED_PATH_RESOLUTION_FAILED","UNDECLARED_DEPENDENCY"]);function $i(t,e,r={},o){o??=OIt.has(t)?"MODULE_NOT_FOUND":t;let a={configurable:!0,writable:!0,enumerable:!1};return Object.defineProperties(new Error(e),{code:{...a,value:o},pnpCode:{...a,value:t},data:{...a,value:r}})}function au(t){return ue.normalize(ue.fromPortablePath(t))}var WIe=$e(GIe());function KIe(t){return MIt(),Zq[t]}var Zq;function MIt(){Zq||(Zq={"--conditions":[],...YIe(UIt()),...YIe(process.execArgv)})}function YIe(t){return(0,WIe.default)({"--conditions":[String],"-C":"--conditions"},{argv:t,permissive:!0})}function UIt(){let t=[],e=_It(process.env.NODE_OPTIONS||"",t);return t.length,e}function _It(t,e){let r=[],o=!1,a=!0;for(let n=0;nparseInt(t,10)),VIe=mA>19||mA===19&&gm>=2||mA===18&&gm>=13,Bzt=mA===20&&gm<6||mA===19&&gm>=3,vzt=mA>19||mA===19&&gm>=6,Dzt=mA>=21||mA===20&&gm>=10||mA===18&&gm>=19;function JIe(t){if(process.env.WATCH_REPORT_DEPENDENCIES&&process.send)if(t=t.map(e=>ue.fromPortablePath(mi.resolveVirtual(ue.toPortablePath(e)))),VIe)process.send({"watch:require":t});else for(let e of t)process.send({"watch:require":e})}function ej(t,e){let r=Number(process.env.PNP_ALWAYS_WARN_ON_FALLBACK)>0,o=Number(process.env.PNP_DEBUG_LEVEL),a=/^(?![a-zA-Z]:[\\/]|\\\\|\.{0,2}(?:\/|$))((?:node:)?(?:@[^/]+\/)?[^/]+)\/*(.*|)$/,n=/^(\/|\.{1,2}(\/|$))/,u=/\/$/,A=/^\.{0,2}\//,p={name:null,reference:null},h=[],E=new Set;if(t.enableTopLevelFallback===!0&&h.push(p),e.compatibilityMode!==!1)for(let Re of["react-scripts","gatsby"]){let ke=t.packageRegistry.get(Re);if(ke)for(let xe of ke.keys()){if(xe===null)throw new Error("Assertion failed: This reference shouldn't be null");h.push({name:Re,reference:xe})}}let{ignorePattern:I,packageRegistry:v,packageLocatorsByLocations:x}=t;function C(Re,ke){return{fn:Re,args:ke,error:null,result:null}}function R(Re){let ke=process.stderr?.hasColors?.()??process.stdout.isTTY,xe=(Je,qe)=>`\x1B[${Je}m${qe}\x1B[0m`,He=Re.error;console.error(He?xe("31;1",`\u2716 ${Re.error?.message.replace(/\n.*/s,"")}`):xe("33;1","\u203C Resolution")),Re.args.length>0&&console.error();for(let Je of Re.args)console.error(` ${xe("37;1","In \u2190")} ${(0,$q.inspect)(Je,{colors:ke,compact:!0})}`);Re.result&&(console.error(),console.error(` ${xe("37;1","Out \u2192")} ${(0,$q.inspect)(Re.result,{colors:ke,compact:!0})}`));let Te=new Error().stack.match(/(?<=^ +)at.*/gm)?.slice(2)??[];if(Te.length>0){console.error();for(let Je of Te)console.error(` ${xe("38;5;244",Je)}`)}console.error()}function L(Re,ke){if(e.allowDebug===!1)return ke;if(Number.isFinite(o)){if(o>=2)return(...xe)=>{let He=C(Re,xe);try{return He.result=ke(...xe)}catch(Te){throw He.error=Te}finally{R(He)}};if(o>=1)return(...xe)=>{try{return ke(...xe)}catch(He){let Te=C(Re,xe);throw Te.error=He,R(Te),He}}}return ke}function U(Re){let ke=g(Re);if(!ke)throw $i("INTERNAL","Couldn't find a matching entry in the dependency tree for the specified parent (this is probably an internal error)");return ke}function J(Re){if(Re.name===null)return!0;for(let ke of t.dependencyTreeRoots)if(ke.name===Re.name&&ke.reference===Re.reference)return!0;return!1}let te=new Set(["node","require",...KIe("--conditions")]);function ae(Re,ke=te,xe){let He=le(V.join(Re,"internal.js"),{resolveIgnored:!0,includeDiscardFromLookup:!0});if(He===null)throw $i("INTERNAL",`The locator that owns the "${Re}" path can't be found inside the dependency tree (this is probably an internal error)`);let{packageLocation:Te}=U(He),Je=V.join(Te,dr.manifest);if(!e.fakeFs.existsSync(Je))return null;let qe=JSON.parse(e.fakeFs.readFileSync(Je,"utf8"));if(qe.exports==null)return null;let b=V.contains(Te,Re);if(b===null)throw $i("INTERNAL","unqualifiedPath doesn't contain the packageLocation (this is probably an internal error)");b!=="."&&!A.test(b)&&(b=`./${b}`);try{let w=HIe({packageJSONUrl:(0,dm.pathToFileURL)(ue.fromPortablePath(Je)),packageSubpath:b,exports:qe.exports,base:xe?(0,dm.pathToFileURL)(ue.fromPortablePath(xe)):null,conditions:ke});return ue.toPortablePath((0,dm.fileURLToPath)(w))}catch(w){throw $i("EXPORTS_RESOLUTION_FAILED",w.message,{unqualifiedPath:au(Re),locator:He,pkgJson:qe,subpath:au(b),conditions:ke},w.code)}}function fe(Re,ke,{extensions:xe}){let He;try{ke.push(Re),He=e.fakeFs.statSync(Re)}catch{}if(He&&!He.isDirectory())return e.fakeFs.realpathSync(Re);if(He&&He.isDirectory()){let Te;try{Te=JSON.parse(e.fakeFs.readFileSync(V.join(Re,dr.manifest),"utf8"))}catch{}let Je;if(Te&&Te.main&&(Je=V.resolve(Re,Te.main)),Je&&Je!==Re){let qe=fe(Je,ke,{extensions:xe});if(qe!==null)return qe}}for(let Te=0,Je=xe.length;Te{let b=JSON.stringify(qe.name);if(He.has(b))return;He.add(b);let w=Ee(qe);for(let P of w)if(U(P).packagePeers.has(Re))Te(P);else{let F=xe.get(P.name);typeof F>"u"&&xe.set(P.name,F=new Set),F.add(P.reference)}};Te(ke);let Je=[];for(let qe of[...xe.keys()].sort())for(let b of[...xe.get(qe)].sort())Je.push({name:qe,reference:b});return Je}function le(Re,{resolveIgnored:ke=!1,includeDiscardFromLookup:xe=!1}={}){if(he(Re)&&!ke)return null;let He=V.relative(t.basePath,Re);He.match(n)||(He=`./${He}`),He.endsWith("/")||(He=`${He}/`);do{let Te=x.get(He);if(typeof Te>"u"||Te.discardFromLookup&&!xe){He=He.substring(0,He.lastIndexOf("/",He.length-2)+1);continue}return Te.locator}while(He!=="");return null}function ne(Re){try{return e.fakeFs.readFileSync(ue.toPortablePath(Re),"utf8")}catch(ke){if(ke.code==="ENOENT")return;throw ke}}function ee(Re,ke,{considerBuiltins:xe=!0}={}){if(Re.startsWith("#"))throw new Error("resolveToUnqualified can not handle private import mappings");if(Re==="pnpapi")return ue.toPortablePath(e.pnpapiResolution);if(xe&&(0,np.isBuiltin)(Re))return null;let He=au(Re),Te=ke&&au(ke);if(ke&&he(ke)&&(!V.isAbsolute(Re)||le(Re)===null)){let b=me(Re,ke);if(b===!1)throw $i("BUILTIN_NODE_RESOLUTION_FAILED",`The builtin node resolution algorithm was unable to resolve the requested module (it didn't go through the pnp resolver because the issuer was explicitely ignored by the regexp) + +Require request: "${He}" +Required by: ${Te} +`,{request:He,issuer:Te});return ue.toPortablePath(b)}let Je,qe=Re.match(a);if(qe){if(!ke)throw $i("API_ERROR","The resolveToUnqualified function must be called with a valid issuer when the path isn't a builtin nor absolute",{request:He,issuer:Te});let[,b,w]=qe,P=le(ke);if(!P){let Ne=me(Re,ke);if(Ne===!1)throw $i("BUILTIN_NODE_RESOLUTION_FAILED",`The builtin node resolution algorithm was unable to resolve the requested module (it didn't go through the pnp resolver because the issuer doesn't seem to be part of the Yarn-managed dependency tree). + +Require path: "${He}" +Required by: ${Te} +`,{request:He,issuer:Te});return ue.toPortablePath(Ne)}let F=U(P).packageDependencies.get(b),z=null;if(F==null&&P.name!==null){let Ne=t.fallbackExclusionList.get(P.name);if(!Ne||!Ne.has(P.reference)){for(let dt=0,jt=h.length;dtJ(ot))?X=$i("MISSING_PEER_DEPENDENCY",`${P.name} tried to access ${b} (a peer dependency) but it isn't provided by your application; this makes the require call ambiguous and unsound. + +Required package: ${b}${b!==He?` (via "${He}")`:""} +Required by: ${P.name}@${P.reference} (via ${Te}) +${Ne.map(ot=>`Ancestor breaking the chain: ${ot.name}@${ot.reference} +`).join("")} +`,{request:He,issuer:Te,issuerLocator:Object.assign({},P),dependencyName:b,brokenAncestors:Ne}):X=$i("MISSING_PEER_DEPENDENCY",`${P.name} tried to access ${b} (a peer dependency) but it isn't provided by its ancestors; this makes the require call ambiguous and unsound. + +Required package: ${b}${b!==He?` (via "${He}")`:""} +Required by: ${P.name}@${P.reference} (via ${Te}) + +${Ne.map(ot=>`Ancestor breaking the chain: ${ot.name}@${ot.reference} +`).join("")} +`,{request:He,issuer:Te,issuerLocator:Object.assign({},P),dependencyName:b,brokenAncestors:Ne})}else F===void 0&&(!xe&&(0,np.isBuiltin)(Re)?J(P)?X=$i("UNDECLARED_DEPENDENCY",`Your application tried to access ${b}. While this module is usually interpreted as a Node builtin, your resolver is running inside a non-Node resolution context where such builtins are ignored. Since ${b} isn't otherwise declared in your dependencies, this makes the require call ambiguous and unsound. + +Required package: ${b}${b!==He?` (via "${He}")`:""} +Required by: ${Te} +`,{request:He,issuer:Te,dependencyName:b}):X=$i("UNDECLARED_DEPENDENCY",`${P.name} tried to access ${b}. While this module is usually interpreted as a Node builtin, your resolver is running inside a non-Node resolution context where such builtins are ignored. Since ${b} isn't otherwise declared in ${P.name}'s dependencies, this makes the require call ambiguous and unsound. + +Required package: ${b}${b!==He?` (via "${He}")`:""} +Required by: ${Te} +`,{request:He,issuer:Te,issuerLocator:Object.assign({},P),dependencyName:b}):J(P)?X=$i("UNDECLARED_DEPENDENCY",`Your application tried to access ${b}, but it isn't declared in your dependencies; this makes the require call ambiguous and unsound. + +Required package: ${b}${b!==He?` (via "${He}")`:""} +Required by: ${Te} +`,{request:He,issuer:Te,dependencyName:b}):X=$i("UNDECLARED_DEPENDENCY",`${P.name} tried to access ${b}, but it isn't declared in its dependencies; this makes the require call ambiguous and unsound. + +Required package: ${b}${b!==He?` (via "${He}")`:""} +Required by: ${P.name}@${P.reference} (via ${Te}) +`,{request:He,issuer:Te,issuerLocator:Object.assign({},P),dependencyName:b}));if(F==null){if(z===null||X===null)throw X||new Error("Assertion failed: Expected an error to have been set");F=z;let Ne=X.message.replace(/\n.*/g,"");X.message=Ne,!E.has(Ne)&&o!==0&&(E.add(Ne),process.emitWarning(X))}let Z=Array.isArray(F)?{name:F[0],reference:F[1]}:{name:b,reference:F},ie=U(Z);if(!ie.packageLocation)throw $i("MISSING_DEPENDENCY",`A dependency seems valid but didn't get installed for some reason. This might be caused by a partial install, such as dev vs prod. + +Required package: ${Z.name}@${Z.reference}${Z.name!==He?` (via "${He}")`:""} +Required by: ${P.name}@${P.reference} (via ${Te}) +`,{request:He,issuer:Te,dependencyLocator:Object.assign({},Z)});let Pe=ie.packageLocation;w?Je=V.join(Pe,w):Je=Pe}else if(V.isAbsolute(Re))Je=V.normalize(Re);else{if(!ke)throw $i("API_ERROR","The resolveToUnqualified function must be called with a valid issuer when the path isn't a builtin nor absolute",{request:He,issuer:Te});let b=V.resolve(ke);ke.match(u)?Je=V.normalize(V.join(b,Re)):Je=V.normalize(V.join(V.dirname(b),Re))}return V.normalize(Je)}function Ie(Re,ke,xe=te,He){if(n.test(Re))return ke;let Te=ae(ke,xe,He);return Te?V.normalize(Te):ke}function Fe(Re,{extensions:ke=Object.keys(np.Module._extensions)}={}){let xe=[],He=fe(Re,xe,{extensions:ke});if(He)return V.normalize(He);{JIe(xe.map(qe=>ue.fromPortablePath(qe)));let Te=au(Re),Je=le(Re);if(Je){let{packageLocation:qe}=U(Je),b=!0;try{e.fakeFs.accessSync(qe)}catch(w){if(w?.code==="ENOENT")b=!1;else{let P=(w?.message??w??"empty exception thrown").replace(/^[A-Z]/,y=>y.toLowerCase());throw $i("QUALIFIED_PATH_RESOLUTION_FAILED",`Required package exists but could not be accessed (${P}). + +Missing package: ${Je.name}@${Je.reference} +Expected package location: ${au(qe)} +`,{unqualifiedPath:Te,extensions:ke})}}if(!b){let w=qe.includes("/unplugged/")?"Required unplugged package missing from disk. This may happen when switching branches without running installs (unplugged packages must be fully materialized on disk to work).":"Required package missing from disk. If you keep your packages inside your repository then restarting the Node process may be enough. Otherwise, try to run an install first.";throw $i("QUALIFIED_PATH_RESOLUTION_FAILED",`${w} + +Missing package: ${Je.name}@${Je.reference} +Expected package location: ${au(qe)} +`,{unqualifiedPath:Te,extensions:ke})}}throw $i("QUALIFIED_PATH_RESOLUTION_FAILED",`Qualified path resolution failed: we looked for the following paths, but none could be accessed. + +Source path: ${Te} +${xe.map(qe=>`Not found: ${au(qe)} +`).join("")}`,{unqualifiedPath:Te,extensions:ke})}}function At(Re,ke,xe){if(!ke)throw new Error("Assertion failed: An issuer is required to resolve private import mappings");let He=qIe({name:Re,base:(0,dm.pathToFileURL)(ue.fromPortablePath(ke)),conditions:xe.conditions??te,readFileSyncFn:ne});if(He instanceof URL)return Fe(ue.toPortablePath((0,dm.fileURLToPath)(He)),{extensions:xe.extensions});if(He.startsWith("#"))throw new Error("Mapping from one private import to another isn't allowed");return H(He,ke,xe)}function H(Re,ke,xe={}){try{if(Re.startsWith("#"))return At(Re,ke,xe);let{considerBuiltins:He,extensions:Te,conditions:Je}=xe,qe=ee(Re,ke,{considerBuiltins:He});if(Re==="pnpapi")return qe;if(qe===null)return null;let b=()=>ke!==null?he(ke):!1,w=(!He||!(0,np.isBuiltin)(Re))&&!b()?Ie(Re,qe,Je,ke):qe;return Fe(w,{extensions:Te})}catch(He){throw Object.hasOwn(He,"pnpCode")&&Object.assign(He.data,{request:au(Re),issuer:ke&&au(ke)}),He}}function at(Re){let ke=V.normalize(Re),xe=mi.resolveVirtual(ke);return xe!==ke?xe:null}return{VERSIONS:Be,topLevel:we,getLocator:(Re,ke)=>Array.isArray(ke)?{name:ke[0],reference:ke[1]}:{name:Re,reference:ke},getDependencyTreeRoots:()=>[...t.dependencyTreeRoots],getAllLocators(){let Re=[];for(let[ke,xe]of v)for(let He of xe.keys())ke!==null&&He!==null&&Re.push({name:ke,reference:He});return Re},getPackageInformation:Re=>{let ke=g(Re);if(ke===null)return null;let xe=ue.fromPortablePath(ke.packageLocation);return{...ke,packageLocation:xe}},findPackageLocator:Re=>le(ue.toPortablePath(Re)),resolveToUnqualified:L("resolveToUnqualified",(Re,ke,xe)=>{let He=ke!==null?ue.toPortablePath(ke):null,Te=ee(ue.toPortablePath(Re),He,xe);return Te===null?null:ue.fromPortablePath(Te)}),resolveUnqualified:L("resolveUnqualified",(Re,ke)=>ue.fromPortablePath(Fe(ue.toPortablePath(Re),ke))),resolveRequest:L("resolveRequest",(Re,ke,xe)=>{let He=ke!==null?ue.toPortablePath(ke):null,Te=H(ue.toPortablePath(Re),He,xe);return Te===null?null:ue.fromPortablePath(Te)}),resolveVirtual:L("resolveVirtual",Re=>{let ke=at(ue.toPortablePath(Re));return ke!==null?ue.fromPortablePath(ke):null})}}St();var zIe=(t,e,r)=>{let o=ZB(t),a=jq(o,{basePath:e}),n=ue.join(e,dr.pnpCjs);return ej(a,{fakeFs:r,pnpapiResolution:n})};var rj=$e(ZIe());qt();var yA={};Vt(yA,{checkManifestCompatibility:()=>$Ie,extractBuildRequest:()=>IQ,getExtractHint:()=>nj,hasBindingGyp:()=>ij});Ye();St();function $Ie(t){return W.isPackageCompatible(t,Ji.getArchitectureSet())}function IQ(t,e,r,{configuration:o}){let a=[];for(let n of["preinstall","install","postinstall"])e.manifest.scripts.has(n)&&a.push({type:0,script:n});return!e.manifest.scripts.has("install")&&e.misc.hasBindingGyp&&a.push({type:1,script:"node-gyp rebuild"}),a.length===0?null:t.linkType!=="HARD"?{skipped:!0,explain:n=>n.reportWarningOnce(6,`${W.prettyLocator(o,t)} lists build scripts, but is referenced through a soft link. Soft links don't support build scripts, so they'll be ignored.`)}:r&&r.built===!1?{skipped:!0,explain:n=>n.reportInfoOnce(5,`${W.prettyLocator(o,t)} lists build scripts, but its build has been explicitly disabled through configuration.`)}:!o.get("enableScripts")&&!r.built?{skipped:!0,explain:n=>n.reportWarningOnce(4,`${W.prettyLocator(o,t)} lists build scripts, but all build scripts have been disabled.`)}:$Ie(t)?{skipped:!1,directives:a}:{skipped:!0,explain:n=>n.reportWarningOnce(76,`${W.prettyLocator(o,t)} The ${Ji.getArchitectureName()} architecture is incompatible with this package, build skipped.`)}}var qIt=new Set([".exe",".bin",".h",".hh",".hpp",".c",".cc",".cpp",".java",".jar",".node"]);function nj(t){return t.packageFs.getExtractHint({relevantExtensions:qIt})}function ij(t){let e=V.join(t.prefixPath,"binding.gyp");return t.packageFs.existsSync(e)}var av={};Vt(av,{getUnpluggedPath:()=>ov});Ye();St();function ov(t,{configuration:e}){return V.resolve(e.get("pnpUnpluggedFolder"),W.slugifyLocator(t))}var jIt=new Set([W.makeIdent(null,"open").identHash,W.makeIdent(null,"opn").identHash]),P0=class{constructor(){this.mode="strict";this.pnpCache=new Map}getCustomDataKey(){return JSON.stringify({name:"PnpLinker",version:2})}supportsPackage(e,r){return this.isEnabled(r)}async findPackageLocation(e,r){if(!this.isEnabled(r))throw new Error("Assertion failed: Expected the PnP linker to be enabled");let o=b0(r.project).cjs;if(!oe.existsSync(o))throw new it(`The project in ${de.pretty(r.project.configuration,`${r.project.cwd}/package.json`,de.Type.PATH)} doesn't seem to have been installed - running an install there might help`);let a=_e.getFactoryWithDefault(this.pnpCache,o,()=>_e.dynamicRequire(o,{cachingStrategy:_e.CachingStrategy.FsTime})),n={name:W.stringifyIdent(e),reference:e.reference},u=a.getPackageInformation(n);if(!u)throw new it(`Couldn't find ${W.prettyLocator(r.project.configuration,e)} in the currently installed PnP map - running an install might help`);return ue.toPortablePath(u.packageLocation)}async findPackageLocator(e,r){if(!this.isEnabled(r))return null;let o=b0(r.project).cjs;if(!oe.existsSync(o))return null;let n=_e.getFactoryWithDefault(this.pnpCache,o,()=>_e.dynamicRequire(o,{cachingStrategy:_e.CachingStrategy.FsTime})).findPackageLocator(ue.fromPortablePath(e));return n?W.makeLocator(W.parseIdent(n.name),n.reference):null}makeInstaller(e){return new mm(e)}isEnabled(e){return!(e.project.configuration.get("nodeLinker")!=="pnp"||e.project.configuration.get("pnpMode")!==this.mode)}},mm=class{constructor(e){this.opts=e;this.mode="strict";this.asyncActions=new _e.AsyncActions(10);this.packageRegistry=new Map;this.virtualTemplates=new Map;this.isESMLoaderRequired=!1;this.customData={store:new Map};this.unpluggedPaths=new Set;this.opts=e}attachCustomData(e){this.customData=e}async installPackage(e,r,o){let a=W.stringifyIdent(e),n=e.reference,u=!!this.opts.project.tryWorkspaceByLocator(e),A=W.isVirtualLocator(e),p=e.peerDependencies.size>0&&!A,h=!p&&!u,E=!p&&e.linkType!=="SOFT",I,v;if(h||E){let te=A?W.devirtualizeLocator(e):e;I=this.customData.store.get(te.locatorHash),typeof I>"u"&&(I=await GIt(r),e.linkType==="HARD"&&this.customData.store.set(te.locatorHash,I)),I.manifest.type==="module"&&(this.isESMLoaderRequired=!0),v=this.opts.project.getDependencyMeta(te,e.version)}let x=h?IQ(e,I,v,{configuration:this.opts.project.configuration}):null,C=E?await this.unplugPackageIfNeeded(e,I,r,v,o):r.packageFs;if(V.isAbsolute(r.prefixPath))throw new Error(`Assertion failed: Expected the prefix path (${r.prefixPath}) to be relative to the parent`);let R=V.resolve(C.getRealPath(),r.prefixPath),L=sj(this.opts.project.cwd,R),U=new Map,J=new Set;if(A){for(let te of e.peerDependencies.values())U.set(W.stringifyIdent(te),null),J.add(W.stringifyIdent(te));if(!u){let te=W.devirtualizeLocator(e);this.virtualTemplates.set(te.locatorHash,{location:sj(this.opts.project.cwd,mi.resolveVirtual(R)),locator:te})}}return _e.getMapWithDefault(this.packageRegistry,a).set(n,{packageLocation:L,packageDependencies:U,packagePeers:J,linkType:e.linkType,discardFromLookup:r.discardFromLookup||!1}),{packageLocation:R,buildRequest:x}}async attachInternalDependencies(e,r){let o=this.getPackageInformation(e);for(let[a,n]of r){let u=W.areIdentsEqual(a,n)?n.reference:[W.stringifyIdent(n),n.reference];o.packageDependencies.set(W.stringifyIdent(a),u)}}async attachExternalDependents(e,r){for(let o of r)this.getDiskInformation(o).packageDependencies.set(W.stringifyIdent(e),e.reference)}async finalizeInstall(){if(this.opts.project.configuration.get("pnpMode")!==this.mode)return;let e=b0(this.opts.project);if(this.isEsmEnabled()||await oe.removePromise(e.esmLoader),this.opts.project.configuration.get("nodeLinker")!=="pnp"){await oe.removePromise(e.cjs),await oe.removePromise(e.data),await oe.removePromise(e.esmLoader),await oe.removePromise(this.opts.project.configuration.get("pnpUnpluggedFolder"));return}for(let{locator:E,location:I}of this.virtualTemplates.values())_e.getMapWithDefault(this.packageRegistry,W.stringifyIdent(E)).set(E.reference,{packageLocation:I,packageDependencies:new Map,packagePeers:new Set,linkType:"SOFT",discardFromLookup:!1});this.packageRegistry.set(null,new Map([[null,this.getPackageInformation(this.opts.project.topLevelWorkspace.anchoredLocator)]]));let r=this.opts.project.configuration.get("pnpFallbackMode"),o=this.opts.project.workspaces.map(({anchoredLocator:E})=>({name:W.stringifyIdent(E),reference:E.reference})),a=r!=="none",n=[],u=new Map,A=_e.buildIgnorePattern([".yarn/sdks/**",...this.opts.project.configuration.get("pnpIgnorePatterns")]),p=this.packageRegistry,h=this.opts.project.configuration.get("pnpShebang");if(r==="dependencies-only")for(let E of this.opts.project.storedPackages.values())this.opts.project.tryWorkspaceByLocator(E)&&n.push({name:W.stringifyIdent(E),reference:E.reference});return await this.asyncActions.wait(),await this.finalizeInstallWithPnp({dependencyTreeRoots:o,enableTopLevelFallback:a,fallbackExclusionList:n,fallbackPool:u,ignorePattern:A,packageRegistry:p,shebang:h}),{customData:this.customData}}async transformPnpSettings(e){}isEsmEnabled(){if(this.opts.project.configuration.sources.has("pnpEnableEsmLoader"))return this.opts.project.configuration.get("pnpEnableEsmLoader");if(this.isESMLoaderRequired)return!0;for(let e of this.opts.project.workspaces)if(e.manifest.type==="module")return!0;return!1}async finalizeInstallWithPnp(e){let r=b0(this.opts.project),o=await this.locateNodeModules(e.ignorePattern);if(o.length>0){this.opts.report.reportWarning(31,"One or more node_modules have been detected and will be removed. This operation may take some time.");for(let n of o)await oe.removePromise(n)}if(await this.transformPnpSettings(e),this.opts.project.configuration.get("pnpEnableInlining")){let n=SIe(e);await oe.changeFilePromise(r.cjs,n,{automaticNewlines:!0,mode:493}),await oe.removePromise(r.data)}else{let{dataFile:n,loaderFile:u}=PIe(e);await oe.changeFilePromise(r.cjs,u,{automaticNewlines:!0,mode:493}),await oe.changeFilePromise(r.data,n,{automaticNewlines:!0,mode:420})}this.isEsmEnabled()&&(this.opts.report.reportWarning(0,"ESM support for PnP uses the experimental loader API and is therefore experimental"),await oe.changeFilePromise(r.esmLoader,(0,rj.default)(),{automaticNewlines:!0,mode:420}));let a=this.opts.project.configuration.get("pnpUnpluggedFolder");if(this.unpluggedPaths.size===0)await oe.removePromise(a);else for(let n of await oe.readdirPromise(a)){let u=V.resolve(a,n);this.unpluggedPaths.has(u)||await oe.removePromise(u)}}async locateNodeModules(e){let r=[],o=e?new RegExp(e):null;for(let a of this.opts.project.workspaces){let n=V.join(a.cwd,"node_modules");if(o&&o.test(V.relative(this.opts.project.cwd,a.cwd))||!oe.existsSync(n))continue;let u=await oe.readdirPromise(n,{withFileTypes:!0}),A=u.filter(p=>!p.isDirectory()||p.name===".bin"||!p.name.startsWith("."));if(A.length===u.length)r.push(n);else for(let p of A)r.push(V.join(n,p.name))}return r}async unplugPackageIfNeeded(e,r,o,a,n){return this.shouldBeUnplugged(e,r,a)?this.unplugPackage(e,o,n):o.packageFs}shouldBeUnplugged(e,r,o){return typeof o.unplugged<"u"?o.unplugged:jIt.has(e.identHash)||e.conditions!=null?!0:r.manifest.preferUnplugged!==null?r.manifest.preferUnplugged:!!(IQ(e,r,o,{configuration:this.opts.project.configuration})?.skipped===!1||r.misc.extractHint)}async unplugPackage(e,r,o){let a=ov(e,{configuration:this.opts.project.configuration});return this.opts.project.disabledLocators.has(e.locatorHash)?new Uu(a,{baseFs:r.packageFs,pathUtils:V}):(this.unpluggedPaths.add(a),o.holdFetchResult(this.asyncActions.set(e.locatorHash,async()=>{let n=V.join(a,r.prefixPath,".ready");await oe.existsPromise(n)||(this.opts.project.storedBuildState.delete(e.locatorHash),await oe.mkdirPromise(a,{recursive:!0}),await oe.copyPromise(a,Bt.dot,{baseFs:r.packageFs,overwrite:!1}),await oe.writeFilePromise(n,""))})),new gn(a))}getPackageInformation(e){let r=W.stringifyIdent(e),o=e.reference,a=this.packageRegistry.get(r);if(!a)throw new Error(`Assertion failed: The package information store should have been available (for ${W.prettyIdent(this.opts.project.configuration,e)})`);let n=a.get(o);if(!n)throw new Error(`Assertion failed: The package information should have been available (for ${W.prettyLocator(this.opts.project.configuration,e)})`);return n}getDiskInformation(e){let r=_e.getMapWithDefault(this.packageRegistry,"@@disk"),o=sj(this.opts.project.cwd,e);return _e.getFactoryWithDefault(r,o,()=>({packageLocation:o,packageDependencies:new Map,packagePeers:new Set,linkType:"SOFT",discardFromLookup:!1}))}};function sj(t,e){let r=V.relative(t,e);return r.match(/^\.{0,2}\//)||(r=`./${r}`),r.replace(/\/?$/,"/")}async function GIt(t){let e=await Ot.tryFind(t.prefixPath,{baseFs:t.packageFs})??new Ot,r=new Set(["preinstall","install","postinstall"]);for(let o of e.scripts.keys())r.has(o)||e.scripts.delete(o);return{manifest:{scripts:e.scripts,preferUnplugged:e.preferUnplugged,type:e.type},misc:{extractHint:nj(t),hasBindingGyp:ij(t)}}}Ye();Ye();qt();var e1e=$e(Zo());var x0=class extends ut{constructor(){super(...arguments);this.all=ge.Boolean("-A,--all",!1,{description:"Unplug direct dependencies from the entire project"});this.recursive=ge.Boolean("-R,--recursive",!1,{description:"Unplug both direct and transitive dependencies"});this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.patterns=ge.Rest()}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Pt.find(r,this.context.cwd),n=await Lr.find(r);if(!a)throw new rr(o.cwd,this.context.cwd);if(r.get("nodeLinker")!=="pnp")throw new it("This command can only be used if the `nodeLinker` option is set to `pnp`");await o.restoreInstallState();let u=new Set(this.patterns),A=this.patterns.map(x=>{let C=W.parseDescriptor(x),R=C.range!=="unknown"?C:W.makeDescriptor(C,"*");if(!kr.validRange(R.range))throw new it(`The range of the descriptor patterns must be a valid semver range (${W.prettyDescriptor(r,R)})`);return L=>{let U=W.stringifyIdent(L);return!e1e.default.isMatch(U,W.stringifyIdent(R))||L.version&&!kr.satisfiesWithPrereleases(L.version,R.range)?!1:(u.delete(x),!0)}}),p=()=>{let x=[];for(let C of o.storedPackages.values())!o.tryWorkspaceByLocator(C)&&!W.isVirtualLocator(C)&&A.some(R=>R(C))&&x.push(C);return x},h=x=>{let C=new Set,R=[],L=(U,J)=>{if(C.has(U.locatorHash))return;let te=!!o.tryWorkspaceByLocator(U);if(!(J>0&&!this.recursive&&te)&&(C.add(U.locatorHash),!o.tryWorkspaceByLocator(U)&&A.some(ae=>ae(U))&&R.push(U),!(J>0&&!this.recursive)))for(let ae of U.dependencies.values()){let fe=o.storedResolutions.get(ae.descriptorHash);if(!fe)throw new Error("Assertion failed: The resolution should have been registered");let ce=o.storedPackages.get(fe);if(!ce)throw new Error("Assertion failed: The package should have been registered");L(ce,J+1)}};for(let U of x)L(U.anchoredPackage,0);return R},E,I;if(this.all&&this.recursive?(E=p(),I="the project"):this.all?(E=h(o.workspaces),I="any workspace"):(E=h([a]),I="this workspace"),u.size>1)throw new it(`Patterns ${de.prettyList(r,u,de.Type.CODE)} don't match any packages referenced by ${I}`);if(u.size>0)throw new it(`Pattern ${de.prettyList(r,u,de.Type.CODE)} doesn't match any packages referenced by ${I}`);E=_e.sortMap(E,x=>W.stringifyLocator(x));let v=await Nt.start({configuration:r,stdout:this.context.stdout,json:this.json},async x=>{for(let C of E){let R=C.version??"unknown",L=o.topLevelWorkspace.manifest.ensureDependencyMeta(W.makeDescriptor(C,R));L.unplugged=!0,x.reportInfo(0,`Will unpack ${W.prettyLocator(r,C)} to ${de.pretty(r,ov(C,{configuration:r}),de.Type.PATH)}`),x.reportJson({locator:W.stringifyLocator(C),version:R})}await o.topLevelWorkspace.persistManifest(),this.json||x.reportSeparator()});return v.hasErrors()?v.exitCode():await o.installWithNewReport({json:this.json,stdout:this.context.stdout},{cache:n})}};x0.paths=[["unplug"]],x0.usage=nt.Usage({description:"force the unpacking of a list of packages",details:"\n This command will add the selectors matching the specified patterns to the list of packages that must be unplugged when installed.\n\n A package being unplugged means that instead of being referenced directly through its archive, it will be unpacked at install time in the directory configured via `pnpUnpluggedFolder`. Note that unpacking packages this way is generally not recommended because it'll make it harder to store your packages within the repository. However, it's a good approach to quickly and safely debug some packages, and can even sometimes be required depending on the context (for example when the package contains shellscripts).\n\n Running the command will set a persistent flag inside your top-level `package.json`, in the `dependenciesMeta` field. As such, to undo its effects, you'll need to revert the changes made to the manifest and run `yarn install` to apply the modification.\n\n By default, only direct dependencies from the current workspace are affected. If `-A,--all` is set, direct dependencies from the entire project are affected. Using the `-R,--recursive` flag will affect transitive dependencies as well as direct ones.\n\n This command accepts glob patterns inside the scope and name components (not the range). Make sure to escape the patterns to prevent your own shell from trying to expand them.\n ",examples:[["Unplug the lodash dependency from the active workspace","yarn unplug lodash"],["Unplug all instances of lodash referenced by any workspace","yarn unplug lodash -A"],["Unplug all instances of lodash referenced by the active workspace and its dependencies","yarn unplug lodash -R"],["Unplug all instances of lodash, anywhere","yarn unplug lodash -AR"],["Unplug one specific version of lodash","yarn unplug lodash@1.2.3"],["Unplug all packages with the `@babel` scope","yarn unplug '@babel/*'"],["Unplug all packages (only for testing, not recommended)","yarn unplug -R '*'"]]});var b0=t=>({cjs:V.join(t.cwd,dr.pnpCjs),data:V.join(t.cwd,dr.pnpData),esmLoader:V.join(t.cwd,dr.pnpEsmLoader)}),r1e=t=>/\s/.test(t)?JSON.stringify(t):t;async function YIt(t,e,r){let o=/\s*--require\s+\S*\.pnp\.c?js\s*/g,a=/\s*--experimental-loader\s+\S*\.pnp\.loader\.mjs\s*/,n=(e.NODE_OPTIONS??"").replace(o," ").replace(a," ").trim();if(t.configuration.get("nodeLinker")!=="pnp"){e.NODE_OPTIONS=n;return}let u=b0(t),A=`--require ${r1e(ue.fromPortablePath(u.cjs))}`;oe.existsSync(u.esmLoader)&&(A=`${A} --experimental-loader ${(0,t1e.pathToFileURL)(ue.fromPortablePath(u.esmLoader)).href}`),oe.existsSync(u.cjs)&&(e.NODE_OPTIONS=n?`${A} ${n}`:A)}async function WIt(t,e){let r=b0(t);e(r.cjs),e(r.data),e(r.esmLoader),e(t.configuration.get("pnpUnpluggedFolder"))}var KIt={hooks:{populateYarnPaths:WIt,setupScriptEnvironment:YIt},configuration:{nodeLinker:{description:'The linker used for installing Node packages, one of: "pnp", "pnpm", or "node-modules"',type:"STRING",default:"pnp"},winLinkType:{description:"Whether Yarn should use Windows Junctions or symlinks when creating links on Windows.",type:"STRING",values:["junctions","symlinks"],default:"junctions"},pnpMode:{description:"If 'strict', generates standard PnP maps. If 'loose', merges them with the n_m resolution.",type:"STRING",default:"strict"},pnpShebang:{description:"String to prepend to the generated PnP script",type:"STRING",default:"#!/usr/bin/env node"},pnpIgnorePatterns:{description:"Array of glob patterns; files matching them will use the classic resolution",type:"STRING",default:[],isArray:!0},pnpEnableEsmLoader:{description:"If true, Yarn will generate an ESM loader (`.pnp.loader.mjs`). If this is not explicitly set Yarn tries to automatically detect whether ESM support is required.",type:"BOOLEAN",default:!1},pnpEnableInlining:{description:"If true, the PnP data will be inlined along with the generated loader",type:"BOOLEAN",default:!0},pnpFallbackMode:{description:"If true, the generated PnP loader will follow the top-level fallback rule",type:"STRING",default:"dependencies-only"},pnpUnpluggedFolder:{description:"Folder where the unplugged packages must be stored",type:"ABSOLUTE_PATH",default:"./.yarn/unplugged"}},linkers:[P0],commands:[x0]},VIt=KIt;var u1e=$e(a1e());qt();var pj=$e(ve("crypto")),A1e=$e(ve("fs")),f1e=1,Si="node_modules",BQ=".bin",p1e=".yarn-state.yml",A1t=1e3,hj=(o=>(o.CLASSIC="classic",o.HARDLINKS_LOCAL="hardlinks-local",o.HARDLINKS_GLOBAL="hardlinks-global",o))(hj||{}),lv=class{constructor(){this.installStateCache=new Map}getCustomDataKey(){return JSON.stringify({name:"NodeModulesLinker",version:3})}supportsPackage(e,r){return this.isEnabled(r)}async findPackageLocation(e,r){if(!this.isEnabled(r))throw new Error("Assertion failed: Expected the node-modules linker to be enabled");let o=r.project.tryWorkspaceByLocator(e);if(o)return o.cwd;let a=await _e.getFactoryWithDefault(this.installStateCache,r.project.cwd,async()=>await fj(r.project,{unrollAliases:!0}));if(a===null)throw new it("Couldn't find the node_modules state file - running an install might help (findPackageLocation)");let n=a.locatorMap.get(W.stringifyLocator(e));if(!n){let p=new it(`Couldn't find ${W.prettyLocator(r.project.configuration,e)} in the currently installed node_modules map - running an install might help`);throw p.code="LOCATOR_NOT_INSTALLED",p}let u=n.locations.sort((p,h)=>p.split(V.sep).length-h.split(V.sep).length),A=V.join(r.project.configuration.startingCwd,Si);return u.find(p=>V.contains(A,p))||n.locations[0]}async findPackageLocator(e,r){if(!this.isEnabled(r))return null;let o=await _e.getFactoryWithDefault(this.installStateCache,r.project.cwd,async()=>await fj(r.project,{unrollAliases:!0}));if(o===null)return null;let{locationRoot:a,segments:n}=vQ(V.resolve(e),{skipPrefix:r.project.cwd}),u=o.locationTree.get(a);if(!u)return null;let A=u.locator;for(let p of n){if(u=u.children.get(p),!u)break;A=u.locator||A}return W.parseLocator(A)}makeInstaller(e){return new Aj(e)}isEnabled(e){return e.project.configuration.get("nodeLinker")==="node-modules"}},Aj=class{constructor(e){this.opts=e;this.localStore=new Map;this.realLocatorChecksums=new Map;this.customData={store:new Map}}attachCustomData(e){this.customData=e}async installPackage(e,r){let o=V.resolve(r.packageFs.getRealPath(),r.prefixPath),a=this.customData.store.get(e.locatorHash);if(typeof a>"u"&&(a=await f1t(e,r),e.linkType==="HARD"&&this.customData.store.set(e.locatorHash,a)),!W.isPackageCompatible(e,this.opts.project.configuration.getSupportedArchitectures()))return{packageLocation:null,buildRequest:null};let n=new Map,u=new Set;n.has(W.stringifyIdent(e))||n.set(W.stringifyIdent(e),e.reference);let A=e;if(W.isVirtualLocator(e)){A=W.devirtualizeLocator(e);for(let E of e.peerDependencies.values())n.set(W.stringifyIdent(E),null),u.add(W.stringifyIdent(E))}let p={packageLocation:`${ue.fromPortablePath(o)}/`,packageDependencies:n,packagePeers:u,linkType:e.linkType,discardFromLookup:r.discardFromLookup??!1};this.localStore.set(e.locatorHash,{pkg:e,customPackageData:a,dependencyMeta:this.opts.project.getDependencyMeta(e,e.version),pnpNode:p});let h=r.checksum?r.checksum.substring(r.checksum.indexOf("/")+1):null;return this.realLocatorChecksums.set(A.locatorHash,h),{packageLocation:o,buildRequest:null}}async attachInternalDependencies(e,r){let o=this.localStore.get(e.locatorHash);if(typeof o>"u")throw new Error("Assertion failed: Expected information object to have been registered");for(let[a,n]of r){let u=W.areIdentsEqual(a,n)?n.reference:[W.stringifyIdent(n),n.reference];o.pnpNode.packageDependencies.set(W.stringifyIdent(a),u)}}async attachExternalDependents(e,r){throw new Error("External dependencies haven't been implemented for the node-modules linker")}async finalizeInstall(){if(this.opts.project.configuration.get("nodeLinker")!=="node-modules")return;let e=new mi({baseFs:new Jl({maxOpenFiles:80,readOnlyArchives:!0})}),r=await fj(this.opts.project),o=this.opts.project.configuration.get("nmMode");(r===null||o!==r.nmMode)&&(this.opts.project.storedBuildState.clear(),r={locatorMap:new Map,binSymlinks:new Map,locationTree:new Map,nmMode:o,mtimeMs:0});let a=new Map(this.opts.project.workspaces.map(v=>{let x=this.opts.project.configuration.get("nmHoistingLimits");try{x=_e.validateEnum(JB,v.manifest.installConfig?.hoistingLimits??x)}catch{let R=W.prettyWorkspace(this.opts.project.configuration,v);this.opts.report.reportWarning(57,`${R}: Invalid 'installConfig.hoistingLimits' value. Expected one of ${Object.values(JB).join(", ")}, using default: "${x}"`)}return[v.relativeCwd,x]})),n=new Map(this.opts.project.workspaces.map(v=>{let x=this.opts.project.configuration.get("nmSelfReferences");return x=v.manifest.installConfig?.selfReferences??x,[v.relativeCwd,x]})),u={VERSIONS:{std:1},topLevel:{name:null,reference:null},getLocator:(v,x)=>Array.isArray(x)?{name:x[0],reference:x[1]}:{name:v,reference:x},getDependencyTreeRoots:()=>this.opts.project.workspaces.map(v=>{let x=v.anchoredLocator;return{name:W.stringifyIdent(x),reference:x.reference}}),getPackageInformation:v=>{let x=v.reference===null?this.opts.project.topLevelWorkspace.anchoredLocator:W.makeLocator(W.parseIdent(v.name),v.reference),C=this.localStore.get(x.locatorHash);if(typeof C>"u")throw new Error("Assertion failed: Expected the package reference to have been registered");return C.pnpNode},findPackageLocator:v=>{let x=this.opts.project.tryWorkspaceByCwd(ue.toPortablePath(v));if(x!==null){let C=x.anchoredLocator;return{name:W.stringifyIdent(C),reference:C.reference}}throw new Error("Assertion failed: Unimplemented")},resolveToUnqualified:()=>{throw new Error("Assertion failed: Unimplemented")},resolveUnqualified:()=>{throw new Error("Assertion failed: Unimplemented")},resolveRequest:()=>{throw new Error("Assertion failed: Unimplemented")},resolveVirtual:v=>ue.fromPortablePath(mi.resolveVirtual(ue.toPortablePath(v)))},{tree:A,errors:p,preserveSymlinksRequired:h}=zB(u,{pnpifyFs:!1,validateExternalSoftLinks:!0,hoistingLimitsByCwd:a,project:this.opts.project,selfReferencesByCwd:n});if(!A){for(let{messageName:v,text:x}of p)this.opts.report.reportError(v,x);return}let E=Hq(A);await y1t(r,E,{baseFs:e,project:this.opts.project,report:this.opts.report,realLocatorChecksums:this.realLocatorChecksums,loadManifest:async v=>{let x=W.parseLocator(v),C=this.localStore.get(x.locatorHash);if(typeof C>"u")throw new Error("Assertion failed: Expected the slot to exist");return C.customPackageData.manifest}});let I=[];for(let[v,x]of E.entries()){if(m1e(v))continue;let C=W.parseLocator(v),R=this.localStore.get(C.locatorHash);if(typeof R>"u")throw new Error("Assertion failed: Expected the slot to exist");if(this.opts.project.tryWorkspaceByLocator(R.pkg))continue;let L=yA.extractBuildRequest(R.pkg,R.customPackageData,R.dependencyMeta,{configuration:this.opts.project.configuration});!L||I.push({buildLocations:x.locations,locator:C,buildRequest:L})}return h&&this.opts.report.reportWarning(72,`The application uses portals and that's why ${de.pretty(this.opts.project.configuration,"--preserve-symlinks",de.Type.CODE)} Node option is required for launching it`),{customData:this.customData,records:I}}};async function f1t(t,e){let r=await Ot.tryFind(e.prefixPath,{baseFs:e.packageFs})??new Ot,o=new Set(["preinstall","install","postinstall"]);for(let a of r.scripts.keys())o.has(a)||r.scripts.delete(a);return{manifest:{bin:r.bin,scripts:r.scripts},misc:{hasBindingGyp:yA.hasBindingGyp(e)}}}async function p1t(t,e,r,o,{installChangedByUser:a}){let n="";n+=`# Warning: This file is automatically generated. Removing it is fine, but will +`,n+=`# cause your node_modules installation to become invalidated. +`,n+=` +`,n+=`__metadata: +`,n+=` version: ${f1e} +`,n+=` nmMode: ${o.value} +`;let u=Array.from(e.keys()).sort(),A=W.stringifyLocator(t.topLevelWorkspace.anchoredLocator);for(let E of u){let I=e.get(E);n+=` +`,n+=`${JSON.stringify(E)}: +`,n+=` locations: +`;for(let v of I.locations){let x=V.contains(t.cwd,v);if(x===null)throw new Error(`Assertion failed: Expected the path to be within the project (${v})`);n+=` - ${JSON.stringify(x)} +`}if(I.aliases.length>0){n+=` aliases: +`;for(let v of I.aliases)n+=` - ${JSON.stringify(v)} +`}if(E===A&&r.size>0){n+=` bin: +`;for(let[v,x]of r){let C=V.contains(t.cwd,v);if(C===null)throw new Error(`Assertion failed: Expected the path to be within the project (${v})`);n+=` ${JSON.stringify(C)}: +`;for(let[R,L]of x){let U=V.relative(V.join(v,Si),L);n+=` ${JSON.stringify(R)}: ${JSON.stringify(U)} +`}}}}let p=t.cwd,h=V.join(p,Si,p1e);a&&await oe.removePromise(h),await oe.changeFilePromise(h,n,{automaticNewlines:!0})}async function fj(t,{unrollAliases:e=!1}={}){let r=t.cwd,o=V.join(r,Si,p1e),a;try{a=await oe.statPromise(o)}catch{}if(!a)return null;let n=Ki(await oe.readFilePromise(o,"utf8"));if(n.__metadata.version>f1e)return null;let u=n.__metadata.nmMode||"classic",A=new Map,p=new Map;delete n.__metadata;for(let[h,E]of Object.entries(n)){let I=E.locations.map(x=>V.join(r,x)),v=E.bin;if(v)for(let[x,C]of Object.entries(v)){let R=V.join(r,ue.toPortablePath(x)),L=_e.getMapWithDefault(p,R);for(let[U,J]of Object.entries(C))L.set(U,ue.toPortablePath([R,Si,J].join(V.sep)))}if(A.set(h,{target:Bt.dot,linkType:"HARD",locations:I,aliases:E.aliases||[]}),e&&E.aliases)for(let x of E.aliases){let{scope:C,name:R}=W.parseLocator(h),L=W.makeLocator(W.makeIdent(C,R),x),U=W.stringifyLocator(L);A.set(U,{target:Bt.dot,linkType:"HARD",locations:I,aliases:[]})}}return{locatorMap:A,binSymlinks:p,locationTree:h1e(A,{skipPrefix:t.cwd}),nmMode:u,mtimeMs:a.mtimeMs}}var WC=async(t,e)=>{if(t.split(V.sep).indexOf(Si)<0)throw new Error(`Assertion failed: trying to remove dir that doesn't contain node_modules: ${t}`);try{if(!e.innerLoop){let o=e.allowSymlink?await oe.statPromise(t):await oe.lstatPromise(t);if(e.allowSymlink&&!o.isDirectory()||!e.allowSymlink&&o.isSymbolicLink()){await oe.unlinkPromise(t);return}}let r=await oe.readdirPromise(t,{withFileTypes:!0});for(let o of r){let a=V.join(t,o.name);o.isDirectory()?(o.name!==Si||e&&e.innerLoop)&&await WC(a,{innerLoop:!0,contentsOnly:!1}):await oe.unlinkPromise(a)}e.contentsOnly||await oe.rmdirPromise(t)}catch(r){if(r.code!=="ENOENT"&&r.code!=="ENOTEMPTY")throw r}},l1e=4,vQ=(t,{skipPrefix:e})=>{let r=V.contains(e,t);if(r===null)throw new Error(`Assertion failed: Writing attempt prevented to ${t} which is outside project root: ${e}`);let o=r.split(V.sep).filter(p=>p!==""),a=o.indexOf(Si),n=o.slice(0,a).join(V.sep),u=V.join(e,n),A=o.slice(a);return{locationRoot:u,segments:A}},h1e=(t,{skipPrefix:e})=>{let r=new Map;if(t===null)return r;let o=()=>({children:new Map,linkType:"HARD"});for(let[a,n]of t.entries()){if(n.linkType==="SOFT"&&V.contains(e,n.target)!==null){let A=_e.getFactoryWithDefault(r,n.target,o);A.locator=a,A.linkType=n.linkType}for(let u of n.locations){let{locationRoot:A,segments:p}=vQ(u,{skipPrefix:e}),h=_e.getFactoryWithDefault(r,A,o);for(let E=0;E{if(process.platform==="win32"&&r==="junctions"){let o;try{o=await oe.lstatPromise(t)}catch{}if(!o||o.isDirectory()){await oe.symlinkPromise(t,e,"junction");return}}await oe.symlinkPromise(V.relative(V.dirname(e),t),e)};async function g1e(t,e,r){let o=V.join(t,`${pj.default.randomBytes(16).toString("hex")}.tmp`);try{await oe.writeFilePromise(o,r);try{await oe.linkPromise(o,e)}catch{}}finally{await oe.unlinkPromise(o)}}async function h1t({srcPath:t,dstPath:e,entry:r,globalHardlinksStore:o,baseFs:a,nmMode:n}){if(r.kind===d1e.FILE){if(n.value==="hardlinks-global"&&o&&r.digest){let A=V.join(o,r.digest.substring(0,2),`${r.digest.substring(2)}.dat`),p;try{let h=await oe.statPromise(A);if(h&&(!r.mtimeMs||h.mtimeMs>r.mtimeMs||h.mtimeMs(o.FILE="file",o.DIRECTORY="directory",o.SYMLINK="symlink",o))(d1e||{}),g1t=async(t,e,{baseFs:r,globalHardlinksStore:o,nmMode:a,windowsLinkType:n,packageChecksum:u})=>{await oe.mkdirPromise(t,{recursive:!0});let A=async(E=Bt.dot)=>{let I=V.join(e,E),v=await r.readdirPromise(I,{withFileTypes:!0}),x=new Map;for(let C of v){let R=V.join(E,C.name),L,U=V.join(I,C.name);if(C.isFile()){if(L={kind:"file",mode:(await r.lstatPromise(U)).mode},a.value==="hardlinks-global"){let J=await wn.checksumFile(U,{baseFs:r,algorithm:"sha1"});L.digest=J}}else if(C.isDirectory())L={kind:"directory"};else if(C.isSymbolicLink())L={kind:"symlink",symlinkTo:await r.readlinkPromise(U)};else throw new Error(`Unsupported file type (file: ${U}, mode: 0o${await r.statSync(U).mode.toString(8).padStart(6,"0")})`);if(x.set(R,L),C.isDirectory()&&R!==Si){let J=await A(R);for(let[te,ae]of J)x.set(te,ae)}}return x},p;if(a.value==="hardlinks-global"&&o&&u){let E=V.join(o,u.substring(0,2),`${u.substring(2)}.json`);try{p=new Map(Object.entries(JSON.parse(await oe.readFilePromise(E,"utf8"))))}catch{p=await A()}}else p=await A();let h=!1;for(let[E,I]of p){let v=V.join(e,E),x=V.join(t,E);if(I.kind==="directory")await oe.mkdirPromise(x,{recursive:!0});else if(I.kind==="file"){let C=I.mtimeMs;await h1t({srcPath:v,dstPath:x,entry:I,nmMode:a,baseFs:r,globalHardlinksStore:o}),I.mtimeMs!==C&&(h=!0)}else I.kind==="symlink"&&await gj(V.resolve(V.dirname(x),I.symlinkTo),x,n)}if(a.value==="hardlinks-global"&&o&&h&&u){let E=V.join(o,u.substring(0,2),`${u.substring(2)}.json`);await oe.removePromise(E),await g1e(o,E,Buffer.from(JSON.stringify(Object.fromEntries(p))))}};function d1t(t,e,r,o){let a=new Map,n=new Map,u=new Map,A=!1,p=(h,E,I,v,x)=>{let C=!0,R=V.join(h,E),L=new Set;if(E===Si||E.startsWith("@")){let J;try{J=oe.statSync(R)}catch{}C=!!J,J?J.mtimeMs>r?(A=!0,L=new Set(oe.readdirSync(R))):L=new Set(I.children.get(E).children.keys()):A=!0;let te=e.get(h);if(te){let ae=V.join(h,Si,BQ),fe;try{fe=oe.statSync(ae)}catch{}if(!fe)A=!0;else if(fe.mtimeMs>r){A=!0;let ce=new Set(oe.readdirSync(ae)),me=new Map;n.set(h,me);for(let[he,Be]of te)ce.has(he)&&me.set(he,Be)}else n.set(h,te)}}else C=x.has(E);let U=I.children.get(E);if(C){let{linkType:J,locator:te}=U,ae={children:new Map,linkType:J,locator:te};if(v.children.set(E,ae),te){let fe=_e.getSetWithDefault(u,te);fe.add(R),u.set(te,fe)}for(let fe of U.children.keys())p(R,fe,U,ae,L)}else U.locator&&o.storedBuildState.delete(W.parseLocator(U.locator).locatorHash)};for(let[h,E]of t){let{linkType:I,locator:v}=E,x={children:new Map,linkType:I,locator:v};if(a.set(h,x),v){let C=_e.getSetWithDefault(u,E.locator);C.add(h),u.set(E.locator,C)}E.children.has(Si)&&p(h,Si,E,x,new Set)}return{locationTree:a,binSymlinks:n,locatorLocations:u,installChangedByUser:A}}function m1e(t){let e=W.parseDescriptor(t);return W.isVirtualDescriptor(e)&&(e=W.devirtualizeDescriptor(e)),e.range.startsWith("link:")}async function m1t(t,e,r,{loadManifest:o}){let a=new Map;for(let[A,{locations:p}]of t){let h=m1e(A)?null:await o(A,p[0]),E=new Map;if(h)for(let[I,v]of h.bin){let x=V.join(p[0],v);v!==""&&oe.existsSync(x)&&E.set(I,v)}a.set(A,E)}let n=new Map,u=(A,p,h)=>{let E=new Map,I=V.contains(r,A);if(h.locator&&I!==null){let v=a.get(h.locator);for(let[x,C]of v){let R=V.join(A,ue.toPortablePath(C));E.set(x,R)}for(let[x,C]of h.children){let R=V.join(A,x),L=u(R,R,C);L.size>0&&n.set(A,new Map([...n.get(A)||new Map,...L]))}}else for(let[v,x]of h.children){let C=u(V.join(A,v),p,x);for(let[R,L]of C)E.set(R,L)}return E};for(let[A,p]of e){let h=u(A,A,p);h.size>0&&n.set(A,new Map([...n.get(A)||new Map,...h]))}return n}var c1e=(t,e)=>{if(!t||!e)return t===e;let r=W.parseLocator(t);W.isVirtualLocator(r)&&(r=W.devirtualizeLocator(r));let o=W.parseLocator(e);return W.isVirtualLocator(o)&&(o=W.devirtualizeLocator(o)),W.areLocatorsEqual(r,o)};function dj(t){return V.join(t.get("globalFolder"),"store")}async function y1t(t,e,{baseFs:r,project:o,report:a,loadManifest:n,realLocatorChecksums:u}){let A=V.join(o.cwd,Si),{locationTree:p,binSymlinks:h,locatorLocations:E,installChangedByUser:I}=d1t(t.locationTree,t.binSymlinks,t.mtimeMs,o),v=h1e(e,{skipPrefix:o.cwd}),x=[],C=async({srcDir:Be,dstDir:we,linkType:g,globalHardlinksStore:Ee,nmMode:Se,windowsLinkType:le,packageChecksum:ne})=>{let ee=(async()=>{try{g==="SOFT"?(await oe.mkdirPromise(V.dirname(we),{recursive:!0}),await gj(V.resolve(Be),we,le)):await g1t(we,Be,{baseFs:r,globalHardlinksStore:Ee,nmMode:Se,windowsLinkType:le,packageChecksum:ne})}catch(Ie){throw Ie.message=`While persisting ${Be} -> ${we} ${Ie.message}`,Ie}finally{ae.tick()}})().then(()=>x.splice(x.indexOf(ee),1));x.push(ee),x.length>l1e&&await Promise.race(x)},R=async(Be,we,g)=>{let Ee=(async()=>{let Se=async(le,ne,ee)=>{try{ee.innerLoop||await oe.mkdirPromise(ne,{recursive:!0});let Ie=await oe.readdirPromise(le,{withFileTypes:!0});for(let Fe of Ie){if(!ee.innerLoop&&Fe.name===BQ)continue;let At=V.join(le,Fe.name),H=V.join(ne,Fe.name);Fe.isDirectory()?(Fe.name!==Si||ee&&ee.innerLoop)&&(await oe.mkdirPromise(H,{recursive:!0}),await Se(At,H,{...ee,innerLoop:!0})):me.value==="hardlinks-local"||me.value==="hardlinks-global"?await oe.linkPromise(At,H):await oe.copyFilePromise(At,H,A1e.default.constants.COPYFILE_FICLONE)}}catch(Ie){throw ee.innerLoop||(Ie.message=`While cloning ${le} -> ${ne} ${Ie.message}`),Ie}finally{ee.innerLoop||ae.tick()}};await Se(Be,we,g)})().then(()=>x.splice(x.indexOf(Ee),1));x.push(Ee),x.length>l1e&&await Promise.race(x)},L=async(Be,we,g)=>{if(g)for(let[Ee,Se]of we.children){let le=g.children.get(Ee);await L(V.join(Be,Ee),Se,le)}else{we.children.has(Si)&&await WC(V.join(Be,Si),{contentsOnly:!1});let Ee=V.basename(Be)===Si&&v.has(V.join(V.dirname(Be),V.sep));await WC(Be,{contentsOnly:Be===A,allowSymlink:Ee})}};for(let[Be,we]of p){let g=v.get(Be);for(let[Ee,Se]of we.children){if(Ee===".")continue;let le=g&&g.children.get(Ee),ne=V.join(Be,Ee);await L(ne,Se,le)}}let U=async(Be,we,g)=>{if(g){c1e(we.locator,g.locator)||await WC(Be,{contentsOnly:we.linkType==="HARD"});for(let[Ee,Se]of we.children){let le=g.children.get(Ee);await U(V.join(Be,Ee),Se,le)}}else{we.children.has(Si)&&await WC(V.join(Be,Si),{contentsOnly:!0});let Ee=V.basename(Be)===Si&&v.has(V.join(V.dirname(Be),V.sep));await WC(Be,{contentsOnly:we.linkType==="HARD",allowSymlink:Ee})}};for(let[Be,we]of v){let g=p.get(Be);for(let[Ee,Se]of we.children){if(Ee===".")continue;let le=g&&g.children.get(Ee);await U(V.join(Be,Ee),Se,le)}}let J=new Map,te=[];for(let[Be,we]of E)for(let g of we){let{locationRoot:Ee,segments:Se}=vQ(g,{skipPrefix:o.cwd}),le=v.get(Ee),ne=Ee;if(le){for(let ee of Se)if(ne=V.join(ne,ee),le=le.children.get(ee),!le)break;if(le){let ee=c1e(le.locator,Be),Ie=e.get(le.locator),Fe=Ie.target,At=ne,H=Ie.linkType;if(ee)J.has(Fe)||J.set(Fe,At);else if(Fe!==At){let at=W.parseLocator(le.locator);W.isVirtualLocator(at)&&(at=W.devirtualizeLocator(at)),te.push({srcDir:Fe,dstDir:At,linkType:H,realLocatorHash:at.locatorHash})}}}}for(let[Be,{locations:we}]of e.entries())for(let g of we){let{locationRoot:Ee,segments:Se}=vQ(g,{skipPrefix:o.cwd}),le=p.get(Ee),ne=v.get(Ee),ee=Ee,Ie=e.get(Be),Fe=W.parseLocator(Be);W.isVirtualLocator(Fe)&&(Fe=W.devirtualizeLocator(Fe));let At=Fe.locatorHash,H=Ie.target,at=g;if(H===at)continue;let Re=Ie.linkType;for(let ke of Se)ne=ne.children.get(ke);if(!le)te.push({srcDir:H,dstDir:at,linkType:Re,realLocatorHash:At});else for(let ke of Se)if(ee=V.join(ee,ke),le=le.children.get(ke),!le){te.push({srcDir:H,dstDir:at,linkType:Re,realLocatorHash:At});break}}let ae=Xs.progressViaCounter(te.length),fe=a.reportProgress(ae),ce=o.configuration.get("nmMode"),me={value:ce},he=o.configuration.get("winLinkType");try{let Be=me.value==="hardlinks-global"?`${dj(o.configuration)}/v1`:null;if(Be&&!await oe.existsPromise(Be)){await oe.mkdirpPromise(Be);for(let g=0;g<256;g++)await oe.mkdirPromise(V.join(Be,g.toString(16).padStart(2,"0")))}for(let g of te)(g.linkType==="SOFT"||!J.has(g.srcDir))&&(J.set(g.srcDir,g.dstDir),await C({...g,globalHardlinksStore:Be,nmMode:me,windowsLinkType:he,packageChecksum:u.get(g.realLocatorHash)||null}));await Promise.all(x),x.length=0;for(let g of te){let Ee=J.get(g.srcDir);g.linkType!=="SOFT"&&g.dstDir!==Ee&&await R(Ee,g.dstDir,{nmMode:me})}await Promise.all(x),await oe.mkdirPromise(A,{recursive:!0});let we=await m1t(e,v,o.cwd,{loadManifest:n});await E1t(h,we,o.cwd,he),await p1t(o,e,we,me,{installChangedByUser:I}),ce=="hardlinks-global"&&me.value=="hardlinks-local"&&a.reportWarningOnce(74,"'nmMode' has been downgraded to 'hardlinks-local' due to global cache and install folder being on different devices")}finally{fe.stop()}}async function E1t(t,e,r,o){for(let a of t.keys()){if(V.contains(r,a)===null)throw new Error(`Assertion failed. Excepted bin symlink location to be inside project dir, instead it was at ${a}`);if(!e.has(a)){let n=V.join(a,Si,BQ);await oe.removePromise(n)}}for(let[a,n]of e){if(V.contains(r,a)===null)throw new Error(`Assertion failed. Excepted bin symlink location to be inside project dir, instead it was at ${a}`);let u=V.join(a,Si,BQ),A=t.get(a)||new Map;await oe.mkdirPromise(u,{recursive:!0});for(let p of A.keys())n.has(p)||(await oe.removePromise(V.join(u,p)),process.platform==="win32"&&await oe.removePromise(V.join(u,`${p}.cmd`)));for(let[p,h]of n){let E=A.get(p),I=V.join(u,p);E!==h&&(process.platform==="win32"?await(0,u1e.default)(ue.fromPortablePath(h),ue.fromPortablePath(I),{createPwshFile:!1}):(await oe.removePromise(I),await gj(h,I,o),V.contains(r,await oe.realpathPromise(h))!==null&&await oe.chmodPromise(h,493)))}}}Ye();St();nA();var cv=class extends P0{constructor(){super(...arguments);this.mode="loose"}makeInstaller(r){return new mj(r)}},mj=class extends mm{constructor(){super(...arguments);this.mode="loose"}async transformPnpSettings(r){let o=new mi({baseFs:new Jl({maxOpenFiles:80,readOnlyArchives:!0})}),a=zIe(r,this.opts.project.cwd,o),{tree:n,errors:u}=zB(a,{pnpifyFs:!1,project:this.opts.project});if(!n){for(let{messageName:I,text:v}of u)this.opts.report.reportError(I,v);return}let A=new Map;r.fallbackPool=A;let p=(I,v)=>{let x=W.parseLocator(v.locator),C=W.stringifyIdent(x);C===I?A.set(I,x.reference):A.set(I,[C,x.reference])},h=V.join(this.opts.project.cwd,dr.nodeModules),E=n.get(h);if(!(typeof E>"u")){if("target"in E)throw new Error("Assertion failed: Expected the root junction point to be a directory");for(let I of E.dirList){let v=V.join(h,I),x=n.get(v);if(typeof x>"u")throw new Error("Assertion failed: Expected the child to have been registered");if("target"in x)p(I,x);else for(let C of x.dirList){let R=V.join(v,C),L=n.get(R);if(typeof L>"u")throw new Error("Assertion failed: Expected the subchild to have been registered");if("target"in L)p(`${I}/${C}`,L);else throw new Error("Assertion failed: Expected the leaf junction to be a package")}}}}};var C1t={hooks:{cleanGlobalArtifacts:async t=>{let e=dj(t);await oe.removePromise(e)}},configuration:{nmHoistingLimits:{description:"Prevents packages to be hoisted past specific levels",type:"STRING",values:["workspaces","dependencies","none"],default:"none"},nmMode:{description:"Defines in which measure Yarn must use hardlinks and symlinks when generated `node_modules` directories.",type:"STRING",values:["classic","hardlinks-local","hardlinks-global"],default:"classic"},nmSelfReferences:{description:"Defines whether the linker should generate self-referencing symlinks for workspaces.",type:"BOOLEAN",default:!0}},linkers:[lv,cv]},w1t=C1t;var dG={};Vt(dG,{NpmHttpFetcher:()=>fv,NpmRemapResolver:()=>pv,NpmSemverFetcher:()=>dl,NpmSemverResolver:()=>hv,NpmTagResolver:()=>gv,default:()=>Lvt,npmConfigUtils:()=>Zn,npmHttpUtils:()=>Zr,npmPublishUtils:()=>ow});Ye();var D1e=$e(zn());var Wn="npm:";var Zr={};Vt(Zr,{AuthType:()=>I1e,customPackageError:()=>ym,del:()=>R1t,get:()=>Em,getIdentUrl:()=>DQ,getPackageMetadata:()=>JC,handleInvalidAuthenticationError:()=>k0,post:()=>Q1t,put:()=>F1t});Ye();Ye();St();var wj=$e(f2()),C1e=$e(D_()),w1e=$e(zn());var Zn={};Vt(Zn,{RegistryType:()=>y1e,getAuditRegistry:()=>I1t,getAuthConfiguration:()=>Cj,getDefaultRegistry:()=>uv,getPublishRegistry:()=>B1t,getRegistryConfiguration:()=>E1e,getScopeConfiguration:()=>Ej,getScopeRegistry:()=>KC,normalizeRegistry:()=>oc});var y1e=(o=>(o.AUDIT_REGISTRY="npmAuditRegistry",o.FETCH_REGISTRY="npmRegistryServer",o.PUBLISH_REGISTRY="npmPublishRegistry",o))(y1e||{});function oc(t){return t.replace(/\/$/,"")}function I1t({configuration:t}){return uv({configuration:t,type:"npmAuditRegistry"})}function B1t(t,{configuration:e}){return t.publishConfig?.registry?oc(t.publishConfig.registry):t.name?KC(t.name.scope,{configuration:e,type:"npmPublishRegistry"}):uv({configuration:e,type:"npmPublishRegistry"})}function KC(t,{configuration:e,type:r="npmRegistryServer"}){let o=Ej(t,{configuration:e});if(o===null)return uv({configuration:e,type:r});let a=o.get(r);return a===null?uv({configuration:e,type:r}):oc(a)}function uv({configuration:t,type:e="npmRegistryServer"}){let r=t.get(e);return oc(r!==null?r:t.get("npmRegistryServer"))}function E1e(t,{configuration:e}){let r=e.get("npmRegistries"),o=oc(t),a=r.get(o);if(typeof a<"u")return a;let n=r.get(o.replace(/^[a-z]+:/,""));return typeof n<"u"?n:null}function Ej(t,{configuration:e}){if(t===null)return null;let o=e.get("npmScopes").get(t);return o||null}function Cj(t,{configuration:e,ident:r}){let o=r&&Ej(r.scope,{configuration:e});return o?.get("npmAuthIdent")||o?.get("npmAuthToken")?o:E1e(t,{configuration:e})||e}var I1e=(a=>(a[a.NO_AUTH=0]="NO_AUTH",a[a.BEST_EFFORT=1]="BEST_EFFORT",a[a.CONFIGURATION=2]="CONFIGURATION",a[a.ALWAYS_AUTH=3]="ALWAYS_AUTH",a))(I1e||{});async function k0(t,{attemptedAs:e,registry:r,headers:o,configuration:a}){if(PQ(t))throw new zt(41,"Invalid OTP token");if(t.originalError?.name==="HTTPError"&&t.originalError?.response.statusCode===401)throw new zt(41,`Invalid authentication (${typeof e!="string"?`as ${await N1t(r,o,{configuration:a})}`:`attempted as ${e}`})`)}function ym(t,e){let r=t.response?.statusCode;return r?r===404?"Package not found":r>=500&&r<600?`The registry appears to be down (using a ${de.applyHyperlink(e,"local cache","https://yarnpkg.com/advanced/lexicon#local-cache")} might have protected you against such outages)`:null:null}function DQ(t){return t.scope?`/@${t.scope}%2f${t.name}`:`/${t.name}`}var B1e=new Map,v1t=new Map;async function D1t(t){return await _e.getFactoryWithDefault(B1e,t,async()=>{let e=null;try{e=await oe.readJsonPromise(t)}catch{}return e})}async function S1t(t,e,{configuration:r,cached:o,registry:a,headers:n,version:u,...A}){return await _e.getFactoryWithDefault(v1t,t,async()=>await Em(DQ(e),{...A,customErrorMessage:ym,configuration:r,registry:a,ident:e,headers:{...n,["If-None-Match"]:o?.etag,["If-Modified-Since"]:o?.lastModified},wrapNetworkRequest:async p=>async()=>{let h=await p();if(h.statusCode===304){if(o===null)throw new Error("Assertion failed: cachedMetadata should not be null");return{...h,body:o.metadata}}let E=P1t(JSON.parse(h.body.toString())),I={metadata:E,etag:h.headers.etag,lastModified:h.headers["last-modified"]};return B1e.set(t,Promise.resolve(I)),Promise.resolve().then(async()=>{let v=`${t}-${process.pid}.tmp`;await oe.mkdirPromise(V.dirname(v),{recursive:!0}),await oe.writeJsonPromise(v,I,{compact:!0}),await oe.renamePromise(v,t)}).catch(()=>{}),{...h,body:E}}}))}async function JC(t,{cache:e,project:r,registry:o,headers:a,version:n,...u}){let{configuration:A}=r;o=Av(A,{ident:t,registry:o});let p=x1t(A,o),h=V.join(p,`${W.slugifyIdent(t)}.json`),E=null;if(!r.lockfileNeedsRefresh&&(E=await D1t(h),E)){if(typeof n<"u"&&typeof E.metadata.versions[n]<"u")return E.metadata;if(A.get("enableOfflineMode")){let I=structuredClone(E.metadata),v=new Set;if(e){for(let C of Object.keys(I.versions)){let R=W.makeLocator(t,`npm:${C}`),L=e.getLocatorMirrorPath(R);(!L||!oe.existsSync(L))&&(delete I.versions[C],v.add(C))}let x=I["dist-tags"].latest;if(v.has(x)){let C=Object.keys(E.metadata.versions).sort(w1e.default.compare),R=C.indexOf(x);for(;v.has(C[R])&&R>=0;)R-=1;R>=0?I["dist-tags"].latest=C[R]:delete I["dist-tags"].latest}}return I}}return await S1t(h,t,{...u,configuration:A,cached:E,registry:o,headers:a,version:n})}var v1e=["name","dist.tarball","bin","scripts","os","cpu","libc","dependencies","dependenciesMeta","optionalDependencies","peerDependencies","peerDependenciesMeta","deprecated"];function P1t(t){return{"dist-tags":t["dist-tags"],versions:Object.fromEntries(Object.entries(t.versions).map(([e,r])=>[e,(0,C1e.default)(r,v1e)]))}}var b1t=wn.makeHash(...v1e).slice(0,6);function x1t(t,e){let r=k1t(t),o=new URL(e);return V.join(r,b1t,o.hostname)}function k1t(t){return V.join(t.get("globalFolder"),"metadata/npm")}async function Em(t,{configuration:e,headers:r,ident:o,authType:a,registry:n,...u}){n=Av(e,{ident:o,registry:n}),o&&o.scope&&typeof a>"u"&&(a=1);let A=await SQ(n,{authType:a,configuration:e,ident:o});A&&(r={...r,authorization:A});try{return await nn.get(t.charAt(0)==="/"?`${n}${t}`:t,{configuration:e,headers:r,...u})}catch(p){throw await k0(p,{registry:n,configuration:e,headers:r}),p}}async function Q1t(t,e,{attemptedAs:r,configuration:o,headers:a,ident:n,authType:u=3,registry:A,otp:p,...h}){A=Av(o,{ident:n,registry:A});let E=await SQ(A,{authType:u,configuration:o,ident:n});E&&(a={...a,authorization:E}),p&&(a={...a,...VC(p)});try{return await nn.post(A+t,e,{configuration:o,headers:a,...h})}catch(I){if(!PQ(I)||p)throw await k0(I,{attemptedAs:r,registry:A,configuration:o,headers:a}),I;p=await Ij(I,{configuration:o});let v={...a,...VC(p)};try{return await nn.post(`${A}${t}`,e,{configuration:o,headers:v,...h})}catch(x){throw await k0(x,{attemptedAs:r,registry:A,configuration:o,headers:a}),x}}}async function F1t(t,e,{attemptedAs:r,configuration:o,headers:a,ident:n,authType:u=3,registry:A,otp:p,...h}){A=Av(o,{ident:n,registry:A});let E=await SQ(A,{authType:u,configuration:o,ident:n});E&&(a={...a,authorization:E}),p&&(a={...a,...VC(p)});try{return await nn.put(A+t,e,{configuration:o,headers:a,...h})}catch(I){if(!PQ(I))throw await k0(I,{attemptedAs:r,registry:A,configuration:o,headers:a}),I;p=await Ij(I,{configuration:o});let v={...a,...VC(p)};try{return await nn.put(`${A}${t}`,e,{configuration:o,headers:v,...h})}catch(x){throw await k0(x,{attemptedAs:r,registry:A,configuration:o,headers:a}),x}}}async function R1t(t,{attemptedAs:e,configuration:r,headers:o,ident:a,authType:n=3,registry:u,otp:A,...p}){u=Av(r,{ident:a,registry:u});let h=await SQ(u,{authType:n,configuration:r,ident:a});h&&(o={...o,authorization:h}),A&&(o={...o,...VC(A)});try{return await nn.del(u+t,{configuration:r,headers:o,...p})}catch(E){if(!PQ(E)||A)throw await k0(E,{attemptedAs:e,registry:u,configuration:r,headers:o}),E;A=await Ij(E,{configuration:r});let I={...o,...VC(A)};try{return await nn.del(`${u}${t}`,{configuration:r,headers:I,...p})}catch(v){throw await k0(v,{attemptedAs:e,registry:u,configuration:r,headers:o}),v}}}function Av(t,{ident:e,registry:r}){if(typeof r>"u"&&e)return KC(e.scope,{configuration:t});if(typeof r!="string")throw new Error("Assertion failed: The registry should be a string");return oc(r)}async function SQ(t,{authType:e=2,configuration:r,ident:o}){let a=Cj(t,{configuration:r,ident:o}),n=T1t(a,e);if(!n)return null;let u=await r.reduceHook(A=>A.getNpmAuthenticationHeader,void 0,t,{configuration:r,ident:o});if(u)return u;if(a.get("npmAuthToken"))return`Bearer ${a.get("npmAuthToken")}`;if(a.get("npmAuthIdent")){let A=a.get("npmAuthIdent");return A.includes(":")?`Basic ${Buffer.from(A).toString("base64")}`:`Basic ${A}`}if(n&&e!==1)throw new zt(33,"No authentication configured for request");return null}function T1t(t,e){switch(e){case 2:return t.get("npmAlwaysAuth");case 1:case 3:return!0;case 0:return!1;default:throw new Error("Unreachable")}}async function N1t(t,e,{configuration:r}){if(typeof e>"u"||typeof e.authorization>"u")return"an anonymous user";try{return(await nn.get(new URL(`${t}/-/whoami`).href,{configuration:r,headers:e,jsonResponse:!0})).username??"an unknown user"}catch{return"an unknown user"}}async function Ij(t,{configuration:e}){let r=t.originalError?.response.headers["npm-notice"];if(r&&(await Nt.start({configuration:e,stdout:process.stdout,includeFooter:!1},async a=>{if(a.reportInfo(0,r.replace(/(https?:\/\/\S+)/g,de.pretty(e,"$1",de.Type.URL))),!process.env.YARN_IS_TEST_ENV){let n=r.match(/open (https?:\/\/\S+)/i);if(n&&Ji.openUrl){let{openNow:u}=await(0,wj.prompt)({type:"confirm",name:"openNow",message:"Do you want to try to open this url now?",required:!0,initial:!0,onCancel:()=>process.exit(130)});u&&(await Ji.openUrl(n[1])||(a.reportSeparator(),a.reportWarning(0,"We failed to automatically open the url; you'll have to open it yourself in your browser of choice.")))}}}),process.stdout.write(` +`)),process.env.YARN_IS_TEST_ENV)return process.env.YARN_INJECT_NPM_2FA_TOKEN||"";let{otp:o}=await(0,wj.prompt)({type:"password",name:"otp",message:"One-time password:",required:!0,onCancel:()=>process.exit(130)});return process.stdout.write(` +`),o}function PQ(t){if(t.originalError?.name!=="HTTPError")return!1;try{return(t.originalError?.response.headers["www-authenticate"].split(/,\s*/).map(r=>r.toLowerCase())).includes("otp")}catch{return!1}}function VC(t){return{["npm-otp"]:t}}var fv=class{supports(e,r){if(!e.reference.startsWith(Wn))return!1;let{selector:o,params:a}=W.parseRange(e.reference);return!(!D1e.default.valid(o)||a===null||typeof a.__archiveUrl!="string")}getLocalPath(e,r){return null}async fetch(e,r){let o=r.checksums.get(e.locatorHash)||null,[a,n,u]=await r.cache.fetchPackageFromCache(e,o,{onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${W.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from the remote server`),loader:()=>this.fetchFromNetwork(e,r),...r.cacheOptions});return{packageFs:a,releaseFs:n,prefixPath:W.getIdentVendorPath(e),checksum:u}}async fetchFromNetwork(e,r){let{params:o}=W.parseRange(e.reference);if(o===null||typeof o.__archiveUrl!="string")throw new Error("Assertion failed: The archiveUrl querystring parameter should have been available");let a=await Em(o.__archiveUrl,{customErrorMessage:ym,configuration:r.project.configuration,ident:e});return await Xi.convertToZip(a,{configuration:r.project.configuration,prefixPath:W.getIdentVendorPath(e),stripComponents:1})}};Ye();var pv=class{supportsDescriptor(e,r){return!(!e.range.startsWith(Wn)||!W.tryParseDescriptor(e.range.slice(Wn.length),!0))}supportsLocator(e,r){return!1}shouldPersistResolution(e,r){throw new Error("Unreachable")}bindDescriptor(e,r,o){return e}getResolutionDependencies(e,r){let o=r.project.configuration.normalizeDependency(W.parseDescriptor(e.range.slice(Wn.length),!0));return r.resolver.getResolutionDependencies(o,r)}async getCandidates(e,r,o){let a=o.project.configuration.normalizeDependency(W.parseDescriptor(e.range.slice(Wn.length),!0));return await o.resolver.getCandidates(a,r,o)}async getSatisfying(e,r,o,a){let n=a.project.configuration.normalizeDependency(W.parseDescriptor(e.range.slice(Wn.length),!0));return a.resolver.getSatisfying(n,r,o,a)}resolve(e,r){throw new Error("Unreachable")}};Ye();Ye();var S1e=$e(zn());var dl=class{supports(e,r){if(!e.reference.startsWith(Wn))return!1;let o=new URL(e.reference);return!(!S1e.default.valid(o.pathname)||o.searchParams.has("__archiveUrl"))}getLocalPath(e,r){return null}async fetch(e,r){let o=r.checksums.get(e.locatorHash)||null,[a,n,u]=await r.cache.fetchPackageFromCache(e,o,{onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${W.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from the remote registry`),loader:()=>this.fetchFromNetwork(e,r),...r.cacheOptions});return{packageFs:a,releaseFs:n,prefixPath:W.getIdentVendorPath(e),checksum:u}}async fetchFromNetwork(e,r){let o;try{o=await Em(dl.getLocatorUrl(e),{customErrorMessage:ym,configuration:r.project.configuration,ident:e})}catch{o=await Em(dl.getLocatorUrl(e).replace(/%2f/g,"/"),{customErrorMessage:ym,configuration:r.project.configuration,ident:e})}return await Xi.convertToZip(o,{configuration:r.project.configuration,prefixPath:W.getIdentVendorPath(e),stripComponents:1})}static isConventionalTarballUrl(e,r,{configuration:o}){let a=KC(e.scope,{configuration:o}),n=dl.getLocatorUrl(e);return r=r.replace(/^https?:(\/\/(?:[^/]+\.)?npmjs.org(?:$|\/))/,"https:$1"),a=a.replace(/^https:\/\/registry\.npmjs\.org($|\/)/,"https://registry.yarnpkg.com$1"),r=r.replace(/^https:\/\/registry\.npmjs\.org($|\/)/,"https://registry.yarnpkg.com$1"),r===a+n||r===a+n.replace(/%2f/g,"/")}static getLocatorUrl(e){let r=kr.clean(e.reference.slice(Wn.length));if(r===null)throw new zt(10,"The npm semver resolver got selected, but the version isn't semver");return`${DQ(e)}/-/${e.name}-${r}.tgz`}};Ye();Ye();Ye();var Bj=$e(zn());var bQ=W.makeIdent(null,"node-gyp"),L1t=/\b(node-gyp|prebuild-install)\b/,hv=class{supportsDescriptor(e,r){return e.range.startsWith(Wn)?!!kr.validRange(e.range.slice(Wn.length)):!1}supportsLocator(e,r){if(!e.reference.startsWith(Wn))return!1;let{selector:o}=W.parseRange(e.reference);return!!Bj.default.valid(o)}shouldPersistResolution(e,r){return!0}bindDescriptor(e,r,o){return e}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,o){let a=kr.validRange(e.range.slice(Wn.length));if(a===null)throw new Error(`Expected a valid range, got ${e.range.slice(Wn.length)}`);let n=await JC(e,{cache:o.fetchOptions?.cache,project:o.project,version:Bj.default.valid(a.raw)?a.raw:void 0}),u=_e.mapAndFilter(Object.keys(n.versions),h=>{try{let E=new kr.SemVer(h);if(a.test(E))return E}catch{}return _e.mapAndFilter.skip}),A=u.filter(h=>!n.versions[h.raw].deprecated),p=A.length>0?A:u;return p.sort((h,E)=>-h.compare(E)),p.map(h=>{let E=W.makeLocator(e,`${Wn}${h.raw}`),I=n.versions[h.raw].dist.tarball;return dl.isConventionalTarballUrl(E,I,{configuration:o.project.configuration})?E:W.bindLocator(E,{__archiveUrl:I})})}async getSatisfying(e,r,o,a){let n=kr.validRange(e.range.slice(Wn.length));if(n===null)throw new Error(`Expected a valid range, got ${e.range.slice(Wn.length)}`);return{locators:_e.mapAndFilter(o,p=>{if(p.identHash!==e.identHash)return _e.mapAndFilter.skip;let h=W.tryParseRange(p.reference,{requireProtocol:Wn});if(!h)return _e.mapAndFilter.skip;let E=new kr.SemVer(h.selector);return n.test(E)?{locator:p,version:E}:_e.mapAndFilter.skip}).sort((p,h)=>-p.version.compare(h.version)).map(({locator:p})=>p),sorted:!0}}async resolve(e,r){let{selector:o}=W.parseRange(e.reference),a=kr.clean(o);if(a===null)throw new zt(10,"The npm semver resolver got selected, but the version isn't semver");let n=await JC(e,{cache:r.fetchOptions?.cache,project:r.project,version:a});if(!Object.hasOwn(n,"versions"))throw new zt(15,'Registry returned invalid data for - missing "versions" field');if(!Object.hasOwn(n.versions,a))throw new zt(16,`Registry failed to return reference "${a}"`);let u=new Ot;if(u.load(n.versions[a]),!u.dependencies.has(bQ.identHash)&&!u.peerDependencies.has(bQ.identHash)){for(let A of u.scripts.values())if(A.match(L1t)){u.dependencies.set(bQ.identHash,W.makeDescriptor(bQ,"latest"));break}}return{...e,version:a,languageName:"node",linkType:"HARD",conditions:u.getConditions(),dependencies:r.project.configuration.normalizeDependencyMap(u.dependencies),peerDependencies:u.peerDependencies,dependenciesMeta:u.dependenciesMeta,peerDependenciesMeta:u.peerDependenciesMeta,bin:u.bin}}};Ye();Ye();var P1e=$e(zn());var gv=class{supportsDescriptor(e,r){return!(!e.range.startsWith(Wn)||!FE.test(e.range.slice(Wn.length)))}supportsLocator(e,r){return!1}shouldPersistResolution(e,r){throw new Error("Unreachable")}bindDescriptor(e,r,o){return e}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,o){let a=e.range.slice(Wn.length),n=await JC(e,{cache:o.fetchOptions?.cache,project:o.project});if(!Object.hasOwn(n,"dist-tags"))throw new zt(15,'Registry returned invalid data - missing "dist-tags" field');let u=n["dist-tags"];if(!Object.hasOwn(u,a))throw new zt(16,`Registry failed to return tag "${a}"`);let A=u[a],p=W.makeLocator(e,`${Wn}${A}`),h=n.versions[A].dist.tarball;return dl.isConventionalTarballUrl(p,h,{configuration:o.project.configuration})?[p]:[W.bindLocator(p,{__archiveUrl:h})]}async getSatisfying(e,r,o,a){let n=[];for(let u of o){if(u.identHash!==e.identHash)continue;let A=W.tryParseRange(u.reference,{requireProtocol:Wn});if(!(!A||!P1e.default.valid(A.selector))){if(A.params?.__archiveUrl){let p=W.makeRange({protocol:Wn,selector:A.selector,source:null,params:null}),[h]=await a.resolver.getCandidates(W.makeDescriptor(e,p),r,a);if(u.reference!==h.reference)continue}n.push(u)}}return{locators:n,sorted:!1}}async resolve(e,r){throw new Error("Unreachable")}};var ow={};Vt(ow,{getGitHead:()=>Tvt,getPublishAccess:()=>dBe,getReadmeContent:()=>mBe,makePublishBody:()=>Rvt});Ye();Ye();St();var AG={};Vt(AG,{PackCommand:()=>U0,default:()=>gvt,packUtils:()=>wA});Ye();Ye();Ye();St();qt();var wA={};Vt(wA,{genPackList:()=>XQ,genPackStream:()=>uG,genPackageManifest:()=>iBe,hasPackScripts:()=>lG,prepareForPack:()=>cG});Ye();St();var aG=$e(Zo()),rBe=$e(Z2e()),nBe=ve("zlib"),ivt=["/package.json","/readme","/readme.*","/license","/license.*","/licence","/licence.*","/changelog","/changelog.*"],svt=["/package.tgz",".github",".git",".hg","node_modules",".npmignore",".gitignore",".#*",".DS_Store"];async function lG(t){return!!(un.hasWorkspaceScript(t,"prepack")||un.hasWorkspaceScript(t,"postpack"))}async function cG(t,{report:e},r){await un.maybeExecuteWorkspaceLifecycleScript(t,"prepack",{report:e});try{let o=V.join(t.cwd,Ot.fileName);await oe.existsPromise(o)&&await t.manifest.loadFile(o,{baseFs:oe}),await r()}finally{await un.maybeExecuteWorkspaceLifecycleScript(t,"postpack",{report:e})}}async function uG(t,e){typeof e>"u"&&(e=await XQ(t));let r=new Set;for(let n of t.manifest.publishConfig?.executableFiles??new Set)r.add(V.normalize(n));for(let n of t.manifest.bin.values())r.add(V.normalize(n));let o=rBe.default.pack();process.nextTick(async()=>{for(let n of e){let u=V.normalize(n),A=V.resolve(t.cwd,u),p=V.join("package",u),h=await oe.lstatPromise(A),E={name:p,mtime:new Date(vi.SAFE_TIME*1e3)},I=r.has(u)?493:420,v,x,C=new Promise((L,U)=>{v=L,x=U}),R=L=>{L?x(L):v()};if(h.isFile()){let L;u==="package.json"?L=Buffer.from(JSON.stringify(await iBe(t),null,2)):L=await oe.readFilePromise(A),o.entry({...E,mode:I,type:"file"},L,R)}else h.isSymbolicLink()?o.entry({...E,mode:I,type:"symlink",linkname:await oe.readlinkPromise(A)},R):R(new Error(`Unsupported file type ${h.mode} for ${ue.fromPortablePath(u)}`));await C}o.finalize()});let a=(0,nBe.createGzip)();return o.pipe(a),a}async function iBe(t){let e=JSON.parse(JSON.stringify(t.manifest.raw));return await t.project.configuration.triggerHook(r=>r.beforeWorkspacePacking,t,e),e}async function XQ(t){let e=t.project,r=e.configuration,o={accept:[],reject:[]};for(let I of svt)o.reject.push(I);for(let I of ivt)o.accept.push(I);o.reject.push(r.get("rcFilename"));let a=I=>{if(I===null||!I.startsWith(`${t.cwd}/`))return;let v=V.relative(t.cwd,I),x=V.resolve(Bt.root,v);o.reject.push(x)};a(V.resolve(e.cwd,dr.lockfile)),a(r.get("cacheFolder")),a(r.get("globalFolder")),a(r.get("installStatePath")),a(r.get("virtualFolder")),a(r.get("yarnPath")),await r.triggerHook(I=>I.populateYarnPaths,e,I=>{a(I)});for(let I of e.workspaces){let v=V.relative(t.cwd,I.cwd);v!==""&&!v.match(/^(\.\.)?\//)&&o.reject.push(`/${v}`)}let n={accept:[],reject:[]},u=t.manifest.publishConfig?.main??t.manifest.main,A=t.manifest.publishConfig?.module??t.manifest.module,p=t.manifest.publishConfig?.browser??t.manifest.browser,h=t.manifest.publishConfig?.bin??t.manifest.bin;u!=null&&n.accept.push(V.resolve(Bt.root,u)),A!=null&&n.accept.push(V.resolve(Bt.root,A)),typeof p=="string"&&n.accept.push(V.resolve(Bt.root,p));for(let I of h.values())n.accept.push(V.resolve(Bt.root,I));if(p instanceof Map)for(let[I,v]of p.entries())n.accept.push(V.resolve(Bt.root,I)),typeof v=="string"&&n.accept.push(V.resolve(Bt.root,v));let E=t.manifest.files!==null;if(E){n.reject.push("/*");for(let I of t.manifest.files)sBe(n.accept,I,{cwd:Bt.root})}return await ovt(t.cwd,{hasExplicitFileList:E,globalList:o,ignoreList:n})}async function ovt(t,{hasExplicitFileList:e,globalList:r,ignoreList:o}){let a=[],n=new _u(t),u=[[Bt.root,[o]]];for(;u.length>0;){let[A,p]=u.pop(),h=await n.lstatPromise(A);if(!eBe(A,{globalList:r,ignoreLists:h.isDirectory()?null:p}))if(h.isDirectory()){let E=await n.readdirPromise(A),I=!1,v=!1;if(!e||A!==Bt.root)for(let R of E)I=I||R===".gitignore",v=v||R===".npmignore";let x=v?await $2e(n,A,".npmignore"):I?await $2e(n,A,".gitignore"):null,C=x!==null?[x].concat(p):p;eBe(A,{globalList:r,ignoreLists:p})&&(C=[...p,{accept:[],reject:["**/*"]}]);for(let R of E)u.push([V.resolve(A,R),C])}else(h.isFile()||h.isSymbolicLink())&&a.push(V.relative(Bt.root,A))}return a.sort()}async function $2e(t,e,r){let o={accept:[],reject:[]},a=await t.readFilePromise(V.join(e,r),"utf8");for(let n of a.split(/\n/g))sBe(o.reject,n,{cwd:e});return o}function avt(t,{cwd:e}){let r=t[0]==="!";return r&&(t=t.slice(1)),t.match(/\.{0,1}\//)&&(t=V.resolve(e,t)),r&&(t=`!${t}`),t}function sBe(t,e,{cwd:r}){let o=e.trim();o===""||o[0]==="#"||t.push(avt(o,{cwd:r}))}function eBe(t,{globalList:e,ignoreLists:r}){let o=zQ(t,e.accept);if(o!==0)return o===2;let a=zQ(t,e.reject);if(a!==0)return a===1;if(r!==null)for(let n of r){let u=zQ(t,n.accept);if(u!==0)return u===2;let A=zQ(t,n.reject);if(A!==0)return A===1}return!1}function zQ(t,e){let r=e,o=[];for(let a=0;a{await cG(a,{report:p},async()=>{p.reportJson({base:ue.fromPortablePath(a.cwd)});let h=await XQ(a);for(let E of h)p.reportInfo(null,ue.fromPortablePath(E)),p.reportJson({location:ue.fromPortablePath(E)});if(!this.dryRun){let E=await uG(a,h),I=oe.createWriteStream(u);E.pipe(I),await new Promise(v=>{I.on("finish",v)})}}),this.dryRun||(p.reportInfo(0,`Package archive generated in ${de.pretty(r,u,de.Type.PATH)}`),p.reportJson({output:ue.fromPortablePath(u)}))})).exitCode()}};U0.paths=[["pack"]],U0.usage=nt.Usage({description:"generate a tarball from the active workspace",details:"\n This command will turn the active workspace into a compressed archive suitable for publishing. The archive will by default be stored at the root of the workspace (`package.tgz`).\n\n If the `-o,---out` is set the archive will be created at the specified path. The `%s` and `%v` variables can be used within the path and will be respectively replaced by the package name and version.\n ",examples:[["Create an archive from the active workspace","yarn pack"],["List the files that would be made part of the workspace's archive","yarn pack --dry-run"],["Name and output the archive in a dedicated folder","yarn pack --out /artifacts/%s-%v.tgz"]]});function lvt(t,{workspace:e}){let r=t.replace("%s",cvt(e)).replace("%v",uvt(e));return ue.toPortablePath(r)}function cvt(t){return t.manifest.name!==null?W.slugifyIdent(t.manifest.name):"package"}function uvt(t){return t.manifest.version!==null?t.manifest.version:"unknown"}var Avt=["dependencies","devDependencies","peerDependencies"],fvt="workspace:",pvt=(t,e)=>{e.publishConfig&&(e.publishConfig.type&&(e.type=e.publishConfig.type),e.publishConfig.main&&(e.main=e.publishConfig.main),e.publishConfig.browser&&(e.browser=e.publishConfig.browser),e.publishConfig.module&&(e.module=e.publishConfig.module),e.publishConfig.exports&&(e.exports=e.publishConfig.exports),e.publishConfig.imports&&(e.imports=e.publishConfig.imports),e.publishConfig.bin&&(e.bin=e.publishConfig.bin));let r=t.project;for(let o of Avt)for(let a of t.manifest.getForScope(o).values()){let n=r.tryWorkspaceByDescriptor(a),u=W.parseRange(a.range);if(u.protocol===fvt)if(n===null){if(r.tryWorkspaceByIdent(a)===null)throw new zt(21,`${W.prettyDescriptor(r.configuration,a)}: No local workspace found for this range`)}else{let A;W.areDescriptorsEqual(a,n.anchoredDescriptor)||u.selector==="*"?A=n.manifest.version??"0.0.0":u.selector==="~"||u.selector==="^"?A=`${u.selector}${n.manifest.version??"0.0.0"}`:A=u.selector;let p=o==="dependencies"?W.makeDescriptor(a,"unknown"):null,h=p!==null&&t.manifest.ensureDependencyMeta(p).optional?"optionalDependencies":o;e[h][W.stringifyIdent(a)]=A}}},hvt={hooks:{beforeWorkspacePacking:pvt},commands:[U0]},gvt=hvt;var hBe=ve("crypto"),gBe=$e(pBe());async function Rvt(t,e,{access:r,tag:o,registry:a,gitHead:n}){let u=t.manifest.name,A=t.manifest.version,p=W.stringifyIdent(u),h=(0,hBe.createHash)("sha1").update(e).digest("hex"),E=gBe.default.fromData(e).toString(),I=r??dBe(t,u),v=await mBe(t),x=await wA.genPackageManifest(t),C=`${p}-${A}.tgz`,R=new URL(`${oc(a)}/${p}/-/${C}`);return{_id:p,_attachments:{[C]:{content_type:"application/octet-stream",data:e.toString("base64"),length:e.length}},name:p,access:I,["dist-tags"]:{[o]:A},versions:{[A]:{...x,_id:`${p}@${A}`,name:p,version:A,gitHead:n,dist:{shasum:h,integrity:E,tarball:R.toString()}}},readme:v}}async function Tvt(t){try{let{stdout:e}=await Ur.execvp("git",["rev-parse","--revs-only","HEAD"],{cwd:t});return e.trim()===""?void 0:e.trim()}catch{return}}function dBe(t,e){let r=t.project.configuration;return t.manifest.publishConfig&&typeof t.manifest.publishConfig.access=="string"?t.manifest.publishConfig.access:r.get("npmPublishAccess")!==null?r.get("npmPublishAccess"):e.scope?"restricted":"public"}async function mBe(t){let e=ue.toPortablePath(`${t.cwd}/README.md`),r=t.manifest.name,a=`# ${W.stringifyIdent(r)} +`;try{a=await oe.readFilePromise(e,"utf8")}catch(n){if(n.code==="ENOENT")return a;throw n}return a}var gG={npmAlwaysAuth:{description:"URL of the selected npm registry (note: npm enterprise isn't supported)",type:"BOOLEAN",default:!1},npmAuthIdent:{description:"Authentication identity for the npm registry (_auth in npm and yarn v1)",type:"SECRET",default:null},npmAuthToken:{description:"Authentication token for the npm registry (_authToken in npm and yarn v1)",type:"SECRET",default:null}},yBe={npmAuditRegistry:{description:"Registry to query for audit reports",type:"STRING",default:null},npmPublishRegistry:{description:"Registry to push packages to",type:"STRING",default:null},npmRegistryServer:{description:"URL of the selected npm registry (note: npm enterprise isn't supported)",type:"STRING",default:"https://registry.yarnpkg.com"}},Nvt={configuration:{...gG,...yBe,npmScopes:{description:"Settings per package scope",type:"MAP",valueDefinition:{description:"",type:"SHAPE",properties:{...gG,...yBe}}},npmRegistries:{description:"Settings per registry",type:"MAP",normalizeKeys:oc,valueDefinition:{description:"",type:"SHAPE",properties:{...gG}}}},fetchers:[fv,dl],resolvers:[pv,hv,gv]},Lvt=Nvt;var DG={};Vt(DG,{NpmAuditCommand:()=>H0,NpmInfoCommand:()=>q0,NpmLoginCommand:()=>j0,NpmLogoutCommand:()=>G0,NpmPublishCommand:()=>Y0,NpmTagAddCommand:()=>K0,NpmTagListCommand:()=>W0,NpmTagRemoveCommand:()=>V0,NpmWhoamiCommand:()=>J0,default:()=>jvt,npmAuditTypes:()=>Rv,npmAuditUtils:()=>ZQ});Ye();Ye();qt();var wG=$e(Zo());Za();var Rv={};Vt(Rv,{Environment:()=>Qv,Severity:()=>Fv});var Qv=(o=>(o.All="all",o.Production="production",o.Development="development",o))(Qv||{}),Fv=(n=>(n.Info="info",n.Low="low",n.Moderate="moderate",n.High="high",n.Critical="critical",n))(Fv||{});var ZQ={};Vt(ZQ,{allSeverities:()=>aw,getPackages:()=>CG,getReportTree:()=>yG,getSeverityInclusions:()=>mG,getTopLevelDependencies:()=>EG});Ye();var EBe=$e(zn());var aw=["info","low","moderate","high","critical"];function mG(t){if(typeof t>"u")return new Set(aw);let e=aw.indexOf(t),r=aw.slice(e);return new Set(r)}function yG(t){let e={},r={children:e};for(let[o,a]of _e.sortMap(Object.entries(t),n=>n[0]))for(let n of _e.sortMap(a,u=>`${u.id}`))e[`${o}/${n.id}`]={value:de.tuple(de.Type.IDENT,W.parseIdent(o)),children:{ID:typeof n.id<"u"&&{label:"ID",value:de.tuple(de.Type.ID,n.id)},Issue:{label:"Issue",value:de.tuple(de.Type.NO_HINT,n.title)},URL:typeof n.url<"u"&&{label:"URL",value:de.tuple(de.Type.URL,n.url)},Severity:{label:"Severity",value:de.tuple(de.Type.NO_HINT,n.severity)},["Vulnerable Versions"]:{label:"Vulnerable Versions",value:de.tuple(de.Type.RANGE,n.vulnerable_versions)},["Tree Versions"]:{label:"Tree Versions",children:[...n.versions].sort(EBe.default.compare).map(u=>({value:de.tuple(de.Type.REFERENCE,u)}))},Dependents:{label:"Dependents",children:_e.sortMap(n.dependents,u=>W.stringifyLocator(u)).map(u=>({value:de.tuple(de.Type.LOCATOR,u)}))}}};return r}function EG(t,e,{all:r,environment:o}){let a=[],n=r?t.workspaces:[e],u=["all","production"].includes(o),A=["all","development"].includes(o);for(let p of n)for(let h of p.anchoredPackage.dependencies.values())(p.manifest.devDependencies.has(h.identHash)?!A:!u)||a.push({workspace:p,dependency:h});return a}function CG(t,e,{recursive:r}){let o=new Map,a=new Set,n=[],u=(A,p)=>{let h=t.storedResolutions.get(p.descriptorHash);if(typeof h>"u")throw new Error("Assertion failed: The resolution should have been registered");if(!a.has(h))a.add(h);else return;let E=t.storedPackages.get(h);if(typeof E>"u")throw new Error("Assertion failed: The package should have been registered");if(W.ensureDevirtualizedLocator(E).reference.startsWith("npm:")&&E.version!==null){let v=W.stringifyIdent(E),x=_e.getMapWithDefault(o,v);_e.getArrayWithDefault(x,E.version).push(A)}if(r)for(let v of E.dependencies.values())n.push([E,v])};for(let{workspace:A,dependency:p}of e)n.push([A.anchoredLocator,p]);for(;n.length>0;){let[A,p]=n.shift();u(A,p)}return o}var H0=class extends ut{constructor(){super(...arguments);this.all=ge.Boolean("-A,--all",!1,{description:"Audit dependencies from all workspaces"});this.recursive=ge.Boolean("-R,--recursive",!1,{description:"Audit transitive dependencies as well"});this.environment=ge.String("--environment","all",{description:"Which environments to cover",validator:Ks(Qv)});this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.noDeprecations=ge.Boolean("--no-deprecations",!1,{description:"Don't warn about deprecated packages"});this.severity=ge.String("--severity","info",{description:"Minimal severity requested for packages to be displayed",validator:Ks(Fv)});this.excludes=ge.Array("--exclude",[],{description:"Array of glob patterns of packages to exclude from audit"});this.ignores=ge.Array("--ignore",[],{description:"Array of glob patterns of advisory ID's to ignore in the audit report"})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Pt.find(r,this.context.cwd);if(!a)throw new rr(o.cwd,this.context.cwd);await o.restoreInstallState();let n=EG(o,a,{all:this.all,environment:this.environment}),u=CG(o,n,{recursive:this.recursive}),A=Array.from(new Set([...r.get("npmAuditExcludePackages"),...this.excludes])),p=Object.create(null);for(let[L,U]of u)A.some(J=>wG.default.isMatch(L,J))||(p[L]=[...U.keys()]);let h=Zn.getAuditRegistry({configuration:r}),E,I=await AA.start({configuration:r,stdout:this.context.stdout},async()=>{let L=Zr.post("/-/npm/v1/security/advisories/bulk",p,{authType:Zr.AuthType.BEST_EFFORT,configuration:r,jsonResponse:!0,registry:h}),U=this.noDeprecations?[]:await Promise.all(Array.from(Object.entries(p),async([te,ae])=>{let fe=await Zr.getPackageMetadata(W.parseIdent(te),{project:o});return _e.mapAndFilter(ae,ce=>{let{deprecated:me}=fe.versions[ce];return me?[te,ce,me]:_e.mapAndFilter.skip})})),J=await L;for(let[te,ae,fe]of U.flat(1))Object.hasOwn(J,te)&&J[te].some(ce=>kr.satisfiesWithPrereleases(ae,ce.vulnerable_versions))||(J[te]??=[],J[te].push({id:`${te} (deprecation)`,title:fe.trim()||"This package has been deprecated.",severity:"moderate",vulnerable_versions:ae}));E=J});if(I.hasErrors())return I.exitCode();let v=mG(this.severity),x=Array.from(new Set([...r.get("npmAuditIgnoreAdvisories"),...this.ignores])),C=Object.create(null);for(let[L,U]of Object.entries(E)){let J=U.filter(te=>!wG.default.isMatch(`${te.id}`,x)&&v.has(te.severity));J.length>0&&(C[L]=J.map(te=>{let ae=u.get(L);if(typeof ae>"u")throw new Error("Assertion failed: Expected the registry to only return packages that were requested");let fe=[...ae.keys()].filter(me=>kr.satisfiesWithPrereleases(me,te.vulnerable_versions)),ce=new Map;for(let me of fe)for(let he of ae.get(me))ce.set(he.locatorHash,he);return{...te,versions:fe,dependents:[...ce.values()]}}))}let R=Object.keys(C).length>0;return R?($s.emitTree(yG(C),{configuration:r,json:this.json,stdout:this.context.stdout,separators:2}),1):(await Nt.start({configuration:r,includeFooter:!1,json:this.json,stdout:this.context.stdout},async L=>{L.reportInfo(1,"No audit suggestions")}),R?1:0)}};H0.paths=[["npm","audit"]],H0.usage=nt.Usage({description:"perform a vulnerability audit against the installed packages",details:` + This command checks for known security reports on the packages you use. The reports are by default extracted from the npm registry, and may or may not be relevant to your actual program (not all vulnerabilities affect all code paths). + + For consistency with our other commands the default is to only check the direct dependencies for the active workspace. To extend this search to all workspaces, use \`-A,--all\`. To extend this search to both direct and transitive dependencies, use \`-R,--recursive\`. + + Applying the \`--severity\` flag will limit the audit table to vulnerabilities of the corresponding severity and above. Valid values are ${aw.map(r=>`\`${r}\``).join(", ")}. + + If the \`--json\` flag is set, Yarn will print the output exactly as received from the registry. Regardless of this flag, the process will exit with a non-zero exit code if a report is found for the selected packages. + + If certain packages produce false positives for a particular environment, the \`--exclude\` flag can be used to exclude any number of packages from the audit. This can also be set in the configuration file with the \`npmAuditExcludePackages\` option. + + If particular advisories are needed to be ignored, the \`--ignore\` flag can be used with Advisory ID's to ignore any number of advisories in the audit report. This can also be set in the configuration file with the \`npmAuditIgnoreAdvisories\` option. + + To understand the dependency tree requiring vulnerable packages, check the raw report with the \`--json\` flag or use \`yarn why package\` to get more information as to who depends on them. + `,examples:[["Checks for known security issues with the installed packages. The output is a list of known issues.","yarn npm audit"],["Audit dependencies in all workspaces","yarn npm audit --all"],["Limit auditing to `dependencies` (excludes `devDependencies`)","yarn npm audit --environment production"],["Show audit report as valid JSON","yarn npm audit --json"],["Audit all direct and transitive dependencies","yarn npm audit --recursive"],["Output moderate (or more severe) vulnerabilities","yarn npm audit --severity moderate"],["Exclude certain packages","yarn npm audit --exclude package1 --exclude package2"],["Ignore specific advisories","yarn npm audit --ignore 1234567 --ignore 7654321"]]});Ye();Ye();St();qt();var IG=$e(zn()),BG=ve("util"),q0=class extends ut{constructor(){super(...arguments);this.fields=ge.String("-f,--fields",{description:"A comma-separated list of manifest fields that should be displayed"});this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.packages=ge.Rest()}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o}=await Pt.find(r,this.context.cwd),a=typeof this.fields<"u"?new Set(["name",...this.fields.split(/\s*,\s*/)]):null,n=[],u=!1,A=await Nt.start({configuration:r,includeFooter:!1,json:this.json,stdout:this.context.stdout},async p=>{for(let h of this.packages){let E;if(h==="."){let ae=o.topLevelWorkspace;if(!ae.manifest.name)throw new it(`Missing ${de.pretty(r,"name",de.Type.CODE)} field in ${ue.fromPortablePath(V.join(ae.cwd,dr.manifest))}`);E=W.makeDescriptor(ae.manifest.name,"unknown")}else E=W.parseDescriptor(h);let I=Zr.getIdentUrl(E),v=vG(await Zr.get(I,{configuration:r,ident:E,jsonResponse:!0,customErrorMessage:Zr.customPackageError})),x=Object.keys(v.versions).sort(IG.default.compareLoose),R=v["dist-tags"].latest||x[x.length-1],L=kr.validRange(E.range);if(L){let ae=IG.default.maxSatisfying(x,L);ae!==null?R=ae:(p.reportWarning(0,`Unmet range ${W.prettyRange(r,E.range)}; falling back to the latest version`),u=!0)}else Object.hasOwn(v["dist-tags"],E.range)?R=v["dist-tags"][E.range]:E.range!=="unknown"&&(p.reportWarning(0,`Unknown tag ${W.prettyRange(r,E.range)}; falling back to the latest version`),u=!0);let U=v.versions[R],J={...v,...U,version:R,versions:x},te;if(a!==null){te={};for(let ae of a){let fe=J[ae];if(typeof fe<"u")te[ae]=fe;else{p.reportWarning(1,`The ${de.pretty(r,ae,de.Type.CODE)} field doesn't exist inside ${W.prettyIdent(r,E)}'s information`),u=!0;continue}}}else this.json||(delete J.dist,delete J.readme,delete J.users),te=J;p.reportJson(te),this.json||n.push(te)}});BG.inspect.styles.name="cyan";for(let p of n)(p!==n[0]||u)&&this.context.stdout.write(` +`),this.context.stdout.write(`${(0,BG.inspect)(p,{depth:1/0,colors:!0,compact:!1})} +`);return A.exitCode()}};q0.paths=[["npm","info"]],q0.usage=nt.Usage({category:"Npm-related commands",description:"show information about a package",details:"\n This command fetches information about a package from the npm registry and prints it in a tree format.\n\n The package does not have to be installed locally, but needs to have been published (in particular, local changes will be ignored even for workspaces).\n\n Append `@` to the package argument to provide information specific to the latest version that satisfies the range or to the corresponding tagged version. If the range is invalid or if there is no version satisfying the range, the command will print a warning and fall back to the latest version.\n\n If the `-f,--fields` option is set, it's a comma-separated list of fields which will be used to only display part of the package information.\n\n By default, this command won't return the `dist`, `readme`, and `users` fields, since they are often very long. To explicitly request those fields, explicitly list them with the `--fields` flag or request the output in JSON mode.\n ",examples:[["Show all available information about react (except the `dist`, `readme`, and `users` fields)","yarn npm info react"],["Show all available information about react as valid JSON (including the `dist`, `readme`, and `users` fields)","yarn npm info react --json"],["Show all available information about react@16.12.0","yarn npm info react@16.12.0"],["Show all available information about react@next","yarn npm info react@next"],["Show the description of react","yarn npm info react --fields description"],["Show all available versions of react","yarn npm info react --fields versions"],["Show the readme of react","yarn npm info react --fields readme"],["Show a few fields of react","yarn npm info react --fields homepage,repository"]]});function vG(t){if(Array.isArray(t)){let e=[];for(let r of t)r=vG(r),r&&e.push(r);return e}else if(typeof t=="object"&&t!==null){let e={};for(let r of Object.keys(t)){if(r.startsWith("_"))continue;let o=vG(t[r]);o&&(e[r]=o)}return e}else return t||null}Ye();Ye();qt();var CBe=$e(f2()),j0=class extends ut{constructor(){super(...arguments);this.scope=ge.String("-s,--scope",{description:"Login to the registry configured for a given scope"});this.publish=ge.Boolean("--publish",!1,{description:"Login to the publish registry"});this.alwaysAuth=ge.Boolean("--always-auth",{description:"Set the npmAlwaysAuth configuration"})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),o=await $Q({configuration:r,cwd:this.context.cwd,publish:this.publish,scope:this.scope});return(await Nt.start({configuration:r,stdout:this.context.stdout,includeFooter:!1},async n=>{let u=await Uvt({configuration:r,registry:o,report:n,stdin:this.context.stdin,stdout:this.context.stdout}),A=await Ovt(o,u,r);return await Mvt(o,A,{alwaysAuth:this.alwaysAuth,scope:this.scope}),n.reportInfo(0,"Successfully logged in")})).exitCode()}};j0.paths=[["npm","login"]],j0.usage=nt.Usage({category:"Npm-related commands",description:"store new login info to access the npm registry",details:"\n This command will ask you for your username, password, and 2FA One-Time-Password (when it applies). It will then modify your local configuration (in your home folder, never in the project itself) to reference the new tokens thus generated.\n\n Adding the `-s,--scope` flag will cause the authentication to be done against whatever registry is configured for the associated scope (see also `npmScopes`).\n\n Adding the `--publish` flag will cause the authentication to be done against the registry used when publishing the package (see also `publishConfig.registry` and `npmPublishRegistry`).\n ",examples:[["Login to the default registry","yarn npm login"],["Login to the registry linked to the @my-scope registry","yarn npm login --scope my-scope"],["Login to the publish registry for the current package","yarn npm login --publish"]]});async function $Q({scope:t,publish:e,configuration:r,cwd:o}){return t&&e?Zn.getScopeRegistry(t,{configuration:r,type:Zn.RegistryType.PUBLISH_REGISTRY}):t?Zn.getScopeRegistry(t,{configuration:r}):e?Zn.getPublishRegistry((await fC(r,o)).manifest,{configuration:r}):Zn.getDefaultRegistry({configuration:r})}async function Ovt(t,e,r){let o=`/-/user/org.couchdb.user:${encodeURIComponent(e.name)}`,a={_id:`org.couchdb.user:${e.name}`,name:e.name,password:e.password,type:"user",roles:[],date:new Date().toISOString()},n={attemptedAs:e.name,configuration:r,registry:t,jsonResponse:!0,authType:Zr.AuthType.NO_AUTH};try{return(await Zr.put(o,a,n)).token}catch(E){if(!(E.originalError?.name==="HTTPError"&&E.originalError?.response.statusCode===409))throw E}let u={...n,authType:Zr.AuthType.NO_AUTH,headers:{authorization:`Basic ${Buffer.from(`${e.name}:${e.password}`).toString("base64")}`}},A=await Zr.get(o,u);for(let[E,I]of Object.entries(A))(!a[E]||E==="roles")&&(a[E]=I);let p=`${o}/-rev/${a._rev}`;return(await Zr.put(p,a,u)).token}async function Mvt(t,e,{alwaysAuth:r,scope:o}){let a=u=>A=>{let p=_e.isIndexableObject(A)?A:{},h=p[u],E=_e.isIndexableObject(h)?h:{};return{...p,[u]:{...E,...r!==void 0?{npmAlwaysAuth:r}:{},npmAuthToken:e}}},n=o?{npmScopes:a(o)}:{npmRegistries:a(t)};return await Ke.updateHomeConfiguration(n)}async function Uvt({configuration:t,registry:e,report:r,stdin:o,stdout:a}){r.reportInfo(0,`Logging in to ${de.pretty(t,e,de.Type.URL)}`);let n=!1;if(e.match(/^https:\/\/npm\.pkg\.github\.com(\/|$)/)&&(r.reportInfo(0,"You seem to be using the GitHub Package Registry. Tokens must be generated with the 'repo', 'write:packages', and 'read:packages' permissions."),n=!0),r.reportSeparator(),t.env.YARN_IS_TEST_ENV)return{name:t.env.YARN_INJECT_NPM_USER||"",password:t.env.YARN_INJECT_NPM_PASSWORD||""};let u=await(0,CBe.prompt)([{type:"input",name:"name",message:"Username:",required:!0,onCancel:()=>process.exit(130),stdin:o,stdout:a},{type:"password",name:"password",message:n?"Token:":"Password:",required:!0,onCancel:()=>process.exit(130),stdin:o,stdout:a}]);return r.reportSeparator(),u}Ye();Ye();qt();var lw=new Set(["npmAuthIdent","npmAuthToken"]),G0=class extends ut{constructor(){super(...arguments);this.scope=ge.String("-s,--scope",{description:"Logout of the registry configured for a given scope"});this.publish=ge.Boolean("--publish",!1,{description:"Logout of the publish registry"});this.all=ge.Boolean("-A,--all",!1,{description:"Logout of all registries"})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),o=async()=>{let n=await $Q({configuration:r,cwd:this.context.cwd,publish:this.publish,scope:this.scope}),u=await Ke.find(this.context.cwd,this.context.plugins),A=W.makeIdent(this.scope??null,"pkg");return!Zn.getAuthConfiguration(n,{configuration:u,ident:A}).get("npmAuthToken")};return(await Nt.start({configuration:r,stdout:this.context.stdout},async n=>{if(this.all&&(await Hvt(),n.reportInfo(0,"Successfully logged out from everything")),this.scope){await wBe("npmScopes",this.scope),await o()?n.reportInfo(0,`Successfully logged out from ${this.scope}`):n.reportWarning(0,"Scope authentication settings removed, but some other ones settings still apply to it");return}let u=await $Q({configuration:r,cwd:this.context.cwd,publish:this.publish});await wBe("npmRegistries",u),await o()?n.reportInfo(0,`Successfully logged out from ${u}`):n.reportWarning(0,"Registry authentication settings removed, but some other ones settings still apply to it")})).exitCode()}};G0.paths=[["npm","logout"]],G0.usage=nt.Usage({category:"Npm-related commands",description:"logout of the npm registry",details:"\n This command will log you out by modifying your local configuration (in your home folder, never in the project itself) to delete all credentials linked to a registry.\n\n Adding the `-s,--scope` flag will cause the deletion to be done against whatever registry is configured for the associated scope (see also `npmScopes`).\n\n Adding the `--publish` flag will cause the deletion to be done against the registry used when publishing the package (see also `publishConfig.registry` and `npmPublishRegistry`).\n\n Adding the `-A,--all` flag will cause the deletion to be done against all registries and scopes.\n ",examples:[["Logout of the default registry","yarn npm logout"],["Logout of the @my-scope scope","yarn npm logout --scope my-scope"],["Logout of the publish registry for the current package","yarn npm logout --publish"],["Logout of all registries","yarn npm logout --all"]]});function _vt(t,e){let r=t[e];if(!_e.isIndexableObject(r))return!1;let o=new Set(Object.keys(r));if([...lw].every(n=>!o.has(n)))return!1;for(let n of lw)o.delete(n);if(o.size===0)return t[e]=void 0,!0;let a={...r};for(let n of lw)delete a[n];return t[e]=a,!0}async function Hvt(){let t=e=>{let r=!1,o=_e.isIndexableObject(e)?{...e}:{};o.npmAuthToken&&(delete o.npmAuthToken,r=!0);for(let a of Object.keys(o))_vt(o,a)&&(r=!0);if(Object.keys(o).length!==0)return r?o:e};return await Ke.updateHomeConfiguration({npmRegistries:t,npmScopes:t})}async function wBe(t,e){return await Ke.updateHomeConfiguration({[t]:r=>{let o=_e.isIndexableObject(r)?r:{};if(!Object.hasOwn(o,e))return r;let a=o[e],n=_e.isIndexableObject(a)?a:{},u=new Set(Object.keys(n));if([...lw].every(p=>!u.has(p)))return r;for(let p of lw)u.delete(p);if(u.size===0)return Object.keys(o).length===1?void 0:{...o,[e]:void 0};let A={};for(let p of lw)A[p]=void 0;return{...o,[e]:{...n,...A}}}})}Ye();qt();var Y0=class extends ut{constructor(){super(...arguments);this.access=ge.String("--access",{description:"The access for the published package (public or restricted)"});this.tag=ge.String("--tag","latest",{description:"The tag on the registry that the package should be attached to"});this.tolerateRepublish=ge.Boolean("--tolerate-republish",!1,{description:"Warn and exit when republishing an already existing version of a package"});this.otp=ge.String("--otp",{description:"The OTP token to use with the command"})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Pt.find(r,this.context.cwd);if(!a)throw new rr(o.cwd,this.context.cwd);if(a.manifest.private)throw new it("Private workspaces cannot be published");if(a.manifest.name===null||a.manifest.version===null)throw new it("Workspaces must have valid names and versions to be published on an external registry");await o.restoreInstallState();let n=a.manifest.name,u=a.manifest.version,A=Zn.getPublishRegistry(a.manifest,{configuration:r});return(await Nt.start({configuration:r,stdout:this.context.stdout},async h=>{if(this.tolerateRepublish)try{let E=await Zr.get(Zr.getIdentUrl(n),{configuration:r,registry:A,ident:n,jsonResponse:!0});if(!Object.hasOwn(E,"versions"))throw new zt(15,'Registry returned invalid data for - missing "versions" field');if(Object.hasOwn(E.versions,u)){h.reportWarning(0,`Registry already knows about version ${u}; skipping.`);return}}catch(E){if(E.originalError?.response?.statusCode!==404)throw E}await un.maybeExecuteWorkspaceLifecycleScript(a,"prepublish",{report:h}),await wA.prepareForPack(a,{report:h},async()=>{let E=await wA.genPackList(a);for(let R of E)h.reportInfo(null,R);let I=await wA.genPackStream(a,E),v=await _e.bufferStream(I),x=await ow.getGitHead(a.cwd),C=await ow.makePublishBody(a,v,{access:this.access,tag:this.tag,registry:A,gitHead:x});await Zr.put(Zr.getIdentUrl(n),C,{configuration:r,registry:A,ident:n,otp:this.otp,jsonResponse:!0})}),h.reportInfo(0,"Package archive published")})).exitCode()}};Y0.paths=[["npm","publish"]],Y0.usage=nt.Usage({category:"Npm-related commands",description:"publish the active workspace to the npm registry",details:'\n This command will pack the active workspace into a fresh archive and upload it to the npm registry.\n\n The package will by default be attached to the `latest` tag on the registry, but this behavior can be overriden by using the `--tag` option.\n\n Note that for legacy reasons scoped packages are by default published with an access set to `restricted` (aka "private packages"). This requires you to register for a paid npm plan. In case you simply wish to publish a public scoped package to the registry (for free), just add the `--access public` flag. This behavior can be enabled by default through the `npmPublishAccess` settings.\n ',examples:[["Publish the active workspace","yarn npm publish"]]});Ye();qt();var IBe=$e(zn());Ye();St();qt();var W0=class extends ut{constructor(){super(...arguments);this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.package=ge.String({required:!1})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Pt.find(r,this.context.cwd),n;if(typeof this.package<"u")n=W.parseIdent(this.package);else{if(!a)throw new rr(o.cwd,this.context.cwd);if(!a.manifest.name)throw new it(`Missing 'name' field in ${ue.fromPortablePath(V.join(a.cwd,dr.manifest))}`);n=a.manifest.name}let u=await Tv(n,r),p={children:_e.sortMap(Object.entries(u),([h])=>h).map(([h,E])=>({value:de.tuple(de.Type.RESOLUTION,{descriptor:W.makeDescriptor(n,h),locator:W.makeLocator(n,E)})}))};return $s.emitTree(p,{configuration:r,json:this.json,stdout:this.context.stdout})}};W0.paths=[["npm","tag","list"]],W0.usage=nt.Usage({category:"Npm-related commands",description:"list all dist-tags of a package",details:` + This command will list all tags of a package from the npm registry. + + If the package is not specified, Yarn will default to the current workspace. + `,examples:[["List all tags of package `my-pkg`","yarn npm tag list my-pkg"]]});async function Tv(t,e){let r=`/-/package${Zr.getIdentUrl(t)}/dist-tags`;return Zr.get(r,{configuration:e,ident:t,jsonResponse:!0,customErrorMessage:Zr.customPackageError})}var K0=class extends ut{constructor(){super(...arguments);this.package=ge.String();this.tag=ge.String()}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Pt.find(r,this.context.cwd);if(!a)throw new rr(o.cwd,this.context.cwd);let n=W.parseDescriptor(this.package,!0),u=n.range;if(!IBe.default.valid(u))throw new it(`The range ${de.pretty(r,n.range,de.Type.RANGE)} must be a valid semver version`);let A=Zn.getPublishRegistry(a.manifest,{configuration:r}),p=de.pretty(r,n,de.Type.IDENT),h=de.pretty(r,u,de.Type.RANGE),E=de.pretty(r,this.tag,de.Type.CODE);return(await Nt.start({configuration:r,stdout:this.context.stdout},async v=>{let x=await Tv(n,r);Object.hasOwn(x,this.tag)&&x[this.tag]===u&&v.reportWarning(0,`Tag ${E} is already set to version ${h}`);let C=`/-/package${Zr.getIdentUrl(n)}/dist-tags/${encodeURIComponent(this.tag)}`;await Zr.put(C,u,{configuration:r,registry:A,ident:n,jsonRequest:!0,jsonResponse:!0}),v.reportInfo(0,`Tag ${E} added to version ${h} of package ${p}`)})).exitCode()}};K0.paths=[["npm","tag","add"]],K0.usage=nt.Usage({category:"Npm-related commands",description:"add a tag for a specific version of a package",details:` + This command will add a tag to the npm registry for a specific version of a package. If the tag already exists, it will be overwritten. + `,examples:[["Add a `beta` tag for version `2.3.4-beta.4` of package `my-pkg`","yarn npm tag add my-pkg@2.3.4-beta.4 beta"]]});Ye();qt();var V0=class extends ut{constructor(){super(...arguments);this.package=ge.String();this.tag=ge.String()}async execute(){if(this.tag==="latest")throw new it("The 'latest' tag cannot be removed.");let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Pt.find(r,this.context.cwd);if(!a)throw new rr(o.cwd,this.context.cwd);let n=W.parseIdent(this.package),u=Zn.getPublishRegistry(a.manifest,{configuration:r}),A=de.pretty(r,this.tag,de.Type.CODE),p=de.pretty(r,n,de.Type.IDENT),h=await Tv(n,r);if(!Object.hasOwn(h,this.tag))throw new it(`${A} is not a tag of package ${p}`);return(await Nt.start({configuration:r,stdout:this.context.stdout},async I=>{let v=`/-/package${Zr.getIdentUrl(n)}/dist-tags/${encodeURIComponent(this.tag)}`;await Zr.del(v,{configuration:r,registry:u,ident:n,jsonResponse:!0}),I.reportInfo(0,`Tag ${A} removed from package ${p}`)})).exitCode()}};V0.paths=[["npm","tag","remove"]],V0.usage=nt.Usage({category:"Npm-related commands",description:"remove a tag from a package",details:` + This command will remove a tag from a package from the npm registry. + `,examples:[["Remove the `beta` tag from package `my-pkg`","yarn npm tag remove my-pkg beta"]]});Ye();Ye();qt();var J0=class extends ut{constructor(){super(...arguments);this.scope=ge.String("-s,--scope",{description:"Print username for the registry configured for a given scope"});this.publish=ge.Boolean("--publish",!1,{description:"Print username for the publish registry"})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),o;return this.scope&&this.publish?o=Zn.getScopeRegistry(this.scope,{configuration:r,type:Zn.RegistryType.PUBLISH_REGISTRY}):this.scope?o=Zn.getScopeRegistry(this.scope,{configuration:r}):this.publish?o=Zn.getPublishRegistry((await fC(r,this.context.cwd)).manifest,{configuration:r}):o=Zn.getDefaultRegistry({configuration:r}),(await Nt.start({configuration:r,stdout:this.context.stdout},async n=>{let u;try{u=await Zr.get("/-/whoami",{configuration:r,registry:o,authType:Zr.AuthType.ALWAYS_AUTH,jsonResponse:!0,ident:this.scope?W.makeIdent(this.scope,""):void 0})}catch(A){if(A.response?.statusCode===401||A.response?.statusCode===403){n.reportError(41,"Authentication failed - your credentials may have expired");return}else throw A}n.reportInfo(0,u.username)})).exitCode()}};J0.paths=[["npm","whoami"]],J0.usage=nt.Usage({category:"Npm-related commands",description:"display the name of the authenticated user",details:"\n Print the username associated with the current authentication settings to the standard output.\n\n When using `-s,--scope`, the username printed will be the one that matches the authentication settings of the registry associated with the given scope (those settings can be overriden using the `npmRegistries` map, and the registry associated with the scope is configured via the `npmScopes` map).\n\n When using `--publish`, the registry we'll select will by default be the one used when publishing packages (`publishConfig.registry` or `npmPublishRegistry` if available, otherwise we'll fallback to the regular `npmRegistryServer`).\n ",examples:[["Print username for the default registry","yarn npm whoami"],["Print username for the registry on a given scope","yarn npm whoami --scope company"]]});var qvt={configuration:{npmPublishAccess:{description:"Default access of the published packages",type:"STRING",default:null},npmAuditExcludePackages:{description:"Array of glob patterns of packages to exclude from npm audit",type:"STRING",default:[],isArray:!0},npmAuditIgnoreAdvisories:{description:"Array of glob patterns of advisory IDs to exclude from npm audit",type:"STRING",default:[],isArray:!0}},commands:[H0,q0,j0,G0,Y0,K0,W0,V0,J0]},jvt=qvt;var FG={};Vt(FG,{PatchCommand:()=>Z0,PatchCommitCommand:()=>X0,PatchFetcher:()=>Uv,PatchResolver:()=>_v,default:()=>aDt,patchUtils:()=>Sm});Ye();Ye();St();nA();var Sm={};Vt(Sm,{applyPatchFile:()=>tF,diffFolders:()=>kG,ensureUnpatchedDescriptor:()=>SG,ensureUnpatchedLocator:()=>nF,extractPackageToDisk:()=>xG,extractPatchFlags:()=>xBe,isParentRequired:()=>bG,isPatchDescriptor:()=>rF,isPatchLocator:()=>z0,loadPatchFiles:()=>Mv,makeDescriptor:()=>iF,makeLocator:()=>PG,makePatchHash:()=>QG,parseDescriptor:()=>Lv,parseLocator:()=>Ov,parsePatchFile:()=>Nv,unpatchDescriptor:()=>iDt,unpatchLocator:()=>sDt});Ye();St();Ye();St();var Gvt=/^@@ -(\d+)(,(\d+))? \+(\d+)(,(\d+))? @@.*/;function cw(t){return V.relative(Bt.root,V.resolve(Bt.root,ue.toPortablePath(t)))}function Yvt(t){let e=t.trim().match(Gvt);if(!e)throw new Error(`Bad header line: '${t}'`);return{original:{start:Math.max(Number(e[1]),1),length:Number(e[3]||1)},patched:{start:Math.max(Number(e[4]),1),length:Number(e[6]||1)}}}var Wvt=420,Kvt=493;var BBe=()=>({semverExclusivity:null,diffLineFromPath:null,diffLineToPath:null,oldMode:null,newMode:null,deletedFileMode:null,newFileMode:null,renameFrom:null,renameTo:null,beforeHash:null,afterHash:null,fromPath:null,toPath:null,hunks:null}),Vvt=t=>({header:Yvt(t),parts:[]}),Jvt={["@"]:"header",["-"]:"deletion",["+"]:"insertion",[" "]:"context",["\\"]:"pragma",undefined:"context"};function zvt(t){let e=[],r=BBe(),o="parsing header",a=null,n=null;function u(){a&&(n&&(a.parts.push(n),n=null),r.hunks.push(a),a=null)}function A(){u(),e.push(r),r=BBe()}for(let p=0;p0?"patch":"mode change",J=null;switch(U){case"rename":{if(!E||!I)throw new Error("Bad parser state: rename from & to not given");e.push({type:"rename",semverExclusivity:o,fromPath:cw(E),toPath:cw(I)}),J=I}break;case"file deletion":{let te=a||C;if(!te)throw new Error("Bad parse state: no path given for file deletion");e.push({type:"file deletion",semverExclusivity:o,hunk:L&&L[0]||null,path:cw(te),mode:eF(p),hash:v})}break;case"file creation":{let te=n||R;if(!te)throw new Error("Bad parse state: no path given for file creation");e.push({type:"file creation",semverExclusivity:o,hunk:L&&L[0]||null,path:cw(te),mode:eF(h),hash:x})}break;case"patch":case"mode change":J=R||n;break;default:_e.assertNever(U);break}J&&u&&A&&u!==A&&e.push({type:"mode change",semverExclusivity:o,path:cw(J),oldMode:eF(u),newMode:eF(A)}),J&&L&&L.length&&e.push({type:"patch",semverExclusivity:o,path:cw(J),hunks:L,beforeHash:v,afterHash:x})}if(e.length===0)throw new Error("Unable to parse patch file: No changes found. Make sure the patch is a valid UTF8 encoded string");return e}function eF(t){let e=parseInt(t,8)&511;if(e!==Wvt&&e!==Kvt)throw new Error(`Unexpected file mode string: ${t}`);return e}function Nv(t){let e=t.split(/\n/g);return e[e.length-1]===""&&e.pop(),Xvt(zvt(e))}function Zvt(t){let e=0,r=0;for(let{type:o,lines:a}of t.parts)switch(o){case"context":r+=a.length,e+=a.length;break;case"deletion":e+=a.length;break;case"insertion":r+=a.length;break;default:_e.assertNever(o);break}if(e!==t.header.original.length||r!==t.header.patched.length){let o=a=>a<0?a:`+${a}`;throw new Error(`hunk header integrity check failed (expected @@ ${o(t.header.original.length)} ${o(t.header.patched.length)} @@, got @@ ${o(e)} ${o(r)} @@)`)}}Ye();St();var uw=class extends Error{constructor(r,o){super(`Cannot apply hunk #${r+1}`);this.hunk=o}};async function Aw(t,e,r){let o=await t.lstatPromise(e),a=await r();typeof a<"u"&&(e=a),await t.lutimesPromise(e,o.atime,o.mtime)}async function tF(t,{baseFs:e=new Tn,dryRun:r=!1,version:o=null}={}){for(let a of t)if(!(a.semverExclusivity!==null&&o!==null&&!kr.satisfiesWithPrereleases(o,a.semverExclusivity)))switch(a.type){case"file deletion":if(r){if(!e.existsSync(a.path))throw new Error(`Trying to delete a file that doesn't exist: ${a.path}`)}else await Aw(e,V.dirname(a.path),async()=>{await e.unlinkPromise(a.path)});break;case"rename":if(r){if(!e.existsSync(a.fromPath))throw new Error(`Trying to move a file that doesn't exist: ${a.fromPath}`)}else await Aw(e,V.dirname(a.fromPath),async()=>{await Aw(e,V.dirname(a.toPath),async()=>{await Aw(e,a.fromPath,async()=>(await e.movePromise(a.fromPath,a.toPath),a.toPath))})});break;case"file creation":if(r){if(e.existsSync(a.path))throw new Error(`Trying to create a file that already exists: ${a.path}`)}else{let n=a.hunk?a.hunk.parts[0].lines.join(` +`)+(a.hunk.parts[0].noNewlineAtEndOfFile?"":` +`):"";await e.mkdirpPromise(V.dirname(a.path),{chmod:493,utimes:[vi.SAFE_TIME,vi.SAFE_TIME]}),await e.writeFilePromise(a.path,n,{mode:a.mode}),await e.utimesPromise(a.path,vi.SAFE_TIME,vi.SAFE_TIME)}break;case"patch":await Aw(e,a.path,async()=>{await tDt(a,{baseFs:e,dryRun:r})});break;case"mode change":{let u=(await e.statPromise(a.path)).mode;if(vBe(a.newMode)!==vBe(u))continue;await Aw(e,a.path,async()=>{await e.chmodPromise(a.path,a.newMode)})}break;default:_e.assertNever(a);break}}function vBe(t){return(t&64)>0}function DBe(t){return t.replace(/\s+$/,"")}function eDt(t,e){return DBe(t)===DBe(e)}async function tDt({hunks:t,path:e},{baseFs:r,dryRun:o=!1}){let a=await r.statSync(e).mode,u=(await r.readFileSync(e,"utf8")).split(/\n/),A=[],p=0,h=0;for(let I of t){let v=Math.max(h,I.header.patched.start+p),x=Math.max(0,v-h),C=Math.max(0,u.length-v-I.header.original.length),R=Math.max(x,C),L=0,U=0,J=null;for(;L<=R;){if(L<=x&&(U=v-L,J=SBe(I,u,U),J!==null)){L=-L;break}if(L<=C&&(U=v+L,J=SBe(I,u,U),J!==null))break;L+=1}if(J===null)throw new uw(t.indexOf(I),I);A.push(J),p+=L,h=U+I.header.original.length}if(o)return;let E=0;for(let I of A)for(let v of I)switch(v.type){case"splice":{let x=v.index+E;u.splice(x,v.numToDelete,...v.linesToInsert),E+=v.linesToInsert.length-v.numToDelete}break;case"pop":u.pop();break;case"push":u.push(v.line);break;default:_e.assertNever(v);break}await r.writeFilePromise(e,u.join(` +`),{mode:a})}function SBe(t,e,r){let o=[];for(let a of t.parts)switch(a.type){case"context":case"deletion":{for(let n of a.lines){let u=e[r];if(u==null||!eDt(u,n))return null;r+=1}a.type==="deletion"&&(o.push({type:"splice",index:r-a.lines.length,numToDelete:a.lines.length,linesToInsert:[]}),a.noNewlineAtEndOfFile&&o.push({type:"push",line:""}))}break;case"insertion":o.push({type:"splice",index:r,numToDelete:0,linesToInsert:a.lines}),a.noNewlineAtEndOfFile&&o.push({type:"pop"});break;default:_e.assertNever(a.type);break}return o}var nDt=/^builtin<([^>]+)>$/;function fw(t,e){let{protocol:r,source:o,selector:a,params:n}=W.parseRange(t);if(r!=="patch:")throw new Error("Invalid patch range");if(o===null)throw new Error("Patch locators must explicitly define their source");let u=a?a.split(/&/).map(E=>ue.toPortablePath(E)):[],A=n&&typeof n.locator=="string"?W.parseLocator(n.locator):null,p=n&&typeof n.version=="string"?n.version:null,h=e(o);return{parentLocator:A,sourceItem:h,patchPaths:u,sourceVersion:p}}function rF(t){return t.range.startsWith("patch:")}function z0(t){return t.reference.startsWith("patch:")}function Lv(t){let{sourceItem:e,...r}=fw(t.range,W.parseDescriptor);return{...r,sourceDescriptor:e}}function Ov(t){let{sourceItem:e,...r}=fw(t.reference,W.parseLocator);return{...r,sourceLocator:e}}function iDt(t){let{sourceItem:e}=fw(t.range,W.parseDescriptor);return e}function sDt(t){let{sourceItem:e}=fw(t.reference,W.parseLocator);return e}function SG(t){if(!rF(t))return t;let{sourceItem:e}=fw(t.range,W.parseDescriptor);return e}function nF(t){if(!z0(t))return t;let{sourceItem:e}=fw(t.reference,W.parseLocator);return e}function PBe({parentLocator:t,sourceItem:e,patchPaths:r,sourceVersion:o,patchHash:a},n){let u=t!==null?{locator:W.stringifyLocator(t)}:{},A=typeof o<"u"?{version:o}:{},p=typeof a<"u"?{hash:a}:{};return W.makeRange({protocol:"patch:",source:n(e),selector:r.join("&"),params:{...A,...p,...u}})}function iF(t,{parentLocator:e,sourceDescriptor:r,patchPaths:o}){return W.makeDescriptor(t,PBe({parentLocator:e,sourceItem:r,patchPaths:o},W.stringifyDescriptor))}function PG(t,{parentLocator:e,sourcePackage:r,patchPaths:o,patchHash:a}){return W.makeLocator(t,PBe({parentLocator:e,sourceItem:r,sourceVersion:r.version,patchPaths:o,patchHash:a},W.stringifyLocator))}function bBe({onAbsolute:t,onRelative:e,onProject:r,onBuiltin:o},a){let n=a.lastIndexOf("!");n!==-1&&(a=a.slice(n+1));let u=a.match(nDt);return u!==null?o(u[1]):a.startsWith("~/")?r(a.slice(2)):V.isAbsolute(a)?t(a):e(a)}function xBe(t){let e=t.lastIndexOf("!");return{optional:(e!==-1?new Set(t.slice(0,e).split(/!/)):new Set).has("optional")}}function bG(t){return bBe({onAbsolute:()=>!1,onRelative:()=>!0,onProject:()=>!1,onBuiltin:()=>!1},t)}async function Mv(t,e,r){let o=t!==null?await r.fetcher.fetch(t,r):null,a=o&&o.localPath?{packageFs:new gn(Bt.root),prefixPath:V.relative(Bt.root,o.localPath)}:o;o&&o!==a&&o.releaseFs&&o.releaseFs();let n=await _e.releaseAfterUseAsync(async()=>await Promise.all(e.map(async u=>{let A=xBe(u),p=await bBe({onAbsolute:async h=>await oe.readFilePromise(h,"utf8"),onRelative:async h=>{if(a===null)throw new Error("Assertion failed: The parent locator should have been fetched");return await a.packageFs.readFilePromise(V.join(a.prefixPath,h),"utf8")},onProject:async h=>await oe.readFilePromise(V.join(r.project.cwd,h),"utf8"),onBuiltin:async h=>await r.project.configuration.firstHook(E=>E.getBuiltinPatch,r.project,h)},u);return{...A,source:p}})));for(let u of n)typeof u.source=="string"&&(u.source=u.source.replace(/\r\n?/g,` +`));return n}async function xG(t,{cache:e,project:r}){let o=r.storedPackages.get(t.locatorHash);if(typeof o>"u")throw new Error("Assertion failed: Expected the package to be registered");let a=nF(t),n=r.storedChecksums,u=new Qi,A=await oe.mktempPromise(),p=V.join(A,"source"),h=V.join(A,"user"),E=V.join(A,".yarn-patch.json"),I=r.configuration.makeFetcher(),v=[];try{let x,C;if(t.locatorHash===a.locatorHash){let R=await I.fetch(t,{cache:e,project:r,fetcher:I,checksums:n,report:u});v.push(()=>R.releaseFs?.()),x=R,C=R}else x=await I.fetch(t,{cache:e,project:r,fetcher:I,checksums:n,report:u}),v.push(()=>x.releaseFs?.()),C=await I.fetch(t,{cache:e,project:r,fetcher:I,checksums:n,report:u}),v.push(()=>C.releaseFs?.());await Promise.all([oe.copyPromise(p,x.prefixPath,{baseFs:x.packageFs}),oe.copyPromise(h,C.prefixPath,{baseFs:C.packageFs}),oe.writeJsonPromise(E,{locator:W.stringifyLocator(t),version:o.version})])}finally{for(let x of v)x()}return oe.detachTemp(A),h}async function kG(t,e){let r=ue.fromPortablePath(t).replace(/\\/g,"/"),o=ue.fromPortablePath(e).replace(/\\/g,"/"),{stdout:a,stderr:n}=await Ur.execvp("git",["-c","core.safecrlf=false","diff","--src-prefix=a/","--dst-prefix=b/","--ignore-cr-at-eol","--full-index","--no-index","--no-renames","--text",r,o],{cwd:ue.toPortablePath(process.cwd()),env:{...process.env,GIT_CONFIG_NOSYSTEM:"1",HOME:"",XDG_CONFIG_HOME:"",USERPROFILE:""}});if(n.length>0)throw new Error(`Unable to diff directories. Make sure you have a recent version of 'git' available in PATH. +The following error was reported by 'git': +${n}`);let u=r.startsWith("/")?A=>A.slice(1):A=>A;return a.replace(new RegExp(`(a|b)(${_e.escapeRegExp(`/${u(r)}/`)})`,"g"),"$1/").replace(new RegExp(`(a|b)${_e.escapeRegExp(`/${u(o)}/`)}`,"g"),"$1/").replace(new RegExp(_e.escapeRegExp(`${r}/`),"g"),"").replace(new RegExp(_e.escapeRegExp(`${o}/`),"g"),"")}function QG(t,e){let r=[];for(let{source:o}of t){if(o===null)continue;let a=Nv(o);for(let n of a){let{semverExclusivity:u,...A}=n;u!==null&&e!==null&&!kr.satisfiesWithPrereleases(e,u)||r.push(JSON.stringify(A))}}return wn.makeHash(`${3}`,...r).slice(0,6)}Ye();function kBe(t,{configuration:e,report:r}){for(let o of t.parts)for(let a of o.lines)switch(o.type){case"context":r.reportInfo(null,` ${de.pretty(e,a,"grey")}`);break;case"deletion":r.reportError(28,`- ${de.pretty(e,a,de.Type.REMOVED)}`);break;case"insertion":r.reportError(28,`+ ${de.pretty(e,a,de.Type.ADDED)}`);break;default:_e.assertNever(o.type)}}var Uv=class{supports(e,r){return!!z0(e)}getLocalPath(e,r){return null}async fetch(e,r){let o=r.checksums.get(e.locatorHash)||null,[a,n,u]=await r.cache.fetchPackageFromCache(e,o,{onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${W.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from the disk`),loader:()=>this.patchPackage(e,r),...r.cacheOptions});return{packageFs:a,releaseFs:n,prefixPath:W.getIdentVendorPath(e),localPath:this.getLocalPath(e,r),checksum:u}}async patchPackage(e,r){let{parentLocator:o,sourceLocator:a,sourceVersion:n,patchPaths:u}=Ov(e),A=await Mv(o,u,r),p=await oe.mktempPromise(),h=V.join(p,"current.zip"),E=await r.fetcher.fetch(a,r),I=W.getIdentVendorPath(e),v=new zi(h,{create:!0,level:r.project.configuration.get("compressionLevel")});await _e.releaseAfterUseAsync(async()=>{await v.copyPromise(I,E.prefixPath,{baseFs:E.packageFs,stableSort:!0})},E.releaseFs),v.saveAndClose();for(let{source:x,optional:C}of A){if(x===null)continue;let R=new zi(h,{level:r.project.configuration.get("compressionLevel")}),L=new gn(V.resolve(Bt.root,I),{baseFs:R});try{await tF(Nv(x),{baseFs:L,version:n})}catch(U){if(!(U instanceof uw))throw U;let J=r.project.configuration.get("enableInlineHunks"),te=!J&&!C?" (set enableInlineHunks for details)":"",ae=`${W.prettyLocator(r.project.configuration,e)}: ${U.message}${te}`,fe=ce=>{!J||kBe(U.hunk,{configuration:r.project.configuration,report:ce})};if(R.discardAndClose(),C){r.report.reportWarningOnce(66,ae,{reportExtra:fe});continue}else throw new zt(66,ae,fe)}R.saveAndClose()}return new zi(h,{level:r.project.configuration.get("compressionLevel")})}};Ye();var _v=class{supportsDescriptor(e,r){return!!rF(e)}supportsLocator(e,r){return!!z0(e)}shouldPersistResolution(e,r){return!1}bindDescriptor(e,r,o){let{patchPaths:a}=Lv(e);return a.every(n=>!bG(n))?e:W.bindDescriptor(e,{locator:W.stringifyLocator(r)})}getResolutionDependencies(e,r){let{sourceDescriptor:o}=Lv(e);return{sourceDescriptor:r.project.configuration.normalizeDependency(o)}}async getCandidates(e,r,o){if(!o.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let{parentLocator:a,patchPaths:n}=Lv(e),u=await Mv(a,n,o.fetchOptions),A=r.sourceDescriptor;if(typeof A>"u")throw new Error("Assertion failed: The dependency should have been resolved");let p=QG(u,A.version);return[PG(e,{parentLocator:a,sourcePackage:A,patchPaths:n,patchHash:p})]}async getSatisfying(e,r,o,a){let[n]=await this.getCandidates(e,r,a);return{locators:o.filter(u=>u.locatorHash===n.locatorHash),sorted:!1}}async resolve(e,r){let{sourceLocator:o}=Ov(e);return{...await r.resolver.resolve(o,r),...e}}};Ye();St();qt();var X0=class extends ut{constructor(){super(...arguments);this.save=ge.Boolean("-s,--save",!1,{description:"Add the patch to your resolution entries"});this.patchFolder=ge.String()}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Pt.find(r,this.context.cwd);if(!a)throw new rr(o.cwd,this.context.cwd);await o.restoreInstallState();let n=V.resolve(this.context.cwd,ue.toPortablePath(this.patchFolder)),u=V.join(n,"../source"),A=V.join(n,"../.yarn-patch.json");if(!oe.existsSync(u))throw new it("The argument folder didn't get created by 'yarn patch'");let p=await kG(u,n),h=await oe.readJsonPromise(A),E=W.parseLocator(h.locator,!0);if(!o.storedPackages.has(E.locatorHash))throw new it("No package found in the project for the given locator");if(!this.save){this.context.stdout.write(p);return}let I=r.get("patchFolder"),v=V.join(I,`${W.slugifyLocator(E)}.patch`);await oe.mkdirPromise(I,{recursive:!0}),await oe.writeFilePromise(v,p);let x=[],C=new Map;for(let R of o.storedPackages.values()){if(W.isVirtualLocator(R))continue;let L=R.dependencies.get(E.identHash);if(!L)continue;let U=W.ensureDevirtualizedDescriptor(L),J=SG(U),te=o.storedResolutions.get(J.descriptorHash);if(!te)throw new Error("Assertion failed: Expected the resolution to have been registered");if(!o.storedPackages.get(te))throw new Error("Assertion failed: Expected the package to have been registered");let fe=o.tryWorkspaceByLocator(R);if(fe)x.push(fe);else{let ce=o.originalPackages.get(R.locatorHash);if(!ce)throw new Error("Assertion failed: Expected the original package to have been registered");let me=ce.dependencies.get(L.identHash);if(!me)throw new Error("Assertion failed: Expected the original dependency to have been registered");C.set(me.descriptorHash,me)}}for(let R of x)for(let L of Ot.hardDependencies){let U=R.manifest[L].get(E.identHash);if(!U)continue;let J=iF(U,{parentLocator:null,sourceDescriptor:W.convertLocatorToDescriptor(E),patchPaths:[V.join(dr.home,V.relative(o.cwd,v))]});R.manifest[L].set(U.identHash,J)}for(let R of C.values()){let L=iF(R,{parentLocator:null,sourceDescriptor:W.convertLocatorToDescriptor(E),patchPaths:[V.join(dr.home,V.relative(o.cwd,v))]});o.topLevelWorkspace.manifest.resolutions.push({pattern:{descriptor:{fullName:W.stringifyIdent(L),description:R.range}},reference:L.range})}await o.persist()}};X0.paths=[["patch-commit"]],X0.usage=nt.Usage({description:"generate a patch out of a directory",details:"\n By default, this will print a patchfile on stdout based on the diff between the folder passed in and the original version of the package. Such file is suitable for consumption with the `patch:` protocol.\n\n With the `-s,--save` option set, the patchfile won't be printed on stdout anymore and will instead be stored within a local file (by default kept within `.yarn/patches`, but configurable via the `patchFolder` setting). A `resolutions` entry will also be added to your top-level manifest, referencing the patched package via the `patch:` protocol.\n\n Note that only folders generated by `yarn patch` are accepted as valid input for `yarn patch-commit`.\n "});Ye();St();qt();var Z0=class extends ut{constructor(){super(...arguments);this.update=ge.Boolean("-u,--update",!1,{description:"Reapply local patches that already apply to this packages"});this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.package=ge.String()}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Pt.find(r,this.context.cwd),n=await Lr.find(r);if(!a)throw new rr(o.cwd,this.context.cwd);await o.restoreInstallState();let u=W.parseLocator(this.package);if(u.reference==="unknown"){let A=_e.mapAndFilter([...o.storedPackages.values()],p=>p.identHash!==u.identHash?_e.mapAndFilter.skip:W.isVirtualLocator(p)?_e.mapAndFilter.skip:z0(p)!==this.update?_e.mapAndFilter.skip:p);if(A.length===0)throw new it("No package found in the project for the given locator");if(A.length>1)throw new it(`Multiple candidate packages found; explicitly choose one of them (use \`yarn why \` to get more information as to who depends on them): +${A.map(p=>` +- ${W.prettyLocator(r,p)}`).join("")}`);u=A[0]}if(!o.storedPackages.has(u.locatorHash))throw new it("No package found in the project for the given locator");await Nt.start({configuration:r,json:this.json,stdout:this.context.stdout},async A=>{let p=nF(u),h=await xG(u,{cache:n,project:o});A.reportJson({locator:W.stringifyLocator(p),path:ue.fromPortablePath(h)});let E=this.update?" along with its current modifications":"";A.reportInfo(0,`Package ${W.prettyLocator(r,p)} got extracted with success${E}!`),A.reportInfo(0,`You can now edit the following folder: ${de.pretty(r,ue.fromPortablePath(h),"magenta")}`),A.reportInfo(0,`Once you are done run ${de.pretty(r,`yarn patch-commit -s ${process.platform==="win32"?'"':""}${ue.fromPortablePath(h)}${process.platform==="win32"?'"':""}`,"cyan")} and Yarn will store a patchfile based on your changes.`)})}};Z0.paths=[["patch"]],Z0.usage=nt.Usage({description:"prepare a package for patching",details:"\n This command will cause a package to be extracted in a temporary directory intended to be editable at will.\n\n Once you're done with your changes, run `yarn patch-commit -s path` (with `path` being the temporary directory you received) to generate a patchfile and register it into your top-level manifest via the `patch:` protocol. Run `yarn patch-commit -h` for more details.\n\n Calling the command when you already have a patch won't import it by default (in other words, the default behavior is to reset existing patches). However, adding the `-u,--update` flag will import any current patch.\n "});var oDt={configuration:{enableInlineHunks:{description:"If true, the installs will print unmatched patch hunks",type:"BOOLEAN",default:!1},patchFolder:{description:"Folder where the patch files must be written",type:"ABSOLUTE_PATH",default:"./.yarn/patches"}},commands:[X0,Z0],fetchers:[Uv],resolvers:[_v]},aDt=oDt;var NG={};Vt(NG,{PnpmLinker:()=>Hv,default:()=>fDt});Ye();St();qt();var Hv=class{getCustomDataKey(){return JSON.stringify({name:"PnpmLinker",version:3})}supportsPackage(e,r){return this.isEnabled(r)}async findPackageLocation(e,r){if(!this.isEnabled(r))throw new Error("Assertion failed: Expected the pnpm linker to be enabled");let o=this.getCustomDataKey(),a=r.project.linkersCustomData.get(o);if(!a)throw new it(`The project in ${de.pretty(r.project.configuration,`${r.project.cwd}/package.json`,de.Type.PATH)} doesn't seem to have been installed - running an install there might help`);let n=a.pathsByLocator.get(e.locatorHash);if(typeof n>"u")throw new it(`Couldn't find ${W.prettyLocator(r.project.configuration,e)} in the currently installed pnpm map - running an install might help`);return n.packageLocation}async findPackageLocator(e,r){if(!this.isEnabled(r))return null;let o=this.getCustomDataKey(),a=r.project.linkersCustomData.get(o);if(!a)throw new it(`The project in ${de.pretty(r.project.configuration,`${r.project.cwd}/package.json`,de.Type.PATH)} doesn't seem to have been installed - running an install there might help`);let n=e.match(/(^.*\/node_modules\/(@[^/]*\/)?[^/]+)(\/.*$)/);if(n){let p=a.locatorByPath.get(n[1]);if(p)return p}let u=e,A=e;do{A=u,u=V.dirname(A);let p=a.locatorByPath.get(A);if(p)return p}while(u!==A);return null}makeInstaller(e){return new RG(e)}isEnabled(e){return e.project.configuration.get("nodeLinker")==="pnpm"}},RG=class{constructor(e){this.opts=e;this.asyncActions=new _e.AsyncActions(10);this.customData={pathsByLocator:new Map,locatorByPath:new Map};this.indexFolderPromise=SD(oe,{indexPath:V.join(e.project.configuration.get("globalFolder"),"index")})}attachCustomData(e){}async installPackage(e,r,o){switch(e.linkType){case"SOFT":return this.installPackageSoft(e,r,o);case"HARD":return this.installPackageHard(e,r,o)}throw new Error("Assertion failed: Unsupported package link type")}async installPackageSoft(e,r,o){let a=V.resolve(r.packageFs.getRealPath(),r.prefixPath),n=this.opts.project.tryWorkspaceByLocator(e)?V.join(a,dr.nodeModules):null;return this.customData.pathsByLocator.set(e.locatorHash,{packageLocation:a,dependenciesLocation:n}),{packageLocation:a,buildRequest:null}}async installPackageHard(e,r,o){let a=lDt(e,{project:this.opts.project}),n=a.packageLocation;this.customData.locatorByPath.set(n,W.stringifyLocator(e)),this.customData.pathsByLocator.set(e.locatorHash,a),o.holdFetchResult(this.asyncActions.set(e.locatorHash,async()=>{await oe.mkdirPromise(n,{recursive:!0}),await oe.copyPromise(n,r.prefixPath,{baseFs:r.packageFs,overwrite:!1,linkStrategy:{type:"HardlinkFromIndex",indexPath:await this.indexFolderPromise,autoRepair:!0}})}));let A=W.isVirtualLocator(e)?W.devirtualizeLocator(e):e,p={manifest:await Ot.tryFind(r.prefixPath,{baseFs:r.packageFs})??new Ot,misc:{hasBindingGyp:yA.hasBindingGyp(r)}},h=this.opts.project.getDependencyMeta(A,e.version),E=yA.extractBuildRequest(e,p,h,{configuration:this.opts.project.configuration});return{packageLocation:n,buildRequest:E}}async attachInternalDependencies(e,r){if(this.opts.project.configuration.get("nodeLinker")!=="pnpm"||!QBe(e,{project:this.opts.project}))return;let o=this.customData.pathsByLocator.get(e.locatorHash);if(typeof o>"u")throw new Error(`Assertion failed: Expected the package to have been registered (${W.stringifyLocator(e)})`);let{dependenciesLocation:a}=o;!a||this.asyncActions.reduce(e.locatorHash,async n=>{await oe.mkdirPromise(a,{recursive:!0});let u=await cDt(a),A=new Map(u),p=[n],h=(I,v)=>{let x=v;QBe(v,{project:this.opts.project})||(this.opts.report.reportWarningOnce(0,"The pnpm linker doesn't support providing different versions to workspaces' peer dependencies"),x=W.devirtualizeLocator(v));let C=this.customData.pathsByLocator.get(x.locatorHash);if(typeof C>"u")throw new Error(`Assertion failed: Expected the package to have been registered (${W.stringifyLocator(v)})`);let R=W.stringifyIdent(I),L=V.join(a,R),U=V.relative(V.dirname(L),C.packageLocation),J=A.get(R);A.delete(R),p.push(Promise.resolve().then(async()=>{if(J){if(J.isSymbolicLink()&&await oe.readlinkPromise(L)===U)return;await oe.removePromise(L)}await oe.mkdirpPromise(V.dirname(L)),process.platform=="win32"&&this.opts.project.configuration.get("winLinkType")==="junctions"?await oe.symlinkPromise(C.packageLocation,L,"junction"):await oe.symlinkPromise(U,L)}))},E=!1;for(let[I,v]of r)I.identHash===e.identHash&&(E=!0),h(I,v);!E&&!this.opts.project.tryWorkspaceByLocator(e)&&h(W.convertLocatorToDescriptor(e),e),p.push(uDt(a,A)),await Promise.all(p)})}async attachExternalDependents(e,r){throw new Error("External dependencies haven't been implemented for the pnpm linker")}async finalizeInstall(){let e=RBe(this.opts.project);if(this.opts.project.configuration.get("nodeLinker")!=="pnpm")await oe.removePromise(e);else{let r;try{r=new Set(await oe.readdirPromise(e))}catch{r=new Set}for(let{dependenciesLocation:o}of this.customData.pathsByLocator.values()){if(!o)continue;let a=V.contains(e,o);if(a===null)continue;let[n]=a.split(V.sep);r.delete(n)}await Promise.all([...r].map(async o=>{await oe.removePromise(V.join(e,o))}))}return await this.asyncActions.wait(),await TG(e),this.opts.project.configuration.get("nodeLinker")!=="node-modules"&&await TG(FBe(this.opts.project)),{customData:this.customData}}};function FBe(t){return V.join(t.cwd,dr.nodeModules)}function RBe(t){return V.join(FBe(t),".store")}function lDt(t,{project:e}){let r=W.slugifyLocator(t),o=RBe(e),a=V.join(o,r,"package"),n=V.join(o,r,dr.nodeModules);return{packageLocation:a,dependenciesLocation:n}}function QBe(t,{project:e}){return!W.isVirtualLocator(t)||!e.tryWorkspaceByLocator(t)}async function cDt(t){let e=new Map,r=[];try{r=await oe.readdirPromise(t,{withFileTypes:!0})}catch(o){if(o.code!=="ENOENT")throw o}try{for(let o of r)if(!o.name.startsWith("."))if(o.name.startsWith("@")){let a=await oe.readdirPromise(V.join(t,o.name),{withFileTypes:!0});if(a.length===0)e.set(o.name,o);else for(let n of a)e.set(`${o.name}/${n.name}`,n)}else e.set(o.name,o)}catch(o){if(o.code!=="ENOENT")throw o}return e}async function uDt(t,e){let r=[],o=new Set;for(let a of e.keys()){r.push(oe.removePromise(V.join(t,a)));let n=W.tryParseIdent(a)?.scope;n&&o.add(`@${n}`)}return Promise.all(r).then(()=>Promise.all([...o].map(a=>TG(V.join(t,a)))))}async function TG(t){try{await oe.rmdirPromise(t)}catch(e){if(e.code!=="ENOENT"&&e.code!=="ENOTEMPTY")throw e}}var ADt={linkers:[Hv]},fDt=ADt;var qG={};Vt(qG,{StageCommand:()=>$0,default:()=>BDt,stageUtils:()=>oF});Ye();St();qt();Ye();St();var oF={};Vt(oF,{ActionType:()=>LG,checkConsensus:()=>sF,expandDirectory:()=>UG,findConsensus:()=>_G,findVcsRoot:()=>OG,genCommitMessage:()=>HG,getCommitPrefix:()=>TBe,isYarnFile:()=>MG});St();var LG=(n=>(n[n.CREATE=0]="CREATE",n[n.DELETE=1]="DELETE",n[n.ADD=2]="ADD",n[n.REMOVE=3]="REMOVE",n[n.MODIFY=4]="MODIFY",n))(LG||{});async function OG(t,{marker:e}){do if(!oe.existsSync(V.join(t,e)))t=V.dirname(t);else return t;while(t!=="/");return null}function MG(t,{roots:e,names:r}){if(r.has(V.basename(t)))return!0;do if(!e.has(t))t=V.dirname(t);else return!0;while(t!=="/");return!1}function UG(t){let e=[],r=[t];for(;r.length>0;){let o=r.pop(),a=oe.readdirSync(o);for(let n of a){let u=V.resolve(o,n);oe.lstatSync(u).isDirectory()?r.push(u):e.push(u)}}return e}function sF(t,e){let r=0,o=0;for(let a of t)a!=="wip"&&(e.test(a)?r+=1:o+=1);return r>=o}function _G(t){let e=sF(t,/^(\w\(\w+\):\s*)?\w+s/),r=sF(t,/^(\w\(\w+\):\s*)?[A-Z]/),o=sF(t,/^\w\(\w+\):/);return{useThirdPerson:e,useUpperCase:r,useComponent:o}}function TBe(t){return t.useComponent?"chore(yarn): ":""}var pDt=new Map([[0,"create"],[1,"delete"],[2,"add"],[3,"remove"],[4,"update"]]);function HG(t,e){let r=TBe(t),o=[],a=e.slice().sort((n,u)=>n[0]-u[0]);for(;a.length>0;){let[n,u]=a.shift(),A=pDt.get(n);t.useUpperCase&&o.length===0&&(A=`${A[0].toUpperCase()}${A.slice(1)}`),t.useThirdPerson&&(A+="s");let p=[u];for(;a.length>0&&a[0][0]===n;){let[,E]=a.shift();p.push(E)}p.sort();let h=p.shift();p.length===1?h+=" (and one other)":p.length>1&&(h+=` (and ${p.length} others)`),o.push(`${A} ${h}`)}return`${r}${o.join(", ")}`}var hDt="Commit generated via `yarn stage`",gDt=11;async function NBe(t){let{code:e,stdout:r}=await Ur.execvp("git",["log","-1","--pretty=format:%H"],{cwd:t});return e===0?r.trim():null}async function dDt(t,e){let r=[],o=e.filter(h=>V.basename(h.path)==="package.json");for(let{action:h,path:E}of o){let I=V.relative(t,E);if(h===4){let v=await NBe(t),{stdout:x}=await Ur.execvp("git",["show",`${v}:${I}`],{cwd:t,strict:!0}),C=await Ot.fromText(x),R=await Ot.fromFile(E),L=new Map([...R.dependencies,...R.devDependencies]),U=new Map([...C.dependencies,...C.devDependencies]);for(let[J,te]of U){let ae=W.stringifyIdent(te),fe=L.get(J);fe?fe.range!==te.range&&r.push([4,`${ae} to ${fe.range}`]):r.push([3,ae])}for(let[J,te]of L)U.has(J)||r.push([2,W.stringifyIdent(te)])}else if(h===0){let v=await Ot.fromFile(E);v.name?r.push([0,W.stringifyIdent(v.name)]):r.push([0,"a package"])}else if(h===1){let v=await NBe(t),{stdout:x}=await Ur.execvp("git",["show",`${v}:${I}`],{cwd:t,strict:!0}),C=await Ot.fromText(x);C.name?r.push([1,W.stringifyIdent(C.name)]):r.push([1,"a package"])}else throw new Error("Assertion failed: Unsupported action type")}let{code:a,stdout:n}=await Ur.execvp("git",["log",`-${gDt}`,"--pretty=format:%s"],{cwd:t}),u=a===0?n.split(/\n/g).filter(h=>h!==""):[],A=_G(u);return HG(A,r)}var mDt={[0]:[" A ","?? "],[4]:[" M "],[1]:[" D "]},yDt={[0]:["A "],[4]:["M "],[1]:["D "]},LBe={async findRoot(t){return await OG(t,{marker:".git"})},async filterChanges(t,e,r,o){let{stdout:a}=await Ur.execvp("git",["status","-s"],{cwd:t,strict:!0}),n=a.toString().split(/\n/g),u=o?.staged?yDt:mDt;return[].concat(...n.map(p=>{if(p==="")return[];let h=p.slice(0,3),E=V.resolve(t,p.slice(3));if(!o?.staged&&h==="?? "&&p.endsWith("/"))return UG(E).map(I=>({action:0,path:I}));{let v=[0,4,1].find(x=>u[x].includes(h));return v!==void 0?[{action:v,path:E}]:[]}})).filter(p=>MG(p.path,{roots:e,names:r}))},async genCommitMessage(t,e){return await dDt(t,e)},async makeStage(t,e){let r=e.map(o=>ue.fromPortablePath(o.path));await Ur.execvp("git",["add","--",...r],{cwd:t,strict:!0})},async makeCommit(t,e,r){let o=e.map(a=>ue.fromPortablePath(a.path));await Ur.execvp("git",["add","-N","--",...o],{cwd:t,strict:!0}),await Ur.execvp("git",["commit","-m",`${r} + +${hDt} +`,"--",...o],{cwd:t,strict:!0})},async makeReset(t,e){let r=e.map(o=>ue.fromPortablePath(o.path));await Ur.execvp("git",["reset","HEAD","--",...r],{cwd:t,strict:!0})}};var EDt=[LBe],$0=class extends ut{constructor(){super(...arguments);this.commit=ge.Boolean("-c,--commit",!1,{description:"Commit the staged files"});this.reset=ge.Boolean("-r,--reset",!1,{description:"Remove all files from the staging area"});this.dryRun=ge.Boolean("-n,--dry-run",!1,{description:"Print the commit message and the list of modified files without staging / committing"});this.update=ge.Boolean("-u,--update",!1,{hidden:!0})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o}=await Pt.find(r,this.context.cwd),{driver:a,root:n}=await CDt(o.cwd),u=[r.get("cacheFolder"),r.get("globalFolder"),r.get("virtualFolder"),r.get("yarnPath")];await r.triggerHook(I=>I.populateYarnPaths,o,I=>{u.push(I)});let A=new Set;for(let I of u)for(let v of wDt(n,I))A.add(v);let p=new Set([r.get("rcFilename"),dr.lockfile,dr.manifest]),h=await a.filterChanges(n,A,p),E=await a.genCommitMessage(n,h);if(this.dryRun)if(this.commit)this.context.stdout.write(`${E} +`);else for(let I of h)this.context.stdout.write(`${ue.fromPortablePath(I.path)} +`);else if(this.reset){let I=await a.filterChanges(n,A,p,{staged:!0});I.length===0?this.context.stdout.write("No staged changes found!"):await a.makeReset(n,I)}else h.length===0?this.context.stdout.write("No changes found!"):this.commit?await a.makeCommit(n,h,E):(await a.makeStage(n,h),this.context.stdout.write(E))}};$0.paths=[["stage"]],$0.usage=nt.Usage({description:"add all yarn files to your vcs",details:"\n This command will add to your staging area the files belonging to Yarn (typically any modified `package.json` and `.yarnrc.yml` files, but also linker-generated files, cache data, etc). It will take your ignore list into account, so the cache files won't be added if the cache is ignored in a `.gitignore` file (assuming you use Git).\n\n Running `--reset` will instead remove them from the staging area (the changes will still be there, but won't be committed until you stage them back).\n\n Since the staging area is a non-existent concept in Mercurial, Yarn will always create a new commit when running this command on Mercurial repositories. You can get this behavior when using Git by using the `--commit` flag which will directly create a commit.\n ",examples:[["Adds all modified project files to the staging area","yarn stage"],["Creates a new commit containing all modified project files","yarn stage --commit"]]});async function CDt(t){let e=null,r=null;for(let o of EDt)if((r=await o.findRoot(t))!==null){e=o;break}if(e===null||r===null)throw new it("No stage driver has been found for your current project");return{driver:e,root:r}}function wDt(t,e){let r=[];if(e===null)return r;for(;;){(e===t||e.startsWith(`${t}/`))&&r.push(e);let o;try{o=oe.statSync(e)}catch{break}if(o.isSymbolicLink())e=V.resolve(V.dirname(e),oe.readlinkSync(e));else break}return r}var IDt={commands:[$0]},BDt=IDt;var jG={};Vt(jG,{default:()=>QDt});Ye();Ye();St();var UBe=$e(zn());Ye();var OBe=$e(zH()),vDt="e8e1bd300d860104bb8c58453ffa1eb4",DDt="OFCNCOG2CU",MBe=async(t,e)=>{let r=W.stringifyIdent(t),a=SDt(e).initIndex("npm-search");try{return(await a.getObject(r,{attributesToRetrieve:["types"]})).types?.ts==="definitely-typed"}catch{return!1}},SDt=t=>(0,OBe.default)(DDt,vDt,{requester:{async send(r){try{let o=await nn.request(r.url,r.data||null,{configuration:t,headers:r.headers});return{content:o.body,isTimedOut:!1,status:o.statusCode}}catch(o){return{content:o.response.body,isTimedOut:!1,status:o.response.statusCode}}}}});var _Be=t=>t.scope?`${t.scope}__${t.name}`:`${t.name}`,PDt=async(t,e,r,o)=>{if(r.scope==="types")return;let{project:a}=t,{configuration:n}=a;if(!(n.get("tsEnableAutoTypes")??oe.existsSync(V.join(a.cwd,"tsconfig.json"))))return;let A=n.makeResolver(),p={project:a,resolver:A,report:new Qi};if(!await MBe(r,n))return;let E=_Be(r),I=W.parseRange(r.range).selector;if(!kr.validRange(I)){let L=n.normalizeDependency(r),U=await A.getCandidates(L,{},p);I=W.parseRange(U[0].reference).selector}let v=UBe.default.coerce(I);if(v===null)return;let x=`${zc.Modifier.CARET}${v.major}`,C=W.makeDescriptor(W.makeIdent("types",E),x),R=_e.mapAndFind(a.workspaces,L=>{let U=L.manifest.dependencies.get(r.identHash)?.descriptorHash,J=L.manifest.devDependencies.get(r.identHash)?.descriptorHash;if(U!==r.descriptorHash&&J!==r.descriptorHash)return _e.mapAndFind.skip;let te=[];for(let ae of Ot.allDependencies){let fe=L.manifest[ae].get(C.identHash);typeof fe>"u"||te.push([ae,fe])}return te.length===0?_e.mapAndFind.skip:te});if(typeof R<"u")for(let[L,U]of R)t.manifest[L].set(U.identHash,U);else{try{let L=n.normalizeDependency(C);if((await A.getCandidates(L,{},p)).length===0)return}catch{return}t.manifest[zc.Target.DEVELOPMENT].set(C.identHash,C)}},bDt=async(t,e,r)=>{if(r.scope==="types")return;let{project:o}=t,{configuration:a}=o;if(!(a.get("tsEnableAutoTypes")??oe.existsSync(V.join(o.cwd,"tsconfig.json"))))return;let u=_Be(r),A=W.makeIdent("types",u);for(let p of Ot.allDependencies)typeof t.manifest[p].get(A.identHash)>"u"||t.manifest[p].delete(A.identHash)},xDt=(t,e)=>{e.publishConfig&&e.publishConfig.typings&&(e.typings=e.publishConfig.typings),e.publishConfig&&e.publishConfig.types&&(e.types=e.publishConfig.types)},kDt={configuration:{tsEnableAutoTypes:{description:"Whether Yarn should auto-install @types/ dependencies on 'yarn add'",type:"BOOLEAN",isNullable:!0,default:null}},hooks:{afterWorkspaceDependencyAddition:PDt,afterWorkspaceDependencyRemoval:bDt,beforeWorkspacePacking:xDt}},QDt=kDt;var VG={};Vt(VG,{VersionApplyCommand:()=>eg,VersionCheckCommand:()=>tg,VersionCommand:()=>rg,default:()=>zDt,versionUtils:()=>dw});Ye();Ye();qt();var dw={};Vt(dw,{Decision:()=>hw,applyPrerelease:()=>WBe,applyReleases:()=>KG,applyStrategy:()=>lF,clearVersionFiles:()=>GG,getUndecidedDependentWorkspaces:()=>jv,getUndecidedWorkspaces:()=>aF,openVersionFile:()=>gw,requireMoreDecisions:()=>KDt,resolveVersionFiles:()=>qv,suggestStrategy:()=>WG,updateVersionFiles:()=>YG,validateReleaseDecision:()=>pw});Ye();St();Nl();qt();var YBe=$e(GBe()),vA=$e(zn()),WDt=/^(>=|[~^]|)(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(-(0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(\.(0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*)?(\+[0-9a-zA-Z-]+(\.[0-9a-zA-Z-]+)*)?$/,hw=(u=>(u.UNDECIDED="undecided",u.DECLINE="decline",u.MAJOR="major",u.MINOR="minor",u.PATCH="patch",u.PRERELEASE="prerelease",u))(hw||{});function pw(t){let e=vA.default.valid(t);return e||_e.validateEnum((0,YBe.default)(hw,"UNDECIDED"),t)}async function qv(t,{prerelease:e=null}={}){let r=new Map,o=t.configuration.get("deferredVersionFolder");if(!oe.existsSync(o))return r;let a=await oe.readdirPromise(o);for(let n of a){if(!n.endsWith(".yml"))continue;let u=V.join(o,n),A=await oe.readFilePromise(u,"utf8"),p=Ki(A);for(let[h,E]of Object.entries(p.releases||{})){if(E==="decline")continue;let I=W.parseIdent(h),v=t.tryWorkspaceByIdent(I);if(v===null)throw new Error(`Assertion failed: Expected a release definition file to only reference existing workspaces (${V.basename(u)} references ${h})`);if(v.manifest.version===null)throw new Error(`Assertion failed: Expected the workspace to have a version (${W.prettyLocator(t.configuration,v.anchoredLocator)})`);let x=v.manifest.raw.stableVersion??v.manifest.version,C=r.get(v),R=lF(x,pw(E));if(R===null)throw new Error(`Assertion failed: Expected ${x} to support being bumped via strategy ${E}`);let L=typeof C<"u"?vA.default.gt(R,C)?R:C:R;r.set(v,L)}}return e&&(r=new Map([...r].map(([n,u])=>[n,WBe(u,{current:n.manifest.version,prerelease:e})]))),r}async function GG(t){let e=t.configuration.get("deferredVersionFolder");!oe.existsSync(e)||await oe.removePromise(e)}async function YG(t,e){let r=new Set(e),o=t.configuration.get("deferredVersionFolder");if(!oe.existsSync(o))return;let a=await oe.readdirPromise(o);for(let n of a){if(!n.endsWith(".yml"))continue;let u=V.join(o,n),A=await oe.readFilePromise(u,"utf8"),p=Ki(A),h=p?.releases;if(!!h){for(let E of Object.keys(h)){let I=W.parseIdent(E),v=t.tryWorkspaceByIdent(I);(v===null||r.has(v))&&delete p.releases[E]}Object.keys(p.releases).length>0?await oe.changeFilePromise(u,Ba(new Ba.PreserveOrdering(p))):await oe.unlinkPromise(u)}}}async function gw(t,{allowEmpty:e=!1}={}){let r=t.configuration;if(r.projectCwd===null)throw new it("This command can only be run from within a Yarn project");let o=await ra.fetchRoot(r.projectCwd),a=o!==null?await ra.fetchBase(o,{baseRefs:r.get("changesetBaseRefs")}):null,n=o!==null?await ra.fetchChangedFiles(o,{base:a.hash,project:t}):[],u=r.get("deferredVersionFolder"),A=n.filter(x=>V.contains(u,x)!==null);if(A.length>1)throw new it(`Your current branch contains multiple versioning files; this isn't supported: +- ${A.map(x=>ue.fromPortablePath(x)).join(` +- `)}`);let p=new Set(_e.mapAndFilter(n,x=>{let C=t.tryWorkspaceByFilePath(x);return C===null?_e.mapAndFilter.skip:C}));if(A.length===0&&p.size===0&&!e)return null;let h=A.length===1?A[0]:V.join(u,`${wn.makeHash(Math.random().toString()).slice(0,8)}.yml`),E=oe.existsSync(h)?await oe.readFilePromise(h,"utf8"):"{}",I=Ki(E),v=new Map;for(let x of I.declined||[]){let C=W.parseIdent(x),R=t.getWorkspaceByIdent(C);v.set(R,"decline")}for(let[x,C]of Object.entries(I.releases||{})){let R=W.parseIdent(x),L=t.getWorkspaceByIdent(R);v.set(L,pw(C))}return{project:t,root:o,baseHash:a!==null?a.hash:null,baseTitle:a!==null?a.title:null,changedFiles:new Set(n),changedWorkspaces:p,releaseRoots:new Set([...p].filter(x=>x.manifest.version!==null)),releases:v,async saveAll(){let x={},C=[],R=[];for(let L of t.workspaces){if(L.manifest.version===null)continue;let U=W.stringifyIdent(L.anchoredLocator),J=v.get(L);J==="decline"?C.push(U):typeof J<"u"?x[U]=pw(J):p.has(L)&&R.push(U)}await oe.mkdirPromise(V.dirname(h),{recursive:!0}),await oe.changeFilePromise(h,Ba(new Ba.PreserveOrdering({releases:Object.keys(x).length>0?x:void 0,declined:C.length>0?C:void 0,undecided:R.length>0?R:void 0})))}}}function KDt(t){return aF(t).size>0||jv(t).length>0}function aF(t){let e=new Set;for(let r of t.changedWorkspaces)r.manifest.version!==null&&(t.releases.has(r)||e.add(r));return e}function jv(t,{include:e=new Set}={}){let r=[],o=new Map(_e.mapAndFilter([...t.releases],([n,u])=>u==="decline"?_e.mapAndFilter.skip:[n.anchoredLocator.locatorHash,n])),a=new Map(_e.mapAndFilter([...t.releases],([n,u])=>u!=="decline"?_e.mapAndFilter.skip:[n.anchoredLocator.locatorHash,n]));for(let n of t.project.workspaces)if(!(!e.has(n)&&(a.has(n.anchoredLocator.locatorHash)||o.has(n.anchoredLocator.locatorHash)))&&n.manifest.version!==null)for(let u of Ot.hardDependencies)for(let A of n.manifest.getForScope(u).values()){let p=t.project.tryWorkspaceByDescriptor(A);p!==null&&o.has(p.anchoredLocator.locatorHash)&&r.push([n,p])}return r}function WG(t,e){let r=vA.default.clean(e);for(let o of Object.values(hw))if(o!=="undecided"&&o!=="decline"&&vA.default.inc(t,o)===r)return o;return null}function lF(t,e){if(vA.default.valid(e))return e;if(t===null)throw new it(`Cannot apply the release strategy "${e}" unless the workspace already has a valid version`);if(!vA.default.valid(t))throw new it(`Cannot apply the release strategy "${e}" on a non-semver version (${t})`);let r=vA.default.inc(t,e);if(r===null)throw new it(`Cannot apply the release strategy "${e}" on the specified version (${t})`);return r}function KG(t,e,{report:r}){let o=new Map;for(let a of t.workspaces)for(let n of Ot.allDependencies)for(let u of a.manifest[n].values()){let A=t.tryWorkspaceByDescriptor(u);if(A===null||!e.has(A))continue;_e.getArrayWithDefault(o,A).push([a,n,u.identHash])}for(let[a,n]of e){let u=a.manifest.version;a.manifest.version=n,vA.default.prerelease(n)===null?delete a.manifest.raw.stableVersion:a.manifest.raw.stableVersion||(a.manifest.raw.stableVersion=u);let A=a.manifest.name!==null?W.stringifyIdent(a.manifest.name):null;r.reportInfo(0,`${W.prettyLocator(t.configuration,a.anchoredLocator)}: Bumped to ${n}`),r.reportJson({cwd:ue.fromPortablePath(a.cwd),ident:A,oldVersion:u,newVersion:n});let p=o.get(a);if(!(typeof p>"u"))for(let[h,E,I]of p){let v=h.manifest[E].get(I);if(typeof v>"u")throw new Error("Assertion failed: The dependency should have existed");let x=v.range,C=!1;if(x.startsWith(Xn.protocol)&&(x=x.slice(Xn.protocol.length),C=!0,x===a.relativeCwd))continue;let R=x.match(WDt);if(!R){r.reportWarning(0,`Couldn't auto-upgrade range ${x} (in ${W.prettyLocator(t.configuration,h.anchoredLocator)})`);continue}let L=`${R[1]}${n}`;C&&(L=`${Xn.protocol}${L}`);let U=W.makeDescriptor(v,L);h.manifest[E].set(I,U)}}}var VDt=new Map([["%n",{extract:t=>t.length>=1?[t[0],t.slice(1)]:null,generate:(t=0)=>`${t+1}`}]]);function WBe(t,{current:e,prerelease:r}){let o=new vA.default.SemVer(e),a=o.prerelease.slice(),n=[];o.prerelease=[],o.format()!==t&&(a.length=0);let u=!0,A=r.split(/\./g);for(let p of A){let h=VDt.get(p);if(typeof h>"u")n.push(p),a[0]===p?a.shift():u=!1;else{let E=u?h.extract(a):null;E!==null&&typeof E[0]=="number"?(n.push(h.generate(E[0])),a=E[1]):(n.push(h.generate()),u=!1)}}return o.prerelease&&(o.prerelease=[]),`${t}-${n.join(".")}`}var eg=class extends ut{constructor(){super(...arguments);this.all=ge.Boolean("--all",!1,{description:"Apply the deferred version changes on all workspaces"});this.dryRun=ge.Boolean("--dry-run",!1,{description:"Print the versions without actually generating the package archive"});this.prerelease=ge.String("--prerelease",{description:"Add a prerelease identifier to new versions",tolerateBoolean:!0});this.recursive=ge.Boolean("-R,--recursive",{description:"Release the transitive workspaces as well"});this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Pt.find(r,this.context.cwd),n=await Lr.find(r);if(!a)throw new rr(o.cwd,this.context.cwd);await o.restoreInstallState({restoreResolutions:!1});let u=await Nt.start({configuration:r,json:this.json,stdout:this.context.stdout},async A=>{let p=this.prerelease?typeof this.prerelease!="boolean"?this.prerelease:"rc.%n":null,h=await qv(o,{prerelease:p}),E=new Map;if(this.all)E=h;else{let I=this.recursive?a.getRecursiveWorkspaceDependencies():[a];for(let v of I){let x=h.get(v);typeof x<"u"&&E.set(v,x)}}if(E.size===0){let I=h.size>0?" Did you want to add --all?":"";A.reportWarning(0,`The current workspace doesn't seem to require a version bump.${I}`);return}KG(o,E,{report:A}),this.dryRun||(p||(this.all?await GG(o):await YG(o,[...E.keys()])),A.reportSeparator())});return this.dryRun||u.hasErrors()?u.exitCode():await o.installWithNewReport({json:this.json,stdout:this.context.stdout},{cache:n})}};eg.paths=[["version","apply"]],eg.usage=nt.Usage({category:"Release-related commands",description:"apply all the deferred version bumps at once",details:` + This command will apply the deferred version changes and remove their definitions from the repository. + + Note that if \`--prerelease\` is set, the given prerelease identifier (by default \`rc.%d\`) will be used on all new versions and the version definitions will be kept as-is. + + By default only the current workspace will be bumped, but you can configure this behavior by using one of: + + - \`--recursive\` to also apply the version bump on its dependencies + - \`--all\` to apply the version bump on all packages in the repository + + Note that this command will also update the \`workspace:\` references across all your local workspaces, thus ensuring that they keep referring to the same workspaces even after the version bump. + `,examples:[["Apply the version change to the local workspace","yarn version apply"],["Apply the version change to all the workspaces in the local workspace","yarn version apply --all"]]});Ye();St();qt();var cF=$e(zn());var tg=class extends ut{constructor(){super(...arguments);this.interactive=ge.Boolean("-i,--interactive",{description:"Open an interactive interface used to set version bumps"})}async execute(){return this.interactive?await this.executeInteractive():await this.executeStandard()}async executeInteractive(){bC(this.context);let{Gem:r}=await Promise.resolve().then(()=>(cQ(),Bq)),{ScrollableItems:o}=await Promise.resolve().then(()=>(pQ(),fQ)),{FocusRequest:a}=await Promise.resolve().then(()=>(Dq(),Vwe)),{useListInput:n}=await Promise.resolve().then(()=>(AQ(),Jwe)),{renderForm:u}=await Promise.resolve().then(()=>(mQ(),dQ)),{Box:A,Text:p}=await Promise.resolve().then(()=>$e(ic())),{default:h,useCallback:E,useState:I}=await Promise.resolve().then(()=>$e(on())),v=await Ke.find(this.context.cwd,this.context.plugins),{project:x,workspace:C}=await Pt.find(v,this.context.cwd);if(!C)throw new rr(x.cwd,this.context.cwd);await x.restoreInstallState();let R=await gw(x);if(R===null||R.releaseRoots.size===0)return 0;if(R.root===null)throw new it("This command can only be run on Git repositories");let L=()=>h.createElement(A,{flexDirection:"row",paddingBottom:1},h.createElement(A,{flexDirection:"column",width:60},h.createElement(A,null,h.createElement(p,null,"Press ",h.createElement(p,{bold:!0,color:"cyanBright"},""),"/",h.createElement(p,{bold:!0,color:"cyanBright"},"")," to select workspaces.")),h.createElement(A,null,h.createElement(p,null,"Press ",h.createElement(p,{bold:!0,color:"cyanBright"},""),"/",h.createElement(p,{bold:!0,color:"cyanBright"},"")," to select release strategies."))),h.createElement(A,{flexDirection:"column"},h.createElement(A,{marginLeft:1},h.createElement(p,null,"Press ",h.createElement(p,{bold:!0,color:"cyanBright"},"")," to save.")),h.createElement(A,{marginLeft:1},h.createElement(p,null,"Press ",h.createElement(p,{bold:!0,color:"cyanBright"},"")," to abort.")))),U=({workspace:me,active:he,decision:Be,setDecision:we})=>{let g=me.manifest.raw.stableVersion??me.manifest.version;if(g===null)throw new Error(`Assertion failed: The version should have been set (${W.prettyLocator(v,me.anchoredLocator)})`);if(cF.default.prerelease(g)!==null)throw new Error(`Assertion failed: Prerelease identifiers shouldn't be found (${g})`);let Ee=["undecided","decline","patch","minor","major"];n(Be,Ee,{active:he,minus:"left",plus:"right",set:we});let Se=Be==="undecided"?h.createElement(p,{color:"yellow"},g):Be==="decline"?h.createElement(p,{color:"green"},g):h.createElement(p,null,h.createElement(p,{color:"magenta"},g)," \u2192 ",h.createElement(p,{color:"green"},cF.default.valid(Be)?Be:cF.default.inc(g,Be)));return h.createElement(A,{flexDirection:"column"},h.createElement(A,null,h.createElement(p,null,W.prettyLocator(v,me.anchoredLocator)," - ",Se)),h.createElement(A,null,Ee.map(le=>h.createElement(A,{key:le,paddingLeft:2},h.createElement(p,null,h.createElement(r,{active:le===Be})," ",le)))))},J=me=>{let he=new Set(R.releaseRoots),Be=new Map([...me].filter(([we])=>he.has(we)));for(;;){let we=jv({project:R.project,releases:Be}),g=!1;if(we.length>0){for(let[Ee]of we)if(!he.has(Ee)){he.add(Ee),g=!0;let Se=me.get(Ee);typeof Se<"u"&&Be.set(Ee,Se)}}if(!g)break}return{relevantWorkspaces:he,relevantReleases:Be}},te=()=>{let[me,he]=I(()=>new Map(R.releases)),Be=E((we,g)=>{let Ee=new Map(me);g!=="undecided"?Ee.set(we,g):Ee.delete(we);let{relevantReleases:Se}=J(Ee);he(Se)},[me,he]);return[me,Be]},ae=({workspaces:me,releases:he})=>{let Be=[];Be.push(`${me.size} total`);let we=0,g=0;for(let Ee of me){let Se=he.get(Ee);typeof Se>"u"?g+=1:Se!=="decline"&&(we+=1)}return Be.push(`${we} release${we===1?"":"s"}`),Be.push(`${g} remaining`),h.createElement(p,{color:"yellow"},Be.join(", "))},ce=await u(({useSubmit:me})=>{let[he,Be]=te();me(he);let{relevantWorkspaces:we}=J(he),g=new Set([...we].filter(ne=>!R.releaseRoots.has(ne))),[Ee,Se]=I(0),le=E(ne=>{switch(ne){case a.BEFORE:Se(Ee-1);break;case a.AFTER:Se(Ee+1);break}},[Ee,Se]);return h.createElement(A,{flexDirection:"column"},h.createElement(L,null),h.createElement(A,null,h.createElement(p,{wrap:"wrap"},"The following files have been modified in your local checkout.")),h.createElement(A,{flexDirection:"column",marginTop:1,paddingLeft:2},[...R.changedFiles].map(ne=>h.createElement(A,{key:ne},h.createElement(p,null,h.createElement(p,{color:"grey"},ue.fromPortablePath(R.root)),ue.sep,ue.relative(ue.fromPortablePath(R.root),ue.fromPortablePath(ne)))))),R.releaseRoots.size>0&&h.createElement(h.Fragment,null,h.createElement(A,{marginTop:1},h.createElement(p,{wrap:"wrap"},"Because of those files having been modified, the following workspaces may need to be released again (note that private workspaces are also shown here, because even though they won't be published, releasing them will allow us to flag their dependents for potential re-release):")),g.size>3?h.createElement(A,{marginTop:1},h.createElement(ae,{workspaces:R.releaseRoots,releases:he})):null,h.createElement(A,{marginTop:1,flexDirection:"column"},h.createElement(o,{active:Ee%2===0,radius:1,size:2,onFocusRequest:le},[...R.releaseRoots].map(ne=>h.createElement(U,{key:ne.cwd,workspace:ne,decision:he.get(ne)||"undecided",setDecision:ee=>Be(ne,ee)}))))),g.size>0?h.createElement(h.Fragment,null,h.createElement(A,{marginTop:1},h.createElement(p,{wrap:"wrap"},"The following workspaces depend on other workspaces that have been marked for release, and thus may need to be released as well:")),h.createElement(A,null,h.createElement(p,null,"(Press ",h.createElement(p,{bold:!0,color:"cyanBright"},"")," to move the focus between the workspace groups.)")),g.size>5?h.createElement(A,{marginTop:1},h.createElement(ae,{workspaces:g,releases:he})):null,h.createElement(A,{marginTop:1,flexDirection:"column"},h.createElement(o,{active:Ee%2===1,radius:2,size:2,onFocusRequest:le},[...g].map(ne=>h.createElement(U,{key:ne.cwd,workspace:ne,decision:he.get(ne)||"undecided",setDecision:ee=>Be(ne,ee)}))))):null)},{versionFile:R},{stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr});if(typeof ce>"u")return 1;R.releases.clear();for(let[me,he]of ce)R.releases.set(me,he);await R.saveAll()}async executeStandard(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Pt.find(r,this.context.cwd);if(!a)throw new rr(o.cwd,this.context.cwd);return await o.restoreInstallState(),(await Nt.start({configuration:r,stdout:this.context.stdout},async u=>{let A=await gw(o);if(A===null||A.releaseRoots.size===0)return;if(A.root===null)throw new it("This command can only be run on Git repositories");if(u.reportInfo(0,`Your PR was started right after ${de.pretty(r,A.baseHash.slice(0,7),"yellow")} ${de.pretty(r,A.baseTitle,"magenta")}`),A.changedFiles.size>0){u.reportInfo(0,"You have changed the following files since then:"),u.reportSeparator();for(let v of A.changedFiles)u.reportInfo(null,`${de.pretty(r,ue.fromPortablePath(A.root),"gray")}${ue.sep}${ue.relative(ue.fromPortablePath(A.root),ue.fromPortablePath(v))}`)}let p=!1,h=!1,E=aF(A);if(E.size>0){p||u.reportSeparator();for(let v of E)u.reportError(0,`${W.prettyLocator(r,v.anchoredLocator)} has been modified but doesn't have a release strategy attached`);p=!0}let I=jv(A);for(let[v,x]of I)h||u.reportSeparator(),u.reportError(0,`${W.prettyLocator(r,v.anchoredLocator)} doesn't have a release strategy attached, but depends on ${W.prettyWorkspace(r,x)} which is planned for release.`),h=!0;(p||h)&&(u.reportSeparator(),u.reportInfo(0,"This command detected that at least some workspaces have received modifications without explicit instructions as to how they had to be released (if needed)."),u.reportInfo(0,"To correct these errors, run `yarn version check --interactive` then follow the instructions."))})).exitCode()}};tg.paths=[["version","check"]],tg.usage=nt.Usage({category:"Release-related commands",description:"check that all the relevant packages have been bumped",details:"\n **Warning:** This command currently requires Git.\n\n This command will check that all the packages covered by the files listed in argument have been properly bumped or declined to bump.\n\n In the case of a bump, the check will also cover transitive packages - meaning that should `Foo` be bumped, a package `Bar` depending on `Foo` will require a decision as to whether `Bar` will need to be bumped. This check doesn't cross packages that have declined to bump.\n\n In case no arguments are passed to the function, the list of modified files will be generated by comparing the HEAD against `master`.\n ",examples:[["Check whether the modified packages need a bump","yarn version check"]]});Ye();qt();var uF=$e(zn());var rg=class extends ut{constructor(){super(...arguments);this.deferred=ge.Boolean("-d,--deferred",{description:"Prepare the version to be bumped during the next release cycle"});this.immediate=ge.Boolean("-i,--immediate",{description:"Bump the version immediately"});this.strategy=ge.String()}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Pt.find(r,this.context.cwd);if(!a)throw new rr(o.cwd,this.context.cwd);let n=r.get("preferDeferredVersions");this.deferred&&(n=!0),this.immediate&&(n=!1);let u=uF.default.valid(this.strategy),A=this.strategy==="decline",p;if(u)if(a.manifest.version!==null){let E=WG(a.manifest.version,this.strategy);E!==null?p=E:p=this.strategy}else p=this.strategy;else{let E=a.manifest.version;if(!A){if(E===null)throw new it("Can't bump the version if there wasn't a version to begin with - use 0.0.0 as initial version then run the command again.");if(typeof E!="string"||!uF.default.valid(E))throw new it(`Can't bump the version (${E}) if it's not valid semver`)}p=pw(this.strategy)}if(!n){let I=(await qv(o)).get(a);if(typeof I<"u"&&p!=="decline"){let v=lF(a.manifest.version,p);if(uF.default.lt(v,I))throw new it(`Can't bump the version to one that would be lower than the current deferred one (${I})`)}}let h=await gw(o,{allowEmpty:!0});return h.releases.set(a,p),await h.saveAll(),n?0:await this.cli.run(["version","apply"])}};rg.paths=[["version"]],rg.usage=nt.Usage({category:"Release-related commands",description:"apply a new version to the current package",details:"\n This command will bump the version number for the given package, following the specified strategy:\n\n - If `major`, the first number from the semver range will be increased (`X.0.0`).\n - If `minor`, the second number from the semver range will be increased (`0.X.0`).\n - If `patch`, the third number from the semver range will be increased (`0.0.X`).\n - If prefixed by `pre` (`premajor`, ...), a `-0` suffix will be set (`0.0.0-0`).\n - If `prerelease`, the suffix will be increased (`0.0.0-X`); the third number from the semver range will also be increased if there was no suffix in the previous version.\n - If `decline`, the nonce will be increased for `yarn version check` to pass without version bump.\n - If a valid semver range, it will be used as new version.\n - If unspecified, Yarn will ask you for guidance.\n\n For more information about the `--deferred` flag, consult our documentation (https://yarnpkg.com/features/release-workflow#deferred-versioning).\n ",examples:[["Immediately bump the version to the next major","yarn version major"],["Prepare the version to be bumped to the next major","yarn version major --deferred"]]});var JDt={configuration:{deferredVersionFolder:{description:"Folder where are stored the versioning files",type:"ABSOLUTE_PATH",default:"./.yarn/versions"},preferDeferredVersions:{description:"If true, running `yarn version` will assume the `--deferred` flag unless `--immediate` is set",type:"BOOLEAN",default:!1}},commands:[eg,tg,rg]},zDt=JDt;var JG={};Vt(JG,{WorkspacesFocusCommand:()=>ng,WorkspacesForeachCommand:()=>ap,default:()=>$Dt});Ye();Ye();qt();var ng=class extends ut{constructor(){super(...arguments);this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.production=ge.Boolean("--production",!1,{description:"Only install regular dependencies by omitting dev dependencies"});this.all=ge.Boolean("-A,--all",!1,{description:"Install the entire project"});this.workspaces=ge.Rest()}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Pt.find(r,this.context.cwd),n=await Lr.find(r);await o.restoreInstallState({restoreResolutions:!1});let u;if(this.all)u=new Set(o.workspaces);else if(this.workspaces.length===0){if(!a)throw new rr(o.cwd,this.context.cwd);u=new Set([a])}else u=new Set(this.workspaces.map(A=>o.getWorkspaceByIdent(W.parseIdent(A))));for(let A of u)for(let p of this.production?["dependencies"]:Ot.hardDependencies)for(let h of A.manifest.getForScope(p).values()){let E=o.tryWorkspaceByDescriptor(h);E!==null&&u.add(E)}for(let A of o.workspaces)u.has(A)?this.production&&A.manifest.devDependencies.clear():(A.manifest.installConfig=A.manifest.installConfig||{},A.manifest.installConfig.selfReferences=!1,A.manifest.dependencies.clear(),A.manifest.devDependencies.clear(),A.manifest.peerDependencies.clear(),A.manifest.scripts.clear());return await o.installWithNewReport({json:this.json,stdout:this.context.stdout},{cache:n,persistProject:!1})}};ng.paths=[["workspaces","focus"]],ng.usage=nt.Usage({category:"Workspace-related commands",description:"install a single workspace and its dependencies",details:"\n This command will run an install as if the specified workspaces (and all other workspaces they depend on) were the only ones in the project. If no workspaces are explicitly listed, the active one will be assumed.\n\n Note that this command is only very moderately useful when using zero-installs, since the cache will contain all the packages anyway - meaning that the only difference between a full install and a focused install would just be a few extra lines in the `.pnp.cjs` file, at the cost of introducing an extra complexity.\n\n If the `-A,--all` flag is set, the entire project will be installed. Combine with `--production` to replicate the old `yarn install --production`.\n "});Ye();Ye();Ye();qt();var mw=$e(Zo()),VBe=$e(id());Za();var ap=class extends ut{constructor(){super(...arguments);this.from=ge.Array("--from",{description:"An array of glob pattern idents or paths from which to base any recursion"});this.all=ge.Boolean("-A,--all",{description:"Run the command on all workspaces of a project"});this.recursive=ge.Boolean("-R,--recursive",{description:"Run the command on the current workspace and all of its recursive dependencies"});this.worktree=ge.Boolean("-W,--worktree",{description:"Run the command on all workspaces of the current worktree"});this.verbose=ge.Counter("-v,--verbose",{description:"Increase level of logging verbosity up to 2 times"});this.parallel=ge.Boolean("-p,--parallel",!1,{description:"Run the commands in parallel"});this.interlaced=ge.Boolean("-i,--interlaced",!1,{description:"Print the output of commands in real-time instead of buffering it"});this.jobs=ge.String("-j,--jobs",{description:"The maximum number of parallel tasks that the execution will be limited to; or `unlimited`",validator:TT([Ks(["unlimited"]),aI(RT(),[LT(),NT(1)])])});this.topological=ge.Boolean("-t,--topological",!1,{description:"Run the command after all workspaces it depends on (regular) have finished"});this.topologicalDev=ge.Boolean("--topological-dev",!1,{description:"Run the command after all workspaces it depends on (regular + dev) have finished"});this.include=ge.Array("--include",[],{description:"An array of glob pattern idents or paths; only matching workspaces will be traversed"});this.exclude=ge.Array("--exclude",[],{description:"An array of glob pattern idents or paths; matching workspaces won't be traversed"});this.publicOnly=ge.Boolean("--no-private",{description:"Avoid running the command on private workspaces"});this.since=ge.String("--since",{description:"Only include workspaces that have been changed since the specified ref.",tolerateBoolean:!0});this.dryRun=ge.Boolean("-n,--dry-run",{description:"Print the commands that would be run, without actually running them"});this.commandName=ge.String();this.args=ge.Proxy()}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Pt.find(r,this.context.cwd);if(!this.all&&!a)throw new rr(o.cwd,this.context.cwd);await o.restoreInstallState();let n=this.cli.process([this.commandName,...this.args]),u=n.path.length===1&&n.path[0]==="run"&&typeof n.scriptName<"u"?n.scriptName:null;if(n.path.length===0)throw new it("Invalid subcommand name for iteration - use the 'run' keyword if you wish to execute a script");let A=we=>{!this.dryRun||this.context.stdout.write(`${we} +`)},p=()=>{let we=this.from.map(g=>mw.default.matcher(g));return o.workspaces.filter(g=>{let Ee=W.stringifyIdent(g.anchoredLocator),Se=g.relativeCwd;return we.some(le=>le(Ee)||le(Se))})},h=[];if(this.since?(A("Option --since is set; selecting the changed workspaces as root for workspace selection"),h=Array.from(await ra.fetchChangedWorkspaces({ref:this.since,project:o}))):this.from?(A("Option --from is set; selecting the specified workspaces"),h=[...p()]):this.worktree?(A("Option --worktree is set; selecting the current workspace"),h=[a]):this.recursive?(A("Option --recursive is set; selecting the current workspace"),h=[a]):this.all&&(A("Option --all is set; selecting all workspaces"),h=[...o.workspaces]),this.dryRun&&!this.all){for(let we of h)A(` +- ${we.relativeCwd} + ${W.prettyLocator(r,we.anchoredLocator)}`);h.length>0&&A("")}let E;if(this.recursive?this.since?(A("Option --recursive --since is set; recursively selecting all dependent workspaces"),E=new Set(h.map(we=>[...we.getRecursiveWorkspaceDependents()]).flat())):(A("Option --recursive is set; recursively selecting all transitive dependencies"),E=new Set(h.map(we=>[...we.getRecursiveWorkspaceDependencies()]).flat())):this.worktree?(A("Option --worktree is set; recursively selecting all nested workspaces"),E=new Set(h.map(we=>[...we.getRecursiveWorkspaceChildren()]).flat())):E=null,E!==null&&(h=[...new Set([...h,...E])],this.dryRun))for(let we of E)A(` +- ${we.relativeCwd} + ${W.prettyLocator(r,we.anchoredLocator)}`);let I=[],v=!1;if(u?.includes(":")){for(let we of o.workspaces)if(we.manifest.scripts.has(u)&&(v=!v,v===!1))break}for(let we of h){if(u&&!we.manifest.scripts.has(u)&&!v&&!(await un.getWorkspaceAccessibleBinaries(we)).has(u)){A(`Excluding ${we.relativeCwd} because it doesn't have a "${u}" script`);continue}if(!(u===r.env.npm_lifecycle_event&&we.cwd===a.cwd)){if(this.include.length>0&&!mw.default.isMatch(W.stringifyIdent(we.anchoredLocator),this.include)&&!mw.default.isMatch(we.relativeCwd,this.include)){A(`Excluding ${we.relativeCwd} because it doesn't match the --include filter`);continue}if(this.exclude.length>0&&(mw.default.isMatch(W.stringifyIdent(we.anchoredLocator),this.exclude)||mw.default.isMatch(we.relativeCwd,this.exclude))){A(`Excluding ${we.relativeCwd} because it matches the --include filter`);continue}if(this.publicOnly&&we.manifest.private===!0){A(`Excluding ${we.relativeCwd} because it's a private workspace and --no-private was set`);continue}I.push(we)}}if(this.dryRun)return 0;let x=this.verbose??(this.context.stdout.isTTY?1/0:0),C=x>0,R=x>1,L=this.parallel?this.jobs==="unlimited"?1/0:Number(this.jobs)||Math.ceil(Ji.availableParallelism()/2):1,U=L===1?!1:this.parallel,J=U?this.interlaced:!0,te=(0,VBe.default)(L),ae=new Map,fe=new Set,ce=0,me=null,he=!1,Be=await Nt.start({configuration:r,stdout:this.context.stdout,includePrefix:!1},async we=>{let g=async(Ee,{commandIndex:Se})=>{if(he)return-1;!U&&R&&Se>1&&we.reportSeparator();let le=XDt(Ee,{configuration:r,label:C,commandIndex:Se}),[ne,ee]=KBe(we,{prefix:le,interlaced:J}),[Ie,Fe]=KBe(we,{prefix:le,interlaced:J});try{R&&we.reportInfo(null,`${le?`${le} `:""}Process started`);let At=Date.now(),H=await this.cli.run([this.commandName,...this.args],{cwd:Ee.cwd,stdout:ne,stderr:Ie})||0;ne.end(),Ie.end(),await ee,await Fe;let at=Date.now();if(R){let Re=r.get("enableTimers")?`, completed in ${de.pretty(r,at-At,de.Type.DURATION)}`:"";we.reportInfo(null,`${le?`${le} `:""}Process exited (exit code ${H})${Re}`)}return H===130&&(he=!0,me=H),H}catch(At){throw ne.end(),Ie.end(),await ee,await Fe,At}};for(let Ee of I)ae.set(Ee.anchoredLocator.locatorHash,Ee);for(;ae.size>0&&!we.hasErrors();){let Ee=[];for(let[ne,ee]of ae){if(fe.has(ee.anchoredDescriptor.descriptorHash))continue;let Ie=!0;if(this.topological||this.topologicalDev){let Fe=this.topologicalDev?new Map([...ee.manifest.dependencies,...ee.manifest.devDependencies]):ee.manifest.dependencies;for(let At of Fe.values()){let H=o.tryWorkspaceByDescriptor(At);if(Ie=H===null||!ae.has(H.anchoredLocator.locatorHash),!Ie)break}}if(!!Ie&&(fe.add(ee.anchoredDescriptor.descriptorHash),Ee.push(te(async()=>{let Fe=await g(ee,{commandIndex:++ce});return ae.delete(ne),fe.delete(ee.anchoredDescriptor.descriptorHash),Fe})),!U))break}if(Ee.length===0){let ne=Array.from(ae.values()).map(ee=>W.prettyLocator(r,ee.anchoredLocator)).join(", ");we.reportError(3,`Dependency cycle detected (${ne})`);return}let le=(await Promise.all(Ee)).find(ne=>ne!==0);me===null&&(me=typeof le<"u"?1:me),(this.topological||this.topologicalDev)&&typeof le<"u"&&we.reportError(0,"The command failed for workspaces that are depended upon by other workspaces; can't satisfy the dependency graph")}});return me!==null?me:Be.exitCode()}};ap.paths=[["workspaces","foreach"]],ap.usage=nt.Usage({category:"Workspace-related commands",description:"run a command on all workspaces",details:"\n This command will run a given sub-command on current and all its descendant workspaces. Various flags can alter the exact behavior of the command:\n\n - If `-p,--parallel` is set, the commands will be ran in parallel; they'll by default be limited to a number of parallel tasks roughly equal to half your core number, but that can be overridden via `-j,--jobs`, or disabled by setting `-j unlimited`.\n\n - If `-p,--parallel` and `-i,--interlaced` are both set, Yarn will print the lines from the output as it receives them. If `-i,--interlaced` wasn't set, it would instead buffer the output from each process and print the resulting buffers only after their source processes have exited.\n\n - If `-t,--topological` is set, Yarn will only run the command after all workspaces that it depends on through the `dependencies` field have successfully finished executing. If `--topological-dev` is set, both the `dependencies` and `devDependencies` fields will be considered when figuring out the wait points.\n\n - If `-A,--all` is set, Yarn will run the command on all the workspaces of a project.\n\n - If `-R,--recursive` is set, Yarn will find workspaces to run the command on by recursively evaluating `dependencies` and `devDependencies` fields, instead of looking at the `workspaces` fields.\n\n - If `-W,--worktree` is set, Yarn will find workspaces to run the command on by looking at the current worktree.\n\n - If `--from` is set, Yarn will use the packages matching the 'from' glob as the starting point for any recursive search.\n\n - If `--since` is set, Yarn will only run the command on workspaces that have been modified since the specified ref. By default Yarn will use the refs specified by the `changesetBaseRefs` configuration option.\n\n - If `--dry-run` is set, Yarn will explain what it would do without actually doing anything.\n\n - The command may apply to only some workspaces through the use of `--include` which acts as a whitelist. The `--exclude` flag will do the opposite and will be a list of packages that mustn't execute the script. Both flags accept glob patterns (if valid Idents and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them.\n\n The `-v,--verbose` flag can be passed up to twice: once to prefix output lines with the originating workspace's name, and again to include start/finish/timing log lines. Maximum verbosity is enabled by default in terminal environments.\n\n If the command is `run` and the script being run does not exist the child workspace will be skipped without error.\n ",examples:[["Publish all packages","yarn workspaces foreach -A npm publish --tolerate-republish"],["Run the build script on all descendant packages","yarn workspaces foreach -A run build"],["Run the build script on current and all descendant packages in parallel, building package dependencies first","yarn workspaces foreach -Apt run build"],["Run the build script on several packages and all their dependencies, building dependencies first","yarn workspaces foreach -Rpt --from '{workspace-a,workspace-b}' run build"]]}),ap.schema=[cI("all",Gu.Forbids,["from","recursive","since","worktree"],{missingIf:"undefined"}),OT(["all","recursive","since","worktree"],{missingIf:"undefined"})];function KBe(t,{prefix:e,interlaced:r}){let o=t.createStreamReporter(e),a=new _e.DefaultStream;a.pipe(o,{end:!1}),a.on("finish",()=>{o.end()});let n=new Promise(A=>{o.on("finish",()=>{A(a.active)})});if(r)return[a,n];let u=new _e.BufferStream;return u.pipe(a,{end:!1}),u.on("finish",()=>{a.end()}),[u,n]}function XDt(t,{configuration:e,commandIndex:r,label:o}){if(!o)return null;let n=`[${W.stringifyIdent(t.anchoredLocator)}]:`,u=["#2E86AB","#A23B72","#F18F01","#C73E1D","#CCE2A3"],A=u[r%u.length];return de.pretty(e,n,A)}var ZDt={commands:[ng,ap]},$Dt=ZDt;var pC=()=>({modules:new Map([["@yarnpkg/cli",a2],["@yarnpkg/core",o2],["@yarnpkg/fslib",Vw],["@yarnpkg/libzip",x1],["@yarnpkg/parsers",rI],["@yarnpkg/shell",T1],["clipanion",hI],["semver",eSt],["typanion",Vo],["@yarnpkg/plugin-essentials",$8],["@yarnpkg/plugin-compat",iH],["@yarnpkg/plugin-constraints",wH],["@yarnpkg/plugin-dlx",IH],["@yarnpkg/plugin-exec",DH],["@yarnpkg/plugin-file",PH],["@yarnpkg/plugin-git",Z8],["@yarnpkg/plugin-github",kH],["@yarnpkg/plugin-http",QH],["@yarnpkg/plugin-init",FH],["@yarnpkg/plugin-interactive-tools",Tq],["@yarnpkg/plugin-link",Nq],["@yarnpkg/plugin-nm",yj],["@yarnpkg/plugin-npm",dG],["@yarnpkg/plugin-npm-cli",DG],["@yarnpkg/plugin-pack",AG],["@yarnpkg/plugin-patch",FG],["@yarnpkg/plugin-pnp",oj],["@yarnpkg/plugin-pnpm",NG],["@yarnpkg/plugin-stage",qG],["@yarnpkg/plugin-typescript",jG],["@yarnpkg/plugin-version",VG],["@yarnpkg/plugin-workspace-tools",JG]]),plugins:new Set(["@yarnpkg/plugin-essentials","@yarnpkg/plugin-compat","@yarnpkg/plugin-constraints","@yarnpkg/plugin-dlx","@yarnpkg/plugin-exec","@yarnpkg/plugin-file","@yarnpkg/plugin-git","@yarnpkg/plugin-github","@yarnpkg/plugin-http","@yarnpkg/plugin-init","@yarnpkg/plugin-interactive-tools","@yarnpkg/plugin-link","@yarnpkg/plugin-nm","@yarnpkg/plugin-npm","@yarnpkg/plugin-npm-cli","@yarnpkg/plugin-pack","@yarnpkg/plugin-patch","@yarnpkg/plugin-pnp","@yarnpkg/plugin-pnpm","@yarnpkg/plugin-stage","@yarnpkg/plugin-typescript","@yarnpkg/plugin-version","@yarnpkg/plugin-workspace-tools"])});function XBe({cwd:t,pluginConfiguration:e}){let r=new as({binaryLabel:"Yarn Package Manager",binaryName:"yarn",binaryVersion:rn??""});return Object.assign(r,{defaultContext:{...as.defaultContext,cwd:t,plugins:e,quiet:!1,stdin:process.stdin,stdout:process.stdout,stderr:process.stderr}})}function tSt(t){if(_e.parseOptionalBoolean(process.env.YARN_IGNORE_NODE))return!0;let r=process.versions.node,o=">=18.12.0";if(kr.satisfiesWithPrereleases(r,o))return!0;let a=new it(`This tool requires a Node version compatible with ${o} (got ${r}). Upgrade Node, or set \`YARN_IGNORE_NODE=1\` in your environment.`);return as.defaultContext.stdout.write(t.error(a)),!1}async function ZBe({selfPath:t,pluginConfiguration:e}){return await Ke.find(ue.toPortablePath(process.cwd()),e,{strict:!1,usePathCheck:t})}function rSt(t,e,{yarnPath:r}){if(!oe.existsSync(r))return t.error(new Error(`The "yarn-path" option has been set, but the specified location doesn't exist (${r}).`)),1;process.on("SIGINT",()=>{});let o={stdio:"inherit",env:{...process.env,YARN_IGNORE_PATH:"1"}};try{(0,JBe.execFileSync)(process.execPath,[ue.fromPortablePath(r),...e],o)}catch(a){return a.status??1}return 0}function nSt(t,e){let r=null,o=e;return e.length>=2&&e[0]==="--cwd"?(r=ue.toPortablePath(e[1]),o=e.slice(2)):e.length>=1&&e[0].startsWith("--cwd=")?(r=ue.toPortablePath(e[0].slice(6)),o=e.slice(1)):e[0]==="add"&&e[e.length-2]==="--cwd"&&(r=ue.toPortablePath(e[e.length-1]),o=e.slice(0,e.length-2)),t.defaultContext.cwd=r!==null?V.resolve(r):V.cwd(),o}function iSt(t,{configuration:e}){if(!e.get("enableTelemetry")||zBe.isCI||!process.stdout.isTTY)return;Ke.telemetry=new uC(e,"puba9cdc10ec5790a2cf4969dd413a47270");let o=/^@yarnpkg\/plugin-(.*)$/;for(let a of e.plugins.keys())AC.has(a.match(o)?.[1]??"")&&Ke.telemetry?.reportPluginName(a);t.binaryVersion&&Ke.telemetry.reportVersion(t.binaryVersion)}function $Be(t,{configuration:e}){for(let r of e.plugins.values())for(let o of r.commands||[])t.register(o)}async function sSt(t,e,{selfPath:r,pluginConfiguration:o}){if(!tSt(t))return 1;let a=await ZBe({selfPath:r,pluginConfiguration:o}),n=a.get("yarnPath"),u=a.get("ignorePath");if(n&&!u)return rSt(t,e,{yarnPath:n});delete process.env.YARN_IGNORE_PATH;let A=nSt(t,e);iSt(t,{configuration:a}),$Be(t,{configuration:a});let p=t.process(A,t.defaultContext);return p.help||Ke.telemetry?.reportCommandName(p.path.join(" ")),await t.run(p,t.defaultContext)}async function $pe({cwd:t=V.cwd(),pluginConfiguration:e=pC()}={}){let r=XBe({cwd:t,pluginConfiguration:e}),o=await ZBe({pluginConfiguration:e,selfPath:null});return $Be(r,{configuration:o}),r}async function nk(t,{cwd:e=V.cwd(),selfPath:r,pluginConfiguration:o}){let a=XBe({cwd:e,pluginConfiguration:o});try{process.exitCode=await sSt(a,t,{selfPath:r,pluginConfiguration:o})}catch(n){as.defaultContext.stdout.write(a.error(n)),process.exitCode=1}finally{await oe.rmtempPromise()}}nk(process.argv.slice(2),{cwd:V.cwd(),selfPath:ue.toPortablePath(ue.resolve(process.argv[1])),pluginConfiguration:pC()});})(); +/* +object-assign +(c) Sindre Sorhus +@license MIT +*/ +/*! + * buildToken + * Builds OAuth token prefix (helper function) + * + * @name buildToken + * @function + * @param {GitUrl} obj The parsed Git url object. + * @return {String} token prefix + */ +/*! + * fill-range + * + * Copyright (c) 2014-present, Jon Schlinkert. + * Licensed under the MIT License. + */ +/*! + * is-extglob + * + * Copyright (c) 2014-2016, Jon Schlinkert. + * Licensed under the MIT License. + */ +/*! + * is-glob + * + * Copyright (c) 2014-2017, Jon Schlinkert. + * Released under the MIT License. + */ +/*! + * is-number + * + * Copyright (c) 2014-present, Jon Schlinkert. + * Released under the MIT License. + */ +/*! + * is-windows + * + * Copyright © 2015-2018, Jon Schlinkert. + * Released under the MIT License. + */ +/*! + * to-regex-range + * + * Copyright (c) 2015-present, Jon Schlinkert. + * Released under the MIT License. + */ +/** + @license + Copyright (c) 2015, Rebecca Turner + + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. + + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH + REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, + INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM + LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR + OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + PERFORMANCE OF THIS SOFTWARE. + */ +/** + @license + Copyright Joyent, Inc. and other Node contributors. + + Permission is hereby granted, free of charge, to any person obtaining a + copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to permit + persons to whom the Software is furnished to do so, subject to the + following conditions: + + The above copyright notice and this permission notice shall be included + in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN + NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR + OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE + USE OR OTHER DEALINGS IN THE SOFTWARE. +*/ +/** + @license + Copyright Node.js contributors. All rights reserved. + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to + deal in the Software without restriction, including without limitation the + rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS + IN THE SOFTWARE. +*/ +/** + @license + The MIT License (MIT) + + Copyright (c) 2014 Blake Embrey (hello@blakeembrey.com) + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. +*/ +/** @license React v0.18.0 + * scheduler.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +/** @license React v0.24.0 + * react-reconciler.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +/** @license React v16.13.1 + * react.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ diff --git a/tgui/.yarn/sdks/eslint/bin/eslint.js b/tgui/.yarn/sdks/eslint/bin/eslint.js index 4d327a49a06d..9ef98e400b47 100644 --- a/tgui/.yarn/sdks/eslint/bin/eslint.js +++ b/tgui/.yarn/sdks/eslint/bin/eslint.js @@ -1,13 +1,13 @@ #!/usr/bin/env node const {existsSync} = require(`fs`); -const {createRequire, createRequireFromPath} = require(`module`); +const {createRequire} = require(`module`); const {resolve} = require(`path`); const relPnpApiPath = "../../../../.pnp.cjs"; const absPnpApiPath = resolve(__dirname, relPnpApiPath); -const absRequire = (createRequire || createRequireFromPath)(absPnpApiPath); +const absRequire = createRequire(absPnpApiPath); if (existsSync(absPnpApiPath)) { if (!process.versions.pnp) { diff --git a/tgui/.yarn/sdks/eslint/lib/api.js b/tgui/.yarn/sdks/eslint/lib/api.js index fc728d952bb8..653b22bae06f 100644 --- a/tgui/.yarn/sdks/eslint/lib/api.js +++ b/tgui/.yarn/sdks/eslint/lib/api.js @@ -1,13 +1,13 @@ #!/usr/bin/env node const {existsSync} = require(`fs`); -const {createRequire, createRequireFromPath} = require(`module`); +const {createRequire} = require(`module`); const {resolve} = require(`path`); const relPnpApiPath = "../../../../.pnp.cjs"; const absPnpApiPath = resolve(__dirname, relPnpApiPath); -const absRequire = (createRequire || createRequireFromPath)(absPnpApiPath); +const absRequire = createRequire(absPnpApiPath); if (existsSync(absPnpApiPath)) { if (!process.versions.pnp) { diff --git a/tgui/.yarn/sdks/eslint/lib/unsupported-api.js b/tgui/.yarn/sdks/eslint/lib/unsupported-api.js new file mode 100644 index 000000000000..30fdf158b475 --- /dev/null +++ b/tgui/.yarn/sdks/eslint/lib/unsupported-api.js @@ -0,0 +1,20 @@ +#!/usr/bin/env node + +const {existsSync} = require(`fs`); +const {createRequire} = require(`module`); +const {resolve} = require(`path`); + +const relPnpApiPath = "../../../../.pnp.cjs"; + +const absPnpApiPath = resolve(__dirname, relPnpApiPath); +const absRequire = createRequire(absPnpApiPath); + +if (existsSync(absPnpApiPath)) { + if (!process.versions.pnp) { + // Setup the environment to be able to require eslint/use-at-your-own-risk + require(absPnpApiPath).setup(); + } +} + +// Defer to the real eslint/use-at-your-own-risk your application uses +module.exports = absRequire(`eslint/use-at-your-own-risk`); diff --git a/tgui/.yarn/sdks/eslint/package.json b/tgui/.yarn/sdks/eslint/package.json index 744a77321030..263cd3d500b2 100644 --- a/tgui/.yarn/sdks/eslint/package.json +++ b/tgui/.yarn/sdks/eslint/package.json @@ -1,6 +1,14 @@ { "name": "eslint", - "version": "7.32.0-sdk", + "version": "8.57.0-sdk", "main": "./lib/api.js", - "type": "commonjs" + "type": "commonjs", + "bin": { + "eslint": "./bin/eslint.js" + }, + "exports": { + "./package.json": "./package.json", + ".": "./lib/api.js", + "./use-at-your-own-risk": "./lib/unsupported-api.js" + } } diff --git a/tgui/.yarn/sdks/prettier/bin/prettier.cjs b/tgui/.yarn/sdks/prettier/bin/prettier.cjs new file mode 100644 index 000000000000..5efad688e739 --- /dev/null +++ b/tgui/.yarn/sdks/prettier/bin/prettier.cjs @@ -0,0 +1,20 @@ +#!/usr/bin/env node + +const {existsSync} = require(`fs`); +const {createRequire} = require(`module`); +const {resolve} = require(`path`); + +const relPnpApiPath = "../../../../.pnp.cjs"; + +const absPnpApiPath = resolve(__dirname, relPnpApiPath); +const absRequire = createRequire(absPnpApiPath); + +if (existsSync(absPnpApiPath)) { + if (!process.versions.pnp) { + // Setup the environment to be able to require prettier/bin/prettier.cjs + require(absPnpApiPath).setup(); + } +} + +// Defer to the real prettier/bin/prettier.cjs your application uses +module.exports = absRequire(`prettier/bin/prettier.cjs`); diff --git a/tgui/.yarn/sdks/prettier/index.cjs b/tgui/.yarn/sdks/prettier/index.cjs new file mode 100644 index 000000000000..8758e367a725 --- /dev/null +++ b/tgui/.yarn/sdks/prettier/index.cjs @@ -0,0 +1,20 @@ +#!/usr/bin/env node + +const {existsSync} = require(`fs`); +const {createRequire} = require(`module`); +const {resolve} = require(`path`); + +const relPnpApiPath = "../../../.pnp.cjs"; + +const absPnpApiPath = resolve(__dirname, relPnpApiPath); +const absRequire = createRequire(absPnpApiPath); + +if (existsSync(absPnpApiPath)) { + if (!process.versions.pnp) { + // Setup the environment to be able to require prettier + require(absPnpApiPath).setup(); + } +} + +// Defer to the real prettier your application uses +module.exports = absRequire(`prettier`); diff --git a/tgui/.yarn/sdks/prettier/index.js b/tgui/.yarn/sdks/prettier/index.js deleted file mode 100644 index f6882d809725..000000000000 --- a/tgui/.yarn/sdks/prettier/index.js +++ /dev/null @@ -1,20 +0,0 @@ -#!/usr/bin/env node - -const {existsSync} = require(`fs`); -const {createRequire, createRequireFromPath} = require(`module`); -const {resolve} = require(`path`); - -const relPnpApiPath = "../../../.pnp.cjs"; - -const absPnpApiPath = resolve(__dirname, relPnpApiPath); -const absRequire = (createRequire || createRequireFromPath)(absPnpApiPath); - -if (existsSync(absPnpApiPath)) { - if (!process.versions.pnp) { - // Setup the environment to be able to require prettier/index.js - require(absPnpApiPath).setup(); - } -} - -// Defer to the real prettier/index.js your application uses -module.exports = absRequire(`prettier/index.js`); diff --git a/tgui/.yarn/sdks/prettier/package.json b/tgui/.yarn/sdks/prettier/package.json index 0cbd71ff32d5..6e68f38b6716 100644 --- a/tgui/.yarn/sdks/prettier/package.json +++ b/tgui/.yarn/sdks/prettier/package.json @@ -1,6 +1,7 @@ { "name": "prettier", - "version": "0.19.0-sdk", - "main": "./index.js", - "type": "commonjs" + "version": "3.2.5-sdk", + "main": "./index.cjs", + "type": "commonjs", + "bin": "./bin/prettier.cjs" } diff --git a/tgui/.yarn/sdks/typescript/bin/tsc b/tgui/.yarn/sdks/typescript/bin/tsc index 5608e5743072..454b950b7e8f 100644 --- a/tgui/.yarn/sdks/typescript/bin/tsc +++ b/tgui/.yarn/sdks/typescript/bin/tsc @@ -1,13 +1,13 @@ #!/usr/bin/env node const {existsSync} = require(`fs`); -const {createRequire, createRequireFromPath} = require(`module`); +const {createRequire} = require(`module`); const {resolve} = require(`path`); const relPnpApiPath = "../../../../.pnp.cjs"; const absPnpApiPath = resolve(__dirname, relPnpApiPath); -const absRequire = (createRequire || createRequireFromPath)(absPnpApiPath); +const absRequire = createRequire(absPnpApiPath); if (existsSync(absPnpApiPath)) { if (!process.versions.pnp) { diff --git a/tgui/.yarn/sdks/typescript/bin/tsserver b/tgui/.yarn/sdks/typescript/bin/tsserver index cd7d557d523d..d7a605684df9 100644 --- a/tgui/.yarn/sdks/typescript/bin/tsserver +++ b/tgui/.yarn/sdks/typescript/bin/tsserver @@ -1,13 +1,13 @@ #!/usr/bin/env node const {existsSync} = require(`fs`); -const {createRequire, createRequireFromPath} = require(`module`); +const {createRequire} = require(`module`); const {resolve} = require(`path`); const relPnpApiPath = "../../../../.pnp.cjs"; const absPnpApiPath = resolve(__dirname, relPnpApiPath); -const absRequire = (createRequire || createRequireFromPath)(absPnpApiPath); +const absRequire = createRequire(absPnpApiPath); if (existsSync(absPnpApiPath)) { if (!process.versions.pnp) { diff --git a/tgui/.yarn/sdks/typescript/lib/tsc.js b/tgui/.yarn/sdks/typescript/lib/tsc.js index 16042d01d4fe..2f62fc96c0a0 100644 --- a/tgui/.yarn/sdks/typescript/lib/tsc.js +++ b/tgui/.yarn/sdks/typescript/lib/tsc.js @@ -1,13 +1,13 @@ #!/usr/bin/env node const {existsSync} = require(`fs`); -const {createRequire, createRequireFromPath} = require(`module`); +const {createRequire} = require(`module`); const {resolve} = require(`path`); const relPnpApiPath = "../../../../.pnp.cjs"; const absPnpApiPath = resolve(__dirname, relPnpApiPath); -const absRequire = (createRequire || createRequireFromPath)(absPnpApiPath); +const absRequire = createRequire(absPnpApiPath); if (existsSync(absPnpApiPath)) { if (!process.versions.pnp) { diff --git a/tgui/.yarn/sdks/typescript/lib/tsserver.js b/tgui/.yarn/sdks/typescript/lib/tsserver.js index 9f9f4d6f4696..bbb1e46501b5 100644 --- a/tgui/.yarn/sdks/typescript/lib/tsserver.js +++ b/tgui/.yarn/sdks/typescript/lib/tsserver.js @@ -1,13 +1,13 @@ #!/usr/bin/env node const {existsSync} = require(`fs`); -const {createRequire, createRequireFromPath} = require(`module`); +const {createRequire} = require(`module`); const {resolve} = require(`path`); const relPnpApiPath = "../../../../.pnp.cjs"; const absPnpApiPath = resolve(__dirname, relPnpApiPath); -const absRequire = (createRequire || createRequireFromPath)(absPnpApiPath); +const absRequire = createRequire(absPnpApiPath); const moduleWrapper = tsserver => { if (!process.versions.pnp) { @@ -109,6 +109,8 @@ const moduleWrapper = tsserver => { str = `zip:${str}`; } break; } + } else { + str = str.replace(/^\/?/, process.platform === `win32` ? `` : `/`); } } diff --git a/tgui/.yarn/sdks/typescript/lib/tsserverlibrary.js b/tgui/.yarn/sdks/typescript/lib/tsserverlibrary.js index 878b11946a4c..a68f028fe197 100644 --- a/tgui/.yarn/sdks/typescript/lib/tsserverlibrary.js +++ b/tgui/.yarn/sdks/typescript/lib/tsserverlibrary.js @@ -1,13 +1,13 @@ #!/usr/bin/env node const {existsSync} = require(`fs`); -const {createRequire, createRequireFromPath} = require(`module`); +const {createRequire} = require(`module`); const {resolve} = require(`path`); const relPnpApiPath = "../../../../.pnp.cjs"; const absPnpApiPath = resolve(__dirname, relPnpApiPath); -const absRequire = (createRequire || createRequireFromPath)(absPnpApiPath); +const absRequire = createRequire(absPnpApiPath); const moduleWrapper = tsserver => { if (!process.versions.pnp) { @@ -109,6 +109,8 @@ const moduleWrapper = tsserver => { str = `zip:${str}`; } break; } + } else { + str = str.replace(/^\/?/, process.platform === `win32` ? `` : `/`); } } diff --git a/tgui/.yarn/sdks/typescript/lib/typescript.js b/tgui/.yarn/sdks/typescript/lib/typescript.js index cbdbf1500fbe..b5f4db25bee6 100644 --- a/tgui/.yarn/sdks/typescript/lib/typescript.js +++ b/tgui/.yarn/sdks/typescript/lib/typescript.js @@ -1,20 +1,20 @@ #!/usr/bin/env node const {existsSync} = require(`fs`); -const {createRequire, createRequireFromPath} = require(`module`); +const {createRequire} = require(`module`); const {resolve} = require(`path`); const relPnpApiPath = "../../../../.pnp.cjs"; const absPnpApiPath = resolve(__dirname, relPnpApiPath); -const absRequire = (createRequire || createRequireFromPath)(absPnpApiPath); +const absRequire = createRequire(absPnpApiPath); if (existsSync(absPnpApiPath)) { if (!process.versions.pnp) { - // Setup the environment to be able to require typescript/lib/typescript.js + // Setup the environment to be able to require typescript require(absPnpApiPath).setup(); } } -// Defer to the real typescript/lib/typescript.js your application uses -module.exports = absRequire(`typescript/lib/typescript.js`); +// Defer to the real typescript your application uses +module.exports = absRequire(`typescript`); diff --git a/tgui/.yarn/sdks/typescript/package.json b/tgui/.yarn/sdks/typescript/package.json index ea85e133e822..bedc36522526 100644 --- a/tgui/.yarn/sdks/typescript/package.json +++ b/tgui/.yarn/sdks/typescript/package.json @@ -1,6 +1,10 @@ { "name": "typescript", - "version": "4.3.5-sdk", + "version": "5.4.3-sdk", "main": "./lib/typescript.js", - "type": "commonjs" + "type": "commonjs", + "bin": { + "tsc": "./bin/tsc", + "tsserver": "./bin/tsserver" + } } diff --git a/tgui/.yarnrc.yml b/tgui/.yarnrc.yml index 53846c71f318..8e02c91d907e 100644 --- a/tgui/.yarnrc.yml +++ b/tgui/.yarnrc.yml @@ -1,3 +1,7 @@ +compressionLevel: 0 + +enableGlobalCache: false + enableScripts: false logFilters: @@ -6,14 +10,8 @@ logFilters: - code: YN0062 level: discard -plugins: - - path: .yarn/plugins/@yarnpkg/plugin-interactive-tools.cjs - spec: "@yarnpkg/plugin-interactive-tools" - pnpEnableEsmLoader: false -preferAggregateCacheInfo: true - preferInteractive: true -yarnPath: .yarn/releases/yarn-3.1.1.cjs +yarnPath: .yarn/releases/yarn-4.1.1.cjs diff --git a/tgui/README.md b/tgui/README.md index e87130243429..1bae91fd1325 100644 --- a/tgui/README.md +++ b/tgui/README.md @@ -16,10 +16,9 @@ If you are completely new to frontend and prefer to **learn by doing**, start wi ### Guides -This project uses **Inferno** - a very fast UI rendering engine with a similar API to React. Take your time to read these guides: +This project uses React. Take your time to read the guide: -- [React guide](https://reactjs.org/docs/hello-world.html) -- [Inferno documentation](https://infernojs.org/docs/guides/components) - highlights differences with React. +- [React guide](https://react.dev/learn) If you were already familiar with an older, Ractive-based tgui, and want to translate concepts between old and new tgui, read this [interface conversion guide](docs/converting-old-tgui-interfaces.md). @@ -71,6 +70,7 @@ However, if you want finer control over the installation or build process, you w - `tools/build/build tgui-clean` - Clean up tgui folder. > With Juke Build, you can run multiple targets together, e.g.: +> > ``` > tools/build/build tgui tgui-lint tgui-tsc tgui-test > ``` @@ -137,7 +137,7 @@ Press `F12` or click the green bug to open the KitchenSink interface. This inter playground to test various tgui components. **Layout Debugger.** -Press `F11` to toggle the *layout debugger*. It will show outlines of +Press `F11` to toggle the _layout debugger_. It will show outlines of all tgui elements, which makes it easy to understand how everything comes together, and can reveal certain layout bugs which are not normally visible. diff --git a/tgui/babel.config.js b/tgui/babel.config.js deleted file mode 100644 index e702c9a7119d..000000000000 --- a/tgui/babel.config.js +++ /dev/null @@ -1,44 +0,0 @@ -/** - * @file - * @copyright 2020 Aleksej Komarov - * @license MIT - */ - -const createBabelConfig = (options) => { - const { presets = [], plugins = [], removeConsole } = options; - // prettier-ignore - return { - presets: [ - [require.resolve('@babel/preset-typescript'), { - allowDeclareFields: true, - }], - [require.resolve('@babel/preset-env'), { - modules: 'commonjs', - useBuiltIns: 'entry', - corejs: '3', - spec: false, - loose: true, - targets: [], - }], - ...presets, - ].filter(Boolean), - plugins: [ - [require.resolve('@babel/plugin-proposal-class-properties'), { - loose: true, - }], - require.resolve('@babel/plugin-transform-jscript'), - require.resolve('babel-plugin-inferno'), - removeConsole && require.resolve('babel-plugin-transform-remove-console'), - require.resolve('common/string.babel-plugin.cjs'), - ...plugins, - ].filter(Boolean), - }; -}; - -module.exports = (api) => { - api.cache(true); - const mode = process.env.NODE_ENV; - return createBabelConfig({ mode }); -}; - -module.exports.createBabelConfig = createBabelConfig; diff --git a/tgui/docs/component-reference.md b/tgui/docs/component-reference.md index d814fc343a72..199a19b866f7 100644 --- a/tgui/docs/component-reference.md +++ b/tgui/docs/component-reference.md @@ -65,17 +65,13 @@ it is used a lot in this framework. **Event handlers.** Event handlers are callbacks that you can attack to various element to -listen for browser events. Inferno supports camelcase (`onClick`) and -lowercase (`onclick`) event names. - -- Camel case names are what's called *synthetic* events, and are the -**preferred way** of handling events in React, for efficiency and -performance reasons. Please read -[Inferno Event Handling](https://infernojs.org/docs/guides/event-handling) -to understand what this is about. -- Lower case names are native browser events and should be used sparingly, -for example when you need an explicit IE8 support. **DO NOT** use -lowercase event handlers unless you really know what you are doing. +listen for browser events. React supports camelcase (`onClick`) event names. + +- Camel case names are what's called _synthetic_ events, and are the + **preferred way** of handling events in React, for efficiency and + performance reasons. Please read + [React Event Handling](https://react.dev/learn/responding-to-events) + to understand what this is about. ## `tgui/components` @@ -87,13 +83,13 @@ This component provides animations for numeric values. - `value: number` - Value to animate. - `initial: number` - Initial value to use in animation when element -first appears. If you set initial to `0` for example, number will always -animate starting from `0`, and if omitted, it will not play an initial -animation. + first appears. If you set initial to `0` for example, number will always + animate starting from `0`, and if omitted, it will not play an initial + animation. - `format: value => value` - Output formatter. - Example: `value => Math.round(value)`. - `children: (formattedValue, rawValue) => any` - Pull the animated number to -animate more complex things deeper in the DOM tree. + animate more complex things deeper in the DOM tree. - Example: `(_, value) => ` ### `BlockQuote` @@ -162,10 +158,10 @@ Default font size (`1rem`) is equal to `12px`. - `fontSize: number` - Font size. - `fontFamily: string` - Font family. - `lineHeight: number` - Directly affects the height of text lines. -Useful for adjusting button height. + Useful for adjusting button height. - `inline: boolean` - Forces the `Box` to appear as an `inline-block`, -or in other words, makes the `Box` flow with the text instead of taking -all available horizontal space. + or in other words, makes the `Box` flow with the text instead of taking + all available horizontal space. - `m: number` - Margin on all sides. - `mx: number` - Horizontal margin. - `my: number` - Vertical margin. @@ -198,7 +194,7 @@ all available horizontal space. - `#ffffff` - Hex format - `rgba(255, 255, 255, 1)` - RGB format - `purple` - Applies an atomic `color-` class to the element. - See `styles/color-map.scss`. + See `styles/color-map.scss`. - `backgroundColor: string` - Sets background color. - `#ffffff` - Hex format - `rgba(255, 255, 255, 1)` - RGB format @@ -212,19 +208,20 @@ Buttons allow users to take actions, and make choices, with a single click. - See inherited props: [Box](#box) - `fluid: boolean` - Fill all available horizontal space. - `icon: string` - Adds an icon to the button. +- `iconPosition?: string` - Set to `'right'` to align the icon to the right of the children - `color: string` - Button color, as defined in `variables.scss`. - There is also a special color `transparent` - makes the button - transparent and slightly dim when inactive. + transparent and slightly dim when inactive. - `disabled: boolean` - Disables and greys out the button. - `selected: boolean` - Activates the button (gives it a green color). - `tooltip: string` - A fancy, boxy tooltip, which appears when hovering -over the button. + over the button. - `tooltipPosition?: string` - Position of the tooltip. See [`Popper`](#Popper) for valid options. - `ellipsis: boolean` - If button width is constrained, button text will -be truncated with an ellipsis. Be careful however, because this prop breaks -the baseline alignment. + be truncated with an ellipsis. Be careful however, because this prop breaks + the baseline alignment. - `title: string` - A native browser tooltip, which appears when hovering -over the button. + over the button. - `children: any` - Content to render inside the button. - `onClick: function` - Called when element is clicked. - `verticalAlignContent: string` - Align content vertically using flex. Use lineHeight if the height is static. @@ -250,6 +247,7 @@ A button with an extra confirmation step, using native button component. - See inherited props: [Button](#button) - `confirmContent: string` - Text to display after first click; defaults to "Confirm?" - `confirmColor: string` - Color to display after first click; defaults to "bad" +- `onConfirmChange: function` - Called when the clickedOnce state changes: When the element is clicked the first time or unfocused. ### `Button.Input` @@ -262,11 +260,11 @@ commit, while escape cancels. - See inherited props: [Box](#box) - `fluid`: fill available horizontal space - `onCommit: (e, value) => void`: function that is called after the user -defocuses the input or presses enter + defocuses the input or presses enter - `currentValue: string`: default string to display when the input is shown - `defaultValue: string`: default value emitted if the user leaves the box -blank when hitting enter or defocusing. If left undefined, will cancel the -change on a blank defocus/enter + blank when hitting enter or defocusing. If left undefined, will cancel the + change on a blank defocus/enter ### `ByondUi` @@ -303,8 +301,8 @@ It supports a full set of `Box` properties for layout purposes. - See inherited props: [Box](#box) - `params: any` - An object with parameters, which are directly passed to -the `winset` proc call. You can find a full reference of these parameters -in [BYOND controls and parameters guide](https://secure.byond.com/docs/ref/skinparams.html). + the `winset` proc call. You can find a full reference of these parameters + in [BYOND controls and parameters guide](https://secure.byond.com/docs/ref/skinparams.html). ### `Collapsible` @@ -351,7 +349,7 @@ Works like the good old `
              ` element, but it's fancier. - `vertical: boolean` - Divide content vertically. - `hidden: boolean` - Divider can divide content without creating a dividing -line. + line. ### `Dropdown` @@ -362,15 +360,13 @@ and displays selected entry. - See inherited props: [Box](#box) - See inherited props: [Icon](#icon) -- `options: string[]` - An array of strings which will be displayed in the -dropdown when open -- `selected: string` - Currently selected entry -- `width: number` - Width of dropdown button and resulting menu +- `options: string[] | DropdownEntry[]` - An array of strings which will be displayed in the + dropdown when open. See Dropdown.tsx for more advanced usage with DropdownEntry +- `selected: any` - Currently selected entry - `over: boolean` - Dropdown renders over instead of below - `color: string` - Color of dropdown button -- `nochevron: boolean` - Whether or not the arrow on the right hand side of the dropdown button is visible -- `noscroll: boolean` - Whether or not the dropdown menu should have a scroll bar -- `displayText: string` - Text to always display in place of the selected text +- `noChevron: boolean` - Whether or not the arrow on the right hand side of the dropdown button is visible +- `displayText: ReactNode` - Text to always display in place of the selected text - `onClick: (e) => void` - Called when dropdown button is clicked - `onSelected: (value) => void` - Called when a value is picked from the list, `value` is the value that was picked @@ -409,17 +405,17 @@ effectively places the last flex item to the very end of the flex container. - See inherited props: [Box](#box) - ~~`spacing: number`~~ - **Removed in tgui 4.3**, -use [Stack](#stack) instead. + use [Stack](#stack) instead. - `inline: boolean` - Makes flexbox container inline, with similar behavior -to an `inline` property on a `Box`. + to an `inline` property on a `Box`. - `direction: string` - This establishes the main-axis, thus defining the -direction flex items are placed in the flex container. + direction flex items are placed in the flex container. - `row` (default) - left to right. - `row-reverse` - right to left. - `column` - top to bottom. - `column-reverse` - bottom to top. - `wrap: string` - By default, flex items will all try to fit onto one line. -You can change that and allow the items to wrap as needed with this property. + You can change that and allow the items to wrap as needed with this property. - `nowrap` (default) - all flex items will be on one line - `wrap` - flex items will wrap onto multiple lines, from top to bottom. - `wrap-reverse` - flex items will wrap onto multiple lines from bottom to top. @@ -430,22 +426,22 @@ You can change that and allow the items to wrap as needed with this property. - `center` - items are centered on the cross axis. - `baseline` - items are aligned such as their baselines align. - `justify: string` - This defines the alignment along the main axis. -It helps distribute extra free space leftover when either all the flex -items on a line are inflexible, or are flexible but have reached their -maximum size. It also exerts some control over the alignment of items -when they overflow the line. + It helps distribute extra free space leftover when either all the flex + items on a line are inflexible, or are flexible but have reached their + maximum size. It also exerts some control over the alignment of items + when they overflow the line. - `flex-start` (default) - items are packed toward the start of the - flex-direction. + flex-direction. - `flex-end` - items are packed toward the end of the flex-direction. - `space-between` - items are evenly distributed in the line; first item is - on the start line, last item on the end line + on the start line, last item on the end line - `space-around` - items are evenly distributed in the line with equal space - around them. Note that visually the spaces aren't equal, since all the items - have equal space on both sides. The first item will have one unit of space - against the container edge, but two units of space between the next item - because that next item has its own spacing that applies. + around them. Note that visually the spaces aren't equal, since all the items + have equal space on both sides. The first item will have one unit of space + against the container edge, but two units of space between the next item + because that next item has its own spacing that applies. - `space-evenly` - items are distributed so that the spacing between any two - items (and the space to the edges) is equal. + items (and the space to the edges) is equal. - TBD (not all properties are supported in IE11). ### `Flex.Item` @@ -454,24 +450,24 @@ when they overflow the line. - See inherited props: [Box](#box) - `order: number` - By default, flex items are laid out in the source order. -However, the order property controls the order in which they appear in the -flex container. + However, the order property controls the order in which they appear in the + flex container. - `grow: number | boolean` - This defines the ability for a flex item to grow -if necessary. It accepts a unitless value that serves as a proportion. It -dictates what amount of the available space inside the flex container the -item should take up. This number is unit-less and is relative to other -siblings. + if necessary. It accepts a unitless value that serves as a proportion. It + dictates what amount of the available space inside the flex container the + item should take up. This number is unit-less and is relative to other + siblings. - `shrink: number | boolean` - This defines the ability for a flex item to -shrink if necessary. Inverse of `grow`. + shrink if necessary. Inverse of `grow`. - `basis: number | string` - This defines the default size of an element -before any flex-related calculations are done. Has to be a length -(e.g. `20%`, `5rem`), an `auto` or `content` keyword. + before any flex-related calculations are done. Has to be a length + (e.g. `20%`, `5rem`), an `auto` or `content` keyword. - **Important:** IE11 flex is buggy, and auto width/height calculations - can sometimes end up in a circular dependency. This usually happens, when - working with tables inside flex (they have wacky internal widths and such). - Setting basis to `0` breaks the loop and fixes all of the problems. + can sometimes end up in a circular dependency. This usually happens, when + working with tables inside flex (they have wacky internal widths and such). + Setting basis to `0` breaks the loop and fixes all of the problems. - `align: string` - This allows the default alignment (or the one specified by -align-items) to be overridden for individual flex items. See: [Flex](#flex). + align-items) to be overridden for individual flex items. See: [Flex](#flex). ### `Grid` @@ -520,6 +516,7 @@ Renders one of the FontAwesome icons of your choice. To smoothen the transition from v4 to v5, we have added a v4 semantic to transform names with `-o` suffixes to FA Regular icons. For example: + - `square` will get transformed to `fas square` - `square-o` will get transformed to `far square` @@ -528,10 +525,10 @@ transform names with `-o` suffixes to FA Regular icons. For example: - See inherited props: [Box](#box) - `name: string` - Icon name. - `size: number` - Icon size. `1` is normal size, `2` is two times bigger. -Fractional numbers are supported. + Fractional numbers are supported. - `rotation: number` - Icon rotation, in degrees. - `spin: boolean` - Whether an icon should be spinning. Good for load -indicators. + indicators. ### `Icon.Stack` @@ -559,15 +556,18 @@ A basic text input, which allow users to enter text into a UI. **Props:** - See inherited props: [Box](#box) -- `value: string` - Value of an input. +- `value: string` - The initial value displayed on the input. - `placeholder: string` - Text placed into Input box when it's empty, -otherwise nothing. Clears automatically when focused. + otherwise nothing. Clears automatically when focused. - `fluid: boolean` - Fill all available horizontal space. - `selfClear: boolean` - Clear after hitting enter, as well as remain focused -when this happens. Useful for things like chat inputs. -- `onChange: (e, value) => void` - An event, which fires when you commit -the text by either unfocusing the input box, or by pressing the Enter key. -- `onInput: (e, value) => void` - An event, which fires on every keypress. + when this happens. Useful for things like chat inputs. +- `onChange: (e, value) => void` - Fires when the user clicks out or presses enter. +- `onEnter: (e, value) => void` - Fires when the user hits enter. +- `onEscape: (e) => void` - Fires when the user hits escape. +- `onInput: (e, value) => void` - Fires when the user types into the input. +- `expensive: boolean` - Introduces a delay before updating the input. Useful for large filters, + where you don't want to update on every keystroke. ### `Knob` @@ -582,30 +582,30 @@ Single click opens an input box to manually type in a number. - `animated: boolean` - Animates the value if it was changed externally. - `bipolar: boolean` - Knob can be bipolar or unipolar. - `size: number` - Relative size of the knob. `1` is normal size, `2` is two -times bigger. Fractional numbers are supported. + times bigger. Fractional numbers are supported. - `color: string` - Color of the outer ring around the knob. - `value: number` - Value itself, controls the position of the cursor. - `unit: string` - Unit to display to the right of value. - `minValue: number` - Lowest possible value. - `maxValue: number` - Highest possible value. - `fillValue: number` - If set, this value will be used to set the fill -percentage of the outer ring independently of the main value. + percentage of the outer ring independently of the main value. - `ranges: { color: [from, to] }` - Applies a `color` to the outer ring around -the knob based on whether the value lands in the range between `from` and `to`. -See an example of this prop in [ProgressBar](#progressbar). + the knob based on whether the value lands in the range between `from` and `to`. + See an example of this prop in [ProgressBar](#progressbar). - `step: number` (default: 1) - Adjust value by this amount when -dragging the input. + dragging the input. - `stepPixelSize: number` (default: 1) - Screen distance mouse needs -to travel to adjust value by one `step`. + to travel to adjust value by one `step`. - `format: value => value` - Format value using this function before -displaying it. + displaying it. - `suppressFlicker: number` - A number in milliseconds, for which the input -will hold off from updating while events propagate through the backend. -Default is about 250ms, increase it if you still see flickering. + will hold off from updating while events propagate through the backend. + Default is about 250ms, increase it if you still see flickering. - `onChange: (e, value) => void` - An event, which fires when you release -the input, or successfully enter a number. + the input, or successfully enter a number. - `onDrag: (e, value) => void` - An event, which fires about every 500ms -when you drag the input up and down, on release and on manual editing. + when you drag the input up and down, on release and on manual editing. ### `LabeledControls` @@ -665,7 +665,7 @@ to perform some sort of action), there is a way to do that: **Props:** - `className: string` - Applies a CSS class to the element. -- `label: string|InfernoNode` - Item label. +- `label: string|ReactNode` - Item label. - `labelWrap: boolean` - Lets the label wrap and makes it not take the minimum width. - `labelColor: string` - Sets the color of the label. - `color: string` - Sets the color of the content text. @@ -731,28 +731,26 @@ to fine tune the value, or single click it to manually type a number. **Props:** - `animated: boolean` - Animates the value if it was changed externally. +- `disabled: boolean` - Makes the input field uneditable & non draggable to prevent user changes - `fluid: boolean` - Fill all available horizontal space. -- `value: number` - Value itself. +- `value: string|number` - Value itself. - `unit: string` - Unit to display to the right of value. - `minValue: number` - Lowest possible value. - `maxValue: number` - Highest possible value. - `step: number` (default: 1) - Adjust value by this amount when -dragging the input. + dragging the input. - `stepPixelSize: number` (default: 1) - Screen distance mouse needs -to travel to adjust value by one `step`. -- `width: string|number` - Width of the element, in `Box` units or pixels. -- `height: string|numer` - Height of the element, in `Box` units or pixels. -- `lineHeight: string|number` - lineHeight of the element, in `Box` units or pixels. -- `fontSize: string|number` - fontSize of the element, in `Box` units or pixels. -- `format: value => value` - Format value using this function before -displaying it. -- `suppressFlicker: number` - A number in milliseconds, for which the input -will hold off from updating while events propagate through the backend. -Default is about 250ms, increase it if you still see flickering. -- `onChange: (e, value) => void` - An event, which fires when you release -the input, or successfully enter a number. -- `onDrag: (e, value) => void` - An event, which fires about every 500ms -when you drag the input up and down, on release and on manual editing. + to travel to adjust value by one `step`. +- `width: string` - Width of the element, in `Box` units or pixels. +- `height: string` - Height of the element, in `Box` units or pixels. +- `lineHeight: string` - lineHeight of the element, in `Box` units or pixels. +- `fontSize: string` - fontSize of the element, in `Box` units or pixels. +- `format: (value: number) => string` - Format value using this function before + displaying it. +- `onChange: (value: number) => void` - An event, which fires when you release + the input, or successfully enter a number. +- `onDrag: (value: number) => void` - An event, which fires about every 500ms + when you drag the input up and down, on release and on manual editing. ### `Popper` @@ -760,9 +758,10 @@ Popper lets you position elements so that they don't go out of the bounds of the **Props:** -- `popperContent: InfernoNode` - The content that will be put inside the popper. -- `options?: { ... }` - An object of options to pass to `createPopper`. See [https://popper.js.org/docs/v2/constructors/#options], but the one you want most is `placement`. Valid placements are "bottom", "top", "left", and "right". You can affix "-start" and "-end" to achieve something like top left or top right respectively. You can also use "auto" (with an optional "-start" or "-end"), where a best fit will be chosen. -- `additionalStyles: { ... }` - A map of CSS styles to add to the element that will contain the popper. +- `content: ReactNode` - The content that will be put inside the popper. +- `isOpen: boolean` - Whether or not the popper is open. +- `onClickOutside?: (e) => void` - A function that will be called when the user clicks outside of the popper. +- `placement?: string` - The placement of the popper. See [https://popper.js.org/docs/v2/constructors/#placement] ### `ProgressBar` @@ -781,18 +780,19 @@ Usage of `ranges` prop: average: [0.25, 0.5], bad: [-Infinity, 0.25], }} - value={0.6} /> + value={0.6} +/> ``` **Props:** - `value: number` - Current progress as a floating point number between -`minValue` (default: 0) and `maxValue` (default: 1). Determines the -percentage and how filled the bar is. + `minValue` (default: 0) and `maxValue` (default: 1). Determines the + percentage and how filled the bar is. - `minValue: number` - Lowest possible value. - `maxValue: number` - Highest possible value. - `ranges: { color: [from, to] }` - Applies a `color` to the progress bar -based on whether the value lands in the range between `from` and `to`. + based on whether the value lands in the range between `from` and `to`. - `color: string` - Color of the progress bar. Can take any of the following formats: - `#ffffff` - Hex format - `rgb(r,g,b) / rgba(r,g,b,a)` - RGB format @@ -810,13 +810,14 @@ The RoundGauge component provides a visual representation of a single metric, as value={tankPressure} minValue={0} maxValue={pressureLimit} - alertAfter={pressureLimit * 0.70} + alertAfter={pressureLimit * 0.7} ranges={{ - "good": [0, pressureLimit * 0.70], - "average": [pressureLimit * 0.70, pressureLimit * 0.85], - "bad": [pressureLimit * 0.85, pressureLimit], + good: [0, pressureLimit * 0.7], + average: [pressureLimit * 0.7, pressureLimit * 0.85], + bad: [pressureLimit * 0.85, pressureLimit], }} - format={formatPressure} /> + format={formatPressure} +/> ``` The alert on the gauge is optional, and will only be shown if the `alertAfter` prop is defined. When defined, the alert will begin to flash the respective color upon which the needle currently rests, as defined in the `ranges` prop. @@ -893,23 +894,23 @@ Single click opens an input box to manually type in a number. - `minValue: number` - Lowest possible value. - `maxValue: number` - Highest possible value. - `fillValue: number` - If set, this value will be used to set the fill -percentage of the progress bar filler independently of the main value. + percentage of the progress bar filler independently of the main value. - `ranges: { color: [from, to] }` - Applies a `color` to the slider -based on whether the value lands in the range between `from` and `to`. -See an example of this prop in [ProgressBar](#progressbar). + based on whether the value lands in the range between `from` and `to`. + See an example of this prop in [ProgressBar](#progressbar). - `step: number` (default: 1) - Adjust value by this amount when -dragging the input. + dragging the input. - `stepPixelSize: number` (default: 1) - Screen distance mouse needs -to travel to adjust value by one `step`. + to travel to adjust value by one `step`. - `format: value => value` - Format value using this function before -displaying it. + displaying it. - `suppressFlicker: number` - A number in milliseconds, for which the input -will hold off from updating while events propagate through the backend. -Default is about 250ms, increase it if you still see flickering. + will hold off from updating while events propagate through the backend. + Default is about 250ms, increase it if you still see flickering. - `onChange: (e, value) => void` - An event, which fires when you release -the input, or successfully enter a number. + the input, or successfully enter a number. - `onDrag: (e, value) => void` - An event, which fires about every 500ms -when you drag the input up and down, on release and on manual editing. + when you drag the input up and down, on release and on manual editing. ### `Stack` @@ -1023,7 +1024,7 @@ A straight forward mapping to `` element. - See inherited props: [Box](#box) - `collapsing: boolean` - Collapses table cell to the smallest possible size, -and stops any text inside from wrapping. + and stops any text inside from wrapping. ### `Tabs` @@ -1087,9 +1088,9 @@ component: - See inherited props: [Box](#box) - `fluid: boolean` - If true, tabs will take all available horizontal space. - `fill: boolean` - Similarly to `fill` on [Section](#section), tabs will fill -all available vertical space. Only makes sense in a vertical configuration. + all available vertical space. Only makes sense in a vertical configuration. - `vertical: boolean` - Use a vertical configuration, where tabs will be -stacked vertically. + stacked vertically. - `children: Tab[]` - This component only accepts tabs as its children. ### `Tabs.Tab` @@ -1101,8 +1102,8 @@ a lot of `Button` props. - See inherited props: [Button](#button) - `altSelection` - Whether the tab buttons select via standard select (color -change) or by adding a white indicator to the selected tab. -Intended for usage on interfaces where tab color has relevance. + change) or by adding a white indicator to the selected tab. + Intended for usage on interfaces where tab color has relevance. - `icon: string` - Tab icon. - `children: any` - Tab text. - `onClick: function` - Called when element is clicked. @@ -1129,7 +1130,7 @@ Usage: - `position?: string` - Tooltip position. See [`Popper`](#Popper) for valid options. Defaults to "auto". - `content: string` - Content of the tooltip. Must be a plain string. -Fragments or other elements are **not** supported. + Fragments or other elements are **not** supported. ## `tgui/layouts` @@ -1160,9 +1161,9 @@ Example: - `height: number` - Window height. - `canClose: boolean` - Controls the ability to close the window. - `children: any` - Child elements, which are rendered directly inside the -window. If you use a [Dimmer](#dimmer) or [Modal](#modal) in your UI, -they should be put as direct childs of a Window, otherwise you should be -putting your content into [Window.Content](#windowcontent). + window. If you use a [Dimmer](#dimmer) or [Modal](#modal) in your UI, + they should be put as direct childs of a Window, otherwise you should be + putting your content into [Window.Content](#windowcontent). ### `Window.Content` diff --git a/tgui/docs/converting-old-tgui-interfaces.md b/tgui/docs/converting-old-tgui-interfaces.md index a090fcfd1557..205a0bdd0c43 100644 --- a/tgui/docs/converting-old-tgui-interfaces.md +++ b/tgui/docs/converting-old-tgui-interfaces.md @@ -161,11 +161,11 @@ This is quite a bit higher concept than ractive's each statements, so feel free Now for objects, there's a genuinely pretty gross syntax here. We apoligize, it's related to ie8 compatibility nonsense. ```jsx -{map((value, key) => ( +{map(fooObject, (value, key) => ( Key is {key}, value is {value} -))(fooObject)} +))} ``` Again, sorry for this syntax. `fooObject` would be the object being iterated on, value would be the value of the iterated entry on the list, and key would be the key. the naming of value and key isn't important here, but knowing that it goes `value`, `key` in that order is important. @@ -174,9 +174,9 @@ It is sometimes better to preemptively convert an object to array before the big return statement, like this: ```jsx -const fooArray = map((value, key) => { +const fooArray = map(fooObject, (value, key) => { return { key, value }; -})(fooObject); +}); ``` Or if you just want to discard all keys, this will also work nicely: diff --git a/tgui/docs/state-usage.md b/tgui/docs/state-usage.md new file mode 100644 index 000000000000..9d3a2812a68d --- /dev/null +++ b/tgui/docs/state-usage.md @@ -0,0 +1,30 @@ +# Managing component state + +React has excellent documentation on useState and useEffect. These hooks should be the ways to manage state in TGUI (v5). +[React Hooks](https://react.dev/learn/state-a-components-memory) + +You might find usages of useLocalState. This should be considered deprecated and will be removed in the future. In older versions of TGUI, InfernoJS did not have hooks, so these were used to manage state. useSharedState is still used in some places where uis are considered "IC" and user input is shared with all persons at the console/machine/thing. + +## A Note on State + +Many beginners tend to overuse state (or hooks all together). State is effective when you want to implement user interactivity, or are handling asynchronous data, but if you are simply using state to store a value that is not changing, you should consider using a variable instead. + +In previous versions of React, each setState would trigger a re-render, which would cause poorly written components to cascade re-render on each page load. Messy! Though this is no longer the case with batch rendering, it's still worthwhile to point out that you might be overusing it. + +## Derived state + +One great way to cut back on state usage is by using props or other state as the basis for a variable. You'll see many examples of this in the TGUI codebase. What does this mean? Here's an example: + +```tsx +// Bad +const [count, setCount] = useState(0); +const [isEven, setIsEven] = useState(false); + +useEffect(() => { + setIsEven(count % 2 === 0); +}, [count]); + +// Good! +const [count, setCount] = useState(0); +const isEven = count % 2 === 0; // Derived state +``` diff --git a/tgui/docs/tutorial-and-examples.md b/tgui/docs/tutorial-and-examples.md index 2e02f0e491ac..965235fa0c32 100644 --- a/tgui/docs/tutorial-and-examples.md +++ b/tgui/docs/tutorial-and-examples.md @@ -114,9 +114,7 @@ recommend getting yourself introduced to A React component is not a regular HTML template. A component is a javascript function, which accepts a `props` object (that contains -properties passed to a component) and a `context` object (which is -necessary to access UI data) as arguments, and outputs an HTML-like -structure. +properties passed to a component), and outputs an HTML-like structure. So let's create our first React Component. Create a file with a name `SampleInterface.js` (or any other name you want), and copy this code @@ -127,8 +125,8 @@ import { useBackend } from '../backend'; import { Button, LabeledList, Section } from '../components'; import { Window } from '../layouts'; -export const SampleInterface = (props, context) => { - const { act, data } = useBackend(context); +export const SampleInterface = (props) => { + const { act, data } = useBackend(); // Extract `health` and `color` variables from the `data` object. const { health, @@ -158,7 +156,7 @@ export const SampleInterface = (props, context) => { }; ``` -Here are the key variables you get from a `useBackend(context)` function: +Here are the key variables you get from a `useBackend()` function: - `config` is part of core tgui. It contains meta-information about the interface and who uses it, BYOND refs to various objects, and so forth. @@ -259,7 +257,7 @@ import { useBackend } from '../backend'; import { Button, LabeledList, Section } from '../components'; import { Window } from '../layouts'; -export const SampleInterface = (props, context) => { +export const SampleInterface = (props) => { return ( @@ -269,8 +267,8 @@ export const SampleInterface = (props, context) => { ); }; -const HealthStatus = (props, context) => { - const { act, data } = useBackend(context); +const HealthStatus = (props) => { + const { act, data } = useBackend(); const { user, } = props; @@ -330,8 +328,8 @@ import { useBackend } from '../backend'; import { Button, LabeledList, Section } from '../components'; import { Window } from '../layouts'; -export const SampleInterface = (props, context) => { - const { act, data } = useBackend(context); +export const SampleInterface = (props) => { + const { act, data } = useBackend(); // Extract `health` and `color` variables from the `data` object. const { health, diff --git a/tgui/global.d.ts b/tgui/global.d.ts index c2e7b5ad00bc..9cb8e37c2e8c 100644 --- a/tgui/global.d.ts +++ b/tgui/global.d.ts @@ -41,36 +41,6 @@ type ByondType = { */ windowId: string; - /** - * True if javascript is running in BYOND. - */ - IS_BYOND: boolean; - - /** - * Version of Trident engine of Internet Explorer. Null if N/A. - */ - TRIDENT: number | null; - - /** - * True if browser is IE8 or lower. - */ - IS_LTE_IE8: boolean; - - /** - * True if browser is IE9 or lower. - */ - IS_LTE_IE9: boolean; - - /** - * True if browser is IE10 or lower. - */ - IS_LTE_IE10: boolean; - - /** - * True if browser is IE11 or lower. - */ - IS_LTE_IE11: boolean; - /** * If `true`, unhandled errors and common mistakes result in a blue screen * of death, which stops this window from handling incoming messages and @@ -198,4 +168,6 @@ const Byond: ByondType; interface Window { Byond: ByondType; + __store__: Store; + __augmentStack__: (store: Store) => StackAugmentor; } diff --git a/tgui/jest.config.js b/tgui/jest.config.js index 8b78818004be..d8b4ac3e41a8 100644 --- a/tgui/jest.config.js +++ b/tgui/jest.config.js @@ -8,7 +8,7 @@ module.exports = { testEnvironment: 'jsdom', testRunner: require.resolve('jest-circus/runner'), transform: { - '^.+\\.(js|cjs|ts|tsx)$': require.resolve('babel-jest'), + '^.+\\.(js|cjs|ts|tsx)$': require.resolve('@swc/jest'), }, moduleFileExtensions: ['js', 'cjs', 'ts', 'tsx', 'json'], resetMocks: true, diff --git a/tgui/package.json b/tgui/package.json index 2be47140f49f..032f5c5c34d8 100644 --- a/tgui/package.json +++ b/tgui/package.json @@ -1,8 +1,8 @@ { "private": true, "name": "tgui-workspace", - "version": "4.3.0", - "packageManager": "yarn@3.1.1", + "version": "5.0.1", + "packageManager": "yarn@4.1.1", "workspaces": [ "packages/*" ], @@ -12,52 +12,46 @@ "tgui:build": "BROWSERSLIST_IGNORE_OLD_DATA=true webpack", "tgui:dev": "node --experimental-modules packages/tgui-dev-server/index.js", "tgui:lint": "eslint packages --ext .js,.cjs,.ts,.tsx", - "tgui:prettier": "prettierx --check .", - "tgui:sonar": "eslint packages --ext .js,.cjs,.ts,.tsx -c .eslintrc-sonar.yml", + "tgui:prettier": "prettier --check .", + "tgui:sonar": "eslint packages -c .eslintrc-sonar.yml", "tgui:test": "jest --watch", "tgui:test-simple": "CI=true jest --color", "tgui:test-ci": "CI=true jest --color --collect-coverage", - "tgui:tsc": "tsc" + "tgui:tsc": "tsc", + "tgui:prettier-fix": "prettier --write .", + "tgui:eslint-fix": "eslint --fix packages --ext .js,.jsx,.cjs,.ts,.tsx" }, "dependencies": { - "@babel/core": "^7.15.0", - "@babel/eslint-parser": "^7.15.0", - "@babel/plugin-proposal-class-properties": "^7.14.5", - "@babel/plugin-transform-jscript": "^7.14.5", - "@babel/preset-env": "^7.15.0", - "@babel/preset-typescript": "^7.15.0", - "@types/jest": "^27.0.1", - "@types/jsdom": "^16.2.13", - "@types/node": "^14.17.9", - "@types/webpack": "^5.28.0", - "@types/webpack-env": "^1.16.2", - "@typescript-eslint/parser": "^4.29.1", - "babel-jest": "^27.0.6", - "babel-loader": "^8.2.2", - "babel-plugin-inferno": "^6.3.0", - "babel-plugin-transform-remove-console": "^6.9.4", - "common": "workspace:*", - "css-loader": "^5.2.7", - "eslint": "^7.32.0", - "eslint-config-prettier": "^8.5.0", - "eslint-plugin-radar": "^0.2.1", - "eslint-plugin-react": "^7.24.0", - "eslint-plugin-unused-imports": "^1.1.4", + "@swc/core": "^1.4.11", + "@swc/jest": "^0.2.36", + "@types/jest": "^29.5.12", + "@types/node": "^20.12.3", + "@types/webpack-env": "^1.18.4", + "@typescript-eslint/parser": "^7.5.0", + "@typescript-eslint/utils": "^7.5.0", + "css-loader": "^6.10.0", + "esbuild-loader": "^4.1.0", + "eslint": "^8.57.0", + "eslint-config-prettier": "^9.1.0", + "eslint-plugin-react": "^7.34.1", + "eslint-plugin-simple-import-sort": "^12.0.0", + "eslint-plugin-sonarjs": "^0.25.0", + "eslint-plugin-unused-imports": "^3.1.0", "file-loader": "^6.2.0", - "inferno": "^7.4.8", - "jest": "^27.0.6", - "jest-circus": "^27.0.6", - "jsdom": "^16.7.0", - "mini-css-extract-plugin": "^1.6.2", - "prettier": "npm:prettierx@0.19.0", - "sass": "^1.37.5", - "sass-loader": "^11.1.1", - "style-loader": "^2.0.0", - "terser-webpack-plugin": "^5.1.4", - "typescript": "^4.3.5", + "jest": "^29.7.0", + "jest-circus": "^29.7.0", + "jest-environment-jsdom": "^29.7.0", + "jsdom": "^22.1.0", + "mini-css-extract-plugin": "^2.8.1", + "prettier": "^3.2.5", + "sass": "^1.72.0", + "sass-loader": "^14.1.1", + "style-loader": "^3.3.4", + "swc-loader": "^0.2.6", + "typescript": "^5.4.3", "url-loader": "^4.1.1", - "webpack": "^5.75.0", - "webpack-bundle-analyzer": "^4.4.2", - "webpack-cli": "^4.7.2" + "webpack": "^5.91.0", + "webpack-bundle-analyzer": "^4.10.1", + "webpack-cli": "^5.1.4" } } diff --git a/tgui/packages/common/collections.ts b/tgui/packages/common/collections.ts index 49f500ebd29a..9aed42557dc3 100644 --- a/tgui/packages/common/collections.ts +++ b/tgui/packages/common/collections.ts @@ -12,33 +12,36 @@ * If collection is 'null' or 'undefined', it will be returned "as is" * without emitting any errors (which can be useful in some cases). */ -export const filter = - (iterateeFn: (input: T, index: number, collection: T[]) => boolean) => - (collection: T[]): T[] => { - if (collection === null || collection === undefined) { - return collection; - } - if (Array.isArray(collection)) { - const result: T[] = []; - for (let i = 0; i < collection.length; i++) { - const item = collection[i]; - if (iterateeFn(item, i, collection)) { - result.push(item); - } +export const filter = ( + collection: T[], + iterateeFn: (input: T, index: number, collection: T[]) => boolean, +): T[] => { + if (collection === null || collection === undefined) { + return collection; + } + if (Array.isArray(collection)) { + const result: T[] = []; + for (let i = 0; i < collection.length; i++) { + const item = collection[i]; + if (iterateeFn(item, i, collection)) { + result.push(item); } - return result; } - throw new Error(`filter() can't iterate on type ${typeof collection}`); - }; + return result; + } + throw new Error(`filter() can't iterate on type ${typeof collection}`); +}; type MapFunction = { - (iterateeFn: (value: T, index: number, collection: T[]) => U): ( - collection: T[] - ) => U[]; + ( + collection: T[], + iterateeFn: (value: T, index: number, collection: T[]) => U, + ): U[]; ( - iterateeFn: (value: T, index: K, collection: Record) => U - ): (collection: Record) => U[]; + collection: Record, + iterateeFn: (value: T, index: K, collection: Record) => U, + ): U[]; }; /** @@ -49,44 +52,30 @@ type MapFunction = { * If collection is 'null' or 'undefined', it will be returned "as is" * without emitting any errors (which can be useful in some cases). */ -export const map: MapFunction = - (iterateeFn) => - (collection: T[]): U[] => { - if (collection === null || collection === undefined) { - return collection; - } - - if (Array.isArray(collection)) { - return collection.map(iterateeFn); - } +export const map: MapFunction = (collection, iterateeFn) => { + if (collection === null || collection === undefined) { + return collection; + } - if (typeof collection === 'object') { - return Object.entries(collection).map(([key, value]) => { - return iterateeFn(value, key, collection); - }); + if (Array.isArray(collection)) { + const result: unknown[] = []; + for (let i = 0; i < collection.length; i++) { + result.push(iterateeFn(collection[i], i, collection)); } + return result; + } - throw new Error(`map() can't iterate on type ${typeof collection}`); - }; - -/** - * Given a collection, will run each element through an iteratee function. - * Will then filter out undefined values. - */ -export const filterMap = ( - collection: T[], - iterateeFn: (value: T) => U | undefined -): U[] => { - const finalCollection: U[] = []; - - for (const value of collection) { - const output = iterateeFn(value); - if (output !== undefined) { - finalCollection.push(output); + if (typeof collection === 'object') { + const result: unknown[] = []; + for (let i in collection) { + if (Object.prototype.hasOwnProperty.call(collection, i)) { + result.push(iterateeFn(collection[i], i, collection)); + } } + return result; } - return finalCollection; + throw new Error(`map() can't iterate on type ${typeof collection}`); }; const COMPARATOR = (objA, objB) => { @@ -112,39 +101,38 @@ const COMPARATOR = (objA, objB) => { * * Iteratees are called with one argument (value). */ -export const sortBy = - (...iterateeFns: ((input: T) => unknown)[]) => - (array: T[]): T[] => { - if (!Array.isArray(array)) { - return array; - } - let length = array.length; - // Iterate over the array to collect criteria to sort it by - let mappedArray: { - criteria: unknown[]; - value: T; - }[] = []; - for (let i = 0; i < length; i++) { - const value = array[i]; - mappedArray.push({ - criteria: iterateeFns.map((fn) => fn(value)), - value, - }); - } - // Sort criteria using the base comparator - mappedArray.sort(COMPARATOR); - - // Unwrap values - const values: T[] = []; - while (length--) { - values[length] = mappedArray[length].value; - } - return values; - }; +export const sortBy = ( + array: T[], + ...iterateeFns: ((input: T) => unknown)[] +): T[] => { + if (!Array.isArray(array)) { + return array; + } + let length = array.length; + // Iterate over the array to collect criteria to sort it by + let mappedArray: { + criteria: unknown[]; + value: T; + }[] = []; + for (let i = 0; i < length; i++) { + const value = array[i]; + mappedArray.push({ + criteria: iterateeFns.map((fn) => fn(value)), + value, + }); + } + // Sort criteria using the base comparator + mappedArray.sort(COMPARATOR); -export const sort = sortBy(); + // Unwrap values + const values: T[] = []; + while (length--) { + values[length] = mappedArray[length].value; + } + return values; +}; -export const sortStrings = sortBy(); +export const sort = (array: T[]): T[] => sortBy(array); /** * Returns a range of numbers from start to end, exclusively. @@ -153,12 +141,34 @@ export const sortStrings = sortBy(); export const range = (start: number, end: number): number[] => new Array(end - start).fill(null).map((_, index) => index + start); +type ReduceFunction = { + ( + array: T[], + reducerFn: ( + accumulator: U, + currentValue: T, + currentIndex: number, + array: T[], + ) => U, + initialValue: U, + ): U; + ( + array: T[], + reducerFn: ( + accumulator: T, + currentValue: T, + currentIndex: number, + array: T[], + ) => T, + ): T; +}; + /** * A fast implementation of reduce. */ -export const reduce = (reducerFn, initialValue) => (array) => { +export const reduce: ReduceFunction = (array, reducerFn, initialValue?) => { const length = array.length; - let i; + let i: number; let result; if (initialValue === undefined) { i = 1; @@ -184,15 +194,16 @@ export const reduce = (reducerFn, initialValue) => (array) => { * is determined by the order they occur in the array. The iteratee is * invoked with one argument: value. */ -export const uniqBy = - (iterateeFn?: (value: T) => unknown) => - (array: T[]): T[] => { - const { length } = array; - const result: T[] = []; - const seen: unknown[] = iterateeFn ? [] : result; - let index = -1; - // prettier-ignore - outer: +export const uniqBy = ( + array: T[], + iterateeFn?: (value: T) => unknown, +): T[] => { + const { length } = array; + const result: T[] = []; + const seen: unknown[] = iterateeFn ? [] : result; + let index = -1; + // prettier-ignore + outer: while (++index < length) { let value: T | 0 = array[index]; const computed = iterateeFn ? iterateeFn(value) : value; @@ -214,10 +225,10 @@ export const uniqBy = result.push(value); } } - return result; - }; + return result; +}; -export const uniq = uniqBy(); +export const uniq = (array: T[]): T[] => uniqBy(array); type Zip = { [I in keyof T]: T[I] extends (infer U)[] ? U : never; @@ -247,21 +258,10 @@ export const zip = (...arrays: T): Zip => { return result; }; -/** - * This method is like "zip" except that it accepts iteratee to - * specify how grouped values should be combined. The iteratee is - * invoked with the elements of each group. - */ -export const zipWith = - (iterateeFn: (...values: T[]) => U) => - (...arrays: T[][]): U[] => { - return map((values: T[]) => iterateeFn(...values))(zip(...arrays)); - }; - const binarySearch = ( getKey: (value: T) => U, collection: readonly T[], - inserting: T + inserting: T, ): number => { if (collection.length === 0) { return 0; @@ -293,10 +293,58 @@ const binarySearch = ( return compare > insertingKey ? middle : middle + 1; }; -export const binaryInsertWith = - (getKey: (value: T) => U) => - (collection: readonly T[], value: T) => { - const copy = [...collection]; - copy.splice(binarySearch(getKey, collection, value), 0, value); - return copy; - }; +export const binaryInsertWith = ( + collection: readonly T[], + value: T, + getKey: (value: T) => U, +): T[] => { + const copy = [...collection]; + copy.splice(binarySearch(getKey, collection, value), 0, value); + return copy; +}; + +/** + * This method takes a collection of items and a number, returning a collection + * of collections, where the maximum amount of items in each is that second arg + */ +export const paginate = (collection: T[], maxPerPage: number): T[][] => { + const pages: T[][] = []; + let page: T[] = []; + let itemsToAdd = maxPerPage; + + for (const item of collection) { + page.push(item); + itemsToAdd--; + if (!itemsToAdd) { + itemsToAdd = maxPerPage; + pages.push(page); + page = []; + } + } + if (page.length) { + pages.push(page); + } + return pages; +}; + +const isObject = (obj: unknown): obj is object => + typeof obj === 'object' && obj !== null; + +// Does a deep merge of two objects. DO NOT FEED CIRCULAR OBJECTS!! +export const deepMerge = (...objects: any[]): any => { + const target = {}; + for (const object of objects) { + for (const key of Object.keys(object)) { + const targetValue = target[key]; + const objectValue = object[key]; + if (Array.isArray(targetValue) && Array.isArray(objectValue)) { + target[key] = [...targetValue, ...objectValue]; + } else if (isObject(targetValue) && isObject(objectValue)) { + target[key] = deepMerge(targetValue, objectValue); + } else { + target[key] = objectValue; + } + } + } + return target; +}; diff --git a/tgui/packages/common/color.js b/tgui/packages/common/color.js deleted file mode 100644 index 672fce529b61..000000000000 --- a/tgui/packages/common/color.js +++ /dev/null @@ -1,67 +0,0 @@ -/** - * @file - * @copyright 2020 Aleksej Komarov - * @license MIT - */ - -const EPSILON = 0.0001; - -export class Color { - constructor(r = 0, g = 0, b = 0, a = 1) { - this.r = r; - this.g = g; - this.b = b; - this.a = a; - } - - toString() { - // Alpha component needs to permit fractional values, so cannot use | - let alpha = parseFloat(this.a); - if (isNaN(alpha)) { - alpha = 1; - } - return `rgba(${this.r | 0}, ${this.g | 0}, ${this.b | 0}, ${alpha})`; - } -} - -/** - * Creates a color from the CSS hex color notation. - */ -Color.fromHex = (hex) => - new Color( - parseInt(hex.substr(1, 2), 16), - parseInt(hex.substr(3, 2), 16), - parseInt(hex.substr(5, 2), 16) - ); - -/** - * Linear interpolation of two colors. - */ -Color.lerp = (c1, c2, n) => - new Color( - (c2.r - c1.r) * n + c1.r, - (c2.g - c1.g) * n + c1.g, - (c2.b - c1.b) * n + c1.b, - (c2.a - c1.a) * n + c1.a - ); - -/** - * Loops up the color in the provided list of colors - * with linear interpolation. - */ -Color.lookup = (value, colors = []) => { - const len = colors.length; - if (len < 2) { - throw new Error('Needs at least two colors!'); - } - const scaled = value * (len - 1); - if (value < EPSILON) { - return colors[0]; - } - if (value >= 1 - EPSILON) { - return colors[len - 1]; - } - const ratio = scaled % 1; - const index = scaled | 0; - return Color.lerp(colors[index], colors[index + 1], ratio); -}; diff --git a/tgui/packages/common/color.test.ts b/tgui/packages/common/color.test.ts new file mode 100644 index 000000000000..93d90f05a23a --- /dev/null +++ b/tgui/packages/common/color.test.ts @@ -0,0 +1,49 @@ +import { Color } from './color'; + +describe('Color', () => { + it('should create a color with default values', () => { + const color = new Color(); + expect(color.r).toBe(0); + expect(color.g).toBe(0); + expect(color.b).toBe(0); + expect(color.a).toBe(1); + }); + + it('should create a color from hex', () => { + const color = Color.fromHex('#ff0000'); + expect(color.r).toBe(255); + expect(color.g).toBe(0); + expect(color.b).toBe(0); + }); + + it('should darken a color', () => { + const color = new Color(100, 100, 100).darken(50); + expect(color.r).toBe(50); + expect(color.g).toBe(50); + expect(color.b).toBe(50); + }); + + it('should lighten a color', () => { + const color = new Color(100, 100, 100).lighten(50); + expect(color.r).toBe(150); + expect(color.g).toBe(150); + expect(color.b).toBe(150); + }); + + it('should interpolate between two colors', () => { + const color1 = new Color(0, 0, 0); + const color2 = new Color(100, 100, 100); + const color = Color.lerp(color1, color2, 0.5); + expect(color.r).toBe(50); + expect(color.g).toBe(50); + expect(color.b).toBe(50); + }); + + it('should lookup a color in an array', () => { + const colors = [new Color(0, 0, 0), new Color(100, 100, 100)]; + const color = Color.lookup(0.5, colors); + expect(color.r).toBe(50); + expect(color.g).toBe(50); + expect(color.b).toBe(50); + }); +}); diff --git a/tgui/packages/common/color.ts b/tgui/packages/common/color.ts new file mode 100644 index 000000000000..943b52a71fae --- /dev/null +++ b/tgui/packages/common/color.ts @@ -0,0 +1,94 @@ +/** + * @file + * @copyright 2020 Aleksej Komarov + * @license MIT + */ + +const EPSILON = 0.0001; + +export class Color { + r: number; + g: number; + b: number; + a: number; + + constructor(r = 0, g = 0, b = 0, a = 1) { + this.r = r; + this.g = g; + this.b = b; + this.a = a; + } + + toString(): string { + // Alpha component needs to permit fractional values, so cannot use | + let alpha = this.a; + if (typeof alpha === 'string') { + alpha = parseFloat(this.a as any); + } + if (isNaN(alpha)) { + alpha = 1; + } + return `rgba(${this.r | 0}, ${this.g | 0}, ${this.b | 0}, ${alpha})`; + } + + /** Darkens a color by a given percent. Returns a color, which can have toString called to get it's rgba() css value. */ + darken(percent: number): Color { + percent /= 100; + return new Color( + this.r - this.r * percent, + this.g - this.g * percent, + this.b - this.b * percent, + this.a, + ); + } + + /** Brightens a color by a given percent. Returns a color, which can have toString called to get it's rgba() css value. */ + lighten(percent: number): Color { + // No point in rewriting code we already have. + return this.darken(-percent); + } + + /** + * Creates a color from the CSS hex color notation. + */ + static fromHex(hex: string): Color { + return new Color( + parseInt(hex.slice(1, 3), 16), + parseInt(hex.slice(3, 5), 16), + parseInt(hex.slice(5, 7), 16), + ); + } + + /** + * Linear interpolation of two colors. + */ + static lerp(c1: Color, c2: Color, n: number): Color { + return new Color( + (c2.r - c1.r) * n + c1.r, + (c2.g - c1.g) * n + c1.g, + (c2.b - c1.b) * n + c1.b, + (c2.a - c1.a) * n + c1.a, + ); + } + + /** + * Loops up the color in the provided list of colors + * with linear interpolation. + */ + static lookup(value: number, colors: Color[]): Color { + const len = colors.length; + if (len < 2) { + throw new Error('Needs at least two colors!'); + } + const scaled = value * (len - 1); + if (value < EPSILON) { + return colors[0]; + } + if (value >= 1 - EPSILON) { + return colors[len - 1]; + } + const ratio = scaled % 1; + const index = scaled | 0; + return this.lerp(colors[index], colors[index + 1], ratio); + } +} diff --git a/tgui/packages/common/events.js b/tgui/packages/common/events.js deleted file mode 100644 index 7eeff511aa56..000000000000 --- a/tgui/packages/common/events.js +++ /dev/null @@ -1,41 +0,0 @@ -/** - * @file - * @copyright 2020 Aleksej Komarov - * @license MIT - */ - -export class EventEmitter { - constructor() { - this.listeners = {}; - } - - on(name, listener) { - this.listeners[name] = this.listeners[name] || []; - this.listeners[name].push(listener); - } - - off(name, listener) { - const listeners = this.listeners[name]; - if (!listeners) { - throw new Error(`There is no listeners for "${name}"`); - } - this.listeners[name] = listeners.filter((existingListener) => { - return existingListener !== listener; - }); - } - - emit(name, ...params) { - const listeners = this.listeners[name]; - if (!listeners) { - return; - } - for (let i = 0, len = listeners.length; i < len; i += 1) { - const listener = listeners[i]; - listener(...params); - } - } - - clear() { - this.listeners = {}; - } -} diff --git a/tgui/packages/common/events.test.ts b/tgui/packages/common/events.test.ts new file mode 100644 index 000000000000..b83ba467fd5f --- /dev/null +++ b/tgui/packages/common/events.test.ts @@ -0,0 +1,34 @@ +import { EventEmitter } from './events'; + +describe('EventEmitter', () => { + it('should add and trigger an event listener', () => { + const emitter = new EventEmitter(); + const mockListener = jest.fn(); + emitter.on('test', mockListener); + emitter.emit('test', 'payload'); + expect(mockListener).toHaveBeenCalledWith('payload'); + }); + + it('should remove an event listener', () => { + const emitter = new EventEmitter(); + const mockListener = jest.fn(); + emitter.on('test', mockListener); + emitter.off('test', mockListener); + emitter.emit('test', 'payload'); + expect(mockListener).not.toHaveBeenCalled(); + }); + + it('should not fail when emitting an event with no listeners', () => { + const emitter = new EventEmitter(); + expect(() => emitter.emit('test', 'payload')).not.toThrow(); + }); + + it('should clear all event listeners', () => { + const emitter = new EventEmitter(); + const mockListener = jest.fn(); + emitter.on('test', mockListener); + emitter.clear(); + emitter.emit('test', 'payload'); + expect(mockListener).not.toHaveBeenCalled(); + }); +}); diff --git a/tgui/packages/common/events.ts b/tgui/packages/common/events.ts new file mode 100644 index 000000000000..49223b29fb39 --- /dev/null +++ b/tgui/packages/common/events.ts @@ -0,0 +1,45 @@ +/** + * @file + * @copyright 2020 Aleksej Komarov + * @license MIT + */ + +type Fn = (...args: any[]) => void; + +export class EventEmitter { + private listeners: Record; + + constructor() { + this.listeners = {}; + } + + on(name: string, listener: Fn): void { + this.listeners[name] = this.listeners[name] || []; + this.listeners[name].push(listener); + } + + off(name: string, listener: Fn): void { + const listeners = this.listeners[name]; + if (!listeners) { + throw new Error(`There is no listeners for "${name}"`); + } + this.listeners[name] = listeners.filter((existingListener) => { + return existingListener !== listener; + }); + } + + emit(name: string, ...params: any[]): void { + const listeners = this.listeners[name]; + if (!listeners) { + return; + } + for (let i = 0, len = listeners.length; i < len; i += 1) { + const listener = listeners[i]; + listener(...params); + } + } + + clear(): void { + this.listeners = {}; + } +} diff --git a/tgui/packages/common/fp.js b/tgui/packages/common/fp.js deleted file mode 100644 index ba7df09d4070..000000000000 --- a/tgui/packages/common/fp.js +++ /dev/null @@ -1,49 +0,0 @@ -/** - * @file - * @copyright 2020 Aleksej Komarov - * @license MIT - */ - -/** - * Creates a function that returns the result of invoking the given - * functions, where each successive invocation is supplied the return - * value of the previous. - */ -// prettier-ignore -export const flow = (...funcs) => (input, ...rest) => { - let output = input; - for (let func of funcs) { - // Recurse into the array of functions - if (Array.isArray(func)) { - output = flow(...func)(output, ...rest); - } - else if (func) { - output = func(output, ...rest); - } - } - return output; -}; - -/** - * Composes single-argument functions from right to left. - * - * All functions might accept a context in form of additional arguments. - * If the resulting function is called with more than 1 argument, rest of - * the arguments are passed to all functions unchanged. - * - * @param {...Function} funcs The functions to compose - * @returns {Function} A function obtained by composing the argument functions - * from right to left. For example, compose(f, g, h) is identical to doing - * (input, ...rest) => f(g(h(input, ...rest), ...rest), ...rest) - */ -export const compose = (...funcs) => { - if (funcs.length === 0) { - return (arg) => arg; - } - if (funcs.length === 1) { - return funcs[0]; - } - // prettier-ignore - return funcs.reduce((a, b) => (value, ...rest) => - a(b(value, ...rest), ...rest)); -}; diff --git a/tgui/packages/common/fp.test.ts b/tgui/packages/common/fp.test.ts new file mode 100644 index 000000000000..308a98d0f122 --- /dev/null +++ b/tgui/packages/common/fp.test.ts @@ -0,0 +1,23 @@ +import { flow } from './fp'; + +describe('flow', () => { + it('composes multiple functions into one', () => { + const add2 = (x) => x + 2; + const multiplyBy3 = (x) => x * 3; + const subtract5 = (x) => x - 5; + + const composedFunction = flow(add2, multiplyBy3, subtract5); + + expect(composedFunction(4)).toBe(13); // ((4 + 2) * 3) - 5 = 13 + }); + + it('handles arrays of functions', () => { + const add2 = (x) => x + 2; + const multiplyBy3 = (x) => x * 3; + const subtract5 = (x) => x - 5; + + const composedFunction = flow([add2, multiplyBy3], subtract5); + + expect(composedFunction(4)).toBe(13); // ((4 + 2) * 3) - 5 = 13 + }); +}); diff --git a/tgui/packages/common/fp.ts b/tgui/packages/common/fp.ts new file mode 100644 index 000000000000..62883a693a24 --- /dev/null +++ b/tgui/packages/common/fp.ts @@ -0,0 +1,38 @@ +/** + * @file + * @copyright 2020 Aleksej Komarov + * @license MIT + */ + +type Func = (...args: any[]) => any; + +/** + * Creates a function that returns the result of invoking the given + * functions, where each successive invocation is supplied the return + * value of the previous. + * + * @example + * ```tsx + * const add2 = (x) => x + 2; + * const multiplyBy3 = (x) => x * 3; + * const subtract5 = (x) => x - 5; + * + * const composedFunction = flow(add2, multiplyBy3, subtract5); // ((4 + 2) * 3) - 5 = 13 + * const composedFunction2 = flow([add2, multiplyBy3], subtract5); // ((4 + 2) * 3) - 5 = 13 + * + */ +export const flow = + (...funcs: Array) => + (input: any, ...rest: any[]): any => { + let output = input; + + for (let func of funcs) { + // Recurse into the array of functions + if (Array.isArray(func)) { + output = flow(...func)(output, ...rest); + } else if (func) { + output = func(output, ...rest); + } + } + return output; + }; diff --git a/tgui/packages/common/keycodes.js b/tgui/packages/common/keycodes.ts similarity index 100% rename from tgui/packages/common/keycodes.js rename to tgui/packages/common/keycodes.ts diff --git a/tgui/packages/common/keys.ts b/tgui/packages/common/keys.ts new file mode 100644 index 000000000000..34ac9e1614dd --- /dev/null +++ b/tgui/packages/common/keys.ts @@ -0,0 +1,39 @@ +/** + * ### Key codes. + * event.keyCode is deprecated, use this reference instead. + * + * Handles modifier keys (Shift, Alt, Control) and arrow keys. + * + * For alphabetical keys, use the actual character (e.g. 'a') instead of the key code. + * + * Something isn't here that you want? Just add it: + * @url https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key/Key_Values + * @usage + * ```ts + * import { KEY } from 'tgui/common/keys'; + * + * if (event.key === KEY.Enter) { + * // do something + * } + * ``` + */ +export enum KEY { + Alt = 'Alt', + Backspace = 'Backspace', + Control = 'Control', + Delete = 'Delete', + Down = 'ArrowDown', + End = 'End', + Enter = 'Enter', + Escape = 'Escape', + Home = 'Home', + Insert = 'Insert', + Left = 'ArrowLeft', + PageDown = 'PageDown', + PageUp = 'PageUp', + Right = 'ArrowRight', + Shift = 'Shift', + Space = ' ', + Tab = 'Tab', + Up = 'ArrowUp', +} diff --git a/tgui/packages/common/package.json b/tgui/packages/common/package.json index 54d73251a65a..bbf99bf1cadc 100644 --- a/tgui/packages/common/package.json +++ b/tgui/packages/common/package.json @@ -1,5 +1,5 @@ { "private": true, "name": "common", - "version": "4.3.0" + "version": "4.3.1" } diff --git a/tgui/packages/common/perf.js b/tgui/packages/common/perf.js deleted file mode 100644 index 591aa3537dee..000000000000 --- a/tgui/packages/common/perf.js +++ /dev/null @@ -1,61 +0,0 @@ -/** - * Ghetto performance measurement tools. - * - * Uses NODE_ENV to remove itself from production builds. - * - * @file - * @copyright 2020 Aleksej Komarov - * @license MIT - */ - -const FPS = 60; -const FRAME_DURATION = 1000 / FPS; - -// True if Performance API is supported -const supportsPerf = !!window.performance?.now; -// High precision markers -let hpMarkersByName = {}; -// Low precision markers -let lpMarkersByName = {}; - -/** - * Marks a certain spot in the code for later measurements. - */ -const mark = (name, timestamp) => { - if (process.env.NODE_ENV !== 'production') { - if (supportsPerf && !timestamp) { - hpMarkersByName[name] = performance.now(); - } - lpMarkersByName[name] = timestamp || Date.now(); - } -}; - -/** - * Calculates and returns the difference between two markers as a string. - * - * Use logger.log() to print the measurement. - */ -const measure = (markerNameA, markerNameB) => { - if (process.env.NODE_ENV !== 'production') { - let markerA = hpMarkersByName[markerNameA]; - let markerB = hpMarkersByName[markerNameB]; - if (!markerA || !markerB) { - markerA = lpMarkersByName[markerNameA]; - markerB = lpMarkersByName[markerNameB]; - } - const duration = Math.abs(markerB - markerA); - return formatDuration(duration); - } -}; - -const formatDuration = (duration) => { - const durationInFrames = duration / FRAME_DURATION; - // prettier-ignore - return duration.toFixed(duration < 10 ? 1 : 0) + 'ms ' - + '(' + durationInFrames.toFixed(2) + ' frames)'; -}; - -export const perf = { - mark, - measure, -}; diff --git a/tgui/packages/common/perf.ts b/tgui/packages/common/perf.ts new file mode 100644 index 000000000000..3e8ac2ab050c --- /dev/null +++ b/tgui/packages/common/perf.ts @@ -0,0 +1,73 @@ +/* eslint-disable func-style */ +/** + * Ghetto performance measurement tools. + * + * Uses NODE_ENV to remove itself from production builds. + * + * @file + * @copyright 2020 Aleksej Komarov + * @license MIT + */ + +const FPS = 60; +const FRAME_DURATION = 1000 / FPS; + +// True if Performance API is supported +const supportsPerf = !!window.performance?.now; +// High precision markers +let hpMarkersByName: Record = {}; +// Low precision markers +let lpMarkersByName: Record = {}; + +/** + * Marks a certain spot in the code for later measurements. + */ +function mark(name: string, timestamp?: number): void { + if (process.env.NODE_ENV !== 'production') { + if (supportsPerf && !timestamp) { + hpMarkersByName[name] = performance.now(); + } + lpMarkersByName[name] = timestamp || Date.now(); + } +} + +/** + * Calculates and returns the difference between two markers as a string. + * + * Use logger.log() to print the measurement. + */ +function measure(markerNameA: string, markerNameB: string): string | undefined { + if (process.env.NODE_ENV === 'production') return; + + let markerA = hpMarkersByName[markerNameA]; + let markerB = hpMarkersByName[markerNameB]; + + if (!markerA || !markerB) { + markerA = lpMarkersByName[markerNameA]; + markerB = lpMarkersByName[markerNameB]; + } + + const duration = Math.abs(markerB - markerA); + + return formatDuration(duration); +} + +/** + * Formats a duration in milliseconds and frames. + */ +function formatDuration(duration: number): string { + const durationInFrames = duration / FRAME_DURATION; + + return ( + duration.toFixed(duration < 10 ? 1 : 0) + + 'ms ' + + '(' + + durationInFrames.toFixed(2) + + ' frames)' + ); +} + +export const perf = { + mark, + measure, +}; diff --git a/tgui/packages/common/ping.js b/tgui/packages/common/ping.js new file mode 100644 index 000000000000..e8f52882b6ae --- /dev/null +++ b/tgui/packages/common/ping.js @@ -0,0 +1,108 @@ +/** + * Adapted pinging library based on: + * @file https://www.jsdelivr.com/package/npm/ping.js + * @copyright 2021 Alfred Gutierrez + * @license MIT + */ + +/** + * Creates a Ping instance. + * @returns {Ping} + * @constructor + */ +export class Ping { + constructor(opt) { + this.opt = opt || {}; + this.favicon = this.opt.favicon || '/favicon.ico'; + this.timeout = this.opt.timeout || 10000; + this.logError = this.opt.logError || false; + this.abort = false; + } + + /** + * Pings source after a delay and triggers a callback when completed. + * @param source Source of the website or server, including protocol and port. + * @param callback Callback function to trigger when completed. Returns error and ping value. + * @param delay Optional number of milliseconds to wait before starting. + */ + ping(source, callback, delay = 1000) { + this.abort = false; + let timer; + if (delay > 0) { + timer = setTimeout(() => { + if (this.abort) { + return; + } + this.pingNow(source, callback); + }, delay); + return; + } + this.pingNow(source, callback); + } + + /** + * Pings source immediately and triggers a callback when completed. + * @param source Source of the website or server, including protocol and port. + * @param callback Callback function to trigger when completed. Returns error and ping value. + */ + pingNow(source, callback) { + let self = this; + self.abort = false; + self.wasSuccess = false; + self.img = new Image(); + self.img.onload = (e) => { + self.wasSuccess = true; + pingCheck.call(self, e); + }; + self.img.onerror = (e) => { + self.wasSuccess = false; + pingCheck.call(self, e); + }; + + let timer; + let start = new Date(); + + if (self.timeout) { + timer = setTimeout(() => { + self.wasSuccess = false; + pingCheck.call(self, undefined); + }, self.timeout); + } + + /** + * Times ping and triggers callback. + */ + const pingCheck = function (e) { + if (timer) { + clearTimeout(timer); + } + if (this.abort) { + return; + } + let pong = new Date() - start; + + if (typeof callback === 'function') { + // When operating in timeout mode, the timeout callback doesn't pass [event] as e. + // Notice [this] instead of [self], since .call() was used with context + if (!this.wasSuccess) { + if (self.logError) { + console.error('error loading resource: ' + e.error); + } + return callback(e ? 'Error' : 'Timed Out', pong); + } + return callback(null, pong); + } else { + throw new Error('Callback is not a function.'); + } + }; + + self.img.src = source + self.favicon + '?' + +new Date(); // Trigger image load with cache buster + } + + /** + * Aborts any pending ping request. + */ + cancel() { + this.abort = true; + } +} diff --git a/tgui/packages/common/react.ts b/tgui/packages/common/react.ts index 8e42d0971ab4..5260ff6ae128 100644 --- a/tgui/packages/common/react.ts +++ b/tgui/packages/common/react.ts @@ -52,13 +52,10 @@ export const shallowDiffers = (a: object, b: object) => { }; /** - * Default inferno hooks for pure components. + * A common case in tgui, when you pass a value conditionally, these are + * the types that can fall through the condition. */ -export const pureComponentHooks = { - onComponentShouldUpdate: (lastProps, nextProps) => { - return shallowDiffers(lastProps, nextProps); - }, -}; +export type BooleanLike = number | boolean | null | undefined; /** * A helper to determine whether the object is renderable by React. @@ -69,9 +66,3 @@ export const canRender = (value: unknown) => { && value !== null && typeof value !== 'boolean'; }; - -/** - * A common case in tgui, when you pass a value conditionally, these are - * the types that can fall through the condition. - */ -export type BooleanLike = number | boolean | null | undefined; diff --git a/tgui/packages/common/redux.js b/tgui/packages/common/redux.js deleted file mode 100644 index 3997134cd742..000000000000 --- a/tgui/packages/common/redux.js +++ /dev/null @@ -1,151 +0,0 @@ -/** - * @file - * @copyright 2020 Aleksej Komarov - * @license MIT - */ - -import { compose } from './fp'; - -/** - * Creates a Redux store. - */ -export const createStore = (reducer, enhancer) => { - // Apply a store enhancer (applyMiddleware is one of them). - if (enhancer) { - return enhancer(createStore)(reducer); - } - - let currentState; - let listeners = []; - - const getState = () => currentState; - - const subscribe = (listener) => { - listeners.push(listener); - }; - - const dispatch = (action) => { - currentState = reducer(currentState, action); - for (let i = 0; i < listeners.length; i++) { - listeners[i](); - } - }; - - // This creates the initial store by causing each reducer to be called - // with an undefined state - dispatch({ - type: '@@INIT', - }); - - return { - dispatch, - subscribe, - getState, - }; -}; - -/** - * Creates a store enhancer which applies middleware to all dispatched - * actions. - */ -export const applyMiddleware = (...middlewares) => { - // prettier-ignore - return createStore => (reducer, ...args) => { - const store = createStore(reducer, ...args); - - let dispatch = () => { - throw new Error( - 'Dispatching while constructing your middleware is not allowed.'); - }; - - const storeApi = { - getState: store.getState, - dispatch: (action, ...args) => dispatch(action, ...args), - }; - - const chain = middlewares.map(middleware => middleware(storeApi)); - dispatch = compose(...chain)(store.dispatch); - - return { - ...store, - dispatch, - }; - }; -}; - -/** - * Combines reducers by running them in their own object namespaces as - * defined in reducersObj paramter. - * - * Main difference from redux/combineReducers is that it preserves keys - * in the state that are not present in the reducers object. This function - * is also more flexible than the redux counterpart. - */ -export const combineReducers = (reducersObj) => { - const keys = Object.keys(reducersObj); - let hasChanged = false; - return (prevState = {}, action) => { - const nextState = { ...prevState }; - for (let key of keys) { - const reducer = reducersObj[key]; - const prevDomainState = prevState[key]; - const nextDomainState = reducer(prevDomainState, action); - if (prevDomainState !== nextDomainState) { - hasChanged = true; - nextState[key] = nextDomainState; - } - } - return hasChanged ? nextState : prevState; - }; -}; - -/** - * A utility function to create an action creator for the given action - * type string. The action creator accepts a single argument, which will - * be included in the action object as a field called payload. The action - * creator function will also have its toString() overriden so that it - * returns the action type, allowing it to be used in reducer logic that - * is looking for that action type. - * - * @param {string} type The action type to use for created actions. - * @param {any} prepare (optional) a method that takes any number of arguments - * and returns { payload } or { payload, meta }. If this is given, the - * resulting action creator will pass it's arguments to this method to - * calculate payload & meta. - * - * @public - */ -export const createAction = (type, prepare = null) => { - const actionCreator = (...args) => { - if (!prepare) { - return { type, payload: args[0] }; - } - const prepared = prepare(...args); - if (!prepared) { - throw new Error('prepare function did not return an object'); - } - const action = { type }; - if ('payload' in prepared) { - action.payload = prepared.payload; - } - if ('meta' in prepared) { - action.meta = prepared.meta; - } - return action; - }; - actionCreator.toString = () => '' + type; - actionCreator.type = type; - actionCreator.match = (action) => action.type === type; - return actionCreator; -}; - -// Implementation specific -// -------------------------------------------------------- - -export const useDispatch = (context) => { - return context.store.dispatch; -}; - -export const useSelector = (context, selector) => { - return selector(context.store.getState()); -}; diff --git a/tgui/packages/common/redux.test.ts b/tgui/packages/common/redux.test.ts new file mode 100644 index 000000000000..d4af99907cee --- /dev/null +++ b/tgui/packages/common/redux.test.ts @@ -0,0 +1,68 @@ +import { + Action, + applyMiddleware, + combineReducers, + createAction, + createStore, + Reducer, +} from './redux'; + +// Dummy Reducer +const counterReducer: Reducer> = (state = 0, action) => { + switch (action.type) { + case 'INCREMENT': + return state + 1; + case 'DECREMENT': + return state - 1; + default: + return state; + } +}; + +// Dummy Middleware +const loggingMiddleware = (storeApi) => (next) => (action) => { + console.log('Middleware:', action); + return next(action); +}; + +// Dummy Action Creators +const increment = createAction('INCREMENT'); +const decrement = createAction('DECREMENT'); + +describe('Redux implementation tests', () => { + test('createStore works', () => { + const store = createStore(counterReducer); + expect(store.getState()).toBe(0); + }); + + test('createStore with applyMiddleware works', () => { + const store = createStore( + counterReducer, + applyMiddleware(loggingMiddleware), + ); + expect(store.getState()).toBe(0); + }); + + test('dispatch works', () => { + const store = createStore(counterReducer); + store.dispatch(increment()); + expect(store.getState()).toBe(1); + store.dispatch(decrement()); + expect(store.getState()).toBe(0); + }); + + test('combineReducers works', () => { + const rootReducer = combineReducers({ + counter: counterReducer, + }); + const store = createStore(rootReducer); + expect(store.getState()).toEqual({ counter: 0 }); + }); + + test('createAction works', () => { + const incrementAction = increment(); + expect(incrementAction).toEqual({ type: 'INCREMENT' }); + const decrementAction = decrement(); + expect(decrementAction).toEqual({ type: 'DECREMENT' }); + }); +}); diff --git a/tgui/packages/common/redux.ts b/tgui/packages/common/redux.ts new file mode 100644 index 000000000000..c8eb268f5d44 --- /dev/null +++ b/tgui/packages/common/redux.ts @@ -0,0 +1,196 @@ +/** + * @file + * @copyright 2020 Aleksej Komarov + * @license MIT + */ + +export type Reducer = ( + state: State | undefined, + action: ActionType, +) => State; + +export type Store = { + dispatch: Dispatch; + subscribe: (listener: () => void) => void; + getState: () => State; +}; + +type MiddlewareAPI = { + getState: () => State; + dispatch: Dispatch; +}; + +export type Middleware = ( + storeApi: MiddlewareAPI, +) => (next: Dispatch) => Dispatch; + +export type Action = { + type: TType; +}; + +export type AnyAction = Action & { + [extraProps: string]: any; +}; + +export type Dispatch = ( + action: ActionType, +) => void; + +type StoreEnhancer = (createStoreFunction: Function) => Function; + +type PreparedAction = { + payload?: any; + meta?: any; +}; + +/** + * Creates a Redux store. + */ +export const createStore = ( + reducer: Reducer, + enhancer?: StoreEnhancer, +): Store => { + // Apply a store enhancer (applyMiddleware is one of them). + if (enhancer) { + return enhancer(createStore)(reducer); + } + + let currentState: State; + let listeners: Array<() => void> = []; + + const getState = (): State => currentState; + + const subscribe = (listener: () => void): void => { + listeners.push(listener); + }; + + const dispatch = (action: ActionType): void => { + currentState = reducer(currentState, action); + for (let i = 0; i < listeners.length; i++) { + listeners[i](); + } + }; + + // This creates the initial store by causing each reducer to be called + // with an undefined state + dispatch({ type: '@@INIT' } as ActionType); + + return { + dispatch, + subscribe, + getState, + }; +}; + +/** + * Creates a store enhancer which applies middleware to all dispatched + * actions. + */ +export const applyMiddleware = ( + ...middlewares: Middleware[] +): StoreEnhancer => { + return ( + createStoreFunction: (reducer: Reducer, enhancer?: StoreEnhancer) => Store, + ) => { + return (reducer, ...args): Store => { + const store = createStoreFunction(reducer, ...args); + + let dispatch: Dispatch = (action, ...args) => { + throw new Error( + 'Dispatching while constructing your middleware is not allowed.', + ); + }; + + const storeApi: MiddlewareAPI = { + getState: store.getState, + dispatch: (action, ...args) => dispatch(action, ...args), + }; + + const chain = middlewares.map((middleware) => middleware(storeApi)); + dispatch = chain.reduceRight( + (next, middleware) => middleware(next), + store.dispatch, + ); + + return { + ...store, + dispatch, + }; + }; + }; +}; + +/** + * Combines reducers by running them in their own object namespaces as + * defined in reducersObj paramter. + * + * Main difference from redux/combineReducers is that it preserves keys + * in the state that are not present in the reducers object. This function + * is also more flexible than the redux counterpart. + */ +export const combineReducers = ( + reducersObj: Record, +): Reducer => { + const keys = Object.keys(reducersObj); + + return (prevState = {}, action) => { + const nextState = { ...prevState }; + let hasChanged = false; + + for (const key of keys) { + const reducer = reducersObj[key]; + const prevDomainState = prevState[key]; + const nextDomainState = reducer(prevDomainState, action); + + if (prevDomainState !== nextDomainState) { + hasChanged = true; + nextState[key] = nextDomainState; + } + } + + return hasChanged ? nextState : prevState; + }; +}; + +/** + * A utility function to create an action creator for the given action + * type string. The action creator accepts a single argument, which will + * be included in the action object as a field called payload. The action + * creator function will also have its toString() overriden so that it + * returns the action type, allowing it to be used in reducer logic that + * is looking for that action type. + * + * @param {string} type The action type to use for created actions. + * @param {any} prepare (optional) a method that takes any number of arguments + * and returns { payload } or { payload, meta }. If this is given, the + * resulting action creator will pass it's arguments to this method to + * calculate payload & meta. + * + * @public + */ +export const createAction = ( + type: TAction, + prepare?: (...args: any[]) => PreparedAction, +) => { + const actionCreator = (...args: any[]) => { + let action: Action & PreparedAction = { type }; + + if (prepare) { + const prepared = prepare(...args); + if (!prepared) { + throw new Error('prepare function did not return an object'); + } + action = { ...action, ...prepared }; + } else { + action.payload = args[0]; + } + + return action; + }; + + actionCreator.toString = () => type; + actionCreator.type = type; + actionCreator.match = (action) => action.type === type; + + return actionCreator; +}; diff --git a/tgui/packages/common/string.babel-plugin.cjs b/tgui/packages/common/string.babel-plugin.cjs deleted file mode 100644 index 97ca67c6ea4c..000000000000 --- a/tgui/packages/common/string.babel-plugin.cjs +++ /dev/null @@ -1,73 +0,0 @@ -/** - * This plugin saves overall about 10KB on the final bundle size, so it's - * sort of worth it. - * - * We are using a .cjs extension because: - * - * 1. Webpack CLI only supports CommonJS modules; - * 2. tgui-dev-server supports both, but we still need to signal NodeJS - * to import it as a CommonJS module, hence .cjs extension. - * - * We need to copy-paste the whole "multiline" function because we can't - * synchronously import an ES module from a CommonJS module. - * - * @file - * @copyright 2020 Aleksej Komarov - * @license MIT - */ - -/** - * Removes excess whitespace and indentation from the string. - */ -const multiline = (str) => { - const lines = str.split('\n'); - // Determine base indentation - let minIndent; - for (let line of lines) { - for (let indent = 0; indent < line.length; indent++) { - const char = line[indent]; - if (char !== ' ') { - if (minIndent === undefined || indent < minIndent) { - minIndent = indent; - } - break; - } - } - } - if (!minIndent) { - minIndent = 0; - } - // Remove this base indentation and trim the resulting string - // from both ends. - return lines - .map((line) => line.substr(minIndent).trimRight()) - .join('\n') - .trim(); -}; - -const StringPlugin = (ref) => { - return { - visitor: { - TaggedTemplateExpression: (path) => { - if (path.node.tag.name === 'multiline') { - const { quasi } = path.node; - if (quasi.expressions.length > 0) { - throw new Error('Multiline tag does not support expressions!'); - } - if (quasi.quasis.length > 1) { - throw new Error('Quasis is longer than 1'); - } - const { value } = quasi.quasis[0]; - value.raw = multiline(value.raw); - value.cooked = multiline(value.cooked); - path.replaceWith(quasi); - } - }, - }, - }; -}; - -module.exports = { - __esModule: true, - default: StringPlugin, -}; diff --git a/tgui/packages/common/string.js b/tgui/packages/common/string.js deleted file mode 100644 index 5906d83cb84f..000000000000 --- a/tgui/packages/common/string.js +++ /dev/null @@ -1,196 +0,0 @@ -/** - * @file - * @copyright 2020 Aleksej Komarov - * @license MIT - */ - -/** - * Removes excess whitespace and indentation from the string. - */ -export const multiline = (str) => { - if (Array.isArray(str)) { - // Small stub to allow usage as a template tag - return multiline(str.join('')); - } - const lines = str.split('\n'); - // Determine base indentation - let minIndent; - for (let line of lines) { - for (let indent = 0; indent < line.length; indent++) { - const char = line[indent]; - if (char !== ' ') { - if (minIndent === undefined || indent < minIndent) { - minIndent = indent; - } - break; - } - } - } - if (!minIndent) { - minIndent = 0; - } - // Remove this base indentation and trim the resulting string - // from both ends. - return lines - .map((line) => line.substr(minIndent).trimRight()) - .join('\n') - .trim(); -}; - -/** - * Creates a glob pattern matcher. - * - * Matches strings with wildcards. - * - * Example: createGlobPattern('*@domain')('user@domain') === true - */ -export const createGlobPattern = (pattern) => { - const escapeString = (str) => str.replace(/[|\\{}()[\]^$+*?.]/g, '\\$&'); - // prettier-ignore - const regex = new RegExp('^' - + pattern.split(/\*+/).map(escapeString).join('.*') - + '$'); - return (str) => regex.test(str); -}; - -/** - * Creates a search terms matcher. - * - * Returns true if given string matches the search text. - * - * @template T - * @param {string} searchText - * @param {(obj: T) => string} stringifier - * @returns {(obj: T) => boolean} - */ -export const createSearch = (searchText, stringifier) => { - const preparedSearchText = searchText.toLowerCase().trim(); - return (obj) => { - if (!preparedSearchText) { - return true; - } - const str = stringifier ? stringifier(obj) : obj; - if (!str) { - return false; - } - return str.toLowerCase().includes(preparedSearchText); - }; -}; - -/** - * Capitalizes a word and lowercases the rest. - * @param {string} str - * @returns {string} capitalized string - * - * @example capitalize('heLLo') === 'Hello' - */ -export const capitalize = (str) => { - // Handle array - if (Array.isArray(str)) { - return str.map(capitalize); - } - // Handle string - return str.charAt(0).toUpperCase() + str.slice(1).toLowerCase(); -}; - -/** - * Similar to capitalize, this takes a string and replaces all first letters - * of any words. - * - * @param {string} str - * @return {string} The string with the first letters capitalized. - * - * @example capitalizeAll('heLLo woRLd') === 'HeLLo WoRLd' - */ -export const capitalizeAll = (str) => { - return str.replace(/(^\w{1})|(\s+\w{1})/g, (letter) => letter.toUpperCase()); -}; - -/** - * Capitalizes only the first letter of the str. - * - * @param {string} str - * @return {string} capitalized string - * - * @example capitalizeFirst('heLLo woRLd') === 'HeLLo woRLd' - */ -export const capitalizeFirst = (str) => { - return str.replace(/^\w/, (letter) => letter.toUpperCase()); -}; - -export const toTitleCase = (str) => { - // Handle array - if (Array.isArray(str)) { - return str.map(toTitleCase); - } - // Pass non-string - if (typeof str !== 'string') { - return str; - } - // Handle string - const WORDS_UPPER = ['Id', 'Tv']; - // prettier-ignore - const WORDS_LOWER = [ - 'A', 'An', 'And', 'As', 'At', 'But', 'By', 'For', 'For', 'From', 'In', - 'Into', 'Near', 'Nor', 'Of', 'On', 'Onto', 'Or', 'The', 'To', 'With', - ]; - let currentStr = str.replace(/([^\W_]+[^\s-]*) */g, (str) => { - return str.charAt(0).toUpperCase() + str.substr(1).toLowerCase(); - }); - for (let word of WORDS_LOWER) { - const regex = new RegExp('\\s' + word + '\\s', 'g'); - currentStr = currentStr.replace(regex, (str) => str.toLowerCase()); - } - for (let word of WORDS_UPPER) { - const regex = new RegExp('\\b' + word + '\\b', 'g'); - currentStr = currentStr.replace(regex, (str) => str.toLowerCase()); - } - return currentStr; -}; - -/** - * Decodes HTML entities, and removes unnecessary HTML tags. - * - * @param {String} str Encoded HTML string - * @return {String} Decoded HTML string - */ -export const decodeHtmlEntities = (str) => { - if (!str) { - return str; - } - const translate_re = /&(nbsp|amp|quot|lt|gt|apos);/g; - const translate = { - nbsp: ' ', - amp: '&', - quot: '"', - lt: '<', - gt: '>', - apos: "'", - }; - // prettier-ignore - return str - // Newline tags - .replace(/
              /gi, '\n') - .replace(/<\/?[a-z0-9-_]+[^>]*>/gi, '') - // Basic entities - .replace(translate_re, (match, entity) => translate[entity]) - // Decimal entities - .replace(/&#?([0-9]+);/gi, (match, numStr) => { - const num = parseInt(numStr, 10); - return String.fromCharCode(num); - }) - // Hex entities - .replace(/&#x?([0-9a-f]+);/gi, (match, numStr) => { - const num = parseInt(numStr, 16); - return String.fromCharCode(num); - }); -}; - -/** - * Converts an object into a query string, - */ -// prettier-ignore -export const buildQueryString = obj => Object.keys(obj) - .map(key => encodeURIComponent(key) - + '=' + encodeURIComponent(obj[key])) - .join('&'); diff --git a/tgui/packages/common/string.test.ts b/tgui/packages/common/string.test.ts new file mode 100644 index 000000000000..06b24da80136 --- /dev/null +++ b/tgui/packages/common/string.test.ts @@ -0,0 +1,35 @@ +import { createSearch, decodeHtmlEntities, toTitleCase } from './string'; + +describe('createSearch', () => { + it('matches search terms correctly', () => { + const search = createSearch('test', (obj: { value: string }) => obj.value); + + const obj1 = { value: 'This is a test string.' }; + const obj2 = { value: 'This is a different string.' }; + const obj3 = { value: 'This is a test string.' }; + + const objects = [obj1, obj2, obj3]; + + expect(objects.filter(search)).toEqual([obj1, obj3]); + }); +}); + +describe('toTitleCase', () => { + it('converts strings to title case correctly', () => { + expect(toTitleCase('hello world')).toBe('Hello World'); + expect(toTitleCase('HELLO WORLD')).toBe('Hello World'); + expect(toTitleCase('HeLLo wORLd')).toBe('Hello World'); + expect(toTitleCase('a tale of two cities')).toBe('A Tale of Two Cities'); + expect(toTitleCase('war and peace')).toBe('War and Peace'); + }); +}); + +describe('decodeHtmlEntities', () => { + it('decodes HTML entities and removes unnecessary HTML tags correctly', () => { + expect(decodeHtmlEntities('
              ')).toBe('\n'); + expect(decodeHtmlEntities('

              Hello World

              ')).toBe('Hello World'); + expect(decodeHtmlEntities('&')).toBe('&'); + expect(decodeHtmlEntities('&')).toBe('&'); + expect(decodeHtmlEntities('&')).toBe('&'); + }); +}); diff --git a/tgui/packages/common/string.ts b/tgui/packages/common/string.ts new file mode 100644 index 000000000000..4c93d155e662 --- /dev/null +++ b/tgui/packages/common/string.ts @@ -0,0 +1,174 @@ +/* eslint-disable func-style */ +/** + * @file + * @copyright 2020 Aleksej Komarov + * @license MIT + */ + +/** + * Creates a search terms matcher. Returns true if given string matches the search text. + * + * @example + * ```tsx + * type Thing = { id: string; name: string }; + * + * const objects = [ + * { id: '123', name: 'Test' }, + * { id: '456', name: 'Test' }, + * ]; + * + * const search = createSearch('123', (obj: Thing) => obj.id); + * + * objects.filter(search); // returns [{ id: '123', name: 'Test' }] + * ``` + */ +export function createSearch( + searchText: string, + stringifier = (obj: TObj) => JSON.stringify(obj), +): (obj: TObj) => boolean { + const preparedSearchText = searchText.toLowerCase().trim(); + + return (obj) => { + if (!preparedSearchText) { + return true; + } + const str = stringifier(obj); + if (!str) { + return false; + } + return str.toLowerCase().includes(preparedSearchText); + }; +} + +/** + * Capitalizes a word and lowercases the rest. + * + * @example + * ```tsx + * capitalize('heLLo') // Hello + * ``` + */ +export function capitalize(str: string): string { + return str.charAt(0).toUpperCase() + str.slice(1).toLowerCase(); +} + +/** + * Similar to capitalize, this takes a string and replaces all first letters + * of any words. + * + * @example + * ```tsx + * capitalizeAll('heLLo woRLd') // 'HeLLo WoRLd' + * ``` + */ +export function capitalizeAll(str: string): string { + return str.replace(/(^\w{1})|(\s+\w{1})/g, (letter) => letter.toUpperCase()); +} + +/** + * Capitalizes only the first letter of the str, leaving others untouched. + * + * @example + * ```tsx + * capitalizeFirst('heLLo woRLd') // 'HeLLo woRLd' + * ``` + */ +export function capitalizeFirst(str: string): string { + return str.replace(/^\w/, (letter) => letter.toUpperCase()); +} + +const WORDS_UPPER = ['Id', 'Tv'] as const; + +const WORDS_LOWER = [ + 'A', + 'An', + 'And', + 'As', + 'At', + 'But', + 'By', + 'For', + 'For', + 'From', + 'In', + 'Into', + 'Near', + 'Nor', + 'Of', + 'On', + 'Onto', + 'Or', + 'The', + 'To', + 'With', +] as const; + +/** + * Converts a string to title case. + * + * @example + * ```tsx + * toTitleCase('a tale of two cities') // 'A Tale of Two Cities' + * ``` + */ +export function toTitleCase(str: string): string { + if (!str) return str; + + let currentStr = str.replace(/([^\W_]+[^\s-]*) */g, (str) => { + return capitalize(str); + }); + + for (let word of WORDS_LOWER) { + const regex = new RegExp('\\s' + word + '\\s', 'g'); + currentStr = currentStr.replace(regex, (str) => str.toLowerCase()); + } + + for (let word of WORDS_UPPER) { + const regex = new RegExp('\\b' + word + '\\b', 'g'); + currentStr = currentStr.replace(regex, (str) => str.toLowerCase()); + } + + return currentStr; +} + +const TRANSLATE_REGEX = /&(nbsp|amp|quot|lt|gt|apos);/g; +const TRANSLATIONS = { + amp: '&', + apos: "'", + gt: '>', + lt: '<', + nbsp: ' ', + quot: '"', +} as const; + +/** + * Decodes HTML entities and removes unnecessary HTML tags. + * + * @example + * ```tsx + * decodeHtmlEntities('&') // returns '&' + * decodeHtmlEntities('<') // returns '<' + * ``` + */ +export function decodeHtmlEntities(str: string): string { + if (!str) return str; + + return ( + str + // Newline tags + .replace(/
              /gi, '\n') + .replace(/<\/?[a-z0-9-_]+[^>]*>/gi, '') + // Basic entities + .replace(TRANSLATE_REGEX, (match, entity) => TRANSLATIONS[entity]) + // Decimal entities + .replace(/&#?([0-9]+);/gi, (match, numStr) => { + const num = parseInt(numStr, 10); + return String.fromCharCode(num); + }) + // Hex entities + .replace(/&#x?([0-9a-f]+);/gi, (match, numStr) => { + const num = parseInt(numStr, 16); + return String.fromCharCode(num); + }) + ); +} diff --git a/tgui/packages/common/timer.js b/tgui/packages/common/timer.js deleted file mode 100644 index 7d89e935b9b5..000000000000 --- a/tgui/packages/common/timer.js +++ /dev/null @@ -1,58 +0,0 @@ -/** - * @file - * @copyright 2020 Aleksej Komarov - * @license MIT - */ - -/** - * Returns a function, that, as long as it continues to be invoked, will - * not be triggered. The function will be called after it stops being - * called for N milliseconds. If `immediate` is passed, trigger the - * function on the leading edge, instead of the trailing. - */ -export const debounce = (fn, time, immediate = false) => { - let timeout; - return (...args) => { - const later = () => { - timeout = null; - if (!immediate) { - fn(...args); - } - }; - const callNow = immediate && !timeout; - clearTimeout(timeout); - timeout = setTimeout(later, time); - if (callNow) { - fn(...args); - } - }; -}; - -/** - * Returns a function, that, when invoked, will only be triggered at most once - * during a given window of time. - */ -export const throttle = (fn, time) => { - let previouslyRun, queuedToRun; - return function invokeFn(...args) { - const now = Date.now(); - queuedToRun = clearTimeout(queuedToRun); - if (!previouslyRun || now - previouslyRun >= time) { - fn.apply(null, args); - previouslyRun = now; - } else { - queuedToRun = setTimeout( - invokeFn.bind(null, ...args), - time - (now - previouslyRun) - ); - } - }; -}; - -/** - * Suspends an asynchronous function for N milliseconds. - * - * @param {number} time - */ -export const sleep = (time) => - new Promise((resolve) => setTimeout(resolve, time)); diff --git a/tgui/packages/common/timer.ts b/tgui/packages/common/timer.ts new file mode 100644 index 000000000000..1fc3e11fd30e --- /dev/null +++ b/tgui/packages/common/timer.ts @@ -0,0 +1,68 @@ +/** + * @file + * @copyright 2020 Aleksej Komarov + * @license MIT + */ + +/** + * Returns a function, that, as long as it continues to be invoked, will + * not be triggered. The function will be called after it stops being + * called for N milliseconds. If `immediate` is passed, trigger the + * function on the leading edge, instead of the trailing. + */ +export const debounce = any>( + fn: F, + time: number, + immediate = false, +): ((...args: Parameters) => void) => { + let timeout: ReturnType | null; + return (...args: Parameters) => { + const later = () => { + timeout = null; + if (!immediate) { + fn(...args); + } + }; + const callNow = immediate && !timeout; + clearTimeout(timeout!); + timeout = setTimeout(later, time); + if (callNow) { + fn(...args); + } + }; +}; + +/** + * Returns a function, that, when invoked, will only be triggered at most once + * during a given window of time. + */ +export const throttle = any>( + fn: F, + time: number, +): ((...args: Parameters) => void) => { + let previouslyRun: number | null, + queuedToRun: ReturnType | null; + return function invokeFn(...args: Parameters) { + const now = Date.now(); + if (queuedToRun) { + clearTimeout(queuedToRun); + } + if (!previouslyRun || now - previouslyRun >= time) { + fn.apply(null, args); + previouslyRun = now; + } else { + queuedToRun = setTimeout( + () => invokeFn(...args), + time - (now - (previouslyRun ?? 0)), + ); + } + }; +}; + +/** + * Suspends an asynchronous function for N milliseconds. + * + * @param {number} time + */ +export const sleep = (time: number): Promise => + new Promise((resolve) => setTimeout(resolve, time)); diff --git a/tgui/packages/common/type-utils.ts b/tgui/packages/common/type-utils.ts new file mode 100644 index 000000000000..e6d3fa5cbd4a --- /dev/null +++ b/tgui/packages/common/type-utils.ts @@ -0,0 +1,42 @@ +/* eslint-disable func-style */ +/** + * Helps visualize highly complex ui data on the fly. + * @example + * ```tsx + * const { data } = useBackend(); + * logger.log(getShallowTypes(data)); + * ``` + */ +export function getShallowTypes( + data: Record, +): Record { + const output = {}; + + for (const key in data) { + if (Array.isArray(data[key])) { + const arr: any[] = data[key]; + + // Return the first array item if it exists + if (data[key].length > 0) { + output[key] = arr[0]; + continue; + } + + output[key] = 'emptyarray'; + } else if (typeof data[key] === 'object' && data[key] !== null) { + // Please inspect it further and make a new type for it + output[key] = 'object (inspect) || Record'; + } else if (typeof data[key] === 'number') { + const num = Number(data[key]); + + // 0 and 1 could be booleans from byond + if (num === 1 || num === 0) { + output[key] = `${num}, BooleanLike?`; + continue; + } + output[key] = data[key]; + } + } + + return output; +} diff --git a/tgui/packages/common/uuid.js b/tgui/packages/common/uuid.js deleted file mode 100644 index 6e156d8649bc..000000000000 --- a/tgui/packages/common/uuid.js +++ /dev/null @@ -1,20 +0,0 @@ -/** - * @file - * @copyright 2020 Aleksej Komarov - * @license MIT - */ - -/** - * Creates a UUID v4 string - * - * @return {string} - */ -export const createUuid = () => { - let d = new Date().getTime(); - return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => { - const r = (d + Math.random() * 16) % 16 | 0; - d = Math.floor(d / 16); - // prettier-ignore - return (c === 'x' ? r : (r & 0x3 | 0x8)).toString(16); - }); -}; diff --git a/tgui/packages/common/uuid.test.ts b/tgui/packages/common/uuid.test.ts new file mode 100644 index 000000000000..e3af57c47267 --- /dev/null +++ b/tgui/packages/common/uuid.test.ts @@ -0,0 +1,11 @@ +import { createUuid } from './uuid'; + +describe('createUuid', () => { + it('generates a UUID v4 string', () => { + const uuid = createUuid(); + expect(uuid).toHaveLength(36); + expect(uuid).toMatch( + /^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i, + ); + }); +}); diff --git a/tgui/packages/common/uuid.ts b/tgui/packages/common/uuid.ts new file mode 100644 index 000000000000..02dab15dd43b --- /dev/null +++ b/tgui/packages/common/uuid.ts @@ -0,0 +1,25 @@ +/* eslint-disable func-style */ +/** + * @file + * @copyright 2020 Aleksej Komarov + * @license MIT + */ + +/** + * Creates a UUID v4 string + * + * @example + * ```tsx + * createUuid(); // 'f47ac10b-58cc-4372-a567-0e02b2c3d479' + * ``` + */ +export function createUuid(): string { + let d = new Date().getTime(); + + return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => { + const r = (d + Math.random() * 16) % 16 | 0; + d = Math.floor(d / 16); + + return (c === 'x' ? r : (r & 0x3) | 0x8).toString(16); + }); +} diff --git a/tgui/packages/common/vector.js b/tgui/packages/common/vector.js deleted file mode 100644 index b1f85f7429db..000000000000 --- a/tgui/packages/common/vector.js +++ /dev/null @@ -1,48 +0,0 @@ -/** - * N-dimensional vector manipulation functions. - * - * Vectors are plain number arrays, i.e. [x, y, z]. - * - * @file - * @copyright 2020 Aleksej Komarov - * @license MIT - */ - -import { map, reduce, zipWith } from './collections'; - -const ADD = (a, b) => a + b; -const SUB = (a, b) => a - b; -const MUL = (a, b) => a * b; -const DIV = (a, b) => a / b; - -export const vecAdd = (...vecs) => { - return reduce((a, b) => zipWith(ADD)(a, b))(vecs); -}; - -export const vecSubtract = (...vecs) => { - return reduce((a, b) => zipWith(SUB)(a, b))(vecs); -}; - -export const vecMultiply = (...vecs) => { - return reduce((a, b) => zipWith(MUL)(a, b))(vecs); -}; - -export const vecDivide = (...vecs) => { - return reduce((a, b) => zipWith(DIV)(a, b))(vecs); -}; - -export const vecScale = (vec, n) => { - return map((x) => x * n)(vec); -}; - -export const vecInverse = (vec) => { - return map((x) => -x)(vec); -}; - -export const vecLength = (vec) => { - return Math.sqrt(reduce(ADD)(zipWith(MUL)(vec, vec))); -}; - -export const vecNormalize = (vec) => { - return vecDivide(vec, vecLength(vec)); -}; diff --git a/tgui/packages/common/vector.ts b/tgui/packages/common/vector.ts new file mode 100644 index 000000000000..c91715a8f995 --- /dev/null +++ b/tgui/packages/common/vector.ts @@ -0,0 +1,51 @@ +/** + * N-dimensional vector manipulation functions. + * + * Vectors are plain number arrays, i.e. [x, y, z]. + * + * @file + * @copyright 2020 Aleksej Komarov + * @license MIT + */ + +import { map, reduce, zip } from './collections'; + +const ADD = (a: number, b: number): number => a + b; +const SUB = (a: number, b: number): number => a - b; +const MUL = (a: number, b: number): number => a * b; +const DIV = (a: number, b: number): number => a / b; + +export type Vector = number[]; + +export const vecAdd = (...vecs: Vector[]): Vector => { + return map(zip(...vecs), (x) => reduce(x, ADD)); +}; + +export const vecSubtract = (...vecs: Vector[]): Vector => { + return map(zip(...vecs), (x) => reduce(x, SUB)); +}; + +export const vecMultiply = (...vecs: Vector[]): Vector => { + return map(zip(...vecs), (x) => reduce(x, MUL)); +}; + +export const vecDivide = (...vecs: Vector[]): Vector => { + return map(zip(...vecs), (x) => reduce(x, DIV)); +}; + +export const vecScale = (vec: Vector, n: number): Vector => { + return map(vec, (x) => x * n); +}; + +export const vecInverse = (vec: Vector): Vector => { + return map(vec, (x) => -x); +}; + +export const vecLength = (vec: Vector): number => { + return Math.sqrt(reduce(vecMultiply(vec, vec), ADD)); +}; + +export const vecNormalize = (vec: Vector): Vector => { + const length = vecLength(vec); + return map(vec, (c) => c / length); +}; diff --git a/tgui/packages/tgfont/config.cjs b/tgui/packages/tgfont/config.cjs index 4f6b58f1061e..73d96ac6ce90 100644 --- a/tgui/packages/tgfont/config.cjs +++ b/tgui/packages/tgfont/config.cjs @@ -7,8 +7,12 @@ module.exports = { name: 'tgfont', inputDir: './icons', + normalize: true, outputDir: './dist', fontTypes: ['woff2', 'eot'], assetTypes: ['css'], prefix: 'tg', + formatOptions: { + preserveAspectRatio: true, + }, }; diff --git a/tgui/packages/tgfont/icons/image-minus.svg b/tgui/packages/tgfont/icons/image-minus.svg new file mode 100644 index 000000000000..8c3231917ff9 --- /dev/null +++ b/tgui/packages/tgfont/icons/image-minus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/tgui/packages/tgfont/icons/image-plus.svg b/tgui/packages/tgfont/icons/image-plus.svg new file mode 100644 index 000000000000..1658509429e3 --- /dev/null +++ b/tgui/packages/tgfont/icons/image-plus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/tgui/packages/tgfont/icons/sound-minus.svg b/tgui/packages/tgfont/icons/sound-minus.svg new file mode 100644 index 000000000000..df51179d4b53 --- /dev/null +++ b/tgui/packages/tgfont/icons/sound-minus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/tgui/packages/tgfont/icons/sound-plus.svg b/tgui/packages/tgfont/icons/sound-plus.svg new file mode 100644 index 000000000000..c5f40d53b560 --- /dev/null +++ b/tgui/packages/tgfont/icons/sound-plus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/tgui/packages/tgfont/package.json b/tgui/packages/tgfont/package.json index 9459aa129696..56bb38bf68e8 100644 --- a/tgui/packages/tgfont/package.json +++ b/tgui/packages/tgfont/package.json @@ -6,6 +6,6 @@ "tgfont:build": "node mkdist.cjs && fantasticon --config config.cjs" }, "dependencies": { - "fantasticon": "^1.2.2" + "fantasticon": "^1.2.3" } } diff --git a/tgui/packages/tgfont/static/tgfont.css b/tgui/packages/tgfont/static/tgfont.css index 992f088913c4..49e59cdd6959 100644 --- a/tgui/packages/tgfont/static/tgfont.css +++ b/tgui/packages/tgfont/static/tgfont.css @@ -1,7 +1,7 @@ @font-face { font-family: "tgfont"; - src: url("./tgfont.woff2?b809fa4bdd4aff7084540f130e4e524b") format("woff2"), -url("./tgfont.eot?b809fa4bdd4aff7084540f130e4e524b#iefix") format("embedded-opentype"); + src: url("./tgfont.woff2?0843e2c3dacddd319720859dcaeda508") format("woff2"), +url("./tgfont.eot?0843e2c3dacddd319720859dcaeda508#iefix") format("embedded-opentype"); } i[class^="tg-"]:before, i[class*=" tg-"]:before { @@ -15,39 +15,15 @@ i[class^="tg-"]:before, i[class*=" tg-"]:before { -moz-osx-font-smoothing: grayscale; } -.tg-air-tank-slash:before { - content: "\f101"; -} -.tg-air-tank:before { - content: "\f102"; -} -.tg-bad-touch:before { - content: "\f103"; -} .tg-image-minus:before { - content: "\f104"; + content: "\f101"; } .tg-image-plus:before { - content: "\f105"; -} -.tg-nanotrasen-logo:before { - content: "\f106"; -} -.tg-non-binary:before { - content: "\f107"; -} -.tg-prosthetic-full:before { - content: "\f108"; -} -.tg-prosthetic-leg:before { - content: "\f109"; + content: "\f102"; } .tg-sound-minus:before { - content: "\f10a"; + content: "\f103"; } .tg-sound-plus:before { - content: "\f10b"; -} -.tg-syndicate-logo:before { - content: "\f10c"; + content: "\f104"; } diff --git a/tgui/packages/tgfont/static/tgfont.eot b/tgui/packages/tgfont/static/tgfont.eot index e879c327d3f1..17e3790d026c 100644 Binary files a/tgui/packages/tgfont/static/tgfont.eot and b/tgui/packages/tgfont/static/tgfont.eot differ diff --git a/tgui/packages/tgfont/static/tgfont.woff2 b/tgui/packages/tgfont/static/tgfont.woff2 index 6a3be3d2cb40..a4cc01a984a1 100644 Binary files a/tgui/packages/tgfont/static/tgfont.woff2 and b/tgui/packages/tgfont/static/tgfont.woff2 differ diff --git a/tgui/packages/tgui-bench/entrypoint.tsx b/tgui/packages/tgui-bench/entrypoint.tsx index 377848fe3ae0..48dcd3dcce11 100644 --- a/tgui/packages/tgui-bench/entrypoint.tsx +++ b/tgui/packages/tgui-bench/entrypoint.tsx @@ -4,8 +4,10 @@ * @license MIT */ -import { setupGlobalEvents } from 'tgui/events'; import 'tgui/styles/main.scss'; + +import { setupGlobalEvents } from 'tgui/events'; + import Benchmark from './lib/benchmark'; const sendMessage = (obj: any) => { diff --git a/tgui/packages/tgui-bench/index.js b/tgui/packages/tgui-bench/index.js index 9f6aee20996d..b15f3ebf37ad 100644 --- a/tgui/packages/tgui-bench/index.js +++ b/tgui/packages/tgui-bench/index.js @@ -31,7 +31,7 @@ const setup = async () => { .readFileSync(path.join(publicDir, 'tgui.html'), 'utf-8') .replace('\n', assets); - server.register(require('fastify-static'), { + server.register(require('@fastify/static'), { root: publicDir, }); diff --git a/tgui/packages/tgui-bench/lib/benchmark.d.ts b/tgui/packages/tgui-bench/lib/benchmark.d.ts index 7f3310005f77..3eac568d4184 100644 --- a/tgui/packages/tgui-bench/lib/benchmark.d.ts +++ b/tgui/packages/tgui-bench/lib/benchmark.d.ts @@ -27,7 +27,7 @@ declare class Benchmark { static reduce( arr: T[], callback: (accumulator: K, value: T) => K, - thisArg?: any + thisArg?: any, ): K; static options: Benchmark.Options; diff --git a/tgui/packages/tgui-bench/package.json b/tgui/packages/tgui-bench/package.json index 55458d7fa99b..04c95e44c8f1 100644 --- a/tgui/packages/tgui-bench/package.json +++ b/tgui/packages/tgui-bench/package.json @@ -1,15 +1,14 @@ { "private": true, "name": "tgui-bench", - "version": "4.3.0", + "version": "5.0.1", "dependencies": { + "@fastify/static": "^6.12.0", "common": "workspace:*", - "fastify": "^3.20.2", - "fastify-static": "^4.2.3", - "inferno": "^7.4.8", - "inferno-vnode-flags": "^7.4.8", + "fastify": "^3.29.5", "lodash": "^4.17.21", "platform": "^1.3.6", + "react": "^18.2.0", "tgui": "workspace:*" } } diff --git a/tgui/packages/tgui-bench/tests/Button.test.tsx b/tgui/packages/tgui-bench/tests/Button.test.tsx index 6b806d720ab8..0549e69b623a 100644 --- a/tgui/packages/tgui-bench/tests/Button.test.tsx +++ b/tgui/packages/tgui-bench/tests/Button.test.tsx @@ -1,11 +1,8 @@ -import { linkEvent } from 'inferno'; import { Button } from 'tgui/components'; import { createRenderer } from 'tgui/renderer'; const render = createRenderer(); -const handleClick = () => undefined; - export const SingleButton = () => { const node = ; render(node); @@ -16,13 +13,6 @@ export const SingleButtonWithCallback = () => { render(node); }; -export const SingleButtonWithLinkEvent = () => { - const node = ( - - ); - render(node); -}; - export const ListOfButtons = () => { const nodes: JSX.Element[] = []; for (let i = 0; i < 100; i++) { @@ -45,19 +35,6 @@ export const ListOfButtonsWithCallback = () => { render(
              {nodes}
              ); }; -export const ListOfButtonsWithLinkEvent = () => { - const nodes: JSX.Element[] = []; - for (let i = 0; i < 100; i++) { - const node = ( - - ); - nodes.push(node); - } - render(
              {nodes}
              ); -}; - export const ListOfButtonsWithIcons = () => { const nodes: JSX.Element[] = []; for (let i = 0; i < 100; i++) { diff --git a/tgui/packages/tgui-bench/tests/Tooltip.test.tsx b/tgui/packages/tgui-bench/tests/Tooltip.test.tsx index ea43a61f0b44..9dae16f5c030 100644 --- a/tgui/packages/tgui-bench/tests/Tooltip.test.tsx +++ b/tgui/packages/tgui-bench/tests/Tooltip.test.tsx @@ -12,7 +12,7 @@ export const ListOfTooltips = () => { Tooltip #{i} - + , ); } diff --git a/tgui/packages/tgui-dev-server/dreamseeker.js b/tgui/packages/tgui-dev-server/dreamseeker.js index 2b25b155ae0c..d1ca2a9ac539 100644 --- a/tgui/packages/tgui-dev-server/dreamseeker.js +++ b/tgui/packages/tgui-dev-server/dreamseeker.js @@ -6,6 +6,7 @@ import { exec } from 'child_process'; import { promisify } from 'util'; + import { createLogger } from './logging.js'; import { require } from './require.js'; @@ -30,7 +31,7 @@ export class DreamSeeker { + '=' + encodeURIComponent(params[key])) .join('&'); logger.log( - `topic call at ${this.client.defaults.baseURL + '/dummy?' + query}` + `topic call at ${this.client.defaults.baseURL + '/dummy?' + query}`, ); return this.client.get('/dummy?' + query); } diff --git a/tgui/packages/tgui-dev-server/index.js b/tgui/packages/tgui-dev-server/index.js index 199e93d83632..85489ebb0499 100644 --- a/tgui/packages/tgui-dev-server/index.js +++ b/tgui/packages/tgui-dev-server/index.js @@ -4,8 +4,8 @@ * @license MIT */ -import { createCompiler } from './webpack.js'; import { reloadByondCache } from './reloader.js'; +import { createCompiler } from './webpack.js'; const noHot = process.argv.includes('--no-hot'); const noTmp = process.argv.includes('--no-tmp'); diff --git a/tgui/packages/tgui-dev-server/link/client.cjs b/tgui/packages/tgui-dev-server/link/client.cjs index 1e21d42ce86b..b0e6f7bc9d44 100644 --- a/tgui/packages/tgui-dev-server/link/client.cjs +++ b/tgui/packages/tgui-dev-server/link/client.cjs @@ -31,11 +31,9 @@ const ensureConnection = () => { }; } } -}; -if (process.env.NODE_ENV !== 'production') { window.onunload = () => socket && socket.close(); -} +}; const subscribe = (fn) => subscribers.push(fn); @@ -136,38 +134,38 @@ const sendLogEntry = (level, ns, ...args) => { const setupHotReloading = () => { if ( - // prettier-ignore - process.env.NODE_ENV !== 'production' - && process.env.WEBPACK_HMR_ENABLED - && window.WebSocket + process.env.NODE_ENV === 'production' || + !process.env.WEBPACK_HMR_ENABLED || + !window.WebSocket ) { - if (module.hot) { - ensureConnection(); - sendLogEntry(0, null, 'setting up hot reloading'); - subscribe((msg) => { - const { type } = msg; - sendLogEntry(0, null, 'received', type); - if (type === 'hotUpdate') { - const status = module.hot.status(); - if (status !== 'idle') { - sendLogEntry(0, null, 'hot reload status:', status); - return; - } - module.hot - .check({ - ignoreUnaccepted: true, - ignoreDeclined: true, - ignoreErrored: true, - }) - .then((modules) => { - sendLogEntry(0, null, 'outdated modules', modules); - }) - .catch((err) => { - sendLogEntry(0, null, 'reload error', err); - }); + return; + } + if (module.hot) { + ensureConnection(); + sendLogEntry(0, null, 'setting up hot reloading'); + subscribe((msg) => { + const { type } = msg; + sendLogEntry(0, null, 'received', type); + if (type === 'hotUpdate') { + const status = module.hot.status(); + if (status !== 'idle') { + sendLogEntry(0, null, 'hot reload status:', status); + return; } - }); - } + module.hot + .check({ + ignoreUnaccepted: true, + ignoreDeclined: true, + ignoreErrored: true, + }) + .then((modules) => { + sendLogEntry(0, null, 'outdated modules', modules); + }) + .catch((err) => { + sendLogEntry(0, null, 'reload error', err); + }); + } + }); } }; diff --git a/tgui/packages/tgui-dev-server/link/retrace.js b/tgui/packages/tgui-dev-server/link/retrace.js index 842de228fdfd..083ddb37d1c1 100644 --- a/tgui/packages/tgui-dev-server/link/retrace.js +++ b/tgui/packages/tgui-dev-server/link/retrace.js @@ -6,6 +6,7 @@ import fs from 'fs'; import { basename } from 'path'; + import { createLogger } from '../logging.js'; import { require } from '../require.js'; import { resolveGlob } from '../util.js'; @@ -30,7 +31,7 @@ export const loadSourceMaps = async (bundleDir) => { try { const file = basename(path).replace('.map', ''); const consumer = await new SourceMapConsumer( - JSON.parse(fs.readFileSync(path, 'utf8')) + JSON.parse(fs.readFileSync(path, 'utf8')), ); sourceMaps.push({ file, consumer }); } catch (err) { diff --git a/tgui/packages/tgui-dev-server/link/server.js b/tgui/packages/tgui-dev-server/link/server.js index 60cc78c1bd9e..2a1f551bf6eb 100644 --- a/tgui/packages/tgui-dev-server/link/server.js +++ b/tgui/packages/tgui-dev-server/link/server.js @@ -6,6 +6,7 @@ import http from 'http'; import { inspect } from 'util'; + import { createLogger, directLog } from '../logging.js'; import { require } from '../require.js'; import { loadSourceMaps, retrace } from './retrace.js'; diff --git a/tgui/packages/tgui-dev-server/package.json b/tgui/packages/tgui-dev-server/package.json index 8ee0e019ee0a..5f1b5be3e544 100644 --- a/tgui/packages/tgui-dev-server/package.json +++ b/tgui/packages/tgui-dev-server/package.json @@ -1,13 +1,13 @@ { "private": true, "name": "tgui-dev-server", - "version": "4.3.0", + "version": "5.0.1", "type": "module", "dependencies": { - "axios": "^0.21.1", - "glob": "^7.1.7", - "source-map": "^0.7.3", + "axios": "^1.6.8", + "glob": "^7.2.3", + "source-map": "^0.7.4", "stacktrace-parser": "^0.1.10", - "ws": "^7.5.3" + "ws": "^8.16.0" } } diff --git a/tgui/packages/tgui-dev-server/reloader.js b/tgui/packages/tgui-dev-server/reloader.js index c13a8afdfcfc..cb477a6523b0 100644 --- a/tgui/packages/tgui-dev-server/reloader.js +++ b/tgui/packages/tgui-dev-server/reloader.js @@ -7,6 +7,7 @@ import fs from 'fs'; import os from 'os'; import { basename } from 'path'; + import { DreamSeeker } from './dreamseeker.js'; import { createLogger } from './logging.js'; import { resolveGlob, resolvePath } from './util.js'; @@ -83,19 +84,19 @@ export const reloadByondCache = async (bundleDir) => { } // Get dreamseeker instances const pids = cacheDirs.map((cacheDir) => - parseInt(cacheDir.split('/cache/tmp').pop(), 10) + parseInt(cacheDir.split('/cache/tmp').pop(), 10), ); const dssPromise = DreamSeeker.getInstancesByPids(pids); // Copy assets const assets = await resolveGlob( bundleDir, - './*.+(bundle|chunk|hot-update).*' + './*.+(bundle|chunk|hot-update).*', ); for (let cacheDir of cacheDirs) { // Clear garbage const garbage = await resolveGlob( cacheDir, - './*.+(bundle|chunk|hot-update).*' + './*.+(bundle|chunk|hot-update).*', ); try { // Plant a dummy browser window file, we'll be using this to avoid world topic. For byond 515. diff --git a/tgui/packages/tgui-dev-server/util.js b/tgui/packages/tgui-dev-server/util.js index 9d07b96c71a0..13fbef3b21b7 100644 --- a/tgui/packages/tgui-dev-server/util.js +++ b/tgui/packages/tgui-dev-server/util.js @@ -6,6 +6,7 @@ import fs from 'fs'; import path from 'path'; + import { require } from './require.js'; const globPkg = require('glob'); @@ -19,6 +20,7 @@ export const resolveGlob = (...sections) => { const unsafePaths = globPkg.sync(path.resolve(...sections), { strict: false, silent: true, + windowsPathsNoEscape: true, }); const safePaths = []; for (let path of unsafePaths) { diff --git a/tgui/packages/tgui-dev-server/webpack.js b/tgui/packages/tgui-dev-server/webpack.js index 139610b79ce9..e4fbdeb9f1e2 100644 --- a/tgui/packages/tgui-dev-server/webpack.js +++ b/tgui/packages/tgui-dev-server/webpack.js @@ -7,6 +7,7 @@ import fs from 'fs'; import { createRequire } from 'module'; import { dirname } from 'path'; + import { loadSourceMaps, setupLink } from './link/server.js'; import { createLogger } from './logging.js'; import { reloadByondCache } from './reloader.js'; diff --git a/tgui/packages/tgui-dev-server/winreg.js b/tgui/packages/tgui-dev-server/winreg.js index b61fddc1a255..43a417019071 100644 --- a/tgui/packages/tgui-dev-server/winreg.js +++ b/tgui/packages/tgui-dev-server/winreg.js @@ -8,6 +8,7 @@ import { exec } from 'child_process'; import { promisify } from 'util'; + import { createLogger } from './logging.js'; const logger = createLogger('winreg'); @@ -35,8 +36,8 @@ export const regQuery = async (path, key) => { logger.error('could not find the start of the key value'); return null; } - const value = stdout.substring(indexOfValue + 4, indexOfEol); - return value; + + return stdout.substring(indexOfValue + 4, indexOfEol); } catch (err) { logger.error(err); return null; diff --git a/tgui/packages/tgui-panel/Notifications.js b/tgui/packages/tgui-panel/Notifications.tsx similarity index 100% rename from tgui/packages/tgui-panel/Notifications.js rename to tgui/packages/tgui-panel/Notifications.tsx diff --git a/tgui/packages/tgui-panel/Panel.js b/tgui/packages/tgui-panel/Panel.js deleted file mode 100644 index 83150ab6ef13..000000000000 --- a/tgui/packages/tgui-panel/Panel.js +++ /dev/null @@ -1,128 +0,0 @@ -/** - * @file - * @copyright 2020 Aleksej Komarov - * @license MIT - */ - -import { Button, Section, Stack } from 'tgui/components'; -import { Pane } from 'tgui/layouts'; -import { NowPlayingWidget, useAudio } from './audio'; -import { ChatPanel, ChatTabs } from './chat'; -import { useGame } from './game'; -import { Notifications } from './Notifications'; -import { PingIndicator } from './ping'; -import { ReconnectButton } from './reconnect'; -import { SettingsPanel, useSettings } from './settings'; - -export const Panel = (props, context) => { - // IE8-10: Needs special treatment due to missing Flex support - if (Byond.IS_LTE_IE10) { - return ; - } - const audio = useAudio(context); - const settings = useSettings(context); - const game = useGame(context); - if (process.env.NODE_ENV !== 'production') { - const { useDebug, KitchenSink } = require('tgui/debug'); - const debug = useDebug(context); - if (debug.kitchenSink) { - return ; - } - } - return ( - - - -
              - - - - - - - - -
              -
              - {audio.visible && ( - -
              - -
              -
              - )} - {settings.visible && ( - - - - )} - -
              - - - - - {game.connectionLostAt && ( - }> - You are either AFK, experiencing lag or the connection has - closed. - - )} - {game.roundRestartedAt && ( - - The connection has been closed because the server is - restarting. Please wait while you automatically reconnect. - - )} - -
              -
              -
              -
              - ); -}; - -const HoboPanel = (props, context) => { - const settings = useSettings(context); - return ( - - - - {(settings.visible && ) || ( - - )} - - - ); -}; diff --git a/tgui/packages/tgui-panel/Panel.tsx b/tgui/packages/tgui-panel/Panel.tsx new file mode 100644 index 000000000000..2813b636574d --- /dev/null +++ b/tgui/packages/tgui-panel/Panel.tsx @@ -0,0 +1,102 @@ +/** + * @file + * @copyright 2020 Aleksej Komarov + * @license MIT + */ + +import { Button, Section, Stack } from 'tgui/components'; +import { Pane } from 'tgui/layouts'; + +import { NowPlayingWidget, useAudio } from './audio'; +import { ChatPanel, ChatTabs } from './chat'; +import { useGame } from './game'; +import { Notifications } from './Notifications'; +import { PingIndicator } from './ping'; +import { ReconnectButton } from './reconnect'; +import { SettingsPanel, useSettings } from './settings'; + +export const Panel = (props) => { + const audio = useAudio(); + const settings = useSettings(); + const game = useGame(); + if (process.env.NODE_ENV !== 'production') { + const { useDebug, KitchenSink } = require('tgui/debug'); + const debug = useDebug(); + if (debug.kitchenSink) { + return ; + } + } + + return ( + + + +
              + + + + + + + + +
              +
              + {audio.visible && ( + +
              + +
              +
              + )} + {settings.visible && ( + + + + )} + +
              + + + + + {game.connectionLostAt && ( + }> + You are either AFK, experiencing lag or the connection has + closed. + + )} + {game.roundRestartedAt && ( + + The connection has been closed because the server is + restarting. Please wait while you automatically reconnect. + + )} + +
              +
              +
              +
              + ); +}; diff --git a/tgui/packages/tgui-panel/audio/NowPlayingWidget.js b/tgui/packages/tgui-panel/audio/NowPlayingWidget.js deleted file mode 100644 index 672ecfad7cec..000000000000 --- a/tgui/packages/tgui-panel/audio/NowPlayingWidget.js +++ /dev/null @@ -1,71 +0,0 @@ -/** - * @file - * @copyright 2020 Aleksej Komarov - * @license MIT - */ - -import { toFixed } from 'common/math'; -import { useDispatch, useSelector } from 'common/redux'; -import { Button, Flex, Knob } from 'tgui/components'; -import { useSettings } from '../settings'; -import { selectAudio } from './selectors'; - -export const NowPlayingWidget = (props, context) => { - const audio = useSelector(context, selectAudio); - const dispatch = useDispatch(context); - const settings = useSettings(context); - const title = audio.meta?.title; - return ( - - {(audio.playing && ( - <> - - Now playing: - - - {title || 'Unknown Track'} - - - )) || ( - - Nothing to play. - - )} - {audio.playing && ( - - - - - -
              - {MESSAGE_TYPES.filter( - (typeDef) => !typeDef.important && !typeDef.admin - ).map((typeDef) => ( - - dispatch( - toggleAcceptedType({ - pageId: page.id, - type: typeDef.type, - }) - ) - }> - {typeDef.name} - - ))} - - {MESSAGE_TYPES.filter( - (typeDef) => !typeDef.important && typeDef.admin - ).map((typeDef) => ( - - dispatch( - toggleAcceptedType({ - pageId: page.id, - type: typeDef.type, - }) - ) - }> - {typeDef.name} - - ))} - -
              - - ); -}; diff --git a/tgui/packages/tgui-panel/chat/ChatPageSettings.jsx b/tgui/packages/tgui-panel/chat/ChatPageSettings.jsx new file mode 100644 index 000000000000..51c08c05a364 --- /dev/null +++ b/tgui/packages/tgui-panel/chat/ChatPageSettings.jsx @@ -0,0 +1,117 @@ +/** + * @file + * @copyright 2020 Aleksej Komarov + * @license MIT + */ + +import { useDispatch, useSelector } from 'tgui/backend'; +import { + Button, + Collapsible, + Divider, + Input, + Section, + Stack, +} from 'tgui/components'; + +import { removeChatPage, toggleAcceptedType, updateChatPage } from './actions'; +import { MESSAGE_TYPES } from './constants'; +import { selectCurrentChatPage } from './selectors'; + +export const ChatPageSettings = (props) => { + const page = useSelector(selectCurrentChatPage); + const dispatch = useDispatch(); + return ( +
              + + + + dispatch( + updateChatPage({ + pageId: page.id, + name: value, + }), + ) + } + /> + + + + dispatch( + updateChatPage({ + pageId: page.id, + hideUnreadCount: !page.hideUnreadCount, + }), + ) + } + > + Mute + + + + + + + +
              + {MESSAGE_TYPES.filter( + (typeDef) => !typeDef.important && !typeDef.admin, + ).map((typeDef) => ( + + dispatch( + toggleAcceptedType({ + pageId: page.id, + type: typeDef.type, + }), + ) + } + > + {typeDef.name} + + ))} + + {MESSAGE_TYPES.filter( + (typeDef) => !typeDef.important && typeDef.admin, + ).map((typeDef) => ( + + dispatch( + toggleAcceptedType({ + pageId: page.id, + type: typeDef.type, + }), + ) + } + > + {typeDef.name} + + ))} + +
              +
              + ); +}; diff --git a/tgui/packages/tgui-panel/chat/ChatPanel.js b/tgui/packages/tgui-panel/chat/ChatPanel.js deleted file mode 100644 index 3132a66ce7f8..000000000000 --- a/tgui/packages/tgui-panel/chat/ChatPanel.js +++ /dev/null @@ -1,73 +0,0 @@ -/** - * @file - * @copyright 2020 Aleksej Komarov - * @license MIT - */ - -import { shallowDiffers } from 'common/react'; -import { Component, createRef } from 'inferno'; -import { Button } from 'tgui/components'; -import { chatRenderer } from './renderer'; - -export class ChatPanel extends Component { - constructor() { - super(); - this.ref = createRef(); - this.state = { - scrollTracking: true, - }; - this.handleScrollTrackingChange = (value) => - this.setState({ - scrollTracking: value, - }); - } - - componentDidMount() { - chatRenderer.mount(this.ref.current); - chatRenderer.events.on( - 'scrollTrackingChanged', - this.handleScrollTrackingChange - ); - this.componentDidUpdate(); - } - - componentWillUnmount() { - chatRenderer.events.off( - 'scrollTrackingChanged', - this.handleScrollTrackingChange - ); - } - - componentDidUpdate(prevProps) { - requestAnimationFrame(() => { - chatRenderer.ensureScrollTracking(); - }); - const shouldUpdateStyle = - !prevProps || shallowDiffers(this.props, prevProps); - if (shouldUpdateStyle) { - chatRenderer.assignStyle({ - 'width': '100%', - 'white-space': 'pre-wrap', - 'font-size': this.props.fontSize, - 'line-height': this.props.lineHeight, - }); - } - } - - render() { - const { scrollTracking } = this.state; - return ( - <> -
              - {!scrollTracking && ( - - )} - - ); - } -} diff --git a/tgui/packages/tgui-panel/chat/ChatPanel.jsx b/tgui/packages/tgui-panel/chat/ChatPanel.jsx new file mode 100644 index 000000000000..845c16127565 --- /dev/null +++ b/tgui/packages/tgui-panel/chat/ChatPanel.jsx @@ -0,0 +1,75 @@ +/** + * @file + * @copyright 2020 Aleksej Komarov + * @license MIT + */ + +import { shallowDiffers } from 'common/react'; +import { Component, createRef } from 'react'; +import { Button } from 'tgui/components'; + +import { chatRenderer } from './renderer'; + +export class ChatPanel extends Component { + constructor(props) { + super(props); + this.ref = createRef(); + this.state = { + scrollTracking: true, + }; + this.handleScrollTrackingChange = (value) => + this.setState({ + scrollTracking: value, + }); + } + + componentDidMount() { + chatRenderer.mount(this.ref.current); + chatRenderer.events.on( + 'scrollTrackingChanged', + this.handleScrollTrackingChange, + ); + this.componentDidUpdate(); + } + + componentWillUnmount() { + chatRenderer.events.off( + 'scrollTrackingChanged', + this.handleScrollTrackingChange, + ); + } + + componentDidUpdate(prevProps) { + requestAnimationFrame(() => { + chatRenderer.ensureScrollTracking(); + }); + const shouldUpdateStyle = + !prevProps || shallowDiffers(this.props, prevProps); + if (shouldUpdateStyle) { + chatRenderer.assignStyle({ + width: '100%', + 'white-space': 'pre-wrap', + 'font-size': this.props.fontSize, + 'line-height': this.props.lineHeight, + }); + } + } + + render() { + const { scrollTracking } = this.state; + return ( + <> +
              + {!scrollTracking && ( + + )} + + ); + } +} diff --git a/tgui/packages/tgui-panel/chat/ChatTabs.js b/tgui/packages/tgui-panel/chat/ChatTabs.js deleted file mode 100644 index 1d4f6f65edfe..000000000000 --- a/tgui/packages/tgui-panel/chat/ChatTabs.js +++ /dev/null @@ -1,68 +0,0 @@ -/** - * @file - * @copyright 2020 Aleksej Komarov - * @license MIT - */ - -import { useDispatch, useSelector } from 'common/redux'; -import { Box, Tabs, Flex, Button } from 'tgui/components'; -import { changeChatPage, addChatPage } from './actions'; -import { selectChatPages, selectCurrentChatPage } from './selectors'; -import { openChatSettings } from '../settings/actions'; - -const UnreadCountWidget = ({ value }) => ( - - {Math.min(value, 99)} - -); - -export const ChatTabs = (props, context) => { - const pages = useSelector(context, selectChatPages); - const currentPage = useSelector(context, selectCurrentChatPage); - const dispatch = useDispatch(context); - return ( - - - - {pages.map((page) => ( - 0 && ( - - ) - } - onClick={() => - dispatch( - changeChatPage({ - pageId: page.id, - }) - ) - }> - {page.name} - - ))} - - - - + ); +}; diff --git a/tgui/packages/tgui-panel/ping/actions.js b/tgui/packages/tgui-panel/ping/actions.ts similarity index 100% rename from tgui/packages/tgui-panel/ping/actions.js rename to tgui/packages/tgui-panel/ping/actions.ts diff --git a/tgui/packages/tgui-panel/ping/constants.js b/tgui/packages/tgui-panel/ping/constants.ts similarity index 100% rename from tgui/packages/tgui-panel/ping/constants.js rename to tgui/packages/tgui-panel/ping/constants.ts diff --git a/tgui/packages/tgui-panel/ping/index.js b/tgui/packages/tgui-panel/ping/index.ts similarity index 100% rename from tgui/packages/tgui-panel/ping/index.js rename to tgui/packages/tgui-panel/ping/index.ts diff --git a/tgui/packages/tgui-panel/ping/reducer.js b/tgui/packages/tgui-panel/ping/reducer.js deleted file mode 100644 index b1e3d679cbcc..000000000000 --- a/tgui/packages/tgui-panel/ping/reducer.js +++ /dev/null @@ -1,46 +0,0 @@ -/** - * @file - * @copyright 2020 Aleksej Komarov - * @license MIT - */ - -import { clamp01, scale } from 'common/math'; -import { pingFail, pingSuccess } from './actions'; -import { PING_MAX_FAILS, PING_ROUNDTRIP_BEST, PING_ROUNDTRIP_WORST } from './constants'; - -export const pingReducer = (state = {}, action) => { - const { type, payload } = action; - - if (type === pingSuccess.type) { - const { roundtrip } = payload; - const prevRoundtrip = state.roundtripAvg || roundtrip; - const roundtripAvg = Math.round(prevRoundtrip * 0.4 + roundtrip * 0.6); - const networkQuality = - 1 - scale(roundtripAvg, PING_ROUNDTRIP_BEST, PING_ROUNDTRIP_WORST); - return { - roundtrip, - roundtripAvg, - failCount: 0, - networkQuality, - }; - } - - if (type === pingFail.type) { - const { failCount = 0 } = state; - const networkQuality = clamp01( - state.networkQuality - failCount / PING_MAX_FAILS - ); - const nextState = { - ...state, - failCount: failCount + 1, - networkQuality, - }; - if (failCount > PING_MAX_FAILS) { - nextState.roundtrip = undefined; - nextState.roundtripAvg = undefined; - } - return nextState; - } - - return state; -}; diff --git a/tgui/packages/tgui-panel/ping/reducer.ts b/tgui/packages/tgui-panel/ping/reducer.ts new file mode 100644 index 000000000000..10531d23d847 --- /dev/null +++ b/tgui/packages/tgui-panel/ping/reducer.ts @@ -0,0 +1,58 @@ +/** + * @file + * @copyright 2020 Aleksej Komarov + * @license MIT + */ + +import { clamp01, scale } from 'common/math'; + +import { pingFail, pingSuccess } from './actions'; +import { + PING_MAX_FAILS, + PING_ROUNDTRIP_BEST, + PING_ROUNDTRIP_WORST, +} from './constants'; + +type PingState = { + roundtrip: number | undefined; + roundtripAvg: number | undefined; + failCount: number; + networkQuality: number; +}; + +export const pingReducer = (state = {} as PingState, action) => { + const { type, payload } = action; + + if (type === pingSuccess.type) { + const { roundtrip } = payload; + const prevRoundtrip = state.roundtripAvg || roundtrip; + const roundtripAvg = Math.round(prevRoundtrip * 0.4 + roundtrip * 0.6); + const networkQuality = + 1 - scale(roundtripAvg, PING_ROUNDTRIP_BEST, PING_ROUNDTRIP_WORST); + return { + roundtrip, + roundtripAvg, + failCount: 0, + networkQuality, + }; + } + + if (type === pingFail.type) { + const { failCount = 0 } = state; + const networkQuality = clamp01( + state.networkQuality - failCount / PING_MAX_FAILS, + ); + const nextState: PingState = { + ...state, + failCount: failCount + 1, + networkQuality, + }; + if (failCount > PING_MAX_FAILS) { + nextState.roundtrip = undefined; + nextState.roundtripAvg = undefined; + } + return nextState; + } + + return state; +}; diff --git a/tgui/packages/tgui-panel/ping/selectors.js b/tgui/packages/tgui-panel/ping/selectors.ts similarity index 100% rename from tgui/packages/tgui-panel/ping/selectors.js rename to tgui/packages/tgui-panel/ping/selectors.ts diff --git a/tgui/packages/tgui-panel/reconnect.tsx b/tgui/packages/tgui-panel/reconnect.tsx index ecfd76716925..6d3e6d9759e2 100644 --- a/tgui/packages/tgui-panel/reconnect.tsx +++ b/tgui/packages/tgui-panel/reconnect.tsx @@ -21,7 +21,8 @@ export const ReconnectButton = () => { color="white" onClick={() => { Byond.command('.reconnect'); - }}> + }} + > Reconnect diff --git a/tgui/packages/tgui-panel/settings/SettingsPanel.js b/tgui/packages/tgui-panel/settings/SettingsPanel.js deleted file mode 100644 index 19715a724e30..000000000000 --- a/tgui/packages/tgui-panel/settings/SettingsPanel.js +++ /dev/null @@ -1,305 +0,0 @@ -/** - * @file - * @copyright 2020 Aleksej Komarov - * @license MIT - */ - -import { toFixed } from 'common/math'; -import { useLocalState } from 'tgui/backend'; -import { useDispatch, useSelector } from 'common/redux'; -import { Box, Button, ColorBox, Divider, Dropdown, Flex, Input, LabeledList, NumberInput, Section, Stack, Tabs, TextArea } from 'tgui/components'; -import { ChatPageSettings } from '../chat'; -import { rebuildChat, saveChatToDisk } from '../chat/actions'; -import { THEMES } from '../themes'; -import { changeSettingsTab, updateSettings, addHighlightSetting, removeHighlightSetting, updateHighlightSetting } from './actions'; -import { SETTINGS_TABS, FONTS, MAX_HIGHLIGHT_SETTINGS } from './constants'; -import { selectActiveTab, selectSettings, selectHighlightSettings, selectHighlightSettingById } from './selectors'; - -export const SettingsPanel = (props, context) => { - const activeTab = useSelector(context, selectActiveTab); - const dispatch = useDispatch(context); - return ( - - -
              - - {SETTINGS_TABS.map((tab) => ( - - dispatch( - changeSettingsTab({ - tabId: tab.id, - }) - ) - }> - {tab.name} - - ))} - -
              -
              - - {activeTab === 'general' && } - {activeTab === 'chatPage' && } - {activeTab === 'textHighlight' && } - -
              - ); -}; - -export const SettingsGeneral = (props, context) => { - const { theme, fontFamily, fontSize, lineHeight } = useSelector( - context, - selectSettings - ); - const dispatch = useDispatch(context); - const [freeFont, setFreeFont] = useLocalState(context, 'freeFont', false); - return ( -
              - - - - dispatch( - updateSettings({ - theme: value, - }) - ) - } - /> - - - - - {(!freeFont && ( - - dispatch( - updateSettings({ - fontFamily: value, - }) - ) - } - /> - )) || ( - - dispatch( - updateSettings({ - fontFamily: value, - }) - ) - } - /> - )} - - - -
              - ); -}; - -const TextHighlightSettings = (props, context) => { - const highlightSettings = useSelector(context, selectHighlightSettings); - const dispatch = useDispatch(context); - return ( -
              -
              - - {highlightSettings.map((id, i) => ( - - ))} - {highlightSettings.length < MAX_HIGHLIGHT_SETTINGS && ( - -
              - - - - - Can freeze the chat for a while. - - -
              - ); -}; - -const TextHighlightSetting = (props, context) => { - const { id, ...rest } = props; - const highlightSettingById = useSelector(context, selectHighlightSettingById); - const dispatch = useDispatch(context); - const { - highlightColor, - highlightText, - highlightWholeMessage, - matchWord, - matchCase, - } = highlightSettingById[id]; - return ( - - - -